[
  {
    "path": ".dockerignore",
    "content": "__pycache__\n*.pyc\n*.pyo\n*.pyd\n.Python\nenv\npip-log.txt\npip-delete-this-directory.txt\n.tox\n.coverage\n.coverage.*\n.cache\nnosetests.xml\ncoverage.xml\n*,cover\n*.log\n.git\n*.md\n!README*.md\nREADME-secret.md\n.travis.yml\nDockerfile\ndocker-compose.yml\n.idea\nvenv\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "content": "---\nname: Bug report\nabout: Create a report to help us improve\ntitle: ''\nlabels: bug\nassignees: ''\n\n---\n\n<!--\nIMPORTANT: Please open an issue ONLY if you find something wrong with the source code. For questions and feedback use Discord (https://jesse.trade/discord). Also make sure to give the documentation (https://docs.jesse.trade/) and FAQ (https://jesse.trade/help) a good read to eliminate the possibility of causing the problem due to wrong usage. Make sure you are using the most recent version `pip show jesse` and updated all requirements `pip install -r https://raw.githubusercontent.com/jesse-ai/jesse/master/requirements.txt`.\n-->\n\n**Describe the bug**\nA clear and concise description of what the bug is. Include the whole error message / traceback.\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. Include your routes, config (make sure to remove personal information) and if possible your strategy code (if you want to keep it private - contact us on Discord directly).\n2. Explain the steps you do that lead to the error\n\n**Expected behavior**\nA clear and concise description of what you expected to happen.\n\n**Screenshots**\nIf applicable, add screenshots to help explain your problem.\n\n**Enviroment (please complete the following information):**\n - OS: [e.g. iOS, Windows, Ubuntu, Docker]\n - Version [use `pip show jesse`] \n\n\n**Additional context**\nAdd any other context about the problem here.\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "content": "---\nname: Feature request\nabout: Suggest an idea for this project\ntitle: ''\nlabels: enhancement\nassignees: ''\n\n---\n\n<!---\nMake sure to check the roadmap (https://docs.jesse.trade/docs/roadmap.html) and the Trello boards linked there whether your idea is already listed and give Jesse's documentation a good read to make sure you don't request something that's already possible. If possible use Discord (https://jesse.trade/discord) to discuss your ideas with the community.\n-->\n\n**Is your feature request related to a problem? Please describe.**\nA clear and concise description of what the problem is. Ex. I'm always frustrated when [...]\n\n**Describe the solution you'd like**\nA clear and concise description of what you want to happen.\n\n**Describe alternatives you've considered**\nA clear and concise description of any alternative solutions or features you've considered.\n\n**Additional context**\nAdd any other context or screenshots about the feature request here.\n"
  },
  {
    "path": ".github/stale.yml",
    "content": "# Number of days of inactivity before an issue becomes stale\ndaysUntilStale: 60\n# Number of days of inactivity before a stale issue is closed\ndaysUntilClose: 7\n# Issues with these labels will never be considered stale\nexemptLabels:\n  - pinned\n  - security\n# Label to use when marking an issue as stale\nstaleLabel: stale\n# Comment to post when marking an issue as stale. Set to `false` to disable\nmarkComment: >\n  This issue has been automatically marked as stale because it has not had\n  recent activity. It will be closed if no further activity occurs. Thank you\n  for your contributions.\n# Comment to post when closing a stale issue. Set to `false` to disable\ncloseComment: false\n"
  },
  {
    "path": ".github/workflows/codeql-analysis.yml",
    "content": "# For most projects, this workflow file will not need changing; you simply need\n# to commit it to your repository.\n#\n# You may wish to alter this file to override the set of languages analyzed,\n# or to provide custom queries or build logic.\n#\n# ******** NOTE ********\n# We have attempted to detect the languages in your repository. Please check\n# the `language` matrix defined below to confirm you have the correct set of\n# supported CodeQL languages.\n#\nname: \"CodeQL\"\n\non:\n  push:\n    branches: [ master ]\n  pull_request:\n    # The branches below must be a subset of the branches above\n    branches: [ master ]\n  schedule:\n    - cron: '0 0 1 * *'\n\njobs:\n  analyze:\n    name: Analyze\n    runs-on: ubuntu-latest\n    permissions:\n      actions: read\n      contents: read\n      security-events: write\n\n    strategy:\n      fail-fast: false\n      matrix:\n        language: [ 'python' ]\n        # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]\n        # Learn more about CodeQL language support at https://git.io/codeql-language-support\n\n    steps:\n    - name: Checkout repository\n      uses: actions/checkout@v2\n    - name: Cache pip\n      uses: actions/cache@v2\n      with:\n        path: ${{ matrix.path }}\n        key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}\n        restore-keys: |\n         ${{ runner.os }}-pip-\n    - name: Install dependencies\n      run: |\n        python -m pip install --upgrade pip\n        if [ -f requirements.txt ]; then pip install -r requirements.txt; fi\n        pip install numba\n\n    # Initializes the CodeQL tools for scanning.\n    - name: Initialize CodeQL\n      uses: github/codeql-action/init@v1\n      with:\n        languages: ${{ matrix.language }}\n        # If you wish to specify custom queries, you can do so here or in a config file.\n        # By default, queries listed here will override any specified in a config file.\n        # Prefix the list here with \"+\" to use these queries and those in the config file.\n        # queries: ./path/to/local/query, your-org/your-repo/queries@main\n\n    # Autobuild attempts to build any compiled languages  (C/C++, C#, or Java).\n    # If this step fails, then you should remove it and run the build manually (see below)\n    - name: Autobuild\n      uses: github/codeql-action/autobuild@v1\n\n    # ℹ️ Command-line programs to run using the OS shell.\n    # 📚 https://git.io/JvXDl\n\n    # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines\n    #    and modify them (or add more) to build your code if your project\n    #    uses a compiled language\n\n    #- run: |\n    #   make bootstrap\n    #   make release\n\n    - name: Perform CodeQL Analysis\n      uses: github/codeql-action/analyze@v1\n"
  },
  {
    "path": ".github/workflows/python-package.yml",
    "content": "# This workflow will install Python dependencies, run tests and lint with a single version of Python\n# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions\n\nname: Python application\n\non:\n  push:\n    branches: [ master ]\n  pull_request:\n    branches: [ master ]\n\nconcurrency:\n  group: ${{ github.workflow }}-${{ github.ref }}\n  cancel-in-progress: true\n\njobs:\n  build:\n    runs-on:  ${{matrix.os}}\n    strategy:\n      matrix:\n        # os: [ubuntu-latest, macos-latest, windows-latest]\n        os: [ubuntu-latest, macos-latest]\n        # os: [ubuntu-latest]\n        include:\n        - os: ubuntu-latest\n          path: ~/.cache/pip\n        #- os: macos-latest-xlarge\n        #  path: ~/Library/Caches/pip\n        #- os: windows-latest\n        #  path: ~\\AppData\\Local\\pip\\Cache\n        # python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']\n        python-version: ['3.10', '3.11', '3.12', '3.13']\n\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v2\n      - name: Set up Python ${{ matrix.python-version }}\n        uses: actions/setup-python@v2\n        with:\n          python-version: ${{ matrix.python-version }}\n      - name: Cache pip\n        uses: actions/cache@v3\n        id: cache\n        with:\n          path: ${{ matrix.path }}\n          key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}\n          restore-keys: |\n           ${{ runner.os }}-pip-\n      - name: Install dependencies\n        shell: bash\n        run: |\n          python -m ensurepip --upgrade\n          python -m pip install --upgrade pip\n          python -m pip install setuptools wheel\n          if [ -f requirements.txt ]; then pip install -r requirements.txt; fi\n          if [ ! ${{ matrix.python-version }} = \"3.10\" ]; then pip install numba; fi\n          pip install -e . -U\n      - name: Test with pytest\n        shell: bash\n        run: |\n          pip install pytest\n          pytest\n"
  },
  {
    "path": ".gitignore",
    "content": "# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# Distribution / packaging\n.Python\nbuild/\ndevelop-eggs/\ndist/\ndownloads/\neggs/\n.eggs/\nlib/\nlib64/\nparts/\nsdist/\nvar/\nwheels/\nshare/python-wheels/\n*.egg-info/\n.installed.cfg\n*.egg\nMANIFEST\n\n# PyInstaller\n#  Usually these files are written by a python script from a template\n#  before PyInstaller builds the exe, so as to inject date/other infos into it.\n*.manifest\n*.spec\n\n# Installer logs\npip-log.txt\npip-delete-this-directory.txt\n\n# Unit test / coverage reports\nhtmlcov/\n.tox/\n.nox/\n.coverage\n.coverage.*\n.cache\nnosetests.xml\ncoverage.xml\n*.cover\n*.py,cover\n.hypothesis/\n.pytest_cache/\ncover/\n\n# Translations\n*.mo\n*.pot\n\n# Django stuff:\n*.log\nlocal_settings.py\ndb.sqlite3\ndb.sqlite3-journal\n\n# Flask stuff:\ninstance/\n.webassets-cache\n\n# Scrapy stuff:\n.scrapy\n\n# Sphinx documentation\ndocs/_build/\n\n# PyBuilder\n.pybuilder/\ntarget/\n\n# Jupyter Notebook\n.ipynb_checkpoints\n\n# IPython\nprofile_default/\nipython_config.py\n\n# pyenv\n#   For a library or package, you might want to ignore these files since the code is\n#   intended to run in multiple environments; otherwise, check them in:\n# .python-version\n\n# pipenv\n#   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.\n#   However, in case of collaboration, if having platform-specific dependencies or dependencies\n#   having no cross-platform support, pipenv may install dependencies that don't work, or not\n#   install all needed dependencies.\n#Pipfile.lock\n\n# PEP 582; used by e.g. github.com/David-OConnor/pyflow\n__pypackages__/\n\n# Celery stuff\ncelerybeat-schedule\ncelerybeat.pid\n\n# SageMath parsed files\n*.sage.py\n\n# Environments\n.env\n.venv\nenv/\nvenv/\nENV/\nenv.bak/\nvenv.bak/\n\n# Spyder project settings\n.spyderproject\n.spyproject\n\n# Rope project settings\n.ropeproject\n\n# mkdocs documentation\n/site\n\n# mypy\n.mypy_cache/\n.dmypy.json\ndmypy.json\n\n# Pyre type checker\n.pyre/\n\n# pytype static type analyzer\n.pytype/\n\n# Cython debug symbols\ncython_debug/\n\n# IDE\n/.vscode\n/.idea\n\n.DS_Store\n/storage/*.key\n/storage/*.sqlite\n/storage/*.gz\n/.vagrant\ntesting-*.py\n/storage/full-reports/*.html\n/storage/logs/*\n\n# lsp\njesse/lsp/\npyrightconfig.json\n"
  },
  {
    "path": "AGENTS.md",
    "content": "# Jesse Repository Guide for AI Agents\n\n## Overview\nThe jesse repository is the **core open-source framework** of the Jesse trading system. It contains the main Python codebase for backtesting trading strategies, importing historical data from crypto exchanges, running optimizations, and providing the API backend for the dashboard. It glues together the other repositories and makes them work together.\n\n## Key Characteristics\n\n### Central Framework\n- **jesse-live depends on this** - Changes here affect live trading\n- **jesse-rust integrates here** - Rust functions are called from this codebase\n- **dashboard consumes this API** - Frontend uses the FastAPI routes and controller files. \n\n### Technology Stack\n- **Python** - Primary language\n- **FastAPI** - API framework for all routes\n- **NumPy** - Array operations and calculations\n- **keewee** - ORM for the database\n\n## Development Workflow\n\n### Making Changes\nWhen implementing features or fixing bugs:\n\n1. **Understand the scope** - Determine if other repositories such as the dashboard need updates\n2. **Implement the code** in the appropriate module\n3. **Write/update tests** - Maintain test coverage\n4. **Run tests** to verify changes:\n   ```bash\n   cd-jesse && pytest\n   ```\n5. **Consider jesse-live** - Does this affect live trading?\n6. **Update API routes** if needed - Follow FastAPI patterns\n7. **Don't restart server** unless specifically asked\n\n### Python Environment\nUse the Jesse Python interpreter:\n```\n/Users/salehmir/miniconda3/envs/jesse3.12/bin/python\n```\n\n### Running Jesse Backend\nThe API server provides routes for the dashboard:\n```bash\n# Stop any running process\npkill -f \"jesse run\"\n\n# Start Jesse from bot directory (not jesse/)\ncd /Users/salehmir/codes/jesse/dev-jesse/bot\n/Users/salehmir/miniconda3/envs/jesse3.12/bin/jesse run > /tmp/jesse-output.log 2>&1 &\n\n# Server runs at http://localhost:9001\n\n# Check logs\ntail -f /tmp/jesse-output.log\n```\n\n**Important**: Don't restart Jesse after code changes unless explicitly requested.\n\n### Running Tests\nRun the test suite after changes if asked.\n```bash\ncd-jesse && pytest\n```\n\nIf you've updated jesse-rust, run tests after building:\n```bash\ncd /Users/salehmir/Codes/jesse/dev-jesse/jesse-rust\n./build-local.sh\n\ncd /Users/salehmir/Codes/jesse/dev-jesse/jesse\npytest\n```\n\n## Important Notes\n\n### Debugging\n- **Use `jh.debug()` for all debugging output** - Never use plain `print()`\n- **Log format**: `[2024-12-06 18:23:12] ==> Your message here`\n- Logs include timestamps and `==>` prefix\n- Essential for debugging backtests and live trading sessions\n\n### API Routes\n- **Default to POST endpoints** unless specifically asked for GET\n- Use FastAPI decorators and patterns\n- Follow the structure of existing routes in `jesse/routes/`\n- Return proper HTTP status codes and JSON responses\n- Handle errors gracefully\n\n### Code Style\n- Don't write comments for functions unless asked\n- Never try to install new packages - assume they're already installed. if need to install new packages, ask me first.\n- Follow existing patterns and conventions\n- Maintain consistency with the current codebase\n- Try to import only at the top of the file.\n\n### Jesse-Rust Integration\n- When using Rust functions, **assume they exist** - don't add existence checks\n- Update Python code to call new Rust implementations\n- Build jesse-rust locally and run tests to verify integration\n- Performance-critical code should be delegated to jesse-rust when possible\n\n## File Structure\n- `jesse/` - Main source code\n  - `indicators/` - Technical indicators\n  - `modes/` - Backtest, optimize, import modes, monte carlo, etc\n  - `routes/` - FastAPI route handlers\n  - `services/` - data services, etc\n  - `strategies/` - Base strategy classes\n  - `store/` - State management\n- `tests/` - Test suite\n- `storage/` - Logs and temporary files\n- `requirements.txt` - Python dependencies\n- `setup.py` - Package configuration\n\n## Testing Strategy\n\n### Unit Tests\n- Run `pytest` after every change if asked in the conversation.\n- Maintain or improve test coverage\n- Add tests for new features if asked in the conversation.\n- Fix failing tests immediately\n\n## Related Repositories\nThis repository is the foundation of the Jesse ecosystem:\n- **jesse-live** - Depends heavily on jesse for live trading\n- **jesse-rust** - Performance layer integrated into jesse\n- **dashboard-v1** - Frontend that consumes jesse's API\n- **bot** - Jesse project instance that runs the framework\n- **laravel-jesse-trade** - Laravel project that contains the api1 backend of the jesse-trade website.\n- **go-jesse-trade/backend** - Go project that contains the api2 backend of the jesse-trade website.\n- **go-jesse-trade/frontend** - NuxtJS project that contains the frontend of the jesse-trade website.\n- **strategy-executor** - Go project that contains the strategy executor microservice used to execute strategies submitted by the users of the website.\n\n"
  },
  {
    "path": "Dockerfile",
    "content": "ARG TEST_BUILD=0\nFROM python:3.11-slim-bullseye AS jesse_basic_env\nENV PYTHONUNBUFFERED 1\n\nRUN apt-get update \\\n    && apt-get -y install git build-essential libssl-dev \\\n    && apt-get clean \\\n    && pip install --upgrade pip\n\nRUN pip3 install Cython numpy\n\n# Prepare environment\nRUN mkdir /jesse-docker\nWORKDIR /jesse-docker\n\n# Install dependencies\nCOPY requirements.txt /jesse-docker\nRUN pip3 install -r requirements.txt\n\n# Build\nCOPY . /jesse-docker\nRUN pip3 install -e .\n\nFROM jesse_basic_env AS jesse_with_test_0\nWORKDIR /home\n\nFROM jesse_basic_env AS jesse_with_test_1\nRUN pip3 install codecov pytest-cov\nENTRYPOINT pytest --cov=./ # && codecov\n\nFROM jesse_with_test_${TEST_BUILD} AS jesse_final\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2020 Jesse.Trade\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "MANIFEST.in",
    "content": "include jesse/static/*\ninclude jesse/static/**/*\n"
  },
  {
    "path": "README.md",
    "content": "<div align=\"center\">\n<br>\n<p align=\"center\">\n<img src=\"assets/jesse-logo.png\" alt=\"Jesse\" height=\"72\" />\n</p>\n\n<p align=\"center\">\nAlgo-trading was 😵‍💫, we made it 🤩\n</p>\n</div>\n\n# Jesse\n[![PyPI](https://img.shields.io/pypi/v/jesse)](https://pypi.org/project/jesse)\n[![Downloads](https://pepy.tech/badge/jesse)](https://pepy.tech/project/jesse)\n[![Docker Pulls](https://img.shields.io/docker/pulls/salehmir/jesse)](https://hub.docker.com/r/salehmir/jesse)\n[![GitHub](https://img.shields.io/github/license/jesse-ai/jesse)](https://github.com/jesse-ai/jesse)\n[![coverage](https://codecov.io/gh/jesse-ai/jesse/graph/badge.svg)](https://codecov.io/gh/jesse-ai/jesse)\n\n---\n\nJesse is an advanced crypto trading framework that aims to **simplify** **researching** and defining **YOUR OWN trading strategies** for backtesting, optimizing, and live trading.\n\n## What is Jesse?\nWatch this video to get a quick overview of Jesse:\n\n[![Jesse Overview](https://img.youtube.com/vi/0EqN3OOqeJM/0.jpg)](https://www.youtube.com/watch?v=0EqN3OOqeJM)\n\n## Why Jesse?\nIn short, Jesse is more **accurate** than other solutions, and way more **simple**. \nIn fact, it is so simple that in case you already know Python, you can get started today, in **matter of minutes**, instead of **weeks and months**. \n\n## Key Features\n\n- 📝 **Simple Syntax**: Define both simple and advanced trading strategies with the simplest syntax in the fastest time.\n- 📊 **Comprehensive Indicator Library**: Access a complete library of technical indicators with easy-to-use syntax.\n- 📈 **Smart Ordering**: Supports market, limit, and stop orders, automatically choosing the best one for you.\n- ⏰ **Multiple Timeframes and Symbols**: Backtest and livetrade multiple timeframes and symbols simultaneously without look-ahead bias.\n- 🔒 **Self-Hosted and Privacy-First**: Designed with your privacy in mind, fully self-hosted to ensure your trading strategies and data remain secure.\n- 🛡️ **Risk Management**: Built-in helper functions for robust risk management.\n- 📋 **Metrics System**: A comprehensive metrics system to evaluate your trading strategy's performance.\n- 🔍 **Debug Mode**: Observe your strategy in action with a detailed debug mode.\n- 🔧 **Optimize Mode**: Fine-tune your strategies using AI, without needing a technical background.\n- 📈 **Leveraged and Short-Selling**: First-class support for leveraged trading and short-selling.\n- 🔀 **Partial Fills**: Supports entering and exiting positions in multiple orders, allowing for greater flexibility.\n- 🔔 **Advanced Alerts**: Create real-time alerts within your strategies for effective monitoring.\n- 🤖 **JesseGPT**: Jesse has its own GPT, JesseGPT, that can help you write strategies, optimize them, debug them, and much more.\n- 🔧 **Built-in Code Editor**: Write, edit, and debug your strategies with a built-in code editor.\n- 📺 **Youtube Channel**: Jesse has a Youtube channel with screencast tutorials that go through example strategies step by step.\n\n## Dive Deeper into Jesse's Capabilities\n\n### Stupid Simple\nCraft complex trading strategies with remarkably simple Python. Access 300+ indicators, multi-symbol/timeframe support, spot/futures trading, partial fills, and risk management tools. Focus on logic, not boilerplate.\n\n```python\nclass GoldenCross(Strategy):\n    def should_long(self):\n        # go long when the EMA 8 is above the EMA 21\n        short_ema = ta.ema(self.candles, 8)\n        long_ema = ta.ema(self.candles, 21)\n        return short_ema > long_ema\n\n    def go_long(self):\n        entry_price = self.price - 10        # limit buy order at $10 below the current price\n        qty = utils.size_to_qty(self.balance*0.05, entry_price) # spend only 5% of my total capital\n        self.buy = qty, entry_price                 # submit entry order\n        self.take_profit = qty, entry_price*1.2  # take profit at 20% above the entry price\n        self.stop_loss = qty, entry_price*0.9   # stop loss at 10% below the entry price\n```\n\n### Backtest\nExecute highly accurate and fast backtests without look-ahead bias. Utilize debugging logs, interactive charts with indicator support, and detailed performance metrics to validate your strategies thoroughly.\n\n![Backtest](https://raw.githubusercontent.com/jesse-ai/storage/refs/heads/master/backtest.gif)\n\n### Live/Paper Trading\nDeploy strategies live with robust monitoring tools. Supports paper trading, multiple accounts, real-time logs & notifications (Telegram, Slack, Discord), interactive charts, spot/futures, DEX, and a built-in code editor.\n\n![Live/Paper Trading](https://raw.githubusercontent.com/jesse-ai/storage/refs/heads/master/live.gif)\n\n### Benchmark\nAccelerate research using the benchmark feature. Run batch backtests, compare across timeframes, symbols, and strategies. Filter and sort results by key performance metrics for efficient analysis.\n\n![Benchmark](https://raw.githubusercontent.com/jesse-ai/storage/refs/heads/master/benchmark.gif)\n\n### AI\nLeverage our AI assistant even with limited Python knowledge. Get help writing and improving strategies, implementing ideas, debugging, optimizing, and understanding code. Your personal AI quant.\n\n![AI](https://raw.githubusercontent.com/jesse-ai/storage/refs/heads/master/gpt.gif)\n\n### Optimize Your Strategies\nUnsure about optimal parameters? Let the optimization mode decide using simple syntax. Fine-tune any strategy parameter with the Optuna library and easy cross-validation.\n\n```python\n@property\ndef slow_sma(self):\n    return ta.sma(self.candles, self.hp['slow_sma_period'])\n\n@property\ndef fast_sma(self):\n    return ta.sma(self.candles, self.hp['fast_sma_period'])\n\ndef hyperparameters(self):\n    return [\n        {'name': 'slow_sma_period', 'type': int, 'min': 150, 'max': 210, 'default': 200},\n        {'name': 'fast_sma_period', 'type': int, 'min': 20, 'max': 100, 'default': 50},\n    ]\n```\n\n## Getting Started\nHead over to the \"getting started\" section of the [documentation](https://docs.jesse.trade/docs/getting-started). The \ndocumentation is **short yet very informative**. \n\n## Resources\n\n- [⚡️ Website](https://jesse.trade)\n- [🎓 Documentation](https://docs.jesse.trade)\n- [🎥 Youtube channel (screencast tutorials)](https://jesse.trade/youtube)\n- [🛟 Help center](https://jesse.trade/help)\n- [💬 Discord community](https://jesse.trade/discord)\n- [🤖 JesseGPT](https://jesse.trade/gpt) (Requires a free account)\n\n## What's next?\n\nYou can see the project's **[roadmap here](https://docs.jesse.trade/docs/roadmap.html)**. **Subscribe** to our mailing list at [jesse.trade](https://jesse.trade) to get the good stuff as soon they're released. Don't worry, We won't send you spam—Pinky promise.\n\n## Disclaimer\nThis software is for educational purposes only. USE THE SOFTWARE AT **YOUR OWN RISK**. THE AUTHORS AND ALL AFFILIATES ASSUME **NO RESPONSIBILITY FOR YOUR TRADING RESULTS**. **Do not risk money that you are afraid to lose**. There might be **bugs** in the code - this software DOES NOT come with **ANY warranty**.\n"
  },
  {
    "path": "codecov.yml",
    "content": "ignore:\n  - \"tests/**\"\n"
  },
  {
    "path": "conftest.py",
    "content": "def pytest_configure(config):\n    config.addinivalue_line(\n        \"filterwarnings\",\n        \"ignore:Please use `import python_multipart` instead.:PendingDeprecationWarning\",\n    )\n"
  },
  {
    "path": "jesse/__init__.py",
    "content": "import os\nimport warnings\nfrom contextlib import asynccontextmanager\nfrom fastapi.responses import FileResponse\nfrom fastapi.staticfiles import StaticFiles\nfrom jesse.services.web import fastapi_app\nimport jesse.helpers as jh\n\n# import cli to register the routes. Do NOT remove this import.\nfrom jesse.cli import cli\n\n\n# to silent stupid pandas warnings\nwarnings.simplefilter(action='ignore', category=FutureWarning)\n\n# get the jesse directory\nJESSE_DIR = os.path.dirname(os.path.abspath(__file__))\n\n# define lifespan (replaces deprecated @on_event(\"shutdown\"))\n@asynccontextmanager\nasync def lifespan(app):\n    yield\n    from jesse.services.db import database\n    database.close_connection()\n    from jesse.services.lsp import terminate_lsp_server\n    terminate_lsp_server()\n\nfastapi_app.router.lifespan_context = lifespan\n\n# load homepage\n@fastapi_app.get(\"/\")\nasync def index():\n    return FileResponse(f\"{JESSE_DIR}/static/index.html\")\n\n\n\n\n\n\n# # # # # # # # # # # # # # # # # # # # # # # # # # # #\n# Routes\n# # # # # # # # # # # # # # # # # # # # # # # # # # # #\nfrom jesse.controllers.websocket_controller import router as websocket_router\nfrom jesse.controllers.optimization_controller import router as optimization_router\nfrom jesse.controllers.monte_carlo_controller import router as monte_carlo_router\nfrom jesse.controllers.exchange_controller import router as exchange_router\nfrom jesse.controllers.backtest_controller import router as backtest_router\nfrom jesse.controllers.candles_controller import router as candles_router\nfrom jesse.controllers.strategy_controller import router as strategy_router\nfrom jesse.controllers.auth_controller import router as auth_router\nfrom jesse.controllers.config_controller import router as config_router\nfrom jesse.controllers.notification_controller import router as notification_router\nfrom jesse.controllers.system_controller import router as system_router\nfrom jesse.controllers.file_controller import router as file_router\nfrom jesse.controllers.lsp_controller import router as lsp_router\nfrom jesse.controllers.closed_trade_controller import router as closed_trade_router\nfrom jesse.controllers.order_controller import router as order_router\nfrom jesse.controllers.tabs_controller import router as tabs_router\n\n# register routers\nfastapi_app.include_router(websocket_router)\nfastapi_app.include_router(optimization_router)\nfastapi_app.include_router(monte_carlo_router)\nfastapi_app.include_router(exchange_router)\nfastapi_app.include_router(backtest_router)\nfastapi_app.include_router(candles_router)\nfastapi_app.include_router(strategy_router)\nfastapi_app.include_router(auth_router)\nfastapi_app.include_router(config_router)\nfastapi_app.include_router(notification_router)\nfastapi_app.include_router(system_router)\nfastapi_app.include_router(file_router)\nfastapi_app.include_router(lsp_router)\nfastapi_app.include_router(closed_trade_router)\nfastapi_app.include_router(order_router)\nfastapi_app.include_router(tabs_router)\n\n# # # # # # # # # # # # # # # # # # # # # # # # # # # #\n# Live Trade Plugin\n# # # # # # # # # # # # # # # # # # # # # # # # # # # #\nif jh.has_live_trade_plugin():\n    from jesse.controllers.live_controller import router as live_router\n    fastapi_app.include_router(live_router)\n\n\n# # # # # # # # # # # # # # # # # # # # # # # # # # # #\n# Static Files (Must be loaded at the end to prevent overlapping with API endpoints)\n# # # # # # # # # # # # # # # # # # # # # # # # # # # #\nfastapi_app.mount(\"/\", StaticFiles(directory=f\"{JESSE_DIR}/static\"), name=\"static\")\n"
  },
  {
    "path": "jesse/candle_pipelines/__init__.py",
    "content": "from .base_candles import BaseCandlesPipeline\nfrom .gaussian_noise import GaussianNoiseCandlesPipeline\nfrom .gaussian_resampler import GaussianResamplerCandlesPipeline\nfrom .moving_block_bootstrap import MovingBlockBootstrapCandlesPipeline\n"
  },
  {
    "path": "jesse/candle_pipelines/base_candles.py",
    "content": "import numpy as np\n\n\nclass BaseCandlesPipeline:\n    def __init__(self, batch_size: int) -> None:\n        self._batch_size = batch_size\n        self._output: np.ndarray = np.zeros((batch_size, 6))\n        self.last_price = 0.0\n\n    def get_candles(self, candles: np.ndarray, index: int, candles_step: int = -1) -> np.ndarray:\n        index = index % self._batch_size\n        if index == 0:\n            if self.last_price == 0.0:\n                self.last_price = candles[0, 1]  # the first time use open price instead of last close\n            else:\n                self.last_price = self._output[-1, 2]  # later use the last_price\n            inject_candle = self.process(candles, self._output[:len(candles)])\n            if not inject_candle:\n                self._output[:] = candles\n        if candles_step == -1:\n            return self._output[index]\n        if index + candles_step <= self._batch_size:\n            return self._output[index:index + candles_step]\n        raise ValueError(\"Batch size to candle pipeline supported only multiplication of the minimum timeframe in your\"\n                         \" routes.\")\n\n    def process(self, original_1m_candles: np.ndarray, out: np.ndarray) -> bool:\n        \"\"\"\n        :param original_1m_candles: get original 1m candles to modify it for research purposes to test various scenarios.\n            Get the next `batch_size` 1m candles.\n        :param out: The candles that will be injected to the simulation instead of the original 1m candles.\n            Contains the previous batch.\n        :return: True if out is modified, False otherwise\n        \"\"\"\n        return False\n\n"
  },
  {
    "path": "jesse/candle_pipelines/gaussian_noise.py",
    "content": "import numpy as np\nimport jesse.helpers as jh\nfrom .base_candles import BaseCandlesPipeline\n\n\nclass GaussianNoiseCandlesPipeline(BaseCandlesPipeline):\n\n    def __init__(self, batch_size: int, *,\n                 close_mu: float = 0.0,\n                 close_sigma: float,\n                 high_mu: float = 0.0,\n                 high_sigma: float,\n                 low_mu: float = 0.0,\n                 low_sigma: float,\n                 ) -> None:\n        \"\"\"\n        Add gaussian noise to candles\n        \"\"\"\n        super().__init__(batch_size)\n        self._first_time = True\n        self.close_mu = close_mu\n        self.close_sigma = close_sigma\n        self.high_mu = high_mu\n        self.high_sigma = high_sigma\n        self.low_mu = low_mu\n        self.low_sigma = low_sigma\n\n    def process(self, original_1m_candles: np.ndarray, out: np.ndarray) -> bool:\n        eps = 1e-12\n        if not self._first_time:\n            last_price = out[-1, 2]  # last_close_price\n        else:\n            self._first_time = False\n            # in case we don't have history set the price as the first price so the bias will be 0\n            last_price = original_1m_candles[0, 1]\n        out[:] = original_1m_candles[:]\n\n        n = len(out)\n\n        # close price\n        noise = np.random.normal(self.close_mu, self.close_sigma, size=n).cumsum()\n        out[:, 2] = np.maximum(out[:, 2] + noise, eps)\n\n        # open price\n        out[1:, 1] = out[:-1, 2]\n        out[0, 1] = max(last_price, eps)\n\n        # high\n        high_std = 0.0 if self.high_sigma == 0.0 else np.random.normal(0, self.high_sigma, size=n)\n        out[:, 3] = out[:, 3] + self.high_mu + high_std\n\n        # low\n        low_std = 0.0 if self.low_sigma == 0.0 else np.random.normal(0, self.low_sigma, size=n)\n        out[:, 4] = out[:, 4] + self.low_mu + low_std\n\n        # enforce bounds and positivity\n        out[:, 1] = np.maximum(out[:, 1], eps)\n        out[:, 2] = np.maximum(out[:, 2], eps)\n        out[:, 3] = np.maximum(np.maximum(out[:, 1], out[:, 2]), np.maximum(out[:, 3], out[:, 4]))\n        out[:, 4] = np.minimum(np.minimum(out[:, 1], out[:, 2]), np.minimum(out[:, 3], out[:, 4]))\n        out[:, 4] = np.maximum(out[:, 4], eps)\n\n        return True\n"
  },
  {
    "path": "jesse/candle_pipelines/gaussian_resampler.py",
    "content": "import numpy as np\nfrom typing import Optional\nfrom .base_candles import BaseCandlesPipeline\n\n\nclass GaussianResamplerCandlesPipeline(BaseCandlesPipeline):\n\n    def __init__(self, batch_size: int, *,\n                 mu: float = 0.0, sigma: Optional[float] = None,\n                 ) -> None:\n        \"\"\"\n        Add gaussian noise to candles\n        \"\"\"\n        super().__init__(batch_size)\n        self.mu = mu\n        self.sigma = sigma\n\n    def process(self, original_1m_candles: np.ndarray, out: np.ndarray) -> bool:\n        eps = 1e-12\n        out[:] = original_1m_candles[:]\n\n        # close price\n        closes = original_1m_candles[:, 2]\n        n = len(out)\n        med_price = float(np.nan_to_num(np.median(closes), nan=0.0))\n\n        delta_close = np.diff(closes, prepend=self.last_price)\n        mu_delta = float(np.nan_to_num(np.mean(delta_close[1:]), nan=0.0))\n        sigma_delta_close = float(np.nan_to_num(np.std(delta_close[1:]), nan=0.0))\n\n        # derive scale factor from relative returns if sigma is not provided\n        if self.sigma is None:\n            if n >= 2:\n                rel_returns = np.diff(closes) / np.maximum(closes[:-1], eps)\n                ret_std = float(np.nan_to_num(np.std(rel_returns), nan=0.0))\n            else:\n                ret_std = 0.0\n            target_abs_close_std = max((ret_std * med_price) if ret_std > 0.0 else (med_price * 0.0005), eps)\n            scale_factor = target_abs_close_std / max(sigma_delta_close, eps)\n        else:\n            scale_factor = self.sigma\n\n        std_close = sigma_delta_close * scale_factor\n        # debug the effective parameters used for the close process\n        out[:, 2] = np.random.normal(mu_delta + self.mu, std_close, size=n).cumsum() + self.last_price\n        out[:, 2] = np.maximum(out[:, 2], eps)\n\n        # open price\n        out[1:, 1] = out[:-1, 2]\n        out[0, 1] = max(self.last_price, eps)\n\n        # high\n        delta_high_close = original_1m_candles[:, 3] - original_1m_candles[:, 2]\n        mu_delta = float(np.nan_to_num(np.mean(delta_high_close), nan=0.0))\n        sigma_delta_high = float(np.nan_to_num(np.std(delta_high_close), nan=0.0))\n        std_high = sigma_delta_high * scale_factor\n        out[:, 3] = out[:, 2] + np.random.normal(mu_delta + self.mu, std_high, size=n)\n\n        delta_close_low = original_1m_candles[:, 2] - original_1m_candles[:, 4]\n        mu_delta = float(np.nan_to_num(np.mean(delta_close_low), nan=0.0))\n        sigma_delta_low = float(np.nan_to_num(np.std(delta_close_low), nan=0.0))\n        std_low = sigma_delta_low * scale_factor\n        out[:, 4] = out[:, 2] - np.random.normal(mu_delta + self.mu, std_low, size=n)\n\n        # enforce bounds and positivity\n        out[:, 1] = np.maximum(out[:, 1], eps)\n        out[:, 2] = np.maximum(out[:, 2], eps)\n        out[:, 3] = np.maximum(np.maximum(out[:, 1], out[:, 2]), np.maximum(out[:, 3], out[:, 4]))\n        out[:, 4] = np.minimum(np.minimum(out[:, 1], out[:, 2]), np.minimum(out[:, 3], out[:, 4]))\n        out[:, 4] = np.maximum(out[:, 4], eps)\n\n        return True\n"
  },
  {
    "path": "jesse/candle_pipelines/moving_block_bootstrap.py",
    "content": "import numpy as np\nfrom .base_candles import BaseCandlesPipeline\n\n\nclass MovingBlockBootstrapCandlesPipeline(BaseCandlesPipeline):\n    def __init__(self, batch_size: int, **_ignored) -> None:\n        \"\"\"\n        Generate synthetic candles by moving-block bootstrap on multivariate\n        tuples of (delta_close, delta_high, delta_low).\n\n        Parameters\n        ----------\n        batch_size : int\n            Size of the internal regeneration buffer in minutes. The pipeline\n            derives a reasonable bootstrap block length from this, so there is\n            no separate block-size argument.\n        \"\"\"\n        super().__init__(batch_size)\n\n        # Derive block size from batch size. Heuristic: max(10, batch_size // 10),\n        # then clamp to [1, batch_size - 1]. This preserves short-horizon\n        # dependence while allowing variety.\n        derived_block_size = max(10, batch_size // 10)\n        derived_block_size = max(1, min(batch_size - 1, derived_block_size))\n        self._block_size = derived_block_size\n\n        # Independent RNG per pipeline instance to avoid identical scenarios\n        self._rng = np.random.default_rng()\n\n    def _bootstrap_blocks(self, arr: np.ndarray, n: int) -> np.ndarray:\n        \"\"\"\n        Sample overlapping blocks of rows from `arr` to build a length-n output.\n        `arr` is shape (T, 3) for the three deltas.\n        \"\"\"\n        T, D = arr.shape\n        if T == 0:\n            return np.zeros((n, 3), dtype=arr.dtype)\n        # Use the configured block_size, but not beyond available data\n        effective_block_size = max(1, min(self._block_size, T))\n        max_start = T - effective_block_size\n        # how many blocks needed to reach n rows\n        num_blocks = int(np.ceil(n / effective_block_size)) + 1\n        starts = self._rng.integers(0, max_start + 1, size=num_blocks)\n        blocks = [arr[s : s + effective_block_size] for s in starts]\n        boot = np.vstack(blocks)\n        return boot[:n]\n\n    def process(self, original_1m_candles: np.ndarray, out: np.ndarray) -> bool:\n        # copy everything first (timestamps, volumes, etc)\n        out[:] = original_1m_candles[:]\n        n = len(out)\n        # strictly positive floor to avoid invalid negative prices\n        eps = 1e-12\n\n        # compute the 3 deltas for each bar\n        delta_close = np.diff(original_1m_candles[:, 2], prepend=self.last_price)\n        delta_high  = original_1m_candles[:, 3] - original_1m_candles[:, 2]\n        delta_low   = original_1m_candles[:, 2] - original_1m_candles[:, 4]\n\n        # stack into shape (T, 3), skipping the first delta_close entry (prepend)\n        deltas = np.column_stack([delta_close[1:], delta_high[1:], delta_low[1:]])\n\n        # bootstrap blocks of the 3-tuples\n        boot_deltas = self._bootstrap_blocks(deltas, n)\n\n        # rebuild close prices (ensure strictly positive)\n        boot_close = np.cumsum(boot_deltas[:, 0]) + self.last_price\n        boot_close = np.maximum(boot_close, eps)\n        out[:, 2] = boot_close\n\n        # rebuild opens\n        out[1:, 1] = boot_close[:-1]\n        out[0, 1] = max(self.last_price, eps)\n\n        # rebuild high and low from the bootstrapped ranges\n        out[:, 3] = boot_close + boot_deltas[:, 1]\n        out[:, 4] = boot_close - boot_deltas[:, 2]\n\n        # enforce the true high/low bounds and positivity\n        out[:, 1] = np.maximum(out[:, 1], eps)\n        out[:, 2] = np.maximum(out[:, 2], eps)\n        out[:, 3] = np.maximum.reduce([out[:, 1], out[:, 2], out[:, 3], out[:, 4]])\n        out[:, 4] = np.minimum.reduce([out[:, 1], out[:, 2], out[:, 3], out[:, 4]])\n        out[:, 4] = np.maximum(out[:, 4], eps)\n\n        return True\n"
  },
  {
    "path": "jesse/cli.py",
    "content": "import time\n\nimport click\nfrom importlib.metadata import version as get_version\nimport uvicorn\n\nimport jesse.helpers as jh\nfrom jesse.services.multiprocessing import process_manager\nfrom jesse.services.web import fastapi_app\n\n\n@click.group()\n@click.version_option(get_version(\"jesse\"))\ndef cli() -> None:\n    \"\"\"CLI entrypoint for Jesse.\"\"\"\n    pass\n\n\n@cli.command()\n@click.option(\n    \"--strict/--no-strict\",\n    default=True,\n    help=\"Default is the strict mode which will raise an exception if the values for license is not set.\",\n)\ndef install_live(strict: bool) -> None:\n    \"\"\"Install and configure the live trading plugin.\"\"\"\n    from jesse.services.installer import install\n\n    install(is_live_plugin_already_installed=jh.has_live_trade_plugin(), strict=strict)\n\n\n@cli.command()\ndef run() -> None:\n    \"\"\"Start the Jesse application server.\"\"\"\n    # Display welcome message\n    welcome_message = \"\"\"\n     ██╗███████╗███████╗███████╗███████╗\n     ██║██╔════╝██╔════╝██╔════╝██╔════╝\n     ██║█████╗  ███████╗███████╗█████╗  \n██   ██║██╔══╝  ╚════██║╚════██║██╔══╝  \n╚█████╔╝███████╗███████║███████║███████╗\n ╚════╝ ╚══════╝╚══════╝╚══════╝╚══════╝\n                                        \n    \"\"\"\n    version = get_version(\"jesse\")\n    print(welcome_message)\n    print(f\"Main Framework Version: {version}\")\n\n    # Check if jesse-live is installed and display its version\n    if jh.has_live_trade_plugin():\n        try:\n            from jesse_live.version import __version__ as live_version\n\n            print(f\"Live Plugin Version: {live_version}\")\n        except ImportError:\n            pass\n\n    jh.validate_cwd()\n\n    print(\"\")\n\n    # run all the db migrations\n    from jesse.services.migrator import run as run_migrations\n    import peewee\n\n    try:\n        run_migrations()\n    except peewee.OperationalError:\n        sleep_seconds = 10\n        print(f\"Database wasn't ready. Sleep for {sleep_seconds} seconds and try again.\")\n        time.sleep(sleep_seconds)\n        run_migrations()\n\n    # Install Python Language Server if needed\n    try:\n        from jesse.services.lsp import install_lsp_server\n\n        install_lsp_server()\n    except Exception as e:\n        print(jh.color(f\"Error installing Python Language Server: {str(e)}\", \"red\"))\n        pass\n\n    # read port from .env file, if not found, use default\n    from jesse.services.env import ENV_VALUES\n\n    if \"APP_PORT\" in ENV_VALUES:\n        port = int(ENV_VALUES[\"APP_PORT\"])\n    else:\n        port = 9000\n\n    if \"APP_HOST\" in ENV_VALUES:\n        host = ENV_VALUES[\"APP_HOST\"]\n    else:\n        host = \"0.0.0.0\"\n\n    # run the lsp server\n    try:\n        from jesse.services.lsp import run_lsp_server\n\n        run_lsp_server()\n    except Exception as e:\n        print(jh.color(f\"Error running Python Language Server: {str(e)}\", \"red\"))\n        pass\n\n    # run the main application\n    process_manager.flush()\n    uvicorn.run(fastapi_app, host=host, port=port, log_level=\"info\")\n\n"
  },
  {
    "path": "jesse/config.py",
    "content": "import jesse.helpers as jh\nfrom jesse.modes.utils import get_exchange_type\nfrom jesse.enums import exchanges\nfrom jesse.info import exchange_info\n\n# Main configuration used by the Jesse framework. These values are modified\n# at runtime based on the mode (backtest, live, or optimize) and user settings.\nconfig = {\n    # these values are related to the user's environment\n    'env': {\n        'caching': {\n            'driver': 'pickle'\n        },\n\n        'logging': {\n            'strategy_execution': True,\n            'order_submission': True,\n            'order_cancellation': True,\n            'order_execution': True,\n            'position_opened': True,\n            'position_increased': True,\n            'position_reduced': True,\n            'position_closed': True,\n            'shorter_period_candles': False,\n            'trading_candles': True,\n            'balance_update': True,\n            'exchange_ws_reconnection': True\n        },\n\n        # fill it later in this file using data in info.py\n        'exchanges': {\n            exchanges.SANDBOX: {\n                'fee': 0,\n                'type': 'futures',\n                # accepted values are: 'cross' and 'isolated'\n                'futures_leverage_mode': 'cross',\n                # 1x, 2x, 10x, 50x, etc. Enter as integers\n                'futures_leverage': 1,\n                'balance': 10_000,\n            },\n        },\n\n        # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #\n        # Optimize mode (using Optuna)\n        # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #\n        #\n        # Below configurations are related to the optimize mode\n        # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #\n        'optimization': {\n            # available ratio options: sharpe, calmar, sortino, omega, serenity, smart sharpe, smart sortino\n            'objective_function': 'sharpe',\n            # number of trials per each hyperparameter\n            'trials': 200,\n            # number of best candidates to keep and display\n            'best_candidates_count': 20,\n        },\n\n        # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #\n        # Data\n        # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #\n        #\n        # Below configurations are related to the data\n        # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #\n        'data': {\n            # The minimum number of warmup candles that is loaded before each session.\n            'warmup_candles_num': 240,\n            'generate_candles_from_1m': False,\n            'persistency': True,\n        },\n    },\n\n    # These values are just placeholders used by Jesse at runtime\n    'app': {\n        # list of currencies to consider\n        'considering_symbols': [],\n        # The symbol to trade.\n        'trading_symbols': [],\n\n        # list of time frames to consider\n        'considering_timeframes': [],\n        # Which candle type do you intend trade on\n        'trading_timeframes': [],\n\n        # list of exchanges to consider\n        'considering_exchanges': [],\n        # list of exchanges to consider\n        'trading_exchanges': [],\n\n        'considering_candles': [],\n\n        # dict of registered live trade drivers\n        'live_drivers': {},\n\n        # Accepted values are: 'backtest', 'livetrade', 'fitness'.\n        'trading_mode': '',\n\n        # this would enable many console.log()s in the code, which are helpful for debugging.\n        'debug_mode': False,\n\n        # this is only used for the live unit tests\n        'is_unit_testing': False,\n    },\n}\n\n# set exchange config values based on the info\nfor key in exchange_info:\n    config['env']['exchanges'][key] = {\n        'fee': exchange_info[key]['fee'],\n        'type': exchange_info[key]['type'],\n        'futures_leverage_mode': 'cross',\n        'futures_leverage': 1,\n        'balance': 10_000\n    }\n\n\ndef set_config(conf: dict) -> None:\n    global config\n\n    # optimization mode only\n    if jh.is_optimizing():\n        # objective function\n        if 'objective_function' in conf:\n            config['env']['optimization']['objective_function'] = conf['objective_function']\n        # warm_up_candles\n        config['env']['data']['warmup_candles_num'] = int(conf['warm_up_candles'])\n        # number of trials per each hyperparameter\n        config['env']['optimization']['trials'] = int(conf['trials'])\n        # best candidates count\n        if 'best_candidates_count' in conf:\n            config['env']['optimization']['best_candidates_count'] = int(conf['best_candidates_count'])\n\n    # backtest and live\n    if jh.is_backtesting() or jh.is_live():\n        # warm_up_candles\n        config['env']['data']['warmup_candles_num'] = int(conf['warm_up_candles'])\n        # logs\n        config['env']['logging'] = conf['logging']\n        # exchanges\n        for key, e in conf['exchanges'].items():\n            if not jh.is_live() and e['type']:\n                exchange_type = e['type']\n            else:\n                exchange_type = get_exchange_type(e['name'])\n            config['env']['exchanges'][e['name']] = {\n                'fee': float(e['fee']),\n                'type': exchange_type,\n                'balance': float(e['balance'])\n            }\n            if config['env']['exchanges'][e['name']]['type'] == 'futures':\n                # 1x, 2x, 10x, 50x, etc. Enter as integers\n                config['env']['exchanges'][e['name']]['futures_leverage'] = int(e.get('futures_leverage', 1))\n                # accepted values are: 'cross' and 'isolated'\n                config['env']['exchanges'][e['name']]['futures_leverage_mode'] = e.get('futures_leverage_mode', 'cross')\n\n    # live mode only\n    if jh.is_live():\n        config['env']['notifications'] = conf['notifications']\n        config['env']['data']['persistency'] = conf['persistency']\n        config['env']['data']['generate_candles_from_1m'] = conf['generate_candles_from_1m']\n\n    # TODO: must become a config value later when we go after multi account support?\n    config['env']['identifier'] = 'main'\n\n\ndef reset_config() -> None:\n    global config\n    config = backup_config.copy()\n\n\nbackup_config = config.copy()\n"
  },
  {
    "path": "jesse/constants.py",
    "content": "from jesse.enums import timeframes\n\n\nCANDLE_SOURCE_MAPPING = {\n    \"open\":    lambda c: c[:, 1],\n    \"close\":   lambda c: c[:, 2],\n    \"high\":    lambda c: c[:, 3],\n    \"low\":     lambda c: c[:, 4],\n    \"volume\":  lambda c: c[:, 5],\n    \"hl2\":     lambda c: (c[:, 3] + c[:, 4]) / 2,\n    \"hlc3\":    lambda c: (c[:, 3] + c[:, 4] + c[:, 2]) / 3,\n    \"ohlc4\":   lambda c: (c[:, 1] + c[:, 3] + c[:, 4] + c[:, 2]) / 4,\n}\n\n\nTIMEFRAME_PRIORITY = [\n    timeframes.DAY_1,\n    timeframes.HOUR_12,\n    timeframes.HOUR_8,\n    timeframes.HOUR_6,\n    timeframes.HOUR_4,\n    timeframes.HOUR_3,\n    timeframes.HOUR_2,\n    timeframes.HOUR_1,\n    timeframes.MINUTE_45,\n    timeframes.MINUTE_30,\n    timeframes.MINUTE_15,\n    timeframes.MINUTE_5,\n    timeframes.MINUTE_3,\n    timeframes.MINUTE_1,\n]\n\n\nTIMEFRAME_TO_ONE_MINUTES = {\n    timeframes.MINUTE_1: 1,\n    timeframes.MINUTE_3: 3,\n    timeframes.MINUTE_5: 5,\n    timeframes.MINUTE_15: 15,\n    timeframes.MINUTE_30: 30,\n    timeframes.MINUTE_45: 45,\n    timeframes.HOUR_1: 60,\n    timeframes.HOUR_2: 60 * 2,\n    timeframes.HOUR_3: 60 * 3,\n    timeframes.HOUR_4: 60 * 4,\n    timeframes.HOUR_6: 60 * 6,\n    timeframes.HOUR_8: 60 * 8,\n    timeframes.HOUR_12: 60 * 12,\n    timeframes.DAY_1: 60 * 24,\n    timeframes.DAY_3: 60 * 24 * 3,\n    timeframes.WEEK_1: 60 * 24 * 7,\n    timeframes.MONTH_1: 60 * 24 * 30,\n}\n\n\nSUPPORTED_COLORS = {\n    'black',\n    'red',\n    'green',\n    'yellow',\n    'blue',\n    'magenta',\n    'cyan',\n    'white',\n    #'gray',\n}"
  },
  {
    "path": "jesse/controllers/__init__.py",
    "content": "from .exchange_controller import get_exchange_supported_symbols\n"
  },
  {
    "path": "jesse/controllers/auth_controller.py",
    "content": "from typing import Optional\nfrom fastapi import APIRouter, Header, BackgroundTasks\nfrom fastapi.responses import JSONResponse\nimport requests\nfrom jesse.services.env import ENV_VALUES\nfrom jesse.services import auth as authenticator\nfrom jesse.services.multiprocessing import process_manager\nfrom jesse.services.web import LoginRequestJson\nimport jesse.helpers as jh\nfrom jesse.info import JESSE_API2_URL\n\nrouter = APIRouter(prefix=\"/auth\", tags=[\"Authentication\"])\n\n\n@router.post(\"/login\")\ndef login(json_request: LoginRequestJson):\n    \"\"\"\n    Authenticate user with password and return a token\n    \"\"\"\n    return authenticator.password_to_token(json_request.password)\n\n\n@router.post(\"/user-validation\")\ndef login(json_request: LoginRequestJson):\n    \"\"\"\n    Authenticate user with password and return a token\n    \"\"\"\n    return authenticator.user_validation(json_request.password)\n\n\n@router.post(\"\")\ndef auth(json_request: LoginRequestJson):\n    \"\"\"\n    Authenticate user with password and return a token\n    \"\"\"\n    return authenticator.password_to_token(json_request.password)\n\n\n@router.post(\"/shutdown\")\nasync def shutdown(background_tasks: BackgroundTasks, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Shutdown the application\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    background_tasks.add_task(jh.terminate_app)\n    return JSONResponse({'message': 'Shutting down...'})\n\n\n@router.post(\"/jesse-trade-token\")\nasync def jesse_trade_token(authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Exchange LICENSE_API_TOKEN for jesse.trade bearer token\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    if 'LICENSE_API_TOKEN' not in ENV_VALUES or not ENV_VALUES['LICENSE_API_TOKEN']:\n        return JSONResponse({\n            'status': 'error',\n            'message': 'LICENSE_API_TOKEN not found in .env file'\n        }, status_code=400)\n\n    license_token = ENV_VALUES['LICENSE_API_TOKEN']\n    \n    try:\n        response = requests.post(\n            f'{JESSE_API2_URL}/auth/exchange-token',\n            json={'license_api_token': license_token},\n            timeout=10\n        )\n        \n        if response.status_code == 200:\n            data = response.json()\n            return JSONResponse({\n                'status': 'success',\n                'access_token': data.get('access_token'),\n                'user': data.get('user')\n            })\n        else:\n            return JSONResponse({\n                'status': 'error',\n                'message': f'Failed to exchange token: {response.text}'\n            }, status_code=response.status_code)\n    except requests.exceptions.RequestException as e:\n        return JSONResponse({\n            'status': 'error',\n            'message': f'Error connecting to jesse.trade: {str(e)}'\n        }, status_code=500)\n"
  },
  {
    "path": "jesse/controllers/backtest_controller.py",
    "content": "from typing import Optional\nfrom fastapi import APIRouter, Header, Query, Body\nfrom fastapi.responses import JSONResponse, FileResponse\nimport json\nfrom jesse.services import auth as authenticator\nfrom jesse.services.multiprocessing import process_manager\nfrom jesse.services.web import BacktestRequestJson, CancelRequestJson, UpdateBacktestSessionStateRequestJson, GetBacktestSessionsRequestJson, UpdateBacktestSessionNotesRequestJson\nimport jesse.helpers as jh\nfrom jesse.models.BacktestSession import (\n    get_backtest_sessions as get_sessions,\n    update_backtest_session_state,\n    update_backtest_session_notes,\n    delete_backtest_session,\n    get_backtest_session_by_id as get_backtest_session_by_id_from_db,\n    update_backtest_session_status,\n    purge_backtest_sessions\n)\nfrom jesse.services.transformers import get_backtest_session, get_backtest_session_for_load_more\nfrom jesse.modes.backtest_mode import run as run_backtest\nfrom jesse.modes.data_provider import get_backtest_logs, download_backtest_log\n\n\nrouter = APIRouter(prefix=\"/backtest\", tags=[\"Backtest\"])\n\n\n@router.post(\"\")\ndef backtest(request_json: BacktestRequestJson, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Start a backtest process\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    jh.validate_cwd()\n\n    process_manager.add_task(\n        run_backtest,\n        request_json.id,\n        request_json.debug_mode,\n        request_json.config,\n        request_json.exchange,\n        request_json.routes,\n        request_json.data_routes,\n        request_json.start_date,\n        request_json.finish_date,\n        None,\n        request_json.export_chart,\n        request_json.export_tradingview,\n        request_json.export_csv,\n        request_json.export_json,\n        request_json.fast_mode,\n        request_json.benchmark\n    )\n\n    return JSONResponse({'message': 'Started backtesting...'}, status_code=202)\n\n\n@router.post(\"/cancel\")\ndef cancel_backtest(request_json: CancelRequestJson, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Cancel a backtest process\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    process_manager.cancel_process(request_json.id)\n    \n    update_backtest_session_status(request_json.id, 'cancelled')\n\n    return JSONResponse({'message': f'Backtest process with ID of {request_json.id} was requested for termination'},\n                        status_code=202)\n\n\n@router.get(\"/logs/{session_id}\")\ndef get_logs(session_id: str, token: str = Query(...)):\n    \"\"\"\n    Get logs as text for a specific session. Similar to download but returns text content instead of file.\n    \"\"\"\n    if not authenticator.is_valid_token(token):\n        return authenticator.unauthorized_response()\n\n    try:\n        content = get_backtest_logs(session_id)\n\n        if content is None:\n            return JSONResponse({'error': 'Log file not found'}, status_code=404)\n\n        return JSONResponse({'content': content}, status_code=200)\n    except Exception as e:\n        return JSONResponse({'error': str(e)}, status_code=500)\n\n\n@router.get(\"/download-log/{session_id}\")\ndef download_backtest_log(session_id: str, token: str = Query(...)):\n    \"\"\"\n    Download log file for a specific backtest session\n    \"\"\"\n    if not authenticator.is_valid_token(token):\n        return authenticator.unauthorized_response()\n\n    try:\n        return download_backtest_log(session_id)\n    except Exception as e:\n        return JSONResponse({'error': str(e)}, status_code=500)\n\n\n@router.post(\"/sessions\")\ndef get_backtest_sessions(request_json: GetBacktestSessionsRequestJson = Body(default=GetBacktestSessionsRequestJson()), authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Get a list of backtest sessions sorted by most recently updated with pagination\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    # Get sessions from the database with pagination and filters\n    sessions = get_sessions(\n        limit=request_json.limit, \n        offset=request_json.offset,\n        title_search=request_json.title_search,\n        status_filter=request_json.status_filter,\n        date_filter=request_json.date_filter\n    )\n\n    # Transform the sessions using the transformer\n    transformed_sessions = [get_backtest_session(session) for session in sessions]\n\n    return JSONResponse({\n        'sessions': transformed_sessions,\n        'count': len(transformed_sessions)\n    })\n\n\n@router.post(\"/sessions/{session_id}\")\ndef get_backtest_session_by_id(session_id: str, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Get a single backtest session by ID\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    # Get the session from the database\n    session = get_backtest_session_by_id_from_db(session_id)\n\n    if not session:\n        return JSONResponse({\n            'error': f'Session with ID {session_id} not found'\n        }, status_code=404)\n\n    # Transform the session using the transformer\n    transformed_session = get_backtest_session_for_load_more(session)\n    transformed_session = jh.clean_infinite_values(transformed_session)\n\n    return JSONResponse({\n        'session': transformed_session\n    })\n\n\n@router.post(\"/update-state\")\ndef update_session_state(request_json: UpdateBacktestSessionStateRequestJson, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Update the state of a backtest session\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    update_backtest_session_state(request_json.id, request_json.state)\n\n    return JSONResponse({\n        'message': 'Backtest session state updated successfully'\n    })\n\n\n@router.post(\"/sessions/{session_id}/remove\")\ndef remove_backtest_session(session_id: str, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Remove a backtest session from the database\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    session = get_backtest_session_by_id_from_db(session_id)\n\n    if not session:\n        return JSONResponse({\n            'error': f'Session with ID {session_id} not found'\n        }, status_code=404)\n\n    # Delete the session from the database\n    result = delete_backtest_session(session_id)\n\n    if not result:\n        return JSONResponse({\n            'error': f'Failed to delete session with ID {session_id}'\n        }, status_code=500)\n\n    return JSONResponse({\n        'message': 'Backtest session removed successfully'\n    })\n\n\n@router.post(\"/sessions/{session_id}/notes\")\ndef update_session_notes(session_id: str, request_json: UpdateBacktestSessionNotesRequestJson, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Update the notes (title, description, strategy_codes) of a backtest session\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    session = get_backtest_session_by_id_from_db(session_id)\n\n    if not session:\n        return JSONResponse({\n            'error': f'Session with ID {session_id} not found'\n        }, status_code=404)\n\n    update_backtest_session_notes(session_id, request_json.title, request_json.description, request_json.strategy_codes)\n\n    return JSONResponse({\n        'message': 'Backtest session notes updated successfully'\n    })\n\n\n@router.post(\"/purge-sessions\")\ndef purge_sessions(request_json: dict = Body(...), authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Purge backtest sessions older than specified days\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n    \n    days_old = request_json.get('days_old', None)\n    \n    deleted_count = purge_backtest_sessions(days_old)\n    \n    return JSONResponse({\n        'message': f'Successfully purged {deleted_count} session(s)',\n        'deleted_count': deleted_count\n    }, status_code=200)\n\n\n@router.post(\"/sessions/{session_id}/chart-data\")\ndef get_backtest_session_chart_data(session_id: str, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Get chart data for a specific backtest session\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    session = get_backtest_session_by_id_from_db(session_id)\n\n    if not session:\n        return JSONResponse({\n            'error': f'Session with ID {session_id} not found'\n        }, status_code=404)\n\n    chart_data = jh.clean_infinite_values(json.loads(session.chart_data)) if session.chart_data else None\n\n    return JSONResponse({\n        'chart_data': chart_data\n    })\n\n\n@router.post(\"/sessions/{session_id}/strategy-code\")\ndef get_backtest_session_strategy_codes(session_id: str, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Get strategy codes for a specific backtest session\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    session = get_backtest_session_by_id_from_db(session_id)\n\n    if not session:\n        return JSONResponse({\n            'error': f'Session with ID {session_id} not found'\n        }, status_code=404)\n\n    return JSONResponse({\n        'strategy_code': json.loads(session.strategy_codes) if session.strategy_codes else {}\n    })\n\n"
  },
  {
    "path": "jesse/controllers/candles_controller.py",
    "content": "from typing import Optional\nfrom fastapi import APIRouter, Header\nfrom starlette.responses import JSONResponse\nfrom jesse.repositories import candle_repository\nfrom jesse.services import auth as authenticator\nfrom jesse.services.multiprocessing import process_manager\nfrom jesse.services.web import ImportCandlesRequestJson, CancelRequestJson, GetCandlesRequestJson, DeleteCandlesRequestJson\nimport jesse.helpers as jh\n\nrouter = APIRouter(prefix=\"/candles\", tags=[\"Candles\"])\n\n\n@router.post(\"/import\")\ndef import_candles(request_json: ImportCandlesRequestJson, authorization: Optional[str] = Header(None)) -> JSONResponse:\n    \"\"\"\n    Import candles for a specific exchange and symbol\n    \"\"\"\n    jh.validate_cwd()\n\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    from jesse.modes import import_candles_mode\n\n    process_manager.add_task(\n        import_candles_mode.run, \n        request_json.id, \n        request_json.exchange, \n        request_json.symbol,\n        request_json.start_date\n    )\n\n    return JSONResponse({'message': 'Started importing candles...'}, status_code=202)\n\n\n@router.post(\"/cancel-import\")\ndef cancel_import_candles(request_json: CancelRequestJson, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Cancel an import candles process\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    process_manager.cancel_process(request_json.id)\n\n    return JSONResponse({'message': f'Candles process with ID of {request_json.id} was requested for termination'},\n                        status_code=202)\n\n\n@router.post(\"/clear-cache\")\ndef clear_candles_database_cache(authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Clear the candles database cache\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    from jesse.services.cache import cache\n    cache.flush()\n\n    return JSONResponse({\n        'status': 'success',\n        'message': 'Candles database cache cleared successfully',\n    }, status_code=200)\n\n\n@router.post(\"/get\")\ndef get_candles(json_request: GetCandlesRequestJson, authorization: Optional[str] = Header(None)) -> JSONResponse:\n    \"\"\"\n    Get candles for a specific exchange, symbol, and timeframe\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    jh.validate_cwd()\n\n    from jesse.modes.data_provider import get_candles as gc\n\n    arr = gc(json_request.exchange, json_request.symbol, json_request.timeframe)\n\n    return JSONResponse({\n        'id': json_request.id,\n        'data': arr\n    }, status_code=200)\n\n\n@router.post(\"/existing\")\ndef get_existing_candles(authorization: Optional[str] = Header(None)) -> JSONResponse:\n    \"\"\"\n    Get all existing candles in the database\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n    \n    try:\n        data = candle_repository.get_existing_candles()\n        return JSONResponse({'data': data}, status_code=200)\n    except Exception as e:\n        return JSONResponse({'error': str(e)}, status_code=500)\n\n\n@router.post(\"/delete\")\ndef delete_candles(json_request: DeleteCandlesRequestJson, authorization: Optional[str] = Header(None)) -> JSONResponse:\n    \"\"\"\n    Delete candles for a specific exchange and symbol\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    try:\n        candle_repository.delete_candles_from_db(json_request.exchange, json_request.symbol)\n        return JSONResponse({'message': 'Candles deleted successfully'}, status_code=200)\n    except Exception as e:\n        return JSONResponse({'error': str(e)}, status_code=500)\n"
  },
  {
    "path": "jesse/controllers/closed_trade_controller.py",
    "content": "from typing import Optional\nfrom fastapi import APIRouter, Header, Query, Body\nfrom fastapi.responses import JSONResponse\n\nfrom jesse.services import auth as authenticator\nfrom jesse.repositories import closed_trade_repository\nfrom jesse.services.transformers import get_closed_trade_for_list, get_closed_trade_details\nfrom jesse.services.web import GetTradesHistoryRequestJson\n\nrouter = APIRouter(prefix=\"/closed-trades\", tags=[\"Closed Trades\"])\n\n\n@router.get(\"/list\")\ndef get_closed_trades(\n    session_id: str = Query(...), \n    limit: int = Query(10, ge=1, le=1000),\n    authorization: Optional[str] = Header(None)\n) -> JSONResponse:\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n    \n    try:\n        # Query trades for the session with limit\n        trades = closed_trade_repository.find_by_session_id(session_id, limit=limit)\n        \n        # Transform trades for list view\n        trades_list = [get_closed_trade_for_list(trade) for trade in trades]\n        \n        return JSONResponse({\n            'data': trades_list\n        }, status_code=200)\n    except Exception as e:\n        return JSONResponse({\n            'error': str(e)\n        }, status_code=500)\n\n\n@router.get(\"/{trade_id}\")\ndef get_closed_trade_by_id(trade_id: str, authorization: Optional[str] = Header(None)) -> JSONResponse:\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n    \n    try:\n        # Fetch trade by ID\n        trade = closed_trade_repository.find_by_id(trade_id)\n        \n        if not trade:\n            return JSONResponse({\n                'error': 'Trade not found'\n            }, status_code=404)\n        \n        # Transform trade with full details including orders\n        trade_details = get_closed_trade_details(trade)\n        \n        return JSONResponse({\n            'data': trade_details\n        }, status_code=200)\n    except Exception as e:\n        return JSONResponse({\n            'error': str(e)\n        }, status_code=500)\n\n\n@router.post(\"/live-history\")\ndef get_trades_live_history(\n    request_json: GetTradesHistoryRequestJson = Body(...),\n    authorization: Optional[str] = Header(None)\n) -> JSONResponse:\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    try:\n        # Fetch trades with filters\n        trades = closed_trade_repository.find_by_filters(\n            id_search=request_json.id_search,\n            status_filter=request_json.status_filter,\n            symbol_filter=request_json.symbol_filter,\n            date_filter=request_json.date_filter,\n            exchange_filter=request_json.exchange_filter,\n            type_filter=request_json.type_filter,\n            limit=request_json.limit,\n            offset=request_json.offset\n        )\n        \n        # Transform trades for list view\n        trades_list = [get_closed_trade_for_list(trade) for trade in trades]\n        \n        return JSONResponse({\n            'trades': trades_list\n        }, status_code=200)\n    except Exception as e:\n        import traceback\n        import jesse.helpers as jh\n        jh.debug(f\"Error fetching trades history: {str(e)}\")\n        jh.debug(traceback.format_exc())\n        return JSONResponse({\n            'error': str(e)\n        }, status_code=500)\n\n"
  },
  {
    "path": "jesse/controllers/config_controller.py",
    "content": "from typing import Optional\nfrom fastapi import APIRouter, Header\nfrom fastapi.responses import JSONResponse\n\nfrom jesse.services import auth as authenticator\nfrom jesse.services.web import ConfigRequestJson\nimport jesse.helpers as jh\n\nrouter = APIRouter(prefix=\"/config\", tags=[\"Configuration\"])\n\n\n@router.post(\"/get\")\ndef get_config(json_request: ConfigRequestJson, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Get the current configuration\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    from jesse.modes.data_provider import get_config as gc\n\n    return JSONResponse({\n        'data': gc(json_request.current_config, has_live=jh.has_live_trade_plugin())\n    }, status_code=200)\n\n\n@router.post(\"/update\")\ndef update_config(json_request: ConfigRequestJson, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Update the configuration\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    from jesse.modes.data_provider import update_config as uc\n\n    uc(json_request.current_config)\n\n    return JSONResponse({'message': 'Updated configurations successfully'}, status_code=200)\n"
  },
  {
    "path": "jesse/controllers/exchange_controller.py",
    "content": "from typing import Optional\nfrom fastapi import APIRouter, Header\nfrom starlette.responses import JSONResponse\n\nfrom jesse.modes.import_candles_mode import CandleExchange\nfrom jesse.modes.import_candles_mode.drivers import drivers, driver_names\nfrom jesse.services import auth as authenticator\nfrom jesse.services.redis import sync_redis\nfrom jesse.services.web import ExchangeSupportedSymbolsRequestJson, StoreExchangeApiKeyRequestJson, DeleteExchangeApiKeyRequestJson\nfrom jesse.services.env import is_dev_env\n\n\nrouter = APIRouter(prefix=\"/exchange\", tags=[\"Exchange\"])\n\n\n@router.post('/supported-symbols')\ndef exchange_supported_symbols(request_json: ExchangeSupportedSymbolsRequestJson, authorization: Optional[str] = Header(None)) -> JSONResponse:\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n    \n    # if is_dev_env():\n    #     return JSONResponse({\n    #         'data': [    \n    #             'BTC-USDT', 'ETH-USDT', 'SOL-USDT', 'DOGE-USDT'\n    #         ]\n    #     }, status_code=200)\n\n    return get_exchange_supported_symbols(request_json.exchange)\n\n\n@router.get('/api-keys')\ndef get_exchange_api_keys_endpoint(authorization: Optional[str] = Header(None)) -> JSONResponse:\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    from jesse.modes.exchange_api_keys import get_exchange_api_keys\n    return get_exchange_api_keys()\n\n\n@router.post('/api-keys/store')\ndef store_exchange_api_keys_endpoint(json_request: StoreExchangeApiKeyRequestJson,\n                        authorization: Optional[str] = Header(None)) -> JSONResponse:\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    from jesse.modes.exchange_api_keys import store_exchange_api_keys\n    return store_exchange_api_keys(\n        json_request.exchange, json_request.name, json_request.api_key, json_request.api_secret,\n        json_request.additional_fields, json_request.general_notifications_id, json_request.error_notifications_id\n    )\n\n\n@router.post('/api-keys/delete')\ndef delete_exchange_api_keys_endpoint(json_request: DeleteExchangeApiKeyRequestJson,\n                         authorization: Optional[str] = Header(None)) -> JSONResponse:\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    from jesse.modes.exchange_api_keys import delete_exchange_api_keys\n    return delete_exchange_api_keys(json_request.id)\n\n\ndef get_exchange_supported_symbols(exchange: str) -> JSONResponse:\n    # first try to get from cache\n    cache_key = f'exchange-symbols:{exchange}'\n    cached_result = sync_redis.get(cache_key)\n    if cached_result is not None:\n        return JSONResponse({\n            'data': eval(cached_result)\n        }, status_code=200)\n\n    arr = []\n\n    try:\n        driver: CandleExchange = drivers[exchange]()\n    except KeyError:\n        raise ValueError(f'{exchange} is not a supported exchange. Supported exchanges are: {driver_names}')\n\n    try:\n        arr = driver.get_available_symbols()\n        # cache successful result for 5 minutes\n        sync_redis.setex(cache_key, 300, str(arr))\n    except Exception as e:\n        return JSONResponse({\n            'error': str(e)\n        }, status_code=500)\n\n    return JSONResponse({\n        'data': arr\n    }, status_code=200)\n"
  },
  {
    "path": "jesse/controllers/file_controller.py",
    "content": "from fastapi import APIRouter, Query, Header, UploadFile, Form, File\nfrom typing import Optional\n\nfrom jesse.services import auth as authenticator\nfrom jesse.modes import data_provider\nfrom jesse.services.web import ImportApiKeyRequestJson, LoginRequestJson\nfrom jesse.services.env import ENV_VALUES\nimport jesse.helpers as jh\nrouter = APIRouter(prefix=\"/download\", tags=[\"Download\"])\n\n\n@router.get(\"/{mode}/{file_type}/{session_id}\")\ndef download(mode: str, file_type: str, session_id: str, token: str = Query(...)):\n    \"\"\"\n    Download files such as logs or other generated files.\n    Log files require session_id because there is one log per each session. Except for the optimize mode.\n    \"\"\"\n    if not authenticator.is_valid_token(token):\n        return authenticator.unauthorized_response()\n\n    return data_provider.download_file(mode, file_type, session_id)\n\n\n@router.post(\"/download-api-keys\")\ndef download_api_keys(\n    request_json: LoginRequestJson,\n    authorization: Optional[str] = Header(None)\n):\n    \"\"\"\n    Download exchange API Keys - requires password verification\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    # Verify password for this sensitive operation\n    if request_json.password != ENV_VALUES['PASSWORD']:\n        return authenticator.unauthorized_response()\n\n    jh.validate_cwd()\n\n    return data_provider.download_api_keys()\n\n\n@router.post(\"/import-api-keys\")\nasync def import_api_keys(\n    request_json: ImportApiKeyRequestJson,\n    authorization: Optional[str] = Header(None)\n):\n    \"\"\"\n    Import exchange API keys from CSV text received in the request body.\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    try:\n        # remove leading/trailing whitespace\n        csv_content = request_json.content.strip()           \n\n        # validate CSV content\n        if not data_provider.validate_csv_content(csv_content):\n            return {\n                'success': False,\n                'error': 'Invalid CSV content or potential security threat detected'\n            }\n\n        # import exchange API keys\n        result = data_provider.import_api_keys_from_csv(csv_content)\n\n        return result\n    except Exception as e:\n        return {\n            'success': False,\n            'error': str(e)\n        }\n"
  },
  {
    "path": "jesse/controllers/live_controller.py",
    "content": "from typing import Optional\nfrom fastapi import APIRouter, Header, Body\nfrom fastapi.responses import JSONResponse\n\nfrom jesse.services import auth as authenticator\nfrom jesse.services.multiprocessing import process_manager\nfrom jesse.services.web import (\n    LiveRequestJson, \n    LiveCancelRequestJson, \n    GetLogsRequestJson, \n    GetOrdersRequestJson,\n    GetLiveSessionsRequestJson,\n    UpdateLiveSessionNotesRequestJson,\n    UpdateLiveSessionStateRequestJson\n)\nimport jesse.helpers as jh\nfrom jesse.repositories import live_session_repository\nfrom jesse.services import transformers\nfrom jesse_live import live_mode\nfrom jesse_live.services.data_provider import get_logs as gl, get_orders as go\nfrom jesse.enums import live_session_statuses, live_session_modes\n\nrouter = APIRouter(prefix=\"/live\", tags=[\"Live Trading\"])\n\n\n@router.post(\"\")\ndef live(request_json: LiveRequestJson, authorization: Optional[str] = Header(None)) -> JSONResponse:\n    \"\"\"\n    Start live trading\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    jh.validate_cwd()\n\n    trading_mode = live_session_modes.LIVETRADE if request_json.paper_mode is False else live_session_modes.PAPERTRADE\n\n    live_session_repository.store_live_session(\n        id=request_json.id,\n        status=live_session_statuses.STARTING,\n        session_mode=trading_mode,\n        exchange=request_json.exchange,\n        state={\n            'form': {\n                'debug_mode': request_json.debug_mode,\n                'paper_mode': request_json.paper_mode,\n                'exchange': request_json.exchange,\n                'exchange_api_key_id': request_json.exchange_api_key_id,\n                'notification_api_key_id': request_json.notification_api_key_id,\n                'routes': request_json.routes,\n                'data_routes': request_json.data_routes,\n            }\n        },\n    )\n\n    # execute live session\n    process_manager.add_task(\n        live_mode.run,\n        request_json.id,\n        request_json.debug_mode,\n        request_json.exchange,\n        request_json.exchange_api_key_id,\n        request_json.notification_api_key_id,\n        request_json.config,\n        request_json.routes,\n        request_json.data_routes,\n        trading_mode,\n    )\n\n    mode = 'live' if request_json.paper_mode is False else 'paper'\n    return JSONResponse({'message': f\"Started {mode} trading...\"}, status_code=202)\n\n\n@router.post(\"/cancel\")\ndef cancel_live(request_json: LiveCancelRequestJson, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Cancel live trading\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    process_manager.cancel_process(request_json.id)\n\n    return JSONResponse({'message': f'Live process with ID of {request_json.id} terminated.'}, status_code=200)\n\n\n@router.post('/logs')\ndef get_logs(json_request: GetLogsRequestJson, authorization: Optional[str] = Header(None)) -> JSONResponse:\n    \"\"\"\n    Get logs for a live trading session\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    arr = gl(json_request.id, json_request.type, json_request.start_time)\n\n    return JSONResponse({\n        'id': json_request.id,\n        'data': arr\n    }, status_code=200)\n\n\n@router.post('/orders')\ndef get_orders(json_request: GetOrdersRequestJson, authorization: Optional[str] = Header(None)) -> JSONResponse:\n    \"\"\"\n    Get orders for a live trading session\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    arr = go(json_request.session_id)\n\n    return JSONResponse({\n        'id': json_request.id,\n        'data': arr\n    }, status_code=200)\n\n\n@router.post(\"/sessions\")\ndef get_live_sessions(\n    request_json: GetLiveSessionsRequestJson = Body(default=GetLiveSessionsRequestJson()),\n    authorization: Optional[str] = Header(None)\n):\n    \"\"\"\n    Get a list of live sessions sorted by most recently updated with pagination\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    # Get sessions from the database with pagination and filters\n    sessions = live_session_repository.get_live_sessions(\n        limit=request_json.limit,\n        offset=request_json.offset,\n        title_search=request_json.title_search,\n        status_filter=request_json.status_filter,\n        date_filter=request_json.date_filter,\n        mode_filter=request_json.mode_filter\n    )\n\n    # Transform the sessions using the transformer\n    transformed_sessions = [transformers.get_live_session(session) for session in sessions]\n\n    return JSONResponse({\n        'sessions': transformed_sessions,\n        'count': len(transformed_sessions)\n    })\n\n\n@router.post(\"/sessions/{session_id}\")\ndef get_live_session_by_id(session_id: str, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Get a single live session by ID\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    # Get the session from the database\n    session = live_session_repository.get_live_session_by_id(session_id)\n\n    if not session:\n        return JSONResponse({\n            'error': f'Session with ID {session_id} not found'\n        }, status_code=404)\n\n    # Transform the session using the transformer\n    transformed_session = transformers.get_live_session(session)\n\n    return JSONResponse({\n        'session': transformed_session\n    })\n\n\n@router.post(\"/sessions/{session_id}/remove\")\ndef remove_live_session(session_id: str, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Remove a live session from the database\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    session = live_session_repository.get_live_session_by_id(session_id)\n\n    if not session:\n        return JSONResponse({\n            'error': f'Session with ID {session_id} not found'\n        }, status_code=404)\n\n    # Delete the session from the database\n    result = live_session_repository.delete_live_session(session_id)\n\n    if not result:\n        return JSONResponse({\n            'error': f'Failed to delete session with ID {session_id}'\n        }, status_code=500)\n\n    return JSONResponse({\n        'message': 'Live session removed successfully'\n    })\n\n\n@router.post(\"/sessions/{session_id}/notes\")\ndef update_session_notes(\n    session_id: str,\n    request_json: UpdateLiveSessionNotesRequestJson,\n    authorization: Optional[str] = Header(None)\n):\n    \"\"\"\n    Update the notes (title, description, strategy_codes) of a live session\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    session = live_session_repository.get_live_session_by_id(session_id)\n\n    if not session:\n        return JSONResponse({\n            'error': f'Session with ID {session_id} not found'\n        }, status_code=404)\n\n    live_session_repository.update_live_session_notes(\n        session_id,\n        request_json.title,\n        request_json.description,\n        request_json.strategy_codes\n    )\n\n    return JSONResponse({\n        'message': 'Live session notes updated successfully'\n    })\n\n\n@router.post(\"/update-state\")\ndef update_state(request_json: UpdateLiveSessionStateRequestJson, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Upsert live session state (creates draft if doesn't exist, updates if exists)\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    live_session_repository.upsert_live_session_state(request_json.id, request_json.state)\n\n    return JSONResponse({\n        'message': 'Live session state updated successfully'\n    }, status_code=200)\n\n\n@router.post(\"/purge-sessions\")\ndef purge_sessions(request_json: dict = Body(...), authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Purge live sessions older than specified days\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    days_old = request_json.get('days_old', None)\n\n    deleted_count = live_session_repository.purge_live_sessions(days_old)\n\n    return JSONResponse({\n        'message': f'Successfully purged {deleted_count} session(s)',\n        'deleted_count': deleted_count\n    }, status_code=200)\n\n\n@router.get(\"/equity-curve\")\ndef get_equity_curve(\n    session_id: str,\n    from_ms: Optional[int] = None,\n    to_ms: Optional[int] = None,\n    timeframe: str = 'auto',\n    max_points: int = 1000,\n    authorization: Optional[str] = Header(None)\n) -> JSONResponse:\n    \"\"\"\n    Get equity curve for a live session with downsampling\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    from jesse.repositories import live_equity_repository\n\n    try:\n        if from_ms is None:\n            session = live_session_repository.get_live_session_by_id(session_id)\n            if session and getattr(session, 'created_at', None):\n                from_ms = session.created_at\n            else:\n                # fallback: last 24h\n                from_ms = jh.now(True) - (24 * 60 * 60 * 1000)\n\n        result = live_equity_repository.query_equity_curve(\n            session_id=session_id,\n            from_ms=from_ms,\n            to_ms=to_ms,\n            timeframe=timeframe,\n            max_points=max_points\n        )\n\n        return JSONResponse(result, status_code=200)\n    except Exception as e:\n        return JSONResponse({\n            'message': f'Error fetching equity curve: {str(e)}'\n        }, status_code=500)\n"
  },
  {
    "path": "jesse/controllers/lsp_controller.py",
    "content": "from typing import Optional\nfrom fastapi import APIRouter, Header\nfrom fastapi.responses import JSONResponse\nfrom jesse.helpers import get_os\nfrom jesse.services import auth as authenticator\nfrom jesse.services.lsp import LSP_DEFAULT_PORT\n\nrouter = APIRouter(prefix='/lsp-config', tags=['LSP Configuration'])\n\n@router.get(\"\")\ndef get_lsp_config(authorization: Optional[str] = Header(None))->JSONResponse:\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    from jesse.services.env import ENV_VALUES\n\n    # Check if formatting is available on the current platform\n    # Formatting is only available on non-windows platforms\n    isFormattingAvailable = get_os() != 'windows'\n    \n    return JSONResponse(\n        {'ws_port': ENV_VALUES['LSP_PORT'] if 'LSP_PORT' in ENV_VALUES else LSP_DEFAULT_PORT,\n         'ws_path':'/lsp',\n         'is_formatting_available': isFormattingAvailable}, status_code=200)"
  },
  {
    "path": "jesse/controllers/monte_carlo_controller.py",
    "content": "from fastapi import APIRouter, Header, Request\nfrom typing import Optional\nfrom fastapi.responses import JSONResponse\nimport json\n\nfrom jesse.services import auth as authenticator\nfrom jesse.services.multiprocessing import process_manager\nfrom jesse.services.web import (\n    MonteCarloRequestJson,\n    CancelMonteCarloRequestJson,\n    UpdateMonteCarloSessionStateRequestJson,\n    TerminateMonteCarloRequestJson,\n    UpdateMonteCarloSessionNotesRequestJson,\n    GetMonteCarloSessionsRequestJson\n)\nfrom jesse import helpers as jh\nfrom jesse.models.MonteCarloSession import (\n    get_monte_carlo_sessions,\n    update_monte_carlo_session_state,\n    update_monte_carlo_session_status,\n    delete_monte_carlo_session,\n    get_monte_carlo_session_by_id,\n    update_monte_carlo_session_notes,\n    purge_monte_carlo_sessions,\n    get_running_monte_carlo_session_id\n)\nfrom jesse.services.transformers import get_monte_carlo_session, get_monte_carlo_session_for_load_more\nfrom jesse.modes.monte_carlo_mode import run as run_monte_carlo\n\n\nrouter = APIRouter(prefix=\"/monte-carlo\", tags=[\"Monte Carlo\"])\n\n\n@router.post(\"\")\nasync def monte_carlo(request: Request, request_json: MonteCarloRequestJson, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Start a Monte Carlo simulation\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    jh.validate_cwd()\n\n    # Check Python version before imports\n    if jh.python_version() == (3, 13):\n        return JSONResponse({\n            'error': 'Monte Carlo mode is not supported on Python 3.13',\n            'message': 'The Ray library used for Monte Carlo does not support Python 3.13 yet. Please use Python 3.12 or lower.'\n        }, status_code=500)\n\n    # Validate at least one type is selected\n    if not request_json.run_trades and not request_json.run_candles:\n        return JSONResponse({\n            'error': 'At least one Monte Carlo type must be selected',\n            'message': 'Please select either Trades, Candles, or both.'\n        }, status_code=400)\n\n    # Validate routes\n    if not request_json.routes or len(request_json.routes) == 0:\n        return JSONResponse({\n            'error': 'At least one route is required',\n            'message': 'Please add at least one trading route.'\n        }, status_code=400)\n\n    # Generate unique session ID if not provided\n    session_id = request_json.id or jh.generate_unique_id()    \n\n    # Check if session already exists\n    existing_session = get_monte_carlo_session_by_id(session_id)\n    if existing_session:\n        return JSONResponse({\n            'error': f'Monte Carlo session with ID {session_id} already exists',\n            'message': 'A session with this ID is already running or completed.'\n        }, status_code=409)\n\n    # Check session existence in monte carlo models\n    from jesse.models.MonteCarloSession import get_monte_carlo_session_by_id as db_get_mc_session_by_id\n    if db_get_mc_session_by_id(session_id):\n        return JSONResponse({\n            'error': f'Monte Carlo session with ID {session_id} already exists (in DB)',\n            'message': 'A session with this ID already exists in the database.'\n        }, status_code=409)\n    process_manager.add_task(\n        run_monte_carlo,\n        session_id,\n        request_json.config,\n        request_json.exchange,\n        request_json.routes,\n        request_json.data_routes,\n        request_json.start_date,\n        request_json.finish_date,\n        request_json.run_trades,\n        request_json.run_candles,\n        request_json.num_scenarios,\n        request_json.fast_mode,\n        request_json.cpu_cores,\n        request_json.pipeline_type,\n        request_json.pipeline_params,\n        request_json.state,\n    )\n\n    return JSONResponse({\n        'message': 'Started Monte Carlo simulation...',\n        'session_id': session_id\n    }, status_code=202)\n\n\n@router.post(\"/cancel\")\ndef cancel_monte_carlo(request_json: CancelMonteCarloRequestJson, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Cancel a Monte Carlo simulation\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    process_manager.cancel_process(request_json.id)\n\n    return JSONResponse(\n        {'message': f'Monte Carlo process with ID of {request_json.id} was requested for termination'},\n        status_code=202\n    )\n\n\n@router.post(\"/terminate\")\ndef terminate_monte_carlo(request_json: TerminateMonteCarloRequestJson, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Terminate a Monte Carlo simulation\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    # First update the status to 'terminated'\n    update_monte_carlo_session_status(request_json.id, 'terminated')\n\n    # Then request cancellation of the current process\n    process_manager.cancel_process(request_json.id)\n\n    return JSONResponse(\n        {'message': f'Monte Carlo process with ID of {request_json.id} was terminated'},\n        status_code=202\n    )\n\n\n@router.post(\"/resume\")\nasync def resume_monte_carlo(request_json: MonteCarloRequestJson, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Resume a Monte Carlo simulation\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    jh.validate_cwd()\n\n    # Check Python version\n    if jh.python_version() == (3, 13):\n        return JSONResponse({\n            'error': 'Monte Carlo mode is not supported on Python 3.13',\n            'message': 'The Ray library used for Monte Carlo does not support Python 3.13 yet. Please use Python 3.12 or lower.'\n        }, status_code=500)\n\n    # Get the session from the database\n    session = get_monte_carlo_session_by_id(request_json.id)\n\n    if not session:\n        return JSONResponse({\n            'error': f'Session with ID {request_json.id} not found'\n        }, status_code=404)\n\n    # Transform the session using the transformer\n    transformed_session = get_monte_carlo_session_for_load_more(session)\n\n    process_manager.add_task(\n        run_monte_carlo,\n        request_json.id,\n        request_json.config,\n        request_json.exchange,\n        request_json.routes,\n        request_json.data_routes,\n        request_json.start_date,\n        request_json.finish_date,\n        request_json.run_trades,\n        request_json.run_candles,\n        request_json.num_scenarios,\n        request_json.fast_mode,\n        request_json.cpu_cores,\n        request_json.pipeline_type,\n        request_json.pipeline_params,\n        request_json.state,\n    )\n\n    return JSONResponse({\n        'session': transformed_session\n    })\n\n\n@router.post(\"/sessions\")\ndef get_monte_carlo_sessions_endpoint(request_json: GetMonteCarloSessionsRequestJson = GetMonteCarloSessionsRequestJson(), authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Get a list of Monte Carlo sessions sorted by most recently updated with pagination and filters\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    # Get sessions from the database with pagination and filters\n    sessions = get_monte_carlo_sessions(\n        limit=request_json.limit,\n        offset=request_json.offset,\n        title_search=request_json.title_search,\n        status_filter=request_json.status_filter,\n        date_filter=request_json.date_filter\n    )\n\n    # Transform the sessions using the transformer\n    transformed_sessions = [get_monte_carlo_session(session) for session in sessions]\n\n    return JSONResponse({\n        'sessions': transformed_sessions,\n        'count': len(transformed_sessions)\n    })\n\n\n@router.post(\"/sessions/{session_id}\")\ndef get_monte_carlo_session_by_id_endpoint(session_id: str, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Get a single Monte Carlo session by ID\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    # Get the session from the database\n    session = get_monte_carlo_session_by_id(session_id)\n\n    if not session:\n        return JSONResponse({\n            'error': f'Session with ID {session_id} not found'\n        }, status_code=404)\n\n    # Transform the session using the transformer\n    transformed_session = get_monte_carlo_session_for_load_more(session)\n    # Ensure JSON-safe values (replace NaN/Inf with None)\n    transformed_session = jh.clean_infinite_values(transformed_session)\n\n    return JSONResponse({\n        'session': transformed_session\n    })\n\n\n@router.post(\"/sessions/{session_id}/equity-curves\")\ndef get_monte_carlo_equity_curves(session_id: str, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Get equity curve data for a Monte Carlo session\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    session = get_monte_carlo_session_by_id(session_id)\n    \n    if not session:\n        return JSONResponse({\n            'error': f'Session with ID {session_id} not found'\n        }, status_code=404)\n    \n    trades_equity_curves = None\n    candles_equity_curves = None\n    \n    # Extract trades equity curves\n    if session.trades_session and session.trades_session.results:\n        results = jh.clean_infinite_values(json.loads(session.trades_session.results))\n        \n        # Extract original equity curve\n        original_curve = None\n        if results.get('original') and results['original'].get('equity_curve'):\n            for curve in results['original']['equity_curve']:\n                if curve.get('name') == 'Portfolio':\n                    original_curve = curve\n                    break\n        \n        # Extract all scenario equity curves\n        scenario_curves = []\n        if results.get('scenarios'):\n            for scenario in results['scenarios']:\n                if scenario.get('equity_curve'):\n                    for curve in scenario['equity_curve']:\n                        if curve.get('name') == 'Portfolio':\n                            scenario_curves.append(curve)\n                            break\n        \n        trades_equity_curves = {\n            'original': original_curve,\n            'scenarios': scenario_curves\n        }\n    \n    # Extract candles equity curves\n    if session.candles_session and session.candles_session.results:\n        results = jh.clean_infinite_values(json.loads(session.candles_session.results))\n        \n        # Extract original equity curve\n        original_curve = None\n        if results.get('original') and results['original'].get('equity_curve'):\n            for curve in results['original']['equity_curve']:\n                if curve.get('name') == 'Portfolio':\n                    original_curve = curve\n                    break\n        \n        # Extract all scenario equity curves\n        scenario_curves = []\n        if results.get('scenarios'):\n            for scenario in results['scenarios']:\n                if scenario.get('equity_curve'):\n                    for curve in scenario['equity_curve']:\n                        if curve.get('name') == 'Portfolio':\n                            scenario_curves.append(curve)\n                            break\n        \n        candles_equity_curves = {\n            'original': original_curve,\n            'scenarios': scenario_curves\n        }\n    \n    return JSONResponse({\n        'trades': trades_equity_curves,\n        'candles': candles_equity_curves\n    })\n\n\n@router.post(\"/update-state\")\ndef update_session_state(\n    request_json: UpdateMonteCarloSessionStateRequestJson,\n    authorization: Optional[str] = Header(None)\n):\n    \"\"\"\n    Update the state of a Monte Carlo session\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    update_monte_carlo_session_state(request_json.id, request_json.state)\n\n    return JSONResponse({\n        'message': 'Monte Carlo session state updated successfully'\n    })\n\n\n@router.post(\"/sessions/{session_id}/remove\")\ndef remove_monte_carlo_session(session_id: str, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Remove a Monte Carlo session from the database\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    session = get_monte_carlo_session_by_id(session_id)\n\n    if not session:\n        return JSONResponse({\n            'error': f'Session with ID {session_id} not found'\n        }, status_code=404)\n\n    # Delete the session from the database\n    result = delete_monte_carlo_session(session_id)\n\n    if not result:\n        return JSONResponse({\n            'error': f'Failed to delete session with ID {session_id}'\n        }, status_code=500)\n\n    return JSONResponse({\n        'message': 'Monte Carlo session removed successfully'\n    })\n\n\n@router.post(\"/sessions/{session_id}/notes\")\ndef update_session_notes(session_id: str, request_json: UpdateMonteCarloSessionNotesRequestJson, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Update the notes (title, description, strategy_codes) of a Monte Carlo session\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    session = get_monte_carlo_session_by_id(session_id)\n\n    if not session:\n        return JSONResponse({\n            'error': f'Session with ID {session_id} not found'\n        }, status_code=404)\n\n    update_monte_carlo_session_notes(session_id, request_json.title, request_json.description, request_json.strategy_codes)\n\n    return JSONResponse({\n        'message': 'Monte Carlo session notes updated successfully'\n    })\n\n\n@router.post(\"/sessions/{session_id}/strategy-code\")\ndef get_session_strategy_code(session_id: str, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Get the strategy code for a Monte Carlo session\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n    \n    session = get_monte_carlo_session_by_id(session_id)\n    if not session:\n        return JSONResponse({\n            'error': f'Session with ID {session_id} not found'\n        }, status_code=404)\n    \n    return JSONResponse({\n        'strategy_code': json.loads(session.strategy_codes) if session.strategy_codes else {}\n    })\n\n\n@router.post(\"/sessions/{session_id}/logs\")\ndef get_session_logs(session_id: str, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Get the logs for a Monte Carlo session\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n        \n    from jesse.modes import data_provider\n\n    content = data_provider.get_monte_carlo_logs(session_id)\n    \n    if content is None:\n        return JSONResponse({\n            'error': 'Log file not found'\n        }, status_code=404)\n    \n    return JSONResponse({\n        'logs': content\n    })\n    \n    \n@router.post(\"/purge-sessions\")\ndef purge_sessions(request_json: dict, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Purge Monte Carlo sessions older than specified days\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n    \n    days_old = request_json.get('days_old', None)\n    \n    deleted_count = purge_monte_carlo_sessions(days_old)\n    \n    return JSONResponse({\n        'message': f'Successfully purged {deleted_count} session(s)',\n        'deleted_count': deleted_count\n    }, status_code=200)\n\n\n@router.get(\"/running-session\")\ndef get_running_session(authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Get the running session\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    return JSONResponse({\n        'session_id': get_running_monte_carlo_session_id()\n    })"
  },
  {
    "path": "jesse/controllers/notification_controller.py",
    "content": "from typing import Optional\nfrom fastapi import APIRouter, Header\nfrom fastapi.responses import JSONResponse\n\nfrom jesse.services import auth as authenticator\nfrom jesse.services.web import StoreNotificationApiKeyRequestJson, DeleteNotificationApiKeyRequestJson\n\nrouter = APIRouter(prefix=\"/notification\", tags=[\"Notification\"])\n\n\n@router.get(\"/api-keys\")\ndef get_notification_api_keys(authorization: Optional[str] = Header(None)) -> JSONResponse:\n    \"\"\"\n    Get all notification API keys\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    from jesse.modes.notification_api_keys import get_notification_api_keys\n\n    return get_notification_api_keys()\n\n\n@router.post(\"/api-keys/store\")\ndef store_notification_api_keys(\n        json_request: StoreNotificationApiKeyRequestJson,\n        authorization: Optional[str] = Header(None)\n) -> JSONResponse:\n    \"\"\"\n    Store a new notification API key\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    from jesse.modes.notification_api_keys import store_notification_api_keys\n\n    return store_notification_api_keys(\n        json_request.name, json_request.driver, json_request.fields\n    )\n\n\n@router.post(\"/api-keys/delete\")\ndef delete_notification_api_keys(\n        json_request: DeleteNotificationApiKeyRequestJson,\n        authorization: Optional[str] = Header(None)\n) -> JSONResponse:\n    \"\"\"\n    Delete a notification API key\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    from jesse.modes.notification_api_keys import delete_notification_api_keys\n\n    return delete_notification_api_keys(json_request.id)\n"
  },
  {
    "path": "jesse/controllers/optimization_controller.py",
    "content": "from fastapi import APIRouter, Header, Query, Body\nfrom typing import Optional, List\nfrom fastapi.responses import JSONResponse, FileResponse\nfrom pydantic import BaseModel\nimport json\n\nfrom jesse.services import auth as authenticator\nfrom jesse.services.multiprocessing import process_manager\nfrom jesse.services.web import OptimizationRequestJson, CancelRequestJson, UpdateOptimizationSessionStateRequestJson, UpdateOptimizationSessionStatusRequestJson, TerminateOptimizationRequestJson, UpdateOptimizationSessionNotesRequestJson, GetOptimizationSessionsRequestJson\nfrom jesse import helpers as jh\nfrom jesse.models.OptimizationSession import get_optimization_sessions as get_sessions, update_optimization_session_state, update_optimization_session_status, delete_optimization_session, reset_optimization_session, update_optimization_session_notes, purge_optimization_sessions, get_running_optimization_session_id\nfrom jesse.services.transformers import get_optimization_session, get_optimization_session_for_load_more\nfrom jesse.models.OptimizationSession import get_optimization_session_by_id as get_optimization_session_by_id_from_db\nfrom jesse.modes.optimize_mode import run as run_optimization\n\n\nrouter = APIRouter(prefix=\"/optimization\", tags=[\"Optimization\"])\n\n\n@router.post(\"\")\nasync def optimization(request_json: OptimizationRequestJson, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Start an optimization process\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    jh.validate_cwd()\n\n    # Check Python version before imports\n    if jh.python_version() == (3, 13):\n        return JSONResponse({\n            'error': 'Optimization is not supported on Python 3.13',\n            'message': 'The Ray library used for optimization does not support Python 3.13 yet. Please use Python 3.12 or lower.'\n        }, status_code=500)\n\n    # Validate routes\n    if not request_json.routes or len(request_json.routes) == 0:\n        return JSONResponse({\n            'error': 'At least one route is required',\n            'message': 'Please add at least one trading route.'\n        }, status_code=400)\n\n    # Generate unique session ID if not provided\n    session_id = request_json.id or jh.generate_unique_id()\n\n    # Check if session already exists\n    existing_session = get_optimization_session_by_id_from_db(session_id)\n    if existing_session:\n        return JSONResponse({\n            'error': f'Optimization session with ID {session_id} already exists',\n            'message': 'A session with this ID is already running or completed.'\n        }, status_code=409)\n\n    process_manager.add_task(\n        run_optimization,\n        session_id,\n        request_json.config,\n        request_json.exchange,\n        request_json.routes,\n        request_json.data_routes,\n        request_json.training_start_date,\n        request_json.training_finish_date,\n        request_json.testing_start_date,\n        request_json.testing_finish_date,\n        request_json.optimal_total,\n        request_json.fast_mode,\n        request_json.cpu_cores,\n        request_json.state,\n    )\n\n    return JSONResponse({\n        'message': 'Started optimization...',\n        'session_id': session_id\n    }, status_code=202)\n\n\n@router.post(\"/rerun\")\nasync def rerun_optimization(request_json: OptimizationRequestJson, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Start an optimization process\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    jh.validate_cwd()\n\n    # Check Python version before imports\n    if jh.python_version() == (3, 13):\n        return JSONResponse({\n            'error': 'Optimization is not supported on Python 3.13',\n            'message': 'The Ray library used for optimization does not support Python 3.13 yet. Please use Python 3.12 or lower.'\n        }, status_code=500)\n\n    # Get the session from the database\n    session = get_optimization_session_by_id_from_db(request_json.id)\n\n    if not session:\n        return JSONResponse({\n            'error': f'Session with ID {request_json.id} not found'\n        }, status_code=404)\n\n    # reset the session\n    reset_optimization_session(request_json.id)\n\n    process_manager.add_task(\n        run_optimization,\n        request_json.id,\n        request_json.config,\n        request_json.exchange,\n        request_json.routes,\n        request_json.data_routes,\n        request_json.training_start_date,\n        request_json.training_finish_date,\n        request_json.testing_start_date,\n        request_json.testing_finish_date,\n        request_json.optimal_total,\n        request_json.fast_mode,\n        request_json.cpu_cores,\n        request_json.state,\n    )\n\n    return JSONResponse({'message': 'Started optimization...'}, status_code=202)\n\n\n\n@router.post(\"/cancel\")\ndef cancel_optimization(request_json: CancelRequestJson, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Cancel an optimization process\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    process_manager.cancel_process(request_json.id)\n\n    return JSONResponse({'message': f'Optimization process with ID of {request_json.id} was requested for termination'},\n                        status_code=202)\n\n\n@router.get(\"/download-log\")\ndef download_optimization_log(token: str = Query(...)):\n    \"\"\"\n    Download optimization log file\n    \"\"\"\n    if not authenticator.is_valid_token(token):\n        return authenticator.unauthorized_response()\n\n    from jesse.modes import data_provider\n\n    return data_provider.download_file('optimize', 'log')\n\n\n@router.post(\"/sessions\")\ndef get_optimization_sessions(request_json: GetOptimizationSessionsRequestJson = Body(default=GetOptimizationSessionsRequestJson()), authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Get a list of optimization sessions sorted by most recently updated with pagination and filtering\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    # Get sessions from the database with pagination and filters\n    sessions = get_sessions(\n        limit=request_json.limit,\n        offset=request_json.offset,\n        title_search=request_json.title_search,\n        status_filter=request_json.status_filter,\n        date_filter=request_json.date_filter\n    )\n\n    # Transform the sessions using the transformer\n    transformed_sessions = [get_optimization_session(session) for session in sessions]\n\n    return JSONResponse({\n        'sessions': transformed_sessions,\n        'count': len(transformed_sessions)\n    })\n\n\n@router.post(\"/sessions/{session_id}\")\ndef get_optimization_session_by_id(session_id: str, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Get a single optimization session by ID\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    # Get the session from the database\n    session = get_optimization_session_by_id_from_db(session_id)\n\n    if not session:\n        return JSONResponse({\n            'error': f'Session with ID {session_id} not found'\n        }, status_code=404)\n\n    # Transform the session using the transformer\n    transformed_session = get_optimization_session_for_load_more(session)\n\n    return JSONResponse({\n        'session': transformed_session\n    })\n\n\n@router.post(\"/update-state\")\ndef update_session_state(request_json: UpdateOptimizationSessionStateRequestJson, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Update the state of an optimization session\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    update_optimization_session_state(request_json.id, request_json.state)\n\n    return JSONResponse({\n        'message': 'Optimization session state updated successfully'\n    })\n\n\n@router.post(\"/terminate\")\ndef terminate_optimization(request_json: TerminateOptimizationRequestJson, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Terminate an optimization process\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    # First update the status to 'terminated'\n    update_optimization_session_status(request_json.id, 'terminated')\n\n    # Then request cancellation of the current process\n    process_manager.cancel_process(request_json.id)\n\n    return JSONResponse({'message': f'Optimization process with ID of {request_json.id} was terminated'}, status_code=202)\n\n\n@router.post(\"/resume\")\nasync def resume_optimization(request_json: OptimizationRequestJson, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Resume an optimization process\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    jh.validate_cwd()\n\n    # Check Python version before imports\n    if jh.python_version() == (3, 13):\n        return JSONResponse({\n            'error': 'Optimization is not supported on Python 3.13',\n            'message': 'The Ray library used for optimization does not support Python 3.13 yet. Please use Python 3.12 or lower.'\n        }, status_code=500)\n\n    # Get the session from the database\n    session = get_optimization_session_by_id_from_db(request_json.id)\n\n    if not session:\n        return JSONResponse({\n            'error': f'Session with ID {request_json.id} not found'\n        }, status_code=404)\n\n    # Transform the session using the transformer\n    transformed_session = get_optimization_session_for_load_more(session)\n\n    process_manager.add_task(\n        run_optimization,\n        request_json.id,\n        request_json.config,\n        request_json.exchange,\n        request_json.routes,\n        request_json.data_routes,\n        request_json.training_start_date,\n        request_json.training_finish_date,\n        request_json.testing_start_date,\n        request_json.testing_finish_date,\n        request_json.optimal_total,\n        request_json.fast_mode,\n        request_json.cpu_cores,\n        request_json.state,\n    )\n\n    return JSONResponse({\n        'session': transformed_session\n    })\n\n\n@router.post(\"/sessions/{session_id}/remove\")\ndef remove_optimization_session(session_id: str, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Remove an optimization session from the database\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    session = get_optimization_session_by_id_from_db(session_id)\n\n    if not session:\n        return JSONResponse({\n            'error': f'Session with ID {session_id} not found'\n        }, status_code=404)\n\n    # Delete the session from the database\n    result = delete_optimization_session(session_id)\n\n    if not result:\n        return JSONResponse({\n            'error': f'Failed to delete session with ID {session_id}'\n        }, status_code=500)\n\n    return JSONResponse({\n        'message': 'Optimization session removed successfully'\n    })\n\n\n@router.post(\"/sessions/{session_id}/notes\")\ndef update_session_notes(session_id: str, request_json: UpdateOptimizationSessionNotesRequestJson, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Update the notes (title, description, strategy_codes) of an optimization session\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    session = get_optimization_session_by_id_from_db(session_id)\n\n    if not session:\n        return JSONResponse({\n            'error': f'Session with ID {session_id} not found'\n        }, status_code=404)\n\n    update_optimization_session_notes(session_id, request_json.title, request_json.description, request_json.strategy_codes)\n\n    return JSONResponse({\n        'message': 'Optimization session notes updated successfully'\n    })\n\n\n@router.post(\"/sessions/{session_id}/get-notes\")\ndef get_session_notes(session_id: str, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Get the notes of an optimization session\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n    \n    session = get_optimization_session_by_id_from_db(session_id)\n\n    if not session:\n        return JSONResponse({\n            'error': f'Session with ID {session_id} not found'\n        }, status_code=404)\n\n    return JSONResponse({\n        'title': session.title,\n        'description': session.description,\n    })\n    \n\n@router.post(\"/sessions/{session_id}/strategy-codes\")\ndef get_session_strategy_codes(session_id: str, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Get the strategy codes of an optimization session\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n    \n    session = get_optimization_session_by_id_from_db(session_id)\n\n    if not session:\n        return JSONResponse({\n            'error': f'Session with ID {session_id} not found'\n        }, status_code=404)\n\n    return JSONResponse({\n        'strategy_codes': json.loads(session.strategy_codes) if session.strategy_codes else {}\n    })\n\n@router.post(\"/sessions/{session_id}/logs\")\ndef get_session_logs(session_id: str, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Get the logs for an optimization session\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    from jesse.modes import data_provider\n\n    content = data_provider.get_optimization_logs(session_id)\n\n    if content is None:\n        return JSONResponse({\n            'error': 'Log file not found'\n        }, status_code=404)\n\n    return JSONResponse({\n        'logs': content\n    })\n\n\n@router.post(\"/purge-sessions\")\ndef purge_sessions(request_json: dict = Body(...), authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Purge optimization sessions older than specified days\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    days_old = request_json.get('days_old', None)\n\n    deleted_count = purge_optimization_sessions(days_old)\n\n    return JSONResponse({\n        'message': f'Successfully purged {deleted_count} session(s)',\n        'deleted_count': deleted_count\n    }, status_code=200)\n\n\n@router.get(\"/running-session\")\ndef get_running_session(authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Get the running session\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    return JSONResponse({\n        'session_id': get_running_optimization_session_id()\n    })\n"
  },
  {
    "path": "jesse/controllers/order_controller.py",
    "content": "from typing import Optional\nfrom fastapi import APIRouter, Header, Body\nfrom fastapi.responses import JSONResponse\n\nfrom jesse.services import auth as authenticator\nfrom jesse.repositories import order_repository\nfrom jesse.services.transformers import get_order_details\nfrom jesse.models.Order import Order\nfrom jesse.services.web import GetOrdersHistoryRequestJson\n\nrouter = APIRouter(prefix=\"/orders\", tags=[\"Orders\"])\n\n\n@router.get(\"/{order_id}\")\ndef get_order_by_id(order_id: str, authorization: Optional[str] = Header(None)) -> JSONResponse:\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    try:\n        # Fetch order by ID\n        order: Order | None = order_repository.find_by_id(order_id)\n        \n        if not order:\n            return JSONResponse({\n                'error': 'Order not found'\n            }, status_code=404)\n        \n        # Transform order with details\n        order_details = get_order_details(order)\n        \n        return JSONResponse({\n            'data': order_details\n        }, status_code=200)\n    except Exception as e:\n        import traceback\n        import jesse.helpers as jh\n        jh.debug(f\"Error fetching order {order_id}: {str(e)}\")\n        jh.debug(traceback.format_exc())\n        return JSONResponse({\n            'error': str(e)\n        }, status_code=500)\n\n\n@router.post(\"/live-history\")\ndef get_orders_live_history(\n    request_json: GetOrdersHistoryRequestJson = Body(...),\n    authorization: Optional[str] = Header(None)\n) -> JSONResponse:\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    try:\n        # Fetch orders with filters\n        orders = order_repository.find_by_filters(\n            id_search=request_json.id_search,\n            status_filter=request_json.status_filter,\n            symbol_filter=request_json.symbol_filter,\n            date_filter=request_json.date_filter,\n            exchange_filter=request_json.exchange_filter,\n            type_filter=request_json.type_filter,\n            side_filter=request_json.side_filter,\n            limit=request_json.limit,\n            offset=request_json.offset\n        )\n        \n        # Transform orders using transformer (handles UUID conversion)\n        orders_list = [get_order_details(order) for order in orders]\n        \n        return JSONResponse({\n            'orders': orders_list\n        }, status_code=200)\n    except Exception as e:\n        import traceback\n        import jesse.helpers as jh\n        jh.debug(f\"Error fetching orders history: {str(e)}\")\n        jh.debug(traceback.format_exc())\n        return JSONResponse({\n            'error': str(e)\n        }, status_code=500)\n\n"
  },
  {
    "path": "jesse/controllers/strategy_controller.py",
    "content": "from typing import Optional\nfrom fastapi import APIRouter, Header, Query\nfrom fastapi.responses import JSONResponse\nimport requests\nimport re\n\nfrom jesse.services import auth as authenticator\nfrom jesse.services.web import (\n    NewStrategyRequestJson,\n    GetStrategyRequestJson,\n    SaveStrategyRequestJson,\n    DeleteStrategyRequestJson,\n    ImportStrategyRequestJson\n)\nimport jesse.helpers as jh\nfrom jesse.info import JESSE_API2_URL\n\nrouter = APIRouter(prefix=\"/strategy\", tags=[\"Strategy\"])\n\n\n@router.post(\"/make\")\ndef make_strategy(json_request: NewStrategyRequestJson, authorization: Optional[str] = Header(None)) -> JSONResponse:\n    \"\"\"\n    Create a new strategy\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    from jesse.services import strategy_handler\n    return strategy_handler.generate(json_request.name)\n\n\n@router.get(\"/all\")\ndef get_strategies(authorization: Optional[str] = Header(None)) -> JSONResponse:\n    \"\"\"\n    Get all strategies\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    from jesse.services import strategy_handler\n    return strategy_handler.get_strategies()\n\n\n@router.post(\"/get\")\ndef get_strategy(\n        json_request: GetStrategyRequestJson,\n        authorization: Optional[str] = Header(None)\n) -> JSONResponse:\n    \"\"\"\n    Get a specific strategy\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    from jesse.services import strategy_handler\n    return strategy_handler.get_strategy(json_request.name)\n\n\n@router.post(\"/save\")\ndef save_strategy(\n        json_request: SaveStrategyRequestJson,\n        authorization: Optional[str] = Header(None)\n) -> JSONResponse:\n    \"\"\"\n    Save a strategy\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    from jesse.services import strategy_handler\n    return strategy_handler.save_strategy(json_request.name, json_request.content)\n\n\n@router.post(\"/delete\")\ndef delete_strategy(\n        json_request: DeleteStrategyRequestJson,\n        authorization: Optional[str] = Header(None)\n) -> JSONResponse:\n    \"\"\"\n    Delete a strategy\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    from jesse.services import strategy_handler\n    return strategy_handler.delete_strategy(json_request.name)\n\n\n@router.get(\"/index\")\nasync def index_jesse_trade_strategies(\n        period: str = Query(...),\n        sort_by: str = Query(\"Sharpe Ratio\"),\n        submitted_after: Optional[str] = Query(None),\n        submitted_before: Optional[str] = Query(None),\n        authorization: Optional[str] = Header(None),\n        jesse_trade_token: Optional[str] = Header(None, alias=\"X-Jesse-Trade-Token\")\n) -> JSONResponse:\n    \"\"\"\n    Browse strategies from jesse.trade\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    try:\n        headers = {}\n        if jesse_trade_token:\n            headers['Authorization'] = f'Bearer {jesse_trade_token}'\n            \n        params = {'period': period, 'sort_by': sort_by}\n        if submitted_after:\n            params['submitted_after'] = submitted_after\n        if submitted_before:\n            params['submitted_before'] = submitted_before\n\n        response = requests.get(\n            f'{JESSE_API2_URL}/strategies',\n            params=params,\n            headers=headers,\n            timeout=10\n        )\n        \n        if response.status_code == 200:\n            return JSONResponse(response.json())\n        else:\n            return JSONResponse({\n                'status': 'error',\n                'message': f'Failed to fetch strategies: {response.text}'\n            }, status_code=response.status_code)\n    except requests.exceptions.RequestException as e:\n        return JSONResponse({\n            'status': 'error',\n            'message': f'Error connecting to jesse.trade: {str(e)}'\n        },         status_code=500)\n\n\n@router.get(\"/periods\")\nasync def get_jesse_trade_periods(\n        authorization: Optional[str] = Header(None)\n) -> JSONResponse:\n    \"\"\"\n    Get available trading periods from jesse.trade\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    try:\n        response = requests.get(\n            f'{JESSE_API2_URL}/strategies/periods',\n            timeout=10\n        )\n\n        if response.status_code == 200:\n            return JSONResponse(response.json())\n        else:\n            return JSONResponse({\n                'status': 'error',\n                'message': f'Failed to fetch periods: {response.text}'\n            }, status_code=response.status_code)\n    except requests.exceptions.RequestException as e:\n        return JSONResponse({\n            'status': 'error',\n            'message': f'Error connecting to jesse.trade: {str(e)}'\n        }, status_code=500)\n\n\n@router.get(\"/jesse-trade/{slug}\")\nasync def get_jesse_trade_strategy(\n        slug: str,\n        authorization: Optional[str] = Header(None),\n        jesse_trade_token: Optional[str] = Header(None, alias=\"X-Jesse-Trade-Token\")\n) -> JSONResponse:\n    \"\"\"\n    Get a specific strategy from jesse.trade\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    try:\n        headers = {}\n        if jesse_trade_token:\n            headers['Authorization'] = f'Bearer {jesse_trade_token}'\n            \n        response = requests.get(\n            f'{JESSE_API2_URL}/strategies/{slug}',\n            headers=headers,\n            timeout=10\n        )\n        \n        if response.status_code == 200:\n            return JSONResponse(response.json())\n        else:\n            return JSONResponse({\n                'status': 'error',\n                'message': f'Failed to fetch strategy: {response.text}'\n            }, status_code=response.status_code)\n    except requests.exceptions.RequestException as e:\n        return JSONResponse({\n            'status': 'error',\n            'message': f'Error connecting to jesse.trade: {str(e)}'\n        }, status_code=500)\n\n\n@router.get(\"/jesse-trade/{slug}/metrics\")\nasync def get_jesse_trade_strategy_metrics(\n        slug: str,\n        period: str = Query(...),\n        symbol: str = Query(...),\n        timeframe: str = Query(...),\n        authorization: Optional[str] = Header(None),\n        jesse_trade_token: Optional[str] = Header(None, alias=\"X-Jesse-Trade-Token\")\n) -> JSONResponse:\n    \"\"\"\n    Get metrics for a specific strategy from jesse.trade\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    try:\n        headers = {}\n        if jesse_trade_token:\n            headers['Authorization'] = f'Bearer {jesse_trade_token}'\n            \n        response = requests.get(\n            f'{JESSE_API2_URL}/strategies/{slug}/metrics',\n            params={'period': period, 'symbol': symbol, 'timeframe': timeframe},\n            headers=headers,\n            timeout=10\n        )\n        \n        if response.status_code == 200:\n            return JSONResponse(response.json())\n        else:\n            return JSONResponse({\n                'status': 'error',\n                'message': f'Failed to fetch strategy metrics: {response.text}'\n            }, status_code=response.status_code)\n    except requests.exceptions.RequestException as e:\n        return JSONResponse({\n            'status': 'error',\n            'message': f'Error connecting to jesse.trade: {str(e)}'\n        }, status_code=500)\n\n\n@router.post(\"/import\")\nasync def import_strategy(\n        json_request: ImportStrategyRequestJson,\n        authorization: Optional[str] = Header(None),\n        jesse_trade_token: Optional[str] = Header(None, alias=\"X-Jesse-Trade-Token\")\n) -> JSONResponse:\n    \"\"\"\n    Import a strategy from jesse.trade\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    try:\n        # Fetch the strategy from jesse.trade\n        headers = {}\n        if jesse_trade_token:\n            headers['Authorization'] = f'Bearer {jesse_trade_token}'\n            \n        response = requests.get(\n            f'{JESSE_API2_URL}/strategies/{json_request.slug}',\n            headers=headers,\n            timeout=10\n        )\n        \n        if response.status_code != 200:\n            return JSONResponse({\n                'status': 'error',\n                'message': f'Failed to fetch strategy: {response.text}'\n            }, status_code=response.status_code)\n        \n        strategy_data = response.json()\n        \n        # Check if code is available\n        if not strategy_data.get('code'):\n            return JSONResponse({\n                'status': 'error',\n                'message': 'Strategy code not available. You may not have access to this strategy.'\n            }, status_code=403)\n\n        # Extract the Python class name from the code\n        code = strategy_data.get('code')\n        class_match = re.search(r'class\\s+(\\w+)', code)\n        if not class_match:\n            return JSONResponse({\n                'status': 'error',\n                'message': 'No Python class definition found in strategy code. Cannot import strategy.'\n            }, status_code=400)\n\n        class_name = class_match.group(1)\n\n        # Import the strategy\n        from jesse.services import strategy_handler\n        return strategy_handler.import_strategy(\n            name=class_name,\n            code=code\n        )\n        \n    except requests.exceptions.RequestException as e:\n        return JSONResponse({\n            'status': 'error',\n            'message': f'Error connecting to jesse.trade: {str(e)}'\n        }, status_code=500)\n"
  },
  {
    "path": "jesse/controllers/system_controller.py",
    "content": "from typing import Optional\nfrom fastapi import APIRouter, Header\nfrom fastapi.responses import JSONResponse\n\nfrom jesse.services import auth as authenticator\nfrom jesse.services.web import FeedbackRequestJson, ReportExceptionRequestJson, HelpSearchRequestJson\nfrom jesse.services.multiprocessing import process_manager\nimport jesse.helpers as jh\n\nrouter = APIRouter(prefix=\"/system\", tags=[\"System\"])\n\n\n@router.post(\"/feedback\")\ndef feedback(json_request: FeedbackRequestJson, authorization: Optional[str] = Header(None)) -> JSONResponse:\n    \"\"\"\n    Send feedback to the Jesse team\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    from jesse.services import jesse_trade\n    return jesse_trade.feedback(json_request.description, json_request.email)\n\n\n@router.post(\"/report-exception\")\ndef report_exception(json_request: ReportExceptionRequestJson,\n                     authorization: Optional[str] = Header(None)) -> JSONResponse:\n    \"\"\"\n    Report an exception to the Jesse team\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    from jesse.services import jesse_trade\n    \n    return jesse_trade.report_exception(\n        json_request.description,\n        json_request.traceback,\n        json_request.mode,\n        json_request.attach_logs,\n        json_request.session_id,\n        json_request.email,\n        has_live=jh.has_live_trade_plugin()\n    )\n\n\n@router.post(\"/general-info\")\ndef general_info(authorization: Optional[str] = Header(None)) -> JSONResponse:\n    \"\"\"\n    Get general information about the system\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    from jesse.services.general_info import get_general_info\n\n    try:\n        data = get_general_info(has_live=jh.has_live_trade_plugin())\n    except Exception as e:\n        jh.error(str(e))\n        return JSONResponse({\n            'error': str(e)\n        }, status_code=500)\n\n    return JSONResponse(\n        data,\n        status_code=200\n    )\n\n\n@router.post(\"/active-workers\")\ndef active_workers(authorization: Optional[str] = Header(None)) -> JSONResponse:\n    \"\"\"\n    Get a list of active workers\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n\n    return JSONResponse({\n        'data': list(process_manager.active_workers)\n    }, status_code=200)\n\n\n@router.post(\"/help-search\")\ndef help_search(json_request: HelpSearchRequestJson, authorization: Optional[str] = Header(None)) -> JSONResponse:\n    \"\"\"\n    Proxy endpoint for help center search to avoid CORS issues\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n    \n    import requests\n    from jesse.info import JESSE_API_URL\n    from jesse.services.auth import get_access_token\n    \n    try:\n        url = f'{JESSE_API_URL}/help/search?item={json_request.query}'\n        \n        access_token = get_access_token()\n        headers = {\n            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',\n            'Accept': 'application/json, text/plain, */*'\n        }\n        \n        if access_token:\n            headers['Authorization'] = f'Bearer {access_token}'\n        \n        res = requests.get(url, headers=headers, timeout=10)\n        \n        if res.status_code == 200:\n            return JSONResponse(res.json(), status_code=200)\n        else:\n            return JSONResponse({\n                'error': f'Search request failed with status {res.status_code}'\n            }, status_code=res.status_code)\n    except Exception as e:\n        return JSONResponse({\n            'error': str(e)\n        }, status_code=500)\n"
  },
  {
    "path": "jesse/controllers/tabs_controller.py",
    "content": "from fastapi import APIRouter, Header\nfrom pydantic import BaseModel\nfrom typing import List, Optional\nfrom jesse.repositories import open_tab_repository\nfrom jesse.services import auth as authenticator\n\n\nrouter = APIRouter()\n\n\nclass TabsListRequest(BaseModel):\n    module: str\n\n\nclass TabsAddRequest(BaseModel):\n    module: str\n    id: str\n\n\nclass TabsRemoveRequest(BaseModel):\n    module: str\n    id: str\n\n\nclass TabsReorderRequest(BaseModel):\n    module: str\n    ids: List[str]\n\n\nclass TabsResponse(BaseModel):\n    ids: List[str]\n\n\n@router.post('/tabs/list', response_model=TabsResponse)\nasync def list_tabs(req: TabsListRequest, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Get ordered list of open tab session IDs for a module\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n    \n    session_ids = open_tab_repository.get_open_tab_session_ids(req.module)\n    return TabsResponse(ids=session_ids)\n\n\n@router.post('/tabs/add', response_model=TabsResponse)\nasync def add_tab(req: TabsAddRequest, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Add a new tab (or update if exists). Returns ordered list.\n    For singleton modules, ensures only 1 tab exists.\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n    \n    session_ids = open_tab_repository.add_open_tab(req.module, req.id)\n    return TabsResponse(ids=session_ids)\n\n\n@router.post('/tabs/remove', response_model=TabsResponse)\nasync def remove_tab(req: TabsRemoveRequest, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Remove a tab and reorder remaining tabs. Returns ordered list.\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n    \n    session_ids = open_tab_repository.remove_open_tab(req.module, req.id)\n    return TabsResponse(ids=session_ids)\n\n\n@router.post('/tabs/reorder', response_model=TabsResponse)\nasync def reorder_tabs(req: TabsReorderRequest, authorization: Optional[str] = Header(None)):\n    \"\"\"\n    Reorder tabs to match the provided session_ids list.\n    For singleton modules, ensures only 1 tab exists.\n    \"\"\"\n    if not authenticator.is_valid_token(authorization):\n        return authenticator.unauthorized_response()\n    \n    session_ids = open_tab_repository.reorder_open_tabs(req.module, req.ids)\n    return TabsResponse(ids=session_ids)\n\n"
  },
  {
    "path": "jesse/controllers/websocket_controller.py",
    "content": "from fastapi import APIRouter, WebSocket, WebSocketDisconnect, Query\nfrom starlette.websockets import WebSocket, WebSocketDisconnect\nfrom jesse.services import auth as authenticator\nfrom jesse.services.ws_manager import ws_manager\nimport jesse.helpers as jh\n\nrouter = APIRouter(tags=[\"WebSocket\"])\n\n\n@router.websocket(\"/ws\")\nasync def websocket_endpoint(websocket: WebSocket, token: str = Query(...)):\n    from jesse.services.env import ENV_VALUES\n\n    if not authenticator.is_valid_token(token):\n        return\n\n    # Use connection manager to handle this websocket\n    connection_id = str(id(websocket))\n    jh.terminal_debug(f\"WebSocket {connection_id} connecting\")\n    \n    await ws_manager.connect(websocket)\n    channel_pattern = f\"{ENV_VALUES['APP_PORT']}:channel:*\"\n    \n    # Start Redis listener if not already started\n    await ws_manager.start_redis_listener(channel_pattern)\n    \n    try:\n        # Keep the connection alive and handle pong responses\n        while True:\n            message = await websocket.receive_text()\n            try:\n                data = jh.json_loads(message)\n                # Handle pong responses for heartbeat\n                if data.get('type') == 'pong':\n                    pass\n            except:\n                pass\n    except WebSocketDisconnect:\n        jh.terminal_debug(f\"WebSocket {connection_id} disconnected\")\n        ws_manager.disconnect(websocket)\n        # Optionally stop Redis listener if no more clients\n        await ws_manager.stop_redis_listener()\n    except Exception as e:\n        jh.terminal_debug(f\"WebSocket error: {str(e)}\")\n        ws_manager.disconnect(websocket)\n        await ws_manager.stop_redis_listener()\n"
  },
  {
    "path": "jesse/enums/__init__.py",
    "content": "from dataclasses import dataclass\n\n@dataclass\nclass sides:\n    BUY = 'buy'\n    SELL = 'sell'\n\n\n@dataclass\nclass trade_types:\n    LONG = 'long'\n    SHORT = 'short'\n\n\n@dataclass\nclass order_statuses:\n    ACTIVE = 'ACTIVE'\n    CANCELED = 'CANCELED'\n    EXECUTED = 'EXECUTED'\n    PARTIALLY_FILLED = 'PARTIALLY FILLED'\n    QUEUED = 'QUEUED'\n    LIQUIDATED = 'LIQUIDATED'\n    REJECTED = 'REJECTED'\n\n\n@dataclass\nclass timeframes:\n    MINUTE_1 = '1m'\n    MINUTE_3 = '3m'\n    MINUTE_5 = '5m'\n    MINUTE_15 = '15m'\n    MINUTE_30 = '30m'\n    MINUTE_45 = '45m'\n    HOUR_1 = '1h'\n    HOUR_2 = '2h'\n    HOUR_3 = '3h'\n    HOUR_4 = '4h'\n    HOUR_6 = '6h'\n    HOUR_8 = '8h'\n    HOUR_12 = '12h'\n    DAY_1 = '1D'\n    DAY_3 = '3D'\n    WEEK_1 = '1W'\n    MONTH_1 = '1M'\n\n\n@dataclass\nclass colors:\n    GREEN = 'green'\n    YELLOW = 'yellow'\n    RED = 'red'\n    MAGENTA = 'magenta'\n    BLACK = 'black'\n\n\n@dataclass\nclass order_types:\n    MARKET = 'MARKET'\n    LIMIT = 'LIMIT'\n    STOP = 'STOP'\n    FOK = 'FOK'\n    STOP_LIMIT = 'STOP LIMIT'\n\n\n@dataclass\nclass exchanges:\n    SANDBOX = 'Sandbox'\n    COINBASE_SPOT = 'Coinbase Spot'\n    BITFINEX_SPOT = 'Bitfinex Spot'\n    BINANCE_SPOT = 'Binance Spot'\n    BINANCE_US_SPOT = 'Binance US Spot'\n    BINANCE_PERPETUAL_FUTURES = 'Binance Perpetual Futures'\n    BINANCE_PERPETUAL_FUTURES_TESTNET = 'Binance Perpetual Futures Testnet'\n    BYBIT_USDT_PERPETUAL = 'Bybit USDT Perpetual'\n    BYBIT_USDC_PERPETUAL = 'Bybit USDC Perpetual'\n    BYBIT_USDT_PERPETUAL_TESTNET = 'Bybit USDT Perpetual Testnet'\n    BYBIT_USDC_PERPETUAL_TESTNET = 'Bybit USDC Perpetual Testnet'\n    BYBIT_SPOT = 'Bybit Spot'\n    BYBIT_SPOT_TESTNET = 'Bybit Spot Testnet'\n    FTX_PERPETUAL_FUTURES = 'FTX Perpetual Futures'\n    FTX_SPOT = 'FTX Spot'\n    FTX_US_SPOT = 'FTX US Spot'\n    BITGET_SPOT = 'Bitget Spot'\n    BITGET_USDT_PERPETUAL = 'Bitget USDT Perpetual'\n    BITGET_USDT_PERPETUAL_TESTNET = 'Bitget USDT Perpetual Testnet'\n    DYDX_PERPETUAL = \"Dydx Perpetual\"\n    DYDX_PERPETUAL_TESTNET = \"Dydx Perpetual Testnet\"\n    APEX_OMNI_PERPETUAL_TESTNET = 'Apex Omni Perpetual Testnet'\n    APEX_OMNI_PERPETUAL = 'Apex Omni Perpetual'\n    GATE_USDT_PERPETUAL = 'Gate USDT Perpetual'\n    GATE_SPOT = 'Gate Spot'\n    HYPERLIQUID_PERPETUAL = 'Hyperliquid Perpetual'\n    HYPERLIQUID_PERPETUAL_TESTNET = 'Hyperliquid Perpetual Testnet'\n\n\n@dataclass\nclass migration_actions:\n    ADD = 'add'\n    DROP = 'drop'\n    RENAME = 'rename'\n    MODIFY_TYPE = 'modify_type'\n    ALLOW_NULL = 'allow_null'\n    DENY_NULL = 'deny_null'\n    ADD_INDEX = 'add_index'\n    DROP_INDEX = 'drop_index'\n\n\n@dataclass\nclass order_submitted_via:\n    STOP_LOSS = 'stop-loss'\n    TAKE_PROFIT = 'take-profit'\n\n\n@dataclass\nclass live_session_statuses:\n    DRAFT = 'draft'\n    STARTING = 'starting'\n    RUNNING = 'running'\n    STOPPED = 'stopped'\n    TERMINATED = 'terminated'\n\n\n@dataclass\nclass live_session_modes:\n    LIVETRADE = 'livetrade'\n    PAPERTRADE = 'papertrade'\n"
  },
  {
    "path": "jesse/exceptions/__init__.py",
    "content": "class EmptyPosition(Exception):\n    pass\n\n\nclass OpenPositionError(Exception):\n    pass\n\n\nclass OrderNotAllowed(Exception):\n    pass\n\n\nclass ConflictingRules(Exception):\n    pass\n\n\nclass InvalidStrategy(Exception):\n    pass\n\n\nclass CandleNotFoundInDatabase(Exception):\n    pass\n\n\nclass CandleNotFoundInExchange(Exception):\n    pass\n\n\nclass SymbolNotFound(Exception):\n    pass\n\n\nclass RouteNotFound(Exception):\n    def __init__(self, symbol, timeframe):\n        message = f\"Data route is required but missing: symbol='{symbol}', timeframe='{timeframe}'\"\n        super().__init__(message)\n\n\nclass InvalidRoutes(Exception):\n    pass\n\n\nclass ExchangeInMaintenance(Exception):\n    pass\n\n\nclass ExchangeNotResponding(Exception):\n    pass\n\n\nclass ExchangeRejectedOrder(Exception):\n    pass\n\nclass ExchangeRejectedLeverageNumber(Exception):\n    pass\n\n\nclass ExchangeOrderNotFound(Exception):\n    pass\n\n\nclass InvalidShape(Exception):\n    pass\n\n\nclass InvalidConfig(Exception):\n    pass\n\n\nclass InvalidTimeframe(Exception):\n    pass\n\n\nclass InvalidSymbol(Exception):\n    pass\n\n\nclass NegativeBalance(Exception):\n    pass\n\n\nclass InsufficientMargin(Exception):\n    pass\n\n\nclass InsufficientBalance(Exception):\n    pass\n\n\nclass Termination(Exception):\n    pass\n\n\nclass InvalidExchangeApiKeys(Exception):\n    pass\n\n\nclass ExchangeError(Exception):\n    pass\n\n\nclass NotSupportedError(Exception):\n    pass\n\n\nclass CandlesNotFound(Exception):\n    pass\n\n\nclass InvalidDateRange(Exception):\n    pass\n"
  },
  {
    "path": "jesse/exchanges/__init__.py",
    "content": "from .sandbox.Sandbox import Sandbox\n"
  },
  {
    "path": "jesse/exchanges/exchange.py",
    "content": "from abc import ABC, abstractmethod\nfrom typing import Union\nfrom jesse.models.Order import Order\n\n\nclass Exchange(ABC):\n    \"\"\"\n    The interface that every Exchange driver has to implement\n    \"\"\"\n\n    @abstractmethod\n    def market_order(self, symbol: str, qty: float, current_price: float, side: str, reduce_only: bool) -> Order:\n        pass\n\n    @abstractmethod\n    def limit_order(self, symbol: str, qty: float, price: float, side: str, reduce_only: bool) -> Order:\n        pass\n\n    @abstractmethod\n    def stop_order(self, symbol: str, qty: float, price: float, side: str, reduce_only: bool) -> Order:\n        pass\n\n    @abstractmethod\n    def cancel_all_orders(self, symbol: str) -> None:\n        pass\n\n    @abstractmethod\n    def cancel_order(self, symbol: str, order_id: str) -> None:\n        pass\n\n    @abstractmethod\n    def _fetch_precisions(self) -> None:\n        pass\n"
  },
  {
    "path": "jesse/exchanges/sandbox/Sandbox.py",
    "content": "from jesse.models.Order import Order\nimport jesse.helpers as jh\nfrom typing import List\nfrom jesse.enums import order_types\nfrom jesse.exchanges.exchange import Exchange\nfrom jesse.store import store\nfrom jesse.services import order_service\n\n\nclass Sandbox(Exchange):\n    def __init__(self, name='Sandbox'):\n        super().__init__()\n        self.name = name\n\n    def market_order(self, symbol: str, qty: float, current_price: float, side: str, reduce_only: bool) -> Order:\n        return order_service.create_order({\n            'id': jh.generate_unique_id(),\n            'symbol': symbol,\n            'exchange': self.name,\n            'side': side,\n            'type': order_types.MARKET,\n            'reduce_only': reduce_only,\n            'qty': jh.prepare_qty(qty, side),\n            'price': current_price,\n        })\n\n    def limit_order(self, symbol: str, qty: float, price: float, side: str, reduce_only: bool) -> Order:\n        return order_service.create_order({\n            'id': jh.generate_unique_id(),\n            'symbol': symbol,\n            'exchange': self.name,\n            'side': side,\n            'type': order_types.LIMIT,\n            'reduce_only': reduce_only,\n            'qty': jh.prepare_qty(qty, side),\n            'price': price,\n        })\n\n    def stop_order(self, symbol: str, qty: float, price: float, side: str, reduce_only: bool) -> Order:\n        return order_service.create_order({\n            'id': jh.generate_unique_id(),\n            'symbol': symbol,\n            'exchange': self.name,\n            'side': side,\n            'type': order_types.STOP,\n            'reduce_only': reduce_only,\n            'qty': jh.prepare_qty(qty, side),\n            'price': price,\n        })\n\n    def cancel_all_orders(self, symbol: str) -> List[Order]:\n        orders: list[Order] = store.orders.get_active_orders(self.name, symbol)\n\n        canceled_orders: List[Order] = []\n        for o in orders:\n            order_service.cancel_order(o)\n            canceled_orders.append(o)\n\n        if not jh.is_unit_testing():\n            store.orders.storage[f'{self.name}-{symbol}'].clear()\n\n        return canceled_orders\n        \n    def cancel_order(self, symbol: str, order_id: str) -> None:\n        order = store.orders.get_order_by_id(self.name, symbol, order_id)\n        order_service.cancel_order(order)\n\n    def _fetch_precisions(self) -> None:\n        pass\n"
  },
  {
    "path": "jesse/exchanges/sandbox/__init__.py",
    "content": "from .Sandbox import Sandbox\n"
  },
  {
    "path": "jesse/factories/__init__.py",
    "content": "from .candle_factory import fake_candle\nfrom .candle_factory import range_candles\nfrom .candle_factory import candles_from_close_prices\nfrom .order_factory import fake_order\n"
  },
  {
    "path": "jesse/factories/candle_factory.py",
    "content": "from random import randint\nfrom typing import Union\n\nimport numpy as np\n\n# 2021-01-01T00:00:00+00:00\nfirst_timestamp = 1609459080000\nopen_price = randint(40, 100)\nclose_price = randint(open_price, 110) if randint(0, 1) else randint(\n    30, open_price)\nmax_price = max(open_price, close_price)\nhigh_price = max_price if randint(0, 1) else randint(max_price, max_price + 10)\nmin_price = min(open_price, close_price)\nlow_price = min_price if randint(0, 1) else randint(min_price, min_price + 10)\n\n\ndef range_candles(count: int) -> np.ndarray:\n    \"\"\"\n    Generates a range of candles with random values.\n    \"\"\"\n    fake_candle(reset=True)\n    arr = np.zeros((count, 6))\n    for i in range(count):\n        arr[i] = fake_candle()\n    return arr\n\n\ndef candles_from_close_prices(prices: Union[list, range]) -> np.ndarray:\n    \"\"\"\n    Generates a range of candles from a list of close prices.\n    The first candle has the timestamp of \"2021-01-01T00:00:00+00:00\"\n    \"\"\"\n    fake_candle(reset=True)\n    global first_timestamp\n    arr = []\n    prev_p = np.nan\n    for p in prices:\n        # first prev_p\n        if np.isnan(prev_p):\n            prev_p = p - 0.5\n\n        first_timestamp += 60000\n        open_p = prev_p\n        close_p = p\n        high_p = max(open_p, close_p)\n        low_p = min(open_p, close_p)\n        vol = randint(0, 200)\n\n        arr.append([first_timestamp, open_p, close_p, high_p, low_p, vol])\n\n        # save prev_p for next candle\n        prev_p = p\n\n    return np.array(arr)\n\n\ndef fake_candle(attributes: dict = None, reset: bool = False) -> np.ndarray:\n    global first_timestamp\n    global open_price\n    global close_price\n    global max_price\n    global high_price\n    global min_price\n    global low_price\n\n    if reset:\n        first_timestamp = 1609459080000\n        open_price = randint(40, 100)\n        close_price = randint(open_price, 110)\n        high_price = max(open_price, close_price)\n        low_price = min(open_price, close_price)\n\n    if attributes is None:\n        attributes = {}\n\n    first_timestamp += 60000\n    open_price = close_price\n    close_price += randint(1, 8)\n    high_price = max(open_price, close_price)\n    low_price = min(open_price - 1, close_price)\n    volume = randint(1, 100)\n    timestamp = first_timestamp\n\n    return np.array([\n        attributes.get('timestamp', timestamp),\n        attributes.get('open', open_price),\n        attributes.get('close', close_price),\n        attributes.get('high', high_price),\n        attributes.get('low', low_price),\n        attributes.get('volume', volume)\n    ], dtype=np.float64)\n"
  },
  {
    "path": "jesse/factories/order_factory.py",
    "content": "from random import randint\n\nimport jesse.helpers as jh\nfrom jesse.enums import exchanges, sides, order_types, order_statuses\nfrom jesse.models.Order import Order\nfrom jesse.services import order_service\n\nfirst_timestamp = 1552309186171\n\n\ndef fake_order(attributes: dict = None) -> Order:\n    \"\"\"\n\n    :param attributes:\n    :return:\n    \"\"\"\n    if attributes is None:\n        attributes = {}\n\n    global first_timestamp\n    first_timestamp += 60000\n    exchange = exchanges.SANDBOX\n    symbol = 'BTC-USD'\n    side = sides.BUY\n    order_type = order_types.LIMIT\n    price = randint(40, 100)\n    qty = randint(1, 10)\n    status = order_statuses.ACTIVE\n    created_at = first_timestamp\n\n    return Order({\n        \"id\": jh.generate_unique_id(),\n        'symbol': attributes.get('symbol', symbol),\n        'exchange': attributes.get('exchange', exchange),\n        'side': attributes.get('side', side),\n        'type': attributes.get('type', order_type),\n        'qty': attributes.get('qty', qty),\n        'price': attributes.get('price', price),\n        'status': attributes.get('status', status),\n        'created_at': attributes.get('created_at', created_at),\n    }) \n"
  },
  {
    "path": "jesse/helpers.py",
    "content": "import hashlib\nfrom datetime import datetime\nimport math\nimport os\nimport gzip\nimport json\nfrom functools import lru_cache\nimport random\nimport string\nimport sys\nimport uuid\nfrom typing import List, Tuple, Union, Any, Optional\nfrom pprint import pprint\nimport arrow\nimport click\nimport numpy as np\nimport base64\nfrom jesse.constants import CANDLE_SOURCE_MAPPING\nfrom jesse.constants import TIMEFRAME_PRIORITY\nfrom jesse.constants import SUPPORTED_COLORS\nfrom jesse.enums import timeframes\n\nCACHED_CONFIG = dict()\n\n\ndef app_currency() -> str:\n    from jesse.info import exchange_info\n    from jesse.routes import router\n    if router.routes[0].exchange in exchange_info and 'settlement_currency' in exchange_info[router.routes[0].exchange]:\n        return exchange_info[router.routes[0].exchange]['settlement_currency']\n    else:\n        return quote_asset(router.routes[0].symbol)\n\n\n@lru_cache\ndef app_mode() -> str:\n    from jesse.config import config\n    return config['app']['trading_mode']\n\n\ndef arrow_to_timestamp(arrow_time: arrow.arrow.Arrow) -> int:\n    return arrow_time.int_timestamp * 1000\n\n\ndef base_asset(symbol: str) -> str:\n    return symbol.split('-')[0]\n\n\ndef binary_search(arr: list, item) -> int:\n    \"\"\"\n    performs a simple binary search on a sorted list\n\n    :param arr: list\n    :param item:\n\n    :return: int\n    \"\"\"\n    from bisect import bisect_left\n\n    i = bisect_left(arr, item)\n    if i != len(arr) and arr[i] == item:\n        return i\n    else:\n        return -1\n\n\ndef class_iter(Class):\n    return (value for variable, value in vars(Class).items() if\n            not callable(getattr(Class, variable)) and not variable.startswith(\"__\"))\n\n\ndef clean_orderbook_list(arr) -> List[List[float]]:\n    return [[float(i[0]), float(i[1])] for i in arr]\n\n\ndef color(msg_text: str, msg_color: str) -> str:\n    if not msg_text:\n        return ''\n\n    if msg_color in SUPPORTED_COLORS:\n        return click.style(msg_text, fg=msg_color)\n    if msg_color == 'gray':\n        return click.style(msg_text, fg='white')\n    raise ValueError('unsupported color')\n\n\ndef convert_number(old_max: float, old_min: float, new_max: float, new_min: float, old_value: float) -> float:\n    \"\"\"\n    convert a number from one range (ex 40-119) to another\n    range (ex 0-30) while keeping the ratio.\n    \"\"\"\n    # validation\n    if old_value > old_max or old_value < old_min:\n        raise ValueError(f'old_value:{old_value} must be within the range. {old_min}-{old_max}')\n\n    old_range = (old_max - old_min)\n    new_range = (new_max - new_min)\n    return (((old_value - old_min) * new_range) / old_range) + new_min\n\n\ndef dashless_symbol(symbol: str) -> str:\n    return symbol.replace(\"-\", \"\")\n\n\ndef dashy_symbol(symbol: str) -> str:\n    if '-' in symbol:\n        return symbol\n\n    from jesse.config import config\n    for s in config['app']['considering_symbols']:\n        if dashless_symbol(s) == symbol:\n            return s\n\n    suffixes = [\n        'UST', 'FDUSD', 'TUSD', 'EUT', 'EUR', 'GBP', 'JPY', 'MIM', 'TRY'\n    ]\n\n    for suffix in suffixes:\n        if symbol.endswith(suffix):\n            return f\"{symbol[:-len(suffix)]}-{suffix}\"\n\n    if \"USD\" in symbol[-4:]:  # Only look at the last 4 letters\n        idx = symbol.rfind(\"USD\")\n        return f\"{symbol[:idx]}-{symbol[idx:]}\"\n\n    return f\"{symbol[:3]}-{symbol[3:]}\"\n\n\ndef underline_to_dashy_symbol(symbol: str) -> str:\n    return symbol.replace('_', '-')\n\n\ndef dashy_to_underline(symbol: str) -> str:\n    return symbol.replace('-', '_')\n\n\ndef get_base_asset(symbol: str) -> str:\n    return symbol.split('-')[0]\n\n\ndef get_quote_asset(symbol: str) -> str:\n    return symbol.split('-')[1]\n\n\ndef date_diff_in_days(date1: arrow.arrow.Arrow, date2: arrow.arrow.Arrow) -> int:\n    if type(date1) is not arrow.arrow.Arrow or type(\n            date2) is not arrow.arrow.Arrow:\n        raise TypeError('dates must be Arrow instances')\n\n    dif = date2 - date1\n\n    return abs(dif.days)\n\n\ndef date_to_timestamp(date: str) -> int:\n    \"\"\"\n    converts date string into timestamp. \"2015-08-01\" => 1438387200000\n\n    :param date: str\n    :return: int\n    \"\"\"\n    return arrow_to_timestamp(arrow.get(date, 'YYYY-MM-DD'))\n\n\ndef dna_to_hp(strategy_hp, dna: str):\n    # First, try to decode as Base64\n    try:\n        import base64\n        import json\n        # Try to decode the DNA as base64\n        decoded_bytes = base64.b64decode(dna)\n        # Try to parse as JSON\n        decoded_json = json.loads(decoded_bytes.decode('utf-8'))\n        # If successful, the decoded JSON should be the hyperparameters\n        return decoded_json\n    except (ValueError, base64.binascii.Error, json.JSONDecodeError):\n        # If decoding fails, use the legacy method\n        hp = {}\n\n        for gene, h in zip(dna, strategy_hp):\n            if h['type'] is int:\n                decoded_gene = int(\n                    round(\n                        convert_number(119, 40, h['max'], h['min'], ord(gene))\n                    )\n                )\n            elif h['type'] is float:\n                decoded_gene = convert_number(119, 40, h['max'], h['min'], ord(gene))\n            else:\n                raise TypeError('Only int and float types are implemented')\n\n            hp[h['name']] = decoded_gene\n\n        return hp\n\n\ndef dump_exception() -> None:\n    \"\"\"\n    a useful debugging helper\n    \"\"\"\n    import traceback\n    print(traceback.format_exc())\n    terminate_app()\n\n\ndef estimate_average_price(order_qty: float, order_price: float, current_qty: float,\n                           current_entry_price: float) -> float:\n    \"\"\"Estimates the new entry price for the position.\n    This is used after having a new order and updating the currently holding position.\n\n    Arguments:\n        order_qty {float} -- qty of the new order\n        order_price {float} -- price of the new order\n        current_qty {float} -- current(pre-calculation) qty\n        current_entry_price {float} -- current(pre-calculation) entry price\n\n    Returns:\n        float -- the new/averaged entry price\n    \"\"\"\n    return (abs(order_qty) * order_price + abs(current_qty) *\n            current_entry_price) / (abs(order_qty) + abs(current_qty))\n\n\ndef estimate_PNL(qty: float, entry_price: float, exit_price: float, trade_type: str, trading_fee: float = 0) -> float:\n    qty = abs(qty)\n    profit = qty * (exit_price - entry_price)\n\n    if trade_type == 'short':\n        profit *= -1\n\n    fee = trading_fee * qty * (entry_price + exit_price)\n\n    return profit - fee\n\n\ndef estimate_PNL_percentage(qty: float, entry_price: float, exit_price: float, trade_type: str) -> float:\n    qty = abs(qty)\n    profit = qty * (exit_price - entry_price)\n\n    if trade_type == 'short':\n        profit *= -1\n\n    return (profit / (qty * entry_price)) * 100\n\n\ndef file_exists(path: str) -> bool:\n    return os.path.isfile(path)\n\n\ndef clear_file(path: str) -> None:\n    with open(path, 'w') as f:\n        f.write('')\n\n\ndef make_directory(path: str) -> None:\n    if not os.path.exists(path):\n        os.makedirs(path)\n\n\ndef floor_with_precision(num: float, precision: int = 0) -> float:\n    temp = 10 ** precision\n    return math.floor(num * temp) / temp\n\n\ndef format_currency(num: float) -> str:\n    return f'{num:,}'\n\n\ndef format_price(price: float) -> str:\n    \"\"\"\n    Formats the price for logging.\n    - If abs(price) is >= 1, it will be truncated to 2 decimal places.\n    - If abs(price) is < 1, it will be truncated to 5 significant digits.\n    \"\"\"\n    if price is None:\n        return \"\"\n\n    if price == 0:\n        return \"0.00\"\n\n    # to handle scientific notation\n    price_str = f'{price:.20f}'\n\n    if abs(price) >= 1:\n        if '.' not in price_str:\n            return f\"{price:.2f}\"\n\n        integer_part, decimal_part = price_str.split('.')\n        return f\"{integer_part}.{decimal_part[:2]}\"\n\n    # For numbers between -1 and 1\n\n    # find sign\n    sign = ''\n    if price < 0:\n        sign = '-'\n\n    price_str = f'{abs(price):.20f}'\n\n    decimal_part = price_str.split('.')[1]\n\n    first_non_zero_index = -1\n    for i, digit in enumerate(decimal_part):\n        if digit != '0':\n            first_non_zero_index = i\n            break\n\n    # This case should ideally not be hit if price is not 0, but as a safeguard:\n    if first_non_zero_index == -1:\n        return \"0.00\"\n\n    # Use 5 significant digits for all values below 1\n    end_index = first_non_zero_index + 5\n\n    formatted_decimal = decimal_part[:end_index]\n\n    return f\"{sign}0.{formatted_decimal}\"\n\n\ndef generate_unique_id() -> str:\n    return str(uuid.uuid4())\n\n\ndef generate_short_unique_id() -> str:\n    return str(uuid.uuid4())[:22]\n\n\ndef get_arrow(timestamp: int) -> arrow.arrow.Arrow:\n    return timestamp_to_arrow(timestamp)\n\n\ndef get_candle_source(candles: np.ndarray, source_type: str = \"close\") -> np.ndarray:\n    \"\"\"\n    Returns the candles corresponding to the selected type.\n    \"\"\"\n    try:\n        return CANDLE_SOURCE_MAPPING[source_type](candles)\n    except KeyError:\n        raise ValueError(f\"Source type '{source_type}' not recognised\")\n\n\ndef get_config(keys: str, default: Any = None) -> Any:\n    \"\"\"\n    Gets keys as a single string separated with \".\" and returns value.\n    Also accepts a default value so that the app would work even if\n    the required config value is missing from config.py file.\n    Example: get_config('env.logging.order_submission', True)\n\n    :param keys: str\n    :param default: None\n    :return:\n    \"\"\"\n    if not str:\n        raise ValueError('keys string cannot be empty')\n\n    if is_unit_testing() or keys not in CACHED_CONFIG:\n        if os.environ.get(keys.upper().replace(\".\", \"_\").replace(\" \", \"_\")) is not None:\n            CACHED_CONFIG[keys] = os.environ.get(keys.upper().replace(\".\", \"_\").replace(\" \", \"_\"))\n        else:\n            from functools import reduce\n            from jesse.config import config\n            CACHED_CONFIG[keys] = reduce(lambda d, k: d.get(k, default) if isinstance(d, dict) else default,\n                                         keys.split(\".\"), config)\n\n    return CACHED_CONFIG[keys]\n\n\ndef get_store():\n    from jesse.store import store\n    return store\n\n\ndef get_strategy_class(strategy_name: str):\n    from pydoc import locate\n    import os\n    import re\n\n    if not is_unit_testing():\n        strategy_class = locate(f'strategies.{strategy_name}.{strategy_name}')\n        if strategy_class is None:\n            # Try to find any class that inherits from Strategy in the module\n            module = locate(f'strategies.{strategy_name}')\n            if module:\n                strategy_file = os.path.join('strategies', strategy_name, '__init__.py')\n                if os.path.exists(strategy_file):\n                    with open(strategy_file, 'r') as f:\n                        content = f.read()\n\n                    # Find the class definition\n                    class_pattern = r'class\\s+(\\w+)'\n                    match = re.search(class_pattern, content)\n                    if match:\n                        old_class_name = match.group(1)\n                        if old_class_name != strategy_name:\n                            # Replace the class name in the file\n                            new_content = re.sub(f'class {old_class_name}', f'class {strategy_name}', content)\n                            with open(strategy_file, 'w') as f:\n                                f.write(new_content)\n\n                            # Reload the module to get the updated class\n                            import importlib\n                            module_path = f'strategies.{strategy_name}'\n                            if module_path in sys.modules:\n                                del sys.modules[module_path]\n                            strategy_class = locate(f'strategies.{strategy_name}.{strategy_name}')\n                            return strategy_class\n\n                for attr_name in dir(module):\n                    attr = getattr(module, attr_name)\n                    if isinstance(attr, type) and attr.__module__ == f'strategies.{strategy_name}':\n                        # Create a new class with the correct name as fallback\n                        strategy_class = type(strategy_name, (attr,), {})\n                        break\n        return strategy_class\n\n    path = sys.path[0]\n    # live plugin\n    if path.endswith('jesse-live'):\n        strategy_dir = f'tests.strategies.{strategy_name}.{strategy_name}'\n    # main framework\n    else:\n        strategy_dir = f'jesse.strategies.{strategy_name}.{strategy_name}'\n\n    return locate(strategy_dir)\n\n\ndef insecure_hash(msg: str) -> str:\n    return hashlib.md5(msg.encode()).hexdigest()\n\n\ndef insert_list(index: int, item, arr: list) -> list:\n    \"\"\"\n    helper to insert an item in a Python List without removing the item\n    \"\"\"\n    if index == -1:\n        return arr + [item]\n\n    return arr[:index] + [item] + arr[index:]\n\n\ndef is_backtesting() -> bool:\n    from jesse.config import config\n    return config['app']['trading_mode'] == 'backtest'\n\n\ndef is_debuggable(debug_item) -> bool:\n    from jesse.config import config\n    try:\n        return is_debugging() and config['env']['logging'][debug_item]\n    except KeyError:\n        return True\n\n\ndef is_debugging() -> bool:\n    from jesse.config import config\n    return config['app']['debug_mode']\n\n\ndef is_importing_candles() -> bool:\n    from jesse.config import config\n    return config['app']['trading_mode'] == 'candles'\n\n\n@lru_cache\ndef is_live() -> bool:\n    return is_livetrading() or is_paper_trading()\n\n\n@lru_cache\ndef is_livetrading() -> bool:\n    from jesse.config import config\n    return config['app']['trading_mode'] == 'livetrade'\n\n\n@lru_cache\ndef is_optimizing() -> bool:\n    from jesse.config import config\n    return config['app']['trading_mode'] == 'optimize'\n\n\n@lru_cache\ndef is_paper_trading() -> bool:\n    from jesse.config import config\n    return config['app']['trading_mode'] == 'papertrade'\n\n\ndef is_unit_testing() -> bool:\n    \"\"\"Returns True if the code is running by running pytest or PyCharm's test runner, False otherwise.\"\"\"\n    # Check if the PYTEST_CURRENT_TEST environment variable is set.\n    if os.environ.get(\"PYTEST_CURRENT_TEST\"):\n        return True\n\n    # Check if the code is being executed from the pytest command-line tool.\n    script_name = os.path.basename(sys.argv[0])\n    if script_name in [\"pytest\", \"py.test\"]:\n        return True\n\n    # Otherwise, the code is not running by running pytest or PyCharm's test runner.\n    return False\n\n\ndef is_valid_uuid(uuid_to_test: str, version: int = 4) -> bool:\n    try:\n        uuid_obj = uuid.UUID(uuid_to_test, version=version)\n    except ValueError:\n        return False\n    return str(uuid_obj) == uuid_to_test\n\n\ndef key(exchange: str, symbol: str, timeframe: str = None):\n    if timeframe is None:\n        return f'{exchange}-{symbol}'\n\n    return f'{exchange}-{symbol}-{timeframe}'\n\n\ndef max_timeframe(timeframes_list: list) -> str:\n\n    times = set(timeframes_list)\n    for tf in TIMEFRAME_PRIORITY:\n        if tf in times:\n            return tf\n    return timeframes.MINUTE_1\n\n\ndef normalize(x: float, x_min: float, x_max: float) -> float:\n    \"\"\"\n    Rescaling data to have values between 0 and 1\n    \"\"\"\n    return (x - x_min) / (x_max - x_min)\n\n\ndef now(force_fresh=False) -> int:\n    \"\"\"\n    Always returns the current time in milliseconds but rounds time in matter of seconds\n    \"\"\"\n    return int(now_to_timestamp(force_fresh))\n\n\ndef now_to_timestamp(force_fresh=False) -> int:\n    if not force_fresh and (not (is_live() or is_importing_candles())):\n        from jesse.store import store\n        return store.app.time\n\n    return arrow.utcnow().int_timestamp * 1000\n\n\n# for use with peewee\ndef now_to_datetime():\n    return arrow.utcnow().datetime\n\n\ndef current_1m_candle_timestamp():\n    return arrow.utcnow().floor('minute').int_timestamp * 1000\n\n\ndef np_ffill(arr: np.ndarray, axis: int = 0) -> np.ndarray:\n    idx_shape = tuple([slice(None)] + [np.newaxis] * (len(arr.shape) - axis - 1))\n    idx = np.where(~np.isnan(arr), np.arange(arr.shape[axis])[idx_shape], 0)\n    np.maximum.accumulate(idx, axis=axis, out=idx)\n    slc = [\n        np.arange(k)[\n            tuple(\n                slice(None) if dim == i else np.newaxis\n                for dim in range(len(arr.shape))\n            )\n        ]\n        for i, k in enumerate(arr.shape)\n    ]\n\n    slc[axis] = idx\n    return arr[tuple(slc)]\n\n\ndef np_shift(arr: np.ndarray, num: int, fill_value=0) -> np.ndarray:\n    result = np.empty_like(arr)\n\n    if num > 0:\n        result[:num] = fill_value\n        result[num:] = arr[:-num]\n    elif num < 0:\n        result[num:] = fill_value\n        result[:num] = arr[-num:]\n    else:\n        result[:] = arr\n\n    return result\n\n\n@lru_cache\ndef opposite_side(s: str) -> str:\n    from jesse.enums import sides\n\n    if s == sides.BUY:\n        return sides.SELL\n    elif s == sides.SELL:\n        return sides.BUY\n    else:\n        raise ValueError(f'{s} is not a valid input for side')\n\n\n@lru_cache\ndef opposite_type(t: str) -> str:\n    from jesse.enums import trade_types\n\n    if t == trade_types.LONG:\n        return trade_types.SHORT\n    if t == trade_types.SHORT:\n        return trade_types.LONG\n    raise ValueError('unsupported type')\n\n\ndef orderbook_insertion_index_search(arr, target: int, ascending: bool = True) -> Tuple[bool, int]:\n    target = target[0]\n    lower = 0\n    upper = len(arr)\n\n    while lower < upper:\n        x = lower + (upper - lower) // 2\n        val = arr[x][0]\n        if ascending:\n            if target == val:\n                return True, x\n            elif target > val:\n                if lower == x:\n                    return False, lower + 1\n                lower = x\n            elif target < val:\n                if lower == x:\n                    return False, lower\n                upper = x\n        elif target == val:\n            return True, x\n        elif target < val:\n            if lower == x:\n                return False, lower + 1\n            lower = x\n        elif target > val:\n            if lower == x:\n                return False, lower\n            upper = x\n\n\ndef orderbook_trim_price(p: float, ascending: bool, unit: float) -> float:\n    if ascending:\n        trimmed = np.ceil(p / unit) * unit\n        if math.log10(unit) < 0:\n            trimmed = round(trimmed, abs(int(math.log10(unit))))\n        return p if trimmed == p + unit else trimmed\n\n    trimmed = np.ceil(p / unit) * unit - unit\n    if math.log10(unit) < 0:\n        trimmed = round(trimmed, abs(int(math.log10(unit))))\n    return p if trimmed == p - unit else trimmed\n\n\ndef prepare_qty(qty: float, side: str) -> float:\n    if side.lower() in ('sell', 'short'):\n        return -abs(qty)\n    elif side.lower() in ('buy', 'long'):\n        return abs(qty)\n    elif side.lower() == 'close':\n        return 0.0\n    else:\n        raise ValueError(f'{side} is not a valid input')\n\n\ndef python_version() -> tuple:\n    return sys.version_info[:2]\n\n\ndef quote_asset(symbol: str) -> str:\n    try:\n        return symbol.split('-')[1]\n    except IndexError:\n        from jesse.exceptions import InvalidRoutes\n        raise InvalidRoutes(f\"The symbol format is incorrect. Correct example: 'BTC-USDT'. Yours is '{symbol}'\")\n\n\ndef random_str(num_characters: int = 8) -> str:\n    return ''.join(random.choice(string.ascii_letters) for _ in range(num_characters))\n\n\ndef readable_duration(seconds: int, granularity: int = 2) -> str:\n    intervals = (\n        ('weeks', 604800),  # 60 * 60 * 24 * 7\n        ('days', 86400),  # 60 * 60 * 24\n        ('hours', 3600),  # 60 * 60\n        ('minutes', 60),\n        ('seconds', 1),\n    )\n\n    result = []\n    seconds = int(seconds)\n\n    for name, count in intervals:\n        value = seconds // count\n        if value:\n            seconds -= value * count\n            if value == 1:\n                name = name.rstrip('s')\n            result.append(f\"{value} {name}\")\n    return ', '.join(result[:granularity])\n\n\ndef relative_to_absolute(path: str) -> str:\n    return os.path.abspath(path)\n\n\ndef round_or_none(x: Union[float, None], digits: int = 0) -> Optional[float]:\n    \"\"\"\n    Rounds a number to a certain number of digits or returns None if the number is None\n    \"\"\"\n    if x is None:\n        return None\n    return round(x, digits)\n\n\ndef round_price_for_live_mode(price, precision: int) -> Union[float, np.ndarray]:\n    \"\"\"\n    Rounds price(s) based on exchange requirements\n\n    :param price: float\n    :param precision: int\n    :return: float | nd.array\n    \"\"\"\n    return np.round(price, precision)\n\n\ndef round_qty_for_live_mode(roundable_qty: float, precision: int) -> Union[float, np.ndarray]:\n    \"\"\"\n    Rounds qty(s) based on exchange requirements\n\n    :param roundable_qty: float | nd.array\n    :param precision: int\n    :return: float | nd.array\n    \"\"\"\n    input_type = type(roundable_qty)\n    # if roundable_qty is a scalar, convert to nd.array\n    if not isinstance(roundable_qty, np.ndarray):\n        roundable_qty = np.array([roundable_qty])\n\n    # for qty rounding down is important to prevent InsufficenMargin\n    rounded = round_decimals_down(roundable_qty, precision)\n\n    for index, q in enumerate(rounded):\n        # if the rounded value is 0, make it the minimum possible value\n        if q == 0.0:\n            # if the precision is bigger or equal 0, (for numbers like 2, 0.2, 0.02)\n            if precision >= 0:\n                rounded[index] = 1 / 10 ** precision\n            else:  # for numbers like 20, 200, 2000\n                raise ValueError('qty is too small')\n\n    if input_type in [float, np.float64]:\n        return float(rounded[0])\n    return rounded\n\n\ndef round_decimals_down(number: Union[np.ndarray, float], decimals: int = 2) -> float:\n    \"\"\"\n    Returns a value rounded down to a specific number of decimal places.\n    \"\"\"\n    if not isinstance(decimals, int):\n        raise TypeError(\"decimal places must be an integer\")\n    elif decimals == 0:\n        return np.floor(number)\n    elif decimals > 0:\n        factor = 10 ** decimals\n        return np.floor(number * factor) / factor\n    elif decimals < 0:\n        # for example, for decimals = -2, we want to round down to the nearest 100 if the number is 1234, we want to return 1200:\n        factor = 10 ** (decimals * -1)\n        return np.floor(number / factor) * factor\n\n\ndef is_almost_equal(a: float, b: float, tolerance: float = 1e-8) -> bool:\n    \"\"\"\n    Compares two floating point values with a small tolerance to account for floating point precision issues.\n\n    :param a: First float value to compare\n    :param b: Second float value to compare\n    :param tolerance: The tolerance level for the comparison (default: 1e-8)\n    :return: bool - True if the difference between a and b is less than or equal to the tolerance\n    \"\"\"\n    # Check if both are None, which means they're equal\n    if a is None and b is None:\n        return True\n\n    # Check if only one is None, which means they're not equal\n    if a is None or b is None:\n        return False\n\n    # Check for exact equality first (optimizes for common case)\n    if a == b:\n        return True\n\n    # For values very close to zero, use absolute tolerance\n    if abs(a) < tolerance and abs(b) < tolerance:\n        return abs(a - b) <= tolerance\n\n    # For non-zero values, use relative tolerance\n    return abs((a - b) / max(abs(a), abs(b))) <= tolerance\n\n\ndef same_length(bigger: np.ndarray, shorter: np.ndarray) -> np.ndarray:\n    return np.concatenate((np.full((bigger.shape[0] - shorter.shape[0]), np.nan), shorter))\n\n\ndef secure_hash(msg: str) -> str:\n    return hashlib.sha256(msg.encode()).hexdigest()\n\n\ndef should_execute_silently() -> bool:\n    return is_optimizing() or is_unit_testing()\n\n\n@lru_cache\ndef side_to_type(s: str) -> str:\n    from jesse.enums import trade_types, sides\n\n    # make sure string is lowercase\n    s = s.lower()\n\n    if s == sides.BUY:\n        return trade_types.LONG\n    if s == sides.SELL:\n        return trade_types.SHORT\n    raise ValueError\n\n\ndef string_after_character(s: str, character: str) -> str:\n    try:\n        return s.split(character, 1)[1]\n    except IndexError:\n        return None\n\n\ndef slice_candles(candles: np.ndarray, sequential: bool) -> np.ndarray:\n    warmup_candles_num = get_config('env.data.warmup_candles_num', 240)\n    if not sequential and candles.shape[0] > warmup_candles_num:\n        candles = candles[-warmup_candles_num:]\n    return candles\n\n\ndef style(msg_text: str, msg_style: str) -> str:\n    if msg_style is None:\n        return msg_text\n\n    if msg_style.lower() in ['bold', 'b']:\n        return click.style(msg_text, bold=True)\n\n    if msg_style.lower() in ['underline', 'u']:\n        return click.style(msg_text, underline=True)\n\n    raise ValueError('unsupported style')\n\n\ndef terminate_app() -> None:\n    # close the database\n    from jesse.services.db import database\n    database.close_connection()\n    # disconnect python from the OS\n    os._exit(1)\n\n\ndef error(msg: str, force_print: bool = False) -> None:\n    # send notifications if it's a live session\n    if is_live():\n        from jesse.services import logger\n        logger.error(msg)\n        if force_print:\n            _print_error(msg)\n    else:\n        _print_error(msg)\n\n\ndef _print_error(msg: str) -> None:\n    print('\\n')\n    print(color('========== critical error =========='.upper(), 'red'))\n    print(color(msg, 'red'))\n    print(color('====================================', 'red'))\n\n\ndef timestamp_to_arrow(timestamp: int) -> arrow.arrow.Arrow:\n    return arrow.get(timestamp / 1000)\n\n\ndef timestamp_to_date(timestamp: int) -> str:\n    return str(arrow.get(timestamp / 1000))[:10]\n\n\ndef timestamp_to_time(timestamp: int) -> str:\n    return str(arrow.get(timestamp / 1000))\n\n\ndef timestamp_to_iso8601(timestamp: int) -> str:\n    # example: 1609804800000 => '2021-01-05T00:00:00.000Z'\n    return arrow.get(timestamp / 1000).isoformat()\n\n\ndef iso8601_to_timestamp(iso8601: str) -> int:\n    # example: '2021-01-05T00:00:00.000Z' -> 1609740800000\n    return int(arrow.get(iso8601, 'YYYY-MM-DDTHH:mm:ss.SSSZ').datetime.timestamp()) * 1000\n\n\ndef today_to_timestamp() -> int:\n    \"\"\"\n    returns today's (beginning) timestamp\n\n    :return: int\n    \"\"\"\n    return arrow.utcnow().floor('day').int_timestamp * 1000\n\n\n@lru_cache\ndef type_to_side(t: str) -> str:\n    from jesse.enums import trade_types, sides\n\n    if t == trade_types.LONG:\n        return sides.BUY\n    if t == trade_types.SHORT:\n        return sides.SELL\n    raise ValueError(f'unsupported type: \"{t}\". Only \"long\" and \"short\" are supported.')\n\n\ndef unique_list(arr) -> list:\n    \"\"\"\n    returns a unique version of the list while keeping its order\n    :param arr: list | tuple\n    :return: list\n    \"\"\"\n    seen = set()\n    seen_add = seen.add\n    return [x for x in arr if not (x in seen or seen_add(x))]\n\n\ndef closing_side(position_type: str) -> str:\n    if position_type.lower() == 'long':\n        return 'sell'\n    elif position_type.lower() == 'short':\n        return 'buy'\n    else:\n        raise ValueError(f'Value entered for position_type ({position_type}) is not valid')\n\n\ndef merge_dicts(d1: dict, d2: dict) -> dict:\n    \"\"\"\n    Merges nested dictionaries\n\n    :param d1: dict\n    :param d2: dict\n    :return: dict\n    \"\"\"\n\n    def inner(dict1, dict2):\n        for k in set(dict1.keys()).union(dict2.keys()):\n            if k in dict1 and k in dict2:\n                if isinstance(dict1[k], dict) and isinstance(dict2[k], dict):\n                    yield k, dict(merge_dicts(dict1[k], dict2[k]))\n                else:\n                    yield k, dict2[k]\n            elif k in dict1:\n                yield k, dict1[k]\n            else:\n                yield k, dict2[k]\n\n    return dict(inner(d1, d2))\n\n\ndef computer_name():\n    import platform\n    return platform.node()\n\n\ndef validate_response(response):\n    if response.status_code != 200:\n        err_msg = f\"[{response.status_code}]: {response.json()['message']}\\nPlease contact us at support@jesse.trade if this is unexpected.\"\n\n        if response.status_code not in [401, 403]:\n            raise ConnectionError(err_msg)\n        error(err_msg, force_print=True)\n        terminate_app()\n\n\ndef get_session_id():\n    from jesse.store import store\n    if store.app.session_id == '':\n        store.app.session_id = generate_unique_id()\n    return store.app.session_id\n\n\ndef get_pid():\n    return os.getpid()\n\n\ndef is_jesse_project():\n    ls = os.listdir('.')\n    return 'strategies' in ls and 'storage' in ls\n\n\ndef dd(item):\n    \"\"\"\n    Dump and Die but pretty: used for debugging when developing Jesse\n    \"\"\"\n    dump(item)\n    terminate_app()\n\n\ndef dump(*item):\n    \"\"\"\n    Dump object in pretty format: used for debugging when developing Jesse\n    \"\"\"\n    if len(item) == 1:\n        item = item[0]\n\n    print(\n        color('\\n========= Debugging Value =========='.upper(), 'yellow')\n    )\n\n    pprint(item)\n\n    print(\n        color('====================================\\n', 'yellow')\n    )\n\n\ndef debug(*item):\n    \"\"\"\n    Used for debugging when developing Jesse. Prints the item in pretty format in both\n    the terminal and the log file.\n    \"\"\"\n    if len(item) == 1:\n        dump(f\"==> {item[0]}\")\n    else:\n        dump(f\"==> {', '.join(str(x) for x in item)}\")\n    from jesse.services import logger\n    if len(item) == 1:\n        logger.info(f\"==> {item[0]}\")\n    else:\n        logger.info(f\"==> {', '.join(str(x) for x in item)}\")\n\n\ndef terminal_debug(*item):\n    \"\"\"\n    Used for debugging when developing Jesse. Prints the item with timestamp in the \n    terminal only (not logged to file). Uses local timezone.\n    \"\"\"\n    timestamp = datetime.now().strftime('%Y-%m-%d %H:%M:%S')\n    if len(item) == 1:\n        dump(f\"[{timestamp}] ==> {item[0]}\")\n    else:\n        dump(f\"[{timestamp}] ==> {', '.join(str(x) for x in item)}\")\n\n\ndef float_or_none(item):\n    \"\"\"\n    Return the float of the value if it's not None\n    \"\"\"\n    if item is None or item == '':\n        return None\n    else:\n        return float(item)\n\n\ndef str_or_none(item, encoding='utf-8'):\n    \"\"\"\n    Return the str of the value if it's not None\n    \"\"\"\n    if item is None:\n        return None\n    else:\n        # return item if it's str, if not, decode it using encoding\n        if isinstance(item, str):\n            return item\n\n        if isinstance(item, np.float64):\n            return str(item)\n\n        try:\n            return str(item, encoding)\n        except TypeError:\n            return str(item)\n\n\ndef cpu_cores_count():\n    from multiprocessing import cpu_count\n    return cpu_count()\n\n\n# a function that converts name to env_name. Example: 'Testnet Binance Futures' into 'TESTNET_BINANCE_FUTURES'\ndef convert_to_env_name(name: str) -> str:\n    return name.replace(' ', '_').upper()\n\n\ndef is_notebook():\n    try:\n        shell = get_ipython().__class__.__name__\n        # Jupyter notebook or qtconsole\n        if shell == 'ZMQInteractiveShell':\n            return True\n        elif shell == 'TerminalInteractiveShell':\n            # Terminal running IPython\n            return False\n        else:\n            # Other type (?)\n            return False\n    except NameError:\n        # Probably standard Python interpreter\n        return False\n\n\ndef get_os() -> str:\n    import platform\n    if platform.system() == 'Darwin':\n        return 'mac'\n    elif platform.system() == 'Linux':\n        return 'linux'\n    elif platform.system() == 'Windows':\n        return 'windows'\n    else:\n        raise NotImplementedError(f'Unsupported OS: \"{platform.system()}\"')\n\n\n# a function that returns boolean whether or not the code is being executed inside a docker container\ndef is_docker() -> bool:\n    import os\n    return os.path.exists('/.dockerenv')\n\n\ndef clear_output():\n    if is_notebook():\n        from IPython.display import clear_output\n        clear_output(wait=True)\n    else:\n        click.clear()\n\n\ndef clean_nan_values(obj):\n    \"\"\"\n    Recursively clean NaN values from data structures by replacing them with None.\n    \n    :param obj: The object to clean (can be dict, list, or primitive)\n    :return: The cleaned object with NaN values replaced\n    \"\"\"\n    import math\n    import numpy as np\n\n    if isinstance(obj, dict):\n        return {k: clean_nan_values(v) for k, v in obj.items()}\n    elif isinstance(obj, list):\n        return [clean_nan_values(item) for item in obj]\n    elif isinstance(obj, bool):\n        # bool is a subclass of int in Python; keep it as boolean\n        return obj\n    elif isinstance(obj, (float, np.floating)):\n        # Replace NaN with None\n        if math.isnan(float(obj)):\n            return None\n        return float(obj)\n    elif isinstance(obj, (int, np.integer)):\n        # Keep integers as-is (cast NumPy integers to native int)\n        return int(obj)\n    else:\n        return obj\n\n\ndef clean_infinite_values(obj):\n    \"\"\"\n    Recursively clean infinite values (inf, -inf) from data structures\n    by replacing them with None or 0\n    \n    :param obj: The object to clean (can be dict, list, or primitive)\n    :return: The cleaned object with infinite values replaced\n    \"\"\"\n    import math\n    \n    if isinstance(obj, dict):\n        return {k: clean_infinite_values(v) for k, v in obj.items()}\n    elif isinstance(obj, list):\n        return [clean_infinite_values(item) for item in obj]\n    elif isinstance(obj, float):\n        if math.isinf(obj):\n            return None\n        return obj\n    else:\n        return obj\n\n\ndef get_class_name(cls):\n    # if it's a string, return it\n    if isinstance(cls, str):\n        return cls\n    # else, return the class name\n    return cls.__name__\n\n\ndef next_candle_timestamp(candle: np.ndarray, timeframe: str) -> int:\n    return candle[0] + timeframe_to_one_minutes(timeframe) * 60_000\n\n\ndef get_candle_start_timestamp_based_on_timeframe(timeframe: str, num_candles_to_fetch: int) -> int:\n    one_min_count = timeframe_to_one_minutes(timeframe)\n    finish_date = now(force_fresh=True)\n    return finish_date - (num_candles_to_fetch * one_min_count * 60_000)\n\n\ndef is_price_near(order_price, price_to_compare, percentage_threshold=0.00015):\n    \"\"\"\n    Check if the given order price is near the specified price.\n    Default percentage_threshold is 0.015% (0.00015)\n    We calculate percentage difference between the two prices rounded to 4 decimal places,\n    so low-priced orders can be properly compared within 0.015% range.\n    \"\"\"\n    return abs(1 - (order_price / price_to_compare)) <= percentage_threshold\n\n\ndef gzip_compress(data):\n    \"\"\"Compress data using gzip.\"\"\"\n    json_data = json.dumps(data).encode('utf-8')\n    # Compress the JSON string\n    return gzip.compress(json_data)\n\n\ndef timeframe_to_one_minutes(timeframe: str) -> int:\n    from jesse.utils import timeframe_to_one_minutes\n    return timeframe_to_one_minutes(timeframe)\n\n\ndef compressed_response(content: str) -> dict:\n    \"\"\"\n    Helper function to handle compression for HTTP responses.\n    Returns a dict with compression info and content.\n\n    :param content: string content to potentially compress\n    :return: dict with is_compressed flag and content\n    \"\"\"\n    # check if content is large enough to warrant compression\n    compressed = gzip_compress(content)\n    # encode as base64 string for safe transmission\n    return {\n        'is_compressed': True,\n        'data': base64.b64encode(compressed).decode('utf-8')\n    }\n\n\ndef validate_cwd() -> None:\n    \"\"\"\n    make sure we're in a Jesse project\n    \"\"\"\n    if not is_jesse_project():\n        print(\n            color(\n                'Current directory is not a Jesse project. You must run commands from the root of a Jesse project. Read this page for more info: https://docs.jesse.trade/docs/getting-started/#create-a-new-jesse-project',\n                'red'\n            )\n        )\n        os._exit(1)\n\n\ndef has_live_trade_plugin() -> bool:\n    try:\n        import jesse_live\n    except ModuleNotFoundError:\n        return False\n    return True\n\n\ndef normalize_bool(v: Any) -> bool:\n    if isinstance(v, bool):\n        return v\n    if isinstance(v, int):\n        return v == 1\n    if isinstance(v, str):\n        s = v.strip().lower()\n        if s in ['1', 'true']:\n            return True\n        if s in ['0', 'false']:\n            return False\n    return bool(v)\n"
  },
  {
    "path": "jesse/indicators/__init__.py",
    "content": "from .acosc import acosc\nfrom .ad import ad\nfrom .adosc import adosc\nfrom .adx import adx\nfrom .adxr import adxr\nfrom .alligator import alligator\nfrom .alma import alma\nfrom .ao import ao\nfrom .apo import apo\nfrom .aroon import aroon\nfrom .aroonosc import aroonosc\nfrom .atr import atr\nfrom .avgprice import avgprice\nfrom .bandpass import bandpass\nfrom .beta import beta\nfrom .bollinger_bands import bollinger_bands\nfrom .bollinger_bands_width import bollinger_bands_width\nfrom .bop import bop\nfrom .cc import cc\nfrom .cci import cci\nfrom .cfo import cfo\nfrom .cg import cg\nfrom .chande import chande\nfrom .chop import chop\nfrom .cksp import cksp\nfrom .cmo import cmo\nfrom .correl import correl\nfrom .correlation_cycle import correlation_cycle\nfrom .cvi import cvi\nfrom .cwma import cwma\nfrom .damiani_volatmeter import damiani_volatmeter\nfrom .dec_osc import dec_osc\nfrom .decycler import decycler\nfrom .dema import dema\nfrom .devstop import devstop\nfrom .di import di\nfrom .dm import dm\nfrom .donchian import donchian\nfrom .dpo import dpo\nfrom .dti import dti\nfrom .dx import dx\nfrom .edcf import edcf\nfrom .efi import efi\nfrom .ema import ema\nfrom .emd import emd\nfrom .emv import emv\nfrom .epma import epma\nfrom .er import er\nfrom .eri import eri\nfrom .fisher import fisher\nfrom .fosc import fosc\nfrom .frama import frama\nfrom .fwma import fwma\nfrom .gatorosc import gatorosc\nfrom .gauss import gauss\nfrom .heikin_ashi_candles import heikin_ashi_candles\nfrom .high_pass import high_pass\nfrom .high_pass_2_pole import high_pass_2_pole\nfrom .hma import hma\nfrom .hurst_exponent import hurst_exponent\nfrom .hwma import hwma\nfrom .ichimoku_cloud import ichimoku_cloud\nfrom .ichimoku_cloud_seq import ichimoku_cloud_seq\nfrom .ift_rsi import ift_rsi\nfrom .itrend import itrend\nfrom .jma import jma\nfrom .jsa import jsa\nfrom .kama import kama\nfrom .kaufmanstop import kaufmanstop\nfrom .kdj import kdj\nfrom .keltner import keltner\nfrom .kst import kst\nfrom .kurtosis import kurtosis\nfrom .kvo import kvo\nfrom .linearreg import linearreg\nfrom .linearreg_angle import linearreg_angle\nfrom .linearreg_intercept import linearreg_intercept\nfrom .linearreg_slope import linearreg_slope\nfrom .lrsi import lrsi\nfrom .ma import ma\nfrom .maaq import maaq\nfrom .mab import mab\nfrom .macd import macd\nfrom .mama import mama\nfrom .marketfi import marketfi\nfrom .mass import mass\nfrom .mcginley_dynamic import mcginley_dynamic\nfrom .mean_ad import mean_ad\nfrom .median_ad import median_ad\nfrom .medprice import medprice\nfrom .mfi import mfi\nfrom .midpoint import midpoint\nfrom .midprice import midprice\nfrom .minmax import minmax\nfrom .mom import mom\nfrom .mwdx import mwdx\nfrom .natr import natr\nfrom .nma import nma\nfrom .nvi import nvi\nfrom .obv import obv\nfrom .pfe import pfe\nfrom .pivot import pivot\nfrom .pma import pma\nfrom .ppo import ppo\nfrom .pvi import pvi\nfrom .pwma import pwma\nfrom .qstick import qstick\nfrom .reflex import reflex\nfrom .rma import rma\nfrom .roc import roc\nfrom .rocp import rocp\nfrom .rocr import rocr\nfrom .rocr100 import rocr100\nfrom .roofing import roofing\nfrom .rsi import rsi\nfrom .rsmk import rsmk\nfrom .rsx import rsx\nfrom .rvi import rvi\nfrom .safezonestop import safezonestop\nfrom .sar import sar\nfrom .sinwma import sinwma\nfrom .skew import skew\nfrom .sma import sma\nfrom .smma import smma\nfrom .sqwma import sqwma\nfrom .srsi import srsi\nfrom .srwma import srwma\nfrom .stc import stc\nfrom .stddev import stddev\nfrom .stochastic import stoch\nfrom .stochf import stochf\nfrom .supersmoother import supersmoother\nfrom .supersmoother_3_pole import supersmoother_3_pole\nfrom .supertrend import supertrend\nfrom .swma import swma\nfrom .t3 import t3\nfrom .tema import tema\nfrom .trange import trange\nfrom .trendflex import trendflex\nfrom .trima import trima\nfrom .trix import trix\nfrom .tsf import tsf\nfrom .tsi import tsi\nfrom .ttm_trend import ttm_trend\nfrom .typprice import typprice\nfrom .ui import ui\nfrom .ultosc import ultosc\nfrom .var import var\nfrom .vi import vi\nfrom .vidya import vidya\nfrom .vlma import vlma\nfrom .vosc import vosc\nfrom .voss import voss\nfrom .vpci import vpci\nfrom .vpt import vpt\nfrom .vpwma import vpwma\nfrom .vwap import vwap\nfrom .vwma import vwma\nfrom .vwmacd import vwmacd\nfrom .wad import wad\nfrom .wclprice import wclprice\nfrom .wilders import wilders\nfrom .willr import willr\nfrom .wma import wma\nfrom .wt import wt\nfrom .zlema import zlema\nfrom .zscore import zscore\nfrom .waddah_attr_explosion import waddah_attar_explosion\nfrom .stiffness import stiffness\nfrom .ttm_squeeze import ttm_squeeze\nfrom .support_resistance_with_break import support_resistance_with_breaks\nfrom .squeeze_momentum import squeeze_momentum\nfrom .hull_suit import hull_suit\nfrom .volume import volume\n"
  },
  {
    "path": "jesse/indicators/acosc.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\n\nfrom jesse.helpers import slice_candles\n\nAC = namedtuple('AC', ['osc', 'change'])\n\ndef sma(arr: np.ndarray, period: int) -> np.ndarray:\n    if len(arr) < period:\n        return np.full_like(arr, np.nan, dtype=float)\n    conv = np.convolve(arr, np.ones(period, dtype=float)/period, mode='valid')\n    return np.concatenate((np.full(period-1, np.nan), conv))\n\ndef mom(arr: np.ndarray, period: int = 1) -> np.ndarray:\n    return np.concatenate(([np.nan], np.diff(arr)))\n\ndef acosc(candles: np.ndarray, sequential: bool = False) -> AC:\n    \"\"\"\n    Acceleration / Deceleration Oscillator (AC)\n\n    :param candles: np.ndarray\n    :param sequential: bool - default: False\n\n    :return: AC(osc, change)\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    med = (candles[:, 3] + candles[:, 4]) / 2\n    sma5_med = sma(med, 5)\n    sma34_med = sma(med, 34)\n    ao = sma5_med - sma34_med\n    sma5_ao = sma(ao, 5)\n    res = ao - sma5_ao\n    mom_value = mom(res, 1)\n\n    if sequential:\n        return AC(res, mom_value)\n    else:\n        return AC(res[-1], mom_value[-1])\n"
  },
  {
    "path": "jesse/indicators/ad.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import slice_candles\n\n\ndef ad(candles: np.ndarray, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    AD - Chaikin A/D Line\n\n    :param candles: np.ndarray\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    high = candles[:, 3].astype(np.float64)\n    low = candles[:, 4].astype(np.float64)\n    close = candles[:, 2].astype(np.float64)\n    volume = candles[:, 5].astype(np.float64)\n\n    # Calculate Money Flow Multiplier. Safeguard division by zero in case high equals low.\n    mfm = np.where(high != low, ((close - low) - (high - close)) / (high - low), 0.0)\n\n    # Calculate Money Flow Volume\n    mfv = mfm * volume\n\n    # Compute the Accumulation/Distribution line as the cumulative sum of Money Flow Volume\n    ad_line = np.cumsum(mfv)\n\n    return ad_line if sequential else ad_line[-1]\n"
  },
  {
    "path": "jesse/indicators/adosc.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom jesse.helpers import slice_candles\nfrom jesse_rust import adosc as adosc_rust\n\n\ndef adosc(candles: np.ndarray, fast_period: int = 3, slow_period: int = 10, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    ADOSC - Chaikin A/D Oscillator (Rust accelerated version)\n\n    :param candles: np.ndarray of candles\n    :param fast_period: int - default: 3\n    :param slow_period: int - default: 10\n    :param sequential: bool - default: False\n    :return: float or np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    \n    # Convert to float64 for Rust compatibility\n    candles_f64 = np.asarray(candles, dtype=np.float64)\n    \n    # Call the Rust implementation\n    result = adosc_rust(candles_f64, fast_period, slow_period)\n\n    return result if sequential else result[-1]\n"
  },
  {
    "path": "jesse/indicators/adx.py",
    "content": "from typing import Union\nimport numpy as np\nfrom jesse.helpers import slice_candles\nfrom jesse_rust import adx as adx_rust\n\n\ndef adx(candles: np.ndarray, period: int = 14, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    ADX - Average Directional Movement Index\n\n    :param candles: np.ndarray, expected 2D array with OHLCV data where index 3 is high, index 4 is low, and index 2 is close\n    :param period: int - default: 14\n    :param sequential: bool - if True, return full series, else return last value\n    :return: float | np.ndarray\n    \"\"\"\n    if len(candles.shape) < 2:\n        raise ValueError(\"adx indicator requires a 2D array of candles\")\n        \n    candles = slice_candles(candles, sequential)\n\n    # Ensure there's enough data\n    if len(candles) <= 2 * period:\n        return np.nan if not sequential else np.full(len(candles), np.nan)\n\n    result = adx_rust(candles, period)\n\n    return result if sequential else result[-1]\n"
  },
  {
    "path": "jesse/indicators/adxr.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom jesse.helpers import slice_candles\nfrom numba import njit\n\n\n@njit(cache=True)\ndef _adxr(high, low, close, period):\n    n = len(high)\n    TR = np.zeros(n)\n    DMP = np.zeros(n)\n    DMM = np.zeros(n)\n    \n    # First value\n    TR[0] = high[0] - low[0]\n    \n    # Calculate TR, DMP, DMM\n    for i in range(1, n):\n        hl = high[i] - low[i]\n        hc = abs(high[i] - close[i-1])\n        lc = abs(low[i] - close[i-1])\n        TR[i] = max(hl, hc, lc)\n        \n        up_move = high[i] - high[i-1]\n        down_move = low[i-1] - low[i]\n        \n        if up_move > down_move and up_move > 0:\n            DMP[i] = up_move\n        else:\n            DMP[i] = 0\n            \n        if down_move > up_move and down_move > 0:\n            DMM[i] = down_move\n        else:\n            DMM[i] = 0\n    \n    # Smoothed TR, DMP, DMM\n    STR = np.zeros(n)\n    S_DMP = np.zeros(n)\n    S_DMM = np.zeros(n)\n    \n    # Initialize first value\n    STR[0] = TR[0]\n    S_DMP[0] = DMP[0]\n    S_DMM[0] = DMM[0]\n    \n    # Calculate smoothed values\n    for i in range(1, n):\n        STR[i] = STR[i-1] - (STR[i-1] / period) + TR[i]\n        S_DMP[i] = S_DMP[i-1] - (S_DMP[i-1] / period) + DMP[i]\n        S_DMM[i] = S_DMM[i-1] - (S_DMM[i-1] / period) + DMM[i]\n    \n    # Calculate DI+ and DI-\n    DI_plus = np.zeros(n)\n    DI_minus = np.zeros(n)\n    for i in range(n):\n        if STR[i] != 0:\n            DI_plus[i] = (S_DMP[i] / STR[i]) * 100\n            DI_minus[i] = (S_DMM[i] / STR[i]) * 100\n    \n    # Calculate DX\n    DX = np.zeros(n)\n    for i in range(n):\n        denom = DI_plus[i] + DI_minus[i]\n        if denom != 0:\n            DX[i] = (abs(DI_plus[i] - DI_minus[i]) / denom) * 100\n    \n    # Calculate ADX\n    ADX = np.full(n, np.nan)\n    if n >= period:\n        for i in range(period-1, n):\n            sum_dx = 0\n            for j in range(period):\n                sum_dx += DX[i-j]\n            ADX[i] = sum_dx / period\n    \n    # Calculate ADXR\n    ADXR = np.full(n, np.nan)\n    if n > period:\n        for i in range(period, n):\n            ADXR[i] = (ADX[i] + ADX[i-period]) / 2\n            \n    return ADXR\n\ndef adxr(candles: np.ndarray, period: int = 14, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    @author KivancOzbilgic\n    credits: https://www.tradingview.com/v/9f5zDi3r/\n    \n    ADXR - Average Directional Movement Index Rating\n\n    :param candles: np.ndarray with at least 5 columns where index 3 is high, index 4 is low and index 2 is close\n    :param period: int - period for smoothing and moving average (default: 14)\n    :param sequential: bool - returns full series if True, else only the last computed value\n    :return: ADXR as float or np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    \n    high = candles[:, 3]\n    low = candles[:, 4]\n    close = candles[:, 2]\n    \n    ADXR = _adxr(high, low, close, period)\n    \n    return ADXR if sequential else ADXR[-1]\n"
  },
  {
    "path": "jesse/indicators/alligator.py",
    "content": "from collections import namedtuple\nimport numpy as np\nfrom jesse.helpers import get_candle_source, slice_candles\nfrom jesse_rust import smma, shift, alligator as alligator_rust\n\nAG = namedtuple('AG', ['jaw', 'teeth', 'lips'])\n\ndef alligator(candles: np.ndarray, source_type: str = \"hl2\", sequential: bool = False) -> AG:\n    \"\"\"\n    Alligator indicator by Bill Williams\n    \n    :param candles: np.ndarray\n    :param source_type: str - default: \"hl2\"\n    :param sequential: bool - default: False\n\n    :return: AG(jaw, teeth, lips)\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    source = get_candle_source(candles, source_type=source_type)\n    \n    # Use Rust implementation for calculating the alligator\n    jaw, teeth, lips = alligator_rust(source)\n    \n    if sequential:\n        return AG(jaw, teeth, lips)\n    else:\n        return AG(jaw[-1], teeth[-1], lips[-1])\n"
  },
  {
    "path": "jesse/indicators/alma.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef alma(candles: np.ndarray, period: int = 9, sigma: float = 6.0, distribution_offset: float = 0.85,\n         source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    ALMA - Arnaud Legoux Moving Average\n\n    :param candles: np.ndarray\n    :param period: int - default: 9\n    :param sigma: float - default: 6.0\n    :param distribution_offset: float - default: 0.85\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    asize = period - 1\n    m = distribution_offset * asize\n    s = period / sigma\n    dss = 2 * s * s\n\n    wtds = np.exp(-(np.arange(period) - m) ** 2 / dss)\n    pnp_array3D = strided_axis0(source, len(wtds))\n    res = np.zeros(source.shape)\n    res[period - 1:] = np.tensordot(pnp_array3D, wtds, axes=(1, 0))[:]\n    res /= wtds.sum()\n    res[res == 0] = np.nan\n\n\n    return res if sequential else res[-1]\n\n\ndef strided_axis0(a, L):\n    # Store the shape and strides info\n    shp = a.shape\n    s = a.strides\n    # Compute length of output array along the first axis\n    nd0 = shp[0] - L + 1\n    # Setup shape and strides for use with np.lib.stride_tricks.as_strided\n    # and get (n+1) dim output array\n    shp_in = (nd0, L) + shp[1:]\n    strd_in = (s[0],) + s\n    return np.lib.stride_tricks.as_strided(a, shape=shp_in, strides=strd_in)\n"
  },
  {
    "path": "jesse/indicators/ao.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\n\nfrom jesse.helpers import slice_candles\nfrom .sma import sma\n\nAO = namedtuple('AO', ['osc', 'change'])\n\ndef momentum(arr):\n    ret = np.full(arr.shape, np.nan)\n    if len(arr) > 1:\n        ret[1:] = arr[1:] - arr[:-1]\n    return ret\n\ndef ao(candles: np.ndarray, sequential: bool = False) -> AO:\n    \"\"\"\n    Awesome Oscillator\n\n    :param candles: np.ndarray\n    :param sequential: bool - default: False\n\n    :return: AO(osc, change)\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    # Calculate hl2 as (high+low)/2\n    hl2 = (candles[:, 3] + candles[:, 4]) / 2\n    # Calculate simple moving averages on hl2 for periods 5 and 34\n    sma5 = sma(hl2, 5, sequential=True)\n    sma34 = sma(hl2, 34, sequential=True)\n    ao = sma5 - sma34\n\n    # Calculate momentum as the difference between consecutive values\n    mom = momentum(ao)\n\n    if sequential:\n        return AO(ao, mom)\n    else:\n        return AO(ao[-1], mom[-1])\n"
  },
  {
    "path": "jesse/indicators/apo.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\nfrom jesse.indicators.ma import ma\n\n\ndef apo(candles: np.ndarray, fast_period: int = 12, slow_period: int = 26, matype: int = 0, source_type: str = \"close\",\n        sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    APO - Absolute Price Oscillator\n\n    :param candles: np.ndarray\n    :param fast_period: int - default: 12\n    :param slow_period: int - default: 26\n    :param matype: int - default: 0\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n\n    if matype == 24 or matype == 29:\n        res = ma(candles, period=fast_period, matype=matype, source_type=source_type, sequential=True) - ma(candles, period=slow_period, matype=matype, source_type=source_type, sequential=True)\n    else:\n        res = ma(source, period=fast_period, matype=matype, sequential=True) - ma(source, period=slow_period, matype=matype, sequential=True)\n\n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/aroon.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\n\nfrom jesse.helpers import slice_candles\n\nAROON = namedtuple('AROON', ['down', 'up'])\n\n\ndef aroon(candles: np.ndarray, period: int = 14, sequential: bool = False) -> AROON:\n    \"\"\"\n    AROON indicator\n\n    :param candles: np.ndarray, expected to have at least 5 columns, with high at index 3 and low at index 4.\n    :param period: int - period for the indicator (default: 14)\n    :param sequential: bool - whether to return the whole series (default: False)\n    :return: AROON(down, up) where each value is computed as above.\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    highs = candles[:, 3]\n    lows = candles[:, 4]\n\n    if sequential:\n        aroon_up = np.full(highs.shape, np.nan, dtype=float)\n        aroon_down = np.full(lows.shape, np.nan, dtype=float)\n        if len(highs) >= period + 1:\n            # Create sliding window view of period+1 elements for highs and lows\n            windows_high = np.lib.stride_tricks.sliding_window_view(highs, window_shape=period+1)\n            windows_low = np.lib.stride_tricks.sliding_window_view(lows, window_shape=period+1)\n            aroon_up[period:] = 100 * (np.argmax(windows_high, axis=1) / period)\n            aroon_down[period:] = 100 * (np.argmin(windows_low, axis=1) / period)\n        return AROON(down=aroon_down, up=aroon_up)\n    else:\n        if len(highs) < period + 1:\n            up_val = float('nan')\n            down_val = float('nan')\n        else:\n            window_high = highs[-(period + 1):]\n            window_low = lows[-(period + 1):]\n            up_val = 100 * (np.argmax(window_high) / period)\n            down_val = 100 * (np.argmin(window_low) / period)\n        return AROON(down=down_val, up=up_val)\n"
  },
  {
    "path": "jesse/indicators/aroonosc.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import slice_candles\n\n@njit(cache=True)\ndef _compute_aroonosc_nb(high: np.ndarray, low: np.ndarray, period: int) -> np.ndarray:\n    n = high.shape[0]\n    result = np.empty(n, dtype=np.float64)\n    if n < period:\n        for i in range(n):\n            result[i] = np.nan\n        return result\n    \n    for i in range(period - 1):\n        result[i] = np.nan\n    \n    for i in range(period - 1, n):\n        start = i - period + 1\n        best_val = high[start]\n        best_idx = 0\n        worst_val = low[start]\n        worst_idx = 0\n        for j in range(period):\n            cur_high = high[start + j]\n            cur_low = low[start + j]\n            if cur_high > best_val:\n                best_val = cur_high\n                best_idx = j\n            if cur_low < worst_val:\n                worst_val = cur_low\n                worst_idx = j\n        result[i] = 100.0 * (best_idx - worst_idx) / period\n    return result\n\n\ndef aroonosc(candles: np.ndarray, period: int = 14, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    AROONOSC - Aroon Oscillator\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    high = candles[:, 3]\n    low = candles[:, 4]\n    result = _compute_aroonosc_nb(high, low, period)\n    return result if sequential else result[-1]\n"
  },
  {
    "path": "jesse/indicators/atr.py",
    "content": "from typing import Union\nimport numpy as np\nfrom jesse.helpers import slice_candles\nfrom jesse_rust import atr as rust_atr\n\n\ndef atr(candles: np.ndarray, period: int = 14, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    ATR - Average True Range using optimized Rust implementation\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    result = rust_atr(candles, period)\n    \n    return result if sequential else result[-1]\n"
  },
  {
    "path": "jesse/indicators/avgprice.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import slice_candles\n\n\ndef avgprice(candles: np.ndarray, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    AVGPRICE - Average Price\n\n    :param candles: np.ndarray\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    res = (candles[:, 1] + candles[:, 3] + candles[:, 4] + candles[:, 2]) / 4\n\n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/bandpass.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\nfrom .high_pass import high_pass_fast\n\nBandPass = namedtuple('BandPass', ['bp', 'bp_normalized', 'signal', 'trigger'])\n\n\ndef bandpass(candles: np.ndarray, period: int = 20, bandwidth: float = 0.3,  source_type: str = \"close\",  sequential: bool = False) -> BandPass:\n    \"\"\"\n    BandPass Filter\n\n    :param candles: np.ndarray\n    :param period: int - default: 20\n    :param bandwidth: float - default: 0.3\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: BandPass(bp, bp_normalized, signal, trigger)\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n\n    hp = high_pass_fast(source, 4 * period / bandwidth)\n\n    beta = np.cos(2 * np.pi / period)\n    gamma = np.cos(2 * np.pi * bandwidth / period)\n    alpha = 1 / gamma - np.sqrt(1 / gamma ** 2 - 1)\n\n    bp, peak = bp_fast(source, hp, alpha, beta)\n\n    bp_normalized = bp / peak\n\n    trigger = high_pass_fast(bp_normalized, period / bandwidth / 1.5)\n    signal = (bp_normalized < trigger) * 1 - (trigger < bp_normalized) * 1\n\n    if sequential:\n        return BandPass(bp, bp_normalized, signal, trigger)\n    else:\n        return BandPass(bp[-1], bp_normalized[-1], signal[-1], trigger[-1])\n\n\n@njit(cache=True)\ndef bp_fast(source, hp, alpha, beta):  # Function is compiled to machine code when called the first time\n\n    bp = np.copy(hp)\n    for i in range(2, source.shape[0]):\n      bp[i] = 0.5 * (1 - alpha) * hp[i] - (1 - alpha) * 0.5 * hp[i - 2]  + beta * (1 + alpha) * bp[i - 1] - alpha * bp[i - 2]\n\n    # fast attack-slow decay AGC\n    K = 0.991\n    peak = np.copy(bp)\n    for i in range(source.shape[0]):\n      if i > 0:\n        peak[i] = peak[i - 1] * K\n      if np.abs(bp[i]) > peak[i]:\n        peak[i] = np.abs(bp[i])\n\n    return bp, peak\n"
  },
  {
    "path": "jesse/indicators/beta.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numpy.lib.stride_tricks import sliding_window_view\n\nfrom jesse.helpers import slice_candles\n\n\ndef beta(candles: np.ndarray, benchmark_candles: np.ndarray, period: int = 5, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    BETA - compares the given candles close price to its benchmark (should be in the same time frame)\n\n    :param candles: np.ndarray\n    :param benchmark_candles: np.ndarray\n    :param period: int - default: 5\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    benchmark_candles = slice_candles(benchmark_candles, sequential)\n\n    x = candles[:, 2]\n    y = benchmark_candles[:, 2]\n\n    if len(x) < period:\n        out = np.full_like(x, fill_value=np.nan, dtype=float)\n        return out if sequential else np.nan\n\n    windows_x = sliding_window_view(x, window_shape=period)\n    windows_y = sliding_window_view(y, window_shape=period)\n\n    mean_x = windows_x.mean(axis=1)\n    mean_y = windows_y.mean(axis=1)\n\n    diff_x = windows_x - mean_x[:, None]\n    diff_y = windows_y - mean_y[:, None]\n\n    numerator = (diff_x * diff_y).sum(axis=1)\n    denominator = (diff_y ** 2).sum(axis=1)\n\n    with np.errstate(divide='ignore', invalid='ignore'):\n         beta_vals = numerator / denominator\n\n    out = np.full_like(x, fill_value=np.nan, dtype=float)\n    out[period - 1:] = beta_vals\n\n    return out if sequential else out[-1]\n"
  },
  {
    "path": "jesse/indicators/bollinger_bands.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\nfrom jesse.indicators.ma import ma\nfrom jesse.indicators.mean_ad import mean_ad\nfrom jesse.indicators.median_ad import median_ad\n\n# Try to import the high-performance Rust implementation\ntry:\n    from jesse_rust import bollinger_bands as bb_rust  # type: ignore\n    from jesse_rust import moving_std\nexcept ImportError:  # pragma: no cover\n    bb_rust = None  # type: ignore\n    from jesse_rust import moving_std\n\n\nBollingerBands = namedtuple('BollingerBands', ['upperband', 'middleband', 'lowerband'])\n\n\ndef _bollinger_bands_fallback(source: np.ndarray, period: int, devup: float, devdn: float, matype: int, devtype: int) -> tuple[np.ndarray, np.ndarray, np.ndarray]:\n    \"\"\"Fallback implementation for non-SMA cases or when Rust is unavailable.\"\"\"\n    if devtype == 0:\n        dev = moving_std(source, period)\n    elif devtype == 1:\n        dev = mean_ad(source, period, sequential=True)\n    elif devtype == 2:\n        dev = median_ad(source, period, sequential=True)\n    else:\n        raise ValueError(\"devtype not in (0, 1, 2)\")\n\n    middlebands = ma(source, period=period, matype=matype, sequential=True)\n    upperbands = middlebands + devup * dev\n    lowerbands = middlebands - devdn * dev\n    \n    return upperbands, middlebands, lowerbands\n\n\ndef bollinger_bands(\n        candles: np.ndarray,\n        period: int = 20,\n        devup: float = 2,\n        devdn: float = 2,\n        matype: int = 0,\n        devtype: int = 0,\n        source_type: str = \"close\",\n        sequential: bool = False\n) -> BollingerBands:\n    \"\"\"\n    BBANDS - Bollinger Bands\n\n    :param candles: np.ndarray\n    :param period: int - default: 20\n    :param devup: float - default: 2\n    :param devdn: float - default: 2\n    :param matype: int - default: 0\n    :param devtype: int - default: 0\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: BollingerBands(upperband, middleband, lowerband)\n    \"\"\"\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    # Use optimized Rust implementation for standard case (SMA + standard deviation)\n    if bb_rust is not None and matype == 0 and devtype == 0:\n        upperbands, middlebands, lowerbands = bb_rust(source.astype(np.float64), period, devup, devdn)\n    else:\n        # Handle special cases or fallback\n        if matype == 24 or matype == 29:\n            # VWMA or VWAP need the full candles array\n            upperbands, middlebands, lowerbands = _bollinger_bands_fallback(candles, period, devup, devdn, matype, devtype)\n        else:\n            upperbands, middlebands, lowerbands = _bollinger_bands_fallback(source, period, devup, devdn, matype, devtype)\n\n    if sequential:\n        return BollingerBands(upperbands, middlebands, lowerbands)\n    else:\n        return BollingerBands(upperbands[-1], middlebands[-1], lowerbands[-1])\n"
  },
  {
    "path": "jesse/indicators/bollinger_bands_width.py",
    "content": "from typing import Union\nimport numpy as np\nfrom jesse.helpers import get_candle_source, slice_candles\nfrom jesse_rust import bollinger_bands_width as bollinger_bands_width_rust\n\n\ndef bollinger_bands_width(candles: np.ndarray, period: int = 20, mult: float = 2.0, source_type: str = \"close\", sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    BBW - Bollinger Bands Width\n\n    :param candles: np.ndarray\n    :param period: int - default: 20\n    :param mult: float - default: 2\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n    \n    result = bollinger_bands_width_rust(source, period, float(mult))\n    \n    return result if sequential else result[-1]\n"
  },
  {
    "path": "jesse/indicators/bop.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import slice_candles\n\n\ndef bop(candles: np.ndarray, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    BOP - Balance Of Power\n\n    :param candles: np.ndarray\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    open_prices = candles[:, 1]\n    high_prices = candles[:, 3]\n    low_prices = candles[:, 4]\n    close_prices = candles[:, 2]\n    denominator = high_prices - low_prices\n    bop_values = np.where(denominator != 0, (close_prices - open_prices) / denominator, 0)\n\n    return bop_values if sequential else bop_values[-1]\n"
  },
  {
    "path": "jesse/indicators/cc.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\nfrom .roc import roc\nfrom .wma import wma\n\n\ndef cc(candles: np.ndarray, wma_period: int = 10, roc_short_period: int = 11, roc_long_period: int = 14,\n       source_type: str = \"close\",\n       sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    CC - Coppock Curve\n\n    :param candles: np.ndarray\n    :param wma_period: int - default: 10\n    :param roc_short_period: int - default: 11\n    :param roc_long_period: int - default: 14\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n    roc_long = roc(source, roc_long_period, sequential=True)\n    roc_short = roc(source, roc_short_period, sequential=True)\n    roc_sum = roc_long + roc_short\n    res = wma(roc_sum, wma_period, sequential=True)\n\n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/cci.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import slice_candles\n\n@njit(cache=True)\ndef calculate_cci_loop(tp, period):\n    n = tp.shape[0]\n    result = np.empty(n)\n    # initialize result with NaNs\n    for i in range(n):\n        result[i] = np.nan\n    if n < period:\n        return result\n    for i in range(period - 1, n):\n        sum_tp = 0.0\n        for j in range(i - period + 1, i + 1):\n            sum_tp += tp[j]\n        sma = sum_tp / period\n        sum_diff = 0.0\n        for j in range(i - period + 1, i + 1):\n            # Calculate absolute deviation\n            if tp[j] >= sma:\n                sum_diff += tp[j] - sma\n            else:\n                sum_diff += sma - tp[j]\n        md = sum_diff / period\n        if md == 0.0:\n            result[i] = 0.0\n        else:\n            result[i] = (tp[i] - sma) / (0.015 * md)\n    return result\n\n\ndef cci(candles: np.ndarray, period: int = 14, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    CCI - Commodity Channel Index\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    high = candles[:, 3]\n    low = candles[:, 4]\n    close = candles[:, 2]\n    tp = (high + low + close) / 3.0\n\n    result = calculate_cci_loop(tp, period)\n    return result if sequential else result[-1]\n"
  },
  {
    "path": "jesse/indicators/cfo.py",
    "content": "from typing import Union\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n@njit(cache=True)\ndef _compute_cfo(source: np.ndarray, period: int, scalar: float) -> np.ndarray:\n    n = source.shape[0]\n    res = np.empty(n, dtype=np.float64)\n    # fill initial values with nan for indices where a full period is not available\n    for i in range(period - 1):\n        res[i] = np.nan\n\n    # Precompute constants for x = 0, 1, ..., period-1\n    Sx = 0.0\n    Sxx = 0.0\n    for j in range(period):\n        Sx += j\n        Sxx += j * j\n    denom = period * Sxx - Sx * Sx\n\n    # For each valid window, compute the linear regression and forecast value\n    for i in range(period - 1, n):\n        sum_y = 0.0\n        sum_xy = 0.0\n        for j in range(period):\n            y_val = source[i - period + 1 + j]\n            sum_y += y_val\n            sum_xy += y_val * j\n        slope = (period * sum_xy - Sx * sum_y) / denom\n        intercept = (sum_y - slope * Sx) / period\n        reg_val = intercept + slope * (period - 1)\n        # Avoid division by zero\n        if source[i] != 0.0:\n            res[i] = scalar * (source[i] - reg_val) / source[i]\n        else:\n            res[i] = np.nan\n    return res\n\n\ndef cfo(candles: np.ndarray, period: int = 14, scalar: float = 100, source_type: str = \"close\", sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    CFO - Chande Forcast Oscillator\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param scalar: float - default: 100\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    source = get_candle_source(candles, source_type=source_type)\n\n    res = _compute_cfo(source, period, scalar)\n    \n    if sequential:\n        return res\n    else:\n        return None if np.isnan(res[-1]) else res[-1]\n"
  },
  {
    "path": "jesse/indicators/cg.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, same_length, slice_candles\n\n\ndef cg(candles: np.ndarray, period: int = 10, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    Center of Gravity (CG)\n\n    :param candles: np.ndarray\n    :param period: int - default: 10\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n    res = go_fast(source, period)\n\n    return same_length(candles, res) if sequential else res[-1]\n\n\n@njit(cache=True)\ndef go_fast(source, period):  # Function is compiled to machine code when called the first time\n    res = np.full_like(source, fill_value=np.nan)\n    for i in range(source.size):\n        if i > period:\n            num = 0\n            denom = 0\n            for count in range(period - 1):\n                close = source[i - count]\n                if not np.isnan(close):\n                    num += (1 + count) * close\n                    denom += close\n            result = -num / denom if denom != 0 else 0\n            res[i] = result\n    return res\n"
  },
  {
    "path": "jesse/indicators/chande.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom jesse_rust import chande as rust_chande\nfrom jesse.helpers import slice_candles\n\n\ndef chande(candles: np.ndarray, period: int = 22, mult: float = 3.0, direction: str = \"long\",\n           sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    Chandelier Exits\n\n    :param candles: np.ndarray\n    :param period: int - default: 22\n    :param mult: float - default: 3.0\n    :param direction: str - default: \"long\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    \n    if direction not in ['long', 'short']:\n        raise ValueError('The direction parameter must be \\'short\\' or \\'long\\'')\n    \n    result = rust_chande(candles, period, mult, direction)\n    \n    return result if sequential else result[-1]\n"
  },
  {
    "path": "jesse/indicators/chop.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import slice_candles\nfrom jesse_rust import chop as chop_rust\n\n\ndef chop(candles: np.ndarray, period: int = 14, scalar: float = 100, drift: int = 1, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    Choppiness Index (CHOP)\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param scalar: float - default: 100\n    :param drift: int - default: 1\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    # Preprocess candles using original slicing\n    candles = slice_candles(candles, sequential)\n    \n    # Use Rust implementation\n    res = chop_rust(candles, period, scalar, drift)\n    return res if sequential else res[-1]\n\n\n"
  },
  {
    "path": "jesse/indicators/cksp.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\n\nfrom jesse.helpers import slice_candles\n\nCKSP = namedtuple('CKSP', ['long', 'short'])\n\ndef atr(high: np.ndarray, low: np.ndarray, close: np.ndarray, timeperiod: int = 10) -> np.ndarray:\n    tr = np.empty_like(close)\n    tr[0] = high[0] - low[0]\n    tr[1:] = np.maximum.reduce([\n        high[1:] - low[1:],\n        np.abs(high[1:] - close[:-1]),\n        np.abs(low[1:] - close[:-1])\n    ])\n    atr_vals = np.empty_like(close)\n    if len(close) < timeperiod:\n        return np.full_like(close, np.nan)\n    atr_vals[:timeperiod-1] = np.nan\n    atr_vals[timeperiod-1] = np.mean(tr[:timeperiod])\n    for t in range(timeperiod, len(close)):\n        atr_vals[t] = (atr_vals[t-1]*(timeperiod-1) + tr[t]) / timeperiod\n    return atr_vals\n\ndef rolling_max(arr: np.ndarray, window: int) -> np.ndarray:\n    n = len(arr)\n    if n == 0:\n        return arr\n    result = np.empty(n)\n    if window > 1:\n        result[:window-1] = np.maximum.accumulate(arr[:window-1])\n        if n >= window:\n            shape = (n - window + 1, window)\n            strides = (arr.strides[0], arr.strides[0])\n            windows = np.lib.stride_tricks.as_strided(arr, shape=shape, strides=strides)\n            result[window-1:] = np.max(windows, axis=1)\n    else:\n        result = arr.copy()\n    return result\n\ndef rolling_min(arr: np.ndarray, window: int) -> np.ndarray:\n    n = len(arr)\n    if n == 0:\n        return arr\n    result = np.empty(n)\n    if window > 1:\n        result[:window-1] = np.minimum.accumulate(arr[:window-1])\n        if n >= window:\n            shape = (n - window + 1, window)\n            strides = (arr.strides[0], arr.strides[0])\n            windows = np.lib.stride_tricks.as_strided(arr, shape=shape, strides=strides)\n            result[window-1:] = np.min(windows, axis=1)\n    else:\n        result = arr.copy()\n    return result\n\ndef cksp(candles: np.ndarray, p: int = 10, x: float = 1.0,  q: int = 9, sequential: bool = False) -> CKSP:\n    \"\"\"\n    Chande Kroll Stop (CKSP)\n\n    :param candles: np.ndarray\n    :param p: int - default: 10 (ATR period)\n    :param x: float - default: 1.0 (ATR multiplier)\n    :param q: int - default: 9 (rolling window period)\n    :param sequential: bool - default: False\n\n    :return: CKSP namedtuple containing long and short values\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    candles_close = candles[:, 2]\n    candles_high = candles[:, 3]\n    candles_low = candles[:, 4]\n\n    atr_vals = atr(candles_high, candles_low, candles_close, timeperiod=p)\n\n    LS0 = rolling_max(candles_high, window=q) - x * atr_vals\n    LS = rolling_max(LS0, window=q)\n\n    SS0 = rolling_min(candles_low, window=q) + x * atr_vals\n    SS = rolling_min(SS0, window=q)\n\n    if sequential:\n        return CKSP(LS, SS)\n    else:\n        return CKSP(LS[-1], SS[-1])\n\n"
  },
  {
    "path": "jesse/indicators/cmo.py",
    "content": "from typing import Union\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n@njit(cache=True)\ndef _cmo_numba(source: np.ndarray, period: int) -> np.ndarray:\n    n = source.shape[0]\n    result = np.empty(n, dtype=np.float64)\n    # Initialize result with NaN values\n    for i in range(n):\n        result[i] = np.nan\n    \n    if n <= 1:\n        return result\n    \n    # Compute the differences manually\n    diff = np.empty(n - 1, dtype=np.float64)\n    for i in range(n - 1):\n        diff[i] = source[i + 1] - source[i]\n    \n    # Only compute CMO if we have enough diff values\n    if diff.shape[0] >= period:\n        for i in range(period, n):\n            pos_sum = 0.0\n            neg_sum = 0.0\n            # Calculate sums over the window diff[i-period:i]\n            for j in range(i - period, i):\n                d = diff[j]\n                if d > 0:\n                    pos_sum += d\n                elif d < 0:\n                    neg_sum += -d\n            denom = pos_sum + neg_sum\n            if denom == 0.0:\n                result[i] = 0.0\n            else:\n                result[i] = 100.0 * (pos_sum - neg_sum) / denom\n    return result\n\n\ndef cmo(candles: np.ndarray, period: int = 14, source_type: str = \"close\", sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    CMO - Chande Momentum Oscillator\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    source = get_candle_source(candles, source_type=source_type)\n    result = _cmo_numba(source, period)\n    return result if sequential else result[-1]\n"
  },
  {
    "path": "jesse/indicators/correl.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import slice_candles\n\n\ndef correl(candles: np.ndarray, period: int = 5, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    CORREL - Pearson's Correlation Coefficient (r)\n\n    :param candles: np.ndarray\n    :param period: int - default: 5\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    x = candles[:, 3]\n    y = candles[:, 4]\n    n = len(x)\n    \n    # If not enough data, return an array of NaNs\n    if n < period:\n        res = np.empty(n)\n        res[:] = np.nan\n        return res if sequential else res[-1]\n\n    # Use numpy's sliding_window_view for vectorized rolling window computation\n    windows_x = np.lib.stride_tricks.sliding_window_view(x, window_shape=period)\n    windows_y = np.lib.stride_tricks.sliding_window_view(y, window_shape=period)\n    \n    mean_x = np.mean(windows_x, axis=1)\n    mean_y = np.mean(windows_y, axis=1)\n    \n    # Calculate numerator and denominator for Pearson correlation coefficient\n    numerator = np.sum((windows_x - mean_x[:, None]) * (windows_y - mean_y[:, None]), axis=1)\n    denominator = np.sqrt(np.sum((windows_x - mean_x[:, None])**2, axis=1) * np.sum((windows_y - mean_y[:, None])**2, axis=1))\n    \n    with np.errstate(divide='ignore', invalid='ignore'):\n        corr_vals = numerator / denominator\n    \n    # Prepare full result array with initial NaNs for indices with insufficient data\n    res_full = np.empty(n)\n    res_full[:period-1] = np.nan\n    res_full[period-1:] = corr_vals\n    \n    return res_full if sequential else res_full[-1]\n"
  },
  {
    "path": "jesse/indicators/correlation_cycle.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, np_shift, slice_candles\n\nCC = namedtuple('CC', ['real', 'imag', 'angle', 'state'])\n\n\ndef correlation_cycle(candles: np.ndarray, period: int = 20, threshold: int = 9, source_type: str = \"close\",\n                      sequential: bool = False) -> CC:\n    \"\"\"\n    \"Correlation Cycle, Correlation Angle, Market State - John Ehlers\n\n    :param candles: np.ndarray\n    :param period: int - default: 20\n    :param threshold: int - default: 9\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: CC(real, imag)\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n\n    realPart, imagPart, angle = go_fast(source, period)\n\n    priorAngle = np_shift(angle, 1, fill_value=np.nan)\n    angle = np.where(np.logical_and(priorAngle > angle, priorAngle - angle < 270.0), priorAngle, angle)\n\n    # Market State Function\n    state = np.where(np.abs(angle - priorAngle) < threshold, np.where(angle >= 0.0, 1, np.where(angle < 0.0, -1, 0)), 0)\n\n    if sequential:\n        return CC(realPart, imagPart, angle, state)\n    else:\n        return CC(realPart[-1], imagPart[-1], angle[-1], state[-1])\n\n\n@njit(cache=True)\ndef go_fast(source, period):  # Function is compiled to machine code when called the first time\n    # Correlation Cycle Function\n    PIx2 = 4.0 * np.arcsin(1.0)\n    period = max(2, period)\n\n    realPart = np.full_like(source, np.nan)\n    imagPart = np.full_like(source, np.nan)\n\n    for i in range(period, source.shape[0]):\n        Rx = 0.0\n        Rxx = 0.0\n        Rxy = 0.0\n        Ryy = 0.0\n        Ry = 0.0\n        Ix = 0.0\n        Ixx = 0.0\n        Ixy = 0.0\n        Iyy = 0.0\n        Iy = 0.0\n\n        for j in range(period):\n            jMinusOne = j + 1\n            X = 0 if np.isnan(source[i - jMinusOne]) else source[i - jMinusOne]\n            temp = PIx2 * jMinusOne / period\n            Yc = np.cos(temp)\n            Ys = -np.sin(temp)\n            Rx += X\n            Ix += X\n            Rxx += X * X\n            Ixx += X * X\n            Rxy += X * Yc\n            Ixy += X * Ys\n            Ryy += Yc * Yc\n            Iyy += Ys * Ys\n            Ry += Yc\n            Iy += Ys\n\n        temp_1 = period * Rxx - Rx**2\n        temp_2 = period * Ryy - Ry**2\n        if temp_1 > 0.0 and temp_2 > 0.0:\n            realPart[i] = (period * Rxy - Rx * Ry) / np.sqrt(temp_1 * temp_2)\n\n        temp_1 = period * Ixx - Ix**2\n        temp_2 = period * Iyy - Iy**2\n        if temp_1 > 0.0 and temp_2 > 0.0:\n            imagPart[i] = (period * Ixy - Ix * Iy) / np.sqrt(temp_1 * temp_2)\n\n    # Correlation Angle Phasor\n    HALF_OF_PI = np.arcsin(1.0)\n    angle = np.where(imagPart == 0, 0.0, np.degrees(np.arctan(realPart / imagPart) + HALF_OF_PI))\n    angle = np.where(imagPart > 0.0, angle - 180.0, angle)\n\n    return realPart, imagPart, angle\n"
  },
  {
    "path": "jesse/indicators/cvi.py",
    "content": "from typing import Union\nimport numpy as np\nimport jesse.helpers as jh\nfrom jesse_rust import cvi as cvi_rust\n\n\ndef cvi(candles: np.ndarray, period: int = 5, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    CVI - Chaikins Volatility\n\n    :param candles: np.ndarray\n    :param period: int - default: 5\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = jh.slice_candles(candles, sequential)\n    \n    # Call the Rust implementation\n    res = cvi_rust(candles, period)\n\n    return jh.same_length(candles, res) if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/cwma.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef cwma(candles: np.ndarray, period: int = 14, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    Cubed Weighted Moving Average\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n\n    # Accept normal array too.\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    res = vpwma_fast(source, period)\n\n    return res if sequential else res[-1]\n\n\n@njit(cache=True)\ndef vpwma_fast(source, period):\n    newseries = np.copy(source)\n    for j in range(period + 1, source.shape[0]):\n        my_sum = 0.0\n        weightSum = 0.0\n        for i in range(period - 1):\n            weight = np.power(period - i, 3)\n            my_sum += (source[j - i] * weight)\n            weightSum += weight\n        newseries[j] = my_sum / weightSum\n    return newseries\n"
  },
  {
    "path": "jesse/indicators/damiani_volatmeter.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\nDamianiVolatmeter = namedtuple('DamianiVolatmeter', ['vol', 'anti'])\n\n\ndef atr(high: np.ndarray, low: np.ndarray, close: np.ndarray, timeperiod: int) -> np.ndarray:\n    tr = np.empty_like(high, dtype=float)\n    tr[0] = high[0] - low[0]\n    if high.shape[0] > 1:\n        diff1 = high[1:] - low[1:]\n        diff2 = np.abs(high[1:] - close[:-1])\n        diff3 = np.abs(low[1:] - close[:-1])\n        tr[1:] = np.maximum(diff1, np.maximum(diff2, diff3))\n    atr_array = np.full(high.shape, np.nan, dtype=float)\n    if high.shape[0] < timeperiod:\n        atr_array[-1] = np.mean(tr)\n        return atr_array\n    n = high.shape[0]\n    m = n - timeperiod + 1\n    alpha = 1.0 / timeperiod\n    initial = np.mean(tr[:timeperiod])\n    ema_vector = np.empty(m)\n    ema_vector[0] = initial\n    if m > 1:\n        k = np.arange(m)  # k = 0,..., m-1\n        initial_contrib = initial * (1 - alpha) ** k\n        # Build a lower-triangular matrix for weights for indices 1 to m-1\n        exp_matrix = np.tril((1 - alpha) ** (np.subtract.outer(np.arange(m - 1), np.arange(m - 1))))\n        # tr[timeperiod:] has length m-1\n        sum_vals = alpha * (exp_matrix @ tr[timeperiod:])\n        ema_vector[1:] = initial_contrib[1:] + sum_vals\n    atr_array[:timeperiod - 1] = np.nan\n    atr_array[timeperiod - 1:] = ema_vector\n    return atr_array\n\ndef damiani_volatmeter(candles: np.ndarray, vis_atr: int = 13, vis_std: int = 20, sed_atr: int = 40, sed_std: int = 100,\n                       threshold: float = 1.4, source_type: str = \"close\",\n                       sequential: bool = False) -> DamianiVolatmeter:\n    \"\"\"\n    Damiani Volatmeter\n\n    :param candles: np.ndarray\n    :param vis_atr: int - default: 13\n    :param vis_std: int - default: 20\n    :param sed_atr: int - default: 40\n    :param sed_std: int - default: 100\n    :param threshold: float - default: 1.4\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    atrvis = atr(candles[:, 3], candles[:, 4], candles[:, 2], vis_atr)\n    atrsed = atr(candles[:, 3], candles[:, 4], candles[:, 2], sed_atr)\n\n    vol, t = damiani_volatmeter_fast(source, sed_std, atrvis, atrsed, vis_std, threshold)\n\n    if sequential:\n        return DamianiVolatmeter(vol, t)\n    else:\n        return DamianiVolatmeter(vol[-1], t[-1])\n\ndef damiani_volatmeter_fast(source, sed_std, atrvis, atrsed, vis_std, threshold):\n    from scipy.signal import lfilter\n    from numpy.lib.stride_tricks import sliding_window_view\n\n    lag_s = 0.5\n    n = source.shape[0]\n\n    # Compute vol using a linear filter to solve the recurrence:\n    # vol[i] - lag_s*vol[i-1] + lag_s*vol[i-3] = atrvis[i]/atrsed[i]\n    u = np.zeros(n)\n    u[sed_std:] = atrvis[sed_std:] / atrsed[sed_std:]\n    b = [1.0]\n    a = [1.0, -lag_s, 0.0, lag_s]\n    vol = lfilter(b, a, u)\n\n    # Compute t vectorized by calculating moving standard deviations without loops\n    t = np.zeros(n)\n    if n >= sed_std:\n        std_vis = np.std(sliding_window_view(source, vis_std), axis=-1)\n        std_sed = np.std(sliding_window_view(source, sed_std), axis=-1)\n        idx = np.arange(sed_std, n)\n        t[idx] = threshold - (std_vis[idx - vis_std] / std_sed[idx - sed_std])\n    return vol, t\n"
  },
  {
    "path": "jesse/indicators/dec_osc.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\nfrom .high_pass_2_pole import high_pass_2_pole_fast\n\n\ndef dec_osc(candles: np.ndarray, hp_period: int = 125, k: float = 1, source_type: str = \"close\",\n            sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    Ehlers Decycler Oscillator\n\n    :param candles: np.ndarray\n    :param hp_period: int - default: 125\n    :param k: float - default: 1\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n\n    hp = high_pass_2_pole_fast(source, hp_period)\n    dec = source - hp\n    decosc = high_pass_2_pole_fast(dec, 0.5 * hp_period)\n\n    res = 100 * k * decosc / source\n\n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/decycler.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\nfrom .high_pass_2_pole import high_pass_2_pole_fast\n\n\ndef decycler(candles: np.ndarray, hp_period: int = 125, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    Ehlers Simple Decycler\n\n    :param candles: np.ndarray\n    :param hp_period: int - default: 125\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n    hp = high_pass_2_pole_fast(source, hp_period)\n    res = source - hp\n\n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/dema.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n# Try to import the high-performance Rust implementation\ntry:\n    from jesse_rust import dema as dema_rust  # type: ignore\nexcept ImportError:  # pragma: no cover\n    dema_rust = None  # type: ignore\n\n\n@njit(cache=True)\ndef _ema(x: np.ndarray, period: int) -> np.ndarray:\n    alpha = 2.0 / (period + 1)\n    n = len(x)\n    ema = np.empty(n, dtype=x.dtype)\n    ema[0] = x[0]\n    for i in range(1, n):\n        ema[i] = alpha * x[i] + (1 - alpha) * ema[i - 1]\n    return ema\n\n\ndef dema(candles: np.ndarray, period: int = 30, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    DEMA - Double Exponential Moving Average\n\n    :param candles: np.ndarray\n    :param period: int - default: 30\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    # Use Rust implementation if available\n    if dema_rust is not None:\n        # Convert to float64 for Rust compatibility\n        source_f64 = np.asarray(source, dtype=np.float64)\n        \n        # Call the Rust implementation\n        result = dema_rust(source_f64, period)\n        \n        return result if sequential else result[-1]\n    else:\n        # Fallback to Python implementation\n        return _dema_python(source, period, sequential)\n\n\ndef _dema_python(source: np.ndarray, period: int, sequential: bool) -> Union[float, np.ndarray]:\n    \"\"\"Python fallback implementation.\"\"\"\n    ema = _ema(source, period)\n    ema_of_ema = _ema(ema, period)\n    res = 2 * ema - ema_of_ema\n\n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/devstop.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numpy.lib.stride_tricks import sliding_window_view\n\nfrom jesse.helpers import slice_candles\nfrom jesse.indicators.mean_ad import mean_ad\nfrom jesse.indicators.median_ad import median_ad\n\n\ndef devstop(candles: np.ndarray, period: int = 20, mult: float = 0, devtype: int = 0, direction: str = \"long\",\n            sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    Kase Dev Stops\n\n    :param candles: np.ndarray\n    :param period: int - default: 20\n    :param mult: float - default: 0\n    :param devtype: int - default: 0\n    :param direction: str - default: long\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    high = candles[:, 3]\n    low = candles[:, 4]\n\n    AVTR = rolling_mean(rolling_max(high, 2) - rolling_min(low, 2), period)\n\n    if devtype == 0:\n       SD = rolling_std(rolling_max(high, 2) - rolling_min(low, 2), period)\n    elif devtype == 1:\n       SD = mean_ad(rolling_max(high, 2) - rolling_min(low, 2), period, sequential=True)\n    elif devtype == 2:\n       SD = median_ad(rolling_max(high, 2) - rolling_min(low, 2), period, sequential=True)\n\n    if direction == \"long\":\n        res = rolling_max(high - AVTR - mult * SD, period)\n    else:\n        res = rolling_min(low + AVTR + mult * SD, period)\n\n    return res if sequential else res[-1]\n\ndef rolling_max(arr, window):\n    if len(arr) < window:\n        return np.full(arr.shape, np.nan)\n    windows = sliding_window_view(arr, window)\n    res = np.empty(len(arr))\n    res[:window-1] = np.nan\n    res[window-1:] = np.max(windows, axis=1)\n    return res\n\ndef rolling_min(arr, window):\n    if len(arr) < window:\n        return np.full(arr.shape, np.nan)\n    windows = sliding_window_view(arr, window)\n    res = np.empty(len(arr))\n    res[:window-1] = np.nan\n    res[window-1:] = np.min(windows, axis=1)\n    return res\n\ndef rolling_mean(arr, window):\n    if len(arr) < window:\n        return np.full(arr.shape, np.nan)\n    windows = sliding_window_view(arr, window)\n    res = np.empty(len(arr))\n    res[:window-1] = np.nan\n    res[window-1:] = np.mean(windows, axis=1)\n    return res\n\ndef rolling_std(arr, window):\n    if len(arr) < window:\n        return np.full(arr.shape, np.nan)\n    windows = sliding_window_view(arr, window)\n    res = np.empty(len(arr))\n    res[:window-1] = np.nan\n    res[window-1:] = np.std(windows, axis=1, ddof=0)\n    return res\n"
  },
  {
    "path": "jesse/indicators/di.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\n\nfrom jesse.helpers import slice_candles\nfrom jesse_rust import di as di_rust\n\nDI = namedtuple('DI', ['plus', 'minus'])\n\n\ndef di(candles: np.ndarray, period: int = 14, sequential: bool = False) -> DI:\n    \"\"\"\n    DI - Directional Indicator\n\n    :param candles: np.ndarray, where columns are expected to be: index 2: close, index 3: high, index 4: low.\n    :param period: int - default: 14\n    :param sequential: bool - default: False\n\n    :return: DI(plus, minus)\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    n = len(candles)\n    if n < 2:\n        if sequential:\n            return DI(np.full(n, np.nan), np.full(n, np.nan))\n        else:\n            return DI(np.nan, np.nan)\n\n    # Use Rust implementation\n    plus_DI_arr, minus_DI_arr = di_rust(candles, period)\n    if sequential:\n        return DI(plus_DI_arr, minus_DI_arr)\n    else:\n        return DI(plus_DI_arr[-1], minus_DI_arr[-1])\n"
  },
  {
    "path": "jesse/indicators/dm.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\n\nfrom jesse.helpers import slice_candles\n\n# Import the high-performance Rust implementation\nfrom jesse_rust import dm as dm_rust  # type: ignore\n\nDM = namedtuple('DM', ['plus', 'minus'])\n\n\ndef dm(candles: np.ndarray, period: int = 14, sequential: bool = False) -> DM:\n    \"\"\"\n    DM - Directional Movement\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param sequential: bool - default: False\n\n    :return: DM(plus, minus)\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    \n    # Convert to float64 for Rust compatibility\n    candles_f64 = np.asarray(candles, dtype=np.float64)\n    \n    # Call the Rust implementation\n    plus, minus = dm_rust(candles_f64, period)\n    \n    if sequential:\n        return DM(plus, minus)\n    else:\n        return DM(plus[-1], minus[-1])\n"
  },
  {
    "path": "jesse/indicators/donchian.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\nfrom jesse_rust import donchian as rust_donchian\nfrom jesse.helpers import slice_candles\n\nDonchianChannel = namedtuple('DonchianChannel', ['upperband', 'middleband', 'lowerband'])\n\n\ndef donchian(candles: np.ndarray, period: int = 20, sequential: bool = False) -> DonchianChannel:\n    \"\"\"\n    Donchian Channels\n\n    :param candles: np.ndarray\n    :param period: int - default: 20\n    :param sequential: bool - default: False\n\n    :return: DonchianChannel(upperband, middleband, lowerband)\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    \n    if sequential:\n        # Use optimized Rust implementation\n        rust_result = rust_donchian(candles, period)\n        return DonchianChannel(\n            rust_result['upperband'],\n            rust_result['middleband'],\n            rust_result['lowerband']\n        )\n    else:\n        # Non-sequential mode only needs the very last value of the channel.\n        # Instead of calling the Rust implementation (which processes the\n        # entire candle history and incurs extra FFI overhead), we can obtain\n        # the same result in pure NumPy by looking at just the last `period`\n        # candles.\n\n        if candles.shape[0] < period:\n            # Not enough candles yet → behave exactly like the Rust variant\n            # which would return NaNs for the incomplete window.\n            return DonchianChannel(np.nan, np.nan, np.nan)\n\n        # Slice only the window we need.\n        window = candles[-period:]\n\n        # Candle columns: 0 -> timestamp, 1 -> open, 2 -> close, 3 -> high, 4 -> low\n        highs = window[:, 3]\n        lows = window[:, 4]\n\n        upper = highs.max()\n        lower = lows.min()\n        middle = (upper + lower) / 2\n\n        return DonchianChannel(upper, middle, lower)\n"
  },
  {
    "path": "jesse/indicators/dpo.py",
    "content": "from typing import Union\nimport numpy as np\nfrom numba import njit\nfrom jesse.helpers import get_candle_source, same_length, slice_candles\nfrom jesse.indicators.sma import sma\n\n\n@njit\ndef _dpo(source, period, sma):\n    # Calculate the X/2 + 1 shift\n    shift = period // 2 + 1\n\n    # Shift the price series and subtract SMA\n    shifted_source = np.roll(source, shift)\n    dpo = shifted_source - sma\n\n    # First (period-1 + shift) elements will be invalid due to the rolling calculations\n    dpo[:period-1+shift] = np.nan\n\n    return dpo\n\n\ndef dpo(candles: np.ndarray, period: int = 5, source_type: str = \"close\", sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    DPO - Detrended Price Oscillator\n\n    Formula: Price {X/2 + 1} periods ago less the X-period simple moving average\n\n    :param candles: np.ndarray\n    :param period: int - default: 5\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    source = get_candle_source(candles, source_type=source_type)\n    t_sma = sma(candles, period, source_type=source_type, sequential=True)\n    res = _dpo(source, period, t_sma)\n\n    return same_length(candles, res) if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/dti.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nimport jesse.helpers as jh\nfrom jesse.helpers import slice_candles\nimport jesse_rust as jr\n\n\n@njit(cache=True)\ndef _ema(arr: np.ndarray, period: int) -> np.ndarray:\n    \"\"\"\n    Compute the exponential moving average (EMA) using a simple for loop, accelerated with numba.\n    The formula is: EMA[i] = sum_{j=0}^{i} (alpha * (1-alpha)**(i - j) * arr[j]) where alpha = 2/(period+1).\n    This is computed iteratively:\n      EMA[0] = alpha * arr[0]\n      EMA[i] = alpha * arr[i] + (1 - alpha) * EMA[i-1] for i >= 1\n    \"\"\"\n    alpha = 2.0 / (period + 1)\n    n = arr.shape[0]\n    result = np.empty(n, dtype=arr.dtype)\n    result[0] = alpha * arr[0]\n    for i in range(1, n):\n        result[i] = alpha * arr[i] + (1 - alpha) * result[i - 1]\n    return result\n\n\ndef dti(candles: np.ndarray, r: int = 14, s: int = 10, u: int = 5, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    DTI by William Blau calculated using Rust implementation for better performance.\n\n    :param candles: np.ndarray of candles data\n    :param r: period for the first EMA smoothing (default 14)\n    :param s: period for the second EMA smoothing (default 10)\n    :param u: period for the third EMA smoothing (default 5)\n    :param sequential: if True, returns the full sequence, otherwise only the last value\n    :return: float or np.ndarray of DTI values\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    \n    # Use the Rust implementation\n    res = jr.dti(candles, r, s, u)\n    \n    if sequential:\n        return res\n    else:\n        return None if np.isnan(res[-1]) else res[-1]\n"
  },
  {
    "path": "jesse/indicators/dx.py",
    "content": "from collections import namedtuple\n\nfrom typing import Union\n\nimport numpy as np\nfrom jesse.helpers import slice_candles\nfrom jesse.indicators.rma import rma\nfrom numba import njit\n\nDX = namedtuple('DX', ['adx', 'plusDI', 'minusDI'])\n\n@njit(cache=True)\ndef _fast_dm_tr(high: np.ndarray, low: np.ndarray, close: np.ndarray) -> tuple:\n    n = len(high)\n    up = np.zeros(n)\n    down = np.zeros(n)\n    plusDM = np.zeros(n)\n    minusDM = np.zeros(n)\n    true_range = np.zeros(n)\n    \n    for i in range(n):\n        if i == 0:\n            up[i] = 0\n            down[i] = 0\n            plusDM[i] = 0\n            minusDM[i] = 0\n            true_range[i] = high[i] - low[i]\n        else:\n            up[i] = high[i] - high[i - 1]\n            down[i] = low[i - 1] - low[i]\n            plusDM[i] = up[i] if (up[i] > down[i] and up[i] > 0) else 0\n            minusDM[i] = down[i] if (down[i] > up[i] and down[i] > 0) else 0\n            a = high[i] - low[i]\n            b = abs(high[i] - close[i - 1])\n            c = abs(low[i] - close[i - 1])\n            true_range[i] = max(a, b, c)\n    \n    return plusDM, minusDM, true_range\n\ndef dx(candles: np.ndarray, di_length: int = 14, adx_smoothing: int = 14, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    DX - Directional Movement Index\n    \n    :param candles: np.ndarray\n    :param di_length: int - default: 14\n    :param adx_smoothing: int - default: 14\n    :param sequential: bool - default: False\n    \n    :return: DX(adx, plusDI, minusDI)\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    high = candles[:, 3]\n    low = candles[:, 4]\n    close = candles[:, 2]\n    \n    plusDM, minusDM, true_range = _fast_dm_tr(high, low, close)\n    \n    tr_rma = rma(true_range, di_length, sequential=True)\n    plus_rma = rma(plusDM, di_length, sequential=True)\n    minus_rma = rma(minusDM, di_length, sequential=True)\n    \n    # Compute +DI and -DI, avoiding division by zero\n    plusDI = np.where(tr_rma == 0, 0, 100 * plus_rma / tr_rma)\n    minusDI = np.where(tr_rma == 0, 0, 100 * minus_rma / tr_rma)\n    \n    di_sum = plusDI + minusDI\n    di_diff = np.abs(plusDI - minusDI)\n    directional_index = di_diff / np.where(di_sum == 0, 1, di_sum)\n    adx = 100 * rma(directional_index, adx_smoothing, sequential=True)\n    \n    if sequential:\n        return DX(adx, plusDI, minusDI)\n    else:\n        return DX(adx[-1], plusDI[-1], minusDI[-1])\n"
  },
  {
    "path": "jesse/indicators/edcf.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef edcf(candles: np.ndarray, period: int = 15, source_type: str = \"hl2\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    Ehlers Distance Coefficient Filter\n\n    :param candles: np.ndarray\n    :param period: int - default: 15\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n\n    # Accept normal array too.\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    res = edcf_fast(source, period)\n\n    return res if sequential else res[-1]\n\n\n@njit(cache=True)\ndef edcf_fast(source, period):\n    newseries = np.full_like(source, np.nan)\n\n    for j in range(2 * period, source.shape[0]):\n        num = 0.0\n        coefSum = 0.0\n        for i in range(period):\n            distance = 0.0\n            for lb in range(1, period):\n                distance += np.power(source[j - i] - source[j - i - lb], 2)\n            num += distance * source[j - i]\n            coefSum += distance\n        newseries[j] = num / coefSum if coefSum != 0 else 0\n\n    return newseries\n"
  },
  {
    "path": "jesse/indicators/efi.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, same_length, slice_candles\n\n\ndef efi(candles: np.ndarray, period: int = 13, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    EFI - Elders Force Index\n\n    :param candles: np.ndarray\n    :param period: int - default: 13\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n\n    dif = efi_fast(source, candles[:, 5])\n\n    res = ema(dif, period)\n    res_with_nan = same_length(candles, res)\n\n    return res_with_nan if sequential else res_with_nan[-1]\n\n\n@njit(cache=True)\ndef efi_fast(source, volume):\n    dif = np.zeros(source.size - 1)\n    for i in range(1, source.size):\n        dif[i - 1] = (source[i] - source[i - 1]) * volume[i]\n    return dif\n\n\n@njit(cache=True)\ndef ema(data: np.ndarray, period: int) -> np.ndarray:\n    n = data.shape[0]\n    # Initialize output array and fill with NaN\n    out = np.empty(n)\n    for i in range(n):\n        out[i] = np.nan\n    if n < period:\n        return out\n    alpha = 2.0 / (period + 1)\n    # Compute seed as the simple average of the first 'period' values\n    sum_value = 0.0\n    for i in range(period):\n        sum_value += data[i]\n    ema_val = sum_value / period\n    out[period - 1] = ema_val\n    # Recursively compute EMA for the rest of the data\n    for i in range(period, n):\n        ema_val = alpha * data[i] + (1 - alpha) * ema_val\n        out[i] = ema_val\n    return out\n"
  },
  {
    "path": "jesse/indicators/ema.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\nfrom jesse_rust import ema as ema_rust\n\n\ndef ema(candles: np.ndarray, period: int = 5, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    EMA - Exponential Moving Average using Numba for optimization\n\n    :param candles: np.ndarray\n    :param period: int - default: 5\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    result = ema_rust(source, period)\n    return result if sequential else result[-1]\n"
  },
  {
    "path": "jesse/indicators/emd.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\nfrom numba import njit\nfrom jesse.indicators.sma import sma\nfrom jesse.helpers import slice_candles\n\nEMD = namedtuple('EMD', ['upperband', 'middleband', 'lowerband'])\n\n\ndef emd(candles: np.ndarray, period: int = 20, delta=0.5, fraction=0.1, sequential: bool = False) -> EMD:\n    \"\"\"\n    Empirical Mode Decomposition by John F. Ehlers and Ric Way\n\n    :param candles: np.ndarray\n    :param period: int - default: 20\n    :param delta: float - default: 0.5\n    :param fraction: float - default: 0.1\n    :param sequential: bool - default: False\n\n    :return: EMD(upperband, middleband, lowerband)\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    price = (candles[:, 3] + candles[:, 4]) / 2\n\n    bp = bp_fast(price, period, delta)\n\n    mean = sma(bp, 2 * period, sequential=True)\n    peak, valley = peak_valley_fast(bp, price)\n\n    avg_peak = fraction * sma(peak, 50, sequential=True)\n    avg_valley = fraction * sma(valley, 50, sequential=True)\n\n    if sequential:\n        return EMD(avg_peak, mean, avg_valley)\n    else:\n        return EMD(avg_peak[-1], mean[-1], avg_valley[-1])\n\n\n@njit(cache=True)\ndef bp_fast(price, period, delta):\n    # bandpass filter\n    beta = np.cos(2 * np.pi / period)\n    gamma = 1 / np.cos(4 * np.pi * delta / period)\n    alpha = gamma - np.sqrt(gamma * gamma - 1)\n    bp = np.zeros_like(price)\n\n    for i in range(price.shape[0]):\n        if i > 2:\n            bp[i] = 0.5 * (1 - alpha) * (price[i] - price[i - 2]) + beta * (1 + alpha) * bp[i - 1] - alpha * bp[i - 2]\n        else:\n            bp[i] = 0.5 * (1 - alpha) * (price[i] - price[i - 2])\n    return bp\n\n\n@njit(cache=True)\ndef peak_valley_fast(bp, price):\n    peak = np.copy(bp)\n    valley = np.copy(bp)\n\n    for i in range(price.shape[0]):\n        peak[i] = peak[i - 1]\n        valley[i] = valley[i - 1]\n        if i > 2:\n            if bp[i - 1] > bp[i] and bp[i - 1] > bp[i - 2]:\n                peak[i] = bp[i - 1]\n            if bp[i - 1] < bp[i] and bp[i - 1] < bp[i - 2]:\n                valley[i] = bp[i - 1]\n\n    return peak, valley\n"
  },
  {
    "path": "jesse/indicators/emv.py",
    "content": "from typing import Union\nimport numpy as np\nfrom numba import njit\nfrom jesse.helpers import same_length, slice_candles\nfrom jesse.indicators import sma\n\n\n@njit\ndef _emv(high: np.ndarray, low: np.ndarray, volume: np.ndarray, length, div) -> np.ndarray:\n    hl2 = (high + low) / 2\n\n    hl2_change = np.zeros_like(hl2)\n    hl2_change[1:] = hl2[1:] - hl2[:-1]\n    # Calculate EMV\n    emv_raw = div * hl2_change * (high - low) / volume\n\n    # Calculate SMA of EMV\n    result = np.zeros_like(emv_raw)\n    for i in range(length - 1, len(emv_raw)):\n        result[i] = np.mean(emv_raw[i - length + 1:i + 1])\n\n    return result\n\n\ndef emv(candles: np.ndarray, length: int = 14, div: int = 10000, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    EMV - Ease of Movement\n\n    :param candles: np.ndarray\n    :param length: int - default: 14\n    :param div: int - default: 10000\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    high = candles[:, 3]\n    low = candles[:, 4]\n    volume = candles[:, 5]\n\n    res = _emv(high, low, volume, length, div)\n\n    return same_length(candles, res) if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/epma.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef epma(candles: np.ndarray, period: int = 11, offset: int = 4, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    End Point Moving Average\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param offset: int - default: 4\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n\n    # Accept normal array too.\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    res = epma_fast(source, period, offset)\n\n    return res if sequential else res[-1]\n\n\n@njit(cache=True)\ndef epma_fast(source, period, offset):\n    newseries = np.copy(source)\n    for j in range(period + offset + 1 , source.shape[0]):\n        my_sum = 0.0\n        weightSum = 0.0\n        for i in range(period - 1):\n            weight = period - i - offset\n            my_sum += (source[j - i] * weight)\n            weightSum += weight\n        newseries[j] = 1 / weightSum * my_sum\n    return newseries\n"
  },
  {
    "path": "jesse/indicators/er.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numpy.lib.stride_tricks import sliding_window_view\n\nfrom jesse.helpers import get_candle_source, same_length, slice_candles\n\n\ndef er(candles: np.ndarray, period: int = 5, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    ER - The Kaufman Efficiency indicator\n\n    :param candles: np.ndarray\n    :param period: int - default: 5\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n\n    change = np.abs(np.diff(source, period))\n    abs_dif = np.abs(np.diff(source))\n    swv = sliding_window_view(abs_dif, window_shape=period)\n    volatility = swv.sum()\n\n    res = change / volatility\n\n    return same_length(candles, res) if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/eri.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\nfrom jesse.indicators.ma import ma\n\nERI = namedtuple('ERI', ['bull', 'bear'])\n\n\ndef eri(candles: np.ndarray, period: int = 13, matype: int = 1, source_type: str = \"close\",\n        sequential: bool = False) -> ERI:\n    \"\"\"\n    Elder Ray Index (ERI)\n\n    :param candles: np.ndarray\n    :param period: int - default: 13\n    :param matype: int - default: 1\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n\n    if matype == 24 or matype == 29:\n        ema = ma(candles, period=period, matype=matype, source_type=source_type, sequential=True)\n    else:\n        ema = ma(source, period=period, matype=matype, sequential=True)\n\n    bull = candles[:, 3] - ema\n    bear = candles[:, 4] - ema\n\n    if sequential:\n        return ERI(bull, bear)\n    else:\n        return ERI(bull[-1], bear[-1])\n"
  },
  {
    "path": "jesse/indicators/fisher.py",
    "content": "from collections import namedtuple\nimport numpy as np\nfrom numba import njit\nfrom jesse.helpers import same_length, slice_candles\n\nFisherTransform = namedtuple('FisherTransform', ['fisher', 'signal'])\n\n\n@njit\ndef _fisher_transform(high: np.ndarray, low: np.ndarray, period: int) -> tuple:\n    \"\"\"\n    Numba-optimized implementation of Fisher Transform\n    \"\"\"\n    length = len(high)\n    mid_price = (high + low) / 2\n    fisher = np.zeros(length)\n    fisher_signal = np.zeros(length)\n\n    # Initialize first value\n    value1 = 0.0\n\n    for i in range(period, length):\n        # Find the highest high and lowest low in the period\n        max_h = np.max(mid_price[i-period+1:i+1])\n        min_l = np.min(mid_price[i-period+1:i+1])\n\n        # Avoid division by zero\n        if max_h - min_l == 0:\n            value0 = 0\n        else:\n            value0 = 0.33 * 2 * ((mid_price[i] - min_l) / (max_h - min_l) - 0.5) + 0.67 * value1\n\n        if value0 > 0.99:\n            value0 = 0.999\n        elif value0 < -0.99:\n            value0 = -0.999\n\n        fisher[i] = 0.5 * np.log((1 + value0) / (1 - value0)) + 0.5 * fisher[i-1]\n        fisher_signal[i] = fisher[i-1]\n        value1 = value0\n\n    return fisher, fisher_signal\n\n\ndef fisher(candles: np.ndarray, period: int = 9, sequential: bool = False) -> FisherTransform:\n    \"\"\"\n    The Fisher Transform helps identify price reversals.\n\n    :param candles: np.ndarray\n    :param period: int - default: 9\n    :param sequential: bool - default: False\n\n    :return: FisherTransform(fisher, signal)\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    fisher_val, fisher_signal = _fisher_transform(\n        np.ascontiguousarray(candles[:, 3]),\n        np.ascontiguousarray(candles[:, 4]),\n        period\n    )\n\n    if sequential:\n        return FisherTransform(same_length(candles, fisher_val), same_length(candles, fisher_signal))\n    else:\n        return FisherTransform(fisher_val[-1], fisher_signal[-1])\n"
  },
  {
    "path": "jesse/indicators/fosc.py",
    "content": "from typing import Union\nimport numpy as np\nfrom jesse.helpers import get_candle_source, same_length, slice_candles\nfrom numba import njit\n\n\n@njit\ndef linear_regression_line(x, y):\n    n = len(x)\n    sum_x = np.sum(x)\n    sum_y = np.sum(y)\n    sum_xy = np.sum(x * y)\n    sum_xx = np.sum(x * x)\n\n    slope = (n * sum_xy - sum_x * sum_y) / (n * sum_xx - sum_x * sum_x)\n    intercept = (sum_y - slope * sum_x) / n\n\n    return slope * x + intercept\n\n\ndef fosc(candles: np.ndarray, period: int = 5, source_type: str = \"close\", sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    FOSC - Forecast Oscillator\n\n    :param candles: np.ndarray\n    :param period: int - default: 5\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    source = get_candle_source(candles, source_type=source_type)\n\n    # Prepare the result array\n    res = np.zeros_like(source)\n\n    # Calculate FOSC for each window\n    for i in range(period - 1, len(source)):\n        window = source[i - period + 1:i + 1]\n        x = np.arange(period)\n        predicted = linear_regression_line(x, window)\n        res[i] = 100 * (window[-1] - predicted[-1]) / window[-1]\n\n    # Replace initial NaN values with 0\n    res[:period - 1] = 0\n\n    return same_length(candles, res) if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/frama.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import slice_candles\n\n\ndef frama(candles: np.ndarray, window: int = 10, FC: int = 1, SC: int = 300, sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    Fractal Adaptive Moving Average (FRAMA)\n\n    :param candles: np.ndarray\n    :param window: int - default: 10\n    :param FC: int - default: 1\n    :param SC: int - default: 300\n    :param sequential: bool - default: False\n\n    :return:  float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    n = window\n\n    # n must be even\n    if n % 2 == 1:\n        print(\"FRAMA n must be even. Adding one\")\n        n += 1\n\n    res = frame_fast(candles, n, SC, FC)\n\n    if sequential:\n        return res\n    else:\n        return res[-1]\n\n\n@njit(cache=True)\ndef frame_fast(candles, n, SC, FC):\n    w = np.log(2.0 / (SC + 1))\n\n    D = np.zeros(candles.size)\n    D[:n] = np.NaN\n\n    alphas = np.zeros(candles.size)\n    alphas[:n] = np.NaN\n\n    for i in range(n, candles.shape[0]):\n        per = candles[i - n:i]\n\n        v1 = per[per.shape[0] // 2:]\n        v2 = per[:per.shape[0] // 2]\n\n        N1 = (max(v1[:, 3]) - min(v1[:, 4])) / (n / 2)\n        N2 = (max(v2[:, 3]) - min(v2[:, 4])) / (n / 2)\n        N3 = (max(per[:, 3]) - min(per[:, 4])) / n\n\n        if N1 > 0 and N2 > 0 and N3 > 0:\n            D[i] = (np.log(N1 + N2) - np.log(N3)) / np.log(2)\n        else:\n            D[i] = D[i - 1]\n\n        oldalpha = np.exp(w * (D[i] - 1))\n        # keep btwn 1 & 0.01\n        oldalpha = max([oldalpha, 0.1])\n        oldalpha = min([oldalpha, 1])\n\n        oldN = (2 - oldalpha) / oldalpha\n        N = ((SC - FC) * ((oldN - 1) / (SC - 1))) + FC\n        alpha_ = 2 / (N + 1)\n        if alpha_ < 2 / (SC + 1):\n            alphas[i] = 2 / (SC + 1)\n        elif alpha_ > 1:\n            alphas[i] = 1\n        else:\n            alphas[i] = alpha_\n\n    frama_val = np.zeros(candles.shape[0])\n    frama_val[n - 1] = np.mean(candles[:, 2][:n])\n    frama_val[:n - 1] = np.NaN\n\n    for i in range(n, frama_val.shape[0]):\n        frama_val[i] = (alphas[i] * candles[:, 2][i]) + (1 - alphas[i]) * frama_val[i - 1]\n    return frama_val\n"
  },
  {
    "path": "jesse/indicators/fwma.py",
    "content": "from math import fabs\nfrom typing import Union\n\nimport numpy as np\nfrom numpy.lib.stride_tricks import sliding_window_view\n\nfrom jesse.helpers import get_candle_source, same_length, slice_candles\n\n\ndef fwma(candles: np.ndarray, period: int = 5, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    Fibonacci's Weighted Moving Average (FWMA)\n\n    :param candles: np.ndarray\n    :param period: int - default: 5\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n\n    # Accept normal array too.\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    fibs = fibonacci(n=period)\n    swv = sliding_window_view(source, window_shape=period)\n    res = np.average(swv, weights=fibs, axis=-1)\n\n    return same_length(candles, res) if sequential else res[-1]\n\n\ndef fibonacci(n: int = 2) -> np.ndarray:\n    \"\"\"Fibonacci Sequence as a numpy array\"\"\"\n    n = int(fabs(n)) if n >= 0 else 2\n\n    n -= 1\n    a, b = 1, 1\n\n    result = np.array([a])\n\n    for _ in range(n):\n        a, b = b, a + b\n        result = np.append(result, a)\n\n    fib_sum = np.sum(result)\n    if fib_sum > 0:\n        return result / fib_sum\n    else:\n        return result\n"
  },
  {
    "path": "jesse/indicators/gatorosc.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, np_shift, slice_candles\n\nGATOR = namedtuple('GATOR', ['upper', 'lower', 'upper_change', 'lower_change'])\n\n\ndef gatorosc(candles: np.ndarray, source_type: str = \"close\", sequential: bool = False) -> GATOR:\n    \"\"\"\n    Gator Oscillator by Bill M. Williams\n\n    :param candles: np.ndarray\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: GATOR(upper, lower, upper_change, lower_change)\n    \"\"\"\n\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n\n    jaw = np_shift(numpy_ewma(source, 13), 8, fill_value=np.nan)\n    teeth = np_shift(numpy_ewma(source, 8), 5, fill_value=np.nan)\n    lips = np_shift(numpy_ewma(source, 5), 3, fill_value=np.nan)\n\n    upper = np.abs(jaw - teeth)\n    lower = -np.abs(teeth - lips)\n\n    # Calculate momentum for upper: difference from previous value, first element is np.nan\n    upper_change = np.empty_like(upper)\n    upper_change[0] = np.nan\n    upper_change[1:] = np.diff(upper)\n\n    # Calculate momentum for lower: negative difference from previous value, first element is np.nan\n    lower_change = np.empty_like(lower)\n    lower_change[0] = np.nan\n    lower_change[1:] = -np.diff(lower)\n\n    if sequential:\n        return GATOR(upper, lower, upper_change, lower_change)\n    else:\n        return GATOR(upper[-1], lower[-1], upper_change[-1], lower_change[-1])\n\n\ndef numpy_ewma(data, window):\n    \"\"\"\n\n    :param data:\n    :param window:\n    :return:\n    \"\"\"\n    alpha = 1 / window\n    # scale = 1 / (1 - alpha)\n    n = data.shape[0]\n    scale_arr = (1 - alpha) ** (-1 * np.arange(n))\n    weights = (1 - alpha) ** np.arange(n)\n    pw0 = (1 - alpha) ** (n - 1)\n    mult = data * pw0 * scale_arr\n    cumsums = mult.cumsum()\n    return cumsums * scale_arr[::-1] / weights.cumsum()\n"
  },
  {
    "path": "jesse/indicators/gauss.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef gauss(candles: np.ndarray, period: int = 14, poles: int = 4, source_type: str = \"close\",\n          sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    Gaussian Filter\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param poles: int - default: 4\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    fil, to_fill = gauss_fast(source, period, poles)\n\n    if to_fill != 0:\n        res = np.insert(fil[poles:], 0, np.repeat(np.nan, to_fill))\n    else:\n        res = fil[poles:]\n\n    return res if sequential else res[-1]\n\n\n@njit(cache=True)\ndef gauss_fast(source, period, poles):\n    N = source.size\n    source = source[~np.isnan(source)]\n    to_fill = N - source.size\n    PI = np.pi\n    beta = (1 - np.cos(2 * PI / period)) / (np.power(2, 1 / poles) - 1)\n    alpha = -beta + np.sqrt(np.power(beta, 2) + 2 * beta)\n\n    fil = np.zeros(poles + source.size)\n    if poles == 1:\n        coeff = np.array([alpha, (1 - alpha)])\n    elif poles == 2:\n        coeff = np.array([alpha ** 2, 2 * (1 - alpha), -(1 - alpha) ** 2])\n    elif poles == 3:\n        coeff = np.array([alpha ** 3, 3 * (1 - alpha), -3 * (1 - alpha) ** 2, (1 - alpha) ** 3])\n    elif poles == 4:\n        coeff = np.array([alpha ** 4, 4 * (1 - alpha), -6 * (1 - alpha) ** 2, 4 * (1 - alpha) ** 3, -(1 - alpha) ** 4])\n\n    for i in range(source.size):\n        if poles == 1:\n            val = np.array([source[i].item(), fil[i]])\n        elif poles == 2:\n            val = np.array([source[i].item(), fil[1 + i], fil[i]])\n        elif poles == 3:\n            val = np.array([source[i].item(), fil[2 + i], fil[1 + i], fil[i]])\n        elif poles == 4:\n            val = np.array([source[i].item(), fil[3 + i], fil[2 + i], fil[1 + i], fil[i]])\n\n        fil[poles + i] = np.dot(coeff, val)\n\n    return fil, to_fill\n"
  },
  {
    "path": "jesse/indicators/heikin_ashi_candles.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import slice_candles\n\nHA = namedtuple('HA', ['open', 'close', 'high', 'low'])\n\ndef heikin_ashi_candles(candles: np.ndarray, sequential: bool = False) -> HA:\n    \"\"\"\n    Heikin Ashi Candles\n    :param candles: np.ndarray\n    :param sequential: bool - default: False\n    :return: float | np.ndarray\n    \"\"\"\n\n    source = slice_candles(candles, sequential)\n    # Just pick the OPEN,CLOSE,HIGH,LOW Columns from the candles\n    open, close, high, low = ha_fast(source[:,[1,2,3,4]])\n\n    if sequential:\n        return HA(open, close, high, low)\n    else:\n        return HA(open[-1], close[-1], high[-1], low[-1])\n\n@njit(cache=True)\ndef ha_fast(source):\n\n    # index consts to facilitate reading the code\n    OPEN = 0\n    CLOSE = 1\n    HIGH = 2\n    LOW = 3\n\n    # init array\n    ha_candles = np.full_like(source, np.nan)\n    for i in range(1,ha_candles.shape[0]):\n        # https://www.investopedia.com/trading/heikin-ashi-better-candlestick/\n        #\n        ha_candles[i][OPEN] = (source[i-1][OPEN]+source[i-1][CLOSE])/2\n        ha_candles[i][CLOSE] = (source[i][OPEN]+source[i][CLOSE]+source[i][HIGH]+source[i][LOW])/4\n        # Using builtins Python min,max and not numpy one since we get this Error:\n        # No implementation of function Function() found for signature:\n        # Still fast since numba supports it\n        ha_candles[i][HIGH] = max([source[i][HIGH], ha_candles[i][OPEN], ha_candles[i][CLOSE]])\n        ha_candles[i][LOW] = min([source[i][LOW], ha_candles[i][OPEN], ha_candles[i][CLOSE]])\n\n    return ha_candles[:,OPEN], ha_candles[:,CLOSE], ha_candles[:,HIGH], ha_candles[:,LOW]\n"
  },
  {
    "path": "jesse/indicators/high_pass.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef high_pass(candles: np.ndarray, period: int = 48, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    (1 pole) high-pass filter indicator by John F. Ehlers\n\n    :param candles: np.ndarray\n    :param period: int - default: 48\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n\n    if len(candles.shape) == 1:\n      source = candles\n    else:\n      candles = slice_candles(candles, sequential)\n      source = get_candle_source(candles, source_type=source_type)\n\n    hpf = high_pass_fast(source, period)\n\n    if sequential:\n        return hpf\n    else:\n        return None if np.isnan(hpf[-1]) else hpf[-1]\n\n\n@njit(cache=True)\ndef high_pass_fast(source, period):  # Function is compiled to machine code when called the first time\n    k = 1\n    alpha = 1 + (np.sin(2 * np.pi * k / period) - 1) / np.cos(2 * np.pi * k / period)\n    newseries = np.copy(source)\n    for i in range(1, source.shape[0]):\n        newseries[i] = (1 - alpha / 2) * source[i] - (1 - alpha / 2) * source[i - 1] \\\n                       + (1 - alpha) * newseries[i - 1]\n    return newseries\n"
  },
  {
    "path": "jesse/indicators/high_pass_2_pole.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef high_pass_2_pole(candles: np.ndarray, period: int = 48, source_type: str = \"close\", sequential: bool = False) -> \\\n        Union[\n            float, np.ndarray]:\n    \"\"\"\n    (2 pole) high-pass filter indicator by John F. Ehlers\n\n    :param candles: np.ndarray\n    :param period: int - default: 48\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n\n    if len(candles.shape) == 1:\n      source = candles\n    else:\n      candles = slice_candles(candles, sequential)\n      source = get_candle_source(candles, source_type=source_type)\n\n    hpf = high_pass_2_pole_fast(source, period)\n\n    if sequential:\n        return hpf\n    else:\n        return None if np.isnan(hpf[-1]) else hpf[-1]\n\n\n@njit(cache=True)\ndef high_pass_2_pole_fast(source, period, K=0.707):  # Function is compiled to machine code when called the first time\n    alpha = 1 + (np.sin(2 * np.pi * K / period) - 1) / np.cos(2 * np.pi * K / period)\n    newseries = np.copy(source)\n    for i in range(2, source.shape[0]):\n        newseries[i] = (1 - alpha / 2) ** 2 * source[i] \\\n                       - 2 * (1 - alpha / 2) ** 2 * source[i - 1] \\\n                       + (1 - alpha / 2) ** 2 * source[i - 2] \\\n                       + 2 * (1 - alpha) * newseries[i - 1] - (1 - alpha) ** 2 * newseries[i - 2]\n    return newseries\n"
  },
  {
    "path": "jesse/indicators/hma.py",
    "content": "from typing import Union\nimport numpy as np\nfrom numba import njit\nfrom jesse.helpers import get_candle_source, same_length, slice_candles\n\n\n@njit\ndef _wma(arr: np.ndarray, period: int) -> np.ndarray:\n    \"\"\"\n    Weighted Moving Average - optimized with Numba\n    \"\"\"\n    weights = np.arange(1, period + 1)\n    wma = np.zeros_like(arr)\n\n    for i in range(period - 1, len(arr)):\n        wma[i] = np.sum(arr[i - period + 1:i + 1] * weights) / np.sum(weights)\n\n    return wma\n\n\ndef hma(candles: np.ndarray, period: int = 5, source_type: str = \"close\", sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    Hull Moving Average\n\n    :param candles: np.ndarray\n    :param period: int - default: 5\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    # Accept normal array too.\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    # Calculate components for HMA\n    half_length = int(period / 2)\n    sqrt_length = int(np.sqrt(period))\n\n    # Calculate WMAs\n    wma_half = _wma(source, half_length)\n    wma_full = _wma(source, period)\n\n    # Calculate 2 * WMA(n/2) - WMA(n)\n    raw_hma = 2 * wma_half - wma_full\n\n    # Calculate final HMA\n    hma = _wma(raw_hma, sqrt_length)\n\n    return same_length(candles, hma) if sequential else hma[-1]\n"
  },
  {
    "path": "jesse/indicators/hull_suit.py",
    "content": "from collections import namedtuple\n\nfrom .wma import wma\nfrom .ema import ema\nimport numpy as np\nfrom jesse.helpers import get_candle_source, slice_candles\n\nHullSuit = namedtuple('HullSuit', ['s_hull', 'm_hull', 'signal'])\n\n\ndef hull_suit(candles: np.ndarray, mode_switch: str = 'Hma', length: int = 55, length_mult: float = 1.0, source_type: str = 'close', sequential: bool = False) -> HullSuit:\n    \"\"\"\n    @author InSilico\n    credits: https://www.tradingview.com/script/hg92pFwS-Hull-Suite/\n\n    HullSuit - Hull Suit\n\n    :param candles: np.ndarray\n    :param mode_switch: str - default: 'Hma'\n    :param length: int - default: 55\n    :param length_mult: float - default: 1.0\n    :param source_type: str - default: \"closes\"\n    :param sequential: bool - default=False\n\n    :return: float | np.ndarray\n    \"\"\"\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    mode_len = int(length * length_mult)\n    if mode_switch == 'Hma':\n        mode = wma(2*wma(source, int(mode_len / 2), sequential=True) - wma(source, mode_len, sequential=True), round(mode_len ** 0.5), sequential=True)\n    elif mode_switch == 'Ehma':\n        mode = ema(2*ema(source, int(mode_len / 2), sequential=True) - ema(source,\n                   mode_len, sequential=True), round(mode_len ** 0.5), sequential=True)\n    elif mode_switch == 'Thma':\n        mode = wma(3*wma(source, int(mode_len / 6), sequential=True) - wma(source, int(mode_len / 4), sequential=True) -\n                   wma(source, int(mode_len / 2), sequential=True), int(mode_len / 2), sequential=True)\n\n    # Vectorized computation for s_hull, m_hull, and signal\n    n = len(mode)\n    s_hull = np.full(n, None, dtype=object)\n    m_hull = np.full(n, None, dtype=object)\n    signal = np.full(n, None, dtype=object)\n    if n > 2:\n        s_hull[2:] = mode[:-2]\n        m_hull[2:] = mode[2:]\n        signal[2:] = np.where(mode[:-2] < mode[2:], 'buy', 'sell')\n\n    if sequential:\n        return HullSuit(s_hull, m_hull, signal)\n    else:\n        return HullSuit(s_hull[-1], m_hull[-1], signal[-1])\n"
  },
  {
    "path": "jesse/indicators/hurst_exponent.py",
    "content": "import numpy as np\nfrom numba import njit\nfrom scipy import signal\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef hurst_exponent(candles: np.ndarray, min_chunksize: int = 8, max_chunksize: int = 200, num_chunksize:int=5, method:int=1, source_type: str = \"close\") -> float:\n    \"\"\"\n    Hurst Exponent\n\n    :param candles: np.ndarray\n    :param min_chunksize: int - default: 8\n    :param max_chunksize: int - default: 200\n    :param num_chunksize: int - default: 5\n    :param method: int - default: 1 - 0: RS | 1: DMA | 2: DSOD\n    :param source_type: str - default: \"close\"\n\n    :return: float\n    \"\"\"\n\n    if len(candles.shape) == 1:\n      source = candles\n    else:\n      candles = slice_candles(candles, False)\n      source = get_candle_source(candles, source_type=source_type)\n\n    if method == 0:\n        h = hurst_rs(np.diff(source), min_chunksize, max_chunksize, num_chunksize)\n    elif method == 1:\n        h = hurst_dma(source, min_chunksize, max_chunksize, num_chunksize)\n    elif method == 2:\n        h = hurst_dsod(source)\n    else:\n        raise NotImplementedError('The method choose is not implemented.')\n\n    return None if np.isnan(h) else h\n\n\n@njit(cache=True)\ndef hurst_rs(x, min_chunksize, max_chunksize, num_chunksize):\n    \"\"\"Estimate the Hurst exponent using R/S method.\n    Estimates the Hurst (H) exponent using the R/S method from the time series.\n    The R/S method consists of dividing the series into pieces of equal size\n    `series_len` and calculating the rescaled range. This repeats the process\n    for several `series_len` values and adjusts data regression to obtain the H.\n    `series_len` will take values between `min_chunksize` and `max_chunksize`,\n    the step size from `min_chunksize` to `max_chunksize` can be controlled\n    through the parameter `step_chunksize`.\n    Parameters\n    ----------\n    x : 1D-array\n        A time series to calculate hurst exponent, must have more elements\n        than `min_chunksize` and `max_chunksize`.\n    min_chunksize : int\n        This parameter allow you control the minimum window size.\n    max_chunksize : int\n        This parameter allow you control the maximum window size.\n    num_chunksize : int\n        This parameter allow you control the size of the step from minimum to\n        maximum window size. Bigger step means fewer calculations.\n    out : 1-element-array, optional\n        one element array to store the output.\n    Returns\n    -------\n    H : float\n        A estimation of Hurst exponent.\n    References\n    ----------\n    Hurst, H. E. (1951). Long term storage capacity of reservoirs. ASCE\n    Transactions, 116(776), 770-808.\n    Alessio, E., Carbone, A., Castelli, G. et al. Eur. Phys. J. B (2002) 27:\n    197. http://dx.doi.org/10.1140/epjb/e20020150\n    \"\"\"\n    N = len(x)\n    max_chunksize += 1\n    rs_tmp = np.empty(N, dtype=np.float64)\n    chunk_size_list = np.linspace(min_chunksize, max_chunksize, num_chunksize) \\\n        .astype(np.int64)\n    rs_values_list = np.empty(num_chunksize, dtype=np.float64)\n\n    # 1. The series is divided into chunks of chunk_size_list size\n    for i in range(num_chunksize):\n        chunk_size = chunk_size_list[i]\n\n        # 2. it iterates on the indices of the first observation of each chunk\n        number_of_chunks = int(len(x) / chunk_size)\n\n        for idx in range(number_of_chunks):\n            # next means no overlapping\n            # convert index to index selection of each chunk\n            ini = idx * chunk_size\n            end = ini + chunk_size\n            chunk = x[ini:end]\n\n            # 2.1 Calculate the RS (chunk_size)\n            z = np.cumsum(chunk - np.mean(chunk))\n            rs_tmp[idx] = np.divide(\n                np.max(z) - np.min(z),  # range\n                np.nanstd(chunk)  # standar deviation\n            )\n\n        # 3. Average of RS(chunk_size)\n        rs_values_list[i] = np.nanmean(rs_tmp[:idx + 1])\n\n    # 4. calculate the Hurst exponent.\n    H, c = np.linalg.lstsq(\n        a=np.vstack((np.log(chunk_size_list), np.ones(num_chunksize))).T,\n        b=np.log(rs_values_list)\n    )[0]\n\n    return H\n\ndef hurst_dma(prices, min_chunksize=8, max_chunksize=200, num_chunksize=5):\n    \"\"\"Estimate the Hurst exponent using R/S method.\n\n    Estimates the Hurst (H) exponent using the DMA method from the time series.\n    The DMA method consists on calculate the moving average of size `series_len`\n    and subtract it to the original series and calculating the standard\n    deviation of that result. This repeats the process for several `series_len`\n    values and adjusts data regression to obtain the H. `series_len` will take\n    values between `min_chunksize` and `max_chunksize`, the step size from\n    `min_chunksize` to `max_chunksize` can be controlled through the parameter\n    `step_chunksize`.\n\n    Parameters\n    ----------\n    prices\n    min_chunksize\n    max_chunksize\n    num_chunksize\n\n    Returns\n    -------\n    hurst_exponent : float\n        Estimation of hurst exponent.\n\n    References\n    ----------\n    Alessio, E., Carbone, A., Castelli, G. et al. Eur. Phys. J. B (2002) 27:\n    197. https://dx.doi.org/10.1140/epjb/e20020150\n\n    \"\"\"\n    max_chunksize += 1\n    N = len(prices)\n    n_list = np.arange(min_chunksize, max_chunksize, num_chunksize, dtype=np.int64)\n    dma_list = np.empty(len(n_list))\n    factor = 1 / (N - max_chunksize)\n    # sweeping n_list\n    for i, n in enumerate(n_list):\n        b = np.divide([n - 1] + (n - 1) * [-1], n)  # do the same as:  y - y_ma_n\n        noise = np.power(signal.lfilter(b, 1, prices)[max_chunksize:], 2)\n        dma_list[i] = np.sqrt(factor * np.sum(noise))\n\n    H, const = np.linalg.lstsq(\n        a=np.vstack([np.log10(n_list), np.ones(len(n_list))]).T,\n        b=np.log10(dma_list), rcond=None\n    )[0]\n    return H\n\n\ndef hurst_dsod(x):\n    \"\"\"Estimate Hurst exponent on data timeseries.\n\n    The estimation is based on the discrete second order derivative. Consists on\n    get two different noise of the original series and calculate the standard\n    deviation and calculate the slope of two point with that values.\n    source: https://gist.github.com/wmvanvliet/d883c3fe1402c7ced6fc\n\n    Parameters\n    ----------\n    x : numpy array\n        time series to estimate the Hurst exponent for.\n\n    Returns\n    -------\n    h : float\n        The estimation of the Hurst exponent for the given time series.\n\n    References\n    ----------\n    Istas, J.; G. Lang (1994), “Quadratic variations and estimation of the local\n    Hölder index of data Gaussian process,” Ann. Inst. Poincaré, 33, pp. 407–436.\n\n\n    Notes\n    -----\n    This hurst_ets is data literal traduction of wfbmesti.m of waveleet toolbox\n    from matlab.\n    \"\"\"\n    y = np.cumsum(np.diff(x, axis=0), axis=0)\n\n    # second order derivative\n    b1 = [1, -2, 1]\n    y1 = signal.lfilter(b1, 1, y, axis=0)\n    y1 = y1[len(b1) - 1:]  # first values contain filter artifacts\n\n    # wider second order derivative\n    b2 = [1,  0, -2, 0, 1]\n    y2 = signal.lfilter(b2, 1, y, axis=0)\n    y2 = y2[len(b2) - 1:]  # first values contain filter artifacts\n\n    s1 = np.mean(y1 ** 2, axis=0)\n    s2 = np.mean(y2 ** 2, axis=0)\n\n    return 0.5 * np.log2(s2 / s1)\n"
  },
  {
    "path": "jesse/indicators/hwma.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, same_length, slice_candles\n\n\ndef hwma(candles: np.ndarray, na: float = 0.2, nb: float = 0.1, nc: float = 0.1, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    Holt-Winter Moving Average\n\n    :param candles: np.ndarray\n    :param na: float - default: 0.2\n    :param nb: float - default: 0.1\n    :param nc: float - default: 0.1\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    if not ((0 < na < 1) or (0 < nb < 1) or (0 < nc < 1)):\n        raise ValueError(\"Bad parameters. They have to be: 0 < na nb nc < 1\")\n\n    # Accept normal array too.\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    source_without_nan = source[~np.isnan(source)]\n    res = hwma_fast(source_without_nan, na, nb, nc)\n    res = same_length(candles, res)\n\n    return res if sequential else res[-1]\n\n\n@njit(cache=True)\ndef hwma_fast(source, na, nb, nc):\n    last_a = last_v = 0\n    last_f = source[0]\n    newseries = np.copy(source)\n    for i in range(source.size):\n        F = (1.0 - na) * (last_f + last_v + 0.5 * last_a) + na * source[i]\n        V = (1.0 - nb) * (last_v + last_a) + nb * (F - last_f)\n        A = (1.0 - nc) * last_a + nc * (V - last_v)\n        newseries[i] = F + V + 0.5 * A\n        last_a, last_f, last_v = A, F, V  # update values\n    return newseries\n"
  },
  {
    "path": "jesse/indicators/ichimoku_cloud.py",
    "content": "from collections import namedtuple\nimport numpy as np\nfrom jesse_rust import ichimoku_cloud as ichimoku_cloud_rust\n\nIchimokuCloud = namedtuple('IchimokuCloud', ['conversion_line', 'base_line', 'span_a', 'span_b'])\n\n\ndef ichimoku_cloud(candles: np.ndarray, conversion_line_period: int = 9, base_line_period: int = 26,\n                   lagging_line_period: int = 52, displacement: int = 26) -> IchimokuCloud:\n    \"\"\"\n    Ichimoku Cloud\n\n    :param candles: np.ndarray\n    :param conversion_line_period: int - default: 9\n    :param base_line_period: int - default: 26\n    :param lagging_line_period: int - default: 52\n    :param displacement: - default: 26\n\n    :return: IchimokuCloud(conversion_line, base_line, span_a, span_b)\n    \"\"\"\n    if candles.shape[0] < 80:\n        return IchimokuCloud(np.nan, np.nan, np.nan, np.nan)\n\n    if candles.shape[0] > 80:\n        candles = candles[-80:]\n        \n    conversion_line, base_line, span_a, span_b = ichimoku_cloud_rust(\n        candles, conversion_line_period, base_line_period, \n        lagging_line_period, displacement\n    )\n    \n    return IchimokuCloud(conversion_line, base_line, span_a, span_b)\n"
  },
  {
    "path": "jesse/indicators/ichimoku_cloud_seq.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\nfrom numpy.lib.stride_tricks import sliding_window_view\n\nfrom jesse.helpers import np_shift, slice_candles\n\nIchimokuCloud = namedtuple('IchimokuCloud',\n                           ['conversion_line', 'base_line', 'span_a', 'span_b', 'lagging_line', 'future_span_a',\n                            'future_span_b'])\n\n\ndef ichimoku_cloud_seq(candles: np.ndarray, conversion_line_period: int = 9, base_line_period: int = 26,\n                       lagging_line_period: int = 52, displacement: int = 26,\n                       sequential: bool = False) -> IchimokuCloud:\n    \"\"\"\n    Ichimoku Cloud\n\n    :param candles: np.ndarray\n    :param conversion_line_period: int - default: 9\n    :param base_line_period: int - default: 26\n    :param lagging_line_period: int - default: 52\n    :param displacement: - default: 26\n    :param sequential: bool - default: False\n\n    :return: IchimokuCloud\n    \"\"\"\n\n    if candles.shape[0] < lagging_line_period + displacement:\n        raise ValueError(\"Too few candles available for lagging_line_period + displacement.\")\n\n    candles = slice_candles(candles, sequential)\n\n    conversion_line = _line_helper(candles, conversion_line_period)\n    base_line = _line_helper(candles, base_line_period)\n    span_b_pre = _line_helper(candles, lagging_line_period)\n    span_b = np_shift(span_b_pre, displacement, fill_value=np.nan)\n    span_a_pre = (conversion_line + base_line) / 2\n    span_a = np_shift(span_a_pre, displacement, fill_value=np.nan)\n    lagging_line = np_shift(candles[:, 2], displacement - 1, fill_value=np.nan)\n\n    if sequential:\n        return IchimokuCloud(conversion_line, base_line, span_a, span_b, lagging_line, span_a_pre, span_b_pre)\n    else:\n        return IchimokuCloud(conversion_line[-1], base_line[-1], span_a[-1], span_b[-1], lagging_line[-1],\n                             span_a_pre[-1], span_b_pre[-1])\n\ndef _line_helper(candles, period):\n    small_ph = _rolling_max(candles[:, 3], period)\n    small_pl = _rolling_min(candles[:, 4], period)\n    return (small_ph + small_pl) / 2\n\ndef _rolling_max(a, period):\n    n = len(a)\n    if n < period:\n        return np.full(n, np.nan)\n    windows = sliding_window_view(a, window_shape=period)\n    r = np.empty(n, dtype=a.dtype)\n    r[:period-1] = np.nan\n    r[period-1:] = np.max(windows, axis=-1)\n    return r\n\ndef _rolling_min(a, period):\n    n = len(a)\n    if n < period:\n        return np.full(n, np.nan)\n    windows = sliding_window_view(a, window_shape=period)\n    r = np.empty(n, dtype=a.dtype)\n    r[:period-1] = np.nan\n    r[period-1:] = np.min(windows, axis=-1)\n    return r\n"
  },
  {
    "path": "jesse/indicators/ift_rsi.py",
    "content": "from typing import Union\nfrom jesse.indicators.wma import wma\nfrom jesse.indicators.rsi import rsi\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, same_length, slice_candles\n\ndef ift_rsi(candles: np.ndarray, rsi_period: int = 5, wma_period: int =9, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    Modified Inverse Fisher Transform applied on RSI\n\n    :param candles: np.ndarray\n    :param rsi_period: int - default: 5\n    :param wma_period: int - default: 9\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n\n    candles = slice_candles(candles, sequential)\n    source = get_candle_source(candles, source_type=source_type)\n\n    v1 = 0.1 * (rsi(source, rsi_period, sequential=True) - 50)\n    v2 = wma(v1, wma_period, sequential=True)\n\n    res = (((2*v2) ** 2 - 1) / ((2*v2) ** 2 + 1))\n\n    return same_length(candles, res) if sequential else res[-1]\n\n\n\n"
  },
  {
    "path": "jesse/indicators/itrend.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\nITREND = namedtuple('ITREND', ['signal', 'it', 'trigger'])\n\n\ndef itrend(candles: np.ndarray, alpha: float = 0.07, source_type: str = \"hl2\", sequential: bool = False) -> ITREND:\n    \"\"\"\n    Instantaneous Trendline\n\n    :param candles: np.ndarray\n    :param alpha: float - default: 0.07\n    :param source_type: str - default: \"hl2\"\n    :param sequential: bool - default: False\n\n    :return: ITREND(signal, it, trigger)\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n\n    signal, it, trigger = itrend_fast(source, alpha)\n\n    if sequential:\n        return ITREND(signal, it, trigger)\n    else:\n        return ITREND(signal[-1], it[-1], trigger[-1])\n\n\n@njit(cache=True)\ndef itrend_fast(source, alpha):\n    it = np.copy(source)\n    for i in range(2, 7):\n        it[i] = (source[i] + 2 * source[i - 1] + source[i - 2]) / 4\n    for i in range(7, source.shape[0]):\n        it[i] = (alpha - alpha ** 2 / 4) * source[i] \\\n                + alpha ** 2 / 2 * source[i - 1] \\\n                - (alpha - alpha ** 2 * 3 / 4) * source[i - 2] \\\n                + 2 * (1 - alpha) * it[i - 1] - (1 - alpha) ** 2 * it[i - 2]\n\n    # compute lead 2 trigger & signal\n    lag2 = np.roll(it, 20)\n    lag2[:20] = it[:20]\n    trigger = 2 * it - lag2\n    signal = (trigger > it) * 1 - (trigger < it) * 1\n    return signal, it, trigger\n"
  },
  {
    "path": "jesse/indicators/jma.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef jma(candles: np.ndarray, period:int=7, phase:float=50, power:int=2, source_type:str='close', sequential:bool=False) -> Union[\n  float, np.ndarray]:\n    \"\"\"\n    Jurik Moving Average\n    Port of: https://tradingview.com/script/nZuBWW9j-Jurik-Moving-Average/\n    \"\"\"\n\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    phaseRatio = 0.5 if phase < -100 else (2.5 if phase > 100 else phase / 100 + 1.5)\n    beta = 0.45 * (period - 1) / (0.45 * (period - 1) + 2)\n    alpha = pow(beta, power)\n\n    res = jma_helper(source, phaseRatio, beta, alpha)\n\n    return res if sequential else res[-1]\n\n\n@njit(cache=True)\ndef jma_helper(src, phaseRatio, beta, alpha):\n    jma_val = np.copy(src)\n\n    e0 = np.full_like(src, 0)\n    e1 = np.full_like(src, 0)\n    e2 = np.full_like(src, 0)\n\n    for i in range(1, src.shape[0]):\n      e0[i] = (1 - alpha) * src[i] + alpha * e0[i-1]\n      e1[i] = (src[i] - e0[i]) * (1 - beta) + beta * e1[i-1]\n      e2[i] = (e0[i] + phaseRatio * e1[i] - jma_val[i - 1]) * pow(1 - alpha, 2) + pow(alpha, 2) * e2[i - 1]\n      jma_val[i] = e2[i] + jma_val[i - 1]\n\n    return jma_val\n"
  },
  {
    "path": "jesse/indicators/jsa.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, np_shift, slice_candles\n\n\ndef jsa(candles: np.ndarray, period: int = 30, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    Jsa Moving Average\n\n    :param candles: np.ndarray\n    :param period: int - default: 30\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    res = (source + np_shift(source, period, np.nan)) / 2\n\n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/kama.py",
    "content": "from typing import Union\nimport numpy as np\nfrom jesse.helpers import get_candle_source, slice_candles\nfrom jesse_rust import kama as kama_rust\n\n\ndef kama(candles: np.ndarray, period: int = 14, fast_length: int = 2, slow_length: int = 30, \n         source_type: str = \"close\", sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    KAMA - Kaufman Adaptive Moving Average\n    \n    :param candles: np.ndarray\n    :param period: int - default: 14, lookback period for the calculation\n    :param fast_length: int - default: 2, fast EMA length for smoothing factor\n    :param slow_length: int - default: 30, slow EMA length for smoothing factor\n    :param source_type: str - default: \"close\", specifies the candle field\n    :param sequential: bool - default: False, if True returns the full array, otherwise only the last value\n\n    :return: float | np.ndarray\n    \"\"\"\n    if candles.ndim == 1:\n        src = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        src = get_candle_source(candles, source_type=source_type)\n\n    src = np.asarray(src, dtype=np.float64)\n    \n    result = kama_rust(src, period, fast_length, slow_length)\n    \n    return result if sequential else result[-1]\n"
  },
  {
    "path": "jesse/indicators/kaufmanstop.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import slice_candles\nfrom jesse.indicators.ma import ma\n\n\ndef kaufmanstop(candles: np.ndarray, period: int = 22, mult: float = 2, direction: str = \"long\", matype: int = 0,\n                sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    Perry Kaufman's Stops\n\n    :param candles: np.ndarray\n    :param period: int - default: 22\n    :param mult: float - default: 2\n    :param direction: str - default: long\n    :param matype: int - default: 0\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    if matype == 24 or matype == 29:\n        raise ValueError(\"VWMA (matype 24) and VWAP (matype 29) cannot be used in kaufmanstop indicator.\")\n\n    candles = slice_candles(candles, sequential)\n\n    high = candles[:, 3]\n    low = candles[:, 4]\n    \n    hl_diff = ma(high - low, period=period, matype=matype, sequential=True)\n\n    res = low - hl_diff * mult if direction == \"long\" else high + hl_diff * mult \n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/kdj.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\n\nfrom jesse.helpers import slice_candles\nfrom jesse.indicators.ma import ma\n\nKDJ = namedtuple('KDJ', ['k', 'd', 'j'])\n\ndef _rolling_max(a, window):\n    from numpy.lib.stride_tricks import sliding_window_view\n    a = np.asarray(a)\n    if len(a) < window:\n        return np.maximum.accumulate(a)\n    result = np.empty_like(a)\n    # Use vectorized cumulative maximum for the first window-1 elements\n    result[:window-1] = np.maximum.accumulate(a)[:window-1]\n    windows = sliding_window_view(a, window_shape=window)\n    result[window-1:] = np.max(windows, axis=1)\n    return result\n\ndef _rolling_min(a, window):\n    from numpy.lib.stride_tricks import sliding_window_view\n    a = np.asarray(a)\n    if len(a) < window:\n        return np.minimum.accumulate(a)\n    result = np.empty_like(a)\n    # Use vectorized cumulative minimum for the first window-1 elements\n    result[:window-1] = np.minimum.accumulate(a)[:window-1]\n    windows = sliding_window_view(a, window_shape=window)\n    result[window-1:] = np.min(windows, axis=1)\n    return result\n\ndef kdj(candles: np.ndarray, fastk_period: int = 9, slowk_period: int = 3, slowk_matype: int = 0,\n          slowd_period: int = 3, slowd_matype: int = 0, sequential: bool = False) -> KDJ:\n    \"\"\"\n    The KDJ Oscillator\n\n    :param candles: np.ndarray\n    :param fastk_period: int - default: 9\n    :param slowk_period: int - default: 3\n    :param slowk_matype: int - default: 0\n    :param slowd_period: int - default: 3\n    :param slowd_matype: int - default: 0\n    :param sequential: bool - default: False\n\n    :return: KDJ(k, d, j)\n    \"\"\"\n    if any(matype in (24, 29) for matype in (slowk_matype, slowd_matype)):\n        raise ValueError(\"VWMA (matype 24) and VWAP (matype 29) cannot be used in kdj indicator.\")\n    \n    candles = slice_candles(candles, sequential)\n\n    candles_close = candles[:, 2]\n    candles_high = candles[:, 3]\n    candles_low = candles[:, 4]\n\n    hh = _rolling_max(candles_high, fastk_period)\n    ll = _rolling_min(candles_low, fastk_period)\n\n    stoch = 100 * (candles_close - ll) / (hh - ll)\n    \n    k = ma(stoch, period=slowk_period, matype=slowk_matype, sequential=True)\n    d = ma(k, period=slowd_period, matype=slowd_matype, sequential=True)\n    j = 3 * k - 2 * d\n\n    if sequential:\n        return KDJ(k, d, j)\n    else:\n        return KDJ(k[-1], d[-1], j[-1])\n"
  },
  {
    "path": "jesse/indicators/keltner.py",
    "content": "from collections import namedtuple\nimport numpy as np\nfrom numba import njit\nfrom jesse.helpers import get_candle_source, slice_candles\nfrom jesse.indicators.ma import ma\n\nKeltnerChannel = namedtuple('KeltnerChannel', ['upperband', 'middleband', 'lowerband'])\n\n\n@njit\ndef _atr(high: np.ndarray, low: np.ndarray, close: np.ndarray, period: int) -> np.ndarray:\n    \"\"\"\n    Calculate ATR using Numba\n    \"\"\"\n    n = len(close)\n    tr = np.empty(n)\n    atr_vals = np.full(n, np.nan)\n    \n    # Calculate True Range\n    tr[0] = high[0] - low[0]\n    for i in range(1, n):\n        hl = high[i] - low[i]\n        hc = abs(high[i] - close[i-1])\n        lc = abs(low[i] - close[i-1])\n        tr[i] = max(max(hl, hc), lc)\n    \n    if n < period:\n        return atr_vals\n        \n    # First ATR value is the simple average of the first 'period' true ranges\n    atr_vals[period-1] = np.mean(tr[:period])\n    \n    # Calculate subsequent ATR values using Wilder's smoothing\n    for i in range(period, n):\n        atr_vals[i] = (atr_vals[i-1] * (period - 1) + tr[i]) / period\n        \n    return atr_vals\n\n\n@njit\ndef _calculate_keltner(source: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray, \n                      ma_values: np.ndarray, period: int, multiplier: float) -> tuple:\n    \"\"\"\n    Core Keltner Channel calculation using Numba\n    \"\"\"\n    atr_vals = _atr(high, low, close, period)\n    \n    up = ma_values + atr_vals * multiplier\n    low = ma_values - atr_vals * multiplier\n    \n    return up, ma_values, low\n\n\ndef keltner(candles: np.ndarray, period: int = 20, multiplier: float = 2, matype: int = 1, \n           source_type: str = \"close\", sequential: bool = False) -> KeltnerChannel:\n    \"\"\"\n    Keltner Channels using Numba for optimization\n\n    :param candles: np.ndarray\n    :param period: int - default: 20\n    :param multiplier: float - default: 2\n    :param matype: int - default: 1\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: KeltnerChannel(upperband, middleband, lowerband)\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n    if matype == 24 or matype == 29:\n        ma_values = ma(candles, period=period, matype=matype, source_type=source_type, sequential=True)\n    else:\n        ma_values = ma(source, period=period, matype=matype, sequential=True)\n    \n    up, mid, low = _calculate_keltner(\n        source, \n        candles[:, 3],  # high\n        candles[:, 4],  # low\n        candles[:, 2],  # close\n        ma_values,\n        period,\n        multiplier\n    )\n\n    if sequential:\n        return KeltnerChannel(up, mid, low)\n    else:\n        return KeltnerChannel(up[-1], mid[-1], low[-1])\n"
  },
  {
    "path": "jesse/indicators/kst.py",
    "content": "from collections import namedtuple\n\nfrom jesse.indicators.roc import roc as _roc\nfrom jesse.indicators.sma import sma as _sma\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\nKST = namedtuple('KST', ['line', 'signal'])\n\n\ndef kst(candles: np.ndarray, sma_period1: int = 10, sma_period2: int = 10, sma_period3: int = 10, sma_period4: int = 15,\n        roc_period1: int = 10, roc_period2: int = 15, roc_period3: int = 20, roc_period4: int = 30,\n        signal_period: int = 9, source_type: str = \"close\", sequential: bool = False) -> KST:\n    \"\"\"\n    Know Sure Thing (KST)\n\n    :param candles: np.ndarray\n    :param sma_period1: int - default: 10\n    :param sma_period2: int - default: 10\n    :param sma_period3: int - default: 10\n    :param sma_period4: int - default: 15\n    :param roc_period1: int - default: 10\n    :param roc_period2: int - default: 15\n    :param roc_period3: int - default: 20\n    :param roc_period4: int - default: 30\n    :param signal_period: int - default: 9\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: KST(line, signal)\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    source = get_candle_source(candles, source_type=source_type)\n\n    aroc1 = _sma(_roc(source, roc_period1, sequential=True), sma_period1, sequential=True)\n    aroc2 = _sma(_roc(source, roc_period2, sequential=True), sma_period2, sequential=True)\n    aroc3 = _sma(_roc(source, roc_period3, sequential=True), sma_period3, sequential=True)\n    aroc4 = _sma(_roc(source, roc_period4, sequential=True), sma_period4, sequential=True)\n\n    # Align arrays so that all have the same length as aroc4\n    aligned_len = aroc4.size\n    aroc1_aligned = aroc1[aroc1.size - aligned_len:]\n    aroc2_aligned = aroc2[aroc2.size - aligned_len:]\n    aroc3_aligned = aroc3[aroc3.size - aligned_len:]\n\n    line = aroc1_aligned + 2 * aroc2_aligned + 3 * aroc3_aligned + 4 * aroc4\n    signal = _sma(line, signal_period, sequential=True)\n\n    if sequential:\n        return KST(line, signal)\n    else:\n        return KST(line[-1], signal[-1])\n"
  },
  {
    "path": "jesse/indicators/kurtosis.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numpy.lib.stride_tricks import sliding_window_view\nfrom scipy import stats\n\nfrom jesse.helpers import get_candle_source, same_length, slice_candles\n\n\ndef kurtosis(candles: np.ndarray, period: int = 5, source_type: str = \"hl2\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    Skewness\n\n    :param candles: np.ndarray\n    :param period: int - default: 5\n    :param source_type: str - default: \"hl2\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n    swv = sliding_window_view(source, window_shape=period)\n    kurtosis_val = stats.kurtosis(swv, axis=-1)\n    res = same_length(source, kurtosis_val)\n\n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/kvo.py",
    "content": "from typing import Union\nimport numpy as np\nfrom jesse.helpers import slice_candles\nfrom jesse.indicators import ema\n\n\ndef kvo(candles: np.ndarray, short_period: int = 34, long_period: int = 55, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    KVO - Klinger Volume Oscillator\n\n    :param candles: np.ndarray\n    :param short_period: int - default: 34\n    :param long_period: int - default: 55\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    # Calculate HLC3\n    hlc3 = (candles[:, 3] + candles[:, 4] + candles[:, 2]) / 3\n\n    # Calculate momentum (change in HLC3)\n    mom = np.diff(hlc3, prepend=hlc3[0])\n\n    # Calculate trend\n    trend = np.zeros_like(mom)\n    trend[1:] = np.where(mom[1:] > 0, 1, np.where(mom[1:] < 0, -1, trend[:-1]))\n\n    # Daily Measurement (High - Low)\n    dm = candles[:, 3] - candles[:, 4]\n\n    # Cumulative Measurement\n    cm = np.zeros_like(dm)\n    for i in range(1, len(trend)):\n        if trend[i] == trend[i-1]:\n            cm[i] = cm[i-1] + dm[i]\n        else:\n            cm[i] = dm[i] + dm[i-1]\n\n    # Volume Force\n    volume = candles[:, 5]\n    with np.errstate(divide='ignore', invalid='ignore'):\n        expr = np.abs(np.divide(2 * dm, cm, out=np.zeros_like(dm, dtype=float), where=cm != 0) - 1)\n    vf = 100 * volume * trend * expr\n    vf[cm == 0] = 0\n\n    # Calculate EMAs\n    fast_ema = ema(vf, period=short_period, sequential=True)\n    slow_ema = ema(vf, period=long_period, sequential=True)\n    res = fast_ema - slow_ema\n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/linearreg.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\n@njit(cache=True)\ndef _fast_linearreg(source: np.ndarray, period: int) -> np.ndarray:\n    n = len(source)\n    result = np.full(n, np.nan)\n    x = np.arange(period)\n    mean_x = (period - 1) / 2.0\n    S_xx = np.sum((x - mean_x) ** 2)\n    \n    for i in range(n - period + 1):\n        window = source[i:i+period]\n        mean_y = np.mean(window)\n        S_xy = np.sum((window - mean_y) * (x - mean_x))\n        result[i + period - 1] = mean_y + ((period - 1) / 2.0) * (S_xy / S_xx)\n    \n    return result\n\n\ndef linearreg(candles: np.ndarray, period: int = 14, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    LINEARREG - Linear Regression\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    n = len(source)\n    if n >= period:\n        try:\n            from numpy.lib.stride_tricks import sliding_window_view\n            windows = sliding_window_view(source, window_shape=period)  # shape (n - period + 1, period)\n            mean_y = np.mean(windows, axis=1)\n            x = np.arange(period)\n            mean_x = (period - 1) / 2.0\n            S_xx = np.sum((x - mean_x) ** 2)\n            S_xy = np.sum((windows - mean_y[:, None]) * (x - mean_x), axis=1)\n            result = np.full(n, np.nan)\n            result[period-1:] = mean_y + ((period - 1) / 2.0) * (S_xy / S_xx)\n        except ImportError:\n            result = _fast_linearreg(source, period)\n    else:\n        result = np.full(n, np.nan)\n\n    return result if sequential else result[-1]\n"
  },
  {
    "path": "jesse/indicators/linearreg_angle.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef linearreg_angle(candles: np.ndarray, period: int = 14, source_type: str = \"close\", sequential: bool = False) -> \\\n        Union[float, np.ndarray]:\n    \"\"\"\n    LINEARREG_ANGLE - Linear Regression Angle\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    N = len(source)\n    res = np.full(N, np.nan)\n    if N >= period:\n        # Create rolling windows of length 'period'\n        windows = np.lib.stride_tricks.sliding_window_view(source, window_shape=period)\n        x = np.arange(period)\n        sum_x = x.sum()\n        sum_x2 = (x * x).sum()\n        common_den = period * sum_x2 - sum_x ** 2\n        sum_y = np.sum(windows, axis=1)\n        sum_xy = windows.dot(x)\n        slopes = (period * sum_xy - sum_x * sum_y) / common_den\n        angles = np.degrees(np.arctan(slopes))\n        res[period - 1:] = angles\n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/linearreg_intercept.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef linearreg_intercept(candles: np.ndarray, period: int = 14, source_type: str = \"close\", sequential: bool = False) -> \\\n        Union[float, np.ndarray]:\n    \"\"\"\n    LINEARREG_INTERCEPT - Linear Regression Intercept\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    # Compute linear regression intercept using vectorized operations \n    if len(source) < period:\n        if sequential:\n            return np.full_like(source, np.nan, dtype=float)\n        else:\n            return np.nan\n\n    x = np.arange(period, dtype=float)\n    x_mean = x.mean()\n    sxx = ((x - x_mean) ** 2).sum()\n\n    if sequential:\n        # Compute rolling windows using a vectorized approach\n        windows = np.lib.stride_tricks.sliding_window_view(source, window_shape=period)\n        means = windows.mean(axis=1)\n        slopes = np.dot(windows - means[:, None], (x - x_mean)) / sxx\n        intercepts = means - slopes * x_mean\n        result = np.concatenate((np.full(period - 1, np.nan), intercepts))\n        return result\n    else:\n        window = source[-period:]\n        mean_val = window.mean()\n        slope = np.dot(window - mean_val, (x - x_mean)) / sxx\n        intercept = mean_val - slope * x_mean\n        return intercept\n"
  },
  {
    "path": "jesse/indicators/linearreg_slope.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef linearreg_slope(candles: np.ndarray, period: int = 14, source_type: str = \"close\", sequential: bool = False) -> \\\n        Union[float, np.ndarray]:\n    \"\"\"\n    LINEARREG_SLOPE - Linear Regression Slope\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    n = len(source)\n    result = np.full(n, np.nan, dtype=float)\n    if n < period:\n        return result if sequential else result[-1]\n\n    # Create a constant x-axis for the regression\n    X = np.arange(period, dtype=float)\n    sumX = X.sum()\n    sumX2 = (X**2).sum()\n    denom = period * sumX2 - sumX**2\n\n    # Compute the rolling window slopes using vectorized operations\n    windows = np.lib.stride_tricks.sliding_window_view(source, window_shape=period)\n    sum_y = windows.sum(axis=1)\n    sum_xy = (windows * X).sum(axis=1)\n    slopes = (period * sum_xy - sumX * sum_y) / denom\n\n    result[period-1:] = slopes\n    \n    return result if sequential else result[-1]\n"
  },
  {
    "path": "jesse/indicators/lrsi.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import slice_candles\n\n\ndef lrsi(candles: np.ndarray, alpha: float = 0.2, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    RSI Laguerre Filter\n\n    :param candles: np.ndarray\n    :param alpha: float - default: 0.2\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    rsi = lrsi_fast(alpha, candles)\n\n    if sequential:\n        return rsi\n    else:\n        return None if np.isnan(rsi[-1]) else rsi[-1]\n\n\n@njit(cache=True)\ndef lrsi_fast(alpha, candles):\n    price = (candles[:, 3] + candles[:, 4]) / 2\n    l0 = np.copy(price)\n    l1 = np.copy(price)\n    l2 = np.copy(price)\n    l3 = np.copy(price)\n\n    for i in range(l0.shape[0]):\n        gamma = 1 - alpha\n        l0[i] = alpha * price[i] + gamma * l0[i - 1]\n        l1[i] = -gamma * l0[i] + l0[i - 1] + gamma * l1[i - 1]\n        l2[i] = -gamma * l1[i] + l1[i - 1] + gamma * l2[i - 1]\n        l3[i] = -gamma * l2[i] + l2[i - 1] + gamma * l3[i - 1]\n\n    rsi = np.zeros_like(price)\n    for i in range(candles[:, 2].shape[0]):\n        cu = 0\n        cd = 0\n\n        if l0[i] >= l1[i]:\n            cu = l0[i] - l1[i]\n        else:\n            cd = l1[i] - l0[i]\n\n        if l1[i] >= l2[i]:\n            cu = cu + l1[i] - l2[i]\n        else:\n            cd = cd + l2[i] - l1[i]\n\n        if l2[i] >= l3[i]:\n            cu = cu + l2[i] - l3[i]\n        else:\n            cd = cd + l3[i] - l2[i]\n\n        rsi[i] = 0 if cu + cd == 0 else cu / (cu + cd)\n    return rsi\n"
  },
  {
    "path": "jesse/indicators/ma.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef ma(candles: np.ndarray, period: int = 30, matype: int = 0,  source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    MA - (nearly) All Moving Averages of Jesse\n\n    :param candles: np.ndarray\n    :param period: int - default: 30\n    :param matype: int - default: 0\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n\n    0: sma (simple)\n    1: ema (exponential)\n    2: wma (weighted)\n    3: dema (double exponential)\n    4: tema (triple exponential)\n    5: trima (triangular)\n    6: kama (Kaufman adaptive)\n    9: fwma (Fibonacci's Weighted Moving Average)\n    10: hma (Hull Moving Average)\n    11: linearreg (Linear Regression)\n    12: wilders (Wilders Smoothing)\n    13: sinwma (Sine Weighted Moving Average)\n    14: supersmoother (Super Smoother Filter 2pole Butterworth)\n    15: supersmoother\\_3\\_pole(Super Smoother Filter 3pole Butterworth)\n    16: gauss (Gaussian Filter)\n    17: high\\_pass (1-pole High Pass Filter by John F. Ehlers)\n    18: high\\_pass\\_2\\_pole (2-pole High Pass Filter by John F. Ehlers)\n    19: ht\\_trendline (Hilbert Transform - Instantaneous Trendline)\n    20: jma (Jurik Moving Average)\n    21: reflex (Reflex indicator by John F. Ehlers)\n    22: trendflex (Trendflex indicator by John F. Ehlers)\n    23: smma (Smoothed Moving Average)\n    24: vwma (Volume Weighted Moving Average)\n    25: pwma (Pascals Weighted Moving Average)\n    26: swma (Symmetric Weighted Moving Average)\n    27: alma (Arnaud Legoux Moving Average)\n    28: hwma (Holt-Winter Moving Average)\n    29: vwap (Volume weighted average price)\n    30: nma (Natural Moving Average)\n    31: edcf (Ehlers Distance Coefficient Filter)\n    32: mwdx (MWDX Average)\n    33: maaq (Moving Average Adaptive Q)\n    34: srwma (Square Root Weighted Moving Average)\n    35: sqwma (Square Weighted Moving Average)\n    36: vpwma (Variable Power Weighted Moving Average)\n    37: cwma (Cubed Weighted Moving Average)\n    38: jsa (Jsa Moving Average)\n    39: epma (End Point Moving Average)\n\n    \"\"\"\n\n    candles = slice_candles(candles, sequential)\n\n    if matype == 0:\n        from . import sma\n        res = sma(candles, period, source_type=source_type, sequential=True)\n    elif matype == 1:\n        from . import ema\n        res = ema(candles, period, source_type=source_type, sequential=True)\n    elif matype == 2:\n        from . import wma\n        res = wma(candles, period, source_type=source_type, sequential=True)\n    elif matype == 3:\n        from . import dema\n        res = dema(candles, period, source_type=source_type, sequential=True)\n    elif matype == 4:\n        from . import tema\n        res = tema(candles, period, source_type=source_type, sequential=True)\n    elif matype == 5:\n        from . import trima\n        res = trima(candles, period, source_type=source_type, sequential=True)\n    elif matype == 6:\n        from . import kama\n        res = kama(candles, period, source_type=source_type, sequential=True)\n    elif matype == 9:\n        from . import fwma\n        res = fwma(candles, period, source_type=source_type, sequential=True)\n    elif matype == 10:\n        from . import hma\n        res = hma(candles, period, source_type=source_type,  sequential=True)\n    elif matype == 11:\n        from . import linearreg\n        res = linearreg(candles, period, source_type=source_type, sequential=True)\n    elif matype == 12:\n        from . import wilders\n        res = wilders(candles, period, source_type=source_type,  sequential=True)\n    elif matype == 13:\n        from . import sinwma\n        res = sinwma(candles, period, source_type=source_type,  sequential=True)\n    elif matype == 14:\n        from . import supersmoother\n        res = supersmoother(candles, period, source_type=source_type,  sequential=True)\n    elif matype == 15:\n        from . import supersmoother_3_pole\n        res = supersmoother_3_pole(candles, period, source_type=source_type,  sequential=True)\n    elif matype == 16:\n        from . import gauss\n        res = gauss(candles, period, source_type=source_type,  sequential=True)\n    elif matype == 17:\n        from . import high_pass\n        res = high_pass(candles, period, source_type=source_type,  sequential=True)\n    elif matype == 18:\n        from . import high_pass_2_pole\n        res = high_pass_2_pole(candles, period, source_type=source_type,  sequential=True)\n    elif matype == 20:\n        from . import jma\n        res = jma(candles, period, source_type=source_type,  sequential=True)\n    elif matype == 21:\n        from . import reflex\n        res = reflex(candles, period, source_type=source_type,  sequential=True)\n    elif matype == 22:\n        from . import trendflex\n        res = trendflex(candles, period, source_type=source_type,  sequential=True)\n    elif matype == 23:\n        from . import smma\n        res = smma(candles, period, source_type=source_type,  sequential=True)\n    elif matype == 24:\n        if len(candles.shape) == 1:\n          raise ValueError(\"vwma only works with normal candles.\")\n        from . import vwma\n        res = vwma(candles, period, source_type=source_type,  sequential=True)\n    elif matype == 25:\n        from . import pwma\n        res = pwma(candles, period, source_type=source_type,  sequential=True)\n    elif matype == 26:\n        from . import swma\n        res = swma(candles, period, source_type=source_type,  sequential=True)\n    elif matype == 27:\n        from . import alma\n        res = alma(candles, period, source_type=source_type,  sequential=True)\n    elif matype == 28:\n        from . import hwma\n        res = hwma(candles, source_type=source_type,  sequential=True)\n    elif matype == 29:\n        from . import vwap\n        if len(candles.shape) == 1:\n          raise ValueError(\"vwap only works with normal candles.\")\n        res = vwap(candles, source_type=source_type,  sequential=True)\n    elif matype == 30:\n        from . import nma\n        res = nma(candles, period, source_type=source_type,  sequential=True)\n    elif matype == 31:\n        from . import edcf\n        res = edcf(candles, period, source_type=source_type,  sequential=True)\n    elif matype == 32:\n        from . import mwdx\n        res = mwdx(candles, source_type=source_type,  sequential=True)\n    elif matype == 33:\n        from . import maaq\n        res = maaq(candles, period, source_type=source_type,  sequential=True)\n    elif matype == 34:\n        from . import srwma\n        res = srwma(candles, period, source_type=source_type,  sequential=True)\n    elif matype == 35:\n        from . import sqwma\n        res = sqwma(candles, period, source_type=source_type,  sequential=True)\n    elif matype == 36:\n        from . import vpwma\n        res = vpwma(candles, period, source_type=source_type,  sequential=True)\n    elif matype == 37:\n        from . import cwma\n        res = cwma(candles, period, source_type=source_type,  sequential=True)\n    elif matype == 38:\n        from . import jsa\n        res = jsa(candles, period, source_type=source_type,  sequential=True)\n    elif matype == 39:\n        from . import epma\n        res = epma(candles, period, source_type=source_type,  sequential=True)\n    elif matype == 7 or matype == 8 or matype == 19:\n        raise ValueError(\"Invalid matype value.\")\n\n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/maaq.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import (get_candle_source, np_shift, same_length,\n                           slice_candles)\n\n\ndef maaq(candles: np.ndarray, period: int = 11, fast_period: int = 2, slow_period: int = 30, source_type: str = \"close\", sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    Moving Average Adaptive Q\n\n    :param candles: np.ndarray\n    :param period: int - default: 11\n    :param fast_period: int - default: 2\n    :param slow_period: int - default: 30\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n\n    # Accept normal array too.\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    source = source[~np.isnan(source)]\n\n    diff = np.abs(source - np_shift(source, 1, np.nan))\n    signal = np.abs(source - np_shift(source, period, np.nan))\n    noise = np.concatenate((np.full(period - 1, np.nan, dtype=source.dtype), np.convolve(diff, np.ones(period, dtype=source.dtype), mode='valid')))\n\n    # Safely divide signal by noise\n    ratio = np.divide(signal, noise, out=np.zeros_like(signal), where=(noise != 0))\n\n    fastSc = 2 / (fast_period + 1)\n    slowSc = 2 / (slow_period + 1)\n    temp = np.power((ratio * fastSc) + slowSc, 2)\n\n    res = maaq_fast(source, temp, period)\n    res = same_length(candles, res)\n\n    return res if sequential else res[-1]\n\n\n@njit(cache=True)\ndef maaq_fast(source, temp, period):\n    newseries = np.copy(source)\n    for i in range(period, source.shape[0]):\n        newseries[i] = newseries[i - 1] + (temp[i] * (source[i] - newseries[i - 1]))\n    return newseries\n"
  },
  {
    "path": "jesse/indicators/mab.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\nfrom jesse.indicators.ma import ma\n\nMAB = namedtuple('MAB', ['upperband', 'middleband', 'lowerband'])\n\n\ndef mab(candles: np.ndarray, fast_period: int = 10, slow_period: int = 50, devup: float = 1, devdn: float = 1, fast_matype: int = 0, slow_matype: int = 0,\n                    source_type: str = \"close\",\n                    sequential: bool = False) -> MAB:\n    \"\"\"\n    Moving Average Bands\n\n    :param candles: np.ndarray\n    :param fast_period: int - default: 10\n    :param slow_period: int - default: 50\n    :param devup: float - default: 1\n    :param devdn: float - default: 1\n    :param fast_matype: int - default: 0\n    :param slow_matype: int - default: 0\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: MAB(upperband, middleband, lowerband)\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n\n    if any(matype in (24, 29) for matype in (fast_matype, slow_matype)):\n        fastEma = ma(candles, period=fast_period, matype=fast_matype, source_type=source_type, sequential=True)\n        slowEma = ma(candles, period=slow_period, matype=slow_matype, source_type=source_type, sequential=True)\n    else:\n        fastEma = ma(source, period=fast_period, matype=fast_matype, source_type=source_type, sequential=True)\n        slowEma = ma(source, period=slow_period, matype=slow_matype, source_type=source_type, sequential=True)\n    sqAvg = np.sum(np.power(fastEma - slowEma, 2)[-fast_period:]) / fast_period\n    dev = np.sqrt(sqAvg)\n\n    middlebands = fastEma\n    upperbands = slowEma + devup * dev\n    lowerbands = slowEma - devdn * dev\n\n\n    if sequential:\n        return MAB(upperbands, middlebands, lowerbands)\n    else:\n        return MAB(upperbands[-1], middlebands[-1], lowerbands[-1])\n"
  },
  {
    "path": "jesse/indicators/macd.py",
    "content": "from collections import namedtuple\nimport numpy as np\nfrom jesse.helpers import get_candle_source, slice_candles\nfrom jesse_rust import macd as macd_rust\n\nMACD = namedtuple('MACD', ['macd', 'signal', 'hist'])\n\n\ndef macd(candles: np.ndarray, fast_period: int = 12, slow_period: int = 26, signal_period: int = 9,\n         source_type: str = \"close\",\n         sequential: bool = False) -> MACD:\n    \"\"\"\n    MACD - Moving Average Convergence/Divergence\n\n    :param candles: np.ndarray\n    :param fast_period: int - default: 12\n    :param slow_period: int - default: 26\n    :param signal_period: int - default: 9\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: MACD(macd, signal, hist)\n    \"\"\"\n\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    if source.size == 0:\n        return MACD(np.nan, np.nan, np.nan) if not sequential else MACD(np.array([]), np.array([]), np.array([]))\n\n    macd_line, signal_line, hist = macd_rust(source, fast_period, slow_period, signal_period)\n\n    if sequential:\n        return MACD(macd_line, signal_line, hist)\n    else:\n        return MACD(macd_line[-1], signal_line[-1], hist[-1])\n"
  },
  {
    "path": "jesse/indicators/mama.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\nMAMA = namedtuple('MAMA', ['mama', 'fama'])\n\n\ndef mama(candles: np.ndarray, fastlimit: float = 0.5, slowlimit: float = 0.05, source_type: str = \"close\",\n         sequential: bool = False) -> MAMA:\n    \"\"\"\n    MAMA - MESA Adaptive Moving Average (custom implementation)\n\n\n    :param candles: np.ndarray of candle data or price series\n    :param fastlimit: float - default: 0.5\n    :param slowlimit: float - default: 0.05\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - if True, returns full arrays; else returns only the last value\n    :return: MAMA(mama, fama)\n    \"\"\"\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    n = len(source)\n    mama_arr = np.zeros(n)\n    fama_arr = np.zeros(n)\n\n    # Initialize first element\n    mama_arr[0] = source[0]\n    fama_arr[0] = source[0]\n\n    mama_arr, fama_arr = fast_mama(source, fastlimit, slowlimit)\n    \n    # Iterate over the series to compute the indicator recursively\n    if sequential:\n        return MAMA(mama_arr, fama_arr)\n    else:\n        return MAMA(mama_arr[-1], fama_arr[-1])\n\n@njit(cache=True)\ndef fast_mama(source, fastlimit, slowlimit):\n    n = len(source)\n    sp = np.zeros(n)\n    dt = np.zeros(n)\n    q1 = np.zeros(n)\n    i1_arr = np.zeros(n)\n    jI = np.zeros(n)\n    jq = np.zeros(n)\n    i2_arr = np.zeros(n)\n    q2_arr = np.zeros(n)\n    re_arr = np.zeros(n)\n    im_arr = np.zeros(n)\n    p1_arr = np.zeros(n)\n    p2_arr = np.zeros(n)\n    p3_arr = np.zeros(n)\n    p_arr = np.zeros(n)\n    spp = np.zeros(n)\n    phase = np.zeros(n)\n    dphase = np.zeros(n)\n    alpha_arr = np.zeros(n)\n    mama_arr = np.zeros(n)\n    fama_arr = np.zeros(n)\n    pi = 3.1415926\n    \n    for i in range(1, n):\n        # sp: weighted average of the source over 4 bars\n        sp[i] = (4 * source[i] +\n                 3 * (source[i-1] if i-1 >= 0 else 0) +\n                 2 * (source[i-2] if i-2 >= 0 else 0) +\n                 (source[i-3] if i-3 >= 0 else 0)) / 10.0\n        \n        dt[i] = (0.0962 * sp[i] +\n                 0.5769 * (sp[i-2] if i-2 >= 0 else 0) -\n                 0.5769 * (sp[i-4] if i-4 >= 0 else 0) -\n                 0.0962 * (sp[i-6] if i-6 >= 0 else 0)) * (0.075 * (p_arr[i-1] if i-1 >= 0 else 0) + 0.54)\n        \n        q1[i] = (0.0962 * dt[i] +\n                 0.5769 * (dt[i-2] if i-2 >= 0 else 0) -\n                 0.5769 * (dt[i-4] if i-4 >= 0 else 0) -\n                 0.0962 * (dt[i-6] if i-6 >= 0 else 0)) * (0.075 * (p_arr[i-1] if i-1 >= 0 else 0) + 0.54)\n        \n        i1_arr[i] = dt[i-3] if i-3 >= 0 else 0\n        \n        jI[i] = (0.0962 * i1_arr[i] +\n                 0.5769 * (i1_arr[i-2] if i-2 >= 0 else 0) -\n                 0.5769 * (i1_arr[i-4] if i-4 >= 0 else 0) -\n                 0.0962 * (i1_arr[i-6] if i-6 >= 0 else 0)) * (0.075 * (p_arr[i-1] if i-1 >= 0 else 0) + 0.54)\n        \n        jq[i] = (0.0962 * q1[i] +\n                 0.5769 * (q1[i-2] if i-2 >= 0 else 0) -\n                 0.5769 * (q1[i-4] if i-4 >= 0 else 0) -\n                 0.0962 * (q1[i-6] if i-6 >= 0 else 0)) * (0.075 * (p_arr[i-1] if i-1 >= 0 else 0) + 0.54)\n        \n        i2_temp = i1_arr[i] - jq[i]\n        q2_temp = q1[i] + jI[i]\n        \n        i2_arr[i] = 0.2 * i2_temp + 0.8 * (i2_arr[i-1] if i-1 >= 0 else 0)\n        q2_arr[i] = 0.2 * q2_temp + 0.8 * (q2_arr[i-1] if i-1 >= 0 else 0)\n        \n        re_temp = i2_arr[i] * (i2_arr[i-1] if i-1 >= 0 else 0) + q2_arr[i] * (q2_arr[i-1] if i-1 >= 0 else 0)\n        im_temp = i2_arr[i] * (q2_arr[i-1] if i-1 >= 0 else 0) - q2_arr[i] * (i2_arr[i-1] if i-1 >= 0 else 0)\n        \n        re_arr[i] = 0.2 * re_temp + 0.8 * (re_arr[i-1] if i-1 >= 0 else 0)\n        im_arr[i] = 0.2 * im_temp + 0.8 * (im_arr[i-1] if i-1 >= 0 else 0)\n        \n        if im_arr[i] != 0 and re_arr[i] != 0:\n            p1_arr[i] = 2 * pi / np.arctan(im_arr[i] / re_arr[i])\n        else:\n            p1_arr[i] = p_arr[i-1] if i-1 >= 0 else 0\n        \n        if p1_arr[i] > 1.5 * (p_arr[i-1] if i-1 >= 0 else 0):\n            p2 = 1.5 * (p_arr[i-1] if i-1 >= 0 else 0)\n        elif p1_arr[i] < 0.67 * (p_arr[i-1] if i-1 >= 0 else 0):\n            p2 = 0.67 * (p_arr[i-1] if i-1 >= 0 else 0)\n        else:\n            p2 = p1_arr[i]\n        p2_arr[i] = p2\n        \n        p3_arr[i] = 6 if p2_arr[i] < 6 else (50 if p2_arr[i] > 50 else p2_arr[i])\n        p_arr[i] = 0.2 * p3_arr[i] + 0.8 * (p_arr[i-1] if i-1 >= 0 else 0)\n        spp[i] = 0.33 * p_arr[i] + 0.67 * (spp[i-1] if i-1 >= 0 else 0)\n        \n        phase[i] = (180 / pi) * np.arctan(q1[i] / i1_arr[i]) if i1_arr[i] != 0 else 0\n        dphase_val = (phase[i-1] if i-1 >= 0 else 0) - phase[i]\n        dphase_val = dphase_val if dphase_val >= 1 else 1\n        dphase[i] = dphase_val\n        \n        alpha_temp = fastlimit / dphase[i]\n        if alpha_temp < slowlimit:\n            alpha_arr[i] = slowlimit\n        elif alpha_temp > fastlimit:\n            alpha_arr[i] = fastlimit\n        else:\n            alpha_arr[i] = alpha_temp\n        \n        mama_arr[i] = alpha_arr[i] * source[i] + (1 - alpha_arr[i]) * (mama_arr[i-1] if i-1 >= 0 else source[i])\n        fama_arr[i] = 0.5 * alpha_arr[i] * mama_arr[i] + (1 - 0.5 * alpha_arr[i]) * (fama_arr[i-1] if i-1 >= 0 else source[i])\n    \n    return mama_arr, fama_arr"
  },
  {
    "path": "jesse/indicators/marketfi.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import same_length, slice_candles\n\n\ndef marketfi(candles: np.ndarray, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    MARKETFI - Market Facilitation Index\n    Formula: (High - Low) / Volume\n\n    :param candles: np.ndarray\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    # high is at index 3, low at index 4, volume at index 5\n    res = (candles[:, 3] - candles[:, 4]) / candles[:, 5]\n\n    return same_length(candles, res) if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/mass.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import same_length, slice_candles\n\n\ndef mass(candles: np.ndarray, period: int = 5, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    MASS - Mass Index\n    The Mass Index uses the high-low range to identify trend reversals based on range expansions.\n    It suggests that a reversal of the current trend may be imminent when the range widens beyond \n    a certain point and then contracts.\n\n    :param candles: np.ndarray\n    :param period: int - default: 5\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    # Calculate high-low range\n    high_low_range = candles[:, 3] - candles[:, 4]  # high - low\n\n    # Calculate 9-period EMA of high-low range\n    ema1 = calc_ema(high_low_range, 9)\n\n    # Calculate 9-period EMA of the first EMA\n    ema2 = calc_ema(ema1, 9)\n\n    # Calculate EMA ratio\n    ratio = np.divide(ema1, ema2, out=np.zeros_like(ema1), where=ema2 != 0)\n\n    # Calculate period-sum of ratio using Numba for optimization\n    res = mass_sum(ratio, period)\n\n    return same_length(candles, res) if sequential else res[-1]\n\n\n@njit(cache=True)\ndef mass_sum(ratio: np.ndarray, period: int) -> np.ndarray:\n    \"\"\"Calculate the sum of the ratio over the specified period\"\"\"\n    result = np.zeros_like(ratio)\n    for i in range(period - 1, len(ratio)):\n        result[i] = np.sum(ratio[i-period+1:i+1])\n    return result\n\n\n@njit(cache=True)\ndef calc_ema(data, n):\n    alpha = 2.0 / (n + 1)\n    result = np.empty(data.shape[0])\n    result[0] = data[0]\n    for i in range(1, data.shape[0]):\n        result[i] = alpha * data[i] + (1 - alpha) * result[i-1]\n    return result\n\n"
  },
  {
    "path": "jesse/indicators/mcginley_dynamic.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef mcginley_dynamic(candles: np.ndarray, period: int = 10, k: float = 0.6, source_type: str = \"close\",\n                     sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    McGinley Dynamic\n\n    :param candles: np.ndarray\n    :param period: int - default: 10\n    :param k: float - default: 0.6\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n\n    # Accept normal array too.\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    mg = md_fast(source, k, period)\n\n    return mg if sequential else mg[-1]\n\n\n@njit(cache=True)\ndef md_fast(source, k, period):\n    mg = np.full_like(source, np.nan)\n    for i in range(source.size):\n        if i == 0:\n            mg[i] = source[i]\n        else:\n            mg[i] = mg[i - 1] + ((source[i] - mg[i - 1]) / max([(k * period * ((source[i] / mg[i - 1]) ** 4)), 1]))\n\n    return mg\n"
  },
  {
    "path": "jesse/indicators/mean_ad.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numpy.lib.stride_tricks import sliding_window_view\n\nfrom jesse.helpers import get_candle_source, same_length, slice_candles\n\n\ndef mean_ad(candles: np.ndarray, period: int = 5, source_type: str = \"hl2\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    Mean Absolute Deviation\n\n    :param candles: np.ndarray\n    :param period: int - default: 5\n    :param source_type: str - default: \"hl2\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    if len(candles.shape) == 1:\n      source = candles\n    else:\n      candles = slice_candles(candles, sequential)\n      source = get_candle_source(candles, source_type=source_type)\n\n    swv = sliding_window_view(source, window_shape=period)\n    abs_diff = np.absolute(source - same_length(source, np.mean(swv, -1)))\n    smv_abs_diff = sliding_window_view(abs_diff, window_shape=period)\n    mean_abs_deviation = np.nanmean(smv_abs_diff, -1)\n    res = same_length(source, mean_abs_deviation)\n\n    return res if sequential else res[-1]\n\n"
  },
  {
    "path": "jesse/indicators/median_ad.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numpy.lib.stride_tricks import sliding_window_view\nfrom scipy import stats\n\nfrom jesse.helpers import get_candle_source, same_length, slice_candles\n\n\ndef median_ad(candles: np.ndarray, period: int = 5, source_type: str = \"hl2\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    Median Absolute Deviation\n\n    :param candles: np.ndarray\n    :param period: int - default: 5\n    :param source_type: str - default: \"hl2\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n\n    if len(candles.shape) == 1:\n      source = candles\n    else:\n      candles = slice_candles(candles, sequential)\n      source = get_candle_source(candles, source_type=source_type)\n\n    swv = sliding_window_view(source, window_shape=period)\n    median_abs_deviation = stats.median_abs_deviation(swv, axis=-1)\n    res = same_length(source, median_abs_deviation)\n\n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/medprice.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import slice_candles\n\n\ndef medprice(candles: np.ndarray, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    MEDPRICE - Median Price\n\n    :param candles: np.ndarray\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    res = (candles[:, 3] + candles[:, 4]) / 2\n\n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/mfi.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import slice_candles\n\n\ndef mfi(candles: np.ndarray, period: int = 14, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    MFI - Money Flow Index\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    # Extract high, low, close and volume from candles array\n    high = candles[:, 3]\n    low = candles[:, 4]\n    close = candles[:, 2]\n    volume = candles[:, 5]\n\n    # Compute Typical Price for each candle\n    typical_prices = (high + low + close) / 3.0\n\n    # Compute Raw Money Flow = Typical Price * Volume\n    raw_mf = typical_prices * volume\n\n    # Initialize positive and negative flows\n    pos_flow = np.zeros_like(typical_prices)\n    neg_flow = np.zeros_like(typical_prices)\n    # For each candle (starting from 1) decide if it's positive or negative money flow\n    pos_flow[1:] = np.where(typical_prices[1:] > typical_prices[:-1], raw_mf[1:], 0)\n    neg_flow[1:] = np.where(typical_prices[1:] < typical_prices[:-1], raw_mf[1:], 0)\n\n    # Compute rolling sums over the specified period using convolution\n    roll_pos = np.convolve(pos_flow, np.ones(period), mode='valid')\n    roll_neg = np.convolve(neg_flow, np.ones(period), mode='valid')\n\n    # Compute Money Flow Ratio; handle division by zero by treating as infinity\n    with np.errstate(divide='ignore', invalid='ignore'):\n        ratio = np.divide(roll_pos, roll_neg, out=np.full_like(roll_pos, np.inf, dtype=float), where=roll_neg != 0)\n\n    # Compute MFI\n    mfi_values = 100 - (100 / (1 + ratio))\n\n    # Prepend NaNs for indices that couldn't compute a full period\n    pad = np.full(period - 1, np.nan)\n    mfi_values = np.concatenate((pad, mfi_values))\n\n    return mfi_values if sequential else mfi_values[-1]\n"
  },
  {
    "path": "jesse/indicators/midpoint.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef midpoint(candles: np.ndarray, period: int = 14, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    MIDPOINT - MidPoint over period\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n\n    # If there is not enough data, return nan values\n    if len(source) < period:\n        if sequential:\n            return np.full_like(source, np.nan)\n        else:\n            return np.nan\n\n    # Use a sliding window to compute the midpoint: (max + min) / 2 over each rolling window\n    windows = np.lib.stride_tricks.sliding_window_view(source, period)\n    midpoints = (np.max(windows, axis=1) + np.min(windows, axis=1)) / 2.0\n\n    # Pad the beginning with nans to match the input length if sequential is True\n    if sequential:\n        result = np.empty_like(source, dtype=float)\n        result[:period - 1] = np.nan\n        result[period - 1:] = midpoints\n        return result\n    else:\n        return midpoints[-1]\n"
  },
  {
    "path": "jesse/indicators/midprice.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom jesse.helpers import slice_candles\nfrom numpy.lib.stride_tricks import sliding_window_view\n\n\ndef midprice(candles: np.ndarray, period: int = 14, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    MIDPRICE - Midpoint Price over period\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    high = candles[:, 3]\n    low = candles[:, 4]\n\n    if sequential:\n        n = len(candles)\n        if n < period:\n            return np.full(n, np.nan)\n\n        # Create sliding windows for high and low prices\n        windows_high = sliding_window_view(high, window_shape=period)\n        windows_low = sliding_window_view(low, window_shape=period)\n\n        # Calculate midprice for each window\n        midprices = (np.max(windows_high, axis=1) + np.min(windows_low, axis=1)) / 2\n\n        # Prepend NaN for the initial period-1 values to match the typical TA-Lib output length\n        result = np.concatenate((np.full(period - 1, np.nan), midprices))\n        return result\n    else:\n        if len(candles) < period:\n            return np.nan\n        return (np.max(high[-period:]) + np.min(low[-period:])) / 2\n"
  },
  {
    "path": "jesse/indicators/minmax.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\nfrom scipy.signal import argrelextrema\n\nfrom jesse.helpers import np_ffill, slice_candles\n\nEXTREMA = namedtuple('EXTREMA', ['is_min', 'is_max', 'last_min', 'last_max'])\n\n\ndef minmax(candles: np.ndarray, order: int = 3, sequential: bool = False) -> EXTREMA:\n    \"\"\"\n    minmax - Get extrema\n\n    :param candles: np.ndarray\n    :param order: int - default = 3\n    :param sequential: bool - default: False\n\n    :return: EXTREMA(min, max, last_min, last_max)\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    low = candles[:, 4]\n    high = candles[:, 3]\n\n    minimaIdxs = argrelextrema(low, np.less, order=order, axis=0)\n    maximaIdxs = argrelextrema(high, np.greater, order=order, axis=0)\n\n    is_min = np.full_like(low, np.nan)\n    is_max = np.full_like(high, np.nan)\n\n    # set the extremas with the matching price\n    is_min[minimaIdxs] = low[minimaIdxs]\n    is_max[maximaIdxs] = high[maximaIdxs]\n\n    # forward fill Nan values to get the last extrema\n    last_min = np_ffill(is_min)\n    last_max = np_ffill(is_max)\n\n    if sequential:\n        return EXTREMA(is_min, is_max, last_min, last_max)\n    else:\n        return EXTREMA(is_min[-(order+1)], is_max[-(order+1)], last_min[-1], last_max[-1])\n"
  },
  {
    "path": "jesse/indicators/mom.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef mom(candles: np.ndarray, period: int = 10, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    MOM - Momentum\n\n    :param candles: np.ndarray\n    :param period: int - default: 10\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n    res = np.empty_like(source, dtype=float)\n    if len(source) >= period:\n        res[:period] = np.nan\n        res[period:] = source[period:] - source[:-period]\n    else:\n        res[:] = np.nan\n\n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/mwdx.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef mwdx(candles: np.ndarray, factor: float = 0.2, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    MWDX Average\n\n    :param candles: np.ndarray\n    :param factor: float - default: 0.2\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n\n    # Accept normal array too.\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    val2 = (2 / factor) - 1\n    fac = 2 / (val2 + 1)\n\n    res = mwdx_fast(source, fac)\n\n    return res if sequential else res[-1]\n\n\n@njit(cache=True)\ndef mwdx_fast(source, fac):\n    newseries = np.copy(source)\n    for i in range(1, source.shape[0]):\n        newseries[i] = (fac * source[i]) + ((1 - fac) * newseries[i - 1])\n    return newseries\n"
  },
  {
    "path": "jesse/indicators/natr.py",
    "content": "import numpy as np\nfrom typing import Union\n\nfrom jesse.helpers import slice_candles\n\n\ndef natr(candles: np.ndarray, period: int = 14, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    NATR - Normalized Average True Range\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    high = candles[:, 3]\n    low = candles[:, 4]\n    close = candles[:, 2]\n\n    # Compute True Range (TR)\n    n = len(candles)\n    tr = np.empty(n, dtype=float)\n    tr[0] = high[0] - low[0]\n    if n > 1:\n        diff1 = high[1:] - low[1:]\n        diff2 = np.abs(high[1:] - close[:-1])\n        diff3 = np.abs(low[1:] - close[:-1])\n        tr[1:] = np.maximum(np.maximum(diff1, diff2), diff3)\n\n    # Initialize ATR array\n    atr = np.empty(n, dtype=float)\n    atr[:period-1] = np.nan  # not enough data for smoothing\n    base = np.mean(tr[:period])\n    atr[period-1] = base\n\n    # If there's no additional data after the initial period, return the current NATR\n    if n == period:\n        result = (base / close[period-1]) * 100\n        return result if not sequential else np.concatenate((np.full(period-1, np.nan), [result]))\n\n    # Wilder's smoothing is equivalent to an exponential moving average with alpha = 1/period\n    alpha = 1.0 / period\n    beta = 1 - alpha\n    # For indices from period to end, we compute the recursive ATR as:\n    # ATR[t] = beta^(t - (period-1)) * base + sum_{i=period}^{t} (alpha * beta^(t-i) * tr[i])\n    # We vectorize the summation using convolution.\n    x = tr[period:]\n    m = len(x)\n    weights = alpha * beta ** np.arange(m)\n    conv = np.convolve(x, weights, mode='full')[:m]\n    base_adjustment = beta ** (np.arange(1, m + 1)) * base\n    atr[period:] = base_adjustment + conv\n\n    natr_arr = (atr / close) * 100\n    return natr_arr if sequential else natr_arr[-1]\n"
  },
  {
    "path": "jesse/indicators/nma.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef nma(candles: np.ndarray, period: int = 40, source_type: str = \"close\", sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    Natural Moving Average\n\n    :param candles: np.ndarray\n    :param period: int - default: 40\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n\n    # Accept normal array too.\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    res = nma_fast(source, period)\n\n    return res if sequential else res[-1]\n\n@njit(cache=True)\ndef nma_fast(source, period):\n    # Ensure source values are positive before taking log\n    source = np.clip(source, a_min=1e-10, a_max=None)\n    ln = np.log(source) * 1000\n    newseries = np.full_like(source, np.nan)\n\n    for j in range(period + 1, source.shape[0]):\n        num = 0.0\n        denom = 0.0\n        for i in range(period):\n            oi = np.abs(ln[j - i] - ln[j - i - 1])\n            num += oi * (np.sqrt(i + 1) - np.sqrt(i))\n            denom += oi\n\n        ratio = num / denom if denom != 0 else 0\n        newseries[j] = (source[j - i] * ratio) + (source[j - i - 1] * (1 - ratio))\n\n    return newseries\n"
  },
  {
    "path": "jesse/indicators/nvi.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, same_length, slice_candles\n\n\n@njit\ndef _nvi_fast(source: np.ndarray, volume: np.ndarray) -> np.ndarray:\n    res = np.ones_like(source)\n    res[0] = 1000  # Starting value (conventional)\n\n    for i in range(1, len(source)):\n        if volume[i] < volume[i-1]:\n            res[i] = res[i-1] * (1 + ((source[i] - source[i-1]) / source[i-1]))\n        else:\n            res[i] = res[i-1]\n\n    return res\n\n\ndef nvi(candles: np.ndarray, source_type: str = \"close\", sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    NVI - Negative Volume Index\n\n    The Negative Volume Index (NVI) is a cumulative indicator that uses the change in volume to decide when to track the price of an asset. \n    It suggests that smart money is at work when volume decreases and vice versa.\n\n    :param candles: np.ndarray\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n    res = _nvi_fast(source, candles[:, 5])\n\n    return same_length(candles, res) if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/obv.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import slice_candles\n\n\ndef obv(candles: np.ndarray, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    OBV - On Balance Volume\n\n    :param candles: np.ndarray\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    close = candles[:, 2]\n    volume = candles[:, 5]\n    # Compute the change in OBV: add volume if price increases, subtract if decreases, else 0\n    delta = np.where(close[1:] > close[:-1], volume[1:], np.where(close[1:] < close[:-1], -volume[1:], 0))\n    obv_arr = np.empty_like(volume, dtype=np.float64)\n    obv_arr[0] = volume[0]\n    if len(volume) > 1:\n        obv_arr[1:] = volume[0] + np.cumsum(delta)\n    return obv_arr if sequential else obv_arr[-1]\n"
  },
  {
    "path": "jesse/indicators/pfe.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom numba import njit\nfrom jesse.helpers import get_candle_source, same_length, slice_candles\n\n@njit(cache=True)\ndef numpy_ema(data: np.ndarray, period: int) -> np.ndarray:\n    alpha = 2 / (period + 1)\n    # Initialize the EMA with the first value\n    ema = np.zeros_like(data)\n    ema[0] = data[0]\n    # Calculate EMA using vectorized operations\n    for i in range(1, len(data)):\n        ema[i] = data[i] * alpha + ema[i-1] * (1 - alpha)\n    return ema\n\n\ndef rolling_sum(arr: np.ndarray, window: int) -> np.ndarray:\n    # Create a rolling window sum using convolution\n    window_ones = np.ones(window)\n    sum_result = np.convolve(arr, window_ones, mode='valid')\n    # Pad the beginning to maintain array length\n    padding = np.array([np.nan] * (len(arr) - len(sum_result)))\n    return np.concatenate((padding, sum_result))\n\n\ndef pfe(candles: np.ndarray, period: int = 10, smoothing: int = 5, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    Polarized Fractal Efficiency (PFE)\n\n    :param candles: np.ndarray\n    :param period: int - default: 10\n    :param smoothing: int - default: 5\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n\n    ln = period - 1\n    diff = np.diff(source, ln)\n    a = np.sqrt(np.power(diff, 2) + np.power(period, 2))\n    \n    # Calculate rolling sum of sqrt(1 + diff^2)\n    diff_1 = np.diff(source, 1)\n    sqrt_term = np.sqrt(1 + np.power(diff_1, 2))\n    b = rolling_sum(sqrt_term, ln)\n    \n    pfetmp = 100 * same_length(source, a) / same_length(source, b)\n    # Replace NaN values with 0 to avoid issues in calculations\n    pfetmp = np.nan_to_num(pfetmp, 0)\n    \n    # Calculate the sign based on diff\n    sign = np.where(same_length(source, diff) > 0, 1, -1)\n    res = numpy_ema(sign * pfetmp, smoothing)\n\n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/pivot.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\n\nfrom jesse.helpers import slice_candles\n\nPIVOT = namedtuple('PIVOT', ['r4', 'r3', 'r2', 'r1', 'pp', 's1', 's2', 's3', 's4'])\n\n\ndef pivot(candles: np.ndarray, mode: int = 0, sequential: bool = False) -> PIVOT:\n    \"\"\"\n    Pivot Points\n\n    :param candles: np.ndarray\n    :param mode: int - default = 0\n    :param sequential: bool - default: False\n\n    :return: PIVOT(r4, r3, r2, r1, pp, s1, s2, s3, s4)\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    high = candles[:, 3]\n    low = candles[:, 4]\n    close = candles[:, 2]\n    open = candles[:, 1]\n\n    s1 = np.full_like(close, np.nan)\n    s2 = np.copy(s1)\n    s3 = np.copy(s1)\n    s4 = np.copy(s1)\n    p = np.copy(s1)\n    r1 = np.copy(s1)\n    r2 = np.copy(s1)\n    r3 = np.copy(s1)\n    r4 = np.copy(s1)\n\n    # Standard Pivot Points / Floor Pivot Points\n    if mode == 0:\n        p = (high + low + close) / 3\n        s1 = (2 * p) - high\n        s2 = p - (high - low)\n        r1 = (2 * p) - low\n        r2 = p + (high - low)\n    # Fibonacci Pivot Points\n    elif mode == 1:\n        p = (high + low + close) / 3\n        s1 = p - 0.382 * (high - low)\n        s2 = p - 0.618 * (high - low)\n        s3 = p - 1 * (high - low)\n        r1 = p + 0.382 * (high - low)\n        r2 = p + 0.618 * (high - low)\n        r3 = p + 1 * (high - low)\n    # Demark Pivot Points\n    elif mode == 2:\n        p = np.where(close < open, (high + 2 * low + close) / 4, np.where(close > open, (2 * high + low + close) / 4,\n                                                                          np.where(close == open,\n                                                                                   (high + low + 2 * close) / 4,\n                                                                                   np.nan)))\n        s1 = np.where(close < open, (high + 2 * low + close) / 2 - high,\n                      np.where(close > open, (2 * high + low + close) / 2 - high,\n                               np.where(close == open, (high + low + 2 * close) / 2 - high, np.nan)))\n        r1 = np.where(close < open, (high + 2 * low + close) / 2 - low,\n                      np.where(close > open, (2 * high + low + close) / 2 - low,\n                               np.where(close == open, (high + low + 2 * close) / 2 - low, np.nan)))\n    elif mode == 3:\n        # Camarilla Pivot Points\n        p = (high + low + close) / 3\n        r4 = (0.55 * (high - low)) + close\n        r3 = (0.275 * (high - low)) + close\n        r2 = (0.183 * (high - low)) + close\n        r1 = (0.0916 * (high - low)) + close\n        s1 = close - (0.0916 * (high - low))\n        s2 = close - (0.183 * (high - low))\n        s3 = close - (0.275 * (high - low))\n        s4 = close - (0.55 * (high - low))\n    # Woodie's Pivot Points\n    elif mode == 4:\n        p = (high + low + (2 * open)) / 4\n        r3 = high + 2 * (p - low)\n        r4 = r3 + (high - low)\n        r2 = p + (high - low)\n        r1 = (2 * p) - low\n        s1 = (2 * p) - high\n        s2 = p - (high - low)\n        s3 = low - 2 * (high - p)\n        s4 = s3 - (high - low)\n\n    if sequential:\n        return PIVOT(r4, r3, r2, r1, p, s1, s2, s3, s4)\n    else:\n        return PIVOT(r4[-1], r3[-1], r2[-1], r1[-1], p[-1], s1[-1], s2[-1], s3[-1], s4[-1])\n"
  },
  {
    "path": "jesse/indicators/pma.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\nPMA = namedtuple('PMA', ['predict', 'trigger'])\n\ndef pma(candles: np.ndarray, source_type: str = \"hl2\", sequential: bool = False) -> PMA:\n    \"\"\"\n    Ehlers Predictive Moving Average\n\n    :param candles: np.ndarray\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n\n    # Accept normal array too.\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    predict, trigger = pma_fast(source)\n\n    if sequential:\n        return PMA(predict, trigger)\n    else:\n        return PMA(predict[-1], trigger[-1])\n\n\n@njit(cache=True)\ndef pma_fast(source):\n    predict = np.full_like(source, np.nan)\n    trigger = np.full_like(source, np.nan)\n    wma1 = np.zeros_like(source)\n    for j in range(6, source.shape[0]):\n        wma1[j] = ((7 * source[j]) + (6 * source[j -1]) + (5 * source[j -2]) + (4 * source[j -3]) + (3 * source[j -4]) + (2 * source[j -5]) + source[j -6]) / 28\n        wma2 = ((7 * wma1[j]) + (6 * wma1[j-1]) + (5 * wma1[j -2]) + (4 * wma1[j -3]) + (3 * wma1[j -4]) + (2 * wma1[j -5]) + wma1[j -6]) / 28\n        predict[j] = (2 * wma1[j]) - wma2\n        trigger[j] = ((4 * predict[j]) + (3 * predict[j-1]) + (2 * predict[j -2]) + predict[j -3]) / 10\n    return predict, trigger\n"
  },
  {
    "path": "jesse/indicators/ppo.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\nfrom jesse.indicators.ma import ma\n\n\ndef ppo(candles: np.ndarray, fast_period: int = 12, slow_period: int = 26, matype: int = 0, source_type: str = \"close\",\n        sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    PPO - Percentage Price Oscillator\n\n    :param candles: np.ndarray\n    :param fast_period: int - default: 12\n    :param slow_period: int - default: 26\n    :param matype: int - default: 0\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n\n    if matype == 24 or matype == 29:\n        fast_ma = ma(candles, period=fast_period, matype=matype, source_type=source_type, sequential=True)\n        slow_ma = ma(candles, period=slow_period, matype=matype, source_type=source_type, sequential=True)\n    else:\n        fast_ma = ma(source, period=fast_period, matype=matype, sequential=True)\n        slow_ma = ma(source, period=slow_period, matype=matype, sequential=True)\n    res = 100 * (fast_ma - slow_ma) / slow_ma\n\n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/pvi.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, same_length, slice_candles\n\n\n@njit\ndef _pvi_fast(source: np.ndarray, volume: np.ndarray) -> np.ndarray:\n    \"\"\"\n    Numba optimized PVI calculation\n    \"\"\"\n    pvi = np.zeros_like(source)\n    pvi[0] = 1000  # Starting value\n\n    for i in range(1, len(source)):\n        if volume[i] > volume[i-1]:\n            pvi[i] = pvi[i-1] * (1 + (source[i] - source[i-1]) / source[i-1])\n        else:\n            pvi[i] = pvi[i-1]\n\n    return pvi\n\n\ndef pvi(candles: np.ndarray, source_type: str = \"close\", sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    PVI - Positive Volume Index\n\n    The Positive Volume Index (PVI) focuses on days when volume increases from the previous day.\n    The premise behind the PVI is that price changes accompanied by increased volume are more significant.\n\n    :param candles: np.ndarray\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n    res = _pvi_fast(np.ascontiguousarray(source), np.ascontiguousarray(candles[:, 5]))\n\n    return same_length(candles, res) if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/pwma.py",
    "content": "from functools import reduce\nfrom operator import mul\nfrom typing import Union\n\nimport numpy as np\nfrom numpy.lib.stride_tricks import sliding_window_view\n\nfrom jesse.helpers import get_candle_source, same_length, slice_candles\n\n\ndef pwma(candles: np.ndarray, period: int = 5, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    Pascals Weighted Moving Average (PWMA)\n\n    :param candles: np.ndarray\n    :param period: int - default: 5\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n\n    # Accept normal array too.\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    triangle = pascals_triangle(n=period - 1)\n    swv = sliding_window_view(source, window_shape=period)\n    res = np.average(swv, weights=triangle, axis=-1)\n\n    return same_length(candles, res) if sequential else res[-1]\n\n\ndef pascals_triangle(n: int = None) -> np.ndarray:\n    \"\"\"Pascal's Triangle\n    Returns a numpy array of the nth row of Pascal's Triangle.\n    n=4  => triangle: [1, 4, 6, 4, 1]\n         => weighted: [0.0625, 0.25, 0.375, 0.25, 0.0625]\n    \"\"\"\n    n = int(np.fabs(n)) if n is not None else 0\n\n    # Calculation\n    triangle = np.array([combination(n=n, r=i) for i in range(n + 1)])\n    triangle_sum = np.sum(triangle)\n    return triangle / triangle_sum\n\n\ndef combination(n, r) -> int:\n    \"\"\"https://stackoverflow.com/questions/4941753/is-there-a-math-ncr-function-in-python\"\"\"\n    n = int(np.fabs(n))\n    r = int(np.fabs(r))\n\n    r = min(n, n - r)\n    if r == 0:\n      return 1\n\n    numerator = reduce(mul, range(n, n - r, -1), 1)\n    denominator = reduce(mul, range(1, r + 1), 1)\n    return numerator // denominator\n"
  },
  {
    "path": "jesse/indicators/qstick.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import same_length, slice_candles\n\n\n@njit\ndef _qstick_fast(open_prices: np.ndarray, close_prices: np.ndarray, period: int) -> np.ndarray:\n    \"\"\"\n    Calculate QStick values using Numba for optimization\n    \"\"\"\n    # Pre-allocate output array\n    qstick_values = np.zeros_like(open_prices, dtype=np.float64)\n\n    # Calculate close-open difference\n    diff = close_prices - open_prices\n\n    # Calculate moving average of the difference\n    for i in range(period - 1, len(diff)):\n        qstick_values[i] = np.mean(diff[i - period + 1:i + 1])\n\n    return qstick_values\n\n\ndef qstick(candles: np.ndarray, period: int = 5, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    QStick - Moving average of the difference between closing and opening prices\n\n    :param candles: np.ndarray\n    :param period: int - default: 5\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    res = _qstick_fast(\n        np.ascontiguousarray(candles[:, 1]),  # open\n        np.ascontiguousarray(candles[:, 2]),  # close\n        period\n    )\n\n    return same_length(candles, res) if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/reflex.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\nfrom .supersmoother import supersmoother_fast\n\n\ndef reflex(candles: np.ndarray, period: int = 20, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    Reflex indicator by John F. Ehlers\n\n    :param candles: np.ndarray\n    :param period: int - default: 20\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n\n    ssf = supersmoother_fast(source, period / 2)\n    rf = reflex_fast(ssf, period)\n\n    if sequential:\n        return rf\n    else:\n        return None if np.isnan(rf[-1]) else rf[-1]\n\n\n@njit(cache=True)\ndef reflex_fast(ssf, period):\n    rf = np.full_like(ssf, 0)\n    ms = np.full_like(ssf, 0)\n    sums = np.full_like(ssf, 0)\n    for i in range(ssf.shape[0]):\n        if i >= period:\n            slope = (ssf[i - period] - ssf[i]) / period\n            my_sum = 0\n            for t in range(1, period + 1):\n                my_sum = my_sum + (ssf[i] + t * slope) - ssf[i - t]\n            my_sum /= period\n            sums[i] = my_sum\n\n            ms[i] = 0.04 * sums[i] * sums[i] + 0.96 * ms[i - 1]\n            if ms[i] > 0:\n                rf[i] = sums[i] / np.sqrt(ms[i])\n    return rf\n"
  },
  {
    "path": "jesse/indicators/rma.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import guvectorize, njit\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef rma(candles: np.ndarray, length: int = 14, source_type=\"close\", sequential=False) -> \\\n        Union[float, np.ndarray]:\n    \"\"\"\n    Moving average used in RSI. It is the exponentially weighted moving average with alpha = 1 / length.\n    RETURNS Exponential moving average of x with alpha = 1 / y.\n    https://www.tradingview.com/pine-script-reference/#fun_rma\n\n    :param candles: np.ndarray\n    :param length: int - default: 14\n    :param source_type: str - default: close\n    :param sequential: bool - default: False\n    :return: Union[float, np.ndarray]\n    \"\"\"\n\n    if length < 1:\n        raise ValueError('Bad parameters.')\n\n    # Accept normal array too.\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    res = rma_fast(source, length)\n    return res if sequential else res[-1]\n\n\n@njit(cache=True)\ndef rma_fast(source, _length):\n    alpha = 1 / _length\n    newseries = np.copy(source)\n    out = np.full_like(source, np.nan)\n    for i in range(source.size):\n        if np.isnan(newseries[i - 1]):\n            # Sma in Numba\n            asum = 0.0\n            count = 0\n            for i in range(_length):\n                asum += source[i]\n                count += 1\n                out[i] = asum / count\n            for i in range(_length, len(source)):\n                asum += source[i] - source[i - _length]\n                out[i] = asum / count\n            newseries[i] = out[-1]\n        else:\n            prev = newseries[i - 1]\n            if np.isnan(prev):\n                prev = 0\n            newseries[i] = alpha * source[i] + (1 - alpha) * prev\n    return newseries\n"
  },
  {
    "path": "jesse/indicators/roc.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef roc(candles: np.ndarray, period: int = 10, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    ROC - Rate of change : ((price/prevPrice)-1)*100\n\n    :param candles: np.ndarray\n    :param period: int - default: 10\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    n = len(source)\n    res = np.full(n, np.nan, dtype=float)\n    if n > period:\n        res[period:] = (source[period:] / source[:-period] - 1) * 100\n\n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/rocp.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef rocp(candles: np.ndarray, period: int = 10, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    ROCP - Rate of change Percentage: (price-prevPrice)/prevPrice\n\n    :param candles: np.ndarray\n    :param period: int - default: 10\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n    res = np.full(source.shape, np.nan, dtype=float)\n    if len(source) > period:\n        res[period:] = (source[period:] - source[:-period]) / source[:-period]\n\n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/rocr.py",
    "content": "import numpy as np\n\nfrom typing import Union\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef rocr(candles: np.ndarray, period: int = 10, source_type: str = \"close\", sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    ROCR - Rate of change ratio: (price / price_lagged)\n\n    :param candles: np.ndarray\n    :param period: int - default: 10\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    source = get_candle_source(candles, source_type=source_type)\n\n    # Initialize an array of NaNs with the same shape as source\n    res = np.full(source.shape, np.nan, dtype=float)\n    \n    # Only compute if there are enough data points\n    if source.shape[0] > period:\n        # Compute rate of change ratio using vectorized operation; for indices < period, remains NaN\n        res[period:] = source[period:] / source[:-period]\n\n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/rocr100.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef rocr100(candles: np.ndarray, period: int = 10, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    ROCR100 - Rate of change ratio 100 scale: (price/prevPrice)*100\n\n    :param candles: np.ndarray\n    :param period: int - default: 10\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n    # Vectorized calculation: for indices >= period, ROCR100 = (source[i] / source[i - period]) * 100; first period set to np.nan\n    res = np.full(source.shape, np.nan, dtype=float)\n    res[period:] = (source[period:] / source[:-period]) * 100\n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/roofing.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\nfrom .high_pass_2_pole import high_pass_2_pole_fast\nfrom .supersmoother import supersmoother_fast\n\n\ndef roofing(candles: np.ndarray, hp_period: int = 48, lp_period: int = 10, source_type: str = \"close\",\n            sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    Roofing Filter indicator by John F. Ehlers\n\n    :param candles: np.ndarray\n    :param hp_period: int - default: 48\n    :param lp_period: int - default: 10\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n        \"\"\"\n\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n\n    hpf = high_pass_2_pole_fast(source, hp_period)\n\n    res = supersmoother_fast(hpf, lp_period)\n\n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/rsi.py",
    "content": "import numpy as np\nfrom typing import Union\n\nfrom jesse.helpers import get_candle_source, slice_candles\nfrom jesse_rust import rsi as rsi_rust\n\n\ndef rsi(candles: np.ndarray, period: int = 14, source_type: str = \"close\", sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    RSI - Relative Strength Index\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    p = np.asarray(source, dtype=np.float64)\n    result = rsi_rust(p, period)\n    return result if sequential else result[-1]\n"
  },
  {
    "path": "jesse/indicators/rsmk.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source\n\nRSMK = namedtuple('RSMK', ['indicator', 'signal'])\n\n\ndef rsmk(candles: np.ndarray, candles_compare: np.ndarray, lookback: int = 90, period: int = 3, signal_period: int = 20,\n        source_type: str = \"close\", sequential: bool = False) -> RSMK:\n    \"\"\"\n    RSMK - Relative Strength\n\n    :param candles: np.ndarray\n    :param candles_compare: np.ndarray\n    :param lookback: int - default: 90\n    :param period: int - default: 3\n    :param signal_period: int - default: 20\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    if not sequential and candles.shape[0] > 240:\n        candles = candles[-240:]\n        candles_compare = candles_compare[-240:]\n\n    source = get_candle_source(candles, source_type=source_type)\n    source_compare = get_candle_source(candles_compare, source_type=source_type)\n\n    # Calculate log ratio of asset to index\n    log_ratio = np.log(source / source_compare)\n\n    # Calculate momentum: difference between current log ratio and the one from 'lookback' periods ago using vectorized operation\n    mom = np.full_like(log_ratio, np.nan)\n    if len(log_ratio) > lookback:\n        mom[lookback:] = log_ratio[lookback:] - log_ratio[:-lookback]\n\n    def ema(series: np.ndarray, period_val: float) -> np.ndarray:\n        alpha = 2.0 / (max(1.0, period_val) + 1.0)\n        n = series.shape[0]\n        out = np.full_like(series, np.nan)\n\n        # Identify the first valid (non-NaN) index\n        valid_indices = np.flatnonzero(~np.isnan(series))\n        if valid_indices.size == 0:\n            return out\n\n        start_idx = valid_indices[0]\n        segment = series[start_idx:]\n        m = segment.shape[0]\n\n        # Create matrices for vectorized computation\n        t = np.arange(m).reshape(-1, 1)  # shape (m, 1)\n        i = np.arange(m).reshape(1, -1)  # shape (1, m)\n        lag = t - i\n\n        # Compute weights:\n        # For t >= i, if i == 0 then weight = (1 - alpha)^(t - i), else weight = alpha * (1 - alpha)^(t - i)\n        weights = np.where(lag < 0, 0, np.where(i == 0, (1 - alpha)**lag, alpha * (1 - alpha)**lag))\n\n        ema_segment = np.sum(weights * segment.reshape(1, -1), axis=1)\n        out[start_idx:] = ema_segment\n        return out\n\n    # Calculate RSMK indicator: EMA of the momentum scaled by 100\n    rsmk_indicator = ema(mom, period) * 100.0\n\n    # Calculate signal line as EMA of the RSMK indicator\n    rsmk_signal = ema(rsmk_indicator, signal_period)\n\n    if not sequential:\n        rsmk_indicator = rsmk_indicator[-1]\n        rsmk_signal = rsmk_signal[-1]\n\n    return RSMK(rsmk_indicator, rsmk_signal)\n"
  },
  {
    "path": "jesse/indicators/rsx.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef rsx(candles: np.ndarray, period: int = 14, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    Relative Strength Xtra (rsx)\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n    res = rsx_fast(source, period)\n\n    return res if sequential else res[-1]\n\n\n@njit(cache=True)\ndef rsx_fast(source, period):\n    # variables\n    f0 = 0\n    f8 = 0\n    # f10 = 0\n    f18 = 0\n    f20 = 0\n    f28 = 0\n    f30 = 0\n    f38 = 0\n    f40 = 0\n    f48 = 0\n    f50 = 0\n    f58 = 0\n    f60 = 0\n    f68 = 0\n    f70 = 0\n    f78 = 0\n    f80 = 0\n    f88 = 0\n    f90 = 0\n\n    # v4 = 0\n    # v8 = 0\n    # v10 = 0\n    v14 = 0\n    # v18 = 0\n    v20 = 0\n\n    # vC = 0\n    # v1C = 0\n\n    res = np.full_like(source, np.nan)\n\n    for i in range(period, source.size):\n        if f90 == 0:\n            f90 = 1.0\n            f0 = 0.0\n            f88 = period - 1.0 if period >= 6 else 5.0\n            f8 = 100.0 * source[i]\n            f18 = 3.0 / (period + 2.0)\n            f20 = 1.0 - f18\n        else:\n            f90 = f88 + 1 if f88 <= f90 else f90 + 1\n            f10 = f8\n            f8 = 100 * source[i]\n            v8 = f8 - f10\n            f28 = f20 * f28 + f18 * v8\n            f30 = f18 * f28 + f20 * f30\n            vC = f28 * 1.5 - f30 * 0.5\n            f38 = f20 * f38 + f18 * vC\n            f40 = f18 * f38 + f20 * f40\n            v10 = f38 * 1.5 - f40 * 0.5\n            f48 = f20 * f48 + f18 * v10\n            f50 = f18 * f48 + f20 * f50\n            v14 = f48 * 1.5 - f50 * 0.5\n            f58 = f20 * f58 + f18 * abs(v8)\n            f60 = f18 * f58 + f20 * f60\n            v18 = f58 * 1.5 - f60 * 0.5\n            f68 = f20 * f68 + f18 * v18\n            f70 = f18 * f68 + f20 * f70\n            v1C = f68 * 1.5 - f70 * 0.5\n            f78 = f20 * f78 + f18 * v1C\n            f80 = f18 * f78 + f20 * f80\n            v20 = f78 * 1.5 - f80 * 0.5\n            if f88 >= f90 and f8 != f10:\n                f0 = 1.0\n            if f88 == f90 and f0 == 0.0:\n                f90 = 0.0\n        if f88 < f90 and v20 > 0.0000000001:\n            v4 = (v14 / v20 + 1.0) * 50.0\n            v4 = min(v4, 100.0)\n            v4 = max(v4, 0.0)\n        else:\n            v4 = 50.0\n        res[i] = v4\n    return res\n"
  },
  {
    "path": "jesse/indicators/rvi.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numpy.lib.stride_tricks import sliding_window_view\n\nfrom jesse.helpers import get_candle_source, same_length, slice_candles\nfrom jesse.indicators.ma import ma\nfrom jesse.indicators.mean_ad import mean_ad\nfrom jesse.indicators.median_ad import median_ad\n\ndef rvi(candles: np.ndarray, period: int = 10, ma_len: int = 14, matype: int = 1, devtype: int = 0, source_type: str = \"close\",\n        sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    RVI - Relative Volatility Index\n    :param candles: np.ndarray\n    :param period: int - default: 10\n    :param ma_len: int - default: 14\n    :param matype: int - default: 1\n    :param devtype: int - default: 0\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n    :return: float | np.ndarray\n    \"\"\"\n    if matype == 24 or matype == 29:\n        raise ValueError(\"VWMA (matype 24) and VWAP (matype 29) cannot be used in rvi indicator.\")\n\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n\n    if devtype == 0:\n      dev = _rolling_std(source, period)\n    elif devtype == 1:\n      dev = mean_ad(source, period, sequential=True)\n    elif devtype == 2:\n      dev = median_ad(source, period, sequential=True)\n\n    diff = np.diff(source)\n    diff = same_length(source, diff)\n\n    up = np.nan_to_num(np.where(diff <= 0, 0, dev))\n    down = np.nan_to_num(np.where(diff > 0, 0, dev))\n\n    up_avg = ma(up, period=ma_len, matype=matype, sequential=True)\n    down_avg = ma(down, period=ma_len, matype=matype, sequential=True)\n\n    # Avoid division by zero\n    denominator = up_avg + down_avg\n    with np.errstate(divide='ignore', invalid='ignore'):\n        result = np.where(denominator != 0, 100 * (up_avg / denominator), 50)\n\n    return result if sequential else result[-1]\n\n\ndef _rolling_std(arr: np.ndarray, window: int) -> np.ndarray:\n    if len(arr) < window:\n        return np.full(len(arr), np.nan)\n    windows = sliding_window_view(arr, window_shape=window)\n    stds = np.std(windows, axis=1, ddof=0)\n    return np.concatenate((np.full(window - 1, np.nan), stds))\n"
  },
  {
    "path": "jesse/indicators/safezonestop.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\nfrom jesse.helpers import np_shift, slice_candles\n\n@njit(cache=True)\ndef wilder_smoothing_numba(raw: np.ndarray, period: int) -> np.ndarray:\n    smoothed = np.zeros_like(raw)\n    alpha = 1 - 1/period\n    smoothed[0] = raw[0]\n    for i in range(1, len(raw)):\n        smoothed[i] = alpha * smoothed[i-1] + raw[i]\n    return smoothed\n\n@njit(cache=True)\ndef rolling_max_numba(arr: np.ndarray, window: int) -> np.ndarray:\n    n = len(arr)\n    result = np.empty_like(arr)\n    \n    # Handle first window-1 elements\n    for i in range(window-1):\n        result[i] = np.max(arr[:i+1])\n    \n    # Handle remaining elements with sliding window\n    for i in range(window-1, n):\n        result[i] = np.max(arr[i-window+1:i+1])\n    \n    return result\n\n@njit(cache=True)\ndef rolling_min_numba(arr: np.ndarray, window: int) -> np.ndarray:\n    n = len(arr)\n    result = np.empty_like(arr)\n    \n    # Handle first window-1 elements\n    for i in range(window-1):\n        result[i] = np.min(arr[:i+1])\n    \n    # Handle remaining elements with sliding window\n    for i in range(window-1, n):\n        result[i] = np.min(arr[i-window+1:i+1])\n    \n    return result\n\ndef safezonestop(candles: np.ndarray, period: int = 22, mult: float = 2.5, max_lookback: int = 3,\n                 direction: str = \"long\", sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    Safezone Stops - Numba optimized version\n\n    :param candles: np.ndarray\n    :param period: int - default: 22\n    :param mult: float - default: 2.5\n    :param max_lookback: int - default: 3\n    :param direction: str - default: long\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    high = candles[:, 3]\n    low = candles[:, 4]\n\n    last_high = np_shift(high, 1, fill_value=np.nan)\n    last_low = np_shift(low, 1, fill_value=np.nan)\n\n    diff_high = high - last_high\n    diff_low = last_low - low\n    diff_high = np.where(np.isnan(diff_high), 0, diff_high)\n    diff_low = np.where(np.isnan(diff_low), 0, diff_low)\n\n    raw_plus_dm = np.where((diff_high > diff_low) & (diff_high > 0), diff_high, 0)\n    raw_minus_dm = np.where((diff_low > diff_high) & (diff_low > 0), diff_low, 0)\n\n    plus_dm = wilder_smoothing_numba(raw_plus_dm, period)\n    minus_dm = wilder_smoothing_numba(raw_minus_dm, period)\n\n    if direction == \"long\":\n        intermediate = last_low - mult * minus_dm\n        res = rolling_max_numba(intermediate, max_lookback)\n    else:\n        intermediate = last_high + mult * plus_dm\n        res = rolling_min_numba(intermediate, max_lookback)\n\n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/sar.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom jesse.helpers import slice_candles\nfrom numba import njit\n\n\ndef sar(candles: np.ndarray, acceleration: float = 0.02, maximum: float = 0.2, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    SAR - Parabolic SAR\n\n    :param candles: np.ndarray\n    :param acceleration: float - default: 0.02\n    :param maximum: float - default: 0.2\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    # Assuming candle format where index 3 is high and index 4 is low\n    high = candles[:, 3]\n    low = candles[:, 4]\n\n    n = len(candles)\n    if n == 0:\n        return np.array([])\n    if n < 2:\n        return low[-1]\n\n    # Use numba-compiled function to calculate SAR values\n    sar_values = _fast_sar(high, low, acceleration, maximum, n)\n    return sar_values if sequential else sar_values[-1]\n\n\n@njit(cache=True)\ndef _fast_sar(high, low, acceleration, maximum, n):\n    sar_values = np.zeros(n)\n    if high[1] > high[0]:\n        uptrend = True\n        sar_values[0] = low[0]\n        ep = high[0]  # extreme point\n    else:\n        uptrend = False\n        sar_values[0] = high[0]\n        ep = low[0]\n    af = acceleration  # initial acceleration factor\n    for i in range(1, n):\n        prev_sar = sar_values[i - 1]\n        if uptrend:\n            sar_temp = prev_sar + af * (ep - prev_sar)\n            if i >= 2:\n                sar_temp = min(sar_temp, low[i - 1], low[i - 2])\n            else:\n                sar_temp = min(sar_temp, low[i - 1])\n        else:\n            sar_temp = prev_sar - af * (prev_sar - ep)\n            if i >= 2:\n                sar_temp = max(sar_temp, high[i - 1], high[i - 2])\n            else:\n                sar_temp = max(sar_temp, high[i - 1])\n\n        if uptrend:\n            if low[i] < sar_temp:\n                sar_temp = ep\n                uptrend = False\n                af = acceleration  # reset acceleration factor\n                ep = low[i]\n            else:\n                if high[i] > ep:\n                    ep = high[i]\n                    af = af + acceleration\n                    if af > maximum:\n                        af = maximum\n        else:\n            if high[i] > sar_temp:\n                sar_temp = ep\n                uptrend = True\n                af = acceleration\n                ep = high[i]\n            else:\n                if low[i] < ep:\n                    ep = low[i]\n                    af = af + acceleration\n                    if af > maximum:\n                        af = maximum\n\n        sar_values[i] = sar_temp\n    return sar_values\n"
  },
  {
    "path": "jesse/indicators/settings.jsonc",
    "content": "{\n    \"[python]\": {\n        \"editor.defaultFormatter\": \"ms-python.autopep8\",\n        \"editor.formatOnSave\": true,\n        \"editor.formatOnType\": true,\n        \"editor.rulers\": [160],\n        \"editor.codeActionsOnSave\": {\n            \"source.organizeImports\": \"explicit\"\n        }\n    },\n    \"autopep8.args\": [\n        \"--max-line-length=160\",\n        \"--aggressive\",\n        \"--aggressive\"\n    ],\n    \"python.formatting.provider\": \"autopep8\",\n    \"python.linting.enabled\": true,\n    \"python.linting.lintOnSave\": true,\n    \"python.linting.pylintEnabled\": true\n}\n"
  },
  {
    "path": "jesse/indicators/sinwma.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numpy.lib.stride_tricks import sliding_window_view\n\nfrom jesse.helpers import get_candle_source, same_length, slice_candles\n\n\ndef sinwma(candles: np.ndarray, period: int = 14, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    Sine Weighted Moving Average (SINWMA)\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    # Accept normal array too.\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    sines = np.array(\n        [np.sin((i + 1) * np.pi / (period + 1)) for i in range(period)]\n    )\n\n    w = sines / sines.sum()\n    swv = sliding_window_view(source, window_shape=period)\n    res = np.average(swv, weights=w, axis=-1)\n\n    return same_length(candles, res) if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/skew.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numpy.lib.stride_tricks import sliding_window_view\nfrom scipy import stats\n\nfrom jesse.helpers import get_candle_source, same_length, slice_candles\n\n\ndef skew(candles: np.ndarray, period: int = 5, source_type: str = \"hl2\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    Skewness\n\n    :param candles: np.ndarray\n    :param period: int - default: 5\n    :param source_type: str - default: \"hl2\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n    swv = sliding_window_view(source, window_shape=period)\n    skewness = stats.skew(swv, axis=-1)\n    res = same_length(source, skewness)\n\n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/sma.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\nfrom jesse_rust import sma as sma_rust\n\n\ndef sma(candles: np.ndarray, period: int = 5, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    SMA - Simple Moving Average\n\n    :param candles: np.ndarray\n    :param period: int - default: 5\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    res = sma_rust(source, period)\n\n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/smma.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef smma(candles: np.ndarray, period: int = 5, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    SMMA - Smoothed Moving Average\n\n    :param candles: np.ndarray\n    :param period: int - default: 5\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    res = numpy_ewma(source, period)\n\n    return res if sequential else res[-1]\n\n\ndef numpy_ewma(data, window):\n    \"\"\"\n\n    :param data:\n    :param window:\n    :return:\n    \"\"\"\n    alpha = 1 / window\n    # scale = 1 / (1 - alpha)\n    n = data.shape[0]\n    scale_arr = (1 - alpha) ** (-1 * np.arange(n))\n    weights = (1 - alpha) ** np.arange(n)\n    pw0 = (1 - alpha) ** (n - 1)\n    mult = data * pw0 * scale_arr\n    cumsums = mult.cumsum()\n    return cumsums * scale_arr[::-1] / weights.cumsum()\n"
  },
  {
    "path": "jesse/indicators/squeeze_momentum.py",
    "content": "from collections import namedtuple\n\nfrom .bollinger_bands import bollinger_bands\nfrom .sma import sma\nfrom .trange import trange\nfrom .linearreg import linearreg\nfrom .stddev import stddev\nimport numpy as np\n\nSqueezeMomentum = namedtuple('SqueezeMomentum', ['squeeze', 'momentum', 'momentum_signal'])\n\n\ndef squeeze_momentum(candles: np.ndarray, length: int = 20, mult: float = 2.0, length_kc: int = 20, mult_kc: float = 1.5, sequential: bool = True) -> SqueezeMomentum:\n    \"\"\"\n    @author lazyBear\n    credits: https://www.tradingview.com/script/nqQ1DT5a-Squeeze-Momentum-Indicator-LazyBear/\n\n    squeeze_momentum\n\n    :param candles: np.ndarray\n    :length: int - default: 20\n    :mult: float - default: 2.0\n    :length_kc: float - default: 2.0\n    :mult_kc: float - default: 1.5\n    :sequential: bool - default: True\n\n    :return: SqueezeMomentum(squeeze, momentum, momentum_signal)\n    \"\"\"\n    # calculate bollinger bands\n    basis = sma(candles, length, sequential=True)\n    dev = mult_kc * stddev(candles, length, sequential=True)\n    upper_bb = basis + dev\n    lower_bb = basis - dev\n\n    # calculate KC\n    ma = sma(candles, length_kc, sequential=True)\n    range_ma = sma(trange(candles, sequential=True), period=length_kc, sequential=True)\n    upper_kc = ma + range_ma * mult_kc\n    lower_kc = ma - range_ma * mult_kc\n\n    sqz = []\n    for i in range(len(lower_bb)):\n        sqz_on = (lower_bb[i] > lower_kc[i]) and (upper_bb[i] < upper_kc[i])\n        sqz_off = (lower_bb[i] < lower_kc[i]) and (upper_bb[i] > upper_kc[i])\n        noSqz = (sqz_on == False) and (sqz_off == False)\n        sqz.append(0 if noSqz else (-1 if sqz_on else 1))\n\n    highs = np.nan_to_num(_highest(candles[:, 3], length_kc), 0)\n    lows = np.nan_to_num(_lowest(candles[:, 4], length_kc), 0)\n    sma_arr = np.nan_to_num(sma(candles, period=length_kc, sequential=True))\n\n    momentum = []\n    for i in range(len(highs)):\n        momentum.append(candles[:, 2][i] - ((highs[i] + lows[i]) / 2 + sma_arr[i]) / 2)\n\n    momentum = linearreg(np.array(momentum), period=length_kc, sequential=True)\n\n    momentum_signal = []\n    for i in range(len(momentum) - 1):\n        if momentum[i + 1] > 0:\n            momentum_signal.append(1 if momentum[i + 1] > momentum[i] else 2)\n        else:\n            momentum_signal.append(-1 if momentum[i + 1] < momentum[i] else -2)\n\n    if sequential:\n        return SqueezeMomentum(sqz, momentum, momentum_signal)\n    else:\n        return SqueezeMomentum(sqz[-1], momentum[-1], momentum_signal[-1])\n\n\ndef _highest(values, length):\n    # Ensure values is a NumPy array for efficient computation\n    values = np.asarray(values)\n    # Initialize an array to hold the highest values\n    highest_values = np.full(values.shape, np.nan)\n    # Compute the highest value for each window\n    for i in range(length - 1, len(values)):\n        highest_values[i] = np.max(values[i - length + 1:i + 1])\n    return highest_values\n\n\ndef _lowest(values, length):\n    # Ensure values is a NumPy array for efficient computation\n    values = np.asarray(values)\n    # Initialize an array to hold the lowest values\n    lowest_values = np.full(values.shape, np.nan)\n    # Compute the lowest value for each window\n    for i in range(length - 1, len(values)):\n        lowest_values[i] = np.min(values[i - length + 1:i + 1])\n    return lowest_values\n"
  },
  {
    "path": "jesse/indicators/sqwma.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef sqwma(candles: np.ndarray, period: int = 14, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    Squared Weighted Moving Average\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n\n    # Accept normal array too.\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    res = sqwma_fast(source, period)\n\n    return res if sequential else res[-1]\n\n\n@njit(cache=True)\ndef sqwma_fast(source, period):\n    newseries = np.copy(source)\n    for j in range(period + 1, source.shape[0]):\n        my_sum = 0.0\n        weightSum = 0.0\n        for i in range(period - 1):\n            weight = np.power(period - i, 2)\n            my_sum += (source[j - i] * weight)\n            weightSum += weight\n        newseries[j] = my_sum / weightSum\n    return newseries\n"
  },
  {
    "path": "jesse/indicators/srsi.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n# Import the high-performance Rust implementation\nfrom jesse_rust import srsi as srsi_rust  # type: ignore\n\nStochasticRSI = namedtuple('StochasticRSI', ['k', 'd'])\n\n\ndef srsi(\n    candles: np.ndarray,\n    period: int = 14,\n    period_stoch: int = 14,\n    k: int = 3,\n    d: int = 3,\n    source_type: str = \"close\",\n    sequential: bool = False,\n) -> StochasticRSI:\n    \"\"\"Stochastic RSI – uses Rust implementation for speed.\"\"\"\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    k_line, d_line = srsi_rust(source.astype(np.float64), period, period_stoch, k, d)\n\n    if sequential:\n        return StochasticRSI(k_line, d_line)\n    else:\n        return StochasticRSI(float(k_line[-1]), float(d_line[-1]))\n"
  },
  {
    "path": "jesse/indicators/srwma.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef srwma(candles: np.ndarray, period: int = 14, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    Square Root Weighted Moving Average\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n\n    # Accept normal array too.\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    res = srwma_fast(source, period)\n\n    return res if sequential else res[-1]\n\n\n@njit(cache=True)\ndef srwma_fast(source, period):\n    newseries = np.copy(source)\n    for j in range(period + 1, source.shape[0]):\n        my_sum = 0.0\n        weightSum = 0.0\n        for i in range(period - 1):\n            weight = np.power(period - i, 0.5)\n            my_sum += (source[j - i] * weight)\n            weightSum += weight\n        newseries[j] = my_sum / weightSum\n    return newseries\n"
  },
  {
    "path": "jesse/indicators/stc.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef ema(series: np.ndarray, period: int) -> np.ndarray:\n    \"\"\"Calculates the Exponential Moving Average (EMA) for a series using a simple recursive formula.\"\"\"\n    alpha = 2 / (period + 1)\n    out = np.empty_like(series, dtype=float)\n    out[0] = series[0]\n    for i in range(1, len(series)):\n        out[i] = alpha * series[i] + (1 - alpha) * out[i - 1]\n    return out\n\n\ndef stoch(series: np.ndarray, period: int) -> np.ndarray:\n    \"\"\"Calculates the stochastic oscillator for a series over the specified period.\"\"\"\n    result = np.full_like(series, np.nan, dtype=float)\n    for i in range(len(series)):\n        if i < period - 1:\n            result[i] = np.nan\n        else:\n            window = series[i - period + 1: i + 1]\n            low = np.min(window)\n            high = np.max(window)\n            if high == low:\n                result[i] = 0\n            else:\n                result[i] = 100 * ((series[i] - low) / (high - low))\n    return result\n\n\ndef stc(candles: np.ndarray, fast_period: int = 23, slow_period: int = 50, k_period: int = 10, d1_period: int = 3, d2_period: int = 3,\n        source_type: str = \"close\", sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    STC - Schaff Trend Cycle (Oscillator)\n\n    The indicator is computed as follows:\n    1. macd = EMA(src, fast_period) - EMA(src, slow_period)\n    2. k = stoch(macd, k_period) with NaNs replaced by 0\n    3. d   = EMA(k, d1_period)  -> First %D\n    4. kd  = stoch(d, k_period) with NaNs replaced by 0\n    5. stc_val = EMA(kd, d2_period) clamped between 0 and 100\n\n    :param candles: np.ndarray of candles\n    :param fast_period: int - default: 23\n    :param slow_period: int - default: 50\n    :param k_period: int - default: 10, cycle length for stoch computation\n    :param d1_period: int - default: 3, used for first EMA smoothing of k\n    :param d2_period: int - default: 3, used for EMA smoothing of kd\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False. When False, returns only the last value.\n    :return: float or np.ndarray depending on sequential\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    source = get_candle_source(candles, source_type=source_type)\n\n    ema_fast = ema(source, fast_period)\n    ema_slow = ema(source, slow_period)\n    macd = ema_fast - ema_slow\n\n    k = stoch(macd, k_period)\n    k = np.nan_to_num(k, nan=0)\n\n    d_val = ema(k, d1_period)\n    kd = stoch(d_val, k_period)\n    kd = np.nan_to_num(kd, nan=0)\n\n    stc_val = ema(kd, d2_period)\n    stc_val = np.clip(stc_val, 0, 100)\n\n    return stc_val if sequential else stc_val[-1]\n    "
  },
  {
    "path": "jesse/indicators/stddev.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef stddev(candles: np.ndarray, period: int = 5, nbdev: float = 1, source_type: str = \"close\",\n           sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    STDDEV - Standard Deviation\n\n    :param candles: np.ndarray\n    :param period: int - default: 5\n    :param nbdev: float - default: 1\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    n = len(source)\n    # Initialize result array with nan values\n    result = np.full(n, np.nan, dtype=float)\n\n    if n < period:\n        # Not enough data for full period, result remains as nans\n        output = result\n    else:\n        # Create rolling windows using numpy's sliding_window_view\n        windows = np.lib.stride_tricks.sliding_window_view(source, window_shape=period)\n        # Compute standard deviation over the rolling windows using population std (ddof=0) and multiply by nbdev\n        rolling_std = np.std(windows, axis=1, ddof=0) * nbdev\n        # Fill the result array from index 'period - 1' onward with the computed rolling std\n        result[period - 1:] = rolling_std\n        output = result\n\n    return output if sequential else output[-1]\n"
  },
  {
    "path": "jesse/indicators/stiffness.py",
    "content": "from collections import namedtuple\n\nfrom .sma import sma\nfrom .ema import ema\nfrom .stddev import stddev\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef stiffness(candles: np.ndarray, ma_length: int = 100, stiff_length: int = 60, stiff_smooth: int = 3, source_type: str = \"close\") -> float:\n    \"\"\"\n    @author daviddtech\n    credits: https://www.tradingview.com/script/MOw6mUQl-Stiffness-Indicator-DaviddTech\n\n    STIFNESS - Stifness\n\n    :param candles: np.ndarray\n    :param ma_length: int - default: 100\n    :param stiff_length: int - default: 60\n    :param stiff_smooth: int - default: 3\n    :param source_type: str - default: \"close\"\n\n    :return: Stiffness(stiffness, threshold)\n    \"\"\"\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, False)\n        source = get_candle_source(candles, source_type=source_type)\n\n    bound_stiffness = sma(source, ma_length, sequential=True) - 0.2 * \\\n        stddev(source, ma_length, sequential=True)\n    sum_above_stiffness = _count_price_exceed_series(source, bound_stiffness, stiff_length)\n    return ema(np.array(sum_above_stiffness) * 100 / stiff_length, period=stiff_smooth)\n\n\ndef _count_price_exceed_series(close_prices, art_series, length):\n    ex_counts = []\n\n    for i in range(len(close_prices)):\n        if i < length:\n            ex_counts.append(0)\n            continue\n        count = 0\n\n        for j in range(i - length + 1, i + 1):\n            if close_prices[j] > art_series[j]:\n                count += 1\n\n        ex_counts.append(count)\n\n    return ex_counts\n"
  },
  {
    "path": "jesse/indicators/stochastic.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\n\nfrom jesse.helpers import slice_candles\n\n# Import the high-performance Rust implementation\nfrom jesse_rust import stoch as stoch_rust  # type: ignore\n\nStochastic = namedtuple('Stochastic', ['k', 'd'])\n\n\ndef stoch(candles: np.ndarray, fastk_period: int = 14, slowk_period: int = 3, slowk_matype: int = 0,\n          slowd_period: int = 3, slowd_matype: int = 0, sequential: bool = False) -> Stochastic:\n    \"\"\"\n    The Stochastic Oscillator\n\n    :param candles: np.ndarray\n    :param fastk_period: int - default: 14\n    :param slowk_period: int - default: 3\n    :param slowk_matype: int - default: 0\n    :param slowd_period: int - default: 3\n    :param slowd_matype: int - default: 0\n    :param sequential: bool - default: False\n\n    :return: Stochastic(k, d)\n    \"\"\"\n    if any(matype in (24, 29) for matype in (slowk_matype, slowd_matype)):\n        raise ValueError(\"VWMA (matype 24) and VWAP (matype 29) cannot be used in stochastic indicator.\")\n\n    candles = slice_candles(candles, sequential)\n\n    # Convert to float64 for Rust compatibility\n    candles_f64 = np.asarray(candles, dtype=np.float64)\n    \n    # Call the Rust implementation\n    k, d = stoch_rust(candles_f64, fastk_period, slowk_period, slowk_matype, slowd_period, slowd_matype)\n    \n    if sequential:\n        return Stochastic(k, d)\n    else:\n        return Stochastic(k[-1], d[-1])\n"
  },
  {
    "path": "jesse/indicators/stochf.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\n\nfrom jesse.helpers import slice_candles\n\n# Import the high-performance Rust implementation\nfrom jesse_rust import stochf as stochf_rust  # type: ignore\n\nStochasticFast = namedtuple('StochasticFast', ['k', 'd'])\n\ndef stochf(candles: np.ndarray, fastk_period: int = 5, fastd_period: int = 3, fastd_matype: int = 0,\n           sequential: bool = False) -> StochasticFast:\n    \"\"\"\n    Stochastic Fast\n\n    :param candles: np.ndarray\n    :param fastk_period: int - default: 5\n    :param fastd_period: int - default: 3\n    :param fastd_matype: int - default: 0\n    :param sequential: bool - default: False\n\n    :return: StochasticFast(k, d)\n    \"\"\"\n    if fastd_matype == 24 or fastd_matype == 29:\n        raise ValueError(\"VWMA (matype 24) and VWAP (matype 29) cannot be used in stochf indicator.\")\n\n    candles = slice_candles(candles, sequential)\n\n    # Convert to float64 for Rust compatibility\n    candles_f64 = np.asarray(candles, dtype=np.float64)\n    \n    # Call the Rust implementation\n    k, d = stochf_rust(candles_f64, fastk_period, fastd_period, fastd_matype)\n    \n    if sequential:\n        return StochasticFast(k, d)\n    else:\n        return StochasticFast(k[-1], d[-1])\n"
  },
  {
    "path": "jesse/indicators/supersmoother.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef supersmoother(candles: np.ndarray, period: int = 14, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    Super Smoother Filter 2pole Butterworth\n    This indicator was described by John F. Ehlers\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n\n\n    # Accept normal array too.\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    res = supersmoother_fast(source, period)\n\n    return res if sequential else res[-1]\n\n\n@njit(cache=True)\ndef supersmoother_fast(source, period):\n    a = np.exp(-1.414 * np.pi / period)\n    b = 2 * a * np.cos(1.414 * np.pi / period)\n    newseries = np.copy(source)\n    for i in range(2, source.shape[0]):\n        newseries[i] = (1 + a ** 2 - b) / 2 * (source[i] + source[i - 1]) \\\n                       + b * newseries[i - 1] - a ** 2 * newseries[i - 2]\n    return newseries\n"
  },
  {
    "path": "jesse/indicators/supersmoother_3_pole.py",
    "content": "from typing import Union\n\nimport numpy as np\n\ntry:\n    from numba import njit\nexcept ImportError:\n    njit = lambda a : a\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef supersmoother_3_pole(candles: np.ndarray, period: int = 14, source_type: str = \"close\", sequential: bool = False) -> \\\n        Union[\n            float, np.ndarray]:\n    \"\"\"\n    Super Smoother Filter 3pole Butterworth\n    This indicator was described by John F. Ehlers\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n\n    # Accept normal array too.\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    res = supersmoother_fast(source, period)\n\n    return res if sequential else res[-1]\n\n\n@njit(cache=True)\ndef supersmoother_fast(source, period):\n    a = np.exp(-np.pi / period)\n    b = 2 * a * np.cos(1.738 * np.pi / period)\n    c = a ** 2\n    newseries = np.copy(source)\n    for i in range(3, source.shape[0]):\n        newseries[i] = (1 - c ** 2 - b + b * c) * source[i] \\\n                       + (b + c) * newseries[i - 1] + (-c - b * c) * newseries[i - 2] + (c ** 2) * newseries[i - 3]\n    return newseries\n"
  },
  {
    "path": "jesse/indicators/supertrend.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import slice_candles\n\nSuperTrend = namedtuple('SuperTrend', ['trend', 'changed'])\n\n\ndef supertrend(candles: np.ndarray, period: int = 10, factor: float = 3, sequential: bool = False) -> SuperTrend:\n    \"\"\"\n    SuperTrend indicator optimized with numba and loop-based calculations.\n    :param candles: np.ndarray - candle data\n    :param period: period for ATR calculation\n    :param factor: multiplier for the bands\n    :param sequential: if True, returns full arrays; else, returns last value\n    :return: SuperTrend named tuple with trend and changed arrays/values\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    atr = atr_loop(candles[:, 3], candles[:, 4], candles[:, 2], period)\n    super_trend, changed = supertrend_fast(candles, atr, factor, period)\n    if sequential:\n        return SuperTrend(super_trend, changed)\n    else:\n        return SuperTrend(super_trend[-1], changed[-1])\n\n\n@njit(cache=True)\ndef atr_loop(high, low, close, period):\n    n = len(close)\n    tr = np.empty(n, dtype=np.float64)\n    tr[0] = high[0] - low[0]\n    for i in range(1, n):\n        diff1 = high[i] - low[i]\n        diff2 = np.abs(high[i] - close[i-1])\n        diff3 = np.abs(low[i] - close[i-1])\n        # manual max of the three differences\n        if diff1 >= diff2 and diff1 >= diff3:\n            tr[i] = diff1\n        elif diff2 >= diff1 and diff2 >= diff3:\n            tr[i] = diff2\n        else:\n            tr[i] = diff3\n\n    atr = np.empty(n, dtype=np.float64)\n    # Set initial values to NaN for indices before period-1\n    for i in range(period - 1):\n        atr[i] = np.nan\n    # First ATR value is the simple average of the first 'period' TR values\n    sum_init = 0.0\n    for i in range(period):\n        sum_init += tr[i]\n    atr[period - 1] = sum_init / period\n    # Recursive ATR calculation\n    for i in range(period, n):\n        atr[i] = ((atr[i-1] * (period - 1)) + tr[i]) / period\n    return atr\n\n\n@njit(cache=True)\ndef supertrend_fast(candles, atr, factor, period):\n    n = len(candles)\n    super_trend = np.zeros(n, dtype=np.float64)\n    changed = np.zeros(n, dtype=np.int8)\n\n    # Precompute basic bands and initialize band arrays\n    upper_basic = np.empty(n, dtype=np.float64)\n    lower_basic = np.empty(n, dtype=np.float64)\n    upper_band = np.empty(n, dtype=np.float64)\n    lower_band = np.empty(n, dtype=np.float64)\n\n    for i in range(n):\n        mid = (candles[i, 3] + candles[i, 4]) / 2.0\n        upper_basic[i] = mid + factor * atr[i]\n        lower_basic[i] = mid - factor * atr[i]\n        upper_band[i] = upper_basic[i]\n        lower_band[i] = lower_basic[i]\n\n    # Set the initial supertrend for index period-1\n    idx = period - 1\n    if candles[idx, 2] <= upper_band[idx]:\n        super_trend[idx] = upper_band[idx]\n    else:\n        super_trend[idx] = lower_band[idx]\n    changed[idx] = 0\n\n    # Combined loop: update bands and compute supertrend\n    for i in range(period, n):\n        p = i - 1\n        prevClose = candles[p, 2]\n        \n        # Update upper_band\n        if prevClose <= upper_band[p]:\n            if upper_basic[i] < upper_band[p]:\n                upper_band[i] = upper_basic[i]\n            else:\n                upper_band[i] = upper_band[p]\n        else:\n            upper_band[i] = upper_basic[i]\n\n        # Update lower_band\n        if prevClose >= lower_band[p]:\n            if lower_basic[i] > lower_band[p]:\n                lower_band[i] = lower_basic[i]\n            else:\n                lower_band[i] = lower_band[p]\n        else:\n            lower_band[i] = lower_basic[i]\n\n        # Compute current supertrend based on previous supertrend value\n        if super_trend[p] == upper_band[p]:\n            if candles[i, 2] <= upper_band[i]:\n                super_trend[i] = upper_band[i]\n                changed[i] = 0\n            else:\n                super_trend[i] = lower_band[i]\n                changed[i] = 1\n        else:  # super_trend[p] equals lower_band[p]\n            if candles[i, 2] >= lower_band[i]:\n                super_trend[i] = lower_band[i]\n                changed[i] = 0\n            else:\n                super_trend[i] = upper_band[i]\n                changed[i] = 1\n\n    return super_trend, changed\n"
  },
  {
    "path": "jesse/indicators/support_resistance_with_break.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\nfrom .ema import ema\n\nSupportResistanceWithBreaks = namedtuple('SupportResistanceWithBreaks', ['support', 'resistance', 'red_break', 'green_break', 'bear_wick', 'bull_wick'])\n\n\ndef support_resistance_with_breaks(candles: np.ndarray, left_bars: int = 15, right_bars: int = 15, vol_threshold: int = 20) -> SupportResistanceWithBreaks:\n    \"\"\"\n    support_resistance_with_breaks\n\n    @author LuxAlgo\n    credits: https://www.tradingview.com/script/JDFoWQbL-Support-and-Resistance-Levels-with-Breaks-LuxAlgo\n\n    :param candles: np.ndarray\n    :param left_bars: int - default: 15\n    :param right_bars: int - default: 15\n    :param vol_threshold: int - default: 20\n    :return: SupportResistanceWithBreaks(support, resistance, red_break, green_break, bear_wick, bull_wick)\n    \"\"\"\n    resistance = _resistance(candles[:, 3], left_bars, right_bars)\n    support = _support(candles[:, 4], left_bars, right_bars)\n\n    short = ema(candles[:, 5], 5)\n    long = ema(candles[:, 5], 10)\n    osc = 100 * (short - long) / long\n\n    last_candles = candles[0]\n\n    red_break = True if last_candles[2] < support and not abs(\n        last_candles[1] - last_candles[2]) < abs(last_candles[1] - last_candles[3]) and osc > vol_threshold else False\n    green_break = True if last_candles[2] > resistance and abs(\n        last_candles[1] - last_candles[4]) > abs(last_candles[1] - last_candles[2]) and osc > vol_threshold else False\n\n    bull_wick = True if last_candles[2] > resistance and abs(last_candles[1] - last_candles[4]) > abs(last_candles[1] - last_candles[2]) else False\n    bear_wick = True if last_candles[2] < support and abs(last_candles[1] - last_candles[2]) < abs(last_candles[1] - last_candles[3]) else False\n\n    return SupportResistanceWithBreaks(support, resistance, red_break, green_break, bear_wick, bull_wick)\n\n\ndef _resistance(source, left_bars, right_bars):\n    pivot_highs = [None] * len(source)  # Initialize result list with None\n\n    for i in range(left_bars, len(source) - right_bars):\n        is_pivot_high = True\n\n        # Check left bars for higher high\n        for j in range(1, left_bars + 1):\n            if source[i] <= source[i - j]:\n                is_pivot_high = False\n                break\n\n        # Check right bars for higher high\n        if is_pivot_high:\n            for j in range(1, right_bars + 1):\n                if source[i] <= source[i + j]:\n                    is_pivot_high = False\n                    break\n\n        if is_pivot_high:\n            is_pivot_high = source[i]\n\n        pivot_highs[i] = is_pivot_high\n\n    next_valid = None\n    first_value = None\n    for i in range(len(pivot_highs)):\n        if pivot_highs[i] is False:\n            pivot_highs[i] = next_valid\n        elif pivot_highs[i] is not None:  # Update next_valid if it's not False or None\n            next_valid = pivot_highs[i]\n            first_value = i if first_value is None else first_value\n\n    pivot_highs[:first_value - 1] = [pivot_highs[first_value]] * len(pivot_highs[:first_value - 1])\n    pivot_highs[-right_bars:] = [pivot_highs[-right_bars - 1]] * len(pivot_highs[-right_bars:])\n\n    return pivot_highs[-1]\n\n\ndef _support(source, left_bars, right_bars):\n    pivot_lows = [None] * len(source)  # Initialize result list with None\n\n    for i in range(left_bars, len(source) - right_bars):\n        is_pivot_low = True\n\n        # Check left bars for lower low\n        for j in range(1, left_bars + 1):\n            if source[i] >= source[i - j]:\n                is_pivot_low = False\n                break\n\n        # Check right bars for lower low\n        if is_pivot_low:\n            for j in range(1, right_bars + 1):\n                if source[i] >= source[i + j]:\n                    is_pivot_low = False\n                    break\n\n        if is_pivot_low:\n            is_pivot_low = source[i]\n\n        pivot_lows[i] = is_pivot_low\n\n    next_valid = None\n    first_value = None\n    for i in range(len(pivot_lows)):\n        if pivot_lows[i] is False:\n            pivot_lows[i] = next_valid\n        elif pivot_lows[i] is not None:  # Update next_valid if it's not False or None\n            next_valid = pivot_lows[i]\n            first_value = i if first_value is None else first_value\n\n    pivot_lows[:first_value - 1] = [pivot_lows[first_value]] * len(pivot_lows[:first_value - 1])\n    pivot_lows[-right_bars:] = [pivot_lows[-right_bars - 1]] * len(pivot_lows[-right_bars:])\n\n    return pivot_lows[-1]\n"
  },
  {
    "path": "jesse/indicators/swma.py",
    "content": "from math import floor\nfrom typing import Union\n\nimport numpy as np\nfrom numpy.lib.stride_tricks import sliding_window_view\n\nfrom jesse.helpers import get_candle_source, same_length, slice_candles\n\n\ndef swma(candles: np.ndarray, period: int = 5, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    Symmetric Weighted Moving Average (SWMA)\n\n    :param candles: np.ndarray\n    :param period: int - default: 5\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n\n    # Accept normal array too.\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    triangle = symmetric_triangle(period)\n    swv = sliding_window_view(source, window_shape=period)\n    res = np.average(swv, weights=triangle, axis=-1)\n\n    return same_length(candles, res) if sequential else res[-1]\n\n\n\ndef symmetric_triangle(n: int = None) -> np.ndarray:\n    \"\"\"Symmetric Triangle with n >= 2\n    Returns a numpy array of the nth row of Symmetric Triangle.\n    n=4  => triangle: [1, 2, 2, 1]\n         => weighted: [0.16666667 0.33333333 0.33333333 0.16666667]\n    \"\"\"\n    n = int(np.fabs(n)) if n is not None else 2\n\n    triangle = None\n    if n == 2:\n        triangle = [1, 1]\n\n    if n > 2:\n        if n % 2 == 0:\n            front = [i + 1 for i in range(floor(n / 2))]\n            triangle = front + front[::-1]\n        else:\n            front = [i + 1 for i in range(floor(0.5 * (n + 1)))]\n            triangle = front.copy()\n            front.pop()\n            triangle += front[::-1]\n\n\n    triangle_sum = np.sum(triangle)\n    return triangle / triangle_sum\n\n\n"
  },
  {
    "path": "jesse/indicators/t3.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef t3(candles: np.ndarray, period: int = 5, vfactor: float = 0, source_type: str = \"close\",\n       sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    T3 - Triple Exponential Moving Average (T3)\n    \n    The T3 moving average is a type of moving average that uses the DEMA (Double Exponential Moving Average) \n    calculations multiple times with a volume factor weighting.\n    \n    :param candles: np.ndarray\n    :param period: int - default: 5\n    :param vfactor: float - default: 0\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n    \n    :return: float | np.ndarray\n    \"\"\"\n    # Check if jesse_rust is available\n    try:\n        import jesse_rust\n        \n        if len(candles.shape) == 1:\n            # Handle case where source array is passed directly\n            # Convert to candles format for Rust function\n            mock_candles = np.zeros((len(candles), 6))\n            mock_candles[:, 2] = candles  # Put source in close column\n            result = jesse_rust.t3(mock_candles, period, vfactor, \"close\", sequential)\n        else:\n            candles = slice_candles(candles, sequential)\n            result = jesse_rust.t3(candles, period, vfactor, source_type, sequential)\n        \n        return result if sequential else result[-1]\n        \n    except ImportError:\n        # Fallback to pure Python implementation\n        if len(candles.shape) == 1:\n            source = candles\n        else:\n            candles = slice_candles(candles, sequential)\n            source = get_candle_source(candles, source_type=source_type)\n            \n        k = 2 / (period + 1)\n        \n        # Calculate weights based on volume factor\n        w1 = -vfactor ** 3\n        w2 = 3 * vfactor ** 2 + 3 * vfactor ** 3\n        w3 = -6 * vfactor ** 2 - 3 * vfactor - 3 * vfactor ** 3\n        w4 = 1 + 3 * vfactor + vfactor ** 3 + 3 * vfactor ** 2\n        \n        t3 = _t3_fast_python(source, k, w1, w2, w3, w4)\n        \n        return t3 if sequential else t3[-1]\n\n\ndef _t3_fast_python(source: np.ndarray, k: float, w1: float, w2: float, w3: float, w4: float) -> np.ndarray:\n    \"\"\"\n    Pure Python implementation of T3 calculation\n    \"\"\"\n    n = len(source)\n    e1 = np.zeros(n)\n    e2 = np.zeros(n)\n    e3 = np.zeros(n)\n    e4 = np.zeros(n)\n    e5 = np.zeros(n)\n    e6 = np.zeros(n)\n    t3 = np.zeros(n)\n    \n    # Initialize first values\n    e1[0] = source[0]\n    e2[0] = e1[0]\n    e3[0] = e2[0]\n    e4[0] = e3[0]\n    e5[0] = e4[0]\n    e6[0] = e5[0]\n    \n    k_rev = 1 - k\n    \n    # Calculate all EMAs in a single loop for better cache utilization\n    for i in range(1, n):\n        e1[i] = k * source[i] + k_rev * e1[i-1]\n        e2[i] = k * e1[i] + k_rev * e2[i-1]\n        e3[i] = k * e2[i] + k_rev * e3[i-1]\n        e4[i] = k * e3[i] + k_rev * e4[i-1]\n        e5[i] = k * e4[i] + k_rev * e5[i-1]\n        e6[i] = k * e5[i] + k_rev * e6[i-1]\n        t3[i] = w1 * e6[i] + w2 * e5[i] + w3 * e4[i] + w4 * e3[i]\n    \n    return t3"
  },
  {
    "path": "jesse/indicators/tema.py",
    "content": "from typing import Union\nimport numpy as np\nfrom jesse.helpers import get_candle_source, slice_candles\nfrom jesse_rust import tema as tema_rust\n\n\ndef tema(candles: np.ndarray, period: int = 9, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    TEMA - Triple Exponential Moving Average\n\n    :param candles: np.ndarray\n    :param period: int - default: 9\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    if source.size == 0:\n        return np.nan if not sequential else np.array([])\n\n    res = tema_rust(source, period)\n    \n    return res if sequential else res[-1]\n\n"
  },
  {
    "path": "jesse/indicators/trange.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import slice_candles\n\n\ndef trange(candles: np.ndarray, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    TRANGE - True Range\n\n    :param candles: np.ndarray\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    high = candles[:, 3]\n    low = candles[:, 4]\n    close = candles[:, 2]\n\n    true_range = np.empty_like(high)\n    true_range[0] = high[0] - low[0]\n\n    if len(candles) > 1:\n        diff_hl = high[1:] - low[1:]\n        diff_hpc = np.abs(high[1:] - close[:-1])\n        diff_lpc = np.abs(low[1:] - close[:-1])\n        true_range[1:] = np.maximum(np.maximum(diff_hl, diff_hpc), diff_lpc)\n\n    res = true_range\n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/trendflex.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\nfrom .supersmoother import supersmoother_fast\n\n\ndef trendflex(candles: np.ndarray, period: int = 20, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    Trendflex indicator by John F. Ehlers\n\n    :param candles: np.ndarray\n    :param period: int - default: 20\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n\n    ssf = supersmoother_fast(source, period / 2)\n\n    tf = trendflex_fast(ssf, period)\n\n    if sequential:\n        return tf\n    else:\n        return None if np.isnan(tf[-1]) else tf[-1]\n\n\n@njit(cache=True)\ndef trendflex_fast(ssf, period):\n    tf = np.full_like(ssf, 0)\n    ms = np.full_like(ssf, 0)\n    sums = np.full_like(ssf, 0)\n\n    for i in range(ssf.shape[0]):\n        if i >= period:\n            my_sum = 0\n            for t in range(1, period + 1):\n                my_sum = my_sum + ssf[i] - ssf[i - t]\n            my_sum /= period\n            sums[i] = my_sum\n\n            ms[i] = 0.04 * sums[i] * sums[i] + 0.96 * ms[i - 1]\n            if ms[i] != 0:\n                tf[i] = sums[i] / np.sqrt(ms[i])\n    return tf\n"
  },
  {
    "path": "jesse/indicators/trima.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef trima(candles: np.ndarray, period: int = 30, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    TRIMA - Triangular Moving Average\n\n    :param candles: np.ndarray\n    :param period: int - default: 30\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    # Compute triangular weights\n    if period % 2 != 0:\n        mid = period // 2\n        weights = np.concatenate((np.arange(1, mid + 2), np.arange(mid, 0, -1)))\n    else:\n        mid = period // 2\n        weights = np.concatenate((np.arange(1, mid + 1), np.arange(mid, 0, -1)))\n    weights_norm = weights / weights.sum()\n\n    n = source.shape[0]\n    if n < period:\n        res = np.full(n, np.nan)\n    else:\n        conv = np.convolve(source, weights_norm, mode='valid')\n        res = np.concatenate((np.full(period - 1, np.nan), conv))\n\n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/trix.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\n@njit\ndef _ema_numba(data, period):\n    N = len(data)\n    result = np.empty(N, dtype=np.float64)\n    alpha = 2.0 / (period + 1)\n    result[0] = data[0]\n    for i in range(1, N):\n        result[i] = alpha * data[i] + (1 - alpha) * result[i - 1]\n    return result\n\n\ndef ema(data: np.ndarray, period: int) -> np.ndarray:\n    return _ema_numba(data, period)\n\n\ndef trix(candles: np.ndarray, period: int = 18, source_type: str = \"close\", sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    TRIX - 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA\n\n    :param candles: np.ndarray\n    :param period: int - default: 18\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    source = get_candle_source(candles, source_type=source_type)\n\n    # Compute triple EMA on the logarithm of the source prices\n    log_source = np.log(source)\n    ema1 = ema(log_source, period)\n    ema2 = ema(ema1, period)\n    ema3 = ema(ema2, period)\n\n    # Calculate the change (current ema3 minus previous ema3), prepending NaN to maintain same length\n    diff = np.empty_like(ema3)\n    diff[0] = np.nan\n    diff[1:] = ema3[1:] - ema3[:-1]\n    result = diff * 10000\n\n    return result if sequential else result[-1]\n"
  },
  {
    "path": "jesse/indicators/tsf.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef tsf(candles: np.ndarray, period: int = 14, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    TSF - Time Series Forecast\n    \n    A linear regression projection into the future. It calculates a linear regression line \n    using the specified period and projects it forward.\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    source = get_candle_source(candles, source_type=source_type)\n    \n    if sequential:\n        result = np.full_like(source, np.nan)\n        if len(source) >= period:\n            # Create time indices array\n            x = np.arange(period)\n            # Calculate means for x\n            x_mean = np.mean(x)\n            # Calculate denominator term (sum of squared deviations)\n            x_diff = x - x_mean\n            denominator = np.sum(x_diff ** 2)\n            \n            # Create sliding windows view of the data\n            windows = np.lib.stride_tricks.sliding_window_view(source, period)\n            # Calculate means for each window\n            y_means = np.mean(windows, axis=1)\n            \n        # Calculate slopes using vectorized operations\n            slopes = np.sum((windows - y_means[:, None]) * x_diff, axis=1) / denominator\n            # Calculate intercepts\n            intercepts = y_means - slopes * x_mean\n            \n            # Calculate forecast values\n            forecasts = intercepts + slopes * period\n            \n            # Place forecasts in result array\n            result[period-1:] = forecasts\n        \n        return result\n    else:\n        # For non-sequential, just calculate the last window\n        x = np.arange(period)\n        X = np.vstack((np.ones(period), x)).T\n        y = source[-period:]\n        beta = np.linalg.inv(X.T @ X) @ X.T @ y\n        return beta[0] + beta[1] * period\n"
  },
  {
    "path": "jesse/indicators/tsi.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef tsi(candles: np.ndarray, long_period: int = 25, short_period: int = 13, source_type: str = \"close\",\n        sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n     True strength index (TSI)\n\n    :param candles: np.ndarray\n    :param long_period: int - default: 25\n    :param short_period: int - default: 13\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n\n    mom = _mom(source, 1)\n    ema_mom = _ema(mom, long_period)\n    double_ema_mom = _ema(ema_mom, short_period)\n\n    ema_abs_mom = _ema(np.abs(mom), long_period)\n    double_ema_abs_mom = _ema(ema_abs_mom, short_period)\n\n    # Avoid division by zero and invalid results\n    with np.errstate(divide='ignore', invalid='ignore'):\n        r = 100 * double_ema_mom / double_ema_abs_mom\n        r[~np.isfinite(r)] = 0\n\n    return r if sequential else r[-1]\n\n\ndef _mom(series, period):\n    # Calculate momentum as difference between current and period ago value\n    return np.concatenate((np.zeros(period), series[period:] - series[:-period]))\n\ndef _ema(series, period):\n    # Exponential Moving Average using a vectorized approach with convolution\n    alpha = 2 / (period + 1)\n    n = len(series)\n    t_arr = np.arange(n)\n    # Calculate the contribution from the first element\n    ema_vals = series[0] * ((1 - alpha) ** t_arr)\n    if n > 1:\n        # For t>=1, add the convolution of the rest of the series with the weights alpha*(1-alpha)^(t)\n        conv = np.convolve(series[1:], alpha * ((1 - alpha) ** np.arange(n - 1)), mode='full')[:n-1]\n        ema_vals[1:] += conv\n    return ema_vals\n"
  },
  {
    "path": "jesse/indicators/ttm_squeeze.py",
    "content": "from .bollinger_bands import bollinger_bands\nfrom .sma import sma\nfrom .trange import trange\nimport numpy as np\n\n\ndef ttm_squeeze(candles: np.ndarray, length_ttms: int = 20, bb_mult_ttms: float = 2.0, kc_mult_low_ttms: float = 2.0) -> bool:\n    \"\"\"\n    @author daviddtech\n    credits: https://www.tradingview.com/script/Mh3EmxF5-TTM-Squeeze-DaviddTech/\n\n    TTMSQUEEZE - TTMSqueeze\n\n    :param candles: np.ndarray\n    :param length_ttms: int - default: 20\n    :param bb_mult_ttms: float - default: 2.0\n    :param kc_mult_low_ttms: float - default: 2.0\n\n    :return: TTMSqueeze(sqz_signal)\n    \"\"\"\n    bb_data = bollinger_bands(candles, length_ttms, bb_mult_ttms)\n\n    kc_basis_ttms = sma(candles, length_ttms)\n    devkc_ttms = sma(trange(candles, sequential=True), period=length_ttms)\n\n    no_sqz_ttms = bb_data.lowerband < kc_basis_ttms - devkc_ttms * \\\n        kc_mult_low_ttms or bb_data.upperband > kc_basis_ttms + devkc_ttms * kc_mult_low_ttms\n\n    sqz_signal = False\n    if no_sqz_ttms:\n        sqz_signal = True\n\n    return sqz_signal\n"
  },
  {
    "path": "jesse/indicators/ttm_trend.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numpy.lib.stride_tricks import sliding_window_view\n\nfrom jesse.helpers import get_candle_source, same_length, slice_candles\n\n\ndef ttm_trend(candles: np.ndarray, period: int = 5, source_type: str = \"hl2\", sequential: bool = False) -> Union[\n        bool, np.ndarray]:\n    \"\"\"\n    TTM Trend\n\n    :param candles: np.ndarray\n    :param period: int - default: 5\n    :param source_type: str - default: \"hl2\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n    swv = sliding_window_view(source, window_shape=period)\n    trend_avg = np.mean(swv, axis=-1)\n    res = np.greater(candles[:, 2], same_length(source, trend_avg))\n\n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/typprice.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import slice_candles\n\n\ndef typprice(candles: np.ndarray, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    TYPPRICE - Typical Price\n\n    :param candles: np.ndarray\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    res = (candles[:, 2] + candles[:, 3] + candles[:, 4]) / 3\n\n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/ui.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef ui(candles: np.ndarray, period: int = 14, scalar: float = 100, source_type: str = \"close\",  sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    Ulcer Index (UI)\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param scalar: float - default: 100\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    source = get_candle_source(candles, source_type=source_type)\n    n = source.shape[0]\n\n    # Compute rolling maximum over the period\n    if n < period:\n        highest_close = np.full_like(source, np.nan)\n    else:\n        # sliding_window_view creates a rolling window view: shape (n-period+1, period)\n        highest_window = np.lib.stride_tricks.sliding_window_view(source, window_shape=period)\n        highest_max = np.max(highest_window, axis=1)\n        highest_close = np.concatenate((np.full(period - 1, np.nan), highest_max))\n\n    # Calculate downside percentage\n    downside = scalar * (source - highest_close) / highest_close\n    d2 = downside ** 2\n\n    # Compute rolling sum of squared downside values\n    if n < period:\n        rolling_d2_sum = np.full_like(d2, np.nan)\n    else:\n        rolling_sum_valid = np.convolve(d2, np.ones(period), mode='valid')\n        rolling_d2_sum = np.concatenate((np.full(period - 1, np.nan), rolling_sum_valid))\n\n    res = np.sqrt(rolling_d2_sum / period)\n\n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/ultosc.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import slice_candles\n\n\ndef ultosc(candles: np.ndarray, timeperiod1: int = 7, timeperiod2: int = 14, timeperiod3: int = 28,\n           sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    ULTOSC - Ultimate Oscillator\n\n    :param candles: np.ndarray\n    :param timeperiod1: int - default: 7\n    :param timeperiod2: int - default: 14\n    :param timeperiod3: int - default: 28\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    high = candles[:, 3]\n    low = candles[:, 4]\n    close = candles[:, 2]\n    n = len(close)\n\n    bp = np.empty(n, dtype=float)\n    tr = np.empty(n, dtype=float)\n    bp[0] = 0.0\n    tr[0] = high[0] - low[0]\n    bp[1:] = close[1:] - np.minimum(low[1:], close[:-1])\n    tr[1:] = np.maximum(high[1:], close[:-1]) - np.minimum(low[1:], close[:-1])\n    \n    sum_bp_1 = _rolling_sum(bp, timeperiod1)\n    sum_tr_1 = _rolling_sum(tr, timeperiod1)\n    avg1 = np.where(sum_tr_1 != 0, sum_bp_1 / sum_tr_1, np.nan)\n\n    sum_bp_2 = _rolling_sum(bp, timeperiod2)\n    sum_tr_2 = _rolling_sum(tr, timeperiod2)\n    avg2 = np.where(sum_tr_2 != 0, sum_bp_2 / sum_tr_2, np.nan)\n\n    sum_bp_3 = _rolling_sum(bp, timeperiod3)\n    sum_tr_3 = _rolling_sum(tr, timeperiod3)\n    avg3 = np.where(sum_tr_3 != 0, sum_bp_3 / sum_tr_3, np.nan)\n\n    ult = 100 * (4 * avg1 + 2 * avg2 + avg3) / 7\n\n    return ult if sequential else ult[-1]\n\ndef _rolling_sum(data, window):\n    n = len(data)\n    if n < window:\n        return np.full(n, np.nan)\n    conv = np.convolve(data, np.ones(window, dtype=float), mode='valid')\n    out = np.empty(n, dtype=float)\n    out[:window-1] = np.nan\n    out[window-1:] = conv\n    return out\n"
  },
  {
    "path": "jesse/indicators/var.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef var(candles: np.ndarray, period: int = 14, nbdev: float = 1, source_type: str = \"close\",\n        sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    VAR - Variance\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param nbdev: float - default: 1\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n    n = len(source)\n    result = np.empty(n)\n    result[:period-1] = np.nan\n    if n >= period:\n        windows = np.lib.stride_tricks.sliding_window_view(source, window_shape=period)\n        window_mean = np.mean(windows, axis=1)\n        window_mean_sq = np.mean(windows ** 2, axis=1)\n        result[period-1:] = (window_mean_sq - window_mean**2) * nbdev\n    else:\n        result[:] = np.nan\n\n    return result if sequential else result[-1]\n"
  },
  {
    "path": "jesse/indicators/vi.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\nimport jesse_rust\nfrom jesse.helpers import slice_candles\n\nVI = namedtuple('VI', ['plus', 'minus'])\n\n\ndef vi(candles: np.ndarray, period: int = 14, sequential: bool = False) -> VI:\n    \"\"\"\n    Vortex Indicator (VI)\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param sequential: bool - default: False\n\n    :return: VI(plus, minus)\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    \n    # Use the Rust implementation\n    vi_plus, vi_minus = jesse_rust.vi(candles, period, sequential)\n    \n    if sequential:\n        return VI(vi_plus, vi_minus)\n    else:\n        return VI(vi_plus[-1], vi_minus[-1])\n"
  },
  {
    "path": "jesse/indicators/vidya.py",
    "content": "from typing import Union\nimport numpy as np\nfrom numba import njit\nfrom jesse.helpers import get_candle_source, same_length, slice_candles\n\n\n@njit\ndef vidya_numba(source: np.ndarray, length: int, fix_cmo: bool, select: bool) -> np.ndarray:\n    alpha = 2 / (length + 1)\n    momm = np.zeros_like(source)\n    momm[1:] = source[1:] - source[:-1]\n    momm[0] = 0\n\n    # Initialize arrays for positive and negative momentum\n    m1 = np.where(momm >= 0, momm, 0)\n    m2 = np.where(momm < 0, -momm, 0)\n\n    # Calculate rolling sums\n    cmo_length = 9 if fix_cmo else length\n    sm1 = np.zeros_like(source)\n    sm2 = np.zeros_like(source)\n\n    for i in range(len(source)):\n        start_idx = max(0, i - cmo_length + 1)\n        sm1[i] = np.sum(m1[start_idx:i+1])\n        sm2[i] = np.sum(m2[start_idx:i+1])\n\n    # Calculate Chande Momentum\n    total_sum = sm1 + sm2\n    chande_mo = np.where(total_sum != 0, 100 * (sm1 - sm2) / total_sum, 0)\n\n    # Calculate k factor\n    if select:\n        k = np.abs(chande_mo) / 100\n    else:\n        k = np.zeros_like(source)\n        for i in range(len(source)):\n            start_idx = max(0, i - length + 1)\n            k[i] = np.std(source[start_idx:i+1])\n\n    # Calculate VIDYA\n    vidya = np.zeros_like(source)\n    vidya[0] = source[0]\n    for i in range(1, len(source)):\n        vidya[i] = alpha * k[i] * source[i] + (1 - alpha * k[i]) * vidya[i-1]\n\n    return vidya\n\n\ndef vidya(candles: np.ndarray, length: int = 9, fix_cmo: bool = True, select: bool = True, source_type: str = \"close\", sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    VIDYA - Variable Index Dynamic Average\n\n    :param candles: np.ndarray\n    :param length: int - default: 9\n    :param fix_cmo: bool - default: True    Fixed CMO Length (9)?\n    :param select: bool - default: True     Calculation Method: CMO/StDev?\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    res = vidya_numba(source, length, fix_cmo, select)\n\n    return same_length(candles, res) if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/vlma.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, slice_candles\nfrom jesse.indicators.ma import ma\nfrom jesse.indicators.mean_ad import mean_ad\nfrom jesse.indicators.median_ad import median_ad\n\ndef moving_std(source: np.ndarray, window: int) -> np.ndarray:\n    n = len(source)\n    stdArr = np.empty_like(source)\n    if n < window:\n        # Vectorized cumulative standard deviation for all indices\n        cumsum = np.cumsum(source)\n        cumsum2 = np.cumsum(source**2)\n        counts = np.arange(1, n + 1)\n        means = cumsum / counts\n        variances = cumsum2 / counts - means**2\n        stdArr[:] = np.sqrt(np.maximum(variances, 0))\n    else:\n        # For indices with less than a full window, use cumulative statistics\n        cumsum_init = np.cumsum(source[:window-1])\n        cumsum2_init = np.cumsum(source[:window-1]**2)\n        counts_init = np.arange(1, window)\n        means_init = cumsum_init / counts_init\n        variances_init = cumsum2_init / counts_init - means_init**2\n        stdArr[:window-1] = np.sqrt(np.maximum(variances_init, 0))\n        \n        # For full windows, use sliding window view and compute standard deviation\n        sw = np.lib.stride_tricks.sliding_window_view(source, window_shape=window)\n        stdArr[window-1:] = np.std(sw, axis=1)\n    return stdArr\n\n\ndef vlma(candles: np.ndarray, min_period: int = 5, max_period: int = 50, matype: int = 0, devtype: int = 0, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    Variable Length Moving Average\n\n    :param candles: np.ndarray\n    :param min_period: int - default: 5\n    :param max_period: int - default: 50\n    :param matype: int - default: 0\n    :param devtype: int - default: 0\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n\n    # Accept normal array too.\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    if matype == 24 or matype == 29:\n        mean = ma(candles, period=max_period, matype=matype, source_type=source_type, sequential=True)\n    else:\n        mean = ma(source, period=max_period, matype=matype, sequential=True)\n\n    if devtype == 0:\n       stdDev = moving_std(source, max_period)\n    elif devtype == 1:\n       stdDev = mean_ad(source, max_period, sequential=True)\n    elif devtype == 2:\n       stdDev = median_ad(source, max_period, sequential=True)\n\n    a = mean - (1.75 * stdDev)\n    b = mean - (0.25 * stdDev)\n    c = mean + (0.25 * stdDev)\n    d = mean + (1.75 * stdDev)\n\n    res = vlma_fast(source, a, b, c, d , min_period, max_period)\n\n    return res if sequential else res[-1]\n\n\n@njit(cache=True)\ndef vlma_fast(source, a, b, c, d, min_period, max_period):\n    newseries = np.copy(source)\n    period = np.zeros_like(source)\n    for i in range(1, source.shape[0]):\n        nz_period = period[i - 1] if period[i - 1] != 0 else max_period\n        period[i] = nz_period + 1 if b[i] <= source[i] <= c[i] else nz_period - 1 if source[i] < a[i] or source[i] > d[i] else nz_period\n        period[i] = max(min(period[i], max_period), min_period)\n        sc = 2 / (period[i] + 1)\n        newseries[i] = (source[i] * sc) + ((1 - sc) * newseries[i - 1])\n    return newseries\n"
  },
  {
    "path": "jesse/indicators/volume.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\n\nfrom jesse.helpers import slice_candles\n\nVolume = namedtuple(\"Volume\", [\"volume\", \"ma\"])\n\n\ndef volume(\n    candles: np.ndarray,\n    period: int = 20,\n    sequential: bool = False\n) -> Volume:\n    \"\"\"\n    Volume with Moving Average\n\n    :param candles: np.ndarray\n    :param period: int - default: 20\n    :param sequential: bool - default: False\n\n    :return: Volume(volume, ma)\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    volume_data = candles[:, 5]\n    if len(volume_data) < period:\n        volume_ma = np.full(len(volume_data), np.nan)\n    else:\n        volume_ma = np.concatenate((np.full(period - 1, np.nan), np.convolve(volume_data, np.ones(period) / period, mode='valid')))\n\n    if sequential:\n        return Volume(volume_data, volume_ma)\n    else:\n        return Volume(volume_data[-1], volume_ma[-1])\n"
  },
  {
    "path": "jesse/indicators/vosc.py",
    "content": "from typing import Union\nfrom jesse.indicators.sma import sma\nimport numpy as np\n\n\ndef vosc(candles: np.ndarray, short_period: int = 2, long_period: int = 5, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    VOSC - Volume Oscillator\n\n    :param candles: np.ndarray\n    :param short_period: int - default: 2\n    :param long_period: int - default: 5\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    from jesse.helpers import same_length, slice_candles\n\n    candles = slice_candles(candles, sequential)\n    volume = candles[:, 5]\n\n    short_sma = sma(volume, short_period, sequential=True)\n    long_sma = sma(volume, long_period, sequential=True)\n\n    vosc_values = (short_sma - long_sma) / long_sma * 100\n\n    vosc_result = same_length(candles, vosc_values)\n\n    return vosc_result if sequential else vosc_result[-1]\n"
  },
  {
    "path": "jesse/indicators/voss.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\nVossFilter = namedtuple('VossFilter', ['voss', 'filt'])\n\n\ndef voss(candles: np.ndarray, period: int = 20, predict: int = 3, bandwith: float = 0.25, source_type: str = \"close\",\n         sequential: bool = False) -> VossFilter:\n    \"\"\"\n    Voss indicator by John F. Ehlers\n\n    :param candles: np.ndarray\n    :param period: int - default: 20\n    :param predict: int - default: 3\n    :param bandwith: float - default: 0.25\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n    voss_val, filt = voss_fast(source, period, predict, bandwith)\n\n    if sequential:\n        return VossFilter(voss_val, filt)\n    else:\n        return VossFilter(voss_val[-1], filt[-1])\n\n\n@njit(cache=True)\ndef voss_fast(source, period, predict, bandwith):\n    voss = np.full_like(source, 0)\n    filt = np.full_like(source, 0)\n\n    pi = np.pi\n\n    order = 3 * predict\n    f1 = np.cos(2 * pi / period)\n    g1 = np.cos(bandwith * 2 * pi / period)\n    s1 = 1 / g1 - np.sqrt(1 / (g1 * g1) - 1)\n\n    for i in range(source.shape[0]):\n        if i > period and i > 5 and i > order:\n            filt[i] = 0.5 * (1 - s1) * (source[i] - source[i - 2]) + f1 * (1 + s1) * filt[i - 1] - s1 * filt[i - 2]\n\n    for i in range(source.shape[0]):\n        if not (i <= period or i <= 5 or i <= order):\n            sumc = 0\n            for count in range(order):\n                sumc = sumc + ((count + 1) / float(order)) * voss[i - (order - count)]\n            voss[i] = ((3 + order) / 2) * filt[i] - sumc\n    return voss, filt\n"
  },
  {
    "path": "jesse/indicators/vpci.py",
    "content": "from collections import namedtuple\n\nfrom jesse.indicators.sma import sma\nimport numpy as np\n\nfrom jesse.helpers import slice_candles\n\nVPCI = namedtuple('VPCI', ['vpci', 'vpcis'])\n\n\ndef vpci(candles: np.ndarray, short_range: int = 5, long_range: int = 25, sequential: bool = False) -> VPCI:\n    \"\"\"\n    VPCI - Volume Price Confirmation Indicator\n\n    :param candles: np.ndarray\n    :param short_range: int - default: 5\n    :param long_range: int - default: 25\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    vwma_long = sma(candles[:, 2] * candles[:, 5], long_range, sequential=True) / sma(candles[:, 5], long_range, sequential=True)\n    VPC = vwma_long - sma(candles[:, 2], long_range, sequential=True)\n\n    vwma_short = sma(candles[:, 2] * candles[:, 5], short_range, sequential=True) / sma(candles[:, 5], short_range, sequential=True)\n    VPR = vwma_short / sma(candles[:, 2], short_range, sequential=True)\n\n    VM = sma(candles[:, 5], short_range, sequential=True) / sma(candles[:, 5], long_range, sequential=True)\n    VPCI_val = VPC * VPR * VM\n\n    VPCIS = sma(VPCI_val * candles[:, 5], short_range, sequential=True) / sma(candles[:, 5], short_range, sequential=True)\n\n    if sequential:\n        return VPCI(VPCI_val, VPCIS)\n    else:\n        return VPCI(VPCI_val[-1], VPCIS[-1])\n"
  },
  {
    "path": "jesse/indicators/vpt.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, np_shift, slice_candles\n\n\ndef vpt(candles: np.ndarray, source_type: str = \"close\", sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    Volume Price Trend (VPT)\n\n    :param candles: np.ndarray\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n    vpt_val = (candles[:, 5] * ((source - np_shift(source, 1, fill_value=np.nan)) / np_shift(source, 1, fill_value=np.nan)))\n    res = np_shift(vpt_val, 1, fill_value=np.nan) + vpt_val\n\n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/vpwma.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef vpwma(candles: np.ndarray, period: int = 14, power: float = 0.382, source_type: str = \"close\", sequential: bool = False) -> Union[\n    float, np.ndarray]:\n    \"\"\"\n    Variable Power Weighted Moving Average\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param power: float - default: 0.382\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n\n    # Accept normal array too.\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    res = vpwma_fast(source, period, power)\n\n    return res if sequential else res[-1]\n\n\n@njit(cache=True)\ndef vpwma_fast(source, period, power):\n    newseries = np.copy(source)\n    for j in range(period + 1, source.shape[0]):\n        my_sum = 0.0\n        weightSum = 0.0\n        for i in range(period - 1):\n            weight = np.power(period - i, power)\n            my_sum += (source[j - i] * weight)\n            weightSum += weight\n        newseries[j] = my_sum / weightSum\n    return newseries\n"
  },
  {
    "path": "jesse/indicators/vwap.py",
    "content": "from typing import Union\nimport numpy as np\nfrom jesse.helpers import get_candle_source, slice_candles\n\n\ndef vwap(\n        candles: np.ndarray, source_type: str = \"hlc3\", anchor: str = \"D\", sequential: bool = False\n) -> Union[float, np.ndarray]:\n    \"\"\"\n    VWAP\n\n    :param candles: np.ndarray\n    :param source_type: str - default: \"hlc3\"\n    :param anchor: str - default: \"D\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    # Check if jesse_rust is available\n    try:\n        import jesse_rust\n        \n        candles = slice_candles(candles, sequential)\n        \n        # Use the Rust implementation with anchoring support\n        result = jesse_rust.vwap(candles, source_type, anchor, sequential)\n        \n        if sequential:\n            return result\n        else:\n            return None if np.isnan(result[-1]) else result[-1]\n    \n    except ImportError:\n        # Fallback to original Python implementation with anchoring\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n        \n        # Convert timestamps to period indices\n        timestamps = candles[:, 0].astype('datetime64[ms]').astype(f'datetime64[{anchor}]')\n        group_indices = np.zeros(len(timestamps), dtype=np.int64)\n        \n        # Mark the start of each new period\n        group_indices[1:] = (timestamps[1:] != timestamps[:-1]).astype(np.int64)\n        group_indices = np.cumsum(group_indices)\n        \n        vwap_values = _calculate_vwap(source, candles[:, 5], group_indices)\n\n        if sequential:\n            return vwap_values\n        else:\n            return None if np.isnan(vwap_values[-1]) else vwap_values[-1]\n\n\ndef _calculate_vwap(source: np.ndarray, volume: np.ndarray, group_indices: np.ndarray) -> np.ndarray:\n    \"\"\"\n    Calculate VWAP values with anchoring logic (pure Python implementation fallback)\n    \"\"\"\n    vwap_values = np.zeros_like(source)\n    cum_vol = 0.0\n    cum_vol_price = 0.0\n    current_group = group_indices[0]\n    \n    for i in range(len(source)):\n        if group_indices[i] != current_group:\n            cum_vol = 0.0\n            cum_vol_price = 0.0\n            current_group = group_indices[i]\n            \n        vol_price = volume[i] * source[i]\n        cum_vol_price += vol_price\n        cum_vol += volume[i]\n        \n        vwap_values[i] = cum_vol_price / cum_vol if cum_vol != 0 else np.nan\n        \n    return vwap_values\n"
  },
  {
    "path": "jesse/indicators/vwma.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\nfrom jesse_rust import vwma as vwma_rust\n\n\ndef vwma(candles: np.ndarray, period: int = 20, source_type: str = \"close\", sequential: bool = False) -> Union[\n        float, np.ndarray]:\n    \"\"\"\n    VWMA - Volume Weighted Moving Average\n\n    :param candles: np.ndarray\n    :param period: int - default: 20\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    if len(candles.shape) == 1:\n        # Handle 1D array case by creating dummy candles with volume=1\n        source = candles\n        dummy_candles = np.column_stack([\n            np.zeros(len(source)),  # timestamp\n            np.zeros(len(source)),  # open\n            source,                 # close\n            np.zeros(len(source)),  # high\n            np.zeros(len(source)),  # low\n            np.ones(len(source))    # volume\n        ])\n        candles_f64 = np.asarray(dummy_candles, dtype=np.float64)\n    else:\n        candles = slice_candles(candles, sequential)\n        # Convert to float64 for Rust compatibility\n        candles_f64 = np.asarray(candles, dtype=np.float64)\n        \n        # Update close column if different source type is requested\n        if source_type != \"close\":\n            source = get_candle_source(candles, source_type=source_type)\n            candles_f64[:, 2] = source\n\n    # Call the Rust implementation\n    result = vwma_rust(candles_f64, period)\n    \n    return result if sequential else result[-1]\n"
  },
  {
    "path": "jesse/indicators/vwmacd.py",
    "content": "from collections import namedtuple\n\nimport numpy as np\nfrom .vwma import vwma\n\nfrom jesse.helpers import slice_candles\n\nVWMACD = namedtuple('VWMACD', ['macd', 'signal', 'hist'])\n\n\ndef vwmacd(candles: np.ndarray, fast_period: int = 12, slow_period: int = 26, signal_period: int = 9,\n           sequential: bool = False) -> VWMACD:\n    \"\"\"\n    @author David.\n    credits: https://www.tradingview.com/script/33Y1LzRq-Volume-Weighted-Moving-Average-Convergence-Divergence-MACD/\n    VWMACD - Volume Weighted Moving Average Convergence/Divergence\n\n    :param candles: np.ndarray\n    :param fast_period: int - default: 12\n    :param slow_period: int - default: 26\n    :param signal_period: int - default: 9\n    :param sequential: bool - default: False\n\n    :return: VWMACD(macd, signal, hist)\n    \"\"\"\n    fastWMA = vwma(candles, fast_period, sequential=True)\n    slowWMA = vwma(candles, slow_period, sequential=True)\n\n    macd_val = fastWMA - slowWMA\n    signal = vwma(macd_val, signal_period, sequential=True)\n    hist = macd_val - signal\n\n    if sequential:\n        return VWMACD(macd_val, signal, hist)\n    else:\n        return VWMACD(macd_val[-1], signal[-1], hist[-1])\n"
  },
  {
    "path": "jesse/indicators/wad.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import same_length, slice_candles\n\n\n@njit\ndef _wad_numba(high: np.ndarray, low: np.ndarray, close: np.ndarray) -> np.ndarray:\n    n = len(close)\n    ad = np.zeros(n, dtype=np.float64)\n\n    # The first element doesn't have a previous close, so set its adjustment to 0\n    ad[0] = 0\n\n    # Calculate the Acc/Dist component iteratively\n    for i in range(1, n):\n        if close[i] > close[i - 1]:\n            ad[i] = close[i] - min(low[i], close[i - 1])\n        elif close[i] < close[i - 1]:\n            ad[i] = close[i] - max(high[i], close[i - 1])\n        else:\n            ad[i] = 0\n\n    # Williams Accumulation/Distribution is the cumulative sum of these adjustments\n    wad_values = np.cumsum(ad)\n    return wad_values\n\n\ndef wad(candles: np.ndarray, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    WAD - Williams Accumulation/Distribution\n\n    :param candles: np.ndarray\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    # In this project, candle columns are arranged such that:\n    # candles[:,3] -> high\n    # candles[:,4] -> low\n    # candles[:,1] -> close\n    res = _wad_numba(\n        np.ascontiguousarray(candles[:, 3]),\n        np.ascontiguousarray(candles[:, 4]),\n        np.ascontiguousarray(candles[:, 1])\n    )\n\n    return same_length(candles, res) if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/waddah_attr_explosion.py",
    "content": "from collections import namedtuple\nfrom .macd import macd\nfrom .sma import sma\nfrom .stddev import stddev\nimport numpy as np\nfrom jesse.helpers import get_candle_source, slice_candles\n\nWaddahAttarExplosionTuple = namedtuple(\n    'WaddahAttarExplosionTuple', ['explosion_line', 'trend_power', 'trend_direction']\n)\n\n\ndef waddah_attar_explosion(candles: np.ndarray, sensitivity: int = 150, fast_length: int = 20, slow_length: int = 40, channel_length: int = 20, mult: float = 2.0, source_type: str = \"close\") -> WaddahAttarExplosionTuple:\n    \"\"\"\n    @author LazyBear \n    credits: https://www.tradingview.com/v/iu3kKWDI/\n\n    WADDAH_ATTAR_EXPLOSION - Waddah Attar Explosion\n\n    :param candles: np.ndarray\n    :param sensitivity: int - default: 150\n    :param fast_length: int - default: 20\n    :param slow_length: int - default: 40\n    :param channel_length: int - default: 20\n    :param mult: float - default: 2.0\n    :param source_type: str - default: \"close\"\n\n    :return: WaddahAttarExplosionTuple(explosion_line, trend_power, trend_direction)\n    \"\"\"\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, False)\n        source = get_candle_source(candles, source_type=source_type)\n\n    t1 = (macd(source, fast_period=fast_length, slow_period=slow_length)[0] -\n          macd(source[:-1], fast_period=fast_length, slow_period=slow_length)[0])*sensitivity\n    trend = 1 if t1 >= 0 else -1\n    e1 = _calc_bb_upper(source, channel_length, mult) - _calc_bb_lower(source, channel_length, mult)\n\n    return WaddahAttarExplosionTuple(e1, t1, trend)\n\n\ndef _calc_bb_upper(source, length, mult):\n    basis = sma(source, length)\n    dev = mult * stddev(source, length)\n    return basis + dev\n\n\ndef _calc_bb_lower(source, length, mult):\n    basis = sma(source, length)\n    dev = mult * stddev(source, length)\n    return basis - dev\n"
  },
  {
    "path": "jesse/indicators/wclprice.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import slice_candles\n\n\ndef wclprice(candles: np.ndarray, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    WCLPRICE - Weighted Close Price\n\n    :param candles: np.ndarray\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    # Calculate weighted close price as (high + low + 2*close) / 4, with high=candles[:,3], low=candles[:,4], close=candles[:,2]\n    res = (candles[:,3] + candles[:,4] + 2 * candles[:,2]) / 4.0\n\n    return res if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/wilders.py",
    "content": "from typing import Union\n\nimport numpy as np\nfrom numba import njit\n\nfrom jesse.helpers import get_candle_source, same_length, slice_candles\n\n\n@njit\ndef _wilders_fast(source: np.ndarray, period: int) -> np.ndarray:\n    # Pre-allocate the output array\n    res = np.zeros_like(source)\n    # First value is a simple copy\n    res[0] = source[0]\n\n    # Calculate Wilder's Smoothing\n    for i in range(1, len(source)):\n        res[i] = (res[i - 1] * (period - 1) + source[i]) / period\n\n    return res\n\n\ndef wilders(candles: np.ndarray, period: int = 5, source_type: str = \"close\", sequential: bool = False) -> Union[\n        float, np.ndarray]:\n    \"\"\"\n    WILDERS - Wilders Smoothing\n\n    :param candles: np.ndarray\n    :param period: int - default: 5\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    res = _wilders_fast(source, period)\n\n    return same_length(candles, res) if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/willr.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import slice_candles\nfrom jesse_rust import willr as willr_rust\n\n\ndef willr(candles: np.ndarray, period: int = 14, sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    WILLR - Williams' %R\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    \n    # Convert to float64 for Rust compatibility\n    candles_f64 = np.asarray(candles, dtype=np.float64)\n    \n    # Call the Rust implementation\n    result = willr_rust(candles_f64, period)\n    \n    return result if sequential else result[-1]\n"
  },
  {
    "path": "jesse/indicators/wma.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\nfrom jesse_rust import wma as wma_rust\n\n\ndef wma(candles: np.ndarray, period: int = 30, source_type: str = \"close\", sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    WMA - Weighted Moving Average\n\n    :param candles: np.ndarray\n    :param period: int - default: 30\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n\n    # Convert to float64 for Rust compatibility\n    source_f64 = np.asarray(source, dtype=np.float64)\n    \n    # Call the Rust implementation\n    result = wma_rust(source_f64, period)\n    \n    return result if sequential else result[-1]\n"
  },
  {
    "path": "jesse/indicators/wt.py",
    "content": "from collections import namedtuple\nimport numpy as np\nfrom jesse.helpers import slice_candles\nimport jesse_rust\n\nWavetrend = namedtuple('Wavetrend', ['wt1', 'wt2', 'wtCrossUp', 'wtCrossDown', 'wtOversold', 'wtOverbought', 'wtVwap'])\n\n\n# Wavetrend indicator ported from:  https://www.tradingview.com/script/Msm4SjwI-VuManChu-Cipher-B-Divergences/\n#                                   https://www.tradingview.com/script/2KE8wTuF-Indicator-WaveTrend-Oscillator-WT/\n#\n# buySignal = wtCross and wtCrossUp and wtOversold\n# sellSignal = wtCross and wtCrossDown and wtOverbought\n#\n# See https://github.com/ysdede/lazarus3/blob/partialexit/strategies/lazarus3/__init__.py for working jesse.ai example.\n\ndef wt(candles: np.ndarray, wtchannellen: int = 9, wtaveragelen: int = 12, wtmalen: int = 3, oblevel: int = 53, oslevel: int = -53, source_type: str = \"hlc3\", sequential: bool = False) -> Wavetrend:\n    \"\"\"\n    Wavetrend indicator\n\n    :param candles: np.ndarray\n    :param wtchannellen:  int - default: 9\n    :param wtaveragelen: int - default: 12\n    :param wtmalen: int - default: 3\n    :param oblevel: int - default: 53\n    :param oslevel: int - default: -53\n    :param source_type: str - default: \"hlc3\"\n    :param sequential: bool - default: False\n\n    :return: Wavetrend\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n    \n    # Use the Rust implementation\n    wt1, wt2, wtCrossUp, wtCrossDown, wtOversold, wtOverbought, wtVwap = jesse_rust.wt(\n        candles, \n        wtchannellen, \n        wtaveragelen, \n        wtmalen, \n        float(oblevel), \n        float(oslevel), \n        source_type\n    )\n\n    if sequential:\n        return Wavetrend(wt1, wt2, wtCrossUp, wtCrossDown, wtOversold, wtOverbought, wtVwap)\n    else:\n        return Wavetrend(wt1[-1], wt2[-1], wtCrossUp[-1], wtCrossDown[-1], wtOversold[-1], wtOverbought[-1], wtVwap[-1])\n"
  },
  {
    "path": "jesse/indicators/zlema.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, same_length, slice_candles\nimport jesse_rust\n\n\ndef zlema(candles: np.ndarray, period: int = 20, source_type: str = \"close\", sequential: bool = False) -> Union[\n        float, np.ndarray]:\n    \"\"\"\n    Zero-Lag Exponential Moving Average\n\n    :param candles: np.ndarray\n    :param period: int - default: 20\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    if len(candles.shape) == 1:\n        source = candles\n    else:\n        candles = slice_candles(candles, sequential)\n        source = get_candle_source(candles, source_type=source_type)\n        \n    # Use the Rust implementation\n    res = jesse_rust.zlema(source, period)\n\n    return same_length(candles, res) if sequential else res[-1]\n"
  },
  {
    "path": "jesse/indicators/zscore.py",
    "content": "from typing import Union\n\nimport numpy as np\n\nfrom jesse.helpers import get_candle_source, slice_candles\nfrom jesse.indicators.ma import ma\nfrom jesse.indicators.mean_ad import mean_ad\nfrom jesse.indicators.median_ad import median_ad\n\n\ndef zscore(candles: np.ndarray, period: int = 14, matype: int = 0, nbdev: float = 1, devtype: int = 0, source_type: str = \"close\",\n           sequential: bool = False) -> Union[float, np.ndarray]:\n    \"\"\"\n    zScore\n\n    :param candles: np.ndarray\n    :param period: int - default: 14\n    :param matype: int - default: 0\n    :param nbdev: float - default: 1\n    :param devtype: int - default: 0\n    :param source_type: str - default: \"close\"\n    :param sequential: bool - default: False\n\n    :return: float | np.ndarray\n    \"\"\"\n    candles = slice_candles(candles, sequential)\n\n    source = get_candle_source(candles, source_type=source_type)\n    if matype == 24 or matype == 29:\n        means = ma(candles, period=period, matype=matype, source_type=source_type, sequential=True)\n    else:\n        means = ma(source, period=period, matype=matype, sequential=True)\n\n    if devtype == 0:\n        if len(source) < period:\n            sigmas = np.full_like(source, np.nan, dtype=np.float64)\n        else:\n            # Create a sliding window view of the source array\n            rolling_windows = np.lib.stride_tricks.sliding_window_view(source, window_shape=period)\n            # Calculate std using population formula (ddof=0)\n            std_values = np.std(rolling_windows, axis=1, ddof=0)\n            sigmas = np.full(source.shape, np.nan, dtype=np.float64)\n            sigmas[period-1:] = std_values\n        sigmas = sigmas * nbdev\n    elif devtype == 1:\n       sigmas = mean_ad(source, period, sequential=True) * nbdev\n    elif devtype == 2:\n       sigmas = median_ad(source, period, sequential=True) * nbdev\n\n    zScores = (source - means) / sigmas\n\n    return zScores if sequential else zScores[-1]\n"
  },
  {
    "path": "jesse/info.py",
    "content": "from jesse.enums import exchanges as exchanges_enums, timeframes\nfrom jesse.services.env import ENV_VALUES, is_dev_env\n\n\nif is_dev_env():\n    JESSE_API_URL = ENV_VALUES.get('JESSE_API_URL', 'http://localhost:8040/api')\n    JESSE_API2_URL = ENV_VALUES.get('JESSE_API2_URL', 'http://localhost:8080')\n    JESSE_WEBSITE_URL = ENV_VALUES.get('JESSE_WEBSITE_URL', 'http://localhost:8040')\nelse:\n    JESSE_API_URL = 'https://api1.jesse.trade/api'\n    JESSE_API2_URL = 'https://api2.jesse.trade'\n    JESSE_WEBSITE_URL = 'https://jesse.trade'\n\nBYBIT_TIMEFRAMES = [timeframes.MINUTE_1, timeframes.MINUTE_3, timeframes.MINUTE_5, timeframes.MINUTE_15, timeframes.MINUTE_30,\n                    timeframes.HOUR_1, timeframes.HOUR_2, timeframes.HOUR_4, timeframes.HOUR_6, timeframes.HOUR_12, timeframes.DAY_1]\nBINANCE_TIMEFRAMES = [timeframes.MINUTE_1, timeframes.MINUTE_3, timeframes.MINUTE_5, timeframes.MINUTE_15, timeframes.MINUTE_30,\n                      timeframes.HOUR_1, timeframes.HOUR_2, timeframes.HOUR_4, timeframes.HOUR_6, timeframes.HOUR_8, timeframes.HOUR_12, timeframes.DAY_1]\nCOINBASE_TIMEFRAMES = [timeframes.MINUTE_1, timeframes.MINUTE_5,\n                       timeframes.MINUTE_15, timeframes.HOUR_1, timeframes.HOUR_6, timeframes.DAY_1]\nAPEX_OMNI_TIMEFRAMES = [timeframes.MINUTE_1, timeframes.MINUTE_5, timeframes.MINUTE_15,\n                       timeframes.MINUTE_30, timeframes.HOUR_1, timeframes.HOUR_2, timeframes.HOUR_4, timeframes.HOUR_6, timeframes.HOUR_12, timeframes.DAY_1]\nGATE_TIMEFRAMES = [timeframes.MINUTE_1, timeframes.MINUTE_5, timeframes.MINUTE_15,\n                   timeframes.MINUTE_30, timeframes.HOUR_1, timeframes.HOUR_2, timeframes.HOUR_4, timeframes.HOUR_6, timeframes.HOUR_8, timeframes.HOUR_12, timeframes.DAY_1, timeframes.WEEK_1]\nFTX_TIMEFRAMES = [timeframes.MINUTE_1, timeframes.MINUTE_3, timeframes.MINUTE_5, timeframes.MINUTE_15, timeframes.MINUTE_30,\n                  timeframes.HOUR_1, timeframes.HOUR_2, timeframes.HOUR_4, timeframes.HOUR_6, timeframes.HOUR_12, timeframes.DAY_1]\nBITGET_TIMEFRAMES = [timeframes.MINUTE_1, timeframes.MINUTE_5, timeframes.MINUTE_15,\n                     timeframes.MINUTE_30, timeframes.HOUR_1, timeframes.HOUR_4, timeframes.HOUR_12, timeframes.DAY_1]\nDYDX_TIMEFRAMES = [timeframes.MINUTE_1, timeframes.MINUTE_5, timeframes.MINUTE_15,\n                   timeframes.MINUTE_30, timeframes.HOUR_1, timeframes.HOUR_4, timeframes.DAY_1]\nHYPERLIQUID_TIMEFRAMES = [timeframes.MINUTE_1, timeframes.MINUTE_3, timeframes.MINUTE_5, timeframes.MINUTE_15,\n                         timeframes.MINUTE_30, timeframes.HOUR_1, timeframes.HOUR_2, timeframes.HOUR_4, timeframes.HOUR_8, timeframes.HOUR_12, timeframes.DAY_1]\n\nexchange_info = {\n    # BYBIT_USDT_PERPETUAL\n    exchanges_enums.BYBIT_USDT_PERPETUAL: {\n        \"name\": exchanges_enums.BYBIT_USDT_PERPETUAL,\n        \"url\": JESSE_WEBSITE_URL + \"/bybit\",\n        \"fee\": 0.00055,\n        \"type\": \"futures\",\n        \"settlement_currency\": \"USDT\",\n        \"supported_leverage_modes\": [\"cross\", \"isolated\"],\n        \"supported_timeframes\": BYBIT_TIMEFRAMES,\n        \"modes\": {\n            \"backtesting\": True,\n            \"live_trading\": True,\n        },\n        \"required_live_plan\": \"premium\",\n    },\n    # BYBIT_USDT_PERPETUAL_TESTNET\n    exchanges_enums.BYBIT_USDT_PERPETUAL_TESTNET: {\n        \"name\": exchanges_enums.BYBIT_USDT_PERPETUAL_TESTNET,\n        \"url\": JESSE_WEBSITE_URL + \"/bybit\",\n        \"fee\": 0.00055,\n        \"type\": \"futures\",\n        \"settlement_currency\": \"USDT\",\n        \"supported_leverage_modes\": [\"cross\", \"isolated\"],\n        \"supported_timeframes\": BYBIT_TIMEFRAMES,\n        \"modes\": {\n            \"backtesting\": False,\n            \"live_trading\": True,\n        },\n        \"required_live_plan\": \"premium\",\n    },\n    # BYBIT_USDT_PERPETUAL\n    exchanges_enums.BYBIT_USDC_PERPETUAL: {\n        \"name\": exchanges_enums.BYBIT_USDC_PERPETUAL,\n        \"url\": JESSE_WEBSITE_URL + \"/bybit\",\n        \"fee\": 0.00055,\n        \"type\": \"futures\",\n        \"settlement_currency\": \"USDC\",\n        \"supported_leverage_modes\": [\"cross\", \"isolated\"],\n        \"supported_timeframes\": BYBIT_TIMEFRAMES,\n        \"modes\": {\n            \"backtesting\": True,\n            \"live_trading\": True,\n        },\n        \"required_live_plan\": \"premium\",\n    },\n    # BYBIT_USDC_PERPETUAL_TESTNET\n    exchanges_enums.BYBIT_USDC_PERPETUAL_TESTNET: {\n        \"name\": exchanges_enums.BYBIT_USDC_PERPETUAL_TESTNET,\n        \"url\": JESSE_WEBSITE_URL + \"/bybit\",\n        \"fee\": 0.00055,\n        \"type\": \"futures\",\n        \"supported_leverage_modes\": [\"cross\", \"isolated\"],\n        \"supported_timeframes\": BYBIT_TIMEFRAMES,\n        \"settlement_currency\": \"USDC\",\n        \"modes\": {\n            \"backtesting\": False,\n            \"live_trading\": True,\n        },\n        \"required_live_plan\": \"premium\",\n    },\n    # BYBIT_SPOT_TESTNET\n    exchanges_enums.BYBIT_SPOT: {\n        \"name\": exchanges_enums.BYBIT_SPOT,\n        \"url\": \"https://jesse.trade/bybit\",\n        \"fee\": 0.001,\n        \"type\": \"spot\",\n        \"supported_leverage_modes\": [\"cross\", \"isolated\"],\n        \"supported_timeframes\": BYBIT_TIMEFRAMES,\n        \"modes\": {\n            \"backtesting\": True,\n            \"live_trading\": True,\n        },\n        \"required_live_plan\": \"premium\",\n    },\n    # BYBIT_SPOT_TESTNET\n    exchanges_enums.BYBIT_SPOT_TESTNET: {\n        \"name\": exchanges_enums.BYBIT_SPOT_TESTNET,\n        \"url\": \"https://jesse.trade/bybit\",\n        \"fee\": 0.001,\n        \"type\": \"spot\",\n        \"supported_leverage_modes\": [\"cross\", \"isolated\"],\n        \"supported_timeframes\": BYBIT_TIMEFRAMES,\n        \"modes\": {\n            \"backtesting\": False,\n            \"live_trading\": True,\n        },\n        \"required_live_plan\": \"premium\",\n    },\n    # BITFINEX_SPOT\n    exchanges_enums.BITFINEX_SPOT: {\n        \"name\": exchanges_enums.BITFINEX_SPOT,\n        \"url\": \"https://bitfinex.com\",\n        \"fee\": 0.002,\n        \"type\": \"spot\",\n        \"supported_leverage_modes\": [\"cross\"],\n        \"supported_timeframes\": [\n            timeframes.MINUTE_1,\n            timeframes.MINUTE_5,\n            timeframes.MINUTE_15,\n            timeframes.MINUTE_30,\n            timeframes.HOUR_1,\n            timeframes.HOUR_3,\n            timeframes.HOUR_6,\n            timeframes.HOUR_12,\n            timeframes.DAY_1,\n        ],\n        \"modes\": {\n            \"backtesting\": True,\n            \"live_trading\": False,\n        },\n        \"required_live_plan\": \"premium\",\n    },\n    # BINANCE_SPOT\n    exchanges_enums.BINANCE_SPOT: {\n        \"name\": exchanges_enums.BINANCE_SPOT,\n        \"url\": \"https://binance.com\",\n        \"fee\": 0.001,\n        \"type\": \"spot\",\n        \"supported_leverage_modes\": [\"cross\", \"isolated\"],\n        \"supported_timeframes\": BINANCE_TIMEFRAMES,\n        \"modes\": {\n            \"backtesting\": True,\n            \"live_trading\": True,\n        },\n        \"required_live_plan\": \"premium\",\n    },\n    # BINANCE_US_SPOT\n    exchanges_enums.BINANCE_US_SPOT: {\n        \"name\": exchanges_enums.BINANCE_US_SPOT,\n        \"url\": \"https://binance.us\",\n        \"fee\": 0.001,\n        \"type\": \"spot\",\n        \"supported_leverage_modes\": [\"cross\", \"isolated\"],\n        \"supported_timeframes\": BINANCE_TIMEFRAMES,\n        \"modes\": {\n            \"backtesting\": True,\n            \"live_trading\": True,\n        },\n        \"required_live_plan\": \"premium\",\n    },\n    # BINANCE_PERPETUAL_FUTURES\n    exchanges_enums.BINANCE_PERPETUAL_FUTURES: {\n        \"name\": exchanges_enums.BINANCE_PERPETUAL_FUTURES,\n        \"url\": \"https://binance.com\",\n        \"fee\": 0.0004,\n        \"type\": \"futures\",\n        \"supported_leverage_modes\": [\"cross\", \"isolated\"],\n        \"supported_timeframes\": BINANCE_TIMEFRAMES,\n        \"modes\": {\n            \"backtesting\": True,\n            \"live_trading\": True,\n        },\n        \"required_live_plan\": \"premium\",\n    },\n    # BINANCE_PERPETUAL_FUTURES_TESTNET\n    exchanges_enums.BINANCE_PERPETUAL_FUTURES_TESTNET: {\n        \"name\": exchanges_enums.BINANCE_PERPETUAL_FUTURES_TESTNET,\n        \"url\": \"https://binance.com\",\n        \"fee\": 0.0004,\n        \"type\": \"futures\",\n        \"supported_leverage_modes\": [\"cross\", \"isolated\"],\n        \"supported_timeframes\": BINANCE_TIMEFRAMES,\n        \"modes\": {\n            \"backtesting\": False,\n            \"live_trading\": True,\n        },\n        \"required_live_plan\": \"premium\",\n    },\n    # COINBASE_SPOT\n    exchanges_enums.COINBASE_SPOT: {\n        \"name\": exchanges_enums.COINBASE_SPOT,\n        \"url\": \"https://www.coinbase.com/advanced-trade/spot/BTC-USD\",\n        \"fee\": 0.0003,\n        \"type\": \"spot\",\n        \"supported_leverage_modes\": [\"cross\", \"isolated\"],\n        \"supported_timeframes\": COINBASE_TIMEFRAMES,\n        \"modes\": {\n            \"backtesting\": True,\n            \"live_trading\": True,\n        },\n        \"required_live_plan\": \"premium\",\n    },\n    exchanges_enums.APEX_OMNI_PERPETUAL_TESTNET: {\n        \"name\": exchanges_enums.APEX_OMNI_PERPETUAL_TESTNET,\n        \"url\": \"https://testnet.omni.apex.exchange/trade/BTCUSD\",\n        \"fee\": 0.0005,\n        \"type\": \"futures\",\n        \"supported_leverage_modes\": [\"cross\"],\n        \"supported_timeframes\": APEX_OMNI_TIMEFRAMES,\n        \"modes\": {\n            \"backtesting\": False,\n            \"live_trading\": False,\n        },\n        \"required_live_plan\": \"free\",\n    },\n    exchanges_enums.APEX_OMNI_PERPETUAL: {\n        \"name\": exchanges_enums.APEX_OMNI_PERPETUAL,\n        \"url\": \"https://omni.apex.exchange/trade/BTCUSD\",\n        \"fee\": 0.0005,\n        \"type\": \"futures\",\n        \"supported_leverage_modes\": [\"cross\"],\n        \"supported_timeframes\": APEX_OMNI_TIMEFRAMES,\n        \"modes\": {\n            \"backtesting\": False,\n            \"live_trading\": True,\n        },\n        \"required_live_plan\": \"premium\",\n    },\n    exchanges_enums.GATE_USDT_PERPETUAL: {\n        \"name\": exchanges_enums.GATE_USDT_PERPETUAL,\n        \"url\": \"https://jesse.trade/gate\",\n        \"fee\": 0.0005,\n        \"type\": \"futures\",\n        \"supported_leverage_modes\": [\"cross\", \"isolated\"],\n        \"supported_timeframes\": GATE_TIMEFRAMES,\n        \"modes\": {\n            \"backtesting\": True,\n            \"live_trading\": True,\n        },\n        \"required_live_plan\": \"premium\",\n    },\n    exchanges_enums.GATE_SPOT: {\n        \"name\": exchanges_enums.GATE_SPOT,\n        \"url\": \"https://jesse.trade/gate\",\n        \"fee\": 0.0005,\n        \"type\": \"spot\",\n        \"supported_leverage_modes\": [\"cross\", \"isolated\"],\n        \"supported_timeframes\": GATE_TIMEFRAMES,\n        \"modes\": {\n            \"backtesting\": False,\n            \"live_trading\": True,\n        },\n        \"required_live_plan\": \"premium\",\n    },\n    # FTX_PERPETUAL_FUTURES\n    exchanges_enums.FTX_PERPETUAL_FUTURES: {\n        \"name\": exchanges_enums.FTX_PERPETUAL_FUTURES,\n        \"url\": \"https://ftx.com/markets/future\",\n        \"fee\": 0.0006,\n        \"type\": \"futures\",\n        \"supported_leverage_modes\": [\"cross\"],\n        \"supported_timeframes\": FTX_TIMEFRAMES,\n        \"modes\": {\n            \"backtesting\": False,\n            \"live_trading\": False,\n        },\n        \"required_live_plan\": \"premium\",\n    },\n    # FTX_SPOT\n    exchanges_enums.FTX_SPOT: {\n        \"name\": exchanges_enums.FTX_SPOT,\n        \"url\": \"https://ftx.com/markets/spot\",\n        \"fee\": 0.0007,\n        \"type\": \"spot\",\n        \"supported_leverage_modes\": [\"cross\"],\n        \"supported_timeframes\": FTX_TIMEFRAMES,\n        \"modes\": {\n            \"backtesting\": False,\n            \"live_trading\": False,\n        },\n        \"required_live_plan\": \"premium\",\n    },\n    # FTX_US_SPOT\n    exchanges_enums.FTX_US_SPOT: {\n        \"name\": exchanges_enums.FTX_US_SPOT,\n        \"url\": \"https://ftx.us\",\n        \"fee\": 0.002,\n        \"type\": \"spot\",\n        \"supported_leverage_modes\": [\"cross\"],\n        \"supported_timeframes\": FTX_TIMEFRAMES,\n        \"modes\": {\n            \"backtesting\": False,\n            \"live_trading\": False,\n        },\n        \"required_live_plan\": \"premium\",\n    },\n    # BITGET_USDT_PERPETUAL_TESTNET\n    exchanges_enums.BITGET_USDT_PERPETUAL_TESTNET: {\n        \"name\": exchanges_enums.BITGET_USDT_PERPETUAL_TESTNET,\n        \"url\": JESSE_WEBSITE_URL + \"/bitget\",\n        \"fee\": 0.0006,\n        \"type\": \"futures\",\n        \"supported_leverage_modes\": [\"cross\", \"isolated\"],\n        \"supported_timeframes\": BITGET_TIMEFRAMES,\n        \"modes\": {\n            \"backtesting\": False,\n            \"live_trading\": False,\n        },\n        \"required_live_plan\": \"premium\",\n    },\n    # BITGET_USDT_PERPETUAL\n    exchanges_enums.BITGET_USDT_PERPETUAL: {\n        \"name\": exchanges_enums.BITGET_USDT_PERPETUAL,\n        \"url\": JESSE_WEBSITE_URL + \"/bitget\",\n        \"fee\": 0.0006,\n        \"type\": \"futures\",\n        \"supported_leverage_modes\": [\"cross\", \"isolated\"],\n        \"supported_timeframes\": BITGET_TIMEFRAMES,\n        \"modes\": {\n            \"backtesting\": False,\n            \"live_trading\": False,\n        },\n        \"required_live_plan\": \"premium\",\n    },\n    # BITGET_SPOT\n    exchanges_enums.BITGET_SPOT: {\n        \"name\": exchanges_enums.BITGET_SPOT,\n        \"url\": JESSE_WEBSITE_URL + \"/bitget\",\n        \"fee\": 0.0006,\n        \"type\": \"spot\",\n        \"supported_leverage_modes\": [\"cross\", \"isolated\"],\n        \"supported_timeframes\": BITGET_TIMEFRAMES,\n        \"modes\": {\n            \"backtesting\": False,\n            \"live_trading\": False,\n        },\n        \"required_live_plan\": \"premium\",\n    },\n    # DyDx\n    exchanges_enums.DYDX_PERPETUAL: {\n        \"name\": exchanges_enums.DYDX_PERPETUAL,\n        \"url\": JESSE_WEBSITE_URL + \"/dydx\",\n        \"fee\": 0.0005,\n        \"type\": \"futures\",\n        \"supported_leverage_modes\": [\"cross\"],\n        \"supported_timeframes\": DYDX_TIMEFRAMES,\n        \"modes\": {\n            \"backtesting\": False,\n            \"live_trading\": False,\n        },\n        \"required_live_plan\": \"premium\",\n    },\n    # DyDx Testnet\n    exchanges_enums.DYDX_PERPETUAL_TESTNET: {\n        \"name\": exchanges_enums.DYDX_PERPETUAL_TESTNET,\n        \"url\": \"https://trade.stage.dydx.exchange/trade/ETH-USD\",\n        \"fee\": 0.0005,\n        \"type\": \"futures\",\n        \"supported_leverage_modes\": [\"cross\"],\n        \"supported_timeframes\": DYDX_TIMEFRAMES,\n        \"modes\": {\n            \"backtesting\": False,\n            \"live_trading\": False,\n        },\n        \"required_live_plan\": \"premium\",\n    },\n    # HyperLiquid\n    exchanges_enums.HYPERLIQUID_PERPETUAL: {\n        \"name\": exchanges_enums.HYPERLIQUID_PERPETUAL,\n        \"url\": \"https://app.hyperliquid.xyz/trade\",\n        \"fee\": 0.0001,\n        \"type\": \"futures\",\n        \"supported_leverage_modes\": [\"cross\", \"isolated\"],\n        \"supported_timeframes\": HYPERLIQUID_TIMEFRAMES,\n        \"modes\": {\n            \"backtesting\": False,\n            \"live_trading\": True,\n        },\n        \"required_live_plan\": \"premium\",\n    },\n    exchanges_enums.HYPERLIQUID_PERPETUAL_TESTNET: {\n        \"name\": exchanges_enums.HYPERLIQUID_PERPETUAL_TESTNET,\n        \"url\": \"https://app.hyperliquid-testnet.xyz/trade\",\n        \"fee\": 0.0001,\n        \"type\": \"futures\",\n        \"supported_leverage_modes\": [\"cross\", \"isolated\"],\n        \"supported_timeframes\": HYPERLIQUID_TIMEFRAMES,\n        \"modes\": {\n            \"backtesting\": False,\n            \"live_trading\": True,\n        },\n        \"required_live_plan\": \"free\",\n    },\n}\n\n# list of supported exchanges for backtesting\nbacktesting_exchanges = [k for k, v in exchange_info.items() if v['modes']['backtesting'] is True]\nbacktesting_exchanges = list(sorted(backtesting_exchanges))\n\n# list of supported exchanges for live trading\nlive_trading_exchanges = [k for k, v in exchange_info.items() if v['modes']['live_trading'] is True]\nlive_trading_exchanges = list(sorted(live_trading_exchanges))\n\n# used for backtesting, and live trading when local candle generation is enabled:\njesse_supported_timeframes = [\n    timeframes.MINUTE_1,\n    timeframes.MINUTE_3,\n    timeframes.MINUTE_5,\n    timeframes.MINUTE_15,\n    timeframes.MINUTE_30,\n    timeframes.MINUTE_45,\n    timeframes.HOUR_1,\n    timeframes.HOUR_2,\n    timeframes.HOUR_3,\n    timeframes.HOUR_4,\n    timeframes.HOUR_6,\n    timeframes.HOUR_8,\n    timeframes.HOUR_12,\n    timeframes.DAY_1,\n]\n"
  },
  {
    "path": "jesse/libs/__init__.py",
    "content": "from .dynamic_numpy_array import DynamicNumpyArray\n"
  },
  {
    "path": "jesse/libs/custom_json/__init__.py",
    "content": "import numpy as np\nimport simplejson as json\n\n\nclass NpEncoder(json.JSONEncoder):\n    def default(self, obj):\n        if isinstance(obj, np.integer):\n            return int(obj)\n        elif isinstance(obj, np.bool_):\n            return bool(obj)\n        elif isinstance(obj, np.floating):\n            return float(obj)\n        elif isinstance(obj, np.ndarray):\n            return obj.tolist()\n        else:\n            return super(NpEncoder, self).default(obj)\n"
  },
  {
    "path": "jesse/libs/dynamic_numpy_array/__init__.py",
    "content": "import numpy as np\n\nfrom jesse.helpers import np_shift\n\n\nclass DynamicNumpyArray:\n    \"\"\"\n    Dynamic Numpy Array\n\n    A data structure containing a numpy array which expands its memory\n    allocation every N number. Hence, it's both fast and dynamic.\n    \"\"\"\n\n    def __init__(self, shape: tuple, drop_at: int = None):\n        self.index = -1\n        self.array = np.zeros(shape)\n        self.bucket_size = shape[0]\n        self.shape = shape\n        self.drop_at = drop_at\n\n    def __str__(self) -> str:\n        return str(self.array[:self.index + 1])\n\n    def __len__(self) -> int:\n        return self.index + 1\n\n    def __getitem__(self, i):\n        if isinstance(i, slice):\n            start = 0 if i.start is None else i.start\n            stop = self.index + 1 if i.stop is None else i.stop\n\n            if stop < 0:\n                stop = (self.index + 1) - abs(stop)\n            stop = min(stop, self.index + 1)\n            return self.array[start:stop]\n        else:\n            if i < 0:\n                i = (self.index + 1) - abs(i)\n\n            # validation\n            if self.index == -1 or i > self.index or i < 0:\n                raise IndexError(f'list assignment index out of range. self.index={self.index}, i={i}')\n\n            return self.array[i]\n\n    def __setitem__(self, i, item) -> None:\n        if isinstance(i, slice):\n            start = i.start\n            stop = i.stop\n            step = i.step\n            if start is not None and start < 0:\n                start = (self.index + 1) - abs(start)\n            if stop is None:\n                stop = start + len(item)\n            if stop < 0:\n                stop = (self.index + 1) - abs(stop)\n            self.array[slice(start, stop, step)] = item\n            return\n\n        if i < 0:\n            i = (self.index + 1) - abs(i)\n\n        # validation\n        if i > self.index or i < 0:\n            raise IndexError('list assignment index out of range')\n\n        self.array[i] = item\n\n    def append(self, item: np.ndarray) -> None:\n        self.index += 1\n\n        # expand if the arr is almost full\n        if self.index != 0 and (self.index + 1) % self.bucket_size == 0:\n            new_bucket = np.zeros(self.shape)\n            self.array = np.concatenate((self.array, new_bucket), axis=0)\n\n        # drop N% of the beginning values to free memory\n        if (\n            self.drop_at is not None\n            and self.index != 0\n            and (self.index + 1) % self.drop_at == 0\n        ):\n            shift_num = int(self.drop_at / 2)\n            self.index -= shift_num\n            self.array = np_shift(self.array, -shift_num)\n\n        self.array[self.index] = item\n\n    def get_last_item(self):\n        # validation\n        if self.index == -1:\n            raise IndexError('list assignment index out of range. array is empty which means no past item exists')\n\n        return self.array[self.index]\n\n    def get_past_item(self, past_index) -> np.ndarray:\n        # validation\n        if self.index == -1:\n            raise IndexError('list assignment index out of range. array is empty which means no past item exists')\n        # validation\n        if (self.index - past_index) < 0:\n            raise IndexError(f'list assignment index out of range. Max allowed is self.index={self.index}, past_index={past_index}')\n\n        return self.array[self.index - past_index]\n\n    def flush(self) -> None:\n        self.index = -1\n        self.array = np.zeros(self.shape)\n        self.bucket_size = self.shape[0]\n\n    def append_multiple(self, items: np.ndarray) -> None:\n        self.index += len(items)\n\n        # expand if the arr will be greater than the maximum\n        if self.index != 0 and (self.index + 1) >= len(self.array):\n            # in case the shape is smaller than  len(items)\n            if isinstance(self.shape, int):\n                shape = max(self.shape, len(items))\n            else:\n                shape = list(self.shape)\n                shape[0] = max(len(items), shape[0])\n            new_bucket = np.zeros(shape)\n            self.array = np.concatenate((self.array, new_bucket), axis=0)\n\n        # drop N% of the beginning values to free memory\n        if (\n            self.drop_at is not None\n            and self.index != 0\n            and (self.index + 1) % self.drop_at == 0\n        ):\n            shift_num = int(self.drop_at / 2)\n            self.index -= shift_num\n            self.array = np_shift(self.array, -shift_num)\n\n        self.array[self.index - len(items) + 1 : self.index + 1] = items\n\n    def delete(self, index: int, axis=None) -> None:\n        self.array = np.delete(self.array, index, axis=axis)\n        self.index -= 1\n        if self.array.shape[0] <= self.shape[0]:\n            new_bucket = np.zeros(self.shape)\n            self.array = np.concatenate((self.array, new_bucket), axis=0)\n\n\n\n"
  },
  {
    "path": "jesse/models/BacktestSession.py",
    "content": "import peewee\nimport json\nfrom jesse.services.db import database\nimport jesse.helpers as jh\n\n\nif database.is_closed():\n    database.open_connection()\n\n\nclass BacktestSession(peewee.Model):\n    id = peewee.UUIDField(primary_key=True)\n    \n    # Status of the backtest session: running, finished, stopped, cancelled, or terminated\n    status = peewee.CharField()\n    \n    # Backtest results data in JSON format\n    metrics = peewee.TextField(null=True)\n    equity_curve = peewee.TextField(null=True)\n    trades = peewee.TextField(null=True)\n    hyperparameters = peewee.TextField(null=True)\n    chart_data = peewee.TextField(null=True)\n    \n    # Frontend state in JSON format - used for restoring UI state\n    state = peewee.TextField(null=True)\n    \n    # User notes\n    title = peewee.CharField(max_length=255, null=True)\n    description = peewee.TextField(null=True)\n    strategy_codes = peewee.TextField(null=True)\n    \n    # Error tracking\n    exception = peewee.TextField(null=True)\n    traceback = peewee.TextField(null=True)\n    \n    # Execution metrics\n    execution_duration = peewee.FloatField(null=True)\n\n    # Timestamps for session management\n    created_at = peewee.BigIntegerField()\n    updated_at = peewee.BigIntegerField()\n\n    class Meta:\n        from jesse.services.db import database\n\n        database = database.db\n        indexes = (\n            (('id',), True),\n            (('created_at',), False),\n        )\n\n    def __init__(self, attributes: dict = None, **kwargs) -> None:\n        peewee.Model.__init__(self, attributes=attributes, **kwargs)\n\n        if attributes is None:\n            attributes = {}\n\n        for a, value in attributes.items():\n            setattr(self, a, value)\n    \n    @property\n    def metrics_json(self):\n        \"\"\"\n        Returns the metrics as a Python dictionary\n        \"\"\"\n        if not self.metrics:\n            return None\n        return json.loads(self.metrics)\n    \n    @metrics_json.setter\n    def metrics_json(self, metrics_dict):\n        \"\"\"\n        Sets the metrics from a Python dictionary\n        \"\"\"\n        self.metrics = json.dumps(metrics_dict) if metrics_dict else None\n    \n    @property\n    def equity_curve_json(self):\n        \"\"\"\n        Returns the equity curve data as a Python list\n        \"\"\"\n        if not self.equity_curve:\n            return []\n        return json.loads(self.equity_curve)\n    \n    @equity_curve_json.setter\n    def equity_curve_json(self, curve_data):\n        \"\"\"\n        Sets the equity curve data from a Python list\n        \"\"\"\n        self.equity_curve = json.dumps(curve_data) if curve_data else None\n    \n    @property\n    def trades_json(self):\n        \"\"\"\n        Returns the trades as a Python list\n        \"\"\"\n        if not self.trades:\n            return []\n        return json.loads(self.trades)\n    \n    @trades_json.setter\n    def trades_json(self, trades_list):\n        \"\"\"\n        Sets the trades from a Python list\n        \"\"\"\n        self.trades = json.dumps(trades_list) if trades_list else None\n    \n    @property\n    def hyperparameters_json(self):\n        \"\"\"\n        Returns the hyperparameters as a Python dictionary\n        \"\"\"\n        if not self.hyperparameters:\n            return {}\n        return json.loads(self.hyperparameters)\n    \n    @hyperparameters_json.setter\n    def hyperparameters_json(self, hp_dict):\n        \"\"\"\n        Sets the hyperparameters from a Python dictionary\n        \"\"\"\n        self.hyperparameters = json.dumps(hp_dict) if hp_dict else None\n    \n    @property\n    def chart_data_json(self):\n        \"\"\"\n        Returns the chart data as a Python dictionary\n        \"\"\"\n        if not self.chart_data:\n            return {}\n        return json.loads(self.chart_data)\n    \n    @chart_data_json.setter\n    def chart_data_json(self, data_dict):\n        \"\"\"\n        Sets the chart data from a Python dictionary\n        \"\"\"\n        self.chart_data = json.dumps(data_dict) if data_dict else None\n    \n    @property\n    def state_json(self):\n        \"\"\"\n        Returns the frontend state as a Python dictionary\n        \"\"\"\n        if not self.state:\n            return {}\n        s = json.loads(self.state)\n        if isinstance(s, dict) and 'form' in s and isinstance(s['form'], dict):\n            for key in ['debug_mode', 'export_chart', 'export_tradingview', 'export_csv', 'export_json', 'fast_mode', 'benchmark']:\n                if key in s['form']:\n                    s['form'][key] = jh.normalize_bool(s['form'].get(key))\n        return s\n    \n    @state_json.setter\n    def state_json(self, state_data):\n        \"\"\"\n        Sets the frontend state from a Python dictionary\n        \"\"\"\n        self.state = json.dumps(state_data) if state_data else None\n    \n    @property\n    def strategy_codes_json(self):\n        \"\"\"\n        Returns the strategy codes as a Python dictionary\n        \"\"\"\n        if not self.strategy_codes:\n            return {}\n        return json.loads(self.strategy_codes)\n    \n    @strategy_codes_json.setter\n    def strategy_codes_json(self, codes_dict):\n        \"\"\"\n        Sets the strategy codes from a Python dictionary\n        \"\"\"\n        self.strategy_codes = json.dumps(codes_dict) if codes_dict else None\n    \n    @property\n    def duration(self):\n        \"\"\"\n        Calculate the duration of the session in seconds\n        \"\"\"\n        if not self.updated_at:\n            # For running sessions, calculate duration up to now\n            return jh.now_to_timestamp(True) - self.created_at\n        \n        # For completed sessions, use the stored timestamps\n        return self.updated_at - self.created_at\n    \n    @property\n    def net_profit_percentage(self):\n        \"\"\"\n        Get the net profit percentage from metrics\n        \"\"\"\n        metrics = self.metrics_json\n        if not metrics:\n            return None\n            \n        return metrics.get('net_profit_percentage', None)\n\n\n# if database is open, create the table\nif database.is_open():\n    BacktestSession.create_table()\n\n# # # # # # # # # # # # # # # # # # # # # # # # # # # \n# # # # # # # # # DB FUNCTIONS # # # # # # # # #\n# # # # # # # # # # # # # # # # # # # # # # # # # # # \n\ndef get_backtest_session_by_id(id: str):\n    try:\n        return BacktestSession.get(BacktestSession.id == id)\n    except BacktestSession.DoesNotExist:\n        return None\n\n\ndef store_backtest_session(\n    id: str,\n    status: str\n) -> None:\n    # Check if session already exists\n    existing_session = get_backtest_session_by_id(id)\n    \n    if existing_session:\n        # Update existing session - reset it to fresh state\n        d = {\n            'status': status,\n            'metrics': None,\n            'equity_curve': None,\n            'trades': None,\n            'hyperparameters': None,\n            'chart_data': None,\n            'state': None,\n            'exception': None,\n            'traceback': None,\n            'execution_duration': None,\n            'updated_at': jh.now_to_timestamp(True)\n        }\n        BacktestSession.update(**d).where(BacktestSession.id == id).execute()\n    else:\n        # Create a new session\n        d = {\n            'id': id,\n            'status': status,\n            'created_at': jh.now_to_timestamp(True),\n            'updated_at': jh.now_to_timestamp(True)\n        }\n        BacktestSession.insert(**d).execute()\n    \n\ndef update_backtest_session_status(id: str, status: str) -> None:\n    d = {\n        'status': status,\n        'updated_at': jh.now_to_timestamp(True)\n    }\n    \n    BacktestSession.update(**d).where(BacktestSession.id == id).execute()\n\n\ndef store_backtest_session_exception(id: str, exception: str, traceback: str) -> None:\n    d = {\n        'exception': exception,\n        'traceback': traceback,\n        'updated_at': jh.now_to_timestamp(True)\n    }\n\n    BacktestSession.update(**d).where(BacktestSession.id == id).execute()\n\n\ndef update_backtest_session_results(\n    id: str, \n    metrics: dict = None,\n    equity_curve: list = None,\n    trades: list = None,\n    hyperparameters: dict = None,\n    chart_data: dict = None,\n    execution_duration: float = None,\n    strategy_codes: dict = None\n) -> None:\n    d = {\n        'updated_at': jh.now_to_timestamp(True)\n    }\n\n    if metrics is not None:\n        d['metrics'] = json.dumps(metrics)\n\n    if equity_curve is not None:\n        d['equity_curve'] = json.dumps(equity_curve)\n\n    if trades is not None:\n        d['trades'] = json.dumps(trades)\n\n    if hyperparameters is not None:\n        d['hyperparameters'] = json.dumps(hyperparameters)\n\n    if chart_data is not None:\n        d['chart_data'] = json.dumps(chart_data)\n\n    if execution_duration is not None:\n        d['execution_duration'] = execution_duration\n\n    if strategy_codes is not None:\n        d['strategy_codes'] = json.dumps(strategy_codes)\n\n    BacktestSession.update(**d).where(BacktestSession.id == id).execute()\n\n\ndef get_backtest_sessions(limit: int = 50, offset: int = 0, title_search: str = None, status_filter: str = None, date_filter: str = None) -> list:\n    \"\"\"\n    Returns a list of BacktestSession objects sorted by most recently updated.\n    Excludes draft sessions by default.\n    \"\"\"\n    query = BacktestSession.select().where(BacktestSession.status != 'draft').order_by(BacktestSession.updated_at.desc())\n    \n    # Apply title filter (case-insensitive)\n    if title_search:\n        query = query.where(BacktestSession.title.contains(title_search))\n    \n    # Apply status filter\n    if status_filter and status_filter != 'all':\n        query = query.where(BacktestSession.status == status_filter)\n    \n    # Apply date filter\n    if date_filter and date_filter != 'all_time':\n        current_timestamp = jh.now_to_timestamp(True)\n        \n        if date_filter == '7_days':\n            threshold = current_timestamp - (7 * 24 * 60 * 60 * 1000)\n        elif date_filter == '30_days':\n            threshold = current_timestamp - (30 * 24 * 60 * 60 * 1000)\n        elif date_filter == '90_days':\n            threshold = current_timestamp - (90 * 24 * 60 * 60 * 1000)\n        else:\n            threshold = 0\n        \n        if threshold > 0:\n            query = query.where(BacktestSession.created_at >= threshold)\n    \n    return list(query.limit(limit).offset(offset))\n\n\ndef delete_backtest_session(id: str) -> bool:\n    try:\n        BacktestSession.delete().where(BacktestSession.id == id).execute()\n        return True\n    except Exception as e:\n        print(f\"Error deleting backtest session: {e}\")\n        return False\n\n\ndef purge_backtest_sessions(days_old: int = None) -> int:\n    try:\n        current_timestamp = jh.now_to_timestamp(True)\n        \n        if days_old is not None:\n            days_old = int(days_old)\n        \n        if days_old is not None and days_old > 0:\n            threshold = current_timestamp - (days_old * 24 * 60 * 60 * 1000)\n            \n            all_sessions = BacktestSession.select()\n            sessions_to_delete = []\n            \n            for session in all_sessions:\n                try:\n                    session_updated_at = int(session.updated_at) if session.updated_at else 0\n                    if session_updated_at < threshold:\n                        sessions_to_delete.append(session.id)\n                except (ValueError, TypeError):\n                    continue\n            \n            deleted_count = 0\n            for session_id in sessions_to_delete:\n                try:\n                    BacktestSession.delete().where(BacktestSession.id == session_id).execute()\n                    deleted_count += 1\n                except Exception:\n                    pass\n        else:\n            deleted_count = BacktestSession.delete().execute()\n        \n        return deleted_count\n    except Exception as e:\n        print(f\"Error purging backtest sessions: {e}\")\n        return 0\n\n\ndef update_backtest_session_state(id: str, state: dict) -> None:\n    \"\"\"\n    Update or create (upsert) backtest session state. If session doesn't exist, creates as draft.\n    \"\"\"\n    if isinstance(state, dict) and 'form' in state and isinstance(state['form'], dict):\n        for key in ['debug_mode', 'export_chart', 'export_tradingview', 'export_csv', 'export_json', 'fast_mode', 'benchmark']:\n            if key in state['form']:\n                state['form'][key] = jh.normalize_bool(state['form'].get(key))\n    existing = BacktestSession.select().where(BacktestSession.id == id).first()\n    \n    if existing:\n        # Update existing session's state\n        d = {\n            'state': json.dumps(state),\n            'updated_at': jh.now_to_timestamp(True)\n        }\n        BacktestSession.update(**d).where(BacktestSession.id == id).execute()\n    else:\n        # Create new draft session\n        d = {\n            'id': id,\n            'status': 'draft',\n            'state': json.dumps(state),\n            'created_at': jh.now_to_timestamp(True),\n            'updated_at': jh.now_to_timestamp(True)\n        }\n        BacktestSession.insert(**d).execute()\n\n\ndef update_backtest_session_notes(id: str, title: str = None, description: str = None, strategy_codes: dict = None) -> None:\n    d = {\n        'updated_at': jh.now_to_timestamp(True)\n    }\n    \n    if title is not None:\n        d['title'] = title\n    \n    if description is not None:\n        d['description'] = description\n    \n    if strategy_codes is not None:\n        d['strategy_codes'] = json.dumps(strategy_codes)\n    \n    BacktestSession.update(**d).where(BacktestSession.id == id).execute()\n\n\n"
  },
  {
    "path": "jesse/models/Candle.py",
    "content": "import peewee\nfrom jesse.services.db import database\nimport jesse.helpers as jh\nimport numpy as np\n\n\nif database.is_closed():\n    database.open_connection()\n\n\nclass Candle(peewee.Model):\n    id = peewee.UUIDField(primary_key=True)\n    timestamp = peewee.BigIntegerField()\n    open = peewee.FloatField()\n    close = peewee.FloatField()\n    high = peewee.FloatField()\n    low = peewee.FloatField()\n    volume = peewee.FloatField()\n    exchange = peewee.CharField()\n    symbol = peewee.CharField()\n    timeframe = peewee.CharField()\n\n    # partial candles: 5 * 1m candle = 5m candle while 1m == partial candle\n    is_partial = True\n\n    class Meta:\n        from jesse.services.db import database\n\n        database = database.db\n        indexes = (\n            (('exchange', 'symbol', 'timeframe', 'timestamp'), True),\n        )\n\n    def __init__(self, attributes: dict = None, **kwargs) -> None:\n        peewee.Model.__init__(self, attributes=attributes, **kwargs)\n\n        if attributes is None:\n            attributes = {}\n\n        for a, value in attributes.items():\n            setattr(self, a, value)\n\n\n# if database is open, create the table\nif database.is_open():\n    Candle.create_table()\n"
  },
  {
    "path": "jesse/models/ClosedTrade.py",
    "content": "import numpy as np\nimport peewee\n\nimport jesse.helpers as jh\nfrom jesse.services.db import database\nfrom jesse.libs.dynamic_numpy_array import DynamicNumpyArray\nfrom jesse.enums import trade_types\nfrom jesse.models.Order import Order\nfrom jesse.enums import order_statuses\n\n\nif database.is_closed():\n    database.open_connection()\n\n\nclass ClosedTrade(peewee.Model):\n    \"\"\"A trade is made when a position is opened AND closed.\"\"\"\n\n    id = peewee.UUIDField(primary_key=True)\n    session_id = peewee.UUIDField()\n    strategy_name = peewee.CharField()\n    symbol = peewee.CharField()\n    exchange = peewee.CharField()\n    type = peewee.CharField()\n    timeframe = peewee.CharField()\n    opened_at = peewee.BigIntegerField()\n    closed_at = peewee.BigIntegerField(null=True)\n    leverage = peewee.IntegerField()\n    created_at = peewee.BigIntegerField()\n    updated_at = peewee.BigIntegerField()\n    session_mode = peewee.CharField()\n    soft_deleted_at = peewee.BigIntegerField(null=True)\n\n    class Meta:\n        from jesse.services.db import database\n\n        database = database.db\n        indexes = ((('strategy_name', 'exchange', 'symbol'), False),)\n\n    def __init__(self, attributes: dict = None, **kwargs) -> None:\n        peewee.Model.__init__(self, attributes=attributes, **kwargs)\n\n        if attributes is None:\n            attributes = {}\n\n        for a, value in attributes.items():\n            setattr(self, a, value)\n\n        # used for fast calculation of the total qty, entry_price, exit_price, etc.\n        self.buy_orders = DynamicNumpyArray((10, 2))\n        self.sell_orders = DynamicNumpyArray((10, 2))\n        # to store the actual order objects\n        self.orders = []\n\n    @property\n    def to_json(self) -> dict:\n        return {\n            \"id\": self.id,\n            \"strategy_name\": jh.get_class_name(self.strategy_name),\n            \"symbol\": self.symbol,\n            \"exchange\": self.exchange,\n            \"type\": self.type,\n            \"entry_price\": self.entry_price,\n            \"exit_price\": self.exit_price,\n            \"qty\": self.qty,\n            \"fee\": self.fee,\n            \"size\": self.size,\n            \"PNL\": self.pnl,\n            \"PNL_percentage\": self.pnl_percentage,\n            \"holding_period\": self.holding_period,\n            \"opened_at\": self.opened_at,\n            \"closed_at\": self.closed_at,\n        }\n\n    @property\n    def to_dict(self) -> dict:\n        return {\n            'id': self.id,\n            'strategy_name': jh.get_class_name(self.strategy_name),\n            'symbol': self.symbol,\n            'exchange': self.exchange,\n            'type': self.type,\n            'entry_price': self.entry_price,\n            'exit_price': self.exit_price,\n            'qty': self.qty,\n            'opened_at': self.opened_at,\n            'closed_at': self.closed_at,\n            \"fee\": self.fee,\n            \"size\": self.size,\n            \"PNL\": self.pnl,\n            \"PNL_percentage\": self.pnl_percentage,\n            \"holding_period\": self.holding_period,\n        }\n\n    @property\n    def to_dict_with_orders(self) -> dict:\n        data = self.to_dict\n        data['orders'] = [order.to_dict for order in self.orders]\n        return data\n\n    @property\n    def fee(self) -> float:\n        return sum(order.fee or 0 for order in self.orders)\n\n    @property\n    def size(self) -> float:\n        return self.qty * self.entry_price\n\n    @property\n    def pnl(self) -> float:\n        # calculate raw profit/loss\n        qty = abs(self.qty)\n        profit = qty * (self.exit_price - self.entry_price)\n        \n        if self.type == 'short':\n            profit *= -1\n        \n        # subtract actual fee (which already uses order fees if available)\n        return profit - self.fee\n\n    @property\n    def pnl_percentage(self) -> float:\n        \"\"\"\n        Alias for self.roi\n        \"\"\"\n        return self.roi\n\n    @property\n    def roi(self) -> float:\n        \"\"\"\n        Return on Investment in percentage\n        More at: https://www.binance.com/en/support/faq/5b9ad93cb4854f5990b9fb97c03cfbeb\n        \"\"\"\n        return self.pnl / self.total_cost * 100\n\n    @property\n    def total_cost(self) -> float:\n        \"\"\"\n        How much we paid to open this position (currently does not include fees, should we?!)\n        \"\"\"\n        return self.entry_price * abs(self.qty) / self.leverage\n\n    @property\n    def holding_period(self) -> int:\n        \"\"\"How many SECONDS has it taken for the trade to be done.\"\"\"\n        if self.closed_at is None:\n            return None\n        return (self.closed_at - self.opened_at) / 1000\n\n    @property\n    def is_long(self) -> bool:\n        return self.type == trade_types.LONG\n\n    @property\n    def is_short(self) -> bool:\n        return self.type == trade_types.SHORT\n\n    @property\n    def qty(self) -> float:\n        if self.is_long:\n            return self.buy_orders[:][:, 0].sum()\n        elif self.is_short:\n            return self.sell_orders[:][:, 0].sum()\n        else:\n            return 0.0\n\n    @property\n    def entry_price(self) -> float:\n        if self.is_long:\n            orders = self.buy_orders[:]\n        elif self.is_short:\n            orders = self.sell_orders[:]\n        else:\n            return np.nan\n\n        return (orders[:, 0] * orders[:, 1]).sum() / orders[:, 0].sum()\n\n    @property\n    def current_qty(self) -> float:\n        trade_orders = Order.select().where(Order.trade_id == self.id).where(Order.status == order_statuses.EXECUTED).order_by(Order.executed_at)\n        if len(trade_orders) == 0:\n            return 0.0\n        else:\n            import jesse.utils as utils\n            qty = 0.0\n            for order in trade_orders:\n                qty = utils.sum_floats(qty, order.filled_qty)\n            return qty\n\n    @property\n    def exit_price(self) -> float:\n        if self.is_long:\n            orders = self.sell_orders[:]\n        elif self.is_short:\n            orders = self.buy_orders[:]\n        else:\n            return np.nan\n\n        return (orders[:, 0] * orders[:, 1]).sum() / orders[:, 0].sum()\n\n    @property\n    def is_open(self) -> bool:\n        return self.opened_at is not None\n\n\n# if database is open, create the table\nif database.is_open():\n    ClosedTrade.create_table()\n"
  },
  {
    "path": "jesse/models/Exchange.py",
    "content": "from abc import ABC, abstractmethod\nfrom jesse.models.Order import Order\nimport jesse.helpers as jh\nfrom jesse.libs import DynamicNumpyArray\nfrom jesse.info import exchange_info\nfrom jesse.routes import router\n\n\nclass Exchange(ABC):\n    def __init__(self, name: str, starting_balance: float, fee_rate: float, exchange_type: str):\n        # currently holding assets\n        self.assets = {}\n        # used for calculating available balance in futures mode:\n        self.temp_reduced_amount = {}\n        # used for calculating final performance metrics\n        self.starting_assets = {}\n        # current available assets (dynamically changes based on active orders)\n        self.available_assets = {}\n        self.fee_rate = fee_rate\n        # some exchanges might require even further info\n        self.vars = {}\n\n        self.buy_orders = {}\n        self.sell_orders = {}\n\n        self.name = name\n        self.type = exchange_type.lower()\n\n        # in running session's quote currency\n        self.starting_balance = starting_balance\n\n        all_trading_routes = router.routes\n        first_route = all_trading_routes[0]\n        # check the settlement_currency is in the exchange info with name equal to the exchange name\n        if self.name in exchange_info and 'settlement_currency' in exchange_info[self.name]:\n            self.settlement_currency = exchange_info[self.name]['settlement_currency']\n        else:\n            self.settlement_currency = jh.quote_asset(first_route.symbol)\n\n        # initiate dict keys for trading assets\n        for r in all_trading_routes:\n            base_asset = jh.base_asset(r.symbol)\n            self.buy_orders[base_asset] = DynamicNumpyArray((10, 2))\n            self.sell_orders[base_asset] = DynamicNumpyArray((10, 2))\n            self.assets[base_asset] = 0.0\n            self.assets[self.settlement_currency] = 0.0 if jh.is_livetrading() else starting_balance\n            self.temp_reduced_amount[base_asset] = 0.0\n            self.temp_reduced_amount[self.settlement_currency] = 0.0\n            self.starting_assets[base_asset] = 0.0\n            self.starting_assets[self.settlement_currency] = starting_balance\n            self.available_assets[base_asset] = 0.0\n            self.available_assets[self.settlement_currency] = starting_balance\n\n    @property\n    @abstractmethod\n    def wallet_balance(self) -> float:\n        pass\n\n    @property\n    @abstractmethod\n    def available_margin(self) -> float:\n        pass\n\n    @abstractmethod\n    def on_order_submission(self, order: Order) -> None:\n        pass\n\n    @abstractmethod\n    def on_order_execution(self, order: Order) -> None:\n        pass\n\n    @abstractmethod\n    def on_order_cancellation(self, order: Order) -> None:\n        pass\n"
  },
  {
    "path": "jesse/models/ExchangeApiKeys.py",
    "content": "import json\nimport peewee\nfrom jesse.services.db import database\n\nif database.is_closed():\n    database.open_connection()\n\n\nclass ExchangeApiKeys(peewee.Model):\n    id = peewee.UUIDField(primary_key=True)\n    exchange_name = peewee.CharField()\n    name = peewee.CharField(unique=True)\n    api_key = peewee.CharField()\n    api_secret = peewee.CharField()\n    additional_fields = peewee.TextField()\n    created_at = peewee.DateTimeField()\n\n    class Meta:\n        from jesse.services.db import database\n\n        database = database.db\n\n    def __init__(self, attributes=None, **kwargs) -> None:\n        peewee.Model.__init__(self, attributes=attributes, **kwargs)\n\n        if attributes is None:\n            attributes = {}\n\n        for a in attributes:\n            setattr(self, a, attributes[a])\n\n    def get_additional_fields(self) -> dict:\n        return json.loads(self.additional_fields)\n\n\n# if database is open, create the table\nif database.is_open():\n    ExchangeApiKeys.create_table()\n"
  },
  {
    "path": "jesse/models/FuturesExchange.py",
    "content": "import numpy as np\nfrom numba import njit\n\nimport jesse.helpers as jh\nimport jesse.services.logger as logger\nfrom jesse.enums import sides\nfrom jesse.exceptions import InsufficientMargin\nfrom jesse.models.Order import Order\nfrom jesse.models.Exchange import Exchange\nfrom jesse.store import store\n\n\nclass FuturesExchange(Exchange):\n    def __init__(\n            self,\n            name: str,\n            starting_balance: float,\n            fee_rate: float,\n            futures_leverage_mode: str,\n            futures_leverage: int\n    ):\n        super().__init__(name, starting_balance, fee_rate, 'futures')\n\n        # # # # live-trading only # # # #\n        # in futures trading, margin is only with one asset, so:\n        self._available_margin = 0\n        # in futures trading, wallet is only with one asset, so:\n        self._wallet_balance = 0\n        # so is started_balance\n        self._started_balance = 0\n        # # # # # # # # # # # # # # # # #\n\n        self.futures_leverage_mode = futures_leverage_mode\n        self.futures_leverage = futures_leverage\n\n    @property\n    def started_balance(self) -> float:\n        if jh.is_livetrading():\n            return self._started_balance\n\n        return self.starting_assets[jh.app_currency()]\n\n    @property\n    def wallet_balance(self) -> float:\n        if jh.is_livetrading():\n            return self._wallet_balance\n\n        return self.assets[self.settlement_currency]\n\n    @property\n    def available_margin(self) -> float:\n        if jh.is_livetrading():\n            return self._available_margin\n\n        # In both live trading and backtesting/paper trading, we start with the balance\n        margin = self.wallet_balance\n\n        # Calculate the total spent amount considering leverage\n        # Here we need to calculate the total cost of all open positions and orders, considering leverage\n        total_spent = 0\n        for asset in self.assets:\n            if asset == self.settlement_currency:\n                continue\n\n            position = store.positions.get_position(self.name, f\"{asset}-{self.settlement_currency}\")\n            if position and position.is_open:\n                # Adding the cost of open positions\n                total_spent += position.total_cost\n                # add unrealized PNL\n                total_spent -= position.pnl\n\n            # Summing up the cost of open orders (buy and sell), considering leverage\n            sum_buy_orders = (self.buy_orders[asset][:][:, 0] * self.buy_orders[asset][:][:, 1]).sum()\n            sum_sell_orders = (self.sell_orders[asset][:][:, 0] * self.sell_orders[asset][:][:, 1]).sum()\n\n            total_spent += max(\n                abs(sum_buy_orders) / self.futures_leverage, abs(sum_sell_orders) / self.futures_leverage\n            )\n\n        # Subtracting the total spent from the margin\n        margin -= total_spent\n\n        return margin\n\n    def charge_fee(self, amount: float) -> None:\n        if jh.is_livetrading():\n            return\n\n        fee_amount = abs(amount) * self.fee_rate\n        new_balance = self.assets[self.settlement_currency] - fee_amount\n        if fee_amount != 0:\n            logger.info(\n                f'Charged {round(fee_amount, 2)} as fee. Balance for {self.settlement_currency} on {self.name} changed from {round(self.assets[self.settlement_currency], 2)} to {round(new_balance, 2)}'\n            )\n        self.assets[self.settlement_currency] = new_balance\n\n    def add_realized_pnl(self, realized_pnl: float) -> None:\n        if jh.is_livetrading():\n            return\n\n        new_balance = self.assets[self.settlement_currency] + realized_pnl\n        logger.info(\n            f'Added realized PNL of {round(realized_pnl, 2)}. Balance for {self.settlement_currency} on {self.name} changed from {round(self.assets[self.settlement_currency], 2)} to {round(new_balance, 2)}')\n        self.assets[self.settlement_currency] = new_balance\n\n    def on_order_submission(self, order: Order) -> None:\n        if jh.is_livetrading():\n            return\n\n        base_asset = jh.base_asset(order.symbol)\n\n        # make sure we don't spend more than we're allowed considering current allowed leverage\n        if not order.reduce_only:\n            # Calculate the effective order size considering leverage\n            effective_order_size = abs(order.qty * order.price) / self.futures_leverage\n\n            if effective_order_size > self.available_margin:\n                raise InsufficientMargin(\n                    f'Cannot submit an order with a value of ${round(order.qty * order.price)} when your available margin is ${round(self.available_margin)}. Consider increasing leverage number from the settings or reducing the order size.'\n                )\n\n        self.available_assets[base_asset] += order.qty\n\n        if not order.reduce_only:\n            if order.side == sides.BUY:\n                self.buy_orders[base_asset].append(np.array([order.qty, order.price]))\n            else:\n                self.sell_orders[base_asset].append(np.array([order.qty, order.price]))\n\n    def on_order_execution(self, order: Order) -> None:\n        if jh.is_livetrading():\n            return\n\n        base_asset = jh.base_asset(order.symbol)\n\n        if not order.reduce_only:\n            order_array = np.array([order.qty, order.price])\n            if order.side == sides.BUY:\n                item_index = np.where(np.all(self.buy_orders[base_asset].array == order_array, axis=1))[0]\n                if len(item_index) > 0:\n                    index = item_index[0]\n                    self.buy_orders[base_asset].delete(index, axis=0)\n            else:\n                item_index = np.where(np.all(self.sell_orders[base_asset].array == order_array, axis=1))[0]\n                if len(item_index) > 0:\n                    index = item_index[0]\n                    self.sell_orders[base_asset].delete(index, axis=0)\n\n    def on_order_cancellation(self, order: Order) -> None:\n        if jh.is_livetrading():\n            return\n\n        base_asset = jh.base_asset(order.symbol)\n\n        self.available_assets[base_asset] -= order.qty\n        if not order.reduce_only:\n            order_array = np.array([order.qty, order.price])\n            if order.side == sides.BUY:\n                index = find_order_index(self.buy_orders[base_asset].array, order_array)\n                if index != -1:\n                    self.buy_orders[base_asset].delete(index, axis=0)\n            else:\n                index = find_order_index(self.sell_orders[base_asset].array, order_array)\n                if index != -1:\n                    self.sell_orders[base_asset].delete(index, axis=0)\n\n    def update_from_stream(self, data: dict) -> None:\n        \"\"\"\n        Used for updating the exchange from the WS stream (only for live trading)\n        \"\"\"\n        if not jh.is_livetrading():\n            raise Exception('This method is only for live trading')\n        self._available_margin = data['available_margin']\n        self._wallet_balance = data['wallet_balance']\n        if self._started_balance == 0:\n            self._started_balance = self._wallet_balance\n\n\n@njit(cache=True)\ndef find_order_index(orders, order_array):\n    for i in range(len(orders)):\n        if np.all(orders[i] == order_array):\n            return i\n    return -1\n"
  },
  {
    "path": "jesse/models/LiveEquitySnapshot.py",
    "content": "import peewee\nfrom jesse.services.db import database\n\n\nif database.is_closed():\n    database.open_connection()\n\n\nclass LiveEquitySnapshot(peewee.Model):\n    session_id = peewee.UUIDField()\n    timestamp = peewee.BigIntegerField()\n    currency = peewee.CharField()\n    equity = peewee.DoubleField()\n\n    class Meta:\n        from jesse.services.db import database\n\n        database = database.db\n        indexes = (\n            (('session_id', 'timestamp'), True),  # Unique constraint\n        )\n        primary_key = peewee.CompositeKey('session_id', 'timestamp')\n\n    def __init__(self, attributes: dict = None, **kwargs) -> None:\n        peewee.Model.__init__(self, attributes=attributes, **kwargs)\n\n        if attributes is None:\n            attributes = {}\n\n        for a, value in attributes.items():\n            setattr(self, a, value)\n\n\n# if database is open, create the table\nif database.is_open():\n    LiveEquitySnapshot.create_table()\n\n"
  },
  {
    "path": "jesse/models/LiveSession.py",
    "content": "import peewee\nimport json\nfrom jesse.services.db import database\nimport jesse.helpers as jh\n\n\nif database.is_closed():\n    database.open_connection()\n\n\nclass LiveSession(peewee.Model):\n    id = peewee.UUIDField(primary_key=True)\n    \n    # Status of the live session: running, stopped, or terminated\n    status = peewee.CharField()\n    \n    # Session mode: livetrade or papertrade\n    session_mode = peewee.CharField()\n    \n    # Exchange name\n    exchange = peewee.CharField()\n    \n    # Frontend state in JSON format - used for restoring UI state\n    state = peewee.TextField(null=True)\n    \n    # User notes\n    title = peewee.CharField(max_length=255, null=True)\n    description = peewee.TextField(null=True)\n    strategy_codes = peewee.TextField(null=True)\n    \n    # Error tracking\n    exception = peewee.TextField(null=True)\n    traceback = peewee.TextField(null=True)\n    \n    # Timestamps for session management\n    finished_at = peewee.BigIntegerField(null=True)\n    created_at = peewee.BigIntegerField()\n    updated_at = peewee.BigIntegerField()\n\n    class Meta:\n        from jesse.services.db import database\n\n        database = database.db\n        indexes = (\n            (('id',), True),\n            (('created_at',), False),\n            (('updated_at',), False),\n        )\n\n    def __init__(self, attributes: dict = None, **kwargs) -> None:\n        peewee.Model.__init__(self, attributes=attributes, **kwargs)\n\n        if attributes is None:\n            attributes = {}\n\n        for a, value in attributes.items():\n            setattr(self, a, value)\n    \n    @property\n    def state_json(self):\n        \"\"\"\n        Returns the frontend state as a Python dictionary\n        \"\"\"\n        if not self.state:\n            return {}\n        s = json.loads(self.state)\n        if isinstance(s, dict) and 'form' in s and isinstance(s['form'], dict):\n            for key in ['debug_mode', 'export_chart', 'export_tradingview', 'export_csv', 'export_json', 'fast_mode', 'benchmark']:\n                if key in s['form']:\n                    s['form'][key] = jh.normalize_bool(s['form'].get(key))\n        return s\n    \n    @state_json.setter\n    def state_json(self, state_data):\n        \"\"\"\n        Sets the frontend state from a Python dictionary\n        \"\"\"\n        self.state = json.dumps(state_data) if state_data else None\n    \n    @property\n    def strategy_codes_json(self):\n        \"\"\"\n        Returns the strategy codes as a Python dictionary\n        \"\"\"\n        if not self.strategy_codes:\n            return {}\n        return json.loads(self.strategy_codes)\n    \n    @strategy_codes_json.setter\n    def strategy_codes_json(self, codes_dict):\n        \"\"\"\n        Sets the strategy codes from a Python dictionary\n        \"\"\"\n        self.strategy_codes = json.dumps(codes_dict) if codes_dict else None\n    \n    @property\n    def duration(self):\n        \"\"\"\n        Calculate the duration of the session in seconds\n        \"\"\"\n        if self.finished_at:\n            # For completed sessions, use the stored timestamps\n            return self.finished_at - self.created_at\n        else:\n            # For running sessions, calculate duration up to now\n            return jh.now_to_timestamp(True) - self.created_at\n\n\n# if database is open, create the table\nif database.is_open():\n    LiveSession.create_table()\n\n"
  },
  {
    "path": "jesse/models/Log.py",
    "content": "import peewee\nfrom jesse.services.db import database\n\n\nif database.is_closed():\n    database.open_connection()\n\n\nclass Log(peewee.Model):\n    id = peewee.UUIDField(primary_key=True)\n    session_id = peewee.UUIDField(index=True)\n    timestamp = peewee.BigIntegerField()\n    message = peewee.TextField()\n    # 1: info, 2: error, maybe add more in the future?\n    type = peewee.SmallIntegerField()\n\n    class Meta:\n        from jesse.services.db import database\n        database = database.db\n        indexes = (\n            (('session_id', 'type', 'timestamp'), False),\n        )\n\n    def __init__(self, attributes=None, **kwargs) -> None:\n        peewee.Model.__init__(self, attributes=attributes, **kwargs)\n\n        if attributes is None:\n            attributes = {}\n\n        for a in attributes:\n            setattr(self, a, attributes[a])\n\n\n# if database is open, create the table\nif database.is_open():\n    Log.create_table()\n\n\n# # # # # # # # # # # # # # # # # # # # # # # # # # # \n# # # # # # # # # DB FUNCTIONS # # # # # # # # #\n# # # # # # # # # # # # # # # # # # # # # # # # # # # \n\ndef store_log_into_db(log: dict, log_type: str) -> None:\n    if log_type == 'info':\n        log_type = 1\n    elif log_type == 'error':\n        log_type = 2\n    else:\n        raise ValueError(f\"Unsupported log_type value: {log_type}\")\n\n    d = {\n        'id': log['id'],\n        'session_id': log['session_id'],\n        'type': log_type,\n        'timestamp': log['timestamp'],\n        'message': log['message']\n    }\n\n    try:\n        Log.insert(**d).execute()\n    except Exception:\n        try:\n            database.db.rollback()\n        except Exception:\n            pass\n        try:\n            Log.insert(**d).execute()\n        except Exception:\n            pass\n"
  },
  {
    "path": "jesse/models/MonteCarloSession.py",
    "content": "import peewee\nimport json\nimport numpy as np\nfrom jesse.services.db import database\nimport jesse.helpers as jh\n\n\ndef _convert_numpy_types(obj):\n    \"\"\"Convert NumPy types to native Python types for JSON serialization\"\"\"\n    if isinstance(obj, dict):\n        return {k: _convert_numpy_types(v) for k, v in obj.items()}\n    elif isinstance(obj, list):\n        return [_convert_numpy_types(item) for item in obj]\n    elif isinstance(obj, np.integer):\n        return int(obj)\n    elif isinstance(obj, np.floating):\n        return float(obj)\n    elif isinstance(obj, np.bool_):\n        return bool(obj)\n    elif isinstance(obj, np.ndarray):\n        return obj.tolist()\n    return obj\n\n\nif database.is_closed():\n    database.open_connection()\n\n\nclass MonteCarloSession(peewee.Model):\n    id = peewee.UUIDField(primary_key=True)\n    status = peewee.CharField()\n    state = peewee.TextField(null=True)\n    title = peewee.CharField(max_length=255, null=True)\n    description = peewee.TextField(null=True)\n    strategy_codes = peewee.TextField(null=True)\n    created_at = peewee.BigIntegerField()\n    updated_at = peewee.BigIntegerField()\n\n    class Meta:\n        from jesse.services.db import database\n\n        database = database.db\n        indexes = (\n            (('id',), True),\n            (('updated_at',), False),\n        )\n\n    def __init__(self, attributes: dict = None, **kwargs) -> None:\n        peewee.Model.__init__(self, attributes=attributes, **kwargs)\n\n        if attributes is None:\n            attributes = {}\n\n        for a, value in attributes.items():\n            setattr(self, a, value)\n\n    @property\n    def state_json(self):\n        if not self.state:\n            return {}\n        s = json.loads(self.state)\n        if isinstance(s, dict) and 'form' in s and isinstance(s['form'], dict):\n            for key in ['debug_mode', 'export_chart', 'export_tradingview', 'export_csv', 'export_json', 'fast_mode', 'benchmark']:\n                if key in s['form']:\n                    s['form'][key] = jh.normalize_bool(s['form'].get(key))\n        return s\n\n    @state_json.setter\n    def state_json(self, state_data):\n        self.state = json.dumps(state_data)\n\n    @property\n    def strategy_codes_json(self):\n        if not self.strategy_codes:\n            return {}\n        return json.loads(self.strategy_codes)\n\n    @strategy_codes_json.setter\n    def strategy_codes_json(self, codes_dict):\n        self.strategy_codes = json.dumps(codes_dict) if codes_dict else None\n\n    @property\n    def trades_session(self):\n        try:\n            return MonteCarloTradesSession.get(\n                MonteCarloTradesSession.monte_carlo_session_id == self.id\n            )\n        except MonteCarloTradesSession.DoesNotExist:\n            return None\n\n    @property\n    def candles_session(self):\n        try:\n            return MonteCarloCandlesSession.get(\n                MonteCarloCandlesSession.monte_carlo_session_id == self.id\n            )\n        except MonteCarloCandlesSession.DoesNotExist:\n            return None\n\n\nclass MonteCarloTradesSession(peewee.Model):\n    id = peewee.UUIDField(primary_key=True)\n    monte_carlo_session_id = peewee.UUIDField()\n    num_scenarios = peewee.IntegerField()\n    completed_scenarios = peewee.IntegerField(default=0)\n    status = peewee.CharField()\n    results = peewee.TextField(null=True)\n    logs = peewee.TextField(null=True)\n    exception = peewee.TextField(null=True)\n    traceback = peewee.TextField(null=True)\n    created_at = peewee.BigIntegerField()\n    updated_at = peewee.BigIntegerField()\n\n    class Meta:\n        from jesse.services.db import database\n\n        database = database.db\n        indexes = (\n            (('id',), True),\n            (('monte_carlo_session_id',), False),\n        )\n\n    def __init__(self, attributes: dict = None, **kwargs) -> None:\n        peewee.Model.__init__(self, attributes=attributes, **kwargs)\n\n        if attributes is None:\n            attributes = {}\n\n        for a, value in attributes.items():\n            setattr(self, a, value)\n\n    @property\n    def results_json(self):\n        if not self.results:\n            return {}\n        return json.loads(self.results)\n\n    @results_json.setter\n    def results_json(self, results_data):\n        self.results = json.dumps(results_data)\n\n\nclass MonteCarloCandlesSession(peewee.Model):\n    id = peewee.UUIDField(primary_key=True)\n    monte_carlo_session_id = peewee.UUIDField()\n    num_scenarios = peewee.IntegerField()\n    completed_scenarios = peewee.IntegerField(default=0)\n    status = peewee.CharField()\n    pipeline_type = peewee.CharField()\n    pipeline_params = peewee.TextField(null=True)\n    results = peewee.TextField(null=True)\n    logs = peewee.TextField(null=True)\n    exception = peewee.TextField(null=True)\n    traceback = peewee.TextField(null=True)\n    created_at = peewee.BigIntegerField()\n    updated_at = peewee.BigIntegerField()\n\n    class Meta:\n        from jesse.services.db import database\n\n        database = database.db\n        indexes = (\n            (('id',), True),\n            (('monte_carlo_session_id',), False),\n        )\n\n    def __init__(self, attributes: dict = None, **kwargs) -> None:\n        peewee.Model.__init__(self, attributes=attributes, **kwargs)\n\n        if attributes is None:\n            attributes = {}\n\n        for a, value in attributes.items():\n            setattr(self, a, value)\n\n    @property\n    def results_json(self):\n        if not self.results:\n            return {}\n        return json.loads(self.results)\n\n    @results_json.setter\n    def results_json(self, results_data):\n        self.results = json.dumps(results_data)\n\n    @property\n    def pipeline_params_json(self):\n        if not self.pipeline_params:\n            return {}\n        return json.loads(self.pipeline_params)\n\n    @pipeline_params_json.setter\n    def pipeline_params_json(self, params_data):\n        self.pipeline_params = json.dumps(params_data)\n\n\n# Create tables if database is open\nif database.is_open():\n    MonteCarloSession.create_table()\n    MonteCarloTradesSession.create_table()\n    MonteCarloCandlesSession.create_table()\n\n\n# # # # # # # # # # # # # # # # # # # # # # # # # # # \n# # # # # # # # # DB FUNCTIONS # # # # # # # # #\n# # # # # # # # # # # # # # # # # # # # # # # # # # # \n\n# Parent Session Functions\ndef get_monte_carlo_session_by_id(id: str):\n    try:\n        return MonteCarloSession.get(MonteCarloSession.id == id)\n    except MonteCarloSession.DoesNotExist:\n        return None\n\n\ndef get_monte_carlo_sessions(limit: int = 50, offset: int = 0, title_search: str = None, status_filter: str = None, date_filter: str = None):\n    \"\"\"\n    Returns a list of MonteCarloSession objects sorted by most recently updated.\n    Excludes draft sessions by default.\n    \"\"\"\n    query = MonteCarloSession.select().where(MonteCarloSession.status != 'draft').order_by(MonteCarloSession.updated_at.desc())\n    \n    # Apply title filter (case-insensitive)\n    if title_search:\n        query = query.where(MonteCarloSession.title.contains(title_search))\n    \n    # Apply status filter\n    if status_filter and status_filter != 'all':\n        query = query.where(MonteCarloSession.status == status_filter)\n    \n    # Apply date filter\n    if date_filter and date_filter != 'all_time':\n        current_timestamp = jh.now_to_timestamp(True)\n        \n        if date_filter == '7_days':\n            threshold = current_timestamp - (7 * 24 * 60 * 60 * 1000)\n        elif date_filter == '30_days':\n            threshold = current_timestamp - (30 * 24 * 60 * 60 * 1000)\n        elif date_filter == '90_days':\n            threshold = current_timestamp - (90 * 24 * 60 * 60 * 1000)\n        else:\n            threshold = 0\n        \n        if threshold > 0:\n            query = query.where(MonteCarloSession.created_at >= threshold)\n    \n    return list(query.limit(limit).offset(offset))\n\n\ndef store_monte_carlo_session(id: str, status: str, state: dict = None, strategy_codes: dict = None) -> None:\n    if isinstance(state, dict) and 'form' in state and isinstance(state['form'], dict):\n        for key in ['debug_mode', 'export_chart', 'export_tradingview', 'export_csv', 'export_json', 'fast_mode', 'benchmark']:\n            if key in state['form']:\n                state['form'][key] = jh.normalize_bool(state['form'].get(key))\n    d = {\n        'id': id,\n        'status': status,\n        'state': json.dumps(state) if state else None,\n        'created_at': jh.now_to_timestamp(True),\n        'updated_at': jh.now_to_timestamp(True)\n    }\n    \n    if strategy_codes is not None:\n        d['strategy_codes'] = json.dumps(strategy_codes)\n    \n    MonteCarloSession.insert(**d).execute()\n\n\ndef update_monte_carlo_session_status(id: str, status: str) -> None:\n    d = {\n        'status': status,\n        'updated_at': jh.now_to_timestamp(True)\n    }\n    MonteCarloSession.update(**d).where(MonteCarloSession.id == id).execute()\n\n\ndef update_monte_carlo_session_state(id: str, state: dict, strategy_codes: dict = None) -> None:\n    \"\"\"\n    Update or create (upsert) monte carlo session state. If session doesn't exist, creates as draft.\n    \"\"\"\n    if isinstance(state, dict) and 'form' in state and isinstance(state['form'], dict):\n        for key in ['debug_mode', 'export_chart', 'export_tradingview', 'export_csv', 'export_json', 'fast_mode', 'benchmark']:\n            if key in state['form']:\n                state['form'][key] = jh.normalize_bool(state['form'].get(key))\n    existing = MonteCarloSession.select().where(MonteCarloSession.id == id).first()\n    \n    if existing:\n        # Update existing session's state\n        d = {\n            'state': json.dumps(state),\n            'updated_at': jh.now_to_timestamp(True)\n        }\n        if strategy_codes is not None:\n            d['strategy_codes'] = json.dumps(strategy_codes)\n        MonteCarloSession.update(**d).where(MonteCarloSession.id == id).execute()\n    else:\n        # Create new draft session\n        d = {\n            'id': id,\n            'status': 'draft',\n            'state': json.dumps(state),\n            'created_at': jh.now_to_timestamp(True),\n            'updated_at': jh.now_to_timestamp(True)\n        }\n        MonteCarloSession.insert(**d).execute()\n\n\ndef delete_monte_carlo_session(id: str) -> bool:\n    try:\n        # Delete child sessions first\n        MonteCarloTradesSession.delete().where(\n            MonteCarloTradesSession.monte_carlo_session_id == id\n        ).execute()\n        MonteCarloCandlesSession.delete().where(\n            MonteCarloCandlesSession.monte_carlo_session_id == id\n        ).execute()\n        # Delete parent session\n        MonteCarloSession.delete().where(MonteCarloSession.id == id).execute()\n        return True\n    except Exception as e:\n        print(f\"Error deleting Monte Carlo session: {e}\")\n        return False\n\n\ndef update_monte_carlo_session_notes(id: str, title: str = None, description: str = None, strategy_codes: dict = None) -> None:\n    d = {\n        'updated_at': jh.now_to_timestamp(True)\n    }\n    \n    if title is not None:\n        d['title'] = title\n    \n    if description is not None:\n        d['description'] = description\n    \n    if strategy_codes is not None:\n        d['strategy_codes'] = json.dumps(strategy_codes)\n    \n    MonteCarloSession.update(**d).where(MonteCarloSession.id == id).execute()\n\n\ndef purge_monte_carlo_sessions(days_old: int = None) -> int:\n    try:\n        current_timestamp = jh.now_to_timestamp(True)\n        \n        if days_old is not None:\n            days_old = int(days_old)\n        \n        if days_old is not None and days_old > 0:\n            threshold = current_timestamp - (days_old * 24 * 60 * 60 * 1000)\n            \n            all_sessions = MonteCarloSession.select()\n            sessions_to_delete = []\n            \n            for session in all_sessions:\n                try:\n                    session_updated_at = int(session.updated_at) if session.updated_at else 0\n                    if session_updated_at < threshold:\n                        sessions_to_delete.append(session.id)\n                except (ValueError, TypeError):\n                    continue\n            \n            deleted_count = 0\n            for session_id in sessions_to_delete:\n                try:\n                    if delete_monte_carlo_session(session_id):\n                        deleted_count += 1\n                except Exception:\n                    pass\n        else:\n            # Delete all sessions\n            all_sessions = MonteCarloSession.select()\n            deleted_count = 0\n            for session in all_sessions:\n                try:\n                    if delete_monte_carlo_session(str(session.id)):\n                        deleted_count += 1\n                except Exception:\n                    pass\n        \n        return deleted_count\n    except Exception as e:\n        print(f\"Error purging Monte Carlo sessions: {e}\")\n        return 0\n\n\ndef get_running_monte_carlo_session_id():\n    try:\n        session = MonteCarloSession.select().where(MonteCarloSession.status == 'running').order_by(MonteCarloSession.updated_at.desc()).first()\n        if session:\n            return str(session.id)\n        return None\n    except Exception as e:\n        raise e\n\n# Trades Session Functions\ndef get_trades_session_by_parent_id(parent_id: str):\n    try:\n        return MonteCarloTradesSession.get(\n            MonteCarloTradesSession.monte_carlo_session_id == parent_id\n        )\n    except MonteCarloTradesSession.DoesNotExist:\n        return None\n\n\ndef store_trades_session(parent_id: str, num_scenarios: int) -> str:\n    import uuid\n    session_id = str(uuid.uuid4())\n    d = {\n        'id': session_id,\n        'monte_carlo_session_id': parent_id,\n        'num_scenarios': num_scenarios,\n        'completed_scenarios': 0,\n        'status': 'running',\n        'created_at': jh.now_to_timestamp(True),\n        'updated_at': jh.now_to_timestamp(True)\n    }\n    MonteCarloTradesSession.insert(**d).execute()\n    return session_id\n\n\ndef update_trades_session_progress(id: str, completed: int, results: dict = None) -> None:\n    d = {\n        'completed_scenarios': completed,\n        'updated_at': jh.now_to_timestamp(True)\n    }\n    if results is not None:\n        # Convert NumPy types to native Python types before JSON serialization\n        cleaned_results = _convert_numpy_types(results)\n        d['results'] = json.dumps(cleaned_results)\n    MonteCarloTradesSession.update(**d).where(MonteCarloTradesSession.id == id).execute()\n\n\ndef update_trades_session_status(id: str, status: str) -> None:\n    d = {\n        'status': status,\n        'updated_at': jh.now_to_timestamp(True)\n    }\n    MonteCarloTradesSession.update(**d).where(MonteCarloTradesSession.id == id).execute()\n\n\n# Candles Session Functions\ndef get_candles_session_by_parent_id(parent_id: str):\n    try:\n        return MonteCarloCandlesSession.get(\n            MonteCarloCandlesSession.monte_carlo_session_id == parent_id\n        )\n    except MonteCarloCandlesSession.DoesNotExist:\n        return None\n\n\ndef store_candles_session(parent_id: str, num_scenarios: int, pipeline_type: str, pipeline_params: dict) -> str:\n    import uuid\n    session_id = str(uuid.uuid4())\n    d = {\n        'id': session_id,\n        'monte_carlo_session_id': parent_id,\n        'num_scenarios': num_scenarios,\n        'completed_scenarios': 0,\n        'status': 'running',\n        'pipeline_type': pipeline_type,\n        'pipeline_params': json.dumps(pipeline_params),\n        'created_at': jh.now_to_timestamp(True),\n        'updated_at': jh.now_to_timestamp(True)\n    }\n    MonteCarloCandlesSession.insert(**d).execute()\n    return session_id\n\n\ndef update_candles_session_progress(id: str, completed: int, results: dict = None) -> None:\n    d = {\n        'completed_scenarios': completed,\n        'updated_at': jh.now_to_timestamp(True)\n    }\n    if results is not None:\n        # Convert NumPy types to native Python types before JSON serialization\n        cleaned_results = _convert_numpy_types(results)\n        d['results'] = json.dumps(cleaned_results)\n    MonteCarloCandlesSession.update(**d).where(MonteCarloCandlesSession.id == id).execute()\n\n\ndef update_candles_session_status(id: str, status: str) -> None:\n    d = {\n        'status': status,\n        'updated_at': jh.now_to_timestamp(True)\n    }\n    MonteCarloCandlesSession.update(**d).where(MonteCarloCandlesSession.id == id).execute()\n\n\n# Exception and Logs Functions\ndef store_session_exception(session_id: str, session_type: str, exception: str, traceback: str) -> None:\n    d = {\n        'exception': exception,\n        'traceback': traceback,\n        'status': 'stopped',\n        'updated_at': jh.now_to_timestamp(True)\n    }\n    \n    if session_type == 'trades':\n        MonteCarloTradesSession.update(**d).where(MonteCarloTradesSession.id == session_id).execute()\n    elif session_type == 'candles':\n        MonteCarloCandlesSession.update(**d).where(MonteCarloCandlesSession.id == session_id).execute()\n\n\ndef append_session_logs(session_id: str, session_type: str, log_message: str) -> None:\n    if session_type == 'trades':\n        session = MonteCarloTradesSession.get(MonteCarloTradesSession.id == session_id)\n        current_logs = session.logs or ''\n        new_logs = current_logs + log_message + '\\n'\n        MonteCarloTradesSession.update(\n            logs=new_logs,\n            updated_at=jh.now_to_timestamp(True)\n        ).where(MonteCarloTradesSession.id == session_id).execute()\n    elif session_type == 'candles':\n        session = MonteCarloCandlesSession.get(MonteCarloCandlesSession.id == session_id)\n        current_logs = session.logs or ''\n        new_logs = current_logs + log_message + '\\n'\n        MonteCarloCandlesSession.update(\n            logs=new_logs,\n            updated_at=jh.now_to_timestamp(True)\n        ).where(MonteCarloCandlesSession.id == session_id).execute()\n\n\ndef append_monte_carlo_session_logs(session_id: str, log_message: str) -> None:\n    \"\"\"Append logs to the parent Monte Carlo session\"\"\"\n    try:\n        session = MonteCarloSession.get(MonteCarloSession.id == session_id)\n        current_logs = session.logs or ''\n        new_logs = current_logs + log_message + '\\n'\n        MonteCarloSession.update(\n            logs=new_logs,\n            updated_at=jh.now_to_timestamp(True)\n        ).where(MonteCarloSession.id == session_id).execute()\n    except Exception as e:\n        # Session doesn't exist yet, silently fail\n        jh.dump(f'exception: {e}')\n        raise\n        pass\n\n\n"
  },
  {
    "path": "jesse/models/NotificationApiKeys.py",
    "content": "import peewee\nfrom jesse.services.db import database\n\nif database.is_closed():\n    database.open_connection()\n\n\nclass NotificationApiKeys(peewee.Model):\n    id = peewee.UUIDField(primary_key=True)\n    name = peewee.CharField(unique=True)\n    driver = peewee.CharField()  # notification driver (Telegram, Discord, Slack)\n    fields = peewee.TextField()  # for storing the fields as a JSON string\n    created_at = peewee.DateTimeField()\n\n    class Meta:\n        from jesse.services.db import database\n\n        database = database.db\n\n    def __init__(self, attributes=None, **kwargs) -> None:\n        peewee.Model.__init__(self, attributes=attributes, **kwargs)\n\n        if attributes is None:\n            attributes = {}\n\n        for a in attributes:\n            setattr(self, a, attributes[a])\n\n\n# if database is open, create the table\nif database.is_open():\n    NotificationApiKeys.create_table()\n"
  },
  {
    "path": "jesse/models/OpenTab.py",
    "content": "import peewee\nfrom jesse.services.db import database\nimport jesse.helpers as jh\n\n\nif database.is_closed():\n    database.open_connection()\n\n\nclass OpenTab(peewee.Model):\n    id = peewee.UUIDField(primary_key=True)\n    \n    # Module name: live, backtest, optimization, monte_carlo\n    module = peewee.CharField(max_length=50)\n    \n    # The session_id this tab references\n    session_id = peewee.UUIDField()\n    \n    # Order index for tab ordering within the module\n    order_index = peewee.IntegerField()\n    \n    # Timestamps\n    created_at = peewee.BigIntegerField()\n    updated_at = peewee.BigIntegerField()\n\n    class Meta:\n        from jesse.services.db import database\n\n        database = database.db\n        indexes = (\n            (('module', 'session_id'), True),\n        )\n\n    def __init__(self, attributes: dict = None, **kwargs) -> None:\n        peewee.Model.__init__(self, attributes=attributes, **kwargs)\n\n        if attributes is None:\n            attributes = {}\n\n        for a, value in attributes.items():\n            setattr(self, a, value)\n\n"
  },
  {
    "path": "jesse/models/OptimizationSession.py",
    "content": "import peewee\nimport json\nfrom jesse.services.db import database\nimport jesse.helpers as jh\nimport json\n\n\nif database.is_closed():\n    database.open_connection()\n\n\nclass OptimizationSession(peewee.Model):\n    id = peewee.UUIDField(primary_key=True)\n    \n    # Status of the optimization session: running, paused, finished, or stopped\n    status = peewee.CharField()\n    \n    # Best trials data in JSON format\n    best_trials = peewee.TextField(null=True)\n    \n    # Objective curve data in JSON format\n    objective_curve = peewee.TextField(null=True)\n    \n    # Frontend state in JSON format - used for restoring UI state\n    state = peewee.TextField(null=True)\n    \n    # Progress tracking\n    completed_trials = peewee.IntegerField(default=0)\n    total_trials = peewee.IntegerField(default=0)\n    exception = peewee.TextField(null=True)\n    traceback = peewee.TextField(null=True)\n    \n    # User notes\n    title = peewee.CharField(max_length=255, null=True)\n    description = peewee.TextField(null=True)\n    strategy_codes = peewee.TextField(null=True)\n\n    # Timestamps for session management\n    created_at = peewee.BigIntegerField()\n    updated_at = peewee.BigIntegerField()\n\n    class Meta:\n        from jesse.services.db import database\n\n        database = database.db\n        indexes = (\n            (('id',), True),\n            (('updated_at',), False),\n        )\n\n    def __init__(self, attributes: dict = None, **kwargs) -> None:\n        peewee.Model.__init__(self, attributes=attributes, **kwargs)\n\n        if attributes is None:\n            attributes = {}\n\n        for a, value in attributes.items():\n            setattr(self, a, value)\n    \n    @property\n    def best_trials_json(self):\n        \"\"\"\n        Returns the best trials as a Python list\n        \"\"\"\n        if not self.best_trials:\n            return []\n        return json.loads(self.best_trials)\n    \n    @best_trials_json.setter\n    def best_trials_json(self, trials_list):\n        \"\"\"\n        Sets the best trials from a Python list\n        \"\"\"\n        self.best_trials = json.dumps(trials_list)\n    \n    @property\n    def objective_curve_json(self):\n        \"\"\"\n        Returns the objective curve data as a Python list\n        \"\"\"\n        if not self.objective_curve:\n            return []\n        return json.loads(self.objective_curve)\n    \n    @objective_curve_json.setter\n    def objective_curve_json(self, curve_data):\n        \"\"\"\n        Sets the objective curve data from a Python list\n        \"\"\"\n        self.objective_curve = json.dumps(curve_data)\n    \n    @property\n    def state_json(self):\n        \"\"\"\n        Returns the frontend state as a Python dictionary\n        \"\"\"\n        if not self.state:\n            return {}\n        s = json.loads(self.state)\n        if isinstance(s, dict) and 'form' in s and isinstance(s['form'], dict):\n            for key in ['debug_mode', 'export_chart', 'export_tradingview', 'export_csv', 'export_json', 'fast_mode', 'benchmark']:\n                if key in s['form']:\n                    s['form'][key] = jh.normalize_bool(s['form'].get(key))\n        return s\n    \n    @state_json.setter\n    def state_json(self, state_data):\n        \"\"\"\n        Sets the frontend state from a Python dictionary\n        \"\"\"\n        self.state = json.dumps(state_data)\n    \n    @property\n    def strategy_codes_json(self):\n        \"\"\"\n        Returns the strategy codes as a Python dictionary\n        \"\"\"\n        if not self.strategy_codes:\n            return {}\n        return json.loads(self.strategy_codes)\n    \n    @strategy_codes_json.setter\n    def strategy_codes_json(self, codes_dict):\n        \"\"\"\n        Sets the strategy codes from a Python dictionary\n        \"\"\"\n        self.strategy_codes = json.dumps(codes_dict) if codes_dict else None\n    \n    @property\n    def duration(self):\n        \"\"\"\n        Calculate the duration of the session in seconds\n        \"\"\"\n        if not self.updated_at:\n            # For running sessions, calculate duration up to now\n            import jesse.helpers as jh\n            return jh.now_to_timestamp(True) - self.created_at\n        \n        # For completed sessions, use the stored timestamps\n        return self.updated_at - self.created_at\n    \n    @property\n    def best_score(self):\n        \"\"\"\n        Get the best score from the best trials\n        \"\"\"\n        trials = self.best_trials_json\n        if not trials:\n            return None\n            \n        # The first trial in the list should be the best one\n        # (assuming trials are sorted by score)\n        return trials[0].get('fitness', None)\n\n\n# if database is open, create the table\nif database.is_open():\n    OptimizationSession.create_table()\n\n# # # # # # # # # # # # # # # # # # # # # # # # # # # \n# # # # # # # # # DB FUNCTIONS # # # # # # # # #\n# # # # # # # # # # # # # # # # # # # # # # # # # # # \n\ndef get_optimization_session_by_id(id: str):\n    try:\n        return OptimizationSession.get(OptimizationSession.id == id)\n    except OptimizationSession.DoesNotExist:\n        return None\n\n\ndef reset_optimization_session(id: str):\n    OptimizationSession.update(\n        status='running',\n        completed_trials=0,\n        best_trials=None,\n        objective_curve=None,\n        exception=None,\n        traceback=None,\n        updated_at=jh.now_to_timestamp(True)\n    ).where(OptimizationSession.id == id).execute()\n\n\ndef store_optimization_session(\n    id: str,\n    status: str,\n    strategy_codes: dict = None\n) -> None:\n    # Create a new session\n    d = {\n        'id': id,\n        'status': status,\n        'completed_trials': 0,\n        'created_at': jh.now_to_timestamp(True),\n        'updated_at': jh.now_to_timestamp(True)\n    }\n    \n    if strategy_codes is not None:\n        d['strategy_codes'] = json.dumps(strategy_codes)\n    \n    # Save to database\n    OptimizationSession.insert(**d).execute()\n    \n\ndef update_optimization_session_status(id: str, status: str) -> None:\n    d = {\n        'status': status,\n        'updated_at': jh.now_to_timestamp(True)\n    }\n    \n    OptimizationSession.update(**d).where(OptimizationSession.id == id).execute()\n\n\ndef add_session_exception(id: str, exception: str, traceback: str) -> None:\n    d = {\n        'exception': exception,\n        'traceback': traceback,\n        'updated_at': jh.now_to_timestamp(True)\n    }\n\n    OptimizationSession.update(**d).where(OptimizationSession.id == id).execute()\n\n\ndef update_optimization_session_trials(\n    id: str, \n    completed_trials: int, \n    best_trials: list = None,\n    objective_curve: list = None,\n    total_trials: int = None\n) -> None:\n    d = {\n        'completed_trials': completed_trials,\n        'total_trials': total_trials,\n        'updated_at': jh.now_to_timestamp(True)\n    }\n\n    if best_trials is not None:\n        d['best_trials'] = json.dumps(best_trials)\n\n    if objective_curve is not None:\n        d['objective_curve'] = json.dumps(objective_curve)\n\n    OptimizationSession.update(**d).where(OptimizationSession.id == id).execute()\n    \n\ndef get_optimization_session(id: str) -> dict:\n    session = OptimizationSession.get(OptimizationSession.id == id)\n    return {\n        'id': session.id,\n        'status': session.status,\n        'best_trials': session.best_trials_json,\n        'objective_curve': session.objective_curve_json,\n        'completed_trials': session.completed_trials,\n        'created_at': session.created_at,\n        'updated_at': session.updated_at,\n        'best_score': session.best_score,\n        'state': session.state_json\n    }\n\n\ndef get_optimization_sessions(limit: int = 50, offset: int = 0, title_search: str = None, status_filter: str = None, date_filter: str = None) -> list:\n    \"\"\"\n    Returns a list of OptimizationSession objects sorted by most recently updated.\n    Excludes draft sessions by default.\n    \"\"\"\n    query = OptimizationSession.select().where(OptimizationSession.status != 'draft').order_by(OptimizationSession.updated_at.desc())\n    \n    # Apply title filter (case-insensitive)\n    if title_search:\n        query = query.where(OptimizationSession.title.contains(title_search))\n    \n    # Apply status filter\n    if status_filter and status_filter != 'all':\n        query = query.where(OptimizationSession.status == status_filter)\n    \n    # Apply date filter\n    if date_filter and date_filter != 'all_time':\n        current_timestamp = jh.now_to_timestamp(True)\n        \n        if date_filter == '7_days':\n            threshold = current_timestamp - (7 * 24 * 60 * 60 * 1000)\n        elif date_filter == '30_days':\n            threshold = current_timestamp - (30 * 24 * 60 * 60 * 1000)\n        elif date_filter == '90_days':\n            threshold = current_timestamp - (90 * 24 * 60 * 60 * 1000)\n        else:\n            threshold = 0\n        \n        if threshold > 0:\n            query = query.where(OptimizationSession.created_at >= threshold)\n    \n    return list(query.limit(limit).offset(offset))\n\n\ndef delete_optimization_session(id: str) -> bool:\n    try:\n        OptimizationSession.delete().where(OptimizationSession.id == id).execute()\n        return True\n    except Exception as e:\n        print(f\"Error deleting optimization session: {e}\")\n        return False\n\n\ndef update_optimization_session_state(id: str, state: dict, strategy_codes: dict = None) -> None:\n    \"\"\"\n    Update or create (upsert) optimization session state. If session doesn't exist, creates as draft.\n    \"\"\"\n    if isinstance(state, dict) and 'form' in state and isinstance(state['form'], dict):\n        for key in ['debug_mode', 'export_chart', 'export_tradingview', 'export_csv', 'export_json', 'fast_mode', 'benchmark']:\n            if key in state['form']:\n                state['form'][key] = jh.normalize_bool(state['form'].get(key))\n    existing = OptimizationSession.select().where(OptimizationSession.id == id).first()\n    \n    if existing:\n        # Update existing session's state\n        d = {\n            'state': json.dumps(state),\n            'updated_at': jh.now_to_timestamp(True)\n        }\n\n        if strategy_codes is not None:\n            d['strategy_codes'] = json.dumps(strategy_codes)\n        OptimizationSession.update(**d).where(OptimizationSession.id == id).execute()\n    else:\n        # Create new draft session\n        d = {\n            'id': id,\n            'status': 'draft',\n            'state': json.dumps(state),\n            'completed_trials': 0,\n            'total_trials': 0,\n            'created_at': jh.now_to_timestamp(True),\n            'updated_at': jh.now_to_timestamp(True)\n        }\n        OptimizationSession.insert(**d).execute()\n\n\ndef update_optimization_session_notes(id: str, title: str = None, description: str = None, strategy_codes: dict = None) -> None:\n    d = {\n        'updated_at': jh.now_to_timestamp(True)\n    }\n    \n    OptimizationSession.update(**d).where(OptimizationSession.id == id).execute()\n\n\ndef update_optimization_session_notes(id: str, title: str = None, description: str = None, strategy_codes: dict = None) -> None:\n    d = {\n        'updated_at': jh.now_to_timestamp(True)\n    }\n    \n    if title is not None:\n        d['title'] = title\n    \n    if description is not None:\n        d['description'] = description\n    \n    if strategy_codes is not None:\n        d['strategy_codes'] = json.dumps(strategy_codes)\n    \n    OptimizationSession.update(**d).where(OptimizationSession.id == id).execute()\n\n\ndef purge_optimization_sessions(days_old: int = None) -> int:\n    try:\n        current_timestamp = jh.now_to_timestamp(True)\n\n        if days_old is not None:\n            days_old = int(days_old)\n\n        if days_old is not None and days_old > 0:\n            threshold = current_timestamp - (days_old * 24 * 60 * 60 * 1000)\n\n            all_sessions = OptimizationSession.select()\n            sessions_to_delete = []\n\n            for session in all_sessions:\n                try:\n                    session_updated_at = int(session.updated_at) if session.updated_at else 0\n                    if session_updated_at < threshold:\n                        sessions_to_delete.append(session.id)\n                except (ValueError, TypeError):\n                    continue\n\n            deleted_count = 0\n            for session_id in sessions_to_delete:\n                try:\n                    OptimizationSession.delete().where(OptimizationSession.id == session_id).execute()\n                    deleted_count += 1\n                except Exception:\n                    pass\n        else:\n            deleted_count = OptimizationSession.delete().execute()\n\n        return deleted_count\n    except Exception as e:\n        print(f\"Error purging optimization sessions: {e}\")\n        return 0\n\n\ndef get_running_optimization_session_id():\n    try:\n        session = OptimizationSession.select().where(OptimizationSession.status == 'running').order_by(OptimizationSession.updated_at.desc()).first()\n        if session:\n            return str(session.id)\n        return None\n    except Exception as e:\n        raise e"
  },
  {
    "path": "jesse/models/Option.py",
    "content": "import peewee\nfrom jesse.services.db import database\n\n\nif database.is_closed():\n    database.open_connection()\n\n\nclass Option(peewee.Model):\n    id = peewee.UUIDField(primary_key=True)\n    updated_at = peewee.BigIntegerField()\n    type = peewee.CharField()\n    json = peewee.TextField()\n\n    class Meta:\n        from jesse.services.db import database\n\n        database = database.db\n\n    def __init__(self, attributes=None, **kwargs) -> None:\n        peewee.Model.__init__(self, attributes=attributes, **kwargs)\n\n        if attributes is None:\n            attributes = {}\n\n        for a in attributes:\n            setattr(self, a, attributes[a])\n\n\n# if database is open, create the table\nif database.is_open():\n    Option.create_table()\n"
  },
  {
    "path": "jesse/models/Order.py",
    "content": "from playhouse.postgres_ext import *\n\nimport jesse.helpers as jh\nfrom jesse.enums import order_statuses, order_submitted_via\nfrom jesse.services.db import database\n\n\nif database.is_closed():\n    database.open_connection()\n\n\nclass Order(Model):\n    # id generated by Jesse for database usage\n    id = UUIDField(primary_key=True)\n    trade_id = UUIDField(index=True, null=True)\n    session_id = UUIDField(index=True)\n\n    # id generated by market, used in live-trade mode\n    exchange_id = CharField(null=True)\n    # some exchanges might require even further info\n    vars = JSONField(default={})\n    symbol = CharField()\n    exchange = CharField()\n    side = CharField()\n    type = CharField()\n    reduce_only = BooleanField()\n    qty = FloatField()\n    filled_qty = FloatField(default=0)\n    price = FloatField(null=True)\n    status = CharField(default=order_statuses.ACTIVE)\n    created_at = BigIntegerField()\n    updated_at = BigIntegerField()\n    executed_at = BigIntegerField(null=True)\n    canceled_at = BigIntegerField(null=True)\n    session_mode = CharField()\n    jesse_submitted = BooleanField(default=True)\n    submitted_via = CharField(null=True)\n    order_exist_in_exchange = BooleanField(default=True)\n    fee = FloatField(null=True)\n\n    class Meta:\n        from jesse.services.db import database\n\n        database = database.db\n        indexes = ((('trade_id', 'exchange', 'symbol', 'status', 'created_at'), False),)\n\n    def __init__(self, attributes: dict = None, **kwargs) -> None:\n        Model.__init__(self, attributes=attributes, **kwargs)\n\n        if attributes is None:\n            attributes = {}\n\n        for a, value in attributes.items():\n            setattr(self, a, value)\n\n    @property\n    def is_canceled(self) -> bool:\n        return self.status == order_statuses.CANCELED\n\n    @property\n    def is_active(self) -> bool:\n        return self.status == order_statuses.ACTIVE\n\n    @property\n    def is_cancellable(self):\n        \"\"\"\n        orders that are either active or partially filled\n        \"\"\"\n        return self.is_active or self.is_partially_filled or self.is_queued\n\n    @property\n    def is_queued(self) -> bool:\n        \"\"\"\n        Used in live mode only: it means the strategy has considered the order as submitted,\n        but the exchange does not accept it because of the distance between the current\n        price and price of the order. Hence it's been queued for later submission.\n\n        :return: bool\n        \"\"\"\n        return self.status == order_statuses.QUEUED\n\n    @property\n    def is_new(self) -> bool:\n        return self.is_active\n\n    @property\n    def is_executed(self) -> bool:\n        return self.status == order_statuses.EXECUTED\n\n    @property\n    def is_filled(self) -> bool:\n        return self.is_executed\n\n    @property\n    def is_partially_filled(self) -> bool:\n        return self.status == order_statuses.PARTIALLY_FILLED\n\n    @property\n    def is_stop_loss(self):\n        return self.submitted_via == order_submitted_via.STOP_LOSS\n\n    @property\n    def is_take_profit(self):\n        return self.submitted_via == order_submitted_via.TAKE_PROFIT\n\n    @property\n    def to_dict(self):\n        return {\n            'id': self.id,\n            'trade_id': self.trade_id,\n            'session_id': self.session_id,\n            'exchange_id': self.exchange_id,\n            'symbol': self.symbol,\n            'side': self.side,\n            'type': self.type,\n            'qty': self.qty,\n            'filled_qty': self.filled_qty,\n            'price': self.price,\n            'status': self.status,\n            'created_at': self.created_at,\n            'canceled_at': self.canceled_at,\n            'executed_at': self.executed_at,\n            'exchange': self.exchange,\n            'reduce_only': self.reduce_only,\n            'submitted_via': self.submitted_via,\n            'jesse_submitted': self.jesse_submitted,\n            'order_exist_in_exchange': self.order_exist_in_exchange,\n            'updated_at': self.updated_at,\n            'session_mode': self.session_mode,\n        }\n\n    @property\n    def value(self) -> float:\n        return abs(self.qty) * self.price\n\n    @property\n    def remaining_qty(self) -> float:\n        return jh.prepare_qty(abs(self.qty) - abs(self.filled_qty), self.side)\n\n\nif database.is_open():\n    Order.create_table()\n"
  },
  {
    "path": "jesse/models/Orderbook.py",
    "content": "import peewee\nimport jesse.helpers as jh\nimport numpy as np\n\n\nclass Orderbook(peewee.Model):\n    id = peewee.UUIDField(primary_key=True)\n    # timestamp in milliseconds\n    timestamp = peewee.BigIntegerField()\n    symbol = peewee.CharField()\n    exchange = peewee.CharField()\n\n    data = peewee.BlobField()\n\n    class Meta:\n        from jesse.services.db import database\n\n        database = database.db\n        indexes = ((('exchange', 'symbol', 'timestamp'), True),)\n\n    def __init__(self, attributes: dict = None, **kwargs) -> None:\n        peewee.Model.__init__(self, attributes=attributes, **kwargs)\n\n        if attributes is None:\n            attributes = {}\n\n        for a, value in attributes.items():\n            setattr(self, a, value)\n\n\n# # # # # # # # # # # # # # # # # # # # # # # # # # # \n# # # # # # # # # DB FUNCTIONS # # # # # # # # #\n# # # # # # # # # # # # # # # # # # # # # # # # # # # \n\ndef store_orderbook_into_db(exchange: str, symbol: str, orderbook: np.ndarray) -> None:\n    return\n    d = {\n        'id': jh.generate_unique_id(),\n        'timestamp': jh.now_to_timestamp(),\n        'data': orderbook.dumps(),\n        'symbol': symbol,\n        'exchange': exchange,\n    }\n\n    def async_save() -> None:\n        Orderbook.insert(**d).on_conflict_ignore().execute()\n        print(\n            jh.color(\n                f'orderbook: {jh.timestamp_to_time(d[\"timestamp\"])}-{exchange}-{symbol}: [{orderbook[0][0][0]}, {orderbook[0][0][1]}], [{orderbook[1][0][0]}, {orderbook[1][0][1]}]',\n                'magenta'\n            )\n        )\n\n    # async call\n    threading.Thread(target=async_save).start()"
  },
  {
    "path": "jesse/models/Position.py",
    "content": "from typing import Union\nimport numpy as np\nimport jesse.helpers as jh\n\n\nclass Position:\n    id: str = None\n    entry_price: float = None\n    exit_price: float = None\n    current_price: float = None\n    qty: float = 0\n    previous_qty: float = 0\n    opened_at: int = None\n    closed_at: int = None\n    _mark_price: float = None\n    _funding_rate: float = None\n    _next_funding_timestamp: int = None\n    _liquidation_price: float = None\n    exchange_name: str = None\n    exchange = None\n    symbol: str = None\n    strategy = None\n    \n    def __init__(self, attributes: dict = None) -> None:\n        if attributes is None:\n            attributes = {}\n\n        for a in attributes:\n            setattr(self, a, attributes[a])\n\n    @property\n    def mark_price(self) -> float:\n        if not jh.is_live():\n            return self.current_price\n\n        if self.exchange_type == 'spot':\n            return self.current_price\n\n        return self._mark_price\n\n    @property\n    def funding_rate(self) -> float:\n        if not jh.is_live():\n            return 0\n\n        if self.exchange_type == 'spot':\n            raise ValueError('funding rate is not applicable to spot trading')\n\n        return self._funding_rate\n\n    @property\n    def next_funding_timestamp(self) -> Union[int, None]:\n        if not jh.is_live():\n            return None\n\n        if self.exchange_type == 'spot':\n            raise ValueError('funding rate is not applicable to spot trading')\n\n        return self._next_funding_timestamp\n\n    @property\n    def value(self) -> float:\n        \"\"\"\n        The value of open position in the quote currency\n\n        :return: float\n        \"\"\"\n        if self.is_close:\n            return 0\n\n        if self.current_price is None:\n            return None\n\n        return abs(self.current_price * self.qty)\n\n    @property\n    def type(self) -> str:\n        \"\"\"\n        The type of open position - long, short, or close\n\n        :return: str\n        \"\"\"\n        if self.is_long:\n            return 'long'\n        elif self.is_short:\n            return 'short'\n\n        return 'close'\n\n    @property\n    def pnl_percentage(self) -> float:\n        \"\"\"\n        Alias for self.roi\n\n        :return: float\n        \"\"\"\n        return self.roi\n\n    @property\n    def roi(self) -> float:\n        \"\"\"\n        Return on Investment in percentage\n        More at: https://www.binance.com/en/support/faq/5b9ad93cb4854f5990b9fb97c03cfbeb\n        \"\"\"\n        if self.pnl == 0:\n            return 0\n\n        return self.pnl / self.total_cost * 100\n\n    @property\n    def total_cost(self) -> float:\n        \"\"\"\n        How much we paid to open this position (currently does not include fees, should we?!)\n        \"\"\"\n        if self.is_close:\n            return np.nan\n\n        base_cost = self.entry_price * abs(self.qty)\n        if self.strategy:\n            return base_cost / self.leverage\n\n        return base_cost\n\n    @property\n    def leverage(self) -> Union[int, np.float64]:\n        if self.exchange_type == 'spot':\n            return 1\n\n        if self.strategy:\n            return self.strategy.leverage\n        else:\n            return np.nan\n\n    @property\n    def exchange_type(self) -> str:\n        return self.exchange.type\n\n    @property\n    def entry_margin(self) -> float:\n        \"\"\"\n        Alias for self.total_cost\n        \"\"\"\n        return self.total_cost\n\n    @property\n    def pnl(self) -> float:\n        \"\"\"\n        The PNL of the position\n\n        :return: float\n        \"\"\"\n        if abs(self.qty) < self._min_qty:\n            return 0\n\n        if self.entry_price is None:\n            return 0\n\n        if self.value is None:\n            return 0\n\n        diff = self.value - abs(self.entry_price * self.qty)\n\n        return -diff if self.type == 'short' else diff\n\n    @property\n    def is_open(self) -> bool:\n        \"\"\"\n        Is the current position open?\n\n        :return: bool\n        \"\"\"\n        return self.type in ['long', 'short']\n\n    @property\n    def is_close(self) -> bool:\n        \"\"\"\n        Is the current position close?\n\n        :return: bool\n        \"\"\"\n        return self.type == 'close'\n\n    @property\n    def is_long(self) -> bool:\n        \"\"\"\n        Is the current position a long position?\n\n        :return: bool\n        \"\"\"\n        return self.qty > self._min_qty\n\n    @property\n    def is_short(self) -> bool:\n        \"\"\"\n        Is the current position a short position?\n\n        :return: bool\n        \"\"\"\n        return self.qty < -abs(self._min_qty)\n\n    @property\n    def mode(self) -> str:\n        if self.exchange.type == 'spot':\n            return 'spot'\n        else:\n            return self.exchange.futures_leverage_mode\n\n    @property\n    def liquidation_price(self) -> Union[float, np.float64]:\n        \"\"\"\n        The price at which the position gets liquidated. formulas are taken from:\n        https://help.bybit.com/hc/en-us/articles/900000181046-Liquidation-Price-USDT-Contract-\n        \"\"\"\n        if self.is_close:\n            return np.nan\n\n        if jh.is_livetrading():\n            return self._liquidation_price\n\n        if self.mode in ['cross', 'spot']:\n            return np.nan\n\n        elif self.mode == 'isolated':\n            if self.type == 'long':\n                return self.entry_price * (1 - self._initial_margin_rate + 0.004)\n            elif self.type == 'short':\n                return self.entry_price * (1 + self._initial_margin_rate - 0.004)\n            else:\n                return np.nan\n\n        else:\n            raise ValueError\n\n    @property\n    def _initial_margin_rate(self) -> float:\n        return 1 / self.leverage\n\n    @property\n    def bankruptcy_price(self) -> Union[float, np.float64]:\n        if self.type == 'long':\n            return self.entry_price * (1 - self._initial_margin_rate)\n        elif self.type == 'short':\n            return self.entry_price * (1 + self._initial_margin_rate)\n        else:\n            return np.nan\n\n    @property\n    def to_dict(self):\n        return {\n            'entry_price': self.entry_price,\n            'qty': self.qty,\n            'current_price': self.current_price,\n            'value': self.value,\n            'type': self.type,\n            'exchange': self.exchange_name,\n            'pnl': self.pnl,\n            'pnl_percentage': self.pnl_percentage,\n            'leverage': self.leverage,\n            'liquidation_price': self.liquidation_price,\n            'bankruptcy_price': self.bankruptcy_price,\n            'mode': self.mode,\n        }\n\n    @property\n    def _min_notional_size(self) -> float:\n        if not (jh.is_livetrading() and self.exchange_type == 'spot'):\n            return 0\n\n        return self.exchange.vars['precisions'][self.symbol]['min_notional_size']\n\n    @property\n    def _min_qty(self) -> float:\n        if not (jh.is_livetrading() and self.exchange_type == 'spot'):\n            return 0\n\n        # first check exchange return min_qty or not\n        if 'min_qty' in self.exchange.vars['precisions'][self.symbol]:\n            return self.exchange.vars['precisions'][self.symbol]['min_qty']\n\n        if self._min_notional_size and self.current_price:\n            return self._min_notional_size / self.current_price\n        else:\n            return 0\n\n    @property\n    def _can_mutate_qty(self):\n        return not (self.exchange_type == 'spot' and jh.is_livetrading())\n"
  },
  {
    "path": "jesse/models/Route.py",
    "content": "class Route:\n    def __init__(\n            self,\n            exchange: str,\n            symbol: str,\n            timeframe: str = None,\n            strategy_name: str = None,\n            dna: str = None\n    ) -> None:\n        self.exchange = exchange\n        self.symbol = symbol\n        self.timeframe = timeframe\n        self.strategy_name = strategy_name\n        self.strategy = None\n        self.dna = dna\n"
  },
  {
    "path": "jesse/models/SpotExchange.py",
    "content": "import jesse.helpers as jh\nfrom jesse.enums import sides\nfrom jesse.exceptions import InsufficientBalance\nfrom jesse.models.Order import Order\nfrom jesse.models.Exchange import Exchange\nfrom jesse.enums import order_types\nfrom jesse.utils import sum_floats, subtract_floats\n\n\nclass SpotExchange(Exchange):\n    def __init__(self, name: str, starting_balance: float, fee_rate: float):\n        super().__init__(name, starting_balance, fee_rate, 'spot')\n\n        self.stop_orders_sum = {}\n        self.limit_orders_sum = {}\n\n        # # # # live-trading only # # # #\n        self._started_balance = 0\n        # # # # # # # # # # # # # # # # #\n\n    @property\n    def started_balance(self) -> float:\n        if jh.is_livetrading():\n            return self._started_balance\n\n        return self.starting_assets[jh.app_currency()]\n\n    @property\n    def wallet_balance(self) -> float:\n        return self.assets[self.settlement_currency]\n\n    @property\n    def available_margin(self) -> float:\n        return self.wallet_balance\n\n    def on_order_submission(self, order: Order) -> None:\n        if jh.is_livetrading():\n            return\n\n        if order.side == sides.SELL:\n            if order.type == order_types.STOP:\n                self.stop_orders_sum[order.symbol] = sum_floats(self.stop_orders_sum.get(order.symbol, 0), abs(order.qty))\n            elif order.type == order_types.LIMIT:\n                self.limit_orders_sum[order.symbol] = sum_floats(self.limit_orders_sum.get(order.symbol, 0), abs(order.qty))\n\n        base_asset = jh.base_asset(order.symbol)\n\n        # buy order\n        if order.side == sides.BUY:\n            # cannot buy if we don't have enough balance (of the settlement currency)\n            quote_balance = self.assets[self.settlement_currency]\n            self.assets[self.settlement_currency] = subtract_floats(self.assets[self.settlement_currency], (abs(order.qty) * order.price))\n            if self.assets[self.settlement_currency] < 0:\n                raise InsufficientBalance(\n                    f\"Not enough balance. Available balance at {self.name} for {self.settlement_currency} is {quote_balance} but you're trying to spend {abs(order.qty * order.price)}\"\n                )\n        # sell order\n        else:\n            base_balance = self.assets[base_asset]\n            # sell order's qty cannot be bigger than the amount of existing base asset\n            if order.type == order_types.MARKET:\n                order_qty = sum_floats(abs(order.qty), self.limit_orders_sum.get(order.symbol, 0))\n            elif order.type == order_types.STOP:\n                order_qty = self.stop_orders_sum[order.symbol]\n            elif order.type == order_types.LIMIT:\n                order_qty = self.limit_orders_sum[order.symbol]\n            else:\n                raise Exception(f\"Unknown order type {order.type}\")\n            # validate that the total selling amount is not bigger than the amount of the existing base asset\n            if order_qty > base_balance:\n                raise InsufficientBalance(\n                    f\"Not enough balance. Available balance at {self.name} for {base_asset} is {base_balance} but you're trying to sell {order_qty}\"\n                )\n\n    def on_order_execution(self, order: Order) -> None:\n        if jh.is_livetrading():\n            return\n\n        if order.side == sides.SELL:\n            if order.type == order_types.STOP:\n                self.stop_orders_sum[order.symbol] = subtract_floats(self.stop_orders_sum[order.symbol], abs(order.qty))\n            elif order.type == order_types.LIMIT:\n                self.limit_orders_sum[order.symbol] = subtract_floats(self.limit_orders_sum[order.symbol], abs(order.qty))\n\n        base_asset = jh.base_asset(order.symbol)\n\n        # buy order\n        if order.side == sides.BUY:\n            # asset's balance is increased by the amount of the order's qty after fees are deducted\n            self.assets[base_asset] = sum_floats(self.assets[base_asset], abs(order.qty) * (1 - self.fee_rate))\n        # sell order\n        else:\n            current_balance = self.assets[base_asset]\n            if abs(order.qty) > current_balance:\n                adjusted_qty = current_balance\n                order_qty = abs(adjusted_qty)\n            else:\n                order_qty = abs(order.qty)\n\n            # settlement currency's balance is increased by the amount of the order's qty after fees are deducted\n            self.assets[self.settlement_currency] = sum_floats(\n                self.assets[self.settlement_currency], (order_qty * order.price) * (1 - self.fee_rate)\n            )\n            # now reduce base asset's balance by the amount of the order's qty\n            self.assets[base_asset] = subtract_floats(self.assets[base_asset], order_qty)\n\n    def on_order_cancellation(self, order: Order) -> None:\n        if jh.is_livetrading():\n            return\n\n        if order.side == sides.SELL:\n            if order.type == order_types.STOP:\n                self.stop_orders_sum[order.symbol] = subtract_floats(self.stop_orders_sum[order.symbol], abs(order.qty))\n            elif order.type == order_types.LIMIT:\n                self.limit_orders_sum[order.symbol] = subtract_floats(self.limit_orders_sum[order.symbol], abs(order.qty))\n\n        base_asset = jh.base_asset(order.symbol)\n\n        # buy order\n        if order.side == sides.BUY:\n            self.assets[self.settlement_currency] = sum_floats(self.assets[self.settlement_currency], abs(order.qty) * order.price)\n        # sell order\n        else:\n            if order.type == order_types.STOP:\n                self.stop_orders_sum[order.symbol] = subtract_floats(self.stop_orders_sum[order.symbol], abs(order.qty))\n            elif order.type == order_types.LIMIT:\n                self.limit_orders_sum[order.symbol] = subtract_floats(self.limit_orders_sum[order.symbol], abs(order.qty))\n\n\n    def update_from_stream(self, data: dict) -> None:\n        \"\"\"\n        Used for updating the exchange from the WS stream (only for live trading)\n        \"\"\"\n        import jesse.services.logger as logger\n\n        if not jh.is_livetrading():\n            raise Exception('This method is only for live trading')\n\n        old_balance = self.assets[self.settlement_currency]\n        self.assets[self.settlement_currency] = data['balance']\n        if old_balance != 0 and self.assets[self.settlement_currency] != old_balance:\n            logger.info(\n                f'Balance for {self.settlement_currency} on {self.name} changed from {round(old_balance, 2)} to {round(self.assets[self.settlement_currency], 2)}'\n            )\n        if self._started_balance == 0:\n            self._started_balance = data['balance']\n"
  },
  {
    "path": "jesse/models/Ticker.py",
    "content": "import peewee\nimport jesse.helpers as jh\nimport numpy as np\n\n\nclass Ticker(peewee.Model):\n    id = peewee.UUIDField(primary_key=True)\n    # timestamp in milliseconds\n    timestamp = peewee.BigIntegerField()\n    # the latest trades price\n    last_price = peewee.FloatField()\n    # the trading volume in the last 24 hours\n    volume = peewee.FloatField()\n    # the highest price in the last 24 hours\n    high_price = peewee.FloatField()\n    # the lowest price in the last 24 hours\n    low_price = peewee.FloatField()\n    symbol = peewee.CharField()\n    exchange = peewee.CharField()\n\n    class Meta:\n        from jesse.services.db import database\n\n        database = database.db\n        indexes = ((('exchange', 'symbol', 'timestamp'), True),)\n\n    def __init__(self, attributes: dict = None, **kwargs) -> None:\n        peewee.Model.__init__(self, attributes=attributes, **kwargs)\n\n        if attributes is None:\n            attributes = {}\n\n        for a, value in attributes.items():\n            setattr(self, a, value)\n\n\n# # # # # # # # # # # # # # # # # # # # # # # # # # # \n# # # # # # # # # DB FUNCTIONS # # # # # # # # #\n# # # # # # # # # # # # # # # # # # # # # # # # # # # \n\ndef store_ticker_into_db(exchange: str, symbol: str, ticker: np.ndarray) -> None:\n    return\n    d = {\n        'id': jh.generate_unique_id(),\n        'timestamp': ticker[0],\n        'last_price': ticker[1],\n        'high_price': ticker[2],\n        'low_price': ticker[3],\n        'volume': ticker[4],\n        'symbol': symbol,\n        'exchange': exchange,\n    }\n\n    def async_save() -> None:\n        Ticker.insert(**d).on_conflict_ignore().execute()\n        print(\n            jh.color(f'ticker: {jh.timestamp_to_time(d[\"timestamp\"])}-{exchange}-{symbol}: {ticker}', 'yellow')\n        )\n\n    # async call\n    threading.Thread(target=async_save).start()\n"
  },
  {
    "path": "jesse/models/Trade.py",
    "content": "import peewee\nimport jesse.helpers as jh\nimport numpy as np\nimport threading\n\n\nclass Trade(peewee.Model):\n    id = peewee.UUIDField(primary_key=True)\n    # timestamp in milliseconds\n    timestamp = peewee.BigIntegerField()\n\n    price = peewee.FloatField()\n\n    buy_qty = peewee.FloatField()\n    sell_qty = peewee.FloatField()\n\n    buy_count = peewee.IntegerField()\n    sell_count = peewee.IntegerField()\n\n    symbol = peewee.CharField()\n    exchange = peewee.CharField()\n\n    class Meta:\n        from jesse.services.db import database\n\n        database = database.db\n        indexes = ((('exchange', 'symbol', 'timestamp'), True),)\n\n    def __init__(self, attributes: dict = None, **kwargs) -> None:\n        peewee.Model.__init__(self, attributes=attributes, **kwargs)\n\n        if attributes is None:\n            attributes = {}\n\n        for a, value in attributes.items():\n            setattr(self, a, value)\n\n\n# # # # # # # # # # # # # # # # # # # # # # # # # # # \n# # # # # # # # # DB FUNCTIONS # # # # # # # # #\n# # # # # # # # # # # # # # # # # # # # # # # # # # # \n\ndef store_trade_into_db(exchange: str, symbol: str, trade: np.ndarray) -> None:\n    return\n    d = {\n        'id': jh.generate_unique_id(),\n        'timestamp': trade[0],\n        'price': trade[1],\n        'buy_qty': trade[2],\n        'sell_qty': trade[3],\n        'buy_count': trade[4],\n        'sell_count': trade[5],\n        'symbol': symbol,\n        'exchange': exchange,\n    }\n\n    def async_save() -> None:\n        Trade.insert(**d).on_conflict_ignore().execute()\n        print(\n            jh.color(\n                f'trade: {jh.timestamp_to_time(d[\"timestamp\"])}-{exchange}-{symbol}: {trade}',\n                'green'\n            )\n        )\n\n    # async call\n    threading.Thread(target=async_save).start()"
  },
  {
    "path": "jesse/models/__init__.py",
    "content": "from .Candle import Candle\nfrom .ClosedTrade import ClosedTrade\nfrom .Exchange import Exchange\nfrom .FuturesExchange import FuturesExchange\nfrom .Order import Order\nfrom .Position import Position\nfrom .Route import Route\nfrom .SpotExchange import SpotExchange\nfrom .Ticker import Ticker\nfrom .Log import Log\nfrom .NotificationApiKeys import NotificationApiKeys\nfrom .ExchangeApiKeys import ExchangeApiKeys\nfrom .BacktestSession import BacktestSession\nfrom .OpenTab import OpenTab\nfrom .LiveEquitySnapshot import LiveEquitySnapshot\n"
  },
  {
    "path": "jesse/modes/__init__.py",
    "content": ""
  },
  {
    "path": "jesse/modes/backtest_mode.py",
    "content": "import time\nimport re\nfrom typing import Dict, List, Tuple, Optional\nimport numpy as np\nimport jesse.helpers as jh\nimport jesse.services.metrics as stats\nfrom jesse import exceptions\nfrom jesse.config import config\nfrom jesse.enums import timeframes, order_types\nfrom jesse.models import Order, Position\nfrom jesse.modes.utils import save_daily_portfolio_balance\nfrom jesse.candle_pipelines import BaseCandlesPipeline\nfrom jesse.routes import router\nfrom jesse.services import charts\nfrom jesse.services import report\nfrom jesse.services import candle_service\nfrom jesse.services.file import store_logs\nfrom jesse.services.validators import validate_routes\nfrom jesse.store import store\nfrom jesse.services import logger\nfrom jesse.services.failure import register_custom_exception_handler\nfrom jesse.services.redis import sync_publish, is_process_active\nfrom jesse.services import order_service\nfrom timeloop import Timeloop\nfrom datetime import timedelta\nfrom jesse.services.progressbar import Progressbar\nfrom jesse.constants import TIMEFRAME_TO_ONE_MINUTES\nfrom jesse.services import candle_service, order_service, position_service, exchange_service\n\n\ndef run(\n        client_id: str,\n        debug_mode: bool,\n        user_config: dict,\n        exchange: str,\n        routes: List[Dict[str, str]],\n        data_routes: List[Dict[str, str]],\n        start_date: str,\n        finish_date: str,\n        candles: dict = None,\n        chart: bool = False,\n        tradingview: bool = False,\n        csv: bool = False,\n        json: bool = False,\n        fast_mode: bool = False,\n        benchmark: bool = False\n) -> None:\n    if not jh.is_unit_testing():\n        # at every second, we check to see if it's time to execute stuff\n        status_checker = Timeloop()\n\n        @status_checker.job(interval=timedelta(seconds=1))\n        def handle_time():\n            if is_process_active(client_id) is False:\n                raise exceptions.Termination\n\n        status_checker.start()\n\n    from jesse.config import config\n    config['app']['trading_mode'] = 'backtest'\n\n    # debug flag\n    config['app']['debug_mode'] = debug_mode\n\n    register_custom_exception_handler()\n\n    _execute_backtest(\n        client_id, debug_mode, user_config, exchange, routes, data_routes, start_date, finish_date, candles, chart,\n        tradingview, csv, json, fast_mode, benchmark\n    )\n\n\ndef _execute_backtest(\n        client_id: str,\n        debug_mode: bool,\n        user_config: dict,\n        exchange: str,\n        routes: List[Dict[str, str]],\n        data_routes: List[Dict[str, str]],\n        start_date: str,\n        finish_date: str,\n        candles: dict = None,\n        chart: bool = False,\n        tradingview: bool = False,\n        csv: bool = False,\n        json: bool = False,\n        fast_mode: bool = False,\n        benchmark: bool = False\n):\n    \"\"\"\n    Executes the backtest that has been initiated from within the dashboard. The purpose of extracting these\n    functionalities into this function is so that in case it fails due to a missing data route, it can add\n    it and then re-execute itself.\n    \"\"\"\n    from jesse.config import set_config\n\n    # inject config\n    if not jh.is_unit_testing():\n        set_config(user_config)\n    # add exchange to routes\n    for r in routes:\n        r['exchange'] = exchange\n    for r in data_routes:\n        r['exchange'] = exchange\n    \n    # set routes\n    router.initiate(routes, data_routes)\n    # reset store\n    store.reset()\n    # set session id\n    store.app.set_session_id(client_id)\n    # validate routes\n    validate_routes(router)\n    # initiate candle store\n    store.candles.init_storage(5000)\n    # initialize exchanges state\n    exchange_service.initialize_exchanges_state()\n    # initialize orders state\n    order_service.initialize_orders_state()\n    # initialize positions state\n    position_service.initialize_positions_state()\n\n    # Store backtest session in database (only for UI dashboard, not for CLI/research)\n    if not jh.should_execute_silently():\n        from jesse.models.BacktestSession import store_backtest_session\n        store_backtest_session(\n            id=client_id,\n            status='running'\n        )\n\n    # load historical candles\n    if candles is None:\n        try:\n            warmup_candles, candles = load_candles(\n                jh.date_to_timestamp(start_date),\n                jh.date_to_timestamp(finish_date)\n            )\n            _handle_warmup_candles(warmup_candles, start_date)\n        except exceptions.CandlesNotFound as e:\n            _handle_sync_no_candles(e, start_date, exchange)\n        except exceptions.CandleNotFoundInDatabase as e:\n            _handle_sync_no_candles(e, start_date, exchange)\n\n    if not jh.should_execute_silently():\n        sync_publish('general_info', {\n            'session_id': jh.get_session_id(),\n            'debug_mode': str(config['app']['debug_mode']),\n        })\n        # candles info\n        key = f\"{config['app']['considering_candles'][0][0]}-{config['app']['considering_candles'][0][1]}\"\n        sync_publish('candles_info', stats.candles_info(candles[key]['candles']))\n        # routes info\n        sync_publish('routes_info', stats.routes(router.routes))\n\n    # run backtest simulation\n    result = None\n    try:\n        result = simulator(\n            candles,\n            run_silently=jh.should_execute_silently(),\n            generate_tradingview=tradingview,\n            generate_csv=csv,\n            generate_json=json,\n            generate_equity_curve=True,\n            benchmark=benchmark,\n            generate_hyperparameters=True,\n            fast_mode=fast_mode,\n        )\n    except exceptions.RouteNotFound as e:\n        # Extract exchange, symbol, and timeframe using regular expressions\n        match = re.search(r\"symbol='(.+?)', timeframe='(.+?)'\", str(e))\n        if match:\n            symbol = match.group(1)\n            timeframe = match.group(2)\n            # Adjust data_routes to include the missing route\n            data_routes.append({\n                'exchange': exchange,\n                'symbol': symbol,\n                'timeframe': timeframe\n            })\n            # to prevent an issue with warmupcandles being None\n            candles = None\n            # notify the user about the missing data route and retry the backtest simulation\n            sync_publish('notification', {\n                'message': f'Missing data route for \"{symbol}\" with \"{timeframe}\" timeframe. Adding it and retrying...',\n                'type': 'error'\n            })\n            # retry the backtest simulation\n            _execute_backtest(\n                client_id, debug_mode, user_config, exchange, routes, data_routes, start_date, finish_date, candles,\n                chart, tradingview, csv, json, fast_mode, benchmark\n            )\n            return\n        else:\n            raise e\n    except Exception as e:\n        # Store exception in database (only for UI dashboard)\n        if not jh.should_execute_silently():\n            import traceback\n            from jesse.models.BacktestSession import store_backtest_session_exception, update_backtest_session_status\n            store_backtest_session_exception(client_id, str(e), traceback.format_exc())\n            update_backtest_session_status(client_id, 'stopped')\n        raise\n\n    if result and not jh.should_execute_silently():\n        sync_publish('alert', {\n            'message': f\"Successfully executed backtest simulation in: {result['execution_duration']} seconds\",\n            'type': 'success'\n        })\n        sync_publish('hyperparameters', result['hyperparameters'])\n        sync_publish('metrics', result['metrics'])\n        sync_publish('equity_curve', result['equity_curve'], compression=True)\n        sync_publish('trades', result['trades'], compression=True)\n        \n        # Prepare chart data if requested (call formatting functions once and cache)\n        chart_data = None\n        if chart:\n            # Store the data for database\n            chart_data = {\n                'candles_chart': _get_formatted_candles_for_frontend(),\n                'orders_chart': _get_formatted_orders_for_frontend(),\n                'add_line_to_candle_chart': _get_add_line_to_candle_chart(),\n                'add_extra_line_chart': _get_add_extra_line_chart(),\n                'add_horizontal_line_to_candle_chart': _get_add_horizontal_line_to_candle_chart(),\n                'add_horizontal_line_to_extra_chart': _get_add_horizontal_line_to_extra_chart()\n            }\n        \n        # Capture strategy codes for each route\n        strategy_codes = {}\n        import os\n        for r in router.routes:\n            key = f\"{r.exchange}-{r.symbol}\"\n            if key not in strategy_codes:\n                try:\n                    strategy_path = f'strategies/{r.strategy_name}/__init__.py'\n                    \n                    if os.path.exists(strategy_path):\n                        with open(strategy_path, 'r') as f:\n                            content = f.read()\n                        strategy_codes[key] = content\n                except Exception:\n                    pass\n        \n        # Update backtest session in database with results\n        from jesse.models.BacktestSession import update_backtest_session_results, update_backtest_session_status\n        update_backtest_session_results(\n            id=client_id,\n            metrics=result.get('metrics'),\n            equity_curve=result.get('equity_curve'),\n            trades=result.get('trades'),\n            hyperparameters=result.get('hyperparameters'),\n            chart_data=chart_data,\n            execution_duration=result.get('execution_duration'),\n            strategy_codes=strategy_codes if strategy_codes else None\n        )\n        update_backtest_session_status(client_id, 'finished')\n\n    # close database connection\n    from jesse.services.db import database\n    database.close_connection()\n    \n\ndef _handle_sync_no_candles(e, start_date, exchange):\n    # Extract symbol and exchange from error message\n    match = re.search(r\"for (.*?) on (.*?)$\", str(e))\n    if match:\n        symbol = match.group(1)\n        message = f'Missing trading candles for {symbol} on {exchange} from {start_date}'\n        warmup_num = jh.get_config('env.data.warmup_candles_num', 210)\n        if warmup_num > 0:\n            start_date = jh.date_to_timestamp(start_date) - (\n                warmup_num * jh.timeframe_to_one_minutes(jh.max_timeframe(config['app']['considering_timeframes'])) * 2 * 60_000)\n            start_date = jh.timestamp_to_date(start_date)\n        sync_publish(\n            \"missing_candles\",\n            {\n                \"message\": message,\n                \"symbol\": symbol,\n                \"exchange\": exchange,\n                \"start_date\": start_date,\n            },\n        )\n        \n        raise exceptions.CandlesNotFound({\n            'message': str(e),\n            'symbol': symbol,\n            'exchange': exchange,\n            'start_date': start_date,\n            'type': 'missing_candles'\n        })\n    raise e\n\n\ndef _get_formatted_candles_for_frontend():\n    arr = []\n    for r in router.routes:\n        candles_arr = candle_service.get_candles(r.exchange, r.symbol, r.timeframe)\n        # Find the index where the starting time actually begins.\n        starting_index = 0\n        for i, c in enumerate(candles_arr):\n            if c[0] >= store.app.starting_time:\n                starting_index = i\n                break\n\n        candles = [{\n            'time': int(c[0]/1000),\n            'open': c[1],\n            'close': c[2],\n            'high': c[3],\n            'low': c[4],\n            'volume': c[5]\n        } for c in candles_arr[starting_index:]]\n        arr.append({\n            'exchange': r.exchange,\n            'symbol': r.symbol,\n            'timeframe': r.timeframe,\n            'candles': candles\n        })\n    return arr\n\n\ndef _get_formatted_orders_for_frontend():\n    arr = []\n    for r in router.routes:\n        arr.append({\n            'exchange': r.exchange,\n            'symbol': r.symbol,\n            'timeframe': r.timeframe,\n            'orders': r.strategy._executed_orders\n        })\n    return arr\n\n\ndef _get_add_line_to_candle_chart():\n    arr = []\n    for r in router.routes:\n        arr.append({\n            'exchange': r.exchange,\n            'symbol': r.symbol,\n            'timeframe': r.timeframe,\n            'lines': r.strategy._add_line_to_candle_chart_values\n        })\n    return arr\n\n\ndef _get_add_extra_line_chart():\n    arr = []\n    for r in router.routes:\n        arr.append({\n            'exchange': r.exchange,\n            'symbol': r.symbol,\n            'timeframe': r.timeframe,\n            'charts': r.strategy._add_extra_line_chart_values\n        })\n    return arr\n\n\ndef _get_add_horizontal_line_to_candle_chart():\n    arr = []\n    for r in router.routes:\n        arr.append({\n            'exchange': r.exchange,\n            'symbol': r.symbol,\n            'timeframe': r.timeframe,\n            'lines': r.strategy._add_horizontal_line_to_candle_chart_values\n        })\n    return arr\n\n\ndef _get_add_horizontal_line_to_extra_chart():\n    arr = []\n    for r in router.routes:\n        arr.append({\n            'exchange': r.exchange,\n            'symbol': r.symbol,\n            'timeframe': r.timeframe,\n            'lines': r.strategy._add_horizontal_line_to_extra_chart_values\n        })\n    return arr\n\n\ndef _handle_missing_candles(exchange: str, symbol: str, start_date: int, message: str = None):\n    \"\"\"Helper function to handle missing candles scenarios\"\"\"\n    formatted_date = jh.timestamp_to_date(start_date)\n    if message is None:\n        message = f'Missing trading candles for {symbol} on {exchange} from {formatted_date}'\n    \n    sync_publish(\n        \"missing_candles\",\n        {\n            \"message\": message,\n            \"symbol\": symbol,\n            \"exchange\": exchange,\n            \"start_date\": formatted_date,\n        },\n    )\n    \n    raise exceptions.CandlesNotFound({\n        'message': message,\n        'symbol': symbol,\n        'exchange': exchange,\n        'start_date': start_date,\n        'type': 'missing_candles'\n    })\n\n\ndef load_candles(start_date: int, finish_date: int) -> Tuple[dict, dict]:\n    warmup_num = jh.get_config('env.data.warmup_candles_num', 210)\n    max_timeframe = jh.max_timeframe(config['app']['considering_timeframes'])\n\n    # load and add required warm-up candles for backtest, and then Prepare trading candles\n    trading_candles = {}\n    warmup_candles = {}\n    for c in config['app']['considering_candles']:\n        exchange, symbol = c[0], c[1]\n        warmup_candles_arr, trading_candle_arr = candle_service.get_candles_from_db(\n            exchange, symbol, max_timeframe, start_date, finish_date, warmup_num, caching=True, is_for_jesse=True\n        )\n\n        # Ensure that trading_candle_arr is not None or empty\n        if trading_candle_arr is None or (isinstance(trading_candle_arr, np.ndarray) and trading_candle_arr.size == 0):\n            _handle_missing_candles(\n                exchange, \n                symbol, \n                start_date, \n                f\"Missing trading candles for {symbol} on {exchange}\"\n            )\n\n        # Check that the first trading candle covers the requested start date.\n        if trading_candle_arr[0][0] > start_date:\n            _handle_missing_candles(exchange, symbol, start_date)\n\n        # Check that the last trading candle covers the requested finish date.\n        if trading_candle_arr[-1][0] < (finish_date - 60_000):\n            _handle_missing_candles(exchange, symbol, start_date)\n\n        # add trading candles\n        trading_candles[jh.key(exchange, symbol)] = {\n            'exchange': exchange,\n            'symbol': symbol,\n            'candles': trading_candle_arr\n        }\n\n        warmup_candles[jh.key(exchange, symbol)] = {\n            'exchange': exchange,\n            'symbol': symbol,\n            'candles': warmup_candles_arr\n        }\n\n    return warmup_candles, trading_candles\n\n\ndef _handle_warmup_candles(warmup_candles: dict, start_date: str) -> None:\n    try:\n        for c in config['app']['considering_candles']:\n            exchange, symbol = c[0], c[1]\n            candle_service.inject_warmup_candles_to_store(warmup_candles[jh.key(exchange, symbol)]['candles'], exchange, symbol)\n    except ValueError as e:\n        # Extract exchange and symbol from error message\n        match = re.search(r\"for (.*?)/(.*?)\\?\", str(e))\n        if match:\n            exchange, symbol = match.groups()\n            \n            # Calculate warmup start date using the same logic as load_candles()\n            warmup_num = jh.get_config('env.data.warmup_candles_num', 210)\n            max_timeframe = jh.max_timeframe(config['app']['considering_timeframes'])\n            # Convert max_timeframe to minutes and multiply by warmup_num\n            warmup_minutes = TIMEFRAME_TO_ONE_MINUTES[max_timeframe] * warmup_num\n            warmup_start_timestamp = jh.date_to_timestamp(start_date) - (warmup_minutes * 60_000)\n            warmup_start_date = jh.timestamp_to_date(warmup_start_timestamp)\n            # Publish the missing candles error to the frontend\n            # This will trigger the alert in the BacktestTab.vue component\n            # so that the user can import the missing candles\n            sync_publish(\n                \"missing_candles\",\n                {\n                    \"message\": f'Missing warmup candles for {symbol} on {exchange} from {warmup_start_date}',\n                    \"symbol\": symbol,\n                    \"exchange\": exchange,\n                    \"start_date\": warmup_start_date,\n                },\n            )\n            raise exceptions.CandlesNotFound(str(e))\n        raise e\n\n\ndef simulator(*args, fast_mode: bool = False, **kwargs) -> dict:\n    if fast_mode:\n        return _skip_simulator(*args, **kwargs)\n\n    return _step_simulator(*args, **kwargs)\n\n\ndef _step_simulator(\n        candles: dict,\n        run_silently: bool,\n        hyperparameters: dict = None,\n        generate_tradingview: bool = False,\n        generate_csv: bool = False,\n        generate_json: bool = False,\n        generate_equity_curve: bool = False,\n        benchmark: bool = False,\n        generate_hyperparameters: bool = False,\n        generate_logs: bool = False,\n        with_candles_pipeline: bool = True,\n        candles_pipeline_class = None,\n        candles_pipeline_kwargs: dict = None,\n) -> dict:\n    # In case generating logs is specifically demanded, the debug mode must be enabled.\n    if generate_logs:\n        config['app']['debug_mode'] = True\n\n    begin_time_track = time.time()\n\n    key = f\"{config['app']['considering_candles'][0][0]}-{config['app']['considering_candles'][0][1]}\"\n    first_candles_set = candles[key]['candles']\n\n    length = _simulation_minutes_length(candles)\n    _prepare_times_before_simulation(candles)\n    candles_pipelines = _prepare_routes(\n        hyperparameters=hyperparameters,\n        with_candles_pipeline=with_candles_pipeline,\n        candles_pipeline_class=candles_pipeline_class,\n        candles_pipeline_kwargs=candles_pipeline_kwargs\n    )\n\n    # add initial balance\n    save_daily_portfolio_balance(is_initial=True)\n\n    progressbar = Progressbar(length, step=420)\n    last_update_time = None\n    for i in range(length):\n        # update time\n        store.app.time = first_candles_set[i][0] + 60_000\n\n        # add candles\n        for j in candles:\n            candles_pipeline = candles_pipelines[j]\n            short_candle = get_candles_from_pipeline(candles_pipeline, candles[j]['candles'], i)\n            if i != 0:\n                previous_short_candle = candles[j]['candles'][i - 1]\n                short_candle = _get_fixed_jumped_candle(previous_short_candle, short_candle)\n            exchange = candles[j]['exchange']\n            symbol = candles[j]['symbol']\n\n            candle_service.add_candle(short_candle, exchange, symbol, '1m', with_execution=False,\n                                     with_generation=False)\n\n            # print short candle\n            if jh.is_debuggable('shorter_period_candles'):\n                candle_service.print_candle(short_candle, True, symbol)\n\n            _simulate_price_change_effect(short_candle, exchange, symbol)\n\n            # generate and add candles for bigger timeframes\n            for timeframe in config['app']['considering_timeframes']:\n                # for 1m, no work is needed\n                if timeframe == '1m':\n                    continue\n\n                count = TIMEFRAME_TO_ONE_MINUTES[timeframe]\n                # until = count - ((i + 1) % count)\n\n                if (i + 1) % count == 0:\n                    generated_candle = candle_service.generate_candle_from_one_minutes(\n                        timeframe,\n                        candles[j]['candles'][(i - (count - 1)):(i + 1)]\n                    )\n\n                    candle_service.add_candle(\n                        generated_candle, \n                        exchange, \n                        symbol, \n                        timeframe, \n                        with_execution=False,\n                        with_generation=False\n                    )\n\n        last_update_time = _update_progress_bar(progressbar, run_silently, i, candle_step=420,\n                                                last_update_time=last_update_time)\n\n        # now that all new generated candles are ready, execute\n        for r in router.routes:\n            count = TIMEFRAME_TO_ONE_MINUTES[r.timeframe]\n            # 1m timeframe\n            if r.timeframe == timeframes.MINUTE_1:\n                r.strategy._execute()\n            elif (i + 1) % count == 0:\n                # print candle\n                if jh.is_debuggable('trading_candles'):\n                    candle_service.print_candle(candle_service.get_current_candle(r.exchange, r.symbol, r.timeframe), False,\n                                 r.symbol)\n                r.strategy._execute()\n\n            order_service.update_active_orders(r.exchange, r.symbol)\n\n        # now check to see if there's any MARKET orders waiting to be executed\n        order_service.execute_simulated_market_orders()\n\n        if i != 0 and i % 1440 == 0:\n            save_daily_portfolio_balance()\n\n    _finish_progress_bar(progressbar, run_silently)\n\n    execution_duration = 0\n    if not run_silently:\n        # print executed time for the backtest session\n        finish_time_track = time.time()\n        execution_duration = round(finish_time_track - begin_time_track, 2)\n\n    for r in router.routes:\n        r.strategy._terminate()\n        order_service.execute_simulated_market_orders()\n\n    # now that backtest simulation is finished, add finishing balance\n    save_daily_portfolio_balance()\n\n    # set the ending time for the backtest session\n    store.app.ending_time = store.app.time + 60_000\n\n    result = _generate_outputs(\n        candles,\n        generate_tradingview=generate_tradingview,\n        generate_csv=generate_csv,\n        generate_json=generate_json,\n        generate_equity_curve=generate_equity_curve,\n        benchmark=benchmark,\n        generate_hyperparameters=generate_hyperparameters,\n        generate_logs=generate_logs,\n    )\n    result['execution_duration'] = execution_duration\n    return result\n\n\ndef _simulation_minutes_length(candles: dict) -> int:\n    key = f\"{config['app']['considering_candles'][0][0]}-{config['app']['considering_candles'][0][1]}\"\n    first_candles_set = candles[key][\"candles\"]\n    return len(first_candles_set)\n\n\ndef _prepare_times_before_simulation(candles: dict) -> None:\n    # result = {}\n    # begin_time_track = time.time()\n    key = f\"{config['app']['considering_candles'][0][0]}-{config['app']['considering_candles'][0][1]}\"\n    first_candles_set = candles[key][\"candles\"]\n    # length = len(first_candles_set)\n    # to preset the array size for performance\n    try:\n        store.app.starting_time = first_candles_set[0][0]\n    except IndexError:\n        raise IndexError('Check your \"warm_up_candles\" config value')\n    store.app.time = first_candles_set[0][0]\n\n\ndef _prepare_routes(\n                    hyperparameters: dict = None,\n                    with_candles_pipeline: bool = True,\n                    candles_pipeline_class = None,\n                    candles_pipeline_kwargs: dict = None,\n                    ) -> Dict[str, BaseCandlesPipeline | None]:\n    # initiate strategies\n    candles_pipeline = {}\n\n    for r in router.routes:\n        # if the r.strategy is str read it from file\n        if isinstance(r.strategy_name, str):\n            StrategyClass = jh.get_strategy_class(r.strategy_name)\n        # else it is a class object so just use it\n        else:\n            StrategyClass = r.strategy_name\n\n        try:\n            r.strategy = StrategyClass()\n        except TypeError:\n            raise exceptions.InvalidStrategy(\n                \"Strategy validation failed. Make sure your strategy has the mandatory methods such as should_long(), \"\n                \"go_long(), etc. For working examples, visit: https://jesse.trade/strategies\"\n            )\n        except:\n            raise\n\n        r.strategy.name = r.strategy_name\n        r.strategy.exchange = r.exchange\n        r.strategy.symbol = r.symbol\n        r.strategy.timeframe = r.timeframe\n\n        # read the dna from strategy's dna() and use it for injecting inject hyperparameters\n        # first convert DNS string into hyperparameters\n        if len(r.strategy.dna()) > 0 and hyperparameters is None:\n            hyperparameters = jh.dna_to_hp(\n                r.strategy.hyperparameters(), r.strategy.dna()\n            )\n\n        # inject hyperparameters sent within the optimize mode\n        if hyperparameters is not None:\n            r.strategy.hp = hyperparameters\n\n        # init few objects that couldn't be initiated in Strategy __init__\n        # it also injects hyperparameters into self.hp in case the route does not uses any DNAs\n        r.strategy._init_objects()\n\n        # monte-carlo simulation\n        if with_candles_pipeline:\n            if candles_pipeline_class is not None:\n                # Use the provided pipeline class with kwargs if available\n                kwargs = candles_pipeline_kwargs or {}\n                candles_pipeline[jh.key(r.exchange, r.symbol)] = candles_pipeline_class(**kwargs)\n            else:\n                # Otherwise, fall back to the strategy's pipeline\n                candles_pipeline[jh.key(r.exchange, r.symbol)] = r.strategy.candles_pipeline()\n        else: # normal backtest\n            candles_pipeline[jh.key(r.exchange, r.symbol)] = None\n\n        store.positions.get_position(r.exchange, r.symbol).strategy = r.strategy\n\n    # Ensure pipelines exist for data routes as well (no strategy attached)\n    # Keys in `candles` include both trading and data routes; provide a pipeline (or None) for each\n    for dr in getattr(router, 'data_routes', []) or []:\n        key = jh.key(dr.exchange, dr.symbol)\n        if key in candles_pipeline:\n            continue\n        if with_candles_pipeline and candles_pipeline_class is not None:\n            kwargs = candles_pipeline_kwargs or {}\n            candles_pipeline[key] = candles_pipeline_class(**kwargs)\n        else:\n            candles_pipeline[key] = None\n\n    return candles_pipeline\n\n\ndef get_candles_from_pipeline(candles_pipeline: Optional[BaseCandlesPipeline], candles: np.ndarray, i: int, candles_step: int = -1) -> np.ndarray:\n    if candles_pipeline is None:\n        if candles_step == -1:\n            return candles[i]\n        else:\n            return candles[i: i+candles_step]\n    return candles_pipeline.get_candles(candles[i: i + candles_pipeline._batch_size], i, candles_step)\n\n\ndef _update_progress_bar(\n        progressbar: Progressbar, run_silently: bool, candle_index: int, candle_step: int, last_update_time: float\n) -> float:\n    throttle_interval = 0.5\n    current_time = time.time()\n    if not run_silently and candle_index % candle_step == 0:\n        progressbar.update()\n\n        if last_update_time is None or (current_time - last_update_time) >= throttle_interval:\n            sync_publish(\n                \"progressbar\",\n                {\n                    \"current\": progressbar.current,\n                    \"estimated_remaining_seconds\": progressbar.estimated_remaining_seconds,\n                },\n            )\n            # Update the last update time\n            last_update_time = current_time\n\n    # Return the last update time for future reference\n    return last_update_time\n\n\ndef _finish_progress_bar(progressbar: Progressbar, run_silently: bool):\n    if run_silently:\n        return\n\n    progressbar.finish()\n    sync_publish(\n        \"progressbar\",\n        {\n            \"current\": 100,\n            \"estimated_remaining_seconds\": 0,\n        },\n    )\n\n\ndef _get_fixed_jumped_candle(\n        previous_candle: np.ndarray, candle: np.ndarray\n) -> np.ndarray:\n    \"\"\"\n    A little workaround for the times that the price has jumped and the opening\n    price of the current candle is not equal to the previous candle's close!\n\n    :param previous_candle: np.ndarray\n    :param candle: np.ndarray\n    \"\"\"\n    if previous_candle[2] < candle[1]:\n        candle[1] = previous_candle[2]\n        candle[4] = min(previous_candle[2], candle[4])\n    elif previous_candle[2] > candle[1]:\n        candle[1] = previous_candle[2]\n        candle[3] = max(previous_candle[2], candle[3])\n\n    return candle\n\n\ndef _simulate_price_change_effect(real_candle: np.ndarray, exchange: str, symbol: str) -> None:\n    current_temp_candle = real_candle.copy()\n    executed_order = False\n\n    executing_orders = _get_executing_orders(exchange, symbol, real_candle)\n    if len(executing_orders) > 1:\n        # extend the candle shape from (6,) to (1,6)\n        executing_orders = _sort_execution_orders(executing_orders, current_temp_candle[None, :])\n\n    while True:\n        if len(executing_orders) == 0:\n            executed_order = False\n        else:\n            for index, order in enumerate(executing_orders):\n                if index == len(executing_orders) - 1 and not order.is_active:\n                    executed_order = False\n\n                if not order.is_active:\n                    continue\n\n                if candle_service.candle_includes_price(current_temp_candle, order.price):\n                    storable_temp_candle, current_temp_candle = candle_service.split_candle(current_temp_candle, order.price)\n                    _update_all_routes_a_partial_candle(exchange, symbol, storable_temp_candle)\n\n                    p = store.positions.get_position(exchange, symbol)\n                    p.current_price = storable_temp_candle[2]\n\n                    executed_order = True\n\n                    order_service.execute_order(order)\n                    executing_orders = _get_executing_orders(exchange, symbol, current_temp_candle)\n                    if len(executing_orders) > 1:\n                        # extend the candle shape from (6,) to (1,6)\n                        executing_orders = _sort_execution_orders(executing_orders, current_temp_candle[None, :])\n\n                    # break from the for loop, we'll try again inside the while\n                    # loop with the new current_temp_candle\n                    break\n                else:\n                    executed_order = False\n\n        if not executed_order:\n            # add/update the real_candle to the store so we can move on\n            candle_service.add_candle(\n                real_candle, exchange, symbol, '1m',\n                with_execution=False,\n                with_generation=False\n            )\n            p = store.positions.get_position(exchange, symbol)\n            if p:\n                p.current_price = real_candle[2]\n            break\n\n    _check_for_liquidations(real_candle, exchange, symbol)\n\n\ndef _check_for_liquidations(candle: np.ndarray, exchange: str, symbol: str) -> None:\n    p: Position = store.positions.get_position(exchange, symbol)\n\n    if not p:\n        return\n\n    # for now, we only support the isolated mode:\n    if p.mode != 'isolated':\n        return\n\n    if candle_service.candle_includes_price(candle, p.liquidation_price):\n        closing_order_side = jh.closing_side(p.type)\n\n        # create the market order that is used as the liquidation order\n        order = Order({\n            'id': jh.generate_unique_id(),\n            'symbol': symbol,\n            'exchange': exchange,\n            'side': closing_order_side,\n            'type': order_types.MARKET,\n            'reduce_only': True,\n            'qty': jh.prepare_qty(p.qty, closing_order_side),\n            'price': p.bankruptcy_price\n        })\n\n        store.orders.add_order(order)\n\n        store.app.total_liquidations += 1\n\n        logger.info(f'{p.symbol} liquidated at {p.liquidation_price}')\n\n        order_service.execute_order(order)\n\n\ndef _generate_outputs(\n        candles: dict,\n        generate_tradingview: bool = False,\n        generate_csv: bool = False,\n        generate_json: bool = False,\n        generate_equity_curve: bool = False,\n        benchmark: bool = False,\n        generate_hyperparameters: bool = False,\n        generate_logs: bool = False,\n):\n    result = {}\n    if generate_hyperparameters:\n        result[\"hyperparameters\"] = stats.hyperparameters(router.routes)\n    result[\"metrics\"] = report.portfolio_metrics()\n    result[\"trades\"] = report.trades()\n    # generate logs in json, csv and tradingview's pine-editor format\n    logs_path = store_logs(generate_json, generate_tradingview, generate_csv)\n    if generate_json:\n        result[\"json\"] = logs_path[\"json\"]\n    if generate_tradingview:\n        result[\"tradingview\"] = logs_path[\"tradingview\"]\n    if generate_csv:\n        result[\"csv\"] = logs_path[\"csv\"]\n    if generate_equity_curve:\n        result[\"equity_curve\"] = charts.equity_curve(benchmark)\n    if generate_logs:\n        result[\"logs\"] = f\"storage/logs/backtest-mode/{jh.get_session_id()}.txt\"\n    return result\n\n\ndef _skip_simulator(\n        candles: dict,\n        run_silently: bool,\n        hyperparameters: dict = None,\n        generate_tradingview: bool = False,\n        generate_csv: bool = False,\n        generate_json: bool = False,\n        generate_equity_curve: bool = False,\n        benchmark: bool = False,\n        generate_hyperparameters: bool = False,\n        generate_logs: bool = False,\n        with_candles_pipeline: bool = True,\n        candles_pipeline_class = None,\n        candles_pipeline_kwargs: dict = None,\n) -> dict:\n    # In case generating logs is specifically demanded, the debug mode must be enabled.\n    if generate_logs:\n        config[\"app\"][\"debug_mode\"] = True\n\n    begin_time_track = time.time()\n\n    length = _simulation_minutes_length(candles)\n    _prepare_times_before_simulation(candles)\n    candles_pipelines = _prepare_routes(hyperparameters, with_candles_pipeline, candles_pipeline_class, candles_pipeline_kwargs)\n\n    # add initial balance\n    save_daily_portfolio_balance(is_initial=True)\n\n    candles_step = _calculate_minimum_candle_step()\n    progressbar = Progressbar(length, step=candles_step)\n    last_update_time = None\n    for i in range(0, length, candles_step):\n        # update time moved to _simulate_price_change_effect__multiple_candles\n        # store.app.time = first_candles_set[i][0] + (60_000 * candles_step)\n        _simulate_new_candles(candles, candles_pipelines, i, candles_step)\n\n        last_update_time = _update_progress_bar(progressbar, run_silently, i, candles_step,\n                                                last_update_time=last_update_time)\n\n        _execute_routes(i, candles_step)\n\n        # now check to see if there's any MARKET orders waiting to be executed\n        order_service.execute_simulated_market_orders()\n\n        if i != 0 and i % 1440 == 0:\n            save_daily_portfolio_balance()\n\n    _finish_progress_bar(progressbar, run_silently)\n\n    execution_duration = 0\n    if not run_silently:\n        # print executed time for the backtest session\n        finish_time_track = time.time()\n        execution_duration = round(finish_time_track - begin_time_track, 2)\n\n    for r in router.routes:\n        r.strategy._terminate()\n        order_service.execute_simulated_market_orders()\n\n    # now that backtest simulation is finished, add finishing balance\n    save_daily_portfolio_balance()\n\n    # set the ending time for the backtest session\n    store.app.ending_time = store.app.time + 60_000\n\n    result = _generate_outputs(\n        candles,\n        generate_tradingview=generate_tradingview,\n        generate_csv=generate_csv,\n        generate_json=generate_json,\n        generate_equity_curve=generate_equity_curve,\n        benchmark=benchmark,\n        generate_hyperparameters=generate_hyperparameters,\n        generate_logs=generate_logs,\n    )\n    result['execution_duration'] = execution_duration\n    return result\n\n\ndef _calculate_minimum_candle_step():\n    \"\"\"\n    Calculates the minimum step for update candles that will allow simple updates on the simulator.\n    \"\"\"\n    # config[\"app\"][\"considering_timeframes\"] use '1m' also even if not required by the user so take only what the user\n    # is requested.\n    consider_time_frames = [\n        TIMEFRAME_TO_ONE_MINUTES[route[\"timeframe\"]]\n        for route in router.all_formatted_routes\n    ]\n    return np.gcd.reduce(consider_time_frames)\n\ntimeframe_to_one_minutes = {\n    timeframes.MINUTE_1: 1,\n    timeframes.MINUTE_3: 3,\n    timeframes.MINUTE_5: 5,\n    timeframes.MINUTE_15: 15,\n    timeframes.MINUTE_30: 30,\n    timeframes.MINUTE_45: 45,\n    timeframes.HOUR_1: 60,\n    timeframes.HOUR_2: 60 * 2,\n    timeframes.HOUR_3: 60 * 3,\n    timeframes.HOUR_4: 60 * 4,\n    timeframes.HOUR_6: 60 * 6,\n    timeframes.HOUR_8: 60 * 8,\n    timeframes.HOUR_12: 60 * 12,\n    timeframes.DAY_1: 60 * 24,\n    timeframes.DAY_3: 60 * 24 * 3,\n    timeframes.WEEK_1: 60 * 24 * 7,\n    timeframes.MONTH_1: 60 * 24 * 30,\n}\ndef _simulate_new_candles(candles: dict, candles_pipelines: Dict[str, BaseCandlesPipeline], candle_index: int, candles_step: int) -> None:\n    i = candle_index\n    # add candles\n    for j in candles:\n        candles_pipeline = candles_pipelines[j]\n        short_candles = get_candles_from_pipeline(candles_pipeline, candles[j]['candles'], i, candles_step)\n        candles[j]['candles'][i:i+candles_step] = short_candles\n        if i != 0:\n            previous_short_candles = candles[j][\"candles\"][i - 1]\n            # work the same, the fix needs to be done only on the gap of 1m edge candles.\n            short_candles[0] = _get_fixed_jumped_candle(\n                previous_short_candles, short_candles[0]\n            )\n        exchange = candles[j][\"exchange\"]\n        symbol = candles[j][\"symbol\"]\n\n        _simulate_price_change_effect_multiple_candles(\n            short_candles, exchange, symbol\n        )\n\n        # generate and add candles for bigger timeframes\n        for timeframe in config[\"app\"][\"considering_timeframes\"]:\n            # for 1m, no work is needed\n            if timeframe == \"1m\":\n                continue\n\n            count = TIMEFRAME_TO_ONE_MINUTES[timeframe]\n\n            if (i + candles_step) % count == 0:\n                generated_candle = candle_service.generate_candle_from_one_minutes(\n                    timeframe,\n                    candles[j][\"candles\"][\n                    i - count + candles_step: i + candles_step],\n                )\n\n                candle_service.add_candle(\n                    generated_candle,\n                    exchange,\n                    symbol,\n                    timeframe,\n                    with_execution=False,\n                    with_generation=False,\n                )\n\n\ndef _simulate_price_change_effect_multiple_candles(\n        short_timeframes_candles: np.ndarray, exchange: str, symbol: str\n) -> None:\n    real_candle = np.array(\n        [\n            short_timeframes_candles[0][0],\n            short_timeframes_candles[0][1],\n            short_timeframes_candles[-1][2],\n            short_timeframes_candles[:, 3].max(),\n            short_timeframes_candles[:, 4].min(),\n            short_timeframes_candles[:, 5].sum(),\n        ]\n    )\n    executing_orders = _get_executing_orders(exchange, symbol, real_candle)\n    if len(executing_orders) > 0:\n        if len(executing_orders) > 1:\n            executing_orders = _sort_execution_orders(executing_orders, short_timeframes_candles)\n\n        for i in range(len(short_timeframes_candles)):\n            current_temp_candle = short_timeframes_candles[i].copy()\n            if i > 0:\n                current_temp_candle[3] = max(current_temp_candle[3], short_timeframes_candles[i-1, 2])\n                current_temp_candle[4] = min(current_temp_candle[4], short_timeframes_candles[i-1, 2])\n            is_executed_order = False\n\n            while True:\n                if len(executing_orders) == 0:\n                    is_executed_order = False\n                else:\n                    for index, order in enumerate(executing_orders):\n                        if index == len(executing_orders) - 1 and not order.is_active:\n                            is_executed_order = False\n                        if not order.is_active:\n                            continue\n\n                        if candle_service.candle_includes_price(current_temp_candle, order.price):\n                            storable_temp_candle, current_temp_candle = candle_service.split_candle(\n                                current_temp_candle, order.price\n                            )\n                            _update_all_routes_a_partial_candle(\n                                exchange,\n                                symbol,\n                                storable_temp_candle,\n                            )\n                            p = store.positions.get_position(exchange, symbol)\n                            p.current_price = storable_temp_candle[2]\n\n                            is_executed_order = True\n\n                            store.app.time = storable_temp_candle[0] + 60_000\n                            order_service.execute_order(order)\n                            executing_orders = _get_executing_orders(\n                                exchange, symbol, real_candle\n                            )\n\n                            # break from the for loop, we'll try again inside the while\n                            # loop with the new current_temp_candle\n                            break\n                        else:\n                            is_executed_order = False\n\n                if not is_executed_order:\n                    # add/update the real_candle to the store so we can move on\n                    candle_service.add_candle(\n                        short_timeframes_candles[i].copy(),\n                        exchange,\n                        symbol,\n                        \"1m\",\n                        with_execution=False,\n                        with_generation=False,\n                    )\n                    p = store.positions.get_position(exchange, symbol)\n                    if p:\n                        p.current_price = current_temp_candle[2]\n                    break\n\n    candle_service.add_multiple_1m_candles(\n        short_timeframes_candles,\n        exchange,\n        symbol,\n    )\n    store.app.time = real_candle[0] + (60_000 * len(short_timeframes_candles))\n    _check_for_liquidations(real_candle, exchange, symbol)\n\n    p = store.positions.get_position(exchange, symbol)\n    if p:\n        p.current_price = short_timeframes_candles[-1, 2]\n\n\ndef _update_all_routes_a_partial_candle(\n        exchange: str,\n        symbol: str,\n        storable_temp_candle: np.ndarray,\n) -> None:\n    \"\"\"\n    This function get called when an order is getting executed you need to update the other timeframe how their last\n    candles looks like\n    \"\"\"\n    candle_service.add_candle(\n        storable_temp_candle,\n        exchange,\n        symbol,\n        \"1m\",\n        with_execution=False,\n        with_generation=False,\n    )\n\n    for route in router.all_formatted_routes:\n        timeframe = route['timeframe']\n        if route['exchange'] != exchange or route['symbol'] != symbol:\n            continue\n        if timeframe == '1m':\n            continue\n        tf_minutes = TIMEFRAME_TO_ONE_MINUTES[timeframe]\n        number_of_needed_candles = int(storable_temp_candle[0] % (tf_minutes * 60_000) // 60000) + 1\n        candles_1m = candle_service.get_candles(exchange, symbol, '1m')[-number_of_needed_candles:]\n        generated_candle = candle_service.generate_candle_from_one_minutes(\n            timeframe,\n            candles_1m,\n            accept_forming_candles=True\n        )\n        candle_service.add_candle(\n            generated_candle,\n            exchange,\n            symbol,\n            timeframe,\n            with_execution=False,\n            with_generation=False,\n        )\n\n\ndef _execute_routes(candle_index: int, candles_step: int) -> None:\n    # now that all new generated candles are ready, execute\n    for r in router.routes:\n        count = TIMEFRAME_TO_ONE_MINUTES[r.timeframe]\n        # 1m timeframe\n        if r.timeframe == timeframes.MINUTE_1:\n            r.strategy._execute()\n        elif (candle_index + candles_step) % count == 0:\n            # print candle\n            if jh.is_debuggable(\"trading_candles\"):\n                candle_service.print_candle(\n                    candle_service.get_current_candle(\n                        r.exchange, r.symbol, r.timeframe\n                    ),\n                    False,\n                    r.symbol,\n                )\n            r.strategy._execute()\n\n        order_service.update_active_orders(r.exchange, r.symbol)\n\n\ndef _get_executing_orders(exchange, symbol, real_candle):\n    orders = store.orders.get_active_orders(exchange, symbol)\n    return [\n        order\n        for order in orders\n        if order.is_active and candle_service.candle_includes_price(real_candle, order.price)\n    ]\n\n\ndef _sort_execution_orders(orders: List[Order], short_candles: np.ndarray):\n    remaining_orders = set(orders)\n    sorted_orders = []\n    \n    for candle in short_candles:\n        open_price, close_price, low, high = candle[1], candle[2], candle[4], candle[3]\n\n        # Did not use candle_includes_price() for performance, keeping it vectorization-friendly\n        included_orders = [order for order in remaining_orders if low <= order.price <= high]\n\n        if len(included_orders) == 1:\n            sorted_orders.append(included_orders[0])\n            remaining_orders.remove(included_orders[0])\n        elif len(included_orders) > 1:\n            # in case that the orders are above\n            on_open, above_open, below_open = [], [], []\n            for order in included_orders:\n                if order.price == open_price:\n                    on_open.append(order)\n                if order.price > open_price:\n                    above_open.append(order)\n                else:\n                    below_open.append(order)\n            sorted_orders += on_open\n            remaining_orders.difference_update(on_open)\n\n            is_red = open_price > close_price\n            if is_red:\n                # heuristic that first the price goes up and then down, so this is the order execution sort\n                above_open.sort(key=lambda o: o.price)\n                below_open.sort(key=lambda o: o.price, reverse=True)\n                sorted_orders += above_open + below_open\n                remaining_orders.difference_update(above_open + below_open)\n            else:\n                below_open.sort(key=lambda o: o.price, reverse=True)\n                above_open.sort(key=lambda o: o.price)\n                sorted_orders += below_open + above_open\n                remaining_orders.difference_update(below_open + above_open)\n\n        if len(sorted_orders) == len(orders):\n            break\n\n    return sorted_orders\n"
  },
  {
    "path": "jesse/modes/data_provider.py",
    "content": "import json\nimport os\nimport numpy as np\nimport peewee\nfrom fastapi.responses import FileResponse\nimport jesse.helpers as jh\nfrom jesse.info import live_trading_exchanges, backtesting_exchanges\nfrom jesse.repositories import candle_repository\nfrom jesse.services import candle_service\nfrom typing import List, Dict\nimport csv\nimport io\nfrom jesse.models.ExchangeApiKeys import ExchangeApiKeys\nfrom jesse.services.db import database\nfrom fastapi.responses import StreamingResponse\n\n\ndef get_candles(exchange: str, symbol: str, timeframe: str):\n    from jesse.services.db import database\n    database.open_connection()\n\n    if 'hyperliquid' not in exchange.lower():\n        symbol = symbol.upper()\n\n    # fetch the current value for warmup_candles from the database\n    from jesse.models.Option import Option\n    o = Option.get(Option.type == 'config')\n    db_config = json.loads(o.json)\n    warmup_candles_num = db_config['live']['warm_up_candles']\n\n    one_min_count = jh.timeframe_to_one_minutes(timeframe)\n    finish_date = jh.now(force_fresh=True)\n    start_date = jh.get_candle_start_timestamp_based_on_timeframe(timeframe, warmup_candles_num)\n\n    # fetch value of generate_candles_from_1m fresh from the database\n    o = Option.get(Option.type == 'config')\n    generate_candles_from_1m: bool = json.loads(o.json)['live']['generate_candles_from_1m']\n\n    # fetch 1m candles from database\n    if generate_candles_from_1m:\n        timeframe_to_fetch = '1m'\n    else:\n        timeframe_to_fetch = timeframe\n\n    candles = np.array(\n        candle_repository.fetch_candles_from_db(exchange, symbol, timeframe_to_fetch, start_date, finish_date)\n    )\n\n    # if there are no candles in the database, return []\n    if candles.size == 0:\n        database.close_connection()\n        return []\n\n    if generate_candles_from_1m:\n        # leave out first candles until the timestamp of the first candle is the beginning of the timeframe\n        timeframe_duration = one_min_count * 60_000\n        while candles[0][0] % timeframe_duration != 0:\n            candles = candles[1:]\n\n        # generate bigger candles from 1m candles\n        if timeframe != '1m':\n            generated_candles = []\n            for i in range(len(candles)):\n                if (i + 1) % one_min_count == 0:\n                    bigger_candle = candle_service.generate_candle_from_one_minutes(\n                        timeframe,\n                        candles[(i - (one_min_count - 1)):(i + 1)],\n                        True\n                    )\n                    generated_candles.append(bigger_candle)\n\n            candles = generated_candles\n\n    database.close_connection()\n\n    return [\n        {\n            'time': int(c[0] / 1000),\n            'open': c[1],\n            'close': c[2],\n            'high': c[3],\n            'low': c[4],\n            'volume': c[5],\n        } for c in candles\n    ]\n\n\ndef get_config(client_config: dict, has_live=False) -> dict:\n    from jesse.services.db import database\n    database.open_connection()\n\n    from jesse.models.Option import Option\n\n    try:\n        o = Option.get(Option.type == 'config')\n\n        # merge it with client's config (because it could include new keys added),\n        # update it in the database, and then return it\n        data = jh.merge_dicts(client_config, json.loads(o.json))\n\n        # make sure the list of BACKTEST exchanges is up to date\n        for k in list(data['backtest']['exchanges'].keys()):\n            if k not in backtesting_exchanges:\n                del data['backtest']['exchanges'][k]\n\n        # make sure the list of LIVE exchanges is up to date\n        if has_live:\n            for k in list(data['live']['exchanges'].keys()):\n                if k not in live_trading_exchanges:\n                    del data['live']['exchanges'][k]\n\n        o.updated_at = jh.now(True)\n        o.save()\n    except peewee.DoesNotExist:\n        # if not found, that means it's the first time. Store in the DB and\n        # then return what was sent from the client side without changing it\n        o = Option({\n            'id': jh.generate_unique_id(),\n            'updated_at': jh.now(True),\n            'type': 'config',\n            'json': json.dumps(client_config)\n        })\n        o.save(force_insert=True)\n\n        data = client_config\n\n    database.close_connection()\n\n    return {\n        'data': data\n    }\n\n\ndef update_config(client_config: dict):\n    from jesse.services.db import database\n    database.open_connection()\n\n    from jesse.models.Option import Option\n\n    # at this point there must already be one option record for \"config\" existing, so:\n    o = Option.get(Option.type == 'config')\n\n    o.json = json.dumps(client_config)\n    o.updated_at = jh.now(True)\n\n    o.save()\n\n    database.close_connection()\n\n\ndef download_file(mode: str, file_type: str, session_id: str = None):\n    if mode == 'backtest' and file_type == 'log':\n        path = f'storage/logs/backtest-mode/{session_id}.txt'\n        filename = f'backtest-{session_id}.txt'\n    elif mode == 'backtest' and file_type == 'csv':\n        path = f'storage/csv/{session_id}.csv'\n        filename = f'backtest-{session_id}.csv'\n    elif mode == 'backtest' and file_type == 'json':\n        path = f'storage/json/{session_id}.json'\n        filename = f'backtest-{session_id}.json'\n    elif mode == 'backtest' and file_type == 'full-reports':\n        path = f'storage/full-reports/{session_id}.html'\n        filename = f'backtest-{session_id}.html'\n    elif mode == 'backtest' and file_type == 'tradingview':\n        path = f'storage/trading-view-pine-editor/{session_id}.txt'\n        filename = f'backtest-{session_id}.txt'\n    elif mode == 'optimize' and file_type == 'log':\n        path = f'storage/logs/optimize-mode.txt'\n        # filename should be \"optimize-\" + current timestamp\n        filename = f'optimize-{jh.timestamp_to_date(jh.now(True))}.txt'\n    elif mode == 'monte-carlo' and file_type == 'log':\n        path = f'storage/logs/monte-carlo-mode/{session_id}.txt'\n        filename = f'monte-carlo-{session_id}.txt'\n    else:\n        raise Exception(f'Unknown file type: {file_type} or mode: {mode}')\n\n    return FileResponse(path=path, filename=filename, media_type='application/octet-stream')\n\n\ndef download_api_keys():\n    try:\n        database.open_connection()\n\n        api_keys = list(ExchangeApiKeys.select())\n        if not api_keys:\n            database.close_connection()\n            return StreamingResponse(\n                io.StringIO(\"No API keys found\"),\n                media_type='text/csv',\n                headers={'Content-Disposition': 'attachment; filename=api-keys.csv'}\n            )\n\n        output = io.StringIO()\n        writer = csv.writer(output)\n        # Prepare the CSV data\n        headers = ['Name', 'Exchange', 'API Key', 'API Secret', 'api_passphrase', 'wallet_address', 'stark_private_key']\n        writer.writerow(headers)\n\n        for api_key in api_keys:\n            additional_fields = api_key.get_additional_fields()\n            row = [\n                api_key.name,\n                api_key.exchange_name,\n                api_key.api_key,\n                api_key.api_secret,\n                additional_fields['api_passphrase'] if 'api_passphrase' in additional_fields else None,\n                additional_fields['wallet_address'] if 'wallet_address' in additional_fields else None,\n                additional_fields['stark_private_key'] if 'stark_private_key' in additional_fields else None\n            ]\n            writer.writerow(row)\n\n        database.close_connection()\n\n        # Return the CSV as a streaming response\n        output.seek(0)\n        return StreamingResponse(\n            output,\n            media_type='text/csv',\n            headers={'Content-Disposition': 'attachment; filename=api-keys.csv'}\n        )\n    except Exception as e:\n        database.close_connection()\n        raise e\n\n\ndef validate_csv_content(content: str) -> bool:\n    \"\"\"\n    Basic validation: header names + no obvious malicious patterns.\n    \"\"\"\n    try:\n        # Reject obvious SQL‑injection patterns\n        sql_patterns = [\n            ';--', '/*', '*/', 'xp_', 'sp_',\n            'union ', 'select ', 'insert ', 'update ',\n            'delete ', 'drop ', 'alter ', 'create '\n        ]\n        if any(p.lower() in content.lower() for p in sql_patterns):\n            return False\n\n        # Reject suspicious control chars\n        if any(c in content for c in ['\\0', '\\x01', '\\x1a']):\n            return False\n\n        reader = csv.DictReader(io.StringIO(content))\n        required_columns = {\n            'Name',\n            'Exchange',\n            'API Key',\n            'API Secret'\n        }\n        # Case‑insensitive comparison\n        header_set = {h.strip().lower() for h in reader.fieldnames or []}\n        if not all(col.lower() in header_set for col in required_columns):\n            return False\n\n        return True\n    except Exception:\n        return False\n\n\ndef import_api_keys_from_csv(content: str) -> Dict[str, any]:\n    \"\"\"\n    Import API keys from CSV content string.\n    Returns a dict with success flag and summary info.\n    \"\"\"\n    from jesse.models.ExchangeApiKeys import ExchangeApiKeys\n    from jesse.services.db import database\n\n    try:\n        database.open_connection()\n        reader = csv.DictReader(io.StringIO(content))\n        imported_names: list[str] = []\n\n        # Keep track of existing names to avoid duplicates\n        existing_names = {k.name for k in ExchangeApiKeys.select(ExchangeApiKeys.name)}\n\n        for row in reader:\n            name = (row.get('Name') or '').strip()\n            if not name or name in existing_names:\n                continue\n\n            exchange = (row.get('Exchange') or '').strip()\n            api_key = (row.get('API Key') or '').strip()\n            api_secret = (row.get('API Secret') or '').strip()\n\n            # Skip rows with missing mandatory fields\n            if not all([name, exchange, api_key, api_secret]):\n                continue\n            \n            additional_fields = {}\n\n            if row.get('api_passphrase'):\n                additional_fields = {\n                    'api_passphrase': (row.get('api_passphrase') or '').strip(),\n                    'wallet_address': (row.get('wallet_address') or '').strip(),\n                    'stark_private_key': (row.get('stark_private_key') or '').strip()\n                }\n\n            # Persist\n            exchange_api_key: ExchangeApiKeys = ExchangeApiKeys.create(\n                id=jh.generate_unique_id(),\n                exchange_name=exchange,\n                name=name,\n                api_key=api_key,\n                api_secret=api_secret,\n                additional_fields=json.dumps(additional_fields),\n                created_at=jh.now_to_datetime(),\n                general_notifications_id=None,\n                error_notifications_id=None\n            )\n\n            imported_names.append(name)\n\n        database.close_connection()\n        return {\n            'success': True,\n            'imported_count': len(imported_names),\n        }\n    except Exception as e:\n        database.close_connection()\n        return {'success': False, 'error': str(e)}\n\n\ndef get_backtest_logs(session_id: str):\n    path = f\"storage/logs/backtest-mode/{session_id}.txt\"\n\n    if not os.path.exists(path):\n        return None\n\n    with open(path, \"r\") as f:\n        content = f.read()\n\n    return jh.compressed_response(content)\n\n\ndef get_monte_carlo_logs(session_id: str):\n    path = f'storage/logs/monte-carlo-mode/{session_id}.txt'\n\n    if not os.path.exists(path):\n        return None\n\n    with open(path, 'r') as f:\n        content = f.read()\n    return content\n\n\ndef get_optimization_logs(session_id: str):\n    path = f'storage/logs/optimize-mode/{session_id}.txt'\n\n    if not os.path.exists(path):\n        return None\n\n    with open(path, 'r') as f:\n        content = f.read()\n    return content\n\n\ndef download_backtest_log(session_id: str):\n    \"\"\"\n    Returns the log file for a specific backtest session as a downloadable file\n    \"\"\"\n    path = f'storage/logs/backtest-mode/{session_id}.txt'\n\n    if not os.path.exists(path):\n        raise Exception('Log file not found')\n\n    filename = f'backtest-{session_id}.txt'\n    return FileResponse(\n        path=path,\n        filename=filename,\n        media_type='text/plain'\n    )\n"
  },
  {
    "path": "jesse/modes/exchange_api_keys.py",
    "content": "import json\nfrom typing import Optional\nfrom starlette.responses import JSONResponse\nfrom jesse.info import live_trading_exchanges\nimport jesse.helpers as jh\nfrom jesse.services import transformers\n\n\ndef get_exchange_api_keys() -> JSONResponse:\n    from jesse.services.db import database\n    database.open_connection()\n\n    from jesse.models.ExchangeApiKeys import ExchangeApiKeys\n\n    try:\n        # fetch all the api keys\n        api_keys = ExchangeApiKeys.select()\n    except Exception as e:\n        database.close_connection()\n        return JSONResponse({\n            'status': 'error',\n            'message': str(e)\n        }, status_code=500)\n\n    # transform each api_key using transformers.get_exchange_api_key()\n    api_keys = [transformers.get_exchange_api_key(api_key) for api_key in api_keys]\n\n    database.close_connection()\n\n    return JSONResponse({\n        'data': api_keys\n    }, status_code=200)\n\n\ndef store_exchange_api_keys(\n        exchange: str,\n        name: str,\n        api_key: str,\n        api_secret: str,\n        additional_fields: Optional[dict] = None,\n        general_notifications_id: Optional[str] = None,\n        error_notifications_id: Optional[str] = None,\n) -> JSONResponse:\n    # validate the exchange\n    if exchange not in live_trading_exchanges:\n        return JSONResponse({\n            'status': 'error',\n            'message': f'Invalid exchange: {exchange}'\n        }, status_code=400)\n\n    from jesse.services.db import database\n    database.open_connection()\n\n    from jesse.models.ExchangeApiKeys import ExchangeApiKeys\n\n    # check if the api key already exists\n    if ExchangeApiKeys.select().where(ExchangeApiKeys.name == name).exists():\n        database.close_connection()\n        return JSONResponse({\n            'status': 'error',\n            'message': f'API key with the name \"{name}\" already exists. Please choose another name.'\n        }, status_code=400)\n\n    # Ensure additional_fields is a dictionary\n    if additional_fields is None:\n        additional_fields = {}\n\n    try:\n        # create the record\n        exchange_api_key: ExchangeApiKeys = ExchangeApiKeys.create(\n            id=jh.generate_unique_id(),\n            exchange_name=exchange,\n            name=name,\n            api_key=api_key,\n            api_secret=api_secret,\n            additional_fields=json.dumps(additional_fields),\n            created_at=jh.now_to_datetime(),\n            general_notifications_id=general_notifications_id if general_notifications_id else None,\n            error_notifications_id=error_notifications_id if error_notifications_id else None\n        )\n    except ValueError as e:\n        database.close_connection()\n        return JSONResponse({\n            'status': 'error',\n            'message': str(e)\n        }, status_code=400)\n    except Exception as e:\n        database.close_connection()\n        return JSONResponse({\n            'status': 'error',\n            'message': str(e)\n        }, status_code=500)\n\n    database.close_connection()\n\n    return JSONResponse({\n        'status': 'success',\n        'message': 'API key has been stored successfully.',\n        'data': transformers.get_exchange_api_key(exchange_api_key)\n    }, status_code=200)\n\n\ndef delete_exchange_api_keys(exchange_api_key_id: str) -> JSONResponse:\n    from jesse.services.db import database\n    database.open_connection()\n\n    from jesse.models.ExchangeApiKeys import ExchangeApiKeys\n\n    try:\n        # delete the record\n        ExchangeApiKeys.delete().where(ExchangeApiKeys.id == exchange_api_key_id).execute()\n    except Exception as e:\n        database.close_connection()\n        return JSONResponse({\n            'status': 'error',\n            'message': str(e)\n        }, status_code=500)\n\n    database.close_connection()\n\n    return JSONResponse({\n        'status': 'success',\n        'message': 'API key has been deleted successfully.'\n    }, status_code=200)\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/__init__.py",
    "content": "import math\nimport time\nfrom datetime import timedelta\nfrom typing import Dict, List, Any, Union\n\nimport arrow\nimport pydash\nfrom timeloop import Timeloop\n\nimport jesse.helpers as jh\nfrom jesse.exceptions import CandleNotFoundInExchange\nfrom jesse.models.Candle import Candle\nfrom jesse.modes.import_candles_mode.drivers import drivers, driver_names\nfrom jesse.modes.import_candles_mode.drivers.interface import CandleExchange\nfrom jesse.config import config\nfrom jesse.services.failure import register_custom_exception_handler\nfrom jesse.services.redis import sync_publish, is_process_active\nfrom jesse.store import store\nfrom jesse import exceptions\nfrom jesse.services.progressbar import Progressbar\n\n\ndef run(\n        client_id: str,\n        exchange: str,\n        symbol: str,\n        start_date_str: str,\n        mode: str = 'candles',\n        running_via_dashboard: bool = True,\n        show_progressbar: bool = False,\n):\n    if running_via_dashboard:\n        config['app']['trading_mode'] = mode\n        register_custom_exception_handler()\n        store.app.set_session_id(client_id)\n\n    # open database connection\n    from jesse.services.db import database\n    database.open_connection()\n\n    if running_via_dashboard:\n        # at every second, we check to see if it's time to execute stuff\n        status_checker = Timeloop()\n\n        @status_checker.job(interval=timedelta(seconds=1))\n        def handle_time():\n            if is_process_active(client_id) is False:\n                raise exceptions.Termination\n\n        status_checker.start()\n\n    try:\n        start_timestamp = jh.arrow_to_timestamp(arrow.get(start_date_str, 'YYYY-MM-DD'))\n    except:\n        raise ValueError(\n            f'start_date must be a string representing a date before today. ex: 2020-01-17. You entered: {start_date_str}')\n\n    # more start_date validations\n    today = arrow.utcnow().floor('day').int_timestamp * 1000\n    if start_timestamp == today:\n        raise ValueError(\"Today's date is not accepted. start_date must be a string a representing date BEFORE today.\")\n    elif start_timestamp > today:\n        raise ValueError(\"Future's date is not accepted. start_date must be a string a representing date BEFORE today.\")\n\n    # We just call this to throw a exception in case of a symbol without dash\n    jh.quote_asset(symbol)\n\n    symbol = symbol.upper()\n\n    until_date = arrow.utcnow().floor('day')\n    start_date = arrow.get(start_timestamp / 1000)\n    days_count = jh.date_diff_in_days(start_date, until_date)\n    candles_count = days_count * 1440\n\n    try:\n        driver: CandleExchange = drivers[exchange]()\n    except KeyError:\n        raise ValueError(f'{exchange} is not a supported exchange. Supported exchanges are: {driver_names}')\n\n    loop_length = int(candles_count / driver.count) + 1\n\n    progressbar = Progressbar(loop_length, step=2)\n    frontend_update_counter = 0\n    frontend_update_threshold = 100  # Only notify frontend after this many updates when skipping existing candles\n    skipped_minutes = 0\n    imported_minutes = 0\n    \n    for i in range(candles_count):\n        temp_start_timestamp = start_date.int_timestamp * 1000\n        temp_end_timestamp = temp_start_timestamp + (driver.count - 1) * 60000\n\n        # to make sure it won't try to import candles from the future! LOL\n        if temp_start_timestamp > jh.now_to_timestamp():\n            break\n\n        # prevent duplicates calls to boost performance\n        count = Candle.select().where(\n            Candle.exchange == exchange,\n            Candle.symbol == symbol,\n            Candle.timeframe == '1m' or Candle.timeframe.is_null(),\n            Candle.timestamp.between(temp_start_timestamp, temp_end_timestamp)\n        ).count()\n        already_exists = count == driver.count\n\n        if already_exists:\n            skipped_minutes += driver.count\n        else:\n            imported_minutes += driver.count\n            # it's today's candles if temp_end_timestamp < now\n            if temp_end_timestamp > jh.now_to_timestamp():\n                temp_end_timestamp = arrow.utcnow().floor('minute').int_timestamp * 1000 - 60000\n\n            # fetch from market\n            candles = driver.fetch(symbol, temp_start_timestamp, timeframe='1m')\n\n            # check if candles have been returned and check those returned start with the right timestamp.\n            # Sometimes exchanges just return the earliest possible candles if the start date doesn't exist.\n            time_diff = int((candles[0]['timestamp'] - temp_start_timestamp) / 1000) if len(candles) else 0\n            if not len(candles) or time_diff < 0 or time_diff > 60*100:\n                first_existing_timestamp = driver.get_starting_time(symbol)\n\n                # if driver can't provide accurate get_starting_time()\n                if first_existing_timestamp is None:\n                    raise CandleNotFoundInExchange(\n                        f'No candles exists in the market for this day: {jh.timestamp_to_time(temp_start_timestamp)[:10]} \\n'\n                        'Try another start_date'\n                    )\n\n                # handle when there's missing candles during the period\n                if temp_start_timestamp > first_existing_timestamp:\n                    # see if there are candles for the same date for the backup exchange,\n                    # if so, get those, if not, download from that exchange.\n                    if driver.backup_exchange is not None:\n                        candles = _get_candles_from_backup_exchange(\n                            exchange, driver.backup_exchange, symbol, temp_start_timestamp, temp_end_timestamp\n                        )\n\n                else:\n                    temp_start_time = jh.timestamp_to_time(temp_start_timestamp)[:10]\n                    temp_existing_time = jh.timestamp_to_time(first_existing_timestamp)[:10]\n                    msg = f'No candle exists in the market for {temp_start_time}. So Jesse started importing since the first existing date which is {temp_existing_time}'\n                    if running_via_dashboard:\n                        sync_publish('alert', {\n                            'message': msg,\n                            'type': 'info'\n                        })\n                    else:\n                        print(msg)\n                    run(client_id, exchange, symbol, jh.timestamp_to_time(first_existing_timestamp)[:10], mode,\n                        running_via_dashboard, show_progressbar)\n                    return\n\n            # fill absent candles (if there's any)\n            candles = _fill_absent_candles(candles, temp_start_timestamp, temp_end_timestamp)\n\n            # store in the database\n            store_candles_list(candles)\n\n        # add as much as driver's count to the temp_start_time\n        start_date = start_date.shift(minutes=driver.count)\n\n        if i % 2 == 0:\n            progressbar.update()\n            \n            # For existing candles, throttle frontend updates\n            if already_exists:\n                frontend_update_counter += 1\n                if frontend_update_counter >= frontend_update_threshold:\n                    frontend_update_counter = 0\n                    if running_via_dashboard:\n                        sync_publish('progressbar', {\n                            'current': progressbar.current,\n                            'estimated_remaining_seconds': progressbar.estimated_remaining_seconds\n                        })\n            # For new candles being fetched, update frontend normally\n            else:\n                if running_via_dashboard:\n                    sync_publish('progressbar', {\n                        'current': progressbar.current,\n                        'estimated_remaining_seconds': progressbar.estimated_remaining_seconds\n                    })\n            \n            if show_progressbar:\n                jh.clear_output()\n                print(\n                    f\"Progress: {progressbar.current}% - {round(progressbar.estimated_remaining_seconds)} seconds remaining\")\n\n        # sleep so that the exchange won't get angry at us\n        if not already_exists:\n            time.sleep(driver.sleep_time)\n\n    skipped_days = round(skipped_minutes / 1440, 1)\n    imported_days = round(imported_minutes / 1440, 1)\n    \n    success_text = (\n        f'Successfully imported candles since \"{jh.timestamp_to_date(start_timestamp)}\" until today '\n        f'({imported_days} days imported, {skipped_days} days already existed in the database). '\n    )\n\n    # stop the status_checker time loop\n    if running_via_dashboard:\n        status_checker.stop()\n\n        sync_publish('alert', {\n            'message': success_text,\n            'type': 'success'\n        })\n\n    # # TODO: shen should it close the database?\n    # # if it is to skip, then it's being called from another process hence we should leave the database be\n    # if not skip_confirmation:\n    if not running_via_dashboard:\n        # close database connection\n        from jesse.services.db import database\n        database.close_connection()\n        return success_text\n\n\ndef _get_candles_from_backup_exchange(exchange: str, backup_driver: CandleExchange, symbol: str, start_timestamp: int,\n                                      end_timestamp: int) -> List[Dict[str, Union[str, Any]]]:\n    timeframe = '1m'\n    total_candles = []\n    # try fetching from database first\n    backup_candles = Candle.select(\n        Candle.timestamp, Candle.open, Candle.close, Candle.high, Candle.low,\n        Candle.volume\n    ).where(\n        Candle.exchange == backup_driver.name,\n        Candle.symbol == symbol,\n        Candle.timeframe == timeframe,\n        Candle.timestamp.between(start_timestamp, end_timestamp)\n    ).order_by(Candle.timestamp.asc()).tuples()\n    already_exists = len(backup_candles) == (end_timestamp - start_timestamp) / 60_000 + 1\n    if already_exists:\n        # loop through them and set new ID and exchange\n        for c in backup_candles:\n            total_candles.append({\n                'id': jh.generate_unique_id(),\n                'exchange': exchange,\n                'symbol': symbol,\n                'timeframe': timeframe,\n                'timestamp': c[0],\n                'open': c[1],\n                'close': c[2],\n                'high': c[3],\n                'low': c[4],\n                'volume': c[5]\n            })\n\n        return total_candles\n\n    # try fetching from market now\n    days_count = jh.date_diff_in_days(jh.timestamp_to_arrow(start_timestamp), jh.timestamp_to_arrow(end_timestamp))\n    # make sure it's rounded up so that we import maybe more candles, but not less\n    days_count = max(days_count, 1)\n    if type(days_count) is float and not days_count.is_integer():\n        days_count = math.ceil(days_count)\n    candles_count = days_count * 1440\n    start_date = jh.timestamp_to_arrow(start_timestamp).floor('day')\n    for _ in range(candles_count):\n        temp_start_timestamp = start_date.int_timestamp * 1000\n        temp_end_timestamp = temp_start_timestamp + (backup_driver.count - 1) * 60000\n\n        # to make sure it won't try to import candles from the future! LOL\n        if temp_start_timestamp > jh.now_to_timestamp():\n            break\n\n        # prevent duplicates\n        count = Candle.select().where(\n            Candle.exchange == backup_driver.name,\n            Candle.symbol == symbol,\n            Candle.timeframe == timeframe,\n            Candle.timestamp.between(temp_start_timestamp, temp_end_timestamp)\n        ).count()\n        already_exists = count == backup_driver.count\n\n        if not already_exists:\n            # it's today's candles if temp_end_timestamp < now\n            if temp_end_timestamp > jh.now_to_timestamp():\n                temp_end_timestamp = arrow.utcnow().floor('minute').int_timestamp * 1000 - 60000\n\n            # fetch from market\n            candles = backup_driver.fetch(symbol, temp_start_timestamp)\n\n            if not len(candles):\n                raise CandleNotFoundInExchange(\n                    f'No candles exists in the market for this day: {jh.timestamp_to_time(temp_start_timestamp)[:10]} \\n'\n                    'Try another start_date'\n                )\n\n            # fill absent candles (if there's any)\n            candles = _fill_absent_candles(candles, temp_start_timestamp, temp_end_timestamp)\n\n            # store in the database\n            store_candles_list(candles)\n\n        # add as much as driver's count to the temp_start_time\n        start_date = start_date.shift(minutes=backup_driver.count)\n\n        # sleep so that the exchange won't get angry at us\n        if not already_exists:\n            time.sleep(backup_driver.sleep_time)\n\n    # now try fetching from database again. Why? because we might have fetched more\n    # than what's needed, but we only want as much was requested. Don't worry, the next\n    # request will probably fetch from database and there won't be any waste!\n    backup_candles = Candle.select(\n        Candle.timestamp, Candle.open, Candle.close, Candle.high, Candle.low,\n        Candle.volume\n    ).where(\n        Candle.exchange == backup_driver.name,\n        Candle.symbol == symbol,\n        Candle.timeframe == timeframe,\n        Candle.timestamp.between(start_timestamp, end_timestamp)\n    ).order_by(Candle.timestamp.asc()).tuples()\n    already_exists = len(backup_candles) == (end_timestamp - start_timestamp) / 60_000 + 1\n    if already_exists:\n        # loop through them and set new ID and exchange\n        for c in backup_candles:\n            total_candles.append({\n                'id': jh.generate_unique_id(),\n                'exchange': exchange,\n                'symbol': symbol,\n                'timeframe': timeframe,\n                'timestamp': c[0],\n                'open': c[1],\n                'close': c[2],\n                'high': c[3],\n                'low': c[4],\n                'volume': c[5]\n            })\n\n        return total_candles\n\n\ndef _fill_absent_candles(temp_candles: List[Dict[str, Union[str, Any]]], start_timestamp: int, end_timestamp: int) -> \\\n        List[Dict[str, Union[str, Any]]]:\n    if not temp_candles:\n        raise CandleNotFoundInExchange(\n            f'No candles exists in the market for this day: {jh.timestamp_to_time(start_timestamp)[:10]} \\n'\n            'Try another start_date'\n        )\n\n    symbol = temp_candles[0]['symbol']\n    exchange = temp_candles[0]['exchange']\n    candles = []\n    first_candle = temp_candles[0]\n    started = False\n    loop_length = ((end_timestamp - start_timestamp) / 60000) + 1\n\n    for _ in range(int(loop_length)):\n        candle_for_timestamp = pydash.find(\n            temp_candles, lambda c: c['timestamp'] == start_timestamp)\n\n        if candle_for_timestamp is None:\n            if started:\n                last_close = candles[-1]['close']\n                candles.append({\n                    'id': jh.generate_unique_id(),\n                    'exchange': exchange,\n                    'symbol': symbol,\n                    'timeframe': '1m',\n                    'timestamp': start_timestamp,\n                    'open': last_close,\n                    'high': last_close,\n                    'low': last_close,\n                    'close': last_close,\n                    'volume': 0\n                })\n            else:\n                candles.append({\n                    'id': jh.generate_unique_id(),\n                    'exchange': exchange,\n                    'symbol': symbol,\n                    'timeframe': '1m',\n                    'timestamp': start_timestamp,\n                    'open': first_candle['open'],\n                    'high': first_candle['open'],\n                    'low': first_candle['open'],\n                    'close': first_candle['open'],\n                    'volume': 0\n                })\n        # candle is present\n        else:\n            started = True\n            candles.append(candle_for_timestamp)\n\n        start_timestamp += 60000\n    return candles\n\n\ndef store_candles_list(candles: List[Dict]) -> None:\n    for c in candles:\n        if 'timeframe' not in c:\n            raise Exception('Candle has no timeframe')\n    Candle.insert_many(candles).on_conflict_ignore().execute()\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Apex/ApexOmniPerpetual.py",
    "content": "from .ApexProMain import ApexProMain\nfrom jesse.enums import exchanges\n\n\nclass ApexOmniPerpetual(ApexProMain):\n    def __init__(self) -> None:\n        super().__init__(\n            name=exchanges.APEX_OMNI_PERPETUAL,\n            rest_endpoint='https://omni.apex.exchange/api/v3'\n        )\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Apex/ApexOmniPerpetualTestnet.py",
    "content": "from .ApexProMain import ApexProMain\nfrom jesse.enums import exchanges\n\n\nclass ApexOmniPerpetualTestnet(ApexProMain):\n    def __init__(self) -> None:\n        super().__init__(\n            name=exchanges.APEX_OMNI_PERPETUAL_TESTNET,\n            rest_endpoint='https://testnet.omni.apex.exchange/api/v3'\n        )\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Apex/ApexProMain.py",
    "content": "import requests\nimport jesse.helpers as jh\nfrom jesse.modes.import_candles_mode.drivers.interface import CandleExchange\nfrom typing import Union\nfrom jesse import exceptions\nfrom .apex_pro_utils import timeframe_to_interval\n\n\nclass ApexProMain(CandleExchange):\n    def __init__(self, name: str, rest_endpoint: str) -> None:\n        from jesse.modes.import_candles_mode.drivers.Binance.BinanceSpot import BinanceSpot\n\n        super().__init__(name=name, count=200, rate_limit_per_second=10, backup_exchange_class=BinanceSpot)\n        self.name = name\n        self.endpoint = rest_endpoint\n\n    def get_starting_time(self, symbol: str) -> int:\n        dashless_symbol = jh.dashless_symbol(symbol)\n        payload = {\n            'symbol': dashless_symbol,\n            'interval': 'W',\n            'limit': 200,\n            'start': 1514811660\n        }\n\n        response = requests.get(self.endpoint + '/klines', params=payload)\n        self.validate_response(response)\n\n        if 'data' not in response.json():\n            raise exceptions.ExchangeInMaintenance(response.json()['msg'])\n        elif response.json()['data'] == {}:\n            raise exceptions.InvalidSymbol('Exchange does not support the entered symbol. Please enter a valid symbol.')\n\n        data = response.json()['data'][dashless_symbol]\n        # Reverse the data list\n        data = data[::-1]\n\n        return int(data[1]['t'])\n\n    def fetch(self, symbol: str, start_timestamp: int, timeframe: str = '1m') -> Union[list, None]:\n        dashless_symbol = jh.dashless_symbol(symbol)\n        interval = timeframe_to_interval(timeframe)\n\n        payload = {\n            'symbol': dashless_symbol,\n            'interval': interval,\n            'start': int(start_timestamp / 1000),\n            'limit': self.count\n        }\n\n        response = requests.get(self.endpoint + '/klines', params=payload)\n        # check data exist in response.json\n\n        if 'data' not in response.json():\n            raise exceptions.ExchangeInMaintenance(response.json()['msg'])\n        elif response.json()['data'] == {}:\n            raise exceptions.InvalidSymbol('Exchange does not support the entered symbol. Please enter a valid symbol.')\n\n        data = response.json()['data'][dashless_symbol]\n\n        return [\n            {\n                'id': jh.generate_unique_id(),\n                'exchange': self.name,\n                'symbol': symbol,\n                'timeframe': timeframe,\n                'timestamp': int(d['t']),\n                'open': float(d['o']),\n                'close': float(d['c']),\n                'high': float(d['h']),\n                'low': float(d['l']),\n                'volume': float(d['v'])\n            } for d in data\n        ]\n\n    def get_available_symbols(self) -> list:\n        response = requests.get(self.endpoint + '/symbols')\n        self.validate_response(response)\n        data = response.json()['data']\n\n        # Determine which suffix to filter based on exchange name\n        target_suffix = '-USDT' if self.name.startswith('Apex Omni') else '-USDC'\n\n        # For legacy API response format\n        if 'usdtConfig' not in data:\n            symbols = []\n            contracts = data['contractConfig']['perpetualContract']\n            for p in contracts:\n                symbol = p['symbol']\n                if symbol.endswith(target_suffix):\n                    symbols.append(symbol)\n            return list(sorted(symbols))\n\n        # For new API response format\n        pairs = []\n        # For Omni (USDT pairs)\n        if target_suffix == '-USDT':\n            if 'usdtConfig' in data and 'perpetualContract' in data['usdtConfig']:\n                contracts = data['usdtConfig']['perpetualContract']\n                for p in contracts:\n                    symbol = p['symbol']\n                    if symbol.endswith(target_suffix):\n                        pairs.append(symbol)\n        # For Pro (USDC pairs)\n        else:\n            if 'usdcConfig' in data and 'perpetualContract' in data['usdcConfig']:\n                contracts = data['usdcConfig']['perpetualContract']\n                for p in contracts:\n                    symbol = p['symbol']\n                    if symbol.endswith(target_suffix):\n                        pairs.append(symbol)\n\n        return list(sorted(pairs))\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Apex/ApexProPerpetual.py",
    "content": "from .ApexProMain import ApexProMain\nfrom jesse.enums import exchanges\n\n\nclass ApexProPerpetual(ApexProMain):\n    def __init__(self) -> None:\n        super().__init__(\n            name=exchanges.APEX_PRO_PERPETUAL,\n            rest_endpoint='https://pro.apex.exchange/api/v2'\n        )\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Apex/ApexProPerpetualTestnet.py",
    "content": "from .ApexProMain import ApexProMain\nfrom jesse.enums import exchanges\n\n\nclass ApexProPerpetualTestnet(ApexProMain):\n    def __init__(self) -> None:\n        super().__init__(\n            name=exchanges.APEX_PRO_PERPETUAL_TESTNET,\n            rest_endpoint='https://testnet.pro.apex.exchange/api/v2'\n        )\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Apex/__init__.py",
    "content": ""
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Apex/apex_pro_utils.py",
    "content": "from jesse.enums import timeframes\n\n\ndef timeframe_to_interval(timeframe: str) -> str:\n    \"\"\"\n    Convert a timeframe string to an interval in seconds.\n    \"\"\"\n    if timeframe == timeframes.MINUTE_1:\n        return '1'\n    elif timeframe == timeframes.MINUTE_3:\n        return '3'\n    elif timeframe == timeframes.MINUTE_5:\n        return '5'\n    elif timeframe == timeframes.MINUTE_15:\n        return '15'\n    elif timeframe == timeframes.MINUTE_30:\n        return '30'\n    elif timeframe == timeframes.HOUR_1:\n        return '60'\n    elif timeframe == timeframes.HOUR_2:\n        return '120'\n    elif timeframe == timeframes.HOUR_4:\n        return '240'\n    elif timeframe == timeframes.HOUR_6:\n        return '360'\n    elif timeframe == timeframes.HOUR_12:\n        return '720'\n    elif timeframe == timeframes.DAY_1:\n        return 'D'\n    elif timeframe == timeframes.WEEK_1:\n        return 'W'\n    else:\n        raise ValueError('Invalid timeframe: {}'.format(timeframe))\n\n\ndef interval_to_timeframe(interval: str) -> str:\n    \"\"\"\n    Convert an interval in seconds to a timeframe string.\n    \"\"\"\n    if interval == '1':\n        return timeframes.MINUTE_1\n    elif interval == '3':\n        return timeframes.MINUTE_3\n    elif interval == '5':\n        return timeframes.MINUTE_5\n    elif interval == '15':\n        return timeframes.MINUTE_15\n    elif interval == '30':\n        return timeframes.MINUTE_30\n    elif interval == '60':\n        return timeframes.HOUR_1\n    elif interval == '120':\n        return timeframes.HOUR_2\n    elif interval == '240':\n        return timeframes.HOUR_4\n    elif interval == '360':\n        return timeframes.HOUR_6\n    elif interval == '720':\n        return timeframes.HOUR_12\n    elif interval == 'D':\n        return timeframes.DAY_1\n    elif interval == 'W':\n        return timeframes.WEEK_1\n    else:\n        raise ValueError('Invalid interval: {}'.format(interval))\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Apex/omni_files/__init__.py",
    "content": ""
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Apex/omni_files/zklink_sdk-arm.py",
    "content": "# This file was autogenerated by some hot garbage in the `uniffi` crate.\n# Trust me, you don't want to mess with it!\n\n# Common helper code.\n#\n# Ideally this would live in a separate .py file where it can be unittested etc\n# in isolation, and perhaps even published as a re-useable package.\n#\n# However, it's important that the details of how this helper code works (e.g. the\n# way that different builtin types are passed across the FFI) exactly match what's\n# expected by the rust code on the other side of the interface. In practice right\n# now that means coming from the exact some version of `uniffi` that was used to\n# compile the rust component. The easiest way to ensure this is to bundle the Python\n# helpers directly inline like we're doing here.\n\nimport os\nimport sys\nimport ctypes\nimport enum\nimport struct\nimport contextlib\nimport threading\nimport typing\nimport platform\n\n# Used for default argument values\n_DEFAULT = object()\n\n\nclass _UniffiRustBuffer(ctypes.Structure):\n    _fields_ = [\n        (\"capacity\", ctypes.c_int32),\n        (\"len\", ctypes.c_int32),\n        (\"data\", ctypes.POINTER(ctypes.c_char)),\n    ]\n\n    @staticmethod\n    def alloc(size):\n        return _rust_call(_UniffiLib.ffi_zklink_sdk_rustbuffer_alloc, size)\n\n    @staticmethod\n    def reserve(rbuf, additional):\n        return _rust_call(_UniffiLib.ffi_zklink_sdk_rustbuffer_reserve, rbuf, additional)\n\n    def free(self):\n        return _rust_call(_UniffiLib.ffi_zklink_sdk_rustbuffer_free, self)\n\n    def __str__(self):\n        return \"_UniffiRustBuffer(capacity={}, len={}, data={})\".format(\n            self.capacity,\n            self.len,\n            self.data[0:self.len]\n        )\n\n    @contextlib.contextmanager\n    def alloc_with_builder(*args):\n        \"\"\"Context-manger to allocate a buffer using a _UniffiRustBufferBuilder.\n\n        The allocated buffer will be automatically freed if an error occurs, ensuring that\n        we don't accidentally leak it.\n        \"\"\"\n        builder = _UniffiRustBufferBuilder()\n        try:\n            yield builder\n        except:\n            builder.discard()\n            raise\n\n    @contextlib.contextmanager\n    def consume_with_stream(self):\n        \"\"\"Context-manager to consume a buffer using a _UniffiRustBufferStream.\n\n        The _UniffiRustBuffer will be freed once the context-manager exits, ensuring that we don't\n        leak it even if an error occurs.\n        \"\"\"\n        try:\n            s = _UniffiRustBufferStream.from_rust_buffer(self)\n            yield s\n            if s.remaining() != 0:\n                raise RuntimeError(\"junk data left in buffer at end of consume_with_stream\")\n        finally:\n            self.free()\n\n    @contextlib.contextmanager\n    def read_with_stream(self):\n        \"\"\"Context-manager to read a buffer using a _UniffiRustBufferStream.\n\n        This is like consume_with_stream, but doesn't free the buffer afterwards.\n        It should only be used with borrowed `_UniffiRustBuffer` data.\n        \"\"\"\n        s = _UniffiRustBufferStream.from_rust_buffer(self)\n        yield s\n        if s.remaining() != 0:\n            raise RuntimeError(\"junk data left in buffer at end of read_with_stream\")\n\nclass _UniffiForeignBytes(ctypes.Structure):\n    _fields_ = [\n        (\"len\", ctypes.c_int32),\n        (\"data\", ctypes.POINTER(ctypes.c_char)),\n    ]\n\n    def __str__(self):\n        return \"_UniffiForeignBytes(len={}, data={})\".format(self.len, self.data[0:self.len])\n\n\nclass _UniffiRustBufferStream:\n    \"\"\"\n    Helper for structured reading of bytes from a _UniffiRustBuffer\n    \"\"\"\n\n    def __init__(self, data, len):\n        self.data = data\n        self.len = len\n        self.offset = 0\n\n    @classmethod\n    def from_rust_buffer(cls, buf):\n        return cls(buf.data, buf.len)\n\n    def remaining(self):\n        return self.len - self.offset\n\n    def _unpack_from(self, size, format):\n        if self.offset + size > self.len:\n            raise InternalError(\"read past end of rust buffer\")\n        value = struct.unpack(format, self.data[self.offset:self.offset+size])[0]\n        self.offset += size\n        return value\n\n    def read(self, size):\n        if self.offset + size > self.len:\n            raise InternalError(\"read past end of rust buffer\")\n        data = self.data[self.offset:self.offset+size]\n        self.offset += size\n        return data\n\n    def read_i8(self):\n        return self._unpack_from(1, \">b\")\n\n    def read_u8(self):\n        return self._unpack_from(1, \">B\")\n\n    def read_i16(self):\n        return self._unpack_from(2, \">h\")\n\n    def read_u16(self):\n        return self._unpack_from(2, \">H\")\n\n    def read_i32(self):\n        return self._unpack_from(4, \">i\")\n\n    def read_u32(self):\n        return self._unpack_from(4, \">I\")\n\n    def read_i64(self):\n        return self._unpack_from(8, \">q\")\n\n    def read_u64(self):\n        return self._unpack_from(8, \">Q\")\n\n    def read_float(self):\n        v = self._unpack_from(4, \">f\")\n        return v\n\n    def read_double(self):\n        return self._unpack_from(8, \">d\")\n\n    def read_c_size_t(self):\n        return self._unpack_from(ctypes.sizeof(ctypes.c_size_t) , \"@N\")\n\nclass _UniffiRustBufferBuilder:\n    \"\"\"\n    Helper for structured writing of bytes into a _UniffiRustBuffer.\n    \"\"\"\n\n    def __init__(self):\n        self.rbuf = _UniffiRustBuffer.alloc(16)\n        self.rbuf.len = 0\n\n    def finalize(self):\n        rbuf = self.rbuf\n        self.rbuf = None\n        return rbuf\n\n    def discard(self):\n        if self.rbuf is not None:\n            rbuf = self.finalize()\n            rbuf.free()\n\n    @contextlib.contextmanager\n    def _reserve(self, num_bytes):\n        if self.rbuf.len + num_bytes > self.rbuf.capacity:\n            self.rbuf = _UniffiRustBuffer.reserve(self.rbuf, num_bytes)\n        yield None\n        self.rbuf.len += num_bytes\n\n    def _pack_into(self, size, format, value):\n        with self._reserve(size):\n            # XXX TODO: I feel like I should be able to use `struct.pack_into` here but can't figure it out.\n            for i, byte in enumerate(struct.pack(format, value)):\n                self.rbuf.data[self.rbuf.len + i] = byte\n\n    def write(self, value):\n        with self._reserve(len(value)):\n            for i, byte in enumerate(value):\n                self.rbuf.data[self.rbuf.len + i] = byte\n\n    def write_i8(self, v):\n        self._pack_into(1, \">b\", v)\n\n    def write_u8(self, v):\n        self._pack_into(1, \">B\", v)\n\n    def write_i16(self, v):\n        self._pack_into(2, \">h\", v)\n\n    def write_u16(self, v):\n        self._pack_into(2, \">H\", v)\n\n    def write_i32(self, v):\n        self._pack_into(4, \">i\", v)\n\n    def write_u32(self, v):\n        self._pack_into(4, \">I\", v)\n\n    def write_i64(self, v):\n        self._pack_into(8, \">q\", v)\n\n    def write_u64(self, v):\n        self._pack_into(8, \">Q\", v)\n\n    def write_float(self, v):\n        self._pack_into(4, \">f\", v)\n\n    def write_double(self, v):\n        self._pack_into(8, \">d\", v)\n\n    def write_c_size_t(self, v):\n        self._pack_into(ctypes.sizeof(ctypes.c_size_t) , \"@N\", v)\n# A handful of classes and functions to support the generated data structures.\n# This would be a good candidate for isolating in its own ffi-support lib.\n\nclass InternalError(Exception):\n    pass\n\nclass _UniffiRustCallStatus(ctypes.Structure):\n    \"\"\"\n    Error runtime.\n    \"\"\"\n    _fields_ = [\n        (\"code\", ctypes.c_int8),\n        (\"error_buf\", _UniffiRustBuffer),\n    ]\n\n    # These match the values from the uniffi::rustcalls module\n    CALL_SUCCESS = 0\n    CALL_ERROR = 1\n    CALL_PANIC = 2\n\n    def __str__(self):\n        if self.code == _UniffiRustCallStatus.CALL_SUCCESS:\n            return \"_UniffiRustCallStatus(CALL_SUCCESS)\"\n        elif self.code == _UniffiRustCallStatus.CALL_ERROR:\n            return \"_UniffiRustCallStatus(CALL_ERROR)\"\n        elif self.code == _UniffiRustCallStatus.CALL_PANIC:\n            return \"_UniffiRustCallStatus(CALL_PANIC)\"\n        else:\n            return \"_UniffiRustCallStatus(<invalid code>)\"\n\ndef _rust_call(fn, *args):\n    # Call a rust function\n    return _rust_call_with_error(None, fn, *args)\n\ndef _rust_call_with_error(error_ffi_converter, fn, *args):\n    # Call a rust function and handle any errors\n    #\n    # This function is used for rust calls that return Result<> and therefore can set the CALL_ERROR status code.\n    # error_ffi_converter must be set to the _UniffiConverter for the error class that corresponds to the result.\n    call_status = _UniffiRustCallStatus(code=_UniffiRustCallStatus.CALL_SUCCESS, error_buf=_UniffiRustBuffer(0, 0, None))\n\n    args_with_error = args + (ctypes.byref(call_status),)\n    result = fn(*args_with_error)\n    _uniffi_check_call_status(error_ffi_converter, call_status)\n    return result\n\ndef _uniffi_check_call_status(error_ffi_converter, call_status):\n    if call_status.code == _UniffiRustCallStatus.CALL_SUCCESS:\n        pass\n    elif call_status.code == _UniffiRustCallStatus.CALL_ERROR:\n        if error_ffi_converter is None:\n            call_status.error_buf.free()\n            raise InternalError(\"_rust_call_with_error: CALL_ERROR, but error_ffi_converter is None\")\n        else:\n            raise error_ffi_converter.lift(call_status.error_buf)\n    elif call_status.code == _UniffiRustCallStatus.CALL_PANIC:\n        # When the rust code sees a panic, it tries to construct a _UniffiRustBuffer\n        # with the message.  But if that code panics, then it just sends back\n        # an empty buffer.\n        if call_status.error_buf.len > 0:\n            msg = _UniffiConverterString.lift(call_status.error_buf)\n        else:\n            msg = \"Unknown rust panic\"\n        raise InternalError(msg)\n    else:\n        raise InternalError(\"Invalid _UniffiRustCallStatus code: {}\".format(\n            call_status.code))\n\n# A function pointer for a callback as defined by UniFFI.\n# Rust definition `fn(handle: u64, method: u32, args: _UniffiRustBuffer, buf_ptr: *mut _UniffiRustBuffer) -> int`\n_UNIFFI_FOREIGN_CALLBACK_T = ctypes.CFUNCTYPE(ctypes.c_int, ctypes.c_ulonglong, ctypes.c_ulong, ctypes.POINTER(ctypes.c_char), ctypes.c_int, ctypes.POINTER(_UniffiRustBuffer))\n\n# UniFFI future continuation\n_UNIFFI_FUTURE_CONTINUATION_T = ctypes.CFUNCTYPE(None, ctypes.c_size_t, ctypes.c_int8)\n\nclass _UniffiPointerManagerCPython:\n    \"\"\"\n    Manage giving out pointers to Python objects on CPython\n\n    This class is used to generate opaque pointers that reference Python objects to pass to Rust.\n    It assumes a CPython platform.  See _UniffiPointerManagerGeneral for the alternative.\n    \"\"\"\n\n    def new_pointer(self, obj):\n        \"\"\"\n        Get a pointer for an object as a ctypes.c_size_t instance\n\n        Each call to new_pointer() must be balanced with exactly one call to release_pointer()\n\n        This returns a ctypes.c_size_t.  This is always the same size as a pointer and can be\n        interchanged with pointers for FFI function arguments and return values.\n        \"\"\"\n        # IncRef the object since we're going to pass a pointer to Rust\n        ctypes.pythonapi.Py_IncRef(ctypes.py_object(obj))\n        # id() is the object address on CPython\n        # (https://docs.python.org/3/library/functions.html#id)\n        return id(obj)\n\n    def release_pointer(self, address):\n        py_obj = ctypes.cast(address, ctypes.py_object)\n        obj = py_obj.value\n        ctypes.pythonapi.Py_DecRef(py_obj)\n        return obj\n\n    def lookup(self, address):\n        return ctypes.cast(address, ctypes.py_object).value\n\nclass _UniffiPointerManagerGeneral:\n    \"\"\"\n    Manage giving out pointers to Python objects on non-CPython platforms\n\n    This has the same API as _UniffiPointerManagerCPython, but doesn't assume we're running on\n    CPython and is slightly slower.\n\n    Instead of using real pointers, it maps integer values to objects and returns the keys as\n    c_size_t values.\n    \"\"\"\n\n    def __init__(self):\n        self._map = {}\n        self._lock = threading.Lock()\n        self._current_handle = 0\n\n    def new_pointer(self, obj):\n        with self._lock:\n            handle = self._current_handle\n            self._current_handle += 1\n            self._map[handle] = obj\n        return handle\n\n    def release_pointer(self, handle):\n        with self._lock:\n            return self._map.pop(handle)\n\n    def lookup(self, handle):\n        with self._lock:\n            return self._map[handle]\n\n# Pick an pointer manager implementation based on the platform\nif platform.python_implementation() == 'CPython':\n    _UniffiPointerManager = _UniffiPointerManagerCPython # type: ignore\nelse:\n    _UniffiPointerManager = _UniffiPointerManagerGeneral # type: ignore\n# Types conforming to `_UniffiConverterPrimitive` pass themselves directly over the FFI.\nclass _UniffiConverterPrimitive:\n    @classmethod\n    def check(cls, value):\n        return value\n\n    @classmethod\n    def lift(cls, value):\n        return value\n\n    @classmethod\n    def lower(cls, value):\n        return cls.lowerUnchecked(cls.check(value))\n\n    @classmethod\n    def lowerUnchecked(cls, value):\n        return value\n\n    @classmethod\n    def write(cls, value, buf):\n        cls.write_unchecked(cls.check(value), buf)\n\nclass _UniffiConverterPrimitiveInt(_UniffiConverterPrimitive):\n    @classmethod\n    def check(cls, value):\n        try:\n            value = value.__index__()\n        except Exception:\n            raise TypeError(\"'{}' object cannot be interpreted as an integer\".format(type(value).__name__))\n        if not isinstance(value, int):\n            raise TypeError(\"__index__ returned non-int (type {})\".format(type(value).__name__))\n        if not cls.VALUE_MIN <= value < cls.VALUE_MAX:\n            raise ValueError(\"{} requires {} <= value < {}\".format(cls.CLASS_NAME, cls.VALUE_MIN, cls.VALUE_MAX))\n        return super().check(value)\n\nclass _UniffiConverterPrimitiveFloat(_UniffiConverterPrimitive):\n    @classmethod\n    def check(cls, value):\n        try:\n            value = value.__float__()\n        except Exception:\n            raise TypeError(\"must be real number, not {}\".format(type(value).__name__))\n        if not isinstance(value, float):\n            raise TypeError(\"__float__ returned non-float (type {})\".format(type(value).__name__))\n        return super().check(value)\n\n# Helper class for wrapper types that will always go through a _UniffiRustBuffer.\n# Classes should inherit from this and implement the `read` and `write` static methods.\nclass _UniffiConverterRustBuffer:\n    @classmethod\n    def lift(cls, rbuf):\n        with rbuf.consume_with_stream() as stream:\n            return cls.read(stream)\n\n    @classmethod\n    def lower(cls, value):\n        with _UniffiRustBuffer.alloc_with_builder() as builder:\n            cls.write(value, builder)\n            return builder.finalize()\n\n# Contains loading, initialization code, and the FFI Function declarations.\n# Define some ctypes FFI types that we use in the library\n\n\"\"\"\nctypes type for the foreign executor callback.  This is a built-in interface for scheduling\ntasks\n\nArgs:\n  executor: opaque c_size_t value representing the eventloop\n  delay: delay in ms\n  task: function pointer to the task callback\n  task_data: void pointer to the task callback data\n\nNormally we should call task(task_data) after the detail.\nHowever, when task is NULL this indicates that Rust has dropped the ForeignExecutor and we should\ndecrease the EventLoop refcount.\n\"\"\"\n_UNIFFI_FOREIGN_EXECUTOR_CALLBACK_T = ctypes.CFUNCTYPE(ctypes.c_int8, ctypes.c_size_t, ctypes.c_uint32, ctypes.c_void_p, ctypes.c_void_p)\n\n\"\"\"\nFunction pointer for a Rust task, which a callback function that takes a opaque pointer\n\"\"\"\n_UNIFFI_RUST_TASK = ctypes.CFUNCTYPE(None, ctypes.c_void_p, ctypes.c_int8)\n\ndef _uniffi_future_callback_t(return_type):\n    \"\"\"\n    Factory function to create callback function types for async functions\n    \"\"\"\n    return ctypes.CFUNCTYPE(None, ctypes.c_size_t, return_type, _UniffiRustCallStatus)\n\ndef _uniffi_load_indirect():\n    \"\"\"\n    This is how we find and load the dynamic library provided by the component.\n    For now we just look it up by name.\n    \"\"\"\n    if sys.platform == \"darwin\":\n        libname = \"lib{}.dylib\"\n    elif sys.platform.startswith(\"win\"):\n        # As of python3.8, ctypes does not seem to search $PATH when loading DLLs.\n        # We could use `os.add_dll_directory` to configure the search path, but\n        # it doesn't feel right to mess with application-wide settings. Let's\n        # assume that the `.dll` is next to the `.py` file and load by full path.\n        libname = os.path.join(\n            os.path.dirname(__file__),\n            \"{}.dll\",\n        )\n    else:\n        # Anything else must be an ELF platform - Linux, *BSD, Solaris/illumos\n        libname = \"lib{}.so\"\n\n    libname = libname.format(\"zklink_sdk\")\n    path = os.path.join(os.path.dirname(__file__), libname)\n    lib = ctypes.cdll.LoadLibrary(path)\n    return lib\n\ndef _uniffi_check_contract_api_version(lib):\n    # Get the bindings contract version from our ComponentInterface\n    bindings_contract_version = 24\n    # Get the scaffolding contract version by calling the into the dylib\n    scaffolding_contract_version = lib.ffi_zklink_sdk_uniffi_contract_version()\n    if bindings_contract_version != scaffolding_contract_version:\n        raise InternalError(\"UniFFI contract version mismatch: try cleaning and rebuilding your project\")\n\ndef _uniffi_check_api_checksums(lib):\n    if lib.uniffi_zklink_sdk_checksum_func_create_signed_change_pubkey() != 63374:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_func_eth_signature_of_change_pubkey() != 32759:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_func_get_public_key_hash() != 58294:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_func_verify_musig() != 61749:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_func_zklink_main_net_url() != 63488:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_func_zklink_test_net_url() != 4933:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_create_signed_tx() != 63490:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_bytes() != 44684:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_signature() != 16515:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_signature_valid() != 2829:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_valid() != 32196:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_json_str() != 3439:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_to_zklink_tx() != 64239:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_tx_hash() != 35167:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_changepubkey_get_bytes() != 1938:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_changepubkey_get_signature() != 51549:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_changepubkey_is_onchain() != 10977:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_changepubkey_is_signature_valid() != 25271:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_changepubkey_is_valid() != 31315:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_changepubkey_json_str() != 43695:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_changepubkey_to_zklink_tx() != 42088:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_changepubkey_tx_hash() != 26881:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contract_create_signed_contract() != 3720:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contract_get_bytes() != 6953:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contract_get_signature() != 60348:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contract_is_long() != 52375:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contract_is_short() != 24664:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contract_is_signature_valid() != 33071:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contractmatching_create_signed_tx() != 44741:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contractmatching_get_bytes() != 12250:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contractmatching_get_signature() != 41128:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contractmatching_is_signature_valid() != 33576:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contractmatching_is_valid() != 55586:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contractmatching_json_str() != 42918:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contractmatching_to_zklink_tx() != 43065:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contractmatching_tx_hash() != 3288:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_deposit_get_bytes() != 46958:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_deposit_json_str() != 17811:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_deposit_tx_hash() != 37358:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_ethsigner_get_address() != 11362:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_ethsigner_sign_message() != 14536:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_forcedexit_create_signed_tx() != 17267:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_forcedexit_get_bytes() != 15553:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_forcedexit_get_signature() != 48117:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_forcedexit_is_signature_valid() != 6534:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_forcedexit_is_valid() != 46100:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_forcedexit_json_str() != 4050:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_forcedexit_to_zklink_tx() != 32455:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_forcedexit_tx_hash() != 45462:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_fullexit_get_bytes() != 52461:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_fullexit_is_valid() != 57198:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_fullexit_json_str() != 24199:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_fullexit_to_zklink_tx() != 51607:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_fullexit_tx_hash() != 48511:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_funding_create_signed_tx() != 38824:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_funding_get_bytes() != 63867:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_funding_get_signature() != 29468:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_funding_is_signature_valid() != 50669:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_funding_is_valid() != 4189:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_funding_json_str() != 55097:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_funding_to_zklink_tx() != 27295:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_funding_tx_hash() != 26610:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_liquidation_create_signed_tx() != 18143:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_liquidation_get_bytes() != 1134:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_liquidation_get_signature() != 31505:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_liquidation_is_signature_valid() != 8478:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_liquidation_is_valid() != 2828:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_liquidation_json_str() != 62587:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_liquidation_to_zklink_tx() != 30414:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_liquidation_tx_hash() != 34918:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_order_create_signed_order() != 18530:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_order_get_bytes() != 51161:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_order_get_eth_sign_msg() != 11725:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_order_get_signature() != 46876:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_order_is_signature_valid() != 6764:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_order_is_valid() != 56951:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_order_json_str() != 20284:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_ordermatching_create_signed_tx() != 27728:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_ordermatching_get_bytes() != 13177:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_ordermatching_get_signature() != 35878:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_ordermatching_is_signature_valid() != 54946:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_ordermatching_is_valid() != 51995:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_ordermatching_json_str() != 33830:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_ordermatching_to_zklink_tx() != 23870:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_ordermatching_tx_hash() != 3162:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_auto_deleveraging() != 3485:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_create2data_auth() != 39808:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_eth_ecdsa_auth() != 63567:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_onchain_auth_data() != 26921:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_contract_matching() != 27932:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_forced_exit() != 37862:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_funding() != 31213:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_liquidation() != 56257:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_order_matching() != 19982:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_transfer() != 51577:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_withdraw() != 56851:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_starksigner_sign_message() != 27027:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_transfer_create_signed_tx() != 17446:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_transfer_eth_signature() != 18454:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_transfer_get_bytes() != 56287:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_transfer_get_eth_sign_msg() != 46393:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_transfer_get_signature() != 55226:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_transfer_is_signature_valid() != 31540:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_transfer_is_valid() != 46475:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_transfer_json_str() != 28252:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_transfer_to_zklink_tx() != 64899:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_transfer_tx_hash() != 16259:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_updateglobalvar_get_bytes() != 40576:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_updateglobalvar_is_valid() != 7961:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_updateglobalvar_json_str() != 48653:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_updateglobalvar_to_zklink_tx() != 40091:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_updateglobalvar_tx_hash() != 4261:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_withdraw_create_signed_tx() != 15886:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_withdraw_eth_signature() != 28825:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_withdraw_get_bytes() != 15999:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_withdraw_get_eth_sign_msg() != 27813:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_withdraw_get_signature() != 56920:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_withdraw_is_signature_valid() != 9636:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_withdraw_is_valid() != 32004:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_withdraw_json_str() != 3719:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_withdraw_to_zklink_tx() != 26934:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_withdraw_tx_hash() != 25800:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_zklinksigner_public_key() != 11211:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_zklinksigner_sign_musig() != 46475:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_autodeleveraging_new() != 10122:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_changepubkey_new() != 10607:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_contract_new() != 32968:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_contractmatching_new() != 210:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_deposit_new() != 2732:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_ethsigner_new() != 58738:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_forcedexit_new() != 30328:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_fullexit_new() != 27234:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_funding_new() != 62515:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_liquidation_new() != 56634:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_order_new() != 13958:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_ordermatching_new() != 5934:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_signer_new() != 24354:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_starksigner_new() != 61581:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_starksigner_new_from_hex_str() != 57960:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_transfer_new() != 31981:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_typeddata_new() != 46773:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_updateglobalvar_new() != 31819:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_withdraw_new() != 47491:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new() != 62411:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_bytes() != 17619:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_eth_signer() != 60210:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_stark_signer() != 21809:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_seed() != 47514:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n\n# A ctypes library to expose the extern-C FFI definitions.\n# This is an implementation detail which will be called internally by the public API.\n\n_UniffiLib = _uniffi_load_indirect()\n_UniffiLib.uniffi_zklink_sdk_fn_free_autodeleveraging.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_autodeleveraging.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_autodeleveraging_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_autodeleveraging_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_create_signed_tx.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_changepubkey.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_changepubkey.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_changepubkey_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_changepubkey_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_onchain.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_onchain.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_contract.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_contract.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_contract_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_contract_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_create_signed_contract.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_create_signed_contract.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_long.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_long.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_short.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_short.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_free_contractmatching.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_contractmatching.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_contractmatching_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_contractmatching_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_create_signed_tx.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_deposit.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_deposit.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_deposit_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_deposit_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_ethsigner.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_ethsigner.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_ethsigner_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_ethsigner_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_get_address.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_get_address.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_sign_message.argtypes = (\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_sign_message.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_forcedexit.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_forcedexit.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_forcedexit_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_forcedexit_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_create_signed_tx.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_fullexit.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_fullexit.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_fullexit_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_fullexit_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_funding.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_funding.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_funding_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_funding_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_create_signed_tx.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_liquidation.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_liquidation.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_liquidation_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_liquidation_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_create_signed_tx.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_order.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_order.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_order_new.argtypes = (\n    ctypes.c_uint32,\n    ctypes.c_uint8,\n    ctypes.c_uint32,\n    ctypes.c_uint32,\n    ctypes.c_uint32,\n    ctypes.c_uint32,\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    ctypes.c_int8,\n    ctypes.c_int8,\n    ctypes.c_uint8,\n    ctypes.c_uint8,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_order_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_create_signed_order.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_create_signed_order.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_eth_sign_msg.argtypes = (\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    ctypes.c_uint8,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_eth_sign_msg.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_ordermatching.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_ordermatching.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_ordermatching_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_ordermatching_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_create_signed_tx.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_signer.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_signer.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_signer_new.argtypes = (\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_signer_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_auto_deleveraging.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_auto_deleveraging.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_create2data_auth.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_create2data_auth.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_eth_ecdsa_auth.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_eth_ecdsa_auth.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_onchain_auth_data.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_onchain_auth_data.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_contract_matching.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_contract_matching.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_forced_exit.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_forced_exit.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_funding.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_funding.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_liquidation.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_liquidation.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_order_matching.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_order_matching.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_transfer.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_transfer.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_withdraw.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_withdraw.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_starksigner.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_starksigner.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new.argtypes = (\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new_from_hex_str.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new_from_hex_str.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_starksigner_sign_message.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_starksigner_sign_message.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_transfer.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_transfer.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_transfer_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_transfer_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_create_signed_tx.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_eth_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_eth_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_eth_sign_msg.argtypes = (\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_eth_sign_msg.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_typeddata.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_typeddata.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_typeddata_new.argtypes = (\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_typeddata_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_free_updateglobalvar.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_updateglobalvar.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_updateglobalvar_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_updateglobalvar_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_withdraw.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_withdraw.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_withdraw_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_withdraw_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_create_signed_tx.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_eth_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_eth_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_eth_sign_msg.argtypes = (\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_eth_sign_msg.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_zklinksigner.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_zklinksigner.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new.argtypes = (\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_bytes.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_bytes.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_eth_signer.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_eth_signer.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_stark_signer.argtypes = (\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_stark_signer.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_seed.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_seed.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_public_key.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_public_key.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_sign_musig.argtypes = (\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_sign_musig.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_func_create_signed_change_pubkey.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_func_create_signed_change_pubkey.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_func_eth_signature_of_change_pubkey.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_func_eth_signature_of_change_pubkey.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_func_get_public_key_hash.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_func_get_public_key_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_func_verify_musig.argtypes = (\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_func_verify_musig.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_func_zklink_main_net_url.argtypes = (\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_func_zklink_main_net_url.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_func_zklink_test_net_url.argtypes = (\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_func_zklink_test_net_url.restype = _UniffiRustBuffer\n_UniffiLib.ffi_zklink_sdk_rustbuffer_alloc.argtypes = (\n    ctypes.c_int32,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rustbuffer_alloc.restype = _UniffiRustBuffer\n_UniffiLib.ffi_zklink_sdk_rustbuffer_from_bytes.argtypes = (\n    _UniffiForeignBytes,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rustbuffer_from_bytes.restype = _UniffiRustBuffer\n_UniffiLib.ffi_zklink_sdk_rustbuffer_free.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rustbuffer_free.restype = None\n_UniffiLib.ffi_zklink_sdk_rustbuffer_reserve.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.c_int32,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rustbuffer_reserve.restype = _UniffiRustBuffer\n_UniffiLib.ffi_zklink_sdk_rust_future_continuation_callback_set.argtypes = (\n    _UNIFFI_FUTURE_CONTINUATION_T,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_continuation_callback_set.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_u8.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_u8.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_u8.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_u8.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_u8.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_u8.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_u8.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_u8.restype = ctypes.c_uint8\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_i8.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_i8.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_i8.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_i8.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_i8.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_i8.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_i8.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_i8.restype = ctypes.c_int8\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_u16.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_u16.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_u16.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_u16.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_u16.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_u16.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_u16.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_u16.restype = ctypes.c_uint16\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_i16.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_i16.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_i16.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_i16.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_i16.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_i16.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_i16.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_i16.restype = ctypes.c_int16\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_u32.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_u32.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_u32.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_u32.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_u32.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_u32.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_u32.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_u32.restype = ctypes.c_uint32\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_i32.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_i32.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_i32.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_i32.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_i32.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_i32.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_i32.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_i32.restype = ctypes.c_int32\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_u64.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_u64.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_u64.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_u64.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_u64.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_u64.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_u64.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_u64.restype = ctypes.c_uint64\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_i64.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_i64.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_i64.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_i64.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_i64.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_i64.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_i64.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_i64.restype = ctypes.c_int64\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_f32.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_f32.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_f32.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_f32.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_f32.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_f32.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_f32.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_f32.restype = ctypes.c_float\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_f64.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_f64.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_f64.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_f64.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_f64.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_f64.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_f64.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_f64.restype = ctypes.c_double\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_pointer.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_pointer.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_pointer.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_pointer.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_pointer.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_pointer.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_pointer.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_pointer.restype = ctypes.c_void_p\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_rust_buffer.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_rust_buffer.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_rust_buffer.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_rust_buffer.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_rust_buffer.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_rust_buffer.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_rust_buffer.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_rust_buffer.restype = _UniffiRustBuffer\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_void.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_void.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_void.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_void.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_void.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_void.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_void.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_void.restype = None\n_UniffiLib.uniffi_zklink_sdk_checksum_func_create_signed_change_pubkey.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_func_create_signed_change_pubkey.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_func_eth_signature_of_change_pubkey.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_func_eth_signature_of_change_pubkey.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_func_get_public_key_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_func_get_public_key_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_func_verify_musig.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_func_verify_musig.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_func_zklink_main_net_url.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_func_zklink_main_net_url.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_func_zklink_test_net_url.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_func_zklink_test_net_url.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_create_signed_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_create_signed_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_onchain.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_onchain.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_create_signed_contract.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_create_signed_contract.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_long.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_long.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_short.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_short.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_create_signed_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_create_signed_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ethsigner_get_address.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ethsigner_get_address.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ethsigner_sign_message.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ethsigner_sign_message.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_create_signed_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_create_signed_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_create_signed_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_create_signed_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_create_signed_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_create_signed_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_create_signed_order.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_create_signed_order.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_eth_sign_msg.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_eth_sign_msg.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_create_signed_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_create_signed_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_auto_deleveraging.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_auto_deleveraging.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_create2data_auth.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_create2data_auth.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_eth_ecdsa_auth.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_eth_ecdsa_auth.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_onchain_auth_data.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_onchain_auth_data.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_contract_matching.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_contract_matching.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_forced_exit.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_forced_exit.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_funding.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_funding.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_liquidation.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_liquidation.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_order_matching.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_order_matching.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_transfer.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_transfer.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_withdraw.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_withdraw.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_starksigner_sign_message.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_starksigner_sign_message.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_create_signed_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_create_signed_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_eth_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_eth_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_eth_sign_msg.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_eth_sign_msg.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_create_signed_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_create_signed_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_eth_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_eth_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_eth_sign_msg.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_eth_sign_msg.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_zklinksigner_public_key.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_zklinksigner_public_key.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_zklinksigner_sign_musig.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_zklinksigner_sign_musig.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_autodeleveraging_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_autodeleveraging_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_changepubkey_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_changepubkey_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_contract_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_contract_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_contractmatching_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_contractmatching_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_deposit_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_deposit_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_ethsigner_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_ethsigner_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_forcedexit_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_forcedexit_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_fullexit_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_fullexit_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_funding_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_funding_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_liquidation_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_liquidation_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_order_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_order_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_ordermatching_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_ordermatching_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_signer_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_signer_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_starksigner_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_starksigner_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_starksigner_new_from_hex_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_starksigner_new_from_hex_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_transfer_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_transfer_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_typeddata_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_typeddata_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_updateglobalvar_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_updateglobalvar_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_withdraw_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_withdraw_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_eth_signer.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_eth_signer.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_stark_signer.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_stark_signer.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_seed.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_seed.restype = ctypes.c_uint16\n_UniffiLib.ffi_zklink_sdk_uniffi_contract_version.argtypes = (\n)\n_UniffiLib.ffi_zklink_sdk_uniffi_contract_version.restype = ctypes.c_uint32\n_uniffi_check_contract_api_version(_UniffiLib)\n_uniffi_check_api_checksums(_UniffiLib)\n\n# Async support\n\n# Public interface members begin here.\n\n\nclass _UniffiConverterUInt8(_UniffiConverterPrimitiveInt):\n    CLASS_NAME = \"u8\"\n    VALUE_MIN = 0\n    VALUE_MAX = 2**8\n\n    @staticmethod\n    def read(buf):\n        return buf.read_u8()\n\n    @staticmethod\n    def write_unchecked(value, buf):\n        buf.write_u8(value)\n\nclass _UniffiConverterUInt16(_UniffiConverterPrimitiveInt):\n    CLASS_NAME = \"u16\"\n    VALUE_MIN = 0\n    VALUE_MAX = 2**16\n\n    @staticmethod\n    def read(buf):\n        return buf.read_u16()\n\n    @staticmethod\n    def write_unchecked(value, buf):\n        buf.write_u16(value)\n\nclass _UniffiConverterInt16(_UniffiConverterPrimitiveInt):\n    CLASS_NAME = \"i16\"\n    VALUE_MIN = -2**15\n    VALUE_MAX = 2**15\n\n    @staticmethod\n    def read(buf):\n        return buf.read_i16()\n\n    @staticmethod\n    def write_unchecked(value, buf):\n        buf.write_i16(value)\n\nclass _UniffiConverterUInt32(_UniffiConverterPrimitiveInt):\n    CLASS_NAME = \"u32\"\n    VALUE_MIN = 0\n    VALUE_MAX = 2**32\n\n    @staticmethod\n    def read(buf):\n        return buf.read_u32()\n\n    @staticmethod\n    def write_unchecked(value, buf):\n        buf.write_u32(value)\n\nclass _UniffiConverterUInt64(_UniffiConverterPrimitiveInt):\n    CLASS_NAME = \"u64\"\n    VALUE_MIN = 0\n    VALUE_MAX = 2**64\n\n    @staticmethod\n    def read(buf):\n        return buf.read_u64()\n\n    @staticmethod\n    def write_unchecked(value, buf):\n        buf.write_u64(value)\n\nclass _UniffiConverterBool(_UniffiConverterPrimitive):\n    @classmethod\n    def check(cls, value):\n        return not not value\n\n    @classmethod\n    def read(cls, buf):\n        return cls.lift(buf.read_u8())\n\n    @classmethod\n    def write_unchecked(cls, value, buf):\n        buf.write_u8(value)\n\n    @staticmethod\n    def lift(value):\n        return value != 0\n\nclass _UniffiConverterString:\n    @staticmethod\n    def check(value):\n        if not isinstance(value, str):\n            raise TypeError(\"argument must be str, not {}\".format(type(value).__name__))\n        return value\n\n    @staticmethod\n    def read(buf):\n        size = buf.read_i32()\n        if size < 0:\n            raise InternalError(\"Unexpected negative string length\")\n        utf8_bytes = buf.read(size)\n        return utf8_bytes.decode(\"utf-8\")\n\n    @staticmethod\n    def write(value, buf):\n        value = _UniffiConverterString.check(value)\n        utf8_bytes = value.encode(\"utf-8\")\n        buf.write_i32(len(utf8_bytes))\n        buf.write(utf8_bytes)\n\n    @staticmethod\n    def lift(buf):\n        with buf.consume_with_stream() as stream:\n            return stream.read(stream.remaining()).decode(\"utf-8\")\n\n    @staticmethod\n    def lower(value):\n        value = _UniffiConverterString.check(value)\n        with _UniffiRustBuffer.alloc_with_builder() as builder:\n            builder.write(value.encode(\"utf-8\"))\n            return builder.finalize()\n\n\n\nclass AutoDeleveraging:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"AutoDeleveragingBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_autodeleveraging_new,\n        _UniffiConverterTypeAutoDeleveragingBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_autodeleveraging, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def create_signed_tx(self, signer: \"ZkLinkSigner\") -> \"AutoDeleveraging\":\n        \n        return _UniffiConverterTypeAutoDeleveraging.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_create_signed_tx,self._pointer,\n        _UniffiConverterTypeZkLinkSigner.lower(signer))\n        )\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_bytes,self._pointer,)\n        )\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_signature,self._pointer,)\n        )\n\n    def is_signature_valid(self, ):\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_signature_valid,self._pointer,)\n        )\n\n    def is_valid(self, ):\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_valid,self._pointer,)\n        )\n\n    def json_str(self, ):\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_json_str,self._pointer,)\n        )\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_tx_hash,self._pointer,)\n        )\n\n\nclass _UniffiConverterTypeAutoDeleveraging:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, AutoDeleveraging):\n            raise TypeError(\"Expected AutoDeleveraging instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return AutoDeleveraging._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass ChangePubKey:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"ChangePubKeyBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_changepubkey_new,\n        _UniffiConverterTypeChangePubKeyBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_changepubkey, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_onchain(self, ):\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_onchain,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ):\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ):\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ):\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeChangePubKey:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, ChangePubKey):\n            raise TypeError(\"Expected ChangePubKey instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return ChangePubKey._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Contract:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"ContractBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_contract_new,\n        _UniffiConverterTypeContractBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_contract, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def create_signed_contract(self, zklink_signer: \"ZkLinkSigner\") -> \"Contract\":\n        \n        return _UniffiConverterTypeContract.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_contract_create_signed_contract,self._pointer,\n        _UniffiConverterTypeZkLinkSigner.lower(zklink_signer))\n        )\n\n\n\n\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_long(self, ):\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_long,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_short(self, ):\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_short,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ):\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeContract:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Contract):\n            raise TypeError(\"Expected Contract instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Contract._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass ContractMatching:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"ContractMatchingBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_contractmatching_new,\n        _UniffiConverterTypeContractMatchingBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_contractmatching, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def create_signed_tx(self, signer: \"ZkLinkSigner\") -> \"ContractMatching\":\n        \n        return _UniffiConverterTypeContractMatching.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_create_signed_tx,self._pointer,\n        _UniffiConverterTypeZkLinkSigner.lower(signer))\n        )\n\n\n\n\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ):\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ):\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ):\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeContractMatching:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, ContractMatching):\n            raise TypeError(\"Expected ContractMatching instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return ContractMatching._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Deposit:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"DepositBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_deposit_new,\n        _UniffiConverterTypeDepositBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_deposit, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ):\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeDeposit:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Deposit):\n            raise TypeError(\"Expected Deposit instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Deposit._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass EthSigner:\n    _pointer: ctypes.c_void_p\n    def __init__(self, private_key: str):\n        \n        self._pointer = _rust_call_with_error(_UniffiConverterTypeEthSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_ethsigner_new,\n        _UniffiConverterString.lower(private_key))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_ethsigner, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def get_address(self, ) -> \"Address\":\n        return _UniffiConverterTypeAddress.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_get_address,self._pointer,)\n        )\n\n\n\n\n\n\n    def sign_message(self, message: \"typing.List[int]\") -> \"PackedEthSignature\":\n        \n        return _UniffiConverterTypePackedEthSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeEthSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_sign_message,self._pointer,\n        _UniffiConverterSequenceUInt8.lower(message))\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeEthSigner:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, EthSigner):\n            raise TypeError(\"Expected EthSigner instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return EthSigner._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass ForcedExit:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"ForcedExitBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_forcedexit_new,\n        _UniffiConverterTypeForcedExitBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_forcedexit, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def create_signed_tx(self, signer: \"ZkLinkSigner\") -> \"ForcedExit\":\n        \n        return _UniffiConverterTypeForcedExit.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_create_signed_tx,self._pointer,\n        _UniffiConverterTypeZkLinkSigner.lower(signer))\n        )\n\n\n\n\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ):\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ):\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ):\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeForcedExit:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, ForcedExit):\n            raise TypeError(\"Expected ForcedExit instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return ForcedExit._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass FullExit:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"FullExitBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_fullexit_new,\n        _UniffiConverterTypeFullExitBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_fullexit, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ):\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ):\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeFullExit:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, FullExit):\n            raise TypeError(\"Expected FullExit instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return FullExit._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Funding:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"FundingBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_funding_new,\n        _UniffiConverterTypeFundingBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_funding, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def create_signed_tx(self, signer: \"ZkLinkSigner\") -> \"Funding\":\n        \n        return _UniffiConverterTypeFunding.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_funding_create_signed_tx,self._pointer,\n        _UniffiConverterTypeZkLinkSigner.lower(signer))\n        )\n\n\n\n\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ):\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ):\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ):\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeFunding:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Funding):\n            raise TypeError(\"Expected Funding instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Funding._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Liquidation:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"LiquidationBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_liquidation_new,\n        _UniffiConverterTypeLiquidationBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_liquidation, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def create_signed_tx(self, signer: \"ZkLinkSigner\") -> \"Liquidation\":\n        \n        return _UniffiConverterTypeLiquidation.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_create_signed_tx,self._pointer,\n        _UniffiConverterTypeZkLinkSigner.lower(signer))\n        )\n\n\n\n\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ):\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ):\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ):\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeLiquidation:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Liquidation):\n            raise TypeError(\"Expected Liquidation instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Liquidation._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Order:\n    _pointer: ctypes.c_void_p\n    def __init__(self, account_id: \"AccountId\",sub_account_id: \"SubAccountId\",slot_id: \"SlotId\",nonce: \"Nonce\",base_token_id: \"TokenId\",quote_token_id: \"TokenId\",amount: \"BigUint\",price: \"BigUint\",is_sell: bool,has_subsidy: bool,maker_fee_rate: \"int\",taker_fee_rate: \"int\",signature: \"typing.Optional[ZkLinkSignature]\"):\n        \n        \n        \n        \n        \n        \n        \n        \n        \n        \n        \n        \n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_order_new,\n        _UniffiConverterTypeAccountId.lower(account_id),\n        _UniffiConverterTypeSubAccountId.lower(sub_account_id),\n        _UniffiConverterTypeSlotId.lower(slot_id),\n        _UniffiConverterTypeNonce.lower(nonce),\n        _UniffiConverterTypeTokenId.lower(base_token_id),\n        _UniffiConverterTypeTokenId.lower(quote_token_id),\n        _UniffiConverterTypeBigUint.lower(amount),\n        _UniffiConverterTypeBigUint.lower(price),\n        _UniffiConverterBool.lower(is_sell),\n        _UniffiConverterBool.lower(has_subsidy),\n        _UniffiConverterUInt8.lower(maker_fee_rate),\n        _UniffiConverterUInt8.lower(taker_fee_rate),\n        _UniffiConverterOptionalTypeZkLinkSignature.lower(signature))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_order, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def create_signed_order(self, zklink_signer: \"ZkLinkSigner\") -> \"Order\":\n        \n        return _UniffiConverterTypeOrder.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_order_create_signed_order,self._pointer,\n        _UniffiConverterTypeZkLinkSigner.lower(zklink_signer))\n        )\n\n\n\n\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_eth_sign_msg(self, quote_token: str,based_token: str,decimals: \"int\"):\n        \n        \n        \n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_eth_sign_msg,self._pointer,\n        _UniffiConverterString.lower(quote_token),\n        _UniffiConverterString.lower(based_token),\n        _UniffiConverterUInt8.lower(decimals))\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ):\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ):\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ):\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_json_str,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeOrder:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Order):\n            raise TypeError(\"Expected Order instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Order._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass OrderMatching:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"OrderMatchingBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_ordermatching_new,\n        _UniffiConverterTypeOrderMatchingBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_ordermatching, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def create_signed_tx(self, signer: \"ZkLinkSigner\") -> \"OrderMatching\":\n        \n        return _UniffiConverterTypeOrderMatching.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_create_signed_tx,self._pointer,\n        _UniffiConverterTypeZkLinkSigner.lower(signer))\n        )\n\n\n\n\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ):\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ):\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ):\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeOrderMatching:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, OrderMatching):\n            raise TypeError(\"Expected OrderMatching instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return OrderMatching._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Signer:\n    _pointer: ctypes.c_void_p\n    def __init__(self, private_key: str,l1_type: \"L1SignerType\"):\n        \n        \n        self._pointer = _rust_call_with_error(_UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_signer_new,\n        _UniffiConverterString.lower(private_key),\n        _UniffiConverterTypeL1SignerType.lower(l1_type))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_signer, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def sign_auto_deleveraging(self, tx: \"AutoDeleveraging\") -> \"TxSignature\":\n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_auto_deleveraging,self._pointer,\n        _UniffiConverterTypeAutoDeleveraging.lower(tx))\n        )\n\n\n\n\n\n\n    def sign_change_pubkey_with_create2data_auth(self, tx: \"ChangePubKey\",crate2data: \"Create2Data\") -> \"TxSignature\":\n        \n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_create2data_auth,self._pointer,\n        _UniffiConverterTypeChangePubKey.lower(tx),\n        _UniffiConverterTypeCreate2Data.lower(crate2data))\n        )\n\n\n\n\n\n\n    def sign_change_pubkey_with_eth_ecdsa_auth(self, tx: \"ChangePubKey\") -> \"TxSignature\":\n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_eth_ecdsa_auth,self._pointer,\n        _UniffiConverterTypeChangePubKey.lower(tx))\n        )\n\n\n\n\n\n\n    def sign_change_pubkey_with_onchain_auth_data(self, tx: \"ChangePubKey\") -> \"TxSignature\":\n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_onchain_auth_data,self._pointer,\n        _UniffiConverterTypeChangePubKey.lower(tx))\n        )\n\n\n\n\n\n\n    def sign_contract_matching(self, tx: \"ContractMatching\") -> \"TxSignature\":\n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_contract_matching,self._pointer,\n        _UniffiConverterTypeContractMatching.lower(tx))\n        )\n\n\n\n\n\n\n    def sign_forced_exit(self, tx: \"ForcedExit\") -> \"TxSignature\":\n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_forced_exit,self._pointer,\n        _UniffiConverterTypeForcedExit.lower(tx))\n        )\n\n\n\n\n\n\n    def sign_funding(self, tx: \"Funding\") -> \"TxSignature\":\n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_funding,self._pointer,\n        _UniffiConverterTypeFunding.lower(tx))\n        )\n\n\n\n\n\n\n    def sign_liquidation(self, tx: \"Liquidation\") -> \"TxSignature\":\n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_liquidation,self._pointer,\n        _UniffiConverterTypeLiquidation.lower(tx))\n        )\n\n\n\n\n\n\n    def sign_order_matching(self, tx: \"OrderMatching\") -> \"TxSignature\":\n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_order_matching,self._pointer,\n        _UniffiConverterTypeOrderMatching.lower(tx))\n        )\n\n\n\n\n\n\n    def sign_transfer(self, tx: \"Transfer\",token_sybmol: str,chain_id: \"typing.Optional[str]\",addr: \"typing.Optional[str]\") -> \"TxSignature\":\n        \n        \n        \n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_transfer,self._pointer,\n        _UniffiConverterTypeTransfer.lower(tx),\n        _UniffiConverterString.lower(token_sybmol),\n        _UniffiConverterOptionalString.lower(chain_id),\n        _UniffiConverterOptionalString.lower(addr))\n        )\n\n\n\n\n\n\n    def sign_withdraw(self, tx: \"Withdraw\",l2_source_token_symbol: str,chain_id: \"typing.Optional[str]\",addr: \"typing.Optional[str]\") -> \"TxSignature\":\n        \n        \n        \n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_withdraw,self._pointer,\n        _UniffiConverterTypeWithdraw.lower(tx),\n        _UniffiConverterString.lower(l2_source_token_symbol),\n        _UniffiConverterOptionalString.lower(chain_id),\n        _UniffiConverterOptionalString.lower(addr))\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeSigner:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Signer):\n            raise TypeError(\"Expected Signer instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Signer._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass StarkSigner:\n    _pointer: ctypes.c_void_p\n    def __init__(self, ):\n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new,)\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_starksigner, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n    @classmethod\n    def new_from_hex_str(cls, hex_str: str):\n        \n        # Call the (fallible) function before creating any half-baked object instances.\n        pointer = _rust_call_with_error(_UniffiConverterTypeStarkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new_from_hex_str,\n        _UniffiConverterString.lower(hex_str))\n        return cls._make_instance_(pointer)\n\n\n\n    def sign_message(self, typed_data: \"TypedData\",addr: str) -> \"StarkEip712Signature\":\n        \n        \n        return _UniffiConverterTypeStarkEip712Signature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeStarkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_starksigner_sign_message,self._pointer,\n        _UniffiConverterTypeTypedData.lower(typed_data),\n        _UniffiConverterString.lower(addr))\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeStarkSigner:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, StarkSigner):\n            raise TypeError(\"Expected StarkSigner instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return StarkSigner._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Transfer:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"TransferBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_transfer_new,\n        _UniffiConverterTypeTransferBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_transfer, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def create_signed_tx(self, signer: \"ZkLinkSigner\") -> \"Transfer\":\n        \n        return _UniffiConverterTypeTransfer.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_create_signed_tx,self._pointer,\n        _UniffiConverterTypeZkLinkSigner.lower(signer))\n        )\n\n\n\n\n\n\n    def eth_signature(self, eth_signer: \"EthSigner\",token_symbol: str) -> \"TxLayer1Signature\":\n        \n        \n        return _UniffiConverterTypeTxLayer1Signature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_eth_signature,self._pointer,\n        _UniffiConverterTypeEthSigner.lower(eth_signer),\n        _UniffiConverterString.lower(token_symbol))\n        )\n\n\n\n\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_eth_sign_msg(self, token_symbol: str):\n        \n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_eth_sign_msg,self._pointer,\n        _UniffiConverterString.lower(token_symbol))\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ):\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ):\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ):\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeTransfer:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Transfer):\n            raise TypeError(\"Expected Transfer instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Transfer._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass TypedData:\n    _pointer: ctypes.c_void_p\n    def __init__(self, message: \"TypedDataMessage\",chain_id: str):\n        \n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_typeddata_new,\n        _UniffiConverterTypeTypedDataMessage.lower(message),\n        _UniffiConverterString.lower(chain_id))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_typeddata, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\nclass _UniffiConverterTypeTypedData:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, TypedData):\n            raise TypeError(\"Expected TypedData instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return TypedData._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass UpdateGlobalVar:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"UpdateGlobalVarBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_updateglobalvar_new,\n        _UniffiConverterTypeUpdateGlobalVarBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_updateglobalvar, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ):\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ):\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeUpdateGlobalVar:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, UpdateGlobalVar):\n            raise TypeError(\"Expected UpdateGlobalVar instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return UpdateGlobalVar._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Withdraw:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"WithdrawBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_withdraw_new,\n        _UniffiConverterTypeWithdrawBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_withdraw, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def create_signed_tx(self, signer: \"ZkLinkSigner\") -> \"Withdraw\":\n        \n        return _UniffiConverterTypeWithdraw.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_create_signed_tx,self._pointer,\n        _UniffiConverterTypeZkLinkSigner.lower(signer))\n        )\n\n\n\n\n\n\n    def eth_signature(self, eth_signer: \"EthSigner\",l2_source_token_symbol: str) -> \"PackedEthSignature\":\n        \n        \n        return _UniffiConverterTypePackedEthSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_eth_signature,self._pointer,\n        _UniffiConverterTypeEthSigner.lower(eth_signer),\n        _UniffiConverterString.lower(l2_source_token_symbol))\n        )\n\n\n\n\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_eth_sign_msg(self, token_symbol: str):\n        \n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_eth_sign_msg,self._pointer,\n        _UniffiConverterString.lower(token_symbol))\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ):\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ):\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ):\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeWithdraw:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Withdraw):\n            raise TypeError(\"Expected Withdraw instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Withdraw._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass ZkLinkSigner:\n    _pointer: ctypes.c_void_p\n    def __init__(self, ):\n        self._pointer = _rust_call_with_error(_UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new,)\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_zklinksigner, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n    @classmethod\n    def new_from_bytes(cls, slice: \"typing.List[int]\"):\n        \n        # Call the (fallible) function before creating any half-baked object instances.\n        pointer = _rust_call_with_error(_UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_bytes,\n        _UniffiConverterSequenceUInt8.lower(slice))\n        return cls._make_instance_(pointer)\n\n\n    @classmethod\n    def new_from_hex_eth_signer(cls, eth_hex_private_key: str):\n        \n        # Call the (fallible) function before creating any half-baked object instances.\n        pointer = _rust_call_with_error(_UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_eth_signer,\n        _UniffiConverterString.lower(eth_hex_private_key))\n        return cls._make_instance_(pointer)\n\n\n    @classmethod\n    def new_from_hex_stark_signer(cls, hex_private_key: str,addr: str,chain_id: str):\n        \n        \n        \n        # Call the (fallible) function before creating any half-baked object instances.\n        pointer = _rust_call_with_error(_UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_stark_signer,\n        _UniffiConverterString.lower(hex_private_key),\n        _UniffiConverterString.lower(addr),\n        _UniffiConverterString.lower(chain_id))\n        return cls._make_instance_(pointer)\n\n\n    @classmethod\n    def new_from_seed(cls, seed: \"typing.List[int]\"):\n        \n        # Call the (fallible) function before creating any half-baked object instances.\n        pointer = _rust_call_with_error(_UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_seed,\n        _UniffiConverterSequenceUInt8.lower(seed))\n        return cls._make_instance_(pointer)\n\n\n\n    def public_key(self, ) -> \"PackedPublicKey\":\n        return _UniffiConverterTypePackedPublicKey.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_public_key,self._pointer,)\n        )\n\n\n\n\n\n\n    def sign_musig(self, msg: \"typing.List[int]\") -> \"ZkLinkSignature\":\n        \n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_sign_musig,self._pointer,\n        _UniffiConverterSequenceUInt8.lower(msg))\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeZkLinkSigner:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, ZkLinkSigner):\n            raise TypeError(\"Expected ZkLinkSigner instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return ZkLinkSigner._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\nclass AutoDeleveragingBuilder:\n    account_id: \"AccountId\";sub_account_id: \"SubAccountId\";sub_account_nonce: \"Nonce\";contract_prices: \"typing.List[ContractPrice]\";margin_prices: \"typing.List[SpotPriceInfo]\";adl_account_id: \"AccountId\";pair_id: \"PairId\";adl_size: \"BigUint\";adl_price: \"BigUint\";fee: \"BigUint\";fee_token: \"TokenId\";\n\n    @typing.no_type_check\n    def __init__(self, account_id: \"AccountId\", sub_account_id: \"SubAccountId\", sub_account_nonce: \"Nonce\", contract_prices: \"typing.List[ContractPrice]\", margin_prices: \"typing.List[SpotPriceInfo]\", adl_account_id: \"AccountId\", pair_id: \"PairId\", adl_size: \"BigUint\", adl_price: \"BigUint\", fee: \"BigUint\", fee_token: \"TokenId\"):\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.sub_account_nonce = sub_account_nonce\n        self.contract_prices = contract_prices\n        self.margin_prices = margin_prices\n        self.adl_account_id = adl_account_id\n        self.pair_id = pair_id\n        self.adl_size = adl_size\n        self.adl_price = adl_price\n        self.fee = fee\n        self.fee_token = fee_token\n\n    def __str__(self):\n        return \"AutoDeleveragingBuilder(account_id={}, sub_account_id={}, sub_account_nonce={}, contract_prices={}, margin_prices={}, adl_account_id={}, pair_id={}, adl_size={}, adl_price={}, fee={}, fee_token={})\".format(self.account_id, self.sub_account_id, self.sub_account_nonce, self.contract_prices, self.margin_prices, self.adl_account_id, self.pair_id, self.adl_size, self.adl_price, self.fee, self.fee_token)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.sub_account_nonce != other.sub_account_nonce:\n            return False\n        if self.contract_prices != other.contract_prices:\n            return False\n        if self.margin_prices != other.margin_prices:\n            return False\n        if self.adl_account_id != other.adl_account_id:\n            return False\n        if self.pair_id != other.pair_id:\n            return False\n        if self.adl_size != other.adl_size:\n            return False\n        if self.adl_price != other.adl_price:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.fee_token != other.fee_token:\n            return False\n        return True\n\nclass _UniffiConverterTypeAutoDeleveragingBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return AutoDeleveragingBuilder(\n            account_id=_UniffiConverterTypeAccountId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            sub_account_nonce=_UniffiConverterTypeNonce.read(buf),\n            contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf),\n            margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf),\n            adl_account_id=_UniffiConverterTypeAccountId.read(buf),\n            pair_id=_UniffiConverterTypePairId.read(buf),\n            adl_size=_UniffiConverterTypeBigUint.read(buf),\n            adl_price=_UniffiConverterTypeBigUint.read(buf),\n            fee=_UniffiConverterTypeBigUint.read(buf),\n            fee_token=_UniffiConverterTypeTokenId.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypeNonce.write(value.sub_account_nonce, buf)\n        _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf)\n        _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf)\n        _UniffiConverterTypeAccountId.write(value.adl_account_id, buf)\n        _UniffiConverterTypePairId.write(value.pair_id, buf)\n        _UniffiConverterTypeBigUint.write(value.adl_size, buf)\n        _UniffiConverterTypeBigUint.write(value.adl_price, buf)\n        _UniffiConverterTypeBigUint.write(value.fee, buf)\n        _UniffiConverterTypeTokenId.write(value.fee_token, buf)\n\n\nclass ChangePubKeyBuilder:\n    chain_id: \"ChainId\";account_id: \"AccountId\";sub_account_id: \"SubAccountId\";new_pubkey_hash: \"PubKeyHash\";fee_token: \"TokenId\";fee: \"BigUint\";nonce: \"Nonce\";eth_signature: \"typing.Optional[PackedEthSignature]\";timestamp: \"TimeStamp\";\n\n    @typing.no_type_check\n    def __init__(self, chain_id: \"ChainId\", account_id: \"AccountId\", sub_account_id: \"SubAccountId\", new_pubkey_hash: \"PubKeyHash\", fee_token: \"TokenId\", fee: \"BigUint\", nonce: \"Nonce\", eth_signature: \"typing.Optional[PackedEthSignature]\", timestamp: \"TimeStamp\"):\n        self.chain_id = chain_id\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.new_pubkey_hash = new_pubkey_hash\n        self.fee_token = fee_token\n        self.fee = fee\n        self.nonce = nonce\n        self.eth_signature = eth_signature\n        self.timestamp = timestamp\n\n    def __str__(self):\n        return \"ChangePubKeyBuilder(chain_id={}, account_id={}, sub_account_id={}, new_pubkey_hash={}, fee_token={}, fee={}, nonce={}, eth_signature={}, timestamp={})\".format(self.chain_id, self.account_id, self.sub_account_id, self.new_pubkey_hash, self.fee_token, self.fee, self.nonce, self.eth_signature, self.timestamp)\n\n    def __eq__(self, other):\n        if self.chain_id != other.chain_id:\n            return False\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.new_pubkey_hash != other.new_pubkey_hash:\n            return False\n        if self.fee_token != other.fee_token:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.nonce != other.nonce:\n            return False\n        if self.eth_signature != other.eth_signature:\n            return False\n        if self.timestamp != other.timestamp:\n            return False\n        return True\n\nclass _UniffiConverterTypeChangePubKeyBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return ChangePubKeyBuilder(\n            chain_id=_UniffiConverterTypeChainId.read(buf),\n            account_id=_UniffiConverterTypeAccountId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            new_pubkey_hash=_UniffiConverterTypePubKeyHash.read(buf),\n            fee_token=_UniffiConverterTypeTokenId.read(buf),\n            fee=_UniffiConverterTypeBigUint.read(buf),\n            nonce=_UniffiConverterTypeNonce.read(buf),\n            eth_signature=_UniffiConverterOptionalTypePackedEthSignature.read(buf),\n            timestamp=_UniffiConverterTypeTimeStamp.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeChainId.write(value.chain_id, buf)\n        _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypePubKeyHash.write(value.new_pubkey_hash, buf)\n        _UniffiConverterTypeTokenId.write(value.fee_token, buf)\n        _UniffiConverterTypeBigUint.write(value.fee, buf)\n        _UniffiConverterTypeNonce.write(value.nonce, buf)\n        _UniffiConverterOptionalTypePackedEthSignature.write(value.eth_signature, buf)\n        _UniffiConverterTypeTimeStamp.write(value.timestamp, buf)\n\n\nclass ContractBuilder:\n    account_id: \"AccountId\";sub_account_id: \"SubAccountId\";slot_id: \"SlotId\";nonce: \"Nonce\";pair_id: \"PairId\";size: \"BigUint\";price: \"BigUint\";direction: bool;taker_fee_rate: \"int\";maker_fee_rate: \"int\";has_subsidy: bool;\n\n    @typing.no_type_check\n    def __init__(self, account_id: \"AccountId\", sub_account_id: \"SubAccountId\", slot_id: \"SlotId\", nonce: \"Nonce\", pair_id: \"PairId\", size: \"BigUint\", price: \"BigUint\", direction: bool, taker_fee_rate: \"int\", maker_fee_rate: \"int\", has_subsidy: bool):\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.slot_id = slot_id\n        self.nonce = nonce\n        self.pair_id = pair_id\n        self.size = size\n        self.price = price\n        self.direction = direction\n        self.taker_fee_rate = taker_fee_rate\n        self.maker_fee_rate = maker_fee_rate\n        self.has_subsidy = has_subsidy\n\n    def __str__(self):\n        return \"ContractBuilder(account_id={}, sub_account_id={}, slot_id={}, nonce={}, pair_id={}, size={}, price={}, direction={}, taker_fee_rate={}, maker_fee_rate={}, has_subsidy={})\".format(self.account_id, self.sub_account_id, self.slot_id, self.nonce, self.pair_id, self.size, self.price, self.direction, self.taker_fee_rate, self.maker_fee_rate, self.has_subsidy)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.slot_id != other.slot_id:\n            return False\n        if self.nonce != other.nonce:\n            return False\n        if self.pair_id != other.pair_id:\n            return False\n        if self.size != other.size:\n            return False\n        if self.price != other.price:\n            return False\n        if self.direction != other.direction:\n            return False\n        if self.taker_fee_rate != other.taker_fee_rate:\n            return False\n        if self.maker_fee_rate != other.maker_fee_rate:\n            return False\n        if self.has_subsidy != other.has_subsidy:\n            return False\n        return True\n\nclass _UniffiConverterTypeContractBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return ContractBuilder(\n            account_id=_UniffiConverterTypeAccountId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            slot_id=_UniffiConverterTypeSlotId.read(buf),\n            nonce=_UniffiConverterTypeNonce.read(buf),\n            pair_id=_UniffiConverterTypePairId.read(buf),\n            size=_UniffiConverterTypeBigUint.read(buf),\n            price=_UniffiConverterTypeBigUint.read(buf),\n            direction=_UniffiConverterBool.read(buf),\n            taker_fee_rate=_UniffiConverterUInt8.read(buf),\n            maker_fee_rate=_UniffiConverterUInt8.read(buf),\n            has_subsidy=_UniffiConverterBool.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypeSlotId.write(value.slot_id, buf)\n        _UniffiConverterTypeNonce.write(value.nonce, buf)\n        _UniffiConverterTypePairId.write(value.pair_id, buf)\n        _UniffiConverterTypeBigUint.write(value.size, buf)\n        _UniffiConverterTypeBigUint.write(value.price, buf)\n        _UniffiConverterBool.write(value.direction, buf)\n        _UniffiConverterUInt8.write(value.taker_fee_rate, buf)\n        _UniffiConverterUInt8.write(value.maker_fee_rate, buf)\n        _UniffiConverterBool.write(value.has_subsidy, buf)\n\n\nclass ContractMatchingBuilder:\n    account_id: \"AccountId\";sub_account_id: \"SubAccountId\";taker: \"Contract\";maker: \"typing.List[Contract]\";fee: \"BigUint\";fee_token: \"TokenId\";contract_prices: \"typing.List[ContractPrice]\";margin_prices: \"typing.List[SpotPriceInfo]\";\n\n    @typing.no_type_check\n    def __init__(self, account_id: \"AccountId\", sub_account_id: \"SubAccountId\", taker: \"Contract\", maker: \"typing.List[Contract]\", fee: \"BigUint\", fee_token: \"TokenId\", contract_prices: \"typing.List[ContractPrice]\", margin_prices: \"typing.List[SpotPriceInfo]\"):\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.taker = taker\n        self.maker = maker\n        self.fee = fee\n        self.fee_token = fee_token\n        self.contract_prices = contract_prices\n        self.margin_prices = margin_prices\n\n    def __str__(self):\n        return \"ContractMatchingBuilder(account_id={}, sub_account_id={}, taker={}, maker={}, fee={}, fee_token={}, contract_prices={}, margin_prices={})\".format(self.account_id, self.sub_account_id, self.taker, self.maker, self.fee, self.fee_token, self.contract_prices, self.margin_prices)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.taker != other.taker:\n            return False\n        if self.maker != other.maker:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.fee_token != other.fee_token:\n            return False\n        if self.contract_prices != other.contract_prices:\n            return False\n        if self.margin_prices != other.margin_prices:\n            return False\n        return True\n\nclass _UniffiConverterTypeContractMatchingBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return ContractMatchingBuilder(\n            account_id=_UniffiConverterTypeAccountId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            taker=_UniffiConverterTypeContract.read(buf),\n            maker=_UniffiConverterSequenceTypeContract.read(buf),\n            fee=_UniffiConverterTypeBigUint.read(buf),\n            fee_token=_UniffiConverterTypeTokenId.read(buf),\n            contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf),\n            margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypeContract.write(value.taker, buf)\n        _UniffiConverterSequenceTypeContract.write(value.maker, buf)\n        _UniffiConverterTypeBigUint.write(value.fee, buf)\n        _UniffiConverterTypeTokenId.write(value.fee_token, buf)\n        _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf)\n        _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf)\n\n\nclass ContractPrice:\n    pair_id: \"PairId\";market_price: \"BigUint\";\n\n    @typing.no_type_check\n    def __init__(self, pair_id: \"PairId\", market_price: \"BigUint\"):\n        self.pair_id = pair_id\n        self.market_price = market_price\n\n    def __str__(self):\n        return \"ContractPrice(pair_id={}, market_price={})\".format(self.pair_id, self.market_price)\n\n    def __eq__(self, other):\n        if self.pair_id != other.pair_id:\n            return False\n        if self.market_price != other.market_price:\n            return False\n        return True\n\nclass _UniffiConverterTypeContractPrice(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return ContractPrice(\n            pair_id=_UniffiConverterTypePairId.read(buf),\n            market_price=_UniffiConverterTypeBigUint.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypePairId.write(value.pair_id, buf)\n        _UniffiConverterTypeBigUint.write(value.market_price, buf)\n\n\nclass Create2Data:\n    creator_address: \"ZkLinkAddress\";salt_arg: \"H256\";code_hash: \"H256\";\n\n    @typing.no_type_check\n    def __init__(self, creator_address: \"ZkLinkAddress\", salt_arg: \"H256\", code_hash: \"H256\"):\n        self.creator_address = creator_address\n        self.salt_arg = salt_arg\n        self.code_hash = code_hash\n\n    def __str__(self):\n        return \"Create2Data(creator_address={}, salt_arg={}, code_hash={})\".format(self.creator_address, self.salt_arg, self.code_hash)\n\n    def __eq__(self, other):\n        if self.creator_address != other.creator_address:\n            return False\n        if self.salt_arg != other.salt_arg:\n            return False\n        if self.code_hash != other.code_hash:\n            return False\n        return True\n\nclass _UniffiConverterTypeCreate2Data(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return Create2Data(\n            creator_address=_UniffiConverterTypeZkLinkAddress.read(buf),\n            salt_arg=_UniffiConverterTypeH256.read(buf),\n            code_hash=_UniffiConverterTypeH256.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeZkLinkAddress.write(value.creator_address, buf)\n        _UniffiConverterTypeH256.write(value.salt_arg, buf)\n        _UniffiConverterTypeH256.write(value.code_hash, buf)\n\n\nclass DepositBuilder:\n    from_address: \"ZkLinkAddress\";to_address: \"ZkLinkAddress\";from_chain_id: \"ChainId\";sub_account_id: \"SubAccountId\";l2_target_token: \"TokenId\";l1_source_token: \"TokenId\";amount: \"BigUint\";serial_id: \"int\";l2_hash: \"H256\";eth_hash: \"typing.Optional[H256]\";\n\n    @typing.no_type_check\n    def __init__(self, from_address: \"ZkLinkAddress\", to_address: \"ZkLinkAddress\", from_chain_id: \"ChainId\", sub_account_id: \"SubAccountId\", l2_target_token: \"TokenId\", l1_source_token: \"TokenId\", amount: \"BigUint\", serial_id: \"int\", l2_hash: \"H256\", eth_hash: \"typing.Optional[H256]\"):\n        self.from_address = from_address\n        self.to_address = to_address\n        self.from_chain_id = from_chain_id\n        self.sub_account_id = sub_account_id\n        self.l2_target_token = l2_target_token\n        self.l1_source_token = l1_source_token\n        self.amount = amount\n        self.serial_id = serial_id\n        self.l2_hash = l2_hash\n        self.eth_hash = eth_hash\n\n    def __str__(self):\n        return \"DepositBuilder(from_address={}, to_address={}, from_chain_id={}, sub_account_id={}, l2_target_token={}, l1_source_token={}, amount={}, serial_id={}, l2_hash={}, eth_hash={})\".format(self.from_address, self.to_address, self.from_chain_id, self.sub_account_id, self.l2_target_token, self.l1_source_token, self.amount, self.serial_id, self.l2_hash, self.eth_hash)\n\n    def __eq__(self, other):\n        if self.from_address != other.from_address:\n            return False\n        if self.to_address != other.to_address:\n            return False\n        if self.from_chain_id != other.from_chain_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.l2_target_token != other.l2_target_token:\n            return False\n        if self.l1_source_token != other.l1_source_token:\n            return False\n        if self.amount != other.amount:\n            return False\n        if self.serial_id != other.serial_id:\n            return False\n        if self.l2_hash != other.l2_hash:\n            return False\n        if self.eth_hash != other.eth_hash:\n            return False\n        return True\n\nclass _UniffiConverterTypeDepositBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return DepositBuilder(\n            from_address=_UniffiConverterTypeZkLinkAddress.read(buf),\n            to_address=_UniffiConverterTypeZkLinkAddress.read(buf),\n            from_chain_id=_UniffiConverterTypeChainId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            l2_target_token=_UniffiConverterTypeTokenId.read(buf),\n            l1_source_token=_UniffiConverterTypeTokenId.read(buf),\n            amount=_UniffiConverterTypeBigUint.read(buf),\n            serial_id=_UniffiConverterUInt64.read(buf),\n            l2_hash=_UniffiConverterTypeH256.read(buf),\n            eth_hash=_UniffiConverterOptionalTypeH256.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeZkLinkAddress.write(value.from_address, buf)\n        _UniffiConverterTypeZkLinkAddress.write(value.to_address, buf)\n        _UniffiConverterTypeChainId.write(value.from_chain_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypeTokenId.write(value.l2_target_token, buf)\n        _UniffiConverterTypeTokenId.write(value.l1_source_token, buf)\n        _UniffiConverterTypeBigUint.write(value.amount, buf)\n        _UniffiConverterUInt64.write(value.serial_id, buf)\n        _UniffiConverterTypeH256.write(value.l2_hash, buf)\n        _UniffiConverterOptionalTypeH256.write(value.eth_hash, buf)\n\n\nclass ForcedExitBuilder:\n    to_chain_id: \"ChainId\";initiator_account_id: \"AccountId\";initiator_sub_account_id: \"SubAccountId\";target: \"ZkLinkAddress\";target_sub_account_id: \"SubAccountId\";l2_source_token: \"TokenId\";l1_target_token: \"TokenId\";initiator_nonce: \"Nonce\";exit_amount: \"BigUint\";withdraw_to_l1: bool;timestamp: \"TimeStamp\";\n\n    @typing.no_type_check\n    def __init__(self, to_chain_id: \"ChainId\", initiator_account_id: \"AccountId\", initiator_sub_account_id: \"SubAccountId\", target: \"ZkLinkAddress\", target_sub_account_id: \"SubAccountId\", l2_source_token: \"TokenId\", l1_target_token: \"TokenId\", initiator_nonce: \"Nonce\", exit_amount: \"BigUint\", withdraw_to_l1: bool, timestamp: \"TimeStamp\"):\n        self.to_chain_id = to_chain_id\n        self.initiator_account_id = initiator_account_id\n        self.initiator_sub_account_id = initiator_sub_account_id\n        self.target = target\n        self.target_sub_account_id = target_sub_account_id\n        self.l2_source_token = l2_source_token\n        self.l1_target_token = l1_target_token\n        self.initiator_nonce = initiator_nonce\n        self.exit_amount = exit_amount\n        self.withdraw_to_l1 = withdraw_to_l1\n        self.timestamp = timestamp\n\n    def __str__(self):\n        return \"ForcedExitBuilder(to_chain_id={}, initiator_account_id={}, initiator_sub_account_id={}, target={}, target_sub_account_id={}, l2_source_token={}, l1_target_token={}, initiator_nonce={}, exit_amount={}, withdraw_to_l1={}, timestamp={})\".format(self.to_chain_id, self.initiator_account_id, self.initiator_sub_account_id, self.target, self.target_sub_account_id, self.l2_source_token, self.l1_target_token, self.initiator_nonce, self.exit_amount, self.withdraw_to_l1, self.timestamp)\n\n    def __eq__(self, other):\n        if self.to_chain_id != other.to_chain_id:\n            return False\n        if self.initiator_account_id != other.initiator_account_id:\n            return False\n        if self.initiator_sub_account_id != other.initiator_sub_account_id:\n            return False\n        if self.target != other.target:\n            return False\n        if self.target_sub_account_id != other.target_sub_account_id:\n            return False\n        if self.l2_source_token != other.l2_source_token:\n            return False\n        if self.l1_target_token != other.l1_target_token:\n            return False\n        if self.initiator_nonce != other.initiator_nonce:\n            return False\n        if self.exit_amount != other.exit_amount:\n            return False\n        if self.withdraw_to_l1 != other.withdraw_to_l1:\n            return False\n        if self.timestamp != other.timestamp:\n            return False\n        return True\n\nclass _UniffiConverterTypeForcedExitBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return ForcedExitBuilder(\n            to_chain_id=_UniffiConverterTypeChainId.read(buf),\n            initiator_account_id=_UniffiConverterTypeAccountId.read(buf),\n            initiator_sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            target=_UniffiConverterTypeZkLinkAddress.read(buf),\n            target_sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            l2_source_token=_UniffiConverterTypeTokenId.read(buf),\n            l1_target_token=_UniffiConverterTypeTokenId.read(buf),\n            initiator_nonce=_UniffiConverterTypeNonce.read(buf),\n            exit_amount=_UniffiConverterTypeBigUint.read(buf),\n            withdraw_to_l1=_UniffiConverterBool.read(buf),\n            timestamp=_UniffiConverterTypeTimeStamp.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeChainId.write(value.to_chain_id, buf)\n        _UniffiConverterTypeAccountId.write(value.initiator_account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.initiator_sub_account_id, buf)\n        _UniffiConverterTypeZkLinkAddress.write(value.target, buf)\n        _UniffiConverterTypeSubAccountId.write(value.target_sub_account_id, buf)\n        _UniffiConverterTypeTokenId.write(value.l2_source_token, buf)\n        _UniffiConverterTypeTokenId.write(value.l1_target_token, buf)\n        _UniffiConverterTypeNonce.write(value.initiator_nonce, buf)\n        _UniffiConverterTypeBigUint.write(value.exit_amount, buf)\n        _UniffiConverterBool.write(value.withdraw_to_l1, buf)\n        _UniffiConverterTypeTimeStamp.write(value.timestamp, buf)\n\n\nclass FullExitBuilder:\n    to_chain_id: \"ChainId\";account_id: \"AccountId\";sub_account_id: \"SubAccountId\";exit_address: \"ZkLinkAddress\";l2_source_token: \"TokenId\";l1_target_token: \"TokenId\";contract_prices: \"typing.List[ContractPrice]\";margin_prices: \"typing.List[SpotPriceInfo]\";serial_id: \"int\";l2_hash: \"H256\";\n\n    @typing.no_type_check\n    def __init__(self, to_chain_id: \"ChainId\", account_id: \"AccountId\", sub_account_id: \"SubAccountId\", exit_address: \"ZkLinkAddress\", l2_source_token: \"TokenId\", l1_target_token: \"TokenId\", contract_prices: \"typing.List[ContractPrice]\", margin_prices: \"typing.List[SpotPriceInfo]\", serial_id: \"int\", l2_hash: \"H256\"):\n        self.to_chain_id = to_chain_id\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.exit_address = exit_address\n        self.l2_source_token = l2_source_token\n        self.l1_target_token = l1_target_token\n        self.contract_prices = contract_prices\n        self.margin_prices = margin_prices\n        self.serial_id = serial_id\n        self.l2_hash = l2_hash\n\n    def __str__(self):\n        return \"FullExitBuilder(to_chain_id={}, account_id={}, sub_account_id={}, exit_address={}, l2_source_token={}, l1_target_token={}, contract_prices={}, margin_prices={}, serial_id={}, l2_hash={})\".format(self.to_chain_id, self.account_id, self.sub_account_id, self.exit_address, self.l2_source_token, self.l1_target_token, self.contract_prices, self.margin_prices, self.serial_id, self.l2_hash)\n\n    def __eq__(self, other):\n        if self.to_chain_id != other.to_chain_id:\n            return False\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.exit_address != other.exit_address:\n            return False\n        if self.l2_source_token != other.l2_source_token:\n            return False\n        if self.l1_target_token != other.l1_target_token:\n            return False\n        if self.contract_prices != other.contract_prices:\n            return False\n        if self.margin_prices != other.margin_prices:\n            return False\n        if self.serial_id != other.serial_id:\n            return False\n        if self.l2_hash != other.l2_hash:\n            return False\n        return True\n\nclass _UniffiConverterTypeFullExitBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return FullExitBuilder(\n            to_chain_id=_UniffiConverterTypeChainId.read(buf),\n            account_id=_UniffiConverterTypeAccountId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            exit_address=_UniffiConverterTypeZkLinkAddress.read(buf),\n            l2_source_token=_UniffiConverterTypeTokenId.read(buf),\n            l1_target_token=_UniffiConverterTypeTokenId.read(buf),\n            contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf),\n            margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf),\n            serial_id=_UniffiConverterUInt64.read(buf),\n            l2_hash=_UniffiConverterTypeH256.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeChainId.write(value.to_chain_id, buf)\n        _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypeZkLinkAddress.write(value.exit_address, buf)\n        _UniffiConverterTypeTokenId.write(value.l2_source_token, buf)\n        _UniffiConverterTypeTokenId.write(value.l1_target_token, buf)\n        _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf)\n        _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf)\n        _UniffiConverterUInt64.write(value.serial_id, buf)\n        _UniffiConverterTypeH256.write(value.l2_hash, buf)\n\n\nclass FundingBuilder:\n    account_id: \"AccountId\";sub_account_id: \"SubAccountId\";sub_account_nonce: \"Nonce\";funding_account_ids: \"typing.List[AccountId]\";fee: \"BigUint\";fee_token: \"TokenId\";\n\n    @typing.no_type_check\n    def __init__(self, account_id: \"AccountId\", sub_account_id: \"SubAccountId\", sub_account_nonce: \"Nonce\", funding_account_ids: \"typing.List[AccountId]\", fee: \"BigUint\", fee_token: \"TokenId\"):\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.sub_account_nonce = sub_account_nonce\n        self.funding_account_ids = funding_account_ids\n        self.fee = fee\n        self.fee_token = fee_token\n\n    def __str__(self):\n        return \"FundingBuilder(account_id={}, sub_account_id={}, sub_account_nonce={}, funding_account_ids={}, fee={}, fee_token={})\".format(self.account_id, self.sub_account_id, self.sub_account_nonce, self.funding_account_ids, self.fee, self.fee_token)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.sub_account_nonce != other.sub_account_nonce:\n            return False\n        if self.funding_account_ids != other.funding_account_ids:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.fee_token != other.fee_token:\n            return False\n        return True\n\nclass _UniffiConverterTypeFundingBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return FundingBuilder(\n            account_id=_UniffiConverterTypeAccountId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            sub_account_nonce=_UniffiConverterTypeNonce.read(buf),\n            funding_account_ids=_UniffiConverterSequenceTypeAccountId.read(buf),\n            fee=_UniffiConverterTypeBigUint.read(buf),\n            fee_token=_UniffiConverterTypeTokenId.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypeNonce.write(value.sub_account_nonce, buf)\n        _UniffiConverterSequenceTypeAccountId.write(value.funding_account_ids, buf)\n        _UniffiConverterTypeBigUint.write(value.fee, buf)\n        _UniffiConverterTypeTokenId.write(value.fee_token, buf)\n\n\nclass FundingInfo:\n    pair_id: \"PairId\";price: \"BigUint\";funding_rate: \"int\";\n\n    @typing.no_type_check\n    def __init__(self, pair_id: \"PairId\", price: \"BigUint\", funding_rate: \"int\"):\n        self.pair_id = pair_id\n        self.price = price\n        self.funding_rate = funding_rate\n\n    def __str__(self):\n        return \"FundingInfo(pair_id={}, price={}, funding_rate={})\".format(self.pair_id, self.price, self.funding_rate)\n\n    def __eq__(self, other):\n        if self.pair_id != other.pair_id:\n            return False\n        if self.price != other.price:\n            return False\n        if self.funding_rate != other.funding_rate:\n            return False\n        return True\n\nclass _UniffiConverterTypeFundingInfo(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return FundingInfo(\n            pair_id=_UniffiConverterTypePairId.read(buf),\n            price=_UniffiConverterTypeBigUint.read(buf),\n            funding_rate=_UniffiConverterInt16.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypePairId.write(value.pair_id, buf)\n        _UniffiConverterTypeBigUint.write(value.price, buf)\n        _UniffiConverterInt16.write(value.funding_rate, buf)\n\n\nclass LiquidationBuilder:\n    account_id: \"AccountId\";sub_account_id: \"SubAccountId\";sub_account_nonce: \"Nonce\";contract_prices: \"typing.List[ContractPrice]\";margin_prices: \"typing.List[SpotPriceInfo]\";liquidation_account_id: \"AccountId\";fee: \"BigUint\";fee_token: \"TokenId\";\n\n    @typing.no_type_check\n    def __init__(self, account_id: \"AccountId\", sub_account_id: \"SubAccountId\", sub_account_nonce: \"Nonce\", contract_prices: \"typing.List[ContractPrice]\", margin_prices: \"typing.List[SpotPriceInfo]\", liquidation_account_id: \"AccountId\", fee: \"BigUint\", fee_token: \"TokenId\"):\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.sub_account_nonce = sub_account_nonce\n        self.contract_prices = contract_prices\n        self.margin_prices = margin_prices\n        self.liquidation_account_id = liquidation_account_id\n        self.fee = fee\n        self.fee_token = fee_token\n\n    def __str__(self):\n        return \"LiquidationBuilder(account_id={}, sub_account_id={}, sub_account_nonce={}, contract_prices={}, margin_prices={}, liquidation_account_id={}, fee={}, fee_token={})\".format(self.account_id, self.sub_account_id, self.sub_account_nonce, self.contract_prices, self.margin_prices, self.liquidation_account_id, self.fee, self.fee_token)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.sub_account_nonce != other.sub_account_nonce:\n            return False\n        if self.contract_prices != other.contract_prices:\n            return False\n        if self.margin_prices != other.margin_prices:\n            return False\n        if self.liquidation_account_id != other.liquidation_account_id:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.fee_token != other.fee_token:\n            return False\n        return True\n\nclass _UniffiConverterTypeLiquidationBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return LiquidationBuilder(\n            account_id=_UniffiConverterTypeAccountId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            sub_account_nonce=_UniffiConverterTypeNonce.read(buf),\n            contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf),\n            margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf),\n            liquidation_account_id=_UniffiConverterTypeAccountId.read(buf),\n            fee=_UniffiConverterTypeBigUint.read(buf),\n            fee_token=_UniffiConverterTypeTokenId.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypeNonce.write(value.sub_account_nonce, buf)\n        _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf)\n        _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf)\n        _UniffiConverterTypeAccountId.write(value.liquidation_account_id, buf)\n        _UniffiConverterTypeBigUint.write(value.fee, buf)\n        _UniffiConverterTypeTokenId.write(value.fee_token, buf)\n\n\nclass Message:\n    data: str;\n\n    @typing.no_type_check\n    def __init__(self, data: str):\n        self.data = data\n\n    def __str__(self):\n        return \"Message(data={})\".format(self.data)\n\n    def __eq__(self, other):\n        if self.data != other.data:\n            return False\n        return True\n\nclass _UniffiConverterTypeMessage(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return Message(\n            data=_UniffiConverterString.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value.data, buf)\n\n\nclass OraclePrices:\n    contract_prices: \"typing.List[ContractPrice]\";margin_prices: \"typing.List[SpotPriceInfo]\";\n\n    @typing.no_type_check\n    def __init__(self, contract_prices: \"typing.List[ContractPrice]\", margin_prices: \"typing.List[SpotPriceInfo]\"):\n        self.contract_prices = contract_prices\n        self.margin_prices = margin_prices\n\n    def __str__(self):\n        return \"OraclePrices(contract_prices={}, margin_prices={})\".format(self.contract_prices, self.margin_prices)\n\n    def __eq__(self, other):\n        if self.contract_prices != other.contract_prices:\n            return False\n        if self.margin_prices != other.margin_prices:\n            return False\n        return True\n\nclass _UniffiConverterTypeOraclePrices(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return OraclePrices(\n            contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf),\n            margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf)\n        _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf)\n\n\nclass OrderMatchingBuilder:\n    account_id: \"AccountId\";sub_account_id: \"SubAccountId\";taker: \"Order\";maker: \"Order\";fee: \"BigUint\";fee_token: \"TokenId\";contract_prices: \"typing.List[ContractPrice]\";margin_prices: \"typing.List[SpotPriceInfo]\";expect_base_amount: \"BigUint\";expect_quote_amount: \"BigUint\";\n\n    @typing.no_type_check\n    def __init__(self, account_id: \"AccountId\", sub_account_id: \"SubAccountId\", taker: \"Order\", maker: \"Order\", fee: \"BigUint\", fee_token: \"TokenId\", contract_prices: \"typing.List[ContractPrice]\", margin_prices: \"typing.List[SpotPriceInfo]\", expect_base_amount: \"BigUint\", expect_quote_amount: \"BigUint\"):\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.taker = taker\n        self.maker = maker\n        self.fee = fee\n        self.fee_token = fee_token\n        self.contract_prices = contract_prices\n        self.margin_prices = margin_prices\n        self.expect_base_amount = expect_base_amount\n        self.expect_quote_amount = expect_quote_amount\n\n    def __str__(self):\n        return \"OrderMatchingBuilder(account_id={}, sub_account_id={}, taker={}, maker={}, fee={}, fee_token={}, contract_prices={}, margin_prices={}, expect_base_amount={}, expect_quote_amount={})\".format(self.account_id, self.sub_account_id, self.taker, self.maker, self.fee, self.fee_token, self.contract_prices, self.margin_prices, self.expect_base_amount, self.expect_quote_amount)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.taker != other.taker:\n            return False\n        if self.maker != other.maker:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.fee_token != other.fee_token:\n            return False\n        if self.contract_prices != other.contract_prices:\n            return False\n        if self.margin_prices != other.margin_prices:\n            return False\n        if self.expect_base_amount != other.expect_base_amount:\n            return False\n        if self.expect_quote_amount != other.expect_quote_amount:\n            return False\n        return True\n\nclass _UniffiConverterTypeOrderMatchingBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return OrderMatchingBuilder(\n            account_id=_UniffiConverterTypeAccountId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            taker=_UniffiConverterTypeOrder.read(buf),\n            maker=_UniffiConverterTypeOrder.read(buf),\n            fee=_UniffiConverterTypeBigUint.read(buf),\n            fee_token=_UniffiConverterTypeTokenId.read(buf),\n            contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf),\n            margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf),\n            expect_base_amount=_UniffiConverterTypeBigUint.read(buf),\n            expect_quote_amount=_UniffiConverterTypeBigUint.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypeOrder.write(value.taker, buf)\n        _UniffiConverterTypeOrder.write(value.maker, buf)\n        _UniffiConverterTypeBigUint.write(value.fee, buf)\n        _UniffiConverterTypeTokenId.write(value.fee_token, buf)\n        _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf)\n        _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf)\n        _UniffiConverterTypeBigUint.write(value.expect_base_amount, buf)\n        _UniffiConverterTypeBigUint.write(value.expect_quote_amount, buf)\n\n\nclass SpotPriceInfo:\n    token_id: \"TokenId\";price: \"BigUint\";\n\n    @typing.no_type_check\n    def __init__(self, token_id: \"TokenId\", price: \"BigUint\"):\n        self.token_id = token_id\n        self.price = price\n\n    def __str__(self):\n        return \"SpotPriceInfo(token_id={}, price={})\".format(self.token_id, self.price)\n\n    def __eq__(self, other):\n        if self.token_id != other.token_id:\n            return False\n        if self.price != other.price:\n            return False\n        return True\n\nclass _UniffiConverterTypeSpotPriceInfo(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return SpotPriceInfo(\n            token_id=_UniffiConverterTypeTokenId.read(buf),\n            price=_UniffiConverterTypeBigUint.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeTokenId.write(value.token_id, buf)\n        _UniffiConverterTypeBigUint.write(value.price, buf)\n\n\nclass TransferBuilder:\n    account_id: \"AccountId\";to_address: \"ZkLinkAddress\";from_sub_account_id: \"SubAccountId\";to_sub_account_id: \"SubAccountId\";token: \"TokenId\";amount: \"BigUint\";fee: \"BigUint\";nonce: \"Nonce\";timestamp: \"TimeStamp\";\n\n    @typing.no_type_check\n    def __init__(self, account_id: \"AccountId\", to_address: \"ZkLinkAddress\", from_sub_account_id: \"SubAccountId\", to_sub_account_id: \"SubAccountId\", token: \"TokenId\", amount: \"BigUint\", fee: \"BigUint\", nonce: \"Nonce\", timestamp: \"TimeStamp\"):\n        self.account_id = account_id\n        self.to_address = to_address\n        self.from_sub_account_id = from_sub_account_id\n        self.to_sub_account_id = to_sub_account_id\n        self.token = token\n        self.amount = amount\n        self.fee = fee\n        self.nonce = nonce\n        self.timestamp = timestamp\n\n    def __str__(self):\n        return \"TransferBuilder(account_id={}, to_address={}, from_sub_account_id={}, to_sub_account_id={}, token={}, amount={}, fee={}, nonce={}, timestamp={})\".format(self.account_id, self.to_address, self.from_sub_account_id, self.to_sub_account_id, self.token, self.amount, self.fee, self.nonce, self.timestamp)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.to_address != other.to_address:\n            return False\n        if self.from_sub_account_id != other.from_sub_account_id:\n            return False\n        if self.to_sub_account_id != other.to_sub_account_id:\n            return False\n        if self.token != other.token:\n            return False\n        if self.amount != other.amount:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.nonce != other.nonce:\n            return False\n        if self.timestamp != other.timestamp:\n            return False\n        return True\n\nclass _UniffiConverterTypeTransferBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return TransferBuilder(\n            account_id=_UniffiConverterTypeAccountId.read(buf),\n            to_address=_UniffiConverterTypeZkLinkAddress.read(buf),\n            from_sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            to_sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            token=_UniffiConverterTypeTokenId.read(buf),\n            amount=_UniffiConverterTypeBigUint.read(buf),\n            fee=_UniffiConverterTypeBigUint.read(buf),\n            nonce=_UniffiConverterTypeNonce.read(buf),\n            timestamp=_UniffiConverterTypeTimeStamp.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        _UniffiConverterTypeZkLinkAddress.write(value.to_address, buf)\n        _UniffiConverterTypeSubAccountId.write(value.from_sub_account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.to_sub_account_id, buf)\n        _UniffiConverterTypeTokenId.write(value.token, buf)\n        _UniffiConverterTypeBigUint.write(value.amount, buf)\n        _UniffiConverterTypeBigUint.write(value.fee, buf)\n        _UniffiConverterTypeNonce.write(value.nonce, buf)\n        _UniffiConverterTypeTimeStamp.write(value.timestamp, buf)\n\n\nclass TxMessage:\n    transaction: str;amount: str;fee: str;token: str;to: str;nonce: str;\n\n    @typing.no_type_check\n    def __init__(self, transaction: str, amount: str, fee: str, token: str, to: str, nonce: str):\n        self.transaction = transaction\n        self.amount = amount\n        self.fee = fee\n        self.token = token\n        self.to = to\n        self.nonce = nonce\n\n    def __str__(self):\n        return \"TxMessage(transaction={}, amount={}, fee={}, token={}, to={}, nonce={})\".format(self.transaction, self.amount, self.fee, self.token, self.to, self.nonce)\n\n    def __eq__(self, other):\n        if self.transaction != other.transaction:\n            return False\n        if self.amount != other.amount:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.token != other.token:\n            return False\n        if self.to != other.to:\n            return False\n        if self.nonce != other.nonce:\n            return False\n        return True\n\nclass _UniffiConverterTypeTxMessage(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return TxMessage(\n            transaction=_UniffiConverterString.read(buf),\n            amount=_UniffiConverterString.read(buf),\n            fee=_UniffiConverterString.read(buf),\n            token=_UniffiConverterString.read(buf),\n            to=_UniffiConverterString.read(buf),\n            nonce=_UniffiConverterString.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value.transaction, buf)\n        _UniffiConverterString.write(value.amount, buf)\n        _UniffiConverterString.write(value.fee, buf)\n        _UniffiConverterString.write(value.token, buf)\n        _UniffiConverterString.write(value.to, buf)\n        _UniffiConverterString.write(value.nonce, buf)\n\n\nclass TxSignature:\n    tx: \"ZkLinkTx\";layer1_signature: \"typing.Optional[TxLayer1Signature]\";\n\n    @typing.no_type_check\n    def __init__(self, tx: \"ZkLinkTx\", layer1_signature: \"typing.Optional[TxLayer1Signature]\"):\n        self.tx = tx\n        self.layer1_signature = layer1_signature\n\n    def __str__(self):\n        return \"TxSignature(tx={}, layer1_signature={})\".format(self.tx, self.layer1_signature)\n\n    def __eq__(self, other):\n        if self.tx != other.tx:\n            return False\n        if self.layer1_signature != other.layer1_signature:\n            return False\n        return True\n\nclass _UniffiConverterTypeTxSignature(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return TxSignature(\n            tx=_UniffiConverterTypeZkLinkTx.read(buf),\n            layer1_signature=_UniffiConverterOptionalTypeTxLayer1Signature.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeZkLinkTx.write(value.tx, buf)\n        _UniffiConverterOptionalTypeTxLayer1Signature.write(value.layer1_signature, buf)\n\n\nclass UpdateGlobalVarBuilder:\n    from_chain_id: \"ChainId\";sub_account_id: \"SubAccountId\";parameter: \"Parameter\";serial_id: \"int\";\n\n    @typing.no_type_check\n    def __init__(self, from_chain_id: \"ChainId\", sub_account_id: \"SubAccountId\", parameter: \"Parameter\", serial_id: \"int\"):\n        self.from_chain_id = from_chain_id\n        self.sub_account_id = sub_account_id\n        self.parameter = parameter\n        self.serial_id = serial_id\n\n    def __str__(self):\n        return \"UpdateGlobalVarBuilder(from_chain_id={}, sub_account_id={}, parameter={}, serial_id={})\".format(self.from_chain_id, self.sub_account_id, self.parameter, self.serial_id)\n\n    def __eq__(self, other):\n        if self.from_chain_id != other.from_chain_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.parameter != other.parameter:\n            return False\n        if self.serial_id != other.serial_id:\n            return False\n        return True\n\nclass _UniffiConverterTypeUpdateGlobalVarBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return UpdateGlobalVarBuilder(\n            from_chain_id=_UniffiConverterTypeChainId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            parameter=_UniffiConverterTypeParameter.read(buf),\n            serial_id=_UniffiConverterUInt64.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeChainId.write(value.from_chain_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypeParameter.write(value.parameter, buf)\n        _UniffiConverterUInt64.write(value.serial_id, buf)\n\n\nclass WithdrawBuilder:\n    account_id: \"AccountId\";sub_account_id: \"SubAccountId\";to_chain_id: \"ChainId\";to_address: \"ZkLinkAddress\";l2_source_token: \"TokenId\";l1_target_token: \"TokenId\";amount: \"BigUint\";call_data: \"typing.Optional[typing.List[int]]\";fee: \"BigUint\";nonce: \"Nonce\";withdraw_fee_ratio: \"int\";withdraw_to_l1: bool;timestamp: \"TimeStamp\";\n\n    @typing.no_type_check\n    def __init__(self, account_id: \"AccountId\", sub_account_id: \"SubAccountId\", to_chain_id: \"ChainId\", to_address: \"ZkLinkAddress\", l2_source_token: \"TokenId\", l1_target_token: \"TokenId\", amount: \"BigUint\", call_data: \"typing.Optional[typing.List[int]]\", fee: \"BigUint\", nonce: \"Nonce\", withdraw_fee_ratio: \"int\", withdraw_to_l1: bool, timestamp: \"TimeStamp\"):\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.to_chain_id = to_chain_id\n        self.to_address = to_address\n        self.l2_source_token = l2_source_token\n        self.l1_target_token = l1_target_token\n        self.amount = amount\n        self.call_data = call_data\n        self.fee = fee\n        self.nonce = nonce\n        self.withdraw_fee_ratio = withdraw_fee_ratio\n        self.withdraw_to_l1 = withdraw_to_l1\n        self.timestamp = timestamp\n\n    def __str__(self):\n        return \"WithdrawBuilder(account_id={}, sub_account_id={}, to_chain_id={}, to_address={}, l2_source_token={}, l1_target_token={}, amount={}, call_data={}, fee={}, nonce={}, withdraw_fee_ratio={}, withdraw_to_l1={}, timestamp={})\".format(self.account_id, self.sub_account_id, self.to_chain_id, self.to_address, self.l2_source_token, self.l1_target_token, self.amount, self.call_data, self.fee, self.nonce, self.withdraw_fee_ratio, self.withdraw_to_l1, self.timestamp)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.to_chain_id != other.to_chain_id:\n            return False\n        if self.to_address != other.to_address:\n            return False\n        if self.l2_source_token != other.l2_source_token:\n            return False\n        if self.l1_target_token != other.l1_target_token:\n            return False\n        if self.amount != other.amount:\n            return False\n        if self.call_data != other.call_data:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.nonce != other.nonce:\n            return False\n        if self.withdraw_fee_ratio != other.withdraw_fee_ratio:\n            return False\n        if self.withdraw_to_l1 != other.withdraw_to_l1:\n            return False\n        if self.timestamp != other.timestamp:\n            return False\n        return True\n\nclass _UniffiConverterTypeWithdrawBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return WithdrawBuilder(\n            account_id=_UniffiConverterTypeAccountId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            to_chain_id=_UniffiConverterTypeChainId.read(buf),\n            to_address=_UniffiConverterTypeZkLinkAddress.read(buf),\n            l2_source_token=_UniffiConverterTypeTokenId.read(buf),\n            l1_target_token=_UniffiConverterTypeTokenId.read(buf),\n            amount=_UniffiConverterTypeBigUint.read(buf),\n            call_data=_UniffiConverterOptionalSequenceUInt8.read(buf),\n            fee=_UniffiConverterTypeBigUint.read(buf),\n            nonce=_UniffiConverterTypeNonce.read(buf),\n            withdraw_fee_ratio=_UniffiConverterUInt16.read(buf),\n            withdraw_to_l1=_UniffiConverterBool.read(buf),\n            timestamp=_UniffiConverterTypeTimeStamp.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypeChainId.write(value.to_chain_id, buf)\n        _UniffiConverterTypeZkLinkAddress.write(value.to_address, buf)\n        _UniffiConverterTypeTokenId.write(value.l2_source_token, buf)\n        _UniffiConverterTypeTokenId.write(value.l1_target_token, buf)\n        _UniffiConverterTypeBigUint.write(value.amount, buf)\n        _UniffiConverterOptionalSequenceUInt8.write(value.call_data, buf)\n        _UniffiConverterTypeBigUint.write(value.fee, buf)\n        _UniffiConverterTypeNonce.write(value.nonce, buf)\n        _UniffiConverterUInt16.write(value.withdraw_fee_ratio, buf)\n        _UniffiConverterBool.write(value.withdraw_to_l1, buf)\n        _UniffiConverterTypeTimeStamp.write(value.timestamp, buf)\n\n\nclass ZkLinkSignature:\n    pub_key: \"PackedPublicKey\";signature: \"PackedSignature\";\n\n    @typing.no_type_check\n    def __init__(self, pub_key: \"PackedPublicKey\", signature: \"PackedSignature\"):\n        self.pub_key = pub_key\n        self.signature = signature\n\n    def __str__(self):\n        return \"ZkLinkSignature(pub_key={}, signature={})\".format(self.pub_key, self.signature)\n\n    def __eq__(self, other):\n        if self.pub_key != other.pub_key:\n            return False\n        if self.signature != other.signature:\n            return False\n        return True\n\nclass _UniffiConverterTypeZkLinkSignature(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return ZkLinkSignature(\n            pub_key=_UniffiConverterTypePackedPublicKey.read(buf),\n            signature=_UniffiConverterTypePackedSignature.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypePackedPublicKey.write(value.pub_key, buf)\n        _UniffiConverterTypePackedSignature.write(value.signature, buf)\n\n\n\n\n\nclass ChangePubKeyAuthData:\n    def __init__(self):\n        raise RuntimeError(\"ChangePubKeyAuthData cannot be instantiated directly\")\n\n    # Each enum variant is a nested class of the enum itself.\n    class ONCHAIN:\n        \n\n        @typing.no_type_check\n        def __init__(self,):\n            \n            pass\n            \n\n        def __str__(self):\n            return \"ChangePubKeyAuthData.ONCHAIN()\".format()\n\n        def __eq__(self, other):\n            if not other.is_onchain():\n                return False\n            return True\n    class ETH_ECDSA:\n        eth_signature: \"PackedEthSignature\";\n\n        @typing.no_type_check\n        def __init__(self,eth_signature: \"PackedEthSignature\"):\n            \n            self.eth_signature = eth_signature\n            \n\n        def __str__(self):\n            return \"ChangePubKeyAuthData.ETH_ECDSA(eth_signature={})\".format(self.eth_signature)\n\n        def __eq__(self, other):\n            if not other.is_eth_ecdsa():\n                return False\n            if self.eth_signature != other.eth_signature:\n                return False\n            return True\n    class ETH_CREATE2:\n        data: \"Create2Data\";\n\n        @typing.no_type_check\n        def __init__(self,data: \"Create2Data\"):\n            \n            self.data = data\n            \n\n        def __str__(self):\n            return \"ChangePubKeyAuthData.ETH_CREATE2(data={})\".format(self.data)\n\n        def __eq__(self, other):\n            if not other.is_eth_create2():\n                return False\n            if self.data != other.data:\n                return False\n            return True\n    \n\n    # For each variant, we have an `is_NAME` method for easily checking\n    # whether an instance is that variant.\n    def is_onchain(self) -> bool:\n        return isinstance(self, ChangePubKeyAuthData.ONCHAIN)\n    def is_eth_ecdsa(self) -> bool:\n        return isinstance(self, ChangePubKeyAuthData.ETH_ECDSA)\n    def is_eth_create2(self) -> bool:\n        return isinstance(self, ChangePubKeyAuthData.ETH_CREATE2)\n    \n\n# Now, a little trick - we make each nested variant class be a subclass of the main\n# enum class, so that method calls and instance checks etc will work intuitively.\n# We might be able to do this a little more neatly with a metaclass, but this'll do.\nChangePubKeyAuthData.ONCHAIN = type(\"ChangePubKeyAuthData.ONCHAIN\", (ChangePubKeyAuthData.ONCHAIN, ChangePubKeyAuthData,), {})  # type: ignore\nChangePubKeyAuthData.ETH_ECDSA = type(\"ChangePubKeyAuthData.ETH_ECDSA\", (ChangePubKeyAuthData.ETH_ECDSA, ChangePubKeyAuthData,), {})  # type: ignore\nChangePubKeyAuthData.ETH_CREATE2 = type(\"ChangePubKeyAuthData.ETH_CREATE2\", (ChangePubKeyAuthData.ETH_CREATE2, ChangePubKeyAuthData,), {})  # type: ignore\n\n\n\n\nclass _UniffiConverterTypeChangePubKeyAuthData(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return ChangePubKeyAuthData.ONCHAIN(\n            )\n        if variant == 2:\n            return ChangePubKeyAuthData.ETH_ECDSA(\n                _UniffiConverterTypePackedEthSignature.read(buf),\n            )\n        if variant == 3:\n            return ChangePubKeyAuthData.ETH_CREATE2(\n                _UniffiConverterTypeCreate2Data.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    def write(value, buf):\n        if value.is_onchain():\n            buf.write_i32(1)\n        if value.is_eth_ecdsa():\n            buf.write_i32(2)\n            _UniffiConverterTypePackedEthSignature.write(value.eth_signature, buf)\n        if value.is_eth_create2():\n            buf.write_i32(3)\n            _UniffiConverterTypeCreate2Data.write(value.data, buf)\n\n\n\n\n\n\n\nclass ChangePubKeyAuthRequest:\n    def __init__(self):\n        raise RuntimeError(\"ChangePubKeyAuthRequest cannot be instantiated directly\")\n\n    # Each enum variant is a nested class of the enum itself.\n    class ONCHAIN:\n        \n\n        @typing.no_type_check\n        def __init__(self,):\n            \n            pass\n            \n\n        def __str__(self):\n            return \"ChangePubKeyAuthRequest.ONCHAIN()\".format()\n\n        def __eq__(self, other):\n            if not other.is_onchain():\n                return False\n            return True\n    class ETH_ECDSA:\n        \n\n        @typing.no_type_check\n        def __init__(self,):\n            \n            pass\n            \n\n        def __str__(self):\n            return \"ChangePubKeyAuthRequest.ETH_ECDSA()\".format()\n\n        def __eq__(self, other):\n            if not other.is_eth_ecdsa():\n                return False\n            return True\n    class ETH_CREATE2:\n        data: \"Create2Data\";\n\n        @typing.no_type_check\n        def __init__(self,data: \"Create2Data\"):\n            \n            self.data = data\n            \n\n        def __str__(self):\n            return \"ChangePubKeyAuthRequest.ETH_CREATE2(data={})\".format(self.data)\n\n        def __eq__(self, other):\n            if not other.is_eth_create2():\n                return False\n            if self.data != other.data:\n                return False\n            return True\n    \n\n    # For each variant, we have an `is_NAME` method for easily checking\n    # whether an instance is that variant.\n    def is_onchain(self) -> bool:\n        return isinstance(self, ChangePubKeyAuthRequest.ONCHAIN)\n    def is_eth_ecdsa(self) -> bool:\n        return isinstance(self, ChangePubKeyAuthRequest.ETH_ECDSA)\n    def is_eth_create2(self) -> bool:\n        return isinstance(self, ChangePubKeyAuthRequest.ETH_CREATE2)\n    \n\n# Now, a little trick - we make each nested variant class be a subclass of the main\n# enum class, so that method calls and instance checks etc will work intuitively.\n# We might be able to do this a little more neatly with a metaclass, but this'll do.\nChangePubKeyAuthRequest.ONCHAIN = type(\"ChangePubKeyAuthRequest.ONCHAIN\", (ChangePubKeyAuthRequest.ONCHAIN, ChangePubKeyAuthRequest,), {})  # type: ignore\nChangePubKeyAuthRequest.ETH_ECDSA = type(\"ChangePubKeyAuthRequest.ETH_ECDSA\", (ChangePubKeyAuthRequest.ETH_ECDSA, ChangePubKeyAuthRequest,), {})  # type: ignore\nChangePubKeyAuthRequest.ETH_CREATE2 = type(\"ChangePubKeyAuthRequest.ETH_CREATE2\", (ChangePubKeyAuthRequest.ETH_CREATE2, ChangePubKeyAuthRequest,), {})  # type: ignore\n\n\n\n\nclass _UniffiConverterTypeChangePubKeyAuthRequest(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return ChangePubKeyAuthRequest.ONCHAIN(\n            )\n        if variant == 2:\n            return ChangePubKeyAuthRequest.ETH_ECDSA(\n            )\n        if variant == 3:\n            return ChangePubKeyAuthRequest.ETH_CREATE2(\n                _UniffiConverterTypeCreate2Data.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    def write(value, buf):\n        if value.is_onchain():\n            buf.write_i32(1)\n        if value.is_eth_ecdsa():\n            buf.write_i32(2)\n        if value.is_eth_create2():\n            buf.write_i32(3)\n            _UniffiConverterTypeCreate2Data.write(value.data, buf)\n\n\n\n\n# EthSignerError\n# We want to define each variant as a nested class that's also a subclass,\n# which is tricky in Python.  To accomplish this we're going to create each\n# class separately, then manually add the child classes to the base class's\n# __dict__.  All of this happens in dummy class to avoid polluting the module\n# namespace.\nclass EthSignerError(Exception):\n    pass\n\n_UniffiTempEthSignerError = EthSignerError\n\nclass EthSignerError:  # type: ignore\n    class InvalidEthSigner(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.InvalidEthSigner({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.InvalidEthSigner = InvalidEthSigner # type: ignore\n    class MissingEthPrivateKey(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.MissingEthPrivateKey({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.MissingEthPrivateKey = MissingEthPrivateKey # type: ignore\n    class MissingEthSigner(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.MissingEthSigner({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.MissingEthSigner = MissingEthSigner # type: ignore\n    class SigningFailed(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.SigningFailed({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.SigningFailed = SigningFailed # type: ignore\n    class UnlockingFailed(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.UnlockingFailed({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.UnlockingFailed = UnlockingFailed # type: ignore\n    class InvalidRawTx(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.InvalidRawTx({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.InvalidRawTx = InvalidRawTx # type: ignore\n    class Eip712Failed(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.Eip712Failed({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.Eip712Failed = Eip712Failed # type: ignore\n    class NoSigningKey(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.NoSigningKey({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.NoSigningKey = NoSigningKey # type: ignore\n    class DefineAddress(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.DefineAddress({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.DefineAddress = DefineAddress # type: ignore\n    class RecoverAddress(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.RecoverAddress({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.RecoverAddress = RecoverAddress # type: ignore\n    class LengthMismatched(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.LengthMismatched({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.LengthMismatched = LengthMismatched # type: ignore\n    class CryptoError(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.CryptoError({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.CryptoError = CryptoError # type: ignore\n    class InvalidSignatureStr(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.InvalidSignatureStr({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.InvalidSignatureStr = InvalidSignatureStr # type: ignore\n    class CustomError(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.CustomError({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.CustomError = CustomError # type: ignore\n    class RpcSignError(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.RpcSignError({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.RpcSignError = RpcSignError # type: ignore\n\nEthSignerError = _UniffiTempEthSignerError # type: ignore\ndel _UniffiTempEthSignerError\n\n\nclass _UniffiConverterTypeEthSignerError(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return EthSignerError.InvalidEthSigner(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 2:\n            return EthSignerError.MissingEthPrivateKey(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 3:\n            return EthSignerError.MissingEthSigner(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 4:\n            return EthSignerError.SigningFailed(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 5:\n            return EthSignerError.UnlockingFailed(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 6:\n            return EthSignerError.InvalidRawTx(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 7:\n            return EthSignerError.Eip712Failed(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 8:\n            return EthSignerError.NoSigningKey(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 9:\n            return EthSignerError.DefineAddress(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 10:\n            return EthSignerError.RecoverAddress(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 11:\n            return EthSignerError.LengthMismatched(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 12:\n            return EthSignerError.CryptoError(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 13:\n            return EthSignerError.InvalidSignatureStr(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 14:\n            return EthSignerError.CustomError(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 15:\n            return EthSignerError.RpcSignError(\n                _UniffiConverterString.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    @staticmethod\n    def write(value, buf):\n        if isinstance(value, EthSignerError.InvalidEthSigner):\n            buf.write_i32(1)\n        if isinstance(value, EthSignerError.MissingEthPrivateKey):\n            buf.write_i32(2)\n        if isinstance(value, EthSignerError.MissingEthSigner):\n            buf.write_i32(3)\n        if isinstance(value, EthSignerError.SigningFailed):\n            buf.write_i32(4)\n        if isinstance(value, EthSignerError.UnlockingFailed):\n            buf.write_i32(5)\n        if isinstance(value, EthSignerError.InvalidRawTx):\n            buf.write_i32(6)\n        if isinstance(value, EthSignerError.Eip712Failed):\n            buf.write_i32(7)\n        if isinstance(value, EthSignerError.NoSigningKey):\n            buf.write_i32(8)\n        if isinstance(value, EthSignerError.DefineAddress):\n            buf.write_i32(9)\n        if isinstance(value, EthSignerError.RecoverAddress):\n            buf.write_i32(10)\n        if isinstance(value, EthSignerError.LengthMismatched):\n            buf.write_i32(11)\n        if isinstance(value, EthSignerError.CryptoError):\n            buf.write_i32(12)\n        if isinstance(value, EthSignerError.InvalidSignatureStr):\n            buf.write_i32(13)\n        if isinstance(value, EthSignerError.CustomError):\n            buf.write_i32(14)\n        if isinstance(value, EthSignerError.RpcSignError):\n            buf.write_i32(15)\n\n\n\n\n\nclass L1SignerType:\n    def __init__(self):\n        raise RuntimeError(\"L1SignerType cannot be instantiated directly\")\n\n    # Each enum variant is a nested class of the enum itself.\n    class ETH:\n        \n\n        @typing.no_type_check\n        def __init__(self,):\n            \n            pass\n            \n\n        def __str__(self):\n            return \"L1SignerType.ETH()\".format()\n\n        def __eq__(self, other):\n            if not other.is_eth():\n                return False\n            return True\n    class STARKNET:\n        chain_id: str;address: str;\n\n        @typing.no_type_check\n        def __init__(self,chain_id: str, address: str):\n            \n            self.chain_id = chain_id\n            self.address = address\n            \n\n        def __str__(self):\n            return \"L1SignerType.STARKNET(chain_id={}, address={})\".format(self.chain_id, self.address)\n\n        def __eq__(self, other):\n            if not other.is_starknet():\n                return False\n            if self.chain_id != other.chain_id:\n                return False\n            if self.address != other.address:\n                return False\n            return True\n    \n\n    # For each variant, we have an `is_NAME` method for easily checking\n    # whether an instance is that variant.\n    def is_eth(self) -> bool:\n        return isinstance(self, L1SignerType.ETH)\n    def is_starknet(self) -> bool:\n        return isinstance(self, L1SignerType.STARKNET)\n    \n\n# Now, a little trick - we make each nested variant class be a subclass of the main\n# enum class, so that method calls and instance checks etc will work intuitively.\n# We might be able to do this a little more neatly with a metaclass, but this'll do.\nL1SignerType.ETH = type(\"L1SignerType.ETH\", (L1SignerType.ETH, L1SignerType,), {})  # type: ignore\nL1SignerType.STARKNET = type(\"L1SignerType.STARKNET\", (L1SignerType.STARKNET, L1SignerType,), {})  # type: ignore\n\n\n\n\nclass _UniffiConverterTypeL1SignerType(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return L1SignerType.ETH(\n            )\n        if variant == 2:\n            return L1SignerType.STARKNET(\n                _UniffiConverterString.read(buf),\n                _UniffiConverterString.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    def write(value, buf):\n        if value.is_eth():\n            buf.write_i32(1)\n        if value.is_starknet():\n            buf.write_i32(2)\n            _UniffiConverterString.write(value.chain_id, buf)\n            _UniffiConverterString.write(value.address, buf)\n\n\n\n\n\n\n\nclass L1Type(enum.Enum):\n    ETH = 1\n    STARKNET = 2\n    \n\n\nclass _UniffiConverterTypeL1Type(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return L1Type.ETH\n        if variant == 2:\n            return L1Type.STARKNET\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    def write(value, buf):\n        if value == L1Type.ETH:\n            buf.write_i32(1)\n        if value == L1Type.STARKNET:\n            buf.write_i32(2)\n\n\n\n\n\n\n\nclass Parameter:\n    def __init__(self):\n        raise RuntimeError(\"Parameter cannot be instantiated directly\")\n\n    # Each enum variant is a nested class of the enum itself.\n    class FEE_ACCOUNT:\n        account_id: \"AccountId\";\n\n        @typing.no_type_check\n        def __init__(self,account_id: \"AccountId\"):\n            \n            self.account_id = account_id\n            \n\n        def __str__(self):\n            return \"Parameter.FEE_ACCOUNT(account_id={})\".format(self.account_id)\n\n        def __eq__(self, other):\n            if not other.is_fee_account():\n                return False\n            if self.account_id != other.account_id:\n                return False\n            return True\n    class INSURANCE_FUND_ACCOUNT:\n        account_id: \"AccountId\";\n\n        @typing.no_type_check\n        def __init__(self,account_id: \"AccountId\"):\n            \n            self.account_id = account_id\n            \n\n        def __str__(self):\n            return \"Parameter.INSURANCE_FUND_ACCOUNT(account_id={})\".format(self.account_id)\n\n        def __eq__(self, other):\n            if not other.is_insurance_fund_account():\n                return False\n            if self.account_id != other.account_id:\n                return False\n            return True\n    class MARGIN_INFO:\n        margin_id: \"MarginId\";token_id: \"TokenId\";ratio: \"int\";\n\n        @typing.no_type_check\n        def __init__(self,margin_id: \"MarginId\", token_id: \"TokenId\", ratio: \"int\"):\n            \n            self.margin_id = margin_id\n            self.token_id = token_id\n            self.ratio = ratio\n            \n\n        def __str__(self):\n            return \"Parameter.MARGIN_INFO(margin_id={}, token_id={}, ratio={})\".format(self.margin_id, self.token_id, self.ratio)\n\n        def __eq__(self, other):\n            if not other.is_margin_info():\n                return False\n            if self.margin_id != other.margin_id:\n                return False\n            if self.token_id != other.token_id:\n                return False\n            if self.ratio != other.ratio:\n                return False\n            return True\n    class FUNDING_INFOS:\n        infos: \"typing.List[FundingInfo]\";\n\n        @typing.no_type_check\n        def __init__(self,infos: \"typing.List[FundingInfo]\"):\n            \n            self.infos = infos\n            \n\n        def __str__(self):\n            return \"Parameter.FUNDING_INFOS(infos={})\".format(self.infos)\n\n        def __eq__(self, other):\n            if not other.is_funding_infos():\n                return False\n            if self.infos != other.infos:\n                return False\n            return True\n    class CONTRACT_INFO:\n        pair_id: \"PairId\";symbol: str;initial_margin_rate: \"int\";maintenance_margin_rate: \"int\";\n\n        @typing.no_type_check\n        def __init__(self,pair_id: \"PairId\", symbol: str, initial_margin_rate: \"int\", maintenance_margin_rate: \"int\"):\n            \n            self.pair_id = pair_id\n            self.symbol = symbol\n            self.initial_margin_rate = initial_margin_rate\n            self.maintenance_margin_rate = maintenance_margin_rate\n            \n\n        def __str__(self):\n            return \"Parameter.CONTRACT_INFO(pair_id={}, symbol={}, initial_margin_rate={}, maintenance_margin_rate={})\".format(self.pair_id, self.symbol, self.initial_margin_rate, self.maintenance_margin_rate)\n\n        def __eq__(self, other):\n            if not other.is_contract_info():\n                return False\n            if self.pair_id != other.pair_id:\n                return False\n            if self.symbol != other.symbol:\n                return False\n            if self.initial_margin_rate != other.initial_margin_rate:\n                return False\n            if self.maintenance_margin_rate != other.maintenance_margin_rate:\n                return False\n            return True\n    \n\n    # For each variant, we have an `is_NAME` method for easily checking\n    # whether an instance is that variant.\n    def is_fee_account(self) -> bool:\n        return isinstance(self, Parameter.FEE_ACCOUNT)\n    def is_insurance_fund_account(self) -> bool:\n        return isinstance(self, Parameter.INSURANCE_FUND_ACCOUNT)\n    def is_margin_info(self) -> bool:\n        return isinstance(self, Parameter.MARGIN_INFO)\n    def is_funding_infos(self) -> bool:\n        return isinstance(self, Parameter.FUNDING_INFOS)\n    def is_contract_info(self) -> bool:\n        return isinstance(self, Parameter.CONTRACT_INFO)\n    \n\n# Now, a little trick - we make each nested variant class be a subclass of the main\n# enum class, so that method calls and instance checks etc will work intuitively.\n# We might be able to do this a little more neatly with a metaclass, but this'll do.\nParameter.FEE_ACCOUNT = type(\"Parameter.FEE_ACCOUNT\", (Parameter.FEE_ACCOUNT, Parameter,), {})  # type: ignore\nParameter.INSURANCE_FUND_ACCOUNT = type(\"Parameter.INSURANCE_FUND_ACCOUNT\", (Parameter.INSURANCE_FUND_ACCOUNT, Parameter,), {})  # type: ignore\nParameter.MARGIN_INFO = type(\"Parameter.MARGIN_INFO\", (Parameter.MARGIN_INFO, Parameter,), {})  # type: ignore\nParameter.FUNDING_INFOS = type(\"Parameter.FUNDING_INFOS\", (Parameter.FUNDING_INFOS, Parameter,), {})  # type: ignore\nParameter.CONTRACT_INFO = type(\"Parameter.CONTRACT_INFO\", (Parameter.CONTRACT_INFO, Parameter,), {})  # type: ignore\n\n\n\n\nclass _UniffiConverterTypeParameter(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return Parameter.FEE_ACCOUNT(\n                _UniffiConverterTypeAccountId.read(buf),\n            )\n        if variant == 2:\n            return Parameter.INSURANCE_FUND_ACCOUNT(\n                _UniffiConverterTypeAccountId.read(buf),\n            )\n        if variant == 3:\n            return Parameter.MARGIN_INFO(\n                _UniffiConverterTypeMarginId.read(buf),\n                _UniffiConverterTypeTokenId.read(buf),\n                _UniffiConverterUInt8.read(buf),\n            )\n        if variant == 4:\n            return Parameter.FUNDING_INFOS(\n                _UniffiConverterSequenceTypeFundingInfo.read(buf),\n            )\n        if variant == 5:\n            return Parameter.CONTRACT_INFO(\n                _UniffiConverterTypePairId.read(buf),\n                _UniffiConverterString.read(buf),\n                _UniffiConverterUInt16.read(buf),\n                _UniffiConverterUInt16.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    def write(value, buf):\n        if value.is_fee_account():\n            buf.write_i32(1)\n            _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        if value.is_insurance_fund_account():\n            buf.write_i32(2)\n            _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        if value.is_margin_info():\n            buf.write_i32(3)\n            _UniffiConverterTypeMarginId.write(value.margin_id, buf)\n            _UniffiConverterTypeTokenId.write(value.token_id, buf)\n            _UniffiConverterUInt8.write(value.ratio, buf)\n        if value.is_funding_infos():\n            buf.write_i32(4)\n            _UniffiConverterSequenceTypeFundingInfo.write(value.infos, buf)\n        if value.is_contract_info():\n            buf.write_i32(5)\n            _UniffiConverterTypePairId.write(value.pair_id, buf)\n            _UniffiConverterString.write(value.symbol, buf)\n            _UniffiConverterUInt16.write(value.initial_margin_rate, buf)\n            _UniffiConverterUInt16.write(value.maintenance_margin_rate, buf)\n\n\n\n\n# SignError\n# We want to define each variant as a nested class that's also a subclass,\n# which is tricky in Python.  To accomplish this we're going to create each\n# class separately, then manually add the child classes to the base class's\n# __dict__.  All of this happens in dummy class to avoid polluting the module\n# namespace.\nclass SignError(Exception):\n    pass\n\n_UniffiTempSignError = SignError\n\nclass SignError:  # type: ignore\n    class EthSigningError(_UniffiTempSignError):\n        def __repr__(self):\n            return \"SignError.EthSigningError({})\".format(repr(str(self)))\n    _UniffiTempSignError.EthSigningError = EthSigningError # type: ignore\n    class ZkSigningError(_UniffiTempSignError):\n        def __repr__(self):\n            return \"SignError.ZkSigningError({})\".format(repr(str(self)))\n    _UniffiTempSignError.ZkSigningError = ZkSigningError # type: ignore\n    class StarkSigningError(_UniffiTempSignError):\n        def __repr__(self):\n            return \"SignError.StarkSigningError({})\".format(repr(str(self)))\n    _UniffiTempSignError.StarkSigningError = StarkSigningError # type: ignore\n    class IncorrectTx(_UniffiTempSignError):\n        def __repr__(self):\n            return \"SignError.IncorrectTx({})\".format(repr(str(self)))\n    _UniffiTempSignError.IncorrectTx = IncorrectTx # type: ignore\n\nSignError = _UniffiTempSignError # type: ignore\ndel _UniffiTempSignError\n\n\nclass _UniffiConverterTypeSignError(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return SignError.EthSigningError(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 2:\n            return SignError.ZkSigningError(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 3:\n            return SignError.StarkSigningError(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 4:\n            return SignError.IncorrectTx(\n                _UniffiConverterString.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    @staticmethod\n    def write(value, buf):\n        if isinstance(value, SignError.EthSigningError):\n            buf.write_i32(1)\n        if isinstance(value, SignError.ZkSigningError):\n            buf.write_i32(2)\n        if isinstance(value, SignError.StarkSigningError):\n            buf.write_i32(3)\n        if isinstance(value, SignError.IncorrectTx):\n            buf.write_i32(4)\n\n\n# StarkSignerError\n# We want to define each variant as a nested class that's also a subclass,\n# which is tricky in Python.  To accomplish this we're going to create each\n# class separately, then manually add the child classes to the base class's\n# __dict__.  All of this happens in dummy class to avoid polluting the module\n# namespace.\nclass StarkSignerError(Exception):\n    pass\n\n_UniffiTempStarkSignerError = StarkSignerError\n\nclass StarkSignerError:  # type: ignore\n    class InvalidStarknetSigner(_UniffiTempStarkSignerError):\n        def __repr__(self):\n            return \"StarkSignerError.InvalidStarknetSigner({})\".format(repr(str(self)))\n    _UniffiTempStarkSignerError.InvalidStarknetSigner = InvalidStarknetSigner # type: ignore\n    class InvalidSignature(_UniffiTempStarkSignerError):\n        def __repr__(self):\n            return \"StarkSignerError.InvalidSignature({})\".format(repr(str(self)))\n    _UniffiTempStarkSignerError.InvalidSignature = InvalidSignature # type: ignore\n    class InvalidPrivKey(_UniffiTempStarkSignerError):\n        def __repr__(self):\n            return \"StarkSignerError.InvalidPrivKey({})\".format(repr(str(self)))\n    _UniffiTempStarkSignerError.InvalidPrivKey = InvalidPrivKey # type: ignore\n    class SignError(_UniffiTempStarkSignerError):\n        def __repr__(self):\n            return \"StarkSignerError.SignError({})\".format(repr(str(self)))\n    _UniffiTempStarkSignerError.SignError = SignError # type: ignore\n    class RpcSignError(_UniffiTempStarkSignerError):\n        def __repr__(self):\n            return \"StarkSignerError.RpcSignError({})\".format(repr(str(self)))\n    _UniffiTempStarkSignerError.RpcSignError = RpcSignError # type: ignore\n\nStarkSignerError = _UniffiTempStarkSignerError # type: ignore\ndel _UniffiTempStarkSignerError\n\n\nclass _UniffiConverterTypeStarkSignerError(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return StarkSignerError.InvalidStarknetSigner(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 2:\n            return StarkSignerError.InvalidSignature(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 3:\n            return StarkSignerError.InvalidPrivKey(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 4:\n            return StarkSignerError.SignError(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 5:\n            return StarkSignerError.RpcSignError(\n                _UniffiConverterString.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    @staticmethod\n    def write(value, buf):\n        if isinstance(value, StarkSignerError.InvalidStarknetSigner):\n            buf.write_i32(1)\n        if isinstance(value, StarkSignerError.InvalidSignature):\n            buf.write_i32(2)\n        if isinstance(value, StarkSignerError.InvalidPrivKey):\n            buf.write_i32(3)\n        if isinstance(value, StarkSignerError.SignError):\n            buf.write_i32(4)\n        if isinstance(value, StarkSignerError.RpcSignError):\n            buf.write_i32(5)\n\n\n# TypeError\n# We want to define each variant as a nested class that's also a subclass,\n# which is tricky in Python.  To accomplish this we're going to create each\n# class separately, then manually add the child classes to the base class's\n# __dict__.  All of this happens in dummy class to avoid polluting the module\n# namespace.\nclass TypeError(Exception):\n    pass\n\n_UniffiTempTypeError = TypeError\n\nclass TypeError:  # type: ignore\n    class InvalidAddress(_UniffiTempTypeError):\n        def __repr__(self):\n            return \"TypeError.InvalidAddress({})\".format(repr(str(self)))\n    _UniffiTempTypeError.InvalidAddress = InvalidAddress # type: ignore\n    class InvalidTxHash(_UniffiTempTypeError):\n        def __repr__(self):\n            return \"TypeError.InvalidTxHash({})\".format(repr(str(self)))\n    _UniffiTempTypeError.InvalidTxHash = InvalidTxHash # type: ignore\n    class NotStartWithZerox(_UniffiTempTypeError):\n        def __repr__(self):\n            return \"TypeError.NotStartWithZerox({})\".format(repr(str(self)))\n    _UniffiTempTypeError.NotStartWithZerox = NotStartWithZerox # type: ignore\n    class SizeMismatch(_UniffiTempTypeError):\n        def __repr__(self):\n            return \"TypeError.SizeMismatch({})\".format(repr(str(self)))\n    _UniffiTempTypeError.SizeMismatch = SizeMismatch # type: ignore\n    class DecodeFromHexErr(_UniffiTempTypeError):\n        def __repr__(self):\n            return \"TypeError.DecodeFromHexErr({})\".format(repr(str(self)))\n    _UniffiTempTypeError.DecodeFromHexErr = DecodeFromHexErr # type: ignore\n    class TooBigInteger(_UniffiTempTypeError):\n        def __repr__(self):\n            return \"TypeError.TooBigInteger({})\".format(repr(str(self)))\n    _UniffiTempTypeError.TooBigInteger = TooBigInteger # type: ignore\n    class InvalidBigIntStr(_UniffiTempTypeError):\n        def __repr__(self):\n            return \"TypeError.InvalidBigIntStr({})\".format(repr(str(self)))\n    _UniffiTempTypeError.InvalidBigIntStr = InvalidBigIntStr # type: ignore\n\nTypeError = _UniffiTempTypeError # type: ignore\ndel _UniffiTempTypeError\n\n\nclass _UniffiConverterTypeTypeError(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return TypeError.InvalidAddress(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 2:\n            return TypeError.InvalidTxHash(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 3:\n            return TypeError.NotStartWithZerox(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 4:\n            return TypeError.SizeMismatch(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 5:\n            return TypeError.DecodeFromHexErr(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 6:\n            return TypeError.TooBigInteger(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 7:\n            return TypeError.InvalidBigIntStr(\n                _UniffiConverterString.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    @staticmethod\n    def write(value, buf):\n        if isinstance(value, TypeError.InvalidAddress):\n            buf.write_i32(1)\n        if isinstance(value, TypeError.InvalidTxHash):\n            buf.write_i32(2)\n        if isinstance(value, TypeError.NotStartWithZerox):\n            buf.write_i32(3)\n        if isinstance(value, TypeError.SizeMismatch):\n            buf.write_i32(4)\n        if isinstance(value, TypeError.DecodeFromHexErr):\n            buf.write_i32(5)\n        if isinstance(value, TypeError.TooBigInteger):\n            buf.write_i32(6)\n        if isinstance(value, TypeError.InvalidBigIntStr):\n            buf.write_i32(7)\n\n\n\n\n\nclass TypedDataMessage:\n    def __init__(self):\n        raise RuntimeError(\"TypedDataMessage cannot be instantiated directly\")\n\n    # Each enum variant is a nested class of the enum itself.\n    class CREATE_L2_KEY:\n        message: \"Message\";\n\n        @typing.no_type_check\n        def __init__(self,message: \"Message\"):\n            \n            self.message = message\n            \n\n        def __str__(self):\n            return \"TypedDataMessage.CREATE_L2_KEY(message={})\".format(self.message)\n\n        def __eq__(self, other):\n            if not other.is_create_l2_key():\n                return False\n            if self.message != other.message:\n                return False\n            return True\n    class TRANSACTION:\n        message: \"TxMessage\";\n\n        @typing.no_type_check\n        def __init__(self,message: \"TxMessage\"):\n            \n            self.message = message\n            \n\n        def __str__(self):\n            return \"TypedDataMessage.TRANSACTION(message={})\".format(self.message)\n\n        def __eq__(self, other):\n            if not other.is_transaction():\n                return False\n            if self.message != other.message:\n                return False\n            return True\n    \n\n    # For each variant, we have an `is_NAME` method for easily checking\n    # whether an instance is that variant.\n    def is_create_l2_key(self) -> bool:\n        return isinstance(self, TypedDataMessage.CREATE_L2_KEY)\n    def is_transaction(self) -> bool:\n        return isinstance(self, TypedDataMessage.TRANSACTION)\n    \n\n# Now, a little trick - we make each nested variant class be a subclass of the main\n# enum class, so that method calls and instance checks etc will work intuitively.\n# We might be able to do this a little more neatly with a metaclass, but this'll do.\nTypedDataMessage.CREATE_L2_KEY = type(\"TypedDataMessage.CREATE_L2_KEY\", (TypedDataMessage.CREATE_L2_KEY, TypedDataMessage,), {})  # type: ignore\nTypedDataMessage.TRANSACTION = type(\"TypedDataMessage.TRANSACTION\", (TypedDataMessage.TRANSACTION, TypedDataMessage,), {})  # type: ignore\n\n\n\n\nclass _UniffiConverterTypeTypedDataMessage(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return TypedDataMessage.CREATE_L2_KEY(\n                _UniffiConverterTypeMessage.read(buf),\n            )\n        if variant == 2:\n            return TypedDataMessage.TRANSACTION(\n                _UniffiConverterTypeTxMessage.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    def write(value, buf):\n        if value.is_create_l2_key():\n            buf.write_i32(1)\n            _UniffiConverterTypeMessage.write(value.message, buf)\n        if value.is_transaction():\n            buf.write_i32(2)\n            _UniffiConverterTypeTxMessage.write(value.message, buf)\n\n\n\n\n# ZkSignerError\n# We want to define each variant as a nested class that's also a subclass,\n# which is tricky in Python.  To accomplish this we're going to create each\n# class separately, then manually add the child classes to the base class's\n# __dict__.  All of this happens in dummy class to avoid polluting the module\n# namespace.\nclass ZkSignerError(Exception):\n    pass\n\n_UniffiTempZkSignerError = ZkSignerError\n\nclass ZkSignerError:  # type: ignore\n    class CustomError(_UniffiTempZkSignerError):\n        def __repr__(self):\n            return \"ZkSignerError.CustomError({})\".format(repr(str(self)))\n    _UniffiTempZkSignerError.CustomError = CustomError # type: ignore\n    class InvalidSignature(_UniffiTempZkSignerError):\n        def __repr__(self):\n            return \"ZkSignerError.InvalidSignature({})\".format(repr(str(self)))\n    _UniffiTempZkSignerError.InvalidSignature = InvalidSignature # type: ignore\n    class InvalidPrivKey(_UniffiTempZkSignerError):\n        def __repr__(self):\n            return \"ZkSignerError.InvalidPrivKey({})\".format(repr(str(self)))\n    _UniffiTempZkSignerError.InvalidPrivKey = InvalidPrivKey # type: ignore\n    class InvalidSeed(_UniffiTempZkSignerError):\n        def __repr__(self):\n            return \"ZkSignerError.InvalidSeed({})\".format(repr(str(self)))\n    _UniffiTempZkSignerError.InvalidSeed = InvalidSeed # type: ignore\n    class InvalidPubkey(_UniffiTempZkSignerError):\n        def __repr__(self):\n            return \"ZkSignerError.InvalidPubkey({})\".format(repr(str(self)))\n    _UniffiTempZkSignerError.InvalidPubkey = InvalidPubkey # type: ignore\n    class InvalidPubkeyHash(_UniffiTempZkSignerError):\n        def __repr__(self):\n            return \"ZkSignerError.InvalidPubkeyHash({})\".format(repr(str(self)))\n    _UniffiTempZkSignerError.InvalidPubkeyHash = InvalidPubkeyHash # type: ignore\n    class EthSignerError(_UniffiTempZkSignerError):\n        def __repr__(self):\n            return \"ZkSignerError.EthSignerError({})\".format(repr(str(self)))\n    _UniffiTempZkSignerError.EthSignerError = EthSignerError # type: ignore\n    class StarkSignerError(_UniffiTempZkSignerError):\n        def __repr__(self):\n            return \"ZkSignerError.StarkSignerError({})\".format(repr(str(self)))\n    _UniffiTempZkSignerError.StarkSignerError = StarkSignerError # type: ignore\n\nZkSignerError = _UniffiTempZkSignerError # type: ignore\ndel _UniffiTempZkSignerError\n\n\nclass _UniffiConverterTypeZkSignerError(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return ZkSignerError.CustomError(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 2:\n            return ZkSignerError.InvalidSignature(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 3:\n            return ZkSignerError.InvalidPrivKey(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 4:\n            return ZkSignerError.InvalidSeed(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 5:\n            return ZkSignerError.InvalidPubkey(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 6:\n            return ZkSignerError.InvalidPubkeyHash(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 7:\n            return ZkSignerError.EthSignerError(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 8:\n            return ZkSignerError.StarkSignerError(\n                _UniffiConverterString.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    @staticmethod\n    def write(value, buf):\n        if isinstance(value, ZkSignerError.CustomError):\n            buf.write_i32(1)\n        if isinstance(value, ZkSignerError.InvalidSignature):\n            buf.write_i32(2)\n        if isinstance(value, ZkSignerError.InvalidPrivKey):\n            buf.write_i32(3)\n        if isinstance(value, ZkSignerError.InvalidSeed):\n            buf.write_i32(4)\n        if isinstance(value, ZkSignerError.InvalidPubkey):\n            buf.write_i32(5)\n        if isinstance(value, ZkSignerError.InvalidPubkeyHash):\n            buf.write_i32(6)\n        if isinstance(value, ZkSignerError.EthSignerError):\n            buf.write_i32(7)\n        if isinstance(value, ZkSignerError.StarkSignerError):\n            buf.write_i32(8)\n\n\n\nclass _UniffiConverterOptionalString(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        if value is None:\n            buf.write_u8(0)\n            return\n\n        buf.write_u8(1)\n        _UniffiConverterString.write(value, buf)\n\n    @classmethod\n    def read(cls, buf):\n        flag = buf.read_u8()\n        if flag == 0:\n            return None\n        elif flag == 1:\n            return _UniffiConverterString.read(buf)\n        else:\n            raise InternalError(\"Unexpected flag byte for optional type\")\n\n\n\nclass _UniffiConverterOptionalTypeZkLinkSignature(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        if value is None:\n            buf.write_u8(0)\n            return\n\n        buf.write_u8(1)\n        _UniffiConverterTypeZkLinkSignature.write(value, buf)\n\n    @classmethod\n    def read(cls, buf):\n        flag = buf.read_u8()\n        if flag == 0:\n            return None\n        elif flag == 1:\n            return _UniffiConverterTypeZkLinkSignature.read(buf)\n        else:\n            raise InternalError(\"Unexpected flag byte for optional type\")\n\n\n\nclass _UniffiConverterOptionalSequenceUInt8(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        if value is None:\n            buf.write_u8(0)\n            return\n\n        buf.write_u8(1)\n        _UniffiConverterSequenceUInt8.write(value, buf)\n\n    @classmethod\n    def read(cls, buf):\n        flag = buf.read_u8()\n        if flag == 0:\n            return None\n        elif flag == 1:\n            return _UniffiConverterSequenceUInt8.read(buf)\n        else:\n            raise InternalError(\"Unexpected flag byte for optional type\")\n\n\n\nclass _UniffiConverterOptionalTypeH256(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        if value is None:\n            buf.write_u8(0)\n            return\n\n        buf.write_u8(1)\n        _UniffiConverterTypeH256.write(value, buf)\n\n    @classmethod\n    def read(cls, buf):\n        flag = buf.read_u8()\n        if flag == 0:\n            return None\n        elif flag == 1:\n            return _UniffiConverterTypeH256.read(buf)\n        else:\n            raise InternalError(\"Unexpected flag byte for optional type\")\n\n\n\nclass _UniffiConverterOptionalTypePackedEthSignature(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        if value is None:\n            buf.write_u8(0)\n            return\n\n        buf.write_u8(1)\n        _UniffiConverterTypePackedEthSignature.write(value, buf)\n\n    @classmethod\n    def read(cls, buf):\n        flag = buf.read_u8()\n        if flag == 0:\n            return None\n        elif flag == 1:\n            return _UniffiConverterTypePackedEthSignature.read(buf)\n        else:\n            raise InternalError(\"Unexpected flag byte for optional type\")\n\n\n\nclass _UniffiConverterOptionalTypeTxLayer1Signature(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        if value is None:\n            buf.write_u8(0)\n            return\n\n        buf.write_u8(1)\n        _UniffiConverterTypeTxLayer1Signature.write(value, buf)\n\n    @classmethod\n    def read(cls, buf):\n        flag = buf.read_u8()\n        if flag == 0:\n            return None\n        elif flag == 1:\n            return _UniffiConverterTypeTxLayer1Signature.read(buf)\n        else:\n            raise InternalError(\"Unexpected flag byte for optional type\")\n\n\n\nclass _UniffiConverterSequenceUInt8(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        items = len(value)\n        buf.write_i32(items)\n        for item in value:\n            _UniffiConverterUInt8.write(item, buf)\n\n    @classmethod\n    def read(cls, buf):\n        count = buf.read_i32()\n        if count < 0:\n            raise InternalError(\"Unexpected negative sequence length\")\n\n        return [\n            _UniffiConverterUInt8.read(buf) for i in range(count)\n        ]\n\n\n\nclass _UniffiConverterSequenceTypeContract(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        items = len(value)\n        buf.write_i32(items)\n        for item in value:\n            _UniffiConverterTypeContract.write(item, buf)\n\n    @classmethod\n    def read(cls, buf):\n        count = buf.read_i32()\n        if count < 0:\n            raise InternalError(\"Unexpected negative sequence length\")\n\n        return [\n            _UniffiConverterTypeContract.read(buf) for i in range(count)\n        ]\n\n\n\nclass _UniffiConverterSequenceTypeContractPrice(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        items = len(value)\n        buf.write_i32(items)\n        for item in value:\n            _UniffiConverterTypeContractPrice.write(item, buf)\n\n    @classmethod\n    def read(cls, buf):\n        count = buf.read_i32()\n        if count < 0:\n            raise InternalError(\"Unexpected negative sequence length\")\n\n        return [\n            _UniffiConverterTypeContractPrice.read(buf) for i in range(count)\n        ]\n\n\n\nclass _UniffiConverterSequenceTypeFundingInfo(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        items = len(value)\n        buf.write_i32(items)\n        for item in value:\n            _UniffiConverterTypeFundingInfo.write(item, buf)\n\n    @classmethod\n    def read(cls, buf):\n        count = buf.read_i32()\n        if count < 0:\n            raise InternalError(\"Unexpected negative sequence length\")\n\n        return [\n            _UniffiConverterTypeFundingInfo.read(buf) for i in range(count)\n        ]\n\n\n\nclass _UniffiConverterSequenceTypeSpotPriceInfo(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        items = len(value)\n        buf.write_i32(items)\n        for item in value:\n            _UniffiConverterTypeSpotPriceInfo.write(item, buf)\n\n    @classmethod\n    def read(cls, buf):\n        count = buf.read_i32()\n        if count < 0:\n            raise InternalError(\"Unexpected negative sequence length\")\n\n        return [\n            _UniffiConverterTypeSpotPriceInfo.read(buf) for i in range(count)\n        ]\n\n\n\nclass _UniffiConverterSequenceTypeAccountId(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        items = len(value)\n        buf.write_i32(items)\n        for item in value:\n            _UniffiConverterTypeAccountId.write(item, buf)\n\n    @classmethod\n    def read(cls, buf):\n        count = buf.read_i32()\n        if count < 0:\n            raise InternalError(\"Unexpected negative sequence length\")\n\n        return [\n            _UniffiConverterTypeAccountId.read(buf) for i in range(count)\n        ]\n\n\n# Type alias\nAccountId = int\n\nclass _UniffiConverterTypeAccountId:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt32.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt32.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt32.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt32.lower(value)\n\n\n# Type alias\nAddress = str\n\nclass _UniffiConverterTypeAddress:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nBigUint = str\n\nclass _UniffiConverterTypeBigUint:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nBlockNumber = int\n\nclass _UniffiConverterTypeBlockNumber:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt32.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt32.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt32.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt32.lower(value)\n\n\n# Type alias\nChainId = int\n\nclass _UniffiConverterTypeChainId:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt8.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt8.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt8.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt8.lower(value)\n\n\n# Type alias\nEthBlockId = int\n\nclass _UniffiConverterTypeEthBlockId:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt64.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt64.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt64.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt64.lower(value)\n\n\n# Type alias\nH256 = str\n\nclass _UniffiConverterTypeH256:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nMarginId = int\n\nclass _UniffiConverterTypeMarginId:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt8.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt8.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt8.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt8.lower(value)\n\n\n# Type alias\nNonce = int\n\nclass _UniffiConverterTypeNonce:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt32.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt32.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt32.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt32.lower(value)\n\n\n# Type alias\nPackedEthSignature = str\n\nclass _UniffiConverterTypePackedEthSignature:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nPackedPublicKey = str\n\nclass _UniffiConverterTypePackedPublicKey:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nPackedSignature = str\n\nclass _UniffiConverterTypePackedSignature:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nPairId = int\n\nclass _UniffiConverterTypePairId:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt16.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt16.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt16.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt16.lower(value)\n\n\n# Type alias\nPriorityOpId = int\n\nclass _UniffiConverterTypePriorityOpId:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt64.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt64.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt64.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt64.lower(value)\n\n\n# Type alias\nPubKeyHash = str\n\nclass _UniffiConverterTypePubKeyHash:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nSlotId = int\n\nclass _UniffiConverterTypeSlotId:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt32.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt32.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt32.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt32.lower(value)\n\n\n# Type alias\nStarkEip712Signature = str\n\nclass _UniffiConverterTypeStarkEip712Signature:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nSubAccountId = int\n\nclass _UniffiConverterTypeSubAccountId:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt8.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt8.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt8.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt8.lower(value)\n\n\n# Type alias\nTimeStamp = int\n\nclass _UniffiConverterTypeTimeStamp:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt32.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt32.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt32.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt32.lower(value)\n\n\n# Type alias\nTokenId = int\n\nclass _UniffiConverterTypeTokenId:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt32.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt32.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt32.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt32.lower(value)\n\n\n# Type alias\nTxHash = str\n\nclass _UniffiConverterTypeTxHash:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nTxLayer1Signature = str\n\nclass _UniffiConverterTypeTxLayer1Signature:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nZkLinkAddress = str\n\nclass _UniffiConverterTypeZkLinkAddress:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nZkLinkTx = str\n\nclass _UniffiConverterTypeZkLinkTx:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\ndef create_signed_change_pubkey(zklink_signer: \"ZkLinkSigner\",tx: \"ChangePubKey\",eth_auth_data: \"ChangePubKeyAuthData\") -> \"ChangePubKey\":\n    \n    \n    \n    return _UniffiConverterTypeChangePubKey.lift(_rust_call_with_error(_UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_func_create_signed_change_pubkey,\n        _UniffiConverterTypeZkLinkSigner.lower(zklink_signer),\n        _UniffiConverterTypeChangePubKey.lower(tx),\n        _UniffiConverterTypeChangePubKeyAuthData.lower(eth_auth_data)))\n\n\ndef eth_signature_of_change_pubkey(tx: \"ChangePubKey\",eth_signer: \"EthSigner\") -> \"PackedEthSignature\":\n    \n    \n    return _UniffiConverterTypePackedEthSignature.lift(_rust_call_with_error(_UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_func_eth_signature_of_change_pubkey,\n        _UniffiConverterTypeChangePubKey.lower(tx),\n        _UniffiConverterTypeEthSigner.lower(eth_signer)))\n\n\ndef get_public_key_hash(public_key: \"PackedPublicKey\") -> \"PubKeyHash\":\n    \n    return _UniffiConverterTypePubKeyHash.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_get_public_key_hash,\n        _UniffiConverterTypePackedPublicKey.lower(public_key)))\n\n\ndef verify_musig(signature: \"ZkLinkSignature\",msg: \"typing.List[int]\"):\n    \n    \n    return _UniffiConverterBool.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_verify_musig,\n        _UniffiConverterTypeZkLinkSignature.lower(signature),\n        _UniffiConverterSequenceUInt8.lower(msg)))\n\n\ndef zklink_main_net_url():\n    return _UniffiConverterString.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_zklink_main_net_url,))\n\n\ndef zklink_test_net_url():\n    return _UniffiConverterString.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_zklink_test_net_url,))\n\n\n__all__ = [\n    \"InternalError\",\n    \"ChangePubKeyAuthData\",\n    \"ChangePubKeyAuthRequest\",\n    \"EthSignerError\",\n    \"L1SignerType\",\n    \"L1Type\",\n    \"Parameter\",\n    \"SignError\",\n    \"StarkSignerError\",\n    \"TypeError\",\n    \"TypedDataMessage\",\n    \"ZkSignerError\",\n    \"AutoDeleveragingBuilder\",\n    \"ChangePubKeyBuilder\",\n    \"ContractBuilder\",\n    \"ContractMatchingBuilder\",\n    \"ContractPrice\",\n    \"Create2Data\",\n    \"DepositBuilder\",\n    \"ForcedExitBuilder\",\n    \"FullExitBuilder\",\n    \"FundingBuilder\",\n    \"FundingInfo\",\n    \"LiquidationBuilder\",\n    \"Message\",\n    \"OraclePrices\",\n    \"OrderMatchingBuilder\",\n    \"SpotPriceInfo\",\n    \"TransferBuilder\",\n    \"TxMessage\",\n    \"TxSignature\",\n    \"UpdateGlobalVarBuilder\",\n    \"WithdrawBuilder\",\n    \"ZkLinkSignature\",\n    \"create_signed_change_pubkey\",\n    \"eth_signature_of_change_pubkey\",\n    \"get_public_key_hash\",\n    \"verify_musig\",\n    \"zklink_main_net_url\",\n    \"zklink_test_net_url\",\n    \"AutoDeleveraging\",\n    \"ChangePubKey\",\n    \"Contract\",\n    \"ContractMatching\",\n    \"Deposit\",\n    \"EthSigner\",\n    \"ForcedExit\",\n    \"FullExit\",\n    \"Funding\",\n    \"Liquidation\",\n    \"Order\",\n    \"OrderMatching\",\n    \"Signer\",\n    \"StarkSigner\",\n    \"Transfer\",\n    \"TypedData\",\n    \"UpdateGlobalVar\",\n    \"Withdraw\",\n    \"ZkLinkSigner\",\n]\n\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Apex/omni_files/zklink_sdk-pc.py",
    "content": "# This file was autogenerated by some hot garbage in the `uniffi` crate.\n# Trust me, you don't want to mess with it!\n\n# Common helper code.\n#\n# Ideally this would live in a separate .py file where it can be unittested etc\n# in isolation, and perhaps even published as a re-useable package.\n#\n# However, it's important that the details of how this helper code works (e.g. the\n# way that different builtin types are passed across the FFI) exactly match what's\n# expected by the rust code on the other side of the interface. In practice right\n# now that means coming from the exact some version of `uniffi` that was used to\n# compile the rust component. The easiest way to ensure this is to bundle the Python\n# helpers directly inline like we're doing here.\n\nimport os\nimport sys\nimport ctypes\nimport enum\nimport struct\nimport contextlib\nimport datetime\nimport typing\nimport platform\nimport threading\n\n# Used for default argument values\n_DEFAULT = object()\n\n\nclass _UniffiRustBuffer(ctypes.Structure):\n    _fields_ = [\n        (\"capacity\", ctypes.c_int32),\n        (\"len\", ctypes.c_int32),\n        (\"data\", ctypes.POINTER(ctypes.c_char)),\n    ]\n\n    @staticmethod\n    def alloc(size):\n        return _rust_call(_UniffiLib.ffi_zklink_sdk_rustbuffer_alloc, size)\n\n    @staticmethod\n    def reserve(rbuf, additional):\n        return _rust_call(_UniffiLib.ffi_zklink_sdk_rustbuffer_reserve, rbuf, additional)\n\n    def free(self):\n        return _rust_call(_UniffiLib.ffi_zklink_sdk_rustbuffer_free, self)\n\n    def __str__(self):\n        return \"_UniffiRustBuffer(capacity={}, len={}, data={})\".format(\n            self.capacity,\n            self.len,\n            self.data[0:self.len]\n        )\n\n    @contextlib.contextmanager\n    def alloc_with_builder(*args):\n        \"\"\"Context-manger to allocate a buffer using a _UniffiRustBufferBuilder.\n\n        The allocated buffer will be automatically freed if an error occurs, ensuring that\n        we don't accidentally leak it.\n        \"\"\"\n        builder = _UniffiRustBufferBuilder()\n        try:\n            yield builder\n        except:\n            builder.discard()\n            raise\n\n    @contextlib.contextmanager\n    def consume_with_stream(self):\n        \"\"\"Context-manager to consume a buffer using a _UniffiRustBufferStream.\n\n        The _UniffiRustBuffer will be freed once the context-manager exits, ensuring that we don't\n        leak it even if an error occurs.\n        \"\"\"\n        try:\n            s = _UniffiRustBufferStream.from_rust_buffer(self)\n            yield s\n            if s.remaining() != 0:\n                raise RuntimeError(\"junk data left in buffer at end of consume_with_stream\")\n        finally:\n            self.free()\n\n    @contextlib.contextmanager\n    def read_with_stream(self):\n        \"\"\"Context-manager to read a buffer using a _UniffiRustBufferStream.\n\n        This is like consume_with_stream, but doesn't free the buffer afterwards.\n        It should only be used with borrowed `_UniffiRustBuffer` data.\n        \"\"\"\n        s = _UniffiRustBufferStream.from_rust_buffer(self)\n        yield s\n        if s.remaining() != 0:\n            raise RuntimeError(\"junk data left in buffer at end of read_with_stream\")\n\nclass _UniffiForeignBytes(ctypes.Structure):\n    _fields_ = [\n        (\"len\", ctypes.c_int32),\n        (\"data\", ctypes.POINTER(ctypes.c_char)),\n    ]\n\n    def __str__(self):\n        return \"_UniffiForeignBytes(len={}, data={})\".format(self.len, self.data[0:self.len])\n\n\nclass _UniffiRustBufferStream:\n    \"\"\"\n    Helper for structured reading of bytes from a _UniffiRustBuffer\n    \"\"\"\n\n    def __init__(self, data, len):\n        self.data = data\n        self.len = len\n        self.offset = 0\n\n    @classmethod\n    def from_rust_buffer(cls, buf):\n        return cls(buf.data, buf.len)\n\n    def remaining(self):\n        return self.len - self.offset\n\n    def _unpack_from(self, size, format):\n        if self.offset + size > self.len:\n            raise InternalError(\"read past end of rust buffer\")\n        value = struct.unpack(format, self.data[self.offset:self.offset+size])[0]\n        self.offset += size\n        return value\n\n    def read(self, size):\n        if self.offset + size > self.len:\n            raise InternalError(\"read past end of rust buffer\")\n        data = self.data[self.offset:self.offset+size]\n        self.offset += size\n        return data\n\n    def read_i8(self):\n        return self._unpack_from(1, \">b\")\n\n    def read_u8(self):\n        return self._unpack_from(1, \">B\")\n\n    def read_i16(self):\n        return self._unpack_from(2, \">h\")\n\n    def read_u16(self):\n        return self._unpack_from(2, \">H\")\n\n    def read_i32(self):\n        return self._unpack_from(4, \">i\")\n\n    def read_u32(self):\n        return self._unpack_from(4, \">I\")\n\n    def read_i64(self):\n        return self._unpack_from(8, \">q\")\n\n    def read_u64(self):\n        return self._unpack_from(8, \">Q\")\n\n    def read_float(self):\n        v = self._unpack_from(4, \">f\")\n        return v\n\n    def read_double(self):\n        return self._unpack_from(8, \">d\")\n\n    def read_c_size_t(self):\n        return self._unpack_from(ctypes.sizeof(ctypes.c_size_t) , \"@N\")\n\nclass _UniffiRustBufferBuilder:\n    \"\"\"\n    Helper for structured writing of bytes into a _UniffiRustBuffer.\n    \"\"\"\n\n    def __init__(self):\n        self.rbuf = _UniffiRustBuffer.alloc(16)\n        self.rbuf.len = 0\n\n    def finalize(self):\n        rbuf = self.rbuf\n        self.rbuf = None\n        return rbuf\n\n    def discard(self):\n        if self.rbuf is not None:\n            rbuf = self.finalize()\n            rbuf.free()\n\n    @contextlib.contextmanager\n    def _reserve(self, num_bytes):\n        if self.rbuf.len + num_bytes > self.rbuf.capacity:\n            self.rbuf = _UniffiRustBuffer.reserve(self.rbuf, num_bytes)\n        yield None\n        self.rbuf.len += num_bytes\n\n    def _pack_into(self, size, format, value):\n        with self._reserve(size):\n            # XXX TODO: I feel like I should be able to use `struct.pack_into` here but can't figure it out.\n            for i, byte in enumerate(struct.pack(format, value)):\n                self.rbuf.data[self.rbuf.len + i] = byte\n\n    def write(self, value):\n        with self._reserve(len(value)):\n            for i, byte in enumerate(value):\n                self.rbuf.data[self.rbuf.len + i] = byte\n\n    def write_i8(self, v):\n        self._pack_into(1, \">b\", v)\n\n    def write_u8(self, v):\n        self._pack_into(1, \">B\", v)\n\n    def write_i16(self, v):\n        self._pack_into(2, \">h\", v)\n\n    def write_u16(self, v):\n        self._pack_into(2, \">H\", v)\n\n    def write_i32(self, v):\n        self._pack_into(4, \">i\", v)\n\n    def write_u32(self, v):\n        self._pack_into(4, \">I\", v)\n\n    def write_i64(self, v):\n        self._pack_into(8, \">q\", v)\n\n    def write_u64(self, v):\n        self._pack_into(8, \">Q\", v)\n\n    def write_float(self, v):\n        self._pack_into(4, \">f\", v)\n\n    def write_double(self, v):\n        self._pack_into(8, \">d\", v)\n\n    def write_c_size_t(self, v):\n        self._pack_into(ctypes.sizeof(ctypes.c_size_t) , \"@N\", v)\n# A handful of classes and functions to support the generated data structures.\n# This would be a good candidate for isolating in its own ffi-support lib.\n\nclass InternalError(Exception):\n    pass\n\nclass _UniffiRustCallStatus(ctypes.Structure):\n    \"\"\"\n    Error runtime.\n    \"\"\"\n    _fields_ = [\n        (\"code\", ctypes.c_int8),\n        (\"error_buf\", _UniffiRustBuffer),\n    ]\n\n    # These match the values from the uniffi::rustcalls module\n    CALL_SUCCESS = 0\n    CALL_ERROR = 1\n    CALL_PANIC = 2\n\n    def __str__(self):\n        if self.code == _UniffiRustCallStatus.CALL_SUCCESS:\n            return \"_UniffiRustCallStatus(CALL_SUCCESS)\"\n        elif self.code == _UniffiRustCallStatus.CALL_ERROR:\n            return \"_UniffiRustCallStatus(CALL_ERROR)\"\n        elif self.code == _UniffiRustCallStatus.CALL_PANIC:\n            return \"_UniffiRustCallStatus(CALL_PANIC)\"\n        else:\n            return \"_UniffiRustCallStatus(<invalid code>)\"\n\ndef _rust_call(fn, *args):\n    # Call a rust function\n    return _rust_call_with_error(None, fn, *args)\n\ndef _rust_call_with_error(error_ffi_converter, fn, *args):\n    # Call a rust function and handle any errors\n    #\n    # This function is used for rust calls that return Result<> and therefore can set the CALL_ERROR status code.\n    # error_ffi_converter must be set to the _UniffiConverter for the error class that corresponds to the result.\n    call_status = _UniffiRustCallStatus(code=_UniffiRustCallStatus.CALL_SUCCESS, error_buf=_UniffiRustBuffer(0, 0, None))\n\n    args_with_error = args + (ctypes.byref(call_status),)\n    result = fn(*args_with_error)\n    _uniffi_check_call_status(error_ffi_converter, call_status)\n    return result\n\ndef _uniffi_check_call_status(error_ffi_converter, call_status):\n    if call_status.code == _UniffiRustCallStatus.CALL_SUCCESS:\n        pass\n    elif call_status.code == _UniffiRustCallStatus.CALL_ERROR:\n        if error_ffi_converter is None:\n            call_status.error_buf.free()\n            raise InternalError(\"_rust_call_with_error: CALL_ERROR, but error_ffi_converter is None\")\n        else:\n            raise error_ffi_converter.lift(call_status.error_buf)\n    elif call_status.code == _UniffiRustCallStatus.CALL_PANIC:\n        # When the rust code sees a panic, it tries to construct a _UniffiRustBuffer\n        # with the message.  But if that code panics, then it just sends back\n        # an empty buffer.\n        if call_status.error_buf.len > 0:\n            msg = _UniffiConverterString.lift(call_status.error_buf)\n        else:\n            msg = \"Unknown rust panic\"\n        raise InternalError(msg)\n    else:\n        raise InternalError(\"Invalid _UniffiRustCallStatus code: {}\".format(\n            call_status.code))\n\n# A function pointer for a callback as defined by UniFFI.\n# Rust definition `fn(handle: u64, method: u32, args: _UniffiRustBuffer, buf_ptr: *mut _UniffiRustBuffer) -> int`\n_UNIFFI_FOREIGN_CALLBACK_T = ctypes.CFUNCTYPE(ctypes.c_int, ctypes.c_ulonglong, ctypes.c_ulong, ctypes.POINTER(ctypes.c_char), ctypes.c_int, ctypes.POINTER(_UniffiRustBuffer))\n\n# UniFFI future continuation\n_UNIFFI_FUTURE_CONTINUATION_T = ctypes.CFUNCTYPE(None, ctypes.c_size_t, ctypes.c_int8)\n\nclass _UniffiPointerManagerCPython:\n    \"\"\"\n    Manage giving out pointers to Python objects on CPython\n\n    This class is used to generate opaque pointers that reference Python objects to pass to Rust.\n    It assumes a CPython platform.  See _UniffiPointerManagerGeneral for the alternative.\n    \"\"\"\n\n    def new_pointer(self, obj):\n        \"\"\"\n        Get a pointer for an object as a ctypes.c_size_t instance\n\n        Each call to new_pointer() must be balanced with exactly one call to release_pointer()\n\n        This returns a ctypes.c_size_t.  This is always the same size as a pointer and can be\n        interchanged with pointers for FFI function arguments and return values.\n        \"\"\"\n        # IncRef the object since we're going to pass a pointer to Rust\n        ctypes.pythonapi.Py_IncRef(ctypes.py_object(obj))\n        # id() is the object address on CPython\n        # (https://docs.python.org/3/library/functions.html#id)\n        return id(obj)\n\n    def release_pointer(self, address):\n        py_obj = ctypes.cast(address, ctypes.py_object)\n        obj = py_obj.value\n        ctypes.pythonapi.Py_DecRef(py_obj)\n        return obj\n\n    def lookup(self, address):\n        return ctypes.cast(address, ctypes.py_object).value\n\nclass _UniffiPointerManagerGeneral:\n    \"\"\"\n    Manage giving out pointers to Python objects on non-CPython platforms\n\n    This has the same API as _UniffiPointerManagerCPython, but doesn't assume we're running on\n    CPython and is slightly slower.\n\n    Instead of using real pointers, it maps integer values to objects and returns the keys as\n    c_size_t values.\n    \"\"\"\n\n    def __init__(self):\n        self._map = {}\n        self._lock = threading.Lock()\n        self._current_handle = 0\n\n    def new_pointer(self, obj):\n        with self._lock:\n            handle = self._current_handle\n            self._current_handle += 1\n            self._map[handle] = obj\n        return handle\n\n    def release_pointer(self, handle):\n        with self._lock:\n            return self._map.pop(handle)\n\n    def lookup(self, handle):\n        with self._lock:\n            return self._map[handle]\n\n# Pick an pointer manager implementation based on the platform\nif platform.python_implementation() == 'CPython':\n    _UniffiPointerManager = _UniffiPointerManagerCPython # type: ignore\nelse:\n    _UniffiPointerManager = _UniffiPointerManagerGeneral # type: ignore\n# Types conforming to `_UniffiConverterPrimitive` pass themselves directly over the FFI.\nclass _UniffiConverterPrimitive:\n    @classmethod\n    def check(cls, value):\n        return value\n\n    @classmethod\n    def lift(cls, value):\n        return value\n\n    @classmethod\n    def lower(cls, value):\n        return cls.lowerUnchecked(cls.check(value))\n\n    @classmethod\n    def lowerUnchecked(cls, value):\n        return value\n\n    @classmethod\n    def write(cls, value, buf):\n        cls.write_unchecked(cls.check(value), buf)\n\nclass _UniffiConverterPrimitiveInt(_UniffiConverterPrimitive):\n    @classmethod\n    def check(cls, value):\n        try:\n            value = value.__index__()\n        except Exception:\n            raise TypeError(\"'{}' object cannot be interpreted as an integer\".format(type(value).__name__))\n        if not isinstance(value, int):\n            raise TypeError(\"__index__ returned non-int (type {})\".format(type(value).__name__))\n        if not cls.VALUE_MIN <= value < cls.VALUE_MAX:\n            raise ValueError(\"{} requires {} <= value < {}\".format(cls.CLASS_NAME, cls.VALUE_MIN, cls.VALUE_MAX))\n        return super().check(value)\n\nclass _UniffiConverterPrimitiveFloat(_UniffiConverterPrimitive):\n    @classmethod\n    def check(cls, value):\n        try:\n            value = value.__float__()\n        except Exception:\n            raise TypeError(\"must be real number, not {}\".format(type(value).__name__))\n        if not isinstance(value, float):\n            raise TypeError(\"__float__ returned non-float (type {})\".format(type(value).__name__))\n        return super().check(value)\n\n# Helper class for wrapper types that will always go through a _UniffiRustBuffer.\n# Classes should inherit from this and implement the `read` and `write` static methods.\nclass _UniffiConverterRustBuffer:\n    @classmethod\n    def lift(cls, rbuf):\n        with rbuf.consume_with_stream() as stream:\n            return cls.read(stream)\n\n    @classmethod\n    def lower(cls, value):\n        with _UniffiRustBuffer.alloc_with_builder() as builder:\n            cls.write(value, builder)\n            return builder.finalize()\n\n# Contains loading, initialization code, and the FFI Function declarations.\n# Define some ctypes FFI types that we use in the library\n\n\"\"\"\nctypes type for the foreign executor callback.  This is a built-in interface for scheduling\ntasks\n\nArgs:\n  executor: opaque c_size_t value representing the eventloop\n  delay: delay in ms\n  task: function pointer to the task callback\n  task_data: void pointer to the task callback data\n\nNormally we should call task(task_data) after the detail.\nHowever, when task is NULL this indicates that Rust has dropped the ForeignExecutor and we should\ndecrease the EventLoop refcount.\n\"\"\"\n_UNIFFI_FOREIGN_EXECUTOR_CALLBACK_T = ctypes.CFUNCTYPE(ctypes.c_int8, ctypes.c_size_t, ctypes.c_uint32, ctypes.c_void_p, ctypes.c_void_p)\n\n\"\"\"\nFunction pointer for a Rust task, which a callback function that takes a opaque pointer\n\"\"\"\n_UNIFFI_RUST_TASK = ctypes.CFUNCTYPE(None, ctypes.c_void_p, ctypes.c_int8)\n\ndef _uniffi_future_callback_t(return_type):\n    \"\"\"\n    Factory function to create callback function types for async functions\n    \"\"\"\n    return ctypes.CFUNCTYPE(None, ctypes.c_size_t, return_type, _UniffiRustCallStatus)\n\ndef _uniffi_load_indirect():\n    \"\"\"\n    This is how we find and load the dynamic library provided by the component.\n    For now we just look it up by name.\n    \"\"\"\n    if sys.platform == \"darwin\":\n        libname = \"lib{}.dylib\"\n    elif sys.platform.startswith(\"win\"):\n        # As of python3.8, ctypes does not seem to search $PATH when loading DLLs.\n        # We could use `os.add_dll_directory` to configure the search path, but\n        # it doesn't feel right to mess with application-wide settings. Let's\n        # assume that the `.dll` is next to the `.py` file and load by full path.\n        libname = os.path.join(\n            os.path.dirname(__file__),\n            \"{}.dll\",\n        )\n    else:\n        # Anything else must be an ELF platform - Linux, *BSD, Solaris/illumos\n        libname = \"lib{}.so\"\n\n    libname = libname.format(\"zklink_sdk\")\n    path = os.path.join(os.path.dirname(__file__), libname)\n    lib = ctypes.cdll.LoadLibrary(path)\n    return lib\n\ndef _uniffi_check_contract_api_version(lib):\n    # Get the bindings contract version from our ComponentInterface\n    bindings_contract_version = 24\n    # Get the scaffolding contract version by calling the into the dylib\n    scaffolding_contract_version = lib.ffi_zklink_sdk_uniffi_contract_version()\n    if bindings_contract_version != scaffolding_contract_version:\n        raise InternalError(\"UniFFI contract version mismatch: try cleaning and rebuilding your project\")\n\ndef _uniffi_check_api_checksums(lib):\n    if lib.uniffi_zklink_sdk_checksum_func_closest_packable_fee_amount() != 18129:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_func_closest_packable_token_amount() != 61679:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_func_create_signed_change_pubkey() != 63374:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_func_eth_signature_of_change_pubkey() != 32759:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_func_get_public_key_hash() != 58294:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_func_is_fee_amount_packable() != 11137:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_func_is_token_amount_packable() != 50233:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_func_verify_musig() != 61749:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_func_zklink_main_net_url() != 63488:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_func_zklink_test_net_url() != 4933:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_create_signed_tx() != 63490:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_bytes() != 44684:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_signature() != 16515:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_signature_valid() != 2829:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_valid() != 32196:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_json_str() != 3439:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_to_zklink_tx() != 64239:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_tx_hash() != 35167:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_changepubkey_get_bytes() != 1938:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_changepubkey_get_signature() != 51549:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_changepubkey_is_onchain() != 10977:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_changepubkey_is_signature_valid() != 25271:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_changepubkey_is_valid() != 31315:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_changepubkey_json_str() != 43695:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_changepubkey_to_zklink_tx() != 42088:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_changepubkey_tx_hash() != 26881:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contract_create_signed_contract() != 3720:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contract_get_bytes() != 6953:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contract_get_signature() != 60348:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contract_is_long() != 52375:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contract_is_short() != 24664:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contract_is_signature_valid() != 33071:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contractmatching_create_signed_tx() != 44741:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contractmatching_get_bytes() != 12250:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contractmatching_get_signature() != 41128:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contractmatching_is_signature_valid() != 33576:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contractmatching_is_valid() != 55586:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contractmatching_json_str() != 42918:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contractmatching_to_zklink_tx() != 43065:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contractmatching_tx_hash() != 3288:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_deposit_get_bytes() != 46958:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_deposit_json_str() != 17811:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_deposit_tx_hash() != 37358:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_ethsigner_get_address() != 11362:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_ethsigner_sign_message() != 14536:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_forcedexit_create_signed_tx() != 17267:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_forcedexit_get_bytes() != 15553:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_forcedexit_get_signature() != 48117:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_forcedexit_is_signature_valid() != 6534:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_forcedexit_is_valid() != 46100:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_forcedexit_json_str() != 4050:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_forcedexit_to_zklink_tx() != 32455:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_forcedexit_tx_hash() != 45462:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_fullexit_get_bytes() != 52461:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_fullexit_is_valid() != 57198:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_fullexit_json_str() != 24199:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_fullexit_to_zklink_tx() != 51607:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_fullexit_tx_hash() != 48511:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_funding_create_signed_tx() != 38824:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_funding_get_bytes() != 63867:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_funding_get_signature() != 29468:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_funding_is_signature_valid() != 50669:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_funding_is_valid() != 4189:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_funding_json_str() != 55097:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_funding_to_zklink_tx() != 27295:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_funding_tx_hash() != 26610:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_liquidation_create_signed_tx() != 18143:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_liquidation_get_bytes() != 1134:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_liquidation_get_signature() != 31505:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_liquidation_is_signature_valid() != 8478:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_liquidation_is_valid() != 2828:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_liquidation_json_str() != 62587:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_liquidation_to_zklink_tx() != 30414:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_liquidation_tx_hash() != 34918:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_order_create_signed_order() != 18530:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_order_get_bytes() != 51161:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_order_get_eth_sign_msg() != 11725:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_order_get_signature() != 46876:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_order_is_signature_valid() != 6764:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_order_is_valid() != 56951:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_order_json_str() != 20284:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_ordermatching_create_signed_tx() != 27728:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_ordermatching_get_bytes() != 13177:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_ordermatching_get_signature() != 35878:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_ordermatching_is_signature_valid() != 54946:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_ordermatching_is_valid() != 51995:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_ordermatching_json_str() != 33830:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_ordermatching_to_zklink_tx() != 23870:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_ordermatching_tx_hash() != 3162:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_auto_deleveraging() != 3485:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_create2data_auth() != 39808:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_eth_ecdsa_auth() != 63567:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_onchain_auth_data() != 26921:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_contract_matching() != 27932:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_forced_exit() != 37862:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_funding() != 31213:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_liquidation() != 56257:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_order_matching() != 19982:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_transfer() != 51577:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_withdraw() != 56851:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_starksigner_sign_message() != 27027:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_transfer_create_signed_tx() != 17446:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_transfer_eth_signature() != 18454:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_transfer_get_bytes() != 56287:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_transfer_get_eth_sign_msg() != 46393:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_transfer_get_signature() != 55226:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_transfer_is_signature_valid() != 31540:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_transfer_is_valid() != 46475:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_transfer_json_str() != 28252:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_transfer_to_zklink_tx() != 64899:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_transfer_tx_hash() != 16259:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_updateglobalvar_get_bytes() != 40576:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_updateglobalvar_is_valid() != 7961:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_updateglobalvar_json_str() != 48653:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_updateglobalvar_to_zklink_tx() != 40091:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_updateglobalvar_tx_hash() != 4261:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_withdraw_create_signed_tx() != 15886:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_withdraw_eth_signature() != 28825:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_withdraw_get_bytes() != 15999:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_withdraw_get_eth_sign_msg() != 27813:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_withdraw_get_signature() != 56920:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_withdraw_is_signature_valid() != 9636:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_withdraw_is_valid() != 32004:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_withdraw_json_str() != 3719:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_withdraw_to_zklink_tx() != 26934:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_withdraw_tx_hash() != 25800:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_zklinksigner_public_key() != 11211:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_zklinksigner_sign_musig() != 46475:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_autodeleveraging_new() != 10122:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_changepubkey_new() != 10607:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_contract_new() != 32968:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_contractmatching_new() != 210:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_deposit_new() != 2732:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_ethsigner_new() != 58738:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_forcedexit_new() != 30328:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_fullexit_new() != 27234:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_funding_new() != 62515:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_liquidation_new() != 56634:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_order_new() != 13958:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_ordermatching_new() != 5934:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_signer_new() != 24354:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_starksigner_new() != 61581:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_starksigner_new_from_hex_str() != 57960:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_transfer_new() != 31981:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_typeddata_new() != 46773:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_updateglobalvar_new() != 31819:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_withdraw_new() != 47491:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new() != 62411:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_bytes() != 17619:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_eth_signer() != 60210:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_stark_signer() != 21809:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_seed() != 47514:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n\n# A ctypes library to expose the extern-C FFI definitions.\n# This is an implementation detail which will be called internally by the public API.\n\n_UniffiLib = _uniffi_load_indirect()\n_UniffiLib.uniffi_zklink_sdk_fn_free_autodeleveraging.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_autodeleveraging.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_autodeleveraging_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_autodeleveraging_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_create_signed_tx.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_changepubkey.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_changepubkey.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_changepubkey_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_changepubkey_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_onchain.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_onchain.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_contract.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_contract.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_contract_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_contract_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_create_signed_contract.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_create_signed_contract.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_long.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_long.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_short.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_short.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_free_contractmatching.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_contractmatching.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_contractmatching_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_contractmatching_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_create_signed_tx.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_deposit.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_deposit.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_deposit_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_deposit_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_ethsigner.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_ethsigner.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_ethsigner_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_ethsigner_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_get_address.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_get_address.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_sign_message.argtypes = (\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_sign_message.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_forcedexit.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_forcedexit.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_forcedexit_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_forcedexit_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_create_signed_tx.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_fullexit.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_fullexit.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_fullexit_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_fullexit_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_funding.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_funding.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_funding_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_funding_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_create_signed_tx.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_liquidation.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_liquidation.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_liquidation_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_liquidation_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_create_signed_tx.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_order.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_order.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_order_new.argtypes = (\n    ctypes.c_uint32,\n    ctypes.c_uint8,\n    ctypes.c_uint32,\n    ctypes.c_uint32,\n    ctypes.c_uint32,\n    ctypes.c_uint32,\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    ctypes.c_int8,\n    ctypes.c_int8,\n    ctypes.c_uint8,\n    ctypes.c_uint8,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_order_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_create_signed_order.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_create_signed_order.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_eth_sign_msg.argtypes = (\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    ctypes.c_uint8,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_eth_sign_msg.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_ordermatching.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_ordermatching.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_ordermatching_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_ordermatching_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_create_signed_tx.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_signer.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_signer.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_signer_new.argtypes = (\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_signer_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_auto_deleveraging.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_auto_deleveraging.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_create2data_auth.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_create2data_auth.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_eth_ecdsa_auth.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_eth_ecdsa_auth.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_onchain_auth_data.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_onchain_auth_data.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_contract_matching.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_contract_matching.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_forced_exit.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_forced_exit.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_funding.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_funding.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_liquidation.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_liquidation.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_order_matching.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_order_matching.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_transfer.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_transfer.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_withdraw.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_withdraw.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_starksigner.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_starksigner.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new.argtypes = (\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new_from_hex_str.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new_from_hex_str.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_starksigner_sign_message.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_starksigner_sign_message.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_transfer.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_transfer.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_transfer_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_transfer_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_create_signed_tx.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_eth_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_eth_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_eth_sign_msg.argtypes = (\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_eth_sign_msg.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_typeddata.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_typeddata.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_typeddata_new.argtypes = (\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_typeddata_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_free_updateglobalvar.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_updateglobalvar.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_updateglobalvar_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_updateglobalvar_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_withdraw.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_withdraw.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_withdraw_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_withdraw_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_create_signed_tx.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_eth_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_eth_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_eth_sign_msg.argtypes = (\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_eth_sign_msg.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_zklinksigner.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_zklinksigner.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new.argtypes = (\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_bytes.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_bytes.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_eth_signer.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_eth_signer.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_stark_signer.argtypes = (\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_stark_signer.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_seed.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_seed.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_public_key.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_public_key.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_sign_musig.argtypes = (\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_sign_musig.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_func_closest_packable_fee_amount.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_func_closest_packable_fee_amount.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_func_closest_packable_token_amount.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_func_closest_packable_token_amount.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_func_create_signed_change_pubkey.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_func_create_signed_change_pubkey.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_func_eth_signature_of_change_pubkey.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_func_eth_signature_of_change_pubkey.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_func_get_public_key_hash.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_func_get_public_key_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_func_is_fee_amount_packable.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_func_is_fee_amount_packable.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_func_is_token_amount_packable.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_func_is_token_amount_packable.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_func_verify_musig.argtypes = (\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_func_verify_musig.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_func_zklink_main_net_url.argtypes = (\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_func_zklink_main_net_url.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_func_zklink_test_net_url.argtypes = (\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_func_zklink_test_net_url.restype = _UniffiRustBuffer\n_UniffiLib.ffi_zklink_sdk_rustbuffer_alloc.argtypes = (\n    ctypes.c_int32,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rustbuffer_alloc.restype = _UniffiRustBuffer\n_UniffiLib.ffi_zklink_sdk_rustbuffer_from_bytes.argtypes = (\n    _UniffiForeignBytes,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rustbuffer_from_bytes.restype = _UniffiRustBuffer\n_UniffiLib.ffi_zklink_sdk_rustbuffer_free.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rustbuffer_free.restype = None\n_UniffiLib.ffi_zklink_sdk_rustbuffer_reserve.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.c_int32,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rustbuffer_reserve.restype = _UniffiRustBuffer\n_UniffiLib.ffi_zklink_sdk_rust_future_continuation_callback_set.argtypes = (\n    _UNIFFI_FUTURE_CONTINUATION_T,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_continuation_callback_set.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_u8.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_u8.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_u8.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_u8.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_u8.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_u8.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_u8.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_u8.restype = ctypes.c_uint8\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_i8.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_i8.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_i8.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_i8.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_i8.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_i8.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_i8.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_i8.restype = ctypes.c_int8\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_u16.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_u16.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_u16.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_u16.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_u16.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_u16.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_u16.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_u16.restype = ctypes.c_uint16\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_i16.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_i16.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_i16.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_i16.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_i16.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_i16.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_i16.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_i16.restype = ctypes.c_int16\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_u32.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_u32.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_u32.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_u32.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_u32.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_u32.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_u32.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_u32.restype = ctypes.c_uint32\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_i32.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_i32.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_i32.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_i32.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_i32.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_i32.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_i32.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_i32.restype = ctypes.c_int32\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_u64.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_u64.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_u64.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_u64.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_u64.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_u64.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_u64.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_u64.restype = ctypes.c_uint64\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_i64.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_i64.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_i64.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_i64.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_i64.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_i64.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_i64.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_i64.restype = ctypes.c_int64\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_f32.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_f32.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_f32.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_f32.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_f32.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_f32.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_f32.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_f32.restype = ctypes.c_float\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_f64.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_f64.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_f64.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_f64.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_f64.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_f64.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_f64.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_f64.restype = ctypes.c_double\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_pointer.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_pointer.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_pointer.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_pointer.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_pointer.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_pointer.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_pointer.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_pointer.restype = ctypes.c_void_p\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_rust_buffer.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_rust_buffer.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_rust_buffer.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_rust_buffer.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_rust_buffer.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_rust_buffer.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_rust_buffer.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_rust_buffer.restype = _UniffiRustBuffer\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_void.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_void.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_void.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_void.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_void.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_void.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_void.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_void.restype = None\n_UniffiLib.uniffi_zklink_sdk_checksum_func_closest_packable_fee_amount.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_func_closest_packable_fee_amount.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_func_closest_packable_token_amount.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_func_closest_packable_token_amount.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_func_create_signed_change_pubkey.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_func_create_signed_change_pubkey.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_func_eth_signature_of_change_pubkey.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_func_eth_signature_of_change_pubkey.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_func_get_public_key_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_func_get_public_key_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_func_is_fee_amount_packable.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_func_is_fee_amount_packable.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_func_is_token_amount_packable.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_func_is_token_amount_packable.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_func_verify_musig.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_func_verify_musig.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_func_zklink_main_net_url.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_func_zklink_main_net_url.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_func_zklink_test_net_url.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_func_zklink_test_net_url.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_create_signed_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_create_signed_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_onchain.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_onchain.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_create_signed_contract.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_create_signed_contract.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_long.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_long.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_short.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_short.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_create_signed_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_create_signed_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ethsigner_get_address.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ethsigner_get_address.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ethsigner_sign_message.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ethsigner_sign_message.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_create_signed_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_create_signed_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_create_signed_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_create_signed_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_create_signed_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_create_signed_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_create_signed_order.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_create_signed_order.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_eth_sign_msg.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_eth_sign_msg.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_create_signed_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_create_signed_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_auto_deleveraging.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_auto_deleveraging.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_create2data_auth.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_create2data_auth.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_eth_ecdsa_auth.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_eth_ecdsa_auth.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_onchain_auth_data.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_onchain_auth_data.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_contract_matching.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_contract_matching.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_forced_exit.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_forced_exit.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_funding.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_funding.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_liquidation.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_liquidation.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_order_matching.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_order_matching.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_transfer.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_transfer.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_withdraw.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_withdraw.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_starksigner_sign_message.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_starksigner_sign_message.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_create_signed_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_create_signed_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_eth_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_eth_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_eth_sign_msg.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_eth_sign_msg.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_create_signed_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_create_signed_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_eth_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_eth_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_eth_sign_msg.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_eth_sign_msg.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_zklinksigner_public_key.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_zklinksigner_public_key.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_zklinksigner_sign_musig.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_zklinksigner_sign_musig.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_autodeleveraging_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_autodeleveraging_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_changepubkey_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_changepubkey_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_contract_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_contract_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_contractmatching_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_contractmatching_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_deposit_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_deposit_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_ethsigner_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_ethsigner_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_forcedexit_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_forcedexit_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_fullexit_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_fullexit_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_funding_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_funding_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_liquidation_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_liquidation_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_order_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_order_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_ordermatching_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_ordermatching_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_signer_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_signer_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_starksigner_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_starksigner_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_starksigner_new_from_hex_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_starksigner_new_from_hex_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_transfer_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_transfer_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_typeddata_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_typeddata_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_updateglobalvar_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_updateglobalvar_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_withdraw_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_withdraw_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_eth_signer.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_eth_signer.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_stark_signer.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_stark_signer.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_seed.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_seed.restype = ctypes.c_uint16\n_UniffiLib.ffi_zklink_sdk_uniffi_contract_version.argtypes = (\n)\n_UniffiLib.ffi_zklink_sdk_uniffi_contract_version.restype = ctypes.c_uint32\n_uniffi_check_contract_api_version(_UniffiLib)\n_uniffi_check_api_checksums(_UniffiLib)\n\n# Async support\n\n# Public interface members begin here.\n\n\nclass _UniffiConverterUInt8(_UniffiConverterPrimitiveInt):\n    CLASS_NAME = \"u8\"\n    VALUE_MIN = 0\n    VALUE_MAX = 2**8\n\n    @staticmethod\n    def read(buf):\n        return buf.read_u8()\n\n    @staticmethod\n    def write_unchecked(value, buf):\n        buf.write_u8(value)\n\nclass _UniffiConverterUInt16(_UniffiConverterPrimitiveInt):\n    CLASS_NAME = \"u16\"\n    VALUE_MIN = 0\n    VALUE_MAX = 2**16\n\n    @staticmethod\n    def read(buf):\n        return buf.read_u16()\n\n    @staticmethod\n    def write_unchecked(value, buf):\n        buf.write_u16(value)\n\nclass _UniffiConverterInt16(_UniffiConverterPrimitiveInt):\n    CLASS_NAME = \"i16\"\n    VALUE_MIN = -2**15\n    VALUE_MAX = 2**15\n\n    @staticmethod\n    def read(buf):\n        return buf.read_i16()\n\n    @staticmethod\n    def write_unchecked(value, buf):\n        buf.write_i16(value)\n\nclass _UniffiConverterUInt32(_UniffiConverterPrimitiveInt):\n    CLASS_NAME = \"u32\"\n    VALUE_MIN = 0\n    VALUE_MAX = 2**32\n\n    @staticmethod\n    def read(buf):\n        return buf.read_u32()\n\n    @staticmethod\n    def write_unchecked(value, buf):\n        buf.write_u32(value)\n\nclass _UniffiConverterUInt64(_UniffiConverterPrimitiveInt):\n    CLASS_NAME = \"u64\"\n    VALUE_MIN = 0\n    VALUE_MAX = 2**64\n\n    @staticmethod\n    def read(buf):\n        return buf.read_u64()\n\n    @staticmethod\n    def write_unchecked(value, buf):\n        buf.write_u64(value)\n\nclass _UniffiConverterBool(_UniffiConverterPrimitive):\n    @classmethod\n    def check(cls, value):\n        return not not value\n\n    @classmethod\n    def read(cls, buf):\n        return cls.lift(buf.read_u8())\n\n    @classmethod\n    def write_unchecked(cls, value, buf):\n        buf.write_u8(value)\n\n    @staticmethod\n    def lift(value):\n        return value != 0\n\nclass _UniffiConverterString:\n    @staticmethod\n    def check(value):\n        if not isinstance(value, str):\n            raise TypeError(\"argument must be str, not {}\".format(type(value).__name__))\n        return value\n\n    @staticmethod\n    def read(buf):\n        size = buf.read_i32()\n        if size < 0:\n            raise InternalError(\"Unexpected negative string length\")\n        utf8_bytes = buf.read(size)\n        return utf8_bytes.decode(\"utf-8\")\n\n    @staticmethod\n    def write(value, buf):\n        value = _UniffiConverterString.check(value)\n        utf8_bytes = value.encode(\"utf-8\")\n        buf.write_i32(len(utf8_bytes))\n        buf.write(utf8_bytes)\n\n    @staticmethod\n    def lift(buf):\n        with buf.consume_with_stream() as stream:\n            return stream.read(stream.remaining()).decode(\"utf-8\")\n\n    @staticmethod\n    def lower(value):\n        value = _UniffiConverterString.check(value)\n        with _UniffiRustBuffer.alloc_with_builder() as builder:\n            builder.write(value.encode(\"utf-8\"))\n            return builder.finalize()\n\n\n\nclass AutoDeleveraging:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"AutoDeleveragingBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_autodeleveraging_new,\n        _UniffiConverterTypeAutoDeleveragingBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_autodeleveraging, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def create_signed_tx(self, signer: \"ZkLinkSigner\") -> \"AutoDeleveraging\":\n        \n        return _UniffiConverterTypeAutoDeleveraging.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_create_signed_tx,self._pointer,\n        _UniffiConverterTypeZkLinkSigner.lower(signer))\n        )\n\n\n\n\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ) -> bool:\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ) -> bool:\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ) -> str:\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeAutoDeleveraging:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, AutoDeleveraging):\n            raise TypeError(\"Expected AutoDeleveraging instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return AutoDeleveraging._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass ChangePubKey:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"ChangePubKeyBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_changepubkey_new,\n        _UniffiConverterTypeChangePubKeyBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_changepubkey, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_onchain(self, ) -> bool:\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_onchain,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ) -> bool:\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ) -> bool:\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ) -> str:\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeChangePubKey:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, ChangePubKey):\n            raise TypeError(\"Expected ChangePubKey instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return ChangePubKey._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Contract:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"ContractBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_contract_new,\n        _UniffiConverterTypeContractBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_contract, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def create_signed_contract(self, zklink_signer: \"ZkLinkSigner\") -> \"Contract\":\n        \n        return _UniffiConverterTypeContract.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_contract_create_signed_contract,self._pointer,\n        _UniffiConverterTypeZkLinkSigner.lower(zklink_signer))\n        )\n\n\n\n\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_long(self, ) -> bool:\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_long,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_short(self, ) -> bool:\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_short,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ) -> bool:\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeContract:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Contract):\n            raise TypeError(\"Expected Contract instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Contract._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass ContractMatching:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"ContractMatchingBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_contractmatching_new,\n        _UniffiConverterTypeContractMatchingBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_contractmatching, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def create_signed_tx(self, signer: \"ZkLinkSigner\") -> \"ContractMatching\":\n        \n        return _UniffiConverterTypeContractMatching.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_create_signed_tx,self._pointer,\n        _UniffiConverterTypeZkLinkSigner.lower(signer))\n        )\n\n\n\n\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ) -> bool:\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ) -> bool:\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ) -> str:\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeContractMatching:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, ContractMatching):\n            raise TypeError(\"Expected ContractMatching instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return ContractMatching._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Deposit:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"DepositBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_deposit_new,\n        _UniffiConverterTypeDepositBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_deposit, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ) -> str:\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeDeposit:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Deposit):\n            raise TypeError(\"Expected Deposit instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Deposit._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass EthSigner:\n    _pointer: ctypes.c_void_p\n    def __init__(self, private_key: str):\n        \n        self._pointer = _rust_call_with_error(_UniffiConverterTypeEthSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_ethsigner_new,\n        _UniffiConverterString.lower(private_key))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_ethsigner, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def get_address(self, ) -> \"Address\":\n        return _UniffiConverterTypeAddress.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_get_address,self._pointer,)\n        )\n\n\n\n\n\n\n    def sign_message(self, message: \"typing.List[int]\") -> \"PackedEthSignature\":\n        \n        return _UniffiConverterTypePackedEthSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeEthSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_sign_message,self._pointer,\n        _UniffiConverterSequenceUInt8.lower(message))\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeEthSigner:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, EthSigner):\n            raise TypeError(\"Expected EthSigner instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return EthSigner._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass ForcedExit:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"ForcedExitBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_forcedexit_new,\n        _UniffiConverterTypeForcedExitBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_forcedexit, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def create_signed_tx(self, signer: \"ZkLinkSigner\") -> \"ForcedExit\":\n        \n        return _UniffiConverterTypeForcedExit.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_create_signed_tx,self._pointer,\n        _UniffiConverterTypeZkLinkSigner.lower(signer))\n        )\n\n\n\n\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ) -> bool:\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ) -> bool:\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ) -> str:\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeForcedExit:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, ForcedExit):\n            raise TypeError(\"Expected ForcedExit instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return ForcedExit._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass FullExit:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"FullExitBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_fullexit_new,\n        _UniffiConverterTypeFullExitBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_fullexit, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ) -> bool:\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ) -> str:\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeFullExit:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, FullExit):\n            raise TypeError(\"Expected FullExit instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return FullExit._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Funding:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"FundingBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_funding_new,\n        _UniffiConverterTypeFundingBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_funding, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def create_signed_tx(self, signer: \"ZkLinkSigner\") -> \"Funding\":\n        \n        return _UniffiConverterTypeFunding.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_funding_create_signed_tx,self._pointer,\n        _UniffiConverterTypeZkLinkSigner.lower(signer))\n        )\n\n\n\n\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ) -> bool:\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ) -> bool:\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ) -> str:\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeFunding:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Funding):\n            raise TypeError(\"Expected Funding instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Funding._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Liquidation:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"LiquidationBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_liquidation_new,\n        _UniffiConverterTypeLiquidationBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_liquidation, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def create_signed_tx(self, signer: \"ZkLinkSigner\") -> \"Liquidation\":\n        \n        return _UniffiConverterTypeLiquidation.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_create_signed_tx,self._pointer,\n        _UniffiConverterTypeZkLinkSigner.lower(signer))\n        )\n\n\n\n\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ) -> bool:\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ) -> bool:\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ) -> str:\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeLiquidation:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Liquidation):\n            raise TypeError(\"Expected Liquidation instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Liquidation._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Order:\n    _pointer: ctypes.c_void_p\n    def __init__(self, account_id: \"AccountId\",sub_account_id: \"SubAccountId\",slot_id: \"SlotId\",nonce: \"Nonce\",base_token_id: \"TokenId\",quote_token_id: \"TokenId\",amount: \"BigUint\",price: \"BigUint\",is_sell: bool,has_subsidy: bool,maker_fee_rate: \"int\",taker_fee_rate: \"int\",signature: \"typing.Optional[ZkLinkSignature]\"):\n        \n        \n        \n        \n        \n        \n        \n        \n        \n        \n        \n        \n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_order_new,\n        _UniffiConverterTypeAccountId.lower(account_id),\n        _UniffiConverterTypeSubAccountId.lower(sub_account_id),\n        _UniffiConverterTypeSlotId.lower(slot_id),\n        _UniffiConverterTypeNonce.lower(nonce),\n        _UniffiConverterTypeTokenId.lower(base_token_id),\n        _UniffiConverterTypeTokenId.lower(quote_token_id),\n        _UniffiConverterTypeBigUint.lower(amount),\n        _UniffiConverterTypeBigUint.lower(price),\n        _UniffiConverterBool.lower(is_sell),\n        _UniffiConverterBool.lower(has_subsidy),\n        _UniffiConverterUInt8.lower(maker_fee_rate),\n        _UniffiConverterUInt8.lower(taker_fee_rate),\n        _UniffiConverterOptionalTypeZkLinkSignature.lower(signature))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_order, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def create_signed_order(self, zklink_signer: \"ZkLinkSigner\") -> \"Order\":\n        \n        return _UniffiConverterTypeOrder.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_order_create_signed_order,self._pointer,\n        _UniffiConverterTypeZkLinkSigner.lower(zklink_signer))\n        )\n\n\n\n\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_eth_sign_msg(self, quote_token: str,based_token: str,decimals: \"int\") -> str:\n        \n        \n        \n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_eth_sign_msg,self._pointer,\n        _UniffiConverterString.lower(quote_token),\n        _UniffiConverterString.lower(based_token),\n        _UniffiConverterUInt8.lower(decimals))\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ) -> bool:\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ) -> bool:\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ) -> str:\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_json_str,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeOrder:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Order):\n            raise TypeError(\"Expected Order instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Order._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass OrderMatching:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"OrderMatchingBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_ordermatching_new,\n        _UniffiConverterTypeOrderMatchingBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_ordermatching, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def create_signed_tx(self, signer: \"ZkLinkSigner\") -> \"OrderMatching\":\n        \n        return _UniffiConverterTypeOrderMatching.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_create_signed_tx,self._pointer,\n        _UniffiConverterTypeZkLinkSigner.lower(signer))\n        )\n\n\n\n\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ) -> bool:\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ) -> bool:\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ) -> str:\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeOrderMatching:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, OrderMatching):\n            raise TypeError(\"Expected OrderMatching instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return OrderMatching._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Signer:\n    _pointer: ctypes.c_void_p\n    def __init__(self, private_key: str,l1_type: \"L1SignerType\"):\n        \n        \n        self._pointer = _rust_call_with_error(_UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_signer_new,\n        _UniffiConverterString.lower(private_key),\n        _UniffiConverterTypeL1SignerType.lower(l1_type))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_signer, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def sign_auto_deleveraging(self, tx: \"AutoDeleveraging\") -> \"TxSignature\":\n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_auto_deleveraging,self._pointer,\n        _UniffiConverterTypeAutoDeleveraging.lower(tx))\n        )\n\n\n\n\n\n\n    def sign_change_pubkey_with_create2data_auth(self, tx: \"ChangePubKey\",crate2data: \"Create2Data\") -> \"TxSignature\":\n        \n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_create2data_auth,self._pointer,\n        _UniffiConverterTypeChangePubKey.lower(tx),\n        _UniffiConverterTypeCreate2Data.lower(crate2data))\n        )\n\n\n\n\n\n\n    def sign_change_pubkey_with_eth_ecdsa_auth(self, tx: \"ChangePubKey\") -> \"TxSignature\":\n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_eth_ecdsa_auth,self._pointer,\n        _UniffiConverterTypeChangePubKey.lower(tx))\n        )\n\n\n\n\n\n\n    def sign_change_pubkey_with_onchain_auth_data(self, tx: \"ChangePubKey\") -> \"TxSignature\":\n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_onchain_auth_data,self._pointer,\n        _UniffiConverterTypeChangePubKey.lower(tx))\n        )\n\n\n\n\n\n\n    def sign_contract_matching(self, tx: \"ContractMatching\") -> \"TxSignature\":\n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_contract_matching,self._pointer,\n        _UniffiConverterTypeContractMatching.lower(tx))\n        )\n\n\n\n\n\n\n    def sign_forced_exit(self, tx: \"ForcedExit\") -> \"TxSignature\":\n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_forced_exit,self._pointer,\n        _UniffiConverterTypeForcedExit.lower(tx))\n        )\n\n\n\n\n\n\n    def sign_funding(self, tx: \"Funding\") -> \"TxSignature\":\n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_funding,self._pointer,\n        _UniffiConverterTypeFunding.lower(tx))\n        )\n\n\n\n\n\n\n    def sign_liquidation(self, tx: \"Liquidation\") -> \"TxSignature\":\n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_liquidation,self._pointer,\n        _UniffiConverterTypeLiquidation.lower(tx))\n        )\n\n\n\n\n\n\n    def sign_order_matching(self, tx: \"OrderMatching\") -> \"TxSignature\":\n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_order_matching,self._pointer,\n        _UniffiConverterTypeOrderMatching.lower(tx))\n        )\n\n\n\n\n\n\n    def sign_transfer(self, tx: \"Transfer\",token_sybmol: str,chain_id: \"typing.Optional[str]\",addr: \"typing.Optional[str]\") -> \"TxSignature\":\n        \n        \n        \n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_transfer,self._pointer,\n        _UniffiConverterTypeTransfer.lower(tx),\n        _UniffiConverterString.lower(token_sybmol),\n        _UniffiConverterOptionalString.lower(chain_id),\n        _UniffiConverterOptionalString.lower(addr))\n        )\n\n\n\n\n\n\n    def sign_withdraw(self, tx: \"Withdraw\",l2_source_token_symbol: str,chain_id: \"typing.Optional[str]\",addr: \"typing.Optional[str]\") -> \"TxSignature\":\n        \n        \n        \n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_withdraw,self._pointer,\n        _UniffiConverterTypeWithdraw.lower(tx),\n        _UniffiConverterString.lower(l2_source_token_symbol),\n        _UniffiConverterOptionalString.lower(chain_id),\n        _UniffiConverterOptionalString.lower(addr))\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeSigner:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Signer):\n            raise TypeError(\"Expected Signer instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Signer._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass StarkSigner:\n    _pointer: ctypes.c_void_p\n    def __init__(self, ):\n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new,)\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_starksigner, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n    @classmethod\n    def new_from_hex_str(cls, hex_str: str):\n        \n        # Call the (fallible) function before creating any half-baked object instances.\n        pointer = _rust_call_with_error(_UniffiConverterTypeStarkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new_from_hex_str,\n        _UniffiConverterString.lower(hex_str))\n        return cls._make_instance_(pointer)\n\n\n\n    def sign_message(self, typed_data: \"TypedData\",addr: str) -> \"StarkEip712Signature\":\n        \n        \n        return _UniffiConverterTypeStarkEip712Signature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeStarkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_starksigner_sign_message,self._pointer,\n        _UniffiConverterTypeTypedData.lower(typed_data),\n        _UniffiConverterString.lower(addr))\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeStarkSigner:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, StarkSigner):\n            raise TypeError(\"Expected StarkSigner instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return StarkSigner._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Transfer:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"TransferBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_transfer_new,\n        _UniffiConverterTypeTransferBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_transfer, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def create_signed_tx(self, signer: \"ZkLinkSigner\") -> \"Transfer\":\n        \n        return _UniffiConverterTypeTransfer.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_create_signed_tx,self._pointer,\n        _UniffiConverterTypeZkLinkSigner.lower(signer))\n        )\n\n\n\n\n\n\n    def eth_signature(self, eth_signer: \"EthSigner\",token_symbol: str) -> \"TxLayer1Signature\":\n        \n        \n        return _UniffiConverterTypeTxLayer1Signature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_eth_signature,self._pointer,\n        _UniffiConverterTypeEthSigner.lower(eth_signer),\n        _UniffiConverterString.lower(token_symbol))\n        )\n\n\n\n\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_eth_sign_msg(self, token_symbol: str) -> str:\n        \n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_eth_sign_msg,self._pointer,\n        _UniffiConverterString.lower(token_symbol))\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ) -> bool:\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ) -> bool:\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ) -> str:\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeTransfer:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Transfer):\n            raise TypeError(\"Expected Transfer instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Transfer._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass TypedData:\n    _pointer: ctypes.c_void_p\n    def __init__(self, message: \"TypedDataMessage\",chain_id: str):\n        \n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_typeddata_new,\n        _UniffiConverterTypeTypedDataMessage.lower(message),\n        _UniffiConverterString.lower(chain_id))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_typeddata, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\nclass _UniffiConverterTypeTypedData:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, TypedData):\n            raise TypeError(\"Expected TypedData instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return TypedData._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass UpdateGlobalVar:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"UpdateGlobalVarBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_updateglobalvar_new,\n        _UniffiConverterTypeUpdateGlobalVarBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_updateglobalvar, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ) -> bool:\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ) -> str:\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeUpdateGlobalVar:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, UpdateGlobalVar):\n            raise TypeError(\"Expected UpdateGlobalVar instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return UpdateGlobalVar._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Withdraw:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"WithdrawBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_withdraw_new,\n        _UniffiConverterTypeWithdrawBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_withdraw, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def create_signed_tx(self, signer: \"ZkLinkSigner\") -> \"Withdraw\":\n        \n        return _UniffiConverterTypeWithdraw.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_create_signed_tx,self._pointer,\n        _UniffiConverterTypeZkLinkSigner.lower(signer))\n        )\n\n\n\n\n\n\n    def eth_signature(self, eth_signer: \"EthSigner\",l2_source_token_symbol: str) -> \"PackedEthSignature\":\n        \n        \n        return _UniffiConverterTypePackedEthSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_eth_signature,self._pointer,\n        _UniffiConverterTypeEthSigner.lower(eth_signer),\n        _UniffiConverterString.lower(l2_source_token_symbol))\n        )\n\n\n\n\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_eth_sign_msg(self, token_symbol: str) -> str:\n        \n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_eth_sign_msg,self._pointer,\n        _UniffiConverterString.lower(token_symbol))\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ) -> bool:\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ) -> bool:\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ) -> str:\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeWithdraw:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Withdraw):\n            raise TypeError(\"Expected Withdraw instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Withdraw._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass ZkLinkSigner:\n    _pointer: ctypes.c_void_p\n    def __init__(self, ):\n        self._pointer = _rust_call_with_error(_UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new,)\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_zklinksigner, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n    @classmethod\n    def new_from_bytes(cls, slice: \"typing.List[int]\"):\n        \n        # Call the (fallible) function before creating any half-baked object instances.\n        pointer = _rust_call_with_error(_UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_bytes,\n        _UniffiConverterSequenceUInt8.lower(slice))\n        return cls._make_instance_(pointer)\n\n\n    @classmethod\n    def new_from_hex_eth_signer(cls, eth_hex_private_key: str):\n        \n        # Call the (fallible) function before creating any half-baked object instances.\n        pointer = _rust_call_with_error(_UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_eth_signer,\n        _UniffiConverterString.lower(eth_hex_private_key))\n        return cls._make_instance_(pointer)\n\n\n    @classmethod\n    def new_from_hex_stark_signer(cls, hex_private_key: str,addr: str,chain_id: str):\n        \n        \n        \n        # Call the (fallible) function before creating any half-baked object instances.\n        pointer = _rust_call_with_error(_UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_stark_signer,\n        _UniffiConverterString.lower(hex_private_key),\n        _UniffiConverterString.lower(addr),\n        _UniffiConverterString.lower(chain_id))\n        return cls._make_instance_(pointer)\n\n\n    @classmethod\n    def new_from_seed(cls, seed: \"typing.List[int]\"):\n        \n        # Call the (fallible) function before creating any half-baked object instances.\n        pointer = _rust_call_with_error(_UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_seed,\n        _UniffiConverterSequenceUInt8.lower(seed))\n        return cls._make_instance_(pointer)\n\n\n\n    def public_key(self, ) -> \"PackedPublicKey\":\n        return _UniffiConverterTypePackedPublicKey.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_public_key,self._pointer,)\n        )\n\n\n\n\n\n\n    def sign_musig(self, msg: \"typing.List[int]\") -> \"ZkLinkSignature\":\n        \n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_sign_musig,self._pointer,\n        _UniffiConverterSequenceUInt8.lower(msg))\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeZkLinkSigner:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, ZkLinkSigner):\n            raise TypeError(\"Expected ZkLinkSigner instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return ZkLinkSigner._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\nclass AutoDeleveragingBuilder:\n    account_id: \"AccountId\";sub_account_id: \"SubAccountId\";sub_account_nonce: \"Nonce\";contract_prices: \"typing.List[ContractPrice]\";margin_prices: \"typing.List[SpotPriceInfo]\";adl_account_id: \"AccountId\";pair_id: \"PairId\";adl_size: \"BigUint\";adl_price: \"BigUint\";fee: \"BigUint\";fee_token: \"TokenId\";\n\n    @typing.no_type_check\n    def __init__(self, account_id: \"AccountId\", sub_account_id: \"SubAccountId\", sub_account_nonce: \"Nonce\", contract_prices: \"typing.List[ContractPrice]\", margin_prices: \"typing.List[SpotPriceInfo]\", adl_account_id: \"AccountId\", pair_id: \"PairId\", adl_size: \"BigUint\", adl_price: \"BigUint\", fee: \"BigUint\", fee_token: \"TokenId\"):\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.sub_account_nonce = sub_account_nonce\n        self.contract_prices = contract_prices\n        self.margin_prices = margin_prices\n        self.adl_account_id = adl_account_id\n        self.pair_id = pair_id\n        self.adl_size = adl_size\n        self.adl_price = adl_price\n        self.fee = fee\n        self.fee_token = fee_token\n\n    def __str__(self):\n        return \"AutoDeleveragingBuilder(account_id={}, sub_account_id={}, sub_account_nonce={}, contract_prices={}, margin_prices={}, adl_account_id={}, pair_id={}, adl_size={}, adl_price={}, fee={}, fee_token={})\".format(self.account_id, self.sub_account_id, self.sub_account_nonce, self.contract_prices, self.margin_prices, self.adl_account_id, self.pair_id, self.adl_size, self.adl_price, self.fee, self.fee_token)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.sub_account_nonce != other.sub_account_nonce:\n            return False\n        if self.contract_prices != other.contract_prices:\n            return False\n        if self.margin_prices != other.margin_prices:\n            return False\n        if self.adl_account_id != other.adl_account_id:\n            return False\n        if self.pair_id != other.pair_id:\n            return False\n        if self.adl_size != other.adl_size:\n            return False\n        if self.adl_price != other.adl_price:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.fee_token != other.fee_token:\n            return False\n        return True\n\nclass _UniffiConverterTypeAutoDeleveragingBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return AutoDeleveragingBuilder(\n            account_id=_UniffiConverterTypeAccountId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            sub_account_nonce=_UniffiConverterTypeNonce.read(buf),\n            contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf),\n            margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf),\n            adl_account_id=_UniffiConverterTypeAccountId.read(buf),\n            pair_id=_UniffiConverterTypePairId.read(buf),\n            adl_size=_UniffiConverterTypeBigUint.read(buf),\n            adl_price=_UniffiConverterTypeBigUint.read(buf),\n            fee=_UniffiConverterTypeBigUint.read(buf),\n            fee_token=_UniffiConverterTypeTokenId.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypeNonce.write(value.sub_account_nonce, buf)\n        _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf)\n        _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf)\n        _UniffiConverterTypeAccountId.write(value.adl_account_id, buf)\n        _UniffiConverterTypePairId.write(value.pair_id, buf)\n        _UniffiConverterTypeBigUint.write(value.adl_size, buf)\n        _UniffiConverterTypeBigUint.write(value.adl_price, buf)\n        _UniffiConverterTypeBigUint.write(value.fee, buf)\n        _UniffiConverterTypeTokenId.write(value.fee_token, buf)\n\n\nclass ChangePubKeyBuilder:\n    chain_id: \"ChainId\";account_id: \"AccountId\";sub_account_id: \"SubAccountId\";new_pubkey_hash: \"PubKeyHash\";fee_token: \"TokenId\";fee: \"BigUint\";nonce: \"Nonce\";eth_signature: \"typing.Optional[PackedEthSignature]\";timestamp: \"TimeStamp\";\n\n    @typing.no_type_check\n    def __init__(self, chain_id: \"ChainId\", account_id: \"AccountId\", sub_account_id: \"SubAccountId\", new_pubkey_hash: \"PubKeyHash\", fee_token: \"TokenId\", fee: \"BigUint\", nonce: \"Nonce\", eth_signature: \"typing.Optional[PackedEthSignature]\", timestamp: \"TimeStamp\"):\n        self.chain_id = chain_id\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.new_pubkey_hash = new_pubkey_hash\n        self.fee_token = fee_token\n        self.fee = fee\n        self.nonce = nonce\n        self.eth_signature = eth_signature\n        self.timestamp = timestamp\n\n    def __str__(self):\n        return \"ChangePubKeyBuilder(chain_id={}, account_id={}, sub_account_id={}, new_pubkey_hash={}, fee_token={}, fee={}, nonce={}, eth_signature={}, timestamp={})\".format(self.chain_id, self.account_id, self.sub_account_id, self.new_pubkey_hash, self.fee_token, self.fee, self.nonce, self.eth_signature, self.timestamp)\n\n    def __eq__(self, other):\n        if self.chain_id != other.chain_id:\n            return False\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.new_pubkey_hash != other.new_pubkey_hash:\n            return False\n        if self.fee_token != other.fee_token:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.nonce != other.nonce:\n            return False\n        if self.eth_signature != other.eth_signature:\n            return False\n        if self.timestamp != other.timestamp:\n            return False\n        return True\n\nclass _UniffiConverterTypeChangePubKeyBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return ChangePubKeyBuilder(\n            chain_id=_UniffiConverterTypeChainId.read(buf),\n            account_id=_UniffiConverterTypeAccountId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            new_pubkey_hash=_UniffiConverterTypePubKeyHash.read(buf),\n            fee_token=_UniffiConverterTypeTokenId.read(buf),\n            fee=_UniffiConverterTypeBigUint.read(buf),\n            nonce=_UniffiConverterTypeNonce.read(buf),\n            eth_signature=_UniffiConverterOptionalTypePackedEthSignature.read(buf),\n            timestamp=_UniffiConverterTypeTimeStamp.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeChainId.write(value.chain_id, buf)\n        _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypePubKeyHash.write(value.new_pubkey_hash, buf)\n        _UniffiConverterTypeTokenId.write(value.fee_token, buf)\n        _UniffiConverterTypeBigUint.write(value.fee, buf)\n        _UniffiConverterTypeNonce.write(value.nonce, buf)\n        _UniffiConverterOptionalTypePackedEthSignature.write(value.eth_signature, buf)\n        _UniffiConverterTypeTimeStamp.write(value.timestamp, buf)\n\n\nclass ContractBuilder:\n    account_id: \"AccountId\";sub_account_id: \"SubAccountId\";slot_id: \"SlotId\";nonce: \"Nonce\";pair_id: \"PairId\";size: \"BigUint\";price: \"BigUint\";direction: bool;taker_fee_rate: \"int\";maker_fee_rate: \"int\";has_subsidy: bool;\n\n    @typing.no_type_check\n    def __init__(self, account_id: \"AccountId\", sub_account_id: \"SubAccountId\", slot_id: \"SlotId\", nonce: \"Nonce\", pair_id: \"PairId\", size: \"BigUint\", price: \"BigUint\", direction: bool, taker_fee_rate: \"int\", maker_fee_rate: \"int\", has_subsidy: bool):\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.slot_id = slot_id\n        self.nonce = nonce\n        self.pair_id = pair_id\n        self.size = size\n        self.price = price\n        self.direction = direction\n        self.taker_fee_rate = taker_fee_rate\n        self.maker_fee_rate = maker_fee_rate\n        self.has_subsidy = has_subsidy\n\n    def __str__(self):\n        return \"ContractBuilder(account_id={}, sub_account_id={}, slot_id={}, nonce={}, pair_id={}, size={}, price={}, direction={}, taker_fee_rate={}, maker_fee_rate={}, has_subsidy={})\".format(self.account_id, self.sub_account_id, self.slot_id, self.nonce, self.pair_id, self.size, self.price, self.direction, self.taker_fee_rate, self.maker_fee_rate, self.has_subsidy)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.slot_id != other.slot_id:\n            return False\n        if self.nonce != other.nonce:\n            return False\n        if self.pair_id != other.pair_id:\n            return False\n        if self.size != other.size:\n            return False\n        if self.price != other.price:\n            return False\n        if self.direction != other.direction:\n            return False\n        if self.taker_fee_rate != other.taker_fee_rate:\n            return False\n        if self.maker_fee_rate != other.maker_fee_rate:\n            return False\n        if self.has_subsidy != other.has_subsidy:\n            return False\n        return True\n\nclass _UniffiConverterTypeContractBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return ContractBuilder(\n            account_id=_UniffiConverterTypeAccountId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            slot_id=_UniffiConverterTypeSlotId.read(buf),\n            nonce=_UniffiConverterTypeNonce.read(buf),\n            pair_id=_UniffiConverterTypePairId.read(buf),\n            size=_UniffiConverterTypeBigUint.read(buf),\n            price=_UniffiConverterTypeBigUint.read(buf),\n            direction=_UniffiConverterBool.read(buf),\n            taker_fee_rate=_UniffiConverterUInt8.read(buf),\n            maker_fee_rate=_UniffiConverterUInt8.read(buf),\n            has_subsidy=_UniffiConverterBool.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypeSlotId.write(value.slot_id, buf)\n        _UniffiConverterTypeNonce.write(value.nonce, buf)\n        _UniffiConverterTypePairId.write(value.pair_id, buf)\n        _UniffiConverterTypeBigUint.write(value.size, buf)\n        _UniffiConverterTypeBigUint.write(value.price, buf)\n        _UniffiConverterBool.write(value.direction, buf)\n        _UniffiConverterUInt8.write(value.taker_fee_rate, buf)\n        _UniffiConverterUInt8.write(value.maker_fee_rate, buf)\n        _UniffiConverterBool.write(value.has_subsidy, buf)\n\n\nclass ContractMatchingBuilder:\n    account_id: \"AccountId\";sub_account_id: \"SubAccountId\";taker: \"Contract\";maker: \"typing.List[Contract]\";fee: \"BigUint\";fee_token: \"TokenId\";contract_prices: \"typing.List[ContractPrice]\";margin_prices: \"typing.List[SpotPriceInfo]\";\n\n    @typing.no_type_check\n    def __init__(self, account_id: \"AccountId\", sub_account_id: \"SubAccountId\", taker: \"Contract\", maker: \"typing.List[Contract]\", fee: \"BigUint\", fee_token: \"TokenId\", contract_prices: \"typing.List[ContractPrice]\", margin_prices: \"typing.List[SpotPriceInfo]\"):\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.taker = taker\n        self.maker = maker\n        self.fee = fee\n        self.fee_token = fee_token\n        self.contract_prices = contract_prices\n        self.margin_prices = margin_prices\n\n    def __str__(self):\n        return \"ContractMatchingBuilder(account_id={}, sub_account_id={}, taker={}, maker={}, fee={}, fee_token={}, contract_prices={}, margin_prices={})\".format(self.account_id, self.sub_account_id, self.taker, self.maker, self.fee, self.fee_token, self.contract_prices, self.margin_prices)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.taker != other.taker:\n            return False\n        if self.maker != other.maker:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.fee_token != other.fee_token:\n            return False\n        if self.contract_prices != other.contract_prices:\n            return False\n        if self.margin_prices != other.margin_prices:\n            return False\n        return True\n\nclass _UniffiConverterTypeContractMatchingBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return ContractMatchingBuilder(\n            account_id=_UniffiConverterTypeAccountId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            taker=_UniffiConverterTypeContract.read(buf),\n            maker=_UniffiConverterSequenceTypeContract.read(buf),\n            fee=_UniffiConverterTypeBigUint.read(buf),\n            fee_token=_UniffiConverterTypeTokenId.read(buf),\n            contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf),\n            margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypeContract.write(value.taker, buf)\n        _UniffiConverterSequenceTypeContract.write(value.maker, buf)\n        _UniffiConverterTypeBigUint.write(value.fee, buf)\n        _UniffiConverterTypeTokenId.write(value.fee_token, buf)\n        _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf)\n        _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf)\n\n\nclass ContractPrice:\n    pair_id: \"PairId\";market_price: \"BigUint\";\n\n    @typing.no_type_check\n    def __init__(self, pair_id: \"PairId\", market_price: \"BigUint\"):\n        self.pair_id = pair_id\n        self.market_price = market_price\n\n    def __str__(self):\n        return \"ContractPrice(pair_id={}, market_price={})\".format(self.pair_id, self.market_price)\n\n    def __eq__(self, other):\n        if self.pair_id != other.pair_id:\n            return False\n        if self.market_price != other.market_price:\n            return False\n        return True\n\nclass _UniffiConverterTypeContractPrice(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return ContractPrice(\n            pair_id=_UniffiConverterTypePairId.read(buf),\n            market_price=_UniffiConverterTypeBigUint.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypePairId.write(value.pair_id, buf)\n        _UniffiConverterTypeBigUint.write(value.market_price, buf)\n\n\nclass Create2Data:\n    creator_address: \"ZkLinkAddress\";salt_arg: \"H256\";code_hash: \"H256\";\n\n    @typing.no_type_check\n    def __init__(self, creator_address: \"ZkLinkAddress\", salt_arg: \"H256\", code_hash: \"H256\"):\n        self.creator_address = creator_address\n        self.salt_arg = salt_arg\n        self.code_hash = code_hash\n\n    def __str__(self):\n        return \"Create2Data(creator_address={}, salt_arg={}, code_hash={})\".format(self.creator_address, self.salt_arg, self.code_hash)\n\n    def __eq__(self, other):\n        if self.creator_address != other.creator_address:\n            return False\n        if self.salt_arg != other.salt_arg:\n            return False\n        if self.code_hash != other.code_hash:\n            return False\n        return True\n\nclass _UniffiConverterTypeCreate2Data(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return Create2Data(\n            creator_address=_UniffiConverterTypeZkLinkAddress.read(buf),\n            salt_arg=_UniffiConverterTypeH256.read(buf),\n            code_hash=_UniffiConverterTypeH256.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeZkLinkAddress.write(value.creator_address, buf)\n        _UniffiConverterTypeH256.write(value.salt_arg, buf)\n        _UniffiConverterTypeH256.write(value.code_hash, buf)\n\n\nclass DepositBuilder:\n    from_address: \"ZkLinkAddress\";to_address: \"ZkLinkAddress\";from_chain_id: \"ChainId\";sub_account_id: \"SubAccountId\";l2_target_token: \"TokenId\";l1_source_token: \"TokenId\";amount: \"BigUint\";serial_id: \"int\";l2_hash: \"H256\";eth_hash: \"typing.Optional[H256]\";\n\n    @typing.no_type_check\n    def __init__(self, from_address: \"ZkLinkAddress\", to_address: \"ZkLinkAddress\", from_chain_id: \"ChainId\", sub_account_id: \"SubAccountId\", l2_target_token: \"TokenId\", l1_source_token: \"TokenId\", amount: \"BigUint\", serial_id: \"int\", l2_hash: \"H256\", eth_hash: \"typing.Optional[H256]\"):\n        self.from_address = from_address\n        self.to_address = to_address\n        self.from_chain_id = from_chain_id\n        self.sub_account_id = sub_account_id\n        self.l2_target_token = l2_target_token\n        self.l1_source_token = l1_source_token\n        self.amount = amount\n        self.serial_id = serial_id\n        self.l2_hash = l2_hash\n        self.eth_hash = eth_hash\n\n    def __str__(self):\n        return \"DepositBuilder(from_address={}, to_address={}, from_chain_id={}, sub_account_id={}, l2_target_token={}, l1_source_token={}, amount={}, serial_id={}, l2_hash={}, eth_hash={})\".format(self.from_address, self.to_address, self.from_chain_id, self.sub_account_id, self.l2_target_token, self.l1_source_token, self.amount, self.serial_id, self.l2_hash, self.eth_hash)\n\n    def __eq__(self, other):\n        if self.from_address != other.from_address:\n            return False\n        if self.to_address != other.to_address:\n            return False\n        if self.from_chain_id != other.from_chain_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.l2_target_token != other.l2_target_token:\n            return False\n        if self.l1_source_token != other.l1_source_token:\n            return False\n        if self.amount != other.amount:\n            return False\n        if self.serial_id != other.serial_id:\n            return False\n        if self.l2_hash != other.l2_hash:\n            return False\n        if self.eth_hash != other.eth_hash:\n            return False\n        return True\n\nclass _UniffiConverterTypeDepositBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return DepositBuilder(\n            from_address=_UniffiConverterTypeZkLinkAddress.read(buf),\n            to_address=_UniffiConverterTypeZkLinkAddress.read(buf),\n            from_chain_id=_UniffiConverterTypeChainId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            l2_target_token=_UniffiConverterTypeTokenId.read(buf),\n            l1_source_token=_UniffiConverterTypeTokenId.read(buf),\n            amount=_UniffiConverterTypeBigUint.read(buf),\n            serial_id=_UniffiConverterUInt64.read(buf),\n            l2_hash=_UniffiConverterTypeH256.read(buf),\n            eth_hash=_UniffiConverterOptionalTypeH256.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeZkLinkAddress.write(value.from_address, buf)\n        _UniffiConverterTypeZkLinkAddress.write(value.to_address, buf)\n        _UniffiConverterTypeChainId.write(value.from_chain_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypeTokenId.write(value.l2_target_token, buf)\n        _UniffiConverterTypeTokenId.write(value.l1_source_token, buf)\n        _UniffiConverterTypeBigUint.write(value.amount, buf)\n        _UniffiConverterUInt64.write(value.serial_id, buf)\n        _UniffiConverterTypeH256.write(value.l2_hash, buf)\n        _UniffiConverterOptionalTypeH256.write(value.eth_hash, buf)\n\n\nclass ForcedExitBuilder:\n    to_chain_id: \"ChainId\";initiator_account_id: \"AccountId\";initiator_sub_account_id: \"SubAccountId\";target: \"ZkLinkAddress\";target_sub_account_id: \"SubAccountId\";l2_source_token: \"TokenId\";l1_target_token: \"TokenId\";initiator_nonce: \"Nonce\";exit_amount: \"BigUint\";withdraw_to_l1: bool;timestamp: \"TimeStamp\";\n\n    @typing.no_type_check\n    def __init__(self, to_chain_id: \"ChainId\", initiator_account_id: \"AccountId\", initiator_sub_account_id: \"SubAccountId\", target: \"ZkLinkAddress\", target_sub_account_id: \"SubAccountId\", l2_source_token: \"TokenId\", l1_target_token: \"TokenId\", initiator_nonce: \"Nonce\", exit_amount: \"BigUint\", withdraw_to_l1: bool, timestamp: \"TimeStamp\"):\n        self.to_chain_id = to_chain_id\n        self.initiator_account_id = initiator_account_id\n        self.initiator_sub_account_id = initiator_sub_account_id\n        self.target = target\n        self.target_sub_account_id = target_sub_account_id\n        self.l2_source_token = l2_source_token\n        self.l1_target_token = l1_target_token\n        self.initiator_nonce = initiator_nonce\n        self.exit_amount = exit_amount\n        self.withdraw_to_l1 = withdraw_to_l1\n        self.timestamp = timestamp\n\n    def __str__(self):\n        return \"ForcedExitBuilder(to_chain_id={}, initiator_account_id={}, initiator_sub_account_id={}, target={}, target_sub_account_id={}, l2_source_token={}, l1_target_token={}, initiator_nonce={}, exit_amount={}, withdraw_to_l1={}, timestamp={})\".format(self.to_chain_id, self.initiator_account_id, self.initiator_sub_account_id, self.target, self.target_sub_account_id, self.l2_source_token, self.l1_target_token, self.initiator_nonce, self.exit_amount, self.withdraw_to_l1, self.timestamp)\n\n    def __eq__(self, other):\n        if self.to_chain_id != other.to_chain_id:\n            return False\n        if self.initiator_account_id != other.initiator_account_id:\n            return False\n        if self.initiator_sub_account_id != other.initiator_sub_account_id:\n            return False\n        if self.target != other.target:\n            return False\n        if self.target_sub_account_id != other.target_sub_account_id:\n            return False\n        if self.l2_source_token != other.l2_source_token:\n            return False\n        if self.l1_target_token != other.l1_target_token:\n            return False\n        if self.initiator_nonce != other.initiator_nonce:\n            return False\n        if self.exit_amount != other.exit_amount:\n            return False\n        if self.withdraw_to_l1 != other.withdraw_to_l1:\n            return False\n        if self.timestamp != other.timestamp:\n            return False\n        return True\n\nclass _UniffiConverterTypeForcedExitBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return ForcedExitBuilder(\n            to_chain_id=_UniffiConverterTypeChainId.read(buf),\n            initiator_account_id=_UniffiConverterTypeAccountId.read(buf),\n            initiator_sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            target=_UniffiConverterTypeZkLinkAddress.read(buf),\n            target_sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            l2_source_token=_UniffiConverterTypeTokenId.read(buf),\n            l1_target_token=_UniffiConverterTypeTokenId.read(buf),\n            initiator_nonce=_UniffiConverterTypeNonce.read(buf),\n            exit_amount=_UniffiConverterTypeBigUint.read(buf),\n            withdraw_to_l1=_UniffiConverterBool.read(buf),\n            timestamp=_UniffiConverterTypeTimeStamp.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeChainId.write(value.to_chain_id, buf)\n        _UniffiConverterTypeAccountId.write(value.initiator_account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.initiator_sub_account_id, buf)\n        _UniffiConverterTypeZkLinkAddress.write(value.target, buf)\n        _UniffiConverterTypeSubAccountId.write(value.target_sub_account_id, buf)\n        _UniffiConverterTypeTokenId.write(value.l2_source_token, buf)\n        _UniffiConverterTypeTokenId.write(value.l1_target_token, buf)\n        _UniffiConverterTypeNonce.write(value.initiator_nonce, buf)\n        _UniffiConverterTypeBigUint.write(value.exit_amount, buf)\n        _UniffiConverterBool.write(value.withdraw_to_l1, buf)\n        _UniffiConverterTypeTimeStamp.write(value.timestamp, buf)\n\n\nclass FullExitBuilder:\n    to_chain_id: \"ChainId\";account_id: \"AccountId\";sub_account_id: \"SubAccountId\";exit_address: \"ZkLinkAddress\";l2_source_token: \"TokenId\";l1_target_token: \"TokenId\";contract_prices: \"typing.List[ContractPrice]\";margin_prices: \"typing.List[SpotPriceInfo]\";serial_id: \"int\";l2_hash: \"H256\";\n\n    @typing.no_type_check\n    def __init__(self, to_chain_id: \"ChainId\", account_id: \"AccountId\", sub_account_id: \"SubAccountId\", exit_address: \"ZkLinkAddress\", l2_source_token: \"TokenId\", l1_target_token: \"TokenId\", contract_prices: \"typing.List[ContractPrice]\", margin_prices: \"typing.List[SpotPriceInfo]\", serial_id: \"int\", l2_hash: \"H256\"):\n        self.to_chain_id = to_chain_id\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.exit_address = exit_address\n        self.l2_source_token = l2_source_token\n        self.l1_target_token = l1_target_token\n        self.contract_prices = contract_prices\n        self.margin_prices = margin_prices\n        self.serial_id = serial_id\n        self.l2_hash = l2_hash\n\n    def __str__(self):\n        return \"FullExitBuilder(to_chain_id={}, account_id={}, sub_account_id={}, exit_address={}, l2_source_token={}, l1_target_token={}, contract_prices={}, margin_prices={}, serial_id={}, l2_hash={})\".format(self.to_chain_id, self.account_id, self.sub_account_id, self.exit_address, self.l2_source_token, self.l1_target_token, self.contract_prices, self.margin_prices, self.serial_id, self.l2_hash)\n\n    def __eq__(self, other):\n        if self.to_chain_id != other.to_chain_id:\n            return False\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.exit_address != other.exit_address:\n            return False\n        if self.l2_source_token != other.l2_source_token:\n            return False\n        if self.l1_target_token != other.l1_target_token:\n            return False\n        if self.contract_prices != other.contract_prices:\n            return False\n        if self.margin_prices != other.margin_prices:\n            return False\n        if self.serial_id != other.serial_id:\n            return False\n        if self.l2_hash != other.l2_hash:\n            return False\n        return True\n\nclass _UniffiConverterTypeFullExitBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return FullExitBuilder(\n            to_chain_id=_UniffiConverterTypeChainId.read(buf),\n            account_id=_UniffiConverterTypeAccountId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            exit_address=_UniffiConverterTypeZkLinkAddress.read(buf),\n            l2_source_token=_UniffiConverterTypeTokenId.read(buf),\n            l1_target_token=_UniffiConverterTypeTokenId.read(buf),\n            contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf),\n            margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf),\n            serial_id=_UniffiConverterUInt64.read(buf),\n            l2_hash=_UniffiConverterTypeH256.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeChainId.write(value.to_chain_id, buf)\n        _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypeZkLinkAddress.write(value.exit_address, buf)\n        _UniffiConverterTypeTokenId.write(value.l2_source_token, buf)\n        _UniffiConverterTypeTokenId.write(value.l1_target_token, buf)\n        _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf)\n        _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf)\n        _UniffiConverterUInt64.write(value.serial_id, buf)\n        _UniffiConverterTypeH256.write(value.l2_hash, buf)\n\n\nclass FundingBuilder:\n    account_id: \"AccountId\";sub_account_id: \"SubAccountId\";sub_account_nonce: \"Nonce\";funding_account_ids: \"typing.List[AccountId]\";fee: \"BigUint\";fee_token: \"TokenId\";\n\n    @typing.no_type_check\n    def __init__(self, account_id: \"AccountId\", sub_account_id: \"SubAccountId\", sub_account_nonce: \"Nonce\", funding_account_ids: \"typing.List[AccountId]\", fee: \"BigUint\", fee_token: \"TokenId\"):\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.sub_account_nonce = sub_account_nonce\n        self.funding_account_ids = funding_account_ids\n        self.fee = fee\n        self.fee_token = fee_token\n\n    def __str__(self):\n        return \"FundingBuilder(account_id={}, sub_account_id={}, sub_account_nonce={}, funding_account_ids={}, fee={}, fee_token={})\".format(self.account_id, self.sub_account_id, self.sub_account_nonce, self.funding_account_ids, self.fee, self.fee_token)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.sub_account_nonce != other.sub_account_nonce:\n            return False\n        if self.funding_account_ids != other.funding_account_ids:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.fee_token != other.fee_token:\n            return False\n        return True\n\nclass _UniffiConverterTypeFundingBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return FundingBuilder(\n            account_id=_UniffiConverterTypeAccountId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            sub_account_nonce=_UniffiConverterTypeNonce.read(buf),\n            funding_account_ids=_UniffiConverterSequenceTypeAccountId.read(buf),\n            fee=_UniffiConverterTypeBigUint.read(buf),\n            fee_token=_UniffiConverterTypeTokenId.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypeNonce.write(value.sub_account_nonce, buf)\n        _UniffiConverterSequenceTypeAccountId.write(value.funding_account_ids, buf)\n        _UniffiConverterTypeBigUint.write(value.fee, buf)\n        _UniffiConverterTypeTokenId.write(value.fee_token, buf)\n\n\nclass FundingInfo:\n    pair_id: \"PairId\";price: \"BigUint\";funding_rate: \"int\";\n\n    @typing.no_type_check\n    def __init__(self, pair_id: \"PairId\", price: \"BigUint\", funding_rate: \"int\"):\n        self.pair_id = pair_id\n        self.price = price\n        self.funding_rate = funding_rate\n\n    def __str__(self):\n        return \"FundingInfo(pair_id={}, price={}, funding_rate={})\".format(self.pair_id, self.price, self.funding_rate)\n\n    def __eq__(self, other):\n        if self.pair_id != other.pair_id:\n            return False\n        if self.price != other.price:\n            return False\n        if self.funding_rate != other.funding_rate:\n            return False\n        return True\n\nclass _UniffiConverterTypeFundingInfo(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return FundingInfo(\n            pair_id=_UniffiConverterTypePairId.read(buf),\n            price=_UniffiConverterTypeBigUint.read(buf),\n            funding_rate=_UniffiConverterInt16.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypePairId.write(value.pair_id, buf)\n        _UniffiConverterTypeBigUint.write(value.price, buf)\n        _UniffiConverterInt16.write(value.funding_rate, buf)\n\n\nclass LiquidationBuilder:\n    account_id: \"AccountId\";sub_account_id: \"SubAccountId\";sub_account_nonce: \"Nonce\";contract_prices: \"typing.List[ContractPrice]\";margin_prices: \"typing.List[SpotPriceInfo]\";liquidation_account_id: \"AccountId\";fee: \"BigUint\";fee_token: \"TokenId\";\n\n    @typing.no_type_check\n    def __init__(self, account_id: \"AccountId\", sub_account_id: \"SubAccountId\", sub_account_nonce: \"Nonce\", contract_prices: \"typing.List[ContractPrice]\", margin_prices: \"typing.List[SpotPriceInfo]\", liquidation_account_id: \"AccountId\", fee: \"BigUint\", fee_token: \"TokenId\"):\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.sub_account_nonce = sub_account_nonce\n        self.contract_prices = contract_prices\n        self.margin_prices = margin_prices\n        self.liquidation_account_id = liquidation_account_id\n        self.fee = fee\n        self.fee_token = fee_token\n\n    def __str__(self):\n        return \"LiquidationBuilder(account_id={}, sub_account_id={}, sub_account_nonce={}, contract_prices={}, margin_prices={}, liquidation_account_id={}, fee={}, fee_token={})\".format(self.account_id, self.sub_account_id, self.sub_account_nonce, self.contract_prices, self.margin_prices, self.liquidation_account_id, self.fee, self.fee_token)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.sub_account_nonce != other.sub_account_nonce:\n            return False\n        if self.contract_prices != other.contract_prices:\n            return False\n        if self.margin_prices != other.margin_prices:\n            return False\n        if self.liquidation_account_id != other.liquidation_account_id:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.fee_token != other.fee_token:\n            return False\n        return True\n\nclass _UniffiConverterTypeLiquidationBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return LiquidationBuilder(\n            account_id=_UniffiConverterTypeAccountId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            sub_account_nonce=_UniffiConverterTypeNonce.read(buf),\n            contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf),\n            margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf),\n            liquidation_account_id=_UniffiConverterTypeAccountId.read(buf),\n            fee=_UniffiConverterTypeBigUint.read(buf),\n            fee_token=_UniffiConverterTypeTokenId.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypeNonce.write(value.sub_account_nonce, buf)\n        _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf)\n        _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf)\n        _UniffiConverterTypeAccountId.write(value.liquidation_account_id, buf)\n        _UniffiConverterTypeBigUint.write(value.fee, buf)\n        _UniffiConverterTypeTokenId.write(value.fee_token, buf)\n\n\nclass Message:\n    data: str;\n\n    @typing.no_type_check\n    def __init__(self, data: str):\n        self.data = data\n\n    def __str__(self):\n        return \"Message(data={})\".format(self.data)\n\n    def __eq__(self, other):\n        if self.data != other.data:\n            return False\n        return True\n\nclass _UniffiConverterTypeMessage(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return Message(\n            data=_UniffiConverterString.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value.data, buf)\n\n\nclass OraclePrices:\n    contract_prices: \"typing.List[ContractPrice]\";margin_prices: \"typing.List[SpotPriceInfo]\";\n\n    @typing.no_type_check\n    def __init__(self, contract_prices: \"typing.List[ContractPrice]\", margin_prices: \"typing.List[SpotPriceInfo]\"):\n        self.contract_prices = contract_prices\n        self.margin_prices = margin_prices\n\n    def __str__(self):\n        return \"OraclePrices(contract_prices={}, margin_prices={})\".format(self.contract_prices, self.margin_prices)\n\n    def __eq__(self, other):\n        if self.contract_prices != other.contract_prices:\n            return False\n        if self.margin_prices != other.margin_prices:\n            return False\n        return True\n\nclass _UniffiConverterTypeOraclePrices(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return OraclePrices(\n            contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf),\n            margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf)\n        _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf)\n\n\nclass OrderMatchingBuilder:\n    account_id: \"AccountId\";sub_account_id: \"SubAccountId\";taker: \"Order\";maker: \"Order\";fee: \"BigUint\";fee_token: \"TokenId\";contract_prices: \"typing.List[ContractPrice]\";margin_prices: \"typing.List[SpotPriceInfo]\";expect_base_amount: \"BigUint\";expect_quote_amount: \"BigUint\";\n\n    @typing.no_type_check\n    def __init__(self, account_id: \"AccountId\", sub_account_id: \"SubAccountId\", taker: \"Order\", maker: \"Order\", fee: \"BigUint\", fee_token: \"TokenId\", contract_prices: \"typing.List[ContractPrice]\", margin_prices: \"typing.List[SpotPriceInfo]\", expect_base_amount: \"BigUint\", expect_quote_amount: \"BigUint\"):\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.taker = taker\n        self.maker = maker\n        self.fee = fee\n        self.fee_token = fee_token\n        self.contract_prices = contract_prices\n        self.margin_prices = margin_prices\n        self.expect_base_amount = expect_base_amount\n        self.expect_quote_amount = expect_quote_amount\n\n    def __str__(self):\n        return \"OrderMatchingBuilder(account_id={}, sub_account_id={}, taker={}, maker={}, fee={}, fee_token={}, contract_prices={}, margin_prices={}, expect_base_amount={}, expect_quote_amount={})\".format(self.account_id, self.sub_account_id, self.taker, self.maker, self.fee, self.fee_token, self.contract_prices, self.margin_prices, self.expect_base_amount, self.expect_quote_amount)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.taker != other.taker:\n            return False\n        if self.maker != other.maker:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.fee_token != other.fee_token:\n            return False\n        if self.contract_prices != other.contract_prices:\n            return False\n        if self.margin_prices != other.margin_prices:\n            return False\n        if self.expect_base_amount != other.expect_base_amount:\n            return False\n        if self.expect_quote_amount != other.expect_quote_amount:\n            return False\n        return True\n\nclass _UniffiConverterTypeOrderMatchingBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return OrderMatchingBuilder(\n            account_id=_UniffiConverterTypeAccountId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            taker=_UniffiConverterTypeOrder.read(buf),\n            maker=_UniffiConverterTypeOrder.read(buf),\n            fee=_UniffiConverterTypeBigUint.read(buf),\n            fee_token=_UniffiConverterTypeTokenId.read(buf),\n            contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf),\n            margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf),\n            expect_base_amount=_UniffiConverterTypeBigUint.read(buf),\n            expect_quote_amount=_UniffiConverterTypeBigUint.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypeOrder.write(value.taker, buf)\n        _UniffiConverterTypeOrder.write(value.maker, buf)\n        _UniffiConverterTypeBigUint.write(value.fee, buf)\n        _UniffiConverterTypeTokenId.write(value.fee_token, buf)\n        _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf)\n        _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf)\n        _UniffiConverterTypeBigUint.write(value.expect_base_amount, buf)\n        _UniffiConverterTypeBigUint.write(value.expect_quote_amount, buf)\n\n\nclass SpotPriceInfo:\n    token_id: \"TokenId\";price: \"BigUint\";\n\n    @typing.no_type_check\n    def __init__(self, token_id: \"TokenId\", price: \"BigUint\"):\n        self.token_id = token_id\n        self.price = price\n\n    def __str__(self):\n        return \"SpotPriceInfo(token_id={}, price={})\".format(self.token_id, self.price)\n\n    def __eq__(self, other):\n        if self.token_id != other.token_id:\n            return False\n        if self.price != other.price:\n            return False\n        return True\n\nclass _UniffiConverterTypeSpotPriceInfo(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return SpotPriceInfo(\n            token_id=_UniffiConverterTypeTokenId.read(buf),\n            price=_UniffiConverterTypeBigUint.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeTokenId.write(value.token_id, buf)\n        _UniffiConverterTypeBigUint.write(value.price, buf)\n\n\nclass TransferBuilder:\n    account_id: \"AccountId\";to_address: \"ZkLinkAddress\";from_sub_account_id: \"SubAccountId\";to_sub_account_id: \"SubAccountId\";token: \"TokenId\";amount: \"BigUint\";fee: \"BigUint\";nonce: \"Nonce\";timestamp: \"TimeStamp\";\n\n    @typing.no_type_check\n    def __init__(self, account_id: \"AccountId\", to_address: \"ZkLinkAddress\", from_sub_account_id: \"SubAccountId\", to_sub_account_id: \"SubAccountId\", token: \"TokenId\", amount: \"BigUint\", fee: \"BigUint\", nonce: \"Nonce\", timestamp: \"TimeStamp\"):\n        self.account_id = account_id\n        self.to_address = to_address\n        self.from_sub_account_id = from_sub_account_id\n        self.to_sub_account_id = to_sub_account_id\n        self.token = token\n        self.amount = amount\n        self.fee = fee\n        self.nonce = nonce\n        self.timestamp = timestamp\n\n    def __str__(self):\n        return \"TransferBuilder(account_id={}, to_address={}, from_sub_account_id={}, to_sub_account_id={}, token={}, amount={}, fee={}, nonce={}, timestamp={})\".format(self.account_id, self.to_address, self.from_sub_account_id, self.to_sub_account_id, self.token, self.amount, self.fee, self.nonce, self.timestamp)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.to_address != other.to_address:\n            return False\n        if self.from_sub_account_id != other.from_sub_account_id:\n            return False\n        if self.to_sub_account_id != other.to_sub_account_id:\n            return False\n        if self.token != other.token:\n            return False\n        if self.amount != other.amount:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.nonce != other.nonce:\n            return False\n        if self.timestamp != other.timestamp:\n            return False\n        return True\n\nclass _UniffiConverterTypeTransferBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return TransferBuilder(\n            account_id=_UniffiConverterTypeAccountId.read(buf),\n            to_address=_UniffiConverterTypeZkLinkAddress.read(buf),\n            from_sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            to_sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            token=_UniffiConverterTypeTokenId.read(buf),\n            amount=_UniffiConverterTypeBigUint.read(buf),\n            fee=_UniffiConverterTypeBigUint.read(buf),\n            nonce=_UniffiConverterTypeNonce.read(buf),\n            timestamp=_UniffiConverterTypeTimeStamp.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        _UniffiConverterTypeZkLinkAddress.write(value.to_address, buf)\n        _UniffiConverterTypeSubAccountId.write(value.from_sub_account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.to_sub_account_id, buf)\n        _UniffiConverterTypeTokenId.write(value.token, buf)\n        _UniffiConverterTypeBigUint.write(value.amount, buf)\n        _UniffiConverterTypeBigUint.write(value.fee, buf)\n        _UniffiConverterTypeNonce.write(value.nonce, buf)\n        _UniffiConverterTypeTimeStamp.write(value.timestamp, buf)\n\n\nclass TxMessage:\n    transaction: str;amount: str;fee: str;token: str;to: str;nonce: str;\n\n    @typing.no_type_check\n    def __init__(self, transaction: str, amount: str, fee: str, token: str, to: str, nonce: str):\n        self.transaction = transaction\n        self.amount = amount\n        self.fee = fee\n        self.token = token\n        self.to = to\n        self.nonce = nonce\n\n    def __str__(self):\n        return \"TxMessage(transaction={}, amount={}, fee={}, token={}, to={}, nonce={})\".format(self.transaction, self.amount, self.fee, self.token, self.to, self.nonce)\n\n    def __eq__(self, other):\n        if self.transaction != other.transaction:\n            return False\n        if self.amount != other.amount:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.token != other.token:\n            return False\n        if self.to != other.to:\n            return False\n        if self.nonce != other.nonce:\n            return False\n        return True\n\nclass _UniffiConverterTypeTxMessage(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return TxMessage(\n            transaction=_UniffiConverterString.read(buf),\n            amount=_UniffiConverterString.read(buf),\n            fee=_UniffiConverterString.read(buf),\n            token=_UniffiConverterString.read(buf),\n            to=_UniffiConverterString.read(buf),\n            nonce=_UniffiConverterString.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value.transaction, buf)\n        _UniffiConverterString.write(value.amount, buf)\n        _UniffiConverterString.write(value.fee, buf)\n        _UniffiConverterString.write(value.token, buf)\n        _UniffiConverterString.write(value.to, buf)\n        _UniffiConverterString.write(value.nonce, buf)\n\n\nclass TxSignature:\n    tx: \"ZkLinkTx\";layer1_signature: \"typing.Optional[TxLayer1Signature]\";\n\n    @typing.no_type_check\n    def __init__(self, tx: \"ZkLinkTx\", layer1_signature: \"typing.Optional[TxLayer1Signature]\"):\n        self.tx = tx\n        self.layer1_signature = layer1_signature\n\n    def __str__(self):\n        return \"TxSignature(tx={}, layer1_signature={})\".format(self.tx, self.layer1_signature)\n\n    def __eq__(self, other):\n        if self.tx != other.tx:\n            return False\n        if self.layer1_signature != other.layer1_signature:\n            return False\n        return True\n\nclass _UniffiConverterTypeTxSignature(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return TxSignature(\n            tx=_UniffiConverterTypeZkLinkTx.read(buf),\n            layer1_signature=_UniffiConverterOptionalTypeTxLayer1Signature.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeZkLinkTx.write(value.tx, buf)\n        _UniffiConverterOptionalTypeTxLayer1Signature.write(value.layer1_signature, buf)\n\n\nclass UpdateGlobalVarBuilder:\n    from_chain_id: \"ChainId\";sub_account_id: \"SubAccountId\";parameter: \"Parameter\";serial_id: \"int\";\n\n    @typing.no_type_check\n    def __init__(self, from_chain_id: \"ChainId\", sub_account_id: \"SubAccountId\", parameter: \"Parameter\", serial_id: \"int\"):\n        self.from_chain_id = from_chain_id\n        self.sub_account_id = sub_account_id\n        self.parameter = parameter\n        self.serial_id = serial_id\n\n    def __str__(self):\n        return \"UpdateGlobalVarBuilder(from_chain_id={}, sub_account_id={}, parameter={}, serial_id={})\".format(self.from_chain_id, self.sub_account_id, self.parameter, self.serial_id)\n\n    def __eq__(self, other):\n        if self.from_chain_id != other.from_chain_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.parameter != other.parameter:\n            return False\n        if self.serial_id != other.serial_id:\n            return False\n        return True\n\nclass _UniffiConverterTypeUpdateGlobalVarBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return UpdateGlobalVarBuilder(\n            from_chain_id=_UniffiConverterTypeChainId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            parameter=_UniffiConverterTypeParameter.read(buf),\n            serial_id=_UniffiConverterUInt64.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeChainId.write(value.from_chain_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypeParameter.write(value.parameter, buf)\n        _UniffiConverterUInt64.write(value.serial_id, buf)\n\n\nclass WithdrawBuilder:\n    account_id: \"AccountId\";sub_account_id: \"SubAccountId\";to_chain_id: \"ChainId\";to_address: \"ZkLinkAddress\";l2_source_token: \"TokenId\";l1_target_token: \"TokenId\";amount: \"BigUint\";call_data: \"typing.Optional[typing.List[int]]\";fee: \"BigUint\";nonce: \"Nonce\";withdraw_fee_ratio: \"int\";withdraw_to_l1: bool;timestamp: \"TimeStamp\";\n\n    @typing.no_type_check\n    def __init__(self, account_id: \"AccountId\", sub_account_id: \"SubAccountId\", to_chain_id: \"ChainId\", to_address: \"ZkLinkAddress\", l2_source_token: \"TokenId\", l1_target_token: \"TokenId\", amount: \"BigUint\", call_data: \"typing.Optional[typing.List[int]]\", fee: \"BigUint\", nonce: \"Nonce\", withdraw_fee_ratio: \"int\", withdraw_to_l1: bool, timestamp: \"TimeStamp\"):\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.to_chain_id = to_chain_id\n        self.to_address = to_address\n        self.l2_source_token = l2_source_token\n        self.l1_target_token = l1_target_token\n        self.amount = amount\n        self.call_data = call_data\n        self.fee = fee\n        self.nonce = nonce\n        self.withdraw_fee_ratio = withdraw_fee_ratio\n        self.withdraw_to_l1 = withdraw_to_l1\n        self.timestamp = timestamp\n\n    def __str__(self):\n        return \"WithdrawBuilder(account_id={}, sub_account_id={}, to_chain_id={}, to_address={}, l2_source_token={}, l1_target_token={}, amount={}, call_data={}, fee={}, nonce={}, withdraw_fee_ratio={}, withdraw_to_l1={}, timestamp={})\".format(self.account_id, self.sub_account_id, self.to_chain_id, self.to_address, self.l2_source_token, self.l1_target_token, self.amount, self.call_data, self.fee, self.nonce, self.withdraw_fee_ratio, self.withdraw_to_l1, self.timestamp)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.to_chain_id != other.to_chain_id:\n            return False\n        if self.to_address != other.to_address:\n            return False\n        if self.l2_source_token != other.l2_source_token:\n            return False\n        if self.l1_target_token != other.l1_target_token:\n            return False\n        if self.amount != other.amount:\n            return False\n        if self.call_data != other.call_data:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.nonce != other.nonce:\n            return False\n        if self.withdraw_fee_ratio != other.withdraw_fee_ratio:\n            return False\n        if self.withdraw_to_l1 != other.withdraw_to_l1:\n            return False\n        if self.timestamp != other.timestamp:\n            return False\n        return True\n\nclass _UniffiConverterTypeWithdrawBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return WithdrawBuilder(\n            account_id=_UniffiConverterTypeAccountId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            to_chain_id=_UniffiConverterTypeChainId.read(buf),\n            to_address=_UniffiConverterTypeZkLinkAddress.read(buf),\n            l2_source_token=_UniffiConverterTypeTokenId.read(buf),\n            l1_target_token=_UniffiConverterTypeTokenId.read(buf),\n            amount=_UniffiConverterTypeBigUint.read(buf),\n            call_data=_UniffiConverterOptionalSequenceUInt8.read(buf),\n            fee=_UniffiConverterTypeBigUint.read(buf),\n            nonce=_UniffiConverterTypeNonce.read(buf),\n            withdraw_fee_ratio=_UniffiConverterUInt16.read(buf),\n            withdraw_to_l1=_UniffiConverterBool.read(buf),\n            timestamp=_UniffiConverterTypeTimeStamp.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypeChainId.write(value.to_chain_id, buf)\n        _UniffiConverterTypeZkLinkAddress.write(value.to_address, buf)\n        _UniffiConverterTypeTokenId.write(value.l2_source_token, buf)\n        _UniffiConverterTypeTokenId.write(value.l1_target_token, buf)\n        _UniffiConverterTypeBigUint.write(value.amount, buf)\n        _UniffiConverterOptionalSequenceUInt8.write(value.call_data, buf)\n        _UniffiConverterTypeBigUint.write(value.fee, buf)\n        _UniffiConverterTypeNonce.write(value.nonce, buf)\n        _UniffiConverterUInt16.write(value.withdraw_fee_ratio, buf)\n        _UniffiConverterBool.write(value.withdraw_to_l1, buf)\n        _UniffiConverterTypeTimeStamp.write(value.timestamp, buf)\n\n\nclass ZkLinkSignature:\n    pub_key: \"PackedPublicKey\";signature: \"PackedSignature\";\n\n    @typing.no_type_check\n    def __init__(self, pub_key: \"PackedPublicKey\", signature: \"PackedSignature\"):\n        self.pub_key = pub_key\n        self.signature = signature\n\n    def __str__(self):\n        return \"ZkLinkSignature(pub_key={}, signature={})\".format(self.pub_key, self.signature)\n\n    def __eq__(self, other):\n        if self.pub_key != other.pub_key:\n            return False\n        if self.signature != other.signature:\n            return False\n        return True\n\nclass _UniffiConverterTypeZkLinkSignature(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return ZkLinkSignature(\n            pub_key=_UniffiConverterTypePackedPublicKey.read(buf),\n            signature=_UniffiConverterTypePackedSignature.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypePackedPublicKey.write(value.pub_key, buf)\n        _UniffiConverterTypePackedSignature.write(value.signature, buf)\n\n\n\n\n\nclass ChangePubKeyAuthData:\n    def __init__(self):\n        raise RuntimeError(\"ChangePubKeyAuthData cannot be instantiated directly\")\n\n    # Each enum variant is a nested class of the enum itself.\n    class ONCHAIN:\n        \n\n        @typing.no_type_check\n        def __init__(self,):\n            \n            pass\n            \n\n        def __str__(self):\n            return \"ChangePubKeyAuthData.ONCHAIN()\".format()\n\n        def __eq__(self, other):\n            if not other.is_onchain():\n                return False\n            return True\n    class ETH_ECDSA:\n        eth_signature: \"PackedEthSignature\";\n\n        @typing.no_type_check\n        def __init__(self,eth_signature: \"PackedEthSignature\"):\n            \n            self.eth_signature = eth_signature\n            \n\n        def __str__(self):\n            return \"ChangePubKeyAuthData.ETH_ECDSA(eth_signature={})\".format(self.eth_signature)\n\n        def __eq__(self, other):\n            if not other.is_eth_ecdsa():\n                return False\n            if self.eth_signature != other.eth_signature:\n                return False\n            return True\n    class ETH_CREATE2:\n        data: \"Create2Data\";\n\n        @typing.no_type_check\n        def __init__(self,data: \"Create2Data\"):\n            \n            self.data = data\n            \n\n        def __str__(self):\n            return \"ChangePubKeyAuthData.ETH_CREATE2(data={})\".format(self.data)\n\n        def __eq__(self, other):\n            if not other.is_eth_create2():\n                return False\n            if self.data != other.data:\n                return False\n            return True\n    \n\n    # For each variant, we have an `is_NAME` method for easily checking\n    # whether an instance is that variant.\n    def is_onchain(self) -> bool:\n        return isinstance(self, ChangePubKeyAuthData.ONCHAIN)\n    def is_eth_ecdsa(self) -> bool:\n        return isinstance(self, ChangePubKeyAuthData.ETH_ECDSA)\n    def is_eth_create2(self) -> bool:\n        return isinstance(self, ChangePubKeyAuthData.ETH_CREATE2)\n    \n\n# Now, a little trick - we make each nested variant class be a subclass of the main\n# enum class, so that method calls and instance checks etc will work intuitively.\n# We might be able to do this a little more neatly with a metaclass, but this'll do.\nChangePubKeyAuthData.ONCHAIN = type(\"ChangePubKeyAuthData.ONCHAIN\", (ChangePubKeyAuthData.ONCHAIN, ChangePubKeyAuthData,), {})  # type: ignore\nChangePubKeyAuthData.ETH_ECDSA = type(\"ChangePubKeyAuthData.ETH_ECDSA\", (ChangePubKeyAuthData.ETH_ECDSA, ChangePubKeyAuthData,), {})  # type: ignore\nChangePubKeyAuthData.ETH_CREATE2 = type(\"ChangePubKeyAuthData.ETH_CREATE2\", (ChangePubKeyAuthData.ETH_CREATE2, ChangePubKeyAuthData,), {})  # type: ignore\n\n\n\n\nclass _UniffiConverterTypeChangePubKeyAuthData(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return ChangePubKeyAuthData.ONCHAIN(\n            )\n        if variant == 2:\n            return ChangePubKeyAuthData.ETH_ECDSA(\n                _UniffiConverterTypePackedEthSignature.read(buf),\n            )\n        if variant == 3:\n            return ChangePubKeyAuthData.ETH_CREATE2(\n                _UniffiConverterTypeCreate2Data.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    def write(value, buf):\n        if value.is_onchain():\n            buf.write_i32(1)\n        if value.is_eth_ecdsa():\n            buf.write_i32(2)\n            _UniffiConverterTypePackedEthSignature.write(value.eth_signature, buf)\n        if value.is_eth_create2():\n            buf.write_i32(3)\n            _UniffiConverterTypeCreate2Data.write(value.data, buf)\n\n\n\n\n\n\n\nclass ChangePubKeyAuthRequest:\n    def __init__(self):\n        raise RuntimeError(\"ChangePubKeyAuthRequest cannot be instantiated directly\")\n\n    # Each enum variant is a nested class of the enum itself.\n    class ONCHAIN:\n        \n\n        @typing.no_type_check\n        def __init__(self,):\n            \n            pass\n            \n\n        def __str__(self):\n            return \"ChangePubKeyAuthRequest.ONCHAIN()\".format()\n\n        def __eq__(self, other):\n            if not other.is_onchain():\n                return False\n            return True\n    class ETH_ECDSA:\n        \n\n        @typing.no_type_check\n        def __init__(self,):\n            \n            pass\n            \n\n        def __str__(self):\n            return \"ChangePubKeyAuthRequest.ETH_ECDSA()\".format()\n\n        def __eq__(self, other):\n            if not other.is_eth_ecdsa():\n                return False\n            return True\n    class ETH_CREATE2:\n        data: \"Create2Data\";\n\n        @typing.no_type_check\n        def __init__(self,data: \"Create2Data\"):\n            \n            self.data = data\n            \n\n        def __str__(self):\n            return \"ChangePubKeyAuthRequest.ETH_CREATE2(data={})\".format(self.data)\n\n        def __eq__(self, other):\n            if not other.is_eth_create2():\n                return False\n            if self.data != other.data:\n                return False\n            return True\n    \n\n    # For each variant, we have an `is_NAME` method for easily checking\n    # whether an instance is that variant.\n    def is_onchain(self) -> bool:\n        return isinstance(self, ChangePubKeyAuthRequest.ONCHAIN)\n    def is_eth_ecdsa(self) -> bool:\n        return isinstance(self, ChangePubKeyAuthRequest.ETH_ECDSA)\n    def is_eth_create2(self) -> bool:\n        return isinstance(self, ChangePubKeyAuthRequest.ETH_CREATE2)\n    \n\n# Now, a little trick - we make each nested variant class be a subclass of the main\n# enum class, so that method calls and instance checks etc will work intuitively.\n# We might be able to do this a little more neatly with a metaclass, but this'll do.\nChangePubKeyAuthRequest.ONCHAIN = type(\"ChangePubKeyAuthRequest.ONCHAIN\", (ChangePubKeyAuthRequest.ONCHAIN, ChangePubKeyAuthRequest,), {})  # type: ignore\nChangePubKeyAuthRequest.ETH_ECDSA = type(\"ChangePubKeyAuthRequest.ETH_ECDSA\", (ChangePubKeyAuthRequest.ETH_ECDSA, ChangePubKeyAuthRequest,), {})  # type: ignore\nChangePubKeyAuthRequest.ETH_CREATE2 = type(\"ChangePubKeyAuthRequest.ETH_CREATE2\", (ChangePubKeyAuthRequest.ETH_CREATE2, ChangePubKeyAuthRequest,), {})  # type: ignore\n\n\n\n\nclass _UniffiConverterTypeChangePubKeyAuthRequest(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return ChangePubKeyAuthRequest.ONCHAIN(\n            )\n        if variant == 2:\n            return ChangePubKeyAuthRequest.ETH_ECDSA(\n            )\n        if variant == 3:\n            return ChangePubKeyAuthRequest.ETH_CREATE2(\n                _UniffiConverterTypeCreate2Data.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    def write(value, buf):\n        if value.is_onchain():\n            buf.write_i32(1)\n        if value.is_eth_ecdsa():\n            buf.write_i32(2)\n        if value.is_eth_create2():\n            buf.write_i32(3)\n            _UniffiConverterTypeCreate2Data.write(value.data, buf)\n\n\n\n\n# EthSignerError\n# We want to define each variant as a nested class that's also a subclass,\n# which is tricky in Python.  To accomplish this we're going to create each\n# class separately, then manually add the child classes to the base class's\n# __dict__.  All of this happens in dummy class to avoid polluting the module\n# namespace.\nclass EthSignerError(Exception):\n    pass\n\n_UniffiTempEthSignerError = EthSignerError\n\nclass EthSignerError:  # type: ignore\n    class InvalidEthSigner(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.InvalidEthSigner({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.InvalidEthSigner = InvalidEthSigner # type: ignore\n    class MissingEthPrivateKey(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.MissingEthPrivateKey({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.MissingEthPrivateKey = MissingEthPrivateKey # type: ignore\n    class MissingEthSigner(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.MissingEthSigner({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.MissingEthSigner = MissingEthSigner # type: ignore\n    class SigningFailed(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.SigningFailed({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.SigningFailed = SigningFailed # type: ignore\n    class UnlockingFailed(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.UnlockingFailed({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.UnlockingFailed = UnlockingFailed # type: ignore\n    class InvalidRawTx(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.InvalidRawTx({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.InvalidRawTx = InvalidRawTx # type: ignore\n    class Eip712Failed(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.Eip712Failed({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.Eip712Failed = Eip712Failed # type: ignore\n    class NoSigningKey(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.NoSigningKey({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.NoSigningKey = NoSigningKey # type: ignore\n    class DefineAddress(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.DefineAddress({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.DefineAddress = DefineAddress # type: ignore\n    class RecoverAddress(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.RecoverAddress({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.RecoverAddress = RecoverAddress # type: ignore\n    class LengthMismatched(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.LengthMismatched({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.LengthMismatched = LengthMismatched # type: ignore\n    class CryptoError(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.CryptoError({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.CryptoError = CryptoError # type: ignore\n    class InvalidSignatureStr(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.InvalidSignatureStr({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.InvalidSignatureStr = InvalidSignatureStr # type: ignore\n    class CustomError(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.CustomError({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.CustomError = CustomError # type: ignore\n    class RpcSignError(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.RpcSignError({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.RpcSignError = RpcSignError # type: ignore\n\nEthSignerError = _UniffiTempEthSignerError # type: ignore\ndel _UniffiTempEthSignerError\n\n\nclass _UniffiConverterTypeEthSignerError(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return EthSignerError.InvalidEthSigner(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 2:\n            return EthSignerError.MissingEthPrivateKey(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 3:\n            return EthSignerError.MissingEthSigner(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 4:\n            return EthSignerError.SigningFailed(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 5:\n            return EthSignerError.UnlockingFailed(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 6:\n            return EthSignerError.InvalidRawTx(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 7:\n            return EthSignerError.Eip712Failed(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 8:\n            return EthSignerError.NoSigningKey(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 9:\n            return EthSignerError.DefineAddress(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 10:\n            return EthSignerError.RecoverAddress(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 11:\n            return EthSignerError.LengthMismatched(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 12:\n            return EthSignerError.CryptoError(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 13:\n            return EthSignerError.InvalidSignatureStr(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 14:\n            return EthSignerError.CustomError(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 15:\n            return EthSignerError.RpcSignError(\n                _UniffiConverterString.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    @staticmethod\n    def write(value, buf):\n        if isinstance(value, EthSignerError.InvalidEthSigner):\n            buf.write_i32(1)\n        if isinstance(value, EthSignerError.MissingEthPrivateKey):\n            buf.write_i32(2)\n        if isinstance(value, EthSignerError.MissingEthSigner):\n            buf.write_i32(3)\n        if isinstance(value, EthSignerError.SigningFailed):\n            buf.write_i32(4)\n        if isinstance(value, EthSignerError.UnlockingFailed):\n            buf.write_i32(5)\n        if isinstance(value, EthSignerError.InvalidRawTx):\n            buf.write_i32(6)\n        if isinstance(value, EthSignerError.Eip712Failed):\n            buf.write_i32(7)\n        if isinstance(value, EthSignerError.NoSigningKey):\n            buf.write_i32(8)\n        if isinstance(value, EthSignerError.DefineAddress):\n            buf.write_i32(9)\n        if isinstance(value, EthSignerError.RecoverAddress):\n            buf.write_i32(10)\n        if isinstance(value, EthSignerError.LengthMismatched):\n            buf.write_i32(11)\n        if isinstance(value, EthSignerError.CryptoError):\n            buf.write_i32(12)\n        if isinstance(value, EthSignerError.InvalidSignatureStr):\n            buf.write_i32(13)\n        if isinstance(value, EthSignerError.CustomError):\n            buf.write_i32(14)\n        if isinstance(value, EthSignerError.RpcSignError):\n            buf.write_i32(15)\n\n\n\n\n\nclass L1SignerType:\n    def __init__(self):\n        raise RuntimeError(\"L1SignerType cannot be instantiated directly\")\n\n    # Each enum variant is a nested class of the enum itself.\n    class ETH:\n        \n\n        @typing.no_type_check\n        def __init__(self,):\n            \n            pass\n            \n\n        def __str__(self):\n            return \"L1SignerType.ETH()\".format()\n\n        def __eq__(self, other):\n            if not other.is_eth():\n                return False\n            return True\n    class STARKNET:\n        chain_id: str;address: str;\n\n        @typing.no_type_check\n        def __init__(self,chain_id: str, address: str):\n            \n            self.chain_id = chain_id\n            self.address = address\n            \n\n        def __str__(self):\n            return \"L1SignerType.STARKNET(chain_id={}, address={})\".format(self.chain_id, self.address)\n\n        def __eq__(self, other):\n            if not other.is_starknet():\n                return False\n            if self.chain_id != other.chain_id:\n                return False\n            if self.address != other.address:\n                return False\n            return True\n    \n\n    # For each variant, we have an `is_NAME` method for easily checking\n    # whether an instance is that variant.\n    def is_eth(self) -> bool:\n        return isinstance(self, L1SignerType.ETH)\n    def is_starknet(self) -> bool:\n        return isinstance(self, L1SignerType.STARKNET)\n    \n\n# Now, a little trick - we make each nested variant class be a subclass of the main\n# enum class, so that method calls and instance checks etc will work intuitively.\n# We might be able to do this a little more neatly with a metaclass, but this'll do.\nL1SignerType.ETH = type(\"L1SignerType.ETH\", (L1SignerType.ETH, L1SignerType,), {})  # type: ignore\nL1SignerType.STARKNET = type(\"L1SignerType.STARKNET\", (L1SignerType.STARKNET, L1SignerType,), {})  # type: ignore\n\n\n\n\nclass _UniffiConverterTypeL1SignerType(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return L1SignerType.ETH(\n            )\n        if variant == 2:\n            return L1SignerType.STARKNET(\n                _UniffiConverterString.read(buf),\n                _UniffiConverterString.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    def write(value, buf):\n        if value.is_eth():\n            buf.write_i32(1)\n        if value.is_starknet():\n            buf.write_i32(2)\n            _UniffiConverterString.write(value.chain_id, buf)\n            _UniffiConverterString.write(value.address, buf)\n\n\n\n\n\n\n\nclass L1Type(enum.Enum):\n    ETH = 1\n    STARKNET = 2\n    \n\n\nclass _UniffiConverterTypeL1Type(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return L1Type.ETH\n        if variant == 2:\n            return L1Type.STARKNET\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    def write(value, buf):\n        if value == L1Type.ETH:\n            buf.write_i32(1)\n        if value == L1Type.STARKNET:\n            buf.write_i32(2)\n\n\n\n\n\n\n\nclass Parameter:\n    def __init__(self):\n        raise RuntimeError(\"Parameter cannot be instantiated directly\")\n\n    # Each enum variant is a nested class of the enum itself.\n    class FEE_ACCOUNT:\n        account_id: \"AccountId\";\n\n        @typing.no_type_check\n        def __init__(self,account_id: \"AccountId\"):\n            \n            self.account_id = account_id\n            \n\n        def __str__(self):\n            return \"Parameter.FEE_ACCOUNT(account_id={})\".format(self.account_id)\n\n        def __eq__(self, other):\n            if not other.is_fee_account():\n                return False\n            if self.account_id != other.account_id:\n                return False\n            return True\n    class INSURANCE_FUND_ACCOUNT:\n        account_id: \"AccountId\";\n\n        @typing.no_type_check\n        def __init__(self,account_id: \"AccountId\"):\n            \n            self.account_id = account_id\n            \n\n        def __str__(self):\n            return \"Parameter.INSURANCE_FUND_ACCOUNT(account_id={})\".format(self.account_id)\n\n        def __eq__(self, other):\n            if not other.is_insurance_fund_account():\n                return False\n            if self.account_id != other.account_id:\n                return False\n            return True\n    class MARGIN_INFO:\n        margin_id: \"MarginId\";token_id: \"TokenId\";ratio: \"int\";\n\n        @typing.no_type_check\n        def __init__(self,margin_id: \"MarginId\", token_id: \"TokenId\", ratio: \"int\"):\n            \n            self.margin_id = margin_id\n            self.token_id = token_id\n            self.ratio = ratio\n            \n\n        def __str__(self):\n            return \"Parameter.MARGIN_INFO(margin_id={}, token_id={}, ratio={})\".format(self.margin_id, self.token_id, self.ratio)\n\n        def __eq__(self, other):\n            if not other.is_margin_info():\n                return False\n            if self.margin_id != other.margin_id:\n                return False\n            if self.token_id != other.token_id:\n                return False\n            if self.ratio != other.ratio:\n                return False\n            return True\n    class FUNDING_INFOS:\n        infos: \"typing.List[FundingInfo]\";\n\n        @typing.no_type_check\n        def __init__(self,infos: \"typing.List[FundingInfo]\"):\n            \n            self.infos = infos\n            \n\n        def __str__(self):\n            return \"Parameter.FUNDING_INFOS(infos={})\".format(self.infos)\n\n        def __eq__(self, other):\n            if not other.is_funding_infos():\n                return False\n            if self.infos != other.infos:\n                return False\n            return True\n    class CONTRACT_INFO:\n        pair_id: \"PairId\";symbol: str;initial_margin_rate: \"int\";maintenance_margin_rate: \"int\";\n\n        @typing.no_type_check\n        def __init__(self,pair_id: \"PairId\", symbol: str, initial_margin_rate: \"int\", maintenance_margin_rate: \"int\"):\n            \n            self.pair_id = pair_id\n            self.symbol = symbol\n            self.initial_margin_rate = initial_margin_rate\n            self.maintenance_margin_rate = maintenance_margin_rate\n            \n\n        def __str__(self):\n            return \"Parameter.CONTRACT_INFO(pair_id={}, symbol={}, initial_margin_rate={}, maintenance_margin_rate={})\".format(self.pair_id, self.symbol, self.initial_margin_rate, self.maintenance_margin_rate)\n\n        def __eq__(self, other):\n            if not other.is_contract_info():\n                return False\n            if self.pair_id != other.pair_id:\n                return False\n            if self.symbol != other.symbol:\n                return False\n            if self.initial_margin_rate != other.initial_margin_rate:\n                return False\n            if self.maintenance_margin_rate != other.maintenance_margin_rate:\n                return False\n            return True\n    \n\n    # For each variant, we have an `is_NAME` method for easily checking\n    # whether an instance is that variant.\n    def is_fee_account(self) -> bool:\n        return isinstance(self, Parameter.FEE_ACCOUNT)\n    def is_insurance_fund_account(self) -> bool:\n        return isinstance(self, Parameter.INSURANCE_FUND_ACCOUNT)\n    def is_margin_info(self) -> bool:\n        return isinstance(self, Parameter.MARGIN_INFO)\n    def is_funding_infos(self) -> bool:\n        return isinstance(self, Parameter.FUNDING_INFOS)\n    def is_contract_info(self) -> bool:\n        return isinstance(self, Parameter.CONTRACT_INFO)\n    \n\n# Now, a little trick - we make each nested variant class be a subclass of the main\n# enum class, so that method calls and instance checks etc will work intuitively.\n# We might be able to do this a little more neatly with a metaclass, but this'll do.\nParameter.FEE_ACCOUNT = type(\"Parameter.FEE_ACCOUNT\", (Parameter.FEE_ACCOUNT, Parameter,), {})  # type: ignore\nParameter.INSURANCE_FUND_ACCOUNT = type(\"Parameter.INSURANCE_FUND_ACCOUNT\", (Parameter.INSURANCE_FUND_ACCOUNT, Parameter,), {})  # type: ignore\nParameter.MARGIN_INFO = type(\"Parameter.MARGIN_INFO\", (Parameter.MARGIN_INFO, Parameter,), {})  # type: ignore\nParameter.FUNDING_INFOS = type(\"Parameter.FUNDING_INFOS\", (Parameter.FUNDING_INFOS, Parameter,), {})  # type: ignore\nParameter.CONTRACT_INFO = type(\"Parameter.CONTRACT_INFO\", (Parameter.CONTRACT_INFO, Parameter,), {})  # type: ignore\n\n\n\n\nclass _UniffiConverterTypeParameter(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return Parameter.FEE_ACCOUNT(\n                _UniffiConverterTypeAccountId.read(buf),\n            )\n        if variant == 2:\n            return Parameter.INSURANCE_FUND_ACCOUNT(\n                _UniffiConverterTypeAccountId.read(buf),\n            )\n        if variant == 3:\n            return Parameter.MARGIN_INFO(\n                _UniffiConverterTypeMarginId.read(buf),\n                _UniffiConverterTypeTokenId.read(buf),\n                _UniffiConverterUInt8.read(buf),\n            )\n        if variant == 4:\n            return Parameter.FUNDING_INFOS(\n                _UniffiConverterSequenceTypeFundingInfo.read(buf),\n            )\n        if variant == 5:\n            return Parameter.CONTRACT_INFO(\n                _UniffiConverterTypePairId.read(buf),\n                _UniffiConverterString.read(buf),\n                _UniffiConverterUInt16.read(buf),\n                _UniffiConverterUInt16.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    def write(value, buf):\n        if value.is_fee_account():\n            buf.write_i32(1)\n            _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        if value.is_insurance_fund_account():\n            buf.write_i32(2)\n            _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        if value.is_margin_info():\n            buf.write_i32(3)\n            _UniffiConverterTypeMarginId.write(value.margin_id, buf)\n            _UniffiConverterTypeTokenId.write(value.token_id, buf)\n            _UniffiConverterUInt8.write(value.ratio, buf)\n        if value.is_funding_infos():\n            buf.write_i32(4)\n            _UniffiConverterSequenceTypeFundingInfo.write(value.infos, buf)\n        if value.is_contract_info():\n            buf.write_i32(5)\n            _UniffiConverterTypePairId.write(value.pair_id, buf)\n            _UniffiConverterString.write(value.symbol, buf)\n            _UniffiConverterUInt16.write(value.initial_margin_rate, buf)\n            _UniffiConverterUInt16.write(value.maintenance_margin_rate, buf)\n\n\n\n\n# SignError\n# We want to define each variant as a nested class that's also a subclass,\n# which is tricky in Python.  To accomplish this we're going to create each\n# class separately, then manually add the child classes to the base class's\n# __dict__.  All of this happens in dummy class to avoid polluting the module\n# namespace.\nclass SignError(Exception):\n    pass\n\n_UniffiTempSignError = SignError\n\nclass SignError:  # type: ignore\n    class EthSigningError(_UniffiTempSignError):\n        def __repr__(self):\n            return \"SignError.EthSigningError({})\".format(repr(str(self)))\n    _UniffiTempSignError.EthSigningError = EthSigningError # type: ignore\n    class ZkSigningError(_UniffiTempSignError):\n        def __repr__(self):\n            return \"SignError.ZkSigningError({})\".format(repr(str(self)))\n    _UniffiTempSignError.ZkSigningError = ZkSigningError # type: ignore\n    class StarkSigningError(_UniffiTempSignError):\n        def __repr__(self):\n            return \"SignError.StarkSigningError({})\".format(repr(str(self)))\n    _UniffiTempSignError.StarkSigningError = StarkSigningError # type: ignore\n    class IncorrectTx(_UniffiTempSignError):\n        def __repr__(self):\n            return \"SignError.IncorrectTx({})\".format(repr(str(self)))\n    _UniffiTempSignError.IncorrectTx = IncorrectTx # type: ignore\n\nSignError = _UniffiTempSignError # type: ignore\ndel _UniffiTempSignError\n\n\nclass _UniffiConverterTypeSignError(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return SignError.EthSigningError(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 2:\n            return SignError.ZkSigningError(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 3:\n            return SignError.StarkSigningError(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 4:\n            return SignError.IncorrectTx(\n                _UniffiConverterString.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    @staticmethod\n    def write(value, buf):\n        if isinstance(value, SignError.EthSigningError):\n            buf.write_i32(1)\n        if isinstance(value, SignError.ZkSigningError):\n            buf.write_i32(2)\n        if isinstance(value, SignError.StarkSigningError):\n            buf.write_i32(3)\n        if isinstance(value, SignError.IncorrectTx):\n            buf.write_i32(4)\n\n\n# StarkSignerError\n# We want to define each variant as a nested class that's also a subclass,\n# which is tricky in Python.  To accomplish this we're going to create each\n# class separately, then manually add the child classes to the base class's\n# __dict__.  All of this happens in dummy class to avoid polluting the module\n# namespace.\nclass StarkSignerError(Exception):\n    pass\n\n_UniffiTempStarkSignerError = StarkSignerError\n\nclass StarkSignerError:  # type: ignore\n    class InvalidStarknetSigner(_UniffiTempStarkSignerError):\n        def __repr__(self):\n            return \"StarkSignerError.InvalidStarknetSigner({})\".format(repr(str(self)))\n    _UniffiTempStarkSignerError.InvalidStarknetSigner = InvalidStarknetSigner # type: ignore\n    class InvalidSignature(_UniffiTempStarkSignerError):\n        def __repr__(self):\n            return \"StarkSignerError.InvalidSignature({})\".format(repr(str(self)))\n    _UniffiTempStarkSignerError.InvalidSignature = InvalidSignature # type: ignore\n    class InvalidPrivKey(_UniffiTempStarkSignerError):\n        def __repr__(self):\n            return \"StarkSignerError.InvalidPrivKey({})\".format(repr(str(self)))\n    _UniffiTempStarkSignerError.InvalidPrivKey = InvalidPrivKey # type: ignore\n    class SignError(_UniffiTempStarkSignerError):\n        def __repr__(self):\n            return \"StarkSignerError.SignError({})\".format(repr(str(self)))\n    _UniffiTempStarkSignerError.SignError = SignError # type: ignore\n    class RpcSignError(_UniffiTempStarkSignerError):\n        def __repr__(self):\n            return \"StarkSignerError.RpcSignError({})\".format(repr(str(self)))\n    _UniffiTempStarkSignerError.RpcSignError = RpcSignError # type: ignore\n\nStarkSignerError = _UniffiTempStarkSignerError # type: ignore\ndel _UniffiTempStarkSignerError\n\n\nclass _UniffiConverterTypeStarkSignerError(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return StarkSignerError.InvalidStarknetSigner(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 2:\n            return StarkSignerError.InvalidSignature(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 3:\n            return StarkSignerError.InvalidPrivKey(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 4:\n            return StarkSignerError.SignError(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 5:\n            return StarkSignerError.RpcSignError(\n                _UniffiConverterString.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    @staticmethod\n    def write(value, buf):\n        if isinstance(value, StarkSignerError.InvalidStarknetSigner):\n            buf.write_i32(1)\n        if isinstance(value, StarkSignerError.InvalidSignature):\n            buf.write_i32(2)\n        if isinstance(value, StarkSignerError.InvalidPrivKey):\n            buf.write_i32(3)\n        if isinstance(value, StarkSignerError.SignError):\n            buf.write_i32(4)\n        if isinstance(value, StarkSignerError.RpcSignError):\n            buf.write_i32(5)\n\n\n# TypeError\n# We want to define each variant as a nested class that's also a subclass,\n# which is tricky in Python.  To accomplish this we're going to create each\n# class separately, then manually add the child classes to the base class's\n# __dict__.  All of this happens in dummy class to avoid polluting the module\n# namespace.\nclass TypeError(Exception):\n    pass\n\n_UniffiTempTypeError = TypeError\n\nclass TypeError:  # type: ignore\n    class InvalidAddress(_UniffiTempTypeError):\n        def __repr__(self):\n            return \"TypeError.InvalidAddress({})\".format(repr(str(self)))\n    _UniffiTempTypeError.InvalidAddress = InvalidAddress # type: ignore\n    class InvalidTxHash(_UniffiTempTypeError):\n        def __repr__(self):\n            return \"TypeError.InvalidTxHash({})\".format(repr(str(self)))\n    _UniffiTempTypeError.InvalidTxHash = InvalidTxHash # type: ignore\n    class NotStartWithZerox(_UniffiTempTypeError):\n        def __repr__(self):\n            return \"TypeError.NotStartWithZerox({})\".format(repr(str(self)))\n    _UniffiTempTypeError.NotStartWithZerox = NotStartWithZerox # type: ignore\n    class SizeMismatch(_UniffiTempTypeError):\n        def __repr__(self):\n            return \"TypeError.SizeMismatch({})\".format(repr(str(self)))\n    _UniffiTempTypeError.SizeMismatch = SizeMismatch # type: ignore\n    class DecodeFromHexErr(_UniffiTempTypeError):\n        def __repr__(self):\n            return \"TypeError.DecodeFromHexErr({})\".format(repr(str(self)))\n    _UniffiTempTypeError.DecodeFromHexErr = DecodeFromHexErr # type: ignore\n    class TooBigInteger(_UniffiTempTypeError):\n        def __repr__(self):\n            return \"TypeError.TooBigInteger({})\".format(repr(str(self)))\n    _UniffiTempTypeError.TooBigInteger = TooBigInteger # type: ignore\n    class InvalidBigIntStr(_UniffiTempTypeError):\n        def __repr__(self):\n            return \"TypeError.InvalidBigIntStr({})\".format(repr(str(self)))\n    _UniffiTempTypeError.InvalidBigIntStr = InvalidBigIntStr # type: ignore\n\nTypeError = _UniffiTempTypeError # type: ignore\ndel _UniffiTempTypeError\n\n\nclass _UniffiConverterTypeTypeError(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return TypeError.InvalidAddress(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 2:\n            return TypeError.InvalidTxHash(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 3:\n            return TypeError.NotStartWithZerox(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 4:\n            return TypeError.SizeMismatch(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 5:\n            return TypeError.DecodeFromHexErr(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 6:\n            return TypeError.TooBigInteger(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 7:\n            return TypeError.InvalidBigIntStr(\n                _UniffiConverterString.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    @staticmethod\n    def write(value, buf):\n        if isinstance(value, TypeError.InvalidAddress):\n            buf.write_i32(1)\n        if isinstance(value, TypeError.InvalidTxHash):\n            buf.write_i32(2)\n        if isinstance(value, TypeError.NotStartWithZerox):\n            buf.write_i32(3)\n        if isinstance(value, TypeError.SizeMismatch):\n            buf.write_i32(4)\n        if isinstance(value, TypeError.DecodeFromHexErr):\n            buf.write_i32(5)\n        if isinstance(value, TypeError.TooBigInteger):\n            buf.write_i32(6)\n        if isinstance(value, TypeError.InvalidBigIntStr):\n            buf.write_i32(7)\n\n\n\n\n\nclass TypedDataMessage:\n    def __init__(self):\n        raise RuntimeError(\"TypedDataMessage cannot be instantiated directly\")\n\n    # Each enum variant is a nested class of the enum itself.\n    class CREATE_L2_KEY:\n        message: \"Message\";\n\n        @typing.no_type_check\n        def __init__(self,message: \"Message\"):\n            \n            self.message = message\n            \n\n        def __str__(self):\n            return \"TypedDataMessage.CREATE_L2_KEY(message={})\".format(self.message)\n\n        def __eq__(self, other):\n            if not other.is_create_l2_key():\n                return False\n            if self.message != other.message:\n                return False\n            return True\n    class TRANSACTION:\n        message: \"TxMessage\";\n\n        @typing.no_type_check\n        def __init__(self,message: \"TxMessage\"):\n            \n            self.message = message\n            \n\n        def __str__(self):\n            return \"TypedDataMessage.TRANSACTION(message={})\".format(self.message)\n\n        def __eq__(self, other):\n            if not other.is_transaction():\n                return False\n            if self.message != other.message:\n                return False\n            return True\n    \n\n    # For each variant, we have an `is_NAME` method for easily checking\n    # whether an instance is that variant.\n    def is_create_l2_key(self) -> bool:\n        return isinstance(self, TypedDataMessage.CREATE_L2_KEY)\n    def is_transaction(self) -> bool:\n        return isinstance(self, TypedDataMessage.TRANSACTION)\n    \n\n# Now, a little trick - we make each nested variant class be a subclass of the main\n# enum class, so that method calls and instance checks etc will work intuitively.\n# We might be able to do this a little more neatly with a metaclass, but this'll do.\nTypedDataMessage.CREATE_L2_KEY = type(\"TypedDataMessage.CREATE_L2_KEY\", (TypedDataMessage.CREATE_L2_KEY, TypedDataMessage,), {})  # type: ignore\nTypedDataMessage.TRANSACTION = type(\"TypedDataMessage.TRANSACTION\", (TypedDataMessage.TRANSACTION, TypedDataMessage,), {})  # type: ignore\n\n\n\n\nclass _UniffiConverterTypeTypedDataMessage(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return TypedDataMessage.CREATE_L2_KEY(\n                _UniffiConverterTypeMessage.read(buf),\n            )\n        if variant == 2:\n            return TypedDataMessage.TRANSACTION(\n                _UniffiConverterTypeTxMessage.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    def write(value, buf):\n        if value.is_create_l2_key():\n            buf.write_i32(1)\n            _UniffiConverterTypeMessage.write(value.message, buf)\n        if value.is_transaction():\n            buf.write_i32(2)\n            _UniffiConverterTypeTxMessage.write(value.message, buf)\n\n\n\n\n# ZkSignerError\n# We want to define each variant as a nested class that's also a subclass,\n# which is tricky in Python.  To accomplish this we're going to create each\n# class separately, then manually add the child classes to the base class's\n# __dict__.  All of this happens in dummy class to avoid polluting the module\n# namespace.\nclass ZkSignerError(Exception):\n    pass\n\n_UniffiTempZkSignerError = ZkSignerError\n\nclass ZkSignerError:  # type: ignore\n    class CustomError(_UniffiTempZkSignerError):\n        def __repr__(self):\n            return \"ZkSignerError.CustomError({})\".format(repr(str(self)))\n    _UniffiTempZkSignerError.CustomError = CustomError # type: ignore\n    class InvalidSignature(_UniffiTempZkSignerError):\n        def __repr__(self):\n            return \"ZkSignerError.InvalidSignature({})\".format(repr(str(self)))\n    _UniffiTempZkSignerError.InvalidSignature = InvalidSignature # type: ignore\n    class InvalidPrivKey(_UniffiTempZkSignerError):\n        def __repr__(self):\n            return \"ZkSignerError.InvalidPrivKey({})\".format(repr(str(self)))\n    _UniffiTempZkSignerError.InvalidPrivKey = InvalidPrivKey # type: ignore\n    class InvalidSeed(_UniffiTempZkSignerError):\n        def __repr__(self):\n            return \"ZkSignerError.InvalidSeed({})\".format(repr(str(self)))\n    _UniffiTempZkSignerError.InvalidSeed = InvalidSeed # type: ignore\n    class InvalidPubkey(_UniffiTempZkSignerError):\n        def __repr__(self):\n            return \"ZkSignerError.InvalidPubkey({})\".format(repr(str(self)))\n    _UniffiTempZkSignerError.InvalidPubkey = InvalidPubkey # type: ignore\n    class InvalidPubkeyHash(_UniffiTempZkSignerError):\n        def __repr__(self):\n            return \"ZkSignerError.InvalidPubkeyHash({})\".format(repr(str(self)))\n    _UniffiTempZkSignerError.InvalidPubkeyHash = InvalidPubkeyHash # type: ignore\n    class EthSignerError(_UniffiTempZkSignerError):\n        def __repr__(self):\n            return \"ZkSignerError.EthSignerError({})\".format(repr(str(self)))\n    _UniffiTempZkSignerError.EthSignerError = EthSignerError # type: ignore\n    class StarkSignerError(_UniffiTempZkSignerError):\n        def __repr__(self):\n            return \"ZkSignerError.StarkSignerError({})\".format(repr(str(self)))\n    _UniffiTempZkSignerError.StarkSignerError = StarkSignerError # type: ignore\n\nZkSignerError = _UniffiTempZkSignerError # type: ignore\ndel _UniffiTempZkSignerError\n\n\nclass _UniffiConverterTypeZkSignerError(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return ZkSignerError.CustomError(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 2:\n            return ZkSignerError.InvalidSignature(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 3:\n            return ZkSignerError.InvalidPrivKey(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 4:\n            return ZkSignerError.InvalidSeed(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 5:\n            return ZkSignerError.InvalidPubkey(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 6:\n            return ZkSignerError.InvalidPubkeyHash(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 7:\n            return ZkSignerError.EthSignerError(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 8:\n            return ZkSignerError.StarkSignerError(\n                _UniffiConverterString.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    @staticmethod\n    def write(value, buf):\n        if isinstance(value, ZkSignerError.CustomError):\n            buf.write_i32(1)\n        if isinstance(value, ZkSignerError.InvalidSignature):\n            buf.write_i32(2)\n        if isinstance(value, ZkSignerError.InvalidPrivKey):\n            buf.write_i32(3)\n        if isinstance(value, ZkSignerError.InvalidSeed):\n            buf.write_i32(4)\n        if isinstance(value, ZkSignerError.InvalidPubkey):\n            buf.write_i32(5)\n        if isinstance(value, ZkSignerError.InvalidPubkeyHash):\n            buf.write_i32(6)\n        if isinstance(value, ZkSignerError.EthSignerError):\n            buf.write_i32(7)\n        if isinstance(value, ZkSignerError.StarkSignerError):\n            buf.write_i32(8)\n\n\n\nclass _UniffiConverterOptionalString(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        if value is None:\n            buf.write_u8(0)\n            return\n\n        buf.write_u8(1)\n        _UniffiConverterString.write(value, buf)\n\n    @classmethod\n    def read(cls, buf):\n        flag = buf.read_u8()\n        if flag == 0:\n            return None\n        elif flag == 1:\n            return _UniffiConverterString.read(buf)\n        else:\n            raise InternalError(\"Unexpected flag byte for optional type\")\n\n\n\nclass _UniffiConverterOptionalTypeZkLinkSignature(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        if value is None:\n            buf.write_u8(0)\n            return\n\n        buf.write_u8(1)\n        _UniffiConverterTypeZkLinkSignature.write(value, buf)\n\n    @classmethod\n    def read(cls, buf):\n        flag = buf.read_u8()\n        if flag == 0:\n            return None\n        elif flag == 1:\n            return _UniffiConverterTypeZkLinkSignature.read(buf)\n        else:\n            raise InternalError(\"Unexpected flag byte for optional type\")\n\n\n\nclass _UniffiConverterOptionalSequenceUInt8(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        if value is None:\n            buf.write_u8(0)\n            return\n\n        buf.write_u8(1)\n        _UniffiConverterSequenceUInt8.write(value, buf)\n\n    @classmethod\n    def read(cls, buf):\n        flag = buf.read_u8()\n        if flag == 0:\n            return None\n        elif flag == 1:\n            return _UniffiConverterSequenceUInt8.read(buf)\n        else:\n            raise InternalError(\"Unexpected flag byte for optional type\")\n\n\n\nclass _UniffiConverterOptionalTypeH256(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        if value is None:\n            buf.write_u8(0)\n            return\n\n        buf.write_u8(1)\n        _UniffiConverterTypeH256.write(value, buf)\n\n    @classmethod\n    def read(cls, buf):\n        flag = buf.read_u8()\n        if flag == 0:\n            return None\n        elif flag == 1:\n            return _UniffiConverterTypeH256.read(buf)\n        else:\n            raise InternalError(\"Unexpected flag byte for optional type\")\n\n\n\nclass _UniffiConverterOptionalTypePackedEthSignature(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        if value is None:\n            buf.write_u8(0)\n            return\n\n        buf.write_u8(1)\n        _UniffiConverterTypePackedEthSignature.write(value, buf)\n\n    @classmethod\n    def read(cls, buf):\n        flag = buf.read_u8()\n        if flag == 0:\n            return None\n        elif flag == 1:\n            return _UniffiConverterTypePackedEthSignature.read(buf)\n        else:\n            raise InternalError(\"Unexpected flag byte for optional type\")\n\n\n\nclass _UniffiConverterOptionalTypeTxLayer1Signature(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        if value is None:\n            buf.write_u8(0)\n            return\n\n        buf.write_u8(1)\n        _UniffiConverterTypeTxLayer1Signature.write(value, buf)\n\n    @classmethod\n    def read(cls, buf):\n        flag = buf.read_u8()\n        if flag == 0:\n            return None\n        elif flag == 1:\n            return _UniffiConverterTypeTxLayer1Signature.read(buf)\n        else:\n            raise InternalError(\"Unexpected flag byte for optional type\")\n\n\n\nclass _UniffiConverterSequenceUInt8(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        items = len(value)\n        buf.write_i32(items)\n        for item in value:\n            _UniffiConverterUInt8.write(item, buf)\n\n    @classmethod\n    def read(cls, buf):\n        count = buf.read_i32()\n        if count < 0:\n            raise InternalError(\"Unexpected negative sequence length\")\n\n        return [\n            _UniffiConverterUInt8.read(buf) for i in range(count)\n        ]\n\n\n\nclass _UniffiConverterSequenceTypeContract(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        items = len(value)\n        buf.write_i32(items)\n        for item in value:\n            _UniffiConverterTypeContract.write(item, buf)\n\n    @classmethod\n    def read(cls, buf):\n        count = buf.read_i32()\n        if count < 0:\n            raise InternalError(\"Unexpected negative sequence length\")\n\n        return [\n            _UniffiConverterTypeContract.read(buf) for i in range(count)\n        ]\n\n\n\nclass _UniffiConverterSequenceTypeContractPrice(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        items = len(value)\n        buf.write_i32(items)\n        for item in value:\n            _UniffiConverterTypeContractPrice.write(item, buf)\n\n    @classmethod\n    def read(cls, buf):\n        count = buf.read_i32()\n        if count < 0:\n            raise InternalError(\"Unexpected negative sequence length\")\n\n        return [\n            _UniffiConverterTypeContractPrice.read(buf) for i in range(count)\n        ]\n\n\n\nclass _UniffiConverterSequenceTypeFundingInfo(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        items = len(value)\n        buf.write_i32(items)\n        for item in value:\n            _UniffiConverterTypeFundingInfo.write(item, buf)\n\n    @classmethod\n    def read(cls, buf):\n        count = buf.read_i32()\n        if count < 0:\n            raise InternalError(\"Unexpected negative sequence length\")\n\n        return [\n            _UniffiConverterTypeFundingInfo.read(buf) for i in range(count)\n        ]\n\n\n\nclass _UniffiConverterSequenceTypeSpotPriceInfo(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        items = len(value)\n        buf.write_i32(items)\n        for item in value:\n            _UniffiConverterTypeSpotPriceInfo.write(item, buf)\n\n    @classmethod\n    def read(cls, buf):\n        count = buf.read_i32()\n        if count < 0:\n            raise InternalError(\"Unexpected negative sequence length\")\n\n        return [\n            _UniffiConverterTypeSpotPriceInfo.read(buf) for i in range(count)\n        ]\n\n\n\nclass _UniffiConverterSequenceTypeAccountId(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        items = len(value)\n        buf.write_i32(items)\n        for item in value:\n            _UniffiConverterTypeAccountId.write(item, buf)\n\n    @classmethod\n    def read(cls, buf):\n        count = buf.read_i32()\n        if count < 0:\n            raise InternalError(\"Unexpected negative sequence length\")\n\n        return [\n            _UniffiConverterTypeAccountId.read(buf) for i in range(count)\n        ]\n\n\n# Type alias\nAccountId = int\n\nclass _UniffiConverterTypeAccountId:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt32.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt32.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt32.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt32.lower(value)\n\n\n# Type alias\nAddress = str\n\nclass _UniffiConverterTypeAddress:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nBigUint = str\n\nclass _UniffiConverterTypeBigUint:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nBlockNumber = int\n\nclass _UniffiConverterTypeBlockNumber:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt32.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt32.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt32.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt32.lower(value)\n\n\n# Type alias\nChainId = int\n\nclass _UniffiConverterTypeChainId:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt8.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt8.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt8.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt8.lower(value)\n\n\n# Type alias\nEthBlockId = int\n\nclass _UniffiConverterTypeEthBlockId:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt64.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt64.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt64.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt64.lower(value)\n\n\n# Type alias\nH256 = str\n\nclass _UniffiConverterTypeH256:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nMarginId = int\n\nclass _UniffiConverterTypeMarginId:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt8.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt8.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt8.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt8.lower(value)\n\n\n# Type alias\nNonce = int\n\nclass _UniffiConverterTypeNonce:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt32.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt32.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt32.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt32.lower(value)\n\n\n# Type alias\nPackedEthSignature = str\n\nclass _UniffiConverterTypePackedEthSignature:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nPackedPublicKey = str\n\nclass _UniffiConverterTypePackedPublicKey:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nPackedSignature = str\n\nclass _UniffiConverterTypePackedSignature:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nPairId = int\n\nclass _UniffiConverterTypePairId:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt16.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt16.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt16.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt16.lower(value)\n\n\n# Type alias\nPriorityOpId = int\n\nclass _UniffiConverterTypePriorityOpId:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt64.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt64.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt64.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt64.lower(value)\n\n\n# Type alias\nPubKeyHash = str\n\nclass _UniffiConverterTypePubKeyHash:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nSlotId = int\n\nclass _UniffiConverterTypeSlotId:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt32.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt32.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt32.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt32.lower(value)\n\n\n# Type alias\nStarkEip712Signature = str\n\nclass _UniffiConverterTypeStarkEip712Signature:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nSubAccountId = int\n\nclass _UniffiConverterTypeSubAccountId:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt8.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt8.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt8.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt8.lower(value)\n\n\n# Type alias\nTimeStamp = int\n\nclass _UniffiConverterTypeTimeStamp:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt32.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt32.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt32.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt32.lower(value)\n\n\n# Type alias\nTokenId = int\n\nclass _UniffiConverterTypeTokenId:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt32.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt32.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt32.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt32.lower(value)\n\n\n# Type alias\nTxHash = str\n\nclass _UniffiConverterTypeTxHash:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nTxLayer1Signature = str\n\nclass _UniffiConverterTypeTxLayer1Signature:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nZkLinkAddress = str\n\nclass _UniffiConverterTypeZkLinkAddress:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nZkLinkTx = str\n\nclass _UniffiConverterTypeZkLinkTx:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\ndef closest_packable_fee_amount(fee: \"BigUint\") -> \"BigUint\":\n    \n    return _UniffiConverterTypeBigUint.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_closest_packable_fee_amount,\n        _UniffiConverterTypeBigUint.lower(fee)))\n\n\ndef closest_packable_token_amount(amount: \"BigUint\") -> \"BigUint\":\n    \n    return _UniffiConverterTypeBigUint.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_closest_packable_token_amount,\n        _UniffiConverterTypeBigUint.lower(amount)))\n\n\ndef create_signed_change_pubkey(zklink_signer: \"ZkLinkSigner\",tx: \"ChangePubKey\",eth_auth_data: \"ChangePubKeyAuthData\") -> \"ChangePubKey\":\n    \n    \n    \n    return _UniffiConverterTypeChangePubKey.lift(_rust_call_with_error(_UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_func_create_signed_change_pubkey,\n        _UniffiConverterTypeZkLinkSigner.lower(zklink_signer),\n        _UniffiConverterTypeChangePubKey.lower(tx),\n        _UniffiConverterTypeChangePubKeyAuthData.lower(eth_auth_data)))\n\n\ndef eth_signature_of_change_pubkey(tx: \"ChangePubKey\",eth_signer: \"EthSigner\") -> \"PackedEthSignature\":\n    \n    \n    return _UniffiConverterTypePackedEthSignature.lift(_rust_call_with_error(_UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_func_eth_signature_of_change_pubkey,\n        _UniffiConverterTypeChangePubKey.lower(tx),\n        _UniffiConverterTypeEthSigner.lower(eth_signer)))\n\n\ndef get_public_key_hash(public_key: \"PackedPublicKey\") -> \"PubKeyHash\":\n    \n    return _UniffiConverterTypePubKeyHash.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_get_public_key_hash,\n        _UniffiConverterTypePackedPublicKey.lower(public_key)))\n\n\ndef is_fee_amount_packable(fee: \"BigUint\") -> bool:\n    \n    return _UniffiConverterBool.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_is_fee_amount_packable,\n        _UniffiConverterTypeBigUint.lower(fee)))\n\n\ndef is_token_amount_packable(amount: \"BigUint\") -> bool:\n    \n    return _UniffiConverterBool.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_is_token_amount_packable,\n        _UniffiConverterTypeBigUint.lower(amount)))\n\n\ndef verify_musig(signature: \"ZkLinkSignature\",msg: \"typing.List[int]\") -> bool:\n    \n    \n    return _UniffiConverterBool.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_verify_musig,\n        _UniffiConverterTypeZkLinkSignature.lower(signature),\n        _UniffiConverterSequenceUInt8.lower(msg)))\n\n\ndef zklink_main_net_url() -> str:\n    return _UniffiConverterString.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_zklink_main_net_url,))\n\n\ndef zklink_test_net_url() -> str:\n    return _UniffiConverterString.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_zklink_test_net_url,))\n\n\n__all__ = [\n    \"InternalError\",\n    \"ChangePubKeyAuthData\",\n    \"ChangePubKeyAuthRequest\",\n    \"EthSignerError\",\n    \"L1SignerType\",\n    \"L1Type\",\n    \"Parameter\",\n    \"SignError\",\n    \"StarkSignerError\",\n    \"TypeError\",\n    \"TypedDataMessage\",\n    \"ZkSignerError\",\n    \"AutoDeleveragingBuilder\",\n    \"ChangePubKeyBuilder\",\n    \"ContractBuilder\",\n    \"ContractMatchingBuilder\",\n    \"ContractPrice\",\n    \"Create2Data\",\n    \"DepositBuilder\",\n    \"ForcedExitBuilder\",\n    \"FullExitBuilder\",\n    \"FundingBuilder\",\n    \"FundingInfo\",\n    \"LiquidationBuilder\",\n    \"Message\",\n    \"OraclePrices\",\n    \"OrderMatchingBuilder\",\n    \"SpotPriceInfo\",\n    \"TransferBuilder\",\n    \"TxMessage\",\n    \"TxSignature\",\n    \"UpdateGlobalVarBuilder\",\n    \"WithdrawBuilder\",\n    \"ZkLinkSignature\",\n    \"closest_packable_fee_amount\",\n    \"closest_packable_token_amount\",\n    \"create_signed_change_pubkey\",\n    \"eth_signature_of_change_pubkey\",\n    \"get_public_key_hash\",\n    \"is_fee_amount_packable\",\n    \"is_token_amount_packable\",\n    \"verify_musig\",\n    \"zklink_main_net_url\",\n    \"zklink_test_net_url\",\n    \"AutoDeleveraging\",\n    \"ChangePubKey\",\n    \"Contract\",\n    \"ContractMatching\",\n    \"Deposit\",\n    \"EthSigner\",\n    \"ForcedExit\",\n    \"FullExit\",\n    \"Funding\",\n    \"Liquidation\",\n    \"Order\",\n    \"OrderMatching\",\n    \"Signer\",\n    \"StarkSigner\",\n    \"Transfer\",\n    \"TypedData\",\n    \"UpdateGlobalVar\",\n    \"Withdraw\",\n    \"ZkLinkSigner\",\n]\n\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Apex/omni_files/zklink_sdk-x86.py",
    "content": "# This file was autogenerated by some hot garbage in the `uniffi` crate.\n# Trust me, you don't want to mess with it!\n\n# Tell mypy (a type checker) to ignore all errors from this file.\n# See https://mypy.readthedocs.io/en/stable/config_file.html?highlight=ignore-errors#confval-ignore_errors\n# mypy: ignore-errors\n\n# Common helper code.\n#\n# Ideally this would live in a separate .py file where it can be unittested etc\n# in isolation, and perhaps even published as a re-useable package.\n#\n# However, it's important that the details of how this helper code works (e.g. the\n# way that different builtin types are passed across the FFI) exactly match what's\n# expected by the rust code on the other side of the interface. In practice right\n# now that means coming from the exact some version of `uniffi` that was used to\n# compile the rust component. The easiest way to ensure this is to bundle the Python\n# helpers directly inline like we're doing here.\n\nimport os\nimport sys\nimport ctypes\nimport enum\nimport struct\nimport contextlib\nimport datetime\nimport threading\n\n# Used for default argument values\nDEFAULT = object()\n\n\nclass RustBuffer(ctypes.Structure):\n    _fields_ = [\n        (\"capacity\", ctypes.c_int32),\n        (\"len\", ctypes.c_int32),\n        (\"data\", ctypes.POINTER(ctypes.c_char)),\n    ]\n\n    @staticmethod\n    def alloc(size):\n        return rust_call(_UniFFILib.ffi_zklink_sdk_f180_rustbuffer_alloc, size)\n\n    @staticmethod\n    def reserve(rbuf, additional):\n        return rust_call(_UniFFILib.ffi_zklink_sdk_f180_rustbuffer_reserve, rbuf, additional)\n\n    def free(self):\n        return rust_call(_UniFFILib.ffi_zklink_sdk_f180_rustbuffer_free, self)\n\n    def __str__(self):\n        return \"RustBuffer(capacity={}, len={}, data={})\".format(\n            self.capacity,\n            self.len,\n            self.data[0:self.len]\n        )\n\n    @contextlib.contextmanager\n    def allocWithBuilder():\n        \"\"\"Context-manger to allocate a buffer using a RustBufferBuilder.\n\n        The allocated buffer will be automatically freed if an error occurs, ensuring that\n        we don't accidentally leak it.\n        \"\"\"\n        builder = RustBufferBuilder()\n        try:\n            yield builder\n        except:\n            builder.discard()\n            raise\n\n    @contextlib.contextmanager\n    def consumeWithStream(self):\n        \"\"\"Context-manager to consume a buffer using a RustBufferStream.\n\n        The RustBuffer will be freed once the context-manager exits, ensuring that we don't\n        leak it even if an error occurs.\n        \"\"\"\n        try:\n            s = RustBufferStream(self)\n            yield s\n            if s.remaining() != 0:\n                raise RuntimeError(\"junk data left in buffer after consuming\")\n        finally:\n            self.free()\n\n\nclass ForeignBytes(ctypes.Structure):\n    _fields_ = [\n        (\"len\", ctypes.c_int32),\n        (\"data\", ctypes.POINTER(ctypes.c_char)),\n    ]\n\n    def __str__(self):\n        return \"ForeignBytes(len={}, data={})\".format(self.len, self.data[0:self.len])\n\n\nclass RustBufferStream(object):\n    \"\"\"\n    Helper for structured reading of bytes from a RustBuffer\n    \"\"\"\n\n    def __init__(self, rbuf):\n        self.rbuf = rbuf\n        self.offset = 0\n\n    def remaining(self):\n        return self.rbuf.len - self.offset\n\n    def _unpack_from(self, size, format):\n        if self.offset + size > self.rbuf.len:\n            raise InternalError(\"read past end of rust buffer\")\n        value = struct.unpack(format, self.rbuf.data[self.offset:self.offset+size])[0]\n        self.offset += size\n        return value\n\n    def read(self, size):\n        if self.offset + size > self.rbuf.len:\n            raise InternalError(\"read past end of rust buffer\")\n        data = self.rbuf.data[self.offset:self.offset+size]\n        self.offset += size\n        return data\n\n    def readI8(self):\n        return self._unpack_from(1, \">b\")\n\n    def readU8(self):\n        return self._unpack_from(1, \">B\")\n\n    def readI16(self):\n        return self._unpack_from(2, \">h\")\n\n    def readU16(self):\n        return self._unpack_from(2, \">H\")\n\n    def readI32(self):\n        return self._unpack_from(4, \">i\")\n\n    def readU32(self):\n        return self._unpack_from(4, \">I\")\n\n    def readI64(self):\n        return self._unpack_from(8, \">q\")\n\n    def readU64(self):\n        return self._unpack_from(8, \">Q\")\n\n    def readFloat(self):\n        v = self._unpack_from(4, \">f\")\n        return v\n\n    def readDouble(self):\n        return self._unpack_from(8, \">d\")\n\n\nclass RustBufferBuilder(object):\n    \"\"\"\n    Helper for structured writing of bytes into a RustBuffer.\n    \"\"\"\n\n    def __init__(self):\n        self.rbuf = RustBuffer.alloc(16)\n        self.rbuf.len = 0\n\n    def finalize(self):\n        rbuf = self.rbuf\n        self.rbuf = None\n        return rbuf\n\n    def discard(self):\n        if self.rbuf is not None:\n            rbuf = self.finalize()\n            rbuf.free()\n\n    @contextlib.contextmanager\n    def _reserve(self, numBytes):\n        if self.rbuf.len + numBytes > self.rbuf.capacity:\n            self.rbuf = RustBuffer.reserve(self.rbuf, numBytes)\n        yield None\n        self.rbuf.len += numBytes\n\n    def _pack_into(self, size, format, value):\n        with self._reserve(size):\n            # XXX TODO: I feel like I should be able to use `struct.pack_into` here but can't figure it out.\n            for i, byte in enumerate(struct.pack(format, value)):\n                self.rbuf.data[self.rbuf.len + i] = byte\n\n    def write(self, value):\n        with self._reserve(len(value)):\n            for i, byte in enumerate(value):\n                self.rbuf.data[self.rbuf.len + i] = byte\n\n    def writeI8(self, v):\n        self._pack_into(1, \">b\", v)\n\n    def writeU8(self, v):\n        self._pack_into(1, \">B\", v)\n\n    def writeI16(self, v):\n        self._pack_into(2, \">h\", v)\n\n    def writeU16(self, v):\n        self._pack_into(2, \">H\", v)\n\n    def writeI32(self, v):\n        self._pack_into(4, \">i\", v)\n\n    def writeU32(self, v):\n        self._pack_into(4, \">I\", v)\n\n    def writeI64(self, v):\n        self._pack_into(8, \">q\", v)\n\n    def writeU64(self, v):\n        self._pack_into(8, \">Q\", v)\n\n    def writeFloat(self, v):\n        self._pack_into(4, \">f\", v)\n\n    def writeDouble(self, v):\n        self._pack_into(8, \">d\", v)\n# A handful of classes and functions to support the generated data structures.\n# This would be a good candidate for isolating in its own ffi-support lib.\n\nclass InternalError(Exception):\n    pass\n\nclass RustCallStatus(ctypes.Structure):\n    \"\"\"\n    Error runtime.\n    \"\"\"\n    _fields_ = [\n        (\"code\", ctypes.c_int8),\n        (\"error_buf\", RustBuffer),\n    ]\n\n    # These match the values from the uniffi::rustcalls module\n    CALL_SUCCESS = 0\n    CALL_ERROR = 1\n    CALL_PANIC = 2\n\n    def __str__(self):\n        if self.code == RustCallStatus.CALL_SUCCESS:\n            return \"RustCallStatus(CALL_SUCCESS)\"\n        elif self.code == RustCallStatus.CALL_ERROR:\n            return \"RustCallStatus(CALL_ERROR)\"\n        elif self.code == RustCallStatus.CALL_PANIC:\n            return \"RustCallStatus(CALL_PANIC)\"\n        else:\n            return \"RustCallStatus(<invalid code>)\"\n\ndef rust_call(fn, *args):\n    # Call a rust function\n    return rust_call_with_error(None, fn, *args)\n\ndef rust_call_with_error(error_ffi_converter, fn, *args):\n    # Call a rust function and handle any errors\n    #\n    # This function is used for rust calls that return Result<> and therefore can set the CALL_ERROR status code.\n    # error_ffi_converter must be set to the FfiConverter for the error class that corresponds to the result.\n    call_status = RustCallStatus(code=RustCallStatus.CALL_SUCCESS, error_buf=RustBuffer(0, 0, None))\n\n    args_with_error = args + (ctypes.byref(call_status),)\n    result = fn(*args_with_error)\n    if call_status.code == RustCallStatus.CALL_SUCCESS:\n        return result\n    elif call_status.code == RustCallStatus.CALL_ERROR:\n        if error_ffi_converter is None:\n            call_status.error_buf.free()\n            raise InternalError(\"rust_call_with_error: CALL_ERROR, but error_ffi_converter is None\")\n        else:\n            raise error_ffi_converter.lift(call_status.error_buf)\n    elif call_status.code == RustCallStatus.CALL_PANIC:\n        # When the rust code sees a panic, it tries to construct a RustBuffer\n        # with the message.  But if that code panics, then it just sends back\n        # an empty buffer.\n        if call_status.error_buf.len > 0:\n            msg = FfiConverterString.lift(call_status.error_buf)\n        else:\n            msg = \"Unknown rust panic\"\n        raise InternalError(msg)\n    else:\n        raise InternalError(\"Invalid RustCallStatus code: {}\".format(\n            call_status.code))\n\n# A function pointer for a callback as defined by UniFFI.\n# Rust definition `fn(handle: u64, method: u32, args: RustBuffer, buf_ptr: *mut RustBuffer) -> int`\nFOREIGN_CALLBACK_T = ctypes.CFUNCTYPE(ctypes.c_int, ctypes.c_ulonglong, ctypes.c_ulong, RustBuffer, ctypes.POINTER(RustBuffer))\n# Types conforming to `FfiConverterPrimitive` pass themselves directly over the FFI.\nclass FfiConverterPrimitive:\n    @classmethod\n    def lift(cls, value):\n        return value\n\n    @classmethod\n    def lower(cls, value):\n        return value\n\n# Helper class for wrapper types that will always go through a RustBuffer.\n# Classes should inherit from this and implement the `read` and `write` static methods.\nclass FfiConverterRustBuffer:\n    @classmethod\n    def lift(cls, rbuf):\n        with rbuf.consumeWithStream() as stream:\n            return cls.read(stream)\n\n    @classmethod\n    def lower(cls, value):\n        with RustBuffer.allocWithBuilder() as builder:\n            cls.write(value, builder)\n            return builder.finalize()\n\n# Contains loading, initialization code,\n# and the FFI Function declarations in a com.sun.jna.Library.\n# This is how we find and load the dynamic library provided by the component.\n# For now we just look it up by name.\n#\n# XXX TODO: This will probably grow some magic for resolving megazording in future.\n# E.g. we might start by looking for the named component in `libuniffi.so` and if\n# that fails, fall back to loading it separately from `lib${componentName}.so`.\n\nfrom pathlib import Path\n\ndef loadIndirect():\n    if sys.platform == \"darwin\":\n        libname = \"lib{}.dylib\"\n    elif sys.platform.startswith(\"win\"):\n        # As of python3.8, ctypes does not seem to search $PATH when loading DLLs.\n        # We could use `os.add_dll_directory` to configure the search path, but\n        # it doesn't feel right to mess with application-wide settings. Let's\n        # assume that the `.dll` is next to the `.py` file and load by full path.\n        libname = os.path.join(\n            os.path.dirname(__file__),\n            \"{}.dll\",\n        )\n    else:\n        # Anything else must be an ELF platform - Linux, *BSD, Solaris/illumos\n        libname = \"lib{}.so\"\n\n    lib = libname.format(\"zklink_sdk\")\n    path = str(Path(__file__).parent / lib)\n    return ctypes.cdll.LoadLibrary(path)\n\n# A ctypes library to expose the extern-C FFI definitions.\n# This is an implementation detail which will be called internally by the public API.\n\n_UniFFILib = loadIndirect()\n_UniFFILib.ffi_zklink_sdk_f180_Deposit_object_free.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.ffi_zklink_sdk_f180_Deposit_object_free.restype = None\n_UniFFILib.zklink_sdk_f180_Deposit_new.argtypes = (\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Deposit_new.restype = ctypes.c_void_p\n_UniFFILib.zklink_sdk_f180_Deposit_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Deposit_get_bytes.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Deposit_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Deposit_tx_hash.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Deposit_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Deposit_json_str.restype = RustBuffer\n_UniFFILib.ffi_zklink_sdk_f180_Withdraw_object_free.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.ffi_zklink_sdk_f180_Withdraw_object_free.restype = None\n_UniFFILib.zklink_sdk_f180_Withdraw_new.argtypes = (\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Withdraw_new.restype = ctypes.c_void_p\n_UniFFILib.zklink_sdk_f180_Withdraw_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Withdraw_get_signature.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Withdraw_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Withdraw_get_bytes.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Withdraw_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Withdraw_tx_hash.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Withdraw_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Withdraw_json_str.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Withdraw_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Withdraw_is_valid.restype = ctypes.c_int8\n_UniFFILib.zklink_sdk_f180_Withdraw_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Withdraw_is_signature_valid.restype = ctypes.c_int8\n_UniFFILib.zklink_sdk_f180_Withdraw_get_eth_sign_msg.argtypes = (\n    ctypes.c_void_p,\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Withdraw_get_eth_sign_msg.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Withdraw_eth_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Withdraw_eth_signature.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Withdraw_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Withdraw_create_signed_tx.restype = ctypes.c_void_p\n_UniFFILib.zklink_sdk_f180_Withdraw_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Withdraw_to_zklink_tx.restype = RustBuffer\n_UniFFILib.ffi_zklink_sdk_f180_ChangePubKey_object_free.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.ffi_zklink_sdk_f180_ChangePubKey_object_free.restype = None\n_UniFFILib.zklink_sdk_f180_ChangePubKey_new.argtypes = (\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ChangePubKey_new.restype = ctypes.c_void_p\n_UniFFILib.zklink_sdk_f180_ChangePubKey_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ChangePubKey_get_signature.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_ChangePubKey_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ChangePubKey_get_bytes.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_ChangePubKey_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ChangePubKey_tx_hash.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_ChangePubKey_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ChangePubKey_json_str.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_ChangePubKey_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ChangePubKey_is_valid.restype = ctypes.c_int8\n_UniFFILib.zklink_sdk_f180_ChangePubKey_is_onchain.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ChangePubKey_is_onchain.restype = ctypes.c_int8\n_UniFFILib.zklink_sdk_f180_ChangePubKey_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ChangePubKey_is_signature_valid.restype = ctypes.c_int8\n_UniFFILib.zklink_sdk_f180_ChangePubKey_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ChangePubKey_to_zklink_tx.restype = RustBuffer\n_UniFFILib.ffi_zklink_sdk_f180_ForcedExit_object_free.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.ffi_zklink_sdk_f180_ForcedExit_object_free.restype = None\n_UniFFILib.zklink_sdk_f180_ForcedExit_new.argtypes = (\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ForcedExit_new.restype = ctypes.c_void_p\n_UniFFILib.zklink_sdk_f180_ForcedExit_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ForcedExit_get_signature.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_ForcedExit_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ForcedExit_get_bytes.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_ForcedExit_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ForcedExit_tx_hash.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_ForcedExit_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ForcedExit_json_str.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_ForcedExit_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ForcedExit_is_valid.restype = ctypes.c_int8\n_UniFFILib.zklink_sdk_f180_ForcedExit_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ForcedExit_is_signature_valid.restype = ctypes.c_int8\n_UniFFILib.zklink_sdk_f180_ForcedExit_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ForcedExit_create_signed_tx.restype = ctypes.c_void_p\n_UniFFILib.zklink_sdk_f180_ForcedExit_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ForcedExit_to_zklink_tx.restype = RustBuffer\n_UniFFILib.ffi_zklink_sdk_f180_FullExit_object_free.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.ffi_zklink_sdk_f180_FullExit_object_free.restype = None\n_UniFFILib.zklink_sdk_f180_FullExit_new.argtypes = (\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_FullExit_new.restype = ctypes.c_void_p\n_UniFFILib.zklink_sdk_f180_FullExit_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_FullExit_get_bytes.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_FullExit_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_FullExit_tx_hash.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_FullExit_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_FullExit_json_str.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_FullExit_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_FullExit_is_valid.restype = ctypes.c_int8\n_UniFFILib.zklink_sdk_f180_FullExit_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_FullExit_to_zklink_tx.restype = RustBuffer\n_UniFFILib.ffi_zklink_sdk_f180_Transfer_object_free.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.ffi_zklink_sdk_f180_Transfer_object_free.restype = None\n_UniFFILib.zklink_sdk_f180_Transfer_new.argtypes = (\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Transfer_new.restype = ctypes.c_void_p\n_UniFFILib.zklink_sdk_f180_Transfer_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Transfer_get_signature.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Transfer_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Transfer_get_bytes.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Transfer_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Transfer_tx_hash.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Transfer_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Transfer_json_str.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Transfer_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Transfer_is_valid.restype = ctypes.c_int8\n_UniFFILib.zklink_sdk_f180_Transfer_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Transfer_is_signature_valid.restype = ctypes.c_int8\n_UniFFILib.zklink_sdk_f180_Transfer_get_eth_sign_msg.argtypes = (\n    ctypes.c_void_p,\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Transfer_get_eth_sign_msg.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Transfer_eth_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Transfer_eth_signature.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Transfer_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Transfer_create_signed_tx.restype = ctypes.c_void_p\n_UniFFILib.zklink_sdk_f180_Transfer_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Transfer_to_zklink_tx.restype = RustBuffer\n_UniFFILib.ffi_zklink_sdk_f180_Order_object_free.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.ffi_zklink_sdk_f180_Order_object_free.restype = None\n_UniFFILib.zklink_sdk_f180_Order_new.argtypes = (\n    ctypes.c_uint32,\n    ctypes.c_uint8,\n    ctypes.c_uint32,\n    ctypes.c_uint32,\n    ctypes.c_uint32,\n    ctypes.c_uint32,\n    RustBuffer,\n    RustBuffer,\n    ctypes.c_int8,\n    ctypes.c_int8,\n    ctypes.c_uint8,\n    ctypes.c_uint8,\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Order_new.restype = ctypes.c_void_p\n_UniFFILib.zklink_sdk_f180_Order_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Order_get_signature.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Order_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Order_get_bytes.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Order_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Order_json_str.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Order_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Order_is_valid.restype = ctypes.c_int8\n_UniFFILib.zklink_sdk_f180_Order_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Order_is_signature_valid.restype = ctypes.c_int8\n_UniFFILib.zklink_sdk_f180_Order_get_eth_sign_msg.argtypes = (\n    ctypes.c_void_p,\n    RustBuffer,\n    RustBuffer,\n    ctypes.c_uint8,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Order_get_eth_sign_msg.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Order_create_signed_order.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Order_create_signed_order.restype = ctypes.c_void_p\n_UniFFILib.ffi_zklink_sdk_f180_OrderMatching_object_free.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.ffi_zklink_sdk_f180_OrderMatching_object_free.restype = None\n_UniFFILib.zklink_sdk_f180_OrderMatching_new.argtypes = (\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_OrderMatching_new.restype = ctypes.c_void_p\n_UniFFILib.zklink_sdk_f180_OrderMatching_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_OrderMatching_get_bytes.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_OrderMatching_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_OrderMatching_tx_hash.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_OrderMatching_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_OrderMatching_json_str.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_OrderMatching_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_OrderMatching_is_valid.restype = ctypes.c_int8\n_UniFFILib.zklink_sdk_f180_OrderMatching_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_OrderMatching_get_signature.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_OrderMatching_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_OrderMatching_is_signature_valid.restype = ctypes.c_int8\n_UniFFILib.zklink_sdk_f180_OrderMatching_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_OrderMatching_create_signed_tx.restype = ctypes.c_void_p\n_UniFFILib.zklink_sdk_f180_OrderMatching_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_OrderMatching_to_zklink_tx.restype = RustBuffer\n_UniFFILib.ffi_zklink_sdk_f180_Contract_object_free.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.ffi_zklink_sdk_f180_Contract_object_free.restype = None\n_UniFFILib.zklink_sdk_f180_Contract_new.argtypes = (\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Contract_new.restype = ctypes.c_void_p\n_UniFFILib.zklink_sdk_f180_Contract_is_long.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Contract_is_long.restype = ctypes.c_int8\n_UniFFILib.zklink_sdk_f180_Contract_is_short.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Contract_is_short.restype = ctypes.c_int8\n_UniFFILib.zklink_sdk_f180_Contract_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Contract_get_signature.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Contract_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Contract_is_signature_valid.restype = ctypes.c_int8\n_UniFFILib.zklink_sdk_f180_Contract_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Contract_get_bytes.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Contract_create_signed_contract.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Contract_create_signed_contract.restype = ctypes.c_void_p\n_UniFFILib.ffi_zklink_sdk_f180_AutoDeleveraging_object_free.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.ffi_zklink_sdk_f180_AutoDeleveraging_object_free.restype = None\n_UniFFILib.zklink_sdk_f180_AutoDeleveraging_new.argtypes = (\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_AutoDeleveraging_new.restype = ctypes.c_void_p\n_UniFFILib.zklink_sdk_f180_AutoDeleveraging_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_AutoDeleveraging_get_bytes.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_AutoDeleveraging_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_AutoDeleveraging_tx_hash.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_AutoDeleveraging_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_AutoDeleveraging_json_str.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_AutoDeleveraging_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_AutoDeleveraging_is_valid.restype = ctypes.c_int8\n_UniFFILib.zklink_sdk_f180_AutoDeleveraging_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_AutoDeleveraging_get_signature.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_AutoDeleveraging_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_AutoDeleveraging_is_signature_valid.restype = ctypes.c_int8\n_UniFFILib.zklink_sdk_f180_AutoDeleveraging_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_AutoDeleveraging_to_zklink_tx.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_AutoDeleveraging_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_AutoDeleveraging_create_signed_tx.restype = ctypes.c_void_p\n_UniFFILib.ffi_zklink_sdk_f180_ContractMatching_object_free.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.ffi_zklink_sdk_f180_ContractMatching_object_free.restype = None\n_UniFFILib.zklink_sdk_f180_ContractMatching_new.argtypes = (\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ContractMatching_new.restype = ctypes.c_void_p\n_UniFFILib.zklink_sdk_f180_ContractMatching_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ContractMatching_get_bytes.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_ContractMatching_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ContractMatching_tx_hash.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_ContractMatching_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ContractMatching_json_str.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_ContractMatching_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ContractMatching_is_valid.restype = ctypes.c_int8\n_UniFFILib.zklink_sdk_f180_ContractMatching_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ContractMatching_get_signature.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_ContractMatching_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ContractMatching_is_signature_valid.restype = ctypes.c_int8\n_UniFFILib.zklink_sdk_f180_ContractMatching_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ContractMatching_to_zklink_tx.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_ContractMatching_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ContractMatching_create_signed_tx.restype = ctypes.c_void_p\n_UniFFILib.ffi_zklink_sdk_f180_Funding_object_free.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.ffi_zklink_sdk_f180_Funding_object_free.restype = None\n_UniFFILib.zklink_sdk_f180_Funding_new.argtypes = (\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Funding_new.restype = ctypes.c_void_p\n_UniFFILib.zklink_sdk_f180_Funding_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Funding_get_bytes.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Funding_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Funding_tx_hash.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Funding_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Funding_json_str.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Funding_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Funding_is_valid.restype = ctypes.c_int8\n_UniFFILib.zklink_sdk_f180_Funding_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Funding_get_signature.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Funding_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Funding_is_signature_valid.restype = ctypes.c_int8\n_UniFFILib.zklink_sdk_f180_Funding_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Funding_to_zklink_tx.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Funding_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Funding_create_signed_tx.restype = ctypes.c_void_p\n_UniFFILib.ffi_zklink_sdk_f180_Liquidation_object_free.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.ffi_zklink_sdk_f180_Liquidation_object_free.restype = None\n_UniFFILib.zklink_sdk_f180_Liquidation_new.argtypes = (\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Liquidation_new.restype = ctypes.c_void_p\n_UniFFILib.zklink_sdk_f180_Liquidation_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Liquidation_get_bytes.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Liquidation_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Liquidation_tx_hash.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Liquidation_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Liquidation_json_str.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Liquidation_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Liquidation_is_valid.restype = ctypes.c_int8\n_UniFFILib.zklink_sdk_f180_Liquidation_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Liquidation_get_signature.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Liquidation_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Liquidation_is_signature_valid.restype = ctypes.c_int8\n_UniFFILib.zklink_sdk_f180_Liquidation_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Liquidation_to_zklink_tx.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Liquidation_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Liquidation_create_signed_tx.restype = ctypes.c_void_p\n_UniFFILib.ffi_zklink_sdk_f180_UpdateGlobalVar_object_free.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.ffi_zklink_sdk_f180_UpdateGlobalVar_object_free.restype = None\n_UniFFILib.zklink_sdk_f180_UpdateGlobalVar_new.argtypes = (\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_UpdateGlobalVar_new.restype = ctypes.c_void_p\n_UniFFILib.zklink_sdk_f180_UpdateGlobalVar_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_UpdateGlobalVar_get_bytes.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_UpdateGlobalVar_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_UpdateGlobalVar_tx_hash.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_UpdateGlobalVar_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_UpdateGlobalVar_json_str.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_UpdateGlobalVar_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_UpdateGlobalVar_is_valid.restype = ctypes.c_int8\n_UniFFILib.zklink_sdk_f180_UpdateGlobalVar_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_UpdateGlobalVar_to_zklink_tx.restype = RustBuffer\n_UniFFILib.ffi_zklink_sdk_f180_EthSigner_object_free.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.ffi_zklink_sdk_f180_EthSigner_object_free.restype = None\n_UniFFILib.zklink_sdk_f180_EthSigner_new.argtypes = (\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_EthSigner_new.restype = ctypes.c_void_p\n_UniFFILib.zklink_sdk_f180_EthSigner_sign_message.argtypes = (\n    ctypes.c_void_p,\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_EthSigner_sign_message.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_EthSigner_get_address.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_EthSigner_get_address.restype = RustBuffer\n_UniFFILib.ffi_zklink_sdk_f180_TypedData_object_free.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.ffi_zklink_sdk_f180_TypedData_object_free.restype = None\n_UniFFILib.zklink_sdk_f180_TypedData_new.argtypes = (\n    RustBuffer,\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_TypedData_new.restype = ctypes.c_void_p\n_UniFFILib.ffi_zklink_sdk_f180_StarkSigner_object_free.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.ffi_zklink_sdk_f180_StarkSigner_object_free.restype = None\n_UniFFILib.zklink_sdk_f180_StarkSigner_new.argtypes = (\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_StarkSigner_new.restype = ctypes.c_void_p\n_UniFFILib.zklink_sdk_f180_StarkSigner_new_from_hex_str.argtypes = (\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_StarkSigner_new_from_hex_str.restype = ctypes.c_void_p\n_UniFFILib.zklink_sdk_f180_StarkSigner_sign_message.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_StarkSigner_sign_message.restype = RustBuffer\n_UniFFILib.ffi_zklink_sdk_f180_ZkLinkSigner_object_free.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.ffi_zklink_sdk_f180_ZkLinkSigner_object_free.restype = None\n_UniFFILib.zklink_sdk_f180_ZkLinkSigner_new.argtypes = (\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ZkLinkSigner_new.restype = ctypes.c_void_p\n_UniFFILib.zklink_sdk_f180_ZkLinkSigner_new_from_seed.argtypes = (\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ZkLinkSigner_new_from_seed.restype = ctypes.c_void_p\n_UniFFILib.zklink_sdk_f180_ZkLinkSigner_new_from_hex_eth_signer.argtypes = (\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ZkLinkSigner_new_from_hex_eth_signer.restype = ctypes.c_void_p\n_UniFFILib.zklink_sdk_f180_ZkLinkSigner_new_from_hex_stark_signer.argtypes = (\n    RustBuffer,\n    RustBuffer,\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ZkLinkSigner_new_from_hex_stark_signer.restype = ctypes.c_void_p\n_UniFFILib.zklink_sdk_f180_ZkLinkSigner_new_from_bytes.argtypes = (\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ZkLinkSigner_new_from_bytes.restype = ctypes.c_void_p\n_UniFFILib.zklink_sdk_f180_ZkLinkSigner_public_key.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ZkLinkSigner_public_key.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_ZkLinkSigner_sign_musig.argtypes = (\n    ctypes.c_void_p,\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_ZkLinkSigner_sign_musig.restype = RustBuffer\n_UniFFILib.ffi_zklink_sdk_f180_Signer_object_free.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.ffi_zklink_sdk_f180_Signer_object_free.restype = None\n_UniFFILib.zklink_sdk_f180_Signer_new.argtypes = (\n    RustBuffer,\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Signer_new.restype = ctypes.c_void_p\n_UniFFILib.zklink_sdk_f180_Signer_sign_change_pubkey_with_create2data_auth.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Signer_sign_change_pubkey_with_create2data_auth.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Signer_sign_change_pubkey_with_onchain_auth_data.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Signer_sign_change_pubkey_with_onchain_auth_data.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Signer_sign_change_pubkey_with_eth_ecdsa_auth.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Signer_sign_change_pubkey_with_eth_ecdsa_auth.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Signer_sign_transfer.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    RustBuffer,\n    RustBuffer,\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Signer_sign_transfer.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Signer_sign_withdraw.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    RustBuffer,\n    RustBuffer,\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Signer_sign_withdraw.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Signer_sign_forced_exit.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Signer_sign_forced_exit.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Signer_sign_order_matching.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Signer_sign_order_matching.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Signer_sign_contract_matching.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Signer_sign_contract_matching.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Signer_sign_funding.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Signer_sign_funding.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Signer_sign_liquidation.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Signer_sign_liquidation.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_Signer_sign_auto_deleveraging.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_Signer_sign_auto_deleveraging.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_verify_musig.argtypes = (\n    RustBuffer,\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_verify_musig.restype = ctypes.c_int8\n_UniFFILib.zklink_sdk_f180_get_public_key_hash.argtypes = (\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_get_public_key_hash.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_zklink_main_net_url.argtypes = (\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_zklink_main_net_url.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_zklink_test_net_url.argtypes = (\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_zklink_test_net_url.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_eth_signature_of_change_pubkey.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_eth_signature_of_change_pubkey.restype = RustBuffer\n_UniFFILib.zklink_sdk_f180_create_signed_change_pubkey.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.zklink_sdk_f180_create_signed_change_pubkey.restype = ctypes.c_void_p\n_UniFFILib.ffi_zklink_sdk_f180_rustbuffer_alloc.argtypes = (\n    ctypes.c_int32,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.ffi_zklink_sdk_f180_rustbuffer_alloc.restype = RustBuffer\n_UniFFILib.ffi_zklink_sdk_f180_rustbuffer_from_bytes.argtypes = (\n    ForeignBytes,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.ffi_zklink_sdk_f180_rustbuffer_from_bytes.restype = RustBuffer\n_UniFFILib.ffi_zklink_sdk_f180_rustbuffer_free.argtypes = (\n    RustBuffer,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.ffi_zklink_sdk_f180_rustbuffer_free.restype = None\n_UniFFILib.ffi_zklink_sdk_f180_rustbuffer_reserve.argtypes = (\n    RustBuffer,\n    ctypes.c_int32,\n    ctypes.POINTER(RustCallStatus),\n)\n_UniFFILib.ffi_zklink_sdk_f180_rustbuffer_reserve.restype = RustBuffer\n\n# Public interface members begin here.\n\n\nclass FfiConverterUInt8(FfiConverterPrimitive):\n    @staticmethod\n    def read(buf):\n        return buf.readU8()\n\n    @staticmethod\n    def write(value, buf):\n        buf.writeU8(value)\n\nclass FfiConverterUInt16(FfiConverterPrimitive):\n    @staticmethod\n    def read(buf):\n        return buf.readU16()\n\n    @staticmethod\n    def write(value, buf):\n        buf.writeU16(value)\n\nclass FfiConverterInt16(FfiConverterPrimitive):\n    @staticmethod\n    def read(buf):\n        return buf.readI16()\n\n    @staticmethod\n    def write(value, buf):\n        buf.writeI16(value)\n\nclass FfiConverterUInt32(FfiConverterPrimitive):\n    @staticmethod\n    def read(buf):\n        return buf.readU32()\n\n    @staticmethod\n    def write(value, buf):\n        buf.writeU32(value)\n\nclass FfiConverterUInt64(FfiConverterPrimitive):\n    @staticmethod\n    def read(buf):\n        return buf.readU64()\n\n    @staticmethod\n    def write(value, buf):\n        buf.writeU64(value)\n\nclass FfiConverterBool:\n    @classmethod\n    def read(cls, buf):\n        return cls.lift(buf.readU8())\n\n    @classmethod\n    def write(cls, value, buf):\n        buf.writeU8(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return int(value) != 0\n\n    @staticmethod\n    def lower(value):\n        return 1 if value else 0\n\nclass FfiConverterString:\n    @staticmethod\n    def read(buf):\n        size = buf.readI32()\n        if size < 0:\n            raise InternalError(\"Unexpected negative string length\")\n        utf8Bytes = buf.read(size)\n        return utf8Bytes.decode(\"utf-8\")\n\n    @staticmethod\n    def write(value, buf):\n        utf8Bytes = value.encode(\"utf-8\")\n        buf.writeI32(len(utf8Bytes))\n        buf.write(utf8Bytes)\n\n    @staticmethod\n    def lift(buf):\n        with buf.consumeWithStream() as stream:\n            return stream.read(stream.remaining()).decode(\"utf-8\")\n\n    @staticmethod\n    def lower(value):\n        with RustBuffer.allocWithBuilder() as builder:\n            builder.write(value.encode(\"utf-8\"))\n            return builder.finalize()\n\n\n\nclass AutoDeleveraging(object):\n    def __init__(self, builder):\n        builder = builder\n        \n        self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_AutoDeleveraging_new,\n        FfiConverterTypeAutoDeleveragingBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            rust_call(_UniFFILib.ffi_zklink_sdk_f180_AutoDeleveraging_object_free, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n    \n\n    def get_bytes(self, ):\n        return FfiConverterSequenceUInt8.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_AutoDeleveraging_get_bytes,self._pointer,)\n        )\n    def tx_hash(self, ):\n        return FfiConverterSequenceUInt8.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_AutoDeleveraging_tx_hash,self._pointer,)\n        )\n    def json_str(self, ):\n        return FfiConverterString.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_AutoDeleveraging_json_str,self._pointer,)\n        )\n    def is_valid(self, ):\n        return FfiConverterBool.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_AutoDeleveraging_is_valid,self._pointer,)\n        )\n    def get_signature(self, ):\n        return FfiConverterTypeZkLinkSignature.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_AutoDeleveraging_get_signature,self._pointer,)\n        )\n    def is_signature_valid(self, ):\n        return FfiConverterBool.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_AutoDeleveraging_is_signature_valid,self._pointer,)\n        )\n    def to_zklink_tx(self, ):\n        return FfiConverterTypeZkLinkTx.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_AutoDeleveraging_to_zklink_tx,self._pointer,)\n        )\n    def create_signed_tx(self, signer):\n        signer = signer\n        \n        return FfiConverterTypeAutoDeleveraging.lift(\n            rust_call_with_error(\n    FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_AutoDeleveraging_create_signed_tx,self._pointer,\n        FfiConverterTypeZkLinkSigner.lower(signer))\n        )\n    \n\n\nclass FfiConverterTypeAutoDeleveraging:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.readU64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, AutoDeleveraging):\n            raise TypeError(\"Expected AutoDeleveraging instance, {} found\".format(value.__class__.__name__))\n        buf.writeU64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return AutoDeleveraging._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass ChangePubKey(object):\n    def __init__(self, builder):\n        builder = builder\n        \n        self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_ChangePubKey_new,\n        FfiConverterTypeChangePubKeyBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            rust_call(_UniFFILib.ffi_zklink_sdk_f180_ChangePubKey_object_free, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n    \n\n    def get_signature(self, ):\n        return FfiConverterTypeZkLinkSignature.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_ChangePubKey_get_signature,self._pointer,)\n        )\n    def get_bytes(self, ):\n        return FfiConverterSequenceUInt8.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_ChangePubKey_get_bytes,self._pointer,)\n        )\n    def tx_hash(self, ):\n        return FfiConverterSequenceUInt8.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_ChangePubKey_tx_hash,self._pointer,)\n        )\n    def json_str(self, ):\n        return FfiConverterString.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_ChangePubKey_json_str,self._pointer,)\n        )\n    def is_valid(self, ):\n        return FfiConverterBool.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_ChangePubKey_is_valid,self._pointer,)\n        )\n    def is_onchain(self, ):\n        return FfiConverterBool.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_ChangePubKey_is_onchain,self._pointer,)\n        )\n    def is_signature_valid(self, ):\n        return FfiConverterBool.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_ChangePubKey_is_signature_valid,self._pointer,)\n        )\n    def to_zklink_tx(self, ):\n        return FfiConverterTypeZkLinkTx.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_ChangePubKey_to_zklink_tx,self._pointer,)\n        )\n    \n\n\nclass FfiConverterTypeChangePubKey:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.readU64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, ChangePubKey):\n            raise TypeError(\"Expected ChangePubKey instance, {} found\".format(value.__class__.__name__))\n        buf.writeU64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return ChangePubKey._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Contract(object):\n    def __init__(self, builder):\n        builder = builder\n        \n        self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_Contract_new,\n        FfiConverterTypeContractBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            rust_call(_UniFFILib.ffi_zklink_sdk_f180_Contract_object_free, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n    \n\n    def is_long(self, ):\n        return FfiConverterBool.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Contract_is_long,self._pointer,)\n        )\n    def is_short(self, ):\n        return FfiConverterBool.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Contract_is_short,self._pointer,)\n        )\n    def get_signature(self, ):\n        return FfiConverterTypeZkLinkSignature.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Contract_get_signature,self._pointer,)\n        )\n    def is_signature_valid(self, ):\n        return FfiConverterBool.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Contract_is_signature_valid,self._pointer,)\n        )\n    def get_bytes(self, ):\n        return FfiConverterSequenceUInt8.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Contract_get_bytes,self._pointer,)\n        )\n    def create_signed_contract(self, zklink_signer):\n        zklink_signer = zklink_signer\n        \n        return FfiConverterTypeContract.lift(\n            rust_call_with_error(\n    FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_Contract_create_signed_contract,self._pointer,\n        FfiConverterTypeZkLinkSigner.lower(zklink_signer))\n        )\n    \n\n\nclass FfiConverterTypeContract:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.readU64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Contract):\n            raise TypeError(\"Expected Contract instance, {} found\".format(value.__class__.__name__))\n        buf.writeU64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Contract._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass ContractMatching(object):\n    def __init__(self, builder):\n        builder = builder\n        \n        self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_ContractMatching_new,\n        FfiConverterTypeContractMatchingBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            rust_call(_UniFFILib.ffi_zklink_sdk_f180_ContractMatching_object_free, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n    \n\n    def get_bytes(self, ):\n        return FfiConverterSequenceUInt8.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_ContractMatching_get_bytes,self._pointer,)\n        )\n    def tx_hash(self, ):\n        return FfiConverterSequenceUInt8.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_ContractMatching_tx_hash,self._pointer,)\n        )\n    def json_str(self, ):\n        return FfiConverterString.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_ContractMatching_json_str,self._pointer,)\n        )\n    def is_valid(self, ):\n        return FfiConverterBool.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_ContractMatching_is_valid,self._pointer,)\n        )\n    def get_signature(self, ):\n        return FfiConverterTypeZkLinkSignature.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_ContractMatching_get_signature,self._pointer,)\n        )\n    def is_signature_valid(self, ):\n        return FfiConverterBool.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_ContractMatching_is_signature_valid,self._pointer,)\n        )\n    def to_zklink_tx(self, ):\n        return FfiConverterTypeZkLinkTx.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_ContractMatching_to_zklink_tx,self._pointer,)\n        )\n    def create_signed_tx(self, signer):\n        signer = signer\n        \n        return FfiConverterTypeContractMatching.lift(\n            rust_call_with_error(\n    FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_ContractMatching_create_signed_tx,self._pointer,\n        FfiConverterTypeZkLinkSigner.lower(signer))\n        )\n    \n\n\nclass FfiConverterTypeContractMatching:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.readU64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, ContractMatching):\n            raise TypeError(\"Expected ContractMatching instance, {} found\".format(value.__class__.__name__))\n        buf.writeU64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return ContractMatching._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Deposit(object):\n    def __init__(self, builder):\n        builder = builder\n        \n        self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_Deposit_new,\n        FfiConverterTypeDepositBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            rust_call(_UniFFILib.ffi_zklink_sdk_f180_Deposit_object_free, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n    \n\n    def get_bytes(self, ):\n        return FfiConverterSequenceUInt8.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Deposit_get_bytes,self._pointer,)\n        )\n    def tx_hash(self, ):\n        return FfiConverterSequenceUInt8.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Deposit_tx_hash,self._pointer,)\n        )\n    def json_str(self, ):\n        return FfiConverterString.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Deposit_json_str,self._pointer,)\n        )\n    \n\n\nclass FfiConverterTypeDeposit:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.readU64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Deposit):\n            raise TypeError(\"Expected Deposit instance, {} found\".format(value.__class__.__name__))\n        buf.writeU64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Deposit._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass EthSigner(object):\n    def __init__(self, private_key):\n        private_key = private_key\n        \n        self._pointer = rust_call_with_error(FfiConverterTypeEthSignerError,_UniFFILib.zklink_sdk_f180_EthSigner_new,\n        FfiConverterString.lower(private_key))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            rust_call(_UniFFILib.ffi_zklink_sdk_f180_EthSigner_object_free, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n    \n\n    def sign_message(self, message):\n        message = list(int(x) for x in message)\n        \n        return FfiConverterTypePackedEthSignature.lift(\n            rust_call_with_error(\n    FfiConverterTypeEthSignerError,_UniFFILib.zklink_sdk_f180_EthSigner_sign_message,self._pointer,\n        FfiConverterSequenceUInt8.lower(message))\n        )\n    def get_address(self, ):\n        return FfiConverterTypeAddress.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_EthSigner_get_address,self._pointer,)\n        )\n    \n\n\nclass FfiConverterTypeEthSigner:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.readU64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, EthSigner):\n            raise TypeError(\"Expected EthSigner instance, {} found\".format(value.__class__.__name__))\n        buf.writeU64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return EthSigner._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass ForcedExit(object):\n    def __init__(self, builder):\n        builder = builder\n        \n        self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_ForcedExit_new,\n        FfiConverterTypeForcedExitBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            rust_call(_UniFFILib.ffi_zklink_sdk_f180_ForcedExit_object_free, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n    \n\n    def get_signature(self, ):\n        return FfiConverterTypeZkLinkSignature.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_ForcedExit_get_signature,self._pointer,)\n        )\n    def get_bytes(self, ):\n        return FfiConverterSequenceUInt8.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_ForcedExit_get_bytes,self._pointer,)\n        )\n    def tx_hash(self, ):\n        return FfiConverterSequenceUInt8.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_ForcedExit_tx_hash,self._pointer,)\n        )\n    def json_str(self, ):\n        return FfiConverterString.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_ForcedExit_json_str,self._pointer,)\n        )\n    def is_valid(self, ):\n        return FfiConverterBool.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_ForcedExit_is_valid,self._pointer,)\n        )\n    def is_signature_valid(self, ):\n        return FfiConverterBool.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_ForcedExit_is_signature_valid,self._pointer,)\n        )\n    def create_signed_tx(self, signer):\n        signer = signer\n        \n        return FfiConverterTypeForcedExit.lift(\n            rust_call_with_error(\n    FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_ForcedExit_create_signed_tx,self._pointer,\n        FfiConverterTypeZkLinkSigner.lower(signer))\n        )\n    def to_zklink_tx(self, ):\n        return FfiConverterTypeZkLinkTx.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_ForcedExit_to_zklink_tx,self._pointer,)\n        )\n    \n\n\nclass FfiConverterTypeForcedExit:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.readU64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, ForcedExit):\n            raise TypeError(\"Expected ForcedExit instance, {} found\".format(value.__class__.__name__))\n        buf.writeU64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return ForcedExit._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass FullExit(object):\n    def __init__(self, builder):\n        builder = builder\n        \n        self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_FullExit_new,\n        FfiConverterTypeFullExitBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            rust_call(_UniFFILib.ffi_zklink_sdk_f180_FullExit_object_free, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n    \n\n    def get_bytes(self, ):\n        return FfiConverterSequenceUInt8.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_FullExit_get_bytes,self._pointer,)\n        )\n    def tx_hash(self, ):\n        return FfiConverterSequenceUInt8.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_FullExit_tx_hash,self._pointer,)\n        )\n    def json_str(self, ):\n        return FfiConverterString.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_FullExit_json_str,self._pointer,)\n        )\n    def is_valid(self, ):\n        return FfiConverterBool.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_FullExit_is_valid,self._pointer,)\n        )\n    def to_zklink_tx(self, ):\n        return FfiConverterTypeZkLinkTx.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_FullExit_to_zklink_tx,self._pointer,)\n        )\n    \n\n\nclass FfiConverterTypeFullExit:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.readU64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, FullExit):\n            raise TypeError(\"Expected FullExit instance, {} found\".format(value.__class__.__name__))\n        buf.writeU64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return FullExit._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Funding(object):\n    def __init__(self, builder):\n        builder = builder\n        \n        self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_Funding_new,\n        FfiConverterTypeFundingBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            rust_call(_UniFFILib.ffi_zklink_sdk_f180_Funding_object_free, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n    \n\n    def get_bytes(self, ):\n        return FfiConverterSequenceUInt8.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Funding_get_bytes,self._pointer,)\n        )\n    def tx_hash(self, ):\n        return FfiConverterSequenceUInt8.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Funding_tx_hash,self._pointer,)\n        )\n    def json_str(self, ):\n        return FfiConverterString.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Funding_json_str,self._pointer,)\n        )\n    def is_valid(self, ):\n        return FfiConverterBool.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Funding_is_valid,self._pointer,)\n        )\n    def get_signature(self, ):\n        return FfiConverterTypeZkLinkSignature.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Funding_get_signature,self._pointer,)\n        )\n    def is_signature_valid(self, ):\n        return FfiConverterBool.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Funding_is_signature_valid,self._pointer,)\n        )\n    def to_zklink_tx(self, ):\n        return FfiConverterTypeZkLinkTx.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Funding_to_zklink_tx,self._pointer,)\n        )\n    def create_signed_tx(self, signer):\n        signer = signer\n        \n        return FfiConverterTypeFunding.lift(\n            rust_call_with_error(\n    FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_Funding_create_signed_tx,self._pointer,\n        FfiConverterTypeZkLinkSigner.lower(signer))\n        )\n    \n\n\nclass FfiConverterTypeFunding:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.readU64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Funding):\n            raise TypeError(\"Expected Funding instance, {} found\".format(value.__class__.__name__))\n        buf.writeU64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Funding._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Liquidation(object):\n    def __init__(self, builder):\n        builder = builder\n        \n        self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_Liquidation_new,\n        FfiConverterTypeLiquidationBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            rust_call(_UniFFILib.ffi_zklink_sdk_f180_Liquidation_object_free, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n    \n\n    def get_bytes(self, ):\n        return FfiConverterSequenceUInt8.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Liquidation_get_bytes,self._pointer,)\n        )\n    def tx_hash(self, ):\n        return FfiConverterSequenceUInt8.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Liquidation_tx_hash,self._pointer,)\n        )\n    def json_str(self, ):\n        return FfiConverterString.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Liquidation_json_str,self._pointer,)\n        )\n    def is_valid(self, ):\n        return FfiConverterBool.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Liquidation_is_valid,self._pointer,)\n        )\n    def get_signature(self, ):\n        return FfiConverterTypeZkLinkSignature.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Liquidation_get_signature,self._pointer,)\n        )\n    def is_signature_valid(self, ):\n        return FfiConverterBool.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Liquidation_is_signature_valid,self._pointer,)\n        )\n    def to_zklink_tx(self, ):\n        return FfiConverterTypeZkLinkTx.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Liquidation_to_zklink_tx,self._pointer,)\n        )\n    def create_signed_tx(self, signer):\n        signer = signer\n        \n        return FfiConverterTypeLiquidation.lift(\n            rust_call_with_error(\n    FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_Liquidation_create_signed_tx,self._pointer,\n        FfiConverterTypeZkLinkSigner.lower(signer))\n        )\n    \n\n\nclass FfiConverterTypeLiquidation:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.readU64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Liquidation):\n            raise TypeError(\"Expected Liquidation instance, {} found\".format(value.__class__.__name__))\n        buf.writeU64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Liquidation._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Order(object):\n    def __init__(self, account_id,sub_account_id,slot_id,nonce,base_token_id,quote_token_id,amount,price,is_sell,has_subsidy,maker_fee_rate,taker_fee_rate,signature):\n        account_id = account_id\n        \n        sub_account_id = sub_account_id\n        \n        slot_id = slot_id\n        \n        nonce = nonce\n        \n        base_token_id = base_token_id\n        \n        quote_token_id = quote_token_id\n        \n        amount = amount\n        \n        price = price\n        \n        is_sell = bool(is_sell)\n        \n        has_subsidy = bool(has_subsidy)\n        \n        maker_fee_rate = int(maker_fee_rate)\n        \n        taker_fee_rate = int(taker_fee_rate)\n        \n        signature = (None if signature is None else signature)\n        \n        self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_Order_new,\n        FfiConverterTypeAccountId.lower(account_id),\n        FfiConverterTypeSubAccountId.lower(sub_account_id),\n        FfiConverterTypeSlotId.lower(slot_id),\n        FfiConverterTypeNonce.lower(nonce),\n        FfiConverterTypeTokenId.lower(base_token_id),\n        FfiConverterTypeTokenId.lower(quote_token_id),\n        FfiConverterTypeBigUint.lower(amount),\n        FfiConverterTypeBigUint.lower(price),\n        FfiConverterBool.lower(is_sell),\n        FfiConverterBool.lower(has_subsidy),\n        FfiConverterUInt8.lower(maker_fee_rate),\n        FfiConverterUInt8.lower(taker_fee_rate),\n        FfiConverterOptionalTypeZkLinkSignature.lower(signature))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            rust_call(_UniFFILib.ffi_zklink_sdk_f180_Order_object_free, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n    \n\n    def get_signature(self, ):\n        return FfiConverterTypeZkLinkSignature.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Order_get_signature,self._pointer,)\n        )\n    def get_bytes(self, ):\n        return FfiConverterSequenceUInt8.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Order_get_bytes,self._pointer,)\n        )\n    def json_str(self, ):\n        return FfiConverterString.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Order_json_str,self._pointer,)\n        )\n    def is_valid(self, ):\n        return FfiConverterBool.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Order_is_valid,self._pointer,)\n        )\n    def is_signature_valid(self, ):\n        return FfiConverterBool.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Order_is_signature_valid,self._pointer,)\n        )\n    def get_eth_sign_msg(self, quote_token,based_token,decimals):\n        quote_token = quote_token\n        \n        based_token = based_token\n        \n        decimals = int(decimals)\n        \n        return FfiConverterString.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Order_get_eth_sign_msg,self._pointer,\n        FfiConverterString.lower(quote_token),\n        FfiConverterString.lower(based_token),\n        FfiConverterUInt8.lower(decimals))\n        )\n    def create_signed_order(self, zklink_signer):\n        zklink_signer = zklink_signer\n        \n        return FfiConverterTypeOrder.lift(\n            rust_call_with_error(\n    FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_Order_create_signed_order,self._pointer,\n        FfiConverterTypeZkLinkSigner.lower(zklink_signer))\n        )\n    \n\n\nclass FfiConverterTypeOrder:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.readU64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Order):\n            raise TypeError(\"Expected Order instance, {} found\".format(value.__class__.__name__))\n        buf.writeU64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Order._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass OrderMatching(object):\n    def __init__(self, builder):\n        builder = builder\n        \n        self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_OrderMatching_new,\n        FfiConverterTypeOrderMatchingBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            rust_call(_UniFFILib.ffi_zklink_sdk_f180_OrderMatching_object_free, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n    \n\n    def get_bytes(self, ):\n        return FfiConverterSequenceUInt8.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_OrderMatching_get_bytes,self._pointer,)\n        )\n    def tx_hash(self, ):\n        return FfiConverterSequenceUInt8.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_OrderMatching_tx_hash,self._pointer,)\n        )\n    def json_str(self, ):\n        return FfiConverterString.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_OrderMatching_json_str,self._pointer,)\n        )\n    def is_valid(self, ):\n        return FfiConverterBool.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_OrderMatching_is_valid,self._pointer,)\n        )\n    def get_signature(self, ):\n        return FfiConverterTypeZkLinkSignature.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_OrderMatching_get_signature,self._pointer,)\n        )\n    def is_signature_valid(self, ):\n        return FfiConverterBool.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_OrderMatching_is_signature_valid,self._pointer,)\n        )\n    def create_signed_tx(self, signer):\n        signer = signer\n        \n        return FfiConverterTypeOrderMatching.lift(\n            rust_call_with_error(\n    FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_OrderMatching_create_signed_tx,self._pointer,\n        FfiConverterTypeZkLinkSigner.lower(signer))\n        )\n    def to_zklink_tx(self, ):\n        return FfiConverterTypeZkLinkTx.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_OrderMatching_to_zklink_tx,self._pointer,)\n        )\n    \n\n\nclass FfiConverterTypeOrderMatching:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.readU64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, OrderMatching):\n            raise TypeError(\"Expected OrderMatching instance, {} found\".format(value.__class__.__name__))\n        buf.writeU64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return OrderMatching._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Signer(object):\n    def __init__(self, private_key,l1_type):\n        private_key = private_key\n        \n        l1_type = l1_type\n        \n        self._pointer = rust_call_with_error(FfiConverterTypeSignError,_UniFFILib.zklink_sdk_f180_Signer_new,\n        FfiConverterString.lower(private_key),\n        FfiConverterTypeL1SignerType.lower(l1_type))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            rust_call(_UniFFILib.ffi_zklink_sdk_f180_Signer_object_free, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n    \n\n    def sign_change_pubkey_with_create2data_auth(self, tx,crate2data):\n        tx = tx\n        \n        crate2data = crate2data\n        \n        return FfiConverterTypeTxSignature.lift(\n            rust_call_with_error(\n    FfiConverterTypeSignError,_UniFFILib.zklink_sdk_f180_Signer_sign_change_pubkey_with_create2data_auth,self._pointer,\n        FfiConverterTypeChangePubKey.lower(tx),\n        FfiConverterTypeCreate2Data.lower(crate2data))\n        )\n    def sign_change_pubkey_with_onchain_auth_data(self, tx):\n        tx = tx\n        \n        return FfiConverterTypeTxSignature.lift(\n            rust_call_with_error(\n    FfiConverterTypeSignError,_UniFFILib.zklink_sdk_f180_Signer_sign_change_pubkey_with_onchain_auth_data,self._pointer,\n        FfiConverterTypeChangePubKey.lower(tx))\n        )\n    def sign_change_pubkey_with_eth_ecdsa_auth(self, tx):\n        tx = tx\n        \n        return FfiConverterTypeTxSignature.lift(\n            rust_call_with_error(\n    FfiConverterTypeSignError,_UniFFILib.zklink_sdk_f180_Signer_sign_change_pubkey_with_eth_ecdsa_auth,self._pointer,\n        FfiConverterTypeChangePubKey.lower(tx))\n        )\n    def sign_transfer(self, tx,token_sybmol,chain_id,addr):\n        tx = tx\n        \n        token_sybmol = token_sybmol\n        \n        chain_id = (None if chain_id is None else chain_id)\n        \n        addr = (None if addr is None else addr)\n        \n        return FfiConverterTypeTxSignature.lift(\n            rust_call_with_error(\n    FfiConverterTypeSignError,_UniFFILib.zklink_sdk_f180_Signer_sign_transfer,self._pointer,\n        FfiConverterTypeTransfer.lower(tx),\n        FfiConverterString.lower(token_sybmol),\n        FfiConverterOptionalString.lower(chain_id),\n        FfiConverterOptionalString.lower(addr))\n        )\n    def sign_withdraw(self, tx,l2_source_token_symbol,chain_id,addr):\n        tx = tx\n        \n        l2_source_token_symbol = l2_source_token_symbol\n        \n        chain_id = (None if chain_id is None else chain_id)\n        \n        addr = (None if addr is None else addr)\n        \n        return FfiConverterTypeTxSignature.lift(\n            rust_call_with_error(\n    FfiConverterTypeSignError,_UniFFILib.zklink_sdk_f180_Signer_sign_withdraw,self._pointer,\n        FfiConverterTypeWithdraw.lower(tx),\n        FfiConverterString.lower(l2_source_token_symbol),\n        FfiConverterOptionalString.lower(chain_id),\n        FfiConverterOptionalString.lower(addr))\n        )\n    def sign_forced_exit(self, tx):\n        tx = tx\n        \n        return FfiConverterTypeTxSignature.lift(\n            rust_call_with_error(\n    FfiConverterTypeSignError,_UniFFILib.zklink_sdk_f180_Signer_sign_forced_exit,self._pointer,\n        FfiConverterTypeForcedExit.lower(tx))\n        )\n    def sign_order_matching(self, tx):\n        tx = tx\n        \n        return FfiConverterTypeTxSignature.lift(\n            rust_call_with_error(\n    FfiConverterTypeSignError,_UniFFILib.zklink_sdk_f180_Signer_sign_order_matching,self._pointer,\n        FfiConverterTypeOrderMatching.lower(tx))\n        )\n    def sign_contract_matching(self, tx):\n        tx = tx\n        \n        return FfiConverterTypeTxSignature.lift(\n            rust_call_with_error(\n    FfiConverterTypeSignError,_UniFFILib.zklink_sdk_f180_Signer_sign_contract_matching,self._pointer,\n        FfiConverterTypeContractMatching.lower(tx))\n        )\n    def sign_funding(self, tx):\n        tx = tx\n        \n        return FfiConverterTypeTxSignature.lift(\n            rust_call_with_error(\n    FfiConverterTypeSignError,_UniFFILib.zklink_sdk_f180_Signer_sign_funding,self._pointer,\n        FfiConverterTypeFunding.lower(tx))\n        )\n    def sign_liquidation(self, tx):\n        tx = tx\n        \n        return FfiConverterTypeTxSignature.lift(\n            rust_call_with_error(\n    FfiConverterTypeSignError,_UniFFILib.zklink_sdk_f180_Signer_sign_liquidation,self._pointer,\n        FfiConverterTypeLiquidation.lower(tx))\n        )\n    def sign_auto_deleveraging(self, tx):\n        tx = tx\n        \n        return FfiConverterTypeTxSignature.lift(\n            rust_call_with_error(\n    FfiConverterTypeSignError,_UniFFILib.zklink_sdk_f180_Signer_sign_auto_deleveraging,self._pointer,\n        FfiConverterTypeAutoDeleveraging.lower(tx))\n        )\n    \n\n\nclass FfiConverterTypeSigner:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.readU64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Signer):\n            raise TypeError(\"Expected Signer instance, {} found\".format(value.__class__.__name__))\n        buf.writeU64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Signer._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass StarkSigner(object):\n    def __init__(self, ):\n        self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_StarkSigner_new,)\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            rust_call(_UniFFILib.ffi_zklink_sdk_f180_StarkSigner_object_free, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n    @classmethod\n    def new_from_hex_str(cls, hex_str):\n        hex_str = hex_str\n        \n        # Call the (fallible) function before creating any half-baked object instances.\n        pointer = rust_call_with_error(FfiConverterTypeStarkSignerError,_UniFFILib.zklink_sdk_f180_StarkSigner_new_from_hex_str,\n        FfiConverterString.lower(hex_str))\n        return cls._make_instance_(pointer)\n    \n\n    def sign_message(self, typed_data,addr):\n        typed_data = typed_data\n        \n        addr = addr\n        \n        return FfiConverterTypeStarkEip712Signature.lift(\n            rust_call_with_error(\n    FfiConverterTypeStarkSignerError,_UniFFILib.zklink_sdk_f180_StarkSigner_sign_message,self._pointer,\n        FfiConverterTypeTypedData.lower(typed_data),\n        FfiConverterString.lower(addr))\n        )\n    \n\n\nclass FfiConverterTypeStarkSigner:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.readU64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, StarkSigner):\n            raise TypeError(\"Expected StarkSigner instance, {} found\".format(value.__class__.__name__))\n        buf.writeU64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return StarkSigner._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Transfer(object):\n    def __init__(self, builder):\n        builder = builder\n        \n        self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_Transfer_new,\n        FfiConverterTypeTransferBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            rust_call(_UniFFILib.ffi_zklink_sdk_f180_Transfer_object_free, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n    \n\n    def get_signature(self, ):\n        return FfiConverterTypeZkLinkSignature.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Transfer_get_signature,self._pointer,)\n        )\n    def get_bytes(self, ):\n        return FfiConverterSequenceUInt8.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Transfer_get_bytes,self._pointer,)\n        )\n    def tx_hash(self, ):\n        return FfiConverterSequenceUInt8.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Transfer_tx_hash,self._pointer,)\n        )\n    def json_str(self, ):\n        return FfiConverterString.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Transfer_json_str,self._pointer,)\n        )\n    def is_valid(self, ):\n        return FfiConverterBool.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Transfer_is_valid,self._pointer,)\n        )\n    def is_signature_valid(self, ):\n        return FfiConverterBool.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Transfer_is_signature_valid,self._pointer,)\n        )\n    def get_eth_sign_msg(self, token_symbol):\n        token_symbol = token_symbol\n        \n        return FfiConverterString.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Transfer_get_eth_sign_msg,self._pointer,\n        FfiConverterString.lower(token_symbol))\n        )\n    def eth_signature(self, eth_signer,token_symbol):\n        eth_signer = eth_signer\n        \n        token_symbol = token_symbol\n        \n        return FfiConverterTypeTxLayer1Signature.lift(\n            rust_call_with_error(\n    FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_Transfer_eth_signature,self._pointer,\n        FfiConverterTypeEthSigner.lower(eth_signer),\n        FfiConverterString.lower(token_symbol))\n        )\n    def create_signed_tx(self, signer):\n        signer = signer\n        \n        return FfiConverterTypeTransfer.lift(\n            rust_call_with_error(\n    FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_Transfer_create_signed_tx,self._pointer,\n        FfiConverterTypeZkLinkSigner.lower(signer))\n        )\n    def to_zklink_tx(self, ):\n        return FfiConverterTypeZkLinkTx.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Transfer_to_zklink_tx,self._pointer,)\n        )\n    \n\n\nclass FfiConverterTypeTransfer:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.readU64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Transfer):\n            raise TypeError(\"Expected Transfer instance, {} found\".format(value.__class__.__name__))\n        buf.writeU64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Transfer._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass TypedData(object):\n    def __init__(self, message,chain_id):\n        message = message\n        \n        chain_id = chain_id\n        \n        self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_TypedData_new,\n        FfiConverterTypeTypedDataMessage.lower(message),\n        FfiConverterString.lower(chain_id))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            rust_call(_UniFFILib.ffi_zklink_sdk_f180_TypedData_object_free, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n    \n\n    \n\n\nclass FfiConverterTypeTypedData:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.readU64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, TypedData):\n            raise TypeError(\"Expected TypedData instance, {} found\".format(value.__class__.__name__))\n        buf.writeU64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return TypedData._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass UpdateGlobalVar(object):\n    def __init__(self, builder):\n        builder = builder\n        \n        self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_UpdateGlobalVar_new,\n        FfiConverterTypeUpdateGlobalVarBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            rust_call(_UniFFILib.ffi_zklink_sdk_f180_UpdateGlobalVar_object_free, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n    \n\n    def get_bytes(self, ):\n        return FfiConverterSequenceUInt8.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_UpdateGlobalVar_get_bytes,self._pointer,)\n        )\n    def tx_hash(self, ):\n        return FfiConverterSequenceUInt8.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_UpdateGlobalVar_tx_hash,self._pointer,)\n        )\n    def json_str(self, ):\n        return FfiConverterString.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_UpdateGlobalVar_json_str,self._pointer,)\n        )\n    def is_valid(self, ):\n        return FfiConverterBool.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_UpdateGlobalVar_is_valid,self._pointer,)\n        )\n    def to_zklink_tx(self, ):\n        return FfiConverterTypeZkLinkTx.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_UpdateGlobalVar_to_zklink_tx,self._pointer,)\n        )\n    \n\n\nclass FfiConverterTypeUpdateGlobalVar:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.readU64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, UpdateGlobalVar):\n            raise TypeError(\"Expected UpdateGlobalVar instance, {} found\".format(value.__class__.__name__))\n        buf.writeU64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return UpdateGlobalVar._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Withdraw(object):\n    def __init__(self, builder):\n        builder = builder\n        \n        self._pointer = rust_call(_UniFFILib.zklink_sdk_f180_Withdraw_new,\n        FfiConverterTypeWithdrawBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            rust_call(_UniFFILib.ffi_zklink_sdk_f180_Withdraw_object_free, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n    \n\n    def get_signature(self, ):\n        return FfiConverterTypeZkLinkSignature.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Withdraw_get_signature,self._pointer,)\n        )\n    def get_bytes(self, ):\n        return FfiConverterSequenceUInt8.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Withdraw_get_bytes,self._pointer,)\n        )\n    def tx_hash(self, ):\n        return FfiConverterSequenceUInt8.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Withdraw_tx_hash,self._pointer,)\n        )\n    def json_str(self, ):\n        return FfiConverterString.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Withdraw_json_str,self._pointer,)\n        )\n    def is_valid(self, ):\n        return FfiConverterBool.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Withdraw_is_valid,self._pointer,)\n        )\n    def is_signature_valid(self, ):\n        return FfiConverterBool.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Withdraw_is_signature_valid,self._pointer,)\n        )\n    def get_eth_sign_msg(self, token_symbol):\n        token_symbol = token_symbol\n        \n        return FfiConverterString.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Withdraw_get_eth_sign_msg,self._pointer,\n        FfiConverterString.lower(token_symbol))\n        )\n    def eth_signature(self, eth_signer,l2_source_token_symbol):\n        eth_signer = eth_signer\n        \n        l2_source_token_symbol = l2_source_token_symbol\n        \n        return FfiConverterTypePackedEthSignature.lift(\n            rust_call_with_error(\n    FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_Withdraw_eth_signature,self._pointer,\n        FfiConverterTypeEthSigner.lower(eth_signer),\n        FfiConverterString.lower(l2_source_token_symbol))\n        )\n    def create_signed_tx(self, signer):\n        signer = signer\n        \n        return FfiConverterTypeWithdraw.lift(\n            rust_call_with_error(\n    FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_Withdraw_create_signed_tx,self._pointer,\n        FfiConverterTypeZkLinkSigner.lower(signer))\n        )\n    def to_zklink_tx(self, ):\n        return FfiConverterTypeZkLinkTx.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_Withdraw_to_zklink_tx,self._pointer,)\n        )\n    \n\n\nclass FfiConverterTypeWithdraw:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.readU64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Withdraw):\n            raise TypeError(\"Expected Withdraw instance, {} found\".format(value.__class__.__name__))\n        buf.writeU64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Withdraw._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass ZkLinkSigner(object):\n    def __init__(self, ):\n        self._pointer = rust_call_with_error(FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_ZkLinkSigner_new,)\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            rust_call(_UniFFILib.ffi_zklink_sdk_f180_ZkLinkSigner_object_free, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n    @classmethod\n    def new_from_seed(cls, seed):\n        seed = list(int(x) for x in seed)\n        \n        # Call the (fallible) function before creating any half-baked object instances.\n        pointer = rust_call_with_error(FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_ZkLinkSigner_new_from_seed,\n        FfiConverterSequenceUInt8.lower(seed))\n        return cls._make_instance_(pointer)\n    @classmethod\n    def new_from_hex_eth_signer(cls, eth_hex_private_key):\n        eth_hex_private_key = eth_hex_private_key\n        \n        # Call the (fallible) function before creating any half-baked object instances.\n        pointer = rust_call_with_error(FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_ZkLinkSigner_new_from_hex_eth_signer,\n        FfiConverterString.lower(eth_hex_private_key))\n        return cls._make_instance_(pointer)\n    @classmethod\n    def new_from_hex_stark_signer(cls, hex_private_key,addr,chain_id):\n        hex_private_key = hex_private_key\n        \n        addr = addr\n        \n        chain_id = chain_id\n        \n        # Call the (fallible) function before creating any half-baked object instances.\n        pointer = rust_call_with_error(FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_ZkLinkSigner_new_from_hex_stark_signer,\n        FfiConverterString.lower(hex_private_key),\n        FfiConverterString.lower(addr),\n        FfiConverterString.lower(chain_id))\n        return cls._make_instance_(pointer)\n    @classmethod\n    def new_from_bytes(cls, slice):\n        slice = list(int(x) for x in slice)\n        \n        # Call the (fallible) function before creating any half-baked object instances.\n        pointer = rust_call_with_error(FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_ZkLinkSigner_new_from_bytes,\n        FfiConverterSequenceUInt8.lower(slice))\n        return cls._make_instance_(pointer)\n    \n\n    def public_key(self, ):\n        return FfiConverterTypePackedPublicKey.lift(\n            rust_call(_UniFFILib.zklink_sdk_f180_ZkLinkSigner_public_key,self._pointer,)\n        )\n    def sign_musig(self, msg):\n        msg = list(int(x) for x in msg)\n        \n        return FfiConverterTypeZkLinkSignature.lift(\n            rust_call_with_error(\n    FfiConverterTypeZkSignerError,_UniFFILib.zklink_sdk_f180_ZkLinkSigner_sign_musig,self._pointer,\n        FfiConverterSequenceUInt8.lower(msg))\n        )\n    \n\n\nclass FfiConverterTypeZkLinkSigner:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.readU64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, ZkLinkSigner):\n            raise TypeError(\"Expected ZkLinkSigner instance, {} found\".format(value.__class__.__name__))\n        buf.writeU64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return ZkLinkSigner._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\nclass AutoDeleveragingBuilder:\n\n    def __init__(self, account_id, sub_account_id, sub_account_nonce, contract_prices, margin_prices, adl_account_id, pair_id, adl_size, adl_price, fee, fee_token):\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.sub_account_nonce = sub_account_nonce\n        self.contract_prices = contract_prices\n        self.margin_prices = margin_prices\n        self.adl_account_id = adl_account_id\n        self.pair_id = pair_id\n        self.adl_size = adl_size\n        self.adl_price = adl_price\n        self.fee = fee\n        self.fee_token = fee_token\n\n    def __str__(self):\n        return \"AutoDeleveragingBuilder(account_id={}, sub_account_id={}, sub_account_nonce={}, contract_prices={}, margin_prices={}, adl_account_id={}, pair_id={}, adl_size={}, adl_price={}, fee={}, fee_token={})\".format(self.account_id, self.sub_account_id, self.sub_account_nonce, self.contract_prices, self.margin_prices, self.adl_account_id, self.pair_id, self.adl_size, self.adl_price, self.fee, self.fee_token)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.sub_account_nonce != other.sub_account_nonce:\n            return False\n        if self.contract_prices != other.contract_prices:\n            return False\n        if self.margin_prices != other.margin_prices:\n            return False\n        if self.adl_account_id != other.adl_account_id:\n            return False\n        if self.pair_id != other.pair_id:\n            return False\n        if self.adl_size != other.adl_size:\n            return False\n        if self.adl_price != other.adl_price:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.fee_token != other.fee_token:\n            return False\n        return True\n\nclass FfiConverterTypeAutoDeleveragingBuilder(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return AutoDeleveragingBuilder(\n            account_id=FfiConverterTypeAccountId.read(buf),\n            sub_account_id=FfiConverterTypeSubAccountId.read(buf),\n            sub_account_nonce=FfiConverterTypeNonce.read(buf),\n            contract_prices=FfiConverterSequenceTypeContractPrice.read(buf),\n            margin_prices=FfiConverterSequenceTypeSpotPriceInfo.read(buf),\n            adl_account_id=FfiConverterTypeAccountId.read(buf),\n            pair_id=FfiConverterTypePairId.read(buf),\n            adl_size=FfiConverterTypeBigUint.read(buf),\n            adl_price=FfiConverterTypeBigUint.read(buf),\n            fee=FfiConverterTypeBigUint.read(buf),\n            fee_token=FfiConverterTypeTokenId.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        FfiConverterTypeAccountId.write(value.account_id, buf)\n        FfiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        FfiConverterTypeNonce.write(value.sub_account_nonce, buf)\n        FfiConverterSequenceTypeContractPrice.write(value.contract_prices, buf)\n        FfiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf)\n        FfiConverterTypeAccountId.write(value.adl_account_id, buf)\n        FfiConverterTypePairId.write(value.pair_id, buf)\n        FfiConverterTypeBigUint.write(value.adl_size, buf)\n        FfiConverterTypeBigUint.write(value.adl_price, buf)\n        FfiConverterTypeBigUint.write(value.fee, buf)\n        FfiConverterTypeTokenId.write(value.fee_token, buf)\n\n\nclass ChangePubKeyBuilder:\n\n    def __init__(self, chain_id, account_id, sub_account_id, new_pubkey_hash, fee_token, fee, nonce, eth_signature, timestamp):\n        self.chain_id = chain_id\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.new_pubkey_hash = new_pubkey_hash\n        self.fee_token = fee_token\n        self.fee = fee\n        self.nonce = nonce\n        self.eth_signature = eth_signature\n        self.timestamp = timestamp\n\n    def __str__(self):\n        return \"ChangePubKeyBuilder(chain_id={}, account_id={}, sub_account_id={}, new_pubkey_hash={}, fee_token={}, fee={}, nonce={}, eth_signature={}, timestamp={})\".format(self.chain_id, self.account_id, self.sub_account_id, self.new_pubkey_hash, self.fee_token, self.fee, self.nonce, self.eth_signature, self.timestamp)\n\n    def __eq__(self, other):\n        if self.chain_id != other.chain_id:\n            return False\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.new_pubkey_hash != other.new_pubkey_hash:\n            return False\n        if self.fee_token != other.fee_token:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.nonce != other.nonce:\n            return False\n        if self.eth_signature != other.eth_signature:\n            return False\n        if self.timestamp != other.timestamp:\n            return False\n        return True\n\nclass FfiConverterTypeChangePubKeyBuilder(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return ChangePubKeyBuilder(\n            chain_id=FfiConverterTypeChainId.read(buf),\n            account_id=FfiConverterTypeAccountId.read(buf),\n            sub_account_id=FfiConverterTypeSubAccountId.read(buf),\n            new_pubkey_hash=FfiConverterTypePubKeyHash.read(buf),\n            fee_token=FfiConverterTypeTokenId.read(buf),\n            fee=FfiConverterTypeBigUint.read(buf),\n            nonce=FfiConverterTypeNonce.read(buf),\n            eth_signature=FfiConverterOptionalTypePackedEthSignature.read(buf),\n            timestamp=FfiConverterTypeTimeStamp.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        FfiConverterTypeChainId.write(value.chain_id, buf)\n        FfiConverterTypeAccountId.write(value.account_id, buf)\n        FfiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        FfiConverterTypePubKeyHash.write(value.new_pubkey_hash, buf)\n        FfiConverterTypeTokenId.write(value.fee_token, buf)\n        FfiConverterTypeBigUint.write(value.fee, buf)\n        FfiConverterTypeNonce.write(value.nonce, buf)\n        FfiConverterOptionalTypePackedEthSignature.write(value.eth_signature, buf)\n        FfiConverterTypeTimeStamp.write(value.timestamp, buf)\n\n\nclass ContractBuilder:\n\n    def __init__(self, account_id, sub_account_id, slot_id, nonce, pair_id, size, price, direction, taker_fee_rate, maker_fee_rate, has_subsidy):\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.slot_id = slot_id\n        self.nonce = nonce\n        self.pair_id = pair_id\n        self.size = size\n        self.price = price\n        self.direction = direction\n        self.taker_fee_rate = taker_fee_rate\n        self.maker_fee_rate = maker_fee_rate\n        self.has_subsidy = has_subsidy\n\n    def __str__(self):\n        return \"ContractBuilder(account_id={}, sub_account_id={}, slot_id={}, nonce={}, pair_id={}, size={}, price={}, direction={}, taker_fee_rate={}, maker_fee_rate={}, has_subsidy={})\".format(self.account_id, self.sub_account_id, self.slot_id, self.nonce, self.pair_id, self.size, self.price, self.direction, self.taker_fee_rate, self.maker_fee_rate, self.has_subsidy)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.slot_id != other.slot_id:\n            return False\n        if self.nonce != other.nonce:\n            return False\n        if self.pair_id != other.pair_id:\n            return False\n        if self.size != other.size:\n            return False\n        if self.price != other.price:\n            return False\n        if self.direction != other.direction:\n            return False\n        if self.taker_fee_rate != other.taker_fee_rate:\n            return False\n        if self.maker_fee_rate != other.maker_fee_rate:\n            return False\n        if self.has_subsidy != other.has_subsidy:\n            return False\n        return True\n\nclass FfiConverterTypeContractBuilder(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return ContractBuilder(\n            account_id=FfiConverterTypeAccountId.read(buf),\n            sub_account_id=FfiConverterTypeSubAccountId.read(buf),\n            slot_id=FfiConverterTypeSlotId.read(buf),\n            nonce=FfiConverterTypeNonce.read(buf),\n            pair_id=FfiConverterTypePairId.read(buf),\n            size=FfiConverterTypeBigUint.read(buf),\n            price=FfiConverterTypeBigUint.read(buf),\n            direction=FfiConverterBool.read(buf),\n            taker_fee_rate=FfiConverterUInt8.read(buf),\n            maker_fee_rate=FfiConverterUInt8.read(buf),\n            has_subsidy=FfiConverterBool.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        FfiConverterTypeAccountId.write(value.account_id, buf)\n        FfiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        FfiConverterTypeSlotId.write(value.slot_id, buf)\n        FfiConverterTypeNonce.write(value.nonce, buf)\n        FfiConverterTypePairId.write(value.pair_id, buf)\n        FfiConverterTypeBigUint.write(value.size, buf)\n        FfiConverterTypeBigUint.write(value.price, buf)\n        FfiConverterBool.write(value.direction, buf)\n        FfiConverterUInt8.write(value.taker_fee_rate, buf)\n        FfiConverterUInt8.write(value.maker_fee_rate, buf)\n        FfiConverterBool.write(value.has_subsidy, buf)\n\n\nclass ContractMatchingBuilder:\n\n    def __init__(self, account_id, sub_account_id, taker, maker, fee, fee_token, contract_prices, margin_prices):\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.taker = taker\n        self.maker = maker\n        self.fee = fee\n        self.fee_token = fee_token\n        self.contract_prices = contract_prices\n        self.margin_prices = margin_prices\n\n    def __str__(self):\n        return \"ContractMatchingBuilder(account_id={}, sub_account_id={}, taker={}, maker={}, fee={}, fee_token={}, contract_prices={}, margin_prices={})\".format(self.account_id, self.sub_account_id, self.taker, self.maker, self.fee, self.fee_token, self.contract_prices, self.margin_prices)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.taker != other.taker:\n            return False\n        if self.maker != other.maker:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.fee_token != other.fee_token:\n            return False\n        if self.contract_prices != other.contract_prices:\n            return False\n        if self.margin_prices != other.margin_prices:\n            return False\n        return True\n\nclass FfiConverterTypeContractMatchingBuilder(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return ContractMatchingBuilder(\n            account_id=FfiConverterTypeAccountId.read(buf),\n            sub_account_id=FfiConverterTypeSubAccountId.read(buf),\n            taker=FfiConverterTypeContract.read(buf),\n            maker=FfiConverterSequenceTypeContract.read(buf),\n            fee=FfiConverterTypeBigUint.read(buf),\n            fee_token=FfiConverterTypeTokenId.read(buf),\n            contract_prices=FfiConverterSequenceTypeContractPrice.read(buf),\n            margin_prices=FfiConverterSequenceTypeSpotPriceInfo.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        FfiConverterTypeAccountId.write(value.account_id, buf)\n        FfiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        FfiConverterTypeContract.write(value.taker, buf)\n        FfiConverterSequenceTypeContract.write(value.maker, buf)\n        FfiConverterTypeBigUint.write(value.fee, buf)\n        FfiConverterTypeTokenId.write(value.fee_token, buf)\n        FfiConverterSequenceTypeContractPrice.write(value.contract_prices, buf)\n        FfiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf)\n\n\nclass ContractPrice:\n\n    def __init__(self, pair_id, market_price):\n        self.pair_id = pair_id\n        self.market_price = market_price\n\n    def __str__(self):\n        return \"ContractPrice(pair_id={}, market_price={})\".format(self.pair_id, self.market_price)\n\n    def __eq__(self, other):\n        if self.pair_id != other.pair_id:\n            return False\n        if self.market_price != other.market_price:\n            return False\n        return True\n\nclass FfiConverterTypeContractPrice(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return ContractPrice(\n            pair_id=FfiConverterTypePairId.read(buf),\n            market_price=FfiConverterTypeBigUint.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        FfiConverterTypePairId.write(value.pair_id, buf)\n        FfiConverterTypeBigUint.write(value.market_price, buf)\n\n\nclass Create2Data:\n\n    def __init__(self, creator_address, salt_arg, code_hash):\n        self.creator_address = creator_address\n        self.salt_arg = salt_arg\n        self.code_hash = code_hash\n\n    def __str__(self):\n        return \"Create2Data(creator_address={}, salt_arg={}, code_hash={})\".format(self.creator_address, self.salt_arg, self.code_hash)\n\n    def __eq__(self, other):\n        if self.creator_address != other.creator_address:\n            return False\n        if self.salt_arg != other.salt_arg:\n            return False\n        if self.code_hash != other.code_hash:\n            return False\n        return True\n\nclass FfiConverterTypeCreate2Data(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return Create2Data(\n            creator_address=FfiConverterTypeZkLinkAddress.read(buf),\n            salt_arg=FfiConverterTypeH256.read(buf),\n            code_hash=FfiConverterTypeH256.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        FfiConverterTypeZkLinkAddress.write(value.creator_address, buf)\n        FfiConverterTypeH256.write(value.salt_arg, buf)\n        FfiConverterTypeH256.write(value.code_hash, buf)\n\n\nclass DepositBuilder:\n\n    def __init__(self, from_address, to_address, from_chain_id, sub_account_id, l2_target_token, l1_source_token, amount, serial_id, l2_hash, eth_hash):\n        self.from_address = from_address\n        self.to_address = to_address\n        self.from_chain_id = from_chain_id\n        self.sub_account_id = sub_account_id\n        self.l2_target_token = l2_target_token\n        self.l1_source_token = l1_source_token\n        self.amount = amount\n        self.serial_id = serial_id\n        self.l2_hash = l2_hash\n        self.eth_hash = eth_hash\n\n    def __str__(self):\n        return \"DepositBuilder(from_address={}, to_address={}, from_chain_id={}, sub_account_id={}, l2_target_token={}, l1_source_token={}, amount={}, serial_id={}, l2_hash={}, eth_hash={})\".format(self.from_address, self.to_address, self.from_chain_id, self.sub_account_id, self.l2_target_token, self.l1_source_token, self.amount, self.serial_id, self.l2_hash, self.eth_hash)\n\n    def __eq__(self, other):\n        if self.from_address != other.from_address:\n            return False\n        if self.to_address != other.to_address:\n            return False\n        if self.from_chain_id != other.from_chain_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.l2_target_token != other.l2_target_token:\n            return False\n        if self.l1_source_token != other.l1_source_token:\n            return False\n        if self.amount != other.amount:\n            return False\n        if self.serial_id != other.serial_id:\n            return False\n        if self.l2_hash != other.l2_hash:\n            return False\n        if self.eth_hash != other.eth_hash:\n            return False\n        return True\n\nclass FfiConverterTypeDepositBuilder(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return DepositBuilder(\n            from_address=FfiConverterTypeZkLinkAddress.read(buf),\n            to_address=FfiConverterTypeZkLinkAddress.read(buf),\n            from_chain_id=FfiConverterTypeChainId.read(buf),\n            sub_account_id=FfiConverterTypeSubAccountId.read(buf),\n            l2_target_token=FfiConverterTypeTokenId.read(buf),\n            l1_source_token=FfiConverterTypeTokenId.read(buf),\n            amount=FfiConverterTypeBigUint.read(buf),\n            serial_id=FfiConverterUInt64.read(buf),\n            l2_hash=FfiConverterTypeH256.read(buf),\n            eth_hash=FfiConverterOptionalTypeH256.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        FfiConverterTypeZkLinkAddress.write(value.from_address, buf)\n        FfiConverterTypeZkLinkAddress.write(value.to_address, buf)\n        FfiConverterTypeChainId.write(value.from_chain_id, buf)\n        FfiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        FfiConverterTypeTokenId.write(value.l2_target_token, buf)\n        FfiConverterTypeTokenId.write(value.l1_source_token, buf)\n        FfiConverterTypeBigUint.write(value.amount, buf)\n        FfiConverterUInt64.write(value.serial_id, buf)\n        FfiConverterTypeH256.write(value.l2_hash, buf)\n        FfiConverterOptionalTypeH256.write(value.eth_hash, buf)\n\n\nclass ForcedExitBuilder:\n\n    def __init__(self, to_chain_id, initiator_account_id, initiator_sub_account_id, target, target_sub_account_id, l2_source_token, l1_target_token, initiator_nonce, exit_amount, withdraw_to_l1, timestamp):\n        self.to_chain_id = to_chain_id\n        self.initiator_account_id = initiator_account_id\n        self.initiator_sub_account_id = initiator_sub_account_id\n        self.target = target\n        self.target_sub_account_id = target_sub_account_id\n        self.l2_source_token = l2_source_token\n        self.l1_target_token = l1_target_token\n        self.initiator_nonce = initiator_nonce\n        self.exit_amount = exit_amount\n        self.withdraw_to_l1 = withdraw_to_l1\n        self.timestamp = timestamp\n\n    def __str__(self):\n        return \"ForcedExitBuilder(to_chain_id={}, initiator_account_id={}, initiator_sub_account_id={}, target={}, target_sub_account_id={}, l2_source_token={}, l1_target_token={}, initiator_nonce={}, exit_amount={}, withdraw_to_l1={}, timestamp={})\".format(self.to_chain_id, self.initiator_account_id, self.initiator_sub_account_id, self.target, self.target_sub_account_id, self.l2_source_token, self.l1_target_token, self.initiator_nonce, self.exit_amount, self.withdraw_to_l1, self.timestamp)\n\n    def __eq__(self, other):\n        if self.to_chain_id != other.to_chain_id:\n            return False\n        if self.initiator_account_id != other.initiator_account_id:\n            return False\n        if self.initiator_sub_account_id != other.initiator_sub_account_id:\n            return False\n        if self.target != other.target:\n            return False\n        if self.target_sub_account_id != other.target_sub_account_id:\n            return False\n        if self.l2_source_token != other.l2_source_token:\n            return False\n        if self.l1_target_token != other.l1_target_token:\n            return False\n        if self.initiator_nonce != other.initiator_nonce:\n            return False\n        if self.exit_amount != other.exit_amount:\n            return False\n        if self.withdraw_to_l1 != other.withdraw_to_l1:\n            return False\n        if self.timestamp != other.timestamp:\n            return False\n        return True\n\nclass FfiConverterTypeForcedExitBuilder(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return ForcedExitBuilder(\n            to_chain_id=FfiConverterTypeChainId.read(buf),\n            initiator_account_id=FfiConverterTypeAccountId.read(buf),\n            initiator_sub_account_id=FfiConverterTypeSubAccountId.read(buf),\n            target=FfiConverterTypeZkLinkAddress.read(buf),\n            target_sub_account_id=FfiConverterTypeSubAccountId.read(buf),\n            l2_source_token=FfiConverterTypeTokenId.read(buf),\n            l1_target_token=FfiConverterTypeTokenId.read(buf),\n            initiator_nonce=FfiConverterTypeNonce.read(buf),\n            exit_amount=FfiConverterTypeBigUint.read(buf),\n            withdraw_to_l1=FfiConverterBool.read(buf),\n            timestamp=FfiConverterTypeTimeStamp.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        FfiConverterTypeChainId.write(value.to_chain_id, buf)\n        FfiConverterTypeAccountId.write(value.initiator_account_id, buf)\n        FfiConverterTypeSubAccountId.write(value.initiator_sub_account_id, buf)\n        FfiConverterTypeZkLinkAddress.write(value.target, buf)\n        FfiConverterTypeSubAccountId.write(value.target_sub_account_id, buf)\n        FfiConverterTypeTokenId.write(value.l2_source_token, buf)\n        FfiConverterTypeTokenId.write(value.l1_target_token, buf)\n        FfiConverterTypeNonce.write(value.initiator_nonce, buf)\n        FfiConverterTypeBigUint.write(value.exit_amount, buf)\n        FfiConverterBool.write(value.withdraw_to_l1, buf)\n        FfiConverterTypeTimeStamp.write(value.timestamp, buf)\n\n\nclass FullExitBuilder:\n\n    def __init__(self, to_chain_id, account_id, sub_account_id, exit_address, l2_source_token, l1_target_token, contract_prices, margin_prices, serial_id, l2_hash):\n        self.to_chain_id = to_chain_id\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.exit_address = exit_address\n        self.l2_source_token = l2_source_token\n        self.l1_target_token = l1_target_token\n        self.contract_prices = contract_prices\n        self.margin_prices = margin_prices\n        self.serial_id = serial_id\n        self.l2_hash = l2_hash\n\n    def __str__(self):\n        return \"FullExitBuilder(to_chain_id={}, account_id={}, sub_account_id={}, exit_address={}, l2_source_token={}, l1_target_token={}, contract_prices={}, margin_prices={}, serial_id={}, l2_hash={})\".format(self.to_chain_id, self.account_id, self.sub_account_id, self.exit_address, self.l2_source_token, self.l1_target_token, self.contract_prices, self.margin_prices, self.serial_id, self.l2_hash)\n\n    def __eq__(self, other):\n        if self.to_chain_id != other.to_chain_id:\n            return False\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.exit_address != other.exit_address:\n            return False\n        if self.l2_source_token != other.l2_source_token:\n            return False\n        if self.l1_target_token != other.l1_target_token:\n            return False\n        if self.contract_prices != other.contract_prices:\n            return False\n        if self.margin_prices != other.margin_prices:\n            return False\n        if self.serial_id != other.serial_id:\n            return False\n        if self.l2_hash != other.l2_hash:\n            return False\n        return True\n\nclass FfiConverterTypeFullExitBuilder(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return FullExitBuilder(\n            to_chain_id=FfiConverterTypeChainId.read(buf),\n            account_id=FfiConverterTypeAccountId.read(buf),\n            sub_account_id=FfiConverterTypeSubAccountId.read(buf),\n            exit_address=FfiConverterTypeZkLinkAddress.read(buf),\n            l2_source_token=FfiConverterTypeTokenId.read(buf),\n            l1_target_token=FfiConverterTypeTokenId.read(buf),\n            contract_prices=FfiConverterSequenceTypeContractPrice.read(buf),\n            margin_prices=FfiConverterSequenceTypeSpotPriceInfo.read(buf),\n            serial_id=FfiConverterUInt64.read(buf),\n            l2_hash=FfiConverterTypeH256.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        FfiConverterTypeChainId.write(value.to_chain_id, buf)\n        FfiConverterTypeAccountId.write(value.account_id, buf)\n        FfiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        FfiConverterTypeZkLinkAddress.write(value.exit_address, buf)\n        FfiConverterTypeTokenId.write(value.l2_source_token, buf)\n        FfiConverterTypeTokenId.write(value.l1_target_token, buf)\n        FfiConverterSequenceTypeContractPrice.write(value.contract_prices, buf)\n        FfiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf)\n        FfiConverterUInt64.write(value.serial_id, buf)\n        FfiConverterTypeH256.write(value.l2_hash, buf)\n\n\nclass FundingBuilder:\n\n    def __init__(self, account_id, sub_account_id, sub_account_nonce, funding_account_ids, fee, fee_token):\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.sub_account_nonce = sub_account_nonce\n        self.funding_account_ids = funding_account_ids\n        self.fee = fee\n        self.fee_token = fee_token\n\n    def __str__(self):\n        return \"FundingBuilder(account_id={}, sub_account_id={}, sub_account_nonce={}, funding_account_ids={}, fee={}, fee_token={})\".format(self.account_id, self.sub_account_id, self.sub_account_nonce, self.funding_account_ids, self.fee, self.fee_token)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.sub_account_nonce != other.sub_account_nonce:\n            return False\n        if self.funding_account_ids != other.funding_account_ids:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.fee_token != other.fee_token:\n            return False\n        return True\n\nclass FfiConverterTypeFundingBuilder(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return FundingBuilder(\n            account_id=FfiConverterTypeAccountId.read(buf),\n            sub_account_id=FfiConverterTypeSubAccountId.read(buf),\n            sub_account_nonce=FfiConverterTypeNonce.read(buf),\n            funding_account_ids=FfiConverterSequenceTypeAccountId.read(buf),\n            fee=FfiConverterTypeBigUint.read(buf),\n            fee_token=FfiConverterTypeTokenId.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        FfiConverterTypeAccountId.write(value.account_id, buf)\n        FfiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        FfiConverterTypeNonce.write(value.sub_account_nonce, buf)\n        FfiConverterSequenceTypeAccountId.write(value.funding_account_ids, buf)\n        FfiConverterTypeBigUint.write(value.fee, buf)\n        FfiConverterTypeTokenId.write(value.fee_token, buf)\n\n\nclass FundingInfo:\n\n    def __init__(self, pair_id, price, funding_rate):\n        self.pair_id = pair_id\n        self.price = price\n        self.funding_rate = funding_rate\n\n    def __str__(self):\n        return \"FundingInfo(pair_id={}, price={}, funding_rate={})\".format(self.pair_id, self.price, self.funding_rate)\n\n    def __eq__(self, other):\n        if self.pair_id != other.pair_id:\n            return False\n        if self.price != other.price:\n            return False\n        if self.funding_rate != other.funding_rate:\n            return False\n        return True\n\nclass FfiConverterTypeFundingInfo(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return FundingInfo(\n            pair_id=FfiConverterTypePairId.read(buf),\n            price=FfiConverterTypeBigUint.read(buf),\n            funding_rate=FfiConverterInt16.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        FfiConverterTypePairId.write(value.pair_id, buf)\n        FfiConverterTypeBigUint.write(value.price, buf)\n        FfiConverterInt16.write(value.funding_rate, buf)\n\n\nclass LiquidationBuilder:\n\n    def __init__(self, account_id, sub_account_id, sub_account_nonce, contract_prices, margin_prices, liquidation_account_id, fee, fee_token):\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.sub_account_nonce = sub_account_nonce\n        self.contract_prices = contract_prices\n        self.margin_prices = margin_prices\n        self.liquidation_account_id = liquidation_account_id\n        self.fee = fee\n        self.fee_token = fee_token\n\n    def __str__(self):\n        return \"LiquidationBuilder(account_id={}, sub_account_id={}, sub_account_nonce={}, contract_prices={}, margin_prices={}, liquidation_account_id={}, fee={}, fee_token={})\".format(self.account_id, self.sub_account_id, self.sub_account_nonce, self.contract_prices, self.margin_prices, self.liquidation_account_id, self.fee, self.fee_token)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.sub_account_nonce != other.sub_account_nonce:\n            return False\n        if self.contract_prices != other.contract_prices:\n            return False\n        if self.margin_prices != other.margin_prices:\n            return False\n        if self.liquidation_account_id != other.liquidation_account_id:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.fee_token != other.fee_token:\n            return False\n        return True\n\nclass FfiConverterTypeLiquidationBuilder(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return LiquidationBuilder(\n            account_id=FfiConverterTypeAccountId.read(buf),\n            sub_account_id=FfiConverterTypeSubAccountId.read(buf),\n            sub_account_nonce=FfiConverterTypeNonce.read(buf),\n            contract_prices=FfiConverterSequenceTypeContractPrice.read(buf),\n            margin_prices=FfiConverterSequenceTypeSpotPriceInfo.read(buf),\n            liquidation_account_id=FfiConverterTypeAccountId.read(buf),\n            fee=FfiConverterTypeBigUint.read(buf),\n            fee_token=FfiConverterTypeTokenId.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        FfiConverterTypeAccountId.write(value.account_id, buf)\n        FfiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        FfiConverterTypeNonce.write(value.sub_account_nonce, buf)\n        FfiConverterSequenceTypeContractPrice.write(value.contract_prices, buf)\n        FfiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf)\n        FfiConverterTypeAccountId.write(value.liquidation_account_id, buf)\n        FfiConverterTypeBigUint.write(value.fee, buf)\n        FfiConverterTypeTokenId.write(value.fee_token, buf)\n\n\nclass Message:\n\n    def __init__(self, data):\n        self.data = data\n\n    def __str__(self):\n        return \"Message(data={})\".format(self.data)\n\n    def __eq__(self, other):\n        if self.data != other.data:\n            return False\n        return True\n\nclass FfiConverterTypeMessage(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return Message(\n            data=FfiConverterString.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        FfiConverterString.write(value.data, buf)\n\n\nclass OraclePrices:\n\n    def __init__(self, contract_prices, margin_prices):\n        self.contract_prices = contract_prices\n        self.margin_prices = margin_prices\n\n    def __str__(self):\n        return \"OraclePrices(contract_prices={}, margin_prices={})\".format(self.contract_prices, self.margin_prices)\n\n    def __eq__(self, other):\n        if self.contract_prices != other.contract_prices:\n            return False\n        if self.margin_prices != other.margin_prices:\n            return False\n        return True\n\nclass FfiConverterTypeOraclePrices(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return OraclePrices(\n            contract_prices=FfiConverterSequenceTypeContractPrice.read(buf),\n            margin_prices=FfiConverterSequenceTypeSpotPriceInfo.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        FfiConverterSequenceTypeContractPrice.write(value.contract_prices, buf)\n        FfiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf)\n\n\nclass OrderMatchingBuilder:\n\n    def __init__(self, account_id, sub_account_id, taker, maker, fee, fee_token, contract_prices, margin_prices, expect_base_amount, expect_quote_amount):\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.taker = taker\n        self.maker = maker\n        self.fee = fee\n        self.fee_token = fee_token\n        self.contract_prices = contract_prices\n        self.margin_prices = margin_prices\n        self.expect_base_amount = expect_base_amount\n        self.expect_quote_amount = expect_quote_amount\n\n    def __str__(self):\n        return \"OrderMatchingBuilder(account_id={}, sub_account_id={}, taker={}, maker={}, fee={}, fee_token={}, contract_prices={}, margin_prices={}, expect_base_amount={}, expect_quote_amount={})\".format(self.account_id, self.sub_account_id, self.taker, self.maker, self.fee, self.fee_token, self.contract_prices, self.margin_prices, self.expect_base_amount, self.expect_quote_amount)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.taker != other.taker:\n            return False\n        if self.maker != other.maker:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.fee_token != other.fee_token:\n            return False\n        if self.contract_prices != other.contract_prices:\n            return False\n        if self.margin_prices != other.margin_prices:\n            return False\n        if self.expect_base_amount != other.expect_base_amount:\n            return False\n        if self.expect_quote_amount != other.expect_quote_amount:\n            return False\n        return True\n\nclass FfiConverterTypeOrderMatchingBuilder(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return OrderMatchingBuilder(\n            account_id=FfiConverterTypeAccountId.read(buf),\n            sub_account_id=FfiConverterTypeSubAccountId.read(buf),\n            taker=FfiConverterTypeOrder.read(buf),\n            maker=FfiConverterTypeOrder.read(buf),\n            fee=FfiConverterTypeBigUint.read(buf),\n            fee_token=FfiConverterTypeTokenId.read(buf),\n            contract_prices=FfiConverterSequenceTypeContractPrice.read(buf),\n            margin_prices=FfiConverterSequenceTypeSpotPriceInfo.read(buf),\n            expect_base_amount=FfiConverterTypeBigUint.read(buf),\n            expect_quote_amount=FfiConverterTypeBigUint.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        FfiConverterTypeAccountId.write(value.account_id, buf)\n        FfiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        FfiConverterTypeOrder.write(value.taker, buf)\n        FfiConverterTypeOrder.write(value.maker, buf)\n        FfiConverterTypeBigUint.write(value.fee, buf)\n        FfiConverterTypeTokenId.write(value.fee_token, buf)\n        FfiConverterSequenceTypeContractPrice.write(value.contract_prices, buf)\n        FfiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf)\n        FfiConverterTypeBigUint.write(value.expect_base_amount, buf)\n        FfiConverterTypeBigUint.write(value.expect_quote_amount, buf)\n\n\nclass SpotPriceInfo:\n\n    def __init__(self, token_id, price):\n        self.token_id = token_id\n        self.price = price\n\n    def __str__(self):\n        return \"SpotPriceInfo(token_id={}, price={})\".format(self.token_id, self.price)\n\n    def __eq__(self, other):\n        if self.token_id != other.token_id:\n            return False\n        if self.price != other.price:\n            return False\n        return True\n\nclass FfiConverterTypeSpotPriceInfo(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return SpotPriceInfo(\n            token_id=FfiConverterTypeTokenId.read(buf),\n            price=FfiConverterTypeBigUint.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        FfiConverterTypeTokenId.write(value.token_id, buf)\n        FfiConverterTypeBigUint.write(value.price, buf)\n\n\nclass TransferBuilder:\n\n    def __init__(self, account_id, to_address, from_sub_account_id, to_sub_account_id, token, amount, fee, nonce, timestamp):\n        self.account_id = account_id\n        self.to_address = to_address\n        self.from_sub_account_id = from_sub_account_id\n        self.to_sub_account_id = to_sub_account_id\n        self.token = token\n        self.amount = amount\n        self.fee = fee\n        self.nonce = nonce\n        self.timestamp = timestamp\n\n    def __str__(self):\n        return \"TransferBuilder(account_id={}, to_address={}, from_sub_account_id={}, to_sub_account_id={}, token={}, amount={}, fee={}, nonce={}, timestamp={})\".format(self.account_id, self.to_address, self.from_sub_account_id, self.to_sub_account_id, self.token, self.amount, self.fee, self.nonce, self.timestamp)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.to_address != other.to_address:\n            return False\n        if self.from_sub_account_id != other.from_sub_account_id:\n            return False\n        if self.to_sub_account_id != other.to_sub_account_id:\n            return False\n        if self.token != other.token:\n            return False\n        if self.amount != other.amount:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.nonce != other.nonce:\n            return False\n        if self.timestamp != other.timestamp:\n            return False\n        return True\n\nclass FfiConverterTypeTransferBuilder(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return TransferBuilder(\n            account_id=FfiConverterTypeAccountId.read(buf),\n            to_address=FfiConverterTypeZkLinkAddress.read(buf),\n            from_sub_account_id=FfiConverterTypeSubAccountId.read(buf),\n            to_sub_account_id=FfiConverterTypeSubAccountId.read(buf),\n            token=FfiConverterTypeTokenId.read(buf),\n            amount=FfiConverterTypeBigUint.read(buf),\n            fee=FfiConverterTypeBigUint.read(buf),\n            nonce=FfiConverterTypeNonce.read(buf),\n            timestamp=FfiConverterTypeTimeStamp.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        FfiConverterTypeAccountId.write(value.account_id, buf)\n        FfiConverterTypeZkLinkAddress.write(value.to_address, buf)\n        FfiConverterTypeSubAccountId.write(value.from_sub_account_id, buf)\n        FfiConverterTypeSubAccountId.write(value.to_sub_account_id, buf)\n        FfiConverterTypeTokenId.write(value.token, buf)\n        FfiConverterTypeBigUint.write(value.amount, buf)\n        FfiConverterTypeBigUint.write(value.fee, buf)\n        FfiConverterTypeNonce.write(value.nonce, buf)\n        FfiConverterTypeTimeStamp.write(value.timestamp, buf)\n\n\nclass TxMessage:\n\n    def __init__(self, transaction, amount, fee, token, to, nonce):\n        self.transaction = transaction\n        self.amount = amount\n        self.fee = fee\n        self.token = token\n        self.to = to\n        self.nonce = nonce\n\n    def __str__(self):\n        return \"TxMessage(transaction={}, amount={}, fee={}, token={}, to={}, nonce={})\".format(self.transaction, self.amount, self.fee, self.token, self.to, self.nonce)\n\n    def __eq__(self, other):\n        if self.transaction != other.transaction:\n            return False\n        if self.amount != other.amount:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.token != other.token:\n            return False\n        if self.to != other.to:\n            return False\n        if self.nonce != other.nonce:\n            return False\n        return True\n\nclass FfiConverterTypeTxMessage(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return TxMessage(\n            transaction=FfiConverterString.read(buf),\n            amount=FfiConverterString.read(buf),\n            fee=FfiConverterString.read(buf),\n            token=FfiConverterString.read(buf),\n            to=FfiConverterString.read(buf),\n            nonce=FfiConverterString.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        FfiConverterString.write(value.transaction, buf)\n        FfiConverterString.write(value.amount, buf)\n        FfiConverterString.write(value.fee, buf)\n        FfiConverterString.write(value.token, buf)\n        FfiConverterString.write(value.to, buf)\n        FfiConverterString.write(value.nonce, buf)\n\n\nclass TxSignature:\n\n    def __init__(self, tx, layer1_signature):\n        self.tx = tx\n        self.layer1_signature = layer1_signature\n\n    def __str__(self):\n        return \"TxSignature(tx={}, layer1_signature={})\".format(self.tx, self.layer1_signature)\n\n    def __eq__(self, other):\n        if self.tx != other.tx:\n            return False\n        if self.layer1_signature != other.layer1_signature:\n            return False\n        return True\n\nclass FfiConverterTypeTxSignature(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return TxSignature(\n            tx=FfiConverterTypeZkLinkTx.read(buf),\n            layer1_signature=FfiConverterOptionalTypeTxLayer1Signature.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        FfiConverterTypeZkLinkTx.write(value.tx, buf)\n        FfiConverterOptionalTypeTxLayer1Signature.write(value.layer1_signature, buf)\n\n\nclass UpdateGlobalVarBuilder:\n\n    def __init__(self, from_chain_id, sub_account_id, parameter, serial_id):\n        self.from_chain_id = from_chain_id\n        self.sub_account_id = sub_account_id\n        self.parameter = parameter\n        self.serial_id = serial_id\n\n    def __str__(self):\n        return \"UpdateGlobalVarBuilder(from_chain_id={}, sub_account_id={}, parameter={}, serial_id={})\".format(self.from_chain_id, self.sub_account_id, self.parameter, self.serial_id)\n\n    def __eq__(self, other):\n        if self.from_chain_id != other.from_chain_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.parameter != other.parameter:\n            return False\n        if self.serial_id != other.serial_id:\n            return False\n        return True\n\nclass FfiConverterTypeUpdateGlobalVarBuilder(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return UpdateGlobalVarBuilder(\n            from_chain_id=FfiConverterTypeChainId.read(buf),\n            sub_account_id=FfiConverterTypeSubAccountId.read(buf),\n            parameter=FfiConverterTypeParameter.read(buf),\n            serial_id=FfiConverterUInt64.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        FfiConverterTypeChainId.write(value.from_chain_id, buf)\n        FfiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        FfiConverterTypeParameter.write(value.parameter, buf)\n        FfiConverterUInt64.write(value.serial_id, buf)\n\n\nclass WithdrawBuilder:\n\n    def __init__(self, account_id, sub_account_id, to_chain_id, to_address, l2_source_token, l1_target_token, amount, call_data, fee, nonce, withdraw_fee_ratio, withdraw_to_l1, timestamp):\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.to_chain_id = to_chain_id\n        self.to_address = to_address\n        self.l2_source_token = l2_source_token\n        self.l1_target_token = l1_target_token\n        self.amount = amount\n        self.call_data = call_data\n        self.fee = fee\n        self.nonce = nonce\n        self.withdraw_fee_ratio = withdraw_fee_ratio\n        self.withdraw_to_l1 = withdraw_to_l1\n        self.timestamp = timestamp\n\n    def __str__(self):\n        return \"WithdrawBuilder(account_id={}, sub_account_id={}, to_chain_id={}, to_address={}, l2_source_token={}, l1_target_token={}, amount={}, call_data={}, fee={}, nonce={}, withdraw_fee_ratio={}, withdraw_to_l1={}, timestamp={})\".format(self.account_id, self.sub_account_id, self.to_chain_id, self.to_address, self.l2_source_token, self.l1_target_token, self.amount, self.call_data, self.fee, self.nonce, self.withdraw_fee_ratio, self.withdraw_to_l1, self.timestamp)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.to_chain_id != other.to_chain_id:\n            return False\n        if self.to_address != other.to_address:\n            return False\n        if self.l2_source_token != other.l2_source_token:\n            return False\n        if self.l1_target_token != other.l1_target_token:\n            return False\n        if self.amount != other.amount:\n            return False\n        if self.call_data != other.call_data:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.nonce != other.nonce:\n            return False\n        if self.withdraw_fee_ratio != other.withdraw_fee_ratio:\n            return False\n        if self.withdraw_to_l1 != other.withdraw_to_l1:\n            return False\n        if self.timestamp != other.timestamp:\n            return False\n        return True\n\nclass FfiConverterTypeWithdrawBuilder(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return WithdrawBuilder(\n            account_id=FfiConverterTypeAccountId.read(buf),\n            sub_account_id=FfiConverterTypeSubAccountId.read(buf),\n            to_chain_id=FfiConverterTypeChainId.read(buf),\n            to_address=FfiConverterTypeZkLinkAddress.read(buf),\n            l2_source_token=FfiConverterTypeTokenId.read(buf),\n            l1_target_token=FfiConverterTypeTokenId.read(buf),\n            amount=FfiConverterTypeBigUint.read(buf),\n            call_data=FfiConverterOptionalSequenceUInt8.read(buf),\n            fee=FfiConverterTypeBigUint.read(buf),\n            nonce=FfiConverterTypeNonce.read(buf),\n            withdraw_fee_ratio=FfiConverterUInt16.read(buf),\n            withdraw_to_l1=FfiConverterBool.read(buf),\n            timestamp=FfiConverterTypeTimeStamp.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        FfiConverterTypeAccountId.write(value.account_id, buf)\n        FfiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        FfiConverterTypeChainId.write(value.to_chain_id, buf)\n        FfiConverterTypeZkLinkAddress.write(value.to_address, buf)\n        FfiConverterTypeTokenId.write(value.l2_source_token, buf)\n        FfiConverterTypeTokenId.write(value.l1_target_token, buf)\n        FfiConverterTypeBigUint.write(value.amount, buf)\n        FfiConverterOptionalSequenceUInt8.write(value.call_data, buf)\n        FfiConverterTypeBigUint.write(value.fee, buf)\n        FfiConverterTypeNonce.write(value.nonce, buf)\n        FfiConverterUInt16.write(value.withdraw_fee_ratio, buf)\n        FfiConverterBool.write(value.withdraw_to_l1, buf)\n        FfiConverterTypeTimeStamp.write(value.timestamp, buf)\n\n\nclass ZkLinkSignature:\n\n    def __init__(self, pub_key, signature):\n        self.pub_key = pub_key\n        self.signature = signature\n\n    def __str__(self):\n        return \"ZkLinkSignature(pub_key={}, signature={})\".format(self.pub_key, self.signature)\n\n    def __eq__(self, other):\n        if self.pub_key != other.pub_key:\n            return False\n        if self.signature != other.signature:\n            return False\n        return True\n\nclass FfiConverterTypeZkLinkSignature(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return ZkLinkSignature(\n            pub_key=FfiConverterTypePackedPublicKey.read(buf),\n            signature=FfiConverterTypePackedSignature.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        FfiConverterTypePackedPublicKey.write(value.pub_key, buf)\n        FfiConverterTypePackedSignature.write(value.signature, buf)\n\n\n\n\nclass ChangePubKeyAuthData:\n    def __init__(self):\n        raise RuntimeError(\"ChangePubKeyAuthData cannot be instantiated directly\")\n\n    # Each enum variant is a nested class of the enum itself.\n    class ONCHAIN(object):\n        def __init__(self,):\n            \n            pass\n            \n\n        def __str__(self):\n            return \"ChangePubKeyAuthData.ONCHAIN()\".format()\n\n        def __eq__(self, other):\n            if not other.is_onchain():\n                return False\n            return True\n    class ETH_ECDSA(object):\n        def __init__(self,eth_signature):\n            \n            self.eth_signature = eth_signature\n            \n\n        def __str__(self):\n            return \"ChangePubKeyAuthData.ETH_ECDSA(eth_signature={})\".format(self.eth_signature)\n\n        def __eq__(self, other):\n            if not other.is_eth_ecdsa():\n                return False\n            if self.eth_signature != other.eth_signature:\n                return False\n            return True\n    class ETH_CREATE2(object):\n        def __init__(self,data):\n            \n            self.data = data\n            \n\n        def __str__(self):\n            return \"ChangePubKeyAuthData.ETH_CREATE2(data={})\".format(self.data)\n\n        def __eq__(self, other):\n            if not other.is_eth_create2():\n                return False\n            if self.data != other.data:\n                return False\n            return True\n    \n\n    # For each variant, we have an `is_NAME` method for easily checking\n    # whether an instance is that variant.\n    def is_onchain(self):\n        return isinstance(self, ChangePubKeyAuthData.ONCHAIN)\n    def is_eth_ecdsa(self):\n        return isinstance(self, ChangePubKeyAuthData.ETH_ECDSA)\n    def is_eth_create2(self):\n        return isinstance(self, ChangePubKeyAuthData.ETH_CREATE2)\n    \n\n# Now, a little trick - we make each nested variant class be a subclass of the main\n# enum class, so that method calls and instance checks etc will work intuitively.\n# We might be able to do this a little more neatly with a metaclass, but this'll do.\nChangePubKeyAuthData.ONCHAIN = type(\"ChangePubKeyAuthData.ONCHAIN\", (ChangePubKeyAuthData.ONCHAIN, ChangePubKeyAuthData,), {})\nChangePubKeyAuthData.ETH_ECDSA = type(\"ChangePubKeyAuthData.ETH_ECDSA\", (ChangePubKeyAuthData.ETH_ECDSA, ChangePubKeyAuthData,), {})\nChangePubKeyAuthData.ETH_CREATE2 = type(\"ChangePubKeyAuthData.ETH_CREATE2\", (ChangePubKeyAuthData.ETH_CREATE2, ChangePubKeyAuthData,), {})\n\n\n\n\nclass FfiConverterTypeChangePubKeyAuthData(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.readI32()\n        if variant == 1:\n            return ChangePubKeyAuthData.ONCHAIN(\n            )\n        if variant == 2:\n            return ChangePubKeyAuthData.ETH_ECDSA(\n                FfiConverterTypePackedEthSignature.read(buf),\n            )\n        if variant == 3:\n            return ChangePubKeyAuthData.ETH_CREATE2(\n                FfiConverterTypeCreate2Data.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    def write(value, buf):\n        if value.is_onchain():\n            buf.writeI32(1)\n        if value.is_eth_ecdsa():\n            buf.writeI32(2)\n            FfiConverterTypePackedEthSignature.write(value.eth_signature, buf)\n        if value.is_eth_create2():\n            buf.writeI32(3)\n            FfiConverterTypeCreate2Data.write(value.data, buf)\n\n\n\n\nclass ChangePubKeyAuthRequest:\n    def __init__(self):\n        raise RuntimeError(\"ChangePubKeyAuthRequest cannot be instantiated directly\")\n\n    # Each enum variant is a nested class of the enum itself.\n    class ONCHAIN(object):\n        def __init__(self,):\n            \n            pass\n            \n\n        def __str__(self):\n            return \"ChangePubKeyAuthRequest.ONCHAIN()\".format()\n\n        def __eq__(self, other):\n            if not other.is_onchain():\n                return False\n            return True\n    class ETH_ECDSA(object):\n        def __init__(self,):\n            \n            pass\n            \n\n        def __str__(self):\n            return \"ChangePubKeyAuthRequest.ETH_ECDSA()\".format()\n\n        def __eq__(self, other):\n            if not other.is_eth_ecdsa():\n                return False\n            return True\n    class ETH_CREATE2(object):\n        def __init__(self,data):\n            \n            self.data = data\n            \n\n        def __str__(self):\n            return \"ChangePubKeyAuthRequest.ETH_CREATE2(data={})\".format(self.data)\n\n        def __eq__(self, other):\n            if not other.is_eth_create2():\n                return False\n            if self.data != other.data:\n                return False\n            return True\n    \n\n    # For each variant, we have an `is_NAME` method for easily checking\n    # whether an instance is that variant.\n    def is_onchain(self):\n        return isinstance(self, ChangePubKeyAuthRequest.ONCHAIN)\n    def is_eth_ecdsa(self):\n        return isinstance(self, ChangePubKeyAuthRequest.ETH_ECDSA)\n    def is_eth_create2(self):\n        return isinstance(self, ChangePubKeyAuthRequest.ETH_CREATE2)\n    \n\n# Now, a little trick - we make each nested variant class be a subclass of the main\n# enum class, so that method calls and instance checks etc will work intuitively.\n# We might be able to do this a little more neatly with a metaclass, but this'll do.\nChangePubKeyAuthRequest.ONCHAIN = type(\"ChangePubKeyAuthRequest.ONCHAIN\", (ChangePubKeyAuthRequest.ONCHAIN, ChangePubKeyAuthRequest,), {})\nChangePubKeyAuthRequest.ETH_ECDSA = type(\"ChangePubKeyAuthRequest.ETH_ECDSA\", (ChangePubKeyAuthRequest.ETH_ECDSA, ChangePubKeyAuthRequest,), {})\nChangePubKeyAuthRequest.ETH_CREATE2 = type(\"ChangePubKeyAuthRequest.ETH_CREATE2\", (ChangePubKeyAuthRequest.ETH_CREATE2, ChangePubKeyAuthRequest,), {})\n\n\n\n\nclass FfiConverterTypeChangePubKeyAuthRequest(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.readI32()\n        if variant == 1:\n            return ChangePubKeyAuthRequest.ONCHAIN(\n            )\n        if variant == 2:\n            return ChangePubKeyAuthRequest.ETH_ECDSA(\n            )\n        if variant == 3:\n            return ChangePubKeyAuthRequest.ETH_CREATE2(\n                FfiConverterTypeCreate2Data.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    def write(value, buf):\n        if value.is_onchain():\n            buf.writeI32(1)\n        if value.is_eth_ecdsa():\n            buf.writeI32(2)\n        if value.is_eth_create2():\n            buf.writeI32(3)\n            FfiConverterTypeCreate2Data.write(value.data, buf)\n\n\n\n\nclass L1SignerType:\n    def __init__(self):\n        raise RuntimeError(\"L1SignerType cannot be instantiated directly\")\n\n    # Each enum variant is a nested class of the enum itself.\n    class ETH(object):\n        def __init__(self,):\n            \n            pass\n            \n\n        def __str__(self):\n            return \"L1SignerType.ETH()\".format()\n\n        def __eq__(self, other):\n            if not other.is_eth():\n                return False\n            return True\n    class STARKNET(object):\n        def __init__(self,chain_id, address):\n            \n            self.chain_id = chain_id\n            self.address = address\n            \n\n        def __str__(self):\n            return \"L1SignerType.STARKNET(chain_id={}, address={})\".format(self.chain_id, self.address)\n\n        def __eq__(self, other):\n            if not other.is_starknet():\n                return False\n            if self.chain_id != other.chain_id:\n                return False\n            if self.address != other.address:\n                return False\n            return True\n    \n\n    # For each variant, we have an `is_NAME` method for easily checking\n    # whether an instance is that variant.\n    def is_eth(self):\n        return isinstance(self, L1SignerType.ETH)\n    def is_starknet(self):\n        return isinstance(self, L1SignerType.STARKNET)\n    \n\n# Now, a little trick - we make each nested variant class be a subclass of the main\n# enum class, so that method calls and instance checks etc will work intuitively.\n# We might be able to do this a little more neatly with a metaclass, but this'll do.\nL1SignerType.ETH = type(\"L1SignerType.ETH\", (L1SignerType.ETH, L1SignerType,), {})\nL1SignerType.STARKNET = type(\"L1SignerType.STARKNET\", (L1SignerType.STARKNET, L1SignerType,), {})\n\n\n\n\nclass FfiConverterTypeL1SignerType(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.readI32()\n        if variant == 1:\n            return L1SignerType.ETH(\n            )\n        if variant == 2:\n            return L1SignerType.STARKNET(\n                FfiConverterString.read(buf),\n                FfiConverterString.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    def write(value, buf):\n        if value.is_eth():\n            buf.writeI32(1)\n        if value.is_starknet():\n            buf.writeI32(2)\n            FfiConverterString.write(value.chain_id, buf)\n            FfiConverterString.write(value.address, buf)\n\n\n\n\nclass L1Type(enum.Enum):\n    ETH = 1\n    STARKNET = 2\n    \n\n\nclass FfiConverterTypeL1Type(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.readI32()\n        if variant == 1:\n            return L1Type.ETH\n        if variant == 2:\n            return L1Type.STARKNET\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    def write(value, buf):\n        if value == L1Type.ETH:\n            buf.writeI32(1)\n        if value == L1Type.STARKNET:\n            buf.writeI32(2)\n\n\n\n\nclass Parameter:\n    def __init__(self):\n        raise RuntimeError(\"Parameter cannot be instantiated directly\")\n\n    # Each enum variant is a nested class of the enum itself.\n    class FEE_ACCOUNT(object):\n        def __init__(self,account_id):\n            \n            self.account_id = account_id\n            \n\n        def __str__(self):\n            return \"Parameter.FEE_ACCOUNT(account_id={})\".format(self.account_id)\n\n        def __eq__(self, other):\n            if not other.is_fee_account():\n                return False\n            if self.account_id != other.account_id:\n                return False\n            return True\n    class INSURANCE_FUND_ACCOUNT(object):\n        def __init__(self,account_id):\n            \n            self.account_id = account_id\n            \n\n        def __str__(self):\n            return \"Parameter.INSURANCE_FUND_ACCOUNT(account_id={})\".format(self.account_id)\n\n        def __eq__(self, other):\n            if not other.is_insurance_fund_account():\n                return False\n            if self.account_id != other.account_id:\n                return False\n            return True\n    class MARGIN_INFO(object):\n        def __init__(self,margin_id, token_id, ratio):\n            \n            self.margin_id = margin_id\n            self.token_id = token_id\n            self.ratio = ratio\n            \n\n        def __str__(self):\n            return \"Parameter.MARGIN_INFO(margin_id={}, token_id={}, ratio={})\".format(self.margin_id, self.token_id, self.ratio)\n\n        def __eq__(self, other):\n            if not other.is_margin_info():\n                return False\n            if self.margin_id != other.margin_id:\n                return False\n            if self.token_id != other.token_id:\n                return False\n            if self.ratio != other.ratio:\n                return False\n            return True\n    class FUNDING_INFOS(object):\n        def __init__(self,infos):\n            \n            self.infos = infos\n            \n\n        def __str__(self):\n            return \"Parameter.FUNDING_INFOS(infos={})\".format(self.infos)\n\n        def __eq__(self, other):\n            if not other.is_funding_infos():\n                return False\n            if self.infos != other.infos:\n                return False\n            return True\n    class CONTRACT_INFO(object):\n        def __init__(self,pair_id, symbol, initial_margin_rate, maintenance_margin_rate):\n            \n            self.pair_id = pair_id\n            self.symbol = symbol\n            self.initial_margin_rate = initial_margin_rate\n            self.maintenance_margin_rate = maintenance_margin_rate\n            \n\n        def __str__(self):\n            return \"Parameter.CONTRACT_INFO(pair_id={}, symbol={}, initial_margin_rate={}, maintenance_margin_rate={})\".format(self.pair_id, self.symbol, self.initial_margin_rate, self.maintenance_margin_rate)\n\n        def __eq__(self, other):\n            if not other.is_contract_info():\n                return False\n            if self.pair_id != other.pair_id:\n                return False\n            if self.symbol != other.symbol:\n                return False\n            if self.initial_margin_rate != other.initial_margin_rate:\n                return False\n            if self.maintenance_margin_rate != other.maintenance_margin_rate:\n                return False\n            return True\n    \n\n    # For each variant, we have an `is_NAME` method for easily checking\n    # whether an instance is that variant.\n    def is_fee_account(self):\n        return isinstance(self, Parameter.FEE_ACCOUNT)\n    def is_insurance_fund_account(self):\n        return isinstance(self, Parameter.INSURANCE_FUND_ACCOUNT)\n    def is_margin_info(self):\n        return isinstance(self, Parameter.MARGIN_INFO)\n    def is_funding_infos(self):\n        return isinstance(self, Parameter.FUNDING_INFOS)\n    def is_contract_info(self):\n        return isinstance(self, Parameter.CONTRACT_INFO)\n    \n\n# Now, a little trick - we make each nested variant class be a subclass of the main\n# enum class, so that method calls and instance checks etc will work intuitively.\n# We might be able to do this a little more neatly with a metaclass, but this'll do.\nParameter.FEE_ACCOUNT = type(\"Parameter.FEE_ACCOUNT\", (Parameter.FEE_ACCOUNT, Parameter,), {})\nParameter.INSURANCE_FUND_ACCOUNT = type(\"Parameter.INSURANCE_FUND_ACCOUNT\", (Parameter.INSURANCE_FUND_ACCOUNT, Parameter,), {})\nParameter.MARGIN_INFO = type(\"Parameter.MARGIN_INFO\", (Parameter.MARGIN_INFO, Parameter,), {})\nParameter.FUNDING_INFOS = type(\"Parameter.FUNDING_INFOS\", (Parameter.FUNDING_INFOS, Parameter,), {})\nParameter.CONTRACT_INFO = type(\"Parameter.CONTRACT_INFO\", (Parameter.CONTRACT_INFO, Parameter,), {})\n\n\n\n\nclass FfiConverterTypeParameter(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.readI32()\n        if variant == 1:\n            return Parameter.FEE_ACCOUNT(\n                FfiConverterTypeAccountId.read(buf),\n            )\n        if variant == 2:\n            return Parameter.INSURANCE_FUND_ACCOUNT(\n                FfiConverterTypeAccountId.read(buf),\n            )\n        if variant == 3:\n            return Parameter.MARGIN_INFO(\n                FfiConverterTypeMarginId.read(buf),\n                FfiConverterTypeTokenId.read(buf),\n                FfiConverterUInt8.read(buf),\n            )\n        if variant == 4:\n            return Parameter.FUNDING_INFOS(\n                FfiConverterSequenceTypeFundingInfo.read(buf),\n            )\n        if variant == 5:\n            return Parameter.CONTRACT_INFO(\n                FfiConverterTypePairId.read(buf),\n                FfiConverterString.read(buf),\n                FfiConverterUInt16.read(buf),\n                FfiConverterUInt16.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    def write(value, buf):\n        if value.is_fee_account():\n            buf.writeI32(1)\n            FfiConverterTypeAccountId.write(value.account_id, buf)\n        if value.is_insurance_fund_account():\n            buf.writeI32(2)\n            FfiConverterTypeAccountId.write(value.account_id, buf)\n        if value.is_margin_info():\n            buf.writeI32(3)\n            FfiConverterTypeMarginId.write(value.margin_id, buf)\n            FfiConverterTypeTokenId.write(value.token_id, buf)\n            FfiConverterUInt8.write(value.ratio, buf)\n        if value.is_funding_infos():\n            buf.writeI32(4)\n            FfiConverterSequenceTypeFundingInfo.write(value.infos, buf)\n        if value.is_contract_info():\n            buf.writeI32(5)\n            FfiConverterTypePairId.write(value.pair_id, buf)\n            FfiConverterString.write(value.symbol, buf)\n            FfiConverterUInt16.write(value.initial_margin_rate, buf)\n            FfiConverterUInt16.write(value.maintenance_margin_rate, buf)\n\n\n\n\nclass TypedDataMessage:\n    def __init__(self):\n        raise RuntimeError(\"TypedDataMessage cannot be instantiated directly\")\n\n    # Each enum variant is a nested class of the enum itself.\n    class CREATE_L2_KEY(object):\n        def __init__(self,message):\n            \n            self.message = message\n            \n\n        def __str__(self):\n            return \"TypedDataMessage.CREATE_L2_KEY(message={})\".format(self.message)\n\n        def __eq__(self, other):\n            if not other.is_create_l2_key():\n                return False\n            if self.message != other.message:\n                return False\n            return True\n    class TRANSACTION(object):\n        def __init__(self,message):\n            \n            self.message = message\n            \n\n        def __str__(self):\n            return \"TypedDataMessage.TRANSACTION(message={})\".format(self.message)\n\n        def __eq__(self, other):\n            if not other.is_transaction():\n                return False\n            if self.message != other.message:\n                return False\n            return True\n    \n\n    # For each variant, we have an `is_NAME` method for easily checking\n    # whether an instance is that variant.\n    def is_create_l2_key(self):\n        return isinstance(self, TypedDataMessage.CREATE_L2_KEY)\n    def is_transaction(self):\n        return isinstance(self, TypedDataMessage.TRANSACTION)\n    \n\n# Now, a little trick - we make each nested variant class be a subclass of the main\n# enum class, so that method calls and instance checks etc will work intuitively.\n# We might be able to do this a little more neatly with a metaclass, but this'll do.\nTypedDataMessage.CREATE_L2_KEY = type(\"TypedDataMessage.CREATE_L2_KEY\", (TypedDataMessage.CREATE_L2_KEY, TypedDataMessage,), {})\nTypedDataMessage.TRANSACTION = type(\"TypedDataMessage.TRANSACTION\", (TypedDataMessage.TRANSACTION, TypedDataMessage,), {})\n\n\n\n\nclass FfiConverterTypeTypedDataMessage(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.readI32()\n        if variant == 1:\n            return TypedDataMessage.CREATE_L2_KEY(\n                FfiConverterTypeMessage.read(buf),\n            )\n        if variant == 2:\n            return TypedDataMessage.TRANSACTION(\n                FfiConverterTypeTxMessage.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    def write(value, buf):\n        if value.is_create_l2_key():\n            buf.writeI32(1)\n            FfiConverterTypeMessage.write(value.message, buf)\n        if value.is_transaction():\n            buf.writeI32(2)\n            FfiConverterTypeTxMessage.write(value.message, buf)\n\n\n\n# EthSignerError\n# We want to define each variant as a nested class that's also a subclass,\n# which is tricky in Python.  To accomplish this we're going to create each\n# class separated, then manually add the child classes to the base class's\n# __dict__.  All of this happens in dummy class to avoid polluting the module\n# namespace.\nclass UniFFIExceptionTmpNamespace:\n    class EthSignerError(Exception):\n        pass\n    \n    class InvalidEthSigner(EthSignerError):\n        def __str__(self):\n            return \"EthSignerError.InvalidEthSigner({})\".format(repr(super().__str__()))\n\n    EthSignerError.InvalidEthSigner = InvalidEthSigner\n    class MissingEthPrivateKey(EthSignerError):\n        def __str__(self):\n            return \"EthSignerError.MissingEthPrivateKey({})\".format(repr(super().__str__()))\n\n    EthSignerError.MissingEthPrivateKey = MissingEthPrivateKey\n    class MissingEthSigner(EthSignerError):\n        def __str__(self):\n            return \"EthSignerError.MissingEthSigner({})\".format(repr(super().__str__()))\n\n    EthSignerError.MissingEthSigner = MissingEthSigner\n    class SigningFailed(EthSignerError):\n        def __str__(self):\n            return \"EthSignerError.SigningFailed({})\".format(repr(super().__str__()))\n\n    EthSignerError.SigningFailed = SigningFailed\n    class UnlockingFailed(EthSignerError):\n        def __str__(self):\n            return \"EthSignerError.UnlockingFailed({})\".format(repr(super().__str__()))\n\n    EthSignerError.UnlockingFailed = UnlockingFailed\n    class InvalidRawTx(EthSignerError):\n        def __str__(self):\n            return \"EthSignerError.InvalidRawTx({})\".format(repr(super().__str__()))\n\n    EthSignerError.InvalidRawTx = InvalidRawTx\n    class Eip712Failed(EthSignerError):\n        def __str__(self):\n            return \"EthSignerError.Eip712Failed({})\".format(repr(super().__str__()))\n\n    EthSignerError.Eip712Failed = Eip712Failed\n    class NoSigningKey(EthSignerError):\n        def __str__(self):\n            return \"EthSignerError.NoSigningKey({})\".format(repr(super().__str__()))\n\n    EthSignerError.NoSigningKey = NoSigningKey\n    class DefineAddress(EthSignerError):\n        def __str__(self):\n            return \"EthSignerError.DefineAddress({})\".format(repr(super().__str__()))\n\n    EthSignerError.DefineAddress = DefineAddress\n    class RecoverAddress(EthSignerError):\n        def __str__(self):\n            return \"EthSignerError.RecoverAddress({})\".format(repr(super().__str__()))\n\n    EthSignerError.RecoverAddress = RecoverAddress\n    class LengthMismatched(EthSignerError):\n        def __str__(self):\n            return \"EthSignerError.LengthMismatched({})\".format(repr(super().__str__()))\n\n    EthSignerError.LengthMismatched = LengthMismatched\n    class CryptoError(EthSignerError):\n        def __str__(self):\n            return \"EthSignerError.CryptoError({})\".format(repr(super().__str__()))\n\n    EthSignerError.CryptoError = CryptoError\n    class InvalidSignatureStr(EthSignerError):\n        def __str__(self):\n            return \"EthSignerError.InvalidSignatureStr({})\".format(repr(super().__str__()))\n\n    EthSignerError.InvalidSignatureStr = InvalidSignatureStr\n    class CustomError(EthSignerError):\n        def __str__(self):\n            return \"EthSignerError.CustomError({})\".format(repr(super().__str__()))\n\n    EthSignerError.CustomError = CustomError\n    class RpcSignError(EthSignerError):\n        def __str__(self):\n            return \"EthSignerError.RpcSignError({})\".format(repr(super().__str__()))\n\n    EthSignerError.RpcSignError = RpcSignError\nEthSignerError = UniFFIExceptionTmpNamespace.EthSignerError\ndel UniFFIExceptionTmpNamespace\n\n\nclass FfiConverterTypeEthSignerError(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.readI32()\n        if variant == 1:\n            return EthSignerError.InvalidEthSigner(\n                FfiConverterString.read(buf),\n            )\n        if variant == 2:\n            return EthSignerError.MissingEthPrivateKey(\n                FfiConverterString.read(buf),\n            )\n        if variant == 3:\n            return EthSignerError.MissingEthSigner(\n                FfiConverterString.read(buf),\n            )\n        if variant == 4:\n            return EthSignerError.SigningFailed(\n                FfiConverterString.read(buf),\n            )\n        if variant == 5:\n            return EthSignerError.UnlockingFailed(\n                FfiConverterString.read(buf),\n            )\n        if variant == 6:\n            return EthSignerError.InvalidRawTx(\n                FfiConverterString.read(buf),\n            )\n        if variant == 7:\n            return EthSignerError.Eip712Failed(\n                FfiConverterString.read(buf),\n            )\n        if variant == 8:\n            return EthSignerError.NoSigningKey(\n                FfiConverterString.read(buf),\n            )\n        if variant == 9:\n            return EthSignerError.DefineAddress(\n                FfiConverterString.read(buf),\n            )\n        if variant == 10:\n            return EthSignerError.RecoverAddress(\n                FfiConverterString.read(buf),\n            )\n        if variant == 11:\n            return EthSignerError.LengthMismatched(\n                FfiConverterString.read(buf),\n            )\n        if variant == 12:\n            return EthSignerError.CryptoError(\n                FfiConverterString.read(buf),\n            )\n        if variant == 13:\n            return EthSignerError.InvalidSignatureStr(\n                FfiConverterString.read(buf),\n            )\n        if variant == 14:\n            return EthSignerError.CustomError(\n                FfiConverterString.read(buf),\n            )\n        if variant == 15:\n            return EthSignerError.RpcSignError(\n                FfiConverterString.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    @staticmethod\n    def write(value, buf):\n        if isinstance(value, EthSignerError.InvalidEthSigner):\n            buf.writeI32(1)\n        if isinstance(value, EthSignerError.MissingEthPrivateKey):\n            buf.writeI32(2)\n        if isinstance(value, EthSignerError.MissingEthSigner):\n            buf.writeI32(3)\n        if isinstance(value, EthSignerError.SigningFailed):\n            buf.writeI32(4)\n        if isinstance(value, EthSignerError.UnlockingFailed):\n            buf.writeI32(5)\n        if isinstance(value, EthSignerError.InvalidRawTx):\n            buf.writeI32(6)\n        if isinstance(value, EthSignerError.Eip712Failed):\n            buf.writeI32(7)\n        if isinstance(value, EthSignerError.NoSigningKey):\n            buf.writeI32(8)\n        if isinstance(value, EthSignerError.DefineAddress):\n            buf.writeI32(9)\n        if isinstance(value, EthSignerError.RecoverAddress):\n            buf.writeI32(10)\n        if isinstance(value, EthSignerError.LengthMismatched):\n            buf.writeI32(11)\n        if isinstance(value, EthSignerError.CryptoError):\n            buf.writeI32(12)\n        if isinstance(value, EthSignerError.InvalidSignatureStr):\n            buf.writeI32(13)\n        if isinstance(value, EthSignerError.CustomError):\n            buf.writeI32(14)\n        if isinstance(value, EthSignerError.RpcSignError):\n            buf.writeI32(15)\n\n\n\n# SignError\n# We want to define each variant as a nested class that's also a subclass,\n# which is tricky in Python.  To accomplish this we're going to create each\n# class separated, then manually add the child classes to the base class's\n# __dict__.  All of this happens in dummy class to avoid polluting the module\n# namespace.\nclass UniFFIExceptionTmpNamespace:\n    class SignError(Exception):\n        pass\n    \n    class EthSigningError(SignError):\n        def __str__(self):\n            return \"SignError.EthSigningError({})\".format(repr(super().__str__()))\n\n    SignError.EthSigningError = EthSigningError\n    class ZkSigningError(SignError):\n        def __str__(self):\n            return \"SignError.ZkSigningError({})\".format(repr(super().__str__()))\n\n    SignError.ZkSigningError = ZkSigningError\n    class StarkSigningError(SignError):\n        def __str__(self):\n            return \"SignError.StarkSigningError({})\".format(repr(super().__str__()))\n\n    SignError.StarkSigningError = StarkSigningError\n    class IncorrectTx(SignError):\n        def __str__(self):\n            return \"SignError.IncorrectTx({})\".format(repr(super().__str__()))\n\n    SignError.IncorrectTx = IncorrectTx\nSignError = UniFFIExceptionTmpNamespace.SignError\ndel UniFFIExceptionTmpNamespace\n\n\nclass FfiConverterTypeSignError(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.readI32()\n        if variant == 1:\n            return SignError.EthSigningError(\n                FfiConverterString.read(buf),\n            )\n        if variant == 2:\n            return SignError.ZkSigningError(\n                FfiConverterString.read(buf),\n            )\n        if variant == 3:\n            return SignError.StarkSigningError(\n                FfiConverterString.read(buf),\n            )\n        if variant == 4:\n            return SignError.IncorrectTx(\n                FfiConverterString.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    @staticmethod\n    def write(value, buf):\n        if isinstance(value, SignError.EthSigningError):\n            buf.writeI32(1)\n        if isinstance(value, SignError.ZkSigningError):\n            buf.writeI32(2)\n        if isinstance(value, SignError.StarkSigningError):\n            buf.writeI32(3)\n        if isinstance(value, SignError.IncorrectTx):\n            buf.writeI32(4)\n\n\n\n# StarkSignerError\n# We want to define each variant as a nested class that's also a subclass,\n# which is tricky in Python.  To accomplish this we're going to create each\n# class separated, then manually add the child classes to the base class's\n# __dict__.  All of this happens in dummy class to avoid polluting the module\n# namespace.\nclass UniFFIExceptionTmpNamespace:\n    class StarkSignerError(Exception):\n        pass\n    \n    class InvalidStarknetSigner(StarkSignerError):\n        def __str__(self):\n            return \"StarkSignerError.InvalidStarknetSigner({})\".format(repr(super().__str__()))\n\n    StarkSignerError.InvalidStarknetSigner = InvalidStarknetSigner\n    class InvalidSignature(StarkSignerError):\n        def __str__(self):\n            return \"StarkSignerError.InvalidSignature({})\".format(repr(super().__str__()))\n\n    StarkSignerError.InvalidSignature = InvalidSignature\n    class InvalidPrivKey(StarkSignerError):\n        def __str__(self):\n            return \"StarkSignerError.InvalidPrivKey({})\".format(repr(super().__str__()))\n\n    StarkSignerError.InvalidPrivKey = InvalidPrivKey\n    class SignError(StarkSignerError):\n        def __str__(self):\n            return \"StarkSignerError.SignError({})\".format(repr(super().__str__()))\n\n    StarkSignerError.SignError = SignError\n    class RpcSignError(StarkSignerError):\n        def __str__(self):\n            return \"StarkSignerError.RpcSignError({})\".format(repr(super().__str__()))\n\n    StarkSignerError.RpcSignError = RpcSignError\nStarkSignerError = UniFFIExceptionTmpNamespace.StarkSignerError\ndel UniFFIExceptionTmpNamespace\n\n\nclass FfiConverterTypeStarkSignerError(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.readI32()\n        if variant == 1:\n            return StarkSignerError.InvalidStarknetSigner(\n                FfiConverterString.read(buf),\n            )\n        if variant == 2:\n            return StarkSignerError.InvalidSignature(\n                FfiConverterString.read(buf),\n            )\n        if variant == 3:\n            return StarkSignerError.InvalidPrivKey(\n                FfiConverterString.read(buf),\n            )\n        if variant == 4:\n            return StarkSignerError.SignError(\n                FfiConverterString.read(buf),\n            )\n        if variant == 5:\n            return StarkSignerError.RpcSignError(\n                FfiConverterString.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    @staticmethod\n    def write(value, buf):\n        if isinstance(value, StarkSignerError.InvalidStarknetSigner):\n            buf.writeI32(1)\n        if isinstance(value, StarkSignerError.InvalidSignature):\n            buf.writeI32(2)\n        if isinstance(value, StarkSignerError.InvalidPrivKey):\n            buf.writeI32(3)\n        if isinstance(value, StarkSignerError.SignError):\n            buf.writeI32(4)\n        if isinstance(value, StarkSignerError.RpcSignError):\n            buf.writeI32(5)\n\n\n\n# TypeError\n# We want to define each variant as a nested class that's also a subclass,\n# which is tricky in Python.  To accomplish this we're going to create each\n# class separated, then manually add the child classes to the base class's\n# __dict__.  All of this happens in dummy class to avoid polluting the module\n# namespace.\nclass UniFFIExceptionTmpNamespace:\n    class TypeError(Exception):\n        pass\n    \n    class InvalidAddress(TypeError):\n        def __str__(self):\n            return \"TypeError.InvalidAddress({})\".format(repr(super().__str__()))\n\n    TypeError.InvalidAddress = InvalidAddress\n    class InvalidTxHash(TypeError):\n        def __str__(self):\n            return \"TypeError.InvalidTxHash({})\".format(repr(super().__str__()))\n\n    TypeError.InvalidTxHash = InvalidTxHash\n    class NotStartWithZerox(TypeError):\n        def __str__(self):\n            return \"TypeError.NotStartWithZerox({})\".format(repr(super().__str__()))\n\n    TypeError.NotStartWithZerox = NotStartWithZerox\n    class SizeMismatch(TypeError):\n        def __str__(self):\n            return \"TypeError.SizeMismatch({})\".format(repr(super().__str__()))\n\n    TypeError.SizeMismatch = SizeMismatch\n    class DecodeFromHexErr(TypeError):\n        def __str__(self):\n            return \"TypeError.DecodeFromHexErr({})\".format(repr(super().__str__()))\n\n    TypeError.DecodeFromHexErr = DecodeFromHexErr\n    class TooBigInteger(TypeError):\n        def __str__(self):\n            return \"TypeError.TooBigInteger({})\".format(repr(super().__str__()))\n\n    TypeError.TooBigInteger = TooBigInteger\n    class InvalidBigIntStr(TypeError):\n        def __str__(self):\n            return \"TypeError.InvalidBigIntStr({})\".format(repr(super().__str__()))\n\n    TypeError.InvalidBigIntStr = InvalidBigIntStr\nTypeError = UniFFIExceptionTmpNamespace.TypeError\ndel UniFFIExceptionTmpNamespace\n\n\nclass FfiConverterTypeTypeError(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.readI32()\n        if variant == 1:\n            return TypeError.InvalidAddress(\n                FfiConverterString.read(buf),\n            )\n        if variant == 2:\n            return TypeError.InvalidTxHash(\n                FfiConverterString.read(buf),\n            )\n        if variant == 3:\n            return TypeError.NotStartWithZerox(\n                FfiConverterString.read(buf),\n            )\n        if variant == 4:\n            return TypeError.SizeMismatch(\n                FfiConverterString.read(buf),\n            )\n        if variant == 5:\n            return TypeError.DecodeFromHexErr(\n                FfiConverterString.read(buf),\n            )\n        if variant == 6:\n            return TypeError.TooBigInteger(\n                FfiConverterString.read(buf),\n            )\n        if variant == 7:\n            return TypeError.InvalidBigIntStr(\n                FfiConverterString.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    @staticmethod\n    def write(value, buf):\n        if isinstance(value, TypeError.InvalidAddress):\n            buf.writeI32(1)\n        if isinstance(value, TypeError.InvalidTxHash):\n            buf.writeI32(2)\n        if isinstance(value, TypeError.NotStartWithZerox):\n            buf.writeI32(3)\n        if isinstance(value, TypeError.SizeMismatch):\n            buf.writeI32(4)\n        if isinstance(value, TypeError.DecodeFromHexErr):\n            buf.writeI32(5)\n        if isinstance(value, TypeError.TooBigInteger):\n            buf.writeI32(6)\n        if isinstance(value, TypeError.InvalidBigIntStr):\n            buf.writeI32(7)\n\n\n\n# ZkSignerError\n# We want to define each variant as a nested class that's also a subclass,\n# which is tricky in Python.  To accomplish this we're going to create each\n# class separated, then manually add the child classes to the base class's\n# __dict__.  All of this happens in dummy class to avoid polluting the module\n# namespace.\nclass UniFFIExceptionTmpNamespace:\n    class ZkSignerError(Exception):\n        pass\n    \n    class CustomError(ZkSignerError):\n        def __str__(self):\n            return \"ZkSignerError.CustomError({})\".format(repr(super().__str__()))\n\n    ZkSignerError.CustomError = CustomError\n    class InvalidSignature(ZkSignerError):\n        def __str__(self):\n            return \"ZkSignerError.InvalidSignature({})\".format(repr(super().__str__()))\n\n    ZkSignerError.InvalidSignature = InvalidSignature\n    class InvalidPrivKey(ZkSignerError):\n        def __str__(self):\n            return \"ZkSignerError.InvalidPrivKey({})\".format(repr(super().__str__()))\n\n    ZkSignerError.InvalidPrivKey = InvalidPrivKey\n    class InvalidSeed(ZkSignerError):\n        def __str__(self):\n            return \"ZkSignerError.InvalidSeed({})\".format(repr(super().__str__()))\n\n    ZkSignerError.InvalidSeed = InvalidSeed\n    class InvalidPubkey(ZkSignerError):\n        def __str__(self):\n            return \"ZkSignerError.InvalidPubkey({})\".format(repr(super().__str__()))\n\n    ZkSignerError.InvalidPubkey = InvalidPubkey\n    class InvalidPubkeyHash(ZkSignerError):\n        def __str__(self):\n            return \"ZkSignerError.InvalidPubkeyHash({})\".format(repr(super().__str__()))\n\n    ZkSignerError.InvalidPubkeyHash = InvalidPubkeyHash\n    class EthSignerError(ZkSignerError):\n        def __str__(self):\n            return \"ZkSignerError.EthSignerError({})\".format(repr(super().__str__()))\n\n    ZkSignerError.EthSignerError = EthSignerError\n    class StarkSignerError(ZkSignerError):\n        def __str__(self):\n            return \"ZkSignerError.StarkSignerError({})\".format(repr(super().__str__()))\n\n    ZkSignerError.StarkSignerError = StarkSignerError\nZkSignerError = UniFFIExceptionTmpNamespace.ZkSignerError\ndel UniFFIExceptionTmpNamespace\n\n\nclass FfiConverterTypeZkSignerError(FfiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.readI32()\n        if variant == 1:\n            return ZkSignerError.CustomError(\n                FfiConverterString.read(buf),\n            )\n        if variant == 2:\n            return ZkSignerError.InvalidSignature(\n                FfiConverterString.read(buf),\n            )\n        if variant == 3:\n            return ZkSignerError.InvalidPrivKey(\n                FfiConverterString.read(buf),\n            )\n        if variant == 4:\n            return ZkSignerError.InvalidSeed(\n                FfiConverterString.read(buf),\n            )\n        if variant == 5:\n            return ZkSignerError.InvalidPubkey(\n                FfiConverterString.read(buf),\n            )\n        if variant == 6:\n            return ZkSignerError.InvalidPubkeyHash(\n                FfiConverterString.read(buf),\n            )\n        if variant == 7:\n            return ZkSignerError.EthSignerError(\n                FfiConverterString.read(buf),\n            )\n        if variant == 8:\n            return ZkSignerError.StarkSignerError(\n                FfiConverterString.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    @staticmethod\n    def write(value, buf):\n        if isinstance(value, ZkSignerError.CustomError):\n            buf.writeI32(1)\n        if isinstance(value, ZkSignerError.InvalidSignature):\n            buf.writeI32(2)\n        if isinstance(value, ZkSignerError.InvalidPrivKey):\n            buf.writeI32(3)\n        if isinstance(value, ZkSignerError.InvalidSeed):\n            buf.writeI32(4)\n        if isinstance(value, ZkSignerError.InvalidPubkey):\n            buf.writeI32(5)\n        if isinstance(value, ZkSignerError.InvalidPubkeyHash):\n            buf.writeI32(6)\n        if isinstance(value, ZkSignerError.EthSignerError):\n            buf.writeI32(7)\n        if isinstance(value, ZkSignerError.StarkSignerError):\n            buf.writeI32(8)\n\n\n\nclass FfiConverterOptionalString(FfiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        if value is None:\n            buf.writeU8(0)\n            return\n\n        buf.writeU8(1)\n        FfiConverterString.write(value, buf)\n\n    @classmethod\n    def read(cls, buf):\n        flag = buf.readU8()\n        if flag == 0:\n            return None\n        elif flag == 1:\n            return FfiConverterString.read(buf)\n        else:\n            raise InternalError(\"Unexpected flag byte for optional type\")\n\n\n\nclass FfiConverterOptionalTypeZkLinkSignature(FfiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        if value is None:\n            buf.writeU8(0)\n            return\n\n        buf.writeU8(1)\n        FfiConverterTypeZkLinkSignature.write(value, buf)\n\n    @classmethod\n    def read(cls, buf):\n        flag = buf.readU8()\n        if flag == 0:\n            return None\n        elif flag == 1:\n            return FfiConverterTypeZkLinkSignature.read(buf)\n        else:\n            raise InternalError(\"Unexpected flag byte for optional type\")\n\n\n\nclass FfiConverterOptionalSequenceUInt8(FfiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        if value is None:\n            buf.writeU8(0)\n            return\n\n        buf.writeU8(1)\n        FfiConverterSequenceUInt8.write(value, buf)\n\n    @classmethod\n    def read(cls, buf):\n        flag = buf.readU8()\n        if flag == 0:\n            return None\n        elif flag == 1:\n            return FfiConverterSequenceUInt8.read(buf)\n        else:\n            raise InternalError(\"Unexpected flag byte for optional type\")\n\n\n\nclass FfiConverterOptionalTypeH256(FfiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        if value is None:\n            buf.writeU8(0)\n            return\n\n        buf.writeU8(1)\n        FfiConverterTypeH256.write(value, buf)\n\n    @classmethod\n    def read(cls, buf):\n        flag = buf.readU8()\n        if flag == 0:\n            return None\n        elif flag == 1:\n            return FfiConverterTypeH256.read(buf)\n        else:\n            raise InternalError(\"Unexpected flag byte for optional type\")\n\n\n\nclass FfiConverterOptionalTypePackedEthSignature(FfiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        if value is None:\n            buf.writeU8(0)\n            return\n\n        buf.writeU8(1)\n        FfiConverterTypePackedEthSignature.write(value, buf)\n\n    @classmethod\n    def read(cls, buf):\n        flag = buf.readU8()\n        if flag == 0:\n            return None\n        elif flag == 1:\n            return FfiConverterTypePackedEthSignature.read(buf)\n        else:\n            raise InternalError(\"Unexpected flag byte for optional type\")\n\n\n\nclass FfiConverterOptionalTypeTxLayer1Signature(FfiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        if value is None:\n            buf.writeU8(0)\n            return\n\n        buf.writeU8(1)\n        FfiConverterTypeTxLayer1Signature.write(value, buf)\n\n    @classmethod\n    def read(cls, buf):\n        flag = buf.readU8()\n        if flag == 0:\n            return None\n        elif flag == 1:\n            return FfiConverterTypeTxLayer1Signature.read(buf)\n        else:\n            raise InternalError(\"Unexpected flag byte for optional type\")\n\n\n\nclass FfiConverterSequenceUInt8(FfiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        items = len(value)\n        buf.writeI32(items)\n        for item in value:\n            FfiConverterUInt8.write(item, buf)\n\n    @classmethod\n    def read(cls, buf):\n        count = buf.readI32()\n        if count < 0:\n            raise InternalError(\"Unexpected negative sequence length\")\n\n        return [\n            FfiConverterUInt8.read(buf) for i in range(count)\n        ]\n\n\n\nclass FfiConverterSequenceTypeContract(FfiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        items = len(value)\n        buf.writeI32(items)\n        for item in value:\n            FfiConverterTypeContract.write(item, buf)\n\n    @classmethod\n    def read(cls, buf):\n        count = buf.readI32()\n        if count < 0:\n            raise InternalError(\"Unexpected negative sequence length\")\n\n        return [\n            FfiConverterTypeContract.read(buf) for i in range(count)\n        ]\n\n\n\nclass FfiConverterSequenceTypeContractPrice(FfiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        items = len(value)\n        buf.writeI32(items)\n        for item in value:\n            FfiConverterTypeContractPrice.write(item, buf)\n\n    @classmethod\n    def read(cls, buf):\n        count = buf.readI32()\n        if count < 0:\n            raise InternalError(\"Unexpected negative sequence length\")\n\n        return [\n            FfiConverterTypeContractPrice.read(buf) for i in range(count)\n        ]\n\n\n\nclass FfiConverterSequenceTypeFundingInfo(FfiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        items = len(value)\n        buf.writeI32(items)\n        for item in value:\n            FfiConverterTypeFundingInfo.write(item, buf)\n\n    @classmethod\n    def read(cls, buf):\n        count = buf.readI32()\n        if count < 0:\n            raise InternalError(\"Unexpected negative sequence length\")\n\n        return [\n            FfiConverterTypeFundingInfo.read(buf) for i in range(count)\n        ]\n\n\n\nclass FfiConverterSequenceTypeSpotPriceInfo(FfiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        items = len(value)\n        buf.writeI32(items)\n        for item in value:\n            FfiConverterTypeSpotPriceInfo.write(item, buf)\n\n    @classmethod\n    def read(cls, buf):\n        count = buf.readI32()\n        if count < 0:\n            raise InternalError(\"Unexpected negative sequence length\")\n\n        return [\n            FfiConverterTypeSpotPriceInfo.read(buf) for i in range(count)\n        ]\n\n\n\nclass FfiConverterSequenceTypeAccountId(FfiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        items = len(value)\n        buf.writeI32(items)\n        for item in value:\n            FfiConverterTypeAccountId.write(item, buf)\n\n    @classmethod\n    def read(cls, buf):\n        count = buf.readI32()\n        if count < 0:\n            raise InternalError(\"Unexpected negative sequence length\")\n\n        return [\n            FfiConverterTypeAccountId.read(buf) for i in range(count)\n        ]\n\n\nclass FfiConverterTypeAccountId:\n    @staticmethod\n    def write(value, buf):\n        FfiConverterUInt32.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return FfiConverterUInt32.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return FfiConverterUInt32.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return FfiConverterUInt32.lower(value)\n\n\nclass FfiConverterTypeAddress:\n    @staticmethod\n    def write(value, buf):\n        FfiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return FfiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return FfiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return FfiConverterString.lower(value)\n\n\nclass FfiConverterTypeBigUint:\n    @staticmethod\n    def write(value, buf):\n        FfiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return FfiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return FfiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return FfiConverterString.lower(value)\n\n\nclass FfiConverterTypeBlockNumber:\n    @staticmethod\n    def write(value, buf):\n        FfiConverterUInt32.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return FfiConverterUInt32.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return FfiConverterUInt32.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return FfiConverterUInt32.lower(value)\n\n\nclass FfiConverterTypeChainId:\n    @staticmethod\n    def write(value, buf):\n        FfiConverterUInt8.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return FfiConverterUInt8.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return FfiConverterUInt8.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return FfiConverterUInt8.lower(value)\n\n\nclass FfiConverterTypeEthBlockId:\n    @staticmethod\n    def write(value, buf):\n        FfiConverterUInt64.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return FfiConverterUInt64.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return FfiConverterUInt64.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return FfiConverterUInt64.lower(value)\n\n\nclass FfiConverterTypeH256:\n    @staticmethod\n    def write(value, buf):\n        FfiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return FfiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return FfiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return FfiConverterString.lower(value)\n\n\nclass FfiConverterTypeMarginId:\n    @staticmethod\n    def write(value, buf):\n        FfiConverterUInt8.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return FfiConverterUInt8.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return FfiConverterUInt8.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return FfiConverterUInt8.lower(value)\n\n\nclass FfiConverterTypeNonce:\n    @staticmethod\n    def write(value, buf):\n        FfiConverterUInt32.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return FfiConverterUInt32.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return FfiConverterUInt32.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return FfiConverterUInt32.lower(value)\n\n\nclass FfiConverterTypePackedEthSignature:\n    @staticmethod\n    def write(value, buf):\n        FfiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return FfiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return FfiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return FfiConverterString.lower(value)\n\n\nclass FfiConverterTypePackedPublicKey:\n    @staticmethod\n    def write(value, buf):\n        FfiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return FfiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return FfiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return FfiConverterString.lower(value)\n\n\nclass FfiConverterTypePackedSignature:\n    @staticmethod\n    def write(value, buf):\n        FfiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return FfiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return FfiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return FfiConverterString.lower(value)\n\n\nclass FfiConverterTypePairId:\n    @staticmethod\n    def write(value, buf):\n        FfiConverterUInt16.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return FfiConverterUInt16.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return FfiConverterUInt16.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return FfiConverterUInt16.lower(value)\n\n\nclass FfiConverterTypePriorityOpId:\n    @staticmethod\n    def write(value, buf):\n        FfiConverterUInt64.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return FfiConverterUInt64.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return FfiConverterUInt64.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return FfiConverterUInt64.lower(value)\n\n\nclass FfiConverterTypePubKeyHash:\n    @staticmethod\n    def write(value, buf):\n        FfiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return FfiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return FfiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return FfiConverterString.lower(value)\n\n\nclass FfiConverterTypeSlotId:\n    @staticmethod\n    def write(value, buf):\n        FfiConverterUInt32.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return FfiConverterUInt32.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return FfiConverterUInt32.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return FfiConverterUInt32.lower(value)\n\n\nclass FfiConverterTypeStarkEip712Signature:\n    @staticmethod\n    def write(value, buf):\n        FfiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return FfiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return FfiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return FfiConverterString.lower(value)\n\n\nclass FfiConverterTypeSubAccountId:\n    @staticmethod\n    def write(value, buf):\n        FfiConverterUInt8.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return FfiConverterUInt8.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return FfiConverterUInt8.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return FfiConverterUInt8.lower(value)\n\n\nclass FfiConverterTypeTimeStamp:\n    @staticmethod\n    def write(value, buf):\n        FfiConverterUInt32.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return FfiConverterUInt32.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return FfiConverterUInt32.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return FfiConverterUInt32.lower(value)\n\n\nclass FfiConverterTypeTokenId:\n    @staticmethod\n    def write(value, buf):\n        FfiConverterUInt32.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return FfiConverterUInt32.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return FfiConverterUInt32.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return FfiConverterUInt32.lower(value)\n\n\nclass FfiConverterTypeTxHash:\n    @staticmethod\n    def write(value, buf):\n        FfiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return FfiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return FfiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return FfiConverterString.lower(value)\n\n\nclass FfiConverterTypeTxLayer1Signature:\n    @staticmethod\n    def write(value, buf):\n        FfiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return FfiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return FfiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return FfiConverterString.lower(value)\n\n\nclass FfiConverterTypeZkLinkAddress:\n    @staticmethod\n    def write(value, buf):\n        FfiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return FfiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return FfiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return FfiConverterString.lower(value)\n\n\nclass FfiConverterTypeZkLinkTx:\n    @staticmethod\n    def write(value, buf):\n        FfiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return FfiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return FfiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return FfiConverterString.lower(value)\n\ndef verify_musig(signature,msg):\n    signature = signature\n    \n    msg = list(int(x) for x in msg)\n    \n    return FfiConverterBool.lift(rust_call(_UniFFILib.zklink_sdk_f180_verify_musig,\n        FfiConverterTypeZkLinkSignature.lower(signature),\n        FfiConverterSequenceUInt8.lower(msg)))\n\n\n\ndef get_public_key_hash(public_key):\n    public_key = public_key\n    \n    return FfiConverterTypePubKeyHash.lift(rust_call(_UniFFILib.zklink_sdk_f180_get_public_key_hash,\n        FfiConverterTypePackedPublicKey.lower(public_key)))\n\n\n\ndef zklink_main_net_url():\n    return FfiConverterString.lift(rust_call(_UniFFILib.zklink_sdk_f180_zklink_main_net_url,))\n\n\n\ndef zklink_test_net_url():\n    return FfiConverterString.lift(rust_call(_UniFFILib.zklink_sdk_f180_zklink_test_net_url,))\n\n\n\ndef eth_signature_of_change_pubkey(tx,eth_signer):\n    tx = tx\n    \n    eth_signer = eth_signer\n    \n    return FfiConverterTypePackedEthSignature.lift(rust_call_with_error(FfiConverterTypeSignError,_UniFFILib.zklink_sdk_f180_eth_signature_of_change_pubkey,\n        FfiConverterTypeChangePubKey.lower(tx),\n        FfiConverterTypeEthSigner.lower(eth_signer)))\n\n\n\ndef create_signed_change_pubkey(zklink_signer,tx,eth_auth_data):\n    zklink_signer = zklink_signer\n    \n    tx = tx\n    \n    eth_auth_data = eth_auth_data\n    \n    return FfiConverterTypeChangePubKey.lift(rust_call_with_error(FfiConverterTypeSignError,_UniFFILib.zklink_sdk_f180_create_signed_change_pubkey,\n        FfiConverterTypeZkLinkSigner.lower(zklink_signer),\n        FfiConverterTypeChangePubKey.lower(tx),\n        FfiConverterTypeChangePubKeyAuthData.lower(eth_auth_data)))\n\n\n\n__all__ = [\n    \"InternalError\",\n    \"ChangePubKeyAuthData\",\n    \"ChangePubKeyAuthRequest\",\n    \"L1SignerType\",\n    \"L1Type\",\n    \"Parameter\",\n    \"TypedDataMessage\",\n    \"AutoDeleveragingBuilder\",\n    \"ChangePubKeyBuilder\",\n    \"ContractBuilder\",\n    \"ContractMatchingBuilder\",\n    \"ContractPrice\",\n    \"Create2Data\",\n    \"DepositBuilder\",\n    \"ForcedExitBuilder\",\n    \"FullExitBuilder\",\n    \"FundingBuilder\",\n    \"FundingInfo\",\n    \"LiquidationBuilder\",\n    \"Message\",\n    \"OraclePrices\",\n    \"OrderMatchingBuilder\",\n    \"SpotPriceInfo\",\n    \"TransferBuilder\",\n    \"TxMessage\",\n    \"TxSignature\",\n    \"UpdateGlobalVarBuilder\",\n    \"WithdrawBuilder\",\n    \"ZkLinkSignature\",\n    \"verify_musig\",\n    \"get_public_key_hash\",\n    \"zklink_main_net_url\",\n    \"zklink_test_net_url\",\n    \"eth_signature_of_change_pubkey\",\n    \"create_signed_change_pubkey\",\n    \"Deposit\",\n    \"Withdraw\",\n    \"ChangePubKey\",\n    \"ForcedExit\",\n    \"FullExit\",\n    \"Transfer\",\n    \"Order\",\n    \"OrderMatching\",\n    \"Contract\",\n    \"AutoDeleveraging\",\n    \"ContractMatching\",\n    \"Funding\",\n    \"Liquidation\",\n    \"UpdateGlobalVar\",\n    \"EthSigner\",\n    \"TypedData\",\n    \"StarkSigner\",\n    \"ZkLinkSigner\",\n    \"Signer\",\n    \"EthSignerError\",\n    \"SignError\",\n    \"StarkSignerError\",\n    \"TypeError\",\n    \"ZkSignerError\",\n]\n\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Apex/omni_files/zklink_sdk.py",
    "content": "# This file was autogenerated by some hot garbage in the `uniffi` crate.\n# Trust me, you don't want to mess with it!\n\n# Common helper code.\n#\n# Ideally this would live in a separate .py file where it can be unittested etc\n# in isolation, and perhaps even published as a re-useable package.\n#\n# However, it's important that the details of how this helper code works (e.g. the\n# way that different builtin types are passed across the FFI) exactly match what's\n# expected by the rust code on the other side of the interface. In practice right\n# now that means coming from the exact some version of `uniffi` that was used to\n# compile the rust component. The easiest way to ensure this is to bundle the Python\n# helpers directly inline like we're doing here.\n\nimport os\nimport sys\nimport ctypes\nimport enum\nimport struct\nimport contextlib\nimport threading\nimport typing\nimport platform\n\n# Used for default argument values\n_DEFAULT = object()\n\n\nclass _UniffiRustBuffer(ctypes.Structure):\n    _fields_ = [\n        (\"capacity\", ctypes.c_int32),\n        (\"len\", ctypes.c_int32),\n        (\"data\", ctypes.POINTER(ctypes.c_char)),\n    ]\n\n    @staticmethod\n    def alloc(size):\n        return _rust_call(_UniffiLib.ffi_zklink_sdk_rustbuffer_alloc, size)\n\n    @staticmethod\n    def reserve(rbuf, additional):\n        return _rust_call(_UniffiLib.ffi_zklink_sdk_rustbuffer_reserve, rbuf, additional)\n\n    def free(self):\n        return _rust_call(_UniffiLib.ffi_zklink_sdk_rustbuffer_free, self)\n\n    def __str__(self):\n        return \"_UniffiRustBuffer(capacity={}, len={}, data={})\".format(\n            self.capacity,\n            self.len,\n            self.data[0:self.len]\n        )\n\n    @contextlib.contextmanager\n    def alloc_with_builder(*args):\n        \"\"\"Context-manger to allocate a buffer using a _UniffiRustBufferBuilder.\n\n        The allocated buffer will be automatically freed if an error occurs, ensuring that\n        we don't accidentally leak it.\n        \"\"\"\n        builder = _UniffiRustBufferBuilder()\n        try:\n            yield builder\n        except:\n            builder.discard()\n            raise\n\n    @contextlib.contextmanager\n    def consume_with_stream(self):\n        \"\"\"Context-manager to consume a buffer using a _UniffiRustBufferStream.\n\n        The _UniffiRustBuffer will be freed once the context-manager exits, ensuring that we don't\n        leak it even if an error occurs.\n        \"\"\"\n        try:\n            s = _UniffiRustBufferStream.from_rust_buffer(self)\n            yield s\n            if s.remaining() != 0:\n                raise RuntimeError(\"junk data left in buffer at end of consume_with_stream\")\n        finally:\n            self.free()\n\n    @contextlib.contextmanager\n    def read_with_stream(self):\n        \"\"\"Context-manager to read a buffer using a _UniffiRustBufferStream.\n\n        This is like consume_with_stream, but doesn't free the buffer afterwards.\n        It should only be used with borrowed `_UniffiRustBuffer` data.\n        \"\"\"\n        s = _UniffiRustBufferStream.from_rust_buffer(self)\n        yield s\n        if s.remaining() != 0:\n            raise RuntimeError(\"junk data left in buffer at end of read_with_stream\")\n\nclass _UniffiForeignBytes(ctypes.Structure):\n    _fields_ = [\n        (\"len\", ctypes.c_int32),\n        (\"data\", ctypes.POINTER(ctypes.c_char)),\n    ]\n\n    def __str__(self):\n        return \"_UniffiForeignBytes(len={}, data={})\".format(self.len, self.data[0:self.len])\n\n\nclass _UniffiRustBufferStream:\n    \"\"\"\n    Helper for structured reading of bytes from a _UniffiRustBuffer\n    \"\"\"\n\n    def __init__(self, data, len):\n        self.data = data\n        self.len = len\n        self.offset = 0\n\n    @classmethod\n    def from_rust_buffer(cls, buf):\n        return cls(buf.data, buf.len)\n\n    def remaining(self):\n        return self.len - self.offset\n\n    def _unpack_from(self, size, format):\n        if self.offset + size > self.len:\n            raise InternalError(\"read past end of rust buffer\")\n        value = struct.unpack(format, self.data[self.offset:self.offset+size])[0]\n        self.offset += size\n        return value\n\n    def read(self, size):\n        if self.offset + size > self.len:\n            raise InternalError(\"read past end of rust buffer\")\n        data = self.data[self.offset:self.offset+size]\n        self.offset += size\n        return data\n\n    def read_i8(self):\n        return self._unpack_from(1, \">b\")\n\n    def read_u8(self):\n        return self._unpack_from(1, \">B\")\n\n    def read_i16(self):\n        return self._unpack_from(2, \">h\")\n\n    def read_u16(self):\n        return self._unpack_from(2, \">H\")\n\n    def read_i32(self):\n        return self._unpack_from(4, \">i\")\n\n    def read_u32(self):\n        return self._unpack_from(4, \">I\")\n\n    def read_i64(self):\n        return self._unpack_from(8, \">q\")\n\n    def read_u64(self):\n        return self._unpack_from(8, \">Q\")\n\n    def read_float(self):\n        v = self._unpack_from(4, \">f\")\n        return v\n\n    def read_double(self):\n        return self._unpack_from(8, \">d\")\n\n    def read_c_size_t(self):\n        return self._unpack_from(ctypes.sizeof(ctypes.c_size_t) , \"@N\")\n\nclass _UniffiRustBufferBuilder:\n    \"\"\"\n    Helper for structured writing of bytes into a _UniffiRustBuffer.\n    \"\"\"\n\n    def __init__(self):\n        self.rbuf = _UniffiRustBuffer.alloc(16)\n        self.rbuf.len = 0\n\n    def finalize(self):\n        rbuf = self.rbuf\n        self.rbuf = None\n        return rbuf\n\n    def discard(self):\n        if self.rbuf is not None:\n            rbuf = self.finalize()\n            rbuf.free()\n\n    @contextlib.contextmanager\n    def _reserve(self, num_bytes):\n        if self.rbuf.len + num_bytes > self.rbuf.capacity:\n            self.rbuf = _UniffiRustBuffer.reserve(self.rbuf, num_bytes)\n        yield None\n        self.rbuf.len += num_bytes\n\n    def _pack_into(self, size, format, value):\n        with self._reserve(size):\n            # XXX TODO: I feel like I should be able to use `struct.pack_into` here but can't figure it out.\n            for i, byte in enumerate(struct.pack(format, value)):\n                self.rbuf.data[self.rbuf.len + i] = byte\n\n    def write(self, value):\n        with self._reserve(len(value)):\n            for i, byte in enumerate(value):\n                self.rbuf.data[self.rbuf.len + i] = byte\n\n    def write_i8(self, v):\n        self._pack_into(1, \">b\", v)\n\n    def write_u8(self, v):\n        self._pack_into(1, \">B\", v)\n\n    def write_i16(self, v):\n        self._pack_into(2, \">h\", v)\n\n    def write_u16(self, v):\n        self._pack_into(2, \">H\", v)\n\n    def write_i32(self, v):\n        self._pack_into(4, \">i\", v)\n\n    def write_u32(self, v):\n        self._pack_into(4, \">I\", v)\n\n    def write_i64(self, v):\n        self._pack_into(8, \">q\", v)\n\n    def write_u64(self, v):\n        self._pack_into(8, \">Q\", v)\n\n    def write_float(self, v):\n        self._pack_into(4, \">f\", v)\n\n    def write_double(self, v):\n        self._pack_into(8, \">d\", v)\n\n    def write_c_size_t(self, v):\n        self._pack_into(ctypes.sizeof(ctypes.c_size_t) , \"@N\", v)\n# A handful of classes and functions to support the generated data structures.\n# This would be a good candidate for isolating in its own ffi-support lib.\n\nclass InternalError(Exception):\n    pass\n\nclass _UniffiRustCallStatus(ctypes.Structure):\n    \"\"\"\n    Error runtime.\n    \"\"\"\n    _fields_ = [\n        (\"code\", ctypes.c_int8),\n        (\"error_buf\", _UniffiRustBuffer),\n    ]\n\n    # These match the values from the uniffi::rustcalls module\n    CALL_SUCCESS = 0\n    CALL_ERROR = 1\n    CALL_PANIC = 2\n\n    def __str__(self):\n        if self.code == _UniffiRustCallStatus.CALL_SUCCESS:\n            return \"_UniffiRustCallStatus(CALL_SUCCESS)\"\n        elif self.code == _UniffiRustCallStatus.CALL_ERROR:\n            return \"_UniffiRustCallStatus(CALL_ERROR)\"\n        elif self.code == _UniffiRustCallStatus.CALL_PANIC:\n            return \"_UniffiRustCallStatus(CALL_PANIC)\"\n        else:\n            return \"_UniffiRustCallStatus(<invalid code>)\"\n\ndef _rust_call(fn, *args):\n    # Call a rust function\n    return _rust_call_with_error(None, fn, *args)\n\ndef _rust_call_with_error(error_ffi_converter, fn, *args):\n    # Call a rust function and handle any errors\n    #\n    # This function is used for rust calls that return Result<> and therefore can set the CALL_ERROR status code.\n    # error_ffi_converter must be set to the _UniffiConverter for the error class that corresponds to the result.\n    call_status = _UniffiRustCallStatus(code=_UniffiRustCallStatus.CALL_SUCCESS, error_buf=_UniffiRustBuffer(0, 0, None))\n\n    args_with_error = args + (ctypes.byref(call_status),)\n    result = fn(*args_with_error)\n    _uniffi_check_call_status(error_ffi_converter, call_status)\n    return result\n\ndef _uniffi_check_call_status(error_ffi_converter, call_status):\n    if call_status.code == _UniffiRustCallStatus.CALL_SUCCESS:\n        pass\n    elif call_status.code == _UniffiRustCallStatus.CALL_ERROR:\n        if error_ffi_converter is None:\n            call_status.error_buf.free()\n            raise InternalError(\"_rust_call_with_error: CALL_ERROR, but error_ffi_converter is None\")\n        else:\n            raise error_ffi_converter.lift(call_status.error_buf)\n    elif call_status.code == _UniffiRustCallStatus.CALL_PANIC:\n        # When the rust code sees a panic, it tries to construct a _UniffiRustBuffer\n        # with the message.  But if that code panics, then it just sends back\n        # an empty buffer.\n        if call_status.error_buf.len > 0:\n            msg = _UniffiConverterString.lift(call_status.error_buf)\n        else:\n            msg = \"Unknown rust panic\"\n        raise InternalError(msg)\n    else:\n        raise InternalError(\"Invalid _UniffiRustCallStatus code: {}\".format(\n            call_status.code))\n\n# A function pointer for a callback as defined by UniFFI.\n# Rust definition `fn(handle: u64, method: u32, args: _UniffiRustBuffer, buf_ptr: *mut _UniffiRustBuffer) -> int`\n_UNIFFI_FOREIGN_CALLBACK_T = ctypes.CFUNCTYPE(ctypes.c_int, ctypes.c_ulonglong, ctypes.c_ulong, ctypes.POINTER(ctypes.c_char), ctypes.c_int, ctypes.POINTER(_UniffiRustBuffer))\n\n# UniFFI future continuation\n_UNIFFI_FUTURE_CONTINUATION_T = ctypes.CFUNCTYPE(None, ctypes.c_size_t, ctypes.c_int8)\n\nclass _UniffiPointerManagerCPython:\n    \"\"\"\n    Manage giving out pointers to Python objects on CPython\n\n    This class is used to generate opaque pointers that reference Python objects to pass to Rust.\n    It assumes a CPython platform.  See _UniffiPointerManagerGeneral for the alternative.\n    \"\"\"\n\n    def new_pointer(self, obj):\n        \"\"\"\n        Get a pointer for an object as a ctypes.c_size_t instance\n\n        Each call to new_pointer() must be balanced with exactly one call to release_pointer()\n\n        This returns a ctypes.c_size_t.  This is always the same size as a pointer and can be\n        interchanged with pointers for FFI function arguments and return values.\n        \"\"\"\n        # IncRef the object since we're going to pass a pointer to Rust\n        ctypes.pythonapi.Py_IncRef(ctypes.py_object(obj))\n        # id() is the object address on CPython\n        # (https://docs.python.org/3/library/functions.html#id)\n        return id(obj)\n\n    def release_pointer(self, address):\n        py_obj = ctypes.cast(address, ctypes.py_object)\n        obj = py_obj.value\n        ctypes.pythonapi.Py_DecRef(py_obj)\n        return obj\n\n    def lookup(self, address):\n        return ctypes.cast(address, ctypes.py_object).value\n\nclass _UniffiPointerManagerGeneral:\n    \"\"\"\n    Manage giving out pointers to Python objects on non-CPython platforms\n\n    This has the same API as _UniffiPointerManagerCPython, but doesn't assume we're running on\n    CPython and is slightly slower.\n\n    Instead of using real pointers, it maps integer values to objects and returns the keys as\n    c_size_t values.\n    \"\"\"\n\n    def __init__(self):\n        self._map = {}\n        self._lock = threading.Lock()\n        self._current_handle = 0\n\n    def new_pointer(self, obj):\n        with self._lock:\n            handle = self._current_handle\n            self._current_handle += 1\n            self._map[handle] = obj\n        return handle\n\n    def release_pointer(self, handle):\n        with self._lock:\n            return self._map.pop(handle)\n\n    def lookup(self, handle):\n        with self._lock:\n            return self._map[handle]\n\n# Pick an pointer manager implementation based on the platform\nif platform.python_implementation() == 'CPython':\n    _UniffiPointerManager = _UniffiPointerManagerCPython # type: ignore\nelse:\n    _UniffiPointerManager = _UniffiPointerManagerGeneral # type: ignore\n# Types conforming to `_UniffiConverterPrimitive` pass themselves directly over the FFI.\nclass _UniffiConverterPrimitive:\n    @classmethod\n    def check(cls, value):\n        return value\n\n    @classmethod\n    def lift(cls, value):\n        return value\n\n    @classmethod\n    def lower(cls, value):\n        return cls.lowerUnchecked(cls.check(value))\n\n    @classmethod\n    def lowerUnchecked(cls, value):\n        return value\n\n    @classmethod\n    def write(cls, value, buf):\n        cls.write_unchecked(cls.check(value), buf)\n\nclass _UniffiConverterPrimitiveInt(_UniffiConverterPrimitive):\n    @classmethod\n    def check(cls, value):\n        try:\n            value = value.__index__()\n        except Exception:\n            raise TypeError(\"'{}' object cannot be interpreted as an integer\".format(type(value).__name__))\n        if not isinstance(value, int):\n            raise TypeError(\"__index__ returned non-int (type {})\".format(type(value).__name__))\n        if not cls.VALUE_MIN <= value < cls.VALUE_MAX:\n            raise ValueError(\"{} requires {} <= value < {}\".format(cls.CLASS_NAME, cls.VALUE_MIN, cls.VALUE_MAX))\n        return super().check(value)\n\nclass _UniffiConverterPrimitiveFloat(_UniffiConverterPrimitive):\n    @classmethod\n    def check(cls, value):\n        try:\n            value = value.__float__()\n        except Exception:\n            raise TypeError(\"must be real number, not {}\".format(type(value).__name__))\n        if not isinstance(value, float):\n            raise TypeError(\"__float__ returned non-float (type {})\".format(type(value).__name__))\n        return super().check(value)\n\n# Helper class for wrapper types that will always go through a _UniffiRustBuffer.\n# Classes should inherit from this and implement the `read` and `write` static methods.\nclass _UniffiConverterRustBuffer:\n    @classmethod\n    def lift(cls, rbuf):\n        with rbuf.consume_with_stream() as stream:\n            return cls.read(stream)\n\n    @classmethod\n    def lower(cls, value):\n        with _UniffiRustBuffer.alloc_with_builder() as builder:\n            cls.write(value, builder)\n            return builder.finalize()\n\n# Contains loading, initialization code, and the FFI Function declarations.\n# Define some ctypes FFI types that we use in the library\n\n\"\"\"\nctypes type for the foreign executor callback.  This is a built-in interface for scheduling\ntasks\n\nArgs:\n  executor: opaque c_size_t value representing the eventloop\n  delay: delay in ms\n  task: function pointer to the task callback\n  task_data: void pointer to the task callback data\n\nNormally we should call task(task_data) after the detail.\nHowever, when task is NULL this indicates that Rust has dropped the ForeignExecutor and we should\ndecrease the EventLoop refcount.\n\"\"\"\n_UNIFFI_FOREIGN_EXECUTOR_CALLBACK_T = ctypes.CFUNCTYPE(ctypes.c_int8, ctypes.c_size_t, ctypes.c_uint32, ctypes.c_void_p, ctypes.c_void_p)\n\n\"\"\"\nFunction pointer for a Rust task, which a callback function that takes a opaque pointer\n\"\"\"\n_UNIFFI_RUST_TASK = ctypes.CFUNCTYPE(None, ctypes.c_void_p, ctypes.c_int8)\n\ndef _uniffi_future_callback_t(return_type):\n    \"\"\"\n    Factory function to create callback function types for async functions\n    \"\"\"\n    return ctypes.CFUNCTYPE(None, ctypes.c_size_t, return_type, _UniffiRustCallStatus)\n\ndef _uniffi_load_indirect():\n    \"\"\"\n    This is how we find and load the dynamic library provided by the component.\n    For now we just look it up by name.\n    \"\"\"\n    if sys.platform == \"darwin\":\n        libname = \"lib{}.dylib\"\n    elif sys.platform.startswith(\"win\"):\n        # As of python3.8, ctypes does not seem to search $PATH when loading DLLs.\n        # We could use `os.add_dll_directory` to configure the search path, but\n        # it doesn't feel right to mess with application-wide settings. Let's\n        # assume that the `.dll` is next to the `.py` file and load by full path.\n        libname = os.path.join(\n            os.path.dirname(__file__),\n            \"{}.dll\",\n        )\n    else:\n        # Anything else must be an ELF platform - Linux, *BSD, Solaris/illumos\n        libname = \"lib{}.so\"\n\n    libname = libname.format(\"zklink_sdk\")\n    path = os.path.join(os.path.dirname(__file__), libname)\n    lib = ctypes.cdll.LoadLibrary(path)\n    return lib\n\ndef _uniffi_check_contract_api_version(lib):\n    # Get the bindings contract version from our ComponentInterface\n    bindings_contract_version = 24\n    # Get the scaffolding contract version by calling the into the dylib\n    scaffolding_contract_version = lib.ffi_zklink_sdk_uniffi_contract_version()\n    if bindings_contract_version != scaffolding_contract_version:\n        raise InternalError(\"UniFFI contract version mismatch: try cleaning and rebuilding your project\")\n\ndef _uniffi_check_api_checksums(lib):\n    if lib.uniffi_zklink_sdk_checksum_func_create_signed_change_pubkey() != 63374:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_func_eth_signature_of_change_pubkey() != 32759:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_func_get_public_key_hash() != 58294:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_func_verify_musig() != 61749:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_func_zklink_main_net_url() != 63488:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_func_zklink_test_net_url() != 4933:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_create_signed_tx() != 63490:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_bytes() != 44684:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_signature() != 16515:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_signature_valid() != 2829:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_valid() != 32196:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_json_str() != 3439:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_to_zklink_tx() != 64239:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_autodeleveraging_tx_hash() != 35167:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_changepubkey_get_bytes() != 1938:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_changepubkey_get_signature() != 51549:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_changepubkey_is_onchain() != 10977:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_changepubkey_is_signature_valid() != 25271:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_changepubkey_is_valid() != 31315:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_changepubkey_json_str() != 43695:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_changepubkey_to_zklink_tx() != 42088:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_changepubkey_tx_hash() != 26881:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contract_create_signed_contract() != 3720:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contract_get_bytes() != 6953:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contract_get_signature() != 60348:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contract_is_long() != 52375:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contract_is_short() != 24664:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contract_is_signature_valid() != 33071:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contractmatching_create_signed_tx() != 44741:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contractmatching_get_bytes() != 12250:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contractmatching_get_signature() != 41128:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contractmatching_is_signature_valid() != 33576:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contractmatching_is_valid() != 55586:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contractmatching_json_str() != 42918:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contractmatching_to_zklink_tx() != 43065:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_contractmatching_tx_hash() != 3288:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_deposit_get_bytes() != 46958:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_deposit_json_str() != 17811:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_deposit_tx_hash() != 37358:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_ethsigner_get_address() != 11362:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_ethsigner_sign_message() != 14536:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_forcedexit_create_signed_tx() != 17267:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_forcedexit_get_bytes() != 15553:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_forcedexit_get_signature() != 48117:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_forcedexit_is_signature_valid() != 6534:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_forcedexit_is_valid() != 46100:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_forcedexit_json_str() != 4050:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_forcedexit_to_zklink_tx() != 32455:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_forcedexit_tx_hash() != 45462:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_fullexit_get_bytes() != 52461:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_fullexit_is_valid() != 57198:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_fullexit_json_str() != 24199:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_fullexit_to_zklink_tx() != 51607:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_fullexit_tx_hash() != 48511:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_funding_create_signed_tx() != 38824:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_funding_get_bytes() != 63867:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_funding_get_signature() != 29468:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_funding_is_signature_valid() != 50669:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_funding_is_valid() != 4189:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_funding_json_str() != 55097:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_funding_to_zklink_tx() != 27295:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_funding_tx_hash() != 26610:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_liquidation_create_signed_tx() != 18143:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_liquidation_get_bytes() != 1134:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_liquidation_get_signature() != 31505:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_liquidation_is_signature_valid() != 8478:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_liquidation_is_valid() != 2828:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_liquidation_json_str() != 62587:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_liquidation_to_zklink_tx() != 30414:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_liquidation_tx_hash() != 34918:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_order_create_signed_order() != 18530:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_order_get_bytes() != 51161:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_order_get_eth_sign_msg() != 11725:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_order_get_signature() != 46876:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_order_is_signature_valid() != 6764:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_order_is_valid() != 56951:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_order_json_str() != 20284:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_ordermatching_create_signed_tx() != 27728:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_ordermatching_get_bytes() != 13177:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_ordermatching_get_signature() != 35878:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_ordermatching_is_signature_valid() != 54946:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_ordermatching_is_valid() != 51995:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_ordermatching_json_str() != 33830:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_ordermatching_to_zklink_tx() != 23870:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_ordermatching_tx_hash() != 3162:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_auto_deleveraging() != 3485:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_create2data_auth() != 39808:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_eth_ecdsa_auth() != 63567:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_onchain_auth_data() != 26921:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_contract_matching() != 27932:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_forced_exit() != 37862:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_funding() != 31213:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_liquidation() != 56257:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_order_matching() != 19982:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_transfer() != 51577:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_signer_sign_withdraw() != 56851:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_starksigner_sign_message() != 27027:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_transfer_create_signed_tx() != 17446:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_transfer_eth_signature() != 18454:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_transfer_get_bytes() != 56287:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_transfer_get_eth_sign_msg() != 46393:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_transfer_get_signature() != 55226:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_transfer_is_signature_valid() != 31540:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_transfer_is_valid() != 46475:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_transfer_json_str() != 28252:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_transfer_to_zklink_tx() != 64899:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_transfer_tx_hash() != 16259:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_updateglobalvar_get_bytes() != 40576:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_updateglobalvar_is_valid() != 7961:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_updateglobalvar_json_str() != 48653:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_updateglobalvar_to_zklink_tx() != 40091:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_updateglobalvar_tx_hash() != 4261:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_withdraw_create_signed_tx() != 15886:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_withdraw_eth_signature() != 28825:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_withdraw_get_bytes() != 15999:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_withdraw_get_eth_sign_msg() != 27813:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_withdraw_get_signature() != 56920:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_withdraw_is_signature_valid() != 9636:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_withdraw_is_valid() != 32004:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_withdraw_json_str() != 3719:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_withdraw_to_zklink_tx() != 26934:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_withdraw_tx_hash() != 25800:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_zklinksigner_public_key() != 11211:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_method_zklinksigner_sign_musig() != 46475:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_autodeleveraging_new() != 10122:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_changepubkey_new() != 10607:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_contract_new() != 32968:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_contractmatching_new() != 210:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_deposit_new() != 2732:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_ethsigner_new() != 58738:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_forcedexit_new() != 30328:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_fullexit_new() != 27234:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_funding_new() != 62515:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_liquidation_new() != 56634:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_order_new() != 13958:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_ordermatching_new() != 5934:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_signer_new() != 24354:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_starksigner_new() != 61581:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_starksigner_new_from_hex_str() != 57960:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_transfer_new() != 31981:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_typeddata_new() != 46773:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_updateglobalvar_new() != 31819:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_withdraw_new() != 47491:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new() != 62411:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_bytes() != 17619:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_eth_signer() != 60210:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_stark_signer() != 21809:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n    if lib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_seed() != 47514:\n        raise InternalError(\"UniFFI API checksum mismatch: try cleaning and rebuilding your project\")\n\n# A ctypes library to expose the extern-C FFI definitions.\n# This is an implementation detail which will be called internally by the public API.\n\n_UniffiLib = _uniffi_load_indirect()\n_UniffiLib.uniffi_zklink_sdk_fn_free_autodeleveraging.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_autodeleveraging.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_autodeleveraging_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_autodeleveraging_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_create_signed_tx.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_changepubkey.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_changepubkey.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_changepubkey_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_changepubkey_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_onchain.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_onchain.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_contract.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_contract.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_contract_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_contract_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_create_signed_contract.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_create_signed_contract.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_long.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_long.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_short.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_short.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_free_contractmatching.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_contractmatching.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_contractmatching_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_contractmatching_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_create_signed_tx.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_deposit.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_deposit.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_deposit_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_deposit_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_ethsigner.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_ethsigner.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_ethsigner_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_ethsigner_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_get_address.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_get_address.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_sign_message.argtypes = (\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_sign_message.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_forcedexit.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_forcedexit.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_forcedexit_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_forcedexit_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_create_signed_tx.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_fullexit.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_fullexit.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_fullexit_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_fullexit_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_funding.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_funding.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_funding_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_funding_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_create_signed_tx.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_funding_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_liquidation.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_liquidation.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_liquidation_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_liquidation_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_create_signed_tx.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_order.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_order.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_order_new.argtypes = (\n    ctypes.c_uint32,\n    ctypes.c_uint8,\n    ctypes.c_uint32,\n    ctypes.c_uint32,\n    ctypes.c_uint32,\n    ctypes.c_uint32,\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    ctypes.c_int8,\n    ctypes.c_int8,\n    ctypes.c_uint8,\n    ctypes.c_uint8,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_order_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_create_signed_order.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_create_signed_order.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_eth_sign_msg.argtypes = (\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    ctypes.c_uint8,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_eth_sign_msg.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_order_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_ordermatching.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_ordermatching.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_ordermatching_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_ordermatching_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_create_signed_tx.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_signer.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_signer.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_signer_new.argtypes = (\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_signer_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_auto_deleveraging.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_auto_deleveraging.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_create2data_auth.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_create2data_auth.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_eth_ecdsa_auth.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_eth_ecdsa_auth.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_onchain_auth_data.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_onchain_auth_data.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_contract_matching.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_contract_matching.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_forced_exit.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_forced_exit.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_funding.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_funding.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_liquidation.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_liquidation.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_order_matching.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_order_matching.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_transfer.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_transfer.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_withdraw.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_withdraw.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_starksigner.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_starksigner.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new.argtypes = (\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new_from_hex_str.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new_from_hex_str.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_starksigner_sign_message.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_starksigner_sign_message.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_transfer.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_transfer.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_transfer_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_transfer_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_create_signed_tx.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_eth_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_eth_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_eth_sign_msg.argtypes = (\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_eth_sign_msg.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_typeddata.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_typeddata.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_typeddata_new.argtypes = (\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_typeddata_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_free_updateglobalvar.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_updateglobalvar.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_updateglobalvar_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_updateglobalvar_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_withdraw.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_withdraw.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_withdraw_new.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_withdraw_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_create_signed_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_create_signed_tx.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_eth_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_eth_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_bytes.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_bytes.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_eth_sign_msg.argtypes = (\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_eth_sign_msg.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_signature.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_signature.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_signature_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_signature_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_valid.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_valid.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_json_str.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_json_str.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_to_zklink_tx.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_to_zklink_tx.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_tx_hash.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_tx_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_free_zklinksigner.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_free_zklinksigner.restype = None\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new.argtypes = (\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_bytes.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_bytes.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_eth_signer.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_eth_signer.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_stark_signer.argtypes = (\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_stark_signer.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_seed.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_seed.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_public_key.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_public_key.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_sign_musig.argtypes = (\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_sign_musig.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_func_create_signed_change_pubkey.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_func_create_signed_change_pubkey.restype = ctypes.c_void_p\n_UniffiLib.uniffi_zklink_sdk_fn_func_eth_signature_of_change_pubkey.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_func_eth_signature_of_change_pubkey.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_func_get_public_key_hash.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_func_get_public_key_hash.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_func_verify_musig.argtypes = (\n    _UniffiRustBuffer,\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_func_verify_musig.restype = ctypes.c_int8\n_UniffiLib.uniffi_zklink_sdk_fn_func_zklink_main_net_url.argtypes = (\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_func_zklink_main_net_url.restype = _UniffiRustBuffer\n_UniffiLib.uniffi_zklink_sdk_fn_func_zklink_test_net_url.argtypes = (\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.uniffi_zklink_sdk_fn_func_zklink_test_net_url.restype = _UniffiRustBuffer\n_UniffiLib.ffi_zklink_sdk_rustbuffer_alloc.argtypes = (\n    ctypes.c_int32,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rustbuffer_alloc.restype = _UniffiRustBuffer\n_UniffiLib.ffi_zklink_sdk_rustbuffer_from_bytes.argtypes = (\n    _UniffiForeignBytes,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rustbuffer_from_bytes.restype = _UniffiRustBuffer\n_UniffiLib.ffi_zklink_sdk_rustbuffer_free.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rustbuffer_free.restype = None\n_UniffiLib.ffi_zklink_sdk_rustbuffer_reserve.argtypes = (\n    _UniffiRustBuffer,\n    ctypes.c_int32,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rustbuffer_reserve.restype = _UniffiRustBuffer\n_UniffiLib.ffi_zklink_sdk_rust_future_continuation_callback_set.argtypes = (\n    _UNIFFI_FUTURE_CONTINUATION_T,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_continuation_callback_set.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_u8.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_u8.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_u8.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_u8.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_u8.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_u8.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_u8.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_u8.restype = ctypes.c_uint8\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_i8.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_i8.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_i8.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_i8.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_i8.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_i8.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_i8.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_i8.restype = ctypes.c_int8\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_u16.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_u16.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_u16.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_u16.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_u16.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_u16.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_u16.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_u16.restype = ctypes.c_uint16\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_i16.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_i16.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_i16.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_i16.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_i16.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_i16.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_i16.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_i16.restype = ctypes.c_int16\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_u32.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_u32.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_u32.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_u32.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_u32.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_u32.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_u32.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_u32.restype = ctypes.c_uint32\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_i32.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_i32.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_i32.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_i32.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_i32.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_i32.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_i32.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_i32.restype = ctypes.c_int32\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_u64.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_u64.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_u64.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_u64.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_u64.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_u64.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_u64.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_u64.restype = ctypes.c_uint64\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_i64.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_i64.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_i64.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_i64.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_i64.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_i64.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_i64.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_i64.restype = ctypes.c_int64\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_f32.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_f32.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_f32.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_f32.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_f32.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_f32.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_f32.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_f32.restype = ctypes.c_float\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_f64.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_f64.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_f64.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_f64.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_f64.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_f64.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_f64.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_f64.restype = ctypes.c_double\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_pointer.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_pointer.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_pointer.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_pointer.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_pointer.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_pointer.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_pointer.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_pointer.restype = ctypes.c_void_p\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_rust_buffer.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_rust_buffer.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_rust_buffer.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_rust_buffer.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_rust_buffer.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_rust_buffer.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_rust_buffer.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_rust_buffer.restype = _UniffiRustBuffer\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_void.argtypes = (\n    ctypes.c_void_p,\n    ctypes.c_size_t,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_poll_void.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_void.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_cancel_void.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_free_void.argtypes = (\n    ctypes.c_void_p,\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_free_void.restype = None\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_void.argtypes = (\n    ctypes.c_void_p,\n    ctypes.POINTER(_UniffiRustCallStatus),\n)\n_UniffiLib.ffi_zklink_sdk_rust_future_complete_void.restype = None\n_UniffiLib.uniffi_zklink_sdk_checksum_func_create_signed_change_pubkey.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_func_create_signed_change_pubkey.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_func_eth_signature_of_change_pubkey.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_func_eth_signature_of_change_pubkey.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_func_get_public_key_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_func_get_public_key_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_func_verify_musig.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_func_verify_musig.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_func_zklink_main_net_url.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_func_zklink_main_net_url.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_func_zklink_test_net_url.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_func_zklink_test_net_url.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_create_signed_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_create_signed_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_autodeleveraging_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_onchain.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_onchain.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_changepubkey_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_create_signed_contract.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_create_signed_contract.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_long.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_long.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_short.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_short.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contract_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_create_signed_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_create_signed_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_contractmatching_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_deposit_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ethsigner_get_address.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ethsigner_get_address.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ethsigner_sign_message.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ethsigner_sign_message.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_create_signed_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_create_signed_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_forcedexit_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_fullexit_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_create_signed_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_create_signed_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_funding_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_create_signed_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_create_signed_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_liquidation_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_create_signed_order.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_create_signed_order.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_eth_sign_msg.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_eth_sign_msg.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_order_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_create_signed_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_create_signed_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_ordermatching_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_auto_deleveraging.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_auto_deleveraging.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_create2data_auth.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_create2data_auth.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_eth_ecdsa_auth.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_eth_ecdsa_auth.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_onchain_auth_data.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_change_pubkey_with_onchain_auth_data.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_contract_matching.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_contract_matching.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_forced_exit.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_forced_exit.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_funding.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_funding.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_liquidation.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_liquidation.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_order_matching.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_order_matching.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_transfer.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_transfer.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_withdraw.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_signer_sign_withdraw.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_starksigner_sign_message.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_starksigner_sign_message.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_create_signed_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_create_signed_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_eth_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_eth_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_eth_sign_msg.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_eth_sign_msg.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_transfer_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_updateglobalvar_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_create_signed_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_create_signed_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_eth_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_eth_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_eth_sign_msg.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_eth_sign_msg.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_signature.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_get_signature.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_is_signature_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_is_signature_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_is_valid.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_is_valid.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_json_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_json_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_to_zklink_tx.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_to_zklink_tx.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_tx_hash.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_withdraw_tx_hash.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_zklinksigner_public_key.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_zklinksigner_public_key.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_method_zklinksigner_sign_musig.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_method_zklinksigner_sign_musig.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_autodeleveraging_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_autodeleveraging_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_changepubkey_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_changepubkey_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_contract_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_contract_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_contractmatching_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_contractmatching_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_deposit_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_deposit_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_ethsigner_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_ethsigner_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_forcedexit_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_forcedexit_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_fullexit_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_fullexit_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_funding_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_funding_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_liquidation_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_liquidation_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_order_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_order_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_ordermatching_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_ordermatching_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_signer_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_signer_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_starksigner_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_starksigner_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_starksigner_new_from_hex_str.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_starksigner_new_from_hex_str.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_transfer_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_transfer_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_typeddata_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_typeddata_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_updateglobalvar_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_updateglobalvar_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_withdraw_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_withdraw_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_bytes.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_bytes.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_eth_signer.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_eth_signer.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_stark_signer.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_hex_stark_signer.restype = ctypes.c_uint16\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_seed.argtypes = (\n)\n_UniffiLib.uniffi_zklink_sdk_checksum_constructor_zklinksigner_new_from_seed.restype = ctypes.c_uint16\n_UniffiLib.ffi_zklink_sdk_uniffi_contract_version.argtypes = (\n)\n_UniffiLib.ffi_zklink_sdk_uniffi_contract_version.restype = ctypes.c_uint32\n_uniffi_check_contract_api_version(_UniffiLib)\n_uniffi_check_api_checksums(_UniffiLib)\n\n# Async support\n\n# Public interface members begin here.\n\n\nclass _UniffiConverterUInt8(_UniffiConverterPrimitiveInt):\n    CLASS_NAME = \"u8\"\n    VALUE_MIN = 0\n    VALUE_MAX = 2**8\n\n    @staticmethod\n    def read(buf):\n        return buf.read_u8()\n\n    @staticmethod\n    def write_unchecked(value, buf):\n        buf.write_u8(value)\n\nclass _UniffiConverterUInt16(_UniffiConverterPrimitiveInt):\n    CLASS_NAME = \"u16\"\n    VALUE_MIN = 0\n    VALUE_MAX = 2**16\n\n    @staticmethod\n    def read(buf):\n        return buf.read_u16()\n\n    @staticmethod\n    def write_unchecked(value, buf):\n        buf.write_u16(value)\n\nclass _UniffiConverterInt16(_UniffiConverterPrimitiveInt):\n    CLASS_NAME = \"i16\"\n    VALUE_MIN = -2**15\n    VALUE_MAX = 2**15\n\n    @staticmethod\n    def read(buf):\n        return buf.read_i16()\n\n    @staticmethod\n    def write_unchecked(value, buf):\n        buf.write_i16(value)\n\nclass _UniffiConverterUInt32(_UniffiConverterPrimitiveInt):\n    CLASS_NAME = \"u32\"\n    VALUE_MIN = 0\n    VALUE_MAX = 2**32\n\n    @staticmethod\n    def read(buf):\n        return buf.read_u32()\n\n    @staticmethod\n    def write_unchecked(value, buf):\n        buf.write_u32(value)\n\nclass _UniffiConverterUInt64(_UniffiConverterPrimitiveInt):\n    CLASS_NAME = \"u64\"\n    VALUE_MIN = 0\n    VALUE_MAX = 2**64\n\n    @staticmethod\n    def read(buf):\n        return buf.read_u64()\n\n    @staticmethod\n    def write_unchecked(value, buf):\n        buf.write_u64(value)\n\nclass _UniffiConverterBool(_UniffiConverterPrimitive):\n    @classmethod\n    def check(cls, value):\n        return not not value\n\n    @classmethod\n    def read(cls, buf):\n        return cls.lift(buf.read_u8())\n\n    @classmethod\n    def write_unchecked(cls, value, buf):\n        buf.write_u8(value)\n\n    @staticmethod\n    def lift(value):\n        return value != 0\n\nclass _UniffiConverterString:\n    @staticmethod\n    def check(value):\n        if not isinstance(value, str):\n            raise TypeError(\"argument must be str, not {}\".format(type(value).__name__))\n        return value\n\n    @staticmethod\n    def read(buf):\n        size = buf.read_i32()\n        if size < 0:\n            raise InternalError(\"Unexpected negative string length\")\n        utf8_bytes = buf.read(size)\n        return utf8_bytes.decode(\"utf-8\")\n\n    @staticmethod\n    def write(value, buf):\n        value = _UniffiConverterString.check(value)\n        utf8_bytes = value.encode(\"utf-8\")\n        buf.write_i32(len(utf8_bytes))\n        buf.write(utf8_bytes)\n\n    @staticmethod\n    def lift(buf):\n        with buf.consume_with_stream() as stream:\n            return stream.read(stream.remaining()).decode(\"utf-8\")\n\n    @staticmethod\n    def lower(value):\n        value = _UniffiConverterString.check(value)\n        with _UniffiRustBuffer.alloc_with_builder() as builder:\n            builder.write(value.encode(\"utf-8\"))\n            return builder.finalize()\n\n\n\nclass AutoDeleveraging:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"AutoDeleveragingBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_autodeleveraging_new,\n        _UniffiConverterTypeAutoDeleveragingBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_autodeleveraging, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def create_signed_tx(self, signer: \"ZkLinkSigner\") -> \"AutoDeleveraging\":\n        \n        return _UniffiConverterTypeAutoDeleveraging.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_create_signed_tx,self._pointer,\n        _UniffiConverterTypeZkLinkSigner.lower(signer))\n        )\n\n\n\n\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ) -> \"bool\":\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ) -> \"bool\":\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ) -> str:\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_autodeleveraging_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeAutoDeleveraging:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, AutoDeleveraging):\n            raise TypeError(\"Expected AutoDeleveraging instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return AutoDeleveraging._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass ChangePubKey:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"ChangePubKeyBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_changepubkey_new,\n        _UniffiConverterTypeChangePubKeyBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_changepubkey, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_onchain(self, ) -> \"bool\":\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_onchain,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ) -> \"bool\":\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ) -> \"bool\":\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ) -> str:\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_changepubkey_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeChangePubKey:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, ChangePubKey):\n            raise TypeError(\"Expected ChangePubKey instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return ChangePubKey._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Contract:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"ContractBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_contract_new,\n        _UniffiConverterTypeContractBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_contract, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def create_signed_contract(self, zklink_signer: \"ZkLinkSigner\") -> \"Contract\":\n        \n        return _UniffiConverterTypeContract.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_contract_create_signed_contract,self._pointer,\n        _UniffiConverterTypeZkLinkSigner.lower(zklink_signer))\n        )\n\n\n\n\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contract_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_long(self, ) -> \"bool\":\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_long,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_short(self, ) -> \"bool\":\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_short,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ) -> \"bool\":\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contract_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeContract:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Contract):\n            raise TypeError(\"Expected Contract instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Contract._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass ContractMatching:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"ContractMatchingBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_contractmatching_new,\n        _UniffiConverterTypeContractMatchingBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_contractmatching, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def create_signed_tx(self, signer: \"ZkLinkSigner\") -> \"ContractMatching\":\n        \n        return _UniffiConverterTypeContractMatching.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_create_signed_tx,self._pointer,\n        _UniffiConverterTypeZkLinkSigner.lower(signer))\n        )\n\n\n\n\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ) -> \"bool\":\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ) -> \"bool\":\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ) -> str:\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_contractmatching_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeContractMatching:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, ContractMatching):\n            raise TypeError(\"Expected ContractMatching instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return ContractMatching._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Deposit:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"DepositBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_deposit_new,\n        _UniffiConverterTypeDepositBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_deposit, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ) -> str:\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_deposit_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeDeposit:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Deposit):\n            raise TypeError(\"Expected Deposit instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Deposit._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass EthSigner:\n    _pointer: ctypes.c_void_p\n    def __init__(self, private_key: str):\n        \n        self._pointer = _rust_call_with_error(_UniffiConverterTypeEthSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_ethsigner_new,\n        _UniffiConverterString.lower(private_key))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_ethsigner, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def get_address(self, ) -> \"Address\":\n        return _UniffiConverterTypeAddress.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_get_address,self._pointer,)\n        )\n\n\n\n\n\n\n    def sign_message(self, message: \"typing.List[int]\") -> \"PackedEthSignature\":\n        \n        return _UniffiConverterTypePackedEthSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeEthSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_ethsigner_sign_message,self._pointer,\n        _UniffiConverterSequenceUInt8.lower(message))\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeEthSigner:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, EthSigner):\n            raise TypeError(\"Expected EthSigner instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return EthSigner._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass ForcedExit:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"ForcedExitBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_forcedexit_new,\n        _UniffiConverterTypeForcedExitBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_forcedexit, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def create_signed_tx(self, signer: \"ZkLinkSigner\") -> \"ForcedExit\":\n        \n        return _UniffiConverterTypeForcedExit.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_create_signed_tx,self._pointer,\n        _UniffiConverterTypeZkLinkSigner.lower(signer))\n        )\n\n\n\n\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ) -> \"bool\":\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ) -> \"bool\":\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ) -> str:\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_forcedexit_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeForcedExit:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, ForcedExit):\n            raise TypeError(\"Expected ForcedExit instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return ForcedExit._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass FullExit:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"FullExitBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_fullexit_new,\n        _UniffiConverterTypeFullExitBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_fullexit, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ) -> \"bool\":\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ) -> str:\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_fullexit_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeFullExit:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, FullExit):\n            raise TypeError(\"Expected FullExit instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return FullExit._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Funding:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"FundingBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_funding_new,\n        _UniffiConverterTypeFundingBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_funding, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def create_signed_tx(self, signer: \"ZkLinkSigner\") -> \"Funding\":\n        \n        return _UniffiConverterTypeFunding.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_funding_create_signed_tx,self._pointer,\n        _UniffiConverterTypeZkLinkSigner.lower(signer))\n        )\n\n\n\n\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ) -> \"bool\":\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ) -> \"bool\":\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ) -> str:\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_funding_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeFunding:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Funding):\n            raise TypeError(\"Expected Funding instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Funding._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Liquidation:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"LiquidationBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_liquidation_new,\n        _UniffiConverterTypeLiquidationBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_liquidation, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def create_signed_tx(self, signer: \"ZkLinkSigner\") -> \"Liquidation\":\n        \n        return _UniffiConverterTypeLiquidation.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_create_signed_tx,self._pointer,\n        _UniffiConverterTypeZkLinkSigner.lower(signer))\n        )\n\n\n\n\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ) -> \"bool\":\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ) -> \"bool\":\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ) -> str:\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_liquidation_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeLiquidation:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Liquidation):\n            raise TypeError(\"Expected Liquidation instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Liquidation._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Order:\n    _pointer: ctypes.c_void_p\n    def __init__(self, account_id: \"AccountId\",sub_account_id: \"SubAccountId\",slot_id: \"SlotId\",nonce: \"Nonce\",base_token_id: \"TokenId\",quote_token_id: \"TokenId\",amount: \"BigUint\",price: \"BigUint\",is_sell: \"bool\",has_subsidy: \"bool\",maker_fee_rate: \"int\",taker_fee_rate: \"int\",signature: \"typing.Optional[ZkLinkSignature]\"):\n        \n        \n        \n        \n        \n        \n        \n        \n        \n        \n        \n        \n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_order_new,\n        _UniffiConverterTypeAccountId.lower(account_id),\n        _UniffiConverterTypeSubAccountId.lower(sub_account_id),\n        _UniffiConverterTypeSlotId.lower(slot_id),\n        _UniffiConverterTypeNonce.lower(nonce),\n        _UniffiConverterTypeTokenId.lower(base_token_id),\n        _UniffiConverterTypeTokenId.lower(quote_token_id),\n        _UniffiConverterTypeBigUint.lower(amount),\n        _UniffiConverterTypeBigUint.lower(price),\n        _UniffiConverterBool.lower(is_sell),\n        _UniffiConverterBool.lower(has_subsidy),\n        _UniffiConverterUInt8.lower(maker_fee_rate),\n        _UniffiConverterUInt8.lower(taker_fee_rate),\n        _UniffiConverterOptionalTypeZkLinkSignature.lower(signature))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_order, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def create_signed_order(self, zklink_signer: \"ZkLinkSigner\") -> \"Order\":\n        \n        return _UniffiConverterTypeOrder.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_order_create_signed_order,self._pointer,\n        _UniffiConverterTypeZkLinkSigner.lower(zklink_signer))\n        )\n\n\n\n\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_eth_sign_msg(self, quote_token: str,based_token: str,decimals: \"int\") -> str:\n        \n        \n        \n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_eth_sign_msg,self._pointer,\n        _UniffiConverterString.lower(quote_token),\n        _UniffiConverterString.lower(based_token),\n        _UniffiConverterUInt8.lower(decimals))\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ) -> \"bool\":\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ) -> \"bool\":\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ) -> str:\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_order_json_str,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeOrder:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Order):\n            raise TypeError(\"Expected Order instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Order._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass OrderMatching:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"OrderMatchingBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_ordermatching_new,\n        _UniffiConverterTypeOrderMatchingBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_ordermatching, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def create_signed_tx(self, signer: \"ZkLinkSigner\") -> \"OrderMatching\":\n        \n        return _UniffiConverterTypeOrderMatching.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_create_signed_tx,self._pointer,\n        _UniffiConverterTypeZkLinkSigner.lower(signer))\n        )\n\n\n\n\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ) -> \"bool\":\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ) -> \"bool\":\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ) -> str:\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_ordermatching_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeOrderMatching:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, OrderMatching):\n            raise TypeError(\"Expected OrderMatching instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return OrderMatching._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Signer:\n    _pointer: ctypes.c_void_p\n    def __init__(self, private_key: str,l1_type: \"L1SignerType\"):\n        \n        \n        self._pointer = _rust_call_with_error(_UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_signer_new,\n        _UniffiConverterString.lower(private_key),\n        _UniffiConverterTypeL1SignerType.lower(l1_type))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_signer, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def sign_auto_deleveraging(self, tx: \"AutoDeleveraging\") -> \"TxSignature\":\n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_auto_deleveraging,self._pointer,\n        _UniffiConverterTypeAutoDeleveraging.lower(tx))\n        )\n\n\n\n\n\n\n    def sign_change_pubkey_with_create2data_auth(self, tx: \"ChangePubKey\",crate2data: \"Create2Data\") -> \"TxSignature\":\n        \n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_create2data_auth,self._pointer,\n        _UniffiConverterTypeChangePubKey.lower(tx),\n        _UniffiConverterTypeCreate2Data.lower(crate2data))\n        )\n\n\n\n\n\n\n    def sign_change_pubkey_with_eth_ecdsa_auth(self, tx: \"ChangePubKey\") -> \"TxSignature\":\n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_eth_ecdsa_auth,self._pointer,\n        _UniffiConverterTypeChangePubKey.lower(tx))\n        )\n\n\n\n\n\n\n    def sign_change_pubkey_with_onchain_auth_data(self, tx: \"ChangePubKey\") -> \"TxSignature\":\n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_change_pubkey_with_onchain_auth_data,self._pointer,\n        _UniffiConverterTypeChangePubKey.lower(tx))\n        )\n\n\n\n\n\n\n    def sign_contract_matching(self, tx: \"ContractMatching\") -> \"TxSignature\":\n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_contract_matching,self._pointer,\n        _UniffiConverterTypeContractMatching.lower(tx))\n        )\n\n\n\n\n\n\n    def sign_forced_exit(self, tx: \"ForcedExit\") -> \"TxSignature\":\n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_forced_exit,self._pointer,\n        _UniffiConverterTypeForcedExit.lower(tx))\n        )\n\n\n\n\n\n\n    def sign_funding(self, tx: \"Funding\") -> \"TxSignature\":\n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_funding,self._pointer,\n        _UniffiConverterTypeFunding.lower(tx))\n        )\n\n\n\n\n\n\n    def sign_liquidation(self, tx: \"Liquidation\") -> \"TxSignature\":\n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_liquidation,self._pointer,\n        _UniffiConverterTypeLiquidation.lower(tx))\n        )\n\n\n\n\n\n\n    def sign_order_matching(self, tx: \"OrderMatching\") -> \"TxSignature\":\n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_order_matching,self._pointer,\n        _UniffiConverterTypeOrderMatching.lower(tx))\n        )\n\n\n\n\n\n\n    def sign_transfer(self, tx: \"Transfer\",token_sybmol: str,chain_id: \"typing.Optional[str]\",addr: \"typing.Optional[str]\") -> \"TxSignature\":\n        \n        \n        \n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_transfer,self._pointer,\n        _UniffiConverterTypeTransfer.lower(tx),\n        _UniffiConverterString.lower(token_sybmol),\n        _UniffiConverterOptionalString.lower(chain_id),\n        _UniffiConverterOptionalString.lower(addr))\n        )\n\n\n\n\n\n\n    def sign_withdraw(self, tx: \"Withdraw\",l2_source_token_symbol: str,chain_id: \"typing.Optional[str]\",addr: \"typing.Optional[str]\") -> \"TxSignature\":\n        \n        \n        \n        \n        return _UniffiConverterTypeTxSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_method_signer_sign_withdraw,self._pointer,\n        _UniffiConverterTypeWithdraw.lower(tx),\n        _UniffiConverterString.lower(l2_source_token_symbol),\n        _UniffiConverterOptionalString.lower(chain_id),\n        _UniffiConverterOptionalString.lower(addr))\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeSigner:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Signer):\n            raise TypeError(\"Expected Signer instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Signer._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass StarkSigner:\n    _pointer: ctypes.c_void_p\n    def __init__(self, ):\n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new,)\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_starksigner, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n    @classmethod\n    def new_from_hex_str(cls, hex_str: str):\n        \n        # Call the (fallible) function before creating any half-baked object instances.\n        pointer = _rust_call_with_error(_UniffiConverterTypeStarkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_starksigner_new_from_hex_str,\n        _UniffiConverterString.lower(hex_str))\n        return cls._make_instance_(pointer)\n\n\n\n    def sign_message(self, typed_data: \"TypedData\",addr: str) -> \"StarkEip712Signature\":\n        \n        \n        return _UniffiConverterTypeStarkEip712Signature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeStarkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_starksigner_sign_message,self._pointer,\n        _UniffiConverterTypeTypedData.lower(typed_data),\n        _UniffiConverterString.lower(addr))\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeStarkSigner:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, StarkSigner):\n            raise TypeError(\"Expected StarkSigner instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return StarkSigner._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Transfer:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"TransferBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_transfer_new,\n        _UniffiConverterTypeTransferBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_transfer, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def create_signed_tx(self, signer: \"ZkLinkSigner\") -> \"Transfer\":\n        \n        return _UniffiConverterTypeTransfer.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_create_signed_tx,self._pointer,\n        _UniffiConverterTypeZkLinkSigner.lower(signer))\n        )\n\n\n\n\n\n\n    def eth_signature(self, eth_signer: \"EthSigner\",token_symbol: str) -> \"TxLayer1Signature\":\n        \n        \n        return _UniffiConverterTypeTxLayer1Signature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_eth_signature,self._pointer,\n        _UniffiConverterTypeEthSigner.lower(eth_signer),\n        _UniffiConverterString.lower(token_symbol))\n        )\n\n\n\n\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_eth_sign_msg(self, token_symbol: str) -> str:\n        \n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_eth_sign_msg,self._pointer,\n        _UniffiConverterString.lower(token_symbol))\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ) -> \"bool\":\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ) -> \"bool\":\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ) -> str:\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_transfer_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeTransfer:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Transfer):\n            raise TypeError(\"Expected Transfer instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Transfer._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass TypedData:\n    _pointer: ctypes.c_void_p\n    def __init__(self, message: \"TypedDataMessage\",chain_id: str):\n        \n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_typeddata_new,\n        _UniffiConverterTypeTypedDataMessage.lower(message),\n        _UniffiConverterString.lower(chain_id))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_typeddata, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\nclass _UniffiConverterTypeTypedData:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, TypedData):\n            raise TypeError(\"Expected TypedData instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return TypedData._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass UpdateGlobalVar:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"UpdateGlobalVarBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_updateglobalvar_new,\n        _UniffiConverterTypeUpdateGlobalVarBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_updateglobalvar, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ) -> \"bool\":\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ) -> str:\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_updateglobalvar_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeUpdateGlobalVar:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, UpdateGlobalVar):\n            raise TypeError(\"Expected UpdateGlobalVar instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return UpdateGlobalVar._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass Withdraw:\n    _pointer: ctypes.c_void_p\n    def __init__(self, builder: \"WithdrawBuilder\"):\n        \n        self._pointer = _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_constructor_withdraw_new,\n        _UniffiConverterTypeWithdrawBuilder.lower(builder))\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_withdraw, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n\n    def create_signed_tx(self, signer: \"ZkLinkSigner\") -> \"Withdraw\":\n        \n        return _UniffiConverterTypeWithdraw.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_create_signed_tx,self._pointer,\n        _UniffiConverterTypeZkLinkSigner.lower(signer))\n        )\n\n\n\n\n\n\n    def eth_signature(self, eth_signer: \"EthSigner\",l2_source_token_symbol: str) -> \"PackedEthSignature\":\n        \n        \n        return _UniffiConverterTypePackedEthSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_eth_signature,self._pointer,\n        _UniffiConverterTypeEthSigner.lower(eth_signer),\n        _UniffiConverterString.lower(l2_source_token_symbol))\n        )\n\n\n\n\n\n\n    def get_bytes(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_bytes,self._pointer,)\n        )\n\n\n\n\n\n\n    def get_eth_sign_msg(self, token_symbol: str) -> str:\n        \n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_eth_sign_msg,self._pointer,\n        _UniffiConverterString.lower(token_symbol))\n        )\n\n\n\n\n\n\n    def get_signature(self, ) -> \"ZkLinkSignature\":\n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_get_signature,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_signature_valid(self, ) -> \"bool\":\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_signature_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def is_valid(self, ) -> \"bool\":\n        return _UniffiConverterBool.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_is_valid,self._pointer,)\n        )\n\n\n\n\n\n\n    def json_str(self, ) -> str:\n        return _UniffiConverterString.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_json_str,self._pointer,)\n        )\n\n\n\n\n\n\n    def to_zklink_tx(self, ) -> \"ZkLinkTx\":\n        return _UniffiConverterTypeZkLinkTx.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_to_zklink_tx,self._pointer,)\n        )\n\n\n\n\n\n\n    def tx_hash(self, ) -> \"typing.List[int]\":\n        return _UniffiConverterSequenceUInt8.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_withdraw_tx_hash,self._pointer,)\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeWithdraw:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, Withdraw):\n            raise TypeError(\"Expected Withdraw instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return Withdraw._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\n\nclass ZkLinkSigner:\n    _pointer: ctypes.c_void_p\n    def __init__(self, ):\n        self._pointer = _rust_call_with_error(_UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new,)\n\n    def __del__(self):\n        # In case of partial initialization of instances.\n        pointer = getattr(self, \"_pointer\", None)\n        if pointer is not None:\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_free_zklinksigner, pointer)\n\n    # Used by alternative constructors or any methods which return this type.\n    @classmethod\n    def _make_instance_(cls, pointer):\n        # Lightly yucky way to bypass the usual __init__ logic\n        # and just create a new instance with the required pointer.\n        inst = cls.__new__(cls)\n        inst._pointer = pointer\n        return inst\n\n    @classmethod\n    def new_from_bytes(cls, slice: \"typing.List[int]\"):\n        \n        # Call the (fallible) function before creating any half-baked object instances.\n        pointer = _rust_call_with_error(_UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_bytes,\n        _UniffiConverterSequenceUInt8.lower(slice))\n        return cls._make_instance_(pointer)\n\n\n    @classmethod\n    def new_from_hex_eth_signer(cls, eth_hex_private_key):\n        \n        # Call the (fallible) function before creating any half-baked object instances.\n        pointer = _rust_call_with_error(_UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_eth_signer,\n        _UniffiConverterString.lower(eth_hex_private_key))\n        return cls._make_instance_(pointer)\n\n\n    @classmethod\n    def new_from_hex_stark_signer(cls, hex_private_key: str,addr: str,chain_id: str):\n        \n        \n        \n        # Call the (fallible) function before creating any half-baked object instances.\n        pointer = _rust_call_with_error(_UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_hex_stark_signer,\n        _UniffiConverterString.lower(hex_private_key),\n        _UniffiConverterString.lower(addr),\n        _UniffiConverterString.lower(chain_id))\n        return cls._make_instance_(pointer)\n\n\n    @classmethod\n    def new_from_seed(cls, seed: \"typing.List[int]\"):\n        \n        # Call the (fallible) function before creating any half-baked object instances.\n        pointer = _rust_call_with_error(_UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_constructor_zklinksigner_new_from_seed,\n        _UniffiConverterSequenceUInt8.lower(seed))\n        return cls._make_instance_(pointer)\n\n\n\n    def public_key(self, ) -> \"PackedPublicKey\":\n        return _UniffiConverterTypePackedPublicKey.lift(\n            _rust_call(_UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_public_key,self._pointer,)\n        )\n\n\n\n\n\n\n    def sign_musig(self, msg: \"typing.List[int]\") -> \"ZkLinkSignature\":\n        \n        return _UniffiConverterTypeZkLinkSignature.lift(\n            _rust_call_with_error(\n    _UniffiConverterTypeZkSignerError,_UniffiLib.uniffi_zklink_sdk_fn_method_zklinksigner_sign_musig,self._pointer,\n        _UniffiConverterSequenceUInt8.lower(msg))\n        )\n\n\n\n\n\n\nclass _UniffiConverterTypeZkLinkSigner:\n    @classmethod\n    def read(cls, buf):\n        ptr = buf.read_u64()\n        if ptr == 0:\n            raise InternalError(\"Raw pointer value was null\")\n        return cls.lift(ptr)\n\n    @classmethod\n    def write(cls, value, buf):\n        if not isinstance(value, ZkLinkSigner):\n            raise TypeError(\"Expected ZkLinkSigner instance, {} found\".format(type(value).__name__))\n        buf.write_u64(cls.lower(value))\n\n    @staticmethod\n    def lift(value):\n        return ZkLinkSigner._make_instance_(value)\n\n    @staticmethod\n    def lower(value):\n        return value._pointer\n\n\nclass AutoDeleveragingBuilder:\n    account_id: \"AccountId\";sub_account_id: \"SubAccountId\";sub_account_nonce: \"Nonce\";contract_prices: \"typing.List[ContractPrice]\";margin_prices: \"typing.List[SpotPriceInfo]\";adl_account_id: \"AccountId\";pair_id: \"PairId\";adl_size: \"BigUint\";adl_price: \"BigUint\";fee: \"BigUint\";fee_token: \"TokenId\";\n\n    @typing.no_type_check\n    def __init__(self, account_id: \"AccountId\", sub_account_id: \"SubAccountId\", sub_account_nonce: \"Nonce\", contract_prices: \"typing.List[ContractPrice]\", margin_prices: \"typing.List[SpotPriceInfo]\", adl_account_id: \"AccountId\", pair_id: \"PairId\", adl_size: \"BigUint\", adl_price: \"BigUint\", fee: \"BigUint\", fee_token: \"TokenId\"):\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.sub_account_nonce = sub_account_nonce\n        self.contract_prices = contract_prices\n        self.margin_prices = margin_prices\n        self.adl_account_id = adl_account_id\n        self.pair_id = pair_id\n        self.adl_size = adl_size\n        self.adl_price = adl_price\n        self.fee = fee\n        self.fee_token = fee_token\n\n    def __str__(self):\n        return \"AutoDeleveragingBuilder(account_id={}, sub_account_id={}, sub_account_nonce={}, contract_prices={}, margin_prices={}, adl_account_id={}, pair_id={}, adl_size={}, adl_price={}, fee={}, fee_token={})\".format(self.account_id, self.sub_account_id, self.sub_account_nonce, self.contract_prices, self.margin_prices, self.adl_account_id, self.pair_id, self.adl_size, self.adl_price, self.fee, self.fee_token)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.sub_account_nonce != other.sub_account_nonce:\n            return False\n        if self.contract_prices != other.contract_prices:\n            return False\n        if self.margin_prices != other.margin_prices:\n            return False\n        if self.adl_account_id != other.adl_account_id:\n            return False\n        if self.pair_id != other.pair_id:\n            return False\n        if self.adl_size != other.adl_size:\n            return False\n        if self.adl_price != other.adl_price:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.fee_token != other.fee_token:\n            return False\n        return True\n\nclass _UniffiConverterTypeAutoDeleveragingBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return AutoDeleveragingBuilder(\n            account_id=_UniffiConverterTypeAccountId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            sub_account_nonce=_UniffiConverterTypeNonce.read(buf),\n            contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf),\n            margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf),\n            adl_account_id=_UniffiConverterTypeAccountId.read(buf),\n            pair_id=_UniffiConverterTypePairId.read(buf),\n            adl_size=_UniffiConverterTypeBigUint.read(buf),\n            adl_price=_UniffiConverterTypeBigUint.read(buf),\n            fee=_UniffiConverterTypeBigUint.read(buf),\n            fee_token=_UniffiConverterTypeTokenId.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypeNonce.write(value.sub_account_nonce, buf)\n        _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf)\n        _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf)\n        _UniffiConverterTypeAccountId.write(value.adl_account_id, buf)\n        _UniffiConverterTypePairId.write(value.pair_id, buf)\n        _UniffiConverterTypeBigUint.write(value.adl_size, buf)\n        _UniffiConverterTypeBigUint.write(value.adl_price, buf)\n        _UniffiConverterTypeBigUint.write(value.fee, buf)\n        _UniffiConverterTypeTokenId.write(value.fee_token, buf)\n\n\nclass ChangePubKeyBuilder:\n    chain_id: \"ChainId\";account_id: \"AccountId\";sub_account_id: \"SubAccountId\";new_pubkey_hash: \"PubKeyHash\";fee_token: \"TokenId\";fee: \"BigUint\";nonce: \"Nonce\";eth_signature: \"typing.Optional[PackedEthSignature]\";timestamp: \"TimeStamp\";\n\n    @typing.no_type_check\n    def __init__(self, chain_id: \"ChainId\", account_id: \"AccountId\", sub_account_id: \"SubAccountId\", new_pubkey_hash: \"PubKeyHash\", fee_token: \"TokenId\", fee: \"BigUint\", nonce: \"Nonce\", eth_signature: \"typing.Optional[PackedEthSignature]\", timestamp: \"TimeStamp\"):\n        self.chain_id = chain_id\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.new_pubkey_hash = new_pubkey_hash\n        self.fee_token = fee_token\n        self.fee = fee\n        self.nonce = nonce\n        self.eth_signature = eth_signature\n        self.timestamp = timestamp\n\n    def __str__(self):\n        return \"ChangePubKeyBuilder(chain_id={}, account_id={}, sub_account_id={}, new_pubkey_hash={}, fee_token={}, fee={}, nonce={}, eth_signature={}, timestamp={})\".format(self.chain_id, self.account_id, self.sub_account_id, self.new_pubkey_hash, self.fee_token, self.fee, self.nonce, self.eth_signature, self.timestamp)\n\n    def __eq__(self, other):\n        if self.chain_id != other.chain_id:\n            return False\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.new_pubkey_hash != other.new_pubkey_hash:\n            return False\n        if self.fee_token != other.fee_token:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.nonce != other.nonce:\n            return False\n        if self.eth_signature != other.eth_signature:\n            return False\n        if self.timestamp != other.timestamp:\n            return False\n        return True\n\nclass _UniffiConverterTypeChangePubKeyBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return ChangePubKeyBuilder(\n            chain_id=_UniffiConverterTypeChainId.read(buf),\n            account_id=_UniffiConverterTypeAccountId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            new_pubkey_hash=_UniffiConverterTypePubKeyHash.read(buf),\n            fee_token=_UniffiConverterTypeTokenId.read(buf),\n            fee=_UniffiConverterTypeBigUint.read(buf),\n            nonce=_UniffiConverterTypeNonce.read(buf),\n            eth_signature=_UniffiConverterOptionalTypePackedEthSignature.read(buf),\n            timestamp=_UniffiConverterTypeTimeStamp.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeChainId.write(value.chain_id, buf)\n        _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypePubKeyHash.write(value.new_pubkey_hash, buf)\n        _UniffiConverterTypeTokenId.write(value.fee_token, buf)\n        _UniffiConverterTypeBigUint.write(value.fee, buf)\n        _UniffiConverterTypeNonce.write(value.nonce, buf)\n        _UniffiConverterOptionalTypePackedEthSignature.write(value.eth_signature, buf)\n        _UniffiConverterTypeTimeStamp.write(value.timestamp, buf)\n\n\nclass ContractBuilder:\n    account_id: \"AccountId\";sub_account_id: \"SubAccountId\";slot_id: \"SlotId\";nonce: \"Nonce\";pair_id: \"PairId\";size: \"BigUint\";price: \"BigUint\";direction: \"bool\";taker_fee_rate: \"int\";maker_fee_rate: \"int\";has_subsidy: \"bool\";\n\n    @typing.no_type_check\n    def __init__(self, account_id: \"AccountId\", sub_account_id: \"SubAccountId\", slot_id: \"SlotId\", nonce: \"Nonce\", pair_id: \"PairId\", size: \"BigUint\", price: \"BigUint\", direction: \"bool\", taker_fee_rate: \"int\", maker_fee_rate: \"int\", has_subsidy: \"bool\"):\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.slot_id = slot_id\n        self.nonce = nonce\n        self.pair_id = pair_id\n        self.size = size\n        self.price = price\n        self.direction = direction\n        self.taker_fee_rate = taker_fee_rate\n        self.maker_fee_rate = maker_fee_rate\n        self.has_subsidy = has_subsidy\n\n    def __str__(self):\n        return \"ContractBuilder(account_id={}, sub_account_id={}, slot_id={}, nonce={}, pair_id={}, size={}, price={}, direction={}, taker_fee_rate={}, maker_fee_rate={}, has_subsidy={})\".format(self.account_id, self.sub_account_id, self.slot_id, self.nonce, self.pair_id, self.size, self.price, self.direction, self.taker_fee_rate, self.maker_fee_rate, self.has_subsidy)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.slot_id != other.slot_id:\n            return False\n        if self.nonce != other.nonce:\n            return False\n        if self.pair_id != other.pair_id:\n            return False\n        if self.size != other.size:\n            return False\n        if self.price != other.price:\n            return False\n        if self.direction != other.direction:\n            return False\n        if self.taker_fee_rate != other.taker_fee_rate:\n            return False\n        if self.maker_fee_rate != other.maker_fee_rate:\n            return False\n        if self.has_subsidy != other.has_subsidy:\n            return False\n        return True\n\nclass _UniffiConverterTypeContractBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return ContractBuilder(\n            account_id=_UniffiConverterTypeAccountId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            slot_id=_UniffiConverterTypeSlotId.read(buf),\n            nonce=_UniffiConverterTypeNonce.read(buf),\n            pair_id=_UniffiConverterTypePairId.read(buf),\n            size=_UniffiConverterTypeBigUint.read(buf),\n            price=_UniffiConverterTypeBigUint.read(buf),\n            direction=_UniffiConverterBool.read(buf),\n            taker_fee_rate=_UniffiConverterUInt8.read(buf),\n            maker_fee_rate=_UniffiConverterUInt8.read(buf),\n            has_subsidy=_UniffiConverterBool.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypeSlotId.write(value.slot_id, buf)\n        _UniffiConverterTypeNonce.write(value.nonce, buf)\n        _UniffiConverterTypePairId.write(value.pair_id, buf)\n        _UniffiConverterTypeBigUint.write(value.size, buf)\n        _UniffiConverterTypeBigUint.write(value.price, buf)\n        _UniffiConverterBool.write(value.direction, buf)\n        _UniffiConverterUInt8.write(value.taker_fee_rate, buf)\n        _UniffiConverterUInt8.write(value.maker_fee_rate, buf)\n        _UniffiConverterBool.write(value.has_subsidy, buf)\n\n\nclass ContractMatchingBuilder:\n    account_id: \"AccountId\";sub_account_id: \"SubAccountId\";taker: \"Contract\";maker: \"typing.List[Contract]\";fee: \"BigUint\";fee_token: \"TokenId\";contract_prices: \"typing.List[ContractPrice]\";margin_prices: \"typing.List[SpotPriceInfo]\";\n\n    @typing.no_type_check\n    def __init__(self, account_id: \"AccountId\", sub_account_id: \"SubAccountId\", taker: \"Contract\", maker: \"typing.List[Contract]\", fee: \"BigUint\", fee_token: \"TokenId\", contract_prices: \"typing.List[ContractPrice]\", margin_prices: \"typing.List[SpotPriceInfo]\"):\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.taker = taker\n        self.maker = maker\n        self.fee = fee\n        self.fee_token = fee_token\n        self.contract_prices = contract_prices\n        self.margin_prices = margin_prices\n\n    def __str__(self):\n        return \"ContractMatchingBuilder(account_id={}, sub_account_id={}, taker={}, maker={}, fee={}, fee_token={}, contract_prices={}, margin_prices={})\".format(self.account_id, self.sub_account_id, self.taker, self.maker, self.fee, self.fee_token, self.contract_prices, self.margin_prices)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.taker != other.taker:\n            return False\n        if self.maker != other.maker:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.fee_token != other.fee_token:\n            return False\n        if self.contract_prices != other.contract_prices:\n            return False\n        if self.margin_prices != other.margin_prices:\n            return False\n        return True\n\nclass _UniffiConverterTypeContractMatchingBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return ContractMatchingBuilder(\n            account_id=_UniffiConverterTypeAccountId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            taker=_UniffiConverterTypeContract.read(buf),\n            maker=_UniffiConverterSequenceTypeContract.read(buf),\n            fee=_UniffiConverterTypeBigUint.read(buf),\n            fee_token=_UniffiConverterTypeTokenId.read(buf),\n            contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf),\n            margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypeContract.write(value.taker, buf)\n        _UniffiConverterSequenceTypeContract.write(value.maker, buf)\n        _UniffiConverterTypeBigUint.write(value.fee, buf)\n        _UniffiConverterTypeTokenId.write(value.fee_token, buf)\n        _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf)\n        _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf)\n\n\nclass ContractPrice:\n    pair_id: \"PairId\";market_price: \"BigUint\";\n\n    @typing.no_type_check\n    def __init__(self, pair_id: \"PairId\", market_price: \"BigUint\"):\n        self.pair_id = pair_id\n        self.market_price = market_price\n\n    def __str__(self):\n        return \"ContractPrice(pair_id={}, market_price={})\".format(self.pair_id, self.market_price)\n\n    def __eq__(self, other):\n        if self.pair_id != other.pair_id:\n            return False\n        if self.market_price != other.market_price:\n            return False\n        return True\n\nclass _UniffiConverterTypeContractPrice(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return ContractPrice(\n            pair_id=_UniffiConverterTypePairId.read(buf),\n            market_price=_UniffiConverterTypeBigUint.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypePairId.write(value.pair_id, buf)\n        _UniffiConverterTypeBigUint.write(value.market_price, buf)\n\n\nclass Create2Data:\n    creator_address: \"ZkLinkAddress\";salt_arg: \"H256\";code_hash: \"H256\";\n\n    @typing.no_type_check\n    def __init__(self, creator_address: \"ZkLinkAddress\", salt_arg: \"H256\", code_hash: \"H256\"):\n        self.creator_address = creator_address\n        self.salt_arg = salt_arg\n        self.code_hash = code_hash\n\n    def __str__(self):\n        return \"Create2Data(creator_address={}, salt_arg={}, code_hash={})\".format(self.creator_address, self.salt_arg, self.code_hash)\n\n    def __eq__(self, other):\n        if self.creator_address != other.creator_address:\n            return False\n        if self.salt_arg != other.salt_arg:\n            return False\n        if self.code_hash != other.code_hash:\n            return False\n        return True\n\nclass _UniffiConverterTypeCreate2Data(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return Create2Data(\n            creator_address=_UniffiConverterTypeZkLinkAddress.read(buf),\n            salt_arg=_UniffiConverterTypeH256.read(buf),\n            code_hash=_UniffiConverterTypeH256.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeZkLinkAddress.write(value.creator_address, buf)\n        _UniffiConverterTypeH256.write(value.salt_arg, buf)\n        _UniffiConverterTypeH256.write(value.code_hash, buf)\n\n\nclass DepositBuilder:\n    from_address: \"ZkLinkAddress\";to_address: \"ZkLinkAddress\";from_chain_id: \"ChainId\";sub_account_id: \"SubAccountId\";l2_target_token: \"TokenId\";l1_source_token: \"TokenId\";amount: \"BigUint\";serial_id: \"int\";l2_hash: \"H256\";eth_hash: \"typing.Optional[H256]\";\n\n    @typing.no_type_check\n    def __init__(self, from_address: \"ZkLinkAddress\", to_address: \"ZkLinkAddress\", from_chain_id: \"ChainId\", sub_account_id: \"SubAccountId\", l2_target_token: \"TokenId\", l1_source_token: \"TokenId\", amount: \"BigUint\", serial_id: \"int\", l2_hash: \"H256\", eth_hash: \"typing.Optional[H256]\"):\n        self.from_address = from_address\n        self.to_address = to_address\n        self.from_chain_id = from_chain_id\n        self.sub_account_id = sub_account_id\n        self.l2_target_token = l2_target_token\n        self.l1_source_token = l1_source_token\n        self.amount = amount\n        self.serial_id = serial_id\n        self.l2_hash = l2_hash\n        self.eth_hash = eth_hash\n\n    def __str__(self):\n        return \"DepositBuilder(from_address={}, to_address={}, from_chain_id={}, sub_account_id={}, l2_target_token={}, l1_source_token={}, amount={}, serial_id={}, l2_hash={}, eth_hash={})\".format(self.from_address, self.to_address, self.from_chain_id, self.sub_account_id, self.l2_target_token, self.l1_source_token, self.amount, self.serial_id, self.l2_hash, self.eth_hash)\n\n    def __eq__(self, other):\n        if self.from_address != other.from_address:\n            return False\n        if self.to_address != other.to_address:\n            return False\n        if self.from_chain_id != other.from_chain_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.l2_target_token != other.l2_target_token:\n            return False\n        if self.l1_source_token != other.l1_source_token:\n            return False\n        if self.amount != other.amount:\n            return False\n        if self.serial_id != other.serial_id:\n            return False\n        if self.l2_hash != other.l2_hash:\n            return False\n        if self.eth_hash != other.eth_hash:\n            return False\n        return True\n\nclass _UniffiConverterTypeDepositBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return DepositBuilder(\n            from_address=_UniffiConverterTypeZkLinkAddress.read(buf),\n            to_address=_UniffiConverterTypeZkLinkAddress.read(buf),\n            from_chain_id=_UniffiConverterTypeChainId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            l2_target_token=_UniffiConverterTypeTokenId.read(buf),\n            l1_source_token=_UniffiConverterTypeTokenId.read(buf),\n            amount=_UniffiConverterTypeBigUint.read(buf),\n            serial_id=_UniffiConverterUInt64.read(buf),\n            l2_hash=_UniffiConverterTypeH256.read(buf),\n            eth_hash=_UniffiConverterOptionalTypeH256.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeZkLinkAddress.write(value.from_address, buf)\n        _UniffiConverterTypeZkLinkAddress.write(value.to_address, buf)\n        _UniffiConverterTypeChainId.write(value.from_chain_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypeTokenId.write(value.l2_target_token, buf)\n        _UniffiConverterTypeTokenId.write(value.l1_source_token, buf)\n        _UniffiConverterTypeBigUint.write(value.amount, buf)\n        _UniffiConverterUInt64.write(value.serial_id, buf)\n        _UniffiConverterTypeH256.write(value.l2_hash, buf)\n        _UniffiConverterOptionalTypeH256.write(value.eth_hash, buf)\n\n\nclass ForcedExitBuilder:\n    to_chain_id: \"ChainId\";initiator_account_id: \"AccountId\";initiator_sub_account_id: \"SubAccountId\";target: \"ZkLinkAddress\";target_sub_account_id: \"SubAccountId\";l2_source_token: \"TokenId\";l1_target_token: \"TokenId\";initiator_nonce: \"Nonce\";exit_amount: \"BigUint\";withdraw_to_l1: \"bool\";timestamp: \"TimeStamp\";\n\n    @typing.no_type_check\n    def __init__(self, to_chain_id: \"ChainId\", initiator_account_id: \"AccountId\", initiator_sub_account_id: \"SubAccountId\", target: \"ZkLinkAddress\", target_sub_account_id: \"SubAccountId\", l2_source_token: \"TokenId\", l1_target_token: \"TokenId\", initiator_nonce: \"Nonce\", exit_amount: \"BigUint\", withdraw_to_l1: \"bool\", timestamp: \"TimeStamp\"):\n        self.to_chain_id = to_chain_id\n        self.initiator_account_id = initiator_account_id\n        self.initiator_sub_account_id = initiator_sub_account_id\n        self.target = target\n        self.target_sub_account_id = target_sub_account_id\n        self.l2_source_token = l2_source_token\n        self.l1_target_token = l1_target_token\n        self.initiator_nonce = initiator_nonce\n        self.exit_amount = exit_amount\n        self.withdraw_to_l1 = withdraw_to_l1\n        self.timestamp = timestamp\n\n    def __str__(self):\n        return \"ForcedExitBuilder(to_chain_id={}, initiator_account_id={}, initiator_sub_account_id={}, target={}, target_sub_account_id={}, l2_source_token={}, l1_target_token={}, initiator_nonce={}, exit_amount={}, withdraw_to_l1={}, timestamp={})\".format(self.to_chain_id, self.initiator_account_id, self.initiator_sub_account_id, self.target, self.target_sub_account_id, self.l2_source_token, self.l1_target_token, self.initiator_nonce, self.exit_amount, self.withdraw_to_l1, self.timestamp)\n\n    def __eq__(self, other):\n        if self.to_chain_id != other.to_chain_id:\n            return False\n        if self.initiator_account_id != other.initiator_account_id:\n            return False\n        if self.initiator_sub_account_id != other.initiator_sub_account_id:\n            return False\n        if self.target != other.target:\n            return False\n        if self.target_sub_account_id != other.target_sub_account_id:\n            return False\n        if self.l2_source_token != other.l2_source_token:\n            return False\n        if self.l1_target_token != other.l1_target_token:\n            return False\n        if self.initiator_nonce != other.initiator_nonce:\n            return False\n        if self.exit_amount != other.exit_amount:\n            return False\n        if self.withdraw_to_l1 != other.withdraw_to_l1:\n            return False\n        if self.timestamp != other.timestamp:\n            return False\n        return True\n\nclass _UniffiConverterTypeForcedExitBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return ForcedExitBuilder(\n            to_chain_id=_UniffiConverterTypeChainId.read(buf),\n            initiator_account_id=_UniffiConverterTypeAccountId.read(buf),\n            initiator_sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            target=_UniffiConverterTypeZkLinkAddress.read(buf),\n            target_sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            l2_source_token=_UniffiConverterTypeTokenId.read(buf),\n            l1_target_token=_UniffiConverterTypeTokenId.read(buf),\n            initiator_nonce=_UniffiConverterTypeNonce.read(buf),\n            exit_amount=_UniffiConverterTypeBigUint.read(buf),\n            withdraw_to_l1=_UniffiConverterBool.read(buf),\n            timestamp=_UniffiConverterTypeTimeStamp.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeChainId.write(value.to_chain_id, buf)\n        _UniffiConverterTypeAccountId.write(value.initiator_account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.initiator_sub_account_id, buf)\n        _UniffiConverterTypeZkLinkAddress.write(value.target, buf)\n        _UniffiConverterTypeSubAccountId.write(value.target_sub_account_id, buf)\n        _UniffiConverterTypeTokenId.write(value.l2_source_token, buf)\n        _UniffiConverterTypeTokenId.write(value.l1_target_token, buf)\n        _UniffiConverterTypeNonce.write(value.initiator_nonce, buf)\n        _UniffiConverterTypeBigUint.write(value.exit_amount, buf)\n        _UniffiConverterBool.write(value.withdraw_to_l1, buf)\n        _UniffiConverterTypeTimeStamp.write(value.timestamp, buf)\n\n\nclass FullExitBuilder:\n    to_chain_id: \"ChainId\";account_id: \"AccountId\";sub_account_id: \"SubAccountId\";exit_address: \"ZkLinkAddress\";l2_source_token: \"TokenId\";l1_target_token: \"TokenId\";contract_prices: \"typing.List[ContractPrice]\";margin_prices: \"typing.List[SpotPriceInfo]\";serial_id: \"int\";l2_hash: \"H256\";\n\n    @typing.no_type_check\n    def __init__(self, to_chain_id: \"ChainId\", account_id: \"AccountId\", sub_account_id: \"SubAccountId\", exit_address: \"ZkLinkAddress\", l2_source_token: \"TokenId\", l1_target_token: \"TokenId\", contract_prices: \"typing.List[ContractPrice]\", margin_prices: \"typing.List[SpotPriceInfo]\", serial_id: \"int\", l2_hash: \"H256\"):\n        self.to_chain_id = to_chain_id\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.exit_address = exit_address\n        self.l2_source_token = l2_source_token\n        self.l1_target_token = l1_target_token\n        self.contract_prices = contract_prices\n        self.margin_prices = margin_prices\n        self.serial_id = serial_id\n        self.l2_hash = l2_hash\n\n    def __str__(self):\n        return \"FullExitBuilder(to_chain_id={}, account_id={}, sub_account_id={}, exit_address={}, l2_source_token={}, l1_target_token={}, contract_prices={}, margin_prices={}, serial_id={}, l2_hash={})\".format(self.to_chain_id, self.account_id, self.sub_account_id, self.exit_address, self.l2_source_token, self.l1_target_token, self.contract_prices, self.margin_prices, self.serial_id, self.l2_hash)\n\n    def __eq__(self, other):\n        if self.to_chain_id != other.to_chain_id:\n            return False\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.exit_address != other.exit_address:\n            return False\n        if self.l2_source_token != other.l2_source_token:\n            return False\n        if self.l1_target_token != other.l1_target_token:\n            return False\n        if self.contract_prices != other.contract_prices:\n            return False\n        if self.margin_prices != other.margin_prices:\n            return False\n        if self.serial_id != other.serial_id:\n            return False\n        if self.l2_hash != other.l2_hash:\n            return False\n        return True\n\nclass _UniffiConverterTypeFullExitBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return FullExitBuilder(\n            to_chain_id=_UniffiConverterTypeChainId.read(buf),\n            account_id=_UniffiConverterTypeAccountId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            exit_address=_UniffiConverterTypeZkLinkAddress.read(buf),\n            l2_source_token=_UniffiConverterTypeTokenId.read(buf),\n            l1_target_token=_UniffiConverterTypeTokenId.read(buf),\n            contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf),\n            margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf),\n            serial_id=_UniffiConverterUInt64.read(buf),\n            l2_hash=_UniffiConverterTypeH256.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeChainId.write(value.to_chain_id, buf)\n        _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypeZkLinkAddress.write(value.exit_address, buf)\n        _UniffiConverterTypeTokenId.write(value.l2_source_token, buf)\n        _UniffiConverterTypeTokenId.write(value.l1_target_token, buf)\n        _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf)\n        _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf)\n        _UniffiConverterUInt64.write(value.serial_id, buf)\n        _UniffiConverterTypeH256.write(value.l2_hash, buf)\n\n\nclass FundingBuilder:\n    account_id: \"AccountId\";sub_account_id: \"SubAccountId\";sub_account_nonce: \"Nonce\";funding_account_ids: \"typing.List[AccountId]\";fee: \"BigUint\";fee_token: \"TokenId\";\n\n    @typing.no_type_check\n    def __init__(self, account_id: \"AccountId\", sub_account_id: \"SubAccountId\", sub_account_nonce: \"Nonce\", funding_account_ids: \"typing.List[AccountId]\", fee: \"BigUint\", fee_token: \"TokenId\"):\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.sub_account_nonce = sub_account_nonce\n        self.funding_account_ids = funding_account_ids\n        self.fee = fee\n        self.fee_token = fee_token\n\n    def __str__(self):\n        return \"FundingBuilder(account_id={}, sub_account_id={}, sub_account_nonce={}, funding_account_ids={}, fee={}, fee_token={})\".format(self.account_id, self.sub_account_id, self.sub_account_nonce, self.funding_account_ids, self.fee, self.fee_token)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.sub_account_nonce != other.sub_account_nonce:\n            return False\n        if self.funding_account_ids != other.funding_account_ids:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.fee_token != other.fee_token:\n            return False\n        return True\n\nclass _UniffiConverterTypeFundingBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return FundingBuilder(\n            account_id=_UniffiConverterTypeAccountId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            sub_account_nonce=_UniffiConverterTypeNonce.read(buf),\n            funding_account_ids=_UniffiConverterSequenceTypeAccountId.read(buf),\n            fee=_UniffiConverterTypeBigUint.read(buf),\n            fee_token=_UniffiConverterTypeTokenId.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypeNonce.write(value.sub_account_nonce, buf)\n        _UniffiConverterSequenceTypeAccountId.write(value.funding_account_ids, buf)\n        _UniffiConverterTypeBigUint.write(value.fee, buf)\n        _UniffiConverterTypeTokenId.write(value.fee_token, buf)\n\n\nclass FundingInfo:\n    pair_id: \"PairId\";price: \"BigUint\";funding_rate: \"int\";\n\n    @typing.no_type_check\n    def __init__(self, pair_id: \"PairId\", price: \"BigUint\", funding_rate: \"int\"):\n        self.pair_id = pair_id\n        self.price = price\n        self.funding_rate = funding_rate\n\n    def __str__(self):\n        return \"FundingInfo(pair_id={}, price={}, funding_rate={})\".format(self.pair_id, self.price, self.funding_rate)\n\n    def __eq__(self, other):\n        if self.pair_id != other.pair_id:\n            return False\n        if self.price != other.price:\n            return False\n        if self.funding_rate != other.funding_rate:\n            return False\n        return True\n\nclass _UniffiConverterTypeFundingInfo(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return FundingInfo(\n            pair_id=_UniffiConverterTypePairId.read(buf),\n            price=_UniffiConverterTypeBigUint.read(buf),\n            funding_rate=_UniffiConverterInt16.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypePairId.write(value.pair_id, buf)\n        _UniffiConverterTypeBigUint.write(value.price, buf)\n        _UniffiConverterInt16.write(value.funding_rate, buf)\n\n\nclass LiquidationBuilder:\n    account_id: \"AccountId\";sub_account_id: \"SubAccountId\";sub_account_nonce: \"Nonce\";contract_prices: \"typing.List[ContractPrice]\";margin_prices: \"typing.List[SpotPriceInfo]\";liquidation_account_id: \"AccountId\";fee: \"BigUint\";fee_token: \"TokenId\";\n\n    @typing.no_type_check\n    def __init__(self, account_id: \"AccountId\", sub_account_id: \"SubAccountId\", sub_account_nonce: \"Nonce\", contract_prices: \"typing.List[ContractPrice]\", margin_prices: \"typing.List[SpotPriceInfo]\", liquidation_account_id: \"AccountId\", fee: \"BigUint\", fee_token: \"TokenId\"):\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.sub_account_nonce = sub_account_nonce\n        self.contract_prices = contract_prices\n        self.margin_prices = margin_prices\n        self.liquidation_account_id = liquidation_account_id\n        self.fee = fee\n        self.fee_token = fee_token\n\n    def __str__(self):\n        return \"LiquidationBuilder(account_id={}, sub_account_id={}, sub_account_nonce={}, contract_prices={}, margin_prices={}, liquidation_account_id={}, fee={}, fee_token={})\".format(self.account_id, self.sub_account_id, self.sub_account_nonce, self.contract_prices, self.margin_prices, self.liquidation_account_id, self.fee, self.fee_token)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.sub_account_nonce != other.sub_account_nonce:\n            return False\n        if self.contract_prices != other.contract_prices:\n            return False\n        if self.margin_prices != other.margin_prices:\n            return False\n        if self.liquidation_account_id != other.liquidation_account_id:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.fee_token != other.fee_token:\n            return False\n        return True\n\nclass _UniffiConverterTypeLiquidationBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return LiquidationBuilder(\n            account_id=_UniffiConverterTypeAccountId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            sub_account_nonce=_UniffiConverterTypeNonce.read(buf),\n            contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf),\n            margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf),\n            liquidation_account_id=_UniffiConverterTypeAccountId.read(buf),\n            fee=_UniffiConverterTypeBigUint.read(buf),\n            fee_token=_UniffiConverterTypeTokenId.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypeNonce.write(value.sub_account_nonce, buf)\n        _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf)\n        _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf)\n        _UniffiConverterTypeAccountId.write(value.liquidation_account_id, buf)\n        _UniffiConverterTypeBigUint.write(value.fee, buf)\n        _UniffiConverterTypeTokenId.write(value.fee_token, buf)\n\n\nclass Message:\n    data: str;\n\n    @typing.no_type_check\n    def __init__(self, data: str):\n        self.data = data\n\n    def __str__(self):\n        return \"Message(data={})\".format(self.data)\n\n    def __eq__(self, other):\n        if self.data != other.data:\n            return False\n        return True\n\nclass _UniffiConverterTypeMessage(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return Message(\n            data=_UniffiConverterString.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value.data, buf)\n\n\nclass OraclePrices:\n    contract_prices: \"typing.List[ContractPrice]\";margin_prices: \"typing.List[SpotPriceInfo]\";\n\n    @typing.no_type_check\n    def __init__(self, contract_prices: \"typing.List[ContractPrice]\", margin_prices: \"typing.List[SpotPriceInfo]\"):\n        self.contract_prices = contract_prices\n        self.margin_prices = margin_prices\n\n    def __str__(self):\n        return \"OraclePrices(contract_prices={}, margin_prices={})\".format(self.contract_prices, self.margin_prices)\n\n    def __eq__(self, other):\n        if self.contract_prices != other.contract_prices:\n            return False\n        if self.margin_prices != other.margin_prices:\n            return False\n        return True\n\nclass _UniffiConverterTypeOraclePrices(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return OraclePrices(\n            contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf),\n            margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf)\n        _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf)\n\n\nclass OrderMatchingBuilder:\n    account_id: \"AccountId\";sub_account_id: \"SubAccountId\";taker: \"Order\";maker: \"Order\";fee: \"BigUint\";fee_token: \"TokenId\";contract_prices: \"typing.List[ContractPrice]\";margin_prices: \"typing.List[SpotPriceInfo]\";expect_base_amount: \"BigUint\";expect_quote_amount: \"BigUint\";\n\n    @typing.no_type_check\n    def __init__(self, account_id: \"AccountId\", sub_account_id: \"SubAccountId\", taker: \"Order\", maker: \"Order\", fee: \"BigUint\", fee_token: \"TokenId\", contract_prices: \"typing.List[ContractPrice]\", margin_prices: \"typing.List[SpotPriceInfo]\", expect_base_amount: \"BigUint\", expect_quote_amount: \"BigUint\"):\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.taker = taker\n        self.maker = maker\n        self.fee = fee\n        self.fee_token = fee_token\n        self.contract_prices = contract_prices\n        self.margin_prices = margin_prices\n        self.expect_base_amount = expect_base_amount\n        self.expect_quote_amount = expect_quote_amount\n\n    def __str__(self):\n        return \"OrderMatchingBuilder(account_id={}, sub_account_id={}, taker={}, maker={}, fee={}, fee_token={}, contract_prices={}, margin_prices={}, expect_base_amount={}, expect_quote_amount={})\".format(self.account_id, self.sub_account_id, self.taker, self.maker, self.fee, self.fee_token, self.contract_prices, self.margin_prices, self.expect_base_amount, self.expect_quote_amount)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.taker != other.taker:\n            return False\n        if self.maker != other.maker:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.fee_token != other.fee_token:\n            return False\n        if self.contract_prices != other.contract_prices:\n            return False\n        if self.margin_prices != other.margin_prices:\n            return False\n        if self.expect_base_amount != other.expect_base_amount:\n            return False\n        if self.expect_quote_amount != other.expect_quote_amount:\n            return False\n        return True\n\nclass _UniffiConverterTypeOrderMatchingBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return OrderMatchingBuilder(\n            account_id=_UniffiConverterTypeAccountId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            taker=_UniffiConverterTypeOrder.read(buf),\n            maker=_UniffiConverterTypeOrder.read(buf),\n            fee=_UniffiConverterTypeBigUint.read(buf),\n            fee_token=_UniffiConverterTypeTokenId.read(buf),\n            contract_prices=_UniffiConverterSequenceTypeContractPrice.read(buf),\n            margin_prices=_UniffiConverterSequenceTypeSpotPriceInfo.read(buf),\n            expect_base_amount=_UniffiConverterTypeBigUint.read(buf),\n            expect_quote_amount=_UniffiConverterTypeBigUint.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypeOrder.write(value.taker, buf)\n        _UniffiConverterTypeOrder.write(value.maker, buf)\n        _UniffiConverterTypeBigUint.write(value.fee, buf)\n        _UniffiConverterTypeTokenId.write(value.fee_token, buf)\n        _UniffiConverterSequenceTypeContractPrice.write(value.contract_prices, buf)\n        _UniffiConverterSequenceTypeSpotPriceInfo.write(value.margin_prices, buf)\n        _UniffiConverterTypeBigUint.write(value.expect_base_amount, buf)\n        _UniffiConverterTypeBigUint.write(value.expect_quote_amount, buf)\n\n\nclass SpotPriceInfo:\n    token_id: \"TokenId\";price: \"BigUint\";\n\n    @typing.no_type_check\n    def __init__(self, token_id: \"TokenId\", price: \"BigUint\"):\n        self.token_id = token_id\n        self.price = price\n\n    def __str__(self):\n        return \"SpotPriceInfo(token_id={}, price={})\".format(self.token_id, self.price)\n\n    def __eq__(self, other):\n        if self.token_id != other.token_id:\n            return False\n        if self.price != other.price:\n            return False\n        return True\n\nclass _UniffiConverterTypeSpotPriceInfo(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return SpotPriceInfo(\n            token_id=_UniffiConverterTypeTokenId.read(buf),\n            price=_UniffiConverterTypeBigUint.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeTokenId.write(value.token_id, buf)\n        _UniffiConverterTypeBigUint.write(value.price, buf)\n\n\nclass TransferBuilder:\n    account_id: \"AccountId\";to_address: \"ZkLinkAddress\";from_sub_account_id: \"SubAccountId\";to_sub_account_id: \"SubAccountId\";token: \"TokenId\";amount: \"BigUint\";fee: \"BigUint\";nonce: \"Nonce\";timestamp: \"TimeStamp\";\n\n    @typing.no_type_check\n    def __init__(self, account_id: \"AccountId\", to_address: \"ZkLinkAddress\", from_sub_account_id: \"SubAccountId\", to_sub_account_id: \"SubAccountId\", token: \"TokenId\", amount: \"BigUint\", fee: \"BigUint\", nonce: \"Nonce\", timestamp: \"TimeStamp\"):\n        self.account_id = account_id\n        self.to_address = to_address\n        self.from_sub_account_id = from_sub_account_id\n        self.to_sub_account_id = to_sub_account_id\n        self.token = token\n        self.amount = amount\n        self.fee = fee\n        self.nonce = nonce\n        self.timestamp = timestamp\n\n    def __str__(self):\n        return \"TransferBuilder(account_id={}, to_address={}, from_sub_account_id={}, to_sub_account_id={}, token={}, amount={}, fee={}, nonce={}, timestamp={})\".format(self.account_id, self.to_address, self.from_sub_account_id, self.to_sub_account_id, self.token, self.amount, self.fee, self.nonce, self.timestamp)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.to_address != other.to_address:\n            return False\n        if self.from_sub_account_id != other.from_sub_account_id:\n            return False\n        if self.to_sub_account_id != other.to_sub_account_id:\n            return False\n        if self.token != other.token:\n            return False\n        if self.amount != other.amount:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.nonce != other.nonce:\n            return False\n        if self.timestamp != other.timestamp:\n            return False\n        return True\n\nclass _UniffiConverterTypeTransferBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return TransferBuilder(\n            account_id=_UniffiConverterTypeAccountId.read(buf),\n            to_address=_UniffiConverterTypeZkLinkAddress.read(buf),\n            from_sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            to_sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            token=_UniffiConverterTypeTokenId.read(buf),\n            amount=_UniffiConverterTypeBigUint.read(buf),\n            fee=_UniffiConverterTypeBigUint.read(buf),\n            nonce=_UniffiConverterTypeNonce.read(buf),\n            timestamp=_UniffiConverterTypeTimeStamp.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        _UniffiConverterTypeZkLinkAddress.write(value.to_address, buf)\n        _UniffiConverterTypeSubAccountId.write(value.from_sub_account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.to_sub_account_id, buf)\n        _UniffiConverterTypeTokenId.write(value.token, buf)\n        _UniffiConverterTypeBigUint.write(value.amount, buf)\n        _UniffiConverterTypeBigUint.write(value.fee, buf)\n        _UniffiConverterTypeNonce.write(value.nonce, buf)\n        _UniffiConverterTypeTimeStamp.write(value.timestamp, buf)\n\n\nclass TxMessage:\n    transaction: str;amount: str;fee: str;token: str;to: str;nonce: str;\n\n    @typing.no_type_check\n    def __init__(self, transaction: str, amount: str, fee: str, token: str, to: str, nonce: str):\n        self.transaction = transaction\n        self.amount = amount\n        self.fee = fee\n        self.token = token\n        self.to = to\n        self.nonce = nonce\n\n    def __str__(self):\n        return \"TxMessage(transaction={}, amount={}, fee={}, token={}, to={}, nonce={})\".format(self.transaction, self.amount, self.fee, self.token, self.to, self.nonce)\n\n    def __eq__(self, other):\n        if self.transaction != other.transaction:\n            return False\n        if self.amount != other.amount:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.token != other.token:\n            return False\n        if self.to != other.to:\n            return False\n        if self.nonce != other.nonce:\n            return False\n        return True\n\nclass _UniffiConverterTypeTxMessage(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return TxMessage(\n            transaction=_UniffiConverterString.read(buf),\n            amount=_UniffiConverterString.read(buf),\n            fee=_UniffiConverterString.read(buf),\n            token=_UniffiConverterString.read(buf),\n            to=_UniffiConverterString.read(buf),\n            nonce=_UniffiConverterString.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value.transaction, buf)\n        _UniffiConverterString.write(value.amount, buf)\n        _UniffiConverterString.write(value.fee, buf)\n        _UniffiConverterString.write(value.token, buf)\n        _UniffiConverterString.write(value.to, buf)\n        _UniffiConverterString.write(value.nonce, buf)\n\n\nclass TxSignature:\n    tx: \"ZkLinkTx\";layer1_signature: \"typing.Optional[TxLayer1Signature]\";\n\n    @typing.no_type_check\n    def __init__(self, tx: \"ZkLinkTx\", layer1_signature: \"typing.Optional[TxLayer1Signature]\"):\n        self.tx = tx\n        self.layer1_signature = layer1_signature\n\n    def __str__(self):\n        return \"TxSignature(tx={}, layer1_signature={})\".format(self.tx, self.layer1_signature)\n\n    def __eq__(self, other):\n        if self.tx != other.tx:\n            return False\n        if self.layer1_signature != other.layer1_signature:\n            return False\n        return True\n\nclass _UniffiConverterTypeTxSignature(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return TxSignature(\n            tx=_UniffiConverterTypeZkLinkTx.read(buf),\n            layer1_signature=_UniffiConverterOptionalTypeTxLayer1Signature.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeZkLinkTx.write(value.tx, buf)\n        _UniffiConverterOptionalTypeTxLayer1Signature.write(value.layer1_signature, buf)\n\n\nclass UpdateGlobalVarBuilder:\n    from_chain_id: \"ChainId\";sub_account_id: \"SubAccountId\";parameter: \"Parameter\";serial_id: \"int\";\n\n    @typing.no_type_check\n    def __init__(self, from_chain_id: \"ChainId\", sub_account_id: \"SubAccountId\", parameter: \"Parameter\", serial_id: \"int\"):\n        self.from_chain_id = from_chain_id\n        self.sub_account_id = sub_account_id\n        self.parameter = parameter\n        self.serial_id = serial_id\n\n    def __str__(self):\n        return \"UpdateGlobalVarBuilder(from_chain_id={}, sub_account_id={}, parameter={}, serial_id={})\".format(self.from_chain_id, self.sub_account_id, self.parameter, self.serial_id)\n\n    def __eq__(self, other):\n        if self.from_chain_id != other.from_chain_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.parameter != other.parameter:\n            return False\n        if self.serial_id != other.serial_id:\n            return False\n        return True\n\nclass _UniffiConverterTypeUpdateGlobalVarBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return UpdateGlobalVarBuilder(\n            from_chain_id=_UniffiConverterTypeChainId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            parameter=_UniffiConverterTypeParameter.read(buf),\n            serial_id=_UniffiConverterUInt64.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeChainId.write(value.from_chain_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypeParameter.write(value.parameter, buf)\n        _UniffiConverterUInt64.write(value.serial_id, buf)\n\n\nclass WithdrawBuilder:\n    account_id: \"AccountId\";sub_account_id: \"SubAccountId\";to_chain_id: \"ChainId\";to_address: \"ZkLinkAddress\";l2_source_token: \"TokenId\";l1_target_token: \"TokenId\";amount: \"BigUint\";call_data: \"typing.Optional[typing.List[int]]\";fee: \"BigUint\";nonce: \"Nonce\";withdraw_fee_ratio: \"int\";withdraw_to_l1: \"bool\";timestamp: \"TimeStamp\";\n\n    @typing.no_type_check\n    def __init__(self, account_id: \"AccountId\", sub_account_id: \"SubAccountId\", to_chain_id: \"ChainId\", to_address: \"ZkLinkAddress\", l2_source_token: \"TokenId\", l1_target_token: \"TokenId\", amount: \"BigUint\", call_data: \"typing.Optional[typing.List[int]]\", fee: \"BigUint\", nonce: \"Nonce\", withdraw_fee_ratio: \"int\", withdraw_to_l1: \"bool\", timestamp: \"TimeStamp\"):\n        self.account_id = account_id\n        self.sub_account_id = sub_account_id\n        self.to_chain_id = to_chain_id\n        self.to_address = to_address\n        self.l2_source_token = l2_source_token\n        self.l1_target_token = l1_target_token\n        self.amount = amount\n        self.call_data = call_data\n        self.fee = fee\n        self.nonce = nonce\n        self.withdraw_fee_ratio = withdraw_fee_ratio\n        self.withdraw_to_l1 = withdraw_to_l1\n        self.timestamp = timestamp\n\n    def __str__(self):\n        return \"WithdrawBuilder(account_id={}, sub_account_id={}, to_chain_id={}, to_address={}, l2_source_token={}, l1_target_token={}, amount={}, call_data={}, fee={}, nonce={}, withdraw_fee_ratio={}, withdraw_to_l1={}, timestamp={})\".format(self.account_id, self.sub_account_id, self.to_chain_id, self.to_address, self.l2_source_token, self.l1_target_token, self.amount, self.call_data, self.fee, self.nonce, self.withdraw_fee_ratio, self.withdraw_to_l1, self.timestamp)\n\n    def __eq__(self, other):\n        if self.account_id != other.account_id:\n            return False\n        if self.sub_account_id != other.sub_account_id:\n            return False\n        if self.to_chain_id != other.to_chain_id:\n            return False\n        if self.to_address != other.to_address:\n            return False\n        if self.l2_source_token != other.l2_source_token:\n            return False\n        if self.l1_target_token != other.l1_target_token:\n            return False\n        if self.amount != other.amount:\n            return False\n        if self.call_data != other.call_data:\n            return False\n        if self.fee != other.fee:\n            return False\n        if self.nonce != other.nonce:\n            return False\n        if self.withdraw_fee_ratio != other.withdraw_fee_ratio:\n            return False\n        if self.withdraw_to_l1 != other.withdraw_to_l1:\n            return False\n        if self.timestamp != other.timestamp:\n            return False\n        return True\n\nclass _UniffiConverterTypeWithdrawBuilder(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return WithdrawBuilder(\n            account_id=_UniffiConverterTypeAccountId.read(buf),\n            sub_account_id=_UniffiConverterTypeSubAccountId.read(buf),\n            to_chain_id=_UniffiConverterTypeChainId.read(buf),\n            to_address=_UniffiConverterTypeZkLinkAddress.read(buf),\n            l2_source_token=_UniffiConverterTypeTokenId.read(buf),\n            l1_target_token=_UniffiConverterTypeTokenId.read(buf),\n            amount=_UniffiConverterTypeBigUint.read(buf),\n            call_data=_UniffiConverterOptionalSequenceUInt8.read(buf),\n            fee=_UniffiConverterTypeBigUint.read(buf),\n            nonce=_UniffiConverterTypeNonce.read(buf),\n            withdraw_fee_ratio=_UniffiConverterUInt16.read(buf),\n            withdraw_to_l1=_UniffiConverterBool.read(buf),\n            timestamp=_UniffiConverterTypeTimeStamp.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        _UniffiConverterTypeSubAccountId.write(value.sub_account_id, buf)\n        _UniffiConverterTypeChainId.write(value.to_chain_id, buf)\n        _UniffiConverterTypeZkLinkAddress.write(value.to_address, buf)\n        _UniffiConverterTypeTokenId.write(value.l2_source_token, buf)\n        _UniffiConverterTypeTokenId.write(value.l1_target_token, buf)\n        _UniffiConverterTypeBigUint.write(value.amount, buf)\n        _UniffiConverterOptionalSequenceUInt8.write(value.call_data, buf)\n        _UniffiConverterTypeBigUint.write(value.fee, buf)\n        _UniffiConverterTypeNonce.write(value.nonce, buf)\n        _UniffiConverterUInt16.write(value.withdraw_fee_ratio, buf)\n        _UniffiConverterBool.write(value.withdraw_to_l1, buf)\n        _UniffiConverterTypeTimeStamp.write(value.timestamp, buf)\n\n\nclass ZkLinkSignature:\n    pub_key: \"PackedPublicKey\";signature: \"PackedSignature\";\n\n    @typing.no_type_check\n    def __init__(self, pub_key: \"PackedPublicKey\", signature: \"PackedSignature\"):\n        self.pub_key = pub_key\n        self.signature = signature\n\n    def __str__(self):\n        return \"ZkLinkSignature(pub_key={}, signature={})\".format(self.pub_key, self.signature)\n\n    def __eq__(self, other):\n        if self.pub_key != other.pub_key:\n            return False\n        if self.signature != other.signature:\n            return False\n        return True\n\nclass _UniffiConverterTypeZkLinkSignature(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        return ZkLinkSignature(\n            pub_key=_UniffiConverterTypePackedPublicKey.read(buf),\n            signature=_UniffiConverterTypePackedSignature.read(buf),\n        )\n\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterTypePackedPublicKey.write(value.pub_key, buf)\n        _UniffiConverterTypePackedSignature.write(value.signature, buf)\n\n\n\n\n\nclass ChangePubKeyAuthData:\n    def __init__(self):\n        raise RuntimeError(\"ChangePubKeyAuthData cannot be instantiated directly\")\n\n    # Each enum variant is a nested class of the enum itself.\n    class ONCHAIN:\n        \n\n        @typing.no_type_check\n        def __init__(self,):\n            \n            pass\n            \n\n        def __str__(self):\n            return \"ChangePubKeyAuthData.ONCHAIN()\".format()\n\n        def __eq__(self, other):\n            if not other.is_onchain():\n                return False\n            return True\n    class ETH_ECDSA:\n        eth_signature: \"PackedEthSignature\";\n\n        @typing.no_type_check\n        def __init__(self,eth_signature: \"PackedEthSignature\"):\n            \n            self.eth_signature = eth_signature\n            \n\n        def __str__(self):\n            return \"ChangePubKeyAuthData.ETH_ECDSA(eth_signature={})\".format(self.eth_signature)\n\n        def __eq__(self, other):\n            if not other.is_eth_ecdsa():\n                return False\n            if self.eth_signature != other.eth_signature:\n                return False\n            return True\n    class ETH_CREATE2:\n        data: \"Create2Data\";\n\n        @typing.no_type_check\n        def __init__(self,data: \"Create2Data\"):\n            \n            self.data = data\n            \n\n        def __str__(self):\n            return \"ChangePubKeyAuthData.ETH_CREATE2(data={})\".format(self.data)\n\n        def __eq__(self, other):\n            if not other.is_eth_create2():\n                return False\n            if self.data != other.data:\n                return False\n            return True\n    \n\n    # For each variant, we have an `is_NAME` method for easily checking\n    # whether an instance is that variant.\n    def is_onchain(self) -> bool:\n        return isinstance(self, ChangePubKeyAuthData.ONCHAIN)\n    def is_eth_ecdsa(self) -> bool:\n        return isinstance(self, ChangePubKeyAuthData.ETH_ECDSA)\n    def is_eth_create2(self) -> bool:\n        return isinstance(self, ChangePubKeyAuthData.ETH_CREATE2)\n    \n\n# Now, a little trick - we make each nested variant class be a subclass of the main\n# enum class, so that method calls and instance checks etc will work intuitively.\n# We might be able to do this a little more neatly with a metaclass, but this'll do.\nChangePubKeyAuthData.ONCHAIN = type(\"ChangePubKeyAuthData.ONCHAIN\", (ChangePubKeyAuthData.ONCHAIN, ChangePubKeyAuthData,), {})  # type: ignore\nChangePubKeyAuthData.ETH_ECDSA = type(\"ChangePubKeyAuthData.ETH_ECDSA\", (ChangePubKeyAuthData.ETH_ECDSA, ChangePubKeyAuthData,), {})  # type: ignore\nChangePubKeyAuthData.ETH_CREATE2 = type(\"ChangePubKeyAuthData.ETH_CREATE2\", (ChangePubKeyAuthData.ETH_CREATE2, ChangePubKeyAuthData,), {})  # type: ignore\n\n\n\n\nclass _UniffiConverterTypeChangePubKeyAuthData(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return ChangePubKeyAuthData.ONCHAIN(\n            )\n        if variant == 2:\n            return ChangePubKeyAuthData.ETH_ECDSA(\n                _UniffiConverterTypePackedEthSignature.read(buf),\n            )\n        if variant == 3:\n            return ChangePubKeyAuthData.ETH_CREATE2(\n                _UniffiConverterTypeCreate2Data.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    def write(value, buf):\n        if value.is_onchain():\n            buf.write_i32(1)\n        if value.is_eth_ecdsa():\n            buf.write_i32(2)\n            _UniffiConverterTypePackedEthSignature.write(value.eth_signature, buf)\n        if value.is_eth_create2():\n            buf.write_i32(3)\n            _UniffiConverterTypeCreate2Data.write(value.data, buf)\n\n\n\n\n\n\n\nclass ChangePubKeyAuthRequest:\n    def __init__(self):\n        raise RuntimeError(\"ChangePubKeyAuthRequest cannot be instantiated directly\")\n\n    # Each enum variant is a nested class of the enum itself.\n    class ONCHAIN:\n        \n\n        @typing.no_type_check\n        def __init__(self,):\n            \n            pass\n            \n\n        def __str__(self):\n            return \"ChangePubKeyAuthRequest.ONCHAIN()\".format()\n\n        def __eq__(self, other):\n            if not other.is_onchain():\n                return False\n            return True\n    class ETH_ECDSA:\n        \n\n        @typing.no_type_check\n        def __init__(self,):\n            \n            pass\n            \n\n        def __str__(self):\n            return \"ChangePubKeyAuthRequest.ETH_ECDSA()\".format()\n\n        def __eq__(self, other):\n            if not other.is_eth_ecdsa():\n                return False\n            return True\n    class ETH_CREATE2:\n        data: \"Create2Data\";\n\n        @typing.no_type_check\n        def __init__(self,data: \"Create2Data\"):\n            \n            self.data = data\n            \n\n        def __str__(self):\n            return \"ChangePubKeyAuthRequest.ETH_CREATE2(data={})\".format(self.data)\n\n        def __eq__(self, other):\n            if not other.is_eth_create2():\n                return False\n            if self.data != other.data:\n                return False\n            return True\n    \n\n    # For each variant, we have an `is_NAME` method for easily checking\n    # whether an instance is that variant.\n    def is_onchain(self) -> bool:\n        return isinstance(self, ChangePubKeyAuthRequest.ONCHAIN)\n    def is_eth_ecdsa(self) -> bool:\n        return isinstance(self, ChangePubKeyAuthRequest.ETH_ECDSA)\n    def is_eth_create2(self) -> bool:\n        return isinstance(self, ChangePubKeyAuthRequest.ETH_CREATE2)\n    \n\n# Now, a little trick - we make each nested variant class be a subclass of the main\n# enum class, so that method calls and instance checks etc will work intuitively.\n# We might be able to do this a little more neatly with a metaclass, but this'll do.\nChangePubKeyAuthRequest.ONCHAIN = type(\"ChangePubKeyAuthRequest.ONCHAIN\", (ChangePubKeyAuthRequest.ONCHAIN, ChangePubKeyAuthRequest,), {})  # type: ignore\nChangePubKeyAuthRequest.ETH_ECDSA = type(\"ChangePubKeyAuthRequest.ETH_ECDSA\", (ChangePubKeyAuthRequest.ETH_ECDSA, ChangePubKeyAuthRequest,), {})  # type: ignore\nChangePubKeyAuthRequest.ETH_CREATE2 = type(\"ChangePubKeyAuthRequest.ETH_CREATE2\", (ChangePubKeyAuthRequest.ETH_CREATE2, ChangePubKeyAuthRequest,), {})  # type: ignore\n\n\n\n\nclass _UniffiConverterTypeChangePubKeyAuthRequest(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return ChangePubKeyAuthRequest.ONCHAIN(\n            )\n        if variant == 2:\n            return ChangePubKeyAuthRequest.ETH_ECDSA(\n            )\n        if variant == 3:\n            return ChangePubKeyAuthRequest.ETH_CREATE2(\n                _UniffiConverterTypeCreate2Data.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    def write(value, buf):\n        if value.is_onchain():\n            buf.write_i32(1)\n        if value.is_eth_ecdsa():\n            buf.write_i32(2)\n        if value.is_eth_create2():\n            buf.write_i32(3)\n            _UniffiConverterTypeCreate2Data.write(value.data, buf)\n\n\n\n\n# EthSignerError\n# We want to define each variant as a nested class that's also a subclass,\n# which is tricky in Python.  To accomplish this we're going to create each\n# class separately, then manually add the child classes to the base class's\n# __dict__.  All of this happens in dummy class to avoid polluting the module\n# namespace.\nclass EthSignerError(Exception):\n    pass\n\n_UniffiTempEthSignerError = EthSignerError\n\nclass EthSignerError:  # type: ignore\n    class InvalidEthSigner(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.InvalidEthSigner({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.InvalidEthSigner = InvalidEthSigner # type: ignore\n    class MissingEthPrivateKey(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.MissingEthPrivateKey({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.MissingEthPrivateKey = MissingEthPrivateKey # type: ignore\n    class MissingEthSigner(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.MissingEthSigner({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.MissingEthSigner = MissingEthSigner # type: ignore\n    class SigningFailed(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.SigningFailed({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.SigningFailed = SigningFailed # type: ignore\n    class UnlockingFailed(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.UnlockingFailed({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.UnlockingFailed = UnlockingFailed # type: ignore\n    class InvalidRawTx(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.InvalidRawTx({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.InvalidRawTx = InvalidRawTx # type: ignore\n    class Eip712Failed(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.Eip712Failed({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.Eip712Failed = Eip712Failed # type: ignore\n    class NoSigningKey(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.NoSigningKey({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.NoSigningKey = NoSigningKey # type: ignore\n    class DefineAddress(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.DefineAddress({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.DefineAddress = DefineAddress # type: ignore\n    class RecoverAddress(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.RecoverAddress({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.RecoverAddress = RecoverAddress # type: ignore\n    class LengthMismatched(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.LengthMismatched({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.LengthMismatched = LengthMismatched # type: ignore\n    class CryptoError(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.CryptoError({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.CryptoError = CryptoError # type: ignore\n    class InvalidSignatureStr(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.InvalidSignatureStr({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.InvalidSignatureStr = InvalidSignatureStr # type: ignore\n    class CustomError(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.CustomError({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.CustomError = CustomError # type: ignore\n    class RpcSignError(_UniffiTempEthSignerError):\n        def __repr__(self):\n            return \"EthSignerError.RpcSignError({})\".format(repr(str(self)))\n    _UniffiTempEthSignerError.RpcSignError = RpcSignError # type: ignore\n\nEthSignerError = _UniffiTempEthSignerError # type: ignore\ndel _UniffiTempEthSignerError\n\n\nclass _UniffiConverterTypeEthSignerError(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return EthSignerError.InvalidEthSigner(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 2:\n            return EthSignerError.MissingEthPrivateKey(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 3:\n            return EthSignerError.MissingEthSigner(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 4:\n            return EthSignerError.SigningFailed(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 5:\n            return EthSignerError.UnlockingFailed(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 6:\n            return EthSignerError.InvalidRawTx(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 7:\n            return EthSignerError.Eip712Failed(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 8:\n            return EthSignerError.NoSigningKey(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 9:\n            return EthSignerError.DefineAddress(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 10:\n            return EthSignerError.RecoverAddress(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 11:\n            return EthSignerError.LengthMismatched(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 12:\n            return EthSignerError.CryptoError(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 13:\n            return EthSignerError.InvalidSignatureStr(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 14:\n            return EthSignerError.CustomError(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 15:\n            return EthSignerError.RpcSignError(\n                _UniffiConverterString.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    @staticmethod\n    def write(value, buf):\n        if isinstance(value, EthSignerError.InvalidEthSigner):\n            buf.write_i32(1)\n        if isinstance(value, EthSignerError.MissingEthPrivateKey):\n            buf.write_i32(2)\n        if isinstance(value, EthSignerError.MissingEthSigner):\n            buf.write_i32(3)\n        if isinstance(value, EthSignerError.SigningFailed):\n            buf.write_i32(4)\n        if isinstance(value, EthSignerError.UnlockingFailed):\n            buf.write_i32(5)\n        if isinstance(value, EthSignerError.InvalidRawTx):\n            buf.write_i32(6)\n        if isinstance(value, EthSignerError.Eip712Failed):\n            buf.write_i32(7)\n        if isinstance(value, EthSignerError.NoSigningKey):\n            buf.write_i32(8)\n        if isinstance(value, EthSignerError.DefineAddress):\n            buf.write_i32(9)\n        if isinstance(value, EthSignerError.RecoverAddress):\n            buf.write_i32(10)\n        if isinstance(value, EthSignerError.LengthMismatched):\n            buf.write_i32(11)\n        if isinstance(value, EthSignerError.CryptoError):\n            buf.write_i32(12)\n        if isinstance(value, EthSignerError.InvalidSignatureStr):\n            buf.write_i32(13)\n        if isinstance(value, EthSignerError.CustomError):\n            buf.write_i32(14)\n        if isinstance(value, EthSignerError.RpcSignError):\n            buf.write_i32(15)\n\n\n\n\n\nclass L1SignerType:\n    def __init__(self):\n        raise RuntimeError(\"L1SignerType cannot be instantiated directly\")\n\n    # Each enum variant is a nested class of the enum itself.\n    class ETH:\n        \n\n        @typing.no_type_check\n        def __init__(self,):\n            \n            pass\n            \n\n        def __str__(self):\n            return \"L1SignerType.ETH()\".format()\n\n        def __eq__(self, other):\n            if not other.is_eth():\n                return False\n            return True\n    class STARKNET:\n        chain_id: str;address: str;\n\n        @typing.no_type_check\n        def __init__(self,chain_id: str, address: str):\n            \n            self.chain_id = chain_id\n            self.address = address\n            \n\n        def __str__(self):\n            return \"L1SignerType.STARKNET(chain_id={}, address={})\".format(self.chain_id, self.address)\n\n        def __eq__(self, other):\n            if not other.is_starknet():\n                return False\n            if self.chain_id != other.chain_id:\n                return False\n            if self.address != other.address:\n                return False\n            return True\n    \n\n    # For each variant, we have an `is_NAME` method for easily checking\n    # whether an instance is that variant.\n    def is_eth(self) -> bool:\n        return isinstance(self, L1SignerType.ETH)\n    def is_starknet(self) -> bool:\n        return isinstance(self, L1SignerType.STARKNET)\n    \n\n# Now, a little trick - we make each nested variant class be a subclass of the main\n# enum class, so that method calls and instance checks etc will work intuitively.\n# We might be able to do this a little more neatly with a metaclass, but this'll do.\nL1SignerType.ETH = type(\"L1SignerType.ETH\", (L1SignerType.ETH, L1SignerType,), {})  # type: ignore\nL1SignerType.STARKNET = type(\"L1SignerType.STARKNET\", (L1SignerType.STARKNET, L1SignerType,), {})  # type: ignore\n\n\n\n\nclass _UniffiConverterTypeL1SignerType(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return L1SignerType.ETH(\n            )\n        if variant == 2:\n            return L1SignerType.STARKNET(\n                _UniffiConverterString.read(buf),\n                _UniffiConverterString.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    def write(value, buf):\n        if value.is_eth():\n            buf.write_i32(1)\n        if value.is_starknet():\n            buf.write_i32(2)\n            _UniffiConverterString.write(value.chain_id, buf)\n            _UniffiConverterString.write(value.address, buf)\n\n\n\n\n\n\n\nclass L1Type(enum.Enum):\n    ETH = 1\n    STARKNET = 2\n    \n\n\nclass _UniffiConverterTypeL1Type(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return L1Type.ETH\n        if variant == 2:\n            return L1Type.STARKNET\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    def write(value, buf):\n        if value == L1Type.ETH:\n            buf.write_i32(1)\n        if value == L1Type.STARKNET:\n            buf.write_i32(2)\n\n\n\n\n\n\n\nclass Parameter:\n    def __init__(self):\n        raise RuntimeError(\"Parameter cannot be instantiated directly\")\n\n    # Each enum variant is a nested class of the enum itself.\n    class FEE_ACCOUNT:\n        account_id: \"AccountId\";\n\n        @typing.no_type_check\n        def __init__(self,account_id: \"AccountId\"):\n            \n            self.account_id = account_id\n            \n\n        def __str__(self):\n            return \"Parameter.FEE_ACCOUNT(account_id={})\".format(self.account_id)\n\n        def __eq__(self, other):\n            if not other.is_fee_account():\n                return False\n            if self.account_id != other.account_id:\n                return False\n            return True\n    class INSURANCE_FUND_ACCOUNT:\n        account_id: \"AccountId\";\n\n        @typing.no_type_check\n        def __init__(self,account_id: \"AccountId\"):\n            \n            self.account_id = account_id\n            \n\n        def __str__(self):\n            return \"Parameter.INSURANCE_FUND_ACCOUNT(account_id={})\".format(self.account_id)\n\n        def __eq__(self, other):\n            if not other.is_insurance_fund_account():\n                return False\n            if self.account_id != other.account_id:\n                return False\n            return True\n    class MARGIN_INFO:\n        margin_id: \"MarginId\";token_id: \"TokenId\";ratio: \"int\";\n\n        @typing.no_type_check\n        def __init__(self,margin_id: \"MarginId\", token_id: \"TokenId\", ratio: \"int\"):\n            \n            self.margin_id = margin_id\n            self.token_id = token_id\n            self.ratio = ratio\n            \n\n        def __str__(self):\n            return \"Parameter.MARGIN_INFO(margin_id={}, token_id={}, ratio={})\".format(self.margin_id, self.token_id, self.ratio)\n\n        def __eq__(self, other):\n            if not other.is_margin_info():\n                return False\n            if self.margin_id != other.margin_id:\n                return False\n            if self.token_id != other.token_id:\n                return False\n            if self.ratio != other.ratio:\n                return False\n            return True\n    class FUNDING_INFOS:\n        infos: \"typing.List[FundingInfo]\";\n\n        @typing.no_type_check\n        def __init__(self,infos: \"typing.List[FundingInfo]\"):\n            \n            self.infos = infos\n            \n\n        def __str__(self):\n            return \"Parameter.FUNDING_INFOS(infos={})\".format(self.infos)\n\n        def __eq__(self, other):\n            if not other.is_funding_infos():\n                return False\n            if self.infos != other.infos:\n                return False\n            return True\n    class CONTRACT_INFO:\n        pair_id: \"PairId\";symbol: str;initial_margin_rate: \"int\";maintenance_margin_rate: \"int\";\n\n        @typing.no_type_check\n        def __init__(self,pair_id: \"PairId\", symbol: str, initial_margin_rate: \"int\", maintenance_margin_rate: \"int\"):\n            \n            self.pair_id = pair_id\n            self.symbol = symbol\n            self.initial_margin_rate = initial_margin_rate\n            self.maintenance_margin_rate = maintenance_margin_rate\n            \n\n        def __str__(self):\n            return \"Parameter.CONTRACT_INFO(pair_id={}, symbol={}, initial_margin_rate={}, maintenance_margin_rate={})\".format(self.pair_id, self.symbol, self.initial_margin_rate, self.maintenance_margin_rate)\n\n        def __eq__(self, other):\n            if not other.is_contract_info():\n                return False\n            if self.pair_id != other.pair_id:\n                return False\n            if self.symbol != other.symbol:\n                return False\n            if self.initial_margin_rate != other.initial_margin_rate:\n                return False\n            if self.maintenance_margin_rate != other.maintenance_margin_rate:\n                return False\n            return True\n    \n\n    # For each variant, we have an `is_NAME` method for easily checking\n    # whether an instance is that variant.\n    def is_fee_account(self) -> bool:\n        return isinstance(self, Parameter.FEE_ACCOUNT)\n    def is_insurance_fund_account(self) -> bool:\n        return isinstance(self, Parameter.INSURANCE_FUND_ACCOUNT)\n    def is_margin_info(self) -> bool:\n        return isinstance(self, Parameter.MARGIN_INFO)\n    def is_funding_infos(self) -> bool:\n        return isinstance(self, Parameter.FUNDING_INFOS)\n    def is_contract_info(self) -> bool:\n        return isinstance(self, Parameter.CONTRACT_INFO)\n    \n\n# Now, a little trick - we make each nested variant class be a subclass of the main\n# enum class, so that method calls and instance checks etc will work intuitively.\n# We might be able to do this a little more neatly with a metaclass, but this'll do.\nParameter.FEE_ACCOUNT = type(\"Parameter.FEE_ACCOUNT\", (Parameter.FEE_ACCOUNT, Parameter,), {})  # type: ignore\nParameter.INSURANCE_FUND_ACCOUNT = type(\"Parameter.INSURANCE_FUND_ACCOUNT\", (Parameter.INSURANCE_FUND_ACCOUNT, Parameter,), {})  # type: ignore\nParameter.MARGIN_INFO = type(\"Parameter.MARGIN_INFO\", (Parameter.MARGIN_INFO, Parameter,), {})  # type: ignore\nParameter.FUNDING_INFOS = type(\"Parameter.FUNDING_INFOS\", (Parameter.FUNDING_INFOS, Parameter,), {})  # type: ignore\nParameter.CONTRACT_INFO = type(\"Parameter.CONTRACT_INFO\", (Parameter.CONTRACT_INFO, Parameter,), {})  # type: ignore\n\n\n\n\nclass _UniffiConverterTypeParameter(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return Parameter.FEE_ACCOUNT(\n                _UniffiConverterTypeAccountId.read(buf),\n            )\n        if variant == 2:\n            return Parameter.INSURANCE_FUND_ACCOUNT(\n                _UniffiConverterTypeAccountId.read(buf),\n            )\n        if variant == 3:\n            return Parameter.MARGIN_INFO(\n                _UniffiConverterTypeMarginId.read(buf),\n                _UniffiConverterTypeTokenId.read(buf),\n                _UniffiConverterUInt8.read(buf),\n            )\n        if variant == 4:\n            return Parameter.FUNDING_INFOS(\n                _UniffiConverterSequenceTypeFundingInfo.read(buf),\n            )\n        if variant == 5:\n            return Parameter.CONTRACT_INFO(\n                _UniffiConverterTypePairId.read(buf),\n                _UniffiConverterString.read(buf),\n                _UniffiConverterUInt16.read(buf),\n                _UniffiConverterUInt16.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    def write(value, buf):\n        if value.is_fee_account():\n            buf.write_i32(1)\n            _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        if value.is_insurance_fund_account():\n            buf.write_i32(2)\n            _UniffiConverterTypeAccountId.write(value.account_id, buf)\n        if value.is_margin_info():\n            buf.write_i32(3)\n            _UniffiConverterTypeMarginId.write(value.margin_id, buf)\n            _UniffiConverterTypeTokenId.write(value.token_id, buf)\n            _UniffiConverterUInt8.write(value.ratio, buf)\n        if value.is_funding_infos():\n            buf.write_i32(4)\n            _UniffiConverterSequenceTypeFundingInfo.write(value.infos, buf)\n        if value.is_contract_info():\n            buf.write_i32(5)\n            _UniffiConverterTypePairId.write(value.pair_id, buf)\n            _UniffiConverterString.write(value.symbol, buf)\n            _UniffiConverterUInt16.write(value.initial_margin_rate, buf)\n            _UniffiConverterUInt16.write(value.maintenance_margin_rate, buf)\n\n\n\n\n# SignError\n# We want to define each variant as a nested class that's also a subclass,\n# which is tricky in Python.  To accomplish this we're going to create each\n# class separately, then manually add the child classes to the base class's\n# __dict__.  All of this happens in dummy class to avoid polluting the module\n# namespace.\nclass SignError(Exception):\n    pass\n\n_UniffiTempSignError = SignError\n\nclass SignError:  # type: ignore\n    class EthSigningError(_UniffiTempSignError):\n        def __repr__(self):\n            return \"SignError.EthSigningError({})\".format(repr(str(self)))\n    _UniffiTempSignError.EthSigningError = EthSigningError # type: ignore\n    class ZkSigningError(_UniffiTempSignError):\n        def __repr__(self):\n            return \"SignError.ZkSigningError({})\".format(repr(str(self)))\n    _UniffiTempSignError.ZkSigningError = ZkSigningError # type: ignore\n    class StarkSigningError(_UniffiTempSignError):\n        def __repr__(self):\n            return \"SignError.StarkSigningError({})\".format(repr(str(self)))\n    _UniffiTempSignError.StarkSigningError = StarkSigningError # type: ignore\n    class IncorrectTx(_UniffiTempSignError):\n        def __repr__(self):\n            return \"SignError.IncorrectTx({})\".format(repr(str(self)))\n    _UniffiTempSignError.IncorrectTx = IncorrectTx # type: ignore\n\nSignError = _UniffiTempSignError # type: ignore\ndel _UniffiTempSignError\n\n\nclass _UniffiConverterTypeSignError(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return SignError.EthSigningError(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 2:\n            return SignError.ZkSigningError(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 3:\n            return SignError.StarkSigningError(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 4:\n            return SignError.IncorrectTx(\n                _UniffiConverterString.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    @staticmethod\n    def write(value, buf):\n        if isinstance(value, SignError.EthSigningError):\n            buf.write_i32(1)\n        if isinstance(value, SignError.ZkSigningError):\n            buf.write_i32(2)\n        if isinstance(value, SignError.StarkSigningError):\n            buf.write_i32(3)\n        if isinstance(value, SignError.IncorrectTx):\n            buf.write_i32(4)\n\n\n# StarkSignerError\n# We want to define each variant as a nested class that's also a subclass,\n# which is tricky in Python.  To accomplish this we're going to create each\n# class separately, then manually add the child classes to the base class's\n# __dict__.  All of this happens in dummy class to avoid polluting the module\n# namespace.\nclass StarkSignerError(Exception):\n    pass\n\n_UniffiTempStarkSignerError = StarkSignerError\n\nclass StarkSignerError:  # type: ignore\n    class InvalidStarknetSigner(_UniffiTempStarkSignerError):\n        def __repr__(self):\n            return \"StarkSignerError.InvalidStarknetSigner({})\".format(repr(str(self)))\n    _UniffiTempStarkSignerError.InvalidStarknetSigner = InvalidStarknetSigner # type: ignore\n    class InvalidSignature(_UniffiTempStarkSignerError):\n        def __repr__(self):\n            return \"StarkSignerError.InvalidSignature({})\".format(repr(str(self)))\n    _UniffiTempStarkSignerError.InvalidSignature = InvalidSignature # type: ignore\n    class InvalidPrivKey(_UniffiTempStarkSignerError):\n        def __repr__(self):\n            return \"StarkSignerError.InvalidPrivKey({})\".format(repr(str(self)))\n    _UniffiTempStarkSignerError.InvalidPrivKey = InvalidPrivKey # type: ignore\n    class SignError(_UniffiTempStarkSignerError):\n        def __repr__(self):\n            return \"StarkSignerError.SignError({})\".format(repr(str(self)))\n    _UniffiTempStarkSignerError.SignError = SignError # type: ignore\n    class RpcSignError(_UniffiTempStarkSignerError):\n        def __repr__(self):\n            return \"StarkSignerError.RpcSignError({})\".format(repr(str(self)))\n    _UniffiTempStarkSignerError.RpcSignError = RpcSignError # type: ignore\n\nStarkSignerError = _UniffiTempStarkSignerError # type: ignore\ndel _UniffiTempStarkSignerError\n\n\nclass _UniffiConverterTypeStarkSignerError(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return StarkSignerError.InvalidStarknetSigner(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 2:\n            return StarkSignerError.InvalidSignature(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 3:\n            return StarkSignerError.InvalidPrivKey(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 4:\n            return StarkSignerError.SignError(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 5:\n            return StarkSignerError.RpcSignError(\n                _UniffiConverterString.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    @staticmethod\n    def write(value, buf):\n        if isinstance(value, StarkSignerError.InvalidStarknetSigner):\n            buf.write_i32(1)\n        if isinstance(value, StarkSignerError.InvalidSignature):\n            buf.write_i32(2)\n        if isinstance(value, StarkSignerError.InvalidPrivKey):\n            buf.write_i32(3)\n        if isinstance(value, StarkSignerError.SignError):\n            buf.write_i32(4)\n        if isinstance(value, StarkSignerError.RpcSignError):\n            buf.write_i32(5)\n\n\n# TypeError\n# We want to define each variant as a nested class that's also a subclass,\n# which is tricky in Python.  To accomplish this we're going to create each\n# class separately, then manually add the child classes to the base class's\n# __dict__.  All of this happens in dummy class to avoid polluting the module\n# namespace.\nclass TypeError(Exception):\n    pass\n\n_UniffiTempTypeError = TypeError\n\nclass TypeError:  # type: ignore\n    class InvalidAddress(_UniffiTempTypeError):\n        def __repr__(self):\n            return \"TypeError.InvalidAddress({})\".format(repr(str(self)))\n    _UniffiTempTypeError.InvalidAddress = InvalidAddress # type: ignore\n    class InvalidTxHash(_UniffiTempTypeError):\n        def __repr__(self):\n            return \"TypeError.InvalidTxHash({})\".format(repr(str(self)))\n    _UniffiTempTypeError.InvalidTxHash = InvalidTxHash # type: ignore\n    class NotStartWithZerox(_UniffiTempTypeError):\n        def __repr__(self):\n            return \"TypeError.NotStartWithZerox({})\".format(repr(str(self)))\n    _UniffiTempTypeError.NotStartWithZerox = NotStartWithZerox # type: ignore\n    class SizeMismatch(_UniffiTempTypeError):\n        def __repr__(self):\n            return \"TypeError.SizeMismatch({})\".format(repr(str(self)))\n    _UniffiTempTypeError.SizeMismatch = SizeMismatch # type: ignore\n    class DecodeFromHexErr(_UniffiTempTypeError):\n        def __repr__(self):\n            return \"TypeError.DecodeFromHexErr({})\".format(repr(str(self)))\n    _UniffiTempTypeError.DecodeFromHexErr = DecodeFromHexErr # type: ignore\n    class TooBigInteger(_UniffiTempTypeError):\n        def __repr__(self):\n            return \"TypeError.TooBigInteger({})\".format(repr(str(self)))\n    _UniffiTempTypeError.TooBigInteger = TooBigInteger # type: ignore\n    class InvalidBigIntStr(_UniffiTempTypeError):\n        def __repr__(self):\n            return \"TypeError.InvalidBigIntStr({})\".format(repr(str(self)))\n    _UniffiTempTypeError.InvalidBigIntStr = InvalidBigIntStr # type: ignore\n\nTypeError = _UniffiTempTypeError # type: ignore\ndel _UniffiTempTypeError\n\n\nclass _UniffiConverterTypeTypeError(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return TypeError.InvalidAddress(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 2:\n            return TypeError.InvalidTxHash(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 3:\n            return TypeError.NotStartWithZerox(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 4:\n            return TypeError.SizeMismatch(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 5:\n            return TypeError.DecodeFromHexErr(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 6:\n            return TypeError.TooBigInteger(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 7:\n            return TypeError.InvalidBigIntStr(\n                _UniffiConverterString.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    @staticmethod\n    def write(value, buf):\n        if isinstance(value, TypeError.InvalidAddress):\n            buf.write_i32(1)\n        if isinstance(value, TypeError.InvalidTxHash):\n            buf.write_i32(2)\n        if isinstance(value, TypeError.NotStartWithZerox):\n            buf.write_i32(3)\n        if isinstance(value, TypeError.SizeMismatch):\n            buf.write_i32(4)\n        if isinstance(value, TypeError.DecodeFromHexErr):\n            buf.write_i32(5)\n        if isinstance(value, TypeError.TooBigInteger):\n            buf.write_i32(6)\n        if isinstance(value, TypeError.InvalidBigIntStr):\n            buf.write_i32(7)\n\n\n\n\n\nclass TypedDataMessage:\n    def __init__(self):\n        raise RuntimeError(\"TypedDataMessage cannot be instantiated directly\")\n\n    # Each enum variant is a nested class of the enum itself.\n    class CREATE_L2_KEY:\n        message: \"Message\";\n\n        @typing.no_type_check\n        def __init__(self,message: \"Message\"):\n            \n            self.message = message\n            \n\n        def __str__(self):\n            return \"TypedDataMessage.CREATE_L2_KEY(message={})\".format(self.message)\n\n        def __eq__(self, other):\n            if not other.is_create_l2_key():\n                return False\n            if self.message != other.message:\n                return False\n            return True\n    class TRANSACTION:\n        message: \"TxMessage\";\n\n        @typing.no_type_check\n        def __init__(self,message: \"TxMessage\"):\n            \n            self.message = message\n            \n\n        def __str__(self):\n            return \"TypedDataMessage.TRANSACTION(message={})\".format(self.message)\n\n        def __eq__(self, other):\n            if not other.is_transaction():\n                return False\n            if self.message != other.message:\n                return False\n            return True\n    \n\n    # For each variant, we have an `is_NAME` method for easily checking\n    # whether an instance is that variant.\n    def is_create_l2_key(self) -> bool:\n        return isinstance(self, TypedDataMessage.CREATE_L2_KEY)\n    def is_transaction(self) -> bool:\n        return isinstance(self, TypedDataMessage.TRANSACTION)\n    \n\n# Now, a little trick - we make each nested variant class be a subclass of the main\n# enum class, so that method calls and instance checks etc will work intuitively.\n# We might be able to do this a little more neatly with a metaclass, but this'll do.\nTypedDataMessage.CREATE_L2_KEY = type(\"TypedDataMessage.CREATE_L2_KEY\", (TypedDataMessage.CREATE_L2_KEY, TypedDataMessage,), {})  # type: ignore\nTypedDataMessage.TRANSACTION = type(\"TypedDataMessage.TRANSACTION\", (TypedDataMessage.TRANSACTION, TypedDataMessage,), {})  # type: ignore\n\n\n\n\nclass _UniffiConverterTypeTypedDataMessage(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return TypedDataMessage.CREATE_L2_KEY(\n                _UniffiConverterTypeMessage.read(buf),\n            )\n        if variant == 2:\n            return TypedDataMessage.TRANSACTION(\n                _UniffiConverterTypeTxMessage.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    def write(value, buf):\n        if value.is_create_l2_key():\n            buf.write_i32(1)\n            _UniffiConverterTypeMessage.write(value.message, buf)\n        if value.is_transaction():\n            buf.write_i32(2)\n            _UniffiConverterTypeTxMessage.write(value.message, buf)\n\n\n\n\n# ZkSignerError\n# We want to define each variant as a nested class that's also a subclass,\n# which is tricky in Python.  To accomplish this we're going to create each\n# class separately, then manually add the child classes to the base class's\n# __dict__.  All of this happens in dummy class to avoid polluting the module\n# namespace.\nclass ZkSignerError(Exception):\n    pass\n\n_UniffiTempZkSignerError = ZkSignerError\n\nclass ZkSignerError:  # type: ignore\n    class CustomError(_UniffiTempZkSignerError):\n        def __repr__(self):\n            return \"ZkSignerError.CustomError({})\".format(repr(str(self)))\n    _UniffiTempZkSignerError.CustomError = CustomError # type: ignore\n    class InvalidSignature(_UniffiTempZkSignerError):\n        def __repr__(self):\n            return \"ZkSignerError.InvalidSignature({})\".format(repr(str(self)))\n    _UniffiTempZkSignerError.InvalidSignature = InvalidSignature # type: ignore\n    class InvalidPrivKey(_UniffiTempZkSignerError):\n        def __repr__(self):\n            return \"ZkSignerError.InvalidPrivKey({})\".format(repr(str(self)))\n    _UniffiTempZkSignerError.InvalidPrivKey = InvalidPrivKey # type: ignore\n    class InvalidSeed(_UniffiTempZkSignerError):\n        def __repr__(self):\n            return \"ZkSignerError.InvalidSeed({})\".format(repr(str(self)))\n    _UniffiTempZkSignerError.InvalidSeed = InvalidSeed # type: ignore\n    class InvalidPubkey(_UniffiTempZkSignerError):\n        def __repr__(self):\n            return \"ZkSignerError.InvalidPubkey({})\".format(repr(str(self)))\n    _UniffiTempZkSignerError.InvalidPubkey = InvalidPubkey # type: ignore\n    class InvalidPubkeyHash(_UniffiTempZkSignerError):\n        def __repr__(self):\n            return \"ZkSignerError.InvalidPubkeyHash({})\".format(repr(str(self)))\n    _UniffiTempZkSignerError.InvalidPubkeyHash = InvalidPubkeyHash # type: ignore\n    class EthSignerError(_UniffiTempZkSignerError):\n        def __repr__(self):\n            return \"ZkSignerError.EthSignerError({})\".format(repr(str(self)))\n    _UniffiTempZkSignerError.EthSignerError = EthSignerError # type: ignore\n    class StarkSignerError(_UniffiTempZkSignerError):\n        def __repr__(self):\n            return \"ZkSignerError.StarkSignerError({})\".format(repr(str(self)))\n    _UniffiTempZkSignerError.StarkSignerError = StarkSignerError # type: ignore\n\nZkSignerError = _UniffiTempZkSignerError # type: ignore\ndel _UniffiTempZkSignerError\n\n\nclass _UniffiConverterTypeZkSignerError(_UniffiConverterRustBuffer):\n    @staticmethod\n    def read(buf):\n        variant = buf.read_i32()\n        if variant == 1:\n            return ZkSignerError.CustomError(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 2:\n            return ZkSignerError.InvalidSignature(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 3:\n            return ZkSignerError.InvalidPrivKey(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 4:\n            return ZkSignerError.InvalidSeed(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 5:\n            return ZkSignerError.InvalidPubkey(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 6:\n            return ZkSignerError.InvalidPubkeyHash(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 7:\n            return ZkSignerError.EthSignerError(\n                _UniffiConverterString.read(buf),\n            )\n        if variant == 8:\n            return ZkSignerError.StarkSignerError(\n                _UniffiConverterString.read(buf),\n            )\n        raise InternalError(\"Raw enum value doesn't match any cases\")\n\n    @staticmethod\n    def write(value, buf):\n        if isinstance(value, ZkSignerError.CustomError):\n            buf.write_i32(1)\n        if isinstance(value, ZkSignerError.InvalidSignature):\n            buf.write_i32(2)\n        if isinstance(value, ZkSignerError.InvalidPrivKey):\n            buf.write_i32(3)\n        if isinstance(value, ZkSignerError.InvalidSeed):\n            buf.write_i32(4)\n        if isinstance(value, ZkSignerError.InvalidPubkey):\n            buf.write_i32(5)\n        if isinstance(value, ZkSignerError.InvalidPubkeyHash):\n            buf.write_i32(6)\n        if isinstance(value, ZkSignerError.EthSignerError):\n            buf.write_i32(7)\n        if isinstance(value, ZkSignerError.StarkSignerError):\n            buf.write_i32(8)\n\n\n\nclass _UniffiConverterOptionalString(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        if value is None:\n            buf.write_u8(0)\n            return\n\n        buf.write_u8(1)\n        _UniffiConverterString.write(value, buf)\n\n    @classmethod\n    def read(cls, buf):\n        flag = buf.read_u8()\n        if flag == 0:\n            return None\n        elif flag == 1:\n            return _UniffiConverterString.read(buf)\n        else:\n            raise InternalError(\"Unexpected flag byte for optional type\")\n\n\n\nclass _UniffiConverterOptionalTypeZkLinkSignature(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        if value is None:\n            buf.write_u8(0)\n            return\n\n        buf.write_u8(1)\n        _UniffiConverterTypeZkLinkSignature.write(value, buf)\n\n    @classmethod\n    def read(cls, buf):\n        flag = buf.read_u8()\n        if flag == 0:\n            return None\n        elif flag == 1:\n            return _UniffiConverterTypeZkLinkSignature.read(buf)\n        else:\n            raise InternalError(\"Unexpected flag byte for optional type\")\n\n\n\nclass _UniffiConverterOptionalSequenceUInt8(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        if value is None:\n            buf.write_u8(0)\n            return\n\n        buf.write_u8(1)\n        _UniffiConverterSequenceUInt8.write(value, buf)\n\n    @classmethod\n    def read(cls, buf):\n        flag = buf.read_u8()\n        if flag == 0:\n            return None\n        elif flag == 1:\n            return _UniffiConverterSequenceUInt8.read(buf)\n        else:\n            raise InternalError(\"Unexpected flag byte for optional type\")\n\n\n\nclass _UniffiConverterOptionalTypeH256(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        if value is None:\n            buf.write_u8(0)\n            return\n\n        buf.write_u8(1)\n        _UniffiConverterTypeH256.write(value, buf)\n\n    @classmethod\n    def read(cls, buf):\n        flag = buf.read_u8()\n        if flag == 0:\n            return None\n        elif flag == 1:\n            return _UniffiConverterTypeH256.read(buf)\n        else:\n            raise InternalError(\"Unexpected flag byte for optional type\")\n\n\n\nclass _UniffiConverterOptionalTypePackedEthSignature(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        if value is None:\n            buf.write_u8(0)\n            return\n\n        buf.write_u8(1)\n        _UniffiConverterTypePackedEthSignature.write(value, buf)\n\n    @classmethod\n    def read(cls, buf):\n        flag = buf.read_u8()\n        if flag == 0:\n            return None\n        elif flag == 1:\n            return _UniffiConverterTypePackedEthSignature.read(buf)\n        else:\n            raise InternalError(\"Unexpected flag byte for optional type\")\n\n\n\nclass _UniffiConverterOptionalTypeTxLayer1Signature(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        if value is None:\n            buf.write_u8(0)\n            return\n\n        buf.write_u8(1)\n        _UniffiConverterTypeTxLayer1Signature.write(value, buf)\n\n    @classmethod\n    def read(cls, buf):\n        flag = buf.read_u8()\n        if flag == 0:\n            return None\n        elif flag == 1:\n            return _UniffiConverterTypeTxLayer1Signature.read(buf)\n        else:\n            raise InternalError(\"Unexpected flag byte for optional type\")\n\n\n\nclass _UniffiConverterSequenceUInt8(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        items = len(value)\n        buf.write_i32(items)\n        for item in value:\n            _UniffiConverterUInt8.write(item, buf)\n\n    @classmethod\n    def read(cls, buf):\n        count = buf.read_i32()\n        if count < 0:\n            raise InternalError(\"Unexpected negative sequence length\")\n\n        return [\n            _UniffiConverterUInt8.read(buf) for i in range(count)\n        ]\n\n\n\nclass _UniffiConverterSequenceTypeContract(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        items = len(value)\n        buf.write_i32(items)\n        for item in value:\n            _UniffiConverterTypeContract.write(item, buf)\n\n    @classmethod\n    def read(cls, buf):\n        count = buf.read_i32()\n        if count < 0:\n            raise InternalError(\"Unexpected negative sequence length\")\n\n        return [\n            _UniffiConverterTypeContract.read(buf) for i in range(count)\n        ]\n\n\n\nclass _UniffiConverterSequenceTypeContractPrice(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        items = len(value)\n        buf.write_i32(items)\n        for item in value:\n            _UniffiConverterTypeContractPrice.write(item, buf)\n\n    @classmethod\n    def read(cls, buf):\n        count = buf.read_i32()\n        if count < 0:\n            raise InternalError(\"Unexpected negative sequence length\")\n\n        return [\n            _UniffiConverterTypeContractPrice.read(buf) for i in range(count)\n        ]\n\n\n\nclass _UniffiConverterSequenceTypeFundingInfo(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        items = len(value)\n        buf.write_i32(items)\n        for item in value:\n            _UniffiConverterTypeFundingInfo.write(item, buf)\n\n    @classmethod\n    def read(cls, buf):\n        count = buf.read_i32()\n        if count < 0:\n            raise InternalError(\"Unexpected negative sequence length\")\n\n        return [\n            _UniffiConverterTypeFundingInfo.read(buf) for i in range(count)\n        ]\n\n\n\nclass _UniffiConverterSequenceTypeSpotPriceInfo(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        items = len(value)\n        buf.write_i32(items)\n        for item in value:\n            _UniffiConverterTypeSpotPriceInfo.write(item, buf)\n\n    @classmethod\n    def read(cls, buf):\n        count = buf.read_i32()\n        if count < 0:\n            raise InternalError(\"Unexpected negative sequence length\")\n\n        return [\n            _UniffiConverterTypeSpotPriceInfo.read(buf) for i in range(count)\n        ]\n\n\n\nclass _UniffiConverterSequenceTypeAccountId(_UniffiConverterRustBuffer):\n    @classmethod\n    def write(cls, value, buf):\n        items = len(value)\n        buf.write_i32(items)\n        for item in value:\n            _UniffiConverterTypeAccountId.write(item, buf)\n\n    @classmethod\n    def read(cls, buf):\n        count = buf.read_i32()\n        if count < 0:\n            raise InternalError(\"Unexpected negative sequence length\")\n\n        return [\n            _UniffiConverterTypeAccountId.read(buf) for i in range(count)\n        ]\n\n\n# Type alias\nAccountId = int\n\nclass _UniffiConverterTypeAccountId:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt32.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt32.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt32.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt32.lower(value)\n\n\n# Type alias\nAddress = str\n\nclass _UniffiConverterTypeAddress:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nBigUint = str\n\nclass _UniffiConverterTypeBigUint:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nBlockNumber = int\n\nclass _UniffiConverterTypeBlockNumber:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt32.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt32.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt32.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt32.lower(value)\n\n\n# Type alias\nChainId = int\n\nclass _UniffiConverterTypeChainId:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt8.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt8.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt8.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt8.lower(value)\n\n\n# Type alias\nEthBlockId = int\n\nclass _UniffiConverterTypeEthBlockId:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt64.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt64.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt64.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt64.lower(value)\n\n\n# Type alias\nH256 = str\n\nclass _UniffiConverterTypeH256:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nMarginId = int\n\nclass _UniffiConverterTypeMarginId:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt8.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt8.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt8.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt8.lower(value)\n\n\n# Type alias\nNonce = int\n\nclass _UniffiConverterTypeNonce:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt32.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt32.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt32.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt32.lower(value)\n\n\n# Type alias\nPackedEthSignature = str\n\nclass _UniffiConverterTypePackedEthSignature:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nPackedPublicKey = str\n\nclass _UniffiConverterTypePackedPublicKey:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nPackedSignature = str\n\nclass _UniffiConverterTypePackedSignature:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nPairId = int\n\nclass _UniffiConverterTypePairId:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt16.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt16.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt16.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt16.lower(value)\n\n\n# Type alias\nPriorityOpId = int\n\nclass _UniffiConverterTypePriorityOpId:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt64.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt64.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt64.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt64.lower(value)\n\n\n# Type alias\nPubKeyHash = str\n\nclass _UniffiConverterTypePubKeyHash:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nSlotId = int\n\nclass _UniffiConverterTypeSlotId:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt32.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt32.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt32.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt32.lower(value)\n\n\n# Type alias\nStarkEip712Signature = str\n\nclass _UniffiConverterTypeStarkEip712Signature:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nSubAccountId = int\n\nclass _UniffiConverterTypeSubAccountId:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt8.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt8.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt8.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt8.lower(value)\n\n\n# Type alias\nTimeStamp = int\n\nclass _UniffiConverterTypeTimeStamp:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt32.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt32.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt32.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt32.lower(value)\n\n\n# Type alias\nTokenId = int\n\nclass _UniffiConverterTypeTokenId:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterUInt32.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterUInt32.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterUInt32.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterUInt32.lower(value)\n\n\n# Type alias\nTxHash = str\n\nclass _UniffiConverterTypeTxHash:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nTxLayer1Signature = str\n\nclass _UniffiConverterTypeTxLayer1Signature:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nZkLinkAddress = str\n\nclass _UniffiConverterTypeZkLinkAddress:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\n\n# Type alias\nZkLinkTx = str\n\nclass _UniffiConverterTypeZkLinkTx:\n    @staticmethod\n    def write(value, buf):\n        _UniffiConverterString.write(value, buf)\n\n    @staticmethod\n    def read(buf):\n        return _UniffiConverterString.read(buf)\n\n    @staticmethod\n    def lift(value):\n        return _UniffiConverterString.lift(value)\n\n    @staticmethod\n    def lower(value):\n        return _UniffiConverterString.lower(value)\n\ndef create_signed_change_pubkey(zklink_signer: \"ZkLinkSigner\",tx: \"ChangePubKey\",eth_auth_data: \"ChangePubKeyAuthData\") -> \"ChangePubKey\":\n    \n    \n    \n    return _UniffiConverterTypeChangePubKey.lift(_rust_call_with_error(_UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_func_create_signed_change_pubkey,\n        _UniffiConverterTypeZkLinkSigner.lower(zklink_signer),\n        _UniffiConverterTypeChangePubKey.lower(tx),\n        _UniffiConverterTypeChangePubKeyAuthData.lower(eth_auth_data)))\n\n\ndef eth_signature_of_change_pubkey(tx: \"ChangePubKey\",eth_signer: \"EthSigner\") -> \"PackedEthSignature\":\n    \n    \n    return _UniffiConverterTypePackedEthSignature.lift(_rust_call_with_error(_UniffiConverterTypeSignError,_UniffiLib.uniffi_zklink_sdk_fn_func_eth_signature_of_change_pubkey,\n        _UniffiConverterTypeChangePubKey.lower(tx),\n        _UniffiConverterTypeEthSigner.lower(eth_signer)))\n\n\ndef get_public_key_hash(public_key: \"PackedPublicKey\") -> \"PubKeyHash\":\n    \n    return _UniffiConverterTypePubKeyHash.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_get_public_key_hash,\n        _UniffiConverterTypePackedPublicKey.lower(public_key)))\n\n\ndef verify_musig(signature: \"ZkLinkSignature\",msg: \"typing.List[int]\") -> \"bool\":\n    \n    \n    return _UniffiConverterBool.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_verify_musig,\n        _UniffiConverterTypeZkLinkSignature.lower(signature),\n        _UniffiConverterSequenceUInt8.lower(msg)))\n\n\ndef zklink_main_net_url() -> str:\n    return _UniffiConverterString.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_zklink_main_net_url,))\n\n\ndef zklink_test_net_url() -> str:\n    return _UniffiConverterString.lift(_rust_call(_UniffiLib.uniffi_zklink_sdk_fn_func_zklink_test_net_url,))\n\n\n__all__ = [\n    \"InternalError\",\n    \"ChangePubKeyAuthData\",\n    \"ChangePubKeyAuthRequest\",\n    \"EthSignerError\",\n    \"L1SignerType\",\n    \"L1Type\",\n    \"Parameter\",\n    \"SignError\",\n    \"StarkSignerError\",\n    \"TypeError\",\n    \"TypedDataMessage\",\n    \"ZkSignerError\",\n    \"AutoDeleveragingBuilder\",\n    \"ChangePubKeyBuilder\",\n    \"ContractBuilder\",\n    \"ContractMatchingBuilder\",\n    \"ContractPrice\",\n    \"Create2Data\",\n    \"DepositBuilder\",\n    \"ForcedExitBuilder\",\n    \"FullExitBuilder\",\n    \"FundingBuilder\",\n    \"FundingInfo\",\n    \"LiquidationBuilder\",\n    \"Message\",\n    \"OraclePrices\",\n    \"OrderMatchingBuilder\",\n    \"SpotPriceInfo\",\n    \"TransferBuilder\",\n    \"TxMessage\",\n    \"TxSignature\",\n    \"UpdateGlobalVarBuilder\",\n    \"WithdrawBuilder\",\n    \"ZkLinkSignature\",\n    \"create_signed_change_pubkey\",\n    \"eth_signature_of_change_pubkey\",\n    \"get_public_key_hash\",\n    \"verify_musig\",\n    \"zklink_main_net_url\",\n    \"zklink_test_net_url\",\n    \"AutoDeleveraging\",\n    \"ChangePubKey\",\n    \"Contract\",\n    \"ContractMatching\",\n    \"Deposit\",\n    \"EthSigner\",\n    \"ForcedExit\",\n    \"FullExit\",\n    \"Funding\",\n    \"Liquidation\",\n    \"Order\",\n    \"OrderMatching\",\n    \"Signer\",\n    \"StarkSigner\",\n    \"Transfer\",\n    \"TypedData\",\n    \"UpdateGlobalVar\",\n    \"Withdraw\",\n    \"ZkLinkSigner\",\n]\n\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Binance/BinanceMain.py",
    "content": "import requests\nimport jesse.helpers as jh\nfrom jesse.modes.import_candles_mode.drivers.interface import CandleExchange\nfrom typing import Union\nfrom .binance_utils import timeframe_to_interval\nimport time\nfrom requests.adapters import HTTPAdapter\nfrom urllib3.util.retry import Retry\n\n\nclass BinanceMain(CandleExchange):\n    def __init__(\n            self,\n            name: str,\n            rest_endpoint: str,\n            backup_exchange_class,\n    ) -> None:\n        super().__init__(\n            name=name,\n            count=1000,\n            rate_limit_per_second=2,\n            backup_exchange_class=backup_exchange_class\n        )\n\n        self.endpoint = rest_endpoint\n        # Setup session with retry strategy\n        self.session = requests.Session()\n        retries = Retry(\n            total=5,\n            backoff_factor=1,\n            status_forcelist=[500, 502, 503, 504],\n        )\n        self.session.mount('http://', HTTPAdapter(max_retries=retries))\n        self.session.mount('https://', HTTPAdapter(max_retries=retries))\n\n    def _make_request(self, url: str, params: dict = None) -> requests.Response:\n        max_retries = 3\n        retry_delay = 5\n\n        for attempt in range(max_retries):\n            try:\n                response = self.session.get(url, params=params, timeout=30)\n                return response\n            except (requests.exceptions.ConnectionError, OSError) as e:\n                if \"ERROR 451\" in str(e):\n                    raise Exception(\n                        \"Access to this exchange is restricted from your location (HTTP 451). \"\n                        \"This is likely due to geographic restrictions imposed by the exchange. \"\n                        \"You may need to use a VPN to change your IP address to a permitted location.\"\n                    )\n                if \"Cannot allocate memory\" in str(e):\n                    # Force garbage collection and wait\n                    import gc\n                    gc.collect()\n                    time.sleep(retry_delay * (attempt + 1))\n                    continue\n                raise e\n\n        raise Exception(f\"Failed to make request after {max_retries} attempts\")\n\n    def get_starting_time(self, symbol: str) -> int:\n        dashless_symbol = jh.dashless_symbol(symbol)\n\n        payload = {\n            'interval': '1w',\n            'symbol': dashless_symbol,\n            'limit': 1000,\n        }\n\n        response = self._make_request(\n            self.endpoint + self._prefix_address + 'klines',\n            params=payload\n        )\n\n        self.validate_response(response)\n\n        data = response.json()\n\n        # since the first timestamp doesn't include all the 1m\n        # candles, let's start since the second day then\n        first_timestamp = int(data[1][0])\n        return first_timestamp\n\n    def fetch(self, symbol: str, start_timestamp: int, timeframe: str = '1m') -> Union[list, None]:\n        end_timestamp = start_timestamp + (self.count - 1) * 60000 * jh.timeframe_to_one_minutes(timeframe)\n        interval = timeframe_to_interval(timeframe)\n        dashless_symbol = jh.dashless_symbol(symbol)\n\n        payload = {\n            'interval': interval,\n            'symbol': dashless_symbol,\n            'startTime': int(start_timestamp),\n            'endTime': int(end_timestamp),\n            'limit': self.count,\n        }\n\n        response = self._make_request(\n            self.endpoint + self._prefix_address + 'klines',\n            params=payload\n        )\n\n        self.validate_response(response)\n\n        data = response.json()\n        return [{\n            'id': jh.generate_unique_id(),\n            'exchange': self.name,\n            'symbol': symbol,\n            'timeframe': timeframe,\n            'timestamp': int(d[0]),\n            'open': float(d[1]),\n            'close': float(d[4]),\n            'high': float(d[2]),\n            'low': float(d[3]),\n            'volume': float(d[5])\n        } for d in data]\n\n    def get_available_symbols(self) -> list:\n        response = self._make_request(self.endpoint + self._prefix_address + 'exchangeInfo')\n\n        self.validate_response(response)\n\n        data = response.json()\n\n        return [jh.dashy_symbol(d['symbol']) for d in data['symbols']]\n\n    @property\n    def _prefix_address(self):\n        if self.name.startswith('Binance Perpetual Futures'):\n            return '/v1/'\n        return '/v3/'\n\n    def __del__(self):\n        \"\"\"Cleanup method to ensure proper session closure\"\"\"\n        if hasattr(self, 'session'):\n            self.session.close()\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Binance/BinancePerpetualFutures.py",
    "content": "from .BinanceMain import BinanceMain\nfrom jesse.enums import exchanges\n\n\nclass BinancePerpetualFutures(BinanceMain):\n    def __init__(self) -> None:\n        from .BinanceSpot import BinanceSpot\n\n        super().__init__(\n            name=exchanges.BINANCE_PERPETUAL_FUTURES,\n            rest_endpoint='https://fapi.binance.com/fapi',\n            backup_exchange_class=BinanceSpot\n        )\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Binance/BinancePerpetualFuturesTestnet.py",
    "content": "from .BinanceMain import BinanceMain\nfrom jesse.enums import exchanges\n\n\nclass BinancePerpetualFuturesTestnet(BinanceMain):\n    def __init__(self) -> None:\n        from .BinanceSpot import BinanceSpot\n\n        super().__init__(\n            name=exchanges.BINANCE_PERPETUAL_FUTURES_TESTNET,\n            rest_endpoint='https://testnet.binancefuture.com/fapi',\n            backup_exchange_class=BinanceSpot\n        )\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Binance/BinanceSpot.py",
    "content": "from .BinanceMain import BinanceMain\nfrom jesse.enums import exchanges\n\n\nclass BinanceSpot(BinanceMain):\n    def __init__(self) -> None:\n        super().__init__(\n            name=exchanges.BINANCE_SPOT,\n            rest_endpoint='https://api.binance.com/api',\n            backup_exchange_class=None\n        )\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Binance/BinanceUSSpot.py",
    "content": "from .BinanceMain import BinanceMain\nfrom jesse.enums import exchanges\n\n\nclass BinanceUSSpot(BinanceMain):\n    def __init__(self) -> None:\n        from .BinanceSpot import BinanceSpot\n\n        super().__init__(\n            name=exchanges.BINANCE_US_SPOT,\n            rest_endpoint='https://api.binance.us/api',\n            backup_exchange_class=BinanceSpot\n        )\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Binance/__init__.py",
    "content": ""
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Binance/binance_utils.py",
    "content": "from jesse.enums import timeframes\n\n\ndef timeframe_to_interval(timeframe: str) -> str:\n    # 1m\n    # 3m\n    # 5m\n    # 15m\n    # 30m\n    # 1h\n    # 2h\n    # 4h\n    # 6h\n    # 8h\n    # 12h\n    # 1d\n    # 3d\n    # 1w\n    # 1M\n    if timeframe == timeframes.MINUTE_1:\n        return '1m'\n    elif timeframe == timeframes.MINUTE_3:\n        return '3m'\n    elif timeframe == timeframes.MINUTE_5:\n        return '5m'\n    elif timeframe == timeframes.MINUTE_15:\n        return '15m'\n    elif timeframe == timeframes.MINUTE_30:\n        return '30m'\n    elif timeframe == timeframes.HOUR_1:\n        return '1h'\n    elif timeframe == timeframes.HOUR_2:\n        return '2h'\n    elif timeframe == timeframes.HOUR_4:\n        return '4h'\n    elif timeframe == timeframes.HOUR_6:\n        return '6h'\n    elif timeframe == timeframes.HOUR_8:\n        return '8h'\n    elif timeframe == timeframes.HOUR_12:\n        return '12h'\n    elif timeframe == timeframes.DAY_1:\n        return '1d'\n    elif timeframe == timeframes.DAY_3:\n        return '3d'\n    elif timeframe == timeframes.WEEK_1:\n        return '1w'\n    elif timeframe == timeframes.MONTH_1:\n        return '1M'\n    else:\n        raise ValueError('Invalid timeframe: {}'.format(timeframe))\n\n\ndef interval_to_timeframe(interval: str) -> str:\n    if interval == '1m':\n        return timeframes.MINUTE_1\n    elif interval == '3m':\n        return timeframes.MINUTE_3\n    elif interval == '5m':\n        return timeframes.MINUTE_5\n    elif interval == '15m':\n        return timeframes.MINUTE_15\n    elif interval == '30m':\n        return timeframes.MINUTE_30\n    elif interval == '1h':\n        return timeframes.HOUR_1\n    elif interval == '2h':\n        return timeframes.HOUR_2\n    elif interval == '4h':\n        return timeframes.HOUR_4\n    elif interval == '6h':\n        return timeframes.HOUR_6\n    elif interval == '8h':\n        return timeframes.HOUR_8\n    elif interval == '12h':\n        return timeframes.HOUR_12\n    elif interval == '1d':\n        return timeframes.DAY_1\n    elif interval == '3d':\n        return timeframes.DAY_3\n    elif interval == '1w':\n        return timeframes.WEEK_1\n    elif interval == '1M':\n        return timeframes.MONTH_1\n    else:\n        raise ValueError('Invalid interval: {}'.format(interval))\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Bitfinex/BitfinexSpot.py",
    "content": "import requests\nimport time\nfrom requests.exceptions import ConnectionError, RequestException\n\nimport jesse.helpers as jh\nfrom jesse import exceptions\nfrom jesse.modes.import_candles_mode.drivers.interface import CandleExchange\nfrom jesse.enums import exchanges\nfrom .bitfinex_utils import timeframe_to_interval\n\n\nclass BitfinexSpot(CandleExchange):\n    def __init__(self) -> None:\n        super().__init__(\n            name=exchanges.BITFINEX_SPOT,\n            count=1440,\n            rate_limit_per_second=1,\n            backup_exchange_class=None\n        )\n\n        self.endpoint = 'https://api-pub.bitfinex.com/v2/candles'\n        self.max_retries = 5\n        self.base_delay = 3  # Base delay in seconds\n\n    def _make_request(self, url: str, params: dict = None) -> requests.Response:\n        for attempt in range(self.max_retries):\n            try:\n                response = requests.get(url, params=params)\n                return response\n            except (ConnectionError, RequestException) as e:\n                if attempt == self.max_retries - 1:  # Last attempt\n                    raise e\n                \n                # Exponential backoff with jitter\n                delay = (self.base_delay * 2 ** attempt) + (jh.random_uniform(0, 1))\n                time.sleep(delay)\n\n    def get_starting_time(self, symbol: str) -> int:\n        dashless_symbol = jh.dashless_symbol(symbol)\n\n        # hard-code few common symbols\n        if symbol == 'BTC-USD':\n            return jh.date_to_timestamp('2015-08-01')\n        elif symbol == 'ETH-USD':\n            return jh.date_to_timestamp('2016-01-01')\n\n        payload = {\n            'sort': 1,\n            'limit': 5000,\n        }\n\n        response = self._make_request(f\"{self.endpoint}/trade:1D:t{dashless_symbol}/hist\", params=payload)\n\n        self.validate_response(response)\n\n        data = response.json()\n\n        # wrong symbol entered\n        if not len(data):\n            raise exceptions.SymbolNotFound(\n                f\"No candle exists for {symbol} in Bitfinex.\"\n            )\n\n        # since the first timestamp doesn't include all the 1m\n        # candles, let's start since the second day then\n        first_timestamp = int(data[0][0])\n        return first_timestamp + 60_000 * 1440\n\n    def fetch(self, symbol: str, start_timestamp: int, timeframe: str) -> list:\n        # since Bitfinex API skips candles with \"volume=0\", we have to send end_timestamp\n        # instead of limit. Therefore, we use limit number to calculate the end_timestamp\n        end_timestamp = start_timestamp + (self.count - 1) * 60000 * jh.timeframe_to_one_minutes(timeframe)\n        interval = timeframe_to_interval(timeframe)\n\n        payload = {\n            'start': start_timestamp,\n            'end': end_timestamp,\n            'limit': self.count,\n            'sort': 1\n        }\n\n        dashless_symbol = jh.dashless_symbol(symbol)\n\n        response = self._make_request(\n            f\"{self.endpoint}/trade:{interval}:t{dashless_symbol}/hist\",\n            params=payload\n        )\n\n        self.validate_response(response)\n\n        data = response.json()\n        return [{\n            'id': jh.generate_unique_id(),\n            'exchange': self.name,\n            'symbol': symbol,\n            'timeframe': timeframe,\n            'timestamp': d[0],\n            'open': d[1],\n            'close': d[2],\n            'high': d[3],\n            'low': d[4],\n            'volume': d[5]\n        } for d in data]\n\n    def get_available_symbols(self) -> list:\n        response = self._make_request('https://api-pub.bitfinex.com/v2/conf/pub:list:pair:exchange')\n        self.validate_response(response)\n        data = response.json()[0]\n        arr = []\n        for s in data:\n            symbol = s\n            # if has : like CELO:USD, remove the : and make it CELOUSD\n            if ':' in symbol:\n                symbol = symbol.replace(':', '')\n            arr.append(jh.dashy_symbol(symbol))\n\n        return arr\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Bitfinex/__init__.py",
    "content": ""
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Bitfinex/bitfinex_utils.py",
    "content": "from jesse.enums import timeframes\n\n\ndef timeframe_to_interval(timeframe: str) -> str:\n    if timeframe == timeframes.MINUTE_1:\n        return '1m'\n    elif timeframe == timeframes.MINUTE_5:\n        return '5m'\n    elif timeframe == timeframes.MINUTE_15:\n        return '15m'\n    elif timeframe == timeframes.MINUTE_30:\n        return '30m'\n    elif timeframe == timeframes.HOUR_1:\n        return '1h'\n    elif timeframe == timeframes.HOUR_3:\n        return '3h'\n    elif timeframe == timeframes.HOUR_6:\n        return '6h'\n    elif timeframe == timeframes.HOUR_12:\n        return '12h'\n    elif timeframe == timeframes.DAY_1:\n        return '1D'\n    elif timeframe == timeframes.WEEK_1:\n        return '1W'\n    elif timeframe == timeframes.MONTH_1:\n        return '1M'\n    else:\n        raise NotImplemented('Invalid timeframe: {}'.format(timeframe))\n\n\ndef interval_to_timeframe(interval: str) -> str:\n    if interval == '1m':\n        return timeframes.MINUTE_1\n    elif interval == '5m':\n        return timeframes.MINUTE_5\n    elif interval == '15m':\n        return timeframes.MINUTE_15\n    elif interval == '30m':\n        return timeframes.MINUTE_30\n    elif interval == '1h':\n        return timeframes.HOUR_1\n    elif interval == '3h':\n        return timeframes.HOUR_3\n    elif interval == '6h':\n        return timeframes.HOUR_6\n    elif interval == '12h':\n        return timeframes.HOUR_12\n    elif interval == '1D':\n        return timeframes.DAY_1\n    elif interval == '1W':\n        return timeframes.WEEK_1\n    elif interval == '1M':\n        return timeframes.MONTH_1\n    else:\n        raise NotImplemented('Invalid interval: {}'.format(interval))\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Bybit/BybitMain.py",
    "content": "import requests\nfrom requests.adapters import HTTPAdapter\nfrom urllib3.util.retry import Retry\nimport jesse.helpers as jh\nfrom jesse.modes.import_candles_mode.drivers.interface import CandleExchange\nfrom typing import Union\nfrom jesse import exceptions\nfrom .bybit_utils import timeframe_to_interval\n\n\nclass BybitMain(CandleExchange):\n    def __init__(self, name: str, rest_endpoint: str, category: str) -> None:\n        from jesse.modes.import_candles_mode.drivers.Binance.BinanceSpot import BinanceSpot\n\n        super().__init__(name=name, count=200, rate_limit_per_second=10, backup_exchange_class=BinanceSpot)\n        self.name = name\n        self.endpoint = rest_endpoint\n        self.category = category\n\n        # Setup session with retry strategy\n        self.session = requests.Session()\n        retries = Retry(\n            total=3,\n            backoff_factor=1,\n            status_forcelist=[408, 429, 500, 502, 503, 504],\n            allowed_methods=[\"HEAD\", \"GET\", \"POST\"]\n        )\n        self.session.mount('https://', HTTPAdapter(max_retries=retries, pool_maxsize=100))\n\n    def get_starting_time(self, symbol: str) -> int:\n        dashless_symbol = jh.dashless_symbol(symbol)\n        payload = {\n            'category': self.category,\n            'symbol': dashless_symbol,\n            'interval': 'W',\n            'limit': 200,\n            'start': 1514811660000\n        }\n\n        response = self.session.get(self.endpoint + '/v5/market/kline', params=payload, timeout=10)\n        self.validate_response(response)\n        data = response.json()['result']['list']\n        # Reverse the data list\n        data = data[::-1]\n        return int(data[1][0])\n\n    def fetch(self, symbol: str, start_timestamp: int, timeframe: str = '1m') -> Union[list, None]:\n        dashless_symbol = jh.dashless_symbol(symbol)\n        interval = timeframe_to_interval(timeframe)\n        payload = {\n            'category': self.category,\n            'symbol': dashless_symbol,\n            'interval': interval,\n            'start': int(start_timestamp),\n            'limit': self.count\n        }\n\n        response = self.session.get(self.endpoint + '/v5/market/kline', params=payload, timeout=10)\n\n        if response.json()['retMsg'] != 'OK':\n            raise exceptions.SymbolNotFound(response.json()['retMsg'])\n        data = response.json()['result']['list']\n        # Reverse the data list\n        data = data[::-1]\n\n        return [\n            {\n                'id': jh.generate_unique_id(),\n                'exchange': self.name,\n                'symbol': symbol,\n                'timeframe': timeframe,\n                'timestamp': int(d[0]),\n                'open': float(d[1]),\n                'close': float(d[4]),\n                'high': float(d[2]),\n                'low': float(d[3]),\n                'volume': float(d[5])\n            } for d in data\n        ]\n\n    def get_available_symbols(self) -> list:\n        response = self.session.get(self.endpoint + '/v5/market/instruments-info?limit=1000&category=' + self.category, timeout=10)\n        self.validate_response(response)\n        data = response.json()['result']['list']\n        return [jh.dashy_symbol(d['symbol']) for d in data]\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Bybit/BybitSpot.py",
    "content": "from .BybitMain import BybitMain\nfrom jesse.enums import exchanges\n\n\nclass BybitSpot(BybitMain):\n    def __init__(self) -> None:\n        super().__init__(\n            name=exchanges.BYBIT_SPOT,\n            rest_endpoint='https://api.bybit.com',\n            category='spot',\n        )\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Bybit/BybitSpotTestnet.py",
    "content": "from .BybitMain import BybitMain\nfrom jesse.enums import exchanges\n\n\nclass BybitSpotTestnet(BybitMain):\n    def __init__(self) -> None:\n        super().__init__(\n            name=exchanges.BYBIT_SPOT_TESTNET,\n            rest_endpoint='https://api-testnet.bybit.com',\n            category='spot',\n        )\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Bybit/BybitUSDCPerpetual.py",
    "content": "from .BybitMain import BybitMain\nfrom jesse.enums import exchanges\n\n\nclass BybitUSDCPerpetual(BybitMain):\n    def __init__(self) -> None:\n        super().__init__(\n            name=exchanges.BYBIT_USDC_PERPETUAL,\n            rest_endpoint='https://api.bybit.com',\n            category='linear',\n        )\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Bybit/BybitUSDCPerpetualTestnet.py",
    "content": "from .BybitMain import BybitMain\nfrom jesse.enums import exchanges\n\n\nclass BybitUSDCPerpetualTestnet(BybitMain):\n    def __init__(self) -> None:\n        super().__init__(\n            name=exchanges.BYBIT_USDC_PERPETUAL_TESTNET,\n            rest_endpoint='https://api-testnet.bybit.com',\n            category='linear',\n        )\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Bybit/BybitUSDTPerpetual.py",
    "content": "from .BybitMain import BybitMain\nfrom jesse.enums import exchanges\n\n\nclass BybitUSDTPerpetual(BybitMain):\n    def __init__(self) -> None:\n        super().__init__(\n            name=exchanges.BYBIT_USDT_PERPETUAL,\n            rest_endpoint='https://api.bybit.com',\n            category='linear',\n        )\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Bybit/BybitUSDTPerpetualTestnet.py",
    "content": "from .BybitMain import BybitMain\nfrom jesse.enums import exchanges\n\n\nclass BybitUSDTPerpetualTestnet(BybitMain):\n    def __init__(self) -> None:\n        super().__init__(\n            name=exchanges.BYBIT_USDT_PERPETUAL_TESTNET,\n            rest_endpoint='https://api-testnet.bybit.com',\n            category='linear',\n        )\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Bybit/__init__.py",
    "content": ""
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Bybit/bybit_utils.py",
    "content": "from jesse.enums import timeframes\n\n\ndef timeframe_to_interval(timeframe: str) -> str:\n    \"\"\"\n    Convert a timeframe string to an interval in seconds.\n    \"\"\"\n    if timeframe == timeframes.MINUTE_1:\n        return '1'\n    elif timeframe == timeframes.MINUTE_3:\n        return '3'\n    elif timeframe == timeframes.MINUTE_5:\n        return '5'\n    elif timeframe == timeframes.MINUTE_15:\n        return '15'\n    elif timeframe == timeframes.MINUTE_30:\n        return '30'\n    elif timeframe == timeframes.HOUR_1:\n        return '60'\n    elif timeframe == timeframes.HOUR_2:\n        return '120'\n    elif timeframe == timeframes.HOUR_4:\n        return '240'\n    elif timeframe == timeframes.HOUR_6:\n        return '360'\n    elif timeframe == timeframes.HOUR_12:\n        return '720'\n    elif timeframe == timeframes.DAY_1:\n        return 'D'\n    elif timeframe == timeframes.WEEK_1:\n        return 'W'\n    else:\n        raise ValueError('Invalid timeframe: {}'.format(timeframe))\n\n\ndef interval_to_timeframe(interval: str) -> str:\n    \"\"\"\n    Convert an interval in seconds to a timeframe string.\n    \"\"\"\n    if interval == '1':\n        return timeframes.MINUTE_1\n    elif interval == '3':\n        return timeframes.MINUTE_3\n    elif interval == '5':\n        return timeframes.MINUTE_5\n    elif interval == '15':\n        return timeframes.MINUTE_15\n    elif interval == '30':\n        return timeframes.MINUTE_30\n    elif interval == '60':\n        return timeframes.HOUR_1\n    elif interval == '120':\n        return timeframes.HOUR_2\n    elif interval == '240':\n        return timeframes.HOUR_4\n    elif interval == '360':\n        return timeframes.HOUR_6\n    elif interval == '720':\n        return timeframes.HOUR_12\n    elif interval == 'D':\n        return timeframes.DAY_1\n    elif interval == 'W':\n        return timeframes.WEEK_1\n    else:\n        raise ValueError('Invalid interval: {}'.format(interval))\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Coinbase/CoinbaseSpot.py",
    "content": "import requests\nimport jesse.helpers as jh\nfrom jesse.modes.import_candles_mode.drivers.interface import CandleExchange\nfrom jesse.enums import exchanges\nfrom .coinbase_utils import timeframe_to_interval\n\n\nclass CoinbaseSpot(CandleExchange):\n    def __init__(self) -> None:\n        super().__init__(\n            name=exchanges.COINBASE_SPOT,\n            count=300,\n            rate_limit_per_second=1.5,\n            backup_exchange_class=None\n        )\n\n        self.endpoint = 'https://api.coinbase.com/api/v3/brokerage/market/products'\n\n    def get_starting_time(self, symbol: str) -> int:\n        \"\"\"\n        Because Coinbase's API sucks and does not make this take easy for us,\n        we do it manually for as much symbol as we can!\n\n        :param symbol: str\n        :return: int\n        \"\"\"\n        if symbol == 'BTC-USD':\n            return 1438387200000\n        elif symbol == 'ETH-USD':\n            return 1464739200000\n        elif symbol == 'LTC-USD':\n            return 1477958400000\n\n        return None\n\n    def fetch(self, symbol: str, start_timestamp: int, timeframe: str) -> list:\n        \"\"\"\n        note1: unlike Bitfinex, Binance does NOT skip candles with volume=0.\n        note2: like Bitfinex, start_time includes the candle and so does the end_time.\n        \"\"\"\n        end_timestamp = start_timestamp + (self.count - 1) * 60000 * jh.timeframe_to_one_minutes(timeframe)\n\n        payload = {\n            'granularity': timeframe_to_interval(timeframe),\n            'start': int(start_timestamp / 1000),\n            'end': int(end_timestamp / 1000),\n        }\n\n        response = requests.get(\n            f\"{self.endpoint}/{symbol}/candles\",\n            params=payload\n        )\n\n        self.validate_response(response)\n\n        data = response.json()['candles']\n        data = data[::-1]\n        return [\n            {\n                'id': jh.generate_unique_id(),\n                'exchange': self.name,\n                'symbol': symbol,\n                'timeframe': timeframe,\n                'timestamp': int(d['start']) * 1000,\n                'open': float(d['open']),\n                'close': float(d['close']),\n                'high': float(d['high']),\n                'low': float(d['low']),\n                'volume': float(d['volume'])\n            } for d in data\n        ]\n\n    def get_available_symbols(self) -> list:\n        response = requests.get(self.endpoint)\n        self.validate_response(response)\n        data = response.json()['products']\n        available_symbols = []\n        for s in data:\n            if len(s['alias_to']) == 0:\n                available_symbols.append(s['product_id'])\n\n        return available_symbols\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Coinbase/__init__.py",
    "content": ""
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Coinbase/coinbase_utils.py",
    "content": "from jesse.enums import timeframes\n\n\ndef timeframe_to_interval(timeframe: str) -> str:\n    if timeframe == timeframes.MINUTE_1:\n        return 'ONE_MINUTE'\n    elif timeframe == timeframes.MINUTE_5:\n        return 'FIVE_MINUTE'\n    elif timeframe == timeframes.MINUTE_15:\n        return 'FIFTEEN_MINUTE'\n    elif timeframe == timeframes.MINUTE_30:\n        return 'THIRTEEN_MINUTE'\n    elif timeframe == timeframes.HOUR_1:\n        return 'ONE_HOUR'\n    elif timeframe == timeframes.HOUR_2:\n        return 'TWO_HOUR'\n    elif timeframe == timeframes.HOUR_6:\n        return 'SIX_HOUR'\n    elif timeframe == timeframes.DAY_1:\n        return 'ONE_DAY'\n    else:\n        raise NotImplemented('Invalid timeframe: {}'.format(timeframe))\n\n\ndef interval_to_timeframe(interval: str) -> str:\n    if interval == '60':\n        return timeframes.MINUTE_1\n    else:\n        raise NotImplemented('Invalid interval: {}'.format(interval))\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Gate/GateSpot.py",
    "content": "from .GateSpotMain import GateSpotMain\nfrom jesse.enums import exchanges\n\n\nclass GateSpot(GateSpotMain):\n    def __init__(self) -> None:\n        super().__init__(\n            name=exchanges.GATE_SPOT,\n            rest_endpoint='https://api.gateio.ws/api/v4/spot'\n        )\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Gate/GateSpotMain.py",
    "content": "import requests\nimport jesse.helpers as jh\nfrom jesse.modes.import_candles_mode.drivers.interface import CandleExchange\nfrom typing import Union\nfrom jesse import exceptions\nfrom .gate_utils import timeframe_to_interval\n\n\nclass GateSpotMain(CandleExchange):\n    def __init__(self, name: str, rest_endpoint: str) -> None:\n        super().__init__(name=name, count=200, rate_limit_per_second=10, backup_exchange_class=None)\n        self.name = name\n        self.limit = 1000\n        self.endpoint = rest_endpoint\n\n    def get_starting_time(self, symbol: str) -> int:\n        symbol = jh.dashy_to_underline(symbol)\n        payload = {\n            'contract': symbol,\n            'interval': '1w',\n            'limit': 1000,\n            'from': 1514811660\n        }\n\n        response = requests.get(f\"{self.endpoint}/candlesticks\", params=payload)\n        self.validate_response(response)\n\n        if response.json() == []:\n            raise exceptions.InvalidSymbol('Exchange does not support the entered symbol. Please enter a valid symbol.')\n\n        data = response.json()\n        # Reverse the data list\n\n        return int(data[0]['t'])\n\n    def fetch(self, symbol: str, start_timestamp: int, timeframe: str = '1m') -> Union[list, None]:\n        symbol = jh.dashy_to_underline(symbol)\n        end_timestamp = start_timestamp + (self.limit - 1) * 60000 * jh.timeframe_to_one_minutes(timeframe)\n        interval = timeframe_to_interval(timeframe)\n\n        payload = {\n            'currency_pair': symbol,\n            'interval': interval,\n            'from': int(start_timestamp / 1000),\n            'to': int(end_timestamp / 1000),\n        }\n\n        response = requests.get(f\"{self.endpoint}/candlesticks\", params=payload)\n        self.validate_response(response)\n\n        if response.json() == []:\n            raise exceptions.InvalidSymbol('Exchange does not support the entered symbol. Please enter a valid symbol.')\n\n        data = []\n        for d in response.json():\n            data.append({\n                'id': jh.generate_unique_id(),\n                'exchange': self.name,\n                'symbol': jh.underline_to_dashy_symbol(symbol),\n                'timeframe': timeframe,\n                'timestamp': int(d[0]) * 1000,\n                'open': float(d[5]),\n                'close': float(d[2]),\n                'high': float(d[3]),\n                'low': float(d[4]),\n                'volume': float(d[1])\n            })\n        return data\n\n    def get_available_symbols(self) -> list:\n        pairs = []\n        response = requests.get(f\"{self.endpoint}/currency_pairs\")\n        self.validate_response(response)\n        data = response.json()\n\n        for p in data:\n            pairs.append(jh.underline_to_dashy_symbol(p['id']))\n\n        return pairs\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Gate/GateUSDTMain.py",
    "content": "import requests\nimport jesse.helpers as jh\nfrom jesse.modes.import_candles_mode.drivers.interface import CandleExchange\nfrom typing import Union\nfrom jesse import exceptions\nfrom .gate_utils import timeframe_to_interval\nimport time\nfrom requests.adapters import HTTPAdapter\nfrom urllib3.util.retry import Retry\n\n\nclass GateUSDTMain(CandleExchange):\n    def __init__(self, name: str, rest_endpoint: str) -> None:\n        super().__init__(name=name, count=200, rate_limit_per_second=10, backup_exchange_class=None)\n        self.name = name\n        self.limit = 2000\n        self.endpoint = rest_endpoint\n        \n        # Setup session with retries\n        self.session = requests.Session()\n        retries = Retry(\n            total=3,\n            backoff_factor=1,\n            status_forcelist=[500, 502, 503, 504]\n        )\n        self.session.mount('https://', HTTPAdapter(max_retries=retries))\n\n    def get_starting_time(self, symbol: str) -> int:\n        symbol = jh.dashy_to_underline(symbol)\n        payload = {\n            'contract': symbol,\n            'interval': '1w',\n            'limit': 1000,\n            'from': 1514811660\n        }\n\n        response = requests.get(f\"{self.endpoint}/usdt/candlesticks\", params=payload)\n        self.validate_response(response)\n\n        if response.json() == []:\n            raise exceptions.InvalidSymbol('Exchange does not support the entered symbol. Please enter a valid symbol.')\n\n        data = response.json()\n        # Reverse the data list\n\n        return int(data[0]['t'])\n\n    def fetch(self, symbol: str, start_timestamp: int, timeframe: str = '1m') -> Union[list, None]:\n        symbol = jh.dashy_to_underline(symbol)\n        end_timestamp = start_timestamp + (self.limit - 1) * 60000 * jh.timeframe_to_one_minutes(timeframe)\n        interval = timeframe_to_interval(timeframe)\n\n        payload = {\n            'contract': symbol,\n            'interval': interval,\n            'from': int(start_timestamp / 1000),\n            'to': int(end_timestamp / 1000),\n        }\n\n        max_retries = 3\n        retry_delay = 5  # seconds\n\n        for attempt in range(max_retries):\n            try:\n                response = self.session.get(\n                    f\"{self.endpoint}/usdt/candlesticks\", \n                    params=payload, \n                    timeout=30\n                )\n                self.validate_response(response)\n                break\n            except (requests.exceptions.ConnectionError, requests.exceptions.Timeout) as e:\n                if attempt == max_retries - 1:\n                    raise\n                time.sleep(retry_delay)\n                retry_delay *= 2  # Exponential backoff\n\n        if response.json() == []:\n            raise exceptions.InvalidSymbol('Exchange does not support the entered symbol. Please enter a valid symbol.')\n\n        data = []\n        for d in response.json():\n            data.append({\n                'id': jh.generate_unique_id(),\n                'exchange': self.name,\n                'symbol': jh.underline_to_dashy_symbol(symbol),\n                'timeframe': timeframe,\n                'timestamp': int(d['t']) * 1000,\n                'open': float(d['o']),\n                'close': float(d['c']),\n                'high': float(d['h']),\n                'low': float(d['l']),\n                'volume': float(d['v'])\n            })\n        return data\n\n    def get_available_symbols(self) -> list:\n        pairs = []\n        response = requests.get(f\"{self.endpoint}/usdt/contracts\")\n        self.validate_response(response)\n        data = response.json()\n        for p in data:\n            pairs.append(jh.underline_to_dashy_symbol(p['name']))\n\n        return pairs\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Gate/GateUSDTPerpetual.py",
    "content": "from .GateUSDTMain import GateUSDTMain\nfrom jesse.enums import exchanges\n\n\nclass GateUSDTPerpetual(GateUSDTMain):\n    def __init__(self) -> None:\n        super().__init__(\n            name=exchanges.GATE_USDT_PERPETUAL,\n            rest_endpoint='https://api.gateio.ws/api/v4/futures'\n        )\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Gate/__init__.py",
    "content": ""
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Gate/gate_utils.py",
    "content": "from jesse.enums import timeframes\n\n\ndef timeframe_to_interval(timeframe: str) -> str:\n    \"\"\"\n    Convert a timeframe string to an interval in seconds.\n    \"\"\"\n    if timeframe == timeframes.MINUTE_1:\n        return '1m'\n    elif timeframe == timeframes.MINUTE_5:\n        return '5m'\n    elif timeframe == timeframes.MINUTE_15:\n        return '15m'\n    elif timeframe == timeframes.MINUTE_30:\n        return '30m'\n    elif timeframe == timeframes.HOUR_1:\n        return '1h'\n    elif timeframe == timeframes.HOUR_2:\n        return '2h'\n    elif timeframe == timeframes.HOUR_4:\n        return '4h'\n    elif timeframe == timeframes.HOUR_6:\n        return '6h'\n    elif timeframe == timeframes.HOUR_8:\n        return '8h'\n    elif timeframe == timeframes.HOUR_12:\n        return '12h'\n    elif timeframe == timeframes.DAY_1:\n        return '1d'\n    elif timeframe == timeframes.WEEK_1:\n        return '1w'\n    else:\n        raise ValueError('Invalid timeframe: {}'.format(timeframe))\n\n\ndef interval_to_timeframe(interval: str) -> str:\n    \"\"\"\n    Convert an interval in seconds to a timeframe string.\n    \"\"\"\n    if interval == '1m':\n        return timeframes.MINUTE_1\n    elif interval == '5m':\n        return timeframes.MINUTE_5\n    elif interval == '15m':\n        return timeframes.MINUTE_15\n    elif interval == '30m':\n        return timeframes.MINUTE_30\n    elif interval == '1h':\n        return timeframes.HOUR_1\n    elif interval == '2h':\n        return timeframes.HOUR_2\n    elif interval == '4h':\n        return timeframes.HOUR_4\n    elif interval == '6h':\n        return timeframes.HOUR_6\n    elif interval == '8h':\n        return timeframes.HOUR_8\n    elif interval == '12h':\n        return timeframes.HOUR_12\n    elif interval == '1d':\n        return timeframes.DAY_1\n    elif interval == '1w':\n        return timeframes.WEEK_1\n    else:\n        raise ValueError('Invalid interval: {}'.format(interval))\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Hyperliquid/HyperliquidPerpetual.py",
    "content": "from .HyperliquidPerpetualMain import HyperliquidPerpetualMain\nfrom jesse.enums import exchanges\n\n\nclass HyperliquidPerpetual(HyperliquidPerpetualMain):\n    def __init__(self) -> None:\n        super().__init__(\n            name=exchanges.HYPERLIQUID_PERPETUAL,\n            rest_endpoint='https://api.hyperliquid.xyz/info'\n        )\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Hyperliquid/HyperliquidPerpetualMain.py",
    "content": "import requests\nimport jesse.helpers as jh\nfrom jesse.modes.import_candles_mode.drivers.interface import CandleExchange\nfrom typing import Union\nfrom .hyperliquid_utils import timeframe_to_interval\n\n\nclass HyperliquidPerpetualMain(CandleExchange):\n    def __init__(self, name: str, rest_endpoint: str) -> None:\n        from jesse.modes.import_candles_mode.drivers.Binance.BinanceSpot import BinanceSpot\n\n        super().__init__(name=name, count=5000, rate_limit_per_second=10, backup_exchange_class=BinanceSpot)\n        self.name = name\n        self.endpoint = rest_endpoint\n\n    def get_starting_time(self, symbol: str) -> int:\n        base_symbol = jh.get_base_asset(symbol)\n        payload = {\n            'type': 'candleSnapshot',\n            'req': {\n                'coin': base_symbol,\n                'interval': 'W',\n                'startTime': 1514811660\n            }\n        }\n        headers = {\n            'Content-Type': 'application/json',\n        }\n\n        response = requests.post(self.endpoint, json=payload, headers=headers)\n        data = response.json()\n        # Reverse the data list\n        data = data[::-1]\n\n        return int(data[1]['t'])\n\n    def fetch(self, symbol: str, start_timestamp: int, timeframe: str = '1m') -> Union[list, None]:\n        base_symbol = jh.get_base_asset(symbol)\n        interval = timeframe_to_interval(timeframe)\n        payload = {\n            'type': 'candleSnapshot',\n            'req': {\n                'coin': base_symbol,\n                'interval': interval,\n                'startTime': int(start_timestamp)\n            }\n        }\n\n        headers = {\n            'Content-Type': 'application/json',\n        }\n        response = requests.post(self.endpoint, json=payload, headers=headers)\n        self.validate_response(response)\n\n        data = response.json()\n\n        return [\n            {\n                'id': jh.generate_unique_id(),\n                'exchange': self.name,\n                'symbol': symbol,\n                'timeframe': timeframe,\n                'timestamp': int(d['t']),\n                'open': float(d['o']),\n                'close': float(d['c']),\n                'high': float(d['h']),\n                'low': float(d['l']),\n                'volume': float(d['v'])\n            } for d in data\n        ]\n\n    def get_available_symbols(self) -> list:\n        response = requests.post(self.endpoint, json={'type': 'meta'})\n        self.validate_response(response)\n        data = response.json()['universe']\n        pairs = []\n        for item in data:\n            pairs.append(item['name'] + '-USD')\n\n        return list(sorted(pairs))\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Hyperliquid/HyperliquidPerpetualTestnet.py",
    "content": "from .HyperliquidPerpetualMain import HyperliquidPerpetualMain\nfrom jesse.enums import exchanges\n\n\nclass HyperliquidPerpetualTestnet(HyperliquidPerpetualMain):\n    def __init__(self) -> None:\n        super().__init__(\n            name=exchanges.HYPERLIQUID_PERPETUAL_TESTNET,\n            rest_endpoint='https://api.hyperliquid-testnet.xyz/info'\n        )\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Hyperliquid/__init__.py",
    "content": "# Hyperliquid drivers\nfrom .HyperliquidPerpetual import HyperliquidPerpetual\nfrom .HyperliquidPerpetualTestnet import HyperliquidPerpetualTestnet\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/Hyperliquid/hyperliquid_utils.py",
    "content": "from jesse.enums import timeframes\n\n\ndef timeframe_to_interval(timeframe: str) -> str:\n    \"\"\"\n    Convert a timeframe string to an interval in seconds.\n    \"\"\"\n    if timeframe == timeframes.MINUTE_1:\n        return '1m'\n    elif timeframe == timeframes.MINUTE_3:\n        return '3m'\n    elif timeframe == timeframes.MINUTE_5:\n        return '5m'\n    elif timeframe == timeframes.MINUTE_15:\n        return '15m'\n    elif timeframe == timeframes.MINUTE_30:\n        return '30m'\n    elif timeframe == timeframes.HOUR_1:\n        return '1h'\n    elif timeframe == timeframes.HOUR_2:\n        return '2h'\n    elif timeframe == timeframes.HOUR_4:\n        return '4h'\n    elif timeframe == timeframes.HOUR_6:\n        return '6h'\n    elif timeframe == timeframes.HOUR_8:\n        return '8h'\n    elif timeframe == timeframes.HOUR_12:\n        return '12h'\n    elif timeframe == timeframes.DAY_1:\n        return '1d'\n    elif timeframe == timeframes.DAY_3:\n        return '3d'\n    elif timeframe == timeframes.WEEK_1:\n        return '1w'\n    else:\n        raise ValueError('Invalid timeframe: {}'.format(timeframe))\n\n\ndef interval_to_timeframe(interval: str) -> str:\n    \"\"\"\n    Convert an interval in seconds to a timeframe string.\n    \"\"\"\n    if interval == '1':\n        return timeframes.MINUTE_1\n    elif interval == '3':\n        return timeframes.MINUTE_3\n    elif interval == '5':\n        return timeframes.MINUTE_5\n    elif interval == '15':\n        return timeframes.MINUTE_15\n    elif interval == '30':\n        return timeframes.MINUTE_30\n    elif interval == '60':\n        return timeframes.HOUR_1\n    elif interval == '120':\n        return timeframes.HOUR_2\n    elif interval == '240':\n        return timeframes.HOUR_4\n    elif interval == '360':\n        return timeframes.HOUR_6\n    elif interval == '480':\n        return timeframes.HOUR_8\n    elif interval == '720':\n        return timeframes.HOUR_12\n    elif interval == 'D':\n        return timeframes.DAY_1\n    elif interval == 'W':\n        return timeframes.WEEK_1\n    else:\n        raise ValueError('Invalid interval: {}'.format(interval))\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/__init__.py",
    "content": "from jesse.enums import exchanges\nfrom jesse.modes.import_candles_mode.drivers.Binance.BinanceSpot import BinanceSpot\nfrom jesse.modes.import_candles_mode.drivers.Binance.BinanceUSSpot import BinanceUSSpot\nfrom jesse.modes.import_candles_mode.drivers.Binance.BinancePerpetualFutures import BinancePerpetualFutures\nfrom jesse.modes.import_candles_mode.drivers.Bitfinex.BitfinexSpot import BitfinexSpot\nfrom jesse.modes.import_candles_mode.drivers.Coinbase.CoinbaseSpot import CoinbaseSpot\nfrom jesse.modes.import_candles_mode.drivers.Binance.BinancePerpetualFuturesTestnet import BinancePerpetualFuturesTestnet\nfrom jesse.modes.import_candles_mode.drivers.Bybit.BybitUSDTPerpetual import BybitUSDTPerpetual\nfrom jesse.modes.import_candles_mode.drivers.Bybit.BybitUSDTPerpetualTestnet import BybitUSDTPerpetualTestnet\nfrom jesse.modes.import_candles_mode.drivers.Bybit.BybitUSDCPerpetual import BybitUSDCPerpetual\nfrom jesse.modes.import_candles_mode.drivers.Bybit.BybitUSDCPerpetualTestnet import BybitUSDCPerpetualTestnet\nfrom jesse.modes.import_candles_mode.drivers.Bybit.BybitSpotTestnet import BybitSpotTestnet\nfrom jesse.modes.import_candles_mode.drivers.Bybit.BybitSpot import BybitSpot\nfrom jesse.modes.import_candles_mode.drivers.Apex.ApexOmniPerpetualTestnet import ApexOmniPerpetualTestnet\nfrom jesse.modes.import_candles_mode.drivers.Apex.ApexOmniPerpetual import ApexOmniPerpetual\nfrom jesse.modes.import_candles_mode.drivers.Gate.GateUSDTPerpetual import GateUSDTPerpetual\nfrom jesse.modes.import_candles_mode.drivers.Gate.GateSpot import GateSpot\nfrom jesse.modes.import_candles_mode.drivers.Hyperliquid.HyperliquidPerpetual import HyperliquidPerpetual\nfrom jesse.modes.import_candles_mode.drivers.Hyperliquid.HyperliquidPerpetualTestnet import HyperliquidPerpetualTestnet\n\n\ndrivers = {\n    # Perpetual Futures\n    exchanges.BINANCE_PERPETUAL_FUTURES: BinancePerpetualFutures,\n    exchanges.BINANCE_PERPETUAL_FUTURES_TESTNET: BinancePerpetualFuturesTestnet,\n    exchanges.BITFINEX_SPOT: BitfinexSpot,\n    exchanges.COINBASE_SPOT: CoinbaseSpot,\n    exchanges.BYBIT_USDT_PERPETUAL: BybitUSDTPerpetual,\n    exchanges.BYBIT_USDT_PERPETUAL_TESTNET: BybitUSDTPerpetualTestnet,\n    exchanges.BYBIT_USDC_PERPETUAL: BybitUSDCPerpetual,\n    exchanges.BYBIT_USDC_PERPETUAL_TESTNET: BybitUSDCPerpetualTestnet,\n    exchanges.APEX_OMNI_PERPETUAL_TESTNET: ApexOmniPerpetualTestnet,\n    exchanges.APEX_OMNI_PERPETUAL: ApexOmniPerpetual,\n    exchanges.GATE_USDT_PERPETUAL: GateUSDTPerpetual,\n    exchanges.GATE_SPOT: GateSpot,\n    exchanges.HYPERLIQUID_PERPETUAL: HyperliquidPerpetual,\n    exchanges.HYPERLIQUID_PERPETUAL_TESTNET: HyperliquidPerpetualTestnet,\n    # Spot\n    exchanges.BINANCE_SPOT: BinanceSpot,\n    exchanges.BINANCE_US_SPOT: BinanceUSSpot,\n    exchanges.BYBIT_SPOT_TESTNET: BybitSpotTestnet,\n    exchanges.BYBIT_SPOT: BybitSpot,\n}\n\n\ndriver_names = list(drivers.keys())\n"
  },
  {
    "path": "jesse/modes/import_candles_mode/drivers/interface.py",
    "content": "from abc import ABC, abstractmethod\nimport requests\nfrom jesse import exceptions\n\n\nclass CandleExchange(ABC):\n    def __init__(self, name: str, count: int, rate_limit_per_second: float, backup_exchange_class):\n        self.name = name\n        self.count = count\n        self.sleep_time = 1 / rate_limit_per_second\n        self._backup_exchange_class = backup_exchange_class\n        self._backup_exchange = None\n\n    @property\n    def backup_exchange(self):\n        if self._backup_exchange_class is None:\n            return None\n\n        if self._backup_exchange is None:\n            self._backup_exchange = self._backup_exchange_class()\n\n        return self._backup_exchange\n\n    @abstractmethod\n    def fetch(self, symbol: str, start_timestamp: int, timeframe: str) -> list:\n        pass\n\n    @abstractmethod\n    def get_starting_time(self, symbol: str) -> int:\n        pass\n\n    @abstractmethod\n    def get_available_symbols(self) -> list:\n        pass\n\n    @staticmethod\n    def validate_response(response: requests.Response) -> None:\n        if response.status_code == 502:\n            raise exceptions.ExchangeInMaintenance('ERROR: 502 Bad Gateway. Please try again later')\n        elif response.status_code // 100 == 5:\n            raise ConnectionError('ERROR: {} {}'.format(response.status_code, response.reason))\n\n        # unsupported inputs\n        if response.status_code == 400:\n            raise ValueError(response.content)\n\n        # unsupported inputs\n        if response.status_code == 404:\n            raise ValueError(f'ERROR {response.status_code} {response.reason}. Check the symbol')\n\n        # if the response code is not in the 200-299, raise an exception\n        if response.status_code // 100 != 2:\n            raise ConnectionError(f'ERROR {response.status_code} {response.reason}')\n"
  },
  {
    "path": "jesse/modes/monte_carlo_mode/MonteCarloRunner.py",
    "content": "from datetime import timedelta\nfrom multiprocessing import cpu_count\nfrom typing import Dict, List, Optional\nimport os\nimport ray\nimport numpy as np\nimport jesse.helpers as jh\nimport jesse.services.logger as logger\nfrom jesse import exceptions\nfrom jesse.services.redis import sync_publish, is_process_active\nfrom jesse.services.progressbar import Progressbar\nfrom jesse.research.monte_carlo import (\n    monte_carlo_trades,\n    monte_carlo_candles,\n    GaussianNoiseCandlesPipeline,\n    MovingBlockBootstrapCandlesPipeline\n)\nfrom jesse.models.MonteCarloSession import (\n    update_monte_carlo_session_status,\n    store_trades_session,\n    update_trades_session_progress,\n    update_trades_session_status,\n    store_candles_session,\n    update_candles_session_progress,\n    update_candles_session_status,\n    store_session_exception,\n    append_session_logs,\n    get_monte_carlo_session_by_id\n)\nimport traceback\n\n\nclass MonteCarloRunner:\n    def __init__(\n        self,\n        session_id: str,\n        user_config: dict,\n        routes: List[Dict[str, str]],\n        data_routes: List[Dict[str, str]],\n        candles: dict,\n        warmup_candles: dict,\n        run_trades: bool,\n        run_candles: bool,\n        num_scenarios: int,\n        fast_mode: bool,\n        cpu_cores: int,\n        pipeline_type: Optional[str],\n        pipeline_params: Optional[dict],\n    ):\n        if jh.python_version() == (3, 13):\n            raise ValueError(\n                'Monte Carlo mode is not supported on Python 3.13. The Ray library does not support Python 3.13 yet. Please use Python 3.12 or lower.')\n\n        self.session_id = session_id\n        self.user_config = user_config\n        self.routes = routes\n        self.data_routes = data_routes\n        self.candles = candles\n        self.warmup_candles = warmup_candles\n        self.run_trades = run_trades\n        self.run_candles = run_candles\n        self.num_scenarios = num_scenarios\n        self.fast_mode = fast_mode\n        self.pipeline_type = pipeline_type\n        self.pipeline_params = pipeline_params or {}\n\n        # Validate and set CPU cores\n        if cpu_cores < 1:\n            raise ValueError('cpu_cores must be an integer value greater than 0.')\n        available = cpu_count()\n        self.cpu_cores = cpu_cores if cpu_cores <= available else available\n\n        self.start_time = jh.now_to_timestamp()\n        \n        # Create progress bar for tracking\n        self.progressbar = Progressbar(num_scenarios)\n\n        # Initialize Ray if not already\n        self.ray_started_here = False\n        if not ray.is_initialized():\n            try:\n                ray.init(num_cpus=self.cpu_cores, ignore_reinit_error=True)\n                logger.log_monte_carlo(f\"Successfully started Monte Carlo session with {self.cpu_cores} CPU cores\", session_id=self.session_id)\n                self.ray_started_here = True\n            except Exception as e:\n                logger.log_monte_carlo(f\"Error initializing Ray: {e}. Falling back to 1 CPU.\", session_id=self.session_id)\n                self.cpu_cores = 1\n                ray.init(num_cpus=1, ignore_reinit_error=True)\n                self.ray_started_here = True\n\n        # Setup periodic termination check\n        client_id = jh.get_session_id()\n        from timeloop import Timeloop\n        self.tl = Timeloop()\n\n        @self.tl.job(interval=timedelta(seconds=1))\n        def check_for_termination():\n            if is_process_active(client_id) is False:\n                # Update session status to 'stopped' in the database\n                if get_monte_carlo_session_by_id(self.session_id).status != 'terminated':\n                    update_monte_carlo_session_status(self.session_id, 'stopped')\n                raise exceptions.Termination\n        \n        self.tl.start()\n\n        # Track session IDs\n        self.trades_session_id = None\n        self.candles_session_id = None\n\n    def run(self) -> None:\n        logger.log_monte_carlo(f\"Monte Carlo session started with {self.cpu_cores} CPU cores\", session_id=self.session_id)\n        logger.log_monte_carlo(f\"Run trades: {self.run_trades}, Run candles: {self.run_candles}\", session_id=self.session_id)\n\n        try:\n            # Publish general info\n            self._publish_general_info()\n\n            # Run trades first (faster)\n            if self.run_trades:\n                logger.log_monte_carlo(\"Starting trades simulation...\", session_id=self.session_id)\n                self._run_trades_simulation()\n                logger.log_monte_carlo(\"Trades simulation completed\", session_id=self.session_id)\n\n            # Then run candles\n            if self.run_candles:\n                logger.log_monte_carlo(\"Starting candles simulation...\", session_id=self.session_id)\n                self._run_candles_simulation()\n                logger.log_monte_carlo(\"Candles simulation completed\", session_id=self.session_id)\n\n            # Update parent session status to 'finished'\n            update_monte_carlo_session_status(self.session_id, 'finished')\n\n            # Publish completion alert\n            sync_publish('alert', {\n                'message': f\"Monte Carlo simulation completed successfully!\",\n                'type': 'success'\n            })\n\n        except exceptions.Termination:\n            logger.log_monte_carlo(\"Monte Carlo simulation terminated by user\", session_id=self.session_id)\n            update_monte_carlo_session_status(self.session_id, 'stopped')\n            raise\n        except Exception as e:\n            error_traceback = traceback.format_exc()\n            error_type = type(e).__name__\n            logger.log_monte_carlo(f\"ERROR: Monte Carlo simulation failed with {error_type}: {str(e)}\", session_id=self.session_id)\n            logger.log_monte_carlo(f\"Traceback:\\n{error_traceback}\", session_id=self.session_id)\n            update_monte_carlo_session_status(self.session_id, 'stopped')\n            \n            # Store exception in the appropriate child session\n            if self.trades_session_id and not self.candles_session_id:\n                store_session_exception(self.trades_session_id, 'trades', str(e), error_traceback)\n            elif self.candles_session_id:\n                store_session_exception(self.candles_session_id, 'candles', str(e), error_traceback)\n            \n            # Publish exception to frontend\n            sync_publish('exception', {\n                'error': str(e),\n                'traceback': error_traceback\n            })\n            \n            raise\n        finally:\n            if self.ray_started_here and ray.is_initialized():\n                ray.shutdown()\n\n    def _publish_general_info(self):\n        general_info = {\n            'started_at': jh.timestamp_to_arrow(self.start_time).humanize(),\n            'run_trades': self.run_trades,\n            'run_candles': self.run_candles,\n            'num_scenarios': self.num_scenarios,\n            'exchange_type': self.user_config['exchange']['type'],\n            'leverage_mode': self.user_config['exchange'].get('futures_leverage_mode', 'N/A'),\n            'leverage': self.user_config['exchange'].get('futures_leverage', 'N/A'),\n            'cpu_cores': self.cpu_cores,\n        }\n        sync_publish('general_info', general_info)\n\n    def _run_trades_simulation(self):\n        # Create trades child session in DB\n        self.trades_session_id = store_trades_session(\n            parent_id=self.session_id,\n            num_scenarios=self.num_scenarios\n        )\n\n        # Publish initial progress for trades\n        sync_publish('trades_progressbar', {\n            'current': 0,\n            'total': self.num_scenarios,\n            'estimated_remaining_seconds': 0\n        })\n\n        # Prepare config - flatten the structure from settings\n        config = {\n            'starting_balance': self.user_config.get('starting_balance', 10000),\n            'fee': self.user_config.get('fee', 0.0005),\n            'type': self.user_config.get('exchange', {}).get('type', 'futures'),\n            'futures_leverage': self.user_config.get('exchange', {}).get('futures_leverage', 1),\n            'futures_leverage_mode': self.user_config.get('exchange', {}).get('futures_leverage_mode', 'cross'),\n            'warm_up_candles': self.user_config.get('warm_up_candles', 210),\n            'exchange': self.routes[0]['exchange']\n        }\n\n        try:\n            # Call monte_carlo_trades from research module with progress tracking\n            results = self._run_trades_with_progress(config)\n\n            # Extract summary metrics for display\n            summary_metrics = self._extract_trades_summary_metrics(results)\n\n            # Store results\n            update_trades_session_progress(\n                id=self.trades_session_id,\n                completed=results.get('num_scenarios', self.num_scenarios),\n                results=results\n            )\n            update_trades_session_status(self.trades_session_id, 'finished')\n\n            # Publish results\n            sync_publish('monte_carlo_trades_summary', summary_metrics)\n            sync_publish('monte_carlo_trades_results', results)\n\n            # Log completion\n            log_msg = f\"Trades simulation completed: {results.get('num_scenarios', 0)} scenarios\"\n            append_session_logs(self.trades_session_id, 'trades', log_msg)\n\n        except Exception as e:\n            error_traceback = traceback.format_exc()\n            error_type = type(e).__name__\n            logger.log_monte_carlo(f\"ERROR: Trades simulation failed with {error_type}: {str(e)}\", session_id=self.session_id)\n            logger.log_monte_carlo(f\"Traceback:\\n{error_traceback}\", session_id=self.session_id)\n            \n            # Store exception in database\n            store_session_exception(self.trades_session_id, 'trades', str(e), error_traceback)\n            update_trades_session_status(self.trades_session_id, 'stopped')\n            \n            # Publish exception to frontend\n            sync_publish('exception', {\n                'error': str(e),\n                'traceback': error_traceback\n            })\n            \n            raise\n\n    def _run_candles_simulation(self):\n        # Create candles child session in DB\n        self.candles_session_id = store_candles_session(\n            parent_id=self.session_id,\n            num_scenarios=self.num_scenarios,\n            pipeline_type=self.pipeline_type,\n            pipeline_params=self.pipeline_params\n        )\n\n        # Publish initial progress for candles\n        sync_publish('candles_progressbar', {\n            'current': 0,\n            'total': self.num_scenarios,\n            'estimated_remaining_seconds': 0\n        })\n\n        # Prepare config - flatten the structure from settings\n        config = {\n            'starting_balance': self.user_config.get('starting_balance', 10000),\n            'fee': self.user_config.get('fee', 0.0005),\n            'type': self.user_config.get('exchange', {}).get('type', 'futures'),\n            'futures_leverage': self.user_config.get('exchange', {}).get('futures_leverage', 1),\n            'futures_leverage_mode': self.user_config.get('exchange', {}).get('futures_leverage_mode', 'cross'),\n            'warm_up_candles': self.user_config.get('warm_up_candles', 210),\n            'exchange': self.routes[0]['exchange']\n        }\n\n        # Prepare pipeline\n        pipeline_class = None\n        pipeline_kwargs = self.pipeline_params.copy()\n\n        if self.pipeline_type == 'gaussian':\n            pipeline_class = GaussianNoiseCandlesPipeline\n            # Set defaults if not provided\n            if 'close_sigma' not in pipeline_kwargs:\n                pipeline_kwargs['close_sigma'] = 0.001\n            if 'high_sigma' not in pipeline_kwargs:\n                pipeline_kwargs['high_sigma'] = 0.0001\n            if 'low_sigma' not in pipeline_kwargs:\n                pipeline_kwargs['low_sigma'] = 0.0001\n        else:  # moving_block_bootstrap\n            pipeline_class = MovingBlockBootstrapCandlesPipeline\n\n        # Ensure batch_size is set\n        if 'batch_size' not in pipeline_kwargs:\n            pipeline_kwargs['batch_size'] = 10080  # 7 days\n\n        try:\n            logger.log_monte_carlo(f\"Calling _run_candles_with_progress with {self.num_scenarios} scenarios\", session_id=self.session_id)\n            logger.log_monte_carlo(f\"Pipeline: {self.pipeline_type}, kwargs: {pipeline_kwargs}\", session_id=self.session_id)\n            \n            # Call monte_carlo_candles from research module with progress tracking\n            results = self._run_candles_with_progress(config, pipeline_class, pipeline_kwargs)\n            \n            logger.log_monte_carlo(f\"Candles simulation returned {len(results.get('scenarios', []))} scenarios\", session_id=self.session_id)\n\n            # Extract summary metrics for display\n            summary_metrics = self._extract_candles_summary_metrics(results)\n\n            # Store results\n            update_candles_session_progress(\n                id=self.candles_session_id,\n                completed=results.get('num_scenarios', self.num_scenarios),\n                results=results\n            )\n            update_candles_session_status(self.candles_session_id, 'finished')\n\n            # Publish results\n            sync_publish('monte_carlo_candles_summary', summary_metrics)\n            sync_publish('monte_carlo_candles_results', results)\n\n            # Log completion\n            log_msg = f\"Candles simulation completed: {results.get('num_scenarios', 0)} scenarios\"\n            append_session_logs(self.candles_session_id, 'candles', log_msg)\n\n        except Exception as e:\n            error_traceback = traceback.format_exc()\n            error_type = type(e).__name__\n            logger.log_monte_carlo(f\"ERROR: Candles simulation failed with {error_type}: {str(e)}\", session_id=self.session_id)\n            logger.log_monte_carlo(f\"Traceback:\\n{error_traceback}\", session_id=self.session_id)\n            \n            # Store exception in database\n            store_session_exception(self.candles_session_id, 'candles', str(e), error_traceback)\n            update_candles_session_status(self.candles_session_id, 'stopped')\n            \n            # Publish exception to frontend\n            sync_publish('exception', {\n                'error': str(e),\n                'traceback': error_traceback\n            })\n            \n            raise\n\n    def _run_trades_with_progress(self, config: dict) -> dict:\n        \"\"\"Run trades simulation with progress tracking\"\"\"\n        import time\n        \n        # Reset progressbar for this simulation\n        self.progressbar = Progressbar(self.num_scenarios)\n        self.start_time = jh.now_to_timestamp()\n        last_update_time = None\n        throttle_interval = 0.5  # Only publish every 0.5 seconds\n        \n        def progress_callback(completed_count: int):\n            \"\"\"Called when scenarios complete to update progress\"\"\"\n            nonlocal last_update_time\n            \n            if completed_count <= self.num_scenarios:\n                current_time = time.time()\n                \n                # Only publish if enough time has passed or it's the last update\n                should_publish = (\n                    last_update_time is None or \n                    (current_time - last_update_time) >= throttle_interval or\n                    completed_count == self.num_scenarios\n                )\n                \n                if should_publish:\n                    # Calculate estimated remaining time\n                    elapsed = jh.now_to_timestamp() - self.start_time\n                    if completed_count > 0:\n                        avg_time_per_scenario = elapsed / completed_count\n                        remaining_scenarios = self.num_scenarios - completed_count\n                        estimated_remaining = int(avg_time_per_scenario * remaining_scenarios)\n                    else:\n                        estimated_remaining = 0\n                    \n                    sync_publish('trades_progressbar', {\n                        'current': completed_count,\n                        'total': self.num_scenarios,\n                        'estimated_remaining_seconds': estimated_remaining\n                    })\n                    \n                    last_update_time = current_time\n        \n        results = monte_carlo_trades(\n            config=config,\n            routes=self.routes,\n            data_routes=self.data_routes,\n            candles=self.candles,\n            warmup_candles=self.warmup_candles,\n            benchmark=False,\n            hyperparameters=None,\n            fast_mode=self.fast_mode,\n            num_scenarios=self.num_scenarios,\n            progress_bar=False,\n            cpu_cores=self.cpu_cores,\n            progress_callback=progress_callback,\n            result_callback=None\n        )\n        \n        # Publish completion\n        sync_publish('trades_progressbar', {\n            'current': self.num_scenarios,\n            'total': self.num_scenarios,\n            'estimated_remaining_seconds': 0\n        })\n        \n        return results\n\n    def _run_candles_with_progress(self, config: dict, pipeline_class, pipeline_kwargs: dict) -> dict:\n        \"\"\"Run candles simulation with progress tracking\"\"\"\n        import time\n        \n        logger.log_monte_carlo(\"Inside _run_candles_with_progress\", session_id=self.session_id)\n        \n        # Reset start time for this simulation\n        self.start_time = jh.now_to_timestamp()\n        last_update_time = None\n        throttle_interval = 0.5  # Only publish every 0.5 seconds\n        \n        def progress_callback(completed_count: int):\n            \"\"\"Called when scenarios complete to update progress\"\"\"\n            nonlocal last_update_time\n            \n            if completed_count <= self.num_scenarios:\n                current_time = time.time()\n                \n                # Only publish if enough time has passed or it's the last update\n                should_publish = (\n                    last_update_time is None or \n                    (current_time - last_update_time) >= throttle_interval or\n                    completed_count == self.num_scenarios\n                )\n                \n                if should_publish:\n                    # Calculate estimated remaining time\n                    elapsed = jh.now_to_timestamp() - self.start_time\n                    if completed_count > 0:\n                        avg_time_per_scenario = elapsed / completed_count\n                        remaining_scenarios = self.num_scenarios - completed_count\n                        estimated_remaining = int(avg_time_per_scenario * remaining_scenarios)\n                    else:\n                        estimated_remaining = 0\n                    \n                    sync_publish('candles_progressbar', {\n                        'current': completed_count,\n                        'total': self.num_scenarios,\n                        'estimated_remaining_seconds': estimated_remaining\n                    })\n                    \n                    last_update_time = current_time\n        \n        logger.log_monte_carlo(f\"About to call monte_carlo_candles with {len(self.candles)} candle datasets\", session_id=self.session_id)\n        \n        results = monte_carlo_candles(\n            config=config,\n            routes=self.routes,\n            data_routes=self.data_routes,\n            candles=self.candles,\n            warmup_candles=self.warmup_candles,\n            hyperparameters=None,\n            fast_mode=self.fast_mode,\n            num_scenarios=self.num_scenarios,\n            progress_bar=False,\n            candles_pipeline_class=pipeline_class,\n            candles_pipeline_kwargs=pipeline_kwargs,\n            cpu_cores=self.cpu_cores,\n            progress_callback=progress_callback,\n            result_callback=None\n        )\n        \n        # Publish completion\n        sync_publish('candles_progressbar', {\n            'current': self.num_scenarios,\n            'total': self.num_scenarios,\n            'estimated_remaining_seconds': 0\n        })\n        \n        return results\n\n    def _extract_trades_summary_metrics(self, results: dict) -> list:\n        \"\"\"Extract summary metrics from trades results for table display\"\"\"\n        metrics = []\n        \n        if 'confidence_analysis' not in results or 'metrics' not in results['confidence_analysis']:\n            return metrics\n\n        ca_metrics = results['confidence_analysis']['metrics']\n        \n        # Define metrics to display (in order)\n        metric_keys = ['total_return', 'max_drawdown', 'sharpe_ratio', 'calmar_ratio']\n        \n        for key in metric_keys:\n            if key not in ca_metrics:\n                continue\n                \n            analysis = ca_metrics[key]\n            original = analysis.get('original', None)\n            percentiles = analysis.get('percentiles', {})\n            \n            # Get percentiles\n            p5 = percentiles.get('5th', None)\n            p50 = percentiles.get('50th', None)\n            p95 = percentiles.get('95th', None)\n            \n            metrics.append({\n                'metric': key,\n                'original': original,\n                'worst_5': p5,\n                'median': p50,\n                'best_5': p95\n            })\n        \n        return metrics\n\n    def _extract_candles_summary_metrics(self, results: dict) -> list:\n        \"\"\"Extract summary metrics from candles results for table display\"\"\"\n        metrics = []\n        \n        if 'scenarios' not in results or not results['scenarios']:\n            return metrics\n\n        original_result = results.get('original')\n        simulation_results = results.get('scenarios', [])\n        \n        if not simulation_results:\n            return metrics\n\n        # Metrics to display (in order)\n        metric_keys = [\n            'net_profit_percentage', 'max_drawdown', 'sharpe_ratio', \n            'win_rate', 'total', 'annual_return', 'calmar_ratio'\n        ]\n\n        # Collect values for each metric\n        for key in metric_keys:\n            values = []\n            for scenario in simulation_results:\n                if 'metrics' in scenario and key in scenario['metrics']:\n                    val = scenario['metrics'][key]\n                    if isinstance(val, (int, float)) and np.isfinite(val):\n                        values.append(float(val))\n            \n            if not values:\n                continue\n            \n            arr = np.array(values)\n            p5 = np.percentile(arr, 5)\n            p50 = np.percentile(arr, 50)\n            p95 = np.percentile(arr, 95)\n            \n            # Get original value from original backtest and normalize if needed\n            original = None\n            if original_result and 'metrics' in original_result and key in original_result['metrics']:\n                original = original_result['metrics'][key]\n                if isinstance(original, (int, float)) and np.isfinite(original):\n                    original = float(original)\n            \n            metrics.append({\n                'metric': key,\n                'original': original,\n                'worst_5': p5,\n                'median': p50,\n                'best_5': p95\n            })\n        \n        return metrics\n\n\n"
  },
  {
    "path": "jesse/modes/monte_carlo_mode/__init__.py",
    "content": "from multiprocessing import cpu_count\nfrom typing import Dict, List, Optional\nimport arrow\nimport jesse.helpers as jh\nfrom jesse.modes.backtest_mode import load_candles\nfrom jesse.services.validators import validate_routes\nfrom jesse.store import store\nfrom .MonteCarloRunner import MonteCarloRunner\nfrom jesse.services.failure import register_custom_exception_handler\nfrom jesse.routes import router\nfrom jesse.models.MonteCarloSession import (\n    store_monte_carlo_session, \n    get_monte_carlo_session_by_id, \n    update_monte_carlo_session_status,\n    update_monte_carlo_session_state\n)\n\n\ndef run(\n    session_id: str,\n    user_config: dict,\n    exchange: str,\n    routes: List[Dict[str, str]],\n    data_routes: List[Dict[str, str]],\n    start_date: str,\n    finish_date: str,\n    run_trades: bool,\n    run_candles: bool,\n    num_scenarios: int,\n    fast_mode: bool,\n    cpu_cores: int,\n    pipeline_type: Optional[str],\n    pipeline_params: Optional[dict],\n    state: dict,\n) -> None:\n    if jh.python_version() == (3, 13):\n        raise ValueError(\n            'Monte Carlo mode is not supported on Python 3.13. The \"Ray\" library used for Monte Carlo does not support Python 3.13 yet. Please use Python 3.12 or lower.')\n\n    from jesse.config import config, set_config\n    config['app']['trading_mode'] = 'monte-carlo'\n\n    # Validate at least one type is selected\n    if not run_trades and not run_candles:\n        raise ValueError('At least one Monte Carlo type (trades or candles) must be selected.')\n\n    # Validate cpu_cores\n    if cpu_cores < 1:\n        raise ValueError('cpu_cores must be an integer value greater than 0. Please check your settings page.')\n    \n    max_cpu_cores = cpu_count()\n    if cpu_cores > max_cpu_cores:\n        raise ValueError(f'cpu_cores must be less than or equal to {max_cpu_cores} which is the number of cores on your machine.')\n\n    # Inject config\n    set_config(user_config)\n    \n    # Add exchange to routes\n    for r in routes:\n        r['exchange'] = exchange\n    for r in data_routes:\n        r['exchange'] = exchange\n    \n    # Set routes\n    router.initiate(routes, data_routes)\n    store.app.set_session_id(session_id)\n    register_custom_exception_handler()\n    \n    # Validate routes\n    validate_routes(router)\n\n    # Capture strategy codes for each route (fast operation) BEFORE expensive work\n    import os\n    strategy_codes = {}\n    for r in router.routes:\n        key = f\"{r.exchange}-{r.symbol}\"\n        if key not in strategy_codes:\n            try:\n                strategy_path = f'strategies/{r.strategy_name}/__init__.py'\n                if os.path.exists(strategy_path):\n                    with open(strategy_path, 'r') as f:\n                        content = f.read()\n                    strategy_codes[key] = content\n            except Exception:\n                pass\n\n    # Ensure the parent session exists in DB BEFORE loading candles so the UI can query it\n    existing_session = get_monte_carlo_session_by_id(session_id)\n    if existing_session:\n        update_monte_carlo_session_status(session_id, 'running')\n        update_monte_carlo_session_state(session_id, state, strategy_codes)\n        if jh.is_debugging():\n            jh.debug(f\"Resuming existing Monte Carlo session with ID: {session_id}\")\n    else:\n        store_monte_carlo_session(\n            id=session_id,\n            status='running',\n            state=state,\n            strategy_codes=strategy_codes if strategy_codes else None\n        )\n        if jh.is_debugging():\n            jh.debug(f\"Created new Monte Carlo session with ID: {session_id}\")\n\n    # Load historical candles AFTER session is persisted\n    start_date_timestamp = jh.arrow_to_timestamp(arrow.get(start_date, 'YYYY-MM-DD'))\n    finish_date_timestamp = jh.arrow_to_timestamp(arrow.get(finish_date, 'YYYY-MM-DD'))\n    warmup_candles, candles = load_candles(start_date_timestamp, finish_date_timestamp)\n\n    # Create and run Monte Carlo runner\n    runner = MonteCarloRunner(\n        session_id=session_id,\n        user_config=user_config,\n        routes=routes,\n        data_routes=data_routes,\n        candles=candles,\n        warmup_candles=warmup_candles,\n        run_trades=run_trades,\n        run_candles=run_candles,\n        num_scenarios=num_scenarios,\n        fast_mode=fast_mode,\n        cpu_cores=cpu_cores,\n        pipeline_type=pipeline_type,\n        pipeline_params=pipeline_params\n    )\n\n    runner.run()\n\n\n"
  },
  {
    "path": "jesse/modes/notification_api_keys.py",
    "content": "import json\nfrom starlette.responses import JSONResponse\nimport jesse.helpers as jh\nfrom jesse.services import transformers\n\n\ndef get_notification_api_keys() -> JSONResponse:\n    from jesse.services.db import database\n    database.open_connection()\n\n    from jesse.models.NotificationApiKeys import NotificationApiKeys\n\n    try:\n        # fetch all the notification api keys\n        api_keys = NotificationApiKeys.select()\n    except Exception as e:\n        database.close_connection()\n        return JSONResponse({\n            'status': 'error',\n            'message': str(e)\n        }, status_code=500)\n\n    # transform each api_key using transformers.get_notification_api_key()\n    api_keys = [transformers.get_notification_api_key(api_key) for api_key in api_keys]\n\n    database.close_connection()\n\n    return JSONResponse({\n        'data': api_keys\n    }, status_code=200)\n\n\ndef store_notification_api_keys(\n        name: str,\n        driver: str,\n        fields: dict\n) -> JSONResponse:\n    from jesse.services.db import database\n    database.open_connection()\n\n    from jesse.models.NotificationApiKeys import NotificationApiKeys\n\n    # check if the api key already exists\n    if NotificationApiKeys.select().where(NotificationApiKeys.name == name).exists():\n        database.close_connection()\n        return JSONResponse({\n            'status': 'error',\n            'message': f'API key for the name \"{name}\" already exists. Please choose another driver.'\n        }, status_code=400)\n\n    try:\n        # create the record\n        notification_api_key: NotificationApiKeys = NotificationApiKeys.create(\n            id=jh.generate_unique_id(),\n            name=name,\n            driver=driver,\n            fields=json.dumps(fields),\n            created_at=jh.now_to_datetime()\n        )\n    except ValueError as e:\n        database.close_connection()\n        return JSONResponse({\n            'status': 'error',\n            'message': str(e)\n        }, status_code=400)\n    except Exception as e:\n        database.close_connection()\n        return JSONResponse({\n            'status': 'error',\n            'message': str(e)\n        }, status_code=500)\n\n    database.close_connection()\n\n    return JSONResponse({\n        'status': 'success',\n        'message': 'Notification API key has been stored successfully.',\n        'data': transformers.get_notification_api_key(notification_api_key)\n    }, status_code=200)\n\n\ndef delete_notification_api_keys(notification_api_key_id: str) -> JSONResponse:\n    from jesse.services.db import database\n    database.open_connection()\n\n    from jesse.models.NotificationApiKeys import NotificationApiKeys\n\n    try:\n        # delete the record\n        NotificationApiKeys.delete().where(NotificationApiKeys.id == notification_api_key_id).execute()\n    except Exception as e:\n        database.close_connection()\n        return JSONResponse({\n            'status': 'error',\n            'message': str(e)\n        }, status_code=500)\n\n    database.close_connection()\n\n    return JSONResponse({\n        'status': 'success',\n        'message': 'Notification API key has been deleted successfully.'\n    }, status_code=200)\n"
  },
  {
    "path": "jesse/modes/optimize_mode/Optimize.py",
    "content": "import os\nimport json\nimport base64\nfrom datetime import timedelta\nfrom multiprocessing import cpu_count\nimport optuna\nimport ray\nimport numpy as np\nimport jesse.helpers as jh\nimport jesse.services.logger as logger\nfrom jesse import exceptions\nfrom jesse.services.redis import sync_publish\nfrom jesse.modes.optimize_mode.fitness import get_fitness\nfrom jesse.routes import router\nfrom jesse.services.progressbar import Progressbar\nfrom jesse.services.redis import is_process_active\nfrom jesse.models.OptimizationSession import update_optimization_session_status, update_optimization_session_trials, get_optimization_session, get_optimization_session_by_id\nimport traceback\n\n# Define a Ray-compatible remote function\n\n\n@ray.remote\ndef ray_evaluate_trial(\n    user_config,\n    formatted_routes,\n    formatted_data_routes,\n    strategy_hp,\n    hp,\n    training_warmup_candles,\n    training_candles,\n    testing_warmup_candles,\n    testing_candles,\n    optimal_total,\n    fast_mode,\n    trial_number,\n    session_id\n):\n    \"\"\"Ray remote function to evaluate a trial\"\"\"\n    try:\n        # Calculate the fitness score using the provided hyperparameters\n        score, training_metrics, testing_metrics = get_fitness(\n            user_config,\n            formatted_routes,\n            formatted_data_routes,\n            strategy_hp,\n            hp,\n            training_warmup_candles,\n            training_candles,\n            testing_warmup_candles,\n            testing_candles,\n            optimal_total,\n            fast_mode,\n            session_id\n        )\n\n        # Log the trial details if debugging is enabled\n        if jh.is_debugging():\n            logger.log_optimize_mode(f\"Ray Trial {trial_number}: Score={score}, Params={hp}\", session_id )\n\n        return {\n            'trial_number': trial_number,\n            'score': score,\n            'params': hp,\n            'training_metrics': training_metrics,\n            'testing_metrics': testing_metrics\n        }\n    except exceptions.RouteNotFound as e:\n        # Convert RouteNotFound to a standard RuntimeError to avoid serialization issues\n        error_msg = str(e)\n        logger.log_optimize_mode(f\"Ray Trial {trial_number} failed with RouteNotFound: {error_msg}\", session_id )\n        logger.log_optimize_mode(f\"Trial {trial_number} hyperparameters: {hp}\", session_id )\n        raise RuntimeError(f\"RouteNotFound: {error_msg}\")\n    except Exception as e:\n        # Log and re-raise other exceptions\n        logger.log_optimize_mode(f\"Ray Trial {trial_number} failed with exception: {str(e)}\", session_id )\n        raise\n\n# Optimizer class that uses Ray for hyperparameter optimization\n\n\nclass Optimizer:\n    def __init__(\n            self,\n            session_id: str,\n            user_config: dict,\n            training_warmup_candles: dict,\n            training_candles: dict,\n            testing_warmup_candles: dict,\n            testing_candles: dict,\n            fast_mode: bool,\n            optimal_total: int,\n            cpu_cores: int,\n    ) -> None:\n        # Check for Python 3.13 first thing\n        if jh.python_version() == (3, 13):\n            raise ValueError(\n                'Optimization is not supported on Python 3.13. The Ray library used for optimization does not support Python 3.13 yet. Please use Python 3.12 or lower.')\n\n        self.session_id = session_id\n\n        # Retrieve the target strategy and its hyperparameter configuration\n        strategy_class = jh.get_strategy_class(router.routes[0].strategy_name)\n\n        self.strategy_hp = strategy_class.hyperparameters(None)\n\n        if not self.strategy_hp:\n            update_optimization_session_status(self.session_id, 'stopped')\n            raise exceptions.InvalidStrategy('Targeted strategy does not implement a valid hyperparameters() method.')\n\n        # Create study storage for persistence\n        os.makedirs('./storage/temp/optuna', exist_ok=True)\n        self.storage_url = f\"sqlite:///./storage/temp/optuna/optuna_study.db\"\n        # The study_name uniquely identifies the optimization session - changing it will create a new session\n        self.study_name = f\"{router.routes[0].strategy_name}_optuna_ray_{self.session_id}\"\n\n        self.solution_len = len(self.strategy_hp)\n        self.start_time = jh.now_to_timestamp()\n        self.fast_mode = fast_mode\n        self.optimal_total = optimal_total\n        self.training_warmup_candles = training_warmup_candles\n        self.training_candles = training_candles\n        self.testing_warmup_candles = testing_warmup_candles\n        self.testing_candles = testing_candles\n        self.user_config = user_config\n\n        # Validate and set the number of CPU cores to use\n        if cpu_cores < 1:\n            raise ValueError('cpu_cores must be an integer value greater than 0.')\n        available = cpu_count()\n        self.cpu_cores = cpu_cores if cpu_cores <= available else available\n\n        # Get number of trials from settings\n        self.n_trials = self.solution_len * jh.get_config('env.optimization.trials', 200)\n\n        # Create a progress bar instance to update the front end about optimization progress\n        self.progressbar = Progressbar(self.n_trials)\n\n        # Initialize best trials tracking\n        self.best_trials = []\n\n        # Trial counter and completed trials\n        self.trial_counter = 0\n        self.completed_trials = 0\n\n        # Create or load the Optuna study for persistence\n        self.study = optuna.create_study(\n            direction='maximize',\n            storage=self.storage_url,\n            study_name=self.study_name,\n            load_if_exists=True\n        )\n\n        # Buffer to accumulate objective curve data points (one point per trial)\n        self.objective_curve_buffer = []\n        self.total_objective_curve_buffer = []\n\n        # Initialize Ray if not already\n        if not ray.is_initialized():\n            try:\n                ray.init(num_cpus=self.cpu_cores, ignore_reinit_error=True)\n                logger.log_optimize_mode(f\"Successfully started optimization session with {self.cpu_cores} CPU cores\", self.session_id )\n            except Exception as e:\n                logger.log_optimize_mode(f\"Error initializing Ray: {e}. Falling back to 1 CPU.\", self.session_id )\n                self.cpu_cores = 1\n                ray.init(num_cpus=1, ignore_reinit_error=True)\n\n        # Setup a periodic termination check in case the user ends the session\n        client_id = jh.get_session_id()\n        from timeloop import Timeloop\n        self.tl = Timeloop()\n\n        @self.tl.job(interval=timedelta(seconds=1))\n        def check_for_termination():\n            if is_process_active(client_id) is False:\n                # Update session status to 'stopped' in the database\n                if get_optimization_session(self.session_id)['status'] != 'terminated':\n                    update_optimization_session_status(self.session_id, 'stopped')\n                raise exceptions.Termination\n        self.tl.start()\n\n        # Load existing trials from the Optuna study\n        self._load_study_trials()\n\n    def _load_study_trials(self):\n        \"\"\"Load trials from the database session\"\"\"\n        session_data = get_optimization_session_by_id(self.session_id)\n\n        def replace_inf_with_null(obj):\n            if isinstance(obj, dict):\n                return {k: replace_inf_with_null(v) for k, v in obj.items()}\n            elif isinstance(obj, list):\n                return [replace_inf_with_null(item) for item in obj]\n            elif isinstance(obj, float) and (obj == float('inf') or obj == float('-inf')):\n                return None\n            return obj\n        try:\n            # Get completed trials from the Optuna study\n            completed_trials = session_data.completed_trials\n            if not completed_trials:\n                logger.log_optimize_mode(\"No previous trials found. Starting new optimization session.\", self.session_id )\n                return\n\n            # Update completed trials count\n            self.completed_trials = completed_trials\n            logger.log_optimize_mode(f\"Loaded {self.completed_trials} completed trials from previous session\", self.session_id )\n            self.best_trials = replace_inf_with_null(json.loads(session_data.best_trials))\n            # Update best candidates display\n            self._update_best_candidates()\n\n            # Update progress bar efficiently\n            self._set_progressbar_index(self.completed_trials)\n\n            # Set trial counter to start from after the last trial\n            self.trial_counter = completed_trials\n\n            self.total_objective_curve_buffer = json.loads(session_data.objective_curve.replace('-Infinity', 'null').replace('Infinity', 'null'))\n            # Update the database with loaded trials\n            update_optimization_session_trials(\n                self.session_id,\n                self.completed_trials,\n                self.best_trials,\n                self.total_objective_curve_buffer,\n                self.n_trials\n            )\n\n        except Exception as e:\n            logger.log_optimize_mode(f\"Error loading previous trials: {e}\", self.session_id )\n            # Reset counters in case of failure\n            self.completed_trials = 0\n            self.trial_counter = 0\n\n    def _generate_trial_params(self):\n        \"\"\"Generate random hyperparameters for a trial\"\"\"\n        hp = {}\n        for param in self.strategy_hp:\n            param_name = str(param['name'])\n            param_type = param['type']\n            # Convert to string whether input is type class or string\n            if isinstance(param_type, type):\n                param_type = param_type.__name__\n            else:\n                # Remove quotes if they exist\n                param_type = param_type.strip(\"'\").strip('\"')\n\n            if param_type == 'int':\n                if 'step' in param and param['step'] is not None:\n                    steps = (param['max'] - param['min']) // param['step'] + 1\n                    value = param['min'] + np.random.randint(0, steps) * param['step']\n                else:\n                    value = np.random.randint(param['min'], param['max'] + 1)\n                hp[param_name] = value\n            elif param_type == 'float':\n                if 'step' in param and param['step'] is not None:\n                    steps = int((param['max'] - param['min']) / param['step']) + 1\n                    value = param['min'] + np.random.randint(0, steps) * param['step']\n                else:\n                    value = np.random.uniform(param['min'], param['max'])\n                hp[param_name] = value\n            elif param_type == 'categorical':\n                options = param['options']\n                hp[param_name] = options[np.random.randint(0, len(options))]\n            else:\n                raise ValueError(f\"Unsupported hyperparameter type: {param_type}\")\n\n        return hp\n\n    def _create_optuna_trial(self, trial_number, params, score, training_metrics, testing_metrics):\n        \"\"\"Create and store an Optuna trial for persistence\"\"\"\n        try:\n            # Create distributions for the parameters\n            distributions = {}\n            for param in self.strategy_hp:\n                param_name = str(param['name'])\n                param_type = param['type']\n                if isinstance(param_type, type):\n                    param_type = param_type.__name__\n                else:\n                    param_type = param_type.strip(\"'\").strip('\"')\n\n                if param_type == 'int':\n                    if 'step' in param and param['step'] is not None:\n                        distributions[param_name] = optuna.distributions.IntDistribution(\n                            low=param['min'],\n                            high=param['max'],\n                            step=param['step']\n                        )\n                    else:\n                        distributions[param_name] = optuna.distributions.IntDistribution(\n                            low=param['min'],\n                            high=param['max']\n                        )\n                elif param_type == 'float':\n                    if 'step' in param and param['step'] is not None:\n                        distributions[param_name] = optuna.distributions.FloatDistribution(\n                            low=param['min'],\n                            high=param['max'],\n                            step=param['step']\n                        )\n                    else:\n                        distributions[param_name] = optuna.distributions.FloatDistribution(\n                            low=param['min'],\n                            high=param['max']\n                        )\n                elif param_type == 'categorical':\n                    distributions[param_name] = optuna.distributions.CategoricalDistribution(param['options'])\n\n            # Create a new trial\n            trial = optuna.create_trial(\n                params=params,\n                distributions=distributions,\n                value=score,\n                user_attrs={\n                    'training_metrics': training_metrics,\n                    'testing_metrics': testing_metrics\n                }\n            )\n\n            # Add the trial to the study\n            self.study.add_trial(trial)\n            return True\n\n        except Exception as e:\n            logger.log_optimize_mode(f\"Error creating Optuna trial: {e}\", self.session_id )\n            return False\n\n    def _process_trial_result(self, result):\n        \"\"\"Process the result of a completed trial\"\"\"\n        trial_number = result['trial_number']\n        score = result['score']\n        params = result['params']\n        training_metrics = result['training_metrics']\n        testing_metrics = result['testing_metrics']\n\n        # Update progress\n        self.completed_trials += 1\n        self.progressbar.update()\n\n        # Store trial in Optuna for persistence\n        self._create_optuna_trial(trial_number, params, score, training_metrics, testing_metrics)\n\n        # Update the dashboard with general information about the progress\n        general_info = {\n            'started_at': jh.timestamp_to_arrow(self.start_time).humanize(),\n            'trial': f'{self.completed_trials}/{self.n_trials}',\n            'objective_function': jh.get_config('env.optimization.objective_function', 'sharpe'),\n            'exchange_type': self.user_config['exchange']['type'],\n            'leverage_mode': self.user_config['exchange']['futures_leverage_mode'],\n            'leverage': self.user_config['exchange']['futures_leverage'],\n            'cpu_cores': self.cpu_cores,\n        }\n        sync_publish('general_info', general_info)\n\n        # Update the progress bar and publish the current progress to the dashboard\n        sync_publish('progressbar', {\n            'current': self.progressbar.current,\n            'estimated_remaining_seconds': self.progressbar.estimated_remaining_seconds\n        })\n\n        # Process trial metrics for objective curve\n        self._process_trial_metrics(trial_number, training_metrics, testing_metrics)\n\n        # Add to best trials if the score is valid\n        if score > 0.0001:\n            # Convert parameters to DNA (base64)\n            params_str = json.dumps(params, sort_keys=True)\n            dna = base64.b64encode(params_str.encode()).decode()\n\n            # Create trial info dict\n            current_trial_info = {\n                'trial': trial_number,\n                'params': params,\n                'fitness': round(score, 4),\n                'value': score,  # Used for sorting, not sent to frontend\n                'dna': dna,\n                'training_metrics': training_metrics,\n                'testing_metrics': testing_metrics\n            }\n\n            # Debug log trial metrics\n            if jh.is_debugging():\n                jh.debug(f\"Trial {trial_number} processed - fitness: {score}\")\n                jh.debug(f\"Trial {trial_number} has training metrics: {bool(training_metrics)}\")\n                jh.debug(f\"Trial {trial_number} has testing metrics: {bool(testing_metrics)}\")\n\n            # Get best candidates count from config\n            best_candidates_count = jh.get_config('env.optimization.best_candidates_count', 20)\n\n            # Insert into best_trials maintaining sorted order\n            insert_idx = 0\n            for idx, t in enumerate(self.best_trials):\n                if score > t['value']:\n                    insert_idx = idx\n                    break\n                else:\n                    insert_idx = idx + 1\n\n            if insert_idx < best_candidates_count or len(self.best_trials) < best_candidates_count:\n                self.best_trials.insert(insert_idx, current_trial_info)\n                # Keep only top candidates as configured\n                self.best_trials = self.best_trials[:best_candidates_count]\n\n            # Update best candidates table\n            self._update_best_candidates()\n\n            # Update the database with the latest trials data\n            # We do this every 5 trials to avoid too many database writes\n            if self.completed_trials % 5 == 0:\n\n                update_optimization_session_trials(\n                    self.session_id,\n                    self.completed_trials,\n                    self.best_trials,\n                    self.total_objective_curve_buffer,\n                    self.n_trials\n                )\n\n    def _update_best_candidates(self):\n        \"\"\"Update the best candidates table in the dashboard\"\"\"\n        # Get the objective function configuration\n        objective_function_config = jh.get_config('env.optimization.objective_function', 'sharpe').lower()\n        mapping = {\n            'sharpe': 'sharpe_ratio',\n            'calmar': 'calmar_ratio',\n            'sortino': 'sortino_ratio',\n            'omega': 'omega_ratio',\n            'serenity': 'serenity_index',\n            'smart sharpe': 'smart_sharpe',\n            'smart sortino': 'smart_sortino'\n        }\n        metric_key = mapping.get(objective_function_config, objective_function_config)\n\n        best_candidates = []\n        for idx, t in enumerate(self.best_trials):\n            train_value = t.get('training_metrics', {}).get(metric_key, None)\n            test_value = t.get('testing_metrics', {}).get(metric_key, None)\n            if isinstance(train_value, (int, float)):\n                train_value = round(train_value, 2)\n            if isinstance(test_value, (int, float)):\n                test_value = round(test_value, 2)\n            if train_value is None:\n                train_value = \"N/A\"\n            if test_value is None:\n                test_value = \"N/A\"\n\n            candidate_objective_metric = f\"{train_value} / {test_value}\"\n\n            best_candidates.append({\n                'rank': f\"#{idx + 1}\",\n                'trial': f\"Trial {t['trial']}\",\n                'params': t['params'],\n                'fitness': t['fitness'],\n                'dna': t['dna'],\n                'training_metrics': t.get('training_metrics', {}),\n                'testing_metrics': t.get('testing_metrics', {}),\n                'objective_metric': candidate_objective_metric\n            })\n\n        # Send top candidates to the dashboard\n        sync_publish('best_candidates', best_candidates)\n\n    def _process_trial_metrics(self, trial_number, training_metrics, testing_metrics):\n        \"\"\"Process metrics from a completed trial to update objective curve\"\"\"\n        # Only add to buffer if both metrics exist and are not empty\n        if training_metrics and testing_metrics:\n            data_point = {\n                'trial': trial_number + 1,\n                'training': training_metrics,\n                'testing': testing_metrics\n            }\n            self.objective_curve_buffer.append(data_point)\n\n            if jh.is_debugging():\n                jh.debug(f\"Added trial {trial_number + 1} to objective curve buffer with metrics\")\n        else:\n            if jh.is_debugging():\n                jh.debug(f\"Skipped trial {trial_number + 1} - missing metrics. Training: {bool(training_metrics)}, Testing: {bool(testing_metrics)}\")\n\n        # Publish a batch every 5 trials or when buffer reaches 10 items\n        buffer_size = len(self.objective_curve_buffer)\n        if buffer_size >= 10 or (buffer_size > 0 and self.completed_trials % 5 == 0):\n            if jh.is_debugging():\n                jh.debug(f\"Publishing objective curve LEN: {len(self.objective_curve_buffer)}\")\n            sync_publish('objective_curve', self.objective_curve_buffer)\n\n            if len(self.objective_curve_buffer) > 0 and len(self.total_objective_curve_buffer) > 0:\n                if self.objective_curve_buffer[0]['trial'] > self.total_objective_curve_buffer[-1]['trial']:\n                    self.total_objective_curve_buffer.extend(self.objective_curve_buffer)\n            else:\n                self.total_objective_curve_buffer.extend(self.objective_curve_buffer)\n\n            self.objective_curve_buffer = []\n\n    def _set_progressbar_index(self, index):\n        \"\"\"Manually set the progressbar index for resuming sessions efficiently\"\"\"\n        self.progressbar.index = index\n        # Update UI to reflect progress\n        sync_publish('progressbar', {\n            'current': self.progressbar.current,\n            'estimated_remaining_seconds': self.progressbar.estimated_remaining_seconds\n        })\n\n    def run(self) -> optuna.trial.FrozenTrial:\n        # Log the start of the optimization session\n        logger.log_optimize_mode(f\"Optimization session started with {self.cpu_cores} CPU cores\", self.session_id )\n\n        if self.completed_trials > 0:\n            logger.log_optimize_mode(f\"Resuming from previous session with {self.completed_trials} trials already completed\", self.session_id )\n            # Make sure the progress bar is synchronized\n            self._set_progressbar_index(self.completed_trials)\n\n        # Track the best trial - handle empty study gracefully\n        try:\n            best_trial_value = self.study.best_value if self.study.trials else 0.0\n            best_trial_params = self.study.best_params if self.study.trials else None\n        except (ValueError, AttributeError) as e:\n            logger.log_optimize_mode(f\"Could not access best trial: {e}. Using default values.\", self.session_id )\n            best_trial_value = 0.0\n            best_trial_params = None\n\n        try:\n            # Maximum number of active workers (slightly higher than CPU cores to keep CPUs busy)\n            max_workers = min(self.cpu_cores * 2, self.n_trials - self.completed_trials)\n\n            # Dictionary to keep track of active workers\n            active_refs = {}\n            # Begin optimization loop\n            while self.completed_trials < self.n_trials:\n                if self.completed_trials == 0:\n                    update_optimization_session_trials(\n                        self.session_id,\n                        0,\n                        [],\n                        [],\n                        self.n_trials\n                    )\n                # Launch new trials if we have capacity\n                while len(active_refs) < max_workers and self.trial_counter < self.n_trials:\n                    # Generate parameters for this trial\n                    hp = self._generate_trial_params()\n\n                    # Launch the trial evaluation\n                    ref = ray_evaluate_trial.options(num_cpus=1).remote(\n                        self.user_config,\n                        router.formatted_routes,\n                        router.formatted_data_routes,\n                        self.strategy_hp,\n                        hp,\n                        self.training_warmup_candles,\n                        self.training_candles,\n                        self.testing_warmup_candles,\n                        self.testing_candles,\n                        self.optimal_total,\n                        self.fast_mode,\n                        self.trial_counter,\n                        self.session_id\n                    )\n\n                    # Store the reference\n                    active_refs[ref] = self.trial_counter\n                    self.trial_counter += 1\n\n                # No more workers to launch, wait for results\n                if not active_refs:\n                    break\n\n                # Wait for any trial to complete (with timeout to ensure responsiveness)\n                done_refs, _ = ray.wait(list(active_refs.keys()), num_returns=1, timeout=0.5)\n\n                # Process completed trials\n                for ref in done_refs:\n                    trial_number = active_refs.pop(ref)\n                    try:\n                        result = ray.get(ref)\n                        # Process the result\n                        self._process_trial_result(result)\n\n                        # Update best trial if better\n                        if result['score'] > best_trial_value:\n                            best_trial_value = result['score']\n                            best_trial_params = result['params']\n                    except ray.exceptions.RayTaskError as e:\n                        # Check if this is a RouteNotFound error converted to RuntimeError\n                        if hasattr(e, 'cause') and isinstance(e.cause, RuntimeError) and 'RouteNotFound:' in str(e.cause):\n                            raise e.cause\n                        else:\n                            jh.debug(f'Ray task error for trial {trial_number}: {e}')\n                            original_exception = e.cause\n                            raise\n                    except Exception as e:\n                        jh.debug(f'Exception raised in the ray method for trial {trial_number}: {e}')\n                        raise e\n\n            # Publish any remaining data in the buffer\n            if self.objective_curve_buffer:\n                jh.debug(f\"Publishing remaining {len(self.objective_curve_buffer)} data points in buffer\")\n                sync_publish('objective_curve', self.objective_curve_buffer)\n                self.objective_curve_buffer = []\n\n            # Get the best trial from the study\n            try:\n                best_trial = self.study.best_trial\n            except (ValueError, AttributeError) as e:\n                logger.log_optimize_mode(f\"Could not access best trial at the end: {e}\", self.session_id )\n                # Create a dummy trial if no best trial exists\n                best_trial = None\n\n            # Update the database with final results\n            update_optimization_session_trials(\n                self.session_id,\n                self.completed_trials,\n                self.best_trials,\n                self.total_objective_curve_buffer,\n                self.n_trials\n            )\n\n            # Update session status to 'finished'\n            update_optimization_session_status(self.session_id, 'finished')\n\n            # Publish completion alert\n            sync_publish('alert', {\n                'message': f\"Finished {self.n_trials} trials. Check the \\\"Best Trials\\\" table for the best performing parameters.\",\n                'type': 'success'\n            })\n\n        except exceptions.Termination:\n            # Handle user-initiated termination\n            logger.log_optimize_mode(\"Optimization terminated by user\", self.session_id )\n            # Update session status to 'stopped'\n            update_optimization_session_status(self.session_id, 'stopped')\n            raise\n        except Exception as e:\n            logger.log_optimize_mode(f\"Error during optimization: {e}\", self.session_id )\n            # Update session status to 'stopped' due to error\n            update_optimization_session_status(self.session_id, 'stopped')\n            from jesse.models.OptimizationSession import add_session_exception\n            add_session_exception(self.session_id, str(e), str(traceback.format_exc()))\n            raise\n        finally:\n            # Shutdown Ray\n            ray.shutdown()\n\n        # Create an empty FrozenTrial if best_trial is None\n        if best_trial is None:\n            logger.log_optimize_mode(\"No best trial found. Returning empty result.\", self.session_id )\n            from optuna.trial import FrozenTrial\n            return FrozenTrial(\n                number=0,\n                trial_id=0,\n                state=optuna.trial.TrialState.COMPLETE,\n                value=0.0,\n                datetime_start=None,\n                datetime_complete=None,\n                params={},\n                distributions={},\n                user_attrs={},\n                system_attrs={},\n                intermediate_values={},\n            )\n        return best_trial\n"
  },
  {
    "path": "jesse/modes/optimize_mode/__init__.py",
    "content": "from multiprocessing import cpu_count\nfrom typing import Dict, List, Tuple\nimport arrow\nimport jesse.helpers as jh\nfrom jesse.modes.backtest_mode import load_candles\nfrom jesse.services.validators import validate_routes\nfrom jesse.store import store\nfrom .Optimize import Optimizer\nfrom jesse.services.failure import register_custom_exception_handler\nfrom jesse.routes import router\nfrom jesse.models.OptimizationSession import store_optimization_session, get_optimization_session_by_id, update_optimization_session_status, update_optimization_session_state\n\n\ndef run(\n        session_id: str,\n        user_config: dict,\n        exchange: str,\n        routes: List[Dict[str, str]],\n        data_routes: List[Dict[str, str]],\n        training_start_date: str,\n        training_finish_date: str,\n        testing_start_date: str,\n        testing_finish_date: str,\n        optimal_total: int,\n        fast_mode: bool,\n        cpu_cores: int,\n        state: dict,\n) -> None:\n    if jh.python_version() == (3, 13):\n        raise ValueError(\n            'Optimization is not supported on Python 3.13. The \"Ray\" library used for optimization does not support Python 3.13 yet. Please use Python 3.12 or lower.')\n\n    from jesse.config import config, set_config\n    config['app']['trading_mode'] = 'optimize'\n\n    # validate cpu_cores\n    if cpu_cores < 1:\n        raise ValueError('cpu_cores must be an integer value greater than 0. Please check your settings page for optimization.')\n    # get the max number of cores\n    max_cpu_cores = cpu_count()\n    if cpu_cores > max_cpu_cores:\n        raise ValueError(f'cpu_cores must be less than or equal to {max_cpu_cores} which is the number of cores on your machine.')\n\n    # inject config\n    set_config(user_config)\n    # add exchange to routes\n    for r in routes:\n        r['exchange'] = exchange\n    for r in data_routes:\n        r['exchange'] = exchange\n    # set routes\n    router.initiate(routes, data_routes)\n    store.app.set_session_id(session_id)\n    register_custom_exception_handler()\n    # validate routes\n    validate_routes(router)\n\n    # load historical candles\n    training_warmup_candles, training_candles, testing_warmup_candles, testing_candles = _get_training_and_testing_candles(\n        training_start_date,\n        training_finish_date,\n        testing_start_date,\n        testing_finish_date\n    )\n\n    # Capture strategy codes for each route\n    import os\n    strategy_codes = {}\n    for r in router.routes:\n        key = f\"{r.exchange}-{r.symbol}\"\n        if key not in strategy_codes:\n            try:\n                strategy_path = f'strategies/{r.strategy_name}/__init__.py'\n                \n                if os.path.exists(strategy_path):\n                    with open(strategy_path, 'r') as f:\n                        content = f.read()\n                    strategy_codes[key] = content\n            except Exception:\n                pass\n\n    # Check if we're resuming an existing session\n    existing_session = get_optimization_session_by_id(session_id)\n\n    if existing_session:\n        # Session exists, update it for resuming\n        update_optimization_session_status(session_id, 'running')\n        update_optimization_session_state(session_id, state, strategy_codes)\n\n        if jh.is_debugging():\n            jh.debug(f\"Resuming existing optimization session with ID: {session_id}\")\n    else:\n        # Session doesn't exist, create a new one\n        store_optimization_session(\n            id=session_id,\n            status='running',\n            strategy_codes=strategy_codes if strategy_codes else None\n        )\n        update_optimization_session_state(session_id, state)\n\n        if jh.is_debugging():\n            jh.debug(f\"Created new optimization session with ID: {session_id}\")\n\n    optimizer = Optimizer(\n        session_id,\n        user_config,\n        training_warmup_candles,\n        training_candles,\n        testing_warmup_candles,\n        testing_candles,\n        fast_mode,\n        optimal_total,\n        cpu_cores\n    )\n\n    optimizer.run()\n\n\ndef _get_training_and_testing_candles(\n        training_start_date: str,\n        training_finish_date: str,\n        testing_start_date: str,\n        testing_finish_date: str\n) -> Tuple[dict, dict, dict, dict]:\n    training_start_date_timestamp = jh.arrow_to_timestamp(arrow.get(training_start_date, 'YYYY-MM-DD'))\n    training_finish_date_timestamp = jh.arrow_to_timestamp(arrow.get(training_finish_date, 'YYYY-MM-DD'))\n    testing_start_date_timestamp = jh.arrow_to_timestamp(arrow.get(testing_start_date, 'YYYY-MM-DD'))\n    testing_finish_date_timestamp = jh.arrow_to_timestamp(arrow.get(testing_finish_date, 'YYYY-MM-DD'))\n\n    # fetch training candles\n    training_warmup_candles, training_candles = load_candles(training_start_date_timestamp, training_finish_date_timestamp)\n    # fetch testing candles\n    testing_warmup_candles, testing_candles = load_candles(testing_start_date_timestamp, testing_finish_date_timestamp)\n\n    return training_warmup_candles, training_candles, testing_warmup_candles, testing_candles\n"
  },
  {
    "path": "jesse/modes/optimize_mode/fitness.py",
    "content": "import sys\nfrom math import log10\nimport jesse.helpers as jh\nfrom jesse.research.backtest import _isolated_backtest as isolated_backtest\nfrom jesse.services import logger\nimport numpy as np\nfrom jesse import exceptions\n\n\ndef _formatted_inputs_for_isolated_backtest(user_config, routes):\n    # Format input parameters required for backtest simulation\n    return {\n        'starting_balance': user_config['exchange']['balance'],\n        'fee': user_config['exchange']['fee'],\n        'type': user_config['exchange']['type'],\n        'futures_leverage': user_config['exchange']['futures_leverage'],\n        'futures_leverage_mode': user_config['exchange']['futures_leverage_mode'],\n        'exchange': routes[0]['exchange'],\n        'warm_up_candles': jh.get_config('env.data.warmup_candles_num')\n    }\n\n\ndef get_fitness(\n        user_config: dict, routes: list, data_routes: list, strategy_hp, hp: dict,\n        training_warmup_candles: dict, training_candles: dict,\n        testing_warmup_candles: dict, testing_candles: dict, optimal_total: int, fast_mode: bool, session_id\n) -> tuple:\n    \"\"\"\n    Evaluates the fitness (i.e. backtest performance) of the strategy\n    using the given hyperparameters (hp). The fitness score is calculated based on the backtest results.\n    \"\"\"\n    try:\n        inputs = _formatted_inputs_for_isolated_backtest(user_config, routes)\n        # Run backtest simulation for the training data using the suggested hyperparameters\n        training_metrics = isolated_backtest(\n            inputs,\n            routes,\n            data_routes,\n            candles=training_candles,\n            warmup_candles=training_warmup_candles,\n            hyperparameters=hp,\n            fast_mode=fast_mode\n        )['metrics']\n\n        # Calculate fitness score\n        if training_metrics['total'] > 5:\n            total_effect_rate = log10(training_metrics['total']) / log10(optimal_total)\n            total_effect_rate = min(total_effect_rate, 1)\n            objective_function_config = jh.get_config('env.optimization.objective_function', 'sharpe')\n            \n            # Get the ratio based on objective function\n            if objective_function_config == 'sharpe':\n                ratio = training_metrics['sharpe_ratio']\n                ratio_normalized = jh.normalize(ratio, -.5, 5)\n            elif objective_function_config == 'calmar':\n                ratio = training_metrics['calmar_ratio']\n                ratio_normalized = jh.normalize(ratio, -.5, 30)\n            elif objective_function_config == 'sortino':\n                ratio = training_metrics['sortino_ratio']\n                ratio_normalized = jh.normalize(ratio, -.5, 15)\n            elif objective_function_config == 'omega':\n                ratio = training_metrics['omega_ratio']\n                ratio_normalized = jh.normalize(ratio, -.5, 5)\n            elif objective_function_config == 'serenity':\n                ratio = training_metrics['serenity_index']\n                ratio_normalized = jh.normalize(ratio, -.5, 15)\n            elif objective_function_config == 'smart sharpe':\n                ratio = training_metrics['smart_sharpe']\n                ratio_normalized = jh.normalize(ratio, -.5, 5)\n            elif objective_function_config == 'smart sortino':\n                ratio = training_metrics['smart_sortino']\n                ratio_normalized = jh.normalize(ratio, -.5, 15)\n            else:\n                raise ValueError(\n                    f'The entered ratio configuration `{objective_function_config}` for the optimization is unknown. '\n                    f'Choose between sharpe, calmar, sortino, serenity, smart sharpe, smart sortino and omega.'\n                )\n\n            # If the ratio is negative then the configuration is not usable\n            if ratio < 0:\n                score = 0.0001\n                logger.log_optimize_mode(f\"NEGATIVE RATIO: hp is not usable => {objective_function_config}: {ratio}, total: {training_metrics['total']}\", session_id )\n                return score, training_metrics, {}\n\n            # Run backtest for testing period\n            testing_metrics = isolated_backtest(\n                inputs,\n                routes,\n                data_routes,\n                candles=testing_candles,\n                warmup_candles=testing_warmup_candles,\n                hyperparameters=hp,\n                fast_mode=fast_mode\n            )['metrics']\n\n            # Calculate fitness score\n            score = total_effect_rate * ratio_normalized\n            if np.isnan(score):\n                logger.log_optimize_mode(f'Score is nan. hp configuration is invalid', session_id)\n                score = 0.0001\n            else:\n                logger.log_optimize_mode(f\"hp config is usable => {objective_function_config}: {round(ratio, 2)}, total: {training_metrics['total']}, \"\n                                       f\"pnl%: {round(training_metrics['net_profit_percentage'], 2)}%, win-rate: {round(training_metrics['win_rate']*100, 2)}%\", session_id)\n        else:\n            logger.log_optimize_mode('Less than 5 trades in the training data. hp configuration is invalid', session_id)\n            score = 0.0001\n            training_metrics = {}\n            testing_metrics = {}\n\n        return score, training_metrics, testing_metrics\n\n    except exceptions.RouteNotFound as e:\n        raise e\n    except Exception as e:\n        import sys, traceback\n        exc_type, exc_value, exc_traceback = sys.exc_info()\n        traceback_details = {\n            \"filename\": exc_traceback.tb_frame.f_code.co_filename,\n            \"line\": exc_traceback.tb_lineno,\n            \"name\": exc_traceback.tb_frame.f_code.co_name,\n            \"type\": exc_type.__name__,\n            \"message\": str(e)\n        }\n        logger.log_optimize_mode(f\"Trial evaluation failed: {traceback_details}\", session_id)\n        return 0.0001, {}, {}\n"
  },
  {
    "path": "jesse/modes/utils.py",
    "content": "import jesse.helpers as jh\nfrom jesse.services import logger\nfrom jesse.info import exchange_info\n\n\ndef save_daily_portfolio_balance(is_initial=False) -> None:\n    if is_initial:\n        logger.reset()\n\n    from jesse.store import store\n\n    # # store daily_balance of assets into database\n    # if jh.is_livetrading():\n    #     for asset_key, asset_value in e.assets.items():\n    #         store_daily_balance_into_db({\n    #             'id': jh.generate_unique_id(),\n    #             'timestamp': jh.now(),\n    #             'identifier': jh.get_config('env.identifier', 'main'),\n    #             'exchange': e.name,\n    #             'asset': asset_key,\n    #             'balance': asset_value,\n    #         })\n    total_balances = 0\n    # select the first item in store.exchanges.storage.items()\n    try:\n        e, = store.exchanges.storage.values()\n    except ValueError:\n        raise ValueError('Multiple exchange support is not supported at the moment')\n    \n    if e.type == 'futures':\n        # For futures, add wallet balance and sum of all PNLs\n        total_balances = e.assets[jh.app_currency()]\n        for key, pos in store.positions.storage.items():\n            if pos.is_open:\n                total_balances += pos.pnl\n    else:\n        # For spot, just get portfolio_value from any strategy (they all share the same wallet)\n        # Get the first strategy we can find\n        for key, pos in store.positions.storage.items():\n            total_balances = pos.strategy.portfolio_value\n            break\n\n    store.app.daily_balance.append(total_balances)\n\n    if not jh.is_livetrading():\n        logger.info(f'Saved daily portfolio balance: {round(total_balances, 2)}')\n\n\ndef get_exchange_type(exchange_name: str) -> str:\n    \"\"\"\n    a helper for getting the exchange_type for the running session\n    \"\"\"\n    # in live trading, exchange type is not configurable, hence we hardcode it\n    if jh.is_live():\n        return exchange_info[exchange_name]['type']\n\n    # for other trading modes, we can get the exchange type from the config file\n    return jh.get_config(f'env.exchanges.{exchange_name}.type')\n"
  },
  {
    "path": "jesse/repositories/__init__.py",
    "content": "from . import order_repository\nfrom . import closed_trade_repository\nfrom . import candle_repository\nfrom . import live_equity_repository"
  },
  {
    "path": "jesse/repositories/candle_repository.py",
    "content": "from jesse.models.Candle import Candle\nimport jesse.helpers as jh\nfrom typing import List\nimport numpy as np\nimport arrow\n\n\ndef delete_candles_from_db(exchange: str, symbol: str) -> None:\n    \"\"\"\n    Deletes all candles for the given exchange and symbol\n    \"\"\"\n    Candle.delete().where(\n        Candle.exchange == exchange,\n        Candle.symbol == symbol\n    ).execute()\n\n\ndef get_existing_candles() -> List[dict]:\n    \"\"\"\n    Returns a list of all existing candles grouped by exchange and symbol\n    \"\"\"\n    results = []\n    \n    # Get unique exchange-symbol combinations\n    pairs = Candle.select(\n        Candle.exchange, \n        Candle.symbol\n    ).distinct().tuples()\n\n    for exchange, symbol in pairs:\n        # Get first and last candle for this pair\n        first = Candle.select(\n            Candle.timestamp\n        ).where(\n            Candle.exchange == exchange,\n            Candle.symbol == symbol\n        ).order_by(\n            Candle.timestamp.asc()\n        ).first()\n\n        last = Candle.select(\n            Candle.timestamp\n        ).where(\n            Candle.exchange == exchange,\n            Candle.symbol == symbol\n        ).order_by(\n            Candle.timestamp.desc()\n        ).first()\n\n        if first and last:\n            results.append({\n                'exchange': exchange,\n                'symbol': symbol,\n                'start_date': arrow.get(first.timestamp / 1000).format('YYYY-MM-DD'),\n                'end_date': arrow.get(last.timestamp / 1000).format('YYYY-MM-DD')\n            })\n\n    return results\n\n\ndef fetch_candles_from_db(exchange: str, symbol: str, timeframe: str, start_date: int, finish_date: int) -> tuple:\n    res = tuple(\n        Candle.select(\n            Candle.timestamp, Candle.open, Candle.close, Candle.high, Candle.low,\n            Candle.volume\n        ).where(\n            Candle.exchange == exchange,\n            Candle.symbol == symbol,\n            Candle.timeframe == timeframe,\n            Candle.timestamp.between(start_date, finish_date)\n        ).order_by(Candle.timestamp.asc()).tuples()\n    )\n\n    return res\n\n\ndef store_candles_into_db(exchange: str, symbol: str, timeframe: str, candles: np.ndarray, on_conflict='ignore') -> None:\n    # make sure the number of candles is more than 0\n    if len(candles) == 0:\n        raise Exception(f'No candles to store for {exchange}-{symbol}-{timeframe}')\n\n    # convert candles to list of dicts\n    candles_list = []\n    for candle in candles:\n        d = {\n            'id': jh.generate_unique_id(),\n            'symbol': symbol,\n            'exchange': exchange,\n            'timestamp': candle[0],\n            'open': candle[1],\n            'high': candle[3],\n            'low': candle[4],\n            'close': candle[2],\n            'volume': candle[5],\n            'timeframe': timeframe,\n        }\n        candles_list.append(d)\n\n    if on_conflict == 'ignore':\n        Candle.insert_many(candles_list).on_conflict_ignore().execute()\n    elif on_conflict == 'replace':\n        Candle.insert_many(candles_list).on_conflict(\n            conflict_target=['exchange', 'symbol', 'timeframe', 'timestamp'],\n            preserve=(Candle.open, Candle.high, Candle.low, Candle.close, Candle.volume),\n        ).execute()\n    elif on_conflict == 'error':\n        Candle.insert_many(candles_list).execute()\n    else:\n        raise Exception(f'Unknown on_conflict value: {on_conflict}')\n\n\ndef store_candle_into_db(exchange: str, symbol: str, timeframe: str, candle: np.ndarray, on_conflict='ignore') -> None:\n    d = {\n        'id': jh.generate_unique_id(),\n        'exchange': exchange,\n        'symbol': symbol,\n        'timeframe': timeframe,\n        'timestamp': candle[0],\n        'open': candle[1],\n        'high': candle[3],\n        'low': candle[4],\n        'close': candle[2],\n        'volume': candle[5]\n    }\n\n    if on_conflict == 'ignore':\n        Candle.insert(**d).on_conflict_ignore().execute()\n    elif on_conflict == 'replace':\n        Candle.insert(**d).on_conflict(\n            conflict_target=['exchange', 'symbol', 'timeframe', 'timestamp'],\n            preserve=(Candle.open, Candle.high, Candle.low, Candle.close, Candle.volume),\n        ).execute()\n    elif on_conflict == 'error':\n        Candle.insert(**d).execute()\n    else:\n        raise Exception(f'Unknown on_conflict value: {on_conflict}')\n"
  },
  {
    "path": "jesse/repositories/closed_trade_repository.py",
    "content": "from typing import List, Optional\n\nimport numpy as np\nfrom peewee import Cast\n\nimport jesse.helpers as jh\nfrom jesse.config import config\nfrom jesse.enums import order_statuses, sides\nfrom jesse.models.ClosedTrade import ClosedTrade\nfrom jesse.models.Order import Order\nfrom jesse.services.db import database\n\n\ndef _ensure_db_open() -> None:\n    if not database.is_open():\n        database.open_connection()\n\n\ndef populate_order_arrays(trade: ClosedTrade) -> ClosedTrade:\n    \"\"\"\n    Populate buy_orders and sell_orders arrays from the Order table.\n    This is needed when loading trades from the database so that computed\n    properties like entry_price, exit_price, qty, pnl, etc. work correctly.\n    \"\"\"\n    orders = list(\n        Order.select()\n        .where(Order.trade_id == trade.id)\n        .where(Order.status == order_statuses.EXECUTED)\n        .order_by(Order.executed_at)\n    )\n\n    trade.orders = orders\n\n    for o in orders:\n        if o.side == sides.BUY:\n            trade.buy_orders.append(np.array([abs(o.filled_qty), o.price]))\n        elif o.side == sides.SELL:\n            trade.sell_orders.append(np.array([abs(o.filled_qty), o.price]))\n\n    return trade\n\n\ndef find_by_id(trade_id: str) -> Optional[ClosedTrade]:\n    if jh.is_unit_testing():\n        return None\n\n    _ensure_db_open()\n\n    try:\n        trade = ClosedTrade.select().where(ClosedTrade.id == trade_id).first()\n        # add orders to trade\n        if trade:\n            populate_order_arrays(trade)\n        return trade\n    except Exception:\n        return None\n\n\ndef find_by_session_id(session_id: str, limit: int = None) -> List[ClosedTrade]:\n    if jh.is_unit_testing():\n        return []\n\n    _ensure_db_open()\n\n    query = (\n        ClosedTrade.select()\n        .where(ClosedTrade.session_id == session_id)\n        # Sort by: open trades first (closed_at IS NULL), then by most recent opened_at\n        .order_by(ClosedTrade.closed_at.is_null(False), ClosedTrade.opened_at.desc())\n    )\n    \n    if limit is not None:\n        query = query.limit(limit)\n    \n    trades = list(query)\n    for trade in trades:\n        populate_order_arrays(trade)\n    return trades\n\n\ndef create(trade_data: dict) -> Optional[ClosedTrade]:\n    if jh.is_unit_testing():\n        return None\n\n    _ensure_db_open()\n\n    d = {\n        \"id\": trade_data.get(\"id\"),\n        \"session_id\": trade_data.get(\"session_id\"),\n        \"strategy_name\": trade_data.get(\"strategy_name\"),\n        \"symbol\": trade_data.get(\"symbol\"),\n        \"exchange\": trade_data.get(\"exchange\"),\n        \"type\": trade_data.get(\"type\"),\n        \"timeframe\": trade_data.get(\"timeframe\"),\n        \"leverage\": trade_data.get(\"leverage\"),\n        \"created_at\": trade_data.get(\"created_at\", jh.now_to_timestamp()),\n        \"updated_at\": trade_data.get(\"updated_at\", jh.now_to_timestamp()),\n        \"session_mode\": config[\"app\"][\"trading_mode\"],\n        \"opened_at\": trade_data.get(\"opened_at\"),\n    }\n\n    if trade_data.get(\"closed_at\") is not None:\n        d[\"closed_at\"] = trade_data.get(\"closed_at\")\n\n    try:\n        ClosedTrade.insert(**d).execute()\n        return ClosedTrade.get(ClosedTrade.id == d[\"id\"])\n    except Exception as e:\n        try:\n            database.db.rollback()\n        except Exception:\n            pass\n        jh.dump(f\"Error storing closed trade in database: {e}\")\n        raise\n\n\ndef update(trade: ClosedTrade) -> None:\n    if jh.is_unit_testing():\n        return\n\n    _ensure_db_open()\n\n    d = {\n        \"updated_at\": jh.now_to_timestamp(),\n    }\n    \n    if trade.closed_at is not None:\n        d[\"closed_at\"] = trade.closed_at\n    if trade.opened_at is not None:\n        d['opened_at'] = trade.opened_at\n\n    try:\n        ClosedTrade.update(**d).where(ClosedTrade.id == trade.id).execute()\n    except Exception as e:\n        try:\n            database.db.rollback()\n        except Exception:\n            pass\n        jh.dump(f\"Error updating closed trade in database: {e}\")\n        raise\n\n\ndef store_or_update(trade: ClosedTrade) -> None:\n    if jh.is_unit_testing():\n        return\n\n    _ensure_db_open()\n\n    db_trade = ClosedTrade.select().where(ClosedTrade.id == trade.id).first()\n    if db_trade:\n        update(trade)\n        return\n\n    d = {\n        \"id\": trade.id,\n        \"session_id\": trade.session_id,\n        \"strategy_name\": trade.strategy_name,\n        \"symbol\": trade.symbol,\n        \"exchange\": trade.exchange,\n        \"type\": trade.type,\n        \"timeframe\": trade.timeframe,\n        \"leverage\": trade.leverage,\n        \"created_at\": trade.created_at if hasattr(trade, \"created_at\") and trade.created_at else jh.now_to_timestamp(),\n        \"updated_at\": trade.updated_at if hasattr(trade, \"updated_at\") and trade.updated_at else jh.now_to_timestamp(),\n        \"session_mode\": config[\"app\"][\"trading_mode\"],\n        \"opened_at\": trade.opened_at,\n    }\n\n    if trade.closed_at is not None:\n        d[\"closed_at\"] = trade.closed_at\n\n    try:\n        ClosedTrade.insert(**d).execute()\n    except Exception as e:\n        try:\n            database.db.rollback()\n        except Exception:\n            pass\n        jh.dump(f\"Error storing closed trade in database: {e}\")\n\n\ndef close_trade(trade: ClosedTrade, opened_at: int = None) -> None:\n    if jh.is_unit_testing():\n        return\n\n    _ensure_db_open()\n\n    d = {\n        \"closed_at\": trade.closed_at if trade.closed_at else jh.now_to_timestamp(),\n        \"updated_at\": jh.now_to_timestamp(),\n    }\n    if opened_at:\n        d[\"opened_at\"] = opened_at\n    try:\n        ClosedTrade.update(**d).where(ClosedTrade.id == trade.id).execute()\n    except Exception as e:\n        try:\n            database.db.rollback()\n        except Exception:\n            pass\n        jh.dump(f\"Error closing trade in database: {e}\")\n\n\ndef disable_trade(trade_id: str) -> None:\n    if jh.is_unit_testing():\n        return\n\n    _ensure_db_open()\n\n    d = {\n        \"soft_deleted_at\": jh.now_to_timestamp(),\n    }\n    ClosedTrade.update(**d).where(ClosedTrade.id == trade_id).execute()\n\n\ndef find_by_filters(\n    id_search: str = None,\n    status_filter: str = None,\n    symbol_filter: str = None,\n    date_filter: str = None,\n    exchange_filter: str = None,\n    type_filter: str = None,\n    limit: int = 50,\n    offset: int = 0\n) -> List[ClosedTrade]:\n    if jh.is_unit_testing():\n        return []\n\n    _ensure_db_open()\n\n    # If a previous query failed, the connection can be left in an aborted transaction state.\n    # Rolling back here ensures subsequent SELECTs work.\n    try:\n        database.db.rollback()\n    except Exception:\n        pass\n\n    query = ClosedTrade.select()\n\n    if id_search:\n        # UUID fields can't be searched with ILIKE directly; cast to text first.\n        query = query.where(\n            (Cast(ClosedTrade.id, 'text').contains(id_search)) |\n            (Cast(ClosedTrade.session_id, 'text').contains(id_search))\n        )\n\n    if status_filter:\n        if status_filter == 'open':\n            query = query.where(ClosedTrade.closed_at == None)\n        elif status_filter == 'closed':\n            query = query.where(ClosedTrade.closed_at != None)\n\n    if symbol_filter:\n        query = query.where(ClosedTrade.symbol.contains(symbol_filter))\n\n    if exchange_filter:\n        query = query.where(ClosedTrade.exchange.contains(exchange_filter))\n\n    if type_filter:\n        query = query.where(ClosedTrade.type.contains(type_filter))\n\n    if date_filter:\n        cutoff_timestamp = jh.now_to_timestamp()\n        if date_filter == '7_days':\n            cutoff_timestamp -= 7 * 24 * 60 * 60 * 1000\n        elif date_filter == '30_days':\n            cutoff_timestamp -= 30 * 24 * 60 * 60 * 1000\n        elif date_filter == '90_days':\n            cutoff_timestamp -= 90 * 24 * 60 * 60 * 1000\n        \n        if date_filter != 'all_time':\n            query = query.where(ClosedTrade.opened_at >= cutoff_timestamp)\n\n    query = query.order_by(ClosedTrade.closed_at.is_null(False), ClosedTrade.opened_at.desc()).limit(limit).offset(offset)\n\n    try:\n        trades = list(query)\n        for trade in trades:\n            populate_order_arrays(trade)\n        return trades\n    except Exception:\n        # Ensure we don't poison the connection for subsequent requests.\n        try:\n            database.db.rollback()\n        except Exception:\n            pass\n        raise\n\n\ndef get_open_trade(exchange_name: str, symbol: str, is_initial: bool = False) -> Optional[ClosedTrade]:\n    if jh.is_unit_testing():\n        return None\n\n    _ensure_db_open()\n\n    trade = (\n        ClosedTrade.select()\n        .where(ClosedTrade.soft_deleted_at == None)\n        .where(ClosedTrade.session_mode == \"livetrade\")\n        .where(ClosedTrade.exchange == exchange_name)\n        .where(ClosedTrade.symbol == symbol)\n        .where(ClosedTrade.closed_at == None)\n        .order_by(ClosedTrade.opened_at.desc())\n        .first()\n    )\n\n    if trade is None or not is_initial:\n        return trade\n\n    exchange_orders = list(\n        Order.select()\n        .where(Order.trade_id == trade.id)\n        .where(Order.status == order_statuses.EXECUTED)\n        .where(Order.order_exist_in_exchange == True)\n        .order_by(Order.executed_at)\n    )\n    simulated_orders = list(\n        Order.select()\n        .where(Order.trade_id == trade.id)\n        .where(Order.status == order_statuses.EXECUTED)\n        .where(Order.order_exist_in_exchange == False)\n        .order_by(Order.executed_at)\n    )\n    trade.is_simulated = False\n\n    if len(exchange_orders) == 0:\n        if len(simulated_orders) > 0:\n            for simulated_order in simulated_orders:\n                if simulated_order.side == sides.BUY:\n                    trade.buy_orders.append(np.array([abs(simulated_order.filled_qty), simulated_order.price]))\n                elif simulated_order.side == sides.SELL:\n                    trade.sell_orders.append(np.array([abs(simulated_order.filled_qty), simulated_order.price]))\n            trade.is_simulated = True\n        return trade\n\n    trade.orders = {order.exchange_id: order for order in exchange_orders if order.exchange_id}\n    for o in exchange_orders + simulated_orders:\n        if o.side == sides.BUY:\n            trade.buy_orders.append(np.array([abs(o.filled_qty), o.price]))\n        elif o.side == sides.SELL:\n            trade.sell_orders.append(np.array([abs(o.filled_qty), o.price]))\n    if trade.current_qty == 0:\n        close_trade(trade)\n        return None\n    else:\n        return trade\n\n"
  },
  {
    "path": "jesse/repositories/live_equity_repository.py",
    "content": "from typing import Optional, List\nimport math\nimport jesse.helpers as jh\nfrom jesse.models.LiveEquitySnapshot import LiveEquitySnapshot\nfrom jesse.services.db import database\n\n\ndef _ensure_db_open() -> None:\n    if not database.is_open():\n        database.open_connection()\n\n\ndef upsert_snapshot(session_id: str, timestamp: int, currency: str, equity: float) -> None:\n    \"\"\"\n    Insert or update a single equity snapshot for the given session and minute bucket.\n    Uses ON CONFLICT to ensure only one row per (session_id, timestamp).\n    \"\"\"\n    if jh.is_unit_testing():\n        return\n\n    _ensure_db_open()\n\n    # Peewee doesn't have native UPSERT, so we use raw SQL\n    # NOTE: Backwards compatible with older schema using bucket_ms\n    query_ts = \"\"\"\n        INSERT INTO liveequitysnapshot (session_id, \"timestamp\", currency, equity)\n        VALUES (%s, %s, %s, %s)\n        ON CONFLICT (session_id, \"timestamp\")\n        DO UPDATE SET equity = EXCLUDED.equity, currency = EXCLUDED.currency\n    \"\"\"\n    try:\n        database.db.execute_sql(query_ts, (session_id, timestamp, currency, equity))\n        return\n    except Exception:\n        query_bucket = \"\"\"\n            INSERT INTO liveequitysnapshot (session_id, bucket_ms, currency, equity)\n            VALUES (%s, %s, %s, %s)\n            ON CONFLICT (session_id, bucket_ms)\n            DO UPDATE SET equity = EXCLUDED.equity, currency = EXCLUDED.currency\n        \"\"\"\n        database.db.execute_sql(query_bucket, (session_id, timestamp, currency, equity))\n\n\ndef _choose_step_ms(from_ms: int, to_ms: int, timeframe: str, max_points: int = 1000) -> int:\n    \"\"\"\n    Choose the step size in milliseconds based on timeframe or auto-resolution.\n    \"\"\"\n    if timeframe == 'auto':\n        # Calculate raw step needed\n        duration_ms = to_ms - from_ms\n        if duration_ms <= 0:\n            return 60_000  # default to 1m\n        \n        raw_step = math.ceil(duration_ms / max_points / 60_000) * 60_000\n        \n        # Snap to friendly steps\n        if raw_step <= 60_000:\n            return 60_000  # 1m\n        elif raw_step <= 300_000:\n            return 300_000  # 5m\n        elif raw_step <= 900_000:\n            return 900_000  # 15m\n        elif raw_step <= 3_600_000:\n            return 3_600_000  # 1h\n        else:\n            return 86_400_000  # 1d\n    \n    # Fixed timeframes\n    timeframe_map = {\n        '1m': 60_000,\n        '5m': 300_000,\n        '15m': 900_000,\n        '1h': 3_600_000,\n        '1d': 86_400_000,\n    }\n    return timeframe_map.get(timeframe, 60_000)\n\n\ndef query_equity_curve(\n    session_id: str,\n    from_ms: Optional[int] = None,\n    to_ms: Optional[int] = None,\n    timeframe: str = 'auto',\n    max_points: int = 1000\n) -> dict:\n    \"\"\"\n    Query equity curve with downsampling.\n    Returns dict with currency and data points.\n    \n    Uses DISTINCT ON to return the last value per bucket.\n    \"\"\"\n    if jh.is_unit_testing():\n        return {'currency': 'USD', 'data': []}\n\n    _ensure_db_open()\n\n    # Default time range\n    if from_ms is None:\n        from_ms = 0\n    if to_ms is None:\n        # IMPORTANT: in API/server context jh.now() can return store.app.time (stale).\n        # We need a fresh wall-clock timestamp for querying DB time-series.\n        to_ms = jh.now(True)\n\n    step_ms = _choose_step_ms(from_ms, to_ms, timeframe, max_points)\n\n    # Query using DISTINCT ON for downsampling (avoid relying on SELECT alias in DISTINCT ON)\n    query_ts = \"\"\"\n        SELECT DISTINCT ON ((( \"timestamp\" / %s) * %s))\n            (( \"timestamp\" / %s) * %s) AS grp_ms,\n            \"timestamp\",\n            currency,\n            equity\n        FROM liveequitysnapshot\n        WHERE session_id = %s\n          AND \"timestamp\" >= %s\n          AND \"timestamp\" <= %s\n        ORDER BY (( \"timestamp\" / %s) * %s), \"timestamp\" DESC\n    \"\"\"\n\n    try:\n        cursor = database.db.execute_sql(\n            query_ts,\n            (step_ms, step_ms, step_ms, step_ms, session_id, from_ms, to_ms, step_ms, step_ms)\n        )\n    except Exception:\n        # Backwards compatible with older schema using bucket_ms\n        query_bucket = \"\"\"\n            SELECT DISTINCT ON ((( bucket_ms / %s) * %s))\n                (( bucket_ms / %s) * %s) AS grp_ms,\n                bucket_ms,\n                currency,\n                equity\n            FROM liveequitysnapshot\n            WHERE session_id = %s\n              AND bucket_ms >= %s\n              AND bucket_ms <= %s\n            ORDER BY (( bucket_ms / %s) * %s), bucket_ms DESC\n        \"\"\"\n        cursor = database.db.execute_sql(\n            query_bucket,\n            (step_ms, step_ms, step_ms, step_ms, session_id, from_ms, to_ms, step_ms, step_ms)\n        )\n    \n    rows = cursor.fetchall()\n    \n    if not rows:\n        return {'currency': 'USD', 'data': []}\n    \n    # Extract currency from first row\n    currency = rows[0][2] if len(rows) > 0 else 'USD'\n    \n    # Build data points\n    data = []\n    for row in rows:\n        data.append({\n            'time': int(row[1] / 1000),  # Convert ms to seconds for chart\n            'value': round(row[3], 2),\n            # Match backtest equity curve primary color (Portfolio series)\n            'color': '#818CF8'\n        })\n    \n    return {\n        'currency': currency,\n        'data': data\n    }\n\n\ndef get_session_equity_count(session_id: str) -> int:\n    \"\"\"\n    Get the total number of equity snapshots for a session.\n    Useful for debugging/monitoring.\n    \"\"\"\n    if jh.is_unit_testing():\n        return 0\n\n    _ensure_db_open()\n\n    try:\n        return LiveEquitySnapshot.select().where(\n            LiveEquitySnapshot.session_id == session_id\n        ).count()\n    except Exception:\n        return 0\n\n"
  },
  {
    "path": "jesse/repositories/live_session_repository.py",
    "content": "from typing import List, Optional\nimport json\nimport jesse.helpers as jh\nfrom jesse.models.LiveSession import LiveSession\nfrom jesse.services.db import database\nfrom jesse.enums import live_session_statuses\nfrom jesse.enums import live_session_modes\n\n\n\ndef _ensure_db_open() -> None:\n    if not database.is_open():\n        database.open_connection()\n\n\ndef get_live_session_by_id(session_id: str) -> Optional[LiveSession]:\n    \"\"\"\n    Get a single live session by ID\n    \"\"\"\n    if jh.is_unit_testing():\n        return None\n    \n    _ensure_db_open()\n    \n    try:\n        return LiveSession.select().where(LiveSession.id == session_id).first()\n    except Exception:\n        return None\n\n\ndef get_live_sessions(\n    limit: int = 50,\n    offset: int = 0,\n    title_search: str = None,\n    status_filter: str = None,\n    date_filter: str = None,\n    mode_filter: str = None\n) -> List[LiveSession]:\n    \"\"\"\n    Returns a list of LiveSession objects sorted by most recently updated with pagination and filters.\n    Excludes draft sessions by default.\n    \"\"\"\n    if jh.is_unit_testing():\n        return []\n    \n    _ensure_db_open()\n    \n    \n    query = LiveSession.select().where(LiveSession.status != live_session_statuses.DRAFT).order_by(LiveSession.updated_at.desc())\n    \n    # Apply title filter (case-insensitive)\n    if title_search:\n        query = query.where(LiveSession.title.contains(title_search))\n    \n    # Apply status filter\n    if status_filter and status_filter != 'all':\n        query = query.where(LiveSession.status == status_filter)\n    \n    # Apply mode filter\n    if mode_filter and mode_filter != 'all':\n        query = query.where(LiveSession.session_mode == mode_filter)\n    \n    # Apply date filter\n    if date_filter and date_filter != 'all_time':\n        current_timestamp = jh.now_to_timestamp(True)\n        \n        if date_filter == '7_days':\n            threshold = current_timestamp - (7 * 24 * 60 * 60 * 1000)\n        elif date_filter == '30_days':\n            threshold = current_timestamp - (30 * 24 * 60 * 60 * 1000)\n        elif date_filter == '90_days':\n            threshold = current_timestamp - (90 * 24 * 60 * 60 * 1000)\n        else:\n            threshold = 0\n        \n        if threshold > 0:\n            query = query.where(LiveSession.created_at >= threshold)\n    \n    return list(query.limit(limit).offset(offset))\n\n\ndef store_live_session(\n    id: str,\n    status: str,\n    session_mode: str,\n    exchange: str,\n    state: dict = None\n) -> None:\n    \"\"\"\n    Create or update a live session record\n    \"\"\"\n    if jh.is_unit_testing():\n        return\n    \n    _ensure_db_open()\n    \n    # Check if session already exists\n    existing_session = get_live_session_by_id(id)\n    \n    if existing_session:\n        # Update existing session - reset it to fresh state\n        d = {\n            'status': status,\n            'session_mode': session_mode,\n            'exchange': exchange,\n            'state': None,\n            'finished_at': None,\n            'exception': None,\n            'traceback': None,\n            'updated_at': jh.now_to_timestamp(True)\n        }\n        if state:\n            if isinstance(state, dict) and 'form' in state and isinstance(state['form'], dict):\n                for key in ['debug_mode', 'export_chart', 'export_tradingview', 'export_csv', 'export_json', 'fast_mode', 'benchmark']:\n                    if key in state['form']:\n                        state['form'][key] = jh.normalize_bool(state['form'].get(key))\n            d['state'] = json.dumps(state)\n\n        LiveSession.update(**d).where(LiveSession.id == id).execute()\n    else:\n        # Create a new session\n        d = {\n            'id': id,\n            'status': status,\n            'session_mode': session_mode,\n            'exchange': exchange,\n            'state': None,\n            'created_at': jh.now_to_timestamp(True),\n            'updated_at': jh.now_to_timestamp(True)\n        }\n        if state:\n            if isinstance(state, dict) and 'form' in state and isinstance(state['form'], dict):\n                for key in ['debug_mode', 'export_chart', 'export_tradingview', 'export_csv', 'export_json', 'fast_mode', 'benchmark']:\n                    if key in state['form']:\n                        state['form'][key] = jh.normalize_bool(state['form'].get(key))\n            d['state'] = json.dumps(state)\n        \n        LiveSession.insert(**d).execute()\n\n\ndef update_live_session_status(id: str, status: str) -> None:\n    \"\"\"\n    Update the status of a live session\n    \"\"\"\n    if jh.is_unit_testing():\n        return\n    \n    _ensure_db_open()\n    \n    d = {\n        'status': status,\n        'updated_at': jh.now_to_timestamp(True)\n    }\n    \n    LiveSession.update(**d).where(LiveSession.id == id).execute()\n\n\ndef update_live_session_state(id: str, state: dict) -> None:\n    \"\"\"\n    Update the state of a live session\n    \"\"\"\n    if jh.is_unit_testing():\n        return\n    \n    _ensure_db_open()\n    \n    if isinstance(state, dict) and 'form' in state and isinstance(state['form'], dict):\n        for key in ['debug_mode', 'export_chart', 'export_tradingview', 'export_csv', 'export_json', 'fast_mode', 'benchmark']:\n            if key in state['form']:\n                state['form'][key] = jh.normalize_bool(state['form'].get(key))\n    \n    d = {\n        'state': json.dumps(state),\n        'updated_at': jh.now_to_timestamp(True)\n    }\n    \n    LiveSession.update(**d).where(LiveSession.id == id).execute()\n\n\ndef upsert_live_session_state(id: str, state: dict) -> None:\n    \"\"\"\n    Create or update the state of a live session. If session doesn't exist, creates as draft.\n    \"\"\"\n    if jh.is_unit_testing():\n        return\n    \n    _ensure_db_open()\n\n    if isinstance(state, dict) and 'form' in state and isinstance(state['form'], dict):\n        for key in ['debug_mode', 'export_chart', 'export_tradingview', 'export_csv', 'export_json', 'fast_mode', 'benchmark']:\n            if key in state['form']:\n                state['form'][key] = jh.normalize_bool(state['form'].get(key))\n    \n    existing_session = get_live_session_by_id(id)\n    \n    if existing_session:\n        # Update existing session's state\n        d = {\n            'state': json.dumps(state),\n            'updated_at': jh.now_to_timestamp(True)\n        }\n        LiveSession.update(**d).where(LiveSession.id == id).execute()\n    else:\n        # Extract exchange from state.form if available\n        exchange = state.get('form', {}).get('exchange', '')\n        session_mode = live_session_modes.PAPERTRADE if state.get('form', {}).get('paper_mode', True) else live_session_modes.LIVETRADE\n        \n        d = {\n            'id': id,\n            'status': live_session_statuses.DRAFT,\n            'session_mode': session_mode,\n            'exchange': exchange,\n            'state': json.dumps(state),\n            'created_at': jh.now_to_timestamp(True),\n            'updated_at': jh.now_to_timestamp(True)\n        }\n        LiveSession.insert(**d).execute()\n\n\ndef update_live_session_notes(\n    id: str,\n    title: str = None,\n    description: str = None,\n    strategy_codes: dict = None\n) -> None:\n    \"\"\"\n    Update the notes (title, description, strategy_codes) of a live session\n    \"\"\"\n    if jh.is_unit_testing():\n        return\n    \n    _ensure_db_open()\n    \n    d = {\n        'updated_at': jh.now_to_timestamp(True)\n    }\n    \n    if title is not None:\n        d['title'] = title\n    \n    if description is not None:\n        d['description'] = description\n    \n    if strategy_codes is not None:\n        d['strategy_codes'] = json.dumps(strategy_codes)\n    \n    LiveSession.update(**d).where(LiveSession.id == id).execute()\n\n\ndef update_live_session_finished(id: str, finished_at: int = None) -> None:\n    \"\"\"\n    Mark a live session as finished with the finish timestamp\n    \"\"\"\n    if jh.is_unit_testing():\n        return\n    \n    _ensure_db_open()\n    \n    d = {\n        'finished_at': finished_at if finished_at else jh.now_to_timestamp(True),\n        'updated_at': jh.now_to_timestamp(True)\n    }\n    \n    LiveSession.update(**d).where(LiveSession.id == id).execute()\n\n\ndef store_live_session_exception(id: str, exception: str, traceback: str) -> None:\n    \"\"\"\n    Store exception information for a live session\n    \"\"\"\n    if jh.is_unit_testing():\n        return\n    \n    _ensure_db_open()\n    \n    d = {\n        'exception': exception,\n        'traceback': traceback,\n        'updated_at': jh.now_to_timestamp(True)\n    }\n    \n    LiveSession.update(**d).where(LiveSession.id == id).execute()\n\n\ndef delete_live_session(session_id: str) -> bool:\n    \"\"\"\n    Delete a live session from the database\n    \"\"\"\n    if jh.is_unit_testing():\n        return True\n    \n    _ensure_db_open()\n    \n    try:\n        LiveSession.delete().where(LiveSession.id == session_id).execute()\n        return True\n    except Exception as e:\n        jh.debug(f\"Error deleting live session: {e}\")\n        return False\n\n\ndef purge_live_sessions(days_old: int = None) -> int:\n    \"\"\"\n    Purge live sessions older than specified days\n    Returns the number of sessions deleted\n    \"\"\"\n    if jh.is_unit_testing():\n        return 0\n    \n    _ensure_db_open()\n    \n    try:\n        current_timestamp = jh.now_to_timestamp(True)\n        \n        if days_old is not None:\n            days_old = int(days_old)\n        \n        if days_old is not None and days_old > 0:\n            threshold = current_timestamp - (days_old * 24 * 60 * 60 * 1000)\n            \n            all_sessions = LiveSession.select()\n            sessions_to_delete = []\n            \n            for session in all_sessions:\n                try:\n                    session_updated_at = int(session.updated_at) if session.updated_at else 0\n                    if session_updated_at < threshold:\n                        sessions_to_delete.append(session.id)\n                except (ValueError, TypeError):\n                    continue\n            \n            deleted_count = 0\n            for session_id in sessions_to_delete:\n                try:\n                    LiveSession.delete().where(LiveSession.id == session_id).execute()\n                    deleted_count += 1\n                except Exception:\n                    pass\n        else:\n            # Delete all sessions\n            deleted_count = LiveSession.delete().execute()\n        \n        return deleted_count\n    except Exception as e:\n        jh.debug(f\"Error purging live sessions: {e}\")\n        return 0\n\n"
  },
  {
    "path": "jesse/repositories/open_tab_repository.py",
    "content": "from typing import List\nimport jesse.helpers as jh\nfrom jesse.models.OpenTab import OpenTab\nfrom jesse.services.db import database\nimport peewee\n\n\ndef _ensure_db_open() -> None:\n    if not database.is_open():\n        database.open_connection()\n\n\ndef get_open_tabs(module: str) -> List[OpenTab]:\n    \"\"\"\n    Get all open tabs for a module, ordered by order_index\n    \"\"\"\n    if jh.is_unit_testing():\n        return []\n    \n    _ensure_db_open()\n    \n    try:\n        return list(OpenTab.select().where(OpenTab.module == module).order_by(OpenTab.order_index.asc()))\n    except Exception:\n        return []\n\n\ndef get_open_tab_session_ids(module: str) -> List[str]:\n    \"\"\"\n    Get session IDs of all open tabs for a module, ordered by order_index\n    \"\"\"\n    tabs = get_open_tabs(module)\n    return [str(tab.session_id) for tab in tabs]\n\n\ndef add_open_tab(module: str, session_id: str) -> List[str]:\n    \"\"\"\n    Add a new tab (or update if exists). Returns ordered list of session IDs.\n    For singleton modules (optimization, monte_carlo), ensures only 1 tab exists.\n    \"\"\"\n    if jh.is_unit_testing():\n        return []\n    \n    _ensure_db_open()\n    \n    singleton_modules = ['optimization', 'monte_carlo']\n    \n    # For singleton modules, remove all existing tabs first\n    if module in singleton_modules:\n        OpenTab.delete().where(OpenTab.module == module).execute()\n        order_index = 0\n    else:\n        # Check if tab already exists\n        existing = OpenTab.select().where(\n            (OpenTab.module == module) & (OpenTab.session_id == session_id)\n        ).first()\n        \n        if existing:\n            # Already exists, just return current order\n            return get_open_tab_session_ids(module)\n        \n        # Get max order_index for this module\n        max_order = OpenTab.select(peewee.fn.MAX(OpenTab.order_index)).where(\n            OpenTab.module == module\n        ).scalar()\n        order_index = (max_order + 1) if max_order is not None else 0\n    \n    # Create new tab\n    now = jh.now_to_timestamp(True)\n    OpenTab.create(\n        id=jh.generate_unique_id(),\n        module=module,\n        session_id=session_id,\n        order_index=order_index,\n        created_at=now,\n        updated_at=now\n    )\n    \n    return get_open_tab_session_ids(module)\n\n\ndef remove_open_tab(module: str, session_id: str) -> List[str]:\n    \"\"\"\n    Remove a tab and reorder remaining tabs. Returns ordered list of session IDs.\n    \"\"\"\n    if jh.is_unit_testing():\n        return []\n    \n    _ensure_db_open()\n    \n    # Delete the tab\n    OpenTab.delete().where(\n        (OpenTab.module == module) & (OpenTab.session_id == session_id)\n    ).execute()\n    \n    # Reorder remaining tabs\n    tabs = get_open_tabs(module)\n    for idx, tab in enumerate(tabs):\n        if tab.order_index != idx:\n            tab.order_index = idx\n            tab.updated_at = jh.now_to_timestamp(True)\n            tab.save()\n    \n    return get_open_tab_session_ids(module)\n\n\ndef reorder_open_tabs(module: str, session_ids: List[str]) -> List[str]:\n    \"\"\"\n    Reorder tabs to match the provided session_ids list.\n    For singleton modules, ensures only 1 tab exists.\n    Returns ordered list of session IDs.\n    \"\"\"\n    if jh.is_unit_testing():\n        return []\n    \n    _ensure_db_open()\n    \n    singleton_modules = ['optimization', 'monte_carlo']\n    \n    # For singleton modules, keep only the first ID\n    if module in singleton_modules:\n        session_ids = session_ids[:1] if session_ids else []\n        \n        # Remove all tabs that aren't in the singleton list\n        if session_ids:\n            OpenTab.delete().where(\n                (OpenTab.module == module) & (OpenTab.session_id != session_ids[0])\n            ).execute()\n        else:\n            OpenTab.delete().where(OpenTab.module == module).execute()\n    \n    now = jh.now_to_timestamp(True)\n    \n    # Update order_index for each tab\n    for idx, session_id in enumerate(session_ids):\n        tab = OpenTab.select().where(\n            (OpenTab.module == module) & (OpenTab.session_id == session_id)\n        ).first()\n        \n        if tab:\n            tab.order_index = idx\n            tab.updated_at = now\n            tab.save()\n        else:\n            # Create if doesn't exist\n            OpenTab.create(\n                id=jh.generate_unique_id(),\n                module=module,\n                session_id=session_id,\n                order_index=idx,\n                created_at=now,\n                updated_at=now\n            )\n    \n    # Remove tabs that aren't in the provided list\n    OpenTab.delete().where(\n        (OpenTab.module == module) & (OpenTab.session_id.not_in(session_ids))\n    ).execute()\n    \n    return get_open_tab_session_ids(module)\n\n\ndef clear_open_tabs(module: str) -> None:\n    \"\"\"\n    Remove all open tabs for a module\n    \"\"\"\n    if jh.is_unit_testing():\n        return\n    \n    _ensure_db_open()\n    \n    OpenTab.delete().where(OpenTab.module == module).execute()\n\n"
  },
  {
    "path": "jesse/repositories/order_repository.py",
    "content": "from typing import Optional, List, Tuple\nimport uuid\nimport numpy as np\nimport jesse.helpers as jh\nfrom peewee import Cast\nfrom jesse.models import Candle\nfrom jesse.models.Order import Order\nfrom jesse.enums import order_statuses\nfrom jesse.config import config\nfrom jesse.store import store\nfrom jesse.services.db import database\n\n\ndef create(order_data: dict) -> Order:\n    if jh.is_unit_testing():\n        return None\n\n    if not database.is_open():\n        database.open_connection()\n        \n    d = {\n        'id': order_data.get('id'),\n        'session_id': store.app.session_id,\n        'symbol': order_data.get('symbol'),\n        'exchange': order_data.get('exchange'),\n        'side': order_data.get('side'),\n        'type': order_data.get('type'),\n        'reduce_only': order_data.get('reduce_only'),\n        'qty': order_data.get('qty'),\n        'status': order_data.get('status'),\n        'created_at': order_data.get('created_at', jh.now_to_timestamp()),\n        'updated_at': order_data.get('updated_at', jh.now_to_timestamp()),\n        'session_mode': config['app']['trading_mode'],\n    }\n    \n    if 'trade_id' in order_data and order_data.get('trade_id'):\n        d['trade_id'] = order_data['trade_id']\n    if 'executed_at' in order_data and order_data.get('executed_at'):\n        d['executed_at'] = order_data['executed_at']\n    if 'filled_qty' in order_data:\n        d['filled_qty'] = order_data.get('filled_qty')\n    if 'price' in order_data:\n        d['price'] = order_data.get('price')\n    if 'submitted_via' in order_data and order_data.get('submitted_via'):\n        d['submitted_via'] = order_data['submitted_via']\n    if 'jesse_submitted' in order_data:\n        d['jesse_submitted'] = order_data.get('jesse_submitted')\n    if 'exchange_id' in order_data and order_data.get('exchange_id'):\n        d['exchange_id'] = order_data['exchange_id']\n    if 'order_exist_in_exchange' in order_data:\n        d['order_exist_in_exchange'] = order_data.get('order_exist_in_exchange')\n    if 'canceled_at' in order_data and order_data.get('canceled_at'):\n        d['canceled_at'] = order_data['canceled_at']\n    \n    try:\n        Order.insert(**d).execute()\n        return Order.get(Order.id == d['id'])\n    except Exception as e:\n        try:\n            database.db.rollback()\n        except Exception:\n            pass\n        jh.dump(f\"Error storing order in database: {e}\")\n        raise\n\n\ndef update(order: Order) -> None:\n    if jh.is_unit_testing():\n        return\n\n    if not database.is_open():\n        database.open_connection()\n        \n    db_order = None\n    if order.exchange_id:\n        db_order = Order.select().where(Order.exchange_id == str(order.exchange_id)).first()\n    if db_order is None and order.id:\n        try:\n            db_order = Order.select().where(Order.id == order.id).first()\n        except Exception:\n            try:\n                database.db.rollback()\n            except Exception:\n                pass\n            matches = find_by_partial_id(str(order.id), order.exchange, order.symbol)\n            if matches and len(matches) == 1:\n                db_order = matches[0]\n\n    if db_order:\n        d = {\n            'updated_at': jh.now_to_timestamp(),\n            'status': order.status,\n            'filled_qty': order.filled_qty,\n            'price': db_order.price if order.price == 0 else order.price,\n            'exchange_id': order.exchange_id,\n        }\n        \n        if order.vars:\n            d['vars'] = order.vars\n        \n        if order.is_executed:\n            d['executed_at'] = getattr(order, 'executed_at', jh.now_to_timestamp())\n        if order.is_canceled:\n            d['canceled_at'] = jh.now_to_timestamp()\n        if order.trade_id:\n            d['trade_id'] = order.trade_id\n        if order.submitted_via:\n            d['submitted_via'] = order.submitted_via\n        if order.qty != 0:\n            d['qty'] = order.qty\n        if order.fee:\n            d['fee'] = order.fee\n        try:\n            Order.update(**d).where(Order.id == db_order.id).execute()\n        except Exception as e:\n            try:\n                database.db.rollback()\n            except Exception:\n                pass\n            jh.dump(f\"Error updating order in database: {e}\")\n            raise\n\n\ndef store_or_update(order: Order) -> None:\n    if jh.is_unit_testing():\n        return\n\n    if not database.is_open():\n        database.open_connection()\n        \n    order_exist = False\n    try:\n        if order.exchange_id:\n            order_exist = Order.select().where(Order.exchange_id == str(order.exchange_id)).first()\n        if not order_exist and order.id:\n            order_exist = Order.select().where(Order.id == order.id).first()\n        if not order_exist and order.vars:\n            if 'algo_id' in order.vars:\n                order_exist = Order.select().where(Order.vars['algo_id'].cast('bigint') == order.vars['algo_id']).first()\n        if not order_exist and order.id and len(str(order.id)) <= 25:\n            potential_matches = find_by_partial_id(str(order.id), order.exchange, order.symbol)\n            if potential_matches and len(potential_matches) == 1:\n                order_exist = potential_matches[0]\n    except Exception as e:\n        order_exist = False\n    \n    if order_exist:\n        order.id = order_exist.id\n        update(order)\n        return\n    \n    d = {\n        'id': order.id,\n        'session_id': store.app.session_id,\n        'symbol': order.symbol,\n        'exchange': order.exchange,\n        'side': order.side,\n        'type': order.type,\n        'reduce_only': order.reduce_only,\n        'qty': order.qty,\n        'status': order.status,\n        'created_at': order.created_at if order.created_at else jh.now_to_timestamp(),\n        'updated_at': order.updated_at if order.updated_at else jh.now_to_timestamp(),\n        'session_mode': config['app']['trading_mode'],\n    }\n    if hasattr(order, 'trade_id'):\n        d['trade_id'] = order.trade_id\n    if hasattr(order, 'executed_at'):\n        d['executed_at'] = order.executed_at\n    if hasattr(order, 'filled_qty'):\n        d['filled_qty'] = order.filled_qty\n    if hasattr(order, 'price'):\n        d['price'] = order.price\n    if order.submitted_via:\n        d['submitted_via'] = order.submitted_via\n    if hasattr(order, 'jesse_submitted'):\n        d['jesse_submitted'] = order.jesse_submitted\n    if hasattr(order, 'exchange_id'):\n        d['exchange_id'] = order.exchange_id\n    if hasattr(order, 'order_exist_in_exchange'):\n        d['order_exist_in_exchange'] = order.order_exist_in_exchange\n    if hasattr(order, 'canceled_at'):\n        d['canceled_at'] = order.canceled_at\n    if hasattr(order, 'fee'):\n        d['fee'] = order.fee\n    if hasattr(order, 'vars'):\n        d['vars'] = order.vars\n    \n    try:\n        Order.insert(**d).execute()\n    except Exception as e:\n        try:\n            database.db.rollback()\n        except Exception:\n            pass\n        jh.dump(f\"Error storing order in database: {e}\")\n\n\ndef find_by_id(order_id: str) -> Optional[Order]:\n    if jh.is_unit_testing():\n        return None\n\n    if not database.is_open():\n        database.open_connection()\n\n    try:\n        return Order.select().where(Order.id == order_id).first()\n    except Exception:\n        return None\n\n\ndef find_by_exchange_id(exchange_id: str) -> Optional[Order]:\n    if jh.is_unit_testing():\n        return None\n\n    if not database.is_open():\n        database.open_connection()\n\n    try:\n        return Order.select().where(Order.exchange_id == exchange_id).first()\n    except Exception:\n        return None\n\n\ndef find_by_exchange_or_client_id(order_dict: dict) -> Optional[Order]:\n    if jh.is_unit_testing():\n        return None\n\n    if not database.is_open():\n        database.open_connection()\n\n    exchange_id = order_dict.get('exchange_id') if 'exchange_id' in order_dict else None\n    client_id = order_dict.get('client_id') if 'client_id' in order_dict else None\n    order = None\n    if exchange_id:\n        order = Order.select().where(Order.exchange_id == exchange_id).first()\n    if not order and client_id:\n        # check if the client_id is a valid UUID, if it is, use it as is, otherwise, search for the partial id\n        try:\n            uuid.UUID(client_id)\n            is_valid_uuid = True\n        except (ValueError, AttributeError):\n            is_valid_uuid = False\n\n        if is_valid_uuid:\n            order = Order.select().where(Order.id == client_id).first()\n        if not order:\n            # UUID fields can't be searched with ILIKE directly; cast to text first.\n            order = Order.select().where(Cast(Order.id, 'text').contains(client_id)).first()\n    return order\n\n\ndef find_by_vars(exchange: str, symbol: str, vars: dict) -> Optional[Order]:\n    if jh.is_unit_testing():\n        return None\n\n    if not database.is_open():\n        database.open_connection()\n    \n    if 'algo_id' in vars:\n        return Order.select().where(Order.exchange == exchange, Order.symbol == symbol, Order.vars['algo_id'].cast('bigint') == vars['algo_id']).first()\n    return None\n\ndef find_by_partial_id(partial_id: str, exchange: str = None, symbol: str = None) -> List[Order]:\n    if jh.is_unit_testing():\n        return []\n\n    if not database.is_open():\n        database.open_connection()\n\n    # UUID fields can't be searched with ILIKE directly; cast to text first.\n    query = Order.select().where(Cast(Order.id, 'text').contains(partial_id))\n    \n    if exchange:\n        query = query.where(Order.exchange == exchange)\n    if symbol:\n        query = query.where(Order.symbol == symbol)\n    \n    return list(query)\n\n\ndef find_by_trade_id(trade_id: str) -> List[Order]:\n    if jh.is_unit_testing():\n        return []\n\n    if not database.is_open():\n        database.open_connection()\n\n    return list(Order.select().where(Order.trade_id == trade_id))\n\n\ndef get_active_orders(symbol: str, exchange: str) -> List[Order]:\n    if jh.is_unit_testing():\n        return []\n\n    if not database.is_open():\n        database.open_connection()\n\n    from jesse.models.ClosedTrade import ClosedTrade\n    \n    orders = Order.select().where(\n        Order.symbol == symbol,\n        Order.status == order_statuses.ACTIVE,\n        Order.exchange == exchange\n    )\n    \n    for order in orders:\n        if order.trade_id:\n            order.trade = ClosedTrade.get_trade_by_id(order.trade_id)\n    return list(orders)\n\n\ndef get_executed_and_active_orders_without_trade_id(symbol: str, exchange: str) -> Tuple[List[Order], List[Order]]:\n    if jh.is_unit_testing():\n        return [], []\n\n    if not database.is_open():\n        database.open_connection()\n\n    executed_orders = list(Order.select().where(\n        Order.symbol == symbol,\n        (Order.status == order_statuses.EXECUTED),\n        Order.exchange == exchange,\n        Order.trade_id == None,\n        Order.order_exist_in_exchange == True\n    ).order_by(\n        Order.executed_at.asc()\n    ))\n    active_orders = list(Order.select().where(\n        Order.symbol == symbol,\n        (Order.status == order_statuses.ACTIVE),\n        Order.exchange == exchange,\n        Order.order_exist_in_exchange == True\n    ).order_by(\n        Order.created_at.asc()\n    ))\n    return executed_orders, active_orders\n\n\ndef get_session_orders(session_id: str, exchange: str, symbol: str) -> List[Order]:\n    if jh.is_unit_testing():\n        return []\n\n    if not database.is_open():\n        database.open_connection()\n\n    return list(Order.select().where(\n        Order.session_id == session_id,\n        Order.exchange == exchange,\n        Order.symbol == symbol\n    ))\n\n\ndef get_last_exchange_order(exchange: str, symbol: str) -> Optional[Order]:\n    if jh.is_unit_testing():\n        return None\n\n    if not database.is_open():\n        database.open_connection()\n\n    return Order.select().where(\n        Order.exchange == exchange,\n        Order.symbol == symbol\n    ).where(\n        Order.trade_id != None\n    ).where(\n        Order.order_exist_in_exchange == True\n    ).order_by(\n        Order.created_at.desc()\n    ).first()\n\n\ndef get_simulated_orders(exchange: str, symbol: str, qty: float = None) -> List[Order]:\n    if jh.is_unit_testing():\n        return []\n\n    if not database.is_open():\n        database.open_connection()\n\n    query = Order.select().where(\n        Order.exchange == exchange,\n        Order.symbol == symbol,\n        Order.order_exist_in_exchange == False\n    )\n    if qty:\n        query = query.where(Order.qty == qty)\n    return list(query.order_by(Order.created_at.desc()))\n\n\ndef find_by_filters(\n    id_search: str = None,\n    status_filter: str = None,\n    symbol_filter: str = None,\n    date_filter: str = None,\n    exchange_filter: str = None,\n    type_filter: str = None,\n    side_filter: str = None,\n    limit: int = 50,\n    offset: int = 0\n) -> List[Order]:\n    if jh.is_unit_testing():\n        return []\n\n    if not database.is_open():\n        database.open_connection()\n\n    # If a previous query failed, the connection can be left in an aborted transaction state.\n    # Rolling back here ensures subsequent SELECTs work.\n    try:\n        database.db.rollback()\n    except Exception:\n        pass\n\n    query = Order.select()\n\n    if id_search:\n        # UUID fields can't be searched with ILIKE directly; cast to text first.\n        query = query.where(\n            (Cast(Order.id, 'text').contains(id_search)) |\n            (Cast(Order.session_id, 'text').contains(id_search)) |\n            (Order.exchange_id.contains(id_search))\n        )\n\n    if status_filter:\n        query = query.where(Order.status == status_filter)\n\n    if symbol_filter:\n        query = query.where(Order.symbol.contains(symbol_filter))\n\n    if exchange_filter:\n        query = query.where(Order.exchange.contains(exchange_filter))\n\n    if type_filter:\n        query = query.where(Order.type.contains(type_filter))\n\n    if side_filter:\n        query = query.where(Order.side.contains(side_filter))\n\n    if date_filter:\n        cutoff_timestamp = jh.now_to_timestamp()\n        if date_filter == '7_days':\n            cutoff_timestamp -= 7 * 24 * 60 * 60 * 1000\n        elif date_filter == '30_days':\n            cutoff_timestamp -= 30 * 24 * 60 * 60 * 1000\n        elif date_filter == '90_days':\n            cutoff_timestamp -= 90 * 24 * 60 * 60 * 1000\n\n        if date_filter != 'all_time':\n            query = query.where(Order.created_at >= cutoff_timestamp)\n\n    query = query.order_by(Order.created_at.desc()).limit(limit).offset(offset)\n\n    try:\n        return list(query)\n    except Exception:\n        # Ensure we don't poison the connection for subsequent requests.\n        try:\n            database.db.rollback()\n        except Exception:\n            pass\n        raise\n\n\ndef delete(order_id: str) -> None:\n    if jh.is_unit_testing():\n        return\n\n    if not database.is_open():\n        database.open_connection()\n\n    Order.delete().where(Order.id == order_id).execute()\n"
  },
  {
    "path": "jesse/research/__init__.py",
    "content": "from .candles import get_candles, store_candles, fake_candle, fake_range_candles, candles_from_close_prices\nfrom .backtest import backtest\nfrom .monte_carlo import monte_carlo_trades, monte_carlo_candles\nfrom .import_candles import import_candles\nfrom .ml import gather_ml_data, train_model, load_ml_data_csv, load_ml_model\n"
  },
  {
    "path": "jesse/research/backtest.py",
    "content": "from typing import List, Dict\nimport copy\nfrom jesse.services import candle_service, exchange_service, order_service, position_service\nfrom jesse.services.validators import validate_routes\nfrom jesse.modes.backtest_mode import simulator\nfrom jesse.config import config as jesse_config, reset_config, set_config\nfrom jesse.routes import router\nfrom jesse.store import store\nimport jesse.helpers as jh \n\n\ndef backtest(\n        config: dict,\n        routes: List[Dict[str, str]],\n        data_routes: List[Dict[str, str]],\n        candles: dict,\n        warmup_candles: dict = None,\n        generate_tradingview: bool = False,\n        generate_hyperparameters: bool = False,\n        generate_equity_curve: bool = False,\n        benchmark: bool = False,\n        generate_csv: bool = False,\n        generate_json: bool = False,\n        generate_logs: bool = False,\n        hyperparameters: dict = None,\n        fast_mode: bool = False,\n        candles_pipeline_class = None,\n        candles_pipeline_kwargs: dict = None,\n) -> dict:\n    \"\"\"\n    An isolated backtest() function which is perfect for using in research, and AI training\n    such as our own optimization mode. Because of it being a pure function, it can be used\n    in Python's multiprocessing without worrying about pickling issues.\n\n    Example `config`:\n    {\n        'starting_balance': 5_000,\n        'fee': 0.005,\n        'type': 'futures',\n        'futures_leverage': 3,\n        'futures_leverage_mode': 'cross',\n        'exchange': 'Binance',\n        'warm_up_candles': 0\n    }\n\n    Example `route`:\n    [{'exchange': 'Bybit USDT Perpetual', 'strategy': 'A1', 'symbol': 'BTC-USDT', 'timeframe': '1m'}]\n\n    Example `data_route`:\n    [{'exchange': 'Bybit USDT Perpetual', 'symbol': 'BTC-USDT', 'timeframe': '3m'}]\n\n    Example `candles`:\n    {\n        'Binance-BTC-USDT': {\n            'exchange': 'Binance',\n            'symbol': 'BTC-USDT',\n            'candles': np.array([]),\n        },\n    }\n    \"\"\"\n    return _isolated_backtest(\n        config,\n        routes,\n        data_routes,\n        candles,\n        warmup_candles,\n        run_silently=True,\n        hyperparameters=hyperparameters,\n        generate_tradingview=generate_tradingview,\n        generate_csv=generate_csv,\n        generate_json=generate_json,\n        generate_equity_curve=generate_equity_curve,\n        benchmark=benchmark,\n        generate_hyperparameters=generate_hyperparameters,\n        generate_logs=generate_logs,\n        fast_mode=fast_mode,\n        candles_pipeline_class=candles_pipeline_class,\n        candles_pipeline_kwargs=candles_pipeline_kwargs,\n    )\n\n\ndef _isolated_backtest(\n        config: dict,\n        routes: List[Dict[str, str]],\n        data_routes: List[Dict[str, str]],\n        candles: dict,\n        warmup_candles: dict = None,\n        run_silently: bool = True,\n        hyperparameters: dict = None,\n        generate_tradingview: bool = False,\n        generate_csv: bool = False,\n        generate_json: bool = False,\n        generate_equity_curve: bool = False,\n        benchmark: bool = False,\n        generate_hyperparameters: bool = False,\n        generate_logs: bool = False,\n        fast_mode: bool = False,\n        candles_pipeline_class = None,\n        candles_pipeline_kwargs: dict = None,\n) -> dict:\n    jesse_config['app']['trading_mode'] = 'backtest'\n\n    # inject (formatted) configuration values\n    set_config(_format_config(config))\n\n    # set routes\n    router.initiate(routes, data_routes)\n    # reset store\n    store.reset()\n    # validate routes\n    validate_routes(router)\n    # initiate candle store\n    store.candles.init_storage(5000)\n    # initialize exchanges state\n    exchange_service.initialize_exchanges_state()\n    # initialize orders state\n    order_service.initialize_orders_state()\n    # initialize positions state\n    position_service.initialize_positions_state()\n\n    # assert that the passed candles are 1m candles\n    for key, value in candles.items():\n        candle_set = value['candles']\n        if candle_set[1][0] - candle_set[0][0] != 60_000:\n            raise ValueError(\n                f'Candles passed to the research.backtest() must be 1m candles. '\n                f'\\nIf you wish to trade other timeframes, notice that you need to pass it through '\n                f'the timeframe option in your routes. '\n                f'\\nThe difference between your candles are {candle_set[1][0] - candle_set[0][0]} milliseconds which more than '\n                f'the accepted 60000 milliseconds.'\n            )\n\n    # make a copy to make sure we don't mutate the past data causing some issues for multiprocessing tasks\n    trading_candles_dict = copy.deepcopy(candles)\n    warmup_candles_dict = copy.deepcopy(warmup_candles)\n\n    # if warmup_candles is passed, use it\n    if warmup_candles:\n        for c in jesse_config['app']['considering_candles']:\n            key = jh.key(c[0], c[1])\n            # inject warm-up candles\n            candle_service.inject_warmup_candles_to_store(\n                warmup_candles_dict[key]['candles'],\n                c[0],\n                c[1]\n            )\n\n    # run backtest simulation\n    backtest_result = simulator(\n        trading_candles_dict,\n        run_silently,\n        hyperparameters=hyperparameters,\n        generate_tradingview=generate_tradingview,\n        generate_csv=generate_csv,\n        generate_json=generate_json,\n        generate_equity_curve=generate_equity_curve,\n        benchmark=benchmark,\n        generate_hyperparameters=generate_hyperparameters,\n        generate_logs=generate_logs,\n        fast_mode=fast_mode,\n        candles_pipeline_class=candles_pipeline_class,\n        candles_pipeline_kwargs=candles_pipeline_kwargs\n    )\n\n    result = {\n        'metrics': {'total': 0, 'win_rate': 0, 'net_profit_percentage': 0},\n        'logs': None,\n    }\n\n    if backtest_result['metrics'] is None:\n        result['metrics'] = {'total': 0, 'win_rate': 0, 'net_profit_percentage': 0}\n    else:\n        result['metrics'] = backtest_result['metrics']\n\n    if generate_tradingview:\n        result['tradingview'] = backtest_result['tradingview']\n    if generate_csv:\n        result['csv'] = backtest_result['csv']\n    if generate_json:\n        result['json'] = backtest_result['json']\n    if generate_equity_curve:\n        result['equity_curve'] = backtest_result['equity_curve']\n    if generate_hyperparameters:\n        result['hyperparameters'] = backtest_result['hyperparameters']\n    if generate_logs:\n        result['logs'] = backtest_result['logs']\n    \n    # Always include trades if available (needed for trade-shuffling Monte Carlo)\n    if 'trades' in backtest_result:\n        result['trades'] = backtest_result['trades']\n\n    # reset store and config so rerunning would be flawlessly possible\n    reset_config()\n    store.reset()\n\n    return result\n\n\ndef _format_config(config):\n    \"\"\"\n    Jesse's required format for user_config is different from what this function accepts (so it\n    would be easier to write for the researcher). Hence, we need to reformat the config_dict:\n    \"\"\"\n    exchange_config = {\n        'balance': config['starting_balance'],\n        'fee': config['fee'],\n        'type': config['type'],\n        'name': config['exchange'],\n    }\n    # futures exchange has different config, so:\n    if exchange_config['type'] == 'futures':\n        exchange_config['futures_leverage'] = config['futures_leverage']\n        exchange_config['futures_leverage_mode'] = config['futures_leverage_mode']\n\n    return {\n        'exchanges': {\n            config['exchange']: exchange_config\n        },\n        'logging': {\n            'balance_update': True,\n            'order_cancellation': True,\n            'order_execution': True,\n            'order_submission': True,\n            'position_closed': True,\n            'position_increased': True,\n            'position_opened': True,\n            'position_reduced': True,\n            'shorter_period_candles': False,\n            'trading_candles': True\n        },\n        'warm_up_candles': config['warm_up_candles']\n    }\n"
  },
  {
    "path": "jesse/research/candles.py",
    "content": "import numpy as np\nfrom typing import Union, Tuple\nfrom jesse import factories\nimport jesse.helpers as jh\nfrom jesse.services.candle_service import get_candles_from_db as _get_candles\n\n\ndef get_candles(\n        exchange: str,\n        symbol: str,\n        timeframe: str,\n        start_date_timestamp: int,\n        finish_date_timestamp: int,\n        warmup_candles_num: int = 0,\n        caching: bool = False,\n        is_for_jesse: bool = False\n) -> Tuple[np.ndarray, np.ndarray]:\n    if not jh.is_jesse_project():\n        raise FileNotFoundError(\n            'Invalid directory: \".env\" file not found. To use Jesse inside notebooks, create notebooks inside the root of a Jesse project.'\n        )\n\n    return _get_candles(exchange, symbol, timeframe, start_date_timestamp, finish_date_timestamp, warmup_candles_num, caching, is_for_jesse)\n\n\ndef store_candles(candles: np.ndarray, exchange: str, symbol: str) -> None:\n    \"\"\"\n    Stores candles in the database. The stored data can later be used for being fetched again via get_candles or even for running backtests on them.\n    A common use case for this function is for importing candles from a CSV file so you can later use them for backtesting.\n    \"\"\"\n    from jesse.modes.import_candles_mode import store_candles_list as store_candles_from_list\n    import jesse.helpers as jh\n\n    # check if .env file exists\n    if not jh.is_unit_testing() and not jh.is_jesse_project():\n        raise FileNotFoundError(\n            'Invalid directory: \".env\" file not found. To use Jesse inside notebooks, create notebooks inside the root of a Jesse project.'\n        )\n\n    # validate that candles type must be np.ndarray\n    if not isinstance(candles, np.ndarray):\n        raise TypeError('candles must be a numpy array.')\n\n    # add validation for timeframe to make sure it's `1m`\n    if candles[1][0] - candles[0][0] != 60_000:\n        raise ValueError(\n            f'Candles passed to the research.store_candles() must be 1m candles. '\n            f'\\nThe difference between your candle timestamps is {candles[1][0] - candles[0][0]} milliseconds which is '\n            f'more than the accepted 60000 milliseconds.'\n        )\n\n    arr = [{\n        'id': jh.generate_unique_id(),\n        'exchange': exchange,\n        'symbol': symbol,\n        'timeframe': '1m',\n        'timestamp': c[0],\n        'open': c[1],\n        'close': c[2],\n        'high': c[3],\n        'low': c[4],\n        'volume': c[5]\n    } for c in candles]\n\n    if not jh.is_unit_testing():\n        store_candles_from_list(arr)\n\n\ndef fake_candle(attributes: dict = None, reset: bool = False) -> np.ndarray:\n    \"\"\"\n    Generates a fake candle.\n    \"\"\"\n    return factories.fake_candle(attributes, reset)\n\n\ndef fake_range_candles(count: int) -> np.ndarray:\n    \"\"\"\n    Generates a range of candles with random values.\n    \"\"\"\n    return factories.range_candles(count)\n\n\ndef candles_from_close_prices(prices: Union[list, range]) -> np.ndarray:\n    \"\"\"\n    Generates a range of candles from a list of close prices.\n    The first candle has the timestamp of \"2021-01-01T00:00:00+00:00\"\n    \"\"\"\n    return factories.candles_from_close_prices(prices)\n"
  },
  {
    "path": "jesse/research/import_candles.py",
    "content": "def import_candles(\n    exchange: str,\n    symbol: str,\n    start_date: str,\n    show_progressbar: bool = True,\n) -> str:\n    from jesse.modes.import_candles_mode import run\n\n    return run(\n        client_id='',\n        exchange=exchange,\n        symbol=symbol,\n        start_date_str=start_date,\n        running_via_dashboard=False,\n        show_progressbar=show_progressbar\n    )\n"
  },
  {
    "path": "jesse/research/ml.py",
    "content": "\"\"\"\njesse/research/ml.py\n\nMachine-learning utilities for the Jesse research module.\n\nPublic API\n----------\ngather_ml_data   – run a backtest and collect labelled feature data\ntrain_model      – train any sklearn-compatible estimator on that data\nload_ml_data_csv – reload previously saved data points from CSV\nload_ml_model    – reload a previously saved model + scaler + importance\n\"\"\"\n\nfrom __future__ import annotations\n\nimport csv\nimport datetime\nimport os\nfrom collections import Counter\nfrom typing import Any, Dict, List, Optional\n\nimport joblib\nimport numpy as np\nfrom scipy.stats import rankdata, spearmanr\nfrom sklearn.base import clone\nfrom sklearn.feature_selection import RFE, f_classif, f_regression\nfrom sklearn.metrics import (\n    accuracy_score,\n    confusion_matrix,\n    matthews_corrcoef,\n    mean_absolute_error,\n    mean_squared_error,\n    precision_recall_fscore_support,\n    r2_score,\n    roc_auc_score,\n)\nfrom sklearn.model_selection import TimeSeriesSplit, cross_val_score\nfrom sklearn.preprocessing import StandardScaler\nfrom sklearn.svm import SVC, SVR\n\n\n# ─── Print width ──────────────────────────────────────────────────────────────\n\nW = 64\n\n\n# ═══════════════════════════════════════════════════════════════════════════════\n# Public API\n# ═══════════════════════════════════════════════════════════════════════════════\n\n\ndef gather_ml_data(\n    config: dict,\n    routes: List[Dict],\n    data_routes: List[Dict],\n    candles: dict,\n    warmup_candles: Optional[dict] = None,\n    csv_path: Optional[str] = \"auto\",\n    verbose: bool = True,\n) -> dict:\n    \"\"\"Run a backtest and collect ML training data recorded by the strategy.\n\n    The strategy must be in its ML gather mode (e.g. ``ML_MODE = \"gather\"``)\n    and must call ``record_features({...})`` and ``record_label(name, value)``\n    at the appropriate points in its lifecycle.\n\n    Parameters\n    ----------\n    config:\n        Jesse exchange/backtest config dict – same format as\n        ``research.backtest()``.\n    routes:\n        Strategy routes – same format as ``research.backtest()``.\n    data_routes:\n        Extra data routes for additional timeframes / symbols.\n    candles:\n        Trading candles dict – same format as ``research.backtest()``.\n    warmup_candles:\n        Warm-up candles dict.\n    csv_path:\n        Where to write the collected data points.  Defaults to ``\"auto\"``,\n        which saves to\n        ``strategies/<StrategyName>/ml_data/<StrategyName>_data.csv``\n        inside the current Jesse project.  Pass an explicit path string to\n        override, or ``None`` to skip writing entirely.\n    verbose:\n        If True (default) prints a formatted summary to stdout.\n\n    Returns\n    -------\n    dict\n        ``data_points``      – ``list[dict]`` where each dict has\n                               ``{time, features, label: {name, value}}``\n        ``backtest_metrics`` – standard Jesse metrics dict\n    \"\"\"\n    from .backtest import backtest as _run_backtest\n    from jesse.routes import router\n\n    backtest_result = _run_backtest(\n        config,\n        routes,\n        data_routes,\n        candles,\n        warmup_candles,\n        fast_mode=True,\n    )\n\n    data_points: List[dict] = []\n    if router.routes:\n        strategy = router.routes[0].strategy\n        if hasattr(strategy, \"_ml_data_points\"):\n            data_points = [\n                p for p in strategy._ml_data_points\n                if p.get(\"label\") is not None\n            ]\n\n    metrics = backtest_result.get(\"metrics\", {})\n\n    if not data_points:\n        if verbose:\n            print(\"\\n  ⚠  No ML data points were collected.\")\n            print(\"     Make sure your strategy is in gather mode and calls\")\n            print(\"     self.record_features({...}) and self.record_label(name, value).\")\n        return {\"data_points\": [], \"backtest_metrics\": metrics}\n\n    if csv_path == \"auto\":\n        strategy_name = routes[0][\"strategy\"]\n        csv_path = os.path.join(\n            \"strategies\", strategy_name, \"ml_data\", f\"{strategy_name}_data.csv\"\n        )\n\n    if csv_path:\n        _write_csv(data_points, csv_path)\n\n    if verbose:\n        _print_gather_report(data_points, metrics, csv_path, routes)\n\n    return {\"data_points\": data_points, \"backtest_metrics\": metrics}\n\n\ndef train_model(\n    data: List[dict],\n    estimator: Any,\n    task: str = \"binary\",\n    test_ratio: float = 0.2,\n    save_to: Optional[str] = None,\n    verbose: bool = True,\n    name: Optional[str] = None,\n) -> dict:\n    \"\"\"Train an sklearn-compatible estimator on data collected by a Jesse strategy.\n\n    Accepts **any scikit-learn–compatible estimator** and dispatches training,\n    metrics, and reporting based on the ``task`` parameter.\n\n    Parameters\n    ----------\n    data:\n        Data points from ``gather_ml_data()`` or ``load_ml_data_csv()``.\n        Each dict must have ``{time, features, label: {name, value}}``.\n    estimator:\n        A scikit-learn–compatible estimator.  For classifiers, it must\n        implement ``predict_proba`` (set ``probability=True`` for SVC).\n    task:\n        One of:\n\n        ``\"binary\"``      – Two-class classification.  Label is mapped to\n                            ``0`` / ``1`` via the positive-class rule\n                            (value ``> 0`` or boolean ``True``).\n                            Reports: accuracy, ROC AUC, MCC, confusion\n                            matrix, calibration, threshold sweep.\n\n        ``\"multiclass\"``  – Three-or-more class classification.  Raw integer\n                            label values are passed directly to the estimator\n                            (e.g. ``-1``, ``0``, ``+1`` from triple-barrier).\n                            Reports: accuracy, macro F1, MCC, per-class\n                            precision/recall/F1, full NxN confusion matrix.\n\n        ``\"regression\"``  – Continuous-output prediction.  Raw float label\n                            values are passed directly to the estimator.\n                            Reports: MAE, RMSE, R², Spearman ρ.\n    test_ratio:\n        Fraction of samples held out as the chronological test set.\n    save_to:\n        Directory path.  When provided, three files are written:\n        ``model.pkl``, ``scaler.pkl``, ``feature_importance.pkl``.\n    verbose:\n        Print a full training report (default: True).\n    name:\n        Optional display name shown in the report header.\n\n    Returns\n    -------\n    dict with keys:\n        ``model``               – fitted estimator\n        ``scaler``              – fitted ``StandardScaler``\n        ``feature_names``       – ``list[str]``\n        ``metrics``             – task-specific metrics dict\n        ``feature_importance``  – RFE ranks, ANOVA/F-reg values, correlations,\n                                  CV impacts, consensus ranks\n        ``train_test_info``     – split sizes and date ranges\n        For ``\"binary\"`` only:\n        ``calibration``         – probability calibration bucket list\n        ``feature_impact``      – per-feature accuracy delta on the test set\n        ``class_weights``       – suggested ``{0: float, 1: float}``\n    \"\"\"\n    if task not in (\"binary\", \"multiclass\", \"regression\"):\n        raise ValueError(f\"task must be 'binary', 'multiclass', or 'regression'; got {task!r}\")\n\n    if not data:\n        raise ValueError(\"data is empty — nothing to train on.\")\n\n    sorted_data   = sorted(data, key=lambda p: p[\"time\"])\n    feature_names = sorted(sorted_data[0][\"features\"].keys())\n\n    X = np.array(\n        [[p[\"features\"].get(f, 0.0) for f in feature_names] for p in sorted_data],\n        dtype=float,\n    )\n\n    # ── Build y depending on task ─────────────────────────────────────────────\n    if task == \"binary\":\n        y = np.array(\n            [1 if _label_is_positive(p[\"label\"][\"value\"]) else 0 for p in sorted_data],\n            dtype=int,\n        )\n    elif task == \"multiclass\":\n        y = np.array(\n            [int(p[\"label\"][\"value\"]) for p in sorted_data],\n            dtype=int,\n        )\n    else:  # regression\n        y = np.array(\n            [float(p[\"label\"][\"value\"]) for p in sorted_data],\n            dtype=float,\n        )\n\n    times = [p[\"time\"] for p in sorted_data]\n\n    # ── Chronological split ───────────────────────────────────────────────────\n    split = int(len(X) * (1.0 - test_ratio))\n    if split == 0 or split >= len(X):\n        raise ValueError(\n            f\"test_ratio={test_ratio} produces an empty train or test set \"\n            f\"for {len(X)} samples.\"\n        )\n\n    X_train, X_test = X[:split], X[split:]\n    y_train, y_test = y[:split], y[split:]\n\n    train_test_info = {\n        \"train_size\":  len(X_train),\n        \"test_size\":   len(X_test),\n        \"train_start\": _ts_to_date(times[0]),\n        \"train_end\":   _ts_to_date(times[split - 1]),\n        \"test_start\":  _ts_to_date(times[split]),\n        \"test_end\":    _ts_to_date(times[-1]),\n    }\n\n    # ── Scale features ────────────────────────────────────────────────────────\n    scaler         = StandardScaler()\n    X_train_scaled = scaler.fit_transform(X_train)\n    X_test_scaled  = scaler.transform(X_test)\n\n    label_name = sorted_data[0][\"label\"].get(\"name\", \"label\")\n\n    # ── Class weights (binary only, informational) ────────────────────────────\n    class_weights: Optional[dict] = None\n    if task == \"binary\":\n        counts = np.bincount(y_train)\n        if len(counts) >= 2:\n            class_weights = {0: 1.0, 1: float(counts[0]) / float(counts[1])}\n\n    # ── Header ────────────────────────────────────────────────────────────────\n    if verbose:\n        title = f\"MODEL TRAINING  ·  {name}\" if name else \"MODEL TRAINING\"\n        _header(f\"{title}  [{task.upper()}]\")\n\n    # ── Dataset overview ──────────────────────────────────────────────────────\n    if verbose:\n        _print_dataset_section(\n            task, feature_names, y_train, y_test,\n            train_test_info, class_weights, label_name,\n        )\n\n    # ── Feature importance ────────────────────────────────────────────────────\n    fi = _compute_feature_importance(\n        X_train_scaled, y_train, feature_names, estimator, task\n    )\n    if verbose:\n        _section(\"FEATURE IMPORTANCE\")\n        _print_feature_importance_table(fi, task)\n\n    # ── Fit the model ─────────────────────────────────────────────────────────\n    if verbose:\n        _section(\"FIT\")\n        print(f\"\\n  Fitting {type(estimator).__name__} on {len(X_train):,} samples …\")\n\n    fitted: Any = clone(estimator)\n    fitted.fit(X_train_scaled, y_train)\n\n    y_pred = fitted.predict(X_test_scaled)\n\n    # ── Task-specific metrics + reporting ─────────────────────────────────────\n    if task == \"binary\":\n        y_probs = fitted.predict_proba(X_test_scaled)[:, 1]\n        metrics = _compute_binary_metrics(y_test, y_pred, y_probs)\n        if verbose:\n            _print_binary_performance(metrics, label_name)\n\n        calibration = _compute_calibration(y_test, y_probs)\n        if verbose:\n            _print_calibration(calibration)\n\n        feature_impact = _compute_feature_impact(\n            X_train_scaled, X_test_scaled, y_train, y_test,\n            feature_names, estimator, baseline_metric=metrics[\"accuracy\"],\n            task=task,\n        )\n        if verbose:\n            _print_feature_impact(feature_impact, metrics[\"accuracy\"], task)\n\n        base_rate = float(y_test.sum()) / len(y_test)\n        if verbose:\n            _print_threshold_sweep(y_test, y_probs, base_rate)\n\n    elif task == \"multiclass\":\n        y_probs_mc = fitted.predict_proba(X_test_scaled)\n        classes    = fitted.classes_\n        metrics    = _compute_multiclass_metrics(y_test, y_pred, y_probs_mc, classes)\n        if verbose:\n            _print_multiclass_performance(metrics, label_name, classes)\n\n        feature_impact = _compute_feature_impact(\n            X_train_scaled, X_test_scaled, y_train, y_test,\n            feature_names, estimator, baseline_metric=metrics[\"accuracy\"],\n            task=task,\n        )\n        if verbose:\n            _print_feature_impact(feature_impact, metrics[\"accuracy\"], task)\n\n        # no calibration / threshold sweep for multiclass\n        calibration = None\n\n    else:  # regression\n        metrics = _compute_regression_metrics(y_test, y_pred)\n        if verbose:\n            _print_regression_performance(metrics, label_name)\n\n        feature_impact = _compute_feature_impact(\n            X_train_scaled, X_test_scaled, y_train, y_test,\n            feature_names, estimator, baseline_metric=metrics[\"mae\"],\n            task=task,\n        )\n        if verbose:\n            _print_feature_impact(feature_impact, metrics[\"mae\"], task)\n\n        calibration = None\n\n    # ── Save artefacts ────────────────────────────────────────────────────────\n    if save_to:\n        os.makedirs(save_to, exist_ok=True)\n        joblib.dump(fitted,  os.path.join(save_to, \"model.pkl\"))\n        joblib.dump(scaler,  os.path.join(save_to, \"scaler.pkl\"))\n        joblib.dump(fi,      os.path.join(save_to, \"feature_importance.pkl\"))\n\n        if verbose:\n            print()\n            _footer()\n            print(f\"  Model    →  {os.path.join(save_to, 'model.pkl')}\")\n            print(f\"  Scaler   →  {os.path.join(save_to, 'scaler.pkl')}\")\n            _footer()\n    elif verbose:\n        print()\n        _footer()\n\n    result = {\n        \"model\":              fitted,\n        \"scaler\":             scaler,\n        \"feature_names\":      list(feature_names),\n        \"metrics\":            metrics,\n        \"feature_importance\": fi,\n        \"feature_impact\":     feature_impact,\n        \"train_test_info\":    train_test_info,\n    }\n    if task == \"binary\":\n        result[\"calibration\"]   = calibration\n        result[\"class_weights\"] = class_weights\n    return result\n\n\ndef load_ml_data_csv(path_or_name: str) -> List[dict]:\n    \"\"\"Reload data points previously saved by ``gather_ml_data``.\n\n    Parameters\n    ----------\n    path_or_name:\n        Either a **strategy name** (e.g. ``\"MyStrategy\"``) or an explicit\n        path to a CSV file.  When a bare name is given (no path separators,\n        no ``.csv`` suffix), the file is resolved automatically to\n        ``strategies/<name>/ml_data/<name>_data.csv`` inside the current\n        Jesse project directory.\n\n    Returns\n    -------\n    list[dict]\n        Same format as the ``data_points`` key returned by\n        ``gather_ml_data`` – suitable for passing directly to\n        ``train_model``.\n    \"\"\"\n    if (\n        os.sep not in path_or_name\n        and \"/\" not in path_or_name\n        and not path_or_name.endswith(\".csv\")\n    ):\n        path = os.path.join(\n            \"strategies\", path_or_name, \"ml_data\", f\"{path_or_name}_data.csv\"\n        )\n    else:\n        path = path_or_name\n\n    if not os.path.exists(path):\n        raise FileNotFoundError(f\"ML data CSV not found: {path}\")\n\n    data_points: List[dict] = []\n    with open(path, newline=\"\") as f:  # type: ignore[arg-type]\n        reader = csv.DictReader(f)\n        for row in reader:\n            feature_names = [\n                k for k in row.keys()\n                if k not in (\"time\", \"label_name\", \"label_value\")\n            ]\n            data_points.append({\n                \"time\":     int(row[\"time\"]),\n                \"features\": {fn: float(row[fn]) for fn in feature_names},\n                \"label\":    {\n                    \"name\":  row[\"label_name\"],\n                    \"value\": _parse_label_value(row[\"label_value\"].strip()),\n                },\n            })\n\n    return data_points\n\n\ndef load_ml_model(directory: str) -> dict:\n    \"\"\"Load a previously saved model, scaler, and feature importance data.\n\n    Parameters\n    ----------\n    directory:\n        The directory passed as ``save_to`` when ``train_model`` was called.\n\n    Returns\n    -------\n    dict with keys:\n        ``model``               – fitted estimator\n        ``scaler``              – fitted ``StandardScaler``\n        ``feature_importance``  – feature importance dict (if present)\n    \"\"\"\n    model_path  = os.path.join(directory, \"model.pkl\")\n    scaler_path = os.path.join(directory, \"scaler.pkl\")\n    fi_path     = os.path.join(directory, \"feature_importance.pkl\")\n\n    for p in (model_path, scaler_path):\n        if not os.path.exists(p):\n            raise FileNotFoundError(f\"Expected file not found: {p}\")\n\n    result = {\n        \"model\":  joblib.load(model_path),\n        \"scaler\": joblib.load(scaler_path),\n    }\n    if os.path.exists(fi_path):\n        result[\"feature_importance\"] = joblib.load(fi_path)\n\n    return result\n\n\n# ═══════════════════════════════════════════════════════════════════════════════\n# Private: gathering helpers\n# ═══════════════════════════════════════════════════════════════════════════════\n\n\ndef _write_csv(data_points: List[dict], path: str) -> None:\n    all_features: set = set()\n    for p in data_points:\n        all_features.update(p[\"features\"].keys())\n    sorted_features = sorted(all_features)\n\n    ordered = sorted(data_points, key=lambda p: p[\"time\"])\n\n    os.makedirs(os.path.dirname(os.path.abspath(path)), exist_ok=True)\n    with open(path, \"w\", newline=\"\") as f:\n        writer = csv.writer(f)\n        writer.writerow([\"time\", \"label_name\", \"label_value\"] + sorted_features)\n        for p in ordered:\n            writer.writerow(\n                [p[\"time\"], p[\"label\"][\"name\"], str(p[\"label\"][\"value\"])]\n                + [str(p[\"features\"].get(fn, \"\")) for fn in sorted_features]\n            )\n\n\ndef _print_gather_report(\n    data_points: List[dict],\n    metrics: dict,\n    csv_path: Optional[str],\n    routes: List[Dict],\n) -> None:\n    strategy_name = routes[0].get(\"strategy\", \"\") if routes else \"\"\n    title = f\"ML DATA COLLECTION  ·  {strategy_name}\" if strategy_name else \"ML DATA COLLECTION\"\n    _header(title)\n\n    _section(\"BACKTEST RESULTS\")\n    if metrics and metrics.get(\"total\", 0) > 0:\n        pnl      = metrics.get(\"net_profit_percentage\", 0)\n        annual   = metrics.get(\"annual_return\", 0)\n        drawdown = metrics.get(\"max_drawdown\", 0)\n        win_rate = metrics.get(\"win_rate\", 0) * 100\n        trades   = int(metrics.get(\"total\", 0))\n        sharpe   = metrics.get(\"sharpe_ratio\", 0)\n        col_w    = 28\n        rows = [\n            (\"PNL\",           f\"{pnl:+.2f}%\",     \"Win Rate\",     f\"{win_rate:.2f}%\"),\n            (\"Annual Return\", f\"{annual:+.2f}%\",   \"Total Trades\", f\"{trades:,}\"),\n            (\"Max Drawdown\",  f\"{drawdown:+.2f}%\", \"Sharpe Ratio\", f\"{sharpe:.2f}\"),\n        ]\n        print()\n        for ll, lv, rl, rv in rows:\n            left  = f\"  {ll:<16} {lv:>8}\"\n            right = f\"  {rl:<16} {rv:>8}\"\n            print(f\"{left:<{col_w}}   {right}\")\n    else:\n        print(\"\\n  No trades were opened during the backtest.\")\n        print(\"  The ML gather mode runs on entry signals, not closed trades.\")\n\n    _section(\"DATASET COLLECTED\")\n\n    total      = len(data_points)\n    features   = len(sorted(set(k for p in data_points for k in p[\"features\"])))\n    label_name = data_points[0][\"label\"].get(\"name\", \"label\") if data_points else \"label\"\n    timestamps = [p[\"time\"] for p in data_points]\n    date_from  = _ts_to_date(min(timestamps))\n    date_to    = _ts_to_date(max(timestamps))\n\n    label_counts = Counter(p[\"label\"][\"value\"] for p in data_points)\n\n    print()\n    print(f\"  {'Data points':<28} {total:>6,}\")\n    for lv, cnt in sorted(label_counts.items(), key=lambda x: -x[1]):\n        print(f\"  {f'{label_name} = {lv}':<28} {cnt:>6,}  ({cnt / total * 100:.1f}%)\")\n    print(f\"  {'Features per sample':<28} {features:>6,}\")\n    print(f\"  {'Date range':<28} {date_from} → {date_to}\")\n\n    if csv_path:\n        try:\n            display = os.path.relpath(csv_path)\n        except ValueError:\n            display = csv_path\n        print(f\"  {'Saved to':<28} {display}\")\n\n    print()\n    _footer()\n\n\n# ═══════════════════════════════════════════════════════════════════════════════\n# Private: label helpers\n# ═══════════════════════════════════════════════════════════════════════════════\n\n\ndef _parse_label_value(raw: str):\n    \"\"\"Return the most natural Python type for a label value read from CSV.\n\n    - ``\"True\"`` / ``\"False\"`` (case-insensitive) → ``bool``\n    - Integer strings (``\"1\"``, ``\"-1\"``, ``\"0\"``) → ``int``\n    - Anything else that looks numeric → ``float``\n    - Fallback → the original string\n    \"\"\"\n    lower = raw.lower()\n    if lower == \"true\":\n        return True\n    if lower == \"false\":\n        return False\n    try:\n        return int(raw)\n    except ValueError:\n        pass\n    try:\n        return float(raw)\n    except ValueError:\n        return raw\n\n\ndef _label_is_positive(value) -> bool:\n    \"\"\"Map any label value to the binary positive class (1).\n\n    - ``True`` (bool) → positive\n    - Positive numbers (``> 0``) → positive\n    - Everything else → negative\n    \"\"\"\n    if isinstance(value, bool):\n        return value\n    try:\n        return float(value) > 0\n    except (TypeError, ValueError):\n        return str(value).lower() == \"true\"\n\n\n# ═══════════════════════════════════════════════════════════════════════════════\n# Private: metrics\n# ═══════════════════════════════════════════════════════════════════════════════\n\n\ndef _compute_binary_metrics(\n    y_test: np.ndarray,\n    y_pred: np.ndarray,\n    y_probs: np.ndarray,\n) -> dict:\n    acc                = accuracy_score(y_test, y_pred)\n    auc                = roc_auc_score(y_test, y_probs)\n    mcc                = matthews_corrcoef(y_test, y_pred)\n    cm                 = confusion_matrix(y_test, y_pred)\n    tn, fp, fn, tp     = cm.ravel()\n    prec, rec, f1, sup = precision_recall_fscore_support(y_test, y_pred, zero_division=0)  # type: ignore[call-overload]\n    return {\n        \"accuracy\":         float(acc),\n        \"roc_auc\":          float(auc),\n        \"mcc\":              float(mcc),\n        \"confusion_matrix\": cm.tolist(),\n        \"precision\":        prec.tolist(),\n        \"recall\":           rec.tolist(),\n        \"f1\":               f1.tolist(),\n        \"support\":          sup.tolist(),\n        \"tn\": int(tn), \"fp\": int(fp), \"fn\": int(fn), \"tp\": int(tp),\n    }\n\n\ndef _compute_multiclass_metrics(\n    y_test: np.ndarray,\n    y_pred: np.ndarray,\n    y_probs: np.ndarray,\n    classes: np.ndarray,\n) -> dict:\n    acc  = accuracy_score(y_test, y_pred)\n    mcc  = matthews_corrcoef(y_test, y_pred)\n    cm   = confusion_matrix(y_test, y_pred, labels=classes)\n    prec, rec, f1, sup = precision_recall_fscore_support(\n        y_test, y_pred, labels=classes, zero_division=0  # type: ignore[call-overload]\n    )\n    try:\n        auc = roc_auc_score(\n            y_test, y_probs, multi_class=\"ovr\", average=\"macro\", labels=classes\n        )\n    except Exception:\n        auc = float(\"nan\")\n\n    return {\n        \"accuracy\":         float(acc),\n        \"roc_auc_macro\":    float(auc),\n        \"mcc\":              float(mcc),\n        \"confusion_matrix\": cm.tolist(),\n        \"classes\":          classes.tolist(),\n        \"precision\":        prec.tolist(),\n        \"recall\":           rec.tolist(),\n        \"f1\":               f1.tolist(),\n        \"support\":          sup.tolist(),\n    }\n\n\ndef _compute_regression_metrics(\n    y_test: np.ndarray,\n    y_pred: np.ndarray,\n) -> dict:\n    mae      = mean_absolute_error(y_test, y_pred)\n    rmse     = float(np.sqrt(mean_squared_error(y_test, y_pred)))\n    r2       = r2_score(y_test, y_pred)\n    _sr      = spearmanr(y_test, y_pred)\n    _sr_any: Any = _sr\n    spearman = float(_sr_any.statistic if hasattr(_sr_any, \"statistic\") else _sr_any.correlation)\n    return {\n        \"mae\":      float(mae),\n        \"rmse\":     float(rmse),\n        \"r2\":       float(r2),\n        \"spearman\": spearman,\n    }\n\n\n# ═══════════════════════════════════════════════════════════════════════════════\n# Private: feature importance\n# ═══════════════════════════════════════════════════════════════════════════════\n\n\ndef _compute_feature_importance(\n    X_train: np.ndarray,\n    y_train: np.ndarray,\n    feature_names: List[str],\n    estimator: Any,\n    task: str,\n    n_splits: int = 5,\n) -> dict:\n    \"\"\"Four-method consensus feature importance.\n\n    For classification tasks (binary / multiclass): RFE with a linear SVC\n    proxy, ANOVA F-values, absolute Pearson correlation, and CV-impact.\n\n    For regression: RFE with an SVR proxy, F-regression values, absolute\n    Pearson correlation, and CV-impact.\n    \"\"\"\n    n_features = len(feature_names)\n    tscv       = TimeSeriesSplit(n_splits=n_splits)\n\n    if task == \"regression\":\n        proxy_rfe = SVR(kernel=\"linear\")\n        proxy_cv  = SVR(kernel=\"rbf\", C=1.0, gamma=\"scale\")\n        scoring   = \"r2\"\n\n        rfe = RFE(proxy_rfe, n_features_to_select=1, step=1)\n        rfe.fit(X_train, y_train)\n        rfe_ranking = rfe.ranking_.astype(float)\n\n        f_values, _ = f_regression(X_train, y_train)\n    else:\n        proxy_rfe = SVC(kernel=\"linear\")\n        proxy_cv  = SVC(kernel=\"rbf\", C=1.0, gamma=\"scale\")\n        scoring   = \"accuracy\"\n\n        rfe = RFE(proxy_rfe, n_features_to_select=1, step=1)\n        rfe.fit(X_train, y_train)\n        rfe_ranking = rfe.ranking_.astype(float)\n\n        f_values, _ = f_classif(X_train, y_train)\n\n    correlations = np.array(\n        [abs(np.corrcoef(X_train[:, i], y_train)[0, 1]) for i in range(n_features)]\n    )\n\n    baseline_cv = cross_val_score(proxy_cv, X_train, y_train, cv=tscv, scoring=scoring).mean()\n    cv_without  = np.empty(n_features)\n    for i in range(n_features):\n        X_r = np.delete(X_train, i, axis=1)\n        cv_without[i] = cross_val_score(\n            clone(proxy_cv), X_r, y_train, cv=tscv, scoring=scoring\n        ).mean()\n    cv_impacts = baseline_cv - cv_without\n\n    rfe_ranks   = rfe_ranking\n    anova_ranks = rankdata(-f_values)\n    corr_ranks  = rankdata(-correlations)\n    cv_ranks    = rankdata(-cv_impacts)\n    consensus   = (rfe_ranks + anova_ranks + corr_ranks + cv_ranks) / 4.0\n\n    return {\n        \"feature_names\":             list(feature_names),\n        \"rfe_ranking\":               rfe_ranking.tolist(),\n        \"anova_f_values\":            f_values.tolist(),\n        \"correlations\":              correlations.tolist(),\n        \"cv_baseline\":               float(baseline_cv),\n        \"cv_impacts\":                {feature_names[i]: float(cv_impacts[i]) for i in range(n_features)},\n        \"cv_scores_without_feature\": {feature_names[i]: float(cv_without[i])  for i in range(n_features)},\n        \"consensus_ranks\":           {feature_names[i]: float(consensus[i])   for i in range(n_features)},\n        \"_order\":                    np.argsort(consensus).tolist(),\n    }\n\n\ndef _compute_calibration(\n    y_test: np.ndarray,\n    y_probs: np.ndarray,\n) -> List[dict]:\n    \"\"\"Bucket predicted probabilities and measure actual positive rate per bin.\"\"\"\n    bins    = [(0.3, 0.4), (0.4, 0.5), (0.5, 0.6), (0.6, 0.7), (0.7, 0.8), (0.8, 1.01)]\n    buckets = []\n    for lo, hi in bins:\n        mask = (y_probs >= lo) & (y_probs < hi)\n        n    = int(mask.sum())\n        if n == 0:\n            continue\n        actual = float(y_test[mask].mean())\n        mid    = (lo + min(hi, 1.0)) / 2.0\n        buckets.append({\n            \"range\":       f\"[{lo:.1f}–{min(hi, 1.0):.1f})\",\n            \"n\":           n,\n            \"actual_rate\": actual,\n            \"expected\":    mid,\n            \"diff\":        actual - mid,\n        })\n    return buckets\n\n\ndef _compute_feature_impact(\n    X_train: np.ndarray,\n    X_test: np.ndarray,  # type: ignore[type-arg]\n    y_train: np.ndarray,\n    y_test: np.ndarray,\n    feature_names: List[str],\n    estimator: Any,\n    baseline_metric: float,\n    task: str,\n) -> List[dict]:\n    \"\"\"Retrain the model with each feature removed; measure metric delta.\n\n    For classification tasks: accuracy delta (positive = feature helps).\n    For regression: MAE delta (negative = feature helps, since lower MAE is better).\n    \"\"\"\n    impacts = []\n    for i, fname in enumerate(feature_names):\n        X_tr_r = np.delete(X_train, i, axis=1)\n        X_te_r = np.delete(X_test,  i, axis=1)\n        m: Any = clone(estimator)\n        m.fit(X_tr_r, y_train)\n        y_p = m.predict(X_te_r)\n        if task == \"regression\":\n            metric_i = mean_absolute_error(y_test, y_p)\n        else:\n            metric_i = accuracy_score(y_test, y_p)\n        impacts.append({\n            \"feature\": fname,\n            \"metric\":  float(metric_i),\n            \"delta\":   float(metric_i - baseline_metric),\n        })\n    impacts.sort(key=lambda x: x[\"delta\"])\n    return impacts\n\n\n# ═══════════════════════════════════════════════════════════════════════════════\n# Private: verbose print helpers — shared\n# ═══════════════════════════════════════════════════════════════════════════════\n\n\ndef _print_dataset_section(\n    task: str,\n    feature_names,\n    y_train: np.ndarray,\n    y_test: np.ndarray,\n    train_test_info: dict,\n    class_weights: Optional[dict],\n    label_name: str,\n) -> None:\n    _section(\"DATASET\")\n\n    y_all      = np.concatenate([y_train, y_test])\n    total      = len(y_all)\n    n_features = len(feature_names)\n\n    print(f\"\\n  {'Samples':<28} {total:>6,}  ({n_features} features)\")\n    print(f\"  {'Train set':<28} {train_test_info['train_size']:>6,}  \"\n          f\"{train_test_info['train_start']} → {train_test_info['train_end']}\")\n    print(f\"  {'Test set':<28} {train_test_info['test_size']:>6,}  \"\n          f\"{train_test_info['test_start']} → {train_test_info['test_end']}\")\n\n    if task == \"binary\":\n        n_pos = int((y_all == 1).sum())\n        n_neg = total - n_pos\n        print(f\"  {f'{label_name} = positive':<28} {n_pos:>6,}  ({n_pos / total * 100:.1f}%)\")\n        print(f\"  {f'{label_name} = negative':<28} {n_neg:>6,}  ({n_neg / total * 100:.1f}%)\")\n        if class_weights is not None:\n            print(f\"  {'Suggested class weights':<28} \"\n                  f\"0: {class_weights[0]:.2f}  /  1: {class_weights[1]:.2f}\")\n            print()\n            print(\"  ℹ  Class weights are not applied automatically. Configure them\")\n            print(\"     directly on your estimator (e.g. class_weight={0:1.0, 1:2.3}).\")\n        else:\n            print(f\"  {'Suggested class weights':<28} N/A  (only one class present)\")\n\n    elif task == \"multiclass\":\n        counts = Counter(int(v) for v in y_all)\n        for cls, cnt in sorted(counts.items(), key=lambda x: -x[1]):\n            print(f\"  {f'{label_name} = {cls}':<28} {cnt:>6,}  ({cnt / total * 100:.1f}%)\")\n\n    else:  # regression\n        print(f\"  {'Label mean':<28} {float(y_all.mean()):>10.4f}\")\n        print(f\"  {'Label std':<28} {float(y_all.std()):>10.4f}\")\n        print(f\"  {'Label min':<28} {float(y_all.min()):>10.4f}\")\n        print(f\"  {'Label max':<28} {float(y_all.max()):>10.4f}\")\n\n\ndef _print_feature_importance_table(fi: dict, task: str) -> None:\n    feature_names = fi[\"feature_names\"]\n    rfe_ranking   = fi[\"rfe_ranking\"]\n    f_values      = fi[\"anova_f_values\"]\n    correlations  = fi[\"correlations\"]\n    cv_impacts    = fi[\"cv_impacts\"]\n    order         = fi[\"_order\"]\n    consensus     = fi[\"consensus_ranks\"]\n\n    f_label = \"F-val\" if task != \"regression\" else \"F-reg\"\n\n    print(\n        f\"\\n  {'Rank':<5} {'Feature':<24} {'RFE':>4}  \"\n        f\"{f_label:>6}  {'|Corr|':>6}  {'CV-Impact':>9}  {'Score':>6}\"\n    )\n    print(\n        f\"  {'─'*4} {'─'*24} {'─'*4}  \"\n        f\"{'─'*6}  {'─'*6}  {'─'*9}  {'─'*6}\"\n    )\n    for rank_pos, i in enumerate(order, start=1):\n        name = feature_names[i]\n        print(\n            f\"  {rank_pos:<5} {name:<24} {int(rfe_ranking[i]):>4}  \"\n            f\"{f_values[i]:>6.2f}  {correlations[i]:>6.3f}  \"\n            f\"{cv_impacts[name]:>+9.4f}  {consensus[name]:>6.2f}\"\n        )\n\n    print(f\"\"\"\n  Column guide:\n  ┌─────────────┬──────────────────────────────────────────────────────────┐\n  │ RFE         │ Recursive Feature Elimination rank (proxy estimator).    │\n  │             │ 1 = most important. Lower is better.                     │\n  │ {f_label:<11} │ {\"ANOVA F-statistic (classification).\" if task != \"regression\" else \"F-regression statistic.\":<56} │\n  │             │ Higher = more discriminative.                            │\n  │ |Corr|      │ Absolute Pearson correlation with the label.             │\n  │             │ Higher = stronger linear relationship.                   │\n  │ CV-Impact   │ Baseline CV metric minus CV metric without this feature. │\n  │             │ Positive = feature helps {\"(regression: lower MAE = better).\" if task == \"regression\" else \"(classification: higher acc).\" :<33} │\n  │ Score       │ Consensus rank (lower = more consistently important).    │\n  └─────────────┴──────────────────────────────────────────────────────────┘\"\"\")\n\n\n# ═══════════════════════════════════════════════════════════════════════════════\n# Private: verbose print helpers — binary\n# ═══════════════════════════════════════════════════════════════════════════════\n\n\ndef _print_binary_performance(metrics: dict, label_name: str) -> None:\n    _section(\"MODEL PERFORMANCE\")\n\n    acc  = metrics[\"accuracy\"]\n    auc  = metrics[\"roc_auc\"]\n    mcc  = metrics[\"mcc\"]\n    tn   = metrics[\"tn\"]\n    fp   = metrics[\"fp\"]\n    fn   = metrics[\"fn\"]\n    tp   = metrics[\"tp\"]\n    prec = metrics[\"precision\"]\n    rec  = metrics[\"recall\"]\n    f1   = metrics[\"f1\"]\n    sup  = metrics[\"support\"]\n\n    print(f\"\\n  Accuracy  {acc * 100:>5.1f}%     ROC AUC  {auc:.3f}     MCC  {mcc:+.3f}\")\n    print()\n    print(f\"  {'Confusion Matrix':<28}  Predicted 0   Predicted 1\")\n    print(f\"  {f'Actual 0  ({label_name}=neg)':<28}  {tn:>11,}   {fp:>11,}\")\n    print(f\"  {f'Actual 1  ({label_name}=pos)':<28}  {fn:>11,}   {tp:>11,}\")\n    print()\n    print(f\"  {'Class':<14}  {'Precision':>9}  {'Recall':>6}  {'F1':>6}  {'Support':>7}\")\n    print(f\"  {'─'*14}  {'─'*9}  {'─'*6}  {'─'*6}  {'─'*7}\")\n    print(f\"  {'Negative (0)':<14}  {prec[0]:>9.3f}  {rec[0]:>6.3f}  {f1[0]:>6.3f}  {sup[0]:>7,}\")\n    print(f\"  {'Positive (1)':<14}  {prec[1]:>9.3f}  {rec[1]:>6.3f}  {f1[1]:>6.3f}  {sup[1]:>7,}\")\n\n\ndef _print_calibration(calibration: List[dict]) -> None:\n    _section(\"PROBABILITY CALIBRATION\")\n\n    print(f\"\\n  {'Confidence':<14}  {'Count':>7}  {'Actual Rate':>11}  {'vs Expected':>12}\")\n    print(f\"  {'─'*14}  {'─'*7}  {'─'*11}  {'─'*12}\")\n\n    if not calibration:\n        print(\"  Not enough predictions to populate any bucket.\")\n    else:\n        for b in calibration:\n            print(\n                f\"  {b['range']:<14}  {b['n']:>7,}  \"\n                f\"{b['actual_rate']:>10.1%}  {b['diff']:>+11.1%}\"\n            )\n\n    print()\n    print(\"  A well-calibrated model shows Actual Rate ≈ midpoint of each bin.\")\n    print(\"  Systematic over-confidence → apply Platt scaling or isotonic regression.\")\n    print(\"  Use these numbers to choose a confidence threshold for live trading.\")\n\n\ndef _print_threshold_sweep(\n    y_test: np.ndarray,\n    y_probs: np.ndarray,\n    base_rate: float,\n) -> None:\n    _section(\"PRECISION vs CONFIDENCE THRESHOLD  (class 1 only)\")\n\n    print(f\"\\n  {'Threshold':>10}  {'Allowed':>8}  {'Precision':>9}  {'Coverage':>9}\")\n    print(f\"  {'─'*10}  {'─'*8}  {'─'*9}  {'─'*9}\")\n\n    total = len(y_test)\n    for thresh in [0.45, 0.50, 0.55, 0.60, 0.65, 0.70, 0.75, 0.80]:\n        mask = y_probs >= thresh\n        n    = int(mask.sum())\n        if n == 0:\n            print(f\"  {thresh:>10.2f}  {'—':>8}  {'—':>9}  {'0.0%':>9}\")\n            continue\n        precision = float(y_test[mask].mean())\n        coverage  = n / total * 100\n        print(f\"  {thresh:>10.2f}  {n:>8,}  {precision:>9.1%}  {coverage:>8.1f}%\")\n\n    print()\n    print(f\"  Base rate (no filter): {base_rate:.1%}\")\n    print(\"  Threshold = minimum predicted probability to allow a trade through.\")\n    print(\"  Precision = fraction of allowed signals that are truly class 1.\")\n    print(\"  Coverage  = % of all test signals the model lets through.\")\n    print()\n    print(\"  A useful operating point is where Precision exceeds the base rate\")\n    print(\"  by a meaningful margin while Coverage remains tradeable.\")\n\n\n# ═══════════════════════════════════════════════════════════════════════════════\n# Private: verbose print helpers — multiclass\n# ═══════════════════════════════════════════════════════════════════════════════\n\n\ndef _print_multiclass_performance(\n    metrics: dict,\n    label_name: str,\n    classes: np.ndarray,\n) -> None:\n    _section(\"MODEL PERFORMANCE\")\n\n    acc  = metrics[\"accuracy\"]\n    mcc  = metrics[\"mcc\"]\n    auc  = metrics[\"roc_auc_macro\"]\n    cm   = np.array(metrics[\"confusion_matrix\"])\n    prec = metrics[\"precision\"]\n    rec  = metrics[\"recall\"]\n    f1   = metrics[\"f1\"]\n    sup  = metrics[\"support\"]\n\n    auc_str = f\"{auc:.3f}\" if not np.isnan(auc) else \"n/a\"\n    print(f\"\\n  Accuracy  {acc * 100:>5.1f}%     ROC AUC (macro OVR)  {auc_str}     MCC  {mcc:+.3f}\")\n\n    # Confusion matrix\n    print()\n    header_cells = \"  \" + \" \" * 20 + \"\".join(f\"  Pred {c:>3}\" for c in classes)\n    print(header_cells)\n    for i, cls in enumerate(classes):\n        row_cells = \"  \" + f\"Actual {cls:>3}  ({label_name})\" .ljust(18) + \"\".join(\n            f\"  {cm[i, j]:>8,}\" for j in range(len(classes))\n        )\n        print(row_cells)\n\n    # Per-class report\n    print()\n    print(f\"  {'Class':<14}  {'Precision':>9}  {'Recall':>6}  {'F1':>6}  {'Support':>7}\")\n    print(f\"  {'─'*14}  {'─'*9}  {'─'*6}  {'─'*6}  {'─'*7}\")\n    for i, cls in enumerate(classes):\n        print(f\"  {str(cls):<14}  {prec[i]:>9.3f}  {rec[i]:>6.3f}  {f1[i]:>6.3f}  {sup[i]:>7,}\")\n\n\n# ═══════════════════════════════════════════════════════════════════════════════\n# Private: verbose print helpers — regression\n# ═══════════════════════════════════════════════════════════════════════════════\n\n\ndef _print_regression_performance(metrics: dict, label_name: str) -> None:\n    _section(\"MODEL PERFORMANCE\")\n\n    mae      = metrics[\"mae\"]\n    rmse     = metrics[\"rmse\"]\n    r2       = metrics[\"r2\"]\n    spearman = metrics[\"spearman\"]\n\n    print(f\"\\n  MAE       {mae:>10.6f}\")\n    print(f\"  RMSE      {rmse:>10.6f}\")\n    print(f\"  R²        {r2:>10.4f}\")\n    print(f\"  Spearman ρ {spearman:>9.4f}\")\n    print()\n    print(\"  MAE / RMSE: lower is better. R² and Spearman ρ: higher is better.\")\n    print(\"  Spearman ρ measures rank correlation (robust to non-linearity).\")\n    print(\"  R² < 0 means the model is worse than simply predicting the mean.\")\n\n\n# ═══════════════════════════════════════════════════════════════════════════════\n# Private: verbose print helpers — feature impact (shared)\n# ═══════════════════════════════════════════════════════════════════════════════\n\n\ndef _print_feature_impact(\n    feature_impact: List[dict],\n    baseline_metric: float,\n    task: str,\n) -> None:\n    if task == \"regression\":\n        _section(\"FEATURE IMPACT  (retrain without each feature, test set MAE)\")\n        baseline_label = f\"Baseline MAE: {baseline_metric:.6f}\"\n        verdict_help   = \"↓ important — keep\"\n        verdict_noise  = \"↑ noisy — consider dropping\"\n        # For regression, lower MAE = better, so delta < 0 means feature helped\n        # (removing it raised MAE).  We invert the sort so most impactful first.\n        sorted_impact = sorted(feature_impact, key=lambda x: x[\"delta\"])\n    else:\n        _section(\"FEATURE IMPACT  (retrain without each feature, test set accuracy)\")\n        baseline_label = f\"Baseline accuracy: {baseline_metric * 100:.2f}%\"\n        verdict_help   = \"↓ important — keep\"\n        verdict_noise  = \"↑ noisy — consider dropping\"\n        sorted_impact  = feature_impact  # already sorted ascending (drops come first)\n\n    print(f\"\\n  {baseline_label}\\n\")\n    metric_label = \"MAE\" if task == \"regression\" else \"Accuracy\"\n    print(f\"  {'Feature':<24}  {metric_label:>10}  {'Change':>8}  Verdict\")\n    print(f\"  {'─'*24}  {'─'*10}  {'─'*8}  {'─'*22}\")\n\n    for item in sorted_impact:\n        delta = item[\"delta\"]\n        m_val = item[\"metric\"]\n        if task == \"regression\":\n            # delta > 0: removing the feature raised MAE → feature was helpful\n            # delta < 0: removing it lowered MAE → feature was noisy\n            if delta > 0.0:\n                verdict = verdict_help\n            elif delta < 0.0:\n                verdict = verdict_noise\n            else:\n                verdict = \"  neutral\"\n            print(\n                f\"  {item['feature']:<24}  {m_val:>10.6f}  {delta:>+8.6f}  {verdict}\"\n            )\n        else:\n            if delta < -0.015:\n                verdict = verdict_help\n            elif delta > 0.015:\n                verdict = verdict_noise\n            else:\n                verdict = \"  neutral\"\n            print(\n                f\"  {item['feature']:<24}  {m_val * 100:>9.1f}%  {delta:>+7.1%}  {verdict}\"\n            )\n\n\n# ═══════════════════════════════════════════════════════════════════════════════\n# Private: formatting\n# ═══════════════════════════════════════════════════════════════════════════════\n\n\ndef _header(title: str) -> None:\n    print(\"\\n\" + \"═\" * W)\n    pad = (W - len(title)) // 2\n    print(\" \" * max(0, pad) + title)\n    print(\"═\" * W)\n\n\ndef _section(title: str) -> None:\n    filler = W - len(title) - 5\n    print(f\"\\n─── {title} {'─' * max(0, filler)}\")\n\n\ndef _footer() -> None:\n    print(\"─\" * W)\n\n\ndef _ts_to_date(ts: int) -> str:\n    return datetime.datetime.fromtimestamp(int(ts), datetime.UTC).strftime(\"%Y-%m-%d\")"
  },
  {
    "path": "jesse/research/monte_carlo/__init__.py",
    "content": "\"\"\"\nAggregator for Monte Carlo package.\n\nRe-exports:\n- monte_carlo_trades: trade-order shuffle Monte Carlo (from monte_carlo_trades)\n- monte_carlo_candles: candles-based Monte Carlo (from monte_carlo_candles)\n- All plotting and summary functions for easy access\n- Candle pipelines for Monte Carlo simulations\n- Helper functions for chart creation\n\"\"\"\n\nfrom .monte_carlo_trades import (\n    monte_carlo_trades,\n    print_monte_carlo_trades_summary,\n    plot_monte_carlo_trades_chart\n)\nfrom .monte_carlo_candles import (\n    monte_carlo_candles,\n    print_monte_carlo_candles_summary,\n    plot_monte_carlo_candles_chart\n)\nfrom jesse.candle_pipelines import (\n    GaussianNoiseCandlesPipeline,\n    MovingBlockBootstrapCandlesPipeline\n)\n\n__all__ = [\n    'monte_carlo_trades',\n    'monte_carlo_candles',\n    'print_monte_carlo_trades_summary',\n    'plot_monte_carlo_trades_chart',\n    'print_monte_carlo_candles_summary',\n    'plot_monte_carlo_candles_chart',\n    'GaussianNoiseCandlesPipeline',\n    'MovingBlockBootstrapCandlesPipeline',\n]\n\n"
  },
  {
    "path": "jesse/research/monte_carlo/common.py",
    "content": "from typing import List, Dict, Any\nimport ray\nimport jesse.helpers as jh\nimport jesse.services.logger as logger\n\n# =============================================================================\n# SHARED CONSTANTS\n# =============================================================================\n\n# CPU and performance constants\nDEFAULT_CPU_USAGE_RATIO = 0.8  # Use 80% of available CPU cores by default\nMIN_CPU_CORES = 1  # Minimum number of CPU cores to use\nRAY_WAIT_TIMEOUT = 0.5  # Timeout for Ray wait operations (seconds)\n\n# Random seed constants\nBASE_RANDOM_SEED = 42  # Base seed for reproducible results\n\n# Statistical constants\nANNUALIZATION_FACTOR = 365  # Trading days per year for volatility calculation\nMAX_DRAWDOWN_LIMIT = 1.0  # Maximum possible drawdown (100%)\n\n# Confidence interval percentiles\nCONFIDENCE_PERCENTILES = {\n    'extreme_low': 2.5,\n    'low': 5,\n    'low_quartile': 25,\n    'median': 50,\n    'high_quartile': 75,\n    'high': 95,\n    'extreme_high': 97.5\n}\n\n# Statistical significance levels\nALPHA_5_PERCENT = 0.05\nALPHA_1_PERCENT = 0.01\n\n\n# =============================================================================\n# SHARED UTILITIES\n# =============================================================================\n\ndef _setup_progress_bar(progress_bar: bool, total_scenarios: int, description: str):\n    if not progress_bar:\n        return None\n    if jh.is_notebook():\n        from tqdm.notebook import tqdm\n    else:\n        from tqdm import tqdm\n    return tqdm(total=total_scenarios, desc=description)\n\n\ndef _safe_log_message(message: str, pbar, is_error: bool = False) -> None:\n    formatted_message = message\n    if is_error:\n        formatted_message = f\"{'='*80}\\n🚨 ERROR: {message}\\n{'='*80}\"\n    \n    if pbar:\n        if jh.is_notebook():\n            print(formatted_message)\n        else:\n            from tqdm import tqdm\n            tqdm.write(formatted_message)\n    \n    if jh.app_mode() == 'monte-carlo':\n        logger.log_monte_carlo(message if not is_error else f\"ERROR: {message}\", session_id=jh.get_session_id())\n\n\ndef _process_scenario_results(\n    scenario_refs: List[Any],\n    pbar,\n    progress_callback=None,\n    result_callback=None\n) -> List[Dict[str, Any]]:\n    results: List[Dict[str, Any]] = []\n    remaining_refs = scenario_refs.copy()\n    total_scenarios = len(scenario_refs)\n    completed_count = 0\n    \n    while remaining_refs:\n        completed_refs, remaining_refs = ray.wait(remaining_refs, num_returns=1, timeout=RAY_WAIT_TIMEOUT)\n        for ref in completed_refs:\n            try:\n                response = ray.get(ref)\n                if isinstance(response, dict) and 'result' in response:\n                    if response['result'] is not None:\n                        results.append(response['result'])\n                        # Stream the result immediately to the caller (for progressive UI updates)\n                        if result_callback is not None:\n                            try:\n                                result_callback(response['result'])\n                            except Exception:\n                                # Do not crash the loop due to callback errors\n                                pass\n                    if response.get('log'):\n                        is_error = response.get('error', False)\n                        _safe_log_message(response['log'], pbar, is_error=is_error)\n                else:\n                    results.append(response)\n            except Exception as e:\n                error_msg = f\"Error processing scenario result: {str(e)}\"\n                _safe_log_message(error_msg, pbar, is_error=True)\n            \n            if pbar:\n                pbar.update(1)\n            \n            # Call progress callback with actual completion count\n            completed_count += 1\n            if progress_callback:\n                progress_callback(completed_count)\n    \n    return results\n\n\ndef _create_ray_shared_objects(\n    config: dict,\n    routes: List[Dict[str, str]],\n    data_routes: List[Dict[str, str]],\n    candles: dict,\n    warmup_candles: dict,\n    hyperparameters: dict\n) -> Dict[str, Any]:\n    return {\n        'config': ray.put(config),\n        'routes': ray.put(routes),\n        'data_routes': ray.put(data_routes),\n        'candles': ray.put(candles),\n        'warmup_candles': ray.put(warmup_candles),\n        'hyperparameters': ray.put(hyperparameters)\n    }\n\n\n"
  },
  {
    "path": "jesse/research/monte_carlo/monte_carlo_candles.py",
    "content": "from typing import List, Dict, Optional, Tuple, Any, TypedDict\nimport ray\nfrom multiprocessing import cpu_count\nimport numpy as np\nimport os\nfrom datetime import datetime\nimport jesse.helpers as jh\nfrom jesse.research import backtest\n\nfrom .common import (\n    DEFAULT_CPU_USAGE_RATIO,\n    MIN_CPU_CORES,\n    CONFIDENCE_PERCENTILES,\n    ALPHA_5_PERCENT,\n    ALPHA_1_PERCENT,\n    _setup_progress_bar,\n    _process_scenario_results,\n    _create_ray_shared_objects,\n)\n\n# ============================================================================\n# Typed return structures for candles-based Monte Carlo\n# ============================================================================\nclass EquityCurvePoint(TypedDict):\n    time: int\n    value: float\n\nclass EquityCurveSeries(TypedDict):\n    name: str\n    data: List[EquityCurvePoint]\n\nclass MonteCarloCandlesScenarioResult(TypedDict, total=False):\n    scenario_index: int\n    metrics: Dict[str, Any]  # Backtest metrics dict\n    equity_curve: List[EquityCurveSeries]\n    trades: List[Dict[str, Any]]\n\nclass MonteCarloCandlesReturn(TypedDict):\n    original: MonteCarloCandlesScenarioResult | None\n    scenarios: List[MonteCarloCandlesScenarioResult]\n    num_scenarios: int\n    total_requested: int\n\n\n@ray.remote\ndef _ray_run_scenario_monte_carlo_candles(\n    config: dict,\n    routes: List[Dict[str, str]],\n    data_routes: List[Dict[str, str]],\n    candles: dict,\n    warmup_candles: dict,\n    hyperparameters: dict,\n    fast_mode: bool,\n    scenario_index: int,\n    candles_pipeline_class = None,\n    candles_pipeline_kwargs: dict = None\n) -> Dict[str, Any]:\n    \"\"\"\n    Ray remote function to execute a single Monte Carlo candles scenario.\n    \"\"\"\n    try:\n        # Always apply the pipeline for Monte Carlo scenarios (except scenario 0 which is original)\n        should_use_pipeline = candles_pipeline_class is not None and scenario_index > 0\n        result = backtest(\n            config=config,\n            routes=routes,\n            data_routes=data_routes,\n            candles=candles,\n            warmup_candles=warmup_candles,\n            generate_equity_curve=True,\n            hyperparameters=hyperparameters,\n            fast_mode=fast_mode,\n            benchmark=False,  # Never use benchmark mode\n            candles_pipeline_class=candles_pipeline_class if should_use_pipeline else None,\n            candles_pipeline_kwargs=candles_pipeline_kwargs if should_use_pipeline else None\n        )\n        # Tag the result with its scenario index so downstream consumers can\n        # reliably identify the original vs simulated scenarios regardless of completion order\n        result['scenario_index'] = scenario_index\n        if 'equity_curve' not in result or result['equity_curve'] is None:\n            return {\n                'result': result,\n                'log': f\"Info: Scenario {scenario_index} missing equity_curve - will be filtered out\",\n                'error': False\n            }\n        return {'result': result, 'log': None, 'error': False}\n    except Exception as e:\n        import traceback\n        full_traceback = traceback.format_exc()\n        error_type = type(e).__name__\n        error_msg = str(e)\n        detailed_error = (\n            f\"Scenario {scenario_index} failed with {error_type}: {error_msg}\\n\"\n            f\"{full_traceback}\"\n        )\n        return {'result': None, 'log': detailed_error, 'error': True}\n\n\ndef monte_carlo_candles(\n    config: dict,\n    routes: List[Dict[str, str]],\n    data_routes: List[Dict[str, str]],\n    candles: dict,\n    warmup_candles: Optional[dict] = None,\n    hyperparameters: Optional[dict] = None,\n    fast_mode: bool = True,\n    num_scenarios: int = 1000,\n    progress_bar: bool = False,\n    candles_pipeline_class = None,\n    candles_pipeline_kwargs: Optional[dict] = None,\n    cpu_cores: Optional[int] = None,\n    progress_callback = None,\n    result_callback = None,\n) -> MonteCarloCandlesReturn:\n    if cpu_cores is None:\n        available_cores = cpu_count()\n        cpu_cores = max(MIN_CPU_CORES, int(available_cores * DEFAULT_CPU_USAGE_RATIO))\n    else:\n        available_cores = cpu_count()\n        cpu_cores = max(MIN_CPU_CORES, min(cpu_cores, available_cores))\n    ray_started_here = False\n    if not ray.is_initialized():\n        try:\n            ray.init(num_cpus=cpu_cores, ignore_reinit_error=True)\n            print(f\"Successfully started Monte Carlo simulation with {cpu_cores} CPU cores\")\n            ray_started_here = True\n        except Exception as e:\n            raise RuntimeError(f\"Error initializing Ray: {e}\")\n    try:\n        return _run_monte_carlo_candles_simulation(\n            config, routes, data_routes, candles, warmup_candles,\n            hyperparameters, fast_mode, num_scenarios,\n            progress_bar, candles_pipeline_class, candles_pipeline_kwargs,\n            cpu_cores, ray_started_here, progress_callback, result_callback\n        )\n    except Exception as e:\n        jh.debug(f\"Error during Monte Carlo simulation: {e}\")\n        raise\n    finally:\n        if ray_started_here and ray.is_initialized():\n            ray.shutdown()\n\n\ndef _launch_monte_carlo_candles_scenarios(\n    num_scenarios: int,\n    shared_objects: Dict[str, Any],\n    fast_mode: bool,\n    candles_pipeline_class,\n    candles_pipeline_kwargs: dict\n) -> List[Any]:\n    scenario_refs = []\n    for i in range(num_scenarios):\n        ref = _ray_run_scenario_monte_carlo_candles.remote(\n            config=shared_objects['config'],\n            routes=shared_objects['routes'],\n            data_routes=shared_objects['data_routes'],\n            candles=shared_objects['candles'],\n            warmup_candles=shared_objects['warmup_candles'],\n            hyperparameters=shared_objects['hyperparameters'],\n            fast_mode=fast_mode,\n            scenario_index=i,\n            candles_pipeline_class=candles_pipeline_class,\n            candles_pipeline_kwargs=candles_pipeline_kwargs\n        )\n        scenario_refs.append(ref)\n    return scenario_refs\n\n\ndef _filter_valid_results(results: List[dict]) -> Tuple[List[dict], int]:\n    valid_results = [\n        r for r in results\n        if 'equity_curve' in r and r['equity_curve'] is not None\n    ]\n    filtered_count = len(results) - len(valid_results)\n    return valid_results, filtered_count\n\n\ndef _log_monte_carlo_candles_simulation_summary(valid_results: List[dict], filtered_count: int, num_scenarios: int) -> None:\n    if filtered_count > 0:\n        print(f\"Filtered out {filtered_count} scenarios with missing equity curves\")\n    print(f\"Returned {len(valid_results)} valid scenarios out of {num_scenarios} total\")\n\n\ndef _calculate_confidence_intervals_candles(original_result: dict, simulation_results: list) -> dict:\n    if not simulation_results:\n        return {'error': 'No simulation results to analyze'}\n\n    # Collect metrics from simulation results (candles scenarios return full backtest results)\n    metrics = {\n        'net_profit_percentage': [],\n        'max_drawdown': [],\n        'sharpe_ratio': [],\n        'win_rate': [],\n        'total': [],\n        'annual_return': [],\n        'calmar_ratio': []\n    }\n\n    for result in simulation_results:\n        if 'metrics' in result:\n            scenario_metrics = result['metrics']\n            for key in metrics.keys():\n                if key in scenario_metrics and isinstance(scenario_metrics[key], (int, float)):\n                    metrics[key].append(scenario_metrics[key])\n\n    original_metrics = original_result.get('metrics', {}) if original_result else {}\n    confidence_analysis: Dict[str, Any] = {}\n\n    for metric_name, values in metrics.items():\n        if not values:\n            continue\n        values_array = np.array(values)\n\n        # For candles, metrics are already in percentage format (like original backtest)\n        # But for dashboard consistency, we keep them as percentages in confidence analysis\n        original_value = original_metrics.get(metric_name, 0)\n\n        percentiles = {\n            '5th': np.percentile(values_array, 5),\n            '25th': np.percentile(values_array, 25),\n            '50th': np.percentile(values_array, 50),\n            '75th': np.percentile(values_array, 75),\n            '95th': np.percentile(values_array, 95)\n        }\n\n        ci_95 = {\n            'lower': np.percentile(values_array, CONFIDENCE_PERCENTILES['extreme_low']),\n            'upper': np.percentile(values_array, CONFIDENCE_PERCENTILES['extreme_high'])\n        }\n        ci_90 = {\n            'lower': np.percentile(values_array, CONFIDENCE_PERCENTILES['low']),\n            'upper': np.percentile(values_array, CONFIDENCE_PERCENTILES['high'])\n        }\n\n        # For max_drawdown, p_value logic is reversed (lower values are better)\n        if metric_name == 'max_drawdown':\n            p_value = np.sum(values_array <= original_value) / len(values_array)\n        else:\n            p_value = np.sum(values_array >= original_value) / len(values_array)\n\n        mean_sim = np.mean(values_array)\n        std_sim = np.std(values_array)\n\n        confidence_analysis[metric_name] = {\n            'original': original_value,\n            'simulations': {\n                'mean': mean_sim,\n                'std': std_sim,\n                'min': np.min(values_array),\n                'max': np.max(values_array),\n                'count': len(values_array)\n            },\n            'percentiles': percentiles,\n            'confidence_intervals': {\n                '90%': ci_90,\n                '95%': ci_95\n            },\n            'p_value': p_value,\n            'is_significant_5pct': p_value < ALPHA_5_PERCENT,\n            'is_significant_1pct': p_value < ALPHA_1_PERCENT\n        }\n\n    summary = {\n        'num_simulations': len(simulation_results),\n        'significant_metrics_5pct': sum(1 for m in confidence_analysis.values() if m.get('is_significant_5pct', False)),\n        'significant_metrics_1pct': sum(1 for m in confidence_analysis.values() if m.get('is_significant_1pct', False)),\n        'total_metrics': len(confidence_analysis)\n    }\n\n    return {\n        'summary': summary,\n        'metrics': confidence_analysis,\n        'interpretation': _generate_interpretation_candles(confidence_analysis)\n    }\n\n\ndef _generate_interpretation_candles(confidence_analysis: dict) -> dict:\n    interpretations = []\n    for metric_name, analysis in confidence_analysis.items():\n        original = analysis['original']\n        p_value = analysis['p_value']\n        percentiles = analysis['percentiles']\n\n        if analysis['is_significant_1pct']:\n            significance = \"highly significant (p < 0.01)\"\n        elif analysis['is_significant_5pct']:\n            significance = \"significant (p < 0.05)\"\n        else:\n            significance = \"not significant (p >= 0.05)\"\n\n        if metric_name == 'max_drawdown':\n            # For max_drawdown, lower percentiles are better\n            if original <= percentiles['5th']:\n                rank = \"top 5% (lowest drawdowns)\"\n            elif original <= percentiles['25th']:\n                rank = \"top 25% (low drawdowns)\"\n            elif original <= percentiles['50th']:\n                rank = \"above median\"\n            elif original <= percentiles['75th']:\n                rank = \"below median\"\n            else:\n                rank = \"bottom 25% (high drawdowns)\"\n        else:\n            # For other metrics, higher percentiles are better\n            if original >= percentiles['95th']:\n                rank = \"top 5%\"\n            elif original >= percentiles['75th']:\n                rank = \"top 25%\"\n            elif original >= percentiles['50th']:\n                rank = \"above median\"\n            elif original >= percentiles['25th']:\n                rank = \"below median\"\n            else:\n                rank = \"bottom 25%\"\n\n        interpretations.append({\n            'metric': metric_name,\n            'significance': significance,\n            'rank': rank,\n            'p_value': p_value,\n            'message': f\"{metric_name}: {significance}, original result in {rank} of simulations\"\n        })\n\n    return {\n        'detailed': interpretations,\n        'overall': f\"Strategy shows {sum(1 for i in interpretations if 'significant' in i['significance'])} out of {len(interpretations)} metrics being statistically significant.\"\n    }\n\n\ndef _run_monte_carlo_candles_simulation(\n    config: dict, routes: List[Dict[str, str]], data_routes: List[Dict[str, str]],\n    candles: dict, warmup_candles: dict, hyperparameters: dict,\n    fast_mode: bool, num_scenarios: int, progress_bar: bool,\n    candles_pipeline_class, candles_pipeline_kwargs: dict, cpu_cores: int, started_ray_here: bool, progress_callback=None, result_callback=None\n) -> dict:\n    try:\n        pbar = _setup_progress_bar(progress_bar, num_scenarios, \"Monte Carlo Candles Scenarios\")\n        shared_objects = _create_ray_shared_objects(\n            config, routes, data_routes, candles, warmup_candles, hyperparameters\n        )\n        scenario_refs = _launch_monte_carlo_candles_scenarios(\n            num_scenarios, shared_objects, fast_mode,\n            candles_pipeline_class, candles_pipeline_kwargs\n        )\n        results = _process_scenario_results(scenario_refs, pbar, progress_callback, result_callback)\n        if pbar:\n            pbar.close()\n        valid_results, filtered_count = _filter_valid_results(results)\n        _log_monte_carlo_candles_simulation_summary(valid_results, filtered_count, num_scenarios)\n\n        # Separate original result (scenario_index == 0) from Monte Carlo simulations\n        original_result = next((r for r in valid_results if r.get('scenario_index') == 0), None)\n        simulation_results = [r for r in valid_results if r.get('scenario_index', -1) > 0]\n\n        # Calculate confidence intervals\n        confidence_analysis = _calculate_confidence_intervals_candles(original_result, simulation_results)\n\n        return {\n            'original': original_result,\n            'scenarios': simulation_results,\n            'confidence_analysis': confidence_analysis,\n            'num_scenarios': len(simulation_results),\n            'total_requested': num_scenarios\n        }\n    except Exception as e:\n        print(f\"Error during Monte Carlo candles simulation: {e}\")\n        raise\n\n\ndef _get_timestamped_filename(base_name: str) -> str:\n    \"\"\"Generate a timestamped filename.\"\"\"\n    timestamp = datetime.now().strftime(\"%Y%m%d_%H%M%S\")\n    name, ext = os.path.splitext(base_name)\n    return f\"{name}_{timestamp}{ext}\"\n\n\ndef _create_charts_folder():\n    \"\"\"Create a charts folder for all outputs.\"\"\"\n    folder_path = os.path.abspath(\"charts\")\n    os.makedirs(folder_path, exist_ok=True)\n    return folder_path\n\n\ndef print_monte_carlo_candles_summary(results: dict) -> None:\n    \"\"\"Print a robustness table for Monte Carlo candles scenarios.\n\n    Args:\n        results: The full results dict returned by monte_carlo_candles(). Must contain 'original' and 'scenarios'.\n    \"\"\"\n    if 'confidence_analysis' not in results:\n        print(\"No confidence analysis available\")\n        return\n    ca = results['confidence_analysis']\n    summary = ca['summary']\n    metrics = ca['metrics']\n    print(f\"\\n📈 MONTE CARLO CANDLES (market-path robustness test)\")\n    print(f\"   Valid scenarios: {summary['num_simulations']}\")\n    headers = [\"Metric\", \"Original\", \"Worst 5%\", \"Median\", \"Best 5%\"]\n    rows = []\n    for metric_name, a in metrics.items():\n        if 'original' not in a:\n            continue\n        orig = a['original']\n        percentiles = a.get('percentiles', {})\n        p5 = percentiles.get('5th', 0)\n        p50 = percentiles.get('50th', 0)\n        p95 = percentiles.get('95th', 0)\n        display_name = metric_name.replace('_', ' ').title()\n        if 'percentage' in metric_name or 'return' in metric_name:\n            orig_disp = f\"{orig:.1f}%\" if orig is not None else \"—\"\n            p5_disp = f\"{p5:.1f}%\"; p50_disp = f\"{p50:.1f}%\"; p95_disp = f\"{p95:.1f}%\"\n        elif metric_name == 'max_drawdown':\n            display_name = \"Max Drawdown (%)\"\n            orig_disp = f\"-{abs(orig):.1f}%\" if orig is not None else \"—\"\n            p5_disp = f\"-{abs(p5):.1f}%\"; p50_disp = f\"-{abs(p50):.1f}%\"; p95_disp = f\"-{abs(p95):.1f}%\"\n        elif metric_name in ['sharpe_ratio', 'calmar_ratio']:\n            orig_disp = f\"{orig:.2f}\" if orig is not None else \"—\"\n            p5_disp = f\"{p5:.2f}\"; p50_disp = f\"{p50:.2f}\"; p95_disp = f\"{p95:.2f}\"\n        elif metric_name == 'win_rate':\n            display_name = \"Win Rate (%)\"\n            orig_disp = f\"{orig*100:.1f}%\" if orig is not None else \"—\"\n            p5_disp = f\"{p5*100:.1f}%\"; p50_disp = f\"{p50*100:.1f}%\"; p95_disp = f\"{p95*100:.1f}%\"\n        else:\n            orig_disp = f\"{orig:.1f}\" if orig is not None else \"—\"\n            p5_disp = f\"{p5:.1f}\"; p50_disp = f\"{p50:.1f}\"; p95_disp = f\"{p95:.1f}\"\n        rows.append([display_name, orig_disp, p5_disp, p50_disp, p95_disp])\n    if not rows:\n        print(\"❌ No numeric metrics to summarize\")\n        return\n    col_widths = [max(len(str(x)) for x in [h] + [r[i] for r in rows]) for i, h in enumerate(headers)]\n    line = \" | \".join(h.ljust(col_widths[i]) for i, h in enumerate(headers))\n    sep = \"-+-\".join(\"-\" * w for w in col_widths)\n    print(\"   \" + line); print(\"   \" + sep)\n    for r in rows:\n        print(\"   \" + \" | \".join(str(r[i]).ljust(col_widths[i]) for i in range(len(headers))))\n    print(f\"\\n   📊 Interpretation:\")\n    print(f\"   • This tests how your strategy performs across different market conditions under resampled candles\")\n\n\ndef plot_monte_carlo_candles_chart(results: dict, charts_folder: str = None) -> None:\n    \"\"\"Plot equity curves from Monte Carlo candles results.\n\n    Args:\n        results: The full results dict returned by monte_carlo_candles(). Must contain 'original' and 'scenarios'.\n        charts_folder: Optional folder to save charts in.\n    \"\"\"\n    import matplotlib\n    matplotlib.use('Agg')  # Use non-interactive backend\n    from matplotlib import pyplot as plt\n    \n    if not results or 'scenarios' not in results or not results['scenarios']:\n        print(\"No simulation results to plot\")\n        return\n    original_result = results.get('original')\n    simulation_results = results.get('scenarios', [])\n    print(f\"Number of Monte Carlo candles scenarios found: {len(simulation_results)}\")\n    for simulation in simulation_results:\n        if \"equity_curve\" in simulation and simulation[\"equity_curve\"]:\n            for equity_curve in simulation[\"equity_curve\"]:\n                if equity_curve[\"name\"] == \"Portfolio\":\n                    values = [item[\"value\"] for item in equity_curve[\"data\"]]\n                    plt.plot(values, color=\"cornflowerblue\", alpha=0.5, linewidth=0.8)\n    if original_result and \"equity_curve\" in original_result and original_result[\"equity_curve\"]:\n        for equity_curve in original_result[\"equity_curve\"]:\n            if equity_curve[\"name\"] == \"Portfolio\":\n                values = [item[\"value\"] for item in equity_curve[\"data\"]]\n                plt.plot(values, color=\"green\", linewidth=2, label=\"Original Strategy\")\n    plt.title(\"Monte Carlo Candles - Equity Curve\")\n    plt.legend(); plt.tight_layout()\n    if charts_folder is None:\n        charts_folder = _create_charts_folder()\n    filename = _get_timestamped_filename(\"monte_carlo_candles_chart.png\")\n    chart_path = os.path.join(charts_folder, filename)\n    plt.savefig(chart_path, dpi=150, bbox_inches='tight'); plt.close()\n    print(f\"Saved Monte Carlo candles chart to: {chart_path}\")\n\n\n"
  },
  {
    "path": "jesse/research/monte_carlo/monte_carlo_trades.py",
    "content": "from typing import List, Dict, Optional, Tuple, Any, TypedDict\nimport ray\nfrom multiprocessing import cpu_count\nimport numpy as np\nimport random\nimport os\nfrom datetime import datetime\nimport jesse.helpers as jh\nfrom jesse.research import backtest\n\nfrom .common import (\n    DEFAULT_CPU_USAGE_RATIO,\n    MIN_CPU_CORES,\n    BASE_RANDOM_SEED,\n    CONFIDENCE_PERCENTILES,\n    ALPHA_5_PERCENT,\n    ALPHA_1_PERCENT,\n    ANNUALIZATION_FACTOR,\n    MAX_DRAWDOWN_LIMIT,\n    _setup_progress_bar,\n    _process_scenario_results,\n)\n\n# ============================================================================\n# Typed return structures for clearer docs and IDE support\n# ============================================================================\nclass EquityCurvePoint(TypedDict):\n    time: int\n    value: float\n\nclass EquityCurveSeries(TypedDict):\n    name: str  # 'Portfolio'\n    data: List[EquityCurvePoint]\n\nclass MonteCarloTradeScenarioResult(TypedDict, total=False):\n    # Metrics reconstructed from shuffled trades\n    total_return: float\n    final_value: float\n    max_drawdown: float\n    volatility: float\n    sharpe_ratio: float\n    calmar_ratio: float\n    starting_balance: float\n    # Added by ray_run_scenario_monte_carlo\n    trades: List[Dict[str, Any]]\n    equity_curve: List[EquityCurveSeries]\n\nclass ConfidenceIntervalBounds(TypedDict):\n    lower: float\n    upper: float\n\nclass ConfidenceIntervals(TypedDict):\n    _90: ConfidenceIntervalBounds  # stored as '90%'\n    _95: ConfidenceIntervalBounds  # stored as '95%'\n\nclass MetricPercentiles(TypedDict):\n    _5th: float  # stored as '5th'\n    _25th: float  # stored as '25th'\n    _50th: float  # stored as '50th'\n    _75th: float  # stored as '75th'\n    _95th: float  # stored as '95th'\n\nclass SimulationAggregate(TypedDict):\n    mean: float\n    std: float\n    min: float\n    max: float\n    count: int\n\nclass ConfidenceMetricAnalysis(TypedDict):\n    original: float\n    simulations: SimulationAggregate\n    percentiles: Dict[str, float]\n    confidence_intervals: Dict[str, ConfidenceIntervalBounds]\n    p_value: float\n    is_significant_5pct: bool\n    is_significant_1pct: bool\n\nclass ConfidenceAnalysis(TypedDict):\n    summary: Dict[str, int]\n    metrics: Dict[str, ConfidenceMetricAnalysis]\n    interpretation: Dict[str, Any]\n\nclass MonteCarloTradesReturn(TypedDict):\n    original: Dict[str, Any]\n    scenarios: List[MonteCarloTradeScenarioResult]\n    confidence_analysis: ConfidenceAnalysis\n    num_scenarios: int\n    total_requested: int\n\n\n@ray.remote\ndef _ray_run_scenario_monte_carlo(\n    original_trades: list,\n    original_equity_curve: list,\n    starting_balance: float,\n    scenario_index: int,\n    seed: Optional[int] = None\n) -> Dict[str, Any]:\n    try:\n        if seed is not None:\n            scenario_seed = seed + scenario_index\n            random.seed(scenario_seed)\n            np.random.seed(scenario_seed)\n        shuffled_trades = original_trades.copy()\n        random.shuffle(shuffled_trades)\n        equity_curve = _reconstruct_equity_curve_from_trades(\n            shuffled_trades, original_equity_curve, starting_balance\n        )\n        result = _calculate_metrics_from_equity_curve(equity_curve, starting_balance)\n        result['trades'] = shuffled_trades\n        result['equity_curve'] = equity_curve\n        return {'result': result, 'log': None, 'error': False}\n    except Exception as e:\n        import traceback\n        full_traceback = traceback.format_exc()\n        error_type = type(e).__name__\n        error_msg = str(e)\n        detailed_error = (\n            f\"Scenario {scenario_index} failed with {error_type}: {error_msg}\\n\"\n            f\"{full_traceback}\"\n        )\n        return {'result': None, 'log': detailed_error, 'error': True}\n\n\ndef monte_carlo_trades(\n    config: dict,\n    routes: List[Dict[str, str]],\n    data_routes: List[Dict[str, str]],\n    candles: dict,\n    warmup_candles: Optional[dict] = None,\n    benchmark: bool = False,\n    hyperparameters: Optional[dict] = None,\n    fast_mode: bool = True,\n    num_scenarios: int = 1000,\n    progress_bar: bool = False,\n    cpu_cores: Optional[int] = None,\n    progress_callback = None,\n    result_callback = None,\n) -> MonteCarloTradesReturn:\n    if cpu_cores is None:\n        available_cores = cpu_count()\n        cpu_cores = max(MIN_CPU_CORES, int(available_cores * DEFAULT_CPU_USAGE_RATIO))\n    else:\n        available_cores = cpu_count()\n        cpu_cores = max(MIN_CPU_CORES, min(cpu_cores, available_cores))\n\n    ray_started_here = False\n    if not ray.is_initialized():\n        try:\n            ray.init(num_cpus=cpu_cores, ignore_reinit_error=True)\n            print(f\"Successfully started Monte Carlo simulation with {cpu_cores} CPU cores\")\n            ray_started_here = True\n        except Exception as e:\n            raise RuntimeError(f\"Error initializing Ray: {e}\")\n\n    try:\n        return _run_monte_carlo_simulation(\n            config, routes, data_routes, candles, warmup_candles,\n            benchmark, hyperparameters, fast_mode, num_scenarios, progress_bar,\n            cpu_cores, ray_started_here, progress_callback, result_callback\n        )\n    except Exception as e:\n        jh.debug(f\"Error during Monte Carlo simulation: {e}\")\n        raise\n    finally:\n        if ray_started_here and ray.is_initialized():\n            ray.shutdown()\n\n\ndef _run_monte_carlo_simulation(\n    config: dict, routes: List[Dict[str, str]], data_routes: List[Dict[str, str]],\n    candles: dict, warmup_candles: dict, benchmark: bool, hyperparameters: dict, fast_mode: bool,\n    num_scenarios: int, progress_bar: bool, cpu_cores: int, started_ray_here: bool, progress_callback=None, result_callback=None\n) -> dict:\n    try:\n        original_result = _run_original_backtest(\n            config, routes, data_routes, candles, warmup_candles,\n            hyperparameters, fast_mode, benchmark\n        )\n        original_trades, original_equity_curve, starting_balance = _extract_trade_data(\n            original_result, config\n        )\n        pbar = _setup_progress_bar(progress_bar, num_scenarios, \"Monte Carlo Scenarios\")\n        trades_ref = ray.put(original_trades)\n        equity_curve_ref = ray.put(original_equity_curve)\n        scenario_refs = _launch_monte_carlo_scenarios(\n            num_scenarios, trades_ref, equity_curve_ref, starting_balance\n        )\n        results = _process_scenario_results(scenario_refs, pbar, progress_callback, result_callback)\n        if pbar:\n            pbar.close()\n        print(f\"Completed {len(results)} Monte Carlo scenarios out of {num_scenarios} requested\")\n        confidence_analysis = _calculate_confidence_intervals(original_result, results)\n        return {\n            'original': original_result,\n            'scenarios': results,\n            'confidence_analysis': confidence_analysis,\n            'num_scenarios': len(results),\n            'total_requested': num_scenarios\n        }\n    except Exception as e:\n        print(f\"Error during Monte Carlo simulation: {e}\")\n        raise\n\n\ndef _run_original_backtest(\n    config: dict,\n    routes: List[Dict[str, str]],\n    data_routes: List[Dict[str, str]],\n    candles: dict,\n    warmup_candles: dict,\n    hyperparameters: dict,\n    fast_mode: bool,\n    benchmark: bool\n) -> dict:\n    return backtest(\n        config=config,\n        routes=routes,\n        data_routes=data_routes,\n        candles=candles,\n        warmup_candles=warmup_candles,\n        generate_equity_curve=True,\n        hyperparameters=hyperparameters,\n        fast_mode=fast_mode,\n        benchmark=benchmark\n    )\n\n\ndef _extract_trade_data(original_result: dict, config: dict) -> Tuple[list, list, float]:\n    if 'trades' not in original_result:\n        available_keys = list(original_result.keys())\n        print(f\"Available keys in backtest result: {available_keys}\")\n        raise ValueError(\"No 'trades' key found in backtest result. Cannot perform trade-shuffling Monte Carlo.\")\n    trades_list = original_result['trades']\n    if not trades_list:\n        _diagnose_empty_trades(original_result)\n        raise ValueError(\"No trades found in original backtest. Cannot perform trade-shuffling Monte Carlo.\")\n    original_equity_curve = original_result['equity_curve']\n    starting_balance = config.get('starting_balance', 10000)\n    return trades_list, original_equity_curve, starting_balance\n\n\ndef _diagnose_empty_trades(original_result: dict) -> None:\n    print(\"Trades list is empty. This could happen if:\")\n    print(\"1. The strategy didn't generate any trades\")\n    print(\"2. The time period was too short\")\n    print(\"3. The strategy conditions were never met\")\n    if 'metrics' in original_result:\n        total_trades = original_result['metrics'].get('total', 0)\n        print(f\"   Metrics shows total trades: {total_trades}\")\n\n\ndef _launch_monte_carlo_scenarios(\n    num_scenarios: int,\n    trades_ref: Any,\n    equity_curve_ref: Any,\n    starting_balance: float\n) -> List[Any]:\n    scenario_refs: List[Any] = []\n    for i in range(num_scenarios):\n        ref = _ray_run_scenario_monte_carlo.remote(\n            original_trades=trades_ref,\n            original_equity_curve=equity_curve_ref,\n            starting_balance=starting_balance,\n            scenario_index=i,\n            seed=BASE_RANDOM_SEED\n        )\n        scenario_refs.append(ref)\n    return scenario_refs\n\n\ndef _reconstruct_equity_curve_from_trades(shuffled_trades: list, original_equity_curve: list, starting_balance: float) -> list:\n    if not original_equity_curve or not original_equity_curve[0].get('data'):\n        raise ValueError(\"Invalid original equity curve format\")\n    original_data = original_equity_curve[0]['data']\n    time_points = [item.get('time', item.get('timestamp', 0)) for item in original_data]\n    new_equity_curve = [{\n        'name': 'Portfolio',\n        'data': []\n    }]\n    current_balance = starting_balance\n    trade_index = 0\n    total_trades = len(shuffled_trades)\n    total_time_points = len(time_points)\n    trades_per_point = total_trades / total_time_points if total_time_points > 0 else 1\n    for i, timestamp in enumerate(time_points):\n        target_trades_completed = int((i + 1) * trades_per_point)\n        trades_to_add = target_trades_completed - trade_index\n        for _ in range(trades_to_add):\n            if trade_index < total_trades:\n                current_balance += shuffled_trades[trade_index]['PNL']\n                trade_index += 1\n        new_equity_curve[0]['data'].append({\n            'time': timestamp,\n            'value': current_balance\n        })\n    return new_equity_curve\n\n\ndef _calculate_metrics_from_equity_curve(equity_curve: list, starting_balance: float) -> dict:\n    if not equity_curve or not equity_curve[0].get('data'):\n        return {'error': 'Invalid equity curve'}\n    data = equity_curve[0]['data']\n    values = [item['value'] for item in data]\n\n    if not values:\n        return {'error': 'No data in equity curve'}\n    final_value = values[-1]\n    total_return = ((final_value - starting_balance) / starting_balance) * 100\n    max_drawdown = _calculate_max_drawdown(values)\n    volatility, sharpe_ratio = _calculate_volatility_metrics(values)\n    calmar_ratio = total_return / abs(max_drawdown) if max_drawdown < 0 else 0\n    return {\n        'total_return': total_return,\n        'final_value': final_value,\n        'max_drawdown': max_drawdown,\n        'volatility': volatility,\n        'sharpe_ratio': sharpe_ratio,\n        'calmar_ratio': calmar_ratio,\n        'starting_balance': starting_balance\n    }\n\n\ndef _calculate_max_drawdown(values: List[float]) -> float:\n    \"\"\"\n    Calculates the maximum drawdown from equity curve values (prices)\n    Same approach as metrics.py: (prices / prices.expanding(min_periods=0).max()).min() - 1\n    \"\"\"\n    if not values:\n        return 0.0\n\n    # Find running maximum\n    running_max = values[0]\n    max_drawdown = 0.0\n\n    for price in values:\n        running_max = max(running_max, price)\n        drawdown = price / running_max - 1\n        max_drawdown = min(max_drawdown, drawdown)\n\n    return max_drawdown * 100\n\n\ndef _calculate_volatility_metrics(values: List[float]) -> Tuple[float, float]:\n    if len(values) <= 1:\n        return 0.0, 0.0\n    returns: List[float] = []\n    for i in range(1, len(values)):\n        if values[i-1] != 0:\n            daily_return = (values[i] - values[i-1]) / values[i-1]\n            returns.append(daily_return)\n    if not returns:\n        return 0.0, 0.0\n    daily_std = np.std(returns)\n    annualized_volatility = daily_std * np.sqrt(ANNUALIZATION_FACTOR)\n    avg_daily_return = np.mean(returns)\n    annualized_return = avg_daily_return * ANNUALIZATION_FACTOR\n    sharpe_ratio = annualized_return / annualized_volatility if annualized_volatility > 0 else 0\n    return annualized_volatility, sharpe_ratio\n\n\ndef _calculate_confidence_intervals(original_result: dict, simulation_results: list) -> dict:\n    if not simulation_results:\n        return {'error': 'No simulation results to analyze'}\n    metrics = {\n        'total_return': [],\n        'max_drawdown': [],\n        'sharpe_ratio': [],\n        'calmar_ratio': []\n    }\n    for result in simulation_results:\n        for key in metrics.keys():\n            if key in result and isinstance(result[key], (int, float)):\n                metrics[key].append(result[key])\n    original_metrics = original_result.get('metrics', {})\n\n    confidence_analysis: Dict[str, Any] = {}\n    for metric_name, values in metrics.items():\n        if not values:\n            continue\n        values_array = np.array(values)\n        \n        # Normalize original metrics to match Monte Carlo scenario format (decimal, not percentage)\n        if metric_name == 'total_return':\n            # Calculate from net_profit_percentage (which is in percentage form)\n            net_profit_pct = original_metrics.get('net_profit_percentage', 0)\n            original_value = net_profit_pct  # Convert to decimal\n        elif metric_name == 'max_drawdown':\n            # Original backtest returns max_drawdown already multiplied by 100\n            max_dd = original_metrics.get('max_drawdown', 0)\n            original_value = max_dd  # Convert to decimal\n        else:\n            original_value = original_metrics.get(metric_name, 0)\n        percentiles = {\n            '5th': np.percentile(values_array, 5),\n            '25th': np.percentile(values_array, 25),\n            '50th': np.percentile(values_array, 50),\n            '75th': np.percentile(values_array, 75),\n            '95th': np.percentile(values_array, 95)\n        }\n        ci_95 = {\n            'lower': np.percentile(values_array, CONFIDENCE_PERCENTILES['extreme_low']),\n            'upper': np.percentile(values_array, CONFIDENCE_PERCENTILES['extreme_high'])\n        }\n        ci_90 = {\n            'lower': np.percentile(values_array, CONFIDENCE_PERCENTILES['low']),\n            'upper': np.percentile(values_array, CONFIDENCE_PERCENTILES['high'])\n        }\n        if metric_name in ['total_return', 'sharpe_ratio', 'calmar_ratio']:\n            p_value = np.sum(values_array >= original_value) / len(values_array)\n        else:\n            p_value = np.sum(values_array <= original_value) / len(values_array)\n        mean_sim = np.mean(values_array)\n        std_sim = np.std(values_array)\n        confidence_analysis[metric_name] = {\n            'original': original_value,\n            'simulations': {\n                'mean': mean_sim,\n                'std': std_sim,\n                'min': np.min(values_array),\n                'max': np.max(values_array),\n                'count': len(values_array)\n            },\n            'percentiles': percentiles,\n            'confidence_intervals': {\n                '90%': ci_90,\n                '95%': ci_95\n            },\n            'p_value': p_value,\n            'is_significant_5pct': p_value < ALPHA_5_PERCENT,\n            'is_significant_1pct': p_value < ALPHA_1_PERCENT\n        }\n    summary = {\n        'num_simulations': len(simulation_results),\n        'significant_metrics_5pct': sum(1 for m in confidence_analysis.values() if m.get('is_significant_5pct', False)),\n        'significant_metrics_1pct': sum(1 for m in confidence_analysis.values() if m.get('is_significant_1pct', False)),\n        'total_metrics': len(confidence_analysis)\n    }\n\n    return {\n        'summary': summary,\n        'metrics': confidence_analysis,\n        'interpretation': _generate_interpretation(confidence_analysis)\n    }\n\n\ndef _generate_interpretation(confidence_analysis: dict) -> dict:\n    interpretations = []\n    for metric_name, analysis in confidence_analysis.items():\n        original = analysis['original']\n        p_value = analysis['p_value']\n        percentiles = analysis['percentiles']\n        if analysis['is_significant_1pct']:\n            significance = \"highly significant (p < 0.01)\"\n        elif analysis['is_significant_5pct']:\n            significance = \"significant (p < 0.05)\"\n        else:\n            significance = \"not significant (p >= 0.05)\"\n        if original >= percentiles['95th']:\n            rank = \"top 5%\"\n        elif original >= percentiles['75th']:\n            rank = \"top 25%\"\n        elif original >= percentiles['50th']:\n            rank = \"above median\"\n        elif original >= percentiles['25th']:\n            rank = \"below median\"\n        else:\n            rank = \"bottom 25%\"\n        interpretations.append({\n            'metric': metric_name,\n            'significance': significance,\n            'rank': rank,\n            'p_value': p_value,\n            'message': f\"{metric_name}: {significance}, original result in {rank} of simulations\"\n        })\n    return {\n        'detailed': interpretations,\n        'overall': f\"Strategy shows {significance} performance with {len([i for i in interpretations if 'significant' in i['significance']])} out of {len(interpretations)} metrics being statistically significant.\"\n    }\n\n\ndef _get_timestamped_filename(base_name: str) -> str:\n    \"\"\"Generate a timestamped filename.\"\"\"\n    timestamp = datetime.now().strftime(\"%Y%m%d_%H%M%S\")\n    name, ext = os.path.splitext(base_name)\n    return f\"{name}_{timestamp}{ext}\"\n\n\ndef _create_charts_folder():\n    \"\"\"Create a charts folder for all outputs.\"\"\"\n    folder_path = os.path.abspath(\"charts\")\n    os.makedirs(folder_path, exist_ok=True)\n    return folder_path\n\n\ndef print_monte_carlo_trades_summary(results: dict) -> None:\n    \"\"\"Print a summary table for Monte Carlo trades scenarios.\n\n    Args:\n        results: The full results dict returned by monte_carlo_trades().\n    \"\"\"\n    if 'confidence_analysis' not in results:\n        print(\"No confidence analysis available\")\n        return\n    ca = results['confidence_analysis']\n    summary = ca['summary']\n    metrics = ca['metrics']\n    print(f\"\\n🔀 MONTE CARLO TRADES (trade-order shuffle test)\")\n    print(f\"   Simulations: {summary['num_simulations']}\")\n    headers = [\"Metric\", \"Original\", \"Worst 5%\", \"Median\", \"Best 5%\"]\n    rows = []\n    for metric_name, a in metrics.items():\n        if 'original' not in a:\n            continue\n        orig = a['original']\n        sim = a.get('simulations', {})\n        percentiles = a.get('percentiles', {})\n        invariant = (sim.get('std', 0) is not None and sim.get('std', 0) < 1e-12)\n        if invariant:\n            continue\n        p5 = percentiles.get('5th', 0)\n        p50 = percentiles.get('50th', 0)\n        p95 = percentiles.get('95th', 0)\n        display_name = metric_name.replace('_', ' ').title()\n        if display_name == \"Total Return\":\n            display_name = \"Return (%)\"\n            orig_display = f\"{orig*100:.1f}%\"; p5_disp = f\"{p5*100:.1f}%\"; p50_disp = f\"{p50*100:.1f}%\"; p95_disp = f\"{p95*100:.1f}%\"\n        elif display_name == \"Max Drawdown\":\n            display_name = \"Max Drawdown (%)\"\n            orig_display = f\"{(orig):.1f}%\"\n            p5_disp = f\"{(p5):.1f}%\"; p50_disp = f\"{(p50):.1f}%\"; p95_disp = f\"{(p95):.1f}%\"\n        elif display_name in [\"Sharpe Ratio\", \"Calmar Ratio\"]:\n            orig_display = f\"{orig:.2f}\"; p5_disp = f\"{p5:.2f}\"; p50_disp = f\"{p50:.2f}\"; p95_disp = f\"{p95:.2f}\"\n        else:\n            orig_display = f\"{orig:.2f}\" if isinstance(orig, (int, float)) else str(orig)\n            p5_disp = f\"{p5:.2f}\"; p50_disp = f\"{p50:.2f}\"; p95_disp = f\"{p95:.2f}\"\n        rows.append([display_name, orig_display, p5_disp, p50_disp, p95_disp])\n    if rows:\n        col_widths = [max(len(str(x)) for x in [h] + [r[i] for r in rows]) for i, h in enumerate(headers)]\n        line = \" | \".join(h.ljust(col_widths[i]) for i, h in enumerate(headers))\n        sep = \"-+-\".join(\"-\" * w for w in col_widths)\n        print(\"   \" + line); print(\"   \" + sep)\n        for r in rows:\n            print(\"   \" + \" | \".join(str(r[i]).ljust(col_widths[i]) for i in range(len(headers))))\n        print(f\"\\n   📊 Interpretation:\")\n        print(f\"   • This tests whether trade timing affects performance\")\n    else:\n        print(\"No metrics rows to display\")\n\n\ndef plot_monte_carlo_trades_chart(results: dict, charts_folder: str = None) -> None:\n    \"\"\"Plot equity curves from Monte Carlo trades results.\n\n    Args:\n        results: The full results dict returned by monte_carlo_trades().\n        charts_folder: Optional folder to save charts in.\n    \"\"\"\n    import matplotlib\n    matplotlib.use('Agg')  # Use non-interactive backend\n    from matplotlib import pyplot as plt\n    \n    if 'scenarios' not in results or not results['scenarios']:\n        print(\"No trade shuffle scenarios to plot\")\n        return\n    plt.figure(figsize=(12, 8))\n    for i, scenario in enumerate(results['scenarios'][:50]):  # Limit to 50 for visibility\n        if 'equity_curve' in scenario and scenario['equity_curve']:\n            values = [item['value'] for item in scenario['equity_curve'][0]['data']]\n            plt.plot(values, color=\"cornflowerblue\", alpha=0.5, linewidth=0.8)\n    if 'original' in results and 'equity_curve' in results['original']:\n        original_values = [item['value'] for item in results['original']['equity_curve'][0]['data']]\n        plt.plot(original_values, color=\"green\", linewidth=2, label=\"Original Strategy\")\n    plt.title(\"Monte Carlo Trades - Equity Curve (Shuffled Order)\")\n    plt.xlabel(\"Time\"); plt.ylabel(\"Portfolio Value\"); plt.legend(); plt.grid(True, alpha=0.3); plt.tight_layout()\n    if charts_folder is None:\n        charts_folder = _create_charts_folder()\n    filename = _get_timestamped_filename(\"monte_carlo_trades_chart.png\")\n    chart_path = os.path.join(charts_folder, filename)\n    plt.savefig(chart_path, dpi=150, bbox_inches='tight'); plt.close()\n    print(f\"   💾 Trades chart saved: {chart_path}\")\n\n\n"
  },
  {
    "path": "jesse/routes/__init__.py",
    "content": "import sys\nfrom typing import Dict, List, Any\nfrom jesse.config import config\nimport jesse.helpers as jh\nfrom jesse import exceptions\nfrom jesse.models.Route import Route\nfrom jesse import exceptions\n\nclass RouterClass:\n    def __init__(self) -> None:\n        self.routes: List[Route] = []\n        self.data_routes: List[Route] = []\n\n    def _reset(self) -> None:\n        self.routes = []\n        self.data_routes = []\n\n    def initiate(self, routes: list, data_routes: list = None):\n        if data_routes is None:\n            data_routes = []\n\n        self.set_routes(routes)\n        self.set_data_routes(data_routes)\n\n        considering_candles = set()\n\n        # validate routes for duplicates:\n        # each exchange-symbol pair can be traded only once.\n        for r in router.routes:\n            considering_candles.add((r.exchange, r.symbol))\n\n            exchange = r.exchange\n            symbol = r.symbol\n            count = sum(\n                ro.exchange == exchange and ro.symbol == symbol\n                for ro in router.routes\n            )\n\n            if count != 1:\n                raise exceptions.InvalidRoutes(\n                    'each exchange-symbol pair can be traded only once. \\nMore info: https://docs.jesse.trade/docs/routes.html#trading-multiple-routes')\n\n        # check to make sure if trading more than one route, they all have the same quote\n        # currency because otherwise we cannot calculate the correct performance metrics\n        first_routes_quote = jh.quote_asset(router.routes[0].symbol)\n        for r in router.routes:\n            if jh.quote_asset(r.symbol) != first_routes_quote:\n                raise exceptions.InvalidRoutes('All trading routes must have the same quote asset.')\n\n        trading_exchanges = set()\n        trading_timeframes = set()\n        trading_symbols = set()\n\n        for r in router.routes:\n            trading_exchanges.add(r.exchange)\n            trading_timeframes.add(r.timeframe)\n            trading_symbols.add(r.symbol)\n\n        considering_exchanges = trading_exchanges.copy()\n        considering_timeframes = trading_timeframes.copy()\n        considering_symbols = trading_symbols.copy()\n\n        for e in router.data_routes:\n            considering_candles.add((e.exchange, e.symbol))\n            considering_exchanges.add(e.exchange)\n            considering_symbols.add(e.symbol)\n            considering_timeframes.add(e.timeframe)\n\n        # 1m must be present at all times\n        considering_timeframes.add('1m')\n\n        config['app']['considering_candles'] = tuple(considering_candles)\n        config['app']['considering_exchanges'] = tuple(considering_exchanges)\n\n        config['app']['considering_symbols'] = tuple(considering_symbols)\n        config['app']['considering_timeframes'] = tuple(considering_timeframes)\n        config['app']['trading_exchanges'] = tuple(trading_exchanges)\n        config['app']['trading_symbols'] = tuple(trading_symbols)\n        config['app']['trading_timeframes'] = tuple(trading_timeframes)\n\n    def set_routes(self, routes: List[Any]) -> None:\n        self._reset()\n\n        self.routes = []\n\n        for r in routes:\n            # validate strategy that the strategy file exists (if sent as a string)\n            if isinstance(r[\"strategy\"], str):\n                strategy_name = r[\"strategy\"]\n                if jh.is_unit_testing():\n                    path = sys.path[0]\n                    # live plugin\n                    if path.endswith('jesse-live'):\n                        strategies_dir = f'{sys.path[0]}/tests/strategies'\n                    # main framework\n                    else:\n                        strategies_dir = f'{sys.path[0]}/jesse/strategies'\n                    exists = jh.file_exists(f\"{strategies_dir}/{strategy_name}/__init__.py\")\n                else:\n                    exists = jh.file_exists(f'strategies/{strategy_name}/__init__.py')\n            else:\n                exists = True\n\n            if not exists and isinstance(r[\"strategy\"], str):\n                raise exceptions.InvalidRoutes(\n                    f'A strategy with the name of \"{r[\"strategy\"]}\" could not be found.')\n\n            self.routes.append(Route(r[\"exchange\"], r[\"symbol\"], r[\"timeframe\"], r[\"strategy\"], None))\n\n    def set_data_routes(self, routes: List[Dict[str, str]]) -> None:\n        self.data_routes: List[Route] = []\n        for r in routes:\n            self.data_routes.append(Route(r['exchange'], r['symbol'], r['timeframe'], None, None))\n\n    @property\n    def formatted_routes(self) -> list:\n        \"\"\"\n        Example:\n        [{'exchange': 'Binance', 'strategy': 'A1', 'symbol': 'BTC-USDT', 'timeframe': '1m'}]\n        \"\"\"\n        return [\n            {\n                'exchange': r.exchange,\n                'symbol': r.symbol,\n                'timeframe': r.timeframe,\n                'strategy': r.strategy_name,\n            }\n            for r in self.routes\n        ]\n\n    @property\n    def formatted_data_routes(self) -> list:\n        \"\"\"\n        Example:\n        [{'exchange': 'Binance', 'symbol': 'BTC-USD', 'timeframe': '3m'}]\n        \"\"\"\n        return [{\n            'exchange': r.exchange,\n            'symbol': r.symbol,\n            'timeframe': r.timeframe\n        } for r in self.data_routes]\n\n    @property\n    def all_formatted_routes(self) -> list:\n        return self.formatted_routes + self.formatted_data_routes\n\n    @property\n    def trading_routes_count(self) -> int:\n        return len(self.routes)\n    \n    @property\n    def data_routes_count(self) -> int:\n        return len(self.data_routes)\n    \n    @property\n    def all_routes_count(self) -> int:\n        return self.trading_routes_count + self.data_routes_count\n    \nrouter: RouterClass = RouterClass()\n"
  },
  {
    "path": "jesse/services/__init__.py",
    "content": ""
  },
  {
    "path": "jesse/services/api.py",
    "content": "import threading\nfrom typing import Union\n\nimport jesse.helpers as jh\nfrom jesse.models.Order import Order\nfrom jesse.services import logger\n\n\nclass API:\n    def __init__(self) -> None:\n        self.drivers = {}\n\n        if not jh.is_live():\n            self.initiate_drivers()\n\n    def initiate_drivers(self) -> None:\n        considering_exchanges = jh.get_config('app.considering_exchanges')\n\n        # A helpful assertion\n        if not len(considering_exchanges):\n            raise Exception('No exchange is available for initiating in the API class')\n\n        for e in considering_exchanges:\n            if jh.is_live():\n                def initiate_ws(exchange_name: str) -> None:\n                    exchange_class = jh.get_config(f'app.live_drivers.{exchange_name}')\n                    self.drivers[exchange_name] = exchange_class()\n\n                threading.Thread(target=initiate_ws, args=[e]).start()\n            else:\n                from jesse.exchanges import Sandbox\n                self.drivers[e] = Sandbox(e)\n\n    def market_order(\n        self,\n        exchange: str,\n        symbol: str,\n        qty: float,\n        current_price: float,\n        side: str,\n        reduce_only: bool\n    ) -> Union[Order, None]:\n        if exchange not in self.drivers:\n            logger.info(f'Exchange \"{exchange}\" driver not initiated yet. Trying again in the next candle')\n            return None\n        return self.drivers[exchange].market_order(symbol, qty, current_price, side, reduce_only)\n\n    def limit_order(\n        self,\n        exchange: str,\n        symbol: str,\n        qty: float,\n        price: float,\n        side: str,\n        reduce_only: bool\n    ) -> Union[Order, None]:\n        if exchange not in self.drivers:\n            logger.info(f'Exchange \"{exchange}\" driver not initiated yet. Trying again in the next candle')\n            return None\n        return self.drivers[exchange].limit_order(symbol, qty, price, side, reduce_only)\n\n    def stop_order(\n        self, exchange: str,\n        symbol: str,\n        qty: float,\n        price: float,\n        side: str,\n        reduce_only: bool\n    ) -> Union[Order, None]:\n        if exchange not in self.drivers:\n            logger.info(f'Exchange \"{exchange}\" driver not initiated yet. Trying again in the next candle')\n            return None\n        return self.drivers[exchange].stop_order(symbol, qty, price, side, reduce_only)\n\n    def cancel_all_orders(self, exchange: str, symbol: str) -> bool:\n        if exchange not in self.drivers:\n            logger.info(f'Exchange \"{exchange}\" driver not initiated yet. Trying again in the next candle')\n            return False\n        return self.drivers[exchange].cancel_all_orders(symbol)\n\n    def cancel_order(self, exchange: str, symbol: str, order_id: str) -> bool:\n        if exchange not in self.drivers:\n            logger.info(f'Exchange \"{exchange}\" driver not initiated yet. Trying again in the next candle')\n            return False\n        return self.drivers[exchange].cancel_order(symbol, order_id)\n\n\napi = API()\n"
  },
  {
    "path": "jesse/services/auth.py",
    "content": "from hashlib import sha256\nfrom fastapi.responses import JSONResponse\nfrom jesse.services.env import ENV_VALUES\n\n\ndef password_to_token(password: str) -> JSONResponse:\n    if password != ENV_VALUES['PASSWORD']:\n        return unauthorized_response()\n\n    auth_token = sha256(password.encode('utf-8')).hexdigest()\n\n    return JSONResponse({\n        'auth_token': auth_token,\n    }, status_code=200)\n\n\ndef is_valid_token(auth_token: str) -> bool:\n    hashed_local_pass = sha256(ENV_VALUES['PASSWORD'].encode('utf-8')).hexdigest()\n    return auth_token == hashed_local_pass\n\n\ndef unauthorized_response() -> JSONResponse:\n    return JSONResponse({\n        'message': \"Invalid password\",\n    }, status_code=401)\n\n\ndef get_access_token():\n    from jesse.services.env import ENV_VALUES\n\n    if 'LICENSE_API_TOKEN' not in ENV_VALUES:\n        return None\n    if not ENV_VALUES['LICENSE_API_TOKEN']:\n        return None\n\n    return ENV_VALUES['LICENSE_API_TOKEN']\n\n\ndef user_validation(password: str) -> JSONResponse:\n    if password != ENV_VALUES['PASSWORD']:\n        return unauthorized_response()\n\n    auth_token = sha256(password.encode('utf-8')).hexdigest()\n\n    return JSONResponse({\n        'auth_token': auth_token,\n    }, status_code=200)"
  },
  {
    "path": "jesse/services/broker.py",
    "content": "from typing import Union\n\nimport jesse.helpers as jh\nfrom jesse.enums import sides\nfrom jesse.exceptions import OrderNotAllowed, InvalidStrategy\nfrom jesse.models.Order import Order\nfrom jesse.models import Position\n\n\nclass Broker:\n    def __init__(self, position: Position, exchange: str, symbol: str, timeframe: str) -> None:\n        self.position = position\n        self.symbol = symbol\n        self.timeframe = timeframe\n        self.exchange = exchange\n        from jesse.services.api import api\n        self.api = api\n\n    @staticmethod\n    def _validate_qty(qty: float) -> None:\n        if qty == 0:\n            raise InvalidStrategy('qty cannot be 0. \\nRead more: https://jesse.trade/help/faq/i-keep-getting-invalidstrategy')\n\n    def sell_at_market(self, qty: float) -> Union[Order, None]:\n        self._validate_qty(qty)\n\n        return self.api.market_order(\n            self.exchange,\n            self.symbol,\n            abs(qty),\n            self.position.current_price,\n            sides.SELL,\n            reduce_only=False\n        )\n\n    def sell_at(self, qty: float, price: float) -> Union[Order, None]:\n        self._validate_qty(qty)\n\n        if price < 0:\n            raise ValueError('price cannot be negative.')\n\n        return self.api.limit_order(\n            self.exchange,\n            self.symbol,\n            abs(qty),\n            price,\n            sides.SELL,\n            reduce_only=False\n        )\n\n    def buy_at_market(self, qty: float) -> Union[Order, None]:\n        self._validate_qty(qty)\n\n        return self.api.market_order(\n            self.exchange,\n            self.symbol,\n            abs(qty),\n            self.position.current_price,\n            sides.BUY,\n            reduce_only=False\n        )\n\n    def buy_at(self, qty: float, price: float) -> Union[Order, None]:\n        self._validate_qty(qty)\n\n        if price < 0:\n            raise ValueError('price cannot be negative.')\n\n        return self.api.limit_order(\n            self.exchange,\n            self.symbol,\n            abs(qty),\n            price,\n            sides.BUY,\n            reduce_only=False\n        )\n\n    def reduce_position_at(self, qty: float, price: float, current_price: float) -> Union[Order, None]:\n        self._validate_qty(qty)\n\n        qty = abs(qty)\n\n        # validation\n        if price < 0:\n            raise ValueError(f'order price cannot be negative. You passed {price}')\n\n        # validation\n        if self.position.is_close:\n            raise OrderNotAllowed(\n                'Cannot submit a reduce_position order when there is no open position'\n            )\n\n        side = jh.opposite_side(jh.type_to_side(self.position.type))\n\n        # MARKET order\n        # if the price difference is bellow 0.01% of the current price, then we submit a market order\n        if jh.is_price_near(price, current_price):\n            return self.api.market_order(\n                self.exchange,\n                self.symbol,\n                qty,\n                price,\n                side,\n                reduce_only=True\n            )\n\n        # LIMIT order\n        elif (side == 'sell' and self.position.type == 'long' and price > current_price) or (\n                side == 'buy' and self.position.type == 'short' and price < current_price):\n            return self.api.limit_order(\n                self.exchange,\n                self.symbol,\n                qty,\n                price,\n                side,\n                reduce_only=True\n            )\n\n        # STOP order\n        elif (side == 'sell' and self.position.type == 'long' and price < current_price) or (\n                side == 'buy' and self.position.type == 'short' and price > current_price):\n            return self.api.stop_order(\n                self.exchange,\n                self.symbol,\n                abs(qty),\n                price,\n                side,\n                reduce_only=True\n            )\n        else:\n            raise OrderNotAllowed(\"This order doesn't seem to be for reducing the position.\")\n\n    def start_profit_at(self, side: str, qty: float, price: float) -> Union[Order, None]:\n        self._validate_qty(qty)\n\n        if price < 0:\n            raise ValueError('price cannot be negative.')\n\n        if side == 'buy' and price < self.position.current_price:\n            raise OrderNotAllowed(\n                f'A buy start_profit({price}) order must have a price higher than current_price({self.position.current_price}).'\n            )\n        if side == 'sell' and price > self.position.current_price:\n            raise OrderNotAllowed(\n                f'A sell start_profit({price}) order must have a price lower than current_price({self.position.current_price}).'\n            )\n\n        return self.api.stop_order(\n            self.exchange,\n            self.symbol,\n            abs(qty),\n            price,\n            side,\n            reduce_only=False\n        )\n\n    def cancel_all_orders(self) -> bool:\n        return self.api.cancel_all_orders(self.exchange, self.symbol)\n\n    def cancel_order(self, order_id: str) -> bool:\n        return self.api.cancel_order(self.exchange, self.symbol, order_id)\n"
  },
  {
    "path": "jesse/services/cache.py",
    "content": "import os\nimport pickle\nfrom time import time\nfrom typing import Any\nfrom functools import lru_cache\n\nimport jesse.helpers as jh\n\n\nclass Cache:\n    def __init__(self, path: str) -> None:\n        self.path = path\n        self.driver = jh.get_config('env.caching.driver', 'pickle')\n\n        if self.driver == 'pickle':\n            # make sure path exists\n            os.makedirs(path, exist_ok=True)\n\n            # if cache_database exists, load the dictionary\n            if os.path.isfile(f\"{self.path}cache_database.pickle\"):\n                with open(f\"{self.path}cache_database.pickle\", 'rb') as f:\n                    try:\n                        self.db = pickle.load(f)\n                    except (EOFError, pickle.UnpicklingError, UnicodeDecodeError):\n                        # File got broken\n                        self.db = {}\n            # if not, create a dict object. We'll create the file when using set_value()\n            else:\n                self.db = {}\n\n    def set_value(self, key: str, data: Any, expire_seconds: int = 60 * 60) -> None:\n        if self.driver is None:\n            return\n\n        # add record into the database\n        expire_at = None if expire_seconds is None else time() + expire_seconds\n        data_path = f\"{self.path}{key}.pickle\"\n        self.db[key] = {\n            'expire_seconds': expire_seconds,\n            'expire_at': expire_at,\n            'path': data_path,\n        }\n        self._update_db()\n\n        # store file\n        with open(data_path, 'wb') as f:\n            pickle.dump(data, f, protocol=pickle.HIGHEST_PROTOCOL)\n\n    def get_value(self, key: str) -> Any:\n        if self.driver is None:\n            raise ValueError('Caching driver is not set.')\n\n        try:\n            item = self.db[key]\n        except KeyError:\n            return False\n\n        # if expired, remove file, and database record\n        if item['expire_at'] is not None and time() > item['expire_at']:\n            try:\n                os.remove(item['path'])\n            except FileNotFoundError:\n                pass\n            del self.db[key]\n            self._update_db()\n            return False\n\n        # If the cache file doesn't exist, remove the database record\n        if not os.path.exists(item['path']):\n            del self.db[key]\n            self._update_db()\n            return False\n\n        # renew cache expiration time\n        if item['expire_at'] is not None:\n            item['expire_at'] = time() + item['expire_seconds']\n            self._update_db()\n\n        try:\n            with open(item['path'], 'rb') as f:\n                cache_value = pickle.load(f)\n        except (EOFError, pickle.UnpicklingError, FileNotFoundError):\n            # If there's any error reading the file, remove the record and return False\n            try:\n                os.remove(item['path'])\n            except FileNotFoundError:\n                pass\n            del self.db[key]\n            self._update_db()\n            return False\n\n        return cache_value\n\n    def _update_db(self) -> None:\n        # store/update database\n        with open(f\"{self.path}cache_database.pickle\", 'wb') as f:\n            pickle.dump(self.db, f, protocol=pickle.HIGHEST_PROTOCOL)\n\n    def flush(self) -> None:\n        if self.driver is None:\n            return\n\n        # Create a list of keys to remove to avoid modifying dict during iteration\n        keys_to_remove = list(self.db.keys())\n        \n        for key in keys_to_remove:\n            item = self.db[key]\n            try:\n                os.remove(item['path'])\n            except FileNotFoundError:\n                pass\n            del self.db[key]\n        \n        # Update the database file after clearing\n        self._update_db()\n\n\ncache = Cache(\"storage/temp/\")\n\n\n# Using functools.lru_cache\ndef cached(method):\n    def decorated(self, *args, **kwargs):\n        cached_method = self._cached_methods.get(method)\n        if cached_method is None:\n            cached_method = lru_cache()(method)\n            self._cached_methods[method] = cached_method\n        return cached_method(self, *args, **kwargs)\n\n    return decorated\n"
  },
  {
    "path": "jesse/services/candle_service.py",
    "content": "from typing import Tuple\nimport numpy as np\nimport arrow\nfrom jesse.exceptions import CandleNotFoundInDatabase, InvalidDateRange\nimport jesse.helpers as jh\nfrom jesse.services import logger\nfrom jesse.routes import router\nfrom timeloop import Timeloop\nfrom datetime import timedelta\nfrom jesse.store import store\nfrom jesse.config import config\nfrom jesse.repositories import candle_repository\nfrom jesse.libs.dynamic_numpy_array import DynamicNumpyArray\n\n\ndef generate_candle_from_one_minutes(\n        timeframe: str,\n        candles: np.ndarray,\n        accept_forming_candles: bool = False\n) -> np.ndarray:\n    if len(candles) == 0:\n        raise ValueError('No candles were passed')\n\n    if not accept_forming_candles and len(candles) != jh.timeframe_to_one_minutes(timeframe):\n        raise ValueError(\n            f'Sent only {len(candles)} candles but {jh.timeframe_to_one_minutes(timeframe)} is required to create a \"{timeframe}\" candle.'\n        )\n\n    return np.array([\n        candles[0][0],\n        candles[0][1],\n        candles[-1][2],\n        candles[:, 3].max(),\n        candles[:, 4].min(),\n        candles[:, 5].sum(),\n    ])\n\n\ndef candle_dict_to_np_array(candle: dict) -> np.ndarray:\n    return np.array([\n        candle['timestamp'],\n        candle['open'],\n        candle['close'],\n        candle['high'],\n        candle['low'],\n        candle['volume']\n    ])\n\n\ndef print_candle(candle: np.ndarray, is_partial: bool, symbol: str) -> None:\n    \"\"\"\n    Ever since the new GUI dashboard, this function should log instead of actually printing\n\n    :param candle: np.ndarray\n    :param is_partial: bool\n    :param symbol: str\n    \"\"\"\n    if jh.should_execute_silently():\n        return\n\n    candle_form = '  ==' if is_partial else '===='\n    candle_info = f' {symbol} | {str(arrow.get(candle[0] / 1000))[:-9]} | {candle[1]} | {candle[2]} | {candle[3]} | {candle[4]} | {round(candle[5], 2)}'\n    msg = candle_form + candle_info\n\n    # store it in the log file\n    logger.info(msg)\n\n\ndef is_bullish(candle: np.ndarray) -> bool:\n    return candle[2] >= candle[1]\n\n\ndef is_bearish(candle: np.ndarray) -> bool:\n    return candle[2] < candle[1]\n\n\ndef candle_includes_price(candle: np.ndarray, price: float) -> bool:\n    return (price >= candle[4]) and (price <= candle[3])\n\n\ndef split_candle(candle: np.ndarray, price: float) -> tuple:\n    \"\"\"\n    splits a single candle into two candles: earlier + later\n\n    :param candle: np.ndarray\n    :param price: float\n\n    :return: tuple\n    \"\"\"\n    timestamp = candle[0]\n    o = candle[1]\n    c = candle[2]\n    h = candle[3]\n    l = candle[4]\n    v = candle[5]\n\n    if is_bullish(candle) and l < price < o:\n        return np.array([\n            timestamp, o, price, o, price, v\n        ]), np.array([\n            timestamp, price, c, h, l, v\n        ])\n    elif price == o:\n        return candle, candle\n    elif is_bearish(candle) and o < price < h:\n        return np.array([\n            timestamp, o, price, price, o, v\n        ]), np.array([\n            timestamp, price, c, h, l, v\n        ])\n    elif is_bearish(candle) and l < price < c:\n        return np.array([\n            timestamp, o, price, h, price, v\n        ]), np.array([\n            timestamp, price, c, c, l, v\n        ])\n    elif is_bullish(candle) and c < price < h:\n        return np.array([\n            timestamp, o, price, price, l, v\n        ]), np.array([\n            timestamp, price, c, h, c, v\n        ]),\n    elif is_bearish(candle) and price == c:\n        return np.array([\n            timestamp, o, c, h, c, v\n        ]), np.array([\n            timestamp, price, price, price, l, v\n        ])\n    elif is_bullish(candle) and price == c:\n        return np.array([\n            timestamp, o, c, c, l, v\n        ]), np.array([\n            timestamp, price, price, h, price, v\n        ])\n    elif is_bearish(candle) and price == h:\n        return np.array([\n            timestamp, o, h, h, o, v\n        ]), np.array([\n            timestamp, h, c, h, l, v\n        ])\n    elif is_bullish(candle) and price == l:\n        return np.array([\n            timestamp, o, l, o, l, v\n        ]), np.array([\n            timestamp, l, c, h, l, v\n        ])\n    elif is_bearish(candle) and price == l:\n        return np.array([\n            timestamp, o, l, h, l, v\n        ]), np.array([\n            timestamp, l, c, c, l, v\n        ])\n    elif is_bullish(candle) and price == h:\n        return np.array([\n            timestamp, o, h, h, l, v\n        ]), np.array([\n            timestamp, h, c, h, c, v\n        ])\n    elif is_bearish(candle) and c < price < o:\n        return np.array([\n            timestamp, o, price, h, price, v\n        ]), np.array([\n            timestamp, price, c, price, l, v\n        ])\n    elif is_bullish(candle) and o < price < c:\n        return np.array([\n            timestamp, o, price, price, l, v\n        ]), np.array([\n            timestamp, price, c, h, price, v\n        ])\n\n\ndef inject_warmup_candles_to_store(candles: np.ndarray, exchange: str, symbol: str) -> None:\n    if candles is None or candles.size == 0:\n        raise ValueError(f'Could not inject warmup candles because the passed candles are empty. Have you imported enough warmup candles for {exchange}/{symbol}?')\n\n    from jesse.config import config\n    from jesse.store import store\n\n    # batch add 1m candles:\n    batch_add_candle(candles, exchange, symbol, '1m', with_generation=False)\n\n    # loop to generate, and add candles (without execution)\n    for i in range(len(candles)):\n        for timeframe in config['app']['considering_timeframes']:\n            # skip 1m. already added\n            if timeframe == '1m':\n                continue\n\n            num = jh.timeframe_to_one_minutes(timeframe)\n\n            if (i + 1) % num == 0:\n                generated_candle = generate_candle_from_one_minutes(\n                    timeframe,\n                    candles[(i - (num - 1)):(i + 1)],\n                    True\n                )\n\n                add_candle(\n                    generated_candle,\n                    exchange,\n                    symbol,\n                    timeframe,\n                    with_execution=False,\n                    with_generation=False\n                )\n\n\ndef get_candles_from_db(\n        exchange: str,\n        symbol: str,\n        timeframe: str,\n        start_date_timestamp: int,\n        finish_date_timestamp: int,\n        warmup_candles_num: int = 0,\n        caching: bool = False,\n        is_for_jesse: bool = False\n) -> Tuple[np.ndarray, np.ndarray]:\n    symbol = symbol.upper()\n\n    # convert start_date and finish_date to timestamps\n    trading_start_date_timestamp = jh.timestamp_to_arrow(start_date_timestamp).floor(\n        'day').int_timestamp * 1000\n    trading_finish_date_timestamp = (jh.timestamp_to_arrow(finish_date_timestamp).floor(\n        'day').int_timestamp * 1000) - 60_000\n\n    # if warmup_candles is set, calculate the warmup start and finish timestamps\n    if warmup_candles_num > 0:\n        warmup_finish_timestamp = trading_start_date_timestamp\n        warmup_start_timestamp = warmup_finish_timestamp - (\n                warmup_candles_num * jh.timeframe_to_one_minutes(timeframe) * 60_000)\n        warmup_finish_timestamp -= 60_000\n        warmup_candles = _get_candles_from_db(exchange, symbol, warmup_start_timestamp, warmup_finish_timestamp,\n                                              caching=caching)\n    else:\n        warmup_candles = None\n\n    # fetch trading candles from database\n    trading_candles = _get_candles_from_db(exchange, symbol, trading_start_date_timestamp,\n                                           trading_finish_date_timestamp, caching=caching)\n\n    # if timeframe is 1m or is_for_jesse is True, return the candles as is because they\n    # are already 1m candles which is the accepted format for practicing with Jesse.\n    if timeframe == '1m' or is_for_jesse:\n        return warmup_candles, trading_candles\n\n    # if the timeframe is not 1m, generate the candles for the requested timeframe\n    if warmup_candles_num > 0:\n        warmup_candles = _get_generated_candles(timeframe, warmup_candles)\n    else:\n        warmup_candles = None\n    trading_candles = _get_generated_candles(timeframe, trading_candles)\n\n    return warmup_candles, trading_candles\n\n\ndef _get_candles_from_db(\n        exchange, symbol, start_date_timestamp, finish_date_timestamp, caching: bool = False\n) -> np.ndarray:\n    from jesse.models.Candle import Candle\n    from jesse.services.cache import cache\n\n    if caching:\n        key = jh.key(exchange, symbol)\n        cache_key = f\"{start_date_timestamp}-{finish_date_timestamp}-{key}\"\n        cached_value = cache.get_value(cache_key)\n        if cached_value:\n            return np.array(cached_value)\n\n    # validate the dates\n    if start_date_timestamp == finish_date_timestamp:\n        raise InvalidDateRange('start_date and finish_date cannot be the same.')\n    if start_date_timestamp > finish_date_timestamp:\n        raise InvalidDateRange(f'start_date ({jh.timestamp_to_date(start_date_timestamp)}) is greater than finish_date ({jh.timestamp_to_date(finish_date_timestamp)}).')\n    \n    # validate finish_date is not in the future\n    current_timestamp = arrow.utcnow().int_timestamp * 1000\n    if finish_date_timestamp > current_timestamp:\n        yesterday_date = jh.timestamp_to_date(current_timestamp - 86400000)\n        raise InvalidDateRange(f'The finish date \"{jh.timestamp_to_time(finish_date_timestamp)[:19]}\" cannot be in the future. Please select a date up to \"{yesterday_date}\".')\n\n    # validate start_date is not in the future\n    if start_date_timestamp > current_timestamp:\n        raise InvalidDateRange(f'Can\\'t backtest the future! start_date ({jh.timestamp_to_date(start_date_timestamp)}) is greater than the current time ({jh.timestamp_to_date(current_timestamp)}).')\n\n    # Always materialize the database results immediately\n    candles_tuple = list(Candle.select(\n        Candle.timestamp, Candle.open, Candle.close, Candle.high, Candle.low,\n        Candle.volume\n    ).where(\n        Candle.exchange == exchange,\n        Candle.symbol == symbol,\n        Candle.timeframe == '1m' or Candle.timeframe.is_null(),\n        Candle.timestamp.between(start_date_timestamp, finish_date_timestamp)\n    ).order_by(Candle.timestamp.asc()).tuples())\n\n    # Check if we got any candles\n    if not candles_tuple:\n        raise CandleNotFoundInDatabase(f\"No candles found for {symbol} on {exchange} between {jh.timestamp_to_date(start_date_timestamp)} and {jh.timestamp_to_date(finish_date_timestamp)}.\")\n    \n    # Convert to numpy array for easier timestamp extraction\n    candles_array = np.array(candles_tuple)\n    \n    # Verify the retrieved data covers the requested range\n    if len(candles_array) > 0:\n        earliest_available = candles_array[0][0]  # First timestamp\n        latest_available = candles_array[-1][0]   # Last timestamp\n        \n        # Check if earliest available timestamp is after the requested start date\n        if earliest_available > start_date_timestamp + 60_000:  # Allow 1 minute tolerance\n            raise CandleNotFoundInDatabase(\n                f\"Missing candles for {symbol} on {exchange}. \"\n                f\"Requested data from {jh.timestamp_to_date(start_date_timestamp)}, \"\n                f\"but earliest available candle is from {jh.timestamp_to_date(earliest_available)}.\"\n            )\n            \n        # For finish date validation, we need to check if we have candles up to exactly one minute\n        # before the start of the requested finish date\n        # Check if the latest available candle timestamp is before the required last candle\n        if latest_available < finish_date_timestamp:\n            # Missing candles at the end of the requested range\n            raise CandleNotFoundInDatabase(\n                f\"Missing recent candles for \\\"{symbol}\\\" on \\\"{exchange}\\\". \"\n                f\"Requested data until \\\"{jh.timestamp_to_time(finish_date_timestamp)[:19]}\\\", \"\n                f\"but latest available candle is up to \\\"{jh.timestamp_to_time(latest_available)[:19]}\\\".\"\n            )\n\n    if caching:\n        # cache for 1 week it for near future calls\n        cache.set_value(cache_key, candles_tuple, expire_seconds=60 * 60 * 24 * 7)\n\n    return candles_array\n\n\ndef _get_generated_candles(timeframe, trading_candles) -> np.ndarray:\n    # generate candles for the requested timeframe\n    generated_candles = []\n    for i in range(len(trading_candles)):\n        num = jh.timeframe_to_one_minutes(timeframe)\n\n        if (i + 1) % num == 0:\n            generated_candles.append(\n                generate_candle_from_one_minutes(\n                    timeframe,\n                    trading_candles[(i - (num - 1)):(i + 1)],\n                    True\n                )\n            )\n\n    return np.array(generated_candles)\n\n\ndef generate_new_candles_loop() -> None:\n    \"\"\"\n    to prevent the issue of missing candles when no volume is traded on the live exchange\n    \"\"\"\n    t = Timeloop()\n\n    @t.job(interval=timedelta(seconds=1))\n    def time_loop_per_second():\n        # make sure all candles are already initiated\n        if not store.candles.are_all_initiated:\n            return\n\n        # only at first second on each minute\n        if jh.now() % 60_000 != 1000:\n            return\n\n        for c in router.all_formatted_routes:\n            exchange, symbol, timeframe = c['exchange'], c['symbol'], c['timeframe']\n            current_candle = get_current_candle(exchange, symbol, timeframe)\n\n            # fix for a bug\n            if current_candle[0] <= 60_000:\n                continue\n\n            # if a missing candle is found, generate an empty candle from the\n            # last one this is useful when the exchange doesn't stream an empty\n            # candle when no volume is traded at the period of the candle\n            if jh.next_candle_timestamp(current_candle, timeframe) < jh.now():\n                new_candle = _generate_empty_candle_from_previous_candle(current_candle, timeframe=timeframe)\n                add_candle(new_candle, exchange, symbol, timeframe)\n\n    t.start()\n\n\ndef _generate_empty_candle_from_previous_candle(\n            previous_candle: np.ndarray,\n            timeframe: str = '1m'\n    ) -> np.ndarray:\n    \"\"\"\n    generate an empty candle from the previous candle\n    \"\"\"\n    new_candle = previous_candle.copy()\n    candles_count = jh.timeframe_to_one_minutes(timeframe) * 60_000\n    new_candle[0] = previous_candle[0] + candles_count\n    # new candle's open, close, high, and low all equal to previous candle's close\n    new_candle[1] = previous_candle[2]\n    new_candle[2] = previous_candle[2]\n    new_candle[3] = previous_candle[2]\n    new_candle[4] = previous_candle[2]\n    # set volume to 0\n    new_candle[5] = 0\n    return new_candle\n\n\ndef add_candle(\n        candle: np.ndarray,\n        exchange: str,\n        symbol: str,\n        timeframe: str,\n        with_execution: bool = True,\n        with_generation: bool = True,\n        with_skip: bool = True\n) -> None:\n    # overwrite with_generation based on the config value for live sessions\n    if jh.is_live() and not jh.get_config('env.data.generate_candles_from_1m'):\n        with_generation = False\n\n    if candle[0] == 0:\n        if jh.is_debugging():\n            logger.error(\n                f\"DEBUGGING-VALUE: please report to Saleh: candle[0] is zero. \\nFull candle: {candle}\\n\"\n            )\n        return\n\n    arr: DynamicNumpyArray = store.candles.get_storage(exchange, symbol, timeframe)\n\n    if jh.is_live():\n        # ignore if candle is still being initially imported\n        if with_skip and f'{exchange}-{symbol}' not in store.candles.initiated_pairs:\n            return\n\n        # if it's not an old candle, update the related position's current_price\n        if jh.next_candle_timestamp(candle, timeframe) > jh.now():\n            _update_position_current_price(exchange, symbol, candle[2])\n\n        # ignore new candle at the time of execution because it messes\n        # the count of candles without actually having an impact\n        if candle[0] >= jh.now():\n            return\n\n        _store_or_update_candle_into_db(exchange, symbol, timeframe, candle)\n\n    # initial\n    if len(arr) == 0:\n        arr.append(candle)\n\n    # if it's new, add\n    elif candle[0] > arr[-1][0]:\n        arr.append(candle)\n\n        # generate other timeframes\n        if with_generation and timeframe == '1m':\n            _generate_bigger_timeframes(candle, exchange, symbol, with_execution)\n\n    # if it's the last candle again, update\n    elif candle[0] == arr[-1][0]:\n        arr[-1] = candle\n\n        # regenerate other timeframes\n        if with_generation and timeframe == '1m':\n            _generate_bigger_timeframes(candle, exchange, symbol, with_execution)\n\n    # allow updating of the previous candle.\n    elif candle[0] < arr[-1][0]:\n        # loop through the last 20 items in arr to find it. If so, update it.\n        for i in range(max(20, len(arr) - 1)):\n            if arr[-i][0] == candle[0]:\n                arr[-i] = candle\n                break\n    else:\n        logger.info(\n            f\"Could not find the candle with timestamp {jh.timestamp_to_time(candle[0])} in the storage. Last candle's timestamp: {jh.timestamp_to_time(arr[-1])}. timeframe: {timeframe}, exchange: {exchange}, symbol: {symbol}\"\n        )\n\n\ndef _store_or_update_candle_into_db(exchange: str, symbol: str, timeframe: str, candle: np.ndarray) -> None:\n    # if it's not an initial candle, add it to the storage, if already exists, update it\n    if f'{exchange}-{symbol}' in store.candles.initiated_pairs:\n        candle_repository.store_candle_into_db(exchange, symbol, timeframe, candle, on_conflict='replace')\n\n\ndef _update_position_current_price(exchange: str, symbol: str, price: float) -> None:\n    # get position object\n    p = store.positions.get_position(exchange, symbol)\n\n    # for data_route candles, p == None, hence no further action is required\n    if p is None:\n        return\n\n    if jh.is_live():\n        price_precision = store.exchanges.get_exchange(exchange).vars['precisions'][symbol]['price_precision']\n\n        # update position.current_price\n        p.current_price = jh.round_price_for_live_mode(price, price_precision)\n    else:\n        p.current_price = price\n\n\ndef add_candle_from_trade(trade, exchange: str, symbol: str) -> np.ndarray | None:\n    \"\"\"\n    In few exchanges, there's no candle stream over the WS, for\n    those we have to use cases the trades stream\n    \"\"\"\n    if not jh.is_live():\n        raise Exception('add_candle_from_trade() is for live modes only')\n\n    # ignore if candle is still being initially imported\n    if f'{exchange}-{symbol}' not in store.candles.initiated_pairs:\n        return None\n\n    # update position's current price\n    _update_position_current_price(exchange, symbol, trade['price'])\n\n    def do(t) -> np.ndarray:\n        # in some cases we might be missing the current forming candle like it is on FTX, hence\n        # if that is the case, generate the current forming candle (it won't be super accurate)\n        current_candle = get_current_candle(exchange, symbol, t)\n        if jh.next_candle_timestamp(current_candle, t) < jh.now():\n            new_candle = _generate_empty_candle_from_previous_candle(current_candle, t)\n            add_candle(new_candle, exchange, symbol, t)\n\n        current_candle = get_current_candle(exchange, symbol, t)\n\n        new_candle = current_candle.copy()\n        # close\n        new_candle[2] = trade['price']\n        # high\n        new_candle[3] = max(new_candle[3], trade['price'])\n        # low\n        new_candle[4] = min(new_candle[4], trade['price'])\n        # volume\n        new_candle[5] += trade['volume']\n\n        add_candle(new_candle, exchange, symbol, t)\n        return new_candle\n\n    # to support both candle generation and ...\n    if jh.get_config('env.data.generate_candles_from_1m'):\n        return do('1m')\n    else:\n        for r in router.all_formatted_routes:\n            if r['exchange'] != exchange or r['symbol'] != symbol:\n                return None\n            return do(r['timeframe'])\n\n\ndef _generate_bigger_timeframes(candle: np.ndarray, exchange: str, symbol: str, with_execution: bool) -> None:\n    if not jh.is_live():\n        return\n\n    for timeframe in config['app']['considering_timeframes']:\n        # skip '1m'\n        if timeframe == '1m':\n            continue\n\n        last_candle = get_current_candle(exchange, symbol, timeframe)\n        generate_from_count = int((candle[0] - last_candle[0]) / 60_000)\n        number_of_candles = len(get_candles(exchange, symbol, '1m'))\n        short_candles = get_candles(exchange, symbol, '1m')[-1 - generate_from_count:]\n\n        if generate_from_count == -1:\n            # it's receiving an slightly older candle than the last one. Ignore it\n            return\n\n        if generate_from_count < 0:\n            current_1m = get_current_candle(exchange, symbol, '1m')\n            raise ValueError(\n                f'generate_from_count cannot be negative! '\n                f'generate_from_count:{generate_from_count}, candle[0]:{candle[0]}, '\n                f'last_candle[0]:{last_candle[0]}, current_1m:{current_1m[0]}, number_of_candles:{number_of_candles}')\n\n        if len(short_candles) == 0:\n            raise ValueError(\n                f'No candles were passed. More info:'\n                f'\\nexchange:{exchange}, symbol:{symbol}, timeframe:{timeframe}, generate_from_count:{generate_from_count}'\n                f'\\nlast_candle\\'s timestamp: {last_candle[0]}'\n                f'\\ncurrent timestamp: {jh.now()}'\n            )\n\n        # update latest candle\n        generated_candle = generate_candle_from_one_minutes(\n            timeframe,\n            short_candles,\n            accept_forming_candles=True\n        )\n\n        add_candle(\n            generated_candle, exchange, symbol, timeframe, with_execution, with_generation=False\n        )\n\n\ndef batch_add_candle(\n        candles: np.ndarray,\n        exchange: str,\n        symbol: str,\n        timeframe: str,\n        with_generation: bool = True\n) -> None:\n    for c in candles:\n        add_candle(c, exchange, symbol, timeframe, with_execution=False, with_generation=with_generation, with_skip=False)\n\n\ndef get_candles(exchange: str, symbol: str, timeframe: str) -> np.ndarray:\n    # no need to worry for forming candles when timeframe == 1m\n    if timeframe == '1m':\n        arr: DynamicNumpyArray = store.candles.get_storage(exchange, symbol, '1m')\n        if len(arr) == 0:\n            return np.zeros((0, 6))\n        else:\n            return arr[:]\n\n    # other timeframes\n    dif, long_key, short_key = store.candles.forming_estimation(exchange, symbol, timeframe)\n    long_count = len(store.candles.get_storage(exchange, symbol, timeframe))\n    short_count = len(store.candles.get_storage(exchange, symbol, '1m'))\n\n    if dif == 0 and long_count == 0:\n        return np.zeros((0, 6))\n\n    # complete candle\n    if dif == 0:\n        return store.candles.storage[long_key][:long_count]\n    # generate forming candle only if NOT in live mode\n    elif not jh.is_live():\n        forming_candle = generate_candle_from_one_minutes(\n            timeframe,\n            store.candles.storage[short_key][short_count - dif:short_count],\n            True\n        )\n        existing_candles_arr: DynamicNumpyArray = store.candles.storage[long_key]\n        add_candle(forming_candle, exchange, symbol, timeframe, with_execution=False, with_generation=False, with_skip=False)\n        return existing_candles_arr[:]\n    # in live mode, just return the complete candles\n    else:\n        return store.candles.storage[long_key][:long_count]\n\n\ndef get_current_candle(exchange: str, symbol: str, timeframe: str) -> np.ndarray:\n    # no need to worry for forming candles when timeframe == 1m\n    if timeframe == '1m':\n        arr: DynamicNumpyArray = store.candles.get_storage(exchange, symbol, '1m')\n        if len(arr) == 0:\n            return np.zeros((0, 6))\n        else:\n            return arr[-1]\n\n    # other timeframes\n    dif, long_key, short_key = store.candles.forming_estimation(exchange, symbol, timeframe)\n    long_count = len(store.candles.get_storage(exchange, symbol, timeframe))\n    short_count = len(store.candles.get_storage(exchange, symbol, '1m'))\n\n    # forming candle\n    if dif != 0:\n        return generate_candle_from_one_minutes(\n            timeframe, store.candles.storage[short_key][short_count - dif:short_count],\n            True\n        )\n    if long_count == 0:\n        return np.zeros((0, 6))\n    else:\n        return store.candles.storage[long_key][-1]\n\n\ndef add_multiple_1m_candles(\n    candles: np.ndarray,\n    exchange: str,\n    symbol: str,\n) -> None:\n    if not (jh.is_backtesting() or jh.is_optimizing()):\n        raise Exception('add_multiple_1m_candles() is for backtesting or optimizing only')\n\n    arr: DynamicNumpyArray = store.candles.get_storage(exchange, symbol, '1m')\n\n    # initial\n    if len(arr) == 0:\n        arr.append_multiple(candles)\n\n    # if it's new, add\n    elif candles[0, 0] > arr[-1][0]:\n        arr.append_multiple(candles)\n\n    # if it's the last candle again, update\n    elif candles[0, 0] >= arr[-len(candles)][0] and candles[-1, 0] >= arr[-1][0]:\n        override_candles = int(\n            len(candles) - ((candles[-1, 0] - arr[-1][0]) / 60000)\n        )\n        arr[-override_candles:] = candles\n\n    # Otherwise,it's true and error.\n    else:\n        raise IndexError(f\"Could not find the candle with timestamp {jh.timestamp_to_time(candles[0, 0])} in the storage. Last candle's timestamp: {jh.timestamp_to_time(arr[-1][0])}. exchange: {exchange}, symbol: {symbol}\")\n"
  },
  {
    "path": "jesse/services/charts.py",
    "content": "from datetime import datetime, timedelta\nfrom jesse.routes import router\nfrom jesse.store import store\nfrom jesse.services.candle_service import get_candles_from_db\nfrom jesse.utils import prices_to_returns\n\n\ndef _calculate_equity_curve(daily_balance, start_date, name: str, color: str):\n    date_list = [start_date + timedelta(days=x) for x in range(len(daily_balance))]\n    eq = [{\n        'time': date.timestamp(),\n        'value': balance,\n        'color': color\n    } for date, balance in zip(date_list, daily_balance)]\n    return {\n        'name': name,\n        'data': eq,\n        'color': color,\n    }\n\n\ndef _generate_color(previous_color):\n    # Convert the previous color from hex to RGB\n    previous_color = previous_color.lstrip('#')\n    r, g, b = tuple(int(previous_color[i:i+2], 16) for i in (0, 2, 4))\n\n    # Modify the RGB values to generate a new color\n    r = (r + 50) % 256\n    g = (g + 50) % 256\n    b = (b + 50) % 256\n\n    # Convert the new color from RGB to hex\n    new_color = '#{:02x}{:02x}{:02x}'.format(r, g, b)\n\n    return new_color\n\n\ndef equity_curve(benchmark: bool = False) -> list:\n    if store.closed_trades.count == 0:\n        return None\n\n    result = []\n    start_date = datetime.fromtimestamp(store.app.starting_time / 1000)\n    daily_balance = store.app.daily_balance\n\n    # Define the first 10 colors\n    colors = ['#818CF8', '#fbbf24', '#fb7185', '#60A5FA', '#f472b6', '#A78BFA', '#f87171', '#6EE7B7', '#93C5FD', '#FCA5A5']\n\n    result.append(_calculate_equity_curve(daily_balance, start_date, 'Portfolio', colors[0]))\n\n    if benchmark:\n        initial_balance = daily_balance[0]\n        for i, r in enumerate(router.routes):\n            _, daily_candles = get_candles_from_db(\n                r.exchange, r.symbol, '1D', store.app.starting_time,\n                store.app.ending_time + 1000 * 60 * 60 * 24, is_for_jesse=False, warmup_candles_num=0, caching=True\n            )\n            daily_returns = prices_to_returns(daily_candles[:, 2])\n            daily_returns[0] = 0\n            daily_balance_benchmark = initial_balance * (1 + daily_returns/100).cumprod()\n\n            # If there are more than 10 routes, generate new colors\n            if i + 1 >= 10:\n                colors.append(_generate_color(colors[-1]))\n\n            result.append(_calculate_equity_curve(daily_balance_benchmark, start_date, r.symbol, colors[(i + 1) % len(colors)]))\n\n    return result\n"
  },
  {
    "path": "jesse/services/closed_trade_service.py",
    "content": "import jesse.helpers as jh\nfrom jesse.services import logger\nfrom jesse.repositories import closed_trade_repository, order_repository\nfrom jesse.store import store\nfrom jesse.enums import sides\nimport numpy as np\nfrom jesse.models import ClosedTrade, Order, Position\n\n\ndef create_trade_from_dict(attributes: dict) -> ClosedTrade:\n    if attributes.get('created_at') is None:\n        attributes['created_at'] = jh.now_to_timestamp()\n    \n    trade = ClosedTrade(attributes)\n    \n    # if it's live/paper trading, we store the trade in the database.\n    if jh.is_live():\n        closed_trade_repository.store_or_update(trade)\n    \n    return trade\n\n\ndef add_executed_order(executed_order: Order) -> None:\n    t = store.closed_trades._get_current_trade(executed_order.exchange, executed_order.symbol)\n    \n    # if the order is not partially filled, we add it to the trade orders.\n    if not executed_order.is_partially_filled:\n        executed_order.trade_id = t.id\n        t.orders.append(executed_order)\n\n    add_order_record_only(executed_order)\n\n    if jh.is_live():\n        order_repository.store_or_update(executed_order)\n\n\ndef add_order_record_only(order: Order) -> None:\n    \"\"\"\n    used in add_executed_order() and for when initially adding open positions in live mode.\n    used for correct trade-metrics calculations in persistency support for live mode.\n    \"\"\"\n    t = store.closed_trades._get_current_trade(order.exchange, order.symbol)\n    if order.side == sides.BUY:\n        t.buy_orders.append(np.array([abs(order.filled_qty), order.price]))\n    elif order.side == sides.SELL:\n        t.sell_orders.append(np.array([abs(order.filled_qty), order.price]))\n    else:\n        raise Exception(f\"Invalid order side: {order.side}\")\n\n\ndef open_trade(position, p_orders: list = None) -> None:\n    t = store.closed_trades._get_current_trade(position.exchange_name, position.symbol)\n    t.opened_at = position.opened_at\n    t.leverage = position.leverage\n    try:\n        t.timeframe = position.strategy.timeframe\n        t.strategy_name = position.strategy.name\n    except AttributeError:\n        if not jh.is_unit_testing():\n            raise\n        # if some unit tests, we don't need to set the timeframe and strategy name.\n        t.timeframe = None\n        t.strategy_name = None\n    t.exchange = position.exchange_name\n    t.symbol = position.symbol\n    t.type = position.type\n    t.session_id = store.app.session_id\n    if jh.is_live() or jh.is_paper_trading():\n        closed_trade_repository.store_or_update(t)\n    if p_orders:\n        for order in p_orders:\n            order.trade_id = t.id\n            order_repository.store_or_update(order)\n            add_order_record_only(order)\n\n\ndef close_trade(position: Position) -> None:\n    t: ClosedTrade = store.closed_trades._get_current_trade(position.exchange_name, position.symbol)\n\n    if not t.is_open:\n        logger.info(\n            \"Unable to close a trade that is not yet open. If you're getting this in the live mode, it is likely due\"\n            \" to an unstable connection to the exchange, either on your side or the exchange's side. Please submit a\"\n            \" report using the report button so that Jesse's support team can investigate the issue.\"\n        )\n        return\n\n    t.closed_at = position.closed_at\n    try:\n        position.strategy.trades_count += 1\n    except AttributeError:\n        if not jh.is_unit_testing():\n            raise\n\n    if jh.is_livetrading():\n        closed_trade_repository.store_or_update(t)\n\n    store.closed_trades.trades.append(t)\n    closed_trade_repository.close_trade(t)\n    if not jh.is_unit_testing():\n        logger.info(\n            f\"CLOSED a {t.type} trade for {t.exchange}-{t.symbol}: qty: {t.qty},\"\n            f\" entry_price: {t.entry_price}, exit_price: {t.exit_price}, \"\n            f\"PNL: {round(t.pnl, 2)} ({round(t.pnl_percentage, 2)}%)\"\n        )\n    store.closed_trades._reset_current_trade(position.exchange_name, position.symbol)\n"
  },
  {
    "path": "jesse/services/color.py",
    "content": "import random\n\n\n_generated_colors = set()\n\n\ndef generate_unique_hex_color():\n    def random_color():\n        return \"#{:06x}\".format(random.randint(0, 0xFFFFFF))\n\n    def luminance(hex_color):\n        hex_color = hex_color.lstrip('#')\n        r, g, b = int(hex_color[0:2], 16), int(hex_color[2:4], 16), int(hex_color[4:6], 16)\n        return 0.2126 * r + 0.7152 * g + 0.0722 * b\n\n    while True:\n        color = random_color()\n        if color not in _generated_colors:\n            lum = luminance(color)\n            if 50 < lum < 200:  # Ensuring the color is neither too dark nor too light\n                _generated_colors.add(color)\n                return color\n"
  },
  {
    "path": "jesse/services/db.py",
    "content": "from playhouse.postgres_ext import PostgresqlExtDatabase\nimport jesse.helpers as jh\nfrom jesse.services.env import ENV_VALUES\n\n\n# refactor above code into a class\nclass Database:\n    def __init__(self):\n        self.db: PostgresqlExtDatabase = None\n\n    def is_closed(self) -> bool:\n        if self.db is None:\n            return True\n        return self.db.is_closed()\n\n    def is_open(self) -> bool:\n        if self.db is None:\n            return False\n        return not self.db.is_closed()\n\n    def close_connection(self) -> None:\n        if self.db:\n            self.db.close()\n            self.db = None\n\n    def open_connection(self) -> None:\n        if not jh.is_jesse_project() or jh.is_unit_testing():\n            return\n\n        # if it's not None, then we already have a connection\n        if self.db is not None:\n            return\n\n        options = {\n            \"keepalives\": 1,\n            \"keepalives_idle\": 60,\n            \"keepalives_interval\": 10,\n            \"keepalives_count\": 5\n        }\n\n        self.db = PostgresqlExtDatabase(\n            ENV_VALUES['POSTGRES_NAME'],\n            user=ENV_VALUES['POSTGRES_USERNAME'],\n            password=ENV_VALUES['POSTGRES_PASSWORD'],\n            host=ENV_VALUES['POSTGRES_HOST'],\n            port=int(ENV_VALUES['POSTGRES_PORT']),\n            sslmode=ENV_VALUES.get('POSTGRES_SSLMODE', 'disable'),\n            **options\n        )\n\n        # connect to the database\n        self.db.connect()\n\n\ndatabase = Database()\n"
  },
  {
    "path": "jesse/services/env.py",
    "content": "from dotenv import load_dotenv, dotenv_values\nimport jesse.helpers as jh\nimport os\nimport sys\n\n# fix directory issue\nsys.path.insert(0, os.getcwd())\n\nENV_VALUES = {}\n\nif jh.is_unit_testing():\n    ENV_VALUES['POSTGRES_HOST'] = '127.0.0.1'\n    ENV_VALUES['POSTGRES_NAME'] = 'jesse_db'\n    ENV_VALUES['POSTGRES_PORT'] = '5432'\n    ENV_VALUES['POSTGRES_USERNAME'] = 'jesse_user'\n    ENV_VALUES['POSTGRES_PASSWORD'] = 'password'\n    ENV_VALUES['REDIS_HOST'] = 'localhost'\n    ENV_VALUES['REDIS_PORT'] = '6379'\n    ENV_VALUES['REDIS_DB'] = 0\n    ENV_VALUES['REDIS_PASSWORD'] = ''\n    ENV_VALUES['APP_PORT'] = 3000\n    ENV_VALUES['IS_DEV_ENV'] = 'TRUE'\n    ENV_VALUES['LSP_PORT'] = 9001\n\nif jh.is_jesse_project():\n    # load env\n    load_dotenv()\n\n    # create and expose ENV_VALUES\n    ENV_VALUES = dotenv_values('.env')\n\n    # validation for existence of .env file\n    if len(list(ENV_VALUES.keys())) == 0:\n        jh.error(\n            '.env file is missing from within your local project. '\n            'This usually happens when you\\'re in the wrong directory. '\n            '\\n\\nIf you haven\\'t created a Jesse project yet, do that by running: \\n'\n            'jesse make-project {name}\\n'\n            'And then go into that project, and run the same command.',\n            force_print=True\n        )\n        os._exit(1)\n        jh.terminate_app()\n        # raise FileNotFoundError('.env file is missing from within your local project. This usually happens when you\\'re in the wrong directory. You can create one by running \"cp .env.example .env\"')\n\n    if not jh.is_unit_testing() and ENV_VALUES['PASSWORD'] == '':\n        raise EnvironmentError('You forgot to set the PASSWORD in your .env file')\n\n\ndef is_dev_env() -> bool:\n    return ENV_VALUES.get('IS_DEV_ENV', '').upper() == 'TRUE'\n"
  },
  {
    "path": "jesse/services/exchange_service.py",
    "content": "from jesse.config import config\nfrom jesse.exceptions import InvalidConfig\nfrom jesse.models import SpotExchange, FuturesExchange, Exchange\nfrom jesse.modes.utils import get_exchange_type\nfrom jesse.store import store\n\n\ndef initialize_exchanges_state() -> None:\n    for name in config['app']['considering_exchanges']:\n        starting_assets = config['env']['exchanges'][name]['balance']\n        fee = config['env']['exchanges'][name]['fee']\n        exchange_type = get_exchange_type(name)\n\n        if exchange_type == 'spot':\n            store.exchanges.storage[name] = SpotExchange(name, starting_assets, fee)\n        elif exchange_type == 'futures':\n            store.exchanges.storage[name] = FuturesExchange(\n                name, starting_assets, fee,\n                futures_leverage_mode=config['env']['exchanges'][name]['futures_leverage_mode'],\n                futures_leverage=config['env']['exchanges'][name]['futures_leverage'],\n            )\n        else:\n            raise InvalidConfig(\n                f'Value for exchange type in your config file in not valid. Supported values are \"spot\" and \"futures\". Your value is \"{exchange_type}\"'\n            )"
  },
  {
    "path": "jesse/services/failure.py",
    "content": "import jesse.helpers as jh\nfrom jesse.services import logger as jesse_logger\nimport threading\nimport traceback\nfrom jesse.services.redis import sync_publish\nfrom jesse.repositories import live_session_repository\nfrom jesse.store import store\nfrom jesse.enums import live_session_statuses\n\n\ndef register_custom_exception_handler() -> None:\n    # other threads\n    def handle_thread_exception(args) -> None:\n        if args.exc_type == SystemExit:\n            return\n\n        if args.exc_type.__name__ == 'Termination':\n            sync_publish('termination', {})\n            jh.terminate_app()\n        else:\n            # send notifications if it's a live session\n            if jh.is_live():\n                jesse_logger.error(\n                    f'{args.exc_type.__name__}: {args.exc_value}'\n                )\n                jesse_logger.info(\n                    str(traceback.format_exc())\n                )\n                \n                # Store exception in live session\n                try:\n                    live_session_repository.store_live_session_exception(\n                        store.app.session_id,\n                        f\"{args.exc_type.__name__}: {str(args.exc_value)}\",\n                        str(traceback.format_exc())\n                    )\n                    live_session_repository.update_live_session_status(store.app.session_id, live_session_statuses.STOPPED)\n                    live_session_repository.update_live_session_finished(store.app.session_id)\n                except Exception as e:\n                    jh.debug(f'Error storing live session exception: {e}')\n\n            sync_publish('exception', {\n                'error': f\"{args.exc_type.__name__}: {str(args.exc_value)}\",\n                'traceback': str(traceback.format_exc())\n            })\n            terminate_session()\n\n    threading.excepthook = handle_thread_exception\n\n\ndef terminate_session():\n    sync_publish('unexpectedTermination', {\n        'message': \"Session terminated as the result of an uncaught exception\",\n    })\n\n    jesse_logger.error('Session terminated as the result of an uncaught exception')\n\n    jh.terminate_app()\n"
  },
  {
    "path": "jesse/services/file.py",
    "content": "import csv\nimport json\nimport os\n\nimport arrow\n\nfrom jesse.config import config\nfrom jesse.services.tradingview import tradingview_logs\nfrom jesse.store import store\nimport jesse.helpers as jh\n\n\ndef store_logs(export_json: bool = False, export_tradingview: bool = False, export_csv: bool = False) -> dict:\n    if store.closed_trades.count == 0:\n        return {\n            'json': None,\n            'tradingview': None,\n            'csv': None\n        }\n\n    result = {}\n    file_name = jh.get_session_id()\n    trades_json = {'trades': [], 'considering_timeframes': config['app']['considering_timeframes']}\n    for t in store.closed_trades.trades:\n        trades_json['trades'].append(t.to_json)\n\n    if export_json:\n        path = f'storage/json/{file_name}.json'\n\n        os.makedirs('./storage/json', exist_ok=True)\n        with open(path, 'w+') as outfile:\n            def set_default(obj):\n                if isinstance(obj, set):\n                    return list(obj)\n                raise TypeError\n\n            json.dump(trades_json, outfile, default=set_default)\n            result['json'] = path\n\n    # store output for TradingView.com's pine-editor\n    if export_tradingview:\n        result['tradingview'] = tradingview_logs(file_name)\n\n    # also write a CSV file\n    if export_csv:\n        path = f'storage/csv/{file_name}.csv'\n        os.makedirs('./storage/csv', exist_ok=True)\n\n        with open(path, 'w', newline='') as outfile:\n            wr = csv.writer(outfile, quoting=csv.QUOTE_ALL)\n\n            for i, t in enumerate(trades_json['trades']):\n                if i == 0:\n                    # header of CSV file\n                    wr.writerow(t.keys())\n\n                wr.writerow(t.values())\n\n            result['csv'] = path\n\n    return result\n"
  },
  {
    "path": "jesse/services/general_info.py",
    "content": "import os\nimport requests\nimport jesse.helpers as jh\nfrom jesse.info import exchange_info, jesse_supported_timeframes, JESSE_API_URL\nfrom jesse.services.env import is_dev_env\n\n\ndef get_general_info(has_live=False) -> dict:\n    from jesse.version import __version__ as jesse_version\n    system_info = {\n        'jesse_version': jesse_version\n    }\n    plan_info = {'plan': 'guest'}\n    limits = {}\n\n    if has_live:\n        from jesse.services.auth import get_access_token\n        access_token = get_access_token()\n        if not access_token:\n            has_live = False\n\n        # version info\n        from jesse_live.version import __version__ as live_version\n        system_info['live_plugin_version'] = live_version\n\n        if access_token:\n            # get the account plan info via the access_token\n            try:\n                response = requests.post(\n                    JESSE_API_URL + '/v2/user-info',\n                    headers={'Authorization': f'Bearer {access_token}'},\n                    timeout=10\n                )\n                \n                # Check if response is JSON\n                content_type = response.headers.get('Content-Type', '')\n                if 'application/json' not in content_type:\n                    raise Exception(\n                        f\"Jesse API returned unexpected content type '{content_type}'. \"\n                        f\"The service might be temporarily unavailable. Please try again later.\"\n                    )\n                \n                if response.status_code != 200:\n                    try:\n                        error_message = response.json().get('message', 'Unknown error')\n                    except:\n                        error_message = f\"Received status code {response.status_code}\"\n                    raise Exception(\n                        f\"Failed to get user info from Jesse API: {error_message}\"\n                    )\n                \n                plan_info = response.json()\n                limits = plan_info['limits']\n            except requests.exceptions.RequestException as e:\n                raise Exception(\n                    f\"Failed to connect to Jesse API. The service might be temporarily unavailable. \"\n                    f\"Error: {str(e)}\"\n                )\n            except ValueError as e:\n                raise Exception(\n                    f\"Jesse API returned invalid JSON response. The service might be temporarily unavailable. \"\n                    f\"Error: {str(e)}\"\n                )\n\n    strategies_path = os.getcwd() + \"/strategies/\"\n    strategies = list(sorted([name for name in os.listdir(strategies_path) if os.path.isdir(strategies_path + name) and not name.startswith('.')]))\n    if \"__pycache__\" in strategies:\n        strategies.remove(\"__pycache__\")\n\n    system_info['python_version'] = '{}.{}'.format(*jh.python_version())\n    system_info['operating_system'] = jh.get_os()\n    system_info['cpu_cores'] = jh.cpu_cores_count()\n    system_info['is_docker'] = jh.is_docker()\n\n    update_info = {}\n\n    try:\n        # if we are in local dev, consider offline\n        if is_dev_env():\n            raise ValueError(\"jesse is running locally, so don't check for updates from pypi\")\n            \n        response = requests.get('https://pypi.org/pypi/jesse/json', timeout=10)\n        if response.status_code == 200 and 'application/json' in response.headers.get('Content-Type', ''):\n            update_info['jesse_latest_version'] = response.json()['info']['version']\n        else:\n            raise ValueError(\"Invalid response from PyPI\")\n            \n        response = requests.get(\n            JESSE_API_URL + '/plugins/live/releases/info',\n            timeout=10\n        )\n        if response.status_code == 200 and 'application/json' in response.headers.get('Content-Type', ''):\n            update_info['jesse_live_latest_version'] = response.json()[0]['version']\n        else:\n            raise ValueError(\"Invalid response from Jesse API\")\n            \n        update_info['is_update_info_available'] = True\n    except Exception as e:\n        update_info['is_update_info_available'] = False\n        # Log the error for debugging purposes\n        jh.debug(f\"Failed to fetch update info: {str(e)}\")\n\n    res = {\n        'exchanges': exchange_info,\n        'strategies': strategies,\n        'jesse_supported_timeframes': jesse_supported_timeframes,\n        'has_live_plugin_installed': has_live,\n        'system_info': system_info,\n        'update_info': update_info,\n        'plan': plan_info['plan'],\n    }\n\n    if has_live:\n        res['limits'] = {\n            'ip_limit': limits['ip_limit'],\n            'live_trading_tabs': limits['live_trading_tabs'],\n            'trading_routes': limits['trading_routes'],\n            'data_routes': limits['data_routes'],\n            'timeframes': limits['timeframes'],\n            'exchanges': list(limits['exchanges'].keys()),\n        }\n\n    return res\n"
  },
  {
    "path": "jesse/services/installer.py",
    "content": "from jesse.services.env import ENV_VALUES\nimport jesse.helpers as jh\nimport platform\nimport requests\nimport subprocess\nimport sys\nimport click\nimport os\nfrom jesse.info import JESSE_API_URL\n\ndef _pip_install(package):\n    subprocess.check_call([sys.executable, \"-m\", \"pip\", \"install\", package])\n\n\ndef install(is_live_plugin_already_installed: bool, strict: bool):\n    if is_live_plugin_already_installed:\n        from jesse_live.version import __version__\n        click.clear()\n        print(f'Version \"{__version__}\" of the live-trade plugin is already installed.')\n        if strict:\n            txt = '\\nIf you meant to update, first delete the existing version by running \"pip uninstall jesse_live -y\" and then run \"jesse install-live\" one more time.'\n            print(jh.color(txt, 'yellow'))\n        return\n\n    if 'LICENSE_API_TOKEN' not in ENV_VALUES:\n        if strict:\n            print('ERROR: You need to set the LICENSE_API_TOKEN environment variable in your .env')\n        return\n\n    # if no value is set for LICENSE_API_TOKEN, then no need to continue\n    if not ENV_VALUES['LICENSE_API_TOKEN']:\n        if strict:\n            print(\"No license API token set. Please set the LICENSE_API_TOKEN environment variable to continue. If you don't have one yet, create one at https://jesse.trade/user/api-tokens\" )\n        return\n    else:\n        access_token = ENV_VALUES['LICENSE_API_TOKEN']\n\n    if platform.system() == 'Darwin':\n        os_name = 'mac'\n    elif platform.system() == 'Linux':\n        os_name = 'linux'\n    elif platform.system() == 'Windows':\n        os_name = 'windows'\n    else:\n        raise NotImplementedError(f'Unsupported OS: \"{platform.system()}\"')\n\n    is_64_bit = platform.machine().endswith('64')\n    print('is_64_bit', is_64_bit)\n    if not is_64_bit:\n        raise NotImplementedError(f'Only 64-bit machines are supported')\n\n    is_arm = platform.machine().startswith('arm')\n    print('is_arm', is_arm)\n    # arm versions of linux and windows are not supported\n    if is_arm and (os_name in ['linux', 'windows']):\n        raise NotImplementedError(f'ARM versions of {os_name} are not supported. If you need them, send a request to contact@jesse.trade')\n\n    # format os_name to something acceptable for the API\n    if os_name == 'mac':\n        formatted_os_name = 'macOS - M1' if is_arm else 'macOS - Intel'\n    elif os_name == 'linux':\n        formatted_os_name = 'Linux - x86_64'\n    # windows\n    else:\n        formatted_os_name = 'Windows 10 - 64 bit'\n\n    from jesse.version import __version__ as jesse_version\n    print('Downloading the latest version of the live-trade plugin...')\n    try:\n        response = requests.post(\n            JESSE_API_URL + '/download-release',\n            headers={'Authorization': 'Bearer ' + access_token},\n            params={\n                'os': formatted_os_name,\n                'python_version': '{}.{}'.format(*jh.python_version()),\n                'beta': True,\n                'jesse_version': jesse_version\n            }\n        )\n    except requests.exceptions.RequestException:\n        response = requests.post(\n            'https://api1.jesse.trade/api/download-release',\n            headers={'Authorization': 'Bearer ' + access_token},\n            params={\n                'os': formatted_os_name,\n                'python_version': '{}.{}'.format(*jh.python_version()),\n                'beta': True,\n                'jesse_version': jesse_version\n            }\n        )\n    if response.status_code != 200:\n        raise Exception('Error: ' + response.text)\n\n    # store the downloaded file in 'storage/downloads' using the name of the downloaded file\n    filename = response.headers['Content-Disposition'].split('=')[1]\n    filepath = 'storage/' + filename\n    with open(filepath, 'wb') as f:\n        f.write(response.content)\n\n    # The downloaded file is a whl file. Install it with pip\n    print(f'Installing {filename}...')\n    _pip_install(filepath)\n\n    # remove the raw installation file\n    os.remove(filepath)\n"
  },
  {
    "path": "jesse/services/jesse_trade.py",
    "content": "import requests\nfrom fastapi.responses import JSONResponse\nfrom jesse.services.auth import get_access_token\nimport jesse.helpers as jh\nimport json\nfrom jesse.info import JESSE_API_URL\n\n\ndef feedback(description: str, email: str = None) -> JSONResponse:\n    access_token = get_access_token()\n\n    res = requests.post(\n        JESSE_API_URL + '/feedback', {\n            'description': description,\n            'email': email\n        },\n        headers={'Authorization': f'Bearer {access_token}'}\n    )\n\n    success_message = 'Feedback submitted successfully'\n    error_message = f\"{res.status_code} error: {res.json()['message']}\"\n\n    return JSONResponse({\n        'status': 'success' if res.status_code == 200 else 'error',\n        'message': success_message if res.status_code == 200 else error_message\n    }, status_code=200)\n\n\ndef report_exception(\n        description: str, traceback: str, mode: str, attach_logs: bool, session_id: str, email: str = None, has_live: bool = False\n) -> JSONResponse:\n    access_token = get_access_token()\n\n    if attach_logs and session_id:\n        path_exchange_log = None\n        if mode == 'backtest':\n            path_log = f'storage/logs/backtest-mode/{session_id}.txt'\n        elif mode == 'live':\n            path_log = f'storage/logs/live-mode/{session_id}.txt'\n            path_exchange_log = f'storage/logs/live-mode/{session_id}-raw-exchange-logs.txt'\n        else:\n            raise ValueError('Invalid mode')\n\n        # attach exchange_log if there's any\n        files = {'log_file': open(path_log, 'rb')}\n        if path_exchange_log and jh.file_exists(path_exchange_log):\n            files['exchange_log'] = open(path_exchange_log, 'rb')\n    else:\n        files = None\n\n    from jesse.version import __version__ as jesse_version\n    info = {\n        'os': jh.get_os(),\n        'python_version': '{}.{}'.format(*jh.python_version()),\n        'is_docker': jh.is_docker(),\n        'jesse_version': jesse_version\n    }\n    if has_live:\n        from jesse_live.version import __version__ as live_plugin_version\n        info['live_plugin_version'] = live_plugin_version\n\n    params = {\n        'description': description,\n        'traceback': traceback,\n        'email': email,\n        'info': json.dumps(info)\n    }\n    res = requests.post(\n        JESSE_API_URL + '/exception',\n        data=params,\n        files=files,\n        headers={'Authorization': f'Bearer {access_token}'}\n    )\n\n    success_message = 'Exception report submitted successfully'\n    error_message = f\"{res.status_code} error: {res.json()['message']}\"\n\n    return JSONResponse({\n        'status': 'success' if res.status_code == 200 else 'error',\n        'message': success_message if res.status_code == 200 else error_message\n    }, status_code=200)\n"
  },
  {
    "path": "jesse/services/logger.py",
    "content": "import jesse.helpers as jh\nfrom jesse.services.notifier import notify\nfrom jesse.services.redis import sync_publish\nimport logging\nimport os\n\n# store loggers in the dict because we might want to add more later\nLOGGERS = {}\n\n\ndef _init_main_logger():\n    session_id = jh.get_session_id()\n    jh.make_directory('storage/logs/live-mode')\n    jh.make_directory('storage/logs/backtest-mode')\n    jh.make_directory('storage/logs/optimize-mode')\n    jh.make_directory('storage/logs/collect-mode')\n    jh.make_directory('storage/logs/monte-carlo-mode')\n\n    if jh.is_live():\n        filename = f'storage/logs/live-mode/{session_id}.txt'\n    elif jh.is_optimizing():\n        filename = f'storage/logs/optimize-mode/{session_id}.txt'\n    elif jh.is_backtesting():\n        filename = f'storage/logs/backtest-mode/{session_id}.txt'\n    else:\n        filename = 'storage/logs/etc.txt'\n\n    new_logger = logging.getLogger(jh.app_mode())\n    new_logger.setLevel(logging.INFO)\n    new_logger.addHandler(logging.FileHandler(filename, mode='w'))\n    LOGGERS[jh.app_mode()] = new_logger\n\n\ndef create_logger_file(name):\n    \"\"\"Creates a logger file that appends to existing logs\"\"\"\n    log_file = f\"storage/logs/{name}.txt\"\n    os.makedirs(os.path.dirname(log_file), exist_ok=True)\n    new_logger = logging.getLogger(name)\n    new_logger.setLevel(logging.INFO)\n    new_logger.addHandler(logging.FileHandler(log_file, mode='a'))\n    LOGGERS[name] = new_logger\n\n\ndef reset():\n    LOGGERS.clear()\n\n\ndef info(msg: str, send_notification=False, webhook=None) -> None:\n    if jh.app_mode() not in LOGGERS and (jh.is_live() or (jh.is_backtesting() and jh.is_debugging())):\n        _init_main_logger()\n\n    msg = str(msg)\n    from jesse.store import store\n\n    log_id = jh.generate_unique_id()\n    log_dict = {\n        'id': log_id,\n        'session_id': store.app.session_id,\n        'timestamp': jh.now_to_timestamp(),\n        'message': msg\n    }\n\n    store.logs.info.append(log_dict)\n\n    if jh.is_live():\n        sync_publish('info_log', log_dict)\n\n    if jh.is_live() or (jh.is_backtesting() and jh.is_debugging()):\n        msg = f\"[INFO | {jh.timestamp_to_time(jh.now_to_timestamp())[:19]}] {msg}\"\n        logger = LOGGERS[jh.app_mode()]\n        logger.info(msg)\n\n    if jh.is_live():\n        from jesse.models.Log import store_log_into_db\n        store_log_into_db(log_dict, 'info')\n\n    if send_notification:\n        notify(msg, webhook=webhook)\n\n\ndef error(msg: str, send_notification=True) -> None:\n    if jh.app_mode() not in LOGGERS:\n        _init_main_logger()\n\n    # error logs should be logged as info logs as well\n    info(msg)\n\n    msg = str(msg)\n    from jesse.store import store\n\n    log_id = jh.generate_unique_id()\n    log_dict = {\n        'id': log_id,\n        'session_id': store.app.session_id,\n        'timestamp': jh.now_to_timestamp(),\n        'message': msg\n    }\n\n    if jh.is_live() and jh.get_config('env.notifications.events.errors', True) and send_notification:\n        notify(f'ERROR:\\n{msg}')\n    if (jh.is_backtesting() and jh.is_debugging()) or jh.is_live():\n        sync_publish('error_log', log_dict)\n\n    store.logs.errors.append(log_dict)\n\n    if jh.is_live() or jh.is_optimizing():\n        msg = f\"[ERROR | {jh.timestamp_to_time(jh.now_to_timestamp())[:19]}] {msg}\"\n        logger = LOGGERS[jh.app_mode()]\n        logger.error(msg)\n\n    if jh.is_live():\n        from jesse.models.Log import store_log_into_db\n        store_log_into_db(log_dict, 'error')\n\n\ndef log_exchange_message(exchange, message):\n    # if the type of message is not str, convert it to str\n    if not isinstance(message, str):\n        message = str(message)\n\n    formatted_time = jh.timestamp_to_time(jh.now())[:19]\n    message = f'[{formatted_time} - {exchange}]: ' + message\n\n    session_id = jh.get_session_id()\n    logger_name = f'live-mode/{session_id}-raw-exchange-logs'\n\n    if logger_name not in LOGGERS:\n        # Create the logger with write mode to clear previous session's logs\n        log_file = f\"storage/logs/{logger_name}.txt\"\n        os.makedirs(os.path.dirname(log_file), exist_ok=True)\n        new_logger = logging.getLogger(logger_name)\n        new_logger.setLevel(logging.INFO)\n        new_logger.addHandler(logging.FileHandler(log_file, mode='w'))\n        LOGGERS[logger_name] = new_logger\n\n    LOGGERS[logger_name].info(message)\n\n\ndef log_optimize_mode(message, session_id: str):\n    # if the type of message is not str, convert it to str\n    if not isinstance(message, str):\n        message = str(message)\n\n    formatted_time = jh.timestamp_to_time(jh.now())[:19]\n    message = f'[{formatted_time}]: ' + message\n    \n    # Check if we're in a Ray worker process\n    import ray\n    is_ray_worker = False\n    try:\n        if ray.is_initialized():\n            runtime_ctx = ray.get_runtime_context()\n            is_ray_worker = runtime_ctx.worker.mode == ray.WORKER_MODE\n    except Exception as e:\n        print(f\"Error checking Ray worker status: {e}\")\n\n    # Only create file logger from main process (not workers)\n    if not is_ray_worker:\n        try:\n            # Append to log file directly instead of using global logger\n            log_file = f\"storage/logs/optimize-mode/{session_id}.txt\"\n            os.makedirs(os.path.dirname(log_file), exist_ok=True)\n\n            # Append the message to the file\n            with open(log_file, 'a', encoding='utf-8') as f:\n                f.write(message + '\\n')\n                f.flush()  # Ensure it's written immediately\n        except Exception as e:\n            jh.dump('error')\n            print(f\"Warning: Failed to write to optimize mode log file {log_file}: {e}\")\n\n    # also, publish to redis\n    sync_publish('log', {\n        'id': jh.generate_unique_id(),\n        'timestamp': jh.now_to_timestamp(),\n        'message': message\n    })\n\n\ndef log_monte_carlo(message, session_id: str):\n    \"\"\"Log a message for Monte Carlo mode. Only creates file logs from main process.\"\"\"\n    # if the type of message is not str, convert it to str\n    if not isinstance(message, str):\n        message = str(message)\n\n    formatted_time = jh.timestamp_to_time(jh.now())[:19]\n    message = f'[{formatted_time}]: ' + message\n\n    # Check if we're in a Ray worker process\n    # Workers should not create file loggers as they can't share the LOGGERS dict properly\n    import ray\n    is_ray_worker = False\n    try:\n        if ray.is_initialized():\n            runtime_ctx = ray.get_runtime_context()\n            is_ray_worker = runtime_ctx.worker.mode == ray.WORKER_MODE\n    except Exception as e:\n        print(f\"Error checking Ray worker status: {e}\")\n\n    # Only create file logger from main process (not workers)\n    if not is_ray_worker:\n        try:\n            # Append to log file directly instead of using global logger\n            log_file = f\"storage/logs/monte-carlo-mode/{session_id}.txt\"\n            os.makedirs(os.path.dirname(log_file), exist_ok=True)\n\n            # Append the message to the file\n            with open(log_file, 'a', encoding='utf-8') as f:\n                f.write(message + '\\n')\n                f.flush()  # Ensure it's written immediately\n        except Exception as e:\n            print(f\"Warning: Failed to write to monte carlo log file {log_file}: {e}\")\n\n    # Always publish to redis for real-time updates\n    sync_publish('log', {\n        'id': jh.generate_unique_id(),\n        'timestamp': jh.now_to_timestamp(),\n        'message': message\n    })\n\n\ndef broadcast_error_without_logging(msg: str):\n    msg = str(msg)\n\n    sync_publish('error_log', {\n        'id': jh.generate_unique_id(),\n        'timestamp': jh.now_to_timestamp(),\n        'message': msg\n    })\n"
  },
  {
    "path": "jesse/services/lsp.py",
    "content": "import os\nimport platform\nimport requests\nimport shutil\nimport tarfile\nimport zipfile\nimport tempfile\nimport jesse.helpers as jh\n\n#Global variable to store the LSP default port\nLSP_DEFAULT_PORT = 9001\n\n# Global variable to store/track the lsp process\nLSP_PROCESS = None\n\n\nLSP_RELEASE_URL = \"https://api.github.com/repos/jesse-ai/python-language-server/releases/latest\"\n\ndef _get_platform_package_name() -> str:\n    \"\"\"\n    Determines the appropriate package name based on the current platform and architecture.\n    \n    Returns:\n        str: Package name (e.g., 'darwin-arm64.tar.gz', 'linux-x64.tar.gz', 'win32-x64.zip')\n    \"\"\"\n    system = platform.system().lower()\n    machine = platform.machine().lower()\n    \n    # Normalize architecture names\n    if machine in ('x86_64', 'amd64'):\n        arch = 'x64'\n    elif machine in ('aarch64', 'arm64'):\n        arch = 'arm64'\n    else:\n        raise Exception(f\"Unsupported architecture: {machine}\")\n    \n    # Map system to package name format\n    if system == 'darwin':  # macOS\n        return f'darwin-{arch}.tar.gz'\n    elif system == 'linux':\n        return f'linux-{arch}.tar.gz'\n    elif system == 'windows':\n        # Windows packages only have x64 available\n        return 'win32-x64.zip'\n    else:\n        raise Exception(f\"Unsupported operating system: {system}\")\n\ndef _save_lsp_version(lsp_version: str) -> None:\n    \"\"\"\n    Saves the Python Language Server version to a file.\n    \"\"\"\n    from jesse import JESSE_DIR\n    version_file = os.path.join(JESSE_DIR, 'lsp', 'VERSION')\n    with open(version_file, 'w') as f:\n        f.write(lsp_version)\n\ndef _get_lsp_version() -> str:\n    \"\"\"\n    Reads the Python Language Server version from a file.\n    Returns empty string if file doesn't exist.\n    \"\"\"\n    from jesse import JESSE_DIR\n    version_file = os.path.join(JESSE_DIR, 'lsp', 'VERSION')\n    if not os.path.exists(version_file):\n        return ''\n    with open(version_file, 'r') as f:\n        return f.read().strip()\n\ndef _compare_versions(version1: str, version2: str) -> int:\n    \"\"\"\n    Compares two semantic version strings.\n    \n    Args:\n        version1: First version string (e.g., '1.2.3')\n        version2: Second version string (e.g., '1.2.4')\n    \n    Returns:\n        int: -1 if version1 < version2, 0 if equal, 1 if version1 > version2\n    \"\"\"\n    def normalize_version(v: str) -> list:\n        \"\"\"Convert version string to list of integers for comparison.\"\"\"\n        parts = []\n        for part in v.split('.'):\n            try:\n                parts.append(int(part))\n            except ValueError:\n                parts.append(0)\n        return parts\n    \n    v1_parts = normalize_version(version1)\n    v2_parts = normalize_version(version2)\n    \n    max_len = max(len(v1_parts), len(v2_parts))\n    v1_parts.extend([0] * (max_len - len(v1_parts)))\n    v2_parts.extend([0] * (max_len - len(v2_parts)))\n    \n    for i in range(max_len):\n        if v1_parts[i] < v2_parts[i]:\n            return -1\n        elif v1_parts[i] > v2_parts[i]:\n            return 1\n    \n    return 0\n\ndef is_lsp_update_available() -> bool:\n    \"\"\"\n    Checks if an update is available for the Python Language Server.\n    \"\"\"\n    try:\n        # Get the current installed version\n        lsp_version = _get_lsp_version()\n        \n        # If the current version is not set, return False\n        if lsp_version == '':\n            return False\n        \n        # Get the latest version info \n        global LSP_RELEASE_URL\n        response = requests.get(LSP_RELEASE_URL, timeout=10)\n        response.raise_for_status()\n        \n        release_data = response.json()\n        latest_version = release_data.get('tag_name', '').lstrip('v')\n        \n        # Compare versions\n        return _compare_versions(lsp_version, latest_version) < 0\n            \n    except Exception as e:\n        raise Exception(f\"Error checking for LSP update: {str(e)}\")\n\n\ndef install_lsp_server() -> None:\n    \"\"\"\n    Downloads and installs the Python Language Server from GitHub releases\n    based on the current platform and architecture.\n    \"\"\"        \n    # Define the target directory\n    from jesse import JESSE_DIR\n    \n    target_dir = os.path.join(JESSE_DIR, 'lsp')\n    \n    #Update process\n    # If the lsp directory exists(installed), check if an update is available, if so, delete the lsp directory and all its contents and re-install it\n    if os.path.exists(target_dir):\n        try:\n            should_update_lsp = is_lsp_update_available() # Check if an update is available  \n\n            if should_update_lsp:\n                # Delete the lsp directory and all its contents\n                shutil.rmtree(target_dir, ignore_errors=True)\n                # Re-install the Python Language Server\n                return install_lsp_server()\n        except Exception as e:\n            print(jh.color(f\"Error checking for LSP update: {str(e)}\", 'yellow'))\n            pass\n     \n    #Normal installation process\n    #Define the start script based on the platform\n    start_script = None\n    if platform.system().lower() == 'windows':\n        start_script = os.path.join(target_dir, 'start.bat')\n    else:\n        start_script = os.path.join(target_dir, 'start.sh')\n    \n    \n    # Skip if already exists \n    if os.path.exists(target_dir) and os.path.exists(start_script):\n        if jh.is_debuggable('lsp_installer'):\n            print(f\"Python Language Server already exists at {target_dir}\")\n        return\n    \n    # If the start script does not exist, delete the lsp directory and all its contents and re-install it\n    if not os.path.exists(start_script):\n        try:\n            #delete the lsp directory and all its contents\n            shutil.rmtree(target_dir, ignore_errors=True)\n        except Exception as e:\n            pass    \n        \n    # Install the Python Language Server\n    try:\n        # Determine the platform-specific package name\n        try:\n            package_name = _get_platform_package_name()\n        except Exception as e:\n            raise Exception(f\"Cannot determine platform package name: {str(e)}\")\n        \n        print(f\"Detected platform package: {package_name}\")\n        \n        # Get the latest release\n        global LSP_RELEASE_URL\n        response = requests.get(LSP_RELEASE_URL, timeout=10)\n        response.raise_for_status()\n        \n        release_data = response.json()\n        \n        # Find the appropriate asset for this platform\n        download_url = None\n        for asset in release_data.get('assets', []):\n            if asset['name'] == package_name:\n                download_url = asset['browser_download_url']\n                break\n        \n        if not download_url:\n            raise Exception(f\"Package '{package_name}' not found in latest release\")        \n        \n        print(f\"Downloading Python Language Server from {download_url}...\")\n        \n        # Download the package\n        with tempfile.TemporaryDirectory() as temp_dir:\n            temp_file = os.path.join(temp_dir, package_name)\n            extract_temp_dir = os.path.join(temp_dir, 'extracted')\n            \n            with requests.get(download_url, stream=True, timeout=30) as r:\n                r.raise_for_status()\n                with open(temp_file, 'wb') as f:\n                    for chunk in r.iter_content(chunk_size=8192):\n                        f.write(chunk)\n            \n            # Extract to temporary directory first\n            os.makedirs(extract_temp_dir, exist_ok=True)\n            \n            if package_name.endswith('.tar.gz'):\n                with tarfile.open(temp_file, 'r:gz') as tar:\n                    tar.extractall(extract_temp_dir)\n            elif package_name.endswith('.zip'):\n                with zipfile.ZipFile(temp_file, 'r') as zip_ref:\n                    zip_ref.extractall(extract_temp_dir)\n            \n            # Flatten the directory structure\n            # If there's a single top-level directory, move its contents up\n            extracted_items = os.listdir(extract_temp_dir)\n            \n            if len(extracted_items) == 1 and os.path.isdir(os.path.join(extract_temp_dir, extracted_items[0])):\n                # Single directory - move its contents\n                source_dir = os.path.join(extract_temp_dir, extracted_items[0])\n            else:\n                # Multiple items at top level - use as is\n                source_dir = extract_temp_dir\n            \n            # Create target directory and move contents\n            os.makedirs(target_dir, exist_ok=True)\n            \n            for item in os.listdir(source_dir):\n                source_path = os.path.join(source_dir, item)\n                dest_path = os.path.join(target_dir, item)\n                if os.path.isdir(source_path):\n                    shutil.copytree(source_path, dest_path)\n                else:\n                    shutil.copy2(source_path, dest_path)\n            \n            # Save the lsp version to file\n            lsp_version = release_data.get('tag_name', '').lstrip('v')\n            _save_lsp_version(lsp_version)\n            \n            print(jh.color(\"✓ Python Language Server installed successfully\", 'green'))\n    \n    except requests.RequestException as e:\n        raise Exception(f\"Failed to download LSP server: {str(e)}\")\n    except Exception as e:\n        raise Exception(f\"Error installing LSP server: {str(e)}\")\n        \n        \ndef run_lsp_server():\n    \"\"\"\n    Runs the Python Language Server.\n    \"\"\"\n    global LSP_PROCESS\n    \n    if LSP_PROCESS:\n        print(jh.color(\"Python Language Server is already running\", 'yellow'))\n        return\n    \n    from jesse import JESSE_DIR\n    lsp_dir = os.path.join(JESSE_DIR, 'lsp')\n\n    #Define the start script based on the platform\n    start_script = None\n    if platform.system().lower() == 'windows':\n        start_script = os.path.join(lsp_dir, 'start.bat')\n    else:\n        start_script = os.path.join(lsp_dir, 'start.sh')\n    \n\n    if not os.path.exists(lsp_dir):\n        raise Exception(\"LSP directory not found. Please re-install it first by restarting the jesse.\")\n    \n    if not os.path.exists(start_script):\n        raise Exception(\"Python Language Server start script not found. Please re-install it first by restarting the jesse.\")\n\n    # Get the port from the .env file\n    from jesse.services.env import ENV_VALUES\n    port = None\n    if 'LSP_PORT' in ENV_VALUES:\n        port = int(ENV_VALUES['LSP_PORT'])\n    else:\n        print(jh.color(f\"LSP_PORT is not set in the .env file. Using default port {LSP_DEFAULT_PORT}\", 'yellow'))\n        port = LSP_DEFAULT_PORT\n        \n    # Get the workspace root (Jesse Bot root) (e.g., /home/king/jesse/jesse-ai-jesse-bot)\n    jesse_bot_root = os.getcwd()\n    \n    # Get the parent directory of the Jesse framework (e.g., /home/king/jesse/jesse-ai/jesse)\n    jesse_framework_parent = os.path.dirname(JESSE_DIR)  # /home/king/jesse/jesse-ai/jesse    \n    \n    print(\"Starting Python Language Server...\")\n    print(f\"LSP WS started at ws://localhost:{port}/lsp\\n\")\n    \n    # Start the lsp process and return the handle\n    try:\n        import subprocess        \n        with open(os.devnull, 'w') as devnull:\n            process = subprocess.Popen(\n                [\n                    start_script,\n                    '--port', str(port),\n                    '--bot-root', jesse_bot_root,\n                    '--jesse-root', jesse_framework_parent\n                ],\n                stdout=devnull,  # redirect stdout to devnull to suppress LSP output\n                stderr=devnull,  # redirect stderr to devnull to suppress LSP errors\n                shell=False  # since we are using array arguments, we need to set shell to False\n            )\n        LSP_PROCESS = process\n        # wait for 0.2 seconds to make sure the process is started\n        import time\n        time.sleep(0.2)\n        if process.poll() is not None:\n            raise Exception(f\"LSP server exited immediately with code {process.poll()}\")\n                           \n    except Exception as e:\n        LSP_PROCESS = None\n        raise Exception(f\"Failed to start LSP server: {str(e)}\")\n    \ndef terminate_lsp_server():\n    \"\"\"\n    Terminates the Python Language Server.\n    \"\"\"\n    # Stop LSP server if running\n    global LSP_PROCESS\n    if LSP_PROCESS:\n        try:\n            print(jh.color(\"Stopping Python Language Server...\", 'yellow'))\n            LSP_PROCESS.terminate()\n            LSP_PROCESS.wait(timeout=5)\n            print(jh.color(\"✓ Python Language Server stopped\", 'green'))\n        except Exception as e:\n            print(jh.color(f\"⚠ Error stopping LSP: {str(e)}\", 'yellow'))\n            try:\n                print(jh.color(\"Force killing Python Language Server...\", 'yellow'))\n                LSP_PROCESS.kill()  # Force kill if terminate fails\n            except:\n                pass\n        finally:\n            LSP_PROCESS = None\n            print(jh.color(\"✓ Python Language Server terminated\", 'green'))"
  },
  {
    "path": "jesse/services/metrics.py",
    "content": "from datetime import datetime\nfrom typing import List\n\nimport numpy as np\nimport pandas as pd\n\nimport jesse.helpers as jh\nfrom jesse.models import ClosedTrade\nfrom jesse.store import store\nfrom jesse.routes import router\n\n\ndef candles_info(candles_array: np.ndarray) -> dict:\n    period = jh.date_diff_in_days(\n        jh.timestamp_to_arrow(candles_array[0][0]),\n        jh.timestamp_to_arrow(candles_array[-1][0])) + 1\n\n    if period > 365:\n        duration = f'{period} days ({round(period / 365, 2)} years)'\n    elif period > 30:\n        duration = f'{period} days ({round(period / 30, 2)} months)'\n    else:\n        duration = f'{period} days'\n\n    # type of the exchange\n    trading_exchange = store.exchanges.trading_exchange\n\n    info = {\n        'duration': duration,\n        'starting_time': candles_array[0][0],\n        'finishing_time': (candles_array[-1][0] + 60_000),\n        'exchange_type': trading_exchange.type,\n        'exchange': trading_exchange.name,\n    }\n\n    # if the exchange type is futures, also display leverage\n    if trading_exchange.type == 'futures':\n        info['leverage'] = trading_exchange.futures_leverage\n        info['leverage_mode'] = trading_exchange.futures_leverage_mode\n\n    return info\n\n\ndef routes(routes_arr: list) -> list:\n    return [{\n            'exchange': r.exchange,\n            'symbol': r.symbol,\n            'timeframe': r.timeframe,\n            'strategy_name': r.strategy_name,\n            } for r in routes_arr]\n\n\ndef _prepare_returns(returns, rf=0.0, periods=252):\n    \"\"\"\n    Helper function to prepare returns data by converting to pandas Series and\n    adjusting for risk-free rate if provided\n    \"\"\"\n    if rf != 0:\n        returns = returns - (rf / periods)\n\n    if isinstance(returns, pd.DataFrame):\n        returns = returns[returns.columns[0]]\n\n    return returns\n\n\ndef sharpe_ratio(returns, rf=0.0, periods=365, annualize=True, smart=False):\n    \"\"\"\n    Calculates the sharpe ratio of access returns\n    \"\"\"\n    returns = _prepare_returns(returns, rf, periods)\n    divisor = returns.std(ddof=1)\n\n    if smart:\n        divisor = divisor * autocorr_penalty(returns)\n\n    res = returns.mean() / divisor\n\n    if annualize:\n        res = res * np.sqrt(1 if periods is None else periods)\n\n    # Always convert to pandas Series\n    return pd.Series([res])\n\n\ndef sortino_ratio(returns, rf=0, periods=365, annualize=True, smart=False):\n    \"\"\"\n    Calculates the sortino ratio of access returns\n    \"\"\"\n    returns = _prepare_returns(returns, rf, periods)\n\n    downside = np.sqrt((returns[returns < 0] ** 2).sum() / len(returns))\n\n    # Handle division by zero\n    if downside == 0:\n        res = np.inf if returns.mean() > 0 else -np.inf\n    else:\n        if smart:\n            downside = downside * autocorr_penalty(returns)\n\n        res = returns.mean() / downside\n\n        if annualize:\n            res = res * np.sqrt(1 if periods is None else periods)\n\n    # Always convert to pandas Series\n    return pd.Series([res])\n\n\ndef autocorr_penalty(returns):\n    \"\"\"\n    Calculates the autocorrelation penalty for returns\n    \"\"\"\n    num = len(returns)\n    coef = np.abs(np.corrcoef(returns[:-1], returns[1:])[0, 1])\n    corr = [((num - x) / num) * coef**x for x in range(1, num)]\n    return np.sqrt(1 + 2 * np.sum(corr))\n\n\ndef calmar_ratio(returns):\n    \"\"\"\n    Calculates the calmar ratio (CAGR% / MaxDD%)\n    \"\"\"\n    # Get daily returns\n    returns = _prepare_returns(returns)\n\n    # Calculate CAGR exactly as in cagr() function\n    first_value = 1\n    last_value = (1 + returns).prod()\n    days = (returns.index[-1] - returns.index[0]).days\n    years = float(days) / 365\n\n    if years == 0:\n        return pd.Series([0.0])\n\n    # Prevent overflow by limiting the ratio\n    ratio = last_value / first_value\n    # Clip ratio to prevent overflow in power calculation\n    ratio = np.clip(ratio, 1e-10, 1e10)\n    with np.errstate(over='ignore', under='ignore'):\n        cagr_ratio = ratio ** (1 / years) - 1\n\n    # Calculate Max Drawdown using cumulative returns\n    cum_returns = (1 + returns).cumprod()\n    rolling_max = cum_returns.expanding(min_periods=1).max()\n    drawdown = cum_returns / rolling_max - 1\n    max_dd = abs(drawdown.min())\n\n    # Calculate Calmar\n    result = cagr_ratio / max_dd if max_dd != 0 else 0\n\n    # Always convert to pandas Series\n    return pd.Series([result])\n\n\ndef max_drawdown(returns):\n    \"\"\"\n    Calculates the maximum drawdown\n    \"\"\"\n    prices = (returns + 1).cumprod()\n    result = (prices / prices.expanding(min_periods=0).max()).min() - 1\n\n    # Always convert to pandas Series\n    return pd.Series([result])\n\n\ndef calculate_max_underwater_period(daily_balance: list) -> int:\n    \"\"\"\n    Calculate the maximum time it takes for balance to recover from a drawdown\n    Args:\n        daily_balance: List of daily balances\n    Returns:\n        Maximum underwater period in days\n    \"\"\"\n    if len(daily_balance) < 2:\n        return 0\n\n    max_period = 0\n    current_peak = daily_balance[0]\n    peak_date_index = 0\n\n    for i in range(1, len(daily_balance)):\n        current_balance = daily_balance[i]\n\n        # if we've recovered to or above the previous peak, update the peak\n        if current_balance >= current_peak:\n            current_peak = current_balance\n            peak_date_index = i\n\n        # if we're below the previous peak, calculate underwater period\n        else:\n            days_underwater = i - peak_date_index\n\n            # update max period if this is the longest underwater period so far\n            if days_underwater > max_period:\n                max_period = days_underwater\n\n    return max_period\n\n\ndef cagr(returns, rf=0.0, compounded=True, periods=365):\n    \"\"\"\n    Calculates the communicative annualized growth return (CAGR%)\n    \"\"\"\n    returns = _prepare_returns(returns, rf)\n\n    # Get first and last values of cumulative returns\n    first_value = 1\n    last_value = (1 + returns).prod()\n\n    # Calculate years exactly as quantstats does\n    days = (returns.index[-1] - returns.index[0]).days\n    years = float(days) / 365\n\n    # Handle edge case\n    if years == 0:\n        return pd.Series([0.0])\n\n    # Prevent overflow by limiting the ratio\n    ratio = last_value / first_value\n    # Clip ratio to prevent overflow in power calculation\n    ratio = np.clip(ratio, 1e-10, 1e10)\n    # Calculate CAGR using quantstats formula\n    with np.errstate(over='ignore', under='ignore'):\n        result = ratio ** (1 / years) - 1\n\n    return pd.Series([result])\n\n\ndef omega_ratio(returns, rf=0.0, required_return=0.0, periods=365):\n    \"\"\"\n    Determines the Omega ratio of a strategy\n    \"\"\"\n    returns = _prepare_returns(returns, rf, periods)\n\n    if periods == 1:\n        return_threshold = required_return\n    else:\n        return_threshold = (1 + required_return) ** (1.0 / periods) - 1\n\n    returns_less_thresh = returns - return_threshold\n    numer = returns_less_thresh[returns_less_thresh > 0.0].sum()\n    denom = -1.0 * returns_less_thresh[returns_less_thresh < 0.0].sum()\n\n    result = numer / denom if denom > 0.0 else np.nan\n\n    # Always convert to pandas Series\n    return pd.Series([result])\n\n\ndef serenity_index(returns, rf=0):\n    \"\"\"\n    Calculates the serenity index score\n    \"\"\"\n    dd = to_drawdown_series(returns)\n    pitfall = -conditional_value_at_risk(dd) / returns.std()\n    result = (returns.sum() - rf) / (ulcer_index(returns) * pitfall)\n\n    # Always convert to pandas Series\n    return pd.Series([result])\n\n\ndef ulcer_index(returns):\n    \"\"\"\n    Calculates the ulcer index score (downside risk measurement)\n    \"\"\"\n    dd = to_drawdown_series(returns)\n    return np.sqrt(np.divide((dd**2).sum(), returns.shape[0] - 1))\n\n\ndef to_drawdown_series(returns):\n    \"\"\"\n    Convert returns series to drawdown series\n    \"\"\"\n    prices = (1 + returns).cumprod()\n    dd = prices / np.maximum.accumulate(prices) - 1.0\n    return dd.replace([np.inf, -np.inf, -0], 0)\n\n\ndef conditional_value_at_risk(returns, sigma=1, confidence=0.95):\n    \"\"\"\n    Calculates the conditional daily value-at-risk (aka expected shortfall)\n    \"\"\"\n    if len(returns) < 2:\n        return 0\n\n    returns = _prepare_returns(returns)\n    # Sort returns from worst to best\n    sorted_returns = np.sort(returns)\n    # Find the index based on confidence level\n    index = int((1 - confidence) * len(sorted_returns))\n\n    # Handle empty slice warning\n    if index == 0:\n        return sorted_returns[0] if len(sorted_returns) > 0 else 0\n\n    # Calculate CVaR as the mean of worst losses\n    c_var = sorted_returns[:index].mean()\n    return c_var if ~np.isnan(c_var) else 0\n\n\ndef trades(trades_list: List[ClosedTrade], daily_balance: list, final: bool = True) -> dict:\n    starting_balance = 0\n    current_balance = 0\n\n    for e in store.exchanges.storage:\n        starting_balance += store.exchanges.storage[e].starting_assets[jh.app_currency()]\n        current_balance += store.exchanges.storage[e].assets[jh.app_currency()]\n\n    if not trades_list:\n        return {'total': 0, 'win_rate': 0, 'net_profit_percentage': 0}\n\n    df = pd.DataFrame.from_records([t.to_dict for t in trades_list])\n\n    total_completed = len(df)\n    winning_trades = df.loc[df['PNL'] > 0]\n    total_winning_trades = len(winning_trades)\n    losing_trades = df.loc[df['PNL'] < 0]\n    total_losing_trades = len(losing_trades)\n\n    arr = df['PNL'].to_numpy()\n    pos = np.clip(arr, 0, 1).astype(bool).cumsum()\n    neg = np.clip(arr, -1, 0).astype(bool).cumsum()\n    current_streak = np.where(arr >= 0, pos - np.maximum.accumulate(np.where(arr <= 0, pos, 0)),\n                              -neg + np.maximum.accumulate(np.where(arr >= 0, neg, 0)))\n\n    s_min = current_streak.min()\n    losing_streak = 0 if s_min > 0 else abs(s_min)\n\n    s_max = current_streak.max()\n    winning_streak = max(s_max, 0)\n\n    largest_losing_trade = 0 if total_losing_trades == 0 else losing_trades['PNL'].min()\n    largest_winning_trade = 0 if total_winning_trades == 0 else winning_trades['PNL'].max()\n    if len(winning_trades) == 0:\n        win_rate = 0\n    else:\n        win_rate = len(winning_trades) / (len(losing_trades) + len(winning_trades))\n\n    # calculate the long and short win rate\n    winning_longs = df.loc[(df['type'] == 'long') & (df['PNL'] > 0)]\n    losing_longs = df.loc[(df['type'] == 'long') & (df['PNL'] < 0)]\n    win_rate_longs = len(winning_longs) / (len(losing_longs) + len(winning_longs)) if (len(losing_longs) + len(winning_longs)) > 0 else 0\n\n    winning_shorts = df.loc[(df['type'] == 'short') & (df['PNL'] > 0)]\n    losing_shorts = df.loc[(df['type'] == 'short') & (df['PNL'] < 0)]\n    win_rate_shorts = len(winning_shorts) / (len(losing_shorts) + len(winning_shorts)) if (len(losing_shorts) + len(winning_shorts)) > 0 else 0\n\n    longs_count = len(df.loc[df['type'] == 'long'])\n    shorts_count = len(df.loc[df['type'] == 'short'])\n    longs_percentage = longs_count / (longs_count + shorts_count) * 100\n    shorts_percentage = 100 - longs_percentage\n    fee = df['fee'].sum()\n    net_profit = df['PNL'].sum()\n    net_profit_percentage = (net_profit / starting_balance) * 100\n    average_win = winning_trades['PNL'].mean()\n    average_loss = abs(losing_trades['PNL'].mean())\n    ratio_avg_win_loss = average_win / average_loss\n    expectancy = (0 if np.isnan(average_win) else average_win) * win_rate - (\n        0 if np.isnan(average_loss) else average_loss) * (1 - win_rate)\n    expectancy = expectancy\n    expectancy_percentage = (expectancy / starting_balance) * 100\n    expected_net_profit_every_100_trades = expectancy_percentage * 100\n    average_holding_period = df['holding_period'].mean()\n    average_winning_holding_period = winning_trades['holding_period'].mean()\n    average_losing_holding_period = losing_trades['holding_period'].mean()\n    gross_profit = winning_trades['PNL'].sum()\n    gross_loss = losing_trades['PNL'].sum()\n\n    start_date = datetime.fromtimestamp(store.app.starting_time / 1000)\n    date_index = pd.date_range(start=start_date, periods=len(daily_balance))\n\n    daily_return = pd.DataFrame(daily_balance, index=date_index).pct_change(1)\n\n    total_open_trades = store.app.total_open_trades\n    open_pl = store.app.total_open_pl\n\n    # Helper function to safely convert values\n    def safe_convert(value, convert_type=float):\n        try:\n            if isinstance(value, pd.Series):\n                value = value.iloc[0]\n            if np.isnan(value):\n                return np.nan\n            return convert_type(value)\n        except BaseException:\n            return np.nan\n\n    # Calculate metrics using 365 days for crypto markets\n    max_dd = np.nan if len(daily_return) < 2 else max_drawdown(daily_return).iloc[0] * 100\n    max_underwater_period = np.nan if len(daily_balance) < 2 else calculate_max_underwater_period(daily_balance)\n    annual_return = np.nan if len(daily_return) < 2 else cagr(daily_return, periods=365).iloc[0] * 100\n    sharpe = np.nan if len(daily_return) < 2 else sharpe_ratio(daily_return, periods=365).iloc[0]\n    calmar = np.nan if len(daily_return) < 2 else calmar_ratio(daily_return).iloc[0]\n    sortino = np.nan if len(daily_return) < 2 else sortino_ratio(daily_return, periods=365).iloc[0]\n    omega = np.nan if len(daily_return) < 2 else omega_ratio(daily_return, periods=365).iloc[0]\n    serenity = np.nan if len(daily_return) < 2 else serenity_index(daily_return).iloc[0]\n\n    return {\n        'total': safe_convert(total_completed, int),\n        'total_winning_trades': safe_convert(total_winning_trades, int),\n        'total_losing_trades': safe_convert(total_losing_trades, int),\n        'starting_balance': safe_convert(starting_balance),\n        'finishing_balance': safe_convert(current_balance),\n        'win_rate': safe_convert(win_rate),\n        'win_rate_longs': safe_convert(win_rate_longs),\n        'win_rate_shorts': safe_convert(win_rate_shorts),\n        'ratio_avg_win_loss': safe_convert(ratio_avg_win_loss),\n        'longs_count': safe_convert(longs_count, int),\n        'longs_percentage': safe_convert(longs_percentage),\n        'shorts_percentage': safe_convert(shorts_percentage),\n        'shorts_count': safe_convert(shorts_count, int),\n        'fee': safe_convert(fee),\n        'net_profit': safe_convert(net_profit),\n        'net_profit_percentage': safe_convert(net_profit_percentage),\n        'average_win': safe_convert(average_win),\n        'average_loss': safe_convert(average_loss),\n        'expectancy': safe_convert(expectancy),\n        'expectancy_percentage': safe_convert(expectancy_percentage),\n        'expected_net_profit_every_100_trades': safe_convert(expected_net_profit_every_100_trades),\n        'average_holding_period': safe_convert(average_holding_period),\n        'average_winning_holding_period': safe_convert(average_winning_holding_period),\n        'average_losing_holding_period': safe_convert(average_losing_holding_period),\n        'gross_profit': safe_convert(gross_profit),\n        'gross_loss': safe_convert(gross_loss),\n        'max_drawdown': safe_convert(max_dd),\n        'max_underwater_period': safe_convert(max_underwater_period),\n        'annual_return': safe_convert(annual_return),\n        'sharpe_ratio': safe_convert(sharpe),\n        'calmar_ratio': safe_convert(calmar),\n        'sortino_ratio': safe_convert(sortino),\n        'omega_ratio': safe_convert(omega),\n        'serenity_index': safe_convert(serenity),\n        'total_open_trades': safe_convert(total_open_trades, int),\n        'open_pl': safe_convert(open_pl),\n        'winning_streak': safe_convert(winning_streak, int),\n        'losing_streak': safe_convert(losing_streak, int),\n        'largest_losing_trade': safe_convert(largest_losing_trade),\n        'largest_winning_trade': safe_convert(largest_winning_trade),\n        'current_streak': safe_convert(current_streak[-1], int),\n    }\n\n\ndef hyperparameters(routes_arr: list) -> list:\n    if routes_arr[0].strategy.hp is None:\n        return []\n    # only for the first route\n    hp = []\n\n    # add DNA\n    dna_value = routes_arr[0].strategy.dna()\n    if dna_value is not None and len(dna_value) > 16:\n        formatted_dna = f\"{dna_value[:5]}*****{dna_value[-5:]}\"\n        hp.append(['DNA', formatted_dna])\n    else:\n        hp.append(['DNA', dna_value])\n\n    # add hyperparameters\n    for key in routes_arr[0].strategy.hp:\n        hp.append([\n            key, routes_arr[0].strategy.hp[key]\n        ])\n    return hp\n"
  },
  {
    "path": "jesse/services/migrator.py",
    "content": "from jesse.services.db import database\nfrom playhouse.migrate import *\nfrom jesse.enums import migration_actions\n\n\ndef run():\n    \"\"\"\n    Runs migrations per each table and adds new fields in case they have not been added yet.\n\n    Accepted action types: add, drop, rename, modify_type, allow_null, deny_null\n    If actions type is 'rename', you must add new field with 'old_name' key.\n    To make column to not nullable, you must clean all null value of columns.\n    \"\"\"\n    print('Checking for new database migrations...\\n')\n\n    database.open_connection()\n\n    # create migrator\n    migrator = PostgresqlMigrator(database.db)\n    # run migrations\n    _candle(migrator)\n    _completed_trade(migrator)\n    _closed_trade(migrator)\n    _log(migrator)\n    _order(migrator)\n    _orderbook(migrator)\n    _ticker(migrator)\n    _trade(migrator)\n    _exchange_api_keys(migrator)\n    _optimization_session(migrator)\n    _monte_carlo_session(migrator)\n\n    # create initial tables\n    from jesse.models import Candle, ClosedTrade, Log, Order, OpenTab, LiveEquitySnapshot\n    database.db.create_tables([Candle, ClosedTrade, Log, Order, OpenTab, LiveEquitySnapshot])\n\n    database.close_connection()\n\n\ndef _candle(migrator):\n    fields = [\n        {'action': migration_actions.ADD, 'name': 'timeframe', 'type': CharField(index=False, null=True)},\n        {'action': migration_actions.DROP_INDEX, 'indexes': ('exchange', 'symbol', 'timestamp')},\n        {'action': migration_actions.ADD_INDEX, 'indexes': ('exchange', 'symbol', 'timeframe', 'timestamp'), 'is_unique': True},\n    ]\n\n    if 'candle' in database.db.get_tables():\n        candle_columns = database.db.get_columns('candle')\n        _migrate(migrator, fields, candle_columns, 'candle')\n\n\ndef _completed_trade(migrator):\n    fields = []\n\n    if 'completedtrade' in database.db.get_tables():\n        completedtrade_columns = database.db.get_columns('completedtrade')\n        _migrate(migrator, fields, completedtrade_columns, 'completedtrade')\n\n\ndef _closed_trade(migrator):\n    fields = [\n        {'action': migration_actions.ADD, 'name': 'session_id', 'type': UUIDField(null=True)},\n        {'action': migration_actions.ADD, 'name': 'created_at', 'type': BigIntegerField(null=True)},\n        {'action': migration_actions.ADD, 'name': 'updated_at', 'type': BigIntegerField(null=True)},\n        {'action': migration_actions.ADD, 'name': 'session_mode', 'type': CharField(null=True)},\n        {'action': migration_actions.ADD, 'name': 'soft_deleted_at', 'type': BigIntegerField(null=True)},\n        {'action': migration_actions.ALLOW_NULL, 'name': 'closed_at', 'type': BigIntegerField(null=True)},\n        {'action': migration_actions.ADD_INDEX, 'indexes': ('session_id',), 'is_unique': False},\n    ]\n\n    if 'closedtrade' in database.db.get_tables():\n        closedtrade_columns = database.db.get_columns('closedtrade')\n        _migrate(migrator, fields, closedtrade_columns, 'closedtrade')\n\n\ndef _log(migrator):\n    fields = []\n\n    if 'log' in database.db.get_tables():\n        log_columns = database.db.get_columns('log')\n        _migrate(migrator, fields, log_columns, 'log')\n\n\ndef _order(migrator):\n    fields = [\n        {'action': migration_actions.ADD, 'name': 'updated_at', 'type': BigIntegerField(null=True)},\n        {'action': migration_actions.ADD, 'name': 'session_mode', 'type': CharField(null=True)},\n        {'action': migration_actions.ADD, 'name': 'jesse_submitted', 'type': BooleanField(default=True)},\n        {'action': migration_actions.ADD, 'name': 'submitted_via', 'type': CharField(null=True)},\n        {'action': migration_actions.ADD, 'name': 'order_exist_in_exchange', 'type': BooleanField(default=True)},\n        {'action': migration_actions.ADD, 'name': 'fee', 'type': FloatField(null=True)},\n        {'action': migration_actions.ADD_INDEX, 'indexes': ('session_id',), 'is_unique': False},\n    ]\n\n    if 'order' in database.db.get_tables():\n        order_columns = database.db.get_columns('order')\n        _migrate(migrator, fields, order_columns, 'order')\n\n\ndef _orderbook(migrator):\n    fields = []\n\n    if 'orderbook' in database.db.get_tables():\n        orderbook_columns = database.db.get_columns('orderbook')\n        _migrate(migrator, fields, orderbook_columns, 'orderbook')\n\n\ndef _ticker(migrator):\n    fields = []\n\n    if 'ticker' in database.db.get_tables():\n        ticker_columns = database.db.get_columns('ticker')\n        _migrate(migrator, fields, ticker_columns, 'ticker')\n\n\ndef _trade(migrator):\n    fields = []\n\n    if 'trade' in database.db.get_tables():\n        trade_columns = database.db.get_columns('trade')\n        _migrate(migrator, fields, trade_columns, 'trade')\n\n\ndef _exchange_api_keys(migrator):\n    fields = []\n\n    if 'exchange_api_keys' in database.db.get_tables():\n        exchange_api_keys_columns = database.db.get_columns('exchange_api_keys')\n        _migrate(migrator, fields, exchange_api_keys_columns, 'exchange_api_keys')\n\n\ndef _optimization_session(migrator):\n    fields = [\n        {'action': migration_actions.ADD, 'name': 'title', 'type': CharField(max_length=255, null=True)},\n        {'action': migration_actions.ADD, 'name': 'description', 'type': TextField(null=True)},\n        {'action': migration_actions.ADD, 'name': 'strategy_codes', 'type': TextField(null=True)},\n    ]\n\n    if 'optimizationsession' in database.db.get_tables():\n        optimization_session_columns = database.db.get_columns('optimizationsession')\n        _migrate(migrator, fields, optimization_session_columns, 'optimizationsession')\n\n\ndef _monte_carlo_session(migrator):\n    fields = [\n        {'action': migration_actions.ADD, 'name': 'strategy_codes', 'type': TextField(null=True)},\n    ]\n\n    if 'montecarlosession' in database.db.get_tables():\n        monte_carlo_session_columns = database.db.get_columns('montecarlosession')\n        _migrate(migrator, fields, monte_carlo_session_columns, 'montecarlosession')\n\n\ndef _migrate(migrator, fields, columns, table):\n    for field in fields:\n        if field['action'] in [migration_actions.ADD_INDEX, migration_actions.DROP_INDEX]:\n            indexes: list = database.db.get_indexes(table)\n            to_migrate_indexes: list = field['indexes']\n            to_migrate_indexes_str = f'{table}_'\n            for t in to_migrate_indexes:\n                to_migrate_indexes_str += f'{t}_'\n            to_migrate_indexes_str = to_migrate_indexes_str[:-1]\n            already_exists = False\n            for index in indexes:\n                existing_indexes_str: list = index.name\n                if to_migrate_indexes_str == existing_indexes_str:\n                    already_exists = True\n                    break\n            if field['action'] == migration_actions.ADD_INDEX:\n                if not already_exists:\n                    migrate(\n                        migrator.add_index(table, field['indexes'], field['is_unique'])\n                    )\n                    print(f'Added index {field[\"indexes\"]} to {table}')\n            if field['action'] == migration_actions.DROP_INDEX:\n                if already_exists:\n                    migrate(\n                        migrator.drop_index(table, to_migrate_indexes_str)\n                    )\n                    print(f'Dropped index {field[\"indexes\"]} from the \"{table}\" table')\n        else: # else, fist check if the field exists\n            column_name_exist = any(field['name'] == item.name for item in columns)\n            if column_name_exist:\n                if field['action'] == migration_actions.ADD:\n                    pass\n                elif field['action'] == migration_actions.DROP:\n                    migrate(\n                        migrator.drop_column(table, field['name'])\n                    )\n                    print(f\"Successfully dropped '{field['name']}' column from the \"'{table}'\" table.\")\n                elif field['action'] == migration_actions.RENAME:\n                    migrate(\n                        migrator.rename_column(table, field['name'], field['new_name'])\n                    )\n                    print(f\"'{field['name']}' column successfully changed to {field['new_name']} in the '{table}' table.\")\n                elif field['action'] == migration_actions.MODIFY_TYPE:\n                    migrate(\n                        migrator.alter_column_type(table, field['name'], field['type'])\n                    )\n                    print(\n                        f\"'{field['name']}' field's type was successfully changed to {field['type']} in the '{table}' table.\")\n                elif field['action'] == migration_actions.ALLOW_NULL:\n                    # Check if column is already nullable\n                    column = next(item for item in columns if item.name == field['name'])\n                    if not column.null:\n                        migrate(\n                            migrator.drop_not_null(table, field['name'])\n                        )\n                        print(f\"'{field['name']}' column successfully updated to accept nullable values in the '{table}' table.\")\n                elif field['action'] == migration_actions.DENY_NULL:\n                    # Check if column is already non-nullable\n                    column = next(item for item in columns if item.name == field['name'])\n                    if column.null:\n                        migrate(\n                            migrator.add_not_null(table, field['name'])\n                        )\n                        print(\n                            f\"'{field['name']}' column successfully updated to accept to reject nullable values in the '{table}' table.\")\n            # if column name doesn't not already exist\n            else:\n                if field['action'] == migration_actions.ADD:\n                    migrate(\n                        migrator.add_column(table, field['name'], field['type'])\n                    )\n                    print(f\"'{field['name']}' column successfully added to '{table}' table.\")\n                else:\n                    print(f\"'{field['name']}' field does not exist in '{table}' table.\")\n"
  },
  {
    "path": "jesse/services/multiprocessing.py",
    "content": "import threading\nimport time\nfrom typing import List\nimport multiprocessing as mp\nimport traceback\nfrom jesse.services.redis import sync_publish, sync_redis\nfrom jesse.services.failure import terminate_session\nimport jesse.helpers as jh\nfrom jesse.services.env import ENV_VALUES\nimport os\nimport signal\n\n# set multiprocessing process type to spawn\nmp.set_start_method('spawn', force=True)\n\n\nclass Process(mp.Process):\n    def __init__(self, *args, **kwargs):\n        mp.Process.__init__(self, *args, **kwargs)\n\n    def run(self):\n        try:\n            mp.Process.run(self)\n        except Exception as e:\n            if type(e).__name__ == 'Termination':\n                sync_publish('termination', {})\n                jh.terminate_app()\n            else:\n                sync_publish(\n                    'exception',\n                    {\n                        'error': f'{type(e).__name__}: {e}',\n                        'traceback': str(traceback.format_exc()),\n                    },\n                )\n\n                print('Unhandled exception in the process:')\n                print(traceback.format_exc())\n\n                terminate_session()\n\n\nclass ProcessManager:\n    def __init__(self):\n        self._workers: List[Process] = []\n        self._pid_to_client_id_map = {}\n        self.client_id_to_pid_to_map = {}\n        try:\n            port = ENV_VALUES.get('APP_PORT', '9000')\n        except:\n            port = '9000'\n            \n        self._active_workers_key = f\"{port}|active-processes\"\n        self._cleanup_thread = threading.Thread(target=self._cleanup_finished_workers, daemon=True)\n        self._cleanup_thread.start()\n\n    def _reset(self):\n        self._workers = []\n        self._pid_to_client_id_map = {}\n        self.client_id_to_pid_to_map = {}\n        # clear all process status\n        sync_redis.delete(self._active_workers_key)\n\n    @staticmethod\n    def _prefixed_pid(pid):\n        return f\"{ENV_VALUES['APP_PORT']}|{pid}\"\n\n    @staticmethod\n    def _prefixed_client_id(client_id):\n        return f\"{ENV_VALUES['APP_PORT']}|{client_id}\"\n\n    def _add_process(self, client_id):\n        sync_redis.sadd(self._active_workers_key, client_id)\n\n    def add_task(self, function, *args):\n        client_id = args[0]\n        w = Process(target=function, args=args)\n        self._workers.append(w)\n        w.start()\n\n        self._pid_to_client_id_map[self._prefixed_pid(w.pid)] = self._prefixed_client_id(client_id)\n        self.client_id_to_pid_to_map[self._prefixed_client_id(client_id)] = self._prefixed_pid(w.pid)\n        self._add_process(client_id)\n\n    def get_client_id(self, pid):\n        try:\n            client_id: str = self._pid_to_client_id_map[self._prefixed_pid(pid)]\n        except KeyError:\n            return None\n        return jh.string_after_character(client_id, '|')\n\n    def get_pid(self, client_id):\n        return self.client_id_to_pid_to_map[self._prefixed_client_id(client_id)]\n\n    def cancel_process(self, client_id):\n        sync_redis.srem(self._active_workers_key, client_id)\n\n    def flush(self):\n        for w in self._workers:\n            try:\n                # Try terminate first\n                w.terminate()\n                # Give it a moment to terminate gracefully\n                w.join(timeout=3)\n                \n                # If still alive, wait a brief moment then force kill\n                if w.is_alive():\n                    time.sleep(0.5)  # Give terminate a chance to complete\n                    os.kill(w.pid, signal.SIGKILL)\n                    \n                w.close()\n            except Exception as e:\n                jh.debug(f\"Error while terminating process: {str(e)}\")\n                \n        self._reset()\n\n    def _cleanup_finished_workers(self):\n        while True:\n            try:\n                for w in self._workers[:]:  # Create a copy of the list to avoid modification during iteration\n                    if not w.is_alive():\n                        try:\n                            # Get the client_id for this worker before removing it\n                            client_id = self.get_client_id(w.pid)\n                            \n                            w.join(timeout=1)\n                            w.close()\n                            self._workers.remove(w)\n                            \n                            # Remove from Redis active workers set\n                            if client_id:\n                                sync_redis.srem(self._active_workers_key, client_id)\n                                jh.debug(f\"Removed finished worker {client_id} from active workers\")\n                        except Exception as e:\n                            jh.debug(f\"Error during worker cleanup: {str(e)}\")\n            except Exception as e:\n                jh.debug(f\"Error in cleanup thread: {str(e)}\")\n            time.sleep(5)\n\n    @property\n    def active_workers(self) -> set:\n        \"\"\"\n        Returns the set of all the processes client_id as a list of strings\n        \"\"\"\n        return {client_id.decode('utf-8') for client_id in sync_redis.smembers(self._active_workers_key)}\n\n\nprocess_manager = ProcessManager()\n"
  },
  {
    "path": "jesse/services/notifier.py",
    "content": "import requests\nimport jesse.helpers as jh\nfrom timeloop import Timeloop\nfrom datetime import timedelta\n\nMSG_QUEUE = []\n\n\ndef start_notifier_loop():\n    \"\"\"\n    a constant running loop that runs in a separate thread and\n    checks for new messages in the msg_queue. If there are\n    any, it sends them by calling _telegram() and _discord()\n    \"\"\"\n    from jesse.store import store\n    from jesse.services.transformers import get_notification_api_key\n\n    tl = Timeloop()\n    @tl.job(interval=timedelta(seconds=0.5))\n    def handle_time():\n        if len(MSG_QUEUE) > 0:\n            msg = MSG_QUEUE.pop(0)\n\n            notification_keys = get_notification_api_key(store.app.notifications_api_key, protect_sensitive_data=False) if store.app.notifications_api_key else None\n\n            if msg['type'] == 'info':\n                if msg['webhook'] is None and notification_keys:\n                    if notification_keys['driver'] == 'telegram':\n                        _telegram(msg['content'], notification_keys['bot_token'], notification_keys['chat_id'])\n                    elif notification_keys['driver'] == 'discord':\n                        _discord(msg['content'], webhook_address=notification_keys['webhook'])\n                    elif notification_keys['driver'] == 'slack':\n                        _slack(msg['content'], webhook_address=notification_keys['webhook'])\n                elif notification_keys:\n                    _custom_channel_notification(msg)\n\n            # elif msg['type'] == 'error' and error_notifications:\n            #     if error_notifications['driver'] == 'telegram':\n            #         _telegram_errors(msg['content'], error_notifications['bot_token'], error_notifications['chat_id'])\n            #     elif error_notifications['driver'] == 'discord':\n            #         _discord(msg['content'], webhook_address=error_notifications['webhook'])\n            #     elif error_notifications['driver'] == 'slack':\n            #         _slack(msg['content'], webhook_address=error_notifications['webhook'])\n            else:\n                raise ValueError(f'Unknown message type: {msg[\"type\"]}')\n\n    tl.start()\n\n\ndef notify(msg: str, webhook=None) -> None:\n    \"\"\"\n    sends notifications to \"main_telegram_bot\" which is supposed to receive messages.\n    \"\"\"\n    msg = _format_msg(msg)\n\n    # Notification drivers don't accept text with more than 2000 characters.\n    # So if that's the case limit it to the last 2000 characters.\n    if len(msg) > 2000:\n        msg = msg[-2000:]\n\n    MSG_QUEUE.append({'type': 'info', 'content': msg, 'webhook': webhook})\n\n\ndef _telegram(msg: str, token: str, chat_id: str) -> None:\n    from jesse.services import logger\n\n    if not token or not jh.get_config('env.notifications.enabled'):\n        return\n\n    try:\n        response = requests.get(\n            f'https://api.telegram.org/bot{token}/sendMessage?chat_id={chat_id}&parse_mode=Markdown&text={msg}'\n        )\n        if response.status_code // 100 != 2:\n            err_msg = f'Telegram ERROR [{response.status_code}]: {response.text}'\n            if response.status_code // 100 == 4:\n                err_msg += f'\\nParameters: {msg}'\n            logger.error(err_msg, send_notification=False)\n    except requests.exceptions.ConnectionError:\n        logger.error('Telegram ERROR: ConnectionError', send_notification=False)\n\n\ndef _discord(msg: str, webhook_address=None) -> None:\n    from jesse.services import logger\n\n    if not jh.get_config('env.notifications.enabled'):\n        return\n\n    try:\n        response = requests.post(webhook_address, {'content': msg})\n        if response.status_code // 100 != 2:\n            err_msg = f'Discord ERROR [{response.status_code}]: {response.text}'\n            if response.status_code // 100 == 4:\n                err_msg += f'\\nParameters: {msg}'\n            logger.error(err_msg, send_notification=False)\n    except requests.exceptions.ConnectionError:\n        logger.error('Discord ERROR: ConnectionError', send_notification=False)\n\n\ndef _slack(msg: str, webhook_address) -> None:\n    from jesse.services import logger\n\n    if not jh.get_config('env.notifications.enabled'):\n        return\n\n    payload = {\n        \"text\": msg\n    }\n\n    try:\n        response = requests.post(webhook_address, json=payload)\n        if response.status_code // 100 != 2:\n            err_msg = f'Slack ERROR [{response.status_code}]: {response.text}'\n            if response.status_code // 100 == 4:\n                err_msg += f'\\nParameters: {msg}'\n            logger.error(err_msg, send_notification=False)\n    except requests.exceptions.ConnectionError:\n        logger.error('Slack ERROR: ConnectionError', send_notification=False)\n\n\ndef _custom_channel_notification(msg: dict):\n    webhook = msg['webhook']\n\n    if webhook.startswith('https://hooks.slack.com'):\n        # a slack webhook\n        _slack(msg['content'], webhook)\n    elif webhook.startswith('https://discord.com/api/webhooks'):\n        # a discord webhook\n        _discord(msg['content'], webhook)\n    else:\n        raise ValueError(f'Custom Webhook {webhook}. seems to be neither a discord or slack webhook')\n\n\ndef _format_msg(msg: str) -> str:\n    # if \"_\" exists in the message, replace it with \"\\_\"\n    msg = msg.replace('_', '\\_')\n    # # if \"*\" exists in the message, replace it with \"\\*\"\n    # msg = msg.replace('*', '\\*')\n    # # if \"[\" exists in the message, replace it with \"\\[\"\n    # msg = msg.replace('[', '\\[')\n    # # if \"]\" exists in the message, replace it with \"\\}\"\n    # msg = msg.replace(']', '\\]')\n    return msg\n"
  },
  {
    "path": "jesse/services/order_service.py",
    "content": "from typing import List\nimport jesse.helpers as jh\nimport jesse.services.logger as logger\nfrom jesse.config import config\nfrom jesse.services.notifier import notify\nfrom jesse.enums import order_statuses\nfrom jesse.models.Order import Order\nfrom jesse.store import store\nfrom jesse.repositories import order_repository\nfrom jesse.enums import order_types\nfrom jesse.services import closed_trade_service\nfrom jesse.services import position_service\n\n\ndef create_order(attributes: dict, should_silent: bool = False, should_store: bool = True) -> Order:\n    if attributes.get('created_at') is None:\n        attributes['created_at'] = jh.now_to_timestamp()\n    \n    order = Order(attributes)\n    \n    # if for example we are in a live trade mode:\n    if not should_silent:\n        if jh.is_live():\n            _notify_submission(order)\n        \n        if jh.is_debuggable('order_submission') and (order.is_active or order.is_queued):\n            txt: str = f'{\"QUEUED\" if order.is_queued else \"SUBMITTED\"} order: {order.symbol}, {order.type}, {order.side}, {order.qty}'\n            if order.price:\n                txt += f', ${jh.format_price(order.price)}'\n            logger.info(txt)\n    \n    # If it's an order to close pre-existing positions, we don't want to include it in calculations.\n    if should_store:\n        e = store.exchanges.get_exchange(order.exchange)\n        e.on_order_submission(order)\n\n        store.orders.add_order(order)\n\n        # if it's paper trading or backtesting (basicly not live trading), we add the order to the to_execute list to later simulate the execution.\n        if not jh.is_livetrading() and order.type == order_types.MARKET:\n            store.orders.to_execute.append(order)\n        \n        # if it's live/paper trading, we store the order in the database.\n        if jh.is_live():\n            order_repository.store_or_update(order)\n    \n    return order\n\n\ndef execute_order(order: Order, silent: bool = False) -> None:\n    if order.is_canceled or order.is_executed:\n        return\n    \n    order.executed_at = jh.now_to_timestamp()\n    order.status = order_statuses.EXECUTED\n    order.fee = order.fee or None\n\n    # if it's not live trading, we set the filled qty to the qty. \n    if not jh.is_livetrading():\n        order.filled_qty = order.qty\n    \n    # set order fee for non-live modes if not already set. In live trading, the fee is fetched by the exchange.\n    if not jh.is_livetrading() and order.fee is None:\n        fee_rate = jh.get_config(f'env.exchanges.{order.exchange}.fee')\n        notional = abs(order.filled_qty or order.qty) * order.price\n        order.fee = fee_rate * notional\n\n    if not silent:\n        txt = f'EXECUTED order: {order.symbol}, {order.type}, {order.side}, {order.qty}'\n        if order.price:\n            txt += f', ${jh.format_price(order.price)}'\n        \n        if jh.is_debuggable('order_execution'):\n            logger.info(txt)\n        \n        if jh.is_live():\n            if config['env']['notifications']['events']['executed_orders']:\n                notify(txt)\n    \n    closed_trade_service.add_executed_order(order)\n    \n    e = store.exchanges.get_exchange(order.exchange)\n    e.on_order_execution(order)\n    \n    p = store.positions.get_position(order.exchange, order.symbol)\n    if p:\n        position_service.on_executed_order(p, order)\n\n\ndef execute_order_partially(order: Order, silent: bool = False) -> None:\n    order.executed_at = jh.now_to_timestamp()\n    order.status = order_statuses.PARTIALLY_FILLED\n    \n    # set order fee for non-live modes if not already set. In live trading, the fee is fetched by the exchange.\n    if not jh.is_livetrading() and order.fee is None:\n        fee_rate = jh.get_config(f'env.exchanges.{order.exchange}.fee')\n        notional = abs(order.filled_qty or order.qty) * order.price\n        order.fee = fee_rate * notional\n    \n    if not silent:\n        txt = f\"PARTIALLY FILLED: {order.symbol}, {order.type}, {order.side}, filled qty: {order.filled_qty}, remaining qty: {order.remaining_qty}, price: {jh.format_price(order.price)}\"\n        \n        if jh.is_debuggable('order_execution'):\n            logger.info(txt)\n        \n        if jh.is_live():\n            if config['env']['notifications']['events']['executed_orders']:\n                notify(txt)\n    \n    closed_trade_service.add_executed_order(order)\n    \n    p = store.positions.get_position(order.exchange, order.symbol)\n    \n    if p:\n        position_service.on_executed_order(p, order)\n\n\ndef execute_simulated_market_orders() -> None:\n    if not store.orders.to_execute:\n        return\n\n    for o in store.orders.to_execute:\n        execute_order(o)\n\n    store.orders.to_execute = []\n\n\ndef cancel_order(order: Order, silent: bool = False, source: str = '') -> None:\n    if order.is_canceled or order.is_executed:\n        return\n    \n    if source == 'stream' and order.is_queued:\n        return\n    \n    order.canceled_at = jh.now_to_timestamp()\n    order.status = order_statuses.CANCELED\n    \n    if not silent:\n        txt = f'CANCELED order: {order.symbol}, {order.type}, {order.side}, {order.qty}'\n        if order.price:\n            txt += f', ${jh.format_price(order.price)}'\n        if jh.is_debuggable('order_cancellation'):\n            logger.info(txt)\n        if jh.is_live():\n            if config['env']['notifications']['events']['cancelled_orders']:\n                notify(txt)\n    \n    e = store.exchanges.get_exchange(order.exchange)\n    e.on_order_cancellation(order)\n\n\ndef queue_order(order: Order) -> None:\n    order.status = order_statuses.QUEUED\n    order.canceled_at = None\n    if jh.is_debuggable('order_submission'):\n        txt = f'QUEUED order: {order.symbol}, {order.type}, {order.side}, {order.qty}'\n        if order.price:\n            txt += f', ${jh.format_price(order.price)}'\n            logger.info(txt)\n    _notify_submission(order)\n\n\ndef resubmit_order(order: Order) -> None:\n    if not order.is_queued:\n        raise Exception(f'Cannot resubmit an order that is not queued. Current status: {order.status}')\n    \n    order.id = jh.generate_unique_id()\n    order.status = order_statuses.ACTIVE\n    order.canceled_at = None\n    if jh.is_debuggable('order_submission'):\n        txt: str = f'SUBMITTED order: {order.symbol}, {order.type}, {order.side}, {order.qty}'\n        if order.price:\n            txt += f', ${jh.format_price(order.price)}'\n            logger.info(txt)\n    _notify_submission(order)\n\n\ndef _notify_submission(order: Order) -> None:\n    if config['env']['notifications']['events']['submitted_orders'] and (order.is_active or order.is_queued):\n        txt = f'{\"QUEUED\" if order.is_queued else \"SUBMITTED\"} order: {order.symbol}, {order.type}, {order.side}, {order.qty}'\n        if order.price:\n            txt += f', ${jh.format_price(order.price)}'\n        notify(txt)\n\n\ndef initialize_orders_state() -> None:\n    for exchange in config['app']['trading_exchanges']:\n        for symbol in config['app']['trading_symbols']:\n            key = f'{exchange}-{symbol}'\n            store.orders.storage[key] = []\n            store.orders.active_storage[key] = []\n\n\ndef get_entry_orders(exchange: str, symbol: str) -> List[Order]:\n    p = store.positions.get_position(exchange, symbol)\n    # return all orders if position is not opened yet\n    if p.is_close:\n        return store.orders.get_orders(exchange, symbol).copy()\n\n    all_orders = store.orders.get_active_orders(exchange, symbol)\n    p_side = jh.type_to_side(p.type)\n    entry_orders = [o for o in all_orders if (o.side == p_side and not o.is_canceled)]\n\n    return entry_orders\n\n\ndef get_exit_orders(exchange: str, symbol: str) -> List[Order]:\n    \"\"\"\n    excludes cancel orders but includes executed orders\n    \"\"\"\n    all_orders = store.orders.get_orders(exchange, symbol)\n    # return empty if no orders\n    if len(all_orders) == 0:\n        return []\n    # return empty if position is not opened yet\n    p = store.positions.get_position(exchange, symbol)\n    if p.is_close:\n        return []\n    else:\n        exit_orders = [o for o in all_orders if o.side != jh.type_to_side(p.type)]\n\n    # exclude cancelled orders\n    exit_orders = [o for o in exit_orders if not o.is_canceled]\n\n    return exit_orders\n\n\ndef get_active_exit_orders(exchange: str, symbol: str) -> List[Order]:\n    \"\"\"\n    excludes cancel orders but includes executed orders\n    \"\"\"\n    all_orders = store.orders.get_active_orders(exchange, symbol)\n    # return empty if no orders\n    if len(all_orders) == 0:\n        return []\n    # return empty if position is not opened yet\n    p = store.positions.get_position(exchange, symbol)\n    if p.is_close:\n        return []\n    else:\n        exit_orders = [o for o in all_orders if o.side != jh.type_to_side(p.type)]\n\n    # exclude cancelled orders\n    exit_orders = [o for o in exit_orders if not o.is_canceled]\n\n    return exit_orders\n\n\ndef update_active_orders(exchange: str, symbol: str):\n    key = f'{exchange}-{symbol}'\n    active_orders = [\n        order\n        for order in store.orders.get_active_orders(exchange, symbol)\n        if not order.is_canceled and not order.is_executed\n    ]\n    store.orders.active_storage[key] = active_orders\n"
  },
  {
    "path": "jesse/services/position_service.py",
    "content": "from jesse.config import config\nfrom jesse.models import Position\nfrom jesse.store import store\nimport jesse.helpers as jh\nfrom jesse.exceptions import EmptyPosition, OpenPositionError\nfrom jesse.services import closed_trade_service\nfrom jesse.enums import trade_types\nfrom jesse.utils import sum_floats, subtract_floats\nfrom jesse.enums import order_types\nfrom jesse.models import Order\nfrom jesse.services import logger\n\n\ndef initialize_positions_state() -> None:\n    for exchange in config['app']['trading_exchanges']:\n        for symbol in config['app']['trading_symbols']:\n            key: str = f'{exchange}-{symbol}'\n            store.positions.storage[key] = create_position(exchange, symbol)\n\n\ndef create_position(exchange_name: str, symbol: str, attributes: dict = None) -> Position:\n    p = Position(attributes)\n    if p.id is None:\n        p.id = jh.generate_unique_id()  \n    p.exchange_name = exchange_name\n    p.exchange = store.exchanges.get_exchange(exchange_name)\n    p.symbol = symbol\n    return p\n\n\ndef _mutating_close(position: Position, close_price: float) -> None:\n    if position.is_close and position._can_mutate_qty:\n        raise EmptyPosition('The position is already closed.')\n\n    position.exit_price = close_price\n    position.closed_at = jh.now_to_timestamp()\n\n    if position.exchange and position.exchange.type == 'futures':\n        # just to prevent confusion\n        close_qty = abs(position.qty)\n        estimated_profit = jh.estimate_PNL(\n            close_qty, position.entry_price,\n            close_price, position.type\n        )\n        position.exchange.add_realized_pnl(estimated_profit)\n        position.exchange.temp_reduced_amount[jh.base_asset(position.symbol)] += abs(close_qty * close_price)\n\n    if position._can_mutate_qty:\n        _update_qty(position, 0, operation='set')\n\n    # reset entry_price\n    position.entry_price = None\n\n    _close(position)\n\n\ndef _close(position: Position):\n    closed_trade_service.close_trade(position)\n\n\ndef _mutating_reduce(position: Position, qty: float, price: float) -> None:\n    if not position._can_mutate_qty:\n        return\n\n    if position.is_open is False:\n        raise EmptyPosition('The position is closed.')\n\n    # just to prevent confusion\n    qty = abs(qty)\n\n    estimated_profit = jh.estimate_PNL(qty, position.entry_price, price, position.type)\n\n    if position.exchange and position.exchange.type == 'futures':\n        # position.exchange.increase_futures_balance(qty * position.entry_price + estimated_profit)\n        position.exchange.add_realized_pnl(estimated_profit)\n        position.exchange.temp_reduced_amount[jh.base_asset(position.symbol)] += abs(qty * price)\n\n    if position.type == trade_types.LONG:\n        _update_qty(position, qty, operation='subtract')\n    elif position.type == trade_types.SHORT:\n        _update_qty(position, qty, operation='add')\n\n\ndef _mutating_increase(position: Position, qty: float, price: float) -> None:\n    if not position.is_open:\n        raise OpenPositionError('position must be already open in order to increase its size')\n\n    qty = abs(qty)\n\n    position.entry_price = jh.estimate_average_price(\n        qty, price, position.qty,\n        position.entry_price\n    )\n\n    if position._can_mutate_qty:\n        if position.type == trade_types.LONG:\n            _update_qty(position, qty, operation='add')\n        elif position.type == trade_types.SHORT:\n            _update_qty(position, qty, operation='subtract')\n\n\ndef _mutating_open(position: Position, qty: float, price: float) -> None:\n    if position.is_open and position._can_mutate_qty:\n        raise OpenPositionError('an already open position cannot be opened')\n\n    position.entry_price = price\n    position.exit_price = None\n\n    if position._can_mutate_qty:\n        _update_qty(position, qty, operation='set')\n\n    position.opened_at = jh.now_to_timestamp()\n\n    _open(position)\n\n\ndef _update_qty(position: Position, qty: float, operation='set'):\n    position.previous_qty = position.qty\n\n    if position.exchange_type == 'spot':\n        if operation == 'set':\n            position.qty = qty * (1 - position.exchange.fee_rate)\n        elif operation == 'add':\n            position.qty = sum_floats(position.qty, qty * (1 - position.exchange.fee_rate))\n        elif operation == 'subtract':\n            # fees are taken from the quote currency. in spot mode, sell orders cause\n            # the qty to reduce but fees are handled on the exchange balance stuff\n            position.qty = subtract_floats(position.qty, qty)\n\n    elif position.exchange_type == 'futures':\n        if operation == 'set':\n            position.qty = qty\n        elif operation == 'add':\n            position.qty = sum_floats(position.qty, qty)\n        elif operation == 'subtract':\n            position.qty = subtract_floats(position.qty, qty)\n    else:\n        raise NotImplementedError('exchange type not implemented')\n\n\ndef _open(position: Position, p_orders: list = None):\n    closed_trade_service.open_trade(position, p_orders)\n\n\ndef on_executed_order(position: Position, order: Order) -> None:\n    # futures (live)\n    if jh.is_livetrading() and position.exchange_type == 'futures':\n        # if position got closed because of this order\n        if order.is_partially_filled:\n            before_qty = position.qty - order.filled_qty\n        else:\n            before_qty = position.qty - order.qty\n        after_qty = position.qty\n        if before_qty != 0 and after_qty == 0:\n            _close(position)\n    # spot (live)\n    elif jh.is_livetrading() and position.exchange_type == 'spot':\n        # if position got closed because of this order\n        before_qty = position.previous_qty\n        after_qty = position.qty\n        qty = order.qty\n        price = order.price\n        closing_position = before_qty > position._min_qty > after_qty\n        if closing_position:\n            _mutating_close(position, price)\n        opening_position = before_qty < position._min_qty < after_qty\n        if opening_position:\n            _mutating_open(position, qty, price)\n        increasing_position = after_qty > before_qty > position._min_qty\n        if increasing_position:\n            _mutating_increase(position, qty, price)\n        reducing_position = position._min_qty < after_qty < before_qty\n        if reducing_position:\n            _mutating_reduce(position, qty, price)\n    else:  # backtest (both futures and spot)\n        qty = order.qty\n        price = order.price\n\n        if position.exchange and position.exchange.type == 'futures':\n            position.exchange.charge_fee(qty * price)\n\n        # order opens position\n        if position.qty == 0:\n            change_balance = order.type == order_types.MARKET\n            _mutating_open(position, qty, price)\n        # order closes position\n        elif (sum_floats(position.qty, qty)) == 0:\n            _mutating_close(position, price)\n        # order increases the size of the position\n        elif position.qty * qty > 0:\n            if order.reduce_only:\n                logger.info('Did not increase position because order is a reduce_only order')\n            else:\n                _mutating_increase(position, qty, price)\n        # order reduces the size of the position\n        elif position.qty * qty < 0:\n            # if size of the order is big enough to both close the\n            # position AND open it on the opposite side\n            if abs(qty) > abs(position.qty):\n                if order.reduce_only:\n                    logger.info(\n                        f'Executed order is bigger than the current position size but it is a reduce_only order so it just closes it. Order QTY: {qty}, Position QTY: {position.qty}')\n                    _mutating_close(position, price)\n                else:\n                    logger.info(\n                        f'Executed order is big enough to not close, but flip the position type. Order QTY: {qty}, Position QTY: {position.qty}')\n                    diff_qty = sum_floats(position.qty, qty)\n                    _mutating_close(position, price)\n                    _mutating_open(position, diff_qty, price)\n            else:\n                _mutating_reduce(position, qty, price)\n\n    if position.strategy:\n        position.strategy._on_updated_position(order)\n\n\ndef update_from_stream(position: Position, data: dict, is_initial: bool, open_trade: dict = None, p_orders: list = None) -> None:\n    \"\"\"\n    Used for updating the position from the WS stream (only for live trading)\n    \"\"\"\n    before_qty = abs(position.qty)\n    after_qty = abs(data['qty'])\n\n    if position.exchange_type == 'futures':\n        position.entry_price = data['entry_price']\n        position._liquidation_price = data['liquidation_price']\n    else:  # spot\n        if after_qty > position._min_qty and position.entry_price is None:\n            position.entry_price = position.current_price\n\n    # if the new qty (data['qty']) is different than the current (self.qty) then update it:\n    if position.qty != data['qty']:\n        position.previous_qty = position.qty\n        position.qty = data['qty']\n\n    opening_position = before_qty <= position._min_qty < after_qty\n    closing_position = before_qty > position._min_qty >= after_qty\n    if opening_position:\n        # if is_initial:\n        #     from jesse.store import store\n        #     store.closed_trades.add_order_record_only(\n        #         self.exchange_name, self.symbol, jh.type_to_side(self.type),\n        #         self.qty, self.entry_price\n        #     )\n        position.opened_at = jh.now_to_timestamp()\n        if not open_trade:\n            _open(position, p_orders)\n    elif closing_position:\n        position.closed_at = jh.now_to_timestamp()\n"
  },
  {
    "path": "jesse/services/progressbar.py",
    "content": "from time import time\nimport numpy as np\nfrom jesse.libs import DynamicNumpyArray\n\n\nclass Progressbar:\n    def __init__(self, length: int, step=1):\n        self.length = length\n        self.index = 0\n\n        # validation\n        if self.length <= self.index:\n            raise ValueError('length must be greater than 0')\n\n        self._time = time()\n        self._execution_times = DynamicNumpyArray((3, 1), 3)\n        self.step = step\n        self.is_finished = False\n\n    def update(self):\n        if not self.is_finished:\n            self.index += self.step\n            if self.index == self.length:\n                self.is_finished = True\n        now = time()\n        self._execution_times.append(np.array([now - self._time]))\n        self._time = now\n\n    @property\n    def current(self):\n        if self.is_finished:\n            return 100\n        return round(self.index / self.length * 100, 1)\n\n    @property\n    def average_execution_seconds(self):\n        return self._execution_times[:].mean()\n\n    @property\n    def remaining_index(self):\n        if self.is_finished:\n            return 0\n        return self.length - self.index\n\n    @property\n    def estimated_remaining_seconds(self):\n        if self.is_finished:\n            return 0\n        return self.average_execution_seconds * self.remaining_index / self.step\n\n    def finish(self):\n        self.is_finished = True\n\n"
  },
  {
    "path": "jesse/services/redis.py",
    "content": "import aioredis\nimport redis as sync_redis_lib\nimport simplejson as json\nimport asyncio\nimport jesse.helpers as jh\nfrom jesse.libs.custom_json import NpEncoder\nimport os\nimport base64\nfrom jesse.services.env import ENV_VALUES\n\n\nasync def init_redis():\n    return await aioredis.create_redis_pool(\n        address=(ENV_VALUES['REDIS_HOST'], ENV_VALUES['REDIS_PORT']),\n        password=ENV_VALUES['REDIS_PASSWORD'] or None,\n        db=int(ENV_VALUES.get('REDIS_DB') or 0),\n    )\n\n\nasync_redis = None\nsync_redis = None\nif jh.is_jesse_project():\n    if not jh.is_notebook():\n        async_redis = asyncio.run(init_redis())\n        sync_redis = sync_redis_lib.Redis(\n            host=ENV_VALUES['REDIS_HOST'], port=ENV_VALUES['REDIS_PORT'], db=int(ENV_VALUES.get('REDIS_DB') or 0),\n            password=ENV_VALUES['REDIS_PASSWORD'] if ENV_VALUES['REDIS_PASSWORD'] else None\n        )\n\n\ndef sync_publish(event: str, msg, compression: bool = False):\n    if jh.is_unit_testing():\n        raise EnvironmentError('sync_publish() should be NOT called during testing. There must be something wrong')\n\n    if compression:\n        msg = jh.gzip_compress(msg)\n        # Encode the compressed message using Base64\n        msg = base64.b64encode(msg).decode('utf-8')\n\n    try:\n        sync_redis.publish(\n            f\"{ENV_VALUES['APP_PORT']}:channel:1\", json.dumps({\n                'id': os.getpid(),\n                'event': f'{jh.app_mode()}.{event}',\n                'is_compressed': compression,\n                'data': msg\n            }, ignore_nan=True, cls=NpEncoder)\n        )\n    except Exception as e:\n        # Log publish errors so we can diagnose Redis outages without crashing the worker\n        jh.terminal_debug(f\"Redis publish error: {e}\")\n\n\nasync def async_publish(event: str, msg, compression: bool = False):\n    if jh.is_unit_testing():\n        raise EnvironmentError('sync_publish() should be NOT called during testing. There must be something wrong')\n\n    if compression:\n        msg = jh.gzip_compress(msg)\n        # Encode the compressed message using Base64\n        msg = base64.b64encode(msg).decode('utf-8')\n\n    await async_redis.publish(\n        f\"{ENV_VALUES['APP_PORT']}:channel:1\", json.dumps({\n            'id': os.getpid(),\n            'event': f'{jh.app_mode()}.{event}',\n            'is_compressed': compression,\n            'data': msg\n        }, ignore_nan=True, cls=NpEncoder)\n    )\n\n\ndef is_process_active(client_id: str) -> bool:\n    if jh.is_unit_testing():\n        return False\n\n    return sync_redis.sismember(f\"{ENV_VALUES['APP_PORT']}|active-processes\", client_id)\n"
  },
  {
    "path": "jesse/services/report.py",
    "content": "import warnings\nfrom typing import List, Any, Union, Dict\nimport pandas as pd\nimport jesse.helpers as jh\nfrom jesse.config import config\nfrom jesse.routes import router\nfrom jesse.services import metrics as stats\nfrom jesse.store import store\nfrom jesse.models import Position\nfrom jesse.services import candle_service\n\n\n# silent (pandas) warnings\nwarnings.filterwarnings(\"ignore\")\n\n\ndef positions() -> list:\n    arr = []\n\n    for r in router.routes:\n        if r.strategy is None:\n            continue\n        p: Position = r.strategy.position\n        arr.append({\n            'currency': jh.app_currency(),\n            'type': p.type,\n            'strategy_name': p.strategy.name,\n            'symbol': p.symbol,\n            'leverage': p.leverage,\n            'opened_at': p.opened_at,\n            'qty': p.qty,\n            'value': p.value,\n            'entry': None if p.is_close else p.entry_price,\n            'current_price': p.current_price,\n            'liquidation_price': p.liquidation_price,\n            'pnl': p.pnl,\n            'pnl_perc': p.pnl_percentage\n        })\n\n    return arr\n\n\ndef candles() -> dict:\n    candles_dict = {}\n    candle_keys = []\n\n    # add routes\n    for e in router.routes:\n        if e.strategy is None:\n            return {}\n\n        candle_keys.append({\n            'exchange': e.exchange,\n            'symbol': e.symbol,\n            'timeframe': e.timeframe\n        })\n\n    for k in candle_keys:\n        try:\n            c = candle_service.get_current_candle(k['exchange'], k['symbol'], k['timeframe'])\n            key = jh.key(k['exchange'], k['symbol'], k['timeframe'])\n            candles_dict[key] = {\n                'time': int(c[0] / 1000),\n                'open': c[1],\n                'close': c[2],\n                'high': c[3],\n                'low': c[4],\n                'volume': c[5],\n            }\n        except IndexError:\n            return {}\n        except Exception:\n            raise\n\n    return candles_dict\n\n\ndef livetrade():\n    starting_balance = 0\n    current_balance = 0\n    exchange_name = ''\n    leverage = 1\n    leverage_type = 'spot'\n    available_margin = 0\n    for e in store.exchanges.storage:\n        starting_balance = round(store.exchanges.storage[e].started_balance, 2)\n        current_balance = round(store.exchanges.storage[e].wallet_balance, 2)\n        exchange_name = e\n        if store.exchanges.storage[e].type == 'futures':\n            leverage = store.exchanges.storage[e].futures_leverage\n            leverage_type = store.exchanges.storage[e].futures_leverage_mode\n            available_margin = round(store.exchanges.storage[e].available_margin, 2)\n        # there's only one exchange, so we can break\n        break\n\n    # short trades summary\n    if len(store.closed_trades.trades):\n        df = pd.DataFrame.from_records([t.to_dict for t in store.closed_trades.trades])\n        total = len(df)\n        winning_trades = len(df.loc[df['PNL'] > 0])\n        losing_trades = len(df.loc[df['PNL'] < 0])\n        pnl = round(df['PNL'].sum(), 2)\n        pnl_perc = round((pnl / starting_balance) * 100, 2)\n    else:\n        pnl, pnl_perc, total, winning_trades, losing_trades = 0, 0, 0, 0, 0\n\n    routes = [\n        {\n            'symbol': r.symbol,\n            'timeframe': r.timeframe,\n            'strategy': r.strategy_name\n        } for r in router.routes\n    ]\n\n    return {\n        'session_id': store.app.session_id,\n        'started_at': str(store.app.starting_time),\n        'current_time': str(jh.now_to_timestamp()),\n        'started_balance': str(starting_balance),\n        'current_balance': str(current_balance),\n        'debug_mode': str(config['app']['debug_mode']),\n        'paper_mode': str(jh.is_paper_trading()),\n        'count_error_logs': str(len(store.logs.errors)),\n        'count_info_logs': str(len(store.logs.info)),\n        'count_active_orders': str(store.orders.count_all_active_orders()),\n        'open_positions': str(store.positions.count_open_positions()),\n        'pnl': str(pnl),\n        'pnl_perc': str(pnl_perc),\n        'count_trades': str(total),\n        'count_winning_trades': str(winning_trades),\n        'count_losing_trades': str(losing_trades),\n        'routes': routes,\n        'exchange': exchange_name,\n        'leverage': leverage,\n        \"leverage_type\": leverage_type,\n        'available_margin': available_margin\n    }\n\n\ndef portfolio_metrics() -> Union[dict, None]:\n    if store.closed_trades.count == 0:\n        return None\n\n    return stats.trades(store.closed_trades.trades, store.app.daily_balance)\n\n\ndef trades() -> List[dict]:\n    if store.closed_trades.count == 0:\n        return []\n    return [t.to_dict_with_orders for t in store.closed_trades.trades]\n\n\ndef info() -> List[List[Union[str, Any]]]:\n    return [\n        [\n            jh.timestamp_to_time(w['time'])[11:19],\n            f\"{w['message'][:70]}..\"\n            if len(w['message']) > 70\n            else w['message'],\n        ]\n        for w in store.logs.info[::-1][0:5]\n    ]\n\n\ndef watch_list() -> Dict[str, List[List[Union[str, str]]]]:\n    \"\"\"\n    Returns a dictionary of watch lists for all routes keyed by route key\n    (exchange-symbol-timeframe). This allows frontend to display watch list\n    for the currently selected route without server-side knowledge of the\n    selection.\n    \"\"\"\n    results: Dict[str, List[List[Union[str, str]]]] = {}\n\n    for r in router.routes:\n        strategy = r.strategy\n\n        # skip if strategy object is not initialized yet\n        if strategy is None or not store.candles.are_all_initiated:\n            results[jh.key(r.exchange, r.symbol, r.timeframe)] = []\n            continue\n\n        try:\n            watch_list_array = strategy.watch_list()\n        except Exception:\n            import traceback\n            watch_list_array = [\n                ('', \"The watch list is not available because an error occurred while getting it. Please check your strategy code's watch_list() method.\"),\n                ('', f'ERROR: ```{traceback.format_exc()}```')\n            ]\n\n        # loop through the watch list and convert each item into a string\n        for index, value in enumerate(watch_list_array):\n            if not isinstance(value, tuple) or len(value) != 2:\n                raise ValueError(\"watch_list() must return a list of tuples with 2 values in each. Example: [(key1, value1), (key2, value2)]\")\n\n            watch_list_array[index] = (str(value[0]), str(value[1]))\n\n        results[jh.key(r.exchange, r.symbol, r.timeframe)] = watch_list_array if len(watch_list_array) else []\n\n    return results\n\n\ndef errors() -> List[List[Union[str, Any]]]:\n    return [\n        [\n            jh.timestamp_to_time(w['time'])[11:19],\n            f\"{w['message'][:70]}..\"\n            if len(w['message']) > 70\n            else w['message'],\n        ]\n        for w in store.logs.errors[::-1][0:5]\n    ]\n\n\ndef orders() -> List[dict]:\n    route_orders = []\n\n    for r in router.routes:\n        r_orders = store.orders.get_orders(r.exchange, r.symbol)\n        for o in r_orders:\n            o.trade_id = str(o.trade_id) if o.trade_id else None\n            o.id = str(o.id) if o.id else None\n            route_orders.append(o.to_dict)\n\n    return route_orders\n"
  },
  {
    "path": "jesse/services/strategy_handler/ExampleStrategy/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.indicators as ta\nfrom jesse import utils\n\n\nclass ExampleStrategy(Strategy):\n    def should_long(self) -> bool:\n        return False\n\n    def should_short(self) -> bool:\n        # For futures trading only\n        return False\n        \n    def go_long(self):\n        pass\n\n    def go_short(self):\n        # For futures trading only\n        pass\n"
  },
  {
    "path": "jesse/services/strategy_handler/__init__.py",
    "content": "import os\nimport shutil\nfrom starlette.responses import JSONResponse\n\n\ndef generate(name: str) -> JSONResponse:\n    path = f'strategies/{name}'\n\n    # validation for name duplication\n    exists = os.path.isdir(path)\n    if exists:\n        return JSONResponse({\n            'status': 'error',\n            'message': f'Strategy \"{name}\" already exists.'\n        }, status_code=409)\n\n    # generate from ExampleStrategy\n    dirname, filename = os.path.split(os.path.abspath(__file__))\n\n    shutil.copytree(f'{dirname}/ExampleStrategy', path)\n\n    # replace 'ExampleStrategy' with the name of the new strategy\n    with open(f\"{path}/__init__.py\", \"rt\") as fin:\n        data = fin.read()\n        data = data.replace('ExampleStrategy', name)\n    with open(f\"{path}/__init__.py\", \"wt\") as fin:\n        fin.write(data)\n    # return the location of generated strategy directory\n    return JSONResponse({\n        'status': 'success',\n        'message': path\n    })\n\n\ndef get_strategies() -> JSONResponse:\n    path = 'strategies'\n    directories = []\n\n    # Iterate through the items in the specified path\n    for item in os.listdir(path):\n        # Construct full path\n        full_path = os.path.join(path, item)\n        # Check if the item is a directory\n        if os.path.isdir(full_path):\n            directories.append(item)\n\n    return JSONResponse({\n        'status': 'success',\n        'strategies': directories\n    })\n\n\ndef get_strategy(name: str) -> JSONResponse:\n    path = f'strategies/{name}'\n    exists = os.path.isdir(path)\n\n    if not exists:\n        return JSONResponse({\n            'status': 'error',\n            'message': f'Strategy \"{name}\" does not exist.'\n        }, status_code=404)\n\n    with open(f\"{path}/__init__.py\", \"rt\") as fin:\n        content = fin.read()\n\n    return JSONResponse({\n        'status': 'success',\n        'content': content\n    })\n\n\ndef save_strategy(name: str, content: str) -> JSONResponse:\n    path = f'strategies/{name}'\n    exists = os.path.isdir(path)\n\n    if not exists:\n        return JSONResponse({\n            'status': 'error',\n            'message': f'Strategy \"{name}\" does not exist.'\n        }, status_code=404)\n\n    with open(f\"{path}/__init__.py\", \"wt\") as fin:\n        fin.write(content)\n\n    return JSONResponse({\n        'status': 'success',\n        'message': f'Strategy \"{name}\" has been saved.'\n    })\n\n\ndef import_strategy(name: str, code: str) -> JSONResponse:\n    import re\n    \n    # Sanitize strategy name to create valid folder name\n    # Remove any characters that aren't alphanumeric, underscore, or hyphen\n    sanitized_name = re.sub(r'[^a-zA-Z0-9_-]', '_', name)\n    # Replace multiple underscores with a single one\n    sanitized_name = re.sub(r'_+', '_', sanitized_name)\n    # Remove leading/trailing underscores\n    sanitized_name = sanitized_name.strip('_')\n    \n    # Ensure name is not empty after sanitization\n    if not sanitized_name:\n        return JSONResponse({\n            'status': 'error',\n            'message': 'Invalid strategy name'\n        }, status_code=400)\n    \n    path = f'strategies/{sanitized_name}'\n\n    # Check if strategy already exists\n    exists = os.path.isdir(path)\n    if exists:\n        return JSONResponse({\n            'status': 'error',\n            'message': f'Strategy \"{sanitized_name}\" already exists.'\n        }, status_code=409)\n\n    # Create strategy directory\n    os.makedirs(path, exist_ok=True)\n\n    # Write the strategy code to __init__.py\n    with open(f\"{path}/__init__.py\", \"wt\") as f:\n        f.write(code)\n\n    return JSONResponse({\n        'status': 'success',\n        'message': f'Strategy \"{sanitized_name}\" has been imported.',\n        'path': path,\n        'name': sanitized_name\n    })\n\n\ndef delete_strategy(name: str) -> JSONResponse:\n    path = f'strategies/{name}'\n    exists = os.path.isdir(path)\n\n    if not exists:\n        return JSONResponse({\n            'status': 'error',\n            'message': f'Strategy \"{name}\" does not exist.'\n        }, status_code=404)\n\n    shutil.rmtree(path)\n\n    return JSONResponse({\n        'status': 'success',\n        'message': f'Strategy \"{name}\" has been deleted.'\n    })\n"
  },
  {
    "path": "jesse/services/strategy_service.py",
    "content": "from typing import Any\nfrom jesse.routes import router\n\n\ndef get_strategy(exchange: str, symbol: str) -> Any:\n    if exchange is None or symbol is None:\n        raise ValueError(f\"exchange and symbol cannot be None. exchange: {exchange}, symbol: {symbol}\")\n\n    r = next(r for r in router.routes\n             if r.exchange == exchange and r.symbol == symbol)\n    return r.strategy\n\n"
  },
  {
    "path": "jesse/services/table.py",
    "content": "from tabulate import tabulate\nfrom typing import Union\n\ndef key_value(data, title: str, alignments: Union[list, tuple] = None, uppercase_title: bool = True) -> None:\n    table = [d for d in data]\n\n    if alignments is None:\n        print(tabulate(table, headers=[title.upper() if uppercase_title else title, ''], tablefmt=\"presto\"))\n    else:\n        print(tabulate(table, headers=[title.upper() if uppercase_title else title, ''], tablefmt=\"presto\",\n                       colalign=alignments))\n\n\ndef multi_value(data, with_headers: bool = True, alignments: Union[list, tuple] = None) -> None:\n    \"\"\"\n\n    :param data:\n    :param with_headers:\n    :param alignments:\n    :return:\n    \"\"\"\n    if data is None:\n        return\n\n    headers = data.pop(0) if with_headers else ()\n\n    table = data\n\n    if alignments is None:\n        print(tabulate(table, headers=headers, tablefmt=\"presto\"))\n    else:\n        print(tabulate(table, headers=headers, tablefmt=\"presto\", colalign=alignments))\n"
  },
  {
    "path": "jesse/services/tradingview.py",
    "content": "import os\n\nimport jesse.helpers as jh\nfrom jesse.store import store\n\n\ndef tradingview_logs(study_name: str) -> str:\n    starting_balance = sum(\n        store.exchanges.storage[e].starting_assets[jh.app_currency()]\n        for e in store.exchanges.storage\n    )\n\n    tv_text = f'//@version=4\\nstrategy(\"{study_name}\", overlay=true, initial_capital={starting_balance}, commission_type=strategy.commission.percent, commission_value=0.2)\\n'\n    for i, t in enumerate(store.closed_trades.trades[::-1][:]):\n        tv_text += '\\n'\n        for j, o in enumerate(t.orders):\n            when = f\"time_close == {int(o.executed_at)}\"\n            if int(o.executed_at) % (jh.timeframe_to_one_minutes(t.timeframe) * 60_000) != 0:\n                when = f\"time_close >= {int(o.executed_at)} and time_close - {int(o.executed_at) + jh.timeframe_to_one_minutes(t.timeframe) * 60_000} < {jh.timeframe_to_one_minutes(t.timeframe) * 60_000}\"\n            if j == len(t.orders) - 1:\n                tv_text += f'strategy.close(\"{i}\", when = {when})\\n'\n            else:\n                tv_text += f'strategy.order(\"{i}\", {1 if t.type == \"long\" else 0}, {abs(o.qty)}, {o.price}, when = {when})\\n'\n\n    path = f'storage/trading-view-pine-editor/{jh.get_session_id()}.txt'.replace(\":\", \"-\")\n    os.makedirs('./storage/trading-view-pine-editor', exist_ok=True)\n    with open(path, 'w+') as outfile:\n        outfile.write(tv_text)\n\n    return path\n"
  },
  {
    "path": "jesse/services/transformers.py",
    "content": "from jesse.models.ExchangeApiKeys import ExchangeApiKeys\nfrom jesse.models.NotificationApiKeys import NotificationApiKeys\nfrom jesse.models.OptimizationSession import OptimizationSession\nfrom jesse.models.BacktestSession import BacktestSession\nfrom jesse.models.MonteCarloSession import MonteCarloSession\nfrom jesse.models.LiveSession import LiveSession\nfrom jesse.models.Order import Order\nfrom jesse.enums import live_session_statuses\nfrom jesse.repositories import order_repository, live_session_repository\nfrom jesse.services.multiprocessing import process_manager\nimport json\nimport math\nimport jesse.helpers as jh\n\n\ndef get_exchange_api_key(exchange_api_key: ExchangeApiKeys) -> dict:\n    result = {\n        'id': str(exchange_api_key.id),\n        'exchange': exchange_api_key.exchange_name,\n        'name': exchange_api_key.name,\n        'api_key': exchange_api_key.api_key[0:4] + '***...***' + exchange_api_key.api_key[-4:],\n        'api_secret': exchange_api_key.api_secret[0:4] + '***...***' + exchange_api_key.api_secret[-4:],\n        'created_at': exchange_api_key.created_at.isoformat(),\n    }\n\n    if type(exchange_api_key.additional_fields) == str:\n        exchange_api_key.additional_fields = json.loads(exchange_api_key.additional_fields)\n\n    # additional fields\n    if exchange_api_key.additional_fields:\n        for key, value in exchange_api_key.additional_fields.items():\n            result[key] = value[0:4] + '***...***' + value[-4:]\n\n    return result\n\n\ndef get_notification_api_key(api_key: NotificationApiKeys, protect_sensitive_data=True) -> dict:\n    result = {\n        'id': str(api_key.id),\n        'name': api_key.name,\n        'driver': api_key.driver,\n        'created_at': api_key.created_at.isoformat()\n    }\n\n    # Parse the fields from the JSON string\n    fields = json.loads(api_key.fields)\n\n    # Add each field to the result\n    for key, value in fields.items():\n        if protect_sensitive_data:\n            result[key] = value[0:4] + '***...***' + value[-4:]\n        else:\n            result[key] = value\n\n    return result\n\n\ndef get_optimization_session(session: OptimizationSession) -> dict:\n    \"\"\"\n    Transform an OptimizationSession model instance into a dictionary for API responses\n    \"\"\"\n    return {\n        'id': str(session.id),\n        'status': session.status,\n        'completed_trials': session.completed_trials,\n        'total_trials': session.total_trials,\n        'created_at': session.created_at,\n        'updated_at': session.updated_at,\n        'best_score': session.best_score,\n        'state': json.loads(session.state) if session.state else None,\n        'title': session.title,\n        'description': session.description,\n        'strategy_codes': json.loads(session.strategy_codes) if session.strategy_codes else {}\n    }\n\n\ndef get_optimization_session_for_load_more(session: OptimizationSession) -> dict:\n    objective_function_config = jh.get_config('env.optimization.objective_function', 'sharpe').lower()\n    mapping = {\n        'sharpe': 'sharpe_ratio',\n        'calmar': 'calmar_ratio',\n        'sortino': 'sortino_ratio',\n        'omega': 'omega_ratio',\n        'serenity': 'serenity_index',\n        'smart sharpe': 'smart_sharpe',\n        'smart sortino': 'smart_sortino'\n    }\n    metric_key = mapping.get(objective_function_config, objective_function_config)\n\n    best_candidates = []\n\n    def replace_inf_with_null(obj):\n        if isinstance(obj, dict):\n            return {k: replace_inf_with_null(v) for k, v in obj.items()}\n        elif isinstance(obj, list):\n            return [replace_inf_with_null(item) for item in obj]\n        elif isinstance(obj, float) and (obj == float('inf') or obj == float('-inf')):\n            return None\n        return obj\n\n    best_trials_list = replace_inf_with_null(json.loads(session.best_trials)) if session.best_trials else []\n\n    for idx, t in enumerate(best_trials_list):\n        training_metrics = t.get('training_metrics', {})\n        testing_metrics = t.get('testing_metrics', {})\n\n        train_value = training_metrics.get(metric_key, None)\n        test_value = testing_metrics.get(metric_key, None)\n        if isinstance(train_value, (int, float)):\n            train_value = round(train_value, 2)\n        if isinstance(test_value, (int, float)):\n            test_value = round(test_value, 2)\n        if train_value is None:\n            train_value = \"N/A\"\n        if test_value is None:\n            test_value = \"N/A\"\n\n        candidate_objective_metric = f\"{train_value} / {test_value}\"\n\n        best_candidates.append({\n            'rank': f\"#{idx + 1}\",\n            'trial': f\"Trial {t['trial']}\",\n            'params': t['params'],\n            'fitness': t['fitness'],\n            'dna': t['dna'],\n            'training_metrics': training_metrics,  # Use the already fetched metrics\n            'testing_metrics': testing_metrics,   # Use the already fetched metrics\n            'objective_metric': candidate_objective_metric\n        })\n\n    best_candidates = json.dumps(best_candidates).replace('NaN', 'null')\n    best_candidates = json.loads(best_candidates)\n\n    objective_curve = None\n    if session.objective_curve:\n        objective_curve = session.objective_curve.replace('-Infinity', 'null').replace('Infinity', 'null')\n        objective_curve = objective_curve.replace('NaN', 'null')\n        objective_curve = json.loads(objective_curve)\n\n    return {\n        'id': str(session.id),\n        'status': session.status,\n        'completed_trials': session.completed_trials,\n        'total_trials': session.total_trials,\n        'created_at': session.created_at,\n        'updated_at': session.updated_at,\n        'best_score': session.best_score,\n        'best_candidates': best_candidates,\n        'objective_curve': objective_curve,\n        'state': session.state_json,\n        'exception': session.exception,\n        'traceback': session.traceback,\n        'title': session.title,\n        'description': session.description,\n        'strategy_codes': json.loads(session.strategy_codes) if session.strategy_codes else {}\n    }\n\n\ndef get_backtest_session(session: BacktestSession) -> dict:\n    \"\"\"\n    Transform a BacktestSession model instance into a dictionary for API responses (listing)\n    \"\"\"\n    result = {\n        'id': str(session.id),\n        'status': session.status,\n        'created_at': session.created_at,\n        'updated_at': session.updated_at,\n        'execution_duration': session.execution_duration,\n        'net_profit_percentage': session.net_profit_percentage,\n        'state': session.state_json if session.state else None,\n        'title': session.title,\n        'description': session.description,\n        'strategy_codes': session.strategy_codes_json\n    }\n\n    return jh.clean_nan_values(jh.clean_infinite_values(result))\n\n\ndef get_backtest_session_for_load_more(session: BacktestSession) -> dict:\n    \"\"\"\n    Transform a BacktestSession model instance with full data for detailed view\n    \"\"\"\n    # Parse JSON fields and clean infinite values\n    metrics = jh.clean_infinite_values(json.loads(session.metrics)) if session.metrics else None\n    equity_curve = jh.clean_infinite_values(json.loads(session.equity_curve)) if session.equity_curve else []\n    trades = jh.clean_infinite_values(json.loads(session.trades)) if session.trades else []\n    hyperparameters = jh.clean_infinite_values(json.loads(session.hyperparameters)) if session.hyperparameters else None\n    \n    result = {\n        'id': str(session.id),\n        'status': session.status,\n        'metrics': metrics,\n        'equity_curve': equity_curve,\n        'trades': trades,\n        'hyperparameters': hyperparameters,\n        'has_chart_data': bool(session.chart_data),\n        'created_at': session.created_at,\n        'updated_at': session.updated_at,\n        'execution_duration': session.execution_duration,\n        'state': session.state_json,\n        'exception': session.exception,\n        'traceback': session.traceback,\n        'title': session.title,\n        'description': session.description,\n        'strategy_codes': session.strategy_codes_json\n    }\n\n    return jh.clean_nan_values(jh.clean_infinite_values(result))\n\n\ndef get_live_session(session: LiveSession) -> dict:\n    \"\"\"\n    Transform a LiveSession model instance into a dictionary for API responses.\n    Reconciles status with actual worker state.\n    \"\"\"\n    try:\n        is_active = str(session.id) in process_manager.active_workers\n    except Exception:\n        is_active = False\n\n    status = (session.status or '').lower()\n    \n    # Reconcile status: if DB says starting/running but worker is not active, mark as stopped\n    if status in [live_session_statuses.STARTING, live_session_statuses.RUNNING] and not is_active:\n        status = live_session_statuses.STOPPED\n        # Update DB to reflect the reconciled status\n        try:\n            live_session_repository.update_live_session_status(str(session.id), live_session_statuses.STOPPED)\n            if not session.finished_at:\n                from jesse.models.LiveSession import LiveSession\n                LiveSession.update(finished_at=jh.now_to_timestamp(True)).where(LiveSession.id == session.id).execute()\n        except Exception as e:\n            jh.debug(f\"Error reconciling live session status: {str(e)}\")\n\n    result = {\n        'id': str(session.id),\n        'status': status or session.status,\n        'is_active': is_active,\n        'session_mode': session.session_mode,\n        'exchange': session.exchange,\n        'created_at': session.created_at,\n        'updated_at': session.updated_at,\n        'finished_at': session.finished_at,\n        'state': json.loads(session.state) if session.state else None,\n        'title': session.title,\n        'description': session.description,\n        'strategy_codes': session.strategy_codes_json,\n        'exception': session.exception,\n        'traceback': session.traceback\n    }\n\n    return jh.clean_nan_values(jh.clean_infinite_values(result))\n\n\ndef get_monte_carlo_session(session: MonteCarloSession) -> dict:\n    \"\"\"\n    Transform a MonteCarloSession model instance into a dictionary for API responses (listing)\n    \"\"\"\n    trades_session = session.trades_session\n    candles_session = session.candles_session\n    \n    return {\n        'id': str(session.id),\n        'status': session.status,\n        'has_trades': trades_session is not None,\n        'has_candles': candles_session is not None,\n        'trades_status': trades_session.status if trades_session else None,\n        'candles_status': candles_session.status if candles_session else None,\n        'created_at': session.created_at,\n        'updated_at': session.updated_at,\n        'title': session.title,\n        'description': session.description,\n        'strategy_codes': json.loads(session.strategy_codes) if session.strategy_codes else {},\n        'state': session.state_json\n    }\n\n\ndef _percentile(arr: list, p: float) -> float:\n    \"\"\"Calculate the p-th percentile of a list of numbers.\"\"\"\n    if not arr:\n        return 0.0\n    sorted_arr = sorted(arr)\n    index = (p / 100.0) * (len(sorted_arr) - 1)\n    lower = int(index)\n    upper = min(lower + 1, len(sorted_arr) - 1)\n    weight = index % 1\n    return sorted_arr[lower] * (1 - weight) + sorted_arr[upper] * weight\n\n\ndef _extract_candles_summary_metrics(results: dict) -> list:\n    \"\"\"Extract summary metrics from Monte Carlo candles results.\"\"\"\n    metrics = []\n    results = json.loads(results)\n\n    if not results or 'confidence_analysis' not in results:\n        return metrics\n\n    ca_metrics = results['confidence_analysis']['metrics']\n\n    # Define metrics to display (in order)\n    metric_keys = ['net_profit_percentage', 'max_drawdown', 'sharpe_ratio', 'win_rate', 'total', 'annual_return', 'calmar_ratio']\n\n    for key in metric_keys:\n        if key not in ca_metrics:\n            continue\n\n        analysis = ca_metrics[key]\n        original = analysis.get('original')\n        percentiles = analysis.get('percentiles', {})\n\n        # Get percentiles\n        p5 = percentiles.get('5th')\n        p50 = percentiles.get('50th')\n        p95 = percentiles.get('95th')\n\n        metrics.append({\n            'metric': key,\n            'original': original,\n            'worst_5': p5,\n            'median': p50,\n            'best_5': p95\n        })\n\n    return metrics\n\n\ndef _extract_trades_summary_metrics(results: dict) -> list:\n    \"\"\"Extract summary metrics from Monte Carlo trades confidence analysis.\"\"\"\n    metrics = []\n    results = json.loads(results)\n\n    if not results or 'confidence_analysis' not in results:\n        return metrics\n\n    ca_metrics = results['confidence_analysis']['metrics']\n\n    # Define metrics to display (in order)\n    metric_keys = ['total_return', 'max_drawdown', 'sharpe_ratio', 'calmar_ratio']\n\n    for key in metric_keys:\n        if key not in ca_metrics:\n            continue\n\n        analysis = ca_metrics[key]\n        original = analysis.get('original')\n        percentiles = analysis.get('percentiles', {})\n\n        # Get percentiles\n        p5 = percentiles.get('5th')\n        p50 = percentiles.get('50th')\n        p95 = percentiles.get('95th')\n        \n        metrics.append({\n            'metric': key,\n            'original': original,\n            'worst_5': p5,\n            'median': p50,\n            'best_5': p95\n        })\n\n    return metrics\n\n\ndef get_monte_carlo_session_for_load_more(session: MonteCarloSession) -> dict:\n    \"\"\"\n    Transform a MonteCarloSession model instance with full data for detailed view\n    \"\"\"\n    trades_session = session.trades_session\n    candles_session = session.candles_session\n\n    trades_data = None\n    if trades_session:\n        trades_data = {\n            'id': str(trades_session.id),\n            'status': trades_session.status,\n            'num_scenarios': trades_session.num_scenarios,\n            'completed_scenarios': trades_session.completed_scenarios,\n            'summary_metrics': _extract_trades_summary_metrics(trades_session.results) if trades_session.results else [],\n            'logs': trades_session.logs,\n            'exception': trades_session.exception,\n            'traceback': trades_session.traceback,\n        }\n\n    candles_data = None\n    if candles_session:\n        candles_data = {\n            'id': str(candles_session.id),\n            'status': candles_session.status,\n            'num_scenarios': candles_session.num_scenarios,\n            'completed_scenarios': candles_session.completed_scenarios,\n            'pipeline_type': candles_session.pipeline_type,\n            'pipeline_params': json.loads(candles_session.pipeline_params) if candles_session.pipeline_params else None,\n            'logs': candles_session.logs,\n            'exception': candles_session.exception,\n            'traceback': candles_session.traceback,\n            'summary_metrics': _extract_candles_summary_metrics(candles_session.results) if candles_session.results else [],\n        }\n        # Sanitize nested NaN/Inf across entire candles_data structure\n        candles_data = jh.clean_nan_values(candles_data)\n\n    # Sanitize trades_data as well for completeness\n    if trades_data is not None:\n        trades_data = jh.clean_nan_values(trades_data)\n\n    return {\n        'id': str(session.id),\n        'status': session.status,\n        'trades_session': trades_data,\n        'candles_session': candles_data,\n        'created_at': session.created_at,\n        'updated_at': session.updated_at,\n        'title': session.title,\n        'description': session.description,\n        'state': session.state_json,\n    }\n\n\ndef get_closed_trade_for_list(trade) -> dict:\n    \"\"\"\n    Transform a ClosedTrade model instance for list view\n    \"\"\"\n    result = {\n        'id': str(trade.id),\n        'symbol': trade.symbol,\n        'exchange': trade.exchange,\n        'type': trade.type,\n        'entry_price': trade.entry_price,\n        'exit_price': trade.exit_price if trade.closed_at else None,\n        'qty': trade.qty,\n        'pnl': trade.pnl if trade.closed_at else None,\n        'pnl_percentage': trade.pnl_percentage if trade.closed_at else None,\n        'opened_at': trade.opened_at,\n        'closed_at': trade.closed_at,\n        'status': 'closed' if trade.closed_at else 'open'\n    }\n    \n    return jh.clean_nan_values(jh.clean_infinite_values(result))\n\n\ndef get_closed_trade_details(trade) -> dict:\n    \"\"\"\n    Transform a ClosedTrade model instance for detailed view with orders\n    \"\"\"\n    # Get all orders for this trade\n    orders: list[Order] = order_repository.find_by_trade_id(trade.id)\n    orders_list = [get_order_details(order) for order in orders]\n    \n    result = {\n        'id': str(trade.id),\n        'symbol': trade.symbol,\n        'type': trade.type,\n        'entry_price': trade.entry_price,\n        'exit_price': trade.exit_price if trade.closed_at else None,\n        'qty': trade.qty,\n        'pnl': trade.pnl if trade.closed_at else None,\n        'pnl_percentage': trade.pnl_percentage if trade.closed_at else None,\n        'opened_at': trade.opened_at,\n        'closed_at': trade.closed_at,\n        'status': 'closed' if trade.closed_at else 'open',\n        'strategy_name': jh.get_class_name(trade.strategy_name),\n        'exchange': trade.exchange,\n        'timeframe': trade.timeframe,\n        'leverage': trade.leverage,\n        'fee': trade.fee if trade.closed_at else None,\n        'size': trade.size,\n        'holding_period': trade.holding_period if trade.closed_at else None,\n        'orders': orders_list\n    }\n    \n    return jh.clean_nan_values(jh.clean_infinite_values(result))\n\n\ndef get_order_details(order) -> dict:\n    \"\"\"\n    Transform an Order model instance for detail/list view\n    \"\"\"\n    result = {\n        'id': str(order.id),\n        'trade_id': str(order.trade_id) if order.trade_id else None,\n        'exchange_id': order.exchange_id,\n        'symbol': order.symbol,\n        'exchange': order.exchange,\n        'side': order.side,\n        'type': order.type,\n        'qty': order.qty,\n        'filled_qty': order.filled_qty,\n        'price': order.price,\n        'status': order.status,\n        'reduce_only': order.reduce_only,\n        'created_at': order.created_at,\n        'executed_at': order.executed_at,\n        'canceled_at': order.canceled_at,\n        'submitted_via': order.submitted_via,\n        'fee': order.fee\n    }\n    \n    return jh.clean_nan_values(jh.clean_infinite_values(result))\n"
  },
  {
    "path": "jesse/services/validators.py",
    "content": "from jesse import exceptions\nimport jesse.helpers as jh\nfrom jesse.services import logger\n\n\ndef validate_routes(router) -> None:\n    if not router.routes:\n        raise exceptions.RouteNotFound(\n            'No routes found. Please add at least one route at: routes.py\\nMore info: https://docs.jesse.trade/docs/routes.html#routing')\n\n    # validation for number of routes in the live mode\n    if jh.is_live():\n        if len(router.routes) > 10:\n            logger.broadcast_error_without_logging('Too many routes (not critical, but use at your own risk): Using that more than 5 routes in live/paper trading is not recommended because exchange WS connections are often not reliable for handling that much traffic.')\n"
  },
  {
    "path": "jesse/services/web.py",
    "content": "from typing import List, Dict, Optional\n\nfrom fastapi import FastAPI\nfrom fastapi.middleware.cors import CORSMiddleware\nfrom pydantic import BaseModel\n\n\nfastapi_app = FastAPI()\n\norigins = [\n    \"*\",\n]\n\nfastapi_app.add_middleware(\n    CORSMiddleware,\n    allow_origins=origins,\n    allow_credentials=True,\n    allow_methods=[\"*\"],\n    allow_headers=[\"*\"],\n)\n\n\nclass BacktestRequestJson(BaseModel):\n    id: str\n    exchange: str\n    routes: List[Dict[str, str]]\n    data_routes: List[Dict[str, str]]\n    config: dict\n    start_date: str\n    finish_date: str\n    debug_mode: bool\n    export_csv: bool\n    export_json: bool\n    export_chart: bool\n    export_tradingview: bool\n    fast_mode: bool\n    benchmark: bool\n\n\nclass OptimizationRequestJson(BaseModel):\n    id: Optional[str] = None\n    exchange: str\n    routes: List[Dict[str, str]]\n    data_routes: List[Dict[str, str]]\n    config: dict\n    training_start_date: str\n    training_finish_date: str\n    testing_start_date: str\n    testing_finish_date: str\n    optimal_total: int\n    fast_mode: bool\n    cpu_cores: int\n    state: dict\n\n\nclass ImportCandlesRequestJson(BaseModel):\n    id: str\n    exchange: str\n    symbol: str\n    start_date: str\n\n\nclass ExchangeSupportedSymbolsRequestJson(BaseModel):\n    exchange: str\n\n\nclass CancelRequestJson(BaseModel):\n    id: str\n\n\nclass LiveRequestJson(BaseModel):\n    id: str\n    config: dict\n    exchange: str\n    exchange_api_key_id: str\n    notification_api_key_id: str\n    routes: List[Dict[str, str]]\n    data_routes: List[Dict[str, str]]\n    debug_mode: bool\n    paper_mode: bool\n\n\nclass LiveCancelRequestJson(BaseModel):\n    id: str\n    paper_mode: bool\n\n\nclass GetCandlesRequestJson(BaseModel):\n    id: str\n    exchange: str\n    symbol: str\n    timeframe: str\n\n\nclass GetLogsRequestJson(BaseModel):\n    id: str\n    type: str\n    start_time: int\n\n\nclass GetOrdersRequestJson(BaseModel):\n    id: str\n    session_id: str\n\n\nclass StoreExchangeApiKeyRequestJson(BaseModel):\n    exchange: str\n    name: str\n    api_key: str\n    api_secret: str\n    additional_fields: Optional[dict] = None\n    general_notifications_id: Optional[str] = None\n    error_notifications_id: Optional[str] = None\n\n\nclass StoreNotificationApiKeyRequestJson(BaseModel):\n    name: str\n    driver: str\n    fields: dict\n\n\nclass DeleteExchangeApiKeyRequestJson(BaseModel):\n    id: str\n\n\nclass DeleteNotificationApiKeyRequestJson(BaseModel):\n    id: str\n\n\nclass ConfigRequestJson(BaseModel):\n    current_config: dict\n\n\nclass LoginRequestJson(BaseModel):\n    password: str\n\n\nclass LoginJesseTradeRequestJson(BaseModel):\n    email: str\n    password: str\n\n\nclass NewStrategyRequestJson(BaseModel):\n    name: str\n\n\nclass GetStrategyRequestJson(BaseModel):\n    name: str\n\n\nclass SaveStrategyRequestJson(BaseModel):\n    name: str\n    content: str\n\n\nclass DeleteStrategyRequestJson(BaseModel):\n    name: str\n\n\nclass ImportStrategyRequestJson(BaseModel):\n    slug: str\n\n\nclass FeedbackRequestJson(BaseModel):\n    description: str\n    email: Optional[str] = None\n\n\nclass ReportExceptionRequestJson(BaseModel):\n    description: str\n    traceback: str\n    mode: str\n    attach_logs: bool\n    session_id: Optional[str] = None\n    email: Optional[str] = None\n\n\nclass HelpSearchRequestJson(BaseModel):\n    query: str\n\n\nclass DeleteCandlesRequestJson(BaseModel):\n    exchange: str\n    symbol: str\n\n\nclass UpdateOptimizationSessionStateRequestJson(BaseModel):\n    id: str\n    state: dict\n\n\nclass UpdateOptimizationSessionStatusRequestJson(BaseModel):\n    id: str\n    status: str\n\n\nclass TerminateOptimizationRequestJson(BaseModel):\n    id: str\n\n\nclass UpdateOptimizationSessionNotesRequestJson(BaseModel):\n    id: str\n    title: Optional[str] = None\n    description: Optional[str] = None\n    strategy_codes: Optional[dict] = None\n\n\nclass GetOptimizationSessionsRequestJson(BaseModel):\n    limit: int = 50\n    offset: int = 0\n    title_search: Optional[str] = None\n    status_filter: Optional[str] = None\n    date_filter: Optional[str] = None\n\n\nclass UpdateBacktestSessionStateRequestJson(BaseModel):\n    id: str\n    state: dict\n\n\nclass GetBacktestSessionsRequestJson(BaseModel):\n    limit: int = 50\n    offset: int = 0\n    title_search: Optional[str] = None\n    status_filter: Optional[str] = None\n    date_filter: Optional[str] = None\n\n\nclass UpdateBacktestSessionNotesRequestJson(BaseModel):\n    id: str\n    title: Optional[str] = None\n    description: Optional[str] = None\n    strategy_codes: Optional[dict] = None\n\n\nclass GetLiveSessionsRequestJson(BaseModel):\n    limit: int = 50\n    offset: int = 0\n    title_search: Optional[str] = None\n    status_filter: Optional[str] = None\n    date_filter: Optional[str] = None\n    mode_filter: Optional[str] = None\n\n\nclass UpdateLiveSessionNotesRequestJson(BaseModel):\n    title: Optional[str] = None\n    description: Optional[str] = None\n    strategy_codes: Optional[dict] = None\n\n\nclass UpdateLiveSessionStateRequestJson(BaseModel):\n    id: str\n    state: dict\n\n\nclass GetEquityCurveRequestJson(BaseModel):\n    session_id: str\n    from_ms: Optional[int] = None\n    to_ms: Optional[int] = None\n    timeframe: str = 'auto'\n    max_points: int = 1000\n\n\nclass MonteCarloRequestJson(BaseModel):\n    id: Optional[str] = None\n    exchange: str\n    routes: List[Dict[str, str]]\n    data_routes: List[Dict[str, str]]\n    config: dict\n    start_date: str\n    finish_date: str\n    run_trades: bool\n    run_candles: bool\n    num_scenarios: int\n    fast_mode: bool\n    cpu_cores: int\n    pipeline_type: Optional[str] = 'moving_block_bootstrap'\n    pipeline_params: Optional[dict] = None\n    state: dict\n\n\nclass UpdateMonteCarloSessionStateRequestJson(BaseModel):\n    id: str\n    state: dict\n\n\nclass TerminateMonteCarloRequestJson(BaseModel):\n    id: str\n\n\nclass CancelMonteCarloRequestJson(BaseModel):\n    id: str\n\n\nclass UpdateMonteCarloSessionNotesRequestJson(BaseModel):\n    id: str\n    title: Optional[str] = None\n    description: Optional[str] = None\n    strategy_codes: Optional[dict] = None\n\n\nclass GetMonteCarloSessionsRequestJson(BaseModel):\n    limit: int = 50\n    offset: int = 0\n    title_search: Optional[str] = None\n    status_filter: Optional[str] = None\n    date_filter: Optional[str] = None\n\n\nclass GetOrdersHistoryRequestJson(BaseModel):\n    limit: int = 50\n    offset: int = 0\n    id_search: Optional[str] = None\n    status_filter: Optional[str] = None\n    symbol_filter: Optional[str] = None\n    date_filter: Optional[str] = None\n    exchange_filter: Optional[str] = None\n    type_filter: Optional[str] = None\n    side_filter: Optional[str] = None\n\n\nclass GetTradesHistoryRequestJson(BaseModel):\n    limit: int = 50\n    offset: int = 0\n    id_search: Optional[str] = None\n    status_filter: Optional[str] = None\n    symbol_filter: Optional[str] = None\n    date_filter: Optional[str] = None\n    exchange_filter: Optional[str] = None\n    type_filter: Optional[str] = None\n    \n\nclass ImportApiKeyRequestJson(BaseModel):\n    content: str\n"
  },
  {
    "path": "jesse/services/ws_manager.py",
    "content": "import asyncio\nimport json\nimport time\nfrom typing import Set\nfrom starlette.websockets import WebSocket\n\nfrom jesse.services.redis import async_redis\nfrom jesse.services.multiprocessing import process_manager\nimport jesse.helpers as jh\n\n\nclass ConnectionManager:\n    def __init__(self):\n        self.active_connections: Set[WebSocket] = set()\n        self.is_subscribed = False\n        self.redis_subscriber = None\n        self.reader_task = None\n        self.heartbeat_task = None\n        self.heartbeat_interval = 30\n        \n    async def connect(self, websocket: WebSocket):\n        await websocket.accept()\n        self.active_connections.add(websocket)\n        await self.start_heartbeat()\n        \n    def disconnect(self, websocket: WebSocket):\n        # Use discard to avoid KeyError if already removed\n        self.active_connections.discard(websocket)\n        \n    async def broadcast(self, message: dict):\n        # Process id with the manager for each websocket separately\n        # Be resilient to per-connection send failures so a single bad client\n        # does not stop the Redis listener loop.\n        for connection in list(self.active_connections):\n            message_copy = dict(message)\n            message_copy['id'] = process_manager.get_client_id(message_copy['id'])\n            try:\n                await connection.send_json(message_copy)\n            except Exception as e:\n                # Drop the failing connection and continue broadcasting\n                jh.terminal_debug(f\"WebSocket send error: {str(e)}\")\n                self.disconnect(connection)\n            \n    async def start_redis_listener(self, channel_pattern):\n        # Start or restart the listener task if missing or completed\n        if self.reader_task is None or self.reader_task.done():\n            self.is_subscribed = True\n            # Start the resilient listener task which will (re)subscribe internally\n            self.reader_task = asyncio.create_task(self._redis_listener(channel_pattern))\n            \n    async def _redis_listener(self, channel_pattern):\n        # Keep the subscription alive and resubscribe on failures with backoff\n        backoff_seconds = 0.1\n        while self.is_subscribed:\n            try:\n                self.redis_subscriber, = await async_redis.psubscribe(channel_pattern)\n                # Reset backoff after a successful subscribe\n                backoff_seconds = 0.1\n                async for ch, message in self.redis_subscriber.iter():\n                    # Parse the message and broadcast to all clients\n                    message_dict = json.loads(message)\n                    await self.broadcast(message_dict)\n            except asyncio.CancelledError:\n                # Task was cancelled as part of shutdown\n                break\n            except Exception as e:\n                jh.terminal_debug(f\"Redis listener error: {str(e)}\")\n                # Exponential backoff to avoid tight retry loops\n                await asyncio.sleep(backoff_seconds)\n                backoff_seconds = min(backoff_seconds * 2, 5.0)\n            \n    async def start_heartbeat(self):\n        if self.heartbeat_task is None or self.heartbeat_task.done():\n            self.heartbeat_task = asyncio.create_task(self._heartbeat_loop())\n            \n    async def _heartbeat_loop(self):\n        while len(self.active_connections) > 0:\n            try:\n                ping_message = {\n                    'event': 'ping',\n                    'timestamp': time.time(),\n                    'id': 0,\n                    'data': None\n                }\n                await self.broadcast(ping_message)\n                await asyncio.sleep(self.heartbeat_interval)\n            except asyncio.CancelledError:\n                break\n            except Exception as e:\n                jh.terminal_debug(f\"Heartbeat error: {str(e)}\")\n                await asyncio.sleep(self.heartbeat_interval)\n    \n    async def stop_redis_listener(self):\n        if self.is_subscribed and len(self.active_connections) == 0:\n            # Only unsubscribe if no clients are connected\n            self.is_subscribed = False\n            if self.reader_task and not self.reader_task.done():\n                self.reader_task.cancel()\n                try:\n                    await self.reader_task\n                except asyncio.CancelledError:\n                    pass\n            \n            if self.heartbeat_task and not self.heartbeat_task.done():\n                self.heartbeat_task.cancel()\n                try:\n                    await self.heartbeat_task\n                except asyncio.CancelledError:\n                    pass\n                    \n            from jesse.services.env import ENV_VALUES\n            try:\n                await async_redis.punsubscribe(f\"{ENV_VALUES['APP_PORT']}:channel:*\")\n            except Exception as e:\n                jh.terminal_debug(f\"Redis punsubscribe error: {str(e)}\")\n            jh.terminal_debug(\"Redis unsubscribed - no more active connections\")\n\n\n# Create a global instance\nws_manager = ConnectionManager()\n"
  },
  {
    "path": "jesse/static/200.html",
    "content": "<!DOCTYPE html><html  data-capo=\"\"><head><meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<link rel=\"stylesheet\" href=\"/_nuxt/entry.Co9uk6v2.css\">\n<link rel=\"modulepreload\" as=\"script\" crossorigin href=\"/_nuxt/CU_MfyYc.js\">\n<link rel=\"prefetch\" as=\"image\" type=\"image/png\" href=\"/_nuxt/logo-light.CS4l4ePq.png\">\n<link rel=\"prefetch\" as=\"image\" type=\"image/svg+xml\" href=\"/_nuxt/logo-dark.tKoQPl1k.svg\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CvlXmOiu.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/oQwgk5qA.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DRC6TkPh.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BuapDI9Y.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BypH-vXm.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BY6pwuIY.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/gRuQeaLk.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/ul-Lp4lw.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DeYg-96x.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CfnpWUYo.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/C9L3yaDO.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DWGz5Zuj.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DrRCxMg5.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BfLuTCmN.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DoFvH58O.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DIovg4uR.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/D2PfwrvU.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/C_scCXcs.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BRk-K-rg.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DLs3tTet.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/D0UiDa5C.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/D4aGjE-s.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CyVeKkvQ.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BygKL3ZF.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BPUjjr-i.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/D_OY6ada.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/Cq2jzwMq.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BTpWsGps.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/3TATJI7h.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DXXGBMMv.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DmDlXweU.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DDpSJMW6.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DVYH6Lj_.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CuFlys0T.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/m09vb5r-.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/D2Z7JJdl.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DrqOgyji.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/B2Cf9XSq.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BXYnMxBe.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CoJj_PRq.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/Ckkbw-AO.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/B5uW3Zvf.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/B8ssZoUh.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CrrKwR0a.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BWBTHuhh.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BGLI1Hdo.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DDrv2Hr-.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DLPipH_Q.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CTNlIIiR.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/2oJWbEOo.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DOk3G3cc.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/Dgyr3wWZ.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/B_i9asfM.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CV9EbfTh.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CCBS_C5_.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/B2nSH5Xk.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BLuZWbUW.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CzF1MCbP.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/D94h4QjT.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/C75U4IDy.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/Bc5xkKR1.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DmdQbaLT.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DB0RB20n.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/UMmp-gVE.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DVG02705.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DvSxYeG4.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/yf5bffbF.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/Bzb7OGdO.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/FNqbgIOG.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DyKutqhl.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/B4VqtPa2.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/B7alP455.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/D7lU1fdU.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/VuadG5SK.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BYtUz8ZP.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DOAuugfS.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CXKOl_mN.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/D9yiNO04.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BupSXVCO.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/ZlaFEk-P.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/B-lZjTdr.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DcXBrGfk.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/Cc6zh8Uk.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/B-k8r3hf.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CZogWebk.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BjtZpFsH.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/3cNudfSz.js\">\n<link rel=\"prefetch\" as=\"style\" crossorigin href=\"/_nuxt/error-404.DZraUJun.css\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DQ5Sj-RJ.js\">\n<link rel=\"prefetch\" as=\"style\" crossorigin href=\"/_nuxt/error-500.XmAVHPl_.css\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CfBo882q.js\">\n<script type=\"module\" src=\"/_nuxt/CU_MfyYc.js\" crossorigin></script><script>\"use strict\";(()=>{const a=window,e=document.documentElement,m=[\"dark\",\"light\"],c=window&&window.localStorage&&window.localStorage.getItem&&window.localStorage.getItem(\"nuxt-color-mode\")||\"system\";let n=c===\"system\"?d():c;const l=e.getAttribute(\"data-color-mode-forced\");l&&(n=l),i(n),a[\"__NUXT_COLOR_MODE__\"]={preference:c,value:n,getColorScheme:d,addColorScheme:i,removeColorScheme:f};function i(o){const t=\"\"+o+\"\",s=\"\";e.classList?e.classList.add(t):e.className+=\" \"+t,s&&e.setAttribute(\"data-\"+s,o)}function f(o){const t=\"\"+o+\"\",s=\"\";e.classList?e.classList.remove(t):e.className=e.className.replace(new RegExp(t,\"g\"),\"\"),s&&e.removeAttribute(\"data-\"+s)}function r(o){return a.matchMedia(\"(prefers-color-scheme\"+o+\")\")}function d(){if(a.matchMedia&&r(\"\").media!==\"not all\"){for(const o of m)if(r(\":\"+o).matches)return o}return\"light\"}})();\n</script></head><body><div id=\"__nuxt\"></div><div id=\"teleports\"></div><script type=\"application/json\" data-nuxt-data=\"nuxt-app\" data-ssr=\"false\" id=\"__NUXT_DATA__\">[{\"prerenderedAt\":1,\"serverRendered\":2},1771769758393,false]</script>\n<script>window.__NUXT__={};window.__NUXT__.config={public:{appEnv:\"production\",apiBaseUrl:\"/\",appName:\"Jesse\",appUrl:\"/\",wsUrl:\"/\",persistedState:{storage:\"cookies\",debug:false,cookieOptions:{}}},app:{baseURL:\"/\",buildId:\"eb84b0d5-3375-45f1-aa74-a62921fd30aa\",buildAssetsDir:\"/_nuxt/\",cdnURL:\"\"}}</script></body></html>"
  },
  {
    "path": "jesse/static/404.html",
    "content": "<!DOCTYPE html><html  data-capo=\"\"><head><meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<link rel=\"stylesheet\" href=\"/_nuxt/entry.Co9uk6v2.css\">\n<link rel=\"modulepreload\" as=\"script\" crossorigin href=\"/_nuxt/CU_MfyYc.js\">\n<link rel=\"prefetch\" as=\"image\" type=\"image/png\" href=\"/_nuxt/logo-light.CS4l4ePq.png\">\n<link rel=\"prefetch\" as=\"image\" type=\"image/svg+xml\" href=\"/_nuxt/logo-dark.tKoQPl1k.svg\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CvlXmOiu.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/oQwgk5qA.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DRC6TkPh.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BuapDI9Y.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BypH-vXm.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BY6pwuIY.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/gRuQeaLk.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/ul-Lp4lw.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DeYg-96x.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CfnpWUYo.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/C9L3yaDO.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DWGz5Zuj.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DrRCxMg5.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BfLuTCmN.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DoFvH58O.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DIovg4uR.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/D2PfwrvU.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/C_scCXcs.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BRk-K-rg.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DLs3tTet.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/D0UiDa5C.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/D4aGjE-s.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CyVeKkvQ.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BygKL3ZF.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BPUjjr-i.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/D_OY6ada.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/Cq2jzwMq.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BTpWsGps.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/3TATJI7h.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DXXGBMMv.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DmDlXweU.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DDpSJMW6.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DVYH6Lj_.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CuFlys0T.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/m09vb5r-.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/D2Z7JJdl.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DrqOgyji.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/B2Cf9XSq.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BXYnMxBe.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CoJj_PRq.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/Ckkbw-AO.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/B5uW3Zvf.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/B8ssZoUh.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CrrKwR0a.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BWBTHuhh.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BGLI1Hdo.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DDrv2Hr-.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DLPipH_Q.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CTNlIIiR.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/2oJWbEOo.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DOk3G3cc.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/Dgyr3wWZ.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/B_i9asfM.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CV9EbfTh.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CCBS_C5_.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/B2nSH5Xk.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BLuZWbUW.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CzF1MCbP.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/D94h4QjT.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/C75U4IDy.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/Bc5xkKR1.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DmdQbaLT.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DB0RB20n.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/UMmp-gVE.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DVG02705.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DvSxYeG4.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/yf5bffbF.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/Bzb7OGdO.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/FNqbgIOG.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DyKutqhl.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/B4VqtPa2.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/B7alP455.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/D7lU1fdU.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/VuadG5SK.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BYtUz8ZP.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DOAuugfS.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CXKOl_mN.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/D9yiNO04.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BupSXVCO.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/ZlaFEk-P.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/B-lZjTdr.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DcXBrGfk.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/Cc6zh8Uk.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/B-k8r3hf.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CZogWebk.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BjtZpFsH.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/3cNudfSz.js\">\n<link rel=\"prefetch\" as=\"style\" crossorigin href=\"/_nuxt/error-404.DZraUJun.css\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DQ5Sj-RJ.js\">\n<link rel=\"prefetch\" as=\"style\" crossorigin href=\"/_nuxt/error-500.XmAVHPl_.css\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CfBo882q.js\">\n<script type=\"module\" src=\"/_nuxt/CU_MfyYc.js\" crossorigin></script><script>\"use strict\";(()=>{const a=window,e=document.documentElement,m=[\"dark\",\"light\"],c=window&&window.localStorage&&window.localStorage.getItem&&window.localStorage.getItem(\"nuxt-color-mode\")||\"system\";let n=c===\"system\"?d():c;const l=e.getAttribute(\"data-color-mode-forced\");l&&(n=l),i(n),a[\"__NUXT_COLOR_MODE__\"]={preference:c,value:n,getColorScheme:d,addColorScheme:i,removeColorScheme:f};function i(o){const t=\"\"+o+\"\",s=\"\";e.classList?e.classList.add(t):e.className+=\" \"+t,s&&e.setAttribute(\"data-\"+s,o)}function f(o){const t=\"\"+o+\"\",s=\"\";e.classList?e.classList.remove(t):e.className=e.className.replace(new RegExp(t,\"g\"),\"\"),s&&e.removeAttribute(\"data-\"+s)}function r(o){return a.matchMedia(\"(prefers-color-scheme\"+o+\")\")}function d(){if(a.matchMedia&&r(\"\").media!==\"not all\"){for(const o of m)if(r(\":\"+o).matches)return o}return\"light\"}})();\n</script></head><body><div id=\"__nuxt\"></div><div id=\"teleports\"></div><script type=\"application/json\" data-nuxt-data=\"nuxt-app\" data-ssr=\"false\" id=\"__NUXT_DATA__\">[{\"prerenderedAt\":1,\"serverRendered\":2},1771769758395,false]</script>\n<script>window.__NUXT__={};window.__NUXT__.config={public:{appEnv:\"production\",apiBaseUrl:\"/\",appName:\"Jesse\",appUrl:\"/\",wsUrl:\"/\",persistedState:{storage:\"cookies\",debug:false,cookieOptions:{}}},app:{baseURL:\"/\",buildId:\"eb84b0d5-3375-45f1-aa74-a62921fd30aa\",buildAssetsDir:\"/_nuxt/\",cdnURL:\"\"}}</script></body></html>"
  },
  {
    "path": "jesse/static/_nuxt/-30QC5Em.js",
    "content": "const a=Object.freeze(JSON.parse(`{\"displayName\":\"Gherkin\",\"fileTypes\":[\"feature\"],\"firstLineMatch\":\"기능|機能|功能|フィーチャ|خاصية|תכונה|Функціонал|Функционалност|Функционал|Особина|Функция|Функциональность|Свойство|Могућност|Özellik|Właściwość|Tính năng|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Ability|Business Need|Feature|Egenskap|Egenskab|Crikey|Característica|Arwedd(.*)\",\"foldingStartMarker\":\"^\\\\\\\\s*\\\\\\\\b(예|시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|例子|例|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|サンプル|سيناريو مخطط|سيناريو|امثلة|الخلفية|תרחיש|תבנית תרחיש|רקע|דוגמאות|Тарих|Сценарій|Сценарији|Сценарио|Сценарий структураси|Сценарий|Структура сценарію|Структура сценарија|Структура сценария|Скица|Рамка на сценарий|Примери|Пример|Приклади|Предыстория|Предистория|Позадина|Передумова|Основа|Мисоллар|Концепт|Контекст|Значения|Örnekler|Założenia|Wharrimean is|Voorbeelden|Variantai|Tình huống|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Tapaukset|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situācija|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenariusz|Scenariul de şablon|Scenariul de sablon|Scenariu|Scenarios|Scenario Outline|Scenario Amlinellol|Scenario|Example|Scenarijus|Scenariji|Scenarijaus šablonas|Scenarijai|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Primer|Pozadí|Pozadina|Pozadie|Plan du scénario|Plan du Scénario|Piemēri|Pavyzdžiai|Paraugs|Osnova scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung kịch bản|Juhtumid|Háttér|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Exemplos|Exemples|Exemplele|Exempel|Examples|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esempi|Escenario|Escenari|Enghreifftiau|Eksempler|Ejemplos|EXAMPLZ|Dữ liệu|Dis is what went down|Dasar|Contoh|Contexto|Contexte|Contesto|Condiţii|Conditii|Cobber|Cenário|Cenario|Cefndir|Bối cảnh|Blokes|Beispiele|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y'all|Achtergrond|Abstrakt Scenario|Abstract Scenario|Rule|Regla|Règle|Regel|Regra)\",\"foldingStopMarker\":\"^\\\\\\\\s*$\",\"name\":\"gherkin\",\"patterns\":[{\"include\":\"#feature_element_keyword\"},{\"include\":\"#feature_keyword\"},{\"include\":\"#step_keyword\"},{\"include\":\"#strings_triple_quote\"},{\"include\":\"#strings_single_quote\"},{\"include\":\"#strings_double_quote\"},{\"include\":\"#comments\"},{\"include\":\"#tags\"},{\"include\":\"#scenario_outline_variable\"},{\"include\":\"#table\"}],\"repository\":{\"comments\":{\"captures\":{\"0\":{\"name\":\"comment.line.number-sign\"}},\"match\":\"^\\\\\\\\s*(#.*)\"},\"feature_element_keyword\":{\"captures\":{\"1\":{\"name\":\"keyword.language.gherkin.feature.scenario\"},\"2\":{\"name\":\"string.language.gherkin.scenario.title.title\"}},\"match\":\"^\\\\\\\\s*(예|시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|例子|例|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|サンプル|سيناريو مخطط|سيناريو|امثلة|الخلفية|תרחיש|תבנית תרחיש|רקע|דוגמאות|Тарих|Сценарій|Сценарији|Сценарио|Сценарий структураси|Сценарий|Структура сценарію|Структура сценарија|Структура сценария|Скица|Рамка на сценарий|Примери|Пример|Приклади|Предыстория|Предистория|Позадина|Передумова|Основа|Мисоллар|Концепт|Контекст|Значения|Örnekler|Założenia|Wharrimean is|Voorbeelden|Variantai|Tình huống|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Tapaukset|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situācija|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenariusz|Scenariul de şablon|Scenariul de sablon|Scenariu|Scenarios|Scenario Outline|Scenario Amlinellol|Scenario|Example|Scenarijus|Scenariji|Scenarijaus šablonas|Scenarijai|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Primer|Pozadí|Pozadina|Pozadie|Plan du scénario|Plan du Scénario|Piemēri|Pavyzdžiai|Paraugs|Osnova scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung kịch bản|Juhtumid|Háttér|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Exemplos|Exemples|Exemplele|Exempel|Examples|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esempi|Escenario|Escenari|Enghreifftiau|Eksempler|Ejemplos|EXAMPLZ|Dữ liệu|Dis is what went down|Dasar|Contoh|Contexto|Contexte|Contesto|Condiţii|Conditii|Cobber|Cenário|Cenario|Cefndir|Bối cảnh|Blokes|Beispiele|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y'all|Achtergrond|Abstrakt Scenario|Abstract Scenario|Rule|Regla|Règle|Regel|Regra):(.*)\"},\"feature_keyword\":{\"captures\":{\"1\":{\"name\":\"keyword.language.gherkin.feature\"},\"2\":{\"name\":\"string.language.gherkin.feature.title\"}},\"match\":\"^\\\\\\\\s*(기능|機能|功能|フィーチャ|خاصية|תכונה|Функціонал|Функционалност|Функционал|Особина|Функция|Функциональность|Свойство|Могућност|Özellik|Właściwość|Tính năng|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Ability|Business Need|Feature|Ability|Egenskap|Egenskab|Crikey|Característica|Arwedd):(.*)\\\\\\\\b\"},\"scenario_outline_variable\":{\"match\":\"<[a-zA-Z0-9 _-]*>\",\"name\":\"variable.other\"},\"step_keyword\":{\"captures\":{\"1\":{\"name\":\"keyword.language.gherkin.feature.step\"}},\"match\":\"^\\\\\\\\s*(En |و |Y |E |Եվ |Ya |Too right |Və |Həm |A |И |而且 |并且 |同时 |並且 |同時 |Ak |Epi |A také |Og |😂 |And |Kaj |Ja |Et que |Et qu' |Et |და |Und |Και |અને |וגם |और |तथा |És |Dan |Agus |かつ |Lan |ಮತ್ತು |'ej |latlh |그리고 |AN |Un |Ir |an |a |Мөн |Тэгээд |Ond |7 |ਅਤੇ |Aye |Oraz |Si |Și |Şi |К тому же |Также |An |A tiež |A taktiež |A zároveň |In |Ter |Och |மேலும் |மற்றும் |Һәм |Вә |మరియు |และ |Ve |І |А також |Та |اور |Ва |Và |Maar |لكن |Pero |Բայց |Peru |Yeah nah |Amma |Ancaq |Ali |Но |Però |但是 |Men |Ale |😔 |But |Sed |Kuid |Mutta |Mais que |Mais qu' |Mais |მაგ­რამ |Aber |Αλλά |પણ |אבל |पर |परन्तु |किन्तु |De |En |Tapi |Ach |Ma |しかし |但し |ただし |Nanging |Ananging |ಆದರೆ |'ach |'a |하지만 |단 |BUT |Bet |awer |mä |No |Tetapi |Гэхдээ |Харин |Ac |ਪਰ |اما |Avast! |Mas |Dar |А |Иначе |Buh |Али |Toda |Ampak |Vendar |ஆனால் |Ләкин |Әмма |కాని |แต่ |Fakat |Ama |Але |لیکن |Лекин |Бирок |Аммо |Nhưng |Ond |Dan |اذاً |ثم |Alavez |Allora |Antonces |Ապա |Entós |But at the end of the day I reckon |O halda |Zatim |То |Aleshores |Cal |那么 |那麼 |Lè sa a |Le sa a |Onda |Pak |Så |🙏 |Then |Do |Siis |Niin |Alors |Entón |Logo |მაშინ |Dann |Τότε |પછી |אז |אזי |तब |तदा |Akkor |Þá |Maka |Ansin |ならば |Njuk |Banjur |ನಂತರ |vaj |그러면 |DEN |Tad |Tada |dann |Тогаш |Togash |Kemudian |Тэгэхэд |Үүний дараа |Tha |Þa |Ða |Tha the |Þa þe |Ða ðe |ਤਦ |آنگاه |Let go and haul |Wtedy |Então |Entao |Atunci |Затем |Тогда |Dun |Den youse gotta |Онда |Tak |Potom |Nato |Potem |Takrat |Entonces |அப்பொழுது |Нәтиҗәдә |అప్పుడు |ดังนั้น |O zaman |Тоді |پھر |تب |Унда |Thì |Yna |Wanneer |متى |عندما |Cuan |Եթե |Երբ |Cuando |It's just unbelievable |Əgər |Nə vaxt ki |Kada |Когато |Quan |当 |當 |Lè |Le |Kad |Když |Når |Als |🎬 |When |Se |Kui |Kun |Quand |Lorsque |Lorsqu' |Cando |როდესაც |Wenn |Όταν |ક્યારે |כאשר |जब |कदा |Majd |Ha |Amikor |Þegar |Ketika |Nuair a |Nuair nach |Nuair ba |Nuair nár |Quando |もし |Manawa |Menawa |ಸ್ಥಿತಿಯನ್ನು |qaSDI' |만일 |만약 |WEN |Ja |Kai |wann |Кога |Koga |Apabila |Хэрэв |Tha |Þa |Ða |ਜਦੋਂ |هنگامی |Blimey! |Jeżeli |Jeśli |Gdy |Kiedy |Cand |Când |Когда |Если |Wun |Youse know like when |Када |Кад |Keď |Ak |Ko |Ce |Če |Kadar |När |எப்போது |Әгәр |ఈ పరిస్థితిలో |เมื่อ |Eğer ki |Якщо |Коли |جب |Агар |Khi |Pryd |Gegewe |بفرض |Dau |Dada |Daus |Dadas |Դիցուք |Dáu |Daos |Daes |Y'know |Tutaq ki |Verilir |Dato |Дадено |Donat |Donada |Atès |Atesa |假如 |假设 |假定 |假設 |Sipoze |Sipoze ke |Sipoze Ke |Zadan |Zadani |Zadano |Pokud |Za předpokladu |Givet |Gegeven |Stel |😐 |Given |Donitaĵo |Komence |Eeldades |Oletetaan |Soit |Etant donné que |Etant donné qu' |Etant donné |Etant donnée |Etant donnés |Etant données |Étant donné que |Étant donné qu' |Étant donné |Étant donnée |Étant donnés |Étant données |Dado |Dados |მოცემული |Angenommen |Gegeben sei |Gegeben seien |Δεδομένου |આપેલ છે |בהינתן |अगर |यदि |चूंकि |Amennyiben |Adott |Ef |Dengan |Cuir i gcás go |Cuir i gcás nach |Cuir i gcás gur |Cuir i gcás nár |Data |Dati |Date |前提 |Nalika |Nalikaning |ನೀಡಿದ |ghu' noblu' |DaH ghu' bejlu' |조건 |먼저 |I CAN HAZ |Kad |Duota |ugeholl |Дадена |Dadeno |Dadena |Diberi |Bagi |Өгөгдсөн нь |Анх |Gitt |Thurh |Þurh |Ðurh |ਜੇਕਰ |ਜਿਵੇਂ ਕਿ |با فرض |Gangway! |Zakładając |Mając |Zakładając, że |Date fiind |Dat fiind |Dată fiind |Dati fiind |Dați fiind |Daţi fiind |Допустим |Дано |Пусть |Givun |Youse know when youse got |За дато |За дате |За дати |Za dato |Za date |Za dati |Pokiaľ |Za predpokladu |Dano |Podano |Zaradi |Privzeto |கொடுக்கப்பட்ட |Әйтик |చెప్పబడినది |กำหนดให้ |Diyelim ki |Припустимо |Припустимо, що |Нехай |اگر |بالفرض |فرض کیا |Агар |Biết |Cho |Anrhegedig a |\\\\\\\\* )\"},\"strings_double_quote\":{\"begin\":\"(?<![a-zA-Z0-9'])\\\\\"\",\"end\":\"\\\\\"(?![a-zA-Z0-9'])\",\"name\":\"string.quoted.double\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.untitled\"}]},\"strings_single_quote\":{\"begin\":\"(?<![a-zA-Z0-9\\\\\"])'\",\"end\":\"'(?![a-zA-Z0-9\\\\\"])\",\"name\":\"string.quoted.single\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape\"}]},\"strings_triple_quote\":{\"begin\":\"\\\\\"\\\\\"\\\\\".*\",\"end\":\"\\\\\"\\\\\"\\\\\"\",\"name\":\"string.quoted.single\"},\"table\":{\"begin\":\"^\\\\\\\\s*\\\\\\\\|\",\"end\":\"\\\\\\\\|\\\\\\\\s*$\",\"name\":\"keyword.control.cucumber.table\",\"patterns\":[{\"match\":\"\\\\\\\\w\",\"name\":\"source\"}]},\"tags\":{\"captures\":{\"0\":{\"name\":\"entity.name.type.class.tsx\"}},\"match\":\"(@[^@\\\\\\\\r\\\\\\\\n\\\\\\\\t ]+)\"}},\"scopeName\":\"text.gherkin.feature\"}`)),e=[a];export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/2oJWbEOo.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"#\"},brackets:[[\"[\",\"]\"],[\"<\",\">\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"[\",close:\"]\"},{open:\"<\",close:\">\"},{open:\"(\",close:\")\"}],surroundingPairs:[{open:\"[\",close:\"]\"},{open:\"<\",close:\">\"},{open:\"(\",close:\")\"}]},o={defaultToken:\"\",tokenPostfix:\".pla\",brackets:[{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],keywords:[\".i\",\".o\",\".mv\",\".ilb\",\".ob\",\".label\",\".type\",\".phase\",\".pair\",\".symbolic\",\".symbolic-output\",\".kiss\",\".p\",\".e\",\".end\"],comment:/#.*$/,identifier:/[a-zA-Z]+[a-zA-Z0-9_\\-]*/,plaContent:/[01\\-~\\|]+/,tokenizer:{root:[{include:\"@whitespace\"},[/@comment/,\"comment\"],[/\\.([a-zA-Z_\\-]+)/,{cases:{\"@eos\":{token:\"keyword.$1\"},\"@keywords\":{cases:{\".type\":{token:\"keyword.$1\",next:\"@type\"},\"@default\":{token:\"keyword.$1\",next:\"@keywordArg\"}}},\"@default\":{token:\"keyword.$1\"}}}],[/@identifier/,\"identifier\"],[/@plaContent/,\"string\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"]],type:[{include:\"@whitespace\"},[/\\w+/,{token:\"type\",next:\"@pop\"}]],keywordArg:[[/[ \\t\\r\\n]+/,{cases:{\"@eos\":{token:\"\",next:\"@pop\"},\"@default\":\"\"}}],[/@comment/,\"comment\",\"@pop\"],[/[<>()\\[\\]]/,{cases:{\"@eos\":{token:\"@brackets\",next:\"@pop\"},\"@default\":\"@brackets\"}}],[/\\-?\\d+/,{cases:{\"@eos\":{token:\"number\",next:\"@pop\"},\"@default\":\"number\"}}],[/@identifier/,{cases:{\"@eos\":{token:\"identifier\",next:\"@pop\"},\"@default\":\"identifier\"}}],[/[;=]/,{cases:{\"@eos\":{token:\"delimiter\",next:\"@pop\"},\"@default\":\"delimiter\"}}]]}};export{e as conf,o as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/3TATJI7h.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"<\",close:\">\"}],folding:{markers:{start:new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?region\\\\b)|(?:<editor-fold\\\\b))\"),end:new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?endregion\\\\b)|(?:</editor-fold>))\")}}},t={defaultToken:\"\",tokenPostfix:\".java\",keywords:[\"abstract\",\"continue\",\"for\",\"new\",\"switch\",\"assert\",\"default\",\"goto\",\"package\",\"synchronized\",\"boolean\",\"do\",\"if\",\"private\",\"this\",\"break\",\"double\",\"implements\",\"protected\",\"throw\",\"byte\",\"else\",\"import\",\"public\",\"throws\",\"case\",\"enum\",\"instanceof\",\"return\",\"transient\",\"catch\",\"extends\",\"int\",\"short\",\"try\",\"char\",\"final\",\"interface\",\"static\",\"void\",\"class\",\"finally\",\"long\",\"strictfp\",\"volatile\",\"const\",\"float\",\"native\",\"super\",\"while\",\"true\",\"false\",\"yield\",\"record\",\"sealed\",\"non-sealed\",\"permits\"],operators:[\"=\",\">\",\"<\",\"!\",\"~\",\"?\",\":\",\"==\",\"<=\",\">=\",\"!=\",\"&&\",\"||\",\"++\",\"--\",\"+\",\"-\",\"*\",\"/\",\"&\",\"|\",\"^\",\"%\",\"<<\",\">>\",\">>>\",\"+=\",\"-=\",\"*=\",\"/=\",\"&=\",\"|=\",\"^=\",\"%=\",\"<<=\",\">>=\",\">>>=\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\\d+(_+\\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,tokenizer:{root:[[\"non-sealed\",\"keyword.non-sealed\"],[/[a-zA-Z_$][\\w$]*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/@\\s*[a-zA-Z_\\$][\\w\\$]*/,\"annotation\"],[/(@digits)[eE]([\\-+]?(@digits))?[fFdD]?/,\"number.float\"],[/(@digits)\\.(@digits)([eE][\\-+]?(@digits))?[fFdD]?/,\"number.float\"],[/0[xX](@hexdigits)[Ll]?/,\"number.hex\"],[/0(@octaldigits)[Ll]?/,\"number.octal\"],[/0[bB](@binarydigits)[Ll]?/,\"number.binary\"],[/(@digits)[fFdD]/,\"number.float\"],[/(@digits)[lL]?/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"\"\"/,\"string\",\"@multistring\"],[/\"/,\"string\",\"@string\"],[/'[^\\\\']'/,\"string\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",\"string\"]],[/'/,\"string.invalid\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\/\\*\\*(?!\\/)/,\"comment.doc\",\"@javadoc\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],javadoc:[[/[^\\/*]+/,\"comment.doc\"],[/\\/\\*/,\"comment.doc.invalid\"],[/\\*\\//,\"comment.doc\",\"@pop\"],[/[\\/*]/,\"comment.doc\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string\",\"@pop\"]],multistring:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"\"\"/,\"string\",\"@pop\"],[/./,\"string\"]]}};export{e as conf,t as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/3cNudfSz.js",
    "content": "import{a2 as O,a1 as I}from\"./CU_MfyYc.js\";/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var N=Object.defineProperty,M=Object.getOwnPropertyDescriptor,R=Object.getOwnPropertyNames,K=Object.prototype.hasOwnProperty,E=(e,t,i,o)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let n of R(t))!K.call(e,n)&&n!==i&&N(e,n,{get:()=>t[n],enumerable:!(o=M(t,n))||o.enumerable});return e},H=(e,t,i)=>(E(e,t,\"default\"),i),a={};H(a,I);var V=class{constructor(e,t){this._modeId=e,this._defaults=t,this._worker=null,this._client=null,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker()),this._updateExtraLibsToken=0,this._extraLibsChangeListener=this._defaults.onDidExtraLibsChange(()=>this._updateExtraLibs())}dispose(){this._configChangeListener.dispose(),this._extraLibsChangeListener.dispose(),this._stopWorker()}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}async _updateExtraLibs(){if(!this._worker)return;const e=++this._updateExtraLibsToken,t=await this._worker.getProxy();this._updateExtraLibsToken===e&&t.updateExtraLibs(this._defaults.getExtraLibs())}_getClient(){return this._client||(this._client=(async()=>(this._worker=a.editor.createWebWorker({moduleId:\"vs/language/typescript/tsWorker\",label:this._modeId,keepIdleModels:!0,createData:{compilerOptions:this._defaults.getCompilerOptions(),extraLibs:this._defaults.getExtraLibs(),customWorkerPath:this._defaults.workerOptions.customWorkerPath,inlayHintsOptions:this._defaults.inlayHintsOptions}}),this._defaults.getEagerModelSync()?await this._worker.withSyncedResources(a.editor.getModels().filter(e=>e.getLanguageId()===this._modeId).map(e=>e.uri)):await this._worker.getProxy()))()),this._client}async getLanguageServiceWorker(...e){const t=await this._getClient();return this._worker&&await this._worker.withSyncedResources(e),t}},r={};r[\"lib.d.ts\"]=!0;r[\"lib.decorators.d.ts\"]=!0;r[\"lib.decorators.legacy.d.ts\"]=!0;r[\"lib.dom.asynciterable.d.ts\"]=!0;r[\"lib.dom.d.ts\"]=!0;r[\"lib.dom.iterable.d.ts\"]=!0;r[\"lib.es2015.collection.d.ts\"]=!0;r[\"lib.es2015.core.d.ts\"]=!0;r[\"lib.es2015.d.ts\"]=!0;r[\"lib.es2015.generator.d.ts\"]=!0;r[\"lib.es2015.iterable.d.ts\"]=!0;r[\"lib.es2015.promise.d.ts\"]=!0;r[\"lib.es2015.proxy.d.ts\"]=!0;r[\"lib.es2015.reflect.d.ts\"]=!0;r[\"lib.es2015.symbol.d.ts\"]=!0;r[\"lib.es2015.symbol.wellknown.d.ts\"]=!0;r[\"lib.es2016.array.include.d.ts\"]=!0;r[\"lib.es2016.d.ts\"]=!0;r[\"lib.es2016.full.d.ts\"]=!0;r[\"lib.es2016.intl.d.ts\"]=!0;r[\"lib.es2017.d.ts\"]=!0;r[\"lib.es2017.date.d.ts\"]=!0;r[\"lib.es2017.full.d.ts\"]=!0;r[\"lib.es2017.intl.d.ts\"]=!0;r[\"lib.es2017.object.d.ts\"]=!0;r[\"lib.es2017.sharedmemory.d.ts\"]=!0;r[\"lib.es2017.string.d.ts\"]=!0;r[\"lib.es2017.typedarrays.d.ts\"]=!0;r[\"lib.es2018.asyncgenerator.d.ts\"]=!0;r[\"lib.es2018.asynciterable.d.ts\"]=!0;r[\"lib.es2018.d.ts\"]=!0;r[\"lib.es2018.full.d.ts\"]=!0;r[\"lib.es2018.intl.d.ts\"]=!0;r[\"lib.es2018.promise.d.ts\"]=!0;r[\"lib.es2018.regexp.d.ts\"]=!0;r[\"lib.es2019.array.d.ts\"]=!0;r[\"lib.es2019.d.ts\"]=!0;r[\"lib.es2019.full.d.ts\"]=!0;r[\"lib.es2019.intl.d.ts\"]=!0;r[\"lib.es2019.object.d.ts\"]=!0;r[\"lib.es2019.string.d.ts\"]=!0;r[\"lib.es2019.symbol.d.ts\"]=!0;r[\"lib.es2020.bigint.d.ts\"]=!0;r[\"lib.es2020.d.ts\"]=!0;r[\"lib.es2020.date.d.ts\"]=!0;r[\"lib.es2020.full.d.ts\"]=!0;r[\"lib.es2020.intl.d.ts\"]=!0;r[\"lib.es2020.number.d.ts\"]=!0;r[\"lib.es2020.promise.d.ts\"]=!0;r[\"lib.es2020.sharedmemory.d.ts\"]=!0;r[\"lib.es2020.string.d.ts\"]=!0;r[\"lib.es2020.symbol.wellknown.d.ts\"]=!0;r[\"lib.es2021.d.ts\"]=!0;r[\"lib.es2021.full.d.ts\"]=!0;r[\"lib.es2021.intl.d.ts\"]=!0;r[\"lib.es2021.promise.d.ts\"]=!0;r[\"lib.es2021.string.d.ts\"]=!0;r[\"lib.es2021.weakref.d.ts\"]=!0;r[\"lib.es2022.array.d.ts\"]=!0;r[\"lib.es2022.d.ts\"]=!0;r[\"lib.es2022.error.d.ts\"]=!0;r[\"lib.es2022.full.d.ts\"]=!0;r[\"lib.es2022.intl.d.ts\"]=!0;r[\"lib.es2022.object.d.ts\"]=!0;r[\"lib.es2022.regexp.d.ts\"]=!0;r[\"lib.es2022.sharedmemory.d.ts\"]=!0;r[\"lib.es2022.string.d.ts\"]=!0;r[\"lib.es2023.array.d.ts\"]=!0;r[\"lib.es2023.collection.d.ts\"]=!0;r[\"lib.es2023.d.ts\"]=!0;r[\"lib.es2023.full.d.ts\"]=!0;r[\"lib.es5.d.ts\"]=!0;r[\"lib.es6.d.ts\"]=!0;r[\"lib.esnext.collection.d.ts\"]=!0;r[\"lib.esnext.d.ts\"]=!0;r[\"lib.esnext.decorators.d.ts\"]=!0;r[\"lib.esnext.disposable.d.ts\"]=!0;r[\"lib.esnext.full.d.ts\"]=!0;r[\"lib.esnext.intl.d.ts\"]=!0;r[\"lib.esnext.object.d.ts\"]=!0;r[\"lib.esnext.promise.d.ts\"]=!0;r[\"lib.scripthost.d.ts\"]=!0;r[\"lib.webworker.asynciterable.d.ts\"]=!0;r[\"lib.webworker.d.ts\"]=!0;r[\"lib.webworker.importscripts.d.ts\"]=!0;r[\"lib.webworker.iterable.d.ts\"]=!0;function D(e,t,i=0){if(typeof e==\"string\")return e;if(e===void 0)return\"\";let o=\"\";if(i){o+=t;for(let n=0;n<i;n++)o+=\"  \"}if(o+=e.messageText,i++,e.next)for(const n of e.next)o+=D(n,t,i);return o}function w(e){return e?e.map(t=>t.text).join(\"\"):\"\"}var _=class{constructor(e){this._worker=e}_textSpanToRange(e,t){let i=e.getPositionAt(t.start),o=e.getPositionAt(t.start+t.length),{lineNumber:n,column:c}=i,{lineNumber:u,column:s}=o;return{startLineNumber:n,startColumn:c,endLineNumber:u,endColumn:s}}},W=class{constructor(e){this._worker=e,this._libFiles={},this._hasFetchedLibFiles=!1,this._fetchLibFilesPromise=null}isLibFile(e){return e&&e.path.indexOf(\"/lib.\")===0?!!r[e.path.slice(1)]:!1}getOrCreateModel(e){const t=a.Uri.parse(e),i=a.editor.getModel(t);if(i)return i;if(this.isLibFile(t)&&this._hasFetchedLibFiles)return a.editor.createModel(this._libFiles[t.path.slice(1)],\"typescript\",t);const o=O.getExtraLibs()[e];return o?a.editor.createModel(o.content,\"typescript\",t):null}_containsLibFile(e){for(let t of e)if(this.isLibFile(t))return!0;return!1}async fetchLibFilesIfNecessary(e){this._containsLibFile(e)&&await this._fetchLibFiles()}_fetchLibFiles(){return this._fetchLibFilesPromise||(this._fetchLibFilesPromise=this._worker().then(e=>e.getLibFiles()).then(e=>{this._hasFetchedLibFiles=!0,this._libFiles=e})),this._fetchLibFilesPromise}},j=class extends _{constructor(e,t,i,o){super(o),this._libFiles=e,this._defaults=t,this._selector=i,this._disposables=[],this._listener=Object.create(null);const n=s=>{if(s.getLanguageId()!==i)return;const l=()=>{const{onlyVisible:h}=this._defaults.getDiagnosticsOptions();h?s.isAttachedToEditor()&&this._doValidate(s):this._doValidate(s)};let g;const d=s.onDidChangeContent(()=>{clearTimeout(g),g=window.setTimeout(l,500)}),b=s.onDidChangeAttached(()=>{const{onlyVisible:h}=this._defaults.getDiagnosticsOptions();h&&(s.isAttachedToEditor()?l():a.editor.setModelMarkers(s,this._selector,[]))});this._listener[s.uri.toString()]={dispose(){d.dispose(),b.dispose(),clearTimeout(g)}},l()},c=s=>{a.editor.setModelMarkers(s,this._selector,[]);const l=s.uri.toString();this._listener[l]&&(this._listener[l].dispose(),delete this._listener[l])};this._disposables.push(a.editor.onDidCreateModel(s=>n(s))),this._disposables.push(a.editor.onWillDisposeModel(c)),this._disposables.push(a.editor.onDidChangeModelLanguage(s=>{c(s.model),n(s.model)})),this._disposables.push({dispose(){for(const s of a.editor.getModels())c(s)}});const u=()=>{for(const s of a.editor.getModels())c(s),n(s)};this._disposables.push(this._defaults.onDidChange(u)),this._disposables.push(this._defaults.onDidExtraLibsChange(u)),a.editor.getModels().forEach(s=>n(s))}dispose(){this._disposables.forEach(e=>e&&e.dispose()),this._disposables=[]}async _doValidate(e){const t=await this._worker(e.uri);if(e.isDisposed())return;const i=[],{noSyntaxValidation:o,noSemanticValidation:n,noSuggestionDiagnostics:c}=this._defaults.getDiagnosticsOptions();o||i.push(t.getSyntacticDiagnostics(e.uri.toString())),n||i.push(t.getSemanticDiagnostics(e.uri.toString())),c||i.push(t.getSuggestionDiagnostics(e.uri.toString()));const u=await Promise.all(i);if(!u||e.isDisposed())return;const s=u.reduce((g,d)=>d.concat(g),[]).filter(g=>(this._defaults.getDiagnosticsOptions().diagnosticCodesToIgnore||[]).indexOf(g.code)===-1),l=s.map(g=>g.relatedInformation||[]).reduce((g,d)=>d.concat(g),[]).map(g=>g.file?a.Uri.parse(g.file.fileName):null);await this._libFiles.fetchLibFilesIfNecessary(l),!e.isDisposed()&&a.editor.setModelMarkers(e,this._selector,s.map(g=>this._convertDiagnostics(e,g)))}_convertDiagnostics(e,t){const i=t.start||0,o=t.length||1,{lineNumber:n,column:c}=e.getPositionAt(i),{lineNumber:u,column:s}=e.getPositionAt(i+o),l=[];return t.reportsUnnecessary&&l.push(a.MarkerTag.Unnecessary),t.reportsDeprecated&&l.push(a.MarkerTag.Deprecated),{severity:this._tsDiagnosticCategoryToMarkerSeverity(t.category),startLineNumber:n,startColumn:c,endLineNumber:u,endColumn:s,message:D(t.messageText,`\n`),code:t.code.toString(),tags:l,relatedInformation:this._convertRelatedInformation(e,t.relatedInformation)}}_convertRelatedInformation(e,t){if(!t)return[];const i=[];return t.forEach(o=>{let n=e;if(o.file&&(n=this._libFiles.getOrCreateModel(o.file.fileName)),!n)return;const c=o.start||0,u=o.length||1,{lineNumber:s,column:l}=n.getPositionAt(c),{lineNumber:g,column:d}=n.getPositionAt(c+u);i.push({resource:n.uri,startLineNumber:s,startColumn:l,endLineNumber:g,endColumn:d,message:D(o.messageText,`\n`)})}),i}_tsDiagnosticCategoryToMarkerSeverity(e){switch(e){case 1:return a.MarkerSeverity.Error;case 3:return a.MarkerSeverity.Info;case 0:return a.MarkerSeverity.Warning;case 2:return a.MarkerSeverity.Hint}return a.MarkerSeverity.Info}},B=class C extends _{get triggerCharacters(){return[\".\"]}async provideCompletionItems(t,i,o,n){const c=t.getWordUntilPosition(i),u=new a.Range(i.lineNumber,c.startColumn,i.lineNumber,c.endColumn),s=t.uri,l=t.getOffsetAt(i),g=await this._worker(s);if(t.isDisposed())return;const d=await g.getCompletionsAtPosition(s.toString(),l);return!d||t.isDisposed()?void 0:{suggestions:d.entries.map(h=>{let y=u;if(h.replacementSpan){const S=t.getPositionAt(h.replacementSpan.start),x=t.getPositionAt(h.replacementSpan.start+h.replacementSpan.length);y=new a.Range(S.lineNumber,S.column,x.lineNumber,x.column)}const v=[];return h.kindModifiers!==void 0&&h.kindModifiers.indexOf(\"deprecated\")!==-1&&v.push(a.languages.CompletionItemTag.Deprecated),{uri:s,position:i,offset:l,range:y,label:h.name,insertText:h.name,sortText:h.sortText,kind:C.convertKind(h.kind),tags:v}})}}async resolveCompletionItem(t,i){const o=t,n=o.uri,c=o.position,u=o.offset,l=await(await this._worker(n)).getCompletionEntryDetails(n.toString(),u,o.label);return l?{uri:n,position:c,label:l.name,kind:C.convertKind(l.kind),detail:w(l.displayParts),documentation:{value:C.createDocumentationString(l)}}:o}static convertKind(t){switch(t){case f.primitiveType:case f.keyword:return a.languages.CompletionItemKind.Keyword;case f.variable:case f.localVariable:return a.languages.CompletionItemKind.Variable;case f.memberVariable:case f.memberGetAccessor:case f.memberSetAccessor:return a.languages.CompletionItemKind.Field;case f.function:case f.memberFunction:case f.constructSignature:case f.callSignature:case f.indexSignature:return a.languages.CompletionItemKind.Function;case f.enum:return a.languages.CompletionItemKind.Enum;case f.module:return a.languages.CompletionItemKind.Module;case f.class:return a.languages.CompletionItemKind.Class;case f.interface:return a.languages.CompletionItemKind.Interface;case f.warning:return a.languages.CompletionItemKind.File}return a.languages.CompletionItemKind.Property}static createDocumentationString(t){let i=w(t.documentation);if(t.tags)for(const o of t.tags)i+=`\n\n${T(o)}`;return i}};function T(e){let t=`*@${e.name}*`;if(e.name===\"param\"&&e.text){const[i,...o]=e.text;t+=`\\`${i.text}\\``,o.length>0&&(t+=` — ${o.map(n=>n.text).join(\" \")}`)}else Array.isArray(e.text)?t+=` — ${e.text.map(i=>i.text).join(\" \")}`:e.text&&(t+=` — ${e.text}`);return t}var U=class P extends _{constructor(){super(...arguments),this.signatureHelpTriggerCharacters=[\"(\",\",\"]}static _toSignatureHelpTriggerReason(t){switch(t.triggerKind){case a.languages.SignatureHelpTriggerKind.TriggerCharacter:return t.triggerCharacter?t.isRetrigger?{kind:\"retrigger\",triggerCharacter:t.triggerCharacter}:{kind:\"characterTyped\",triggerCharacter:t.triggerCharacter}:{kind:\"invoked\"};case a.languages.SignatureHelpTriggerKind.ContentChange:return t.isRetrigger?{kind:\"retrigger\"}:{kind:\"invoked\"};case a.languages.SignatureHelpTriggerKind.Invoke:default:return{kind:\"invoked\"}}}async provideSignatureHelp(t,i,o,n){const c=t.uri,u=t.getOffsetAt(i),s=await this._worker(c);if(t.isDisposed())return;const l=await s.getSignatureHelpItems(c.toString(),u,{triggerReason:P._toSignatureHelpTriggerReason(n)});if(!l||t.isDisposed())return;const g={activeSignature:l.selectedItemIndex,activeParameter:l.argumentIndex,signatures:[]};return l.items.forEach(d=>{const b={label:\"\",parameters:[]};b.documentation={value:w(d.documentation)},b.label+=w(d.prefixDisplayParts),d.parameters.forEach((h,y,v)=>{const S=w(h.displayParts),x={label:S,documentation:{value:w(h.documentation)}};b.label+=S,b.parameters.push(x),y<v.length-1&&(b.label+=w(d.separatorDisplayParts))}),b.label+=w(d.suffixDisplayParts),g.signatures.push(b)}),{value:g,dispose(){}}}},$=class extends _{async provideHover(e,t,i){const o=e.uri,n=e.getOffsetAt(t),c=await this._worker(o);if(e.isDisposed())return;const u=await c.getQuickInfoAtPosition(o.toString(),n);if(!u||e.isDisposed())return;const s=w(u.documentation),l=u.tags?u.tags.map(d=>T(d)).join(`  \n\n`):\"\",g=w(u.displayParts);return{range:this._textSpanToRange(e,u.textSpan),contents:[{value:\"```typescript\\n\"+g+\"\\n```\\n\"},{value:s+(l?`\n\n`+l:\"\")}]}}},z=class extends _{async provideDocumentHighlights(e,t,i){const o=e.uri,n=e.getOffsetAt(t),c=await this._worker(o);if(e.isDisposed())return;const u=await c.getDocumentHighlights(o.toString(),n,[o.toString()]);if(!(!u||e.isDisposed()))return u.flatMap(s=>s.highlightSpans.map(l=>({range:this._textSpanToRange(e,l.textSpan),kind:l.kind===\"writtenReference\"?a.languages.DocumentHighlightKind.Write:a.languages.DocumentHighlightKind.Text})))}},G=class extends _{constructor(e,t){super(t),this._libFiles=e}async provideDefinition(e,t,i){const o=e.uri,n=e.getOffsetAt(t),c=await this._worker(o);if(e.isDisposed())return;const u=await c.getDefinitionAtPosition(o.toString(),n);if(!u||e.isDisposed()||(await this._libFiles.fetchLibFilesIfNecessary(u.map(l=>a.Uri.parse(l.fileName))),e.isDisposed()))return;const s=[];for(let l of u){const g=this._libFiles.getOrCreateModel(l.fileName);g&&s.push({uri:g.uri,range:this._textSpanToRange(g,l.textSpan)})}return s}},J=class extends _{constructor(e,t){super(t),this._libFiles=e}async provideReferences(e,t,i,o){const n=e.uri,c=e.getOffsetAt(t),u=await this._worker(n);if(e.isDisposed())return;const s=await u.getReferencesAtPosition(n.toString(),c);if(!s||e.isDisposed()||(await this._libFiles.fetchLibFilesIfNecessary(s.map(g=>a.Uri.parse(g.fileName))),e.isDisposed()))return;const l=[];for(let g of s){const d=this._libFiles.getOrCreateModel(g.fileName);d&&l.push({uri:d.uri,range:this._textSpanToRange(d,g.textSpan)})}return l}},Q=class extends _{async provideDocumentSymbols(e,t){const i=e.uri,o=await this._worker(i);if(e.isDisposed())return;const n=await o.getNavigationTree(i.toString());if(!n||e.isDisposed())return;const c=(s,l)=>{var d;return{name:s.text,detail:\"\",kind:m[s.kind]||a.languages.SymbolKind.Variable,range:this._textSpanToRange(e,s.spans[0]),selectionRange:this._textSpanToRange(e,s.spans[0]),tags:[],children:(d=s.childItems)==null?void 0:d.map(b=>c(b,s.text)),containerName:l}};return n.childItems?n.childItems.map(s=>c(s)):[]}},p,f=(p=class{},p.unknown=\"\",p.keyword=\"keyword\",p.script=\"script\",p.module=\"module\",p.class=\"class\",p.interface=\"interface\",p.type=\"type\",p.enum=\"enum\",p.variable=\"var\",p.localVariable=\"local var\",p.function=\"function\",p.localFunction=\"local function\",p.memberFunction=\"method\",p.memberGetAccessor=\"getter\",p.memberSetAccessor=\"setter\",p.memberVariable=\"property\",p.constructorImplementation=\"constructor\",p.callSignature=\"call\",p.indexSignature=\"index\",p.constructSignature=\"construct\",p.parameter=\"parameter\",p.typeParameter=\"type parameter\",p.primitiveType=\"primitive type\",p.label=\"label\",p.alias=\"alias\",p.const=\"const\",p.let=\"let\",p.warning=\"warning\",p),m=Object.create(null);m[f.module]=a.languages.SymbolKind.Module;m[f.class]=a.languages.SymbolKind.Class;m[f.enum]=a.languages.SymbolKind.Enum;m[f.interface]=a.languages.SymbolKind.Interface;m[f.memberFunction]=a.languages.SymbolKind.Method;m[f.memberVariable]=a.languages.SymbolKind.Property;m[f.memberGetAccessor]=a.languages.SymbolKind.Property;m[f.memberSetAccessor]=a.languages.SymbolKind.Property;m[f.variable]=a.languages.SymbolKind.Variable;m[f.const]=a.languages.SymbolKind.Variable;m[f.localVariable]=a.languages.SymbolKind.Variable;m[f.variable]=a.languages.SymbolKind.Variable;m[f.function]=a.languages.SymbolKind.Function;m[f.localFunction]=a.languages.SymbolKind.Function;var k=class extends _{static _convertOptions(e){return{ConvertTabsToSpaces:e.insertSpaces,TabSize:e.tabSize,IndentSize:e.tabSize,IndentStyle:2,NewLineCharacter:`\n`,InsertSpaceAfterCommaDelimiter:!0,InsertSpaceAfterSemicolonInForStatements:!0,InsertSpaceBeforeAndAfterBinaryOperators:!0,InsertSpaceAfterKeywordsInControlFlowStatements:!0,InsertSpaceAfterFunctionKeywordForAnonymousFunctions:!0,InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis:!1,InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets:!1,InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces:!1,PlaceOpenBraceOnNewLineForControlBlocks:!1,PlaceOpenBraceOnNewLineForFunctions:!1}}_convertTextChanges(e,t){return{text:t.newText,range:this._textSpanToRange(e,t.span)}}},q=class extends k{constructor(){super(...arguments),this.canFormatMultipleRanges=!1}async provideDocumentRangeFormattingEdits(e,t,i,o){const n=e.uri,c=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),u=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),s=await this._worker(n);if(e.isDisposed())return;const l=await s.getFormattingEditsForRange(n.toString(),c,u,k._convertOptions(i));if(!(!l||e.isDisposed()))return l.map(g=>this._convertTextChanges(e,g))}},X=class extends k{get autoFormatTriggerCharacters(){return[\";\",\"}\",`\n`]}async provideOnTypeFormattingEdits(e,t,i,o,n){const c=e.uri,u=e.getOffsetAt(t),s=await this._worker(c);if(e.isDisposed())return;const l=await s.getFormattingEditsAfterKeystroke(c.toString(),u,i,k._convertOptions(o));if(!(!l||e.isDisposed()))return l.map(g=>this._convertTextChanges(e,g))}},Y=class extends k{async provideCodeActions(e,t,i,o){const n=e.uri,c=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),u=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),s=k._convertOptions(e.getOptions()),l=i.markers.filter(h=>h.code).map(h=>h.code).map(Number),g=await this._worker(n);if(e.isDisposed())return;const d=await g.getCodeFixesAtPosition(n.toString(),c,u,l,s);return!d||e.isDisposed()?{actions:[],dispose:()=>{}}:{actions:d.filter(h=>h.changes.filter(y=>y.isNewFile).length===0).map(h=>this._tsCodeFixActionToMonacoCodeAction(e,i,h)),dispose:()=>{}}}_tsCodeFixActionToMonacoCodeAction(e,t,i){const o=[];for(const c of i.changes)for(const u of c.textChanges)o.push({resource:e.uri,versionId:void 0,textEdit:{range:this._textSpanToRange(e,u.span),text:u.newText}});return{title:i.description,edit:{edits:o},diagnostics:t.markers,kind:\"quickfix\"}}},Z=class extends _{constructor(e,t){super(t),this._libFiles=e}async provideRenameEdits(e,t,i,o){const n=e.uri,c=n.toString(),u=e.getOffsetAt(t),s=await this._worker(n);if(e.isDisposed())return;const l=await s.getRenameInfo(c,u,{allowRenameOfImportPath:!1});if(l.canRename===!1)return{edits:[],rejectReason:l.localizedErrorMessage};if(l.fileToRename!==void 0)throw new Error(\"Renaming files is not supported.\");const g=await s.findRenameLocations(c,u,!1,!1,!1);if(!g||e.isDisposed())return;const d=[];for(const b of g){const h=this._libFiles.getOrCreateModel(b.fileName);if(h)d.push({resource:h.uri,versionId:void 0,textEdit:{range:this._textSpanToRange(h,b.textSpan),text:i}});else throw new Error(`Unknown file ${b.fileName}.`)}return{edits:d}}},ee=class extends _{async provideInlayHints(e,t,i){const o=e.uri,n=o.toString(),c=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),u=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),s=await this._worker(o);return e.isDisposed()?null:{hints:(await s.provideInlayHints(n,c,u)).map(d=>({...d,label:d.text,position:e.getPositionAt(d.position),kind:this._convertHintKind(d.kind)})),dispose:()=>{}}}_convertHintKind(e){switch(e){case\"Parameter\":return a.languages.InlayHintKind.Parameter;case\"Type\":return a.languages.InlayHintKind.Type;default:return a.languages.InlayHintKind.Type}}},A,F;function re(e){F=L(e,\"typescript\")}function ie(e){A=L(e,\"javascript\")}function ne(){return new Promise((e,t)=>{if(!A)return t(\"JavaScript not registered!\");e(A)})}function ae(){return new Promise((e,t)=>{if(!F)return t(\"TypeScript not registered!\");e(F)})}function L(e,t){const i=[],o=new V(t,e),n=(...s)=>o.getLanguageServiceWorker(...s),c=new W(n);function u(){const{modeConfiguration:s}=e;te(i),s.completionItems&&i.push(a.languages.registerCompletionItemProvider(t,new B(n))),s.signatureHelp&&i.push(a.languages.registerSignatureHelpProvider(t,new U(n))),s.hovers&&i.push(a.languages.registerHoverProvider(t,new $(n))),s.documentHighlights&&i.push(a.languages.registerDocumentHighlightProvider(t,new z(n))),s.definitions&&i.push(a.languages.registerDefinitionProvider(t,new G(c,n))),s.references&&i.push(a.languages.registerReferenceProvider(t,new J(c,n))),s.documentSymbols&&i.push(a.languages.registerDocumentSymbolProvider(t,new Q(n))),s.rename&&i.push(a.languages.registerRenameProvider(t,new Z(c,n))),s.documentRangeFormattingEdits&&i.push(a.languages.registerDocumentRangeFormattingEditProvider(t,new q(n))),s.onTypeFormattingEdits&&i.push(a.languages.registerOnTypeFormattingEditProvider(t,new X(n))),s.codeActions&&i.push(a.languages.registerCodeActionProvider(t,new Y(n))),s.inlayHints&&i.push(a.languages.registerInlayHintsProvider(t,new ee(n))),s.diagnostics&&i.push(new j(c,e,t,n))}return u(),n}function te(e){for(;e.length;)e.pop().dispose()}export{_ as Adapter,Y as CodeActionAdaptor,G as DefinitionAdapter,j as DiagnosticsAdapter,z as DocumentHighlightAdapter,q as FormatAdapter,k as FormatHelper,X as FormatOnTypeAdapter,ee as InlayHintsAdapter,f as Kind,W as LibFiles,Q as OutlineAdapter,$ as QuickInfoAdapter,J as ReferenceAdapter,Z as RenameAdapter,U as SignatureHelpAdapter,B as SuggestAdapter,V as WorkerManager,D as flattenDiagnosticMessageText,ne as getJavaScriptWorker,ae as getTypeScriptWorker,ie as setupJavaScript,re as setupTypeScript};\n"
  },
  {
    "path": "jesse/static/_nuxt/3e1v2bzS.js",
    "content": "const r=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBorder\":\"#1085FF\",\"activityBar.background\":\"#21252B\",\"activityBar.border\":\"#0D1117\",\"activityBar.foreground\":\"#C6CCD7\",\"activityBar.inactiveForeground\":\"#5F6672\",\"activityBarBadge.background\":\"#E06C75\",\"activityBarBadge.foreground\":\"#ffffff\",\"breadcrumb.focusForeground\":\"#C6CCD7\",\"breadcrumb.foreground\":\"#5F6672\",\"button.background\":\"#E06C75\",\"button.foreground\":\"#ffffff\",\"button.hoverBackground\":\"#E48189\",\"button.secondaryBackground\":\"#0D1117\",\"button.secondaryForeground\":\"#ffffff\",\"checkbox.background\":\"#61AFEF\",\"checkbox.foreground\":\"#ffffff\",\"contrastBorder\":\"#0D1117\",\"debugToolBar.background\":\"#181A1F\",\"diffEditor.border\":\"#0D1117\",\"diffEditor.diagonalFill\":\"#0D1117\",\"diffEditor.insertedLineBackground\":\"#CBF6AC0D\",\"diffEditor.insertedTextBackground\":\"#CBF6AC1A\",\"diffEditor.removedLineBackground\":\"#FF9FA80D\",\"diffEditor.removedTextBackground\":\"#FF9FA81A\",\"dropdown.background\":\"#181A1F\",\"dropdown.border\":\"#0D1117\",\"editor.background\":\"#21252B\",\"editor.findMatchBackground\":\"#00000000\",\"editor.findMatchBorder\":\"#1085FF\",\"editor.findMatchHighlightBackground\":\"#00000000\",\"editor.findMatchHighlightBorder\":\"#C6CCD7\",\"editor.foreground\":\"#A9B2C3\",\"editor.lineHighlightBackground\":\"#A9B2C31A\",\"editor.lineHighlightBorder\":\"#00000000\",\"editor.linkedEditingBackground\":\"#0D1117\",\"editor.rangeHighlightBorder\":\"#C6CCD7\",\"editor.selectionBackground\":\"#A9B2C333\",\"editor.selectionHighlightBackground\":\"#A9B2C31A\",\"editor.selectionHighlightBorder\":\"#C6CCD7\",\"editor.wordHighlightBackground\":\"#00000000\",\"editor.wordHighlightBorder\":\"#1085FF\",\"editor.wordHighlightStrongBackground\":\"#00000000\",\"editor.wordHighlightStrongBorder\":\"#1085FF\",\"editorBracketHighlight.foreground1\":\"#A9B2C3\",\"editorBracketHighlight.foreground2\":\"#61AFEF\",\"editorBracketHighlight.foreground3\":\"#E5C07B\",\"editorBracketHighlight.foreground4\":\"#E06C75\",\"editorBracketHighlight.foreground5\":\"#98C379\",\"editorBracketHighlight.foreground6\":\"#B57EDC\",\"editorBracketHighlight.unexpectedBracket.foreground\":\"#D74E42\",\"editorBracketMatch.background\":\"#00000000\",\"editorBracketMatch.border\":\"#1085FF\",\"editorCursor.foreground\":\"#A9B2C3\",\"editorError.foreground\":\"#D74E42\",\"editorGroup.border\":\"#0D1117\",\"editorGroup.emptyBackground\":\"#181A1F\",\"editorGroupHeader.tabsBackground\":\"#181A1F\",\"editorGutter.addedBackground\":\"#98C379\",\"editorGutter.deletedBackground\":\"#E06C75\",\"editorGutter.modifiedBackground\":\"#D19A66\",\"editorHoverWidget.background\":\"#181A1F\",\"editorHoverWidget.border\":\"#1085FF\",\"editorIndentGuide.activeBackground\":\"#A9B2C333\",\"editorIndentGuide.background\":\"#0D1117\",\"editorInfo.foreground\":\"#1085FF\",\"editorInlayHint.background\":\"#00000000\",\"editorInlayHint.foreground\":\"#5F6672\",\"editorLightBulb.foreground\":\"#E9D16C\",\"editorLightBulbAutoFix.foreground\":\"#1085FF\",\"editorLineNumber.activeForeground\":\"#C6CCD7\",\"editorLineNumber.foreground\":\"#5F6672\",\"editorOverviewRuler.addedForeground\":\"#98C379\",\"editorOverviewRuler.border\":\"#0D1117\",\"editorOverviewRuler.deletedForeground\":\"#E06C75\",\"editorOverviewRuler.errorForeground\":\"#D74E42\",\"editorOverviewRuler.findMatchForeground\":\"#1085FF\",\"editorOverviewRuler.infoForeground\":\"#1085FF\",\"editorOverviewRuler.modifiedForeground\":\"#D19A66\",\"editorOverviewRuler.warningForeground\":\"#E9D16C\",\"editorRuler.foreground\":\"#0D1117\",\"editorStickyScroll.background\":\"#181A1F\",\"editorStickyScrollHover.background\":\"#21252B\",\"editorSuggestWidget.background\":\"#181A1F\",\"editorSuggestWidget.border\":\"#1085FF\",\"editorSuggestWidget.selectedBackground\":\"#A9B2C31A\",\"editorWarning.foreground\":\"#E9D16C\",\"editorWhitespace.foreground\":\"#A9B2C31A\",\"editorWidget.background\":\"#181A1F\",\"errorForeground\":\"#D74E42\",\"focusBorder\":\"#1085FF\",\"gitDecoration.deletedResourceForeground\":\"#E06C75\",\"gitDecoration.ignoredResourceForeground\":\"#5F6672\",\"gitDecoration.modifiedResourceForeground\":\"#D19A66\",\"gitDecoration.untrackedResourceForeground\":\"#98C379\",\"input.background\":\"#0D1117\",\"inputOption.activeBorder\":\"#1085FF\",\"inputValidation.errorBackground\":\"#D74E42\",\"inputValidation.errorBorder\":\"#D74E42\",\"inputValidation.infoBackground\":\"#1085FF\",\"inputValidation.infoBorder\":\"#1085FF\",\"inputValidation.infoForeground\":\"#0D1117\",\"inputValidation.warningBackground\":\"#E9D16C\",\"inputValidation.warningBorder\":\"#E9D16C\",\"inputValidation.warningForeground\":\"#0D1117\",\"list.activeSelectionBackground\":\"#A9B2C333\",\"list.activeSelectionForeground\":\"#ffffff\",\"list.errorForeground\":\"#D74E42\",\"list.focusBackground\":\"#A9B2C333\",\"list.hoverBackground\":\"#A9B2C31A\",\"list.inactiveFocusOutline\":\"#5F6672\",\"list.inactiveSelectionBackground\":\"#A9B2C333\",\"list.inactiveSelectionForeground\":\"#C6CCD7\",\"list.warningForeground\":\"#E9D16C\",\"minimap.findMatchHighlight\":\"#1085FF\",\"minimap.selectionHighlight\":\"#C6CCD7\",\"minimapGutter.addedBackground\":\"#98C379\",\"minimapGutter.deletedBackground\":\"#E06C75\",\"minimapGutter.modifiedBackground\":\"#D19A66\",\"notificationCenter.border\":\"#0D1117\",\"notificationCenterHeader.background\":\"#181A1F\",\"notificationToast.border\":\"#0D1117\",\"notifications.background\":\"#181A1F\",\"notifications.border\":\"#0D1117\",\"panel.background\":\"#181A1F\",\"panel.border\":\"#0D1117\",\"panelTitle.inactiveForeground\":\"#5F6672\",\"peekView.border\":\"#1085FF\",\"peekViewEditor.background\":\"#181A1F\",\"peekViewEditor.matchHighlightBackground\":\"#A9B2C333\",\"peekViewResult.background\":\"#181A1F\",\"peekViewResult.matchHighlightBackground\":\"#A9B2C333\",\"peekViewResult.selectionBackground\":\"#A9B2C31A\",\"peekViewResult.selectionForeground\":\"#C6CCD7\",\"peekViewTitle.background\":\"#181A1F\",\"sash.hoverBorder\":\"#A9B2C333\",\"scrollbar.shadow\":\"#00000000\",\"scrollbarSlider.activeBackground\":\"#A9B2C333\",\"scrollbarSlider.background\":\"#A9B2C31A\",\"scrollbarSlider.hoverBackground\":\"#A9B2C333\",\"sideBar.background\":\"#181A1F\",\"sideBar.border\":\"#0D1117\",\"sideBar.foreground\":\"#C6CCD7\",\"sideBarSectionHeader.background\":\"#21252B\",\"statusBar.background\":\"#21252B\",\"statusBar.border\":\"#0D1117\",\"statusBar.debuggingBackground\":\"#21252B\",\"statusBar.debuggingBorder\":\"#56B6C2\",\"statusBar.debuggingForeground\":\"#A9B2C3\",\"statusBar.focusBorder\":\"#A9B2C3\",\"statusBar.foreground\":\"#A9B2C3\",\"statusBar.noFolderBackground\":\"#181A1F\",\"statusBarItem.activeBackground\":\"#0D1117\",\"statusBarItem.errorBackground\":\"#21252B\",\"statusBarItem.errorForeground\":\"#D74E42\",\"statusBarItem.focusBorder\":\"#A9B2C3\",\"statusBarItem.hoverBackground\":\"#181A1F\",\"statusBarItem.hoverForeground\":\"#A9B2C3\",\"statusBarItem.remoteBackground\":\"#21252B\",\"statusBarItem.remoteForeground\":\"#B57EDC\",\"statusBarItem.warningBackground\":\"#21252B\",\"statusBarItem.warningForeground\":\"#E9D16C\",\"tab.activeBackground\":\"#21252B\",\"tab.activeBorderTop\":\"#1085FF\",\"tab.activeForeground\":\"#C6CCD7\",\"tab.border\":\"#0D1117\",\"tab.inactiveBackground\":\"#181A1F\",\"tab.inactiveForeground\":\"#5F6672\",\"tab.lastPinnedBorder\":\"#A9B2C333\",\"terminal.ansiBlack\":\"#5F6672\",\"terminal.ansiBlue\":\"#61AFEF\",\"terminal.ansiBrightBlack\":\"#5F6672\",\"terminal.ansiBrightBlue\":\"#61AFEF\",\"terminal.ansiBrightCyan\":\"#56B6C2\",\"terminal.ansiBrightGreen\":\"#98C379\",\"terminal.ansiBrightMagenta\":\"#B57EDC\",\"terminal.ansiBrightRed\":\"#E06C75\",\"terminal.ansiBrightWhite\":\"#A9B2C3\",\"terminal.ansiBrightYellow\":\"#E5C07B\",\"terminal.ansiCyan\":\"#56B6C2\",\"terminal.ansiGreen\":\"#98C379\",\"terminal.ansiMagenta\":\"#B57EDC\",\"terminal.ansiRed\":\"#E06C75\",\"terminal.ansiWhite\":\"#A9B2C3\",\"terminal.ansiYellow\":\"#E5C07B\",\"terminal.foreground\":\"#A9B2C3\",\"titleBar.activeBackground\":\"#21252B\",\"titleBar.activeForeground\":\"#C6CCD7\",\"titleBar.border\":\"#0D1117\",\"titleBar.inactiveBackground\":\"#21252B\",\"titleBar.inactiveForeground\":\"#5F6672\",\"toolbar.hoverBackground\":\"#A9B2C333\",\"widget.shadow\":\"#00000000\"},\"displayName\":\"Plastic\",\"name\":\"plastic\",\"semanticHighlighting\":true,\"semanticTokenColors\":{},\"tokenColors\":[{\"scope\":[\"comment\",\"punctuation.definition.comment\",\"source.diff\"],\"settings\":{\"foreground\":\"#5F6672\"}},{\"scope\":[\"entity.name.function\",\"support.function\",\"meta.diff.range\",\"punctuation.definition.range.diff\"],\"settings\":{\"foreground\":\"#B57EDC\"}},{\"scope\":[\"keyword\",\"punctuation.definition.keyword\",\"variable.language\",\"markup.deleted\",\"meta.diff.header.from-file\",\"punctuation.definition.deleted\",\"punctuation.definition.from-file.diff\"],\"settings\":{\"foreground\":\"#E06C75\"}},{\"scope\":[\"constant\",\"support.constant\"],\"settings\":{\"foreground\":\"#56B6C2\"}},{\"scope\":[\"storage\",\"support.class\",\"entity.name.namespace\",\"meta.diff.header\"],\"settings\":{\"foreground\":\"#61AFEF\"}},{\"scope\":[\"markup.inline.raw.string\",\"string\",\"markup.inserted\",\"punctuation.definition.inserted\",\"meta.diff.header.to-file\",\"punctuation.definition.to-file.diff\"],\"settings\":{\"foreground\":\"#98C379\"}},{\"scope\":[\"entity.name.section\",\"entity.name.tag\",\"entity.name.type\",\"support.type\"],\"settings\":{\"foreground\":\"#E5C07B\"}},{\"scope\":[\"support.type.property-name\",\"support.variable\",\"variable\"],\"settings\":{\"foreground\":\"#C6CCD7\"}},{\"scope\":[\"entity.other\",\"punctuation.definition.entity\",\"support.other\"],\"settings\":{\"foreground\":\"#D19A66\"}},{\"scope\":[\"meta.brace\",\"punctuation\"],\"settings\":{\"foreground\":\"#A9B2C3\"}},{\"scope\":[\"markup.bold\",\"punctuation.definition.bold\",\"entity.other.attribute-name.id\"],\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":[\"comment\",\"markup.italic\",\"punctuation.definition.italic\"],\"settings\":{\"fontStyle\":\"italic\"}}],\"type\":\"dark\"}'));export{r as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/3kbuJQcV.js",
    "content": "import e from\"./BMYPR7BL.js\";import\"./ySlJ1b_l.js\";import\"./BPhBrDlE.js\";const a=Object.freeze(JSON.parse(`{\"displayName\":\"jinja-html\",\"firstLineMatch\":\"^{% extends [\\\\\"'][^\\\\\"']+[\\\\\"'] %}\",\"foldingStartMarker\":\"(<(?i:(head|table|tr|div|style|script|ul|ol|form|dl))\\\\\\\\b.*?>|{%\\\\\\\\s*(block|filter|for|if|macro|raw))\",\"foldingStopMarker\":\"(</(?i:(head|table|tr|div|style|script|ul|ol|form|dl))\\\\\\\\b.*?>|{%\\\\\\\\s*(endblock|endfilter|endfor|endif|endmacro|endraw)\\\\\\\\s*%})\",\"name\":\"jinja-html\",\"patterns\":[{\"include\":\"source.jinja\"},{\"include\":\"text.html.basic\"}],\"scopeName\":\"text.html.jinja\",\"embeddedLangs\":[\"html\"]}`)),n=[...e,a],t=Object.freeze(JSON.parse(`{\"displayName\":\"Jinja\",\"foldingStartMarker\":\"({%\\\\\\\\s*(block|filter|for|if|macro|raw))\",\"foldingStopMarker\":\"({%\\\\\\\\s*(endblock|endfilter|endfor|endif|endmacro|endraw)\\\\\\\\s*%})\",\"name\":\"jinja\",\"patterns\":[{\"begin\":\"({%)\\\\\\\\s*(raw)\\\\\\\\s*(%})\",\"captures\":{\"1\":{\"name\":\"entity.other.jinja.delimiter.tag\"},\"2\":{\"name\":\"keyword.control.jinja\"},\"3\":{\"name\":\"entity.other.jinja.delimiter.tag\"}},\"end\":\"({%)\\\\\\\\s*(endraw)\\\\\\\\s*(%})\",\"name\":\"comment.block.jinja.raw\"},{\"include\":\"#comments\"},{\"begin\":\"{{-?\",\"captures\":[{\"name\":\"variable.entity.other.jinja.delimiter\"}],\"end\":\"-?}}\",\"name\":\"variable.meta.scope.jinja\",\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\"{%-?\",\"captures\":[{\"name\":\"entity.other.jinja.delimiter.tag\"}],\"end\":\"-?%}\",\"name\":\"meta.scope.jinja.tag\",\"patterns\":[{\"include\":\"#expression\"}]}],\"repository\":{\"comments\":{\"begin\":\"{#-?\",\"captures\":[{\"name\":\"entity.other.jinja.delimiter.comment\"}],\"end\":\"-?#}\",\"name\":\"comment.block.jinja\",\"patterns\":[{\"include\":\"#comments\"}]},\"escaped_char\":{\"match\":\"\\\\\\\\\\\\\\\\x[0-9A-F]{2}\",\"name\":\"constant.character.escape.hex.jinja\"},\"escaped_unicode_char\":{\"captures\":{\"1\":{\"name\":\"constant.character.escape.unicode.16-bit-hex.jinja\"},\"2\":{\"name\":\"constant.character.escape.unicode.32-bit-hex.jinja\"},\"3\":{\"name\":\"constant.character.escape.unicode.name.jinja\"}},\"match\":\"(\\\\\\\\\\\\\\\\U[0-9A-Fa-f]{8})|(\\\\\\\\\\\\\\\\u[0-9A-Fa-f]{4})|(\\\\\\\\\\\\\\\\N\\\\\\\\{[a-zA-Z ]+\\\\\\\\})\"},\"expression\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.jinja\"},\"2\":{\"name\":\"variable.other.jinja.block\"}},\"match\":\"\\\\\\\\s*\\\\\\\\b(block)\\\\\\\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.jinja\"},\"2\":{\"name\":\"variable.other.jinja.filter\"}},\"match\":\"\\\\\\\\s*\\\\\\\\b(filter)\\\\\\\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.jinja\"},\"2\":{\"name\":\"variable.other.jinja.test\"}},\"match\":\"\\\\\\\\s*\\\\\\\\b(is)\\\\\\\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.jinja\"}},\"match\":\"(?<=\\\\\\\\{\\\\\\\\%-|\\\\\\\\{\\\\\\\\%)\\\\\\\\s*\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_]*)\\\\\\\\b(?!\\\\\\\\s*[,=])\"},{\"match\":\"\\\\\\\\b(and|else|if|in|import|not|or|recursive|with(out)?\\\\\\\\s+context)\\\\\\\\b\",\"name\":\"keyword.control.jinja\"},{\"match\":\"\\\\\\\\b(true|false|none)\\\\\\\\b\",\"name\":\"constant.language.jinja\"},{\"match\":\"\\\\\\\\b(loop|super|self|varargs|kwargs)\\\\\\\\b\",\"name\":\"variable.language.jinja\"},{\"match\":\"[a-zA-Z_][a-zA-Z0-9_]*\",\"name\":\"variable.other.jinja\"},{\"match\":\"(\\\\\\\\+|\\\\\\\\-|\\\\\\\\*\\\\\\\\*|\\\\\\\\*|//|/|%)\",\"name\":\"keyword.operator.arithmetic.jinja\"},{\"captures\":{\"1\":{\"name\":\"punctuation.other.jinja\"},\"2\":{\"name\":\"variable.other.jinja.filter\"}},\"match\":\"(\\\\\\\\|)([a-zA-Z_][a-zA-Z0-9_]*)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.other.jinja\"},\"2\":{\"name\":\"variable.other.jinja.attribute\"}},\"match\":\"(\\\\\\\\.)([a-zA-Z_][a-zA-Z0-9_]*)\"},{\"begin\":\"\\\\\\\\[\",\"captures\":[{\"name\":\"punctuation.other.jinja\"}],\"end\":\"\\\\\\\\]\",\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\"\\\\\\\\(\",\"captures\":[{\"name\":\"punctuation.other.jinja\"}],\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\"\\\\\\\\{\",\"captures\":[{\"name\":\"punctuation.other.jinja\"}],\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"#expression\"}]},{\"match\":\"(\\\\\\\\.|:|\\\\\\\\||,)\",\"name\":\"punctuation.other.jinja\"},{\"match\":\"(==|<=|=>|<|>|!=)\",\"name\":\"keyword.operator.comparison.jinja\"},{\"match\":\"=\",\"name\":\"keyword.operator.assignment.jinja\"},{\"begin\":\"\\\\\"\",\"beginCaptures\":[{\"name\":\"punctuation.definition.string.begin.jinja\"}],\"end\":\"\\\\\"\",\"endCaptures\":[{\"name\":\"punctuation.definition.string.end.jinja\"}],\"name\":\"string.quoted.double.jinja\",\"patterns\":[{\"include\":\"#string\"}]},{\"begin\":\"'\",\"beginCaptures\":[{\"name\":\"punctuation.definition.string.begin.jinja\"}],\"end\":\"'\",\"endCaptures\":[{\"name\":\"punctuation.definition.string.end.jinja\"}],\"name\":\"string.quoted.single.jinja\",\"patterns\":[{\"include\":\"#string\"}]},{\"begin\":\"@/\",\"beginCaptures\":[{\"name\":\"punctuation.definition.regexp.begin.jinja\"}],\"end\":\"/\",\"endCaptures\":[{\"name\":\"punctuation.definition.regexp.end.jinja\"}],\"name\":\"string.regexp.jinja\",\"patterns\":[{\"include\":\"#simple_escapes\"}]}]},\"simple_escapes\":{\"captures\":{\"1\":{\"name\":\"constant.character.escape.newline.jinja\"},\"2\":{\"name\":\"constant.character.escape.backlash.jinja\"},\"3\":{\"name\":\"constant.character.escape.double-quote.jinja\"},\"4\":{\"name\":\"constant.character.escape.single-quote.jinja\"},\"5\":{\"name\":\"constant.character.escape.bell.jinja\"},\"6\":{\"name\":\"constant.character.escape.backspace.jinja\"},\"7\":{\"name\":\"constant.character.escape.formfeed.jinja\"},\"8\":{\"name\":\"constant.character.escape.linefeed.jinja\"},\"9\":{\"name\":\"constant.character.escape.return.jinja\"},\"10\":{\"name\":\"constant.character.escape.tab.jinja\"},\"11\":{\"name\":\"constant.character.escape.vertical-tab.jinja\"}},\"match\":\"(\\\\\\\\\\\\\\\\\\\\\\\\n)|(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\)|(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\")|(\\\\\\\\\\\\\\\\')|(\\\\\\\\\\\\\\\\a)|(\\\\\\\\\\\\\\\\b)|(\\\\\\\\\\\\\\\\f)|(\\\\\\\\\\\\\\\\n)|(\\\\\\\\\\\\\\\\r)|(\\\\\\\\\\\\\\\\t)|(\\\\\\\\\\\\\\\\v)\"},\"string\":{\"patterns\":[{\"include\":\"#simple_escapes\"},{\"include\":\"#escaped_char\"},{\"include\":\"#escaped_unicode_char\"}]}},\"scopeName\":\"source.jinja\",\"embeddedLangs\":[\"jinja-html\"]}`)),s=[...n,t];export{s as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/3xVqZejG.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Berry\",\"name\":\"berry\",\"patterns\":[{\"include\":\"#controls\"},{\"include\":\"#strings\"},{\"include\":\"#comment-block\"},{\"include\":\"#comments\"},{\"include\":\"#keywords\"},{\"include\":\"#function\"},{\"include\":\"#member\"},{\"include\":\"#identifier\"},{\"include\":\"#number\"},{\"include\":\"#operator\"}],\"repository\":{\"comment-block\":{\"begin\":\"\\\\\\\\#\\\\\\\\-\",\"end\":\"\\\\\\\\-#\",\"name\":\"comment.berry\",\"patterns\":[{}]},\"comments\":{\"begin\":\"\\\\\\\\#\",\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.berry\",\"patterns\":[{}]},\"controls\":{\"patterns\":[{\"match\":\"\\\\\\\\b(if|elif|else|for|while|do|end|break|continue|return|try|except|raise)\\\\\\\\b\",\"name\":\"keyword.control.berry\"}]},\"function\":{\"patterns\":[{\"match\":\"\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_]*(?=\\\\\\\\s*\\\\\\\\())\",\"name\":\"entity.name.function.berry\"}]},\"identifier\":{\"patterns\":[{\"match\":\"\\\\\\\\b[_A-Za-z]\\\\\\\\w+\\\\\\\\b\",\"name\":\"identifier.berry\"}]},\"keywords\":{\"patterns\":[{\"match\":\"\\\\\\\\b(var|static|def|class|true|false|nil|self|super|import|as|_class)\\\\\\\\b\",\"name\":\"keyword.berry\"}]},\"member\":{\"patterns\":[{\"captures\":{\"0\":{\"name\":\"entity.other.attribute-name.berry\"}},\"match\":\"\\\\\\\\.([a-zA-Z_][a-zA-Z0-9_]*)\"}]},\"number\":{\"patterns\":[{\"match\":\"0x[a-fA-F0-9]+|\\\\\\\\d+|(\\\\\\\\d+\\\\\\\\.?|\\\\\\\\.\\\\\\\\d)\\\\\\\\d*([eE][+-]?\\\\\\\\d+)?\",\"name\":\"constant.numeric.berry\"}]},\"operator\":{\"patterns\":[{\"match\":\"\\\\\\\\(|\\\\\\\\)|\\\\\\\\[|\\\\\\\\]|\\\\\\\\.|-|\\\\\\\\!|~|\\\\\\\\*|/|%|\\\\\\\\+|&|\\\\\\\\^|\\\\\\\\||<|>|=|:\",\"name\":\"keyword.operator.berry\"}]},\"strings\":{\"patterns\":[{\"begin\":\"(\\\\\"|')\",\"end\":\"\\\\\\\\1\",\"name\":\"string.quoted.double.berry\",\"patterns\":[{\"match\":\"(\\\\\\\\\\\\\\\\x[\\\\\\\\h]{2})|(\\\\\\\\\\\\\\\\[0-7]{3})|(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\)|(\\\\\\\\\\\\\\\\\\\\\")|(\\\\\\\\\\\\\\\\')|(\\\\\\\\\\\\\\\\a)|(\\\\\\\\\\\\\\\\b)|(\\\\\\\\\\\\\\\\f)|(\\\\\\\\\\\\\\\\n)|(\\\\\\\\\\\\\\\\r)|(\\\\\\\\\\\\\\\\t)|(\\\\\\\\\\\\\\\\v)\",\"name\":\"constant.character.escape.berry\"}]},{\"begin\":\"f(\\\\\"|')\",\"end\":\"\\\\\\\\1\",\"name\":\"string.quoted.other.berry\",\"patterns\":[{\"match\":\"(\\\\\\\\\\\\\\\\x[\\\\\\\\h]{2})|(\\\\\\\\\\\\\\\\[0-7]{3})|(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\)|(\\\\\\\\\\\\\\\\\\\\\")|(\\\\\\\\\\\\\\\\')|(\\\\\\\\\\\\\\\\a)|(\\\\\\\\\\\\\\\\b)|(\\\\\\\\\\\\\\\\f)|(\\\\\\\\\\\\\\\\n)|(\\\\\\\\\\\\\\\\r)|(\\\\\\\\\\\\\\\\t)|(\\\\\\\\\\\\\\\\v)\",\"name\":\"constant.character.escape.berry\"},{\"match\":\"\\\\\\\\{\\\\\\\\{[^\\\\\\\\}]*\\\\\\\\}\\\\\\\\}\",\"name\":\"string.quoted.other.berry\"},{\"begin\":\"\\\\\\\\{\",\"end\":\"\\\\\\\\}\",\"name\":\"keyword.other.unit.berry\",\"patterns\":[{\"include\":\"#keywords\"},{\"include\":\"#numbers\"},{\"include\":\"#identifier\"},{\"include\":\"#operator\"},{\"include\":\"#member\"},{\"include\":\"#function\"}]}]}]}},\"scopeName\":\"source.berry\",\"aliases\":[\"be\"]}`)),r=[e];export{r as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/5LuOXUq_.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Windows Registry Script\",\"fileTypes\":[\"reg\",\"REG\"],\"name\":\"reg\",\"patterns\":[{\"match\":\"Windows Registry Editor Version 5\\\\\\\\.00|REGEDIT4\",\"name\":\"keyword.control.import.reg\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.reg\"}},\"match\":\"(;).*$\",\"name\":\"comment.line.semicolon.reg\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.section.reg\"},\"2\":{\"name\":\"entity.section.reg\"},\"3\":{\"name\":\"punctuation.definition.section.reg\"}},\"match\":\"^\\\\\\\\s*(\\\\\\\\[(?!-))(.*?)(\\\\\\\\])\",\"name\":\"entity.name.function.section.add.reg\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.section.reg\"},\"2\":{\"name\":\"entity.section.reg\"},\"3\":{\"name\":\"punctuation.definition.section.reg\"}},\"match\":\"^\\\\\\\\s*(\\\\\\\\[-)(.*?)(\\\\\\\\])\",\"name\":\"entity.name.function.section.delete.reg\"},{\"captures\":{\"2\":{\"name\":\"punctuation.definition.quote.reg\"},\"3\":{\"name\":\"support.function.regname.ini\"},\"4\":{\"name\":\"punctuation.definition.quote.reg\"},\"5\":{\"name\":\"punctuation.definition.equals.reg\"},\"7\":{\"name\":\"keyword.operator.arithmetic.minus.reg\"},\"9\":{\"name\":\"punctuation.definition.quote.reg\"},\"10\":{\"name\":\"string.name.regdata.reg\"},\"11\":{\"name\":\"punctuation.definition.quote.reg\"},\"13\":{\"name\":\"support.type.dword.reg\"},\"14\":{\"name\":\"keyword.operator.arithmetic.colon.reg\"},\"15\":{\"name\":\"constant.numeric.dword.reg\"},\"17\":{\"name\":\"support.type.dword.reg\"},\"18\":{\"name\":\"keyword.operator.arithmetic.parenthesis.reg\"},\"19\":{\"name\":\"keyword.operator.arithmetic.parenthesis.reg\"},\"20\":{\"name\":\"constant.numeric.hex.size.reg\"},\"21\":{\"name\":\"keyword.operator.arithmetic.parenthesis.reg\"},\"22\":{\"name\":\"keyword.operator.arithmetic.colon.reg\"},\"23\":{\"name\":\"constant.numeric.hex.reg\"},\"24\":{\"name\":\"keyword.operator.arithmetic.linecontinuation.reg\"},\"25\":{\"name\":\"comment.declarationline.semicolon.reg\"}},\"match\":\"^(\\\\\\\\s*([\\\\\"']?)(.+?)([\\\\\"']?)\\\\\\\\s*(=))?\\\\\\\\s*((-)|(([\\\\\"'])(.*?)([\\\\\"']))|(((?i:dword))(\\\\\\\\:)\\\\\\\\s*([\\\\\\\\dabcdefABCDEF]{1,8}))|(((?i:hex))((\\\\\\\\()([\\\\\\\\d]*)(\\\\\\\\)))?(\\\\\\\\:)(.*?)(\\\\\\\\\\\\\\\\?)))\\\\\\\\s*(;.*)?$\",\"name\":\"meta.declaration.reg\"},{\"match\":\"[0-9]+\",\"name\":\"constant.numeric.reg\"},{\"match\":\"[a-fA-F]+\",\"name\":\"constant.numeric.hex.reg\"},{\"match\":\",+\",\"name\":\"constant.numeric.hex.comma.reg\"},{\"match\":\"\\\\\\\\\\\\\\\\\",\"name\":\"keyword.operator.arithmetic.linecontinuation.reg\"}],\"scopeName\":\"source.reg\"}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/727ZlQH0.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Ada\",\"name\":\"ada\",\"patterns\":[{\"include\":\"#library_unit\"},{\"include\":\"#comment\"},{\"include\":\"#use_clause\"},{\"include\":\"#with_clause\"},{\"include\":\"#pragma\"},{\"include\":\"#keyword\"}],\"repository\":{\"abort_statement\":{\"begin\":\"(?i)\\\\\\\\babort\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.ada\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.statement.abort.ada\",\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.ada\"},{\"match\":\"\\\\\\\\b(\\\\\\\\w|\\\\\\\\d|\\\\\\\\.|_)+\\\\\\\\b\",\"name\":\"entity.name.task.ada\"}]},\"accept_statement\":{\"begin\":\"(?i)\\\\\\\\b(accept)\\\\\\\\s+((?:\\\\\\\\w|\\\\\\\\d|\\\\\\\\.|_)+)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.ada\"},\"2\":{\"name\":\"entity.name.accept.ada\"}},\"end\":\"(?i)(?:\\\\\\\\b(end)\\\\\\\\s*(\\\\\\\\s\\\\\\\\2)?\\\\\\\\s*)?(;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.ada\"},\"2\":{\"name\":\"entity.name.accept.ada\"},\"3\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.statement.accept.ada\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\bdo\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.ada\"}},\"end\":\"(?i)\\\\\\\\b(?=end)\\\\\\\\b\",\"patterns\":[{\"include\":\"#statement\"}]},{\"include\":\"#parameter_profile\"}]},\"access_definition\":{\"captures\":{\"1\":{\"name\":\"storage.visibility.ada\"},\"2\":{\"name\":\"storage.visibility.ada\"},\"3\":{\"name\":\"storage.modifier.ada\"},\"4\":{\"name\":\"entity.name.type.ada\"}},\"match\":\"(?i)(not\\\\\\\\s+null\\\\\\\\s+)?(access)\\\\\\\\s+(constant\\\\\\\\s+)?((?:\\\\\\\\w|\\\\\\\\d|\\\\\\\\.|_)+)\\\\\\\\b\",\"name\":\"meta.declaration.access.definition.ada\"},\"access_type_definition\":{\"begin\":\"(?i)\\\\\\\\b(not\\\\\\\\s+null\\\\\\\\s+)?(access)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.visibility.ada\"},\"2\":{\"name\":\"storage.visibility.ada\"}},\"end\":\"(?i)(?=(with|;))\",\"name\":\"meta.declaration.type.definition.access.ada\",\"patterns\":[{\"match\":\"(?i)\\\\\\\\ball\\\\\\\\b\",\"name\":\"storage.visibility.ada\"},{\"match\":\"(?i)\\\\\\\\bconstant\\\\\\\\b\",\"name\":\"storage.modifier.ada\"},{\"include\":\"#subtype_mark\"}]},\"actual_parameter_part\":{\"begin\":\"\\\\\\\\(\",\"captures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.ada\"},{\"include\":\"#parameter_association\"}]},\"adding_operator\":{\"match\":\"(\\\\\\\\+|-|\\\\\\\\&)\",\"name\":\"keyword.operator.adding.ada\"},\"array_aggregate\":{\"begin\":\"\\\\\\\\(\",\"captures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"end\":\"\\\\\\\\)\",\"name\":\"meta.definition.array.aggregate.ada\",\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.ada\"},{\"include\":\"#positional_array_aggregate\"},{\"include\":\"#array_component_association\"}]},\"array_component_association\":{\"captures\":{\"1\":{\"name\":\"variable.name.ada\"},\"2\":{\"name\":\"keyword.other.ada\"},\"3\":{\"patterns\":[{\"match\":\"<>\",\"name\":\"keyword.modifier.unknown.ada\"},{\"include\":\"#expression\"}]}},\"match\":\"(?i)\\\\\\\\b([^(=>)]*)\\\\\\\\s*(=>)\\\\\\\\s*([^,\\\\\\\\)]+)\",\"name\":\"meta.definition.array.aggregate.component.ada\"},\"array_dimensions\":{\"begin\":\"\\\\\\\\(\",\"captures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"end\":\"\\\\\\\\)\",\"name\":\"meta.declaration.type.definition.array.dimensions.ada\",\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.ada\"},{\"match\":\"(?i)\\\\\\\\brange\\\\\\\\b\",\"name\":\"storage.modifier.ada\"},{\"match\":\"<>\",\"name\":\"keyword.modifier.unknown.ada\"},{\"match\":\"\\\\\\\\.\\\\\\\\.\",\"name\":\"keyword.ada\"},{\"include\":\"#expression\"},{\"patterns\":[{\"include\":\"#subtype_mark\"}]}]},\"array_type_definition\":{\"begin\":\"(?i)\\\\\\\\barray\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"storage.modifier.ada\"}},\"end\":\"(?i)(?=(with|;))\",\"name\":\"meta.declaration.type.definition.array.ada\",\"patterns\":[{\"include\":\"#array_dimensions\"},{\"match\":\"(?i)\\\\\\\\bof\\\\\\\\b\",\"name\":\"storage.modifier.ada\"},{\"match\":\"(?i)\\\\\\\\baliased\\\\\\\\b\",\"name\":\"storage.visibility.ada\"},{\"include\":\"#access_definition\"},{\"include\":\"#subtype_mark\"}]},\"aspect_clause\":{\"begin\":\"(?i)\\\\\\\\b(for)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.ada\"},\"2\":{\"patterns\":[{\"include\":\"#subtype_mark\"}]},\"3\":{\"name\":\"punctuation.ada\"},\"5\":{\"name\":\"keyword.ada\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.aspect.clause.ada\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\buse\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?=;)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"patterns\":[{\"include\":\"#record_representation_clause\"},{\"include\":\"#array_aggregate\"},{\"include\":\"#expression\"}]},{\"begin\":\"(?i)(?<=for)\",\"captures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?i)(?=use)\",\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#subtype_mark\"}]},\"2\":{\"patterns\":[{\"include\":\"#attribute\"}]}},\"match\":\"((?:\\\\\\\\w|\\\\\\\\d|_)+)('((?:\\\\\\\\w|\\\\\\\\d|_)+))?\"}]}]},\"aspect_definition\":{\"begin\":\"=>\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.ada\"}},\"end\":\"(?i)(?=(,|;|\\\\\\\\bis\\\\\\\\b))\",\"name\":\"meta.aspect.definition.ada\",\"patterns\":[{\"include\":\"#expression\"}]},\"aspect_mark\":{\"captures\":{\"1\":{\"name\":\"keyword.control.directive.ada\"},\"2\":{\"name\":\"punctuation.ada\"},\"3\":{\"name\":\"entity.other.attribute-name.ada\"}},\"match\":\"(?i)\\\\\\\\b((?:\\\\\\\\w|\\\\\\\\d|\\\\\\\\.|_)+)(?:(')(class))?\\\\\\\\b\",\"name\":\"meta.aspect.mark.ada\"},\"aspect_specification\":{\"begin\":\"(?i)\\\\\\\\bwith\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?i)(?=(;|\\\\\\\\bis\\\\\\\\b))\",\"name\":\"meta.aspect.specification.ada\",\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.ada\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.ada\"},\"2\":{\"name\":\"storage.modifier.ada\"}},\"match\":\"(?i)\\\\\\\\b(null)\\\\\\\\s+(record)\\\\\\\\b\"},{\"begin\":\"(?i)\\\\\\\\brecord\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"storage.modifier.ada\"}},\"end\":\"(?i)\\\\\\\\b(end)\\\\\\\\s+(record)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.ada\"},\"2\":{\"name\":\"storage.modifier.ada\"}},\"patterns\":[{\"include\":\"#component_item\"}]},{\"captures\":{\"0\":{\"name\":\"storage.visibility.ada\"}},\"match\":\"(?i)\\\\\\\\bprivate\\\\\\\\b\"},{\"include\":\"#aspect_definition\"},{\"include\":\"#aspect_mark\"},{\"include\":\"#comment\"}]},\"assignment_statement\":{\"begin\":\"\\\\\\\\b((?:\\\\\\\\w|\\\\\\\\d|\\\\\\\\.|_|\\\\\\\\(|\\\\\\\\)|\\\\\"|'|\\\\\\\\s)+)\\\\\\\\s*(:=)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"match\":\"((?:\\\\\\\\w|\\\\\\\\d|\\\\\\\\.|_)+)\",\"name\":\"variable.name.ada\"},{\"begin\":\"\\\\\\\\(\",\"captures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#expression\"}]}]},\"2\":{\"name\":\"keyword.operator.new.ada\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.statement.assignment.ada\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#comment\"}]},\"attribute\":{\"captures\":{\"1\":{\"name\":\"punctuation.ada\"},\"2\":{\"name\":\"entity.other.attribute-name.ada\"}},\"match\":\"(')((?:\\\\\\\\w|\\\\\\\\d|_)+)\\\\\\\\b\",\"name\":\"meta.attribute.ada\"},\"based_literal\":{\"captures\":{\"1\":{\"name\":\"constant.numeric.base.ada\"},\"2\":{\"name\":\"punctuation.ada\"},\"3\":{\"name\":\"punctuation.ada\"},\"4\":{\"name\":\"punctuation.radix-point.ada\"},\"5\":{\"name\":\"punctuation.ada\"},\"6\":{\"name\":\"constant.numeric.base.ada\"},\"7\":{\"patterns\":[{\"include\":\"#exponent_part\"}]}},\"match\":\"(?i)(\\\\\\\\d(?:(_)?\\\\\\\\d)*#)[0-9a-f](?:(_)?[0-9a-f])*(?:(\\\\\\\\.)[0-9a-f](?:(_)?[0-9a-f])*)?(#)([eE](?:\\\\\\\\+|\\\\\\\\-)?\\\\\\\\d(?:_?\\\\\\\\d)*)?\",\"name\":\"constant.numeric.ada\"},\"basic_declaration\":{\"patterns\":[{\"include\":\"#type_declaration\"},{\"include\":\"#subtype_declaration\"},{\"include\":\"#exception_declaration\"},{\"include\":\"#object_declaration\"},{\"include\":\"#single_protected_declaration\"},{\"include\":\"#single_task_declaration\"},{\"include\":\"#subprogram_specification\"},{\"include\":\"#package_declaration\"},{\"include\":\"#pragma\"},{\"include\":\"#comment\"}]},\"basic_declarative_item\":{\"patterns\":[{\"include\":\"#basic_declaration\"},{\"include\":\"#aspect_clause\"},{\"include\":\"#use_clause\"},{\"include\":\"#keyword\"}]},\"block_statement\":{\"begin\":\"(?i)\\\\\\\\bdeclare\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?i)\\\\\\\\b(end)(\\\\\\\\s+(?:\\\\\\\\w|\\\\\\\\d|_)+)?\\\\\\\\s*(;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.ada\"},\"2\":{\"name\":\"entity.name.label.ada\"},\"3\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.statement.block.ada\",\"patterns\":[{\"begin\":\"(?i)(?<=declare)\",\"end\":\"(?i)\\\\\\\\bbegin\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"patterns\":[{\"include\":\"#body\"},{\"include\":\"#basic_declarative_item\"}]},{\"begin\":\"(?i)(?<=begin)\",\"end\":\"(?i)(?=end)\",\"patterns\":[{\"include\":\"#statement\"}]}]},\"body\":{\"patterns\":[{\"include\":\"#subprogram_body\"},{\"include\":\"#package_body\"},{\"include\":\"#task_body\"},{\"include\":\"#protected_body\"}]},\"case_statement\":{\"begin\":\"(?i)\\\\\\\\bcase\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.ada\"}},\"end\":\"(?i)\\\\\\\\b(end)\\\\\\\\s+(case)\\\\\\\\s*(;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.ada\"},\"2\":{\"name\":\"keyword.control.ada\"},\"3\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.statement.case.ada\",\"patterns\":[{\"begin\":\"(?i)(?<=case)\\\\\\\\b\",\"end\":\"(?i)\\\\\\\\bis\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.ada\"}},\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\"(?i)\\\\\\\\bwhen\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.ada\"}},\"end\":\"=>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.statement.case.alternative.ada\",\"patterns\":[{\"match\":\"(?i)\\\\\\\\bothers\\\\\\\\b\",\"name\":\"keyword.modifier.unknown.ada\"},{\"match\":\"\\\\\\\\|\",\"name\":\"punctuation.ada\"},{\"include\":\"#expression\"}]},{\"include\":\"#statement\"}]},\"character_literal\":{\"captures\":{\"0\":{\"patterns\":[{\"match\":\"'\",\"name\":\"punctuation.definition.string.ada\"}]}},\"match\":\"'.'\",\"name\":\"string.quoted.single.ada\"},\"comment\":{\"patterns\":[{\"include\":\"#preprocessor\"},{\"include\":\"#comment-section\"},{\"include\":\"#comment-doc\"},{\"include\":\"#comment-line\"}]},\"comment-doc\":{\"captures\":{\"1\":{\"name\":\"comment.line.double-dash.ada\"},\"2\":{\"name\":\"punctuation.definition.tag.ada\"},\"3\":{\"name\":\"entity.name.tag.ada\"},\"4\":{\"name\":\"comment.line.double-dash.ada\"}},\"match\":\"(--)\\\\\\\\s*(@)(\\\\\\\\w+)\\\\\\\\s+(.*)$\",\"name\":\"comment.block.documentation.ada\"},\"comment-line\":{\"match\":\"--.*$\",\"name\":\"comment.line.double-dash.ada\"},\"comment-section\":{\"captures\":{\"1\":{\"name\":\"entity.name.section.ada\"}},\"match\":\"--\\\\\\\\s*([^-].*?[^-])\\\\\\\\s*--\\\\\\\\s*$\",\"name\":\"comment.line.double-dash.ada\"},\"component_clause\":{\"begin\":\"(?i)\\\\\\\\b((?:\\\\\\\\w|\\\\\\\\d|_)+)\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"variable.name.ada\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.aspect.clause.record.representation.component.ada\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\bat\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"storage.modifier.ada\"}},\"end\":\"(?i)\\\\\\\\b(?=range)\\\\\\\\b\",\"patterns\":[{\"include\":\"#expression\"}]},{\"include\":\"#range_constraint\"}]},\"component_declaration\":{\"begin\":\"(?i)\\\\\\\\b((?:\\\\\\\\w|\\\\\\\\d|_)+(?:\\\\\\\\s*,\\\\\\\\s*(?:\\\\\\\\w|\\\\\\\\d|_)+)?)\\\\\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.ada\"},{\"match\":\"\\\\\\\\b(\\\\\\\\w|\\\\\\\\d|_)+\\\\\\\\b\",\"name\":\"variable.name.ada\"}]},\"2\":{\"name\":\"punctuation.ada\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.declaration.type.definition.record.component.ada\",\"patterns\":[{\"patterns\":[{\"match\":\":=\",\"name\":\"keyword.operator.new.ada\"},{\"include\":\"#expression\"}]},{\"include\":\"#component_definition\"}]},\"component_definition\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\baliased\\\\\\\\b\",\"name\":\"storage.visibility.ada\"},{\"match\":\"(?i)\\\\\\\\brange\\\\\\\\b\",\"name\":\"storage.modifier.ada\"},{\"match\":\"\\\\\\\\.\\\\\\\\.\",\"name\":\"keyword.ada\"},{\"include\":\"#access_definition\"},{\"include\":\"#subtype_mark\"}]},\"component_item\":{\"patterns\":[{\"include\":\"#component_declaration\"},{\"include\":\"#variant_part\"},{\"include\":\"#comment\"},{\"include\":\"#aspect_clause\"},{\"captures\":{\"1\":{\"name\":\"keyword.ada\"},\"2\":{\"name\":\"punctuation.ada\"}},\"match\":\"(?i)\\\\\\\\b(null)\\\\\\\\s*(;)\"}]},\"composite_constraint\":{\"begin\":\"\\\\\\\\(\",\"captures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"end\":\"\\\\\\\\)\",\"name\":\"meta.declaration.constraint.composite.ada\",\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.ada\"},{\"match\":\"\\\\\\\\.\\\\\\\\.\",\"name\":\"keyword.ada\"},{\"captures\":{\"1\":{\"name\":\"variable.name.ada\"},\"2\":{\"name\":\"keyword.other.ada\"},\"3\":{\"patterns\":[{\"include\":\"#expression\"}]}},\"match\":\"(?i)\\\\\\\\b((?:\\\\\\\\w|\\\\\\\\d|_)+)\\\\\\\\s*(=>)\\\\\\\\s*([^,\\\\\\\\)])+\\\\\\\\b\"},{\"include\":\"#expression\"}]},\"decimal_literal\":{\"captures\":{\"1\":{\"name\":\"punctuation.ada\"},\"2\":{\"name\":\"punctuation.radix-point.ada\"},\"3\":{\"name\":\"punctuation.ada\"},\"4\":{\"patterns\":[{\"include\":\"#exponent_part\"}]}},\"match\":\"\\\\\\\\d(?:(_)?\\\\\\\\d)*(?:(\\\\\\\\.)\\\\\\\\d(?:(_)?\\\\\\\\d)*)?([eE](?:\\\\\\\\+|\\\\\\\\-)?\\\\\\\\d(?:_?\\\\\\\\d)*)?\",\"name\":\"constant.numeric.ada\"},\"declarative_item\":{\"patterns\":[{\"include\":\"#body\"},{\"include\":\"#basic_declarative_item\"}]},\"delay_relative_statement\":{\"begin\":\"(?i)\\\\\\\\b(delay)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.ada\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"delay_statement\":{\"patterns\":[{\"include\":\"#delay_until_statement\"},{\"include\":\"#delay_relative_statement\"}]},\"delay_until_statement\":{\"begin\":\"(?i)\\\\\\\\b(delay)\\\\\\\\s+(until)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.ada\"},\"2\":{\"name\":\"keyword.control.ada\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.statement.delay.until.ada\",\"patterns\":[{\"include\":\"#expression\"}]},\"derived_type_definition\":{\"name\":\"meta.declaration.type.definition.derived.ada\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\bnew\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"storage.modifier.ada\"}},\"end\":\"(?i)(?=(\\\\\\\\bwith\\\\\\\\b|;))\",\"patterns\":[{\"match\":\"(?i)\\\\\\\\band\\\\\\\\b\",\"name\":\"storage.modifier.ada\"},{\"include\":\"#subtype_mark\"}]},{\"match\":\"(?i)\\\\\\\\b(abstract|and|limited|tagged)\\\\\\\\b\",\"name\":\"storage.modifier.ada\"},{\"match\":\"(?i)\\\\\\\\bprivate\\\\\\\\b\",\"name\":\"storage.visibility.ada\"},{\"include\":\"#subtype_mark\"}]},\"discriminant_specification\":{\"begin\":\"(?i)\\\\\\\\b((?:\\\\\\\\w|\\\\\\\\d|_)+(?:\\\\\\\\s*,\\\\\\\\s*(?:\\\\\\\\w|\\\\\\\\d|_)+)?)\\\\\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.ada\"},{\"match\":\"\\\\\\\\b(\\\\\\\\w|\\\\\\\\d|_)+\\\\\\\\b\",\"name\":\"variable.name.ada\"}]},\"2\":{\"name\":\"punctuation.ada\"}},\"end\":\"(?=(;|\\\\\\\\)))\",\"patterns\":[{\"begin\":\":=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.new.ada\"}},\"end\":\"(?=(;|\\\\\\\\)))\",\"patterns\":[{\"include\":\"#expression\"}]},{\"captures\":{\"1\":{\"name\":\"storage.visibility.ada\"},\"2\":{\"patterns\":[{\"include\":\"#subtype_mark\"}]}},\"match\":\"(?i)(not\\\\\\\\s+null\\\\\\\\s+)?((?:\\\\\\\\w|\\\\\\\\d|\\\\\\\\.|_)+)\\\\\\\\b\"},{\"include\":\"#access_definition\"}]},\"entry_body\":{\"begin\":\"(?i)\\\\\\\\b(entry)\\\\\\\\s+((?:\\\\\\\\w|\\\\\\\\d|_)+)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.ada\"},\"2\":{\"name\":\"entity.name.entry.ada\"}},\"end\":\"(?i)\\\\\\\\b(end)\\\\\\\\s*(\\\\\\\\s\\\\\\\\2)\\\\\\\\s*(;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.ada\"},\"2\":{\"name\":\"entity.name.entry.ada\"},\"3\":{\"name\":\"punctuation.ada\"}},\"patterns\":[{\"begin\":\"(?i)\\\\\\\\bis\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?i)\\\\\\\\b(?=begin)\\\\\\\\b\",\"patterns\":[{\"include\":\"#declarative_item\"}]},{\"begin\":\"(?i)\\\\\\\\bbegin\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?i)\\\\\\\\b(?=end)\\\\\\\\b\",\"patterns\":[{\"include\":\"#statement\"}]},{\"begin\":\"(?i)\\\\\\\\bwhen\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?i)\\\\\\\\b(?=is)\\\\\\\\b\",\"patterns\":[{\"include\":\"#expression\"}]},{\"include\":\"#parameter_profile\"}]},\"entry_declaration\":{\"begin\":\"(?i)\\\\\\\\b(?:(not)?\\\\\\\\s+(overriding)\\\\\\\\s+)?(entry)\\\\\\\\s+((?:\\\\\\\\w|\\\\\\\\d|_)+)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.ada\"},\"2\":{\"name\":\"storage.modifier.ada\"},\"3\":{\"name\":\"keyword.ada\"},\"4\":{\"name\":\"entity.name.entry.ada\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"patterns\":[{\"include\":\"#parameter_profile\"}]},\"enumeration_type_definition\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.declaration.type.definition.enumeration.ada\",\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.ada\"},{\"match\":\"\\\\\\\\b(\\\\\\\\w|\\\\\\\\d|_)+\\\\\\\\b\",\"name\":\"variable.name.ada\"},{\"include\":\"#comment\"}]},\"exception_declaration\":{\"begin\":\"(?i)\\\\\\\\b((?:\\\\\\\\w|\\\\\\\\d|_)+(?:\\\\\\\\s*,\\\\\\\\s*(?:\\\\\\\\w|\\\\\\\\d|_)+)?)\\\\\\\\s*(:)\\\\\\\\s*(exception)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.ada\"},{\"match\":\"\\\\\\\\b(\\\\\\\\w|\\\\\\\\d|_)+\\\\\\\\b\",\"name\":\"entity.name.exception.ada\"}]},\"2\":{\"name\":\"punctuation.ada\"},\"3\":{\"name\":\"storage.type.ada\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.declaration.exception.ada\",\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(renames)\\\\\\\\s+((\\\\\\\\w|\\\\\\\\d|_|\\\\\\\\.)+)\",\"name\":\"entity.name.exception.ada\"}]},\"exit_statement\":{\"begin\":\"(?i)\\\\\\\\bexit\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.ada\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.statement.exit.ada\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\bwhen\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.ada\"}},\"end\":\"(?=;)\",\"patterns\":[{\"include\":\"#expression\"}]},{\"match\":\"(?:\\\\\\\\w|\\\\\\\\d|_)+\",\"name\":\"entity.name.label.ada\"}]},\"exponent_part\":{\"captures\":{\"1\":{\"name\":\"punctuation.exponent-mark.ada\"},\"2\":{\"name\":\"keyword.operator.unary.ada\"},\"3\":{\"name\":\"punctuation.ada\"}},\"match\":\"([eE])(\\\\\\\\+|\\\\\\\\-)?\\\\\\\\d(?:(_)?\\\\\\\\d)*\"},\"expression\":{\"name\":\"meta.expression.ada\",\"patterns\":[{\"match\":\"(?i)\\\\\\\\bnull\\\\\\\\b\",\"name\":\"constant.language.ada\"},{\"match\":\"=>(\\\\\\\\+)?\",\"name\":\"keyword.other.ada\"},{\"begin\":\"\\\\\\\\(\",\"captures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#expression\"}]},{\"match\":\",\",\"name\":\"punctuation.ada\"},{\"match\":\"\\\\\\\\.\\\\\\\\.\",\"name\":\"keyword.ada\"},{\"include\":\"#value\"},{\"include\":\"#attribute\"},{\"include\":\"#comment\"},{\"include\":\"#operator\"},{\"match\":\"(?i)\\\\\\\\b(and|or|xor)\\\\\\\\b\",\"name\":\"keyword.ada\"},{\"match\":\"(?i)\\\\\\\\b(if|then|else|elsif|in|for|(?<!\\\\\\\\.)all|some|\\\\\\\\.\\\\\\\\.|delta|with)\\\\\\\\b\",\"name\":\"keyword.ada\"}]},\"for_loop_statement\":{\"begin\":\"(?i)\\\\\\\\bfor\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.ada\"}},\"end\":\"(?i)\\\\\\\\b(end)\\\\\\\\s+(loop)(\\\\\\\\s+(?:\\\\\\\\w|\\\\\\\\d|_)+)?\\\\\\\\s*(;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.ada\"},\"2\":{\"name\":\"keyword.control.ada\"},\"3\":{\"name\":\"entity.name.label.ada\"},\"4\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.statement.loop.for.ada\",\"patterns\":[{\"begin\":\"(?i)(?<=for)\",\"end\":\"(?i)\\\\\\\\bloop\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.ada\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.name.ada\"},\"2\":{\"name\":\"keyword.control.ada\"},\"3\":{\"name\":\"keyword.control.ada\"}},\"match\":\"(?i)\\\\\\\\b((?:\\\\\\\\w|\\\\\\\\d|_)+)\\\\\\\\s+(in)(\\\\\\\\s+reverse)?\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"variable.name.ada\"},\"2\":{\"name\":\"punctuation.ada\"},\"3\":{\"patterns\":[{\"include\":\"#subtype_mark\"}]},\"4\":{\"name\":\"keyword.control.ada\"},\"5\":{\"name\":\"keyword.control.ada\"}},\"match\":\"(?i)\\\\\\\\b((?:\\\\\\\\w|\\\\\\\\d|_)+)(?:\\\\\\\\s*(:)\\\\\\\\s*((?:\\\\\\\\w|\\\\\\\\d|\\\\\\\\.|_)+))?\\\\\\\\s+(of)(\\\\\\\\s+reverse)?\\\\\\\\b\"},{\"include\":\"#expression\"}]},{\"include\":\"#statement\"}]},\"full_type_declaration\":{\"patterns\":[{\"include\":\"#task_type_declaration\"},{\"include\":\"#regular_type_declaration\"}]},\"function_body\":{\"begin\":\"(?i)\\\\\\\\b(overriding\\\\\\\\s+)?(function)\\\\\\\\s+(?:((?:\\\\\\\\w|\\\\\\\\d|\\\\\\\\.|_)+\\\\\\\\b)|(\\\\\".+\\\\\"))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.visibility.ada\"},\"2\":{\"name\":\"keyword.ada\"},\"3\":{\"name\":\"entity.name.function.ada\"},\"4\":{\"patterns\":[{\"include\":\"#string_literal\"}]}},\"end\":\"(?i)(?:\\\\\\\\b(end)\\\\\\\\s+(\\\\\\\\3|\\\\\\\\4)\\\\\\\\s*)?(;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.ada\"},\"2\":{\"name\":\"entity.name.function.ada\"},\"3\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.declaration.function.body.ada\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\bbegin\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?i)(?=end)\",\"patterns\":[{\"include\":\"#handled_sequence_of_statements\"}]},{\"include\":\"#aspect_specification\"},{\"include\":\"#result_profile\"},{\"include\":\"#subprogram_renaming_declaration\"},{\"include\":\"#parameter_profile\"},{\"begin\":\"(?i)\\\\\\\\bis\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?i)(?=(with|begin|;))\",\"name\":\"meta.function.body.spec_part.ada\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\bnew\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.new.ada\"}},\"end\":\"(?=;)\",\"name\":\"meta.declaration.package.generic.ada\",\"patterns\":[{\"match\":\"((?:\\\\\\\\w|\\\\\\\\d|\\\\\\\\.|_)+)\",\"name\":\"entity.name.function.ada\"},{\"include\":\"#actual_parameter_part\"}]},{\"captures\":{\"0\":{\"name\":\"storage.modifier.ada\"}},\"match\":\"(?i)\\\\\\\\babstract\\\\\\\\b\",\"name\":\"meta.declaration.function.abstract.ada\"},{\"include\":\"#declarative_item\"},{\"include\":\"#subprogram_renaming_declaration\"},{\"include\":\"#expression\"}]}]},\"function_specification\":{\"patterns\":[{\"include\":\"#function_body\"}]},\"goto_statement\":{\"begin\":\"(?i)\\\\\\\\bgoto\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.goto.ada\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.statement.goto.ada\",\"patterns\":[{}]},\"guard\":{\"begin\":\"(?i)\\\\\\\\bwhen\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.ada\"}},\"end\":\"=>\",\"endCaptures\":{\"0\":{\"name\":\"keyword.other.ada\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"handled_sequence_of_statements\":{\"patterns\":[{\"begin\":\"(?i)\\\\\\\\bexception\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?i)\\\\\\\\b(?=end)\\\\\\\\b\",\"name\":\"meta.handler.exception.ada\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\bwhen\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"=>\",\"endCaptures\":{\"0\":{\"name\":\"keyword.other.ada\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.name.ada\"},\"2\":{\"name\":\"punctuation.ada\"}},\"match\":\"\\\\\\\\b((?:\\\\\\\\w|\\\\\\\\d|\\\\\\\\.|_)+)\\\\\\\\s*(:)\"},{\"match\":\"\\\\\\\\|\",\"name\":\"punctuation.ada\"},{\"match\":\"(?i)\\\\\\\\bothers\\\\\\\\b\",\"name\":\"keyword.ada\"},{\"match\":\"(?:\\\\\\\\w|\\\\\\\\d|\\\\\\\\.|_)+\",\"name\":\"entity.name.exception.ada\"}]},{\"include\":\"#statement\"}]},{\"include\":\"#statement\"}]},\"highest_precedence_operator\":{\"match\":\"(?i)(\\\\\\\\*\\\\\\\\*|\\\\\\\\babs\\\\\\\\b|\\\\\\\\bnot\\\\\\\\b)\",\"name\":\"keyword.operator.highest-precedence.ada\"},\"if_statement\":{\"begin\":\"(?i)\\\\\\\\bif\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.ada\"}},\"end\":\"(?i)\\\\\\\\b(end)\\\\\\\\s+(if)\\\\\\\\s*(;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.ada\"},\"2\":{\"name\":\"keyword.control.ada\"},\"3\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.statement.if.ada\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\belsif\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.ada\"}},\"end\":\"(?i)(?:(?<!\\\\\\\\sand)\\\\\\\\s+(?=then))\",\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\"(?i)\\\\\\\\belse\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.ada\"}},\"end\":\"(?i)(?=end)\",\"patterns\":[{\"include\":\"#statement\"}]},{\"begin\":\"(?i)(?<=if)\\\\\\\\b\",\"end\":\"(?i)(?:(?<!\\\\\\\\sand)\\\\\\\\s+(?=then))\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.ada\"}},\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\"(?i)\\\\\\\\bthen\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.ada\"}},\"end\":\"(?i)(?=(elsif|else|end))\",\"patterns\":[{\"include\":\"#statement\"}]}]},\"integer_type_definition\":{\"name\":\"meta.declaration.type.definition.integer.ada\",\"patterns\":[{\"include\":\"#signed_integer_type_definition\"},{\"include\":\"#modular_type_definition\"}]},\"interface_type_definition\":{\"begin\":\"(?i)\\\\\\\\b(?:(limited|task|protected|synchronized)\\\\\\\\s+)?(interface)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.ada\"},\"2\":{\"name\":\"storage.modifier.ada\"}},\"end\":\"(?i)(?=(with|;))\",\"name\":\"meta.declaration.type.definition.interface.ada\",\"patterns\":[{\"match\":\"(?i)\\\\\\\\band\\\\\\\\b\",\"name\":\"storage.modifier.ada\"},{\"include\":\"#subtype_mark\"}]},\"keyword\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(abort|abs|accept|all|and|at|begin|body|declare|delay|end|entry|exception|function|generic|in|is|mod|new|not|null|of|or|others|out|package|pragma|procedure|range|record|rem|renames|requeue|reverse|select|separate|some|subtype|then|type|use|when|with|xor)\\\\\\\\b\",\"name\":\"keyword.ada\"},{\"match\":\"(?i)\\\\\\\\b(case|do|else|elsif|exit|for|goto|if|loop|raise|return|terminate|until|while)\\\\\\\\b\",\"name\":\"keyword.control.ada\"},{\"match\":\"(?i)\\\\\\\\b(abstract|access|aliased|array|constant|delta|digits|interface|limited|protected|synchronized|tagged|task)\\\\\\\\b\",\"name\":\"storage.modifier.ada\"},{\"match\":\"(?i)\\\\\\\\b(private|overriding)\\\\\\\\b\",\"name\":\"storage.visibility.ada\"},{\"match\":\"<>\",\"name\":\"keyword.modifier.unknown.ada\"},{\"match\":\"(\\\\\\\\+|-|\\\\\\\\*|/)\",\"name\":\"keyword.operator.arithmetic.ada\"},{\"match\":\":=\",\"name\":\"keyword.operator.assignment.ada\"},{\"match\":\"(=|/=|<|>|<=|>=)\",\"name\":\"keyword.operator.logic.ada\"},{\"match\":\"\\\\\\\\&\",\"name\":\"keyword.operator.concatenation.ada\"}]},\"known_discriminant_part\":{\"begin\":\"\\\\\\\\(\",\"captures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"end\":\"\\\\\\\\)\",\"name\":\"meta.declaration.type.discriminant.ada\",\"patterns\":[{\"match\":\";\",\"name\":\"punctuation.ada\"},{\"include\":\"#discriminant_specification\"}]},\"label\":{\"captures\":{\"1\":{\"name\":\"punctuation.label.ada\"},\"2\":{\"name\":\"entity.name.label.ada\"},\"3\":{\"name\":\"punctuation.label.ada\"}},\"match\":\"(<<)?((?:\\\\\\\\w|\\\\\\\\d|_)+)\\\\\\\\s*(:[^=]|>>)\",\"name\":\"meta.label.ada\"},\"library_unit\":{\"name\":\"meta.library.unit.ada\",\"patterns\":[{\"include\":\"#package_body\"},{\"include\":\"#package_specification\"},{\"include\":\"#subprogram_body\"}]},\"loop_statement\":{\"patterns\":[{\"include\":\"#simple_loop_statement\"},{\"include\":\"#while_loop_statement\"},{\"include\":\"#for_loop_statement\"}]},\"modular_type_definition\":{\"begin\":\"(?i)\\\\\\\\b(mod)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.ada\"}},\"end\":\"(?i)(?=(with|;))\",\"patterns\":[{\"match\":\"<>\",\"name\":\"keyword.modifier.unknown.ada\"},{\"include\":\"#expression\"}]},\"multiplying_operator\":{\"match\":\"(?i)(\\\\\\\\*|/|\\\\\\\\bmod\\\\\\\\b|\\\\\\\\brem\\\\\\\\b)\",\"name\":\"keyword.operator.multiplying.ada\"},\"null_statement\":{\"captures\":{\"1\":{\"name\":\"keyword.ada\"},\"2\":{\"name\":\"punctuation.ada\"}},\"match\":\"(?i)\\\\\\\\b(null)\\\\\\\\s*(;)\",\"name\":\"meta.statement.null.ada\"},\"object_declaration\":{\"begin\":\"(?i)\\\\\\\\b((?:\\\\\\\\w|\\\\\\\\d|_)+(?:\\\\\\\\s*,\\\\\\\\s*(?:\\\\\\\\w|\\\\\\\\d|_)+)*)\\\\\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.ada\"},{\"match\":\"\\\\\\\\b(\\\\\\\\w|\\\\\\\\d|_)+\\\\\\\\b\",\"name\":\"variable.name.ada\"}]},\"2\":{\"name\":\"punctuation.ada\"}},\"end\":\"(;)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.declaration.object.ada\",\"patterns\":[{\"begin\":\"(?<=:)\",\"end\":\"(?:(?=;)|(:=)|(\\\\\\\\brenames\\\\\\\\b))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.new.ada\"},\"2\":{\"name\":\"keyword.ada\"}},\"patterns\":[{\"match\":\"(?i)\\\\\\\\bconstant\\\\\\\\b\",\"name\":\"storage.modifier.ada\"},{\"match\":\"(?i)\\\\\\\\baliased\\\\\\\\b\",\"name\":\"storage.visibility.ada\"},{\"include\":\"#aspect_specification\"},{\"include\":\"#subtype_mark\"}]},{\"begin\":\"(?<=:=)\",\"end\":\"(?=;)\",\"patterns\":[{\"include\":\"#aspect_specification\"},{\"include\":\"#expression\"}]},{\"begin\":\"(?<=renames)\",\"end\":\"(?=;)\",\"patterns\":[{\"include\":\"#aspect_specification\"}]}]},\"operator\":{\"patterns\":[{\"include\":\"#highest_precedence_operator\"},{\"include\":\"#multiplying_operator\"},{\"include\":\"#adding_operator\"},{\"include\":\"#relational_operator\"},{\"include\":\"#logical_operator\"}]},\"package_body\":{\"begin\":\"(?i)\\\\\\\\b(package)\\\\\\\\s+(body)\\\\\\\\s+((?:\\\\\\\\w|\\\\\\\\d|\\\\\\\\.|_)+)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.ada\"},\"2\":{\"name\":\"keyword.ada\"},\"3\":{\"patterns\":[{\"include\":\"#package_mark\"}]}},\"end\":\"(?i)\\\\\\\\b(end)\\\\\\\\s+(\\\\\\\\3)\\\\\\\\s*(;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.ada\"},\"2\":{\"patterns\":[{\"include\":\"#package_mark\"}]},\"3\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.declaration.package.body.ada\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\bbegin\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?i)\\\\\\\\b(?=end)\\\\\\\\b\",\"patterns\":[{\"include\":\"#handled_sequence_of_statements\"}]},{\"begin\":\"(?i)\\\\\\\\bis\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?i)(?=(\\\\\\\\bbegin\\\\\\\\b|\\\\\\\\bend\\\\\\\\b))\",\"patterns\":[{\"match\":\"(?i)\\\\\\\\bprivate\\\\\\\\b\",\"name\":\"keyword.ada\"},{\"include\":\"#declarative_item\"},{\"include\":\"#comment\"}]},{\"include\":\"#aspect_specification\"}]},\"package_declaration\":{\"patterns\":[{\"include\":\"#package_specification\"}]},\"package_mark\":{\"match\":\"\\\\\\\\b(\\\\\\\\w|\\\\\\\\d|\\\\\\\\.|_)+\\\\\\\\b\",\"name\":\"entity.name.package.ada\"},\"package_specification\":{\"begin\":\"(?i)\\\\\\\\b(package)\\\\\\\\s+((?:\\\\\\\\w|\\\\\\\\d|\\\\\\\\.|_)+)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.ada\"},\"2\":{\"patterns\":[{\"include\":\"#package_mark\"}]}},\"end\":\"(?i)(?:\\\\\\\\b(end)\\\\\\\\s+(\\\\\\\\2)\\\\\\\\s*)?(;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.ada\"},\"2\":{\"patterns\":[{\"include\":\"#package_mark\"}]},\"3\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.declaration.package.specification.ada\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\bis\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?=(end|;))\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\bnew\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.new.ada\"}},\"end\":\"(?=;)\",\"name\":\"meta.declaration.package.generic.ada\",\"patterns\":[{\"include\":\"#package_mark\"},{\"include\":\"#actual_parameter_part\"}]},{\"match\":\"(?i)\\\\\\\\bprivate\\\\\\\\b\",\"name\":\"keyword.ada\"},{\"include\":\"#basic_declarative_item\"},{\"include\":\"#comment\"}]},{\"include\":\"#aspect_specification\"}]},\"parameter_association\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.parameter.ada\"},\"2\":{\"name\":\"keyword.other.ada\"}},\"match\":\"((?:\\\\\\\\w|\\\\\\\\d|_)+)\\\\\\\\s*(=>)\"},{\"include\":\"#expression\"}]},\"parameter_profile\":{\"begin\":\"\\\\\\\\(\",\"captures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"match\":\";\",\"name\":\"punctuation.ada\"},{\"include\":\"#parameter_specification\"}]},\"parameter_specification\":{\"patterns\":[{\"begin\":\":(?!=)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"end\":\"(?=[:;)])\",\"name\":\"meta.type.annotation.ada\",\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(in|out)\\\\\\\\b\",\"name\":\"keyword.ada\"},{\"include\":\"#subtype_mark\"}]},{\"begin\":\":=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.new.ada\"}},\"end\":\"(?=[:;)])\",\"patterns\":[{\"include\":\"#expression\"}]},{\"match\":\",\",\"name\":\"punctuation.ada\"},{\"match\":\"\\\\\\\\b(?:\\\\\\\\w|\\\\\\\\d|\\\\\\\\.|_)+\\\\\\\\b\",\"name\":\"variable.parameter.ada\"},{\"include\":\"#comment\"}]},\"positional_array_aggregate\":{\"name\":\"meta.definition.array.aggregate.positional.ada\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.ada\"},\"2\":{\"name\":\"keyword.other.ada\"},\"3\":{\"patterns\":[{\"match\":\"<>\",\"name\":\"keyword.modifier.unknown.ada\"},{\"include\":\"#expression\"}]}},\"match\":\"(?i)\\\\\\\\b(others)\\\\\\\\s*(=>)\\\\\\\\s*([^,\\\\\\\\)]+)\"},{\"include\":\"#expression\"}]},\"pragma\":{\"begin\":\"(?i)\\\\\\\\b(pragma)\\\\\\\\s+((?:\\\\\\\\w|\\\\\\\\d|_)+)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.ada\"},\"2\":{\"name\":\"keyword.control.directive.ada\"}},\"end\":\"(;)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.pragma.ada\",\"patterns\":[{\"include\":\"#expression\"}]},\"preprocessor\":{\"name\":\"meta.preprocessor.ada\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.directive.ada\"},\"2\":{\"name\":\"keyword.control.directive.conditional.ada\"},\"3\":{\"patterns\":[{\"include\":\"#expression\"}]}},\"match\":\"^\\\\\\\\s*(#)(if|elsif)\\\\\\\\s+(.*)$\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.directive.ada\"},\"2\":{\"name\":\"keyword.control.directive.conditional\"},\"3\":{\"name\":\"punctuation.ada\"}},\"match\":\"^\\\\\\\\s*(#)(end if)(;)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.directive.ada\"},\"2\":{\"name\":\"keyword.control.directive.conditional\"}},\"match\":\"^\\\\\\\\s*(#)(else)\"}]},\"procedure_body\":{\"begin\":\"(?i)\\\\\\\\b(overriding\\\\\\\\s+)?(procedure)\\\\\\\\s+((?:\\\\\\\\w|\\\\\\\\d|\\\\\\\\.|_)+)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.visibility.ada\"},\"2\":{\"name\":\"keyword.ada\"},\"3\":{\"name\":\"entity.name.function.ada\"}},\"end\":\"(?i)(?:\\\\\\\\b(end)\\\\\\\\s+(\\\\\\\\3)\\\\\\\\s*)?(;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.ada\"},\"2\":{\"name\":\"entity.name.function.ada\"},\"3\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.declaration.procedure.body.ada\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\bis\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?i)(?=(with|begin|;))\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\bnew\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.new.ada\"}},\"end\":\"(?=;)\",\"name\":\"meta.declaration.package.generic.ada\",\"patterns\":[{\"match\":\"((?:\\\\\\\\w|\\\\\\\\d|\\\\\\\\.|_)+)\",\"name\":\"entity.name.function.ada\"},{\"include\":\"#actual_parameter_part\"}]},{\"match\":\"(?i)\\\\\\\\b(null|abstract)\\\\\\\\b\",\"name\":\"storage.modifier.ada\"},{\"include\":\"#declarative_item\"}]},{\"begin\":\"(?i)\\\\\\\\bbegin\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?i)(?=\\\\\\\\bend\\\\\\\\b)\",\"patterns\":[{\"include\":\"#handled_sequence_of_statements\"}]},{\"include\":\"#subprogram_renaming_declaration\"},{\"include\":\"#aspect_specification\"},{\"include\":\"#parameter_profile\"},{\"include\":\"#comment\"}]},\"procedure_call_statement\":{\"begin\":\"(?i)\\\\\\\\b((?:\\\\\\\\w|\\\\\\\\d|_|\\\\\\\\.)+)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.ada\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.statement.call.ada\",\"patterns\":[{\"include\":\"#attribute\"},{\"include\":\"#actual_parameter_part\"},{\"include\":\"#comment\"}]},\"procedure_specification\":{\"patterns\":[{\"include\":\"#procedure_body\"}]},\"protected_body\":{\"begin\":\"(?i)\\\\\\\\b(protected)\\\\\\\\s+(body)\\\\\\\\s+((?:\\\\\\\\w|\\\\\\\\d|\\\\\\\\.|_)+)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.ada\"},\"2\":{\"name\":\"keyword.ada\"},\"3\":{\"name\":\"entity.name.body.ada\"}},\"end\":\"(?i)(?:\\\\\\\\b(end)\\\\\\\\s*(\\\\\\\\s\\\\\\\\3)\\\\\\\\s*)(;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.ada\"},\"2\":{\"name\":\"entity.name.body.ada\"},\"3\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.declaration.procedure.body.ada\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\bis\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?i)\\\\\\\\b(?=end)\\\\\\\\b\",\"patterns\":[{\"include\":\"#protected_operation_item\"}]}]},\"protected_element_declaration\":{\"patterns\":[{\"include\":\"#subprogram_specification\"},{\"include\":\"#aspect_clause\"},{\"include\":\"#entry_declaration\"},{\"include\":\"#component_declaration\"},{\"include\":\"#pragma\"}]},\"protected_operation_item\":{\"patterns\":[{\"include\":\"#subprogram_specification\"},{\"include\":\"#subprogram_body\"},{\"include\":\"#aspect_clause\"},{\"include\":\"#entry_body\"}]},\"raise_expression\":{\"begin\":\"(?i)\\\\\\\\braise\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.ada\"}},\"end\":\"(?=;)\",\"name\":\"meta.expression.raise.ada\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\bwith\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?=(;|\\\\\\\\)))\",\"patterns\":[{\"include\":\"#expression\"}]},{\"match\":\"\\\\\\\\b(\\\\\\\\w|\\\\\\\\d|_)+\\\\\\\\b\",\"name\":\"entity.name.exception.ada\"}]},\"raise_statement\":{\"begin\":\"(?i)\\\\\\\\braise\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.ada\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.statement.raise.ada\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\bwith\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.ada\"}},\"end\":\"(?=;)\",\"patterns\":[{\"include\":\"#expression\"}]},{\"match\":\"\\\\\\\\b(\\\\\\\\w|\\\\\\\\d|\\\\\\\\.|_)+\\\\\\\\b\",\"name\":\"entity.name.exception.ada\"}]},\"range_constraint\":{\"begin\":\"(?i)\\\\\\\\brange\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"storage.modifier.ada\"}},\"end\":\"(?=(\\\\\\\\bwith\\\\\\\\b|;))\",\"patterns\":[{\"match\":\"\\\\\\\\.\\\\\\\\.\",\"name\":\"keyword.ada\"},{\"match\":\"<>\",\"name\":\"keyword.modifier.unknown.ada\"},{\"include\":\"#expression\"}]},\"real_type_definition\":{\"name\":\"meta.declaration.type.definition.real-type.ada\",\"patterns\":[{\"include\":\"#scalar_constraint\"}]},\"record_representation_clause\":{\"begin\":\"(?i)\\\\\\\\b(record)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.ada\"}},\"end\":\"(?i)\\\\\\\\b(end)\\\\\\\\s+(record)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.ada\"},\"2\":{\"name\":\"storage.modifier.ada\"}},\"name\":\"meta.aspect.clause.record.representation.ada\",\"patterns\":[{\"include\":\"#component_clause\"},{\"include\":\"#comment\"}]},\"record_type_definition\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.modifier.ada\"},\"2\":{\"name\":\"storage.modifier.ada\"},\"3\":{\"name\":\"storage.modifier.ada\"},\"4\":{\"name\":\"storage.modifier.ada\"},\"5\":{\"name\":\"storage.modifier.ada\"}},\"match\":\"(?i)\\\\\\\\b(?:(abstract)\\\\\\\\s+)?(?:(tagged)\\\\\\\\s+)?(?:(limited)\\\\\\\\s+)?(null)\\\\\\\\s+(record)\\\\\\\\b\",\"name\":\"meta.declaration.type.definition.record.null.ada\",\"patterns\":[{\"include\":\"#component_item\"}]},{\"begin\":\"(?i)\\\\\\\\b(?:(abstract)\\\\\\\\s+)?(?:(tagged)\\\\\\\\s+)?(?:(limited)\\\\\\\\s+)?(record)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.ada\"},\"2\":{\"name\":\"storage.modifier.ada\"},\"3\":{\"name\":\"storage.modifier.ada\"},\"4\":{\"name\":\"storage.modifier.ada\"}},\"end\":\"(?i)\\\\\\\\b(end)\\\\\\\\s+(record)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.ada\"},\"2\":{\"name\":\"storage.modifier.ada\"}},\"name\":\"meta.declaration.type.definition.record.ada\",\"patterns\":[{\"include\":\"#component_item\"}]}]},\"regular_type_declaration\":{\"begin\":\"(?i)\\\\\\\\b(type)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.ada\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.declaration.type.definition.regular.ada\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\bis\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?i)(?=(with(?!\\\\\\\\s+(private))|;))\",\"patterns\":[{\"include\":\"#type_definition\"}]},{\"begin\":\"(?i)\\\\\\\\b(?<=type)\\\\\\\\b\",\"end\":\"(?i)(?=(is|;))\",\"patterns\":[{\"include\":\"#known_discriminant_part\"},{\"include\":\"#subtype_mark\"}]},{\"include\":\"#aspect_specification\"}]},\"relational_operator\":{\"match\":\"(=|/=|<|<=|>|>=)\",\"name\":\"keyword.operator.relational.ada\"},\"requeue_statement\":{\"begin\":\"(?i)\\\\\\\\brequeue\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.ada\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.statement.requeue.ada\",\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(with|abort)\\\\\\\\b\",\"name\":\"keyword.control.ada\"},{\"match\":\"\\\\\\\\b(\\\\\\\\w|\\\\\\\\d|\\\\\\\\.|_)+\\\\\\\\b\",\"name\":\"entity.name.function.ada\"}]},\"result_profile\":{\"begin\":\"(?i)\\\\\\\\breturn\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?=(is|with|renames|;))\",\"patterns\":[{\"include\":\"#subtype_mark\"}]},\"return_statement\":{\"begin\":\"(?i)\\\\\\\\breturn\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.ada\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.statement.return.ada\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\bdo\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.ada\"}},\"end\":\"(?i)\\\\\\\\b(end)\\\\\\\\s+(return)\\\\\\\\s*(?=;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.ada\"},\"2\":{\"name\":\"keyword.control.ada\"}},\"patterns\":[{\"include\":\"#label\"},{\"include\":\"#statement\"}]},{\"captures\":{\"1\":{\"name\":\"variable.name.ada\"},\"2\":{\"name\":\"punctuation.ada\"},\"3\":{\"name\":\"entity.name.type.ada\"}},\"match\":\"\\\\\\\\b((?:\\\\\\\\w|\\\\\\\\d|_)+)\\\\\\\\s*(:)\\\\\\\\s*((?:\\\\\\\\w|\\\\\\\\d|\\\\\\\\.|_)+)\\\\\\\\b\"},{\"match\":\":=\",\"name\":\"keyword.operator.new.ada\"},{\"include\":\"#expression\"}]},\"scalar_constraint\":{\"name\":\"meta.declaration.constraint.scalar.ada\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\b(digits|delta)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.ada\"}},\"end\":\"(?i)(?=\\\\\\\\brange\\\\\\\\b|\\\\\\\\bdigits\\\\\\\\b|\\\\\\\\bwith\\\\\\\\b|;)\",\"patterns\":[{\"include\":\"#expression\"}]},{\"include\":\"#range_constraint\"},{\"include\":\"#expression\"}]},\"select_alternative\":{\"patterns\":[{\"begin\":\"(?i)\\\\\\\\bterminate\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.ada\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.ada\"}}},{\"include\":\"#statement\"}]},\"select_statement\":{\"begin\":\"(?i)\\\\\\\\bselect\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.ada\"}},\"end\":\"(?i)\\\\\\\\b(end)\\\\\\\\s+(select)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.ada\"},\"2\":{\"name\":\"keyword.control.ada\"}},\"name\":\"meta.statement.select.ada\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\b(?:(or)|(?<=select))\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.ada\"}},\"end\":\"(?i)\\\\\\\\b(?=(or|else|end))\\\\\\\\b\",\"patterns\":[{\"include\":\"#guard\"},{\"include\":\"#select_alternative\"}]},{\"begin\":\"(?i)\\\\\\\\belse\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.ada\"}},\"end\":\"(?i)\\\\\\\\b(?=end)\\\\\\\\b\",\"patterns\":[{\"include\":\"#statement\"}]}]},\"signed_integer_type_definition\":{\"patterns\":[{\"include\":\"#range_constraint\"}]},\"simple_loop_statement\":{\"begin\":\"(?i)\\\\\\\\bloop\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.ada\"}},\"end\":\"(?i)\\\\\\\\b(end)\\\\\\\\s+(loop)(\\\\\\\\s+(?:\\\\\\\\w|\\\\\\\\d|_)+)?\\\\\\\\s*(;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.ada\"},\"2\":{\"name\":\"keyword.control.ada\"},\"3\":{\"name\":\"entity.name.label.ada\"},\"4\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.statement.loop.ada\",\"patterns\":[{\"include\":\"#statement\"}]},\"single_protected_declaration\":{\"begin\":\"(?i)\\\\\\\\b(protected)\\\\\\\\s+((?:\\\\\\\\w|\\\\\\\\d|_)+)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.ada\"},\"2\":{\"name\":\"entity.name.protected.ada\"}},\"end\":\"(?i)(?:\\\\\\\\b(end)\\\\\\\\s*(\\\\\\\\s\\\\\\\\2)?\\\\\\\\s*)?(;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.ada\"},\"2\":{\"name\":\"entity.name.protected.ada\"},\"3\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.declaration.protected.ada\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\bis\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?i)(?=(\\\\\\\\bend\\\\\\\\b|;))\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\bnew\\\\\\\\b\",\"captures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?i)\\\\\\\\bwith\\\\\\\\b\",\"patterns\":[{\"match\":\"(?i)\\\\\\\\band\\\\\\\\b\",\"name\":\"keyword.ada\"},{\"include\":\"#subtype_mark\"},{\"include\":\"#comment\"}]},{\"match\":\"(?i)\\\\\\\\bprivate\\\\\\\\b\",\"name\":\"keyword.ada\"},{\"include\":\"#protected_element_declaration\"},{\"include\":\"#comment\"}]},{\"include\":\"#comment\"}]},\"single_task_declaration\":{\"begin\":\"(?i)\\\\\\\\b(task)\\\\\\\\s+((?:\\\\\\\\w|\\\\\\\\d|_)+)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.ada\"},\"2\":{\"name\":\"entity.name.task.ada\"}},\"end\":\"(?i)(?:\\\\\\\\b(end)\\\\\\\\s*(\\\\\\\\s\\\\\\\\2)?\\\\\\\\s*)?(;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.ada\"},\"2\":{\"name\":\"entity.name.task.ada\"},\"3\":{\"name\":\"punctuation.ada\"}},\"patterns\":[{\"begin\":\"(?i)\\\\\\\\bis\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?i)\\\\\\\\b(?=end)\\\\\\\\b\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\bnew\\\\\\\\b\",\"captures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?i)\\\\\\\\bwith\\\\\\\\b\",\"patterns\":[{\"match\":\"(?i)\\\\\\\\band\\\\\\\\b\",\"name\":\"keyword.ada\"},{\"include\":\"#subtype_mark\"},{\"include\":\"#comment\"}]},{\"match\":\"(?i)\\\\\\\\bprivate\\\\\\\\b\",\"name\":\"keyword.ada\"},{\"include\":\"#task_item\"},{\"include\":\"#comment\"}]},{\"include\":\"#comment\"}]},\"statement\":{\"patterns\":[{\"begin\":\"(?i)\\\\\\\\bbegin\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?i)\\\\\\\\b(end)\\\\\\\\s*(;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.ada\"},\"2\":{\"name\":\"punctuation.ada\"}},\"patterns\":[{\"include\":\"#handled_sequence_of_statements\"}]},{\"include\":\"#label\"},{\"include\":\"#null_statement\"},{\"include\":\"#return_statement\"},{\"include\":\"#assignment_statement\"},{\"include\":\"#exit_statement\"},{\"include\":\"#goto_statement\"},{\"include\":\"#requeue_statement\"},{\"include\":\"#delay_statement\"},{\"include\":\"#abort_statement\"},{\"include\":\"#raise_statement\"},{\"include\":\"#if_statement\"},{\"include\":\"#case_statement\"},{\"include\":\"#loop_statement\"},{\"include\":\"#block_statement\"},{\"include\":\"#select_statement\"},{\"include\":\"#accept_statement\"},{\"include\":\"#pragma\"},{\"include\":\"#procedure_call_statement\"},{\"include\":\"#comment\"}]},\"string_literal\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.string.ada\"},\"2\":{\"name\":\"punctuation.definition.string.ada\"}},\"match\":\"(\\\\\").*?(\\\\\")\",\"name\":\"string.quoted.double.ada\"},\"subprogram_body\":{\"name\":\"meta.declaration.subprogram.body.ada\",\"patterns\":[{\"include\":\"#procedure_body\"},{\"include\":\"#function_body\"}]},\"subprogram_renaming_declaration\":{\"begin\":\"(?i)\\\\\\\\brenames\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?=(with|;))\",\"patterns\":[{\"match\":\"(?:\\\\\\\\w|\\\\\\\\d|_|\\\\\\\\.)+\",\"name\":\"entity.name.function.ada\"}]},\"subprogram_specification\":{\"name\":\"meta.declaration.subprogram.specification.ada\",\"patterns\":[{\"include\":\"#procedure_specification\"},{\"include\":\"#function_specification\"}]},\"subtype_declaration\":{\"begin\":\"(?i)\\\\\\\\bsubtype\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.declaration.subtype.ada\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\bis\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?=;)\",\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(not\\\\\\\\s+null)\\\\\\\\b\",\"name\":\"storage.modifier.ada\"},{\"include\":\"#composite_constraint\"},{\"include\":\"#aspect_specification\"},{\"include\":\"#subtype_indication\"}]},{\"begin\":\"(?i)(?<=subtype)\",\"end\":\"(?i)\\\\\\\\b(?=is)\\\\\\\\b\",\"patterns\":[{\"include\":\"#subtype_mark\"}]}]},\"subtype_indication\":{\"name\":\"meta.declaration.indication.subtype.ada\",\"patterns\":[{\"include\":\"#scalar_constraint\"},{\"include\":\"#subtype_mark\"}]},\"subtype_mark\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(access|aliased|not\\\\\\\\s+null|constant)\\\\\\\\b\",\"name\":\"storage.visibility.ada\"},{\"include\":\"#attribute\"},{\"include\":\"#actual_parameter_part\"},{\"begin\":\"(?i)\\\\\\\\b(procedure|function)\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?=(;|\\\\\\\\)))\",\"patterns\":[{\"include\":\"#parameter_profile\"},{\"begin\":\"(?i)\\\\\\\\breturn\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?=(;|\\\\\\\\)))\",\"patterns\":[{\"include\":\"#subtype_mark\"}]}]},{\"captures\":{\"0\":{\"patterns\":[{\"match\":\"[_.]\",\"name\":\"punctuation.ada\"}]}},\"match\":\"\\\\\\\\b(?:\\\\\\\\w|\\\\\\\\d|\\\\\\\\.|_)+\\\\\\\\b\",\"name\":\"entity.name.type.ada\"},{\"include\":\"#comment\"}]},\"task_body\":{\"begin\":\"(?i)\\\\\\\\b(task)\\\\\\\\s+(body)\\\\\\\\s+((\\\\\\\\w|\\\\\\\\d|\\\\\\\\.|_)+)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.ada\"},\"2\":{\"name\":\"keyword.ada\"},\"3\":{\"name\":\"entity.name.task.ada\"}},\"end\":\"(?i)(?:\\\\\\\\b(end)\\\\\\\\s*(?:\\\\\\\\s(\\\\\\\\3))?\\\\\\\\s*)?(;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.ada\"},\"2\":{\"name\":\"entity.name.task.ada\"},\"3\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.declaration.task.body.ada\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\bbegin\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?i)(?=end)\",\"patterns\":[{\"include\":\"#handled_sequence_of_statements\"}]},{\"include\":\"#aspect_specification\"},{\"begin\":\"(?i)\\\\\\\\bis\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?i)(?=(with|begin))\",\"patterns\":[{\"include\":\"#declarative_item\"}]}]},\"task_item\":{\"patterns\":[{\"include\":\"#aspect_clause\"},{\"include\":\"#entry_declaration\"}]},\"task_type_declaration\":{\"begin\":\"(?i)\\\\\\\\b(task)\\\\\\\\s+(type)\\\\\\\\s+((\\\\\\\\w|\\\\\\\\d|\\\\\\\\.|_)+)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.ada\"},\"2\":{\"name\":\"keyword.ada\"},\"3\":{\"name\":\"entity.name.task.ada\"}},\"end\":\"(?i)(?:\\\\\\\\b(end)\\\\\\\\s*(?:\\\\\\\\s(\\\\\\\\3))?\\\\\\\\s*)?(;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.ada\"},\"2\":{\"name\":\"entity.name.task.ada\"},\"3\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.declaration.type.task.ada\",\"patterns\":[{\"include\":\"#known_discriminant_part\"},{\"begin\":\"(?i)\\\\\\\\bis\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?i)\\\\\\\\b(?=end)\\\\\\\\b\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\bnew\\\\\\\\b\",\"captures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?i)\\\\\\\\bwith\\\\\\\\b\",\"patterns\":[{\"match\":\"(?i)\\\\\\\\band\\\\\\\\b\",\"name\":\"keyword.ada\"},{\"include\":\"#subtype_mark\"},{\"include\":\"#comment\"}]},{\"match\":\"(?i)\\\\\\\\bprivate\\\\\\\\b\",\"name\":\"keyword.ada\"},{\"include\":\"#task_item\"},{\"include\":\"#comment\"}]},{\"include\":\"#comment\"}]},\"type_declaration\":{\"name\":\"meta.declaration.type.ada\",\"patterns\":[{\"include\":\"#full_type_declaration\"}]},\"type_definition\":{\"name\":\"meta.declaration.type.definition.ada\",\"patterns\":[{\"include\":\"#enumeration_type_definition\"},{\"include\":\"#integer_type_definition\"},{\"include\":\"#real_type_definition\"},{\"include\":\"#array_type_definition\"},{\"include\":\"#record_type_definition\"},{\"include\":\"#access_type_definition\"},{\"include\":\"#interface_type_definition\"},{\"include\":\"#derived_type_definition\"}]},\"use_clause\":{\"name\":\"meta.context.use.ada\",\"patterns\":[{\"include\":\"#use_type_clause\"},{\"include\":\"#use_package_clause\"}]},\"use_package_clause\":{\"begin\":\"(?i)\\\\\\\\buse\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.using.ada\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.context.use.package.ada\",\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.ada\"},{\"include\":\"#package_mark\"}]},\"use_type_clause\":{\"begin\":\"(?i)\\\\\\\\b(use)\\\\\\\\s+(?:(all)\\\\\\\\s+)?(type)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.using.ada\"},\"2\":{\"name\":\"keyword.modifier.ada\"},\"3\":{\"name\":\"keyword.modifier.ada\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.context.use.type.ada\",\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.ada\"},{\"include\":\"#subtype_mark\"}]},\"value\":{\"patterns\":[{\"include\":\"#based_literal\"},{\"include\":\"#decimal_literal\"},{\"include\":\"#character_literal\"},{\"include\":\"#string_literal\"}]},\"variant_part\":{\"begin\":\"(?i)\\\\\\\\bcase\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"(?i)\\\\\\\\b(end)\\\\\\\\s+(case);\",\"endCaptures\":{\"1\":{\"name\":\"keyword.ada\"},\"2\":{\"name\":\"keyword.ada\"},\"3\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.declaration.variant.ada\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\b(?<=case)\\\\\\\\b\",\"end\":\"(?i)\\\\\\\\bis\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"patterns\":[{\"match\":\"(?:\\\\\\\\w|\\\\\\\\d|_)+\",\"name\":\"variable.name.ada\"},{\"include\":\"#comment\"}]},{\"begin\":\"(?i)\\\\\\\\b(?<=is)\\\\\\\\b\",\"end\":\"(?i)\\\\\\\\b(?=end)\\\\\\\\b\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\bwhen\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ada\"}},\"end\":\"=>\",\"endCaptures\":{\"0\":{\"name\":\"keyword.other.ada\"}},\"patterns\":[{\"match\":\"\\\\\\\\|\",\"name\":\"punctuation.ada\"},{\"match\":\"(?i)\\\\\\\\bothers\\\\\\\\b\",\"name\":\"keyword.ada\"},{\"include\":\"#expression\"}]},{\"include\":\"#component_item\"}]}]},\"while_loop_statement\":{\"begin\":\"(?i)\\\\\\\\bwhile\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.ada\"}},\"end\":\"(?i)\\\\\\\\b(end)\\\\\\\\s+(loop)(\\\\\\\\s+(?:\\\\\\\\w|\\\\\\\\d|_)+)?\\\\\\\\s*(;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.ada\"},\"2\":{\"name\":\"keyword.control.ada\"},\"3\":{\"name\":\"entity.name.label.ada\"},\"4\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.statement.loop.while.ada\",\"patterns\":[{\"begin\":\"(?i)(?<=while)\\\\\\\\b\",\"end\":\"(?i)\\\\\\\\bloop\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.ada\"}},\"patterns\":[{\"include\":\"#expression\"}]},{\"include\":\"#statement\"}]},\"with_clause\":{\"begin\":\"(?i)\\\\\\\\b(?:(limited)\\\\\\\\s+)?(?:(private)\\\\\\\\s+)?(with)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.modifier.ada\"},\"2\":{\"name\":\"storage.visibility.ada\"},\"3\":{\"name\":\"keyword.other.using.ada\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.ada\"}},\"name\":\"meta.context.with.ada\",\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.ada\"},{\"include\":\"#package_mark\"}]}},\"scopeName\":\"source.ada\"}`)),a=[e];export{a as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/7A4Fjokl.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Wenyan\",\"name\":\"wenyan\",\"patterns\":[{\"include\":\"#keywords\"},{\"include\":\"#constants\"},{\"include\":\"#operators\"},{\"include\":\"#symbols\"},{\"include\":\"#expression\"},{\"include\":\"#comment-blocks\"},{\"include\":\"#comment-lines\"}],\"repository\":{\"comment-blocks\":{\"begin\":\"(注曰|疏曰|批曰)。?(「「|『)\",\"end\":\"(」」|』)\",\"name\":\"comment.block\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character\"}]},\"comment-lines\":{\"begin\":\"注曰|疏曰|批曰\",\"end\":\"$\",\"name\":\"comment.line\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character\"}]},\"constants\":{\"patterns\":[{\"match\":\"負|·|又|零|〇|一|二|三|四|五|六|七|八|九|十|百|千|萬|億|兆|京|垓|秭|穰|溝|澗|正|載|極|分|釐|毫|絲|忽|微|纖|沙|塵|埃|渺|漠\",\"name\":\"constant.numeric\"},{\"match\":\"其|陰|陽\",\"name\":\"constant.language\"},{\"begin\":\"「「|『\",\"end\":\"」」|』\",\"name\":\"string.quoted\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character\"}]}]},\"expression\":{\"patterns\":[{\"include\":\"#variables\"}]},\"keywords\":{\"patterns\":[{\"match\":\"數|列|言|術|爻|物|元\",\"name\":\"storage.type\"},{\"match\":\"乃行是術曰|若其不然者|乃歸空無|欲行是術|乃止是遍|若其然者|其物如是|乃得矣|之術也|必先得|是術曰|恆為是|之物也|乃得|是謂|云云|中之|為是|乃止|若非|或若|之長|其餘\",\"name\":\"keyword.control\"},{\"match\":\"或云|蓋謂\",\"name\":\"keyword.control\"},{\"match\":\"中有陽乎|中無陰乎|所餘幾何|不等於|不大於|不小於|等於|大於|小於|加|減|乘|除|變|以|於\",\"name\":\"keyword.operator\"},{\"match\":\"不知何禍歟|不復存矣|姑妄行此|如事不諧|名之曰|吾嘗觀|之禍歟|乃作罷|吾有|今有|物之|書之|以施|昔之|是矣|之書|方悟|之義|嗚呼|之禍|有|施|曰|噫|取|今|夫|中|豈\",\"name\":\"keyword.other\"},{\"match\":\"也|凡|遍|若|者|之|充|銜\",\"name\":\"keyword.control\"}]},\"symbols\":{\"patterns\":[{\"match\":\"。|、\",\"name\":\"punctuation.separator\"}]},\"variables\":{\"begin\":\"「\",\"end\":\"」\",\"name\":\"variable.other\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character\"}]}},\"scopeName\":\"source.wenyan\",\"aliases\":[\"文言\"]}')),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/7O62HKoU.js",
    "content": "const a=Object.freeze(JSON.parse(`{\"displayName\":\"Ara\",\"fileTypes\":[\"ara\"],\"name\":\"ara\",\"patterns\":[{\"include\":\"#namespace\"},{\"include\":\"#named-arguments\"},{\"include\":\"#comments\"},{\"include\":\"#keywords\"},{\"include\":\"#strings\"},{\"include\":\"#numbers\"},{\"include\":\"#operators\"},{\"include\":\"#type\"},{\"include\":\"#function-call\"}],\"repository\":{\"class-name\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(?i)(?<!\\\\\\\\$)(?=[\\\\\\\\\\\\\\\\a-zA-Z_])\",\"end\":\"(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\\\\\\\\\\\\\])\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"support.class.ara\"}},\"patterns\":[{\"include\":\"#namespace\"}]}]},\"comments\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.ara\"}},\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.ara\"},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=//)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.ara\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.ara\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.double-slash.ara\"}]}]},\"function-call\":{\"patterns\":[{\"begin\":\"(?i)(?=\\\\\\\\\\\\\\\\?[a-z_0-9\\\\\\\\\\\\\\\\]+\\\\\\\\\\\\\\\\[a-z_][a-z0-9_]*\\\\\\\\s*(\\\\\\\\(|(::<)))\",\"comment\":\"Functions in a user-defined namespace (overrides any built-ins)\",\"end\":\"(?=\\\\\\\\s*(\\\\\\\\(|(::<)))\",\"patterns\":[{\"include\":\"#user-function-call\"}]},{\"begin\":\"(?i)(\\\\\\\\\\\\\\\\)?(?=\\\\\\\\b[a-z_][a-z_0-9]*\\\\\\\\s*(\\\\\\\\(|(::<)))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.inheritance.php\"}},\"comment\":\"Root namespace function calls (built-in or user)\",\"end\":\"(?=\\\\\\\\s*(\\\\\\\\(|(::<)))\",\"patterns\":[{\"include\":\"#user-function-call\"}]}]},\"interpolation\":{\"patterns\":[{\"comment\":\"Interpolating octal values e.g. \\\\\\\\01 or \\\\\\\\07.\",\"match\":\"\\\\\\\\\\\\\\\\[0-7]{1,3}\",\"name\":\"constant.numeric.octal.ara\"},{\"comment\":\"Interpolating hex values e.g. \\\\\\\\x1 or \\\\\\\\xFF.\",\"match\":\"\\\\\\\\\\\\\\\\x[0-9A-Fa-f]{1,2}\",\"name\":\"constant.numeric.hex.ara\"},{\"comment\":\"Escaped characters in double-quoted strings e.g. \\\\\\\\n or \\\\\\\\t.\",\"match\":\"\\\\\\\\\\\\\\\\[nrt\\\\\\\\\\\\\\\\\\\\\\\\$\\\\\\\\\\\\\"]\",\"name\":\"constant.character.escape.ara\"}]},\"keywords\":{\"patterns\":[{\"match\":\"\\\\\\\\b(await|async|concurrently|break|continue|do|else|elseif|for|if|loop|while|foreach|match|return|try|yield|from|catch|finally|default|exit)\\\\\\\\b\",\"name\":\"keyword.control.ara\"},{\"match\":\"\\\\\\\\b(const|enum|class|interface|trait|namespace|type|case|function|fn)\\\\\\\\b\",\"name\":\"storage.decl.ara\"},{\"match\":\"\\\\\\\\b(final|abstract|static|readonly|public|private|protected)\\\\\\\\b\",\"name\":\"storage.modifier.ara\"},{\"match\":\"\\\\\\\\b(as|is|extends|implements|use|where|clone|new)\\\\\\\\b\",\"name\":\"keyword.other.ara\"}]},\"named-arguments\":{\"captures\":{\"1\":{\"name\":\"entity.name.variable.parameter.ara\"},\"2\":{\"name\":\"punctuation.separator.colon.ara\"}},\"match\":\"(?i)(?<=^|\\\\\\\\(|,)\\\\\\\\s*([a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)\\\\\\\\s*(:)(?!:)\"},\"namespace\":{\"begin\":\"(?i)((namespace)|[a-z0-9_]+)?(\\\\\\\\\\\\\\\\)(?=.*?[^a-z_0-9\\\\\\\\\\\\\\\\])\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.type.namespace.php\"},\"3\":{\"name\":\"punctuation.separator.inheritance.php\"}},\"end\":\"(?i)(?=[a-z0-9_]*[^a-z0-9_\\\\\\\\\\\\\\\\])\",\"name\":\"support.other.namespace.php\",\"patterns\":[{\"match\":\"(?i)[a-z0-9_]+(?=\\\\\\\\\\\\\\\\)\",\"name\":\"entity.name.type.namespace.php\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.inheritance.php\"}},\"match\":\"(?i)(\\\\\\\\\\\\\\\\)\"}]},\"numbers\":{\"patterns\":[{\"match\":\"0[xX][0-9a-fA-F]+(?:_[0-9a-fA-F]+)*\",\"name\":\"constant.numeric.hex.ara\"},{\"match\":\"0[bB][01]+(?:_[01]+)*\",\"name\":\"constant.numeric.binary.ara\"},{\"match\":\"0[oO][0-7]+(?:_[0-7]+)*\",\"name\":\"constant.numeric.octal.ara\"},{\"match\":\"0(?:_?[0-7]+)+\",\"name\":\"constant.numeric.octal.ara\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.decimal.period.ara\"},\"2\":{\"name\":\"punctuation.separator.decimal.period.ara\"}},\"match\":\"(?:(?:[0-9]+(?:_[0-9]+)*)?(\\\\\\\\.)[0-9]+(?:_[0-9]+)*(?:[eE][+-]?[0-9]+(?:_[0-9]+)*)?|[0-9]+(?:_[0-9]+)*(\\\\\\\\.)(?:[0-9]+(?:_[0-9]+)*)?(?:[eE][+-]?[0-9]+(?:_[0-9]+)*)?|[0-9]+(?:_[0-9]+)*[eE][+-]?[0-9]+(?:_[0-9]+)*)\",\"name\":\"constant.numeric.decimal.ara\"},{\"match\":\"0|[1-9](?:_?[0-9]+)*\",\"name\":\"constant.numeric.decimal.ara\"}]},\"operators\":{\"patterns\":[{\"comment\":\"assignment operators\",\"match\":\"(\\\\\\\\+=|-=|\\\\\\\\*=|/=|%=|\\\\\\\\^=|&&=|<=|>=|&=|\\\\\\\\|=|<<=|>>=|\\\\\\\\?\\\\\\\\?=)\",\"name\":\"keyword.assignments.ara\"},{\"comment\":\"logical operators\",\"match\":\"(\\\\\\\\^|\\\\\\\\||\\\\\\\\|\\\\\\\\||&&|>>|<<|&|~|<<|>>|>|<|<=>|\\\\\\\\?\\\\\\\\?|\\\\\\\\?|:|\\\\\\\\?:)(?!=)\",\"name\":\"keyword.operators.ara\"},{\"comment\":\"comparison operators\",\"match\":\"(==|===|!==|!=|<=|>=|<|>)(?!=)\",\"name\":\"keyword.operator.comparison.ara\"},{\"comment\":\"math operators\",\"match\":\"(([+%]|(\\\\\\\\*(?!\\\\\\\\w)))(?!=))|(-(?!>))|(/(?!/))\",\"name\":\"keyword.operator.math.ara\"},{\"comment\":\"single equal assignment operator\",\"match\":\"(?<![<>])=(?!=|>)\",\"name\":\"keyword.operator.assignment.ara\"},{\"captures\":{\"1\":{\"name\":\"punctuation.brackets.round.ara\"},\"2\":{\"name\":\"punctuation.brackets.square.ara\"},\"3\":{\"name\":\"punctuation.brackets.curly.ara\"},\"4\":{\"name\":\"keyword.operator.comparison.ara\"},\"5\":{\"name\":\"punctuation.brackets.round.ara\"},\"6\":{\"name\":\"punctuation.brackets.square.ara\"},\"7\":{\"name\":\"punctuation.brackets.curly.ara\"}},\"comment\":\"less than, greater than (special case)\",\"match\":\"(?:\\\\\\\\b|(?:(\\\\\\\\))|(\\\\\\\\])|(\\\\\\\\})))[ \\\\\\\\t]+([<>])[ \\\\\\\\t]+(?:\\\\\\\\b|(?:(\\\\\\\\()|(\\\\\\\\[)|(\\\\\\\\{)))\"},{\"comment\":\"arrow method call, arrow property access\",\"match\":\"(?:->|\\\\\\\\?->)\",\"name\":\"keyword.operator.arrow.ara\"},{\"comment\":\"double arrow key-value pair\",\"match\":\"(?:=>)\",\"name\":\"keyword.operator.double-arrow.ara\"},{\"comment\":\"static method call, static property access\",\"match\":\"(?:::)\",\"name\":\"keyword.operator.static.ara\"},{\"comment\":\"closure creation\",\"match\":\"(?:\\\\\\\\(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\))\",\"name\":\"keyword.operator.closure.ara\"},{\"comment\":\"spread operator\",\"match\":\"(?:\\\\\\\\.\\\\\\\\.\\\\\\\\.)\",\"name\":\"keyword.operator.spread.ara\"},{\"comment\":\"namespace operator\",\"match\":\"\\\\\\\\\\\\\\\\\",\"name\":\"keyword.operator.namespace.ara\"}]},\"strings\":{\"patterns\":[{\"begin\":\"'\",\"end\":\"'\",\"name\":\"string.quoted.single.ara\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\\\']\",\"name\":\"constant.character.escape.ara\"}]},{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.ara\",\"patterns\":[{\"include\":\"#interpolation\"}]}]},\"type\":{\"name\":\"support.type.php\",\"patterns\":[{\"match\":\"\\\\\\\\b(?:void|true|false|null|never|float|bool|int|string|dict|vec|object|mixed|nonnull|resource|self|static|parent|iterable)\\\\\\\\b\",\"name\":\"support.type.php\"},{\"begin\":\"([A-Za-z_][A-Za-z0-9_]*)<\",\"beginCaptures\":{\"1\":{\"name\":\"support.class.php\"}},\"end\":\">\",\"patterns\":[{\"include\":\"#type-annotation\"}]},{\"begin\":\"(shape\\\\\\\\()\",\"end\":\"((,|\\\\\\\\.\\\\\\\\.\\\\\\\\.)?\\\\\\\\s*\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.key.php\"}},\"name\":\"storage.type.shape.php\",\"patterns\":[{\"include\":\"#type-annotation\"},{\"include\":\"#strings\"},{\"include\":\"#constants\"}]},{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#type-annotation\"}]},{\"begin\":\"\\\\\\\\(fn\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#type-annotation\"}]},{\"include\":\"#class-name\"},{\"include\":\"#comments\"}]},\"user-function-call\":{\"begin\":\"(?i)(?=[a-z_0-9\\\\\\\\\\\\\\\\]*[a-z_][a-z0-9_]*\\\\\\\\s*\\\\\\\\()\",\"end\":\"(?i)[a-z_][a-z_0-9]*(?=\\\\\\\\s*\\\\\\\\()\",\"endCaptures\":{\"0\":{\"name\":\"entity.name.function.php\"}},\"name\":\"meta.function-call.php\",\"patterns\":[{\"include\":\"#namespace\"}]}},\"scopeName\":\"source.ara\"}`)),e=[a];export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/9C6ErRqt.js",
    "content": "import e from\"./Dbxjm_CC.js\";import\"./C3t2pwGQ.js\";const n=Object.freeze(JSON.parse(`{\"displayName\":\"Nginx\",\"fileTypes\":[\"conf.erb\",\"conf\",\"ngx\",\"nginx.conf\",\"mime.types\",\"fastcgi_params\",\"scgi_params\",\"uwsgi_params\"],\"foldingStartMarker\":\"\\\\\\\\{\\\\\\\\s*$\",\"foldingStopMarker\":\"^\\\\\\\\s*\\\\\\\\}\",\"name\":\"nginx\",\"patterns\":[{\"match\":\"\\\\\\\\#.*\",\"name\":\"comment.line.number-sign\"},{\"begin\":\"\\\\\\\\b((?:content|rewrite|access|init_worker|init|set|log|balancer|ssl_(?:client_hello|session_fetch|certificate))_by_lua(?:_block)?)\\\\\\\\s*\\\\\\\\{\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.directive.context.nginx\"}},\"contentName\":\"meta.embedded.block.lua\",\"end\":\"\\\\\\\\}\",\"name\":\"meta.context.lua.nginx\",\"patterns\":[{\"include\":\"source.lua\"}]},{\"begin\":\"\\\\\\\\b((?:content|rewrite|access|init_worker|init|set|log|balancer|ssl_(?:client_hello|session_fetch|certificate))_by_lua)\\\\\\\\s*'\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.directive.context.nginx\"}},\"contentName\":\"meta.embedded.block.lua\",\"end\":\"'\",\"name\":\"meta.context.lua.nginx\",\"patterns\":[{\"include\":\"source.lua\"}]},{\"begin\":\"\\\\\\\\b(events) +\\\\\\\\{\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.directive.context.nginx\"}},\"end\":\"\\\\\\\\}\",\"name\":\"meta.context.events.nginx\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\b(http) +\\\\\\\\{\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.directive.context.nginx\"}},\"end\":\"\\\\\\\\}\",\"name\":\"meta.context.http.nginx\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\b(mail) +\\\\\\\\{\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.directive.context.nginx\"}},\"end\":\"\\\\\\\\}\",\"name\":\"meta.context.mail.nginx\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\b(stream) +\\\\\\\\{\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.directive.context.nginx\"}},\"end\":\"\\\\\\\\}\",\"name\":\"meta.context.stream.nginx\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\b(server) +\\\\\\\\{\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.directive.context.nginx\"}},\"end\":\"\\\\\\\\}\",\"name\":\"meta.context.server.nginx\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\b(location) +([\\\\\\\\^]?~[\\\\\\\\*]?|=) +(.*?)\\\\\\\\{\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.directive.context.nginx\"},\"2\":{\"name\":\"keyword.operator.nginx\"},\"3\":{\"name\":\"string.regexp.nginx\"}},\"end\":\"\\\\\\\\}\",\"name\":\"meta.context.location.nginx\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\b(location) +(.*?)\\\\\\\\{\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.directive.context.nginx\"},\"2\":{\"name\":\"entity.name.context.location.nginx\"}},\"end\":\"\\\\\\\\}\",\"name\":\"meta.context.location.nginx\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\b(limit_except) +\\\\\\\\{\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.directive.context.nginx\"}},\"end\":\"\\\\\\\\}\",\"name\":\"meta.context.limit_except.nginx\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\b(if) +\\\\\\\\(\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.nginx\"}},\"end\":\"\\\\\\\\)\",\"name\":\"meta.context.if.nginx\",\"patterns\":[{\"include\":\"#if_condition\"}]},{\"begin\":\"\\\\\\\\b(upstream) +(.*?)\\\\\\\\{\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.directive.context.nginx\"},\"2\":{\"name\":\"entity.name.context.location.nginx\"}},\"end\":\"\\\\\\\\}\",\"name\":\"meta.context.upstream.nginx\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\b(types) +\\\\\\\\{\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.directive.context.nginx\"}},\"end\":\"\\\\\\\\}\",\"name\":\"meta.context.types.nginx\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\b(map) +(\\\\\\\\$)([A-Za-z0-9\\\\\\\\_]+) +(\\\\\\\\$)([A-Za-z0-9\\\\\\\\_]+) *\\\\\\\\{\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.directive.context.nginx\"},\"2\":{\"name\":\"punctuation.definition.variable.nginx\"},\"3\":{\"name\":\"variable.parameter.nginx\"},\"4\":{\"name\":\"punctuation.definition.variable.nginx\"},\"5\":{\"name\":\"variable.other.nginx\"}},\"end\":\"\\\\\\\\}\",\"name\":\"meta.context.map.nginx\",\"patterns\":[{\"include\":\"#values\"},{\"match\":\";\",\"name\":\"punctuation.terminator.nginx\"},{\"match\":\"\\\\\\\\#.*\",\"name\":\"comment.line.number-sign\"}]},{\"begin\":\"\\\\\\\\{\",\"end\":\"\\\\\\\\}\",\"name\":\"meta.block.nginx\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\b(return)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.nginx\"}},\"end\":\";\",\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"\\\\\\\\b(rewrite)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\"(last|break|redirect|permanent)?(;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.other.nginx\"},\"2\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"\\\\\\\\b(server)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#server_parameters\"}]},{\"begin\":\"\\\\\\\\b(internal|empty_gif|f4f|flv|hls|mp4|break|status|stub_status|ip_hash|ntlm|least_conn|upstream_conf|least_conn|zone_sync)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\"(;|$)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.nginx\"}}},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(accept_)(mutex|mutex_delay)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(debug_)(connection|points)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(error_)(log|page)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(ssl_)(engine|buffer_size|certificate|certificate_key|ciphers|client_certificate|conf_command|crl|dhparam|early_data|ecdh_curve|ocsp|ocsp_cache|ocsp_responder|password_file|prefer_server_ciphers|protocols|reject_handshake|session_cache|session_ticket_key|session_tickets|session_timeout|stapling|stapling_file|stapling_responder|stapling_verify|trusted_certificate|verify_client|verify_depth|alpn|handshake_timeout|preread)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(worker_)(aio_requests|connections|cpu_affinity|priority|processes|rlimit_core|rlimit_nofile|shutdown_timeout)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(auth_)(delay|basic|basic_user_file|jwt|jwt_claim_set|jwt_header_set|jwt_key_cache|jwt_key_file|jwt_key_request|jwt_leeway|jwt_type|jwt_require|request|request_set|http|http_header|http_pass_client_cert|http_timeout)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(client_)(body_buffer_size|body_in_file_only|body_in_single_buffer|body_temp_path|body_timeout|header_buffer_size|header_timeout|max_body_size)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(keepalive_)(disable|requests|time|timeout)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(limit_)(rate|rate_after|conn|conn_dry_run|conn_log_level|conn_status|conn_zone|zone|req|req_dry_run|req_log_level|req_status|req_zone)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(lingering_)(close|time|timeout)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(log_)(not_found|subrequest|format)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(max_)(ranges|errors)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(msie_)(padding|refresh)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(open_)(file_cache|file_cache_errors|file_cache_min_uses|file_cache_valid|log_file_cache)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(send_)(lowat|timeout)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(server_)(name|name_in_redirect|names_hash_bucket_size|names_hash_max_size|tokens)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(tcp_)(nodelay|nopush)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(types_)(hash_bucket_size|hash_max_size)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(variables_)(hash_bucket_size|hash_max_size)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(add_)(before_body|after_body|header|trailer)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(status_)(zone|format)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(autoindex_)(exact_size|format|localtime)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(ancient_)(browser|browser_value)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(modern_)(browser|browser_value)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(charset_)(map|types)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(dav_)(access|methods)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(fastcgi_)(bind|buffer_size|buffering|buffers|busy_buffers_size|cache|cache_background_update|cache_bypass|cache_key|cache_lock|cache_lock_age|cache_lock_timeout|cache_max_range_offset|cache_methods|cache_min_uses|cache_path|cache_purge|cache_revalidate|cache_use_stale|cache_valid|catch_stderr|connect_timeout|force_ranges|hide_header|ignore_client_abort|ignore_headers|index|intercept_errors|keep_conn|limit_rate|max_temp_file_size|next_upstream|next_upstream_timeout|next_upstream_tries|no_cache|param|pass|pass_header|pass_request_body|pass_request_headers|read_timeout|request_buffering|send_lowat|send_timeout|socket_keepalive|split_path_info|store|store_access|temp_file_write_size|temp_path)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(geoip_)(country|city|org|proxy|proxy_recursive)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(grpc_)(bind|buffer_size|connect_timeout|hide_header|ignore_headers|intercept_errors|next_upstream|next_upstream_timeout|next_upstream_tries|pass|pass_header|read_timeout|send_timeout|set_header|socket_keepalive|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_conf_command|ssl_crl|ssl_name|ssl_password_file|ssl_protocols|ssl_server_name|ssl_session_reuse|ssl_trusted_certificate|ssl_verify|ssl_verify_depth)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(gzip_)(buffers|comp_level|disable|http_version|min_length|proxied|types|vary|static)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(hls_)(buffers|forward_args|fragment|mp4_buffer_size|mp4_max_buffer_size)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(image_)(filter|filter_buffer|filter_interlace|filter_jpeg_quality|filter_sharpen|filter_transparency|filter_webp_quality)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(map_)(hash_bucket_size|hash_max_size)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(memcached_)(bind|buffer_size|connect_timeout|gzip_flag|next_upstream|next_upstream_timeout|next_upstream_tries|pass|read_timeout|send_timeout|socket_keepalive)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(mp4_)(buffer_size|max_buffer_size|limit_rate|limit_rate_after|start_key_frame)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(perl_)(modules|require|set)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(proxy_)(bind|buffer_size|buffering|buffers|busy_buffers_size|cache|cache_background_update|cache_bypass|cache_convert_head|cache_key|cache_lock|cache_lock_age|cache_lock_timeout|cache_max_range_offset|cache_methods|cache_min_uses|cache_path|cache_purge|cache_revalidate|cache_use_stale|cache_valid|connect_timeout|cookie_domain|cookie_flags|cookie_path|force_ranges|headers_hash_bucket_size|headers_hash_max_size|hide_header|http_version|ignore_client_abort|ignore_headers|intercept_errors|limit_rate|max_temp_file_size|method|next_upstream|next_upstream_timeout|next_upstream_tries|no_cache|pass|pass_header|pass_request_body|pass_request_headers|read_timeout|redirect|request_buffering|send_lowat|send_timeout|set_body|set_header|socket_keepalive|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_conf_command|ssl_crl|ssl_name|ssl_password_file|ssl_protocols|ssl_server_name|ssl_session_reuse|ssl_trusted_certificate|ssl_verify|ssl_verify_depth|store|store_access|temp_file_write_size|temp_path|buffer|pass_error_message|protocol|smtp_auth|timeout|protocol_timeout|download_rate|half_close|requests|responses|session_drop|ssl|upload_rate)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(real_)(ip_header|ip_recursive)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(referer_)(hash_bucket_size|hash_max_size)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(scgi_)(bind|buffer_size|buffering|buffers|busy_buffers_size|cache|cache_background_update|cache_bypass|cache_key|cache_lock|cache_lock_age|cache_lock_timeout|cache_max_range_offset|cache_methods|cache_min_uses|cache_path|cache_purge|cache_revalidate|cache_use_stale|cache_valid|connect_timeout|force_ranges|hide_header|ignore_client_abort|ignore_headers|intercept_errors|limit_rate|max_temp_file_size|next_upstream|next_upstream_timeout|next_upstream_tries|no_cache|param|pass|pass_header|pass_request_body|pass_request_headers|read_timeout|request_buffering|send_timeout|socket_keepalive|store|store_access|temp_file_write_size|temp_path)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(secure_)(link|link_md5|link_secret)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(session_)(log|log_format|log_zone)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(ssi_)(last_modified|min_file_chunk|silent_errors|types|value_length)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(sub_)(filter|filter_last_modified|filter_once|filter_types)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(health_)(check|check_timeout)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(userid_)(domain|expires|flags|mark|name|p3p|path|service)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(uwsgi_)(bind|buffer_size|buffering|buffers|busy_buffers_size|cache|cache_background_update|cache_bypass|cache_key|cache_lock|cache_lock_age|cache_lock_timeout|cache_max_range_offset|cache_methods|cache_min_uses|cache_path|cache_purge|cache_revalidate|cache_use_stale|cache_valid|connect_timeout|force_ranges|hide_header|ignore_client_abort|ignore_headers|intercept_errors|limit_rate|max_temp_file_size|modifier1|modifier2|next_upstream|next_upstream_timeout|next_upstream_tries|no_cache|param|pass|pass_header|pass_request_body|pass_request_headers|read_timeout|request_buffering|send_timeout|socket_keepalive|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_conf_command|ssl_crl|ssl_name|ssl_password_file|ssl_protocols|ssl_server_name|ssl_session_reuse|ssl_trusted_certificate|ssl_verify|ssl_verify_depth|store|store_access|temp_file_write_size|temp_path)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(http2_)(body_preread_size|chunk_size|idle_timeout|max_concurrent_pushes|max_concurrent_streams|max_field_size|max_header_size|max_requests|push|push_preload|recv_buffer_size|recv_timeout)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(http3_)(hq|max_concurrent_streams|stream_buffer_size)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(quic_)(active_connection_id_limit|bpf|gso|host_key|retry)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(xslt_)(last_modified|param|string_param|stylesheet|types)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(imap_)(auth|capabilities|client_buffer)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(pop3_)(auth|capabilities)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(smtp_)(auth|capabilities|client_buffer|greeting_delay)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(preread_)(buffer_size|timeout)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(mqtt_)(preread|buffers|rewrite_buffer_size|set_connect)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(zone_)(sync_buffers|sync_connect_retry_interval|sync_connect_timeout|sync_interval|sync_recv_buffer_size|sync_server|sync_ssl|sync_ssl_certificate|sync_ssl_certificate_key|sync_ssl_ciphers|sync_ssl_conf_command|sync_ssl_crl|sync_ssl_name|sync_ssl_password_file|sync_ssl_protocols|sync_ssl_server_name|sync_ssl_trusted_certificate|sync_ssl_verify|sync_ssl_verify_depth|sync_timeout)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(otel_)(exporter|service_name|trace|trace_context|span_name|span_attr)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(js_)(body_filter|content|fetch_buffer_size|fetch_ciphers|fetch_max_response_buffer_size|fetch_protocols|fetch_timeout|fetch_trusted_certificate|fetch_verify|fetch_verify_depth|header_filter|import|include|path|periodic|preload_object|set|shared_dict_zone|var|access|filter|preread)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"},\"4\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"([\\\\\"'\\\\\\\\s]|^)(daemon|env|include|pid|use|user|aio|alias|directio|etag|listen|resolver|root|satisfy|sendfile|allow|deny|api|autoindex|charset|geo|gunzip|gzip|expires|index|keyval|mirror|perl|set|slice|ssi|ssl|zone|state|hash|keepalive|queue|random|sticky|match|userid|http2|http3|protocol|timeout|xclient|starttls|mqtt|load_module|lock_file|master_process|multi_accept|pcre_jit|thread_pool|timer_resolution|working_directory|absolute_redirect|aio_write|chunked_transfer_encoding|connection_pool_size|default_type|directio_alignment|disable_symlinks|if_modified_since|ignore_invalid_headers|large_client_header_buffers|merge_slashes|output_buffers|port_in_redirect|postpone_output|read_ahead|recursive_error_pages|request_pool_size|reset_timedout_connection|resolver_timeout|sendfile_max_chunk|subrequest_output_buffer_size|try_files|underscores_in_headers|addition_types|override_charset|source_charset|create_full_put_path|min_delete_depth|f4f_buffer_size|gunzip_buffers|internal_redirect|keyval_zone|access_log|mirror_request_body|random_index|set_real_ip_from|valid_referers|rewrite_log|uninitialized_variable_warn|split_clients|least_time|sticky_cookie_insert|xml_entities|google_perftools_profiles)([\\\\\"'\\\\\\\\s]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.nginx\"},\"2\":{\"name\":\"keyword.directive.nginx\"},\"3\":{\"name\":\"keyword.directive.nginx\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"\\\\\\\\b([a-zA-Z0-9\\\\\\\\_]+)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.unknown.nginx\"}},\"end\":\"(;|$)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]},{\"begin\":\"\\\\\\\\b([a-z]+\\\\\\\\/[A-Za-z0-9\\\\\\\\-\\\\\\\\.\\\\\\\\+]+)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"constant.other.mediatype.nginx\"}},\"end\":\"(;)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.nginx\"}},\"patterns\":[{\"include\":\"#values\"}]}],\"repository\":{\"if_condition\":{\"patterns\":[{\"include\":\"#variables\"},{\"match\":\"\\\\\\\\!?\\\\\\\\~\\\\\\\\*?\\\\\\\\s\",\"name\":\"keyword.operator.nginx\"},{\"match\":\"\\\\\\\\!?\\\\\\\\-[fdex]\\\\\\\\s\",\"name\":\"keyword.operator.nginx\"},{\"match\":\"\\\\\\\\!?=[^=]\",\"name\":\"keyword.operator.nginx\"},{\"include\":\"#regexp_and_string\"}]},\"regexp_and_string\":{\"patterns\":[{\"match\":\"\\\\\\\\^.*?\\\\\\\\$\",\"name\":\"string.regexp.nginx\"},{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.nginx\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[\\\\\"'nt\\\\\\\\\\\\\\\\]\",\"name\":\"constant.character.escape.nginx\"},{\"include\":\"#variables\"}]},{\"begin\":\"'\",\"end\":\"'\",\"name\":\"string.quoted.single.nginx\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[\\\\\"'nt\\\\\\\\\\\\\\\\]\",\"name\":\"constant.character.escape.nginx\"},{\"include\":\"#variables\"}]}]},\"server_parameters\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.parameter.nginx\"},\"2\":{\"name\":\"keyword.operator.nginx\"},\"3\":{\"name\":\"constant.numeric.nginx\"}},\"match\":\"(?:^|\\\\\\\\s)(weight|max_conn|max_fails|fail_timeout|slow_start)(=)(\\\\\\\\d[\\\\\\\\d\\\\\\\\.]*[bBkKmMgGtTsShHdD]?)(?:\\\\\\\\s|;|$)\"},{\"include\":\"#values\"}]},\"values\":{\"patterns\":[{\"include\":\"#variables\"},{\"match\":\"\\\\\\\\#.*\",\"name\":\"comment.line.number-sign\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.nginx\"}},\"match\":\"(?<=\\\\\\\\G|\\\\\\\\s)(=?[0-9][0-9\\\\\\\\.]*[bBkKmMgGtTsShHdD]?)(?=[\\\\\\\\t ;])\"},{\"match\":\"(?<=\\\\\\\\G|\\\\\\\\s)(on|off|true|false)(?=[\\\\\\\\t ;])\",\"name\":\"constant.language.nginx\"},{\"match\":\"(?<=\\\\\\\\G|\\\\\\\\s)(kqueue|rtsig|epoll|\\\\\\\\/dev\\\\\\\\/poll|select|poll|eventport|max|all|default_server|default|main|crit|error|debug|warn|notice|last)(?=[\\\\\\\\t ;])\",\"name\":\"constant.language.nginx\"},{\"match\":\"\\\\\\\\\\\\\\\\.*\\\\\\\\ |\\\\\\\\~\\\\\\\\*|\\\\\\\\~|\\\\\\\\!\\\\\\\\~\\\\\\\\*|\\\\\\\\!\\\\\\\\~\",\"name\":\"keyword.operator.nginx\"},{\"include\":\"#regexp_and_string\"}]},\"variables\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.nginx\"},\"2\":{\"name\":\"variable.other.nginx\"}},\"match\":\"(\\\\\\\\$)([A-Za-z0-9\\\\\\\\_]+)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.nginx\"},\"2\":{\"name\":\"variable.other.nginx\"},\"3\":{\"name\":\"punctuation.definition.variable.nginx\"}},\"match\":\"(\\\\\\\\$\\\\\\\\{)([A-Za-z0-9\\\\\\\\_]+)(\\\\\\\\})\"}]}},\"scopeName\":\"source.nginx\",\"embeddedLangs\":[\"lua\"]}`)),r=[...e,n];export{r as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/9VOnL4Iz.js",
    "content": "function S(h){var t=h.width,i=h.height;if(t<0)throw new Error(\"Negative width is not allowed for Size\");if(i<0)throw new Error(\"Negative height is not allowed for Size\");return{width:t,height:i}}function F(h,t){return h.width===t.width&&h.height===t.height}var js=function(){function h(t){var i=this;this._resolutionListener=function(){return i._onResolutionChanged()},this._resolutionMediaQueryList=null,this._observers=[],this._window=t,this._installResolutionListener()}return h.prototype.dispose=function(){this._uninstallResolutionListener(),this._window=null},Object.defineProperty(h.prototype,\"value\",{get:function(){return this._window.devicePixelRatio},enumerable:!1,configurable:!0}),h.prototype.subscribe=function(t){var i=this,s={next:t};return this._observers.push(s),{unsubscribe:function(){i._observers=i._observers.filter(function(e){return e!==s})}}},h.prototype._installResolutionListener=function(){if(this._resolutionMediaQueryList!==null)throw new Error(\"Resolution listener is already installed\");var t=this._window.devicePixelRatio;this._resolutionMediaQueryList=this._window.matchMedia(\"all and (resolution: \".concat(t,\"dppx)\")),this._resolutionMediaQueryList.addListener(this._resolutionListener)},h.prototype._uninstallResolutionListener=function(){this._resolutionMediaQueryList!==null&&(this._resolutionMediaQueryList.removeListener(this._resolutionListener),this._resolutionMediaQueryList=null)},h.prototype._reinstallResolutionListener=function(){this._uninstallResolutionListener(),this._installResolutionListener()},h.prototype._onResolutionChanged=function(){var t=this;this._observers.forEach(function(i){return i.next(t._window.devicePixelRatio)}),this._reinstallResolutionListener()},h}();function Us(h){return new js(h)}var Zs=function(){function h(t,i,s){var e;this._canvasElement=null,this._bitmapSizeChangedListeners=[],this._suggestedBitmapSize=null,this._suggestedBitmapSizeChangedListeners=[],this._devicePixelRatioObservable=null,this._canvasElementResizeObserver=null,this._canvasElement=t,this._canvasElementClientSize=S({width:this._canvasElement.clientWidth,height:this._canvasElement.clientHeight}),this._transformBitmapSize=i??function(n){return n},this._allowResizeObserver=(e=s==null?void 0:s.allowResizeObserver)!==null&&e!==void 0?e:!0,this._chooseAndInitObserver()}return h.prototype.dispose=function(){var t,i;if(this._canvasElement===null)throw new Error(\"Object is disposed\");(t=this._canvasElementResizeObserver)===null||t===void 0||t.disconnect(),this._canvasElementResizeObserver=null,(i=this._devicePixelRatioObservable)===null||i===void 0||i.dispose(),this._devicePixelRatioObservable=null,this._suggestedBitmapSizeChangedListeners.length=0,this._bitmapSizeChangedListeners.length=0,this._canvasElement=null},Object.defineProperty(h.prototype,\"canvasElement\",{get:function(){if(this._canvasElement===null)throw new Error(\"Object is disposed\");return this._canvasElement},enumerable:!1,configurable:!0}),Object.defineProperty(h.prototype,\"canvasElementClientSize\",{get:function(){return this._canvasElementClientSize},enumerable:!1,configurable:!0}),Object.defineProperty(h.prototype,\"bitmapSize\",{get:function(){return S({width:this.canvasElement.width,height:this.canvasElement.height})},enumerable:!1,configurable:!0}),h.prototype.resizeCanvasElement=function(t){this._canvasElementClientSize=S(t),this.canvasElement.style.width=\"\".concat(this._canvasElementClientSize.width,\"px\"),this.canvasElement.style.height=\"\".concat(this._canvasElementClientSize.height,\"px\"),this._invalidateBitmapSize()},h.prototype.subscribeBitmapSizeChanged=function(t){this._bitmapSizeChangedListeners.push(t)},h.prototype.unsubscribeBitmapSizeChanged=function(t){this._bitmapSizeChangedListeners=this._bitmapSizeChangedListeners.filter(function(i){return i!==t})},Object.defineProperty(h.prototype,\"suggestedBitmapSize\",{get:function(){return this._suggestedBitmapSize},enumerable:!1,configurable:!0}),h.prototype.subscribeSuggestedBitmapSizeChanged=function(t){this._suggestedBitmapSizeChangedListeners.push(t)},h.prototype.unsubscribeSuggestedBitmapSizeChanged=function(t){this._suggestedBitmapSizeChangedListeners=this._suggestedBitmapSizeChangedListeners.filter(function(i){return i!==t})},h.prototype.applySuggestedBitmapSize=function(){if(this._suggestedBitmapSize!==null){var t=this._suggestedBitmapSize;this._suggestedBitmapSize=null,this._resizeBitmap(t),this._emitSuggestedBitmapSizeChanged(t,this._suggestedBitmapSize)}},h.prototype._resizeBitmap=function(t){var i=this.bitmapSize;F(i,t)||(this.canvasElement.width=t.width,this.canvasElement.height=t.height,this._emitBitmapSizeChanged(i,t))},h.prototype._emitBitmapSizeChanged=function(t,i){var s=this;this._bitmapSizeChangedListeners.forEach(function(e){return e.call(s,t,i)})},h.prototype._suggestNewBitmapSize=function(t){var i=this._suggestedBitmapSize,s=S(this._transformBitmapSize(t,this._canvasElementClientSize)),e=F(this.bitmapSize,s)?null:s;i===null&&e===null||i!==null&&e!==null&&F(i,e)||(this._suggestedBitmapSize=e,this._emitSuggestedBitmapSizeChanged(i,e))},h.prototype._emitSuggestedBitmapSizeChanged=function(t,i){var s=this;this._suggestedBitmapSizeChangedListeners.forEach(function(e){return e.call(s,t,i)})},h.prototype._chooseAndInitObserver=function(){var t=this;if(!this._allowResizeObserver){this._initDevicePixelRatioObservable();return}Qs().then(function(i){return i?t._initResizeObserver():t._initDevicePixelRatioObservable()})},h.prototype._initDevicePixelRatioObservable=function(){var t=this;if(this._canvasElement!==null){var i=xi(this._canvasElement);if(i===null)throw new Error(\"No window is associated with the canvas\");this._devicePixelRatioObservable=Us(i),this._devicePixelRatioObservable.subscribe(function(){return t._invalidateBitmapSize()}),this._invalidateBitmapSize()}},h.prototype._invalidateBitmapSize=function(){var t,i;if(this._canvasElement!==null){var s=xi(this._canvasElement);if(s!==null){var e=(i=(t=this._devicePixelRatioObservable)===null||t===void 0?void 0:t.value)!==null&&i!==void 0?i:s.devicePixelRatio,n=this._canvasElement.getClientRects(),r=n[0]!==void 0?Xs(n[0],e):S({width:this._canvasElementClientSize.width*e,height:this._canvasElementClientSize.height*e});this._suggestNewBitmapSize(r)}}},h.prototype._initResizeObserver=function(){var t=this;this._canvasElement!==null&&(this._canvasElementResizeObserver=new ResizeObserver(function(i){var s=i.find(function(r){return r.target===t._canvasElement});if(!(!s||!s.devicePixelContentBoxSize||!s.devicePixelContentBoxSize[0])){var e=s.devicePixelContentBoxSize[0],n=S({width:e.inlineSize,height:e.blockSize});t._suggestNewBitmapSize(n)}}),this._canvasElementResizeObserver.observe(this._canvasElement,{box:\"device-pixel-content-box\"}))},h}();function Ys(h,t){return new Zs(h,t.transform,t.options)}function xi(h){return h.ownerDocument.defaultView}function Qs(){return new Promise(function(h){var t=new ResizeObserver(function(i){h(i.every(function(s){return\"devicePixelContentBoxSize\"in s})),t.disconnect()});t.observe(document.body,{box:\"device-pixel-content-box\"})}).catch(function(){return!1})}function Xs(h,t){return S({width:Math.round(h.left*t+h.width*t)-Math.round(h.left*t),height:Math.round(h.top*t+h.height*t)-Math.round(h.top*t)})}var qs=function(){function h(t,i,s){if(i.width===0||i.height===0)throw new TypeError(\"Rendering target could only be created on a media with positive width and height\");if(this._mediaSize=i,s.width===0||s.height===0)throw new TypeError(\"Rendering target could only be created using a bitmap with positive integer width and height\");this._bitmapSize=s,this._context=t}return h.prototype.useMediaCoordinateSpace=function(t){try{return this._context.save(),this._context.setTransform(1,0,0,1,0,0),this._context.scale(this._horizontalPixelRatio,this._verticalPixelRatio),t({context:this._context,mediaSize:this._mediaSize})}finally{this._context.restore()}},h.prototype.useBitmapCoordinateSpace=function(t){try{return this._context.save(),this._context.setTransform(1,0,0,1,0,0),t({context:this._context,mediaSize:this._mediaSize,bitmapSize:this._bitmapSize,horizontalPixelRatio:this._horizontalPixelRatio,verticalPixelRatio:this._verticalPixelRatio})}finally{this._context.restore()}},Object.defineProperty(h.prototype,\"_horizontalPixelRatio\",{get:function(){return this._bitmapSize.width/this._mediaSize.width},enumerable:!1,configurable:!0}),Object.defineProperty(h.prototype,\"_verticalPixelRatio\",{get:function(){return this._bitmapSize.height/this._mediaSize.height},enumerable:!1,configurable:!0}),h}();function H(h,t){var i=h.canvasElementClientSize;if(i.width===0||i.height===0)return null;var s=h.bitmapSize;if(s.width===0||s.height===0)return null;var e=h.canvasElement.getContext(\"2d\",t);return e===null?null:new qs(e,i,s)}/*!\n * @license\n * TradingView Lightweight Charts™ v4.1.3\n * Copyright (c) 2024 TradingView, Inc.\n * Licensed under Apache License 2.0 https://www.apache.org/licenses/LICENSE-2.0\n */const Js={upColor:\"#26a69a\",downColor:\"#ef5350\",wickVisible:!0,borderVisible:!0,borderColor:\"#378658\",borderUpColor:\"#26a69a\",borderDownColor:\"#ef5350\",wickColor:\"#737375\",wickUpColor:\"#26a69a\",wickDownColor:\"#ef5350\"},Ks={upColor:\"#26a69a\",downColor:\"#ef5350\",openVisible:!0,thinBars:!0},Gs={color:\"#2196f3\",lineStyle:0,lineWidth:3,lineType:0,lineVisible:!0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4,crosshairMarkerBorderColor:\"\",crosshairMarkerBorderWidth:2,crosshairMarkerBackgroundColor:\"\",lastPriceAnimation:0,pointMarkersVisible:!1},te={topColor:\"rgba( 46, 220, 135, 0.4)\",bottomColor:\"rgba( 40, 221, 100, 0)\",invertFilledArea:!1,lineColor:\"#33D778\",lineStyle:0,lineWidth:3,lineType:0,lineVisible:!0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4,crosshairMarkerBorderColor:\"\",crosshairMarkerBorderWidth:2,crosshairMarkerBackgroundColor:\"\",lastPriceAnimation:0,pointMarkersVisible:!1},ie={baseValue:{type:\"price\",price:0},topFillColor1:\"rgba(38, 166, 154, 0.28)\",topFillColor2:\"rgba(38, 166, 154, 0.05)\",topLineColor:\"rgba(38, 166, 154, 1)\",bottomFillColor1:\"rgba(239, 83, 80, 0.05)\",bottomFillColor2:\"rgba(239, 83, 80, 0.28)\",bottomLineColor:\"rgba(239, 83, 80, 1)\",lineWidth:3,lineStyle:0,lineType:0,lineVisible:!0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4,crosshairMarkerBorderColor:\"\",crosshairMarkerBorderWidth:2,crosshairMarkerBackgroundColor:\"\",lastPriceAnimation:0,pointMarkersVisible:!1},se={color:\"#26a69a\",base:0},gs={color:\"#2196f3\"},ws={title:\"\",visible:!0,lastValueVisible:!0,priceLineVisible:!0,priceLineSource:0,priceLineWidth:1,priceLineColor:\"\",priceLineStyle:2,baseLineVisible:!0,baseLineWidth:1,baseLineColor:\"#B2B5BE\",baseLineStyle:0,priceFormat:{type:\"price\",precision:2,minMove:.01}};var Ci,Ei;function j(h,t){const i={0:[],1:[h.lineWidth,h.lineWidth],2:[2*h.lineWidth,2*h.lineWidth],3:[6*h.lineWidth,6*h.lineWidth],4:[h.lineWidth,4*h.lineWidth]}[t];h.setLineDash(i)}function _s(h,t,i,s){h.beginPath();const e=h.lineWidth%2?.5:0;h.moveTo(i,t+e),h.lineTo(s,t+e),h.stroke()}function A(h,t){if(!h)throw new Error(\"Assertion failed\"+(t?\": \"+t:\"\"))}function O(h){if(h===void 0)throw new Error(\"Value is undefined\");return h}function p(h){if(h===null)throw new Error(\"Value is null\");return h}function X(h){return p(O(h))}(function(h){h[h.Simple=0]=\"Simple\",h[h.WithSteps=1]=\"WithSteps\",h[h.Curved=2]=\"Curved\"})(Ci||(Ci={})),function(h){h[h.Solid=0]=\"Solid\",h[h.Dotted=1]=\"Dotted\",h[h.Dashed=2]=\"Dashed\",h[h.LargeDashed=3]=\"LargeDashed\",h[h.SparseDotted=4]=\"SparseDotted\"}(Ei||(Ei={}));const Oi={khaki:\"#f0e68c\",azure:\"#f0ffff\",aliceblue:\"#f0f8ff\",ghostwhite:\"#f8f8ff\",gold:\"#ffd700\",goldenrod:\"#daa520\",gainsboro:\"#dcdcdc\",gray:\"#808080\",green:\"#008000\",honeydew:\"#f0fff0\",floralwhite:\"#fffaf0\",lightblue:\"#add8e6\",lightcoral:\"#f08080\",lemonchiffon:\"#fffacd\",hotpink:\"#ff69b4\",lightyellow:\"#ffffe0\",greenyellow:\"#adff2f\",lightgoldenrodyellow:\"#fafad2\",limegreen:\"#32cd32\",linen:\"#faf0e6\",lightcyan:\"#e0ffff\",magenta:\"#f0f\",maroon:\"#800000\",olive:\"#808000\",orange:\"#ffa500\",oldlace:\"#fdf5e6\",mediumblue:\"#0000cd\",transparent:\"#0000\",lime:\"#0f0\",lightpink:\"#ffb6c1\",mistyrose:\"#ffe4e1\",moccasin:\"#ffe4b5\",midnightblue:\"#191970\",orchid:\"#da70d6\",mediumorchid:\"#ba55d3\",mediumturquoise:\"#48d1cc\",orangered:\"#ff4500\",royalblue:\"#4169e1\",powderblue:\"#b0e0e6\",red:\"#f00\",coral:\"#ff7f50\",turquoise:\"#40e0d0\",white:\"#fff\",whitesmoke:\"#f5f5f5\",wheat:\"#f5deb3\",teal:\"#008080\",steelblue:\"#4682b4\",bisque:\"#ffe4c4\",aquamarine:\"#7fffd4\",aqua:\"#0ff\",sienna:\"#a0522d\",silver:\"#c0c0c0\",springgreen:\"#00ff7f\",antiquewhite:\"#faebd7\",burlywood:\"#deb887\",brown:\"#a52a2a\",beige:\"#f5f5dc\",chocolate:\"#d2691e\",chartreuse:\"#7fff00\",cornflowerblue:\"#6495ed\",cornsilk:\"#fff8dc\",crimson:\"#dc143c\",cadetblue:\"#5f9ea0\",tomato:\"#ff6347\",fuchsia:\"#f0f\",blue:\"#00f\",salmon:\"#fa8072\",blanchedalmond:\"#ffebcd\",slateblue:\"#6a5acd\",slategray:\"#708090\",thistle:\"#d8bfd8\",tan:\"#d2b48c\",cyan:\"#0ff\",darkblue:\"#00008b\",darkcyan:\"#008b8b\",darkgoldenrod:\"#b8860b\",darkgray:\"#a9a9a9\",blueviolet:\"#8a2be2\",black:\"#000\",darkmagenta:\"#8b008b\",darkslateblue:\"#483d8b\",darkkhaki:\"#bdb76b\",darkorchid:\"#9932cc\",darkorange:\"#ff8c00\",darkgreen:\"#006400\",darkred:\"#8b0000\",dodgerblue:\"#1e90ff\",darkslategray:\"#2f4f4f\",dimgray:\"#696969\",deepskyblue:\"#00bfff\",firebrick:\"#b22222\",forestgreen:\"#228b22\",indigo:\"#4b0082\",ivory:\"#fffff0\",lavenderblush:\"#fff0f5\",feldspar:\"#d19275\",indianred:\"#cd5c5c\",lightgreen:\"#90ee90\",lightgrey:\"#d3d3d3\",lightskyblue:\"#87cefa\",lightslategray:\"#789\",lightslateblue:\"#8470ff\",snow:\"#fffafa\",lightseagreen:\"#20b2aa\",lightsalmon:\"#ffa07a\",darksalmon:\"#e9967a\",darkviolet:\"#9400d3\",mediumpurple:\"#9370d8\",mediumaquamarine:\"#66cdaa\",skyblue:\"#87ceeb\",lavender:\"#e6e6fa\",lightsteelblue:\"#b0c4de\",mediumvioletred:\"#c71585\",mintcream:\"#f5fffa\",navajowhite:\"#ffdead\",navy:\"#000080\",olivedrab:\"#6b8e23\",palevioletred:\"#d87093\",violetred:\"#d02090\",yellow:\"#ff0\",yellowgreen:\"#9acd32\",lawngreen:\"#7cfc00\",pink:\"#ffc0cb\",paleturquoise:\"#afeeee\",palegoldenrod:\"#eee8aa\",darkolivegreen:\"#556b2f\",darkseagreen:\"#8fbc8f\",darkturquoise:\"#00ced1\",peachpuff:\"#ffdab9\",deeppink:\"#ff1493\",violet:\"#ee82ee\",palegreen:\"#98fb98\",mediumseagreen:\"#3cb371\",peru:\"#cd853f\",saddlebrown:\"#8b4513\",sandybrown:\"#f4a460\",rosybrown:\"#bc8f8f\",purple:\"#800080\",seagreen:\"#2e8b57\",seashell:\"#fff5ee\",papayawhip:\"#ffefd5\",mediumslateblue:\"#7b68ee\",plum:\"#dda0dd\",mediumspringgreen:\"#00fa9a\"};function N(h){return h<0?0:h>255?255:Math.round(h)||0}function Ss(h){return h<=0||h>0?h<0?0:h>1?1:Math.round(1e4*h)/1e4:0}const ee=/^#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])?$/i,he=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})?$/i,ne=/^rgb\\(\\s*(-?\\d{1,10})\\s*,\\s*(-?\\d{1,10})\\s*,\\s*(-?\\d{1,10})\\s*\\)$/,re=/^rgba\\(\\s*(-?\\d{1,10})\\s*,\\s*(-?\\d{1,10})\\s*,\\s*(-?\\d{1,10})\\s*,\\s*(-?[\\d]{0,10}(?:\\.\\d+)?)\\s*\\)$/;function zt(h){(h=h.toLowerCase())in Oi&&(h=Oi[h]);{const t=re.exec(h)||ne.exec(h);if(t)return[N(parseInt(t[1],10)),N(parseInt(t[2],10)),N(parseInt(t[3],10)),Ss(t.length<5?1:parseFloat(t[4]))]}{const t=he.exec(h);if(t)return[N(parseInt(t[1],16)),N(parseInt(t[2],16)),N(parseInt(t[3],16)),1]}{const t=ee.exec(h);if(t)return[N(17*parseInt(t[1],16)),N(17*parseInt(t[2],16)),N(17*parseInt(t[3],16)),1]}throw new Error(`Cannot parse color: ${h}`)}function Et(h){const t=zt(h);return{t:`rgb(${t[0]}, ${t[1]}, ${t[2]})`,i:(i=t,.199*i[0]+.687*i[1]+.114*i[2]>160?\"black\":\"white\")};var i}class M{constructor(){this.h=[]}l(t,i,s){const e={o:t,_:i,u:s===!0};this.h.push(e)}v(t){const i=this.h.findIndex(s=>t===s.o);i>-1&&this.h.splice(i,1)}p(t){this.h=this.h.filter(i=>i._!==t)}m(t,i,s){const e=[...this.h];this.h=this.h.filter(n=>!n.u),e.forEach(n=>n.o(t,i,s))}M(){return this.h.length>0}S(){this.h=[]}}function R(h,...t){for(const i of t)for(const s in i)i[s]!==void 0&&(typeof i[s]!=\"object\"||h[s]===void 0||Array.isArray(i[s])?h[s]=i[s]:R(h[s],i[s]));return h}function P(h){return typeof h==\"number\"&&isFinite(h)}function rt(h){return typeof h==\"number\"&&h%1==0}function ut(h){return typeof h==\"string\"}function dt(h){return typeof h==\"boolean\"}function W(h){const t=h;if(!t||typeof t!=\"object\")return t;let i,s,e;for(s in i=Array.isArray(t)?[]:{},t)t.hasOwnProperty(s)&&(e=t[s],i[s]=e&&typeof e==\"object\"?W(e):e);return i}function oe(h){return h!==null}function ot(h){return h===null?void 0:h}const ai=\"-apple-system, BlinkMacSystemFont, 'Trebuchet MS', Roboto, Ubuntu, sans-serif\";function K(h,t,i){return t===void 0&&(t=ai),`${i=i!==void 0?`${i} `:\"\"}${h}px ${t}`}class le{constructor(t){this.k={C:1,T:5,P:NaN,R:\"\",D:\"\",O:\"\",A:\"\",V:0,B:0,I:0,L:0,N:0},this.F=t}W(){const t=this.k,i=this.j(),s=this.H();return t.P===i&&t.D===s||(t.P=i,t.D=s,t.R=K(i,s),t.L=2.5/12*i,t.V=t.L,t.B=i/12*t.T,t.I=i/12*t.T,t.N=0),t.O=this.$(),t.A=this.U(),this.k}$(){return this.F.W().layout.textColor}U(){return this.F.q()}j(){return this.F.W().layout.fontSize}H(){return this.F.W().layout.fontFamily}}class ui{constructor(){this.Y=[]}X(t){this.Y=t}K(t,i,s){this.Y.forEach(e=>{e.K(t,i,s)})}}class B{K(t,i,s){t.useBitmapCoordinateSpace(e=>this.Z(e,i,s))}}class ae extends B{constructor(){super(...arguments),this.G=null}J(t){this.G=t}Z({context:t,horizontalPixelRatio:i,verticalPixelRatio:s}){if(this.G===null||this.G.tt===null)return;const e=this.G.tt,n=this.G,r=Math.max(1,Math.floor(i))%2/2,o=l=>{t.beginPath();for(let a=e.to-1;a>=e.from;--a){const u=n.it[a],c=Math.round(u.nt*i)+r,f=u.st*s,d=l*s+r;t.moveTo(c,f),t.arc(c,f,d,0,2*Math.PI)}t.fill()};n.et>0&&(t.fillStyle=n.rt,o(n.ht+n.et)),t.fillStyle=n.lt,o(n.ht)}}function ue(){return{it:[{nt:0,st:0,ot:0,_t:0}],lt:\"\",rt:\"\",ht:0,et:0,tt:null}}const ce={from:0,to:1};class fe{constructor(t,i){this.ut=new ui,this.ct=[],this.dt=[],this.ft=!0,this.F=t,this.vt=i,this.ut.X(this.ct)}bt(t){const i=this.F.wt();i.length!==this.ct.length&&(this.dt=i.map(ue),this.ct=this.dt.map(s=>{const e=new ae;return e.J(s),e}),this.ut.X(this.ct)),this.ft=!0}gt(){return this.ft&&(this.Mt(),this.ft=!1),this.ut}Mt(){const t=this.vt.W().mode===2,i=this.F.wt(),s=this.vt.xt(),e=this.F.St();i.forEach((n,r)=>{var o;const l=this.dt[r],a=n.kt(s);if(t||a===null||!n.yt())return void(l.tt=null);const u=p(n.Ct());l.lt=a.Tt,l.ht=a.ht,l.et=a.Pt,l.it[0]._t=a._t,l.it[0].st=n.Dt().Rt(a._t,u.Ot),l.rt=(o=a.At)!==null&&o!==void 0?o:this.F.Vt(l.it[0].st/n.Dt().Bt()),l.it[0].ot=s,l.it[0].nt=e.It(s),l.tt=ce})}}class de extends B{constructor(t){super(),this.zt=t}Z({context:t,bitmapSize:i,horizontalPixelRatio:s,verticalPixelRatio:e}){if(this.zt===null)return;const n=this.zt.Lt.yt,r=this.zt.Et.yt;if(!n&&!r)return;const o=Math.round(this.zt.nt*s),l=Math.round(this.zt.st*e);t.lineCap=\"butt\",n&&o>=0&&(t.lineWidth=Math.floor(this.zt.Lt.et*s),t.strokeStyle=this.zt.Lt.O,t.fillStyle=this.zt.Lt.O,j(t,this.zt.Lt.Nt),function(a,u,c,f){a.beginPath();const d=a.lineWidth%2?.5:0;a.moveTo(u+d,c),a.lineTo(u+d,f),a.stroke()}(t,o,0,i.height)),r&&l>=0&&(t.lineWidth=Math.floor(this.zt.Et.et*e),t.strokeStyle=this.zt.Et.O,t.fillStyle=this.zt.Et.O,j(t,this.zt.Et.Nt),_s(t,l,0,i.width))}}class me{constructor(t){this.ft=!0,this.Ft={Lt:{et:1,Nt:0,O:\"\",yt:!1},Et:{et:1,Nt:0,O:\"\",yt:!1},nt:0,st:0},this.Wt=new de(this.Ft),this.jt=t}bt(){this.ft=!0}gt(){return this.ft&&(this.Mt(),this.ft=!1),this.Wt}Mt(){const t=this.jt.yt(),i=p(this.jt.Ht()),s=i.$t().W().crosshair,e=this.Ft;if(s.mode===2)return e.Et.yt=!1,void(e.Lt.yt=!1);e.Et.yt=t&&this.jt.Ut(i),e.Lt.yt=t&&this.jt.qt(),e.Et.et=s.horzLine.width,e.Et.Nt=s.horzLine.style,e.Et.O=s.horzLine.color,e.Lt.et=s.vertLine.width,e.Lt.Nt=s.vertLine.style,e.Lt.O=s.vertLine.color,e.nt=this.jt.Yt(),e.st=this.jt.Xt()}}function ve(h,t,i,s,e,n){h.fillRect(t+n,i,s-2*n,n),h.fillRect(t+n,i+e-n,s-2*n,n),h.fillRect(t,i,n,e),h.fillRect(t+s-n,i,n,e)}function Ot(h,t,i,s,e,n){h.save(),h.globalCompositeOperation=\"copy\",h.fillStyle=n,h.fillRect(t,i,s,e),h.restore()}function ki(h,t){return h.map(i=>i===0?i:i+t)}function It(h,t,i,s,e,n){h.beginPath(),h.lineTo(t+s-n[1],i),n[1]!==0&&h.arcTo(t+s,i,t+s,i+n[1],n[1]),h.lineTo(t+s,i+e-n[2]),n[2]!==0&&h.arcTo(t+s,i+e,t+s-n[2],i+e,n[2]),h.lineTo(t+n[3],i+e),n[3]!==0&&h.arcTo(t,i+e,t,i+e-n[3],n[3]),h.lineTo(t,i+n[0]),n[0]!==0&&h.arcTo(t,i,t+n[0],i,n[0])}function Ti(h,t,i,s,e,n,r=0,o=[0,0,0,0],l=\"\"){if(h.save(),!r||!l||l===n)return It(h,t,i,s,e,o),h.fillStyle=n,h.fill(),void h.restore();const a=r/2;n!==\"transparent\"&&(It(h,t+r,i+r,s-2*r,e-2*r,ki(o,-r)),h.fillStyle=n,h.fill()),l!==\"transparent\"&&(It(h,t+a,i+a,s-r,e-r,ki(o,-a)),h.lineWidth=r,h.strokeStyle=l,h.closePath(),h.stroke()),h.restore()}function ys(h,t,i,s,e,n,r){h.save(),h.globalCompositeOperation=\"copy\";const o=h.createLinearGradient(0,0,0,e);o.addColorStop(0,n),o.addColorStop(1,r),h.fillStyle=o,h.fillRect(t,i,s,e),h.restore()}class Ni{constructor(t,i){this.J(t,i)}J(t,i){this.zt=t,this.Kt=i}Bt(t,i){return this.zt.yt?t.P+t.L+t.V:0}K(t,i,s,e){if(!this.zt.yt||this.zt.Zt.length===0)return;const n=this.zt.O,r=this.Kt.t,o=t.useBitmapCoordinateSpace(l=>{const a=l.context;a.font=i.R;const u=this.Gt(l,i,s,e),c=u.Jt,f=(d,m)=>{u.Qt?Ti(a,c.ti,c.ii,c.ni,c.si,d,c.ei,[c.ht,0,0,c.ht],m):Ti(a,c.ri,c.ii,c.ni,c.si,d,c.ei,[0,c.ht,c.ht,0],m)};return f(r,\"transparent\"),this.zt.hi&&(a.fillStyle=n,a.fillRect(c.ri,c.li,c.ai-c.ri,c.oi)),f(\"transparent\",r),this.zt._i&&(a.fillStyle=i.A,a.fillRect(u.Qt?c.ui-c.ei:0,c.ii,c.ei,c.ci-c.ii)),u});t.useMediaCoordinateSpace(({context:l})=>{const a=o.di;l.font=i.R,l.textAlign=o.Qt?\"right\":\"left\",l.textBaseline=\"middle\",l.fillStyle=n,l.fillText(this.zt.Zt,a.fi,(a.ii+a.ci)/2+a.vi)})}Gt(t,i,s,e){var n;const{context:r,bitmapSize:o,mediaSize:l,horizontalPixelRatio:a,verticalPixelRatio:u}=t,c=this.zt.hi||!this.zt.pi?i.T:0,f=this.zt.mi?i.C:0,d=i.L+this.Kt.bi,m=i.V+this.Kt.wi,v=i.B,b=i.I,g=this.zt.Zt,w=i.P,y=s.gi(r,g),_=Math.ceil(s.Mi(r,g)),z=w+d+m,T=i.C+v+b+_+c,E=Math.max(1,Math.floor(u));let C=Math.round(z*u);C%2!=E%2&&(C+=1);const D=f>0?Math.max(1,Math.floor(f*a)):0,Y=Math.round(T*a),Si=Math.round(c*a),Hs=(n=this.Kt.xi)!==null&&n!==void 0?n:this.Kt.Si,yi=Math.round(Hs*u)-Math.floor(.5*u),Bt=Math.floor(yi+E/2-C/2),Mi=Bt+C,ft=e===\"right\",zi=ft?l.width-f:f,tt=ft?o.width-D:D;let Lt,Pt,Wt;return ft?(Lt=tt-Y,Pt=tt-Si,Wt=zi-c-v-f):(Lt=tt+Y,Pt=tt+Si,Wt=zi+c+v),{Qt:ft,Jt:{ii:Bt,li:yi,ci:Mi,ni:Y,si:C,ht:2*a,ei:D,ti:Lt,ri:tt,ai:Pt,oi:E,ui:o.width},di:{ii:Bt/u,ci:Mi/u,fi:Wt,vi:y}}}}class kt{constructor(t){this.ki={Si:0,t:\"#000\",wi:0,bi:0},this.yi={Zt:\"\",yt:!1,hi:!0,pi:!1,At:\"\",O:\"#FFF\",_i:!1,mi:!1},this.Ci={Zt:\"\",yt:!1,hi:!1,pi:!0,At:\"\",O:\"#FFF\",_i:!0,mi:!0},this.ft=!0,this.Ti=new(t||Ni)(this.yi,this.ki),this.Pi=new(t||Ni)(this.Ci,this.ki)}Zt(){return this.Ri(),this.yi.Zt}Si(){return this.Ri(),this.ki.Si}bt(){this.ft=!0}Bt(t,i=!1){return Math.max(this.Ti.Bt(t,i),this.Pi.Bt(t,i))}Di(){return this.ki.xi||0}Oi(t){this.ki.xi=t}Ai(){return this.Ri(),this.yi.yt||this.Ci.yt}Vi(){return this.Ri(),this.yi.yt}gt(t){return this.Ri(),this.yi.hi=this.yi.hi&&t.W().ticksVisible,this.Ci.hi=this.Ci.hi&&t.W().ticksVisible,this.Ti.J(this.yi,this.ki),this.Pi.J(this.Ci,this.ki),this.Ti}Bi(){return this.Ri(),this.Ti.J(this.yi,this.ki),this.Pi.J(this.Ci,this.ki),this.Pi}Ri(){this.ft&&(this.yi.hi=!0,this.Ci.hi=!1,this.Ii(this.yi,this.Ci,this.ki))}}class pe extends kt{constructor(t,i,s){super(),this.jt=t,this.zi=i,this.Li=s}Ii(t,i,s){if(t.yt=!1,this.jt.W().mode===2)return;const e=this.jt.W().horzLine;if(!e.labelVisible)return;const n=this.zi.Ct();if(!this.jt.yt()||this.zi.Ei()||n===null)return;const r=Et(e.labelBackgroundColor);s.t=r.t,t.O=r.i;const o=2/12*this.zi.P();s.bi=o,s.wi=o;const l=this.Li(this.zi);s.Si=l.Si,t.Zt=this.zi.Ni(l._t,n),t.yt=!0}}const be=/[1-9]/g;class Ms{constructor(){this.zt=null}J(t){this.zt=t}K(t,i){if(this.zt===null||this.zt.yt===!1||this.zt.Zt.length===0)return;const s=t.useMediaCoordinateSpace(({context:f})=>(f.font=i.R,Math.round(i.Fi.Mi(f,p(this.zt).Zt,be))));if(s<=0)return;const e=i.Wi,n=s+2*e,r=n/2,o=this.zt.ji;let l=this.zt.Si,a=Math.floor(l-r)+.5;a<0?(l+=Math.abs(0-a),a=Math.floor(l-r)+.5):a+n>o&&(l-=Math.abs(o-(a+n)),a=Math.floor(l-r)+.5);const u=a+n,c=Math.ceil(0+i.C+i.T+i.L+i.P+i.V);t.useBitmapCoordinateSpace(({context:f,horizontalPixelRatio:d,verticalPixelRatio:m})=>{const v=p(this.zt);f.fillStyle=v.t;const b=Math.round(a*d),g=Math.round(0*m),w=Math.round(u*d),y=Math.round(c*m),_=Math.round(2*d);if(f.beginPath(),f.moveTo(b,g),f.lineTo(b,y-_),f.arcTo(b,y,b+_,y,_),f.lineTo(w-_,y),f.arcTo(w,y,w,y-_,_),f.lineTo(w,g),f.fill(),v.hi){const z=Math.round(v.Si*d),T=g,E=Math.round((T+i.T)*m);f.fillStyle=v.O;const C=Math.max(1,Math.floor(d)),D=Math.floor(.5*d);f.fillRect(z-D,T,C,E-T)}}),t.useMediaCoordinateSpace(({context:f})=>{const d=p(this.zt),m=0+i.C+i.T+i.L+i.P/2;f.font=i.R,f.textAlign=\"left\",f.textBaseline=\"middle\",f.fillStyle=d.O;const v=i.Fi.gi(f,\"Apr0\");f.translate(a+e,m+v),f.fillText(d.Zt,0,0)})}}class ge{constructor(t,i,s){this.ft=!0,this.Wt=new Ms,this.Ft={yt:!1,t:\"#4c525e\",O:\"white\",Zt:\"\",ji:0,Si:NaN,hi:!0},this.vt=t,this.Hi=i,this.Li=s}bt(){this.ft=!0}gt(){return this.ft&&(this.Mt(),this.ft=!1),this.Wt.J(this.Ft),this.Wt}Mt(){const t=this.Ft;if(t.yt=!1,this.vt.W().mode===2)return;const i=this.vt.W().vertLine;if(!i.labelVisible)return;const s=this.Hi.St();if(s.Ei())return;t.ji=s.ji();const e=this.Li();if(e===null)return;t.Si=e.Si;const n=s.$i(this.vt.xt());t.Zt=s.Ui(p(n)),t.yt=!0;const r=Et(i.labelBackgroundColor);t.t=r.t,t.O=r.i,t.hi=s.W().ticksVisible}}class ci{constructor(){this.qi=null,this.Yi=0}Xi(){return this.Yi}Ki(t){this.Yi=t}Dt(){return this.qi}Zi(t){this.qi=t}Gi(t){return[]}Ji(){return[]}yt(){return!0}}var Ri;(function(h){h[h.Normal=0]=\"Normal\",h[h.Magnet=1]=\"Magnet\",h[h.Hidden=2]=\"Hidden\"})(Ri||(Ri={}));class we extends ci{constructor(t,i){super(),this.Qi=null,this.tn=NaN,this.nn=0,this.sn=!0,this.en=new Map,this.rn=!1,this.hn=NaN,this.ln=NaN,this.an=NaN,this.on=NaN,this.Hi=t,this._n=i,this.un=new fe(t,this),this.cn=((e,n)=>r=>{const o=n(),l=e();if(r===p(this.Qi).dn())return{_t:l,Si:o};{const a=p(r.Ct());return{_t:r.fn(o,a),Si:o}}})(()=>this.tn,()=>this.ln);const s=((e,n)=>()=>{const r=this.Hi.St().vn(e()),o=n();return r&&Number.isFinite(o)?{ot:r,Si:o}:null})(()=>this.nn,()=>this.Yt());this.pn=new ge(this,t,s),this.mn=new me(this)}W(){return this._n}bn(t,i){this.an=t,this.on=i}wn(){this.an=NaN,this.on=NaN}gn(){return this.an}Mn(){return this.on}xn(t,i,s){this.rn||(this.rn=!0),this.sn=!0,this.Sn(t,i,s)}xt(){return this.nn}Yt(){return this.hn}Xt(){return this.ln}yt(){return this.sn}kn(){this.sn=!1,this.yn(),this.tn=NaN,this.hn=NaN,this.ln=NaN,this.Qi=null,this.wn()}Cn(t){return this.Qi!==null?[this.mn,this.un]:[]}Ut(t){return t===this.Qi&&this._n.horzLine.visible}qt(){return this._n.vertLine.visible}Tn(t,i){this.sn&&this.Qi===t||this.en.clear();const s=[];return this.Qi===t&&s.push(this.Pn(this.en,i,this.cn)),s}Ji(){return this.sn?[this.pn]:[]}Ht(){return this.Qi}Rn(){this.mn.bt(),this.en.forEach(t=>t.bt()),this.pn.bt(),this.un.bt()}Dn(t){return t&&!t.dn().Ei()?t.dn():null}Sn(t,i,s){this.On(t,i,s)&&this.Rn()}On(t,i,s){const e=this.hn,n=this.ln,r=this.tn,o=this.nn,l=this.Qi,a=this.Dn(s);this.nn=t,this.hn=isNaN(t)?NaN:this.Hi.St().It(t),this.Qi=s;const u=a!==null?a.Ct():null;return a!==null&&u!==null?(this.tn=i,this.ln=a.Rt(i,u)):(this.tn=NaN,this.ln=NaN),e!==this.hn||n!==this.ln||o!==this.nn||r!==this.tn||l!==this.Qi}yn(){const t=this.Hi.wt().map(s=>s.Vn().An()).filter(oe),i=t.length===0?null:Math.max(...t);this.nn=i!==null?i:NaN}Pn(t,i,s){let e=t.get(i);return e===void 0&&(e=new pe(this,i,s),t.set(i,e)),e}}function Tt(h){return h===\"left\"||h===\"right\"}class x{constructor(t){this.Bn=new Map,this.In=[],this.zn=t}Ln(t,i){const s=function(e,n){return e===void 0?n:{En:Math.max(e.En,n.En),Nn:e.Nn||n.Nn}}(this.Bn.get(t),i);this.Bn.set(t,s)}Fn(){return this.zn}Wn(t){const i=this.Bn.get(t);return i===void 0?{En:this.zn}:{En:Math.max(this.zn,i.En),Nn:i.Nn}}jn(){this.Hn(),this.In=[{$n:0}]}Un(t){this.Hn(),this.In=[{$n:1,Ot:t}]}qn(t){this.Yn(),this.In.push({$n:5,Ot:t})}Hn(){this.Yn(),this.In.push({$n:6})}Xn(){this.Hn(),this.In=[{$n:4}]}Kn(t){this.Hn(),this.In.push({$n:2,Ot:t})}Zn(t){this.Hn(),this.In.push({$n:3,Ot:t})}Gn(){return this.In}Jn(t){for(const i of t.In)this.Qn(i);this.zn=Math.max(this.zn,t.zn),t.Bn.forEach((i,s)=>{this.Ln(s,i)})}static ts(){return new x(2)}static ns(){return new x(3)}Qn(t){switch(t.$n){case 0:this.jn();break;case 1:this.Un(t.Ot);break;case 2:this.Kn(t.Ot);break;case 3:this.Zn(t.Ot);break;case 4:this.Xn();break;case 5:this.qn(t.Ot);break;case 6:this.Yn()}}Yn(){const t=this.In.findIndex(i=>i.$n===5);t!==-1&&this.In.splice(t,1)}}const Bi=\".\";function I(h,t){if(!P(h))return\"n/a\";if(!rt(t))throw new TypeError(\"invalid length\");if(t<0||t>16)throw new TypeError(\"invalid length\");return t===0?h.toString():(\"0000000000000000\"+h.toString()).slice(-t)}class Nt{constructor(t,i){if(i||(i=1),P(t)&&rt(t)||(t=100),t<0)throw new TypeError(\"invalid base\");this.zi=t,this.ss=i,this.es()}format(t){const i=t<0?\"−\":\"\";return t=Math.abs(t),i+this.rs(t)}es(){if(this.hs=0,this.zi>0&&this.ss>0){let t=this.zi;for(;t>1;)t/=10,this.hs++}}rs(t){const i=this.zi/this.ss;let s=Math.floor(t),e=\"\";const n=this.hs!==void 0?this.hs:NaN;if(i>1){let r=+(Math.round(t*i)-s*i).toFixed(this.hs);r>=i&&(r-=i,s+=1),e=Bi+I(+r.toFixed(this.hs)*this.ss,n)}else s=Math.round(s*i)/i,n>0&&(e=Bi+I(0,n));return s.toFixed(0)+e}}class zs extends Nt{constructor(t=100){super(t)}format(t){return`${super.format(t)}%`}}class _e{constructor(t){this.ls=t}format(t){let i=\"\";return t<0&&(i=\"-\",t=-t),t<995?i+this.os(t):t<999995?i+this.os(t/1e3)+\"K\":t<999999995?(t=1e3*Math.round(t/1e3),i+this.os(t/1e6)+\"M\"):(t=1e6*Math.round(t/1e6),i+this.os(t/1e9)+\"B\")}os(t){let i;const s=Math.pow(10,this.ls);return i=(t=Math.round(t*s)/s)>=1e-15&&t<1?t.toFixed(this.ls).replace(/\\.?0+$/,\"\"):String(t),i.replace(/(\\.[1-9]*)0+$/,(e,n)=>n)}}function xs(h,t,i,s,e,n,r){if(t.length===0||s.from>=t.length||s.to<=0)return;const{context:o,horizontalPixelRatio:l,verticalPixelRatio:a}=h,u=t[s.from];let c=n(h,u),f=u;if(s.to-s.from<2){const d=e/2;o.beginPath();const m={nt:u.nt-d,st:u.st},v={nt:u.nt+d,st:u.st};o.moveTo(m.nt*l,m.st*a),o.lineTo(v.nt*l,v.st*a),r(h,c,m,v)}else{const d=(v,b)=>{r(h,c,f,b),o.beginPath(),c=v,f=b};let m=f;o.beginPath(),o.moveTo(u.nt*l,u.st*a);for(let v=s.from+1;v<s.to;++v){m=t[v];const b=n(h,m);switch(i){case 0:o.lineTo(m.nt*l,m.st*a);break;case 1:o.lineTo(m.nt*l,t[v-1].st*a),b!==c&&(d(b,m),o.lineTo(m.nt*l,t[v-1].st*a)),o.lineTo(m.nt*l,m.st*a);break;case 2:{const[g,w]=Se(t,v-1,v);o.bezierCurveTo(g.nt*l,g.st*a,w.nt*l,w.st*a,m.nt*l,m.st*a);break}}i!==1&&b!==c&&(d(b,m),o.moveTo(m.nt*l,m.st*a))}(f!==m||f===m&&i===1)&&r(h,c,f,m)}}const Li=6;function Dt(h,t){return{nt:h.nt-t.nt,st:h.st-t.st}}function Pi(h,t){return{nt:h.nt/t,st:h.st/t}}function Se(h,t,i){const s=Math.max(0,t-1),e=Math.min(h.length-1,i+1);var n,r;return[(n=h[t],r=Pi(Dt(h[i],h[s]),Li),{nt:n.nt+r.nt,st:n.st+r.st}),Dt(h[i],Pi(Dt(h[e],h[t]),Li))]}function ye(h,t,i,s,e){const{context:n,horizontalPixelRatio:r,verticalPixelRatio:o}=t;n.lineTo(e.nt*r,h*o),n.lineTo(s.nt*r,h*o),n.closePath(),n.fillStyle=i,n.fill()}class Cs extends B{constructor(){super(...arguments),this.G=null}J(t){this.G=t}Z(t){var i;if(this.G===null)return;const{it:s,tt:e,_s:n,et:r,Nt:o,us:l}=this.G,a=(i=this.G.cs)!==null&&i!==void 0?i:this.G.ds?0:t.mediaSize.height;if(e===null)return;const u=t.context;u.lineCap=\"butt\",u.lineJoin=\"round\",u.lineWidth=r,j(u,o),u.lineWidth=1,xs(t,s,l,e,n,this.fs.bind(this),ye.bind(null,a))}}function ei(h,t,i){return Math.min(Math.max(h,t),i)}function mt(h,t,i){return t-h<=i}function Es(h){const t=Math.ceil(h);return t%2==0?t-1:t}class fi{vs(t,i){const s=this.ps,{bs:e,ws:n,gs:r,Ms:o,xs:l,cs:a}=i;if(this.Ss===void 0||s===void 0||s.bs!==e||s.ws!==n||s.gs!==r||s.Ms!==o||s.cs!==a||s.xs!==l){const u=t.context.createLinearGradient(0,0,0,l);if(u.addColorStop(0,e),a!=null){const c=ei(a*t.verticalPixelRatio/l,0,1);u.addColorStop(c,n),u.addColorStop(c,r)}u.addColorStop(1,o),this.Ss=u,this.ps=i}return this.Ss}}class Me extends Cs{constructor(){super(...arguments),this.ks=new fi}fs(t,i){return this.ks.vs(t,{bs:i.ys,ws:\"\",gs:\"\",Ms:i.Cs,xs:t.bitmapSize.height})}}function ze(h,t){const i=h.context;i.strokeStyle=t,i.stroke()}class Os extends B{constructor(){super(...arguments),this.G=null}J(t){this.G=t}Z(t){if(this.G===null)return;const{it:i,tt:s,_s:e,us:n,et:r,Nt:o,Ts:l}=this.G;if(s===null)return;const a=t.context;a.lineCap=\"butt\",a.lineWidth=r*t.verticalPixelRatio,j(a,o),a.lineJoin=\"round\";const u=this.Ps.bind(this);n!==void 0&&xs(t,i,n,s,e,u,ze),l&&function(c,f,d,m,v){const{horizontalPixelRatio:b,verticalPixelRatio:g,context:w}=c;let y=null;const _=Math.max(1,Math.floor(b))%2/2,z=d*g+_;for(let T=m.to-1;T>=m.from;--T){const E=f[T];if(E){const C=v(c,E);C!==y&&(w.beginPath(),y!==null&&w.fill(),w.fillStyle=C,y=C);const D=Math.round(E.nt*b)+_,Y=E.st*g;w.moveTo(D,Y),w.arc(D,Y,z,0,2*Math.PI)}}w.fill()}(t,i,l,s,u)}}class ks extends Os{Ps(t,i){return i.lt}}function Ts(h,t,i,s,e=0,n=t.length){let r=n-e;for(;0<r;){const o=r>>1,l=e+o;s(t[l],i)===h?(e=l+1,r-=o+1):r=o}return e}const ct=Ts.bind(null,!0),Ns=Ts.bind(null,!1);function xe(h,t){return h.ot<t}function Ce(h,t){return t<h.ot}function Rs(h,t,i){const s=t.Rs(),e=t.ui(),n=ct(h,s,xe),r=Ns(h,e,Ce);if(!i)return{from:n,to:r};let o=n,l=r;return n>0&&n<h.length&&h[n].ot>=s&&(o=n-1),r>0&&r<h.length&&h[r-1].ot<=e&&(l=r+1),{from:o,to:l}}class di{constructor(t,i,s){this.Ds=!0,this.Os=!0,this.As=!0,this.Vs=[],this.Bs=null,this.Is=t,this.zs=i,this.Ls=s}bt(t){this.Ds=!0,t===\"data\"&&(this.Os=!0),t===\"options\"&&(this.As=!0)}gt(){return this.Is.yt()?(this.Es(),this.Bs===null?null:this.Ns):null}Fs(){this.Vs=this.Vs.map(t=>Object.assign(Object.assign({},t),this.Is.js().Ws(t.ot)))}Hs(){this.Bs=null}Es(){this.Os&&(this.$s(),this.Os=!1),this.As&&(this.Fs(),this.As=!1),this.Ds&&(this.Us(),this.Ds=!1)}Us(){const t=this.Is.Dt(),i=this.zs.St();if(this.Hs(),i.Ei()||t.Ei())return;const s=i.qs();if(s===null||this.Is.Vn().Ys()===0)return;const e=this.Is.Ct();e!==null&&(this.Bs=Rs(this.Vs,s,this.Ls),this.Xs(t,i,e.Ot),this.Ks())}}class Rt extends di{constructor(t,i){super(t,i,!0)}Xs(t,i,s){i.Zs(this.Vs,ot(this.Bs)),t.Gs(this.Vs,s,ot(this.Bs))}Js(t,i){return{ot:t,_t:i,nt:NaN,st:NaN}}$s(){const t=this.Is.js();this.Vs=this.Is.Vn().Qs().map(i=>{const s=i.Ot[3];return this.te(i.ie,s,t)})}}class Ee extends Rt{constructor(t,i){super(t,i),this.Ns=new ui,this.ne=new Me,this.se=new ks,this.Ns.X([this.ne,this.se])}te(t,i,s){return Object.assign(Object.assign({},this.Js(t,i)),s.Ws(t))}Ks(){const t=this.Is.W();this.ne.J({us:t.lineType,it:this.Vs,Nt:t.lineStyle,et:t.lineWidth,cs:null,ds:t.invertFilledArea,tt:this.Bs,_s:this.zs.St().ee()}),this.se.J({us:t.lineVisible?t.lineType:void 0,it:this.Vs,Nt:t.lineStyle,et:t.lineWidth,tt:this.Bs,_s:this.zs.St().ee(),Ts:t.pointMarkersVisible?t.pointMarkersRadius||t.lineWidth/2+2:void 0})}}class Oe extends B{constructor(){super(...arguments),this.zt=null,this.re=0,this.he=0}J(t){this.zt=t}Z({context:t,horizontalPixelRatio:i,verticalPixelRatio:s}){if(this.zt===null||this.zt.Vn.length===0||this.zt.tt===null)return;this.re=this.le(i),this.re>=2&&Math.max(1,Math.floor(i))%2!=this.re%2&&this.re--,this.he=this.zt.ae?Math.min(this.re,Math.floor(i)):this.re;let e=null;const n=this.he<=this.re&&this.zt.ee>=Math.floor(1.5*i);for(let r=this.zt.tt.from;r<this.zt.tt.to;++r){const o=this.zt.Vn[r];e!==o.oe&&(t.fillStyle=o.oe,e=o.oe);const l=Math.floor(.5*this.he),a=Math.round(o.nt*i),u=a-l,c=this.he,f=u+c-1,d=Math.min(o._e,o.ue),m=Math.max(o._e,o.ue),v=Math.round(d*s)-l,b=Math.round(m*s)+l,g=Math.max(b-v,this.he);t.fillRect(u,v,c,g);const w=Math.ceil(1.5*this.re);if(n){if(this.zt.ce){const T=a-w;let E=Math.max(v,Math.round(o.de*s)-l),C=E+c-1;C>v+g-1&&(C=v+g-1,E=C-c+1),t.fillRect(T,E,u-T,C-E+1)}const y=a+w;let _=Math.max(v,Math.round(o.fe*s)-l),z=_+c-1;z>v+g-1&&(z=v+g-1,_=z-c+1),t.fillRect(f+1,_,y-f,z-_+1)}}}le(t){const i=Math.floor(t);return Math.max(i,Math.floor(function(s,e){return Math.floor(.3*s*e)}(p(this.zt).ee,t)))}}class Bs extends di{constructor(t,i){super(t,i,!1)}Xs(t,i,s){i.Zs(this.Vs,ot(this.Bs)),t.ve(this.Vs,s,ot(this.Bs))}pe(t,i,s){return{ot:t,me:i.Ot[0],be:i.Ot[1],we:i.Ot[2],ge:i.Ot[3],nt:NaN,de:NaN,_e:NaN,ue:NaN,fe:NaN}}$s(){const t=this.Is.js();this.Vs=this.Is.Vn().Qs().map(i=>this.te(i.ie,i,t))}}class ke extends Bs{constructor(){super(...arguments),this.Ns=new Oe}te(t,i,s){return Object.assign(Object.assign({},this.pe(t,i,s)),s.Ws(t))}Ks(){const t=this.Is.W();this.Ns.J({Vn:this.Vs,ee:this.zs.St().ee(),ce:t.openVisible,ae:t.thinBars,tt:this.Bs})}}class Te extends Cs{constructor(){super(...arguments),this.ks=new fi}fs(t,i){const s=this.G;return this.ks.vs(t,{bs:i.Me,ws:i.xe,gs:i.Se,Ms:i.ke,xs:t.bitmapSize.height,cs:s.cs})}}class Ne extends Os{constructor(){super(...arguments),this.ye=new fi}Ps(t,i){const s=this.G;return this.ye.vs(t,{bs:i.Ce,ws:i.Ce,gs:i.Te,Ms:i.Te,xs:t.bitmapSize.height,cs:s.cs})}}class Re extends Rt{constructor(t,i){super(t,i),this.Ns=new ui,this.Pe=new Te,this.Re=new Ne,this.Ns.X([this.Pe,this.Re])}te(t,i,s){return Object.assign(Object.assign({},this.Js(t,i)),s.Ws(t))}Ks(){const t=this.Is.Ct();if(t===null)return;const i=this.Is.W(),s=this.Is.Dt().Rt(i.baseValue.price,t.Ot),e=this.zs.St().ee();this.Pe.J({it:this.Vs,et:i.lineWidth,Nt:i.lineStyle,us:i.lineType,cs:s,ds:!1,tt:this.Bs,_s:e}),this.Re.J({it:this.Vs,et:i.lineWidth,Nt:i.lineStyle,us:i.lineVisible?i.lineType:void 0,Ts:i.pointMarkersVisible?i.pointMarkersRadius||i.lineWidth/2+2:void 0,cs:s,tt:this.Bs,_s:e})}}class Be extends B{constructor(){super(...arguments),this.zt=null,this.re=0}J(t){this.zt=t}Z(t){if(this.zt===null||this.zt.Vn.length===0||this.zt.tt===null)return;const{horizontalPixelRatio:i}=t;this.re=function(n,r){if(n>=2.5&&n<=4)return Math.floor(3*r);const o=1-.2*Math.atan(Math.max(4,n)-4)/(.5*Math.PI),l=Math.floor(n*o*r),a=Math.floor(n*r),u=Math.min(l,a);return Math.max(Math.floor(r),u)}(this.zt.ee,i),this.re>=2&&Math.floor(i)%2!=this.re%2&&this.re--;const s=this.zt.Vn;this.zt.De&&this.Oe(t,s,this.zt.tt),this.zt._i&&this.Ae(t,s,this.zt.tt);const e=this.Ve(i);(!this.zt._i||this.re>2*e)&&this.Be(t,s,this.zt.tt)}Oe(t,i,s){if(this.zt===null)return;const{context:e,horizontalPixelRatio:n,verticalPixelRatio:r}=t;let o=\"\",l=Math.min(Math.floor(n),Math.floor(this.zt.ee*n));l=Math.max(Math.floor(n),Math.min(l,this.re));const a=Math.floor(.5*l);let u=null;for(let c=s.from;c<s.to;c++){const f=i[c];f.Ie!==o&&(e.fillStyle=f.Ie,o=f.Ie);const d=Math.round(Math.min(f.de,f.fe)*r),m=Math.round(Math.max(f.de,f.fe)*r),v=Math.round(f._e*r),b=Math.round(f.ue*r);let g=Math.round(n*f.nt)-a;const w=g+l-1;u!==null&&(g=Math.max(u+1,g),g=Math.min(g,w));const y=w-g+1;e.fillRect(g,v,y,d-v),e.fillRect(g,m+1,y,b-m),u=w}}Ve(t){let i=Math.floor(1*t);this.re<=2*i&&(i=Math.floor(.5*(this.re-1)));const s=Math.max(Math.floor(t),i);return this.re<=2*s?Math.max(Math.floor(t),Math.floor(1*t)):s}Ae(t,i,s){if(this.zt===null)return;const{context:e,horizontalPixelRatio:n,verticalPixelRatio:r}=t;let o=\"\";const l=this.Ve(n);let a=null;for(let u=s.from;u<s.to;u++){const c=i[u];c.ze!==o&&(e.fillStyle=c.ze,o=c.ze);let f=Math.round(c.nt*n)-Math.floor(.5*this.re);const d=f+this.re-1,m=Math.round(Math.min(c.de,c.fe)*r),v=Math.round(Math.max(c.de,c.fe)*r);if(a!==null&&(f=Math.max(a+1,f),f=Math.min(f,d)),this.zt.ee*n>2*l)ve(e,f,m,d-f+1,v-m+1,l);else{const b=d-f+1;e.fillRect(f,m,b,v-m+1)}a=d}}Be(t,i,s){if(this.zt===null)return;const{context:e,horizontalPixelRatio:n,verticalPixelRatio:r}=t;let o=\"\";const l=this.Ve(n);for(let a=s.from;a<s.to;a++){const u=i[a];let c=Math.round(Math.min(u.de,u.fe)*r),f=Math.round(Math.max(u.de,u.fe)*r),d=Math.round(u.nt*n)-Math.floor(.5*this.re),m=d+this.re-1;if(u.oe!==o){const v=u.oe;e.fillStyle=v,o=v}this.zt._i&&(d+=l,c+=l,m-=l,f-=l),c>f||e.fillRect(d,c,m-d+1,f-c+1)}}}class Le extends Bs{constructor(){super(...arguments),this.Ns=new Be}te(t,i,s){return Object.assign(Object.assign({},this.pe(t,i,s)),s.Ws(t))}Ks(){const t=this.Is.W();this.Ns.J({Vn:this.Vs,ee:this.zs.St().ee(),De:t.wickVisible,_i:t.borderVisible,tt:this.Bs})}}class Pe{constructor(t,i){this.Le=t,this.zi=i}K(t,i,s){this.Le.draw(t,this.zi,i,s)}}class Vt extends di{constructor(t,i,s){super(t,i,!1),this.mn=s,this.Ns=new Pe(this.mn.renderer(),e=>{const n=t.Ct();return n===null?null:t.Dt().Rt(e,n.Ot)})}Ee(t){return this.mn.priceValueBuilder(t)}Ne(t){return this.mn.isWhitespace(t)}$s(){const t=this.Is.js();this.Vs=this.Is.Vn().Qs().map(i=>Object.assign(Object.assign({ot:i.ie,nt:NaN},t.Ws(i.ie)),{Fe:i.We}))}Xs(t,i){i.Zs(this.Vs,ot(this.Bs))}Ks(){this.mn.update({bars:this.Vs.map(We),barSpacing:this.zs.St().ee(),visibleRange:this.Bs},this.Is.W())}}function We(h){return{x:h.nt,time:h.ot,originalData:h.Fe,barColor:h.oe}}class Ie extends B{constructor(){super(...arguments),this.zt=null,this.je=[]}J(t){this.zt=t,this.je=[]}Z({context:t,horizontalPixelRatio:i,verticalPixelRatio:s}){if(this.zt===null||this.zt.it.length===0||this.zt.tt===null)return;this.je.length||this.He(i);const e=Math.max(1,Math.floor(s)),n=Math.round(this.zt.$e*s)-Math.floor(e/2),r=n+e;for(let o=this.zt.tt.from;o<this.zt.tt.to;o++){const l=this.zt.it[o],a=this.je[o-this.zt.tt.from],u=Math.round(l.st*s);let c,f;t.fillStyle=l.oe,u<=n?(c=u,f=r):(c=n,f=u-Math.floor(e/2)+e),t.fillRect(a.Rs,c,a.ui-a.Rs+1,f-c)}}He(t){if(this.zt===null||this.zt.it.length===0||this.zt.tt===null)return void(this.je=[]);const i=Math.ceil(this.zt.ee*t)<=1?0:Math.max(1,Math.floor(t)),s=Math.round(this.zt.ee*t)-i;this.je=new Array(this.zt.tt.to-this.zt.tt.from);for(let n=this.zt.tt.from;n<this.zt.tt.to;n++){const r=this.zt.it[n],o=Math.round(r.nt*t);let l,a;if(s%2){const u=(s-1)/2;l=o-u,a=o+u}else{const u=s/2;l=o-u,a=o+u-1}this.je[n-this.zt.tt.from]={Rs:l,ui:a,Ue:o,qe:r.nt*t,ot:r.ot}}for(let n=this.zt.tt.from+1;n<this.zt.tt.to;n++){const r=this.je[n-this.zt.tt.from],o=this.je[n-this.zt.tt.from-1];r.ot===o.ot+1&&r.Rs-o.ui!==i+1&&(o.Ue>o.qe?o.ui=r.Rs-i-1:r.Rs=o.ui+i+1)}let e=Math.ceil(this.zt.ee*t);for(let n=this.zt.tt.from;n<this.zt.tt.to;n++){const r=this.je[n-this.zt.tt.from];r.ui<r.Rs&&(r.ui=r.Rs);const o=r.ui-r.Rs+1;e=Math.min(o,e)}if(i>0&&e<4)for(let n=this.zt.tt.from;n<this.zt.tt.to;n++){const r=this.je[n-this.zt.tt.from];r.ui-r.Rs+1>e&&(r.Ue>r.qe?r.ui-=1:r.Rs+=1)}}}class De extends Rt{constructor(){super(...arguments),this.Ns=new Ie}te(t,i,s){return Object.assign(Object.assign({},this.Js(t,i)),s.Ws(t))}Ks(){const t={it:this.Vs,ee:this.zs.St().ee(),tt:this.Bs,$e:this.Is.Dt().Rt(this.Is.W().base,p(this.Is.Ct()).Ot)};this.Ns.J(t)}}class Ve extends Rt{constructor(){super(...arguments),this.Ns=new ks}te(t,i,s){return Object.assign(Object.assign({},this.Js(t,i)),s.Ws(t))}Ks(){const t=this.Is.W(),i={it:this.Vs,Nt:t.lineStyle,us:t.lineVisible?t.lineType:void 0,et:t.lineWidth,Ts:t.pointMarkersVisible?t.pointMarkersRadius||t.lineWidth/2+2:void 0,tt:this.Bs,_s:this.zs.St().ee()};this.Ns.J(i)}}const Ae=/[2-9]/g;class lt{constructor(t=50){this.Ye=0,this.Xe=1,this.Ke=1,this.Ze={},this.Ge=new Map,this.Je=t}Qe(){this.Ye=0,this.Ge.clear(),this.Xe=1,this.Ke=1,this.Ze={}}Mi(t,i,s){return this.tr(t,i,s).width}gi(t,i,s){const e=this.tr(t,i,s);return((e.actualBoundingBoxAscent||0)-(e.actualBoundingBoxDescent||0))/2}tr(t,i,s){const e=s||Ae,n=String(i).replace(e,\"0\");if(this.Ge.has(n))return O(this.Ge.get(n)).ir;if(this.Ye===this.Je){const o=this.Ze[this.Ke];delete this.Ze[this.Ke],this.Ge.delete(o),this.Ke++,this.Ye--}t.save(),t.textBaseline=\"middle\";const r=t.measureText(n);return t.restore(),r.width===0&&i.length||(this.Ge.set(n,{ir:r,nr:this.Xe}),this.Ze[this.Xe]=n,this.Ye++,this.Xe++),r}}class $e{constructor(t){this.sr=null,this.k=null,this.er=\"right\",this.rr=t}hr(t,i,s){this.sr=t,this.k=i,this.er=s}K(t){this.k!==null&&this.sr!==null&&this.sr.K(t,this.k,this.rr,this.er)}}class Ls{constructor(t,i,s){this.lr=t,this.rr=new lt(50),this.ar=i,this.F=s,this.j=-1,this.Wt=new $e(this.rr)}gt(){const t=this.F._r(this.ar);if(t===null)return null;const i=t.ur(this.ar)?t.cr():this.ar.Dt();if(i===null)return null;const s=t.dr(i);if(s===\"overlay\")return null;const e=this.F.vr();return e.P!==this.j&&(this.j=e.P,this.rr.Qe()),this.Wt.hr(this.lr.Bi(),e,s),this.Wt}}class Fe extends B{constructor(){super(...arguments),this.zt=null}J(t){this.zt=t}pr(t,i){var s;if(!(!((s=this.zt)===null||s===void 0)&&s.yt))return null;const{st:e,et:n,mr:r}=this.zt;return i>=e-n-7&&i<=e+n+7?{br:this.zt,mr:r}:null}Z({context:t,bitmapSize:i,horizontalPixelRatio:s,verticalPixelRatio:e}){if(this.zt===null||this.zt.yt===!1)return;const n=Math.round(this.zt.st*e);n<0||n>i.height||(t.lineCap=\"butt\",t.strokeStyle=this.zt.O,t.lineWidth=Math.floor(this.zt.et*s),j(t,this.zt.Nt),_s(t,n,0,i.width))}}class mi{constructor(t){this.wr={st:0,O:\"rgba(0, 0, 0, 0)\",et:1,Nt:0,yt:!1},this.gr=new Fe,this.ft=!0,this.Is=t,this.zs=t.$t(),this.gr.J(this.wr)}bt(){this.ft=!0}gt(){return this.Is.yt()?(this.ft&&(this.Mr(),this.ft=!1),this.gr):null}}class He extends mi{constructor(t){super(t)}Mr(){this.wr.yt=!1;const t=this.Is.Dt(),i=t.Sr().Sr;if(i!==2&&i!==3)return;const s=this.Is.W();if(!s.baseLineVisible||!this.Is.yt())return;const e=this.Is.Ct();e!==null&&(this.wr.yt=!0,this.wr.st=t.Rt(e.Ot,e.Ot),this.wr.O=s.baseLineColor,this.wr.et=s.baseLineWidth,this.wr.Nt=s.baseLineStyle)}}class je extends B{constructor(){super(...arguments),this.zt=null}J(t){this.zt=t}We(){return this.zt}Z({context:t,horizontalPixelRatio:i,verticalPixelRatio:s}){const e=this.zt;if(e===null)return;const n=Math.max(1,Math.floor(i)),r=n%2/2,o=Math.round(e.qe.x*i)+r,l=e.qe.y*s;t.fillStyle=e.kr,t.beginPath();const a=Math.max(2,1.5*e.yr)*i;t.arc(o,l,a,0,2*Math.PI,!1),t.fill(),t.fillStyle=e.Cr,t.beginPath(),t.arc(o,l,e.ht*i,0,2*Math.PI,!1),t.fill(),t.lineWidth=n,t.strokeStyle=e.Tr,t.beginPath(),t.arc(o,l,e.ht*i+n/2,0,2*Math.PI,!1),t.stroke()}}const Ue=[{Pr:0,Rr:.25,Dr:4,Or:10,Ar:.25,Vr:0,Br:.4,Ir:.8},{Pr:.25,Rr:.525,Dr:10,Or:14,Ar:0,Vr:0,Br:.8,Ir:0},{Pr:.525,Rr:1,Dr:14,Or:14,Ar:0,Vr:0,Br:0,Ir:0}];function Wi(h,t,i,s){return function(e,n){if(e===\"transparent\")return e;const r=zt(e),o=r[3];return`rgba(${r[0]}, ${r[1]}, ${r[2]}, ${n*o})`}(h,i+(s-i)*t)}function Ii(h,t){const i=h%2600/2600;let s;for(const l of Ue)if(i>=l.Pr&&i<=l.Rr){s=l;break}A(s!==void 0,\"Last price animation internal logic error\");const e=(i-s.Pr)/(s.Rr-s.Pr);return{Cr:Wi(t,e,s.Ar,s.Vr),Tr:Wi(t,e,s.Br,s.Ir),ht:(n=e,r=s.Dr,o=s.Or,r+(o-r)*n)};var n,r,o}class Ze{constructor(t){this.Wt=new je,this.ft=!0,this.zr=!0,this.Lr=performance.now(),this.Er=this.Lr-1,this.Nr=t}Fr(){this.Er=this.Lr-1,this.bt()}Wr(){if(this.bt(),this.Nr.W().lastPriceAnimation===2){const t=performance.now(),i=this.Er-t;if(i>0)return void(i<650&&(this.Er+=2600));this.Lr=t,this.Er=t+2600}}bt(){this.ft=!0}jr(){this.zr=!0}yt(){return this.Nr.W().lastPriceAnimation!==0}Hr(){switch(this.Nr.W().lastPriceAnimation){case 0:return!1;case 1:return!0;case 2:return performance.now()<=this.Er}}gt(){return this.ft?(this.Mt(),this.ft=!1,this.zr=!1):this.zr&&(this.$r(),this.zr=!1),this.Wt}Mt(){this.Wt.J(null);const t=this.Nr.$t().St(),i=t.qs(),s=this.Nr.Ct();if(i===null||s===null)return;const e=this.Nr.Ur(!0);if(e.qr||!i.Yr(e.ie))return;const n={x:t.It(e.ie),y:this.Nr.Dt().Rt(e._t,s.Ot)},r=e.O,o=this.Nr.W().lineWidth,l=Ii(this.Xr(),r);this.Wt.J({kr:r,yr:o,Cr:l.Cr,Tr:l.Tr,ht:l.ht,qe:n})}$r(){const t=this.Wt.We();if(t!==null){const i=Ii(this.Xr(),t.kr);t.Cr=i.Cr,t.Tr=i.Tr,t.ht=i.ht}}Xr(){return this.Hr()?performance.now()-this.Lr:2599}}function st(h,t){return Es(Math.min(Math.max(h,12),30)*t)}function at(h,t){switch(h){case\"arrowDown\":case\"arrowUp\":return st(t,1);case\"circle\":return st(t,.8);case\"square\":return st(t,.7)}}function Ps(h){return function(t){const i=Math.ceil(t);return i%2!=0?i-1:i}(st(h,1))}function Di(h){return Math.max(st(h,.1),3)}function Ws(h,t,i,s,e){const n=at(\"square\",i),r=(n-1)/2,o=h-r,l=t-r;return s>=o&&s<=o+n&&e>=l&&e<=l+n}function Vi(h,t,i,s){const e=(at(\"arrowUp\",s)-1)/2*i.Kr,n=(Es(s/2)-1)/2*i.Kr;t.beginPath(),h?(t.moveTo(i.nt-e,i.st),t.lineTo(i.nt,i.st-e),t.lineTo(i.nt+e,i.st),t.lineTo(i.nt+n,i.st),t.lineTo(i.nt+n,i.st+e),t.lineTo(i.nt-n,i.st+e),t.lineTo(i.nt-n,i.st)):(t.moveTo(i.nt-e,i.st),t.lineTo(i.nt,i.st+e),t.lineTo(i.nt+e,i.st),t.lineTo(i.nt+n,i.st),t.lineTo(i.nt+n,i.st-e),t.lineTo(i.nt-n,i.st-e),t.lineTo(i.nt-n,i.st)),t.fill()}function Ye(h,t,i,s,e,n){return Ws(t,i,s,e,n)}class Qe extends B{constructor(){super(...arguments),this.zt=null,this.rr=new lt,this.j=-1,this.H=\"\",this.Zr=\"\"}J(t){this.zt=t}hr(t,i){this.j===t&&this.H===i||(this.j=t,this.H=i,this.Zr=K(t,i),this.rr.Qe())}pr(t,i){if(this.zt===null||this.zt.tt===null)return null;for(let s=this.zt.tt.from;s<this.zt.tt.to;s++){const e=this.zt.it[s];if(qe(e,t,i))return{br:e.Gr,mr:e.mr}}return null}Z({context:t,horizontalPixelRatio:i,verticalPixelRatio:s},e,n){if(this.zt!==null&&this.zt.tt!==null){t.textBaseline=\"middle\",t.font=this.Zr;for(let r=this.zt.tt.from;r<this.zt.tt.to;r++){const o=this.zt.it[r];o.Zt!==void 0&&(o.Zt.ji=this.rr.Mi(t,o.Zt.Jr),o.Zt.Bt=this.j,o.Zt.nt=o.nt-o.Zt.ji/2),Xe(o,t,i,s)}}}}function Xe(h,t,i,s){t.fillStyle=h.O,h.Zt!==void 0&&function(e,n,r,o,l,a){e.save(),e.scale(l,a),e.fillText(n,r,o),e.restore()}(t,h.Zt.Jr,h.Zt.nt,h.Zt.st,i,s),function(e,n,r){if(e.Ys!==0){switch(e.Qr){case\"arrowDown\":return void Vi(!1,n,r,e.Ys);case\"arrowUp\":return void Vi(!0,n,r,e.Ys);case\"circle\":return void function(o,l,a){const u=(at(\"circle\",a)-1)/2;o.beginPath(),o.arc(l.nt,l.st,u*l.Kr,0,2*Math.PI,!1),o.fill()}(n,r,e.Ys);case\"square\":return void function(o,l,a){const u=at(\"square\",a),c=(u-1)*l.Kr/2,f=l.nt-c,d=l.st-c;o.fillRect(f,d,u*l.Kr,u*l.Kr)}(n,r,e.Ys)}e.Qr}}(h,t,function(e,n,r){const o=Math.max(1,Math.floor(n))%2/2;return{nt:Math.round(e.nt*n)+o,st:e.st*r,Kr:n}}(h,i,s))}function qe(h,t,i){return!(h.Zt===void 0||!function(s,e,n,r,o,l){const a=r/2;return o>=s&&o<=s+n&&l>=e-a&&l<=e+a}(h.Zt.nt,h.Zt.st,h.Zt.ji,h.Zt.Bt,t,i))||function(s,e,n){if(s.Ys===0)return!1;switch(s.Qr){case\"arrowDown\":case\"arrowUp\":return Ye(0,s.nt,s.st,s.Ys,e,n);case\"circle\":return function(r,o,l,a,u){const c=2+at(\"circle\",l)/2,f=r-a,d=o-u;return Math.sqrt(f*f+d*d)<=c}(s.nt,s.st,s.Ys,e,n);case\"square\":return Ws(s.nt,s.st,s.Ys,e,n)}}(h,t,i)}function Je(h,t,i,s,e,n,r,o,l){const a=P(i)?i:i.ge,u=P(i)?i:i.be,c=P(i)?i:i.we,f=P(t.size)?Math.max(t.size,0):1,d=Ps(o.ee())*f,m=d/2;switch(h.Ys=d,t.position){case\"inBar\":return h.st=r.Rt(a,l),void(h.Zt!==void 0&&(h.Zt.st=h.st+m+n+.6*e));case\"aboveBar\":return h.st=r.Rt(u,l)-m-s.th,h.Zt!==void 0&&(h.Zt.st=h.st-m-.6*e,s.th+=1.2*e),void(s.th+=d+n);case\"belowBar\":return h.st=r.Rt(c,l)+m+s.ih,h.Zt!==void 0&&(h.Zt.st=h.st+m+n+.6*e,s.ih+=1.2*e),void(s.ih+=d+n)}t.position}class Ke{constructor(t,i){this.ft=!0,this.nh=!0,this.sh=!0,this.eh=null,this.Wt=new Qe,this.Nr=t,this.Hi=i,this.zt={it:[],tt:null}}bt(t){this.ft=!0,this.sh=!0,t===\"data\"&&(this.nh=!0)}gt(t){if(!this.Nr.yt())return null;this.ft&&this.rh();const i=this.Hi.W().layout;return this.Wt.hr(i.fontSize,i.fontFamily),this.Wt.J(this.zt),this.Wt}hh(){if(this.sh){if(this.Nr.lh().length>0){const t=this.Hi.St().ee(),i=Di(t),s=1.5*Ps(t)+2*i;this.eh={above:s,below:s}}else this.eh=null;this.sh=!1}return this.eh}rh(){const t=this.Nr.Dt(),i=this.Hi.St(),s=this.Nr.lh();this.nh&&(this.zt.it=s.map(u=>({ot:u.time,nt:0,st:0,Ys:0,Qr:u.shape,O:u.color,Gr:u.Gr,mr:u.id,Zt:void 0})),this.nh=!1);const e=this.Hi.W().layout;this.zt.tt=null;const n=i.qs();if(n===null)return;const r=this.Nr.Ct();if(r===null||this.zt.it.length===0)return;let o=NaN;const l=Di(i.ee()),a={th:l,ih:l};this.zt.tt=Rs(this.zt.it,n,!0);for(let u=this.zt.tt.from;u<this.zt.tt.to;u++){const c=s[u];c.time!==o&&(a.th=l,a.ih=l,o=c.time);const f=this.zt.it[u];f.nt=i.It(c.time),c.text!==void 0&&c.text.length>0&&(f.Zt={Jr:c.text,nt:0,st:0,ji:0,Bt:0});const d=this.Nr.ah(c.time);d!==null&&Je(f,c,d,a,e.fontSize,l,t,i,r.Ot)}this.ft=!1}}class Ge extends mi{constructor(t){super(t)}Mr(){const t=this.wr;t.yt=!1;const i=this.Is.W();if(!i.priceLineVisible||!this.Is.yt())return;const s=this.Is.Ur(i.priceLineSource===0);s.qr||(t.yt=!0,t.st=s.Si,t.O=this.Is.oh(s.O),t.et=i.priceLineWidth,t.Nt=i.priceLineStyle)}}class th extends kt{constructor(t){super(),this.jt=t}Ii(t,i,s){t.yt=!1,i.yt=!1;const e=this.jt;if(!e.yt())return;const n=e.W(),r=n.lastValueVisible,o=e._h()!==\"\",l=n.seriesLastValueMode===0,a=e.Ur(!1);if(a.qr)return;r&&(t.Zt=this.uh(a,r,l),t.yt=t.Zt.length!==0),(o||l)&&(i.Zt=this.dh(a,r,o,l),i.yt=i.Zt.length>0);const u=e.oh(a.O),c=Et(u);s.t=c.t,s.Si=a.Si,i.At=e.$t().Vt(a.Si/e.Dt().Bt()),t.At=u,t.O=c.i,i.O=c.i}dh(t,i,s,e){let n=\"\";const r=this.jt._h();return s&&r.length!==0&&(n+=`${r} `),i&&e&&(n+=this.jt.Dt().fh()?t.ph:t.mh),n.trim()}uh(t,i,s){return i?s?this.jt.Dt().fh()?t.mh:t.ph:t.Zt:\"\"}}function Ai(h,t,i,s){const e=Number.isFinite(t),n=Number.isFinite(i);return e&&n?h(t,i):e||n?e?t:i:s}class k{constructor(t,i){this.bh=t,this.wh=i}gh(t){return t!==null&&this.bh===t.bh&&this.wh===t.wh}Mh(){return new k(this.bh,this.wh)}xh(){return this.bh}Sh(){return this.wh}kh(){return this.wh-this.bh}Ei(){return this.wh===this.bh||Number.isNaN(this.wh)||Number.isNaN(this.bh)}Jn(t){return t===null?this:new k(Ai(Math.min,this.xh(),t.xh(),-1/0),Ai(Math.max,this.Sh(),t.Sh(),1/0))}yh(t){if(!P(t)||this.wh-this.bh===0)return;const i=.5*(this.wh+this.bh);let s=this.wh-i,e=this.bh-i;s*=t,e*=t,this.wh=i+s,this.bh=i+e}Ch(t){P(t)&&(this.wh+=t,this.bh+=t)}Th(){return{minValue:this.bh,maxValue:this.wh}}static Ph(t){return t===null?null:new k(t.minValue,t.maxValue)}}class xt{constructor(t,i){this.Rh=t,this.Dh=i||null}Oh(){return this.Rh}Ah(){return this.Dh}Th(){return this.Rh===null?null:{priceRange:this.Rh.Th(),margins:this.Dh||void 0}}static Ph(t){return t===null?null:new xt(k.Ph(t.priceRange),t.margins)}}class ih extends mi{constructor(t,i){super(t),this.Vh=i}Mr(){const t=this.wr;t.yt=!1;const i=this.Vh.W();if(!this.Is.yt()||!i.lineVisible)return;const s=this.Vh.Bh();s!==null&&(t.yt=!0,t.st=s,t.O=i.color,t.et=i.lineWidth,t.Nt=i.lineStyle,t.mr=this.Vh.W().id)}}class sh extends kt{constructor(t,i){super(),this.Nr=t,this.Vh=i}Ii(t,i,s){t.yt=!1,i.yt=!1;const e=this.Vh.W(),n=e.axisLabelVisible,r=e.title!==\"\",o=this.Nr;if(!n||!o.yt())return;const l=this.Vh.Bh();if(l===null)return;r&&(i.Zt=e.title,i.yt=!0),i.At=o.$t().Vt(l/o.Dt().Bt()),t.Zt=this.Ih(e.price),t.yt=!0;const a=Et(e.axisLabelColor||e.color);s.t=a.t;const u=e.axisLabelTextColor||a.i;t.O=u,i.O=u,s.Si=l}Ih(t){const i=this.Nr.Ct();return i===null?\"\":this.Nr.Dt().Ni(t,i.Ot)}}class eh{constructor(t,i){this.Nr=t,this._n=i,this.zh=new ih(t,this),this.lr=new sh(t,this),this.Lh=new Ls(this.lr,t,t.$t())}Eh(t){R(this._n,t),this.bt(),this.Nr.$t().Nh()}W(){return this._n}Fh(){return this.zh}Wh(){return this.Lh}jh(){return this.lr}bt(){this.zh.bt(),this.lr.bt()}Bh(){const t=this.Nr,i=t.Dt();if(t.$t().St().Ei()||i.Ei())return null;const s=t.Ct();return s===null?null:i.Rt(this._n.price,s.Ot)}}class hh extends ci{constructor(t){super(),this.Hi=t}$t(){return this.Hi}}const nh={Bar:(h,t,i,s)=>{var e;const n=t.upColor,r=t.downColor,o=p(h(i,s)),l=X(o.Ot[0])<=X(o.Ot[3]);return{oe:(e=o.O)!==null&&e!==void 0?e:l?n:r}},Candlestick:(h,t,i,s)=>{var e,n,r;const o=t.upColor,l=t.downColor,a=t.borderUpColor,u=t.borderDownColor,c=t.wickUpColor,f=t.wickDownColor,d=p(h(i,s)),m=X(d.Ot[0])<=X(d.Ot[3]);return{oe:(e=d.O)!==null&&e!==void 0?e:m?o:l,ze:(n=d.At)!==null&&n!==void 0?n:m?a:u,Ie:(r=d.Hh)!==null&&r!==void 0?r:m?c:f}},Custom:(h,t,i,s)=>{var e;return{oe:(e=p(h(i,s)).O)!==null&&e!==void 0?e:t.color}},Area:(h,t,i,s)=>{var e,n,r,o;const l=p(h(i,s));return{oe:(e=l.lt)!==null&&e!==void 0?e:t.lineColor,lt:(n=l.lt)!==null&&n!==void 0?n:t.lineColor,ys:(r=l.ys)!==null&&r!==void 0?r:t.topColor,Cs:(o=l.Cs)!==null&&o!==void 0?o:t.bottomColor}},Baseline:(h,t,i,s)=>{var e,n,r,o,l,a;const u=p(h(i,s));return{oe:u.Ot[3]>=t.baseValue.price?t.topLineColor:t.bottomLineColor,Ce:(e=u.Ce)!==null&&e!==void 0?e:t.topLineColor,Te:(n=u.Te)!==null&&n!==void 0?n:t.bottomLineColor,Me:(r=u.Me)!==null&&r!==void 0?r:t.topFillColor1,xe:(o=u.xe)!==null&&o!==void 0?o:t.topFillColor2,Se:(l=u.Se)!==null&&l!==void 0?l:t.bottomFillColor1,ke:(a=u.ke)!==null&&a!==void 0?a:t.bottomFillColor2}},Line:(h,t,i,s)=>{var e,n;const r=p(h(i,s));return{oe:(e=r.O)!==null&&e!==void 0?e:t.color,lt:(n=r.O)!==null&&n!==void 0?n:t.color}},Histogram:(h,t,i,s)=>{var e;return{oe:(e=p(h(i,s)).O)!==null&&e!==void 0?e:t.color}}};class rh{constructor(t){this.$h=(i,s)=>s!==void 0?s.Ot:this.Nr.Vn().Uh(i),this.Nr=t,this.qh=nh[t.Yh()]}Ws(t,i){return this.qh(this.$h,this.Nr.W(),t,i)}}var $i;(function(h){h[h.NearestLeft=-1]=\"NearestLeft\",h[h.None=0]=\"None\",h[h.NearestRight=1]=\"NearestRight\"})($i||($i={}));const V=30;class oh{constructor(){this.Xh=[],this.Kh=new Map,this.Zh=new Map}Gh(){return this.Ys()>0?this.Xh[this.Xh.length-1]:null}Jh(){return this.Ys()>0?this.Qh(0):null}An(){return this.Ys()>0?this.Qh(this.Xh.length-1):null}Ys(){return this.Xh.length}Ei(){return this.Ys()===0}Yr(t){return this.tl(t,0)!==null}Uh(t){return this.il(t)}il(t,i=0){const s=this.tl(t,i);return s===null?null:Object.assign(Object.assign({},this.nl(s)),{ie:this.Qh(s)})}Qs(){return this.Xh}sl(t,i,s){if(this.Ei())return null;let e=null;for(const n of s)e=vt(e,this.el(t,i,n));return e}J(t){this.Zh.clear(),this.Kh.clear(),this.Xh=t}Qh(t){return this.Xh[t].ie}nl(t){return this.Xh[t]}tl(t,i){const s=this.rl(t);if(s===null&&i!==0)switch(i){case-1:return this.hl(t);case 1:return this.ll(t);default:throw new TypeError(\"Unknown search mode\")}return s}hl(t){let i=this.al(t);return i>0&&(i-=1),i!==this.Xh.length&&this.Qh(i)<t?i:null}ll(t){const i=this.ol(t);return i!==this.Xh.length&&t<this.Qh(i)?i:null}rl(t){const i=this.al(t);return i===this.Xh.length||t<this.Xh[i].ie?null:i}al(t){return ct(this.Xh,t,(i,s)=>i.ie<s)}ol(t){return Ns(this.Xh,t,(i,s)=>i.ie>s)}_l(t,i,s){let e=null;for(let n=t;n<i;n++){const r=this.Xh[n].Ot[s];Number.isNaN(r)||(e===null?e={ul:r,cl:r}:(r<e.ul&&(e.ul=r),r>e.cl&&(e.cl=r)))}return e}el(t,i,s){if(this.Ei())return null;let e=null;const n=p(this.Jh()),r=p(this.An()),o=Math.max(t,n),l=Math.min(i,r),a=Math.ceil(o/V)*V,u=Math.max(a,Math.floor(l/V)*V);{const f=this.al(o),d=this.ol(Math.min(l,a,i));e=vt(e,this._l(f,d,s))}let c=this.Kh.get(s);c===void 0&&(c=new Map,this.Kh.set(s,c));for(let f=Math.max(a+1,o);f<u;f+=V){const d=Math.floor(f/V);let m=c.get(d);if(m===void 0){const v=this.al(d*V),b=this.ol((d+1)*V-1);m=this._l(v,b,s),c.set(d,m)}e=vt(e,m)}{const f=this.al(u),d=this.ol(l);e=vt(e,this._l(f,d,s))}return e}}function vt(h,t){return h===null?t:t===null?h:{ul:Math.min(h.ul,t.ul),cl:Math.max(h.cl,t.cl)}}class lh{constructor(t){this.dl=t}K(t,i,s){this.dl.draw(t)}fl(t,i,s){var e,n;(n=(e=this.dl).drawBackground)===null||n===void 0||n.call(e,t)}}class At{constructor(t){this.Ge=null,this.mn=t}gt(){var t;const i=this.mn.renderer();if(i===null)return null;if(((t=this.Ge)===null||t===void 0?void 0:t.vl)===i)return this.Ge.pl;const s=new lh(i);return this.Ge={vl:i,pl:s},s}ml(){var t,i,s;return(s=(i=(t=this.mn).zOrder)===null||i===void 0?void 0:i.call(t))!==null&&s!==void 0?s:\"normal\"}}function Is(h){var t,i,s,e,n;return{Zt:h.text(),Si:h.coordinate(),xi:(t=h.fixedCoordinate)===null||t===void 0?void 0:t.call(h),O:h.textColor(),t:h.backColor(),yt:(s=(i=h.visible)===null||i===void 0?void 0:i.call(h))===null||s===void 0||s,hi:(n=(e=h.tickVisible)===null||e===void 0?void 0:e.call(h))===null||n===void 0||n}}class ah{constructor(t,i){this.Wt=new Ms,this.bl=t,this.wl=i}gt(){return this.Wt.J(Object.assign({ji:this.wl.ji()},Is(this.bl))),this.Wt}}class uh extends kt{constructor(t,i){super(),this.bl=t,this.zi=i}Ii(t,i,s){const e=Is(this.bl);s.t=e.t,t.O=e.O;const n=2/12*this.zi.P();s.bi=n,s.wi=n,s.Si=e.Si,s.xi=e.xi,t.Zt=e.Zt,t.yt=e.yt,t.hi=e.hi}}class ch{constructor(t,i){this.gl=null,this.Ml=null,this.xl=null,this.Sl=null,this.kl=null,this.yl=t,this.Nr=i}Cl(){return this.yl}Rn(){var t,i;(i=(t=this.yl).updateAllViews)===null||i===void 0||i.call(t)}Cn(){var t,i,s,e;const n=(s=(i=(t=this.yl).paneViews)===null||i===void 0?void 0:i.call(t))!==null&&s!==void 0?s:[];if(((e=this.gl)===null||e===void 0?void 0:e.vl)===n)return this.gl.pl;const r=n.map(o=>new At(o));return this.gl={vl:n,pl:r},r}Ji(){var t,i,s,e;const n=(s=(i=(t=this.yl).timeAxisViews)===null||i===void 0?void 0:i.call(t))!==null&&s!==void 0?s:[];if(((e=this.Ml)===null||e===void 0?void 0:e.vl)===n)return this.Ml.pl;const r=this.Nr.$t().St(),o=n.map(l=>new ah(l,r));return this.Ml={vl:n,pl:o},o}Tn(){var t,i,s,e;const n=(s=(i=(t=this.yl).priceAxisViews)===null||i===void 0?void 0:i.call(t))!==null&&s!==void 0?s:[];if(((e=this.xl)===null||e===void 0?void 0:e.vl)===n)return this.xl.pl;const r=this.Nr.Dt(),o=n.map(l=>new uh(l,r));return this.xl={vl:n,pl:o},o}Tl(){var t,i,s,e;const n=(s=(i=(t=this.yl).priceAxisPaneViews)===null||i===void 0?void 0:i.call(t))!==null&&s!==void 0?s:[];if(((e=this.Sl)===null||e===void 0?void 0:e.vl)===n)return this.Sl.pl;const r=n.map(o=>new At(o));return this.Sl={vl:n,pl:r},r}Pl(){var t,i,s,e;const n=(s=(i=(t=this.yl).timeAxisPaneViews)===null||i===void 0?void 0:i.call(t))!==null&&s!==void 0?s:[];if(((e=this.kl)===null||e===void 0?void 0:e.vl)===n)return this.kl.pl;const r=n.map(o=>new At(o));return this.kl={vl:n,pl:r},r}Rl(t,i){var s,e,n;return(n=(e=(s=this.yl).autoscaleInfo)===null||e===void 0?void 0:e.call(s,t,i))!==null&&n!==void 0?n:null}pr(t,i){var s,e,n;return(n=(e=(s=this.yl).hitTest)===null||e===void 0?void 0:e.call(s,t,i))!==null&&n!==void 0?n:null}}function $t(h,t,i,s){h.forEach(e=>{t(e).forEach(n=>{n.ml()===i&&s.push(n)})})}function Ft(h){return h.Cn()}function fh(h){return h.Tl()}function dh(h){return h.Pl()}class vi extends hh{constructor(t,i,s,e,n){super(t),this.zt=new oh,this.zh=new Ge(this),this.Dl=[],this.Ol=new He(this),this.Al=null,this.Vl=null,this.Bl=[],this.Il=[],this.zl=null,this.Ll=[],this._n=i,this.El=s;const r=new th(this);this.en=[r],this.Lh=new Ls(r,this,t),s!==\"Area\"&&s!==\"Line\"&&s!==\"Baseline\"||(this.Al=new Ze(this)),this.Nl(),this.Fl(n)}S(){this.zl!==null&&clearTimeout(this.zl)}oh(t){return this._n.priceLineColor||t}Ur(t){const i={qr:!0},s=this.Dt();if(this.$t().St().Ei()||s.Ei()||this.zt.Ei())return i;const e=this.$t().St().qs(),n=this.Ct();if(e===null||n===null)return i;let r,o;if(t){const c=this.zt.Gh();if(c===null)return i;r=c,o=c.ie}else{const c=this.zt.il(e.ui(),-1);if(c===null||(r=this.zt.Uh(c.ie),r===null))return i;o=c.ie}const l=r.Ot[3],a=this.js().Ws(o,{Ot:r}),u=s.Rt(l,n.Ot);return{qr:!1,_t:l,Zt:s.Ni(l,n.Ot),ph:s.Wl(l),mh:s.jl(l,n.Ot),O:a.oe,Si:u,ie:o}}js(){return this.Vl!==null||(this.Vl=new rh(this)),this.Vl}W(){return this._n}Eh(t){const i=t.priceScaleId;i!==void 0&&i!==this._n.priceScaleId&&this.$t().Hl(this,i),R(this._n,t),t.priceFormat!==void 0&&(this.Nl(),this.$t().$l()),this.$t().Ul(this),this.$t().ql(),this.mn.bt(\"options\")}J(t,i){this.zt.J(t),this.Yl(),this.mn.bt(\"data\"),this.un.bt(\"data\"),this.Al!==null&&(i&&i.Xl?this.Al.Wr():t.length===0&&this.Al.Fr());const s=this.$t()._r(this);this.$t().Kl(s),this.$t().Ul(this),this.$t().ql(),this.$t().Nh()}Zl(t){this.Bl=t,this.Yl();const i=this.$t()._r(this);this.un.bt(\"data\"),this.$t().Kl(i),this.$t().Ul(this),this.$t().ql(),this.$t().Nh()}Gl(){return this.Bl}lh(){return this.Il}Jl(t){const i=new eh(this,t);return this.Dl.push(i),this.$t().Ul(this),i}Ql(t){const i=this.Dl.indexOf(t);i!==-1&&this.Dl.splice(i,1),this.$t().Ul(this)}Yh(){return this.El}Ct(){const t=this.ta();return t===null?null:{Ot:t.Ot[3],ia:t.ot}}ta(){const t=this.$t().St().qs();if(t===null)return null;const i=t.Rs();return this.zt.il(i,1)}Vn(){return this.zt}ah(t){const i=this.zt.Uh(t);return i===null?null:this.El===\"Bar\"||this.El===\"Candlestick\"||this.El===\"Custom\"?{me:i.Ot[0],be:i.Ot[1],we:i.Ot[2],ge:i.Ot[3]}:i.Ot[3]}na(t){const i=[];$t(this.Ll,Ft,\"top\",i);const s=this.Al;return s!==null&&s.yt()&&(this.zl===null&&s.Hr()&&(this.zl=setTimeout(()=>{this.zl=null,this.$t().sa()},0)),s.jr(),i.push(s)),i}Cn(){const t=[];this.ea()||t.push(this.Ol),t.push(this.mn,this.zh,this.un);const i=this.Dl.map(s=>s.Fh());return t.push(...i),$t(this.Ll,Ft,\"normal\",t),t}ra(){return this.ha(Ft,\"bottom\")}la(t){return this.ha(fh,t)}aa(t){return this.ha(dh,t)}oa(t,i){return this.Ll.map(s=>s.pr(t,i)).filter(s=>s!==null)}Gi(t){return[this.Lh,...this.Dl.map(i=>i.Wh())]}Tn(t,i){if(i!==this.qi&&!this.ea())return[];const s=[...this.en];for(const e of this.Dl)s.push(e.jh());return this.Ll.forEach(e=>{s.push(...e.Tn())}),s}Ji(){const t=[];return this.Ll.forEach(i=>{t.push(...i.Ji())}),t}Rl(t,i){if(this._n.autoscaleInfoProvider!==void 0){const s=this._n.autoscaleInfoProvider(()=>{const e=this._a(t,i);return e===null?null:e.Th()});return xt.Ph(s)}return this._a(t,i)}ua(){return this._n.priceFormat.minMove}ca(){return this.da}Rn(){var t;this.mn.bt(),this.un.bt();for(const i of this.en)i.bt();for(const i of this.Dl)i.bt();this.zh.bt(),this.Ol.bt(),(t=this.Al)===null||t===void 0||t.bt(),this.Ll.forEach(i=>i.Rn())}Dt(){return p(super.Dt())}kt(t){if(!((this.El===\"Line\"||this.El===\"Area\"||this.El===\"Baseline\")&&this._n.crosshairMarkerVisible))return null;const i=this.zt.Uh(t);return i===null?null:{_t:i.Ot[3],ht:this.fa(),At:this.va(),Pt:this.pa(),Tt:this.ma(t)}}_h(){return this._n.title}yt(){return this._n.visible}ba(t){this.Ll.push(new ch(t,this))}wa(t){this.Ll=this.Ll.filter(i=>i.Cl()!==t)}ga(){if(this.mn instanceof Vt)return t=>this.mn.Ee(t)}Ma(){if(this.mn instanceof Vt)return t=>this.mn.Ne(t)}ea(){return!Tt(this.Dt().xa())}_a(t,i){if(!rt(t)||!rt(i)||this.zt.Ei())return null;const s=this.El===\"Line\"||this.El===\"Area\"||this.El===\"Baseline\"||this.El===\"Histogram\"?[3]:[2,1],e=this.zt.sl(t,i,s);let n=e!==null?new k(e.ul,e.cl):null;if(this.Yh()===\"Histogram\"){const o=this._n.base,l=new k(o,o);n=n!==null?n.Jn(l):l}let r=this.un.hh();return this.Ll.forEach(o=>{const l=o.Rl(t,i);if(l!=null&&l.priceRange){const d=new k(l.priceRange.minValue,l.priceRange.maxValue);n=n!==null?n.Jn(d):d}var a,u,c,f;l!=null&&l.margins&&(a=r,u=l.margins,r={above:Math.max((c=a==null?void 0:a.above)!==null&&c!==void 0?c:0,u.above),below:Math.max((f=a==null?void 0:a.below)!==null&&f!==void 0?f:0,u.below)})}),new xt(n,r)}fa(){switch(this.El){case\"Line\":case\"Area\":case\"Baseline\":return this._n.crosshairMarkerRadius}return 0}va(){switch(this.El){case\"Line\":case\"Area\":case\"Baseline\":{const t=this._n.crosshairMarkerBorderColor;if(t.length!==0)return t}}return null}pa(){switch(this.El){case\"Line\":case\"Area\":case\"Baseline\":return this._n.crosshairMarkerBorderWidth}return 0}ma(t){switch(this.El){case\"Line\":case\"Area\":case\"Baseline\":{const i=this._n.crosshairMarkerBackgroundColor;if(i.length!==0)return i}}return this.js().Ws(t).oe}Nl(){switch(this._n.priceFormat.type){case\"custom\":this.da={format:this._n.priceFormat.formatter};break;case\"volume\":this.da=new _e(this._n.priceFormat.precision);break;case\"percent\":this.da=new zs(this._n.priceFormat.precision);break;default:{const t=Math.pow(10,this._n.priceFormat.precision);this.da=new Nt(t,this._n.priceFormat.minMove*t)}}this.qi!==null&&this.qi.Sa()}Yl(){const t=this.$t().St();if(!t.ka()||this.zt.Ei())return void(this.Il=[]);const i=p(this.zt.Jh());this.Il=this.Bl.map((s,e)=>{const n=p(t.ya(s.time,!0)),r=n<i?1:-1;return{time:p(this.zt.il(n,r)).ie,position:s.position,shape:s.shape,color:s.color,id:s.id,Gr:e,text:s.text,size:s.size,originalTime:s.originalTime}})}Fl(t){switch(this.un=new Ke(this,this.$t()),this.El){case\"Bar\":this.mn=new ke(this,this.$t());break;case\"Candlestick\":this.mn=new Le(this,this.$t());break;case\"Line\":this.mn=new Ve(this,this.$t());break;case\"Custom\":this.mn=new Vt(this,this.$t(),O(t));break;case\"Area\":this.mn=new Ee(this,this.$t());break;case\"Baseline\":this.mn=new Re(this,this.$t());break;case\"Histogram\":this.mn=new De(this,this.$t());break;default:throw Error(\"Unknown chart style assigned: \"+this.El)}}ha(t,i){const s=[];return $t(this.Ll,t,i,s),s}}class mh{constructor(t){this._n=t}Ca(t,i,s){let e=t;if(this._n.mode===0)return e;const n=s.dn(),r=n.Ct();if(r===null)return e;const o=n.Rt(t,r),l=s.Ta().filter(u=>u instanceof vi).reduce((u,c)=>{if(s.ur(c)||!c.yt())return u;const f=c.Dt(),d=c.Vn();if(f.Ei()||!d.Yr(i))return u;const m=d.Uh(i);if(m===null)return u;const v=X(c.Ct());return u.concat([f.Rt(m.Ot[3],v.Ot)])},[]);if(l.length===0)return e;l.sort((u,c)=>Math.abs(u-o)-Math.abs(c-o));const a=l[0];return e=n.fn(a,r),e}}class vh extends B{constructor(){super(...arguments),this.zt=null}J(t){this.zt=t}Z({context:t,bitmapSize:i,horizontalPixelRatio:s,verticalPixelRatio:e}){if(this.zt===null)return;const n=Math.max(1,Math.floor(s));t.lineWidth=n,function(r,o){r.save(),r.lineWidth%2&&r.translate(.5,.5),o(),r.restore()}(t,()=>{const r=p(this.zt);if(r.Pa){t.strokeStyle=r.Ra,j(t,r.Da),t.beginPath();for(const o of r.Oa){const l=Math.round(o.Aa*s);t.moveTo(l,-n),t.lineTo(l,i.height+n)}t.stroke()}if(r.Va){t.strokeStyle=r.Ba,j(t,r.Ia),t.beginPath();for(const o of r.za){const l=Math.round(o.Aa*e);t.moveTo(-n,l),t.lineTo(i.width+n,l)}t.stroke()}})}}class ph{constructor(t){this.Wt=new vh,this.ft=!0,this.Qi=t}bt(){this.ft=!0}gt(){if(this.ft){const t=this.Qi.$t().W().grid,i={Va:t.horzLines.visible,Pa:t.vertLines.visible,Ba:t.horzLines.color,Ra:t.vertLines.color,Ia:t.horzLines.style,Da:t.vertLines.style,za:this.Qi.dn().La(),Oa:(this.Qi.$t().St().La()||[]).map(s=>({Aa:s.coord}))};this.Wt.J(i),this.ft=!1}return this.Wt}}class bh{constructor(t){this.mn=new ph(t)}Fh(){return this.mn}}const Ht={Ea:4,Na:1e-4};function q(h,t){const i=100*(h-t)/t;return t<0?-i:i}function gh(h,t){const i=q(h.xh(),t),s=q(h.Sh(),t);return new k(i,s)}function et(h,t){const i=100*(h-t)/t+100;return t<0?-i:i}function wh(h,t){const i=et(h.xh(),t),s=et(h.Sh(),t);return new k(i,s)}function Ct(h,t){const i=Math.abs(h);if(i<1e-15)return 0;const s=Math.log10(i+t.Na)+t.Ea;return h<0?-s:s}function ht(h,t){const i=Math.abs(h);if(i<1e-15)return 0;const s=Math.pow(10,i-t.Ea)-t.Na;return h<0?-s:s}function it(h,t){if(h===null)return null;const i=Ct(h.xh(),t),s=Ct(h.Sh(),t);return new k(i,s)}function pt(h,t){if(h===null)return null;const i=ht(h.xh(),t),s=ht(h.Sh(),t);return new k(i,s)}function jt(h){if(h===null)return Ht;const t=Math.abs(h.Sh()-h.xh());if(t>=1||t<1e-15)return Ht;const i=Math.ceil(Math.abs(Math.log10(t))),s=Ht.Ea+i;return{Ea:s,Na:1/Math.pow(10,s)}}class Ut{constructor(t,i){if(this.Fa=t,this.Wa=i,function(s){if(s<0)return!1;for(let e=s;e>1;e/=10)if(e%10!=0)return!1;return!0}(this.Fa))this.ja=[2,2.5,2];else{this.ja=[];for(let s=this.Fa;s!==1;){if(s%2==0)this.ja.push(2),s/=2;else{if(s%5!=0)throw new Error(\"unexpected base\");this.ja.push(2,2.5),s/=5}if(this.ja.length>100)throw new Error(\"something wrong with base\")}}}Ha(t,i,s){const e=this.Fa===0?0:1/this.Fa;let n=Math.pow(10,Math.max(0,Math.ceil(Math.log10(t-i)))),r=0,o=this.Wa[0];for(;;){const c=mt(n,e,1e-14)&&n>e+1e-14,f=mt(n,s*o,1e-14),d=mt(n,1,1e-14);if(!(c&&f&&d))break;n/=o,o=this.Wa[++r%this.Wa.length]}if(n<=e+1e-14&&(n=e),n=Math.max(1,n),this.ja.length>0&&(l=n,a=1,u=1e-14,Math.abs(l-a)<u))for(r=0,o=this.ja[0];mt(n,s*o,1e-14)&&n>e+1e-14;)n/=o,o=this.ja[++r%this.ja.length];var l,a,u;return n}}class Fi{constructor(t,i,s,e){this.$a=[],this.zi=t,this.Fa=i,this.Ua=s,this.qa=e}Ha(t,i){if(t<i)throw new Error(\"high < low\");const s=this.zi.Bt(),e=(t-i)*this.Ya()/s,n=new Ut(this.Fa,[2,2.5,2]),r=new Ut(this.Fa,[2,2,2.5]),o=new Ut(this.Fa,[2.5,2,2]),l=[];return l.push(n.Ha(t,i,e),r.Ha(t,i,e),o.Ha(t,i,e)),function(a){if(a.length<1)throw Error(\"array is empty\");let u=a[0];for(let c=1;c<a.length;++c)a[c]<u&&(u=a[c]);return u}(l)}Xa(){const t=this.zi,i=t.Ct();if(i===null)return void(this.$a=[]);const s=t.Bt(),e=this.Ua(s-1,i),n=this.Ua(0,i),r=this.zi.W().entireTextOnly?this.Ka()/2:0,o=r,l=s-1-r,a=Math.max(e,n),u=Math.min(e,n);if(a===u)return void(this.$a=[]);let c=this.Ha(a,u),f=a%c;f+=f<0?c:0;const d=a>=u?1:-1;let m=null,v=0;for(let b=a-f;b>u;b-=c){const g=this.qa(b,i,!0);m!==null&&Math.abs(g-m)<this.Ya()||g<o||g>l||(v<this.$a.length?(this.$a[v].Aa=g,this.$a[v].Za=t.Ga(b)):this.$a.push({Aa:g,Za:t.Ga(b)}),v++,m=g,t.Ja()&&(c=this.Ha(b*d,u)))}this.$a.length=v}La(){return this.$a}Ka(){return this.zi.P()}Ya(){return Math.ceil(2.5*this.Ka())}}function Ds(h){return h.slice().sort((t,i)=>p(t.Xi())-p(i.Xi()))}var Hi;(function(h){h[h.Normal=0]=\"Normal\",h[h.Logarithmic=1]=\"Logarithmic\",h[h.Percentage=2]=\"Percentage\",h[h.IndexedTo100=3]=\"IndexedTo100\"})(Hi||(Hi={}));const ji=new zs,Ui=new Nt(100,1);class _h{constructor(t,i,s,e){this.Qa=0,this.io=null,this.Rh=null,this.no=null,this.so={eo:!1,ro:null},this.ho=0,this.lo=0,this.ao=new M,this.oo=new M,this._o=[],this.uo=null,this.co=null,this.do=null,this.fo=null,this.da=Ui,this.vo=jt(null),this.po=t,this._n=i,this.mo=s,this.bo=e,this.wo=new Fi(this,100,this.Mo.bind(this),this.xo.bind(this))}xa(){return this.po}W(){return this._n}Eh(t){if(R(this._n,t),this.Sa(),t.mode!==void 0&&this.So({Sr:t.mode}),t.scaleMargins!==void 0){const i=O(t.scaleMargins.top),s=O(t.scaleMargins.bottom);if(i<0||i>1)throw new Error(`Invalid top margin - expect value between 0 and 1, given=${i}`);if(s<0||s>1)throw new Error(`Invalid bottom margin - expect value between 0 and 1, given=${s}`);if(i+s>1)throw new Error(`Invalid margins - sum of margins must be less than 1, given=${i+s}`);this.ko(),this.co=null}}yo(){return this._n.autoScale}Ja(){return this._n.mode===1}fh(){return this._n.mode===2}Co(){return this._n.mode===3}Sr(){return{Nn:this._n.autoScale,To:this._n.invertScale,Sr:this._n.mode}}So(t){const i=this.Sr();let s=null;t.Nn!==void 0&&(this._n.autoScale=t.Nn),t.Sr!==void 0&&(this._n.mode=t.Sr,t.Sr!==2&&t.Sr!==3||(this._n.autoScale=!0),this.so.eo=!1),i.Sr===1&&t.Sr!==i.Sr&&(function(n,r){if(n===null)return!1;const o=ht(n.xh(),r),l=ht(n.Sh(),r);return isFinite(o)&&isFinite(l)}(this.Rh,this.vo)?(s=pt(this.Rh,this.vo),s!==null&&this.Po(s)):this._n.autoScale=!0),t.Sr===1&&t.Sr!==i.Sr&&(s=it(this.Rh,this.vo),s!==null&&this.Po(s));const e=i.Sr!==this._n.mode;e&&(i.Sr===2||this.fh())&&this.Sa(),e&&(i.Sr===3||this.Co())&&this.Sa(),t.To!==void 0&&i.To!==t.To&&(this._n.invertScale=t.To,this.Ro()),this.oo.m(i,this.Sr())}Do(){return this.oo}P(){return this.mo.fontSize}Bt(){return this.Qa}Oo(t){this.Qa!==t&&(this.Qa=t,this.ko(),this.co=null)}Ao(){if(this.io)return this.io;const t=this.Bt()-this.Vo()-this.Bo();return this.io=t,t}Oh(){return this.Io(),this.Rh}Po(t,i){const s=this.Rh;(i||s===null&&t!==null||s!==null&&!s.gh(t))&&(this.co=null,this.Rh=t)}Ei(){return this.Io(),this.Qa===0||!this.Rh||this.Rh.Ei()}zo(t){return this.To()?t:this.Bt()-1-t}Rt(t,i){return this.fh()?t=q(t,i):this.Co()&&(t=et(t,i)),this.xo(t,i)}Gs(t,i,s){this.Io();const e=this.Bo(),n=p(this.Oh()),r=n.xh(),o=n.Sh(),l=this.Ao()-1,a=this.To(),u=l/(o-r),c=s===void 0?0:s.from,f=s===void 0?t.length:s.to,d=this.Lo();for(let m=c;m<f;m++){const v=t[m],b=v._t;if(isNaN(b))continue;let g=b;d!==null&&(g=d(v._t,i));const w=e+u*(g-r),y=a?w:this.Qa-1-w;v.st=y}}ve(t,i,s){this.Io();const e=this.Bo(),n=p(this.Oh()),r=n.xh(),o=n.Sh(),l=this.Ao()-1,a=this.To(),u=l/(o-r),c=s===void 0?0:s.from,f=s===void 0?t.length:s.to,d=this.Lo();for(let m=c;m<f;m++){const v=t[m];let b=v.me,g=v.be,w=v.we,y=v.ge;d!==null&&(b=d(v.me,i),g=d(v.be,i),w=d(v.we,i),y=d(v.ge,i));let _=e+u*(b-r),z=a?_:this.Qa-1-_;v.de=z,_=e+u*(g-r),z=a?_:this.Qa-1-_,v._e=z,_=e+u*(w-r),z=a?_:this.Qa-1-_,v.ue=z,_=e+u*(y-r),z=a?_:this.Qa-1-_,v.fe=z}}fn(t,i){const s=this.Mo(t,i);return this.Eo(s,i)}Eo(t,i){let s=t;return this.fh()?s=function(e,n){return n<0&&(e=-e),e/100*n+n}(s,i):this.Co()&&(s=function(e,n){return e-=100,n<0&&(e=-e),e/100*n+n}(s,i)),s}Ta(){return this._o}No(){if(this.uo)return this.uo;let t=[];for(let i=0;i<this._o.length;i++){const s=this._o[i];s.Xi()===null&&s.Ki(i+1),t.push(s)}return t=Ds(t),this.uo=t,this.uo}Fo(t){this._o.indexOf(t)===-1&&(this._o.push(t),this.Sa(),this.Wo())}jo(t){const i=this._o.indexOf(t);if(i===-1)throw new Error(\"source is not attached to scale\");this._o.splice(i,1),this._o.length===0&&(this.So({Nn:!0}),this.Po(null)),this.Sa(),this.Wo()}Ct(){let t=null;for(const i of this._o){const s=i.Ct();s!==null&&(t===null||s.ia<t.ia)&&(t=s)}return t===null?null:t.Ot}To(){return this._n.invertScale}La(){const t=this.Ct()===null;if(this.co!==null&&(t||this.co.Ho===t))return this.co.La;this.wo.Xa();const i=this.wo.La();return this.co={La:i,Ho:t},this.ao.m(),i}$o(){return this.ao}Uo(t){this.fh()||this.Co()||this.do===null&&this.no===null&&(this.Ei()||(this.do=this.Qa-t,this.no=p(this.Oh()).Mh()))}qo(t){if(this.fh()||this.Co()||this.do===null)return;this.So({Nn:!1}),(t=this.Qa-t)<0&&(t=0);let i=(this.do+.2*(this.Qa-1))/(t+.2*(this.Qa-1));const s=p(this.no).Mh();i=Math.max(i,.1),s.yh(i),this.Po(s)}Yo(){this.fh()||this.Co()||(this.do=null,this.no=null)}Xo(t){this.yo()||this.fo===null&&this.no===null&&(this.Ei()||(this.fo=t,this.no=p(this.Oh()).Mh()))}Ko(t){if(this.yo()||this.fo===null)return;const i=p(this.Oh()).kh()/(this.Ao()-1);let s=t-this.fo;this.To()&&(s*=-1);const e=s*i,n=p(this.no).Mh();n.Ch(e),this.Po(n,!0),this.co=null}Zo(){this.yo()||this.fo!==null&&(this.fo=null,this.no=null)}ca(){return this.da||this.Sa(),this.da}Ni(t,i){switch(this._n.mode){case 2:return this.Go(q(t,i));case 3:return this.ca().format(et(t,i));default:return this.Ih(t)}}Ga(t){switch(this._n.mode){case 2:return this.Go(t);case 3:return this.ca().format(t);default:return this.Ih(t)}}Wl(t){return this.Ih(t,p(this.Jo()).ca())}jl(t,i){return t=q(t,i),this.Go(t,ji)}Qo(){return this._o}t_(t){this.so={ro:t,eo:!1}}Rn(){this._o.forEach(t=>t.Rn())}Sa(){this.co=null;const t=this.Jo();let i=100;t!==null&&(i=Math.round(1/t.ua())),this.da=Ui,this.fh()?(this.da=ji,i=100):this.Co()?(this.da=new Nt(100,1),i=100):t!==null&&(this.da=t.ca()),this.wo=new Fi(this,i,this.Mo.bind(this),this.xo.bind(this)),this.wo.Xa()}Wo(){this.uo=null}Jo(){return this._o[0]||null}Vo(){return this.To()?this._n.scaleMargins.bottom*this.Bt()+this.lo:this._n.scaleMargins.top*this.Bt()+this.ho}Bo(){return this.To()?this._n.scaleMargins.top*this.Bt()+this.ho:this._n.scaleMargins.bottom*this.Bt()+this.lo}Io(){this.so.eo||(this.so.eo=!0,this.i_())}ko(){this.io=null}xo(t,i){if(this.Io(),this.Ei())return 0;t=this.Ja()&&t?Ct(t,this.vo):t;const s=p(this.Oh()),e=this.Bo()+(this.Ao()-1)*(t-s.xh())/s.kh();return this.zo(e)}Mo(t,i){if(this.Io(),this.Ei())return 0;const s=this.zo(t),e=p(this.Oh()),n=e.xh()+e.kh()*((s-this.Bo())/(this.Ao()-1));return this.Ja()?ht(n,this.vo):n}Ro(){this.co=null,this.wo.Xa()}i_(){const t=this.so.ro;if(t===null)return;let i=null;const s=this.Qo();let e=0,n=0;for(const l of s){if(!l.yt())continue;const a=l.Ct();if(a===null)continue;const u=l.Rl(t.Rs(),t.ui());let c=u&&u.Oh();if(c!==null){switch(this._n.mode){case 1:c=it(c,this.vo);break;case 2:c=gh(c,a.Ot);break;case 3:c=wh(c,a.Ot)}if(i=i===null?c:i.Jn(p(c)),u!==null){const f=u.Ah();f!==null&&(e=Math.max(e,f.above),n=Math.max(e,f.below))}}}if(e===this.ho&&n===this.lo||(this.ho=e,this.lo=n,this.co=null,this.ko()),i!==null){if(i.xh()===i.Sh()){const l=this.Jo(),a=5*(l===null||this.fh()||this.Co()?1:l.ua());this.Ja()&&(i=pt(i,this.vo)),i=new k(i.xh()-a,i.Sh()+a),this.Ja()&&(i=it(i,this.vo))}if(this.Ja()){const l=pt(i,this.vo),a=jt(l);if(r=a,o=this.vo,r.Ea!==o.Ea||r.Na!==o.Na){const u=this.no!==null?pt(this.no,this.vo):null;this.vo=a,i=it(l,a),u!==null&&(this.no=it(u,a))}}this.Po(i)}else this.Rh===null&&(this.Po(new k(-.5,.5)),this.vo=jt(null));var r,o;this.so.eo=!0}Lo(){return this.fh()?q:this.Co()?et:this.Ja()?t=>Ct(t,this.vo):null}n_(t,i,s){return i===void 0?(s===void 0&&(s=this.ca()),s.format(t)):i(t)}Ih(t,i){return this.n_(t,this.bo.priceFormatter,i)}Go(t,i){return this.n_(t,this.bo.percentageFormatter,i)}}class Sh{constructor(t,i){this._o=[],this.s_=new Map,this.Qa=0,this.e_=0,this.r_=1e3,this.uo=null,this.h_=new M,this.wl=t,this.Hi=i,this.l_=new bh(this);const s=i.W();this.a_=this.o_(\"left\",s.leftPriceScale),this.__=this.o_(\"right\",s.rightPriceScale),this.a_.Do().l(this.u_.bind(this,this.a_),this),this.__.Do().l(this.u_.bind(this,this.__),this),this.c_(s)}c_(t){if(t.leftPriceScale&&this.a_.Eh(t.leftPriceScale),t.rightPriceScale&&this.__.Eh(t.rightPriceScale),t.localization&&(this.a_.Sa(),this.__.Sa()),t.overlayPriceScales){const i=Array.from(this.s_.values());for(const s of i){const e=p(s[0].Dt());e.Eh(t.overlayPriceScales),t.localization&&e.Sa()}}}d_(t){switch(t){case\"left\":return this.a_;case\"right\":return this.__}return this.s_.has(t)?O(this.s_.get(t))[0].Dt():null}S(){this.$t().f_().p(this),this.a_.Do().p(this),this.__.Do().p(this),this._o.forEach(t=>{t.S&&t.S()}),this.h_.m()}v_(){return this.r_}p_(t){this.r_=t}$t(){return this.Hi}ji(){return this.e_}Bt(){return this.Qa}m_(t){this.e_=t,this.b_()}Oo(t){this.Qa=t,this.a_.Oo(t),this.__.Oo(t),this._o.forEach(i=>{if(this.ur(i)){const s=i.Dt();s!==null&&s.Oo(t)}}),this.b_()}Ta(){return this._o}ur(t){const i=t.Dt();return i===null||this.a_!==i&&this.__!==i}Fo(t,i,s){const e=s!==void 0?s:this.g_().w_+1;this.M_(t,i,e)}jo(t){const i=this._o.indexOf(t);A(i!==-1,\"removeDataSource: invalid data source\"),this._o.splice(i,1);const s=p(t.Dt()).xa();if(this.s_.has(s)){const n=O(this.s_.get(s)),r=n.indexOf(t);r!==-1&&(n.splice(r,1),n.length===0&&this.s_.delete(s))}const e=t.Dt();e&&e.Ta().indexOf(t)>=0&&e.jo(t),e!==null&&(e.Wo(),this.x_(e)),this.uo=null}dr(t){return t===this.a_?\"left\":t===this.__?\"right\":\"overlay\"}S_(){return this.a_}k_(){return this.__}y_(t,i){t.Uo(i)}C_(t,i){t.qo(i),this.b_()}T_(t){t.Yo()}P_(t,i){t.Xo(i)}R_(t,i){t.Ko(i),this.b_()}D_(t){t.Zo()}b_(){this._o.forEach(t=>{t.Rn()})}dn(){let t=null;return this.Hi.W().rightPriceScale.visible&&this.__.Ta().length!==0?t=this.__:this.Hi.W().leftPriceScale.visible&&this.a_.Ta().length!==0?t=this.a_:this._o.length!==0&&(t=this._o[0].Dt()),t===null&&(t=this.__),t}cr(){let t=null;return this.Hi.W().rightPriceScale.visible?t=this.__:this.Hi.W().leftPriceScale.visible&&(t=this.a_),t}x_(t){t!==null&&t.yo()&&this.O_(t)}A_(t){const i=this.wl.qs();t.So({Nn:!0}),i!==null&&t.t_(i),this.b_()}V_(){this.O_(this.a_),this.O_(this.__)}B_(){this.x_(this.a_),this.x_(this.__),this._o.forEach(t=>{this.ur(t)&&this.x_(t.Dt())}),this.b_(),this.Hi.Nh()}No(){return this.uo===null&&(this.uo=Ds(this._o)),this.uo}I_(){return this.h_}z_(){return this.l_}O_(t){const i=t.Qo();if(i&&i.length>0&&!this.wl.Ei()){const s=this.wl.qs();s!==null&&t.t_(s)}t.Rn()}g_(){const t=this.No();if(t.length===0)return{L_:0,w_:0};let i=0,s=0;for(let e=0;e<t.length;e++){const n=t[e].Xi();n!==null&&(n<i&&(i=n),n>s&&(s=n))}return{L_:i,w_:s}}M_(t,i,s){let e=this.d_(i);if(e===null&&(e=this.o_(i,this.Hi.W().overlayPriceScales)),this._o.push(t),!Tt(i)){const n=this.s_.get(i)||[];n.push(t),this.s_.set(i,n)}e.Fo(t),t.Zi(e),t.Ki(s),this.x_(e),this.uo=null}u_(t,i,s){i.Sr!==s.Sr&&this.O_(t)}o_(t,i){const s=Object.assign({visible:!0,autoScale:!0},W(i)),e=new _h(t,s,this.Hi.W().layout,this.Hi.W().localization);return e.Oo(this.Bt()),e}}class yh{constructor(t,i,s=50){this.Ye=0,this.Xe=1,this.Ke=1,this.Ge=new Map,this.Ze=new Map,this.E_=t,this.N_=i,this.Je=s}F_(t){const i=t.time,s=this.N_.cacheKey(i),e=this.Ge.get(s);if(e!==void 0)return e.W_;if(this.Ye===this.Je){const r=this.Ze.get(this.Ke);this.Ze.delete(this.Ke),this.Ge.delete(O(r)),this.Ke++,this.Ye--}const n=this.E_(t);return this.Ge.set(s,{W_:n,nr:this.Xe}),this.Ze.set(this.Xe,s),this.Ye++,this.Xe++,n}}class nt{constructor(t,i){A(t<=i,\"right should be >= left\"),this.j_=t,this.H_=i}Rs(){return this.j_}ui(){return this.H_}U_(){return this.H_-this.j_+1}Yr(t){return this.j_<=t&&t<=this.H_}gh(t){return this.j_===t.Rs()&&this.H_===t.ui()}}function Zi(h,t){return h===null||t===null?h===t:h.gh(t)}class Mh{constructor(){this.q_=new Map,this.Ge=null,this.Y_=!1}X_(t){this.Y_=t,this.Ge=null}K_(t,i){this.Z_(i),this.Ge=null;for(let s=i;s<t.length;++s){const e=t[s];let n=this.q_.get(e.timeWeight);n===void 0&&(n=[],this.q_.set(e.timeWeight,n)),n.push({index:s,time:e.time,weight:e.timeWeight,originalTime:e.originalTime})}}G_(t,i){const s=Math.ceil(i/t);return this.Ge!==null&&this.Ge.J_===s||(this.Ge={La:this.Q_(s),J_:s}),this.Ge.La}Z_(t){if(t===0)return void this.q_.clear();const i=[];this.q_.forEach((s,e)=>{t<=s[0].index?i.push(e):s.splice(ct(s,t,n=>n.index<t),1/0)});for(const s of i)this.q_.delete(s)}Q_(t){let i=[];for(const s of Array.from(this.q_.keys()).sort((e,n)=>n-e)){if(!this.q_.get(s))continue;const e=i;i=[];const n=e.length;let r=0;const o=O(this.q_.get(s)),l=o.length;let a=1/0,u=-1/0;for(let c=0;c<l;c++){const f=o[c],d=f.index;for(;r<n;){const m=e[r],v=m.index;if(!(v<d)){a=v;break}r++,i.push(m),u=v,a=1/0}if(a-d>=t&&d-u>=t)i.push(f),u=d;else if(this.Y_)return e}for(;r<n;r++)i.push(e[r])}return i}}class J{constructor(t){this.tu=t}iu(){return this.tu===null?null:new nt(Math.floor(this.tu.Rs()),Math.ceil(this.tu.ui()))}nu(){return this.tu}static su(){return new J(null)}}function zh(h,t){return h.weight>t.weight?h:t}class xh{constructor(t,i,s,e){this.e_=0,this.eu=null,this.ru=[],this.fo=null,this.do=null,this.hu=new Mh,this.lu=new Map,this.au=J.su(),this.ou=!0,this._u=new M,this.uu=new M,this.cu=new M,this.du=null,this.fu=null,this.vu=[],this._n=i,this.bo=s,this.pu=i.rightOffset,this.mu=i.barSpacing,this.Hi=t,this.N_=e,this.bu(),this.hu.X_(i.uniformDistribution)}W(){return this._n}wu(t){R(this.bo,t),this.gu(),this.bu()}Eh(t,i){var s;R(this._n,t),this._n.fixLeftEdge&&this.Mu(),this._n.fixRightEdge&&this.xu(),t.barSpacing!==void 0&&this.Hi.Kn(t.barSpacing),t.rightOffset!==void 0&&this.Hi.Zn(t.rightOffset),t.minBarSpacing!==void 0&&this.Hi.Kn((s=t.barSpacing)!==null&&s!==void 0?s:this.mu),this.gu(),this.bu(),this.cu.m()}vn(t){var i,s;return(s=(i=this.ru[t])===null||i===void 0?void 0:i.time)!==null&&s!==void 0?s:null}$i(t){var i;return(i=this.ru[t])!==null&&i!==void 0?i:null}ya(t,i){if(this.ru.length<1)return null;if(this.N_.key(t)>this.N_.key(this.ru[this.ru.length-1].time))return i?this.ru.length-1:null;const s=ct(this.ru,this.N_.key(t),(e,n)=>this.N_.key(e.time)<n);return this.N_.key(t)<this.N_.key(this.ru[s].time)?i?s:null:s}Ei(){return this.e_===0||this.ru.length===0||this.eu===null}ka(){return this.ru.length>0}qs(){return this.Su(),this.au.iu()}ku(){return this.Su(),this.au.nu()}yu(){const t=this.qs();if(t===null)return null;const i={from:t.Rs(),to:t.ui()};return this.Cu(i)}Cu(t){const i=Math.round(t.from),s=Math.round(t.to),e=p(this.Tu()),n=p(this.Pu());return{from:p(this.$i(Math.max(e,i))),to:p(this.$i(Math.min(n,s)))}}Ru(t){return{from:p(this.ya(t.from,!0)),to:p(this.ya(t.to,!0))}}ji(){return this.e_}m_(t){if(!isFinite(t)||t<=0||this.e_===t)return;const i=this.ku(),s=this.e_;if(this.e_=t,this.ou=!0,this._n.lockVisibleTimeRangeOnResize&&s!==0){const e=this.mu*t/s;this.mu=e}if(this._n.fixLeftEdge&&i!==null&&i.Rs()<=0){const e=s-t;this.pu-=Math.round(e/this.mu)+1,this.ou=!0}this.Du(),this.Ou()}It(t){if(this.Ei()||!rt(t))return 0;const i=this.Au()+this.pu-t;return this.e_-(i+.5)*this.mu-1}Zs(t,i){const s=this.Au(),e=i===void 0?0:i.from,n=i===void 0?t.length:i.to;for(let r=e;r<n;r++){const o=t[r].ot,l=s+this.pu-o,a=this.e_-(l+.5)*this.mu-1;t[r].nt=a}}Vu(t){return Math.ceil(this.Bu(t))}Zn(t){this.ou=!0,this.pu=t,this.Ou(),this.Hi.Iu(),this.Hi.Nh()}ee(){return this.mu}Kn(t){this.zu(t),this.Ou(),this.Hi.Iu(),this.Hi.Nh()}Lu(){return this.pu}La(){if(this.Ei())return null;if(this.fu!==null)return this.fu;const t=this.mu,i=5*(this.Hi.W().layout.fontSize+4)/8*(this._n.tickMarkMaxCharacterLength||8),s=Math.round(i/t),e=p(this.qs()),n=Math.max(e.Rs(),e.Rs()-s),r=Math.max(e.ui(),e.ui()-s),o=this.hu.G_(t,i),l=this.Tu()+s,a=this.Pu()-s,u=this.Eu(),c=this._n.fixLeftEdge||u,f=this._n.fixRightEdge||u;let d=0;for(const m of o){if(!(n<=m.index&&m.index<=r))continue;let v;d<this.vu.length?(v=this.vu[d],v.coord=this.It(m.index),v.label=this.Nu(m),v.weight=m.weight):(v={needAlignCoordinate:!1,coord:this.It(m.index),label:this.Nu(m),weight:m.weight},this.vu.push(v)),this.mu>i/2&&!u?v.needAlignCoordinate=!1:v.needAlignCoordinate=c&&m.index<=l||f&&m.index>=a,d++}return this.vu.length=d,this.fu=this.vu,this.vu}Fu(){this.ou=!0,this.Kn(this._n.barSpacing),this.Zn(this._n.rightOffset)}Wu(t){this.ou=!0,this.eu=t,this.Ou(),this.Mu()}ju(t,i){const s=this.Bu(t),e=this.ee(),n=e+i*(e/10);this.Kn(n),this._n.rightBarStaysOnScroll||this.Zn(this.Lu()+(s-this.Bu(t)))}Uo(t){this.fo&&this.Zo(),this.do===null&&this.du===null&&(this.Ei()||(this.do=t,this.Hu()))}qo(t){if(this.du===null)return;const i=ei(this.e_-t,0,this.e_),s=ei(this.e_-p(this.do),0,this.e_);i!==0&&s!==0&&this.Kn(this.du.ee*i/s)}Yo(){this.do!==null&&(this.do=null,this.$u())}Xo(t){this.fo===null&&this.du===null&&(this.Ei()||(this.fo=t,this.Hu()))}Ko(t){if(this.fo===null)return;const i=(this.fo-t)/this.ee();this.pu=p(this.du).Lu+i,this.ou=!0,this.Ou()}Zo(){this.fo!==null&&(this.fo=null,this.$u())}Uu(){this.qu(this._n.rightOffset)}qu(t,i=400){if(!isFinite(t))throw new RangeError(\"offset is required and must be finite number\");if(!isFinite(i)||i<=0)throw new RangeError(\"animationDuration (optional) must be finite positive number\");const s=this.pu,e=performance.now();this.Hi.qn({Yu:n=>(n-e)/i>=1,Xu:n=>{const r=(n-e)/i;return r>=1?t:s+(t-s)*r}})}bt(t,i){this.ou=!0,this.ru=t,this.hu.K_(t,i),this.Ou()}Ku(){return this._u}Zu(){return this.uu}Gu(){return this.cu}Au(){return this.eu||0}Ju(t){const i=t.U_();this.zu(this.e_/i),this.pu=t.ui()-this.Au(),this.Ou(),this.ou=!0,this.Hi.Iu(),this.Hi.Nh()}Qu(){const t=this.Tu(),i=this.Pu();t!==null&&i!==null&&this.Ju(new nt(t,i+this._n.rightOffset))}tc(t){const i=new nt(t.from,t.to);this.Ju(i)}Ui(t){return this.bo.timeFormatter!==void 0?this.bo.timeFormatter(t.originalTime):this.N_.formatHorzItem(t.time)}Eu(){const{handleScroll:t,handleScale:i}=this.Hi.W();return!(t.horzTouchDrag||t.mouseWheel||t.pressedMouseMove||t.vertTouchDrag||i.axisDoubleClickReset.time||i.axisPressedMouseMove.time||i.mouseWheel||i.pinch)}Tu(){return this.ru.length===0?null:0}Pu(){return this.ru.length===0?null:this.ru.length-1}ic(t){return(this.e_-1-t)/this.mu}Bu(t){const i=this.ic(t),s=this.Au()+this.pu-i;return Math.round(1e6*s)/1e6}zu(t){const i=this.mu;this.mu=t,this.Du(),i!==this.mu&&(this.ou=!0,this.nc())}Su(){if(!this.ou)return;if(this.ou=!1,this.Ei())return void this.sc(J.su());const t=this.Au(),i=this.e_/this.mu,s=this.pu+t,e=new nt(s-i+1,s);this.sc(new J(e))}Du(){const t=this.ec();if(this.mu<t&&(this.mu=t,this.ou=!0),this.e_!==0){const i=.5*this.e_;this.mu>i&&(this.mu=i,this.ou=!0)}}ec(){return this._n.fixLeftEdge&&this._n.fixRightEdge&&this.ru.length!==0?this.e_/this.ru.length:this._n.minBarSpacing}Ou(){const t=this.rc();this.pu>t&&(this.pu=t,this.ou=!0);const i=this.hc();i!==null&&this.pu<i&&(this.pu=i,this.ou=!0)}hc(){const t=this.Tu(),i=this.eu;return t===null||i===null?null:t-i-1+(this._n.fixLeftEdge?this.e_/this.mu:Math.min(2,this.ru.length))}rc(){return this._n.fixRightEdge?0:this.e_/this.mu-Math.min(2,this.ru.length)}Hu(){this.du={ee:this.ee(),Lu:this.Lu()}}$u(){this.du=null}Nu(t){let i=this.lu.get(t.weight);return i===void 0&&(i=new yh(s=>this.lc(s),this.N_),this.lu.set(t.weight,i)),i.F_(t)}lc(t){return this.N_.formatTickmark(t,this.bo)}sc(t){const i=this.au;this.au=t,Zi(i.iu(),this.au.iu())||this._u.m(),Zi(i.nu(),this.au.nu())||this.uu.m(),this.nc()}nc(){this.fu=null}gu(){this.nc(),this.lu.clear()}bu(){this.N_.updateFormatter(this.bo)}Mu(){if(!this._n.fixLeftEdge)return;const t=this.Tu();if(t===null)return;const i=this.qs();if(i===null)return;const s=i.Rs()-t;if(s<0){const e=this.pu-s-1;this.Zn(e)}this.Du()}xu(){this.Ou(),this.Du()}}class Ch{K(t,i,s){t.useMediaCoordinateSpace(e=>this.Z(e,i,s))}fl(t,i,s){t.useMediaCoordinateSpace(e=>this.ac(e,i,s))}ac(t,i,s){}}class Eh extends Ch{constructor(t){super(),this.oc=new Map,this.zt=t}Z(t){}ac(t){if(!this.zt.yt)return;const{context:i,mediaSize:s}=t;let e=0;for(const r of this.zt._c){if(r.Zt.length===0)continue;i.font=r.R;const o=this.uc(i,r.Zt);o>s.width?r.ju=s.width/o:r.ju=1,e+=r.cc*r.ju}let n=0;switch(this.zt.dc){case\"top\":n=0;break;case\"center\":n=Math.max((s.height-e)/2,0);break;case\"bottom\":n=Math.max(s.height-e,0)}i.fillStyle=this.zt.O;for(const r of this.zt._c){i.save();let o=0;switch(this.zt.fc){case\"left\":i.textAlign=\"left\",o=r.cc/2;break;case\"center\":i.textAlign=\"center\",o=s.width/2;break;case\"right\":i.textAlign=\"right\",o=s.width-1-r.cc/2}i.translate(o,n),i.textBaseline=\"top\",i.font=r.R,i.scale(r.ju,r.ju),i.fillText(r.Zt,0,r.vc),i.restore(),n+=r.cc*r.ju}}uc(t,i){const s=this.mc(t.font);let e=s.get(i);return e===void 0&&(e=t.measureText(i).width,s.set(i,e)),e}mc(t){let i=this.oc.get(t);return i===void 0&&(i=new Map,this.oc.set(t,i)),i}}class Oh{constructor(t){this.ft=!0,this.Ft={yt:!1,O:\"\",_c:[],dc:\"center\",fc:\"center\"},this.Wt=new Eh(this.Ft),this.jt=t}bt(){this.ft=!0}gt(){return this.ft&&(this.Mt(),this.ft=!1),this.Wt}Mt(){const t=this.jt.W(),i=this.Ft;i.yt=t.visible,i.yt&&(i.O=t.color,i.fc=t.horzAlign,i.dc=t.vertAlign,i._c=[{Zt:t.text,R:K(t.fontSize,t.fontFamily,t.fontStyle),cc:1.2*t.fontSize,vc:0,ju:0}])}}class kh extends ci{constructor(t,i){super(),this._n=i,this.mn=new Oh(this)}Tn(){return[]}Cn(){return[this.mn]}W(){return this._n}Rn(){this.mn.bt()}}var Yi,Qi,Xi,qi,Ji;(function(h){h[h.OnTouchEnd=0]=\"OnTouchEnd\",h[h.OnNextTap=1]=\"OnNextTap\"})(Yi||(Yi={}));class Th{constructor(t,i,s){this.bc=[],this.wc=[],this.e_=0,this.gc=null,this.Mc=new M,this.xc=new M,this.Sc=null,this.kc=t,this._n=i,this.N_=s,this.yc=new le(this),this.wl=new xh(this,i.timeScale,this._n.localization,s),this.vt=new we(this,i.crosshair),this.Cc=new mh(i.crosshair),this.Tc=new kh(this,i.watermark),this.Pc(),this.bc[0].p_(2e3),this.Rc=this.Dc(0),this.Oc=this.Dc(1)}$l(){this.Ac(x.ns())}Nh(){this.Ac(x.ts())}sa(){this.Ac(new x(1))}Ul(t){const i=this.Vc(t);this.Ac(i)}Bc(){return this.gc}Ic(t){const i=this.gc;this.gc=t,i!==null&&this.Ul(i.zc),t!==null&&this.Ul(t.zc)}W(){return this._n}Eh(t){R(this._n,t),this.bc.forEach(i=>i.c_(t)),t.timeScale!==void 0&&this.wl.Eh(t.timeScale),t.localization!==void 0&&this.wl.wu(t.localization),(t.leftPriceScale||t.rightPriceScale)&&this.Mc.m(),this.Rc=this.Dc(0),this.Oc=this.Dc(1),this.$l()}Lc(t,i){if(t===\"left\")return void this.Eh({leftPriceScale:i});if(t===\"right\")return void this.Eh({rightPriceScale:i});const s=this.Ec(t);s!==null&&(s.Dt.Eh(i),this.Mc.m())}Ec(t){for(const i of this.bc){const s=i.d_(t);if(s!==null)return{Ht:i,Dt:s}}return null}St(){return this.wl}Nc(){return this.bc}Fc(){return this.Tc}Wc(){return this.vt}jc(){return this.xc}Hc(t,i){t.Oo(i),this.Iu()}m_(t){this.e_=t,this.wl.m_(this.e_),this.bc.forEach(i=>i.m_(t)),this.Iu()}Pc(t){const i=new Sh(this.wl,this);t!==void 0?this.bc.splice(t,0,i):this.bc.push(i);const s=t===void 0?this.bc.length-1:t,e=x.ns();return e.Ln(s,{En:0,Nn:!0}),this.Ac(e),i}y_(t,i,s){t.y_(i,s)}C_(t,i,s){t.C_(i,s),this.ql(),this.Ac(this.$c(t,2))}T_(t,i){t.T_(i),this.Ac(this.$c(t,2))}P_(t,i,s){i.yo()||t.P_(i,s)}R_(t,i,s){i.yo()||(t.R_(i,s),this.ql(),this.Ac(this.$c(t,2)))}D_(t,i){i.yo()||(t.D_(i),this.Ac(this.$c(t,2)))}A_(t,i){t.A_(i),this.Ac(this.$c(t,2))}Uc(t){this.wl.Uo(t)}qc(t,i){const s=this.St();if(s.Ei()||i===0)return;const e=s.ji();t=Math.max(1,Math.min(t,e)),s.ju(t,i),this.Iu()}Yc(t){this.Xc(0),this.Kc(t),this.Zc()}Gc(t){this.wl.qo(t),this.Iu()}Jc(){this.wl.Yo(),this.Nh()}Xc(t){this.wl.Xo(t)}Kc(t){this.wl.Ko(t),this.Iu()}Zc(){this.wl.Zo(),this.Nh()}wt(){return this.wc}Qc(t,i,s,e,n){this.vt.bn(t,i);let r=NaN,o=this.wl.Vu(t);const l=this.wl.qs();l!==null&&(o=Math.min(Math.max(l.Rs(),o),l.ui()));const a=e.dn(),u=a.Ct();u!==null&&(r=a.fn(i,u)),r=this.Cc.Ca(r,o,e),this.vt.xn(o,r,e),this.sa(),n||this.xc.m(this.vt.xt(),{x:t,y:i},s)}td(t,i,s){const e=s.dn(),n=e.Ct(),r=e.Rt(t,p(n)),o=this.wl.ya(i,!0),l=this.wl.It(p(o));this.Qc(l,r,null,s,!0)}nd(t){this.Wc().kn(),this.sa(),t||this.xc.m(null,null,null)}ql(){const t=this.vt.Ht();if(t!==null){const i=this.vt.gn(),s=this.vt.Mn();this.Qc(i,s,null,t)}this.vt.Rn()}sd(t,i,s){const e=this.wl.vn(0);i!==void 0&&s!==void 0&&this.wl.bt(i,s);const n=this.wl.vn(0),r=this.wl.Au(),o=this.wl.qs();if(o!==null&&e!==null&&n!==null){const l=o.Yr(r),a=this.N_.key(e)>this.N_.key(n),u=t!==null&&t>r&&!a,c=this.wl.W().allowShiftVisibleRangeOnWhitespaceReplacement,f=l&&(s!==void 0||c)&&this.wl.W().shiftVisibleRangeOnNewBar;if(u&&!f){const d=t-r;this.wl.Zn(this.wl.Lu()-d)}}this.wl.Wu(t)}Kl(t){t!==null&&t.B_()}_r(t){const i=this.bc.find(s=>s.No().includes(t));return i===void 0?null:i}Iu(){this.Tc.Rn(),this.bc.forEach(t=>t.B_()),this.ql()}S(){this.bc.forEach(t=>t.S()),this.bc.length=0,this._n.localization.priceFormatter=void 0,this._n.localization.percentageFormatter=void 0,this._n.localization.timeFormatter=void 0}ed(){return this.yc}vr(){return this.yc.W()}f_(){return this.Mc}rd(t,i,s){const e=this.bc[0],n=this.hd(i,t,e,s);return this.wc.push(n),this.wc.length===1?this.$l():this.Nh(),n}ld(t){const i=this._r(t),s=this.wc.indexOf(t);A(s!==-1,\"Series not found\"),this.wc.splice(s,1),p(i).jo(t),t.S&&t.S()}Hl(t,i){const s=p(this._r(t));s.jo(t);const e=this.Ec(i);if(e===null){const n=t.Xi();s.Fo(t,i,n)}else{const n=e.Ht===s?t.Xi():void 0;e.Ht.Fo(t,i,n)}}Qu(){const t=x.ts();t.jn(),this.Ac(t)}ad(t){const i=x.ts();i.Un(t),this.Ac(i)}Xn(){const t=x.ts();t.Xn(),this.Ac(t)}Kn(t){const i=x.ts();i.Kn(t),this.Ac(i)}Zn(t){const i=x.ts();i.Zn(t),this.Ac(i)}qn(t){const i=x.ts();i.qn(t),this.Ac(i)}Hn(){const t=x.ts();t.Hn(),this.Ac(t)}od(){return this._n.rightPriceScale.visible?\"right\":\"left\"}_d(){return this.Oc}q(){return this.Rc}Vt(t){const i=this.Oc,s=this.Rc;if(i===s)return i;if(t=Math.max(0,Math.min(100,Math.round(100*t))),this.Sc===null||this.Sc.ys!==s||this.Sc.Cs!==i)this.Sc={ys:s,Cs:i,ud:new Map};else{const n=this.Sc.ud.get(t);if(n!==void 0)return n}const e=function(n,r,o){const[l,a,u,c]=zt(n),[f,d,m,v]=zt(r),b=[N(l+o*(f-l)),N(a+o*(d-a)),N(u+o*(m-u)),Ss(c+o*(v-c))];return`rgba(${b[0]}, ${b[1]}, ${b[2]}, ${b[3]})`}(s,i,t/100);return this.Sc.ud.set(t,e),e}$c(t,i){const s=new x(i);if(t!==null){const e=this.bc.indexOf(t);s.Ln(e,{En:i})}return s}Vc(t,i){return i===void 0&&(i=2),this.$c(this._r(t),i)}Ac(t){this.kc&&this.kc(t),this.bc.forEach(i=>i.z_().Fh().bt())}hd(t,i,s,e){const n=new vi(this,t,i,s,e),r=t.priceScaleId!==void 0?t.priceScaleId:this.od();return s.Fo(n,r),Tt(r)||n.Eh(t),n}Dc(t){const i=this._n.layout;return i.background.type===\"gradient\"?t===0?i.background.topColor:i.background.bottomColor:i.background.color}}function hi(h){return!P(h)&&!ut(h)}function Vs(h){return P(h)}(function(h){h[h.Disabled=0]=\"Disabled\",h[h.Continuous=1]=\"Continuous\",h[h.OnDataUpdate=2]=\"OnDataUpdate\"})(Qi||(Qi={})),function(h){h[h.LastBar=0]=\"LastBar\",h[h.LastVisible=1]=\"LastVisible\"}(Xi||(Xi={})),function(h){h.Solid=\"solid\",h.VerticalGradient=\"gradient\"}(qi||(qi={})),function(h){h[h.Year=0]=\"Year\",h[h.Month=1]=\"Month\",h[h.DayOfMonth=2]=\"DayOfMonth\",h[h.Time=3]=\"Time\",h[h.TimeWithSeconds=4]=\"TimeWithSeconds\"}(Ji||(Ji={}));const Ki=h=>h.getUTCFullYear();function Nh(h,t,i){return t.replace(/yyyy/g,(s=>I(Ki(s),4))(h)).replace(/yy/g,(s=>I(Ki(s)%100,2))(h)).replace(/MMMM/g,((s,e)=>new Date(s.getUTCFullYear(),s.getUTCMonth(),1).toLocaleString(e,{month:\"long\"}))(h,i)).replace(/MMM/g,((s,e)=>new Date(s.getUTCFullYear(),s.getUTCMonth(),1).toLocaleString(e,{month:\"short\"}))(h,i)).replace(/MM/g,(s=>I((e=>e.getUTCMonth()+1)(s),2))(h)).replace(/dd/g,(s=>I((e=>e.getUTCDate())(s),2))(h))}class As{constructor(t=\"yyyy-MM-dd\",i=\"default\"){this.dd=t,this.fd=i}F_(t){return Nh(t,this.dd,this.fd)}}class Rh{constructor(t){this.vd=t||\"%h:%m:%s\"}F_(t){return this.vd.replace(\"%h\",I(t.getUTCHours(),2)).replace(\"%m\",I(t.getUTCMinutes(),2)).replace(\"%s\",I(t.getUTCSeconds(),2))}}const Bh={pd:\"yyyy-MM-dd\",md:\"%h:%m:%s\",bd:\" \",wd:\"default\"};class Lh{constructor(t={}){const i=Object.assign(Object.assign({},Bh),t);this.gd=new As(i.pd,i.wd),this.Md=new Rh(i.md),this.xd=i.bd}F_(t){return`${this.gd.F_(t)}${this.xd}${this.Md.F_(t)}`}}function bt(h){return 60*h*60*1e3}function Zt(h){return 60*h*1e3}const gt=[{Sd:(Gi=1,1e3*Gi),kd:10},{Sd:Zt(1),kd:20},{Sd:Zt(5),kd:21},{Sd:Zt(30),kd:22},{Sd:bt(1),kd:30},{Sd:bt(3),kd:31},{Sd:bt(6),kd:32},{Sd:bt(12),kd:33}];var Gi;function ts(h,t){if(h.getUTCFullYear()!==t.getUTCFullYear())return 70;if(h.getUTCMonth()!==t.getUTCMonth())return 60;if(h.getUTCDate()!==t.getUTCDate())return 50;for(let i=gt.length-1;i>=0;--i)if(Math.floor(t.getTime()/gt[i].Sd)!==Math.floor(h.getTime()/gt[i].Sd))return gt[i].kd;return 0}function Yt(h){let t=h;if(ut(h)&&(t=pi(h)),!hi(t))throw new Error(\"time must be of type BusinessDay\");const i=new Date(Date.UTC(t.year,t.month-1,t.day,0,0,0,0));return{yd:Math.round(i.getTime()/1e3),Cd:t}}function is(h){if(!Vs(h))throw new Error(\"time must be of type isUTCTimestamp\");return{yd:h}}function pi(h){const t=new Date(h);if(isNaN(t.getTime()))throw new Error(`Invalid date string=${h}, expected format=yyyy-mm-dd`);return{day:t.getUTCDate(),month:t.getUTCMonth()+1,year:t.getUTCFullYear()}}function ss(h){ut(h.time)&&(h.time=pi(h.time))}class es{options(){return this._n}setOptions(t){this._n=t,this.updateFormatter(t.localization)}preprocessData(t){Array.isArray(t)?function(i){i.forEach(ss)}(t):ss(t)}createConverterToInternalObj(t){return p(function(i){return i.length===0?null:hi(i[0].time)||ut(i[0].time)?Yt:is}(t))}key(t){return typeof t==\"object\"&&\"yd\"in t?t.yd:this.key(this.convertHorzItemToInternal(t))}cacheKey(t){const i=t;return i.Cd===void 0?new Date(1e3*i.yd).getTime():new Date(Date.UTC(i.Cd.year,i.Cd.month-1,i.Cd.day)).getTime()}convertHorzItemToInternal(t){return Vs(i=t)?is(i):hi(i)?Yt(i):Yt(pi(i));var i}updateFormatter(t){if(!this._n)return;const i=t.dateFormat;this._n.timeScale.timeVisible?this.Td=new Lh({pd:i,md:this._n.timeScale.secondsVisible?\"%h:%m:%s\":\"%h:%m\",bd:\"   \",wd:t.locale}):this.Td=new As(i,t.locale)}formatHorzItem(t){const i=t;return this.Td.F_(new Date(1e3*i.yd))}formatTickmark(t,i){const s=function(n,r,o){switch(n){case 0:case 10:return r?o?4:3:2;case 20:case 21:case 22:case 30:case 31:case 32:case 33:return r?3:2;case 50:return 2;case 60:return 1;case 70:return 0}}(t.weight,this._n.timeScale.timeVisible,this._n.timeScale.secondsVisible),e=this._n.timeScale;if(e.tickMarkFormatter!==void 0){const n=e.tickMarkFormatter(t.originalTime,s,i.locale);if(n!==null)return n}return function(n,r,o){const l={};switch(r){case 0:l.year=\"numeric\";break;case 1:l.month=\"short\";break;case 2:l.day=\"numeric\";break;case 3:l.hour12=!1,l.hour=\"2-digit\",l.minute=\"2-digit\";break;case 4:l.hour12=!1,l.hour=\"2-digit\",l.minute=\"2-digit\",l.second=\"2-digit\"}const a=n.Cd===void 0?new Date(1e3*n.yd):new Date(Date.UTC(n.Cd.year,n.Cd.month-1,n.Cd.day));return new Date(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate(),a.getUTCHours(),a.getUTCMinutes(),a.getUTCSeconds(),a.getUTCMilliseconds()).toLocaleString(o,l)}(t.time,s,i.locale)}maxTickMarkWeight(t){let i=t.reduce(zh,t[0]).weight;return i>30&&i<50&&(i=30),i}fillWeightsForPoints(t,i){(function(s,e=0){if(s.length===0)return;let n=e===0?null:s[e-1].time.yd,r=n!==null?new Date(1e3*n):null,o=0;for(let l=e;l<s.length;++l){const a=s[l],u=new Date(1e3*a.time.yd);r!==null&&(a.timeWeight=ts(u,r)),o+=a.time.yd-(n||a.time.yd),n=a.time.yd,r=u}if(e===0&&s.length>1){const l=Math.ceil(o/(s.length-1)),a=new Date(1e3*(s[0].time.yd-l));s[0].timeWeight=ts(new Date(1e3*s[0].time.yd),a)}})(t,i)}static Pd(t){return R({localization:{dateFormat:\"dd MMM 'yy\"}},t??{})}}const G=typeof window<\"u\";function hs(){return!!G&&window.navigator.userAgent.toLowerCase().indexOf(\"firefox\")>-1}function Qt(){return!!G&&/iPhone|iPad|iPod/.test(window.navigator.platform)}function ni(h){return h+h%2}function Xt(h,t){return h.Rd-t.Rd}function qt(h,t,i){const s=(h.Rd-t.Rd)/(h.ot-t.ot);return Math.sign(s)*Math.min(Math.abs(s),i)}class Ph{constructor(t,i,s,e){this.Dd=null,this.Od=null,this.Ad=null,this.Vd=null,this.Bd=null,this.Id=0,this.zd=0,this.Ld=t,this.Ed=i,this.Nd=s,this.ss=e}Fd(t,i){if(this.Dd!==null){if(this.Dd.ot===i)return void(this.Dd.Rd=t);if(Math.abs(this.Dd.Rd-t)<this.ss)return}this.Vd=this.Ad,this.Ad=this.Od,this.Od=this.Dd,this.Dd={ot:i,Rd:t}}Pr(t,i){if(this.Dd===null||this.Od===null||i-this.Dd.ot>50)return;let s=0;const e=qt(this.Dd,this.Od,this.Ed),n=Xt(this.Dd,this.Od),r=[e],o=[n];if(s+=n,this.Ad!==null){const a=qt(this.Od,this.Ad,this.Ed);if(Math.sign(a)===Math.sign(e)){const u=Xt(this.Od,this.Ad);if(r.push(a),o.push(u),s+=u,this.Vd!==null){const c=qt(this.Ad,this.Vd,this.Ed);if(Math.sign(c)===Math.sign(e)){const f=Xt(this.Ad,this.Vd);r.push(c),o.push(f),s+=f}}}}let l=0;for(let a=0;a<r.length;++a)l+=o[a]/s*r[a];Math.abs(l)<this.Ld||(this.Bd={Rd:t,ot:i},this.zd=l,this.Id=function(a,u){const c=Math.log(u);return Math.log(1*c/-a)/c}(Math.abs(l),this.Nd))}Xu(t){const i=p(this.Bd),s=t-i.ot;return i.Rd+this.zd*(Math.pow(this.Nd,s)-1)/Math.log(this.Nd)}Yu(t){return this.Bd===null||this.Wd(t)===this.Id}Wd(t){const i=t-p(this.Bd).ot;return Math.min(i,this.Id)}}function U(h,t){const i=p(h.ownerDocument).createElement(\"canvas\");h.appendChild(i);const s=Ys(i,{options:{allowResizeObserver:!1},transform:(e,n)=>({width:Math.max(e.width,n.width),height:Math.max(e.height,n.height)})});return s.resizeCanvasElement(t),s}function Z(h){var t;h.width=1,h.height=1,(t=h.getContext(\"2d\"))===null||t===void 0||t.clearRect(0,0,1,1)}function ri(h,t,i,s){h.fl&&h.fl(t,i,s)}function Mt(h,t,i,s){h.K(t,i,s)}function oi(h,t,i,s){const e=h(i,s);for(const n of e){const r=n.gt();r!==null&&t(r)}}function Wh(h){G&&window.chrome!==void 0&&h.addEventListener(\"mousedown\",t=>{if(t.button===1)return t.preventDefault(),!1})}class bi{constructor(t,i,s){this.jd=0,this.Hd=null,this.$d={nt:Number.NEGATIVE_INFINITY,st:Number.POSITIVE_INFINITY},this.Ud=0,this.qd=null,this.Yd={nt:Number.NEGATIVE_INFINITY,st:Number.POSITIVE_INFINITY},this.Xd=null,this.Kd=!1,this.Zd=null,this.Gd=null,this.Jd=!1,this.Qd=!1,this.tf=!1,this.if=null,this.nf=null,this.sf=null,this.ef=null,this.rf=null,this.hf=null,this.lf=null,this.af=0,this._f=!1,this.uf=!1,this.cf=!1,this.df=0,this.ff=null,this.vf=!Qt(),this.pf=e=>{this.mf(e)},this.bf=e=>{if(this.wf(e)){const n=this.gf(e);if(++this.Ud,this.qd&&this.Ud>1){const{Mf:r}=this.xf(L(e),this.Yd);r<30&&!this.tf&&this.Sf(n,this.yf.kf),this.Cf()}}else{const n=this.gf(e);if(++this.jd,this.Hd&&this.jd>1){const{Mf:r}=this.xf(L(e),this.$d);r<5&&!this.Qd&&this.Tf(n,this.yf.Pf),this.Rf()}}},this.Df=t,this.yf=i,this._n=s,this.Of()}S(){this.if!==null&&(this.if(),this.if=null),this.nf!==null&&(this.nf(),this.nf=null),this.ef!==null&&(this.ef(),this.ef=null),this.rf!==null&&(this.rf(),this.rf=null),this.hf!==null&&(this.hf(),this.hf=null),this.sf!==null&&(this.sf(),this.sf=null),this.Af(),this.Rf()}Vf(t){this.ef&&this.ef();const i=this.Bf.bind(this);if(this.ef=()=>{this.Df.removeEventListener(\"mousemove\",i)},this.Df.addEventListener(\"mousemove\",i),this.wf(t))return;const s=this.gf(t);this.Tf(s,this.yf.If),this.vf=!0}Rf(){this.Hd!==null&&clearTimeout(this.Hd),this.jd=0,this.Hd=null,this.$d={nt:Number.NEGATIVE_INFINITY,st:Number.POSITIVE_INFINITY}}Cf(){this.qd!==null&&clearTimeout(this.qd),this.Ud=0,this.qd=null,this.Yd={nt:Number.NEGATIVE_INFINITY,st:Number.POSITIVE_INFINITY}}Bf(t){if(this.cf||this.Gd!==null||this.wf(t))return;const i=this.gf(t);this.Tf(i,this.yf.zf),this.vf=!0}Lf(t){const i=Jt(t.changedTouches,p(this.ff));if(i===null||(this.df=wt(t),this.lf!==null)||this.uf)return;this._f=!0;const s=this.xf(L(i),p(this.Gd)),{Ef:e,Nf:n,Mf:r}=s;if(this.Jd||!(r<5)){if(!this.Jd){const o=.5*e,l=n>=o&&!this._n.Ff(),a=o>n&&!this._n.Wf();l||a||(this.uf=!0),this.Jd=!0,this.tf=!0,this.Af(),this.Cf()}if(!this.uf){const o=this.gf(t,i);this.Sf(o,this.yf.jf),Q(t)}}}Hf(t){if(t.button!==0)return;const i=this.xf(L(t),p(this.Zd)),{Mf:s}=i;if(s>=5&&(this.Qd=!0,this.Rf()),this.Qd){const e=this.gf(t);this.Tf(e,this.yf.$f)}}xf(t,i){const s=Math.abs(i.nt-t.nt),e=Math.abs(i.st-t.st);return{Ef:s,Nf:e,Mf:s+e}}Uf(t){let i=Jt(t.changedTouches,p(this.ff));if(i===null&&t.touches.length===0&&(i=t.changedTouches[0]),i===null)return;this.ff=null,this.df=wt(t),this.Af(),this.Gd=null,this.hf&&(this.hf(),this.hf=null);const s=this.gf(t,i);if(this.Sf(s,this.yf.qf),++this.Ud,this.qd&&this.Ud>1){const{Mf:e}=this.xf(L(i),this.Yd);e<30&&!this.tf&&this.Sf(s,this.yf.kf),this.Cf()}else this.tf||(this.Sf(s,this.yf.Yf),this.yf.Yf&&Q(t));this.Ud===0&&Q(t),t.touches.length===0&&this.Kd&&(this.Kd=!1,Q(t))}mf(t){if(t.button!==0)return;const i=this.gf(t);if(this.Zd=null,this.cf=!1,this.rf&&(this.rf(),this.rf=null),hs()&&this.Df.ownerDocument.documentElement.removeEventListener(\"mouseleave\",this.pf),!this.wf(t))if(this.Tf(i,this.yf.Xf),++this.jd,this.Hd&&this.jd>1){const{Mf:s}=this.xf(L(t),this.$d);s<5&&!this.Qd&&this.Tf(i,this.yf.Pf),this.Rf()}else this.Qd||this.Tf(i,this.yf.Kf)}Af(){this.Xd!==null&&(clearTimeout(this.Xd),this.Xd=null)}Zf(t){if(this.ff!==null)return;const i=t.changedTouches[0];this.ff=i.identifier,this.df=wt(t);const s=this.Df.ownerDocument.documentElement;this.tf=!1,this.Jd=!1,this.uf=!1,this.Gd=L(i),this.hf&&(this.hf(),this.hf=null);{const n=this.Lf.bind(this),r=this.Uf.bind(this);this.hf=()=>{s.removeEventListener(\"touchmove\",n),s.removeEventListener(\"touchend\",r)},s.addEventListener(\"touchmove\",n,{passive:!1}),s.addEventListener(\"touchend\",r,{passive:!1}),this.Af(),this.Xd=setTimeout(this.Gf.bind(this,t),240)}const e=this.gf(t,i);this.Sf(e,this.yf.Jf),this.qd||(this.Ud=0,this.qd=setTimeout(this.Cf.bind(this),500),this.Yd=L(i))}Qf(t){if(t.button!==0)return;const i=this.Df.ownerDocument.documentElement;hs()&&i.addEventListener(\"mouseleave\",this.pf),this.Qd=!1,this.Zd=L(t),this.rf&&(this.rf(),this.rf=null);{const e=this.Hf.bind(this),n=this.mf.bind(this);this.rf=()=>{i.removeEventListener(\"mousemove\",e),i.removeEventListener(\"mouseup\",n)},i.addEventListener(\"mousemove\",e),i.addEventListener(\"mouseup\",n)}if(this.cf=!0,this.wf(t))return;const s=this.gf(t);this.Tf(s,this.yf.tv),this.Hd||(this.jd=0,this.Hd=setTimeout(this.Rf.bind(this),500),this.$d=L(t))}Of(){this.Df.addEventListener(\"mouseenter\",this.Vf.bind(this)),this.Df.addEventListener(\"touchcancel\",this.Af.bind(this));{const t=this.Df.ownerDocument,i=s=>{this.yf.iv&&(s.composed&&this.Df.contains(s.composedPath()[0])||s.target&&this.Df.contains(s.target)||this.yf.iv())};this.nf=()=>{t.removeEventListener(\"touchstart\",i)},this.if=()=>{t.removeEventListener(\"mousedown\",i)},t.addEventListener(\"mousedown\",i),t.addEventListener(\"touchstart\",i,{passive:!0})}Qt()&&(this.sf=()=>{this.Df.removeEventListener(\"dblclick\",this.bf)},this.Df.addEventListener(\"dblclick\",this.bf)),this.Df.addEventListener(\"mouseleave\",this.nv.bind(this)),this.Df.addEventListener(\"touchstart\",this.Zf.bind(this),{passive:!0}),Wh(this.Df),this.Df.addEventListener(\"mousedown\",this.Qf.bind(this)),this.sv(),this.Df.addEventListener(\"touchmove\",()=>{},{passive:!1})}sv(){this.yf.ev===void 0&&this.yf.rv===void 0&&this.yf.hv===void 0||(this.Df.addEventListener(\"touchstart\",t=>this.lv(t.touches),{passive:!0}),this.Df.addEventListener(\"touchmove\",t=>{if(t.touches.length===2&&this.lf!==null&&this.yf.rv!==void 0){const i=ns(t.touches[0],t.touches[1])/this.af;this.yf.rv(this.lf,i),Q(t)}},{passive:!1}),this.Df.addEventListener(\"touchend\",t=>{this.lv(t.touches)}))}lv(t){t.length===1&&(this._f=!1),t.length!==2||this._f||this.Kd?this.av():this.ov(t)}ov(t){const i=this.Df.getBoundingClientRect()||{left:0,top:0};this.lf={nt:(t[0].clientX-i.left+(t[1].clientX-i.left))/2,st:(t[0].clientY-i.top+(t[1].clientY-i.top))/2},this.af=ns(t[0],t[1]),this.yf.ev!==void 0&&this.yf.ev(),this.Af()}av(){this.lf!==null&&(this.lf=null,this.yf.hv!==void 0&&this.yf.hv())}nv(t){if(this.ef&&this.ef(),this.wf(t)||!this.vf)return;const i=this.gf(t);this.Tf(i,this.yf._v),this.vf=!Qt()}Gf(t){const i=Jt(t.touches,p(this.ff));if(i===null)return;const s=this.gf(t,i);this.Sf(s,this.yf.uv),this.tf=!0,this.Kd=!0}wf(t){return t.sourceCapabilities&&t.sourceCapabilities.firesTouchEvents!==void 0?t.sourceCapabilities.firesTouchEvents:wt(t)<this.df+500}Sf(t,i){i&&i.call(this.yf,t)}Tf(t,i){i&&i.call(this.yf,t)}gf(t,i){const s=i||t,e=this.Df.getBoundingClientRect()||{left:0,top:0};return{clientX:s.clientX,clientY:s.clientY,pageX:s.pageX,pageY:s.pageY,screenX:s.screenX,screenY:s.screenY,localX:s.clientX-e.left,localY:s.clientY-e.top,ctrlKey:t.ctrlKey,altKey:t.altKey,shiftKey:t.shiftKey,metaKey:t.metaKey,cv:!t.type.startsWith(\"mouse\")&&t.type!==\"contextmenu\"&&t.type!==\"click\",dv:t.type,fv:s.target,vv:t.view,pv:()=>{t.type!==\"touchstart\"&&Q(t)}}}}function ns(h,t){const i=h.clientX-t.clientX,s=h.clientY-t.clientY;return Math.sqrt(i*i+s*s)}function Q(h){h.cancelable&&h.preventDefault()}function L(h){return{nt:h.pageX,st:h.pageY}}function wt(h){return h.timeStamp||performance.now()}function Jt(h,t){for(let i=0;i<h.length;++i)if(h[i].identifier===t)return h[i];return null}function _t(h){return{zc:h.zc,mv:{mr:h.bv.externalId},wv:h.bv.cursorStyle}}function Ih(h,t,i){for(const s of h){const e=s.gt();if(e!==null&&e.pr){const n=e.pr(t,i);if(n!==null)return{vv:s,mv:n}}}return null}function Kt(h,t){return i=>{var s,e,n,r;return((e=(s=i.Dt())===null||s===void 0?void 0:s.xa())!==null&&e!==void 0?e:\"\")!==t?[]:(r=(n=i.la)===null||n===void 0?void 0:n.call(i,h))!==null&&r!==void 0?r:[]}}class rs{constructor(t,i,s,e){this.zi=null,this.gv=null,this.Mv=!1,this.xv=new lt(200),this.Zr=null,this.Sv=0,this.kv=!1,this.yv=()=>{this.kv||this.Qi.Cv().$t().Nh()},this.Tv=()=>{this.kv||this.Qi.Cv().$t().Nh()},this.Qi=t,this._n=i,this.mo=i.layout,this.yc=s,this.Pv=e===\"left\",this.Rv=Kt(\"normal\",e),this.Dv=Kt(\"top\",e),this.Ov=Kt(\"bottom\",e),this.Av=document.createElement(\"div\"),this.Av.style.height=\"100%\",this.Av.style.overflow=\"hidden\",this.Av.style.width=\"25px\",this.Av.style.left=\"0\",this.Av.style.position=\"relative\",this.Vv=U(this.Av,S({width:16,height:16})),this.Vv.subscribeSuggestedBitmapSizeChanged(this.yv);const n=this.Vv.canvasElement;n.style.position=\"absolute\",n.style.zIndex=\"1\",n.style.left=\"0\",n.style.top=\"0\",this.Bv=U(this.Av,S({width:16,height:16})),this.Bv.subscribeSuggestedBitmapSizeChanged(this.Tv);const r=this.Bv.canvasElement;r.style.position=\"absolute\",r.style.zIndex=\"2\",r.style.left=\"0\",r.style.top=\"0\";const o={tv:this.Iv.bind(this),Jf:this.Iv.bind(this),$f:this.zv.bind(this),jf:this.zv.bind(this),iv:this.Lv.bind(this),Xf:this.Ev.bind(this),qf:this.Ev.bind(this),Pf:this.Nv.bind(this),kf:this.Nv.bind(this),If:this.Fv.bind(this),_v:this.Wv.bind(this)};this.jv=new bi(this.Bv.canvasElement,o,{Ff:()=>!this._n.handleScroll.vertTouchDrag,Wf:()=>!0})}S(){this.jv.S(),this.Bv.unsubscribeSuggestedBitmapSizeChanged(this.Tv),Z(this.Bv.canvasElement),this.Bv.dispose(),this.Vv.unsubscribeSuggestedBitmapSizeChanged(this.yv),Z(this.Vv.canvasElement),this.Vv.dispose(),this.zi!==null&&this.zi.$o().p(this),this.zi=null}Hv(){return this.Av}P(){return this.mo.fontSize}$v(){const t=this.yc.W();return this.Zr!==t.R&&(this.xv.Qe(),this.Zr=t.R),t}Uv(){if(this.zi===null)return 0;let t=0;const i=this.$v(),s=p(this.Vv.canvasElement.getContext(\"2d\"));s.save();const e=this.zi.La();s.font=this.qv(),e.length>0&&(t=Math.max(this.xv.Mi(s,e[0].Za),this.xv.Mi(s,e[e.length-1].Za)));const n=this.Yv();for(let l=n.length;l--;){const a=this.xv.Mi(s,n[l].Zt());a>t&&(t=a)}const r=this.zi.Ct();if(r!==null&&this.gv!==null){const l=this.zi.fn(1,r),a=this.zi.fn(this.gv.height-2,r);t=Math.max(t,this.xv.Mi(s,this.zi.Ni(Math.floor(Math.min(l,a))+.11111111111111,r)),this.xv.Mi(s,this.zi.Ni(Math.ceil(Math.max(l,a))-.11111111111111,r)))}s.restore();const o=t||34;return ni(Math.ceil(i.C+i.T+i.B+i.I+5+o))}Xv(t){this.gv!==null&&F(this.gv,t)||(this.gv=t,this.kv=!0,this.Vv.resizeCanvasElement(t),this.Bv.resizeCanvasElement(t),this.kv=!1,this.Av.style.width=`${t.width}px`,this.Av.style.height=`${t.height}px`)}Kv(){return p(this.gv).width}Zi(t){this.zi!==t&&(this.zi!==null&&this.zi.$o().p(this),this.zi=t,t.$o().l(this.ao.bind(this),this))}Dt(){return this.zi}Qe(){const t=this.Qi.Zv();this.Qi.Cv().$t().A_(t,p(this.Dt()))}Gv(t){if(this.gv===null)return;if(t!==1){this.Jv(),this.Vv.applySuggestedBitmapSize();const s=H(this.Vv);s!==null&&(s.useBitmapCoordinateSpace(e=>{this.Qv(e),this.Ae(e)}),this.Qi.tp(s,this.Ov),this.ip(s),this.Qi.tp(s,this.Rv),this.np(s))}this.Bv.applySuggestedBitmapSize();const i=H(this.Bv);i!==null&&(i.useBitmapCoordinateSpace(({context:s,bitmapSize:e})=>{s.clearRect(0,0,e.width,e.height)}),this.sp(i),this.Qi.tp(i,this.Dv))}ep(){return this.Vv.bitmapSize}rp(t,i,s){const e=this.ep();e.width>0&&e.height>0&&t.drawImage(this.Vv.canvasElement,i,s)}bt(){var t;(t=this.zi)===null||t===void 0||t.La()}Iv(t){if(this.zi===null||this.zi.Ei()||!this._n.handleScale.axisPressedMouseMove.price)return;const i=this.Qi.Cv().$t(),s=this.Qi.Zv();this.Mv=!0,i.y_(s,this.zi,t.localY)}zv(t){if(this.zi===null||!this._n.handleScale.axisPressedMouseMove.price)return;const i=this.Qi.Cv().$t(),s=this.Qi.Zv(),e=this.zi;i.C_(s,e,t.localY)}Lv(){if(this.zi===null||!this._n.handleScale.axisPressedMouseMove.price)return;const t=this.Qi.Cv().$t(),i=this.Qi.Zv(),s=this.zi;this.Mv&&(this.Mv=!1,t.T_(i,s))}Ev(t){if(this.zi===null||!this._n.handleScale.axisPressedMouseMove.price)return;const i=this.Qi.Cv().$t(),s=this.Qi.Zv();this.Mv=!1,i.T_(s,this.zi)}Nv(t){this._n.handleScale.axisDoubleClickReset.price&&this.Qe()}Fv(t){this.zi!==null&&(!this.Qi.Cv().$t().W().handleScale.axisPressedMouseMove.price||this.zi.fh()||this.zi.Co()||this.hp(1))}Wv(t){this.hp(0)}Yv(){const t=[],i=this.zi===null?void 0:this.zi;return(s=>{for(let e=0;e<s.length;++e){const n=s[e].Tn(this.Qi.Zv(),i);for(let r=0;r<n.length;r++)t.push(n[r])}})(this.Qi.Zv().No()),t}Qv({context:t,bitmapSize:i}){const{width:s,height:e}=i,n=this.Qi.Zv().$t(),r=n.q(),o=n._d();r===o?Ot(t,0,0,s,e,r):ys(t,0,0,s,e,r,o)}Ae({context:t,bitmapSize:i,horizontalPixelRatio:s}){if(this.gv===null||this.zi===null||!this.zi.W().borderVisible)return;t.fillStyle=this.zi.W().borderColor;const e=Math.max(1,Math.floor(this.$v().C*s));let n;n=this.Pv?i.width-e:0,t.fillRect(n,0,e,i.height)}ip(t){if(this.gv===null||this.zi===null)return;const i=this.zi.La(),s=this.zi.W(),e=this.$v(),n=this.Pv?this.gv.width-e.T:0;s.borderVisible&&s.ticksVisible&&t.useBitmapCoordinateSpace(({context:r,horizontalPixelRatio:o,verticalPixelRatio:l})=>{r.fillStyle=s.borderColor;const a=Math.max(1,Math.floor(l)),u=Math.floor(.5*l),c=Math.round(e.T*o);r.beginPath();for(const f of i)r.rect(Math.floor(n*o),Math.round(f.Aa*l)-u,c,a);r.fill()}),t.useMediaCoordinateSpace(({context:r})=>{var o;r.font=this.qv(),r.fillStyle=(o=s.textColor)!==null&&o!==void 0?o:this.mo.textColor,r.textAlign=this.Pv?\"right\":\"left\",r.textBaseline=\"middle\";const l=this.Pv?Math.round(n-e.B):Math.round(n+e.T+e.B),a=i.map(u=>this.xv.gi(r,u.Za));for(let u=i.length;u--;){const c=i[u];r.fillText(c.Za,l,c.Aa+a[u])}})}Jv(){if(this.gv===null||this.zi===null)return;let t=this.gv.height/2;const i=[],s=this.zi.No().slice(),e=this.Qi.Zv(),n=this.$v();this.zi===e.cr()&&this.Qi.Zv().No().forEach(l=>{e.ur(l)&&s.push(l)});const r=this.zi.Ta()[0],o=this.zi;s.forEach(l=>{const a=l.Tn(e,o);a.forEach(u=>{u.Oi(null),u.Ai()&&i.push(u)}),r===l&&a.length>0&&(t=a[0].Si())}),i.forEach(l=>l.Oi(l.Si())),this.zi.W().alignLabels&&this.lp(i,n,t)}lp(t,i,s){if(this.gv===null)return;const e=t.filter(r=>r.Si()<=s),n=t.filter(r=>r.Si()>s);e.sort((r,o)=>o.Si()-r.Si()),e.length&&n.length&&n.push(e[0]),n.sort((r,o)=>r.Si()-o.Si());for(const r of t){const o=Math.floor(r.Bt(i)/2),l=r.Si();l>-o&&l<o&&r.Oi(o),l>this.gv.height-o&&l<this.gv.height+o&&r.Oi(this.gv.height-o)}for(let r=1;r<e.length;r++){const o=e[r],l=e[r-1],a=l.Bt(i,!1),u=o.Si(),c=l.Di();u>c-a&&o.Oi(c-a)}for(let r=1;r<n.length;r++){const o=n[r],l=n[r-1],a=l.Bt(i,!0),u=o.Si(),c=l.Di();u<c+a&&o.Oi(c+a)}}np(t){if(this.gv===null)return;const i=this.Yv(),s=this.$v(),e=this.Pv?\"right\":\"left\";i.forEach(n=>{n.Vi()&&n.gt(p(this.zi)).K(t,s,this.xv,e)})}sp(t){if(this.gv===null||this.zi===null)return;const i=this.Qi.Cv().$t(),s=[],e=this.Qi.Zv(),n=i.Wc().Tn(e,this.zi);n.length&&s.push(n);const r=this.$v(),o=this.Pv?\"right\":\"left\";s.forEach(l=>{l.forEach(a=>{a.gt(p(this.zi)).K(t,r,this.xv,o)})})}hp(t){this.Av.style.cursor=t===1?\"ns-resize\":\"default\"}ao(){const t=this.Uv();this.Sv<t&&this.Qi.Cv().$t().$l(),this.Sv=t}qv(){return K(this.mo.fontSize,this.mo.fontFamily)}}function Dh(h,t){var i,s;return(s=(i=h.ra)===null||i===void 0?void 0:i.call(h,t))!==null&&s!==void 0?s:[]}function St(h,t){var i,s;return(s=(i=h.Cn)===null||i===void 0?void 0:i.call(h,t))!==null&&s!==void 0?s:[]}function Vh(h,t){var i,s;return(s=(i=h.Gi)===null||i===void 0?void 0:i.call(h,t))!==null&&s!==void 0?s:[]}function Ah(h,t){var i,s;return(s=(i=h.na)===null||i===void 0?void 0:i.call(h,t))!==null&&s!==void 0?s:[]}class gi{constructor(t,i){this.gv=S({width:0,height:0}),this.ap=null,this.op=null,this._p=null,this.up=!1,this.cp=new M,this.dp=new M,this.fp=0,this.vp=!1,this.pp=null,this.mp=!1,this.bp=null,this.wp=null,this.kv=!1,this.yv=()=>{this.kv||this.gp===null||this.Hi().Nh()},this.Tv=()=>{this.kv||this.gp===null||this.Hi().Nh()},this.Mp=t,this.gp=i,this.gp.I_().l(this.xp.bind(this),this,!0),this.Sp=document.createElement(\"td\"),this.Sp.style.padding=\"0\",this.Sp.style.position=\"relative\";const s=document.createElement(\"div\");s.style.width=\"100%\",s.style.height=\"100%\",s.style.position=\"relative\",s.style.overflow=\"hidden\",this.kp=document.createElement(\"td\"),this.kp.style.padding=\"0\",this.yp=document.createElement(\"td\"),this.yp.style.padding=\"0\",this.Sp.appendChild(s),this.Vv=U(s,S({width:16,height:16})),this.Vv.subscribeSuggestedBitmapSizeChanged(this.yv);const e=this.Vv.canvasElement;e.style.position=\"absolute\",e.style.zIndex=\"1\",e.style.left=\"0\",e.style.top=\"0\",this.Bv=U(s,S({width:16,height:16})),this.Bv.subscribeSuggestedBitmapSizeChanged(this.Tv);const n=this.Bv.canvasElement;n.style.position=\"absolute\",n.style.zIndex=\"2\",n.style.left=\"0\",n.style.top=\"0\",this.Cp=document.createElement(\"tr\"),this.Cp.appendChild(this.kp),this.Cp.appendChild(this.Sp),this.Cp.appendChild(this.yp),this.Tp(),this.jv=new bi(this.Bv.canvasElement,this,{Ff:()=>this.pp===null&&!this.Mp.W().handleScroll.vertTouchDrag,Wf:()=>this.pp===null&&!this.Mp.W().handleScroll.horzTouchDrag})}S(){this.ap!==null&&this.ap.S(),this.op!==null&&this.op.S(),this.Bv.unsubscribeSuggestedBitmapSizeChanged(this.Tv),Z(this.Bv.canvasElement),this.Bv.dispose(),this.Vv.unsubscribeSuggestedBitmapSizeChanged(this.yv),Z(this.Vv.canvasElement),this.Vv.dispose(),this.gp!==null&&this.gp.I_().p(this),this.jv.S()}Zv(){return p(this.gp)}Pp(t){this.gp!==null&&this.gp.I_().p(this),this.gp=t,this.gp!==null&&this.gp.I_().l(gi.prototype.xp.bind(this),this,!0),this.Tp()}Cv(){return this.Mp}Hv(){return this.Cp}Tp(){if(this.gp!==null&&(this.Rp(),this.Hi().wt().length!==0)){if(this.ap!==null){const t=this.gp.S_();this.ap.Zi(p(t))}if(this.op!==null){const t=this.gp.k_();this.op.Zi(p(t))}}}Dp(){this.ap!==null&&this.ap.bt(),this.op!==null&&this.op.bt()}v_(){return this.gp!==null?this.gp.v_():0}p_(t){this.gp&&this.gp.p_(t)}If(t){if(!this.gp)return;this.Op();const i=t.localX,s=t.localY;this.Ap(i,s,t)}tv(t){this.Op(),this.Vp(),this.Ap(t.localX,t.localY,t)}zf(t){var i;if(!this.gp)return;this.Op();const s=t.localX,e=t.localY;this.Ap(s,e,t);const n=this.pr(s,e);this.Mp.Bp((i=n==null?void 0:n.wv)!==null&&i!==void 0?i:null),this.Hi().Ic(n&&{zc:n.zc,mv:n.mv})}Kf(t){this.gp!==null&&(this.Op(),this.Ip(t))}Pf(t){this.gp!==null&&this.zp(this.dp,t)}kf(t){this.Pf(t)}$f(t){this.Op(),this.Lp(t),this.Ap(t.localX,t.localY,t)}Xf(t){this.gp!==null&&(this.Op(),this.vp=!1,this.Ep(t))}Yf(t){this.gp!==null&&this.Ip(t)}uv(t){if(this.vp=!0,this.pp===null){const i={x:t.localX,y:t.localY};this.Np(i,i,t)}}_v(t){this.gp!==null&&(this.Op(),this.gp.$t().Ic(null),this.Fp())}Wp(){return this.cp}jp(){return this.dp}ev(){this.fp=1,this.Hi().Hn()}rv(t,i){if(!this.Mp.W().handleScale.pinch)return;const s=5*(i-this.fp);this.fp=i,this.Hi().qc(t.nt,s)}Jf(t){this.vp=!1,this.mp=this.pp!==null,this.Vp();const i=this.Hi().Wc();this.pp!==null&&i.yt()&&(this.bp={x:i.Yt(),y:i.Xt()},this.pp={x:t.localX,y:t.localY})}jf(t){if(this.gp===null)return;const i=t.localX,s=t.localY;if(this.pp===null)this.Lp(t);else{this.mp=!1;const e=p(this.bp),n=e.x+(i-this.pp.x),r=e.y+(s-this.pp.y);this.Ap(n,r,t)}}qf(t){this.Cv().W().trackingMode.exitMode===0&&(this.mp=!0),this.Hp(),this.Ep(t)}pr(t,i){const s=this.gp;return s===null?null:function(e,n,r){const o=e.No(),l=function(a,u,c){var f,d;let m,v;for(const w of a){const y=(d=(f=w.oa)===null||f===void 0?void 0:f.call(w,u,c))!==null&&d!==void 0?d:[];for(const _ of y)b=_.zOrder,(!(g=m==null?void 0:m.zOrder)||b===\"top\"&&g!==\"top\"||b===\"normal\"&&g===\"bottom\")&&(m=_,v=w)}var b,g;return m&&v?{bv:m,zc:v}:null}(o,n,r);if((l==null?void 0:l.bv.zOrder)===\"top\")return _t(l);for(const a of o){if(l&&l.zc===a&&l.bv.zOrder!==\"bottom\"&&!l.bv.isBackground)return _t(l);const u=Ih(a.Cn(e),n,r);if(u!==null)return{zc:a,vv:u.vv,mv:u.mv};if(l&&l.zc===a&&l.bv.zOrder!==\"bottom\"&&l.bv.isBackground)return _t(l)}return l!=null&&l.bv?_t(l):null}(s,t,i)}$p(t,i){p(i===\"left\"?this.ap:this.op).Xv(S({width:t,height:this.gv.height}))}Up(){return this.gv}Xv(t){F(this.gv,t)||(this.gv=t,this.kv=!0,this.Vv.resizeCanvasElement(t),this.Bv.resizeCanvasElement(t),this.kv=!1,this.Sp.style.width=t.width+\"px\",this.Sp.style.height=t.height+\"px\")}qp(){const t=p(this.gp);t.x_(t.S_()),t.x_(t.k_());for(const i of t.Ta())if(t.ur(i)){const s=i.Dt();s!==null&&t.x_(s),i.Rn()}}ep(){return this.Vv.bitmapSize}rp(t,i,s){const e=this.ep();e.width>0&&e.height>0&&t.drawImage(this.Vv.canvasElement,i,s)}Gv(t){if(t===0||this.gp===null)return;if(t>1&&this.qp(),this.ap!==null&&this.ap.Gv(t),this.op!==null&&this.op.Gv(t),t!==1){this.Vv.applySuggestedBitmapSize();const s=H(this.Vv);s!==null&&(s.useBitmapCoordinateSpace(e=>{this.Qv(e)}),this.gp&&(this.Yp(s,Dh),this.Xp(s),this.Kp(s),this.Yp(s,St),this.Yp(s,Vh)))}this.Bv.applySuggestedBitmapSize();const i=H(this.Bv);i!==null&&(i.useBitmapCoordinateSpace(({context:s,bitmapSize:e})=>{s.clearRect(0,0,e.width,e.height)}),this.Zp(i),this.Yp(i,Ah))}Gp(){return this.ap}Jp(){return this.op}tp(t,i){this.Yp(t,i)}xp(){this.gp!==null&&this.gp.I_().p(this),this.gp=null}Ip(t){this.zp(this.cp,t)}zp(t,i){const s=i.localX,e=i.localY;t.M()&&t.m(this.Hi().St().Vu(s),{x:s,y:e},i)}Qv({context:t,bitmapSize:i}){const{width:s,height:e}=i,n=this.Hi(),r=n.q(),o=n._d();r===o?Ot(t,0,0,s,e,o):ys(t,0,0,s,e,r,o)}Xp(t){const i=p(this.gp).z_().Fh().gt();i!==null&&i.K(t,!1)}Kp(t){const i=this.Hi().Fc();this.Qp(t,St,ri,i),this.Qp(t,St,Mt,i)}Zp(t){this.Qp(t,St,Mt,this.Hi().Wc())}Yp(t,i){const s=p(this.gp).No();for(const e of s)this.Qp(t,i,ri,e);for(const e of s)this.Qp(t,i,Mt,e)}Qp(t,i,s,e){const n=p(this.gp),r=n.$t().Bc(),o=r!==null&&r.zc===e,l=r!==null&&o&&r.mv!==void 0?r.mv.br:void 0;oi(i,a=>s(a,t,o,l),e,n)}Rp(){if(this.gp===null)return;const t=this.Mp,i=this.gp.S_().W().visible,s=this.gp.k_().W().visible;i||this.ap===null||(this.kp.removeChild(this.ap.Hv()),this.ap.S(),this.ap=null),s||this.op===null||(this.yp.removeChild(this.op.Hv()),this.op.S(),this.op=null);const e=t.$t().ed();i&&this.ap===null&&(this.ap=new rs(this,t.W(),e,\"left\"),this.kp.appendChild(this.ap.Hv())),s&&this.op===null&&(this.op=new rs(this,t.W(),e,\"right\"),this.yp.appendChild(this.op.Hv()))}tm(t){return t.cv&&this.vp||this.pp!==null}im(t){return Math.max(0,Math.min(t,this.gv.width-1))}nm(t){return Math.max(0,Math.min(t,this.gv.height-1))}Ap(t,i,s){this.Hi().Qc(this.im(t),this.nm(i),s,p(this.gp))}Fp(){this.Hi().nd()}Hp(){this.mp&&(this.pp=null,this.Fp())}Np(t,i,s){this.pp=t,this.mp=!1,this.Ap(i.x,i.y,s);const e=this.Hi().Wc();this.bp={x:e.Yt(),y:e.Xt()}}Hi(){return this.Mp.$t()}Ep(t){if(!this.up)return;const i=this.Hi(),s=this.Zv();if(i.D_(s,s.dn()),this._p=null,this.up=!1,i.Zc(),this.wp!==null){const e=performance.now(),n=i.St();this.wp.Pr(n.Lu(),e),this.wp.Yu(e)||i.qn(this.wp)}}Op(){this.pp=null}Vp(){if(this.gp){if(this.Hi().Hn(),document.activeElement!==document.body&&document.activeElement!==document.documentElement)p(document.activeElement).blur();else{const t=document.getSelection();t!==null&&t.removeAllRanges()}!this.gp.dn().Ei()&&this.Hi().St().Ei()}}Lp(t){if(this.gp===null)return;const i=this.Hi(),s=i.St();if(s.Ei())return;const e=this.Mp.W(),n=e.handleScroll,r=e.kineticScroll;if((!n.pressedMouseMove||t.cv)&&(!n.horzTouchDrag&&!n.vertTouchDrag||!t.cv))return;const o=this.gp.dn(),l=performance.now();if(this._p!==null||this.tm(t)||(this._p={x:t.clientX,y:t.clientY,yd:l,sm:t.localX,rm:t.localY}),this._p!==null&&!this.up&&(this._p.x!==t.clientX||this._p.y!==t.clientY)){if(t.cv&&r.touch||!t.cv&&r.mouse){const a=s.ee();this.wp=new Ph(.2/a,7/a,.997,15/a),this.wp.Fd(s.Lu(),this._p.yd)}else this.wp=null;o.Ei()||i.P_(this.gp,o,t.localY),i.Xc(t.localX),this.up=!0}this.up&&(o.Ei()||i.R_(this.gp,o,t.localY),i.Kc(t.localX),this.wp!==null&&this.wp.Fd(s.Lu(),l))}}class os{constructor(t,i,s,e,n){this.ft=!0,this.gv=S({width:0,height:0}),this.yv=()=>this.Gv(3),this.Pv=t===\"left\",this.yc=s.ed,this._n=i,this.hm=e,this.lm=n,this.Av=document.createElement(\"div\"),this.Av.style.width=\"25px\",this.Av.style.height=\"100%\",this.Av.style.overflow=\"hidden\",this.Vv=U(this.Av,S({width:16,height:16})),this.Vv.subscribeSuggestedBitmapSizeChanged(this.yv)}S(){this.Vv.unsubscribeSuggestedBitmapSizeChanged(this.yv),Z(this.Vv.canvasElement),this.Vv.dispose()}Hv(){return this.Av}Up(){return this.gv}Xv(t){F(this.gv,t)||(this.gv=t,this.Vv.resizeCanvasElement(t),this.Av.style.width=`${t.width}px`,this.Av.style.height=`${t.height}px`,this.ft=!0)}Gv(t){if(t<3&&!this.ft||this.gv.width===0||this.gv.height===0)return;this.ft=!1,this.Vv.applySuggestedBitmapSize();const i=H(this.Vv);i!==null&&i.useBitmapCoordinateSpace(s=>{this.Qv(s),this.Ae(s)})}ep(){return this.Vv.bitmapSize}rp(t,i,s){const e=this.ep();e.width>0&&e.height>0&&t.drawImage(this.Vv.canvasElement,i,s)}Ae({context:t,bitmapSize:i,horizontalPixelRatio:s,verticalPixelRatio:e}){if(!this.hm())return;t.fillStyle=this._n.timeScale.borderColor;const n=Math.floor(this.yc.W().C*s),r=Math.floor(this.yc.W().C*e),o=this.Pv?i.width-n:0;t.fillRect(o,0,n,r)}Qv({context:t,bitmapSize:i}){Ot(t,0,0,i.width,i.height,this.lm())}}function wi(h){return t=>{var i,s;return(s=(i=t.aa)===null||i===void 0?void 0:i.call(t,h))!==null&&s!==void 0?s:[]}}const $h=wi(\"normal\"),Fh=wi(\"top\"),Hh=wi(\"bottom\");class jh{constructor(t,i){this.am=null,this.om=null,this.k=null,this._m=!1,this.gv=S({width:0,height:0}),this.um=new M,this.xv=new lt(5),this.kv=!1,this.yv=()=>{this.kv||this.Mp.$t().Nh()},this.Tv=()=>{this.kv||this.Mp.$t().Nh()},this.Mp=t,this.N_=i,this._n=t.W().layout,this.dm=document.createElement(\"tr\"),this.fm=document.createElement(\"td\"),this.fm.style.padding=\"0\",this.vm=document.createElement(\"td\"),this.vm.style.padding=\"0\",this.Av=document.createElement(\"td\"),this.Av.style.height=\"25px\",this.Av.style.padding=\"0\",this.pm=document.createElement(\"div\"),this.pm.style.width=\"100%\",this.pm.style.height=\"100%\",this.pm.style.position=\"relative\",this.pm.style.overflow=\"hidden\",this.Av.appendChild(this.pm),this.Vv=U(this.pm,S({width:16,height:16})),this.Vv.subscribeSuggestedBitmapSizeChanged(this.yv);const s=this.Vv.canvasElement;s.style.position=\"absolute\",s.style.zIndex=\"1\",s.style.left=\"0\",s.style.top=\"0\",this.Bv=U(this.pm,S({width:16,height:16})),this.Bv.subscribeSuggestedBitmapSizeChanged(this.Tv);const e=this.Bv.canvasElement;e.style.position=\"absolute\",e.style.zIndex=\"2\",e.style.left=\"0\",e.style.top=\"0\",this.dm.appendChild(this.fm),this.dm.appendChild(this.Av),this.dm.appendChild(this.vm),this.bm(),this.Mp.$t().f_().l(this.bm.bind(this),this),this.jv=new bi(this.Bv.canvasElement,this,{Ff:()=>!0,Wf:()=>!this.Mp.W().handleScroll.horzTouchDrag})}S(){this.jv.S(),this.am!==null&&this.am.S(),this.om!==null&&this.om.S(),this.Bv.unsubscribeSuggestedBitmapSizeChanged(this.Tv),Z(this.Bv.canvasElement),this.Bv.dispose(),this.Vv.unsubscribeSuggestedBitmapSizeChanged(this.yv),Z(this.Vv.canvasElement),this.Vv.dispose()}Hv(){return this.dm}wm(){return this.am}gm(){return this.om}tv(t){if(this._m)return;this._m=!0;const i=this.Mp.$t();!i.St().Ei()&&this.Mp.W().handleScale.axisPressedMouseMove.time&&i.Uc(t.localX)}Jf(t){this.tv(t)}iv(){const t=this.Mp.$t();!t.St().Ei()&&this._m&&(this._m=!1,this.Mp.W().handleScale.axisPressedMouseMove.time&&t.Jc())}$f(t){const i=this.Mp.$t();!i.St().Ei()&&this.Mp.W().handleScale.axisPressedMouseMove.time&&i.Gc(t.localX)}jf(t){this.$f(t)}Xf(){this._m=!1;const t=this.Mp.$t();t.St().Ei()&&!this.Mp.W().handleScale.axisPressedMouseMove.time||t.Jc()}qf(){this.Xf()}Pf(){this.Mp.W().handleScale.axisDoubleClickReset.time&&this.Mp.$t().Xn()}kf(){this.Pf()}If(){this.Mp.$t().W().handleScale.axisPressedMouseMove.time&&this.hp(1)}_v(){this.hp(0)}Up(){return this.gv}Mm(){return this.um}xm(t,i,s){F(this.gv,t)||(this.gv=t,this.kv=!0,this.Vv.resizeCanvasElement(t),this.Bv.resizeCanvasElement(t),this.kv=!1,this.Av.style.width=`${t.width}px`,this.Av.style.height=`${t.height}px`,this.um.m(t)),this.am!==null&&this.am.Xv(S({width:i,height:t.height})),this.om!==null&&this.om.Xv(S({width:s,height:t.height}))}Sm(){const t=this.km();return Math.ceil(t.C+t.T+t.P+t.L+t.V+t.ym)}bt(){this.Mp.$t().St().La()}ep(){return this.Vv.bitmapSize}rp(t,i,s){const e=this.ep();e.width>0&&e.height>0&&t.drawImage(this.Vv.canvasElement,i,s)}Gv(t){if(t===0)return;if(t!==1){this.Vv.applySuggestedBitmapSize();const s=H(this.Vv);s!==null&&(s.useBitmapCoordinateSpace(e=>{this.Qv(e),this.Ae(e),this.Cm(s,Hh)}),this.ip(s),this.Cm(s,$h)),this.am!==null&&this.am.Gv(t),this.om!==null&&this.om.Gv(t)}this.Bv.applySuggestedBitmapSize();const i=H(this.Bv);i!==null&&(i.useBitmapCoordinateSpace(({context:s,bitmapSize:e})=>{s.clearRect(0,0,e.width,e.height)}),this.Tm([...this.Mp.$t().wt(),this.Mp.$t().Wc()],i),this.Cm(i,Fh))}Cm(t,i){const s=this.Mp.$t().wt();for(const e of s)oi(i,n=>ri(n,t,!1,void 0),e,void 0);for(const e of s)oi(i,n=>Mt(n,t,!1,void 0),e,void 0)}Qv({context:t,bitmapSize:i}){Ot(t,0,0,i.width,i.height,this.Mp.$t()._d())}Ae({context:t,bitmapSize:i,verticalPixelRatio:s}){if(this.Mp.W().timeScale.borderVisible){t.fillStyle=this.Pm();const e=Math.max(1,Math.floor(this.km().C*s));t.fillRect(0,0,i.width,e)}}ip(t){const i=this.Mp.$t().St(),s=i.La();if(!s||s.length===0)return;const e=this.N_.maxTickMarkWeight(s),n=this.km(),r=i.W();r.borderVisible&&r.ticksVisible&&t.useBitmapCoordinateSpace(({context:o,horizontalPixelRatio:l,verticalPixelRatio:a})=>{o.strokeStyle=this.Pm(),o.fillStyle=this.Pm();const u=Math.max(1,Math.floor(l)),c=Math.floor(.5*l);o.beginPath();const f=Math.round(n.T*a);for(let d=s.length;d--;){const m=Math.round(s[d].coord*l);o.rect(m-c,0,u,f)}o.fill()}),t.useMediaCoordinateSpace(({context:o})=>{const l=n.C+n.T+n.L+n.P/2;o.textAlign=\"center\",o.textBaseline=\"middle\",o.fillStyle=this.$(),o.font=this.qv();for(const a of s)if(a.weight<e){const u=a.needAlignCoordinate?this.Rm(o,a.coord,a.label):a.coord;o.fillText(a.label,u,l)}this.Mp.W().timeScale.allowBoldLabels&&(o.font=this.Dm());for(const a of s)if(a.weight>=e){const u=a.needAlignCoordinate?this.Rm(o,a.coord,a.label):a.coord;o.fillText(a.label,u,l)}})}Rm(t,i,s){const e=this.xv.Mi(t,s),n=e/2,r=Math.floor(i-n)+.5;return r<0?i+=Math.abs(0-r):r+e>this.gv.width&&(i-=Math.abs(this.gv.width-(r+e))),i}Tm(t,i){const s=this.km();for(const e of t)for(const n of e.Ji())n.gt().K(i,s)}Pm(){return this.Mp.W().timeScale.borderColor}$(){return this._n.textColor}j(){return this._n.fontSize}qv(){return K(this.j(),this._n.fontFamily)}Dm(){return K(this.j(),this._n.fontFamily,\"bold\")}km(){this.k===null&&(this.k={C:1,N:NaN,L:NaN,V:NaN,Wi:NaN,T:5,P:NaN,R:\"\",Fi:new lt,ym:0});const t=this.k,i=this.qv();if(t.R!==i){const s=this.j();t.P=s,t.R=i,t.L=3*s/12,t.V=3*s/12,t.Wi=9*s/12,t.N=0,t.ym=4*s/12,t.Fi.Qe()}return this.k}hp(t){this.Av.style.cursor=t===1?\"ew-resize\":\"default\"}bm(){const t=this.Mp.$t(),i=t.W();i.leftPriceScale.visible||this.am===null||(this.fm.removeChild(this.am.Hv()),this.am.S(),this.am=null),i.rightPriceScale.visible||this.om===null||(this.vm.removeChild(this.om.Hv()),this.om.S(),this.om=null);const s={ed:this.Mp.$t().ed()},e=()=>i.leftPriceScale.borderVisible&&t.St().W().borderVisible,n=()=>t._d();i.leftPriceScale.visible&&this.am===null&&(this.am=new os(\"left\",i,s,e,n),this.fm.appendChild(this.am.Hv())),i.rightPriceScale.visible&&this.om===null&&(this.om=new os(\"right\",i,s,e,n),this.vm.appendChild(this.om.Hv()))}}const Uh=!!G&&!!navigator.userAgentData&&navigator.userAgentData.brands.some(h=>h.brand.includes(\"Chromium\"))&&!!G&&(!((Gt=navigator==null?void 0:navigator.userAgentData)===null||Gt===void 0)&&Gt.platform?navigator.userAgentData.platform===\"Windows\":navigator.userAgent.toLowerCase().indexOf(\"win\")>=0);var Gt;class Zh{constructor(t,i,s){var e;this.Om=[],this.Am=0,this.Qa=0,this.e_=0,this.Vm=0,this.Bm=0,this.Im=null,this.zm=!1,this.cp=new M,this.dp=new M,this.xc=new M,this.Lm=null,this.Em=null,this.Nm=t,this._n=i,this.N_=s,this.dm=document.createElement(\"div\"),this.dm.classList.add(\"tv-lightweight-charts\"),this.dm.style.overflow=\"hidden\",this.dm.style.direction=\"ltr\",this.dm.style.width=\"100%\",this.dm.style.height=\"100%\",(e=this.dm).style.userSelect=\"none\",e.style.webkitUserSelect=\"none\",e.style.msUserSelect=\"none\",e.style.MozUserSelect=\"none\",e.style.webkitTapHighlightColor=\"transparent\",this.Fm=document.createElement(\"table\"),this.Fm.setAttribute(\"cellspacing\",\"0\"),this.dm.appendChild(this.Fm),this.Wm=this.jm.bind(this),ti(this._n)&&this.Hm(!0),this.Hi=new Th(this.kc.bind(this),this._n,s),this.$t().jc().l(this.$m.bind(this),this),this.Um=new jh(this,this.N_),this.Fm.appendChild(this.Um.Hv());const n=i.autoSize&&this.qm();let r=this._n.width,o=this._n.height;if(n||r===0||o===0){const l=t.getBoundingClientRect();r=r||l.width,o=o||l.height}this.Ym(r,o),this.Xm(),t.appendChild(this.dm),this.Km(),this.Hi.St().Gu().l(this.Hi.$l.bind(this.Hi),this),this.Hi.f_().l(this.Hi.$l.bind(this.Hi),this)}$t(){return this.Hi}W(){return this._n}Zm(){return this.Om}Gm(){return this.Um}S(){this.Hm(!1),this.Am!==0&&window.cancelAnimationFrame(this.Am),this.Hi.jc().p(this),this.Hi.St().Gu().p(this),this.Hi.f_().p(this),this.Hi.S();for(const t of this.Om)this.Fm.removeChild(t.Hv()),t.Wp().p(this),t.jp().p(this),t.S();this.Om=[],p(this.Um).S(),this.dm.parentElement!==null&&this.dm.parentElement.removeChild(this.dm),this.xc.S(),this.cp.S(),this.dp.S(),this.Jm()}Ym(t,i,s=!1){if(this.Qa===i&&this.e_===t)return;const e=function(o){const l=Math.floor(o.width),a=Math.floor(o.height);return S({width:l-l%2,height:a-a%2})}(S({width:t,height:i}));this.Qa=e.height,this.e_=e.width;const n=this.Qa+\"px\",r=this.e_+\"px\";p(this.dm).style.height=n,p(this.dm).style.width=r,this.Fm.style.height=n,this.Fm.style.width=r,s?this.Qm(x.ns(),performance.now()):this.Hi.$l()}Gv(t){t===void 0&&(t=x.ns());for(let i=0;i<this.Om.length;i++)this.Om[i].Gv(t.Wn(i).En);this._n.timeScale.visible&&this.Um.Gv(t.Fn())}Eh(t){const i=ti(this._n);this.Hi.Eh(t);const s=ti(this._n);s!==i&&this.Hm(s),this.Km(),this.tb(t)}Wp(){return this.cp}jp(){return this.dp}jc(){return this.xc}ib(){this.Im!==null&&(this.Qm(this.Im,performance.now()),this.Im=null);const t=this.nb(null),i=document.createElement(\"canvas\");i.width=t.width,i.height=t.height;const s=p(i.getContext(\"2d\"));return this.nb(s),i}sb(t){return t===\"left\"&&!this.eb()||t===\"right\"&&!this.rb()||this.Om.length===0?0:p(t===\"left\"?this.Om[0].Gp():this.Om[0].Jp()).Kv()}hb(){return this._n.autoSize&&this.Lm!==null}lb(){return this.dm}Bp(t){this.Em=t,this.Em?this.lb().style.setProperty(\"cursor\",t):this.lb().style.removeProperty(\"cursor\")}ab(){return this.Em}ob(){return O(this.Om[0]).Up()}tb(t){(t.autoSize!==void 0||!this.Lm||t.width===void 0&&t.height===void 0)&&(t.autoSize&&!this.Lm&&this.qm(),t.autoSize===!1&&this.Lm!==null&&this.Jm(),t.autoSize||t.width===void 0&&t.height===void 0||this.Ym(t.width||this.e_,t.height||this.Qa))}nb(t){let i=0,s=0;const e=this.Om[0],n=(o,l)=>{let a=0;for(let u=0;u<this.Om.length;u++){const c=this.Om[u],f=p(o===\"left\"?c.Gp():c.Jp()),d=f.ep();t!==null&&f.rp(t,l,a),a+=d.height}};this.eb()&&(n(\"left\",0),i+=p(e.Gp()).ep().width);for(let o=0;o<this.Om.length;o++){const l=this.Om[o],a=l.ep();t!==null&&l.rp(t,i,s),s+=a.height}i+=e.ep().width,this.rb()&&(n(\"right\",i),i+=p(e.Jp()).ep().width);const r=(o,l,a)=>{p(o===\"left\"?this.Um.wm():this.Um.gm()).rp(p(t),l,a)};if(this._n.timeScale.visible){const o=this.Um.ep();if(t!==null){let l=0;this.eb()&&(r(\"left\",l,s),l=p(e.Gp()).ep().width),this.Um.rp(t,l,s),l+=o.width,this.rb()&&r(\"right\",l,s)}s+=o.height}return S({width:i,height:s})}_b(){let t=0,i=0,s=0;for(const m of this.Om)this.eb()&&(i=Math.max(i,p(m.Gp()).Uv(),this._n.leftPriceScale.minimumWidth)),this.rb()&&(s=Math.max(s,p(m.Jp()).Uv(),this._n.rightPriceScale.minimumWidth)),t+=m.v_();i=ni(i),s=ni(s);const e=this.e_,n=this.Qa,r=Math.max(e-i-s,0),o=this._n.timeScale.visible;let l=o?Math.max(this.Um.Sm(),this._n.timeScale.minimumHeight):0;var a;l=(a=l)+a%2;const u=0+l,c=n<u?0:n-u,f=c/t;let d=0;for(let m=0;m<this.Om.length;++m){const v=this.Om[m];v.Pp(this.Hi.Nc()[m]);let b=0,g=0;g=m===this.Om.length-1?c-d:Math.round(v.v_()*f),b=Math.max(g,2),d+=b,v.Xv(S({width:r,height:b})),this.eb()&&v.$p(i,\"left\"),this.rb()&&v.$p(s,\"right\"),v.Zv()&&this.Hi.Hc(v.Zv(),b)}this.Um.xm(S({width:o?r:0,height:l}),o?i:0,o?s:0),this.Hi.m_(r),this.Vm!==i&&(this.Vm=i),this.Bm!==s&&(this.Bm=s)}Hm(t){t?this.dm.addEventListener(\"wheel\",this.Wm,{passive:!1}):this.dm.removeEventListener(\"wheel\",this.Wm)}ub(t){switch(t.deltaMode){case t.DOM_DELTA_PAGE:return 120;case t.DOM_DELTA_LINE:return 32}return Uh?1/window.devicePixelRatio:1}jm(t){if(!(t.deltaX!==0&&this._n.handleScroll.mouseWheel||t.deltaY!==0&&this._n.handleScale.mouseWheel))return;const i=this.ub(t),s=i*t.deltaX/100,e=-i*t.deltaY/100;if(t.cancelable&&t.preventDefault(),e!==0&&this._n.handleScale.mouseWheel){const n=Math.sign(e)*Math.min(1,Math.abs(e)),r=t.clientX-this.dm.getBoundingClientRect().left;this.$t().qc(r,n)}s!==0&&this._n.handleScroll.mouseWheel&&this.$t().Yc(-80*s)}Qm(t,i){var s;const e=t.Fn();e===3&&this.cb(),e!==3&&e!==2||(this.fb(t),this.vb(t,i),this.Um.bt(),this.Om.forEach(n=>{n.Dp()}),((s=this.Im)===null||s===void 0?void 0:s.Fn())===3&&(this.Im.Jn(t),this.cb(),this.fb(this.Im),this.vb(this.Im,i),t=this.Im,this.Im=null)),this.Gv(t)}vb(t,i){for(const s of t.Gn())this.Qn(s,i)}fb(t){const i=this.Hi.Nc();for(let s=0;s<i.length;s++)t.Wn(s).Nn&&i[s].V_()}Qn(t,i){const s=this.Hi.St();switch(t.$n){case 0:s.Qu();break;case 1:s.tc(t.Ot);break;case 2:s.Kn(t.Ot);break;case 3:s.Zn(t.Ot);break;case 4:s.Fu();break;case 5:t.Ot.Yu(i)||s.Zn(t.Ot.Xu(i))}}kc(t){this.Im!==null?this.Im.Jn(t):this.Im=t,this.zm||(this.zm=!0,this.Am=window.requestAnimationFrame(i=>{if(this.zm=!1,this.Am=0,this.Im!==null){const s=this.Im;this.Im=null,this.Qm(s,i);for(const e of s.Gn())if(e.$n===5&&!e.Ot.Yu(i)){this.$t().qn(e.Ot);break}}}))}cb(){this.Xm()}Xm(){const t=this.Hi.Nc(),i=t.length,s=this.Om.length;for(let e=i;e<s;e++){const n=O(this.Om.pop());this.Fm.removeChild(n.Hv()),n.Wp().p(this),n.jp().p(this),n.S()}for(let e=s;e<i;e++){const n=new gi(this,t[e]);n.Wp().l(this.pb.bind(this),this),n.jp().l(this.mb.bind(this),this),this.Om.push(n),this.Fm.insertBefore(n.Hv(),this.Um.Hv())}for(let e=0;e<i;e++){const n=t[e],r=this.Om[e];r.Zv()!==n?r.Pp(n):r.Tp()}this.Km(),this._b()}bb(t,i,s){var e;const n=new Map;t!==null&&this.Hi.wt().forEach(u=>{const c=u.Vn().il(t);c!==null&&n.set(u,c)});let r;if(t!==null){const u=(e=this.Hi.St().$i(t))===null||e===void 0?void 0:e.originalTime;u!==void 0&&(r=u)}const o=this.$t().Bc(),l=o!==null&&o.zc instanceof vi?o.zc:void 0,a=o!==null&&o.mv!==void 0?o.mv.mr:void 0;return{wb:r,ie:t??void 0,gb:i??void 0,Mb:l,xb:n,Sb:a,kb:s??void 0}}pb(t,i,s){this.cp.m(()=>this.bb(t,i,s))}mb(t,i,s){this.dp.m(()=>this.bb(t,i,s))}$m(t,i,s){this.xc.m(()=>this.bb(t,i,s))}Km(){const t=this._n.timeScale.visible?\"\":\"none\";this.Um.Hv().style.display=t}eb(){return this.Om[0].Zv().S_().W().visible}rb(){return this.Om[0].Zv().k_().W().visible}qm(){return\"ResizeObserver\"in window&&(this.Lm=new ResizeObserver(t=>{const i=t.find(s=>s.target===this.Nm);i&&this.Ym(i.contentRect.width,i.contentRect.height)}),this.Lm.observe(this.Nm,{box:\"border-box\"}),!0)}Jm(){this.Lm!==null&&this.Lm.disconnect(),this.Lm=null}}function ti(h){return!!(h.handleScroll.mouseWheel||h.handleScale.mouseWheel)}function $s(h,t){var i={};for(var s in h)Object.prototype.hasOwnProperty.call(h,s)&&t.indexOf(s)<0&&(i[s]=h[s]);if(h!=null&&typeof Object.getOwnPropertySymbols==\"function\"){var e=0;for(s=Object.getOwnPropertySymbols(h);e<s.length;e++)t.indexOf(s[e])<0&&Object.prototype.propertyIsEnumerable.call(h,s[e])&&(i[s[e]]=h[s[e]])}return i}function ls(h,t,i,s){const e=i.value,n={ie:t,ot:h,Ot:[e,e,e,e],wb:s};return i.color!==void 0&&(n.O=i.color),n}function Yh(h,t,i,s){const e=i.value,n={ie:t,ot:h,Ot:[e,e,e,e],wb:s};return i.lineColor!==void 0&&(n.lt=i.lineColor),i.topColor!==void 0&&(n.ys=i.topColor),i.bottomColor!==void 0&&(n.Cs=i.bottomColor),n}function Qh(h,t,i,s){const e=i.value,n={ie:t,ot:h,Ot:[e,e,e,e],wb:s};return i.topLineColor!==void 0&&(n.Ce=i.topLineColor),i.bottomLineColor!==void 0&&(n.Te=i.bottomLineColor),i.topFillColor1!==void 0&&(n.Me=i.topFillColor1),i.topFillColor2!==void 0&&(n.xe=i.topFillColor2),i.bottomFillColor1!==void 0&&(n.Se=i.bottomFillColor1),i.bottomFillColor2!==void 0&&(n.ke=i.bottomFillColor2),n}function Xh(h,t,i,s){const e={ie:t,ot:h,Ot:[i.open,i.high,i.low,i.close],wb:s};return i.color!==void 0&&(e.O=i.color),e}function qh(h,t,i,s){const e={ie:t,ot:h,Ot:[i.open,i.high,i.low,i.close],wb:s};return i.color!==void 0&&(e.O=i.color),i.borderColor!==void 0&&(e.At=i.borderColor),i.wickColor!==void 0&&(e.Hh=i.wickColor),e}function Jh(h,t,i,s,e){const n=O(e)(i),r=Math.max(...n),o=Math.min(...n),l=n[n.length-1],a=[l,r,o,l],u=i,{time:c,color:f}=u;return{ie:t,ot:h,Ot:a,wb:s,We:$s(u,[\"time\",\"color\"]),O:f}}function yt(h){return h.Ot!==void 0}function as(h,t){return t.customValues!==void 0&&(h.yb=t.customValues),h}function $(h){return(t,i,s,e,n,r)=>function(o,l){return l?l(o):(a=o).open===void 0&&a.value===void 0;var a}(s,r)?as({ot:t,ie:i,wb:e},s):as(h(t,i,s,e,n),s)}function us(h){return{Candlestick:$(qh),Bar:$(Xh),Area:$(Yh),Baseline:$(Qh),Histogram:$(ls),Line:$(ls),Custom:$(Jh)}[h]}function cs(h){return{ie:0,Cb:new Map,ia:h}}function fs(h,t){if(h!==void 0&&h.length!==0)return{Tb:t.key(h[0].ot),Pb:t.key(h[h.length-1].ot)}}function ds(h){let t;return h.forEach(i=>{t===void 0&&(t=i.wb)}),O(t)}class Kh{constructor(t){this.Rb=new Map,this.Db=new Map,this.Ob=new Map,this.Ab=[],this.N_=t}S(){this.Rb.clear(),this.Db.clear(),this.Ob.clear(),this.Ab=[]}Vb(t,i){let s=this.Rb.size!==0,e=!1;const n=this.Db.get(t);if(n!==void 0)if(this.Db.size===1)s=!1,e=!0,this.Rb.clear();else for(const l of this.Ab)l.pointData.Cb.delete(t)&&(e=!0);let r=[];if(i.length!==0){const l=i.map(d=>d.time),a=this.N_.createConverterToInternalObj(i),u=us(t.Yh()),c=t.ga(),f=t.Ma();r=i.map((d,m)=>{const v=a(d.time),b=this.N_.key(v);let g=this.Rb.get(b);g===void 0&&(g=cs(v),this.Rb.set(b,g),e=!0);const w=u(v,g.ie,d,l[m],c,f);return g.Cb.set(t,w),w})}s&&this.Bb(),this.Ib(t,r);let o=-1;if(e){const l=[];this.Rb.forEach(a=>{l.push({timeWeight:0,time:a.ia,pointData:a,originalTime:ds(a.Cb)})}),l.sort((a,u)=>this.N_.key(a.time)-this.N_.key(u.time)),o=this.zb(l)}return this.Lb(t,o,function(l,a,u){const c=fs(l,u),f=fs(a,u);if(c!==void 0&&f!==void 0)return{Xl:c.Pb>=f.Pb&&c.Tb>=f.Tb}}(this.Db.get(t),n,this.N_))}ld(t){return this.Vb(t,[])}Eb(t,i){const s=i;(function(v){v.wb===void 0&&(v.wb=v.time)})(s),this.N_.preprocessData(i);const e=this.N_.createConverterToInternalObj([i])(i.time),n=this.Ob.get(t);if(n!==void 0&&this.N_.key(e)<this.N_.key(n))throw new Error(`Cannot update oldest data, last time=${n}, new time=${e}`);let r=this.Rb.get(this.N_.key(e));const o=r===void 0;r===void 0&&(r=cs(e),this.Rb.set(this.N_.key(e),r));const l=us(t.Yh()),a=t.ga(),u=t.Ma(),c=l(e,r.ie,i,s.wb,a,u);r.Cb.set(t,c),this.Nb(t,c);const f={Xl:yt(c)};if(!o)return this.Lb(t,-1,f);const d={timeWeight:0,time:r.ia,pointData:r,originalTime:ds(r.Cb)},m=ct(this.Ab,this.N_.key(d.time),(v,b)=>this.N_.key(v.time)<b);this.Ab.splice(m,0,d);for(let v=m;v<this.Ab.length;++v)ii(this.Ab[v].pointData,v);return this.N_.fillWeightsForPoints(this.Ab,m),this.Lb(t,m,f)}Nb(t,i){let s=this.Db.get(t);s===void 0&&(s=[],this.Db.set(t,s));const e=s.length!==0?s[s.length-1]:null;e===null||this.N_.key(i.ot)>this.N_.key(e.ot)?yt(i)&&s.push(i):yt(i)?s[s.length-1]=i:s.splice(-1,1),this.Ob.set(t,i.ot)}Ib(t,i){i.length!==0?(this.Db.set(t,i.filter(yt)),this.Ob.set(t,i[i.length-1].ot)):(this.Db.delete(t),this.Ob.delete(t))}Bb(){for(const t of this.Ab)t.pointData.Cb.size===0&&this.Rb.delete(this.N_.key(t.time))}zb(t){let i=-1;for(let s=0;s<this.Ab.length&&s<t.length;++s){const e=this.Ab[s],n=t[s];if(this.N_.key(e.time)!==this.N_.key(n.time)){i=s;break}n.timeWeight=e.timeWeight,ii(n.pointData,s)}if(i===-1&&this.Ab.length!==t.length&&(i=Math.min(this.Ab.length,t.length)),i===-1)return-1;for(let s=i;s<t.length;++s)ii(t[s].pointData,s);return this.N_.fillWeightsForPoints(t,i),this.Ab=t,i}Fb(){if(this.Db.size===0)return null;let t=0;return this.Db.forEach(i=>{i.length!==0&&(t=Math.max(t,i[i.length-1].ie))}),t}Lb(t,i,s){const e={Wb:new Map,St:{Au:this.Fb()}};if(i!==-1)this.Db.forEach((n,r)=>{e.Wb.set(r,{We:n,jb:r===t?s:void 0})}),this.Db.has(t)||e.Wb.set(t,{We:[],jb:s}),e.St.Hb=this.Ab,e.St.$b=i;else{const n=this.Db.get(t);e.Wb.set(t,{We:n||[],jb:s})}return e}}function ii(h,t){h.ie=t,h.Cb.forEach(i=>{i.ie=t})}function _i(h){const t={value:h.Ot[3],time:h.wb};return h.yb!==void 0&&(t.customValues=h.yb),t}function ms(h){const t=_i(h);return h.O!==void 0&&(t.color=h.O),t}function Gh(h){const t=_i(h);return h.lt!==void 0&&(t.lineColor=h.lt),h.ys!==void 0&&(t.topColor=h.ys),h.Cs!==void 0&&(t.bottomColor=h.Cs),t}function tn(h){const t=_i(h);return h.Ce!==void 0&&(t.topLineColor=h.Ce),h.Te!==void 0&&(t.bottomLineColor=h.Te),h.Me!==void 0&&(t.topFillColor1=h.Me),h.xe!==void 0&&(t.topFillColor2=h.xe),h.Se!==void 0&&(t.bottomFillColor1=h.Se),h.ke!==void 0&&(t.bottomFillColor2=h.ke),t}function Fs(h){const t={open:h.Ot[0],high:h.Ot[1],low:h.Ot[2],close:h.Ot[3],time:h.wb};return h.yb!==void 0&&(t.customValues=h.yb),t}function sn(h){const t=Fs(h);return h.O!==void 0&&(t.color=h.O),t}function en(h){const t=Fs(h),{O:i,At:s,Hh:e}=h;return i!==void 0&&(t.color=i),s!==void 0&&(t.borderColor=s),e!==void 0&&(t.wickColor=e),t}function li(h){return{Area:Gh,Line:ms,Baseline:tn,Histogram:ms,Bar:sn,Candlestick:en,Custom:hn}[h]}function hn(h){const t=h.wb;return Object.assign(Object.assign({},h.We),{time:t})}const nn={vertLine:{color:\"#9598A1\",width:1,style:3,visible:!0,labelVisible:!0,labelBackgroundColor:\"#131722\"},horzLine:{color:\"#9598A1\",width:1,style:3,visible:!0,labelVisible:!0,labelBackgroundColor:\"#131722\"},mode:1},rn={vertLines:{color:\"#D6DCDE\",style:0,visible:!0},horzLines:{color:\"#D6DCDE\",style:0,visible:!0}},on={background:{type:\"solid\",color:\"#FFFFFF\"},textColor:\"#191919\",fontSize:12,fontFamily:ai},si={autoScale:!0,mode:0,invertScale:!1,alignLabels:!0,borderVisible:!0,borderColor:\"#2B2B43\",entireTextOnly:!1,visible:!1,ticksVisible:!1,scaleMargins:{bottom:.1,top:.2},minimumWidth:0},ln={rightOffset:0,barSpacing:6,minBarSpacing:.5,fixLeftEdge:!1,fixRightEdge:!1,lockVisibleTimeRangeOnResize:!1,rightBarStaysOnScroll:!1,borderVisible:!0,borderColor:\"#2B2B43\",visible:!0,timeVisible:!1,secondsVisible:!0,shiftVisibleRangeOnNewBar:!0,allowShiftVisibleRangeOnWhitespaceReplacement:!1,ticksVisible:!1,uniformDistribution:!1,minimumHeight:0,allowBoldLabels:!0},an={color:\"rgba(0, 0, 0, 0)\",visible:!1,fontSize:48,fontFamily:ai,fontStyle:\"\",text:\"\",horzAlign:\"center\",vertAlign:\"center\"};function vs(){return{width:0,height:0,autoSize:!1,layout:on,crosshair:nn,grid:rn,overlayPriceScales:Object.assign({},si),leftPriceScale:Object.assign(Object.assign({},si),{visible:!1}),rightPriceScale:Object.assign(Object.assign({},si),{visible:!0}),timeScale:ln,watermark:an,localization:{locale:G?navigator.language:\"\",dateFormat:\"dd MMM 'yy\"},handleScroll:{mouseWheel:!0,pressedMouseMove:!0,horzTouchDrag:!0,vertTouchDrag:!0},handleScale:{axisPressedMouseMove:{time:!0,price:!0},axisDoubleClickReset:{time:!0,price:!0},mouseWheel:!0,pinch:!0},kineticScroll:{mouse:!1,touch:!0},trackingMode:{exitMode:1}}}class un{constructor(t,i){this.Ub=t,this.qb=i}applyOptions(t){this.Ub.$t().Lc(this.qb,t)}options(){return this.zi().W()}width(){return Tt(this.qb)?this.Ub.sb(this.qb):0}zi(){return p(this.Ub.$t().Ec(this.qb)).Dt}}function ps(h,t,i){const s=$s(h,[\"time\",\"originalTime\"]),e=Object.assign({time:t},s);return i!==void 0&&(e.originalTime=i),e}const cn={color:\"#FF0000\",price:0,lineStyle:2,lineWidth:1,lineVisible:!0,axisLabelVisible:!0,title:\"\",axisLabelColor:\"\",axisLabelTextColor:\"\"};class fn{constructor(t){this.Vh=t}applyOptions(t){this.Vh.Eh(t)}options(){return this.Vh.W()}Yb(){return this.Vh}}class dn{constructor(t,i,s,e,n){this.Xb=new M,this.Is=t,this.Kb=i,this.Zb=s,this.N_=n,this.Gb=e}S(){this.Xb.S()}priceFormatter(){return this.Is.ca()}priceToCoordinate(t){const i=this.Is.Ct();return i===null?null:this.Is.Dt().Rt(t,i.Ot)}coordinateToPrice(t){const i=this.Is.Ct();return i===null?null:this.Is.Dt().fn(t,i.Ot)}barsInLogicalRange(t){if(t===null)return null;const i=new J(new nt(t.from,t.to)).iu(),s=this.Is.Vn();if(s.Ei())return null;const e=s.il(i.Rs(),1),n=s.il(i.ui(),-1),r=p(s.Jh()),o=p(s.An());if(e!==null&&n!==null&&e.ie>n.ie)return{barsBefore:t.from-r,barsAfter:o-t.to};const l={barsBefore:e===null||e.ie===r?t.from-r:e.ie-r,barsAfter:n===null||n.ie===o?o-t.to:o-n.ie};return e!==null&&n!==null&&(l.from=e.wb,l.to=n.wb),l}setData(t){this.N_,this.Is.Yh(),this.Kb.Jb(this.Is,t),this.Qb(\"full\")}update(t){this.Is.Yh(),this.Kb.tw(this.Is,t),this.Qb(\"update\")}dataByIndex(t,i){const s=this.Is.Vn().il(t,i);return s===null?null:li(this.seriesType())(s)}data(){const t=li(this.seriesType());return this.Is.Vn().Qs().map(i=>t(i))}subscribeDataChanged(t){this.Xb.l(t)}unsubscribeDataChanged(t){this.Xb.v(t)}setMarkers(t){this.N_;const i=t.map(s=>ps(s,this.N_.convertHorzItemToInternal(s.time),s.time));this.Is.Zl(i)}markers(){return this.Is.Gl().map(t=>ps(t,t.originalTime,void 0))}applyOptions(t){this.Is.Eh(t)}options(){return W(this.Is.W())}priceScale(){return this.Zb.priceScale(this.Is.Dt().xa())}createPriceLine(t){const i=R(W(cn),t),s=this.Is.Jl(i);return new fn(s)}removePriceLine(t){this.Is.Ql(t.Yb())}seriesType(){return this.Is.Yh()}attachPrimitive(t){this.Is.ba(t),t.attached&&t.attached({chart:this.Gb,series:this,requestUpdate:()=>this.Is.$t().$l()})}detachPrimitive(t){this.Is.wa(t),t.detached&&t.detached()}Qb(t){this.Xb.M()&&this.Xb.m(t)}}class mn{constructor(t,i,s){this.iw=new M,this.uu=new M,this.um=new M,this.Hi=t,this.wl=t.St(),this.Um=i,this.wl.Ku().l(this.nw.bind(this)),this.wl.Zu().l(this.sw.bind(this)),this.Um.Mm().l(this.ew.bind(this)),this.N_=s}S(){this.wl.Ku().p(this),this.wl.Zu().p(this),this.Um.Mm().p(this),this.iw.S(),this.uu.S(),this.um.S()}scrollPosition(){return this.wl.Lu()}scrollToPosition(t,i){i?this.wl.qu(t,1e3):this.Hi.Zn(t)}scrollToRealTime(){this.wl.Uu()}getVisibleRange(){const t=this.wl.yu();return t===null?null:{from:t.from.originalTime,to:t.to.originalTime}}setVisibleRange(t){const i={from:this.N_.convertHorzItemToInternal(t.from),to:this.N_.convertHorzItemToInternal(t.to)},s=this.wl.Ru(i);this.Hi.ad(s)}getVisibleLogicalRange(){const t=this.wl.ku();return t===null?null:{from:t.Rs(),to:t.ui()}}setVisibleLogicalRange(t){A(t.from<=t.to,\"The from index cannot be after the to index.\"),this.Hi.ad(t)}resetTimeScale(){this.Hi.Xn()}fitContent(){this.Hi.Qu()}logicalToCoordinate(t){const i=this.Hi.St();return i.Ei()?null:i.It(t)}coordinateToLogical(t){return this.wl.Ei()?null:this.wl.Vu(t)}timeToCoordinate(t){const i=this.N_.convertHorzItemToInternal(t),s=this.wl.ya(i,!1);return s===null?null:this.wl.It(s)}coordinateToTime(t){const i=this.Hi.St(),s=i.Vu(t),e=i.$i(s);return e===null?null:e.originalTime}width(){return this.Um.Up().width}height(){return this.Um.Up().height}subscribeVisibleTimeRangeChange(t){this.iw.l(t)}unsubscribeVisibleTimeRangeChange(t){this.iw.v(t)}subscribeVisibleLogicalRangeChange(t){this.uu.l(t)}unsubscribeVisibleLogicalRangeChange(t){this.uu.v(t)}subscribeSizeChange(t){this.um.l(t)}unsubscribeSizeChange(t){this.um.v(t)}applyOptions(t){this.wl.Eh(t)}options(){return Object.assign(Object.assign({},W(this.wl.W())),{barSpacing:this.wl.ee()})}nw(){this.iw.M()&&this.iw.m(this.getVisibleRange())}sw(){this.uu.M()&&this.uu.m(this.getVisibleLogicalRange())}ew(t){this.um.m(t.width,t.height)}}function vn(h){if(h===void 0||h.type===\"custom\")return;const t=h;t.minMove!==void 0&&t.precision===void 0&&(t.precision=function(i){if(i>=1)return 0;let s=0;for(;s<8;s++){const e=Math.round(i);if(Math.abs(e-i)<1e-8)return s;i*=10}return s}(t.minMove))}function bs(h){return function(t){if(dt(t.handleScale)){const s=t.handleScale;t.handleScale={axisDoubleClickReset:{time:s,price:s},axisPressedMouseMove:{time:s,price:s},mouseWheel:s,pinch:s}}else if(t.handleScale!==void 0){const{axisPressedMouseMove:s,axisDoubleClickReset:e}=t.handleScale;dt(s)&&(t.handleScale.axisPressedMouseMove={time:s,price:s}),dt(e)&&(t.handleScale.axisDoubleClickReset={time:e,price:e})}const i=t.handleScroll;dt(i)&&(t.handleScroll={horzTouchDrag:i,vertTouchDrag:i,mouseWheel:i,pressedMouseMove:i})}(h),h}class pn{constructor(t,i,s){this.rw=new Map,this.hw=new Map,this.lw=new M,this.aw=new M,this.ow=new M,this._w=new Kh(i);const e=s===void 0?W(vs()):R(W(vs()),bs(s));this.N_=i,this.Ub=new Zh(t,e,i),this.Ub.Wp().l(r=>{this.lw.M()&&this.lw.m(this.uw(r()))},this),this.Ub.jp().l(r=>{this.aw.M()&&this.aw.m(this.uw(r()))},this),this.Ub.jc().l(r=>{this.ow.M()&&this.ow.m(this.uw(r()))},this);const n=this.Ub.$t();this.cw=new mn(n,this.Ub.Gm(),this.N_)}remove(){this.Ub.Wp().p(this),this.Ub.jp().p(this),this.Ub.jc().p(this),this.cw.S(),this.Ub.S(),this.rw.clear(),this.hw.clear(),this.lw.S(),this.aw.S(),this.ow.S(),this._w.S()}resize(t,i,s){this.autoSizeActive()||this.Ub.Ym(t,i,s)}addCustomSeries(t,i){const s=X(t),e=Object.assign(Object.assign({},gs),s.defaultOptions());return this.dw(\"Custom\",e,i,s)}addAreaSeries(t){return this.dw(\"Area\",te,t)}addBaselineSeries(t){return this.dw(\"Baseline\",ie,t)}addBarSeries(t){return this.dw(\"Bar\",Ks,t)}addCandlestickSeries(t={}){return function(i){i.borderColor!==void 0&&(i.borderUpColor=i.borderColor,i.borderDownColor=i.borderColor),i.wickColor!==void 0&&(i.wickUpColor=i.wickColor,i.wickDownColor=i.wickColor)}(t),this.dw(\"Candlestick\",Js,t)}addHistogramSeries(t){return this.dw(\"Histogram\",se,t)}addLineSeries(t){return this.dw(\"Line\",Gs,t)}removeSeries(t){const i=O(this.rw.get(t)),s=this._w.ld(i);this.Ub.$t().ld(i),this.fw(s),this.rw.delete(t),this.hw.delete(i)}Jb(t,i){this.fw(this._w.Vb(t,i))}tw(t,i){this.fw(this._w.Eb(t,i))}subscribeClick(t){this.lw.l(t)}unsubscribeClick(t){this.lw.v(t)}subscribeCrosshairMove(t){this.ow.l(t)}unsubscribeCrosshairMove(t){this.ow.v(t)}subscribeDblClick(t){this.aw.l(t)}unsubscribeDblClick(t){this.aw.v(t)}priceScale(t){return new un(this.Ub,t)}timeScale(){return this.cw}applyOptions(t){this.Ub.Eh(bs(t))}options(){return this.Ub.W()}takeScreenshot(){return this.Ub.ib()}autoSizeActive(){return this.Ub.hb()}chartElement(){return this.Ub.lb()}paneSize(){const t=this.Ub.ob();return{height:t.height,width:t.width}}setCrosshairPosition(t,i,s){const e=this.rw.get(s);if(e===void 0)return;const n=this.Ub.$t()._r(e);n!==null&&this.Ub.$t().td(t,i,n)}clearCrosshairPosition(){this.Ub.$t().nd(!0)}dw(t,i,s={},e){vn(s.priceFormat);const n=R(W(ws),W(i),s),r=this.Ub.$t().rd(t,n,e),o=new dn(r,this,this,this,this.N_);return this.rw.set(o,r),this.hw.set(r,o),o}fw(t){const i=this.Ub.$t();i.sd(t.St.Au,t.St.Hb,t.St.$b),t.Wb.forEach((s,e)=>e.J(s.We,s.jb)),i.Iu()}pw(t){return O(this.hw.get(t))}uw(t){const i=new Map;t.xb.forEach((e,n)=>{const r=n.Yh(),o=li(r)(e);if(r!==\"Custom\")A(function(l){return l.open!==void 0||l.value!==void 0}(o));else{const l=n.Ma();A(!l||l(o)===!1)}i.set(this.pw(n),o)});const s=t.Mb===void 0?void 0:this.pw(t.Mb);return{time:t.wb,logical:t.ie,point:t.gb,hoveredSeries:s,hoveredObjectId:t.Sb,seriesData:i,sourceEvent:t.kb}}}function bn(h,t,i){let s;if(ut(h)){const n=document.getElementById(h);A(n!==null,`Cannot find element in DOM with id=${h}`),s=n}else s=h;const e=new pn(s,t,i);return t.setOptions(e.options()),e}function gn(h,t){return bn(h,new es,es.Pd(t))}Object.assign(Object.assign({},ws),gs);const wn={width:800,height:300,rightPriceScale:{borderColor:\"rgba(197, 203, 206, 1)\"},timeScale:{borderColor:\"rgba(197, 203, 206, 1)\",timeVisible:!0,secondsVisible:!1}},_n={chart:{layout:{background:{color:\"#ffffff\"},textColor:\"rgba(33, 56, 77, 1)\"},grid:{vertLines:{color:\"#f1f1f1\",visible:!1},horzLines:{color:\"#f1f1f1\",visible:!1}},rightPriceScale:{borderColor:\"rgba(197, 203, 206, 0.6)\"},timeScale:{borderColor:\"rgba(197, 203, 206, 0.6)\",timeVisible:!0,secondsVisible:!1}},series:{color:\"#4f46e5\"}},Sn={chart:{layout:{background:{color:\"rgb(28 25 23)\"},textColor:\"#D1D5DB\"},grid:{vertLines:{color:\"#525252\",visible:!1},horzLines:{color:\"#525252\",visible:!1}},rightPriceScale:{borderColor:\"#525252\"},timeScale:{borderColor:\"#525252\",timeVisible:!0,secondsVisible:!1}},series:{color:\"#818CF8\"}};export{gn as T,Ri as a,Sn as d,_n as l,wn as s};\n"
  },
  {
    "path": "jesse/static/_nuxt/B-DoSBHF.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Erlang\",\"fileTypes\":[\"erl\",\"escript\",\"hrl\",\"xrl\",\"yrl\"],\"name\":\"erlang\",\"patterns\":[{\"include\":\"#module-directive\"},{\"include\":\"#import-export-directive\"},{\"include\":\"#behaviour-directive\"},{\"include\":\"#record-directive\"},{\"include\":\"#define-directive\"},{\"include\":\"#macro-directive\"},{\"include\":\"#directive\"},{\"include\":\"#function\"},{\"include\":\"#everything-else\"}],\"repository\":{\"atom\":{\"patterns\":[{\"begin\":\"(')\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.symbol.begin.erlang\"}},\"end\":\"(')\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.symbol.end.erlang\"}},\"name\":\"constant.other.symbol.quoted.single.erlang\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.escape.erlang\"},\"3\":{\"name\":\"punctuation.definition.escape.erlang\"}},\"match\":\"(\\\\\\\\\\\\\\\\)([bdefnrstv\\\\\\\\\\\\\\\\'\\\\\"]|(\\\\\\\\^)[@-_a-z]|[0-7]{1,3}|x[\\\\\\\\da-fA-F]{2})\",\"name\":\"constant.other.symbol.escape.erlang\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\^?.?\",\"name\":\"invalid.illegal.atom.erlang\"}]},{\"match\":\"[a-z][a-zA-Z\\\\\\\\d@_]*+\",\"name\":\"constant.other.symbol.unquoted.erlang\"}]},\"behaviour-directive\":{\"captures\":{\"1\":{\"name\":\"punctuation.section.directive.begin.erlang\"},\"2\":{\"name\":\"keyword.control.directive.behaviour.erlang\"},\"3\":{\"name\":\"punctuation.definition.parameters.begin.erlang\"},\"4\":{\"name\":\"entity.name.type.class.behaviour.definition.erlang\"},\"5\":{\"name\":\"punctuation.definition.parameters.end.erlang\"},\"6\":{\"name\":\"punctuation.section.directive.end.erlang\"}},\"match\":\"^\\\\\\\\s*+(-)\\\\\\\\s*+(behaviour)\\\\\\\\s*+(\\\\\\\\()\\\\\\\\s*+([a-z][a-zA-Z\\\\\\\\d@_]*+)\\\\\\\\s*+(\\\\\\\\))\\\\\\\\s*+(\\\\\\\\.)\",\"name\":\"meta.directive.behaviour.erlang\"},\"binary\":{\"begin\":\"(<<)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.binary.begin.erlang\"}},\"end\":\"(>>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.binary.end.erlang\"}},\"name\":\"meta.structure.binary.erlang\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.binary.erlang\"},\"2\":{\"name\":\"punctuation.separator.value-size.erlang\"}},\"match\":\"(,)|(:)\"},{\"include\":\"#internal-type-specifiers\"},{\"include\":\"#everything-else\"}]},\"character\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.character.erlang\"},\"2\":{\"name\":\"constant.character.escape.erlang\"},\"3\":{\"name\":\"punctuation.definition.escape.erlang\"},\"5\":{\"name\":\"punctuation.definition.escape.erlang\"}},\"match\":\"(\\\\\\\\$)((\\\\\\\\\\\\\\\\)([bdefnrstv\\\\\\\\\\\\\\\\'\\\\\"]|(\\\\\\\\^)[@-_a-z]|[0-7]{1,3}|x[\\\\\\\\da-fA-F]{2}))\",\"name\":\"constant.character.erlang\"},{\"match\":\"\\\\\\\\$\\\\\\\\\\\\\\\\\\\\\\\\^?.?\",\"name\":\"invalid.illegal.character.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.character.erlang\"}},\"match\":\"(\\\\\\\\$)[ \\\\\\\\S]\",\"name\":\"constant.character.erlang\"},{\"match\":\"\\\\\\\\$.?\",\"name\":\"invalid.illegal.character.erlang\"}]},\"comment\":{\"begin\":\"(^[ \\\\\\\\t]+)?(?=%)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.erlang\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"%\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.erlang\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.percentage.erlang\"}]},\"define-directive\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*+(-)\\\\\\\\s*+(define)\\\\\\\\s*+(\\\\\\\\()\\\\\\\\s*+([a-zA-Z\\\\\\\\d@_]++)\\\\\\\\s*+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.directive.begin.erlang\"},\"2\":{\"name\":\"keyword.control.directive.define.erlang\"},\"3\":{\"name\":\"punctuation.definition.parameters.begin.erlang\"},\"4\":{\"name\":\"entity.name.function.macro.definition.erlang\"}},\"end\":\"(\\\\\\\\))\\\\\\\\s*+(\\\\\\\\.)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.erlang\"},\"2\":{\"name\":\"punctuation.section.directive.end.erlang\"}},\"name\":\"meta.directive.define.erlang\",\"patterns\":[{\"include\":\"#everything-else\"}]},{\"begin\":\"(?=^\\\\\\\\s*+-\\\\\\\\s*+define\\\\\\\\s*+\\\\\\\\(\\\\\\\\s*+[a-zA-Z\\\\\\\\d@_]++\\\\\\\\s*+\\\\\\\\()\",\"end\":\"(\\\\\\\\))\\\\\\\\s*+(\\\\\\\\.)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.erlang\"},\"2\":{\"name\":\"punctuation.section.directive.end.erlang\"}},\"name\":\"meta.directive.define.erlang\",\"patterns\":[{\"begin\":\"^\\\\\\\\s*+(-)\\\\\\\\s*+(define)\\\\\\\\s*+(\\\\\\\\()\\\\\\\\s*+([a-zA-Z\\\\\\\\d@_]++)\\\\\\\\s*+(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.directive.begin.erlang\"},\"2\":{\"name\":\"keyword.control.directive.define.erlang\"},\"3\":{\"name\":\"punctuation.definition.parameters.begin.erlang\"},\"4\":{\"name\":\"entity.name.function.macro.definition.erlang\"},\"5\":{\"name\":\"punctuation.definition.parameters.begin.erlang\"}},\"end\":\"(\\\\\\\\))\\\\\\\\s*(,)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.erlang\"},\"2\":{\"name\":\"punctuation.separator.parameters.erlang\"}},\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.separator.parameters.erlang\"},{\"include\":\"#everything-else\"}]},{\"match\":\"\\\\\\\\|\\\\\\\\||\\\\\\\\||:|;|,|\\\\\\\\.|->\",\"name\":\"punctuation.separator.define.erlang\"},{\"include\":\"#everything-else\"}]}]},\"directive\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*+(-)\\\\\\\\s*+([a-z][a-zA-Z\\\\\\\\d@_]*+)\\\\\\\\s*+(\\\\\\\\(?)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.directive.begin.erlang\"},\"2\":{\"name\":\"keyword.control.directive.erlang\"},\"3\":{\"name\":\"punctuation.definition.parameters.begin.erlang\"}},\"end\":\"(\\\\\\\\)?)\\\\\\\\s*+(\\\\\\\\.)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.erlang\"},\"2\":{\"name\":\"punctuation.section.directive.end.erlang\"}},\"name\":\"meta.directive.erlang\",\"patterns\":[{\"include\":\"#everything-else\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.section.directive.begin.erlang\"},\"2\":{\"name\":\"keyword.control.directive.erlang\"},\"3\":{\"name\":\"punctuation.section.directive.end.erlang\"}},\"match\":\"^\\\\\\\\s*+(-)\\\\\\\\s*+([a-z][a-zA-Z\\\\\\\\d@_]*+)\\\\\\\\s*+(\\\\\\\\.)\",\"name\":\"meta.directive.erlang\"}]},\"docstring\":{\"begin\":\"(?<!\\\\\")(([\\\\\"]{3,})\\\\\\\\s*)(\\\\\\\\S.*)?$\",\"beginCaptures\":{\"1\":{\"name\":\"meta.string.quoted.triple.begin.erlang\"},\"2\":{\"name\":\"punctuation.definition.string.begin.erlang\"},\"3\":{\"name\":\"invalid.illegal.string.erlang\"}},\"comment\":\"Only whitespace characters are allowed after the beggining and before the closing sequences and those cannot be in the same line\",\"end\":\"^(\\\\\\\\s*(\\\\\\\\2))(?!\\\\\")\",\"endCaptures\":{\"1\":{\"name\":\"meta.string.quoted.triple.end.erlang\"},\"2\":{\"name\":\"punctuation.definition.string.end.erlang\"}},\"name\":\"string.quoted.triple.erlang\"},\"everything-else\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#record-usage\"},{\"include\":\"#macro-usage\"},{\"include\":\"#expression\"},{\"include\":\"#keyword\"},{\"include\":\"#textual-operator\"},{\"include\":\"#language-constant\"},{\"include\":\"#function-call\"},{\"include\":\"#tuple\"},{\"include\":\"#list\"},{\"include\":\"#binary\"},{\"include\":\"#parenthesized-expression\"},{\"include\":\"#character\"},{\"include\":\"#number\"},{\"include\":\"#atom\"},{\"include\":\"#sigil-docstring\"},{\"include\":\"#sigil-string\"},{\"include\":\"#docstring\"},{\"include\":\"#string\"},{\"include\":\"#symbolic-operator\"},{\"include\":\"#variable\"}]},\"expression\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(if)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.if.erlang\"}},\"end\":\"\\\\\\\\b(end)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end.erlang\"}},\"name\":\"meta.expression.if.erlang\",\"patterns\":[{\"include\":\"#internal-expression-punctuation\"},{\"include\":\"#everything-else\"}]},{\"begin\":\"\\\\\\\\b(case)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.case.erlang\"}},\"end\":\"\\\\\\\\b(end)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end.erlang\"}},\"name\":\"meta.expression.case.erlang\",\"patterns\":[{\"include\":\"#internal-expression-punctuation\"},{\"include\":\"#everything-else\"}]},{\"begin\":\"\\\\\\\\b(receive)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.receive.erlang\"}},\"end\":\"\\\\\\\\b(end)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end.erlang\"}},\"name\":\"meta.expression.receive.erlang\",\"patterns\":[{\"include\":\"#internal-expression-punctuation\"},{\"include\":\"#everything-else\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.fun.erlang\"},\"4\":{\"name\":\"entity.name.type.class.module.erlang\"},\"5\":{\"name\":\"variable.other.erlang\"},\"6\":{\"name\":\"punctuation.separator.module-function.erlang\"},\"8\":{\"name\":\"entity.name.function.erlang\"},\"9\":{\"name\":\"variable.other.erlang\"},\"10\":{\"name\":\"punctuation.separator.function-arity.erlang\"}},\"comment\":\"Implicit function expression with optional module qualifier when both module and function can be atom or variable\",\"match\":\"\\\\\\\\b(fun)\\\\\\\\s+((([a-z][a-zA-Z\\\\\\\\d@_]*+)|(_[a-zA-Z\\\\\\\\d@_]++|[A-Z][a-zA-Z\\\\\\\\d@_]*+))\\\\\\\\s*+(:)\\\\\\\\s*+)?(([a-z][a-zA-Z\\\\\\\\d@_]*+|'[^']*+')|(_[a-zA-Z\\\\\\\\d@_]++|[A-Z][a-zA-Z\\\\\\\\d@_]*+))\\\\\\\\s*(/)\",\"name\":\"meta.expression.fun.implicit.erlang\"},{\"begin\":\"\\\\\\\\b(fun)\\\\\\\\s+(([a-z][a-zA-Z\\\\\\\\d@_]*+)|(_[a-zA-Z\\\\\\\\d@_]++|[A-Z][a-zA-Z\\\\\\\\d@_]*+))\\\\\\\\s*+(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.fun.erlang\"},\"3\":{\"name\":\"entity.name.type.class.module.erlang\"},\"4\":{\"name\":\"variable.other.erlang\"},\"5\":{\"name\":\"punctuation.separator.module-function.erlang\"}},\"comment\":\"Implicit function expression with module qualifier when module can be atom or variable and function can by anything\",\"end\":\"(/)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.function-arity.erlang\"}},\"name\":\"meta.expression.fun.implicit.erlang\",\"patterns\":[{\"include\":\"#everything-else\"}]},{\"begin\":\"\\\\\\\\b(fun)\\\\\\\\s+(?!\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.fun.erlang\"}},\"comment\":\"Implicit function expression when both module and function can by anything\",\"end\":\"(/)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.function-arity.erlang\"}},\"name\":\"meta.expression.fun.implicit.erlang\",\"patterns\":[{\"include\":\"#everything-else\"}]},{\"begin\":\"\\\\\\\\b(fun)\\\\\\\\s*+(\\\\\\\\()(?=(\\\\\\\\s*+\\\\\\\\()|(\\\\\\\\)))\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.erlang\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.erlang\"}},\"comment\":\"Function type in type specification\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.erlang\"}},\"patterns\":[{\"include\":\"#everything-else\"}]},{\"begin\":\"\\\\\\\\b(fun)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.fun.erlang\"}},\"comment\":\"Explicit function expression\",\"end\":\"\\\\\\\\b(end)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end.erlang\"}},\"name\":\"meta.expression.fun.erlang\",\"patterns\":[{\"begin\":\"(?=\\\\\\\\()\",\"end\":\"(;)|(?=\\\\\\\\bend\\\\\\\\b)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.clauses.erlang\"}},\"patterns\":[{\"include\":\"#internal-function-parts\"}]},{\"include\":\"#everything-else\"}]},{\"begin\":\"\\\\\\\\b(try)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.try.erlang\"}},\"end\":\"\\\\\\\\b(end)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end.erlang\"}},\"name\":\"meta.expression.try.erlang\",\"patterns\":[{\"include\":\"#internal-expression-punctuation\"},{\"include\":\"#everything-else\"}]},{\"begin\":\"\\\\\\\\b(begin)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.begin.erlang\"}},\"end\":\"\\\\\\\\b(end)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end.erlang\"}},\"name\":\"meta.expression.begin.erlang\",\"patterns\":[{\"include\":\"#internal-expression-punctuation\"},{\"include\":\"#everything-else\"}]},{\"begin\":\"\\\\\\\\b(maybe)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.maybe.erlang\"}},\"end\":\"\\\\\\\\b(end)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end.erlang\"}},\"name\":\"meta.expression.maybe.erlang\",\"patterns\":[{\"include\":\"#internal-expression-punctuation\"},{\"include\":\"#everything-else\"}]}]},\"function\":{\"begin\":\"^\\\\\\\\s*+([a-z][a-zA-Z\\\\\\\\d@_]*+|'[^']*+')\\\\\\\\s*+(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.definition.erlang\"}},\"end\":\"(\\\\\\\\.)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.function.erlang\"}},\"name\":\"meta.function.erlang\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.function.erlang\"}},\"match\":\"^\\\\\\\\s*+([a-z][a-zA-Z\\\\\\\\d@_]*+|'[^']*+')\\\\\\\\s*+(?=\\\\\\\\()\"},{\"begin\":\"(?=\\\\\\\\()\",\"end\":\"(;)|(?=\\\\\\\\.)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.clauses.erlang\"}},\"patterns\":[{\"include\":\"#parenthesized-expression\"},{\"include\":\"#internal-function-parts\"}]},{\"include\":\"#everything-else\"}]},\"function-call\":{\"begin\":\"(?=([a-z][a-zA-Z\\\\\\\\d@_]*+|'[^']*+'|_[a-zA-Z\\\\\\\\d@_]++|[A-Z][a-zA-Z\\\\\\\\d@_]*+)\\\\\\\\s*+(\\\\\\\\(|:\\\\\\\\s*+([a-z][a-zA-Z\\\\\\\\d@_]*+|'[^']*+'|_[a-zA-Z\\\\\\\\d@_]++|[A-Z][a-zA-Z\\\\\\\\d@_]*+)\\\\\\\\s*+\\\\\\\\())\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.erlang\"}},\"name\":\"meta.function-call.erlang\",\"patterns\":[{\"begin\":\"((erlang)\\\\\\\\s*+(:)\\\\\\\\s*+)?(is_atom|is_binary|is_constant|is_float|is_function|is_integer|is_list|is_number|is_pid|is_port|is_reference|is_tuple|is_record|abs|element|hd|length|node|round|self|size|tl|trunc)\\\\\\\\s*+(\\\\\\\\()\",\"beginCaptures\":{\"2\":{\"name\":\"entity.name.type.class.module.erlang\"},\"3\":{\"name\":\"punctuation.separator.module-function.erlang\"},\"4\":{\"name\":\"entity.name.function.guard.erlang\"},\"5\":{\"name\":\"punctuation.definition.parameters.begin.erlang\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.separator.parameters.erlang\"},{\"include\":\"#everything-else\"}]},{\"begin\":\"((([a-z][a-zA-Z\\\\\\\\d@_]*+|'[^']*+')|(_[a-zA-Z\\\\\\\\d@_]++|[A-Z][a-zA-Z\\\\\\\\d@_]*+))\\\\\\\\s*+(:)\\\\\\\\s*+)?(([a-z][a-zA-Z\\\\\\\\d@_]*+|'[^']*+')|(_[a-zA-Z\\\\\\\\d@_]++|[A-Z][a-zA-Z\\\\\\\\d@_]*+))\\\\\\\\s*+(\\\\\\\\()\",\"beginCaptures\":{\"3\":{\"name\":\"entity.name.type.class.module.erlang\"},\"4\":{\"name\":\"variable.other.erlang\"},\"5\":{\"name\":\"punctuation.separator.module-function.erlang\"},\"7\":{\"name\":\"entity.name.function.erlang\"},\"8\":{\"name\":\"variable.other.erlang\"},\"9\":{\"name\":\"punctuation.definition.parameters.begin.erlang\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.separator.parameters.erlang\"},{\"include\":\"#everything-else\"}]}]},\"import-export-directive\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*+(-)\\\\\\\\s*+(import)\\\\\\\\s*+(\\\\\\\\()\\\\\\\\s*+([a-z][a-zA-Z\\\\\\\\d@_]*+|'[^']*+')\\\\\\\\s*+(,)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.directive.begin.erlang\"},\"2\":{\"name\":\"keyword.control.directive.import.erlang\"},\"3\":{\"name\":\"punctuation.definition.parameters.begin.erlang\"},\"4\":{\"name\":\"entity.name.type.class.module.erlang\"},\"5\":{\"name\":\"punctuation.separator.parameters.erlang\"}},\"end\":\"(\\\\\\\\))\\\\\\\\s*+(\\\\\\\\.)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.erlang\"},\"2\":{\"name\":\"punctuation.section.directive.end.erlang\"}},\"name\":\"meta.directive.import.erlang\",\"patterns\":[{\"include\":\"#internal-function-list\"}]},{\"begin\":\"^\\\\\\\\s*+(-)\\\\\\\\s*+(export)\\\\\\\\s*+(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.directive.begin.erlang\"},\"2\":{\"name\":\"keyword.control.directive.export.erlang\"},\"3\":{\"name\":\"punctuation.definition.parameters.begin.erlang\"}},\"end\":\"(\\\\\\\\))\\\\\\\\s*+(\\\\\\\\.)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.erlang\"},\"2\":{\"name\":\"punctuation.section.directive.end.erlang\"}},\"name\":\"meta.directive.export.erlang\",\"patterns\":[{\"include\":\"#internal-function-list\"}]}]},\"internal-expression-punctuation\":{\"captures\":{\"1\":{\"name\":\"punctuation.separator.clause-head-body.erlang\"},\"2\":{\"name\":\"punctuation.separator.clauses.erlang\"},\"3\":{\"name\":\"punctuation.separator.expressions.erlang\"}},\"match\":\"(->)|(;)|(,)\"},\"internal-function-list\":{\"begin\":\"(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.list.begin.erlang\"}},\"end\":\"(\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.list.end.erlang\"}},\"name\":\"meta.structure.list.function.erlang\",\"patterns\":[{\"begin\":\"([a-z][a-zA-Z\\\\\\\\d@_]*+|'[^']*+')\\\\\\\\s*+(/)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.erlang\"},\"2\":{\"name\":\"punctuation.separator.function-arity.erlang\"}},\"end\":\"(,)|(?=\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.list.erlang\"}},\"patterns\":[{\"include\":\"#everything-else\"}]},{\"include\":\"#everything-else\"}]},\"internal-function-parts\":{\"patterns\":[{\"begin\":\"(?=\\\\\\\\()\",\"end\":\"(->)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.clause-head-body.erlang\"}},\"patterns\":[{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.begin.erlang\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.erlang\"}},\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.separator.parameters.erlang\"},{\"include\":\"#everything-else\"}]},{\"match\":\",|;\",\"name\":\"punctuation.separator.guards.erlang\"},{\"include\":\"#everything-else\"}]},{\"match\":\",\",\"name\":\"punctuation.separator.expressions.erlang\"},{\"include\":\"#everything-else\"}]},\"internal-record-body\":{\"begin\":\"(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.class.record.begin.erlang\"}},\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.class.record.end.erlang\"}},\"name\":\"meta.structure.record.erlang\",\"patterns\":[{\"begin\":\"(([a-z][a-zA-Z\\\\\\\\d@_]*+|'[^']*+')|(_))\",\"beginCaptures\":{\"2\":{\"name\":\"variable.other.field.erlang\"},\"3\":{\"name\":\"variable.language.omitted.field.erlang\"}},\"end\":\"(,)|(?=\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.class.record.erlang\"}},\"patterns\":[{\"include\":\"#everything-else\"}]},{\"include\":\"#everything-else\"}]},\"internal-string-body\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.escape.erlang\"},\"3\":{\"name\":\"punctuation.definition.escape.erlang\"}},\"comment\":\"escape sequence\",\"match\":\"(\\\\\\\\\\\\\\\\)([bdefnrstv\\\\\\\\\\\\\\\\'\\\\\"]|(\\\\\\\\^)[@-_a-z]|[0-7]{1,3}|x[\\\\\\\\da-fA-F]{2})\",\"name\":\"constant.character.escape.erlang\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\^?.?\",\"name\":\"invalid.illegal.string.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.placeholder.erlang\"},\"6\":{\"name\":\"punctuation.separator.placeholder-parts.erlang\"},\"10\":{\"name\":\"punctuation.separator.placeholder-parts.erlang\"}},\"comment\":\"io:fwrite format control sequence\",\"match\":\"(~)((\\\\\\\\-)?\\\\\\\\d++|(\\\\\\\\*))?((\\\\\\\\.)(\\\\\\\\d++|(\\\\\\\\*))?((\\\\\\\\.)((\\\\\\\\*)|.))?)?[tlkK]*[~cfegswpWPBX#bx\\\\\\\\+ni]\",\"name\":\"constant.character.format.placeholder.other.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.placeholder.erlang\"}},\"comment\":\"io:fread format control sequence\",\"match\":\"(~)(\\\\\\\\*)?(\\\\\\\\d++)?(t)?[~du\\\\\\\\-#fsacl]\",\"name\":\"constant.character.format.placeholder.other.erlang\"},{\"match\":\"~[^\\\\\"]?\",\"name\":\"invalid.illegal.string.erlang\"}]},\"internal-type-specifiers\":{\"begin\":\"(/)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.value-type.erlang\"}},\"end\":\"(?=,|:|>>)\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.erlang\"},\"2\":{\"name\":\"storage.modifier.signedness.erlang\"},\"3\":{\"name\":\"storage.modifier.endianness.erlang\"},\"4\":{\"name\":\"storage.modifier.unit.erlang\"},\"5\":{\"name\":\"punctuation.separator.unit-specifiers.erlang\"},\"6\":{\"name\":\"constant.numeric.integer.decimal.erlang\"},\"7\":{\"name\":\"punctuation.separator.type-specifiers.erlang\"}},\"match\":\"(integer|float|binary|bytes|bitstring|bits|utf8|utf16|utf32)|(signed|unsigned)|(big|little|native)|(unit)(:)(\\\\\\\\d++)|(-)\"}]},\"keyword\":{\"match\":\"\\\\\\\\b(after|begin|case|catch|cond|end|fun|if|let|of|try|receive|when|maybe|else)\\\\\\\\b\",\"name\":\"keyword.control.erlang\"},\"language-constant\":{\"match\":\"\\\\\\\\b(false|true|undefined)\\\\\\\\b\",\"name\":\"constant.language\"},\"list\":{\"begin\":\"(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.list.begin.erlang\"}},\"end\":\"(\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.list.end.erlang\"}},\"name\":\"meta.structure.list.erlang\",\"patterns\":[{\"match\":\"\\\\\\\\||\\\\\\\\|\\\\\\\\||,\",\"name\":\"punctuation.separator.list.erlang\"},{\"include\":\"#everything-else\"}]},\"macro-directive\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.section.directive.begin.erlang\"},\"2\":{\"name\":\"keyword.control.directive.ifdef.erlang\"},\"3\":{\"name\":\"punctuation.definition.parameters.begin.erlang\"},\"4\":{\"name\":\"entity.name.function.macro.erlang\"},\"5\":{\"name\":\"punctuation.definition.parameters.end.erlang\"},\"6\":{\"name\":\"punctuation.section.directive.end.erlang\"}},\"match\":\"^\\\\\\\\s*+(-)\\\\\\\\s*+(ifdef)\\\\\\\\s*+(\\\\\\\\()\\\\\\\\s*+([a-zA-z\\\\\\\\d@_]++)\\\\\\\\s*+(\\\\\\\\))\\\\\\\\s*+(\\\\\\\\.)\",\"name\":\"meta.directive.ifdef.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.section.directive.begin.erlang\"},\"2\":{\"name\":\"keyword.control.directive.ifndef.erlang\"},\"3\":{\"name\":\"punctuation.definition.parameters.begin.erlang\"},\"4\":{\"name\":\"entity.name.function.macro.erlang\"},\"5\":{\"name\":\"punctuation.definition.parameters.end.erlang\"},\"6\":{\"name\":\"punctuation.section.directive.end.erlang\"}},\"match\":\"^\\\\\\\\s*+(-)\\\\\\\\s*+(ifndef)\\\\\\\\s*+(\\\\\\\\()\\\\\\\\s*+([a-zA-z\\\\\\\\d@_]++)\\\\\\\\s*+(\\\\\\\\))\\\\\\\\s*+(\\\\\\\\.)\",\"name\":\"meta.directive.ifndef.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.section.directive.begin.erlang\"},\"2\":{\"name\":\"keyword.control.directive.undef.erlang\"},\"3\":{\"name\":\"punctuation.definition.parameters.begin.erlang\"},\"4\":{\"name\":\"entity.name.function.macro.erlang\"},\"5\":{\"name\":\"punctuation.definition.parameters.end.erlang\"},\"6\":{\"name\":\"punctuation.section.directive.end.erlang\"}},\"match\":\"^\\\\\\\\s*+(-)\\\\\\\\s*+(undef)\\\\\\\\s*+(\\\\\\\\()\\\\\\\\s*+([a-zA-z\\\\\\\\d@_]++)\\\\\\\\s*+(\\\\\\\\))\\\\\\\\s*+(\\\\\\\\.)\",\"name\":\"meta.directive.undef.erlang\"}]},\"macro-usage\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.macro.erlang\"},\"2\":{\"name\":\"entity.name.function.macro.erlang\"}},\"match\":\"(\\\\\\\\?\\\\\\\\??)\\\\\\\\s*+([a-zA-Z\\\\\\\\d@_]++)\",\"name\":\"meta.macro-usage.erlang\"},\"module-directive\":{\"captures\":{\"1\":{\"name\":\"punctuation.section.directive.begin.erlang\"},\"2\":{\"name\":\"keyword.control.directive.module.erlang\"},\"3\":{\"name\":\"punctuation.definition.parameters.begin.erlang\"},\"4\":{\"name\":\"entity.name.type.class.module.definition.erlang\"},\"5\":{\"name\":\"punctuation.definition.parameters.end.erlang\"},\"6\":{\"name\":\"punctuation.section.directive.end.erlang\"}},\"match\":\"^\\\\\\\\s*+(-)\\\\\\\\s*+(module)\\\\\\\\s*+(\\\\\\\\()\\\\\\\\s*+([a-z][a-zA-Z\\\\\\\\d@_]*+)\\\\\\\\s*+(\\\\\\\\))\\\\\\\\s*+(\\\\\\\\.)\",\"name\":\"meta.directive.module.erlang\"},\"number\":{\"begin\":\"(?=\\\\\\\\d)\",\"end\":\"(?!\\\\\\\\d)\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.integer-float.erlang\"},\"2\":{\"name\":\"punctuation.separator.float-exponent.erlang\"}},\"match\":\"\\\\\\\\d++(\\\\\\\\.)\\\\\\\\d++([eE][\\\\\\\\+\\\\\\\\-]?\\\\\\\\d++)?\",\"name\":\"constant.numeric.float.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"2(#)([0-1]++_)*[0-1]++\",\"name\":\"constant.numeric.integer.binary.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"3(#)([0-2]++_)*[0-2]++\",\"name\":\"constant.numeric.integer.base-3.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"4(#)([0-3]++_)*[0-3]++\",\"name\":\"constant.numeric.integer.base-4.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"5(#)([0-4]++_)*[0-4]++\",\"name\":\"constant.numeric.integer.base-5.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"6(#)([0-5]++_)*[0-5]++\",\"name\":\"constant.numeric.integer.base-6.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"7(#)([0-6]++_)*[0-6]++\",\"name\":\"constant.numeric.integer.base-7.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"8(#)([0-7]++_)*[0-7]++\",\"name\":\"constant.numeric.integer.octal.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"9(#)([0-8]++_)*[0-8]++\",\"name\":\"constant.numeric.integer.base-9.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"10(#)(\\\\\\\\d++_)*\\\\\\\\d++\",\"name\":\"constant.numeric.integer.decimal.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"11(#)([\\\\\\\\daA]++_)*[\\\\\\\\daA]++\",\"name\":\"constant.numeric.integer.base-11.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"12(#)([\\\\\\\\da-bA-B]++_)*[\\\\\\\\da-bA-B]++\",\"name\":\"constant.numeric.integer.base-12.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"13(#)([\\\\\\\\da-cA-C]++_)*[\\\\\\\\da-cA-C]++\",\"name\":\"constant.numeric.integer.base-13.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"14(#)([\\\\\\\\da-dA-D]++_)*[\\\\\\\\da-dA-D]++\",\"name\":\"constant.numeric.integer.base-14.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"15(#)([\\\\\\\\da-eA-E]++_)*[\\\\\\\\da-eA-E]++\",\"name\":\"constant.numeric.integer.base-15.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"16(#)([\\\\\\\\da-fA-F]++_)*[\\\\\\\\da-fA-F]++\",\"name\":\"constant.numeric.integer.hexadecimal.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"17(#)([\\\\\\\\da-gA-G]++_)*[\\\\\\\\da-gA-G]++\",\"name\":\"constant.numeric.integer.base-17.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"18(#)([\\\\\\\\da-hA-H]++_)*[\\\\\\\\da-hA-H]++\",\"name\":\"constant.numeric.integer.base-18.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"19(#)([\\\\\\\\da-iA-I]++_)*[\\\\\\\\da-iA-I]++\",\"name\":\"constant.numeric.integer.base-19.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"20(#)([\\\\\\\\da-jA-J]++_)*[\\\\\\\\da-jA-J]++\",\"name\":\"constant.numeric.integer.base-20.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"21(#)([\\\\\\\\da-kA-K]++_)*[\\\\\\\\da-kA-K]++\",\"name\":\"constant.numeric.integer.base-21.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"22(#)([\\\\\\\\da-lA-L]++_)*[\\\\\\\\da-lA-L]++\",\"name\":\"constant.numeric.integer.base-22.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"23(#)([\\\\\\\\da-mA-M]++_)*[\\\\\\\\da-mA-M]++\",\"name\":\"constant.numeric.integer.base-23.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"24(#)([\\\\\\\\da-nA-N]++_)*[\\\\\\\\da-nA-N]++\",\"name\":\"constant.numeric.integer.base-24.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"25(#)([\\\\\\\\da-oA-O]++_)*[\\\\\\\\da-oA-O]++\",\"name\":\"constant.numeric.integer.base-25.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"26(#)([\\\\\\\\da-pA-P]++_)*[\\\\\\\\da-pA-P]++\",\"name\":\"constant.numeric.integer.base-26.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"27(#)([\\\\\\\\da-qA-Q]++_)*[\\\\\\\\da-qA-Q]++\",\"name\":\"constant.numeric.integer.base-27.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"28(#)([\\\\\\\\da-rA-R]++_)*[\\\\\\\\da-rA-R]++\",\"name\":\"constant.numeric.integer.base-28.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"29(#)([\\\\\\\\da-sA-S]++_)*[\\\\\\\\da-sA-S]++\",\"name\":\"constant.numeric.integer.base-29.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"30(#)([\\\\\\\\da-tA-T]++_)*[\\\\\\\\da-tA-T]++\",\"name\":\"constant.numeric.integer.base-30.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"31(#)([\\\\\\\\da-uA-U]++_)*[\\\\\\\\da-uA-U]++\",\"name\":\"constant.numeric.integer.base-31.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"32(#)([\\\\\\\\da-vA-V]++_)*[\\\\\\\\da-vA-V]++\",\"name\":\"constant.numeric.integer.base-32.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"33(#)([\\\\\\\\da-wA-W]++_)*[\\\\\\\\da-wA-W]++\",\"name\":\"constant.numeric.integer.base-33.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"34(#)([\\\\\\\\da-xA-X]++_)*[\\\\\\\\da-xA-X]++\",\"name\":\"constant.numeric.integer.base-34.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"35(#)([\\\\\\\\da-yA-Y]++_)*[\\\\\\\\da-yA-Y]++\",\"name\":\"constant.numeric.integer.base-35.erlang\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.base-integer.erlang\"}},\"match\":\"36(#)([\\\\\\\\da-zA-Z]++_)*[\\\\\\\\da-zA-Z]++\",\"name\":\"constant.numeric.integer.base-36.erlang\"},{\"match\":\"\\\\\\\\d++#([\\\\\\\\da-zA-Z]++_)*[\\\\\\\\da-zA-Z]++\",\"name\":\"invalid.illegal.integer.erlang\"},{\"match\":\"(\\\\\\\\d++_)*\\\\\\\\d++\",\"name\":\"constant.numeric.integer.decimal.erlang\"}]},\"parenthesized-expression\":{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.expression.begin.erlang\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.expression.end.erlang\"}},\"name\":\"meta.expression.parenthesized\",\"patterns\":[{\"include\":\"#everything-else\"}]},\"record-directive\":{\"begin\":\"^\\\\\\\\s*+(-)\\\\\\\\s*+(record)\\\\\\\\s*+(\\\\\\\\()\\\\\\\\s*+([a-z][a-zA-Z\\\\\\\\d@_]*+|'[^']*+')\\\\\\\\s*+(,)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.directive.begin.erlang\"},\"2\":{\"name\":\"keyword.control.directive.import.erlang\"},\"3\":{\"name\":\"punctuation.definition.parameters.begin.erlang\"},\"4\":{\"name\":\"entity.name.type.class.record.definition.erlang\"},\"5\":{\"name\":\"punctuation.separator.parameters.erlang\"}},\"end\":\"(\\\\\\\\))\\\\\\\\s*+(\\\\\\\\.)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.erlang\"},\"2\":{\"name\":\"punctuation.section.directive.end.erlang\"}},\"name\":\"meta.directive.record.erlang\",\"patterns\":[{\"include\":\"#internal-record-body\"},{\"include\":\"#comment\"}]},\"record-usage\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.record.erlang\"},\"2\":{\"name\":\"entity.name.type.class.record.erlang\"},\"3\":{\"name\":\"punctuation.separator.record-field.erlang\"},\"4\":{\"name\":\"variable.other.field.erlang\"}},\"match\":\"(#)\\\\\\\\s*+([a-z][a-zA-Z\\\\\\\\d@_]*+|'[^']*+')\\\\\\\\s*+(\\\\\\\\.)\\\\\\\\s*+([a-z][a-zA-Z\\\\\\\\d@_]*+|'[^']*+')\",\"name\":\"meta.record-usage.erlang\"},{\"begin\":\"(#)\\\\\\\\s*+([a-z][a-zA-Z\\\\\\\\d@_]*+|'[^']*+')\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.record.erlang\"},\"2\":{\"name\":\"entity.name.type.class.record.erlang\"}},\"end\":\"(?<=\\\\\\\\})\",\"name\":\"meta.record-usage.erlang\",\"patterns\":[{\"include\":\"#internal-record-body\"}]}]},\"sigil-docstring\":{\"begin\":\"(~[bBsS]?)(([\\\\\"]{3,})\\\\\\\\s*)(\\\\\\\\S.*)?$\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.erlang\"},\"2\":{\"name\":\"meta.string.quoted.triple.begin.erlang\"},\"3\":{\"name\":\"punctuation.definition.string.begin.erlang\"},\"4\":{\"name\":\"invalid.illegal.string.erlang\"}},\"comment\":\"Only whitespace characters are allowed after the beggining and before the closing sequences and those cannot be in the same line\",\"end\":\"^(\\\\\\\\s*(\\\\\\\\3))(?!\\\\\")\",\"endCaptures\":{\"1\":{\"name\":\"meta.string.quoted.triple.end.erlang\"},\"2\":{\"name\":\"punctuation.definition.string.end.erlang\"}},\"name\":\"string.quoted.tripple.sigil.erlang\"},\"sigil-string\":{\"patterns\":[{\"include\":\"#sigil-string-parenthesis\"},{\"include\":\"#sigil-string-parenthesis-verbatim\"},{\"include\":\"#sigil-string-curly-brackets\"},{\"include\":\"#sigil-string-curly-brackets-verbatim\"},{\"include\":\"#sigil-string-square-brackets\"},{\"include\":\"#sigil-string-square-brackets-verbatim\"},{\"include\":\"#sigil-string-less-greater\"},{\"include\":\"#sigil-string-less-greater-verbatim\"},{\"include\":\"#sigil-string-single-character\"},{\"include\":\"#sigil-string-single-character-verbatim\"},{\"include\":\"#sigil-string-single-quote\"},{\"include\":\"#sigil-string-single-quote-verbatim\"},{\"include\":\"#sigil-string-double-quote\"},{\"include\":\"#sigil-string-double-quote-verbatim\"}]},\"sigil-string-curly-brackets\":{\"begin\":\"(~[bs]?)([{])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.erlang\"},\"2\":{\"name\":\"punctuation.definition.string.begin.erlang\"}},\"end\":\"([}])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.erlang\"}},\"name\":\"string.quoted.curly-brackets.sigil.erlang\",\"patterns\":[{\"include\":\"#internal-string-body\"}]},\"sigil-string-curly-brackets-verbatim\":{\"begin\":\"(~[BS])([{])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.erlang\"},\"2\":{\"name\":\"punctuation.definition.string.begin.erlang\"}},\"end\":\"([}])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.erlang\"}},\"name\":\"string.quoted.curly-brackets.sigil.erlang\"},\"sigil-string-double-quote\":{\"begin\":\"(~[bs]?)(\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.erlang\"},\"2\":{\"name\":\"punctuation.definition.string.begin.erlang\"}},\"end\":\"(\\\\\\\\2)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.erlang\"}},\"name\":\"string.quoted.double.sigil.erlang\",\"patterns\":[{\"include\":\"#internal-string-body\"}]},\"sigil-string-double-quote-verbatim\":{\"begin\":\"(~[BS])(\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.erlang\"},\"2\":{\"name\":\"punctuation.definition.string.begin.erlang\"}},\"end\":\"(\\\\\\\\2)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.erlang\"}},\"name\":\"string.quoted.double.sigil.erlang\"},\"sigil-string-less-greater\":{\"begin\":\"(~[bs]?)(<)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.erlang\"},\"2\":{\"name\":\"punctuation.definition.string.begin.erlang\"}},\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.erlang\"}},\"name\":\"string.quoted.less-greater.sigil.erlang\",\"patterns\":[{\"include\":\"#internal-string-body\"}]},\"sigil-string-less-greater-verbatim\":{\"begin\":\"(~[BS])(<)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.erlang\"},\"2\":{\"name\":\"punctuation.definition.string.begin.erlang\"}},\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.erlang\"}},\"name\":\"string.quoted.less-greater.sigil.erlang\"},\"sigil-string-parenthesis\":{\"begin\":\"(~[bs]?)([(])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.erlang\"},\"2\":{\"name\":\"punctuation.definition.string.begin.erlang\"}},\"end\":\"([)])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.erlang\"}},\"name\":\"string.quoted.parenthesis.sigil.erlang\",\"patterns\":[{\"include\":\"#internal-string-body\"}]},\"sigil-string-parenthesis-verbatim\":{\"begin\":\"(~[BS])([(])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.erlang\"},\"2\":{\"name\":\"punctuation.definition.string.begin.erlang\"}},\"end\":\"([)])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.erlang\"}},\"name\":\"string.quoted.parenthesis.sigil.erlang\"},\"sigil-string-single-character\":{\"begin\":\"(~[bs]?)([/\\\\\\\\|\\`#])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.erlang\"},\"2\":{\"name\":\"punctuation.definition.string.begin.erlang\"}},\"end\":\"(\\\\\\\\2)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.erlang\"}},\"name\":\"string.quoted.other.sigil.erlang\",\"patterns\":[{\"include\":\"#internal-string-body\"}]},\"sigil-string-single-character-verbatim\":{\"begin\":\"(~[BS])([/\\\\\\\\|\\`#])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.erlang\"},\"2\":{\"name\":\"punctuation.definition.string.begin.erlang\"}},\"end\":\"(\\\\\\\\2)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.erlang\"}},\"name\":\"string.quoted.other.sigil.erlang\"},\"sigil-string-single-quote\":{\"begin\":\"(~[bs]?)(')\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.erlang\"},\"2\":{\"name\":\"punctuation.definition.string.begin.erlang\"}},\"end\":\"(\\\\\\\\2)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.erlang\"}},\"name\":\"string.quoted.single.sigil.erlang\",\"patterns\":[{\"include\":\"#internal-string-body\"}]},\"sigil-string-single-quote-verbatim\":{\"begin\":\"(~[BS])(')\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.erlang\"},\"2\":{\"name\":\"punctuation.definition.string.begin.erlang\"}},\"end\":\"(\\\\\\\\2)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.erlang\"}},\"name\":\"string.quoted.single.sigil.erlang\"},\"sigil-string-square-brackets\":{\"begin\":\"(~[bs]?)([\\\\\\\\[])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.erlang\"},\"2\":{\"name\":\"punctuation.definition.string.begin.erlang\"}},\"end\":\"([\\\\\\\\]])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.erlang\"}},\"name\":\"string.quoted.square-brackets.sigil.erlang\",\"patterns\":[{\"include\":\"#internal-string-body\"}]},\"sigil-string-square-brackets-verbatim\":{\"begin\":\"(~[BS])([\\\\\\\\[])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.erlang\"},\"2\":{\"name\":\"punctuation.definition.string.begin.erlang\"}},\"end\":\"([\\\\\\\\]])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.erlang\"}},\"name\":\"string.quoted.square-brackets.sigil.erlang\"},\"string\":{\"begin\":\"(\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.erlang\"}},\"end\":\"(\\\\\")\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.erlang\"}},\"name\":\"string.quoted.double.erlang\",\"patterns\":[{\"include\":\"#internal-string-body\"}]},\"symbolic-operator\":{\"match\":\"\\\\\\\\+\\\\\\\\+|\\\\\\\\+|--|-|\\\\\\\\*|/=|/|=/=|=:=|==|=<|=|<-|<|>=|>|!|::|\\\\\\\\?=\",\"name\":\"keyword.operator.symbolic.erlang\"},\"textual-operator\":{\"match\":\"\\\\\\\\b(andalso|band|and|bxor|xor|bor|orelse|or|bnot|not|bsl|bsr|div|rem)\\\\\\\\b\",\"name\":\"keyword.operator.textual.erlang\"},\"tuple\":{\"begin\":\"(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tuple.begin.erlang\"}},\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tuple.end.erlang\"}},\"name\":\"meta.structure.tuple.erlang\",\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.separator.tuple.erlang\"},{\"include\":\"#everything-else\"}]},\"variable\":{\"captures\":{\"1\":{\"name\":\"variable.other.erlang\"},\"2\":{\"name\":\"variable.language.omitted.erlang\"}},\"match\":\"(_[a-zA-Z\\\\\\\\d@_]++|[A-Z][a-zA-Z\\\\\\\\d@_]*+)|(_)\"}},\"scopeName\":\"source.erlang\",\"aliases\":[\"erl\"]}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/B-k3dvlD.js",
    "content": "import e from\"./BQoSv7ci.js\";import t from\"./ySlJ1b_l.js\";import r from\"./Dj6nwHGl.js\";import a from\"./BPhBrDlE.js\";import n from\"./B3ZDOciz.js\";const s=Object.freeze(JSON.parse(`{\"displayName\":\"Astro\",\"fileTypes\":[\"astro\"],\"injections\":{\"L:(meta.script.astro) (meta.lang.js | meta.lang.javascript | meta.lang.partytown | meta.lang.node) - (meta source)\":{\"patterns\":[{\"begin\":\"(?<=>)(?!</)\",\"contentName\":\"source.js\",\"end\":\"(?=</)\",\"name\":\"meta.embedded.block.astro\",\"patterns\":[{\"include\":\"source.js\"}]}]},\"L:(meta.script.astro) (meta.lang.json) - (meta source)\":{\"patterns\":[{\"begin\":\"(?<=>)(?!</)\",\"contentName\":\"source.json\",\"end\":\"(?=</)\",\"name\":\"meta.embedded.block.astro\",\"patterns\":[{\"include\":\"source.json\"}]}]},\"L:(meta.script.astro) (meta.lang.ts | meta.lang.typescript) - (meta source)\":{\"patterns\":[{\"begin\":\"(?<=>)(?!</)\",\"contentName\":\"source.ts\",\"end\":\"(?=</)\",\"name\":\"meta.embedded.block.astro\",\"patterns\":[{\"include\":\"source.ts\"}]}]},\"L:meta.script.astro - meta.lang - (meta source)\":{\"patterns\":[{\"begin\":\"(?<=>)(?!</)\",\"contentName\":\"source.js\",\"end\":\"(?=</)\",\"name\":\"meta.embedded.block.astro\",\"patterns\":[{\"include\":\"source.js\"}]}]},\"L:meta.style.astro - meta.lang - (meta source)\":{\"patterns\":[{\"begin\":\"(?<=>)(?!</)\",\"contentName\":\"source.css\",\"end\":\"(?=</)\",\"name\":\"meta.embedded.block.astro\",\"patterns\":[{\"include\":\"source.css\"}]}]},\"L:meta.style.astro meta.lang.css - (meta source)\":{\"patterns\":[{\"begin\":\"(?<=>)(?!</)\",\"contentName\":\"source.css\",\"end\":\"(?=</)\",\"name\":\"meta.embedded.block.astro\",\"patterns\":[{\"include\":\"source.css\"}]}]},\"L:meta.style.astro meta.lang.less - (meta source)\":{\"patterns\":[{\"begin\":\"(?<=>)(?!</)\",\"contentName\":\"source.css.less\",\"end\":\"(?=</)\",\"name\":\"meta.embedded.block.astro\",\"patterns\":[{\"include\":\"source.css.less\"}]}]},\"L:meta.style.astro meta.lang.postcss - (meta source)\":{\"patterns\":[{\"begin\":\"(?<=>)(?!</)\",\"contentName\":\"source.css.postcss\",\"end\":\"(?=</)\",\"name\":\"meta.embedded.block.astro\",\"patterns\":[{\"include\":\"source.css.postcss\"}]}]},\"L:meta.style.astro meta.lang.sass - (meta source)\":{\"patterns\":[{\"begin\":\"(?<=>)(?!</)\",\"contentName\":\"source.sass\",\"end\":\"(?=</)\",\"name\":\"meta.embedded.block.astro\",\"patterns\":[{\"include\":\"source.sass\"}]}]},\"L:meta.style.astro meta.lang.scss - (meta source)\":{\"patterns\":[{\"begin\":\"(?<=>)(?!</)\",\"contentName\":\"source.css.scss\",\"end\":\"(?=</)\",\"name\":\"meta.embedded.block.astro\",\"patterns\":[{\"include\":\"source.css.scss\"}]}]},\"L:meta.style.astro meta.lang.stylus - (meta source)\":{\"patterns\":[{\"begin\":\"(?<=>)(?!</)\",\"contentName\":\"source.stylus\",\"end\":\"(?=</)\",\"name\":\"meta.embedded.block.astro\",\"patterns\":[{\"include\":\"source.stylus\"}]}]}},\"name\":\"astro\",\"patterns\":[{\"include\":\"#scope\"},{\"include\":\"#frontmatter\"},{\"include\":\"#text\"}],\"repository\":{\"attribute-literal\":{\"begin\":\"(\\`)\",\"end\":\"\\\\\\\\1\",\"name\":\"string.template.astro\",\"patterns\":[{\"include\":\"source.tsx#template-substitution-element\"},{\"include\":\"source.tsx#string-character-escape\"}]},\"attributes\":{\"patterns\":[{\"include\":\"#attributes-events\"},{\"include\":\"#attributes-keyvalue\"},{\"include\":\"#attributes-interpolated\"}]},\"attributes-events\":{\"begin\":\"(on(s(croll|t(orage|alled)|u(spend|bmit)|e(curitypolicyviolation|ek(ing|ed)|lect))|hashchange|c(hange|o(ntextmenu|py)|u(t|echange)|l(ick|ose)|an(cel|play(through)?))|t(imeupdate|oggle)|in(put|valid)|o(nline|ffline)|d(urationchange|r(op|ag(start|over|e(n(ter|d)|xit)|leave)?)|blclick)|un(handledrejection|load)|p(opstate|lay(ing)?|a(ste|use|ge(show|hide))|rogress)|e(nded|rror|mptied)|volumechange|key(down|up|press)|focus|w(heel|aiting)|l(oad(start|e(nd|d(data|metadata)))?|anguagechange)|a(uxclick|fterprint|bort)|r(e(s(ize|et)|jectionhandled)|atechange)|m(ouse(o(ut|ver)|down|up|enter|leave|move)|essage(error)?)|b(efore(unload|print)|lur)))(?![\\\\\\\\\\\\\\\\w:-])\",\"beginCaptures\":{\"0\":{\"patterns\":[{\"match\":\".*\",\"name\":\"entity.other.attribute-name.astro\"}]}},\"end\":\"(?=\\\\\\\\s*+[^=\\\\\\\\s])\",\"name\":\"meta.attribute.$1.astro\",\"patterns\":[{\"begin\":\"=\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.key-value.astro\"}},\"end\":\"(?<=[^\\\\\\\\s=])(?!\\\\\\\\s*=)|(?=/?>)\",\"patterns\":[{\"include\":\"#interpolation\"},{\"include\":\"#attribute-literal\"},{\"begin\":\"(?=[^\\\\\\\\s=<>\\`/]|/(?!>))\",\"end\":\"(?!\\\\\\\\G)\",\"name\":\"meta.embedded.line.js\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"source.js\"},\"1\":{\"patterns\":[{\"include\":\"source.js\"}]}},\"match\":\"(([^\\\\\\\\s\\\\\\\\\\\\\"'=<>\\`/]|/(?!>))+)\",\"name\":\"string.unquoted.astro\"},{\"begin\":\"([\\\\\"])\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.astro\"}},\"end\":\"\\\\\\\\1\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.astro\"}},\"name\":\"string.quoted.astro\",\"patterns\":[{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"source.js\"}]}},\"match\":\"([^\\\\\\\\n\\\\\\\\\\\\\"/]|/(?![/*]))+\"},{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.js\"}},\"end\":\"(?=\\\\\\\\\\\\\")|\\\\\\\\n\",\"name\":\"comment.line.double-slash.js\"},{\"begin\":\"/\\\\\\\\*\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.js\"}},\"end\":\"(?=\\\\\\\\\\\\\")|\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.js\"}},\"name\":\"comment.block.js\"}]},{\"begin\":\"(['])\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.astro\"}},\"end\":\"\\\\\\\\1\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.astro\"}},\"name\":\"string.quoted.astro\",\"patterns\":[{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"source.js\"}]}},\"match\":\"([^\\\\\\\\n\\\\\\\\'/]|/(?![/*]))+\"},{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.js\"}},\"end\":\"(?=\\\\\\\\')|\\\\\\\\n\",\"name\":\"comment.line.double-slash.js\"},{\"begin\":\"/\\\\\\\\*\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.js\"}},\"end\":\"(?=\\\\\\\\')|\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.js\"}},\"name\":\"comment.block.js\"}]}]}]}]},\"attributes-interpolated\":{\"begin\":\"(?<!:|=)\\\\\\\\s*({)\",\"contentName\":\"meta.embedded.expression.astro source.tsx\",\"end\":\"(\\\\\\\\})\",\"patterns\":[{\"include\":\"source.tsx\"}]},\"attributes-keyvalue\":{\"begin\":\"([_@$[:alpha:]][:._\\\\\\\\-$[:alnum:]]*)\",\"beginCaptures\":{\"0\":{\"patterns\":[{\"match\":\".*\",\"name\":\"entity.other.attribute-name.astro\"}]}},\"end\":\"(?=\\\\\\\\s*+[^=\\\\\\\\s])\",\"name\":\"meta.attribute.$1.astro\",\"patterns\":[{\"begin\":\"=\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.key-value.astro\"}},\"end\":\"(?<=[^\\\\\\\\s=])(?!\\\\\\\\s*=)|(?=/?>)\",\"patterns\":[{\"include\":\"#attributes-value\"}]}]},\"attributes-value\":{\"patterns\":[{\"include\":\"#interpolation\"},{\"match\":\"([^\\\\\\\\s\\\\\"'=<>\\`/]|/(?!>))+\",\"name\":\"string.unquoted.astro\"},{\"begin\":\"(['\\\\\"])\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.astro\"}},\"end\":\"\\\\\\\\1\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.astro\"}},\"name\":\"string.quoted.astro\"},{\"include\":\"#attribute-literal\"}]},\"comments\":{\"begin\":\"<!--\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.astro\"}},\"end\":\"-->\",\"name\":\"comment.block.astro\",\"patterns\":[{\"match\":\"\\\\\\\\G-?>|<!--(?!>)|<!-(?=-->)|--!>\",\"name\":\"invalid.illegal.characters-not-allowed-here.astro\"}]},\"entities\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.astro\"},\"912\":{\"name\":\"punctuation.definition.entity.astro\"}},\"match\":\"(&)(?=[a-zA-Z])((a(s(ymp(eq)?|cr|t)|n(d(slope|d|v|and)?|g(s(t|ph)|zarr|e|le|rt(vb(d)?)?|msd(a(h|c|d|e|f|a|g|b))?)?)|c(y|irc|d|ute|E)?|tilde|o(pf|gon)|uml|p(id|os|prox(eq)?|e|E|acir)?|elig|f(r)?|w(conint|int)|l(pha|e(ph|fsym))|acute|ring|grave|m(p|a(cr|lg))|breve)|A(s(sign|cr)|nd|MP|c(y|irc)|tilde|o(pf|gon)|uml|pplyFunction|fr|Elig|lpha|acute|ring|grave|macr|breve))|(B(scr|cy|opf|umpeq|e(cause|ta|rnoullis)|fr|a(ckslash|r(v|wed))|reve)|b(s(cr|im(e)?|ol(hsub|b)?|emi)|n(ot|e(quiv)?)|c(y|ong)|ig(s(tar|qcup)|c(irc|up|ap)|triangle(down|up)|o(times|dot|plus)|uplus|vee|wedge)|o(t(tom)?|pf|wtie|x(h(d|u|D|U)?|times|H(d|u|D|U)?|d(R|l|r|L)|u(R|l|r|L)|plus|D(R|l|r|L)|v(R|h|H|l|r|L)?|U(R|l|r|L)|V(R|h|H|l|r|L)?|minus|box))|Not|dquo|u(ll(et)?|mp(e(q)?|E)?)|prime|e(caus(e)?|t(h|ween|a)|psi|rnou|mptyv)|karow|fr|l(ock|k(1(2|4)|34)|a(nk|ck(square|triangle(down|left|right)?|lozenge)))|a(ck(sim(eq)?|cong|prime|epsilon)|r(vee|wed(ge)?))|r(eve|vbar)|brk(tbrk)?))|(c(s(cr|u(p(e)?|b(e)?))|h(cy|i|eck(mark)?)|ylcty|c(irc|ups(sm)?|edil|a(ps|ron))|tdot|ir(scir|c(eq|le(d(R|circ|S|dash|ast)|arrow(left|right)))?|e|fnint|E|mid)?|o(n(int|g(dot)?)|p(y(sr)?|f|rod)|lon(e(q)?)?|m(p(fn|le(xes|ment))?|ma(t)?))|dot|u(darr(l|r)|p(s|c(up|ap)|or|dot|brcap)?|e(sc|pr)|vee|wed|larr(p)?|r(vearrow(left|right)|ly(eq(succ|prec)|vee|wedge)|arr(m)?|ren))|e(nt(erdot)?|dil|mptyv)|fr|w(conint|int)|lubs(uit)?|a(cute|p(s|c(up|ap)|dot|and|brcup)?|r(on|et))|r(oss|arr))|C(scr|hi|c(irc|onint|edil|aron)|ircle(Minus|Times|Dot|Plus)|Hcy|o(n(tourIntegral|int|gruent)|unterClockwiseContourIntegral|p(f|roduct)|lon(e)?)|dot|up(Cap)?|OPY|e(nterDot|dilla)|fr|lo(seCurly(DoubleQuote|Quote)|ckwiseContourIntegral)|a(yleys|cute|p(italDifferentialD)?)|ross))|(d(s(c(y|r)|trok|ol)|har(l|r)|c(y|aron)|t(dot|ri(f)?)|i(sin|e|v(ide(ontimes)?|onx)?|am(s|ond(suit)?)?|gamma)|Har|z(cy|igrarr)|o(t(square|plus|eq(dot)?|minus)?|ublebarwedge|pf|wn(harpoon(left|right)|downarrows|arrow)|llar)|d(otseq|a(rr|gger))?|u(har|arr)|jcy|e(lta|g|mptyv)|f(isht|r)|wangle|lc(orn|rop)|a(sh(v)?|leth|rr|gger)|r(c(orn|rop)|bkarow)|b(karow|lac)|Arr)|D(s(cr|trok)|c(y|aron)|Scy|i(fferentialD|a(critical(Grave|Tilde|Do(t|ubleAcute)|Acute)|mond))|o(t(Dot|Equal)?|uble(Right(Tee|Arrow)|ContourIntegral|Do(t|wnArrow)|Up(DownArrow|Arrow)|VerticalBar|L(ong(RightArrow|Left(RightArrow|Arrow))|eft(RightArrow|Tee|Arrow)))|pf|wn(Right(TeeVector|Vector(Bar)?)|Breve|Tee(Arrow)?|arrow|Left(RightVector|TeeVector|Vector(Bar)?)|Arrow(Bar|UpArrow)?))|Zcy|el(ta)?|D(otrahd)?|Jcy|fr|a(shv|rr|gger)))|(e(s(cr|im|dot)|n(sp|g)|c(y|ir(c)?|olon|aron)|t(h|a)|o(pf|gon)|dot|u(ro|ml)|p(si(v|lon)?|lus|ar(sl)?)|e|D(ot|Dot)|q(s(im|lant(less|gtr))|c(irc|olon)|u(iv(DD)?|est|als)|vparsl)|f(Dot|r)|l(s(dot)?|inters|l)?|a(ster|cute)|r(Dot|arr)|g(s(dot)?|rave)?|x(cl|ist|p(onentiale|ectation))|m(sp(1(3|4))?|pty(set|v)?|acr))|E(s(cr|im)|c(y|irc|aron)|ta|o(pf|gon)|NG|dot|uml|TH|psilon|qu(ilibrium|al(Tilde)?)|fr|lement|acute|grave|x(ists|ponentialE)|m(pty(SmallSquare|VerySmallSquare)|acr)))|(f(scr|nof|cy|ilig|o(pf|r(k(v)?|all))|jlig|partint|emale|f(ilig|l(ig|lig)|r)|l(tns|lig|at)|allingdotseq|r(own|a(sl|c(1(2|8|3|4|5|6)|78|2(3|5)|3(8|4|5)|45|5(8|6)))))|F(scr|cy|illed(SmallSquare|VerySmallSquare)|o(uriertrf|pf|rAll)|fr))|(G(scr|c(y|irc|edil)|t|opf|dot|T|Jcy|fr|amma(d)?|reater(Greater|SlantEqual|Tilde|Equal(Less)?|FullEqual|Less)|g|breve)|g(s(cr|im(e|l)?)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|irc)|t(c(c|ir)|dot|quest|lPar|r(sim|dot|eq(qless|less)|less|a(pprox|rr)))?|imel|opf|dot|jcy|e(s(cc|dot(o(l)?)?|l(es)?)?|q(slant|q)?|l)?|v(nE|ertneqq)|fr|E(l)?|l(j|E|a)?|a(cute|p|mma(d)?)|rave|g(g)?|breve))|(h(s(cr|trok|lash)|y(phen|bull)|circ|o(ok(leftarrow|rightarrow)|pf|arr|rbar|mtht)|e(llip|arts(uit)?|rcon)|ks(earow|warow)|fr|a(irsp|lf|r(dcy|r(cir|w)?)|milt)|bar|Arr)|H(s(cr|trok)|circ|ilbertSpace|o(pf|rizontalLine)|ump(DownHump|Equal)|fr|a(cek|t)|ARDcy))|(i(s(cr|in(s(v)?|dot|v|E)?)|n(care|t(cal|prod|e(rcal|gers)|larhk)?|odot|fin(tie)?)?|c(y|irc)?|t(ilde)?|i(nfin|i(nt|int)|ota)?|o(cy|ta|pf|gon)|u(kcy|ml)|jlig|prod|e(cy|xcl)|quest|f(f|r)|acute|grave|m(of|ped|a(cr|th|g(part|e|line))))|I(scr|n(t(e(rsection|gral))?|visible(Comma|Times))|c(y|irc)|tilde|o(ta|pf|gon)|dot|u(kcy|ml)|Ocy|Jlig|fr|Ecy|acute|grave|m(plies|a(cr|ginaryI))?))|(j(s(cr|ercy)|c(y|irc)|opf|ukcy|fr|math)|J(s(cr|ercy)|c(y|irc)|opf|ukcy|fr))|(k(scr|hcy|c(y|edil)|opf|jcy|fr|appa(v)?|green)|K(scr|c(y|edil)|Hcy|opf|Jcy|fr|appa))|(l(s(h|cr|trok|im(e|g)?|q(uo(r)?|b)|aquo)|h(ar(d|u(l)?)|blk)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|ub|e(il|dil)|aron)|Barr|t(hree|c(c|ir)|imes|dot|quest|larr|r(i(e|f)?|Par))?|Har|o(ng(left(arrow|rightarrow)|rightarrow|mapsto)|times|z(enge|f)?|oparrow(left|right)|p(f|lus|ar)|w(ast|bar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|r(dhar|ushar))|ur(dshar|uhar)|jcy|par(lt)?|e(s(s(sim|dot|eq(qgtr|gtr)|approx|gtr)|cc|dot(o(r)?)?|g(es)?)?|q(slant|q)?|ft(harpoon(down|up)|threetimes|leftarrows|arrow(tail)?|right(squigarrow|harpoons|arrow(s)?))|g)?|v(nE|ertneqq)|f(isht|loor|r)|E(g)?|l(hard|corner|tri|arr)?|a(ng(d|le)?|cute|t(e(s)?|ail)?|p|emptyv|quo|rr(sim|hk|tl|pl|fs|lp|b(fs)?)?|gran|mbda)|r(har(d)?|corner|tri|arr|m)|g(E)?|m(idot|oust(ache)?)|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr))|L(s(h|cr|trok)|c(y|edil|aron)|t|o(ng(RightArrow|left(arrow|rightarrow)|rightarrow|Left(RightArrow|Arrow))|pf|wer(RightArrow|LeftArrow))|T|e(ss(Greater|SlantEqual|Tilde|EqualGreater|FullEqual|Less)|ft(Right(Vector|Arrow)|Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|rightarrow|Floor|A(ngleBracket|rrow(RightArrow|Bar)?)))|Jcy|fr|l(eftarrow)?|a(ng|cute|placetrf|rr|mbda)|midot))|(M(scr|cy|inusPlus|opf|u|e(diumSpace|llintrf)|fr|ap)|m(s(cr|tpos)|ho|nplus|c(y|omma)|i(nus(d(u)?|b)?|cro|d(cir|dot|ast)?)|o(dels|pf)|dash|u(ltimap|map)?|p|easuredangle|DDot|fr|l(cp|dr)|a(cr|p(sto(down|up|left)?)?|l(t(ese)?|e)|rker)))|(n(s(hort(parallel|mid)|c(cue|e|r)?|im(e(q)?)?|u(cc(eq)?|p(set(eq(q)?)?|e|E)?|b(set(eq(q)?)?|e|E)?)|par|qsu(pe|be)|mid)|Rightarrow|h(par|arr|Arr)|G(t(v)?|g)|c(y|ong(dot)?|up|edil|a(p|ron))|t(ilde|lg|riangle(left(eq)?|right(eq)?)|gl)|i(s(d)?|v)?|o(t(ni(v(c|a|b))?|in(dot|v(c|a|b)|E)?)?|pf)|dash|u(m(sp|ero)?)?|jcy|p(olint|ar(sl|t|allel)?|r(cue|e(c(eq)?)?)?)|e(s(im|ear)|dot|quiv|ar(hk|r(ow)?)|xist(s)?|Arr)?|v(sim|infin|Harr|dash|Dash|l(t(rie)?|e|Arr)|ap|r(trie|Arr)|g(t|e))|fr|w(near|ar(hk|r(ow)?)|Arr)|V(dash|Dash)|l(sim|t(ri(e)?)?|dr|e(s(s)?|q(slant|q)?|ft(arrow|rightarrow))?|E|arr|Arr)|a(ng|cute|tur(al(s)?)?|p(id|os|prox|E)?|bla)|r(tri(e)?|ightarrow|arr(c|w)?|Arr)|g(sim|t(r)?|e(s|q(slant|q)?)?|E)|mid|L(t(v)?|eft(arrow|rightarrow)|l)|b(sp|ump(e)?))|N(scr|c(y|edil|aron)|tilde|o(nBreakingSpace|Break|t(R(ightTriangle(Bar|Equal)?|everseElement)|Greater(Greater|SlantEqual|Tilde|Equal|FullEqual|Less)?|S(u(cceeds(SlantEqual|Tilde|Equal)?|perset(Equal)?|bset(Equal)?)|quareSu(perset(Equal)?|bset(Equal)?))|Hump(DownHump|Equal)|Nested(GreaterGreater|LessLess)|C(ongruent|upCap)|Tilde(Tilde|Equal|FullEqual)?|DoubleVerticalBar|Precedes(SlantEqual|Equal)?|E(qual(Tilde)?|lement|xists)|VerticalBar|Le(ss(Greater|SlantEqual|Tilde|Equal|Less)?|ftTriangle(Bar|Equal)?))?|pf)|u|e(sted(GreaterGreater|LessLess)|wLine|gative(MediumSpace|Thi(nSpace|ckSpace)|VeryThinSpace))|Jcy|fr|acute))|(o(s(cr|ol|lash)|h(m|bar)|c(y|ir(c)?)|ti(lde|mes(as)?)|S|int|opf|d(sold|iv|ot|ash|blac)|uml|p(erp|lus|ar)|elig|vbar|f(cir|r)|l(c(ir|ross)|t|ine|arr)|a(st|cute)|r(slope|igof|or|d(er(of)?|f|m)?|v|arr)?|g(t|on|rave)|m(i(nus|cron|d)|ega|acr))|O(s(cr|lash)|c(y|irc)|ti(lde|mes)|opf|dblac|uml|penCurly(DoubleQuote|Quote)|ver(B(ar|rac(e|ket))|Parenthesis)|fr|Elig|acute|r|grave|m(icron|ega|acr)))|(p(s(cr|i)|h(i(v)?|one|mmat)|cy|i(tchfork|v)?|o(intint|und|pf)|uncsp|er(cnt|tenk|iod|p|mil)|fr|l(us(sim|cir|two|d(o|u)|e|acir|mn|b)?|an(ck(h)?|kv))|ar(s(im|l)|t|a(llel)?)?|r(sim|n(sim|E|ap)|cue|ime(s)?|o(d|p(to)?|f(surf|line|alar))|urel|e(c(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?)?|E|ap)?|m)|P(s(cr|i)|hi|cy|i|o(incareplane|pf)|fr|lusMinus|artialD|r(ime|o(duct|portion(al)?)|ecedes(SlantEqual|Tilde|Equal)?)?))|(q(scr|int|opf|u(ot|est(eq)?|at(int|ernions))|prime|fr)|Q(scr|opf|UOT|fr))|(R(s(h|cr)|ho|c(y|edil|aron)|Barr|ight(Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|Floor|A(ngleBracket|rrow(Bar|LeftArrow)?))|o(undImplies|pf)|uleDelayed|e(verse(UpEquilibrium|E(quilibrium|lement)))?|fr|EG|a(ng|cute|rr(tl)?)|rightarrow)|r(s(h|cr|q(uo(r)?|b)|aquo)|h(o(v)?|ar(d|u(l)?))|nmid|c(y|ub|e(il|dil)|aron)|Barr|t(hree|imes|ri(e|f|ltri)?)|i(singdotseq|ng|ght(squigarrow|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(tail)?|rightarrows))|Har|o(times|p(f|lus|ar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|ldhar)|uluhar|p(polint|ar(gt)?)|e(ct|al(s|ine|part)?|g)|f(isht|loor|r)|l(har|arr|m)|a(ng(d|e|le)?|c(ute|e)|t(io(nals)?|ail)|dic|emptyv|quo|rr(sim|hk|c|tl|pl|fs|w|lp|ap|b(fs)?)?)|rarr|x|moust(ache)?|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr)))|(s(s(cr|tarf|etmn|mile)|h(y|c(hcy|y)|ort(parallel|mid)|arp)|c(sim|y|n(sim|E|ap)|cue|irc|polint|e(dil)?|E|a(p|ron))?|t(ar(f)?|r(ns|aight(phi|epsilon)))|i(gma(v|f)?|m(ne|dot|plus|e(q)?|l(E)?|rarr|g(E)?)?)|zlig|o(pf|ftcy|l(b(ar)?)?)|dot(e|b)?|u(ng|cc(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?|p(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|hs(ol|ub)|1|n(e|E)|2|d(sub|ot)|3|plus|e(dot)?|E|larr|mult)?|m|b(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|n(e|E)|dot|plus|e(dot)?|E|rarr|mult)?)|pa(des(uit)?|r)|e(swar|ct|tm(n|inus)|ar(hk|r(ow)?)|xt|mi|Arr)|q(su(p(set(eq)?|e)?|b(set(eq)?|e)?)|c(up(s)?|ap(s)?)|u(f|ar(e|f))?)|fr(own)?|w(nwar|ar(hk|r(ow)?)|Arr)|larr|acute|rarr|m(t(e(s)?)?|i(d|le)|eparsl|a(shp|llsetminus))|bquo)|S(scr|hort(RightArrow|DownArrow|UpArrow|LeftArrow)|c(y|irc|edil|aron)?|tar|igma|H(cy|CHcy)|opf|u(c(hThat|ceeds(SlantEqual|Tilde|Equal)?)|p(set|erset(Equal)?)?|m|b(set(Equal)?)?)|OFTcy|q(uare(Su(perset(Equal)?|bset(Equal)?)|Intersection|Union)?|rt)|fr|acute|mallCircle))|(t(s(hcy|c(y|r)|trok)|h(i(nsp|ck(sim|approx))|orn|e(ta(sym|v)?|re(4|fore))|k(sim|ap))|c(y|edil|aron)|i(nt|lde|mes(d|b(ar)?)?)|o(sa|p(cir|f(ork)?|bot)?|ea)|dot|prime|elrec|fr|w(ixt|ohead(leftarrow|rightarrow))|a(u|rget)|r(i(sb|time|dot|plus|e|angle(down|q|left(eq)?|right(eq)?)?|minus)|pezium|ade)|brk)|T(s(cr|trok)|RADE|h(i(nSpace|ckSpace)|e(ta|refore))|c(y|edil|aron)|S(cy|Hcy)|ilde(Tilde|Equal|FullEqual)?|HORN|opf|fr|a(u|b)|ripleDot))|(u(scr|h(ar(l|r)|blk)|c(y|irc)|t(ilde|dot|ri(f)?)|Har|o(pf|gon)|d(har|arr|blac)|u(arr|ml)|p(si(h|lon)?|harpoon(left|right)|downarrow|uparrows|lus|arrow)|f(isht|r)|wangle|l(c(orn(er)?|rop)|tri)|a(cute|rr)|r(c(orn(er)?|rop)|tri|ing)|grave|m(l|acr)|br(cy|eve)|Arr)|U(scr|n(ion(Plus)?|der(B(ar|rac(e|ket))|Parenthesis))|c(y|irc)|tilde|o(pf|gon)|dblac|uml|p(si(lon)?|downarrow|Tee(Arrow)?|per(RightArrow|LeftArrow)|DownArrow|Equilibrium|arrow|Arrow(Bar|DownArrow)?)|fr|a(cute|rr(ocir)?)|ring|grave|macr|br(cy|eve)))|(v(s(cr|u(pn(e|E)|bn(e|E)))|nsu(p|b)|cy|Bar(v)?|zigzag|opf|dash|prop|e(e(eq|bar)?|llip|r(t|bar))|Dash|fr|ltri|a(ngrt|r(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|t(heta|riangle(left|right))|p(hi|i|ropto)|epsilon|kappa|r(ho)?))|rtri|Arr)|V(scr|cy|opf|dash(l)?|e(e|r(yThinSpace|t(ical(Bar|Separator|Tilde|Line))?|bar))|Dash|vdash|fr|bar))|(w(scr|circ|opf|p|e(ierp|d(ge(q)?|bar))|fr|r(eath)?)|W(scr|circ|opf|edge|fr))|(X(scr|i|opf|fr)|x(s(cr|qcup)|h(arr|Arr)|nis|c(irc|up|ap)|i|o(time|dot|p(f|lus))|dtri|u(tri|plus)|vee|fr|wedge|l(arr|Arr)|r(arr|Arr)|map))|(y(scr|c(y|irc)|icy|opf|u(cy|ml)|en|fr|ac(y|ute))|Y(scr|c(y|irc)|opf|uml|Icy|Ucy|fr|acute|Acy))|(z(scr|hcy|c(y|aron)|igrarr|opf|dot|e(ta|etrf)|fr|w(nj|j)|acute)|Z(scr|c(y|aron)|Hcy|opf|dot|e(ta|roWidthSpace)|fr|acute)))(;)\",\"name\":\"constant.character.entity.named.$2.astro\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.astro\"},\"3\":{\"name\":\"punctuation.definition.entity.astro\"}},\"match\":\"(&)#[0-9]+(;)\",\"name\":\"constant.character.entity.numeric.decimal.astro\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.astro\"},\"3\":{\"name\":\"punctuation.definition.entity.astro\"}},\"match\":\"(&)#[xX][0-9a-fA-F]+(;)\",\"name\":\"constant.character.entity.numeric.hexadecimal.astro\"},{\"match\":\"&(?=[a-zA-Z0-9]+;)\",\"name\":\"invalid.illegal.ambiguous-ampersand.astro\"}]},\"frontmatter\":{\"begin\":\"\\\\\\\\A(-{3})\\\\\\\\s*$\",\"beginCaptures\":{\"1\":{\"name\":\"comment\"}},\"contentName\":\"source.ts\",\"end\":\"(^|\\\\\\\\G)(-{3})|\\\\\\\\.{3}\\\\\\\\s*$\",\"endCaptures\":{\"2\":{\"name\":\"comment\"}},\"patterns\":[{\"include\":\"source.ts\"}]},\"interpolation\":{\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.astro\"}},\"contentName\":\"meta.embedded.expression.astro source.tsx\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.astro\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G\\\\\\\\s*(?={)\",\"end\":\"(?<=})\",\"patterns\":[{\"include\":\"source.tsx#object-literal\"}]},{\"include\":\"source.tsx\"}]}]},\"scope\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#tags\"},{\"include\":\"#interpolation\"},{\"include\":\"#entities\"}]},\"tags\":{\"patterns\":[{\"include\":\"#tags-raw\"},{\"include\":\"#tags-lang\"},{\"include\":\"#tags-void\"},{\"include\":\"#tags-general-end\"},{\"include\":\"#tags-general-start\"}]},\"tags-end-node\":{\"captures\":{\"1\":{\"name\":\"meta.tag.end.astro punctuation.definition.tag.begin.astro\"},\"2\":{\"name\":\"meta.tag.end.astro\",\"patterns\":[{\"include\":\"#tags-name\"}]},\"3\":{\"name\":\"meta.tag.end.astro punctuation.definition.tag.end.astro\"},\"4\":{\"name\":\"meta.tag.start.astro punctuation.definition.tag.end.astro\"}},\"match\":\"(</)(.*?)\\\\\\\\s*(>)|(/>)\"},\"tags-general-end\":{\"begin\":\"(</)([^/\\\\\\\\s>]*)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.tag.end.astro punctuation.definition.tag.begin.astro\"},\"2\":{\"name\":\"meta.tag.end.astro\",\"patterns\":[{\"include\":\"#tags-name\"}]}},\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"meta.tag.end.astro punctuation.definition.tag.end.astro\"}},\"name\":\"meta.scope.tag.$2.astro\"},\"tags-general-start\":{\"begin\":\"(<)([^/\\\\\\\\s>/]*)\",\"beginCaptures\":{\"0\":{\"patterns\":[{\"include\":\"#tags-start-node\"}]}},\"end\":\"(/?>)\",\"endCaptures\":{\"1\":{\"name\":\"meta.tag.start.astro punctuation.definition.tag.end.astro\"}},\"name\":\"meta.scope.tag.$2.astro\",\"patterns\":[{\"include\":\"#tags-start-attributes\"}]},\"tags-lang\":{\"begin\":\"<(script|style)\",\"beginCaptures\":{\"0\":{\"patterns\":[{\"include\":\"#tags-start-node\"}]}},\"end\":\"</\\\\\\\\1\\\\\\\\s*>|/>\",\"endCaptures\":{\"0\":{\"patterns\":[{\"include\":\"#tags-end-node\"}]}},\"name\":\"meta.scope.tag.$1.astro meta.$1.astro\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?=\\\\\\\\s*[^>]*?(type|lang)\\\\\\\\s*=\\\\\\\\s*(['\\\\\"]|)(?:text\\\\\\\\/)?(application\\\\\\\\/ld\\\\\\\\+json)\\\\\\\\2)\",\"end\":\"(?=</|/>)\",\"name\":\"meta.lang.json.astro\",\"patterns\":[{\"include\":\"#tags-lang-start-attributes\"}]},{\"begin\":\"\\\\\\\\G(?=\\\\\\\\s*[^>]*?(type|lang)\\\\\\\\s*=\\\\\\\\s*(['\\\\\"]|)(module)\\\\\\\\2)\",\"end\":\"(?=</|/>)\",\"name\":\"meta.lang.javascript.astro\",\"patterns\":[{\"include\":\"#tags-lang-start-attributes\"}]},{\"begin\":\"\\\\\\\\G(?=\\\\\\\\s*[^>]*?(type|lang)\\\\\\\\s*=\\\\\\\\s*(['\\\\\"]|)(?:text/|application/)?([\\\\\\\\w\\\\\\\\/+]+)\\\\\\\\2)\",\"end\":\"(?=</|/>)\",\"name\":\"meta.lang.$3.astro\",\"patterns\":[{\"include\":\"#tags-lang-start-attributes\"}]},{\"include\":\"#tags-lang-start-attributes\"}]},\"tags-lang-start-attributes\":{\"begin\":\"\\\\\\\\G\",\"end\":\"(?=/>)|>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.astro\"}},\"name\":\"meta.tag.start.astro\",\"patterns\":[{\"include\":\"#attributes\"}]},\"tags-name\":{\"patterns\":[{\"match\":\"[A-Z][a-zA-Z0-9_]*\",\"name\":\"support.class.component.astro\"},{\"match\":\"[a-z][\\\\\\\\w0-9:]*-[\\\\\\\\w0-9:-]*\",\"name\":\"meta.tag.custom.astro entity.name.tag.astro\"},{\"match\":\"[a-z][\\\\\\\\w0-9:-]*\",\"name\":\"entity.name.tag.astro\"}]},\"tags-raw\":{\"begin\":\"<([^/?!\\\\\\\\s<>]+)(?=[^>]+is:raw).*?\",\"beginCaptures\":{\"0\":{\"patterns\":[{\"include\":\"#tags-start-node\"}]}},\"contentName\":\"source.unknown\",\"end\":\"</\\\\\\\\1\\\\\\\\s*>|/>\",\"endCaptures\":{\"0\":{\"patterns\":[{\"include\":\"#tags-end-node\"}]}},\"name\":\"meta.scope.tag.$1.astro meta.raw.astro\",\"patterns\":[{\"include\":\"#tags-lang-start-attributes\"}]},\"tags-start-attributes\":{\"begin\":\"\\\\\\\\G\",\"end\":\"(?=/?>)\",\"name\":\"meta.tag.start.astro\",\"patterns\":[{\"include\":\"#attributes\"}]},\"tags-start-node\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.astro\"},\"2\":{\"patterns\":[{\"include\":\"#tags-name\"}]}},\"match\":\"(<)([^/\\\\\\\\s>/]*)\",\"name\":\"meta.tag.start.astro\"},\"tags-void\":{\"begin\":\"(<)(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)(?=\\\\\\\\s|/?>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.astro\"},\"2\":{\"name\":\"entity.name.tag.astro\"}},\"end\":\"/?>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.begin.astro\"}},\"name\":\"meta.tag.void.astro\",\"patterns\":[{\"include\":\"#attributes\"}]},\"text\":{\"patterns\":[{\"begin\":\"(?<=^|---|>|})\",\"end\":\"(?=<|{|$)\",\"name\":\"text.astro\",\"patterns\":[{\"include\":\"#entities\"}]}]}},\"scopeName\":\"source.astro\",\"embeddedLangs\":[\"json\",\"javascript\",\"typescript\",\"css\",\"postcss\"],\"embeddedLangsLazy\":[\"stylus\",\"sass\",\"scss\",\"less\",\"tsx\"]}`)),p=[...e,...t,...r,...a,...n,s];export{p as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/B-k8r3hf.js",
    "content": "import{a1 as et}from\"./CU_MfyYc.js\";/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var tt=Object.defineProperty,rt=Object.getOwnPropertyDescriptor,nt=Object.getOwnPropertyNames,it=Object.prototype.hasOwnProperty,ot=(e,n,i,r)=>{if(n&&typeof n==\"object\"||typeof n==\"function\")for(let t of nt(n))!it.call(e,t)&&t!==i&&tt(e,t,{get:()=>n[t],enumerable:!(r=rt(n,t))||r.enumerable});return e},at=(e,n,i)=>(ot(e,n,\"default\"),i),d={};at(d,et);var st=2*60*1e3,ut=class{constructor(e){this._defaults=e,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){if(!this._worker)return;Date.now()-this._lastUsedTime>st&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||(this._worker=d.editor.createWebWorker({moduleId:\"vs/language/css/cssWorker\",label:this._defaults.languageId,createData:{options:this._defaults.options,languageId:this._defaults.languageId}}),this._client=this._worker.getProxy()),this._client}getLanguageServiceWorker(...e){let n;return this._getClient().then(i=>{n=i}).then(i=>{if(this._worker)return this._worker.withSyncedResources(e)}).then(i=>n)}},T;(function(e){function n(i){return typeof i==\"string\"}e.is=n})(T||(T={}));var O;(function(e){function n(i){return typeof i==\"string\"}e.is=n})(O||(O={}));var Y;(function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647;function n(i){return typeof i==\"number\"&&e.MIN_VALUE<=i&&i<=e.MAX_VALUE}e.is=n})(Y||(Y={}));var M;(function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647;function n(i){return typeof i==\"number\"&&e.MIN_VALUE<=i&&i<=e.MAX_VALUE}e.is=n})(M||(M={}));var w;(function(e){function n(r,t){return r===Number.MAX_VALUE&&(r=M.MAX_VALUE),t===Number.MAX_VALUE&&(t=M.MAX_VALUE),{line:r,character:t}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&a.uinteger(t.line)&&a.uinteger(t.character)}e.is=i})(w||(w={}));var h;(function(e){function n(r,t,o,s){if(a.uinteger(r)&&a.uinteger(t)&&a.uinteger(o)&&a.uinteger(s))return{start:w.create(r,t),end:w.create(o,s)};if(w.is(r)&&w.is(t))return{start:r,end:t};throw new Error(`Range#create called with invalid arguments[${r}, ${t}, ${o}, ${s}]`)}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&w.is(t.start)&&w.is(t.end)}e.is=i})(h||(h={}));var C;(function(e){function n(r,t){return{uri:r,range:t}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&h.is(t.range)&&(a.string(t.uri)||a.undefined(t.uri))}e.is=i})(C||(C={}));var Z;(function(e){function n(r,t,o,s){return{targetUri:r,targetRange:t,targetSelectionRange:o,originSelectionRange:s}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&h.is(t.targetRange)&&a.string(t.targetUri)&&h.is(t.targetSelectionRange)&&(h.is(t.originSelectionRange)||a.undefined(t.originSelectionRange))}e.is=i})(Z||(Z={}));var S;(function(e){function n(r,t,o,s){return{red:r,green:t,blue:o,alpha:s}}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&a.numberRange(t.red,0,1)&&a.numberRange(t.green,0,1)&&a.numberRange(t.blue,0,1)&&a.numberRange(t.alpha,0,1)}e.is=i})(S||(S={}));var K;(function(e){function n(r,t){return{range:r,color:t}}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&h.is(t.range)&&S.is(t.color)}e.is=i})(K||(K={}));var ee;(function(e){function n(r,t,o){return{label:r,textEdit:t,additionalTextEdits:o}}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&a.string(t.label)&&(a.undefined(t.textEdit)||E.is(t))&&(a.undefined(t.additionalTextEdits)||a.typedArray(t.additionalTextEdits,E.is))}e.is=i})(ee||(ee={}));var A;(function(e){e.Comment=\"comment\",e.Imports=\"imports\",e.Region=\"region\"})(A||(A={}));var te;(function(e){function n(r,t,o,s,u,f){const c={startLine:r,endLine:t};return a.defined(o)&&(c.startCharacter=o),a.defined(s)&&(c.endCharacter=s),a.defined(u)&&(c.kind=u),a.defined(f)&&(c.collapsedText=f),c}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&a.uinteger(t.startLine)&&a.uinteger(t.startLine)&&(a.undefined(t.startCharacter)||a.uinteger(t.startCharacter))&&(a.undefined(t.endCharacter)||a.uinteger(t.endCharacter))&&(a.undefined(t.kind)||a.string(t.kind))}e.is=i})(te||(te={}));var U;(function(e){function n(r,t){return{location:r,message:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&C.is(t.location)&&a.string(t.message)}e.is=i})(U||(U={}));var x;(function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4})(x||(x={}));var re;(function(e){e.Unnecessary=1,e.Deprecated=2})(re||(re={}));var ne;(function(e){function n(i){const r=i;return a.objectLiteral(r)&&a.string(r.href)}e.is=n})(ne||(ne={}));var y;(function(e){function n(r,t,o,s,u,f){let c={range:r,message:t};return a.defined(o)&&(c.severity=o),a.defined(s)&&(c.code=s),a.defined(u)&&(c.source=u),a.defined(f)&&(c.relatedInformation=f),c}e.create=n;function i(r){var t;let o=r;return a.defined(o)&&h.is(o.range)&&a.string(o.message)&&(a.number(o.severity)||a.undefined(o.severity))&&(a.integer(o.code)||a.string(o.code)||a.undefined(o.code))&&(a.undefined(o.codeDescription)||a.string((t=o.codeDescription)===null||t===void 0?void 0:t.href))&&(a.string(o.source)||a.undefined(o.source))&&(a.undefined(o.relatedInformation)||a.typedArray(o.relatedInformation,U.is))}e.is=i})(y||(y={}));var I;(function(e){function n(r,t,...o){let s={title:r,command:t};return a.defined(o)&&o.length>0&&(s.arguments=o),s}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.title)&&a.string(t.command)}e.is=i})(I||(I={}));var E;(function(e){function n(o,s){return{range:o,newText:s}}e.replace=n;function i(o,s){return{range:{start:o,end:o},newText:s}}e.insert=i;function r(o){return{range:o,newText:\"\"}}e.del=r;function t(o){const s=o;return a.objectLiteral(s)&&a.string(s.newText)&&h.is(s.range)}e.is=t})(E||(E={}));var V;(function(e){function n(r,t,o){const s={label:r};return t!==void 0&&(s.needsConfirmation=t),o!==void 0&&(s.description=o),s}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&a.string(t.label)&&(a.boolean(t.needsConfirmation)||t.needsConfirmation===void 0)&&(a.string(t.description)||t.description===void 0)}e.is=i})(V||(V={}));var L;(function(e){function n(i){const r=i;return a.string(r)}e.is=n})(L||(L={}));var ie;(function(e){function n(o,s,u){return{range:o,newText:s,annotationId:u}}e.replace=n;function i(o,s,u){return{range:{start:o,end:o},newText:s,annotationId:u}}e.insert=i;function r(o,s){return{range:o,newText:\"\",annotationId:s}}e.del=r;function t(o){const s=o;return E.is(s)&&(V.is(s.annotationId)||L.is(s.annotationId))}e.is=t})(ie||(ie={}));var W;(function(e){function n(r,t){return{textDocument:r,edits:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&B.is(t.textDocument)&&Array.isArray(t.edits)}e.is=i})(W||(W={}));var H;(function(e){function n(r,t,o){let s={kind:\"create\",uri:r};return t!==void 0&&(t.overwrite!==void 0||t.ignoreIfExists!==void 0)&&(s.options=t),o!==void 0&&(s.annotationId=o),s}e.create=n;function i(r){let t=r;return t&&t.kind===\"create\"&&a.string(t.uri)&&(t.options===void 0||(t.options.overwrite===void 0||a.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||a.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||L.is(t.annotationId))}e.is=i})(H||(H={}));var X;(function(e){function n(r,t,o,s){let u={kind:\"rename\",oldUri:r,newUri:t};return o!==void 0&&(o.overwrite!==void 0||o.ignoreIfExists!==void 0)&&(u.options=o),s!==void 0&&(u.annotationId=s),u}e.create=n;function i(r){let t=r;return t&&t.kind===\"rename\"&&a.string(t.oldUri)&&a.string(t.newUri)&&(t.options===void 0||(t.options.overwrite===void 0||a.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||a.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||L.is(t.annotationId))}e.is=i})(X||(X={}));var $;(function(e){function n(r,t,o){let s={kind:\"delete\",uri:r};return t!==void 0&&(t.recursive!==void 0||t.ignoreIfNotExists!==void 0)&&(s.options=t),o!==void 0&&(s.annotationId=o),s}e.create=n;function i(r){let t=r;return t&&t.kind===\"delete\"&&a.string(t.uri)&&(t.options===void 0||(t.options.recursive===void 0||a.boolean(t.options.recursive))&&(t.options.ignoreIfNotExists===void 0||a.boolean(t.options.ignoreIfNotExists)))&&(t.annotationId===void 0||L.is(t.annotationId))}e.is=i})($||($={}));var z;(function(e){function n(i){let r=i;return r&&(r.changes!==void 0||r.documentChanges!==void 0)&&(r.documentChanges===void 0||r.documentChanges.every(t=>a.string(t.kind)?H.is(t)||X.is(t)||$.is(t):W.is(t)))}e.is=n})(z||(z={}));var oe;(function(e){function n(r){return{uri:r}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.uri)}e.is=i})(oe||(oe={}));var ae;(function(e){function n(r,t){return{uri:r,version:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.uri)&&a.integer(t.version)}e.is=i})(ae||(ae={}));var B;(function(e){function n(r,t){return{uri:r,version:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.uri)&&(t.version===null||a.integer(t.version))}e.is=i})(B||(B={}));var se;(function(e){function n(r,t,o,s){return{uri:r,languageId:t,version:o,text:s}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.uri)&&a.string(t.languageId)&&a.integer(t.version)&&a.string(t.text)}e.is=i})(se||(se={}));var q;(function(e){e.PlainText=\"plaintext\",e.Markdown=\"markdown\";function n(i){const r=i;return r===e.PlainText||r===e.Markdown}e.is=n})(q||(q={}));var P;(function(e){function n(i){const r=i;return a.objectLiteral(i)&&q.is(r.kind)&&a.string(r.value)}e.is=n})(P||(P={}));var v;(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(v||(v={}));var Q;(function(e){e.PlainText=1,e.Snippet=2})(Q||(Q={}));var ue;(function(e){e.Deprecated=1})(ue||(ue={}));var ce;(function(e){function n(r,t,o){return{newText:r,insert:t,replace:o}}e.create=n;function i(r){const t=r;return t&&a.string(t.newText)&&h.is(t.insert)&&h.is(t.replace)}e.is=i})(ce||(ce={}));var de;(function(e){e.asIs=1,e.adjustIndentation=2})(de||(de={}));var le;(function(e){function n(i){const r=i;return r&&(a.string(r.detail)||r.detail===void 0)&&(a.string(r.description)||r.description===void 0)}e.is=n})(le||(le={}));var fe;(function(e){function n(i){return{label:i}}e.create=n})(fe||(fe={}));var ge;(function(e){function n(i,r){return{items:i||[],isIncomplete:!!r}}e.create=n})(ge||(ge={}));var F;(function(e){function n(r){return r.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,\"\\\\$&\")}e.fromPlainText=n;function i(r){const t=r;return a.string(t)||a.objectLiteral(t)&&a.string(t.language)&&a.string(t.value)}e.is=i})(F||(F={}));var he;(function(e){function n(i){let r=i;return!!r&&a.objectLiteral(r)&&(P.is(r.contents)||F.is(r.contents)||a.typedArray(r.contents,F.is))&&(i.range===void 0||h.is(i.range))}e.is=n})(he||(he={}));var ve;(function(e){function n(i,r){return r?{label:i,documentation:r}:{label:i}}e.create=n})(ve||(ve={}));var pe;(function(e){function n(i,r,...t){let o={label:i};return a.defined(r)&&(o.documentation=r),a.defined(t)?o.parameters=t:o.parameters=[],o}e.create=n})(pe||(pe={}));var R;(function(e){e.Text=1,e.Read=2,e.Write=3})(R||(R={}));var me;(function(e){function n(i,r){let t={range:i};return a.number(r)&&(t.kind=r),t}e.create=n})(me||(me={}));var p;(function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26})(p||(p={}));var _e;(function(e){e.Deprecated=1})(_e||(_e={}));var be;(function(e){function n(i,r,t,o,s){let u={name:i,kind:r,location:{uri:o,range:t}};return s&&(u.containerName=s),u}e.create=n})(be||(be={}));var we;(function(e){function n(i,r,t,o){return o!==void 0?{name:i,kind:r,location:{uri:t,range:o}}:{name:i,kind:r,location:{uri:t}}}e.create=n})(we||(we={}));var ke;(function(e){function n(r,t,o,s,u,f){let c={name:r,detail:t,kind:o,range:s,selectionRange:u};return f!==void 0&&(c.children=f),c}e.create=n;function i(r){let t=r;return t&&a.string(t.name)&&a.number(t.kind)&&h.is(t.range)&&h.is(t.selectionRange)&&(t.detail===void 0||a.string(t.detail))&&(t.deprecated===void 0||a.boolean(t.deprecated))&&(t.children===void 0||Array.isArray(t.children))&&(t.tags===void 0||Array.isArray(t.tags))}e.is=i})(ke||(ke={}));var xe;(function(e){e.Empty=\"\",e.QuickFix=\"quickfix\",e.Refactor=\"refactor\",e.RefactorExtract=\"refactor.extract\",e.RefactorInline=\"refactor.inline\",e.RefactorRewrite=\"refactor.rewrite\",e.Source=\"source\",e.SourceOrganizeImports=\"source.organizeImports\",e.SourceFixAll=\"source.fixAll\"})(xe||(xe={}));var j;(function(e){e.Invoked=1,e.Automatic=2})(j||(j={}));var Ie;(function(e){function n(r,t,o){let s={diagnostics:r};return t!=null&&(s.only=t),o!=null&&(s.triggerKind=o),s}e.create=n;function i(r){let t=r;return a.defined(t)&&a.typedArray(t.diagnostics,y.is)&&(t.only===void 0||a.typedArray(t.only,a.string))&&(t.triggerKind===void 0||t.triggerKind===j.Invoked||t.triggerKind===j.Automatic)}e.is=i})(Ie||(Ie={}));var Ee;(function(e){function n(r,t,o){let s={title:r},u=!0;return typeof t==\"string\"?(u=!1,s.kind=t):I.is(t)?s.command=t:s.edit=t,u&&o!==void 0&&(s.kind=o),s}e.create=n;function i(r){let t=r;return t&&a.string(t.title)&&(t.diagnostics===void 0||a.typedArray(t.diagnostics,y.is))&&(t.kind===void 0||a.string(t.kind))&&(t.edit!==void 0||t.command!==void 0)&&(t.command===void 0||I.is(t.command))&&(t.isPreferred===void 0||a.boolean(t.isPreferred))&&(t.edit===void 0||z.is(t.edit))}e.is=i})(Ee||(Ee={}));var Le;(function(e){function n(r,t){let o={range:r};return a.defined(t)&&(o.data=t),o}e.create=n;function i(r){let t=r;return a.defined(t)&&h.is(t.range)&&(a.undefined(t.command)||I.is(t.command))}e.is=i})(Le||(Le={}));var Ae;(function(e){function n(r,t){return{tabSize:r,insertSpaces:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.uinteger(t.tabSize)&&a.boolean(t.insertSpaces)}e.is=i})(Ae||(Ae={}));var Re;(function(e){function n(r,t,o){return{range:r,target:t,data:o}}e.create=n;function i(r){let t=r;return a.defined(t)&&h.is(t.range)&&(a.undefined(t.target)||a.string(t.target))}e.is=i})(Re||(Re={}));var Pe;(function(e){function n(r,t){return{range:r,parent:t}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&h.is(t.range)&&(t.parent===void 0||e.is(t.parent))}e.is=i})(Pe||(Pe={}));var De;(function(e){e.namespace=\"namespace\",e.type=\"type\",e.class=\"class\",e.enum=\"enum\",e.interface=\"interface\",e.struct=\"struct\",e.typeParameter=\"typeParameter\",e.parameter=\"parameter\",e.variable=\"variable\",e.property=\"property\",e.enumMember=\"enumMember\",e.event=\"event\",e.function=\"function\",e.method=\"method\",e.macro=\"macro\",e.keyword=\"keyword\",e.modifier=\"modifier\",e.comment=\"comment\",e.string=\"string\",e.number=\"number\",e.regexp=\"regexp\",e.operator=\"operator\",e.decorator=\"decorator\"})(De||(De={}));var Me;(function(e){e.declaration=\"declaration\",e.definition=\"definition\",e.readonly=\"readonly\",e.static=\"static\",e.deprecated=\"deprecated\",e.abstract=\"abstract\",e.async=\"async\",e.modification=\"modification\",e.documentation=\"documentation\",e.defaultLibrary=\"defaultLibrary\"})(Me||(Me={}));var Ce;(function(e){function n(i){const r=i;return a.objectLiteral(r)&&(r.resultId===void 0||typeof r.resultId==\"string\")&&Array.isArray(r.data)&&(r.data.length===0||typeof r.data[0]==\"number\")}e.is=n})(Ce||(Ce={}));var ye;(function(e){function n(r,t){return{range:r,text:t}}e.create=n;function i(r){const t=r;return t!=null&&h.is(t.range)&&a.string(t.text)}e.is=i})(ye||(ye={}));var Fe;(function(e){function n(r,t,o){return{range:r,variableName:t,caseSensitiveLookup:o}}e.create=n;function i(r){const t=r;return t!=null&&h.is(t.range)&&a.boolean(t.caseSensitiveLookup)&&(a.string(t.variableName)||t.variableName===void 0)}e.is=i})(Fe||(Fe={}));var je;(function(e){function n(r,t){return{range:r,expression:t}}e.create=n;function i(r){const t=r;return t!=null&&h.is(t.range)&&(a.string(t.expression)||t.expression===void 0)}e.is=i})(je||(je={}));var Ne;(function(e){function n(r,t){return{frameId:r,stoppedLocation:t}}e.create=n;function i(r){const t=r;return a.defined(t)&&h.is(r.stoppedLocation)}e.is=i})(Ne||(Ne={}));var G;(function(e){e.Type=1,e.Parameter=2;function n(i){return i===1||i===2}e.is=n})(G||(G={}));var J;(function(e){function n(r){return{value:r}}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&(t.tooltip===void 0||a.string(t.tooltip)||P.is(t.tooltip))&&(t.location===void 0||C.is(t.location))&&(t.command===void 0||I.is(t.command))}e.is=i})(J||(J={}));var Oe;(function(e){function n(r,t,o){const s={position:r,label:t};return o!==void 0&&(s.kind=o),s}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&w.is(t.position)&&(a.string(t.label)||a.typedArray(t.label,J.is))&&(t.kind===void 0||G.is(t.kind))&&t.textEdits===void 0||a.typedArray(t.textEdits,E.is)&&(t.tooltip===void 0||a.string(t.tooltip)||P.is(t.tooltip))&&(t.paddingLeft===void 0||a.boolean(t.paddingLeft))&&(t.paddingRight===void 0||a.boolean(t.paddingRight))}e.is=i})(Oe||(Oe={}));var Se;(function(e){function n(i){return{kind:\"snippet\",value:i}}e.createSnippet=n})(Se||(Se={}));var Ue;(function(e){function n(i,r,t,o){return{insertText:i,filterText:r,range:t,command:o}}e.create=n})(Ue||(Ue={}));var Ve;(function(e){function n(i){return{items:i}}e.create=n})(Ve||(Ve={}));var We;(function(e){e.Invoked=0,e.Automatic=1})(We||(We={}));var He;(function(e){function n(i,r){return{range:i,text:r}}e.create=n})(He||(He={}));var Xe;(function(e){function n(i,r){return{triggerKind:i,selectedCompletionInfo:r}}e.create=n})(Xe||(Xe={}));var $e;(function(e){function n(i){const r=i;return a.objectLiteral(r)&&O.is(r.uri)&&a.string(r.name)}e.is=n})($e||($e={}));var ze;(function(e){function n(o,s,u,f){return new ct(o,s,u,f)}e.create=n;function i(o){let s=o;return!!(a.defined(s)&&a.string(s.uri)&&(a.undefined(s.languageId)||a.string(s.languageId))&&a.uinteger(s.lineCount)&&a.func(s.getText)&&a.func(s.positionAt)&&a.func(s.offsetAt))}e.is=i;function r(o,s){let u=o.getText(),f=t(s,(g,_)=>{let b=g.range.start.line-_.range.start.line;return b===0?g.range.start.character-_.range.start.character:b}),c=u.length;for(let g=f.length-1;g>=0;g--){let _=f[g],b=o.offsetAt(_.range.start),l=o.offsetAt(_.range.end);if(l<=c)u=u.substring(0,b)+_.newText+u.substring(l,u.length);else throw new Error(\"Overlapping edit\");c=b}return u}e.applyEdits=r;function t(o,s){if(o.length<=1)return o;const u=o.length/2|0,f=o.slice(0,u),c=o.slice(u);t(f,s),t(c,s);let g=0,_=0,b=0;for(;g<f.length&&_<c.length;)s(f[g],c[_])<=0?o[b++]=f[g++]:o[b++]=c[_++];for(;g<f.length;)o[b++]=f[g++];for(;_<c.length;)o[b++]=c[_++];return o}})(ze||(ze={}));var ct=class{constructor(e,n,i,r){this._uri=e,this._languageId=n,this._version=i,this._content=r,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let n=this.offsetAt(e.start),i=this.offsetAt(e.end);return this._content.substring(n,i)}return this._content}update(e,n){this._content=e.text,this._version=n,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let e=[],n=this._content,i=!0;for(let r=0;r<n.length;r++){i&&(e.push(r),i=!1);let t=n.charAt(r);i=t===\"\\r\"||t===`\n`,t===\"\\r\"&&r+1<n.length&&n.charAt(r+1)===`\n`&&r++}i&&n.length>0&&e.push(n.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let n=this.getLineOffsets(),i=0,r=n.length;if(r===0)return w.create(0,e);for(;i<r;){let o=Math.floor((i+r)/2);n[o]>e?r=o:i=o+1}let t=i-1;return w.create(t,e-n[t])}offsetAt(e){let n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;let i=n[e.line],r=e.line+1<n.length?n[e.line+1]:this._content.length;return Math.max(Math.min(i+e.character,r),i)}get lineCount(){return this.getLineOffsets().length}},a;(function(e){const n=Object.prototype.toString;function i(l){return typeof l<\"u\"}e.defined=i;function r(l){return typeof l>\"u\"}e.undefined=r;function t(l){return l===!0||l===!1}e.boolean=t;function o(l){return n.call(l)===\"[object String]\"}e.string=o;function s(l){return n.call(l)===\"[object Number]\"}e.number=s;function u(l,N,Ke){return n.call(l)===\"[object Number]\"&&N<=l&&l<=Ke}e.numberRange=u;function f(l){return n.call(l)===\"[object Number]\"&&-2147483648<=l&&l<=2147483647}e.integer=f;function c(l){return n.call(l)===\"[object Number]\"&&0<=l&&l<=2147483647}e.uinteger=c;function g(l){return n.call(l)===\"[object Function]\"}e.func=g;function _(l){return l!==null&&typeof l==\"object\"}e.objectLiteral=_;function b(l,N){return Array.isArray(l)&&l.every(N)}e.typedArray=b})(a||(a={}));var dt=class{constructor(e,n,i){this._languageId=e,this._worker=n,this._disposables=[],this._listener=Object.create(null);const r=o=>{let s=o.getLanguageId();if(s!==this._languageId)return;let u;this._listener[o.uri.toString()]=o.onDidChangeContent(()=>{window.clearTimeout(u),u=window.setTimeout(()=>this._doValidate(o.uri,s),500)}),this._doValidate(o.uri,s)},t=o=>{d.editor.setModelMarkers(o,this._languageId,[]);let s=o.uri.toString(),u=this._listener[s];u&&(u.dispose(),delete this._listener[s])};this._disposables.push(d.editor.onDidCreateModel(r)),this._disposables.push(d.editor.onWillDisposeModel(t)),this._disposables.push(d.editor.onDidChangeModelLanguage(o=>{t(o.model),r(o.model)})),this._disposables.push(i(o=>{d.editor.getModels().forEach(s=>{s.getLanguageId()===this._languageId&&(t(s),r(s))})})),this._disposables.push({dispose:()=>{d.editor.getModels().forEach(t);for(let o in this._listener)this._listener[o].dispose()}}),d.editor.getModels().forEach(r)}dispose(){this._disposables.forEach(e=>e&&e.dispose()),this._disposables.length=0}_doValidate(e,n){this._worker(e).then(i=>i.doValidation(e.toString())).then(i=>{const r=i.map(o=>ft(e,o));let t=d.editor.getModel(e);t&&t.getLanguageId()===n&&d.editor.setModelMarkers(t,n,r)}).then(void 0,i=>{console.error(i)})}};function lt(e){switch(e){case x.Error:return d.MarkerSeverity.Error;case x.Warning:return d.MarkerSeverity.Warning;case x.Information:return d.MarkerSeverity.Info;case x.Hint:return d.MarkerSeverity.Hint;default:return d.MarkerSeverity.Info}}function ft(e,n){let i=typeof n.code==\"number\"?String(n.code):n.code;return{severity:lt(n.severity),startLineNumber:n.range.start.line+1,startColumn:n.range.start.character+1,endLineNumber:n.range.end.line+1,endColumn:n.range.end.character+1,message:n.message,code:i,source:n.source}}var gt=class{constructor(e,n){this._worker=e,this._triggerCharacters=n}get triggerCharacters(){return this._triggerCharacters}provideCompletionItems(e,n,i,r){const t=e.uri;return this._worker(t).then(o=>o.doComplete(t.toString(),k(n))).then(o=>{if(!o)return;const s=e.getWordUntilPosition(n),u=new d.Range(n.lineNumber,s.startColumn,n.lineNumber,s.endColumn),f=o.items.map(c=>{const g={label:c.label,insertText:c.insertText||c.label,sortText:c.sortText,filterText:c.filterText,documentation:c.documentation,detail:c.detail,command:pt(c.command),range:u,kind:vt(c.kind)};return c.textEdit&&(ht(c.textEdit)?g.range={insert:m(c.textEdit.insert),replace:m(c.textEdit.replace)}:g.range=m(c.textEdit.range),g.insertText=c.textEdit.newText),c.additionalTextEdits&&(g.additionalTextEdits=c.additionalTextEdits.map(D)),c.insertTextFormat===Q.Snippet&&(g.insertTextRules=d.languages.CompletionItemInsertTextRule.InsertAsSnippet),g});return{isIncomplete:o.isIncomplete,suggestions:f}})}};function k(e){if(e)return{character:e.column-1,line:e.lineNumber-1}}function Qe(e){if(e)return{start:{line:e.startLineNumber-1,character:e.startColumn-1},end:{line:e.endLineNumber-1,character:e.endColumn-1}}}function m(e){if(e)return new d.Range(e.start.line+1,e.start.character+1,e.end.line+1,e.end.character+1)}function ht(e){return typeof e.insert<\"u\"&&typeof e.replace<\"u\"}function vt(e){const n=d.languages.CompletionItemKind;switch(e){case v.Text:return n.Text;case v.Method:return n.Method;case v.Function:return n.Function;case v.Constructor:return n.Constructor;case v.Field:return n.Field;case v.Variable:return n.Variable;case v.Class:return n.Class;case v.Interface:return n.Interface;case v.Module:return n.Module;case v.Property:return n.Property;case v.Unit:return n.Unit;case v.Value:return n.Value;case v.Enum:return n.Enum;case v.Keyword:return n.Keyword;case v.Snippet:return n.Snippet;case v.Color:return n.Color;case v.File:return n.File;case v.Reference:return n.Reference}return n.Property}function D(e){if(e)return{range:m(e.range),text:e.newText}}function pt(e){return e&&e.command===\"editor.action.triggerSuggest\"?{id:e.command,title:e.title,arguments:e.arguments}:void 0}var mt=class{constructor(e){this._worker=e}provideHover(e,n,i){let r=e.uri;return this._worker(r).then(t=>t.doHover(r.toString(),k(n))).then(t=>{if(t)return{range:m(t.range),contents:bt(t.contents)}})}};function _t(e){return e&&typeof e==\"object\"&&typeof e.kind==\"string\"}function Be(e){return typeof e==\"string\"?{value:e}:_t(e)?e.kind===\"plaintext\"?{value:e.value.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,\"\\\\$&\")}:{value:e.value}:{value:\"```\"+e.language+`\n`+e.value+\"\\n```\\n\"}}function bt(e){if(e)return Array.isArray(e)?e.map(Be):[Be(e)]}var wt=class{constructor(e){this._worker=e}provideDocumentHighlights(e,n,i){const r=e.uri;return this._worker(r).then(t=>t.findDocumentHighlights(r.toString(),k(n))).then(t=>{if(t)return t.map(o=>({range:m(o.range),kind:kt(o.kind)}))})}};function kt(e){switch(e){case R.Read:return d.languages.DocumentHighlightKind.Read;case R.Write:return d.languages.DocumentHighlightKind.Write;case R.Text:return d.languages.DocumentHighlightKind.Text}return d.languages.DocumentHighlightKind.Text}var xt=class{constructor(e){this._worker=e}provideDefinition(e,n,i){const r=e.uri;return this._worker(r).then(t=>t.findDefinition(r.toString(),k(n))).then(t=>{if(t)return[Ge(t)]})}};function Ge(e){return{uri:d.Uri.parse(e.uri),range:m(e.range)}}var It=class{constructor(e){this._worker=e}provideReferences(e,n,i,r){const t=e.uri;return this._worker(t).then(o=>o.findReferences(t.toString(),k(n))).then(o=>{if(o)return o.map(Ge)})}},Et=class{constructor(e){this._worker=e}provideRenameEdits(e,n,i,r){const t=e.uri;return this._worker(t).then(o=>o.doRename(t.toString(),k(n),i)).then(o=>Lt(o))}};function Lt(e){if(!e||!e.changes)return;let n=[];for(let i in e.changes){const r=d.Uri.parse(i);for(let t of e.changes[i])n.push({resource:r,versionId:void 0,textEdit:{range:m(t.range),text:t.newText}})}return{edits:n}}var At=class{constructor(e){this._worker=e}provideDocumentSymbols(e,n){const i=e.uri;return this._worker(i).then(r=>r.findDocumentSymbols(i.toString())).then(r=>{if(r)return r.map(t=>Rt(t)?Je(t):{name:t.name,detail:\"\",containerName:t.containerName,kind:Te(t.kind),range:m(t.location.range),selectionRange:m(t.location.range),tags:[]})})}};function Rt(e){return\"children\"in e}function Je(e){return{name:e.name,detail:e.detail??\"\",kind:Te(e.kind),range:m(e.range),selectionRange:m(e.selectionRange),tags:e.tags??[],children:(e.children??[]).map(n=>Je(n))}}function Te(e){let n=d.languages.SymbolKind;switch(e){case p.File:return n.File;case p.Module:return n.Module;case p.Namespace:return n.Namespace;case p.Package:return n.Package;case p.Class:return n.Class;case p.Method:return n.Method;case p.Property:return n.Property;case p.Field:return n.Field;case p.Constructor:return n.Constructor;case p.Enum:return n.Enum;case p.Interface:return n.Interface;case p.Function:return n.Function;case p.Variable:return n.Variable;case p.Constant:return n.Constant;case p.String:return n.String;case p.Number:return n.Number;case p.Boolean:return n.Boolean;case p.Array:return n.Array}return n.Function}var Nt=class{constructor(e){this._worker=e}provideLinks(e,n){const i=e.uri;return this._worker(i).then(r=>r.findDocumentLinks(i.toString())).then(r=>{if(r)return{links:r.map(t=>({range:m(t.range),url:t.target}))}})}},Pt=class{constructor(e){this._worker=e}provideDocumentFormattingEdits(e,n,i){const r=e.uri;return this._worker(r).then(t=>t.format(r.toString(),null,Ye(n)).then(o=>{if(!(!o||o.length===0))return o.map(D)}))}},Dt=class{constructor(e){this._worker=e,this.canFormatMultipleRanges=!1}provideDocumentRangeFormattingEdits(e,n,i,r){const t=e.uri;return this._worker(t).then(o=>o.format(t.toString(),Qe(n),Ye(i)).then(s=>{if(!(!s||s.length===0))return s.map(D)}))}};function Ye(e){return{tabSize:e.tabSize,insertSpaces:e.insertSpaces}}var Mt=class{constructor(e){this._worker=e}provideDocumentColors(e,n){const i=e.uri;return this._worker(i).then(r=>r.findDocumentColors(i.toString())).then(r=>{if(r)return r.map(t=>({color:t.color,range:m(t.range)}))})}provideColorPresentations(e,n,i){const r=e.uri;return this._worker(r).then(t=>t.getColorPresentations(r.toString(),n.color,Qe(n.range))).then(t=>{if(t)return t.map(o=>{let s={label:o.label};return o.textEdit&&(s.textEdit=D(o.textEdit)),o.additionalTextEdits&&(s.additionalTextEdits=o.additionalTextEdits.map(D)),s})})}},Ct=class{constructor(e){this._worker=e}provideFoldingRanges(e,n,i){const r=e.uri;return this._worker(r).then(t=>t.getFoldingRanges(r.toString(),n)).then(t=>{if(t)return t.map(o=>{const s={start:o.startLine+1,end:o.endLine+1};return typeof o.kind<\"u\"&&(s.kind=yt(o.kind)),s})})}};function yt(e){switch(e){case A.Comment:return d.languages.FoldingRangeKind.Comment;case A.Imports:return d.languages.FoldingRangeKind.Imports;case A.Region:return d.languages.FoldingRangeKind.Region}}var Ft=class{constructor(e){this._worker=e}provideSelectionRanges(e,n,i){const r=e.uri;return this._worker(r).then(t=>t.getSelectionRanges(r.toString(),n.map(k))).then(t=>{if(t)return t.map(o=>{const s=[];for(;o;)s.push({range:m(o.range)}),o=o.parent;return s})})}};function Ot(e){const n=[],i=[],r=new ut(e);n.push(r);const t=(...s)=>r.getLanguageServiceWorker(...s);function o(){const{languageId:s,modeConfiguration:u}=e;Ze(i),u.completionItems&&i.push(d.languages.registerCompletionItemProvider(s,new gt(t,[\"/\",\"-\",\":\"]))),u.hovers&&i.push(d.languages.registerHoverProvider(s,new mt(t))),u.documentHighlights&&i.push(d.languages.registerDocumentHighlightProvider(s,new wt(t))),u.definitions&&i.push(d.languages.registerDefinitionProvider(s,new xt(t))),u.references&&i.push(d.languages.registerReferenceProvider(s,new It(t))),u.documentSymbols&&i.push(d.languages.registerDocumentSymbolProvider(s,new At(t))),u.rename&&i.push(d.languages.registerRenameProvider(s,new Et(t))),u.colors&&i.push(d.languages.registerColorProvider(s,new Mt(t))),u.foldingRanges&&i.push(d.languages.registerFoldingRangeProvider(s,new Ct(t))),u.diagnostics&&i.push(new dt(s,t,e.onDidChange)),u.selectionRanges&&i.push(d.languages.registerSelectionRangeProvider(s,new Ft(t))),u.documentFormattingEdits&&i.push(d.languages.registerDocumentFormattingEditProvider(s,new Pt(t))),u.documentRangeFormattingEdits&&i.push(d.languages.registerDocumentRangeFormattingEditProvider(s,new Dt(t)))}return o(),n.push(qe(i)),qe(n)}function qe(e){return{dispose:()=>Ze(e)}}function Ze(e){for(;e.length;)e.pop().dispose()}export{gt as CompletionAdapter,xt as DefinitionAdapter,dt as DiagnosticsAdapter,Mt as DocumentColorAdapter,Pt as DocumentFormattingEditProvider,wt as DocumentHighlightAdapter,Nt as DocumentLinkAdapter,Dt as DocumentRangeFormattingEditProvider,At as DocumentSymbolAdapter,Ct as FoldingRangeAdapter,mt as HoverAdapter,It as ReferenceAdapter,Et as RenameAdapter,Ft as SelectionRangeAdapter,ut as WorkerManager,k as fromPosition,Qe as fromRange,Ot as setupMode,m as toRange,D as toTextEdit};\n"
  },
  {
    "path": "jesse/static/_nuxt/B-lZjTdr.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var g={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"[\",close:\"]\"},{open:\"{\",close:\"}\"},{open:\"(\",close:\")\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"}]};function e(i){let o=[];const a=i.split(/\\t+|\\r+|\\n+| +/);for(let r=0;r<a.length;++r)a[r].length>0&&o.push(a[r]);return o}var s=e(\"true false\"),c=e(`\n\t\t\t  alias\n\t\t\t  break\n\t\t\t  case\n\t\t\t  const\n\t\t\t  const_assert\n\t\t\t  continue\n\t\t\t  continuing\n\t\t\t  default\n\t\t\t  diagnostic\n\t\t\t  discard\n\t\t\t  else\n\t\t\t  enable\n\t\t\t  fn\n\t\t\t  for\n\t\t\t  if\n\t\t\t  let\n\t\t\t  loop\n\t\t\t  override\n\t\t\t  requires\n\t\t\t  return\n\t\t\t  struct\n\t\t\t  switch\n\t\t\t  var\n\t\t\t  while\n\t\t\t  `),m=e(`\n\t\t\t  NULL\n\t\t\t  Self\n\t\t\t  abstract\n\t\t\t  active\n\t\t\t  alignas\n\t\t\t  alignof\n\t\t\t  as\n\t\t\t  asm\n\t\t\t  asm_fragment\n\t\t\t  async\n\t\t\t  attribute\n\t\t\t  auto\n\t\t\t  await\n\t\t\t  become\n\t\t\t  binding_array\n\t\t\t  cast\n\t\t\t  catch\n\t\t\t  class\n\t\t\t  co_await\n\t\t\t  co_return\n\t\t\t  co_yield\n\t\t\t  coherent\n\t\t\t  column_major\n\t\t\t  common\n\t\t\t  compile\n\t\t\t  compile_fragment\n\t\t\t  concept\n\t\t\t  const_cast\n\t\t\t  consteval\n\t\t\t  constexpr\n\t\t\t  constinit\n\t\t\t  crate\n\t\t\t  debugger\n\t\t\t  decltype\n\t\t\t  delete\n\t\t\t  demote\n\t\t\t  demote_to_helper\n\t\t\t  do\n\t\t\t  dynamic_cast\n\t\t\t  enum\n\t\t\t  explicit\n\t\t\t  export\n\t\t\t  extends\n\t\t\t  extern\n\t\t\t  external\n\t\t\t  fallthrough\n\t\t\t  filter\n\t\t\t  final\n\t\t\t  finally\n\t\t\t  friend\n\t\t\t  from\n\t\t\t  fxgroup\n\t\t\t  get\n\t\t\t  goto\n\t\t\t  groupshared\n\t\t\t  highp\n\t\t\t  impl\n\t\t\t  implements\n\t\t\t  import\n\t\t\t  inline\n\t\t\t  instanceof\n\t\t\t  interface\n\t\t\t  layout\n\t\t\t  lowp\n\t\t\t  macro\n\t\t\t  macro_rules\n\t\t\t  match\n\t\t\t  mediump\n\t\t\t  meta\n\t\t\t  mod\n\t\t\t  module\n\t\t\t  move\n\t\t\t  mut\n\t\t\t  mutable\n\t\t\t  namespace\n\t\t\t  new\n\t\t\t  nil\n\t\t\t  noexcept\n\t\t\t  noinline\n\t\t\t  nointerpolation\n\t\t\t  noperspective\n\t\t\t  null\n\t\t\t  nullptr\n\t\t\t  of\n\t\t\t  operator\n\t\t\t  package\n\t\t\t  packoffset\n\t\t\t  partition\n\t\t\t  pass\n\t\t\t  patch\n\t\t\t  pixelfragment\n\t\t\t  precise\n\t\t\t  precision\n\t\t\t  premerge\n\t\t\t  priv\n\t\t\t  protected\n\t\t\t  pub\n\t\t\t  public\n\t\t\t  readonly\n\t\t\t  ref\n\t\t\t  regardless\n\t\t\t  register\n\t\t\t  reinterpret_cast\n\t\t\t  require\n\t\t\t  resource\n\t\t\t  restrict\n\t\t\t  self\n\t\t\t  set\n\t\t\t  shared\n\t\t\t  sizeof\n\t\t\t  smooth\n\t\t\t  snorm\n\t\t\t  static\n\t\t\t  static_assert\n\t\t\t  static_cast\n\t\t\t  std\n\t\t\t  subroutine\n\t\t\t  super\n\t\t\t  target\n\t\t\t  template\n\t\t\t  this\n\t\t\t  thread_local\n\t\t\t  throw\n\t\t\t  trait\n\t\t\t  try\n\t\t\t  type\n\t\t\t  typedef\n\t\t\t  typeid\n\t\t\t  typename\n\t\t\t  typeof\n\t\t\t  union\n\t\t\t  unless\n\t\t\t  unorm\n\t\t\t  unsafe\n\t\t\t  unsized\n\t\t\t  use\n\t\t\t  using\n\t\t\t  varying\n\t\t\t  virtual\n\t\t\t  volatile\n\t\t\t  wgsl\n\t\t\t  where\n\t\t\t  with\n\t\t\t  writeonly\n\t\t\t  yield\n\t\t\t  `),l=e(`\n\t\tread write read_write\n\t\tfunction private workgroup uniform storage\n\t\tperspective linear flat\n\t\tcenter centroid sample\n\t\tvertex_index instance_index position front_facing frag_depth\n\t\t\tlocal_invocation_id local_invocation_index\n\t\t\tglobal_invocation_id workgroup_id num_workgroups\n\t\t\tsample_index sample_mask\n\t\trgba8unorm\n\t\trgba8snorm\n\t\trgba8uint\n\t\trgba8sint\n\t\trgba16uint\n\t\trgba16sint\n\t\trgba16float\n\t\tr32uint\n\t\tr32sint\n\t\tr32float\n\t\trg32uint\n\t\trg32sint\n\t\trg32float\n\t\trgba32uint\n\t\trgba32sint\n\t\trgba32float\n\t\tbgra8unorm\n`),u=e(`\n\t\tbool\n\t\tf16\n\t\tf32\n\t\ti32\n\t\tsampler sampler_comparison\n\t\ttexture_depth_2d\n\t\ttexture_depth_2d_array\n\t\ttexture_depth_cube\n\t\ttexture_depth_cube_array\n\t\ttexture_depth_multisampled_2d\n\t\ttexture_external\n\t\ttexture_external\n\t\tu32\n\t\t`),p=e(`\n\t\tarray\n\t\tatomic\n\t\tmat2x2\n\t\tmat2x3\n\t\tmat2x4\n\t\tmat3x2\n\t\tmat3x3\n\t\tmat3x4\n\t\tmat4x2\n\t\tmat4x3\n\t\tmat4x4\n\t\tptr\n\t\ttexture_1d\n\t\ttexture_2d\n\t\ttexture_2d_array\n\t\ttexture_3d\n\t\ttexture_cube\n\t\ttexture_cube_array\n\t\ttexture_multisampled_2d\n\t\ttexture_storage_1d\n\t\ttexture_storage_2d\n\t\ttexture_storage_2d_array\n\t\ttexture_storage_3d\n\t\tvec2\n\t\tvec3\n\t\tvec4\n\t\t`),d=e(`\n\t\tvec2i vec3i vec4i\n\t\tvec2u vec3u vec4u\n\t\tvec2f vec3f vec4f\n\t\tvec2h vec3h vec4h\n\t\tmat2x2f mat2x3f mat2x4f\n\t\tmat3x2f mat3x3f mat3x4f\n\t\tmat4x2f mat4x3f mat4x4f\n\t\tmat2x2h mat2x3h mat2x4h\n\t\tmat3x2h mat3x3h mat3x4h\n\t\tmat4x2h mat4x3h mat4x4h\n\t\t`),x=e(`\n  bitcast all any select arrayLength abs acos acosh asin asinh atan atanh atan2\n  ceil clamp cos cosh countLeadingZeros countOneBits countTrailingZeros cross\n  degrees determinant distance dot exp exp2 extractBits faceForward firstLeadingBit\n  firstTrailingBit floor fma fract frexp inverseBits inverseSqrt ldexp length\n  log log2 max min mix modf normalize pow quantizeToF16 radians reflect refract\n  reverseBits round saturate sign sin sinh smoothstep sqrt step tan tanh transpose\n  trunc dpdx dpdxCoarse dpdxFine dpdy dpdyCoarse dpdyFine fwidth fwidthCoarse fwidthFine\n  textureDimensions textureGather textureGatherCompare textureLoad textureNumLayers\n  textureNumLevels textureNumSamples textureSample textureSampleBias textureSampleCompare\n  textureSampleCompareLevel textureSampleGrad textureSampleLevel textureSampleBaseClampToEdge\n  textureStore atomicLoad atomicStore atomicAdd atomicSub atomicMax atomicMin\n  atomicAnd atomicOr atomicXor atomicExchange atomicCompareExchangeWeak pack4x8snorm\n  pack4x8unorm pack2x16snorm pack2x16unorm pack2x16float unpack4x8snorm unpack4x8unorm\n  unpack2x16snorm unpack2x16unorm unpack2x16float storageBarrier workgroupBarrier\n  workgroupUniformLoad\n`),f=e(`\n\t\t\t\t\t &\n\t\t\t\t\t &&\n\t\t\t\t\t ->\n\t\t\t\t\t /\n\t\t\t\t\t =\n\t\t\t\t\t ==\n\t\t\t\t\t !=\n\t\t\t\t\t >\n\t\t\t\t\t >=\n\t\t\t\t\t <\n\t\t\t\t\t <=\n\t\t\t\t\t %\n\t\t\t\t\t -\n\t\t\t\t\t --\n\t\t\t\t\t +\n\t\t\t\t\t ++\n\t\t\t\t\t |\n\t\t\t\t\t ||\n\t\t\t\t\t *\n\t\t\t\t\t <<\n\t\t\t\t\t >>\n\t\t\t\t\t +=\n\t\t\t\t\t -=\n\t\t\t\t\t *=\n\t\t\t\t\t /=\n\t\t\t\t\t %=\n\t\t\t\t\t &=\n\t\t\t\t\t |=\n\t\t\t\t\t ^=\n\t\t\t\t\t >>=\n\t\t\t\t\t <<=\n\t\t\t\t\t `),_=/enable|requires|diagnostic/,n=new RegExp(\"[_\\\\p{XID_Start}]\\\\p{XID_Continue}*\",\"u\"),t=\"variable.predefined\",h={tokenPostfix:\".wgsl\",defaultToken:\"invalid\",unicode:!0,atoms:s,keywords:c,reserved:m,predeclared_enums:l,predeclared_types:u,predeclared_type_generators:p,predeclared_type_aliases:d,predeclared_intrinsics:x,operators:f,symbols:/[!%&*+\\-\\.\\/:;<=>^|_~,]+/,tokenizer:{root:[[_,\"keyword\",\"@directive\"],[n,{cases:{\"@atoms\":t,\"@keywords\":\"keyword\",\"@reserved\":\"invalid\",\"@predeclared_enums\":t,\"@predeclared_types\":t,\"@predeclared_type_generators\":t,\"@predeclared_type_aliases\":t,\"@predeclared_intrinsics\":t,\"@default\":\"identifier\"}}],{include:\"@commentOrSpace\"},{include:\"@numbers\"},[/[{}()\\[\\]]/,\"@brackets\"],[\"@\",\"annotation\",\"@attribute\"],[/@symbols/,{cases:{\"@operators\":\"operator\",\"@default\":\"delimiter\"}}],[/./,\"invalid\"]],commentOrSpace:[[/\\s+/,\"white\"],[/\\/\\*/,\"comment\",\"@blockComment\"],[/\\/\\/.*$/,\"comment\"]],blockComment:[[/[^\\/*]+/,\"comment\"],[/\\/\\*/,\"comment\",\"@push\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],attribute:[{include:\"@commentOrSpace\"},[/\\w+/,\"annotation\",\"@pop\"]],directive:[{include:\"@commentOrSpace\"},[/[()]/,\"@brackets\"],[/,/,\"delimiter\"],[n,\"meta.content\"],[/;/,\"delimiter\",\"@pop\"]],numbers:[[/0[fh]/,\"number.float\"],[/[1-9][0-9]*[fh]/,\"number.float\"],[/[0-9]*\\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/,\"number.float\"],[/[0-9]+\\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/,\"number.float\"],[/[0-9]+[eE][+-]?[0-9]+[fh]?/,\"number.float\"],[/0[xX][0-9a-fA-F]*\\.[0-9a-fA-F]+(?:[pP][+-]?[0-9]+[fh]?)?/,\"number.hex\"],[/0[xX][0-9a-fA-F]+\\.[0-9a-fA-F]*(?:[pP][+-]?[0-9]+[fh]?)?/,\"number.hex\"],[/0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/,\"number.hex\"],[/0[xX][0-9a-fA-F]+[iu]?/,\"number.hex\"],[/[1-9][0-9]*[iu]?/,\"number\"],[/0[iu]?/,\"number\"]]}};export{g as conf,h as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/B0XVJmRM.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Nextflow\",\"name\":\"nextflow\",\"patterns\":[{\"include\":\"#nextflow\"}],\"repository\":{\"enum-def\":{\"begin\":\"^\\\\\\\\s*(enum)\\\\\\\\s+(\\\\\\\\w+)\\\\\\\\s*{\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.nextflow\"},\"2\":{\"name\":\"storage.type.groovy\"}},\"end\":\"}\",\"patterns\":[{\"include\":\"source.nextflow-groovy#comments\"},{\"include\":\"#enum-values\"}]},\"enum-values\":{\"patterns\":[{\"begin\":\"(?<=;|^)\\\\\\\\s*\\\\\\\\b([A-Z0-9_]+)(?=\\\\\\\\s*(?:,|}|\\\\\\\\(|$))\",\"beginCaptures\":{\"1\":{\"name\":\"constant.enum.name.groovy\"}},\"end\":\",|(?=})|^(?!\\\\\\\\s*\\\\\\\\w+\\\\\\\\s*(?:,|$))\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"name\":\"meta.enum.value.groovy\",\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.definition.seperator.parameter.groovy\"},{\"include\":\"#groovy-code\"}]}]}]},\"function-body\":{\"patterns\":[{\"match\":\"\\\\\\\\s\"},{\"begin\":\"(?=(?:\\\\\\\\w|<)[^\\\\\\\\(]*\\\\\\\\s+(?:[\\\\\\\\w$]|<)+\\\\\\\\s*\\\\\\\\()\",\"end\":\"(?=[\\\\\\\\w$]+\\\\\\\\s*\\\\\\\\()\",\"name\":\"meta.method.return-type.java\",\"patterns\":[{\"include\":\"source.nextflow-groovy#types\"}]},{\"begin\":\"([\\\\\\\\w$]+)\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.nextflow\"}},\"end\":\"\\\\\\\\)\",\"name\":\"meta.definition.method.signature.java\",\"patterns\":[{\"begin\":\"(?=[^)])\",\"end\":\"(?=\\\\\\\\))\",\"name\":\"meta.method.parameters.groovy\",\"patterns\":[{\"begin\":\"(?=[^,)])\",\"end\":\"(?=,|\\\\\\\\))\",\"name\":\"meta.method.parameter.groovy\",\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.definition.separator.groovy\"},{\"begin\":\"=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.assignment.groovy\"}},\"end\":\"(?=,|\\\\\\\\))\",\"name\":\"meta.parameter.default.groovy\",\"patterns\":[{\"include\":\"source.nextflow-groovy#groovy-code\"}]},{\"include\":\"source.nextflow-groovy#parameters\"}]}]}]},{\"begin\":\"(?=<)\",\"end\":\"(?=\\\\\\\\s)\",\"name\":\"meta.method.paramerised-type.groovy\",\"patterns\":[{\"begin\":\"<\",\"end\":\">\",\"name\":\"storage.type.parameters.groovy\",\"patterns\":[{\"include\":\"source.nextflow-groovy#types\"},{\"match\":\",\",\"name\":\"punctuation.definition.seperator.groovy\"}]}]},{\"begin\":\"{\",\"end\":\"(?=})\",\"name\":\"meta.method.body.java\",\"patterns\":[{\"include\":\"source.nextflow-groovy#groovy-code\"}]}]},\"function-def\":{\"applyEndPatternLast\":1,\"begin\":\"(?:(?<=;|^|{)(?=\\\\\\\\s*(?:(?:def)|(?:(?:(?:boolean|byte|char|short|int|float|long|double)|(?:@?(?:[a-zA-Z]\\\\\\\\w*\\\\\\\\.)*[A-Z]+\\\\\\\\w*))[\\\\\\\\[\\\\\\\\]]*(?:<.*>)?)n)\\\\\\\\s+([^=]+\\\\\\\\s+)?\\\\\\\\w+\\\\\\\\s*\\\\\\\\())\",\"end\":\"}|(?=[^{])\",\"name\":\"meta.definition.method.groovy\",\"patterns\":[{\"include\":\"#function-body\"}]},\"include-decl\":{\"patterns\":[{\"match\":\"^\\\\\\\\b(include)\\\\\\\\b\",\"name\":\"keyword.nextflow\"},{\"match\":\"\\\\\\\\b(from)\\\\\\\\b\",\"name\":\"keyword.nextflow\"}]},\"nextflow\":{\"patterns\":[{\"include\":\"#enum-def\"},{\"include\":\"#function-def\"},{\"include\":\"#process-def\"},{\"include\":\"#workflow-def\"},{\"include\":\"#output-def\"},{\"include\":\"#include-decl\"},{\"include\":\"source.nextflow-groovy\"}]},\"output-def\":{\"begin\":\"^\\\\\\\\s*(output)\\\\\\\\s*{\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.nextflow\"}},\"end\":\"}\",\"name\":\"output.nextflow\",\"patterns\":[{\"include\":\"source.nextflow-groovy#groovy\"}]},\"process-body\":{\"patterns\":[{\"match\":\"(?:input|output|when|script|shell|exec):\",\"name\":\"constant.block.nextflow\"},{\"match\":\"\\\\\\\\b(val|env|file|path|stdin|stdout|tuple)(\\\\\\\\(|\\\\\\\\s)\",\"name\":\"entity.name.function.nextflow\"},{\"include\":\"source.nextflow-groovy#groovy\"}]},\"process-def\":{\"begin\":\"^\\\\\\\\s*(process)\\\\\\\\s+(\\\\\\\\w+)\\\\\\\\s*{\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.nextflow\"},\"2\":{\"name\":\"entity.name.function.nextflow\"}},\"end\":\"}\",\"name\":\"process.nextflow\",\"patterns\":[{\"include\":\"#process-body\"}]},\"workflow-body\":{\"patterns\":[{\"match\":\"(?:take|main|emit|publish):\",\"name\":\"constant.block.nextflow\"},{\"include\":\"source.nextflow-groovy#groovy\"}]},\"workflow-def\":{\"begin\":\"^\\\\\\\\s*(workflow)(?:\\\\\\\\s+(\\\\\\\\w+))?\\\\\\\\s*{\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.nextflow\"},\"2\":{\"name\":\"entity.name.function.nextflow\"}},\"end\":\"}\",\"name\":\"workflow.nextflow\",\"patterns\":[{\"include\":\"#workflow-body\"}]}},\"scopeName\":\"source.nextflow\",\"aliases\":[\"nf\"]}')),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/B0m2ddpp.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBorder\":\"#80CBC4\",\"activityBar.background\":\"#FAFAFA\",\"activityBar.border\":\"#FAFAFA60\",\"activityBar.dropBackground\":\"#E5393580\",\"activityBar.foreground\":\"#90A4AE\",\"activityBarBadge.background\":\"#80CBC4\",\"activityBarBadge.foreground\":\"#000000\",\"badge.background\":\"#CCD7DA30\",\"badge.foreground\":\"#90A4AE\",\"breadcrumb.activeSelectionForeground\":\"#80CBC4\",\"breadcrumb.background\":\"#FAFAFA\",\"breadcrumb.focusForeground\":\"#90A4AE\",\"breadcrumb.foreground\":\"#758a95\",\"breadcrumbPicker.background\":\"#FAFAFA\",\"button.background\":\"#80CBC440\",\"button.foreground\":\"#ffffff\",\"debugConsole.errorForeground\":\"#E53935\",\"debugConsole.infoForeground\":\"#39ADB5\",\"debugConsole.warningForeground\":\"#E2931D\",\"debugToolBar.background\":\"#FAFAFA\",\"diffEditor.insertedTextBackground\":\"#39ADB520\",\"diffEditor.removedTextBackground\":\"#FF537020\",\"dropdown.background\":\"#FAFAFA\",\"dropdown.border\":\"#00000010\",\"editor.background\":\"#FAFAFA\",\"editor.findMatchBackground\":\"#00000020\",\"editor.findMatchBorder\":\"#80CBC4\",\"editor.findMatchHighlight\":\"#90A4AE\",\"editor.findMatchHighlightBackground\":\"#00000010\",\"editor.findMatchHighlightBorder\":\"#00000030\",\"editor.findRangeHighlightBackground\":\"#E2931D30\",\"editor.foreground\":\"#90A4AE\",\"editor.lineHighlightBackground\":\"#CCD7DA50\",\"editor.lineHighlightBorder\":\"#CCD7DA00\",\"editor.rangeHighlightBackground\":\"#FFFFFF0d\",\"editor.selectionBackground\":\"#80CBC440\",\"editor.selectionHighlightBackground\":\"#27272720\",\"editor.wordHighlightBackground\":\"#FF537030\",\"editor.wordHighlightStrongBackground\":\"#91B85930\",\"editorBracketMatch.background\":\"#FAFAFA\",\"editorBracketMatch.border\":\"#27272750\",\"editorCursor.foreground\":\"#272727\",\"editorError.foreground\":\"#E5393570\",\"editorGroup.border\":\"#00000020\",\"editorGroup.dropBackground\":\"#E5393580\",\"editorGroup.focusedEmptyBorder\":\"#E53935\",\"editorGroupHeader.tabsBackground\":\"#FAFAFA\",\"editorGutter.addedBackground\":\"#91B85960\",\"editorGutter.deletedBackground\":\"#E5393560\",\"editorGutter.modifiedBackground\":\"#6182B860\",\"editorHoverWidget.background\":\"#FAFAFA\",\"editorHoverWidget.border\":\"#00000010\",\"editorIndentGuide.activeBackground\":\"#B0BEC5\",\"editorIndentGuide.background\":\"#B0BEC570\",\"editorInfo.foreground\":\"#6182B870\",\"editorLineNumber.activeForeground\":\"#758a95\",\"editorLineNumber.foreground\":\"#CFD8DC\",\"editorLink.activeForeground\":\"#90A4AE\",\"editorMarkerNavigation.background\":\"#90A4AE05\",\"editorOverviewRuler.border\":\"#FAFAFA\",\"editorOverviewRuler.errorForeground\":\"#E5393540\",\"editorOverviewRuler.findMatchForeground\":\"#80CBC4\",\"editorOverviewRuler.infoForeground\":\"#6182B840\",\"editorOverviewRuler.warningForeground\":\"#E2931D40\",\"editorRuler.foreground\":\"#B0BEC5\",\"editorSuggestWidget.background\":\"#FAFAFA\",\"editorSuggestWidget.border\":\"#00000010\",\"editorSuggestWidget.foreground\":\"#90A4AE\",\"editorSuggestWidget.highlightForeground\":\"#80CBC4\",\"editorSuggestWidget.selectedBackground\":\"#CCD7DA50\",\"editorWarning.foreground\":\"#E2931D70\",\"editorWhitespace.foreground\":\"#90A4AE40\",\"editorWidget.background\":\"#FAFAFA\",\"editorWidget.border\":\"#80CBC4\",\"editorWidget.resizeBorder\":\"#80CBC4\",\"extensionBadge.remoteForeground\":\"#90A4AE\",\"extensionButton.prominentBackground\":\"#91B85990\",\"extensionButton.prominentForeground\":\"#90A4AE\",\"extensionButton.prominentHoverBackground\":\"#91B859\",\"focusBorder\":\"#FFFFFF00\",\"foreground\":\"#90A4AE\",\"gitDecoration.conflictingResourceForeground\":\"#E2931D90\",\"gitDecoration.deletedResourceForeground\":\"#E5393590\",\"gitDecoration.ignoredResourceForeground\":\"#758a9590\",\"gitDecoration.modifiedResourceForeground\":\"#6182B890\",\"gitDecoration.untrackedResourceForeground\":\"#91B85990\",\"input.background\":\"#EEEEEE\",\"input.border\":\"#00000010\",\"input.foreground\":\"#90A4AE\",\"input.placeholderForeground\":\"#90A4AE60\",\"inputOption.activeBackground\":\"#90A4AE30\",\"inputOption.activeBorder\":\"#90A4AE30\",\"inputValidation.errorBorder\":\"#E53935\",\"inputValidation.infoBorder\":\"#6182B8\",\"inputValidation.warningBorder\":\"#E2931D\",\"list.activeSelectionBackground\":\"#FAFAFA\",\"list.activeSelectionForeground\":\"#80CBC4\",\"list.dropBackground\":\"#E5393580\",\"list.focusBackground\":\"#90A4AE20\",\"list.focusForeground\":\"#90A4AE\",\"list.highlightForeground\":\"#80CBC4\",\"list.hoverBackground\":\"#FAFAFA\",\"list.hoverForeground\":\"#B1C7D3\",\"list.inactiveSelectionBackground\":\"#CCD7DA50\",\"list.inactiveSelectionForeground\":\"#80CBC4\",\"listFilterWidget.background\":\"#CCD7DA50\",\"listFilterWidget.noMatchesOutline\":\"#CCD7DA50\",\"listFilterWidget.outline\":\"#CCD7DA50\",\"menu.background\":\"#FAFAFA\",\"menu.foreground\":\"#90A4AE\",\"menu.selectionBackground\":\"#CCD7DA50\",\"menu.selectionBorder\":\"#CCD7DA50\",\"menu.selectionForeground\":\"#80CBC4\",\"menu.separatorBackground\":\"#90A4AE\",\"menubar.selectionBackground\":\"#CCD7DA50\",\"menubar.selectionBorder\":\"#CCD7DA50\",\"menubar.selectionForeground\":\"#80CBC4\",\"notebook.focusedCellBorder\":\"#80CBC4\",\"notebook.inactiveFocusedCellBorder\":\"#80CBC450\",\"notificationLink.foreground\":\"#80CBC4\",\"notifications.background\":\"#FAFAFA\",\"notifications.foreground\":\"#90A4AE\",\"panel.background\":\"#FAFAFA\",\"panel.border\":\"#FAFAFA60\",\"panel.dropBackground\":\"#90A4AE\",\"panelTitle.activeBorder\":\"#80CBC4\",\"panelTitle.activeForeground\":\"#000000\",\"panelTitle.inactiveForeground\":\"#90A4AE\",\"peekView.border\":\"#00000020\",\"peekViewEditor.background\":\"#EEEEEE\",\"peekViewEditor.matchHighlightBackground\":\"#80CBC440\",\"peekViewEditorGutter.background\":\"#EEEEEE\",\"peekViewResult.background\":\"#EEEEEE\",\"peekViewResult.matchHighlightBackground\":\"#80CBC440\",\"peekViewResult.selectionBackground\":\"#758a9570\",\"peekViewTitle.background\":\"#EEEEEE\",\"peekViewTitleDescription.foreground\":\"#90A4AE60\",\"pickerGroup.border\":\"#FFFFFF1a\",\"pickerGroup.foreground\":\"#80CBC4\",\"progressBar.background\":\"#80CBC4\",\"quickInput.background\":\"#FAFAFA\",\"quickInput.foreground\":\"#758a95\",\"quickInput.list.focusBackground\":\"#90A4AE20\",\"sash.hoverBorder\":\"#80CBC450\",\"scrollbar.shadow\":\"#00000020\",\"scrollbarSlider.activeBackground\":\"#80CBC4\",\"scrollbarSlider.background\":\"#90A4AE20\",\"scrollbarSlider.hoverBackground\":\"#90A4AE10\",\"selection.background\":\"#CCD7DA80\",\"settings.checkboxBackground\":\"#FAFAFA\",\"settings.checkboxForeground\":\"#90A4AE\",\"settings.dropdownBackground\":\"#FAFAFA\",\"settings.dropdownForeground\":\"#90A4AE\",\"settings.headerForeground\":\"#80CBC4\",\"settings.modifiedItemIndicator\":\"#80CBC4\",\"settings.numberInputBackground\":\"#FAFAFA\",\"settings.numberInputForeground\":\"#90A4AE\",\"settings.textInputBackground\":\"#FAFAFA\",\"settings.textInputForeground\":\"#90A4AE\",\"sideBar.background\":\"#FAFAFA\",\"sideBar.border\":\"#FAFAFA60\",\"sideBar.foreground\":\"#758a95\",\"sideBarSectionHeader.background\":\"#FAFAFA\",\"sideBarSectionHeader.border\":\"#FAFAFA60\",\"sideBarTitle.foreground\":\"#90A4AE\",\"statusBar.background\":\"#FAFAFA\",\"statusBar.border\":\"#FAFAFA60\",\"statusBar.debuggingBackground\":\"#9C3EDA\",\"statusBar.debuggingForeground\":\"#FFFFFF\",\"statusBar.foreground\":\"#7E939E\",\"statusBar.noFolderBackground\":\"#FAFAFA\",\"statusBarItem.activeBackground\":\"#E5393580\",\"statusBarItem.hoverBackground\":\"#90A4AE20\",\"statusBarItem.remoteBackground\":\"#80CBC4\",\"statusBarItem.remoteForeground\":\"#000000\",\"tab.activeBackground\":\"#FAFAFA\",\"tab.activeBorder\":\"#80CBC4\",\"tab.activeForeground\":\"#000000\",\"tab.activeModifiedBorder\":\"#758a95\",\"tab.border\":\"#FAFAFA\",\"tab.inactiveBackground\":\"#FAFAFA\",\"tab.inactiveForeground\":\"#758a95\",\"tab.inactiveModifiedBorder\":\"#89221f\",\"tab.unfocusedActiveBorder\":\"#90A4AE\",\"tab.unfocusedActiveForeground\":\"#90A4AE\",\"tab.unfocusedActiveModifiedBorder\":\"#b72d2a\",\"tab.unfocusedInactiveModifiedBorder\":\"#89221f\",\"terminal.ansiBlack\":\"#000000\",\"terminal.ansiBlue\":\"#6182B8\",\"terminal.ansiBrightBlack\":\"#90A4AE\",\"terminal.ansiBrightBlue\":\"#6182B8\",\"terminal.ansiBrightCyan\":\"#39ADB5\",\"terminal.ansiBrightGreen\":\"#91B859\",\"terminal.ansiBrightMagenta\":\"#9C3EDA\",\"terminal.ansiBrightRed\":\"#E53935\",\"terminal.ansiBrightWhite\":\"#FFFFFF\",\"terminal.ansiBrightYellow\":\"#E2931D\",\"terminal.ansiCyan\":\"#39ADB5\",\"terminal.ansiGreen\":\"#91B859\",\"terminal.ansiMagenta\":\"#9C3EDA\",\"terminal.ansiRed\":\"#E53935\",\"terminal.ansiWhite\":\"#FFFFFF\",\"terminal.ansiYellow\":\"#E2931D\",\"terminalCursor.background\":\"#000000\",\"terminalCursor.foreground\":\"#E2931D\",\"textLink.activeForeground\":\"#90A4AE\",\"textLink.foreground\":\"#80CBC4\",\"titleBar.activeBackground\":\"#FAFAFA\",\"titleBar.activeForeground\":\"#90A4AE\",\"titleBar.border\":\"#FAFAFA60\",\"titleBar.inactiveBackground\":\"#FAFAFA\",\"titleBar.inactiveForeground\":\"#758a95\",\"tree.indentGuidesStroke\":\"#B0BEC5\",\"widget.shadow\":\"#00000020\"},\"displayName\":\"Material Theme Lighter\",\"name\":\"material-theme-lighter\",\"semanticHighlighting\":true,\"tokenColors\":[{\"settings\":{\"background\":\"#FAFAFA\",\"foreground\":\"#90A4AE\"}},{\"scope\":\"string\",\"settings\":{\"foreground\":\"#91B859\"}},{\"scope\":\"punctuation, constant.other.symbol\",\"settings\":{\"foreground\":\"#39ADB5\"}},{\"scope\":\"constant.character.escape, text.html constant.character.entity.named\",\"settings\":{\"foreground\":\"#90A4AE\"}},{\"scope\":\"constant.language.boolean\",\"settings\":{\"foreground\":\"#FF5370\"}},{\"scope\":\"constant.numeric\",\"settings\":{\"foreground\":\"#F76D47\"}},{\"scope\":\"variable, variable.parameter, support.variable, variable.language, support.constant, meta.definition.variable entity.name.function, meta.function-call.arguments\",\"settings\":{\"foreground\":\"#90A4AE\"}},{\"scope\":\"keyword.other\",\"settings\":{\"foreground\":\"#F76D47\"}},{\"scope\":\"keyword, modifier, variable.language.this, support.type.object, constant.language\",\"settings\":{\"foreground\":\"#39ADB5\"}},{\"scope\":\"entity.name.function, support.function\",\"settings\":{\"foreground\":\"#6182B8\"}},{\"scope\":\"storage.type, storage.modifier, storage.control\",\"settings\":{\"foreground\":\"#9C3EDA\"}},{\"scope\":\"support.module, support.node\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#E53935\"}},{\"scope\":\"support.type, constant.other.key\",\"settings\":{\"foreground\":\"#E2931D\"}},{\"scope\":\"entity.name.type, entity.other.inherited-class, entity.other\",\"settings\":{\"foreground\":\"#E2931D\"}},{\"scope\":\"comment\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#90A4AE\"}},{\"scope\":\"comment punctuation.definition.comment, string.quoted.docstring\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#90A4AE\"}},{\"scope\":\"punctuation\",\"settings\":{\"foreground\":\"#39ADB5\"}},{\"scope\":\"entity.name, entity.name.type.class, support.type, support.class, meta.use\",\"settings\":{\"foreground\":\"#E2931D\"}},{\"scope\":\"variable.object.property, meta.field.declaration entity.name.function\",\"settings\":{\"foreground\":\"#E53935\"}},{\"scope\":\"meta.definition.method entity.name.function\",\"settings\":{\"foreground\":\"#E53935\"}},{\"scope\":\"meta.function entity.name.function\",\"settings\":{\"foreground\":\"#6182B8\"}},{\"scope\":\"template.expression.begin, template.expression.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end\",\"settings\":{\"foreground\":\"#39ADB5\"}},{\"scope\":\"meta.embedded, source.groovy.embedded, meta.template.expression\",\"settings\":{\"foreground\":\"#90A4AE\"}},{\"scope\":\"entity.name.tag.yaml\",\"settings\":{\"foreground\":\"#E53935\"}},{\"scope\":\"meta.object-literal.key, meta.object-literal.key string, support.type.property-name.json\",\"settings\":{\"foreground\":\"#E53935\"}},{\"scope\":\"constant.language.json\",\"settings\":{\"foreground\":\"#39ADB5\"}},{\"scope\":\"entity.other.attribute-name.class\",\"settings\":{\"foreground\":\"#E2931D\"}},{\"scope\":\"entity.other.attribute-name.id\",\"settings\":{\"foreground\":\"#F76D47\"}},{\"scope\":\"source.css entity.name.tag\",\"settings\":{\"foreground\":\"#E2931D\"}},{\"scope\":\"support.type.property-name.css\",\"settings\":{\"foreground\":\"#8796B0\"}},{\"scope\":\"meta.tag, punctuation.definition.tag\",\"settings\":{\"foreground\":\"#39ADB5\"}},{\"scope\":\"entity.name.tag\",\"settings\":{\"foreground\":\"#E53935\"}},{\"scope\":\"entity.other.attribute-name\",\"settings\":{\"foreground\":\"#9C3EDA\"}},{\"scope\":\"punctuation.definition.entity.html\",\"settings\":{\"foreground\":\"#90A4AE\"}},{\"scope\":\"markup.heading\",\"settings\":{\"foreground\":\"#39ADB5\"}},{\"scope\":\"text.html.markdown meta.link.inline, meta.link.reference\",\"settings\":{\"foreground\":\"#E53935\"}},{\"scope\":\"text.html.markdown beginning.punctuation.definition.list\",\"settings\":{\"foreground\":\"#39ADB5\"}},{\"scope\":\"markup.italic\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#E53935\"}},{\"scope\":\"markup.bold\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#E53935\"}},{\"scope\":\"markup.bold markup.italic, markup.italic markup.bold\",\"settings\":{\"fontStyle\":\"italic bold\",\"foreground\":\"#E53935\"}},{\"scope\":\"markup.fenced_code.block.markdown punctuation.definition.markdown\",\"settings\":{\"foreground\":\"#91B859\"}},{\"scope\":\"markup.inline.raw.string.markdown\",\"settings\":{\"foreground\":\"#91B859\"}},{\"scope\":\"keyword.other.definition.ini\",\"settings\":{\"foreground\":\"#E53935\"}},{\"scope\":\"entity.name.section.group-title.ini\",\"settings\":{\"foreground\":\"#39ADB5\"}},{\"scope\":\"source.cs meta.class.identifier storage.type\",\"settings\":{\"foreground\":\"#E2931D\"}},{\"scope\":\"source.cs meta.method.identifier entity.name.function\",\"settings\":{\"foreground\":\"#E53935\"}},{\"scope\":\"source.cs meta.method-call meta.method, source.cs entity.name.function\",\"settings\":{\"foreground\":\"#6182B8\"}},{\"scope\":\"source.cs storage.type\",\"settings\":{\"foreground\":\"#E2931D\"}},{\"scope\":\"source.cs meta.method.return-type\",\"settings\":{\"foreground\":\"#E2931D\"}},{\"scope\":\"source.cs meta.preprocessor\",\"settings\":{\"foreground\":\"#90A4AE\"}},{\"scope\":\"source.cs entity.name.type.namespace\",\"settings\":{\"foreground\":\"#90A4AE\"}},{\"scope\":\"meta.jsx.children, SXNested\",\"settings\":{\"foreground\":\"#90A4AE\"}},{\"scope\":\"support.class.component\",\"settings\":{\"foreground\":\"#E2931D\"}},{\"scope\":\"source.cpp meta.block variable.other\",\"settings\":{\"foreground\":\"#90A4AE\"}},{\"scope\":\"source.python meta.member.access.python\",\"settings\":{\"foreground\":\"#E53935\"}},{\"scope\":\"source.python meta.function-call.python, meta.function-call.arguments\",\"settings\":{\"foreground\":\"#6182B8\"}},{\"scope\":\"meta.block\",\"settings\":{\"foreground\":\"#E53935\"}},{\"scope\":\"entity.name.function.call\",\"settings\":{\"foreground\":\"#6182B8\"}},{\"scope\":\"source.php support.other.namespace, source.php meta.use support.class\",\"settings\":{\"foreground\":\"#90A4AE\"}},{\"scope\":\"constant.keyword\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#39ADB5\"}},{\"scope\":\"entity.name.function\",\"settings\":{\"foreground\":\"#6182B8\"}},{\"settings\":{\"background\":\"#FAFAFA\",\"foreground\":\"#90A4AE\"}},{\"scope\":[\"constant.other.placeholder\"],\"settings\":{\"foreground\":\"#E53935\"}},{\"scope\":[\"markup.deleted\"],\"settings\":{\"foreground\":\"#E53935\"}},{\"scope\":[\"markup.inserted\"],\"settings\":{\"foreground\":\"#91B859\"}},{\"scope\":[\"markup.underline\"],\"settings\":{\"fontStyle\":\"underline\"}},{\"scope\":[\"keyword.control\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#39ADB5\"}},{\"scope\":[\"variable.parameter\"],\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":[\"variable.parameter.function.language.special.self.python\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#E53935\"}},{\"scope\":[\"constant.character.format.placeholder.other.python\"],\"settings\":{\"foreground\":\"#F76D47\"}},{\"scope\":[\"markup.quote\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#39ADB5\"}},{\"scope\":[\"markup.fenced_code.block\"],\"settings\":{\"foreground\":\"#90A4AE90\"}},{\"scope\":[\"punctuation.definition.quote\"],\"settings\":{\"foreground\":\"#FF5370\"}},{\"scope\":[\"meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#9C3EDA\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#E2931D\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#F76D47\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#E53935\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#916b53\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#6182B8\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#FF5370\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#9C3EDA\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#91B859\"}}],\"type\":\"light\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/B0qRVHPH.js",
    "content": "const a=Object.freeze(JSON.parse('{\"displayName\":\"CSV\",\"fileTypes\":[\"csv\"],\"name\":\"csv\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"rainbow1\"},\"2\":{\"name\":\"keyword.rainbow2\"},\"3\":{\"name\":\"entity.name.function.rainbow3\"},\"4\":{\"name\":\"comment.rainbow4\"},\"5\":{\"name\":\"string.rainbow5\"},\"6\":{\"name\":\"variable.parameter.rainbow6\"},\"7\":{\"name\":\"constant.numeric.rainbow7\"},\"8\":{\"name\":\"entity.name.type.rainbow8\"},\"9\":{\"name\":\"markup.bold.rainbow9\"},\"10\":{\"name\":\"invalid.rainbow10\"}},\"match\":\"((?: *\\\\\"(?:[^\\\\\"]*\\\\\"\\\\\")*[^\\\\\"]*\\\\\" *(?:,|$))|(?:[^,]*(?:,|$)))?((?: *\\\\\"(?:[^\\\\\"]*\\\\\"\\\\\")*[^\\\\\"]*\\\\\" *(?:,|$))|(?:[^,]*(?:,|$)))?((?: *\\\\\"(?:[^\\\\\"]*\\\\\"\\\\\")*[^\\\\\"]*\\\\\" *(?:,|$))|(?:[^,]*(?:,|$)))?((?: *\\\\\"(?:[^\\\\\"]*\\\\\"\\\\\")*[^\\\\\"]*\\\\\" *(?:,|$))|(?:[^,]*(?:,|$)))?((?: *\\\\\"(?:[^\\\\\"]*\\\\\"\\\\\")*[^\\\\\"]*\\\\\" *(?:,|$))|(?:[^,]*(?:,|$)))?((?: *\\\\\"(?:[^\\\\\"]*\\\\\"\\\\\")*[^\\\\\"]*\\\\\" *(?:,|$))|(?:[^,]*(?:,|$)))?((?: *\\\\\"(?:[^\\\\\"]*\\\\\"\\\\\")*[^\\\\\"]*\\\\\" *(?:,|$))|(?:[^,]*(?:,|$)))?((?: *\\\\\"(?:[^\\\\\"]*\\\\\"\\\\\")*[^\\\\\"]*\\\\\" *(?:,|$))|(?:[^,]*(?:,|$)))?((?: *\\\\\"(?:[^\\\\\"]*\\\\\"\\\\\")*[^\\\\\"]*\\\\\" *(?:,|$))|(?:[^,]*(?:,|$)))?((?: *\\\\\"(?:[^\\\\\"]*\\\\\"\\\\\")*[^\\\\\"]*\\\\\" *(?:,|$))|(?:[^,]*(?:,|$)))?\",\"name\":\"rainbowgroup\"}],\"scopeName\":\"text.csv\"}')),n=[a];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/B14Poo8t.js",
    "content": "import a from\"./ifBTmRxC.js\";const e=Object.freeze(JSON.parse('{\"displayName\":\"ShaderLab\",\"name\":\"shaderlab\",\"patterns\":[{\"begin\":\"//\",\"end\":\"$\",\"name\":\"comment.line.double-slash.shaderlab\"},{\"match\":\"\\\\\\\\b(?i:Range|Float|Int|Color|Vector|2D|3D|Cube|Any)\\\\\\\\b\",\"name\":\"support.type.basic.shaderlab\"},{\"include\":\"#numbers\"},{\"match\":\"\\\\\\\\b(?i:Shader|Properties|SubShader|Pass|Category)\\\\\\\\b\",\"name\":\"storage.type.structure.shaderlab\"},{\"match\":\"\\\\\\\\b(?i:Name|Tags|Fallback|CustomEditor|Cull|ZWrite|ZTest|Offset|Blend|BlendOp|ColorMask|AlphaToMask|LOD|Lighting|Stencil|Ref|ReadMask|WriteMask|Comp|CompBack|CompFront|Fail|ZFail|UsePass|GrabPass|Dependency|Material|Diffuse|Ambient|Shininess|Specular|Emission|Fog|Mode|Density|SeparateSpecular|SetTexture|Combine|ConstantColor|Matrix|AlphaTest|ColorMaterial|BindChannels|Bind)\\\\\\\\b\",\"name\":\"support.type.propertyname.shaderlab\"},{\"match\":\"\\\\\\\\b(?i:Back|Front|On|Off|[RGBA]{1,3}|AmbientAndDiffuse|Emission)\\\\\\\\b\",\"name\":\"support.constant.property-value.shaderlab\"},{\"match\":\"\\\\\\\\b(?i:Less|Greater|LEqual|GEqual|Equal|NotEqual|Always|Never)\\\\\\\\b\",\"name\":\"support.constant.property-value.comparisonfunction.shaderlab\"},{\"match\":\"\\\\\\\\b(?i:Keep|Zero|Replace|IncrSat|DecrSat|Invert|IncrWrap|DecrWrap)\\\\\\\\b\",\"name\":\"support.constant.property-value.stenciloperation.shaderlab\"},{\"match\":\"\\\\\\\\b(?i:Previous|Primary|Texture|Constant|Lerp|Double|Quad|Alpha)\\\\\\\\b\",\"name\":\"support.constant.property-value.texturecombiners.shaderlab\"},{\"match\":\"\\\\\\\\b(?i:Global|Linear|Exp2|Exp)\\\\\\\\b\",\"name\":\"support.constant.property-value.fog.shaderlab\"},{\"match\":\"\\\\\\\\b(?i:Vertex|Normal|Tangent|TexCoord0|TexCoord1)\\\\\\\\b\",\"name\":\"support.constant.property-value.bindchannels.shaderlab\"},{\"match\":\"\\\\\\\\b(?i:Add|Sub|RevSub|Min|Max|LogicalClear|LogicalSet|LogicalCopyInverted|LogicalCopy|LogicalNoop|LogicalInvert|LogicalAnd|LogicalNand|LogicalOr|LogicalNor|LogicalXor|LogicalEquiv|LogicalAndReverse|LogicalAndInverted|LogicalOrReverse|LogicalOrInverted)\\\\\\\\b\",\"name\":\"support.constant.property-value.blendoperations.shaderlab\"},{\"match\":\"\\\\\\\\b(?i:One|Zero|SrcColor|SrcAlpha|DstColor|DstAlpha|OneMinusSrcColor|OneMinusSrcAlpha|OneMinusDstColor|OneMinusDstAlpha)\\\\\\\\b\",\"name\":\"support.constant.property-value.blendfactors.shaderlab\"},{\"match\":\"\\\\\\\\[([a-zA-Z_][a-zA-Z0-9_]*)\\\\\\\\](?!\\\\\\\\s*[a-zA-Z_][a-zA-Z0-9_]*\\\\\\\\s*\\\\\\\\(\\\\\")\",\"name\":\"support.variable.reference.shaderlab\"},{\"begin\":\"(\\\\\\\\[)\",\"end\":\"(\\\\\\\\])\",\"name\":\"meta.attribute.shaderlab\",\"patterns\":[{\"match\":\"\\\\\\\\G([a-zA-Z]+)\\\\\\\\b\",\"name\":\"support.type.attributename.shaderlab\"},{\"include\":\"#numbers\"}]},{\"match\":\"\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_]*)\\\\\\\\s*\\\\\\\\(\",\"name\":\"support.variable.declaration.shaderlab\"},{\"begin\":\"\\\\\\\\b(CGPROGRAM|CGINCLUDE)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other\"}},\"end\":\"\\\\\\\\b(ENDCG)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.other\"}},\"name\":\"meta.cgblock\",\"patterns\":[{\"include\":\"#hlsl-embedded\"}]},{\"begin\":\"\\\\\\\\b(HLSLPROGRAM|HLSLINCLUDE)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other\"}},\"end\":\"\\\\\\\\b(ENDHLSL)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.other\"}},\"name\":\"meta.hlslblock\",\"patterns\":[{\"include\":\"#hlsl-embedded\"}]},{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.shaderlab\"}],\"repository\":{\"hlsl-embedded\":{\"patterns\":[{\"include\":\"source.hlsl\"},{\"match\":\"\\\\\\\\b(fixed([1-4](x[1-4])?)?)\\\\\\\\b\",\"name\":\"storage.type.basic.shaderlab\"},{\"match\":\"\\\\\\\\b(UNITY_MATRIX_MVP|UNITY_MATRIX_MV|UNITY_MATRIX_M|UNITY_MATRIX_V|UNITY_MATRIX_P|UNITY_MATRIX_VP|UNITY_MATRIX_T_MV|UNITY_MATRIX_I_V|UNITY_MATRIX_IT_MV|_Object2World|_World2Object|unity_ObjectToWorld|unity_WorldToObject)\\\\\\\\b\",\"name\":\"support.variable.transformations.shaderlab\"},{\"match\":\"\\\\\\\\b(_WorldSpaceCameraPos|_ProjectionParams|_ScreenParams|_ZBufferParams|unity_OrthoParams|unity_CameraProjection|unity_CameraInvProjection|unity_CameraWorldClipPlanes)\\\\\\\\b\",\"name\":\"support.variable.camera.shaderlab\"},{\"match\":\"\\\\\\\\b(_Time|_SinTime|_CosTime|unity_DeltaTime)\\\\\\\\b\",\"name\":\"support.variable.time.shaderlab\"},{\"match\":\"\\\\\\\\b(_LightColor0|_WorldSpaceLightPos0|_LightMatrix0|unity_4LightPosX0|unity_4LightPosY0|unity_4LightPosZ0|unity_4LightAtten0|unity_LightColor|_LightColor|unity_LightPosition|unity_LightAtten|unity_SpotDirection)\\\\\\\\b\",\"name\":\"support.variable.lighting.shaderlab\"},{\"match\":\"\\\\\\\\b(unity_AmbientSky|unity_AmbientEquator|unity_AmbientGround|UNITY_LIGHTMODEL_AMBIENT|unity_FogColor|unity_FogParams)\\\\\\\\b\",\"name\":\"support.variable.fog.shaderlab\"},{\"match\":\"\\\\\\\\b(unity_LODFade)\\\\\\\\b\",\"name\":\"support.variable.various.shaderlab\"},{\"match\":\"\\\\\\\\b(SHADER_API_D3D9|SHADER_API_D3D11|SHADER_API_GLCORE|SHADER_API_OPENGL|SHADER_API_GLES|SHADER_API_GLES3|SHADER_API_METAL|SHADER_API_D3D11_9X|SHADER_API_PSSL|SHADER_API_XBOXONE|SHADER_API_PSP2|SHADER_API_WIIU|SHADER_API_MOBILE|SHADER_API_GLSL)\\\\\\\\b\",\"name\":\"support.variable.preprocessor.targetplatform.shaderlab\"},{\"match\":\"\\\\\\\\b(SHADER_TARGET)\\\\\\\\b\",\"name\":\"support.variable.preprocessor.targetmodel.shaderlab\"},{\"match\":\"\\\\\\\\b(UNITY_VERSION)\\\\\\\\b\",\"name\":\"support.variable.preprocessor.unityversion.shaderlab\"},{\"match\":\"\\\\\\\\b(UNITY_BRANCH|UNITY_FLATTEN|UNITY_NO_SCREENSPACE_SHADOWS|UNITY_NO_LINEAR_COLORSPACE|UNITY_NO_RGBM|UNITY_NO_DXT5nm|UNITY_FRAMEBUFFER_FETCH_AVAILABLE|UNITY_USE_RGBA_FOR_POINT_SHADOWS|UNITY_ATTEN_CHANNEL|UNITY_HALF_TEXEL_OFFSET|UNITY_UV_STARTS_AT_TOP|UNITY_MIGHT_NOT_HAVE_DEPTH_Texture|UNITY_NEAR_CLIP_VALUE|UNITY_VPOS_TYPE|UNITY_CAN_COMPILE_TESSELLATION|UNITY_COMPILER_HLSL|UNITY_COMPILER_HLSL2GLSL|UNITY_COMPILER_CG|UNITY_REVERSED_Z)\\\\\\\\b\",\"name\":\"support.variable.preprocessor.platformdifference.shaderlab\"},{\"match\":\"\\\\\\\\b(UNITY_PASS_FORWARDBASE|UNITY_PASS_FORWARDADD|UNITY_PASS_DEFERRED|UNITY_PASS_SHADOWCASTER|UNITY_PASS_PREPASSBASE|UNITY_PASS_PREPASSFINAL)\\\\\\\\b\",\"name\":\"support.variable.preprocessor.texture2D.shaderlab\"},{\"match\":\"\\\\\\\\b(appdata_base|appdata_tan|appdata_full|appdata_img)\\\\\\\\b\",\"name\":\"support.class.structures.shaderlab\"},{\"match\":\"\\\\\\\\b(SurfaceOutputStandardSpecular|SurfaceOutputStandard|SurfaceOutput|Input)\\\\\\\\b\",\"name\":\"support.class.surface.shaderlab\"}]},\"numbers\":{\"patterns\":[{\"match\":\"\\\\\\\\b([0-9]+\\\\\\\\.?[0-9]*)\\\\\\\\b\",\"name\":\"constant.numeric.shaderlab\"}]}},\"scopeName\":\"source.shaderlab\",\"embeddedLangs\":[\"hlsl\"],\"aliases\":[\"shader\"]}')),t=[...a,e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/B1SYOhNW.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Go\",\"name\":\"go\",\"patterns\":[{\"include\":\"#statements\"}],\"repository\":{\"after_control_variables\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations-without-brackets\"},{\"match\":\"\\\\\\\\[\",\"name\":\"punctuation.definition.begin.bracket.square.go\"},{\"match\":\"\\\\\\\\]\",\"name\":\"punctuation.definition.end.bracket.square.go\"},{\"match\":\"(?:\\\\\\\\w+)\",\"name\":\"variable.other.go\"}]}},\"comment\":\"After control variables, to not highlight as a struct/interface (before formatting with gofmt)\",\"match\":\"(?:(?<=\\\\\\\\brange\\\\\\\\b|\\\\\\\\bswitch\\\\\\\\b|\\\\\\\\;|\\\\\\\\bif\\\\\\\\b|\\\\\\\\bfor\\\\\\\\b|\\\\\\\\<|\\\\\\\\>|\\\\\\\\<\\\\\\\\=|\\\\\\\\>\\\\\\\\=|\\\\\\\\=\\\\\\\\=|\\\\\\\\!\\\\\\\\=|\\\\\\\\w(?:\\\\\\\\+|/|\\\\\\\\-|\\\\\\\\*|\\\\\\\\%)|\\\\\\\\w(?:\\\\\\\\+|/|\\\\\\\\-|\\\\\\\\*|\\\\\\\\%)\\\\\\\\=|\\\\\\\\|\\\\\\\\||\\\\\\\\&\\\\\\\\&)(?:\\\\\\\\s*)((?![\\\\\\\\[\\\\\\\\]]+)[[:alnum:]\\\\\\\\-\\\\\\\\_\\\\\\\\!\\\\\\\\.\\\\\\\\[\\\\\\\\]\\\\\\\\<\\\\\\\\>\\\\\\\\=\\\\\\\\*/\\\\\\\\+\\\\\\\\%\\\\\\\\:]+)(?:\\\\\\\\s*)(?=\\\\\\\\{))\"},\"brackets\":{\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.begin.bracket.curly.go\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.curly.go\"}},\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.begin.bracket.round.go\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.round.go\"}},\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.begin.bracket.square.go\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.square.go\"}},\"patterns\":[{\"include\":\"$self\"}]}]},\"built_in_functions\":{\"comment\":\"Built-in functions\",\"patterns\":[{\"match\":\"\\\\\\\\b(append|cap|close|complex|copy|delete|imag|len|panic|print|println|real|recover|min|max|clear)\\\\\\\\b(?=\\\\\\\\()\",\"name\":\"entity.name.function.support.builtin.go\"},{\"begin\":\"(?:(\\\\\\\\bnew\\\\\\\\b)(\\\\\\\\())\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.support.builtin.go\"},\"2\":{\"name\":\"punctuation.definition.begin.bracket.round.go\"}},\"comment\":\"new keyword\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.round.go\"}},\"patterns\":[{\"include\":\"#functions\"},{\"include\":\"#struct_variables_types\"},{\"include\":\"#type-declarations\"},{\"include\":\"#generic_types\"},{\"match\":\"(?:\\\\\\\\w+)\",\"name\":\"entity.name.type.go\"},{\"include\":\"$self\"}]},{\"begin\":\"(?:(\\\\\\\\bmake\\\\\\\\b)(?:(\\\\\\\\()((?:(?:(?:[\\\\\\\\*\\\\\\\\[\\\\\\\\]]+)?(?:\\\\\\\\<\\\\\\\\-\\\\\\\\s*)?\\\\\\\\bchan\\\\\\\\b(?:\\\\\\\\s*\\\\\\\\<\\\\\\\\-)?\\\\\\\\s*)+(?:\\\\\\\\([^\\\\\\\\)]+\\\\\\\\))?)?(?:[\\\\\\\\[\\\\\\\\]\\\\\\\\*]+)?(?:(?!\\\\\\\\bmap\\\\\\\\b)(?:[\\\\\\\\w\\\\\\\\.]+))?(\\\\\\\\[(?:(?:[\\\\\\\\S]+)(?:(?:\\\\\\\\,\\\\\\\\s*(?:[\\\\\\\\S]+))*))?\\\\\\\\])?(?:\\\\\\\\,)?)?))\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.support.builtin.go\"},\"2\":{\"name\":\"punctuation.definition.begin.bracket.round.go\"},\"3\":{\"patterns\":[{\"include\":\"#type-declarations-without-brackets\"},{\"include\":\"#parameter-variable-types\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.type.go\"}]}},\"comment\":\"make keyword\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.round.go\"}},\"patterns\":[{\"include\":\"$self\"}]}]},\"comments\":{\"patterns\":[{\"begin\":\"(\\\\\\\\/\\\\\\\\*)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.go\"}},\"end\":\"(\\\\\\\\*\\\\\\\\/)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.go\"}},\"name\":\"comment.block.go\"},{\"begin\":\"(\\\\\\\\/\\\\\\\\/)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.go\"}},\"end\":\"(?:\\\\\\\\n|$)\",\"name\":\"comment.line.double-slash.go\"}]},\"const_assignment\":{\"comment\":\"constant assignment with const keyword\",\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#delimiters\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"variable.other.constant.go\"}]},\"2\":{\"patterns\":[{\"include\":\"#type-declarations-without-brackets\"},{\"include\":\"#generic_types\"},{\"match\":\"\\\\\\\\(\",\"name\":\"punctuation.definition.begin.bracket.round.go\"},{\"match\":\"\\\\\\\\)\",\"name\":\"punctuation.definition.end.bracket.round.go\"},{\"match\":\"\\\\\\\\[\",\"name\":\"punctuation.definition.begin.bracket.square.go\"},{\"match\":\"\\\\\\\\]\",\"name\":\"punctuation.definition.end.bracket.square.go\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.type.go\"}]}},\"comment\":\"single assignment\",\"match\":\"(?:(?<=\\\\\\\\bconst\\\\\\\\b)(?:\\\\\\\\s*)(\\\\\\\\b[\\\\\\\\w\\\\\\\\.]+(?:\\\\\\\\,\\\\\\\\s*[\\\\\\\\w\\\\\\\\.]+)*)(?:\\\\\\\\s*)((?:(?:(?:[\\\\\\\\*\\\\\\\\[\\\\\\\\]]+)?(?:\\\\\\\\<\\\\\\\\-\\\\\\\\s*)?\\\\\\\\bchan\\\\\\\\b(?:\\\\\\\\s*\\\\\\\\<\\\\\\\\-)?\\\\\\\\s*)+(?:\\\\\\\\([^\\\\\\\\)]+\\\\\\\\))?)?(?!(?:[\\\\\\\\[\\\\\\\\]\\\\\\\\*]+)?\\\\\\\\b(?:struct|func|map)\\\\\\\\b)(?:[\\\\\\\\w\\\\\\\\.\\\\\\\\[\\\\\\\\]\\\\\\\\*]+(?:\\\\\\\\,\\\\\\\\s*[\\\\\\\\w\\\\\\\\.\\\\\\\\[\\\\\\\\]\\\\\\\\*]+)*)?(?:\\\\\\\\s*)(?:\\\\\\\\=)?)?)\"},{\"begin\":\"(?:(?<=\\\\\\\\bconst\\\\\\\\b)(?:\\\\\\\\s*)(\\\\\\\\())\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.begin.bracket.round.go\"}},\"comment\":\"multi assignment\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.round.go\"}},\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#delimiters\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"variable.other.constant.go\"}]},\"2\":{\"patterns\":[{\"include\":\"#type-declarations-without-brackets\"},{\"include\":\"#generic_types\"},{\"match\":\"\\\\\\\\(\",\"name\":\"punctuation.definition.begin.bracket.round.go\"},{\"match\":\"\\\\\\\\)\",\"name\":\"punctuation.definition.end.bracket.round.go\"},{\"match\":\"\\\\\\\\[\",\"name\":\"punctuation.definition.begin.bracket.square.go\"},{\"match\":\"\\\\\\\\]\",\"name\":\"punctuation.definition.end.bracket.square.go\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.type.go\"}]}},\"match\":\"(?:(?:^\\\\\\\\s*)(\\\\\\\\b[\\\\\\\\w\\\\\\\\.]+(?:\\\\\\\\,\\\\\\\\s*[\\\\\\\\w\\\\\\\\.]+)*)(?:\\\\\\\\s*)((?:(?:(?:[\\\\\\\\*\\\\\\\\[\\\\\\\\]]+)?(?:\\\\\\\\<\\\\\\\\-\\\\\\\\s*)?\\\\\\\\bchan\\\\\\\\b(?:\\\\\\\\s*\\\\\\\\<\\\\\\\\-)?\\\\\\\\s*)+(?:\\\\\\\\([^\\\\\\\\)]+\\\\\\\\))?)?(?!(?:[\\\\\\\\[\\\\\\\\]\\\\\\\\*]+)?\\\\\\\\b(?:struct|func|map)\\\\\\\\b)(?:[\\\\\\\\w\\\\\\\\.\\\\\\\\[\\\\\\\\]\\\\\\\\*]+(?:\\\\\\\\,\\\\\\\\s*[\\\\\\\\w\\\\\\\\.\\\\\\\\[\\\\\\\\]\\\\\\\\*]+)*)?(?:\\\\\\\\s*)(?:\\\\\\\\=)?)?)\"},{\"include\":\"$self\"}]}]},\"delimiters\":{\"patterns\":[{\"match\":\"\\\\\\\\,\",\"name\":\"punctuation.other.comma.go\"},{\"match\":\"\\\\\\\\.(?!\\\\\\\\.\\\\\\\\.)\",\"name\":\"punctuation.other.period.go\"},{\"match\":\":(?!=)\",\"name\":\"punctuation.other.colon.go\"}]},\"double_parentheses_types\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations-without-brackets\"},{\"match\":\"\\\\\\\\(\",\"name\":\"punctuation.definition.begin.bracket.round.go\"},{\"match\":\"\\\\\\\\)\",\"name\":\"punctuation.definition.end.bracket.round.go\"},{\"match\":\"\\\\\\\\[\",\"name\":\"punctuation.definition.begin.bracket.square.go\"},{\"match\":\"\\\\\\\\]\",\"name\":\"punctuation.definition.end.bracket.square.go\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.type.go\"}]}},\"comment\":\"double parentheses types\",\"match\":\"(?:(?<!\\\\\\\\w)(\\\\\\\\((?:[\\\\\\\\w\\\\\\\\.\\\\\\\\[\\\\\\\\]\\\\\\\\*\\\\\\\\&]+)\\\\\\\\))(?=\\\\\\\\())\"},\"field_hover\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"variable.other.property.go\"}]},\"2\":{\"patterns\":[{\"match\":\"\\\\\\\\binvalid\\\\\\\\b\\\\\\\\s+\\\\\\\\btype\\\\\\\\b\",\"name\":\"invalid.field.go\"},{\"include\":\"#type-declarations-without-brackets\"},{\"include\":\"#parameter-variable-types\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.type.go\"}]}},\"comment\":\"struct field property and types when hovering with the mouse\",\"match\":\"(?:(?<=^\\\\\\\\bfield\\\\\\\\b)\\\\\\\\s+([\\\\\\\\w\\\\\\\\*\\\\\\\\.]+)\\\\\\\\s+([\\\\\\\\s\\\\\\\\S]+))\"},\"function_declaration\":{\"begin\":\"(?:^(\\\\\\\\bfunc\\\\\\\\b)(?:\\\\\\\\s*(\\\\\\\\([^\\\\\\\\)]+\\\\\\\\)\\\\\\\\s*)?(?:(\\\\\\\\w+)(?=\\\\\\\\(|\\\\\\\\[))?))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.function.go\"},\"2\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.begin.bracket.round.go\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.round.go\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.parameter.go\"},\"2\":{\"patterns\":[{\"include\":\"#type-declarations-without-brackets\"},{\"include\":\"#parameter-variable-types\"},{\"match\":\"(?:\\\\\\\\w+)\",\"name\":\"entity.name.type.go\"}]}},\"match\":\"(?:(\\\\\\\\w+(?:\\\\\\\\s+))?((?:[\\\\\\\\w\\\\\\\\.\\\\\\\\*]+)(?:\\\\\\\\[(?:(?:(?:[\\\\\\\\w\\\\\\\\.\\\\\\\\*]+)(?:\\\\\\\\,\\\\\\\\s+)?)+)?\\\\\\\\])?))\"},{\"include\":\"$self\"}]}]},\"3\":{\"patterns\":[{\"match\":\"\\\\\\\\d\\\\\\\\w*\",\"name\":\"invalid.illegal.identifier.go\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.function.go\"}]}},\"comment\":\"Function declarations\",\"end\":\"(?:(?<=\\\\\\\\))\\\\\\\\s*((?:(?:(?:[\\\\\\\\*\\\\\\\\[\\\\\\\\]]+)?(?:\\\\\\\\<\\\\\\\\-\\\\\\\\s*)?\\\\\\\\bchan\\\\\\\\b(?:\\\\\\\\s*\\\\\\\\<\\\\\\\\-)?\\\\\\\\s*)+)?(?!(?:[\\\\\\\\[\\\\\\\\]\\\\\\\\*]+)?(?:\\\\\\\\bstruct\\\\\\\\b|\\\\\\\\binterface\\\\\\\\b))[\\\\\\\\w\\\\\\\\.\\\\\\\\-\\\\\\\\*\\\\\\\\[\\\\\\\\]]+)?\\\\\\\\s*(?=\\\\\\\\{))\",\"endCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations-without-brackets\"},{\"include\":\"#parameter-variable-types\"},{\"match\":\"(?:\\\\\\\\w+)\",\"name\":\"entity.name.type.go\"}]}},\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.begin.bracket.round.go\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.round.go\"}},\"patterns\":[{\"include\":\"#function_param_types\"}]},{\"begin\":\"(?:([\\\\\\\\w\\\\\\\\.\\\\\\\\*]+)?(\\\\\\\\[))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"(?:\\\\\\\\w+)\",\"name\":\"entity.name.type.go\"}]},\"2\":{\"name\":\"punctuation.definition.begin.bracket.square.go\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.square.go\"}},\"patterns\":[{\"include\":\"#generic_param_types\"}]},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations-without-brackets\"},{\"include\":\"#parameter-variable-types\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.type.go\"}]}},\"comment\":\"single function as a type returned type(s) declaration\",\"match\":\"(?:(?<=\\\\\\\\))(?:\\\\\\\\s*)((?:(?:\\\\\\\\s*(?:[\\\\\\\\*\\\\\\\\[\\\\\\\\]]+)?(?:\\\\\\\\<\\\\\\\\-\\\\\\\\s*)?\\\\\\\\bchan\\\\\\\\b(?:\\\\\\\\s*\\\\\\\\<\\\\\\\\-)?\\\\\\\\s*)+)?[\\\\\\\\w\\\\\\\\*\\\\\\\\.\\\\\\\\[\\\\\\\\]\\\\\\\\<\\\\\\\\>\\\\\\\\-]+(?:\\\\\\\\s*)(?:\\\\\\\\/(?:\\\\\\\\/|\\\\\\\\*).*)?)$)\"},{\"include\":\"$self\"}]},\"function_param_types\":{\"comment\":\"function parameter variables and types\",\"patterns\":[{\"include\":\"#struct_variables_types\"},{\"include\":\"#interface_variables_types\"},{\"include\":\"#type-declarations-without-brackets\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"variable.parameter.go\"}]}},\"comment\":\"struct/interface type declaration\",\"match\":\"((?:(?:\\\\\\\\b\\\\\\\\w+\\\\\\\\,\\\\\\\\s*)+)?\\\\\\\\b\\\\\\\\w+)\\\\\\\\s+(?=(?:(?:\\\\\\\\s*(?:[\\\\\\\\*\\\\\\\\[\\\\\\\\]]+)?(?:\\\\\\\\<\\\\\\\\-\\\\\\\\s*)?\\\\\\\\bchan\\\\\\\\b(?:\\\\\\\\s*\\\\\\\\<\\\\\\\\-)?\\\\\\\\s*)+)?(?:[\\\\\\\\[\\\\\\\\]\\\\\\\\*]+)?\\\\\\\\b(?:struct|interface)\\\\\\\\b\\\\\\\\s*\\\\\\\\{)\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"variable.parameter.go\"}]}},\"comment\":\"multiple parameters one type -with multilines\",\"match\":\"(?:(?:(?<=\\\\\\\\()|^\\\\\\\\s*)((?:(?:\\\\\\\\b\\\\\\\\w+\\\\\\\\,\\\\\\\\s*)+)(?:/(?:/|\\\\\\\\*).*)?)$)\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#delimiters\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"variable.parameter.go\"}]},\"2\":{\"patterns\":[{\"include\":\"#type-declarations-without-brackets\"},{\"include\":\"#parameter-variable-types\"},{\"match\":\"(?:\\\\\\\\w+)\",\"name\":\"entity.name.type.go\"}]}},\"comment\":\"multiple params and types | multiple params one type | one param one type\",\"match\":\"(?:((?:(?:\\\\\\\\b\\\\\\\\w+\\\\\\\\,\\\\\\\\s*)+)?\\\\\\\\b\\\\\\\\w+)(?:\\\\\\\\s+)((?:(?:\\\\\\\\s*(?:[\\\\\\\\*\\\\\\\\[\\\\\\\\]]+)?(?:\\\\\\\\<\\\\\\\\-\\\\\\\\s*)?\\\\\\\\bchan\\\\\\\\b(?:\\\\\\\\s*\\\\\\\\<\\\\\\\\-)?\\\\\\\\s*)+)?(?:(?:(?:[\\\\\\\\w\\\\\\\\[\\\\\\\\]\\\\\\\\.\\\\\\\\*]+)?(?:(?:\\\\\\\\bfunc\\\\\\\\b\\\\\\\\((?:[^\\\\\\\\)]+)?\\\\\\\\))(?:(?:\\\\\\\\s*(?:[\\\\\\\\*\\\\\\\\[\\\\\\\\]]+)?(?:\\\\\\\\<\\\\\\\\-\\\\\\\\s*)?\\\\\\\\bchan\\\\\\\\b(?:\\\\\\\\s*\\\\\\\\<\\\\\\\\-)?\\\\\\\\s*)+)?(?:\\\\\\\\s*))+(?:(?:(?:[\\\\\\\\w\\\\\\\\*\\\\\\\\.\\\\\\\\[\\\\\\\\]]+)|(?:\\\\\\\\((?:[^\\\\\\\\)]+)?\\\\\\\\))))?)|(?:(?:[\\\\\\\\[\\\\\\\\]\\\\\\\\*]+)?[\\\\\\\\w\\\\\\\\*\\\\\\\\.]+(?:\\\\\\\\[(?:[^\\\\\\\\]]+)\\\\\\\\])?(?:[\\\\\\\\w\\\\\\\\.\\\\\\\\*]+)?)+)))\"},{\"begin\":\"(?:([\\\\\\\\w\\\\\\\\.\\\\\\\\*]+)?(\\\\\\\\[))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"(?:\\\\\\\\w+)\",\"name\":\"entity.name.type.go\"}]},\"2\":{\"name\":\"punctuation.definition.begin.bracket.square.go\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.square.go\"}},\"patterns\":[{\"include\":\"#generic_param_types\"}]},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.begin.bracket.round.go\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.round.go\"}},\"patterns\":[{\"include\":\"#function_param_types\"}]},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"(?:\\\\\\\\w+)\",\"name\":\"entity.name.type.go\"}]}},\"comment\":\"other types\",\"match\":\"([\\\\\\\\w\\\\\\\\.]+)\"},{\"include\":\"$self\"}]},\"functions\":{\"begin\":\"(?:(\\\\\\\\bfunc\\\\\\\\b)(?=\\\\\\\\())\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.function.go\"}},\"comment\":\"Functions\",\"end\":\"(?:(?<=\\\\\\\\))(\\\\\\\\s*(?:(?:[\\\\\\\\*\\\\\\\\[\\\\\\\\]]+)?(?:\\\\\\\\<\\\\\\\\-\\\\\\\\s*)?\\\\\\\\bchan\\\\\\\\b(?:\\\\\\\\s*\\\\\\\\<\\\\\\\\-)?\\\\\\\\s*)+)?((?:(?:\\\\\\\\s*(?:(?:[\\\\\\\\[\\\\\\\\]\\\\\\\\*]+)?[\\\\\\\\w\\\\\\\\.\\\\\\\\*]+)?(?:(?:\\\\\\\\[(?:(?:[\\\\\\\\w\\\\\\\\.\\\\\\\\*]+)?(?:\\\\\\\\[(?:[^\\\\\\\\]]+)?\\\\\\\\])?(?:\\\\\\\\,\\\\\\\\s+)?)+\\\\\\\\])|(?:\\\\\\\\((?:[^\\\\\\\\)]+)?\\\\\\\\)))?(?:[\\\\\\\\w\\\\\\\\.\\\\\\\\*]+)?)(?:\\\\\\\\s*)(?=\\\\\\\\{))|(?:\\\\\\\\s*(?:(?:(?:[\\\\\\\\[\\\\\\\\]\\\\\\\\*]+)?(?!\\\\\\\\bfunc\\\\\\\\b)(?:[\\\\\\\\w\\\\\\\\.\\\\\\\\*]+)(?:\\\\\\\\[(?:(?:[\\\\\\\\w\\\\\\\\.\\\\\\\\*]+)?(?:\\\\\\\\[(?:[^\\\\\\\\]]+)?\\\\\\\\])?(?:\\\\\\\\,\\\\\\\\s+)?)+\\\\\\\\])?(?:[\\\\\\\\w\\\\\\\\.\\\\\\\\*]+)?)|(?:\\\\\\\\((?:[^\\\\\\\\)]+)?\\\\\\\\)))))?)\",\"endCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations\"}]},\"2\":{\"patterns\":[{\"include\":\"#type-declarations-without-brackets\"},{\"include\":\"#parameter-variable-types\"},{\"match\":\"(?:\\\\\\\\w+)\",\"name\":\"entity.name.type.go\"}]}},\"patterns\":[{\"include\":\"#parameter-variable-types\"}]},\"functions_inline\":{\"captures\":{\"1\":{\"name\":\"keyword.function.go\"},\"2\":{\"patterns\":[{\"include\":\"#type-declarations-without-brackets\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.begin.bracket.round.go\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.round.go\"}},\"patterns\":[{\"include\":\"#function_param_types\"},{\"include\":\"$self\"}]},{\"match\":\"\\\\\\\\[\",\"name\":\"punctuation.definition.begin.bracket.square.go\"},{\"match\":\"\\\\\\\\]\",\"name\":\"punctuation.definition.end.bracket.square.go\"},{\"match\":\"\\\\\\\\{\",\"name\":\"punctuation.definition.begin.bracket.curly.go\"},{\"match\":\"\\\\\\\\}\",\"name\":\"punctuation.definition.end.bracket.curly.go\"},{\"match\":\"(?:\\\\\\\\w+)\",\"name\":\"entity.name.type.go\"}]}},\"comment\":\"functions in-line with multi return types\",\"match\":\"(?:(\\\\\\\\bfunc\\\\\\\\b)((?:\\\\\\\\((?:[^/]*?)\\\\\\\\))(?:\\\\\\\\s+)(?:\\\\\\\\((?:[^/]*?)\\\\\\\\)))(?:\\\\\\\\s+)(?=\\\\\\\\{))\"},\"generic_param_types\":{\"comment\":\"generic parameter variables and types\",\"patterns\":[{\"include\":\"#struct_variables_types\"},{\"include\":\"#interface_variables_types\"},{\"include\":\"#type-declarations-without-brackets\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"variable.parameter.go\"}]}},\"comment\":\"struct/interface type declaration\",\"match\":\"((?:(?:\\\\\\\\b\\\\\\\\w+\\\\\\\\,\\\\\\\\s*)+)?\\\\\\\\b\\\\\\\\w+)\\\\\\\\s+(?=(?:(?:\\\\\\\\s*(?:[\\\\\\\\*\\\\\\\\[\\\\\\\\]]+)?(?:\\\\\\\\<\\\\\\\\-\\\\\\\\s*)?\\\\\\\\bchan\\\\\\\\b(?:\\\\\\\\s*\\\\\\\\<\\\\\\\\-)?\\\\\\\\s*)+)?(?:[\\\\\\\\[\\\\\\\\]\\\\\\\\*]+)?\\\\\\\\b(?:struct|interface)\\\\\\\\b\\\\\\\\s*\\\\\\\\{)\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"variable.parameter.go\"}]}},\"comment\":\"multiple parameters one type -with multilines\",\"match\":\"(?:(?:(?<=\\\\\\\\()|^\\\\\\\\s*)((?:(?:\\\\\\\\b\\\\\\\\w+\\\\\\\\,\\\\\\\\s*)+)(?:/(?:/|\\\\\\\\*).*)?)$)\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#delimiters\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"variable.parameter.go\"}]},\"2\":{\"patterns\":[{\"include\":\"#type-declarations-without-brackets\"},{\"include\":\"#parameter-variable-types\"},{\"match\":\"(?:\\\\\\\\w+)\",\"name\":\"entity.name.type.go\"}]},\"3\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"(?:\\\\\\\\w+)\",\"name\":\"entity.name.type.go\"}]}},\"comment\":\"multiple params and types | multiple types one param\",\"match\":\"(?:((?:(?:\\\\\\\\b\\\\\\\\w+\\\\\\\\,\\\\\\\\s*)+)?\\\\\\\\b\\\\\\\\w+)(?:\\\\\\\\s+)((?:(?:\\\\\\\\s*(?:[\\\\\\\\*\\\\\\\\[\\\\\\\\]]+)?(?:\\\\\\\\<\\\\\\\\-\\\\\\\\s*)?\\\\\\\\bchan\\\\\\\\b(?:\\\\\\\\s*\\\\\\\\<\\\\\\\\-)?\\\\\\\\s*)+)?(?:(?:(?:[\\\\\\\\w\\\\\\\\[\\\\\\\\]\\\\\\\\.\\\\\\\\*]+)?(?:(?:\\\\\\\\bfunc\\\\\\\\b\\\\\\\\((?:[^\\\\\\\\)]+)?\\\\\\\\))(?:(?:\\\\\\\\s*(?:[\\\\\\\\*\\\\\\\\[\\\\\\\\]]+)?(?:\\\\\\\\<\\\\\\\\-\\\\\\\\s*)?\\\\\\\\bchan\\\\\\\\b(?:\\\\\\\\s*\\\\\\\\<\\\\\\\\-)?\\\\\\\\s*)+)?(?:\\\\\\\\s*))+(?:(?:(?:[\\\\\\\\w\\\\\\\\*\\\\\\\\.]+)|(?:\\\\\\\\((?:[^\\\\\\\\)]+)?\\\\\\\\))))?)|(?:(?:(?:[\\\\\\\\w\\\\\\\\*\\\\\\\\.\\\\\\\\~]+)|(?:\\\\\\\\[(?:(?:[\\\\\\\\w\\\\\\\\.\\\\\\\\*]+)?(?:\\\\\\\\[(?:[^\\\\\\\\]]+)?\\\\\\\\])?(?:\\\\\\\\,\\\\\\\\s+)?)+\\\\\\\\]))(?:[\\\\\\\\w\\\\\\\\.\\\\\\\\*]+)?)+)))\"},{\"begin\":\"(?:([\\\\\\\\w\\\\\\\\.\\\\\\\\*]+)?(\\\\\\\\[))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"(?:\\\\\\\\w+)\",\"name\":\"entity.name.type.go\"}]},\"2\":{\"name\":\"punctuation.definition.begin.bracket.square.go\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.square.go\"}},\"patterns\":[{\"include\":\"#generic_param_types\"}]},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.begin.bracket.round.go\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.round.go\"}},\"patterns\":[{\"include\":\"#function_param_types\"}]},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"(?:\\\\\\\\w+)\",\"name\":\"entity.name.type.go\"}]}},\"comment\":\"other types\",\"match\":\"(?:\\\\\\\\b([\\\\\\\\w\\\\\\\\.]+))\"},{\"include\":\"$self\"}]},\"generic_types\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.type.go\"}]},\"2\":{\"patterns\":[{\"include\":\"#parameter-variable-types\"}]}},\"comment\":\"Generic support for all types\",\"match\":\"(?:([\\\\\\\\w\\\\\\\\.\\\\\\\\*]+)(\\\\\\\\[(?:[^\\\\\\\\]]+)?\\\\\\\\]))\"},\"group-functions\":{\"comment\":\"all statements related to functions\",\"patterns\":[{\"include\":\"#function_declaration\"},{\"include\":\"#functions_inline\"},{\"include\":\"#functions\"},{\"include\":\"#built_in_functions\"},{\"include\":\"#support_functions\"}]},\"group-types\":{\"comment\":\"all statements related to types\",\"patterns\":[{\"include\":\"#other_struct_interface_expressions\"},{\"include\":\"#type_assertion_inline\"},{\"include\":\"#struct_variables_types\"},{\"include\":\"#interface_variables_types\"},{\"include\":\"#single_type\"},{\"include\":\"#multi_types\"},{\"include\":\"#struct_interface_declaration\"},{\"include\":\"#double_parentheses_types\"},{\"include\":\"#switch_types\"},{\"include\":\"#type-declarations\"}]},\"group-variables\":{\"comment\":\"all statements related to variables\",\"patterns\":[{\"include\":\"#const_assignment\"},{\"include\":\"#var_assignment\"},{\"include\":\"#variable_assignment\"},{\"include\":\"#label_loop_variables\"},{\"include\":\"#slice_index_variables\"},{\"include\":\"#property_variables\"},{\"include\":\"#switch_select_case_variables\"},{\"include\":\"#other_variables\"}]},\"import\":{\"comment\":\"import\",\"patterns\":[{\"begin\":\"\\\\\\\\b(import)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.import.go\"}},\"comment\":\"import\",\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"include\":\"#imports\"}]}]},\"imports\":{\"comment\":\"import package(s)\",\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#delimiters\"},{\"match\":\"(?:\\\\\\\\w+)\",\"name\":\"variable.other.import.go\"}]},\"2\":{\"name\":\"string.quoted.double.go\"},\"3\":{\"name\":\"punctuation.definition.string.begin.go\"},\"4\":{\"name\":\"entity.name.import.go\"},\"5\":{\"name\":\"punctuation.definition.string.end.go\"}},\"match\":\"(\\\\\\\\s*[\\\\\\\\w\\\\\\\\.]+)?\\\\\\\\s*((\\\\\")([^\\\\\"]*)(\\\\\"))\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.imports.begin.bracket.round.go\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.imports.end.bracket.round.go\"}},\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#imports\"}]},{\"include\":\"$self\"}]},\"interface_variables_types\":{\"begin\":\"(\\\\\\\\binterface\\\\\\\\b)\\\\\\\\s*(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.interface.go\"},\"2\":{\"name\":\"punctuation.definition.begin.bracket.curly.go\"}},\"comment\":\"interface variable types\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.curly.go\"}},\"patterns\":[{\"include\":\"#interface_variables_types_field\"},{\"include\":\"$self\"}]},\"interface_variables_types_field\":{\"comment\":\"interface variable type fields\",\"patterns\":[{\"include\":\"#support_functions\"},{\"include\":\"#type-declarations-without-brackets\"},{\"begin\":\"(?:([\\\\\\\\w\\\\\\\\.\\\\\\\\*]+)?(\\\\\\\\[))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"(?:\\\\\\\\w+)\",\"name\":\"entity.name.type.go\"}]},\"2\":{\"name\":\"punctuation.definition.begin.bracket.square.go\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.square.go\"}},\"patterns\":[{\"include\":\"#generic_param_types\"}]},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.begin.bracket.round.go\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.round.go\"}},\"patterns\":[{\"include\":\"#function_param_types\"}]},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.type.go\"}]}},\"comment\":\"other types\",\"match\":\"([\\\\\\\\w\\\\\\\\.]+)\"}]},\"keywords\":{\"patterns\":[{\"comment\":\"Flow control keywords\",\"match\":\"\\\\\\\\b(break|case|continue|default|defer|else|fallthrough|for|go|goto|if|range|return|select|switch)\\\\\\\\b\",\"name\":\"keyword.control.go\"},{\"match\":\"\\\\\\\\bchan\\\\\\\\b\",\"name\":\"keyword.channel.go\"},{\"match\":\"\\\\\\\\bconst\\\\\\\\b\",\"name\":\"keyword.const.go\"},{\"match\":\"\\\\\\\\bvar\\\\\\\\b\",\"name\":\"keyword.var.go\"},{\"match\":\"\\\\\\\\bfunc\\\\\\\\b\",\"name\":\"keyword.function.go\"},{\"match\":\"\\\\\\\\binterface\\\\\\\\b\",\"name\":\"keyword.interface.go\"},{\"match\":\"\\\\\\\\bmap\\\\\\\\b\",\"name\":\"keyword.map.go\"},{\"match\":\"\\\\\\\\bstruct\\\\\\\\b\",\"name\":\"keyword.struct.go\"},{\"match\":\"\\\\\\\\bimport\\\\\\\\b\",\"name\":\"keyword.control.import.go\"},{\"match\":\"\\\\\\\\btype\\\\\\\\b\",\"name\":\"keyword.type.go\"}]},\"label_loop_variables\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"variable.other.label.go\"}]}},\"comment\":\"labeled loop variable name\",\"match\":\"((?:^\\\\\\\\s*\\\\\\\\w+:\\\\\\\\s*$)|(?:^\\\\\\\\s*(?:\\\\\\\\bbreak\\\\\\\\b|\\\\\\\\bgoto\\\\\\\\b|\\\\\\\\bcontinue\\\\\\\\b)\\\\\\\\s+\\\\\\\\w+(?:\\\\\\\\s*/(?:/|\\\\\\\\*)\\\\\\\\s*.*)?$))\"},\"language_constants\":{\"captures\":{\"1\":{\"name\":\"constant.language.boolean.go\"},\"2\":{\"name\":\"constant.language.null.go\"},\"3\":{\"name\":\"constant.language.iota.go\"}},\"comment\":\"Language constants\",\"match\":\"\\\\\\\\b(?:(true|false)|(nil)|(iota))\\\\\\\\b\"},\"map_types\":{\"begin\":\"(?:(\\\\\\\\bmap\\\\\\\\b)(\\\\\\\\[))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.map.go\"},\"2\":{\"name\":\"punctuation.definition.begin.bracket.square.go\"}},\"comment\":\"map types\",\"end\":\"(?:(\\\\\\\\])((?:(?:(?:[\\\\\\\\*\\\\\\\\[\\\\\\\\]]+)?(?:\\\\\\\\<\\\\\\\\-\\\\\\\\s*)?\\\\\\\\bchan\\\\\\\\b(?:\\\\\\\\s*\\\\\\\\<\\\\\\\\-)?\\\\\\\\s*)+)?(?!(?:[\\\\\\\\[\\\\\\\\]\\\\\\\\*]+)?\\\\\\\\b(?:func|struct|map)\\\\\\\\b)(?:[\\\\\\\\*\\\\\\\\[\\\\\\\\]]+)?(?:[\\\\\\\\w\\\\\\\\.]+)(?:\\\\\\\\[(?:(?:[\\\\\\\\w\\\\\\\\.\\\\\\\\*\\\\\\\\[\\\\\\\\]\\\\\\\\{\\\\\\\\}]+)(?:(?:\\\\\\\\,\\\\\\\\s*(?:[\\\\\\\\w\\\\\\\\.\\\\\\\\*\\\\\\\\[\\\\\\\\]\\\\\\\\{\\\\\\\\}]+))*))?\\\\\\\\])?)?)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.end.bracket.square.go\"},\"2\":{\"patterns\":[{\"include\":\"#type-declarations-without-brackets\"},{\"match\":\"\\\\\\\\[\",\"name\":\"punctuation.definition.begin.bracket.square.go\"},{\"match\":\"\\\\\\\\]\",\"name\":\"punctuation.definition.end.bracket.square.go\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.type.go\"}]}},\"patterns\":[{\"include\":\"#type-declarations-without-brackets\"},{\"include\":\"#parameter-variable-types\"},{\"include\":\"#functions\"},{\"match\":\"\\\\\\\\[\",\"name\":\"punctuation.definition.begin.bracket.square.go\"},{\"match\":\"\\\\\\\\]\",\"name\":\"punctuation.definition.end.bracket.square.go\"},{\"match\":\"\\\\\\\\{\",\"name\":\"punctuation.definition.begin.bracket.curly.go\"},{\"match\":\"\\\\\\\\}\",\"name\":\"punctuation.definition.end.bracket.curly.go\"},{\"match\":\"\\\\\\\\(\",\"name\":\"punctuation.definition.begin.bracket.round.go\"},{\"match\":\"\\\\\\\\)\",\"name\":\"punctuation.definition.end.bracket.round.go\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.type.go\"}]},\"multi_types\":{\"begin\":\"(\\\\\\\\btype\\\\\\\\b)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.type.go\"},\"2\":{\"name\":\"punctuation.definition.begin.bracket.round.go\"}},\"comment\":\"multi type declaration\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.round.go\"}},\"patterns\":[{\"include\":\"#struct_variables_types\"},{\"include\":\"#interface_variables_types\"},{\"include\":\"#type-declarations-without-brackets\"},{\"include\":\"#parameter-variable-types\"},{\"match\":\"(?:\\\\\\\\w+)\",\"name\":\"entity.name.type.go\"}]},\"numeric_literals\":{\"captures\":{\"0\":{\"patterns\":[{\"begin\":\"(?=.)\",\"end\":\"(?:\\\\\\\\n|$)\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.go\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.go\"}]},\"2\":{\"name\":\"punctuation.separator.constant.numeric.go\"},\"3\":{\"name\":\"constant.numeric.decimal.point.go\"},\"4\":{\"name\":\"constant.numeric.decimal.go\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.go\"}]},\"5\":{\"name\":\"punctuation.separator.constant.numeric.go\"},\"6\":{\"name\":\"keyword.other.unit.exponent.decimal.go\"},\"7\":{\"name\":\"keyword.operator.plus.exponent.decimal.go\"},\"8\":{\"name\":\"keyword.operator.minus.exponent.decimal.go\"},\"9\":{\"name\":\"constant.numeric.exponent.decimal.go\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.go\"}]},\"10\":{\"name\":\"keyword.other.unit.imaginary.go\"},\"11\":{\"name\":\"constant.numeric.decimal.go\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.go\"}]},\"12\":{\"name\":\"punctuation.separator.constant.numeric.go\"},\"13\":{\"name\":\"keyword.other.unit.exponent.decimal.go\"},\"14\":{\"name\":\"keyword.operator.plus.exponent.decimal.go\"},\"15\":{\"name\":\"keyword.operator.minus.exponent.decimal.go\"},\"16\":{\"name\":\"constant.numeric.exponent.decimal.go\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.go\"}]},\"17\":{\"name\":\"keyword.other.unit.imaginary.go\"},\"18\":{\"name\":\"constant.numeric.decimal.point.go\"},\"19\":{\"name\":\"constant.numeric.decimal.go\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.go\"}]},\"20\":{\"name\":\"punctuation.separator.constant.numeric.go\"},\"21\":{\"name\":\"keyword.other.unit.exponent.decimal.go\"},\"22\":{\"name\":\"keyword.operator.plus.exponent.decimal.go\"},\"23\":{\"name\":\"keyword.operator.minus.exponent.decimal.go\"},\"24\":{\"name\":\"constant.numeric.exponent.decimal.go\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.go\"}]},\"25\":{\"name\":\"keyword.other.unit.imaginary.go\"},\"26\":{\"name\":\"keyword.other.unit.hexadecimal.go\"},\"27\":{\"name\":\"constant.numeric.hexadecimal.go\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.go\"}]},\"28\":{\"name\":\"punctuation.separator.constant.numeric.go\"},\"29\":{\"name\":\"constant.numeric.hexadecimal.go\"},\"30\":{\"name\":\"constant.numeric.hexadecimal.go\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.go\"}]},\"31\":{\"name\":\"punctuation.separator.constant.numeric.go\"},\"32\":{\"name\":\"keyword.other.unit.exponent.hexadecimal.go\"},\"33\":{\"name\":\"keyword.operator.plus.exponent.hexadecimal.go\"},\"34\":{\"name\":\"keyword.operator.minus.exponent.hexadecimal.go\"},\"35\":{\"name\":\"constant.numeric.exponent.hexadecimal.go\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.go\"}]},\"36\":{\"name\":\"keyword.other.unit.imaginary.go\"},\"37\":{\"name\":\"keyword.other.unit.hexadecimal.go\"},\"38\":{\"name\":\"constant.numeric.hexadecimal.go\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.go\"}]},\"39\":{\"name\":\"punctuation.separator.constant.numeric.go\"},\"40\":{\"name\":\"keyword.other.unit.exponent.hexadecimal.go\"},\"41\":{\"name\":\"keyword.operator.plus.exponent.hexadecimal.go\"},\"42\":{\"name\":\"keyword.operator.minus.exponent.hexadecimal.go\"},\"43\":{\"name\":\"constant.numeric.exponent.hexadecimal.go\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.go\"}]},\"44\":{\"name\":\"keyword.other.unit.imaginary.go\"},\"45\":{\"name\":\"keyword.other.unit.hexadecimal.go\"},\"46\":{\"name\":\"constant.numeric.hexadecimal.go\"},\"47\":{\"name\":\"constant.numeric.hexadecimal.go\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.go\"}]},\"48\":{\"name\":\"punctuation.separator.constant.numeric.go\"},\"49\":{\"name\":\"keyword.other.unit.exponent.hexadecimal.go\"},\"50\":{\"name\":\"keyword.operator.plus.exponent.hexadecimal.go\"},\"51\":{\"name\":\"keyword.operator.minus.exponent.hexadecimal.go\"},\"52\":{\"name\":\"constant.numeric.exponent.hexadecimal.go\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.go\"}]},\"53\":{\"name\":\"keyword.other.unit.imaginary.go\"}},\"match\":\"(?:(?:(?:(?:(?:\\\\\\\\G(?=[0-9.])(?!0[xXbBoO])([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?:(?<=[0-9])\\\\\\\\.|\\\\\\\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)?(?:(?<!_)([eE])(\\\\\\\\+?)(\\\\\\\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)))?(i(?!\\\\\\\\w))?(?:\\\\\\\\n|$)|\\\\\\\\G(?=[0-9.])(?!0[xXbBoO])([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?<!_)([eE])(\\\\\\\\+?)(\\\\\\\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*))(i(?!\\\\\\\\w))?(?:\\\\\\\\n|$))|\\\\\\\\G((?:(?<=[0-9])\\\\\\\\.|\\\\\\\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?:(?<!_)([eE])(\\\\\\\\+?)(\\\\\\\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)))?(i(?!\\\\\\\\w))?(?:\\\\\\\\n|$))|(\\\\\\\\G0[xX])_?([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?:(?<=[0-9a-fA-F])\\\\\\\\.|\\\\\\\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)?(?<!_)([pP])(\\\\\\\\+?)(\\\\\\\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*))(i(?!\\\\\\\\w))?(?:\\\\\\\\n|$))|(\\\\\\\\G0[xX])_?([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?<!_)([pP])(\\\\\\\\+?)(\\\\\\\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*))(i(?!\\\\\\\\w))?(?:\\\\\\\\n|$))|(\\\\\\\\G0[xX])((?:(?<=[0-9a-fA-F])\\\\\\\\.|\\\\\\\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?<!_)([pP])(\\\\\\\\+?)(\\\\\\\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*))(i(?!\\\\\\\\w))?(?:\\\\\\\\n|$))\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.go\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.go\"}]},\"2\":{\"name\":\"punctuation.separator.constant.numeric.go\"},\"3\":{\"name\":\"keyword.other.unit.imaginary.go\"},\"4\":{\"name\":\"keyword.other.unit.binary.go\"},\"5\":{\"name\":\"constant.numeric.binary.go\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.go\"}]},\"6\":{\"name\":\"punctuation.separator.constant.numeric.go\"},\"7\":{\"name\":\"keyword.other.unit.imaginary.go\"},\"8\":{\"name\":\"keyword.other.unit.octal.go\"},\"9\":{\"name\":\"constant.numeric.octal.go\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.go\"}]},\"10\":{\"name\":\"punctuation.separator.constant.numeric.go\"},\"11\":{\"name\":\"keyword.other.unit.imaginary.go\"},\"12\":{\"name\":\"keyword.other.unit.hexadecimal.go\"},\"13\":{\"name\":\"constant.numeric.hexadecimal.go\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.go\"}]},\"14\":{\"name\":\"punctuation.separator.constant.numeric.go\"},\"15\":{\"name\":\"keyword.other.unit.imaginary.go\"}},\"match\":\"(?:(?:(?:\\\\\\\\G(?=[0-9.])(?!0[xXbBoO])([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(i(?!\\\\\\\\w))?(?:\\\\\\\\n|$)|(\\\\\\\\G0[bB])_?([01](?:[01]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(i(?!\\\\\\\\w))?(?:\\\\\\\\n|$))|(\\\\\\\\G0[oO]?)_?((?:[0-7]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))+)(i(?!\\\\\\\\w))?(?:\\\\\\\\n|$))|(\\\\\\\\G0[xX])_?([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(i(?!\\\\\\\\w))?(?:\\\\\\\\n|$))\"},{\"match\":\"(?:(?:[0-9a-zA-Z_\\\\\\\\.])|(?<=[eEpP])[+-])+\",\"name\":\"invalid.illegal.constant.numeric.go\"}]}]}},\"match\":\"(?<!\\\\\\\\w)\\\\\\\\.?\\\\\\\\d(?:(?:[0-9a-zA-Z_\\\\\\\\.])|(?<=[eEpP])[+-])*\"},\"operators\":{\"comment\":\"Note that the order here is very important!\",\"patterns\":[{\"match\":\"((?:\\\\\\\\*|\\\\\\\\&)+)(?:(?!\\\\\\\\d)(?=(?:[\\\\\\\\w\\\\\\\\[\\\\\\\\]])|(?:\\\\\\\\<\\\\\\\\-)))\",\"name\":\"keyword.operator.address.go\"},{\"match\":\"<\\\\\\\\-\",\"name\":\"keyword.operator.channel.go\"},{\"match\":\"\\\\\\\\-\\\\\\\\-\",\"name\":\"keyword.operator.decrement.go\"},{\"match\":\"\\\\\\\\+\\\\\\\\+\",\"name\":\"keyword.operator.increment.go\"},{\"match\":\"(==|!=|<=|>=|<(?!<)|>(?!>))\",\"name\":\"keyword.operator.comparison.go\"},{\"match\":\"(&&|\\\\\\\\|\\\\\\\\||!)\",\"name\":\"keyword.operator.logical.go\"},{\"match\":\"(=|\\\\\\\\+=|\\\\\\\\-=|\\\\\\\\|=|\\\\\\\\^=|\\\\\\\\*=|/=|:=|%=|<<=|>>=|&\\\\\\\\^=|&=)\",\"name\":\"keyword.operator.assignment.go\"},{\"match\":\"(\\\\\\\\+|\\\\\\\\-|\\\\\\\\*|/|%)\",\"name\":\"keyword.operator.arithmetic.go\"},{\"match\":\"(&(?!\\\\\\\\^)|\\\\\\\\||\\\\\\\\^|&\\\\\\\\^|<<|>>|\\\\\\\\~)\",\"name\":\"keyword.operator.arithmetic.bitwise.go\"},{\"match\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"name\":\"keyword.operator.ellipsis.go\"}]},\"other_struct_interface_expressions\":{\"comment\":\"struct and interface expression in-line (before curly bracket)\",\"patterns\":[{\"comment\":\"after control variables must be added exactly here, do not move it! (changing may not affect tests, so be careful!)\",\"include\":\"#after_control_variables\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.type.go\"}]},\"2\":{\"patterns\":[{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.begin.bracket.square.go\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.square.go\"}},\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.type.go\"},{\"include\":\"$self\"}]}]}},\"match\":\"(\\\\\\\\b[\\\\\\\\w\\\\\\\\.]+)(\\\\\\\\[(?:[^\\\\\\\\]]+)?\\\\\\\\])?(?=\\\\\\\\{)(?<!\\\\\\\\bstruct\\\\\\\\b|\\\\\\\\binterface\\\\\\\\b)\"}]},\"other_variables\":{\"comment\":\"all other variables\",\"match\":\"\\\\\\\\w+\",\"name\":\"variable.other.go\"},\"package_name\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(package)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.package.go\"}},\"comment\":\"package name\",\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"match\":\"\\\\\\\\d\\\\\\\\w*\",\"name\":\"invalid.illegal.identifier.go\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.type.package.go\"}]}]},\"parameter-variable-types\":{\"comment\":\"function and generic parameter types\",\"patterns\":[{\"match\":\"\\\\\\\\{\",\"name\":\"punctuation.definition.begin.bracket.curly.go\"},{\"match\":\"\\\\\\\\}\",\"name\":\"punctuation.definition.end.bracket.curly.go\"},{\"begin\":\"(?:([\\\\\\\\w\\\\\\\\.\\\\\\\\*]+)?(\\\\\\\\[))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"(?:\\\\\\\\w+)\",\"name\":\"entity.name.type.go\"}]},\"2\":{\"name\":\"punctuation.definition.begin.bracket.square.go\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.square.go\"}},\"patterns\":[{\"include\":\"#generic_param_types\"}]},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.begin.bracket.round.go\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.round.go\"}},\"patterns\":[{\"include\":\"#function_param_types\"}]}]},\"property_variables\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"variable.other.property.go\"}]}},\"comment\":\"Property variables in struct\",\"match\":\"((?:\\\\\\\\b[\\\\\\\\w\\\\\\\\.]+)(?:\\\\\\\\:(?!\\\\\\\\=)))\"},\"raw_string_literals\":{\"begin\":\"\\`\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.go\"}},\"comment\":\"Raw string literals\",\"end\":\"\\`\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.go\"}},\"name\":\"string.quoted.raw.go\",\"patterns\":[{\"include\":\"#string_placeholder\"}]},\"runes\":{\"patterns\":[{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.go\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.go\"}},\"name\":\"string.quoted.rune.go\",\"patterns\":[{\"match\":\"\\\\\\\\G(\\\\\\\\\\\\\\\\([0-7]{3}|[abfnrtv\\\\\\\\\\\\\\\\'\\\\\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})|.)(?=')\",\"name\":\"constant.other.rune.go\"},{\"match\":\"[^']+\",\"name\":\"invalid.illegal.unknown-rune.go\"}]}]},\"single_type\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.type.go\"},\"2\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.type.go\"}]},\"3\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.begin.bracket.round.go\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.round.go\"}},\"patterns\":[{\"include\":\"#function_param_types\"},{\"include\":\"$self\"}]},{\"include\":\"#type-declarations\"},{\"include\":\"#generic_types\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.type.go\"}]}},\"comment\":\"single type declaration\",\"match\":\"(?:(?:^\\\\\\\\s*)(\\\\\\\\btype\\\\\\\\b)(?:\\\\\\\\s*)([\\\\\\\\w\\\\\\\\.\\\\\\\\*]+)(?:\\\\\\\\s+)(?!(?:\\\\\\\\=\\\\\\\\s*)?(?:[\\\\\\\\[\\\\\\\\]\\\\\\\\*]+)?\\\\\\\\b(?:struct|interface)\\\\\\\\b)([\\\\\\\\s\\\\\\\\S]+))\"},{\"begin\":\"(?:(?:^|\\\\\\\\s+)(\\\\\\\\btype\\\\\\\\b)(?:\\\\\\\\s*)([\\\\\\\\w\\\\\\\\.\\\\\\\\*]+)(?=\\\\\\\\[))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.type.go\"},\"2\":{\"patterns\":[{\"include\":\"#type-declarations-without-brackets\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.type.go\"}]}},\"comment\":\"single type declaration with generics\",\"end\":\"(?:(?<=\\\\\\\\])((?:\\\\\\\\s+)(?:\\\\\\\\=\\\\\\\\s*)?(?:(?:(?:[\\\\\\\\*\\\\\\\\[\\\\\\\\]]+)?(?:\\\\\\\\<\\\\\\\\-\\\\\\\\s*)?\\\\\\\\bchan\\\\\\\\b(?:\\\\\\\\s*\\\\\\\\<\\\\\\\\-)?\\\\\\\\s*)+)?(?:(?!(?:[\\\\\\\\[\\\\\\\\]\\\\\\\\*]+)?(?:\\\\\\\\bstruct\\\\\\\\b|\\\\\\\\binterface\\\\\\\\b|\\\\\\\\bfunc\\\\\\\\b))[\\\\\\\\w\\\\\\\\.\\\\\\\\-\\\\\\\\*\\\\\\\\[\\\\\\\\]]+(?:\\\\\\\\,\\\\\\\\s*[\\\\\\\\w\\\\\\\\.\\\\\\\\[\\\\\\\\]\\\\\\\\*]+)*))?)\",\"endCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations-without-brackets\"},{\"match\":\"\\\\\\\\[\",\"name\":\"punctuation.definition.begin.bracket.square.go\"},{\"match\":\"\\\\\\\\]\",\"name\":\"punctuation.definition.end.bracket.square.go\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.type.go\"}]}},\"patterns\":[{\"include\":\"#struct_variables_types\"},{\"include\":\"#type-declarations-without-brackets\"},{\"include\":\"#parameter-variable-types\"},{\"match\":\"\\\\\\\\[\",\"name\":\"punctuation.definition.begin.bracket.square.go\"},{\"match\":\"\\\\\\\\]\",\"name\":\"punctuation.definition.end.bracket.square.go\"},{\"match\":\"\\\\\\\\{\",\"name\":\"punctuation.definition.begin.bracket.curly.go\"},{\"match\":\"\\\\\\\\}\",\"name\":\"punctuation.definition.end.bracket.curly.go\"},{\"match\":\"\\\\\\\\(\",\"name\":\"punctuation.definition.begin.bracket.round.go\"},{\"match\":\"\\\\\\\\)\",\"name\":\"punctuation.definition.end.bracket.round.go\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.type.go\"}]}]},\"slice_index_variables\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"variable.other.go\"}]}},\"comment\":\"slice index and capacity variables, to not scope them as property variables\",\"match\":\"(?<=\\\\\\\\w\\\\\\\\[)((?:(?:\\\\\\\\b[\\\\\\\\w\\\\\\\\.\\\\\\\\*\\\\\\\\+/\\\\\\\\-\\\\\\\\%\\\\\\\\<\\\\\\\\>\\\\\\\\|\\\\\\\\&]+\\\\\\\\:)|(?:\\\\\\\\:\\\\\\\\b[\\\\\\\\w\\\\\\\\.\\\\\\\\*\\\\\\\\+/\\\\\\\\-\\\\\\\\%\\\\\\\\<\\\\\\\\>\\\\\\\\|\\\\\\\\&]+))(?:\\\\\\\\b[\\\\\\\\w\\\\\\\\.\\\\\\\\*\\\\\\\\+/\\\\\\\\-\\\\\\\\%\\\\\\\\<\\\\\\\\>\\\\\\\\|\\\\\\\\&]+)?(?:\\\\\\\\:\\\\\\\\b[\\\\\\\\w\\\\\\\\.\\\\\\\\*\\\\\\\\+/\\\\\\\\-\\\\\\\\%\\\\\\\\<\\\\\\\\>\\\\\\\\|\\\\\\\\&]+)?)(?=\\\\\\\\])\"},\"statements\":{\"patterns\":[{\"include\":\"#package_name\"},{\"include\":\"#import\"},{\"include\":\"#syntax_errors\"},{\"include\":\"#group-functions\"},{\"include\":\"#group-types\"},{\"include\":\"#group-variables\"},{\"include\":\"#field_hover\"}]},\"storage_types\":{\"patterns\":[{\"match\":\"\\\\\\\\bbool\\\\\\\\b\",\"name\":\"storage.type.boolean.go\"},{\"match\":\"\\\\\\\\bbyte\\\\\\\\b\",\"name\":\"storage.type.byte.go\"},{\"match\":\"\\\\\\\\berror\\\\\\\\b\",\"name\":\"storage.type.error.go\"},{\"match\":\"\\\\\\\\b(complex(64|128)|float(32|64)|u?int(8|16|32|64)?)\\\\\\\\b\",\"name\":\"storage.type.numeric.go\"},{\"match\":\"\\\\\\\\brune\\\\\\\\b\",\"name\":\"storage.type.rune.go\"},{\"match\":\"\\\\\\\\bstring\\\\\\\\b\",\"name\":\"storage.type.string.go\"},{\"match\":\"\\\\\\\\buintptr\\\\\\\\b\",\"name\":\"storage.type.uintptr.go\"},{\"match\":\"\\\\\\\\bany\\\\\\\\b\",\"name\":\"entity.name.type.any.go\"}]},\"string_escaped_char\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\([0-7]{3}|[abfnrtv\\\\\\\\\\\\\\\\'\\\\\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})\",\"name\":\"constant.character.escape.go\"},{\"match\":\"\\\\\\\\\\\\\\\\[^0-7xuUabfnrtv\\\\\\\\'\\\\\"]\",\"name\":\"invalid.illegal.unknown-escape.go\"}]},\"string_literals\":{\"patterns\":[{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.go\"}},\"comment\":\"Interpreted string literals\",\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.go\"}},\"name\":\"string.quoted.double.go\",\"patterns\":[{\"include\":\"#string_escaped_char\"},{\"include\":\"#string_placeholder\"}]}]},\"string_placeholder\":{\"patterns\":[{\"match\":\"%(\\\\\\\\[\\\\\\\\d+\\\\\\\\])?([\\\\\\\\+#\\\\\\\\-0\\\\\\\\x20]{,2}((\\\\\\\\d+|\\\\\\\\*)?(\\\\\\\\.?(\\\\\\\\d+|\\\\\\\\*|(\\\\\\\\[\\\\\\\\d+\\\\\\\\])\\\\\\\\*?)?(\\\\\\\\[\\\\\\\\d+\\\\\\\\])?)?))?[vT%tbcdoqxXUbeEfFgGspw]\",\"name\":\"constant.other.placeholder.go\"}]},\"struct_interface_declaration\":{\"captures\":{\"1\":{\"name\":\"keyword.type.go\"},\"2\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.type.go\"}]}},\"comment\":\"struct, interface type declarations (related to: struct_variables_types, interface_variables_types)\",\"match\":\"(?:(?:^\\\\\\\\s*)(\\\\\\\\btype\\\\\\\\b)(?:\\\\\\\\s*)([\\\\\\\\w\\\\\\\\.]+))\"},\"struct_variable_types_fields_multi\":{\"comment\":\"struct variable and type fields with multi lines\",\"patterns\":[{\"begin\":\"(?:((?:\\\\\\\\w+(?:\\\\\\\\,\\\\\\\\s*\\\\\\\\w+)*)(?:(?:\\\\\\\\s*(?:[\\\\\\\\*\\\\\\\\[\\\\\\\\]]+)?(?:\\\\\\\\<\\\\\\\\-\\\\\\\\s*)?\\\\\\\\bchan\\\\\\\\b(?:\\\\\\\\s*\\\\\\\\<\\\\\\\\-)?\\\\\\\\s*)+)?(?:\\\\\\\\s+)(?:[\\\\\\\\[\\\\\\\\]\\\\\\\\*]+)?)(\\\\\\\\bstruct\\\\\\\\b)(?:\\\\\\\\s*)(\\\\\\\\{))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"variable.other.property.go\"}]},\"2\":{\"name\":\"keyword.struct.go\"},\"3\":{\"name\":\"punctuation.definition.begin.bracket.curly.go\"}},\"comment\":\"struct in struct types\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.curly.go\"}},\"patterns\":[{\"include\":\"#struct_variables_types_fields\"},{\"include\":\"$self\"}]},{\"begin\":\"(?:((?:\\\\\\\\w+(?:\\\\\\\\,\\\\\\\\s*\\\\\\\\w+)*)(?:(?:\\\\\\\\s*(?:[\\\\\\\\*\\\\\\\\[\\\\\\\\]]+)?(?:\\\\\\\\<\\\\\\\\-\\\\\\\\s*)?\\\\\\\\bchan\\\\\\\\b(?:\\\\\\\\s*\\\\\\\\<\\\\\\\\-)?\\\\\\\\s*)+)?(?:\\\\\\\\s+)(?:[\\\\\\\\[\\\\\\\\]\\\\\\\\*]+)?)(\\\\\\\\binterface\\\\\\\\b)(?:\\\\\\\\s*)(\\\\\\\\{))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"variable.other.property.go\"}]},\"2\":{\"name\":\"keyword.interface.go\"},\"3\":{\"name\":\"punctuation.definition.begin.bracket.curly.go\"}},\"comment\":\"interface in struct types\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.curly.go\"}},\"patterns\":[{\"include\":\"#interface_variables_types_field\"},{\"include\":\"$self\"}]},{\"begin\":\"(?:((?:\\\\\\\\w+(?:\\\\\\\\,\\\\\\\\s*\\\\\\\\w+)*)(?:(?:\\\\\\\\s*(?:[\\\\\\\\*\\\\\\\\[\\\\\\\\]]+)?(?:\\\\\\\\<\\\\\\\\-\\\\\\\\s*)?\\\\\\\\bchan\\\\\\\\b(?:\\\\\\\\s*\\\\\\\\<\\\\\\\\-)?\\\\\\\\s*)+)?(?:\\\\\\\\s+)(?:[\\\\\\\\[\\\\\\\\]\\\\\\\\*]+)?)(\\\\\\\\bfunc\\\\\\\\b)(?:\\\\\\\\s*)(\\\\\\\\())\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"variable.other.property.go\"}]},\"2\":{\"name\":\"keyword.function.go\"},\"3\":{\"name\":\"punctuation.definition.begin.bracket.round.go\"}},\"comment\":\"function in struct types\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.round.go\"}},\"patterns\":[{\"include\":\"#function_param_types\"},{\"include\":\"$self\"}]},{\"include\":\"#parameter-variable-types\"}]},\"struct_variables_types\":{\"begin\":\"(\\\\\\\\bstruct\\\\\\\\b)\\\\\\\\s*(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.struct.go\"},\"2\":{\"name\":\"punctuation.definition.begin.bracket.curly.go\"}},\"comment\":\"Struct variable type\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.curly.go\"}},\"patterns\":[{\"include\":\"#struct_variables_types_fields\"},{\"include\":\"$self\"}]},\"struct_variables_types_fields\":{\"comment\":\"Struct variable type fields\",\"patterns\":[{\"include\":\"#struct_variable_types_fields_multi\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"(?:\\\\\\\\w+)\",\"name\":\"entity.name.type.go\"}]}},\"comment\":\"one line - single type\",\"match\":\"(?:(?<=\\\\\\\\{)\\\\\\\\s*((?:(?:\\\\\\\\s*(?:[\\\\\\\\*\\\\\\\\[\\\\\\\\]]+)?(?:\\\\\\\\<\\\\\\\\-\\\\\\\\s*)?\\\\\\\\bchan\\\\\\\\b(?:\\\\\\\\s*\\\\\\\\<\\\\\\\\-)?\\\\\\\\s*)+)?(?:[\\\\\\\\w\\\\\\\\.\\\\\\\\*\\\\\\\\[\\\\\\\\]]+))\\\\\\\\s*(?=\\\\\\\\}))\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"(?:\\\\\\\\w+)\",\"name\":\"variable.other.property.go\"}]},\"2\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"(?:\\\\\\\\w+)\",\"name\":\"entity.name.type.go\"}]}},\"comment\":\"one line - property variables and types\",\"match\":\"(?:(?<=\\\\\\\\{)\\\\\\\\s*((?:(?:\\\\\\\\w+\\\\\\\\,\\\\\\\\s*)+)?(?:\\\\\\\\w+\\\\\\\\s+))((?:(?:\\\\\\\\s*(?:[\\\\\\\\*\\\\\\\\[\\\\\\\\]]+)?(?:\\\\\\\\<\\\\\\\\-\\\\\\\\s*)?\\\\\\\\bchan\\\\\\\\b(?:\\\\\\\\s*\\\\\\\\<\\\\\\\\-)?\\\\\\\\s*)+)?(?:[\\\\\\\\w\\\\\\\\.\\\\\\\\*\\\\\\\\[\\\\\\\\]]+))\\\\\\\\s*(?=\\\\\\\\}))\"},{\"captures\":{\"1\":{\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"(?:\\\\\\\\w+)\",\"name\":\"variable.other.property.go\"}]},\"2\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"(?:\\\\\\\\w+)\",\"name\":\"entity.name.type.go\"}]}},\"match\":\"(?:((?:(?:\\\\\\\\w+\\\\\\\\,\\\\\\\\s*)+)?(?:\\\\\\\\w+\\\\\\\\s+))?((?:(?:\\\\\\\\s*(?:[\\\\\\\\*\\\\\\\\[\\\\\\\\]]+)?(?:\\\\\\\\<\\\\\\\\-\\\\\\\\s*)?\\\\\\\\bchan\\\\\\\\b(?:\\\\\\\\s*\\\\\\\\<\\\\\\\\-)?\\\\\\\\s*)+)?(?:[\\\\\\\\S]+)(?:\\\\\\\\;)?))\"}]}},\"comment\":\"one line with semicolon(;) without formatting gofmt - single type | property variables and types\",\"match\":\"(?:(?<=\\\\\\\\{)((?:\\\\\\\\s*(?:(?:(?:\\\\\\\\w+\\\\\\\\,\\\\\\\\s*)+)?(?:\\\\\\\\w+\\\\\\\\s+))?(?:(?:(?:\\\\\\\\s*(?:[\\\\\\\\*\\\\\\\\[\\\\\\\\]]+)?(?:\\\\\\\\<\\\\\\\\-\\\\\\\\s*)?\\\\\\\\bchan\\\\\\\\b(?:\\\\\\\\s*\\\\\\\\<\\\\\\\\-)?\\\\\\\\s*)+)?(?:[\\\\\\\\S]+)(?:\\\\\\\\;)?))+)\\\\\\\\s*(?=\\\\\\\\}))\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"(?:\\\\\\\\w+)\",\"name\":\"entity.name.type.go\"}]}},\"comment\":\"one type only\",\"match\":\"(?:((?:(?:\\\\\\\\s*(?:[\\\\\\\\*\\\\\\\\[\\\\\\\\]]+)?(?:\\\\\\\\<\\\\\\\\-\\\\\\\\s*)?\\\\\\\\bchan\\\\\\\\b(?:\\\\\\\\s*\\\\\\\\<\\\\\\\\-)?\\\\\\\\s*)+)?(?:[\\\\\\\\w\\\\\\\\.\\\\\\\\*]+)\\\\\\\\s*)(?:(?=\\\\\\\\\\`|\\\\\\\\/|\\\\\")|$))\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"(?:\\\\\\\\w+)\",\"name\":\"variable.other.property.go\"}]},\"2\":{\"patterns\":[{\"include\":\"#type-declarations-without-brackets\"},{\"include\":\"#parameter-variable-types\"},{\"match\":\"(?:\\\\\\\\w+)\",\"name\":\"entity.name.type.go\"}]}},\"comment\":\"property variables and types\",\"match\":\"(?:((?:(?:\\\\\\\\w+\\\\\\\\,\\\\\\\\s*)+)?(?:\\\\\\\\w+\\\\\\\\s+))([^\\\\\\\\\\`\\\\\"\\\\\\\\/]+))\"}]},\"support_functions\":{\"captures\":{\"1\":{\"name\":\"entity.name.function.support.go\"},\"2\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"\\\\\\\\d\\\\\\\\w*\",\"name\":\"invalid.illegal.identifier.go\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.function.support.go\"}]},\"3\":{\"patterns\":[{\"include\":\"#type-declarations-without-brackets\"},{\"match\":\"\\\\\\\\[\",\"name\":\"punctuation.definition.begin.bracket.square.go\"},{\"match\":\"\\\\\\\\]\",\"name\":\"punctuation.definition.end.bracket.square.go\"},{\"match\":\"\\\\\\\\{\",\"name\":\"punctuation.definition.begin.bracket.curly.go\"},{\"match\":\"\\\\\\\\}\",\"name\":\"punctuation.definition.end.bracket.curly.go\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.type.go\"}]}},\"comment\":\"Support Functions\",\"match\":\"(?:(?:((?<=\\\\\\\\.)\\\\\\\\b\\\\\\\\w+)|(\\\\\\\\b\\\\\\\\w+))(\\\\\\\\[(?:(?:[\\\\\\\\w\\\\\\\\.\\\\\\\\*\\\\\\\\[\\\\\\\\]\\\\\\\\{\\\\\\\\}\\\\\"\\\\\\\\']+)(?:(?:\\\\\\\\,\\\\\\\\s*(?:[\\\\\\\\w\\\\\\\\.\\\\\\\\*\\\\\\\\[\\\\\\\\]\\\\\\\\{\\\\\\\\}]+))*))?\\\\\\\\])?(?=\\\\\\\\())\"},\"switch_select_case_variables\":{\"captures\":{\"1\":{\"name\":\"keyword.control.go\"},\"2\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"include\":\"#support_functions\"},{\"include\":\"#variable_assignment\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"variable.other.go\"}]}},\"comment\":\"variables after case control keyword in switch/select expression, to not scope them as property variables\",\"match\":\"(?:(?:^\\\\\\\\s*(\\\\\\\\bcase\\\\\\\\b))(?:\\\\\\\\s+)([\\\\\\\\s\\\\\\\\S]+(?:\\\\\\\\:)\\\\\\\\s*(?:/(?:/|\\\\\\\\*).*)?)$)\"},\"switch_types\":{\"begin\":\"(?<=\\\\\\\\bswitch\\\\\\\\b)(?:\\\\\\\\s*)(?:(\\\\\\\\w+\\\\\\\\s*\\\\\\\\:\\\\\\\\=)?\\\\\\\\s*([\\\\\\\\w\\\\\\\\.\\\\\\\\*\\\\\\\\(\\\\\\\\)\\\\\\\\[\\\\\\\\]\\\\\\\\+/\\\\\\\\-\\\\\\\\%\\\\\\\\<\\\\\\\\>\\\\\\\\|\\\\\\\\&]+))(\\\\\\\\.\\\\\\\\(\\\\\\\\btype\\\\\\\\b\\\\\\\\)\\\\\\\\s*)(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#operators\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"variable.other.assignment.go\"}]},\"2\":{\"patterns\":[{\"include\":\"#support_functions\"},{\"include\":\"#type-declarations\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"variable.other.go\"}]},\"3\":{\"patterns\":[{\"include\":\"#delimiters\"},{\"include\":\"#brackets\"},{\"match\":\"\\\\\\\\btype\\\\\\\\b\",\"name\":\"keyword.type.go\"}]},\"4\":{\"name\":\"punctuation.definition.begin.bracket.curly.go\"}},\"comment\":\"switch type assertions, only highlights types after case keyword\",\"end\":\"(?:\\\\\\\\})\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.curly.go\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.go\"},\"2\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.type.go\"}]},\"3\":{\"name\":\"punctuation.other.colon.go\"},\"4\":{\"patterns\":[{\"include\":\"#comments\"}]}},\"comment\":\"types after case keyword with single line\",\"match\":\"(?:^\\\\\\\\s*(\\\\\\\\bcase\\\\\\\\b))(?:\\\\\\\\s+)([\\\\\\\\w\\\\\\\\.\\\\\\\\,\\\\\\\\*\\\\\\\\=\\\\\\\\<\\\\\\\\>\\\\\\\\!\\\\\\\\s]+)(:)(\\\\\\\\s*/(?:/|\\\\\\\\*)\\\\\\\\s*.*)?$\"},{\"begin\":\"\\\\\\\\bcase\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.go\"}},\"comment\":\"types after case keyword with multi lines\",\"end\":\"\\\\\\\\:\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.other.colon.go\"}},\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.type.go\"}]},{\"include\":\"$self\"}]},\"syntax_errors\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"invalid.illegal.slice.go\"}},\"comment\":\"Syntax error using slices\",\"match\":\"\\\\\\\\[\\\\\\\\](\\\\\\\\s+)\"},{\"comment\":\"Syntax error numeric literals\",\"match\":\"\\\\\\\\b0[0-7]*[89]\\\\\\\\d*\\\\\\\\b\",\"name\":\"invalid.illegal.numeric.go\"}]},\"terminators\":{\"comment\":\"Terminators\",\"match\":\";\",\"name\":\"punctuation.terminator.go\"},\"type-declarations\":{\"comment\":\"includes all type declarations\",\"patterns\":[{\"include\":\"#language_constants\"},{\"include\":\"#comments\"},{\"include\":\"#map_types\"},{\"include\":\"#brackets\"},{\"include\":\"#delimiters\"},{\"include\":\"#keywords\"},{\"include\":\"#operators\"},{\"include\":\"#runes\"},{\"include\":\"#storage_types\"},{\"include\":\"#raw_string_literals\"},{\"include\":\"#string_literals\"},{\"include\":\"#numeric_literals\"},{\"include\":\"#terminators\"}]},\"type-declarations-without-brackets\":{\"comment\":\"includes all type declarations without brackets (in some cases, brackets need to be captured manually)\",\"patterns\":[{\"include\":\"#language_constants\"},{\"include\":\"#comments\"},{\"include\":\"#map_types\"},{\"include\":\"#delimiters\"},{\"include\":\"#keywords\"},{\"include\":\"#operators\"},{\"include\":\"#runes\"},{\"include\":\"#storage_types\"},{\"include\":\"#raw_string_literals\"},{\"include\":\"#string_literals\"},{\"include\":\"#numeric_literals\"},{\"include\":\"#terminators\"}]},\"type_assertion_inline\":{\"captures\":{\"1\":{\"name\":\"keyword.type.go\"},\"2\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"match\":\"(?:\\\\\\\\w+)\",\"name\":\"entity.name.type.go\"}]}},\"comment\":\"struct/interface types in-line (type assertion) | switch type keyword\",\"match\":\"(?:(?<=\\\\\\\\.\\\\\\\\()(?:(\\\\\\\\btype\\\\\\\\b)|((?:(?:\\\\\\\\s*(?:[\\\\\\\\*\\\\\\\\[\\\\\\\\]]+)?(?:\\\\\\\\<\\\\\\\\-\\\\\\\\s*)?\\\\\\\\bchan\\\\\\\\b(?:\\\\\\\\s*\\\\\\\\<\\\\\\\\-)?\\\\\\\\s*)+)?[\\\\\\\\w\\\\\\\\.\\\\\\\\[\\\\\\\\]\\\\\\\\*]+))(?=\\\\\\\\)))\"},\"var_assignment\":{\"comment\":\"variable assignment with var keyword\",\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#delimiters\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"variable.other.assignment.go\"}]},\"2\":{\"patterns\":[{\"include\":\"#type-declarations-without-brackets\"},{\"include\":\"#generic_types\"},{\"match\":\"\\\\\\\\(\",\"name\":\"punctuation.definition.begin.bracket.round.go\"},{\"match\":\"\\\\\\\\)\",\"name\":\"punctuation.definition.end.bracket.round.go\"},{\"match\":\"\\\\\\\\[\",\"name\":\"punctuation.definition.begin.bracket.square.go\"},{\"match\":\"\\\\\\\\]\",\"name\":\"punctuation.definition.end.bracket.square.go\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.type.go\"}]}},\"comment\":\"single assignment\",\"match\":\"(?:(?<=\\\\\\\\bvar\\\\\\\\b)(?:\\\\\\\\s*)(\\\\\\\\b[\\\\\\\\w\\\\\\\\.]+(?:\\\\\\\\,\\\\\\\\s*[\\\\\\\\w\\\\\\\\.]+)*)(?:\\\\\\\\s*)((?:(?:(?:[\\\\\\\\*\\\\\\\\[\\\\\\\\]]+)?(?:\\\\\\\\<\\\\\\\\-\\\\\\\\s*)?\\\\\\\\bchan\\\\\\\\b(?:\\\\\\\\s*\\\\\\\\<\\\\\\\\-)?\\\\\\\\s*)+(?:\\\\\\\\([^\\\\\\\\)]+\\\\\\\\))?)?(?!(?:[\\\\\\\\[\\\\\\\\]\\\\\\\\*]+)?\\\\\\\\b(?:struct|func|map)\\\\\\\\b)(?:[\\\\\\\\w\\\\\\\\.\\\\\\\\[\\\\\\\\]\\\\\\\\*]+(?:\\\\\\\\,\\\\\\\\s*[\\\\\\\\w\\\\\\\\.\\\\\\\\[\\\\\\\\]\\\\\\\\*]+)*)?(?:\\\\\\\\s*)(?:\\\\\\\\=)?)?)\"},{\"begin\":\"(?:(?<=\\\\\\\\bvar\\\\\\\\b)(?:\\\\\\\\s*)(\\\\\\\\())\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.begin.bracket.round.go\"}},\"comment\":\"multi assignment\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.round.go\"}},\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#delimiters\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"variable.other.assignment.go\"}]},\"2\":{\"patterns\":[{\"include\":\"#type-declarations-without-brackets\"},{\"include\":\"#generic_types\"},{\"match\":\"\\\\\\\\(\",\"name\":\"punctuation.definition.begin.bracket.round.go\"},{\"match\":\"\\\\\\\\)\",\"name\":\"punctuation.definition.end.bracket.round.go\"},{\"match\":\"\\\\\\\\[\",\"name\":\"punctuation.definition.begin.bracket.square.go\"},{\"match\":\"\\\\\\\\]\",\"name\":\"punctuation.definition.end.bracket.square.go\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.type.go\"}]}},\"match\":\"(?:(?:^\\\\\\\\s*)(\\\\\\\\b[\\\\\\\\w\\\\\\\\.]+(?:\\\\\\\\,\\\\\\\\s*[\\\\\\\\w\\\\\\\\.]+)*)(?:\\\\\\\\s*)((?:(?:(?:[\\\\\\\\*\\\\\\\\[\\\\\\\\]]+)?(?:\\\\\\\\<\\\\\\\\-\\\\\\\\s*)?\\\\\\\\bchan\\\\\\\\b(?:\\\\\\\\s*\\\\\\\\<\\\\\\\\-)?\\\\\\\\s*)+(?:\\\\\\\\([^\\\\\\\\)]+\\\\\\\\))?)?(?!(?:[\\\\\\\\[\\\\\\\\]\\\\\\\\*]+)?\\\\\\\\b(?:struct|func|map)\\\\\\\\b)(?:[\\\\\\\\w\\\\\\\\.\\\\\\\\[\\\\\\\\]\\\\\\\\*]+(?:\\\\\\\\,\\\\\\\\s*[\\\\\\\\w\\\\\\\\.\\\\\\\\[\\\\\\\\]\\\\\\\\*]+)*)?(?:\\\\\\\\s*)(?:\\\\\\\\=)?)?)\"},{\"include\":\"$self\"}]}]},\"variable_assignment\":{\"comment\":\"variable assignment\",\"patterns\":[{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#delimiters\"},{\"match\":\"\\\\\\\\d\\\\\\\\w*\",\"name\":\"invalid.illegal.identifier.go\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"variable.other.assignment.go\"}]}},\"comment\":\"variable assignment with :=\",\"match\":\"\\\\\\\\b\\\\\\\\w+(?:\\\\\\\\,\\\\\\\\s*\\\\\\\\w+)*(?=\\\\\\\\s*:=)\"},{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#delimiters\"},{\"include\":\"#operators\"},{\"match\":\"\\\\\\\\d\\\\\\\\w*\",\"name\":\"invalid.illegal.identifier.go\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"variable.other.assignment.go\"}]}},\"comment\":\"variable assignment with =\",\"match\":\"\\\\\\\\b[\\\\\\\\w\\\\\\\\.\\\\\\\\*]+(?:\\\\\\\\,\\\\\\\\s*[\\\\\\\\w\\\\\\\\.\\\\\\\\*]+)*(?=\\\\\\\\s*=(?!=))\"}]}},\"scopeName\":\"source.go\"}`)),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/B1bQXN8T.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Raku\",\"name\":\"raku\",\"patterns\":[{\"begin\":\"^=begin\",\"end\":\"^=end\",\"name\":\"comment.block.perl\"},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.perl\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.perl\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.number-sign.perl\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.class.perl.6\"},\"3\":{\"name\":\"entity.name.type.class.perl.6\"}},\"match\":\"(class|enum|grammar|knowhow|module|package|role|slang|subset)(\\\\\\\\s+)(((?:::|')?(?:([a-zA-Z_\\\\\\\\x{C0}-\\\\\\\\x{FF}\\\\\\\\$])([a-zA-Z0-9_\\\\\\\\x{C0}-\\\\\\\\x{FF}\\\\\\\\\\\\\\\\$]|[\\\\\\\\-'][a-zA-Z0-9_\\\\\\\\x{C0}-\\\\\\\\x{FF}\\\\\\\\$])*))+)\",\"name\":\"meta.class.perl.6\"},{\"begin\":\"(?<=\\\\\\\\s)'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.perl\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"string.quoted.single.perl\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\['\\\\\\\\\\\\\\\\]\",\"name\":\"constant.character.escape.perl\"}]},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.perl\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"string.quoted.double.perl\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[abtnfre\\\\\"\\\\\\\\\\\\\\\\]\",\"name\":\"constant.character.escape.perl\"}]},{\"begin\":\"q(q|to|heredoc)*\\\\\\\\s*:?(q|to|heredoc)*\\\\\\\\s*/(.+)/\",\"end\":\"\\\\\\\\3\",\"name\":\"string.quoted.single.heredoc.perl\"},{\"begin\":\"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\\\\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\\\\\s*{{\",\"end\":\"}}\",\"name\":\"string.quoted.double.heredoc.brace.perl\",\"patterns\":[{\"include\":\"#qq_brace_string_content\"}]},{\"begin\":\"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\\\\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\\\\\s*\\\\\\\\(\\\\\\\\(\",\"end\":\"\\\\\\\\)\\\\\\\\)\",\"name\":\"string.quoted.double.heredoc.paren.perl\",\"patterns\":[{\"include\":\"#qq_paren_string_content\"}]},{\"begin\":\"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\\\\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\\\\\s*\\\\\\\\[\\\\\\\\[\",\"end\":\"\\\\\\\\]\\\\\\\\]\",\"name\":\"string.quoted.double.heredoc.bracket.perl\",\"patterns\":[{\"include\":\"#qq_bracket_string_content\"}]},{\"begin\":\"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\\\\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\\\\\s*{\",\"end\":\"}\",\"name\":\"string.quoted.single.heredoc.brace.perl\",\"patterns\":[{\"include\":\"#qq_brace_string_content\"}]},{\"begin\":\"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\\\\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\\\\\s*/\",\"end\":\"/\",\"name\":\"string.quoted.single.heredoc.slash.perl\",\"patterns\":[{\"include\":\"#qq_slash_string_content\"}]},{\"begin\":\"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\\\\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\\\\\s*\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"name\":\"string.quoted.single.heredoc.paren.perl\",\"patterns\":[{\"include\":\"#qq_paren_string_content\"}]},{\"begin\":\"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\\\\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\\\\\s*\\\\\\\\[\",\"end\":\"\\\\\\\\]\",\"name\":\"string.quoted.single.heredoc.bracket.perl\",\"patterns\":[{\"include\":\"#qq_bracket_string_content\"}]},{\"begin\":\"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\\\\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\\\\\s*'\",\"end\":\"'\",\"name\":\"string.quoted.single.heredoc.single.perl\",\"patterns\":[{\"include\":\"#qq_single_string_content\"}]},{\"begin\":\"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\\\\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\\\\\\\s*\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.single.heredoc.double.perl\",\"patterns\":[{\"include\":\"#qq_double_string_content\"}]},{\"match\":\"\\\\\\\\b\\\\\\\\$\\\\\\\\w+\\\\\\\\b\",\"name\":\"variable.other.perl\"},{\"match\":\"\\\\\\\\b(macro|sub|submethod|method|multi|proto|only|rule|token|regex|category)\\\\\\\\b\",\"name\":\"storage.type.declare.routine.perl\"},{\"match\":\"\\\\\\\\b(self)\\\\\\\\b\",\"name\":\"variable.language.perl\"},{\"match\":\"\\\\\\\\b(use|require)\\\\\\\\b\",\"name\":\"keyword.other.include.perl\"},{\"match\":\"\\\\\\\\b(if|else|elsif|unless)\\\\\\\\b\",\"name\":\"keyword.control.conditional.perl\"},{\"match\":\"\\\\\\\\b(let|my|our|state|temp|has|constant)\\\\\\\\b\",\"name\":\"storage.type.variable.perl\"},{\"match\":\"\\\\\\\\b(for|loop|repeat|while|until|gather|given)\\\\\\\\b\",\"name\":\"keyword.control.repeat.perl\"},{\"match\":\"\\\\\\\\b(take|do|when|next|last|redo|return|contend|maybe|defer|default|exit|make|continue|break|goto|leave|async|lift)\\\\\\\\b\",\"name\":\"keyword.control.flowcontrol.perl\"},{\"match\":\"\\\\\\\\b(is|as|but|trusts|of|returns|handles|where|augment|supersede)\\\\\\\\b\",\"name\":\"storage.modifier.type.constraints.perl\"},{\"match\":\"\\\\\\\\b(BEGIN|CHECK|INIT|START|FIRST|ENTER|LEAVE|KEEP|UNDO|NEXT|LAST|PRE|POST|END|CATCH|CONTROL|TEMP)\\\\\\\\b\",\"name\":\"meta.function.perl\"},{\"match\":\"\\\\\\\\b(die|fail|try|warn)\\\\\\\\b\",\"name\":\"keyword.control.control-handlers.perl\"},{\"match\":\"\\\\\\\\b(prec|irs|ofs|ors|export|deep|binary|unary|reparsed|rw|parsed|cached|readonly|defequiv|will|ref|copy|inline|tighter|looser|equiv|assoc|required)\\\\\\\\b\",\"name\":\"storage.modifier.perl\"},{\"match\":\"\\\\\\\\b(NaN|Inf)\\\\\\\\b\",\"name\":\"constant.numeric.perl\"},{\"match\":\"\\\\\\\\b(oo|fatal)\\\\\\\\b\",\"name\":\"keyword.other.pragma.perl\"},{\"match\":\"\\\\\\\\b(Object|Any|Junction|Whatever|Capture|MatchSignature|Proxy|Matcher|Package|Module|ClassGrammar|Scalar|Array|Hash|KeyHash|KeySet|KeyBagPair|List|Seq|Range|Set|Bag|Mapping|Void|UndefFailure|Exception|Code|Block|Routine|Sub|MacroMethod|Submethod|Regex|Str|str|Blob|Char|ByteCodepoint|Grapheme|StrPos|StrLen|Version|NumComplex|num|complex|Bit|bit|bool|True|FalseIncreasing|Decreasing|Ordered|Callable|AnyCharPositional|Associative|Ordering|KeyExtractorComparator|OrderingPair|IO|KitchenSink|RoleInt|int|int1|int2|int4|int8|int16|int32|int64Rat|rat|rat1|rat2|rat4|rat8|rat16|rat32|rat64Buf|buf|buf1|buf2|buf4|buf8|buf16|buf32|buf64UInt|uint|uint1|uint2|uint4|uint8|uint16|uint32uint64|Abstraction|utf8|utf16|utf32)\\\\\\\\b\",\"name\":\"support.type.perl6\"},{\"match\":\"\\\\\\\\b(div|xx|x|mod|also|leg|cmp|before|after|eq|ne|le|lt|not|gt|ge|eqv|ff|fff|and|andthen|or|xor|orelse|extra|lcm|gcd)\\\\\\\\b\",\"name\":\"keyword.operator.perl\"},{\"match\":\"(\\\\\\\\$|@|%|&)(\\\\\\\\*|:|!|\\\\\\\\^|~|=|\\\\\\\\?|(<(?=.+>)))?([a-zA-Z_\\\\\\\\x{C0}-\\\\\\\\x{FF}\\\\\\\\$])([a-zA-Z0-9_\\\\\\\\x{C0}-\\\\\\\\x{FF}\\\\\\\\$]|[\\\\\\\\-'][a-zA-Z0-9_\\\\\\\\x{C0}-\\\\\\\\x{FF}\\\\\\\\$])*\",\"name\":\"variable.other.identifier.perl.6\"},{\"match\":\"\\\\\\\\b(eager|hyper|substr|index|rindex|grep|map|sort|join|lines|hints|chmod|split|reduce|min|max|reverse|truncate|zip|cat|roundrobin|classify|first|sum|keys|values|pairs|defined|delete|exists|elems|end|kv|any|all|one|wrap|shape|key|value|name|pop|push|shift|splice|unshift|floor|ceiling|abs|exp|log|log10|rand|sign|sqrt|sin|cos|tan|round|strand|roots|cis|unpolar|polar|atan2|pick|chop|p5chop|chomp|p5chomp|lc|lcfirst|uc|ucfirst|capitalize|normalize|pack|unpack|quotemeta|comb|samecase|sameaccent|chars|nfd|nfc|nfkd|nfkc|printf|sprintf|caller|evalfile|run|runinstead|nothing|want|bless|chr|ord|gmtime|time|eof|localtime|gethost|getpw|chroot|getlogin|getpeername|kill|fork|wait|perl|graphs|codes|bytes|clone|print|open|read|write|readline|say|seek|close|opendir|readdir|slurp|spurt|shell|run|pos|fmt|vec|link|unlink|symlink|uniq|pair|asin|atan|sec|cosec|cotan|asec|acosec|acotan|sinh|cosh|tanh|asinh|done|acos|acosh|atanh|sech|cosech|cotanh|sech|acosech|acotanh|asech|ok|nok|plan_ok|dies_ok|lives_ok|skip|todo|pass|flunk|force_todo|use_ok|isa_ok|diag|is_deeply|isnt|like|skip_rest|unlike|cmp_ok|eval_dies_ok|nok_error|eval_lives_ok|approx|is_approx|throws_ok|version_lt|plan|EVAL|succ|pred|times|nonce|once|signature|new|connect|operator|undef|undefine|sleep|from|to|infix|postfix|prefix|circumfix|postcircumfix|minmax|lazy|count|unwrap|getc|pi|e|context|void|quasi|body|each|contains|rewinddir|subst|can|isa|flush|arity|assuming|rewind|callwith|callsame|nextwith|nextsame|attr|eval_elsewhere|none|srand|trim|trim_start|trim_end|lastcall|WHAT|WHERE|HOW|WHICH|VAR|WHO|WHENCE|ACCEPTS|REJECTS|not|true|iterator|by|re|im|invert|flip|gist|flat|tree|is-prime|throws_like|trans)\\\\\\\\b\",\"name\":\"support.function.perl\"}],\"repository\":{\"qq_brace_string_content\":{\"begin\":\"{\",\"end\":\"}\",\"patterns\":[{\"include\":\"#qq_brace_string_content\"}]},\"qq_bracket_string_content\":{\"begin\":\"\\\\\\\\[\",\"end\":\"\\\\\\\\]\",\"patterns\":[{\"include\":\"#qq_bracket_string_content\"}]},\"qq_double_string_content\":{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"patterns\":[{\"include\":\"#qq_double_string_content\"}]},\"qq_paren_string_content\":{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#qq_paren_string_content\"}]},\"qq_single_string_content\":{\"begin\":\"'\",\"end\":\"'\",\"patterns\":[{\"include\":\"#qq_single_string_content\"}]},\"qq_slash_string_content\":{\"begin\":\"\\\\\\\\\\\\\\\\/\",\"end\":\"\\\\\\\\\\\\\\\\/\",\"patterns\":[{\"include\":\"#qq_slash_string_content\"}]}},\"scopeName\":\"source.perl.6\",\"aliases\":[\"perl6\"]}`)),a=[e];export{a as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/B1vp6HhI.js",
    "content": "const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[\"./CMt9yHYq.js\",\"./BMYPR7BL.js\",\"./ySlJ1b_l.js\",\"./BPhBrDlE.js\",\"./Drsz93k2.js\",\"./Bl1h29GH.js\",\"./CGVVOGHx.js\",\"./cPjAOO0u.js\",\"./xI-RfyKK.js\",\"./BQoSv7ci.js\",\"./B-k3dvlD.js\",\"./Dj6nwHGl.js\",\"./B3ZDOciz.js\",\"./CZe0XNBd.js\",\"./COK4E0Yg.js\",\"./Bu73EIfS.js\",\"./BLhTXw86.js\",\"./D8mZ0lfy.js\",\"./DhUJRlN_.js\",\"./BK9xJ97g.js\",\"./DKOGybHv.js\",\"./BEhvmC7f.js\",\"./DWJ3fJO_.js\",\"./COyJrUc7.js\",\"./C3t2pwGQ.js\",\"./CQ0soPOq.js\",\"./atvbtKCR.js\",\"./BsOYHjMa.js\",\"./e4jU7D2d.js\",\"./B5auBHZD.js\",\"./BdxkyMLR.js\",\"./UL5zprDm.js\",\"./CYFUjXW1.js\",\"./m4gc_qpA.js\",\"./DjHMNizO.js\",\"./BAng5TT0.js\",\"./B6W0miNI.js\",\"./Dbxjm_CC.js\",\"./CVw76BM1.js\",\"./DRNBmV_Q.js\",\"./DKXYxT9g.js\",\"./Dmy2k9nq.js\",\"./UIAJJxZW.js\",\"./BQwtg7Y-.js\",\"./SKMF96pI.js\",\"./DfxzS6Rs.js\",\"./CKg9tqCS.js\",\"./BgYniUM_.js\",\"./CyIGOvEh.js\",\"./C-wny61x.js\",\"./C5Y8tDhP.js\",\"./C30yJ1fx.js\",\"./C0nbwVuJ.js\",\"./din0uRiO.js\",\"./YJb9dmdj.js\",\"./C5wWYbrZ.js\",\"./DPvbFsQx.js\",\"./3kbuJQcV.js\",\"./CsSk9TLD.js\",\"./Bw0wYZmb.js\",\"./CwjWoCRV.js\",\"./DsWjAdsX.js\",\"./qmhIZ77x.js\",\"./BVr_1_27.js\",\"./Cz8P-rqG.js\",\"./BfCpw3nA.js\",\"./BE9QQhgF.js\",\"./9C6ErRqt.js\",\"./D5pd2Owo.js\",\"./C1tVc3UG.js\",\"./HNqc6WRo.js\",\"./DYvnoCeB.js\",\"./Bid6LQhH.js\",\"./CYgUR4L5.js\",\"./D9R-vmeu.js\",\"./CSp6iqVD.js\",\"./DbXoA79R.js\",\"./BiFfXF7O.js\",\"./B14Poo8t.js\",\"./ifBTmRxC.js\",\"./BNHBcdi1.js\",\"./qpfuy3xp.js\",\"./SPD3sf1n.js\",\"./BMR_PYu6.js\",\"./R900dpIa.js\",\"./BXW1EomU.js\",\"./B2vK47Ag.js\",\"./B1SYOhNW.js\",\"./wI6OXr6j.js\",\"./DDtJtuOZ.js\",\"./DRhBOlRY.js\",\"./BlxRB_8X.js\",\"./ahYVQIuB.js\"])))=>i.map(i=>d[i]);\nvar Un=Object.defineProperty;var Gn=(e,t,u)=>t in e?Un(e,t,{enumerable:!0,configurable:!0,writable:!0,value:u}):e[t]=u;var b=(e,t,u)=>Gn(e,typeof t!=\"symbol\"?t+\"\":t,u);import{bR as f,d as It,r as q,a as Hn,B as kr,w as yt,s as Ne,C as F,g as O,j as C,x as R,Q as Wn,c as Ce,e as he,E as se,F as Ee,O as we,i as T,z as Ar,f as L,q as V,G as U,au as Zn,a0 as me,t as vr,ar as Jn,ab as Cr,D as qt,_ as Kn,n as Yn,I as Qn,bS as Xn,k as ei,ac as ti}from\"./CU_MfyYc.js\";import{_ as ui}from\"./DMFWKIsW.js\";import{_ as Dr}from\"./CqvT4tPC.js\";import{_ as bu}from\"./CvhZxjKo.js\";import{S as ri}from\"./BKENxkRn.js\";import{_ as wr}from\"./Cw4FHd9N.js\";import{_ as Sr}from\"./DZb6Dd70.js\";import{_ as ni}from\"./s0YP2YF7.js\";import{u as ii}from\"./Cwg39VG_.js\";import\"./9VOnL4Iz.js\";const Tr=[{id:\"abap\",name:\"ABAP\",import:()=>f(()=>import(\"./DsBKuouk.js\"),[],import.meta.url)},{id:\"actionscript-3\",name:\"ActionScript\",import:()=>f(()=>import(\"./D_z4Izcz.js\"),[],import.meta.url)},{id:\"ada\",name:\"Ada\",import:()=>f(()=>import(\"./727ZlQH0.js\"),[],import.meta.url)},{id:\"angular-html\",name:\"Angular HTML\",import:()=>f(()=>import(\"./CMt9yHYq.js\").then(e=>e.f),__vite__mapDeps([0,1,2,3]),import.meta.url)},{id:\"angular-ts\",name:\"Angular TypeScript\",import:()=>f(()=>import(\"./Drsz93k2.js\"),__vite__mapDeps([4,0,1,2,3,5]),import.meta.url)},{id:\"apache\",name:\"Apache Conf\",import:()=>f(()=>import(\"./Dn00JSTd.js\"),[],import.meta.url)},{id:\"apex\",name:\"Apex\",import:()=>f(()=>import(\"./COJ4H7py.js\"),[],import.meta.url)},{id:\"apl\",name:\"APL\",import:()=>f(()=>import(\"./CGVVOGHx.js\"),__vite__mapDeps([6,1,2,3,7,8,9]),import.meta.url)},{id:\"applescript\",name:\"AppleScript\",import:()=>f(()=>import(\"./Bu5BbsvL.js\"),[],import.meta.url)},{id:\"ara\",name:\"Ara\",import:()=>f(()=>import(\"./7O62HKoU.js\"),[],import.meta.url)},{id:\"asciidoc\",name:\"AsciiDoc\",aliases:[\"adoc\"],import:()=>f(()=>import(\"./BPT9niGB.js\"),[],import.meta.url)},{id:\"asm\",name:\"Assembly\",import:()=>f(()=>import(\"./Dhn9LcZ4.js\"),[],import.meta.url)},{id:\"astro\",name:\"Astro\",import:()=>f(()=>import(\"./B-k3dvlD.js\"),__vite__mapDeps([10,9,2,11,3,12]),import.meta.url)},{id:\"awk\",name:\"AWK\",import:()=>f(()=>import(\"./eg146-Ew.js\"),[],import.meta.url)},{id:\"ballerina\",name:\"Ballerina\",import:()=>f(()=>import(\"./Du268qiB.js\"),[],import.meta.url)},{id:\"bat\",name:\"Batch File\",aliases:[\"batch\"],import:()=>f(()=>import(\"./fje9CFhw.js\"),[],import.meta.url)},{id:\"beancount\",name:\"Beancount\",import:()=>f(()=>import(\"./BwXTMy5W.js\"),[],import.meta.url)},{id:\"berry\",name:\"Berry\",aliases:[\"be\"],import:()=>f(()=>import(\"./3xVqZejG.js\"),[],import.meta.url)},{id:\"bibtex\",name:\"BibTeX\",import:()=>f(()=>import(\"./xW4inM5L.js\"),[],import.meta.url)},{id:\"bicep\",name:\"Bicep\",import:()=>f(()=>import(\"./DHo0CJ0O.js\"),[],import.meta.url)},{id:\"blade\",name:\"Blade\",import:()=>f(()=>import(\"./CZe0XNBd.js\"),__vite__mapDeps([13,1,2,3,7,8,14,9]),import.meta.url)},{id:\"bsl\",name:\"1C (Enterprise)\",aliases:[\"1c\"],import:()=>f(()=>import(\"./Bu73EIfS.js\"),__vite__mapDeps([15,16]),import.meta.url)},{id:\"c\",name:\"C\",import:()=>f(()=>import(\"./C3t2pwGQ.js\"),[],import.meta.url)},{id:\"cadence\",name:\"Cadence\",aliases:[\"cdc\"],import:()=>f(()=>import(\"./DNquZEk8.js\"),[],import.meta.url)},{id:\"cairo\",name:\"Cairo\",import:()=>f(()=>import(\"./D8mZ0lfy.js\"),__vite__mapDeps([17,18]),import.meta.url)},{id:\"clarity\",name:\"Clarity\",import:()=>f(()=>import(\"./BHOwM8T6.js\"),[],import.meta.url)},{id:\"clojure\",name:\"Clojure\",aliases:[\"clj\"],import:()=>f(()=>import(\"./DxSadP1t.js\"),[],import.meta.url)},{id:\"cmake\",name:\"CMake\",import:()=>f(()=>import(\"./DbXoA79R.js\"),[],import.meta.url)},{id:\"cobol\",name:\"COBOL\",import:()=>f(()=>import(\"./BK9xJ97g.js\"),__vite__mapDeps([19,1,2,3,8]),import.meta.url)},{id:\"codeowners\",name:\"CODEOWNERS\",import:()=>f(()=>import(\"./Bp6g37R7.js\"),[],import.meta.url)},{id:\"codeql\",name:\"CodeQL\",aliases:[\"ql\"],import:()=>f(()=>import(\"./sacFqUAJ.js\"),[],import.meta.url)},{id:\"coffee\",name:\"CoffeeScript\",aliases:[\"coffeescript\"],import:()=>f(()=>import(\"./DKOGybHv.js\"),__vite__mapDeps([20,2]),import.meta.url)},{id:\"common-lisp\",name:\"Common Lisp\",aliases:[\"lisp\"],import:()=>f(()=>import(\"./C7gG9l05.js\"),[],import.meta.url)},{id:\"coq\",name:\"Coq\",import:()=>f(()=>import(\"./Dsg_Bt_b.js\"),[],import.meta.url)},{id:\"cpp\",name:\"C++\",aliases:[\"c++\"],import:()=>f(()=>import(\"./BEhvmC7f.js\"),__vite__mapDeps([21,22,23,24,14]),import.meta.url)},{id:\"crystal\",name:\"Crystal\",import:()=>f(()=>import(\"./CQ0soPOq.js\"),__vite__mapDeps([25,1,2,3,14,24,26]),import.meta.url)},{id:\"csharp\",name:\"C#\",aliases:[\"c#\",\"cs\"],import:()=>f(()=>import(\"./D9R-vmeu.js\"),[],import.meta.url)},{id:\"css\",name:\"CSS\",import:()=>f(()=>import(\"./BPhBrDlE.js\"),[],import.meta.url)},{id:\"csv\",name:\"CSV\",import:()=>f(()=>import(\"./B0qRVHPH.js\"),[],import.meta.url)},{id:\"cue\",name:\"CUE\",import:()=>f(()=>import(\"./DtFQj3wx.js\"),[],import.meta.url)},{id:\"cypher\",name:\"Cypher\",aliases:[\"cql\"],import:()=>f(()=>import(\"./m2LEI-9-.js\"),[],import.meta.url)},{id:\"d\",name:\"D\",import:()=>f(()=>import(\"./BoXegm-a.js\"),[],import.meta.url)},{id:\"dart\",name:\"Dart\",import:()=>f(()=>import(\"./B9wLZaAG.js\"),[],import.meta.url)},{id:\"dax\",name:\"DAX\",import:()=>f(()=>import(\"./ClGRhx96.js\"),[],import.meta.url)},{id:\"desktop\",name:\"Desktop\",import:()=>f(()=>import(\"./DEIpsLCJ.js\"),[],import.meta.url)},{id:\"diff\",name:\"Diff\",import:()=>f(()=>import(\"./BgYniUM_.js\"),[],import.meta.url)},{id:\"docker\",name:\"Dockerfile\",aliases:[\"dockerfile\"],import:()=>f(()=>import(\"./COcR7UxN.js\"),[],import.meta.url)},{id:\"dotenv\",name:\"dotEnv\",import:()=>f(()=>import(\"./BjQB5zDj.js\"),[],import.meta.url)},{id:\"dream-maker\",name:\"Dream Maker\",import:()=>f(()=>import(\"./C-nORZOA.js\"),[],import.meta.url)},{id:\"edge\",name:\"Edge\",import:()=>f(()=>import(\"./BsOYHjMa.js\"),__vite__mapDeps([27,11,1,2,3,28]),import.meta.url)},{id:\"elixir\",name:\"Elixir\",import:()=>f(()=>import(\"./B5auBHZD.js\"),__vite__mapDeps([29,1,2,3]),import.meta.url)},{id:\"elm\",name:\"Elm\",import:()=>f(()=>import(\"./BdxkyMLR.js\"),__vite__mapDeps([30,23,24]),import.meta.url)},{id:\"emacs-lisp\",name:\"Emacs Lisp\",aliases:[\"elisp\"],import:()=>f(()=>import(\"./BX77sIaO.js\"),[],import.meta.url)},{id:\"erb\",name:\"ERB\",import:()=>f(()=>import(\"./UL5zprDm.js\"),__vite__mapDeps([31,1,2,3,32,33,7,8,14,34,11,35,36,21,22,23,24,26,37,38]),import.meta.url)},{id:\"erlang\",name:\"Erlang\",aliases:[\"erl\"],import:()=>f(()=>import(\"./B-DoSBHF.js\"),[],import.meta.url)},{id:\"fennel\",name:\"Fennel\",import:()=>f(()=>import(\"./bCA53EVm.js\"),[],import.meta.url)},{id:\"fish\",name:\"Fish\",import:()=>f(()=>import(\"./w-ucz2PV.js\"),[],import.meta.url)},{id:\"fluent\",name:\"Fluent\",aliases:[\"ftl\"],import:()=>f(()=>import(\"./Dayu4EKP.js\"),[],import.meta.url)},{id:\"fortran-fixed-form\",name:\"Fortran (Fixed Form)\",aliases:[\"f\",\"for\",\"f77\"],import:()=>f(()=>import(\"./DRNBmV_Q.js\"),__vite__mapDeps([39,40]),import.meta.url)},{id:\"fortran-free-form\",name:\"Fortran (Free Form)\",aliases:[\"f90\",\"f95\",\"f03\",\"f08\",\"f18\"],import:()=>f(()=>import(\"./DKXYxT9g.js\"),[],import.meta.url)},{id:\"fsharp\",name:\"F#\",aliases:[\"f#\",\"fs\"],import:()=>f(()=>import(\"./Dmy2k9nq.js\"),__vite__mapDeps([41,42]),import.meta.url)},{id:\"gdresource\",name:\"GDResource\",import:()=>f(()=>import(\"./BQwtg7Y-.js\"),__vite__mapDeps([43,44,45]),import.meta.url)},{id:\"gdscript\",name:\"GDScript\",import:()=>f(()=>import(\"./DfxzS6Rs.js\"),[],import.meta.url)},{id:\"gdshader\",name:\"GDShader\",import:()=>f(()=>import(\"./SKMF96pI.js\"),[],import.meta.url)},{id:\"genie\",name:\"Genie\",import:()=>f(()=>import(\"./ajMbGru0.js\"),[],import.meta.url)},{id:\"gherkin\",name:\"Gherkin\",import:()=>f(()=>import(\"./-30QC5Em.js\"),[],import.meta.url)},{id:\"git-commit\",name:\"Git Commit Message\",import:()=>f(()=>import(\"./CKg9tqCS.js\"),__vite__mapDeps([46,47]),import.meta.url)},{id:\"git-rebase\",name:\"Git Rebase Message\",import:()=>f(()=>import(\"./CyIGOvEh.js\"),__vite__mapDeps([48,26]),import.meta.url)},{id:\"gleam\",name:\"Gleam\",import:()=>f(()=>import(\"./B430Bg39.js\"),[],import.meta.url)},{id:\"glimmer-js\",name:\"Glimmer JS\",aliases:[\"gjs\"],import:()=>f(()=>import(\"./C-wny61x.js\"),__vite__mapDeps([49,2,11,3,1]),import.meta.url)},{id:\"glimmer-ts\",name:\"Glimmer TS\",aliases:[\"gts\"],import:()=>f(()=>import(\"./C5Y8tDhP.js\"),__vite__mapDeps([50,11,3,2,1]),import.meta.url)},{id:\"glsl\",name:\"GLSL\",import:()=>f(()=>import(\"./COyJrUc7.js\"),__vite__mapDeps([23,24]),import.meta.url)},{id:\"gnuplot\",name:\"Gnuplot\",import:()=>f(()=>import(\"./CM8KxXT1.js\"),[],import.meta.url)},{id:\"go\",name:\"Go\",import:()=>f(()=>import(\"./B1SYOhNW.js\"),[],import.meta.url)},{id:\"graphql\",name:\"GraphQL\",aliases:[\"gql\"],import:()=>f(()=>import(\"./DjHMNizO.js\"),__vite__mapDeps([34,2,11,35,36]),import.meta.url)},{id:\"groovy\",name:\"Groovy\",import:()=>f(()=>import(\"./DkBy-JyN.js\"),[],import.meta.url)},{id:\"hack\",name:\"Hack\",import:()=>f(()=>import(\"./C30yJ1fx.js\"),__vite__mapDeps([51,1,2,3,14]),import.meta.url)},{id:\"haml\",name:\"Ruby Haml\",import:()=>f(()=>import(\"./m4gc_qpA.js\"),__vite__mapDeps([33,2,3]),import.meta.url)},{id:\"handlebars\",name:\"Handlebars\",aliases:[\"hbs\"],import:()=>f(()=>import(\"./C0nbwVuJ.js\"),__vite__mapDeps([52,1,2,3,38]),import.meta.url)},{id:\"haskell\",name:\"Haskell\",aliases:[\"hs\"],import:()=>f(()=>import(\"./BILxekzW.js\"),[],import.meta.url)},{id:\"haxe\",name:\"Haxe\",import:()=>f(()=>import(\"./C5wWYbrZ.js\"),[],import.meta.url)},{id:\"hcl\",name:\"HashiCorp HCL\",import:()=>f(()=>import(\"./HzYwdGDm.js\"),[],import.meta.url)},{id:\"hjson\",name:\"Hjson\",import:()=>f(()=>import(\"./T-Tgc4AT.js\"),[],import.meta.url)},{id:\"hlsl\",name:\"HLSL\",import:()=>f(()=>import(\"./ifBTmRxC.js\"),[],import.meta.url)},{id:\"html\",name:\"HTML\",import:()=>f(()=>import(\"./BMYPR7BL.js\"),__vite__mapDeps([1,2,3]),import.meta.url)},{id:\"html-derivative\",name:\"HTML (Derivative)\",import:()=>f(()=>import(\"./e4jU7D2d.js\"),__vite__mapDeps([28,1,2,3]),import.meta.url)},{id:\"http\",name:\"HTTP\",import:()=>f(()=>import(\"./din0uRiO.js\"),__vite__mapDeps([53,26,9,7,8,34,2,11,35,36]),import.meta.url)},{id:\"hxml\",name:\"HXML\",import:()=>f(()=>import(\"./YJb9dmdj.js\"),__vite__mapDeps([54,55]),import.meta.url)},{id:\"hy\",name:\"Hy\",import:()=>f(()=>import(\"./BMj5Y0dO.js\"),[],import.meta.url)},{id:\"imba\",name:\"Imba\",import:()=>f(()=>import(\"./DPvbFsQx.js\"),__vite__mapDeps([56,11]),import.meta.url)},{id:\"ini\",name:\"INI\",aliases:[\"properties\"],import:()=>f(()=>import(\"./BjABl1g7.js\"),[],import.meta.url)},{id:\"java\",name:\"Java\",import:()=>f(()=>import(\"./xI-RfyKK.js\"),[],import.meta.url)},{id:\"javascript\",name:\"JavaScript\",aliases:[\"js\"],import:()=>f(()=>import(\"./ySlJ1b_l.js\"),[],import.meta.url)},{id:\"jinja\",name:\"Jinja\",import:()=>f(()=>import(\"./3kbuJQcV.js\"),__vite__mapDeps([57,1,2,3]),import.meta.url)},{id:\"jison\",name:\"Jison\",import:()=>f(()=>import(\"./CsSk9TLD.js\"),__vite__mapDeps([58,2]),import.meta.url)},{id:\"json\",name:\"JSON\",import:()=>f(()=>import(\"./BQoSv7ci.js\"),[],import.meta.url)},{id:\"json5\",name:\"JSON5\",import:()=>f(()=>import(\"./w8dY5SsB.js\"),[],import.meta.url)},{id:\"jsonc\",name:\"JSON with Comments\",import:()=>f(()=>import(\"./TU54ms6u.js\"),[],import.meta.url)},{id:\"jsonl\",name:\"JSON Lines\",import:()=>f(()=>import(\"./DREVFZK8.js\"),[],import.meta.url)},{id:\"jsonnet\",name:\"Jsonnet\",import:()=>f(()=>import(\"./BfivnA6A.js\"),[],import.meta.url)},{id:\"jssm\",name:\"JSSM\",aliases:[\"fsl\"],import:()=>f(()=>import(\"./P4WzXJd0.js\"),[],import.meta.url)},{id:\"jsx\",name:\"JSX\",import:()=>f(()=>import(\"./BAng5TT0.js\"),[],import.meta.url)},{id:\"julia\",name:\"Julia\",aliases:[\"jl\"],import:()=>f(()=>import(\"./Bw0wYZmb.js\"),__vite__mapDeps([59,21,22,23,24,14,18,2,60]),import.meta.url)},{id:\"kotlin\",name:\"Kotlin\",aliases:[\"kt\",\"kts\"],import:()=>f(()=>import(\"./B5lbUyaz.js\"),[],import.meta.url)},{id:\"kusto\",name:\"Kusto\",aliases:[\"kql\"],import:()=>f(()=>import(\"./mebxcVVE.js\"),[],import.meta.url)},{id:\"latex\",name:\"LaTeX\",import:()=>f(()=>import(\"./DsWjAdsX.js\"),__vite__mapDeps([61,62,60]),import.meta.url)},{id:\"lean\",name:\"Lean 4\",aliases:[\"lean4\"],import:()=>f(()=>import(\"./XBlWyCtg.js\"),[],import.meta.url)},{id:\"less\",name:\"Less\",import:()=>f(()=>import(\"./BfCpw3nA.js\"),[],import.meta.url)},{id:\"liquid\",name:\"Liquid\",import:()=>f(()=>import(\"./BVr_1_27.js\"),__vite__mapDeps([63,1,2,3,9]),import.meta.url)},{id:\"log\",name:\"Log file\",import:()=>f(()=>import(\"./Cc5clBb7.js\"),[],import.meta.url)},{id:\"logo\",name:\"Logo\",import:()=>f(()=>import(\"./IuBKFhSY.js\"),[],import.meta.url)},{id:\"lua\",name:\"Lua\",import:()=>f(()=>import(\"./Dbxjm_CC.js\"),__vite__mapDeps([37,24]),import.meta.url)},{id:\"luau\",name:\"Luau\",import:()=>f(()=>import(\"./Du5NY7AG.js\"),[],import.meta.url)},{id:\"make\",name:\"Makefile\",aliases:[\"makefile\"],import:()=>f(()=>import(\"./Bvotw-X0.js\"),[],import.meta.url)},{id:\"markdown\",name:\"Markdown\",aliases:[\"md\"],import:()=>f(()=>import(\"./UIAJJxZW.js\"),[],import.meta.url)},{id:\"marko\",name:\"Marko\",import:()=>f(()=>import(\"./Cz8P-rqG.js\"),__vite__mapDeps([64,3,65,5,2]),import.meta.url)},{id:\"matlab\",name:\"MATLAB\",import:()=>f(()=>import(\"./D9-PGadD.js\"),[],import.meta.url)},{id:\"mdc\",name:\"MDC\",import:()=>f(()=>import(\"./BE9QQhgF.js\"),__vite__mapDeps([66,42,38,28,1,2,3]),import.meta.url)},{id:\"mdx\",name:\"MDX\",import:()=>f(()=>import(\"./sdHcTMYB.js\"),[],import.meta.url)},{id:\"mermaid\",name:\"Mermaid\",aliases:[\"mmd\"],import:()=>f(()=>import(\"./Ci6OQyBP.js\"),[],import.meta.url)},{id:\"mipsasm\",name:\"MIPS Assembly\",aliases:[\"mips\"],import:()=>f(()=>import(\"./BC5c_5Pe.js\"),[],import.meta.url)},{id:\"mojo\",name:\"Mojo\",import:()=>f(()=>import(\"./Tz6hzZYG.js\"),[],import.meta.url)},{id:\"move\",name:\"Move\",import:()=>f(()=>import(\"./DB_GagMm.js\"),[],import.meta.url)},{id:\"narrat\",name:\"Narrat Language\",aliases:[\"nar\"],import:()=>f(()=>import(\"./DLbgOhZU.js\"),[],import.meta.url)},{id:\"nextflow\",name:\"Nextflow\",aliases:[\"nf\"],import:()=>f(()=>import(\"./B0XVJmRM.js\"),[],import.meta.url)},{id:\"nginx\",name:\"Nginx\",import:()=>f(()=>import(\"./9C6ErRqt.js\"),__vite__mapDeps([67,37,24]),import.meta.url)},{id:\"nim\",name:\"Nim\",import:()=>f(()=>import(\"./D5pd2Owo.js\"),__vite__mapDeps([68,24,1,2,3,7,8,23,42]),import.meta.url)},{id:\"nix\",name:\"Nix\",import:()=>f(()=>import(\"./shcSOmrb.js\"),[],import.meta.url)},{id:\"nushell\",name:\"nushell\",aliases:[\"nu\"],import:()=>f(()=>import(\"./D4Tzg5kh.js\"),[],import.meta.url)},{id:\"objective-c\",name:\"Objective-C\",aliases:[\"objc\"],import:()=>f(()=>import(\"./Deuh7S70.js\"),[],import.meta.url)},{id:\"objective-cpp\",name:\"Objective-C++\",import:()=>f(()=>import(\"./BUEGK8hf.js\"),[],import.meta.url)},{id:\"ocaml\",name:\"OCaml\",import:()=>f(()=>import(\"./BNioltXt.js\"),[],import.meta.url)},{id:\"pascal\",name:\"Pascal\",import:()=>f(()=>import(\"./JqZropPD.js\"),[],import.meta.url)},{id:\"perl\",name:\"Perl\",import:()=>f(()=>import(\"./C1tVc3UG.js\"),__vite__mapDeps([69,1,2,3,7,8,14]),import.meta.url)},{id:\"php\",name:\"PHP\",import:()=>f(()=>import(\"./HNqc6WRo.js\"),__vite__mapDeps([70,1,2,3,7,8,14,9]),import.meta.url)},{id:\"plsql\",name:\"PL/SQL\",import:()=>f(()=>import(\"./LKU2TuZ1.js\"),[],import.meta.url)},{id:\"po\",name:\"Gettext PO\",aliases:[\"pot\",\"potx\"],import:()=>f(()=>import(\"./BFLt1xDp.js\"),[],import.meta.url)},{id:\"polar\",name:\"Polar\",import:()=>f(()=>import(\"./DKykz6zU.js\"),[],import.meta.url)},{id:\"postcss\",name:\"PostCSS\",import:()=>f(()=>import(\"./B3ZDOciz.js\"),[],import.meta.url)},{id:\"powerquery\",name:\"PowerQuery\",import:()=>f(()=>import(\"./CSHBycmS.js\"),[],import.meta.url)},{id:\"powershell\",name:\"PowerShell\",aliases:[\"ps\",\"ps1\"],import:()=>f(()=>import(\"./BIEUsx6d.js\"),[],import.meta.url)},{id:\"prisma\",name:\"Prisma\",import:()=>f(()=>import(\"./B48N-Iqd.js\"),[],import.meta.url)},{id:\"prolog\",name:\"Prolog\",import:()=>f(()=>import(\"./BY-TUvya.js\"),[],import.meta.url)},{id:\"proto\",name:\"Protocol Buffer 3\",aliases:[\"protobuf\"],import:()=>f(()=>import(\"./zocC4JxJ.js\"),[],import.meta.url)},{id:\"pug\",name:\"Pug\",aliases:[\"jade\"],import:()=>f(()=>import(\"./DYvnoCeB.js\"),__vite__mapDeps([71,2,3,1]),import.meta.url)},{id:\"puppet\",name:\"Puppet\",import:()=>f(()=>import(\"./Cza_XSSt.js\"),[],import.meta.url)},{id:\"purescript\",name:\"PureScript\",import:()=>f(()=>import(\"./Bg-kzb6g.js\"),[],import.meta.url)},{id:\"python\",name:\"Python\",aliases:[\"py\"],import:()=>f(()=>import(\"./DhUJRlN_.js\"),[],import.meta.url)},{id:\"qml\",name:\"QML\",import:()=>f(()=>import(\"./Bid6LQhH.js\"),__vite__mapDeps([72,2]),import.meta.url)},{id:\"qmldir\",name:\"QML Directory\",import:()=>f(()=>import(\"./C8lEn-DE.js\"),[],import.meta.url)},{id:\"qss\",name:\"Qt Style Sheets\",import:()=>f(()=>import(\"./DhMKtDLN.js\"),[],import.meta.url)},{id:\"r\",name:\"R\",import:()=>f(()=>import(\"./CwjWoCRV.js\"),[],import.meta.url)},{id:\"racket\",name:\"Racket\",import:()=>f(()=>import(\"./CzouJOBO.js\"),[],import.meta.url)},{id:\"raku\",name:\"Raku\",aliases:[\"perl6\"],import:()=>f(()=>import(\"./B1bQXN8T.js\"),[],import.meta.url)},{id:\"razor\",name:\"ASP.NET Razor\",import:()=>f(()=>import(\"./CYgUR4L5.js\"),__vite__mapDeps([73,1,2,3,74]),import.meta.url)},{id:\"reg\",name:\"Windows Registry Script\",import:()=>f(()=>import(\"./5LuOXUq_.js\"),[],import.meta.url)},{id:\"regexp\",name:\"RegExp\",aliases:[\"regex\"],import:()=>f(()=>import(\"./DWJ3fJO_.js\"),[],import.meta.url)},{id:\"rel\",name:\"Rel\",import:()=>f(()=>import(\"./DJlmqQ1C.js\"),[],import.meta.url)},{id:\"riscv\",name:\"RISC-V\",import:()=>f(()=>import(\"./QhoSD0DR.js\"),[],import.meta.url)},{id:\"rst\",name:\"reStructuredText\",import:()=>f(()=>import(\"./CSp6iqVD.js\"),__vite__mapDeps([75,28,1,2,3,21,22,23,24,14,18,26,38,76,32,33,7,8,34,11,35,36,37]),import.meta.url)},{id:\"ruby\",name:\"Ruby\",aliases:[\"rb\"],import:()=>f(()=>import(\"./CYFUjXW1.js\"),__vite__mapDeps([32,1,2,3,33,7,8,14,34,11,35,36,21,22,23,24,26,37,38]),import.meta.url)},{id:\"rust\",name:\"Rust\",aliases:[\"rs\"],import:()=>f(()=>import(\"./Be6lgOlo.js\"),[],import.meta.url)},{id:\"sas\",name:\"SAS\",import:()=>f(()=>import(\"./BiFfXF7O.js\"),__vite__mapDeps([77,14]),import.meta.url)},{id:\"sass\",name:\"Sass\",import:()=>f(()=>import(\"./BJ4Li9vH.js\"),[],import.meta.url)},{id:\"scala\",name:\"Scala\",import:()=>f(()=>import(\"./DQVVAn-B.js\"),[],import.meta.url)},{id:\"scheme\",name:\"Scheme\",import:()=>f(()=>import(\"./BJGe-b2p.js\"),[],import.meta.url)},{id:\"scss\",name:\"SCSS\",import:()=>f(()=>import(\"./Bl1h29GH.js\"),__vite__mapDeps([5,3]),import.meta.url)},{id:\"sdbl\",name:\"1C (Query)\",aliases:[\"1c-query\"],import:()=>f(()=>import(\"./BLhTXw86.js\"),[],import.meta.url)},{id:\"shaderlab\",name:\"ShaderLab\",aliases:[\"shader\"],import:()=>f(()=>import(\"./B14Poo8t.js\"),__vite__mapDeps([78,79]),import.meta.url)},{id:\"shellscript\",name:\"Shell\",aliases:[\"bash\",\"sh\",\"shell\",\"zsh\"],import:()=>f(()=>import(\"./atvbtKCR.js\"),[],import.meta.url)},{id:\"shellsession\",name:\"Shell Session\",aliases:[\"console\"],import:()=>f(()=>import(\"./BNHBcdi1.js\"),__vite__mapDeps([80,26]),import.meta.url)},{id:\"smalltalk\",name:\"Smalltalk\",import:()=>f(()=>import(\"./DkLiglaE.js\"),[],import.meta.url)},{id:\"solidity\",name:\"Solidity\",import:()=>f(()=>import(\"./C1w2a3ep.js\"),[],import.meta.url)},{id:\"soy\",name:\"Closure Templates\",aliases:[\"closure-templates\"],import:()=>f(()=>import(\"./qpfuy3xp.js\"),__vite__mapDeps([81,1,2,3]),import.meta.url)},{id:\"sparql\",name:\"SPARQL\",import:()=>f(()=>import(\"./SPD3sf1n.js\"),__vite__mapDeps([82,83]),import.meta.url)},{id:\"splunk\",name:\"Splunk Query Language\",aliases:[\"spl\"],import:()=>f(()=>import(\"./Cf8iN4DR.js\"),[],import.meta.url)},{id:\"sql\",name:\"SQL\",import:()=>f(()=>import(\"./COK4E0Yg.js\"),[],import.meta.url)},{id:\"ssh-config\",name:\"SSH Config\",import:()=>f(()=>import(\"./BknIz3MU.js\"),[],import.meta.url)},{id:\"stata\",name:\"Stata\",import:()=>f(()=>import(\"./R900dpIa.js\"),__vite__mapDeps([84,14]),import.meta.url)},{id:\"stylus\",name:\"Stylus\",aliases:[\"styl\"],import:()=>f(()=>import(\"./BeQkCIfX.js\"),[],import.meta.url)},{id:\"svelte\",name:\"Svelte\",import:()=>f(()=>import(\"./BXW1EomU.js\"),__vite__mapDeps([85,2,11,3,12]),import.meta.url)},{id:\"swift\",name:\"Swift\",import:()=>f(()=>import(\"./BSxZ-RaX.js\"),[],import.meta.url)},{id:\"system-verilog\",name:\"SystemVerilog\",import:()=>f(()=>import(\"./C7L56vO4.js\"),[],import.meta.url)},{id:\"systemd\",name:\"Systemd Units\",import:()=>f(()=>import(\"./CUnW07Te.js\"),[],import.meta.url)},{id:\"talonscript\",name:\"TalonScript\",aliases:[\"talon\"],import:()=>f(()=>import(\"./C1XDQQGZ.js\"),[],import.meta.url)},{id:\"tasl\",name:\"Tasl\",import:()=>f(()=>import(\"./CQjiPCtT.js\"),[],import.meta.url)},{id:\"tcl\",name:\"Tcl\",import:()=>f(()=>import(\"./DQ1-QYvQ.js\"),[],import.meta.url)},{id:\"templ\",name:\"Templ\",import:()=>f(()=>import(\"./B2vK47Ag.js\"),__vite__mapDeps([86,87,2,3]),import.meta.url)},{id:\"terraform\",name:\"Terraform\",aliases:[\"tf\",\"tfvars\"],import:()=>f(()=>import(\"./BbSNqyBO.js\"),[],import.meta.url)},{id:\"tex\",name:\"TeX\",import:()=>f(()=>import(\"./qmhIZ77x.js\"),__vite__mapDeps([62,60]),import.meta.url)},{id:\"toml\",name:\"TOML\",import:()=>f(()=>import(\"./CB2ApiWb.js\"),[],import.meta.url)},{id:\"ts-tags\",name:\"TypeScript with Tags\",aliases:[\"lit\"],import:()=>f(()=>import(\"./wI6OXr6j.js\"),__vite__mapDeps([88,11,3,2,23,24,1,14,7,8]),import.meta.url)},{id:\"tsv\",name:\"TSV\",import:()=>f(()=>import(\"./B_m7g4N7.js\"),[],import.meta.url)},{id:\"tsx\",name:\"TSX\",import:()=>f(()=>import(\"./B6W0miNI.js\"),[],import.meta.url)},{id:\"turtle\",name:\"Turtle\",import:()=>f(()=>import(\"./BMR_PYu6.js\"),[],import.meta.url)},{id:\"twig\",name:\"Twig\",import:()=>f(()=>import(\"./DDtJtuOZ.js\"),__vite__mapDeps([89,3,2,5,70,1,7,8,14,9,18,32,33,34,11,35,36,21,22,23,24,26,37,38]),import.meta.url)},{id:\"typescript\",name:\"TypeScript\",aliases:[\"ts\"],import:()=>f(()=>import(\"./Dj6nwHGl.js\"),[],import.meta.url)},{id:\"typespec\",name:\"TypeSpec\",aliases:[\"tsp\"],import:()=>f(()=>import(\"./BpWG_bgh.js\"),[],import.meta.url)},{id:\"typst\",name:\"Typst\",aliases:[\"typ\"],import:()=>f(()=>import(\"./BVUVsWT6.js\"),[],import.meta.url)},{id:\"v\",name:\"V\",import:()=>f(()=>import(\"./CAQ2eGtk.js\"),[],import.meta.url)},{id:\"vala\",name:\"Vala\",import:()=>f(()=>import(\"./BFOHcciG.js\"),[],import.meta.url)},{id:\"vb\",name:\"Visual Basic\",aliases:[\"cmd\"],import:()=>f(()=>import(\"./CdO5JTpU.js\"),[],import.meta.url)},{id:\"verilog\",name:\"Verilog\",import:()=>f(()=>import(\"./CJaU5se_.js\"),[],import.meta.url)},{id:\"vhdl\",name:\"VHDL\",import:()=>f(()=>import(\"./DYoNaHQp.js\"),[],import.meta.url)},{id:\"viml\",name:\"Vim Script\",aliases:[\"vim\",\"vimscript\"],import:()=>f(()=>import(\"./m4uW47V2.js\"),[],import.meta.url)},{id:\"vue\",name:\"Vue\",import:()=>f(()=>import(\"./DRhBOlRY.js\"),__vite__mapDeps([90,1,2,3,11,9,28]),import.meta.url)},{id:\"vue-html\",name:\"Vue HTML\",import:()=>f(()=>import(\"./BlxRB_8X.js\"),__vite__mapDeps([91,90,1,2,3,11,9,28]),import.meta.url)},{id:\"vyper\",name:\"Vyper\",aliases:[\"vy\"],import:()=>f(()=>import(\"./nyqBNV6O.js\"),[],import.meta.url)},{id:\"wasm\",name:\"WebAssembly\",import:()=>f(()=>import(\"./C6j12Q_x.js\"),[],import.meta.url)},{id:\"wenyan\",name:\"Wenyan\",aliases:[\"文言\"],import:()=>f(()=>import(\"./7A4Fjokl.js\"),[],import.meta.url)},{id:\"wgsl\",name:\"WGSL\",import:()=>f(()=>import(\"./CB0Krxn9.js\"),[],import.meta.url)},{id:\"wikitext\",name:\"Wikitext\",aliases:[\"mediawiki\",\"wiki\"],import:()=>f(()=>import(\"./DCE3LsBG.js\"),[],import.meta.url)},{id:\"wolfram\",name:\"Wolfram\",aliases:[\"wl\"],import:()=>f(()=>import(\"./C3FkfJm5.js\"),[],import.meta.url)},{id:\"xml\",name:\"XML\",import:()=>f(()=>import(\"./cPjAOO0u.js\"),__vite__mapDeps([7,8]),import.meta.url)},{id:\"xsl\",name:\"XSL\",import:()=>f(()=>import(\"./ahYVQIuB.js\"),__vite__mapDeps([92,7,8]),import.meta.url)},{id:\"yaml\",name:\"YAML\",aliases:[\"yml\"],import:()=>f(()=>import(\"./CVw76BM1.js\"),[],import.meta.url)},{id:\"zenscript\",name:\"ZenScript\",import:()=>f(()=>import(\"./HnGAYVZD.js\"),[],import.meta.url)},{id:\"zig\",name:\"Zig\",import:()=>f(()=>import(\"./BVz_zdnA.js\"),[],import.meta.url)}],oi=Object.fromEntries(Tr.map(e=>[e.id,e.import])),ai=Object.fromEntries(Tr.flatMap(e=>{var t;return((t=e.aliases)==null?void 0:t.map(u=>[u,e.import]))||[]})),Rr={...oi,...ai},si=[{id:\"andromeeda\",displayName:\"Andromeeda\",type:\"dark\",import:()=>f(()=>import(\"./C3khCPGq.js\"),[],import.meta.url)},{id:\"aurora-x\",displayName:\"Aurora X\",type:\"dark\",import:()=>f(()=>import(\"./D-2ljcwZ.js\"),[],import.meta.url)},{id:\"ayu-dark\",displayName:\"Ayu Dark\",type:\"dark\",import:()=>f(()=>import(\"./Cv9koXgw.js\"),[],import.meta.url)},{id:\"catppuccin-frappe\",displayName:\"Catppuccin Frappé\",type:\"dark\",import:()=>f(()=>import(\"./CD_QflpE.js\"),[],import.meta.url)},{id:\"catppuccin-latte\",displayName:\"Catppuccin Latte\",type:\"light\",import:()=>f(()=>import(\"./DRW-0cLl.js\"),[],import.meta.url)},{id:\"catppuccin-macchiato\",displayName:\"Catppuccin Macchiato\",type:\"dark\",import:()=>f(()=>import(\"./C-_shW-Y.js\"),[],import.meta.url)},{id:\"catppuccin-mocha\",displayName:\"Catppuccin Mocha\",type:\"dark\",import:()=>f(()=>import(\"./LGGdnPYs.js\"),[],import.meta.url)},{id:\"dark-plus\",displayName:\"Dark Plus\",type:\"dark\",import:()=>f(()=>import(\"./C3mMm8J8.js\"),[],import.meta.url)},{id:\"dracula\",displayName:\"Dracula Theme\",type:\"dark\",import:()=>f(()=>import(\"./BzJJZx-M.js\"),[],import.meta.url)},{id:\"dracula-soft\",displayName:\"Dracula Theme Soft\",type:\"dark\",import:()=>f(()=>import(\"./BXkSAIEj.js\"),[],import.meta.url)},{id:\"everforest-dark\",displayName:\"Everforest Dark\",type:\"dark\",import:()=>f(()=>import(\"./BgDCqdQA.js\"),[],import.meta.url)},{id:\"everforest-light\",displayName:\"Everforest Light\",type:\"light\",import:()=>f(()=>import(\"./C8M2exoo.js\"),[],import.meta.url)},{id:\"github-dark\",displayName:\"GitHub Dark\",type:\"dark\",import:()=>f(()=>import(\"./DHJKELXO.js\"),[],import.meta.url)},{id:\"github-dark-default\",displayName:\"GitHub Dark Default\",type:\"dark\",import:()=>f(()=>import(\"./Cuk6v7N8.js\"),[],import.meta.url)},{id:\"github-dark-dimmed\",displayName:\"GitHub Dark Dimmed\",type:\"dark\",import:()=>f(()=>import(\"./DH5Ifo-i.js\"),[],import.meta.url)},{id:\"github-dark-high-contrast\",displayName:\"GitHub Dark High Contrast\",type:\"dark\",import:()=>f(()=>import(\"./E3gJ1_iC.js\"),[],import.meta.url)},{id:\"github-light\",displayName:\"GitHub Light\",type:\"light\",import:()=>f(()=>import(\"./DAi9KRSo.js\"),[],import.meta.url)},{id:\"github-light-default\",displayName:\"GitHub Light Default\",type:\"light\",import:()=>f(()=>import(\"./D7oLnXFd.js\"),[],import.meta.url)},{id:\"github-light-high-contrast\",displayName:\"GitHub Light High Contrast\",type:\"light\",import:()=>f(()=>import(\"./BfjtVDDH.js\"),[],import.meta.url)},{id:\"houston\",displayName:\"Houston\",type:\"dark\",import:()=>f(()=>import(\"./DnULxvSX.js\"),[],import.meta.url)},{id:\"kanagawa-dragon\",displayName:\"Kanagawa Dragon\",type:\"dark\",import:()=>f(()=>import(\"./CkXjmgJE.js\"),[],import.meta.url)},{id:\"kanagawa-lotus\",displayName:\"Kanagawa Lotus\",type:\"light\",import:()=>f(()=>import(\"./CfQXZHmo.js\"),[],import.meta.url)},{id:\"kanagawa-wave\",displayName:\"Kanagawa Wave\",type:\"dark\",import:()=>f(()=>import(\"./DWedfzmr.js\"),[],import.meta.url)},{id:\"laserwave\",displayName:\"LaserWave\",type:\"dark\",import:()=>f(()=>import(\"./DUszq2jm.js\"),[],import.meta.url)},{id:\"light-plus\",displayName:\"Light Plus\",type:\"light\",import:()=>f(()=>import(\"./B7mTdjB0.js\"),[],import.meta.url)},{id:\"material-theme\",displayName:\"Material Theme\",type:\"dark\",import:()=>f(()=>import(\"./D5KoaKCx.js\"),[],import.meta.url)},{id:\"material-theme-darker\",displayName:\"Material Theme Darker\",type:\"dark\",import:()=>f(()=>import(\"./BfHTSMKl.js\"),[],import.meta.url)},{id:\"material-theme-lighter\",displayName:\"Material Theme Lighter\",type:\"light\",import:()=>f(()=>import(\"./B0m2ddpp.js\"),[],import.meta.url)},{id:\"material-theme-ocean\",displayName:\"Material Theme Ocean\",type:\"dark\",import:()=>f(()=>import(\"./CyktbL80.js\"),[],import.meta.url)},{id:\"material-theme-palenight\",displayName:\"Material Theme Palenight\",type:\"dark\",import:()=>f(()=>import(\"./Csfq5Kiy.js\"),[],import.meta.url)},{id:\"min-dark\",displayName:\"Min Dark\",type:\"dark\",import:()=>f(()=>import(\"./CafNBF8u.js\"),[],import.meta.url)},{id:\"min-light\",displayName:\"Min Light\",type:\"light\",import:()=>f(()=>import(\"./CTRr51gU.js\"),[],import.meta.url)},{id:\"monokai\",displayName:\"Monokai\",type:\"dark\",import:()=>f(()=>import(\"./D4h5O-jR.js\"),[],import.meta.url)},{id:\"night-owl\",displayName:\"Night Owl\",type:\"dark\",import:()=>f(()=>import(\"./C39BiMTA.js\"),[],import.meta.url)},{id:\"nord\",displayName:\"Nord\",type:\"dark\",import:()=>f(()=>import(\"./Ddv68eIx.js\"),[],import.meta.url)},{id:\"one-dark-pro\",displayName:\"One Dark Pro\",type:\"dark\",import:()=>f(()=>import(\"./GBQ2dnAY.js\"),[],import.meta.url)},{id:\"one-light\",displayName:\"One Light\",type:\"light\",import:()=>f(()=>import(\"./PoHY5YXO.js\"),[],import.meta.url)},{id:\"plastic\",displayName:\"Plastic\",type:\"dark\",import:()=>f(()=>import(\"./3e1v2bzS.js\"),[],import.meta.url)},{id:\"poimandres\",displayName:\"Poimandres\",type:\"dark\",import:()=>f(()=>import(\"./CS3Unz2-.js\"),[],import.meta.url)},{id:\"red\",displayName:\"Red\",type:\"dark\",import:()=>f(()=>import(\"./bN70gL4F.js\"),[],import.meta.url)},{id:\"rose-pine\",displayName:\"Rosé Pine\",type:\"dark\",import:()=>f(()=>import(\"./CmCqftbK.js\"),[],import.meta.url)},{id:\"rose-pine-dawn\",displayName:\"Rosé Pine Dawn\",type:\"light\",import:()=>f(()=>import(\"./Ds-gbosJ.js\"),[],import.meta.url)},{id:\"rose-pine-moon\",displayName:\"Rosé Pine Moon\",type:\"dark\",import:()=>f(()=>import(\"./CjDtw9vr.js\"),[],import.meta.url)},{id:\"slack-dark\",displayName:\"Slack Dark\",type:\"dark\",import:()=>f(()=>import(\"./BthQWCQV.js\"),[],import.meta.url)},{id:\"slack-ochin\",displayName:\"Slack Ochin\",type:\"light\",import:()=>f(()=>import(\"./DqwNpetd.js\"),[],import.meta.url)},{id:\"snazzy-light\",displayName:\"Snazzy Light\",type:\"light\",import:()=>f(()=>import(\"./Bw305WKR.js\"),[],import.meta.url)},{id:\"solarized-dark\",displayName:\"Solarized Dark\",type:\"dark\",import:()=>f(()=>import(\"./DXbdFlpD.js\"),[],import.meta.url)},{id:\"solarized-light\",displayName:\"Solarized Light\",type:\"light\",import:()=>f(()=>import(\"./L9t79GZl.js\"),[],import.meta.url)},{id:\"synthwave-84\",displayName:\"Synthwave '84\",type:\"dark\",import:()=>f(()=>import(\"./CbfX1IO0.js\"),[],import.meta.url)},{id:\"tokyo-night\",displayName:\"Tokyo Night\",type:\"dark\",import:()=>f(()=>import(\"./DBQeEorK.js\"),[],import.meta.url)},{id:\"vesper\",displayName:\"Vesper\",type:\"dark\",import:()=>f(()=>import(\"./BEBZ7ncR.js\"),[],import.meta.url)},{id:\"vitesse-black\",displayName:\"Vitesse Black\",type:\"dark\",import:()=>f(()=>import(\"./Bkuqu6BP.js\"),[],import.meta.url)},{id:\"vitesse-dark\",displayName:\"Vitesse Dark\",type:\"dark\",import:()=>f(()=>import(\"./D0r3Knsf.js\"),[],import.meta.url)},{id:\"vitesse-light\",displayName:\"Vitesse Light\",type:\"light\",import:()=>f(()=>import(\"./CVO1_9PV.js\"),[],import.meta.url)}],li=Object.fromEntries(si.map(e=>[e.id,e.import]));let Ae=class extends Error{constructor(t){super(t),this.name=\"ShikiError\"}},yu=class extends Error{constructor(t){super(t),this.name=\"ShikiError\"}};function ci(){return 2147483648}function di(){return typeof performance<\"u\"?performance.now():Date.now()}const fi=(e,t)=>e+(t-e%t)%t;async function pi(e){let t,u;const r={};function n(p){u=p,r.HEAPU8=new Uint8Array(p),r.HEAPU32=new Uint32Array(p)}function i(p,m,x){r.HEAPU8.copyWithin(p,m,m+x)}function o(p){try{return t.grow(p-u.byteLength+65535>>>16),n(t.buffer),1}catch{}}function a(p){const m=r.HEAPU8.length;p=p>>>0;const x=ci();if(p>x)return!1;for(let g=1;g<=4;g*=2){let E=m*(1+.2/g);E=Math.min(E,p+100663296);const _=Math.min(x,fi(Math.max(p,E),65536));if(o(_))return!0}return!1}const s=typeof TextDecoder<\"u\"?new TextDecoder(\"utf8\"):void 0;function l(p,m,x=1024){const g=m+x;let E=m;for(;p[E]&&!(E>=g);)++E;if(E-m>16&&p.buffer&&s)return s.decode(p.subarray(m,E));let _=\"\";for(;m<E;){let y=p[m++];if(!(y&128)){_+=String.fromCharCode(y);continue}const k=p[m++]&63;if((y&224)===192){_+=String.fromCharCode((y&31)<<6|k);continue}const D=p[m++]&63;if((y&240)===224?y=(y&15)<<12|k<<6|D:y=(y&7)<<18|k<<12|D<<6|p[m++]&63,y<65536)_+=String.fromCharCode(y);else{const S=y-65536;_+=String.fromCharCode(55296|S>>10,56320|S&1023)}}return _}function d(p,m){return p?l(r.HEAPU8,p,m):\"\"}const c={emscripten_get_now:di,emscripten_memcpy_big:i,emscripten_resize_heap:a,fd_write:()=>0};async function h(){const m=await e({env:c,wasi_snapshot_preview1:c});t=m.memory,n(t.buffer),Object.assign(r,m),r.UTF8ToString=d}return await h(),r}var mi=Object.defineProperty,hi=(e,t,u)=>t in e?mi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:u}):e[t]=u,G=(e,t,u)=>(hi(e,typeof t!=\"symbol\"?t+\"\":t,u),u);let Z=null;function _i(e){throw new yu(e.UTF8ToString(e.getLastOnigError()))}class Ot{constructor(t){G(this,\"utf16Length\"),G(this,\"utf8Length\"),G(this,\"utf16Value\"),G(this,\"utf8Value\"),G(this,\"utf16OffsetToUtf8\"),G(this,\"utf8OffsetToUtf16\");const u=t.length,r=Ot._utf8ByteLength(t),n=r!==u,i=n?new Uint32Array(u+1):null;n&&(i[u]=r);const o=n?new Uint32Array(r+1):null;n&&(o[r]=u);const a=new Uint8Array(r);let s=0;for(let l=0;l<u;l++){const d=t.charCodeAt(l);let c=d,h=!1;if(d>=55296&&d<=56319&&l+1<u){const p=t.charCodeAt(l+1);p>=56320&&p<=57343&&(c=(d-55296<<10)+65536|p-56320,h=!0)}n&&(i[l]=s,h&&(i[l+1]=s),c<=127?o[s+0]=l:c<=2047?(o[s+0]=l,o[s+1]=l):c<=65535?(o[s+0]=l,o[s+1]=l,o[s+2]=l):(o[s+0]=l,o[s+1]=l,o[s+2]=l,o[s+3]=l)),c<=127?a[s++]=c:c<=2047?(a[s++]=192|(c&1984)>>>6,a[s++]=128|(c&63)>>>0):c<=65535?(a[s++]=224|(c&61440)>>>12,a[s++]=128|(c&4032)>>>6,a[s++]=128|(c&63)>>>0):(a[s++]=240|(c&1835008)>>>18,a[s++]=128|(c&258048)>>>12,a[s++]=128|(c&4032)>>>6,a[s++]=128|(c&63)>>>0),h&&l++}this.utf16Length=u,this.utf8Length=r,this.utf16Value=t,this.utf8Value=a,this.utf16OffsetToUtf8=i,this.utf8OffsetToUtf16=o}static _utf8ByteLength(t){let u=0;for(let r=0,n=t.length;r<n;r++){const i=t.charCodeAt(r);let o=i,a=!1;if(i>=55296&&i<=56319&&r+1<n){const s=t.charCodeAt(r+1);s>=56320&&s<=57343&&(o=(i-55296<<10)+65536|s-56320,a=!0)}o<=127?u+=1:o<=2047?u+=2:o<=65535?u+=3:u+=4,a&&r++}return u}createString(t){const u=t.omalloc(this.utf8Length);return t.HEAPU8.set(this.utf8Value,u),u}}const fe=class{constructor(e){if(G(this,\"id\",++fe.LAST_ID),G(this,\"_onigBinding\"),G(this,\"content\"),G(this,\"utf16Length\"),G(this,\"utf8Length\"),G(this,\"utf16OffsetToUtf8\"),G(this,\"utf8OffsetToUtf16\"),G(this,\"ptr\"),!Z)throw new yu(\"Must invoke loadWasm first.\");this._onigBinding=Z,this.content=e;const t=new Ot(e);this.utf16Length=t.utf16Length,this.utf8Length=t.utf8Length,this.utf16OffsetToUtf8=t.utf16OffsetToUtf8,this.utf8OffsetToUtf16=t.utf8OffsetToUtf16,this.utf8Length<1e4&&!fe._sharedPtrInUse?(fe._sharedPtr||(fe._sharedPtr=Z.omalloc(1e4)),fe._sharedPtrInUse=!0,Z.HEAPU8.set(t.utf8Value,fe._sharedPtr),this.ptr=fe._sharedPtr):this.ptr=t.createString(Z)}convertUtf8OffsetToUtf16(e){return this.utf8OffsetToUtf16?e<0?0:e>this.utf8Length?this.utf16Length:this.utf8OffsetToUtf16[e]:e}convertUtf16OffsetToUtf8(e){return this.utf16OffsetToUtf8?e<0?0:e>this.utf16Length?this.utf8Length:this.utf16OffsetToUtf8[e]:e}dispose(){this.ptr===fe._sharedPtr?fe._sharedPtrInUse=!1:this._onigBinding.ofree(this.ptr)}};let it=fe;G(it,\"LAST_ID\",0);G(it,\"_sharedPtr\",0);G(it,\"_sharedPtrInUse\",!1);class gi{constructor(t){if(G(this,\"_onigBinding\"),G(this,\"_ptr\"),!Z)throw new yu(\"Must invoke loadWasm first.\");const u=[],r=[];for(let a=0,s=t.length;a<s;a++){const l=new Ot(t[a]);u[a]=l.createString(Z),r[a]=l.utf8Length}const n=Z.omalloc(4*t.length);Z.HEAPU32.set(u,n/4);const i=Z.omalloc(4*t.length);Z.HEAPU32.set(r,i/4);const o=Z.createOnigScanner(n,i,t.length);for(let a=0,s=t.length;a<s;a++)Z.ofree(u[a]);Z.ofree(i),Z.ofree(n),o===0&&_i(Z),this._onigBinding=Z,this._ptr=o}dispose(){this._onigBinding.freeOnigScanner(this._ptr)}findNextMatchSync(t,u,r){let n=0;if(typeof r==\"number\"&&(n=r),typeof t==\"string\"){t=new it(t);const i=this._findNextMatchSync(t,u,!1,n);return t.dispose(),i}return this._findNextMatchSync(t,u,!1,n)}_findNextMatchSync(t,u,r,n){const i=this._onigBinding,o=i.findNextOnigScannerMatch(this._ptr,t.id,t.ptr,t.utf8Length,t.convertUtf16OffsetToUtf8(u),n);if(o===0)return null;const a=i.HEAPU32;let s=o/4;const l=a[s++],d=a[s++],c=[];for(let h=0;h<d;h++){const p=t.convertUtf8OffsetToUtf16(a[s++]),m=t.convertUtf8OffsetToUtf16(a[s++]);c[h]={start:p,end:m,length:m-p}}return{index:l,captureIndices:c}}}function bi(e){return typeof e.instantiator==\"function\"}function yi(e){return typeof e.default==\"function\"}function xi(e){return typeof e.data<\"u\"}function Ei(e){return typeof Response<\"u\"&&e instanceof Response}function ki(e){var t;return typeof ArrayBuffer<\"u\"&&(e instanceof ArrayBuffer||ArrayBuffer.isView(e))||typeof Buffer<\"u\"&&((t=Buffer.isBuffer)==null?void 0:t.call(Buffer,e))||typeof SharedArrayBuffer<\"u\"&&e instanceof SharedArrayBuffer||typeof Uint32Array<\"u\"&&e instanceof Uint32Array}let dt;function Ai(e){if(dt)return dt;async function t(){Z=await pi(async u=>{let r=e;return r=await r,typeof r==\"function\"&&(r=await r(u)),typeof r==\"function\"&&(r=await r(u)),bi(r)?r=await r.instantiator(u):yi(r)?r=await r.default(u):(xi(r)&&(r=r.data),Ei(r)?typeof WebAssembly.instantiateStreaming==\"function\"?r=await vi(r)(u):r=await Ci(r)(u):ki(r)?r=await Ut(r)(u):r instanceof WebAssembly.Module?r=await Ut(r)(u):\"default\"in r&&r.default instanceof WebAssembly.Module&&(r=await Ut(r.default)(u))),\"instance\"in r&&(r=r.instance),\"exports\"in r&&(r=r.exports),r})}return dt=t(),dt}function Ut(e){return t=>WebAssembly.instantiate(e,t)}function vi(e){return t=>WebAssembly.instantiateStreaming(e,t)}function Ci(e){return async t=>{const u=await e.arrayBuffer();return WebAssembly.instantiate(u,t)}}let Di;function wi(){return Di}async function Lr(e){return e&&await Ai(e),{createScanner(t){return new gi(t.map(u=>typeof u==\"string\"?u:u.source))},createString(t){return new it(t)}}}function Si(e){return xu(e)}function xu(e){return Array.isArray(e)?Ti(e):e instanceof RegExp?e:typeof e==\"object\"?Ri(e):e}function Ti(e){let t=[];for(let u=0,r=e.length;u<r;u++)t[u]=xu(e[u]);return t}function Ri(e){let t={};for(let u in e)t[u]=xu(e[u]);return t}function Pr(e,...t){return t.forEach(u=>{for(let r in u)e[r]=u[r]}),e}function Ir(e){const t=~e.lastIndexOf(\"/\")||~e.lastIndexOf(\"\\\\\");return t===0?e:~t===e.length-1?Ir(e.substring(0,e.length-1)):e.substr(~t+1)}var Gt=/\\$(\\d+)|\\${(\\d+):\\/(downcase|upcase)}/g,ft=class{static hasCaptures(e){return e===null?!1:(Gt.lastIndex=0,Gt.test(e))}static replaceCaptures(e,t,u){return e.replace(Gt,(r,n,i,o)=>{let a=u[parseInt(n||i,10)];if(a){let s=t.substring(a.start,a.end);for(;s[0]===\".\";)s=s.substring(1);switch(o){case\"downcase\":return s.toLowerCase();case\"upcase\":return s.toUpperCase();default:return s}}else return r})}};function Or(e,t){return e<t?-1:e>t?1:0}function Fr(e,t){if(e===null&&t===null)return 0;if(!e)return-1;if(!t)return 1;let u=e.length,r=t.length;if(u===r){for(let n=0;n<u;n++){let i=Or(e[n],t[n]);if(i!==0)return i}return 0}return u-r}function Mu(e){return!!(/^#[0-9a-f]{6}$/i.test(e)||/^#[0-9a-f]{8}$/i.test(e)||/^#[0-9a-f]{3}$/i.test(e)||/^#[0-9a-f]{4}$/i.test(e))}function Mr(e){return e.replace(/[\\-\\\\\\{\\}\\*\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g,\"\\\\$&\")}var Nr=class{constructor(e){b(this,\"cache\",new Map);this.fn=e}get(e){if(this.cache.has(e))return this.cache.get(e);const t=this.fn(e);return this.cache.set(e,t),t}},xt=class{constructor(e,t,u){b(this,\"_cachedMatchRoot\",new Nr(e=>this._root.match(e)));this._colorMap=e,this._defaults=t,this._root=u}static createFromRawTheme(e,t){return this.createFromParsedTheme(Ii(e),t)}static createFromParsedTheme(e,t){return Fi(e,t)}getColorMap(){return this._colorMap.getColorMap()}getDefaults(){return this._defaults}match(e){if(e===null)return this._defaults;const t=e.scopeName,r=this._cachedMatchRoot.get(t).find(n=>Li(e.parent,n.parentScopes));return r?new Vr(r.fontStyle,r.foreground,r.background):null}},Ht=class gt{constructor(t,u){this.parent=t,this.scopeName=u}static push(t,u){for(const r of u)t=new gt(t,r);return t}static from(...t){let u=null;for(let r=0;r<t.length;r++)u=new gt(u,t[r]);return u}push(t){return new gt(this,t)}getSegments(){let t=this;const u=[];for(;t;)u.push(t.scopeName),t=t.parent;return u.reverse(),u}toString(){return this.getSegments().join(\" \")}extends(t){return this===t?!0:this.parent===null?!1:this.parent.extends(t)}getExtensionIfDefined(t){const u=[];let r=this;for(;r&&r!==t;)u.push(r.scopeName),r=r.parent;return r===t?u.reverse():void 0}};function Li(e,t){if(t.length===0)return!0;for(let u=0;u<t.length;u++){let r=t[u],n=!1;if(r===\">\"){if(u===t.length-1)return!1;r=t[++u],n=!0}for(;e&&!Pi(e.scopeName,r);){if(n)return!1;e=e.parent}if(!e)return!1;e=e.parent}return!0}function Pi(e,t){return t===e||e.startsWith(t)&&e[t.length]===\".\"}var Vr=class{constructor(e,t,u){this.fontStyle=e,this.foregroundId=t,this.backgroundId=u}};function Ii(e){if(!e)return[];if(!e.settings||!Array.isArray(e.settings))return[];let t=e.settings,u=[],r=0;for(let n=0,i=t.length;n<i;n++){let o=t[n];if(!o.settings)continue;let a;if(typeof o.scope==\"string\"){let c=o.scope;c=c.replace(/^[,]+/,\"\"),c=c.replace(/[,]+$/,\"\"),a=c.split(\",\")}else Array.isArray(o.scope)?a=o.scope:a=[\"\"];let s=-1;if(typeof o.settings.fontStyle==\"string\"){s=0;let c=o.settings.fontStyle.split(\" \");for(let h=0,p=c.length;h<p;h++)switch(c[h]){case\"italic\":s=s|1;break;case\"bold\":s=s|2;break;case\"underline\":s=s|4;break;case\"strikethrough\":s=s|8;break}}let l=null;typeof o.settings.foreground==\"string\"&&Mu(o.settings.foreground)&&(l=o.settings.foreground);let d=null;typeof o.settings.background==\"string\"&&Mu(o.settings.background)&&(d=o.settings.background);for(let c=0,h=a.length;c<h;c++){let m=a[c].trim().split(\" \"),x=m[m.length-1],g=null;m.length>1&&(g=m.slice(0,m.length-1),g.reverse()),u[r++]=new Oi(x,g,n,s,l,d)}}return u}var Oi=class{constructor(e,t,u,r,n,i){this.scope=e,this.parentScopes=t,this.index=u,this.fontStyle=r,this.foreground=n,this.background=i}},ke=(e=>(e[e.NotSet=-1]=\"NotSet\",e[e.None=0]=\"None\",e[e.Italic=1]=\"Italic\",e[e.Bold=2]=\"Bold\",e[e.Underline=4]=\"Underline\",e[e.Strikethrough=8]=\"Strikethrough\",e))(ke||{});function Fi(e,t){e.sort((s,l)=>{let d=Or(s.scope,l.scope);return d!==0||(d=Fr(s.parentScopes,l.parentScopes),d!==0)?d:s.index-l.index});let u=0,r=\"#000000\",n=\"#ffffff\";for(;e.length>=1&&e[0].scope===\"\";){let s=e.shift();s.fontStyle!==-1&&(u=s.fontStyle),s.foreground!==null&&(r=s.foreground),s.background!==null&&(n=s.background)}let i=new Mi(t),o=new Vr(u,i.getId(r),i.getId(n)),a=new Vi(new iu(0,null,-1,0,0),[]);for(let s=0,l=e.length;s<l;s++){let d=e[s];a.insert(0,d.scope,d.parentScopes,d.fontStyle,i.getId(d.foreground),i.getId(d.background))}return new xt(i,o,a)}var Mi=class{constructor(e){b(this,\"_isFrozen\");b(this,\"_lastColorId\");b(this,\"_id2color\");b(this,\"_color2id\");if(this._lastColorId=0,this._id2color=[],this._color2id=Object.create(null),Array.isArray(e)){this._isFrozen=!0;for(let t=0,u=e.length;t<u;t++)this._color2id[e[t]]=t,this._id2color[t]=e[t]}else this._isFrozen=!1}getId(e){if(e===null)return 0;e=e.toUpperCase();let t=this._color2id[e];if(t)return t;if(this._isFrozen)throw new Error(`Missing color in color map - ${e}`);return t=++this._lastColorId,this._color2id[e]=t,this._id2color[t]=e,t}getColorMap(){return this._id2color.slice(0)}},Ni=Object.freeze([]),iu=class Br{constructor(t,u,r,n,i){b(this,\"scopeDepth\");b(this,\"parentScopes\");b(this,\"fontStyle\");b(this,\"foreground\");b(this,\"background\");this.scopeDepth=t,this.parentScopes=u||Ni,this.fontStyle=r,this.foreground=n,this.background=i}clone(){return new Br(this.scopeDepth,this.parentScopes,this.fontStyle,this.foreground,this.background)}static cloneArr(t){let u=[];for(let r=0,n=t.length;r<n;r++)u[r]=t[r].clone();return u}acceptOverwrite(t,u,r,n){this.scopeDepth>t?console.log(\"how did this happen?\"):this.scopeDepth=t,u!==-1&&(this.fontStyle=u),r!==0&&(this.foreground=r),n!==0&&(this.background=n)}},Vi=class ou{constructor(t,u=[],r={}){b(this,\"_rulesWithParentScopes\");this._mainRule=t,this._children=r,this._rulesWithParentScopes=u}static _cmpBySpecificity(t,u){if(t.scopeDepth!==u.scopeDepth)return u.scopeDepth-t.scopeDepth;let r=0,n=0;for(;t.parentScopes[r]===\">\"&&r++,u.parentScopes[n]===\">\"&&n++,!(r>=t.parentScopes.length||n>=u.parentScopes.length);){const i=u.parentScopes[n].length-t.parentScopes[r].length;if(i!==0)return i;r++,n++}return u.parentScopes.length-t.parentScopes.length}match(t){if(t!==\"\"){let r=t.indexOf(\".\"),n,i;if(r===-1?(n=t,i=\"\"):(n=t.substring(0,r),i=t.substring(r+1)),this._children.hasOwnProperty(n))return this._children[n].match(i)}const u=this._rulesWithParentScopes.concat(this._mainRule);return u.sort(ou._cmpBySpecificity),u}insert(t,u,r,n,i,o){if(u===\"\"){this._doInsertHere(t,r,n,i,o);return}let a=u.indexOf(\".\"),s,l;a===-1?(s=u,l=\"\"):(s=u.substring(0,a),l=u.substring(a+1));let d;this._children.hasOwnProperty(s)?d=this._children[s]:(d=new ou(this._mainRule.clone(),iu.cloneArr(this._rulesWithParentScopes)),this._children[s]=d),d.insert(t+1,l,r,n,i,o)}_doInsertHere(t,u,r,n,i){if(u===null){this._mainRule.acceptOverwrite(t,r,n,i);return}for(let o=0,a=this._rulesWithParentScopes.length;o<a;o++){let s=this._rulesWithParentScopes[o];if(Fr(s.parentScopes,u)===0){s.acceptOverwrite(t,r,n,i);return}}r===-1&&(r=this._mainRule.fontStyle),n===0&&(n=this._mainRule.foreground),i===0&&(i=this._mainRule.background),this._rulesWithParentScopes.push(new iu(t,u,r,n,i))}},je=class oe{static toBinaryStr(t){return t.toString(2).padStart(32,\"0\")}static print(t){const u=oe.getLanguageId(t),r=oe.getTokenType(t),n=oe.getFontStyle(t),i=oe.getForeground(t),o=oe.getBackground(t);console.log({languageId:u,tokenType:r,fontStyle:n,foreground:i,background:o})}static getLanguageId(t){return(t&255)>>>0}static getTokenType(t){return(t&768)>>>8}static containsBalancedBrackets(t){return(t&1024)!==0}static getFontStyle(t){return(t&30720)>>>11}static getForeground(t){return(t&16744448)>>>15}static getBackground(t){return(t&4278190080)>>>24}static set(t,u,r,n,i,o,a){let s=oe.getLanguageId(t),l=oe.getTokenType(t),d=oe.containsBalancedBrackets(t)?1:0,c=oe.getFontStyle(t),h=oe.getForeground(t),p=oe.getBackground(t);return u!==0&&(s=u),r!==8&&(l=r),n!==null&&(d=n?1:0),i!==-1&&(c=i),o!==0&&(h=o),a!==0&&(p=a),(s<<0|l<<8|d<<10|c<<11|h<<15|p<<24)>>>0}};function Et(e,t){const u=[],r=Bi(e);let n=r.next();for(;n!==null;){let s=0;if(n.length===2&&n.charAt(1)===\":\"){switch(n.charAt(0)){case\"R\":s=1;break;case\"L\":s=-1;break;default:console.log(`Unknown priority ${n} in scope selector`)}n=r.next()}let l=o();if(u.push({matcher:l,priority:s}),n!==\",\")break;n=r.next()}return u;function i(){if(n===\"-\"){n=r.next();const s=i();return l=>!!s&&!s(l)}if(n===\"(\"){n=r.next();const s=a();return n===\")\"&&(n=r.next()),s}if(Nu(n)){const s=[];do s.push(n),n=r.next();while(Nu(n));return l=>t(s,l)}return null}function o(){const s=[];let l=i();for(;l;)s.push(l),l=i();return d=>s.every(c=>c(d))}function a(){const s=[];let l=o();for(;l&&(s.push(l),n===\"|\"||n===\",\");){do n=r.next();while(n===\"|\"||n===\",\");l=o()}return d=>s.some(c=>c(d))}}function Nu(e){return!!e&&!!e.match(/[\\w\\.:]+/)}function Bi(e){let t=/([LR]:|[\\w\\.:][\\w\\.:\\-]*|[\\,\\|\\-\\(\\)])/g,u=t.exec(e);return{next:()=>{if(!u)return null;const r=u[0];return u=t.exec(e),r}}}function zr(e){typeof e.dispose==\"function\"&&e.dispose()}var Ye=class{constructor(e){this.scopeName=e}toKey(){return this.scopeName}},zi=class{constructor(e,t){this.scopeName=e,this.ruleName=t}toKey(){return`${this.scopeName}#${this.ruleName}`}},ji=class{constructor(){b(this,\"_references\",[]);b(this,\"_seenReferenceKeys\",new Set);b(this,\"visitedRule\",new Set)}get references(){return this._references}add(e){const t=e.toKey();this._seenReferenceKeys.has(t)||(this._seenReferenceKeys.add(t),this._references.push(e))}},$i=class{constructor(e,t){b(this,\"seenFullScopeRequests\",new Set);b(this,\"seenPartialScopeRequests\",new Set);b(this,\"Q\");this.repo=e,this.initialScopeName=t,this.seenFullScopeRequests.add(this.initialScopeName),this.Q=[new Ye(this.initialScopeName)]}processQueue(){const e=this.Q;this.Q=[];const t=new ji;for(const u of e)qi(u,this.initialScopeName,this.repo,t);for(const u of t.references)if(u instanceof Ye){if(this.seenFullScopeRequests.has(u.scopeName))continue;this.seenFullScopeRequests.add(u.scopeName),this.Q.push(u)}else{if(this.seenFullScopeRequests.has(u.scopeName)||this.seenPartialScopeRequests.has(u.toKey()))continue;this.seenPartialScopeRequests.add(u.toKey()),this.Q.push(u)}}};function qi(e,t,u,r){const n=u.lookup(e.scopeName);if(!n){if(e.scopeName===t)throw new Error(`No grammar provided for <${t}>`);return}const i=u.lookup(t);e instanceof Ye?bt({baseGrammar:i,selfGrammar:n},r):au(e.ruleName,{baseGrammar:i,selfGrammar:n,repository:n.repository},r);const o=u.injections(e.scopeName);if(o)for(const a of o)r.add(new Ye(a))}function au(e,t,u){if(t.repository&&t.repository[e]){const r=t.repository[e];kt([r],t,u)}}function bt(e,t){e.selfGrammar.patterns&&Array.isArray(e.selfGrammar.patterns)&&kt(e.selfGrammar.patterns,{...e,repository:e.selfGrammar.repository},t),e.selfGrammar.injections&&kt(Object.values(e.selfGrammar.injections),{...e,repository:e.selfGrammar.repository},t)}function kt(e,t,u){for(const r of e){if(u.visitedRule.has(r))continue;u.visitedRule.add(r);const n=r.repository?Pr({},t.repository,r.repository):t.repository;Array.isArray(r.patterns)&&kt(r.patterns,{...t,repository:n},u);const i=r.include;if(!i)continue;const o=jr(i);switch(o.kind){case 0:bt({...t,selfGrammar:t.baseGrammar},u);break;case 1:bt(t,u);break;case 2:au(o.ruleName,{...t,repository:n},u);break;case 3:case 4:const a=o.scopeName===t.selfGrammar.scopeName?t.selfGrammar:o.scopeName===t.baseGrammar.scopeName?t.baseGrammar:void 0;if(a){const s={baseGrammar:t.baseGrammar,selfGrammar:a,repository:n};o.kind===4?au(o.ruleName,s,u):bt(s,u)}else o.kind===4?u.add(new zi(o.scopeName,o.ruleName)):u.add(new Ye(o.scopeName));break}}}var Ui=class{constructor(){b(this,\"kind\",0)}},Gi=class{constructor(){b(this,\"kind\",1)}},Hi=class{constructor(e){b(this,\"kind\",2);this.ruleName=e}},Wi=class{constructor(e){b(this,\"kind\",3);this.scopeName=e}},Zi=class{constructor(e,t){b(this,\"kind\",4);this.scopeName=e,this.ruleName=t}};function jr(e){if(e===\"$base\")return new Ui;if(e===\"$self\")return new Gi;const t=e.indexOf(\"#\");if(t===-1)return new Wi(e);if(t===0)return new Hi(e.substring(1));{const u=e.substring(0,t),r=e.substring(t+1);return new Zi(u,r)}}var Ji=/\\\\(\\d+)/,Vu=/\\\\(\\d+)/g,Ki=-1,$r=-2;var ot=class{constructor(e,t,u,r){b(this,\"$location\");b(this,\"id\");b(this,\"_nameIsCapturing\");b(this,\"_name\");b(this,\"_contentNameIsCapturing\");b(this,\"_contentName\");this.$location=e,this.id=t,this._name=u||null,this._nameIsCapturing=ft.hasCaptures(this._name),this._contentName=r||null,this._contentNameIsCapturing=ft.hasCaptures(this._contentName)}get debugName(){const e=this.$location?`${Ir(this.$location.filename)}:${this.$location.line}`:\"unknown\";return`${this.constructor.name}#${this.id} @ ${e}`}getName(e,t){return!this._nameIsCapturing||this._name===null||e===null||t===null?this._name:ft.replaceCaptures(this._name,e,t)}getContentName(e,t){return!this._contentNameIsCapturing||this._contentName===null?this._contentName:ft.replaceCaptures(this._contentName,e,t)}},Yi=class extends ot{constructor(t,u,r,n,i){super(t,u,r,n);b(this,\"retokenizeCapturedWithRuleId\");this.retokenizeCapturedWithRuleId=i}dispose(){}collectPatterns(t,u){throw new Error(\"Not supported!\")}compile(t,u){throw new Error(\"Not supported!\")}compileAG(t,u,r,n){throw new Error(\"Not supported!\")}},Qi=class extends ot{constructor(t,u,r,n,i){super(t,u,r,null);b(this,\"_match\");b(this,\"captures\");b(this,\"_cachedCompiledPatterns\");this._match=new Qe(n,this.id),this.captures=i,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugMatchRegExp(){return`${this._match.source}`}collectPatterns(t,u){u.push(this._match)}compile(t,u){return this._getCachedCompiledPatterns(t).compile(t)}compileAG(t,u,r,n){return this._getCachedCompiledPatterns(t).compileAG(t,r,n)}_getCachedCompiledPatterns(t){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new Xe,this.collectPatterns(t,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},Bu=class extends ot{constructor(t,u,r,n,i){super(t,u,r,n);b(this,\"hasMissingPatterns\");b(this,\"patterns\");b(this,\"_cachedCompiledPatterns\");this.patterns=i.patterns,this.hasMissingPatterns=i.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}collectPatterns(t,u){for(const r of this.patterns)t.getRule(r).collectPatterns(t,u)}compile(t,u){return this._getCachedCompiledPatterns(t).compile(t)}compileAG(t,u,r,n){return this._getCachedCompiledPatterns(t).compileAG(t,r,n)}_getCachedCompiledPatterns(t){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new Xe,this.collectPatterns(t,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},su=class extends ot{constructor(t,u,r,n,i,o,a,s,l,d){super(t,u,r,n);b(this,\"_begin\");b(this,\"beginCaptures\");b(this,\"_end\");b(this,\"endHasBackReferences\");b(this,\"endCaptures\");b(this,\"applyEndPatternLast\");b(this,\"hasMissingPatterns\");b(this,\"patterns\");b(this,\"_cachedCompiledPatterns\");this._begin=new Qe(i,this.id),this.beginCaptures=o,this._end=new Qe(a||\"￿\",-1),this.endHasBackReferences=this._end.hasBackReferences,this.endCaptures=s,this.applyEndPatternLast=l||!1,this.patterns=d.patterns,this.hasMissingPatterns=d.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugEndRegExp(){return`${this._end.source}`}getEndWithResolvedBackReferences(t,u){return this._end.resolveBackReferences(t,u)}collectPatterns(t,u){u.push(this._begin)}compile(t,u){return this._getCachedCompiledPatterns(t,u).compile(t)}compileAG(t,u,r,n){return this._getCachedCompiledPatterns(t,u).compileAG(t,r,n)}_getCachedCompiledPatterns(t,u){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new Xe;for(const r of this.patterns)t.getRule(r).collectPatterns(t,this._cachedCompiledPatterns);this.applyEndPatternLast?this._cachedCompiledPatterns.push(this._end.hasBackReferences?this._end.clone():this._end):this._cachedCompiledPatterns.unshift(this._end.hasBackReferences?this._end.clone():this._end)}return this._end.hasBackReferences&&(this.applyEndPatternLast?this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length()-1,u):this._cachedCompiledPatterns.setSource(0,u)),this._cachedCompiledPatterns}},At=class extends ot{constructor(t,u,r,n,i,o,a,s,l){super(t,u,r,n);b(this,\"_begin\");b(this,\"beginCaptures\");b(this,\"whileCaptures\");b(this,\"_while\");b(this,\"whileHasBackReferences\");b(this,\"hasMissingPatterns\");b(this,\"patterns\");b(this,\"_cachedCompiledPatterns\");b(this,\"_cachedCompiledWhilePatterns\");this._begin=new Qe(i,this.id),this.beginCaptures=o,this.whileCaptures=s,this._while=new Qe(a,$r),this.whileHasBackReferences=this._while.hasBackReferences,this.patterns=l.patterns,this.hasMissingPatterns=l.hasMissingPatterns,this._cachedCompiledPatterns=null,this._cachedCompiledWhilePatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null),this._cachedCompiledWhilePatterns&&(this._cachedCompiledWhilePatterns.dispose(),this._cachedCompiledWhilePatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugWhileRegExp(){return`${this._while.source}`}getWhileWithResolvedBackReferences(t,u){return this._while.resolveBackReferences(t,u)}collectPatterns(t,u){u.push(this._begin)}compile(t,u){return this._getCachedCompiledPatterns(t).compile(t)}compileAG(t,u,r,n){return this._getCachedCompiledPatterns(t).compileAG(t,r,n)}_getCachedCompiledPatterns(t){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new Xe;for(const u of this.patterns)t.getRule(u).collectPatterns(t,this._cachedCompiledPatterns)}return this._cachedCompiledPatterns}compileWhile(t,u){return this._getCachedCompiledWhilePatterns(t,u).compile(t)}compileWhileAG(t,u,r,n){return this._getCachedCompiledWhilePatterns(t,u).compileAG(t,r,n)}_getCachedCompiledWhilePatterns(t,u){return this._cachedCompiledWhilePatterns||(this._cachedCompiledWhilePatterns=new Xe,this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences?this._while.clone():this._while)),this._while.hasBackReferences&&this._cachedCompiledWhilePatterns.setSource(0,u||\"￿\"),this._cachedCompiledWhilePatterns}},qr=class Y{static createCaptureRule(t,u,r,n,i){return t.registerRule(o=>new Yi(u,o,r,n,i))}static getCompiledRuleId(t,u,r){return t.id||u.registerRule(n=>{if(t.id=n,t.match)return new Qi(t.$vscodeTextmateLocation,t.id,t.name,t.match,Y._compileCaptures(t.captures,u,r));if(typeof t.begin>\"u\"){t.repository&&(r=Pr({},r,t.repository));let i=t.patterns;return typeof i>\"u\"&&t.include&&(i=[{include:t.include}]),new Bu(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,Y._compilePatterns(i,u,r))}return t.while?new At(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,t.begin,Y._compileCaptures(t.beginCaptures||t.captures,u,r),t.while,Y._compileCaptures(t.whileCaptures||t.captures,u,r),Y._compilePatterns(t.patterns,u,r)):new su(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,t.begin,Y._compileCaptures(t.beginCaptures||t.captures,u,r),t.end,Y._compileCaptures(t.endCaptures||t.captures,u,r),t.applyEndPatternLast,Y._compilePatterns(t.patterns,u,r))}),t.id}static _compileCaptures(t,u,r){let n=[];if(t){let i=0;for(const o in t){if(o===\"$vscodeTextmateLocation\")continue;const a=parseInt(o,10);a>i&&(i=a)}for(let o=0;o<=i;o++)n[o]=null;for(const o in t){if(o===\"$vscodeTextmateLocation\")continue;const a=parseInt(o,10);let s=0;t[o].patterns&&(s=Y.getCompiledRuleId(t[o],u,r)),n[a]=Y.createCaptureRule(u,t[o].$vscodeTextmateLocation,t[o].name,t[o].contentName,s)}}return n}static _compilePatterns(t,u,r){let n=[];if(t)for(let i=0,o=t.length;i<o;i++){const a=t[i];let s=-1;if(a.include){const l=jr(a.include);switch(l.kind){case 0:case 1:s=Y.getCompiledRuleId(r[a.include],u,r);break;case 2:let d=r[l.ruleName];d&&(s=Y.getCompiledRuleId(d,u,r));break;case 3:case 4:const c=l.scopeName,h=l.kind===4?l.ruleName:null,p=u.getExternalGrammar(c,r);if(p)if(h){let m=p.repository[h];m&&(s=Y.getCompiledRuleId(m,u,p.repository))}else s=Y.getCompiledRuleId(p.repository.$self,u,p.repository);break}}else s=Y.getCompiledRuleId(a,u,r);if(s!==-1){const l=u.getRule(s);let d=!1;if((l instanceof Bu||l instanceof su||l instanceof At)&&l.hasMissingPatterns&&l.patterns.length===0&&(d=!0),d)continue;n.push(s)}}return{patterns:n,hasMissingPatterns:(t?t.length:0)!==n.length}}},Qe=class Ur{constructor(t,u){b(this,\"source\");b(this,\"ruleId\");b(this,\"hasAnchor\");b(this,\"hasBackReferences\");b(this,\"_anchorCache\");if(t&&typeof t==\"string\"){const r=t.length;let n=0,i=[],o=!1;for(let a=0;a<r;a++)if(t.charAt(a)===\"\\\\\"&&a+1<r){const l=t.charAt(a+1);l===\"z\"?(i.push(t.substring(n,a)),i.push(\"$(?!\\\\n)(?<!\\\\n)\"),n=a+2):(l===\"A\"||l===\"G\")&&(o=!0),a++}this.hasAnchor=o,n===0?this.source=t:(i.push(t.substring(n,r)),this.source=i.join(\"\"))}else this.hasAnchor=!1,this.source=t;this.hasAnchor?this._anchorCache=this._buildAnchorCache():this._anchorCache=null,this.ruleId=u,typeof this.source==\"string\"?this.hasBackReferences=Ji.test(this.source):this.hasBackReferences=!1}clone(){return new Ur(this.source,this.ruleId)}setSource(t){this.source!==t&&(this.source=t,this.hasAnchor&&(this._anchorCache=this._buildAnchorCache()))}resolveBackReferences(t,u){if(typeof this.source!=\"string\")throw new Error(\"This method should only be called if the source is a string\");let r=u.map(n=>t.substring(n.start,n.end));return Vu.lastIndex=0,this.source.replace(Vu,(n,i)=>Mr(r[parseInt(i,10)]||\"\"))}_buildAnchorCache(){if(typeof this.source!=\"string\")throw new Error(\"This method should only be called if the source is a string\");let t=[],u=[],r=[],n=[],i,o,a,s;for(i=0,o=this.source.length;i<o;i++)a=this.source.charAt(i),t[i]=a,u[i]=a,r[i]=a,n[i]=a,a===\"\\\\\"&&i+1<o&&(s=this.source.charAt(i+1),s===\"A\"?(t[i+1]=\"￿\",u[i+1]=\"￿\",r[i+1]=\"A\",n[i+1]=\"A\"):s===\"G\"?(t[i+1]=\"￿\",u[i+1]=\"G\",r[i+1]=\"￿\",n[i+1]=\"G\"):(t[i+1]=s,u[i+1]=s,r[i+1]=s,n[i+1]=s),i++);return{A0_G0:t.join(\"\"),A0_G1:u.join(\"\"),A1_G0:r.join(\"\"),A1_G1:n.join(\"\")}}resolveAnchors(t,u){return!this.hasAnchor||!this._anchorCache||typeof this.source!=\"string\"?this.source:t?u?this._anchorCache.A1_G1:this._anchorCache.A1_G0:u?this._anchorCache.A0_G1:this._anchorCache.A0_G0}},Xe=class{constructor(){b(this,\"_items\");b(this,\"_hasAnchors\");b(this,\"_cached\");b(this,\"_anchorCache\");this._items=[],this._hasAnchors=!1,this._cached=null,this._anchorCache={A0_G0:null,A0_G1:null,A1_G0:null,A1_G1:null}}dispose(){this._disposeCaches()}_disposeCaches(){this._cached&&(this._cached.dispose(),this._cached=null),this._anchorCache.A0_G0&&(this._anchorCache.A0_G0.dispose(),this._anchorCache.A0_G0=null),this._anchorCache.A0_G1&&(this._anchorCache.A0_G1.dispose(),this._anchorCache.A0_G1=null),this._anchorCache.A1_G0&&(this._anchorCache.A1_G0.dispose(),this._anchorCache.A1_G0=null),this._anchorCache.A1_G1&&(this._anchorCache.A1_G1.dispose(),this._anchorCache.A1_G1=null)}push(e){this._items.push(e),this._hasAnchors=this._hasAnchors||e.hasAnchor}unshift(e){this._items.unshift(e),this._hasAnchors=this._hasAnchors||e.hasAnchor}length(){return this._items.length}setSource(e,t){this._items[e].source!==t&&(this._disposeCaches(),this._items[e].setSource(t))}compile(e){if(!this._cached){let t=this._items.map(u=>u.source);this._cached=new zu(e,t,this._items.map(u=>u.ruleId))}return this._cached}compileAG(e,t,u){return this._hasAnchors?t?u?(this._anchorCache.A1_G1||(this._anchorCache.A1_G1=this._resolveAnchors(e,t,u)),this._anchorCache.A1_G1):(this._anchorCache.A1_G0||(this._anchorCache.A1_G0=this._resolveAnchors(e,t,u)),this._anchorCache.A1_G0):u?(this._anchorCache.A0_G1||(this._anchorCache.A0_G1=this._resolveAnchors(e,t,u)),this._anchorCache.A0_G1):(this._anchorCache.A0_G0||(this._anchorCache.A0_G0=this._resolveAnchors(e,t,u)),this._anchorCache.A0_G0):this.compile(e)}_resolveAnchors(e,t,u){let r=this._items.map(n=>n.resolveAnchors(t,u));return new zu(e,r,this._items.map(n=>n.ruleId))}},zu=class{constructor(e,t,u){b(this,\"scanner\");this.regExps=t,this.rules=u,this.scanner=e.createOnigScanner(t)}dispose(){typeof this.scanner.dispose==\"function\"&&this.scanner.dispose()}toString(){const e=[];for(let t=0,u=this.rules.length;t<u;t++)e.push(\"   - \"+this.rules[t]+\": \"+this.regExps[t]);return e.join(`\n`)}findNextMatchSync(e,t,u){const r=this.scanner.findNextMatchSync(e,t,u);return r?{ruleId:this.rules[r.index],captureIndices:r.captureIndices}:null}},Wt=class{constructor(e,t){this.languageId=e,this.tokenType=t}},xe,Xi=(xe=class{constructor(t,u){b(this,\"_defaultAttributes\");b(this,\"_embeddedLanguagesMatcher\");b(this,\"_getBasicScopeAttributes\",new Nr(t=>{const u=this._scopeToLanguage(t),r=this._toStandardTokenType(t);return new Wt(u,r)}));this._defaultAttributes=new Wt(t,8),this._embeddedLanguagesMatcher=new eo(Object.entries(u||{}))}getDefaultAttributes(){return this._defaultAttributes}getBasicScopeAttributes(t){return t===null?xe._NULL_SCOPE_METADATA:this._getBasicScopeAttributes.get(t)}_scopeToLanguage(t){return this._embeddedLanguagesMatcher.match(t)||0}_toStandardTokenType(t){const u=t.match(xe.STANDARD_TOKEN_TYPE_REGEXP);if(!u)return 8;switch(u[1]){case\"comment\":return 1;case\"string\":return 2;case\"regex\":return 3;case\"meta.embedded\":return 0}throw new Error(\"Unexpected match for standard token type!\")}},b(xe,\"_NULL_SCOPE_METADATA\",new Wt(0,0)),b(xe,\"STANDARD_TOKEN_TYPE_REGEXP\",/\\b(comment|string|regex|meta\\.embedded)\\b/),xe),eo=class{constructor(e){b(this,\"values\");b(this,\"scopesRegExp\");if(e.length===0)this.values=null,this.scopesRegExp=null;else{this.values=new Map(e);const t=e.map(([u,r])=>Mr(u));t.sort(),t.reverse(),this.scopesRegExp=new RegExp(`^((${t.join(\")|(\")}))($|\\\\.)`,\"\")}}match(e){if(!this.scopesRegExp)return;const t=e.match(this.scopesRegExp);if(t)return this.values.get(t[1])}},ju=class{constructor(e,t){this.stack=e,this.stoppedEarly=t}};function Gr(e,t,u,r,n,i,o,a){const s=t.content.length;let l=!1,d=-1;if(o){const p=to(e,t,u,r,n,i);n=p.stack,r=p.linePos,u=p.isFirstLine,d=p.anchorPosition}const c=Date.now();for(;!l;){if(a!==0&&Date.now()-c>a)return new ju(n,!0);h()}return new ju(n,!1);function h(){const p=uo(e,t,u,r,n,d);if(!p){i.produce(n,s),l=!0;return}const m=p.captureIndices,x=p.matchedRuleId,g=m&&m.length>0?m[0].end>r:!1;if(x===Ki){const E=n.getRule(e);i.produce(n,m[0].start),n=n.withContentNameScopesList(n.nameScopesList),Je(e,t,u,n,i,E.endCaptures,m),i.produce(n,m[0].end);const _=n;if(n=n.parent,d=_.getAnchorPos(),!g&&_.getEnterPos()===r){n=_,i.produce(n,s),l=!0;return}}else{const E=e.getRule(x);i.produce(n,m[0].start);const _=n,y=E.getName(t.content,m),k=n.contentNameScopesList.pushAttributed(y,e);if(n=n.push(x,r,d,m[0].end===s,null,k,k),E instanceof su){const D=E;Je(e,t,u,n,i,D.beginCaptures,m),i.produce(n,m[0].end),d=m[0].end;const S=D.getContentName(t.content,m),I=k.pushAttributed(S,e);if(n=n.withContentNameScopesList(I),D.endHasBackReferences&&(n=n.withEndRule(D.getEndWithResolvedBackReferences(t.content,m))),!g&&_.hasSameRuleAs(n)){n=n.pop(),i.produce(n,s),l=!0;return}}else if(E instanceof At){const D=E;Je(e,t,u,n,i,D.beginCaptures,m),i.produce(n,m[0].end),d=m[0].end;const S=D.getContentName(t.content,m),I=k.pushAttributed(S,e);if(n=n.withContentNameScopesList(I),D.whileHasBackReferences&&(n=n.withEndRule(D.getWhileWithResolvedBackReferences(t.content,m))),!g&&_.hasSameRuleAs(n)){n=n.pop(),i.produce(n,s),l=!0;return}}else if(Je(e,t,u,n,i,E.captures,m),i.produce(n,m[0].end),n=n.pop(),!g){n=n.safePop(),i.produce(n,s),l=!0;return}}m[0].end>r&&(r=m[0].end,u=!1)}}function to(e,t,u,r,n,i){let o=n.beginRuleCapturedEOL?0:-1;const a=[];for(let s=n;s;s=s.pop()){const l=s.getRule(e);l instanceof At&&a.push({rule:l,stack:s})}for(let s=a.pop();s;s=a.pop()){const{ruleScanner:l,findOptions:d}=io(s.rule,e,s.stack.endRule,u,r===o),c=l.findNextMatchSync(t,r,d);if(c){if(c.ruleId!==$r){n=s.stack.pop();break}c.captureIndices&&c.captureIndices.length&&(i.produce(s.stack,c.captureIndices[0].start),Je(e,t,u,s.stack,i,s.rule.whileCaptures,c.captureIndices),i.produce(s.stack,c.captureIndices[0].end),o=c.captureIndices[0].end,c.captureIndices[0].end>r&&(r=c.captureIndices[0].end,u=!1))}else{n=s.stack.pop();break}}return{stack:n,linePos:r,anchorPosition:o,isFirstLine:u}}function uo(e,t,u,r,n,i){const o=ro(e,t,u,r,n,i),a=e.getInjections();if(a.length===0)return o;const s=no(a,e,t,u,r,n,i);if(!s)return o;if(!o)return s;const l=o.captureIndices[0].start,d=s.captureIndices[0].start;return d<l||s.priorityMatch&&d===l?s:o}function ro(e,t,u,r,n,i){const o=n.getRule(e),{ruleScanner:a,findOptions:s}=Hr(o,e,n.endRule,u,r===i),l=a.findNextMatchSync(t,r,s);return l?{captureIndices:l.captureIndices,matchedRuleId:l.ruleId}:null}function no(e,t,u,r,n,i,o){let a=Number.MAX_VALUE,s=null,l,d=0;const c=i.contentNameScopesList.getScopeNames();for(let h=0,p=e.length;h<p;h++){const m=e[h];if(!m.matcher(c))continue;const x=t.getRule(m.ruleId),{ruleScanner:g,findOptions:E}=Hr(x,t,null,r,n===o),_=g.findNextMatchSync(u,n,E);if(!_)continue;const y=_.captureIndices[0].start;if(!(y>=a)&&(a=y,s=_.captureIndices,l=_.ruleId,d=m.priority,a===n))break}return s?{priorityMatch:d===-1,captureIndices:s,matchedRuleId:l}:null}function Hr(e,t,u,r,n){return{ruleScanner:e.compileAG(t,u,r,n),findOptions:0}}function io(e,t,u,r,n){return{ruleScanner:e.compileWhileAG(t,u,r,n),findOptions:0}}function Je(e,t,u,r,n,i,o){if(i.length===0)return;const a=t.content,s=Math.min(i.length,o.length),l=[],d=o[0].end;for(let c=0;c<s;c++){const h=i[c];if(h===null)continue;const p=o[c];if(p.length===0)continue;if(p.start>d)break;for(;l.length>0&&l[l.length-1].endPos<=p.start;)n.produceFromScopes(l[l.length-1].scopes,l[l.length-1].endPos),l.pop();if(l.length>0?n.produceFromScopes(l[l.length-1].scopes,p.start):n.produce(r,p.start),h.retokenizeCapturedWithRuleId){const x=h.getName(a,o),g=r.contentNameScopesList.pushAttributed(x,e),E=h.getContentName(a,o),_=g.pushAttributed(E,e),y=r.push(h.retokenizeCapturedWithRuleId,p.start,-1,!1,null,g,_),k=e.createOnigString(a.substring(0,p.end));Gr(e,k,u&&p.start===0,p.start,y,n,!1,0),zr(k);continue}const m=h.getName(a,o);if(m!==null){const g=(l.length>0?l[l.length-1].scopes:r.contentNameScopesList).pushAttributed(m,e);l.push(new oo(g,p.end))}}for(;l.length>0;)n.produceFromScopes(l[l.length-1].scopes,l[l.length-1].endPos),l.pop()}var oo=class{constructor(e,t){b(this,\"scopes\");b(this,\"endPos\");this.scopes=e,this.endPos=t}};function ao(e,t,u,r,n,i,o,a){return new lo(e,t,u,r,n,i,o,a)}function $u(e,t,u,r,n){const i=Et(t,vt),o=qr.getCompiledRuleId(u,r,n.repository);for(const a of i)e.push({debugSelector:t,matcher:a.matcher,ruleId:o,grammar:n,priority:a.priority})}function vt(e,t){if(t.length<e.length)return!1;let u=0;return e.every(r=>{for(let n=u;n<t.length;n++)if(so(t[n],r))return u=n+1,!0;return!1})}function so(e,t){if(!e)return!1;if(e===t)return!0;const u=t.length;return e.length>u&&e.substr(0,u)===t&&e[u]===\".\"}var lo=class{constructor(e,t,u,r,n,i,o,a){b(this,\"_rootId\");b(this,\"_lastRuleId\");b(this,\"_ruleId2desc\");b(this,\"_includedGrammars\");b(this,\"_grammarRepository\");b(this,\"_grammar\");b(this,\"_injections\");b(this,\"_basicScopeAttributesProvider\");b(this,\"_tokenTypeMatchers\");if(this._rootScopeName=e,this.balancedBracketSelectors=i,this._onigLib=a,this._basicScopeAttributesProvider=new Xi(u,r),this._rootId=-1,this._lastRuleId=0,this._ruleId2desc=[null],this._includedGrammars={},this._grammarRepository=o,this._grammar=qu(t,null),this._injections=null,this._tokenTypeMatchers=[],n)for(const s of Object.keys(n)){const l=Et(s,vt);for(const d of l)this._tokenTypeMatchers.push({matcher:d.matcher,type:n[s]})}}get themeProvider(){return this._grammarRepository}dispose(){for(const e of this._ruleId2desc)e&&e.dispose()}createOnigScanner(e){return this._onigLib.createOnigScanner(e)}createOnigString(e){return this._onigLib.createOnigString(e)}getMetadataForScope(e){return this._basicScopeAttributesProvider.getBasicScopeAttributes(e)}_collectInjections(){const e={lookup:n=>n===this._rootScopeName?this._grammar:this.getExternalGrammar(n),injections:n=>this._grammarRepository.injections(n)},t=[],u=this._rootScopeName,r=e.lookup(u);if(r){const n=r.injections;if(n)for(let o in n)$u(t,o,n[o],this,r);const i=this._grammarRepository.injections(u);i&&i.forEach(o=>{const a=this.getExternalGrammar(o);if(a){const s=a.injectionSelector;s&&$u(t,s,a,this,a)}})}return t.sort((n,i)=>n.priority-i.priority),t}getInjections(){return this._injections===null&&(this._injections=this._collectInjections()),this._injections}registerRule(e){const t=++this._lastRuleId,u=e(t);return this._ruleId2desc[t]=u,u}getRule(e){return this._ruleId2desc[e]}getExternalGrammar(e,t){if(this._includedGrammars[e])return this._includedGrammars[e];if(this._grammarRepository){const u=this._grammarRepository.lookup(e);if(u)return this._includedGrammars[e]=qu(u,t&&t.$base),this._includedGrammars[e]}}tokenizeLine(e,t,u=0){const r=this._tokenize(e,t,!1,u);return{tokens:r.lineTokens.getResult(r.ruleStack,r.lineLength),ruleStack:r.ruleStack,stoppedEarly:r.stoppedEarly}}tokenizeLine2(e,t,u=0){const r=this._tokenize(e,t,!0,u);return{tokens:r.lineTokens.getBinaryResult(r.ruleStack,r.lineLength),ruleStack:r.ruleStack,stoppedEarly:r.stoppedEarly}}_tokenize(e,t,u,r){this._rootId===-1&&(this._rootId=qr.getCompiledRuleId(this._grammar.repository.$self,this,this._grammar.repository),this.getInjections());let n;if(!t||t===lu.NULL){n=!0;const l=this._basicScopeAttributesProvider.getDefaultAttributes(),d=this.themeProvider.getDefaults(),c=je.set(0,l.languageId,l.tokenType,null,d.fontStyle,d.foregroundId,d.backgroundId),h=this.getRule(this._rootId).getName(null,null);let p;h?p=Ke.createRootAndLookUpScopeName(h,c,this):p=Ke.createRoot(\"unknown\",c),t=new lu(null,this._rootId,-1,-1,!1,null,p,p)}else n=!1,t.reset();e=e+`\n`;const i=this.createOnigString(e),o=i.content.length,a=new fo(u,e,this._tokenTypeMatchers,this.balancedBracketSelectors),s=Gr(this,i,n,0,t,a,!0,r);return zr(i),{lineLength:o,lineTokens:a,ruleStack:s.stack,stoppedEarly:s.stoppedEarly}}};function qu(e,t){return e=Si(e),e.repository=e.repository||{},e.repository.$self={$vscodeTextmateLocation:e.$vscodeTextmateLocation,patterns:e.patterns,name:e.scopeName},e.repository.$base=t||e.repository.$self,e}var Ke=class pe{constructor(t,u,r){this.parent=t,this.scopePath=u,this.tokenAttributes=r}static fromExtension(t,u){let r=t,n=(t==null?void 0:t.scopePath)??null;for(const i of u)n=Ht.push(n,i.scopeNames),r=new pe(r,n,i.encodedTokenAttributes);return r}static createRoot(t,u){return new pe(null,new Ht(null,t),u)}static createRootAndLookUpScopeName(t,u,r){const n=r.getMetadataForScope(t),i=new Ht(null,t),o=r.themeProvider.themeMatch(i),a=pe.mergeAttributes(u,n,o);return new pe(null,i,a)}get scopeName(){return this.scopePath.scopeName}toString(){return this.getScopeNames().join(\" \")}equals(t){return pe.equals(this,t)}static equals(t,u){do{if(t===u||!t&&!u)return!0;if(!t||!u||t.scopeName!==u.scopeName||t.tokenAttributes!==u.tokenAttributes)return!1;t=t.parent,u=u.parent}while(!0)}static mergeAttributes(t,u,r){let n=-1,i=0,o=0;return r!==null&&(n=r.fontStyle,i=r.foregroundId,o=r.backgroundId),je.set(t,u.languageId,u.tokenType,null,n,i,o)}pushAttributed(t,u){if(t===null)return this;if(t.indexOf(\" \")===-1)return pe._pushAttributed(this,t,u);const r=t.split(/ /g);let n=this;for(const i of r)n=pe._pushAttributed(n,i,u);return n}static _pushAttributed(t,u,r){const n=r.getMetadataForScope(u),i=t.scopePath.push(u),o=r.themeProvider.themeMatch(i),a=pe.mergeAttributes(t.tokenAttributes,n,o);return new pe(t,i,a)}getScopeNames(){return this.scopePath.getSegments()}getExtensionIfDefined(t){var n;const u=[];let r=this;for(;r&&r!==t;)u.push({encodedTokenAttributes:r.tokenAttributes,scopeNames:r.scopePath.getExtensionIfDefined(((n=r.parent)==null?void 0:n.scopePath)??null)}),r=r.parent;return r===t?u.reverse():void 0}},ae,lu=(ae=class{constructor(t,u,r,n,i,o,a,s){b(this,\"_stackElementBrand\");b(this,\"_enterPos\");b(this,\"_anchorPos\");b(this,\"depth\");this.parent=t,this.ruleId=u,this.beginRuleCapturedEOL=i,this.endRule=o,this.nameScopesList=a,this.contentNameScopesList=s,this.depth=this.parent?this.parent.depth+1:1,this._enterPos=r,this._anchorPos=n}equals(t){return t===null?!1:ae._equals(this,t)}static _equals(t,u){return t===u?!0:this._structuralEquals(t,u)?Ke.equals(t.contentNameScopesList,u.contentNameScopesList):!1}static _structuralEquals(t,u){do{if(t===u||!t&&!u)return!0;if(!t||!u||t.depth!==u.depth||t.ruleId!==u.ruleId||t.endRule!==u.endRule)return!1;t=t.parent,u=u.parent}while(!0)}clone(){return this}static _reset(t){for(;t;)t._enterPos=-1,t._anchorPos=-1,t=t.parent}reset(){ae._reset(this)}pop(){return this.parent}safePop(){return this.parent?this.parent:this}push(t,u,r,n,i,o,a){return new ae(this,t,u,r,n,i,o,a)}getEnterPos(){return this._enterPos}getAnchorPos(){return this._anchorPos}getRule(t){return t.getRule(this.ruleId)}toString(){const t=[];return this._writeString(t,0),\"[\"+t.join(\",\")+\"]\"}_writeString(t,u){var r,n;return this.parent&&(u=this.parent._writeString(t,u)),t[u++]=`(${this.ruleId}, ${(r=this.nameScopesList)==null?void 0:r.toString()}, ${(n=this.contentNameScopesList)==null?void 0:n.toString()})`,u}withContentNameScopesList(t){return this.contentNameScopesList===t?this:this.parent.push(this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,this.endRule,this.nameScopesList,t)}withEndRule(t){return this.endRule===t?this:new ae(this.parent,this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,t,this.nameScopesList,this.contentNameScopesList)}hasSameRuleAs(t){let u=this;for(;u&&u._enterPos===t._enterPos;){if(u.ruleId===t.ruleId)return!0;u=u.parent}return!1}toStateStackFrame(){var t,u,r;return{ruleId:this.ruleId,beginRuleCapturedEOL:this.beginRuleCapturedEOL,endRule:this.endRule,nameScopesList:((u=this.nameScopesList)==null?void 0:u.getExtensionIfDefined(((t=this.parent)==null?void 0:t.nameScopesList)??null))??[],contentNameScopesList:((r=this.contentNameScopesList)==null?void 0:r.getExtensionIfDefined(this.nameScopesList))??[]}}static pushFrame(t,u){const r=Ke.fromExtension((t==null?void 0:t.nameScopesList)??null,u.nameScopesList);return new ae(t,u.ruleId,u.enterPos??-1,u.anchorPos??-1,u.beginRuleCapturedEOL,u.endRule,r,Ke.fromExtension(r,u.contentNameScopesList))}},b(ae,\"NULL\",new ae(null,0,0,0,!1,null,null,null)),ae),co=class{constructor(e,t){b(this,\"balancedBracketScopes\");b(this,\"unbalancedBracketScopes\");b(this,\"allowAny\",!1);this.balancedBracketScopes=e.flatMap(u=>u===\"*\"?(this.allowAny=!0,[]):Et(u,vt).map(r=>r.matcher)),this.unbalancedBracketScopes=t.flatMap(u=>Et(u,vt).map(r=>r.matcher))}get matchesAlways(){return this.allowAny&&this.unbalancedBracketScopes.length===0}get matchesNever(){return this.balancedBracketScopes.length===0&&!this.allowAny}match(e){for(const t of this.unbalancedBracketScopes)if(t(e))return!1;for(const t of this.balancedBracketScopes)if(t(e))return!0;return this.allowAny}},fo=class{constructor(e,t,u,r){b(this,\"_emitBinaryTokens\");b(this,\"_lineText\");b(this,\"_tokens\");b(this,\"_binaryTokens\");b(this,\"_lastTokenEndIndex\");b(this,\"_tokenTypeOverrides\");this.balancedBracketSelectors=r,this._emitBinaryTokens=e,this._tokenTypeOverrides=u,this._lineText=null,this._tokens=[],this._binaryTokens=[],this._lastTokenEndIndex=0}produce(e,t){this.produceFromScopes(e.contentNameScopesList,t)}produceFromScopes(e,t){var r;if(this._lastTokenEndIndex>=t)return;if(this._emitBinaryTokens){let n=(e==null?void 0:e.tokenAttributes)??0,i=!1;if((r=this.balancedBracketSelectors)!=null&&r.matchesAlways&&(i=!0),this._tokenTypeOverrides.length>0||this.balancedBracketSelectors&&!this.balancedBracketSelectors.matchesAlways&&!this.balancedBracketSelectors.matchesNever){const o=(e==null?void 0:e.getScopeNames())??[];for(const a of this._tokenTypeOverrides)a.matcher(o)&&(n=je.set(n,0,a.type,null,-1,0,0));this.balancedBracketSelectors&&(i=this.balancedBracketSelectors.match(o))}if(i&&(n=je.set(n,0,8,i,-1,0,0)),this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-1]===n){this._lastTokenEndIndex=t;return}this._binaryTokens.push(this._lastTokenEndIndex),this._binaryTokens.push(n),this._lastTokenEndIndex=t;return}const u=(e==null?void 0:e.getScopeNames())??[];this._tokens.push({startIndex:this._lastTokenEndIndex,endIndex:t,scopes:u}),this._lastTokenEndIndex=t}getResult(e,t){return this._tokens.length>0&&this._tokens[this._tokens.length-1].startIndex===t-1&&this._tokens.pop(),this._tokens.length===0&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._tokens[this._tokens.length-1].startIndex=0),this._tokens}getBinaryResult(e,t){this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-2]===t-1&&(this._binaryTokens.pop(),this._binaryTokens.pop()),this._binaryTokens.length===0&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._binaryTokens[this._binaryTokens.length-2]=0);const u=new Uint32Array(this._binaryTokens.length);for(let r=0,n=this._binaryTokens.length;r<n;r++)u[r]=this._binaryTokens[r];return u}},po=class{constructor(e,t){b(this,\"_grammars\",new Map);b(this,\"_rawGrammars\",new Map);b(this,\"_injectionGrammars\",new Map);b(this,\"_theme\");this._onigLib=t,this._theme=e}dispose(){for(const e of this._grammars.values())e.dispose()}setTheme(e){this._theme=e}getColorMap(){return this._theme.getColorMap()}addGrammar(e,t){this._rawGrammars.set(e.scopeName,e),t&&this._injectionGrammars.set(e.scopeName,t)}lookup(e){return this._rawGrammars.get(e)}injections(e){return this._injectionGrammars.get(e)}getDefaults(){return this._theme.getDefaults()}themeMatch(e){return this._theme.match(e)}grammarForScopeName(e,t,u,r,n){if(!this._grammars.has(e)){let i=this._rawGrammars.get(e);if(!i)return null;this._grammars.set(e,ao(e,i,t,u,r,n,this,this._onigLib))}return this._grammars.get(e)}},mo=class{constructor(t){b(this,\"_options\");b(this,\"_syncRegistry\");b(this,\"_ensureGrammarCache\");this._options=t,this._syncRegistry=new po(xt.createFromRawTheme(t.theme,t.colorMap),t.onigLib),this._ensureGrammarCache=new Map}dispose(){this._syncRegistry.dispose()}setTheme(t,u){this._syncRegistry.setTheme(xt.createFromRawTheme(t,u))}getColorMap(){return this._syncRegistry.getColorMap()}loadGrammarWithEmbeddedLanguages(t,u,r){return this.loadGrammarWithConfiguration(t,u,{embeddedLanguages:r})}loadGrammarWithConfiguration(t,u,r){return this._loadGrammar(t,u,r.embeddedLanguages,r.tokenTypes,new co(r.balancedBracketSelectors||[],r.unbalancedBracketSelectors||[]))}loadGrammar(t){return this._loadGrammar(t,0,null,null,null)}_loadGrammar(t,u,r,n,i){const o=new $i(this._syncRegistry,t);for(;o.Q.length>0;)o.Q.map(a=>this._loadSingleGrammar(a.scopeName)),o.processQueue();return this._grammarForScopeName(t,u,r,n,i)}_loadSingleGrammar(t){this._ensureGrammarCache.has(t)||(this._doLoadSingleGrammar(t),this._ensureGrammarCache.set(t,!0))}_doLoadSingleGrammar(t){const u=this._options.loadGrammar(t);if(u){const r=typeof this._options.getInjections==\"function\"?this._options.getInjections(t):void 0;this._syncRegistry.addGrammar(u,r)}}addGrammar(t,u=[],r=0,n=null){return this._syncRegistry.addGrammar(t,u),this._grammarForScopeName(t.scopeName,r,n)}_grammarForScopeName(t,u=0,r=null,n=null,i=null){return this._syncRegistry.grammarForScopeName(t,u,r,n,i)}},cu=lu.NULL;const ho=[\"area\",\"base\",\"basefont\",\"bgsound\",\"br\",\"col\",\"command\",\"embed\",\"frame\",\"hr\",\"image\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"];class at{constructor(t,u,r){this.normal=u,this.property=t,r&&(this.space=r)}}at.prototype.normal={};at.prototype.property={};at.prototype.space=void 0;function Wr(e,t){const u={},r={};for(const n of e)Object.assign(u,n.property),Object.assign(r,n.normal);return new at(u,r,t)}function du(e){return e.toLowerCase()}class ue{constructor(t,u){this.attribute=u,this.property=t}}ue.prototype.attribute=\"\";ue.prototype.booleanish=!1;ue.prototype.boolean=!1;ue.prototype.commaOrSpaceSeparated=!1;ue.prototype.commaSeparated=!1;ue.prototype.defined=!1;ue.prototype.mustUseProperty=!1;ue.prototype.number=!1;ue.prototype.overloadedBoolean=!1;ue.prototype.property=\"\";ue.prototype.spaceSeparated=!1;ue.prototype.space=void 0;let _o=0;const P=Pe(),$=Pe(),fu=Pe(),A=Pe(),M=Pe(),Ve=Pe(),ne=Pe();function Pe(){return 2**++_o}const pu=Object.freeze(Object.defineProperty({__proto__:null,boolean:P,booleanish:$,commaOrSpaceSeparated:ne,commaSeparated:Ve,number:A,overloadedBoolean:fu,spaceSeparated:M},Symbol.toStringTag,{value:\"Module\"})),Zt=Object.keys(pu);class Eu extends ue{constructor(t,u,r,n){let i=-1;if(super(t,u),Uu(this,\"space\",n),typeof r==\"number\")for(;++i<Zt.length;){const o=Zt[i];Uu(this,Zt[i],(r&pu[o])===pu[o])}}}Eu.prototype.defined=!0;function Uu(e,t,u){u&&(e[t]=u)}function Ue(e){const t={},u={};for(const[r,n]of Object.entries(e.properties)){const i=new Eu(r,e.transform(e.attributes||{},r),n,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(i.mustUseProperty=!0),t[r]=i,u[du(r)]=r,u[du(i.attribute)]=r}return new at(t,u,e.space)}const Zr=Ue({properties:{ariaActiveDescendant:null,ariaAtomic:$,ariaAutoComplete:null,ariaBusy:$,ariaChecked:$,ariaColCount:A,ariaColIndex:A,ariaColSpan:A,ariaControls:M,ariaCurrent:null,ariaDescribedBy:M,ariaDetails:null,ariaDisabled:$,ariaDropEffect:M,ariaErrorMessage:null,ariaExpanded:$,ariaFlowTo:M,ariaGrabbed:$,ariaHasPopup:null,ariaHidden:$,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:M,ariaLevel:A,ariaLive:null,ariaModal:$,ariaMultiLine:$,ariaMultiSelectable:$,ariaOrientation:null,ariaOwns:M,ariaPlaceholder:null,ariaPosInSet:A,ariaPressed:$,ariaReadOnly:$,ariaRelevant:null,ariaRequired:$,ariaRoleDescription:M,ariaRowCount:A,ariaRowIndex:A,ariaRowSpan:A,ariaSelected:$,ariaSetSize:A,ariaSort:null,ariaValueMax:A,ariaValueMin:A,ariaValueNow:A,ariaValueText:null,role:null},transform(e,t){return t===\"role\"?t:\"aria-\"+t.slice(4).toLowerCase()}});function Jr(e,t){return t in e?e[t]:t}function Kr(e,t){return Jr(e,t.toLowerCase())}const go=Ue({attributes:{acceptcharset:\"accept-charset\",classname:\"class\",htmlfor:\"for\",httpequiv:\"http-equiv\"},mustUseProperty:[\"checked\",\"multiple\",\"muted\",\"selected\"],properties:{abbr:null,accept:Ve,acceptCharset:M,accessKey:M,action:null,allow:null,allowFullScreen:P,allowPaymentRequest:P,allowUserMedia:P,alt:null,as:null,async:P,autoCapitalize:null,autoComplete:M,autoFocus:P,autoPlay:P,blocking:M,capture:null,charSet:null,checked:P,cite:null,className:M,cols:A,colSpan:null,content:null,contentEditable:$,controls:P,controlsList:M,coords:A|Ve,crossOrigin:null,data:null,dateTime:null,decoding:null,default:P,defer:P,dir:null,dirName:null,disabled:P,download:fu,draggable:$,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:P,formTarget:null,headers:M,height:A,hidden:fu,high:A,href:null,hrefLang:null,htmlFor:M,httpEquiv:M,id:null,imageSizes:null,imageSrcSet:null,inert:P,inputMode:null,integrity:null,is:null,isMap:P,itemId:null,itemProp:M,itemRef:M,itemScope:P,itemType:M,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:P,low:A,manifest:null,max:null,maxLength:A,media:null,method:null,min:null,minLength:A,multiple:P,muted:P,name:null,nonce:null,noModule:P,noValidate:P,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:P,optimum:A,pattern:null,ping:M,placeholder:null,playsInline:P,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:P,referrerPolicy:null,rel:M,required:P,reversed:P,rows:A,rowSpan:A,sandbox:M,scope:null,scoped:P,seamless:P,selected:P,shadowRootClonable:P,shadowRootDelegatesFocus:P,shadowRootMode:null,shape:null,size:A,sizes:null,slot:null,span:A,spellCheck:$,src:null,srcDoc:null,srcLang:null,srcSet:null,start:A,step:null,style:null,tabIndex:A,target:null,title:null,translate:null,type:null,typeMustMatch:P,useMap:null,value:$,width:A,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:M,axis:null,background:null,bgColor:null,border:A,borderColor:null,bottomMargin:A,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:P,declare:P,event:null,face:null,frame:null,frameBorder:null,hSpace:A,leftMargin:A,link:null,longDesc:null,lowSrc:null,marginHeight:A,marginWidth:A,noResize:P,noHref:P,noShade:P,noWrap:P,object:null,profile:null,prompt:null,rev:null,rightMargin:A,rules:null,scheme:null,scrolling:$,standby:null,summary:null,text:null,topMargin:A,valueType:null,version:null,vAlign:null,vLink:null,vSpace:A,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:P,disableRemotePlayback:P,prefix:null,property:null,results:A,security:null,unselectable:null},space:\"html\",transform:Kr}),bo=Ue({attributes:{accentHeight:\"accent-height\",alignmentBaseline:\"alignment-baseline\",arabicForm:\"arabic-form\",baselineShift:\"baseline-shift\",capHeight:\"cap-height\",className:\"class\",clipPath:\"clip-path\",clipRule:\"clip-rule\",colorInterpolation:\"color-interpolation\",colorInterpolationFilters:\"color-interpolation-filters\",colorProfile:\"color-profile\",colorRendering:\"color-rendering\",crossOrigin:\"crossorigin\",dataType:\"datatype\",dominantBaseline:\"dominant-baseline\",enableBackground:\"enable-background\",fillOpacity:\"fill-opacity\",fillRule:\"fill-rule\",floodColor:\"flood-color\",floodOpacity:\"flood-opacity\",fontFamily:\"font-family\",fontSize:\"font-size\",fontSizeAdjust:\"font-size-adjust\",fontStretch:\"font-stretch\",fontStyle:\"font-style\",fontVariant:\"font-variant\",fontWeight:\"font-weight\",glyphName:\"glyph-name\",glyphOrientationHorizontal:\"glyph-orientation-horizontal\",glyphOrientationVertical:\"glyph-orientation-vertical\",hrefLang:\"hreflang\",horizAdvX:\"horiz-adv-x\",horizOriginX:\"horiz-origin-x\",horizOriginY:\"horiz-origin-y\",imageRendering:\"image-rendering\",letterSpacing:\"letter-spacing\",lightingColor:\"lighting-color\",markerEnd:\"marker-end\",markerMid:\"marker-mid\",markerStart:\"marker-start\",navDown:\"nav-down\",navDownLeft:\"nav-down-left\",navDownRight:\"nav-down-right\",navLeft:\"nav-left\",navNext:\"nav-next\",navPrev:\"nav-prev\",navRight:\"nav-right\",navUp:\"nav-up\",navUpLeft:\"nav-up-left\",navUpRight:\"nav-up-right\",onAbort:\"onabort\",onActivate:\"onactivate\",onAfterPrint:\"onafterprint\",onBeforePrint:\"onbeforeprint\",onBegin:\"onbegin\",onCancel:\"oncancel\",onCanPlay:\"oncanplay\",onCanPlayThrough:\"oncanplaythrough\",onChange:\"onchange\",onClick:\"onclick\",onClose:\"onclose\",onCopy:\"oncopy\",onCueChange:\"oncuechange\",onCut:\"oncut\",onDblClick:\"ondblclick\",onDrag:\"ondrag\",onDragEnd:\"ondragend\",onDragEnter:\"ondragenter\",onDragExit:\"ondragexit\",onDragLeave:\"ondragleave\",onDragOver:\"ondragover\",onDragStart:\"ondragstart\",onDrop:\"ondrop\",onDurationChange:\"ondurationchange\",onEmptied:\"onemptied\",onEnd:\"onend\",onEnded:\"onended\",onError:\"onerror\",onFocus:\"onfocus\",onFocusIn:\"onfocusin\",onFocusOut:\"onfocusout\",onHashChange:\"onhashchange\",onInput:\"oninput\",onInvalid:\"oninvalid\",onKeyDown:\"onkeydown\",onKeyPress:\"onkeypress\",onKeyUp:\"onkeyup\",onLoad:\"onload\",onLoadedData:\"onloadeddata\",onLoadedMetadata:\"onloadedmetadata\",onLoadStart:\"onloadstart\",onMessage:\"onmessage\",onMouseDown:\"onmousedown\",onMouseEnter:\"onmouseenter\",onMouseLeave:\"onmouseleave\",onMouseMove:\"onmousemove\",onMouseOut:\"onmouseout\",onMouseOver:\"onmouseover\",onMouseUp:\"onmouseup\",onMouseWheel:\"onmousewheel\",onOffline:\"onoffline\",onOnline:\"ononline\",onPageHide:\"onpagehide\",onPageShow:\"onpageshow\",onPaste:\"onpaste\",onPause:\"onpause\",onPlay:\"onplay\",onPlaying:\"onplaying\",onPopState:\"onpopstate\",onProgress:\"onprogress\",onRateChange:\"onratechange\",onRepeat:\"onrepeat\",onReset:\"onreset\",onResize:\"onresize\",onScroll:\"onscroll\",onSeeked:\"onseeked\",onSeeking:\"onseeking\",onSelect:\"onselect\",onShow:\"onshow\",onStalled:\"onstalled\",onStorage:\"onstorage\",onSubmit:\"onsubmit\",onSuspend:\"onsuspend\",onTimeUpdate:\"ontimeupdate\",onToggle:\"ontoggle\",onUnload:\"onunload\",onVolumeChange:\"onvolumechange\",onWaiting:\"onwaiting\",onZoom:\"onzoom\",overlinePosition:\"overline-position\",overlineThickness:\"overline-thickness\",paintOrder:\"paint-order\",panose1:\"panose-1\",pointerEvents:\"pointer-events\",referrerPolicy:\"referrerpolicy\",renderingIntent:\"rendering-intent\",shapeRendering:\"shape-rendering\",stopColor:\"stop-color\",stopOpacity:\"stop-opacity\",strikethroughPosition:\"strikethrough-position\",strikethroughThickness:\"strikethrough-thickness\",strokeDashArray:\"stroke-dasharray\",strokeDashOffset:\"stroke-dashoffset\",strokeLineCap:\"stroke-linecap\",strokeLineJoin:\"stroke-linejoin\",strokeMiterLimit:\"stroke-miterlimit\",strokeOpacity:\"stroke-opacity\",strokeWidth:\"stroke-width\",tabIndex:\"tabindex\",textAnchor:\"text-anchor\",textDecoration:\"text-decoration\",textRendering:\"text-rendering\",transformOrigin:\"transform-origin\",typeOf:\"typeof\",underlinePosition:\"underline-position\",underlineThickness:\"underline-thickness\",unicodeBidi:\"unicode-bidi\",unicodeRange:\"unicode-range\",unitsPerEm:\"units-per-em\",vAlphabetic:\"v-alphabetic\",vHanging:\"v-hanging\",vIdeographic:\"v-ideographic\",vMathematical:\"v-mathematical\",vectorEffect:\"vector-effect\",vertAdvY:\"vert-adv-y\",vertOriginX:\"vert-origin-x\",vertOriginY:\"vert-origin-y\",wordSpacing:\"word-spacing\",writingMode:\"writing-mode\",xHeight:\"x-height\",playbackOrder:\"playbackorder\",timelineBegin:\"timelinebegin\"},properties:{about:ne,accentHeight:A,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:A,amplitude:A,arabicForm:null,ascent:A,attributeName:null,attributeType:null,azimuth:A,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:A,by:null,calcMode:null,capHeight:A,className:M,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:A,diffuseConstant:A,direction:null,display:null,dur:null,divisor:A,dominantBaseline:null,download:P,dx:null,dy:null,edgeMode:null,editable:null,elevation:A,enableBackground:null,end:null,event:null,exponent:A,externalResourcesRequired:null,fill:null,fillOpacity:A,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:Ve,g2:Ve,glyphName:Ve,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:A,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:A,horizOriginX:A,horizOriginY:A,id:null,ideographic:A,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:A,k:A,k1:A,k2:A,k3:A,k4:A,kernelMatrix:ne,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:A,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:A,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:A,overlineThickness:A,paintOrder:null,panose1:null,path:null,pathLength:A,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:M,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:A,pointsAtY:A,pointsAtZ:A,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:ne,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:ne,rev:ne,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:ne,requiredFeatures:ne,requiredFonts:ne,requiredFormats:ne,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:A,specularExponent:A,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:A,strikethroughThickness:A,string:null,stroke:null,strokeDashArray:ne,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:A,strokeOpacity:A,strokeWidth:null,style:null,surfaceScale:A,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:ne,tabIndex:A,tableValues:null,target:null,targetX:A,targetY:A,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:ne,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:A,underlineThickness:A,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:A,values:null,vAlphabetic:A,vMathematical:A,vectorEffect:null,vHanging:A,vIdeographic:A,version:null,vertAdvY:A,vertOriginX:A,vertOriginY:A,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:A,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:\"svg\",transform:Jr}),Yr=Ue({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:\"xlink\",transform(e,t){return\"xlink:\"+t.slice(5).toLowerCase()}}),Qr=Ue({attributes:{xmlnsxlink:\"xmlns:xlink\"},properties:{xmlnsXLink:null,xmlns:null},space:\"xmlns\",transform:Kr}),Xr=Ue({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:\"xml\",transform(e,t){return\"xml:\"+t.slice(3).toLowerCase()}}),yo=/[A-Z]/g,Gu=/-[a-z]/g,xo=/^data[-\\w.:]+$/i;function Eo(e,t){const u=du(t);let r=t,n=ue;if(u in e.normal)return e.property[e.normal[u]];if(u.length>4&&u.slice(0,4)===\"data\"&&xo.test(t)){if(t.charAt(4)===\"-\"){const i=t.slice(5).replace(Gu,Ao);r=\"data\"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=t.slice(4);if(!Gu.test(i)){let o=i.replace(yo,ko);o.charAt(0)!==\"-\"&&(o=\"-\"+o),t=\"data\"+o}}n=Eu}return new n(r,t)}function ko(e){return\"-\"+e.toLowerCase()}function Ao(e){return e.charAt(1).toUpperCase()}const vo=Wr([Zr,go,Yr,Qr,Xr],\"html\"),en=Wr([Zr,bo,Yr,Qr,Xr],\"svg\"),Hu={}.hasOwnProperty;function Co(e,t){const u=t||{};function r(n,...i){let o=r.invalid;const a=r.handlers;if(n&&Hu.call(n,e)){const s=String(n[e]);o=Hu.call(a,s)?a[s]:r.unknown}if(o)return o.call(this,n,...i)}return r.handlers=u.handlers||{},r.invalid=u.invalid,r.unknown=u.unknown,r}const Do=/[\"&'<>`]/g,wo=/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g,So=/[\\x01-\\t\\v\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g,To=/[|\\\\{}()[\\]^$+*?.]/g,Wu=new WeakMap;function Ro(e,t){if(e=e.replace(t.subset?Lo(t.subset):Do,r),t.subset||t.escapeOnly)return e;return e.replace(wo,u).replace(So,r);function u(n,i,o){return t.format((n.charCodeAt(0)-55296)*1024+n.charCodeAt(1)-56320+65536,o.charCodeAt(i+2),t)}function r(n,i,o){return t.format(n.charCodeAt(0),o.charCodeAt(i+1),t)}}function Lo(e){let t=Wu.get(e);return t||(t=Po(e),Wu.set(e,t)),t}function Po(e){const t=[];let u=-1;for(;++u<e.length;)t.push(e[u].replace(To,\"\\\\$&\"));return new RegExp(\"(?:\"+t.join(\"|\")+\")\",\"g\")}const Io=/[\\dA-Fa-f]/;function Oo(e,t,u){const r=\"&#x\"+e.toString(16).toUpperCase();return u&&t&&!Io.test(String.fromCharCode(t))?r:r+\";\"}const Fo=/\\d/;function Mo(e,t,u){const r=\"&#\"+String(e);return u&&t&&!Fo.test(String.fromCharCode(t))?r:r+\";\"}const No=[\"AElig\",\"AMP\",\"Aacute\",\"Acirc\",\"Agrave\",\"Aring\",\"Atilde\",\"Auml\",\"COPY\",\"Ccedil\",\"ETH\",\"Eacute\",\"Ecirc\",\"Egrave\",\"Euml\",\"GT\",\"Iacute\",\"Icirc\",\"Igrave\",\"Iuml\",\"LT\",\"Ntilde\",\"Oacute\",\"Ocirc\",\"Ograve\",\"Oslash\",\"Otilde\",\"Ouml\",\"QUOT\",\"REG\",\"THORN\",\"Uacute\",\"Ucirc\",\"Ugrave\",\"Uuml\",\"Yacute\",\"aacute\",\"acirc\",\"acute\",\"aelig\",\"agrave\",\"amp\",\"aring\",\"atilde\",\"auml\",\"brvbar\",\"ccedil\",\"cedil\",\"cent\",\"copy\",\"curren\",\"deg\",\"divide\",\"eacute\",\"ecirc\",\"egrave\",\"eth\",\"euml\",\"frac12\",\"frac14\",\"frac34\",\"gt\",\"iacute\",\"icirc\",\"iexcl\",\"igrave\",\"iquest\",\"iuml\",\"laquo\",\"lt\",\"macr\",\"micro\",\"middot\",\"nbsp\",\"not\",\"ntilde\",\"oacute\",\"ocirc\",\"ograve\",\"ordf\",\"ordm\",\"oslash\",\"otilde\",\"ouml\",\"para\",\"plusmn\",\"pound\",\"quot\",\"raquo\",\"reg\",\"sect\",\"shy\",\"sup1\",\"sup2\",\"sup3\",\"szlig\",\"thorn\",\"times\",\"uacute\",\"ucirc\",\"ugrave\",\"uml\",\"uuml\",\"yacute\",\"yen\",\"yuml\"],Jt={nbsp:\" \",iexcl:\"¡\",cent:\"¢\",pound:\"£\",curren:\"¤\",yen:\"¥\",brvbar:\"¦\",sect:\"§\",uml:\"¨\",copy:\"©\",ordf:\"ª\",laquo:\"«\",not:\"¬\",shy:\"­\",reg:\"®\",macr:\"¯\",deg:\"°\",plusmn:\"±\",sup2:\"²\",sup3:\"³\",acute:\"´\",micro:\"µ\",para:\"¶\",middot:\"·\",cedil:\"¸\",sup1:\"¹\",ordm:\"º\",raquo:\"»\",frac14:\"¼\",frac12:\"½\",frac34:\"¾\",iquest:\"¿\",Agrave:\"À\",Aacute:\"Á\",Acirc:\"Â\",Atilde:\"Ã\",Auml:\"Ä\",Aring:\"Å\",AElig:\"Æ\",Ccedil:\"Ç\",Egrave:\"È\",Eacute:\"É\",Ecirc:\"Ê\",Euml:\"Ë\",Igrave:\"Ì\",Iacute:\"Í\",Icirc:\"Î\",Iuml:\"Ï\",ETH:\"Ð\",Ntilde:\"Ñ\",Ograve:\"Ò\",Oacute:\"Ó\",Ocirc:\"Ô\",Otilde:\"Õ\",Ouml:\"Ö\",times:\"×\",Oslash:\"Ø\",Ugrave:\"Ù\",Uacute:\"Ú\",Ucirc:\"Û\",Uuml:\"Ü\",Yacute:\"Ý\",THORN:\"Þ\",szlig:\"ß\",agrave:\"à\",aacute:\"á\",acirc:\"â\",atilde:\"ã\",auml:\"ä\",aring:\"å\",aelig:\"æ\",ccedil:\"ç\",egrave:\"è\",eacute:\"é\",ecirc:\"ê\",euml:\"ë\",igrave:\"ì\",iacute:\"í\",icirc:\"î\",iuml:\"ï\",eth:\"ð\",ntilde:\"ñ\",ograve:\"ò\",oacute:\"ó\",ocirc:\"ô\",otilde:\"õ\",ouml:\"ö\",divide:\"÷\",oslash:\"ø\",ugrave:\"ù\",uacute:\"ú\",ucirc:\"û\",uuml:\"ü\",yacute:\"ý\",thorn:\"þ\",yuml:\"ÿ\",fnof:\"ƒ\",Alpha:\"Α\",Beta:\"Β\",Gamma:\"Γ\",Delta:\"Δ\",Epsilon:\"Ε\",Zeta:\"Ζ\",Eta:\"Η\",Theta:\"Θ\",Iota:\"Ι\",Kappa:\"Κ\",Lambda:\"Λ\",Mu:\"Μ\",Nu:\"Ν\",Xi:\"Ξ\",Omicron:\"Ο\",Pi:\"Π\",Rho:\"Ρ\",Sigma:\"Σ\",Tau:\"Τ\",Upsilon:\"Υ\",Phi:\"Φ\",Chi:\"Χ\",Psi:\"Ψ\",Omega:\"Ω\",alpha:\"α\",beta:\"β\",gamma:\"γ\",delta:\"δ\",epsilon:\"ε\",zeta:\"ζ\",eta:\"η\",theta:\"θ\",iota:\"ι\",kappa:\"κ\",lambda:\"λ\",mu:\"μ\",nu:\"ν\",xi:\"ξ\",omicron:\"ο\",pi:\"π\",rho:\"ρ\",sigmaf:\"ς\",sigma:\"σ\",tau:\"τ\",upsilon:\"υ\",phi:\"φ\",chi:\"χ\",psi:\"ψ\",omega:\"ω\",thetasym:\"ϑ\",upsih:\"ϒ\",piv:\"ϖ\",bull:\"•\",hellip:\"…\",prime:\"′\",Prime:\"″\",oline:\"‾\",frasl:\"⁄\",weierp:\"℘\",image:\"ℑ\",real:\"ℜ\",trade:\"™\",alefsym:\"ℵ\",larr:\"←\",uarr:\"↑\",rarr:\"→\",darr:\"↓\",harr:\"↔\",crarr:\"↵\",lArr:\"⇐\",uArr:\"⇑\",rArr:\"⇒\",dArr:\"⇓\",hArr:\"⇔\",forall:\"∀\",part:\"∂\",exist:\"∃\",empty:\"∅\",nabla:\"∇\",isin:\"∈\",notin:\"∉\",ni:\"∋\",prod:\"∏\",sum:\"∑\",minus:\"−\",lowast:\"∗\",radic:\"√\",prop:\"∝\",infin:\"∞\",ang:\"∠\",and:\"∧\",or:\"∨\",cap:\"∩\",cup:\"∪\",int:\"∫\",there4:\"∴\",sim:\"∼\",cong:\"≅\",asymp:\"≈\",ne:\"≠\",equiv:\"≡\",le:\"≤\",ge:\"≥\",sub:\"⊂\",sup:\"⊃\",nsub:\"⊄\",sube:\"⊆\",supe:\"⊇\",oplus:\"⊕\",otimes:\"⊗\",perp:\"⊥\",sdot:\"⋅\",lceil:\"⌈\",rceil:\"⌉\",lfloor:\"⌊\",rfloor:\"⌋\",lang:\"〈\",rang:\"〉\",loz:\"◊\",spades:\"♠\",clubs:\"♣\",hearts:\"♥\",diams:\"♦\",quot:'\"',amp:\"&\",lt:\"<\",gt:\">\",OElig:\"Œ\",oelig:\"œ\",Scaron:\"Š\",scaron:\"š\",Yuml:\"Ÿ\",circ:\"ˆ\",tilde:\"˜\",ensp:\" \",emsp:\" \",thinsp:\" \",zwnj:\"‌\",zwj:\"‍\",lrm:\"‎\",rlm:\"‏\",ndash:\"–\",mdash:\"—\",lsquo:\"‘\",rsquo:\"’\",sbquo:\"‚\",ldquo:\"“\",rdquo:\"”\",bdquo:\"„\",dagger:\"†\",Dagger:\"‡\",permil:\"‰\",lsaquo:\"‹\",rsaquo:\"›\",euro:\"€\"},Vo=[\"cent\",\"copy\",\"divide\",\"gt\",\"lt\",\"not\",\"para\",\"times\"],tn={}.hasOwnProperty,mu={};let pt;for(pt in Jt)tn.call(Jt,pt)&&(mu[Jt[pt]]=pt);const Bo=/[^\\dA-Za-z]/;function zo(e,t,u,r){const n=String.fromCharCode(e);if(tn.call(mu,n)){const i=mu[n],o=\"&\"+i;return u&&No.includes(i)&&!Vo.includes(i)&&(!r||t&&t!==61&&Bo.test(String.fromCharCode(t)))?o:o+\";\"}return\"\"}function jo(e,t,u){let r=Oo(e,t,u.omitOptionalSemicolons),n;if((u.useNamedReferences||u.useShortestReferences)&&(n=zo(e,t,u.omitOptionalSemicolons,u.attribute)),(u.useShortestReferences||!n)&&u.useShortestReferences){const i=Mo(e,t,u.omitOptionalSemicolons);i.length<r.length&&(r=i)}return n&&(!u.useShortestReferences||n.length<r.length)?n:r}function Be(e,t){return Ro(e,Object.assign({format:jo},t))}const $o=/^>|^->|<!--|-->|--!>|<!-$/g,qo=[\">\"],Uo=[\"<\",\">\"];function Go(e,t,u,r){return r.settings.bogusComments?\"<?\"+Be(e.value,Object.assign({},r.settings.characterReferences,{subset:qo}))+\">\":\"<!--\"+e.value.replace($o,n)+\"-->\";function n(i){return Be(i,Object.assign({},r.settings.characterReferences,{subset:Uo}))}}function Ho(e,t,u,r){return\"<!\"+(r.settings.upperDoctype?\"DOCTYPE\":\"doctype\")+(r.settings.tightDoctype?\"\":\" \")+\"html>\"}function Zu(e,t){const u=String(e);if(typeof t!=\"string\")throw new TypeError(\"Expected character\");let r=0,n=u.indexOf(t);for(;n!==-1;)r++,n=u.indexOf(t,n+t.length);return r}function Wo(e,t){const u=t||{};return(e[e.length-1]===\"\"?[...e,\"\"]:e).join((u.padRight?\" \":\"\")+\",\"+(u.padLeft===!1?\"\":\" \")).trim()}function Zo(e){return e.join(\" \").trim()}const Jo=/[ \\t\\n\\f\\r]/g;function ku(e){return typeof e==\"object\"?e.type===\"text\"?Ju(e.value):!1:Ju(e)}function Ju(e){return e.replace(Jo,\"\")===\"\"}const H=rn(1),un=rn(-1),Ko=[];function rn(e){return t;function t(u,r,n){const i=u?u.children:Ko;let o=(r||0)+e,a=i[o];if(!n)for(;a&&ku(a);)o+=e,a=i[o];return a}}const Yo={}.hasOwnProperty;function nn(e){return t;function t(u,r,n){return Yo.call(e,u.tagName)&&e[u.tagName](u,r,n)}}const Au=nn({body:Xo,caption:Kt,colgroup:Kt,dd:ra,dt:ua,head:Kt,html:Qo,li:ta,optgroup:na,option:ia,p:ea,rp:Ku,rt:Ku,tbody:aa,td:Yu,tfoot:sa,th:Yu,thead:oa,tr:la});function Kt(e,t,u){const r=H(u,t,!0);return!r||r.type!==\"comment\"&&!(r.type===\"text\"&&ku(r.value.charAt(0)))}function Qo(e,t,u){const r=H(u,t);return!r||r.type!==\"comment\"}function Xo(e,t,u){const r=H(u,t);return!r||r.type!==\"comment\"}function ea(e,t,u){const r=H(u,t);return r?r.type===\"element\"&&(r.tagName===\"address\"||r.tagName===\"article\"||r.tagName===\"aside\"||r.tagName===\"blockquote\"||r.tagName===\"details\"||r.tagName===\"div\"||r.tagName===\"dl\"||r.tagName===\"fieldset\"||r.tagName===\"figcaption\"||r.tagName===\"figure\"||r.tagName===\"footer\"||r.tagName===\"form\"||r.tagName===\"h1\"||r.tagName===\"h2\"||r.tagName===\"h3\"||r.tagName===\"h4\"||r.tagName===\"h5\"||r.tagName===\"h6\"||r.tagName===\"header\"||r.tagName===\"hgroup\"||r.tagName===\"hr\"||r.tagName===\"main\"||r.tagName===\"menu\"||r.tagName===\"nav\"||r.tagName===\"ol\"||r.tagName===\"p\"||r.tagName===\"pre\"||r.tagName===\"section\"||r.tagName===\"table\"||r.tagName===\"ul\"):!u||!(u.type===\"element\"&&(u.tagName===\"a\"||u.tagName===\"audio\"||u.tagName===\"del\"||u.tagName===\"ins\"||u.tagName===\"map\"||u.tagName===\"noscript\"||u.tagName===\"video\"))}function ta(e,t,u){const r=H(u,t);return!r||r.type===\"element\"&&r.tagName===\"li\"}function ua(e,t,u){const r=H(u,t);return!!(r&&r.type===\"element\"&&(r.tagName===\"dt\"||r.tagName===\"dd\"))}function ra(e,t,u){const r=H(u,t);return!r||r.type===\"element\"&&(r.tagName===\"dt\"||r.tagName===\"dd\")}function Ku(e,t,u){const r=H(u,t);return!r||r.type===\"element\"&&(r.tagName===\"rp\"||r.tagName===\"rt\")}function na(e,t,u){const r=H(u,t);return!r||r.type===\"element\"&&r.tagName===\"optgroup\"}function ia(e,t,u){const r=H(u,t);return!r||r.type===\"element\"&&(r.tagName===\"option\"||r.tagName===\"optgroup\")}function oa(e,t,u){const r=H(u,t);return!!(r&&r.type===\"element\"&&(r.tagName===\"tbody\"||r.tagName===\"tfoot\"))}function aa(e,t,u){const r=H(u,t);return!r||r.type===\"element\"&&(r.tagName===\"tbody\"||r.tagName===\"tfoot\")}function sa(e,t,u){return!H(u,t)}function la(e,t,u){const r=H(u,t);return!r||r.type===\"element\"&&r.tagName===\"tr\"}function Yu(e,t,u){const r=H(u,t);return!r||r.type===\"element\"&&(r.tagName===\"td\"||r.tagName===\"th\")}const ca=nn({body:pa,colgroup:ma,head:fa,html:da,tbody:ha});function da(e){const t=H(e,-1);return!t||t.type!==\"comment\"}function fa(e){const t=new Set;for(const r of e.children)if(r.type===\"element\"&&(r.tagName===\"base\"||r.tagName===\"title\")){if(t.has(r.tagName))return!1;t.add(r.tagName)}const u=e.children[0];return!u||u.type===\"element\"}function pa(e){const t=H(e,-1,!0);return!t||t.type!==\"comment\"&&!(t.type===\"text\"&&ku(t.value.charAt(0)))&&!(t.type===\"element\"&&(t.tagName===\"meta\"||t.tagName===\"link\"||t.tagName===\"script\"||t.tagName===\"style\"||t.tagName===\"template\"))}function ma(e,t,u){const r=un(u,t),n=H(e,-1,!0);return u&&r&&r.type===\"element\"&&r.tagName===\"colgroup\"&&Au(r,u.children.indexOf(r),u)?!1:!!(n&&n.type===\"element\"&&n.tagName===\"col\")}function ha(e,t,u){const r=un(u,t),n=H(e,-1);return u&&r&&r.type===\"element\"&&(r.tagName===\"thead\"||r.tagName===\"tbody\")&&Au(r,u.children.indexOf(r),u)?!1:!!(n&&n.type===\"element\"&&n.tagName===\"tr\")}const mt={name:[[`\t\n\\f\\r &/=>`.split(\"\"),`\t\n\\f\\r \"&'/=>\\``.split(\"\")],[`\\0\t\n\\f\\r \"&'/<=>`.split(\"\"),`\\0\t\n\\f\\r \"&'/<=>\\``.split(\"\")]],unquoted:[[`\t\n\\f\\r &>`.split(\"\"),`\\0\t\n\\f\\r \"&'<=>\\``.split(\"\")],[`\\0\t\n\\f\\r \"&'<=>\\``.split(\"\"),`\\0\t\n\\f\\r \"&'<=>\\``.split(\"\")]],single:[[\"&'\".split(\"\"),\"\\\"&'`\".split(\"\")],[\"\\0&'\".split(\"\"),\"\\0\\\"&'`\".split(\"\")]],double:[['\"&'.split(\"\"),\"\\\"&'`\".split(\"\")],['\\0\"&'.split(\"\"),\"\\0\\\"&'`\".split(\"\")]]};function _a(e,t,u,r){const n=r.schema,i=n.space===\"svg\"?!1:r.settings.omitOptionalTags;let o=n.space===\"svg\"?r.settings.closeEmptyElements:r.settings.voids.includes(e.tagName.toLowerCase());const a=[];let s;n.space===\"html\"&&e.tagName===\"svg\"&&(r.schema=en);const l=ga(r,e.properties),d=r.all(n.space===\"html\"&&e.tagName===\"template\"?e.content:e);return r.schema=n,d&&(o=!1),(l||!i||!ca(e,t,u))&&(a.push(\"<\",e.tagName,l?\" \"+l:\"\"),o&&(n.space===\"svg\"||r.settings.closeSelfClosing)&&(s=l.charAt(l.length-1),(!r.settings.tightSelfClosing||s===\"/\"||s&&s!=='\"'&&s!==\"'\")&&a.push(\" \"),a.push(\"/\")),a.push(\">\")),a.push(d),!o&&(!i||!Au(e,t,u))&&a.push(\"</\"+e.tagName+\">\"),a.join(\"\")}function ga(e,t){const u=[];let r=-1,n;if(t){for(n in t)if(t[n]!==null&&t[n]!==void 0){const i=ba(e,n,t[n]);i&&u.push(i)}}for(;++r<u.length;){const i=e.settings.tightAttributes?u[r].charAt(u[r].length-1):void 0;r!==u.length-1&&i!=='\"'&&i!==\"'\"&&(u[r]+=\" \")}return u.join(\"\")}function ba(e,t,u){const r=Eo(e.schema,t),n=e.settings.allowParseErrors&&e.schema.space===\"html\"?0:1,i=e.settings.allowDangerousCharacters?0:1;let o=e.quote,a;if(r.overloadedBoolean&&(u===r.attribute||u===\"\")?u=!0:(r.boolean||r.overloadedBoolean)&&(typeof u!=\"string\"||u===r.attribute||u===\"\")&&(u=!!u),u==null||u===!1||typeof u==\"number\"&&Number.isNaN(u))return\"\";const s=Be(r.attribute,Object.assign({},e.settings.characterReferences,{subset:mt.name[n][i]}));return u===!0||(u=Array.isArray(u)?(r.commaSeparated?Wo:Zo)(u,{padLeft:!e.settings.tightCommaSeparatedLists}):String(u),e.settings.collapseEmptyAttributes&&!u)?s:(e.settings.preferUnquoted&&(a=Be(u,Object.assign({},e.settings.characterReferences,{attribute:!0,subset:mt.unquoted[n][i]}))),a!==u&&(e.settings.quoteSmart&&Zu(u,o)>Zu(u,e.alternative)&&(o=e.alternative),a=o+Be(u,Object.assign({},e.settings.characterReferences,{subset:(o===\"'\"?mt.single:mt.double)[n][i],attribute:!0}))+o),s+(a&&\"=\"+a))}const ya=[\"<\",\"&\"];function on(e,t,u,r){return u&&u.type===\"element\"&&(u.tagName===\"script\"||u.tagName===\"style\")?e.value:Be(e.value,Object.assign({},r.settings.characterReferences,{subset:ya}))}function xa(e,t,u,r){return r.settings.allowDangerousHtml?e.value:on(e,t,u,r)}function Ea(e,t,u,r){return r.all(e)}const ka=Co(\"type\",{invalid:Aa,unknown:va,handlers:{comment:Go,doctype:Ho,element:_a,raw:xa,root:Ea,text:on}});function Aa(e){throw new Error(\"Expected node, not `\"+e+\"`\")}function va(e){const t=e;throw new Error(\"Cannot compile unknown node `\"+t.type+\"`\")}const Ca={},Da={},wa=[];function Sa(e,t){const u=Ca,r=u.quote||'\"',n=r==='\"'?\"'\":'\"';if(r!=='\"'&&r!==\"'\")throw new Error(\"Invalid quote `\"+r+\"`, expected `'` or `\\\"`\");return{one:Ta,all:Ra,settings:{omitOptionalTags:u.omitOptionalTags||!1,allowParseErrors:u.allowParseErrors||!1,allowDangerousCharacters:u.allowDangerousCharacters||!1,quoteSmart:u.quoteSmart||!1,preferUnquoted:u.preferUnquoted||!1,tightAttributes:u.tightAttributes||!1,upperDoctype:u.upperDoctype||!1,tightDoctype:u.tightDoctype||!1,bogusComments:u.bogusComments||!1,tightCommaSeparatedLists:u.tightCommaSeparatedLists||!1,tightSelfClosing:u.tightSelfClosing||!1,collapseEmptyAttributes:u.collapseEmptyAttributes||!1,allowDangerousHtml:u.allowDangerousHtml||!1,voids:u.voids||ho,characterReferences:u.characterReferences||Da,closeSelfClosing:u.closeSelfClosing||!1,closeEmptyElements:u.closeEmptyElements||!1},schema:u.space===\"svg\"?en:vo,quote:r,alternative:n}.one(Array.isArray(e)?{type:\"root\",children:e}:e,void 0,void 0)}function Ta(e,t,u){return ka(e,t,u,this)}function Ra(e){const t=[],u=e&&e.children||wa;let r=-1;for(;++r<u.length;)t[r]=this.one(u[r],r,e);return t.join(\"\")}function La(e){return Array.isArray(e)?e:[e]}function Ft(e,t=!1){var i;const u=e.split(/(\\r?\\n)/g);let r=0;const n=[];for(let o=0;o<u.length;o+=2){const a=t?u[o]+(u[o+1]||\"\"):u[o];n.push([a,r]),r+=u[o].length,r+=((i=u[o+1])==null?void 0:i.length)||0}return n}function vu(e){return!e||[\"plaintext\",\"txt\",\"text\",\"plain\"].includes(e)}function an(e){return e===\"ansi\"||vu(e)}function Cu(e){return e===\"none\"}function sn(e){return Cu(e)}function ln(e,t){var r;if(!t)return e;e.properties||(e.properties={}),(r=e.properties).class||(r.class=[]),typeof e.properties.class==\"string\"&&(e.properties.class=e.properties.class.split(/\\s+/g)),Array.isArray(e.properties.class)||(e.properties.class=[]);const u=Array.isArray(t)?t:t.split(/\\s+/g);for(const n of u)n&&!e.properties.class.includes(n)&&e.properties.class.push(n);return e}function Pa(e,t){let u=0;const r=[];for(const n of t)n>u&&r.push({...e,content:e.content.slice(u,n),offset:e.offset+u}),u=n;return u<e.content.length&&r.push({...e,content:e.content.slice(u),offset:e.offset+u}),r}function Ia(e,t){const u=Array.from(t instanceof Set?t:new Set(t)).sort((r,n)=>r-n);return u.length?e.map(r=>r.flatMap(n=>{const i=u.filter(o=>n.offset<o&&o<n.offset+n.content.length).map(o=>o-n.offset).sort((o,a)=>o-a);return i.length?Pa(n,i):n})):e}async function cn(e){return Promise.resolve(typeof e==\"function\"?e():e).then(t=>t.default||t)}function Ct(e,t){const u=typeof e==\"string\"?{}:{...e.colorReplacements},r=typeof e==\"string\"?e:e.name;for(const[n,i]of Object.entries((t==null?void 0:t.colorReplacements)||{}))typeof i==\"string\"?u[n]=i:n===r&&Object.assign(u,i);return u}function Re(e,t){return e&&((t==null?void 0:t[e==null?void 0:e.toLowerCase()])||e)}function dn(e){const t={};return e.color&&(t.color=e.color),e.bgColor&&(t[\"background-color\"]=e.bgColor),e.fontStyle&&(e.fontStyle&ke.Italic&&(t[\"font-style\"]=\"italic\"),e.fontStyle&ke.Bold&&(t[\"font-weight\"]=\"bold\"),e.fontStyle&ke.Underline&&(t[\"text-decoration\"]=\"underline\")),t}function Oa(e){return typeof e==\"string\"?e:Object.entries(e).map(([t,u])=>`${t}:${u}`).join(\";\")}function Fa(e){const t=Ft(e,!0).map(([n])=>n);function u(n){if(n===e.length)return{line:t.length-1,character:t[t.length-1].length};let i=n,o=0;for(const a of t){if(i<a.length)break;i-=a.length,o++}return{line:o,character:i}}function r(n,i){let o=0;for(let a=0;a<n;a++)o+=t[a].length;return o+=i,o}return{lines:t,indexToPos:u,posToIndex:r}}class ee extends Error{constructor(t){super(t),this.name=\"ShikiError\"}}const fn=new WeakMap;function Mt(e,t){fn.set(e,t)}function et(e){return fn.get(e)}class Ge{constructor(...t){b(this,\"_stacks\",{});b(this,\"lang\");if(t.length===2){const[u,r]=t;this.lang=r,this._stacks=u}else{const[u,r,n]=t;this.lang=r,this._stacks={[n]:u}}}get themes(){return Object.keys(this._stacks)}get theme(){return this.themes[0]}get _stack(){return this._stacks[this.theme]}static initial(t,u){return new Ge(Object.fromEntries(La(u).map(r=>[r,cu])),t)}getInternalStack(t=this.theme){return this._stacks[t]}get scopes(){return Qu(this._stacks[this.theme])}getScopes(t=this.theme){return Qu(this._stacks[t])}toJSON(){return{lang:this.lang,theme:this.theme,themes:this.themes,scopes:this.scopes}}}function Qu(e){const t=[],u=new Set;function r(n){var o;if(u.has(n))return;u.add(n);const i=(o=n==null?void 0:n.nameScopesList)==null?void 0:o.scopeName;i&&t.push(i),n.parent&&r(n.parent)}return r(e),t}function Ma(e,t){if(!(e instanceof Ge))throw new ee(\"Invalid grammar state\");return e.getInternalStack(t)}function Na(){const e=new WeakMap;function t(u){if(!e.has(u.meta)){let r=function(o){if(typeof o==\"number\"){if(o<0||o>u.source.length)throw new ee(`Invalid decoration offset: ${o}. Code length: ${u.source.length}`);return{...n.indexToPos(o),offset:o}}else{const a=n.lines[o.line];if(a===void 0)throw new ee(`Invalid decoration position ${JSON.stringify(o)}. Lines length: ${n.lines.length}`);if(o.character<0||o.character>a.length)throw new ee(`Invalid decoration position ${JSON.stringify(o)}. Line ${o.line} length: ${a.length}`);return{...o,offset:n.posToIndex(o.line,o.character)}}};const n=Fa(u.source),i=(u.options.decorations||[]).map(o=>({...o,start:r(o.start),end:r(o.end)}));Va(i),e.set(u.meta,{decorations:i,converter:n,source:u.source})}return e.get(u.meta)}return{name:\"shiki:decorations\",tokens(u){var o;if(!((o=this.options.decorations)!=null&&o.length))return;const n=t(this).decorations.flatMap(a=>[a.start.offset,a.end.offset]);return Ia(u,n)},code(u){var d;if(!((d=this.options.decorations)!=null&&d.length))return;const r=t(this),n=Array.from(u.children).filter(c=>c.type===\"element\"&&c.tagName===\"span\");if(n.length!==r.converter.lines.length)throw new ee(`Number of lines in code element (${n.length}) does not match the number of lines in the source (${r.converter.lines.length}). Failed to apply decorations.`);function i(c,h,p,m){const x=n[c];let g=\"\",E=-1,_=-1;if(h===0&&(E=0),p===0&&(_=0),p===Number.POSITIVE_INFINITY&&(_=x.children.length),E===-1||_===-1)for(let k=0;k<x.children.length;k++)g+=pn(x.children[k]),E===-1&&g.length===h&&(E=k+1),_===-1&&g.length===p&&(_=k+1);if(E===-1)throw new ee(`Failed to find start index for decoration ${JSON.stringify(m.start)}`);if(_===-1)throw new ee(`Failed to find end index for decoration ${JSON.stringify(m.end)}`);const y=x.children.slice(E,_);if(!m.alwaysWrap&&y.length===x.children.length)a(x,m,\"line\");else if(!m.alwaysWrap&&y.length===1&&y[0].type===\"element\")a(y[0],m,\"token\");else{const k={type:\"element\",tagName:\"span\",properties:{},children:y};a(k,m,\"wrapper\"),x.children.splice(E,y.length,k)}}function o(c,h){n[c]=a(n[c],h,\"line\")}function a(c,h,p){var g;const m=h.properties||{},x=h.transform||(E=>E);return c.tagName=h.tagName||\"span\",c.properties={...c.properties,...m,class:c.properties.class},(g=h.properties)!=null&&g.class&&ln(c,h.properties.class),c=x(c,p)||c,c}const s=[],l=r.decorations.sort((c,h)=>h.start.offset-c.start.offset);for(const c of l){const{start:h,end:p}=c;if(h.line===p.line)i(h.line,h.character,p.character,c);else if(h.line<p.line){i(h.line,h.character,Number.POSITIVE_INFINITY,c);for(let m=h.line+1;m<p.line;m++)s.unshift(()=>o(m,c));i(p.line,0,p.character,c)}}s.forEach(c=>c())}}}function Va(e){for(let t=0;t<e.length;t++){const u=e[t];if(u.start.offset>u.end.offset)throw new ee(`Invalid decoration range: ${JSON.stringify(u.start)} - ${JSON.stringify(u.end)}`);for(let r=t+1;r<e.length;r++){const n=e[r],i=u.start.offset<n.start.offset&&n.start.offset<u.end.offset,o=u.start.offset<n.end.offset&&n.end.offset<u.end.offset,a=n.start.offset<u.start.offset&&u.start.offset<n.end.offset,s=n.start.offset<u.end.offset&&u.end.offset<n.end.offset;if(i||o||a||s){if(o&&o||a&&s)continue;throw new ee(`Decorations ${JSON.stringify(u.start)} and ${JSON.stringify(n.start)} intersect.`)}}}}function pn(e){return e.type===\"text\"?e.value:e.type===\"element\"?e.children.map(pn).join(\"\"):\"\"}const Ba=[Na()];function Dt(e){return[...e.transformers||[],...Ba]}var Le=[\"black\",\"red\",\"green\",\"yellow\",\"blue\",\"magenta\",\"cyan\",\"white\",\"brightBlack\",\"brightRed\",\"brightGreen\",\"brightYellow\",\"brightBlue\",\"brightMagenta\",\"brightCyan\",\"brightWhite\"],Yt={1:\"bold\",2:\"dim\",3:\"italic\",4:\"underline\",7:\"reverse\",9:\"strikethrough\"};function za(e,t){const u=e.indexOf(\"\\x1B[\",t);if(u!==-1){const r=e.indexOf(\"m\",u);return{sequence:e.substring(u+2,r).split(\";\"),startPosition:u,position:r+1}}return{position:e.length}}function Xu(e,t){let u=1;const r=e[t+u++];let n;if(r===\"2\"){const i=[e[t+u++],e[t+u++],e[t+u]].map(o=>Number.parseInt(o));i.length===3&&!i.some(o=>Number.isNaN(o))&&(n={type:\"rgb\",rgb:i})}else if(r===\"5\"){const i=Number.parseInt(e[t+u]);Number.isNaN(i)||(n={type:\"table\",index:Number(i)})}return[u,n]}function ja(e){const t=[];for(let u=0;u<e.length;u++){const r=e[u],n=Number.parseInt(r);if(!Number.isNaN(n))if(n===0)t.push({type:\"resetAll\"});else if(n<=9)Yt[n]&&t.push({type:\"setDecoration\",value:Yt[n]});else if(n<=29){const i=Yt[n-20];i&&t.push({type:\"resetDecoration\",value:i})}else if(n<=37)t.push({type:\"setForegroundColor\",value:{type:\"named\",name:Le[n-30]}});else if(n===38){const[i,o]=Xu(e,u);o&&t.push({type:\"setForegroundColor\",value:o}),u+=i}else if(n===39)t.push({type:\"resetForegroundColor\"});else if(n<=47)t.push({type:\"setBackgroundColor\",value:{type:\"named\",name:Le[n-40]}});else if(n===48){const[i,o]=Xu(e,u);o&&t.push({type:\"setBackgroundColor\",value:o}),u+=i}else n===49?t.push({type:\"resetBackgroundColor\"}):n>=90&&n<=97?t.push({type:\"setForegroundColor\",value:{type:\"named\",name:Le[n-90+8]}}):n>=100&&n<=107&&t.push({type:\"setBackgroundColor\",value:{type:\"named\",name:Le[n-100+8]}})}return t}function $a(){let e=null,t=null,u=new Set;return{parse(r){const n=[];let i=0;do{const o=za(r,i),a=o.sequence?r.substring(i,o.startPosition):r.substring(i);if(a.length>0&&n.push({value:a,foreground:e,background:t,decorations:new Set(u)}),o.sequence){const s=ja(o.sequence);for(const l of s)l.type===\"resetAll\"?(e=null,t=null,u.clear()):l.type===\"resetForegroundColor\"?e=null:l.type===\"resetBackgroundColor\"?t=null:l.type===\"resetDecoration\"&&u.delete(l.value);for(const l of s)l.type===\"setForegroundColor\"?e=l.value:l.type===\"setBackgroundColor\"?t=l.value:l.type===\"setDecoration\"&&u.add(l.value)}i=o.position}while(i<r.length);return n}}}var qa={black:\"#000000\",red:\"#bb0000\",green:\"#00bb00\",yellow:\"#bbbb00\",blue:\"#0000bb\",magenta:\"#ff00ff\",cyan:\"#00bbbb\",white:\"#eeeeee\",brightBlack:\"#555555\",brightRed:\"#ff5555\",brightGreen:\"#00ff00\",brightYellow:\"#ffff55\",brightBlue:\"#5555ff\",brightMagenta:\"#ff55ff\",brightCyan:\"#55ffff\",brightWhite:\"#ffffff\"};function Ua(e=qa){function t(a){return e[a]}function u(a){return`#${a.map(s=>Math.max(0,Math.min(s,255)).toString(16).padStart(2,\"0\")).join(\"\")}`}let r;function n(){if(r)return r;r=[];for(let l=0;l<Le.length;l++)r.push(t(Le[l]));let a=[0,95,135,175,215,255];for(let l=0;l<6;l++)for(let d=0;d<6;d++)for(let c=0;c<6;c++)r.push(u([a[l],a[d],a[c]]));let s=8;for(let l=0;l<24;l++,s+=10)r.push(u([s,s,s]));return r}function i(a){return n()[a]}function o(a){switch(a.type){case\"named\":return t(a.name);case\"rgb\":return u(a.rgb);case\"table\":return i(a.index)}}return{value:o}}function Ga(e,t,u){const r=Ct(e,u),n=Ft(t),i=Ua(Object.fromEntries(Le.map(a=>{var s;return[a,(s=e.colors)==null?void 0:s[`terminal.ansi${a[0].toUpperCase()}${a.substring(1)}`]]}))),o=$a();return n.map(a=>o.parse(a[0]).map(s=>{let l,d;s.decorations.has(\"reverse\")?(l=s.background?i.value(s.background):e.bg,d=s.foreground?i.value(s.foreground):e.fg):(l=s.foreground?i.value(s.foreground):e.fg,d=s.background?i.value(s.background):void 0),l=Re(l,r),d=Re(d,r),s.decorations.has(\"dim\")&&(l=Ha(l));let c=ke.None;return s.decorations.has(\"bold\")&&(c|=ke.Bold),s.decorations.has(\"italic\")&&(c|=ke.Italic),s.decorations.has(\"underline\")&&(c|=ke.Underline),{content:s.value,offset:a[1],color:l,bgColor:d,fontStyle:c}}))}function Ha(e){const t=e.match(/#([0-9a-f]{3})([0-9a-f]{3})?([0-9a-f]{2})?/);if(t)if(t[3]){const r=Math.round(Number.parseInt(t[3],16)/2).toString(16).padStart(2,\"0\");return`#${t[1]}${t[2]}${r}`}else return t[2]?`#${t[1]}${t[2]}80`:`#${Array.from(t[1]).map(r=>`${r}${r}`).join(\"\")}80`;const u=e.match(/var\\((--[\\w-]+-ansi-[\\w-]+)\\)/);return u?`var(${u[1]}-dim)`:e}function Du(e,t,u={}){const{lang:r=\"text\",theme:n=e.getLoadedThemes()[0]}=u;if(vu(r)||Cu(n))return Ft(t).map(s=>[{content:s[0],offset:s[1]}]);const{theme:i,colorMap:o}=e.setTheme(n);if(r===\"ansi\")return Ga(i,t,u);const a=e.getLanguage(r);if(u.grammarState){if(u.grammarState.lang!==a.name)throw new Ae(`Grammar state language \"${u.grammarState.lang}\" does not match highlight language \"${a.name}\"`);if(!u.grammarState.themes.includes(i.name))throw new Ae(`Grammar state themes \"${u.grammarState.themes}\" do not contain highlight theme \"${i.name}\"`)}return Za(t,a,i,o,u)}function Wa(...e){if(e.length===2)return et(e[1]);const[t,u,r={}]=e,{lang:n=\"text\",theme:i=t.getLoadedThemes()[0]}=r;if(vu(n)||Cu(i))throw new Ae(\"Plain language does not have grammar state\");if(n===\"ansi\")throw new Ae(\"ANSI language does not have grammar state\");const{theme:o,colorMap:a}=t.setTheme(i),s=t.getLanguage(n);return new Ge(wt(u,s,o,a,r).stateStack,s.name,o.name)}function Za(e,t,u,r,n){const i=wt(e,t,u,r,n),o=new Ge(wt(e,t,u,r,n).stateStack,t.name,u.name);return Mt(i.tokens,o),i.tokens}function wt(e,t,u,r,n){const i=Ct(u,n),{tokenizeMaxLineLength:o=0,tokenizeTimeLimit:a=500}=n,s=Ft(e);let l=n.grammarState?Ma(n.grammarState,u.name)??cu:n.grammarContextCode!=null?wt(n.grammarContextCode,t,u,r,{...n,grammarState:void 0,grammarContextCode:void 0}).stateStack:cu,d=[];const c=[];for(let h=0,p=s.length;h<p;h++){const[m,x]=s[h];if(m===\"\"){d=[],c.push([]);continue}if(o>0&&m.length>=o){d=[],c.push([{content:m,offset:x,color:\"\",fontStyle:0}]);continue}let g,E,_;n.includeExplanation&&(g=t.tokenizeLine(m,l),E=g.tokens,_=0);const y=t.tokenizeLine2(m,l,a),k=y.tokens.length/2;for(let D=0;D<k;D++){const S=y.tokens[2*D],I=D+1<k?y.tokens[2*D+2]:m.length;if(S===I)continue;const z=y.tokens[2*D+1],Q=Re(r[je.getForeground(z)],i),re=je.getFontStyle(z),de={content:m.substring(S,I),offset:x+S,color:Q,fontStyle:re};if(n.includeExplanation){const Ie=[];if(n.includeExplanation!==\"scopeName\")for(const v of u.settings){let B;switch(typeof v.scope){case\"string\":B=v.scope.split(/,/).map(K=>K.trim());break;case\"object\":B=v.scope;break;default:continue}Ie.push({settings:v,selectors:B.map(K=>K.split(/ /))})}de.explanation=[];let w=0;for(;S+w<I;){const v=E[_],B=m.substring(v.startIndex,v.endIndex);w+=B.length,de.explanation.push({content:B,scopes:n.includeExplanation===\"scopeName\"?Ja(v.scopes):Ka(Ie,v.scopes)}),_+=1}}d.push(de)}c.push(d),d=[],l=y.ruleStack}return{tokens:c,stateStack:l}}function Ja(e){return e.map(t=>({scopeName:t}))}function Ka(e,t){const u=[];for(let r=0,n=t.length;r<n;r++){const i=t[r];u[r]={scopeName:i,themeMatches:Qa(e,i,t.slice(0,r))}}return u}function er(e,t){return e===t||t.substring(0,e.length)===e&&t[e.length]===\".\"}function Ya(e,t,u){if(!er(e[e.length-1],t))return!1;let r=e.length-2,n=u.length-1;for(;r>=0&&n>=0;)er(e[r],u[n])&&(r-=1),n-=1;return r===-1}function Qa(e,t,u){const r=[];for(const{selectors:n,settings:i}of e)for(const o of n)if(Ya(o,t,u)){r.push(i);break}return r}function mn(e,t,u){const r=Object.entries(u.themes).filter(s=>s[1]).map(s=>({color:s[0],theme:s[1]})),n=r.map(s=>{const l=Du(e,t,{...u,theme:s.theme}),d=et(l),c=typeof s.theme==\"string\"?s.theme:s.theme.name;return{tokens:l,state:d,theme:c}}),i=Xa(...n.map(s=>s.tokens)),o=i[0].map((s,l)=>s.map((d,c)=>{const h={content:d.content,variants:{},offset:d.offset};return\"includeExplanation\"in u&&u.includeExplanation&&(h.explanation=d.explanation),i.forEach((p,m)=>{const{content:x,explanation:g,offset:E,..._}=p[l][c];h.variants[r[m].color]=_}),h})),a=n[0].state?new Ge(Object.fromEntries(n.map(s=>{var l;return[s.theme,(l=s.state)==null?void 0:l.getInternalStack(s.theme)]})),n[0].state.lang):void 0;return a&&Mt(o,a),o}function Xa(...e){const t=e.map(()=>[]),u=e.length;for(let r=0;r<e[0].length;r++){const n=e.map(s=>s[r]),i=t.map(()=>[]);t.forEach((s,l)=>s.push(i[l]));const o=n.map(()=>0),a=n.map(s=>s[0]);for(;a.every(s=>s);){const s=Math.min(...a.map(l=>l.content.length));for(let l=0;l<u;l++){const d=a[l];d.content.length===s?(i[l].push(d),o[l]+=1,a[l]=n[l][o[l]]):(i[l].push({...d,content:d.content.slice(0,s)}),a[l]={...d,content:d.content.slice(s),offset:d.offset+s})}}}return t}function St(e,t,u){let r,n,i,o,a,s;if(\"themes\"in u){const{defaultColor:l=\"light\",cssVariablePrefix:d=\"--shiki-\"}=u,c=Object.entries(u.themes).filter(g=>g[1]).map(g=>({color:g[0],theme:g[1]})).sort((g,E)=>g.color===l?-1:E.color===l?1:0);if(c.length===0)throw new Ae(\"`themes` option must not be empty\");const h=mn(e,t,u);if(s=et(h),l&&!c.find(g=>g.color===l))throw new Ae(`\\`themes\\` option must contain the defaultColor key \\`${l}\\``);const p=c.map(g=>e.getTheme(g.theme)),m=c.map(g=>g.color);i=h.map(g=>g.map(E=>es(E,m,d,l))),s&&Mt(i,s);const x=c.map(g=>Ct(g.theme,u));n=c.map((g,E)=>(E===0&&l?\"\":`${d+g.color}:`)+(Re(p[E].fg,x[E])||\"inherit\")).join(\";\"),r=c.map((g,E)=>(E===0&&l?\"\":`${d+g.color}-bg:`)+(Re(p[E].bg,x[E])||\"inherit\")).join(\";\"),o=`shiki-themes ${p.map(g=>g.name).join(\" \")}`,a=l?void 0:[n,r].join(\";\")}else if(\"theme\"in u){const l=Ct(u.theme,u);i=Du(e,t,u);const d=e.getTheme(u.theme);r=Re(d.bg,l),n=Re(d.fg,l),o=d.name,s=et(i)}else throw new Ae(\"Invalid options, either `theme` or `themes` must be provided\");return{tokens:i,fg:n,bg:r,themeName:o,rootStyle:a,grammarState:s}}function es(e,t,u,r){const n={content:e.content,explanation:e.explanation,offset:e.offset},i=t.map(s=>dn(e.variants[s])),o=new Set(i.flatMap(s=>Object.keys(s))),a={};return i.forEach((s,l)=>{for(const d of o){const c=s[d]||\"inherit\";if(l===0&&r)a[d]=c;else{const h=d===\"color\"?\"\":d===\"background-color\"?\"-bg\":`-${d}`,p=u+t[l]+(d===\"color\"?\"\":h);a[p]=c}}}),n.htmlStyle=a,n}function Tt(e,t,u,r={meta:{},options:u,codeToHast:(n,i)=>Tt(e,n,i),codeToTokens:(n,i)=>St(e,n,i)}){var p,m;let n=t;for(const x of Dt(u))n=((p=x.preprocess)==null?void 0:p.call(r,n,u))||n;let{tokens:i,fg:o,bg:a,themeName:s,rootStyle:l,grammarState:d}=St(e,n,u);const{mergeWhitespaces:c=!0}=u;c===!0?i=us(i):c===\"never\"&&(i=rs(i));const h={...r,get source(){return n}};for(const x of Dt(u))i=((m=x.tokens)==null?void 0:m.call(h,i))||i;return ts(i,{...u,fg:o,bg:a,themeName:s,rootStyle:l},h,d)}function ts(e,t,u,r=et(e)){var m,x,g;const n=Dt(t),i=[],o={type:\"root\",children:[]},{structure:a=\"classic\",tabindex:s=\"0\"}=t;let l={type:\"element\",tagName:\"pre\",properties:{class:`shiki ${t.themeName||\"\"}`,style:t.rootStyle||`background-color:${t.bg};color:${t.fg}`,...s!==!1&&s!=null?{tabindex:s.toString()}:{},...Object.fromEntries(Array.from(Object.entries(t.meta||{})).filter(([E])=>!E.startsWith(\"_\")))},children:[]},d={type:\"element\",tagName:\"code\",properties:{},children:i};const c=[],h={...u,structure:a,addClassToHast:ln,get source(){return u.source},get tokens(){return e},get options(){return t},get root(){return o},get pre(){return l},get code(){return d},get lines(){return c}};if(e.forEach((E,_)=>{var D,S;_&&(a===\"inline\"?o.children.push({type:\"element\",tagName:\"br\",properties:{},children:[]}):a===\"classic\"&&i.push({type:\"text\",value:`\n`}));let y={type:\"element\",tagName:\"span\",properties:{class:\"line\"},children:[]},k=0;for(const I of E){let z={type:\"element\",tagName:\"span\",properties:{...I.htmlAttrs},children:[{type:\"text\",value:I.content}]};I.htmlStyle;const Q=Oa(I.htmlStyle||dn(I));Q&&(z.properties.style=Q);for(const re of n)z=((D=re==null?void 0:re.span)==null?void 0:D.call(h,z,_+1,k,y,I))||z;a===\"inline\"?o.children.push(z):a===\"classic\"&&y.children.push(z),k+=I.content.length}if(a===\"classic\"){for(const I of n)y=((S=I==null?void 0:I.line)==null?void 0:S.call(h,y,_+1))||y;c.push(y),i.push(y)}}),a===\"classic\"){for(const E of n)d=((m=E==null?void 0:E.code)==null?void 0:m.call(h,d))||d;l.children.push(d);for(const E of n)l=((x=E==null?void 0:E.pre)==null?void 0:x.call(h,l))||l;o.children.push(l)}let p=o;for(const E of n)p=((g=E==null?void 0:E.root)==null?void 0:g.call(h,p))||p;return r&&Mt(p,r),p}function us(e){return e.map(t=>{const u=[];let r=\"\",n=0;return t.forEach((i,o)=>{const s=!(i.fontStyle&&i.fontStyle&ke.Underline);s&&i.content.match(/^\\s+$/)&&t[o+1]?(n||(n=i.offset),r+=i.content):r?(s?u.push({...i,offset:n,content:r+i.content}):u.push({content:r,offset:n},i),n=0,r=\"\"):u.push(i)}),u})}function rs(e){return e.map(t=>t.flatMap(u=>{if(u.content.match(/^\\s+$/))return u;const r=u.content.match(/^(\\s*)(.*?)(\\s*)$/);if(!r)return u;const[,n,i,o]=r;if(!n&&!o)return u;const a=[{...u,offset:u.offset+n.length,content:i}];return n&&a.unshift({content:n,offset:u.offset}),o&&a.push({content:o,offset:u.offset+n.length+i.length}),a}))}function ns(e,t,u){var i;const r={meta:{},options:u,codeToHast:(o,a)=>Tt(e,o,a),codeToTokens:(o,a)=>St(e,o,a)};let n=Sa(Tt(e,t,u,r));for(const o of Dt(u))n=((i=o.postprocess)==null?void 0:i.call(r,n,u))||n;return n}const tr={light:\"#333333\",dark:\"#bbbbbb\"},ur={light:\"#fffffe\",dark:\"#1e1e1e\"},rr=\"__shiki_resolved\";function wu(e){var a,s,l,d,c;if(e!=null&&e[rr])return e;const t={...e};t.tokenColors&&!t.settings&&(t.settings=t.tokenColors,delete t.tokenColors),t.type||(t.type=\"dark\"),t.colorReplacements={...t.colorReplacements},t.settings||(t.settings=[]);let{bg:u,fg:r}=t;if(!u||!r){const h=t.settings?t.settings.find(p=>!p.name&&!p.scope):void 0;(a=h==null?void 0:h.settings)!=null&&a.foreground&&(r=h.settings.foreground),(s=h==null?void 0:h.settings)!=null&&s.background&&(u=h.settings.background),!r&&((l=t==null?void 0:t.colors)!=null&&l[\"editor.foreground\"])&&(r=t.colors[\"editor.foreground\"]),!u&&((d=t==null?void 0:t.colors)!=null&&d[\"editor.background\"])&&(u=t.colors[\"editor.background\"]),r||(r=t.type===\"light\"?tr.light:tr.dark),u||(u=t.type===\"light\"?ur.light:ur.dark),t.fg=r,t.bg=u}t.settings[0]&&t.settings[0].settings&&!t.settings[0].scope||t.settings.unshift({settings:{foreground:t.fg,background:t.bg}});let n=0;const i=new Map;function o(h){var m;if(i.has(h))return i.get(h);n+=1;const p=`#${n.toString(16).padStart(8,\"0\").toLowerCase()}`;return(m=t.colorReplacements)!=null&&m[`#${p}`]?o(h):(i.set(h,p),p)}t.settings=t.settings.map(h=>{var g,E;const p=((g=h.settings)==null?void 0:g.foreground)&&!h.settings.foreground.startsWith(\"#\"),m=((E=h.settings)==null?void 0:E.background)&&!h.settings.background.startsWith(\"#\");if(!p&&!m)return h;const x={...h,settings:{...h.settings}};if(p){const _=o(h.settings.foreground);t.colorReplacements[_]=h.settings.foreground,x.settings.foreground=_}if(m){const _=o(h.settings.background);t.colorReplacements[_]=h.settings.background,x.settings.background=_}return x});for(const h of Object.keys(t.colors||{}))if((h===\"editor.foreground\"||h===\"editor.background\"||h.startsWith(\"terminal.ansi\"))&&!((c=t.colors[h])!=null&&c.startsWith(\"#\"))){const p=o(t.colors[h]);t.colorReplacements[p]=t.colors[h],t.colors[h]=p}return Object.defineProperty(t,rr,{enumerable:!1,writable:!1,value:!0}),t}async function hn(e){return Array.from(new Set((await Promise.all(e.filter(t=>!an(t)).map(async t=>await cn(t).then(u=>Array.isArray(u)?u:[u])))).flat()))}async function _n(e){return(await Promise.all(e.map(async u=>sn(u)?null:wu(await cn(u))))).filter(u=>!!u)}class is extends mo{constructor(u,r,n,i={}){super(u);b(this,\"_resolvedThemes\",new Map);b(this,\"_resolvedGrammars\",new Map);b(this,\"_langMap\",new Map);b(this,\"_langGraph\",new Map);b(this,\"_textmateThemeCache\",new WeakMap);b(this,\"_loadedThemesCache\",null);b(this,\"_loadedLanguagesCache\",null);this._resolver=u,this._themes=r,this._langs=n,this._alias=i,this._themes.map(o=>this.loadTheme(o)),this.loadLanguages(this._langs)}getTheme(u){return typeof u==\"string\"?this._resolvedThemes.get(u):this.loadTheme(u)}loadTheme(u){const r=wu(u);return r.name&&(this._resolvedThemes.set(r.name,r),this._loadedThemesCache=null),r}getLoadedThemes(){return this._loadedThemesCache||(this._loadedThemesCache=[...this._resolvedThemes.keys()]),this._loadedThemesCache}setTheme(u){let r=this._textmateThemeCache.get(u);r||(r=xt.createFromRawTheme(u),this._textmateThemeCache.set(u,r)),this._syncRegistry.setTheme(r)}getGrammar(u){if(this._alias[u]){const r=new Set([u]);for(;this._alias[u];){if(u=this._alias[u],r.has(u))throw new ee(`Circular alias \\`${Array.from(r).join(\" -> \")} -> ${u}\\``);r.add(u)}}return this._resolvedGrammars.get(u)}loadLanguage(u){var o,a,s,l;if(this.getGrammar(u.name))return;const r=new Set([...this._langMap.values()].filter(d=>{var c;return(c=d.embeddedLangsLazy)==null?void 0:c.includes(u.name)}));this._resolver.addLanguage(u);const n={balancedBracketSelectors:u.balancedBracketSelectors||[\"*\"],unbalancedBracketSelectors:u.unbalancedBracketSelectors||[]};this._syncRegistry._rawGrammars.set(u.scopeName,u);const i=this.loadGrammarWithConfiguration(u.scopeName,1,n);if(i.name=u.name,this._resolvedGrammars.set(u.name,i),u.aliases&&u.aliases.forEach(d=>{this._alias[d]=u.name}),this._loadedLanguagesCache=null,r.size)for(const d of r)this._resolvedGrammars.delete(d.name),this._loadedLanguagesCache=null,(a=(o=this._syncRegistry)==null?void 0:o._injectionGrammars)==null||a.delete(d.scopeName),(l=(s=this._syncRegistry)==null?void 0:s._grammars)==null||l.delete(d.scopeName),this.loadLanguage(this._langMap.get(d.name))}dispose(){super.dispose(),this._resolvedThemes.clear(),this._resolvedGrammars.clear(),this._langMap.clear(),this._langGraph.clear(),this._loadedThemesCache=null}loadLanguages(u){for(const i of u)this.resolveEmbeddedLanguages(i);const r=Array.from(this._langGraph.entries()),n=r.filter(([i,o])=>!o);if(n.length){const i=r.filter(([o,a])=>{var s;return a&&((s=a.embeddedLangs)==null?void 0:s.some(l=>n.map(([d])=>d).includes(l)))}).filter(o=>!n.includes(o));throw new ee(`Missing languages ${n.map(([o])=>`\\`${o}\\``).join(\", \")}, required by ${i.map(([o])=>`\\`${o}\\``).join(\", \")}`)}for(const[i,o]of r)this._resolver.addLanguage(o);for(const[i,o]of r)this.loadLanguage(o)}getLoadedLanguages(){return this._loadedLanguagesCache||(this._loadedLanguagesCache=[...new Set([...this._resolvedGrammars.keys(),...Object.keys(this._alias)])]),this._loadedLanguagesCache}resolveEmbeddedLanguages(u){if(this._langMap.set(u.name,u),this._langGraph.set(u.name,u),u.embeddedLangs)for(const r of u.embeddedLangs)this._langGraph.set(r,this._langMap.get(r))}}class os{constructor(t,u){b(this,\"_langs\",new Map);b(this,\"_scopeToLang\",new Map);b(this,\"_injections\",new Map);b(this,\"_onigLib\");this._onigLib={createOnigScanner:r=>t.createScanner(r),createOnigString:r=>t.createString(r)},u.forEach(r=>this.addLanguage(r))}get onigLib(){return this._onigLib}getLangRegistration(t){return this._langs.get(t)}loadGrammar(t){return this._scopeToLang.get(t)}addLanguage(t){this._langs.set(t.name,t),t.aliases&&t.aliases.forEach(u=>{this._langs.set(u,t)}),this._scopeToLang.set(t.scopeName,t),t.injectTo&&t.injectTo.forEach(u=>{this._injections.get(u)||this._injections.set(u,[]),this._injections.get(u).push(t.scopeName)})}getInjections(t){const u=t.split(\".\");let r=[];for(let n=1;n<=u.length;n++){const i=u.slice(0,n).join(\".\");r=[...r,...this._injections.get(i)||[]]}return r}}let We=0;function as(e){We+=1,e.warnings!==!1&&We>=10&&We%10===0&&console.warn(`[Shiki] ${We} instances have been created. Shiki is supposed to be used as a singleton, consider refactoring your code to cache your highlighter instance; Or call \\`highlighter.dispose()\\` to release unused instances.`);let t=!1;if(!e.engine)throw new ee(\"`engine` option is required for synchronous mode\");const u=(e.langs||[]).flat(1),r=(e.themes||[]).flat(1).map(wu),n=new os(e.engine,u),i=new is(n,r,u,e.langAlias);let o;function a(_){g();const y=i.getGrammar(typeof _==\"string\"?_:_.name);if(!y)throw new ee(`Language \\`${_}\\` not found, you may need to load it first`);return y}function s(_){if(_===\"none\")return{bg:\"\",fg:\"\",name:\"none\",settings:[],type:\"dark\"};g();const y=i.getTheme(_);if(!y)throw new ee(`Theme \\`${_}\\` not found, you may need to load it first`);return y}function l(_){g();const y=s(_);o!==_&&(i.setTheme(y),o=_);const k=i.getColorMap();return{theme:y,colorMap:k}}function d(){return g(),i.getLoadedThemes()}function c(){return g(),i.getLoadedLanguages()}function h(..._){g(),i.loadLanguages(_.flat(1))}async function p(..._){return h(await hn(_))}function m(..._){g();for(const y of _.flat(1))i.loadTheme(y)}async function x(..._){return g(),m(await _n(_))}function g(){if(t)throw new ee(\"Shiki instance has been disposed\")}function E(){t||(t=!0,i.dispose(),We-=1)}return{setTheme:l,getTheme:s,getLanguage:a,getLoadedThemes:d,getLoadedLanguages:c,loadLanguage:p,loadLanguageSync:h,loadTheme:x,loadThemeSync:m,dispose:E,[Symbol.dispose]:E}}async function ss(e={}){e.loadWasm;const[t,u,r]=await Promise.all([_n(e.themes||[]),hn(e.langs||[]),e.engine||Lr(e.loadWasm||wi())]);return as({...e,themes:t,langs:u,engine:r})}async function ls(e={}){const t=await ss(e);return{getLastGrammarState:(...u)=>Wa(t,...u),codeToTokensBase:(u,r)=>Du(t,u,r),codeToTokensWithThemes:(u,r)=>mn(t,u,r),codeToTokens:(u,r)=>St(t,u,r),codeToHast:(u,r)=>Tt(t,u,r),codeToHtml:(u,r)=>ns(t,u,r),...t,getInternalContext:()=>t}}function cs(e,t,u){let r,n,i;{const a=e;r=a.langs,n=a.themes,i=a.engine}async function o(a){function s(p){if(typeof p==\"string\"){if(an(p))return[];const m=r[p];if(!m)throw new Ae(`Language \\`${p}\\` is not included in this bundle. You may want to load it from external source.`);return m}return p}function l(p){if(sn(p))return\"none\";if(typeof p==\"string\"){const m=n[p];if(!m)throw new Ae(`Theme \\`${p}\\` is not included in this bundle. You may want to load it from external source.`);return m}return p}const d=(a.themes??[]).map(p=>l(p)),c=(a.langs??[]).map(p=>s(p)),h=await ls({engine:a.engine??i(),...a,themes:d,langs:c});return{...h,loadLanguage(...p){return h.loadLanguage(...p.map(s))},loadTheme(...p){return h.loadTheme(...p.map(l))}}}return o}const ds=cs({langs:Rr,themes:li,engine:()=>Lr(f(()=>import(\"./CG6Dc4jp.js\"),[],import.meta.url))});function fs(e,t,u){const{parseMetaString:r,trimEndingNewline:n=!0,defaultLanguage:i=\"text\",fallbackLanguage:o}=u,a=t.getLoadedLanguages();e.options.highlight=(s,l=\"text\",d)=>{l===\"\"&&(l=i),o&&!a.includes(l)&&(l=o);const c=(r==null?void 0:r(d,s,l))||{},h={...u,lang:l,meta:{...u.meta,...c,__raw:d}},p=[];return p.push({name:\"@shikijs/markdown-it:block-class\",code(m){m.properties.class=`language-${l}`}}),n&&s.endsWith(`\n`)&&(s=s.slice(0,-1)),t.codeToHtml(s,{...h,transformers:[...p,...h.transformers||[]]})}}async function ps(e){const t=(\"themes\"in e?Object.values(e.themes):[e.theme]).filter(Boolean),u=await ds({themes:t,langs:e.langs||Object.keys(Rr)});return function(r){fs(r,u,e)}}const nr={};function ms(e){let t=nr[e];if(t)return t;t=nr[e]=[];for(let u=0;u<128;u++){const r=String.fromCharCode(u);t.push(r)}for(let u=0;u<e.length;u++){const r=e.charCodeAt(u);t[r]=\"%\"+(\"0\"+r.toString(16).toUpperCase()).slice(-2)}return t}function $e(e,t){typeof t!=\"string\"&&(t=$e.defaultChars);const u=ms(t);return e.replace(/(%[a-f0-9]{2})+/gi,function(r){let n=\"\";for(let i=0,o=r.length;i<o;i+=3){const a=parseInt(r.slice(i+1,i+3),16);if(a<128){n+=u[a];continue}if((a&224)===192&&i+3<o){const s=parseInt(r.slice(i+4,i+6),16);if((s&192)===128){const l=a<<6&1984|s&63;l<128?n+=\"��\":n+=String.fromCharCode(l),i+=3;continue}}if((a&240)===224&&i+6<o){const s=parseInt(r.slice(i+4,i+6),16),l=parseInt(r.slice(i+7,i+9),16);if((s&192)===128&&(l&192)===128){const d=a<<12&61440|s<<6&4032|l&63;d<2048||d>=55296&&d<=57343?n+=\"���\":n+=String.fromCharCode(d),i+=6;continue}}if((a&248)===240&&i+9<o){const s=parseInt(r.slice(i+4,i+6),16),l=parseInt(r.slice(i+7,i+9),16),d=parseInt(r.slice(i+10,i+12),16);if((s&192)===128&&(l&192)===128&&(d&192)===128){let c=a<<18&1835008|s<<12&258048|l<<6&4032|d&63;c<65536||c>1114111?n+=\"����\":(c-=65536,n+=String.fromCharCode(55296+(c>>10),56320+(c&1023))),i+=9;continue}}n+=\"�\"}return n})}$e.defaultChars=\";/?:@&=+$,#\";$e.componentChars=\"\";const ir={};function hs(e){let t=ir[e];if(t)return t;t=ir[e]=[];for(let u=0;u<128;u++){const r=String.fromCharCode(u);/^[0-9a-z]$/i.test(r)?t.push(r):t.push(\"%\"+(\"0\"+u.toString(16).toUpperCase()).slice(-2))}for(let u=0;u<e.length;u++)t[e.charCodeAt(u)]=e[u];return t}function st(e,t,u){typeof t!=\"string\"&&(u=t,t=st.defaultChars),typeof u>\"u\"&&(u=!0);const r=hs(t);let n=\"\";for(let i=0,o=e.length;i<o;i++){const a=e.charCodeAt(i);if(u&&a===37&&i+2<o&&/^[0-9a-f]{2}$/i.test(e.slice(i+1,i+3))){n+=e.slice(i,i+3),i+=2;continue}if(a<128){n+=r[a];continue}if(a>=55296&&a<=57343){if(a>=55296&&a<=56319&&i+1<o){const s=e.charCodeAt(i+1);if(s>=56320&&s<=57343){n+=encodeURIComponent(e[i]+e[i+1]),i++;continue}}n+=\"%EF%BF%BD\";continue}n+=encodeURIComponent(e[i])}return n}st.defaultChars=\";/?:@&=+$,-_.!~*'()#\";st.componentChars=\"-_.!~*'()\";function Su(e){let t=\"\";return t+=e.protocol||\"\",t+=e.slashes?\"//\":\"\",t+=e.auth?e.auth+\"@\":\"\",e.hostname&&e.hostname.indexOf(\":\")!==-1?t+=\"[\"+e.hostname+\"]\":t+=e.hostname||\"\",t+=e.port?\":\"+e.port:\"\",t+=e.pathname||\"\",t+=e.search||\"\",t+=e.hash||\"\",t}function Rt(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}const _s=/^([a-z0-9.+-]+:)/i,gs=/:[0-9]*$/,bs=/^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,ys=[\"<\",\">\",'\"',\"`\",\" \",\"\\r\",`\n`,\"\t\"],xs=[\"{\",\"}\",\"|\",\"\\\\\",\"^\",\"`\"].concat(ys),Es=[\"'\"].concat(xs),or=[\"%\",\"/\",\"?\",\";\",\"#\"].concat(Es),ar=[\"/\",\"?\",\"#\"],ks=255,sr=/^[+a-z0-9A-Z_-]{0,63}$/,As=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,lr={javascript:!0,\"javascript:\":!0},cr={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,\"http:\":!0,\"https:\":!0,\"ftp:\":!0,\"gopher:\":!0,\"file:\":!0};function Tu(e,t){if(e&&e instanceof Rt)return e;const u=new Rt;return u.parse(e,t),u}Rt.prototype.parse=function(e,t){let u,r,n,i=e;if(i=i.trim(),!t&&e.split(\"#\").length===1){const l=bs.exec(i);if(l)return this.pathname=l[1],l[2]&&(this.search=l[2]),this}let o=_s.exec(i);if(o&&(o=o[0],u=o.toLowerCase(),this.protocol=o,i=i.substr(o.length)),(t||o||i.match(/^\\/\\/[^@\\/]+@[^@\\/]+/))&&(n=i.substr(0,2)===\"//\",n&&!(o&&lr[o])&&(i=i.substr(2),this.slashes=!0)),!lr[o]&&(n||o&&!cr[o])){let l=-1;for(let m=0;m<ar.length;m++)r=i.indexOf(ar[m]),r!==-1&&(l===-1||r<l)&&(l=r);let d,c;l===-1?c=i.lastIndexOf(\"@\"):c=i.lastIndexOf(\"@\",l),c!==-1&&(d=i.slice(0,c),i=i.slice(c+1),this.auth=d),l=-1;for(let m=0;m<or.length;m++)r=i.indexOf(or[m]),r!==-1&&(l===-1||r<l)&&(l=r);l===-1&&(l=i.length),i[l-1]===\":\"&&l--;const h=i.slice(0,l);i=i.slice(l),this.parseHost(h),this.hostname=this.hostname||\"\";const p=this.hostname[0]===\"[\"&&this.hostname[this.hostname.length-1]===\"]\";if(!p){const m=this.hostname.split(/\\./);for(let x=0,g=m.length;x<g;x++){const E=m[x];if(E&&!E.match(sr)){let _=\"\";for(let y=0,k=E.length;y<k;y++)E.charCodeAt(y)>127?_+=\"x\":_+=E[y];if(!_.match(sr)){const y=m.slice(0,x),k=m.slice(x+1),D=E.match(As);D&&(y.push(D[1]),k.unshift(D[2])),k.length&&(i=k.join(\".\")+i),this.hostname=y.join(\".\");break}}}}this.hostname.length>ks&&(this.hostname=\"\"),p&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}const a=i.indexOf(\"#\");a!==-1&&(this.hash=i.substr(a),i=i.slice(0,a));const s=i.indexOf(\"?\");return s!==-1&&(this.search=i.substr(s),i=i.slice(0,s)),i&&(this.pathname=i),cr[u]&&this.hostname&&!this.pathname&&(this.pathname=\"\"),this};Rt.prototype.parseHost=function(e){let t=gs.exec(e);t&&(t=t[0],t!==\":\"&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)};const vs=Object.freeze(Object.defineProperty({__proto__:null,decode:$e,encode:st,format:Su,parse:Tu},Symbol.toStringTag,{value:\"Module\"})),gn=/[\\0-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/,bn=/[\\0-\\x1F\\x7F-\\x9F]/,Cs=/[\\xAD\\u0600-\\u0605\\u061C\\u06DD\\u070F\\u0890\\u0891\\u08E2\\u180E\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\uFEFF\\uFFF9-\\uFFFB]|\\uD804[\\uDCBD\\uDCCD]|\\uD80D[\\uDC30-\\uDC3F]|\\uD82F[\\uDCA0-\\uDCA3]|\\uD834[\\uDD73-\\uDD7A]|\\uDB40[\\uDC01\\uDC20-\\uDC7F]/,Ru=/[!-#%-\\*,-\\/:;\\?@\\[-\\]_\\{\\}\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061D-\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1B7D\\u1B7E\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52-\\u2E5D\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]|\\uD800[\\uDD00-\\uDD02\\uDF9F\\uDFD0]|\\uD801\\uDD6F|\\uD802[\\uDC57\\uDD1F\\uDD3F\\uDE50-\\uDE58\\uDE7F\\uDEF0-\\uDEF6\\uDF39-\\uDF3F\\uDF99-\\uDF9C]|\\uD803[\\uDEAD\\uDF55-\\uDF59\\uDF86-\\uDF89]|\\uD804[\\uDC47-\\uDC4D\\uDCBB\\uDCBC\\uDCBE-\\uDCC1\\uDD40-\\uDD43\\uDD74\\uDD75\\uDDC5-\\uDDC8\\uDDCD\\uDDDB\\uDDDD-\\uDDDF\\uDE38-\\uDE3D\\uDEA9]|\\uD805[\\uDC4B-\\uDC4F\\uDC5A\\uDC5B\\uDC5D\\uDCC6\\uDDC1-\\uDDD7\\uDE41-\\uDE43\\uDE60-\\uDE6C\\uDEB9\\uDF3C-\\uDF3E]|\\uD806[\\uDC3B\\uDD44-\\uDD46\\uDDE2\\uDE3F-\\uDE46\\uDE9A-\\uDE9C\\uDE9E-\\uDEA2\\uDF00-\\uDF09]|\\uD807[\\uDC41-\\uDC45\\uDC70\\uDC71\\uDEF7\\uDEF8\\uDF43-\\uDF4F\\uDFFF]|\\uD809[\\uDC70-\\uDC74]|\\uD80B[\\uDFF1\\uDFF2]|\\uD81A[\\uDE6E\\uDE6F\\uDEF5\\uDF37-\\uDF3B\\uDF44]|\\uD81B[\\uDE97-\\uDE9A\\uDFE2]|\\uD82F\\uDC9F|\\uD836[\\uDE87-\\uDE8B]|\\uD83A[\\uDD5E\\uDD5F]/,yn=/[\\$\\+<->\\^`\\|~\\xA2-\\xA6\\xA8\\xA9\\xAC\\xAE-\\xB1\\xB4\\xB8\\xD7\\xF7\\u02C2-\\u02C5\\u02D2-\\u02DF\\u02E5-\\u02EB\\u02ED\\u02EF-\\u02FF\\u0375\\u0384\\u0385\\u03F6\\u0482\\u058D-\\u058F\\u0606-\\u0608\\u060B\\u060E\\u060F\\u06DE\\u06E9\\u06FD\\u06FE\\u07F6\\u07FE\\u07FF\\u0888\\u09F2\\u09F3\\u09FA\\u09FB\\u0AF1\\u0B70\\u0BF3-\\u0BFA\\u0C7F\\u0D4F\\u0D79\\u0E3F\\u0F01-\\u0F03\\u0F13\\u0F15-\\u0F17\\u0F1A-\\u0F1F\\u0F34\\u0F36\\u0F38\\u0FBE-\\u0FC5\\u0FC7-\\u0FCC\\u0FCE\\u0FCF\\u0FD5-\\u0FD8\\u109E\\u109F\\u1390-\\u1399\\u166D\\u17DB\\u1940\\u19DE-\\u19FF\\u1B61-\\u1B6A\\u1B74-\\u1B7C\\u1FBD\\u1FBF-\\u1FC1\\u1FCD-\\u1FCF\\u1FDD-\\u1FDF\\u1FED-\\u1FEF\\u1FFD\\u1FFE\\u2044\\u2052\\u207A-\\u207C\\u208A-\\u208C\\u20A0-\\u20C0\\u2100\\u2101\\u2103-\\u2106\\u2108\\u2109\\u2114\\u2116-\\u2118\\u211E-\\u2123\\u2125\\u2127\\u2129\\u212E\\u213A\\u213B\\u2140-\\u2144\\u214A-\\u214D\\u214F\\u218A\\u218B\\u2190-\\u2307\\u230C-\\u2328\\u232B-\\u2426\\u2440-\\u244A\\u249C-\\u24E9\\u2500-\\u2767\\u2794-\\u27C4\\u27C7-\\u27E5\\u27F0-\\u2982\\u2999-\\u29D7\\u29DC-\\u29FB\\u29FE-\\u2B73\\u2B76-\\u2B95\\u2B97-\\u2BFF\\u2CE5-\\u2CEA\\u2E50\\u2E51\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFF\\u3004\\u3012\\u3013\\u3020\\u3036\\u3037\\u303E\\u303F\\u309B\\u309C\\u3190\\u3191\\u3196-\\u319F\\u31C0-\\u31E3\\u31EF\\u3200-\\u321E\\u322A-\\u3247\\u3250\\u3260-\\u327F\\u328A-\\u32B0\\u32C0-\\u33FF\\u4DC0-\\u4DFF\\uA490-\\uA4C6\\uA700-\\uA716\\uA720\\uA721\\uA789\\uA78A\\uA828-\\uA82B\\uA836-\\uA839\\uAA77-\\uAA79\\uAB5B\\uAB6A\\uAB6B\\uFB29\\uFBB2-\\uFBC2\\uFD40-\\uFD4F\\uFDCF\\uFDFC-\\uFDFF\\uFE62\\uFE64-\\uFE66\\uFE69\\uFF04\\uFF0B\\uFF1C-\\uFF1E\\uFF3E\\uFF40\\uFF5C\\uFF5E\\uFFE0-\\uFFE6\\uFFE8-\\uFFEE\\uFFFC\\uFFFD]|\\uD800[\\uDD37-\\uDD3F\\uDD79-\\uDD89\\uDD8C-\\uDD8E\\uDD90-\\uDD9C\\uDDA0\\uDDD0-\\uDDFC]|\\uD802[\\uDC77\\uDC78\\uDEC8]|\\uD805\\uDF3F|\\uD807[\\uDFD5-\\uDFF1]|\\uD81A[\\uDF3C-\\uDF3F\\uDF45]|\\uD82F\\uDC9C|\\uD833[\\uDF50-\\uDFC3]|\\uD834[\\uDC00-\\uDCF5\\uDD00-\\uDD26\\uDD29-\\uDD64\\uDD6A-\\uDD6C\\uDD83\\uDD84\\uDD8C-\\uDDA9\\uDDAE-\\uDDEA\\uDE00-\\uDE41\\uDE45\\uDF00-\\uDF56]|\\uD835[\\uDEC1\\uDEDB\\uDEFB\\uDF15\\uDF35\\uDF4F\\uDF6F\\uDF89\\uDFA9\\uDFC3]|\\uD836[\\uDC00-\\uDDFF\\uDE37-\\uDE3A\\uDE6D-\\uDE74\\uDE76-\\uDE83\\uDE85\\uDE86]|\\uD838[\\uDD4F\\uDEFF]|\\uD83B[\\uDCAC\\uDCB0\\uDD2E\\uDEF0\\uDEF1]|\\uD83C[\\uDC00-\\uDC2B\\uDC30-\\uDC93\\uDCA0-\\uDCAE\\uDCB1-\\uDCBF\\uDCC1-\\uDCCF\\uDCD1-\\uDCF5\\uDD0D-\\uDDAD\\uDDE6-\\uDE02\\uDE10-\\uDE3B\\uDE40-\\uDE48\\uDE50\\uDE51\\uDE60-\\uDE65\\uDF00-\\uDFFF]|\\uD83D[\\uDC00-\\uDED7\\uDEDC-\\uDEEC\\uDEF0-\\uDEFC\\uDF00-\\uDF76\\uDF7B-\\uDFD9\\uDFE0-\\uDFEB\\uDFF0]|\\uD83E[\\uDC00-\\uDC0B\\uDC10-\\uDC47\\uDC50-\\uDC59\\uDC60-\\uDC87\\uDC90-\\uDCAD\\uDCB0\\uDCB1\\uDD00-\\uDE53\\uDE60-\\uDE6D\\uDE70-\\uDE7C\\uDE80-\\uDE88\\uDE90-\\uDEBD\\uDEBF-\\uDEC5\\uDECE-\\uDEDB\\uDEE0-\\uDEE8\\uDEF0-\\uDEF8\\uDF00-\\uDF92\\uDF94-\\uDFCA]/,xn=/[ \\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000]/,Ds=Object.freeze(Object.defineProperty({__proto__:null,Any:gn,Cc:bn,Cf:Cs,P:Ru,S:yn,Z:xn},Symbol.toStringTag,{value:\"Module\"})),ws=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\\0\\0\\0\\0\\0\\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\\\bfms¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTǇǋǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\\0\\0\\0͔͂\\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\\0\\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\\0\\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\\0ц\\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\\0\\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\\0\\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\\0ֿ\\0\\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\\0ࣃbleBracket;柦nǔࣈ\\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻\"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\\0စbleBracket;柧nǔည\\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\\0\\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉ǲኀ\\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\\0ጬጱ\\0\\0\\0\\0\\0ጸጽ፷ᎅ\\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻ǲᕔ\\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\\0ᖰᖶᖿ\\0\\0\\0\\0ᗆᗛᗫᙟ᙭\\0ᚕ᚛ᚲᚹ\\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\\0\\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\\0\\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\\0ᠳƲᠯ\\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\\0᧨ᨑᨕᨲ\\0ᨷᩐ\\0\\0᪴\\0\\0᫁\\0\\0ᬡᬮ᭍᭒\\0᯽\\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\\0\\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\\0\\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\\0\\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\\0\\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\\0\\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\\0\\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤĳạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\\0\\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\\0ᾞ\\0ᾡᾧ\\0\\0ῆῌ\\0ΐ\\0ῦῪ \\0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ﬃɩᾹ\\0\\0᾽g;耀ﬀig;耀ﬄ;쀀𝔣lig;耀ﬁlig;쀀fjƀaltῙ῜ῡt;晭ig;耀ﬂns;斱of;䆒ǰ΅\\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒α‚‰‸⁅⁈\\0⁐β•‥‧‪‬\\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\\0‶;慔;慖ʴ‾⁁\\0\\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\\0⊪\\0⊸⋅⋎\\0⋕⋳\\0\\0⋸⌢⍧⍢⍿\\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\\0⒪\\0⒱\\0\\0\\0\\0\\0⒵Ⓔ\\0ⓆⓈⓍ\\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସǳ⧟\\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\\0\\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0ⴭ\\0ⴸⵈⵠⵥ⵲ⶄᬇ\\0\\0ⶍⶫ\\0ⷈⷎ\\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗǈⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\\0\\0⵼\\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\\0⹽\\0⺀⺝\\0⺢⺹\\0\\0⻋ຜ\\0⼓\\0\\0⼫⾼\\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\\0\\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\\0㍺㎤\\0\\0㏬㏰\\0㐨㑈㑚㒭㒱㓊㓱\\0㘖\\0\\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\\0\\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\\0㙾㛂\\0\\0\\0\\0\\0㛛㜃\\0㜉㝬\\0\\0\\0㞇ɲ㙖\\0\\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼ǲ㚋\\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\\0\\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\\0\\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\\0㪋\\0㪐㪛\\0\\0㪝㪨㪫㪯\\0\\0㫃㫎\\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split(\"\").map(e=>e.charCodeAt(0))),Ss=new Uint16Array(\"Ȁaglq\t\u0015\u0018\\x1Bɭ\u000f\\0\\0\u0012p;䀦os;䀧t;䀾t;䀼uot;䀢\".split(\"\").map(e=>e.charCodeAt(0)));var Qt;const Ts=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),Rs=(Qt=String.fromCodePoint)!==null&&Qt!==void 0?Qt:function(e){let t=\"\";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|e&1023),t+=String.fromCharCode(e),t};function Ls(e){var t;return e>=55296&&e<=57343||e>1114111?65533:(t=Ts.get(e))!==null&&t!==void 0?t:e}var J;(function(e){e[e.NUM=35]=\"NUM\",e[e.SEMI=59]=\"SEMI\",e[e.EQUALS=61]=\"EQUALS\",e[e.ZERO=48]=\"ZERO\",e[e.NINE=57]=\"NINE\",e[e.LOWER_A=97]=\"LOWER_A\",e[e.LOWER_F=102]=\"LOWER_F\",e[e.LOWER_X=120]=\"LOWER_X\",e[e.LOWER_Z=122]=\"LOWER_Z\",e[e.UPPER_A=65]=\"UPPER_A\",e[e.UPPER_F=70]=\"UPPER_F\",e[e.UPPER_Z=90]=\"UPPER_Z\"})(J||(J={}));const Ps=32;var Se;(function(e){e[e.VALUE_LENGTH=49152]=\"VALUE_LENGTH\",e[e.BRANCH_LENGTH=16256]=\"BRANCH_LENGTH\",e[e.JUMP_TABLE=127]=\"JUMP_TABLE\"})(Se||(Se={}));function hu(e){return e>=J.ZERO&&e<=J.NINE}function Is(e){return e>=J.UPPER_A&&e<=J.UPPER_F||e>=J.LOWER_A&&e<=J.LOWER_F}function Os(e){return e>=J.UPPER_A&&e<=J.UPPER_Z||e>=J.LOWER_A&&e<=J.LOWER_Z||hu(e)}function Fs(e){return e===J.EQUALS||Os(e)}var W;(function(e){e[e.EntityStart=0]=\"EntityStart\",e[e.NumericStart=1]=\"NumericStart\",e[e.NumericDecimal=2]=\"NumericDecimal\",e[e.NumericHex=3]=\"NumericHex\",e[e.NamedEntity=4]=\"NamedEntity\"})(W||(W={}));var De;(function(e){e[e.Legacy=0]=\"Legacy\",e[e.Strict=1]=\"Strict\",e[e.Attribute=2]=\"Attribute\"})(De||(De={}));class Ms{constructor(t,u,r){this.decodeTree=t,this.emitCodePoint=u,this.errors=r,this.state=W.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=De.Strict}startEntity(t){this.decodeMode=t,this.state=W.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(t,u){switch(this.state){case W.EntityStart:return t.charCodeAt(u)===J.NUM?(this.state=W.NumericStart,this.consumed+=1,this.stateNumericStart(t,u+1)):(this.state=W.NamedEntity,this.stateNamedEntity(t,u));case W.NumericStart:return this.stateNumericStart(t,u);case W.NumericDecimal:return this.stateNumericDecimal(t,u);case W.NumericHex:return this.stateNumericHex(t,u);case W.NamedEntity:return this.stateNamedEntity(t,u)}}stateNumericStart(t,u){return u>=t.length?-1:(t.charCodeAt(u)|Ps)===J.LOWER_X?(this.state=W.NumericHex,this.consumed+=1,this.stateNumericHex(t,u+1)):(this.state=W.NumericDecimal,this.stateNumericDecimal(t,u))}addToNumericResult(t,u,r,n){if(u!==r){const i=r-u;this.result=this.result*Math.pow(n,i)+parseInt(t.substr(u,i),n),this.consumed+=i}}stateNumericHex(t,u){const r=u;for(;u<t.length;){const n=t.charCodeAt(u);if(hu(n)||Is(n))u+=1;else return this.addToNumericResult(t,r,u,16),this.emitNumericEntity(n,3)}return this.addToNumericResult(t,r,u,16),-1}stateNumericDecimal(t,u){const r=u;for(;u<t.length;){const n=t.charCodeAt(u);if(hu(n))u+=1;else return this.addToNumericResult(t,r,u,10),this.emitNumericEntity(n,2)}return this.addToNumericResult(t,r,u,10),-1}emitNumericEntity(t,u){var r;if(this.consumed<=u)return(r=this.errors)===null||r===void 0||r.absenceOfDigitsInNumericCharacterReference(this.consumed),0;if(t===J.SEMI)this.consumed+=1;else if(this.decodeMode===De.Strict)return 0;return this.emitCodePoint(Ls(this.result),this.consumed),this.errors&&(t!==J.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed}stateNamedEntity(t,u){const{decodeTree:r}=this;let n=r[this.treeIndex],i=(n&Se.VALUE_LENGTH)>>14;for(;u<t.length;u++,this.excess++){const o=t.charCodeAt(u);if(this.treeIndex=Ns(r,n,this.treeIndex+Math.max(1,i),o),this.treeIndex<0)return this.result===0||this.decodeMode===De.Attribute&&(i===0||Fs(o))?0:this.emitNotTerminatedNamedEntity();if(n=r[this.treeIndex],i=(n&Se.VALUE_LENGTH)>>14,i!==0){if(o===J.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);this.decodeMode!==De.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1}emitNotTerminatedNamedEntity(){var t;const{result:u,decodeTree:r}=this,n=(r[u]&Se.VALUE_LENGTH)>>14;return this.emitNamedEntityData(u,n,this.consumed),(t=this.errors)===null||t===void 0||t.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(t,u,r){const{decodeTree:n}=this;return this.emitCodePoint(u===1?n[t]&~Se.VALUE_LENGTH:n[t+1],r),u===3&&this.emitCodePoint(n[t+2],r),r}end(){var t;switch(this.state){case W.NamedEntity:return this.result!==0&&(this.decodeMode!==De.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case W.NumericDecimal:return this.emitNumericEntity(0,2);case W.NumericHex:return this.emitNumericEntity(0,3);case W.NumericStart:return(t=this.errors)===null||t===void 0||t.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case W.EntityStart:return 0}}}function En(e){let t=\"\";const u=new Ms(e,r=>t+=Rs(r));return function(n,i){let o=0,a=0;for(;(a=n.indexOf(\"&\",a))>=0;){t+=n.slice(o,a),u.startEntity(i);const l=u.write(n,a+1);if(l<0){o=a+u.end();break}o=a+l,a=l===0?o+1:o}const s=t+n.slice(o);return t=\"\",s}}function Ns(e,t,u,r){const n=(t&Se.BRANCH_LENGTH)>>7,i=t&Se.JUMP_TABLE;if(n===0)return i!==0&&r===i?u:-1;if(i){const s=r-i;return s<0||s>=n?-1:e[u+s]-1}let o=u,a=o+n-1;for(;o<=a;){const s=o+a>>>1,l=e[s];if(l<r)o=s+1;else if(l>r)a=s-1;else return e[s+n]}return-1}const Vs=En(ws);En(Ss);function kn(e,t=De.Legacy){return Vs(e,t)}function Bs(e){return Object.prototype.toString.call(e)}function Lu(e){return Bs(e)===\"[object String]\"}const zs=Object.prototype.hasOwnProperty;function js(e,t){return zs.call(e,t)}function Nt(e){return Array.prototype.slice.call(arguments,1).forEach(function(u){if(u){if(typeof u!=\"object\")throw new TypeError(u+\"must be object\");Object.keys(u).forEach(function(r){e[r]=u[r]})}}),e}function An(e,t,u){return[].concat(e.slice(0,t),u,e.slice(t+1))}function Pu(e){return!(e>=55296&&e<=57343||e>=64976&&e<=65007||(e&65535)===65535||(e&65535)===65534||e>=0&&e<=8||e===11||e>=14&&e<=31||e>=127&&e<=159||e>1114111)}function Lt(e){if(e>65535){e-=65536;const t=55296+(e>>10),u=56320+(e&1023);return String.fromCharCode(t,u)}return String.fromCharCode(e)}const vn=/\\\\([!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^_`{|}~])/g,$s=/&([a-z#][a-z0-9]{1,31});/gi,qs=new RegExp(vn.source+\"|\"+$s.source,\"gi\"),Us=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i;function Gs(e,t){if(t.charCodeAt(0)===35&&Us.test(t)){const r=t[1].toLowerCase()===\"x\"?parseInt(t.slice(2),16):parseInt(t.slice(1),10);return Pu(r)?Lt(r):e}const u=kn(e);return u!==e?u:e}function Hs(e){return e.indexOf(\"\\\\\")<0?e:e.replace(vn,\"$1\")}function qe(e){return e.indexOf(\"\\\\\")<0&&e.indexOf(\"&\")<0?e:e.replace(qs,function(t,u,r){return u||Gs(t,r)})}const Ws=/[&<>\"]/,Zs=/[&<>\"]/g,Js={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\"};function Ks(e){return Js[e]}function Te(e){return Ws.test(e)?e.replace(Zs,Ks):e}const Ys=/[.?*+^$[\\]\\\\(){}|-]/g;function Qs(e){return e.replace(Ys,\"\\\\$&\")}function N(e){switch(e){case 9:case 32:return!0}return!1}function tt(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1}function ut(e){return Ru.test(e)||yn.test(e)}function rt(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}}function Vt(e){return e=e.trim().replace(/\\s+/g,\" \"),\"ẞ\".toLowerCase()===\"Ṿ\"&&(e=e.replace(/ẞ/g,\"ß\")),e.toLowerCase().toUpperCase()}const Xs={mdurl:vs,ucmicro:Ds},el=Object.freeze(Object.defineProperty({__proto__:null,arrayReplaceAt:An,assign:Nt,escapeHtml:Te,escapeRE:Qs,fromCodePoint:Lt,has:js,isMdAsciiPunct:rt,isPunctChar:ut,isSpace:N,isString:Lu,isValidEntityCode:Pu,isWhiteSpace:tt,lib:Xs,normalizeReference:Vt,unescapeAll:qe,unescapeMd:Hs},Symbol.toStringTag,{value:\"Module\"}));function tl(e,t,u){let r,n,i,o;const a=e.posMax,s=e.pos;for(e.pos=t+1,r=1;e.pos<a;){if(i=e.src.charCodeAt(e.pos),i===93&&(r--,r===0)){n=!0;break}if(o=e.pos,e.md.inline.skipToken(e),i===91){if(o===e.pos-1)r++;else if(u)return e.pos=s,-1}}let l=-1;return n&&(l=e.pos),e.pos=s,l}function ul(e,t,u){let r,n=t;const i={ok:!1,pos:0,str:\"\"};if(e.charCodeAt(n)===60){for(n++;n<u;){if(r=e.charCodeAt(n),r===10||r===60)return i;if(r===62)return i.pos=n+1,i.str=qe(e.slice(t+1,n)),i.ok=!0,i;if(r===92&&n+1<u){n+=2;continue}n++}return i}let o=0;for(;n<u&&(r=e.charCodeAt(n),!(r===32||r<32||r===127));){if(r===92&&n+1<u){if(e.charCodeAt(n+1)===32)break;n+=2;continue}if(r===40&&(o++,o>32))return i;if(r===41){if(o===0)break;o--}n++}return t===n||o!==0||(i.str=qe(e.slice(t,n)),i.pos=n,i.ok=!0),i}function rl(e,t,u,r){let n,i=t;const o={ok:!1,can_continue:!1,pos:0,str:\"\",marker:0};if(r)o.str=r.str,o.marker=r.marker;else{if(i>=u)return o;let a=e.charCodeAt(i);if(a!==34&&a!==39&&a!==40)return o;t++,i++,a===40&&(a=41),o.marker=a}for(;i<u;){if(n=e.charCodeAt(i),n===o.marker)return o.pos=i+1,o.str+=qe(e.slice(t,i)),o.ok=!0,o;if(n===40&&o.marker===41)return o;n===92&&i+1<u&&i++,i++}return o.can_continue=!0,o.str+=qe(e.slice(t,i)),o}const nl=Object.freeze(Object.defineProperty({__proto__:null,parseLinkDestination:ul,parseLinkLabel:tl,parseLinkTitle:rl},Symbol.toStringTag,{value:\"Module\"})),be={};be.code_inline=function(e,t,u,r,n){const i=e[t];return\"<code\"+n.renderAttrs(i)+\">\"+Te(i.content)+\"</code>\"};be.code_block=function(e,t,u,r,n){const i=e[t];return\"<pre\"+n.renderAttrs(i)+\"><code>\"+Te(e[t].content)+`</code></pre>\n`};be.fence=function(e,t,u,r,n){const i=e[t],o=i.info?qe(i.info).trim():\"\";let a=\"\",s=\"\";if(o){const d=o.split(/(\\s+)/g);a=d[0],s=d.slice(2).join(\"\")}let l;if(u.highlight?l=u.highlight(i.content,a,s)||Te(i.content):l=Te(i.content),l.indexOf(\"<pre\")===0)return l+`\n`;if(o){const d=i.attrIndex(\"class\"),c=i.attrs?i.attrs.slice():[];d<0?c.push([\"class\",u.langPrefix+a]):(c[d]=c[d].slice(),c[d][1]+=\" \"+u.langPrefix+a);const h={attrs:c};return`<pre><code${n.renderAttrs(h)}>${l}</code></pre>\n`}return`<pre><code${n.renderAttrs(i)}>${l}</code></pre>\n`};be.image=function(e,t,u,r,n){const i=e[t];return i.attrs[i.attrIndex(\"alt\")][1]=n.renderInlineAsText(i.children,u,r),n.renderToken(e,t,u)};be.hardbreak=function(e,t,u){return u.xhtmlOut?`<br />\n`:`<br>\n`};be.softbreak=function(e,t,u){return u.breaks?u.xhtmlOut?`<br />\n`:`<br>\n`:`\n`};be.text=function(e,t){return Te(e[t].content)};be.html_block=function(e,t){return e[t].content};be.html_inline=function(e,t){return e[t].content};function He(){this.rules=Nt({},be)}He.prototype.renderAttrs=function(t){let u,r,n;if(!t.attrs)return\"\";for(n=\"\",u=0,r=t.attrs.length;u<r;u++)n+=\" \"+Te(t.attrs[u][0])+'=\"'+Te(t.attrs[u][1])+'\"';return n};He.prototype.renderToken=function(t,u,r){const n=t[u];let i=\"\";if(n.hidden)return\"\";n.block&&n.nesting!==-1&&u&&t[u-1].hidden&&(i+=`\n`),i+=(n.nesting===-1?\"</\":\"<\")+n.tag,i+=this.renderAttrs(n),n.nesting===0&&r.xhtmlOut&&(i+=\" /\");let o=!1;if(n.block&&(o=!0,n.nesting===1&&u+1<t.length)){const a=t[u+1];(a.type===\"inline\"||a.hidden||a.nesting===-1&&a.tag===n.tag)&&(o=!1)}return i+=o?`>\n`:\">\",i};He.prototype.renderInline=function(e,t,u){let r=\"\";const n=this.rules;for(let i=0,o=e.length;i<o;i++){const a=e[i].type;typeof n[a]<\"u\"?r+=n[a](e,i,t,u,this):r+=this.renderToken(e,i,t)}return r};He.prototype.renderInlineAsText=function(e,t,u){let r=\"\";for(let n=0,i=e.length;n<i;n++)switch(e[n].type){case\"text\":r+=e[n].content;break;case\"image\":r+=this.renderInlineAsText(e[n].children,t,u);break;case\"html_inline\":case\"html_block\":r+=e[n].content;break;case\"softbreak\":case\"hardbreak\":r+=`\n`;break}return r};He.prototype.render=function(e,t,u){let r=\"\";const n=this.rules;for(let i=0,o=e.length;i<o;i++){const a=e[i].type;a===\"inline\"?r+=this.renderInline(e[i].children,t,u):typeof n[a]<\"u\"?r+=n[a](e,i,t,u,this):r+=this.renderToken(e,i,t,u)}return r};function te(){this.__rules__=[],this.__cache__=null}te.prototype.__find__=function(e){for(let t=0;t<this.__rules__.length;t++)if(this.__rules__[t].name===e)return t;return-1};te.prototype.__compile__=function(){const e=this,t=[\"\"];e.__rules__.forEach(function(u){u.enabled&&u.alt.forEach(function(r){t.indexOf(r)<0&&t.push(r)})}),e.__cache__={},t.forEach(function(u){e.__cache__[u]=[],e.__rules__.forEach(function(r){r.enabled&&(u&&r.alt.indexOf(u)<0||e.__cache__[u].push(r.fn))})})};te.prototype.at=function(e,t,u){const r=this.__find__(e),n=u||{};if(r===-1)throw new Error(\"Parser rule not found: \"+e);this.__rules__[r].fn=t,this.__rules__[r].alt=n.alt||[],this.__cache__=null};te.prototype.before=function(e,t,u,r){const n=this.__find__(e),i=r||{};if(n===-1)throw new Error(\"Parser rule not found: \"+e);this.__rules__.splice(n,0,{name:t,enabled:!0,fn:u,alt:i.alt||[]}),this.__cache__=null};te.prototype.after=function(e,t,u,r){const n=this.__find__(e),i=r||{};if(n===-1)throw new Error(\"Parser rule not found: \"+e);this.__rules__.splice(n+1,0,{name:t,enabled:!0,fn:u,alt:i.alt||[]}),this.__cache__=null};te.prototype.push=function(e,t,u){const r=u||{};this.__rules__.push({name:e,enabled:!0,fn:t,alt:r.alt||[]}),this.__cache__=null};te.prototype.enable=function(e,t){Array.isArray(e)||(e=[e]);const u=[];return e.forEach(function(r){const n=this.__find__(r);if(n<0){if(t)return;throw new Error(\"Rules manager: invalid rule name \"+r)}this.__rules__[n].enabled=!0,u.push(r)},this),this.__cache__=null,u};te.prototype.enableOnly=function(e,t){Array.isArray(e)||(e=[e]),this.__rules__.forEach(function(u){u.enabled=!1}),this.enable(e,t)};te.prototype.disable=function(e,t){Array.isArray(e)||(e=[e]);const u=[];return e.forEach(function(r){const n=this.__find__(r);if(n<0){if(t)return;throw new Error(\"Rules manager: invalid rule name \"+r)}this.__rules__[n].enabled=!1,u.push(r)},this),this.__cache__=null,u};te.prototype.getRules=function(e){return this.__cache__===null&&this.__compile__(),this.__cache__[e]||[]};function ce(e,t,u){this.type=e,this.tag=t,this.attrs=null,this.map=null,this.nesting=u,this.level=0,this.children=null,this.content=\"\",this.markup=\"\",this.info=\"\",this.meta=null,this.block=!1,this.hidden=!1}ce.prototype.attrIndex=function(t){if(!this.attrs)return-1;const u=this.attrs;for(let r=0,n=u.length;r<n;r++)if(u[r][0]===t)return r;return-1};ce.prototype.attrPush=function(t){this.attrs?this.attrs.push(t):this.attrs=[t]};ce.prototype.attrSet=function(t,u){const r=this.attrIndex(t),n=[t,u];r<0?this.attrPush(n):this.attrs[r]=n};ce.prototype.attrGet=function(t){const u=this.attrIndex(t);let r=null;return u>=0&&(r=this.attrs[u][1]),r};ce.prototype.attrJoin=function(t,u){const r=this.attrIndex(t);r<0?this.attrPush([t,u]):this.attrs[r][1]=this.attrs[r][1]+\" \"+u};function Cn(e,t,u){this.src=e,this.env=u,this.tokens=[],this.inlineMode=!1,this.md=t}Cn.prototype.Token=ce;const il=/\\r\\n?|\\n/g,ol=/\\0/g;function al(e){let t;t=e.src.replace(il,`\n`),t=t.replace(ol,\"�\"),e.src=t}function sl(e){let t;e.inlineMode?(t=new e.Token(\"inline\",\"\",0),t.content=e.src,t.map=[0,1],t.children=[],e.tokens.push(t)):e.md.block.parse(e.src,e.md,e.env,e.tokens)}function ll(e){const t=e.tokens;for(let u=0,r=t.length;u<r;u++){const n=t[u];n.type===\"inline\"&&e.md.inline.parse(n.content,e.md,e.env,n.children)}}function cl(e){return/^<a[>\\s]/i.test(e)}function dl(e){return/^<\\/a\\s*>/i.test(e)}function fl(e){const t=e.tokens;if(e.md.options.linkify)for(let u=0,r=t.length;u<r;u++){if(t[u].type!==\"inline\"||!e.md.linkify.pretest(t[u].content))continue;let n=t[u].children,i=0;for(let o=n.length-1;o>=0;o--){const a=n[o];if(a.type===\"link_close\"){for(o--;n[o].level!==a.level&&n[o].type!==\"link_open\";)o--;continue}if(a.type===\"html_inline\"&&(cl(a.content)&&i>0&&i--,dl(a.content)&&i++),!(i>0)&&a.type===\"text\"&&e.md.linkify.test(a.content)){const s=a.content;let l=e.md.linkify.match(s);const d=[];let c=a.level,h=0;l.length>0&&l[0].index===0&&o>0&&n[o-1].type===\"text_special\"&&(l=l.slice(1));for(let p=0;p<l.length;p++){const m=l[p].url,x=e.md.normalizeLink(m);if(!e.md.validateLink(x))continue;let g=l[p].text;l[p].schema?l[p].schema===\"mailto:\"&&!/^mailto:/i.test(g)?g=e.md.normalizeLinkText(\"mailto:\"+g).replace(/^mailto:/,\"\"):g=e.md.normalizeLinkText(g):g=e.md.normalizeLinkText(\"http://\"+g).replace(/^http:\\/\\//,\"\");const E=l[p].index;if(E>h){const D=new e.Token(\"text\",\"\",0);D.content=s.slice(h,E),D.level=c,d.push(D)}const _=new e.Token(\"link_open\",\"a\",1);_.attrs=[[\"href\",x]],_.level=c++,_.markup=\"linkify\",_.info=\"auto\",d.push(_);const y=new e.Token(\"text\",\"\",0);y.content=g,y.level=c,d.push(y);const k=new e.Token(\"link_close\",\"a\",-1);k.level=--c,k.markup=\"linkify\",k.info=\"auto\",d.push(k),h=l[p].lastIndex}if(h<s.length){const p=new e.Token(\"text\",\"\",0);p.content=s.slice(h),p.level=c,d.push(p)}t[u].children=n=An(n,o,d)}}}}const Dn=/\\+-|\\.\\.|\\?\\?\\?\\?|!!!!|,,|--/,pl=/\\((c|tm|r)\\)/i,ml=/\\((c|tm|r)\\)/ig,hl={c:\"©\",r:\"®\",tm:\"™\"};function _l(e,t){return hl[t.toLowerCase()]}function gl(e){let t=0;for(let u=e.length-1;u>=0;u--){const r=e[u];r.type===\"text\"&&!t&&(r.content=r.content.replace(ml,_l)),r.type===\"link_open\"&&r.info===\"auto\"&&t--,r.type===\"link_close\"&&r.info===\"auto\"&&t++}}function bl(e){let t=0;for(let u=e.length-1;u>=0;u--){const r=e[u];r.type===\"text\"&&!t&&Dn.test(r.content)&&(r.content=r.content.replace(/\\+-/g,\"±\").replace(/\\.{2,}/g,\"…\").replace(/([?!])…/g,\"$1..\").replace(/([?!]){4,}/g,\"$1$1$1\").replace(/,{2,}/g,\",\").replace(/(^|[^-])---(?=[^-]|$)/mg,\"$1—\").replace(/(^|\\s)--(?=\\s|$)/mg,\"$1–\").replace(/(^|[^-\\s])--(?=[^-\\s]|$)/mg,\"$1–\")),r.type===\"link_open\"&&r.info===\"auto\"&&t--,r.type===\"link_close\"&&r.info===\"auto\"&&t++}}function yl(e){let t;if(e.md.options.typographer)for(t=e.tokens.length-1;t>=0;t--)e.tokens[t].type===\"inline\"&&(pl.test(e.tokens[t].content)&&gl(e.tokens[t].children),Dn.test(e.tokens[t].content)&&bl(e.tokens[t].children))}const xl=/['\"]/,dr=/['\"]/g,fr=\"’\";function ht(e,t,u){return e.slice(0,t)+u+e.slice(t+1)}function El(e,t){let u;const r=[];for(let n=0;n<e.length;n++){const i=e[n],o=e[n].level;for(u=r.length-1;u>=0&&!(r[u].level<=o);u--);if(r.length=u+1,i.type!==\"text\")continue;let a=i.content,s=0,l=a.length;e:for(;s<l;){dr.lastIndex=s;const d=dr.exec(a);if(!d)break;let c=!0,h=!0;s=d.index+1;const p=d[0]===\"'\";let m=32;if(d.index-1>=0)m=a.charCodeAt(d.index-1);else for(u=n-1;u>=0&&!(e[u].type===\"softbreak\"||e[u].type===\"hardbreak\");u--)if(e[u].content){m=e[u].content.charCodeAt(e[u].content.length-1);break}let x=32;if(s<l)x=a.charCodeAt(s);else for(u=n+1;u<e.length&&!(e[u].type===\"softbreak\"||e[u].type===\"hardbreak\");u++)if(e[u].content){x=e[u].content.charCodeAt(0);break}const g=rt(m)||ut(String.fromCharCode(m)),E=rt(x)||ut(String.fromCharCode(x)),_=tt(m),y=tt(x);if(y?c=!1:E&&(_||g||(c=!1)),_?h=!1:g&&(y||E||(h=!1)),x===34&&d[0]==='\"'&&m>=48&&m<=57&&(h=c=!1),c&&h&&(c=g,h=E),!c&&!h){p&&(i.content=ht(i.content,d.index,fr));continue}if(h)for(u=r.length-1;u>=0;u--){let k=r[u];if(r[u].level<o)break;if(k.single===p&&r[u].level===o){k=r[u];let D,S;p?(D=t.md.options.quotes[2],S=t.md.options.quotes[3]):(D=t.md.options.quotes[0],S=t.md.options.quotes[1]),i.content=ht(i.content,d.index,S),e[k.token].content=ht(e[k.token].content,k.pos,D),s+=S.length-1,k.token===n&&(s+=D.length-1),a=i.content,l=a.length,r.length=u;continue e}}c?r.push({token:n,pos:d.index,single:p,level:o}):h&&p&&(i.content=ht(i.content,d.index,fr))}}}function kl(e){if(e.md.options.typographer)for(let t=e.tokens.length-1;t>=0;t--)e.tokens[t].type!==\"inline\"||!xl.test(e.tokens[t].content)||El(e.tokens[t].children,e)}function Al(e){let t,u;const r=e.tokens,n=r.length;for(let i=0;i<n;i++){if(r[i].type!==\"inline\")continue;const o=r[i].children,a=o.length;for(t=0;t<a;t++)o[t].type===\"text_special\"&&(o[t].type=\"text\");for(t=u=0;t<a;t++)o[t].type===\"text\"&&t+1<a&&o[t+1].type===\"text\"?o[t+1].content=o[t].content+o[t+1].content:(t!==u&&(o[u]=o[t]),u++);t!==u&&(o.length=u)}}const Xt=[[\"normalize\",al],[\"block\",sl],[\"inline\",ll],[\"linkify\",fl],[\"replacements\",yl],[\"smartquotes\",kl],[\"text_join\",Al]];function Iu(){this.ruler=new te;for(let e=0;e<Xt.length;e++)this.ruler.push(Xt[e][0],Xt[e][1])}Iu.prototype.process=function(e){const t=this.ruler.getRules(\"\");for(let u=0,r=t.length;u<r;u++)t[u](e)};Iu.prototype.State=Cn;function ye(e,t,u,r){this.src=e,this.md=t,this.env=u,this.tokens=r,this.bMarks=[],this.eMarks=[],this.tShift=[],this.sCount=[],this.bsCount=[],this.blkIndent=0,this.line=0,this.lineMax=0,this.tight=!1,this.ddIndent=-1,this.listIndent=-1,this.parentType=\"root\",this.level=0;const n=this.src;for(let i=0,o=0,a=0,s=0,l=n.length,d=!1;o<l;o++){const c=n.charCodeAt(o);if(!d)if(N(c)){a++,c===9?s+=4-s%4:s++;continue}else d=!0;(c===10||o===l-1)&&(c!==10&&o++,this.bMarks.push(i),this.eMarks.push(o),this.tShift.push(a),this.sCount.push(s),this.bsCount.push(0),d=!1,a=0,s=0,i=o+1)}this.bMarks.push(n.length),this.eMarks.push(n.length),this.tShift.push(0),this.sCount.push(0),this.bsCount.push(0),this.lineMax=this.bMarks.length-1}ye.prototype.push=function(e,t,u){const r=new ce(e,t,u);return r.block=!0,u<0&&this.level--,r.level=this.level,u>0&&this.level++,this.tokens.push(r),r};ye.prototype.isEmpty=function(t){return this.bMarks[t]+this.tShift[t]>=this.eMarks[t]};ye.prototype.skipEmptyLines=function(t){for(let u=this.lineMax;t<u&&!(this.bMarks[t]+this.tShift[t]<this.eMarks[t]);t++);return t};ye.prototype.skipSpaces=function(t){for(let u=this.src.length;t<u;t++){const r=this.src.charCodeAt(t);if(!N(r))break}return t};ye.prototype.skipSpacesBack=function(t,u){if(t<=u)return t;for(;t>u;)if(!N(this.src.charCodeAt(--t)))return t+1;return t};ye.prototype.skipChars=function(t,u){for(let r=this.src.length;t<r&&this.src.charCodeAt(t)===u;t++);return t};ye.prototype.skipCharsBack=function(t,u,r){if(t<=r)return t;for(;t>r;)if(u!==this.src.charCodeAt(--t))return t+1;return t};ye.prototype.getLines=function(t,u,r,n){if(t>=u)return\"\";const i=new Array(u-t);for(let o=0,a=t;a<u;a++,o++){let s=0;const l=this.bMarks[a];let d=l,c;for(a+1<u||n?c=this.eMarks[a]+1:c=this.eMarks[a];d<c&&s<r;){const h=this.src.charCodeAt(d);if(N(h))h===9?s+=4-(s+this.bsCount[a])%4:s++;else if(d-l<this.tShift[a])s++;else break;d++}s>r?i[o]=new Array(s-r+1).join(\" \")+this.src.slice(d,c):i[o]=this.src.slice(d,c)}return i.join(\"\")};ye.prototype.Token=ce;const vl=65536;function eu(e,t){const u=e.bMarks[t]+e.tShift[t],r=e.eMarks[t];return e.src.slice(u,r)}function pr(e){const t=[],u=e.length;let r=0,n=e.charCodeAt(r),i=!1,o=0,a=\"\";for(;r<u;)n===124&&(i?(a+=e.substring(o,r-1),o=r):(t.push(a+e.substring(o,r)),a=\"\",o=r+1)),i=n===92,r++,n=e.charCodeAt(r);return t.push(a+e.substring(o)),t}function Cl(e,t,u,r){if(t+2>u)return!1;let n=t+1;if(e.sCount[n]<e.blkIndent||e.sCount[n]-e.blkIndent>=4)return!1;let i=e.bMarks[n]+e.tShift[n];if(i>=e.eMarks[n])return!1;const o=e.src.charCodeAt(i++);if(o!==124&&o!==45&&o!==58||i>=e.eMarks[n])return!1;const a=e.src.charCodeAt(i++);if(a!==124&&a!==45&&a!==58&&!N(a)||o===45&&N(a))return!1;for(;i<e.eMarks[n];){const k=e.src.charCodeAt(i);if(k!==124&&k!==45&&k!==58&&!N(k))return!1;i++}let s=eu(e,t+1),l=s.split(\"|\");const d=[];for(let k=0;k<l.length;k++){const D=l[k].trim();if(!D){if(k===0||k===l.length-1)continue;return!1}if(!/^:?-+:?$/.test(D))return!1;D.charCodeAt(D.length-1)===58?d.push(D.charCodeAt(0)===58?\"center\":\"right\"):D.charCodeAt(0)===58?d.push(\"left\"):d.push(\"\")}if(s=eu(e,t).trim(),s.indexOf(\"|\")===-1||e.sCount[t]-e.blkIndent>=4)return!1;l=pr(s),l.length&&l[0]===\"\"&&l.shift(),l.length&&l[l.length-1]===\"\"&&l.pop();const c=l.length;if(c===0||c!==d.length)return!1;if(r)return!0;const h=e.parentType;e.parentType=\"table\";const p=e.md.block.ruler.getRules(\"blockquote\"),m=e.push(\"table_open\",\"table\",1),x=[t,0];m.map=x;const g=e.push(\"thead_open\",\"thead\",1);g.map=[t,t+1];const E=e.push(\"tr_open\",\"tr\",1);E.map=[t,t+1];for(let k=0;k<l.length;k++){const D=e.push(\"th_open\",\"th\",1);d[k]&&(D.attrs=[[\"style\",\"text-align:\"+d[k]]]);const S=e.push(\"inline\",\"\",0);S.content=l[k].trim(),S.children=[],e.push(\"th_close\",\"th\",-1)}e.push(\"tr_close\",\"tr\",-1),e.push(\"thead_close\",\"thead\",-1);let _,y=0;for(n=t+2;n<u&&!(e.sCount[n]<e.blkIndent);n++){let k=!1;for(let S=0,I=p.length;S<I;S++)if(p[S](e,n,u,!0)){k=!0;break}if(k||(s=eu(e,n).trim(),!s)||e.sCount[n]-e.blkIndent>=4||(l=pr(s),l.length&&l[0]===\"\"&&l.shift(),l.length&&l[l.length-1]===\"\"&&l.pop(),y+=c-l.length,y>vl))break;if(n===t+2){const S=e.push(\"tbody_open\",\"tbody\",1);S.map=_=[t+2,0]}const D=e.push(\"tr_open\",\"tr\",1);D.map=[n,n+1];for(let S=0;S<c;S++){const I=e.push(\"td_open\",\"td\",1);d[S]&&(I.attrs=[[\"style\",\"text-align:\"+d[S]]]);const z=e.push(\"inline\",\"\",0);z.content=l[S]?l[S].trim():\"\",z.children=[],e.push(\"td_close\",\"td\",-1)}e.push(\"tr_close\",\"tr\",-1)}return _&&(e.push(\"tbody_close\",\"tbody\",-1),_[1]=n),e.push(\"table_close\",\"table\",-1),x[1]=n,e.parentType=h,e.line=n,!0}function Dl(e,t,u){if(e.sCount[t]-e.blkIndent<4)return!1;let r=t+1,n=r;for(;r<u;){if(e.isEmpty(r)){r++;continue}if(e.sCount[r]-e.blkIndent>=4){r++,n=r;continue}break}e.line=n;const i=e.push(\"code_block\",\"code\",0);return i.content=e.getLines(t,n,4+e.blkIndent,!1)+`\n`,i.map=[t,e.line],!0}function wl(e,t,u,r){let n=e.bMarks[t]+e.tShift[t],i=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4||n+3>i)return!1;const o=e.src.charCodeAt(n);if(o!==126&&o!==96)return!1;let a=n;n=e.skipChars(n,o);let s=n-a;if(s<3)return!1;const l=e.src.slice(a,n),d=e.src.slice(n,i);if(o===96&&d.indexOf(String.fromCharCode(o))>=0)return!1;if(r)return!0;let c=t,h=!1;for(;c++,!(c>=u||(n=a=e.bMarks[c]+e.tShift[c],i=e.eMarks[c],n<i&&e.sCount[c]<e.blkIndent));)if(e.src.charCodeAt(n)===o&&!(e.sCount[c]-e.blkIndent>=4)&&(n=e.skipChars(n,o),!(n-a<s)&&(n=e.skipSpaces(n),!(n<i)))){h=!0;break}s=e.sCount[t],e.line=c+(h?1:0);const p=e.push(\"fence\",\"code\",0);return p.info=d,p.content=e.getLines(t+1,c,s,!0),p.markup=l,p.map=[t,e.line],!0}function Sl(e,t,u,r){let n=e.bMarks[t]+e.tShift[t],i=e.eMarks[t];const o=e.lineMax;if(e.sCount[t]-e.blkIndent>=4||e.src.charCodeAt(n)!==62)return!1;if(r)return!0;const a=[],s=[],l=[],d=[],c=e.md.block.ruler.getRules(\"blockquote\"),h=e.parentType;e.parentType=\"blockquote\";let p=!1,m;for(m=t;m<u;m++){const y=e.sCount[m]<e.blkIndent;if(n=e.bMarks[m]+e.tShift[m],i=e.eMarks[m],n>=i)break;if(e.src.charCodeAt(n++)===62&&!y){let D=e.sCount[m]+1,S,I;e.src.charCodeAt(n)===32?(n++,D++,I=!1,S=!0):e.src.charCodeAt(n)===9?(S=!0,(e.bsCount[m]+D)%4===3?(n++,D++,I=!1):I=!0):S=!1;let z=D;for(a.push(e.bMarks[m]),e.bMarks[m]=n;n<i;){const Q=e.src.charCodeAt(n);if(N(Q))Q===9?z+=4-(z+e.bsCount[m]+(I?1:0))%4:z++;else break;n++}p=n>=i,s.push(e.bsCount[m]),e.bsCount[m]=e.sCount[m]+1+(S?1:0),l.push(e.sCount[m]),e.sCount[m]=z-D,d.push(e.tShift[m]),e.tShift[m]=n-e.bMarks[m];continue}if(p)break;let k=!1;for(let D=0,S=c.length;D<S;D++)if(c[D](e,m,u,!0)){k=!0;break}if(k){e.lineMax=m,e.blkIndent!==0&&(a.push(e.bMarks[m]),s.push(e.bsCount[m]),d.push(e.tShift[m]),l.push(e.sCount[m]),e.sCount[m]-=e.blkIndent);break}a.push(e.bMarks[m]),s.push(e.bsCount[m]),d.push(e.tShift[m]),l.push(e.sCount[m]),e.sCount[m]=-1}const x=e.blkIndent;e.blkIndent=0;const g=e.push(\"blockquote_open\",\"blockquote\",1);g.markup=\">\";const E=[t,0];g.map=E,e.md.block.tokenize(e,t,m);const _=e.push(\"blockquote_close\",\"blockquote\",-1);_.markup=\">\",e.lineMax=o,e.parentType=h,E[1]=e.line;for(let y=0;y<d.length;y++)e.bMarks[y+t]=a[y],e.tShift[y+t]=d[y],e.sCount[y+t]=l[y],e.bsCount[y+t]=s[y];return e.blkIndent=x,!0}function Tl(e,t,u,r){const n=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;let i=e.bMarks[t]+e.tShift[t];const o=e.src.charCodeAt(i++);if(o!==42&&o!==45&&o!==95)return!1;let a=1;for(;i<n;){const l=e.src.charCodeAt(i++);if(l!==o&&!N(l))return!1;l===o&&a++}if(a<3)return!1;if(r)return!0;e.line=t+1;const s=e.push(\"hr\",\"hr\",0);return s.map=[t,e.line],s.markup=Array(a+1).join(String.fromCharCode(o)),!0}function mr(e,t){const u=e.eMarks[t];let r=e.bMarks[t]+e.tShift[t];const n=e.src.charCodeAt(r++);if(n!==42&&n!==45&&n!==43)return-1;if(r<u){const i=e.src.charCodeAt(r);if(!N(i))return-1}return r}function hr(e,t){const u=e.bMarks[t]+e.tShift[t],r=e.eMarks[t];let n=u;if(n+1>=r)return-1;let i=e.src.charCodeAt(n++);if(i<48||i>57)return-1;for(;;){if(n>=r)return-1;if(i=e.src.charCodeAt(n++),i>=48&&i<=57){if(n-u>=10)return-1;continue}if(i===41||i===46)break;return-1}return n<r&&(i=e.src.charCodeAt(n),!N(i))?-1:n}function Rl(e,t){const u=e.level+2;for(let r=t+2,n=e.tokens.length-2;r<n;r++)e.tokens[r].level===u&&e.tokens[r].type===\"paragraph_open\"&&(e.tokens[r+2].hidden=!0,e.tokens[r].hidden=!0,r+=2)}function Ll(e,t,u,r){let n,i,o,a,s=t,l=!0;if(e.sCount[s]-e.blkIndent>=4||e.listIndent>=0&&e.sCount[s]-e.listIndent>=4&&e.sCount[s]<e.blkIndent)return!1;let d=!1;r&&e.parentType===\"paragraph\"&&e.sCount[s]>=e.blkIndent&&(d=!0);let c,h,p;if((p=hr(e,s))>=0){if(c=!0,o=e.bMarks[s]+e.tShift[s],h=Number(e.src.slice(o,p-1)),d&&h!==1)return!1}else if((p=mr(e,s))>=0)c=!1;else return!1;if(d&&e.skipSpaces(p)>=e.eMarks[s])return!1;if(r)return!0;const m=e.src.charCodeAt(p-1),x=e.tokens.length;c?(a=e.push(\"ordered_list_open\",\"ol\",1),h!==1&&(a.attrs=[[\"start\",h]])):a=e.push(\"bullet_list_open\",\"ul\",1);const g=[s,0];a.map=g,a.markup=String.fromCharCode(m);let E=!1;const _=e.md.block.ruler.getRules(\"list\"),y=e.parentType;for(e.parentType=\"list\";s<u;){i=p,n=e.eMarks[s];const k=e.sCount[s]+p-(e.bMarks[s]+e.tShift[s]);let D=k;for(;i<n;){const B=e.src.charCodeAt(i);if(B===9)D+=4-(D+e.bsCount[s])%4;else if(B===32)D++;else break;i++}const S=i;let I;S>=n?I=1:I=D-k,I>4&&(I=1);const z=k+I;a=e.push(\"list_item_open\",\"li\",1),a.markup=String.fromCharCode(m);const Q=[s,0];a.map=Q,c&&(a.info=e.src.slice(o,p-1));const re=e.tight,de=e.tShift[s],Ie=e.sCount[s],w=e.listIndent;if(e.listIndent=e.blkIndent,e.blkIndent=z,e.tight=!0,e.tShift[s]=S-e.bMarks[s],e.sCount[s]=D,S>=n&&e.isEmpty(s+1)?e.line=Math.min(e.line+2,u):e.md.block.tokenize(e,s,u,!0),(!e.tight||E)&&(l=!1),E=e.line-s>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=w,e.tShift[s]=de,e.sCount[s]=Ie,e.tight=re,a=e.push(\"list_item_close\",\"li\",-1),a.markup=String.fromCharCode(m),s=e.line,Q[1]=s,s>=u||e.sCount[s]<e.blkIndent||e.sCount[s]-e.blkIndent>=4)break;let v=!1;for(let B=0,K=_.length;B<K;B++)if(_[B](e,s,u,!0)){v=!0;break}if(v)break;if(c){if(p=hr(e,s),p<0)break;o=e.bMarks[s]+e.tShift[s]}else if(p=mr(e,s),p<0)break;if(m!==e.src.charCodeAt(p-1))break}return c?a=e.push(\"ordered_list_close\",\"ol\",-1):a=e.push(\"bullet_list_close\",\"ul\",-1),a.markup=String.fromCharCode(m),g[1]=s,e.line=s,e.parentType=y,l&&Rl(e,x),!0}function Pl(e,t,u,r){let n=e.bMarks[t]+e.tShift[t],i=e.eMarks[t],o=t+1;if(e.sCount[t]-e.blkIndent>=4||e.src.charCodeAt(n)!==91)return!1;function a(_){const y=e.lineMax;if(_>=y||e.isEmpty(_))return null;let k=!1;if(e.sCount[_]-e.blkIndent>3&&(k=!0),e.sCount[_]<0&&(k=!0),!k){const I=e.md.block.ruler.getRules(\"reference\"),z=e.parentType;e.parentType=\"reference\";let Q=!1;for(let re=0,de=I.length;re<de;re++)if(I[re](e,_,y,!0)){Q=!0;break}if(e.parentType=z,Q)return null}const D=e.bMarks[_]+e.tShift[_],S=e.eMarks[_];return e.src.slice(D,S+1)}let s=e.src.slice(n,i+1);i=s.length;let l=-1;for(n=1;n<i;n++){const _=s.charCodeAt(n);if(_===91)return!1;if(_===93){l=n;break}else if(_===10){const y=a(o);y!==null&&(s+=y,i=s.length,o++)}else if(_===92&&(n++,n<i&&s.charCodeAt(n)===10)){const y=a(o);y!==null&&(s+=y,i=s.length,o++)}}if(l<0||s.charCodeAt(l+1)!==58)return!1;for(n=l+2;n<i;n++){const _=s.charCodeAt(n);if(_===10){const y=a(o);y!==null&&(s+=y,i=s.length,o++)}else if(!N(_))break}const d=e.md.helpers.parseLinkDestination(s,n,i);if(!d.ok)return!1;const c=e.md.normalizeLink(d.str);if(!e.md.validateLink(c))return!1;n=d.pos;const h=n,p=o,m=n;for(;n<i;n++){const _=s.charCodeAt(n);if(_===10){const y=a(o);y!==null&&(s+=y,i=s.length,o++)}else if(!N(_))break}let x=e.md.helpers.parseLinkTitle(s,n,i);for(;x.can_continue;){const _=a(o);if(_===null)break;s+=_,n=i,i=s.length,o++,x=e.md.helpers.parseLinkTitle(s,n,i,x)}let g;for(n<i&&m!==n&&x.ok?(g=x.str,n=x.pos):(g=\"\",n=h,o=p);n<i;){const _=s.charCodeAt(n);if(!N(_))break;n++}if(n<i&&s.charCodeAt(n)!==10&&g)for(g=\"\",n=h,o=p;n<i;){const _=s.charCodeAt(n);if(!N(_))break;n++}if(n<i&&s.charCodeAt(n)!==10)return!1;const E=Vt(s.slice(1,l));return E?(r||(typeof e.env.references>\"u\"&&(e.env.references={}),typeof e.env.references[E]>\"u\"&&(e.env.references[E]={title:g,href:c}),e.line=o),!0):!1}const Il=[\"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\"],Ol=\"[a-zA-Z_:][a-zA-Z0-9:._-]*\",Fl=\"[^\\\"'=<>`\\\\x00-\\\\x20]+\",Ml=\"'[^']*'\",Nl='\"[^\"]*\"',Vl=\"(?:\"+Fl+\"|\"+Ml+\"|\"+Nl+\")\",Bl=\"(?:\\\\s+\"+Ol+\"(?:\\\\s*=\\\\s*\"+Vl+\")?)\",wn=\"<[A-Za-z][A-Za-z0-9\\\\-]*\"+Bl+\"*\\\\s*\\\\/?>\",Sn=\"<\\\\/[A-Za-z][A-Za-z0-9\\\\-]*\\\\s*>\",zl=\"<!---?>|<!--(?:[^-]|-[^-]|--[^>])*-->\",jl=\"<[?][\\\\s\\\\S]*?[?]>\",$l=\"<![A-Za-z][^>]*>\",ql=\"<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>\",Ul=new RegExp(\"^(?:\"+wn+\"|\"+Sn+\"|\"+zl+\"|\"+jl+\"|\"+$l+\"|\"+ql+\")\"),Gl=new RegExp(\"^(?:\"+wn+\"|\"+Sn+\")\"),Me=[[/^<(script|pre|style|textarea)(?=(\\s|>|$))/i,/<\\/(script|pre|style|textarea)>/i,!0],[/^<!--/,/-->/,!0],[/^<\\?/,/\\?>/,!0],[/^<![A-Z]/,/>/,!0],[/^<!\\[CDATA\\[/,/\\]\\]>/,!0],[new RegExp(\"^</?(\"+Il.join(\"|\")+\")(?=(\\\\s|/?>|$))\",\"i\"),/^$/,!0],[new RegExp(Gl.source+\"\\\\s*$\"),/^$/,!1]];function Hl(e,t,u,r){let n=e.bMarks[t]+e.tShift[t],i=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4||!e.md.options.html||e.src.charCodeAt(n)!==60)return!1;let o=e.src.slice(n,i),a=0;for(;a<Me.length&&!Me[a][0].test(o);a++);if(a===Me.length)return!1;if(r)return Me[a][2];let s=t+1;if(!Me[a][1].test(o)){for(;s<u&&!(e.sCount[s]<e.blkIndent);s++)if(n=e.bMarks[s]+e.tShift[s],i=e.eMarks[s],o=e.src.slice(n,i),Me[a][1].test(o)){o.length!==0&&s++;break}}e.line=s;const l=e.push(\"html_block\",\"\",0);return l.map=[t,s],l.content=e.getLines(t,s,e.blkIndent,!0),!0}function Wl(e,t,u,r){let n=e.bMarks[t]+e.tShift[t],i=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;let o=e.src.charCodeAt(n);if(o!==35||n>=i)return!1;let a=1;for(o=e.src.charCodeAt(++n);o===35&&n<i&&a<=6;)a++,o=e.src.charCodeAt(++n);if(a>6||n<i&&!N(o))return!1;if(r)return!0;i=e.skipSpacesBack(i,n);const s=e.skipCharsBack(i,35,n);s>n&&N(e.src.charCodeAt(s-1))&&(i=s),e.line=t+1;const l=e.push(\"heading_open\",\"h\"+String(a),1);l.markup=\"########\".slice(0,a),l.map=[t,e.line];const d=e.push(\"inline\",\"\",0);d.content=e.src.slice(n,i).trim(),d.map=[t,e.line],d.children=[];const c=e.push(\"heading_close\",\"h\"+String(a),-1);return c.markup=\"########\".slice(0,a),!0}function Zl(e,t,u){const r=e.md.block.ruler.getRules(\"paragraph\");if(e.sCount[t]-e.blkIndent>=4)return!1;const n=e.parentType;e.parentType=\"paragraph\";let i=0,o,a=t+1;for(;a<u&&!e.isEmpty(a);a++){if(e.sCount[a]-e.blkIndent>3)continue;if(e.sCount[a]>=e.blkIndent){let p=e.bMarks[a]+e.tShift[a];const m=e.eMarks[a];if(p<m&&(o=e.src.charCodeAt(p),(o===45||o===61)&&(p=e.skipChars(p,o),p=e.skipSpaces(p),p>=m))){i=o===61?1:2;break}}if(e.sCount[a]<0)continue;let h=!1;for(let p=0,m=r.length;p<m;p++)if(r[p](e,a,u,!0)){h=!0;break}if(h)break}if(!i)return!1;const s=e.getLines(t,a,e.blkIndent,!1).trim();e.line=a+1;const l=e.push(\"heading_open\",\"h\"+String(i),1);l.markup=String.fromCharCode(o),l.map=[t,e.line];const d=e.push(\"inline\",\"\",0);d.content=s,d.map=[t,e.line-1],d.children=[];const c=e.push(\"heading_close\",\"h\"+String(i),-1);return c.markup=String.fromCharCode(o),e.parentType=n,!0}function Jl(e,t,u){const r=e.md.block.ruler.getRules(\"paragraph\"),n=e.parentType;let i=t+1;for(e.parentType=\"paragraph\";i<u&&!e.isEmpty(i);i++){if(e.sCount[i]-e.blkIndent>3||e.sCount[i]<0)continue;let l=!1;for(let d=0,c=r.length;d<c;d++)if(r[d](e,i,u,!0)){l=!0;break}if(l)break}const o=e.getLines(t,i,e.blkIndent,!1).trim();e.line=i;const a=e.push(\"paragraph_open\",\"p\",1);a.map=[t,e.line];const s=e.push(\"inline\",\"\",0);return s.content=o,s.map=[t,e.line],s.children=[],e.push(\"paragraph_close\",\"p\",-1),e.parentType=n,!0}const _t=[[\"table\",Cl,[\"paragraph\",\"reference\"]],[\"code\",Dl],[\"fence\",wl,[\"paragraph\",\"reference\",\"blockquote\",\"list\"]],[\"blockquote\",Sl,[\"paragraph\",\"reference\",\"blockquote\",\"list\"]],[\"hr\",Tl,[\"paragraph\",\"reference\",\"blockquote\",\"list\"]],[\"list\",Ll,[\"paragraph\",\"reference\",\"blockquote\"]],[\"reference\",Pl],[\"html_block\",Hl,[\"paragraph\",\"reference\",\"blockquote\"]],[\"heading\",Wl,[\"paragraph\",\"reference\",\"blockquote\"]],[\"lheading\",Zl],[\"paragraph\",Jl]];function Bt(){this.ruler=new te;for(let e=0;e<_t.length;e++)this.ruler.push(_t[e][0],_t[e][1],{alt:(_t[e][2]||[]).slice()})}Bt.prototype.tokenize=function(e,t,u){const r=this.ruler.getRules(\"\"),n=r.length,i=e.md.options.maxNesting;let o=t,a=!1;for(;o<u&&(e.line=o=e.skipEmptyLines(o),!(o>=u||e.sCount[o]<e.blkIndent));){if(e.level>=i){e.line=u;break}const s=e.line;let l=!1;for(let d=0;d<n;d++)if(l=r[d](e,o,u,!1),l){if(s>=e.line)throw new Error(\"block rule didn't increment state.line\");break}if(!l)throw new Error(\"none of the block rules matched\");e.tight=!a,e.isEmpty(e.line-1)&&(a=!0),o=e.line,o<u&&e.isEmpty(o)&&(a=!0,o++,e.line=o)}};Bt.prototype.parse=function(e,t,u,r){if(!e)return;const n=new this.State(e,t,u,r);this.tokenize(n,n.line,n.lineMax)};Bt.prototype.State=ye;function lt(e,t,u,r){this.src=e,this.env=u,this.md=t,this.tokens=r,this.tokens_meta=Array(r.length),this.pos=0,this.posMax=this.src.length,this.level=0,this.pending=\"\",this.pendingLevel=0,this.cache={},this.delimiters=[],this._prev_delimiters=[],this.backticks={},this.backticksScanned=!1,this.linkLevel=0}lt.prototype.pushPending=function(){const e=new ce(\"text\",\"\",0);return e.content=this.pending,e.level=this.pendingLevel,this.tokens.push(e),this.pending=\"\",e};lt.prototype.push=function(e,t,u){this.pending&&this.pushPending();const r=new ce(e,t,u);let n=null;return u<0&&(this.level--,this.delimiters=this._prev_delimiters.pop()),r.level=this.level,u>0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],n={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(r),this.tokens_meta.push(n),r};lt.prototype.scanDelims=function(e,t){const u=this.posMax,r=this.src.charCodeAt(e),n=e>0?this.src.charCodeAt(e-1):32;let i=e;for(;i<u&&this.src.charCodeAt(i)===r;)i++;const o=i-e,a=i<u?this.src.charCodeAt(i):32,s=rt(n)||ut(String.fromCharCode(n)),l=rt(a)||ut(String.fromCharCode(a)),d=tt(n),c=tt(a),h=!c&&(!l||d||s),p=!d&&(!s||c||l);return{can_open:h&&(t||!p||s),can_close:p&&(t||!h||l),length:o}};lt.prototype.Token=ce;function Kl(e){switch(e){case 10:case 33:case 35:case 36:case 37:case 38:case 42:case 43:case 45:case 58:case 60:case 61:case 62:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 125:case 126:return!0;default:return!1}}function Yl(e,t){let u=e.pos;for(;u<e.posMax&&!Kl(e.src.charCodeAt(u));)u++;return u===e.pos?!1:(t||(e.pending+=e.src.slice(e.pos,u)),e.pos=u,!0)}const Ql=/(?:^|[^a-z0-9.+-])([a-z][a-z0-9.+-]*)$/i;function Xl(e,t){if(!e.md.options.linkify||e.linkLevel>0)return!1;const u=e.pos,r=e.posMax;if(u+3>r||e.src.charCodeAt(u)!==58||e.src.charCodeAt(u+1)!==47||e.src.charCodeAt(u+2)!==47)return!1;const n=e.pending.match(Ql);if(!n)return!1;const i=n[1],o=e.md.linkify.matchAtStart(e.src.slice(u-i.length));if(!o)return!1;let a=o.url;if(a.length<=i.length)return!1;a=a.replace(/\\*+$/,\"\");const s=e.md.normalizeLink(a);if(!e.md.validateLink(s))return!1;if(!t){e.pending=e.pending.slice(0,-i.length);const l=e.push(\"link_open\",\"a\",1);l.attrs=[[\"href\",s]],l.markup=\"linkify\",l.info=\"auto\";const d=e.push(\"text\",\"\",0);d.content=e.md.normalizeLinkText(a);const c=e.push(\"link_close\",\"a\",-1);c.markup=\"linkify\",c.info=\"auto\"}return e.pos+=a.length-i.length,!0}function ec(e,t){let u=e.pos;if(e.src.charCodeAt(u)!==10)return!1;const r=e.pending.length-1,n=e.posMax;if(!t)if(r>=0&&e.pending.charCodeAt(r)===32)if(r>=1&&e.pending.charCodeAt(r-1)===32){let i=r-1;for(;i>=1&&e.pending.charCodeAt(i-1)===32;)i--;e.pending=e.pending.slice(0,i),e.push(\"hardbreak\",\"br\",0)}else e.pending=e.pending.slice(0,-1),e.push(\"softbreak\",\"br\",0);else e.push(\"softbreak\",\"br\",0);for(u++;u<n&&N(e.src.charCodeAt(u));)u++;return e.pos=u,!0}const Ou=[];for(let e=0;e<256;e++)Ou.push(0);\"\\\\!\\\"#$%&'()*+,./:;<=>?@[]^_`{|}~-\".split(\"\").forEach(function(e){Ou[e.charCodeAt(0)]=1});function tc(e,t){let u=e.pos;const r=e.posMax;if(e.src.charCodeAt(u)!==92||(u++,u>=r))return!1;let n=e.src.charCodeAt(u);if(n===10){for(t||e.push(\"hardbreak\",\"br\",0),u++;u<r&&(n=e.src.charCodeAt(u),!!N(n));)u++;return e.pos=u,!0}let i=e.src[u];if(n>=55296&&n<=56319&&u+1<r){const a=e.src.charCodeAt(u+1);a>=56320&&a<=57343&&(i+=e.src[u+1],u++)}const o=\"\\\\\"+i;if(!t){const a=e.push(\"text_special\",\"\",0);n<256&&Ou[n]!==0?a.content=i:a.content=o,a.markup=o,a.info=\"escape\"}return e.pos=u+1,!0}function uc(e,t){let u=e.pos;if(e.src.charCodeAt(u)!==96)return!1;const n=u;u++;const i=e.posMax;for(;u<i&&e.src.charCodeAt(u)===96;)u++;const o=e.src.slice(n,u),a=o.length;if(e.backticksScanned&&(e.backticks[a]||0)<=n)return t||(e.pending+=o),e.pos+=a,!0;let s=u,l;for(;(l=e.src.indexOf(\"`\",s))!==-1;){for(s=l+1;s<i&&e.src.charCodeAt(s)===96;)s++;const d=s-l;if(d===a){if(!t){const c=e.push(\"code_inline\",\"code\",0);c.markup=o,c.content=e.src.slice(u,l).replace(/\\n/g,\" \").replace(/^ (.+) $/,\"$1\")}return e.pos=s,!0}e.backticks[d]=l}return e.backticksScanned=!0,t||(e.pending+=o),e.pos+=a,!0}function rc(e,t){const u=e.pos,r=e.src.charCodeAt(u);if(t||r!==126)return!1;const n=e.scanDelims(e.pos,!0);let i=n.length;const o=String.fromCharCode(r);if(i<2)return!1;let a;i%2&&(a=e.push(\"text\",\"\",0),a.content=o,i--);for(let s=0;s<i;s+=2)a=e.push(\"text\",\"\",0),a.content=o+o,e.delimiters.push({marker:r,length:0,token:e.tokens.length-1,end:-1,open:n.can_open,close:n.can_close});return e.pos+=n.length,!0}function _r(e,t){let u;const r=[],n=t.length;for(let i=0;i<n;i++){const o=t[i];if(o.marker!==126||o.end===-1)continue;const a=t[o.end];u=e.tokens[o.token],u.type=\"s_open\",u.tag=\"s\",u.nesting=1,u.markup=\"~~\",u.content=\"\",u=e.tokens[a.token],u.type=\"s_close\",u.tag=\"s\",u.nesting=-1,u.markup=\"~~\",u.content=\"\",e.tokens[a.token-1].type===\"text\"&&e.tokens[a.token-1].content===\"~\"&&r.push(a.token-1)}for(;r.length;){const i=r.pop();let o=i+1;for(;o<e.tokens.length&&e.tokens[o].type===\"s_close\";)o++;o--,i!==o&&(u=e.tokens[o],e.tokens[o]=e.tokens[i],e.tokens[i]=u)}}function nc(e){const t=e.tokens_meta,u=e.tokens_meta.length;_r(e,e.delimiters);for(let r=0;r<u;r++)t[r]&&t[r].delimiters&&_r(e,t[r].delimiters)}const Tn={tokenize:rc,postProcess:nc};function ic(e,t){const u=e.pos,r=e.src.charCodeAt(u);if(t||r!==95&&r!==42)return!1;const n=e.scanDelims(e.pos,r===42);for(let i=0;i<n.length;i++){const o=e.push(\"text\",\"\",0);o.content=String.fromCharCode(r),e.delimiters.push({marker:r,length:n.length,token:e.tokens.length-1,end:-1,open:n.can_open,close:n.can_close})}return e.pos+=n.length,!0}function gr(e,t){const u=t.length;for(let r=u-1;r>=0;r--){const n=t[r];if(n.marker!==95&&n.marker!==42||n.end===-1)continue;const i=t[n.end],o=r>0&&t[r-1].end===n.end+1&&t[r-1].marker===n.marker&&t[r-1].token===n.token-1&&t[n.end+1].token===i.token+1,a=String.fromCharCode(n.marker),s=e.tokens[n.token];s.type=o?\"strong_open\":\"em_open\",s.tag=o?\"strong\":\"em\",s.nesting=1,s.markup=o?a+a:a,s.content=\"\";const l=e.tokens[i.token];l.type=o?\"strong_close\":\"em_close\",l.tag=o?\"strong\":\"em\",l.nesting=-1,l.markup=o?a+a:a,l.content=\"\",o&&(e.tokens[t[r-1].token].content=\"\",e.tokens[t[n.end+1].token].content=\"\",r--)}}function oc(e){const t=e.tokens_meta,u=e.tokens_meta.length;gr(e,e.delimiters);for(let r=0;r<u;r++)t[r]&&t[r].delimiters&&gr(e,t[r].delimiters)}const Rn={tokenize:ic,postProcess:oc};function ac(e,t){let u,r,n,i,o=\"\",a=\"\",s=e.pos,l=!0;if(e.src.charCodeAt(e.pos)!==91)return!1;const d=e.pos,c=e.posMax,h=e.pos+1,p=e.md.helpers.parseLinkLabel(e,e.pos,!0);if(p<0)return!1;let m=p+1;if(m<c&&e.src.charCodeAt(m)===40){for(l=!1,m++;m<c&&(u=e.src.charCodeAt(m),!(!N(u)&&u!==10));m++);if(m>=c)return!1;if(s=m,n=e.md.helpers.parseLinkDestination(e.src,m,e.posMax),n.ok){for(o=e.md.normalizeLink(n.str),e.md.validateLink(o)?m=n.pos:o=\"\",s=m;m<c&&(u=e.src.charCodeAt(m),!(!N(u)&&u!==10));m++);if(n=e.md.helpers.parseLinkTitle(e.src,m,e.posMax),m<c&&s!==m&&n.ok)for(a=n.str,m=n.pos;m<c&&(u=e.src.charCodeAt(m),!(!N(u)&&u!==10));m++);}(m>=c||e.src.charCodeAt(m)!==41)&&(l=!0),m++}if(l){if(typeof e.env.references>\"u\")return!1;if(m<c&&e.src.charCodeAt(m)===91?(s=m+1,m=e.md.helpers.parseLinkLabel(e,m),m>=0?r=e.src.slice(s,m++):m=p+1):m=p+1,r||(r=e.src.slice(h,p)),i=e.env.references[Vt(r)],!i)return e.pos=d,!1;o=i.href,a=i.title}if(!t){e.pos=h,e.posMax=p;const x=e.push(\"link_open\",\"a\",1),g=[[\"href\",o]];x.attrs=g,a&&g.push([\"title\",a]),e.linkLevel++,e.md.inline.tokenize(e),e.linkLevel--,e.push(\"link_close\",\"a\",-1)}return e.pos=m,e.posMax=c,!0}function sc(e,t){let u,r,n,i,o,a,s,l,d=\"\";const c=e.pos,h=e.posMax;if(e.src.charCodeAt(e.pos)!==33||e.src.charCodeAt(e.pos+1)!==91)return!1;const p=e.pos+2,m=e.md.helpers.parseLinkLabel(e,e.pos+1,!1);if(m<0)return!1;if(i=m+1,i<h&&e.src.charCodeAt(i)===40){for(i++;i<h&&(u=e.src.charCodeAt(i),!(!N(u)&&u!==10));i++);if(i>=h)return!1;for(l=i,a=e.md.helpers.parseLinkDestination(e.src,i,e.posMax),a.ok&&(d=e.md.normalizeLink(a.str),e.md.validateLink(d)?i=a.pos:d=\"\"),l=i;i<h&&(u=e.src.charCodeAt(i),!(!N(u)&&u!==10));i++);if(a=e.md.helpers.parseLinkTitle(e.src,i,e.posMax),i<h&&l!==i&&a.ok)for(s=a.str,i=a.pos;i<h&&(u=e.src.charCodeAt(i),!(!N(u)&&u!==10));i++);else s=\"\";if(i>=h||e.src.charCodeAt(i)!==41)return e.pos=c,!1;i++}else{if(typeof e.env.references>\"u\")return!1;if(i<h&&e.src.charCodeAt(i)===91?(l=i+1,i=e.md.helpers.parseLinkLabel(e,i),i>=0?n=e.src.slice(l,i++):i=m+1):i=m+1,n||(n=e.src.slice(p,m)),o=e.env.references[Vt(n)],!o)return e.pos=c,!1;d=o.href,s=o.title}if(!t){r=e.src.slice(p,m);const x=[];e.md.inline.parse(r,e.md,e.env,x);const g=e.push(\"image\",\"img\",0),E=[[\"src\",d],[\"alt\",\"\"]];g.attrs=E,g.children=x,g.content=r,s&&E.push([\"title\",s])}return e.pos=i,e.posMax=h,!0}const lc=/^([a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/,cc=/^([a-zA-Z][a-zA-Z0-9+.-]{1,31}):([^<>\\x00-\\x20]*)$/;function dc(e,t){let u=e.pos;if(e.src.charCodeAt(u)!==60)return!1;const r=e.pos,n=e.posMax;for(;;){if(++u>=n)return!1;const o=e.src.charCodeAt(u);if(o===60)return!1;if(o===62)break}const i=e.src.slice(r+1,u);if(cc.test(i)){const o=e.md.normalizeLink(i);if(!e.md.validateLink(o))return!1;if(!t){const a=e.push(\"link_open\",\"a\",1);a.attrs=[[\"href\",o]],a.markup=\"autolink\",a.info=\"auto\";const s=e.push(\"text\",\"\",0);s.content=e.md.normalizeLinkText(i);const l=e.push(\"link_close\",\"a\",-1);l.markup=\"autolink\",l.info=\"auto\"}return e.pos+=i.length+2,!0}if(lc.test(i)){const o=e.md.normalizeLink(\"mailto:\"+i);if(!e.md.validateLink(o))return!1;if(!t){const a=e.push(\"link_open\",\"a\",1);a.attrs=[[\"href\",o]],a.markup=\"autolink\",a.info=\"auto\";const s=e.push(\"text\",\"\",0);s.content=e.md.normalizeLinkText(i);const l=e.push(\"link_close\",\"a\",-1);l.markup=\"autolink\",l.info=\"auto\"}return e.pos+=i.length+2,!0}return!1}function fc(e){return/^<a[>\\s]/i.test(e)}function pc(e){return/^<\\/a\\s*>/i.test(e)}function mc(e){const t=e|32;return t>=97&&t<=122}function hc(e,t){if(!e.md.options.html)return!1;const u=e.posMax,r=e.pos;if(e.src.charCodeAt(r)!==60||r+2>=u)return!1;const n=e.src.charCodeAt(r+1);if(n!==33&&n!==63&&n!==47&&!mc(n))return!1;const i=e.src.slice(r).match(Ul);if(!i)return!1;if(!t){const o=e.push(\"html_inline\",\"\",0);o.content=i[0],fc(o.content)&&e.linkLevel++,pc(o.content)&&e.linkLevel--}return e.pos+=i[0].length,!0}const _c=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,gc=/^&([a-z][a-z0-9]{1,31});/i;function bc(e,t){const u=e.pos,r=e.posMax;if(e.src.charCodeAt(u)!==38||u+1>=r)return!1;if(e.src.charCodeAt(u+1)===35){const i=e.src.slice(u).match(_c);if(i){if(!t){const o=i[1][0].toLowerCase()===\"x\"?parseInt(i[1].slice(1),16):parseInt(i[1],10),a=e.push(\"text_special\",\"\",0);a.content=Pu(o)?Lt(o):Lt(65533),a.markup=i[0],a.info=\"entity\"}return e.pos+=i[0].length,!0}}else{const i=e.src.slice(u).match(gc);if(i){const o=kn(i[0]);if(o!==i[0]){if(!t){const a=e.push(\"text_special\",\"\",0);a.content=o,a.markup=i[0],a.info=\"entity\"}return e.pos+=i[0].length,!0}}}return!1}function br(e){const t={},u=e.length;if(!u)return;let r=0,n=-2;const i=[];for(let o=0;o<u;o++){const a=e[o];if(i.push(0),(e[r].marker!==a.marker||n!==a.token-1)&&(r=o),n=a.token,a.length=a.length||0,!a.close)continue;t.hasOwnProperty(a.marker)||(t[a.marker]=[-1,-1,-1,-1,-1,-1]);const s=t[a.marker][(a.open?3:0)+a.length%3];let l=r-i[r]-1,d=l;for(;l>s;l-=i[l]+1){const c=e[l];if(c.marker===a.marker&&c.open&&c.end<0){let h=!1;if((c.close||a.open)&&(c.length+a.length)%3===0&&(c.length%3!==0||a.length%3!==0)&&(h=!0),!h){const p=l>0&&!e[l-1].open?i[l-1]+1:0;i[o]=o-l+p,i[l]=p,a.open=!1,c.end=o,c.close=!1,d=-1,n=-2;break}}}d!==-1&&(t[a.marker][(a.open?3:0)+(a.length||0)%3]=d)}}function yc(e){const t=e.tokens_meta,u=e.tokens_meta.length;br(e.delimiters);for(let r=0;r<u;r++)t[r]&&t[r].delimiters&&br(t[r].delimiters)}function xc(e){let t,u,r=0;const n=e.tokens,i=e.tokens.length;for(t=u=0;t<i;t++)n[t].nesting<0&&r--,n[t].level=r,n[t].nesting>0&&r++,n[t].type===\"text\"&&t+1<i&&n[t+1].type===\"text\"?n[t+1].content=n[t].content+n[t+1].content:(t!==u&&(n[u]=n[t]),u++);t!==u&&(n.length=u)}const tu=[[\"text\",Yl],[\"linkify\",Xl],[\"newline\",ec],[\"escape\",tc],[\"backticks\",uc],[\"strikethrough\",Tn.tokenize],[\"emphasis\",Rn.tokenize],[\"link\",ac],[\"image\",sc],[\"autolink\",dc],[\"html_inline\",hc],[\"entity\",bc]],uu=[[\"balance_pairs\",yc],[\"strikethrough\",Tn.postProcess],[\"emphasis\",Rn.postProcess],[\"fragments_join\",xc]];function ct(){this.ruler=new te;for(let e=0;e<tu.length;e++)this.ruler.push(tu[e][0],tu[e][1]);this.ruler2=new te;for(let e=0;e<uu.length;e++)this.ruler2.push(uu[e][0],uu[e][1])}ct.prototype.skipToken=function(e){const t=e.pos,u=this.ruler.getRules(\"\"),r=u.length,n=e.md.options.maxNesting,i=e.cache;if(typeof i[t]<\"u\"){e.pos=i[t];return}let o=!1;if(e.level<n){for(let a=0;a<r;a++)if(e.level++,o=u[a](e,!0),e.level--,o){if(t>=e.pos)throw new Error(\"inline rule didn't increment state.pos\");break}}else e.pos=e.posMax;o||e.pos++,i[t]=e.pos};ct.prototype.tokenize=function(e){const t=this.ruler.getRules(\"\"),u=t.length,r=e.posMax,n=e.md.options.maxNesting;for(;e.pos<r;){const i=e.pos;let o=!1;if(e.level<n){for(let a=0;a<u;a++)if(o=t[a](e,!1),o){if(i>=e.pos)throw new Error(\"inline rule didn't increment state.pos\");break}}if(o){if(e.pos>=r)break;continue}e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()};ct.prototype.parse=function(e,t,u,r){const n=new this.State(e,t,u,r);this.tokenize(n);const i=this.ruler2.getRules(\"\"),o=i.length;for(let a=0;a<o;a++)i[a](n)};ct.prototype.State=lt;function Ec(e){const t={};e=e||{},t.src_Any=gn.source,t.src_Cc=bn.source,t.src_Z=xn.source,t.src_P=Ru.source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join(\"|\"),t.src_ZCc=[t.src_Z,t.src_Cc].join(\"|\");const u=\"[><｜]\";return t.src_pseudo_letter=\"(?:(?!\"+u+\"|\"+t.src_ZPCc+\")\"+t.src_Any+\")\",t.src_ip4=\"(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\",t.src_auth=\"(?:(?:(?!\"+t.src_ZCc+\"|[@/\\\\[\\\\]()]).)+@)?\",t.src_port=\"(?::(?:6(?:[0-4]\\\\d{3}|5(?:[0-4]\\\\d{2}|5(?:[0-2]\\\\d|3[0-5])))|[1-5]?\\\\d{1,4}))?\",t.src_host_terminator=\"(?=$|\"+u+\"|\"+t.src_ZPCc+\")(?!\"+(e[\"---\"]?\"-(?!--)|\":\"-|\")+\"_|:\\\\d|\\\\.-|\\\\.(?!$|\"+t.src_ZPCc+\"))\",t.src_path=\"(?:[/?#](?:(?!\"+t.src_ZCc+\"|\"+u+`|[()[\\\\]{}.,\"'?!\\\\-;]).|\\\\[(?:(?!`+t.src_ZCc+\"|\\\\]).)*\\\\]|\\\\((?:(?!\"+t.src_ZCc+\"|[)]).)*\\\\)|\\\\{(?:(?!\"+t.src_ZCc+'|[}]).)*\\\\}|\\\\\"(?:(?!'+t.src_ZCc+`|[\"]).)+\\\\\"|\\\\'(?:(?!`+t.src_ZCc+\"|[']).)+\\\\'|\\\\'(?=\"+t.src_pseudo_letter+\"|[-])|\\\\.{2,}[a-zA-Z0-9%/&]|\\\\.(?!\"+t.src_ZCc+\"|[.]|$)|\"+(e[\"---\"]?\"\\\\-(?!--(?:[^-]|$))(?:-*)|\":\"\\\\-+|\")+\",(?!\"+t.src_ZCc+\"|$)|;(?!\"+t.src_ZCc+\"|$)|\\\\!+(?!\"+t.src_ZCc+\"|[!]|$)|\\\\?(?!\"+t.src_ZCc+\"|[?]|$))+|\\\\/)?\",t.src_email_name='[\\\\-;:&=\\\\+\\\\$,\\\\.a-zA-Z0-9_][\\\\-;:&=\\\\+\\\\$,\\\\\"\\\\.a-zA-Z0-9_]*',t.src_xn=\"xn--[a-z0-9\\\\-]{1,59}\",t.src_domain_root=\"(?:\"+t.src_xn+\"|\"+t.src_pseudo_letter+\"{1,63})\",t.src_domain=\"(?:\"+t.src_xn+\"|(?:\"+t.src_pseudo_letter+\")|(?:\"+t.src_pseudo_letter+\"(?:-|\"+t.src_pseudo_letter+\"){0,61}\"+t.src_pseudo_letter+\"))\",t.src_host=\"(?:(?:(?:(?:\"+t.src_domain+\")\\\\.)*\"+t.src_domain+\"))\",t.tpl_host_fuzzy=\"(?:\"+t.src_ip4+\"|(?:(?:(?:\"+t.src_domain+\")\\\\.)+(?:%TLDS%)))\",t.tpl_host_no_ip_fuzzy=\"(?:(?:(?:\"+t.src_domain+\")\\\\.)+(?:%TLDS%))\",t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test=\"localhost|www\\\\.|\\\\.\\\\d{1,3}\\\\.|(?:\\\\.(?:%TLDS%)(?:\"+t.src_ZPCc+\"|>|$))\",t.tpl_email_fuzzy=\"(^|\"+u+'|\"|\\\\(|'+t.src_ZCc+\")(\"+t.src_email_name+\"@\"+t.tpl_host_fuzzy_strict+\")\",t.tpl_link_fuzzy=\"(^|(?![.:/\\\\-_@])(?:[$+<=>^`|｜]|\"+t.src_ZPCc+\"))((?![$+<=>^`|｜])\"+t.tpl_host_port_fuzzy_strict+t.src_path+\")\",t.tpl_link_no_ip_fuzzy=\"(^|(?![.:/\\\\-_@])(?:[$+<=>^`|｜]|\"+t.src_ZPCc+\"))((?![$+<=>^`|｜])\"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+\")\",t}function _u(e){return Array.prototype.slice.call(arguments,1).forEach(function(u){u&&Object.keys(u).forEach(function(r){e[r]=u[r]})}),e}function zt(e){return Object.prototype.toString.call(e)}function kc(e){return zt(e)===\"[object String]\"}function Ac(e){return zt(e)===\"[object Object]\"}function vc(e){return zt(e)===\"[object RegExp]\"}function yr(e){return zt(e)===\"[object Function]\"}function Cc(e){return e.replace(/[.?*+^$[\\]\\\\(){}|-]/g,\"\\\\$&\")}const Ln={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};function Dc(e){return Object.keys(e||{}).reduce(function(t,u){return t||Ln.hasOwnProperty(u)},!1)}const wc={\"http:\":{validate:function(e,t,u){const r=e.slice(t);return u.re.http||(u.re.http=new RegExp(\"^\\\\/\\\\/\"+u.re.src_auth+u.re.src_host_port_strict+u.re.src_path,\"i\")),u.re.http.test(r)?r.match(u.re.http)[0].length:0}},\"https:\":\"http:\",\"ftp:\":\"http:\",\"//\":{validate:function(e,t,u){const r=e.slice(t);return u.re.no_http||(u.re.no_http=new RegExp(\"^\"+u.re.src_auth+\"(?:localhost|(?:(?:\"+u.re.src_domain+\")\\\\.)+\"+u.re.src_domain_root+\")\"+u.re.src_port+u.re.src_host_terminator+u.re.src_path,\"i\")),u.re.no_http.test(r)?t>=3&&e[t-3]===\":\"||t>=3&&e[t-3]===\"/\"?0:r.match(u.re.no_http)[0].length:0}},\"mailto:\":{validate:function(e,t,u){const r=e.slice(t);return u.re.mailto||(u.re.mailto=new RegExp(\"^\"+u.re.src_email_name+\"@\"+u.re.src_host_strict,\"i\")),u.re.mailto.test(r)?r.match(u.re.mailto)[0].length:0}}},Sc=\"a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]\",Tc=\"biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф\".split(\"|\");function Rc(e){e.__index__=-1,e.__text_cache__=\"\"}function Lc(e){return function(t,u){const r=t.slice(u);return e.test(r)?r.match(e)[0].length:0}}function xr(){return function(e,t){t.normalize(e)}}function Pt(e){const t=e.re=Ec(e.__opts__),u=e.__tlds__.slice();e.onCompile(),e.__tlds_replaced__||u.push(Sc),u.push(t.src_xn),t.src_tlds=u.join(\"|\");function r(a){return a.replace(\"%TLDS%\",t.src_tlds)}t.email_fuzzy=RegExp(r(t.tpl_email_fuzzy),\"i\"),t.link_fuzzy=RegExp(r(t.tpl_link_fuzzy),\"i\"),t.link_no_ip_fuzzy=RegExp(r(t.tpl_link_no_ip_fuzzy),\"i\"),t.host_fuzzy_test=RegExp(r(t.tpl_host_fuzzy_test),\"i\");const n=[];e.__compiled__={};function i(a,s){throw new Error('(LinkifyIt) Invalid schema \"'+a+'\": '+s)}Object.keys(e.__schemas__).forEach(function(a){const s=e.__schemas__[a];if(s===null)return;const l={validate:null,link:null};if(e.__compiled__[a]=l,Ac(s)){vc(s.validate)?l.validate=Lc(s.validate):yr(s.validate)?l.validate=s.validate:i(a,s),yr(s.normalize)?l.normalize=s.normalize:s.normalize?i(a,s):l.normalize=xr();return}if(kc(s)){n.push(a);return}i(a,s)}),n.forEach(function(a){e.__compiled__[e.__schemas__[a]]&&(e.__compiled__[a].validate=e.__compiled__[e.__schemas__[a]].validate,e.__compiled__[a].normalize=e.__compiled__[e.__schemas__[a]].normalize)}),e.__compiled__[\"\"]={validate:null,normalize:xr()};const o=Object.keys(e.__compiled__).filter(function(a){return a.length>0&&e.__compiled__[a]}).map(Cc).join(\"|\");e.re.schema_test=RegExp(\"(^|(?!_)(?:[><｜]|\"+t.src_ZPCc+\"))(\"+o+\")\",\"i\"),e.re.schema_search=RegExp(\"(^|(?!_)(?:[><｜]|\"+t.src_ZPCc+\"))(\"+o+\")\",\"ig\"),e.re.schema_at_start=RegExp(\"^\"+e.re.schema_search.source,\"i\"),e.re.pretest=RegExp(\"(\"+e.re.schema_test.source+\")|(\"+e.re.host_fuzzy_test.source+\")|@\",\"i\"),Rc(e)}function Pc(e,t){const u=e.__index__,r=e.__last_index__,n=e.__text_cache__.slice(u,r);this.schema=e.__schema__.toLowerCase(),this.index=u+t,this.lastIndex=r+t,this.raw=n,this.text=n,this.url=n}function gu(e,t){const u=new Pc(e,t);return e.__compiled__[u.schema].normalize(u,e),u}function ie(e,t){if(!(this instanceof ie))return new ie(e,t);t||Dc(e)&&(t=e,e={}),this.__opts__=_u({},Ln,t),this.__index__=-1,this.__last_index__=-1,this.__schema__=\"\",this.__text_cache__=\"\",this.__schemas__=_u({},wc,e),this.__compiled__={},this.__tlds__=Tc,this.__tlds_replaced__=!1,this.re={},Pt(this)}ie.prototype.add=function(t,u){return this.__schemas__[t]=u,Pt(this),this};ie.prototype.set=function(t){return this.__opts__=_u(this.__opts__,t),this};ie.prototype.test=function(t){if(this.__text_cache__=t,this.__index__=-1,!t.length)return!1;let u,r,n,i,o,a,s,l,d;if(this.re.schema_test.test(t)){for(s=this.re.schema_search,s.lastIndex=0;(u=s.exec(t))!==null;)if(i=this.testSchemaAt(t,u[2],s.lastIndex),i){this.__schema__=u[2],this.__index__=u.index+u[1].length,this.__last_index__=u.index+u[0].length+i;break}}return this.__opts__.fuzzyLink&&this.__compiled__[\"http:\"]&&(l=t.search(this.re.host_fuzzy_test),l>=0&&(this.__index__<0||l<this.__index__)&&(r=t.match(this.__opts__.fuzzyIP?this.re.link_fuzzy:this.re.link_no_ip_fuzzy))!==null&&(o=r.index+r[1].length,(this.__index__<0||o<this.__index__)&&(this.__schema__=\"\",this.__index__=o,this.__last_index__=r.index+r[0].length))),this.__opts__.fuzzyEmail&&this.__compiled__[\"mailto:\"]&&(d=t.indexOf(\"@\"),d>=0&&(n=t.match(this.re.email_fuzzy))!==null&&(o=n.index+n[1].length,a=n.index+n[0].length,(this.__index__<0||o<this.__index__||o===this.__index__&&a>this.__last_index__)&&(this.__schema__=\"mailto:\",this.__index__=o,this.__last_index__=a))),this.__index__>=0};ie.prototype.pretest=function(t){return this.re.pretest.test(t)};ie.prototype.testSchemaAt=function(t,u,r){return this.__compiled__[u.toLowerCase()]?this.__compiled__[u.toLowerCase()].validate(t,r,this):0};ie.prototype.match=function(t){const u=[];let r=0;this.__index__>=0&&this.__text_cache__===t&&(u.push(gu(this,r)),r=this.__last_index__);let n=r?t.slice(r):t;for(;this.test(n);)u.push(gu(this,r)),n=n.slice(this.__last_index__),r+=this.__last_index__;return u.length?u:null};ie.prototype.matchAtStart=function(t){if(this.__text_cache__=t,this.__index__=-1,!t.length)return null;const u=this.re.schema_at_start.exec(t);if(!u)return null;const r=this.testSchemaAt(t,u[2],u[0].length);return r?(this.__schema__=u[2],this.__index__=u.index+u[1].length,this.__last_index__=u.index+u[0].length+r,gu(this,0)):null};ie.prototype.tlds=function(t,u){return t=Array.isArray(t)?t:[t],u?(this.__tlds__=this.__tlds__.concat(t).sort().filter(function(r,n,i){return r!==i[n-1]}).reverse(),Pt(this),this):(this.__tlds__=t.slice(),this.__tlds_replaced__=!0,Pt(this),this)};ie.prototype.normalize=function(t){t.schema||(t.url=\"http://\"+t.url),t.schema===\"mailto:\"&&!/^mailto:/i.test(t.url)&&(t.url=\"mailto:\"+t.url)};ie.prototype.onCompile=function(){};const ze=2147483647,_e=36,Fu=1,nt=26,Ic=38,Oc=700,Pn=72,In=128,On=\"-\",Fc=/^xn--/,Mc=/[^\\0-\\x7F]/,Nc=/[\\x2E\\u3002\\uFF0E\\uFF61]/g,Vc={overflow:\"Overflow: input needs wider integers to process\",\"not-basic\":\"Illegal input >= 0x80 (not a basic code point)\",\"invalid-input\":\"Invalid input\"},ru=_e-Fu,ge=Math.floor,nu=String.fromCharCode;function ve(e){throw new RangeError(Vc[e])}function Bc(e,t){const u=[];let r=e.length;for(;r--;)u[r]=t(e[r]);return u}function Fn(e,t){const u=e.split(\"@\");let r=\"\";u.length>1&&(r=u[0]+\"@\",e=u[1]),e=e.replace(Nc,\".\");const n=e.split(\".\"),i=Bc(n,t).join(\".\");return r+i}function Mn(e){const t=[];let u=0;const r=e.length;for(;u<r;){const n=e.charCodeAt(u++);if(n>=55296&&n<=56319&&u<r){const i=e.charCodeAt(u++);(i&64512)==56320?t.push(((n&1023)<<10)+(i&1023)+65536):(t.push(n),u--)}else t.push(n)}return t}const zc=e=>String.fromCodePoint(...e),jc=function(e){return e>=48&&e<58?26+(e-48):e>=65&&e<91?e-65:e>=97&&e<123?e-97:_e},Er=function(e,t){return e+22+75*(e<26)-((t!=0)<<5)},Nn=function(e,t,u){let r=0;for(e=u?ge(e/Oc):e>>1,e+=ge(e/t);e>ru*nt>>1;r+=_e)e=ge(e/ru);return ge(r+(ru+1)*e/(e+Ic))},Vn=function(e){const t=[],u=e.length;let r=0,n=In,i=Pn,o=e.lastIndexOf(On);o<0&&(o=0);for(let a=0;a<o;++a)e.charCodeAt(a)>=128&&ve(\"not-basic\"),t.push(e.charCodeAt(a));for(let a=o>0?o+1:0;a<u;){const s=r;for(let d=1,c=_e;;c+=_e){a>=u&&ve(\"invalid-input\");const h=jc(e.charCodeAt(a++));h>=_e&&ve(\"invalid-input\"),h>ge((ze-r)/d)&&ve(\"overflow\"),r+=h*d;const p=c<=i?Fu:c>=i+nt?nt:c-i;if(h<p)break;const m=_e-p;d>ge(ze/m)&&ve(\"overflow\"),d*=m}const l=t.length+1;i=Nn(r-s,l,s==0),ge(r/l)>ze-n&&ve(\"overflow\"),n+=ge(r/l),r%=l,t.splice(r++,0,n)}return String.fromCodePoint(...t)},Bn=function(e){const t=[];e=Mn(e);const u=e.length;let r=In,n=0,i=Pn;for(const s of e)s<128&&t.push(nu(s));const o=t.length;let a=o;for(o&&t.push(On);a<u;){let s=ze;for(const d of e)d>=r&&d<s&&(s=d);const l=a+1;s-r>ge((ze-n)/l)&&ve(\"overflow\"),n+=(s-r)*l,r=s;for(const d of e)if(d<r&&++n>ze&&ve(\"overflow\"),d===r){let c=n;for(let h=_e;;h+=_e){const p=h<=i?Fu:h>=i+nt?nt:h-i;if(c<p)break;const m=c-p,x=_e-p;t.push(nu(Er(p+m%x,0))),c=ge(m/x)}t.push(nu(Er(c,0))),i=Nn(n,l,a===o),n=0,++a}++n,++r}return t.join(\"\")},$c=function(e){return Fn(e,function(t){return Fc.test(t)?Vn(t.slice(4).toLowerCase()):t})},qc=function(e){return Fn(e,function(t){return Mc.test(t)?\"xn--\"+Bn(t):t})},zn={version:\"2.3.1\",ucs2:{decode:Mn,encode:zc},decode:Vn,encode:Bn,toASCII:qc,toUnicode:$c},Uc={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:\"language-\",linkify:!1,typographer:!1,quotes:\"“”‘’\",highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}},Gc={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:\"language-\",linkify:!1,typographer:!1,quotes:\"“”‘’\",highlight:null,maxNesting:20},components:{core:{rules:[\"normalize\",\"block\",\"inline\",\"text_join\"]},block:{rules:[\"paragraph\"]},inline:{rules:[\"text\"],rules2:[\"balance_pairs\",\"fragments_join\"]}}},Hc={options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:\"language-\",linkify:!1,typographer:!1,quotes:\"“”‘’\",highlight:null,maxNesting:20},components:{core:{rules:[\"normalize\",\"block\",\"inline\",\"text_join\"]},block:{rules:[\"blockquote\",\"code\",\"fence\",\"heading\",\"hr\",\"html_block\",\"lheading\",\"list\",\"reference\",\"paragraph\"]},inline:{rules:[\"autolink\",\"backticks\",\"emphasis\",\"entity\",\"escape\",\"html_inline\",\"image\",\"link\",\"newline\",\"text\"],rules2:[\"balance_pairs\",\"emphasis\",\"fragments_join\"]}}},Wc={default:Uc,zero:Gc,commonmark:Hc},Zc=/^(vbscript|javascript|file|data):/,Jc=/^data:image\\/(gif|png|jpeg|webp);/;function Kc(e){const t=e.trim().toLowerCase();return Zc.test(t)?Jc.test(t):!0}const jn=[\"http:\",\"https:\",\"mailto:\"];function Yc(e){const t=Tu(e,!0);if(t.hostname&&(!t.protocol||jn.indexOf(t.protocol)>=0))try{t.hostname=zn.toASCII(t.hostname)}catch{}return st(Su(t))}function Qc(e){const t=Tu(e,!0);if(t.hostname&&(!t.protocol||jn.indexOf(t.protocol)>=0))try{t.hostname=zn.toUnicode(t.hostname)}catch{}return $e(Su(t),$e.defaultChars+\"%\")}function le(e,t){if(!(this instanceof le))return new le(e,t);t||Lu(e)||(t=e||{},e=\"default\"),this.inline=new ct,this.block=new Bt,this.core=new Iu,this.renderer=new He,this.linkify=new ie,this.validateLink=Kc,this.normalizeLink=Yc,this.normalizeLinkText=Qc,this.utils=el,this.helpers=Nt({},nl),this.options={},this.configure(e),t&&this.set(t)}le.prototype.set=function(e){return Nt(this.options,e),this};le.prototype.configure=function(e){const t=this;if(Lu(e)){const u=e;if(e=Wc[u],!e)throw new Error('Wrong `markdown-it` preset \"'+u+'\", check name')}if(!e)throw new Error(\"Wrong `markdown-it` preset, can't be empty\");return e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach(function(u){e.components[u].rules&&t[u].ruler.enableOnly(e.components[u].rules),e.components[u].rules2&&t[u].ruler2.enableOnly(e.components[u].rules2)}),this};le.prototype.enable=function(e,t){let u=[];Array.isArray(e)||(e=[e]),[\"core\",\"block\",\"inline\"].forEach(function(n){u=u.concat(this[n].ruler.enable(e,!0))},this),u=u.concat(this.inline.ruler2.enable(e,!0));const r=e.filter(function(n){return u.indexOf(n)<0});if(r.length&&!t)throw new Error(\"MarkdownIt. Failed to enable unknown rule(s): \"+r);return this};le.prototype.disable=function(e,t){let u=[];Array.isArray(e)||(e=[e]),[\"core\",\"block\",\"inline\"].forEach(function(n){u=u.concat(this[n].ruler.disable(e,!0))},this),u=u.concat(this.inline.ruler2.disable(e,!0));const r=e.filter(function(n){return u.indexOf(n)<0});if(r.length&&!t)throw new Error(\"MarkdownIt. Failed to disable unknown rule(s): \"+r);return this};le.prototype.use=function(e){const t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this};le.prototype.parse=function(e,t){if(typeof e!=\"string\")throw new Error(\"Input data should be a String\");const u=new this.core.State(e,this,t);return this.core.process(u),u.tokens};le.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)};le.prototype.parseInline=function(e,t){const u=new this.core.State(e,this,t);return u.inlineMode=!0,this.core.process(u),u.tokens};le.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)};let Ze=null;async function Xc(e){const t=e===\"light\"?\"github-light\":\"github-dark\";return(!Ze||Ze.theme!==t)&&(Ze=le().use(await ps({theme:t,langs:[\"python\",\"py\",\"sh\"]})),Ze.theme=t),Ze}function e0(e){return e.trim()}const t0={class:\"break-words w-full\"},u0=[\"innerHTML\"],r0=It({__name:\"Markdown\",props:{content:{},stream:{}},setup(e){const t=e,u=q(\"\"),r=Hn(),n=q(null);kr(()=>{o(\"content\"),setTimeout(()=>{a()},20)});async function i(){return n.value||(n.value=await Xc(r.preference)),n.value}function o(l){setTimeout(async()=>{const d=await i();if(l==\"stream\"&&(u.value=d.render(t.stream)),l==\"content\"){const c=e0(t.content);u.value=d.render(c),a()}},20)}yt(()=>t.content,()=>{o(\"content\")}),yt(()=>t.stream,()=>{o(\"stream\")});function a(){setTimeout(()=>{document.querySelectorAll(\"pre.shiki\").forEach(d=>{if(d.style.fontSize=\"15px\",d.style.background=\"#333\",!d.querySelector(\"button.copy-button\")){const c=document.createElement(\"button\");c.className=\"copy-button\",c.innerText=\"Copy\",c.style.position=\"absolute\",c.style.top=\"5px\",c.style.right=\"5px\",c.style.padding=\"5px\",c.style.fontSize=\"12px\",c.style.cursor=\"pointer\",c.addEventListener(\"click\",()=>{const h=d.querySelector(\"code\");if(h){const p=h.innerText;s(p)}}),d.style.position=\"relative\",d.appendChild(c)}})},200)}function s(l){navigator.clipboard.writeText(l).then(()=>{Ne(\"success\",\"Copied to clipboard\")}).catch(d=>{console.error(\"Failed to copy: \",d)})}return(l,d)=>(O(),F(\"div\",t0,[C(\"div\",{innerHTML:R(u)},null,8,u0)]))}}),n0=Wn(r0,[[\"__scopeId\",\"data-v-31f9d0a7\"]]),i0={key:0,class:\"text-center py-12\"},o0={key:5},a0={class:\"flex justify-between items-center\"},s0={class:\"space-x-2\"},l0={class:\"text-3xl mb-4 font-serif break-words\"},c0={class:\"mb-4 text-xs text-left\"},d0={key:0},f0=[\"href\"],p0={key:1,class:\"mx-2\"},m0={key:2,class:\"opacity-75\"},h0={key:0,class:\"w-full prose dark:prose-invert\"},_0={class:\"mb-4 grid grid-cols-1 gap-5 sm:grid-cols-3\"},g0=It({__name:\"StrategyMetrics\",props:{strategy:{},strategyMetrics:{},loading:{type:Boolean}},setup(e){const t=e,u=Ce(()=>[{name:\"PNL\",stat:`${t.strategyMetrics.net_profit.toFixed(2)} (${t.strategyMetrics.net_profit_percentage.toFixed(2)}%)`},{name:\"Win rate\",stat:`${(t.strategyMetrics.win_rate*100).toFixed(2)}%`},{name:\"Sharpe ratio\",stat:t.strategyMetrics.sharpe_ratio.toFixed(2)},{name:\"Smart Sharpe\",stat:t.strategyMetrics.smart_sharpe.toFixed(2)},{name:\"Sortino ratio\",stat:t.strategyMetrics.sortino_ratio.toFixed(2)},{name:\"Smart Sortino\",stat:t.strategyMetrics.smart_sortino.toFixed(2)},{name:\"Calmar ratio\",stat:t.strategyMetrics.calmar_ratio.toFixed(2)},{name:\"Omega ratio\",stat:t.strategyMetrics.omega_ratio.toFixed(2)},{name:\"Serenity index\",stat:t.strategyMetrics.serenity_index.toFixed(2)},{name:\"Average win/loss\",stat:t.strategyMetrics.average_win_loss.toFixed(2)},{name:\"Average win\",stat:t.strategyMetrics.average_win.toFixed(2)},{name:\"Average loss\",stat:t.strategyMetrics.average_loss.toFixed(2)}]),r=Ce(()=>[{name:\"Total trades\",stat:t.strategyMetrics.total_completed_trades},{name:\"Total winning trades\",stat:t.strategyMetrics.total_winning_trades},{name:\"Total losing trades\",stat:t.strategyMetrics.total_losing_trades},{name:\"Starting balance\",stat:t.strategyMetrics.starting_balance.toFixed(2)},{name:\"Finishing balance\",stat:t.strategyMetrics.finishing_balance.toFixed(2)},{name:\"Longs count\",stat:t.strategyMetrics.longs_count},{name:\"Longs percentage\",stat:t.strategyMetrics.longs_percentage.toFixed(2)},{name:\"Shorts percentage\",stat:t.strategyMetrics.shorts_percentage.toFixed(2)},{name:\"Shorts count\",stat:t.strategyMetrics.shorts_count},{name:\"Fee\",stat:t.strategyMetrics.fee.toFixed(2)},{name:\"Total open trades\",stat:t.strategyMetrics.total_open_trades},{name:\"Open PL\",stat:t.strategyMetrics.open_pl.toFixed(2)}]),n=Ce(()=>[{name:\"Total losing streak\",stat:t.strategyMetrics.losing_streak},{name:\"Largest losing trade\",stat:t.strategyMetrics.largest_losing_trade.toFixed(2)},{name:\"Largest winning trade\",stat:t.strategyMetrics.largest_winning_trade.toFixed(2)},{name:\"Total winning streak\",stat:t.strategyMetrics.winning_streak},{name:\"Current streak\",stat:t.strategyMetrics.current_streak},{name:\"Expectancy\",stat:`${t.strategyMetrics.expectancy.toFixed(2)} (${t.strategyMetrics.expectancy_percentage.toFixed(2)}%)`},{name:\"Expected net profit\",stat:t.strategyMetrics.expected_net_profit.toFixed(2)},{name:\"Average holding period\",stat:t.strategyMetrics.average_holding_period.toFixed(2)},{name:\"Gross profit\",stat:t.strategyMetrics.gross_profit.toFixed(2)},{name:\"Gross loss\",stat:t.strategyMetrics.gross_loss.toFixed(2)},{name:\"Max drawdown\",stat:t.strategyMetrics.max_drawdown.toFixed(2)}]);return(i,o)=>{const a=bu,s=Sr,l=wr,d=ni,c=Ar,h=n0;return i.loading?(O(),F(\"div\",i0,[(O(),F(Ee,null,we(3,p=>T(a,{key:p,class:\"h-48 mb-4\"})),64))])):i.strategyMetrics.id?i.strategyMetrics.id&&i.strategyMetrics.status===\"failed\"?(O(),he(s,{key:2,icon:\"i-heroicons-x-circle\",color:\"rose\",variant:\"subtle\",title:\"This strategy has failed to generate metrics for the selected period, symbol and timeframe. Please try another one.\"})):i.strategyMetrics.id&&(i.strategyMetrics.status===\"pending\"||i.strategyMetrics.status===\"running\")?(O(),he(s,{key:3,icon:\"i-heroicons-clock\",color:\"amber\",variant:\"subtle\",title:\"This strategy is still generating metrics for the selected period, symbol and timeframe. Please try again in a few minutes.\"})):i.strategyMetrics.id&&i.strategyMetrics.status===\"completed\"&&i.strategyMetrics.total_completed_trades==0?(O(),he(s,{key:4,icon:\"i-heroicons-clock\",color:\"amber\",variant:\"subtle\",title:`No trades were executed for this strategy in the selected period(${i.strategyMetrics.starting_date} - ${i.strategyMetrics.finishing_date}), symbol(${i.strategyMetrics.symbol}) and timeframe(${i.strategyMetrics.timeframe}).`},null,8,[\"title\"])):i.strategyMetrics.id?(O(),F(\"div\",o0,[T(c,{class:\"mb-4\"},{header:L(()=>[C(\"div\",a0,[o[0]||(o[0]=C(\"h2\",{class:\"text-center font-serif font-semibold text-xl hidden md:block\"},\" Equity Curve \",-1)),C(\"div\",s0,[T(l,{class:\"text-lg font-semibold\",color:\"gray\",variant:\"soft\"},{default:L(()=>[V(U(new Date(i.strategyMetrics.starting_date).toISOString().split(\"T\")[0]+\" => \"+new Date(i.strategyMetrics.finishing_date).toISOString().split(\"T\")[0]),1)]),_:1}),T(l,{class:\"text-lg font-semibold\",color:\"gray\",variant:\"soft\"},{default:L(()=>[V(U(i.strategyMetrics.symbol),1)]),_:1}),T(l,{class:\"text-lg font-semibold\",color:\"gray\",variant:\"soft\"},{default:L(()=>[V(U(i.strategyMetrics.timeframe),1)]),_:1})])])]),default:L(()=>[i.strategyMetrics.total_completed_trades&&i.strategyMetrics.equity_curve&&i.strategyMetrics.equity_curve.length?(O(),he(d,{key:0,data:i.strategyMetrics.equity_curve},null,8,[\"data\"])):(O(),he(s,{key:1,variant:\"subtle\",title:\"The equity curve for this strategy at this period, symbol and timeframe is not available.\"}))]),_:1}),T(c,{class:\"mb-4\"},{default:L(()=>[C(\"h1\",l0,U(i.strategy.name),1),C(\"div\",c0,[i.strategy.user?(O(),F(\"span\",d0,[o[1]||(o[1]=V(\" by \")),C(\"a\",{href:`https://jesse.trade/u/${i.strategy.user.username}`,target:\"_blank\",class:\"hover:underline\"},\"@\"+U(i.strategy.user.username),9,f0)])):se(\"\",!0),i.strategy.user&&i.strategy.created_at?(O(),F(\"span\",p0,\"•\")):se(\"\",!0),i.strategy.created_at?(O(),F(\"span\",m0,U(R(Zn)(i.strategy.created_at).value),1)):se(\"\",!0)]),i.strategy.description?(O(),F(\"div\",h0,[T(h,{content:i.strategy.description},null,8,[\"content\"])])):se(\"\",!0)]),_:1}),C(\"dl\",_0,[T(c,null,{header:L(()=>o[2]||(o[2]=[C(\"h2\",{class:\"text-center font-serif font-semibold text-xl\"},\" Performance Metrics \",-1)])),default:L(()=>[(O(!0),F(Ee,null,we(R(u),p=>(O(),F(\"div\",{key:p.name,class:\"flex justify-between text-sm opacity-75 mb-4\"},[C(\"dt\",null,U(p.name)+\":\",1),C(\"dd\",null,U(p.stat),1)]))),128))]),_:1}),T(c,null,{header:L(()=>o[3]||(o[3]=[C(\"h2\",{class:\"text-center font-serif font-semibold text-xl\"},\" Risk Metrics \",-1)])),default:L(()=>[(O(!0),F(Ee,null,we(R(n),p=>(O(),F(\"div\",{key:p.name,class:\"flex justify-between text-sm opacity-75 mb-4\"},[C(\"dt\",null,U(p.name)+\":\",1),C(\"dd\",null,U(p.stat),1)]))),128))]),_:1}),T(c,null,{header:L(()=>o[4]||(o[4]=[C(\"h2\",{class:\"text-center font-serif font-semibold text-xl\"},\" Trade Metrics \",-1)])),default:L(()=>[(O(!0),F(Ee,null,we(R(r),p=>(O(),F(\"div\",{key:p.name,class:\"flex justify-between text-sm opacity-75 mb-4\"},[C(\"dt\",null,U(p.name)+\":\",1),C(\"dd\",null,U(p.stat),1)]))),128))]),_:1})])])):se(\"\",!0):(O(),he(s,{key:1,variant:\"subtle\",icon:\"i-heroicons-information-circle\",title:\"No metrics found for this strategy in the selected period, symbol and timeframe\"}))}}}),b0={class:\"flex-1 flex flex-col\"},y0={class:\"mb-2 font-serif text-xl text-center font-semibold\"},x0={class:\"mb-2 text-xs text-center opacity-75\"},E0={key:0},k0={class:\"text-center mt-2 mb-4\"},A0={key:0,class:\"mb-6 flex-1\"},v0={key:0,class:\"text-sm font-medium\"},C0={class:\"flex items-center justify-between\"},D0={class:\"text-center font-semibold text-xl font-serif\"},w0={class:\"flex flex-col md:flex-row flex-1 min-h-0 overflow-hidden bg-gray-50 dark:bg-gray-900\"},S0={class:\"border-2 py-4 px-4 rounded border-dashed dark:border-gray-700 mb-4\"},T0={class:\"w-full space-y-4\"},R0={class:\"space-y-2\"},L0={key:1,class:\"text-center py-12\"},P0={class:\"flex items-center justify-between\"},I0={class:\"flex justify-end\"},O0={class:\"flex items-center justify-between\"},F0={class:\"space-y-4\"},M0={class:\"bold\"},N0={class:\"flex justify-end gap-2\"},V0=It({__name:\"JesseTradeStrategy\",props:{strategy:{}},emits:[\"imported\"],setup(e,{emit:t}){const u=e,r=t,n=q(!1),i=q(!1),o=q(null),a=q(!1),s=q({}),l=q(!0),d=q(!1),c=q(!1),h=q(null),p=q(null);function m(w){let v=w.target;for(;v&&v!==h.value;){const K=window.getComputedStyle(v).overflowY;if((K===\"auto\"||K===\"scroll\")&&v.scrollHeight>v.clientHeight)return;v=v.parentElement}window.innerWidth>=768&&p.value&&(w.preventDefault(),p.value.scrollTop+=w.deltaY)}const x=q([]),g=q(!0),E=Ce(()=>{var w;return((w=o.value)==null?void 0:w.backtest_timeframes)||u.strategy.backtest_timeframes||[\"5m\",\"15m\",\"30m\",\"1h\",\"4h\",\"6h\",\"1D\"]}),_=Ce(()=>{var w;return((w=o.value)==null?void 0:w.backtest_symbols)||u.strategy.backtest_symbols||[\"BTC-USDT\"]}),y=q({period:\"\",symbol:\"\",timeframe:\"\"});async function k(){g.value=!0;try{const w=await me().fetchJesseTradePeriods();x.value=w||[],x.value.length>0&&(y.value.period=x.value[0])}catch(w){console.error(\"Failed to load periods:\",w),Ne(\"error\",\"Failed to load periods\")}finally{g.value=!1}}const D=Ce(()=>{var v,B,K,X;if(!u.strategy.strategy_metrics)return[];const w=u.strategy.strategy_metrics;return[{key:\"PNL\",value:`$${((v=w.net_profit)==null?void 0:v.toFixed(2))||0} (${((B=w.net_profit_percentage)==null?void 0:B.toFixed(2))||0}%)`},{key:\"Max Drawdown\",value:((K=w.max_drawdown)==null?void 0:K.toFixed(2))||0},{key:\"Sharpe Ratio\",value:((X=w.sharpe_ratio)==null?void 0:X.toFixed(2))||0},{key:\"Win-rate\",value:`${((w.win_rate||0)*100).toFixed(2)}%`}]}),S=Ce(()=>{const w=me().jesseTradeUser;return w?w.premium_until&&new Date(w.premium_until)>new Date?\"Premium\":w.license_plan||\"Free\":\"Guest\"}),I=Ce(()=>{if(!me().jesseTradeBearer)return!1;if(u.strategy.type===\"free\")return!0;if(u.strategy.type===\"premium\"){const w=me().jesseTradeUser;return w&&w.premium_until?new Date(w.premium_until)>new Date:!1}return!0});async function z(){var w;n.value=!0,x.value.length===0&&await k(),o.value||(o.value=await me().getJesseTradeStrategy(u.strategy.slug),(w=o.value)!=null&&w.strategy_metrics?(l.value=!0,s.value=o.value.strategy_metrics,Yn(()=>{y.value={period:re(o.value.strategy_metrics),symbol:o.value.strategy_metrics.symbol,timeframe:o.value.strategy_metrics.timeframe},l.value=!1})):(l.value=!1,y.value={period:x.value[0]||\"\",symbol:_.value[0]||\"\",timeframe:E.value[0]||\"\"}))}async function Q(){a.value=!0,s.value={};const w=await me().getJesseTradeStrategyMetrics(u.strategy.slug,y.value.period,y.value.symbol,y.value.timeframe);a.value=!1,w?s.value=w:s.value={}}function re(w){const v=new Date(w.starting_date),B=new Date(w.finishing_date),K=v.getFullYear(),X=v.getMonth()+1,Oe=B.getFullYear(),Fe=B.getMonth()+1;return Fe-X>9?`${K} - ${Oe+1}`:Fe-X==2?`Q${(X-1)/3+1} of ${K}`:x.value.length>0?x.value[0]:\"\"}yt(y,()=>{o.value&&!l.value&&Q()},{deep:!0});async function de(){if(!me().jesseTradeBearer){d.value=!0;return}if(u.strategy.type===\"premium\"&&!I.value){c.value=!0;return}i.value=!0;const w=await me().importStrategy(u.strategy.slug);i.value=!1,w&&w.status===\"success\"&&(Ne(\"success\",`Strategy \"${w.name}\" imported successfully!`),r(\"imported\",w.name),n.value=!1,Qn(`/strategies/${w.name}`))}function Ie(){window.open(\"https://jesse.trade/pricing\",\"_blank\")}return(w,v)=>{const B=wr,K=Sr,X=vr,Oe=Ar,Fe=Dr,jt=Cr,$n=g0,qn=bu,$t=Kn;return O(),F(Ee,null,[T(Oe,{class:\"mb-4 hover:border-primary-500 flex flex-col\",ui:{background:\"bg-white dark:bg-gray-800\",base:\"cursor-pointer hover:!bg-gray-50 dark:hover:!bg-gray-700 transition-colors h-full\",body:{base:\"flex flex-col flex-1\"}},onClick:z},{default:L(()=>[C(\"div\",b0,[C(\"h2\",y0,U(w.strategy.name),1),C(\"div\",x0,[w.strategy.user?(O(),F(\"span\",E0,\" by @\"+U(w.strategy.user.username),1)):se(\"\",!0)]),C(\"div\",k0,[T(B,{variant:\"soft\",color:w.strategy.type===\"free\"?\"gray\":\"teal\",size:\"xs\",class:\"uppercase\"},{default:L(()=>[V(U(w.strategy.type),1)]),_:1},8,[\"color\"])]),w.strategy.admin_status===\"approved\"&&w.strategy.strategy_metrics?(O(),F(\"div\",A0,[(O(!0),F(Ee,null,we(R(D),j=>(O(),F(\"div\",{key:j.key,class:\"flex justify-between text-sm opacity-75 mb-2\"},[C(\"div\",null,U(j.key)+\":\",1),C(\"div\",null,U(j.value),1)]))),128))])):se(\"\",!0),w.strategy.admin_status===\"rejected\"?(O(),he(K,{key:1,class:\"mb-4\",color:\"red\",variant:\"soft\",title:\"This strategy has been rejected\"},{description:L(()=>[w.strategy.admin_rejection_reason?(O(),F(\"p\",v0,[v[11]||(v[11]=C(\"strong\",null,\"Reason:\",-1)),V(\" \"+U(w.strategy.admin_rejection_reason),1)])):se(\"\",!0)]),_:1})):w.strategy.admin_status!==\"approved\"?(O(),he(K,{key:2,class:\"mb-4\",color:\"orange\",variant:\"soft\",title:\"This strategy is under review and not approved yet.\"})):se(\"\",!0)]),T(X,{block:\"\",loading:R(i),color:\"primary\",variant:\"soft\",class:\"mt-auto\",onClick:Jn(de,[\"stop\"])},{default:L(()=>v[12]||(v[12]=[V(\" Import Strategy \")])),_:1},8,[\"loading\"])]),_:1}),T($t,{modelValue:R(n),\"onUpdate:modelValue\":v[4]||(v[4]=j=>qt(n)?n.value=j:null),fullscreen:\"\"},{default:L(()=>[T(Oe,{ui:{base:\"flex flex-col h-full\",header:{base:\"border-b border-gray-200 dark:border-gray-700 flex-shrink-0\"},body:{padding:\"p-0 sm:p-0\",base:\"bg-gray-50 dark:bg-gray-900 flex flex-col flex-1 min-h-0 overflow-hidden\"},ring:\"\",divide:\"\"}},{header:L(()=>[C(\"div\",C0,[C(\"h2\",D0,U(w.strategy.name),1),T(X,{color:\"gray\",icon:\"i-heroicons-x-mark-20-solid\",onClick:v[0]||(v[0]=j=>n.value=!1)},{default:L(()=>v[13]||(v[13]=[V(\" Close \")])),_:1})])]),default:L(()=>[C(\"div\",w0,[C(\"div\",{ref_key:\"sidebarRef\",ref:h,class:\"md:w-1/4 md:flex-shrink-0 p-4 md:border-r border-b md:border-b-0 border-gray-200 dark:border-gray-700\",onWheel:m},[C(\"div\",S0,[v[14]||(v[14]=C(\"h2\",{class:\"mb-4 text-xl font-serif text-center\"},\" Filter Metrics \",-1)),v[15]||(v[15]=C(\"p\",{class:\"mb-4 text-sm\"},\" Select the info for the backtest metrics that you want to see: \",-1)),C(\"div\",T0,[T(jt,{label:\"Trading period\"},{default:L(()=>[T(Fe,{modelValue:R(y).period,\"onUpdate:modelValue\":v[1]||(v[1]=j=>R(y).period=j),searchable:\"\",\"searchable-placeholder\":\"Search period...\",class:\"w-full\",placeholder:\"Select period\",options:R(x),loading:R(g)},null,8,[\"modelValue\",\"options\",\"loading\"])]),_:1}),T(jt,{label:\"Symbol\"},{default:L(()=>[T(Fe,{modelValue:R(y).symbol,\"onUpdate:modelValue\":v[2]||(v[2]=j=>R(y).symbol=j),class:\"w-full\",placeholder:\"Symbol\",options:R(_)},null,8,[\"modelValue\",\"options\"])]),_:1}),T(jt,{label:\"Timeframe\"},{default:L(()=>[T(Fe,{modelValue:R(y).timeframe,\"onUpdate:modelValue\":v[3]||(v[3]=j=>R(y).timeframe=j),class:\"w-full\",placeholder:\"Timeframe\",options:R(E)},null,8,[\"modelValue\",\"options\"])]),_:1})])]),C(\"div\",R0,[T(X,{block:\"\",loading:R(i),color:\"primary\",onClick:de},{default:L(()=>v[16]||(v[16]=[V(\" Import Strategy \")])),_:1},8,[\"loading\"])])],544),C(\"div\",{ref_key:\"contentRef\",ref:p,class:\"flex-1 min-w-0 overflow-y-auto p-4\"},[R(o)?(O(),he($n,{key:0,strategy:R(o),\"strategy-metrics\":R(s),loading:R(a)},null,8,[\"strategy\",\"strategy-metrics\",\"loading\"])):(O(),F(\"div\",L0,[(O(),F(Ee,null,we(3,j=>T(qn,{key:j,class:\"h-48 mb-4\"})),64))]))],512)])]),_:1})]),_:1},8,[\"modelValue\"]),T($t,{modelValue:R(d),\"onUpdate:modelValue\":v[7]||(v[7]=j=>qt(d)?d.value=j:null)},{default:L(()=>[T(Oe,null,{header:L(()=>[C(\"div\",P0,[v[17]||(v[17]=C(\"h3\",{class:\"text-lg font-semibold\"},\" Authentication Required \",-1)),T(X,{color:\"gray\",variant:\"ghost\",icon:\"i-heroicons-x-mark-20-solid\",onClick:v[5]||(v[5]=j=>d.value=!1)})])]),footer:L(()=>[C(\"div\",I0,[T(X,{color:\"primary\",onClick:v[6]||(v[6]=j=>d.value=!1)},{default:L(()=>v[18]||(v[18]=[V(\" Got it \")])),_:1})])]),default:L(()=>[v[19]||(v[19]=C(\"div\",{class:\"space-y-4\"},[C(\"p\",null,[V(\" To import strategies from jesse.trade, you need to authenticate with your \"),C(\"code\",{class:\"px-1 py-0.5 bg-gray-100 dark:bg-gray-800 rounded\"},\"LICENSE_API_TOKEN\"),V(\". This applies to both free and premium users. \")]),C(\"div\",{class:\"space-y-2\"},[C(\"h4\",{class:\"font-semibold\"},\" How to get started: \"),C(\"ol\",{class:\"list-decimal list-inside space-y-2\"},[C(\"li\",null,[V(\"Visit \"),C(\"a\",{href:\"https://jesse.trade/user/api-tokens\",target:\"_blank\",class:\"text-primary-500 hover:underline\"},\"jesse.trade/user/api-tokens\")]),C(\"li\",null,[V(\"Generate a new \"),C(\"code\",{class:\"px-1 py-0.5 bg-gray-100 dark:bg-gray-800 rounded\"},\"LICENSE_API_TOKEN\")]),C(\"li\",null,[V(\"Copy the token and add it to your project's \"),C(\"code\",{class:\"px-1 py-0.5 bg-gray-100 dark:bg-gray-800 rounded\"},\".env\"),V(\" file:\")])])]),C(\"div\",{class:\"bg-gray-50 dark:bg-gray-800 p-3 rounded-lg\"},[C(\"code\",{class:\"text-gray-800 dark:text-gray-200\"},\" LICENSE_API_TOKEN=your-token-here \")]),C(\"p\",null,[V(\" After adding the token to your \"),C(\"code\",{class:\"px-1 py-0.5 bg-gray-100 dark:bg-gray-800 rounded\"},\".env\"),V(\" file, restart Jesse and you'll be authenticated automatically. \")])],-1))]),_:1})]),_:1},8,[\"modelValue\"]),T($t,{modelValue:R(c),\"onUpdate:modelValue\":v[10]||(v[10]=j=>qt(c)?c.value=j:null)},{default:L(()=>[T(Oe,null,{header:L(()=>[C(\"div\",O0,[v[20]||(v[20]=C(\"h3\",{class:\"text-lg font-semibold\"},\" Premium Plan Required \",-1)),T(X,{color:\"gray\",variant:\"ghost\",icon:\"i-heroicons-x-mark-20-solid\",onClick:v[8]||(v[8]=j=>c.value=!1)})])]),footer:L(()=>[C(\"div\",N0,[T(X,{color:\"gray\",variant:\"ghost\",onClick:v[9]||(v[9]=j=>c.value=!1)},{default:L(()=>v[26]||(v[26]=[V(\" Maybe Later \")])),_:1}),T(X,{color:\"primary\",onClick:Ie},{default:L(()=>v[27]||(v[27]=[V(\" View Pricing \")])),_:1})])]),default:L(()=>[C(\"div\",F0,[C(\"p\",null,[v[21]||(v[21]=V(\" This is a premium strategy. Your current plan is \")),C(\"strong\",M0,'\"'+U(R(S))+'\"',1),v[22]||(v[22]=V(\". \"))]),v[23]||(v[23]=C(\"p\",{class:\"text-gray-600 dark:text-gray-400\"},\" To import premium strategies and unlock all premium features, you need to upgrade to a Premium plan. \",-1)),v[24]||(v[24]=C(\"div\",{class:\"space-y-2\"},[C(\"h4\",{class:\"font-semibold\"},\" How to upgrade: \"),C(\"ol\",{class:\"list-decimal list-inside space-y-2\"},[C(\"li\",null,[V(\"Visit \"),C(\"a\",{href:\"https://jesse.trade/pricing\",target:\"_blank\",class:\"text-primary-500 hover:underline\"},\"jesse.trade/pricing\")]),C(\"li\",null,\"Choose a Premium plan that fits your needs\"),C(\"li\",null,\"Complete the purchase\"),C(\"li\",null,\"Your account will be upgraded immediately\")])],-1)),v[25]||(v[25]=C(\"p\",null,\" After upgrading, restart Jesse to refresh your authentication and access premium strategies. \",-1))])]),_:1})]),_:1},8,[\"modelValue\"])],64)}}}),B0={class:\"grid items-start lg:grid-cols-5\"},z0={class:\"grid grid-cols-1 lg:col-span-4 bg-gray-100 dark:bg-backdrop-dark overflow-y-auto\",style:{height:\"calc(100vh - 4rem - 4px)\"}},j0={class:\"p-8\"},$0={class:\"flex items-center justify-between mb-8\"},q0={class:\"grid grid-cols-1 md:grid-cols-3 gap-4 mb-6\"},U0={key:0,class:\"mb-6\"},G0={class:\"grid grid-cols-1 md:grid-cols-2 gap-4\"},H0={key:1,class:\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4\"},W0={key:2,class:\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 items-stretch\"},Z0={key:3,class:\"flex flex-col items-center justify-center py-16\"},ld=It({__name:\"index\",setup(e){ii({title:\"Strategies - Jesse\"});const t=[\"Sharpe Ratio\",\"PNL\",\"Sortino Ratio\",\"Calmar Ratio\",\"Win Rate\"],u=[\"All time\",\"Last 7 days\",\"Last 30 days\",\"Last 6 months\",\"Last year\",\"Custom\"],r=q([]),n=q(!0),i=q({sortBy:t[0],period:\"\",submissionDate:u[0],customStartDate:\"\",customEndDate:\"\"});async function o(){n.value=!0;try{const c=await me().fetchJesseTradePeriods();r.value=c||[],r.value.length>0&&(i.value.period=r.value[0],await l())}catch(c){console.error(\"Failed to load periods:\",c),Ne(\"error\",\"Failed to load periods\")}finally{n.value=!1}}const a=q([]),s=q(!1);async function l(){if(i.value.period){s.value=!0,a.value=[];try{let c,h;if(i.value.submissionDate!==\"All time\")if(i.value.submissionDate===\"Custom\")c=i.value.customStartDate||void 0,h=i.value.customEndDate||void 0;else{const m=new Date;let x=null;const g=m;switch(i.value.submissionDate){case\"Last 7 days\":x=new Date(m.getTime()-7*24*60*60*1e3);break;case\"Last 30 days\":x=new Date(m.getTime()-30*24*60*60*1e3);break;case\"Last 6 months\":x=new Date(m),x.setMonth(m.getMonth()-6);break;case\"Last year\":x=new Date(m),x.setFullYear(m.getFullYear()-1);break}x&&(c=x.toISOString().split(\"T\")[0]),h=g.toISOString().split(\"T\")[0]}const p=await me().fetchJesseTradeStrategies(i.value.period,i.value.sortBy,c,h);a.value=p||[]}catch{Ne(\"error\",\"Failed to fetch strategies\")}finally{s.value=!1}}}function d(c){Ne(\"success\",`Strategy \"${c}\" is now available in your strategies list`)}return yt(i,l,{deep:!0}),kr(()=>{setTimeout(async()=>{await o()},20)}),(c,h)=>{const p=vr,m=ui,x=Dr,g=Cr,E=ei,_=bu,y=ti;return O(),F(\"section\",B0,[T(ri),C(\"div\",z0,[C(\"div\",j0,[C(\"div\",$0,[h[7]||(h[7]=C(\"h1\",{class:\"text-3xl font-bold text-gray-900 dark:text-white\"},\" Strategies \",-1)),T(p,{icon:\"i-heroicons-plus\",onClick:h[0]||(h[0]=k=>(\"useTempStore\"in c?c.useTempStore:R(Xn))().makeStrategy=!0)},{default:L(()=>h[6]||(h[6]=[V(\" Create a new strategy \")])),_:1})]),T(m,{class:\"my-8\"},{default:L(()=>h[8]||(h[8]=[V(\" Browse strategies from our community or create your own custom strategy. \")])),_:1}),C(\"div\",q0,[T(g,{label:\"Sort by\"},{default:L(()=>[T(x,{modelValue:R(i).sortBy,\"onUpdate:modelValue\":h[1]||(h[1]=k=>R(i).sortBy=k),options:t,class:\"w-full\"},null,8,[\"modelValue\"])]),_:1}),T(g,{label:\"Trading period\"},{default:L(()=>[T(x,{modelValue:R(i).period,\"onUpdate:modelValue\":h[2]||(h[2]=k=>R(i).period=k),options:R(r),searchable:\"\",\"searchable-placeholder\":\"Search period...\",loading:R(n),class:\"w-full\"},null,8,[\"modelValue\",\"options\",\"loading\"])]),_:1}),T(g,{label:\"Submission date\"},{default:L(()=>[T(x,{modelValue:R(i).submissionDate,\"onUpdate:modelValue\":h[3]||(h[3]=k=>R(i).submissionDate=k),options:u,class:\"w-full\"},null,8,[\"modelValue\"])]),_:1})]),R(i).submissionDate===\"Custom\"?(O(),F(\"div\",U0,[C(\"div\",G0,[T(g,{label:\"From date\"},{default:L(()=>[T(E,{modelValue:R(i).customStartDate,\"onUpdate:modelValue\":h[4]||(h[4]=k=>R(i).customStartDate=k),type:\"date\",class:\"w-full\"},null,8,[\"modelValue\"])]),_:1}),T(g,{label:\"To date\"},{default:L(()=>[T(E,{modelValue:R(i).customEndDate,\"onUpdate:modelValue\":h[5]||(h[5]=k=>R(i).customEndDate=k),type:\"date\",class:\"w-full\"},null,8,[\"modelValue\"])]),_:1})])])):se(\"\",!0),R(s)?(O(),F(\"div\",H0,[(O(),F(Ee,null,we(6,k=>T(_,{key:k,class:\"h-64 bg-white dark:bg-gray-800\"})),64))])):se(\"\",!0),!R(s)&&R(a).length>0?(O(),F(\"div\",W0,[(O(!0),F(Ee,null,we(R(a),k=>(O(),he(V0,{key:k.slug,strategy:k,onImported:d},null,8,[\"strategy\"]))),128))])):!R(s)&&R(a).length===0?(O(),F(\"div\",Z0,[T(y,{name:\"i-heroicons-magnifying-glass\",class:\"w-16 h-16 text-gray-400 dark:text-gray-600 mb-4\"}),h[9]||(h[9]=C(\"h3\",{class:\"text-lg font-semibold text-gray-700 dark:text-gray-300 mb-2\"},\" No Strategies Found \",-1)),h[10]||(h[10]=C(\"p\",{class:\"text-gray-500 dark:text-gray-400 text-center max-w-md\"},\" No strategies were found for the selected period. Try selecting a different period or check back later for new strategies. \",-1))])):se(\"\",!0)])])])}}});export{ld as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/B2Cf9XSq.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{blockComment:[\"(*\",\"*)\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"[\",close:\"]\"},{open:\"{\",close:\"}\"},{open:\"(\",close:\")\"},{open:\"(*\",close:\"*)\"},{open:\"<*\",close:\"*>\"},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]},{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]}]},o={defaultToken:\"\",tokenPostfix:\".m3\",brackets:[{token:\"delimiter.curly\",open:\"{\",close:\"}\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"},{token:\"delimiter.square\",open:\"[\",close:\"]\"}],keywords:[\"AND\",\"ANY\",\"ARRAY\",\"AS\",\"BEGIN\",\"BITS\",\"BRANDED\",\"BY\",\"CASE\",\"CONST\",\"DIV\",\"DO\",\"ELSE\",\"ELSIF\",\"END\",\"EVAL\",\"EXCEPT\",\"EXCEPTION\",\"EXIT\",\"EXPORTS\",\"FINALLY\",\"FOR\",\"FROM\",\"GENERIC\",\"IF\",\"IMPORT\",\"IN\",\"INTERFACE\",\"LOCK\",\"LOOP\",\"METHODS\",\"MOD\",\"MODULE\",\"NOT\",\"OBJECT\",\"OF\",\"OR\",\"OVERRIDES\",\"PROCEDURE\",\"RAISE\",\"RAISES\",\"READONLY\",\"RECORD\",\"REF\",\"REPEAT\",\"RETURN\",\"REVEAL\",\"SET\",\"THEN\",\"TO\",\"TRY\",\"TYPE\",\"TYPECASE\",\"UNSAFE\",\"UNTIL\",\"UNTRACED\",\"VALUE\",\"VAR\",\"WHILE\",\"WITH\"],reservedConstNames:[\"ABS\",\"ADR\",\"ADRSIZE\",\"BITSIZE\",\"BYTESIZE\",\"CEILING\",\"DEC\",\"DISPOSE\",\"FALSE\",\"FIRST\",\"FLOAT\",\"FLOOR\",\"INC\",\"ISTYPE\",\"LAST\",\"LOOPHOLE\",\"MAX\",\"MIN\",\"NARROW\",\"NEW\",\"NIL\",\"NUMBER\",\"ORD\",\"ROUND\",\"SUBARRAY\",\"TRUE\",\"TRUNC\",\"TYPECODE\",\"VAL\"],reservedTypeNames:[\"ADDRESS\",\"ANY\",\"BOOLEAN\",\"CARDINAL\",\"CHAR\",\"EXTENDED\",\"INTEGER\",\"LONGCARD\",\"LONGINT\",\"LONGREAL\",\"MUTEX\",\"NULL\",\"REAL\",\"REFANY\",\"ROOT\",\"TEXT\"],operators:[\"+\",\"-\",\"*\",\"/\",\"&\",\"^\",\".\"],relations:[\"=\",\"#\",\"<\",\"<=\",\">\",\">=\",\"<:\",\":\"],delimiters:[\"|\",\"..\",\"=>\",\",\",\";\",\":=\"],symbols:/[>=<#.,:;+\\-*/&^]+/,escapes:/\\\\(?:[\\\\fnrt\"']|[0-7]{3})/,tokenizer:{root:[[/_\\w*/,\"invalid\"],[/[a-zA-Z][a-zA-Z0-9_]*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@reservedConstNames\":{token:\"constant.reserved.$0\"},\"@reservedTypeNames\":{token:\"type.reserved.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"@brackets\"],[/[0-9]+\\.[0-9]+(?:[DdEeXx][\\+\\-]?[0-9]+)?/,\"number.float\"],[/[0-9]+(?:\\_[0-9a-fA-F]+)?L?/,\"number\"],[/@symbols/,{cases:{\"@operators\":\"operators\",\"@relations\":\"operators\",\"@delimiters\":\"delimiter\",\"@default\":\"invalid\"}}],[/'[^\\\\']'/,\"string.char\"],[/(')(@escapes)(')/,[\"string.char\",\"string.escape\",\"string.char\"]],[/'/,\"invalid\"],[/\"([^\"\\\\]|\\\\.)*$/,\"invalid\"],[/\"/,\"string.text\",\"@text\"]],text:[[/[^\\\\\"]+/,\"string.text\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"invalid\"],[/\"/,\"string.text\",\"@pop\"]],comment:[[/\\(\\*/,\"comment\",\"@push\"],[/\\*\\)/,\"comment\",\"@pop\"],[/./,\"comment\"]],pragma:[[/<\\*/,\"keyword.pragma\",\"@push\"],[/\\*>/,\"keyword.pragma\",\"@pop\"],[/./,\"keyword.pragma\"]],whitespace:[[/[ \\t\\r\\n]+/,\"white\"],[/\\(\\*/,\"comment\",\"@comment\"],[/<\\*/,\"keyword.pragma\",\"@pragma\"]]}};export{e as conf,o as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/B2nSH5Xk.js",
    "content": "import{a1 as o}from\"./CU_MfyYc.js\";/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var a=Object.defineProperty,l=Object.getOwnPropertyDescriptor,p=Object.getOwnPropertyNames,c=Object.prototype.hasOwnProperty,g=(t,e,n,s)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let r of p(e))!c.call(t,r)&&r!==n&&a(t,r,{get:()=>e[r],enumerable:!(s=l(e,r))||s.enumerable});return t},d=(t,e,n)=>(g(t,e,\"default\"),n),i={};d(i,o);var f={comments:{lineComment:\"#\",blockComment:[\"'''\",\"'''\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"',notIn:[\"string\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],onEnterRules:[{beforeText:new RegExp(\"^\\\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async|match|case).*?:\\\\s*$\"),action:{indentAction:i.languages.IndentAction.Indent}}],folding:{offSide:!0,markers:{start:new RegExp(\"^\\\\s*#region\\\\b\"),end:new RegExp(\"^\\\\s*#endregion\\\\b\")}}},m={defaultToken:\"\",tokenPostfix:\".python\",keywords:[\"False\",\"None\",\"True\",\"_\",\"and\",\"as\",\"assert\",\"async\",\"await\",\"break\",\"case\",\"class\",\"continue\",\"def\",\"del\",\"elif\",\"else\",\"except\",\"exec\",\"finally\",\"for\",\"from\",\"global\",\"if\",\"import\",\"in\",\"is\",\"lambda\",\"match\",\"nonlocal\",\"not\",\"or\",\"pass\",\"print\",\"raise\",\"return\",\"try\",\"type\",\"while\",\"with\",\"yield\",\"int\",\"float\",\"long\",\"complex\",\"hex\",\"abs\",\"all\",\"any\",\"apply\",\"basestring\",\"bin\",\"bool\",\"buffer\",\"bytearray\",\"callable\",\"chr\",\"classmethod\",\"cmp\",\"coerce\",\"compile\",\"complex\",\"delattr\",\"dict\",\"dir\",\"divmod\",\"enumerate\",\"eval\",\"execfile\",\"file\",\"filter\",\"format\",\"frozenset\",\"getattr\",\"globals\",\"hasattr\",\"hash\",\"help\",\"id\",\"input\",\"intern\",\"isinstance\",\"issubclass\",\"iter\",\"len\",\"locals\",\"list\",\"map\",\"max\",\"memoryview\",\"min\",\"next\",\"object\",\"oct\",\"open\",\"ord\",\"pow\",\"print\",\"property\",\"reversed\",\"range\",\"raw_input\",\"reduce\",\"reload\",\"repr\",\"reversed\",\"round\",\"self\",\"set\",\"setattr\",\"slice\",\"sorted\",\"staticmethod\",\"str\",\"sum\",\"super\",\"tuple\",\"type\",\"unichr\",\"unicode\",\"vars\",\"xrange\",\"zip\",\"__dict__\",\"__methods__\",\"__members__\",\"__class__\",\"__bases__\",\"__name__\",\"__mro__\",\"__subclasses__\",\"__init__\",\"__import__\"],brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.bracket\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],tokenizer:{root:[{include:\"@whitespace\"},{include:\"@numbers\"},{include:\"@strings\"},[/[,:;]/,\"delimiter\"],[/[{}\\[\\]()]/,\"@brackets\"],[/@[a-zA-Z_]\\w*/,\"tag\"],[/[a-zA-Z_]\\w*/,{cases:{\"@keywords\":\"keyword\",\"@default\":\"identifier\"}}]],whitespace:[[/\\s+/,\"white\"],[/(^#.*$)/,\"comment\"],[/'''/,\"string\",\"@endDocString\"],[/\"\"\"/,\"string\",\"@endDblDocString\"]],endDocString:[[/[^']+/,\"string\"],[/\\\\'/,\"string\"],[/'''/,\"string\",\"@popall\"],[/'/,\"string\"]],endDblDocString:[[/[^\"]+/,\"string\"],[/\\\\\"/,\"string\"],[/\"\"\"/,\"string\",\"@popall\"],[/\"/,\"string\"]],numbers:[[/-?0x([abcdef]|[ABCDEF]|\\d)+[lL]?/,\"number.hex\"],[/-?(\\d*\\.)?\\d+([eE][+\\-]?\\d+)?[jJ]?[lL]?/,\"number\"]],strings:[[/'$/,\"string.escape\",\"@popall\"],[/f'{1,3}/,\"string.escape\",\"@fStringBody\"],[/'/,\"string.escape\",\"@stringBody\"],[/\"$/,\"string.escape\",\"@popall\"],[/f\"{1,3}/,\"string.escape\",\"@fDblStringBody\"],[/\"/,\"string.escape\",\"@dblStringBody\"]],fStringBody:[[/[^\\\\'\\{\\}]+$/,\"string\",\"@popall\"],[/[^\\\\'\\{\\}]+/,\"string\"],[/\\{[^\\}':!=]+/,\"identifier\",\"@fStringDetail\"],[/\\\\./,\"string\"],[/'/,\"string.escape\",\"@popall\"],[/\\\\$/,\"string\"]],stringBody:[[/[^\\\\']+$/,\"string\",\"@popall\"],[/[^\\\\']+/,\"string\"],[/\\\\./,\"string\"],[/'/,\"string.escape\",\"@popall\"],[/\\\\$/,\"string\"]],fDblStringBody:[[/[^\\\\\"\\{\\}]+$/,\"string\",\"@popall\"],[/[^\\\\\"\\{\\}]+/,\"string\"],[/\\{[^\\}':!=]+/,\"identifier\",\"@fStringDetail\"],[/\\\\./,\"string\"],[/\"/,\"string.escape\",\"@popall\"],[/\\\\$/,\"string\"]],dblStringBody:[[/[^\\\\\"]+$/,\"string\",\"@popall\"],[/[^\\\\\"]+/,\"string\"],[/\\\\./,\"string\"],[/\"/,\"string.escape\",\"@popall\"],[/\\\\$/,\"string\"]],fStringDetail:[[/[:][^}]+/,\"string\"],[/[!][ars]/,\"string\"],[/=/,\"string\"],[/\\}/,\"identifier\",\"@pop\"]]}};export{f as conf,m as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/B2vK47Ag.js",
    "content": "import e from\"./B1SYOhNW.js\";import t from\"./ySlJ1b_l.js\";import n from\"./BPhBrDlE.js\";const i=Object.freeze(JSON.parse(`{\"displayName\":\"Templ\",\"name\":\"templ\",\"patterns\":[{\"include\":\"#script-template\"},{\"include\":\"#css-template\"},{\"include\":\"#html-template\"},{\"include\":\"source.go\"}],\"repository\":{\"block-element\":{\"begin\":\"(</?)((?i:address|blockquote|dd|div|section|article|aside|header|footer|nav|menu|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|pre)(?=\\\\\\\\s|\\\\\\\\\\\\\\\\|>))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.block.any.html\"}},\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.block.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},\"call-expression\":{\"begin\":\"({\\\\\\\\!)\\\\\\\\s+\",\"beginCaptures\":{\"0\":{\"name\":\"start.call-expression.templ\"},\"1\":{\"name\":\"punctuation.brace.open\"}},\"end\":\"(})\",\"endCaptures\":{\"0\":{\"name\":\"end.call-expression.templ\"},\"1\":{\"name\":\"punctuation.brace.close\"}},\"name\":\"call-expression.templ\",\"patterns\":[{\"include\":\"source.go\"}]},\"case-expression\":{\"begin\":\"^\\\\\\\\s*case .+?:$\",\"captures\":{\"0\":{\"name\":\"case.switch.html-template.templ\",\"patterns\":[{\"include\":\"source.go\"}]}},\"end\":\"(^\\\\\\\\s*case .+?:$)|(^\\\\\\\\s*default:$)|(\\\\\\\\s*$)\",\"patterns\":[{\"include\":\"#template-node\"}]},\"close-element\":{\"begin\":\"(</?)([a-zA-Z0-9:\\\\\\\\-]+)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.other.html\"}},\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.other.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},\"css-template\":{\"begin\":\"^(css) ([A-z_][A-z_0-9]*\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.go\"},\"2\":{\"patterns\":[{\"include\":\"source.go\"}]}},\"end\":\"(?<=^}$)\",\"name\":\"css-template.templ\",\"patterns\":[{\"begin\":\"(?<=\\\\\\\\()\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.end.bracket.round.go\"}},\"name\":\"params.css-template.templ\",\"patterns\":[{\"include\":\"source.go\"}]},{\"begin\":\"(?<=\\\\\\\\)) ({)$\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.begin.bracket.curly.go\"}},\"end\":\"^(})$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.end.bracket.curly.go\"}},\"name\":\"block.css-template.templ\",\"patterns\":[{\"begin\":\"\\\\\\\\s*((?:-(?:webkit|moz|o|ms|khtml)-)?(?:zoom|z-index|y|x|writing-mode|wrap|wrap-through|wrap-inside|wrap-flow|wrap-before|wrap-after|word-wrap|word-spacing|word-break|word|will-change|width|widows|white-space-collapse|white-space|white|weight|volume|voice-volume|voice-stress|voice-rate|voice-pitch-range|voice-pitch|voice-family|voice-duration|voice-balance|voice|visibility|vertical-align|vector-effect|variant|user-zoom|user-select|up|unicode-(bidi|range)|trim|translate|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform-box|transform|touch-action|top-width|top-style|top-right-radius|top-left-radius|top-color|top|timing-function|text-wrap|text-underline-position|text-transform|text-spacing|text-space-trim|text-space-collapse|text-size-adjust|text-shadow|text-replace|text-rendering|text-overflow|text-outline|text-orientation|text-justify|text-indent|text-height|text-emphasis-style|text-emphasis-skip|text-emphasis-position|text-emphasis-color|text-emphasis|text-decoration-style|text-decoration-stroke|text-decoration-skip|text-decoration-line|text-decoration-fill|text-decoration-color|text-decoration|text-combine-upright|text-anchor|text-align-last|text-align-all|text-align|text|target-position|target-new|target-name|target|table-layout|tab-size|system|symbols|suffix|style-type|style-position|style-image|style|stroke-width|stroke-opacity|stroke-miterlimit|stroke-linejoin|stroke-linecap|stroke-dashoffset|stroke-dasharray|stroke|string-set|stretch|stress|stop-opacity|stop-color|stacking-strategy|stacking-shift|stacking-ruby|stacking|src|speed|speech-rate|speech|speak-punctuation|speak-numeral|speak-header|speak-as|speak|span|spacing|space-collapse|space|solid-opacity|solid-color|sizing|size-adjust|size|shape-rendering|shape-padding|shape-outside|shape-margin|shape-inside|shape-image-threshold|shadow|scroll-snap-type|scroll-snap-points-y|scroll-snap-points-x|scroll-snap-destination|scroll-snap-coordinate|scroll-behavior|scale|ry|rx|respond-to|rule-width|rule-style|rule-color|rule|ruby-span|ruby-position|ruby-overhang|ruby-merge|ruby-align|ruby|rows|rotation-point|rotation|rotate|role|right-width|right-style|right-color|right|richness|rest-before|rest-after|rest|resource|resolution|resize|reset|replace|repeat|rendering-intent|region-fragment|rate|range|radius|r|quotes|punctuation-trim|punctuation|property|profile|presentation-level|presentation|prefix|position|pointer-events|point|play-state|play-during|play-count|pitch-range|pitch|phonemes|perspective-origin|perspective|pause-before|pause-after|pause|page-policy|page-break-inside|page-break-before|page-break-after|page|padding-top|padding-right|padding-left|padding-inline-start|padding-inline-end|padding-bottom|padding-block-start|padding-block-end|padding|pad|pack|overhang|overflow-y|overflow-x|overflow-wrap|overflow-style|overflow-inline|overflow-block|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|origin|orientation|orient|ordinal-group|order|opacity|offset-start|offset-inline-start|offset-inline-end|offset-end|offset-block-start|offset-block-end|offset-before|offset-after|offset|object-position|object-fit|numeral|new|negative|nav-up|nav-right|nav-left|nav-index|nav-down|nav|name|move-to|motion-rotation|motion-path|motion-offset|motion|model|mix-blend-mode|min-zoom|min-width|min-inline-size|min-height|min-block-size|min|max-zoom|max-width|max-lines|max-inline-size|max-height|max-block-size|max|mask-type|mask-size|mask-repeat|mask-position|mask-origin|mask-mode|mask-image|mask-composite|mask-clip|mask-border-width|mask-border-source|mask-border-slice|mask-border-repeat|mask-border-outset|mask-border-mode|mask-border|mask|marquee-style|marquee-speed|marquee-play-count|marquee-loop|marquee-direction|marquee|marks|marker-start|marker-side|marker-mid|marker-end|marker|margin-top|margin-right|margin-left|margin-inline-start|margin-inline-end|margin-bottom|margin-block-start|margin-block-end|margin|list-style-type|list-style-position|list-style-image|list-style|list|lines|line-stacking-strategy|line-stacking-shift|line-stacking-ruby|line-stacking|line-snap|line-height|line-grid|line-break|line|lighting-color|level|letter-spacing|length|left-width|left-style|left-color|left|label|kerning|justify-self|justify-items|justify-content|justify|iteration-count|isolation|inline-size|inline-box-align|initial-value|initial-size|initial-letter-wrap|initial-letter-align|initial-letter|initial-before-align|initial-before-adjust|initial-after-align|initial-after-adjust|index|indent|increment|image-rendering|image-resolution|image-orientation|image|icon|hyphens|hyphenate-limit-zone|hyphenate-limit-lines|hyphenate-limit-last|hyphenate-limit-chars|hyphenate-character|hyphenate|height|header|hanging-punctuation|grid-template-rows|grid-template-columns|grid-template-areas|grid-template|grid-row-start|grid-row-gap|grid-row-end|grid-row|grid-rows|grid-gap|grid-column-start|grid-column-gap|grid-column-end|grid-column|grid-columns|grid-auto-rows|grid-auto-flow|grid-auto-columns|grid-area|grid|glyph-orientation-vertical|glyph-orientation-horizontal|gap|font-weight|font-variant-position|font-variant-numeric|font-variant-ligatures|font-variant-east-asian|font-variant-caps|font-variant-alternates|font-variant|font-synthesis|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|flow-into|flow-from|flow|flood-opacity|flood-color|float-offset|float|flex-wrap|flex-shrink|flex-grow|flex-group|flex-flow|flex-direction|flex-basis|flex|fit-position|fit|filter|fill-rule|fill-opacity|fill|family|fallback|enable-background|empty-cells|emphasis|elevation|duration|drop-initial-value|drop-initial-size|drop-initial-before-align|drop-initial-before-adjust|drop-initial-after-align|drop-initial-after-adjust|drop|down|dominant-baseline|display-role|display-model|display|direction|delay|decoration-break|decoration|cy|cx|cursor|cue-before|cue-after|cue|crop|counter-set|counter-reset|counter-increment|counter|count|corner-shape|corners|continue|content|contain|columns|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|column-break-before|column-break-after|column|color-rendering|color-profile|color-interpolation-filters|color-interpolation|color-adjust|color|collapse|clip-rule|clip-path|clip|clear|character|caret-shape|caret-color|caret|caption-side|buffered-rendering|break-inside|break-before|break-after|break|box-suppress|box-snap|box-sizing|box-shadow|box-pack|box-orient|box-ordinal-group|box-lines|box-flex-group|box-flex|box-direction|box-decoration-break|box-align|box|bottom-width|bottom-style|bottom-right-radius|bottom-left-radius|bottom-color|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-limit|border-length|border-left-width|border-left-style|border-left-color|border-left|border-inline-start-width|border-inline-start-style|border-inline-start-color|border-inline-start|border-inline-end-width|border-inline-end-style|border-inline-end-color|border-inline-end|border-image-width|border-image-transform|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-clip-top|border-clip-right|border-clip-left|border-clip-bottom|border-clip|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border-block-start-width|border-block-start-style|border-block-start-color|border-block-start|border-block-end-width|border-block-end-style|border-block-end-color|border-block-end|border|bookmark-target|bookmark-level|bookmark-label|bookmark|block-size|binding|bidi|before|baseline-shift|baseline|balance|background-size|background-repeat|background-position-y|background-position-x|background-position-inline|background-position-block|background-position|background-origin|background-image|background-color|background-clip|background-blend-mode|background-attachment|background|backface-visibility|backdrop-filter|azimuth|attachment|appearance|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|alt|all|alignment-baseline|alignment-adjust|alignment|align-last|align-self|align-items|align-content|align|after|adjust|additive-symbols)):\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"support.type.property-name.css\"}},\"end\":\"(?<=;$)\",\"name\":\"property.css-template.templ\",\"patterns\":[{\"begin\":\"({)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.begin.bracket.curly.go\"}},\"end\":\"(})(;)$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.end.bracket.curly.go\"},\"2\":{\"name\":\"punctuation.terminator.rule.css\"}},\"name\":\"expression.property.css-template.templ\",\"patterns\":[{\"include\":\"source.go\"}]},{\"captures\":{\"1\":{\"name\":\"support.type.property-value.css\"},\"2\":{\"name\":\"punctuation.terminator.rule.css\"}},\"match\":\"(.*)(;)$\",\"name\":\"constant.property.css-template.templ\"}]}]}]},\"default-expression\":{\"begin\":\"^\\\\\\\\s*default:$\",\"captures\":{\"0\":{\"name\":\"default.switch.html-template.templ\",\"patterns\":[{\"include\":\"source.go\"}]}},\"end\":\"(^\\\\\\\\s*case .+?:$)|(^\\\\\\\\s*default:$)|(\\\\\\\\s*$)\",\"patterns\":[{\"include\":\"#template-node\"}]},\"element\":{\"begin\":\"(<)([a-zA-Z0-9:\\\\\\\\-]++)(?=[^>]*></\\\\\\\\2>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.html\"}},\"end\":\"(>(<)/)(\\\\\\\\2)(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"meta.scope.between-tag-pair.html\"},\"3\":{\"name\":\"entity.name.tag.html\"},\"4\":{\"name\":\"punctuation.definition.tag.html\"}},\"name\":\"meta.tag.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},\"else-expression\":{\"begin\":\"\\\\\\\\s+(else)\\\\\\\\s+({)\\\\\\\\s*$\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.go\"},\"2\":{\"name\":\"punctuation.definition.begin.bracket.curly.go\"}},\"end\":\"^\\\\\\\\s*(})$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.end.bracket.curly.go\"}},\"name\":\"else.html-template.templ\",\"patterns\":[{\"include\":\"#template-node\"}]},\"else-if-expression\":{\"begin\":\"\\\\\\\\s(else if)\\\\\\\\s\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.go\"}},\"end\":\"(?<=})\",\"name\":\"else-if.html-template.templ\",\"patterns\":[{\"begin\":\"(?<=if\\\\\\\\s)\",\"end\":\"({)$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.begin.bracket.curly.go\"}},\"name\":\"expression.else-if.html-template.templ\",\"patterns\":[{\"include\":\"source.go\"}]},{\"begin\":\"(?<={)$\",\"end\":\"^\\\\\\\\s*(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.end.bracket.curly.go\"}},\"name\":\"block.else-if.html-template.templ\",\"patterns\":[{\"include\":\"#template-node\"}]}]},\"entities\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.html\"},\"3\":{\"name\":\"punctuation.definition.entity.html\"}},\"match\":\"(&)([a-zA-Z0-9]+|#[0-9]+|#[xX][0-9a-fA-F]+)(;)\",\"name\":\"constant.character.entity.html\"},{\"match\":\"&\",\"name\":\"invalid.illegal.bad-ampersand.html\"}]},\"for-expression\":{\"begin\":\"^\\\\\\\\s*for .+{\",\"captures\":{\"0\":{\"name\":\"meta.embedded.block.go\",\"patterns\":[{\"include\":\"source.go\"}]}},\"end\":\"\\\\\\\\s*}\\\\\\\\s*\\\\n\",\"name\":\"for.html-template.templ\",\"patterns\":[{\"include\":\"#template-node\"}]},\"go-comment-block\":{\"begin\":\"(\\\\\\\\/\\\\\\\\*)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.go\"}},\"end\":\"(\\\\\\\\*\\\\\\\\/)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.go\"}},\"name\":\"comment.block.go\"},\"go-comment-double-slash\":{\"begin\":\"(\\\\\\\\/\\\\\\\\/)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.go\"}},\"end\":\"(?:\\\\\\\\n|$)\",\"name\":\"comment.line.double-slash.go\"},\"html-comment\":{\"begin\":\"<!--\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.html\"}},\"end\":\"-->\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.html\"}},\"name\":\"comment.block.html\"},\"html-template\":{\"begin\":\"^(templ) ((?:\\\\\\\\([A-z_][A-z_0-9]* \\\\\\\\*?[A-z_][A-z_0-9]*\\\\\\\\) )?[A-z_][A-z_0-9]*(\\\\\\\\(|\\\\\\\\[))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.go\"},\"2\":{\"patterns\":[{\"include\":\"source.go\"}]}},\"end\":\"(?<=^}$)\",\"name\":\"html-template.templ\",\"patterns\":[{\"begin\":\"(?<=\\\\\\\\()\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.end.bracket.round.go\"}},\"name\":\"params.html-template.templ\",\"patterns\":[{\"include\":\"source.go\"}]},{\"begin\":\"(?<=\\\\\\\\[)\",\"end\":\"(\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.end.bracket.square.go\"}},\"name\":\"type-params.html-template.templ\",\"patterns\":[{\"include\":\"source.go\"}]},{\"begin\":\"(?<=\\\\\\\\)) ({)$\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.begin.bracket.curly.go\"}},\"end\":\"^(})$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.end.bracket.curly.go\"}},\"name\":\"block.html-template.templ\",\"patterns\":[{\"include\":\"#template-node\"}]}]},\"if-expression\":{\"begin\":\"^\\\\\\\\s*(if)\\\\\\\\s\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.go\"}},\"end\":\"(?<=})\",\"name\":\"if.html-template.templ\",\"patterns\":[{\"begin\":\"(?<=if\\\\\\\\s)\",\"end\":\"({)$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.begin.bracket.curly.go\"}},\"name\":\"expression.if.html-template.templ\",\"patterns\":[{\"include\":\"source.go\"}]},{\"begin\":\"(?<={)$\",\"end\":\"^\\\\\\\\s*(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.end.bracket.curly.go\"}},\"name\":\"block.if.html-template.templ\",\"patterns\":[{\"include\":\"#template-node\"}]}]},\"import-expression\":{\"patterns\":[{\"begin\":\"(@)((?:[A-z_][A-z_0-9]*\\\\\\\\.)?[A-z_][A-z_0-9]*(?:\\\\\\\\(|{|$))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.go\"},\"2\":{\"patterns\":[{\"include\":\"source.go\"}]}},\"end\":\"(?<=\\\\\\\\))$|(?<=})$|(?<=$)\",\"name\":\"import-expression.templ\",\"patterns\":[{\"begin\":\"(?<=[A-z_0-9]{)\",\"end\":\"\\\\\\\\s*(})(\\\\\\\\.[A-z_][A-z_0-9]*\\\\\\\\()\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.end.bracket.curly.go\"},\"2\":{\"patterns\":[{\"include\":\"source.go\"}]}},\"name\":\"struct-method.import-expression.templ\",\"patterns\":[{\"include\":\"source.go\"}]},{\"begin\":\"(?<=\\\\\\\\()\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.end.bracket.round.go\"}},\"name\":\"params.import-expression.templ\",\"patterns\":[{\"include\":\"source.go\"}]},{\"begin\":\"(?<=\\\\\\\\))\\\\\\\\s({)$\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.brace.open\"}},\"end\":\"^\\\\\\\\s*(})$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.brace.close\"}},\"name\":\"children.import-expression.templ\",\"patterns\":[{\"include\":\"#template-node\"}]}]}]},\"inline-element\":{\"begin\":\"(</?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var)(?=\\\\\\\\s|\\\\\\\\\\\\\\\\|>))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.inline.any.html\"}},\"end\":\"((?: ?/)?>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.inline.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},\"raw-go\":{\"begin\":\"{{\",\"beginCaptures\":{\"0\":{\"name\":\"start.raw-go.templ\"},\"1\":{\"name\":\"punctuation.brace.open\"}},\"end\":\"}}\",\"endCaptures\":{\"0\":{\"name\":\"end.raw-go.templ\"},\"1\":{\"name\":\"punctuation.brace.open\"}},\"name\":\"raw-go.templ\",\"patterns\":[{\"include\":\"source.go\"}]},\"script-element\":{\"begin\":\"(<)(script)([^>]*)(>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"patterns\":[{\"include\":\"#tag-stuff\"}]},\"4\":{\"name\":\"punctuation.definition.tag.html\"}},\"end\":\"<\\/script>\",\"endCaptures\":{\"0\":{\"patterns\":[{\"include\":\"#close-element\"}]}},\"name\":\"meta.tag.script.html\",\"patterns\":[{\"include\":\"source.js\"}]},\"script-template\":{\"begin\":\"^(script) ([A-z_][A-z_0-9]*\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.go\"},\"2\":{\"patterns\":[{\"include\":\"source.go\"}]}},\"end\":\"(?<=^}$)\",\"name\":\"script-template.templ\",\"patterns\":[{\"begin\":\"(?<=\\\\\\\\()\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.end.bracket.round.go\"}},\"name\":\"params.script-template.templ\",\"patterns\":[{\"include\":\"source.go\"}]},{\"begin\":\"(?<=\\\\\\\\)) ({)$\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.begin.bracket.curly.go\"}},\"end\":\"^(})$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.end.bracket.curly.go\"}},\"name\":\"block.script-template.templ\",\"patterns\":[{\"include\":\"source.js\"}]}]},\"sgml\":{\"begin\":\"<!\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.tag.html\"}},\"end\":\">\",\"name\":\"meta.tag.sgml.html\",\"patterns\":[{\"begin\":\"(?i:DOCTYPE)\",\"captures\":{\"1\":{\"name\":\"entity.name.tag.doctype.html\"}},\"end\":\"(?=>)\",\"name\":\"meta.tag.sgml.doctype.html\",\"patterns\":[{\"match\":\"\\\\\"[^\\\\\">]*\\\\\"\",\"name\":\"string.quoted.double.doctype.identifiers-and-DTDs.html\"}]},{\"begin\":\"\\\\\\\\[CDATA\\\\\\\\[\",\"end\":\"]](?=>)\",\"name\":\"constant.other.inline-data.html\"},{\"match\":\"(\\\\\\\\s*)(?!--|>)\\\\\\\\S(\\\\\\\\s*)\",\"name\":\"invalid.illegal.bad-comments-or-CDATA.html\"}]},\"string-double-quoted\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"string.quoted.double.html\",\"patterns\":[{\"include\":\"#entities\"}]},\"string-expression\":{\"begin\":\"{\\\\\\\\s+\",\"beginCaptures\":{\"0\":{\"name\":\"start.string-expression.templ\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"end.string-expression.templ\"}},\"name\":\"expression.html-template.templ\",\"patterns\":[{\"include\":\"source.go\"}]},\"style-element\":{\"begin\":\"(<)(style)([^>]*)(>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"patterns\":[{\"include\":\"#tag-stuff\"}]},\"4\":{\"name\":\"punctuation.definition.tag.html\"}},\"end\":\"</style>\",\"endCaptures\":{\"0\":{\"patterns\":[{\"include\":\"#close-element\"}]}},\"name\":\"meta.tag.style.html\",\"patterns\":[{\"include\":\"source.css\"}]},\"switch-expression\":{\"begin\":\"^\\\\\\\\s*switch .+?{$\",\"captures\":{\"0\":{\"name\":\"meta.embedded.block.go\",\"patterns\":[{\"include\":\"source.go\"}]}},\"end\":\"^\\\\\\\\s*}$\",\"name\":\"switch.html-template.templ\",\"patterns\":[{\"include\":\"#template-node\"},{\"include\":\"#case-expression\"},{\"include\":\"#default-expression\"}]},\"tag-else-attribute\":{\"begin\":\"\\\\\\\\s(else)\\\\\\\\s({)$\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.go\"},\"2\":{\"name\":\"punctuation.brace.open\"}},\"end\":\"^\\\\\\\\s*(})$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.brace.close\"}},\"name\":\"else.attribute.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},\"tag-else-if-attribute\":{\"begin\":\"\\\\\\\\s(else if)\\\\\\\\s\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.go\"}},\"end\":\"(?<=})\",\"name\":\"else-if.attribute.html\",\"patterns\":[{\"begin\":\"(?<=if\\\\\\\\s)\",\"end\":\"({)$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.brace.open\"}},\"name\":\"expression.else-if.attribute.html\",\"patterns\":[{\"include\":\"source.go\"}]},{\"begin\":\"(?<={)$\",\"end\":\"^\\\\\\\\s*(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.brace.close\"}},\"name\":\"block.else-if.attribute.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]}]},\"tag-generic-attribute\":{\"match\":\"(?<=[^=])\\\\\\\\b([a-zA-Z0-9:-]+)\",\"name\":\"entity.other.attribute-name.html\"},\"tag-id-attribute\":{\"begin\":\"\\\\\\\\b(id)\\\\\\\\b\\\\\\\\s*(=)\",\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.id.html\"},\"2\":{\"name\":\"punctuation.separator.key-value.html\"}},\"end\":\"(?!\\\\\\\\G)(?<='|\\\\\"|[^\\\\\\\\s<>/])\",\"name\":\"meta.attribute-with-value.id.html\",\"patterns\":[{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"contentName\":\"meta.toc-list.id.html\",\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"string.quoted.double.html\",\"patterns\":[{\"include\":\"#entities\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"contentName\":\"meta.toc-list.id.html\",\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"string.quoted.single.html\",\"patterns\":[{\"include\":\"#entities\"}]},{\"captures\":{\"0\":{\"name\":\"meta.toc-list.id.html\"}},\"match\":\"(?<==)(?:[^\\\\\\\\s{}<>/'\\\\\"]|/(?!>))+\",\"name\":\"string.unquoted.html\"}]},\"tag-if-attribute\":{\"begin\":\"^\\\\\\\\s*(if)\\\\\\\\s\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.go\"}},\"end\":\"(?<=})\",\"name\":\"if.attribute.html\",\"patterns\":[{\"begin\":\"(?<=if\\\\\\\\s)\",\"end\":\"({)$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.brace.open\"}},\"name\":\"expression.if.attribute.html\",\"patterns\":[{\"include\":\"source.go\"}]},{\"begin\":\"(?<={)$\",\"end\":\"^\\\\\\\\s*(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.brace.close\"}},\"name\":\"block.if.attribute.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]}]},\"tag-stuff\":{\"patterns\":[{\"include\":\"#tag-id-attribute\"},{\"include\":\"#tag-generic-attribute\"},{\"include\":\"#string-double-quoted\"},{\"include\":\"#string-expression\"},{\"include\":\"#tag-if-attribute\"},{\"include\":\"#tag-else-if-attribute\"},{\"include\":\"#tag-else-attribute\"}]},\"template-node\":{\"patterns\":[{\"include\":\"#string-expression\"},{\"include\":\"#call-expression\"},{\"include\":\"#import-expression\"},{\"include\":\"#script-element\"},{\"include\":\"#style-element\"},{\"include\":\"#element\"},{\"include\":\"#html-comment\"},{\"include\":\"#go-comment-block\"},{\"include\":\"#go-comment-double-slash\"},{\"include\":\"#sgml\"},{\"include\":\"#block-element\"},{\"include\":\"#inline-element\"},{\"include\":\"#close-element\"},{\"include\":\"#else-if-expression\"},{\"include\":\"#if-expression\"},{\"include\":\"#else-expression\"},{\"include\":\"#for-expression\"},{\"include\":\"#switch-expression\"},{\"include\":\"#raw-go\"}]}},\"scopeName\":\"source.templ\",\"embeddedLangs\":[\"go\",\"javascript\",\"css\"]}`)),s=[...e,...t,...n,i];export{s as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/B3ZDOciz.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"PostCSS\",\"fileTypes\":[\"pcss\",\"postcss\"],\"foldingStartMarker\":\"/\\\\\\\\*|^#|^\\\\\\\\*|^\\\\\\\\b|^\\\\\\\\.\",\"foldingStopMarker\":\"\\\\\\\\*/|^\\\\\\\\s*$\",\"name\":\"postcss\",\"patterns\":[{\"begin\":\"/\\\\\\\\*\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.postcss\",\"patterns\":[{\"include\":\"#comment-tag\"}]},{\"include\":\"#double-slash\"},{\"include\":\"#double-quoted\"},{\"include\":\"#single-quoted\"},{\"include\":\"#interpolation\"},{\"include\":\"#placeholder-selector\"},{\"include\":\"#variable\"},{\"include\":\"#variable-root-css\"},{\"include\":\"#numeric\"},{\"include\":\"#unit\"},{\"include\":\"#flag\"},{\"include\":\"#dotdotdot\"},{\"begin\":\"@include\",\"captures\":{\"0\":{\"name\":\"keyword.control.at-rule.css.postcss\"}},\"end\":\"(?=\\\\\\\\n|\\\\\\\\(|{|;)\",\"name\":\"support.function.name.postcss.library\"},{\"begin\":\"@mixin|@function\",\"captures\":{\"0\":{\"name\":\"keyword.control.at-rule.css.postcss\"}},\"end\":\"$\\\\\\\\n?|(?=\\\\\\\\(|{)\",\"name\":\"support.function.name.postcss.no-completions\",\"patterns\":[{\"match\":\"[\\\\\\\\w-]+\",\"name\":\"entity.name.function\"}]},{\"match\":\"(?<=@import)\\\\\\\\s[\\\\\\\\w/.*-]+\",\"name\":\"string.quoted.double.css.postcss\"},{\"begin\":\"@\",\"end\":\"$\\\\\\\\n?|\\\\\\\\s(?!(all|braille|embossed|handheld|print|projection|screen|speech|tty|tv|if|only|not)(\\\\\\\\s|,))|(?=;)\",\"name\":\"keyword.control.at-rule.css.postcss\"},{\"begin\":\"#\",\"end\":\"$\\\\\\\\n?|(?=\\\\\\\\s|,|;|\\\\\\\\(|\\\\\\\\)|\\\\\\\\.|\\\\\\\\[|{|>)\",\"name\":\"entity.other.attribute-name.id.css.postcss\",\"patterns\":[{\"include\":\"#interpolation\"},{\"include\":\"#pseudo-class\"}]},{\"begin\":\"\\\\\\\\.|(?<=&)(-|_)\",\"end\":\"$\\\\\\\\n?|(?=\\\\\\\\s|,|;|\\\\\\\\(|\\\\\\\\)|\\\\\\\\[|{|>)\",\"name\":\"entity.other.attribute-name.class.css.postcss\",\"patterns\":[{\"include\":\"#interpolation\"},{\"include\":\"#pseudo-class\"}]},{\"begin\":\"\\\\\\\\[\",\"end\":\"\\\\\\\\]\",\"name\":\"entity.other.attribute-selector.postcss\",\"patterns\":[{\"include\":\"#double-quoted\"},{\"include\":\"#single-quoted\"},{\"match\":\"\\\\\\\\^|\\\\\\\\$|\\\\\\\\*|~\",\"name\":\"keyword.other.regex.postcss\"}]},{\"match\":\"(?<=\\\\\\\\]|\\\\\\\\)|not\\\\\\\\(|\\\\\\\\*|>|>\\\\\\\\s):[a-z:-]+|(::|:-)[a-z:-]+\",\"name\":\"entity.other.attribute-name.pseudo-class.css.postcss\"},{\"begin\":\":\",\"end\":\"$\\\\\\\\n?|(?=;|\\\\\\\\s\\\\\\\\(|and\\\\\\\\(|{|}|\\\\\\\\),)\",\"name\":\"meta.property-list.css.postcss\",\"patterns\":[{\"include\":\"#double-slash\"},{\"include\":\"#double-quoted\"},{\"include\":\"#single-quoted\"},{\"include\":\"#interpolation\"},{\"include\":\"#variable\"},{\"include\":\"#rgb-value\"},{\"include\":\"#numeric\"},{\"include\":\"#unit\"},{\"include\":\"#flag\"},{\"include\":\"#function\"},{\"include\":\"#function-content\"},{\"include\":\"#function-content-var\"},{\"include\":\"#operator\"},{\"include\":\"#parent-selector\"},{\"include\":\"#property-value\"}]},{\"include\":\"#rgb-value\"},{\"include\":\"#function\"},{\"include\":\"#function-content\"},{\"begin\":\"(?<!\\\\\\\\-|\\\\\\\\()\\\\\\\\b(a|abbr|acronym|address|applet|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|embed|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|picture|pre|progress|q|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video|main|svg|rect|ruby|center|circle|ellipse|line|polyline|polygon|path|text|u|x)\\\\\\\\b(?!-|\\\\\\\\)|:\\\\\\\\s)|&\",\"end\":\"(?=\\\\\\\\s|,|;|\\\\\\\\(|\\\\\\\\)|\\\\\\\\.|\\\\\\\\[|{|>|-|_)\",\"name\":\"entity.name.tag.css.postcss.symbol\",\"patterns\":[{\"include\":\"#interpolation\"},{\"include\":\"#pseudo-class\"}]},{\"include\":\"#operator\"},{\"match\":\"[a-z-]+((?=:|#{))\",\"name\":\"support.type.property-name.css.postcss\"},{\"include\":\"#reserved-words\"},{\"include\":\"#property-value\"}],\"repository\":{\"comment-tag\":{\"begin\":\"{{\",\"end\":\"}}\",\"name\":\"comment.tags.postcss\",\"patterns\":[{\"match\":\"[\\\\\\\\w-]+\",\"name\":\"comment.tag.postcss\"}]},\"dotdotdot\":{\"match\":\"\\\\\\\\.{3}\",\"name\":\"variable.other\"},\"double-quoted\":{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.css.postcss\",\"patterns\":[{\"include\":\"#quoted-interpolation\"}]},\"double-slash\":{\"begin\":\"//\",\"end\":\"$\",\"name\":\"comment.line.postcss\",\"patterns\":[{\"include\":\"#comment-tag\"}]},\"flag\":{\"match\":\"!(important|default|optional|global)\",\"name\":\"keyword.other.important.css.postcss\"},\"function\":{\"match\":\"(?<=[\\\\\\\\s|\\\\\\\\(|,|:])(?!url|format|attr)[\\\\\\\\w-][\\\\\\\\w-]*(?=\\\\\\\\()\",\"name\":\"support.function.name.postcss\"},\"function-content\":{\"match\":\"(?<=url\\\\\\\\(|format\\\\\\\\(|attr\\\\\\\\().+?(?=\\\\\\\\))\",\"name\":\"string.quoted.double.css.postcss\"},\"function-content-var\":{\"match\":\"(?<=var\\\\\\\\()[\\\\\\\\w-]+(?=\\\\\\\\))\",\"name\":\"variable.parameter.postcss\"},\"interpolation\":{\"begin\":\"#{\",\"end\":\"}\",\"name\":\"support.function.interpolation.postcss\",\"patterns\":[{\"include\":\"#variable\"},{\"include\":\"#numeric\"},{\"include\":\"#operator\"},{\"include\":\"#unit\"},{\"include\":\"#double-quoted\"},{\"include\":\"#single-quoted\"}]},\"numeric\":{\"match\":\"(-|\\\\\\\\.)?[0-9]+(\\\\\\\\.[0-9]+)?\",\"name\":\"constant.numeric.css.postcss\"},\"operator\":{\"match\":\"\\\\\\\\+|\\\\\\\\s-\\\\\\\\s|\\\\\\\\s-(?=\\\\\\\\$)|(?<=\\\\\\\\()-(?=\\\\\\\\$)|\\\\\\\\s-(?=\\\\\\\\()|\\\\\\\\*|/|%|=|!|<|>|~\",\"name\":\"keyword.operator.postcss\"},\"parent-selector\":{\"match\":\"&\",\"name\":\"entity.name.tag.css.postcss\"},\"placeholder-selector\":{\"begin\":\"(?<!\\\\\\\\d)%(?!\\\\\\\\d)\",\"end\":\"$\\\\\\\\n?|\\\\\\\\s|(?=;|{)\",\"name\":\"entity.other.attribute-name.placeholder-selector.postcss\"},\"property-value\":{\"match\":\"[\\\\\\\\w-]+\",\"name\":\"meta.property-value.css.postcss, support.constant.property-value.css.postcss\"},\"pseudo-class\":{\"match\":\":[a-z:-]+\",\"name\":\"entity.other.attribute-name.pseudo-class.css.postcss\"},\"quoted-interpolation\":{\"begin\":\"#{\",\"end\":\"}\",\"name\":\"support.function.interpolation.postcss\",\"patterns\":[{\"include\":\"#variable\"},{\"include\":\"#numeric\"},{\"include\":\"#operator\"},{\"include\":\"#unit\"}]},\"reserved-words\":{\"match\":\"\\\\\\\\b(false|from|in|not|null|through|to|true)\\\\\\\\b\",\"name\":\"support.type.property-name.css.postcss\"},\"rgb-value\":{\"match\":\"(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\\\\\\\\b\",\"name\":\"constant.other.color.rgb-value.css.postcss\"},\"single-quoted\":{\"begin\":\"'\",\"end\":\"'\",\"name\":\"string.quoted.single.css.postcss\",\"patterns\":[{\"include\":\"#quoted-interpolation\"}]},\"unit\":{\"match\":\"(?<=[\\\\\\\\d]|})(ch|cm|deg|dpcm|dpi|dppx|em|ex|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vw|%)\",\"name\":\"keyword.other.unit.css.postcss\"},\"variable\":{\"match\":\"\\\\\\\\$[\\\\\\\\w-]+\",\"name\":\"variable.parameter.postcss\"},\"variable-root-css\":{\"match\":\"(?<!&)--[\\\\\\\\w-]+\",\"name\":\"variable.parameter.postcss\"}},\"scopeName\":\"source.css.postcss\"}`)),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/B430Bg39.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Gleam\",\"name\":\"gleam\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#keywords\"},{\"include\":\"#strings\"},{\"include\":\"#constant\"},{\"include\":\"#entity\"},{\"include\":\"#discards\"}],\"repository\":{\"binary_number\":{\"match\":\"\\\\\\\\b0[bB]0*1[01_]*\\\\\\\\b\",\"name\":\"constant.numeric.binary.gleam\",\"patterns\":[]},\"comments\":{\"patterns\":[{\"match\":\"//.*\",\"name\":\"comment.line.gleam\"}]},\"constant\":{\"patterns\":[{\"include\":\"#binary_number\"},{\"include\":\"#octal_number\"},{\"include\":\"#hexadecimal_number\"},{\"include\":\"#decimal_number\"},{\"include\":\"#boolean\"},{\"match\":\"[[:upper:]][[:alnum:]]*\",\"name\":\"entity.name.type.gleam\"}]},\"decimal_number\":{\"match\":\"\\\\\\\\b(0*[1-9][0-9_]*|0)(\\\\\\\\.(0*[1-9][0-9_]*|0)?(e-?0*[1-9][0-9]*)?)?\\\\\\\\b\",\"name\":\"constant.numeric.decimal.gleam\",\"patterns\":[]},\"discards\":{\"match\":\"\\\\\\\\b_(?:[[:word:]]+)?\\\\\\\\b\",\"name\":\"comment.unused.gleam\"},\"entity\":{\"patterns\":[{\"begin\":\"\\\\\\\\b([[:lower:]][[:word:]]*)\\\\\\\\b[[:space:]]*\\\\\\\\(\",\"captures\":{\"1\":{\"name\":\"entity.name.function.gleam\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"$self\"}]},{\"match\":\"\\\\\\\\b([[:lower:]][[:word:]]*):\\\\\\\\s\",\"name\":\"variable.parameter.gleam\"},{\"match\":\"\\\\\\\\b([[:lower:]][[:word:]]*):\",\"name\":\"entity.name.namespace.gleam\"}]},\"hexadecimal_number\":{\"match\":\"\\\\\\\\b0[xX]0*[1-9a-zA-Z][0-9a-zA-Z]*\\\\\\\\b\",\"name\":\"constant.numeric.hexadecimal.gleam\",\"patterns\":[]},\"keywords\":{\"patterns\":[{\"match\":\"\\\\\\\\b(as|use|case|if|fn|import|let|assert|pub|type|opaque|const|todo|panic|else|try)\\\\\\\\b\",\"name\":\"keyword.control.gleam\"},{\"match\":\"(<\\\\\\\\-|\\\\\\\\->)\",\"name\":\"keyword.operator.arrow.gleam\"},{\"match\":\"\\\\\\\\|>\",\"name\":\"keyword.operator.pipe.gleam\"},{\"match\":\"\\\\\\\\.\\\\\\\\.\",\"name\":\"keyword.operator.splat.gleam\"},{\"match\":\"(==|!=)\",\"name\":\"keyword.operator.comparison.gleam\"},{\"match\":\"(<=\\\\\\\\.|>=\\\\\\\\.|<\\\\\\\\.|>\\\\\\\\.)\",\"name\":\"keyword.operator.comparison.float.gleam\"},{\"match\":\"(<=|>=|<|>)\",\"name\":\"keyword.operator.comparison.int.gleam\"},{\"match\":\"(&&|\\\\\\\\|\\\\\\\\|)\",\"name\":\"keyword.operator.logical.gleam\"},{\"match\":\"<>\",\"name\":\"keyword.operator.string.gleam\"},{\"match\":\"\\\\\\\\|\",\"name\":\"keyword.operator.other.gleam\"},{\"match\":\"(\\\\\\\\+\\\\\\\\.|\\\\\\\\-\\\\\\\\.|/\\\\\\\\.|\\\\\\\\*\\\\\\\\.)\",\"name\":\"keyword.operator.arithmetic.float.gleam\"},{\"match\":\"(\\\\\\\\+|\\\\\\\\-|/|\\\\\\\\*|%)\",\"name\":\"keyword.operator.arithmetic.int.gleam\"},{\"match\":\"=\",\"name\":\"keyword.operator.assignment.gleam\"}]},\"octal_number\":{\"match\":\"\\\\\\\\b0[oO]0*[1-7][0-7]*\\\\\\\\b\",\"name\":\"constant.numeric.octal.gleam\",\"patterns\":[]},\"strings\":{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.gleam\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.gleam\"}]}},\"scopeName\":\"source.gleam\"}')),a=[e];export{a as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/B48N-Iqd.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Prisma\",\"fileTypes\":[\"prisma\"],\"name\":\"prisma\",\"patterns\":[{\"include\":\"#triple_comment\"},{\"include\":\"#double_comment\"},{\"include\":\"#multi_line_comment\"},{\"include\":\"#model_block_definition\"},{\"include\":\"#config_block_definition\"},{\"include\":\"#enum_block_definition\"},{\"include\":\"#type_definition\"}],\"repository\":{\"array\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.prisma\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.prisma\"}},\"name\":\"source.prisma.array\",\"patterns\":[{\"include\":\"#value\"}]},\"assignment\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*(\\\\\\\\w+)\\\\\\\\s*(=)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.assignment.prisma\"},\"2\":{\"name\":\"keyword.operator.terraform\"}},\"end\":\"\\\\\\\\n\",\"patterns\":[{\"include\":\"#value\"},{\"include\":\"#double_comment_inline\"}]}]},\"attribute\":{\"captures\":{\"1\":{\"name\":\"entity.name.function.attribute.prisma\"}},\"match\":\"(@@?[\\\\\\\\w\\\\\\\\.]+)\",\"name\":\"source.prisma.attribute\"},\"attribute_with_arguments\":{\"begin\":\"(@@?[\\\\\\\\w\\\\\\\\.]+)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.attribute.prisma\"},\"2\":{\"name\":\"punctuation.definition.tag.prisma\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.prisma\"}},\"name\":\"source.prisma.attribute.with_arguments\",\"patterns\":[{\"include\":\"#named_argument\"},{\"include\":\"#value\"}]},\"boolean\":{\"match\":\"\\\\\\\\b(true|false)\\\\\\\\b\",\"name\":\"constant.language.boolean.prisma\"},\"config_block_definition\":{\"begin\":\"^\\\\\\\\s*(generator|datasource)\\\\\\\\s+([A-Za-z][\\\\\\\\w]*)\\\\\\\\s+({)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.config.prisma\"},\"2\":{\"name\":\"entity.name.type.config.prisma\"},\"3\":{\"name\":\"punctuation.definition.tag.prisma\"}},\"end\":\"\\\\\\\\s*\\\\\\\\}\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.prisma\"}},\"name\":\"source.prisma.embedded.source\",\"patterns\":[{\"include\":\"#triple_comment\"},{\"include\":\"#double_comment\"},{\"include\":\"#multi_line_comment\"},{\"include\":\"#assignment\"}]},\"double_comment\":{\"begin\":\"//\",\"end\":\"$\\\\\\\\n?\",\"name\":\"comment.prisma\"},\"double_comment_inline\":{\"match\":\"//[^\\\\\\\\n]*\",\"name\":\"comment.prisma\"},\"double_quoted_string\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"string.quoted.double.start.prisma\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"string.quoted.double.end.prisma\"}},\"name\":\"unnamed\",\"patterns\":[{\"include\":\"#string_interpolation\"},{\"match\":\"([\\\\\\\\w\\\\\\\\-\\\\\\\\/\\\\\\\\._\\\\\\\\\\\\\\\\%@:\\\\\\\\?=]+)\",\"name\":\"string.quoted.double.prisma\"}]},\"enum_block_definition\":{\"begin\":\"^\\\\\\\\s*(enum)\\\\\\\\s+([A-Za-z][\\\\\\\\w]*)\\\\\\\\s+({)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.enum.prisma\"},\"2\":{\"name\":\"entity.name.type.enum.prisma\"},\"3\":{\"name\":\"punctuation.definition.tag.prisma\"}},\"end\":\"\\\\\\\\s*\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.prisma\"}},\"name\":\"source.prisma.embedded.source\",\"patterns\":[{\"include\":\"#triple_comment\"},{\"include\":\"#double_comment\"},{\"include\":\"#multi_line_comment\"},{\"include\":\"#enum_value_definition\"}]},\"enum_value_definition\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.other.assignment.prisma\"}},\"match\":\"^\\\\\\\\s*(\\\\\\\\w+)\\\\\\\\s*\"},{\"include\":\"#attribute_with_arguments\"},{\"include\":\"#attribute\"}]},\"field_definition\":{\"name\":\"scalar.field\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.other.assignment.prisma\"},\"2\":{\"name\":\"invalid.illegal.colon.prisma\"},\"3\":{\"name\":\"variable.language.relations.prisma\"},\"4\":{\"name\":\"support.type.primitive.prisma\"},\"5\":{\"name\":\"keyword.operator.list_type.prisma\"},\"6\":{\"name\":\"keyword.operator.optional_type.prisma\"},\"7\":{\"name\":\"invalid.illegal.required_type.prisma\"}},\"match\":\"^\\\\\\\\s*(\\\\\\\\w+)(\\\\\\\\s*:)?\\\\\\\\s+((?!(?:Int|BigInt|String|DateTime|Bytes|Decimal|Float|Json|Boolean)\\\\\\\\b)\\\\\\\\b\\\\\\\\w+)?(Int|BigInt|String|DateTime|Bytes|Decimal|Float|Json|Boolean)?(\\\\\\\\[\\\\\\\\])?(\\\\\\\\?)?(\\\\\\\\!)?\"},{\"include\":\"#attribute_with_arguments\"},{\"include\":\"#attribute\"}]},\"functional\":{\"begin\":\"(\\\\\\\\w+)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.functional.prisma\"},\"2\":{\"name\":\"punctuation.definition.tag.prisma\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.prisma\"}},\"name\":\"source.prisma.functional\",\"patterns\":[{\"include\":\"#value\"}]},\"identifier\":{\"patterns\":[{\"match\":\"\\\\\\\\b(\\\\\\\\w)+\\\\\\\\b\",\"name\":\"support.constant.constant.prisma\"}]},\"literal\":{\"name\":\"source.prisma.literal\",\"patterns\":[{\"include\":\"#boolean\"},{\"include\":\"#number\"},{\"include\":\"#double_quoted_string\"},{\"include\":\"#identifier\"}]},\"map_key\":{\"name\":\"source.prisma.key\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.parameter.key.prisma\"},\"2\":{\"name\":\"punctuation.definition.separator.key-value.prisma\"}},\"match\":\"(\\\\\\\\w+)\\\\\\\\s*(:)\\\\\\\\s*\"}]},\"model_block_definition\":{\"begin\":\"^\\\\\\\\s*(model|type|view)\\\\\\\\s+([A-Za-z][\\\\\\\\w]*)\\\\\\\\s*({)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.model.prisma\"},\"2\":{\"name\":\"entity.name.type.model.prisma\"},\"3\":{\"name\":\"punctuation.definition.tag.prisma\"}},\"end\":\"\\\\\\\\s*\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.prisma\"}},\"name\":\"source.prisma.embedded.source\",\"patterns\":[{\"include\":\"#triple_comment\"},{\"include\":\"#double_comment\"},{\"include\":\"#multi_line_comment\"},{\"include\":\"#field_definition\"}]},\"multi_line_comment\":{\"begin\":\"/\\\\\\\\*\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.prisma\"},\"named_argument\":{\"name\":\"source.prisma.named_argument\",\"patterns\":[{\"include\":\"#map_key\"},{\"include\":\"#value\"}]},\"number\":{\"match\":\"((0(x|X)[0-9a-fA-F]*)|(\\\\\\\\+|-)?\\\\\\\\b(([0-9]+\\\\\\\\.?[0-9]*)|(\\\\\\\\.[0-9]+))((e|E)(\\\\\\\\+|-)?[0-9]+)?)([LlFfUuDdg]|UL|ul)?\\\\\\\\b\",\"name\":\"constant.numeric.prisma\"},\"string_interpolation\":{\"patterns\":[{\"begin\":\"\\\\\\\\$\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.interpolation.start.prisma\"}},\"end\":\"\\\\\\\\s*\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.interpolation.end.prisma\"}},\"name\":\"source.tag.embedded.source.prisma\",\"patterns\":[{\"include\":\"#value\"}]}]},\"triple_comment\":{\"begin\":\"///\",\"end\":\"$\\\\\\\\n?\",\"name\":\"comment.prisma\"},\"type_definition\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.type.prisma\"},\"2\":{\"name\":\"entity.name.type.type.prisma\"},\"3\":{\"name\":\"support.type.primitive.prisma\"}},\"match\":\"^\\\\\\\\s*(type)\\\\\\\\s+(\\\\\\\\w+)\\\\\\\\s*=\\\\\\\\s*(\\\\\\\\w+)\"},{\"include\":\"#attribute_with_arguments\"},{\"include\":\"#attribute\"}]},\"value\":{\"name\":\"source.prisma.value\",\"patterns\":[{\"include\":\"#array\"},{\"include\":\"#functional\"},{\"include\":\"#literal\"}]}},\"scopeName\":\"source.prisma\"}')),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/B4VqtPa2.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"],[\"<\",\">\"]],autoClosingPairs:[{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]},{open:\"{\",close:\"}\",notIn:[\"string\",\"comment\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\"]}]},t={defaultToken:\"\",tokenPostfix:\".aes\",brackets:[{token:\"delimiter.curly\",open:\"{\",close:\"}\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"},{token:\"delimiter.square\",open:\"[\",close:\"]\"},{token:\"delimiter.angle\",open:\"<\",close:\">\"}],keywords:[\"contract\",\"library\",\"entrypoint\",\"function\",\"stateful\",\"state\",\"hash\",\"signature\",\"tuple\",\"list\",\"address\",\"string\",\"bool\",\"int\",\"record\",\"datatype\",\"type\",\"option\",\"oracle\",\"oracle_query\",\"Call\",\"Bits\",\"Bytes\",\"Oracle\",\"String\",\"Crypto\",\"Address\",\"Auth\",\"Chain\",\"None\",\"Some\",\"bits\",\"bytes\",\"event\",\"let\",\"map\",\"private\",\"public\",\"true\",\"false\",\"var\",\"if\",\"else\",\"throw\"],operators:[\"=\",\">\",\"<\",\"!\",\"~\",\"?\",\"::\",\":\",\"==\",\"<=\",\">=\",\"!=\",\"&&\",\"||\",\"++\",\"--\",\"+\",\"-\",\"*\",\"/\",\"&\",\"|\",\"^\",\"%\",\"<<\",\">>\",\">>>\",\"+=\",\"-=\",\"*=\",\"/=\",\"&=\",\"|=\",\"^=\",\"%=\",\"<<=\",\">>=\",\">>>=\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,integersuffix:/(ll|LL|u|U|l|L)?(ll|LL|u|U|l|L)?/,floatsuffix:/[fFlL]?/,tokenizer:{root:[[/[a-zA-Z_]\\w*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/\\[\\[.*\\]\\]/,\"annotation\"],[/^\\s*#\\w+/,\"keyword\"],[/int\\d*/,\"keyword\"],[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/\\d*\\d+[eE]([\\-+]?\\d+)?(@floatsuffix)/,\"number.float\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?(@floatsuffix)/,\"number.float\"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,\"number.hex\"],[/0[0-7']*[0-7](@integersuffix)/,\"number.octal\"],[/0[bB][0-1']*[0-1](@integersuffix)/,\"number.binary\"],[/\\d[\\d']*\\d(@integersuffix)/,\"number\"],[/\\d(@integersuffix)/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",\"@string\"],[/'[^\\\\']'/,\"string\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",\"string\"]],[/'/,\"string.invalid\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\/\\*\\*(?!\\/)/,\"comment.doc\",\"@doccomment\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],doccomment:[[/[^\\/*]+/,\"comment.doc\"],[/\\*\\//,\"comment.doc\",\"@pop\"],[/[\\/*]/,\"comment.doc\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string\",\"@pop\"]]}};export{e as conf,t as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/B5auBHZD.js",
    "content": "import e from\"./BMYPR7BL.js\";import\"./ySlJ1b_l.js\";import\"./BPhBrDlE.js\";const i=Object.freeze(JSON.parse(`{\"displayName\":\"Elixir\",\"fileTypes\":[\"ex\",\"exs\"],\"firstLineMatch\":\"^#!/.*\\\\\\\\belixir\",\"foldingStartMarker\":\"(after|else|catch|rescue|\\\\\\\\-\\\\\\\\>|\\\\\\\\{|\\\\\\\\[|do)\\\\\\\\s*$\",\"foldingStopMarker\":\"^\\\\\\\\s*((\\\\\\\\}|\\\\\\\\]|after|else|catch|rescue)\\\\\\\\s*$|end\\\\\\\\b)\",\"name\":\"elixir\",\"patterns\":[{\"begin\":\"\\\\\\\\b(fn)\\\\\\\\b(?!.*->)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.elixir\"}},\"end\":\"$\",\"patterns\":[{\"include\":\"#core_syntax\"}]},{\"captures\":{\"1\":{\"name\":\"entity.name.type.class.elixir\"},\"2\":{\"name\":\"punctuation.separator.method.elixir\"},\"3\":{\"name\":\"entity.name.function.elixir\"}},\"match\":\"([A-Z]\\\\\\\\w+)\\\\\\\\s*(\\\\\\\\.)\\\\\\\\s*([a-z_]\\\\\\\\w*[!?]?)\"},{\"captures\":{\"1\":{\"name\":\"constant.other.symbol.elixir\"},\"2\":{\"name\":\"punctuation.separator.method.elixir\"},\"3\":{\"name\":\"entity.name.function.elixir\"}},\"match\":\"(\\\\\\\\:\\\\\\\\w+)\\\\\\\\s*(\\\\\\\\.)\\\\\\\\s*([_]?\\\\\\\\w*[!?]?)\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.other.elixir\"},\"2\":{\"name\":\"entity.name.function.elixir\"}},\"match\":\"(\\\\\\\\|\\\\\\\\>)\\\\\\\\s*([a-z_]\\\\\\\\w*[!?]?)\"},{\"match\":\"\\\\\\\\b[a-z_]\\\\\\\\w*[!?]?(?=\\\\\\\\s*\\\\\\\\.?\\\\\\\\s*\\\\\\\\()\",\"name\":\"entity.name.function.elixir\"},{\"begin\":\"\\\\\\\\b(fn)\\\\\\\\b(?=.*->)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.elixir\"}},\"end\":\"(?>(->)|(when)|(\\\\\\\\)))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.other.elixir\"},\"2\":{\"name\":\"keyword.control.elixir\"},\"3\":{\"name\":\"punctuation.section.function.elixir\"}},\"patterns\":[{\"include\":\"#core_syntax\"}]},{\"include\":\"#core_syntax\"},{\"begin\":\"^(?=.*->)((?![^\\\\\"']*(\\\\\"|')[^\\\\\"']*->)|(?=.*->[^\\\\\"']*(\\\\\"|')[^\\\\\"']*->))((?!.*\\\\\\\\([^\\\\\\\\)]*->)|(?=[^\\\\\\\\(\\\\\\\\)]*->)|(?=\\\\\\\\s*\\\\\\\\(.*\\\\\\\\).*->))((?!.*\\\\\\\\b(fn)\\\\\\\\b)|(?=.*->.*\\\\\\\\bfn\\\\\\\\b))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.elixir\"}},\"end\":\"(?>(->)|(when)|(\\\\\\\\)))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.other.elixir\"},\"2\":{\"name\":\"keyword.control.elixir\"},\"3\":{\"name\":\"punctuation.section.function.elixir\"}},\"patterns\":[{\"include\":\"#core_syntax\"}]}],\"repository\":{\"core_syntax\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*(defmodule)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.module.elixir\"}},\"end\":\"\\\\\\\\b(do)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.module.elixir\"}},\"name\":\"meta.module.elixir\",\"patterns\":[{\"match\":\"\\\\\\\\b[A-Z]\\\\\\\\w*(?=\\\\\\\\.)\",\"name\":\"entity.other.inherited-class.elixir\"},{\"match\":\"\\\\\\\\b[A-Z]\\\\\\\\w*\\\\\\\\b\",\"name\":\"entity.name.type.class.elixir\"}]},{\"begin\":\"^\\\\\\\\s*(defprotocol)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.protocol.elixir\"}},\"end\":\"\\\\\\\\b(do)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.protocol.elixir\"}},\"name\":\"meta.protocol_declaration.elixir\",\"patterns\":[{\"match\":\"\\\\\\\\b[A-Z]\\\\\\\\w*\\\\\\\\b\",\"name\":\"entity.name.type.protocol.elixir\"}]},{\"begin\":\"^\\\\\\\\s*(defimpl)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.protocol.elixir\"}},\"end\":\"\\\\\\\\b(do)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.protocol.elixir\"}},\"name\":\"meta.protocol_implementation.elixir\",\"patterns\":[{\"match\":\"\\\\\\\\b[A-Z]\\\\\\\\w*\\\\\\\\b\",\"name\":\"entity.name.type.protocol.elixir\"}]},{\"begin\":\"^\\\\\\\\s*(def|defmacro|defdelegate|defguard)\\\\\\\\s+((?>[a-zA-Z_]\\\\\\\\w*(?>\\\\\\\\.|::))?(?>[a-zA-Z_]\\\\\\\\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&\\`/\\\\\\\\|]|\\\\\\\\*\\\\\\\\*?|=?~|[-+]@?|\\\\\\\\[\\\\\\\\]=?))((\\\\\\\\()|\\\\\\\\s*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.module.elixir\"},\"2\":{\"name\":\"entity.name.function.public.elixir\"},\"4\":{\"name\":\"punctuation.section.function.elixir\"}},\"end\":\"(\\\\\\\\bdo:)|(\\\\\\\\bdo\\\\\\\\b)|(?=\\\\\\\\s+(def|defn|defmacro|defdelegate|defguard)\\\\\\\\b)\",\"endCaptures\":{\"1\":{\"name\":\"constant.other.keywords.elixir\"},\"2\":{\"name\":\"keyword.control.module.elixir\"}},\"name\":\"meta.function.public.elixir\",\"patterns\":[{\"include\":\"$self\"},{\"begin\":\"\\\\\\\\s(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.other.elixir\"}},\"end\":\",|\\\\\\\\)|$\",\"patterns\":[{\"include\":\"$self\"}]},{\"match\":\"\\\\\\\\b(is_atom|is_binary|is_bitstring|is_boolean|is_float|is_function|is_integer|is_list|is_map|is_nil|is_number|is_pid|is_port|is_record|is_reference|is_tuple|is_exception|abs|bit_size|byte_size|div|elem|hd|length|map_size|node|rem|round|tl|trunc|tuple_size)\\\\\\\\b\",\"name\":\"keyword.control.elixir\"}]},{\"begin\":\"^\\\\\\\\s*(defp|defnp|defmacrop|defguardp)\\\\\\\\s+((?>[a-zA-Z_]\\\\\\\\w*(?>\\\\\\\\.|::))?(?>[a-zA-Z_]\\\\\\\\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&\\`/\\\\\\\\|]|\\\\\\\\*\\\\\\\\*?|=?~|[-+]@?|\\\\\\\\[\\\\\\\\]=?))((\\\\\\\\()|\\\\\\\\s*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.module.elixir\"},\"2\":{\"name\":\"entity.name.function.private.elixir\"},\"4\":{\"name\":\"punctuation.section.function.elixir\"}},\"end\":\"(\\\\\\\\bdo:)|(\\\\\\\\bdo\\\\\\\\b)|(?=\\\\\\\\s+(defp|defmacrop|defguardp)\\\\\\\\b)\",\"endCaptures\":{\"1\":{\"name\":\"constant.other.keywords.elixir\"},\"2\":{\"name\":\"keyword.control.module.elixir\"}},\"name\":\"meta.function.private.elixir\",\"patterns\":[{\"include\":\"$self\"},{\"begin\":\"\\\\\\\\s(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.other.elixir\"}},\"end\":\",|\\\\\\\\)|$\",\"patterns\":[{\"include\":\"$self\"}]},{\"match\":\"\\\\\\\\b(is_atom|is_binary|is_bitstring|is_boolean|is_float|is_function|is_integer|is_list|is_map|is_nil|is_number|is_pid|is_port|is_record|is_reference|is_tuple|is_exception|abs|bit_size|byte_size|div|elem|hd|length|map_size|node|rem|round|tl|trunc|tuple_size)\\\\\\\\b\",\"name\":\"keyword.control.elixir\"}]},{\"begin\":\"\\\\\\\\s*~L\\\\\"\\\\\"\\\\\"\",\"comment\":\"Leex Sigil\",\"end\":\"\\\\\\\\s*\\\\\"\\\\\"\\\\\"\",\"name\":\"sigil.leex\",\"patterns\":[{\"include\":\"text.elixir\"},{\"include\":\"text.html.basic\"}]},{\"begin\":\"\\\\\\\\s*~H\\\\\"\\\\\"\\\\\"\",\"comment\":\"HEEx Sigil\",\"end\":\"\\\\\\\\s*\\\\\"\\\\\"\\\\\"\",\"name\":\"sigil.heex\",\"patterns\":[{\"include\":\"text.elixir\"},{\"include\":\"text.html.basic\"}]},{\"begin\":\"@(module|type)?doc (~[a-z])?\\\\\"\\\\\"\\\\\"\",\"comment\":\"@doc with heredocs is treated as documentation\",\"end\":\"\\\\\\\\s*\\\\\"\\\\\"\\\\\"\",\"name\":\"comment.block.documentation.heredoc\",\"patterns\":[{\"include\":\"#interpolated_elixir\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"@(module|type)?doc ~[A-Z]\\\\\"\\\\\"\\\\\"\",\"comment\":\"@doc with heredocs is treated as documentation\",\"end\":\"\\\\\\\\s*\\\\\"\\\\\"\\\\\"\",\"name\":\"comment.block.documentation.heredoc\"},{\"begin\":\"@(module|type)?doc (~[a-z])?'''\",\"comment\":\"@doc with heredocs is treated as documentation\",\"end\":\"\\\\\\\\s*'''\",\"name\":\"comment.block.documentation.heredoc\",\"patterns\":[{\"include\":\"#interpolated_elixir\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"@(module|type)?doc ~[A-Z]'''\",\"comment\":\"@doc with heredocs is treated as documentation\",\"end\":\"\\\\\\\\s*'''\",\"name\":\"comment.block.documentation.heredoc\"},{\"comment\":\"@doc false is treated as documentation\",\"match\":\"@(module|type)?doc false\",\"name\":\"comment.block.documentation.false\"},{\"begin\":\"@(module|type)?doc \\\\\"\",\"comment\":\"@doc with string is treated as documentation\",\"end\":\"\\\\\"\",\"name\":\"comment.block.documentation.string\",\"patterns\":[{\"include\":\"#interpolated_elixir\"},{\"include\":\"#escaped_char\"}]},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defnp?|defmacrop?|defguardp?|defdelegate|defexception|defoverridable|exit|after|rescue|catch|else|raise|reraise|throw|import|require|alias|use|quote|unquote|super|with)\\\\\\\\b(?![?!:])\",\"name\":\"keyword.control.elixir\"},{\"comment\":\" as above, just doesn't need a 'end' and does a logic operation\",\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(and|not|or|when|xor|in)\\\\\\\\b\",\"name\":\"keyword.operator.elixir\"},{\"match\":\"\\\\\\\\b[A-Z]\\\\\\\\w*\\\\\\\\b\",\"name\":\"entity.name.type.class.elixir\"},{\"match\":\"\\\\\\\\b(nil|true|false)\\\\\\\\b(?![?!])\",\"name\":\"constant.language.elixir\"},{\"match\":\"\\\\\\\\b(__(CALLER|ENV|MODULE|DIR|STACKTRACE)__)\\\\\\\\b(?![?!])\",\"name\":\"variable.language.elixir\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.elixir\"}},\"match\":\"(@)[a-zA-Z_]\\\\\\\\w*\",\"name\":\"variable.other.readwrite.module.elixir\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.elixir\"}},\"match\":\"(&)\\\\\\\\d+\",\"name\":\"variable.other.anonymous.elixir\"},{\"match\":\"&(?![&])\",\"name\":\"variable.other.anonymous.elixir\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.elixir\"}},\"match\":\"\\\\\\\\^[a-z_]\\\\\\\\w*\",\"name\":\"variable.other.capture.elixir\"},{\"match\":\"\\\\\\\\b0x[0-9A-Fa-f](?>_?[0-9A-Fa-f])*\\\\\\\\b\",\"name\":\"constant.numeric.hex.elixir\"},{\"match\":\"\\\\\\\\b\\\\\\\\d(?>_?\\\\\\\\d)*(\\\\\\\\.(?![^[:space:][:digit:]])(?>_?\\\\\\\\d)+)([eE][-+]?\\\\\\\\d(?>_?\\\\\\\\d)*)?\\\\\\\\b\",\"name\":\"constant.numeric.float.elixir\"},{\"match\":\"\\\\\\\\b\\\\\\\\d(?>_?\\\\\\\\d)*\\\\\\\\b\",\"name\":\"constant.numeric.integer.elixir\"},{\"match\":\"\\\\\\\\b0b[01](?>_?[01])*\\\\\\\\b\",\"name\":\"constant.numeric.binary.elixir\"},{\"match\":\"\\\\\\\\b0o[0-7](?>_?[0-7])*\\\\\\\\b\",\"name\":\"constant.numeric.octal.elixir\"},{\"begin\":\":'\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.constant.elixir\"}},\"end\":\"'\",\"name\":\"constant.other.symbol.single-quoted.elixir\",\"patterns\":[{\"include\":\"#interpolated_elixir\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\":\\\\\"\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.constant.elixir\"}},\"end\":\"\\\\\"\",\"name\":\"constant.other.symbol.double-quoted.elixir\",\"patterns\":[{\"include\":\"#interpolated_elixir\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"(?>''')\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.elixir\"}},\"comment\":\"Single-quoted heredocs\",\"end\":\"^\\\\\\\\s*'''\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.elixir\"}},\"name\":\"string.quoted.single.heredoc.elixir\",\"patterns\":[{\"include\":\"#interpolated_elixir\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.elixir\"}},\"comment\":\"single quoted string (allows for interpolation)\",\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.elixir\"}},\"name\":\"string.quoted.single.elixir\",\"patterns\":[{\"include\":\"#interpolated_elixir\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"(?>\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.elixir\"}},\"comment\":\"Double-quoted heredocs\",\"end\":\"^\\\\\\\\s*\\\\\"\\\\\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.elixir\"}},\"name\":\"string.quoted.double.heredoc.elixir\",\"patterns\":[{\"include\":\"#interpolated_elixir\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.elixir\"}},\"comment\":\"double quoted string (allows for interpolation)\",\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.elixir\"}},\"name\":\"string.quoted.double.elixir\",\"patterns\":[{\"include\":\"#interpolated_elixir\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"~[a-z](?>\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.elixir\"}},\"comment\":\"Double-quoted heredocs sigils\",\"end\":\"^\\\\\\\\s*\\\\\"\\\\\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.elixir\"}},\"name\":\"string.quoted.other.sigil.heredoc.elixir\",\"patterns\":[{\"include\":\"#interpolated_elixir\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"~[a-z]\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.elixir\"}},\"comment\":\"sigil (allow for interpolation)\",\"end\":\"\\\\\\\\}[a-z]*\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.elixir\"}},\"name\":\"string.quoted.other.sigil.elixir\",\"patterns\":[{\"include\":\"#interpolated_elixir\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"~[a-z]\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.elixir\"}},\"comment\":\"sigil (allow for interpolation)\",\"end\":\"\\\\\\\\][a-z]*\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.elixir\"}},\"name\":\"string.quoted.other.sigil.elixir\",\"patterns\":[{\"include\":\"#interpolated_elixir\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"~[a-z]\\\\\\\\<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.elixir\"}},\"comment\":\"sigil (allow for interpolation)\",\"end\":\"\\\\\\\\>[a-z]*\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.elixir\"}},\"name\":\"string.quoted.other.sigil.elixir\",\"patterns\":[{\"include\":\"#interpolated_elixir\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"~[a-z]\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.elixir\"}},\"comment\":\"sigil (allow for interpolation)\",\"end\":\"\\\\\\\\)[a-z]*\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.elixir\"}},\"name\":\"string.quoted.other.sigil.elixir\",\"patterns\":[{\"include\":\"#interpolated_elixir\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"~[a-z]([^\\\\\\\\w])\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.elixir\"}},\"comment\":\"sigil (allow for interpolation)\",\"end\":\"\\\\\\\\1[a-z]*\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.elixir\"}},\"name\":\"string.quoted.other.sigil.elixir\",\"patterns\":[{\"include\":\"#interpolated_elixir\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"~[A-Z](?>\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.elixir\"}},\"comment\":\"Double-quoted heredocs sigils\",\"end\":\"^\\\\\\\\s*\\\\\"\\\\\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.elixir\"}},\"name\":\"string.quoted.other.sigil.heredoc.literal.elixir\"},{\"begin\":\"~[A-Z]\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.elixir\"}},\"comment\":\"sigil (without interpolation)\",\"end\":\"\\\\\\\\}[a-z]*\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.elixir\"}},\"name\":\"string.quoted.other.sigil.literal.elixir\"},{\"begin\":\"~[A-Z]\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.elixir\"}},\"comment\":\"sigil (without interpolation)\",\"end\":\"\\\\\\\\][a-z]*\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.elixir\"}},\"name\":\"string.quoted.other.sigil.literal.elixir\"},{\"begin\":\"~[A-Z]\\\\\\\\<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.elixir\"}},\"comment\":\"sigil (without interpolation)\",\"end\":\"\\\\\\\\>[a-z]*\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.elixir\"}},\"name\":\"string.quoted.other.sigil.literal.elixir\"},{\"begin\":\"~[A-Z]\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.elixir\"}},\"comment\":\"sigil (without interpolation)\",\"end\":\"\\\\\\\\)[a-z]*\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.elixir\"}},\"name\":\"string.quoted.other.sigil.literal.elixir\"},{\"begin\":\"~[A-Z]([^\\\\\\\\w])\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.elixir\"}},\"comment\":\"sigil (without interpolation)\",\"end\":\"\\\\\\\\1[a-z]*\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.elixir\"}},\"name\":\"string.quoted.other.sigil.literal.elixir\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.constant.elixir\"}},\"comment\":\"symbols\",\"match\":\"(?<!:)(:)(?>[a-zA-Z_][\\\\\\\\w@]*(?>[?!]|=(?![>=]))?|\\\\\\\\<\\\\\\\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\\\\\\\-|\\\\\\\\|>|=>|=~|=|/|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\|\\\\\\\\*\\\\\\\\*?|\\\\\\\\.\\\\\\\\.?\\\\\\\\.?|\\\\\\\\.\\\\\\\\.//|>=?|<=?|&&?&?|\\\\\\\\+\\\\\\\\+?|\\\\\\\\-\\\\\\\\-?|\\\\\\\\|\\\\\\\\|?\\\\\\\\|?|\\\\\\\\!|@|\\\\\\\\%?\\\\\\\\{\\\\\\\\}|%|\\\\\\\\[\\\\\\\\]|\\\\\\\\^(\\\\\\\\^\\\\\\\\^)?)\",\"name\":\"constant.other.symbol.elixir\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.constant.elixir\"}},\"comment\":\"symbols\",\"match\":\"(?>[a-zA-Z_][\\\\\\\\w@]*(?>[?!])?)(:)(?!:)\",\"name\":\"constant.other.keywords.elixir\"},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=##)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.elixir\"}},\"end\":\"(?!#)\",\"patterns\":[{\"begin\":\"##\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.elixir\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.section.elixir\"}]},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.elixir\"}},\"end\":\"(?!#)\",\"patterns\":[{\"begin\":\"#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.elixir\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.number-sign.elixir\"}]},{\"match\":\"\\\\\\\\b_([^_][\\\\\\\\w]+[?!]?)\",\"name\":\"comment.unused.elixir\"},{\"match\":\"\\\\\\\\b_\\\\\\\\b\",\"name\":\"comment.wildcard.elixir\"},{\"comment\":\"\\\\n\\\\t\\\\t\\\\tmatches questionmark-letters.\\\\n\\\\n\\\\t\\\\t\\\\texamples (1st alternation = hex):\\\\n\\\\t\\\\t\\\\t?\\\\\\\\x1     ?\\\\\\\\x61\\\\n\\\\n\\\\t\\\\t\\\\texamples (2rd alternation = escaped):\\\\n\\\\t\\\\t\\\\t?\\\\\\\\n      ?\\\\\\\\b\\\\n\\\\n\\\\t\\\\t\\\\texamples (3rd alternation = normal):\\\\n\\\\t\\\\t\\\\t?a       ?A       ?0\\\\n\\\\t\\\\t\\\\t?*       ?\\\\\"       ?(\\\\n\\\\t\\\\t\\\\t?.       ?#\\\\n\\\\n\\\\t\\\\t\\\\tthe negative lookbehind prevents against matching\\\\n\\\\t\\\\t\\\\tp(42.tainted?)\\\\n\\\\t\\\\t\\\\t\",\"match\":\"(?<!\\\\\\\\w)\\\\\\\\?(\\\\\\\\\\\\\\\\(x[0-9A-Fa-f]{1,2}(?![0-9A-Fa-f])\\\\\\\\b|[^xMC])|[^\\\\\\\\s\\\\\\\\\\\\\\\\])\",\"name\":\"constant.numeric.elixir\"},{\"match\":\"\\\\\\\\+\\\\\\\\+|\\\\\\\\-\\\\\\\\-|<\\\\\\\\|>\",\"name\":\"keyword.operator.concatenation.elixir\"},{\"match\":\"\\\\\\\\|\\\\\\\\>|<~>|<>|<<<|>>>|~>>|<<~|~>|<~|<\\\\\\\\|>\",\"name\":\"keyword.operator.sigils_1.elixir\"},{\"match\":\"&&&|&&\",\"name\":\"keyword.operator.sigils_2.elixir\"},{\"match\":\"<\\\\\\\\-|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\"name\":\"keyword.operator.sigils_3.elixir\"},{\"match\":\"===?|!==?|<=?|>=?\",\"name\":\"keyword.operator.comparison.elixir\"},{\"match\":\"(\\\\\\\\|\\\\\\\\|\\\\\\\\||&&&|\\\\\\\\^\\\\\\\\^\\\\\\\\^|<<<|>>>|~~~)\",\"name\":\"keyword.operator.bitwise.elixir\"},{\"match\":\"(?<=[ \\\\\\\\t])!+|\\\\\\\\bnot\\\\\\\\b|&&|\\\\\\\\band\\\\\\\\b|\\\\\\\\|\\\\\\\\||\\\\\\\\bor\\\\\\\\b|\\\\\\\\bxor\\\\\\\\b\",\"name\":\"keyword.operator.logical.elixir\"},{\"match\":\"(\\\\\\\\*|\\\\\\\\+|\\\\\\\\-|/)\",\"name\":\"keyword.operator.arithmetic.elixir\"},{\"match\":\"\\\\\\\\||\\\\\\\\+\\\\\\\\+|\\\\\\\\-\\\\\\\\-|\\\\\\\\*\\\\\\\\*|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\|\\\\\\\\<\\\\\\\\-|\\\\\\\\<\\\\\\\\>|\\\\\\\\<\\\\\\\\<|\\\\\\\\>\\\\\\\\>|\\\\\\\\:\\\\\\\\:|\\\\\\\\.\\\\\\\\.|//|\\\\\\\\|>|~|=>|&\",\"name\":\"keyword.operator.other.elixir\"},{\"match\":\"=\",\"name\":\"keyword.operator.assignment.elixir\"},{\"match\":\":\",\"name\":\"punctuation.separator.other.elixir\"},{\"match\":\"\\\\\\\\;\",\"name\":\"punctuation.separator.statement.elixir\"},{\"match\":\",\",\"name\":\"punctuation.separator.object.elixir\"},{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.separator.method.elixir\"},{\"match\":\"\\\\\\\\{|\\\\\\\\}\",\"name\":\"punctuation.section.scope.elixir\"},{\"match\":\"\\\\\\\\[|\\\\\\\\]\",\"name\":\"punctuation.section.array.elixir\"},{\"match\":\"\\\\\\\\(|\\\\\\\\)\",\"name\":\"punctuation.section.function.elixir\"}]},\"escaped_char\":{\"match\":\"\\\\\\\\\\\\\\\\(x[\\\\\\\\da-fA-F]{1,2}|.)\",\"name\":\"constant.character.escaped.elixir\"},\"interpolated_elixir\":{\"begin\":\"#\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.elixir\"}},\"contentName\":\"source.elixir\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.elixir\"}},\"name\":\"meta.embedded.line.elixir\",\"patterns\":[{\"include\":\"#nest_curly_and_self\"},{\"include\":\"$self\"}]},\"nest_curly_and_self\":{\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"captures\":{\"0\":{\"name\":\"punctuation.section.scope.elixir\"}},\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"#nest_curly_and_self\"}]},{\"include\":\"$self\"}]}},\"scopeName\":\"source.elixir\",\"embeddedLangs\":[\"html\"]}`)),r=[...e,i];export{r as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/B5lbUyaz.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Kotlin\",\"fileTypes\":[\"kt\",\"kts\"],\"name\":\"kotlin\",\"patterns\":[{\"include\":\"#import\"},{\"include\":\"#package\"},{\"include\":\"#code\"}],\"repository\":{\"annotation-simple\":{\"match\":\"(?<!\\\\\\\\w)@[\\\\\\\\w\\\\\\\\.]+\\\\\\\\b(?!:)\",\"name\":\"entity.name.type.annotation.kotlin\"},\"annotation-site\":{\"begin\":\"(?<!\\\\\\\\w)(@\\\\\\\\w+):\\\\\\\\s*(?!\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.type.annotation-site.kotlin\"}},\"end\":\"$\",\"patterns\":[{\"include\":\"#unescaped-annotation\"}]},\"annotation-site-list\":{\"begin\":\"(?<!\\\\\\\\w)(@\\\\\\\\w+):\\\\\\\\s*\\\\\\\\[\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.type.annotation-site.kotlin\"}},\"end\":\"\\\\\\\\]\",\"patterns\":[{\"include\":\"#unescaped-annotation\"}]},\"binary-literal\":{\"match\":\"0(b|B)[01][01_]*\",\"name\":\"constant.numeric.binary.kotlin\"},\"boolean-literal\":{\"match\":\"\\\\\\\\b(true|false)\\\\\\\\b\",\"name\":\"constant.language.boolean.kotlin\"},\"character\":{\"begin\":\"\\'\",\"end\":\"\\'\",\"name\":\"string.quoted.single.kotlin\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.kotlin\"}]},\"class-declaration\":{\"captures\":{\"1\":{\"name\":\"keyword.hard.class.kotlin\"},\"2\":{\"name\":\"entity.name.type.class.kotlin\"},\"3\":{\"patterns\":[{\"include\":\"#type-parameter\"}]}},\"match\":\"\\\\\\\\b(class|(?:fun\\\\\\\\s+)?interface)\\\\\\\\s+(\\\\\\\\b\\\\\\\\w+\\\\\\\\b|`[^`]+`)\\\\\\\\s*(?<GROUP><([^<>]|\\\\\\\\g<GROUP>)+>)?\"},\"code\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#keywords\"},{\"include\":\"#annotation-simple\"},{\"include\":\"#annotation-site-list\"},{\"include\":\"#annotation-site\"},{\"include\":\"#class-declaration\"},{\"include\":\"#object\"},{\"include\":\"#type-alias\"},{\"include\":\"#function\"},{\"include\":\"#variable-declaration\"},{\"include\":\"#type-constraint\"},{\"include\":\"#type-annotation\"},{\"include\":\"#function-call\"},{\"include\":\"#method-reference\"},{\"include\":\"#key\"},{\"include\":\"#string\"},{\"include\":\"#string-empty\"},{\"include\":\"#string-multiline\"},{\"include\":\"#character\"},{\"include\":\"#lambda-arrow\"},{\"include\":\"#operators\"},{\"include\":\"#self-reference\"},{\"include\":\"#decimal-literal\"},{\"include\":\"#hex-literal\"},{\"include\":\"#binary-literal\"},{\"include\":\"#boolean-literal\"},{\"include\":\"#null-literal\"}]},\"comment-block\":{\"begin\":\"/\\\\\\\\*(?!\\\\\\\\*)\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.kotlin\"},\"comment-javadoc\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\\\\\\\\*\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.javadoc.kotlin\",\"patterns\":[{\"match\":\"@(return|constructor|receiver|sample|see|author|since|suppress)\\\\\\\\b\",\"name\":\"keyword.other.documentation.javadoc.kotlin\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.documentation.javadoc.kotlin\"},\"2\":{\"name\":\"variable.parameter.kotlin\"}},\"match\":\"(@param|@property)\\\\\\\\s+(\\\\\\\\S+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.documentation.javadoc.kotlin\"},\"2\":{\"name\":\"variable.parameter.kotlin\"}},\"match\":\"(@param)\\\\\\\\[(\\\\\\\\S+)\\\\\\\\]\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.documentation.javadoc.kotlin\"},\"2\":{\"name\":\"entity.name.type.class.kotlin\"}},\"match\":\"(@(?:exception|throws))\\\\\\\\s+(\\\\\\\\S+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.documentation.javadoc.kotlin\"},\"2\":{\"name\":\"entity.name.type.class.kotlin\"},\"3\":{\"name\":\"variable.parameter.kotlin\"}},\"match\":\"{(@link)\\\\\\\\s+(\\\\\\\\S+)?#([\\\\\\\\w$]+\\\\\\\\s*\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\)).*}\"}]}]},\"comment-line\":{\"begin\":\"//\",\"end\":\"$\",\"name\":\"comment.line.double-slash.kotlin\"},\"comments\":{\"patterns\":[{\"include\":\"#comment-line\"},{\"include\":\"#comment-block\"},{\"include\":\"#comment-javadoc\"}]},\"control-keywords\":{\"match\":\"\\\\\\\\b(if|else|while|do|when|try|throw|break|continue|return|for)\\\\\\\\b\",\"name\":\"keyword.control.kotlin\"},\"decimal-literal\":{\"match\":\"\\\\\\\\b\\\\\\\\d[\\\\\\\\d_]*(\\\\\\\\.[\\\\\\\\d_]+)?((e|E)\\\\\\\\d+)?(u|U)?(L|F|f)?\\\\\\\\b\",\"name\":\"constant.numeric.decimal.kotlin\"},\"function\":{\"captures\":{\"1\":{\"name\":\"keyword.hard.fun.kotlin\"},\"2\":{\"patterns\":[{\"include\":\"#type-parameter\"}]},\"4\":{\"name\":\"entity.name.type.class.extension.kotlin\"},\"5\":{\"name\":\"entity.name.function.declaration.kotlin\"}},\"match\":\"\\\\\\\\b(fun)\\\\\\\\b\\\\\\\\s*(?<GROUP><([^<>]|\\\\\\\\g<GROUP>)+>)?\\\\\\\\s*(?:(?:(\\\\\\\\w+)\\\\\\\\.)?(\\\\\\\\b\\\\\\\\w+\\\\\\\\b|`[^`]+`))?\"},\"function-call\":{\"captures\":{\"1\":{\"name\":\"entity.name.function.call.kotlin\"},\"2\":{\"patterns\":[{\"include\":\"#type-parameter\"}]}},\"match\":\"\\\\\\\\??\\\\\\\\.?(\\\\\\\\b\\\\\\\\w+\\\\\\\\b|`[^`]+`)\\\\\\\\s*(?<GROUP><([^<>]|\\\\\\\\g<GROUP>)+>)?\\\\\\\\s*(?=[({])\"},\"hard-keywords\":{\"match\":\"\\\\\\\\b(as|typeof|is|in)\\\\\\\\b\",\"name\":\"keyword.hard.kotlin\"},\"hex-literal\":{\"match\":\"0(x|X)[A-Fa-f0-9][A-Fa-f0-9_]*(u|U)?\",\"name\":\"constant.numeric.hex.kotlin\"},\"import\":{\"begin\":\"\\\\\\\\b(import)\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.soft.kotlin\"}},\"contentName\":\"entity.name.package.kotlin\",\"end\":\";|$\",\"name\":\"meta.import.kotlin\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#hard-keywords\"},{\"match\":\"\\\\\\\\*\",\"name\":\"variable.language.wildcard.kotlin\"}]},\"key\":{\"captures\":{\"1\":{\"name\":\"variable.parameter.kotlin\"},\"2\":{\"name\":\"keyword.operator.assignment.kotlin\"}},\"match\":\"\\\\\\\\b(\\\\\\\\w=)\\\\\\\\s*(=)\"},\"keywords\":{\"patterns\":[{\"include\":\"#prefix-modifiers\"},{\"include\":\"#postfix-modifiers\"},{\"include\":\"#soft-keywords\"},{\"include\":\"#hard-keywords\"},{\"include\":\"#control-keywords\"}]},\"lambda-arrow\":{\"match\":\"->\",\"name\":\"storage.type.function.arrow.kotlin\"},\"method-reference\":{\"captures\":{\"1\":{\"name\":\"entity.name.function.reference.kotlin\"}},\"match\":\"\\\\\\\\??::(\\\\\\\\b\\\\\\\\w+\\\\\\\\b|`[^`]+`)\"},\"null-literal\":{\"match\":\"\\\\\\\\bnull\\\\\\\\b\",\"name\":\"constant.language.null.kotlin\"},\"object\":{\"captures\":{\"1\":{\"name\":\"keyword.hard.object.kotlin\"},\"2\":{\"name\":\"entity.name.type.object.kotlin\"}},\"match\":\"\\\\\\\\b(object)(?:\\\\\\\\s+(\\\\\\\\b\\\\\\\\w+\\\\\\\\b|`[^`]+`))?\"},\"operators\":{\"patterns\":[{\"match\":\"(===?|\\\\\\\\!==?|<=|>=|<|>)\",\"name\":\"keyword.operator.comparison.kotlin\"},{\"match\":\"([+*/%-]=)\",\"name\":\"keyword.operator.assignment.arithmetic.kotlin\"},{\"match\":\"(=)\",\"name\":\"keyword.operator.assignment.kotlin\"},{\"match\":\"([+*/%-])\",\"name\":\"keyword.operator.arithmetic.kotlin\"},{\"match\":\"(!|&&|\\\\\\\\|\\\\\\\\|)\",\"name\":\"keyword.operator.logical.kotlin\"},{\"match\":\"(--|\\\\\\\\+\\\\\\\\+)\",\"name\":\"keyword.operator.increment-decrement.kotlin\"},{\"match\":\"(\\\\\\\\.\\\\\\\\.)\",\"name\":\"keyword.operator.range.kotlin\"}]},\"package\":{\"begin\":\"\\\\\\\\b(package)\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.hard.package.kotlin\"}},\"contentName\":\"entity.name.package.kotlin\",\"end\":\";|$\",\"name\":\"meta.package.kotlin\",\"patterns\":[{\"include\":\"#comments\"}]},\"postfix-modifiers\":{\"match\":\"\\\\\\\\b(where|by|get|set)\\\\\\\\b\",\"name\":\"storage.modifier.other.kotlin\"},\"prefix-modifiers\":{\"match\":\"\\\\\\\\b(abstract|final|enum|open|annotation|sealed|data|override|final|lateinit|private|protected|public|internal|inner|companion|noinline|crossinline|vararg|reified|tailrec|operator|infix|inline|external|const|suspend|value)\\\\\\\\b\",\"name\":\"storage.modifier.other.kotlin\"},\"self-reference\":{\"match\":\"\\\\\\\\b(this|super)(@\\\\\\\\w+)?\\\\\\\\b\",\"name\":\"variable.language.this.kotlin\"},\"soft-keywords\":{\"match\":\"\\\\\\\\b(init|catch|finally|field)\\\\\\\\b\",\"name\":\"keyword.soft.kotlin\"},\"string\":{\"begin\":\"(?<!\\\\\")\\\\\"(?!\\\\\")\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.kotlin\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.kotlin\"},{\"include\":\"#string-escape-simple\"},{\"include\":\"#string-escape-bracketed\"}]},\"string-empty\":{\"match\":\"(?<!\\\\\")\\\\\"\\\\\"(?!\\\\\")\",\"name\":\"string.quoted.double.kotlin\"},\"string-escape-bracketed\":{\"begin\":\"(?<!\\\\\\\\\\\\\\\\)(\\\\\\\\$\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.template-expression.begin\"}},\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.template-expression.end\"}},\"name\":\"meta.template.expression.kotlin\",\"patterns\":[{\"include\":\"#code\"}]},\"string-escape-simple\":{\"match\":\"(?<!\\\\\\\\\\\\\\\\)\\\\\\\\$\\\\\\\\w+\\\\\\\\b\",\"name\":\"variable.string-escape.kotlin\"},\"string-multiline\":{\"begin\":\"\\\\\"\\\\\"\\\\\"\",\"end\":\"\\\\\"\\\\\"\\\\\"\",\"name\":\"string.quoted.double.kotlin\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.kotlin\"},{\"include\":\"#string-escape-simple\"},{\"include\":\"#string-escape-bracketed\"}]},\"type-alias\":{\"captures\":{\"1\":{\"name\":\"keyword.hard.typealias.kotlin\"},\"2\":{\"name\":\"entity.name.type.kotlin\"},\"3\":{\"patterns\":[{\"include\":\"#type-parameter\"}]}},\"match\":\"\\\\\\\\b(typealias)\\\\\\\\s+(\\\\\\\\b\\\\\\\\w+\\\\\\\\b|`[^`]+`)\\\\\\\\s*(?<GROUP><([^<>]|\\\\\\\\g<GROUP>)+>)?\"},\"type-annotation\":{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#type-parameter\"}]}},\"match\":\"(?<![:?]):\\\\\\\\s*(\\\\\\\\w|\\\\\\\\?|\\\\\\\\s|->|(?<GROUP>[<(]([^<>()\\\\\"\\']|\\\\\\\\g<GROUP>)+[)>]))+\"},\"type-parameter\":{\"patterns\":[{\"match\":\"\\\\\\\\b\\\\\\\\w+\\\\\\\\b\",\"name\":\"entity.name.type.kotlin\"},{\"match\":\"\\\\\\\\b(in|out)\\\\\\\\b\",\"name\":\"storage.modifier.kotlin\"}]},\"unescaped-annotation\":{\"match\":\"\\\\\\\\b[\\\\\\\\w\\\\\\\\.]+\\\\\\\\b\",\"name\":\"entity.name.type.annotation.kotlin\"},\"variable-declaration\":{\"captures\":{\"1\":{\"name\":\"keyword.hard.kotlin\"},\"2\":{\"patterns\":[{\"include\":\"#type-parameter\"}]}},\"match\":\"\\\\\\\\b(val|var)\\\\\\\\b\\\\\\\\s*(?<GROUP><([^<>]|\\\\\\\\g<GROUP>)+>)?\"}},\"scopeName\":\"source.kotlin\",\"aliases\":[\"kt\",\"kts\"]}')),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/B5uW3Zvf.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var E={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"[\",\"]\"],[\"(\",\")\"],[\"{\",\"}\"]],autoClosingPairs:[{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\"]},{open:\"{\",close:\"}\",notIn:[\"string\",\"comment\"]}]},T={defaultToken:\"\",tokenPostfix:\".msdax\",ignoreCase:!0,brackets:[{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"{\",close:\"}\",token:\"delimiter.brackets\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],keywords:[\"VAR\",\"RETURN\",\"NOT\",\"EVALUATE\",\"DATATABLE\",\"ORDER\",\"BY\",\"START\",\"AT\",\"DEFINE\",\"MEASURE\",\"ASC\",\"DESC\",\"IN\",\"BOOLEAN\",\"DOUBLE\",\"INTEGER\",\"DATETIME\",\"CURRENCY\",\"STRING\"],functions:[\"CLOSINGBALANCEMONTH\",\"CLOSINGBALANCEQUARTER\",\"CLOSINGBALANCEYEAR\",\"DATEADD\",\"DATESBETWEEN\",\"DATESINPERIOD\",\"DATESMTD\",\"DATESQTD\",\"DATESYTD\",\"ENDOFMONTH\",\"ENDOFQUARTER\",\"ENDOFYEAR\",\"FIRSTDATE\",\"FIRSTNONBLANK\",\"LASTDATE\",\"LASTNONBLANK\",\"NEXTDAY\",\"NEXTMONTH\",\"NEXTQUARTER\",\"NEXTYEAR\",\"OPENINGBALANCEMONTH\",\"OPENINGBALANCEQUARTER\",\"OPENINGBALANCEYEAR\",\"PARALLELPERIOD\",\"PREVIOUSDAY\",\"PREVIOUSMONTH\",\"PREVIOUSQUARTER\",\"PREVIOUSYEAR\",\"SAMEPERIODLASTYEAR\",\"STARTOFMONTH\",\"STARTOFQUARTER\",\"STARTOFYEAR\",\"TOTALMTD\",\"TOTALQTD\",\"TOTALYTD\",\"ADDCOLUMNS\",\"ADDMISSINGITEMS\",\"ALL\",\"ALLEXCEPT\",\"ALLNOBLANKROW\",\"ALLSELECTED\",\"CALCULATE\",\"CALCULATETABLE\",\"CALENDAR\",\"CALENDARAUTO\",\"CROSSFILTER\",\"CROSSJOIN\",\"CURRENTGROUP\",\"DATATABLE\",\"DETAILROWS\",\"DISTINCT\",\"EARLIER\",\"EARLIEST\",\"EXCEPT\",\"FILTER\",\"FILTERS\",\"GENERATE\",\"GENERATEALL\",\"GROUPBY\",\"IGNORE\",\"INTERSECT\",\"ISONORAFTER\",\"KEEPFILTERS\",\"LOOKUPVALUE\",\"NATURALINNERJOIN\",\"NATURALLEFTOUTERJOIN\",\"RELATED\",\"RELATEDTABLE\",\"ROLLUP\",\"ROLLUPADDISSUBTOTAL\",\"ROLLUPGROUP\",\"ROLLUPISSUBTOTAL\",\"ROW\",\"SAMPLE\",\"SELECTCOLUMNS\",\"SUBSTITUTEWITHINDEX\",\"SUMMARIZE\",\"SUMMARIZECOLUMNS\",\"TOPN\",\"TREATAS\",\"UNION\",\"USERELATIONSHIP\",\"VALUES\",\"SUM\",\"SUMX\",\"PATH\",\"PATHCONTAINS\",\"PATHITEM\",\"PATHITEMREVERSE\",\"PATHLENGTH\",\"AVERAGE\",\"AVERAGEA\",\"AVERAGEX\",\"COUNT\",\"COUNTA\",\"COUNTAX\",\"COUNTBLANK\",\"COUNTROWS\",\"COUNTX\",\"DISTINCTCOUNT\",\"DIVIDE\",\"GEOMEAN\",\"GEOMEANX\",\"MAX\",\"MAXA\",\"MAXX\",\"MEDIAN\",\"MEDIANX\",\"MIN\",\"MINA\",\"MINX\",\"PERCENTILE.EXC\",\"PERCENTILE.INC\",\"PERCENTILEX.EXC\",\"PERCENTILEX.INC\",\"PRODUCT\",\"PRODUCTX\",\"RANK.EQ\",\"RANKX\",\"STDEV.P\",\"STDEV.S\",\"STDEVX.P\",\"STDEVX.S\",\"VAR.P\",\"VAR.S\",\"VARX.P\",\"VARX.S\",\"XIRR\",\"XNPV\",\"DATE\",\"DATEDIFF\",\"DATEVALUE\",\"DAY\",\"EDATE\",\"EOMONTH\",\"HOUR\",\"MINUTE\",\"MONTH\",\"NOW\",\"SECOND\",\"TIME\",\"TIMEVALUE\",\"TODAY\",\"WEEKDAY\",\"WEEKNUM\",\"YEAR\",\"YEARFRAC\",\"CONTAINS\",\"CONTAINSROW\",\"CUSTOMDATA\",\"ERROR\",\"HASONEFILTER\",\"HASONEVALUE\",\"ISBLANK\",\"ISCROSSFILTERED\",\"ISEMPTY\",\"ISERROR\",\"ISEVEN\",\"ISFILTERED\",\"ISLOGICAL\",\"ISNONTEXT\",\"ISNUMBER\",\"ISODD\",\"ISSUBTOTAL\",\"ISTEXT\",\"USERNAME\",\"USERPRINCIPALNAME\",\"AND\",\"FALSE\",\"IF\",\"IFERROR\",\"NOT\",\"OR\",\"SWITCH\",\"TRUE\",\"ABS\",\"ACOS\",\"ACOSH\",\"ACOT\",\"ACOTH\",\"ASIN\",\"ASINH\",\"ATAN\",\"ATANH\",\"BETA.DIST\",\"BETA.INV\",\"CEILING\",\"CHISQ.DIST\",\"CHISQ.DIST.RT\",\"CHISQ.INV\",\"CHISQ.INV.RT\",\"COMBIN\",\"COMBINA\",\"CONFIDENCE.NORM\",\"CONFIDENCE.T\",\"COS\",\"COSH\",\"COT\",\"COTH\",\"CURRENCY\",\"DEGREES\",\"EVEN\",\"EXP\",\"EXPON.DIST\",\"FACT\",\"FLOOR\",\"GCD\",\"INT\",\"ISO.CEILING\",\"LCM\",\"LN\",\"LOG\",\"LOG10\",\"MOD\",\"MROUND\",\"ODD\",\"PERMUT\",\"PI\",\"POISSON.DIST\",\"POWER\",\"QUOTIENT\",\"RADIANS\",\"RAND\",\"RANDBETWEEN\",\"ROUND\",\"ROUNDDOWN\",\"ROUNDUP\",\"SIGN\",\"SIN\",\"SINH\",\"SQRT\",\"SQRTPI\",\"TAN\",\"TANH\",\"TRUNC\",\"BLANK\",\"CONCATENATE\",\"CONCATENATEX\",\"EXACT\",\"FIND\",\"FIXED\",\"FORMAT\",\"LEFT\",\"LEN\",\"LOWER\",\"MID\",\"REPLACE\",\"REPT\",\"RIGHT\",\"SEARCH\",\"SUBSTITUTE\",\"TRIM\",\"UNICHAR\",\"UNICODE\",\"UPPER\",\"VALUE\"],tokenizer:{root:[{include:\"@comments\"},{include:\"@whitespace\"},{include:\"@numbers\"},{include:\"@strings\"},{include:\"@complexIdentifiers\"},[/[;,.]/,\"delimiter\"],[/[({})]/,\"@brackets\"],[/[a-z_][a-zA-Z0-9_]*/,{cases:{\"@keywords\":\"keyword\",\"@functions\":\"keyword\",\"@default\":\"identifier\"}}],[/[<>=!%&+\\-*/|~^]/,\"operator\"]],whitespace:[[/\\s+/,\"white\"]],comments:[[/\\/\\/+.*/,\"comment\"],[/\\/\\*/,{token:\"comment.quote\",next:\"@comment\"}]],comment:[[/[^*/]+/,\"comment\"],[/\\*\\//,{token:\"comment.quote\",next:\"@pop\"}],[/./,\"comment\"]],numbers:[[/0[xX][0-9a-fA-F]*/,\"number\"],[/[$][+-]*\\d*(\\.\\d*)?/,\"number\"],[/((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][\\-+]?\\d+)?/,\"number\"]],strings:[[/N\"/,{token:\"string\",next:\"@string\"}],[/\"/,{token:\"string\",next:\"@string\"}]],string:[[/[^\"]+/,\"string\"],[/\"\"/,\"string\"],[/\"/,{token:\"string\",next:\"@pop\"}]],complexIdentifiers:[[/\\[/,{token:\"identifier.quote\",next:\"@bracketedIdentifier\"}],[/'/,{token:\"identifier.quote\",next:\"@quotedIdentifier\"}]],bracketedIdentifier:[[/[^\\]]+/,\"identifier\"],[/]]/,\"identifier\"],[/]/,{token:\"identifier.quote\",next:\"@pop\"}]],quotedIdentifier:[[/[^']+/,\"identifier\"],[/''/,\"identifier\"],[/'/,{token:\"identifier.quote\",next:\"@pop\"}]]}};export{E as conf,T as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/B6W0miNI.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"TSX\",\"name\":\"tsx\",\"patterns\":[{\"include\":\"#directives\"},{\"include\":\"#statements\"},{\"include\":\"#shebang\"}],\"repository\":{\"access-modifier\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.modifier.tsx\"},\"after-operator-block-as-object-literal\":{\"begin\":\"(?<!\\\\\\\\+\\\\\\\\+|--)(?<=[:=(,\\\\\\\\[?+!>]|^await|[^\\\\\\\\._$[:alnum:]]await|^return|[^\\\\\\\\._$[:alnum:]]return|^yield|[^\\\\\\\\._$[:alnum:]]yield|^throw|[^\\\\\\\\._$[:alnum:]]throw|^in|[^\\\\\\\\._$[:alnum:]]in|^of|[^\\\\\\\\._$[:alnum:]]of|^typeof|[^\\\\\\\\._$[:alnum:]]typeof|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\*)\\\\\\\\s*(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.tsx\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.tsx\"}},\"name\":\"meta.objectliteral.tsx\",\"patterns\":[{\"include\":\"#object-member\"}]},\"array-binding-pattern\":{\"begin\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.tsx\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.array.tsx\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.array.tsx\"}},\"patterns\":[{\"include\":\"#binding-element\"},{\"include\":\"#punctuation-comma\"}]},\"array-binding-pattern-const\":{\"begin\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.tsx\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.array.tsx\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.array.tsx\"}},\"patterns\":[{\"include\":\"#binding-element-const\"},{\"include\":\"#punctuation-comma\"}]},\"array-literal\":{\"begin\":\"\\\\\\\\s*(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.brace.square.tsx\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.square.tsx\"}},\"name\":\"meta.array.literal.tsx\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"arrow-function\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.modifier.async.tsx\"},\"2\":{\"name\":\"variable.parameter.tsx\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(\\\\\\\\basync)\\\\\\\\s+)?([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?==>)\",\"name\":\"meta.arrow.tsx\"},{\"begin\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(\\\\\\\\basync))?((?<![})!\\\\\\\\]])\\\\\\\\s*(?=((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.tsx\"}},\"end\":\"(?==>|\\\\\\\\{|(^\\\\\\\\s*(export|function|class|interface|let|var|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|const|import|enum|namespace|module|type|abstract|declare)\\\\\\\\s+))\",\"name\":\"meta.arrow.tsx\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-parameters\"},{\"include\":\"#function-parameters\"},{\"include\":\"#arrow-return-type\"},{\"include\":\"#possibly-arrow-return-type\"}]},{\"begin\":\"=>\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.function.arrow.tsx\"}},\"end\":\"((?<=\\\\\\\\}|\\\\\\\\S)(?<!=>)|((?!\\\\\\\\{)(?=\\\\\\\\S)))(?!\\\\\\\\/[\\\\\\\\/\\\\\\\\*])\",\"name\":\"meta.arrow.tsx\",\"patterns\":[{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#decl-block\"},{\"include\":\"#expression\"}]}]},\"arrow-return-type\":{\"begin\":\"(?<=\\\\\\\\))\\\\\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.tsx\"}},\"end\":\"(?==>|\\\\\\\\{|(^\\\\\\\\s*(export|function|class|interface|let|var|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|const|import|enum|namespace|module|type|abstract|declare)\\\\\\\\s+))\",\"name\":\"meta.return.type.arrow.tsx\",\"patterns\":[{\"include\":\"#arrow-return-type-body\"}]},\"arrow-return-type-body\":{\"patterns\":[{\"begin\":\"(?<=[:])(?=\\\\\\\\s*\\\\\\\\{)\",\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#type-object\"}]},{\"include\":\"#type-predicate-operator\"},{\"include\":\"#type\"}]},\"async-modifier\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(async)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.modifier.async.tsx\"},\"binding-element\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#regex\"},{\"include\":\"#object-binding-pattern\"},{\"include\":\"#array-binding-pattern\"},{\"include\":\"#destructuring-variable-rest\"},{\"include\":\"#variable-initializer\"}]},\"binding-element-const\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#regex\"},{\"include\":\"#object-binding-pattern-const\"},{\"include\":\"#array-binding-pattern-const\"},{\"include\":\"#destructuring-variable-rest-const\"},{\"include\":\"#variable-initializer\"}]},\"boolean-literal\":{\"patterns\":[{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))true(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.boolean.true.tsx\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))false(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.boolean.false.tsx\"}]},\"brackets\":{\"patterns\":[{\"begin\":\"{\",\"end\":\"}|(?=\\\\\\\\*/)\",\"patterns\":[{\"include\":\"#brackets\"}]},{\"begin\":\"\\\\\\\\[\",\"end\":\"\\\\\\\\]|(?=\\\\\\\\*/)\",\"patterns\":[{\"include\":\"#brackets\"}]}]},\"cast\":{\"patterns\":[{\"include\":\"#jsx\"}]},\"class-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(?:(abstract)\\\\\\\\s+)?\\\\\\\\b(class)\\\\\\\\b(?=\\\\\\\\s+|/[/*])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.tsx\"},\"2\":{\"name\":\"storage.modifier.tsx\"},\"3\":{\"name\":\"storage.modifier.tsx\"},\"4\":{\"name\":\"storage.type.class.tsx\"}},\"end\":\"(?<=\\\\\\\\})\",\"name\":\"meta.class.tsx\",\"patterns\":[{\"include\":\"#class-declaration-or-expression-patterns\"}]},\"class-declaration-or-expression-patterns\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#class-or-interface-heritage\"},{\"captures\":{\"0\":{\"name\":\"entity.name.type.class.tsx\"}},\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\"},{\"include\":\"#type-parameters\"},{\"include\":\"#class-or-interface-body\"}]},\"class-expression\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(abstract)\\\\\\\\s+)?(class)\\\\\\\\b(?=\\\\\\\\s+|[<{]|\\\\\\\\/[\\\\\\\\/*])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.tsx\"},\"2\":{\"name\":\"storage.type.class.tsx\"}},\"end\":\"(?<=\\\\\\\\})\",\"name\":\"meta.class.tsx\",\"patterns\":[{\"include\":\"#class-declaration-or-expression-patterns\"}]},\"class-or-interface-body\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.tsx\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.tsx\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#decorator\"},{\"begin\":\"(?<=:)\\\\\\\\s*\",\"end\":\"(?=\\\\\\\\s|[;),}\\\\\\\\]:\\\\\\\\-\\\\\\\\+]|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#expression\"}]},{\"include\":\"#method-declaration\"},{\"include\":\"#indexer-declaration\"},{\"include\":\"#field-declaration\"},{\"include\":\"#string\"},{\"include\":\"#type-annotation\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#access-modifier\"},{\"include\":\"#property-accessor\"},{\"include\":\"#async-modifier\"},{\"include\":\"#after-operator-block-as-object-literal\"},{\"include\":\"#decl-block\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#punctuation-semicolon\"}]},\"class-or-interface-heritage\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:\\\\\\\\b(extends|implements)\\\\\\\\b)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.tsx\"}},\"end\":\"(?=\\\\\\\\{)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#class-or-interface-heritage\"},{\"include\":\"#type-parameters\"},{\"include\":\"#expressionWithoutIdentifiers\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.module.tsx\"},\"2\":{\"name\":\"punctuation.accessor.tsx\"},\"3\":{\"name\":\"punctuation.accessor.optional.tsx\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))(?=\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*)*\\\\\\\\s*)\"},{\"captures\":{\"1\":{\"name\":\"entity.other.inherited-class.tsx\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\"},{\"include\":\"#expressionPunctuations\"}]},\"comment\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\\\\\\\\*(?!/)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.tsx\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.tsx\"}},\"name\":\"comment.block.documentation.tsx\",\"patterns\":[{\"include\":\"#docblock\"}]},{\"begin\":\"(/\\\\\\\\*)(?:\\\\\\\\s*((@)internal)(?=\\\\\\\\s|(\\\\\\\\*/)))?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.tsx\"},\"2\":{\"name\":\"storage.type.internaldeclaration.tsx\"},\"3\":{\"name\":\"punctuation.decorator.internaldeclaration.tsx\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.tsx\"}},\"name\":\"comment.block.tsx\"},{\"begin\":\"(^[ \\\\\\\\t]+)?((//)(?:\\\\\\\\s*((@)internal)(?=\\\\\\\\s|$))?)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.tsx\"},\"2\":{\"name\":\"comment.line.double-slash.tsx\"},\"3\":{\"name\":\"punctuation.definition.comment.tsx\"},\"4\":{\"name\":\"storage.type.internaldeclaration.tsx\"},\"5\":{\"name\":\"punctuation.decorator.internaldeclaration.tsx\"}},\"contentName\":\"comment.line.double-slash.tsx\",\"end\":\"(?=$)\"}]},\"control-statement\":{\"patterns\":[{\"include\":\"#switch-statement\"},{\"include\":\"#for-loop\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(catch|finally|throw|try)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.trycatch.tsx\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.loop.tsx\"},\"2\":{\"name\":\"entity.name.label.tsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(break|continue|goto)\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(break|continue|do|goto|while)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.loop.tsx\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(return)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.flow.tsx\"}},\"end\":\"(?=[;}]|$|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#expression\"}]},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(case|default|switch)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.switch.tsx\"},{\"include\":\"#if-statement\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.conditional.tsx\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(with)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.with.tsx\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(package)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.tsx\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(debugger)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.other.debugger.tsx\"}]},\"decl-block\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.tsx\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.tsx\"}},\"name\":\"meta.block.tsx\",\"patterns\":[{\"include\":\"#statements\"}]},\"declaration\":{\"patterns\":[{\"include\":\"#decorator\"},{\"include\":\"#var-expr\"},{\"include\":\"#function-declaration\"},{\"include\":\"#class-declaration\"},{\"include\":\"#interface-declaration\"},{\"include\":\"#enum-declaration\"},{\"include\":\"#namespace-declaration\"},{\"include\":\"#type-alias-declaration\"},{\"include\":\"#import-equals-declaration\"},{\"include\":\"#import-declaration\"},{\"include\":\"#export-declaration\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(declare|export)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.modifier.tsx\"}]},\"decorator\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))\\\\\\\\@\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.decorator.tsx\"}},\"end\":\"(?=\\\\\\\\s)\",\"name\":\"meta.decorator.tsx\",\"patterns\":[{\"include\":\"#expression\"}]},\"destructuring-const\":{\"patterns\":[{\"begin\":\"(?<!=|:|^of|[^\\\\\\\\._$[:alnum:]]of|^in|[^\\\\\\\\._$[:alnum:]]in)\\\\\\\\s*(?=\\\\\\\\{)\",\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+))\",\"name\":\"meta.object-binding-pattern-variable.tsx\",\"patterns\":[{\"include\":\"#object-binding-pattern-const\"},{\"include\":\"#type-annotation\"},{\"include\":\"#comment\"}]},{\"begin\":\"(?<!=|:|^of|[^\\\\\\\\._$[:alnum:]]of|^in|[^\\\\\\\\._$[:alnum:]]in)\\\\\\\\s*(?=\\\\\\\\[)\",\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+))\",\"name\":\"meta.array-binding-pattern-variable.tsx\",\"patterns\":[{\"include\":\"#array-binding-pattern-const\"},{\"include\":\"#type-annotation\"},{\"include\":\"#comment\"}]}]},\"destructuring-parameter\":{\"patterns\":[{\"begin\":\"(?<!=|:)\\\\\\\\s*(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.tsx\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.object.tsx\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.object.tsx\"}},\"name\":\"meta.parameter.object-binding-pattern.tsx\",\"patterns\":[{\"include\":\"#parameter-object-binding-element\"}]},{\"begin\":\"(?<!=|:)\\\\\\\\s*(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.tsx\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.array.tsx\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.array.tsx\"}},\"name\":\"meta.paramter.array-binding-pattern.tsx\",\"patterns\":[{\"include\":\"#parameter-binding-element\"},{\"include\":\"#punctuation-comma\"}]}]},\"destructuring-parameter-rest\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.rest.tsx\"},\"2\":{\"name\":\"variable.parameter.tsx\"}},\"match\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\"},\"destructuring-variable\":{\"patterns\":[{\"begin\":\"(?<!=|:|^of|[^\\\\\\\\._$[:alnum:]]of|^in|[^\\\\\\\\._$[:alnum:]]in)\\\\\\\\s*(?=\\\\\\\\{)\",\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+))\",\"name\":\"meta.object-binding-pattern-variable.tsx\",\"patterns\":[{\"include\":\"#object-binding-pattern\"},{\"include\":\"#type-annotation\"},{\"include\":\"#comment\"}]},{\"begin\":\"(?<!=|:|^of|[^\\\\\\\\._$[:alnum:]]of|^in|[^\\\\\\\\._$[:alnum:]]in)\\\\\\\\s*(?=\\\\\\\\[)\",\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+))\",\"name\":\"meta.array-binding-pattern-variable.tsx\",\"patterns\":[{\"include\":\"#array-binding-pattern\"},{\"include\":\"#type-annotation\"},{\"include\":\"#comment\"}]}]},\"destructuring-variable-rest\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.rest.tsx\"},\"2\":{\"name\":\"meta.definition.variable.tsx variable.other.readwrite.tsx\"}},\"match\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\"},\"destructuring-variable-rest-const\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.rest.tsx\"},\"2\":{\"name\":\"meta.definition.variable.tsx variable.other.constant.tsx\"}},\"match\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\"},\"directives\":{\"begin\":\"^(///)\\\\\\\\s*(?=<(reference|amd-dependency|amd-module)(\\\\\\\\s+(path|types|no-default-lib|lib|name|resolution-mode)\\\\\\\\s*=\\\\\\\\s*((\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)))+\\\\\\\\s*/>\\\\\\\\s*$)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.tsx\"}},\"end\":\"(?=$)\",\"name\":\"comment.line.triple-slash.directive.tsx\",\"patterns\":[{\"begin\":\"(<)(reference|amd-dependency|amd-module)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.directive.tsx\"},\"2\":{\"name\":\"entity.name.tag.directive.tsx\"}},\"end\":\"/>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.directive.tsx\"}},\"name\":\"meta.tag.tsx\",\"patterns\":[{\"match\":\"path|types|no-default-lib|lib|name|resolution-mode\",\"name\":\"entity.other.attribute-name.directive.tsx\"},{\"match\":\"=\",\"name\":\"keyword.operator.assignment.tsx\"},{\"include\":\"#string\"}]}]},\"docblock\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"constant.language.access-type.jsdoc\"}},\"match\":\"((@)(?:access|api))\\\\\\\\s+(private|protected|public)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"entity.name.type.instance.jsdoc\"},\"4\":{\"name\":\"punctuation.definition.bracket.angle.begin.jsdoc\"},\"5\":{\"name\":\"constant.other.email.link.underline.jsdoc\"},\"6\":{\"name\":\"punctuation.definition.bracket.angle.end.jsdoc\"}},\"match\":\"((@)author)\\\\\\\\s+([^@\\\\\\\\s<>*/](?:[^@<>*/]|\\\\\\\\*[^/])*)(?:\\\\\\\\s*(<)([^>\\\\\\\\s]+)(>))?\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"entity.name.type.instance.jsdoc\"},\"4\":{\"name\":\"keyword.operator.control.jsdoc\"},\"5\":{\"name\":\"entity.name.type.instance.jsdoc\"}},\"match\":\"((@)borrows)\\\\\\\\s+((?:[^@\\\\\\\\s*/]|\\\\\\\\*[^/])+)\\\\\\\\s+(as)\\\\\\\\s+((?:[^@\\\\\\\\s*/]|\\\\\\\\*[^/])+)\"},{\"begin\":\"((@)example)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"end\":\"(?=@|\\\\\\\\*/)\",\"name\":\"meta.example.jsdoc\",\"patterns\":[{\"match\":\"^\\\\\\\\s\\\\\\\\*\\\\\\\\s+\"},{\"begin\":\"\\\\\\\\G(<)caption(>)\",\"beginCaptures\":{\"0\":{\"name\":\"entity.name.tag.inline.jsdoc\"},\"1\":{\"name\":\"punctuation.definition.bracket.angle.begin.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.bracket.angle.end.jsdoc\"}},\"contentName\":\"constant.other.description.jsdoc\",\"end\":\"(</)caption(>)|(?=\\\\\\\\*/)\",\"endCaptures\":{\"0\":{\"name\":\"entity.name.tag.inline.jsdoc\"},\"1\":{\"name\":\"punctuation.definition.bracket.angle.begin.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.bracket.angle.end.jsdoc\"}}},{\"captures\":{\"0\":{\"name\":\"source.embedded.tsx\"}},\"match\":\"[^\\\\\\\\s@*](?:[^*]|\\\\\\\\*[^/])*\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"constant.language.symbol-type.jsdoc\"}},\"match\":\"((@)kind)\\\\\\\\s+(class|constant|event|external|file|function|member|mixin|module|namespace|typedef)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"variable.other.link.underline.jsdoc\"},\"4\":{\"name\":\"entity.name.type.instance.jsdoc\"}},\"match\":\"((@)see)\\\\\\\\s+(?:((?=https?://)(?:[^\\\\\\\\s*]|\\\\\\\\*[^/])+)|((?!https?://|(?:\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])?{@(?:link|linkcode|linkplain|tutorial)\\\\\\\\b)(?:[^@\\\\\\\\s*/]|\\\\\\\\*[^/])+))\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"variable.other.jsdoc\"}},\"match\":\"((@)template)\\\\\\\\s+([A-Za-z_$][\\\\\\\\w$.\\\\\\\\[\\\\\\\\]]*(?:\\\\\\\\s*,\\\\\\\\s*[A-Za-z_$][\\\\\\\\w$.\\\\\\\\[\\\\\\\\]]*)*)\"},{\"begin\":\"((@)template)\\\\\\\\s+(?={)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"end\":\"(?=\\\\\\\\s|\\\\\\\\*/|[^{}\\\\\\\\[\\\\\\\\]A-Za-z_$])\",\"patterns\":[{\"include\":\"#jsdoctype\"},{\"match\":\"([A-Za-z_$][\\\\\\\\w$.\\\\\\\\[\\\\\\\\]]*)\",\"name\":\"variable.other.jsdoc\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"variable.other.jsdoc\"}},\"match\":\"((@)(?:arg|argument|const|constant|member|namespace|param|var))\\\\\\\\s+([A-Za-z_$][\\\\\\\\w$.\\\\\\\\[\\\\\\\\]]*)\"},{\"begin\":\"((@)typedef)\\\\\\\\s+(?={)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"end\":\"(?=\\\\\\\\s|\\\\\\\\*/|[^{}\\\\\\\\[\\\\\\\\]A-Za-z_$])\",\"patterns\":[{\"include\":\"#jsdoctype\"},{\"match\":\"(?:[^@\\\\\\\\s*/]|\\\\\\\\*[^/])+\",\"name\":\"entity.name.type.instance.jsdoc\"}]},{\"begin\":\"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\\\\\\\s+(?={)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"end\":\"(?=\\\\\\\\s|\\\\\\\\*/|[^{}\\\\\\\\[\\\\\\\\]A-Za-z_$])\",\"patterns\":[{\"include\":\"#jsdoctype\"},{\"match\":\"([A-Za-z_$][\\\\\\\\w$.\\\\\\\\[\\\\\\\\]]*)\",\"name\":\"variable.other.jsdoc\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.optional-value.begin.bracket.square.jsdoc\"},\"2\":{\"name\":\"keyword.operator.assignment.jsdoc\"},\"3\":{\"name\":\"source.embedded.tsx\"},\"4\":{\"name\":\"punctuation.definition.optional-value.end.bracket.square.jsdoc\"},\"5\":{\"name\":\"invalid.illegal.syntax.jsdoc\"}},\"match\":\"(\\\\\\\\[)\\\\\\\\s*[\\\\\\\\w$]+(?:(?:\\\\\\\\[\\\\\\\\])?\\\\\\\\.[\\\\\\\\w$]+)*(?:\\\\\\\\s*(=)\\\\\\\\s*((?>\\\\\"(?:(?:\\\\\\\\*(?!/))|(?:\\\\\\\\\\\\\\\\(?!\\\\\"))|[^*\\\\\\\\\\\\\\\\])*?\\\\\"|'(?:(?:\\\\\\\\*(?!/))|(?:\\\\\\\\\\\\\\\\(?!'))|[^*\\\\\\\\\\\\\\\\])*?'|\\\\\\\\[(?:(?:\\\\\\\\*(?!/))|[^*])*?\\\\\\\\]|(?:(?:\\\\\\\\*(?!/))|\\\\\\\\s(?!\\\\\\\\s*\\\\\\\\])|\\\\\\\\[.*?(?:\\\\\\\\]|(?=\\\\\\\\*/))|[^*\\\\\\\\s\\\\\\\\[\\\\\\\\]])*)*))?\\\\\\\\s*(?:(\\\\\\\\])((?:[^*\\\\\\\\s]|\\\\\\\\*[^\\\\\\\\s/])+)?|(?=\\\\\\\\*/))\",\"name\":\"variable.other.jsdoc\"}]},{\"begin\":\"((@)(?:define|enum|exception|export|extends|lends|implements|modifies|namespace|private|protected|returns?|satisfies|suppress|this|throws|type|yields?))\\\\\\\\s+(?={)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"end\":\"(?=\\\\\\\\s|\\\\\\\\*/|[^{}\\\\\\\\[\\\\\\\\]A-Za-z_$])\",\"patterns\":[{\"include\":\"#jsdoctype\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"entity.name.type.instance.jsdoc\"}},\"match\":\"((@)(?:alias|augments|callback|constructs|emits|event|fires|exports?|extends|external|function|func|host|lends|listens|interface|memberof!?|method|module|mixes|mixin|name|requires|see|this|typedef|uses))\\\\\\\\s+((?:[^{}@\\\\\\\\s*]|\\\\\\\\*[^/])+)\"},{\"begin\":\"((@)(?:default(?:value)?|license|version))\\\\\\\\s+(([''\\\\\"]))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"variable.other.jsdoc\"},\"4\":{\"name\":\"punctuation.definition.string.begin.jsdoc\"}},\"contentName\":\"variable.other.jsdoc\",\"end\":\"(\\\\\\\\3)|(?=$|\\\\\\\\*/)\",\"endCaptures\":{\"0\":{\"name\":\"variable.other.jsdoc\"},\"1\":{\"name\":\"punctuation.definition.string.end.jsdoc\"}}},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"variable.other.jsdoc\"}},\"match\":\"((@)(?:default(?:value)?|license|tutorial|variation|version))\\\\\\\\s+([^\\\\\\\\s*]+)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"match\":\"(@)(?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles|callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright|default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception|exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func|function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc|inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method|mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects|override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected|public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary|suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation|version|virtual|writeOnce|yields?)\\\\\\\\b\",\"name\":\"storage.type.class.jsdoc\"},{\"include\":\"#inline-tags\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"match\":\"((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\\\\\\\s+)\"}]},\"enum-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?(?:\\\\\\\\b(const)\\\\\\\\s+)?\\\\\\\\b(enum)\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.tsx\"},\"2\":{\"name\":\"storage.modifier.tsx\"},\"3\":{\"name\":\"storage.modifier.tsx\"},\"4\":{\"name\":\"storage.type.enum.tsx\"},\"5\":{\"name\":\"entity.name.type.enum.tsx\"}},\"end\":\"(?<=\\\\\\\\})\",\"name\":\"meta.enum.declaration.tsx\",\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.tsx\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.tsx\"}},\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"beginCaptures\":{\"0\":{\"name\":\"variable.other.enummember.tsx\"}},\"end\":\"(?=,|\\\\\\\\}|$)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#variable-initializer\"}]},{\"begin\":\"(?=((\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\])))\",\"end\":\"(?=,|\\\\\\\\}|$)\",\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#array-literal\"},{\"include\":\"#comment\"},{\"include\":\"#variable-initializer\"}]},{\"include\":\"#punctuation-comma\"}]}]},\"export-declaration\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.export.tsx\"},\"2\":{\"name\":\"keyword.control.as.tsx\"},\"3\":{\"name\":\"storage.type.namespace.tsx\"},\"4\":{\"name\":\"entity.name.type.module.tsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(export)\\\\\\\\s+(as)\\\\\\\\s+(namespace)\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(export)(?:\\\\\\\\s+(type))?(?:(?:\\\\\\\\s*(=))|(?:\\\\\\\\s+(default)(?=\\\\\\\\s+)))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.tsx\"},\"2\":{\"name\":\"keyword.control.type.tsx\"},\"3\":{\"name\":\"keyword.operator.assignment.tsx\"},\"4\":{\"name\":\"keyword.control.default.tsx\"}},\"end\":\"(?=$|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"name\":\"meta.export.default.tsx\",\"patterns\":[{\"include\":\"#interface-declaration\"},{\"include\":\"#expression\"}]},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(export)(?:\\\\\\\\s+(type))?\\\\\\\\b(?!(\\\\\\\\$)|(\\\\\\\\s*:))((?=\\\\\\\\s*[\\\\\\\\{*])|((?=\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*(\\\\\\\\s|,))(?!\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b)))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.tsx\"},\"2\":{\"name\":\"keyword.control.type.tsx\"}},\"end\":\"(?=$|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"name\":\"meta.export.tsx\",\"patterns\":[{\"include\":\"#import-export-declaration\"}]}]},\"expression\":{\"patterns\":[{\"include\":\"#expressionWithoutIdentifiers\"},{\"include\":\"#identifiers\"},{\"include\":\"#expressionPunctuations\"}]},\"expression-inside-possibly-arrow-parens\":{\"patterns\":[{\"include\":\"#expressionWithoutIdentifiers\"},{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#decorator\"},{\"include\":\"#destructuring-parameter\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.tsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(override|public|protected|private|readonly)\\\\\\\\s+(?=(override|public|protected|private|readonly)\\\\\\\\s+)\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.tsx\"},\"2\":{\"name\":\"keyword.operator.rest.tsx\"},\"3\":{\"name\":\"entity.name.function.tsx variable.language.this.tsx\"},\"4\":{\"name\":\"entity.name.function.tsx\"},\"5\":{\"name\":\"keyword.operator.optional.tsx\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(override|public|private|protected|readonly)\\\\\\\\s+)?(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*(\\\\\\\\??)(?=\\\\\\\\s*(=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))))|(:\\\\\\\\s*((<)|([(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>)))))))|(:\\\\\\\\s*(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Function(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(:\\\\\\\\s*((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))))|(:\\\\\\\\s*(=>|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>))))))\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.tsx\"},\"2\":{\"name\":\"keyword.operator.rest.tsx\"},\"3\":{\"name\":\"variable.parameter.tsx variable.language.this.tsx\"},\"4\":{\"name\":\"variable.parameter.tsx\"},\"5\":{\"name\":\"keyword.operator.optional.tsx\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(override|public|private|protected|readonly)\\\\\\\\s+)?(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*(\\\\\\\\??)(?=\\\\\\\\s*[:,]|$)\"},{\"include\":\"#type-annotation\"},{\"include\":\"#variable-initializer\"},{\"match\":\",\",\"name\":\"punctuation.separator.parameter.tsx\"},{\"include\":\"#identifiers\"},{\"include\":\"#expressionPunctuations\"}]},\"expression-operators\":{\"patterns\":[{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(await)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.flow.tsx\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(yield)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))(?=\\\\\\\\s*\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*\\\\\\\\*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.flow.tsx\"}},\"end\":\"\\\\\\\\*\",\"endCaptures\":{\"0\":{\"name\":\"keyword.generator.asterisk.tsx\"}},\"patterns\":[{\"include\":\"#comment\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.flow.tsx\"},\"2\":{\"name\":\"keyword.generator.asterisk.tsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(yield)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))(?:\\\\\\\\s*(\\\\\\\\*))?\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))delete(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.expression.delete.tsx\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))in(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))(?!\\\\\\\\()\",\"name\":\"keyword.operator.expression.in.tsx\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))of(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))(?!\\\\\\\\()\",\"name\":\"keyword.operator.expression.of.tsx\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))instanceof(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.expression.instanceof.tsx\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))new(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.new.tsx\"},{\"include\":\"#typeof-operator\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))void(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.expression.void.tsx\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.as.tsx\"},\"2\":{\"name\":\"storage.modifier.tsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(as)\\\\\\\\s+(const)(?=\\\\\\\\s*($|[;,:})\\\\\\\\]]))\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(as)|(satisfies))\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.as.tsx\"},\"2\":{\"name\":\"keyword.control.satisfies.tsx\"}},\"end\":\"(?=^|[;),}\\\\\\\\]:?\\\\\\\\-\\\\\\\\+\\\\\\\\>]|\\\\\\\\|\\\\\\\\||\\\\\\\\&\\\\\\\\&|\\\\\\\\!\\\\\\\\=\\\\\\\\=|$|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(as|satisfies)\\\\\\\\s+)|(\\\\\\\\s+\\\\\\\\<))\",\"patterns\":[{\"include\":\"#type\"}]},{\"match\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"name\":\"keyword.operator.spread.tsx\"},{\"match\":\"\\\\\\\\*=|(?<!\\\\\\\\()/=|%=|\\\\\\\\+=|\\\\\\\\-=\",\"name\":\"keyword.operator.assignment.compound.tsx\"},{\"match\":\"\\\\\\\\&=|\\\\\\\\^=|<<=|>>=|>>>=|\\\\\\\\|=\",\"name\":\"keyword.operator.assignment.compound.bitwise.tsx\"},{\"match\":\"<<|>>>|>>\",\"name\":\"keyword.operator.bitwise.shift.tsx\"},{\"match\":\"===|!==|==|!=\",\"name\":\"keyword.operator.comparison.tsx\"},{\"match\":\"<=|>=|<>|<|>\",\"name\":\"keyword.operator.relational.tsx\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.logical.tsx\"},\"2\":{\"name\":\"keyword.operator.assignment.compound.tsx\"},\"3\":{\"name\":\"keyword.operator.arithmetic.tsx\"}},\"match\":\"(?<=[_$[:alnum:]])(\\\\\\\\!)\\\\\\\\s*(?:(/=)|(?:(/)(?![/*])))\"},{\"match\":\"\\\\\\\\!|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\?\\\\\\\\?\",\"name\":\"keyword.operator.logical.tsx\"},{\"match\":\"\\\\\\\\&|~|\\\\\\\\^|\\\\\\\\|\",\"name\":\"keyword.operator.bitwise.tsx\"},{\"match\":\"\\\\\\\\=\",\"name\":\"keyword.operator.assignment.tsx\"},{\"match\":\"--\",\"name\":\"keyword.operator.decrement.tsx\"},{\"match\":\"\\\\\\\\+\\\\\\\\+\",\"name\":\"keyword.operator.increment.tsx\"},{\"match\":\"%|\\\\\\\\*|/|-|\\\\\\\\+\",\"name\":\"keyword.operator.arithmetic.tsx\"},{\"begin\":\"(?<=[_$[:alnum:])\\\\\\\\]])\\\\\\\\s*(?=(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)+(?:(/=)|(?:(/)(?![/*]))))\",\"end\":\"(?:(/=)|(?:(/)(?!\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/)))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.compound.tsx\"},\"2\":{\"name\":\"keyword.operator.arithmetic.tsx\"}},\"patterns\":[{\"include\":\"#comment\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.operator.assignment.compound.tsx\"},\"2\":{\"name\":\"keyword.operator.arithmetic.tsx\"}},\"match\":\"(?<=[_$[:alnum:])\\\\\\\\]])\\\\\\\\s*(?:(/=)|(?:(/)(?![/*])))\"}]},\"expressionPunctuations\":{\"patterns\":[{\"include\":\"#punctuation-comma\"},{\"include\":\"#punctuation-accessor\"}]},\"expressionWithoutIdentifiers\":{\"patterns\":[{\"include\":\"#jsx\"},{\"include\":\"#string\"},{\"include\":\"#regex\"},{\"include\":\"#comment\"},{\"include\":\"#function-expression\"},{\"include\":\"#class-expression\"},{\"include\":\"#arrow-function\"},{\"include\":\"#paren-expression-possibly-arrow\"},{\"include\":\"#cast\"},{\"include\":\"#ternary-expression\"},{\"include\":\"#new-expr\"},{\"include\":\"#instanceof-expr\"},{\"include\":\"#object-literal\"},{\"include\":\"#expression-operators\"},{\"include\":\"#function-call\"},{\"include\":\"#literal\"},{\"include\":\"#support-objects\"},{\"include\":\"#paren-expression\"}]},\"field-declaration\":{\"begin\":\"(?<!\\\\\\\\()(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(readonly)\\\\\\\\s+)?(?=\\\\\\\\s*((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(?:(?:(\\\\\\\\?)|(\\\\\\\\!))\\\\\\\\s*)?(=|:|;|,|\\\\\\\\}|$))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.tsx\"}},\"end\":\"(?=\\\\\\\\}|;|,|$|(^(?!\\\\\\\\s*((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(?:(?:(\\\\\\\\?)|(\\\\\\\\!))\\\\\\\\s*)?(=|:|;|,|$))))|(?<=\\\\\\\\})\",\"name\":\"meta.field.declaration.tsx\",\"patterns\":[{\"include\":\"#variable-initializer\"},{\"include\":\"#type-annotation\"},{\"include\":\"#string\"},{\"include\":\"#array-literal\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#comment\"},{\"captures\":{\"1\":{\"name\":\"meta.definition.property.tsx entity.name.function.tsx\"},\"2\":{\"name\":\"keyword.operator.optional.tsx\"},\"3\":{\"name\":\"keyword.operator.definiteassignment.tsx\"}},\"match\":\"(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)(?:(\\\\\\\\?)|(\\\\\\\\!))?(?=\\\\\\\\s*\\\\\\\\s*(=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))))|(:\\\\\\\\s*((<)|([(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>)))))))|(:\\\\\\\\s*(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Function(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(:\\\\\\\\s*((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))))|(:\\\\\\\\s*(=>|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>))))))\"},{\"match\":\"\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"meta.definition.property.tsx variable.object.property.tsx\"},{\"match\":\"\\\\\\\\?\",\"name\":\"keyword.operator.optional.tsx\"},{\"match\":\"\\\\\\\\!\",\"name\":\"keyword.operator.definiteassignment.tsx\"}]},\"for-loop\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))for(?=((\\\\\\\\s+|(\\\\\\\\s*\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*))await)?\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)?(\\\\\\\\())\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.loop.tsx\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"include\":\"#comment\"},{\"match\":\"await\",\"name\":\"keyword.control.loop.tsx\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.tsx\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.tsx\"}},\"patterns\":[{\"include\":\"#var-expr\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-semicolon\"}]}]},\"function-body\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-parameters\"},{\"include\":\"#function-parameters\"},{\"include\":\"#return-type\"},{\"include\":\"#type-function-return-type\"},{\"include\":\"#decl-block\"},{\"match\":\"\\\\\\\\*\",\"name\":\"keyword.generator.asterisk.tsx\"}]},\"function-call\":{\"patterns\":[{\"begin\":\"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\\\\\\\)]))\\\\\\\\s*(?:(\\\\\\\\?\\\\\\\\.\\\\\\\\s*)|(\\\\\\\\!))?((<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))(([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>)*(?<!=)\\\\\\\\>))*(?<!=)\\\\\\\\>)*(?<!=)>\\\\\\\\s*)?\\\\\\\\())\",\"end\":\"(?<=\\\\\\\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\\\\\\\)]))\\\\\\\\s*(?:(\\\\\\\\?\\\\\\\\.\\\\\\\\s*)|(\\\\\\\\!))?((<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))(([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>)*(?<!=)\\\\\\\\>))*(?<!=)\\\\\\\\>)*(?<!=)>\\\\\\\\s*)?\\\\\\\\())\",\"patterns\":[{\"begin\":\"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))\",\"end\":\"(?=\\\\\\\\s*(?:(\\\\\\\\?\\\\\\\\.\\\\\\\\s*)|(\\\\\\\\!))?((<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))(([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>)*(?<!=)\\\\\\\\>))*(?<!=)\\\\\\\\>)*(?<!=)>\\\\\\\\s*)?\\\\\\\\())\",\"name\":\"meta.function-call.tsx\",\"patterns\":[{\"include\":\"#function-call-target\"}]},{\"include\":\"#comment\"},{\"include\":\"#function-call-optionals\"},{\"include\":\"#type-arguments\"},{\"include\":\"#paren-expression\"}]},{\"begin\":\"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\\\\\\\)]))(<\\\\\\\\s*[\\\\\\\\{\\\\\\\\[\\\\\\\\(]\\\\\\\\s*$))\",\"end\":\"(?<=\\\\\\\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\\\\\\\)]))(<\\\\\\\\s*[\\\\\\\\{\\\\\\\\[\\\\\\\\(]\\\\\\\\s*$))\",\"patterns\":[{\"begin\":\"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))\",\"end\":\"(?=(<\\\\\\\\s*[\\\\\\\\{\\\\\\\\[\\\\\\\\(]\\\\\\\\s*$))\",\"name\":\"meta.function-call.tsx\",\"patterns\":[{\"include\":\"#function-call-target\"}]},{\"include\":\"#comment\"},{\"include\":\"#function-call-optionals\"},{\"include\":\"#type-arguments\"}]}]},\"function-call-optionals\":{\"patterns\":[{\"match\":\"\\\\\\\\?\\\\\\\\.\",\"name\":\"meta.function-call.tsx punctuation.accessor.optional.tsx\"},{\"match\":\"\\\\\\\\!\",\"name\":\"meta.function-call.tsx keyword.operator.definiteassignment.tsx\"}]},\"function-call-target\":{\"patterns\":[{\"include\":\"#support-function-call-identifiers\"},{\"match\":\"(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)\",\"name\":\"entity.name.function.tsx\"}]},\"function-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?(?:(async)\\\\\\\\s+)?(function\\\\\\\\b)(?:\\\\\\\\s*(\\\\\\\\*))?(?:(?:\\\\\\\\s+|(?<=\\\\\\\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.tsx\"},\"2\":{\"name\":\"storage.modifier.tsx\"},\"3\":{\"name\":\"storage.modifier.async.tsx\"},\"4\":{\"name\":\"storage.type.function.tsx\"},\"5\":{\"name\":\"keyword.generator.asterisk.tsx\"},\"6\":{\"name\":\"meta.definition.function.tsx entity.name.function.tsx\"}},\"end\":\"(?=;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))|(?<=\\\\\\\\})\",\"name\":\"meta.function.tsx\",\"patterns\":[{\"include\":\"#function-name\"},{\"include\":\"#function-body\"}]},\"function-expression\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(async)\\\\\\\\s+)?(function\\\\\\\\b)(?:\\\\\\\\s*(\\\\\\\\*))?(?:(?:\\\\\\\\s+|(?<=\\\\\\\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.tsx\"},\"2\":{\"name\":\"storage.type.function.tsx\"},\"3\":{\"name\":\"keyword.generator.asterisk.tsx\"},\"4\":{\"name\":\"meta.definition.function.tsx entity.name.function.tsx\"}},\"end\":\"(?=;)|(?<=\\\\\\\\})\",\"name\":\"meta.function.expression.tsx\",\"patterns\":[{\"include\":\"#function-name\"},{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#function-body\"}]},\"function-name\":{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"meta.definition.function.tsx entity.name.function.tsx\"},\"function-parameters\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.begin.tsx\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.tsx\"}},\"name\":\"meta.parameters.tsx\",\"patterns\":[{\"include\":\"#function-parameters-body\"}]},\"function-parameters-body\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#decorator\"},{\"include\":\"#destructuring-parameter\"},{\"include\":\"#parameter-name\"},{\"include\":\"#parameter-type-annotation\"},{\"include\":\"#variable-initializer\"},{\"match\":\",\",\"name\":\"punctuation.separator.parameter.tsx\"}]},\"identifiers\":{\"patterns\":[{\"include\":\"#object-identifiers\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.tsx\"},\"2\":{\"name\":\"punctuation.accessor.optional.tsx\"},\"3\":{\"name\":\"entity.name.function.tsx\"}},\"match\":\"(?:(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\\\\\\\s*=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))))\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.tsx\"},\"2\":{\"name\":\"punctuation.accessor.optional.tsx\"},\"3\":{\"name\":\"variable.other.constant.property.tsx\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(\\\\\\\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.tsx\"},\"2\":{\"name\":\"punctuation.accessor.optional.tsx\"},\"3\":{\"name\":\"variable.other.property.tsx\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)\"},{\"match\":\"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])\",\"name\":\"variable.other.constant.tsx\"},{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"variable.other.readwrite.tsx\"}]},\"if-statement\":{\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?=\\\\\\\\bif\\\\\\\\s*(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))\\\\\\\\s*(?!\\\\\\\\{))\",\"end\":\"(?=;|$|\\\\\\\\})\",\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(if)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.conditional.tsx\"},\"2\":{\"name\":\"meta.brace.round.tsx\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.tsx\"}},\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\"(?<=\\\\\\\\))\\\\\\\\s*\\\\\\\\/(?![\\\\\\\\/*])(?=(?:[^\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\\\[]|\\\\\\\\\\\\\\\\.|\\\\\\\\[([^\\\\\\\\]\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\])+\\\\\\\\/([dgimsuvy]+|(?![\\\\\\\\/\\\\\\\\*])|(?=\\\\\\\\/\\\\\\\\*))(?!\\\\\\\\s*[a-zA-Z0-9_$]))\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.tsx\"}},\"end\":\"(/)([dgimsuvy]*)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.tsx\"},\"2\":{\"name\":\"keyword.other.tsx\"}},\"name\":\"string.regexp.tsx\",\"patterns\":[{\"include\":\"#regexp\"}]},{\"include\":\"#statements\"}]}]},\"import-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(import)(?:\\\\\\\\s+(type)(?!\\\\\\\\s+from))?(?!\\\\\\\\s*[:\\\\\\\\(])(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.tsx\"},\"2\":{\"name\":\"storage.modifier.tsx\"},\"3\":{\"name\":\"keyword.control.import.tsx\"},\"4\":{\"name\":\"keyword.control.type.tsx\"}},\"end\":\"(?<!^import|[^\\\\\\\\._$[:alnum:]]import)(?=;|$|^)\",\"name\":\"meta.import.tsx\",\"patterns\":[{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"begin\":\"(?<=^import|[^\\\\\\\\._$[:alnum:]]import)(?!\\\\\\\\s*[\\\\\"'])\",\"end\":\"\\\\\\\\bfrom\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.from.tsx\"}},\"patterns\":[{\"include\":\"#import-export-declaration\"}]},{\"include\":\"#import-export-declaration\"}]},\"import-equals-declaration\":{\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(import)(?:\\\\\\\\s+(type))?\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(=)\\\\\\\\s*(require)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.tsx\"},\"2\":{\"name\":\"storage.modifier.tsx\"},\"3\":{\"name\":\"keyword.control.import.tsx\"},\"4\":{\"name\":\"keyword.control.type.tsx\"},\"5\":{\"name\":\"variable.other.readwrite.alias.tsx\"},\"6\":{\"name\":\"keyword.operator.assignment.tsx\"},\"7\":{\"name\":\"keyword.control.require.tsx\"},\"8\":{\"name\":\"meta.brace.round.tsx\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.tsx\"}},\"name\":\"meta.import-equals.external.tsx\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"}]},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(import)(?:\\\\\\\\s+(type))?\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(=)\\\\\\\\s*(?!require\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.tsx\"},\"2\":{\"name\":\"storage.modifier.tsx\"},\"3\":{\"name\":\"keyword.control.import.tsx\"},\"4\":{\"name\":\"keyword.control.type.tsx\"},\"5\":{\"name\":\"variable.other.readwrite.alias.tsx\"},\"6\":{\"name\":\"keyword.operator.assignment.tsx\"}},\"end\":\"(?=;|$|^)\",\"name\":\"meta.import-equals.internal.tsx\",\"patterns\":[{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#comment\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.module.tsx\"},\"2\":{\"name\":\"punctuation.accessor.tsx\"},\"3\":{\"name\":\"punctuation.accessor.optional.tsx\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\"},{\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"name\":\"variable.other.readwrite.tsx\"}]}]},\"import-export-assert-clause\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(with)|(assert))\\\\\\\\s*(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.with.tsx\"},\"2\":{\"name\":\"keyword.control.assert.tsx\"},\"3\":{\"name\":\"punctuation.definition.block.tsx\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.tsx\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"match\":\"(?:[_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?=(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*:)\",\"name\":\"meta.object-literal.key.tsx\"},{\"match\":\":\",\"name\":\"punctuation.separator.key-value.tsx\"}]},\"import-export-block\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.tsx\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.tsx\"}},\"name\":\"meta.block.tsx\",\"patterns\":[{\"include\":\"#import-export-clause\"}]},\"import-export-clause\":{\"patterns\":[{\"include\":\"#comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.type.tsx\"},\"2\":{\"name\":\"keyword.control.default.tsx\"},\"3\":{\"name\":\"constant.language.import-export-all.tsx\"},\"4\":{\"name\":\"variable.other.readwrite.tsx\"},\"5\":{\"name\":\"string.quoted.alias.tsx\"},\"12\":{\"name\":\"keyword.control.as.tsx\"},\"13\":{\"name\":\"keyword.control.default.tsx\"},\"14\":{\"name\":\"variable.other.readwrite.alias.tsx\"},\"15\":{\"name\":\"string.quoted.alias.tsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(?:(\\\\\\\\btype)\\\\\\\\s+)?(?:(\\\\\\\\bdefault)|(\\\\\\\\*)|(\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*)|((\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))))\\\\\\\\s+(as)\\\\\\\\s+(?:(default(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|([_$[:alpha:]][_$[:alnum:]]*)|((\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)))\"},{\"include\":\"#punctuation-comma\"},{\"match\":\"\\\\\\\\*\",\"name\":\"constant.language.import-export-all.tsx\"},{\"match\":\"\\\\\\\\b(default)\\\\\\\\b\",\"name\":\"keyword.control.default.tsx\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.type.tsx\"},\"2\":{\"name\":\"variable.other.readwrite.alias.tsx\"},\"3\":{\"name\":\"string.quoted.alias.tsx\"}},\"match\":\"(?:(\\\\\\\\btype)\\\\\\\\s+)?(?:([_$[:alpha:]][_$[:alnum:]]*)|((\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)))\"}]},\"import-export-declaration\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#import-export-block\"},{\"match\":\"\\\\\\\\bfrom\\\\\\\\b\",\"name\":\"keyword.control.from.tsx\"},{\"include\":\"#import-export-assert-clause\"},{\"include\":\"#import-export-clause\"}]},\"indexer-declaration\":{\"begin\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(readonly)\\\\\\\\s*)?\\\\\\\\s*(\\\\\\\\[)\\\\\\\\s*([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?=:)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.tsx\"},\"2\":{\"name\":\"meta.brace.square.tsx\"},\"3\":{\"name\":\"variable.parameter.tsx\"}},\"end\":\"(\\\\\\\\])\\\\\\\\s*(\\\\\\\\?\\\\\\\\s*)?|$\",\"endCaptures\":{\"1\":{\"name\":\"meta.brace.square.tsx\"},\"2\":{\"name\":\"keyword.operator.optional.tsx\"}},\"name\":\"meta.indexer.declaration.tsx\",\"patterns\":[{\"include\":\"#type-annotation\"}]},\"indexer-mapped-type-declaration\":{\"begin\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))([+-])?(readonly)\\\\\\\\s*)?\\\\\\\\s*(\\\\\\\\[)\\\\\\\\s*([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s+(in)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.modifier.tsx\"},\"2\":{\"name\":\"storage.modifier.tsx\"},\"3\":{\"name\":\"meta.brace.square.tsx\"},\"4\":{\"name\":\"entity.name.type.tsx\"},\"5\":{\"name\":\"keyword.operator.expression.in.tsx\"}},\"end\":\"(\\\\\\\\])([+-])?\\\\\\\\s*(\\\\\\\\?\\\\\\\\s*)?|$\",\"endCaptures\":{\"1\":{\"name\":\"meta.brace.square.tsx\"},\"2\":{\"name\":\"keyword.operator.type.modifier.tsx\"},\"3\":{\"name\":\"keyword.operator.optional.tsx\"}},\"name\":\"meta.indexer.mappedtype.declaration.tsx\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.as.tsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(as)\\\\\\\\s+\"},{\"include\":\"#type\"}]},\"inline-tags\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.bracket.square.begin.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.bracket.square.end.jsdoc\"}},\"match\":\"(\\\\\\\\[)[^\\\\\\\\]]+(\\\\\\\\])(?={@(?:link|linkcode|linkplain|tutorial))\",\"name\":\"constant.other.description.jsdoc\"},{\"begin\":\"({)((@)(?:link(?:code|plain)?|tutorial))\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.bracket.curly.begin.jsdoc\"},\"2\":{\"name\":\"storage.type.class.jsdoc\"},\"3\":{\"name\":\"punctuation.definition.inline.tag.jsdoc\"}},\"end\":\"}|(?=\\\\\\\\*/)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.bracket.curly.end.jsdoc\"}},\"name\":\"entity.name.type.instance.jsdoc\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.other.link.underline.jsdoc\"},\"2\":{\"name\":\"punctuation.separator.pipe.jsdoc\"}},\"match\":\"\\\\\\\\G((?=https?://)(?:[^|}\\\\\\\\s*]|\\\\\\\\*[/])+)(\\\\\\\\|)?\"},{\"captures\":{\"1\":{\"name\":\"variable.other.description.jsdoc\"},\"2\":{\"name\":\"punctuation.separator.pipe.jsdoc\"}},\"match\":\"\\\\\\\\G((?:[^{}@\\\\\\\\s|*]|\\\\\\\\*[^/])+)(\\\\\\\\|)?\"}]}]},\"instanceof-expr\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(instanceof)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.expression.instanceof.tsx\"}},\"end\":\"(?<=\\\\\\\\))|(?=[;),}\\\\\\\\]:?\\\\\\\\-\\\\\\\\+\\\\\\\\>]|\\\\\\\\|\\\\\\\\||\\\\\\\\&\\\\\\\\&|\\\\\\\\!\\\\\\\\=\\\\\\\\=|$|(===|!==|==|!=)|(([\\\\\\\\&\\\\\\\\~\\\\\\\\^\\\\\\\\|]\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+instanceof(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))function((\\\\\\\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\s*[\\\\\\\\(]))))\",\"patterns\":[{\"include\":\"#type\"}]},\"interface-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(?:(abstract)\\\\\\\\s+)?\\\\\\\\b(interface)\\\\\\\\b(?=\\\\\\\\s+|/[/*])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.tsx\"},\"2\":{\"name\":\"storage.modifier.tsx\"},\"3\":{\"name\":\"storage.modifier.tsx\"},\"4\":{\"name\":\"storage.type.interface.tsx\"}},\"end\":\"(?<=\\\\\\\\})\",\"name\":\"meta.interface.tsx\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#class-or-interface-heritage\"},{\"captures\":{\"0\":{\"name\":\"entity.name.type.interface.tsx\"}},\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\"},{\"include\":\"#type-parameters\"},{\"include\":\"#class-or-interface-body\"}]},\"jsdoctype\":{\"patterns\":[{\"begin\":\"\\\\\\\\G({)\",\"beginCaptures\":{\"0\":{\"name\":\"entity.name.type.instance.jsdoc\"},\"1\":{\"name\":\"punctuation.definition.bracket.curly.begin.jsdoc\"}},\"contentName\":\"entity.name.type.instance.jsdoc\",\"end\":\"((}))\\\\\\\\s*|(?=\\\\\\\\*/)\",\"endCaptures\":{\"1\":{\"name\":\"entity.name.type.instance.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.bracket.curly.end.jsdoc\"}},\"patterns\":[{\"include\":\"#brackets\"}]}]},\"jsx\":{\"patterns\":[{\"include\":\"#jsx-tag-without-attributes-in-expression\"},{\"include\":\"#jsx-tag-in-expression\"}]},\"jsx-children\":{\"patterns\":[{\"include\":\"#jsx-tag-without-attributes\"},{\"include\":\"#jsx-tag\"},{\"include\":\"#jsx-evaluated-code\"},{\"include\":\"#jsx-entities\"}]},\"jsx-entities\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.tsx\"},\"3\":{\"name\":\"punctuation.definition.entity.tsx\"}},\"match\":\"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)\",\"name\":\"constant.character.entity.tsx\"}]},\"jsx-evaluated-code\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.tsx\"}},\"contentName\":\"meta.embedded.expression.tsx\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.tsx\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"jsx-string-double-quoted\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.tsx\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.tsx\"}},\"name\":\"string.quoted.double.tsx\",\"patterns\":[{\"include\":\"#jsx-entities\"}]},\"jsx-string-single-quoted\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.tsx\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.tsx\"}},\"name\":\"string.quoted.single.tsx\",\"patterns\":[{\"include\":\"#jsx-entities\"}]},\"jsx-tag\":{\"begin\":\"(?=(<)\\\\\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\\\\\\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\\\\\\\.|-))(?=((<\\\\\\\\s*)|(\\\\\\\\s+))(?!\\\\\\\\?)|\\\\\\\\/?>))\",\"end\":\"(/>)|(?:(</)\\\\\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\\\\\\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\\\\\\\.|-))?\\\\\\\\s*(>))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.tsx\"},\"2\":{\"name\":\"punctuation.definition.tag.begin.tsx\"},\"3\":{\"name\":\"entity.name.tag.namespace.tsx\"},\"4\":{\"name\":\"punctuation.separator.namespace.tsx\"},\"5\":{\"name\":\"entity.name.tag.tsx\"},\"6\":{\"name\":\"support.class.component.tsx\"},\"7\":{\"name\":\"punctuation.definition.tag.end.tsx\"}},\"name\":\"meta.tag.tsx\",\"patterns\":[{\"begin\":\"(<)\\\\\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\\\\\\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\\\\\\\.|-))(?=((<\\\\\\\\s*)|(\\\\\\\\s+))(?!\\\\\\\\?)|\\\\\\\\/?>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.tsx\"},\"2\":{\"name\":\"entity.name.tag.namespace.tsx\"},\"3\":{\"name\":\"punctuation.separator.namespace.tsx\"},\"4\":{\"name\":\"entity.name.tag.tsx\"},\"5\":{\"name\":\"support.class.component.tsx\"}},\"end\":\"(?=[/]?>)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-arguments\"},{\"include\":\"#jsx-tag-attributes\"}]},{\"begin\":\"(>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.tsx\"}},\"contentName\":\"meta.jsx.children.tsx\",\"end\":\"(?=</)\",\"patterns\":[{\"include\":\"#jsx-children\"}]}]},\"jsx-tag-attribute-assignment\":{\"match\":\"=(?=\\\\\\\\s*(?:'|\\\\\"|{|/\\\\\\\\*|//|\\\\\\\\n))\",\"name\":\"keyword.operator.assignment.tsx\"},\"jsx-tag-attribute-name\":{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.namespace.tsx\"},\"2\":{\"name\":\"punctuation.separator.namespace.tsx\"},\"3\":{\"name\":\"entity.other.attribute-name.tsx\"}},\"match\":\"\\\\\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(:))?([_$[:alpha:]][-_$[:alnum:]]*)(?=\\\\\\\\s|=|/?>|/\\\\\\\\*|//)\"},\"jsx-tag-attributes\":{\"begin\":\"\\\\\\\\s+\",\"end\":\"(?=[/]?>)\",\"name\":\"meta.tag.attributes.tsx\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#jsx-tag-attribute-name\"},{\"include\":\"#jsx-tag-attribute-assignment\"},{\"include\":\"#jsx-string-double-quoted\"},{\"include\":\"#jsx-string-single-quoted\"},{\"include\":\"#jsx-evaluated-code\"},{\"include\":\"#jsx-tag-attributes-illegal\"}]},\"jsx-tag-attributes-illegal\":{\"match\":\"\\\\\\\\S+\",\"name\":\"invalid.illegal.attribute.tsx\"},\"jsx-tag-in-expression\":{\"begin\":\"(?<!\\\\\\\\+\\\\\\\\+|--)(?<=[({\\\\\\\\[,?=>:*]|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\?|\\\\\\\\*\\\\\\\\/|^await|[^\\\\\\\\._$[:alnum:]]await|^return|[^\\\\\\\\._$[:alnum:]]return|^default|[^\\\\\\\\._$[:alnum:]]default|^yield|[^\\\\\\\\._$[:alnum:]]yield|^)\\\\\\\\s*(?!<\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*((\\\\\\\\s+extends\\\\\\\\s+[^=>])|,))(?=(<)\\\\\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\\\\\\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\\\\\\\.|-))(?=((<\\\\\\\\s*)|(\\\\\\\\s+))(?!\\\\\\\\?)|\\\\\\\\/?>))\",\"end\":\"(?!(<)\\\\\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\\\\\\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\\\\\\\.|-))(?=((<\\\\\\\\s*)|(\\\\\\\\s+))(?!\\\\\\\\?)|\\\\\\\\/?>))\",\"patterns\":[{\"include\":\"#jsx-tag\"}]},\"jsx-tag-without-attributes\":{\"begin\":\"(<)\\\\\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\\\\\\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\\\\\\\.|-))?\\\\\\\\s*(>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.tsx\"},\"2\":{\"name\":\"entity.name.tag.namespace.tsx\"},\"3\":{\"name\":\"punctuation.separator.namespace.tsx\"},\"4\":{\"name\":\"entity.name.tag.tsx\"},\"5\":{\"name\":\"support.class.component.tsx\"},\"6\":{\"name\":\"punctuation.definition.tag.end.tsx\"}},\"contentName\":\"meta.jsx.children.tsx\",\"end\":\"(</)\\\\\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\\\\\\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\\\\\\\.|-))?\\\\\\\\s*(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.tsx\"},\"2\":{\"name\":\"entity.name.tag.namespace.tsx\"},\"3\":{\"name\":\"punctuation.separator.namespace.tsx\"},\"4\":{\"name\":\"entity.name.tag.tsx\"},\"5\":{\"name\":\"support.class.component.tsx\"},\"6\":{\"name\":\"punctuation.definition.tag.end.tsx\"}},\"name\":\"meta.tag.without-attributes.tsx\",\"patterns\":[{\"include\":\"#jsx-children\"}]},\"jsx-tag-without-attributes-in-expression\":{\"begin\":\"(?<!\\\\\\\\+\\\\\\\\+|--)(?<=[({\\\\\\\\[,?=>:*]|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\?|\\\\\\\\*\\\\\\\\/|^await|[^\\\\\\\\._$[:alnum:]]await|^return|[^\\\\\\\\._$[:alnum:]]return|^default|[^\\\\\\\\._$[:alnum:]]default|^yield|[^\\\\\\\\._$[:alnum:]]yield|^)\\\\\\\\s*(?=(<)\\\\\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\\\\\\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\\\\\\\.|-))?\\\\\\\\s*(>))\",\"end\":\"(?!(<)\\\\\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\\\\\\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\\\\\\\.|-))?\\\\\\\\s*(>))\",\"patterns\":[{\"include\":\"#jsx-tag-without-attributes\"}]},\"label\":{\"patterns\":[{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(:)(?=\\\\\\\\s*\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.label.tsx\"},\"2\":{\"name\":\"punctuation.separator.label.tsx\"}},\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#decl-block\"}]},{\"captures\":{\"1\":{\"name\":\"entity.name.label.tsx\"},\"2\":{\"name\":\"punctuation.separator.label.tsx\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(:)\"}]},\"literal\":{\"patterns\":[{\"include\":\"#numeric-literal\"},{\"include\":\"#boolean-literal\"},{\"include\":\"#null-literal\"},{\"include\":\"#undefined-literal\"},{\"include\":\"#numericConstant-literal\"},{\"include\":\"#array-literal\"},{\"include\":\"#this-literal\"},{\"include\":\"#super-literal\"}]},\"method-declaration\":{\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:\\\\\\\\b(override)\\\\\\\\s+)?(?:\\\\\\\\b(public|private|protected)\\\\\\\\s+)?(?:\\\\\\\\b(abstract)\\\\\\\\s+)?(?:\\\\\\\\b(async)\\\\\\\\s+)?\\\\\\\\s*\\\\\\\\b(constructor)\\\\\\\\b(?!:)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.tsx\"},\"2\":{\"name\":\"storage.modifier.tsx\"},\"3\":{\"name\":\"storage.modifier.tsx\"},\"4\":{\"name\":\"storage.modifier.async.tsx\"},\"5\":{\"name\":\"storage.type.tsx\"}},\"end\":\"(?=\\\\\\\\}|;|,|$)|(?<=\\\\\\\\})\",\"name\":\"meta.method.declaration.tsx\",\"patterns\":[{\"include\":\"#method-declaration-name\"},{\"include\":\"#function-body\"}]},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:\\\\\\\\b(override)\\\\\\\\s+)?(?:\\\\\\\\b(public|private|protected)\\\\\\\\s+)?(?:\\\\\\\\b(abstract)\\\\\\\\s+)?(?:\\\\\\\\b(async)\\\\\\\\s+)?(?:(?:\\\\\\\\s*\\\\\\\\b(new)\\\\\\\\b(?!:)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(?:(\\\\\\\\*)\\\\\\\\s*)?)(?=\\\\\\\\s*((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*))?[\\\\\\\\(])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.tsx\"},\"2\":{\"name\":\"storage.modifier.tsx\"},\"3\":{\"name\":\"storage.modifier.tsx\"},\"4\":{\"name\":\"storage.modifier.async.tsx\"},\"5\":{\"name\":\"keyword.operator.new.tsx\"},\"6\":{\"name\":\"keyword.generator.asterisk.tsx\"}},\"end\":\"(?=\\\\\\\\}|;|,|$)|(?<=\\\\\\\\})\",\"name\":\"meta.method.declaration.tsx\",\"patterns\":[{\"include\":\"#method-declaration-name\"},{\"include\":\"#function-body\"}]},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:\\\\\\\\b(override)\\\\\\\\s+)?(?:\\\\\\\\b(public|private|protected)\\\\\\\\s+)?(?:\\\\\\\\b(abstract)\\\\\\\\s+)?(?:\\\\\\\\b(async)\\\\\\\\s+)?(?:\\\\\\\\b(get|set)\\\\\\\\s+)?(?:(\\\\\\\\*)\\\\\\\\s*)?(?=\\\\\\\\s*(((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(\\\\\\\\??))\\\\\\\\s*((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*))?[\\\\\\\\(])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.tsx\"},\"2\":{\"name\":\"storage.modifier.tsx\"},\"3\":{\"name\":\"storage.modifier.tsx\"},\"4\":{\"name\":\"storage.modifier.async.tsx\"},\"5\":{\"name\":\"storage.type.property.tsx\"},\"6\":{\"name\":\"keyword.generator.asterisk.tsx\"}},\"end\":\"(?=\\\\\\\\}|;|,|$)|(?<=\\\\\\\\})\",\"name\":\"meta.method.declaration.tsx\",\"patterns\":[{\"include\":\"#method-declaration-name\"},{\"include\":\"#function-body\"}]}]},\"method-declaration-name\":{\"begin\":\"(?=((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(\\\\\\\\??)\\\\\\\\s*[\\\\\\\\(\\\\\\\\<])\",\"end\":\"(?=\\\\\\\\(|\\\\\\\\<)\",\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#array-literal\"},{\"include\":\"#numeric-literal\"},{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"meta.definition.method.tsx entity.name.function.tsx\"},{\"match\":\"\\\\\\\\?\",\"name\":\"keyword.operator.optional.tsx\"}]},\"namespace-declaration\":{\"begin\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(namespace|module)\\\\\\\\s+(?=[_$[:alpha:]\\\\\"'\\`]))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.tsx\"},\"2\":{\"name\":\"storage.modifier.tsx\"},\"3\":{\"name\":\"storage.type.namespace.tsx\"}},\"end\":\"(?<=\\\\\\\\})|(?=;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"name\":\"meta.namespace.declaration.tsx\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"name\":\"entity.name.type.module.tsx\"},{\"include\":\"#punctuation-accessor\"},{\"include\":\"#decl-block\"}]},\"new-expr\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(new)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.new.tsx\"}},\"end\":\"(?<=\\\\\\\\))|(?=[;),}\\\\\\\\]:?\\\\\\\\-\\\\\\\\+\\\\\\\\>]|\\\\\\\\|\\\\\\\\||\\\\\\\\&\\\\\\\\&|\\\\\\\\!\\\\\\\\=\\\\\\\\=|$|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))new(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))function((\\\\\\\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\s*[\\\\\\\\(]))))\",\"name\":\"new.expr.tsx\",\"patterns\":[{\"include\":\"#expression\"}]},\"null-literal\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))null(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.null.tsx\"},\"numeric-literal\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.numeric.bigint.tsx\"}},\"match\":\"\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.numeric.hex.tsx\"},{\"captures\":{\"1\":{\"name\":\"storage.type.numeric.bigint.tsx\"}},\"match\":\"\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.numeric.binary.tsx\"},{\"captures\":{\"1\":{\"name\":\"storage.type.numeric.bigint.tsx\"}},\"match\":\"\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.numeric.octal.tsx\"},{\"captures\":{\"0\":{\"name\":\"constant.numeric.decimal.tsx\"},\"1\":{\"name\":\"meta.delimiter.decimal.period.tsx\"},\"2\":{\"name\":\"storage.type.numeric.bigint.tsx\"},\"3\":{\"name\":\"meta.delimiter.decimal.period.tsx\"},\"4\":{\"name\":\"storage.type.numeric.bigint.tsx\"},\"5\":{\"name\":\"meta.delimiter.decimal.period.tsx\"},\"6\":{\"name\":\"storage.type.numeric.bigint.tsx\"},\"7\":{\"name\":\"storage.type.numeric.bigint.tsx\"},\"8\":{\"name\":\"meta.delimiter.decimal.period.tsx\"},\"9\":{\"name\":\"storage.type.numeric.bigint.tsx\"},\"10\":{\"name\":\"meta.delimiter.decimal.period.tsx\"},\"11\":{\"name\":\"storage.type.numeric.bigint.tsx\"},\"12\":{\"name\":\"meta.delimiter.decimal.period.tsx\"},\"13\":{\"name\":\"storage.type.numeric.bigint.tsx\"},\"14\":{\"name\":\"storage.type.numeric.bigint.tsx\"}},\"match\":\"(?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$)\"}]},\"numericConstant-literal\":{\"patterns\":[{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))NaN(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.nan.tsx\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Infinity(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.infinity.tsx\"}]},\"object-binding-element\":{\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?=((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(:))\",\"end\":\"(?=,|\\\\\\\\})\",\"patterns\":[{\"include\":\"#object-binding-element-propertyName\"},{\"include\":\"#binding-element\"}]},{\"include\":\"#object-binding-pattern\"},{\"include\":\"#destructuring-variable-rest\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#punctuation-comma\"}]},\"object-binding-element-const\":{\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?=((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(:))\",\"end\":\"(?=,|\\\\\\\\})\",\"patterns\":[{\"include\":\"#object-binding-element-propertyName\"},{\"include\":\"#binding-element-const\"}]},{\"include\":\"#object-binding-pattern-const\"},{\"include\":\"#destructuring-variable-rest-const\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#punctuation-comma\"}]},\"object-binding-element-propertyName\":{\"begin\":\"(?=((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(:))\",\"end\":\"(:)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.destructuring.tsx\"}},\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#array-literal\"},{\"include\":\"#numeric-literal\"},{\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"name\":\"variable.object.property.tsx\"}]},\"object-binding-pattern\":{\"begin\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.tsx\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.object.tsx\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.object.tsx\"}},\"patterns\":[{\"include\":\"#object-binding-element\"}]},\"object-binding-pattern-const\":{\"begin\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.tsx\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.object.tsx\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.object.tsx\"}},\"patterns\":[{\"include\":\"#object-binding-element-const\"}]},\"object-identifiers\":{\"patterns\":[{\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)(?=\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*prototype\\\\\\\\b(?!\\\\\\\\$))\",\"name\":\"support.class.tsx\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.tsx\"},\"2\":{\"name\":\"punctuation.accessor.optional.tsx\"},\"3\":{\"name\":\"variable.other.constant.object.property.tsx\"},\"4\":{\"name\":\"variable.other.object.property.tsx\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(?:(\\\\\\\\#?[[:upper:]][_$[:digit:][:upper:]]*)|(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))(?=\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)\"},{\"captures\":{\"1\":{\"name\":\"variable.other.constant.object.tsx\"},\"2\":{\"name\":\"variable.other.object.tsx\"}},\"match\":\"(?:([[:upper:]][_$[:digit:][:upper:]]*)|([_$[:alpha:]][_$[:alnum:]]*))(?=\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)\"}]},\"object-literal\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.tsx\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.tsx\"}},\"name\":\"meta.objectliteral.tsx\",\"patterns\":[{\"include\":\"#object-member\"}]},\"object-literal-method-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:\\\\\\\\b(async)\\\\\\\\s+)?(?:\\\\\\\\b(get|set)\\\\\\\\s+)?(?:(\\\\\\\\*)\\\\\\\\s*)?(?=\\\\\\\\s*(((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(\\\\\\\\??))\\\\\\\\s*((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*))?[\\\\\\\\(])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.tsx\"},\"2\":{\"name\":\"storage.type.property.tsx\"},\"3\":{\"name\":\"keyword.generator.asterisk.tsx\"}},\"end\":\"(?=\\\\\\\\}|;|,)|(?<=\\\\\\\\})\",\"name\":\"meta.method.declaration.tsx\",\"patterns\":[{\"include\":\"#method-declaration-name\"},{\"include\":\"#function-body\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:\\\\\\\\b(async)\\\\\\\\s+)?(?:\\\\\\\\b(get|set)\\\\\\\\s+)?(?:(\\\\\\\\*)\\\\\\\\s*)?(?=\\\\\\\\s*(((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(\\\\\\\\??))\\\\\\\\s*((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*))?[\\\\\\\\(])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.tsx\"},\"2\":{\"name\":\"storage.type.property.tsx\"},\"3\":{\"name\":\"keyword.generator.asterisk.tsx\"}},\"end\":\"(?=\\\\\\\\(|\\\\\\\\<)\",\"patterns\":[{\"include\":\"#method-declaration-name\"}]}]},\"object-member\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#object-literal-method-declaration\"},{\"begin\":\"(?=\\\\\\\\[)\",\"end\":\"(?=:)|((?<=[\\\\\\\\]])(?=\\\\\\\\s*[\\\\\\\\(\\\\\\\\<]))\",\"name\":\"meta.object.member.tsx meta.object-literal.key.tsx\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#array-literal\"}]},{\"begin\":\"(?=[\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`])\",\"end\":\"(?=:)|((?<=[\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`])(?=((\\\\\\\\s*[\\\\\\\\(\\\\\\\\<,}])|(\\\\\\\\s+(as|satisifies)\\\\\\\\s+))))\",\"name\":\"meta.object.member.tsx meta.object-literal.key.tsx\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"}]},{\"begin\":\"(?=(\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$)))\",\"end\":\"(?=:)|(?=\\\\\\\\s*([\\\\\\\\(\\\\\\\\<,}])|(\\\\\\\\s+as|satisifies\\\\\\\\s+))\",\"name\":\"meta.object.member.tsx meta.object-literal.key.tsx\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#numeric-literal\"}]},{\"begin\":\"(?<=[\\\\\\\\]\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`])(?=\\\\\\\\s*[\\\\\\\\(\\\\\\\\<])\",\"end\":\"(?=\\\\\\\\}|;|,)|(?<=\\\\\\\\})\",\"name\":\"meta.method.declaration.tsx\",\"patterns\":[{\"include\":\"#function-body\"}]},{\"captures\":{\"0\":{\"name\":\"meta.object-literal.key.tsx\"},\"1\":{\"name\":\"constant.numeric.decimal.tsx\"}},\"match\":\"(?![_$[:alpha:]])([[:digit:]]+)\\\\\\\\s*(?=(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*:)\",\"name\":\"meta.object.member.tsx\"},{\"captures\":{\"0\":{\"name\":\"meta.object-literal.key.tsx\"},\"1\":{\"name\":\"entity.name.function.tsx\"}},\"match\":\"(?:([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?=(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*:(\\\\\\\\s*\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/)*\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>))))))\",\"name\":\"meta.object.member.tsx\"},{\"captures\":{\"0\":{\"name\":\"meta.object-literal.key.tsx\"}},\"match\":\"(?:[_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?=(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*:)\",\"name\":\"meta.object.member.tsx\"},{\"begin\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.spread.tsx\"}},\"end\":\"(?=,|\\\\\\\\})\",\"name\":\"meta.object.member.tsx\",\"patterns\":[{\"include\":\"#expression\"}]},{\"captures\":{\"1\":{\"name\":\"variable.other.readwrite.tsx\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?=,|\\\\\\\\}|$|\\\\\\\\/\\\\\\\\/|\\\\\\\\/\\\\\\\\*)\",\"name\":\"meta.object.member.tsx\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.as.tsx\"},\"2\":{\"name\":\"storage.modifier.tsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(as)\\\\\\\\s+(const)(?=\\\\\\\\s*([,}]|$))\",\"name\":\"meta.object.member.tsx\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(as)|(satisfies))\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.as.tsx\"},\"2\":{\"name\":\"keyword.control.satisfies.tsx\"}},\"end\":\"(?=[;),}\\\\\\\\]:?\\\\\\\\-\\\\\\\\+\\\\\\\\>]|\\\\\\\\|\\\\\\\\||\\\\\\\\&\\\\\\\\&|\\\\\\\\!\\\\\\\\=\\\\\\\\=|$|^|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(as|satisifies)\\\\\\\\s+))\",\"name\":\"meta.object.member.tsx\",\"patterns\":[{\"include\":\"#type\"}]},{\"begin\":\"(?=[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=)\",\"end\":\"(?=,|\\\\\\\\}|$|\\\\\\\\/\\\\\\\\/|\\\\\\\\/\\\\\\\\*)\",\"name\":\"meta.object.member.tsx\",\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\":\",\"beginCaptures\":{\"0\":{\"name\":\"meta.object-literal.key.tsx punctuation.separator.key-value.tsx\"}},\"end\":\"(?=,|\\\\\\\\})\",\"name\":\"meta.object.member.tsx\",\"patterns\":[{\"begin\":\"(?<=:)\\\\\\\\s*(async)?(?=\\\\\\\\s*(<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)\\\\\\\\(\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.tsx\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"include\":\"#type-parameters\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.tsx\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.tsx\"}},\"patterns\":[{\"include\":\"#expression-inside-possibly-arrow-parens\"}]}]},{\"begin\":\"(?<=:)\\\\\\\\s*(async)?\\\\\\\\s*(\\\\\\\\()(?=\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.tsx\"},\"2\":{\"name\":\"meta.brace.round.tsx\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.tsx\"}},\"patterns\":[{\"include\":\"#expression-inside-possibly-arrow-parens\"}]},{\"begin\":\"(?<=:)\\\\\\\\s*(async)?\\\\\\\\s*(?=\\\\\\\\<\\\\\\\\s*$)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.tsx\"}},\"end\":\"(?<=\\\\\\\\>)\",\"patterns\":[{\"include\":\"#type-parameters\"}]},{\"begin\":\"(?<=\\\\\\\\>)\\\\\\\\s*(\\\\\\\\()(?=\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))\",\"beginCaptures\":{\"1\":{\"name\":\"meta.brace.round.tsx\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.tsx\"}},\"patterns\":[{\"include\":\"#expression-inside-possibly-arrow-parens\"}]},{\"include\":\"#possibly-arrow-return-type\"},{\"include\":\"#expression\"}]},{\"include\":\"#punctuation-comma\"},{\"include\":\"#decl-block\"}]},\"parameter-array-binding-pattern\":{\"begin\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.tsx\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.array.tsx\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.array.tsx\"}},\"patterns\":[{\"include\":\"#parameter-binding-element\"},{\"include\":\"#punctuation-comma\"}]},\"parameter-binding-element\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#regex\"},{\"include\":\"#parameter-object-binding-pattern\"},{\"include\":\"#parameter-array-binding-pattern\"},{\"include\":\"#destructuring-parameter-rest\"},{\"include\":\"#variable-initializer\"}]},\"parameter-name\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.modifier.tsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(override|public|protected|private|readonly)\\\\\\\\s+(?=(override|public|protected|private|readonly)\\\\\\\\s+)\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.tsx\"},\"2\":{\"name\":\"keyword.operator.rest.tsx\"},\"3\":{\"name\":\"entity.name.function.tsx variable.language.this.tsx\"},\"4\":{\"name\":\"entity.name.function.tsx\"},\"5\":{\"name\":\"keyword.operator.optional.tsx\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(override|public|private|protected|readonly)\\\\\\\\s+)?(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*(\\\\\\\\??)(?=\\\\\\\\s*(=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))))|(:\\\\\\\\s*((<)|([(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>)))))))|(:\\\\\\\\s*(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Function(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(:\\\\\\\\s*((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))))|(:\\\\\\\\s*(=>|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>))))))\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.tsx\"},\"2\":{\"name\":\"keyword.operator.rest.tsx\"},\"3\":{\"name\":\"variable.parameter.tsx variable.language.this.tsx\"},\"4\":{\"name\":\"variable.parameter.tsx\"},\"5\":{\"name\":\"keyword.operator.optional.tsx\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(override|public|private|protected|readonly)\\\\\\\\s+)?(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*(\\\\\\\\??)\"}]},\"parameter-object-binding-element\":{\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?=((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(:))\",\"end\":\"(?=,|\\\\\\\\})\",\"patterns\":[{\"include\":\"#object-binding-element-propertyName\"},{\"include\":\"#parameter-binding-element\"},{\"include\":\"#paren-expression\"}]},{\"include\":\"#parameter-object-binding-pattern\"},{\"include\":\"#destructuring-parameter-rest\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#punctuation-comma\"}]},\"parameter-object-binding-pattern\":{\"begin\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.tsx\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.object.tsx\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.object.tsx\"}},\"patterns\":[{\"include\":\"#parameter-object-binding-element\"}]},\"parameter-type-annotation\":{\"patterns\":[{\"begin\":\"(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.tsx\"}},\"end\":\"(?=[,)])|(?==[^>])\",\"name\":\"meta.type.annotation.tsx\",\"patterns\":[{\"include\":\"#type\"}]}]},\"paren-expression\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.tsx\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.tsx\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"paren-expression-possibly-arrow\":{\"patterns\":[{\"begin\":\"(?<=[(=,])\\\\\\\\s*(async)?(?=\\\\\\\\s*((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*))?\\\\\\\\(\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.tsx\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"include\":\"#paren-expression-possibly-arrow-with-typeparameters\"}]},{\"begin\":\"(?<=[(=,]|=>|^return|[^\\\\\\\\._$[:alnum:]]return)\\\\\\\\s*(async)?(?=\\\\\\\\s*((((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*))?\\\\\\\\()|(<)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)))\\\\\\\\s*$)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.tsx\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"include\":\"#paren-expression-possibly-arrow-with-typeparameters\"}]},{\"include\":\"#possibly-arrow-return-type\"}]},\"paren-expression-possibly-arrow-with-typeparameters\":{\"patterns\":[{\"include\":\"#type-parameters\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.tsx\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.tsx\"}},\"patterns\":[{\"include\":\"#expression-inside-possibly-arrow-parens\"}]}]},\"possibly-arrow-return-type\":{\"begin\":\"(?<=\\\\\\\\)|^)\\\\\\\\s*(:)(?=\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*=>)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.arrow.tsx meta.return.type.arrow.tsx keyword.operator.type.annotation.tsx\"}},\"contentName\":\"meta.arrow.tsx meta.return.type.arrow.tsx\",\"end\":\"(?==>|\\\\\\\\{|(^\\\\\\\\s*(export|function|class|interface|let|var|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|const|import|enum|namespace|module|type|abstract|declare)\\\\\\\\s+))\",\"patterns\":[{\"include\":\"#arrow-return-type-body\"}]},\"property-accessor\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(accessor|get|set)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.type.property.tsx\"},\"punctuation-accessor\":{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.tsx\"},\"2\":{\"name\":\"punctuation.accessor.optional.tsx\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\"},\"punctuation-comma\":{\"match\":\",\",\"name\":\"punctuation.separator.comma.tsx\"},\"punctuation-semicolon\":{\"match\":\";\",\"name\":\"punctuation.terminator.statement.tsx\"},\"qstring-double\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.tsx\"}},\"end\":\"(\\\\\")|((?:[^\\\\\\\\\\\\\\\\\\\\\\\\n])$)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.tsx\"},\"2\":{\"name\":\"invalid.illegal.newline.tsx\"}},\"name\":\"string.quoted.double.tsx\",\"patterns\":[{\"include\":\"#string-character-escape\"}]},\"qstring-single\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.tsx\"}},\"end\":\"(\\\\\\\\')|((?:[^\\\\\\\\\\\\\\\\\\\\\\\\n])$)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.tsx\"},\"2\":{\"name\":\"invalid.illegal.newline.tsx\"}},\"name\":\"string.quoted.single.tsx\",\"patterns\":[{\"include\":\"#string-character-escape\"}]},\"regex\":{\"patterns\":[{\"begin\":\"(?<!\\\\\\\\+\\\\\\\\+|--|})(?<=[=(:,\\\\\\\\[?+!]|^return|[^\\\\\\\\._$[:alnum:]]return|^case|[^\\\\\\\\._$[:alnum:]]case|=>|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\*\\\\\\\\/)\\\\\\\\s*(\\\\\\\\/)(?![\\\\\\\\/*])(?=(?:[^\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\\\[\\\\\\\\()]|\\\\\\\\\\\\\\\\.|\\\\\\\\[([^\\\\\\\\]\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)+\\\\\\\\]|\\\\\\\\(([^\\\\\\\\)\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)+\\\\\\\\))+\\\\\\\\/([dgimsuvy]+|(?![\\\\\\\\/\\\\\\\\*])|(?=\\\\\\\\/\\\\\\\\*))(?!\\\\\\\\s*[a-zA-Z0-9_$]))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.tsx\"}},\"end\":\"(/)([dgimsuvy]*)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.tsx\"},\"2\":{\"name\":\"keyword.other.tsx\"}},\"name\":\"string.regexp.tsx\",\"patterns\":[{\"include\":\"#regexp\"}]},{\"begin\":\"((?<![_$[:alnum:])\\\\\\\\]]|\\\\\\\\+\\\\\\\\+|--|}|\\\\\\\\*\\\\\\\\/)|((?<=^return|[^\\\\\\\\._$[:alnum:]]return|^case|[^\\\\\\\\._$[:alnum:]]case))\\\\\\\\s*)\\\\\\\\/(?![\\\\\\\\/*])(?=(?:[^\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\\\[]|\\\\\\\\\\\\\\\\.|\\\\\\\\[([^\\\\\\\\]\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\])+\\\\\\\\/([dgimsuvy]+|(?![\\\\\\\\/\\\\\\\\*])|(?=\\\\\\\\/\\\\\\\\*))(?!\\\\\\\\s*[a-zA-Z0-9_$]))\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.tsx\"}},\"end\":\"(/)([dgimsuvy]*)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.tsx\"},\"2\":{\"name\":\"keyword.other.tsx\"}},\"name\":\"string.regexp.tsx\",\"patterns\":[{\"include\":\"#regexp\"}]}]},\"regex-character-class\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[wWsSdDtrnvf]|\\\\\\\\.\",\"name\":\"constant.other.character-class.regexp\"},{\"match\":\"\\\\\\\\\\\\\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})\",\"name\":\"constant.character.numeric.regexp\"},{\"match\":\"\\\\\\\\\\\\\\\\c[A-Z]\",\"name\":\"constant.character.control.regexp\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.backslash.regexp\"}]},\"regexp\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[bB]|\\\\\\\\^|\\\\\\\\$\",\"name\":\"keyword.control.anchor.regexp\"},{\"captures\":{\"0\":{\"name\":\"keyword.other.back-reference.regexp\"},\"1\":{\"name\":\"variable.other.regexp\"}},\"match\":\"\\\\\\\\\\\\\\\\[1-9]\\\\\\\\d*|\\\\\\\\\\\\\\\\k<([a-zA-Z_$][\\\\\\\\w$]*)>\"},{\"match\":\"[?+*]|\\\\\\\\{(\\\\\\\\d+,\\\\\\\\d+|\\\\\\\\d+,|,\\\\\\\\d+|\\\\\\\\d+)\\\\\\\\}\\\\\\\\??\",\"name\":\"keyword.operator.quantifier.regexp\"},{\"match\":\"\\\\\\\\|\",\"name\":\"keyword.operator.or.regexp\"},{\"begin\":\"(\\\\\\\\()((\\\\\\\\?=)|(\\\\\\\\?!)|(\\\\\\\\?<=)|(\\\\\\\\?<!))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.group.regexp\"},\"2\":{\"name\":\"punctuation.definition.group.assertion.regexp\"},\"3\":{\"name\":\"meta.assertion.look-ahead.regexp\"},\"4\":{\"name\":\"meta.assertion.negative-look-ahead.regexp\"},\"5\":{\"name\":\"meta.assertion.look-behind.regexp\"},\"6\":{\"name\":\"meta.assertion.negative-look-behind.regexp\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.group.regexp\"}},\"name\":\"meta.group.assertion.regexp\",\"patterns\":[{\"include\":\"#regexp\"}]},{\"begin\":\"\\\\\\\\((?:(\\\\\\\\?:)|(?:\\\\\\\\?<([a-zA-Z_$][\\\\\\\\w$]*)>))?\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.regexp\"},\"1\":{\"name\":\"punctuation.definition.group.no-capture.regexp\"},\"2\":{\"name\":\"variable.other.regexp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.regexp\"}},\"name\":\"meta.group.regexp\",\"patterns\":[{\"include\":\"#regexp\"}]},{\"begin\":\"(\\\\\\\\[)(\\\\\\\\^)?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.character-class.regexp\"},\"2\":{\"name\":\"keyword.operator.negation.regexp\"}},\"end\":\"(\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.character-class.regexp\"}},\"name\":\"constant.other.character-class.set.regexp\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.character.numeric.regexp\"},\"2\":{\"name\":\"constant.character.control.regexp\"},\"3\":{\"name\":\"constant.character.escape.backslash.regexp\"},\"4\":{\"name\":\"constant.character.numeric.regexp\"},\"5\":{\"name\":\"constant.character.control.regexp\"},\"6\":{\"name\":\"constant.character.escape.backslash.regexp\"}},\"match\":\"(?:.|(\\\\\\\\\\\\\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\\\\\\\\\\\\\c[A-Z])|(\\\\\\\\\\\\\\\\.))\\\\\\\\-(?:[^\\\\\\\\]\\\\\\\\\\\\\\\\]|(\\\\\\\\\\\\\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\\\\\\\\\\\\\c[A-Z])|(\\\\\\\\\\\\\\\\.))\",\"name\":\"constant.other.character-class.range.regexp\"},{\"include\":\"#regex-character-class\"}]},{\"include\":\"#regex-character-class\"}]},\"return-type\":{\"patterns\":[{\"begin\":\"(?<=\\\\\\\\))\\\\\\\\s*(:)(?=\\\\\\\\s*\\\\\\\\S)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.tsx\"}},\"end\":\"(?<![:|&])(?=$|^|[{};,]|//)\",\"name\":\"meta.return.type.tsx\",\"patterns\":[{\"include\":\"#return-type-core\"}]},{\"begin\":\"(?<=\\\\\\\\))\\\\\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.tsx\"}},\"end\":\"(?<![:|&])((?=[{};,]|//|^\\\\\\\\s*$)|((?<=\\\\\\\\S)(?=\\\\\\\\s*$)))\",\"name\":\"meta.return.type.tsx\",\"patterns\":[{\"include\":\"#return-type-core\"}]}]},\"return-type-core\":{\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?<=[:|&])(?=\\\\\\\\s*\\\\\\\\{)\",\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#type-object\"}]},{\"include\":\"#type-predicate-operator\"},{\"include\":\"#type\"}]},\"shebang\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.tsx\"}},\"match\":\"\\\\\\\\A(#!).*(?=$)\",\"name\":\"comment.line.shebang.tsx\"},\"single-line-comment-consuming-line-ending\":{\"begin\":\"(^[ \\\\\\\\t]+)?((//)(?:\\\\\\\\s*((@)internal)(?=\\\\\\\\s|$))?)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.tsx\"},\"2\":{\"name\":\"comment.line.double-slash.tsx\"},\"3\":{\"name\":\"punctuation.definition.comment.tsx\"},\"4\":{\"name\":\"storage.type.internaldeclaration.tsx\"},\"5\":{\"name\":\"punctuation.decorator.internaldeclaration.tsx\"}},\"contentName\":\"comment.line.double-slash.tsx\",\"end\":\"(?=^)\"},\"statements\":{\"patterns\":[{\"include\":\"#declaration\"},{\"include\":\"#control-statement\"},{\"include\":\"#after-operator-block-as-object-literal\"},{\"include\":\"#decl-block\"},{\"include\":\"#label\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-semicolon\"},{\"include\":\"#string\"},{\"include\":\"#comment\"}]},\"string\":{\"patterns\":[{\"include\":\"#qstring-single\"},{\"include\":\"#qstring-double\"},{\"include\":\"#template\"}]},\"string-character-escape\":{\"match\":\"\\\\\\\\\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\\\\\\\{[0-9A-Fa-f]+\\\\\\\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)\",\"name\":\"constant.character.escape.tsx\"},\"super-literal\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))super\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"variable.language.super.tsx\"},\"support-function-call-identifiers\":{\"patterns\":[{\"include\":\"#literal\"},{\"include\":\"#support-objects\"},{\"include\":\"#object-identifiers\"},{\"include\":\"#punctuation-accessor\"},{\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))import(?=\\\\\\\\s*[\\\\\\\\(]\\\\\\\\s*[\\\\\\\\\\\\\"\\\\\\\\'\\\\\\\\\\`]))\",\"name\":\"keyword.operator.expression.import.tsx\"}]},\"support-objects\":{\"patterns\":[{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(arguments)\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"variable.language.arguments.tsx\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(Promise)\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"support.class.promise.tsx\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.import.tsx\"},\"2\":{\"name\":\"punctuation.accessor.tsx\"},\"3\":{\"name\":\"punctuation.accessor.optional.tsx\"},\"4\":{\"name\":\"support.variable.property.importmeta.tsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(import)\\\\\\\\s*(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(meta)\\\\\\\\b(?!\\\\\\\\$)\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.new.tsx\"},\"2\":{\"name\":\"punctuation.accessor.tsx\"},\"3\":{\"name\":\"punctuation.accessor.optional.tsx\"},\"4\":{\"name\":\"support.variable.property.target.tsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(new)\\\\\\\\s*(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(target)\\\\\\\\b(?!\\\\\\\\$)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.tsx\"},\"2\":{\"name\":\"punctuation.accessor.optional.tsx\"},\"3\":{\"name\":\"support.variable.property.tsx\"},\"4\":{\"name\":\"support.constant.tsx\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(?:(?:(constructor|length|prototype|__proto__)\\\\\\\\b(?!\\\\\\\\$|\\\\\\\\s*(<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\())|(?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\\\\\\\b(?!\\\\\\\\$)))\"},{\"captures\":{\"1\":{\"name\":\"support.type.object.module.tsx\"},\"2\":{\"name\":\"support.type.object.module.tsx\"},\"3\":{\"name\":\"punctuation.accessor.tsx\"},\"4\":{\"name\":\"punctuation.accessor.optional.tsx\"},\"5\":{\"name\":\"support.type.object.module.tsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(exports)|(module)(?:(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))(exports|id|filename|loaded|parent|children))?)\\\\\\\\b(?!\\\\\\\\$)\"}]},\"switch-statement\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?=\\\\\\\\bswitch\\\\\\\\s*\\\\\\\\()\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.tsx\"}},\"name\":\"switch-statement.expr.tsx\",\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(switch)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.switch.tsx\"},\"2\":{\"name\":\"meta.brace.round.tsx\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.tsx\"}},\"name\":\"switch-expression.expr.tsx\",\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.tsx\"}},\"end\":\"(?=\\\\\\\\})\",\"name\":\"switch-block.expr.tsx\",\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(case|default(?=:))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.switch.tsx\"}},\"end\":\"(?=:)\",\"name\":\"case-clause.expr.tsx\",\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\"(:)\\\\\\\\s*(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"case-clause.expr.tsx punctuation.definition.section.case-statement.tsx\"},\"2\":{\"name\":\"meta.block.tsx punctuation.definition.block.tsx\"}},\"contentName\":\"meta.block.tsx\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"meta.block.tsx punctuation.definition.block.tsx\"}},\"patterns\":[{\"include\":\"#statements\"}]},{\"captures\":{\"0\":{\"name\":\"case-clause.expr.tsx punctuation.definition.section.case-statement.tsx\"}},\"match\":\"(:)\"},{\"include\":\"#statements\"}]}]},\"template\":{\"patterns\":[{\"include\":\"#template-call\"},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)?(\\`)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.tagged-template.tsx\"},\"2\":{\"name\":\"string.template.tsx punctuation.definition.string.template.begin.tsx\"}},\"contentName\":\"string.template.tsx\",\"end\":\"\\`\",\"endCaptures\":{\"0\":{\"name\":\"string.template.tsx punctuation.definition.string.template.end.tsx\"}},\"patterns\":[{\"include\":\"#template-substitution-element\"},{\"include\":\"#string-character-escape\"}]}]},\"template-call\":{\"patterns\":[{\"begin\":\"(?=(([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*)*|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))(([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>)*(?<!=)\\\\\\\\>))*(?<!=)\\\\\\\\>)*(?<!=)>\\\\\\\\s*)?\\`)\",\"end\":\"(?=\\`)\",\"patterns\":[{\"begin\":\"(?=(([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*)*|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))\",\"end\":\"(?=(<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))(([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>)*(?<!=)\\\\\\\\>))*(?<!=)\\\\\\\\>)*(?<!=)>\\\\\\\\s*)?\\`)\",\"patterns\":[{\"include\":\"#support-function-call-identifiers\"},{\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"name\":\"entity.name.function.tagged-template.tsx\"}]},{\"include\":\"#type-arguments\"}]},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)?\\\\\\\\s*(?=(<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))(([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>)*(?<!=)\\\\\\\\>))*(?<!=)\\\\\\\\>)*(?<!=)>\\\\\\\\s*)\\`)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.tagged-template.tsx\"}},\"end\":\"(?=\\`)\",\"patterns\":[{\"include\":\"#type-arguments\"}]}]},\"template-substitution-element\":{\"begin\":\"\\\\\\\\$\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.begin.tsx\"}},\"contentName\":\"meta.embedded.line.tsx\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.end.tsx\"}},\"name\":\"meta.template.expression.tsx\",\"patterns\":[{\"include\":\"#expression\"}]},\"template-type\":{\"patterns\":[{\"include\":\"#template-call\"},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)?(\\`)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.tagged-template.tsx\"},\"2\":{\"name\":\"string.template.tsx punctuation.definition.string.template.begin.tsx\"}},\"contentName\":\"string.template.tsx\",\"end\":\"\\`\",\"endCaptures\":{\"0\":{\"name\":\"string.template.tsx punctuation.definition.string.template.end.tsx\"}},\"patterns\":[{\"include\":\"#template-type-substitution-element\"},{\"include\":\"#string-character-escape\"}]}]},\"template-type-substitution-element\":{\"begin\":\"\\\\\\\\$\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.begin.tsx\"}},\"contentName\":\"meta.embedded.line.tsx\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.end.tsx\"}},\"name\":\"meta.template.expression.tsx\",\"patterns\":[{\"include\":\"#type\"}]},\"ternary-expression\":{\"begin\":\"(?!\\\\\\\\?\\\\\\\\.\\\\\\\\s*[^[:digit:]])(\\\\\\\\?)(?!\\\\\\\\?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.ternary.tsx\"}},\"end\":\"\\\\\\\\s*(:)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.ternary.tsx\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"this-literal\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))this\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"variable.language.this.tsx\"},\"type\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-string\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#type-primitive\"},{\"include\":\"#type-builtin-literals\"},{\"include\":\"#type-parameters\"},{\"include\":\"#type-tuple\"},{\"include\":\"#type-object\"},{\"include\":\"#type-operators\"},{\"include\":\"#type-conditional\"},{\"include\":\"#type-fn-type-parameters\"},{\"include\":\"#type-paren-or-function-parameters\"},{\"include\":\"#type-function-return-type\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.tsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*\"},{\"include\":\"#type-name\"}]},\"type-alias-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(type)\\\\\\\\b\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.tsx\"},\"2\":{\"name\":\"storage.modifier.tsx\"},\"3\":{\"name\":\"storage.type.type.tsx\"},\"4\":{\"name\":\"entity.name.type.alias.tsx\"}},\"end\":\"(?=\\\\\\\\}|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"name\":\"meta.type.declaration.tsx\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-parameters\"},{\"begin\":\"(=)\\\\\\\\s*(intrinsic)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.tsx\"},\"2\":{\"name\":\"keyword.control.intrinsic.tsx\"}},\"end\":\"(?=\\\\\\\\}|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#type\"}]},{\"begin\":\"(=)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.tsx\"}},\"end\":\"(?=\\\\\\\\}|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#type\"}]}]},\"type-annotation\":{\"patterns\":[{\"begin\":\"(:)(?=\\\\\\\\s*\\\\\\\\S)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.tsx\"}},\"end\":\"(?<![:|&])(?!\\\\\\\\s*[|&]\\\\\\\\s+)((?=^|[,);\\\\\\\\}\\\\\\\\]]|//)|(?==[^>])|((?<=[\\\\\\\\}>\\\\\\\\]\\\\\\\\)]|[_$[:alpha:]])\\\\\\\\s*(?=\\\\\\\\{)))\",\"name\":\"meta.type.annotation.tsx\",\"patterns\":[{\"include\":\"#type\"}]},{\"begin\":\"(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.tsx\"}},\"end\":\"(?<![:|&])((?=[,);\\\\\\\\}\\\\\\\\]]|\\\\\\\\/\\\\\\\\/)|(?==[^>])|(?=^\\\\\\\\s*$)|((?<=[\\\\\\\\}>\\\\\\\\]\\\\\\\\)]|[_$[:alpha:]])\\\\\\\\s*(?=\\\\\\\\{)))\",\"name\":\"meta.type.annotation.tsx\",\"patterns\":[{\"include\":\"#type\"}]}]},\"type-arguments\":{\"begin\":\"\\\\\\\\<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.begin.tsx\"}},\"end\":\"\\\\\\\\>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.end.tsx\"}},\"name\":\"meta.type.parameters.tsx\",\"patterns\":[{\"include\":\"#type-arguments-body\"}]},\"type-arguments-body\":{\"patterns\":[{\"captures\":{\"0\":{\"name\":\"keyword.operator.type.tsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(_)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\"},{\"include\":\"#type\"},{\"include\":\"#punctuation-comma\"}]},\"type-builtin-literals\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"support.type.builtin.tsx\"},\"type-conditional\":{\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(extends)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.tsx\"}},\"end\":\"(?<=:)\",\"patterns\":[{\"begin\":\"\\\\\\\\?\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.ternary.tsx\"}},\"end\":\":\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.ternary.tsx\"}},\"patterns\":[{\"include\":\"#type\"}]},{\"include\":\"#type\"}]}]},\"type-fn-type-parameters\":{\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(abstract)\\\\\\\\s+)?(new)\\\\\\\\b(?=\\\\\\\\s*\\\\\\\\<)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.type.constructor.tsx storage.modifier.tsx\"},\"2\":{\"name\":\"meta.type.constructor.tsx keyword.control.new.tsx\"}},\"end\":\"(?<=>)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-parameters\"}]},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(abstract)\\\\\\\\s+)?(new)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.tsx\"},\"2\":{\"name\":\"keyword.control.new.tsx\"}},\"end\":\"(?<=\\\\\\\\))\",\"name\":\"meta.type.constructor.tsx\",\"patterns\":[{\"include\":\"#function-parameters\"}]},{\"begin\":\"((?=[(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>))))))\",\"end\":\"(?<=\\\\\\\\))\",\"name\":\"meta.type.function.tsx\",\"patterns\":[{\"include\":\"#function-parameters\"}]}]},\"type-function-return-type\":{\"patterns\":[{\"begin\":\"(=>)(?=\\\\\\\\s*\\\\\\\\S)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.arrow.tsx\"}},\"end\":\"(?<!=>)(?<![|&])(?=[,\\\\\\\\]\\\\\\\\)\\\\\\\\{\\\\\\\\}=;>:\\\\\\\\?]|//|$)\",\"name\":\"meta.type.function.return.tsx\",\"patterns\":[{\"include\":\"#type-function-return-type-core\"}]},{\"begin\":\"=>\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.function.arrow.tsx\"}},\"end\":\"(?<!=>)(?<![|&])((?=[,\\\\\\\\]\\\\\\\\)\\\\\\\\{\\\\\\\\}=;:\\\\\\\\?>]|//|^\\\\\\\\s*$)|((?<=\\\\\\\\S)(?=\\\\\\\\s*$)))\",\"name\":\"meta.type.function.return.tsx\",\"patterns\":[{\"include\":\"#type-function-return-type-core\"}]}]},\"type-function-return-type-core\":{\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?<==>)(?=\\\\\\\\s*\\\\\\\\{)\",\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#type-object\"}]},{\"include\":\"#type-predicate-operator\"},{\"include\":\"#type\"}]},\"type-infer\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.expression.infer.tsx\"},\"2\":{\"name\":\"entity.name.type.tsx\"},\"3\":{\"name\":\"keyword.operator.expression.extends.tsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(infer)\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))(?:\\\\\\\\s+(extends)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))?\",\"name\":\"meta.type.infer.tsx\"}]},\"type-name\":{\"patterns\":[{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(<)\",\"captures\":{\"1\":{\"name\":\"entity.name.type.module.tsx\"},\"2\":{\"name\":\"punctuation.accessor.tsx\"},\"3\":{\"name\":\"punctuation.accessor.optional.tsx\"},\"4\":{\"name\":\"meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx\"}},\"contentName\":\"meta.type.parameters.tsx\",\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx\"}},\"patterns\":[{\"include\":\"#type-arguments-body\"}]},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(<)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.type.tsx\"},\"2\":{\"name\":\"meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx\"}},\"contentName\":\"meta.type.parameters.tsx\",\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx\"}},\"patterns\":[{\"include\":\"#type-arguments-body\"}]},{\"captures\":{\"1\":{\"name\":\"entity.name.type.module.tsx\"},\"2\":{\"name\":\"punctuation.accessor.tsx\"},\"3\":{\"name\":\"punctuation.accessor.optional.tsx\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\"},{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"entity.name.type.tsx\"}]},\"type-object\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.tsx\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.tsx\"}},\"name\":\"meta.object.type.tsx\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#method-declaration\"},{\"include\":\"#indexer-declaration\"},{\"include\":\"#indexer-mapped-type-declaration\"},{\"include\":\"#field-declaration\"},{\"include\":\"#type-annotation\"},{\"begin\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.spread.tsx\"}},\"end\":\"(?=\\\\\\\\}|;|,|$)|(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#type\"}]},{\"include\":\"#punctuation-comma\"},{\"include\":\"#punctuation-semicolon\"},{\"include\":\"#type\"}]},\"type-operators\":{\"patterns\":[{\"include\":\"#typeof-operator\"},{\"include\":\"#type-infer\"},{\"begin\":\"([&|])(?=\\\\\\\\s*\\\\\\\\{)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.type.tsx\"}},\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#type-object\"}]},{\"begin\":\"[&|]\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.type.tsx\"}},\"end\":\"(?=\\\\\\\\S)\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))keyof(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.expression.keyof.tsx\"},{\"match\":\"(\\\\\\\\?|\\\\\\\\:)\",\"name\":\"keyword.operator.ternary.tsx\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))import(?=\\\\\\\\s*\\\\\\\\()\",\"name\":\"keyword.operator.expression.import.tsx\"}]},\"type-parameters\":{\"begin\":\"(<)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.typeparameters.begin.tsx\"}},\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.typeparameters.end.tsx\"}},\"name\":\"meta.type.parameters.tsx\",\"patterns\":[{\"include\":\"#comment\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.modifier.tsx\"},{\"include\":\"#type\"},{\"include\":\"#punctuation-comma\"},{\"match\":\"(=)(?!>)\",\"name\":\"keyword.operator.assignment.tsx\"}]},\"type-paren-or-function-parameters\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.tsx\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.tsx\"}},\"name\":\"meta.type.paren.cover.tsx\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.modifier.tsx\"},\"2\":{\"name\":\"keyword.operator.rest.tsx\"},\"3\":{\"name\":\"entity.name.function.tsx variable.language.this.tsx\"},\"4\":{\"name\":\"entity.name.function.tsx\"},\"5\":{\"name\":\"keyword.operator.optional.tsx\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(public|private|protected|readonly)\\\\\\\\s+)?(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\\\\\\\s*(\\\\\\\\??)(?=\\\\\\\\s*(:\\\\\\\\s*((<)|([(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>)))))))|(:\\\\\\\\s*(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Function(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(:\\\\\\\\s*((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))))\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.tsx\"},\"2\":{\"name\":\"keyword.operator.rest.tsx\"},\"3\":{\"name\":\"variable.parameter.tsx variable.language.this.tsx\"},\"4\":{\"name\":\"variable.parameter.tsx\"},\"5\":{\"name\":\"keyword.operator.optional.tsx\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(public|private|protected|readonly)\\\\\\\\s+)?(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\\\\\\\s*(\\\\\\\\??)(?=:)\"},{\"include\":\"#type-annotation\"},{\"match\":\",\",\"name\":\"punctuation.separator.parameter.tsx\"},{\"include\":\"#type\"}]},\"type-predicate-operator\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.type.asserts.tsx\"},\"2\":{\"name\":\"variable.parameter.tsx variable.language.this.tsx\"},\"3\":{\"name\":\"variable.parameter.tsx\"},\"4\":{\"name\":\"keyword.operator.expression.is.tsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(asserts)\\\\\\\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\\\\\\\s(is)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.type.asserts.tsx\"},\"2\":{\"name\":\"variable.parameter.tsx variable.language.this.tsx\"},\"3\":{\"name\":\"variable.parameter.tsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(asserts)\\\\\\\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))asserts(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.type.asserts.tsx\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))is(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.expression.is.tsx\"}]},\"type-primitive\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"support.type.primitive.tsx\"},\"type-string\":{\"patterns\":[{\"include\":\"#qstring-single\"},{\"include\":\"#qstring-double\"},{\"include\":\"#template-type\"}]},\"type-tuple\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.square.tsx\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.square.tsx\"}},\"name\":\"meta.type.tuple.tsx\",\"patterns\":[{\"match\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"name\":\"keyword.operator.rest.tsx\"},{\"captures\":{\"1\":{\"name\":\"entity.name.label.tsx\"},\"2\":{\"name\":\"keyword.operator.optional.tsx\"},\"3\":{\"name\":\"punctuation.separator.label.tsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(\\\\\\\\?)?\\\\\\\\s*(:)\"},{\"include\":\"#type\"},{\"include\":\"#punctuation-comma\"}]},\"typeof-operator\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))typeof(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.expression.typeof.tsx\"}},\"end\":\"(?=[,);}\\\\\\\\]=>:&|{\\\\\\\\?]|(extends\\\\\\\\s+)|$|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#type-arguments\"},{\"include\":\"#expression\"}]},\"undefined-literal\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))undefined(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.undefined.tsx\"},\"var-expr\":{\"patterns\":[{\"begin\":\"(?=(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(var|let)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))\",\"end\":\"(?!(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(var|let)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))|((?<!^let|[^\\\\\\\\._$[:alnum:]]let|^var|[^\\\\\\\\._$[:alnum:]]var)(?=\\\\\\\\s*$)))\",\"name\":\"meta.var.expr.tsx\",\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(var|let)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.tsx\"},\"2\":{\"name\":\"storage.modifier.tsx\"},\"3\":{\"name\":\"storage.type.tsx\"}},\"end\":\"(?=\\\\\\\\S)\"},{\"include\":\"#destructuring-variable\"},{\"include\":\"#var-single-variable\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#comment\"},{\"begin\":\"(,)\\\\\\\\s*(?=$|\\\\\\\\/\\\\\\\\/)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.comma.tsx\"}},\"end\":\"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|^\\\\\\\\s*$))|((?<=\\\\\\\\S)(?=\\\\\\\\s*$)))\",\"patterns\":[{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#comment\"},{\"include\":\"#destructuring-variable\"},{\"include\":\"#var-single-variable\"},{\"include\":\"#punctuation-comma\"}]},{\"include\":\"#punctuation-comma\"}]},{\"begin\":\"(?=(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(const(?!\\\\\\\\s+enum\\\\\\\\b))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.tsx\"},\"2\":{\"name\":\"storage.modifier.tsx\"},\"3\":{\"name\":\"storage.type.tsx\"}},\"end\":\"(?!(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(const(?!\\\\\\\\s+enum\\\\\\\\b))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))|((?<!^const|[^\\\\\\\\._$[:alnum:]]const)(?=\\\\\\\\s*$)))\",\"name\":\"meta.var.expr.tsx\",\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(const(?!\\\\\\\\s+enum\\\\\\\\b))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.tsx\"},\"2\":{\"name\":\"storage.modifier.tsx\"},\"3\":{\"name\":\"storage.type.tsx\"}},\"end\":\"(?=\\\\\\\\S)\"},{\"include\":\"#destructuring-const\"},{\"include\":\"#var-single-const\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#comment\"},{\"begin\":\"(,)\\\\\\\\s*(?=$|\\\\\\\\/\\\\\\\\/)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.comma.tsx\"}},\"end\":\"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|^\\\\\\\\s*$))|((?<=\\\\\\\\S)(?=\\\\\\\\s*$)))\",\"patterns\":[{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#comment\"},{\"include\":\"#destructuring-const\"},{\"include\":\"#var-single-const\"},{\"include\":\"#punctuation-comma\"}]},{\"include\":\"#punctuation-comma\"}]},{\"begin\":\"(?=(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b((?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.tsx\"},\"2\":{\"name\":\"storage.modifier.tsx\"},\"3\":{\"name\":\"storage.type.tsx\"}},\"end\":\"(?!(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b((?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))((?=;|}|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))|((?<!^using|[^\\\\\\\\._$[:alnum:]]using|^await\\\\\\\\s+using|[^\\\\\\\\._$[:alnum:]]await\\\\\\\\s+using)(?=\\\\\\\\s*$)))\",\"name\":\"meta.var.expr.tsx\",\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b((?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.tsx\"},\"2\":{\"name\":\"storage.modifier.tsx\"},\"3\":{\"name\":\"storage.type.tsx\"}},\"end\":\"(?=\\\\\\\\S)\"},{\"include\":\"#var-single-const\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#comment\"},{\"begin\":\"(,)\\\\\\\\s*((?!\\\\\\\\S)|(?=\\\\\\\\/\\\\\\\\/))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.comma.tsx\"}},\"end\":\"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|^\\\\\\\\s*$))|((?<=\\\\\\\\S)(?=\\\\\\\\s*$)))\",\"patterns\":[{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#comment\"},{\"include\":\"#var-single-const\"},{\"include\":\"#punctuation-comma\"}]},{\"include\":\"#punctuation-comma\"}]}]},\"var-single-const\":{\"patterns\":[{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)(?=\\\\\\\\s*(=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))))|(:\\\\\\\\s*((<)|([(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>)))))))|(:\\\\\\\\s*(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Function(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(:\\\\\\\\s*((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))))|(:\\\\\\\\s*(=>|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>))))))\",\"beginCaptures\":{\"1\":{\"name\":\"meta.definition.variable.tsx variable.other.constant.tsx entity.name.function.tsx\"}},\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|(;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b)))\",\"name\":\"meta.var-single-variable.expr.tsx\",\"patterns\":[{\"include\":\"#var-single-variable-type-annotation\"}]},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.definition.variable.tsx variable.other.constant.tsx\"}},\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|(;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b)))\",\"name\":\"meta.var-single-variable.expr.tsx\",\"patterns\":[{\"include\":\"#var-single-variable-type-annotation\"}]}]},\"var-single-variable\":{\"patterns\":[{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\!)?(?=\\\\\\\\s*(=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))))|(:\\\\\\\\s*((<)|([(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>)))))))|(:\\\\\\\\s*(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Function(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(:\\\\\\\\s*((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))))|(:\\\\\\\\s*(=>|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>))))))\",\"beginCaptures\":{\"1\":{\"name\":\"meta.definition.variable.tsx entity.name.function.tsx\"},\"2\":{\"name\":\"keyword.operator.definiteassignment.tsx\"}},\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|(;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b)))\",\"name\":\"meta.var-single-variable.expr.tsx\",\"patterns\":[{\"include\":\"#var-single-variable-type-annotation\"}]},{\"begin\":\"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])(\\\\\\\\!)?\",\"beginCaptures\":{\"1\":{\"name\":\"meta.definition.variable.tsx variable.other.constant.tsx\"},\"2\":{\"name\":\"keyword.operator.definiteassignment.tsx\"}},\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|(;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b)))\",\"name\":\"meta.var-single-variable.expr.tsx\",\"patterns\":[{\"include\":\"#var-single-variable-type-annotation\"}]},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\!)?\",\"beginCaptures\":{\"1\":{\"name\":\"meta.definition.variable.tsx variable.other.readwrite.tsx\"},\"2\":{\"name\":\"keyword.operator.definiteassignment.tsx\"}},\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|(;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b)))\",\"name\":\"meta.var-single-variable.expr.tsx\",\"patterns\":[{\"include\":\"#var-single-variable-type-annotation\"}]}]},\"var-single-variable-type-annotation\":{\"patterns\":[{\"include\":\"#type-annotation\"},{\"include\":\"#string\"},{\"include\":\"#comment\"}]},\"variable-initializer\":{\"patterns\":[{\"begin\":\"(?<!=|!)(=)(?!=)(?=\\\\\\\\s*\\\\\\\\S)(?!\\\\\\\\s*.*=>\\\\\\\\s*$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.tsx\"}},\"end\":\"(?=$|^|[,);}\\\\\\\\]]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+))\",\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\"(?<!=|!)(=)(?!=)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.tsx\"}},\"end\":\"(?=[,);}\\\\\\\\]]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+))|(?=^\\\\\\\\s*$)|(?<![\\\\\\\\|\\\\\\\\&\\\\\\\\+\\\\\\\\-\\\\\\\\*\\\\\\\\/])(?<=\\\\\\\\S)(?<!=)(?=\\\\\\\\s*$)\",\"patterns\":[{\"include\":\"#expression\"}]}]}},\"scopeName\":\"source.tsx\"}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/B7alP455.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"#\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"'\",close:\"'\",notIn:[\"string\"]},{open:'\"',close:'\"',notIn:[\"string\"]},{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"}]},s={defaultToken:\"\",tokenPostfix:\".rq\",brackets:[{token:\"delimiter.curly\",open:\"{\",close:\"}\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"},{token:\"delimiter.square\",open:\"[\",close:\"]\"},{token:\"delimiter.angle\",open:\"<\",close:\">\"}],keywords:[\"add\",\"as\",\"asc\",\"ask\",\"base\",\"by\",\"clear\",\"construct\",\"copy\",\"create\",\"data\",\"delete\",\"desc\",\"describe\",\"distinct\",\"drop\",\"false\",\"filter\",\"from\",\"graph\",\"group\",\"having\",\"in\",\"insert\",\"limit\",\"load\",\"minus\",\"move\",\"named\",\"not\",\"offset\",\"optional\",\"order\",\"prefix\",\"reduced\",\"select\",\"service\",\"silent\",\"to\",\"true\",\"undef\",\"union\",\"using\",\"values\",\"where\",\"with\"],builtinFunctions:[\"a\",\"abs\",\"avg\",\"bind\",\"bnode\",\"bound\",\"ceil\",\"coalesce\",\"concat\",\"contains\",\"count\",\"datatype\",\"day\",\"encode_for_uri\",\"exists\",\"floor\",\"group_concat\",\"hours\",\"if\",\"iri\",\"isblank\",\"isiri\",\"isliteral\",\"isnumeric\",\"isuri\",\"lang\",\"langmatches\",\"lcase\",\"max\",\"md5\",\"min\",\"minutes\",\"month\",\"now\",\"rand\",\"regex\",\"replace\",\"round\",\"sameterm\",\"sample\",\"seconds\",\"sha1\",\"sha256\",\"sha384\",\"sha512\",\"str\",\"strafter\",\"strbefore\",\"strdt\",\"strends\",\"strlang\",\"strlen\",\"strstarts\",\"struuid\",\"substr\",\"sum\",\"timezone\",\"tz\",\"ucase\",\"uri\",\"uuid\",\"year\"],ignoreCase:!0,tokenizer:{root:[[/<[^\\s\\u00a0>]*>?/,\"tag\"],{include:\"@strings\"},[/#.*/,\"comment\"],[/[{}()\\[\\]]/,\"@brackets\"],[/[;,.]/,\"delimiter\"],[/[_\\w\\d]+:(\\.(?=[\\w_\\-\\\\%])|[:\\w_-]|\\\\[-\\\\_~.!$&'()*+,;=/?#@%]|%[a-f\\d][a-f\\d])*/,\"tag\"],[/:(\\.(?=[\\w_\\-\\\\%])|[:\\w_-]|\\\\[-\\\\_~.!$&'()*+,;=/?#@%]|%[a-f\\d][a-f\\d])+/,\"tag\"],[/[$?]?[_\\w\\d]+/,{cases:{\"@keywords\":{token:\"keyword\"},\"@builtinFunctions\":{token:\"predefined.sql\"},\"@default\":\"identifier\"}}],[/\\^\\^/,\"operator.sql\"],[/\\^[*+\\-<>=&|^\\/!?]*/,\"operator.sql\"],[/[*+\\-<>=&|\\/!?]/,\"operator.sql\"],[/@[a-z\\d\\-]*/,\"metatag.html\"],[/\\s+/,\"white\"]],strings:[[/'([^'\\\\]|\\\\.)*$/,\"string.invalid\"],[/'$/,\"string.sql\",\"@pop\"],[/'/,\"string.sql\",\"@stringBody\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"$/,\"string.sql\",\"@pop\"],[/\"/,\"string.sql\",\"@dblStringBody\"]],stringBody:[[/[^\\\\']+/,\"string.sql\"],[/\\\\./,\"string.escape\"],[/'/,\"string.sql\",\"@pop\"]],dblStringBody:[[/[^\\\\\"]+/,\"string.sql\"],[/\\\\./,\"string.escape\"],[/\"/,\"string.sql\",\"@pop\"]]}};export{e as conf,s as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/B7mTdjB0.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"actionBar.toggledBackground\":\"#dddddd\",\"activityBarBadge.background\":\"#007ACC\",\"checkbox.border\":\"#919191\",\"diffEditor.unchangedRegionBackground\":\"#f8f8f8\",\"editor.background\":\"#FFFFFF\",\"editor.foreground\":\"#000000\",\"editor.inactiveSelectionBackground\":\"#E5EBF1\",\"editor.selectionHighlightBackground\":\"#ADD6FF80\",\"editorIndentGuide.activeBackground1\":\"#939393\",\"editorIndentGuide.background1\":\"#D3D3D3\",\"editorSuggestWidget.background\":\"#F3F3F3\",\"input.placeholderForeground\":\"#767676\",\"list.activeSelectionIconForeground\":\"#FFF\",\"list.focusAndSelectionOutline\":\"#90C2F9\",\"list.hoverBackground\":\"#E8E8E8\",\"menu.border\":\"#D4D4D4\",\"notebook.cellBorderColor\":\"#E8E8E8\",\"notebook.selectedCellBackground\":\"#c8ddf150\",\"ports.iconRunningProcessForeground\":\"#369432\",\"searchEditor.textInputBorder\":\"#CECECE\",\"settings.numberInputBorder\":\"#CECECE\",\"settings.textInputBorder\":\"#CECECE\",\"sideBarSectionHeader.background\":\"#0000\",\"sideBarSectionHeader.border\":\"#61616130\",\"sideBarTitle.foreground\":\"#6F6F6F\",\"statusBarItem.errorBackground\":\"#c72e0f\",\"statusBarItem.remoteBackground\":\"#16825D\",\"statusBarItem.remoteForeground\":\"#FFF\",\"tab.lastPinnedBorder\":\"#61616130\",\"tab.selectedBackground\":\"#ffffffa5\",\"tab.selectedForeground\":\"#333333b3\",\"terminal.inactiveSelectionBackground\":\"#E5EBF1\",\"widget.border\":\"#d4d4d4\"},\"displayName\":\"Light Plus\",\"name\":\"light-plus\",\"semanticHighlighting\":true,\"semanticTokenColors\":{\"customLiteral\":\"#795E26\",\"newOperator\":\"#AF00DB\",\"numberLiteral\":\"#098658\",\"stringLiteral\":\"#a31515\"},\"tokenColors\":[{\"scope\":[\"meta.embedded\",\"source.groovy.embedded\",\"string meta.image.inline.markdown\",\"variable.legacy.builtin.python\"],\"settings\":{\"foreground\":\"#000000ff\"}},{\"scope\":\"emphasis\",\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":\"strong\",\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":\"meta.diff.header\",\"settings\":{\"foreground\":\"#000080\"}},{\"scope\":\"comment\",\"settings\":{\"foreground\":\"#008000\"}},{\"scope\":\"constant.language\",\"settings\":{\"foreground\":\"#0000ff\"}},{\"scope\":[\"constant.numeric\",\"variable.other.enummember\",\"keyword.operator.plus.exponent\",\"keyword.operator.minus.exponent\"],\"settings\":{\"foreground\":\"#098658\"}},{\"scope\":\"constant.regexp\",\"settings\":{\"foreground\":\"#811f3f\"}},{\"scope\":\"entity.name.tag\",\"settings\":{\"foreground\":\"#800000\"}},{\"scope\":\"entity.name.selector\",\"settings\":{\"foreground\":\"#800000\"}},{\"scope\":\"entity.other.attribute-name\",\"settings\":{\"foreground\":\"#e50000\"}},{\"scope\":[\"entity.other.attribute-name.class.css\",\"source.css entity.other.attribute-name.class\",\"entity.other.attribute-name.id.css\",\"entity.other.attribute-name.parent-selector.css\",\"entity.other.attribute-name.parent.less\",\"source.css entity.other.attribute-name.pseudo-class\",\"entity.other.attribute-name.pseudo-element.css\",\"source.css.less entity.other.attribute-name.id\",\"entity.other.attribute-name.scss\"],\"settings\":{\"foreground\":\"#800000\"}},{\"scope\":\"invalid\",\"settings\":{\"foreground\":\"#cd3131\"}},{\"scope\":\"markup.underline\",\"settings\":{\"fontStyle\":\"underline\"}},{\"scope\":\"markup.bold\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#000080\"}},{\"scope\":\"markup.heading\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#800000\"}},{\"scope\":\"markup.italic\",\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":\"markup.strikethrough\",\"settings\":{\"fontStyle\":\"strikethrough\"}},{\"scope\":\"markup.inserted\",\"settings\":{\"foreground\":\"#098658\"}},{\"scope\":\"markup.deleted\",\"settings\":{\"foreground\":\"#a31515\"}},{\"scope\":\"markup.changed\",\"settings\":{\"foreground\":\"#0451a5\"}},{\"scope\":[\"punctuation.definition.quote.begin.markdown\",\"punctuation.definition.list.begin.markdown\"],\"settings\":{\"foreground\":\"#0451a5\"}},{\"scope\":\"markup.inline.raw\",\"settings\":{\"foreground\":\"#800000\"}},{\"scope\":\"punctuation.definition.tag\",\"settings\":{\"foreground\":\"#800000\"}},{\"scope\":[\"meta.preprocessor\",\"entity.name.function.preprocessor\"],\"settings\":{\"foreground\":\"#0000ff\"}},{\"scope\":\"meta.preprocessor.string\",\"settings\":{\"foreground\":\"#a31515\"}},{\"scope\":\"meta.preprocessor.numeric\",\"settings\":{\"foreground\":\"#098658\"}},{\"scope\":\"meta.structure.dictionary.key.python\",\"settings\":{\"foreground\":\"#0451a5\"}},{\"scope\":\"storage\",\"settings\":{\"foreground\":\"#0000ff\"}},{\"scope\":\"storage.type\",\"settings\":{\"foreground\":\"#0000ff\"}},{\"scope\":[\"storage.modifier\",\"keyword.operator.noexcept\"],\"settings\":{\"foreground\":\"#0000ff\"}},{\"scope\":[\"string\",\"meta.embedded.assembly\"],\"settings\":{\"foreground\":\"#a31515\"}},{\"scope\":[\"string.comment.buffered.block.pug\",\"string.quoted.pug\",\"string.interpolated.pug\",\"string.unquoted.plain.in.yaml\",\"string.unquoted.plain.out.yaml\",\"string.unquoted.block.yaml\",\"string.quoted.single.yaml\",\"string.quoted.double.xml\",\"string.quoted.single.xml\",\"string.unquoted.cdata.xml\",\"string.quoted.double.html\",\"string.quoted.single.html\",\"string.unquoted.html\",\"string.quoted.single.handlebars\",\"string.quoted.double.handlebars\"],\"settings\":{\"foreground\":\"#0000ff\"}},{\"scope\":\"string.regexp\",\"settings\":{\"foreground\":\"#811f3f\"}},{\"scope\":[\"punctuation.definition.template-expression.begin\",\"punctuation.definition.template-expression.end\",\"punctuation.section.embedded\"],\"settings\":{\"foreground\":\"#0000ff\"}},{\"scope\":[\"meta.template.expression\"],\"settings\":{\"foreground\":\"#000000\"}},{\"scope\":[\"support.constant.property-value\",\"support.constant.font-name\",\"support.constant.media-type\",\"support.constant.media\",\"constant.other.color.rgb-value\",\"constant.other.rgb-value\",\"support.constant.color\"],\"settings\":{\"foreground\":\"#0451a5\"}},{\"scope\":[\"support.type.vendored.property-name\",\"support.type.property-name\",\"source.css variable\",\"source.coffee.embedded\"],\"settings\":{\"foreground\":\"#e50000\"}},{\"scope\":[\"support.type.property-name.json\"],\"settings\":{\"foreground\":\"#0451a5\"}},{\"scope\":\"keyword\",\"settings\":{\"foreground\":\"#0000ff\"}},{\"scope\":\"keyword.control\",\"settings\":{\"foreground\":\"#0000ff\"}},{\"scope\":\"keyword.operator\",\"settings\":{\"foreground\":\"#000000\"}},{\"scope\":[\"keyword.operator.new\",\"keyword.operator.expression\",\"keyword.operator.cast\",\"keyword.operator.sizeof\",\"keyword.operator.alignof\",\"keyword.operator.typeid\",\"keyword.operator.alignas\",\"keyword.operator.instanceof\",\"keyword.operator.logical.python\",\"keyword.operator.wordlike\"],\"settings\":{\"foreground\":\"#0000ff\"}},{\"scope\":\"keyword.other.unit\",\"settings\":{\"foreground\":\"#098658\"}},{\"scope\":[\"punctuation.section.embedded.begin.php\",\"punctuation.section.embedded.end.php\"],\"settings\":{\"foreground\":\"#800000\"}},{\"scope\":\"support.function.git-rebase\",\"settings\":{\"foreground\":\"#0451a5\"}},{\"scope\":\"constant.sha.git-rebase\",\"settings\":{\"foreground\":\"#098658\"}},{\"scope\":[\"storage.modifier.import.java\",\"variable.language.wildcard.java\",\"storage.modifier.package.java\"],\"settings\":{\"foreground\":\"#000000\"}},{\"scope\":\"variable.language\",\"settings\":{\"foreground\":\"#0000ff\"}},{\"scope\":[\"entity.name.function\",\"support.function\",\"support.constant.handlebars\",\"source.powershell variable.other.member\",\"entity.name.operator.custom-literal\"],\"settings\":{\"foreground\":\"#795E26\"}},{\"scope\":[\"support.class\",\"support.type\",\"entity.name.type\",\"entity.name.namespace\",\"entity.other.attribute\",\"entity.name.scope-resolution\",\"entity.name.class\",\"storage.type.numeric.go\",\"storage.type.byte.go\",\"storage.type.boolean.go\",\"storage.type.string.go\",\"storage.type.uintptr.go\",\"storage.type.error.go\",\"storage.type.rune.go\",\"storage.type.cs\",\"storage.type.generic.cs\",\"storage.type.modifier.cs\",\"storage.type.variable.cs\",\"storage.type.annotation.java\",\"storage.type.generic.java\",\"storage.type.java\",\"storage.type.object.array.java\",\"storage.type.primitive.array.java\",\"storage.type.primitive.java\",\"storage.type.token.java\",\"storage.type.groovy\",\"storage.type.annotation.groovy\",\"storage.type.parameters.groovy\",\"storage.type.generic.groovy\",\"storage.type.object.array.groovy\",\"storage.type.primitive.array.groovy\",\"storage.type.primitive.groovy\"],\"settings\":{\"foreground\":\"#267f99\"}},{\"scope\":[\"meta.type.cast.expr\",\"meta.type.new.expr\",\"support.constant.math\",\"support.constant.dom\",\"support.constant.json\",\"entity.other.inherited-class\",\"punctuation.separator.namespace.ruby\"],\"settings\":{\"foreground\":\"#267f99\"}},{\"scope\":[\"keyword.control\",\"source.cpp keyword.operator.new\",\"source.cpp keyword.operator.delete\",\"keyword.other.using\",\"keyword.other.directive.using\",\"keyword.other.operator\",\"entity.name.operator\"],\"settings\":{\"foreground\":\"#AF00DB\"}},{\"scope\":[\"variable\",\"meta.definition.variable.name\",\"support.variable\",\"entity.name.variable\",\"constant.other.placeholder\"],\"settings\":{\"foreground\":\"#001080\"}},{\"scope\":[\"variable.other.constant\",\"variable.other.enummember\"],\"settings\":{\"foreground\":\"#0070C1\"}},{\"scope\":[\"meta.object-literal.key\"],\"settings\":{\"foreground\":\"#001080\"}},{\"scope\":[\"support.constant.property-value\",\"support.constant.font-name\",\"support.constant.media-type\",\"support.constant.media\",\"constant.other.color.rgb-value\",\"constant.other.rgb-value\",\"support.constant.color\"],\"settings\":{\"foreground\":\"#0451a5\"}},{\"scope\":[\"punctuation.definition.group.regexp\",\"punctuation.definition.group.assertion.regexp\",\"punctuation.definition.character-class.regexp\",\"punctuation.character.set.begin.regexp\",\"punctuation.character.set.end.regexp\",\"keyword.operator.negation.regexp\",\"support.other.parenthesis.regexp\"],\"settings\":{\"foreground\":\"#d16969\"}},{\"scope\":[\"constant.character.character-class.regexp\",\"constant.other.character-class.set.regexp\",\"constant.other.character-class.regexp\",\"constant.character.set.regexp\"],\"settings\":{\"foreground\":\"#811f3f\"}},{\"scope\":\"keyword.operator.quantifier.regexp\",\"settings\":{\"foreground\":\"#000000\"}},{\"scope\":[\"keyword.operator.or.regexp\",\"keyword.control.anchor.regexp\"],\"settings\":{\"foreground\":\"#EE0000\"}},{\"scope\":[\"constant.character\",\"constant.other.option\"],\"settings\":{\"foreground\":\"#0000ff\"}},{\"scope\":\"constant.character.escape\",\"settings\":{\"foreground\":\"#EE0000\"}},{\"scope\":\"entity.name.label\",\"settings\":{\"foreground\":\"#000000\"}}],\"type\":\"light\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/B8ssZoUh.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var E={comments:{lineComment:\"--\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},T={defaultToken:\"\",tokenPostfix:\".sql\",ignoreCase:!0,brackets:[{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],keywords:[\"ACCESSIBLE\",\"ADD\",\"ALL\",\"ALTER\",\"ANALYZE\",\"AND\",\"AS\",\"ASC\",\"ASENSITIVE\",\"BEFORE\",\"BETWEEN\",\"BIGINT\",\"BINARY\",\"BLOB\",\"BOTH\",\"BY\",\"CALL\",\"CASCADE\",\"CASE\",\"CHANGE\",\"CHAR\",\"CHARACTER\",\"CHECK\",\"COLLATE\",\"COLUMN\",\"CONDITION\",\"CONSTRAINT\",\"CONTINUE\",\"CONVERT\",\"CREATE\",\"CROSS\",\"CUBE\",\"CUME_DIST\",\"CURRENT_DATE\",\"CURRENT_TIME\",\"CURRENT_TIMESTAMP\",\"CURRENT_USER\",\"CURSOR\",\"DATABASE\",\"DATABASES\",\"DAY_HOUR\",\"DAY_MICROSECOND\",\"DAY_MINUTE\",\"DAY_SECOND\",\"DEC\",\"DECIMAL\",\"DECLARE\",\"DEFAULT\",\"DELAYED\",\"DELETE\",\"DENSE_RANK\",\"DESC\",\"DESCRIBE\",\"DETERMINISTIC\",\"DISTINCT\",\"DISTINCTROW\",\"DIV\",\"DOUBLE\",\"DROP\",\"DUAL\",\"EACH\",\"ELSE\",\"ELSEIF\",\"EMPTY\",\"ENCLOSED\",\"ESCAPED\",\"EXCEPT\",\"EXISTS\",\"EXIT\",\"EXPLAIN\",\"FALSE\",\"FETCH\",\"FIRST_VALUE\",\"FLOAT\",\"FLOAT4\",\"FLOAT8\",\"FOR\",\"FORCE\",\"FOREIGN\",\"FROM\",\"FULLTEXT\",\"FUNCTION\",\"GENERATED\",\"GET\",\"GRANT\",\"GROUP\",\"GROUPING\",\"GROUPS\",\"HAVING\",\"HIGH_PRIORITY\",\"HOUR_MICROSECOND\",\"HOUR_MINUTE\",\"HOUR_SECOND\",\"IF\",\"IGNORE\",\"IN\",\"INDEX\",\"INFILE\",\"INNER\",\"INOUT\",\"INSENSITIVE\",\"INSERT\",\"INT\",\"INT1\",\"INT2\",\"INT3\",\"INT4\",\"INT8\",\"INTEGER\",\"INTERVAL\",\"INTO\",\"IO_AFTER_GTIDS\",\"IO_BEFORE_GTIDS\",\"IS\",\"ITERATE\",\"JOIN\",\"JSON_TABLE\",\"KEY\",\"KEYS\",\"KILL\",\"LAG\",\"LAST_VALUE\",\"LATERAL\",\"LEAD\",\"LEADING\",\"LEAVE\",\"LEFT\",\"LIKE\",\"LIMIT\",\"LINEAR\",\"LINES\",\"LOAD\",\"LOCALTIME\",\"LOCALTIMESTAMP\",\"LOCK\",\"LONG\",\"LONGBLOB\",\"LONGTEXT\",\"LOOP\",\"LOW_PRIORITY\",\"MASTER_BIND\",\"MASTER_SSL_VERIFY_SERVER_CERT\",\"MATCH\",\"MAXVALUE\",\"MEDIUMBLOB\",\"MEDIUMINT\",\"MEDIUMTEXT\",\"MIDDLEINT\",\"MINUTE_MICROSECOND\",\"MINUTE_SECOND\",\"MOD\",\"MODIFIES\",\"NATURAL\",\"NOT\",\"NO_WRITE_TO_BINLOG\",\"NTH_VALUE\",\"NTILE\",\"NULL\",\"NUMERIC\",\"OF\",\"ON\",\"OPTIMIZE\",\"OPTIMIZER_COSTS\",\"OPTION\",\"OPTIONALLY\",\"OR\",\"ORDER\",\"OUT\",\"OUTER\",\"OUTFILE\",\"OVER\",\"PARTITION\",\"PERCENT_RANK\",\"PRECISION\",\"PRIMARY\",\"PROCEDURE\",\"PURGE\",\"RANGE\",\"RANK\",\"READ\",\"READS\",\"READ_WRITE\",\"REAL\",\"RECURSIVE\",\"REFERENCES\",\"REGEXP\",\"RELEASE\",\"RENAME\",\"REPEAT\",\"REPLACE\",\"REQUIRE\",\"RESIGNAL\",\"RESTRICT\",\"RETURN\",\"REVOKE\",\"RIGHT\",\"RLIKE\",\"ROW\",\"ROWS\",\"ROW_NUMBER\",\"SCHEMA\",\"SCHEMAS\",\"SECOND_MICROSECOND\",\"SELECT\",\"SENSITIVE\",\"SEPARATOR\",\"SET\",\"SHOW\",\"SIGNAL\",\"SMALLINT\",\"SPATIAL\",\"SPECIFIC\",\"SQL\",\"SQLEXCEPTION\",\"SQLSTATE\",\"SQLWARNING\",\"SQL_BIG_RESULT\",\"SQL_CALC_FOUND_ROWS\",\"SQL_SMALL_RESULT\",\"SSL\",\"STARTING\",\"STORED\",\"STRAIGHT_JOIN\",\"SYSTEM\",\"TABLE\",\"TERMINATED\",\"THEN\",\"TINYBLOB\",\"TINYINT\",\"TINYTEXT\",\"TO\",\"TRAILING\",\"TRIGGER\",\"TRUE\",\"UNDO\",\"UNION\",\"UNIQUE\",\"UNLOCK\",\"UNSIGNED\",\"UPDATE\",\"USAGE\",\"USE\",\"USING\",\"UTC_DATE\",\"UTC_TIME\",\"UTC_TIMESTAMP\",\"VALUES\",\"VARBINARY\",\"VARCHAR\",\"VARCHARACTER\",\"VARYING\",\"VIRTUAL\",\"WHEN\",\"WHERE\",\"WHILE\",\"WINDOW\",\"WITH\",\"WRITE\",\"XOR\",\"YEAR_MONTH\",\"ZEROFILL\"],operators:[\"AND\",\"BETWEEN\",\"IN\",\"LIKE\",\"NOT\",\"OR\",\"IS\",\"NULL\",\"INTERSECT\",\"UNION\",\"INNER\",\"JOIN\",\"LEFT\",\"OUTER\",\"RIGHT\"],builtinFunctions:[\"ABS\",\"ACOS\",\"ADDDATE\",\"ADDTIME\",\"AES_DECRYPT\",\"AES_ENCRYPT\",\"ANY_VALUE\",\"Area\",\"AsBinary\",\"AsWKB\",\"ASCII\",\"ASIN\",\"AsText\",\"AsWKT\",\"ASYMMETRIC_DECRYPT\",\"ASYMMETRIC_DERIVE\",\"ASYMMETRIC_ENCRYPT\",\"ASYMMETRIC_SIGN\",\"ASYMMETRIC_VERIFY\",\"ATAN\",\"ATAN2\",\"ATAN\",\"AVG\",\"BENCHMARK\",\"BIN\",\"BIT_AND\",\"BIT_COUNT\",\"BIT_LENGTH\",\"BIT_OR\",\"BIT_XOR\",\"Buffer\",\"CAST\",\"CEIL\",\"CEILING\",\"Centroid\",\"CHAR\",\"CHAR_LENGTH\",\"CHARACTER_LENGTH\",\"CHARSET\",\"COALESCE\",\"COERCIBILITY\",\"COLLATION\",\"COMPRESS\",\"CONCAT\",\"CONCAT_WS\",\"CONNECTION_ID\",\"Contains\",\"CONV\",\"CONVERT\",\"CONVERT_TZ\",\"ConvexHull\",\"COS\",\"COT\",\"COUNT\",\"CRC32\",\"CREATE_ASYMMETRIC_PRIV_KEY\",\"CREATE_ASYMMETRIC_PUB_KEY\",\"CREATE_DH_PARAMETERS\",\"CREATE_DIGEST\",\"Crosses\",\"CUME_DIST\",\"CURDATE\",\"CURRENT_DATE\",\"CURRENT_ROLE\",\"CURRENT_TIME\",\"CURRENT_TIMESTAMP\",\"CURRENT_USER\",\"CURTIME\",\"DATABASE\",\"DATE\",\"DATE_ADD\",\"DATE_FORMAT\",\"DATE_SUB\",\"DATEDIFF\",\"DAY\",\"DAYNAME\",\"DAYOFMONTH\",\"DAYOFWEEK\",\"DAYOFYEAR\",\"DECODE\",\"DEFAULT\",\"DEGREES\",\"DES_DECRYPT\",\"DES_ENCRYPT\",\"DENSE_RANK\",\"Dimension\",\"Disjoint\",\"Distance\",\"ELT\",\"ENCODE\",\"ENCRYPT\",\"EndPoint\",\"Envelope\",\"Equals\",\"EXP\",\"EXPORT_SET\",\"ExteriorRing\",\"EXTRACT\",\"ExtractValue\",\"FIELD\",\"FIND_IN_SET\",\"FIRST_VALUE\",\"FLOOR\",\"FORMAT\",\"FORMAT_BYTES\",\"FORMAT_PICO_TIME\",\"FOUND_ROWS\",\"FROM_BASE64\",\"FROM_DAYS\",\"FROM_UNIXTIME\",\"GEN_RANGE\",\"GEN_RND_EMAIL\",\"GEN_RND_PAN\",\"GEN_RND_SSN\",\"GEN_RND_US_PHONE\",\"GeomCollection\",\"GeomCollFromText\",\"GeometryCollectionFromText\",\"GeomCollFromWKB\",\"GeometryCollectionFromWKB\",\"GeometryCollection\",\"GeometryN\",\"GeometryType\",\"GeomFromText\",\"GeometryFromText\",\"GeomFromWKB\",\"GeometryFromWKB\",\"GET_FORMAT\",\"GET_LOCK\",\"GLength\",\"GREATEST\",\"GROUP_CONCAT\",\"GROUPING\",\"GTID_SUBSET\",\"GTID_SUBTRACT\",\"HEX\",\"HOUR\",\"ICU_VERSION\",\"IF\",\"IFNULL\",\"INET_ATON\",\"INET_NTOA\",\"INET6_ATON\",\"INET6_NTOA\",\"INSERT\",\"INSTR\",\"InteriorRingN\",\"Intersects\",\"INTERVAL\",\"IS_FREE_LOCK\",\"IS_IPV4\",\"IS_IPV4_COMPAT\",\"IS_IPV4_MAPPED\",\"IS_IPV6\",\"IS_USED_LOCK\",\"IS_UUID\",\"IsClosed\",\"IsEmpty\",\"ISNULL\",\"IsSimple\",\"JSON_APPEND\",\"JSON_ARRAY\",\"JSON_ARRAY_APPEND\",\"JSON_ARRAY_INSERT\",\"JSON_ARRAYAGG\",\"JSON_CONTAINS\",\"JSON_CONTAINS_PATH\",\"JSON_DEPTH\",\"JSON_EXTRACT\",\"JSON_INSERT\",\"JSON_KEYS\",\"JSON_LENGTH\",\"JSON_MERGE\",\"JSON_MERGE_PATCH\",\"JSON_MERGE_PRESERVE\",\"JSON_OBJECT\",\"JSON_OBJECTAGG\",\"JSON_OVERLAPS\",\"JSON_PRETTY\",\"JSON_QUOTE\",\"JSON_REMOVE\",\"JSON_REPLACE\",\"JSON_SCHEMA_VALID\",\"JSON_SCHEMA_VALIDATION_REPORT\",\"JSON_SEARCH\",\"JSON_SET\",\"JSON_STORAGE_FREE\",\"JSON_STORAGE_SIZE\",\"JSON_TABLE\",\"JSON_TYPE\",\"JSON_UNQUOTE\",\"JSON_VALID\",\"LAG\",\"LAST_DAY\",\"LAST_INSERT_ID\",\"LAST_VALUE\",\"LCASE\",\"LEAD\",\"LEAST\",\"LEFT\",\"LENGTH\",\"LineFromText\",\"LineStringFromText\",\"LineFromWKB\",\"LineStringFromWKB\",\"LineString\",\"LN\",\"LOAD_FILE\",\"LOCALTIME\",\"LOCALTIMESTAMP\",\"LOCATE\",\"LOG\",\"LOG10\",\"LOG2\",\"LOWER\",\"LPAD\",\"LTRIM\",\"MAKE_SET\",\"MAKEDATE\",\"MAKETIME\",\"MASK_INNER\",\"MASK_OUTER\",\"MASK_PAN\",\"MASK_PAN_RELAXED\",\"MASK_SSN\",\"MASTER_POS_WAIT\",\"MAX\",\"MBRContains\",\"MBRCoveredBy\",\"MBRCovers\",\"MBRDisjoint\",\"MBREqual\",\"MBREquals\",\"MBRIntersects\",\"MBROverlaps\",\"MBRTouches\",\"MBRWithin\",\"MD5\",\"MEMBER OF\",\"MICROSECOND\",\"MID\",\"MIN\",\"MINUTE\",\"MLineFromText\",\"MultiLineStringFromText\",\"MLineFromWKB\",\"MultiLineStringFromWKB\",\"MOD\",\"MONTH\",\"MONTHNAME\",\"MPointFromText\",\"MultiPointFromText\",\"MPointFromWKB\",\"MultiPointFromWKB\",\"MPolyFromText\",\"MultiPolygonFromText\",\"MPolyFromWKB\",\"MultiPolygonFromWKB\",\"MultiLineString\",\"MultiPoint\",\"MultiPolygon\",\"NAME_CONST\",\"NOT IN\",\"NOW\",\"NTH_VALUE\",\"NTILE\",\"NULLIF\",\"NumGeometries\",\"NumInteriorRings\",\"NumPoints\",\"OCT\",\"OCTET_LENGTH\",\"OLD_PASSWORD\",\"ORD\",\"Overlaps\",\"PASSWORD\",\"PERCENT_RANK\",\"PERIOD_ADD\",\"PERIOD_DIFF\",\"PI\",\"Point\",\"PointFromText\",\"PointFromWKB\",\"PointN\",\"PolyFromText\",\"PolygonFromText\",\"PolyFromWKB\",\"PolygonFromWKB\",\"Polygon\",\"POSITION\",\"POW\",\"POWER\",\"PS_CURRENT_THREAD_ID\",\"PS_THREAD_ID\",\"PROCEDURE ANALYSE\",\"QUARTER\",\"QUOTE\",\"RADIANS\",\"RAND\",\"RANDOM_BYTES\",\"RANK\",\"REGEXP_INSTR\",\"REGEXP_LIKE\",\"REGEXP_REPLACE\",\"REGEXP_REPLACE\",\"RELEASE_ALL_LOCKS\",\"RELEASE_LOCK\",\"REPEAT\",\"REPLACE\",\"REVERSE\",\"RIGHT\",\"ROLES_GRAPHML\",\"ROUND\",\"ROW_COUNT\",\"ROW_NUMBER\",\"RPAD\",\"RTRIM\",\"SCHEMA\",\"SEC_TO_TIME\",\"SECOND\",\"SESSION_USER\",\"SHA1\",\"SHA\",\"SHA2\",\"SIGN\",\"SIN\",\"SLEEP\",\"SOUNDEX\",\"SOURCE_POS_WAIT\",\"SPACE\",\"SQRT\",\"SRID\",\"ST_Area\",\"ST_AsBinary\",\"ST_AsWKB\",\"ST_AsGeoJSON\",\"ST_AsText\",\"ST_AsWKT\",\"ST_Buffer\",\"ST_Buffer_Strategy\",\"ST_Centroid\",\"ST_Collect\",\"ST_Contains\",\"ST_ConvexHull\",\"ST_Crosses\",\"ST_Difference\",\"ST_Dimension\",\"ST_Disjoint\",\"ST_Distance\",\"ST_Distance_Sphere\",\"ST_EndPoint\",\"ST_Envelope\",\"ST_Equals\",\"ST_ExteriorRing\",\"ST_FrechetDistance\",\"ST_GeoHash\",\"ST_GeomCollFromText\",\"ST_GeometryCollectionFromText\",\"ST_GeomCollFromTxt\",\"ST_GeomCollFromWKB\",\"ST_GeometryCollectionFromWKB\",\"ST_GeometryN\",\"ST_GeometryType\",\"ST_GeomFromGeoJSON\",\"ST_GeomFromText\",\"ST_GeometryFromText\",\"ST_GeomFromWKB\",\"ST_GeometryFromWKB\",\"ST_HausdorffDistance\",\"ST_InteriorRingN\",\"ST_Intersection\",\"ST_Intersects\",\"ST_IsClosed\",\"ST_IsEmpty\",\"ST_IsSimple\",\"ST_IsValid\",\"ST_LatFromGeoHash\",\"ST_Length\",\"ST_LineFromText\",\"ST_LineStringFromText\",\"ST_LineFromWKB\",\"ST_LineStringFromWKB\",\"ST_LineInterpolatePoint\",\"ST_LineInterpolatePoints\",\"ST_LongFromGeoHash\",\"ST_Longitude\",\"ST_MakeEnvelope\",\"ST_MLineFromText\",\"ST_MultiLineStringFromText\",\"ST_MLineFromWKB\",\"ST_MultiLineStringFromWKB\",\"ST_MPointFromText\",\"ST_MultiPointFromText\",\"ST_MPointFromWKB\",\"ST_MultiPointFromWKB\",\"ST_MPolyFromText\",\"ST_MultiPolygonFromText\",\"ST_MPolyFromWKB\",\"ST_MultiPolygonFromWKB\",\"ST_NumGeometries\",\"ST_NumInteriorRing\",\"ST_NumInteriorRings\",\"ST_NumPoints\",\"ST_Overlaps\",\"ST_PointAtDistance\",\"ST_PointFromGeoHash\",\"ST_PointFromText\",\"ST_PointFromWKB\",\"ST_PointN\",\"ST_PolyFromText\",\"ST_PolygonFromText\",\"ST_PolyFromWKB\",\"ST_PolygonFromWKB\",\"ST_Simplify\",\"ST_SRID\",\"ST_StartPoint\",\"ST_SwapXY\",\"ST_SymDifference\",\"ST_Touches\",\"ST_Transform\",\"ST_Union\",\"ST_Validate\",\"ST_Within\",\"ST_X\",\"ST_Y\",\"StartPoint\",\"STATEMENT_DIGEST\",\"STATEMENT_DIGEST_TEXT\",\"STD\",\"STDDEV\",\"STDDEV_POP\",\"STDDEV_SAMP\",\"STR_TO_DATE\",\"STRCMP\",\"SUBDATE\",\"SUBSTR\",\"SUBSTRING\",\"SUBSTRING_INDEX\",\"SUBTIME\",\"SUM\",\"SYSDATE\",\"SYSTEM_USER\",\"TAN\",\"TIME\",\"TIME_FORMAT\",\"TIME_TO_SEC\",\"TIMEDIFF\",\"TIMESTAMP\",\"TIMESTAMPADD\",\"TIMESTAMPDIFF\",\"TO_BASE64\",\"TO_DAYS\",\"TO_SECONDS\",\"Touches\",\"TRIM\",\"TRUNCATE\",\"UCASE\",\"UNCOMPRESS\",\"UNCOMPRESSED_LENGTH\",\"UNHEX\",\"UNIX_TIMESTAMP\",\"UpdateXML\",\"UPPER\",\"USER\",\"UTC_DATE\",\"UTC_TIME\",\"UTC_TIMESTAMP\",\"UUID\",\"UUID_SHORT\",\"UUID_TO_BIN\",\"VALIDATE_PASSWORD_STRENGTH\",\"VALUES\",\"VAR_POP\",\"VAR_SAMP\",\"VARIANCE\",\"VERSION\",\"WAIT_FOR_EXECUTED_GTID_SET\",\"WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS\",\"WEEK\",\"WEEKDAY\",\"WEEKOFYEAR\",\"WEIGHT_STRING\",\"Within\",\"X\",\"Y\",\"YEAR\",\"YEARWEEK\"],builtinVariables:[],tokenizer:{root:[{include:\"@comments\"},{include:\"@whitespace\"},{include:\"@numbers\"},{include:\"@strings\"},{include:\"@complexIdentifiers\"},{include:\"@scopes\"},[/[;,.]/,\"delimiter\"],[/[()]/,\"@brackets\"],[/[\\w@]+/,{cases:{\"@operators\":\"operator\",\"@builtinVariables\":\"predefined\",\"@builtinFunctions\":\"predefined\",\"@keywords\":\"keyword\",\"@default\":\"identifier\"}}],[/[<>=!%&+\\-*/|~^]/,\"operator\"]],whitespace:[[/\\s+/,\"white\"]],comments:[[/--+.*/,\"comment\"],[/#+.*/,\"comment\"],[/\\/\\*/,{token:\"comment.quote\",next:\"@comment\"}]],comment:[[/[^*/]+/,\"comment\"],[/\\*\\//,{token:\"comment.quote\",next:\"@pop\"}],[/./,\"comment\"]],numbers:[[/0[xX][0-9a-fA-F]*/,\"number\"],[/[$][+-]*\\d*(\\.\\d*)?/,\"number\"],[/((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][\\-+]?\\d+)?/,\"number\"]],strings:[[/'/,{token:\"string\",next:\"@string\"}],[/\"/,{token:\"string.double\",next:\"@stringDouble\"}]],string:[[/\\\\'/,\"string\"],[/[^']+/,\"string\"],[/''/,\"string\"],[/'/,{token:\"string\",next:\"@pop\"}]],stringDouble:[[/[^\"]+/,\"string.double\"],[/\"\"/,\"string.double\"],[/\"/,{token:\"string.double\",next:\"@pop\"}]],complexIdentifiers:[[/`/,{token:\"identifier.quote\",next:\"@quotedIdentifier\"}]],quotedIdentifier:[[/[^`]+/,\"identifier\"],[/``/,\"identifier\"],[/`/,{token:\"identifier.quote\",next:\"@pop\"}]],scopes:[]}};export{E as conf,T as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/B9wLZaAG.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Dart\",\"name\":\"dart\",\"patterns\":[{\"match\":\"^(#!.*)$\",\"name\":\"meta.preprocessor.script.dart\"},{\"begin\":\"^\\\\\\\\w*\\\\\\\\b(augment\\\\\\\\s+library|library|import\\\\\\\\s+augment|import|part\\\\\\\\s+of|part|export)\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.import.dart\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.dart\"}},\"name\":\"meta.declaration.dart\",\"patterns\":[{\"include\":\"#strings\"},{\"include\":\"#comments\"},{\"match\":\"\\\\\\\\b(as|show|hide)\\\\\\\\b\",\"name\":\"keyword.other.import.dart\"},{\"match\":\"\\\\\\\\b(if)\\\\\\\\b\",\"name\":\"keyword.control.dart\"}]},{\"include\":\"#comments\"},{\"include\":\"#punctuation\"},{\"include\":\"#annotations\"},{\"include\":\"#keywords\"},{\"include\":\"#constants-and-special-vars\"},{\"include\":\"#operators\"},{\"include\":\"#strings\"}],\"repository\":{\"annotations\":{\"patterns\":[{\"match\":\"@[a-zA-Z]+\",\"name\":\"storage.type.annotation.dart\"}]},\"class-identifier\":{\"patterns\":[{\"match\":\"(?<!\\\\\\\\$)\\\\\\\\b(bool|num|int|double|dynamic)\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"support.class.dart\"},{\"match\":\"(?<!\\\\\\\\$)\\\\\\\\bvoid\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"storage.type.primitive.dart\"},{\"begin\":\"(?<![a-zA-Z0-9_$])([_$]*[A-Z][a-zA-Z0-9_$]*)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"support.class.dart\"}},\"end\":\"(?!<)\",\"patterns\":[{\"include\":\"#type-args\"}]}]},\"comments\":{\"patterns\":[{\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.dart\"}},\"match\":\"/\\\\\\\\*\\\\\\\\*/\",\"name\":\"comment.block.empty.dart\"},{\"include\":\"#comments-doc-oldschool\"},{\"include\":\"#comments-doc\"},{\"include\":\"#comments-inline\"}]},\"comments-block\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.dart\",\"patterns\":[{\"include\":\"#comments-block\"}]}]},\"comments-doc\":{\"patterns\":[{\"begin\":\"///\",\"end\":\"^(?!\\\\\\\\s*///)\",\"name\":\"comment.block.documentation.dart\",\"patterns\":[{\"include\":\"#dartdoc\"}]}]},\"comments-doc-oldschool\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\\\\\\\\*\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.documentation.dart\",\"patterns\":[{\"include\":\"#comments-doc-oldschool\"},{\"include\":\"#comments-block\"},{\"include\":\"#dartdoc\"}]}]},\"comments-inline\":{\"patterns\":[{\"include\":\"#comments-block\"},{\"captures\":{\"1\":{\"name\":\"comment.line.double-slash.dart\"}},\"match\":\"((//).*)$\"}]},\"constants-and-special-vars\":{\"patterns\":[{\"match\":\"(?<!\\\\\\\\$)\\\\\\\\b(true|false|null)\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.language.dart\"},{\"match\":\"(?<!\\\\\\\\$)\\\\\\\\b(this|super|augmented)\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"variable.language.dart\"},{\"match\":\"(?<!\\\\\\\\$)\\\\\\\\b((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(([0-9][0-9_]*\\\\\\\\.?[0-9_]*)|(\\\\\\\\.[0-9][0-9_]*))((e|E)(\\\\\\\\+|-)?[0-9][0-9_]*)?)\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.numeric.dart\"},{\"include\":\"#class-identifier\"},{\"include\":\"#function-identifier\"}]},\"dartdoc\":{\"patterns\":[{\"captures\":{\"0\":{\"name\":\"variable.name.source.dart\"}},\"match\":\"(\\\\\\\\[.*?\\\\\\\\])\"},{\"begin\":\"^\\\\\\\\s*///\\\\\\\\s*(```)\",\"end\":\"^\\\\\\\\s*///\\\\\\\\s*(```)|^(?!\\\\\\\\s*///)\",\"patterns\":[{\"include\":\"#dartdoc-codeblock-triple\"}]},{\"begin\":\"^\\\\\\\\s*\\\\\\\\*\\\\\\\\s*(```)\",\"end\":\"^\\\\\\\\s*\\\\\\\\*\\\\\\\\s*(```)|^(?=\\\\\\\\s*\\\\\\\\*/)\",\"patterns\":[{\"include\":\"#dartdoc-codeblock-block\"}]},{\"match\":\"`[^`\\\\n]+`\",\"name\":\"variable.other.source.dart\"},{\"captures\":{\"1\":{\"name\":\"variable.other.source.dart\"}},\"match\":\"(?:\\\\\\\\*|\\\\\\\\/\\\\\\\\/)\\\\\\\\s{4,}(.*?)(?=($|\\\\\\\\*\\\\\\\\/))\"}]},\"dartdoc-codeblock-block\":{\"begin\":\"^\\\\\\\\s*\\\\\\\\*\\\\\\\\s*(?!(\\\\\\\\s*```|/))\",\"contentName\":\"variable.other.source.dart\",\"end\":\"\\\\n\"},\"dartdoc-codeblock-triple\":{\"begin\":\"^\\\\\\\\s*///\\\\\\\\s*(?!\\\\\\\\s*```)\",\"contentName\":\"variable.other.source.dart\",\"end\":\"\\\\n\"},\"expression\":{\"patterns\":[{\"include\":\"#constants-and-special-vars\"},{\"include\":\"#strings\"},{\"match\":\"[a-zA-Z0-9_]+\",\"name\":\"variable.parameter.dart\"},{\"begin\":\"\\\\\\\\{\",\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"#expression\"}]}]},\"function-identifier\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.function.dart\"},\"2\":{\"patterns\":[{\"include\":\"#type-args\"}]}},\"match\":\"([_$]*[a-z][a-zA-Z0-9_$]*)(<(?:[a-zA-Z0-9_$<>?]|,\\\\\\\\s*|\\\\\\\\s+extends\\\\\\\\s+)+>)?[!?]?\\\\\\\\(\"}]},\"keywords\":{\"patterns\":[{\"match\":\"(?<!\\\\\\\\$)\\\\\\\\bas\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"keyword.cast.dart\"},{\"match\":\"(?<!\\\\\\\\$)\\\\\\\\b(try|on|catch|finally|throw|rethrow)\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"keyword.control.catch-exception.dart\"},{\"match\":\"(?<!\\\\\\\\$)\\\\\\\\b(break|case|continue|default|do|else|for|if|in|switch|while|when)\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"keyword.control.dart\"},{\"match\":\"(?<!\\\\\\\\$)\\\\\\\\b(sync(\\\\\\\\*)?|async(\\\\\\\\*)?|await|yield(\\\\\\\\*)?)\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"keyword.control.dart\"},{\"match\":\"(?<!\\\\\\\\$)\\\\\\\\bassert\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"keyword.control.dart\"},{\"match\":\"(?<!\\\\\\\\$)\\\\\\\\b(new)\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"keyword.control.new.dart\"},{\"match\":\"(?<!\\\\\\\\$)\\\\\\\\b(return)\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"keyword.control.return.dart\"},{\"match\":\"(?<!\\\\\\\\$)\\\\\\\\b(abstract|sealed|base|interface|class|enum|extends|extension\\\\\\\\s+type|extension|external|factory|implements|get(?![(<])|mixin|native|operator|set(?![(<])|typedef|with|covariant)\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"keyword.declaration.dart\"},{\"match\":\"(?<!\\\\\\\\$)\\\\\\\\b(macro|augment|static|final|const|required|late)\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"storage.modifier.dart\"},{\"match\":\"(?<!\\\\\\\\$)\\\\\\\\b(?:void|var)\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"storage.type.primitive.dart\"}]},\"operators\":{\"patterns\":[{\"match\":\"(?<!\\\\\\\\$)\\\\\\\\b(is\\\\\\\\!?)\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"keyword.operator.dart\"},{\"match\":\"\\\\\\\\?|:\",\"name\":\"keyword.operator.ternary.dart\"},{\"match\":\"(<<|>>>?|~|\\\\\\\\^|\\\\\\\\||&)\",\"name\":\"keyword.operator.bitwise.dart\"},{\"match\":\"((&|\\\\\\\\^|\\\\\\\\||<<|>>>?)=)\",\"name\":\"keyword.operator.assignment.bitwise.dart\"},{\"match\":\"(=>)\",\"name\":\"keyword.operator.closure.dart\"},{\"match\":\"(==|!=|<=?|>=?)\",\"name\":\"keyword.operator.comparison.dart\"},{\"match\":\"(([+*/%-]|\\\\\\\\~)=)\",\"name\":\"keyword.operator.assignment.arithmetic.dart\"},{\"match\":\"(=)\",\"name\":\"keyword.operator.assignment.dart\"},{\"match\":\"(\\\\\\\\-\\\\\\\\-|\\\\\\\\+\\\\\\\\+)\",\"name\":\"keyword.operator.increment-decrement.dart\"},{\"match\":\"(\\\\\\\\-|\\\\\\\\+|\\\\\\\\*|\\\\\\\\/|\\\\\\\\~\\\\\\\\/|%)\",\"name\":\"keyword.operator.arithmetic.dart\"},{\"match\":\"(!|&&|\\\\\\\\|\\\\\\\\|)\",\"name\":\"keyword.operator.logical.dart\"}]},\"punctuation\":{\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.comma.dart\"},{\"match\":\";\",\"name\":\"punctuation.terminator.dart\"},{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.dot.dart\"}]},\"string-interp\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.parameter.dart\"}},\"match\":\"\\\\\\\\$([a-zA-Z0-9_]+)\",\"name\":\"meta.embedded.expression.dart\"},{\"begin\":\"\\\\\\\\$\\\\\\\\{\",\"end\":\"\\\\\\\\}\",\"name\":\"meta.embedded.expression.dart\",\"patterns\":[{\"include\":\"#expression\"}]},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.dart\"}]},\"strings\":{\"patterns\":[{\"begin\":\"(?<!r)\\\\\"\\\\\"\\\\\"\",\"end\":\"\\\\\"\\\\\"\\\\\"(?!\\\\\")\",\"name\":\"string.interpolated.triple.double.dart\",\"patterns\":[{\"include\":\"#string-interp\"}]},{\"begin\":\"(?<!r)\\'\\'\\'\",\"end\":\"\\'\\'\\'(?!\\')\",\"name\":\"string.interpolated.triple.single.dart\",\"patterns\":[{\"include\":\"#string-interp\"}]},{\"begin\":\"r\\\\\"\\\\\"\\\\\"\",\"end\":\"\\\\\"\\\\\"\\\\\"(?!\\\\\")\",\"name\":\"string.quoted.triple.double.dart\"},{\"begin\":\"r\\'\\'\\'\",\"end\":\"\\'\\'\\'(?!\\')\",\"name\":\"string.quoted.triple.single.dart\"},{\"begin\":\"(?<!\\\\\\\\|r)\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.interpolated.double.dart\",\"patterns\":[{\"match\":\"\\\\\\\\n\",\"name\":\"invalid.string.newline\"},{\"include\":\"#string-interp\"}]},{\"begin\":\"r\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.dart\",\"patterns\":[{\"match\":\"\\\\\\\\n\",\"name\":\"invalid.string.newline\"}]},{\"begin\":\"(?<!\\\\\\\\|r)\\'\",\"end\":\"\\'\",\"name\":\"string.interpolated.single.dart\",\"patterns\":[{\"match\":\"\\\\\\\\n\",\"name\":\"invalid.string.newline\"},{\"include\":\"#string-interp\"}]},{\"begin\":\"r\\'\",\"end\":\"\\'\",\"name\":\"string.quoted.single.dart\",\"patterns\":[{\"match\":\"\\\\\\\\n\",\"name\":\"invalid.string.newline\"}]}]},\"type-args\":{\"begin\":\"(<)\",\"beginCaptures\":{\"1\":{\"name\":\"other.source.dart\"}},\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"other.source.dart\"}},\"patterns\":[{\"include\":\"#class-identifier\"},{\"match\":\",\"},{\"match\":\"extends\",\"name\":\"keyword.declaration.dart\"},{\"include\":\"#comments\"}]}},\"scopeName\":\"source.dart\"}')),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BAng5TT0.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"JSX\",\"name\":\"jsx\",\"patterns\":[{\"include\":\"#directives\"},{\"include\":\"#statements\"},{\"include\":\"#shebang\"}],\"repository\":{\"access-modifier\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.modifier.js.jsx\"},\"after-operator-block-as-object-literal\":{\"begin\":\"(?<!\\\\\\\\+\\\\\\\\+|--)(?<=[:=(,\\\\\\\\[?+!>]|^await|[^\\\\\\\\._$[:alnum:]]await|^return|[^\\\\\\\\._$[:alnum:]]return|^yield|[^\\\\\\\\._$[:alnum:]]yield|^throw|[^\\\\\\\\._$[:alnum:]]throw|^in|[^\\\\\\\\._$[:alnum:]]in|^of|[^\\\\\\\\._$[:alnum:]]of|^typeof|[^\\\\\\\\._$[:alnum:]]typeof|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\*)\\\\\\\\s*(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.js.jsx\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js.jsx\"}},\"name\":\"meta.objectliteral.js.jsx\",\"patterns\":[{\"include\":\"#object-member\"}]},\"array-binding-pattern\":{\"begin\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.js.jsx\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.array.js.jsx\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.array.js.jsx\"}},\"patterns\":[{\"include\":\"#binding-element\"},{\"include\":\"#punctuation-comma\"}]},\"array-binding-pattern-const\":{\"begin\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.js.jsx\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.array.js.jsx\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.array.js.jsx\"}},\"patterns\":[{\"include\":\"#binding-element-const\"},{\"include\":\"#punctuation-comma\"}]},\"array-literal\":{\"begin\":\"\\\\\\\\s*(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.brace.square.js.jsx\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.square.js.jsx\"}},\"name\":\"meta.array.literal.js.jsx\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"arrow-function\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.modifier.async.js.jsx\"},\"2\":{\"name\":\"variable.parameter.js.jsx\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(\\\\\\\\basync)\\\\\\\\s+)?([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?==>)\",\"name\":\"meta.arrow.js.jsx\"},{\"begin\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(\\\\\\\\basync))?((?<![})!\\\\\\\\]])\\\\\\\\s*(?=((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.js.jsx\"}},\"end\":\"(?==>|\\\\\\\\{|(^\\\\\\\\s*(export|function|class|interface|let|var|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|const|import|enum|namespace|module|type|abstract|declare)\\\\\\\\s+))\",\"name\":\"meta.arrow.js.jsx\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-parameters\"},{\"include\":\"#function-parameters\"},{\"include\":\"#arrow-return-type\"},{\"include\":\"#possibly-arrow-return-type\"}]},{\"begin\":\"=>\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.function.arrow.js.jsx\"}},\"end\":\"((?<=\\\\\\\\}|\\\\\\\\S)(?<!=>)|((?!\\\\\\\\{)(?=\\\\\\\\S)))(?!\\\\\\\\/[\\\\\\\\/\\\\\\\\*])\",\"name\":\"meta.arrow.js.jsx\",\"patterns\":[{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#decl-block\"},{\"include\":\"#expression\"}]}]},\"arrow-return-type\":{\"begin\":\"(?<=\\\\\\\\))\\\\\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.js.jsx\"}},\"end\":\"(?==>|\\\\\\\\{|(^\\\\\\\\s*(export|function|class|interface|let|var|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|const|import|enum|namespace|module|type|abstract|declare)\\\\\\\\s+))\",\"name\":\"meta.return.type.arrow.js.jsx\",\"patterns\":[{\"include\":\"#arrow-return-type-body\"}]},\"arrow-return-type-body\":{\"patterns\":[{\"begin\":\"(?<=[:])(?=\\\\\\\\s*\\\\\\\\{)\",\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#type-object\"}]},{\"include\":\"#type-predicate-operator\"},{\"include\":\"#type\"}]},\"async-modifier\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(async)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.modifier.async.js.jsx\"},\"binding-element\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#regex\"},{\"include\":\"#object-binding-pattern\"},{\"include\":\"#array-binding-pattern\"},{\"include\":\"#destructuring-variable-rest\"},{\"include\":\"#variable-initializer\"}]},\"binding-element-const\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#regex\"},{\"include\":\"#object-binding-pattern-const\"},{\"include\":\"#array-binding-pattern-const\"},{\"include\":\"#destructuring-variable-rest-const\"},{\"include\":\"#variable-initializer\"}]},\"boolean-literal\":{\"patterns\":[{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))true(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.boolean.true.js.jsx\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))false(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.boolean.false.js.jsx\"}]},\"brackets\":{\"patterns\":[{\"begin\":\"{\",\"end\":\"}|(?=\\\\\\\\*/)\",\"patterns\":[{\"include\":\"#brackets\"}]},{\"begin\":\"\\\\\\\\[\",\"end\":\"\\\\\\\\]|(?=\\\\\\\\*/)\",\"patterns\":[{\"include\":\"#brackets\"}]}]},\"cast\":{\"patterns\":[{\"include\":\"#jsx\"}]},\"class-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(?:(abstract)\\\\\\\\s+)?\\\\\\\\b(class)\\\\\\\\b(?=\\\\\\\\s+|/[/*])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js.jsx\"},\"2\":{\"name\":\"storage.modifier.js.jsx\"},\"3\":{\"name\":\"storage.modifier.js.jsx\"},\"4\":{\"name\":\"storage.type.class.js.jsx\"}},\"end\":\"(?<=\\\\\\\\})\",\"name\":\"meta.class.js.jsx\",\"patterns\":[{\"include\":\"#class-declaration-or-expression-patterns\"}]},\"class-declaration-or-expression-patterns\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#class-or-interface-heritage\"},{\"captures\":{\"0\":{\"name\":\"entity.name.type.class.js.jsx\"}},\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\"},{\"include\":\"#type-parameters\"},{\"include\":\"#class-or-interface-body\"}]},\"class-expression\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(abstract)\\\\\\\\s+)?(class)\\\\\\\\b(?=\\\\\\\\s+|[<{]|\\\\\\\\/[\\\\\\\\/*])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.js.jsx\"},\"2\":{\"name\":\"storage.type.class.js.jsx\"}},\"end\":\"(?<=\\\\\\\\})\",\"name\":\"meta.class.js.jsx\",\"patterns\":[{\"include\":\"#class-declaration-or-expression-patterns\"}]},\"class-or-interface-body\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js.jsx\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js.jsx\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#decorator\"},{\"begin\":\"(?<=:)\\\\\\\\s*\",\"end\":\"(?=\\\\\\\\s|[;),}\\\\\\\\]:\\\\\\\\-\\\\\\\\+]|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#expression\"}]},{\"include\":\"#method-declaration\"},{\"include\":\"#indexer-declaration\"},{\"include\":\"#field-declaration\"},{\"include\":\"#string\"},{\"include\":\"#type-annotation\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#access-modifier\"},{\"include\":\"#property-accessor\"},{\"include\":\"#async-modifier\"},{\"include\":\"#after-operator-block-as-object-literal\"},{\"include\":\"#decl-block\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#punctuation-semicolon\"}]},\"class-or-interface-heritage\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:\\\\\\\\b(extends|implements)\\\\\\\\b)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.js.jsx\"}},\"end\":\"(?=\\\\\\\\{)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#class-or-interface-heritage\"},{\"include\":\"#type-parameters\"},{\"include\":\"#expressionWithoutIdentifiers\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.module.js.jsx\"},\"2\":{\"name\":\"punctuation.accessor.js.jsx\"},\"3\":{\"name\":\"punctuation.accessor.optional.js.jsx\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))(?=\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*)*\\\\\\\\s*)\"},{\"captures\":{\"1\":{\"name\":\"entity.other.inherited-class.js.jsx\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\"},{\"include\":\"#expressionPunctuations\"}]},\"comment\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\\\\\\\\*(?!/)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.js.jsx\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.js.jsx\"}},\"name\":\"comment.block.documentation.js.jsx\",\"patterns\":[{\"include\":\"#docblock\"}]},{\"begin\":\"(/\\\\\\\\*)(?:\\\\\\\\s*((@)internal)(?=\\\\\\\\s|(\\\\\\\\*/)))?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.js.jsx\"},\"2\":{\"name\":\"storage.type.internaldeclaration.js.jsx\"},\"3\":{\"name\":\"punctuation.decorator.internaldeclaration.js.jsx\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.js.jsx\"}},\"name\":\"comment.block.js.jsx\"},{\"begin\":\"(^[ \\\\\\\\t]+)?((//)(?:\\\\\\\\s*((@)internal)(?=\\\\\\\\s|$))?)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.js.jsx\"},\"2\":{\"name\":\"comment.line.double-slash.js.jsx\"},\"3\":{\"name\":\"punctuation.definition.comment.js.jsx\"},\"4\":{\"name\":\"storage.type.internaldeclaration.js.jsx\"},\"5\":{\"name\":\"punctuation.decorator.internaldeclaration.js.jsx\"}},\"contentName\":\"comment.line.double-slash.js.jsx\",\"end\":\"(?=$)\"}]},\"control-statement\":{\"patterns\":[{\"include\":\"#switch-statement\"},{\"include\":\"#for-loop\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(catch|finally|throw|try)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.trycatch.js.jsx\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.loop.js.jsx\"},\"2\":{\"name\":\"entity.name.label.js.jsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(break|continue|goto)\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(break|continue|do|goto|while)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.loop.js.jsx\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(return)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.flow.js.jsx\"}},\"end\":\"(?=[;}]|$|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#expression\"}]},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(case|default|switch)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.switch.js.jsx\"},{\"include\":\"#if-statement\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.conditional.js.jsx\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(with)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.with.js.jsx\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(package)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.js.jsx\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(debugger)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.other.debugger.js.jsx\"}]},\"decl-block\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js.jsx\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js.jsx\"}},\"name\":\"meta.block.js.jsx\",\"patterns\":[{\"include\":\"#statements\"}]},\"declaration\":{\"patterns\":[{\"include\":\"#decorator\"},{\"include\":\"#var-expr\"},{\"include\":\"#function-declaration\"},{\"include\":\"#class-declaration\"},{\"include\":\"#interface-declaration\"},{\"include\":\"#enum-declaration\"},{\"include\":\"#namespace-declaration\"},{\"include\":\"#type-alias-declaration\"},{\"include\":\"#import-equals-declaration\"},{\"include\":\"#import-declaration\"},{\"include\":\"#export-declaration\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(declare|export)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.modifier.js.jsx\"}]},\"decorator\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))\\\\\\\\@\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.decorator.js.jsx\"}},\"end\":\"(?=\\\\\\\\s)\",\"name\":\"meta.decorator.js.jsx\",\"patterns\":[{\"include\":\"#expression\"}]},\"destructuring-const\":{\"patterns\":[{\"begin\":\"(?<!=|:|^of|[^\\\\\\\\._$[:alnum:]]of|^in|[^\\\\\\\\._$[:alnum:]]in)\\\\\\\\s*(?=\\\\\\\\{)\",\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+))\",\"name\":\"meta.object-binding-pattern-variable.js.jsx\",\"patterns\":[{\"include\":\"#object-binding-pattern-const\"},{\"include\":\"#type-annotation\"},{\"include\":\"#comment\"}]},{\"begin\":\"(?<!=|:|^of|[^\\\\\\\\._$[:alnum:]]of|^in|[^\\\\\\\\._$[:alnum:]]in)\\\\\\\\s*(?=\\\\\\\\[)\",\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+))\",\"name\":\"meta.array-binding-pattern-variable.js.jsx\",\"patterns\":[{\"include\":\"#array-binding-pattern-const\"},{\"include\":\"#type-annotation\"},{\"include\":\"#comment\"}]}]},\"destructuring-parameter\":{\"patterns\":[{\"begin\":\"(?<!=|:)\\\\\\\\s*(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.js.jsx\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.object.js.jsx\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.object.js.jsx\"}},\"name\":\"meta.parameter.object-binding-pattern.js.jsx\",\"patterns\":[{\"include\":\"#parameter-object-binding-element\"}]},{\"begin\":\"(?<!=|:)\\\\\\\\s*(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.js.jsx\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.array.js.jsx\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.array.js.jsx\"}},\"name\":\"meta.paramter.array-binding-pattern.js.jsx\",\"patterns\":[{\"include\":\"#parameter-binding-element\"},{\"include\":\"#punctuation-comma\"}]}]},\"destructuring-parameter-rest\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.rest.js.jsx\"},\"2\":{\"name\":\"variable.parameter.js.jsx\"}},\"match\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\"},\"destructuring-variable\":{\"patterns\":[{\"begin\":\"(?<!=|:|^of|[^\\\\\\\\._$[:alnum:]]of|^in|[^\\\\\\\\._$[:alnum:]]in)\\\\\\\\s*(?=\\\\\\\\{)\",\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+))\",\"name\":\"meta.object-binding-pattern-variable.js.jsx\",\"patterns\":[{\"include\":\"#object-binding-pattern\"},{\"include\":\"#type-annotation\"},{\"include\":\"#comment\"}]},{\"begin\":\"(?<!=|:|^of|[^\\\\\\\\._$[:alnum:]]of|^in|[^\\\\\\\\._$[:alnum:]]in)\\\\\\\\s*(?=\\\\\\\\[)\",\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+))\",\"name\":\"meta.array-binding-pattern-variable.js.jsx\",\"patterns\":[{\"include\":\"#array-binding-pattern\"},{\"include\":\"#type-annotation\"},{\"include\":\"#comment\"}]}]},\"destructuring-variable-rest\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.rest.js.jsx\"},\"2\":{\"name\":\"meta.definition.variable.js.jsx variable.other.readwrite.js.jsx\"}},\"match\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\"},\"destructuring-variable-rest-const\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.rest.js.jsx\"},\"2\":{\"name\":\"meta.definition.variable.js.jsx variable.other.constant.js.jsx\"}},\"match\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\"},\"directives\":{\"begin\":\"^(///)\\\\\\\\s*(?=<(reference|amd-dependency|amd-module)(\\\\\\\\s+(path|types|no-default-lib|lib|name|resolution-mode)\\\\\\\\s*=\\\\\\\\s*((\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)))+\\\\\\\\s*/>\\\\\\\\s*$)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.js.jsx\"}},\"end\":\"(?=$)\",\"name\":\"comment.line.triple-slash.directive.js.jsx\",\"patterns\":[{\"begin\":\"(<)(reference|amd-dependency|amd-module)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.directive.js.jsx\"},\"2\":{\"name\":\"entity.name.tag.directive.js.jsx\"}},\"end\":\"/>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.directive.js.jsx\"}},\"name\":\"meta.tag.js.jsx\",\"patterns\":[{\"match\":\"path|types|no-default-lib|lib|name|resolution-mode\",\"name\":\"entity.other.attribute-name.directive.js.jsx\"},{\"match\":\"=\",\"name\":\"keyword.operator.assignment.js.jsx\"},{\"include\":\"#string\"}]}]},\"docblock\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"constant.language.access-type.jsdoc\"}},\"match\":\"((@)(?:access|api))\\\\\\\\s+(private|protected|public)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"entity.name.type.instance.jsdoc\"},\"4\":{\"name\":\"punctuation.definition.bracket.angle.begin.jsdoc\"},\"5\":{\"name\":\"constant.other.email.link.underline.jsdoc\"},\"6\":{\"name\":\"punctuation.definition.bracket.angle.end.jsdoc\"}},\"match\":\"((@)author)\\\\\\\\s+([^@\\\\\\\\s<>*/](?:[^@<>*/]|\\\\\\\\*[^/])*)(?:\\\\\\\\s*(<)([^>\\\\\\\\s]+)(>))?\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"entity.name.type.instance.jsdoc\"},\"4\":{\"name\":\"keyword.operator.control.jsdoc\"},\"5\":{\"name\":\"entity.name.type.instance.jsdoc\"}},\"match\":\"((@)borrows)\\\\\\\\s+((?:[^@\\\\\\\\s*/]|\\\\\\\\*[^/])+)\\\\\\\\s+(as)\\\\\\\\s+((?:[^@\\\\\\\\s*/]|\\\\\\\\*[^/])+)\"},{\"begin\":\"((@)example)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"end\":\"(?=@|\\\\\\\\*/)\",\"name\":\"meta.example.jsdoc\",\"patterns\":[{\"match\":\"^\\\\\\\\s\\\\\\\\*\\\\\\\\s+\"},{\"begin\":\"\\\\\\\\G(<)caption(>)\",\"beginCaptures\":{\"0\":{\"name\":\"entity.name.tag.inline.jsdoc\"},\"1\":{\"name\":\"punctuation.definition.bracket.angle.begin.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.bracket.angle.end.jsdoc\"}},\"contentName\":\"constant.other.description.jsdoc\",\"end\":\"(</)caption(>)|(?=\\\\\\\\*/)\",\"endCaptures\":{\"0\":{\"name\":\"entity.name.tag.inline.jsdoc\"},\"1\":{\"name\":\"punctuation.definition.bracket.angle.begin.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.bracket.angle.end.jsdoc\"}}},{\"captures\":{\"0\":{\"name\":\"source.embedded.js.jsx\"}},\"match\":\"[^\\\\\\\\s@*](?:[^*]|\\\\\\\\*[^/])*\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"constant.language.symbol-type.jsdoc\"}},\"match\":\"((@)kind)\\\\\\\\s+(class|constant|event|external|file|function|member|mixin|module|namespace|typedef)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"variable.other.link.underline.jsdoc\"},\"4\":{\"name\":\"entity.name.type.instance.jsdoc\"}},\"match\":\"((@)see)\\\\\\\\s+(?:((?=https?://)(?:[^\\\\\\\\s*]|\\\\\\\\*[^/])+)|((?!https?://|(?:\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])?{@(?:link|linkcode|linkplain|tutorial)\\\\\\\\b)(?:[^@\\\\\\\\s*/]|\\\\\\\\*[^/])+))\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"variable.other.jsdoc\"}},\"match\":\"((@)template)\\\\\\\\s+([A-Za-z_$][\\\\\\\\w$.\\\\\\\\[\\\\\\\\]]*(?:\\\\\\\\s*,\\\\\\\\s*[A-Za-z_$][\\\\\\\\w$.\\\\\\\\[\\\\\\\\]]*)*)\"},{\"begin\":\"((@)template)\\\\\\\\s+(?={)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"end\":\"(?=\\\\\\\\s|\\\\\\\\*/|[^{}\\\\\\\\[\\\\\\\\]A-Za-z_$])\",\"patterns\":[{\"include\":\"#jsdoctype\"},{\"match\":\"([A-Za-z_$][\\\\\\\\w$.\\\\\\\\[\\\\\\\\]]*)\",\"name\":\"variable.other.jsdoc\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"variable.other.jsdoc\"}},\"match\":\"((@)(?:arg|argument|const|constant|member|namespace|param|var))\\\\\\\\s+([A-Za-z_$][\\\\\\\\w$.\\\\\\\\[\\\\\\\\]]*)\"},{\"begin\":\"((@)typedef)\\\\\\\\s+(?={)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"end\":\"(?=\\\\\\\\s|\\\\\\\\*/|[^{}\\\\\\\\[\\\\\\\\]A-Za-z_$])\",\"patterns\":[{\"include\":\"#jsdoctype\"},{\"match\":\"(?:[^@\\\\\\\\s*/]|\\\\\\\\*[^/])+\",\"name\":\"entity.name.type.instance.jsdoc\"}]},{\"begin\":\"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\\\\\\\s+(?={)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"end\":\"(?=\\\\\\\\s|\\\\\\\\*/|[^{}\\\\\\\\[\\\\\\\\]A-Za-z_$])\",\"patterns\":[{\"include\":\"#jsdoctype\"},{\"match\":\"([A-Za-z_$][\\\\\\\\w$.\\\\\\\\[\\\\\\\\]]*)\",\"name\":\"variable.other.jsdoc\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.optional-value.begin.bracket.square.jsdoc\"},\"2\":{\"name\":\"keyword.operator.assignment.jsdoc\"},\"3\":{\"name\":\"source.embedded.js.jsx\"},\"4\":{\"name\":\"punctuation.definition.optional-value.end.bracket.square.jsdoc\"},\"5\":{\"name\":\"invalid.illegal.syntax.jsdoc\"}},\"match\":\"(\\\\\\\\[)\\\\\\\\s*[\\\\\\\\w$]+(?:(?:\\\\\\\\[\\\\\\\\])?\\\\\\\\.[\\\\\\\\w$]+)*(?:\\\\\\\\s*(=)\\\\\\\\s*((?>\\\\\"(?:(?:\\\\\\\\*(?!/))|(?:\\\\\\\\\\\\\\\\(?!\\\\\"))|[^*\\\\\\\\\\\\\\\\])*?\\\\\"|'(?:(?:\\\\\\\\*(?!/))|(?:\\\\\\\\\\\\\\\\(?!'))|[^*\\\\\\\\\\\\\\\\])*?'|\\\\\\\\[(?:(?:\\\\\\\\*(?!/))|[^*])*?\\\\\\\\]|(?:(?:\\\\\\\\*(?!/))|\\\\\\\\s(?!\\\\\\\\s*\\\\\\\\])|\\\\\\\\[.*?(?:\\\\\\\\]|(?=\\\\\\\\*/))|[^*\\\\\\\\s\\\\\\\\[\\\\\\\\]])*)*))?\\\\\\\\s*(?:(\\\\\\\\])((?:[^*\\\\\\\\s]|\\\\\\\\*[^\\\\\\\\s/])+)?|(?=\\\\\\\\*/))\",\"name\":\"variable.other.jsdoc\"}]},{\"begin\":\"((@)(?:define|enum|exception|export|extends|lends|implements|modifies|namespace|private|protected|returns?|satisfies|suppress|this|throws|type|yields?))\\\\\\\\s+(?={)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"end\":\"(?=\\\\\\\\s|\\\\\\\\*/|[^{}\\\\\\\\[\\\\\\\\]A-Za-z_$])\",\"patterns\":[{\"include\":\"#jsdoctype\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"entity.name.type.instance.jsdoc\"}},\"match\":\"((@)(?:alias|augments|callback|constructs|emits|event|fires|exports?|extends|external|function|func|host|lends|listens|interface|memberof!?|method|module|mixes|mixin|name|requires|see|this|typedef|uses))\\\\\\\\s+((?:[^{}@\\\\\\\\s*]|\\\\\\\\*[^/])+)\"},{\"begin\":\"((@)(?:default(?:value)?|license|version))\\\\\\\\s+(([''\\\\\"]))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"variable.other.jsdoc\"},\"4\":{\"name\":\"punctuation.definition.string.begin.jsdoc\"}},\"contentName\":\"variable.other.jsdoc\",\"end\":\"(\\\\\\\\3)|(?=$|\\\\\\\\*/)\",\"endCaptures\":{\"0\":{\"name\":\"variable.other.jsdoc\"},\"1\":{\"name\":\"punctuation.definition.string.end.jsdoc\"}}},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"variable.other.jsdoc\"}},\"match\":\"((@)(?:default(?:value)?|license|tutorial|variation|version))\\\\\\\\s+([^\\\\\\\\s*]+)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"match\":\"(@)(?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles|callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright|default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception|exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func|function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc|inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method|mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects|override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected|public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary|suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation|version|virtual|writeOnce|yields?)\\\\\\\\b\",\"name\":\"storage.type.class.jsdoc\"},{\"include\":\"#inline-tags\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"match\":\"((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\\\\\\\s+)\"}]},\"enum-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?(?:\\\\\\\\b(const)\\\\\\\\s+)?\\\\\\\\b(enum)\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js.jsx\"},\"2\":{\"name\":\"storage.modifier.js.jsx\"},\"3\":{\"name\":\"storage.modifier.js.jsx\"},\"4\":{\"name\":\"storage.type.enum.js.jsx\"},\"5\":{\"name\":\"entity.name.type.enum.js.jsx\"}},\"end\":\"(?<=\\\\\\\\})\",\"name\":\"meta.enum.declaration.js.jsx\",\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js.jsx\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js.jsx\"}},\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"beginCaptures\":{\"0\":{\"name\":\"variable.other.enummember.js.jsx\"}},\"end\":\"(?=,|\\\\\\\\}|$)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#variable-initializer\"}]},{\"begin\":\"(?=((\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\])))\",\"end\":\"(?=,|\\\\\\\\}|$)\",\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#array-literal\"},{\"include\":\"#comment\"},{\"include\":\"#variable-initializer\"}]},{\"include\":\"#punctuation-comma\"}]}]},\"export-declaration\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.export.js.jsx\"},\"2\":{\"name\":\"keyword.control.as.js.jsx\"},\"3\":{\"name\":\"storage.type.namespace.js.jsx\"},\"4\":{\"name\":\"entity.name.type.module.js.jsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(export)\\\\\\\\s+(as)\\\\\\\\s+(namespace)\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(export)(?:\\\\\\\\s+(type))?(?:(?:\\\\\\\\s*(=))|(?:\\\\\\\\s+(default)(?=\\\\\\\\s+)))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js.jsx\"},\"2\":{\"name\":\"keyword.control.type.js.jsx\"},\"3\":{\"name\":\"keyword.operator.assignment.js.jsx\"},\"4\":{\"name\":\"keyword.control.default.js.jsx\"}},\"end\":\"(?=$|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"name\":\"meta.export.default.js.jsx\",\"patterns\":[{\"include\":\"#interface-declaration\"},{\"include\":\"#expression\"}]},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(export)(?:\\\\\\\\s+(type))?\\\\\\\\b(?!(\\\\\\\\$)|(\\\\\\\\s*:))((?=\\\\\\\\s*[\\\\\\\\{*])|((?=\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*(\\\\\\\\s|,))(?!\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b)))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js.jsx\"},\"2\":{\"name\":\"keyword.control.type.js.jsx\"}},\"end\":\"(?=$|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"name\":\"meta.export.js.jsx\",\"patterns\":[{\"include\":\"#import-export-declaration\"}]}]},\"expression\":{\"patterns\":[{\"include\":\"#expressionWithoutIdentifiers\"},{\"include\":\"#identifiers\"},{\"include\":\"#expressionPunctuations\"}]},\"expression-inside-possibly-arrow-parens\":{\"patterns\":[{\"include\":\"#expressionWithoutIdentifiers\"},{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#decorator\"},{\"include\":\"#destructuring-parameter\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.js.jsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(override|public|protected|private|readonly)\\\\\\\\s+(?=(override|public|protected|private|readonly)\\\\\\\\s+)\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.js.jsx\"},\"2\":{\"name\":\"keyword.operator.rest.js.jsx\"},\"3\":{\"name\":\"entity.name.function.js.jsx variable.language.this.js.jsx\"},\"4\":{\"name\":\"entity.name.function.js.jsx\"},\"5\":{\"name\":\"keyword.operator.optional.js.jsx\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(override|public|private|protected|readonly)\\\\\\\\s+)?(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*(\\\\\\\\??)(?=\\\\\\\\s*(=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))))|(:\\\\\\\\s*((<)|([(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>)))))))|(:\\\\\\\\s*(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Function(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(:\\\\\\\\s*((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))))|(:\\\\\\\\s*(=>|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>))))))\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.js.jsx\"},\"2\":{\"name\":\"keyword.operator.rest.js.jsx\"},\"3\":{\"name\":\"variable.parameter.js.jsx variable.language.this.js.jsx\"},\"4\":{\"name\":\"variable.parameter.js.jsx\"},\"5\":{\"name\":\"keyword.operator.optional.js.jsx\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(override|public|private|protected|readonly)\\\\\\\\s+)?(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*(\\\\\\\\??)(?=\\\\\\\\s*[:,]|$)\"},{\"include\":\"#type-annotation\"},{\"include\":\"#variable-initializer\"},{\"match\":\",\",\"name\":\"punctuation.separator.parameter.js.jsx\"},{\"include\":\"#identifiers\"},{\"include\":\"#expressionPunctuations\"}]},\"expression-operators\":{\"patterns\":[{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(await)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.flow.js.jsx\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(yield)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))(?=\\\\\\\\s*\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*\\\\\\\\*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.flow.js.jsx\"}},\"end\":\"\\\\\\\\*\",\"endCaptures\":{\"0\":{\"name\":\"keyword.generator.asterisk.js.jsx\"}},\"patterns\":[{\"include\":\"#comment\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.flow.js.jsx\"},\"2\":{\"name\":\"keyword.generator.asterisk.js.jsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(yield)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))(?:\\\\\\\\s*(\\\\\\\\*))?\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))delete(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.expression.delete.js.jsx\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))in(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))(?!\\\\\\\\()\",\"name\":\"keyword.operator.expression.in.js.jsx\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))of(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))(?!\\\\\\\\()\",\"name\":\"keyword.operator.expression.of.js.jsx\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))instanceof(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.expression.instanceof.js.jsx\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))new(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.new.js.jsx\"},{\"include\":\"#typeof-operator\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))void(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.expression.void.js.jsx\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.as.js.jsx\"},\"2\":{\"name\":\"storage.modifier.js.jsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(as)\\\\\\\\s+(const)(?=\\\\\\\\s*($|[;,:})\\\\\\\\]]))\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(as)|(satisfies))\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.as.js.jsx\"},\"2\":{\"name\":\"keyword.control.satisfies.js.jsx\"}},\"end\":\"(?=^|[;),}\\\\\\\\]:?\\\\\\\\-\\\\\\\\+\\\\\\\\>]|\\\\\\\\|\\\\\\\\||\\\\\\\\&\\\\\\\\&|\\\\\\\\!\\\\\\\\=\\\\\\\\=|$|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(as|satisfies)\\\\\\\\s+)|(\\\\\\\\s+\\\\\\\\<))\",\"patterns\":[{\"include\":\"#type\"}]},{\"match\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"name\":\"keyword.operator.spread.js.jsx\"},{\"match\":\"\\\\\\\\*=|(?<!\\\\\\\\()/=|%=|\\\\\\\\+=|\\\\\\\\-=\",\"name\":\"keyword.operator.assignment.compound.js.jsx\"},{\"match\":\"\\\\\\\\&=|\\\\\\\\^=|<<=|>>=|>>>=|\\\\\\\\|=\",\"name\":\"keyword.operator.assignment.compound.bitwise.js.jsx\"},{\"match\":\"<<|>>>|>>\",\"name\":\"keyword.operator.bitwise.shift.js.jsx\"},{\"match\":\"===|!==|==|!=\",\"name\":\"keyword.operator.comparison.js.jsx\"},{\"match\":\"<=|>=|<>|<|>\",\"name\":\"keyword.operator.relational.js.jsx\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.logical.js.jsx\"},\"2\":{\"name\":\"keyword.operator.assignment.compound.js.jsx\"},\"3\":{\"name\":\"keyword.operator.arithmetic.js.jsx\"}},\"match\":\"(?<=[_$[:alnum:]])(\\\\\\\\!)\\\\\\\\s*(?:(/=)|(?:(/)(?![/*])))\"},{\"match\":\"\\\\\\\\!|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\?\\\\\\\\?\",\"name\":\"keyword.operator.logical.js.jsx\"},{\"match\":\"\\\\\\\\&|~|\\\\\\\\^|\\\\\\\\|\",\"name\":\"keyword.operator.bitwise.js.jsx\"},{\"match\":\"\\\\\\\\=\",\"name\":\"keyword.operator.assignment.js.jsx\"},{\"match\":\"--\",\"name\":\"keyword.operator.decrement.js.jsx\"},{\"match\":\"\\\\\\\\+\\\\\\\\+\",\"name\":\"keyword.operator.increment.js.jsx\"},{\"match\":\"%|\\\\\\\\*|/|-|\\\\\\\\+\",\"name\":\"keyword.operator.arithmetic.js.jsx\"},{\"begin\":\"(?<=[_$[:alnum:])\\\\\\\\]])\\\\\\\\s*(?=(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)+(?:(/=)|(?:(/)(?![/*]))))\",\"end\":\"(?:(/=)|(?:(/)(?!\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/)))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.compound.js.jsx\"},\"2\":{\"name\":\"keyword.operator.arithmetic.js.jsx\"}},\"patterns\":[{\"include\":\"#comment\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.operator.assignment.compound.js.jsx\"},\"2\":{\"name\":\"keyword.operator.arithmetic.js.jsx\"}},\"match\":\"(?<=[_$[:alnum:])\\\\\\\\]])\\\\\\\\s*(?:(/=)|(?:(/)(?![/*])))\"}]},\"expressionPunctuations\":{\"patterns\":[{\"include\":\"#punctuation-comma\"},{\"include\":\"#punctuation-accessor\"}]},\"expressionWithoutIdentifiers\":{\"patterns\":[{\"include\":\"#jsx\"},{\"include\":\"#string\"},{\"include\":\"#regex\"},{\"include\":\"#comment\"},{\"include\":\"#function-expression\"},{\"include\":\"#class-expression\"},{\"include\":\"#arrow-function\"},{\"include\":\"#paren-expression-possibly-arrow\"},{\"include\":\"#cast\"},{\"include\":\"#ternary-expression\"},{\"include\":\"#new-expr\"},{\"include\":\"#instanceof-expr\"},{\"include\":\"#object-literal\"},{\"include\":\"#expression-operators\"},{\"include\":\"#function-call\"},{\"include\":\"#literal\"},{\"include\":\"#support-objects\"},{\"include\":\"#paren-expression\"}]},\"field-declaration\":{\"begin\":\"(?<!\\\\\\\\()(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(readonly)\\\\\\\\s+)?(?=\\\\\\\\s*((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(?:(?:(\\\\\\\\?)|(\\\\\\\\!))\\\\\\\\s*)?(=|:|;|,|\\\\\\\\}|$))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.js.jsx\"}},\"end\":\"(?=\\\\\\\\}|;|,|$|(^(?!\\\\\\\\s*((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(?:(?:(\\\\\\\\?)|(\\\\\\\\!))\\\\\\\\s*)?(=|:|;|,|$))))|(?<=\\\\\\\\})\",\"name\":\"meta.field.declaration.js.jsx\",\"patterns\":[{\"include\":\"#variable-initializer\"},{\"include\":\"#type-annotation\"},{\"include\":\"#string\"},{\"include\":\"#array-literal\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#comment\"},{\"captures\":{\"1\":{\"name\":\"meta.definition.property.js.jsx entity.name.function.js.jsx\"},\"2\":{\"name\":\"keyword.operator.optional.js.jsx\"},\"3\":{\"name\":\"keyword.operator.definiteassignment.js.jsx\"}},\"match\":\"(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)(?:(\\\\\\\\?)|(\\\\\\\\!))?(?=\\\\\\\\s*\\\\\\\\s*(=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))))|(:\\\\\\\\s*((<)|([(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>)))))))|(:\\\\\\\\s*(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Function(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(:\\\\\\\\s*((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))))|(:\\\\\\\\s*(=>|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>))))))\"},{\"match\":\"\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"meta.definition.property.js.jsx variable.object.property.js.jsx\"},{\"match\":\"\\\\\\\\?\",\"name\":\"keyword.operator.optional.js.jsx\"},{\"match\":\"\\\\\\\\!\",\"name\":\"keyword.operator.definiteassignment.js.jsx\"}]},\"for-loop\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))for(?=((\\\\\\\\s+|(\\\\\\\\s*\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*))await)?\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)?(\\\\\\\\())\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.loop.js.jsx\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"include\":\"#comment\"},{\"match\":\"await\",\"name\":\"keyword.control.loop.js.jsx\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.js.jsx\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.js.jsx\"}},\"patterns\":[{\"include\":\"#var-expr\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-semicolon\"}]}]},\"function-body\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-parameters\"},{\"include\":\"#function-parameters\"},{\"include\":\"#return-type\"},{\"include\":\"#type-function-return-type\"},{\"include\":\"#decl-block\"},{\"match\":\"\\\\\\\\*\",\"name\":\"keyword.generator.asterisk.js.jsx\"}]},\"function-call\":{\"patterns\":[{\"begin\":\"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\\\\\\\)]))\\\\\\\\s*(?:(\\\\\\\\?\\\\\\\\.\\\\\\\\s*)|(\\\\\\\\!))?((<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))(([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>)*(?<!=)\\\\\\\\>))*(?<!=)\\\\\\\\>)*(?<!=)>\\\\\\\\s*)?\\\\\\\\())\",\"end\":\"(?<=\\\\\\\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\\\\\\\)]))\\\\\\\\s*(?:(\\\\\\\\?\\\\\\\\.\\\\\\\\s*)|(\\\\\\\\!))?((<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))(([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>)*(?<!=)\\\\\\\\>))*(?<!=)\\\\\\\\>)*(?<!=)>\\\\\\\\s*)?\\\\\\\\())\",\"patterns\":[{\"begin\":\"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))\",\"end\":\"(?=\\\\\\\\s*(?:(\\\\\\\\?\\\\\\\\.\\\\\\\\s*)|(\\\\\\\\!))?((<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))(([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>)*(?<!=)\\\\\\\\>))*(?<!=)\\\\\\\\>)*(?<!=)>\\\\\\\\s*)?\\\\\\\\())\",\"name\":\"meta.function-call.js.jsx\",\"patterns\":[{\"include\":\"#function-call-target\"}]},{\"include\":\"#comment\"},{\"include\":\"#function-call-optionals\"},{\"include\":\"#type-arguments\"},{\"include\":\"#paren-expression\"}]},{\"begin\":\"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\\\\\\\)]))(<\\\\\\\\s*[\\\\\\\\{\\\\\\\\[\\\\\\\\(]\\\\\\\\s*$))\",\"end\":\"(?<=\\\\\\\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\\\\\\\)]))(<\\\\\\\\s*[\\\\\\\\{\\\\\\\\[\\\\\\\\(]\\\\\\\\s*$))\",\"patterns\":[{\"begin\":\"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))\",\"end\":\"(?=(<\\\\\\\\s*[\\\\\\\\{\\\\\\\\[\\\\\\\\(]\\\\\\\\s*$))\",\"name\":\"meta.function-call.js.jsx\",\"patterns\":[{\"include\":\"#function-call-target\"}]},{\"include\":\"#comment\"},{\"include\":\"#function-call-optionals\"},{\"include\":\"#type-arguments\"}]}]},\"function-call-optionals\":{\"patterns\":[{\"match\":\"\\\\\\\\?\\\\\\\\.\",\"name\":\"meta.function-call.js.jsx punctuation.accessor.optional.js.jsx\"},{\"match\":\"\\\\\\\\!\",\"name\":\"meta.function-call.js.jsx keyword.operator.definiteassignment.js.jsx\"}]},\"function-call-target\":{\"patterns\":[{\"include\":\"#support-function-call-identifiers\"},{\"match\":\"(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)\",\"name\":\"entity.name.function.js.jsx\"}]},\"function-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?(?:(async)\\\\\\\\s+)?(function\\\\\\\\b)(?:\\\\\\\\s*(\\\\\\\\*))?(?:(?:\\\\\\\\s+|(?<=\\\\\\\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js.jsx\"},\"2\":{\"name\":\"storage.modifier.js.jsx\"},\"3\":{\"name\":\"storage.modifier.async.js.jsx\"},\"4\":{\"name\":\"storage.type.function.js.jsx\"},\"5\":{\"name\":\"keyword.generator.asterisk.js.jsx\"},\"6\":{\"name\":\"meta.definition.function.js.jsx entity.name.function.js.jsx\"}},\"end\":\"(?=;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))|(?<=\\\\\\\\})\",\"name\":\"meta.function.js.jsx\",\"patterns\":[{\"include\":\"#function-name\"},{\"include\":\"#function-body\"}]},\"function-expression\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(async)\\\\\\\\s+)?(function\\\\\\\\b)(?:\\\\\\\\s*(\\\\\\\\*))?(?:(?:\\\\\\\\s+|(?<=\\\\\\\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.js.jsx\"},\"2\":{\"name\":\"storage.type.function.js.jsx\"},\"3\":{\"name\":\"keyword.generator.asterisk.js.jsx\"},\"4\":{\"name\":\"meta.definition.function.js.jsx entity.name.function.js.jsx\"}},\"end\":\"(?=;)|(?<=\\\\\\\\})\",\"name\":\"meta.function.expression.js.jsx\",\"patterns\":[{\"include\":\"#function-name\"},{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#function-body\"}]},\"function-name\":{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"meta.definition.function.js.jsx entity.name.function.js.jsx\"},\"function-parameters\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.begin.js.jsx\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.js.jsx\"}},\"name\":\"meta.parameters.js.jsx\",\"patterns\":[{\"include\":\"#function-parameters-body\"}]},\"function-parameters-body\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#decorator\"},{\"include\":\"#destructuring-parameter\"},{\"include\":\"#parameter-name\"},{\"include\":\"#parameter-type-annotation\"},{\"include\":\"#variable-initializer\"},{\"match\":\",\",\"name\":\"punctuation.separator.parameter.js.jsx\"}]},\"identifiers\":{\"patterns\":[{\"include\":\"#object-identifiers\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.js.jsx\"},\"2\":{\"name\":\"punctuation.accessor.optional.js.jsx\"},\"3\":{\"name\":\"entity.name.function.js.jsx\"}},\"match\":\"(?:(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\\\\\\\s*=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))))\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.js.jsx\"},\"2\":{\"name\":\"punctuation.accessor.optional.js.jsx\"},\"3\":{\"name\":\"variable.other.constant.property.js.jsx\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(\\\\\\\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.js.jsx\"},\"2\":{\"name\":\"punctuation.accessor.optional.js.jsx\"},\"3\":{\"name\":\"variable.other.property.js.jsx\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)\"},{\"match\":\"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])\",\"name\":\"variable.other.constant.js.jsx\"},{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"variable.other.readwrite.js.jsx\"}]},\"if-statement\":{\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?=\\\\\\\\bif\\\\\\\\s*(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))\\\\\\\\s*(?!\\\\\\\\{))\",\"end\":\"(?=;|$|\\\\\\\\})\",\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(if)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.conditional.js.jsx\"},\"2\":{\"name\":\"meta.brace.round.js.jsx\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.js.jsx\"}},\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\"(?<=\\\\\\\\))\\\\\\\\s*\\\\\\\\/(?![\\\\\\\\/*])(?=(?:[^\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\\\[]|\\\\\\\\\\\\\\\\.|\\\\\\\\[([^\\\\\\\\]\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\])+\\\\\\\\/([dgimsuvy]+|(?![\\\\\\\\/\\\\\\\\*])|(?=\\\\\\\\/\\\\\\\\*))(?!\\\\\\\\s*[a-zA-Z0-9_$]))\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.js.jsx\"}},\"end\":\"(/)([dgimsuvy]*)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.js.jsx\"},\"2\":{\"name\":\"keyword.other.js.jsx\"}},\"name\":\"string.regexp.js.jsx\",\"patterns\":[{\"include\":\"#regexp\"}]},{\"include\":\"#statements\"}]}]},\"import-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(import)(?:\\\\\\\\s+(type)(?!\\\\\\\\s+from))?(?!\\\\\\\\s*[:\\\\\\\\(])(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js.jsx\"},\"2\":{\"name\":\"storage.modifier.js.jsx\"},\"3\":{\"name\":\"keyword.control.import.js.jsx\"},\"4\":{\"name\":\"keyword.control.type.js.jsx\"}},\"end\":\"(?<!^import|[^\\\\\\\\._$[:alnum:]]import)(?=;|$|^)\",\"name\":\"meta.import.js.jsx\",\"patterns\":[{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"begin\":\"(?<=^import|[^\\\\\\\\._$[:alnum:]]import)(?!\\\\\\\\s*[\\\\\"'])\",\"end\":\"\\\\\\\\bfrom\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.from.js.jsx\"}},\"patterns\":[{\"include\":\"#import-export-declaration\"}]},{\"include\":\"#import-export-declaration\"}]},\"import-equals-declaration\":{\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(import)(?:\\\\\\\\s+(type))?\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(=)\\\\\\\\s*(require)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js.jsx\"},\"2\":{\"name\":\"storage.modifier.js.jsx\"},\"3\":{\"name\":\"keyword.control.import.js.jsx\"},\"4\":{\"name\":\"keyword.control.type.js.jsx\"},\"5\":{\"name\":\"variable.other.readwrite.alias.js.jsx\"},\"6\":{\"name\":\"keyword.operator.assignment.js.jsx\"},\"7\":{\"name\":\"keyword.control.require.js.jsx\"},\"8\":{\"name\":\"meta.brace.round.js.jsx\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.js.jsx\"}},\"name\":\"meta.import-equals.external.js.jsx\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"}]},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(import)(?:\\\\\\\\s+(type))?\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(=)\\\\\\\\s*(?!require\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js.jsx\"},\"2\":{\"name\":\"storage.modifier.js.jsx\"},\"3\":{\"name\":\"keyword.control.import.js.jsx\"},\"4\":{\"name\":\"keyword.control.type.js.jsx\"},\"5\":{\"name\":\"variable.other.readwrite.alias.js.jsx\"},\"6\":{\"name\":\"keyword.operator.assignment.js.jsx\"}},\"end\":\"(?=;|$|^)\",\"name\":\"meta.import-equals.internal.js.jsx\",\"patterns\":[{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#comment\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.module.js.jsx\"},\"2\":{\"name\":\"punctuation.accessor.js.jsx\"},\"3\":{\"name\":\"punctuation.accessor.optional.js.jsx\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\"},{\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"name\":\"variable.other.readwrite.js.jsx\"}]}]},\"import-export-assert-clause\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(with)|(assert))\\\\\\\\s*(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.with.js.jsx\"},\"2\":{\"name\":\"keyword.control.assert.js.jsx\"},\"3\":{\"name\":\"punctuation.definition.block.js.jsx\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js.jsx\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"match\":\"(?:[_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?=(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*:)\",\"name\":\"meta.object-literal.key.js.jsx\"},{\"match\":\":\",\"name\":\"punctuation.separator.key-value.js.jsx\"}]},\"import-export-block\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js.jsx\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js.jsx\"}},\"name\":\"meta.block.js.jsx\",\"patterns\":[{\"include\":\"#import-export-clause\"}]},\"import-export-clause\":{\"patterns\":[{\"include\":\"#comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.type.js.jsx\"},\"2\":{\"name\":\"keyword.control.default.js.jsx\"},\"3\":{\"name\":\"constant.language.import-export-all.js.jsx\"},\"4\":{\"name\":\"variable.other.readwrite.js.jsx\"},\"5\":{\"name\":\"string.quoted.alias.js.jsx\"},\"12\":{\"name\":\"keyword.control.as.js.jsx\"},\"13\":{\"name\":\"keyword.control.default.js.jsx\"},\"14\":{\"name\":\"variable.other.readwrite.alias.js.jsx\"},\"15\":{\"name\":\"string.quoted.alias.js.jsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(?:(\\\\\\\\btype)\\\\\\\\s+)?(?:(\\\\\\\\bdefault)|(\\\\\\\\*)|(\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*)|((\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))))\\\\\\\\s+(as)\\\\\\\\s+(?:(default(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|([_$[:alpha:]][_$[:alnum:]]*)|((\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)))\"},{\"include\":\"#punctuation-comma\"},{\"match\":\"\\\\\\\\*\",\"name\":\"constant.language.import-export-all.js.jsx\"},{\"match\":\"\\\\\\\\b(default)\\\\\\\\b\",\"name\":\"keyword.control.default.js.jsx\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.type.js.jsx\"},\"2\":{\"name\":\"variable.other.readwrite.alias.js.jsx\"},\"3\":{\"name\":\"string.quoted.alias.js.jsx\"}},\"match\":\"(?:(\\\\\\\\btype)\\\\\\\\s+)?(?:([_$[:alpha:]][_$[:alnum:]]*)|((\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)))\"}]},\"import-export-declaration\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#import-export-block\"},{\"match\":\"\\\\\\\\bfrom\\\\\\\\b\",\"name\":\"keyword.control.from.js.jsx\"},{\"include\":\"#import-export-assert-clause\"},{\"include\":\"#import-export-clause\"}]},\"indexer-declaration\":{\"begin\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(readonly)\\\\\\\\s*)?\\\\\\\\s*(\\\\\\\\[)\\\\\\\\s*([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?=:)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.js.jsx\"},\"2\":{\"name\":\"meta.brace.square.js.jsx\"},\"3\":{\"name\":\"variable.parameter.js.jsx\"}},\"end\":\"(\\\\\\\\])\\\\\\\\s*(\\\\\\\\?\\\\\\\\s*)?|$\",\"endCaptures\":{\"1\":{\"name\":\"meta.brace.square.js.jsx\"},\"2\":{\"name\":\"keyword.operator.optional.js.jsx\"}},\"name\":\"meta.indexer.declaration.js.jsx\",\"patterns\":[{\"include\":\"#type-annotation\"}]},\"indexer-mapped-type-declaration\":{\"begin\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))([+-])?(readonly)\\\\\\\\s*)?\\\\\\\\s*(\\\\\\\\[)\\\\\\\\s*([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s+(in)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.modifier.js.jsx\"},\"2\":{\"name\":\"storage.modifier.js.jsx\"},\"3\":{\"name\":\"meta.brace.square.js.jsx\"},\"4\":{\"name\":\"entity.name.type.js.jsx\"},\"5\":{\"name\":\"keyword.operator.expression.in.js.jsx\"}},\"end\":\"(\\\\\\\\])([+-])?\\\\\\\\s*(\\\\\\\\?\\\\\\\\s*)?|$\",\"endCaptures\":{\"1\":{\"name\":\"meta.brace.square.js.jsx\"},\"2\":{\"name\":\"keyword.operator.type.modifier.js.jsx\"},\"3\":{\"name\":\"keyword.operator.optional.js.jsx\"}},\"name\":\"meta.indexer.mappedtype.declaration.js.jsx\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.as.js.jsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(as)\\\\\\\\s+\"},{\"include\":\"#type\"}]},\"inline-tags\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.bracket.square.begin.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.bracket.square.end.jsdoc\"}},\"match\":\"(\\\\\\\\[)[^\\\\\\\\]]+(\\\\\\\\])(?={@(?:link|linkcode|linkplain|tutorial))\",\"name\":\"constant.other.description.jsdoc\"},{\"begin\":\"({)((@)(?:link(?:code|plain)?|tutorial))\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.bracket.curly.begin.jsdoc\"},\"2\":{\"name\":\"storage.type.class.jsdoc\"},\"3\":{\"name\":\"punctuation.definition.inline.tag.jsdoc\"}},\"end\":\"}|(?=\\\\\\\\*/)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.bracket.curly.end.jsdoc\"}},\"name\":\"entity.name.type.instance.jsdoc\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.other.link.underline.jsdoc\"},\"2\":{\"name\":\"punctuation.separator.pipe.jsdoc\"}},\"match\":\"\\\\\\\\G((?=https?://)(?:[^|}\\\\\\\\s*]|\\\\\\\\*[/])+)(\\\\\\\\|)?\"},{\"captures\":{\"1\":{\"name\":\"variable.other.description.jsdoc\"},\"2\":{\"name\":\"punctuation.separator.pipe.jsdoc\"}},\"match\":\"\\\\\\\\G((?:[^{}@\\\\\\\\s|*]|\\\\\\\\*[^/])+)(\\\\\\\\|)?\"}]}]},\"instanceof-expr\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(instanceof)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.expression.instanceof.js.jsx\"}},\"end\":\"(?<=\\\\\\\\))|(?=[;),}\\\\\\\\]:?\\\\\\\\-\\\\\\\\+\\\\\\\\>]|\\\\\\\\|\\\\\\\\||\\\\\\\\&\\\\\\\\&|\\\\\\\\!\\\\\\\\=\\\\\\\\=|$|(===|!==|==|!=)|(([\\\\\\\\&\\\\\\\\~\\\\\\\\^\\\\\\\\|]\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+instanceof(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))function((\\\\\\\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\s*[\\\\\\\\(]))))\",\"patterns\":[{\"include\":\"#type\"}]},\"interface-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(?:(abstract)\\\\\\\\s+)?\\\\\\\\b(interface)\\\\\\\\b(?=\\\\\\\\s+|/[/*])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js.jsx\"},\"2\":{\"name\":\"storage.modifier.js.jsx\"},\"3\":{\"name\":\"storage.modifier.js.jsx\"},\"4\":{\"name\":\"storage.type.interface.js.jsx\"}},\"end\":\"(?<=\\\\\\\\})\",\"name\":\"meta.interface.js.jsx\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#class-or-interface-heritage\"},{\"captures\":{\"0\":{\"name\":\"entity.name.type.interface.js.jsx\"}},\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\"},{\"include\":\"#type-parameters\"},{\"include\":\"#class-or-interface-body\"}]},\"jsdoctype\":{\"patterns\":[{\"begin\":\"\\\\\\\\G({)\",\"beginCaptures\":{\"0\":{\"name\":\"entity.name.type.instance.jsdoc\"},\"1\":{\"name\":\"punctuation.definition.bracket.curly.begin.jsdoc\"}},\"contentName\":\"entity.name.type.instance.jsdoc\",\"end\":\"((}))\\\\\\\\s*|(?=\\\\\\\\*/)\",\"endCaptures\":{\"1\":{\"name\":\"entity.name.type.instance.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.bracket.curly.end.jsdoc\"}},\"patterns\":[{\"include\":\"#brackets\"}]}]},\"jsx\":{\"patterns\":[{\"include\":\"#jsx-tag-without-attributes-in-expression\"},{\"include\":\"#jsx-tag-in-expression\"}]},\"jsx-children\":{\"patterns\":[{\"include\":\"#jsx-tag-without-attributes\"},{\"include\":\"#jsx-tag\"},{\"include\":\"#jsx-evaluated-code\"},{\"include\":\"#jsx-entities\"}]},\"jsx-entities\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.js.jsx\"},\"3\":{\"name\":\"punctuation.definition.entity.js.jsx\"}},\"match\":\"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)\",\"name\":\"constant.character.entity.js.jsx\"}]},\"jsx-evaluated-code\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.js.jsx\"}},\"contentName\":\"meta.embedded.expression.js.jsx\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.js.jsx\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"jsx-string-double-quoted\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.js.jsx\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.js.jsx\"}},\"name\":\"string.quoted.double.js.jsx\",\"patterns\":[{\"include\":\"#jsx-entities\"}]},\"jsx-string-single-quoted\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.js.jsx\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.js.jsx\"}},\"name\":\"string.quoted.single.js.jsx\",\"patterns\":[{\"include\":\"#jsx-entities\"}]},\"jsx-tag\":{\"begin\":\"(?=(<)\\\\\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\\\\\\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\\\\\\\.|-))(?=((<\\\\\\\\s*)|(\\\\\\\\s+))(?!\\\\\\\\?)|\\\\\\\\/?>))\",\"end\":\"(/>)|(?:(</)\\\\\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\\\\\\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\\\\\\\.|-))?\\\\\\\\s*(>))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.js.jsx\"},\"2\":{\"name\":\"punctuation.definition.tag.begin.js.jsx\"},\"3\":{\"name\":\"entity.name.tag.namespace.js.jsx\"},\"4\":{\"name\":\"punctuation.separator.namespace.js.jsx\"},\"5\":{\"name\":\"entity.name.tag.js.jsx\"},\"6\":{\"name\":\"support.class.component.js.jsx\"},\"7\":{\"name\":\"punctuation.definition.tag.end.js.jsx\"}},\"name\":\"meta.tag.js.jsx\",\"patterns\":[{\"begin\":\"(<)\\\\\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\\\\\\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\\\\\\\.|-))(?=((<\\\\\\\\s*)|(\\\\\\\\s+))(?!\\\\\\\\?)|\\\\\\\\/?>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.js.jsx\"},\"2\":{\"name\":\"entity.name.tag.namespace.js.jsx\"},\"3\":{\"name\":\"punctuation.separator.namespace.js.jsx\"},\"4\":{\"name\":\"entity.name.tag.js.jsx\"},\"5\":{\"name\":\"support.class.component.js.jsx\"}},\"end\":\"(?=[/]?>)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-arguments\"},{\"include\":\"#jsx-tag-attributes\"}]},{\"begin\":\"(>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.js.jsx\"}},\"contentName\":\"meta.jsx.children.js.jsx\",\"end\":\"(?=</)\",\"patterns\":[{\"include\":\"#jsx-children\"}]}]},\"jsx-tag-attribute-assignment\":{\"match\":\"=(?=\\\\\\\\s*(?:'|\\\\\"|{|/\\\\\\\\*|//|\\\\\\\\n))\",\"name\":\"keyword.operator.assignment.js.jsx\"},\"jsx-tag-attribute-name\":{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.namespace.js.jsx\"},\"2\":{\"name\":\"punctuation.separator.namespace.js.jsx\"},\"3\":{\"name\":\"entity.other.attribute-name.js.jsx\"}},\"match\":\"\\\\\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(:))?([_$[:alpha:]][-_$[:alnum:]]*)(?=\\\\\\\\s|=|/?>|/\\\\\\\\*|//)\"},\"jsx-tag-attributes\":{\"begin\":\"\\\\\\\\s+\",\"end\":\"(?=[/]?>)\",\"name\":\"meta.tag.attributes.js.jsx\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#jsx-tag-attribute-name\"},{\"include\":\"#jsx-tag-attribute-assignment\"},{\"include\":\"#jsx-string-double-quoted\"},{\"include\":\"#jsx-string-single-quoted\"},{\"include\":\"#jsx-evaluated-code\"},{\"include\":\"#jsx-tag-attributes-illegal\"}]},\"jsx-tag-attributes-illegal\":{\"match\":\"\\\\\\\\S+\",\"name\":\"invalid.illegal.attribute.js.jsx\"},\"jsx-tag-in-expression\":{\"begin\":\"(?<!\\\\\\\\+\\\\\\\\+|--)(?<=[({\\\\\\\\[,?=>:*]|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\?|\\\\\\\\*\\\\\\\\/|^await|[^\\\\\\\\._$[:alnum:]]await|^return|[^\\\\\\\\._$[:alnum:]]return|^default|[^\\\\\\\\._$[:alnum:]]default|^yield|[^\\\\\\\\._$[:alnum:]]yield|^)\\\\\\\\s*(?!<\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*((\\\\\\\\s+extends\\\\\\\\s+[^=>])|,))(?=(<)\\\\\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\\\\\\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\\\\\\\.|-))(?=((<\\\\\\\\s*)|(\\\\\\\\s+))(?!\\\\\\\\?)|\\\\\\\\/?>))\",\"end\":\"(?!(<)\\\\\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\\\\\\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\\\\\\\.|-))(?=((<\\\\\\\\s*)|(\\\\\\\\s+))(?!\\\\\\\\?)|\\\\\\\\/?>))\",\"patterns\":[{\"include\":\"#jsx-tag\"}]},\"jsx-tag-without-attributes\":{\"begin\":\"(<)\\\\\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\\\\\\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\\\\\\\.|-))?\\\\\\\\s*(>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.js.jsx\"},\"2\":{\"name\":\"entity.name.tag.namespace.js.jsx\"},\"3\":{\"name\":\"punctuation.separator.namespace.js.jsx\"},\"4\":{\"name\":\"entity.name.tag.js.jsx\"},\"5\":{\"name\":\"support.class.component.js.jsx\"},\"6\":{\"name\":\"punctuation.definition.tag.end.js.jsx\"}},\"contentName\":\"meta.jsx.children.js.jsx\",\"end\":\"(</)\\\\\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\\\\\\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\\\\\\\.|-))?\\\\\\\\s*(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.js.jsx\"},\"2\":{\"name\":\"entity.name.tag.namespace.js.jsx\"},\"3\":{\"name\":\"punctuation.separator.namespace.js.jsx\"},\"4\":{\"name\":\"entity.name.tag.js.jsx\"},\"5\":{\"name\":\"support.class.component.js.jsx\"},\"6\":{\"name\":\"punctuation.definition.tag.end.js.jsx\"}},\"name\":\"meta.tag.without-attributes.js.jsx\",\"patterns\":[{\"include\":\"#jsx-children\"}]},\"jsx-tag-without-attributes-in-expression\":{\"begin\":\"(?<!\\\\\\\\+\\\\\\\\+|--)(?<=[({\\\\\\\\[,?=>:*]|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\?|\\\\\\\\*\\\\\\\\/|^await|[^\\\\\\\\._$[:alnum:]]await|^return|[^\\\\\\\\._$[:alnum:]]return|^default|[^\\\\\\\\._$[:alnum:]]default|^yield|[^\\\\\\\\._$[:alnum:]]yield|^)\\\\\\\\s*(?=(<)\\\\\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\\\\\\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\\\\\\\.|-))?\\\\\\\\s*(>))\",\"end\":\"(?!(<)\\\\\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\\\\\\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\\\\\\\.|-))?\\\\\\\\s*(>))\",\"patterns\":[{\"include\":\"#jsx-tag-without-attributes\"}]},\"label\":{\"patterns\":[{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(:)(?=\\\\\\\\s*\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.label.js.jsx\"},\"2\":{\"name\":\"punctuation.separator.label.js.jsx\"}},\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#decl-block\"}]},{\"captures\":{\"1\":{\"name\":\"entity.name.label.js.jsx\"},\"2\":{\"name\":\"punctuation.separator.label.js.jsx\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(:)\"}]},\"literal\":{\"patterns\":[{\"include\":\"#numeric-literal\"},{\"include\":\"#boolean-literal\"},{\"include\":\"#null-literal\"},{\"include\":\"#undefined-literal\"},{\"include\":\"#numericConstant-literal\"},{\"include\":\"#array-literal\"},{\"include\":\"#this-literal\"},{\"include\":\"#super-literal\"}]},\"method-declaration\":{\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:\\\\\\\\b(override)\\\\\\\\s+)?(?:\\\\\\\\b(public|private|protected)\\\\\\\\s+)?(?:\\\\\\\\b(abstract)\\\\\\\\s+)?(?:\\\\\\\\b(async)\\\\\\\\s+)?\\\\\\\\s*\\\\\\\\b(constructor)\\\\\\\\b(?!:)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.js.jsx\"},\"2\":{\"name\":\"storage.modifier.js.jsx\"},\"3\":{\"name\":\"storage.modifier.js.jsx\"},\"4\":{\"name\":\"storage.modifier.async.js.jsx\"},\"5\":{\"name\":\"storage.type.js.jsx\"}},\"end\":\"(?=\\\\\\\\}|;|,|$)|(?<=\\\\\\\\})\",\"name\":\"meta.method.declaration.js.jsx\",\"patterns\":[{\"include\":\"#method-declaration-name\"},{\"include\":\"#function-body\"}]},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:\\\\\\\\b(override)\\\\\\\\s+)?(?:\\\\\\\\b(public|private|protected)\\\\\\\\s+)?(?:\\\\\\\\b(abstract)\\\\\\\\s+)?(?:\\\\\\\\b(async)\\\\\\\\s+)?(?:(?:\\\\\\\\s*\\\\\\\\b(new)\\\\\\\\b(?!:)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(?:(\\\\\\\\*)\\\\\\\\s*)?)(?=\\\\\\\\s*((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*))?[\\\\\\\\(])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.js.jsx\"},\"2\":{\"name\":\"storage.modifier.js.jsx\"},\"3\":{\"name\":\"storage.modifier.js.jsx\"},\"4\":{\"name\":\"storage.modifier.async.js.jsx\"},\"5\":{\"name\":\"keyword.operator.new.js.jsx\"},\"6\":{\"name\":\"keyword.generator.asterisk.js.jsx\"}},\"end\":\"(?=\\\\\\\\}|;|,|$)|(?<=\\\\\\\\})\",\"name\":\"meta.method.declaration.js.jsx\",\"patterns\":[{\"include\":\"#method-declaration-name\"},{\"include\":\"#function-body\"}]},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:\\\\\\\\b(override)\\\\\\\\s+)?(?:\\\\\\\\b(public|private|protected)\\\\\\\\s+)?(?:\\\\\\\\b(abstract)\\\\\\\\s+)?(?:\\\\\\\\b(async)\\\\\\\\s+)?(?:\\\\\\\\b(get|set)\\\\\\\\s+)?(?:(\\\\\\\\*)\\\\\\\\s*)?(?=\\\\\\\\s*(((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(\\\\\\\\??))\\\\\\\\s*((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*))?[\\\\\\\\(])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.js.jsx\"},\"2\":{\"name\":\"storage.modifier.js.jsx\"},\"3\":{\"name\":\"storage.modifier.js.jsx\"},\"4\":{\"name\":\"storage.modifier.async.js.jsx\"},\"5\":{\"name\":\"storage.type.property.js.jsx\"},\"6\":{\"name\":\"keyword.generator.asterisk.js.jsx\"}},\"end\":\"(?=\\\\\\\\}|;|,|$)|(?<=\\\\\\\\})\",\"name\":\"meta.method.declaration.js.jsx\",\"patterns\":[{\"include\":\"#method-declaration-name\"},{\"include\":\"#function-body\"}]}]},\"method-declaration-name\":{\"begin\":\"(?=((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(\\\\\\\\??)\\\\\\\\s*[\\\\\\\\(\\\\\\\\<])\",\"end\":\"(?=\\\\\\\\(|\\\\\\\\<)\",\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#array-literal\"},{\"include\":\"#numeric-literal\"},{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"meta.definition.method.js.jsx entity.name.function.js.jsx\"},{\"match\":\"\\\\\\\\?\",\"name\":\"keyword.operator.optional.js.jsx\"}]},\"namespace-declaration\":{\"begin\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(namespace|module)\\\\\\\\s+(?=[_$[:alpha:]\\\\\"'\\`]))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js.jsx\"},\"2\":{\"name\":\"storage.modifier.js.jsx\"},\"3\":{\"name\":\"storage.type.namespace.js.jsx\"}},\"end\":\"(?<=\\\\\\\\})|(?=;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"name\":\"meta.namespace.declaration.js.jsx\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"name\":\"entity.name.type.module.js.jsx\"},{\"include\":\"#punctuation-accessor\"},{\"include\":\"#decl-block\"}]},\"new-expr\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(new)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.new.js.jsx\"}},\"end\":\"(?<=\\\\\\\\))|(?=[;),}\\\\\\\\]:?\\\\\\\\-\\\\\\\\+\\\\\\\\>]|\\\\\\\\|\\\\\\\\||\\\\\\\\&\\\\\\\\&|\\\\\\\\!\\\\\\\\=\\\\\\\\=|$|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))new(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))function((\\\\\\\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\s*[\\\\\\\\(]))))\",\"name\":\"new.expr.js.jsx\",\"patterns\":[{\"include\":\"#expression\"}]},\"null-literal\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))null(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.null.js.jsx\"},\"numeric-literal\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.numeric.bigint.js.jsx\"}},\"match\":\"\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.numeric.hex.js.jsx\"},{\"captures\":{\"1\":{\"name\":\"storage.type.numeric.bigint.js.jsx\"}},\"match\":\"\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.numeric.binary.js.jsx\"},{\"captures\":{\"1\":{\"name\":\"storage.type.numeric.bigint.js.jsx\"}},\"match\":\"\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.numeric.octal.js.jsx\"},{\"captures\":{\"0\":{\"name\":\"constant.numeric.decimal.js.jsx\"},\"1\":{\"name\":\"meta.delimiter.decimal.period.js.jsx\"},\"2\":{\"name\":\"storage.type.numeric.bigint.js.jsx\"},\"3\":{\"name\":\"meta.delimiter.decimal.period.js.jsx\"},\"4\":{\"name\":\"storage.type.numeric.bigint.js.jsx\"},\"5\":{\"name\":\"meta.delimiter.decimal.period.js.jsx\"},\"6\":{\"name\":\"storage.type.numeric.bigint.js.jsx\"},\"7\":{\"name\":\"storage.type.numeric.bigint.js.jsx\"},\"8\":{\"name\":\"meta.delimiter.decimal.period.js.jsx\"},\"9\":{\"name\":\"storage.type.numeric.bigint.js.jsx\"},\"10\":{\"name\":\"meta.delimiter.decimal.period.js.jsx\"},\"11\":{\"name\":\"storage.type.numeric.bigint.js.jsx\"},\"12\":{\"name\":\"meta.delimiter.decimal.period.js.jsx\"},\"13\":{\"name\":\"storage.type.numeric.bigint.js.jsx\"},\"14\":{\"name\":\"storage.type.numeric.bigint.js.jsx\"}},\"match\":\"(?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$)\"}]},\"numericConstant-literal\":{\"patterns\":[{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))NaN(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.nan.js.jsx\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Infinity(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.infinity.js.jsx\"}]},\"object-binding-element\":{\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?=((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(:))\",\"end\":\"(?=,|\\\\\\\\})\",\"patterns\":[{\"include\":\"#object-binding-element-propertyName\"},{\"include\":\"#binding-element\"}]},{\"include\":\"#object-binding-pattern\"},{\"include\":\"#destructuring-variable-rest\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#punctuation-comma\"}]},\"object-binding-element-const\":{\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?=((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(:))\",\"end\":\"(?=,|\\\\\\\\})\",\"patterns\":[{\"include\":\"#object-binding-element-propertyName\"},{\"include\":\"#binding-element-const\"}]},{\"include\":\"#object-binding-pattern-const\"},{\"include\":\"#destructuring-variable-rest-const\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#punctuation-comma\"}]},\"object-binding-element-propertyName\":{\"begin\":\"(?=((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(:))\",\"end\":\"(:)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.destructuring.js.jsx\"}},\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#array-literal\"},{\"include\":\"#numeric-literal\"},{\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"name\":\"variable.object.property.js.jsx\"}]},\"object-binding-pattern\":{\"begin\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.js.jsx\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.object.js.jsx\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.object.js.jsx\"}},\"patterns\":[{\"include\":\"#object-binding-element\"}]},\"object-binding-pattern-const\":{\"begin\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.js.jsx\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.object.js.jsx\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.object.js.jsx\"}},\"patterns\":[{\"include\":\"#object-binding-element-const\"}]},\"object-identifiers\":{\"patterns\":[{\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)(?=\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*prototype\\\\\\\\b(?!\\\\\\\\$))\",\"name\":\"support.class.js.jsx\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.js.jsx\"},\"2\":{\"name\":\"punctuation.accessor.optional.js.jsx\"},\"3\":{\"name\":\"variable.other.constant.object.property.js.jsx\"},\"4\":{\"name\":\"variable.other.object.property.js.jsx\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(?:(\\\\\\\\#?[[:upper:]][_$[:digit:][:upper:]]*)|(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))(?=\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)\"},{\"captures\":{\"1\":{\"name\":\"variable.other.constant.object.js.jsx\"},\"2\":{\"name\":\"variable.other.object.js.jsx\"}},\"match\":\"(?:([[:upper:]][_$[:digit:][:upper:]]*)|([_$[:alpha:]][_$[:alnum:]]*))(?=\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)\"}]},\"object-literal\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js.jsx\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js.jsx\"}},\"name\":\"meta.objectliteral.js.jsx\",\"patterns\":[{\"include\":\"#object-member\"}]},\"object-literal-method-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:\\\\\\\\b(async)\\\\\\\\s+)?(?:\\\\\\\\b(get|set)\\\\\\\\s+)?(?:(\\\\\\\\*)\\\\\\\\s*)?(?=\\\\\\\\s*(((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(\\\\\\\\??))\\\\\\\\s*((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*))?[\\\\\\\\(])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.js.jsx\"},\"2\":{\"name\":\"storage.type.property.js.jsx\"},\"3\":{\"name\":\"keyword.generator.asterisk.js.jsx\"}},\"end\":\"(?=\\\\\\\\}|;|,)|(?<=\\\\\\\\})\",\"name\":\"meta.method.declaration.js.jsx\",\"patterns\":[{\"include\":\"#method-declaration-name\"},{\"include\":\"#function-body\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:\\\\\\\\b(async)\\\\\\\\s+)?(?:\\\\\\\\b(get|set)\\\\\\\\s+)?(?:(\\\\\\\\*)\\\\\\\\s*)?(?=\\\\\\\\s*(((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(\\\\\\\\??))\\\\\\\\s*((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*))?[\\\\\\\\(])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.js.jsx\"},\"2\":{\"name\":\"storage.type.property.js.jsx\"},\"3\":{\"name\":\"keyword.generator.asterisk.js.jsx\"}},\"end\":\"(?=\\\\\\\\(|\\\\\\\\<)\",\"patterns\":[{\"include\":\"#method-declaration-name\"}]}]},\"object-member\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#object-literal-method-declaration\"},{\"begin\":\"(?=\\\\\\\\[)\",\"end\":\"(?=:)|((?<=[\\\\\\\\]])(?=\\\\\\\\s*[\\\\\\\\(\\\\\\\\<]))\",\"name\":\"meta.object.member.js.jsx meta.object-literal.key.js.jsx\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#array-literal\"}]},{\"begin\":\"(?=[\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`])\",\"end\":\"(?=:)|((?<=[\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`])(?=((\\\\\\\\s*[\\\\\\\\(\\\\\\\\<,}])|(\\\\\\\\s+(as|satisifies)\\\\\\\\s+))))\",\"name\":\"meta.object.member.js.jsx meta.object-literal.key.js.jsx\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"}]},{\"begin\":\"(?=(\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$)))\",\"end\":\"(?=:)|(?=\\\\\\\\s*([\\\\\\\\(\\\\\\\\<,}])|(\\\\\\\\s+as|satisifies\\\\\\\\s+))\",\"name\":\"meta.object.member.js.jsx meta.object-literal.key.js.jsx\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#numeric-literal\"}]},{\"begin\":\"(?<=[\\\\\\\\]\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`])(?=\\\\\\\\s*[\\\\\\\\(\\\\\\\\<])\",\"end\":\"(?=\\\\\\\\}|;|,)|(?<=\\\\\\\\})\",\"name\":\"meta.method.declaration.js.jsx\",\"patterns\":[{\"include\":\"#function-body\"}]},{\"captures\":{\"0\":{\"name\":\"meta.object-literal.key.js.jsx\"},\"1\":{\"name\":\"constant.numeric.decimal.js.jsx\"}},\"match\":\"(?![_$[:alpha:]])([[:digit:]]+)\\\\\\\\s*(?=(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*:)\",\"name\":\"meta.object.member.js.jsx\"},{\"captures\":{\"0\":{\"name\":\"meta.object-literal.key.js.jsx\"},\"1\":{\"name\":\"entity.name.function.js.jsx\"}},\"match\":\"(?:([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?=(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*:(\\\\\\\\s*\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/)*\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>))))))\",\"name\":\"meta.object.member.js.jsx\"},{\"captures\":{\"0\":{\"name\":\"meta.object-literal.key.js.jsx\"}},\"match\":\"(?:[_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?=(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*:)\",\"name\":\"meta.object.member.js.jsx\"},{\"begin\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.spread.js.jsx\"}},\"end\":\"(?=,|\\\\\\\\})\",\"name\":\"meta.object.member.js.jsx\",\"patterns\":[{\"include\":\"#expression\"}]},{\"captures\":{\"1\":{\"name\":\"variable.other.readwrite.js.jsx\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?=,|\\\\\\\\}|$|\\\\\\\\/\\\\\\\\/|\\\\\\\\/\\\\\\\\*)\",\"name\":\"meta.object.member.js.jsx\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.as.js.jsx\"},\"2\":{\"name\":\"storage.modifier.js.jsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(as)\\\\\\\\s+(const)(?=\\\\\\\\s*([,}]|$))\",\"name\":\"meta.object.member.js.jsx\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(as)|(satisfies))\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.as.js.jsx\"},\"2\":{\"name\":\"keyword.control.satisfies.js.jsx\"}},\"end\":\"(?=[;),}\\\\\\\\]:?\\\\\\\\-\\\\\\\\+\\\\\\\\>]|\\\\\\\\|\\\\\\\\||\\\\\\\\&\\\\\\\\&|\\\\\\\\!\\\\\\\\=\\\\\\\\=|$|^|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(as|satisifies)\\\\\\\\s+))\",\"name\":\"meta.object.member.js.jsx\",\"patterns\":[{\"include\":\"#type\"}]},{\"begin\":\"(?=[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=)\",\"end\":\"(?=,|\\\\\\\\}|$|\\\\\\\\/\\\\\\\\/|\\\\\\\\/\\\\\\\\*)\",\"name\":\"meta.object.member.js.jsx\",\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\":\",\"beginCaptures\":{\"0\":{\"name\":\"meta.object-literal.key.js.jsx punctuation.separator.key-value.js.jsx\"}},\"end\":\"(?=,|\\\\\\\\})\",\"name\":\"meta.object.member.js.jsx\",\"patterns\":[{\"begin\":\"(?<=:)\\\\\\\\s*(async)?(?=\\\\\\\\s*(<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)\\\\\\\\(\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.js.jsx\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"include\":\"#type-parameters\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.js.jsx\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.js.jsx\"}},\"patterns\":[{\"include\":\"#expression-inside-possibly-arrow-parens\"}]}]},{\"begin\":\"(?<=:)\\\\\\\\s*(async)?\\\\\\\\s*(\\\\\\\\()(?=\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.js.jsx\"},\"2\":{\"name\":\"meta.brace.round.js.jsx\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.js.jsx\"}},\"patterns\":[{\"include\":\"#expression-inside-possibly-arrow-parens\"}]},{\"begin\":\"(?<=:)\\\\\\\\s*(async)?\\\\\\\\s*(?=\\\\\\\\<\\\\\\\\s*$)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.js.jsx\"}},\"end\":\"(?<=\\\\\\\\>)\",\"patterns\":[{\"include\":\"#type-parameters\"}]},{\"begin\":\"(?<=\\\\\\\\>)\\\\\\\\s*(\\\\\\\\()(?=\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))\",\"beginCaptures\":{\"1\":{\"name\":\"meta.brace.round.js.jsx\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.js.jsx\"}},\"patterns\":[{\"include\":\"#expression-inside-possibly-arrow-parens\"}]},{\"include\":\"#possibly-arrow-return-type\"},{\"include\":\"#expression\"}]},{\"include\":\"#punctuation-comma\"},{\"include\":\"#decl-block\"}]},\"parameter-array-binding-pattern\":{\"begin\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.js.jsx\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.array.js.jsx\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.array.js.jsx\"}},\"patterns\":[{\"include\":\"#parameter-binding-element\"},{\"include\":\"#punctuation-comma\"}]},\"parameter-binding-element\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#regex\"},{\"include\":\"#parameter-object-binding-pattern\"},{\"include\":\"#parameter-array-binding-pattern\"},{\"include\":\"#destructuring-parameter-rest\"},{\"include\":\"#variable-initializer\"}]},\"parameter-name\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.modifier.js.jsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(override|public|protected|private|readonly)\\\\\\\\s+(?=(override|public|protected|private|readonly)\\\\\\\\s+)\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.js.jsx\"},\"2\":{\"name\":\"keyword.operator.rest.js.jsx\"},\"3\":{\"name\":\"entity.name.function.js.jsx variable.language.this.js.jsx\"},\"4\":{\"name\":\"entity.name.function.js.jsx\"},\"5\":{\"name\":\"keyword.operator.optional.js.jsx\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(override|public|private|protected|readonly)\\\\\\\\s+)?(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*(\\\\\\\\??)(?=\\\\\\\\s*(=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))))|(:\\\\\\\\s*((<)|([(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>)))))))|(:\\\\\\\\s*(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Function(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(:\\\\\\\\s*((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))))|(:\\\\\\\\s*(=>|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>))))))\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.js.jsx\"},\"2\":{\"name\":\"keyword.operator.rest.js.jsx\"},\"3\":{\"name\":\"variable.parameter.js.jsx variable.language.this.js.jsx\"},\"4\":{\"name\":\"variable.parameter.js.jsx\"},\"5\":{\"name\":\"keyword.operator.optional.js.jsx\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(override|public|private|protected|readonly)\\\\\\\\s+)?(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*(\\\\\\\\??)\"}]},\"parameter-object-binding-element\":{\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?=((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(:))\",\"end\":\"(?=,|\\\\\\\\})\",\"patterns\":[{\"include\":\"#object-binding-element-propertyName\"},{\"include\":\"#parameter-binding-element\"},{\"include\":\"#paren-expression\"}]},{\"include\":\"#parameter-object-binding-pattern\"},{\"include\":\"#destructuring-parameter-rest\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#punctuation-comma\"}]},\"parameter-object-binding-pattern\":{\"begin\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.js.jsx\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.object.js.jsx\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.object.js.jsx\"}},\"patterns\":[{\"include\":\"#parameter-object-binding-element\"}]},\"parameter-type-annotation\":{\"patterns\":[{\"begin\":\"(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.js.jsx\"}},\"end\":\"(?=[,)])|(?==[^>])\",\"name\":\"meta.type.annotation.js.jsx\",\"patterns\":[{\"include\":\"#type\"}]}]},\"paren-expression\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.js.jsx\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.js.jsx\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"paren-expression-possibly-arrow\":{\"patterns\":[{\"begin\":\"(?<=[(=,])\\\\\\\\s*(async)?(?=\\\\\\\\s*((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*))?\\\\\\\\(\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.js.jsx\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"include\":\"#paren-expression-possibly-arrow-with-typeparameters\"}]},{\"begin\":\"(?<=[(=,]|=>|^return|[^\\\\\\\\._$[:alnum:]]return)\\\\\\\\s*(async)?(?=\\\\\\\\s*((((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*))?\\\\\\\\()|(<)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)))\\\\\\\\s*$)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.js.jsx\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"include\":\"#paren-expression-possibly-arrow-with-typeparameters\"}]},{\"include\":\"#possibly-arrow-return-type\"}]},\"paren-expression-possibly-arrow-with-typeparameters\":{\"patterns\":[{\"include\":\"#type-parameters\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.js.jsx\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.js.jsx\"}},\"patterns\":[{\"include\":\"#expression-inside-possibly-arrow-parens\"}]}]},\"possibly-arrow-return-type\":{\"begin\":\"(?<=\\\\\\\\)|^)\\\\\\\\s*(:)(?=\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*=>)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.arrow.js.jsx meta.return.type.arrow.js.jsx keyword.operator.type.annotation.js.jsx\"}},\"contentName\":\"meta.arrow.js.jsx meta.return.type.arrow.js.jsx\",\"end\":\"(?==>|\\\\\\\\{|(^\\\\\\\\s*(export|function|class|interface|let|var|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|const|import|enum|namespace|module|type|abstract|declare)\\\\\\\\s+))\",\"patterns\":[{\"include\":\"#arrow-return-type-body\"}]},\"property-accessor\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(accessor|get|set)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.type.property.js.jsx\"},\"punctuation-accessor\":{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.js.jsx\"},\"2\":{\"name\":\"punctuation.accessor.optional.js.jsx\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\"},\"punctuation-comma\":{\"match\":\",\",\"name\":\"punctuation.separator.comma.js.jsx\"},\"punctuation-semicolon\":{\"match\":\";\",\"name\":\"punctuation.terminator.statement.js.jsx\"},\"qstring-double\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.js.jsx\"}},\"end\":\"(\\\\\")|((?:[^\\\\\\\\\\\\\\\\\\\\\\\\n])$)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.js.jsx\"},\"2\":{\"name\":\"invalid.illegal.newline.js.jsx\"}},\"name\":\"string.quoted.double.js.jsx\",\"patterns\":[{\"include\":\"#string-character-escape\"}]},\"qstring-single\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.js.jsx\"}},\"end\":\"(\\\\\\\\')|((?:[^\\\\\\\\\\\\\\\\\\\\\\\\n])$)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.js.jsx\"},\"2\":{\"name\":\"invalid.illegal.newline.js.jsx\"}},\"name\":\"string.quoted.single.js.jsx\",\"patterns\":[{\"include\":\"#string-character-escape\"}]},\"regex\":{\"patterns\":[{\"begin\":\"(?<!\\\\\\\\+\\\\\\\\+|--|})(?<=[=(:,\\\\\\\\[?+!]|^return|[^\\\\\\\\._$[:alnum:]]return|^case|[^\\\\\\\\._$[:alnum:]]case|=>|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\*\\\\\\\\/)\\\\\\\\s*(\\\\\\\\/)(?![\\\\\\\\/*])(?=(?:[^\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\\\[\\\\\\\\()]|\\\\\\\\\\\\\\\\.|\\\\\\\\[([^\\\\\\\\]\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)+\\\\\\\\]|\\\\\\\\(([^\\\\\\\\)\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)+\\\\\\\\))+\\\\\\\\/([dgimsuvy]+|(?![\\\\\\\\/\\\\\\\\*])|(?=\\\\\\\\/\\\\\\\\*))(?!\\\\\\\\s*[a-zA-Z0-9_$]))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.js.jsx\"}},\"end\":\"(/)([dgimsuvy]*)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.js.jsx\"},\"2\":{\"name\":\"keyword.other.js.jsx\"}},\"name\":\"string.regexp.js.jsx\",\"patterns\":[{\"include\":\"#regexp\"}]},{\"begin\":\"((?<![_$[:alnum:])\\\\\\\\]]|\\\\\\\\+\\\\\\\\+|--|}|\\\\\\\\*\\\\\\\\/)|((?<=^return|[^\\\\\\\\._$[:alnum:]]return|^case|[^\\\\\\\\._$[:alnum:]]case))\\\\\\\\s*)\\\\\\\\/(?![\\\\\\\\/*])(?=(?:[^\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\\\[]|\\\\\\\\\\\\\\\\.|\\\\\\\\[([^\\\\\\\\]\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\])+\\\\\\\\/([dgimsuvy]+|(?![\\\\\\\\/\\\\\\\\*])|(?=\\\\\\\\/\\\\\\\\*))(?!\\\\\\\\s*[a-zA-Z0-9_$]))\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.js.jsx\"}},\"end\":\"(/)([dgimsuvy]*)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.js.jsx\"},\"2\":{\"name\":\"keyword.other.js.jsx\"}},\"name\":\"string.regexp.js.jsx\",\"patterns\":[{\"include\":\"#regexp\"}]}]},\"regex-character-class\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[wWsSdDtrnvf]|\\\\\\\\.\",\"name\":\"constant.other.character-class.regexp\"},{\"match\":\"\\\\\\\\\\\\\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})\",\"name\":\"constant.character.numeric.regexp\"},{\"match\":\"\\\\\\\\\\\\\\\\c[A-Z]\",\"name\":\"constant.character.control.regexp\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.backslash.regexp\"}]},\"regexp\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[bB]|\\\\\\\\^|\\\\\\\\$\",\"name\":\"keyword.control.anchor.regexp\"},{\"captures\":{\"0\":{\"name\":\"keyword.other.back-reference.regexp\"},\"1\":{\"name\":\"variable.other.regexp\"}},\"match\":\"\\\\\\\\\\\\\\\\[1-9]\\\\\\\\d*|\\\\\\\\\\\\\\\\k<([a-zA-Z_$][\\\\\\\\w$]*)>\"},{\"match\":\"[?+*]|\\\\\\\\{(\\\\\\\\d+,\\\\\\\\d+|\\\\\\\\d+,|,\\\\\\\\d+|\\\\\\\\d+)\\\\\\\\}\\\\\\\\??\",\"name\":\"keyword.operator.quantifier.regexp\"},{\"match\":\"\\\\\\\\|\",\"name\":\"keyword.operator.or.regexp\"},{\"begin\":\"(\\\\\\\\()((\\\\\\\\?=)|(\\\\\\\\?!)|(\\\\\\\\?<=)|(\\\\\\\\?<!))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.group.regexp\"},\"2\":{\"name\":\"punctuation.definition.group.assertion.regexp\"},\"3\":{\"name\":\"meta.assertion.look-ahead.regexp\"},\"4\":{\"name\":\"meta.assertion.negative-look-ahead.regexp\"},\"5\":{\"name\":\"meta.assertion.look-behind.regexp\"},\"6\":{\"name\":\"meta.assertion.negative-look-behind.regexp\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.group.regexp\"}},\"name\":\"meta.group.assertion.regexp\",\"patterns\":[{\"include\":\"#regexp\"}]},{\"begin\":\"\\\\\\\\((?:(\\\\\\\\?:)|(?:\\\\\\\\?<([a-zA-Z_$][\\\\\\\\w$]*)>))?\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.regexp\"},\"1\":{\"name\":\"punctuation.definition.group.no-capture.regexp\"},\"2\":{\"name\":\"variable.other.regexp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.regexp\"}},\"name\":\"meta.group.regexp\",\"patterns\":[{\"include\":\"#regexp\"}]},{\"begin\":\"(\\\\\\\\[)(\\\\\\\\^)?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.character-class.regexp\"},\"2\":{\"name\":\"keyword.operator.negation.regexp\"}},\"end\":\"(\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.character-class.regexp\"}},\"name\":\"constant.other.character-class.set.regexp\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.character.numeric.regexp\"},\"2\":{\"name\":\"constant.character.control.regexp\"},\"3\":{\"name\":\"constant.character.escape.backslash.regexp\"},\"4\":{\"name\":\"constant.character.numeric.regexp\"},\"5\":{\"name\":\"constant.character.control.regexp\"},\"6\":{\"name\":\"constant.character.escape.backslash.regexp\"}},\"match\":\"(?:.|(\\\\\\\\\\\\\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\\\\\\\\\\\\\c[A-Z])|(\\\\\\\\\\\\\\\\.))\\\\\\\\-(?:[^\\\\\\\\]\\\\\\\\\\\\\\\\]|(\\\\\\\\\\\\\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\\\\\\\\\\\\\c[A-Z])|(\\\\\\\\\\\\\\\\.))\",\"name\":\"constant.other.character-class.range.regexp\"},{\"include\":\"#regex-character-class\"}]},{\"include\":\"#regex-character-class\"}]},\"return-type\":{\"patterns\":[{\"begin\":\"(?<=\\\\\\\\))\\\\\\\\s*(:)(?=\\\\\\\\s*\\\\\\\\S)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.js.jsx\"}},\"end\":\"(?<![:|&])(?=$|^|[{};,]|//)\",\"name\":\"meta.return.type.js.jsx\",\"patterns\":[{\"include\":\"#return-type-core\"}]},{\"begin\":\"(?<=\\\\\\\\))\\\\\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.js.jsx\"}},\"end\":\"(?<![:|&])((?=[{};,]|//|^\\\\\\\\s*$)|((?<=\\\\\\\\S)(?=\\\\\\\\s*$)))\",\"name\":\"meta.return.type.js.jsx\",\"patterns\":[{\"include\":\"#return-type-core\"}]}]},\"return-type-core\":{\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?<=[:|&])(?=\\\\\\\\s*\\\\\\\\{)\",\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#type-object\"}]},{\"include\":\"#type-predicate-operator\"},{\"include\":\"#type\"}]},\"shebang\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.js.jsx\"}},\"match\":\"\\\\\\\\A(#!).*(?=$)\",\"name\":\"comment.line.shebang.js.jsx\"},\"single-line-comment-consuming-line-ending\":{\"begin\":\"(^[ \\\\\\\\t]+)?((//)(?:\\\\\\\\s*((@)internal)(?=\\\\\\\\s|$))?)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.js.jsx\"},\"2\":{\"name\":\"comment.line.double-slash.js.jsx\"},\"3\":{\"name\":\"punctuation.definition.comment.js.jsx\"},\"4\":{\"name\":\"storage.type.internaldeclaration.js.jsx\"},\"5\":{\"name\":\"punctuation.decorator.internaldeclaration.js.jsx\"}},\"contentName\":\"comment.line.double-slash.js.jsx\",\"end\":\"(?=^)\"},\"statements\":{\"patterns\":[{\"include\":\"#declaration\"},{\"include\":\"#control-statement\"},{\"include\":\"#after-operator-block-as-object-literal\"},{\"include\":\"#decl-block\"},{\"include\":\"#label\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-semicolon\"},{\"include\":\"#string\"},{\"include\":\"#comment\"}]},\"string\":{\"patterns\":[{\"include\":\"#qstring-single\"},{\"include\":\"#qstring-double\"},{\"include\":\"#template\"}]},\"string-character-escape\":{\"match\":\"\\\\\\\\\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\\\\\\\{[0-9A-Fa-f]+\\\\\\\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)\",\"name\":\"constant.character.escape.js.jsx\"},\"super-literal\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))super\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"variable.language.super.js.jsx\"},\"support-function-call-identifiers\":{\"patterns\":[{\"include\":\"#literal\"},{\"include\":\"#support-objects\"},{\"include\":\"#object-identifiers\"},{\"include\":\"#punctuation-accessor\"},{\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))import(?=\\\\\\\\s*[\\\\\\\\(]\\\\\\\\s*[\\\\\\\\\\\\\"\\\\\\\\'\\\\\\\\\\`]))\",\"name\":\"keyword.operator.expression.import.js.jsx\"}]},\"support-objects\":{\"patterns\":[{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(arguments)\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"variable.language.arguments.js.jsx\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(Promise)\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"support.class.promise.js.jsx\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.import.js.jsx\"},\"2\":{\"name\":\"punctuation.accessor.js.jsx\"},\"3\":{\"name\":\"punctuation.accessor.optional.js.jsx\"},\"4\":{\"name\":\"support.variable.property.importmeta.js.jsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(import)\\\\\\\\s*(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(meta)\\\\\\\\b(?!\\\\\\\\$)\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.new.js.jsx\"},\"2\":{\"name\":\"punctuation.accessor.js.jsx\"},\"3\":{\"name\":\"punctuation.accessor.optional.js.jsx\"},\"4\":{\"name\":\"support.variable.property.target.js.jsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(new)\\\\\\\\s*(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(target)\\\\\\\\b(?!\\\\\\\\$)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.js.jsx\"},\"2\":{\"name\":\"punctuation.accessor.optional.js.jsx\"},\"3\":{\"name\":\"support.variable.property.js.jsx\"},\"4\":{\"name\":\"support.constant.js.jsx\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(?:(?:(constructor|length|prototype|__proto__)\\\\\\\\b(?!\\\\\\\\$|\\\\\\\\s*(<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\())|(?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\\\\\\\b(?!\\\\\\\\$)))\"},{\"captures\":{\"1\":{\"name\":\"support.type.object.module.js.jsx\"},\"2\":{\"name\":\"support.type.object.module.js.jsx\"},\"3\":{\"name\":\"punctuation.accessor.js.jsx\"},\"4\":{\"name\":\"punctuation.accessor.optional.js.jsx\"},\"5\":{\"name\":\"support.type.object.module.js.jsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(exports)|(module)(?:(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))(exports|id|filename|loaded|parent|children))?)\\\\\\\\b(?!\\\\\\\\$)\"}]},\"switch-statement\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?=\\\\\\\\bswitch\\\\\\\\s*\\\\\\\\()\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js.jsx\"}},\"name\":\"switch-statement.expr.js.jsx\",\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(switch)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.switch.js.jsx\"},\"2\":{\"name\":\"meta.brace.round.js.jsx\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.js.jsx\"}},\"name\":\"switch-expression.expr.js.jsx\",\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js.jsx\"}},\"end\":\"(?=\\\\\\\\})\",\"name\":\"switch-block.expr.js.jsx\",\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(case|default(?=:))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.switch.js.jsx\"}},\"end\":\"(?=:)\",\"name\":\"case-clause.expr.js.jsx\",\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\"(:)\\\\\\\\s*(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"case-clause.expr.js.jsx punctuation.definition.section.case-statement.js.jsx\"},\"2\":{\"name\":\"meta.block.js.jsx punctuation.definition.block.js.jsx\"}},\"contentName\":\"meta.block.js.jsx\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"meta.block.js.jsx punctuation.definition.block.js.jsx\"}},\"patterns\":[{\"include\":\"#statements\"}]},{\"captures\":{\"0\":{\"name\":\"case-clause.expr.js.jsx punctuation.definition.section.case-statement.js.jsx\"}},\"match\":\"(:)\"},{\"include\":\"#statements\"}]}]},\"template\":{\"patterns\":[{\"include\":\"#template-call\"},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)?(\\`)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.tagged-template.js.jsx\"},\"2\":{\"name\":\"string.template.js.jsx punctuation.definition.string.template.begin.js.jsx\"}},\"contentName\":\"string.template.js.jsx\",\"end\":\"\\`\",\"endCaptures\":{\"0\":{\"name\":\"string.template.js.jsx punctuation.definition.string.template.end.js.jsx\"}},\"patterns\":[{\"include\":\"#template-substitution-element\"},{\"include\":\"#string-character-escape\"}]}]},\"template-call\":{\"patterns\":[{\"begin\":\"(?=(([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*)*|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))(([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>)*(?<!=)\\\\\\\\>))*(?<!=)\\\\\\\\>)*(?<!=)>\\\\\\\\s*)?\\`)\",\"end\":\"(?=\\`)\",\"patterns\":[{\"begin\":\"(?=(([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*)*|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))\",\"end\":\"(?=(<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))(([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>)*(?<!=)\\\\\\\\>))*(?<!=)\\\\\\\\>)*(?<!=)>\\\\\\\\s*)?\\`)\",\"patterns\":[{\"include\":\"#support-function-call-identifiers\"},{\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"name\":\"entity.name.function.tagged-template.js.jsx\"}]},{\"include\":\"#type-arguments\"}]},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)?\\\\\\\\s*(?=(<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))(([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>)*(?<!=)\\\\\\\\>))*(?<!=)\\\\\\\\>)*(?<!=)>\\\\\\\\s*)\\`)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.tagged-template.js.jsx\"}},\"end\":\"(?=\\`)\",\"patterns\":[{\"include\":\"#type-arguments\"}]}]},\"template-substitution-element\":{\"begin\":\"\\\\\\\\$\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.begin.js.jsx\"}},\"contentName\":\"meta.embedded.line.js.jsx\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.end.js.jsx\"}},\"name\":\"meta.template.expression.js.jsx\",\"patterns\":[{\"include\":\"#expression\"}]},\"template-type\":{\"patterns\":[{\"include\":\"#template-call\"},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)?(\\`)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.tagged-template.js.jsx\"},\"2\":{\"name\":\"string.template.js.jsx punctuation.definition.string.template.begin.js.jsx\"}},\"contentName\":\"string.template.js.jsx\",\"end\":\"\\`\",\"endCaptures\":{\"0\":{\"name\":\"string.template.js.jsx punctuation.definition.string.template.end.js.jsx\"}},\"patterns\":[{\"include\":\"#template-type-substitution-element\"},{\"include\":\"#string-character-escape\"}]}]},\"template-type-substitution-element\":{\"begin\":\"\\\\\\\\$\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.begin.js.jsx\"}},\"contentName\":\"meta.embedded.line.js.jsx\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.end.js.jsx\"}},\"name\":\"meta.template.expression.js.jsx\",\"patterns\":[{\"include\":\"#type\"}]},\"ternary-expression\":{\"begin\":\"(?!\\\\\\\\?\\\\\\\\.\\\\\\\\s*[^[:digit:]])(\\\\\\\\?)(?!\\\\\\\\?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.ternary.js.jsx\"}},\"end\":\"\\\\\\\\s*(:)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.ternary.js.jsx\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"this-literal\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))this\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"variable.language.this.js.jsx\"},\"type\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-string\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#type-primitive\"},{\"include\":\"#type-builtin-literals\"},{\"include\":\"#type-parameters\"},{\"include\":\"#type-tuple\"},{\"include\":\"#type-object\"},{\"include\":\"#type-operators\"},{\"include\":\"#type-conditional\"},{\"include\":\"#type-fn-type-parameters\"},{\"include\":\"#type-paren-or-function-parameters\"},{\"include\":\"#type-function-return-type\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.js.jsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*\"},{\"include\":\"#type-name\"}]},\"type-alias-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(type)\\\\\\\\b\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js.jsx\"},\"2\":{\"name\":\"storage.modifier.js.jsx\"},\"3\":{\"name\":\"storage.type.type.js.jsx\"},\"4\":{\"name\":\"entity.name.type.alias.js.jsx\"}},\"end\":\"(?=\\\\\\\\}|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"name\":\"meta.type.declaration.js.jsx\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-parameters\"},{\"begin\":\"(=)\\\\\\\\s*(intrinsic)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.js.jsx\"},\"2\":{\"name\":\"keyword.control.intrinsic.js.jsx\"}},\"end\":\"(?=\\\\\\\\}|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#type\"}]},{\"begin\":\"(=)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.js.jsx\"}},\"end\":\"(?=\\\\\\\\}|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#type\"}]}]},\"type-annotation\":{\"patterns\":[{\"begin\":\"(:)(?=\\\\\\\\s*\\\\\\\\S)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.js.jsx\"}},\"end\":\"(?<![:|&])(?!\\\\\\\\s*[|&]\\\\\\\\s+)((?=^|[,);\\\\\\\\}\\\\\\\\]]|//)|(?==[^>])|((?<=[\\\\\\\\}>\\\\\\\\]\\\\\\\\)]|[_$[:alpha:]])\\\\\\\\s*(?=\\\\\\\\{)))\",\"name\":\"meta.type.annotation.js.jsx\",\"patterns\":[{\"include\":\"#type\"}]},{\"begin\":\"(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.js.jsx\"}},\"end\":\"(?<![:|&])((?=[,);\\\\\\\\}\\\\\\\\]]|\\\\\\\\/\\\\\\\\/)|(?==[^>])|(?=^\\\\\\\\s*$)|((?<=[\\\\\\\\}>\\\\\\\\]\\\\\\\\)]|[_$[:alpha:]])\\\\\\\\s*(?=\\\\\\\\{)))\",\"name\":\"meta.type.annotation.js.jsx\",\"patterns\":[{\"include\":\"#type\"}]}]},\"type-arguments\":{\"begin\":\"\\\\\\\\<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.begin.js.jsx\"}},\"end\":\"\\\\\\\\>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.end.js.jsx\"}},\"name\":\"meta.type.parameters.js.jsx\",\"patterns\":[{\"include\":\"#type-arguments-body\"}]},\"type-arguments-body\":{\"patterns\":[{\"captures\":{\"0\":{\"name\":\"keyword.operator.type.js.jsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(_)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\"},{\"include\":\"#type\"},{\"include\":\"#punctuation-comma\"}]},\"type-builtin-literals\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"support.type.builtin.js.jsx\"},\"type-conditional\":{\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(extends)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.js.jsx\"}},\"end\":\"(?<=:)\",\"patterns\":[{\"begin\":\"\\\\\\\\?\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.ternary.js.jsx\"}},\"end\":\":\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.ternary.js.jsx\"}},\"patterns\":[{\"include\":\"#type\"}]},{\"include\":\"#type\"}]}]},\"type-fn-type-parameters\":{\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(abstract)\\\\\\\\s+)?(new)\\\\\\\\b(?=\\\\\\\\s*\\\\\\\\<)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.type.constructor.js.jsx storage.modifier.js.jsx\"},\"2\":{\"name\":\"meta.type.constructor.js.jsx keyword.control.new.js.jsx\"}},\"end\":\"(?<=>)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-parameters\"}]},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(abstract)\\\\\\\\s+)?(new)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.js.jsx\"},\"2\":{\"name\":\"keyword.control.new.js.jsx\"}},\"end\":\"(?<=\\\\\\\\))\",\"name\":\"meta.type.constructor.js.jsx\",\"patterns\":[{\"include\":\"#function-parameters\"}]},{\"begin\":\"((?=[(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>))))))\",\"end\":\"(?<=\\\\\\\\))\",\"name\":\"meta.type.function.js.jsx\",\"patterns\":[{\"include\":\"#function-parameters\"}]}]},\"type-function-return-type\":{\"patterns\":[{\"begin\":\"(=>)(?=\\\\\\\\s*\\\\\\\\S)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.arrow.js.jsx\"}},\"end\":\"(?<!=>)(?<![|&])(?=[,\\\\\\\\]\\\\\\\\)\\\\\\\\{\\\\\\\\}=;>:\\\\\\\\?]|//|$)\",\"name\":\"meta.type.function.return.js.jsx\",\"patterns\":[{\"include\":\"#type-function-return-type-core\"}]},{\"begin\":\"=>\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.function.arrow.js.jsx\"}},\"end\":\"(?<!=>)(?<![|&])((?=[,\\\\\\\\]\\\\\\\\)\\\\\\\\{\\\\\\\\}=;:\\\\\\\\?>]|//|^\\\\\\\\s*$)|((?<=\\\\\\\\S)(?=\\\\\\\\s*$)))\",\"name\":\"meta.type.function.return.js.jsx\",\"patterns\":[{\"include\":\"#type-function-return-type-core\"}]}]},\"type-function-return-type-core\":{\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?<==>)(?=\\\\\\\\s*\\\\\\\\{)\",\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#type-object\"}]},{\"include\":\"#type-predicate-operator\"},{\"include\":\"#type\"}]},\"type-infer\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.expression.infer.js.jsx\"},\"2\":{\"name\":\"entity.name.type.js.jsx\"},\"3\":{\"name\":\"keyword.operator.expression.extends.js.jsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(infer)\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))(?:\\\\\\\\s+(extends)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))?\",\"name\":\"meta.type.infer.js.jsx\"}]},\"type-name\":{\"patterns\":[{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(<)\",\"captures\":{\"1\":{\"name\":\"entity.name.type.module.js.jsx\"},\"2\":{\"name\":\"punctuation.accessor.js.jsx\"},\"3\":{\"name\":\"punctuation.accessor.optional.js.jsx\"},\"4\":{\"name\":\"meta.type.parameters.js.jsx punctuation.definition.typeparameters.begin.js.jsx\"}},\"contentName\":\"meta.type.parameters.js.jsx\",\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"meta.type.parameters.js.jsx punctuation.definition.typeparameters.end.js.jsx\"}},\"patterns\":[{\"include\":\"#type-arguments-body\"}]},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(<)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.type.js.jsx\"},\"2\":{\"name\":\"meta.type.parameters.js.jsx punctuation.definition.typeparameters.begin.js.jsx\"}},\"contentName\":\"meta.type.parameters.js.jsx\",\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"meta.type.parameters.js.jsx punctuation.definition.typeparameters.end.js.jsx\"}},\"patterns\":[{\"include\":\"#type-arguments-body\"}]},{\"captures\":{\"1\":{\"name\":\"entity.name.type.module.js.jsx\"},\"2\":{\"name\":\"punctuation.accessor.js.jsx\"},\"3\":{\"name\":\"punctuation.accessor.optional.js.jsx\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\"},{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"entity.name.type.js.jsx\"}]},\"type-object\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js.jsx\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js.jsx\"}},\"name\":\"meta.object.type.js.jsx\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#method-declaration\"},{\"include\":\"#indexer-declaration\"},{\"include\":\"#indexer-mapped-type-declaration\"},{\"include\":\"#field-declaration\"},{\"include\":\"#type-annotation\"},{\"begin\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.spread.js.jsx\"}},\"end\":\"(?=\\\\\\\\}|;|,|$)|(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#type\"}]},{\"include\":\"#punctuation-comma\"},{\"include\":\"#punctuation-semicolon\"},{\"include\":\"#type\"}]},\"type-operators\":{\"patterns\":[{\"include\":\"#typeof-operator\"},{\"include\":\"#type-infer\"},{\"begin\":\"([&|])(?=\\\\\\\\s*\\\\\\\\{)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.type.js.jsx\"}},\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#type-object\"}]},{\"begin\":\"[&|]\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.type.js.jsx\"}},\"end\":\"(?=\\\\\\\\S)\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))keyof(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.expression.keyof.js.jsx\"},{\"match\":\"(\\\\\\\\?|\\\\\\\\:)\",\"name\":\"keyword.operator.ternary.js.jsx\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))import(?=\\\\\\\\s*\\\\\\\\()\",\"name\":\"keyword.operator.expression.import.js.jsx\"}]},\"type-parameters\":{\"begin\":\"(<)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.typeparameters.begin.js.jsx\"}},\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.typeparameters.end.js.jsx\"}},\"name\":\"meta.type.parameters.js.jsx\",\"patterns\":[{\"include\":\"#comment\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.modifier.js.jsx\"},{\"include\":\"#type\"},{\"include\":\"#punctuation-comma\"},{\"match\":\"(=)(?!>)\",\"name\":\"keyword.operator.assignment.js.jsx\"}]},\"type-paren-or-function-parameters\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.js.jsx\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.js.jsx\"}},\"name\":\"meta.type.paren.cover.js.jsx\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.modifier.js.jsx\"},\"2\":{\"name\":\"keyword.operator.rest.js.jsx\"},\"3\":{\"name\":\"entity.name.function.js.jsx variable.language.this.js.jsx\"},\"4\":{\"name\":\"entity.name.function.js.jsx\"},\"5\":{\"name\":\"keyword.operator.optional.js.jsx\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(public|private|protected|readonly)\\\\\\\\s+)?(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\\\\\\\s*(\\\\\\\\??)(?=\\\\\\\\s*(:\\\\\\\\s*((<)|([(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>)))))))|(:\\\\\\\\s*(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Function(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(:\\\\\\\\s*((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))))\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.js.jsx\"},\"2\":{\"name\":\"keyword.operator.rest.js.jsx\"},\"3\":{\"name\":\"variable.parameter.js.jsx variable.language.this.js.jsx\"},\"4\":{\"name\":\"variable.parameter.js.jsx\"},\"5\":{\"name\":\"keyword.operator.optional.js.jsx\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(public|private|protected|readonly)\\\\\\\\s+)?(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\\\\\\\s*(\\\\\\\\??)(?=:)\"},{\"include\":\"#type-annotation\"},{\"match\":\",\",\"name\":\"punctuation.separator.parameter.js.jsx\"},{\"include\":\"#type\"}]},\"type-predicate-operator\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.type.asserts.js.jsx\"},\"2\":{\"name\":\"variable.parameter.js.jsx variable.language.this.js.jsx\"},\"3\":{\"name\":\"variable.parameter.js.jsx\"},\"4\":{\"name\":\"keyword.operator.expression.is.js.jsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(asserts)\\\\\\\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\\\\\\\s(is)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.type.asserts.js.jsx\"},\"2\":{\"name\":\"variable.parameter.js.jsx variable.language.this.js.jsx\"},\"3\":{\"name\":\"variable.parameter.js.jsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(asserts)\\\\\\\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))asserts(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.type.asserts.js.jsx\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))is(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.expression.is.js.jsx\"}]},\"type-primitive\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"support.type.primitive.js.jsx\"},\"type-string\":{\"patterns\":[{\"include\":\"#qstring-single\"},{\"include\":\"#qstring-double\"},{\"include\":\"#template-type\"}]},\"type-tuple\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.square.js.jsx\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.square.js.jsx\"}},\"name\":\"meta.type.tuple.js.jsx\",\"patterns\":[{\"match\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"name\":\"keyword.operator.rest.js.jsx\"},{\"captures\":{\"1\":{\"name\":\"entity.name.label.js.jsx\"},\"2\":{\"name\":\"keyword.operator.optional.js.jsx\"},\"3\":{\"name\":\"punctuation.separator.label.js.jsx\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(\\\\\\\\?)?\\\\\\\\s*(:)\"},{\"include\":\"#type\"},{\"include\":\"#punctuation-comma\"}]},\"typeof-operator\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))typeof(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.expression.typeof.js.jsx\"}},\"end\":\"(?=[,);}\\\\\\\\]=>:&|{\\\\\\\\?]|(extends\\\\\\\\s+)|$|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#type-arguments\"},{\"include\":\"#expression\"}]},\"undefined-literal\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))undefined(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.undefined.js.jsx\"},\"var-expr\":{\"patterns\":[{\"begin\":\"(?=(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(var|let)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))\",\"end\":\"(?!(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(var|let)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))|((?<!^let|[^\\\\\\\\._$[:alnum:]]let|^var|[^\\\\\\\\._$[:alnum:]]var)(?=\\\\\\\\s*$)))\",\"name\":\"meta.var.expr.js.jsx\",\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(var|let)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js.jsx\"},\"2\":{\"name\":\"storage.modifier.js.jsx\"},\"3\":{\"name\":\"storage.type.js.jsx\"}},\"end\":\"(?=\\\\\\\\S)\"},{\"include\":\"#destructuring-variable\"},{\"include\":\"#var-single-variable\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#comment\"},{\"begin\":\"(,)\\\\\\\\s*(?=$|\\\\\\\\/\\\\\\\\/)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.comma.js.jsx\"}},\"end\":\"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|^\\\\\\\\s*$))|((?<=\\\\\\\\S)(?=\\\\\\\\s*$)))\",\"patterns\":[{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#comment\"},{\"include\":\"#destructuring-variable\"},{\"include\":\"#var-single-variable\"},{\"include\":\"#punctuation-comma\"}]},{\"include\":\"#punctuation-comma\"}]},{\"begin\":\"(?=(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(const(?!\\\\\\\\s+enum\\\\\\\\b))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js.jsx\"},\"2\":{\"name\":\"storage.modifier.js.jsx\"},\"3\":{\"name\":\"storage.type.js.jsx\"}},\"end\":\"(?!(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(const(?!\\\\\\\\s+enum\\\\\\\\b))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))|((?<!^const|[^\\\\\\\\._$[:alnum:]]const)(?=\\\\\\\\s*$)))\",\"name\":\"meta.var.expr.js.jsx\",\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(const(?!\\\\\\\\s+enum\\\\\\\\b))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js.jsx\"},\"2\":{\"name\":\"storage.modifier.js.jsx\"},\"3\":{\"name\":\"storage.type.js.jsx\"}},\"end\":\"(?=\\\\\\\\S)\"},{\"include\":\"#destructuring-const\"},{\"include\":\"#var-single-const\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#comment\"},{\"begin\":\"(,)\\\\\\\\s*(?=$|\\\\\\\\/\\\\\\\\/)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.comma.js.jsx\"}},\"end\":\"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|^\\\\\\\\s*$))|((?<=\\\\\\\\S)(?=\\\\\\\\s*$)))\",\"patterns\":[{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#comment\"},{\"include\":\"#destructuring-const\"},{\"include\":\"#var-single-const\"},{\"include\":\"#punctuation-comma\"}]},{\"include\":\"#punctuation-comma\"}]},{\"begin\":\"(?=(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b((?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js.jsx\"},\"2\":{\"name\":\"storage.modifier.js.jsx\"},\"3\":{\"name\":\"storage.type.js.jsx\"}},\"end\":\"(?!(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b((?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))((?=;|}|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))|((?<!^using|[^\\\\\\\\._$[:alnum:]]using|^await\\\\\\\\s+using|[^\\\\\\\\._$[:alnum:]]await\\\\\\\\s+using)(?=\\\\\\\\s*$)))\",\"name\":\"meta.var.expr.js.jsx\",\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b((?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js.jsx\"},\"2\":{\"name\":\"storage.modifier.js.jsx\"},\"3\":{\"name\":\"storage.type.js.jsx\"}},\"end\":\"(?=\\\\\\\\S)\"},{\"include\":\"#var-single-const\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#comment\"},{\"begin\":\"(,)\\\\\\\\s*((?!\\\\\\\\S)|(?=\\\\\\\\/\\\\\\\\/))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.comma.js.jsx\"}},\"end\":\"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|^\\\\\\\\s*$))|((?<=\\\\\\\\S)(?=\\\\\\\\s*$)))\",\"patterns\":[{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#comment\"},{\"include\":\"#var-single-const\"},{\"include\":\"#punctuation-comma\"}]},{\"include\":\"#punctuation-comma\"}]}]},\"var-single-const\":{\"patterns\":[{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)(?=\\\\\\\\s*(=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))))|(:\\\\\\\\s*((<)|([(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>)))))))|(:\\\\\\\\s*(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Function(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(:\\\\\\\\s*((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))))|(:\\\\\\\\s*(=>|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>))))))\",\"beginCaptures\":{\"1\":{\"name\":\"meta.definition.variable.js.jsx variable.other.constant.js.jsx entity.name.function.js.jsx\"}},\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|(;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b)))\",\"name\":\"meta.var-single-variable.expr.js.jsx\",\"patterns\":[{\"include\":\"#var-single-variable-type-annotation\"}]},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.definition.variable.js.jsx variable.other.constant.js.jsx\"}},\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|(;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b)))\",\"name\":\"meta.var-single-variable.expr.js.jsx\",\"patterns\":[{\"include\":\"#var-single-variable-type-annotation\"}]}]},\"var-single-variable\":{\"patterns\":[{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\!)?(?=\\\\\\\\s*(=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))))|(:\\\\\\\\s*((<)|([(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>)))))))|(:\\\\\\\\s*(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Function(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(:\\\\\\\\s*((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))))|(:\\\\\\\\s*(=>|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>))))))\",\"beginCaptures\":{\"1\":{\"name\":\"meta.definition.variable.js.jsx entity.name.function.js.jsx\"},\"2\":{\"name\":\"keyword.operator.definiteassignment.js.jsx\"}},\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|(;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b)))\",\"name\":\"meta.var-single-variable.expr.js.jsx\",\"patterns\":[{\"include\":\"#var-single-variable-type-annotation\"}]},{\"begin\":\"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])(\\\\\\\\!)?\",\"beginCaptures\":{\"1\":{\"name\":\"meta.definition.variable.js.jsx variable.other.constant.js.jsx\"},\"2\":{\"name\":\"keyword.operator.definiteassignment.js.jsx\"}},\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|(;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b)))\",\"name\":\"meta.var-single-variable.expr.js.jsx\",\"patterns\":[{\"include\":\"#var-single-variable-type-annotation\"}]},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\!)?\",\"beginCaptures\":{\"1\":{\"name\":\"meta.definition.variable.js.jsx variable.other.readwrite.js.jsx\"},\"2\":{\"name\":\"keyword.operator.definiteassignment.js.jsx\"}},\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|(;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b)))\",\"name\":\"meta.var-single-variable.expr.js.jsx\",\"patterns\":[{\"include\":\"#var-single-variable-type-annotation\"}]}]},\"var-single-variable-type-annotation\":{\"patterns\":[{\"include\":\"#type-annotation\"},{\"include\":\"#string\"},{\"include\":\"#comment\"}]},\"variable-initializer\":{\"patterns\":[{\"begin\":\"(?<!=|!)(=)(?!=)(?=\\\\\\\\s*\\\\\\\\S)(?!\\\\\\\\s*.*=>\\\\\\\\s*$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.js.jsx\"}},\"end\":\"(?=$|^|[,);}\\\\\\\\]]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+))\",\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\"(?<!=|!)(=)(?!=)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.js.jsx\"}},\"end\":\"(?=[,);}\\\\\\\\]]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+))|(?=^\\\\\\\\s*$)|(?<![\\\\\\\\|\\\\\\\\&\\\\\\\\+\\\\\\\\-\\\\\\\\*\\\\\\\\/])(?<=\\\\\\\\S)(?<!=)(?=\\\\\\\\s*$)\",\"patterns\":[{\"include\":\"#expression\"}]}]}},\"scopeName\":\"source.js.jsx\"}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BC5c_5Pe.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"MIPS Assembly\",\"fileTypes\":[\"s\",\"mips\",\"spim\",\"asm\"],\"name\":\"mipsasm\",\"patterns\":[{\"comment\":\"ok actually this are instructions, but one also could call them funtions…\",\"match\":\"\\\\\\\\b(mul|abs|div|divu|mulo|mulou|neg|negu|not|rem|remu|rol|ror|li|seq|sge|sgeu|sgt|sgtu|sle|sleu|sne|b|beqz|bge|bgeu|bgt|bgtu|ble|bleu|blt|bltu|bnez|la|ld|ulh|ulhu|ulw|sd|ush|usw|move|mfc1\\\\\\\\.d|l\\\\\\\\.d|l\\\\\\\\.s|s\\\\\\\\.d|s\\\\\\\\.s)\\\\\\\\b\",\"name\":\"support.function.pseudo.mips\"},{\"match\":\"\\\\\\\\b(abs\\\\\\\\.d|abs\\\\\\\\.s|add|add\\\\\\\\.d|add\\\\\\\\.s|addi|addiu|addu|and|andi|bc1f|bc1t|beq|bgez|bgezal|bgtz|blez|bltz|bltzal|bne|break|c\\\\\\\\.eq\\\\\\\\.d|c\\\\\\\\.eq\\\\\\\\.s|c\\\\\\\\.le\\\\\\\\.d|c\\\\\\\\.le\\\\\\\\.s|c\\\\\\\\.lt\\\\\\\\.d|c\\\\\\\\.lt\\\\\\\\.s|ceil\\\\\\\\.w\\\\\\\\.d|ceil\\\\\\\\.w\\\\\\\\.s|clo|clz|cvt\\\\\\\\.d\\\\\\\\.s|cvt\\\\\\\\.d\\\\\\\\.w|cvt\\\\\\\\.s\\\\\\\\.d|cvt\\\\\\\\.s\\\\\\\\.w|cvt\\\\\\\\.w\\\\\\\\.d|cvt\\\\\\\\.w\\\\\\\\.s|div|div\\\\\\\\.d|div\\\\\\\\.s|divu|eret|floor\\\\\\\\.w\\\\\\\\.d|floor\\\\\\\\.w\\\\\\\\.s|j|jal|jalr|jr|lb|lbu|lh|lhu|ll|lui|lw|lwc1|lwl|lwr|madd|maddu|mfc0|mfc1|mfhi|mflo|mov\\\\\\\\.d|mov\\\\\\\\.s|movf|movf\\\\\\\\.d|movf\\\\\\\\.s|movn|movn\\\\\\\\.d|movn\\\\\\\\.s|movt|movt\\\\\\\\.d|movt\\\\\\\\.s|movz|movz\\\\\\\\.d|movz\\\\\\\\.s|msub|mtc0|mtc1|mthi|mtlo|mul|mul\\\\\\\\.d|mul\\\\\\\\.s|mult|multu|neg\\\\\\\\.d|neg\\\\\\\\.s|nop|nor|or|ori|round\\\\\\\\.w\\\\\\\\.d|round\\\\\\\\.w\\\\\\\\.s|sb|sc|sdc1|sh|sll|sllv|slt|slti|sltiu|sltu|sqrt\\\\\\\\.d|sqrt\\\\\\\\.s|sra|srav|srl|srlv|sub|sub\\\\\\\\.d|sub\\\\\\\\.s|subu|sw|swc1|swl|swr|syscall|teq|teqi|tge|tgei|tgeiu|tgeu|tlt|tlti|tltiu|tltu|trunc\\\\\\\\.w\\\\\\\\.d|trunc\\\\\\\\.w\\\\\\\\.s|xor|xori)\\\\\\\\b\",\"name\":\"support.function.mips\"},{\"match\":\"\\\\\\\\.(ascii|asciiz|byte|data|double|float|half|kdata|ktext|space|text|word|set\\\\\\\\s*(noat|at))\\\\\\\\b\",\"name\":\"storage.type.mips\"},{\"match\":\"\\\\\\\\.(align|extern||globl)\\\\\\\\b\",\"name\":\"storage.modifier.mips\"},{\"captures\":{\"1\":{\"name\":\"entity.name.function.label.mips\"}},\"match\":\"\\\\\\\\b([A-Za-z0-9_]+):\",\"name\":\"meta.function.label.mips\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.mips\"}},\"match\":\"(\\\\\\\\$)(0|[2-9]|1[0-9]|2[0-5]|2[89]|3[0-1])\\\\\\\\b\",\"name\":\"variable.other.register.usable.by-number.mips\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.mips\"}},\"match\":\"(\\\\\\\\$)(zero|v[01]|a[0-3]|t[0-9]|s[0-7]|gp|sp|fp|ra)\\\\\\\\b\",\"name\":\"variable.other.register.usable.by-name.mips\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.mips\"}},\"match\":\"(\\\\\\\\$)(at|k[01]|1|2[67])\\\\\\\\b\",\"name\":\"variable.other.register.reserved.mips\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.mips\"}},\"match\":\"(\\\\\\\\$)f([0-9]|1[0-9]|2[0-9]|3[0-1])\\\\\\\\b\",\"name\":\"variable.other.register.usable.floating-point.mips\"},{\"match\":\"\\\\\\\\b\\\\\\\\d+\\\\\\\\.\\\\\\\\d+\\\\\\\\b\",\"name\":\"constant.numeric.float.mips\"},{\"match\":\"\\\\\\\\b(\\\\\\\\d+|0(x|X)[a-fA-F0-9]+)\\\\\\\\b\",\"name\":\"constant.numeric.integer.mips\"},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.mips\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.mips\"}},\"name\":\"string.quoted.double.mips\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[rnt\\\\\\\\\\\\\\\\\\\\\"]\",\"name\":\"constant.character.escape.mips\"}]},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.mips\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.mips\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.number-sign.mips\"}]}],\"scopeName\":\"source.mips\",\"aliases\":[\"mips\"]}')),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BE9QQhgF.js",
    "content": "import r from\"./UIAJJxZW.js\";import e from\"./CVw76BM1.js\";import t from\"./e4jU7D2d.js\";import\"./BMYPR7BL.js\";import\"./ySlJ1b_l.js\";import\"./BPhBrDlE.js\";const a=Object.freeze(JSON.parse(`{\"displayName\":\"MDC\",\"injectionSelector\":\"L:text.html.markdown\",\"name\":\"mdc\",\"patterns\":[{\"include\":\"text.html.markdown#frontMatter\"},{\"include\":\"#block\"}],\"repository\":{\"attribute\":{\"patterns\":[{\"captures\":{\"2\":{\"name\":\"entity.other.attribute-name.html\"},\"3\":{\"patterns\":[{\"include\":\"#attribute-interior\"}]}},\"match\":\"(([^=><\\\\\\\\s]*)(=[\\\\\"]([^\\\\\"]*)([\\\\\"])|[']([^']*)(['])|=[^\\\\\\\\s'\\\\\"}]*)?\\\\\\\\s*)\"}]},\"attribute-interior\":{\"patterns\":[{\"begin\":\"=\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.key-value.html\"}},\"end\":\"(?<=[^\\\\\\\\s=])(?!\\\\\\\\s*=)|(?=/?>)\",\"patterns\":[{\"match\":\"([^\\\\\\\\s\\\\\"'=<>\\`/]|/(?!>))+\",\"name\":\"string.unquoted.html\"},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"string.quoted.double.html\",\"patterns\":[{\"include\":\"#entities\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"string.quoted.single.html\",\"patterns\":[{\"include\":\"#entities\"}]},{\"match\":\"=\",\"name\":\"invalid.illegal.unexpected-equals-sign.html\"}]}]},\"attributes\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.start.component\"},\"3\":{\"patterns\":[{\"include\":\"#attribute\"}]},\"4\":{\"name\":\"punctuation.definition.tag.end.component\"}},\"match\":\"(({)([^{]*)(}))\",\"name\":\"attributes.mdc\"},\"block\":{\"patterns\":[{\"include\":\"#component_block\"},{\"include\":\"text.html.markdown#separator\"},{\"include\":\"#heading\"},{\"include\":\"#blockquote\"},{\"include\":\"#lists\"},{\"include\":\"text.html.markdown#fenced_code_block\"},{\"include\":\"text.html.markdown#link-def\"},{\"include\":\"text.html.markdown#html\"},{\"include\":\"#paragraph\"}]},\"blockquote\":{\"begin\":\"(^|\\\\\\\\G)[ ]*(>) ?\",\"captures\":{\"2\":{\"name\":\"punctuation.definition.quote.begin.markdown\"}},\"name\":\"markup.quote.markdown\",\"patterns\":[{\"include\":\"#block\"}],\"while\":\"(^|\\\\\\\\G)\\\\\\\\s*(>) ?\"},\"component_block\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(:{2,})(?i:(\\\\\\\\w[\\\\\\\\w\\\\\\\\d-]+)(\\\\\\\\s*|\\\\\\\\s*({[^{]*}))$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.tag.start.mdc\"},\"4\":{\"name\":\"entity.name.tag.mdc\"},\"5\":{\"patterns\":[{\"include\":\"#attributes\"}]}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2)(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.tag.end.mdc\"}},\"name\":\"block.component.mdc\",\"patterns\":[{\"captures\":{\"2\":{\"name\":\"punctuation.definition.tag.end.mdc\"}},\"match\":\"(^|\\\\\\\\G)\\\\\\\\s*([:]{2,})$\"},{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(-{3})(\\\\\\\\s*)$\",\"end\":\"(^|\\\\\\\\G)(\\\\\\\\s*(-{3})(\\\\\\\\s*)$)\",\"patterns\":[{\"include\":\"source.yaml\"}]},{\"captures\":{\"2\":{\"name\":\"entity.other.attribute-name.html\"},\"3\":{\"name\":\"comment.block.html\"}},\"match\":\"^(\\\\\\\\s*)(#[\\\\\\\\w\\\\\\\\-\\\\\\\\_]*)\\\\\\\\s*(<!--(.*)-->)?$\"},{\"include\":\"#block\"}]},\"component_inline\":{\"captures\":{\"2\":{\"name\":\"punctuation.definition.tag.start.component\"},\"3\":{\"name\":\"entity.name.tag.component\"},\"5\":{\"patterns\":[{\"include\":\"#attributes\"}]},\"6\":{\"patterns\":[{\"include\":\"#span\"}]},\"7\":{\"patterns\":[{\"include\":\"#span\"}]},\"8\":{\"patterns\":[{\"include\":\"#attributes\"}]}},\"match\":\"(^|\\\\\\\\G|\\\\\\\\s+)(:)(?i:(\\\\\\\\w[\\\\\\\\w\\\\\\\\d-]*))(({[^}]*})(\\\\\\\\[[^\\\\\\\\]]*\\\\\\\\])?|(\\\\\\\\[[^\\\\\\\\]]*\\\\\\\\])({[^}]*})?)?\\\\\\\\s\",\"name\":\"inline.component.mdc\"},\"entities\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.html\"},\"912\":{\"name\":\"punctuation.definition.entity.html\"}},\"match\":\"(&)(?=[a-zA-Z])((a(s(ymp(eq)?|cr|t)|n(d(slope|d|v|and)?|g(s(t|ph)|zarr|e|le|rt(vb(d)?)?|msd(a(h|c|d|e|f|a|g|b))?)?)|c(y|irc|d|ute|E)?|tilde|o(pf|gon)|uml|p(id|os|prox(eq)?|e|E|acir)?|elig|f(r)?|w(conint|int)|l(pha|e(ph|fsym))|acute|ring|grave|m(p|a(cr|lg))|breve)|A(s(sign|cr)|nd|MP|c(y|irc)|tilde|o(pf|gon)|uml|pplyFunction|fr|Elig|lpha|acute|ring|grave|macr|breve))|(B(scr|cy|opf|umpeq|e(cause|ta|rnoullis)|fr|a(ckslash|r(v|wed))|reve)|b(s(cr|im(e)?|ol(hsub|b)?|emi)|n(ot|e(quiv)?)|c(y|ong)|ig(s(tar|qcup)|c(irc|up|ap)|triangle(down|up)|o(times|dot|plus)|uplus|vee|wedge)|o(t(tom)?|pf|wtie|x(h(d|u|D|U)?|times|H(d|u|D|U)?|d(R|l|r|L)|u(R|l|r|L)|plus|D(R|l|r|L)|v(R|h|H|l|r|L)?|U(R|l|r|L)|V(R|h|H|l|r|L)?|minus|box))|Not|dquo|u(ll(et)?|mp(e(q)?|E)?)|prime|e(caus(e)?|t(h|ween|a)|psi|rnou|mptyv)|karow|fr|l(ock|k(1(2|4)|34)|a(nk|ck(square|triangle(down|left|right)?|lozenge)))|a(ck(sim(eq)?|cong|prime|epsilon)|r(vee|wed(ge)?))|r(eve|vbar)|brk(tbrk)?))|(c(s(cr|u(p(e)?|b(e)?))|h(cy|i|eck(mark)?)|ylcty|c(irc|ups(sm)?|edil|a(ps|ron))|tdot|ir(scir|c(eq|le(d(R|circ|S|dash|ast)|arrow(left|right)))?|e|fnint|E|mid)?|o(n(int|g(dot)?)|p(y(sr)?|f|rod)|lon(e(q)?)?|m(p(fn|le(xes|ment))?|ma(t)?))|dot|u(darr(l|r)|p(s|c(up|ap)|or|dot|brcap)?|e(sc|pr)|vee|wed|larr(p)?|r(vearrow(left|right)|ly(eq(succ|prec)|vee|wedge)|arr(m)?|ren))|e(nt(erdot)?|dil|mptyv)|fr|w(conint|int)|lubs(uit)?|a(cute|p(s|c(up|ap)|dot|and|brcup)?|r(on|et))|r(oss|arr))|C(scr|hi|c(irc|onint|edil|aron)|ircle(Minus|Times|Dot|Plus)|Hcy|o(n(tourIntegral|int|gruent)|unterClockwiseContourIntegral|p(f|roduct)|lon(e)?)|dot|up(Cap)?|OPY|e(nterDot|dilla)|fr|lo(seCurly(DoubleQuote|Quote)|ckwiseContourIntegral)|a(yleys|cute|p(italDifferentialD)?)|ross))|(d(s(c(y|r)|trok|ol)|har(l|r)|c(y|aron)|t(dot|ri(f)?)|i(sin|e|v(ide(ontimes)?|onx)?|am(s|ond(suit)?)?|gamma)|Har|z(cy|igrarr)|o(t(square|plus|eq(dot)?|minus)?|ublebarwedge|pf|wn(harpoon(left|right)|downarrows|arrow)|llar)|d(otseq|a(rr|gger))?|u(har|arr)|jcy|e(lta|g|mptyv)|f(isht|r)|wangle|lc(orn|rop)|a(sh(v)?|leth|rr|gger)|r(c(orn|rop)|bkarow)|b(karow|lac)|Arr)|D(s(cr|trok)|c(y|aron)|Scy|i(fferentialD|a(critical(Grave|Tilde|Do(t|ubleAcute)|Acute)|mond))|o(t(Dot|Equal)?|uble(Right(Tee|Arrow)|ContourIntegral|Do(t|wnArrow)|Up(DownArrow|Arrow)|VerticalBar|L(ong(RightArrow|Left(RightArrow|Arrow))|eft(RightArrow|Tee|Arrow)))|pf|wn(Right(TeeVector|Vector(Bar)?)|Breve|Tee(Arrow)?|arrow|Left(RightVector|TeeVector|Vector(Bar)?)|Arrow(Bar|UpArrow)?))|Zcy|el(ta)?|D(otrahd)?|Jcy|fr|a(shv|rr|gger)))|(e(s(cr|im|dot)|n(sp|g)|c(y|ir(c)?|olon|aron)|t(h|a)|o(pf|gon)|dot|u(ro|ml)|p(si(v|lon)?|lus|ar(sl)?)|e|D(ot|Dot)|q(s(im|lant(less|gtr))|c(irc|olon)|u(iv(DD)?|est|als)|vparsl)|f(Dot|r)|l(s(dot)?|inters|l)?|a(ster|cute)|r(Dot|arr)|g(s(dot)?|rave)?|x(cl|ist|p(onentiale|ectation))|m(sp(1(3|4))?|pty(set|v)?|acr))|E(s(cr|im)|c(y|irc|aron)|ta|o(pf|gon)|NG|dot|uml|TH|psilon|qu(ilibrium|al(Tilde)?)|fr|lement|acute|grave|x(ists|ponentialE)|m(pty(SmallSquare|VerySmallSquare)|acr)))|(f(scr|nof|cy|ilig|o(pf|r(k(v)?|all))|jlig|partint|emale|f(ilig|l(ig|lig)|r)|l(tns|lig|at)|allingdotseq|r(own|a(sl|c(1(2|8|3|4|5|6)|78|2(3|5)|3(8|4|5)|45|5(8|6)))))|F(scr|cy|illed(SmallSquare|VerySmallSquare)|o(uriertrf|pf|rAll)|fr))|(G(scr|c(y|irc|edil)|t|opf|dot|T|Jcy|fr|amma(d)?|reater(Greater|SlantEqual|Tilde|Equal(Less)?|FullEqual|Less)|g|breve)|g(s(cr|im(e|l)?)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|irc)|t(c(c|ir)|dot|quest|lPar|r(sim|dot|eq(qless|less)|less|a(pprox|rr)))?|imel|opf|dot|jcy|e(s(cc|dot(o(l)?)?|l(es)?)?|q(slant|q)?|l)?|v(nE|ertneqq)|fr|E(l)?|l(j|E|a)?|a(cute|p|mma(d)?)|rave|g(g)?|breve))|(h(s(cr|trok|lash)|y(phen|bull)|circ|o(ok(leftarrow|rightarrow)|pf|arr|rbar|mtht)|e(llip|arts(uit)?|rcon)|ks(earow|warow)|fr|a(irsp|lf|r(dcy|r(cir|w)?)|milt)|bar|Arr)|H(s(cr|trok)|circ|ilbertSpace|o(pf|rizontalLine)|ump(DownHump|Equal)|fr|a(cek|t)|ARDcy))|(i(s(cr|in(s(v)?|dot|v|E)?)|n(care|t(cal|prod|e(rcal|gers)|larhk)?|odot|fin(tie)?)?|c(y|irc)?|t(ilde)?|i(nfin|i(nt|int)|ota)?|o(cy|ta|pf|gon)|u(kcy|ml)|jlig|prod|e(cy|xcl)|quest|f(f|r)|acute|grave|m(of|ped|a(cr|th|g(part|e|line))))|I(scr|n(t(e(rsection|gral))?|visible(Comma|Times))|c(y|irc)|tilde|o(ta|pf|gon)|dot|u(kcy|ml)|Ocy|Jlig|fr|Ecy|acute|grave|m(plies|a(cr|ginaryI))?))|(j(s(cr|ercy)|c(y|irc)|opf|ukcy|fr|math)|J(s(cr|ercy)|c(y|irc)|opf|ukcy|fr))|(k(scr|hcy|c(y|edil)|opf|jcy|fr|appa(v)?|green)|K(scr|c(y|edil)|Hcy|opf|Jcy|fr|appa))|(l(s(h|cr|trok|im(e|g)?|q(uo(r)?|b)|aquo)|h(ar(d|u(l)?)|blk)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|ub|e(il|dil)|aron)|Barr|t(hree|c(c|ir)|imes|dot|quest|larr|r(i(e|f)?|Par))?|Har|o(ng(left(arrow|rightarrow)|rightarrow|mapsto)|times|z(enge|f)?|oparrow(left|right)|p(f|lus|ar)|w(ast|bar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|r(dhar|ushar))|ur(dshar|uhar)|jcy|par(lt)?|e(s(s(sim|dot|eq(qgtr|gtr)|approx|gtr)|cc|dot(o(r)?)?|g(es)?)?|q(slant|q)?|ft(harpoon(down|up)|threetimes|leftarrows|arrow(tail)?|right(squigarrow|harpoons|arrow(s)?))|g)?|v(nE|ertneqq)|f(isht|loor|r)|E(g)?|l(hard|corner|tri|arr)?|a(ng(d|le)?|cute|t(e(s)?|ail)?|p|emptyv|quo|rr(sim|hk|tl|pl|fs|lp|b(fs)?)?|gran|mbda)|r(har(d)?|corner|tri|arr|m)|g(E)?|m(idot|oust(ache)?)|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr))|L(s(h|cr|trok)|c(y|edil|aron)|t|o(ng(RightArrow|left(arrow|rightarrow)|rightarrow|Left(RightArrow|Arrow))|pf|wer(RightArrow|LeftArrow))|T|e(ss(Greater|SlantEqual|Tilde|EqualGreater|FullEqual|Less)|ft(Right(Vector|Arrow)|Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|rightarrow|Floor|A(ngleBracket|rrow(RightArrow|Bar)?)))|Jcy|fr|l(eftarrow)?|a(ng|cute|placetrf|rr|mbda)|midot))|(M(scr|cy|inusPlus|opf|u|e(diumSpace|llintrf)|fr|ap)|m(s(cr|tpos)|ho|nplus|c(y|omma)|i(nus(d(u)?|b)?|cro|d(cir|dot|ast)?)|o(dels|pf)|dash|u(ltimap|map)?|p|easuredangle|DDot|fr|l(cp|dr)|a(cr|p(sto(down|up|left)?)?|l(t(ese)?|e)|rker)))|(n(s(hort(parallel|mid)|c(cue|e|r)?|im(e(q)?)?|u(cc(eq)?|p(set(eq(q)?)?|e|E)?|b(set(eq(q)?)?|e|E)?)|par|qsu(pe|be)|mid)|Rightarrow|h(par|arr|Arr)|G(t(v)?|g)|c(y|ong(dot)?|up|edil|a(p|ron))|t(ilde|lg|riangle(left(eq)?|right(eq)?)|gl)|i(s(d)?|v)?|o(t(ni(v(c|a|b))?|in(dot|v(c|a|b)|E)?)?|pf)|dash|u(m(sp|ero)?)?|jcy|p(olint|ar(sl|t|allel)?|r(cue|e(c(eq)?)?)?)|e(s(im|ear)|dot|quiv|ar(hk|r(ow)?)|xist(s)?|Arr)?|v(sim|infin|Harr|dash|Dash|l(t(rie)?|e|Arr)|ap|r(trie|Arr)|g(t|e))|fr|w(near|ar(hk|r(ow)?)|Arr)|V(dash|Dash)|l(sim|t(ri(e)?)?|dr|e(s(s)?|q(slant|q)?|ft(arrow|rightarrow))?|E|arr|Arr)|a(ng|cute|tur(al(s)?)?|p(id|os|prox|E)?|bla)|r(tri(e)?|ightarrow|arr(c|w)?|Arr)|g(sim|t(r)?|e(s|q(slant|q)?)?|E)|mid|L(t(v)?|eft(arrow|rightarrow)|l)|b(sp|ump(e)?))|N(scr|c(y|edil|aron)|tilde|o(nBreakingSpace|Break|t(R(ightTriangle(Bar|Equal)?|everseElement)|Greater(Greater|SlantEqual|Tilde|Equal|FullEqual|Less)?|S(u(cceeds(SlantEqual|Tilde|Equal)?|perset(Equal)?|bset(Equal)?)|quareSu(perset(Equal)?|bset(Equal)?))|Hump(DownHump|Equal)|Nested(GreaterGreater|LessLess)|C(ongruent|upCap)|Tilde(Tilde|Equal|FullEqual)?|DoubleVerticalBar|Precedes(SlantEqual|Equal)?|E(qual(Tilde)?|lement|xists)|VerticalBar|Le(ss(Greater|SlantEqual|Tilde|Equal|Less)?|ftTriangle(Bar|Equal)?))?|pf)|u|e(sted(GreaterGreater|LessLess)|wLine|gative(MediumSpace|Thi(nSpace|ckSpace)|VeryThinSpace))|Jcy|fr|acute))|(o(s(cr|ol|lash)|h(m|bar)|c(y|ir(c)?)|ti(lde|mes(as)?)|S|int|opf|d(sold|iv|ot|ash|blac)|uml|p(erp|lus|ar)|elig|vbar|f(cir|r)|l(c(ir|ross)|t|ine|arr)|a(st|cute)|r(slope|igof|or|d(er(of)?|f|m)?|v|arr)?|g(t|on|rave)|m(i(nus|cron|d)|ega|acr))|O(s(cr|lash)|c(y|irc)|ti(lde|mes)|opf|dblac|uml|penCurly(DoubleQuote|Quote)|ver(B(ar|rac(e|ket))|Parenthesis)|fr|Elig|acute|r|grave|m(icron|ega|acr)))|(p(s(cr|i)|h(i(v)?|one|mmat)|cy|i(tchfork|v)?|o(intint|und|pf)|uncsp|er(cnt|tenk|iod|p|mil)|fr|l(us(sim|cir|two|d(o|u)|e|acir|mn|b)?|an(ck(h)?|kv))|ar(s(im|l)|t|a(llel)?)?|r(sim|n(sim|E|ap)|cue|ime(s)?|o(d|p(to)?|f(surf|line|alar))|urel|e(c(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?)?|E|ap)?|m)|P(s(cr|i)|hi|cy|i|o(incareplane|pf)|fr|lusMinus|artialD|r(ime|o(duct|portion(al)?)|ecedes(SlantEqual|Tilde|Equal)?)?))|(q(scr|int|opf|u(ot|est(eq)?|at(int|ernions))|prime|fr)|Q(scr|opf|UOT|fr))|(R(s(h|cr)|ho|c(y|edil|aron)|Barr|ight(Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|Floor|A(ngleBracket|rrow(Bar|LeftArrow)?))|o(undImplies|pf)|uleDelayed|e(verse(UpEquilibrium|E(quilibrium|lement)))?|fr|EG|a(ng|cute|rr(tl)?)|rightarrow)|r(s(h|cr|q(uo(r)?|b)|aquo)|h(o(v)?|ar(d|u(l)?))|nmid|c(y|ub|e(il|dil)|aron)|Barr|t(hree|imes|ri(e|f|ltri)?)|i(singdotseq|ng|ght(squigarrow|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(tail)?|rightarrows))|Har|o(times|p(f|lus|ar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|ldhar)|uluhar|p(polint|ar(gt)?)|e(ct|al(s|ine|part)?|g)|f(isht|loor|r)|l(har|arr|m)|a(ng(d|e|le)?|c(ute|e)|t(io(nals)?|ail)|dic|emptyv|quo|rr(sim|hk|c|tl|pl|fs|w|lp|ap|b(fs)?)?)|rarr|x|moust(ache)?|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr)))|(s(s(cr|tarf|etmn|mile)|h(y|c(hcy|y)|ort(parallel|mid)|arp)|c(sim|y|n(sim|E|ap)|cue|irc|polint|e(dil)?|E|a(p|ron))?|t(ar(f)?|r(ns|aight(phi|epsilon)))|i(gma(v|f)?|m(ne|dot|plus|e(q)?|l(E)?|rarr|g(E)?)?)|zlig|o(pf|ftcy|l(b(ar)?)?)|dot(e|b)?|u(ng|cc(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?|p(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|hs(ol|ub)|1|n(e|E)|2|d(sub|ot)|3|plus|e(dot)?|E|larr|mult)?|m|b(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|n(e|E)|dot|plus|e(dot)?|E|rarr|mult)?)|pa(des(uit)?|r)|e(swar|ct|tm(n|inus)|ar(hk|r(ow)?)|xt|mi|Arr)|q(su(p(set(eq)?|e)?|b(set(eq)?|e)?)|c(up(s)?|ap(s)?)|u(f|ar(e|f))?)|fr(own)?|w(nwar|ar(hk|r(ow)?)|Arr)|larr|acute|rarr|m(t(e(s)?)?|i(d|le)|eparsl|a(shp|llsetminus))|bquo)|S(scr|hort(RightArrow|DownArrow|UpArrow|LeftArrow)|c(y|irc|edil|aron)?|tar|igma|H(cy|CHcy)|opf|u(c(hThat|ceeds(SlantEqual|Tilde|Equal)?)|p(set|erset(Equal)?)?|m|b(set(Equal)?)?)|OFTcy|q(uare(Su(perset(Equal)?|bset(Equal)?)|Intersection|Union)?|rt)|fr|acute|mallCircle))|(t(s(hcy|c(y|r)|trok)|h(i(nsp|ck(sim|approx))|orn|e(ta(sym|v)?|re(4|fore))|k(sim|ap))|c(y|edil|aron)|i(nt|lde|mes(d|b(ar)?)?)|o(sa|p(cir|f(ork)?|bot)?|ea)|dot|prime|elrec|fr|w(ixt|ohead(leftarrow|rightarrow))|a(u|rget)|r(i(sb|time|dot|plus|e|angle(down|q|left(eq)?|right(eq)?)?|minus)|pezium|ade)|brk)|T(s(cr|trok)|RADE|h(i(nSpace|ckSpace)|e(ta|refore))|c(y|edil|aron)|S(cy|Hcy)|ilde(Tilde|Equal|FullEqual)?|HORN|opf|fr|a(u|b)|ripleDot))|(u(scr|h(ar(l|r)|blk)|c(y|irc)|t(ilde|dot|ri(f)?)|Har|o(pf|gon)|d(har|arr|blac)|u(arr|ml)|p(si(h|lon)?|harpoon(left|right)|downarrow|uparrows|lus|arrow)|f(isht|r)|wangle|l(c(orn(er)?|rop)|tri)|a(cute|rr)|r(c(orn(er)?|rop)|tri|ing)|grave|m(l|acr)|br(cy|eve)|Arr)|U(scr|n(ion(Plus)?|der(B(ar|rac(e|ket))|Parenthesis))|c(y|irc)|tilde|o(pf|gon)|dblac|uml|p(si(lon)?|downarrow|Tee(Arrow)?|per(RightArrow|LeftArrow)|DownArrow|Equilibrium|arrow|Arrow(Bar|DownArrow)?)|fr|a(cute|rr(ocir)?)|ring|grave|macr|br(cy|eve)))|(v(s(cr|u(pn(e|E)|bn(e|E)))|nsu(p|b)|cy|Bar(v)?|zigzag|opf|dash|prop|e(e(eq|bar)?|llip|r(t|bar))|Dash|fr|ltri|a(ngrt|r(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|t(heta|riangle(left|right))|p(hi|i|ropto)|epsilon|kappa|r(ho)?))|rtri|Arr)|V(scr|cy|opf|dash(l)?|e(e|r(yThinSpace|t(ical(Bar|Separator|Tilde|Line))?|bar))|Dash|vdash|fr|bar))|(w(scr|circ|opf|p|e(ierp|d(ge(q)?|bar))|fr|r(eath)?)|W(scr|circ|opf|edge|fr))|(X(scr|i|opf|fr)|x(s(cr|qcup)|h(arr|Arr)|nis|c(irc|up|ap)|i|o(time|dot|p(f|lus))|dtri|u(tri|plus)|vee|fr|wedge|l(arr|Arr)|r(arr|Arr)|map))|(y(scr|c(y|irc)|icy|opf|u(cy|ml)|en|fr|ac(y|ute))|Y(scr|c(y|irc)|opf|uml|Icy|Ucy|fr|acute|Acy))|(z(scr|hcy|c(y|aron)|igrarr|opf|dot|e(ta|etrf)|fr|w(nj|j)|acute)|Z(scr|c(y|aron)|Hcy|opf|dot|e(ta|roWidthSpace)|fr|acute)))(;)\",\"name\":\"constant.character.entity.named.$2.html\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.html\"},\"3\":{\"name\":\"punctuation.definition.entity.html\"}},\"match\":\"(&)#[0-9]+(;)\",\"name\":\"constant.character.entity.numeric.decimal.html\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.html\"},\"3\":{\"name\":\"punctuation.definition.entity.html\"}},\"match\":\"(&)#[xX][0-9a-fA-F]+(;)\",\"name\":\"constant.character.entity.numeric.hexadecimal.html\"},{\"match\":\"&(?=[a-zA-Z0-9]+;)\",\"name\":\"invalid.illegal.ambiguous-ampersand.html\"}]},\"heading\":{\"captures\":{\"1\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.heading.markdown\"},\"2\":{\"name\":\"entity.name.section.markdown\",\"patterns\":[{\"include\":\"text.html.markdown#inline\"},{\"include\":\"text.html.derivative\"}]},\"3\":{\"name\":\"punctuation.definition.heading.markdown\"}},\"match\":\"(#{6})\\\\\\\\s+(.*?)(?:\\\\\\\\s+(#+))?\\\\\\\\s*$\",\"name\":\"heading.6.markdown\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.heading.markdown\"},\"2\":{\"name\":\"entity.name.section.markdown\",\"patterns\":[{\"include\":\"text.html.markdown#inline\"},{\"include\":\"text.html.derivative\"}]},\"3\":{\"name\":\"punctuation.definition.heading.markdown\"}},\"match\":\"(#{5})\\\\\\\\s+(.*?)(?:\\\\\\\\s+(#+))?\\\\\\\\s*$\",\"name\":\"heading.5.markdown\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.heading.markdown\"},\"2\":{\"name\":\"entity.name.section.markdown\",\"patterns\":[{\"include\":\"text.html.markdown#inline\"},{\"include\":\"text.html.derivative\"}]},\"3\":{\"name\":\"punctuation.definition.heading.markdown\"}},\"match\":\"(#{4})\\\\\\\\s+(.*?)(?:\\\\\\\\s+(#+))?\\\\\\\\s*$\",\"name\":\"heading.4.markdown\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.heading.markdown\"},\"2\":{\"name\":\"entity.name.section.markdown\",\"patterns\":[{\"include\":\"text.html.markdown#inline\"},{\"include\":\"text.html.derivative\"}]},\"3\":{\"name\":\"punctuation.definition.heading.markdown\"}},\"match\":\"(#{3})\\\\\\\\s+(.*?)(?:\\\\\\\\s+(#+))?\\\\\\\\s*$\",\"name\":\"heading.3.markdown\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.heading.markdown\"},\"2\":{\"name\":\"entity.name.section.markdown\",\"patterns\":[{\"include\":\"text.html.markdown#inline\"},{\"include\":\"text.html.derivative\"}]},\"3\":{\"name\":\"punctuation.definition.heading.markdown\"}},\"match\":\"(#{2})\\\\\\\\s+(.*?)(?:\\\\\\\\s+(#+))?\\\\\\\\s*$\",\"name\":\"heading.2.markdown\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.heading.markdown\"},\"2\":{\"name\":\"entity.name.section.markdown\",\"patterns\":[{\"include\":\"text.html.markdown#inline\"},{\"include\":\"text.html.derivative\"}]},\"3\":{\"name\":\"punctuation.definition.heading.markdown\"}},\"match\":\"(#{1})\\\\\\\\s+(.*?)(?:\\\\\\\\s+(#+))?\\\\\\\\s*$\",\"name\":\"heading.1.markdown\"}]}},\"match\":\"(?:^|\\\\\\\\G)[ ]*(#{1,6}\\\\\\\\s+(.*?)(\\\\\\\\s+#{1,6})?\\\\\\\\s*)$\",\"name\":\"markup.heading.markdown\",\"patterns\":[{\"include\":\"text.html.markdown#inline\"}]},\"heading-setext\":{\"patterns\":[{\"match\":\"^(={3,})(?=[ \\\\\\\\t]*$\\\\\\\\n?)\",\"name\":\"markup.heading.setext.1.markdown\"},{\"match\":\"^(-{3,})(?=[ \\\\\\\\t]*$\\\\\\\\n?)\",\"name\":\"markup.heading.setext.2.markdown\"}]},\"inline\":{\"patterns\":[{\"include\":\"#component_inline\"},{\"include\":\"#span\"},{\"include\":\"#attributes\"}]},\"lists\":{\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)([ ]*)([*+-])([ \\\\\\\\t])\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.list.begin.markdown\"}},\"name\":\"markup.list.unnumbered.markdown\",\"patterns\":[{\"include\":\"#block\"},{\"include\":\"text.html.markdown#list_paragraph\"}],\"while\":\"((^|\\\\\\\\G)([ ]*|\\\\\\\\t))|(^[ \\\\\\\\t]*$)\"},{\"begin\":\"(^|\\\\\\\\G)([ ]*)([0-9]+\\\\\\\\.)([ \\\\\\\\t])\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.list.begin.markdown\"}},\"name\":\"markup.list.numbered.markdown\",\"patterns\":[{\"include\":\"#block\"},{\"include\":\"text.html.markdown#list_paragraph\"}],\"while\":\"((^|\\\\\\\\G)([ ]*|\\\\\\\\t))|(^[ \\\\\\\\t]*$)\"}]},\"paragraph\":{\"begin\":\"(^|\\\\\\\\G)[ ]*(?=\\\\\\\\S)\",\"name\":\"meta.paragraph.markdown\",\"patterns\":[{\"include\":\"text.html.markdown#inline\"},{\"include\":\"text.html.derivative\"},{\"include\":\"#heading-setext\"}],\"while\":\"(^|\\\\\\\\G)((?=\\\\\\\\s*[-=]{3,}\\\\\\\\s*$)|[ ]{4,}(?=\\\\\\\\S))\"},\"span\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.start.component\"},\"2\":{\"name\":\"string.other.link.description.title.markdown\"},\"3\":{\"name\":\"punctuation.definition.tag.end.component\"},\"4\":{\"patterns\":[{\"include\":\"#attributes\"}]}},\"match\":\"(\\\\\\\\[)([^]]*)(\\\\\\\\])(({)([^{]*)(}))?\\\\\\\\s\",\"name\":\"span.component.mdc\"}},\"scopeName\":\"text.markdown.mdc.standalone\",\"embeddedLangs\":[\"markdown\",\"yaml\",\"html-derivative\"]}`)),u=[...r,...e,...t,a];export{u as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BEBZ7ncR.js",
    "content": "const t=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.background\":\"#101010\",\"activityBar.foreground\":\"#A0A0A0\",\"activityBarBadge.background\":\"#FFC799\",\"activityBarBadge.foreground\":\"#000\",\"badge.background\":\"#FFC799\",\"badge.foreground\":\"#000\",\"button.background\":\"#FFC799\",\"button.foreground\":\"#000\",\"button.hoverBackground\":\"#FFCFA8\",\"diffEditor.insertedLineBackground\":\"#99FFE415\",\"diffEditor.insertedTextBackground\":\"#99FFE415\",\"diffEditor.removedLineBackground\":\"#FF808015\",\"diffEditor.removedTextBackground\":\"#FF808015\",\"editor.background\":\"#101010\",\"editor.foreground\":\"#FFF\",\"editor.selectionBackground\":\"#FFFFFF25\",\"editor.selectionHighlightBackground\":\"#FFFFFF25\",\"editorBracketHighlight.foreground1\":\"#A0A0A0\",\"editorBracketHighlight.foreground2\":\"#A0A0A0\",\"editorBracketHighlight.foreground3\":\"#A0A0A0\",\"editorBracketHighlight.foreground4\":\"#A0A0A0\",\"editorBracketHighlight.foreground5\":\"#A0A0A0\",\"editorBracketHighlight.foreground6\":\"#A0A0A0\",\"editorBracketHighlight.unexpectedBracket.foreground\":\"#FF8080\",\"editorError.foreground\":\"#FF8080\",\"editorGroupHeader.tabsBackground\":\"#101010\",\"editorGutter.addedBackground\":\"#99FFE4\",\"editorGutter.deletedBackground\":\"#FF8080\",\"editorGutter.modifiedBackground\":\"#FFC799\",\"editorHoverWidget.background\":\"#161616\",\"editorHoverWidget.border\":\"#282828\",\"editorInlayHint.background\":\"#1C1C1C\",\"editorInlayHint.foreground\":\"#A0A0A0\",\"editorLineNumber.foreground\":\"#505050\",\"editorOverviewRuler.border\":\"#101010\",\"editorWarning.foreground\":\"#FFC799\",\"editorWidget.background\":\"#101010\",\"focusBorder\":\"#FFC799\",\"icon.foreground\":\"#A0A0A0\",\"input.background\":\"#1C1C1C\",\"list.activeSelectionBackground\":\"#232323\",\"list.activeSelectionForeground\":\"#FFC799\",\"list.errorForeground\":\"#FF8080\",\"list.highlightForeground\":\"#FFC799\",\"list.hoverBackground\":\"#282828\",\"list.inactiveSelectionBackground\":\"#232323\",\"scrollbarSlider.background\":\"#34343480\",\"scrollbarSlider.hoverBackground\":\"#343434\",\"selection.background\":\"#666\",\"settings.modifiedItemIndicator\":\"#FFC799\",\"sideBar.background\":\"#101010\",\"sideBarSectionHeader.background\":\"#101010\",\"sideBarSectionHeader.foreground\":\"#A0A0A0\",\"sideBarTitle.foreground\":\"#A0A0A0\",\"statusBar.background\":\"#101010\",\"statusBar.debuggingBackground\":\"#FF7300\",\"statusBar.debuggingForeground\":\"#FFF\",\"statusBar.foreground\":\"#A0A0A0\",\"statusBarItem.remoteBackground\":\"#FFC799\",\"statusBarItem.remoteForeground\":\"#000\",\"tab.activeBackground\":\"#161616\",\"tab.border\":\"#101010\",\"tab.inactiveBackground\":\"#101010\",\"textLink.activeForeground\":\"#FFCFA8\",\"textLink.foreground\":\"#FFC799\",\"titleBar.activeBackground\":\"#101010\",\"titleBar.activeForeground\":\"#7E7E7E\",\"titleBar.inactiveBackground\":\"#101010\",\"titleBar.inactiveForeground\":\"#707070\"},\"displayName\":\"Vesper\",\"name\":\"vesper\",\"tokenColors\":[{\"scope\":[\"comment\",\"punctuation.definition.comment\"],\"settings\":{\"foreground\":\"#8b8b8b94\"}},{\"scope\":[\"variable\",\"string constant.other.placeholder\",\"entity.name.tag\"],\"settings\":{\"foreground\":\"#FFF\"}},{\"scope\":[\"constant.other.color\"],\"settings\":{\"foreground\":\"#FFF\"}},{\"scope\":[\"invalid\",\"invalid.illegal\"],\"settings\":{\"foreground\":\"#FF8080\"}},{\"scope\":[\"keyword\",\"storage.type\",\"storage.modifier\"],\"settings\":{\"foreground\":\"#A0A0A0\"}},{\"scope\":[\"keyword.control\",\"constant.other.color\",\"punctuation.definition.tag\",\"punctuation.separator.inheritance.php\",\"punctuation.definition.tag.html\",\"punctuation.definition.tag.begin.html\",\"punctuation.definition.tag.end.html\",\"punctuation.section.embedded\",\"keyword.other.template\",\"keyword.other.substitution\"],\"settings\":{\"foreground\":\"#A0A0A0\"}},{\"scope\":[\"entity.name.tag\",\"meta.tag.sgml\",\"markup.deleted.git_gutter\"],\"settings\":{\"foreground\":\"#FFC799\"}},{\"scope\":[\"entity.name.function\",\"variable.function\",\"support.function\",\"keyword.other.special-method\"],\"settings\":{\"foreground\":\"#FFC799\"}},{\"scope\":[\"meta.block variable.other\"],\"settings\":{\"foreground\":\"#FFF\"}},{\"scope\":[\"support.other.variable\",\"string.other.link\"],\"settings\":{\"foreground\":\"#FFF\"}},{\"scope\":[\"constant.numeric\",\"support.constant\",\"constant.character\",\"constant.escape\",\"keyword.other.unit\",\"keyword.other\",\"constant.language.boolean\"],\"settings\":{\"foreground\":\"#FFC799\"}},{\"scope\":[\"string\",\"constant.other.symbol\",\"constant.other.key\",\"meta.group.braces.curly constant.other.object.key.js string.unquoted.label.js\"],\"settings\":{\"foreground\":\"#99FFE4\"}},{\"scope\":[\"entity.name\",\"support.type\",\"support.class\",\"support.other.namespace.use.php\",\"meta.use.php\",\"support.other.namespace.php\",\"markup.changed.git_gutter\",\"support.type.sys-types\"],\"settings\":{\"foreground\":\"#FFC799\"}},{\"scope\":[\"source.css support.type.property-name\",\"source.sass support.type.property-name\",\"source.scss support.type.property-name\",\"source.less support.type.property-name\",\"source.stylus support.type.property-name\",\"source.postcss support.type.property-name\",\"source.postcss support.type.property-name\",\"support.type.vendored.property-name.css\",\"source.css.scss entity.name.tag\",\"variable.parameter.keyframe-list.css\",\"meta.property-name.css\",\"variable.parameter.url.scss\",\"meta.property-value.scss\",\"meta.property-value.css\"],\"settings\":{\"foreground\":\"#FFF\"}},{\"scope\":[\"entity.name.module.js\",\"variable.import.parameter.js\",\"variable.other.class.js\"],\"settings\":{\"foreground\":\"#FF8080\"}},{\"scope\":[\"variable.language\"],\"settings\":{\"foreground\":\"#A0A0A0\"}},{\"scope\":[\"entity.name.method.js\"],\"settings\":{\"foreground\":\"#FFFF\"}},{\"scope\":[\"meta.class-method.js entity.name.function.js\",\"variable.function.constructor\"],\"settings\":{\"foreground\":\"#FFFF\"}},{\"scope\":[\"entity.other.attribute-name\",\"meta.property-list.scss\",\"meta.attribute-selector.scss\",\"meta.property-value.css\",\"entity.other.keyframe-offset.css\",\"meta.selector.css\",\"entity.name.tag.reference.scss\",\"entity.name.tag.nesting.css\",\"punctuation.separator.key-value.css\"],\"settings\":{\"foreground\":\"#A0A0A0\"}},{\"scope\":[\"text.html.basic entity.other.attribute-name.html\",\"text.html.basic entity.other.attribute-name\"],\"settings\":{\"foreground\":\"#FFC799\"}},{\"scope\":[\"entity.other.attribute-name.class\",\"entity.other.attribute-name.id\",\"meta.attribute-selector.scss\",\"variable.parameter.misc.css\"],\"settings\":{\"foreground\":\"#FFC799\"}},{\"scope\":[\"source.sass keyword.control\",\"meta.attribute-selector.scss\"],\"settings\":{\"foreground\":\"#99FFE4\"}},{\"scope\":[\"markup.inserted\"],\"settings\":{\"foreground\":\"#99FFE4\"}},{\"scope\":[\"markup.deleted\"],\"settings\":{\"foreground\":\"#FF8080\"}},{\"scope\":[\"markup.changed\"],\"settings\":{\"foreground\":\"#A0A0A0\"}},{\"scope\":[\"string.regexp\"],\"settings\":{\"foreground\":\"#A0A0A0\"}},{\"scope\":[\"constant.character.escape\"],\"settings\":{\"foreground\":\"#A0A0A0\"}},{\"scope\":[\"*url*\",\"*link*\",\"*uri*\"],\"settings\":{\"fontStyle\":\"underline\"}},{\"scope\":[\"tag.decorator.js entity.name.tag.js\",\"tag.decorator.js punctuation.definition.tag.js\"],\"settings\":{\"foreground\":\"#FFFF\"}},{\"scope\":[\"source.js constant.other.object.key.js string.unquoted.label.js\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#FF8080\"}},{\"scope\":[\"source.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#FFC799\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#FFC799\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#FFC799\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#FFC799\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#FFC799\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#FFC799\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#FFC799\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#FFC799\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#FFC799\"}},{\"scope\":[\"text.html.markdown\",\"punctuation.definition.list_item.markdown\"],\"settings\":{\"foreground\":\"#FFF\"}},{\"scope\":[\"text.html.markdown markup.inline.raw.markdown\"],\"settings\":{\"foreground\":\"#A0A0A0\"}},{\"scope\":[\"text.html.markdown markup.inline.raw.markdown punctuation.definition.raw.markdown\"],\"settings\":{\"foreground\":\"#FFF\"}},{\"scope\":[\"markdown.heading\",\"markup.heading | markup.heading entity.name\",\"markup.heading.markdown punctuation.definition.heading.markdown\",\"markup.heading\",\"markup.inserted.git_gutter\"],\"settings\":{\"foreground\":\"#FFC799\"}},{\"scope\":[\"markup.italic\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#FFF\"}},{\"scope\":[\"markup.bold\",\"markup.bold string\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#FFF\"}},{\"scope\":[\"markup.bold markup.italic\",\"markup.italic markup.bold\",\"markup.quote markup.bold\",\"markup.bold markup.italic string\",\"markup.italic markup.bold string\",\"markup.quote markup.bold string\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#FFF\"}},{\"scope\":[\"markup.underline\"],\"settings\":{\"fontStyle\":\"underline\",\"foreground\":\"#FFC799\"}},{\"scope\":[\"markup.quote punctuation.definition.blockquote.markdown\"],\"settings\":{\"foreground\":\"#FFF\"}},{\"scope\":[\"markup.quote\"]},{\"scope\":[\"string.other.link.title.markdown\"],\"settings\":{\"foreground\":\"#FFFF\"}},{\"scope\":[\"string.other.link.description.title.markdown\"],\"settings\":{\"foreground\":\"#A0A0A0\"}},{\"scope\":[\"constant.other.reference.link.markdown\"],\"settings\":{\"foreground\":\"#FFC799\"}},{\"scope\":[\"markup.raw.block\"],\"settings\":{\"foreground\":\"#A0A0A0\"}},{\"scope\":[\"markup.raw.block.fenced.markdown\"],\"settings\":{\"foreground\":\"#00000050\"}},{\"scope\":[\"punctuation.definition.fenced.markdown\"],\"settings\":{\"foreground\":\"#00000050\"}},{\"scope\":[\"markup.raw.block.fenced.markdown\",\"variable.language.fenced.markdown\",\"punctuation.section.class.end\"],\"settings\":{\"foreground\":\"#FFF\"}},{\"scope\":[\"variable.language.fenced.markdown\"],\"settings\":{\"foreground\":\"#FFF\"}},{\"scope\":[\"meta.separator\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#65737E\"}},{\"scope\":[\"markup.table\"],\"settings\":{\"foreground\":\"#FFF\"}}],\"type\":\"dark\"}'));export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BEhvmC7f.js",
    "content": "import e from\"./DWJ3fJO_.js\";import n from\"./COyJrUc7.js\";import t from\"./COK4E0Yg.js\";import\"./C3t2pwGQ.js\";const c=Object.freeze(JSON.parse(`{\"displayName\":\"C++\",\"name\":\"cpp-macro\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#constructor_root\"},{\"include\":\"#destructor_root\"},{\"include\":\"#function_definition\"},{\"include\":\"#operator_overload\"},{\"include\":\"#using_namespace\"},{\"include\":\"source.cpp#type_alias\"},{\"include\":\"source.cpp#using_name\"},{\"include\":\"source.cpp#namespace_alias\"},{\"include\":\"#namespace_block\"},{\"include\":\"#extern_block\"},{\"include\":\"#typedef_class\"},{\"include\":\"#typedef_struct\"},{\"include\":\"#typedef_union\"},{\"include\":\"source.cpp#misc_keywords\"},{\"include\":\"source.cpp#standard_declares\"},{\"include\":\"#class_block\"},{\"include\":\"#struct_block\"},{\"include\":\"#union_block\"},{\"include\":\"#enum_block\"},{\"include\":\"source.cpp#template_isolated_definition\"},{\"include\":\"#template_definition\"},{\"include\":\"source.cpp#template_explicit_instantiation\"},{\"include\":\"source.cpp#access_control_keywords\"},{\"include\":\"#block\"},{\"include\":\"#static_assert\"},{\"include\":\"#assembly\"},{\"include\":\"#function_pointer\"},{\"include\":\"#evaluation_context\"}],\"repository\":{\"alignas_attribute\":{\"begin\":\"alignas\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.attribute.begin.cpp\"}},\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.attribute.end.cpp\"}},\"name\":\"support.other.attribute.cpp\",\"patterns\":[{\"include\":\"#attributes_context\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{},\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#string_context\"},{\"include\":\"#ever_present_context\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.other.using.directive.cpp\"},\"2\":{\"name\":\"entity.name.namespace.cpp\"}},\"match\":\"(using)\\\\\\\\s+((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))\"},{\"match\":\",\",\"name\":\"punctuation.separator.attribute.cpp\"},{\"match\":\":\",\"name\":\"punctuation.accessor.attribute.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)(?=::)\",\"name\":\"entity.name.namespace.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.other.attribute.$0.cpp\"},{\"include\":\"source.cpp#number_literal\"},{\"include\":\"#ever_present_context\"}]},\"alignas_operator\":{\"begin\":\"((?<!\\\\\\\\w)alignas(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.alignas.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp\"}},\"contentName\":\"meta.arguments.operator.alignas\",\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.alignas.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"alignof_operator\":{\"begin\":\"((?<!\\\\\\\\w)alignof(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.alignof.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.alignof.cpp\"}},\"contentName\":\"meta.arguments.operator.alignof\",\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.alignof.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"assembly\":{\"begin\":\"(\\\\\\\\b(?:__asm__|asm)\\\\\\\\b)(?:\\\\\\\\s+)?((?:volatile)?)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.asm.cpp\"},\"2\":{\"name\":\"storage.modifier.cpp\"}},\"end\":\"(?!\\\\\\\\G)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"meta.asm.cpp\",\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"^((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:\\\\\\\\n|$)\"},{\"include\":\"#comments\"},{\"begin\":\"((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.assembly.cpp\"},\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.assembly.cpp\"}},\"patterns\":[{\"begin\":\"(R?)(\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"meta.encoding.cpp\"},\"2\":{\"name\":\"punctuation.definition.string.begin.assembly.cpp\"}},\"contentName\":\"meta.embedded.assembly\",\"end\":\"\\\\\"|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.assembly.cpp\"}},\"name\":\"string.quoted.double.cpp\",\"patterns\":[{\"include\":\"source.asm\"},{\"include\":\"source.x86\"},{\"include\":\"source.x86_64\"},{\"include\":\"source.arm\"},{\"include\":\"source.cpp#backslash_escapes\"},{\"include\":\"#string_escaped_char\"}]},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.assembly.inner.cpp\"}},\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.assembly.inner.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"variable.other.asm.label.cpp\"},\"6\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\[((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\\\\\\\\]\"},{\"match\":\":\",\"name\":\"punctuation.separator.delimiter.colon.assembly.cpp\"},{\"include\":\"#comments\"}]}]},\"attributes_context\":{\"patterns\":[{\"include\":\"#cpp_attributes\"},{\"include\":\"#gcc_attributes\"},{\"include\":\"#ms_attributes\"},{\"include\":\"#alignas_attribute\"}]},\"block\":{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.cpp\"}},\"end\":\"}|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.cpp\"}},\"name\":\"meta.block.cpp\",\"patterns\":[{\"include\":\"#function_body_context\"}]},\"block_comment\":{\"begin\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.begin.cpp\"}},\"end\":\"\\\\\\\\*\\\\\\\\/|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.cpp\"}},\"name\":\"comment.block.cpp\"},\"builtin_storage_type_initilizer\":{\"begin\":\"\\\\\\\\s*+(?<!\\\\\\\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_]\\\\\\\\w*_t))(?!\\\\\\\\w)\\\\\\\\s*+(?<!\\\\\\\\w)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.primitive.cpp storage.type.built-in.primitive.cpp\"},\"2\":{\"name\":\"storage.type.cpp storage.type.built-in.cpp\"},\"3\":{\"name\":\"support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp\"},\"4\":{\"name\":\"support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp\"},\"5\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.initializer.cpp\"}},\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.initializer.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"case_statement\":{\"begin\":\"((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)case(?!\\\\\\\\w))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"keyword.control.case.cpp\"}},\"end\":\":|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.separator.colon.case.cpp\"}},\"name\":\"meta.conditional.case.cpp\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"class_block\":{\"begin\":\"((?<!\\\\\\\\w)class(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?={)|(?:((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?((?:(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*+)?(?:((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(:(?!:)))?)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.class.cpp\"},\"1\":{\"name\":\"storage.type.$1.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"source.cpp#number_literal\"}]},\"7\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.modifier.final.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?<!\\\\\\\\w)final(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.class.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"storage.type.modifier.final.cpp\"},\"7\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:((?<!\\\\\\\\w)final(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?=:|{|$)\"},{\"match\":\"DLLEXPORT\",\"name\":\"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.other.preprocessor.macro.predefined.probably.$0.cpp\"}]},\"12\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"14\":{\"name\":\"comment.block.cpp\"},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"16\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"18\":{\"name\":\"comment.block.cpp\"},\"19\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"20\":{\"name\":\"punctuation.separator.colon.inheritance.cpp\"}},\"end\":\"(?:(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)(?:\\\\\\\\s+)?(;)|(;))|(?=[;>\\\\\\\\[\\\\\\\\]=]))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.cpp\"},\"2\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"name\":\"meta.block.class.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.class.cpp\"}},\"name\":\"meta.head.class.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#inheritance_context\"},{\"include\":\"#template_call_range\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.class.cpp\"}},\"name\":\"meta.body.class.cpp\",\"patterns\":[{\"include\":\"#function_pointer\"},{\"include\":\"#static_assert\"},{\"include\":\"#constructor_inline\"},{\"include\":\"#destructor_inline\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"meta.tail.class.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"comments\":{\"patterns\":[{\"begin\":\"^(?:\\\\\\\\s+)?+(\\\\\\\\/\\\\\\\\/[!\\\\\\\\/]+)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.documentation.cpp\"}},\"end\":\"(?<=\\\\\\\\n)(?<!\\\\\\\\\\\\\\\\\\\\\\\\n)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"comment.line.double-slash.documentation.cpp\",\"patterns\":[{\"include\":\"source.cpp#line_continuation_character\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:callergraph|callgraph|else|endif|f\\\\\\\\$|f\\\\\\\\[|f\\\\\\\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\\\\\\\$|\\\\\\\\#|<|>|%|\\\\\"|\\\\\\\\.|=|::|\\\\\\\\||\\\\\\\\-\\\\\\\\-|\\\\\\\\-\\\\\\\\-\\\\\\\\-)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"name\":\"markup.italic.doxygen.cpp\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:a|em|e))\\\\\\\\s+(\\\\\\\\S+)\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"name\":\"markup.bold.doxygen.cpp\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@]b)\\\\\\\\s+(\\\\\\\\S+)\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"name\":\"markup.inline.raw.string.cpp\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:c|p))\\\\\\\\s+(\\\\\\\\S+)\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"patterns\":[{\"match\":\"in|out\",\"name\":\"keyword.other.parameter.direction.$0.cpp\"}]},\"3\":{\"patterns\":[{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"variable.parameter.cpp\"},{\"match\":\",\",\"name\":\"punctuation.cpp\"}]},\"4\":{\"name\":\"variable.parameter.cpp\"},\"5\":{\"name\":\"punctuation.cpp\"},\"6\":{\"name\":\"variable.parameter.cpp\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@]param)(?:\\\\\\\\s*\\\\\\\\[((?:,?(?:\\\\\\\\s+)?(?:in|out)(?:\\\\\\\\s+)?)+)\\\\\\\\])?(\\\\\\\\s+((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))(?:(,)(?:\\\\\\\\s+)?((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)))*)\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"(?:\\\\\\\\b[A-Z]+:|@[a-z_]+:)\",\"name\":\"storage.type.class.gtkdoc.cpp\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.begin.documentation.cpp\"},\"2\":{\"patterns\":[{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:callergraph|callgraph|else|endif|f\\\\\\\\$|f\\\\\\\\[|f\\\\\\\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\\\\\\\$|\\\\\\\\#|<|>|%|\\\\\"|\\\\\\\\.|=|::|\\\\\\\\||\\\\\\\\-\\\\\\\\-|\\\\\\\\-\\\\\\\\-\\\\\\\\-)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"name\":\"markup.italic.doxygen.cpp\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:a|em|e))\\\\\\\\s+(\\\\\\\\S+)\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"name\":\"markup.bold.doxygen.cpp\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@]b)\\\\\\\\s+(\\\\\\\\S+)\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"name\":\"markup.inline.raw.string.cpp\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:c|p))\\\\\\\\s+(\\\\\\\\S+)\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"patterns\":[{\"match\":\"in|out\",\"name\":\"keyword.other.parameter.direction.$0.cpp\"}]},\"3\":{\"patterns\":[{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"variable.parameter.cpp\"},{\"match\":\",\",\"name\":\"punctuation.cpp\"}]},\"4\":{\"name\":\"variable.parameter.cpp\"},\"5\":{\"name\":\"punctuation.cpp\"},\"6\":{\"name\":\"variable.parameter.cpp\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@]param)(?:\\\\\\\\s*\\\\\\\\[((?:,?(?:\\\\\\\\s+)?(?:in|out)(?:\\\\\\\\s+)?)+)\\\\\\\\])?(\\\\\\\\s+((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))(?:(,)(?:\\\\\\\\s+)?((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)))*)\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"(?:\\\\\\\\b[A-Z]+:|@[a-z_]+:)\",\"name\":\"storage.type.class.gtkdoc.cpp\"}]},\"3\":{\"name\":\"punctuation.definition.comment.end.documentation.cpp\"}},\"match\":\"(\\\\\\\\/\\\\\\\\*[!*]+(?=\\\\\\\\s))(.+)([!*]*\\\\\\\\*\\\\\\\\/)\",\"name\":\"comment.block.documentation.cpp\"},{\"begin\":\"(?:\\\\\\\\s+)?+\\\\\\\\/\\\\\\\\*[!*]+(?:(?:\\\\\\\\n|$)|(?=\\\\\\\\s))\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.documentation.cpp\"}},\"end\":\"[!*]*\\\\\\\\*\\\\\\\\/|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.documentation.cpp\"}},\"name\":\"comment.block.documentation.cpp\",\"patterns\":[{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:callergraph|callgraph|else|endif|f\\\\\\\\$|f\\\\\\\\[|f\\\\\\\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\\\\\\\$|\\\\\\\\#|<|>|%|\\\\\"|\\\\\\\\.|=|::|\\\\\\\\||\\\\\\\\-\\\\\\\\-|\\\\\\\\-\\\\\\\\-\\\\\\\\-)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"name\":\"markup.italic.doxygen.cpp\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:a|em|e))\\\\\\\\s+(\\\\\\\\S+)\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"name\":\"markup.bold.doxygen.cpp\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@]b)\\\\\\\\s+(\\\\\\\\S+)\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"name\":\"markup.inline.raw.string.cpp\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:c|p))\\\\\\\\s+(\\\\\\\\S+)\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"patterns\":[{\"match\":\"in|out\",\"name\":\"keyword.other.parameter.direction.$0.cpp\"}]},\"3\":{\"patterns\":[{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"variable.parameter.cpp\"},{\"match\":\",\",\"name\":\"punctuation.cpp\"}]},\"4\":{\"name\":\"variable.parameter.cpp\"},\"5\":{\"name\":\"punctuation.cpp\"},\"6\":{\"name\":\"variable.parameter.cpp\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@]param)(?:\\\\\\\\s*\\\\\\\\[((?:,?(?:\\\\\\\\s+)?(?:in|out)(?:\\\\\\\\s+)?)+)\\\\\\\\])?(\\\\\\\\s+((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))(?:(,)(?:\\\\\\\\s+)?((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)))*)\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"(?:\\\\\\\\b[A-Z]+:|@[a-z_]+:)\",\"name\":\"storage.type.class.gtkdoc.cpp\"}]},{\"include\":\"source.cpp#emacs_file_banner\"},{\"include\":\"#block_comment\"},{\"include\":\"#line_comment\"},{\"include\":\"source.cpp#invalid_comment_end\"}]},\"constructor_inline\":{\"begin\":\"^((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*)((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)(?=\\\\\\\\())\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.function.definition.special.constructor.cpp\"},\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"patterns\":[{\"include\":\"source.cpp#functional_specifiers_pre_parameters\"}]},\"6\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"name\":\"storage.type.modifier.calling-convention.cpp\"},\"11\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"12\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"13\":{\"name\":\"comment.block.cpp\"},\"14\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"15\":{\"name\":\"entity.name.function.constructor.cpp entity.name.function.definition.special.constructor.cpp\"}},\"end\":\"(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)|(?=[;>\\\\\\\\[\\\\\\\\]=]))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"meta.function.definition.special.constructor.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp\"}},\"name\":\"meta.head.function.definition.special.constructor.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.assignment.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"keyword.other.default.function.cpp keyword.other.default.constructor.cpp\"},\"7\":{\"name\":\"keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp\"}},\"match\":\"(\\\\\\\\=)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(default)|(delete))\"},{\"include\":\"source.cpp#functional_specifiers_pre_parameters\"},{\"begin\":\":\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.initializers.cpp\"}},\"end\":\"(?=\\\\\\\\{)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"patterns\":[{\"begin\":\"((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))(((?<!<)<(?!<)(?:(?:(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/)))|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<3>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.call.initializer.cpp\"},\"2\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range\"}]},\"3\":{},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"5\":{\"name\":\"comment.block.cpp\"},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"7\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp\"}},\"contentName\":\"meta.parameter.initialization\",\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"begin\":\"((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.call.initializer.cpp\"},\"2\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp\"}},\"contentName\":\"meta.parameter.initialization\",\"end\":\"\\\\\\\\}|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.comma.cpp\"},{\"include\":\"#comments\"}]},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.special.constructor.cpp\"}},\"contentName\":\"meta.function.definition.parameters.special.constructor\",\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.end.bracket.round.special.constructor.cpp\"}},\"patterns\":[{\"include\":\"#function_parameter_context\"},{\"include\":\"#evaluation_context\"}]},{\"include\":\"source.cpp#qualifiers_and_specifiers_post_parameters\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp\"}},\"name\":\"meta.body.function.definition.special.constructor.cpp\",\"patterns\":[{\"include\":\"#function_body_context\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"meta.tail.function.definition.special.constructor.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"constructor_root\":{\"begin\":\"\\\\\\\\s*+((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?:::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<8>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*+)(((?>(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))::((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:\\\\\\\\10)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=\\\\\\\\())\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.function.definition.special.constructor.cpp\"},\"1\":{\"name\":\"storage.type.modifier.calling-convention.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.name.scope-resolution.constructor.cpp\"},{\"include\":\"#template_call_range\"}]},\"7\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"8\":{},\"9\":{\"patterns\":[{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?=:)\",\"name\":\"entity.name.type.constructor.cpp\"},{\"match\":\"(?<=:)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.function.definition.special.constructor.cpp\"},{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp\"}]},\"10\":{},\"11\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"12\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"13\":{\"name\":\"comment.block.cpp\"},\"14\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"15\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"16\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"17\":{\"name\":\"comment.block.cpp\"},\"18\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"19\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"20\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"21\":{\"name\":\"comment.block.cpp\"},\"22\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"end\":\"(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)|(?=[;>\\\\\\\\[\\\\\\\\]=]))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"meta.function.definition.special.constructor.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp\"}},\"name\":\"meta.head.function.definition.special.constructor.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.assignment.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"keyword.other.default.function.cpp keyword.other.default.constructor.cpp\"},\"7\":{\"name\":\"keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp\"}},\"match\":\"(\\\\\\\\=)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(default)|(delete))\"},{\"include\":\"source.cpp#functional_specifiers_pre_parameters\"},{\"begin\":\":\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.initializers.cpp\"}},\"end\":\"(?=\\\\\\\\{)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"patterns\":[{\"begin\":\"((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))(((?<!<)<(?!<)(?:(?:(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/)))|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<3>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.call.initializer.cpp\"},\"2\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range\"}]},\"3\":{},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"5\":{\"name\":\"comment.block.cpp\"},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"7\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp\"}},\"contentName\":\"meta.parameter.initialization\",\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"begin\":\"((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.call.initializer.cpp\"},\"2\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp\"}},\"contentName\":\"meta.parameter.initialization\",\"end\":\"\\\\\\\\}|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.comma.cpp\"},{\"include\":\"#comments\"}]},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.special.constructor.cpp\"}},\"contentName\":\"meta.function.definition.parameters.special.constructor\",\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.end.bracket.round.special.constructor.cpp\"}},\"patterns\":[{\"include\":\"#function_parameter_context\"},{\"include\":\"#evaluation_context\"}]},{\"include\":\"source.cpp#qualifiers_and_specifiers_post_parameters\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp\"}},\"name\":\"meta.body.function.definition.special.constructor.cpp\",\"patterns\":[{\"include\":\"#function_body_context\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"meta.tail.function.definition.special.constructor.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"cpp_attributes\":{\"begin\":\"\\\\\\\\[\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.attribute.begin.cpp\"}},\"end\":\"\\\\\\\\]\\\\\\\\]|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.attribute.end.cpp\"}},\"name\":\"support.other.attribute.cpp\",\"patterns\":[{\"include\":\"#attributes_context\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{},\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#string_context\"},{\"include\":\"#ever_present_context\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.other.using.directive.cpp\"},\"2\":{\"name\":\"entity.name.namespace.cpp\"}},\"match\":\"(using)\\\\\\\\s+((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))\"},{\"match\":\",\",\"name\":\"punctuation.separator.attribute.cpp\"},{\"match\":\":\",\"name\":\"punctuation.accessor.attribute.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)(?=::)\",\"name\":\"entity.name.namespace.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.other.attribute.$0.cpp\"},{\"include\":\"source.cpp#number_literal\"},{\"include\":\"#ever_present_context\"}]},\"curly_initializer\":{\"begin\":\"(\\\\\\\\s*+((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:((?:::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<18>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*+)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\\\\\\\\b((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<18>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)?(?![\\\\\\\\w<:.]))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.qualified_type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\\\\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"source.cpp#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"source.cpp#comma\"},{\"include\":\"source.cpp#scope_resolution_inner_generated\"},{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.begin.template.call.cpp\"}},\"end\":\">|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.end.template.call.cpp\"}},\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_context\"}]},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"2\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"source.cpp#number_literal\"}]},\"3\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"5\":{\"name\":\"comment.block.cpp\"},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"7\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range\"}]},\"12\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"13\":{},\"14\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"16\":{\"name\":\"comment.block.cpp\"},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"18\":{},\"19\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"20\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"21\":{\"name\":\"comment.block.cpp\"},\"22\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"23\":{\"name\":\"punctuation.section.arguments.begin.bracket.curly.initializer.cpp\"}},\"end\":\"\\\\\\\\}|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.curly.initializer.cpp\"}},\"name\":\"meta.initialization.cpp\",\"patterns\":[{\"include\":\"#evaluation_context\"},{\"include\":\"source.cpp#comma\"}]},\"decltype\":{\"begin\":\"((?<!\\\\\\\\w)decltype(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.decltype.cpp\"}},\"contentName\":\"meta.arguments.decltype\",\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.decltype.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"decltype_specifier\":{\"begin\":\"((?<!\\\\\\\\w)decltype(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.decltype.cpp\"}},\"contentName\":\"meta.arguments.decltype\",\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.decltype.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"default_statement\":{\"begin\":\"((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)default(?!\\\\\\\\w))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"keyword.control.default.cpp\"}},\"end\":\":|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.separator.colon.case.default.cpp\"}},\"name\":\"meta.conditional.case.cpp\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"destructor_inline\":{\"begin\":\"^((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*)(~(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)(?=\\\\\\\\())\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.function.definition.special.member.destructor.cpp\"},\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"storage.type.modifier.calling-convention.cpp\"},\"6\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"patterns\":[{\"include\":\"source.cpp#functional_specifiers_pre_parameters\"}]},\"11\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"12\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"13\":{\"name\":\"comment.block.cpp\"},\"14\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"15\":{\"name\":\"entity.name.function.destructor.cpp entity.name.function.definition.special.member.destructor.cpp\"}},\"end\":\"(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)|(?=[;>\\\\\\\\[\\\\\\\\]=]))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"meta.function.definition.special.member.destructor.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp\"}},\"name\":\"meta.head.function.definition.special.member.destructor.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.assignment.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"keyword.other.default.function.cpp keyword.other.default.constructor.cpp keyword.other.default.destructor.cpp\"},\"7\":{\"name\":\"keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp keyword.other.delete.destructor.cpp\"}},\"match\":\"(\\\\\\\\=)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(default)|(delete))\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp\"}},\"contentName\":\"meta.function.definition.parameters.special.member.destructor\",\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp\"}},\"patterns\":[]},{\"include\":\"source.cpp#qualifiers_and_specifiers_post_parameters\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp\"}},\"name\":\"meta.body.function.definition.special.member.destructor.cpp\",\"patterns\":[{\"include\":\"#function_body_context\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"meta.tail.function.definition.special.member.destructor.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"destructor_root\":{\"begin\":\"((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?:::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<12>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*+)(((?>(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))::((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))~(?:\\\\\\\\14)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=\\\\\\\\())\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.function.definition.special.member.destructor.cpp\"},\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"storage.type.modifier.calling-convention.cpp\"},\"6\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.name.scope-resolution.destructor.cpp\"},{\"include\":\"#template_call_range\"}]},\"11\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"12\":{},\"13\":{\"patterns\":[{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?=:)\",\"name\":\"entity.name.type.destructor.cpp\"},{\"match\":\"(?<=:)~(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.function.definition.special.member.destructor.cpp\"},{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp\"}]},\"14\":{},\"15\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"16\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"17\":{\"name\":\"comment.block.cpp\"},\"18\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"19\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"20\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"21\":{\"name\":\"comment.block.cpp\"},\"22\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"23\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"24\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"25\":{\"name\":\"comment.block.cpp\"},\"26\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"end\":\"(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)|(?=[;>\\\\\\\\[\\\\\\\\]=]))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"meta.function.definition.special.member.destructor.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp\"}},\"name\":\"meta.head.function.definition.special.member.destructor.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.assignment.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"keyword.other.default.function.cpp keyword.other.default.constructor.cpp keyword.other.default.destructor.cpp\"},\"7\":{\"name\":\"keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp keyword.other.delete.destructor.cpp\"}},\"match\":\"(\\\\\\\\=)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(default)|(delete))\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp\"}},\"contentName\":\"meta.function.definition.parameters.special.member.destructor\",\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp\"}},\"patterns\":[]},{\"include\":\"source.cpp#qualifiers_and_specifiers_post_parameters\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp\"}},\"name\":\"meta.body.function.definition.special.member.destructor.cpp\",\"patterns\":[{\"include\":\"#function_body_context\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"meta.tail.function.definition.special.member.destructor.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"diagnostic\":{\"begin\":\"(^((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(#)(?:\\\\\\\\s+)?((?:error|warning)))\\\\\\\\b(?:\\\\\\\\s+)?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.diagnostic.$7.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.definition.directive.cpp\"},\"7\":{}},\"end\":\"(?<!\\\\\\\\\\\\\\\\)(?:(?=\\\\\\\\n)|(?<=^\\\\\\\\n|[^\\\\\\\\\\\\\\\\]\\\\\\\\n)(?=$))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"meta.preprocessor.diagnostic.$reference(directive).cpp\",\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cpp\"}},\"end\":\"(?:(\\\\\")|(?<!\\\\\\\\\\\\\\\\)(?:(?=\\\\\\\\n)|(?<=^\\\\\\\\n|[^\\\\\\\\\\\\\\\\]\\\\\\\\n)(?=$)))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.cpp\"}},\"name\":\"string.quoted.double.cpp\",\"patterns\":[{\"include\":\"source.cpp#line_continuation_character\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cpp\"}},\"end\":\"(?:(')|(?<!\\\\\\\\\\\\\\\\)(?:(?=\\\\\\\\n)|(?<=^\\\\\\\\n|[^\\\\\\\\\\\\\\\\]\\\\\\\\n)(?=$)))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.cpp\"}},\"name\":\"string.quoted.single.cpp\",\"patterns\":[{\"include\":\"source.cpp#line_continuation_character\"}]},{\"begin\":\"[^'\\\\\"]\",\"beginCaptures\":{},\"end\":\"(?<!\\\\\\\\\\\\\\\\)(?:(?=\\\\\\\\n)|(?<=^\\\\\\\\n|[^\\\\\\\\\\\\\\\\]\\\\\\\\n)(?=$))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"string.unquoted.cpp\",\"patterns\":[{\"include\":\"source.cpp#line_continuation_character\"},{\"include\":\"#comments\"}]}]},\"enum_block\":{\"begin\":\"((?<!\\\\\\\\w)enum(?!\\\\\\\\w))(?:\\\\\\\\s+(class|struct))?(?:(?:\\\\\\\\s+|((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\))))|(?={))(?:\\\\\\\\s+)?((?:(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))?)(?:(?:\\\\\\\\s+)?(:)(?:\\\\\\\\s+)?(?:((::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<12>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*\\\\\\\\s*+)((?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/)))|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<12>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?(::))?(?:\\\\\\\\s+)?((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)))?\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.enum.cpp\"},\"1\":{\"name\":\"storage.type.enum.cpp\"},\"2\":{\"name\":\"storage.type.enum.enum-key.$2.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"source.cpp#number_literal\"}]},\"4\":{\"name\":\"entity.name.type.enum.cpp\"},\"5\":{\"name\":\"punctuation.separator.colon.type-specifier.cpp\"},\"6\":{\"patterns\":[{\"include\":\"source.cpp#scope_resolution_inner_generated\"}]},\"7\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},\"8\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"9\":{},\"10\":{\"name\":\"entity.name.scope-resolution.cpp\"},\"11\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range\"}]},\"12\":{},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"14\":{\"name\":\"comment.block.cpp\"},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"16\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},\"17\":{\"name\":\"storage.type.integral.$17.cpp\"}},\"end\":\"(?:(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)(?:\\\\\\\\s+)?(;)|(;))|(?=[;>\\\\\\\\[\\\\\\\\]=]))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.cpp\"},\"2\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"name\":\"meta.block.enum.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.enum.cpp\"}},\"name\":\"meta.head.enum.cpp\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.enum.cpp\"}},\"name\":\"meta.body.enum.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"source.cpp#enumerator_list\"},{\"include\":\"#comments\"},{\"include\":\"source.cpp#comma\"},{\"include\":\"source.cpp#semicolon\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"meta.tail.enum.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"evaluation_context\":{\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#string_context\"},{\"include\":\"source.cpp#number_literal\"},{\"include\":\"#method_access\"},{\"include\":\"source.cpp#member_access\"},{\"include\":\"source.cpp#predefined_macros\"},{\"include\":\"#operators\"},{\"include\":\"source.cpp#memory_operators\"},{\"include\":\"source.cpp#wordlike_operators\"},{\"include\":\"source.cpp#type_casting_operators\"},{\"include\":\"source.cpp#control_flow_keywords\"},{\"include\":\"source.cpp#exception_keywords\"},{\"include\":\"source.cpp#the_this_keyword\"},{\"include\":\"source.cpp#language_constants\"},{\"include\":\"#builtin_storage_type_initilizer\"},{\"include\":\"source.cpp#qualifiers_and_specifiers_post_parameters\"},{\"include\":\"source.cpp#functional_specifiers_pre_parameters\"},{\"include\":\"#storage_types\"},{\"include\":\"#lambdas\"},{\"include\":\"#attributes_context\"},{\"include\":\"#parentheses\"},{\"include\":\"#function_call\"},{\"include\":\"source.cpp#scope_resolution_inner_generated\"},{\"include\":\"#square_brackets\"},{\"include\":\"source.cpp#semicolon\"},{\"include\":\"source.cpp#comma\"}]},\"ever_present_context\":{\"patterns\":[{\"include\":\"source.cpp#pragma_mark\"},{\"include\":\"#pragma\"},{\"include\":\"source.cpp#include\"},{\"include\":\"#line\"},{\"include\":\"#diagnostic\"},{\"include\":\"source.cpp#undef\"},{\"include\":\"#preprocessor_conditional_range\"},{\"include\":\"source.cpp#single_line_macro\"},{\"include\":\"#macro\"},{\"include\":\"source.cpp#preprocessor_conditional_standalone\"},{\"include\":\"source.cpp#macro_argument\"},{\"include\":\"#comments\"},{\"include\":\"source.cpp#line_continuation_character\"}]},\"extern_block\":{\"begin\":\"((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(extern)(?=\\\\\\\\s*\\\\\\\\\\\\\")\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.extern.cpp\"},\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"storage.type.extern.cpp\"}},\"end\":\"(?:(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)(?:\\\\\\\\s+)?(;)|(;))|(?=[;>\\\\\\\\[\\\\\\\\]=]))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.cpp\"},\"2\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"name\":\"meta.block.extern.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.extern.cpp\"}},\"name\":\"meta.head.extern.cpp\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.extern.cpp\"}},\"name\":\"meta.body.extern.cpp\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"meta.tail.extern.cpp\",\"patterns\":[{\"include\":\"$self\"}]},{\"include\":\"$self\"}]},\"function_body_context\":{\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#using_namespace\"},{\"include\":\"source.cpp#type_alias\"},{\"include\":\"source.cpp#using_name\"},{\"include\":\"source.cpp#namespace_alias\"},{\"include\":\"#typedef_class\"},{\"include\":\"#typedef_struct\"},{\"include\":\"#typedef_union\"},{\"include\":\"source.cpp#misc_keywords\"},{\"include\":\"source.cpp#standard_declares\"},{\"include\":\"#class_block\"},{\"include\":\"#struct_block\"},{\"include\":\"#union_block\"},{\"include\":\"#enum_block\"},{\"include\":\"source.cpp#access_control_keywords\"},{\"include\":\"#block\"},{\"include\":\"#static_assert\"},{\"include\":\"#assembly\"},{\"include\":\"#function_pointer\"},{\"include\":\"#switch_statement\"},{\"include\":\"source.cpp#goto_statement\"},{\"include\":\"#evaluation_context\"},{\"include\":\"source.cpp#label\"}]},\"function_call\":{\"begin\":\"((::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<11>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*\\\\\\\\s*+)((?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)\\\\\\\\b(?<!\\\\\\\\Wreinterpret_cast|^reinterpret_cast|\\\\\\\\Watomic_noexcept|^atomic_noexcept|\\\\\\\\Wuint_least16_t|^uint_least16_t|\\\\\\\\Wuint_least32_t|^uint_least32_t|\\\\\\\\Wuint_least64_t|^uint_least64_t|\\\\\\\\Watomic_cancel|^atomic_cancel|\\\\\\\\Watomic_commit|^atomic_commit|\\\\\\\\Wuint_least8_t|^uint_least8_t|\\\\\\\\Wuint_fast16_t|^uint_fast16_t|\\\\\\\\Wuint_fast32_t|^uint_fast32_t|\\\\\\\\Wint_least16_t|^int_least16_t|\\\\\\\\Wint_least32_t|^int_least32_t|\\\\\\\\Wint_least64_t|^int_least64_t|\\\\\\\\Wuint_fast64_t|^uint_fast64_t|\\\\\\\\Wthread_local|^thread_local|\\\\\\\\Wint_fast16_t|^int_fast16_t|\\\\\\\\Wint_fast32_t|^int_fast32_t|\\\\\\\\Wint_fast64_t|^int_fast64_t|\\\\\\\\Wsynchronized|^synchronized|\\\\\\\\Wuint_fast8_t|^uint_fast8_t|\\\\\\\\Wdynamic_cast|^dynamic_cast|\\\\\\\\Wint_least8_t|^int_least8_t|\\\\\\\\Wint_fast8_t|^int_fast8_t|\\\\\\\\Wstatic_cast|^static_cast|\\\\\\\\Wsuseconds_t|^suseconds_t|\\\\\\\\Wconst_cast|^const_cast|\\\\\\\\Wuseconds_t|^useconds_t|\\\\\\\\Wconstinit|^constinit|\\\\\\\\Wco_return|^co_return|\\\\\\\\Wuintmax_t|^uintmax_t|\\\\\\\\Wuintmax_t|^uintmax_t|\\\\\\\\Wuintmax_t|^uintmax_t|\\\\\\\\Wconstexpr|^constexpr|\\\\\\\\Wconsteval|^consteval|\\\\\\\\Wconstexpr|^constexpr|\\\\\\\\Wconstexpr|^constexpr|\\\\\\\\Wconsteval|^consteval|\\\\\\\\Wprotected|^protected|\\\\\\\\Wnamespace|^namespace|\\\\\\\\Wblksize_t|^blksize_t|\\\\\\\\Wco_return|^co_return|\\\\\\\\Win_addr_t|^in_addr_t|\\\\\\\\Win_port_t|^in_port_t|\\\\\\\\Wuintptr_t|^uintptr_t|\\\\\\\\Wtemplate|^template|\\\\\\\\Wnoexcept|^noexcept|\\\\\\\\Wnoexcept|^noexcept|\\\\\\\\Wcontinue|^continue|\\\\\\\\Wco_await|^co_await|\\\\\\\\Wco_yield|^co_yield|\\\\\\\\Wunsigned|^unsigned|\\\\\\\\Wu_quad_t|^u_quad_t|\\\\\\\\Wblkcnt_t|^blkcnt_t|\\\\\\\\Wuint16_t|^uint16_t|\\\\\\\\Wuint32_t|^uint32_t|\\\\\\\\Wuint64_t|^uint64_t|\\\\\\\\Wintptr_t|^intptr_t|\\\\\\\\Wintmax_t|^intmax_t|\\\\\\\\Wintmax_t|^intmax_t|\\\\\\\\Wvolatile|^volatile|\\\\\\\\Wregister|^register|\\\\\\\\Wrestrict|^restrict|\\\\\\\\Wexplicit|^explicit|\\\\\\\\Wvolatile|^volatile|\\\\\\\\Wnoexcept|^noexcept|\\\\\\\\Woperator|^operator|\\\\\\\\Wdecltype|^decltype|\\\\\\\\Wtypename|^typename|\\\\\\\\Wrequires|^requires|\\\\\\\\Wco_await|^co_await|\\\\\\\\Wco_yield|^co_yield|\\\\\\\\Wreflexpr|^reflexpr|\\\\\\\\Wswblk_t|^swblk_t|\\\\\\\\Wvirtual|^virtual|\\\\\\\\Wssize_t|^ssize_t|\\\\\\\\Wconcept|^concept|\\\\\\\\Wmutable|^mutable|\\\\\\\\Wfixpt_t|^fixpt_t|\\\\\\\\Wint16_t|^int16_t|\\\\\\\\Wint32_t|^int32_t|\\\\\\\\Wint64_t|^int64_t|\\\\\\\\Wuint8_t|^uint8_t|\\\\\\\\Wtypedef|^typedef|\\\\\\\\Wdaddr_t|^daddr_t|\\\\\\\\Wcaddr_t|^caddr_t|\\\\\\\\Wqaddr_t|^qaddr_t|\\\\\\\\Wdefault|^default|\\\\\\\\Wnlink_t|^nlink_t|\\\\\\\\Wsegsz_t|^segsz_t|\\\\\\\\Wu_short|^u_short|\\\\\\\\Wwchar_t|^wchar_t|\\\\\\\\Wprivate|^private|\\\\\\\\W__asm__|^__asm__|\\\\\\\\Walignas|^alignas|\\\\\\\\Walignof|^alignof|\\\\\\\\Wmutable|^mutable|\\\\\\\\Wnullptr|^nullptr|\\\\\\\\Wclock_t|^clock_t|\\\\\\\\Wmode_t|^mode_t|\\\\\\\\Wpublic|^public|\\\\\\\\Wsize_t|^size_t|\\\\\\\\Wdouble|^double|\\\\\\\\Wquad_t|^quad_t|\\\\\\\\Wstatic|^static|\\\\\\\\Wtime_t|^time_t|\\\\\\\\Wmodule|^module|\\\\\\\\Wimport|^import|\\\\\\\\Wexport|^export|\\\\\\\\Wextern|^extern|\\\\\\\\Winline|^inline|\\\\\\\\Wxor_eq|^xor_eq|\\\\\\\\Wand_eq|^and_eq|\\\\\\\\Wreturn|^return|\\\\\\\\Wfriend|^friend|\\\\\\\\Wnot_eq|^not_eq|\\\\\\\\Wsigned|^signed|\\\\\\\\Wstruct|^struct|\\\\\\\\Wint8_t|^int8_t|\\\\\\\\Wushort|^ushort|\\\\\\\\Wswitch|^switch|\\\\\\\\Wu_long|^u_long|\\\\\\\\Wtypeid|^typeid|\\\\\\\\Wu_char|^u_char|\\\\\\\\Wsizeof|^sizeof|\\\\\\\\Wbitand|^bitand|\\\\\\\\Wdelete|^delete|\\\\\\\\Wino_t|^ino_t|\\\\\\\\Wkey_t|^key_t|\\\\\\\\Wpid_t|^pid_t|\\\\\\\\Woff_t|^off_t|\\\\\\\\Wuid_t|^uid_t|\\\\\\\\Wshort|^short|\\\\\\\\Wbreak|^break|\\\\\\\\Wcatch|^catch|\\\\\\\\Wcompl|^compl|\\\\\\\\Wwhile|^while|\\\\\\\\Wfalse|^false|\\\\\\\\Wclass|^class|\\\\\\\\Wunion|^union|\\\\\\\\Wconst|^const|\\\\\\\\Wor_eq|^or_eq|\\\\\\\\Wconst|^const|\\\\\\\\Wthrow|^throw|\\\\\\\\Wbitor|^bitor|\\\\\\\\Wu_int|^u_int|\\\\\\\\Wusing|^using|\\\\\\\\Wdiv_t|^div_t|\\\\\\\\Wdev_t|^dev_t|\\\\\\\\Wgid_t|^gid_t|\\\\\\\\Wfloat|^float|\\\\\\\\Wlong|^long|\\\\\\\\Wgoto|^goto|\\\\\\\\Wuint|^uint|\\\\\\\\Wid_t|^id_t|\\\\\\\\Wcase|^case|\\\\\\\\Wauto|^auto|\\\\\\\\Wvoid|^void|\\\\\\\\Wenum|^enum|\\\\\\\\Wtrue|^true|\\\\\\\\Wchar|^char|\\\\\\\\Wid_t|^id_t|\\\\\\\\WNULL|^NULL|\\\\\\\\Wthis|^this|\\\\\\\\Wbool|^bool|\\\\\\\\Welse|^else|\\\\\\\\Wfor|^for|\\\\\\\\Wnew|^new|\\\\\\\\Wnot|^not|\\\\\\\\Wxor|^xor|\\\\\\\\Wand|^and|\\\\\\\\Wasm|^asm|\\\\\\\\Wint|^int|\\\\\\\\Wtry|^try|\\\\\\\\Wdo|^do|\\\\\\\\Wif|^if|\\\\\\\\Wor|^or)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(((?<!<)<(?!<)(?:(?:(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/)))|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<11>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"source.cpp#scope_resolution_function_call_inner_generated\"}]},\"2\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"4\":{},\"5\":{\"name\":\"entity.name.function.call.cpp\"},\"6\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range\"}]},\"11\":{},\"12\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"13\":{\"name\":\"comment.block.cpp\"},\"14\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"15\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.function.call.cpp\"}},\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.function.call.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"function_definition\":{\"begin\":\"(?:(?:^|\\\\\\\\G|(?<=;|\\\\\\\\}))|(?<=>|\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+(?:((?<!\\\\\\\\w)template(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))?((?:((?<!\\\\\\\\w)(?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))|(?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*)(\\\\\\\\s*+((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:((?:::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<52>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*+)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\\\\\\\\b((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<52>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)?(?![\\\\\\\\w<:.]))(((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<52>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*\\\\\\\\s*+)((?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)\\\\\\\\b(?<!\\\\\\\\Wreinterpret_cast|^reinterpret_cast|\\\\\\\\Watomic_noexcept|^atomic_noexcept|\\\\\\\\Wuint_least16_t|^uint_least16_t|\\\\\\\\Wuint_least32_t|^uint_least32_t|\\\\\\\\Wuint_least64_t|^uint_least64_t|\\\\\\\\Watomic_cancel|^atomic_cancel|\\\\\\\\Watomic_commit|^atomic_commit|\\\\\\\\Wuint_least8_t|^uint_least8_t|\\\\\\\\Wuint_fast16_t|^uint_fast16_t|\\\\\\\\Wuint_fast32_t|^uint_fast32_t|\\\\\\\\Wint_least16_t|^int_least16_t|\\\\\\\\Wint_least32_t|^int_least32_t|\\\\\\\\Wint_least64_t|^int_least64_t|\\\\\\\\Wuint_fast64_t|^uint_fast64_t|\\\\\\\\Wthread_local|^thread_local|\\\\\\\\Wint_fast16_t|^int_fast16_t|\\\\\\\\Wint_fast32_t|^int_fast32_t|\\\\\\\\Wint_fast64_t|^int_fast64_t|\\\\\\\\Wsynchronized|^synchronized|\\\\\\\\Wuint_fast8_t|^uint_fast8_t|\\\\\\\\Wdynamic_cast|^dynamic_cast|\\\\\\\\Wint_least8_t|^int_least8_t|\\\\\\\\Wint_fast8_t|^int_fast8_t|\\\\\\\\Wstatic_cast|^static_cast|\\\\\\\\Wsuseconds_t|^suseconds_t|\\\\\\\\Wconst_cast|^const_cast|\\\\\\\\Wuseconds_t|^useconds_t|\\\\\\\\Wconstinit|^constinit|\\\\\\\\Wco_return|^co_return|\\\\\\\\Wuintmax_t|^uintmax_t|\\\\\\\\Wuintmax_t|^uintmax_t|\\\\\\\\Wuintmax_t|^uintmax_t|\\\\\\\\Wconstexpr|^constexpr|\\\\\\\\Wconsteval|^consteval|\\\\\\\\Wconstexpr|^constexpr|\\\\\\\\Wconstexpr|^constexpr|\\\\\\\\Wconsteval|^consteval|\\\\\\\\Wprotected|^protected|\\\\\\\\Wnamespace|^namespace|\\\\\\\\Wblksize_t|^blksize_t|\\\\\\\\Wco_return|^co_return|\\\\\\\\Win_addr_t|^in_addr_t|\\\\\\\\Win_port_t|^in_port_t|\\\\\\\\Wuintptr_t|^uintptr_t|\\\\\\\\Wtemplate|^template|\\\\\\\\Wnoexcept|^noexcept|\\\\\\\\Wnoexcept|^noexcept|\\\\\\\\Wcontinue|^continue|\\\\\\\\Wco_await|^co_await|\\\\\\\\Wco_yield|^co_yield|\\\\\\\\Wunsigned|^unsigned|\\\\\\\\Wu_quad_t|^u_quad_t|\\\\\\\\Wblkcnt_t|^blkcnt_t|\\\\\\\\Wuint16_t|^uint16_t|\\\\\\\\Wuint32_t|^uint32_t|\\\\\\\\Wuint64_t|^uint64_t|\\\\\\\\Wintptr_t|^intptr_t|\\\\\\\\Wintmax_t|^intmax_t|\\\\\\\\Wintmax_t|^intmax_t|\\\\\\\\Wvolatile|^volatile|\\\\\\\\Wregister|^register|\\\\\\\\Wrestrict|^restrict|\\\\\\\\Wexplicit|^explicit|\\\\\\\\Wvolatile|^volatile|\\\\\\\\Wnoexcept|^noexcept|\\\\\\\\Woperator|^operator|\\\\\\\\Wdecltype|^decltype|\\\\\\\\Wtypename|^typename|\\\\\\\\Wrequires|^requires|\\\\\\\\Wco_await|^co_await|\\\\\\\\Wco_yield|^co_yield|\\\\\\\\Wreflexpr|^reflexpr|\\\\\\\\Wswblk_t|^swblk_t|\\\\\\\\Wvirtual|^virtual|\\\\\\\\Wssize_t|^ssize_t|\\\\\\\\Wconcept|^concept|\\\\\\\\Wmutable|^mutable|\\\\\\\\Wfixpt_t|^fixpt_t|\\\\\\\\Wint16_t|^int16_t|\\\\\\\\Wint32_t|^int32_t|\\\\\\\\Wint64_t|^int64_t|\\\\\\\\Wuint8_t|^uint8_t|\\\\\\\\Wtypedef|^typedef|\\\\\\\\Wdaddr_t|^daddr_t|\\\\\\\\Wcaddr_t|^caddr_t|\\\\\\\\Wqaddr_t|^qaddr_t|\\\\\\\\Wdefault|^default|\\\\\\\\Wnlink_t|^nlink_t|\\\\\\\\Wsegsz_t|^segsz_t|\\\\\\\\Wu_short|^u_short|\\\\\\\\Wwchar_t|^wchar_t|\\\\\\\\Wprivate|^private|\\\\\\\\W__asm__|^__asm__|\\\\\\\\Walignas|^alignas|\\\\\\\\Walignof|^alignof|\\\\\\\\Wmutable|^mutable|\\\\\\\\Wnullptr|^nullptr|\\\\\\\\Wclock_t|^clock_t|\\\\\\\\Wmode_t|^mode_t|\\\\\\\\Wpublic|^public|\\\\\\\\Wsize_t|^size_t|\\\\\\\\Wdouble|^double|\\\\\\\\Wquad_t|^quad_t|\\\\\\\\Wstatic|^static|\\\\\\\\Wtime_t|^time_t|\\\\\\\\Wmodule|^module|\\\\\\\\Wimport|^import|\\\\\\\\Wexport|^export|\\\\\\\\Wextern|^extern|\\\\\\\\Winline|^inline|\\\\\\\\Wxor_eq|^xor_eq|\\\\\\\\Wand_eq|^and_eq|\\\\\\\\Wreturn|^return|\\\\\\\\Wfriend|^friend|\\\\\\\\Wnot_eq|^not_eq|\\\\\\\\Wsigned|^signed|\\\\\\\\Wstruct|^struct|\\\\\\\\Wint8_t|^int8_t|\\\\\\\\Wushort|^ushort|\\\\\\\\Wswitch|^switch|\\\\\\\\Wu_long|^u_long|\\\\\\\\Wtypeid|^typeid|\\\\\\\\Wu_char|^u_char|\\\\\\\\Wsizeof|^sizeof|\\\\\\\\Wbitand|^bitand|\\\\\\\\Wdelete|^delete|\\\\\\\\Wino_t|^ino_t|\\\\\\\\Wkey_t|^key_t|\\\\\\\\Wpid_t|^pid_t|\\\\\\\\Woff_t|^off_t|\\\\\\\\Wuid_t|^uid_t|\\\\\\\\Wshort|^short|\\\\\\\\Wbreak|^break|\\\\\\\\Wcatch|^catch|\\\\\\\\Wcompl|^compl|\\\\\\\\Wwhile|^while|\\\\\\\\Wfalse|^false|\\\\\\\\Wclass|^class|\\\\\\\\Wunion|^union|\\\\\\\\Wconst|^const|\\\\\\\\Wor_eq|^or_eq|\\\\\\\\Wconst|^const|\\\\\\\\Wthrow|^throw|\\\\\\\\Wbitor|^bitor|\\\\\\\\Wu_int|^u_int|\\\\\\\\Wusing|^using|\\\\\\\\Wdiv_t|^div_t|\\\\\\\\Wdev_t|^dev_t|\\\\\\\\Wgid_t|^gid_t|\\\\\\\\Wfloat|^float|\\\\\\\\Wlong|^long|\\\\\\\\Wgoto|^goto|\\\\\\\\Wuint|^uint|\\\\\\\\Wid_t|^id_t|\\\\\\\\Wcase|^case|\\\\\\\\Wauto|^auto|\\\\\\\\Wvoid|^void|\\\\\\\\Wenum|^enum|\\\\\\\\Wtrue|^true|\\\\\\\\Wchar|^char|\\\\\\\\Wid_t|^id_t|\\\\\\\\WNULL|^NULL|\\\\\\\\Wthis|^this|\\\\\\\\Wbool|^bool|\\\\\\\\Welse|^else|\\\\\\\\Wfor|^for|\\\\\\\\Wnew|^new|\\\\\\\\Wnot|^not|\\\\\\\\Wxor|^xor|\\\\\\\\Wand|^and|\\\\\\\\Wasm|^asm|\\\\\\\\Wint|^int|\\\\\\\\Wtry|^try|\\\\\\\\Wdo|^do|\\\\\\\\Wif|^if|\\\\\\\\Wor|^or)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=\\\\\\\\()\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.function.definition.cpp\"},\"1\":{\"name\":\"storage.type.template.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"source.cpp#number_literal\"}]},\"7\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.modifier.$1.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?<!\\\\\\\\w)(?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))|(?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\"}]},\"8\":{\"name\":\"storage.modifier.$8.cpp\"},\"9\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"11\":{\"name\":\"comment.block.cpp\"},\"12\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"13\":{\"name\":\"meta.qualified_type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\\\\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"source.cpp#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"source.cpp#comma\"},{\"include\":\"source.cpp#scope_resolution_inner_generated\"},{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.begin.template.call.cpp\"}},\"end\":\">|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.end.template.call.cpp\"}},\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_context\"}]},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"14\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"source.cpp#number_literal\"}]},\"15\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"16\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"17\":{\"name\":\"comment.block.cpp\"},\"18\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"19\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"20\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"21\":{\"name\":\"comment.block.cpp\"},\"22\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"23\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range\"}]},\"24\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"25\":{},\"26\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"27\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"28\":{\"name\":\"comment.block.cpp\"},\"29\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"30\":{},\"31\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"32\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"33\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"34\":{\"name\":\"comment.block.cpp\"},\"35\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"36\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"37\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"38\":{\"name\":\"comment.block.cpp\"},\"39\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"40\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"41\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"42\":{\"name\":\"comment.block.cpp\"},\"43\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"44\":{\"name\":\"storage.type.modifier.calling-convention.cpp\"},\"45\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"46\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"47\":{\"name\":\"comment.block.cpp\"},\"48\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"49\":{\"patterns\":[{\"include\":\"source.cpp#scope_resolution_function_definition_inner_generated\"}]},\"50\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp\"},\"51\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"52\":{},\"53\":{\"name\":\"entity.name.function.definition.cpp\"},\"54\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"55\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"56\":{\"name\":\"comment.block.cpp\"},\"57\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"end\":\"(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)|(?=[;>\\\\\\\\[\\\\\\\\]=]))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"meta.function.definition.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.function.definition.cpp\"}},\"name\":\"meta.head.function.definition.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.cpp\"}},\"contentName\":\"meta.function.definition.parameters\",\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.end.bracket.round.cpp\"}},\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#parameter_or_maybe_value\"},{\"include\":\"source.cpp#comma\"},{\"include\":\"#evaluation_context\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.function.return-type.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"meta.qualified_type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\\\\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"source.cpp#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"source.cpp#comma\"},{\"include\":\"source.cpp#scope_resolution_inner_generated\"},{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.begin.template.call.cpp\"}},\"end\":\">|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.end.template.call.cpp\"}},\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_context\"}]},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"7\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"source.cpp#number_literal\"}]},\"8\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"10\":{\"name\":\"comment.block.cpp\"},\"11\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"12\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"14\":{\"name\":\"comment.block.cpp\"},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"16\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range\"}]},\"17\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"18\":{},\"19\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"20\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"21\":{\"name\":\"comment.block.cpp\"},\"22\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"23\":{}},\"match\":\"(?<=^|\\\\\\\\))(?:\\\\\\\\s+)?(->)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\s*+((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:((?:::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<23>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*+)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\\\\\\\\b((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<23>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)?(?![\\\\\\\\w<:.]))\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.function.definition.cpp\"}},\"name\":\"meta.body.function.definition.cpp\",\"patterns\":[{\"include\":\"#function_body_context\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"meta.tail.function.definition.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"function_parameter_context\":{\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#parameter\"},{\"include\":\"source.cpp#comma\"}]},\"function_pointer\":{\"begin\":\"(\\\\\\\\s*+((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:((?:::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<18>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*+)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\\\\\\\\b((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<18>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)?(?![\\\\\\\\w<:.]))(((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()(\\\\\\\\*)(?:\\\\\\\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)?)(?:\\\\\\\\s+)?(?:(\\\\\\\\[)(\\\\\\\\w*)(\\\\\\\\])(?:\\\\\\\\s+)?)*(\\\\\\\\))(?:\\\\\\\\s+)?(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"meta.qualified_type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\\\\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"source.cpp#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"source.cpp#comma\"},{\"include\":\"source.cpp#scope_resolution_inner_generated\"},{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.begin.template.call.cpp\"}},\"end\":\">|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.end.template.call.cpp\"}},\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_context\"}]},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"2\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"source.cpp#number_literal\"}]},\"3\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"5\":{\"name\":\"comment.block.cpp\"},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"7\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range\"}]},\"12\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"13\":{},\"14\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"16\":{\"name\":\"comment.block.cpp\"},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"18\":{},\"19\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"20\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"21\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"22\":{\"name\":\"comment.block.cpp\"},\"23\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"24\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"25\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"26\":{\"name\":\"comment.block.cpp\"},\"27\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"28\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"29\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"30\":{\"name\":\"comment.block.cpp\"},\"31\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"32\":{\"name\":\"punctuation.section.parens.begin.bracket.round.function.pointer.cpp\"},\"33\":{\"name\":\"punctuation.definition.function.pointer.dereference.cpp\"},\"34\":{\"name\":\"variable.other.definition.pointer.function.cpp\"},\"35\":{\"name\":\"punctuation.definition.begin.bracket.square.cpp\"},\"36\":{\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"37\":{\"name\":\"punctuation.definition.end.bracket.square.cpp\"},\"38\":{\"name\":\"punctuation.section.parens.end.bracket.round.function.pointer.cpp\"},\"39\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.function.pointer.cpp\"}},\"end\":\"(\\\\\\\\))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=[{=,);>]|\\\\\\\\n)(?!\\\\\\\\()|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.parameters.end.bracket.round.function.pointer.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"patterns\":[{\"include\":\"#function_parameter_context\"}]},\"function_pointer_parameter\":{\"begin\":\"(\\\\\\\\s*+((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:((?:::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<18>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*+)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\\\\\\\\b((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<18>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)?(?![\\\\\\\\w<:.]))(((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()(\\\\\\\\*)(?:\\\\\\\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)?)(?:\\\\\\\\s+)?(?:(\\\\\\\\[)(\\\\\\\\w*)(\\\\\\\\])(?:\\\\\\\\s+)?)*(\\\\\\\\))(?:\\\\\\\\s+)?(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"meta.qualified_type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\\\\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"source.cpp#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"source.cpp#comma\"},{\"include\":\"source.cpp#scope_resolution_inner_generated\"},{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.begin.template.call.cpp\"}},\"end\":\">|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.end.template.call.cpp\"}},\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_context\"}]},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"2\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"source.cpp#number_literal\"}]},\"3\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"5\":{\"name\":\"comment.block.cpp\"},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"7\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range\"}]},\"12\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"13\":{},\"14\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"16\":{\"name\":\"comment.block.cpp\"},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"18\":{},\"19\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"20\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"21\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"22\":{\"name\":\"comment.block.cpp\"},\"23\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"24\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"25\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"26\":{\"name\":\"comment.block.cpp\"},\"27\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"28\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"29\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"30\":{\"name\":\"comment.block.cpp\"},\"31\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"32\":{\"name\":\"punctuation.section.parens.begin.bracket.round.function.pointer.cpp\"},\"33\":{\"name\":\"punctuation.definition.function.pointer.dereference.cpp\"},\"34\":{\"name\":\"variable.parameter.pointer.function.cpp\"},\"35\":{\"name\":\"punctuation.definition.begin.bracket.square.cpp\"},\"36\":{\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"37\":{\"name\":\"punctuation.definition.end.bracket.square.cpp\"},\"38\":{\"name\":\"punctuation.section.parens.end.bracket.round.function.pointer.cpp\"},\"39\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.function.pointer.cpp\"}},\"end\":\"(\\\\\\\\))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=[{=,);>]|\\\\\\\\n)(?!\\\\\\\\()|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.parameters.end.bracket.round.function.pointer.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"patterns\":[{\"include\":\"#function_parameter_context\"}]},\"gcc_attributes\":{\"begin\":\"__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.attribute.begin.cpp\"}},\"end\":\"\\\\\\\\)\\\\\\\\s*\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.attribute.end.cpp\"}},\"name\":\"support.other.attribute.cpp\",\"patterns\":[{\"include\":\"#attributes_context\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{},\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#string_context\"},{\"include\":\"#ever_present_context\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.other.using.directive.cpp\"},\"2\":{\"name\":\"entity.name.namespace.cpp\"}},\"match\":\"(using)\\\\\\\\s+((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))\"},{\"match\":\",\",\"name\":\"punctuation.separator.attribute.cpp\"},{\"match\":\":\",\"name\":\"punctuation.accessor.attribute.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)(?=::)\",\"name\":\"entity.name.namespace.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.other.attribute.$0.cpp\"},{\"include\":\"source.cpp#number_literal\"},{\"include\":\"#ever_present_context\"}]},\"inheritance_context\":{\"patterns\":[{\"include\":\"#ever_present_context\"},{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.comma.inheritance.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:(?:protected)|(?:private)|(?:public))(?!\\\\\\\\w)\",\"name\":\"storage.type.modifier.access.$0.cpp\"},{\"match\":\"(?<!\\\\\\\\w)virtual(?!\\\\\\\\w)\",\"name\":\"storage.type.modifier.virtual.cpp\"},{\"captures\":{\"1\":{\"name\":\"meta.qualified_type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\\\\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"source.cpp#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"source.cpp#comma\"},{\"include\":\"source.cpp#scope_resolution_inner_generated\"},{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.begin.template.call.cpp\"}},\"end\":\">|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.end.template.call.cpp\"}},\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_context\"}]},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"2\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"source.cpp#number_literal\"}]},\"3\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"4\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"5\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"6\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"7\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range\"}]},\"8\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"9\":{},\"10\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"12\":{}},\"match\":\"(?<=protected|virtual|private|public|,|:)(?:\\\\\\\\s+)?(?!(?:(?:(?:protected)|(?:private)|(?:public))|virtual))(\\\\\\\\s*+((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))?((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:((?:::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<12>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*+)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\\\\\\\\b((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<12>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)?(?![\\\\\\\\w<:.]))\"}]},\"lambdas\":{\"begin\":\"(?:(?<=[^\\\\\\\\s]|^)(?<![\\\\\\\\w\\\\\\\\]\\\\\\\\)\\\\\\\\[\\\\\\\\*&\\\\\">])|(?<=\\\\\\\\Wreturn|^return))(?:\\\\\\\\s+)?(\\\\\\\\[(?!\\\\\\\\[| *+\\\\\"| *+\\\\\\\\d))((?:[^\\\\\\\\[\\\\\\\\]]|((?<!\\\\\\\\[)\\\\\\\\[(?!\\\\\\\\[)(?:[^\\\\\\\\[\\\\\\\\]]*+\\\\\\\\g<3>?)++\\\\\\\\]))*+)(\\\\\\\\](?!((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))[\\\\\\\\[\\\\\\\\];=]))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.capture.begin.lambda.cpp\"},\"2\":{\"name\":\"meta.lambda.capture.cpp\",\"patterns\":[{\"include\":\"source.cpp#the_this_keyword\"},{\"captures\":{\"1\":{\"name\":\"variable.parameter.capture.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.separator.delimiter.comma.cpp\"},\"7\":{\"name\":\"keyword.operator.assignment.cpp\"}},\"match\":\"((?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?:(?=\\\\\\\\]|\\\\\\\\z|$)|(,))|(\\\\\\\\=))\"},{\"include\":\"#evaluation_context\"}]},\"3\":{},\"4\":{\"name\":\"punctuation.definition.capture.end.lambda.cpp\"},\"5\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"7\":{\"name\":\"comment.block.cpp\"},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"end\":\"(?<=[;}])|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.begin.lambda.cpp\"}},\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.lambda.cpp\"}},\"name\":\"meta.function.definition.parameters.lambda.cpp\",\"patterns\":[{\"include\":\"#function_parameter_context\"}]},{\"match\":\"(?<!\\\\\\\\w)(?:(?:constexpr)|(?:consteval)|(?:mutable))(?!\\\\\\\\w)\",\"name\":\"storage.modifier.lambda.$0.cpp\"},{\"begin\":\"->\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.lambda.return-type.cpp\"}},\"end\":\"(?=\\\\\\\\{)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"patterns\":[{\"include\":\"#comments\"},{\"match\":\"\\\\\\\\S+\",\"name\":\"storage.type.return-type.lambda.cpp\"}]},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.lambda.cpp\"}},\"end\":\"\\\\\\\\}|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.lambda.cpp\"}},\"name\":\"meta.function.definition.body.lambda.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"line\":{\"begin\":\"^((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(#)(?:\\\\\\\\s+)?line\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.directive.line.cpp\"},\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"punctuation.definition.directive.cpp\"}},\"end\":\"(?<!\\\\\\\\\\\\\\\\)(?:(?=\\\\\\\\n)|(?<=^\\\\\\\\n|[^\\\\\\\\\\\\\\\\]\\\\\\\\n)(?=$))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"meta.preprocessor.line.cpp\",\"patterns\":[{\"include\":\"#string_context\"},{\"include\":\"#preprocessor_number_literal\"},{\"include\":\"source.cpp#line_continuation_character\"}]},\"line_comment\":{\"begin\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\/)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.cpp\"}},\"end\":\"(?<!\\\\\\\\\\\\\\\\)(?:(?=\\\\\\\\n)|(?<=^\\\\\\\\n|[^\\\\\\\\\\\\\\\\]\\\\\\\\n)(?=$))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"comment.line.double-slash.cpp\",\"patterns\":[{\"include\":\"source.cpp#line_continuation_character\"}]},\"macro\":{\"begin\":\"(^((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(#)(?:\\\\\\\\s+)?define\\\\\\\\b)(?:\\\\\\\\s+)?((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.define.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.definition.directive.cpp\"},\"7\":{\"name\":\"entity.name.function.preprocessor.cpp\"}},\"end\":\"(?<!\\\\\\\\\\\\\\\\)(?:(?=\\\\\\\\n)|(?<=^\\\\\\\\n|[^\\\\\\\\\\\\\\\\]\\\\\\\\n)(?=$))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"meta.preprocessor.macro.cpp\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.parameters.begin.preprocessor.cpp\"},\"2\":{\"name\":\"meta.function.preprocessor.parameters.cpp\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.parameter.preprocessor.cpp\"}},\"match\":\"(?<=[(,])(?:\\\\\\\\s+)?((?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)(?:\\\\\\\\s+)?\"},{\"match\":\",\",\"name\":\"punctuation.separator.parameters.cpp\"},{\"match\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"name\":\"punctuation.vararg-ellipses.variable.parameter.preprocessor.cpp\"}]},\"3\":{\"name\":\"punctuation.definition.parameters.end.preprocessor.cpp\"}},\"match\":\"\\\\\\\\G(?:\\\\\\\\s+)?(\\\\\\\\()([^\\\\\\\\(]*)(\\\\\\\\))\"},{\"include\":\"#macro_context\"},{\"include\":\"source.cpp#macro_argument\"}]},\"macro_context\":{\"patterns\":[{\"include\":\"source.cpp.embedded.macro\"}]},\"method_access\":{\"begin\":\"(?:((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)this(?!\\\\\\\\w))|((?:(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*|(?<=\\\\\\\\]|\\\\\\\\)))(?:\\\\\\\\s+)?))(?:((?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.))|((?:->\\\\\\\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?:\\\\\\\\s+)?(?:(?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.)|(?:->\\\\\\\\*|->))(?:\\\\\\\\s+)?)*)(?:\\\\\\\\s+)?(~?(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)(?:\\\\\\\\s+)?(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"variable.language.this.cpp\"},\"6\":{\"name\":\"variable.other.object.access.cpp\"},\"7\":{\"name\":\"punctuation.separator.dot-access.cpp\"},\"8\":{\"name\":\"punctuation.separator.pointer-access.cpp\"},\"9\":{\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"variable.language.this.cpp\"},\"6\":{\"name\":\"variable.other.object.property.cpp\"},\"7\":{\"name\":\"punctuation.separator.dot-access.cpp\"},\"8\":{\"name\":\"punctuation.separator.pointer-access.cpp\"}},\"match\":\"(?<=(?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.|->|->\\\\\\\\*))(?:\\\\\\\\s+)?(?:((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)this(?!\\\\\\\\w))|((?:(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*|(?<=\\\\\\\\]|\\\\\\\\)))(?:\\\\\\\\s+)?))(?:((?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.))|((?:->\\\\\\\\*|->)))\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"variable.language.this.cpp\"},\"6\":{\"name\":\"variable.other.object.access.cpp\"},\"7\":{\"name\":\"punctuation.separator.dot-access.cpp\"},\"8\":{\"name\":\"punctuation.separator.pointer-access.cpp\"}},\"match\":\"(?:((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)this(?!\\\\\\\\w))|((?:(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*|(?<=\\\\\\\\]|\\\\\\\\)))(?:\\\\\\\\s+)?))(?:((?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.))|((?:->\\\\\\\\*|->)))\"},{\"include\":\"source.cpp#member_access\"},{\"include\":\"#method_access\"}]},\"10\":{\"name\":\"entity.name.function.member.cpp\"},\"11\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.function.member.cpp\"}},\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.function.member.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"ms_attributes\":{\"begin\":\"__declspec\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.attribute.begin.cpp\"}},\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.attribute.end.cpp\"}},\"name\":\"support.other.attribute.cpp\",\"patterns\":[{\"include\":\"#attributes_context\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{},\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#string_context\"},{\"include\":\"#ever_present_context\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.other.using.directive.cpp\"},\"2\":{\"name\":\"entity.name.namespace.cpp\"}},\"match\":\"(using)\\\\\\\\s+((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))\"},{\"match\":\",\",\"name\":\"punctuation.separator.attribute.cpp\"},{\"match\":\":\",\"name\":\"punctuation.accessor.attribute.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)(?=::)\",\"name\":\"entity.name.namespace.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.other.attribute.$0.cpp\"},{\"include\":\"source.cpp#number_literal\"},{\"include\":\"#ever_present_context\"}]},\"namespace_block\":{\"begin\":\"((?<!\\\\\\\\w)namespace(?!\\\\\\\\w))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.namespace.cpp\"},\"1\":{\"name\":\"keyword.other.namespace.definition.cpp storage.type.namespace.definition.cpp\"}},\"end\":\"(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)|(?=[;>\\\\\\\\[\\\\\\\\]=]))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"meta.block.namespace.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.namespace.cpp\"}},\"name\":\"meta.head.namespace.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#attributes_context\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"source.cpp#scope_resolution_namespace_block_inner_generated\"}]},\"2\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"4\":{},\"5\":{\"name\":\"entity.name.namespace.cpp\"},\"6\":{\"name\":\"punctuation.separator.scope-resolution.namespace.block.cpp\"},\"7\":{\"name\":\"storage.modifier.inline.cpp\"}},\"match\":\"((::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<4>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*\\\\\\\\s*+)(?:\\\\\\\\s+)?((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))(?:\\\\\\\\s+)?(?:(::)(?:\\\\\\\\s+)?(inline))?\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.namespace.cpp\"}},\"name\":\"meta.body.namespace.cpp\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"meta.tail.namespace.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"noexcept_operator\":{\"begin\":\"((?<!\\\\\\\\w)noexcept(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp\"}},\"contentName\":\"meta.arguments.operator.noexcept\",\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"operator_overload\":{\"begin\":\"((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(\\\\\\\\s*+((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:((?:::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<55>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*+)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\\\\\\\\b((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<55>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)?(?![\\\\\\\\w<:.]))(((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?:::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<55>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*+)(operator)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?:::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<55>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*+)(?:(?:((?:(?:delete\\\\\\\\[\\\\\\\\])|(?:delete)|(?:new\\\\\\\\[\\\\\\\\])|(?:<=>)|(?:<<=)|(?:new)|(?:>>=)|(?:\\\\\\\\->\\\\\\\\*)|(?:\\\\\\\\/=)|(?:%=)|(?:&=)|(?:>=)|(?:\\\\\\\\|=)|(?:\\\\\\\\+\\\\\\\\+)|(?:\\\\\\\\-\\\\\\\\-)|(?:\\\\\\\\(\\\\\\\\))|(?:\\\\\\\\[\\\\\\\\])|(?:\\\\\\\\->)|(?:\\\\\\\\+\\\\\\\\+)|(?:<<)|(?:>>)|(?:\\\\\\\\-\\\\\\\\-)|(?:<=)|(?:\\\\\\\\^=)|(?:==)|(?:!=)|(?:&&)|(?:\\\\\\\\|\\\\\\\\|)|(?:\\\\\\\\+=)|(?:\\\\\\\\-=)|(?:\\\\\\\\*=)|,|\\\\\\\\+|\\\\\\\\-|!|~|\\\\\\\\*|&|\\\\\\\\*|\\\\\\\\/|%|\\\\\\\\+|\\\\\\\\-|<|>|&|\\\\\\\\^|\\\\\\\\||=))|((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)(((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?:\\\\\\\\[\\\\\\\\])?)))|(\\\\\"\\\\\")((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=\\\\\\\\<|\\\\\\\\()\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.function.definition.special.operator-overload.cpp\"},\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"meta.qualified_type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\\\\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"source.cpp#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"source.cpp#comma\"},{\"include\":\"source.cpp#scope_resolution_inner_generated\"},{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.begin.template.call.cpp\"}},\"end\":\">|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.end.template.call.cpp\"}},\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_context\"}]},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"6\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"source.cpp#number_literal\"}]},\"7\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"12\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"13\":{\"name\":\"comment.block.cpp\"},\"14\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"15\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range\"}]},\"16\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"17\":{},\"18\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"19\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"20\":{\"name\":\"comment.block.cpp\"},\"21\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"22\":{},\"23\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"24\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"25\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"26\":{\"name\":\"comment.block.cpp\"},\"27\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"28\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"29\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"30\":{\"name\":\"comment.block.cpp\"},\"31\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"32\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"33\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"34\":{\"name\":\"comment.block.cpp\"},\"35\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"36\":{\"name\":\"storage.type.modifier.calling-convention.cpp\"},\"37\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"38\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"39\":{\"name\":\"comment.block.cpp\"},\"40\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"41\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"42\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"43\":{\"name\":\"comment.block.cpp\"},\"44\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"45\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.operator.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.name.scope-resolution.operator.cpp\"},{\"include\":\"#template_call_range\"}]},\"46\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"47\":{},\"48\":{\"name\":\"keyword.other.operator.overload.cpp\"},\"49\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"50\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"51\":{\"name\":\"comment.block.cpp\"},\"52\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"53\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.operator-overload.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.name.scope-resolution.operator-overload.cpp\"},{\"include\":\"#template_call_range\"}]},\"54\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"55\":{},\"56\":{\"name\":\"entity.name.operator.cpp\"},\"57\":{\"name\":\"entity.name.operator.type.cpp\"},\"58\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"entity.name.operator.type.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"entity.name.operator.type.reference.cpp\"}]},\"59\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"60\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"61\":{\"name\":\"comment.block.cpp\"},\"62\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"63\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"64\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"65\":{\"name\":\"comment.block.cpp\"},\"66\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"67\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"68\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"69\":{\"name\":\"comment.block.cpp\"},\"70\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"71\":{\"name\":\"entity.name.operator.type.array.cpp\"},\"72\":{\"name\":\"entity.name.operator.custom-literal.cpp\"},\"73\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"74\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"75\":{\"name\":\"comment.block.cpp\"},\"76\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"77\":{\"name\":\"entity.name.operator.custom-literal.cpp\"},\"78\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"79\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"80\":{\"name\":\"comment.block.cpp\"},\"81\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"end\":\"(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)|(?=[;>\\\\\\\\[\\\\\\\\]=]))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"meta.function.definition.special.operator-overload.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload.cpp\"}},\"name\":\"meta.head.function.definition.special.operator-overload.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#template_call_range\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.special.operator-overload.cpp\"}},\"contentName\":\"meta.function.definition.parameters.special.operator-overload\",\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.end.bracket.round.special.operator-overload.cpp\"}},\"patterns\":[{\"include\":\"#function_parameter_context\"},{\"include\":\"#evaluation_context\"}]},{\"include\":\"source.cpp#qualifiers_and_specifiers_post_parameters\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.assignment.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"keyword.other.default.function.cpp\"},\"7\":{\"name\":\"keyword.other.delete.function.cpp\"}},\"match\":\"(\\\\\\\\=)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(default)|(delete))\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload.cpp\"}},\"name\":\"meta.body.function.definition.special.operator-overload.cpp\",\"patterns\":[{\"include\":\"#function_body_context\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"meta.tail.function.definition.special.operator-overload.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"operators\":{\"patterns\":[{\"begin\":\"((?<!\\\\\\\\w)sizeof(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp\"}},\"contentName\":\"meta.arguments.operator.sizeof\",\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"begin\":\"((?<!\\\\\\\\w)alignof(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.alignof.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.alignof.cpp\"}},\"contentName\":\"meta.arguments.operator.alignof\",\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.alignof.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"begin\":\"((?<!\\\\\\\\w)alignas(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.alignas.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp\"}},\"contentName\":\"meta.arguments.operator.alignas\",\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.alignas.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"begin\":\"((?<!\\\\\\\\w)typeid(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.typeid.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp\"}},\"contentName\":\"meta.arguments.operator.typeid\",\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.typeid.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"begin\":\"((?<!\\\\\\\\w)noexcept(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp\"}},\"contentName\":\"meta.arguments.operator.noexcept\",\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"begin\":\"(\\\\\\\\bsizeof\\\\\\\\.\\\\\\\\.\\\\\\\\.)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.sizeof.variadic.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cpp\"}},\"contentName\":\"meta.arguments.operator.sizeof.variadic\",\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"match\":\"--\",\"name\":\"keyword.operator.decrement.cpp\"},{\"match\":\"\\\\\\\\+\\\\\\\\+\",\"name\":\"keyword.operator.increment.cpp\"},{\"match\":\"%=|\\\\\\\\+=|-=|\\\\\\\\*=|(?<!\\\\\\\\()\\\\\\\\/=\",\"name\":\"keyword.operator.assignment.compound.cpp\"},{\"match\":\"&=|\\\\\\\\^=|<<=|>>=|\\\\\\\\|=\",\"name\":\"keyword.operator.assignment.compound.bitwise.cpp\"},{\"match\":\"<<|>>\",\"name\":\"keyword.operator.bitwise.shift.cpp\"},{\"match\":\"!=|<=|>=|==|<|>\",\"name\":\"keyword.operator.comparison.cpp\"},{\"match\":\"&&|!|\\\\\\\\|\\\\\\\\|\",\"name\":\"keyword.operator.logical.cpp\"},{\"match\":\"&|\\\\\\\\||\\\\\\\\^|~\",\"name\":\"keyword.operator.bitwise.cpp\"},{\"include\":\"source.cpp#assignment_operator\"},{\"match\":\"%|\\\\\\\\*|\\\\\\\\/|-|\\\\\\\\+\",\"name\":\"keyword.operator.arithmetic.cpp\"},{\"include\":\"#ternary_operator\"}]},\"parameter\":{\"begin\":\"((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=\\\\\\\\w)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"end\":\"(?:(?=\\\\\\\\))|(,))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.delimiter.comma.cpp\"}},\"name\":\"meta.parameter.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#string_context\"},{\"include\":\"#function_pointer_parameter\"},{\"include\":\"#decltype\"},{\"include\":\"source.cpp#vararg_ellipses\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#storage_types\"}]},\"2\":{\"name\":\"storage.modifier.specifier.parameter.cpp\"},\"3\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"5\":{\"name\":\"comment.block.cpp\"},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"7\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"name\":\"storage.type.primitive.cpp storage.type.built-in.primitive.cpp\"},\"12\":{\"name\":\"storage.type.cpp storage.type.built-in.cpp\"},\"13\":{\"name\":\"support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp\"},\"14\":{\"name\":\"support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp\"},\"15\":{\"name\":\"entity.name.type.parameter.cpp\"},\"16\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"18\":{\"name\":\"comment.block.cpp\"},\"19\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?:((?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))+)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:\\\\\\\\s*+(?<!\\\\\\\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_]\\\\\\\\w*_t))(?!\\\\\\\\w)|((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\b\\\\\\\\b(?<!\\\\\\\\Wthread_local|^thread_local|\\\\\\\\Wvolatile|^volatile|\\\\\\\\Wregister|^register|\\\\\\\\Wrestrict|^restrict|\\\\\\\\Wstatic|^static|\\\\\\\\Wextern|^extern|\\\\\\\\Wconst|^const)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=,|\\\\\\\\)|=)\"},{\"include\":\"#storage_types\"},{\"include\":\"source.cpp#scope_resolution_parameter_inner_generated\"},{\"match\":\"(?:(?:struct)|(?:class)|(?:union)|(?:enum))\",\"name\":\"storage.type.$0.cpp\"},{\"begin\":\"(?<==)\",\"beginCaptures\":{},\"end\":\"(?:(?=\\\\\\\\))|(,))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.delimiter.comma.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"match\":\"\\\\\\\\=\",\"name\":\"keyword.operator.assignment.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"variable.parameter.cpp\"},\"6\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?<!\\\\\\\\s|\\\\\\\\(|,|:)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=\\\\\\\\)|,|\\\\\\\\[|=|\\\\\\\\n)\"},{\"include\":\"#attributes_context\"},{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.begin.bracket.square.array.type.cpp\"}},\"end\":\"\\\\\\\\]|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.square.array.type.cpp\"}},\"name\":\"meta.bracket.square.array.cpp\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\\\\\\\\b(?<!\\\\\\\\Wstruct|^struct|\\\\\\\\Wclass|^class|\\\\\\\\Wunion|^union|\\\\\\\\Wenum|^enum)\",\"name\":\"entity.name.type.parameter.cpp\"},{\"include\":\"#template_call_range\"},{\"captures\":{\"0\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"7\":{\"name\":\"comment.block.cpp\"},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*)\"},{\"include\":\"#ever_present_context\"}]},\"parameter_or_maybe_value\":{\"begin\":\"((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=\\\\\\\\w)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"end\":\"(?:(?=\\\\\\\\))|(,))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.delimiter.comma.cpp\"}},\"name\":\"meta.parameter.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#function_pointer_parameter\"},{\"include\":\"source.cpp#memory_operators\"},{\"include\":\"#builtin_storage_type_initilizer\"},{\"include\":\"#curly_initializer\"},{\"include\":\"#decltype\"},{\"include\":\"source.cpp#vararg_ellipses\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#storage_types\"}]},\"2\":{\"name\":\"storage.modifier.specifier.parameter.cpp\"},\"3\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"5\":{\"name\":\"comment.block.cpp\"},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"7\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"name\":\"storage.type.primitive.cpp storage.type.built-in.primitive.cpp\"},\"12\":{\"name\":\"storage.type.cpp storage.type.built-in.cpp\"},\"13\":{\"name\":\"support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp\"},\"14\":{\"name\":\"support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp\"},\"15\":{\"name\":\"entity.name.type.parameter.cpp\"},\"16\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"18\":{\"name\":\"comment.block.cpp\"},\"19\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?:((?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))+)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:\\\\\\\\s*+(?<!\\\\\\\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_]\\\\\\\\w*_t))(?!\\\\\\\\w)|((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\b\\\\\\\\b(?<!\\\\\\\\Wthread_local|^thread_local|\\\\\\\\Wvolatile|^volatile|\\\\\\\\Wregister|^register|\\\\\\\\Wrestrict|^restrict|\\\\\\\\Wstatic|^static|\\\\\\\\Wextern|^extern|\\\\\\\\Wconst|^const)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=,|\\\\\\\\)|=)\"},{\"include\":\"#storage_types\"},{\"include\":\"#function_call\"},{\"include\":\"source.cpp#scope_resolution_parameter_inner_generated\"},{\"match\":\"(?:(?:struct)|(?:class)|(?:union)|(?:enum))\",\"name\":\"storage.type.$0.cpp\"},{\"begin\":\"(?<==)\",\"beginCaptures\":{},\"end\":\"(?:(?=\\\\\\\\))|(,))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.delimiter.comma.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"variable.parameter.cpp\"},\"6\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?<!\\\\\\\\s|\\\\\\\\(|,|:)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=(?:\\\\\\\\)|,|\\\\\\\\[|=|\\\\\\\\/\\\\\\\\/|(?:\\\\\\\\n|$)))\"},{\"include\":\"#attributes_context\"},{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.begin.bracket.square.array.type.cpp\"}},\"end\":\"\\\\\\\\]|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.square.array.type.cpp\"}},\"name\":\"meta.bracket.square.array.cpp\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\\\\\\\\b(?<!\\\\\\\\Wstruct|^struct|\\\\\\\\Wclass|^class|\\\\\\\\Wunion|^union|\\\\\\\\Wenum|^enum)\",\"name\":\"entity.name.type.parameter.cpp\"},{\"include\":\"#template_call_range\"},{\"captures\":{\"0\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"7\":{\"name\":\"comment.block.cpp\"},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*)\"},{\"include\":\"#evaluation_context\"},{\"include\":\"#ever_present_context\"}]},\"parentheses\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.cpp\"}},\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.cpp\"}},\"name\":\"meta.parens.cpp\",\"patterns\":[{\"include\":\"source.cpp#over_qualified_types\"},{\"match\":\"(?<!:):(?!:)\",\"name\":\"punctuation.separator.colon.range-based.cpp\"},{\"include\":\"#evaluation_context\"}]},\"pragma\":{\"begin\":\"^((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(#)(?:\\\\\\\\s+)?pragma\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.directive.pragma.cpp\"},\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"punctuation.definition.directive.cpp\"}},\"end\":\"(?<!\\\\\\\\\\\\\\\\)(?:(?=\\\\\\\\n)|(?<=^\\\\\\\\n|[^\\\\\\\\\\\\\\\\]\\\\\\\\n)(?=$))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"meta.preprocessor.pragma.cpp\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#string_context\"},{\"match\":\"[a-zA-Z_$][\\\\\\\\w\\\\\\\\-$]*\",\"name\":\"entity.other.attribute-name.pragma.preprocessor.cpp\"},{\"include\":\"#preprocessor_number_literal\"},{\"include\":\"source.cpp#line_continuation_character\"}]},\"preprocessor_conditional_context\":{\"patterns\":[{\"include\":\"#preprocessor_conditional_defined\"},{\"include\":\"#comments\"},{\"include\":\"source.cpp#language_constants\"},{\"include\":\"#string_context\"},{\"include\":\"source.cpp#d9bc4796b0b_preprocessor_number_literal\"},{\"include\":\"#operators\"},{\"include\":\"source.cpp#predefined_macros\"},{\"include\":\"source.cpp#macro_name\"},{\"include\":\"source.cpp#line_continuation_character\"}]},\"preprocessor_conditional_defined\":{\"begin\":\"((?<!\\\\\\\\w)defined(?!\\\\\\\\w))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.conditional.defined.cpp\"},\"2\":{\"name\":\"punctuation.section.parens.control.defined.cpp\"}},\"end\":\"(?:\\\\\\\\)|(?<!\\\\\\\\\\\\\\\\)(?:(?=\\\\\\\\n)|(?<=^\\\\\\\\n|[^\\\\\\\\\\\\\\\\]\\\\\\\\n)(?=$)))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.control.defined.cpp\"}},\"patterns\":[{\"include\":\"source.cpp#macro_name\"}]},\"preprocessor_conditional_parentheses\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.cpp\"}},\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.cpp\"}},\"name\":\"meta.parens.preprocessor.conditional.cpp\"},\"preprocessor_conditional_range\":{\"begin\":\"^((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(#)(?:\\\\\\\\s+)?((?:(?:ifndef|ifdef)|if))\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.directive.conditional.$6.cpp\"},\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"punctuation.definition.directive.cpp\"},\"6\":{}},\"contentName\":\"meta.preprocessor.conditional\",\"end\":\"(?<!\\\\\\\\\\\\\\\\)(?:(?=\\\\\\\\n)|(?<=^\\\\\\\\n|[^\\\\\\\\\\\\\\\\]\\\\\\\\n)(?=$))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"patterns\":[{\"include\":\"#preprocessor_conditional_context\"}]},\"preprocessor_context\":{\"patterns\":[{\"include\":\"source.cpp#pragma_mark\"},{\"include\":\"#pragma\"},{\"include\":\"source.cpp#include\"},{\"include\":\"#line\"},{\"include\":\"#diagnostic\"},{\"include\":\"source.cpp#undef\"},{\"include\":\"#preprocessor_conditional_range\"},{\"include\":\"source.cpp#single_line_macro\"},{\"include\":\"#macro\"},{\"include\":\"source.cpp#preprocessor_conditional_standalone\"},{\"include\":\"source.cpp#macro_argument\"}]},\"sizeof_operator\":{\"begin\":\"((?<!\\\\\\\\w)sizeof(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp\"}},\"contentName\":\"meta.arguments.operator.sizeof\",\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"sizeof_variadic_operator\":{\"begin\":\"(\\\\\\\\bsizeof\\\\\\\\.\\\\\\\\.\\\\\\\\.)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.sizeof.variadic.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cpp\"}},\"contentName\":\"meta.arguments.operator.sizeof.variadic\",\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"square_brackets\":{\"begin\":\"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\\\\\\\]\\\\\\\\)]))?(\\\\\\\\[)(?!\\\\\\\\])\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.object\"},\"2\":{\"name\":\"punctuation.definition.begin.bracket.square\"}},\"end\":\"\\\\\\\\]|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.square\"}},\"name\":\"meta.bracket.square.access\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"static_assert\":{\"begin\":\"((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)static_assert|_Static_assert(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"keyword.other.static_assert.cpp\"},\"6\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.static_assert.cpp\"}},\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.static_assert.cpp\"}},\"patterns\":[{\"begin\":\"(,)(?:\\\\\\\\s+)?(?=(?:L|u8|u|U(?:\\\\\\\\s+)?\\\\\\\\\\\\\")?)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.delimiter.comma.cpp\"}},\"end\":\"(?=\\\\\\\\))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"meta.static_assert.message.cpp\",\"patterns\":[{\"include\":\"#string_context\"}]},{\"include\":\"#evaluation_context\"}]},\"storage_types\":{\"patterns\":[{\"include\":\"source.cpp#storage_specifiers\"},{\"include\":\"source.cpp#inline_builtin_storage_type\"},{\"include\":\"#decltype\"},{\"include\":\"source.cpp#typename\"}]},\"string_context\":{\"patterns\":[{\"begin\":\"((?:u|u8|U|L)?)\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cpp\"},\"1\":{\"name\":\"meta.encoding.cpp\"}},\"end\":\"(\\\\\")(?:((?:[a-zA-Z]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)|(_(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*))?|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.cpp\"},\"2\":{\"name\":\"keyword.other.suffix.literal.user-defined.reserved.string.cpp\"},\"3\":{\"name\":\"keyword.other.suffix.literal.user-defined.string.cpp\"}},\"name\":\"string.quoted.double.cpp\",\"patterns\":[{\"match\":\"(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8})\",\"name\":\"constant.character.escape.cpp\"},{\"match\":\"\\\\\\\\\\\\\\\\['\\\\\"?\\\\\\\\\\\\\\\\abfnrtv]\",\"name\":\"constant.character.escape.cpp\"},{\"match\":\"\\\\\\\\\\\\\\\\[0-7]{1,3}\",\"name\":\"constant.character.escape.cpp\"},{\"captures\":{\"1\":{\"name\":\"constant.character.escape.cpp\"},\"2\":{\"name\":\"invalid.illegal.unknown-escape.cpp\"}},\"match\":\"(?:(\\\\\\\\\\\\\\\\x0*[0-9a-fA-F]{2}(?![0-9a-fA-F]))|((?:\\\\\\\\\\\\\\\\x[0-9a-fA-F]*|\\\\\\\\\\\\\\\\x)))\"},{\"include\":\"source.cpp#string_escapes_context_c\"}]},{\"begin\":\"(?<![0-9A-Fa-f])((?:u|u8|U|L)?)'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cpp\"},\"1\":{\"name\":\"meta.encoding.cpp\"}},\"end\":\"(')(?:((?:[a-zA-Z]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)|(_(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*))?|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.cpp\"},\"2\":{\"name\":\"keyword.other.suffix.literal.user-defined.reserved.character.cpp\"},\"3\":{\"name\":\"keyword.other.suffix.literal.user-defined.character.cpp\"}},\"name\":\"string.quoted.single.cpp\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.character.escape.cpp\"},\"2\":{\"name\":\"invalid.illegal.unknown-escape.cpp\"}},\"match\":\"(?:(\\\\\\\\\\\\\\\\x0*[0-9a-fA-F]{2}(?![0-9a-fA-F]))|((?:\\\\\\\\\\\\\\\\x[0-9a-fA-F]*|\\\\\\\\\\\\\\\\x)))\"},{\"include\":\"source.cpp#string_escapes_context_c\"},{\"include\":\"source.cpp#line_continuation_character\"}]},{\"begin\":\"((?:[uUL]8?)?R)\\\\\\\\\\\\\"(?:(?:_r|re)|regex)\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cpp\"},\"1\":{\"name\":\"meta.encoding.cpp\"}},\"end\":\"\\\\\\\\)(?:(?:_r|re)|regex)\\\\\\\\\\\\\"|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cpp\"}},\"name\":\"string.quoted.double.raw.regex.cpp\",\"patterns\":[{\"include\":\"source.regexp.python\"}]},{\"begin\":\"((?:[uUL]8?)?R)\\\\\\\\\\\\\"(?:glsl|GLSL)\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cpp\"},\"1\":{\"name\":\"meta.encoding.cpp\"}},\"end\":\"\\\\\\\\)(?:glsl|GLSL)\\\\\\\\\\\\\"|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cpp\"}},\"name\":\"meta.string.quoted.double.raw.glsl.cpp\",\"patterns\":[{\"include\":\"source.glsl\"}]},{\"begin\":\"((?:[uUL]8?)?R)\\\\\\\\\\\\\"(?:[pP]?(?:sql|SQL)|d[dm]l)\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cpp\"},\"1\":{\"name\":\"meta.encoding.cpp\"}},\"end\":\"\\\\\\\\)(?:[pP]?(?:sql|SQL)|d[dm]l)\\\\\\\\\\\\\"|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cpp\"}},\"name\":\"meta.string.quoted.double.raw.sql.cpp\",\"patterns\":[{\"include\":\"source.sql\"}]},{\"begin\":\"((?:u|u8|U|L)?R)\\\\\"(?:([^ ()\\\\\\\\\\\\\\\\\\\\\\\\t]{0,16})|([^ ()\\\\\\\\\\\\\\\\\\\\\\\\t]*))\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin\"},\"1\":{\"name\":\"meta.encoding\"},\"3\":{\"name\":\"invalid.illegal.delimiter-too-long\"}},\"end\":\"(\\\\\\\\)\\\\\\\\2(\\\\\\\\3)\\\\\")(?:((?:[a-zA-Z]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)|(_(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*))?|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end\"},\"2\":{\"name\":\"invalid.illegal.delimiter-too-long\"},\"3\":{\"name\":\"keyword.other.suffix.literal.user-defined.reserved.string.cpp\"},\"4\":{\"name\":\"keyword.other.suffix.literal.user-defined.string.cpp\"}},\"name\":\"string.quoted.double.raw\"}]},\"struct_block\":{\"begin\":\"((?<!\\\\\\\\w)struct(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?={)|(?:((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?((?:(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*+)?(?:((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(:(?!:)))?)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.struct.cpp\"},\"1\":{\"name\":\"storage.type.$1.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"source.cpp#number_literal\"}]},\"7\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.modifier.final.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?<!\\\\\\\\w)final(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.struct.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"storage.type.modifier.final.cpp\"},\"7\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:((?<!\\\\\\\\w)final(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?=:|{|$)\"},{\"match\":\"DLLEXPORT\",\"name\":\"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.other.preprocessor.macro.predefined.probably.$0.cpp\"}]},\"12\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"14\":{\"name\":\"comment.block.cpp\"},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"16\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"18\":{\"name\":\"comment.block.cpp\"},\"19\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"20\":{\"name\":\"punctuation.separator.colon.inheritance.cpp\"}},\"end\":\"(?:(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)(?:\\\\\\\\s+)?(;)|(;))|(?=[;>\\\\\\\\[\\\\\\\\]=]))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.cpp\"},\"2\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"name\":\"meta.block.struct.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.struct.cpp\"}},\"name\":\"meta.head.struct.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#inheritance_context\"},{\"include\":\"#template_call_range\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.struct.cpp\"}},\"name\":\"meta.body.struct.cpp\",\"patterns\":[{\"include\":\"#function_pointer\"},{\"include\":\"#static_assert\"},{\"include\":\"#constructor_inline\"},{\"include\":\"#destructor_inline\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"meta.tail.struct.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"switch_conditional_parentheses\":{\"begin\":\"((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"punctuation.section.parens.begin.bracket.round.conditional.switch.cpp\"}},\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.conditional.switch.cpp\"}},\"name\":\"meta.conditional.switch.cpp\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"switch_statement\":{\"begin\":\"((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)switch(?!\\\\\\\\w))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.switch.cpp\"},\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"keyword.control.switch.cpp\"}},\"end\":\"(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)|(?=[;>\\\\\\\\[\\\\\\\\]=]))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"meta.block.switch.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.switch.cpp\"}},\"name\":\"meta.head.switch.cpp\",\"patterns\":[{\"include\":\"#switch_conditional_parentheses\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.switch.cpp\"}},\"name\":\"meta.body.switch.cpp\",\"patterns\":[{\"include\":\"#default_statement\"},{\"include\":\"#case_statement\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"meta.tail.switch.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"template_call_context\":{\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#template_call_range\"},{\"include\":\"#storage_types\"},{\"include\":\"source.cpp#language_constants\"},{\"include\":\"source.cpp#scope_resolution_template_call_inner_generated\"},{\"include\":\"#operators\"},{\"include\":\"source.cpp#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"source.cpp#comma_in_template_argument\"},{\"include\":\"source.cpp#qualified_type\"}]},\"template_call_range\":{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.begin.template.call.cpp\"}},\"end\":\">|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.end.template.call.cpp\"}},\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_context\"}]},\"template_definition\":{\"begin\":\"(?<!\\\\\\\\w)(template)(?:\\\\\\\\s+)?(<)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.template.cpp\"},\"2\":{\"name\":\"punctuation.section.angle-brackets.begin.template.definition.cpp\"}},\"end\":\">|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.end.template.definition.cpp\"}},\"name\":\"meta.template.definition.cpp\",\"patterns\":[{\"begin\":\"(?<=\\\\\\\\w)(?:\\\\\\\\s+)?<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.begin.template.call.cpp\"}},\"end\":\">|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.end.template.call.cpp\"}},\"patterns\":[{\"include\":\"#template_call_context\"}]},{\"include\":\"#template_definition_context\"}]},\"template_definition_context\":{\"patterns\":[{\"include\":\"source.cpp#scope_resolution_template_definition_inner_generated\"},{\"include\":\"source.cpp#template_definition_argument\"},{\"include\":\"source.cpp#template_argument_defaulted\"},{\"include\":\"source.cpp#template_call_innards\"},{\"include\":\"#evaluation_context\"}]},\"ternary_operator\":{\"applyEndPatternLast\":1,\"begin\":\"\\\\\\\\?\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.ternary.cpp\"}},\"end\":\":|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.ternary.cpp\"}},\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#string_context\"},{\"include\":\"source.cpp#number_literal\"},{\"include\":\"#method_access\"},{\"include\":\"source.cpp#member_access\"},{\"include\":\"source.cpp#predefined_macros\"},{\"include\":\"#operators\"},{\"include\":\"source.cpp#memory_operators\"},{\"include\":\"source.cpp#wordlike_operators\"},{\"include\":\"source.cpp#type_casting_operators\"},{\"include\":\"source.cpp#control_flow_keywords\"},{\"include\":\"source.cpp#exception_keywords\"},{\"include\":\"source.cpp#the_this_keyword\"},{\"include\":\"source.cpp#language_constants\"},{\"include\":\"#builtin_storage_type_initilizer\"},{\"include\":\"source.cpp#qualifiers_and_specifiers_post_parameters\"},{\"include\":\"source.cpp#functional_specifiers_pre_parameters\"},{\"include\":\"#storage_types\"},{\"include\":\"#lambdas\"},{\"include\":\"#attributes_context\"},{\"include\":\"#parentheses\"},{\"include\":\"#function_call\"},{\"include\":\"source.cpp#scope_resolution_inner_generated\"},{\"include\":\"#square_brackets\"},{\"include\":\"source.cpp#semicolon\"},{\"include\":\"source.cpp#comma\"}]},\"typedef_class\":{\"begin\":\"((?<!\\\\\\\\w)typedef(?!\\\\\\\\w))(?:\\\\\\\\s+)?(?=(?<!\\\\\\\\w)class(?!\\\\\\\\w))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.typedef.cpp\"}},\"end\":\"(?<=;)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"patterns\":[{\"begin\":\"((?<!\\\\\\\\w)class(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?={)|(?:((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?((?:(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*+)?(?:((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(:(?!:)))?)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.class.cpp\"},\"1\":{\"name\":\"storage.type.$1.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"source.cpp#number_literal\"}]},\"7\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.modifier.final.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?<!\\\\\\\\w)final(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.class.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"storage.type.modifier.final.cpp\"},\"7\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:((?<!\\\\\\\\w)final(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?=:|{|$)\"},{\"match\":\"DLLEXPORT\",\"name\":\"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.other.preprocessor.macro.predefined.probably.$0.cpp\"}]},\"12\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"14\":{\"name\":\"comment.block.cpp\"},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"16\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"18\":{\"name\":\"comment.block.cpp\"},\"19\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"20\":{\"name\":\"punctuation.separator.colon.inheritance.cpp\"}},\"end\":\"(?:(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)(?:\\\\\\\\s+)?(;)|(;))|(?=[;>\\\\\\\\[\\\\\\\\]=]))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.cpp\"},\"2\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"name\":\"meta.block.class.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.class.cpp\"}},\"name\":\"meta.head.class.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#inheritance_context\"},{\"include\":\"#template_call_range\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.class.cpp\"}},\"name\":\"meta.body.class.cpp\",\"patterns\":[{\"include\":\"#function_pointer\"},{\"include\":\"#static_assert\"},{\"include\":\"#constructor_inline\"},{\"include\":\"#destructor_inline\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"meta.tail.class.cpp\",\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"11\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"12\":{\"name\":\"comment.block.cpp\"},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"14\":{\"name\":\"entity.name.type.alias.cpp\"}},\"match\":\"(((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))\"},{\"match\":\",\"}]}]}]},\"typedef_function_pointer\":{\"begin\":\"((?<!\\\\\\\\w)typedef(?!\\\\\\\\w))(?:\\\\\\\\s+)?(?=.*\\\\\\\\(\\\\\\\\*\\\\\\\\s*(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\\\\\\\\s*\\\\\\\\))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.typedef.cpp\"}},\"end\":\"(?<=;)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"patterns\":[{\"begin\":\"(\\\\\\\\s*+((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:((?:::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<18>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*+)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\\\\\\\\b((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<18>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)?(?![\\\\\\\\w<:.]))(((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()(\\\\\\\\*)(?:\\\\\\\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)?)(?:\\\\\\\\s+)?(?:(\\\\\\\\[)(\\\\\\\\w*)(\\\\\\\\])(?:\\\\\\\\s+)?)*(\\\\\\\\))(?:\\\\\\\\s+)?(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"meta.qualified_type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\\\\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"source.cpp#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"source.cpp#comma\"},{\"include\":\"source.cpp#scope_resolution_inner_generated\"},{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.begin.template.call.cpp\"}},\"end\":\">|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.end.template.call.cpp\"}},\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_context\"}]},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"2\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"source.cpp#number_literal\"}]},\"3\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"5\":{\"name\":\"comment.block.cpp\"},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"7\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range\"}]},\"12\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"13\":{},\"14\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"16\":{\"name\":\"comment.block.cpp\"},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"18\":{},\"19\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"20\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"21\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"22\":{\"name\":\"comment.block.cpp\"},\"23\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"24\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"25\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"26\":{\"name\":\"comment.block.cpp\"},\"27\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"28\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"29\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"30\":{\"name\":\"comment.block.cpp\"},\"31\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"32\":{\"name\":\"punctuation.section.parens.begin.bracket.round.function.pointer.cpp\"},\"33\":{\"name\":\"punctuation.definition.function.pointer.dereference.cpp\"},\"34\":{\"name\":\"entity.name.type.alias.cpp entity.name.type.pointer.function.cpp\"},\"35\":{\"name\":\"punctuation.definition.begin.bracket.square.cpp\"},\"36\":{\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"37\":{\"name\":\"punctuation.definition.end.bracket.square.cpp\"},\"38\":{\"name\":\"punctuation.section.parens.end.bracket.round.function.pointer.cpp\"},\"39\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.function.pointer.cpp\"}},\"end\":\"(\\\\\\\\))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=[{=,);>]|\\\\\\\\n)(?!\\\\\\\\()|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.parameters.end.bracket.round.function.pointer.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"patterns\":[{\"include\":\"#function_parameter_context\"}]}]},\"typedef_struct\":{\"begin\":\"((?<!\\\\\\\\w)typedef(?!\\\\\\\\w))(?:\\\\\\\\s+)?(?=(?<!\\\\\\\\w)struct(?!\\\\\\\\w))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.typedef.cpp\"}},\"end\":\"(?<=;)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"patterns\":[{\"begin\":\"((?<!\\\\\\\\w)struct(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?={)|(?:((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?((?:(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*+)?(?:((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(:(?!:)))?)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.struct.cpp\"},\"1\":{\"name\":\"storage.type.$1.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"source.cpp#number_literal\"}]},\"7\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.modifier.final.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?<!\\\\\\\\w)final(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.struct.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"storage.type.modifier.final.cpp\"},\"7\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:((?<!\\\\\\\\w)final(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?=:|{|$)\"},{\"match\":\"DLLEXPORT\",\"name\":\"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.other.preprocessor.macro.predefined.probably.$0.cpp\"}]},\"12\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"14\":{\"name\":\"comment.block.cpp\"},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"16\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"18\":{\"name\":\"comment.block.cpp\"},\"19\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"20\":{\"name\":\"punctuation.separator.colon.inheritance.cpp\"}},\"end\":\"(?:(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)(?:\\\\\\\\s+)?(;)|(;))|(?=[;>\\\\\\\\[\\\\\\\\]=]))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.cpp\"},\"2\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"name\":\"meta.block.struct.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.struct.cpp\"}},\"name\":\"meta.head.struct.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#inheritance_context\"},{\"include\":\"#template_call_range\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.struct.cpp\"}},\"name\":\"meta.body.struct.cpp\",\"patterns\":[{\"include\":\"#function_pointer\"},{\"include\":\"#static_assert\"},{\"include\":\"#constructor_inline\"},{\"include\":\"#destructor_inline\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"meta.tail.struct.cpp\",\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"11\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"12\":{\"name\":\"comment.block.cpp\"},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"14\":{\"name\":\"entity.name.type.alias.cpp\"}},\"match\":\"(((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))\"},{\"match\":\",\"}]}]}]},\"typedef_union\":{\"begin\":\"((?<!\\\\\\\\w)typedef(?!\\\\\\\\w))(?:\\\\\\\\s+)?(?=(?<!\\\\\\\\w)union(?!\\\\\\\\w))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.typedef.cpp\"}},\"end\":\"(?<=;)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"patterns\":[{\"begin\":\"((?<!\\\\\\\\w)union(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?={)|(?:((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?((?:(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*+)?(?:((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(:(?!:)))?)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.union.cpp\"},\"1\":{\"name\":\"storage.type.$1.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"source.cpp#number_literal\"}]},\"7\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.modifier.final.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?<!\\\\\\\\w)final(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.union.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"storage.type.modifier.final.cpp\"},\"7\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:((?<!\\\\\\\\w)final(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?=:|{|$)\"},{\"match\":\"DLLEXPORT\",\"name\":\"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.other.preprocessor.macro.predefined.probably.$0.cpp\"}]},\"12\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"14\":{\"name\":\"comment.block.cpp\"},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"16\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"18\":{\"name\":\"comment.block.cpp\"},\"19\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"20\":{\"name\":\"punctuation.separator.colon.inheritance.cpp\"}},\"end\":\"(?:(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)(?:\\\\\\\\s+)?(;)|(;))|(?=[;>\\\\\\\\[\\\\\\\\]=]))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.cpp\"},\"2\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"name\":\"meta.block.union.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.union.cpp\"}},\"name\":\"meta.head.union.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#inheritance_context\"},{\"include\":\"#template_call_range\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.union.cpp\"}},\"name\":\"meta.body.union.cpp\",\"patterns\":[{\"include\":\"#function_pointer\"},{\"include\":\"#static_assert\"},{\"include\":\"#constructor_inline\"},{\"include\":\"#destructor_inline\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"meta.tail.union.cpp\",\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"11\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"12\":{\"name\":\"comment.block.cpp\"},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"14\":{\"name\":\"entity.name.type.alias.cpp\"}},\"match\":\"(((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))\"},{\"match\":\",\"}]}]}]},\"typeid_operator\":{\"begin\":\"((?<!\\\\\\\\w)typeid(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.typeid.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp\"}},\"contentName\":\"meta.arguments.operator.typeid\",\"end\":\"\\\\\\\\)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.typeid.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"union_block\":{\"begin\":\"((?<!\\\\\\\\w)union(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?={)|(?:((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?((?:(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*+)?(?:((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(:(?!:)))?)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.union.cpp\"},\"1\":{\"name\":\"storage.type.$1.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"source.cpp#number_literal\"}]},\"7\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.modifier.final.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?<!\\\\\\\\w)final(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.union.cpp\"},\"2\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"storage.type.modifier.final.cpp\"},\"7\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:((?<!\\\\\\\\w)final(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?=:|{|$)\"},{\"match\":\"DLLEXPORT\",\"name\":\"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.other.preprocessor.macro.predefined.probably.$0.cpp\"}]},\"12\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"14\":{\"name\":\"comment.block.cpp\"},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"16\":{\"patterns\":[{\"include\":\"source.cpp#inline_comment\"}]},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"18\":{\"name\":\"comment.block.cpp\"},\"19\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"20\":{\"name\":\"punctuation.separator.colon.inheritance.cpp\"}},\"end\":\"(?:(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)(?:\\\\\\\\s+)?(;)|(;))|(?=[;>\\\\\\\\[\\\\\\\\]=]))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.cpp\"},\"2\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"name\":\"meta.block.union.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.union.cpp\"}},\"name\":\"meta.head.union.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#inheritance_context\"},{\"include\":\"#template_call_range\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.union.cpp\"}},\"name\":\"meta.body.union.cpp\",\"patterns\":[{\"include\":\"#function_pointer\"},{\"include\":\"#static_assert\"},{\"include\":\"#constructor_inline\"},{\"include\":\"#destructor_inline\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{},\"name\":\"meta.tail.union.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"using_namespace\":{\"begin\":\"(?<!\\\\\\\\w)(using)\\\\\\\\s+(namespace)\\\\\\\\s+((::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<6>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*\\\\\\\\s*+)?((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))(?=;|\\\\\\\\n)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.using.directive.cpp\"},\"2\":{\"name\":\"keyword.other.namespace.directive.cpp storage.type.namespace.directive.cpp\"},\"3\":{\"patterns\":[{\"include\":\"source.cpp#scope_resolution_namespace_using_inner_generated\"}]},\"4\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp\"},\"5\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"6\":{},\"7\":{\"name\":\"entity.name.namespace.cpp\"}},\"end\":\";|(?=(?<!\\\\\\\\\\\\\\\\)\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"name\":\"meta.using-namespace.cpp\"}},\"scopeName\":\"source.cpp.embedded.macro\",\"embeddedLangs\":[\"regexp\",\"glsl\",\"sql\"]}`)),a=[...e,...n,...t,c],i=Object.freeze(JSON.parse(`{\"displayName\":\"C++\",\"name\":\"cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#constructor_root\"},{\"include\":\"#destructor_root\"},{\"include\":\"#function_definition\"},{\"include\":\"#operator_overload\"},{\"include\":\"#using_namespace\"},{\"include\":\"#type_alias\"},{\"include\":\"#using_name\"},{\"include\":\"#namespace_alias\"},{\"include\":\"#namespace_block\"},{\"include\":\"#extern_block\"},{\"include\":\"#typedef_class\"},{\"include\":\"#typedef_struct\"},{\"include\":\"#typedef_union\"},{\"include\":\"#misc_keywords\"},{\"include\":\"#standard_declares\"},{\"include\":\"#class_block\"},{\"include\":\"#struct_block\"},{\"include\":\"#union_block\"},{\"include\":\"#enum_block\"},{\"include\":\"#template_isolated_definition\"},{\"include\":\"#template_definition\"},{\"include\":\"#template_explicit_instantiation\"},{\"include\":\"#access_control_keywords\"},{\"include\":\"#block\"},{\"include\":\"#static_assert\"},{\"include\":\"#assembly\"},{\"include\":\"#function_pointer\"},{\"include\":\"#evaluation_context\"}],\"repository\":{\"access_control_keywords\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"3\":{\"name\":\"storage.type.modifier.access.control.$4.cpp\"},\"4\":{},\"5\":{\"name\":\"punctuation.separator.colon.access.control.cpp\"}},\"match\":\"((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(((?:(?:protected)|(?:private)|(?:public)))(?:\\\\\\\\s+)?(:))\"},\"alignas_attribute\":{\"begin\":\"alignas\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.attribute.begin.cpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.attribute.end.cpp\"}},\"name\":\"support.other.attribute.cpp\",\"patterns\":[{\"include\":\"#attributes_context\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{},\"end\":\"\\\\\\\\)\",\"endCaptures\":{},\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#string_context\"},{\"include\":\"#ever_present_context\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.other.using.directive.cpp\"},\"2\":{\"name\":\"entity.name.namespace.cpp\"}},\"match\":\"(using)\\\\\\\\s+((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))\"},{\"match\":\",\",\"name\":\"punctuation.separator.attribute.cpp\"},{\"match\":\":\",\"name\":\"punctuation.accessor.attribute.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)(?=::)\",\"name\":\"entity.name.namespace.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.other.attribute.$0.cpp\"},{\"include\":\"#number_literal\"},{\"include\":\"#ever_present_context\"}]},\"alignas_operator\":{\"begin\":\"((?<!\\\\\\\\w)alignas(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.alignas.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp\"}},\"contentName\":\"meta.arguments.operator.alignas\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.alignas.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"alignof_operator\":{\"begin\":\"((?<!\\\\\\\\w)alignof(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.alignof.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.alignof.cpp\"}},\"contentName\":\"meta.arguments.operator.alignof\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.alignof.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"assembly\":{\"begin\":\"(\\\\\\\\b(?:__asm__|asm)\\\\\\\\b)(?:\\\\\\\\s+)?((?:volatile)?)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.asm.cpp\"},\"2\":{\"name\":\"storage.modifier.cpp\"}},\"end\":\"(?!\\\\\\\\G)\",\"endCaptures\":{},\"name\":\"meta.asm.cpp\",\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"^((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:\\\\\\\\n|$)\"},{\"include\":\"#comments\"},{\"begin\":\"((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.assembly.cpp\"},\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.assembly.cpp\"}},\"patterns\":[{\"begin\":\"(R?)(\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"meta.encoding.cpp\"},\"2\":{\"name\":\"punctuation.definition.string.begin.assembly.cpp\"}},\"contentName\":\"meta.embedded.assembly\",\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.assembly.cpp\"}},\"name\":\"string.quoted.double.cpp\",\"patterns\":[{\"include\":\"source.asm\"},{\"include\":\"source.x86\"},{\"include\":\"source.x86_64\"},{\"include\":\"source.arm\"},{\"include\":\"#backslash_escapes\"},{\"include\":\"#string_escaped_char\"}]},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.assembly.inner.cpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.assembly.inner.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"variable.other.asm.label.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\[((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\\\\\\\\]\"},{\"match\":\":\",\"name\":\"punctuation.separator.delimiter.colon.assembly.cpp\"},{\"include\":\"#comments\"}]}]},\"assignment_operator\":{\"match\":\"\\\\\\\\=\",\"name\":\"keyword.operator.assignment.cpp\"},\"attributes_context\":{\"patterns\":[{\"include\":\"#cpp_attributes\"},{\"include\":\"#gcc_attributes\"},{\"include\":\"#ms_attributes\"},{\"include\":\"#alignas_attribute\"}]},\"backslash_escapes\":{\"match\":\"\\\\\\\\\\\\\\\\(\\\\\\\\\\\\\\\\|[abefnprtv'\\\\\"?]|[0-3][0-7]{,2}|[4-7]\\\\\\\\d?|x[a-fA-F0-9]{,2}|u[a-fA-F0-9]{,4}|U[a-fA-F0-9]{,8})\",\"name\":\"constant.character.escape\"},\"block\":{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.cpp\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.cpp\"}},\"name\":\"meta.block.cpp\",\"patterns\":[{\"include\":\"#function_body_context\"}]},\"block_comment\":{\"begin\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.begin.cpp\"}},\"end\":\"\\\\\\\\*\\\\\\\\/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.cpp\"}},\"name\":\"comment.block.cpp\"},\"builtin_storage_type_initilizer\":{\"begin\":\"\\\\\\\\s*+(?<!\\\\\\\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_]\\\\\\\\w*_t))(?!\\\\\\\\w)\\\\\\\\s*+(?<!\\\\\\\\w)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.primitive.cpp storage.type.built-in.primitive.cpp\"},\"2\":{\"name\":\"storage.type.cpp storage.type.built-in.cpp\"},\"3\":{\"name\":\"support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp\"},\"4\":{\"name\":\"support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp\"},\"5\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.initializer.cpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.initializer.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"case_statement\":{\"begin\":\"((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)case(?!\\\\\\\\w))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"keyword.control.case.cpp\"}},\"end\":\":\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.separator.colon.case.cpp\"}},\"name\":\"meta.conditional.case.cpp\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"class_block\":{\"begin\":\"((?<!\\\\\\\\w)class(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?={)|(?:((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?((?:(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*+)?(?:((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(:(?!:)))?)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.class.cpp\"},\"1\":{\"name\":\"storage.type.$1.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.modifier.final.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?<!\\\\\\\\w)final(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.class.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"storage.type.modifier.final.cpp\"},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:((?<!\\\\\\\\w)final(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?=:|{|$)\"},{\"match\":\"DLLEXPORT\",\"name\":\"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.other.preprocessor.macro.predefined.probably.$0.cpp\"}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"14\":{\"name\":\"comment.block.cpp\"},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"16\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"18\":{\"name\":\"comment.block.cpp\"},\"19\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"20\":{\"name\":\"punctuation.separator.colon.inheritance.cpp\"}},\"end\":\"(?:(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)(?:\\\\\\\\s+)?(;)|(;))|(?=[;>\\\\\\\\[\\\\\\\\]=]))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.cpp\"},\"2\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"name\":\"meta.block.class.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.class.cpp\"}},\"name\":\"meta.head.class.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#inheritance_context\"},{\"include\":\"#template_call_range\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.class.cpp\"}},\"name\":\"meta.body.class.cpp\",\"patterns\":[{\"include\":\"#function_pointer\"},{\"include\":\"#static_assert\"},{\"include\":\"#constructor_inline\"},{\"include\":\"#destructor_inline\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)\",\"endCaptures\":{},\"name\":\"meta.tail.class.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"class_declare\":{\"captures\":{\"1\":{\"name\":\"storage.type.class.declare.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"4\":{\"name\":\"entity.name.type.class.cpp\"},\"5\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"12\":{\"name\":\"variable.other.object.declare.cpp\"},\"13\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"14\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]}},\"match\":\"((?<!\\\\\\\\w)class(?!\\\\\\\\w))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))(((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))?((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\\\\\\\\b(?!override\\\\\\\\W|override\\\\\\\\$|final\\\\\\\\W|final\\\\\\\\$)((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=\\\\\\\\S)(?![:{a-zA-Z])\"},\"comma\":{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.comma.cpp\"},\"comma_in_template_argument\":{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.comma.template.argument.cpp\"},\"comments\":{\"patterns\":[{\"begin\":\"^(?:\\\\\\\\s+)?+(\\\\\\\\/\\\\\\\\/[!\\\\\\\\/]+)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.documentation.cpp\"}},\"end\":\"(?<=\\\\\\\\n)(?<!\\\\\\\\\\\\\\\\\\\\\\\\n)\",\"endCaptures\":{},\"name\":\"comment.line.double-slash.documentation.cpp\",\"patterns\":[{\"include\":\"#line_continuation_character\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:callergraph|callgraph|else|endif|f\\\\\\\\$|f\\\\\\\\[|f\\\\\\\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\\\\\\\$|\\\\\\\\#|<|>|%|\\\\\"|\\\\\\\\.|=|::|\\\\\\\\||\\\\\\\\-\\\\\\\\-|\\\\\\\\-\\\\\\\\-\\\\\\\\-)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"name\":\"markup.italic.doxygen.cpp\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:a|em|e))\\\\\\\\s+(\\\\\\\\S+)\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"name\":\"markup.bold.doxygen.cpp\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@]b)\\\\\\\\s+(\\\\\\\\S+)\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"name\":\"markup.inline.raw.string.cpp\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:c|p))\\\\\\\\s+(\\\\\\\\S+)\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"patterns\":[{\"match\":\"in|out\",\"name\":\"keyword.other.parameter.direction.$0.cpp\"}]},\"3\":{\"patterns\":[{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"variable.parameter.cpp\"},{\"match\":\",\",\"name\":\"punctuation.cpp\"}]},\"4\":{\"name\":\"variable.parameter.cpp\"},\"5\":{\"name\":\"punctuation.cpp\"},\"6\":{\"name\":\"variable.parameter.cpp\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@]param)(?:\\\\\\\\s*\\\\\\\\[((?:,?(?:\\\\\\\\s+)?(?:in|out)(?:\\\\\\\\s+)?)+)\\\\\\\\])?(\\\\\\\\s+((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))(?:(,)(?:\\\\\\\\s+)?((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)))*)\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"(?:\\\\\\\\b[A-Z]+:|@[a-z_]+:)\",\"name\":\"storage.type.class.gtkdoc.cpp\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.begin.documentation.cpp\"},\"2\":{\"patterns\":[{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:callergraph|callgraph|else|endif|f\\\\\\\\$|f\\\\\\\\[|f\\\\\\\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\\\\\\\$|\\\\\\\\#|<|>|%|\\\\\"|\\\\\\\\.|=|::|\\\\\\\\||\\\\\\\\-\\\\\\\\-|\\\\\\\\-\\\\\\\\-\\\\\\\\-)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"name\":\"markup.italic.doxygen.cpp\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:a|em|e))\\\\\\\\s+(\\\\\\\\S+)\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"name\":\"markup.bold.doxygen.cpp\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@]b)\\\\\\\\s+(\\\\\\\\S+)\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"name\":\"markup.inline.raw.string.cpp\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:c|p))\\\\\\\\s+(\\\\\\\\S+)\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"patterns\":[{\"match\":\"in|out\",\"name\":\"keyword.other.parameter.direction.$0.cpp\"}]},\"3\":{\"patterns\":[{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"variable.parameter.cpp\"},{\"match\":\",\",\"name\":\"punctuation.cpp\"}]},\"4\":{\"name\":\"variable.parameter.cpp\"},\"5\":{\"name\":\"punctuation.cpp\"},\"6\":{\"name\":\"variable.parameter.cpp\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@]param)(?:\\\\\\\\s*\\\\\\\\[((?:,?(?:\\\\\\\\s+)?(?:in|out)(?:\\\\\\\\s+)?)+)\\\\\\\\])?(\\\\\\\\s+((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))(?:(,)(?:\\\\\\\\s+)?((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)))*)\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"(?:\\\\\\\\b[A-Z]+:|@[a-z_]+:)\",\"name\":\"storage.type.class.gtkdoc.cpp\"}]},\"3\":{\"name\":\"punctuation.definition.comment.end.documentation.cpp\"}},\"match\":\"(\\\\\\\\/\\\\\\\\*[!*]+(?=\\\\\\\\s))(.+)([!*]*\\\\\\\\*\\\\\\\\/)\",\"name\":\"comment.block.documentation.cpp\"},{\"begin\":\"(?:\\\\\\\\s+)?+\\\\\\\\/\\\\\\\\*[!*]+(?:(?:\\\\\\\\n|$)|(?=\\\\\\\\s))\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.documentation.cpp\"}},\"end\":\"[!*]*\\\\\\\\*\\\\\\\\/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.documentation.cpp\"}},\"name\":\"comment.block.documentation.cpp\",\"patterns\":[{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:callergraph|callgraph|else|endif|f\\\\\\\\$|f\\\\\\\\[|f\\\\\\\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\\\\\\\$|\\\\\\\\#|<|>|%|\\\\\"|\\\\\\\\.|=|::|\\\\\\\\||\\\\\\\\-\\\\\\\\-|\\\\\\\\-\\\\\\\\-\\\\\\\\-)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"name\":\"markup.italic.doxygen.cpp\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:a|em|e))\\\\\\\\s+(\\\\\\\\S+)\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"name\":\"markup.bold.doxygen.cpp\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@]b)\\\\\\\\s+(\\\\\\\\S+)\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"name\":\"markup.inline.raw.string.cpp\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:c|p))\\\\\\\\s+(\\\\\\\\S+)\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"patterns\":[{\"match\":\"in|out\",\"name\":\"keyword.other.parameter.direction.$0.cpp\"}]},\"3\":{\"patterns\":[{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"variable.parameter.cpp\"},{\"match\":\",\",\"name\":\"punctuation.cpp\"}]},\"4\":{\"name\":\"variable.parameter.cpp\"},\"5\":{\"name\":\"punctuation.cpp\"},\"6\":{\"name\":\"variable.parameter.cpp\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@]param)(?:\\\\\\\\s*\\\\\\\\[((?:,?(?:\\\\\\\\s+)?(?:in|out)(?:\\\\\\\\s+)?)+)\\\\\\\\])?(\\\\\\\\s+((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))(?:(,)(?:\\\\\\\\s+)?((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)))*)\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"(?:\\\\\\\\b[A-Z]+:|@[a-z_]+:)\",\"name\":\"storage.type.class.gtkdoc.cpp\"}]},{\"include\":\"#emacs_file_banner\"},{\"include\":\"#block_comment\"},{\"include\":\"#line_comment\"},{\"include\":\"#invalid_comment_end\"}]},\"constructor_inline\":{\"begin\":\"^((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*)((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)(?=\\\\\\\\())\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.function.definition.special.constructor.cpp\"},\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"patterns\":[{\"include\":\"#functional_specifiers_pre_parameters\"}]},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"name\":\"storage.type.modifier.calling-convention.cpp\"},\"11\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"12\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"13\":{\"name\":\"comment.block.cpp\"},\"14\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"15\":{\"name\":\"entity.name.function.constructor.cpp entity.name.function.definition.special.constructor.cpp\"}},\"end\":\"(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)|(?=[;>\\\\\\\\[\\\\\\\\]=]))\",\"endCaptures\":{},\"name\":\"meta.function.definition.special.constructor.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp\"}},\"name\":\"meta.head.function.definition.special.constructor.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.assignment.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"keyword.other.default.function.cpp keyword.other.default.constructor.cpp\"},\"7\":{\"name\":\"keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp\"}},\"match\":\"(\\\\\\\\=)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(default)|(delete))\"},{\"include\":\"#functional_specifiers_pre_parameters\"},{\"begin\":\":\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.initializers.cpp\"}},\"end\":\"(?=\\\\\\\\{)\",\"endCaptures\":{},\"patterns\":[{\"begin\":\"((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))(((?<!<)<(?!<)(?:(?:(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/)))|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<3>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.call.initializer.cpp\"},\"2\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range\"}]},\"3\":{},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"5\":{\"name\":\"comment.block.cpp\"},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"7\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp\"}},\"contentName\":\"meta.parameter.initialization\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"begin\":\"((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.call.initializer.cpp\"},\"2\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp\"}},\"contentName\":\"meta.parameter.initialization\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.comma.cpp\"},{\"include\":\"#comments\"}]},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.special.constructor.cpp\"}},\"contentName\":\"meta.function.definition.parameters.special.constructor\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.end.bracket.round.special.constructor.cpp\"}},\"patterns\":[{\"include\":\"#function_parameter_context\"},{\"include\":\"#evaluation_context\"}]},{\"include\":\"#qualifiers_and_specifiers_post_parameters\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp\"}},\"name\":\"meta.body.function.definition.special.constructor.cpp\",\"patterns\":[{\"include\":\"#function_body_context\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)\",\"endCaptures\":{},\"name\":\"meta.tail.function.definition.special.constructor.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"constructor_root\":{\"begin\":\"\\\\\\\\s*+((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?:::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<8>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*+)(((?>(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))::((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:\\\\\\\\10)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=\\\\\\\\())\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.function.definition.special.constructor.cpp\"},\"1\":{\"name\":\"storage.type.modifier.calling-convention.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.name.scope-resolution.constructor.cpp\"},{\"include\":\"#template_call_range\"}]},\"7\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"8\":{},\"9\":{\"patterns\":[{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?=:)\",\"name\":\"entity.name.type.constructor.cpp\"},{\"match\":\"(?<=:)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.function.definition.special.constructor.cpp\"},{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp\"}]},\"10\":{},\"11\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"12\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"13\":{\"name\":\"comment.block.cpp\"},\"14\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"15\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"16\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"17\":{\"name\":\"comment.block.cpp\"},\"18\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"19\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"20\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"21\":{\"name\":\"comment.block.cpp\"},\"22\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"end\":\"(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)|(?=[;>\\\\\\\\[\\\\\\\\]=]))\",\"endCaptures\":{},\"name\":\"meta.function.definition.special.constructor.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp\"}},\"name\":\"meta.head.function.definition.special.constructor.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.assignment.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"keyword.other.default.function.cpp keyword.other.default.constructor.cpp\"},\"7\":{\"name\":\"keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp\"}},\"match\":\"(\\\\\\\\=)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(default)|(delete))\"},{\"include\":\"#functional_specifiers_pre_parameters\"},{\"begin\":\":\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.initializers.cpp\"}},\"end\":\"(?=\\\\\\\\{)\",\"endCaptures\":{},\"patterns\":[{\"begin\":\"((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))(((?<!<)<(?!<)(?:(?:(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/)))|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<3>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.call.initializer.cpp\"},\"2\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range\"}]},\"3\":{},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"5\":{\"name\":\"comment.block.cpp\"},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"7\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp\"}},\"contentName\":\"meta.parameter.initialization\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"begin\":\"((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.call.initializer.cpp\"},\"2\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp\"}},\"contentName\":\"meta.parameter.initialization\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.comma.cpp\"},{\"include\":\"#comments\"}]},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.special.constructor.cpp\"}},\"contentName\":\"meta.function.definition.parameters.special.constructor\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.end.bracket.round.special.constructor.cpp\"}},\"patterns\":[{\"include\":\"#function_parameter_context\"},{\"include\":\"#evaluation_context\"}]},{\"include\":\"#qualifiers_and_specifiers_post_parameters\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp\"}},\"name\":\"meta.body.function.definition.special.constructor.cpp\",\"patterns\":[{\"include\":\"#function_body_context\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)\",\"endCaptures\":{},\"name\":\"meta.tail.function.definition.special.constructor.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"control_flow_keywords\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"3\":{\"name\":\"keyword.control.$3.cpp\"}},\"match\":\"((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:(?:co_return)|(?:co_yield)|(?:co_await)|(?:continue)|(?:default)|(?:switch)|(?:return)|(?:catch)|(?:while)|(?:throw)|(?:break)|(?:case)|(?:goto)|(?:else)|(?:for)|(?:try)|(?:if)|(?:do))(?!\\\\\\\\w))\"},\"cpp_attributes\":{\"begin\":\"\\\\\\\\[\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.attribute.begin.cpp\"}},\"end\":\"\\\\\\\\]\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.attribute.end.cpp\"}},\"name\":\"support.other.attribute.cpp\",\"patterns\":[{\"include\":\"#attributes_context\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{},\"end\":\"\\\\\\\\)\",\"endCaptures\":{},\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#string_context\"},{\"include\":\"#ever_present_context\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.other.using.directive.cpp\"},\"2\":{\"name\":\"entity.name.namespace.cpp\"}},\"match\":\"(using)\\\\\\\\s+((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))\"},{\"match\":\",\",\"name\":\"punctuation.separator.attribute.cpp\"},{\"match\":\":\",\"name\":\"punctuation.accessor.attribute.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)(?=::)\",\"name\":\"entity.name.namespace.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.other.attribute.$0.cpp\"},{\"include\":\"#number_literal\"},{\"include\":\"#ever_present_context\"}]},\"curly_initializer\":{\"begin\":\"(\\\\\\\\s*+((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:((?:::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<18>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*+)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\\\\\\\\b((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<18>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)?(?![\\\\\\\\w<:.]))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.qualified_type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\\\\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.begin.template.call.cpp\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.end.template.call.cpp\"}},\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_context\"}]},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"2\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"3\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"5\":{\"name\":\"comment.block.cpp\"},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range\"}]},\"12\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"13\":{},\"14\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"16\":{\"name\":\"comment.block.cpp\"},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"18\":{},\"19\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"20\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"21\":{\"name\":\"comment.block.cpp\"},\"22\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"23\":{\"name\":\"punctuation.section.arguments.begin.bracket.curly.initializer.cpp\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.curly.initializer.cpp\"}},\"name\":\"meta.initialization.cpp\",\"patterns\":[{\"include\":\"#evaluation_context\"},{\"include\":\"#comma\"}]},\"d9bc4796b0b_module_import\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"3\":{\"name\":\"keyword.control.directive.import.cpp\"},\"5\":{\"name\":\"string.quoted.other.lt-gt.include.cpp\"},\"6\":{\"name\":\"punctuation.definition.string.begin.cpp\"},\"7\":{\"name\":\"punctuation.definition.string.end.cpp\"},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"10\":{\"name\":\"string.quoted.double.include.cpp\"},\"11\":{\"name\":\"punctuation.definition.string.begin.cpp\"},\"12\":{\"name\":\"punctuation.definition.string.end.cpp\"},\"13\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"14\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"15\":{\"name\":\"entity.name.other.preprocessor.macro.include.cpp\"},\"16\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"17\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"18\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"19\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"20\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"21\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"22\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"match\":\"^((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((import))(?:\\\\\\\\s+)?(?:(?:(?:((<)[^>]*(>?)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?:\\\\\\\\n|$)|(?=\\\\\\\\/\\\\\\\\/)))|((\\\\\\\\\\\\\")[^\\\\\\\\\\\\\"]*(\\\\\\\\\\\\\"?)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?:\\\\\\\\n|$)|(?=\\\\\\\\/\\\\\\\\/))))|(((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?:\\\\\\\\.(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)*((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?:\\\\\\\\n|$)|(?=(?:\\\\\\\\/\\\\\\\\/|;)))))|((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?:\\\\\\\\n|$)|(?=(?:\\\\\\\\/\\\\\\\\/|;))))(?:\\\\\\\\s+)?(;?)\",\"name\":\"meta.preprocessor.import.cpp\"},\"d9bc4796b0b_preprocessor_number_literal\":{\"captures\":{\"0\":{\"patterns\":[{\"begin\":\"(?=.)\",\"beginCaptures\":{},\"end\":\"$\",\"endCaptures\":{},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.hexadecimal.cpp\"},\"2\":{\"name\":\"constant.numeric.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"4\":{\"name\":\"constant.numeric.hexadecimal.cpp\"},\"5\":{\"name\":\"constant.numeric.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"6\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"7\":{\"name\":\"keyword.other.unit.exponent.hexadecimal.cpp\"},\"8\":{\"name\":\"keyword.operator.plus.exponent.hexadecimal.cpp\"},\"9\":{\"name\":\"keyword.operator.minus.exponent.hexadecimal.cpp\"},\"10\":{\"name\":\"constant.numeric.exponent.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"11\":{\"name\":\"keyword.other.suffix.literal.built-in.floating-point.cpp keyword.other.unit.suffix.floating-point.cpp\"}},\"match\":\"(\\\\\\\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9a-fA-F])\\\\\\\\.|\\\\\\\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([pP])(\\\\\\\\+?)(\\\\\\\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\\\\\\\w))?$\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"2\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"3\":{\"name\":\"constant.numeric.decimal.point.cpp\"},\"4\":{\"name\":\"constant.numeric.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"5\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"6\":{\"name\":\"keyword.other.unit.exponent.decimal.cpp\"},\"7\":{\"name\":\"keyword.operator.plus.exponent.decimal.cpp\"},\"8\":{\"name\":\"keyword.operator.minus.exponent.decimal.cpp\"},\"9\":{\"name\":\"constant.numeric.exponent.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"10\":{\"name\":\"keyword.other.suffix.literal.built-in.floating-point.cpp keyword.other.unit.suffix.floating-point.cpp\"}},\"match\":\"\\\\\\\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9])\\\\\\\\.|\\\\\\\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([eE])(\\\\\\\\+?)(\\\\\\\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\\\\\\\w))?$\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.binary.cpp\"},\"2\":{\"name\":\"constant.numeric.binary.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"4\":{\"name\":\"keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp\"}},\"match\":\"(\\\\\\\\G0[bB])([01](?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\\\\\\\w))?$\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.octal.cpp\"},\"2\":{\"name\":\"constant.numeric.octal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"4\":{\"name\":\"keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp\"}},\"match\":\"(\\\\\\\\G0)((?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))+)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\\\\\\\w))?$\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.hexadecimal.cpp\"},\"2\":{\"name\":\"constant.numeric.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"4\":{\"name\":\"keyword.other.unit.exponent.hexadecimal.cpp\"},\"5\":{\"name\":\"keyword.operator.plus.exponent.hexadecimal.cpp\"},\"6\":{\"name\":\"keyword.operator.minus.exponent.hexadecimal.cpp\"},\"7\":{\"name\":\"constant.numeric.exponent.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"8\":{\"name\":\"keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp\"}},\"match\":\"(\\\\\\\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([pP])(\\\\\\\\+?)(\\\\\\\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\\\\\\\w))?$\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"2\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"3\":{\"name\":\"keyword.other.unit.exponent.decimal.cpp\"},\"4\":{\"name\":\"keyword.operator.plus.exponent.decimal.cpp\"},\"5\":{\"name\":\"keyword.operator.minus.exponent.decimal.cpp\"},\"6\":{\"name\":\"constant.numeric.exponent.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"7\":{\"name\":\"keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp\"}},\"match\":\"\\\\\\\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([eE])(\\\\\\\\+?)(\\\\\\\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\\\\\\\w))?$\"},{\"match\":\"(?:(?:[0-9a-zA-Z_\\\\\\\\.]|')|(?<=[eEpP])[+-])+\",\"name\":\"invalid.illegal.constant.numeric.cpp\"}]}]}},\"match\":\"(?<!\\\\\\\\w)\\\\\\\\.?\\\\\\\\d(?:(?:[0-9a-zA-Z_\\\\\\\\.]|')|(?<=[eEpP])[+-])*\"},\"decltype\":{\"begin\":\"((?<!\\\\\\\\w)decltype(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.decltype.cpp\"}},\"contentName\":\"meta.arguments.decltype\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.decltype.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"decltype_specifier\":{\"begin\":\"((?<!\\\\\\\\w)decltype(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.decltype.cpp\"}},\"contentName\":\"meta.arguments.decltype\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.decltype.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"default_statement\":{\"begin\":\"((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)default(?!\\\\\\\\w))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"keyword.control.default.cpp\"}},\"end\":\":\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.separator.colon.case.default.cpp\"}},\"name\":\"meta.conditional.case.cpp\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"destructor_inline\":{\"begin\":\"^((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*)(~(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)(?=\\\\\\\\())\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.function.definition.special.member.destructor.cpp\"},\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"storage.type.modifier.calling-convention.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"patterns\":[{\"include\":\"#functional_specifiers_pre_parameters\"}]},\"11\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"12\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"13\":{\"name\":\"comment.block.cpp\"},\"14\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"15\":{\"name\":\"entity.name.function.destructor.cpp entity.name.function.definition.special.member.destructor.cpp\"}},\"end\":\"(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)|(?=[;>\\\\\\\\[\\\\\\\\]=]))\",\"endCaptures\":{},\"name\":\"meta.function.definition.special.member.destructor.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp\"}},\"name\":\"meta.head.function.definition.special.member.destructor.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.assignment.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"keyword.other.default.function.cpp keyword.other.default.constructor.cpp keyword.other.default.destructor.cpp\"},\"7\":{\"name\":\"keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp keyword.other.delete.destructor.cpp\"}},\"match\":\"(\\\\\\\\=)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(default)|(delete))\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp\"}},\"contentName\":\"meta.function.definition.parameters.special.member.destructor\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp\"}},\"patterns\":[]},{\"include\":\"#qualifiers_and_specifiers_post_parameters\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp\"}},\"name\":\"meta.body.function.definition.special.member.destructor.cpp\",\"patterns\":[{\"include\":\"#function_body_context\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)\",\"endCaptures\":{},\"name\":\"meta.tail.function.definition.special.member.destructor.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"destructor_root\":{\"begin\":\"((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?:::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<12>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*+)(((?>(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))::((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))~(?:\\\\\\\\14)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=\\\\\\\\())\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.function.definition.special.member.destructor.cpp\"},\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"storage.type.modifier.calling-convention.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.name.scope-resolution.destructor.cpp\"},{\"include\":\"#template_call_range\"}]},\"11\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"12\":{},\"13\":{\"patterns\":[{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?=:)\",\"name\":\"entity.name.type.destructor.cpp\"},{\"match\":\"(?<=:)~(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.function.definition.special.member.destructor.cpp\"},{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp\"}]},\"14\":{},\"15\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"16\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"17\":{\"name\":\"comment.block.cpp\"},\"18\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"19\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"20\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"21\":{\"name\":\"comment.block.cpp\"},\"22\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"23\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"24\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"25\":{\"name\":\"comment.block.cpp\"},\"26\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"end\":\"(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)|(?=[;>\\\\\\\\[\\\\\\\\]=]))\",\"endCaptures\":{},\"name\":\"meta.function.definition.special.member.destructor.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp\"}},\"name\":\"meta.head.function.definition.special.member.destructor.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.assignment.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"keyword.other.default.function.cpp keyword.other.default.constructor.cpp keyword.other.default.destructor.cpp\"},\"7\":{\"name\":\"keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp keyword.other.delete.destructor.cpp\"}},\"match\":\"(\\\\\\\\=)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(default)|(delete))\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp\"}},\"contentName\":\"meta.function.definition.parameters.special.member.destructor\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp\"}},\"patterns\":[]},{\"include\":\"#qualifiers_and_specifiers_post_parameters\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp\"}},\"name\":\"meta.body.function.definition.special.member.destructor.cpp\",\"patterns\":[{\"include\":\"#function_body_context\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)\",\"endCaptures\":{},\"name\":\"meta.tail.function.definition.special.member.destructor.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"diagnostic\":{\"begin\":\"(^((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(#)(?:\\\\\\\\s+)?((?:error|warning)))\\\\\\\\b(?:\\\\\\\\s+)?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.diagnostic.$7.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.definition.directive.cpp\"},\"7\":{}},\"end\":\"(?<!\\\\\\\\\\\\\\\\)(?:(?=\\\\\\\\n)|(?<=^\\\\\\\\n|[^\\\\\\\\\\\\\\\\]\\\\\\\\n)(?=$))\",\"endCaptures\":{},\"name\":\"meta.preprocessor.diagnostic.$reference(directive).cpp\",\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cpp\"}},\"end\":\"(?:(\\\\\")|(?<!\\\\\\\\\\\\\\\\)(?:(?=\\\\\\\\n)|(?<=^\\\\\\\\n|[^\\\\\\\\\\\\\\\\]\\\\\\\\n)(?=$)))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.cpp\"}},\"name\":\"string.quoted.double.cpp\",\"patterns\":[{\"include\":\"#line_continuation_character\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cpp\"}},\"end\":\"(?:(')|(?<!\\\\\\\\\\\\\\\\)(?:(?=\\\\\\\\n)|(?<=^\\\\\\\\n|[^\\\\\\\\\\\\\\\\]\\\\\\\\n)(?=$)))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.cpp\"}},\"name\":\"string.quoted.single.cpp\",\"patterns\":[{\"include\":\"#line_continuation_character\"}]},{\"begin\":\"[^'\\\\\"]\",\"beginCaptures\":{},\"end\":\"(?<!\\\\\\\\\\\\\\\\)(?:(?=\\\\\\\\n)|(?<=^\\\\\\\\n|[^\\\\\\\\\\\\\\\\]\\\\\\\\n)(?=$))\",\"endCaptures\":{},\"name\":\"string.unquoted.cpp\",\"patterns\":[{\"include\":\"#line_continuation_character\"},{\"include\":\"#comments\"}]}]},\"emacs_file_banner\":{\"captures\":{\"1\":{\"name\":\"meta.toc-list.banner.double-slash.cpp\"},\"2\":{\"name\":\"comment.line.double-slash.cpp\"},\"3\":{\"name\":\"punctuation.definition.comment.cpp\"},\"4\":{\"name\":\"meta.banner.character.cpp\"},\"5\":{\"name\":\"meta.toc-list.banner.block.cpp\"},\"6\":{\"name\":\"comment.line.banner.cpp\"},\"7\":{\"name\":\"punctuation.definition.comment.cpp\"},\"8\":{\"name\":\"meta.banner.character.cpp\"}},\"match\":\"(?:(^(?:\\\\\\\\s+)?((\\\\\\\\/\\\\\\\\/)(?:\\\\\\\\s+)?((?:[#;\\\\\\\\/=*C~]+)++(?![#;\\\\\\\\/=*C~]))(?:\\\\\\\\s+)?.+(?:\\\\\\\\s+)?(?:\\\\\\\\4)(?:\\\\\\\\s+)?(?:\\\\\\\\n|$)))|(^(?:\\\\\\\\s+)?((\\\\\\\\/\\\\\\\\*)(?:\\\\\\\\s+)?((?:[#;\\\\\\\\/=*C~]+)++(?![#;\\\\\\\\/=*C~]))(?:\\\\\\\\s+)?.+(?:\\\\\\\\s+)?(?:\\\\\\\\8)(?:\\\\\\\\s+)?\\\\\\\\*\\\\\\\\/)))\"},\"empty_square_brackets\":{\"match\":\"(?<!delete)\\\\\\\\[(?:\\\\\\\\s+)?\\\\\\\\]\",\"name\":\"storage.modifier.array.bracket.square\"},\"enum_block\":{\"begin\":\"((?<!\\\\\\\\w)enum(?!\\\\\\\\w))(?:\\\\\\\\s+(class|struct))?(?:(?:\\\\\\\\s+|((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\))))|(?={))(?:\\\\\\\\s+)?((?:(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))?)(?:(?:\\\\\\\\s+)?(:)(?:\\\\\\\\s+)?(?:((::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<12>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*\\\\\\\\s*+)((?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/)))|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<12>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?(::))?(?:\\\\\\\\s+)?((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)))?\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.enum.cpp\"},\"1\":{\"name\":\"storage.type.enum.cpp\"},\"2\":{\"name\":\"storage.type.enum.enum-key.$2.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"4\":{\"name\":\"entity.name.type.enum.cpp\"},\"5\":{\"name\":\"punctuation.separator.colon.type-specifier.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#scope_resolution_inner_generated\"}]},\"7\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},\"8\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"9\":{},\"10\":{\"name\":\"entity.name.scope-resolution.cpp\"},\"11\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range\"}]},\"12\":{},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"14\":{\"name\":\"comment.block.cpp\"},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"16\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},\"17\":{\"name\":\"storage.type.integral.$17.cpp\"}},\"end\":\"(?:(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)(?:\\\\\\\\s+)?(;)|(;))|(?=[;>\\\\\\\\[\\\\\\\\]=]))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.cpp\"},\"2\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"name\":\"meta.block.enum.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.enum.cpp\"}},\"name\":\"meta.head.enum.cpp\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.enum.cpp\"}},\"name\":\"meta.body.enum.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#enumerator_list\"},{\"include\":\"#comments\"},{\"include\":\"#comma\"},{\"include\":\"#semicolon\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)\",\"endCaptures\":{},\"name\":\"meta.tail.enum.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"enum_declare\":{\"captures\":{\"1\":{\"name\":\"storage.type.enum.declare.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"4\":{\"name\":\"entity.name.type.enum.cpp\"},\"5\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"12\":{\"name\":\"variable.other.object.declare.cpp\"},\"13\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"14\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]}},\"match\":\"((?<!\\\\\\\\w)enum(?!\\\\\\\\w))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))(((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))?((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\\\\\\\\b(?!override\\\\\\\\W|override\\\\\\\\$|final\\\\\\\\W|final\\\\\\\\$)((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=\\\\\\\\S)(?![:{a-zA-Z])\"},\"enumerator_list\":{\"captures\":{\"1\":{\"name\":\"variable.other.enummember.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"3\":{\"name\":\"keyword.operator.assignment.cpp\"},\"4\":{\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"5\":{\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"#semicolon\"}]}},\"match\":\"((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))(?:\\\\\\\\s+)?((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))?(?:\\\\\\\\s+)?(?:(\\\\\\\\=)(?:\\\\\\\\s+)?(.+?)(?:\\\\\\\\s+)?)?(?:(?:((?:[,;](?!')|\\\\\\\\n))|(?=\\\\\\\\}[^']))|(?=(?:\\\\\\\\/\\\\\\\\/|\\\\\\\\/\\\\\\\\*)))\",\"name\":\"meta.enum.definition.cpp\"},\"evaluation_context\":{\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#string_context\"},{\"include\":\"#number_literal\"},{\"include\":\"#method_access\"},{\"include\":\"#member_access\"},{\"include\":\"#predefined_macros\"},{\"include\":\"#operators\"},{\"include\":\"#memory_operators\"},{\"include\":\"#wordlike_operators\"},{\"include\":\"#type_casting_operators\"},{\"include\":\"#control_flow_keywords\"},{\"include\":\"#exception_keywords\"},{\"include\":\"#the_this_keyword\"},{\"include\":\"#language_constants\"},{\"include\":\"#builtin_storage_type_initilizer\"},{\"include\":\"#qualifiers_and_specifiers_post_parameters\"},{\"include\":\"#functional_specifiers_pre_parameters\"},{\"include\":\"#storage_types\"},{\"include\":\"#lambdas\"},{\"include\":\"#attributes_context\"},{\"include\":\"#parentheses\"},{\"include\":\"#function_call\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"include\":\"#square_brackets\"},{\"include\":\"#semicolon\"},{\"include\":\"#comma\"}]},\"ever_present_context\":{\"patterns\":[{\"include\":\"#pragma_mark\"},{\"include\":\"#pragma\"},{\"include\":\"#include\"},{\"include\":\"#line\"},{\"include\":\"#diagnostic\"},{\"include\":\"#undef\"},{\"include\":\"#preprocessor_conditional_range\"},{\"include\":\"#single_line_macro\"},{\"include\":\"#macro\"},{\"include\":\"#preprocessor_conditional_standalone\"},{\"include\":\"#macro_argument\"},{\"include\":\"#comments\"},{\"include\":\"#line_continuation_character\"}]},\"exception_keywords\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"3\":{\"name\":\"keyword.control.exception.$3.cpp\"}},\"match\":\"((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:(?:throw)|(?:catch)|(?:try))(?!\\\\\\\\w))\"},\"extern_block\":{\"begin\":\"((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(extern)(?=\\\\\\\\s*\\\\\\\\\\\\\")\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.extern.cpp\"},\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"storage.type.extern.cpp\"}},\"end\":\"(?:(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)(?:\\\\\\\\s+)?(;)|(;))|(?=[;>\\\\\\\\[\\\\\\\\]=]))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.cpp\"},\"2\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"name\":\"meta.block.extern.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.extern.cpp\"}},\"name\":\"meta.head.extern.cpp\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.extern.cpp\"}},\"name\":\"meta.body.extern.cpp\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)\",\"endCaptures\":{},\"name\":\"meta.tail.extern.cpp\",\"patterns\":[{\"include\":\"$self\"}]},{\"include\":\"$self\"}]},\"function_body_context\":{\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#using_namespace\"},{\"include\":\"#type_alias\"},{\"include\":\"#using_name\"},{\"include\":\"#namespace_alias\"},{\"include\":\"#typedef_class\"},{\"include\":\"#typedef_struct\"},{\"include\":\"#typedef_union\"},{\"include\":\"#misc_keywords\"},{\"include\":\"#standard_declares\"},{\"include\":\"#class_block\"},{\"include\":\"#struct_block\"},{\"include\":\"#union_block\"},{\"include\":\"#enum_block\"},{\"include\":\"#access_control_keywords\"},{\"include\":\"#block\"},{\"include\":\"#static_assert\"},{\"include\":\"#assembly\"},{\"include\":\"#function_pointer\"},{\"include\":\"#switch_statement\"},{\"include\":\"#goto_statement\"},{\"include\":\"#evaluation_context\"},{\"include\":\"#label\"}]},\"function_call\":{\"begin\":\"((::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<11>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*\\\\\\\\s*+)((?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)\\\\\\\\b(?<!\\\\\\\\Wreinterpret_cast|^reinterpret_cast|\\\\\\\\Watomic_noexcept|^atomic_noexcept|\\\\\\\\Wuint_least16_t|^uint_least16_t|\\\\\\\\Wuint_least32_t|^uint_least32_t|\\\\\\\\Wuint_least64_t|^uint_least64_t|\\\\\\\\Watomic_cancel|^atomic_cancel|\\\\\\\\Watomic_commit|^atomic_commit|\\\\\\\\Wuint_least8_t|^uint_least8_t|\\\\\\\\Wuint_fast16_t|^uint_fast16_t|\\\\\\\\Wuint_fast32_t|^uint_fast32_t|\\\\\\\\Wint_least16_t|^int_least16_t|\\\\\\\\Wint_least32_t|^int_least32_t|\\\\\\\\Wint_least64_t|^int_least64_t|\\\\\\\\Wuint_fast64_t|^uint_fast64_t|\\\\\\\\Wthread_local|^thread_local|\\\\\\\\Wint_fast16_t|^int_fast16_t|\\\\\\\\Wint_fast32_t|^int_fast32_t|\\\\\\\\Wint_fast64_t|^int_fast64_t|\\\\\\\\Wsynchronized|^synchronized|\\\\\\\\Wuint_fast8_t|^uint_fast8_t|\\\\\\\\Wdynamic_cast|^dynamic_cast|\\\\\\\\Wint_least8_t|^int_least8_t|\\\\\\\\Wint_fast8_t|^int_fast8_t|\\\\\\\\Wstatic_cast|^static_cast|\\\\\\\\Wsuseconds_t|^suseconds_t|\\\\\\\\Wconst_cast|^const_cast|\\\\\\\\Wuseconds_t|^useconds_t|\\\\\\\\Wconstinit|^constinit|\\\\\\\\Wco_return|^co_return|\\\\\\\\Wuintmax_t|^uintmax_t|\\\\\\\\Wuintmax_t|^uintmax_t|\\\\\\\\Wuintmax_t|^uintmax_t|\\\\\\\\Wconstexpr|^constexpr|\\\\\\\\Wconsteval|^consteval|\\\\\\\\Wconstexpr|^constexpr|\\\\\\\\Wconstexpr|^constexpr|\\\\\\\\Wconsteval|^consteval|\\\\\\\\Wprotected|^protected|\\\\\\\\Wnamespace|^namespace|\\\\\\\\Wblksize_t|^blksize_t|\\\\\\\\Wco_return|^co_return|\\\\\\\\Win_addr_t|^in_addr_t|\\\\\\\\Win_port_t|^in_port_t|\\\\\\\\Wuintptr_t|^uintptr_t|\\\\\\\\Wtemplate|^template|\\\\\\\\Wnoexcept|^noexcept|\\\\\\\\Wnoexcept|^noexcept|\\\\\\\\Wcontinue|^continue|\\\\\\\\Wco_await|^co_await|\\\\\\\\Wco_yield|^co_yield|\\\\\\\\Wunsigned|^unsigned|\\\\\\\\Wu_quad_t|^u_quad_t|\\\\\\\\Wblkcnt_t|^blkcnt_t|\\\\\\\\Wuint16_t|^uint16_t|\\\\\\\\Wuint32_t|^uint32_t|\\\\\\\\Wuint64_t|^uint64_t|\\\\\\\\Wintptr_t|^intptr_t|\\\\\\\\Wintmax_t|^intmax_t|\\\\\\\\Wintmax_t|^intmax_t|\\\\\\\\Wvolatile|^volatile|\\\\\\\\Wregister|^register|\\\\\\\\Wrestrict|^restrict|\\\\\\\\Wexplicit|^explicit|\\\\\\\\Wvolatile|^volatile|\\\\\\\\Wnoexcept|^noexcept|\\\\\\\\Woperator|^operator|\\\\\\\\Wdecltype|^decltype|\\\\\\\\Wtypename|^typename|\\\\\\\\Wrequires|^requires|\\\\\\\\Wco_await|^co_await|\\\\\\\\Wco_yield|^co_yield|\\\\\\\\Wreflexpr|^reflexpr|\\\\\\\\Wswblk_t|^swblk_t|\\\\\\\\Wvirtual|^virtual|\\\\\\\\Wssize_t|^ssize_t|\\\\\\\\Wconcept|^concept|\\\\\\\\Wmutable|^mutable|\\\\\\\\Wfixpt_t|^fixpt_t|\\\\\\\\Wint16_t|^int16_t|\\\\\\\\Wint32_t|^int32_t|\\\\\\\\Wint64_t|^int64_t|\\\\\\\\Wuint8_t|^uint8_t|\\\\\\\\Wtypedef|^typedef|\\\\\\\\Wdaddr_t|^daddr_t|\\\\\\\\Wcaddr_t|^caddr_t|\\\\\\\\Wqaddr_t|^qaddr_t|\\\\\\\\Wdefault|^default|\\\\\\\\Wnlink_t|^nlink_t|\\\\\\\\Wsegsz_t|^segsz_t|\\\\\\\\Wu_short|^u_short|\\\\\\\\Wwchar_t|^wchar_t|\\\\\\\\Wprivate|^private|\\\\\\\\W__asm__|^__asm__|\\\\\\\\Walignas|^alignas|\\\\\\\\Walignof|^alignof|\\\\\\\\Wmutable|^mutable|\\\\\\\\Wnullptr|^nullptr|\\\\\\\\Wclock_t|^clock_t|\\\\\\\\Wmode_t|^mode_t|\\\\\\\\Wpublic|^public|\\\\\\\\Wsize_t|^size_t|\\\\\\\\Wdouble|^double|\\\\\\\\Wquad_t|^quad_t|\\\\\\\\Wstatic|^static|\\\\\\\\Wtime_t|^time_t|\\\\\\\\Wmodule|^module|\\\\\\\\Wimport|^import|\\\\\\\\Wexport|^export|\\\\\\\\Wextern|^extern|\\\\\\\\Winline|^inline|\\\\\\\\Wxor_eq|^xor_eq|\\\\\\\\Wand_eq|^and_eq|\\\\\\\\Wreturn|^return|\\\\\\\\Wfriend|^friend|\\\\\\\\Wnot_eq|^not_eq|\\\\\\\\Wsigned|^signed|\\\\\\\\Wstruct|^struct|\\\\\\\\Wint8_t|^int8_t|\\\\\\\\Wushort|^ushort|\\\\\\\\Wswitch|^switch|\\\\\\\\Wu_long|^u_long|\\\\\\\\Wtypeid|^typeid|\\\\\\\\Wu_char|^u_char|\\\\\\\\Wsizeof|^sizeof|\\\\\\\\Wbitand|^bitand|\\\\\\\\Wdelete|^delete|\\\\\\\\Wino_t|^ino_t|\\\\\\\\Wkey_t|^key_t|\\\\\\\\Wpid_t|^pid_t|\\\\\\\\Woff_t|^off_t|\\\\\\\\Wuid_t|^uid_t|\\\\\\\\Wshort|^short|\\\\\\\\Wbreak|^break|\\\\\\\\Wcatch|^catch|\\\\\\\\Wcompl|^compl|\\\\\\\\Wwhile|^while|\\\\\\\\Wfalse|^false|\\\\\\\\Wclass|^class|\\\\\\\\Wunion|^union|\\\\\\\\Wconst|^const|\\\\\\\\Wor_eq|^or_eq|\\\\\\\\Wconst|^const|\\\\\\\\Wthrow|^throw|\\\\\\\\Wbitor|^bitor|\\\\\\\\Wu_int|^u_int|\\\\\\\\Wusing|^using|\\\\\\\\Wdiv_t|^div_t|\\\\\\\\Wdev_t|^dev_t|\\\\\\\\Wgid_t|^gid_t|\\\\\\\\Wfloat|^float|\\\\\\\\Wlong|^long|\\\\\\\\Wgoto|^goto|\\\\\\\\Wuint|^uint|\\\\\\\\Wid_t|^id_t|\\\\\\\\Wcase|^case|\\\\\\\\Wauto|^auto|\\\\\\\\Wvoid|^void|\\\\\\\\Wenum|^enum|\\\\\\\\Wtrue|^true|\\\\\\\\Wchar|^char|\\\\\\\\Wid_t|^id_t|\\\\\\\\WNULL|^NULL|\\\\\\\\Wthis|^this|\\\\\\\\Wbool|^bool|\\\\\\\\Welse|^else|\\\\\\\\Wfor|^for|\\\\\\\\Wnew|^new|\\\\\\\\Wnot|^not|\\\\\\\\Wxor|^xor|\\\\\\\\Wand|^and|\\\\\\\\Wasm|^asm|\\\\\\\\Wint|^int|\\\\\\\\Wtry|^try|\\\\\\\\Wdo|^do|\\\\\\\\Wif|^if|\\\\\\\\Wor|^or)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(((?<!<)<(?!<)(?:(?:(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/)))|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<11>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#scope_resolution_function_call_inner_generated\"}]},\"2\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"4\":{},\"5\":{\"name\":\"entity.name.function.call.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range\"}]},\"11\":{},\"12\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"13\":{\"name\":\"comment.block.cpp\"},\"14\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"15\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.function.call.cpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.function.call.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"function_definition\":{\"begin\":\"(?:(?:^|\\\\\\\\G|(?<=;|\\\\\\\\}))|(?<=>|\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+(?:((?<!\\\\\\\\w)template(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))?((?:((?<!\\\\\\\\w)(?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))|(?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*)(\\\\\\\\s*+((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:((?:::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<52>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*+)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\\\\\\\\b((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<52>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)?(?![\\\\\\\\w<:.]))(((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<52>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*\\\\\\\\s*+)((?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)\\\\\\\\b(?<!\\\\\\\\Wreinterpret_cast|^reinterpret_cast|\\\\\\\\Watomic_noexcept|^atomic_noexcept|\\\\\\\\Wuint_least16_t|^uint_least16_t|\\\\\\\\Wuint_least32_t|^uint_least32_t|\\\\\\\\Wuint_least64_t|^uint_least64_t|\\\\\\\\Watomic_cancel|^atomic_cancel|\\\\\\\\Watomic_commit|^atomic_commit|\\\\\\\\Wuint_least8_t|^uint_least8_t|\\\\\\\\Wuint_fast16_t|^uint_fast16_t|\\\\\\\\Wuint_fast32_t|^uint_fast32_t|\\\\\\\\Wint_least16_t|^int_least16_t|\\\\\\\\Wint_least32_t|^int_least32_t|\\\\\\\\Wint_least64_t|^int_least64_t|\\\\\\\\Wuint_fast64_t|^uint_fast64_t|\\\\\\\\Wthread_local|^thread_local|\\\\\\\\Wint_fast16_t|^int_fast16_t|\\\\\\\\Wint_fast32_t|^int_fast32_t|\\\\\\\\Wint_fast64_t|^int_fast64_t|\\\\\\\\Wsynchronized|^synchronized|\\\\\\\\Wuint_fast8_t|^uint_fast8_t|\\\\\\\\Wdynamic_cast|^dynamic_cast|\\\\\\\\Wint_least8_t|^int_least8_t|\\\\\\\\Wint_fast8_t|^int_fast8_t|\\\\\\\\Wstatic_cast|^static_cast|\\\\\\\\Wsuseconds_t|^suseconds_t|\\\\\\\\Wconst_cast|^const_cast|\\\\\\\\Wuseconds_t|^useconds_t|\\\\\\\\Wconstinit|^constinit|\\\\\\\\Wco_return|^co_return|\\\\\\\\Wuintmax_t|^uintmax_t|\\\\\\\\Wuintmax_t|^uintmax_t|\\\\\\\\Wuintmax_t|^uintmax_t|\\\\\\\\Wconstexpr|^constexpr|\\\\\\\\Wconsteval|^consteval|\\\\\\\\Wconstexpr|^constexpr|\\\\\\\\Wconstexpr|^constexpr|\\\\\\\\Wconsteval|^consteval|\\\\\\\\Wprotected|^protected|\\\\\\\\Wnamespace|^namespace|\\\\\\\\Wblksize_t|^blksize_t|\\\\\\\\Wco_return|^co_return|\\\\\\\\Win_addr_t|^in_addr_t|\\\\\\\\Win_port_t|^in_port_t|\\\\\\\\Wuintptr_t|^uintptr_t|\\\\\\\\Wtemplate|^template|\\\\\\\\Wnoexcept|^noexcept|\\\\\\\\Wnoexcept|^noexcept|\\\\\\\\Wcontinue|^continue|\\\\\\\\Wco_await|^co_await|\\\\\\\\Wco_yield|^co_yield|\\\\\\\\Wunsigned|^unsigned|\\\\\\\\Wu_quad_t|^u_quad_t|\\\\\\\\Wblkcnt_t|^blkcnt_t|\\\\\\\\Wuint16_t|^uint16_t|\\\\\\\\Wuint32_t|^uint32_t|\\\\\\\\Wuint64_t|^uint64_t|\\\\\\\\Wintptr_t|^intptr_t|\\\\\\\\Wintmax_t|^intmax_t|\\\\\\\\Wintmax_t|^intmax_t|\\\\\\\\Wvolatile|^volatile|\\\\\\\\Wregister|^register|\\\\\\\\Wrestrict|^restrict|\\\\\\\\Wexplicit|^explicit|\\\\\\\\Wvolatile|^volatile|\\\\\\\\Wnoexcept|^noexcept|\\\\\\\\Woperator|^operator|\\\\\\\\Wdecltype|^decltype|\\\\\\\\Wtypename|^typename|\\\\\\\\Wrequires|^requires|\\\\\\\\Wco_await|^co_await|\\\\\\\\Wco_yield|^co_yield|\\\\\\\\Wreflexpr|^reflexpr|\\\\\\\\Wswblk_t|^swblk_t|\\\\\\\\Wvirtual|^virtual|\\\\\\\\Wssize_t|^ssize_t|\\\\\\\\Wconcept|^concept|\\\\\\\\Wmutable|^mutable|\\\\\\\\Wfixpt_t|^fixpt_t|\\\\\\\\Wint16_t|^int16_t|\\\\\\\\Wint32_t|^int32_t|\\\\\\\\Wint64_t|^int64_t|\\\\\\\\Wuint8_t|^uint8_t|\\\\\\\\Wtypedef|^typedef|\\\\\\\\Wdaddr_t|^daddr_t|\\\\\\\\Wcaddr_t|^caddr_t|\\\\\\\\Wqaddr_t|^qaddr_t|\\\\\\\\Wdefault|^default|\\\\\\\\Wnlink_t|^nlink_t|\\\\\\\\Wsegsz_t|^segsz_t|\\\\\\\\Wu_short|^u_short|\\\\\\\\Wwchar_t|^wchar_t|\\\\\\\\Wprivate|^private|\\\\\\\\W__asm__|^__asm__|\\\\\\\\Walignas|^alignas|\\\\\\\\Walignof|^alignof|\\\\\\\\Wmutable|^mutable|\\\\\\\\Wnullptr|^nullptr|\\\\\\\\Wclock_t|^clock_t|\\\\\\\\Wmode_t|^mode_t|\\\\\\\\Wpublic|^public|\\\\\\\\Wsize_t|^size_t|\\\\\\\\Wdouble|^double|\\\\\\\\Wquad_t|^quad_t|\\\\\\\\Wstatic|^static|\\\\\\\\Wtime_t|^time_t|\\\\\\\\Wmodule|^module|\\\\\\\\Wimport|^import|\\\\\\\\Wexport|^export|\\\\\\\\Wextern|^extern|\\\\\\\\Winline|^inline|\\\\\\\\Wxor_eq|^xor_eq|\\\\\\\\Wand_eq|^and_eq|\\\\\\\\Wreturn|^return|\\\\\\\\Wfriend|^friend|\\\\\\\\Wnot_eq|^not_eq|\\\\\\\\Wsigned|^signed|\\\\\\\\Wstruct|^struct|\\\\\\\\Wint8_t|^int8_t|\\\\\\\\Wushort|^ushort|\\\\\\\\Wswitch|^switch|\\\\\\\\Wu_long|^u_long|\\\\\\\\Wtypeid|^typeid|\\\\\\\\Wu_char|^u_char|\\\\\\\\Wsizeof|^sizeof|\\\\\\\\Wbitand|^bitand|\\\\\\\\Wdelete|^delete|\\\\\\\\Wino_t|^ino_t|\\\\\\\\Wkey_t|^key_t|\\\\\\\\Wpid_t|^pid_t|\\\\\\\\Woff_t|^off_t|\\\\\\\\Wuid_t|^uid_t|\\\\\\\\Wshort|^short|\\\\\\\\Wbreak|^break|\\\\\\\\Wcatch|^catch|\\\\\\\\Wcompl|^compl|\\\\\\\\Wwhile|^while|\\\\\\\\Wfalse|^false|\\\\\\\\Wclass|^class|\\\\\\\\Wunion|^union|\\\\\\\\Wconst|^const|\\\\\\\\Wor_eq|^or_eq|\\\\\\\\Wconst|^const|\\\\\\\\Wthrow|^throw|\\\\\\\\Wbitor|^bitor|\\\\\\\\Wu_int|^u_int|\\\\\\\\Wusing|^using|\\\\\\\\Wdiv_t|^div_t|\\\\\\\\Wdev_t|^dev_t|\\\\\\\\Wgid_t|^gid_t|\\\\\\\\Wfloat|^float|\\\\\\\\Wlong|^long|\\\\\\\\Wgoto|^goto|\\\\\\\\Wuint|^uint|\\\\\\\\Wid_t|^id_t|\\\\\\\\Wcase|^case|\\\\\\\\Wauto|^auto|\\\\\\\\Wvoid|^void|\\\\\\\\Wenum|^enum|\\\\\\\\Wtrue|^true|\\\\\\\\Wchar|^char|\\\\\\\\Wid_t|^id_t|\\\\\\\\WNULL|^NULL|\\\\\\\\Wthis|^this|\\\\\\\\Wbool|^bool|\\\\\\\\Welse|^else|\\\\\\\\Wfor|^for|\\\\\\\\Wnew|^new|\\\\\\\\Wnot|^not|\\\\\\\\Wxor|^xor|\\\\\\\\Wand|^and|\\\\\\\\Wasm|^asm|\\\\\\\\Wint|^int|\\\\\\\\Wtry|^try|\\\\\\\\Wdo|^do|\\\\\\\\Wif|^if|\\\\\\\\Wor|^or)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=\\\\\\\\()\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.function.definition.cpp\"},\"1\":{\"name\":\"storage.type.template.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"7\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.modifier.$1.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?<!\\\\\\\\w)(?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))|(?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\"}]},\"8\":{\"name\":\"storage.modifier.$8.cpp\"},\"9\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"11\":{\"name\":\"comment.block.cpp\"},\"12\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"13\":{\"name\":\"meta.qualified_type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\\\\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.begin.template.call.cpp\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.end.template.call.cpp\"}},\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_context\"}]},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"14\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"15\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"16\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"17\":{\"name\":\"comment.block.cpp\"},\"18\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"19\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"20\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"21\":{\"name\":\"comment.block.cpp\"},\"22\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"23\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range\"}]},\"24\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"25\":{},\"26\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"27\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"28\":{\"name\":\"comment.block.cpp\"},\"29\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"30\":{},\"31\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"32\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"33\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"34\":{\"name\":\"comment.block.cpp\"},\"35\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"36\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"37\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"38\":{\"name\":\"comment.block.cpp\"},\"39\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"40\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"41\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"42\":{\"name\":\"comment.block.cpp\"},\"43\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"44\":{\"name\":\"storage.type.modifier.calling-convention.cpp\"},\"45\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"46\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"47\":{\"name\":\"comment.block.cpp\"},\"48\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"49\":{\"patterns\":[{\"include\":\"#scope_resolution_function_definition_inner_generated\"}]},\"50\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp\"},\"51\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"52\":{},\"53\":{\"name\":\"entity.name.function.definition.cpp\"},\"54\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"55\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"56\":{\"name\":\"comment.block.cpp\"},\"57\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"end\":\"(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)|(?=[;>\\\\\\\\[\\\\\\\\]=]))\",\"endCaptures\":{},\"name\":\"meta.function.definition.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.function.definition.cpp\"}},\"name\":\"meta.head.function.definition.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.cpp\"}},\"contentName\":\"meta.function.definition.parameters\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.end.bracket.round.cpp\"}},\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#parameter_or_maybe_value\"},{\"include\":\"#comma\"},{\"include\":\"#evaluation_context\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.function.return-type.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"meta.qualified_type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\\\\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.begin.template.call.cpp\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.end.template.call.cpp\"}},\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_context\"}]},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"7\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"10\":{\"name\":\"comment.block.cpp\"},\"11\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"14\":{\"name\":\"comment.block.cpp\"},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"16\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range\"}]},\"17\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"18\":{},\"19\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"20\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"21\":{\"name\":\"comment.block.cpp\"},\"22\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"23\":{}},\"match\":\"(?<=^|\\\\\\\\))(?:\\\\\\\\s+)?(->)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\s*+((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:((?:::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<23>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*+)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\\\\\\\\b((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<23>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)?(?![\\\\\\\\w<:.]))\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.function.definition.cpp\"}},\"name\":\"meta.body.function.definition.cpp\",\"patterns\":[{\"include\":\"#function_body_context\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)\",\"endCaptures\":{},\"name\":\"meta.tail.function.definition.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"function_parameter_context\":{\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#parameter\"},{\"include\":\"#comma\"}]},\"function_pointer\":{\"begin\":\"(\\\\\\\\s*+((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:((?:::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<18>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*+)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\\\\\\\\b((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<18>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)?(?![\\\\\\\\w<:.]))(((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()(\\\\\\\\*)(?:\\\\\\\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)?)(?:\\\\\\\\s+)?(?:(\\\\\\\\[)(\\\\\\\\w*)(\\\\\\\\])(?:\\\\\\\\s+)?)*(\\\\\\\\))(?:\\\\\\\\s+)?(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"meta.qualified_type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\\\\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.begin.template.call.cpp\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.end.template.call.cpp\"}},\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_context\"}]},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"2\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"3\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"5\":{\"name\":\"comment.block.cpp\"},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range\"}]},\"12\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"13\":{},\"14\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"16\":{\"name\":\"comment.block.cpp\"},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"18\":{},\"19\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"20\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"21\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"22\":{\"name\":\"comment.block.cpp\"},\"23\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"24\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"25\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"26\":{\"name\":\"comment.block.cpp\"},\"27\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"28\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"29\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"30\":{\"name\":\"comment.block.cpp\"},\"31\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"32\":{\"name\":\"punctuation.section.parens.begin.bracket.round.function.pointer.cpp\"},\"33\":{\"name\":\"punctuation.definition.function.pointer.dereference.cpp\"},\"34\":{\"name\":\"variable.other.definition.pointer.function.cpp\"},\"35\":{\"name\":\"punctuation.definition.begin.bracket.square.cpp\"},\"36\":{\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"37\":{\"name\":\"punctuation.definition.end.bracket.square.cpp\"},\"38\":{\"name\":\"punctuation.section.parens.end.bracket.round.function.pointer.cpp\"},\"39\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.function.pointer.cpp\"}},\"end\":\"(\\\\\\\\))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=[{=,);>]|\\\\\\\\n)(?!\\\\\\\\()\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.parameters.end.bracket.round.function.pointer.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"patterns\":[{\"include\":\"#function_parameter_context\"}]},\"function_pointer_parameter\":{\"begin\":\"(\\\\\\\\s*+((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:((?:::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<18>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*+)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\\\\\\\\b((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<18>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)?(?![\\\\\\\\w<:.]))(((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()(\\\\\\\\*)(?:\\\\\\\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)?)(?:\\\\\\\\s+)?(?:(\\\\\\\\[)(\\\\\\\\w*)(\\\\\\\\])(?:\\\\\\\\s+)?)*(\\\\\\\\))(?:\\\\\\\\s+)?(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"meta.qualified_type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\\\\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.begin.template.call.cpp\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.end.template.call.cpp\"}},\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_context\"}]},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"2\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"3\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"5\":{\"name\":\"comment.block.cpp\"},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range\"}]},\"12\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"13\":{},\"14\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"16\":{\"name\":\"comment.block.cpp\"},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"18\":{},\"19\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"20\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"21\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"22\":{\"name\":\"comment.block.cpp\"},\"23\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"24\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"25\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"26\":{\"name\":\"comment.block.cpp\"},\"27\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"28\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"29\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"30\":{\"name\":\"comment.block.cpp\"},\"31\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"32\":{\"name\":\"punctuation.section.parens.begin.bracket.round.function.pointer.cpp\"},\"33\":{\"name\":\"punctuation.definition.function.pointer.dereference.cpp\"},\"34\":{\"name\":\"variable.parameter.pointer.function.cpp\"},\"35\":{\"name\":\"punctuation.definition.begin.bracket.square.cpp\"},\"36\":{\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"37\":{\"name\":\"punctuation.definition.end.bracket.square.cpp\"},\"38\":{\"name\":\"punctuation.section.parens.end.bracket.round.function.pointer.cpp\"},\"39\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.function.pointer.cpp\"}},\"end\":\"(\\\\\\\\))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=[{=,);>]|\\\\\\\\n)(?!\\\\\\\\()\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.parameters.end.bracket.round.function.pointer.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"patterns\":[{\"include\":\"#function_parameter_context\"}]},\"functional_specifiers_pre_parameters\":{\"match\":\"(?<!\\\\\\\\w)(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))(?!\\\\\\\\w)\",\"name\":\"storage.modifier.specifier.functional.pre-parameters.$0.cpp\"},\"gcc_attributes\":{\"begin\":\"__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.attribute.begin.cpp\"}},\"end\":\"\\\\\\\\)\\\\\\\\s*\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.attribute.end.cpp\"}},\"name\":\"support.other.attribute.cpp\",\"patterns\":[{\"include\":\"#attributes_context\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{},\"end\":\"\\\\\\\\)\",\"endCaptures\":{},\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#string_context\"},{\"include\":\"#ever_present_context\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.other.using.directive.cpp\"},\"2\":{\"name\":\"entity.name.namespace.cpp\"}},\"match\":\"(using)\\\\\\\\s+((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))\"},{\"match\":\",\",\"name\":\"punctuation.separator.attribute.cpp\"},{\"match\":\":\",\"name\":\"punctuation.accessor.attribute.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)(?=::)\",\"name\":\"entity.name.namespace.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.other.attribute.$0.cpp\"},{\"include\":\"#number_literal\"},{\"include\":\"#ever_present_context\"}]},\"goto_statement\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"3\":{\"name\":\"keyword.control.goto.cpp\"},\"4\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"5\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"6\":{\"name\":\"entity.name.label.call.cpp\"}},\"match\":\"((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)goto(?!\\\\\\\\w))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)\"},\"identifier\":{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\"},\"include\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"3\":{\"name\":\"keyword.control.directive.$5.cpp\"},\"4\":{\"name\":\"punctuation.definition.directive.cpp\"},\"6\":{\"name\":\"string.quoted.other.lt-gt.include.cpp\"},\"7\":{\"name\":\"punctuation.definition.string.begin.cpp\"},\"8\":{\"name\":\"punctuation.definition.string.end.cpp\"},\"9\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"10\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"11\":{\"name\":\"string.quoted.double.include.cpp\"},\"12\":{\"name\":\"punctuation.definition.string.begin.cpp\"},\"13\":{\"name\":\"punctuation.definition.string.end.cpp\"},\"14\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"15\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"16\":{\"name\":\"entity.name.other.preprocessor.macro.include.cpp\"},\"17\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"18\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"19\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"20\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"21\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"22\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]}},\"match\":\"^((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((#)(?:\\\\\\\\s+)?((?:include|include_next))\\\\\\\\b)(?:\\\\\\\\s+)?(?:(?:(?:((<)[^>]*(>?)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?:\\\\\\\\n|$)|(?=\\\\\\\\/\\\\\\\\/)))|((\\\\\\\\\\\\\")[^\\\\\\\\\\\\\"]*(\\\\\\\\\\\\\"?)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?:\\\\\\\\n|$)|(?=\\\\\\\\/\\\\\\\\/))))|(((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?:\\\\\\\\.(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)*((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?:\\\\\\\\n|$)|(?=(?:\\\\\\\\/\\\\\\\\/|;)))))|((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?:\\\\\\\\n|$)|(?=(?:\\\\\\\\/\\\\\\\\/|;))))\",\"name\":\"meta.preprocessor.include.cpp\"},\"inheritance_context\":{\"patterns\":[{\"include\":\"#ever_present_context\"},{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.comma.inheritance.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:(?:protected)|(?:private)|(?:public))(?!\\\\\\\\w)\",\"name\":\"storage.type.modifier.access.$0.cpp\"},{\"match\":\"(?<!\\\\\\\\w)virtual(?!\\\\\\\\w)\",\"name\":\"storage.type.modifier.virtual.cpp\"},{\"captures\":{\"1\":{\"name\":\"meta.qualified_type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\\\\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.begin.template.call.cpp\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.end.template.call.cpp\"}},\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_context\"}]},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"2\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"3\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"4\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"5\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"6\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"7\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range\"}]},\"8\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"9\":{},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"12\":{}},\"match\":\"(?<=protected|virtual|private|public|,|:)(?:\\\\\\\\s+)?(?!(?:(?:(?:protected)|(?:private)|(?:public))|virtual))(\\\\\\\\s*+((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))?((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:((?:::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<12>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*+)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\\\\\\\\b((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<12>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)?(?![\\\\\\\\w<:.]))\"}]},\"inline_builtin_storage_type\":{\"captures\":{\"1\":{\"name\":\"storage.type.primitive.cpp storage.type.built-in.primitive.cpp\"},\"2\":{\"name\":\"storage.type.cpp storage.type.built-in.cpp\"},\"3\":{\"name\":\"support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp\"},\"4\":{\"name\":\"support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp\"}},\"match\":\"\\\\\\\\s*+(?<!\\\\\\\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_]\\\\\\\\w*_t))(?!\\\\\\\\w)\"},\"inline_comment\":{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\"},\"invalid_comment_end\":{\"match\":\"\\\\\\\\*\\\\\\\\/\",\"name\":\"invalid.illegal.unexpected.punctuation.definition.comment.end.cpp\"},\"label\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"3\":{\"name\":\"entity.name.label.cpp\"},\"4\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"5\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"6\":{\"name\":\"punctuation.separator.label.cpp\"}},\"match\":\"((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))\\\\\\\\b(?<!case|default)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(:)\"},\"lambdas\":{\"begin\":\"(?:(?<=[^\\\\\\\\s]|^)(?<![\\\\\\\\w\\\\\\\\]\\\\\\\\)\\\\\\\\[\\\\\\\\*&\\\\\">])|(?<=\\\\\\\\Wreturn|^return))(?:\\\\\\\\s+)?(\\\\\\\\[(?!\\\\\\\\[| *+\\\\\"| *+\\\\\\\\d))((?:[^\\\\\\\\[\\\\\\\\]]|((?<!\\\\\\\\[)\\\\\\\\[(?!\\\\\\\\[)(?:[^\\\\\\\\[\\\\\\\\]]*+\\\\\\\\g<3>?)++\\\\\\\\]))*+)(\\\\\\\\](?!((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))[\\\\\\\\[\\\\\\\\];=]))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.capture.begin.lambda.cpp\"},\"2\":{\"name\":\"meta.lambda.capture.cpp\",\"patterns\":[{\"include\":\"#the_this_keyword\"},{\"captures\":{\"1\":{\"name\":\"variable.parameter.capture.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.separator.delimiter.comma.cpp\"},\"7\":{\"name\":\"keyword.operator.assignment.cpp\"}},\"match\":\"((?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?:(?=\\\\\\\\]|\\\\\\\\z|$)|(,))|(\\\\\\\\=))\"},{\"include\":\"#evaluation_context\"}]},\"3\":{},\"4\":{\"name\":\"punctuation.definition.capture.end.lambda.cpp\"},\"5\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"7\":{\"name\":\"comment.block.cpp\"},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"end\":\"(?<=[;}])\",\"endCaptures\":{},\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.begin.lambda.cpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.lambda.cpp\"}},\"name\":\"meta.function.definition.parameters.lambda.cpp\",\"patterns\":[{\"include\":\"#function_parameter_context\"}]},{\"match\":\"(?<!\\\\\\\\w)(?:(?:constexpr)|(?:consteval)|(?:mutable))(?!\\\\\\\\w)\",\"name\":\"storage.modifier.lambda.$0.cpp\"},{\"begin\":\"->\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.lambda.return-type.cpp\"}},\"end\":\"(?=\\\\\\\\{)\",\"endCaptures\":{},\"patterns\":[{\"include\":\"#comments\"},{\"match\":\"\\\\\\\\S+\",\"name\":\"storage.type.return-type.lambda.cpp\"}]},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.lambda.cpp\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.lambda.cpp\"}},\"name\":\"meta.function.definition.body.lambda.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"language_constants\":{\"match\":\"(?<!\\\\\\\\w)(?:(?:nullptr)|(?:false)|(?:NULL)|(?:true))(?!\\\\\\\\w)\",\"name\":\"constant.language.$0.cpp\"},\"line\":{\"begin\":\"^((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(#)(?:\\\\\\\\s+)?line\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.directive.line.cpp\"},\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"punctuation.definition.directive.cpp\"}},\"end\":\"(?<!\\\\\\\\\\\\\\\\)(?:(?=\\\\\\\\n)|(?<=^\\\\\\\\n|[^\\\\\\\\\\\\\\\\]\\\\\\\\n)(?=$))\",\"endCaptures\":{},\"name\":\"meta.preprocessor.line.cpp\",\"patterns\":[{\"include\":\"#string_context\"},{\"include\":\"#preprocessor_number_literal\"},{\"include\":\"#line_continuation_character\"}]},\"line_comment\":{\"begin\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\/)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.cpp\"}},\"end\":\"(?<!\\\\\\\\\\\\\\\\)(?:(?=\\\\\\\\n)|(?<=^\\\\\\\\n|[^\\\\\\\\\\\\\\\\]\\\\\\\\n)(?=$))\",\"endCaptures\":{},\"name\":\"comment.line.double-slash.cpp\",\"patterns\":[{\"include\":\"#line_continuation_character\"}]},\"line_continuation_character\":{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\n\",\"name\":\"constant.character.escape.line-continuation.cpp\"},\"macro\":{\"begin\":\"(^((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(#)(?:\\\\\\\\s+)?define\\\\\\\\b)(?:\\\\\\\\s+)?((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.define.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.definition.directive.cpp\"},\"7\":{\"name\":\"entity.name.function.preprocessor.cpp\"}},\"end\":\"(?<!\\\\\\\\\\\\\\\\)(?:(?=\\\\\\\\n)|(?<=^\\\\\\\\n|[^\\\\\\\\\\\\\\\\]\\\\\\\\n)(?=$))\",\"endCaptures\":{},\"name\":\"meta.preprocessor.macro.cpp\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.parameters.begin.preprocessor.cpp\"},\"2\":{\"name\":\"meta.function.preprocessor.parameters.cpp\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.parameter.preprocessor.cpp\"}},\"match\":\"(?<=[(,])(?:\\\\\\\\s+)?((?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)(?:\\\\\\\\s+)?\"},{\"match\":\",\",\"name\":\"punctuation.separator.parameters.cpp\"},{\"match\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"name\":\"punctuation.vararg-ellipses.variable.parameter.preprocessor.cpp\"}]},\"3\":{\"name\":\"punctuation.definition.parameters.end.preprocessor.cpp\"}},\"match\":\"\\\\\\\\G(?:\\\\\\\\s+)?(\\\\\\\\()([^\\\\\\\\(]*)(\\\\\\\\))\"},{\"include\":\"#macro_context\"},{\"include\":\"#macro_argument\"}]},\"macro_argument\":{\"match\":\"##?(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"variable.other.macro.argument.cpp\"},\"macro_context\":{\"patterns\":[{\"include\":\"source.cpp.embedded.macro\"}]},\"macro_name\":{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.name.function.preprocessor.cpp\"},\"member_access\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"3\":{\"name\":\"variable.language.this.cpp\"},\"4\":{\"name\":\"variable.other.object.access.cpp\"},\"5\":{\"name\":\"punctuation.separator.dot-access.cpp\"},\"6\":{\"name\":\"punctuation.separator.pointer-access.cpp\"},\"7\":{\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"variable.language.this.cpp\"},\"6\":{\"name\":\"variable.other.object.property.cpp\"},\"7\":{\"name\":\"punctuation.separator.dot-access.cpp\"},\"8\":{\"name\":\"punctuation.separator.pointer-access.cpp\"}},\"match\":\"(?<=(?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.|->|->\\\\\\\\*))(?:\\\\\\\\s+)?(?:((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)this(?!\\\\\\\\w))|((?:(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*|(?<=\\\\\\\\]|\\\\\\\\)))(?:\\\\\\\\s+)?))(?:((?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.))|((?:->\\\\\\\\*|->)))\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"variable.language.this.cpp\"},\"6\":{\"name\":\"variable.other.object.access.cpp\"},\"7\":{\"name\":\"punctuation.separator.dot-access.cpp\"},\"8\":{\"name\":\"punctuation.separator.pointer-access.cpp\"}},\"match\":\"(?:((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)this(?!\\\\\\\\w))|((?:(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*|(?<=\\\\\\\\]|\\\\\\\\)))(?:\\\\\\\\s+)?))(?:((?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.))|((?:->\\\\\\\\*|->)))\"},{\"include\":\"#member_access\"},{\"include\":\"#method_access\"}]},\"8\":{\"name\":\"variable.other.property.cpp\"}},\"match\":\"(?:((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)this(?!\\\\\\\\w))|((?:(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*|(?<=\\\\\\\\]|\\\\\\\\)))(?:\\\\\\\\s+)?))(?:((?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.))|((?:->\\\\\\\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?:\\\\\\\\s+)?(?:(?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.)|(?:->\\\\\\\\*|->))(?:\\\\\\\\s+)?)*)(?:\\\\\\\\s+)?(\\\\\\\\b(?!uint_least32_t[^\\\\\\\\w]|uint_least16_t[^\\\\\\\\w]|uint_least64_t[^\\\\\\\\w]|int_least32_t[^\\\\\\\\w]|int_least64_t[^\\\\\\\\w]|uint_fast32_t[^\\\\\\\\w]|uint_fast64_t[^\\\\\\\\w]|uint_least8_t[^\\\\\\\\w]|uint_fast16_t[^\\\\\\\\w]|int_least16_t[^\\\\\\\\w]|int_fast16_t[^\\\\\\\\w]|int_least8_t[^\\\\\\\\w]|uint_fast8_t[^\\\\\\\\w]|int_fast64_t[^\\\\\\\\w]|int_fast32_t[^\\\\\\\\w]|int_fast8_t[^\\\\\\\\w]|suseconds_t[^\\\\\\\\w]|useconds_t[^\\\\\\\\w]|in_addr_t[^\\\\\\\\w]|uintmax_t[^\\\\\\\\w]|uintmax_t[^\\\\\\\\w]|uintmax_t[^\\\\\\\\w]|in_port_t[^\\\\\\\\w]|uintptr_t[^\\\\\\\\w]|blksize_t[^\\\\\\\\w]|uint32_t[^\\\\\\\\w]|uint64_t[^\\\\\\\\w]|u_quad_t[^\\\\\\\\w]|intmax_t[^\\\\\\\\w]|intmax_t[^\\\\\\\\w]|unsigned[^\\\\\\\\w]|blkcnt_t[^\\\\\\\\w]|uint16_t[^\\\\\\\\w]|intptr_t[^\\\\\\\\w]|swblk_t[^\\\\\\\\w]|wchar_t[^\\\\\\\\w]|u_short[^\\\\\\\\w]|qaddr_t[^\\\\\\\\w]|caddr_t[^\\\\\\\\w]|daddr_t[^\\\\\\\\w]|fixpt_t[^\\\\\\\\w]|nlink_t[^\\\\\\\\w]|segsz_t[^\\\\\\\\w]|clock_t[^\\\\\\\\w]|ssize_t[^\\\\\\\\w]|int16_t[^\\\\\\\\w]|int32_t[^\\\\\\\\w]|int64_t[^\\\\\\\\w]|uint8_t[^\\\\\\\\w]|int8_t[^\\\\\\\\w]|mode_t[^\\\\\\\\w]|quad_t[^\\\\\\\\w]|ushort[^\\\\\\\\w]|u_long[^\\\\\\\\w]|u_char[^\\\\\\\\w]|double[^\\\\\\\\w]|signed[^\\\\\\\\w]|time_t[^\\\\\\\\w]|size_t[^\\\\\\\\w]|key_t[^\\\\\\\\w]|div_t[^\\\\\\\\w]|ino_t[^\\\\\\\\w]|uid_t[^\\\\\\\\w]|gid_t[^\\\\\\\\w]|off_t[^\\\\\\\\w]|pid_t[^\\\\\\\\w]|float[^\\\\\\\\w]|dev_t[^\\\\\\\\w]|u_int[^\\\\\\\\w]|short[^\\\\\\\\w]|bool[^\\\\\\\\w]|id_t[^\\\\\\\\w]|uint[^\\\\\\\\w]|long[^\\\\\\\\w]|char[^\\\\\\\\w]|void[^\\\\\\\\w]|auto[^\\\\\\\\w]|id_t[^\\\\\\\\w]|int[^\\\\\\\\w])(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\\\\\\\\b(?!\\\\\\\\())\"},\"memory_operators\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"3\":{\"name\":\"keyword.operator.wordlike.cpp\"},\"4\":{\"name\":\"keyword.operator.delete.array.cpp\"},\"5\":{\"name\":\"keyword.operator.delete.array.bracket.cpp\"},\"6\":{\"name\":\"keyword.operator.delete.cpp\"},\"7\":{\"name\":\"keyword.operator.new.cpp\"}},\"match\":\"((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?:(?:(delete)(?:\\\\\\\\s+)?(\\\\\\\\[\\\\\\\\])|(delete))|(new))(?!\\\\\\\\w))\"},\"method_access\":{\"begin\":\"(?:((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)this(?!\\\\\\\\w))|((?:(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*|(?<=\\\\\\\\]|\\\\\\\\)))(?:\\\\\\\\s+)?))(?:((?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.))|((?:->\\\\\\\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?:\\\\\\\\s+)?(?:(?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.)|(?:->\\\\\\\\*|->))(?:\\\\\\\\s+)?)*)(?:\\\\\\\\s+)?(~?(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)(?:\\\\\\\\s+)?(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"variable.language.this.cpp\"},\"6\":{\"name\":\"variable.other.object.access.cpp\"},\"7\":{\"name\":\"punctuation.separator.dot-access.cpp\"},\"8\":{\"name\":\"punctuation.separator.pointer-access.cpp\"},\"9\":{\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"variable.language.this.cpp\"},\"6\":{\"name\":\"variable.other.object.property.cpp\"},\"7\":{\"name\":\"punctuation.separator.dot-access.cpp\"},\"8\":{\"name\":\"punctuation.separator.pointer-access.cpp\"}},\"match\":\"(?<=(?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.|->|->\\\\\\\\*))(?:\\\\\\\\s+)?(?:((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)this(?!\\\\\\\\w))|((?:(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*|(?<=\\\\\\\\]|\\\\\\\\)))(?:\\\\\\\\s+)?))(?:((?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.))|((?:->\\\\\\\\*|->)))\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"variable.language.this.cpp\"},\"6\":{\"name\":\"variable.other.object.access.cpp\"},\"7\":{\"name\":\"punctuation.separator.dot-access.cpp\"},\"8\":{\"name\":\"punctuation.separator.pointer-access.cpp\"}},\"match\":\"(?:((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)this(?!\\\\\\\\w))|((?:(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*|(?<=\\\\\\\\]|\\\\\\\\)))(?:\\\\\\\\s+)?))(?:((?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.))|((?:->\\\\\\\\*|->)))\"},{\"include\":\"#member_access\"},{\"include\":\"#method_access\"}]},\"10\":{\"name\":\"entity.name.function.member.cpp\"},\"11\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.function.member.cpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.function.member.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"misc_keywords\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"3\":{\"name\":\"keyword.other.$3.cpp\"}},\"match\":\"((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:(?:constinit)|(?:requires)|(?:typedef)|(?:concept)|(?:export)|(?:module))(?!\\\\\\\\w))\"},\"ms_attributes\":{\"begin\":\"__declspec\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.attribute.begin.cpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.attribute.end.cpp\"}},\"name\":\"support.other.attribute.cpp\",\"patterns\":[{\"include\":\"#attributes_context\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{},\"end\":\"\\\\\\\\)\",\"endCaptures\":{},\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#string_context\"},{\"include\":\"#ever_present_context\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.other.using.directive.cpp\"},\"2\":{\"name\":\"entity.name.namespace.cpp\"}},\"match\":\"(using)\\\\\\\\s+((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))\"},{\"match\":\",\",\"name\":\"punctuation.separator.attribute.cpp\"},{\"match\":\":\",\"name\":\"punctuation.accessor.attribute.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)(?=::)\",\"name\":\"entity.name.namespace.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.other.attribute.$0.cpp\"},{\"include\":\"#number_literal\"},{\"include\":\"#ever_present_context\"}]},\"namespace_alias\":{\"captures\":{\"1\":{\"name\":\"keyword.other.namespace.alias.cpp storage.type.namespace.alias.cpp\"},\"2\":{\"name\":\"entity.name.namespace.alias.cpp\"},\"3\":{\"name\":\"keyword.operator.assignment.cpp\"},\"4\":{\"name\":\"meta.declaration.namespace.alias.value.cpp\"},\"5\":{\"patterns\":[{\"include\":\"#scope_resolution_namespace_alias_inner_generated\"}]},\"6\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp\"},\"7\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"9\":{\"name\":\"entity.name.namespace.cpp\"},\"10\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"match\":\"(?<!\\\\\\\\w)(namespace)\\\\\\\\s+((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))(?:\\\\\\\\s+)?(\\\\\\\\=)(?:\\\\\\\\s+)?(((::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<8>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*\\\\\\\\s*+)(?:\\\\\\\\s+)?((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))(?:\\\\\\\\s+)?(?:(;)|\\\\\\\\n))\",\"name\":\"meta.declaration.namespace.alias.cpp\"},\"namespace_block\":{\"begin\":\"((?<!\\\\\\\\w)namespace(?!\\\\\\\\w))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.namespace.cpp\"},\"1\":{\"name\":\"keyword.other.namespace.definition.cpp storage.type.namespace.definition.cpp\"}},\"end\":\"(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)|(?=[;>\\\\\\\\[\\\\\\\\]=]))\",\"endCaptures\":{},\"name\":\"meta.block.namespace.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.namespace.cpp\"}},\"name\":\"meta.head.namespace.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#attributes_context\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#scope_resolution_namespace_block_inner_generated\"}]},\"2\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"4\":{},\"5\":{\"name\":\"entity.name.namespace.cpp\"},\"6\":{\"name\":\"punctuation.separator.scope-resolution.namespace.block.cpp\"},\"7\":{\"name\":\"storage.modifier.inline.cpp\"}},\"match\":\"((::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<4>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*\\\\\\\\s*+)(?:\\\\\\\\s+)?((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))(?:\\\\\\\\s+)?(?:(::)(?:\\\\\\\\s+)?(inline))?\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.namespace.cpp\"}},\"name\":\"meta.body.namespace.cpp\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)\",\"endCaptures\":{},\"name\":\"meta.tail.namespace.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"noexcept_operator\":{\"begin\":\"((?<!\\\\\\\\w)noexcept(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp\"}},\"contentName\":\"meta.arguments.operator.noexcept\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"number_literal\":{\"captures\":{\"0\":{\"patterns\":[{\"begin\":\"(?=.)\",\"beginCaptures\":{},\"end\":\"$\",\"endCaptures\":{},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.hexadecimal.cpp\"},\"2\":{\"name\":\"constant.numeric.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"4\":{\"name\":\"constant.numeric.hexadecimal.cpp\"},\"5\":{\"name\":\"constant.numeric.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"6\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"7\":{\"name\":\"keyword.other.unit.exponent.hexadecimal.cpp\"},\"8\":{\"name\":\"keyword.operator.plus.exponent.hexadecimal.cpp\"},\"9\":{\"name\":\"keyword.operator.minus.exponent.hexadecimal.cpp\"},\"10\":{\"name\":\"constant.numeric.exponent.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"11\":{\"name\":\"keyword.other.suffix.literal.built-in.floating-point.cpp keyword.other.unit.suffix.floating-point.cpp\"},\"12\":{\"name\":\"keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp\"}},\"match\":\"(\\\\\\\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9a-fA-F])\\\\\\\\.|\\\\\\\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([pP])(\\\\\\\\+?)(\\\\\\\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\\\\\\\w))?((?:\\\\\\\\w(?<![0-9a-fA-FpP])\\\\\\\\w*)?$)\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"2\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"3\":{\"name\":\"constant.numeric.decimal.point.cpp\"},\"4\":{\"name\":\"constant.numeric.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"5\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"6\":{\"name\":\"keyword.other.unit.exponent.decimal.cpp\"},\"7\":{\"name\":\"keyword.operator.plus.exponent.decimal.cpp\"},\"8\":{\"name\":\"keyword.operator.minus.exponent.decimal.cpp\"},\"9\":{\"name\":\"constant.numeric.exponent.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"10\":{\"name\":\"keyword.other.suffix.literal.built-in.floating-point.cpp keyword.other.unit.suffix.floating-point.cpp\"},\"11\":{\"name\":\"keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp\"}},\"match\":\"\\\\\\\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9])\\\\\\\\.|\\\\\\\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([eE])(\\\\\\\\+?)(\\\\\\\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\\\\\\\w))?((?:\\\\\\\\w(?<![0-9eE])\\\\\\\\w*)?$)\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.binary.cpp\"},\"2\":{\"name\":\"constant.numeric.binary.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"4\":{\"name\":\"keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp\"},\"5\":{\"name\":\"keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp\"}},\"match\":\"(\\\\\\\\G0[bB])([01](?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\\\\\\\w))?((?:\\\\\\\\w(?<![0-9])\\\\\\\\w*)?$)\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.octal.cpp\"},\"2\":{\"name\":\"constant.numeric.octal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"4\":{\"name\":\"keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp\"},\"5\":{\"name\":\"keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp\"}},\"match\":\"(\\\\\\\\G0)((?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))+)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\\\\\\\w))?((?:\\\\\\\\w(?<![0-9])\\\\\\\\w*)?$)\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.hexadecimal.cpp\"},\"2\":{\"name\":\"constant.numeric.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"4\":{\"name\":\"keyword.other.unit.exponent.hexadecimal.cpp\"},\"5\":{\"name\":\"keyword.operator.plus.exponent.hexadecimal.cpp\"},\"6\":{\"name\":\"keyword.operator.minus.exponent.hexadecimal.cpp\"},\"7\":{\"name\":\"constant.numeric.exponent.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"8\":{\"name\":\"keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp\"},\"9\":{\"name\":\"keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp\"}},\"match\":\"(\\\\\\\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([pP])(\\\\\\\\+?)(\\\\\\\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\\\\\\\w))?((?:\\\\\\\\w(?<![0-9a-fA-FpP])\\\\\\\\w*)?$)\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"2\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"3\":{\"name\":\"keyword.other.unit.exponent.decimal.cpp\"},\"4\":{\"name\":\"keyword.operator.plus.exponent.decimal.cpp\"},\"5\":{\"name\":\"keyword.operator.minus.exponent.decimal.cpp\"},\"6\":{\"name\":\"constant.numeric.exponent.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"7\":{\"name\":\"keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp\"},\"8\":{\"name\":\"keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp\"}},\"match\":\"\\\\\\\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([eE])(\\\\\\\\+?)(\\\\\\\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\\\\\\\w))?((?:\\\\\\\\w(?<![0-9eE])\\\\\\\\w*)?$)\"},{\"match\":\"(?:(?:[0-9a-zA-Z_\\\\\\\\.]|')|(?<=[eEpP])[+-])+\",\"name\":\"invalid.illegal.constant.numeric.cpp\"}]}]}},\"match\":\"(?<!\\\\\\\\w)\\\\\\\\.?\\\\\\\\d(?:(?:[0-9a-zA-Z_\\\\\\\\.]|')|(?<=[eEpP])[+-])*\"},\"operator_overload\":{\"begin\":\"((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(\\\\\\\\s*+((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:((?:::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<55>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*+)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\\\\\\\\b((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<55>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)?(?![\\\\\\\\w<:.]))(((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?:::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<55>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*+)(operator)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?:::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<55>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*+)(?:(?:((?:(?:delete\\\\\\\\[\\\\\\\\])|(?:delete)|(?:new\\\\\\\\[\\\\\\\\])|(?:<=>)|(?:<<=)|(?:new)|(?:>>=)|(?:\\\\\\\\->\\\\\\\\*)|(?:\\\\\\\\/=)|(?:%=)|(?:&=)|(?:>=)|(?:\\\\\\\\|=)|(?:\\\\\\\\+\\\\\\\\+)|(?:\\\\\\\\-\\\\\\\\-)|(?:\\\\\\\\(\\\\\\\\))|(?:\\\\\\\\[\\\\\\\\])|(?:\\\\\\\\->)|(?:\\\\\\\\+\\\\\\\\+)|(?:<<)|(?:>>)|(?:\\\\\\\\-\\\\\\\\-)|(?:<=)|(?:\\\\\\\\^=)|(?:==)|(?:!=)|(?:&&)|(?:\\\\\\\\|\\\\\\\\|)|(?:\\\\\\\\+=)|(?:\\\\\\\\-=)|(?:\\\\\\\\*=)|,|\\\\\\\\+|\\\\\\\\-|!|~|\\\\\\\\*|&|\\\\\\\\*|\\\\\\\\/|%|\\\\\\\\+|\\\\\\\\-|<|>|&|\\\\\\\\^|\\\\\\\\||=))|((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)(((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?:\\\\\\\\[\\\\\\\\])?)))|(\\\\\"\\\\\")((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=\\\\\\\\<|\\\\\\\\()\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.function.definition.special.operator-overload.cpp\"},\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"meta.qualified_type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\\\\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.begin.template.call.cpp\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.end.template.call.cpp\"}},\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_context\"}]},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"6\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"12\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"13\":{\"name\":\"comment.block.cpp\"},\"14\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"15\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range\"}]},\"16\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"17\":{},\"18\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"19\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"20\":{\"name\":\"comment.block.cpp\"},\"21\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"22\":{},\"23\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"24\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"25\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"26\":{\"name\":\"comment.block.cpp\"},\"27\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"28\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"29\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"30\":{\"name\":\"comment.block.cpp\"},\"31\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"32\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"33\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"34\":{\"name\":\"comment.block.cpp\"},\"35\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"36\":{\"name\":\"storage.type.modifier.calling-convention.cpp\"},\"37\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"38\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"39\":{\"name\":\"comment.block.cpp\"},\"40\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"41\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"42\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"43\":{\"name\":\"comment.block.cpp\"},\"44\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"45\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.operator.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.name.scope-resolution.operator.cpp\"},{\"include\":\"#template_call_range\"}]},\"46\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"47\":{},\"48\":{\"name\":\"keyword.other.operator.overload.cpp\"},\"49\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"50\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"51\":{\"name\":\"comment.block.cpp\"},\"52\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"53\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.operator-overload.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.name.scope-resolution.operator-overload.cpp\"},{\"include\":\"#template_call_range\"}]},\"54\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"55\":{},\"56\":{\"name\":\"entity.name.operator.cpp\"},\"57\":{\"name\":\"entity.name.operator.type.cpp\"},\"58\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"entity.name.operator.type.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"entity.name.operator.type.reference.cpp\"}]},\"59\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"60\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"61\":{\"name\":\"comment.block.cpp\"},\"62\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"63\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"64\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"65\":{\"name\":\"comment.block.cpp\"},\"66\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"67\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"68\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"69\":{\"name\":\"comment.block.cpp\"},\"70\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"71\":{\"name\":\"entity.name.operator.type.array.cpp\"},\"72\":{\"name\":\"entity.name.operator.custom-literal.cpp\"},\"73\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"74\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"75\":{\"name\":\"comment.block.cpp\"},\"76\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"77\":{\"name\":\"entity.name.operator.custom-literal.cpp\"},\"78\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"79\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"80\":{\"name\":\"comment.block.cpp\"},\"81\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"end\":\"(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)|(?=[;>\\\\\\\\[\\\\\\\\]=]))\",\"endCaptures\":{},\"name\":\"meta.function.definition.special.operator-overload.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload.cpp\"}},\"name\":\"meta.head.function.definition.special.operator-overload.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#template_call_range\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.special.operator-overload.cpp\"}},\"contentName\":\"meta.function.definition.parameters.special.operator-overload\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.end.bracket.round.special.operator-overload.cpp\"}},\"patterns\":[{\"include\":\"#function_parameter_context\"},{\"include\":\"#evaluation_context\"}]},{\"include\":\"#qualifiers_and_specifiers_post_parameters\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.assignment.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"keyword.other.default.function.cpp\"},\"7\":{\"name\":\"keyword.other.delete.function.cpp\"}},\"match\":\"(\\\\\\\\=)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(default)|(delete))\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload.cpp\"}},\"name\":\"meta.body.function.definition.special.operator-overload.cpp\",\"patterns\":[{\"include\":\"#function_body_context\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)\",\"endCaptures\":{},\"name\":\"meta.tail.function.definition.special.operator-overload.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"operators\":{\"patterns\":[{\"begin\":\"((?<!\\\\\\\\w)sizeof(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp\"}},\"contentName\":\"meta.arguments.operator.sizeof\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"begin\":\"((?<!\\\\\\\\w)alignof(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.alignof.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.alignof.cpp\"}},\"contentName\":\"meta.arguments.operator.alignof\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.alignof.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"begin\":\"((?<!\\\\\\\\w)alignas(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.alignas.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp\"}},\"contentName\":\"meta.arguments.operator.alignas\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.alignas.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"begin\":\"((?<!\\\\\\\\w)typeid(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.typeid.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp\"}},\"contentName\":\"meta.arguments.operator.typeid\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.typeid.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"begin\":\"((?<!\\\\\\\\w)noexcept(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp\"}},\"contentName\":\"meta.arguments.operator.noexcept\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"begin\":\"(\\\\\\\\bsizeof\\\\\\\\.\\\\\\\\.\\\\\\\\.)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.sizeof.variadic.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cpp\"}},\"contentName\":\"meta.arguments.operator.sizeof.variadic\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"match\":\"--\",\"name\":\"keyword.operator.decrement.cpp\"},{\"match\":\"\\\\\\\\+\\\\\\\\+\",\"name\":\"keyword.operator.increment.cpp\"},{\"match\":\"%=|\\\\\\\\+=|-=|\\\\\\\\*=|(?<!\\\\\\\\()\\\\\\\\/=\",\"name\":\"keyword.operator.assignment.compound.cpp\"},{\"match\":\"&=|\\\\\\\\^=|<<=|>>=|\\\\\\\\|=\",\"name\":\"keyword.operator.assignment.compound.bitwise.cpp\"},{\"match\":\"<<|>>\",\"name\":\"keyword.operator.bitwise.shift.cpp\"},{\"match\":\"!=|<=|>=|==|<|>\",\"name\":\"keyword.operator.comparison.cpp\"},{\"match\":\"&&|!|\\\\\\\\|\\\\\\\\|\",\"name\":\"keyword.operator.logical.cpp\"},{\"match\":\"&|\\\\\\\\||\\\\\\\\^|~\",\"name\":\"keyword.operator.bitwise.cpp\"},{\"include\":\"#assignment_operator\"},{\"match\":\"%|\\\\\\\\*|\\\\\\\\/|-|\\\\\\\\+\",\"name\":\"keyword.operator.arithmetic.cpp\"},{\"include\":\"#ternary_operator\"}]},\"over_qualified_types\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.struct.parameter.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"4\":{\"name\":\"entity.name.type.struct.parameter.cpp\"},\"5\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"6\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"7\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"14\":{\"name\":\"variable.other.object.declare.cpp\"},\"15\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"16\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"17\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"18\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"19\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"20\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]}},\"match\":\"(\\\\\\\\bstruct)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?((?:(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))?)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:\\\\\\\\[((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\\\\\\\\]((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?=,|\\\\\\\\)|\\\\\\\\n)\"},{\"captures\":{\"1\":{\"name\":\"storage.type.enum.parameter.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"4\":{\"name\":\"entity.name.type.enum.parameter.cpp\"},\"5\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"6\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"7\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"14\":{\"name\":\"variable.other.object.declare.cpp\"},\"15\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"16\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"17\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"18\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"19\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"20\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]}},\"match\":\"(\\\\\\\\benum)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?((?:(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))?)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:\\\\\\\\[((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\\\\\\\\]((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?=,|\\\\\\\\)|\\\\\\\\n)\"},{\"captures\":{\"1\":{\"name\":\"storage.type.union.parameter.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"4\":{\"name\":\"entity.name.type.union.parameter.cpp\"},\"5\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"6\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"7\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"14\":{\"name\":\"variable.other.object.declare.cpp\"},\"15\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"16\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"17\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"18\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"19\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"20\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]}},\"match\":\"(\\\\\\\\bunion)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?((?:(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))?)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:\\\\\\\\[((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\\\\\\\\]((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?=,|\\\\\\\\)|\\\\\\\\n)\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.parameter.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"4\":{\"name\":\"entity.name.type.class.parameter.cpp\"},\"5\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"6\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"7\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"14\":{\"name\":\"variable.other.object.declare.cpp\"},\"15\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"16\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"17\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"18\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"19\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"20\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]}},\"match\":\"(\\\\\\\\bclass)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?((?:(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))?)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:\\\\\\\\[((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\\\\\\\\]((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?=,|\\\\\\\\)|\\\\\\\\n)\"}]},\"parameter\":{\"begin\":\"((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=\\\\\\\\w)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"end\":\"(?:(?=\\\\\\\\))|(,))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.delimiter.comma.cpp\"}},\"name\":\"meta.parameter.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#string_context\"},{\"include\":\"#function_pointer_parameter\"},{\"include\":\"#decltype\"},{\"include\":\"#vararg_ellipses\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#storage_types\"}]},\"2\":{\"name\":\"storage.modifier.specifier.parameter.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"5\":{\"name\":\"comment.block.cpp\"},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"name\":\"storage.type.primitive.cpp storage.type.built-in.primitive.cpp\"},\"12\":{\"name\":\"storage.type.cpp storage.type.built-in.cpp\"},\"13\":{\"name\":\"support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp\"},\"14\":{\"name\":\"support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp\"},\"15\":{\"name\":\"entity.name.type.parameter.cpp\"},\"16\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"18\":{\"name\":\"comment.block.cpp\"},\"19\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?:((?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))+)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:\\\\\\\\s*+(?<!\\\\\\\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_]\\\\\\\\w*_t))(?!\\\\\\\\w)|((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\b\\\\\\\\b(?<!\\\\\\\\Wthread_local|^thread_local|\\\\\\\\Wvolatile|^volatile|\\\\\\\\Wregister|^register|\\\\\\\\Wrestrict|^restrict|\\\\\\\\Wstatic|^static|\\\\\\\\Wextern|^extern|\\\\\\\\Wconst|^const)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=,|\\\\\\\\)|=)\"},{\"include\":\"#storage_types\"},{\"include\":\"#scope_resolution_parameter_inner_generated\"},{\"match\":\"(?:(?:struct)|(?:class)|(?:union)|(?:enum))\",\"name\":\"storage.type.$0.cpp\"},{\"begin\":\"(?<==)\",\"beginCaptures\":{},\"end\":\"(?:(?=\\\\\\\\))|(,))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.delimiter.comma.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"match\":\"\\\\\\\\=\",\"name\":\"keyword.operator.assignment.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"variable.parameter.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?<!\\\\\\\\s|\\\\\\\\(|,|:)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=\\\\\\\\)|,|\\\\\\\\[|=|\\\\\\\\n)\"},{\"include\":\"#attributes_context\"},{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.begin.bracket.square.array.type.cpp\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.square.array.type.cpp\"}},\"name\":\"meta.bracket.square.array.cpp\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\\\\\\\\b(?<!\\\\\\\\Wstruct|^struct|\\\\\\\\Wclass|^class|\\\\\\\\Wunion|^union|\\\\\\\\Wenum|^enum)\",\"name\":\"entity.name.type.parameter.cpp\"},{\"include\":\"#template_call_range\"},{\"captures\":{\"0\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"7\":{\"name\":\"comment.block.cpp\"},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*)\"},{\"include\":\"#ever_present_context\"}]},\"parameter_class\":{\"captures\":{\"1\":{\"name\":\"storage.type.class.parameter.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"4\":{\"name\":\"entity.name.type.class.parameter.cpp\"},\"5\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"6\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"7\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"14\":{\"name\":\"variable.other.object.declare.cpp\"},\"15\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"16\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"17\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"18\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"19\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"20\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]}},\"match\":\"(\\\\\\\\bclass)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?((?:(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))?)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:\\\\\\\\[((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\\\\\\\\]((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?=,|\\\\\\\\)|\\\\\\\\n)\"},\"parameter_enum\":{\"captures\":{\"1\":{\"name\":\"storage.type.enum.parameter.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"4\":{\"name\":\"entity.name.type.enum.parameter.cpp\"},\"5\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"6\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"7\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"14\":{\"name\":\"variable.other.object.declare.cpp\"},\"15\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"16\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"17\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"18\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"19\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"20\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]}},\"match\":\"(\\\\\\\\benum)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?((?:(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))?)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:\\\\\\\\[((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\\\\\\\\]((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?=,|\\\\\\\\)|\\\\\\\\n)\"},\"parameter_or_maybe_value\":{\"begin\":\"((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=\\\\\\\\w)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"end\":\"(?:(?=\\\\\\\\))|(,))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.delimiter.comma.cpp\"}},\"name\":\"meta.parameter.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#function_pointer_parameter\"},{\"include\":\"#memory_operators\"},{\"include\":\"#builtin_storage_type_initilizer\"},{\"include\":\"#curly_initializer\"},{\"include\":\"#decltype\"},{\"include\":\"#vararg_ellipses\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#storage_types\"}]},\"2\":{\"name\":\"storage.modifier.specifier.parameter.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"5\":{\"name\":\"comment.block.cpp\"},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"name\":\"storage.type.primitive.cpp storage.type.built-in.primitive.cpp\"},\"12\":{\"name\":\"storage.type.cpp storage.type.built-in.cpp\"},\"13\":{\"name\":\"support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp\"},\"14\":{\"name\":\"support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp\"},\"15\":{\"name\":\"entity.name.type.parameter.cpp\"},\"16\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"18\":{\"name\":\"comment.block.cpp\"},\"19\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?:((?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))+)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:\\\\\\\\s*+(?<!\\\\\\\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_]\\\\\\\\w*_t))(?!\\\\\\\\w)|((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\b\\\\\\\\b(?<!\\\\\\\\Wthread_local|^thread_local|\\\\\\\\Wvolatile|^volatile|\\\\\\\\Wregister|^register|\\\\\\\\Wrestrict|^restrict|\\\\\\\\Wstatic|^static|\\\\\\\\Wextern|^extern|\\\\\\\\Wconst|^const)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=,|\\\\\\\\)|=)\"},{\"include\":\"#storage_types\"},{\"include\":\"#function_call\"},{\"include\":\"#scope_resolution_parameter_inner_generated\"},{\"match\":\"(?:(?:struct)|(?:class)|(?:union)|(?:enum))\",\"name\":\"storage.type.$0.cpp\"},{\"begin\":\"(?<==)\",\"beginCaptures\":{},\"end\":\"(?:(?=\\\\\\\\))|(,))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.delimiter.comma.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"variable.parameter.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?<!\\\\\\\\s|\\\\\\\\(|,|:)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=(?:\\\\\\\\)|,|\\\\\\\\[|=|\\\\\\\\/\\\\\\\\/|(?:\\\\\\\\n|$)))\"},{\"include\":\"#attributes_context\"},{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.begin.bracket.square.array.type.cpp\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.square.array.type.cpp\"}},\"name\":\"meta.bracket.square.array.cpp\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\\\\\\\\b(?<!\\\\\\\\Wstruct|^struct|\\\\\\\\Wclass|^class|\\\\\\\\Wunion|^union|\\\\\\\\Wenum|^enum)\",\"name\":\"entity.name.type.parameter.cpp\"},{\"include\":\"#template_call_range\"},{\"captures\":{\"0\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"7\":{\"name\":\"comment.block.cpp\"},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*)\"},{\"include\":\"#evaluation_context\"},{\"include\":\"#ever_present_context\"}]},\"parameter_struct\":{\"captures\":{\"1\":{\"name\":\"storage.type.struct.parameter.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"4\":{\"name\":\"entity.name.type.struct.parameter.cpp\"},\"5\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"6\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"7\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"14\":{\"name\":\"variable.other.object.declare.cpp\"},\"15\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"16\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"17\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"18\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"19\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"20\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]}},\"match\":\"(\\\\\\\\bstruct)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?((?:(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))?)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:\\\\\\\\[((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\\\\\\\\]((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?=,|\\\\\\\\)|\\\\\\\\n)\"},\"parameter_union\":{\"captures\":{\"1\":{\"name\":\"storage.type.union.parameter.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"4\":{\"name\":\"entity.name.type.union.parameter.cpp\"},\"5\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"6\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"7\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"14\":{\"name\":\"variable.other.object.declare.cpp\"},\"15\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"16\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"17\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"18\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"19\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"20\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]}},\"match\":\"(\\\\\\\\bunion)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?((?:(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))?)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:\\\\\\\\[((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\\\\\\\\]((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?=,|\\\\\\\\)|\\\\\\\\n)\"},\"parentheses\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.cpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.cpp\"}},\"name\":\"meta.parens.cpp\",\"patterns\":[{\"include\":\"#over_qualified_types\"},{\"match\":\"(?<!:):(?!:)\",\"name\":\"punctuation.separator.colon.range-based.cpp\"},{\"include\":\"#evaluation_context\"}]},\"pragma\":{\"begin\":\"^((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(#)(?:\\\\\\\\s+)?pragma\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.directive.pragma.cpp\"},\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"punctuation.definition.directive.cpp\"}},\"end\":\"(?<!\\\\\\\\\\\\\\\\)(?:(?=\\\\\\\\n)|(?<=^\\\\\\\\n|[^\\\\\\\\\\\\\\\\]\\\\\\\\n)(?=$))\",\"endCaptures\":{},\"name\":\"meta.preprocessor.pragma.cpp\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#string_context\"},{\"match\":\"[a-zA-Z_$][\\\\\\\\w\\\\\\\\-$]*\",\"name\":\"entity.other.attribute-name.pragma.preprocessor.cpp\"},{\"include\":\"#preprocessor_number_literal\"},{\"include\":\"#line_continuation_character\"}]},\"pragma_mark\":{\"captures\":{\"1\":{\"name\":\"keyword.control.directive.pragma.pragma-mark.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"4\":{\"name\":\"punctuation.definition.directive.cpp\"},\"5\":{\"name\":\"entity.name.tag.pragma-mark.cpp\"}},\"match\":\"(^((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(#)(?:\\\\\\\\s+)?pragma\\\\\\\\s+mark)\\\\\\\\s+(.*)\",\"name\":\"meta.preprocessor.pragma.cpp\"},\"predefined_macros\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.other.preprocessor.macro.predefined.$1.cpp\"}},\"match\":\"\\\\\\\\b(__cplusplus|__DATE__|__FILE__|__LINE__|__STDC__|__STDC_HOSTED__|__STDC_NO_COMPLEX__|__STDC_VERSION__|__STDCPP_THREADS__|__TIME__|NDEBUG|__OBJC__|__ASSEMBLER__|__ATOM__|__AVX__|__AVX2__|_CHAR_UNSIGNED|__CLR_VER|_CONTROL_FLOW_GUARD|__COUNTER__|__cplusplus_cli|__cplusplus_winrt|_CPPRTTI|_CPPUNWIND|_DEBUG|_DLL|__FUNCDNAME__|__FUNCSIG__|__FUNCTION__|_INTEGRAL_MAX_BITS|__INTELLISENSE__|_ISO_VOLATILE|_KERNEL_MODE|_M_AMD64|_M_ARM|_M_ARM_ARMV7VE|_M_ARM_FP|_M_ARM64|_M_CEE|_M_CEE_PURE|_M_CEE_SAFE|_M_FP_EXCEPT|_M_FP_FAST|_M_FP_PRECISE|_M_FP_STRICT|_M_IX86|_M_IX86_FP|_M_X64|_MANAGED|_MSC_BUILD|_MSC_EXTENSIONS|_MSC_FULL_VER|_MSC_VER|_MSVC_LANG|__MSVC_RUNTIME_CHECKS|_MT|_NATIVE_WCHAR_T_DEFINED|_OPENMP|_PREFAST|__TIMESTAMP__|_VC_NO_DEFAULTLIB|_WCHAR_T_DEFINED|_WIN32|_WIN64|_WINRT_DLL|_ATL_VER|_MFC_VER|__GFORTRAN__|__GNUC__|__GNUC_MINOR__|__GNUC_PATCHLEVEL__|__GNUG__|__STRICT_ANSI__|__BASE_FILE__|__INCLUDE_LEVEL__|__ELF__|__VERSION__|__OPTIMIZE__|__OPTIMIZE_SIZE__|__NO_INLINE__|__GNUC_STDC_INLINE__|__CHAR_UNSIGNED__|__WCHAR_UNSIGNED__|__REGISTER_PREFIX__|__REGISTER_PREFIX__|__SIZE_TYPE__|__PTRDIFF_TYPE__|__WCHAR_TYPE__|__WINT_TYPE__|__INTMAX_TYPE__|__UINTMAX_TYPE__|__SIG_ATOMIC_TYPE__|__INT8_TYPE__|__INT16_TYPE__|__INT32_TYPE__|__INT64_TYPE__|__UINT8_TYPE__|__UINT16_TYPE__|__UINT32_TYPE__|__UINT64_TYPE__|__INT_LEAST8_TYPE__|__INT_LEAST16_TYPE__|__INT_LEAST32_TYPE__|__INT_LEAST64_TYPE__|__UINT_LEAST8_TYPE__|__UINT_LEAST16_TYPE__|__UINT_LEAST32_TYPE__|__UINT_LEAST64_TYPE__|__INT_FAST8_TYPE__|__INT_FAST16_TYPE__|__INT_FAST32_TYPE__|__INT_FAST64_TYPE__|__UINT_FAST8_TYPE__|__UINT_FAST16_TYPE__|__UINT_FAST32_TYPE__|__UINT_FAST64_TYPE__|__INTPTR_TYPE__|__UINTPTR_TYPE__|__CHAR_BIT__|__SCHAR_MAX__|__WCHAR_MAX__|__SHRT_MAX__|__INT_MAX__|__LONG_MAX__|__LONG_LONG_MAX__|__WINT_MAX__|__SIZE_MAX__|__PTRDIFF_MAX__|__INTMAX_MAX__|__UINTMAX_MAX__|__SIG_ATOMIC_MAX__|__INT8_MAX__|__INT16_MAX__|__INT32_MAX__|__INT64_MAX__|__UINT8_MAX__|__UINT16_MAX__|__UINT32_MAX__|__UINT64_MAX__|__INT_LEAST8_MAX__|__INT_LEAST16_MAX__|__INT_LEAST32_MAX__|__INT_LEAST64_MAX__|__UINT_LEAST8_MAX__|__UINT_LEAST16_MAX__|__UINT_LEAST32_MAX__|__UINT_LEAST64_MAX__|__INT_FAST8_MAX__|__INT_FAST16_MAX__|__INT_FAST32_MAX__|__INT_FAST64_MAX__|__UINT_FAST8_MAX__|__UINT_FAST16_MAX__|__UINT_FAST32_MAX__|__UINT_FAST64_MAX__|__INTPTR_MAX__|__UINTPTR_MAX__|__WCHAR_MIN__|__WINT_MIN__|__SIG_ATOMIC_MIN__|__SCHAR_WIDTH__|__SHRT_WIDTH__|__INT_WIDTH__|__LONG_WIDTH__|__LONG_LONG_WIDTH__|__PTRDIFF_WIDTH__|__SIG_ATOMIC_WIDTH__|__SIZE_WIDTH__|__WCHAR_WIDTH__|__WINT_WIDTH__|__INT_LEAST8_WIDTH__|__INT_LEAST16_WIDTH__|__INT_LEAST32_WIDTH__|__INT_LEAST64_WIDTH__|__INT_FAST8_WIDTH__|__INT_FAST16_WIDTH__|__INT_FAST32_WIDTH__|__INT_FAST64_WIDTH__|__INTPTR_WIDTH__|__INTMAX_WIDTH__|__SIZEOF_INT__|__SIZEOF_LONG__|__SIZEOF_LONG_LONG__|__SIZEOF_SHORT__|__SIZEOF_POINTER__|__SIZEOF_FLOAT__|__SIZEOF_DOUBLE__|__SIZEOF_LONG_DOUBLE__|__SIZEOF_SIZE_T__|__SIZEOF_WCHAR_T__|__SIZEOF_WINT_T__|__SIZEOF_PTRDIFF_T__|__BYTE_ORDER__|__ORDER_LITTLE_ENDIAN__|__ORDER_BIG_ENDIAN__|__ORDER_PDP_ENDIAN__|__FLOAT_WORD_ORDER__|__DEPRECATED|__EXCEPTIONS|__GXX_RTTI|__USING_SJLJ_EXCEPTIONS__|__GXX_EXPERIMENTAL_CXX0X__|__GXX_WEAK__|__NEXT_RUNTIME__|__LP64__|_LP64|__SSP__|__SSP_ALL__|__SSP_STRONG__|__SSP_EXPLICIT__|__SANITIZE_ADDRESS__|__SANITIZE_THREAD__|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16|__HAVE_SPECULATION_SAFE_VALUE|__GCC_HAVE_DWARF2_CFI_ASM|__FP_FAST_FMA|__FP_FAST_FMAF|__FP_FAST_FMAL|__FP_FAST_FMAF16|__FP_FAST_FMAF32|__FP_FAST_FMAF64|__FP_FAST_FMAF128|__FP_FAST_FMAF32X|__FP_FAST_FMAF64X|__FP_FAST_FMAF128X|__GCC_IEC_559|__GCC_IEC_559_COMPLEX|__NO_MATH_ERRNO__|__has_builtin|__has_feature|__has_extension|__has_cpp_attribute|__has_c_attribute|__has_attribute|__has_declspec_attribute|__is_identifier|__has_include|__has_include_next|__has_warning|__BASE_FILE__|__FILE_NAME__|__clang__|__clang_major__|__clang_minor__|__clang_patchlevel__|__clang_version__|__fp16|_Float16)\\\\\\\\b\"},{\"match\":\"\\\\\\\\b__([A-Z_]+)__\\\\\\\\b\",\"name\":\"entity.name.other.preprocessor.macro.predefined.probably.$1.cpp\"}]},\"preprocessor_conditional_context\":{\"patterns\":[{\"include\":\"#preprocessor_conditional_defined\"},{\"include\":\"#comments\"},{\"include\":\"#language_constants\"},{\"include\":\"#string_context\"},{\"include\":\"#d9bc4796b0b_preprocessor_number_literal\"},{\"include\":\"#operators\"},{\"include\":\"#predefined_macros\"},{\"include\":\"#macro_name\"},{\"include\":\"#line_continuation_character\"}]},\"preprocessor_conditional_defined\":{\"begin\":\"((?<!\\\\\\\\w)defined(?!\\\\\\\\w))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.conditional.defined.cpp\"},\"2\":{\"name\":\"punctuation.section.parens.control.defined.cpp\"}},\"end\":\"(?:\\\\\\\\)|(?<!\\\\\\\\\\\\\\\\)(?:(?=\\\\\\\\n)|(?<=^\\\\\\\\n|[^\\\\\\\\\\\\\\\\]\\\\\\\\n)(?=$)))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.control.defined.cpp\"}},\"patterns\":[{\"include\":\"#macro_name\"}]},\"preprocessor_conditional_parentheses\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.cpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.cpp\"}},\"name\":\"meta.parens.preprocessor.conditional.cpp\"},\"preprocessor_conditional_range\":{\"begin\":\"^((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(#)(?:\\\\\\\\s+)?((?:(?:ifndef|ifdef)|if))\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.directive.conditional.$6.cpp\"},\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"punctuation.definition.directive.cpp\"},\"6\":{}},\"contentName\":\"meta.preprocessor.conditional\",\"end\":\"(?<!\\\\\\\\\\\\\\\\)(?:(?=\\\\\\\\n)|(?<=^\\\\\\\\n|[^\\\\\\\\\\\\\\\\]\\\\\\\\n)(?=$))\",\"endCaptures\":{},\"patterns\":[{\"include\":\"#preprocessor_conditional_context\"}]},\"preprocessor_conditional_standalone\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"3\":{\"name\":\"punctuation.definition.directive.cpp\"}},\"match\":\"^((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(#)(?:\\\\\\\\s+)?((?<!\\\\\\\\w)(?:endif|else|elif)(?!\\\\\\\\w))\",\"name\":\"keyword.control.directive.$4.cpp\"},\"preprocessor_context\":{\"patterns\":[{\"include\":\"#pragma_mark\"},{\"include\":\"#pragma\"},{\"include\":\"#include\"},{\"include\":\"#line\"},{\"include\":\"#diagnostic\"},{\"include\":\"#undef\"},{\"include\":\"#preprocessor_conditional_range\"},{\"include\":\"#single_line_macro\"},{\"include\":\"#macro\"},{\"include\":\"#preprocessor_conditional_standalone\"},{\"include\":\"#macro_argument\"}]},\"qualified_type\":{\"captures\":{\"0\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\\\\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.begin.template.call.cpp\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.end.template.call.cpp\"}},\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_context\"}]},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"1\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"4\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"5\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"6\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range\"}]},\"7\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"9\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"10\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]}},\"match\":\"\\\\\\\\s*+((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))?((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:((?:::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<11>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*+)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\\\\\\\\b((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<11>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)?(?![\\\\\\\\w<:.])\",\"name\":\"meta.qualified_type.cpp\"},\"qualifiers_and_specifiers_post_parameters\":{\"captures\":{\"1\":{\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"storage.modifier.specifier.functional.post-parameters.$5.cpp\"}},\"match\":\"((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:(?:override)|(?:volatile)|(?:noexcept)|(?:final)|(?:const))(?!\\\\\\\\w))\"}]}},\"match\":\"((?:(?:(?:(?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)(?<!\\\\\\\\w)(?:(?:override)|(?:volatile)|(?:noexcept)|(?:final)|(?:const))(?!\\\\\\\\w))+)(?=\\\\\\\\s*(?:\\\\\\\\{|;|\\\\\\\\n|\\\\\\\\r|=))\"},\"scope_resolution\":{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#scope_resolution_inner_generated\"}]},\"1\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#template_call_range\"}]}},\"match\":\"(::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<3>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*\\\\\\\\s*+\"},\"scope_resolution_function_call\":{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#scope_resolution_function_call_inner_generated\"}]},\"1\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#template_call_range\"}]}},\"match\":\"(::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<3>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*\\\\\\\\s*+\"},\"scope_resolution_function_call_inner_generated\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#scope_resolution_function_call_inner_generated\"}]},\"2\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"4\":{},\"5\":{\"name\":\"entity.name.scope-resolution.function.call.cpp\"},\"6\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range\"}]},\"7\":{},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp\"}},\"match\":\"((::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<7>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*\\\\\\\\s*+)((?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/)))|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<7>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?(::)\"},\"scope_resolution_function_definition\":{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#scope_resolution_function_definition_inner_generated\"}]},\"1\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#template_call_range\"}]}},\"match\":\"(::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<3>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*\\\\\\\\s*+\"},\"scope_resolution_function_definition_inner_generated\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#scope_resolution_function_definition_inner_generated\"}]},\"2\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"4\":{},\"5\":{\"name\":\"entity.name.scope-resolution.function.definition.cpp\"},\"6\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range\"}]},\"7\":{},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp\"}},\"match\":\"((::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<7>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*\\\\\\\\s*+)((?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/)))|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<7>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?(::)\"},\"scope_resolution_function_definition_operator_overload\":{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#scope_resolution_function_definition_operator_overload_inner_generated\"}]},\"1\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#template_call_range\"}]}},\"match\":\"(::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<3>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*\\\\\\\\s*+\"},\"scope_resolution_function_definition_operator_overload_inner_generated\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#scope_resolution_function_definition_operator_overload_inner_generated\"}]},\"2\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"4\":{},\"5\":{\"name\":\"entity.name.scope-resolution.function.definition.operator-overload.cpp\"},\"6\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range\"}]},\"7\":{},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp\"}},\"match\":\"((::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<7>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*\\\\\\\\s*+)((?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/)))|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<7>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?(::)\"},\"scope_resolution_inner_generated\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#scope_resolution_inner_generated\"}]},\"2\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"4\":{},\"5\":{\"name\":\"entity.name.scope-resolution.cpp\"},\"6\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range\"}]},\"7\":{},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"}},\"match\":\"((::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<7>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*\\\\\\\\s*+)((?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/)))|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<7>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?(::)\"},\"scope_resolution_namespace_alias\":{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#scope_resolution_namespace_alias_inner_generated\"}]},\"1\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#template_call_range\"}]}},\"match\":\"(::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<3>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*\\\\\\\\s*+\"},\"scope_resolution_namespace_alias_inner_generated\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#scope_resolution_namespace_alias_inner_generated\"}]},\"2\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"4\":{},\"5\":{\"name\":\"entity.name.scope-resolution.namespace.alias.cpp\"},\"6\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range\"}]},\"7\":{},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp\"}},\"match\":\"((::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<7>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*\\\\\\\\s*+)((?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/)))|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<7>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?(::)\"},\"scope_resolution_namespace_block\":{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#scope_resolution_namespace_block_inner_generated\"}]},\"1\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#template_call_range\"}]}},\"match\":\"(::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<3>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*\\\\\\\\s*+\"},\"scope_resolution_namespace_block_inner_generated\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#scope_resolution_namespace_block_inner_generated\"}]},\"2\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"4\":{},\"5\":{\"name\":\"entity.name.scope-resolution.namespace.block.cpp\"},\"6\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range\"}]},\"7\":{},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp\"}},\"match\":\"((::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<7>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*\\\\\\\\s*+)((?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/)))|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<7>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?(::)\"},\"scope_resolution_namespace_using\":{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#scope_resolution_namespace_using_inner_generated\"}]},\"1\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#template_call_range\"}]}},\"match\":\"(::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<3>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*\\\\\\\\s*+\"},\"scope_resolution_namespace_using_inner_generated\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#scope_resolution_namespace_using_inner_generated\"}]},\"2\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"4\":{},\"5\":{\"name\":\"entity.name.scope-resolution.namespace.using.cpp\"},\"6\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range\"}]},\"7\":{},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp\"}},\"match\":\"((::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<7>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*\\\\\\\\s*+)((?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/)))|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<7>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?(::)\"},\"scope_resolution_parameter\":{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#scope_resolution_parameter_inner_generated\"}]},\"1\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#template_call_range\"}]}},\"match\":\"(::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<3>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*\\\\\\\\s*+\"},\"scope_resolution_parameter_inner_generated\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#scope_resolution_parameter_inner_generated\"}]},\"2\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"4\":{},\"5\":{\"name\":\"entity.name.scope-resolution.parameter.cpp\"},\"6\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range\"}]},\"7\":{},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp\"}},\"match\":\"((::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<7>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*\\\\\\\\s*+)((?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/)))|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<7>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?(::)\"},\"scope_resolution_template_call\":{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#scope_resolution_template_call_inner_generated\"}]},\"1\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#template_call_range\"}]}},\"match\":\"(::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<3>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*\\\\\\\\s*+\"},\"scope_resolution_template_call_inner_generated\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#scope_resolution_template_call_inner_generated\"}]},\"2\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"4\":{},\"5\":{\"name\":\"entity.name.scope-resolution.template.call.cpp\"},\"6\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range\"}]},\"7\":{},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp\"}},\"match\":\"((::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<7>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*\\\\\\\\s*+)((?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/)))|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<7>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?(::)\"},\"scope_resolution_template_definition\":{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#scope_resolution_template_definition_inner_generated\"}]},\"1\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#template_call_range\"}]}},\"match\":\"(::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<3>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*\\\\\\\\s*+\"},\"scope_resolution_template_definition_inner_generated\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#scope_resolution_template_definition_inner_generated\"}]},\"2\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"4\":{},\"5\":{\"name\":\"entity.name.scope-resolution.template.definition.cpp\"},\"6\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range\"}]},\"7\":{},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp\"}},\"match\":\"((::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<7>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*\\\\\\\\s*+)((?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/)))|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<7>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?(::)\"},\"semicolon\":{\"match\":\";\",\"name\":\"punctuation.terminator.statement.cpp\"},\"simple_type\":{\"captures\":{\"1\":{\"name\":\"meta.qualified_type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\\\\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.begin.template.call.cpp\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.end.template.call.cpp\"}},\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_context\"}]},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"2\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"3\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"4\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"5\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"6\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"7\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range\"}]},\"8\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"9\":{},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"12\":{},\"13\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"14\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"15\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"16\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"17\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]}},\"match\":\"(\\\\\\\\s*+((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))?((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:((?:::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<12>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*+)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\\\\\\\\b((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<12>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)?(?![\\\\\\\\w<:.]))(((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))?\"},\"single_line_macro\":{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#macro\"},{\"include\":\"#comments\"}]},\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]}},\"match\":\"^((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))#define.*(?<![\\\\\\\\\\\\\\\\])(?:\\\\\\\\n|$)\"},\"sizeof_operator\":{\"begin\":\"((?<!\\\\\\\\w)sizeof(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp\"}},\"contentName\":\"meta.arguments.operator.sizeof\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"sizeof_variadic_operator\":{\"begin\":\"(\\\\\\\\bsizeof\\\\\\\\.\\\\\\\\.\\\\\\\\.)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.sizeof.variadic.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cpp\"}},\"contentName\":\"meta.arguments.operator.sizeof.variadic\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"square_brackets\":{\"begin\":\"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\\\\\\\]\\\\\\\\)]))?(\\\\\\\\[)(?!\\\\\\\\])\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.object\"},\"2\":{\"name\":\"punctuation.definition.begin.bracket.square\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.square\"}},\"name\":\"meta.bracket.square.access\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"standard_declares\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.struct.declare.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"4\":{\"name\":\"entity.name.type.struct.cpp\"},\"5\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"12\":{\"name\":\"variable.other.object.declare.cpp\"},\"13\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"14\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]}},\"match\":\"((?<!\\\\\\\\w)struct(?!\\\\\\\\w))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))(((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))?((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\\\\\\\\b(?!override\\\\\\\\W|override\\\\\\\\$|final\\\\\\\\W|final\\\\\\\\$)((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=\\\\\\\\S)(?![:{a-zA-Z])\"},{\"captures\":{\"1\":{\"name\":\"storage.type.union.declare.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"4\":{\"name\":\"entity.name.type.union.cpp\"},\"5\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"12\":{\"name\":\"variable.other.object.declare.cpp\"},\"13\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"14\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]}},\"match\":\"((?<!\\\\\\\\w)union(?!\\\\\\\\w))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))(((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))?((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\\\\\\\\b(?!override\\\\\\\\W|override\\\\\\\\$|final\\\\\\\\W|final\\\\\\\\$)((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=\\\\\\\\S)(?![:{a-zA-Z])\"},{\"captures\":{\"1\":{\"name\":\"storage.type.enum.declare.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"4\":{\"name\":\"entity.name.type.enum.cpp\"},\"5\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"12\":{\"name\":\"variable.other.object.declare.cpp\"},\"13\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"14\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]}},\"match\":\"((?<!\\\\\\\\w)enum(?!\\\\\\\\w))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))(((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))?((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\\\\\\\\b(?!override\\\\\\\\W|override\\\\\\\\$|final\\\\\\\\W|final\\\\\\\\$)((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=\\\\\\\\S)(?![:{a-zA-Z])\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.declare.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"4\":{\"name\":\"entity.name.type.class.cpp\"},\"5\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"12\":{\"name\":\"variable.other.object.declare.cpp\"},\"13\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"14\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]}},\"match\":\"((?<!\\\\\\\\w)class(?!\\\\\\\\w))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))(((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))?((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\\\\\\\\b(?!override\\\\\\\\W|override\\\\\\\\$|final\\\\\\\\W|final\\\\\\\\$)((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=\\\\\\\\S)(?![:{a-zA-Z])\"}]},\"static_assert\":{\"begin\":\"((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)static_assert|_Static_assert(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"keyword.other.static_assert.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.static_assert.cpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.static_assert.cpp\"}},\"patterns\":[{\"begin\":\"(,)(?:\\\\\\\\s+)?(?=(?:L|u8|u|U(?:\\\\\\\\s+)?\\\\\\\\\\\\\")?)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.delimiter.comma.cpp\"}},\"end\":\"(?=\\\\\\\\))\",\"endCaptures\":{},\"name\":\"meta.static_assert.message.cpp\",\"patterns\":[{\"include\":\"#string_context\"}]},{\"include\":\"#evaluation_context\"}]},\"std_space\":{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"1\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]}},\"match\":\"(?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)\"},\"storage_specifiers\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"3\":{\"name\":\"storage.modifier.specifier.$3.cpp\"}},\"match\":\"((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const))(?!\\\\\\\\w))\"},\"storage_types\":{\"patterns\":[{\"include\":\"#storage_specifiers\"},{\"include\":\"#inline_builtin_storage_type\"},{\"include\":\"#decltype\"},{\"include\":\"#typename\"}]},\"string_context\":{\"patterns\":[{\"begin\":\"((?:u|u8|U|L)?)\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cpp\"},\"1\":{\"name\":\"meta.encoding.cpp\"}},\"end\":\"(\\\\\")(?:((?:[a-zA-Z]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)|(_(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*))?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.cpp\"},\"2\":{\"name\":\"keyword.other.suffix.literal.user-defined.reserved.string.cpp\"},\"3\":{\"name\":\"keyword.other.suffix.literal.user-defined.string.cpp\"}},\"name\":\"string.quoted.double.cpp\",\"patterns\":[{\"match\":\"(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8})\",\"name\":\"constant.character.escape.cpp\"},{\"match\":\"\\\\\\\\\\\\\\\\['\\\\\"?\\\\\\\\\\\\\\\\abfnrtv]\",\"name\":\"constant.character.escape.cpp\"},{\"match\":\"\\\\\\\\\\\\\\\\[0-7]{1,3}\",\"name\":\"constant.character.escape.cpp\"},{\"captures\":{\"1\":{\"name\":\"constant.character.escape.cpp\"},\"2\":{\"name\":\"invalid.illegal.unknown-escape.cpp\"}},\"match\":\"(?:(\\\\\\\\\\\\\\\\x0*[0-9a-fA-F]{2}(?![0-9a-fA-F]))|((?:\\\\\\\\\\\\\\\\x[0-9a-fA-F]*|\\\\\\\\\\\\\\\\x)))\"},{\"include\":\"#string_escapes_context_c\"}]},{\"begin\":\"(?<![0-9A-Fa-f])((?:u|u8|U|L)?)'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cpp\"},\"1\":{\"name\":\"meta.encoding.cpp\"}},\"end\":\"(')(?:((?:[a-zA-Z]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)|(_(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*))?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.cpp\"},\"2\":{\"name\":\"keyword.other.suffix.literal.user-defined.reserved.character.cpp\"},\"3\":{\"name\":\"keyword.other.suffix.literal.user-defined.character.cpp\"}},\"name\":\"string.quoted.single.cpp\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.character.escape.cpp\"},\"2\":{\"name\":\"invalid.illegal.unknown-escape.cpp\"}},\"match\":\"(?:(\\\\\\\\\\\\\\\\x0*[0-9a-fA-F]{2}(?![0-9a-fA-F]))|((?:\\\\\\\\\\\\\\\\x[0-9a-fA-F]*|\\\\\\\\\\\\\\\\x)))\"},{\"include\":\"#string_escapes_context_c\"},{\"include\":\"#line_continuation_character\"}]},{\"begin\":\"((?:[uUL]8?)?R)\\\\\\\\\\\\\"(?:(?:_r|re)|regex)\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cpp\"},\"1\":{\"name\":\"meta.encoding.cpp\"}},\"end\":\"\\\\\\\\)(?:(?:_r|re)|regex)\\\\\\\\\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cpp\"}},\"name\":\"string.quoted.double.raw.regex.cpp\",\"patterns\":[{\"include\":\"source.regexp.python\"}]},{\"begin\":\"((?:[uUL]8?)?R)\\\\\\\\\\\\\"(?:glsl|GLSL)\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cpp\"},\"1\":{\"name\":\"meta.encoding.cpp\"}},\"end\":\"\\\\\\\\)(?:glsl|GLSL)\\\\\\\\\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cpp\"}},\"name\":\"meta.string.quoted.double.raw.glsl.cpp\",\"patterns\":[{\"include\":\"source.glsl\"}]},{\"begin\":\"((?:[uUL]8?)?R)\\\\\\\\\\\\\"(?:[pP]?(?:sql|SQL)|d[dm]l)\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cpp\"},\"1\":{\"name\":\"meta.encoding.cpp\"}},\"end\":\"\\\\\\\\)(?:[pP]?(?:sql|SQL)|d[dm]l)\\\\\\\\\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cpp\"}},\"name\":\"meta.string.quoted.double.raw.sql.cpp\",\"patterns\":[{\"include\":\"source.sql\"}]},{\"begin\":\"((?:u|u8|U|L)?R)\\\\\"(?:([^ ()\\\\\\\\\\\\\\\\\\\\\\\\t]{0,16})|([^ ()\\\\\\\\\\\\\\\\\\\\\\\\t]*))\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin\"},\"1\":{\"name\":\"meta.encoding\"},\"3\":{\"name\":\"invalid.illegal.delimiter-too-long\"}},\"end\":\"(\\\\\\\\)\\\\\\\\2(\\\\\\\\3)\\\\\")(?:((?:[a-zA-Z]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)|(_(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*))?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end\"},\"2\":{\"name\":\"invalid.illegal.delimiter-too-long\"},\"3\":{\"name\":\"keyword.other.suffix.literal.user-defined.reserved.string.cpp\"},\"4\":{\"name\":\"keyword.other.suffix.literal.user-defined.string.cpp\"}},\"name\":\"string.quoted.double.raw\"}]},\"string_escapes_context_c\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(\\\\\\\\\\\\\\\\|[abefnprtv'\\\\\"?]|[0-3][0-7]{,2}|[4-7]\\\\\\\\d?|x[a-fA-F0-9]{,2}|u[a-fA-F0-9]{,4}|U[a-fA-F0-9]{,8})\",\"name\":\"constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"invalid.illegal.unknown-escape\"},{\"match\":\"(?!%')(?!%\\\\\")%(\\\\\\\\d+\\\\\\\\$)?[#0\\\\\\\\- +']*[,;:_]?((-?\\\\\\\\d+)|\\\\\\\\*(-?\\\\\\\\d+\\\\\\\\$)?)?(\\\\\\\\.((-?\\\\\\\\d+)|\\\\\\\\*(-?\\\\\\\\d+\\\\\\\\$)?)?)?(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)?[diouxXDOUeEfFgGaACcSspn%]\",\"name\":\"constant.other.placeholder\"}]},\"struct_block\":{\"begin\":\"((?<!\\\\\\\\w)struct(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?={)|(?:((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?((?:(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*+)?(?:((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(:(?!:)))?)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.struct.cpp\"},\"1\":{\"name\":\"storage.type.$1.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.modifier.final.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?<!\\\\\\\\w)final(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.struct.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"storage.type.modifier.final.cpp\"},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:((?<!\\\\\\\\w)final(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?=:|{|$)\"},{\"match\":\"DLLEXPORT\",\"name\":\"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.other.preprocessor.macro.predefined.probably.$0.cpp\"}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"14\":{\"name\":\"comment.block.cpp\"},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"16\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"18\":{\"name\":\"comment.block.cpp\"},\"19\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"20\":{\"name\":\"punctuation.separator.colon.inheritance.cpp\"}},\"end\":\"(?:(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)(?:\\\\\\\\s+)?(;)|(;))|(?=[;>\\\\\\\\[\\\\\\\\]=]))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.cpp\"},\"2\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"name\":\"meta.block.struct.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.struct.cpp\"}},\"name\":\"meta.head.struct.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#inheritance_context\"},{\"include\":\"#template_call_range\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.struct.cpp\"}},\"name\":\"meta.body.struct.cpp\",\"patterns\":[{\"include\":\"#function_pointer\"},{\"include\":\"#static_assert\"},{\"include\":\"#constructor_inline\"},{\"include\":\"#destructor_inline\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)\",\"endCaptures\":{},\"name\":\"meta.tail.struct.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"struct_declare\":{\"captures\":{\"1\":{\"name\":\"storage.type.struct.declare.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"4\":{\"name\":\"entity.name.type.struct.cpp\"},\"5\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"12\":{\"name\":\"variable.other.object.declare.cpp\"},\"13\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"14\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]}},\"match\":\"((?<!\\\\\\\\w)struct(?!\\\\\\\\w))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))(((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))?((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\\\\\\\\b(?!override\\\\\\\\W|override\\\\\\\\$|final\\\\\\\\W|final\\\\\\\\$)((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=\\\\\\\\S)(?![:{a-zA-Z])\"},\"switch_conditional_parentheses\":{\"begin\":\"((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"punctuation.section.parens.begin.bracket.round.conditional.switch.cpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.conditional.switch.cpp\"}},\"name\":\"meta.conditional.switch.cpp\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"switch_statement\":{\"begin\":\"((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)switch(?!\\\\\\\\w))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.switch.cpp\"},\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"keyword.control.switch.cpp\"}},\"end\":\"(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)|(?=[;>\\\\\\\\[\\\\\\\\]=]))\",\"endCaptures\":{},\"name\":\"meta.block.switch.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.switch.cpp\"}},\"name\":\"meta.head.switch.cpp\",\"patterns\":[{\"include\":\"#switch_conditional_parentheses\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.switch.cpp\"}},\"name\":\"meta.body.switch.cpp\",\"patterns\":[{\"include\":\"#default_statement\"},{\"include\":\"#case_statement\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)\",\"endCaptures\":{},\"name\":\"meta.tail.switch.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"template_argument_defaulted\":{\"captures\":{\"1\":{\"name\":\"storage.type.template.argument.$1.cpp\"},\"2\":{\"name\":\"entity.name.type.template.cpp\"},\"3\":{\"name\":\"keyword.operator.assignment.cpp\"}},\"match\":\"(?<=<|,)(?:\\\\\\\\s+)?((?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)\\\\\\\\s+((?:(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)?)(?:\\\\\\\\s+)?(\\\\\\\\=)\"},\"template_call_context\":{\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#template_call_range\"},{\"include\":\"#storage_types\"},{\"include\":\"#language_constants\"},{\"include\":\"#scope_resolution_template_call_inner_generated\"},{\"include\":\"#operators\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma_in_template_argument\"},{\"include\":\"#qualified_type\"}]},\"template_call_innards\":{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?<!<)<(?!<)(?:(?:(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/)))|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<1>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+\",\"name\":\"meta.template.call.cpp\"},\"template_call_range\":{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.begin.template.call.cpp\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.end.template.call.cpp\"}},\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_context\"}]},\"template_definition\":{\"begin\":\"(?<!\\\\\\\\w)(template)(?:\\\\\\\\s+)?(<)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.template.cpp\"},\"2\":{\"name\":\"punctuation.section.angle-brackets.begin.template.definition.cpp\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.end.template.definition.cpp\"}},\"name\":\"meta.template.definition.cpp\",\"patterns\":[{\"begin\":\"(?<=\\\\\\\\w)(?:\\\\\\\\s+)?<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.begin.template.call.cpp\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.end.template.call.cpp\"}},\"patterns\":[{\"include\":\"#template_call_context\"}]},{\"include\":\"#template_definition_context\"}]},\"template_definition_argument\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"3\":{\"name\":\"storage.type.template.argument.$3.cpp\"},\"4\":{\"patterns\":[{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"storage.type.template.argument.$0.cpp\"}]},\"5\":{\"name\":\"entity.name.type.template.cpp\"},\"6\":{\"name\":\"storage.type.template.argument.$6.cpp\"},\"7\":{\"name\":\"punctuation.vararg-ellipses.template.definition.cpp\"},\"8\":{\"name\":\"entity.name.type.template.cpp\"},\"9\":{\"name\":\"storage.type.template.cpp\"},\"10\":{\"name\":\"punctuation.section.angle-brackets.begin.template.definition.cpp\"},\"11\":{\"name\":\"storage.type.template.argument.$11.cpp\"},\"12\":{\"name\":\"entity.name.type.template.cpp\"},\"13\":{\"name\":\"punctuation.section.angle-brackets.end.template.definition.cpp\"},\"14\":{\"name\":\"storage.type.template.argument.$14.cpp\"},\"15\":{\"name\":\"entity.name.type.template.cpp\"},\"16\":{\"name\":\"keyword.operator.assignment.cpp\"},\"17\":{\"name\":\"punctuation.separator.delimiter.comma.template.argument.cpp\"}},\"match\":\"((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?:(?:((?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)|((?:(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\\\\\\\\s+)+)((?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*))|((?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)(?:\\\\\\\\s+)?(\\\\\\\\.\\\\\\\\.\\\\\\\\.)(?:\\\\\\\\s+)?((?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*))|(?<!\\\\\\\\w)(template)(?:\\\\\\\\s+)?(<)(?:\\\\\\\\s+)?((?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)(?:\\\\\\\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)?)(?:\\\\\\\\s+)?(>)(?:\\\\\\\\s+)?(class|typename)(?:\\\\\\\\s+((?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*))?)(?:\\\\\\\\s+)?(?:(\\\\\\\\=)(?:\\\\\\\\s+)?(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)?(?:(,)|(?=>|$))\"},\"template_definition_context\":{\"patterns\":[{\"include\":\"#scope_resolution_template_definition_inner_generated\"},{\"include\":\"#template_definition_argument\"},{\"include\":\"#template_argument_defaulted\"},{\"include\":\"#template_call_innards\"},{\"include\":\"#evaluation_context\"}]},\"template_explicit_instantiation\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.specifier.extern.cpp\"},\"2\":{\"name\":\"storage.type.template.cpp\"}},\"match\":\"(?<!\\\\\\\\w)(?:(extern)\\\\\\\\s+)?(template)\\\\\\\\s+\",\"name\":\"meta.template.explicit-instantiation.cpp\"},\"template_isolated_definition\":{\"captures\":{\"1\":{\"name\":\"storage.type.template.cpp\"},\"2\":{\"name\":\"punctuation.section.angle-brackets.begin.template.definition.cpp\"},\"3\":{\"name\":\"meta.template.definition.cpp\",\"patterns\":[{\"include\":\"#template_definition_context\"}]},\"4\":{\"name\":\"punctuation.section.angle-brackets.end.template.definition.cpp\"}},\"match\":\"(?<!\\\\\\\\w)(template)(?:\\\\\\\\s+)?(<)(.*)(>)(?:\\\\\\\\s+)?$\"},\"ternary_operator\":{\"applyEndPatternLast\":1,\"begin\":\"\\\\\\\\?\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.ternary.cpp\"}},\"end\":\":\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.ternary.cpp\"}},\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#string_context\"},{\"include\":\"#number_literal\"},{\"include\":\"#method_access\"},{\"include\":\"#member_access\"},{\"include\":\"#predefined_macros\"},{\"include\":\"#operators\"},{\"include\":\"#memory_operators\"},{\"include\":\"#wordlike_operators\"},{\"include\":\"#type_casting_operators\"},{\"include\":\"#control_flow_keywords\"},{\"include\":\"#exception_keywords\"},{\"include\":\"#the_this_keyword\"},{\"include\":\"#language_constants\"},{\"include\":\"#builtin_storage_type_initilizer\"},{\"include\":\"#qualifiers_and_specifiers_post_parameters\"},{\"include\":\"#functional_specifiers_pre_parameters\"},{\"include\":\"#storage_types\"},{\"include\":\"#lambdas\"},{\"include\":\"#attributes_context\"},{\"include\":\"#parentheses\"},{\"include\":\"#function_call\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"include\":\"#square_brackets\"},{\"include\":\"#semicolon\"},{\"include\":\"#comma\"}]},\"the_this_keyword\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"3\":{\"name\":\"variable.language.this.cpp\"}},\"match\":\"((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)this(?!\\\\\\\\w))\"},\"type_alias\":{\"captures\":{\"1\":{\"name\":\"keyword.other.using.directive.cpp\"},\"2\":{\"name\":\"entity.name.type.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"4\":{\"name\":\"keyword.operator.assignment.cpp\"},\"5\":{\"name\":\"keyword.other.typename.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#storage_specifiers\"}]},\"7\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"8\":{\"name\":\"meta.qualified_type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\\\\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.begin.template.call.cpp\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.end.template.call.cpp\"}},\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_context\"}]},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"9\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"14\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range\"}]},\"15\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"17\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"18\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"20\":{\"name\":\"meta.declaration.type.alias.value.unknown.cpp\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"21\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"22\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"23\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"24\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"25\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"26\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"27\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"28\":{\"name\":\"punctuation.definition.begin.bracket.square.cpp\"},\"29\":{\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"30\":{\"name\":\"punctuation.definition.end.bracket.square.cpp\"},\"31\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"match\":\"(using)\\\\\\\\s+(?!namespace)((?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)(?:\\\\\\\\s+)?((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))?(?:\\\\\\\\s+)?(\\\\\\\\=)(?:\\\\\\\\s+)?((?:typename)?)(?:\\\\\\\\s+)?((?:(?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)(?<!\\\\\\\\w)(?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const))(?!\\\\\\\\w)\\\\\\\\s+)+)?(?:(\\\\\\\\s*+((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))?((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:((?:::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<19>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*+)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\\\\\\\\b((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<19>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)?(?![\\\\\\\\w<:.]))|(.*(?<!;)))(?:(((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?:(\\\\\\\\[)(\\\\\\\\w*)(\\\\\\\\])(?:\\\\\\\\s+)?)?(?:\\\\\\\\s+)?(?:(;)|\\\\\\\\n)\",\"name\":\"meta.declaration.type.alias.cpp\"},\"type_casting_operators\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"3\":{\"name\":\"keyword.operator.wordlike.cpp keyword.operator.cast.$3.cpp\"}},\"match\":\"((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:(?:reinterpret_cast)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast))(?!\\\\\\\\w))\"},\"typedef_class\":{\"begin\":\"((?<!\\\\\\\\w)typedef(?!\\\\\\\\w))(?:\\\\\\\\s+)?(?=(?<!\\\\\\\\w)class(?!\\\\\\\\w))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.typedef.cpp\"}},\"end\":\"(?<=;)\",\"endCaptures\":{},\"patterns\":[{\"begin\":\"((?<!\\\\\\\\w)class(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?={)|(?:((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?((?:(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*+)?(?:((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(:(?!:)))?)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.class.cpp\"},\"1\":{\"name\":\"storage.type.$1.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.modifier.final.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?<!\\\\\\\\w)final(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.class.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"storage.type.modifier.final.cpp\"},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:((?<!\\\\\\\\w)final(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?=:|{|$)\"},{\"match\":\"DLLEXPORT\",\"name\":\"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.other.preprocessor.macro.predefined.probably.$0.cpp\"}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"14\":{\"name\":\"comment.block.cpp\"},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"16\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"18\":{\"name\":\"comment.block.cpp\"},\"19\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"20\":{\"name\":\"punctuation.separator.colon.inheritance.cpp\"}},\"end\":\"(?:(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)(?:\\\\\\\\s+)?(;)|(;))|(?=[;>\\\\\\\\[\\\\\\\\]=]))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.cpp\"},\"2\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"name\":\"meta.block.class.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.class.cpp\"}},\"name\":\"meta.head.class.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#inheritance_context\"},{\"include\":\"#template_call_range\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.class.cpp\"}},\"name\":\"meta.body.class.cpp\",\"patterns\":[{\"include\":\"#function_pointer\"},{\"include\":\"#static_assert\"},{\"include\":\"#constructor_inline\"},{\"include\":\"#destructor_inline\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)\",\"endCaptures\":{},\"name\":\"meta.tail.class.cpp\",\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"12\":{\"name\":\"comment.block.cpp\"},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"14\":{\"name\":\"entity.name.type.alias.cpp\"}},\"match\":\"(((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))\"},{\"match\":\",\"}]}]}]},\"typedef_function_pointer\":{\"begin\":\"((?<!\\\\\\\\w)typedef(?!\\\\\\\\w))(?:\\\\\\\\s+)?(?=.*\\\\\\\\(\\\\\\\\*\\\\\\\\s*(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\\\\\\\\s*\\\\\\\\))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.typedef.cpp\"}},\"end\":\"(?<=;)\",\"endCaptures\":{},\"patterns\":[{\"begin\":\"(\\\\\\\\s*+((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:((?:::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<18>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*+)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\\\\\\\\b((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<18>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)?(?![\\\\\\\\w<:.]))(((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()(\\\\\\\\*)(?:\\\\\\\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*)?)(?:\\\\\\\\s+)?(?:(\\\\\\\\[)(\\\\\\\\w*)(\\\\\\\\])(?:\\\\\\\\s+)?)*(\\\\\\\\))(?:\\\\\\\\s+)?(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"meta.qualified_type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\\\\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.begin.template.call.cpp\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.end.template.call.cpp\"}},\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_context\"}]},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"2\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"3\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"5\":{\"name\":\"comment.block.cpp\"},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range\"}]},\"12\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"13\":{},\"14\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"16\":{\"name\":\"comment.block.cpp\"},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"18\":{},\"19\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"20\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"21\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"22\":{\"name\":\"comment.block.cpp\"},\"23\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"24\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"25\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"26\":{\"name\":\"comment.block.cpp\"},\"27\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"28\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"29\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"30\":{\"name\":\"comment.block.cpp\"},\"31\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"32\":{\"name\":\"punctuation.section.parens.begin.bracket.round.function.pointer.cpp\"},\"33\":{\"name\":\"punctuation.definition.function.pointer.dereference.cpp\"},\"34\":{\"name\":\"entity.name.type.alias.cpp entity.name.type.pointer.function.cpp\"},\"35\":{\"name\":\"punctuation.definition.begin.bracket.square.cpp\"},\"36\":{\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"37\":{\"name\":\"punctuation.definition.end.bracket.square.cpp\"},\"38\":{\"name\":\"punctuation.section.parens.end.bracket.round.function.pointer.cpp\"},\"39\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.function.pointer.cpp\"}},\"end\":\"(\\\\\\\\))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=[{=,);>]|\\\\\\\\n)(?!\\\\\\\\()\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.parameters.end.bracket.round.function.pointer.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"patterns\":[{\"include\":\"#function_parameter_context\"}]}]},\"typedef_struct\":{\"begin\":\"((?<!\\\\\\\\w)typedef(?!\\\\\\\\w))(?:\\\\\\\\s+)?(?=(?<!\\\\\\\\w)struct(?!\\\\\\\\w))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.typedef.cpp\"}},\"end\":\"(?<=;)\",\"endCaptures\":{},\"patterns\":[{\"begin\":\"((?<!\\\\\\\\w)struct(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?={)|(?:((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?((?:(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*+)?(?:((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(:(?!:)))?)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.struct.cpp\"},\"1\":{\"name\":\"storage.type.$1.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.modifier.final.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?<!\\\\\\\\w)final(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.struct.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"storage.type.modifier.final.cpp\"},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:((?<!\\\\\\\\w)final(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?=:|{|$)\"},{\"match\":\"DLLEXPORT\",\"name\":\"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.other.preprocessor.macro.predefined.probably.$0.cpp\"}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"14\":{\"name\":\"comment.block.cpp\"},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"16\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"18\":{\"name\":\"comment.block.cpp\"},\"19\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"20\":{\"name\":\"punctuation.separator.colon.inheritance.cpp\"}},\"end\":\"(?:(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)(?:\\\\\\\\s+)?(;)|(;))|(?=[;>\\\\\\\\[\\\\\\\\]=]))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.cpp\"},\"2\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"name\":\"meta.block.struct.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.struct.cpp\"}},\"name\":\"meta.head.struct.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#inheritance_context\"},{\"include\":\"#template_call_range\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.struct.cpp\"}},\"name\":\"meta.body.struct.cpp\",\"patterns\":[{\"include\":\"#function_pointer\"},{\"include\":\"#static_assert\"},{\"include\":\"#constructor_inline\"},{\"include\":\"#destructor_inline\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)\",\"endCaptures\":{},\"name\":\"meta.tail.struct.cpp\",\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"12\":{\"name\":\"comment.block.cpp\"},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"14\":{\"name\":\"entity.name.type.alias.cpp\"}},\"match\":\"(((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))\"},{\"match\":\",\"}]}]}]},\"typedef_union\":{\"begin\":\"((?<!\\\\\\\\w)typedef(?!\\\\\\\\w))(?:\\\\\\\\s+)?(?=(?<!\\\\\\\\w)union(?!\\\\\\\\w))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.typedef.cpp\"}},\"end\":\"(?<=;)\",\"endCaptures\":{},\"patterns\":[{\"begin\":\"((?<!\\\\\\\\w)union(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?={)|(?:((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?((?:(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*+)?(?:((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(:(?!:)))?)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.union.cpp\"},\"1\":{\"name\":\"storage.type.$1.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.modifier.final.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?<!\\\\\\\\w)final(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.union.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"storage.type.modifier.final.cpp\"},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:((?<!\\\\\\\\w)final(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?=:|{|$)\"},{\"match\":\"DLLEXPORT\",\"name\":\"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.other.preprocessor.macro.predefined.probably.$0.cpp\"}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"14\":{\"name\":\"comment.block.cpp\"},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"16\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"18\":{\"name\":\"comment.block.cpp\"},\"19\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"20\":{\"name\":\"punctuation.separator.colon.inheritance.cpp\"}},\"end\":\"(?:(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)(?:\\\\\\\\s+)?(;)|(;))|(?=[;>\\\\\\\\[\\\\\\\\]=]))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.cpp\"},\"2\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"name\":\"meta.block.union.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.union.cpp\"}},\"name\":\"meta.head.union.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#inheritance_context\"},{\"include\":\"#template_call_range\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.union.cpp\"}},\"name\":\"meta.body.union.cpp\",\"patterns\":[{\"include\":\"#function_pointer\"},{\"include\":\"#static_assert\"},{\"include\":\"#constructor_inline\"},{\"include\":\"#destructor_inline\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)\",\"endCaptures\":{},\"name\":\"meta.tail.union.cpp\",\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"12\":{\"name\":\"comment.block.cpp\"},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"14\":{\"name\":\"entity.name.type.alias.cpp\"}},\"match\":\"(((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))?((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))\"},{\"match\":\",\"}]}]}]},\"typeid_operator\":{\"begin\":\"((?<!\\\\\\\\w)typeid(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.typeid.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp\"}},\"contentName\":\"meta.arguments.operator.typeid\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.typeid.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"typename\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"4\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"5\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"6\":{\"name\":\"meta.qualified_type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\\\\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.begin.template.call.cpp\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.end.template.call.cpp\"}},\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_context\"}]},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"7\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"12\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range\"}]},\"13\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"14\":{},\"15\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"16\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"17\":{}},\"match\":\"(((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?<!\\\\\\\\w)typename(?!\\\\\\\\w))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(\\\\\\\\s*+((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))?((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:((?:::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<17>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*+)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\\\\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\\\\\\\\b((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<17>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)?(?![\\\\\\\\w<:.]))\"},\"undef\":{\"captures\":{\"1\":{\"name\":\"keyword.control.directive.undef.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"4\":{\"name\":\"punctuation.definition.directive.cpp\"},\"5\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"6\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"7\":{\"name\":\"entity.name.function.preprocessor.cpp\"}},\"match\":\"(^((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(#)(?:\\\\\\\\s+)?undef\\\\\\\\b)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))\",\"name\":\"meta.preprocessor.undef.cpp\"},\"union_block\":{\"begin\":\"((?<!\\\\\\\\w)union(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:(?={)|(?:((?:(?:(?:\\\\\\\\[\\\\\\\\[.*?\\\\\\\\]\\\\\\\\]|__attribute(?:__)?\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\(.*?\\\\\\\\)\\\\\\\\s*\\\\\\\\))|__declspec\\\\\\\\(.*?\\\\\\\\))|alignas\\\\\\\\(.*?\\\\\\\\))(?!\\\\\\\\)))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?((?:(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*+)?(?:((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(:(?!:)))?)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.union.cpp\"},\"1\":{\"name\":\"storage.type.$1.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.modifier.final.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?<!\\\\\\\\w)final(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.union.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"storage.type.modifier.final.cpp\"},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?:((?<!\\\\\\\\w)final(?!\\\\\\\\w))((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))?(?=:|{|$)\"},{\"match\":\"DLLEXPORT\",\"name\":\"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.other.preprocessor.macro.predefined.probably.$0.cpp\"}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"14\":{\"name\":\"comment.block.cpp\"},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"16\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"18\":{\"name\":\"comment.block.cpp\"},\"19\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"20\":{\"name\":\"punctuation.separator.colon.inheritance.cpp\"}},\"end\":\"(?:(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)(?:\\\\\\\\s+)?(;)|(;))|(?=[;>\\\\\\\\[\\\\\\\\]=]))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.cpp\"},\"2\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"name\":\"meta.block.union.cpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"beginCaptures\":{},\"end\":\"(?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.union.cpp\"}},\"name\":\"meta.head.union.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#inheritance_context\"},{\"include\":\"#template_call_range\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"beginCaptures\":{},\"end\":\"\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.union.cpp\"}},\"name\":\"meta.body.union.cpp\",\"patterns\":[{\"include\":\"#function_pointer\"},{\"include\":\"#static_assert\"},{\"include\":\"#constructor_inline\"},{\"include\":\"#destructor_inline\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s]*\",\"beginCaptures\":{},\"end\":\"[\\\\\\\\s]*(?=;)\",\"endCaptures\":{},\"name\":\"meta.tail.union.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"union_declare\":{\"captures\":{\"1\":{\"name\":\"storage.type.union.declare.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"4\":{\"name\":\"entity.name.type.union.cpp\"},\"5\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"(?:\\\\\\\\&((?:(?:(?:\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))){2,}\\\\\\\\&\",\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]},\"12\":{\"name\":\"variable.other.object.declare.cpp\"},\"13\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"14\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"match\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+(\\\\\\\\*\\\\\\\\/))\\\\\\\\s*+\"}]}},\"match\":\"((?<!\\\\\\\\w)union(?!\\\\\\\\w))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))(((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))?(?:(?:&|\\\\\\\\*)((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z)))*(?:&|\\\\\\\\*))?((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))\\\\\\\\b(?!override\\\\\\\\W|override\\\\\\\\$|final\\\\\\\\W|final\\\\\\\\$)((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))((?:((?:\\\\\\\\s*+\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/\\\\\\\\s*+)+)|(?:\\\\\\\\s++)|(?<=\\\\\\\\W)|(?=\\\\\\\\W)|^|(?:\\\\\\\\n?$)|\\\\\\\\A|\\\\\\\\Z))(?=\\\\\\\\S)(?![:{a-zA-Z])\"},\"using_name\":{\"captures\":{\"1\":{\"name\":\"keyword.other.using.directive.cpp\"}},\"match\":\"(using)\\\\\\\\s+(?!namespace\\\\\\\\b)\"},\"using_namespace\":{\"begin\":\"(?<!\\\\\\\\w)(using)\\\\\\\\s+(namespace)\\\\\\\\s+((::)?(?:(?!\\\\\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\\\\\b)(?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w)\\\\\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\\\\\/\\\\\\\\*(?:[^\\\\\\\\*]++|\\\\\\\\*+(?!\\\\\\\\/))*+\\\\\\\\*\\\\\\\\/)|(?:\\\\\"(?:[^\\\\\"]*|\\\\\\\\\\\\\\\\\\\\\")\\\\\")|(?:'(?:[^']*|\\\\\\\\\\\\\\\\')')|\\\\\\\\g<6>|(?:(?:[^'\\\\\"<>\\\\\\\\/]|\\\\\\\\/[^*])++))*>)\\\\\\\\s*+)?::)*\\\\\\\\s*+)?((?<!\\\\\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\\\\\w))(?=;|\\\\\\\\n)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.using.directive.cpp\"},\"2\":{\"name\":\"keyword.other.namespace.directive.cpp storage.type.namespace.directive.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#scope_resolution_namespace_using_inner_generated\"}]},\"4\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp\"},\"5\":{\"patterns\":[{\"include\":\"#template_call_range\"}]},\"6\":{},\"7\":{\"name\":\"entity.name.namespace.cpp\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"name\":\"meta.using-namespace.cpp\"},\"vararg_ellipses\":{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\.\\\\\\\\.\\\\\\\\.(?!\\\\\\\\.)\",\"name\":\"punctuation.vararg-ellipses.cpp\"},\"wordlike_operators\":{\"patterns\":[{\"match\":\"(?<!\\\\\\\\w)(?:(?:noexcept)|(?:xor_eq)|(?:and_eq)|(?:delete)|(?:not_eq)|(?:bitand)|(?:bitor)|(?:compl)|(?:or_eq)|(?:not)|(?:xor)|(?:new)|(?:and)|(?:or))(?!\\\\\\\\w)\",\"name\":\"keyword.operator.wordlike.cpp keyword.operator.$0.cpp\"}]}},\"scopeName\":\"source.cpp\",\"embeddedLangs\":[\"cpp-macro\",\"regexp\",\"glsl\",\"sql\"],\"aliases\":[\"c++\"]}`)),s=[...a,...e,...n,...t,i];export{s as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BFLt1xDp.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Gettext PO\",\"fileTypes\":[\"po\",\"pot\",\"potx\"],\"name\":\"po\",\"patterns\":[{\"begin\":\"^(?=(msgid(_plural)?|msgctxt)\\\\\\\\s*\\\\\"[^\\\\\"])|^\\\\\\\\s*$\",\"comment\":\"Start of body of document, after header\",\"end\":\"\\\\\\\\z\",\"patterns\":[{\"include\":\"#body\"}]},{\"include\":\"#comments\"},{\"match\":\"^msg(id|str)\\\\\\\\s+\\\\\"\\\\\"\\\\\\\\s*$\\\\\\\\n?\",\"name\":\"comment.line.number-sign.po\"},{\"captures\":{\"1\":{\"name\":\"constant.language.po\"},\"2\":{\"name\":\"punctuation.separator.key-value.po\"},\"3\":{\"name\":\"string.other.po\"}},\"match\":\"^\\\\\"(?:([^\\\\\\\\s:]+)(:)\\\\\\\\s+)?([^\\\\\"]*)\\\\\"\\\\\\\\s*$\\\\\\\\n?\",\"name\":\"meta.header.po\"}],\"repository\":{\"body\":{\"patterns\":[{\"begin\":\"^(msgid(_plural)?)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.msgid.po\"}},\"end\":\"^(?!\\\\\")\",\"name\":\"meta.scope.msgid.po\",\"patterns\":[{\"begin\":\"(\\\\\\\\G|^)\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.po\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\"]\",\"name\":\"constant.character.escape.po\"}]}]},{\"begin\":\"^(msgstr)(?:(\\\\\\\\[)(\\\\\\\\d+)(\\\\\\\\]))?\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.msgstr.po\"},\"2\":{\"name\":\"keyword.control.msgstr.po\"},\"3\":{\"name\":\"constant.numeric.po\"},\"4\":{\"name\":\"keyword.control.msgstr.po\"}},\"end\":\"^(?!\\\\\")\",\"name\":\"meta.scope.msgstr.po\",\"patterns\":[{\"begin\":\"(\\\\\\\\G|^)\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.po\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\"]\",\"name\":\"constant.character.escape.po\"}]}]},{\"begin\":\"^(msgctxt)(?:(\\\\\\\\[)(\\\\\\\\d+)(\\\\\\\\]))?\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.msgctxt.po\"},\"2\":{\"name\":\"keyword.control.msgctxt.po\"},\"3\":{\"name\":\"constant.numeric.po\"},\"4\":{\"name\":\"keyword.control.msgctxt.po\"}},\"end\":\"^(?!\\\\\")\",\"name\":\"meta.scope.msgctxt.po\",\"patterns\":[{\"begin\":\"(\\\\\\\\G|^)\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.po\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\"]\",\"name\":\"constant.character.escape.po\"}]}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.po\"}},\"match\":\"^(#~).*$\\\\\\\\n?\",\"name\":\"comment.line.number-sign.obsolete.po\"},{\"include\":\"#comments\"},{\"comment\":\"a line that does not begin with # or \\\\\". Could improve this regexp\",\"match\":\"^(?!\\\\\\\\s*$)[^#\\\\\"].*$\\\\\\\\n?\",\"name\":\"invalid.illegal.po\"}]},\"comments\":{\"patterns\":[{\"begin\":\"^(?=#)\",\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"(#,)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.po\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.number-sign.flag.po\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.type.flag.po\"}},\"match\":\"(?:\\\\\\\\G|,\\\\\\\\s*)((?:fuzzy)|(?:no-)?(?:c|objc|sh|lisp|elisp|librep|scheme|smalltalk|java|csharp|awk|object-pascal|ycp|tcl|perl|perl-brace|php|gcc-internal|qt|boost)-format)\"}]},{\"begin\":\"#\\\\\\\\.\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.po\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.number-sign.extracted.po\"},{\"begin\":\"(#:)[ \\\\\\\\t]*\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.po\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.number-sign.reference.po\",\"patterns\":[{\"match\":\"(\\\\\\\\S+:)([\\\\\\\\d;]*)\",\"name\":\"storage.type.class.po\"}]},{\"begin\":\"#\\\\\\\\|\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.po\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.number-sign.previous.po\"},{\"begin\":\"#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.po\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.number-sign.po\"}]}]}},\"scopeName\":\"source.po\",\"aliases\":[\"pot\",\"potx\"]}')),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BFOHcciG.js",
    "content": "const a=Object.freeze(JSON.parse(`{\"displayName\":\"Vala\",\"fileTypes\":[\"vala\",\"vapi\",\"gs\"],\"name\":\"vala\",\"patterns\":[{\"include\":\"#code\"}],\"repository\":{\"code\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#constants\"},{\"include\":\"#strings\"},{\"include\":\"#keywords\"},{\"include\":\"#types\"},{\"include\":\"#functions\"},{\"include\":\"#variables\"}]},\"comments\":{\"patterns\":[{\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.vala\"}},\"match\":\"/\\\\\\\\*\\\\\\\\*/\",\"name\":\"comment.block.empty.vala\"},{\"include\":\"text.html.javadoc\"},{\"include\":\"#comments-inline\"}]},\"comments-inline\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.vala\"}},\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.vala\"},{\"captures\":{\"1\":{\"name\":\"comment.line.double-slash.vala\"},\"2\":{\"name\":\"punctuation.definition.comment.vala\"}},\"match\":\"\\\\\\\\s*((//).*$\\\\\\\\n?)\"}]},\"constants\":{\"patterns\":[{\"match\":\"\\\\\\\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\\\\\\\.?[0-9]*)|(\\\\\\\\.[0-9]+))((e|E)(\\\\\\\\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?\\\\\\\\b\",\"name\":\"constant.numeric.vala\"},{\"match\":\"\\\\\\\\b([A-Z][A-Z0-9_]+)\\\\\\\\b\",\"name\":\"variable.other.constant.vala\"}]},\"functions\":{\"patterns\":[{\"match\":\"(\\\\\\\\w+)(?=\\\\\\\\s*(<[\\\\\\\\s\\\\\\\\w.]+>\\\\\\\\s*)?\\\\\\\\()\",\"name\":\"entity.name.function.vala\"}]},\"keywords\":{\"patterns\":[{\"match\":\"(?<=^|[^@\\\\\\\\w\\\\\\\\.])(as|do|if|in|is|not|or|and|for|get|new|out|ref|set|try|var|base|case|else|enum|lock|null|this|true|void|weak|async|break|catch|class|const|false|owned|throw|using|while|with|yield|delete|extern|inline|params|public|return|sealed|signal|sizeof|static|struct|switch|throws|typeof|unlock|default|dynamic|ensures|finally|foreach|private|unowned|virtual|abstract|continue|delegate|internal|override|requires|volatile|construct|interface|namespace|protected|errordomain)\\\\\\\\b\",\"name\":\"keyword.vala\"},{\"match\":\"(?<=^|[^@\\\\\\\\w\\\\\\\\.])(bool|double|float|unichar|unichar2|char|uchar|int|uint|long|ulong|short|ushort|size_t|ssize_t|string|string16|string32|void|signal|int8|int16|int32|int64|uint8|uint16|uint32|uint64|va_list|time_t)\\\\\\\\b\",\"name\":\"keyword.vala\"},{\"match\":\"(#if|#elif|#else|#endif)\",\"name\":\"keyword.vala\"}]},\"strings\":{\"patterns\":[{\"begin\":\"\\\\\"\\\\\"\\\\\"\",\"end\":\"\\\\\"\\\\\"\\\\\"\",\"name\":\"string.quoted.triple.vala\"},{\"begin\":\"@\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.interpolated.vala\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.vala\"},{\"match\":\"\\\\\\\\$\\\\\\\\w+\",\"name\":\"constant.character.escape.vala\"},{\"match\":\"\\\\\\\\$\\\\\\\\(([^)(]|\\\\\\\\(([^)(]|\\\\\\\\([^)]*\\\\\\\\))*\\\\\\\\))*\\\\\\\\)\",\"name\":\"constant.character.escape.vala\"}]},{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.vala\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.vala\"}]},{\"begin\":\"'\",\"end\":\"'\",\"name\":\"string.quoted.single.vala\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.vala\"}]},{\"match\":\"/((\\\\\\\\\\\\\\\\/)|([^/]))*/(?=\\\\\\\\s*[,;)\\\\\\\\.\\\\\\\\n])\",\"name\":\"string.regexp.vala\"}]},\"types\":{\"patterns\":[{\"match\":\"(?<=^|[^@\\\\\\\\w\\\\\\\\.])(bool|double|float|unichar|unichar2|char|uchar|int|uint|long|ulong|short|ushort|size_t|ssize_t|string|string16|string32|void|signal|int8|int16|int32|int64|uint8|uint16|uint32|uint64|va_list|time_t)\\\\\\\\b\",\"name\":\"storage.type.primitive.vala\"},{\"match\":\"\\\\\\\\b([A-Z]+\\\\\\\\w*)\\\\\\\\b\",\"name\":\"entity.name.type.vala\"}]},\"variables\":{\"patterns\":[{\"match\":\"\\\\\\\\b([_a-z]+\\\\\\\\w*)\\\\\\\\b\",\"name\":\"variable.other.vala\"}]}},\"scopeName\":\"source.vala\"}`)),e=[a];export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BFk92hFI.js",
    "content": "import{_ as C}from\"./CvhZxjKo.js\";import{d as E,a4 as I,S as b,c as w,r as p,a0 as _,B as M,e as O,f as V,g as i,C as f,i as e,t as j,j as o,N as D,x as L,k as P,q as F,af as J,ag as q,s as S}from\"./CU_MfyYc.js\";import{_ as A}from\"./CqvT4tPC.js\";import{_ as H}from\"./CYcD1Eih.js\";import{_ as G}from\"./C4bX54si.js\";import{u as K}from\"./Cwg39VG_.js\";const Q={key:0,class:\"space-y-6\"},W={class:\"mb-4\"},X={class:\"space-y-4\"},Y={class:\"space-y-4\"},Z={class:\"space-y-3\"},ee={class:\"flex gap-2\"},te={class:\"flex gap-2\"},se={class:\"space-y-4\"},ae={class:\"space-y-2\"},oe={class:\"space-y-4\"},le={key:1},ne={class:\"mb-8\"},ie={class:\"flex items-center select-none flex-1 mb-4\"},ue={class:\"flex items-center select-none flex-1 mb-4\"},re={class:\"select-none\"},me={class:\"grid grid-cols-1 gap-6\"},de={key:0,class:\"space-y-4\"},ce={key:1},ye=E({__name:\"index\",setup(pe){K({title:\"Optimization - Jesse\"});const k=I(),h=b(),a=w(()=>h.form),u=p(!1),v=p(!0),r=p([]),z=w(()=>_().jesseSupportedTimeframes.map(l=>({label:l,value:l})));M(()=>{setTimeout(async()=>{x();try{const t=(sessionStorage.getItem(\"previousRoute\")||\"\").match(/\\/optimization\\/[^\\/]+$/);if(sessionStorage.removeItem(\"previousRoute\"),!t){const s=await h.getRunningSession();if(s){g(`/optimization/${s}`);return}}}finally{v.value=!1}},50)});const m=p([]);async function x(){m.value=await _().getExchangeSupportedSymbols(a.value.exchange);for(let l=0;l<a.value.routes.length;l++)m.value.includes(a.value.routes[l].symbol)||(a.value.routes[l].symbol=m.value[0])}a.value.exchange=a.value.exchange||_().backtestingExchangeNames[0];async function U(){if(r.value.length){for(let t=0;t<r.value.length;t++)S(\"error\",r.value[t]);return}if(a.value.routes.length>1){S(\"error\",\"Optimization mode does not support multiple routes at the moment.\");return}u.value=!0;const l=await b().start();l&&l.status===\"success\"&&g(`/optimization/${l.id}?status=running`),u.value=!1}function g(l){k.push(l)}return(l,t)=>{const s=C,d=D,N=A,R=H,c=P,T=J,$=q,y=j,B=G;return i(),O(B,null,{left:V(()=>[v.value?(i(),f(\"div\",Q,[o(\"div\",W,[e(s,{class:\"h-4 w-20 mb-2\"}),e(s,{class:\"h-12 w-full\"})]),o(\"div\",X,[e(s,{class:\"h-4 w-24\"}),e(s,{class:\"h-32 w-full\"})]),o(\"div\",Y,[e(s,{class:\"h-4 w-20\"}),o(\"div\",Z,[e(s,{class:\"h-4 w-32\"}),o(\"div\",ee,[e(s,{class:\"h-12 flex-1\"}),e(s,{class:\"h-12 flex-1\"})]),e(s,{class:\"h-4 w-32\"}),o(\"div\",te,[e(s,{class:\"h-12 flex-1\"}),e(s,{class:\"h-12 flex-1\"})])])]),o(\"div\",se,[e(s,{class:\"h-4 w-32\"}),o(\"div\",ae,[e(s,{class:\"h-3 w-full\"}),e(s,{class:\"h-3 w-3/4\"}),e(s,{class:\"h-3 w-1/2\"})]),e(s,{class:\"h-12 w-full\"})]),o(\"div\",oe,[e(s,{class:\"h-4 w-16\"}),e(s,{class:\"h-16 w-full\"})])])):(i(),f(\"div\",le,[e(d,{class:\"mb-4\",title:\"Exchange\"}),e(N,{modelValue:a.value.exchange,\"onUpdate:modelValue\":t[0]||(t[0]=n=>a.value.exchange=n),placeholder:\"Select an exchange...\",searchable:\"\",options:L(_)().backtestingExchangeNames,size:\"lg\",class:\"mt-2 mb-16\",onChange:x},null,8,[\"modelValue\",\"options\"]),e(R,{\"total-routes-error\":r.value,form:a.value,mode:\"optimization\",symbols:m.value,timeframes:z.value},null,8,[\"total-routes-error\",\"form\",\"symbols\",\"timeframes\"]),e(d,{class:\"mt-16 mb-4\",title:\"Duration\"}),o(\"div\",ne,[t[9]||(t[9]=o(\"h3\",{class:\"text-sm font-medium text-gray-700 dark:text-gray-200 mb-2\"},\"Training Period\",-1)),o(\"div\",ie,[e(c,{modelValue:a.value.training_start_date,\"onUpdate:modelValue\":t[1]||(t[1]=n=>a.value.training_start_date=n),type:\"date\",variant:\"outline\",size:\"lg\",class:\"w-full mr-2\"},null,8,[\"modelValue\"]),e(c,{modelValue:a.value.training_finish_date,\"onUpdate:modelValue\":t[2]||(t[2]=n=>a.value.training_finish_date=n),type:\"date\",variant:\"outline\",size:\"lg\",class:\"w-full ml-2\"},null,8,[\"modelValue\"])])]),o(\"div\",null,[t[10]||(t[10]=o(\"h3\",{class:\"text-sm font-medium text-gray-700 dark:text-gray-200 mb-2\"},\"Testing Period\",-1)),o(\"div\",ue,[e(c,{modelValue:a.value.testing_start_date,\"onUpdate:modelValue\":t[3]||(t[3]=n=>a.value.testing_start_date=n),type:\"date\",variant:\"outline\",size:\"lg\",class:\"w-full mr-2\"},null,8,[\"modelValue\"]),e(c,{modelValue:a.value.testing_finish_date,\"onUpdate:modelValue\":t[4]||(t[4]=n=>a.value.testing_finish_date=n),type:\"date\",variant:\"outline\",size:\"lg\",class:\"w-full ml-2\"},null,8,[\"modelValue\"])])]),e(d,{class:\"mt-16 mb-4\",title:\"Optimal Trades\"}),o(\"div\",re,[t[11]||(t[11]=o(\"p\",{class:\"text-sm text-gray-500 dark:text-gray-400\"},[F(\" The number that tells Jesse how many trades you would find optimal for your strategy in the targeted time period so that it can filter out those DNAs that cause too few trades. \"),o(\"a\",{href:\"https://docs.jesse.trade/docs/optimize/executing-the-optimize-mode.html\",target:\"_blank\",class:\"font-semibold hover:underline italic\"},\"More Details...\")],-1)),t[12]||(t[12]=o(\"br\",null,null,-1)),e(T,{modelValue:a.value.optimal_total,\"onUpdate:modelValue\":t[5]||(t[5]=n=>a.value.optimal_total=n),title:\"Optimal number of trades:\"},null,8,[\"modelValue\"])]),e(d,{class:\"mt-16 mb-4\",title:\"Options\"}),o(\"div\",me,[e($,{modelValue:a.value.fast_mode,\"onUpdate:modelValue\":t[6]||(t[6]=n=>a.value.fast_mode=n),title:\"Fast Mode\",description:\"Runs the backtest faster using an improved algorithm.\"},null,8,[\"modelValue\"])])]))]),right:V(()=>[v.value?(i(),f(\"div\",de,[e(s,{class:\"h-16 w-full\"}),e(s,{class:\"h-16 w-full\"})])):(i(),f(\"div\",ce,[e(y,{class:\"w-full flex justify-center\",icon:\"i-heroicons-bolt\",size:\"xl\",variant:\"solid\",label:\"Start\",disabled:u.value,loading:u.value,trailing:!1,onClick:t[7]||(t[7]=n=>U())},null,8,[\"disabled\",\"loading\"]),e(y,{class:\"w-full flex justify-center mt-4\",icon:\"i-heroicons-clock\",size:\"xl\",variant:\"solid\",color:\"gray\",label:\"History\",trailing:!1,onClick:t[8]||(t[8]=n=>g(\"/optimization/history\"))})]))]),_:1})}}});export{ye as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BGLI1Hdo.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"//\",blockComment:[\"(*\",\"*)\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"],[\"<\",\">\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"},{open:\"'\",close:\"'\"}]},o={defaultToken:\"\",tokenPostfix:\".pascaligo\",ignoreCase:!0,brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"}],keywords:[\"begin\",\"block\",\"case\",\"const\",\"else\",\"end\",\"fail\",\"for\",\"from\",\"function\",\"if\",\"is\",\"nil\",\"of\",\"remove\",\"return\",\"skip\",\"then\",\"type\",\"var\",\"while\",\"with\",\"option\",\"None\",\"transaction\"],typeKeywords:[\"bool\",\"int\",\"list\",\"map\",\"nat\",\"record\",\"string\",\"unit\",\"address\",\"map\",\"mtz\",\"xtz\"],operators:[\"=\",\">\",\"<\",\"<=\",\">=\",\"<>\",\":\",\":=\",\"and\",\"mod\",\"or\",\"+\",\"-\",\"*\",\"/\",\"@\",\"&\",\"^\",\"%\"],symbols:/[=><:@\\^&|+\\-*\\/\\^%]+/,tokenizer:{root:[[/[a-zA-Z_][\\w]*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/\\$[0-9a-fA-F]{1,16}/,\"number.hex\"],[/\\d+/,\"number\"],[/[;,.]/,\"delimiter\"],[/'([^'\\\\]|\\\\.)*$/,\"string.invalid\"],[/'/,\"string\",\"@string\"],[/'[^\\\\']'/,\"string\"],[/'/,\"string.invalid\"],[/\\#\\d+/,\"string\"]],comment:[[/[^\\(\\*]+/,\"comment\"],[/\\*\\)/,\"comment\",\"@pop\"],[/\\(\\*/,\"comment\"]],string:[[/[^\\\\']+/,\"string\"],[/\\\\./,\"string.escape.invalid\"],[/'/,{token:\"string.quote\",bracket:\"@close\",next:\"@pop\"}]],whitespace:[[/[ \\t\\r\\n]+/,\"white\"],[/\\(\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]]}};export{e as conf,o as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/BHOwM8T6.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Clarity\",\"name\":\"clarity\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#define-constant\"},{\"include\":\"#define-data-var\"},{\"include\":\"#define-map\"},{\"include\":\"#define-function\"},{\"include\":\"#define-fungible-token\"},{\"include\":\"#define-non-fungible-token\"},{\"include\":\"#define-trait\"},{\"include\":\"#use-trait\"}],\"repository\":{\"built-in-func\":{\"begin\":\"(\\\\\\\\()\\\\\\\\s*(\\\\\\\\-|\\\\\\\\+|<\\\\\\\\=|>\\\\\\\\=|<|>|\\\\\\\\*|/|and|append|as-contract|as-max-len\\\\\\\\?|asserts!|at-block|begin|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|buff-to-int-be|buff-to-int-le|buff-to-uint-be|buff-to-uint-le|concat|contract-call\\\\\\\\?|contract-of|default-to|element-at|element-at\\\\\\\\?|filter|fold|from-consensus-buff\\\\\\\\?|ft-burn\\\\\\\\?|ft-get-balance|ft-get-supply|ft-mint\\\\\\\\?|ft-transfer\\\\\\\\?|get-block-info\\\\\\\\?|get-burn-block-info\\\\\\\\?|get-stacks-block-info\\\\\\\\?|get-tenure-info\\\\\\\\?|get-burn-block-info\\\\\\\\?|hash160|if|impl-trait|index-of|index-of\\\\\\\\?|int-to-ascii|int-to-utf8|is-eq|is-err|is-none|is-ok|is-some|is-standard|keccak256|len|log2|map|match|merge|mod|nft-burn\\\\\\\\?|nft-get-owner\\\\\\\\?|nft-mint\\\\\\\\?|nft-transfer\\\\\\\\?|not|or|pow|principal-construct\\\\\\\\?|principal-destruct\\\\\\\\?|principal-of\\\\\\\\?|print|replace-at\\\\\\\\?|secp256k1-recover\\\\\\\\?|secp256k1-verify|sha256|sha512|sha512/256|slice\\\\\\\\?|sqrti|string-to-int\\\\\\\\?|string-to-uint\\\\\\\\?|stx-account|stx-burn\\\\\\\\?|stx-get-balance|stx-transfer-memo\\\\\\\\?|stx-transfer\\\\\\\\?|to-consensus-buff\\\\\\\\?|to-int|to-uint|try!|unwrap!|unwrap-err!|unwrap-err-panic|unwrap-panic|xor)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.built-in-function.start.clarity\"},\"2\":{\"name\":\"keyword.declaration.built-in-function.clarity\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.built-in-function.end.clarity\"}},\"name\":\"meta.built-in-function\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#user-func\"}]},\"comment\":{\"match\":\"(?<=^|[()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])(;).*$\",\"name\":\"comment.line.semicolon.clarity\"},\"data-type\":{\"patterns\":[{\"include\":\"#comment\"},{\"comment\":\"numerics\",\"match\":\"\\\\\\\\b(uint|int)\\\\\\\\b\",\"name\":\"entity.name.type.numeric.clarity\"},{\"comment\":\"principal\",\"match\":\"\\\\\\\\b(principal)\\\\\\\\b\",\"name\":\"entity.name.type.principal.clarity\"},{\"comment\":\"bool\",\"match\":\"\\\\\\\\b(bool)\\\\\\\\b\",\"name\":\"entity.name.type.bool.clarity\"},{\"captures\":{\"1\":{\"name\":\"punctuation.string_type-def.start.clarity\"},\"2\":{\"name\":\"entity.name.type.string_type.clarity\"},\"3\":{\"name\":\"constant.numeric.string_type-len.clarity\"},\"4\":{\"name\":\"punctuation.string_type-def.end.clarity\"}},\"match\":\"(\\\\\\\\()\\\\\\\\s*(?:(string-ascii|string-utf8)\\\\\\\\s+(\\\\\\\\d+))\\\\\\\\s*(\\\\\\\\))\"},{\"captures\":{\"1\":{\"name\":\"punctuation.buff-def.start.clarity\"},\"2\":{\"name\":\"entity.name.type.buff.clarity\"},\"3\":{\"name\":\"constant.numeric.buf-len.clarity\"},\"4\":{\"name\":\"punctuation.buff-def.end.clarity\"}},\"match\":\"(\\\\\\\\()\\\\\\\\s*(buff)\\\\\\\\s+(\\\\\\\\d+)\\\\\\\\s*(\\\\\\\\))\"},{\"begin\":\"(\\\\\\\\()\\\\\\\\s*(optional)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.optional-def.start.clarity\"},\"2\":{\"name\":\"storage.type.modifier\"}},\"comment\":\"optional\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.optional-def.end.clarity\"}},\"name\":\"meta.optional-def\",\"patterns\":[{\"include\":\"#data-type\"}]},{\"begin\":\"(\\\\\\\\()\\\\\\\\s*(response)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.response-def.start.clarity\"},\"2\":{\"name\":\"storage.type.modifier\"}},\"comment\":\"response\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.response-def.end.clarity\"}},\"name\":\"meta.response-def\",\"patterns\":[{\"include\":\"#data-type\"}]},{\"begin\":\"(\\\\\\\\()\\\\\\\\s*(list)\\\\\\\\s+(\\\\\\\\d+)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.list-def.start.clarity\"},\"2\":{\"name\":\"entity.name.type.list.clarity\"},\"3\":{\"name\":\"constant.numeric.list-len.clarity\"}},\"comment\":\"list\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.list-def.end.clarity\"}},\"name\":\"meta.list-def\",\"patterns\":[{\"include\":\"#data-type\"}]},{\"begin\":\"(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.tuple-def.start.clarity\"}},\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.tuple-def.end.clarity\"}},\"name\":\"meta.tuple-def\",\"patterns\":[{\"match\":\"([a-zA-Z][\\\\\\\\w\\\\\\\\?\\\\\\\\!\\\\\\\\-]*)(?=:)\",\"name\":\"entity.name.tag.tuple-data-type-key.clarity\"},{\"include\":\"#data-type\"}]}]},\"define-constant\":{\"begin\":\"(\\\\\\\\()\\\\\\\\s*(define-constant)\\\\\\\\s+([a-zA-Z][\\\\\\\\w\\\\\\\\?\\\\\\\\!\\\\\\\\-]*)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.define-constant.start.clarity\"},\"2\":{\"name\":\"keyword.declaration.define-constant.clarity\"},\"3\":{\"name\":\"entity.name.constant-name.clarity variable.other.clarity\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.define-constant.end.clarity\"}},\"name\":\"meta.define-constant\",\"patterns\":[{\"include\":\"#expression\"}]},\"define-data-var\":{\"begin\":\"(\\\\\\\\()\\\\\\\\s*(define-data-var)\\\\\\\\s+([a-zA-Z][\\\\\\\\w\\\\\\\\?\\\\\\\\!\\\\\\\\-]*)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.define-data-var.start.clarity\"},\"2\":{\"name\":\"keyword.declaration.define-data-var.clarity\"},\"3\":{\"name\":\"entity.name.data-var-name.clarity variable.other.clarity\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.define-data-var.end.clarity\"}},\"name\":\"meta.define-data-var\",\"patterns\":[{\"include\":\"#data-type\"},{\"include\":\"#expression\"}]},\"define-function\":{\"begin\":\"(\\\\\\\\()\\\\\\\\s*(define-(?:public|private|read-only))\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.define-function.start.clarity\"},\"2\":{\"name\":\"keyword.declaration.define-function.clarity\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.define-function.end.clarity\"}},\"name\":\"meta.define-function\",\"patterns\":[{\"include\":\"#expression\"},{\"begin\":\"(\\\\\\\\()\\\\\\\\s*([a-zA-Z][\\\\\\\\w\\\\\\\\?\\\\\\\\!\\\\\\\\-]*)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.function-signature.start.clarity\"},\"2\":{\"name\":\"entity.name.function.clarity\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.function-signature.end.clarity\"}},\"name\":\"meta.define-function-signature\",\"patterns\":[{\"begin\":\"(\\\\\\\\()\\\\\\\\s*([a-zA-Z][\\\\\\\\w\\\\\\\\?\\\\\\\\!\\\\\\\\-]*)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.function-argument.start.clarity\"},\"2\":{\"name\":\"variable.parameter.clarity\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.function-argument.end.clarity\"}},\"name\":\"meta.function-argument\",\"patterns\":[{\"include\":\"#data-type\"}]}]},{\"include\":\"#user-func\"}]},\"define-fungible-token\":{\"captures\":{\"1\":{\"name\":\"punctuation.define-fungible-token.start.clarity\"},\"2\":{\"name\":\"keyword.declaration.define-fungible-token.clarity\"},\"3\":{\"name\":\"entity.name.fungible-token-name.clarity variable.other.clarity\"},\"4\":{\"name\":\"constant.numeric.fungible-token-total-supply.clarity\"},\"5\":{\"name\":\"punctuation.define-fungible-token.end.clarity\"}},\"match\":\"(\\\\\\\\()\\\\\\\\s*(define-fungible-token)\\\\\\\\s+([a-zA-Z][\\\\\\\\w\\\\\\\\?\\\\\\\\!\\\\\\\\-]*)(?:\\\\\\\\s+(u\\\\\\\\d+))?\"},\"define-map\":{\"begin\":\"(\\\\\\\\()\\\\\\\\s*(define-map)\\\\\\\\s+([a-zA-Z][\\\\\\\\w\\\\\\\\?\\\\\\\\!\\\\\\\\-]*)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.define-map.start.clarity\"},\"2\":{\"name\":\"keyword.declaration.define-map.clarity\"},\"3\":{\"name\":\"entity.name.map-name.clarity variable.other.clarity\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.define-map.end.clarity\"}},\"name\":\"meta.define-map\",\"patterns\":[{\"include\":\"#data-type\"},{\"include\":\"#expression\"}]},\"define-non-fungible-token\":{\"begin\":\"(\\\\\\\\()\\\\\\\\s*(define-non-fungible-token)\\\\\\\\s+([a-zA-Z][\\\\\\\\w\\\\\\\\?\\\\\\\\!\\\\\\\\-]*)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.define-non-fungible-token.start.clarity\"},\"2\":{\"name\":\"keyword.declaration.define-non-fungible-token.clarity\"},\"3\":{\"name\":\"entity.name.non-fungible-token-name.clarity variable.other.clarity\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.define-non-fungible-token.end.clarity\"}},\"name\":\"meta.define-non-fungible-token\",\"patterns\":[{\"include\":\"#data-type\"}]},\"define-trait\":{\"begin\":\"(\\\\\\\\()\\\\\\\\s*(define-trait)\\\\\\\\s+([a-zA-Z][\\\\\\\\w\\\\\\\\?\\\\\\\\!\\\\\\\\-]*)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.define-trait.start.clarity\"},\"2\":{\"name\":\"keyword.declaration.define-trait.clarity\"},\"3\":{\"name\":\"entity.name.trait-name.clarity variable.other.clarity\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.define-trait.end.clarity\"}},\"name\":\"meta.define-trait\",\"patterns\":[{\"begin\":\"(\\\\\\\\()\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.define-trait-body.start.clarity\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.define-trait-body.end.clarity\"}},\"name\":\"meta.define-trait-body\",\"patterns\":[{\"include\":\"#expression\"},{\"begin\":\"(\\\\\\\\()\\\\\\\\s*([a-zA-Z][\\\\\\\\w\\\\\\\\!\\\\\\\\?\\\\\\\\-]*)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.trait-function.start.clarity\"},\"2\":{\"name\":\"entity.name.function.clarity\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.trait-function.end.clarity\"}},\"name\":\"meta.trait-function\",\"patterns\":[{\"include\":\"#data-type\"},{\"begin\":\"(\\\\\\\\()\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.trait-function-args.start.clarity\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.trait-function-args.end.clarity\"}},\"name\":\"meta.trait-function-args\",\"patterns\":[{\"include\":\"#data-type\"}]}]}]}]},\"expression\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#keyword\"},{\"include\":\"#literal\"},{\"include\":\"#let-func\"},{\"include\":\"#built-in-func\"},{\"include\":\"#get-set-func\"}]},\"get-set-func\":{\"begin\":\"(\\\\\\\\()\\\\\\\\s*(var-get|var-set|map-get\\\\\\\\?|map-set|map-insert|map-delete|get)\\\\\\\\s+([a-zA-Z][\\\\\\\\w\\\\\\\\?\\\\\\\\!\\\\\\\\-]*)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.get-set-func.start.clarity\"},\"2\":{\"name\":\"keyword.control.clarity\"},\"3\":{\"name\":\"variable.other.clarity\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.get-set-func.end.clarity\"}},\"name\":\"meta.get-set-func\",\"patterns\":[{\"include\":\"#expression\"}]},\"keyword\":{\"match\":\"(?<!\\\\\\\\S)(?!-)\\\\\\\\b(?:block-height|burn-block-height|chain-id|contract-caller|is-in-regtest|stacks-block-height|stx-liquid-supply|tenure-height|tx-sender|tx-sponsor?)\\\\\\\\b(?!\\\\\\\\s*-)\",\"name\":\"constant.language.clarity\"},\"let-func\":{\"begin\":\"(\\\\\\\\()\\\\\\\\s*(let)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.let-function.start.clarity\"},\"2\":{\"name\":\"keyword.declaration.let-function.clarity\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.let-function.end.clarity\"}},\"name\":\"meta.let-function\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#user-func\"},{\"begin\":\"(\\\\\\\\()\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.let-var.start.clarity\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.let-var.end.clarity\"}},\"name\":\"meta.let-var\",\"patterns\":[{\"begin\":\"(\\\\\\\\()([a-zA-Z][\\\\\\\\w\\\\\\\\?\\\\\\\\!\\\\\\\\-]*)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.let-local-var.start.clarity\"},\"2\":{\"name\":\"entity.name.let-local-var-name.clarity variable.parameter.clarity\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.let-local-var.end.clarity\"}},\"name\":\"meta.let-local-var\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#user-func\"}]},{\"include\":\"#expression\"}]}]},\"literal\":{\"patterns\":[{\"include\":\"#number-literal\"},{\"include\":\"#bool-literal\"},{\"include\":\"#string-literal\"},{\"include\":\"#tuple-literal\"},{\"include\":\"#principal-literal\"},{\"include\":\"#list-literal\"},{\"include\":\"#optional-literal\"},{\"include\":\"#response-literal\"}],\"repository\":{\"bool-literal\":{\"match\":\"(?<!\\\\\\\\S)(?!-)\\\\\\\\b(true|false)\\\\\\\\b(?!\\\\\\\\s*-)\",\"name\":\"constant.language.bool.clarity\"},\"list-literal\":{\"begin\":\"(\\\\\\\\()\\\\\\\\s*(list)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.list.start.clarity\"},\"2\":{\"name\":\"entity.name.type.list.clarity\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"names\":\"punctuation.list.end.clarity\"}},\"name\":\"meta.list\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#user-func\"}]},\"number-literal\":{\"patterns\":[{\"comment\":\"unsigned integers\",\"match\":\"(?<!\\\\\\\\S)(?!-)\\\\\\\\bu\\\\\\\\d+\\\\\\\\b(?!\\\\\\\\s*-)\",\"name\":\"constant.numeric.uint.clarity\"},{\"comment\":\"signed integers\",\"match\":\"(?<!\\\\\\\\S)(?!-)\\\\\\\\b\\\\\\\\d+\\\\\\\\b(?!\\\\\\\\s*-)\",\"name\":\"constant.numeric.int.clarity\"},{\"comment\":\"hexadecimals\",\"match\":\"(?<!\\\\\\\\S)(?!-)\\\\\\\\b0x[0-9a-f]*\\\\\\\\b(?!\\\\\\\\s*-)\",\"name\":\"constant.numeric.hex.clarity\"}]},\"optional-literal\":{\"patterns\":[{\"match\":\"(?<!\\\\\\\\S)(?!-)\\\\\\\\b(none)\\\\\\\\b(?!\\\\\\\\s*-)\",\"name\":\"constant.language.none.clarity\"},{\"begin\":\"(\\\\\\\\()\\\\\\\\s*(some)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.some.start.clarity\"},\"2\":{\"name\":\"constant.language.some.clarity\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.some.end.clarity\"}},\"name\":\"meta.some\",\"patterns\":[{\"include\":\"#expression\"}]}]},\"principal-literal\":{\"match\":\"\\\\\\\\'[0-9A-Z]{28,41}(:?\\\\\\\\.[a-zA-Z][a-zA-Z0-9\\\\\\\\-]+){0,2}|(\\\\\\\\.[a-zA-Z][a-zA-Z0-9\\\\\\\\-]*){1,2}(?=[\\\\\\\\s(){},]|$)\",\"name\":\"constant.other.principal.clarity\"},\"response-literal\":{\"begin\":\"(\\\\\\\\()\\\\\\\\s*(ok|err)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.response.start.clarity\"},\"2\":{\"name\":\"constant.language.ok-err.clarity\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.response.end.clarity\"}},\"name\":\"meta.response\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#user-func\"}]},\"string-literal\":{\"patterns\":[{\"begin\":\"(u?)(\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"string.quoted.utf8.clarity\"},\"2\":{\"name\":\"punctuation.definition.string.begin.clarity\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.clarity\"}},\"name\":\"string.quoted.double.clarity\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.quote\"}]}]},\"tuple-literal\":{\"begin\":\"(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.tuple.start.clarity\"}},\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.tuple.end.clarity\"}},\"name\":\"meta.tuple\",\"patterns\":[{\"match\":\"([a-zA-Z][\\\\\\\\w\\\\\\\\?\\\\\\\\!\\\\\\\\-]*)(?=:)\",\"name\":\"entity.name.tag.tuple-key.clarity\"},{\"include\":\"#expression\"},{\"include\":\"#user-func\"}]}}},\"use-trait\":{\"begin\":\"(\\\\\\\\()\\\\\\\\s*(use-trait)\\\\\\\\s+([a-zA-Z][\\\\\\\\w\\\\\\\\?\\\\\\\\!\\\\\\\\-]*)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.use-trait.start.clarity\"},\"2\":{\"name\":\"keyword.declaration.use-trait.clarity\"},\"3\":{\"name\":\"entity.name.trait-alias.clarity variable.other.clarity\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.use-trait.end.clarity\"}},\"name\":\"meta.use-trait\",\"patterns\":[{\"include\":\"#literal\"}]},\"user-func\":{\"begin\":\"(\\\\\\\\()\\\\\\\\s*(([a-zA-Z][\\\\\\\\w\\\\\\\\?\\\\\\\\!\\\\\\\\-]*))\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.user-function.start.clarity\"},\"2\":{\"name\":\"entity.name.function.clarity\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.user-function.end.clarity\"}},\"name\":\"meta.user-function\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"$self\"}]}},\"scopeName\":\"source.clar\"}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BIEUsx6d.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"PowerShell\",\"name\":\"powershell\",\"patterns\":[{\"begin\":\"<#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.block.begin.powershell\"}},\"end\":\"#>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.block.end.powershell\"}},\"name\":\"comment.block.powershell\",\"patterns\":[{\"include\":\"#commentEmbeddedDocs\"}]},{\"match\":\"[2-6]>&1|>>|>|<<|<|>|>\\\\\\\\||[1-6]>|[1-6]>>\",\"name\":\"keyword.operator.redirection.powershell\"},{\"include\":\"#commands\"},{\"include\":\"#commentLine\"},{\"include\":\"#variable\"},{\"include\":\"#subexpression\"},{\"include\":\"#function\"},{\"include\":\"#attribute\"},{\"include\":\"#UsingDirective\"},{\"include\":\"#type\"},{\"include\":\"#hashtable\"},{\"include\":\"#doubleQuotedString\"},{\"include\":\"#scriptblock\"},{\"comment\":\"Needed to parse stuff correctly in 'argument mode'. (See about_parsing.)\",\"include\":\"#doubleQuotedStringEscapes\"},{\"applyEndPatternLast\":true,\"begin\":\"['\\\\\\\\x{2018}-\\\\\\\\x{201B}]\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.powershell\"}},\"end\":\"['\\\\\\\\x{2018}-\\\\\\\\x{201B}]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.powershell\"}},\"name\":\"string.quoted.single.powershell\",\"patterns\":[{\"match\":\"['\\\\\\\\x{2018}-\\\\\\\\x{201B}]{2}\",\"name\":\"constant.character.escape.powershell\"}]},{\"begin\":\"(@[\\\\\"\\\\\\\\x{201C}-\\\\\\\\x{201E}])\\\\\\\\s*$\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.powershell\"}},\"end\":\"^[\\\\\"\\\\\\\\x{201C}-\\\\\\\\x{201E}]@\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.powershell\"}},\"name\":\"string.quoted.double.heredoc.powershell\",\"patterns\":[{\"include\":\"#variableNoProperty\"},{\"include\":\"#doubleQuotedStringEscapes\"},{\"include\":\"#interpolation\"}]},{\"begin\":\"(@['\\\\\\\\x{2018}-\\\\\\\\x{201B}])\\\\\\\\s*$\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.powershell\"}},\"end\":\"^['\\\\\\\\x{2018}-\\\\\\\\x{201B}]@\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.powershell\"}},\"name\":\"string.quoted.single.heredoc.powershell\"},{\"include\":\"#numericConstant\"},{\"begin\":\"(@)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.array.begin.powershell\"},\"2\":{\"name\":\"punctuation.section.group.begin.powershell\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.group.end.powershell\"}},\"name\":\"meta.group.array-expression.powershell\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"((\\\\\\\\$))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.substatement.powershell\"},\"2\":{\"name\":\"punctuation.definition.subexpression.powershell\"},\"3\":{\"name\":\"punctuation.section.group.begin.powershell\"}},\"comment\":\"TODO: move to repo; make recursive.\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.group.end.powershell\"}},\"name\":\"meta.group.complex.subexpression.powershell\",\"patterns\":[{\"include\":\"$self\"}]},{\"match\":\"(\\\\\\\\b(([A-Za-z0-9\\\\\\\\-_\\\\\\\\.]+)\\\\\\\\.(?i:exe|com|cmd|bat))\\\\\\\\b)\",\"name\":\"support.function.powershell\"},{\"match\":\"(?<!\\\\\\\\w|-|\\\\\\\\.)((?i:begin|break|catch|clean|continue|data|default|define|do|dynamicparam|else|elseif|end|exit|finally|for|from|if|in|inlinescript|parallel|param|process|return|sequence|switch|throw|trap|try|until|var|while)|%|\\\\\\\\?)(?!\\\\\\\\w)\",\"name\":\"keyword.control.powershell\"},{\"match\":\"(?<!\\\\\\\\w|-|[^\\\\\\\\)]\\\\\\\\.)((?i:(foreach|where)(?!-object))|%|\\\\\\\\?)(?!\\\\\\\\w)\",\"name\":\"keyword.control.powershell\"},{\"begin\":\"(?<!\\\\\\\\w)(--%)(?!\\\\\\\\w)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.powershell\"}},\"comment\":\"This should be moved to the repository at some point.\",\"end\":\"$\",\"patterns\":[{\"match\":\".+\",\"name\":\"string.unquoted.powershell\"}]},{\"comment\":\"This should only be relevant inside a class but will require a rework of how classes are matched. This is a temp fix.\",\"match\":\"(?<!\\\\\\\\w)((?i:hidden|static))(?!\\\\\\\\w)\",\"name\":\"storage.modifier.powershell\"},{\"captures\":{\"1\":{\"name\":\"storage.type.powershell\"},\"2\":{\"name\":\"entity.name.function\"}},\"comment\":\"capture should be entity.name.type, but it doesn't provide a good color in the default schema.\",\"match\":\"(?<!\\\\\\\\w|-)((?i:class)|%|\\\\\\\\?)(?:\\\\\\\\s)+((?:\\\\\\\\p{L}|\\\\\\\\d|_|-|)+)\\\\\\\\b\"},{\"match\":\"(?<!\\\\\\\\w)-(?i:is(?:not)?|as)\\\\\\\\b\",\"name\":\"keyword.operator.comparison.powershell\"},{\"match\":\"(?<!\\\\\\\\w)-(?i:[ic]?(?:eq|ne|[gl][te]|(?:not)?(?:like|match|contains|in)|replace))(?!\\\\\\\\p{L})\",\"name\":\"keyword.operator.comparison.powershell\"},{\"match\":\"(?<!\\\\\\\\w)-(?i:join|split)(?!\\\\\\\\p{L})|!\",\"name\":\"keyword.operator.unary.powershell\"},{\"match\":\"(?<!\\\\\\\\w)-(?i:and|or|not|xor)(?!\\\\\\\\p{L})|!\",\"name\":\"keyword.operator.logical.powershell\"},{\"match\":\"(?<!\\\\\\\\w)-(?i:band|bor|bnot|bxor|shl|shr)(?!\\\\\\\\p{L})\",\"name\":\"keyword.operator.bitwise.powershell\"},{\"match\":\"(?<!\\\\\\\\w)-(?i:f)(?!\\\\\\\\p{L})\",\"name\":\"keyword.operator.string-format.powershell\"},{\"match\":\"[+%*/-]?=|[+/*%-]\",\"name\":\"keyword.operator.assignment.powershell\"},{\"match\":\"\\\\\\\\|{2}|&{2}|;\",\"name\":\"punctuation.terminator.statement.powershell\"},{\"match\":\"&|(?<!\\\\\\\\w)\\\\\\\\.(?= )|\\`|,|\\\\\\\\|\",\"name\":\"keyword.operator.other.powershell\"},{\"comment\":\"This is very imprecise, is there a syntax for 'must come after...' \",\"match\":\"(?<!\\\\\\\\s|^)\\\\\\\\.\\\\\\\\.(?=\\\\\\\\-?\\\\\\\\d|\\\\\\\\(|\\\\\\\\$)\",\"name\":\"keyword.operator.range.powershell\"}],\"repository\":{\"RequiresDirective\":{\"begin\":\"(?<=#)(?i:(requires))\\\\\\\\s\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.requires.powershell\"}},\"end\":\"$\",\"name\":\"meta.requires.powershell\",\"patterns\":[{\"match\":\"\\\\\\\\-(?i:Modules|PSSnapin|RunAsAdministrator|ShellId|Version|Assembly|PSEdition)\",\"name\":\"keyword.other.powershell\"},{\"match\":\"(?<!-)\\\\\\\\b\\\\\\\\p{L}+|\\\\\\\\d+(?:\\\\\\\\.\\\\\\\\d+)*\",\"name\":\"variable.parameter.powershell\"},{\"include\":\"#hashtable\"}]},\"UsingDirective\":{\"captures\":{\"1\":{\"name\":\"keyword.control.using.powershell\"},\"2\":{\"name\":\"keyword.other.powershell\"},\"3\":{\"name\":\"variable.parameter.powershell\"}},\"match\":\"(?<!\\\\\\\\w)(?i:(using))\\\\\\\\s+(?i:(namespace|module))\\\\\\\\s+(?i:((?:\\\\\\\\w+(?:\\\\\\\\.)?)+))\"},\"attribute\":{\"begin\":\"(\\\\\\\\[)\\\\\\\\s*\\\\\\\\b(?i)(cmdletbinding|alias|outputtype|parameter|validatenotnull|validatenotnullorempty|validatecount|validateset|allownull|allowemptycollection|allowemptystring|validatescript|validaterange|validatepattern|validatelength|supportswildcards)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.bracket.begin.powershell\"},\"2\":{\"name\":\"support.function.attribute.powershell\"}},\"end\":\"(\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.bracket.end.powershell\"}},\"name\":\"meta.attribute.powershell\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.group.begin.powershell\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.group.end.powershell\"}},\"patterns\":[{\"include\":\"$self\"},{\"captures\":{\"1\":{\"name\":\"variable.parameter.attribute.powershell\"},\"2\":{\"name\":\"keyword.operator.assignment.powershell\"}},\"match\":\"(?i)\\\\\\\\b(mandatory|valuefrompipeline|valuefrompipelinebypropertyname|valuefromremainingarguments|position|parametersetname|defaultparametersetname|supportsshouldprocess|supportspaging|positionalbinding|helpuri|confirmimpact|helpmessage)\\\\\\\\b(?:\\\\\\\\s+)?(=)?\"}]}]},\"commands\":{\"patterns\":[{\"comment\":\"Verb-Noun pattern:\",\"match\":\"(?:(\\\\\\\\p{L}|\\\\\\\\d|_|-|\\\\\\\\\\\\\\\\|\\\\\\\\:)*\\\\\\\\\\\\\\\\)?\\\\\\\\b(?i:Add|Approve|Assert|Backup|Block|Build|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Deploy|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Mount|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Write)\\\\\\\\-.+?(?:\\\\\\\\.(?i:exe|cmd|bat|ps1))?\\\\\\\\b\",\"name\":\"support.function.powershell\"},{\"comment\":\"Builtin cmdlets with reserved verbs\",\"match\":\"(?<!\\\\\\\\w)(?i:foreach-object)(?!\\\\\\\\w)\",\"name\":\"support.function.powershell\"},{\"comment\":\"Builtin cmdlets with reserved verbs\",\"match\":\"(?<!\\\\\\\\w)(?i:where-object)(?!\\\\\\\\w)\",\"name\":\"support.function.powershell\"},{\"comment\":\"Builtin cmdlets with reserved verbs\",\"match\":\"(?<!\\\\\\\\w)(?i:sort-object)(?!\\\\\\\\w)\",\"name\":\"support.function.powershell\"},{\"comment\":\"Builtin cmdlets with reserved verbs\",\"match\":\"(?<!\\\\\\\\w)(?i:tee-object)(?!\\\\\\\\w)\",\"name\":\"support.function.powershell\"}]},\"commentEmbeddedDocs\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.string.documentation.powershell\"},\"2\":{\"name\":\"keyword.operator.documentation.powershell\"}},\"comment\":\"these embedded doc keywords do not support arguments, must be the only thing on the line\",\"match\":\"(?:^|\\\\\\\\G)(?i:\\\\\\\\s*(\\\\\\\\.)(COMPONENT|DESCRIPTION|EXAMPLE|FUNCTIONALITY|INPUTS|LINK|NOTES|OUTPUTS|ROLE|SYNOPSIS))\\\\\\\\s*$\",\"name\":\"comment.documentation.embedded.powershell\"},{\"captures\":{\"1\":{\"name\":\"constant.string.documentation.powershell\"},\"2\":{\"name\":\"keyword.operator.documentation.powershell\"},\"3\":{\"name\":\"keyword.operator.documentation.powershell\"}},\"comment\":\"these embedded doc keywords require arguments though the type required may be inconsistent, they may not all be able to use the same argument match\",\"match\":\"(?:^|\\\\\\\\G)(?i:\\\\\\\\s*(\\\\\\\\.)(EXTERNALHELP|FORWARDHELP(?:CATEGORY|TARGETNAME)|PARAMETER|REMOTEHELPRUNSPACE))\\\\\\\\s+(.+?)\\\\\\\\s*$\",\"name\":\"comment.documentation.embedded.powershell\"}]},\"commentLine\":{\"begin\":\"(?<![\\`\\\\\\\\\\\\\\\\-])(#)#*\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.powershell\"}},\"end\":\"$\\\\\\\\n?\",\"name\":\"comment.line.powershell\",\"patterns\":[{\"include\":\"#commentEmbeddedDocs\"},{\"include\":\"#RequiresDirective\"}]},\"doubleQuotedString\":{\"applyEndPatternLast\":true,\"begin\":\"[\\\\\"\\\\\\\\x{201C}-\\\\\\\\x{201E}]\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.powershell\"}},\"end\":\"[\\\\\"\\\\\\\\x{201C}-\\\\\\\\x{201E}]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.powershell\"}},\"name\":\"string.quoted.double.powershell\",\"patterns\":[{\"match\":\"(?i)\\\\\\\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\\\\\\\.[A-Z]{2,64}\\\\\\\\b\"},{\"include\":\"#variableNoProperty\"},{\"include\":\"#doubleQuotedStringEscapes\"},{\"match\":\"[\\\\\"\\\\\\\\x{201C}-\\\\\\\\x{201E}]{2}\",\"name\":\"constant.character.escape.powershell\"},{\"include\":\"#interpolation\"},{\"match\":\"\\`\\\\\\\\s*$\",\"name\":\"keyword.other.powershell\"}]},\"doubleQuotedStringEscapes\":{\"patterns\":[{\"match\":\"\\`[\\`0abefnrtv'\\\\\"\\\\\\\\x{2018}-\\\\\\\\x{201E}$]\",\"name\":\"constant.character.escape.powershell\"},{\"include\":\"#unicodeEscape\"}]},\"function\":{\"begin\":\"^(?:\\\\\\\\s*+)(?i)(function|filter|configuration|workflow)\\\\\\\\s+(?:(global|local|script|private):)?((?:\\\\\\\\p{L}|\\\\\\\\d|_|-|\\\\\\\\.)+)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.function.powershell\"},\"1\":{\"name\":\"storage.type.powershell\"},\"2\":{\"name\":\"storage.modifier.scope.powershell\"},\"3\":{\"name\":\"entity.name.function.powershell\"}},\"end\":\"(?=\\\\\\\\{|\\\\\\\\()\",\"patterns\":[{\"include\":\"#commentLine\"}]},\"hashtable\":{\"begin\":\"(@)(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.hashtable.begin.powershell\"},\"2\":{\"name\":\"punctuation.section.braces.begin.powershell\"}},\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.braces.end.powershell\"}},\"name\":\"meta.hashtable.powershell\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.powershell\"},\"2\":{\"name\":\"variable.other.readwrite.powershell\"},\"3\":{\"name\":\"punctuation.definition.string.end.powershell\"},\"4\":{\"name\":\"keyword.operator.assignment.powershell\"}},\"match\":\"\\\\\\\\b((?:\\\\\\\\'|\\\\\\\\\\\\\")?)(\\\\\\\\w+)((?:\\\\\\\\'|\\\\\\\\\\\\\")?)(?:\\\\\\\\s+)?(=)(?:\\\\\\\\s+)?\",\"name\":\"meta.hashtable.assignment.powershell\"},{\"include\":\"#scriptblock\"},{\"include\":\"$self\"}]},\"interpolation\":{\"begin\":\"(((\\\\\\\\$)))((\\\\\\\\())\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.substatement.powershell\"},\"2\":{\"name\":\"punctuation.definition.substatement.powershell\"},\"3\":{\"name\":\"punctuation.section.embedded.substatement.begin.powershell\"},\"4\":{\"name\":\"punctuation.section.group.begin.powershell\"},\"5\":{\"name\":\"punctuation.section.embedded.substatement.begin.powershell\"}},\"contentName\":\"interpolated.complex.source.powershell\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.group.end.powershell\"},\"1\":{\"name\":\"punctuation.section.embedded.substatement.end.powershell\"}},\"name\":\"meta.embedded.substatement.powershell\",\"patterns\":[{\"include\":\"$self\"}]},\"numericConstant\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.numeric.hex.powershell\"},\"2\":{\"name\":\"keyword.other.powershell\"}},\"match\":\"(?<!\\\\\\\\w)([-+]?0(?:x|X)[0-9a-fA-F_]+(?:U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?)((?i:[kmgtp]b)?)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.integer.powershell\"},\"2\":{\"name\":\"keyword.other.powershell\"}},\"match\":\"(?<!\\\\\\\\w)([-+]?(?:[0-9_]+)?\\\\\\\\.[0-9_]+(?:(?:e|E)[0-9]+)?(?:F|f|D|d|M|m)?)((?i:[kmgtp]b)?)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.octal.powershell\"},\"2\":{\"name\":\"keyword.other.powershell\"}},\"match\":\"(?<!\\\\\\\\w)([-+]?0(?:b|B)[01_]+(?:U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?)((?i:[kmgtp]b)?)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.integer.powershell\"},\"2\":{\"name\":\"keyword.other.powershell\"}},\"match\":\"(?<!\\\\\\\\w)([-+]?[0-9_]+(?:e|E)(?:[0-9_])?+(?:F|f|D|d|M|m)?)((?i:[kmgtp]b)?)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.integer.powershell\"},\"2\":{\"name\":\"keyword.other.powershell\"}},\"match\":\"(?<!\\\\\\\\w)([-+]?[0-9_]+\\\\\\\\.(?:e|E)(?:[0-9_])?+(?:F|f|D|d|M|m)?)((?i:[kmgtp]b)?)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.integer.powershell\"},\"2\":{\"name\":\"keyword.other.powershell\"}},\"match\":\"(?<!\\\\\\\\w)([-+]?[0-9_]+[\\\\\\\\.]?(?:F|f|D|d|M|m))((?i:[kmgtp]b)?)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.integer.powershell\"},\"2\":{\"name\":\"keyword.other.powershell\"}},\"match\":\"(?<!\\\\\\\\w)([-+]?[0-9_]+[\\\\\\\\.]?(?:U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?)((?i:[kmgtp]b)?)\\\\\\\\b\"}]},\"scriptblock\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.braces.begin.powershell\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.braces.end.powershell\"}},\"name\":\"meta.scriptblock.powershell\",\"patterns\":[{\"include\":\"$self\"}]},\"subexpression\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.group.begin.powershell\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.group.end.powershell\"}},\"name\":\"meta.group.simple.subexpression.powershell\",\"patterns\":[{\"include\":\"$self\"}]},\"type\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.bracket.begin.powershell\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.bracket.end.powershell\"}},\"patterns\":[{\"match\":\"(?!\\\\\\\\d+|\\\\\\\\.)(?:\\\\\\\\p{L}|\\\\\\\\p{N}|\\\\\\\\.)+\",\"name\":\"storage.type.powershell\"},{\"include\":\"$self\"}]},\"unicodeEscape\":{\"comment\":\"\\`u{xxxx} added in PowerShell 6.0\",\"patterns\":[{\"match\":\"\\`u\\\\\\\\{(?:(?:10)?([0-9a-fA-F]){1,4}|0?\\\\\\\\g<1>{1,5})}\",\"name\":\"constant.character.escape.powershell\"},{\"match\":\"\\`u(?:\\\\\\\\{[0-9a-fA-F]{,6}.)?\",\"name\":\"invalid.character.escape.powershell\"}]},\"variable\":{\"patterns\":[{\"captures\":{\"0\":{\"name\":\"constant.language.powershell\"},\"1\":{\"name\":\"punctuation.definition.variable.powershell\"}},\"comment\":\"These are special constants.\",\"match\":\"(\\\\\\\\$)(?i:(False|Null|True))\\\\\\\\b\"},{\"captures\":{\"0\":{\"name\":\"support.constant.variable.powershell\"},\"1\":{\"name\":\"punctuation.definition.variable.powershell\"},\"3\":{\"name\":\"variable.other.member.powershell\"}},\"comment\":\"These are the other built-in constants.\",\"match\":\"(\\\\\\\\$)(?i:(Error|ExecutionContext|Host|Home|PID|PsHome|PsVersionTable|ShellID))((?:\\\\\\\\.(?:\\\\\\\\p{L}|\\\\\\\\d|_)+)*\\\\\\\\b)?\\\\\\\\b\"},{\"captures\":{\"0\":{\"name\":\"support.variable.automatic.powershell\"},\"1\":{\"name\":\"punctuation.definition.variable.powershell\"},\"3\":{\"name\":\"variable.other.member.powershell\"}},\"comment\":\"Automatic variables are not constants, but they are read-only. In monokai (default) color schema support.variable doesn't have color, so we use constant.\",\"match\":\"(\\\\\\\\$)((?:[$^?])|(?i:_|Args|ConsoleFileName|Event|EventArgs|EventSubscriber|ForEach|Input|LastExitCode|Matches|MyInvocation|NestedPromptLevel|Profile|PSBoundParameters|PsCmdlet|PsCulture|PSDebugContext|PSItem|PSCommandPath|PSScriptRoot|PsUICulture|Pwd|Sender|SourceArgs|SourceEventArgs|StackTrace|Switch|This)\\\\\\\\b)((?:\\\\\\\\.(?:\\\\\\\\p{L}|\\\\\\\\d|_)+)*\\\\\\\\b)?\"},{\"captures\":{\"0\":{\"name\":\"variable.language.powershell\"},\"1\":{\"name\":\"punctuation.definition.variable.powershell\"},\"3\":{\"name\":\"variable.other.member.powershell\"}},\"comment\":\"Style preference variables as language variables so that they stand out.\",\"match\":\"(\\\\\\\\$)(?i:(ConfirmPreference|DebugPreference|ErrorActionPreference|ErrorView|FormatEnumerationLimit|InformationPreference|LogCommandHealthEvent|LogCommandLifecycleEvent|LogEngineHealthEvent|LogEngineLifecycleEvent|LogProviderHealthEvent|LogProviderLifecycleEvent|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount|MaximumHistoryCount|MaximumVariableCount|OFS|OutputEncoding|PSCulture|PSDebugContext|PSDefaultParameterValues|PSEmailServer|PSItem|PSModuleAutoLoadingPreference|PSModuleAutoloadingPreference|PSSenderInfo|PSSessionApplicationName|PSSessionConfigurationName|PSSessionOption|ProgressPreference|VerbosePreference|WarningPreference|WhatIfPreference))((?:\\\\\\\\.(?:\\\\\\\\p{L}|\\\\\\\\d|_)+)*\\\\\\\\b)?\\\\\\\\b\"},{\"captures\":{\"0\":{\"name\":\"variable.other.readwrite.powershell\"},\"1\":{\"name\":\"punctuation.definition.variable.powershell\"},\"2\":{\"name\":\"storage.modifier.scope.powershell\"},\"4\":{\"name\":\"variable.other.member.powershell\"}},\"match\":\"(?i:(\\\\\\\\$|@)(global|local|private|script|using|workflow):((?:\\\\\\\\p{L}|\\\\\\\\d|_)+))((?:\\\\\\\\.(?:\\\\\\\\p{L}|\\\\\\\\d|_)+)*\\\\\\\\b)?\"},{\"captures\":{\"0\":{\"name\":\"variable.other.readwrite.powershell\"},\"1\":{\"name\":\"punctuation.definition.variable.powershell\"},\"2\":{\"name\":\"punctuation.section.braces.begin.powershell\"},\"3\":{\"name\":\"storage.modifier.scope.powershell\"},\"5\":{\"name\":\"punctuation.section.braces.end.powershell\"},\"6\":{\"name\":\"variable.other.member.powershell\"}},\"match\":\"(?i:(\\\\\\\\$)(\\\\\\\\{)(global|local|private|script|using|workflow):([^}]*[^}\\`])(\\\\\\\\}))((?:\\\\\\\\.(?:\\\\\\\\p{L}|\\\\\\\\d|_)+)*\\\\\\\\b)?\"},{\"captures\":{\"0\":{\"name\":\"variable.other.readwrite.powershell\"},\"1\":{\"name\":\"punctuation.definition.variable.powershell\"},\"2\":{\"name\":\"support.variable.drive.powershell\"},\"4\":{\"name\":\"variable.other.member.powershell\"}},\"match\":\"(?i:(\\\\\\\\$|@)((?:\\\\\\\\p{L}|\\\\\\\\d|_)+:)?((?:\\\\\\\\p{L}|\\\\\\\\d|_)+))((?:\\\\\\\\.(?:\\\\\\\\p{L}|\\\\\\\\d|_)+)*\\\\\\\\b)?\"},{\"captures\":{\"0\":{\"name\":\"variable.other.readwrite.powershell\"},\"1\":{\"name\":\"punctuation.definition.variable.powershell\"},\"2\":{\"name\":\"punctuation.section.braces.begin.powershell\"},\"3\":{\"name\":\"support.variable.drive.powershell\"},\"5\":{\"name\":\"punctuation.section.braces.end.powershell\"},\"6\":{\"name\":\"variable.other.member.powershell\"}},\"match\":\"(?i:(\\\\\\\\$)(\\\\\\\\{)((?:\\\\\\\\p{L}|\\\\\\\\d|_)+:)?([^}]*[^}\\`])(\\\\\\\\}))((?:\\\\\\\\.(?:\\\\\\\\p{L}|\\\\\\\\d|_)+)*\\\\\\\\b)?\"}]},\"variableNoProperty\":{\"patterns\":[{\"captures\":{\"0\":{\"name\":\"constant.language.powershell\"},\"1\":{\"name\":\"punctuation.definition.variable.powershell\"}},\"comment\":\"These are special constants.\",\"match\":\"(\\\\\\\\$)(?i:(False|Null|True))\\\\\\\\b\"},{\"captures\":{\"0\":{\"name\":\"support.constant.variable.powershell\"},\"1\":{\"name\":\"punctuation.definition.variable.powershell\"},\"3\":{\"name\":\"variable.other.member.powershell\"}},\"comment\":\"These are the other built-in constants.\",\"match\":\"(\\\\\\\\$)(?i:(Error|ExecutionContext|Host|Home|PID|PsHome|PsVersionTable|ShellID))\\\\\\\\b\"},{\"captures\":{\"0\":{\"name\":\"support.variable.automatic.powershell\"},\"1\":{\"name\":\"punctuation.definition.variable.powershell\"},\"3\":{\"name\":\"variable.other.member.powershell\"}},\"comment\":\"Automatic variables are not constants, but they are read-only...\",\"match\":\"(\\\\\\\\$)((?:[$^?])|(?i:_|Args|ConsoleFileName|Event|EventArgs|EventSubscriber|ForEach|Input|LastExitCode|Matches|MyInvocation|NestedPromptLevel|Profile|PSBoundParameters|PsCmdlet|PsCulture|PSDebugContext|PSItem|PSCommandPath|PSScriptRoot|PsUICulture|Pwd|Sender|SourceArgs|SourceEventArgs|StackTrace|Switch|This)\\\\\\\\b)\"},{\"captures\":{\"0\":{\"name\":\"variable.language.powershell\"},\"1\":{\"name\":\"punctuation.definition.variable.powershell\"},\"3\":{\"name\":\"variable.other.member.powershell\"}},\"comment\":\"Style preference variables as language variables so that they stand out.\",\"match\":\"(\\\\\\\\$)(?i:(ConfirmPreference|DebugPreference|ErrorActionPreference|ErrorView|FormatEnumerationLimit|InformationPreference|LogCommandHealthEvent|LogCommandLifecycleEvent|LogEngineHealthEvent|LogEngineLifecycleEvent|LogProviderHealthEvent|LogProviderLifecycleEvent|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount|MaximumHistoryCount|MaximumVariableCount|OFS|OutputEncoding|PSCulture|PSDebugContext|PSDefaultParameterValues|PSEmailServer|PSItem|PSModuleAutoLoadingPreference|PSModuleAutoloadingPreference|PSSenderInfo|PSSessionApplicationName|PSSessionConfigurationName|PSSessionOption|ProgressPreference|VerbosePreference|WarningPreference|WhatIfPreference))\\\\\\\\b\"},{\"captures\":{\"0\":{\"name\":\"variable.other.readwrite.powershell\"},\"1\":{\"name\":\"punctuation.definition.variable.powershell\"},\"2\":{\"name\":\"storage.modifier.scope.powershell\"},\"4\":{\"name\":\"variable.other.member.powershell\"}},\"match\":\"(?i:(\\\\\\\\$)(global|local|private|script|using|workflow):((?:\\\\\\\\p{L}|\\\\\\\\d|_)+))\"},{\"captures\":{\"0\":{\"name\":\"variable.other.readwrite.powershell\"},\"1\":{\"name\":\"punctuation.definition.variable.powershell\"},\"2\":{\"name\":\"storage.modifier.scope.powershell\"},\"4\":{\"name\":\"keyword.other.powershell\"},\"5\":{\"name\":\"variable.other.member.powershell\"}},\"match\":\"(?i:(\\\\\\\\$)(\\\\\\\\{)(global|local|private|script|using|workflow):([^}]*[^}\\`])(\\\\\\\\}))\"},{\"captures\":{\"0\":{\"name\":\"variable.other.readwrite.powershell\"},\"1\":{\"name\":\"punctuation.definition.variable.powershell\"},\"2\":{\"name\":\"support.variable.drive.powershell\"},\"4\":{\"name\":\"variable.other.member.powershell\"}},\"match\":\"(?i:(\\\\\\\\$)((?:\\\\\\\\p{L}|\\\\\\\\d|_)+:)?((?:\\\\\\\\p{L}|\\\\\\\\d|_)+))\"},{\"captures\":{\"0\":{\"name\":\"variable.other.readwrite.powershell\"},\"1\":{\"name\":\"punctuation.definition.variable.powershell\"},\"2\":{\"name\":\"punctuation.section.braces.begin\"},\"3\":{\"name\":\"support.variable.drive.powershell\"},\"5\":{\"name\":\"punctuation.section.braces.end\"}},\"match\":\"(?i:(\\\\\\\\$)(\\\\\\\\{)((?:\\\\\\\\p{L}|\\\\\\\\d|_)+:)?([^}]*[^}\\`])(\\\\\\\\}))\"}]}},\"scopeName\":\"source.powershell\",\"aliases\":[\"ps\",\"ps1\"]}`)),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BILxekzW.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Haskell\",\"fileTypes\":[\"hs\",\"hs-boot\",\"hsig\"],\"name\":\"haskell\",\"patterns\":[{\"include\":\"#liquid_haskell\"},{\"include\":\"#comment_like\"},{\"include\":\"#numeric_literals\"},{\"include\":\"#string_literal\"},{\"include\":\"#char_literal\"},{\"match\":\"(?<!@|#)-\\\\\\\\}\",\"name\":\"invalid\"},{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\\\\\()\\\\\\\\s*(\\\\\\\\))\",\"name\":\"constant.language.unit.haskell\"},{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"},\"3\":{\"name\":\"keyword.operator.hash.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\\\\\()(#)\\\\\\\\s*(#)(\\\\\\\\))\",\"name\":\"constant.language.unit.unboxed.haskell\"},{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\\\\\()\\\\\\\\s*,[\\\\\\\\s,]*(\\\\\\\\))\",\"name\":\"support.constant.tuple.haskell\"},{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"},\"3\":{\"name\":\"keyword.operator.hash.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\\\\\()(#)\\\\\\\\s*,[\\\\\\\\s,]*(#)(\\\\\\\\))\",\"name\":\"support.constant.tuple.unboxed.haskell\"},{\"captures\":{\"1\":{\"name\":\"punctuation.bracket.haskell\"},\"2\":{\"name\":\"punctuation.bracket.haskell\"}},\"match\":\"(\\\\\\\\[)\\\\\\\\s*(\\\\\\\\])\",\"name\":\"constant.language.empty-list.haskell\"},{\"begin\":\"(\\\\\\\\b(?<!')(module)|^(signature))(\\\\\\\\b(?!'))\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.module.haskell\"},\"3\":{\"name\":\"keyword.other.signature.haskell\"}},\"end\":\"(?=\\\\\\\\b(?<!')where\\\\\\\\b(?!'))\",\"name\":\"meta.declaration.module.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#module_name\"},{\"include\":\"#module_exports\"},{\"match\":\"[a-z]+\",\"name\":\"invalid\"}]},{\"include\":\"#ffi\"},{\"begin\":\"^(\\\\\\\\s*)(class)(\\\\\\\\b(?!'))\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.class.haskell\"}},\"end\":\"(?=(?<!')\\\\\\\\bwhere\\\\\\\\b(?!'))|(?=\\\\\\\\}|;)|^(?!\\\\\\\\1\\\\\\\\s+\\\\\\\\S|\\\\\\\\s*(?:$|\\\\\\\\{-[^@]|--+(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]{}\\`_\\\\\"']]).*$))\",\"name\":\"meta.declaration.class.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#where\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"^(\\\\\\\\s*)(data|newtype)(?:\\\\\\\\s+(instance))?\\\\\\\\s+((?:(?!(?:(?<![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']])(?:=|--+)(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']]))|(?:\\\\\\\\b(?<!')(?:where|deriving)\\\\\\\\b(?!'))|{-).)*)(?=\\\\\\\\b(?<!'')where\\\\\\\\b(?!''))\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.$2.haskell\"},\"3\":{\"name\":\"keyword.other.instance.haskell\"},\"4\":{\"patterns\":[{\"include\":\"#type_signature\"}]}},\"end\":\"(?=(?<!')\\\\\\\\bderiving\\\\\\\\b(?!'))|(?=\\\\\\\\}|;)|^(?!\\\\\\\\1\\\\\\\\s+\\\\\\\\S|\\\\\\\\s*(?:$|\\\\\\\\{-[^@]|--+(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]{}\\`_\\\\\"']]).*$))\",\"name\":\"meta.declaration.$2.generalized.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"begin\":\"(?<!')\\\\\\\\b(where)\\\\\\\\s*(\\\\\\\\{)(?!-)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.where.haskell\"},\"2\":{\"name\":\"punctuation.brace.haskell\"}},\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#gadt_constructor\"},{\"match\":\";\",\"name\":\"punctuation.semicolon.haskell\"}]},{\"match\":\"\\\\\\\\b(?<!')(where)\\\\\\\\b(?!')\",\"name\":\"keyword.other.where.haskell\"},{\"include\":\"#deriving\"},{\"include\":\"#gadt_constructor\"}]},{\"include\":\"#role_annotation\"},{\"begin\":\"^(\\\\\\\\s*)(pattern)\\\\\\\\s+(.*?)\\\\\\\\s+(::|∷)(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']])\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.pattern.haskell\"},\"3\":{\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"#data_constructor\"}]},\"4\":{\"name\":\"keyword.operator.double-colon.haskell\"}},\"end\":\"(?=\\\\\\\\}|;)|^(?!\\\\\\\\1\\\\\\\\s+\\\\\\\\S|\\\\\\\\s*(?:$|\\\\\\\\{-[^@]|--+(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]{}\\`_\\\\\"']]).*$))\",\"name\":\"meta.declaration.pattern.type.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"^\\\\\\\\s*(pattern)\\\\\\\\b(?!')\",\"captures\":{\"1\":{\"name\":\"keyword.other.pattern.haskell\"}},\"end\":\"(?=\\\\\\\\}|;)|^(?!\\\\\\\\1\\\\\\\\s+\\\\\\\\S|\\\\\\\\s*(?:$|\\\\\\\\{-[^@]|--+(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]{}\\`_\\\\\"']]).*$))\",\"name\":\"meta.declaration.pattern.haskell\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"^(\\\\\\\\s*)(data|newtype)(?:\\\\\\\\s+(family|instance))?\\\\\\\\s+(((?!(?:(?<![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']])(?:=|--+)(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']]))|(?:\\\\\\\\b(?<!')(?:where|deriving)\\\\\\\\b(?!'))|{-).)*)\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.$2.haskell\"},\"3\":{\"name\":\"keyword.other.$3.haskell\"},\"4\":{\"patterns\":[{\"include\":\"#type_signature\"}]}},\"end\":\"(?=\\\\\\\\}|;)|^(?!\\\\\\\\1\\\\\\\\s+\\\\\\\\S|\\\\\\\\s*(?:$|\\\\\\\\{-[^@]|--+(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]{}\\`_\\\\\"']]).*$))\",\"name\":\"meta.declaration.$2.algebraic.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#deriving\"},{\"include\":\"#forall\"},{\"include\":\"#adt_constructor\"},{\"include\":\"#context\"},{\"include\":\"#record_decl\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"^(\\\\\\\\s*)(type)\\\\\\\\s+(family)\\\\\\\\b(?!')(((?!(?:(?<![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']])(?:=|--+)(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']]))|\\\\\\\\b(?<!')where\\\\\\\\b(?!')|{-).)*)\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.type.haskell\"},\"3\":{\"name\":\"keyword.other.family.haskell\"},\"4\":{\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#where\"},{\"include\":\"#type_signature\"}]}},\"end\":\"(?=\\\\\\\\}|;)|^(?!\\\\\\\\1\\\\\\\\s+\\\\\\\\S|\\\\\\\\s*(?:$|\\\\\\\\{-[^@]|--+(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]{}\\`_\\\\\"']]).*$))\",\"name\":\"meta.declaration.type.family.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#where\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"^(\\\\\\\\s*)(type)(?:\\\\\\\\s+(instance))?\\\\\\\\s+(((?!(?:(?<![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']])(?:=|--+|::|∷)(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']]))|{-).)*)\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.type.haskell\"},\"3\":{\"name\":\"keyword.other.instance.haskell\"},\"4\":{\"patterns\":[{\"include\":\"#type_signature\"}]}},\"end\":\"(?=\\\\\\\\}|;)|^(?!\\\\\\\\1\\\\\\\\s+\\\\\\\\S|\\\\\\\\s*(?:$|\\\\\\\\{-[^@]|--+(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]{}\\`_\\\\\"']]).*$))\",\"name\":\"meta.declaration.type.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"^(\\\\\\\\s*)(instance)(\\\\\\\\b(?!'))\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.instance.haskell\"}},\"end\":\"(?=\\\\\\\\b(?<!')(where)\\\\\\\\b(?!'))|(?=\\\\\\\\}|;)|^(?!\\\\\\\\1\\\\\\\\s+\\\\\\\\S|\\\\\\\\s*(?:$|\\\\\\\\{-[^@]|--+(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]{}\\`_\\\\\"']]).*$))\",\"name\":\"meta.declaration.instance.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#where\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"^(\\\\\\\\s*)(import)(\\\\\\\\b(?!'))\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.import.haskell\"}},\"end\":\"(?=\\\\\\\\b(?<!')(where)\\\\\\\\b(?!'))|(?=\\\\\\\\}|;)|^(?!\\\\\\\\1\\\\\\\\s+\\\\\\\\S|\\\\\\\\s*(?:$|\\\\\\\\{-[^@]|--+(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]{}\\`_\\\\\"']]).*$))\",\"name\":\"meta.import.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#where\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.$1.haskell\"}},\"match\":\"(qualified|as|hiding)\"},{\"include\":\"#module_name\"},{\"include\":\"#module_exports\"}]},{\"include\":\"#deriving\"},{\"include\":\"#layout_herald\"},{\"include\":\"#keyword\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.$1.haskell\"},\"2\":{\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#integer_literals\"},{\"include\":\"#infix_op\"}]}},\"match\":\"^\\\\\\\\s*(infix[lr]?)\\\\\\\\s+(.*)\",\"name\":\"meta.fixity-declaration.haskell\"},{\"include\":\"#overloaded_label\"},{\"include\":\"#type_application\"},{\"include\":\"#reserved_symbol\"},{\"include\":\"#fun_decl\"},{\"include\":\"#qualifier\"},{\"include\":\"#data_constructor\"},{\"include\":\"#start_type_signature\"},{\"include\":\"#prefix_op\"},{\"include\":\"#infix_op\"},{\"begin\":\"(\\\\\\\\()(#)\\\\\\\\s\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"}},\"end\":\"(#)(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.hash.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"$self\"}]},{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"$self\"}]},{\"include\":\"#quasi_quote\"},{\"begin\":\"(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.bracket.haskell\"}},\"end\":\"(\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.bracket.haskell\"}},\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"$self\"}]},{\"include\":\"#record\"}],\"repository\":{\"adt_constructor\":{\"patterns\":[{\"include\":\"#comment_like\"},{\"begin\":\"(?<![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']])(?:(=)|(\\\\\\\\|))(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.eq.haskell\"},\"2\":{\"name\":\"keyword.operator.pipe.haskell\"}},\"end\":\"(?:\\\\\\\\G|^)\\\\\\\\s*(?:(?:(?<!')\\\\\\\\b((?:[\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}'\\\\\\\\.])+)|('?(?<paren>\\\\\\\\((?:[^\\\\\\\\(\\\\\\\\)]*|\\\\\\\\g<paren>)*\\\\\\\\)))|('?(?<brac>\\\\\\\\((?:[^\\\\\\\\[\\\\\\\\]]*|\\\\\\\\g<brac>)*\\\\\\\\])))\\\\\\\\s*(?:(?<![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']])(:[\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']]*)|(\\`)([\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)(\\`)))|(?:(?<!')\\\\\\\\b([\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*))|(\\\\\\\\()\\\\\\\\s*(:[\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']]*)\\\\\\\\s*(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#type_signature\"}]},\"2\":{\"patterns\":[{\"include\":\"#type_signature\"}]},\"4\":{\"patterns\":[{\"include\":\"#type_signature\"}]},\"6\":{\"name\":\"constant.other.operator.haskell\"},\"7\":{\"name\":\"punctuation.backtick.haskell\"},\"8\":{\"name\":\"constant.other.haskell\"},\"9\":{\"name\":\"punctuation.backtick.haskell\"},\"10\":{\"name\":\"constant.other.haskell\"},\"11\":{\"name\":\"punctuation.paren.haskell\"},\"12\":{\"name\":\"constant.other.operator.haskell\"},\"13\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#deriving\"},{\"include\":\"#record_decl\"},{\"include\":\"#forall\"},{\"include\":\"#context\"}]}]},\"block_comment\":{\"applyEndPatternLast\":1,\"begin\":\"\\\\\\\\{-\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.haskell\"}},\"end\":\"-\\\\\\\\}\",\"name\":\"comment.block.haskell\",\"patterns\":[{\"include\":\"#block_comment\"}]},\"char_literal\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.haskell\"},\"2\":{\"name\":\"constant.character.escape.haskell\"},\"3\":{\"name\":\"constant.character.escape.octal.haskell\"},\"4\":{\"name\":\"constant.character.escape.hexadecimal.haskell\"},\"5\":{\"name\":\"constant.character.escape.control.haskell\"},\"6\":{\"name\":\"punctuation.definition.string.end.haskell\"}},\"match\":\"(?<![\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}'])(')(?:[\\\\\\\\ -\\\\\\\\[\\\\\\\\]-~]|(\\\\\\\\\\\\\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"'\\\\\\\\\\\\\\\\&]))|(\\\\\\\\\\\\\\\\o[0-7]+)|(\\\\\\\\\\\\\\\\x[0-9A-Fa-f]+)|(\\\\\\\\\\\\\\\\\\\\\\\\^[A-Z@\\\\\\\\[\\\\\\\\]\\\\\\\\\\\\\\\\\\\\\\\\^_]))(')\",\"name\":\"string.quoted.single.haskell\"},\"comma\":{\"match\":\",\",\"name\":\"punctuation.separator.comma.haskell\"},\"comment_like\":{\"patterns\":[{\"include\":\"#cpp\"},{\"include\":\"#pragma\"},{\"include\":\"#comments\"}]},\"comments\":{\"patterns\":[{\"begin\":\"^(\\\\\\\\s*)(--\\\\\\\\s[\\\\\\\\|\\\\\\\\$])\",\"beginCaptures\":{\"2\":{\"name\":\"punctuation.whitespace.comment.leading.haskell\"}},\"end\":\"(?=^(?!\\\\\\\\1--+(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']])))\",\"name\":\"comment.block.documentation.haskell\"},{\"begin\":\"(^[ \\\\\\\\t]+)?(--\\\\\\\\s[\\\\\\\\^\\\\\\\\*])\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.haskell\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.documentation.haskell\"},{\"applyEndPatternLast\":1,\"begin\":\"\\\\\\\\{-\\\\\\\\s?[\\\\\\\\|\\\\\\\\$\\\\\\\\*\\\\\\\\^]\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.haskell\"}},\"end\":\"-\\\\\\\\}\",\"name\":\"comment.block.documentation.haskell\",\"patterns\":[{\"include\":\"#block_comment\"}]},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=--+(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']]))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.haskell\"}},\"comment\":\"Operators may begin with '--' as long as they are not entirely composed of '-' characters. This means comments can't be immediately followed by an allowable operator character.\",\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"--\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.haskell\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.double-dash.haskell\"}]},{\"include\":\"#block_comment\"}]},\"context\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#type_signature\"}]},\"2\":{\"name\":\"keyword.operator.big-arrow.haskell\"}},\"match\":\"(.*)(?<![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']])(=>|⇒)(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']])\"},\"cpp\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.preprocessor.c\"}},\"comment\":\"In addition to Haskell's \\\\\"native\\\\\" syntax, GHC permits the C preprocessor to be run on a source file.\",\"match\":\"^(#).*$\",\"name\":\"meta.preprocessor.c\"},\"data_constructor\":{\"match\":\"\\\\\\\\b(?<!')[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*(?![\\\\\\\\.'\\\\\\\\w])\",\"name\":\"constant.other.haskell\"},\"deriving\":{\"patterns\":[{\"begin\":\"^(\\\\\\\\s*)(deriving)\\\\\\\\s+(?:(via|stock|newtype|anyclass)\\\\\\\\s+)?\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.deriving.haskell\"},\"3\":{\"name\":\"keyword.other.deriving.strategy.$3.haskell\"}},\"end\":\"(?=\\\\\\\\}|;)|^(?!\\\\\\\\1\\\\\\\\s+\\\\\\\\S|\\\\\\\\s*(?:$|\\\\\\\\{-[^@]|--+(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]{}\\`_\\\\\"']]).*$))\",\"name\":\"meta.deriving.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"match\":\"(?<!')\\\\\\\\b(instance)\\\\\\\\b(?!')\",\"name\":\"keyword.other.instance.haskell\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.deriving.strategy.$1.haskell\"}},\"match\":\"(?<!')\\\\\\\\b(via|stock|newtype|anyclass)\\\\\\\\b(?!')\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"(deriving)(?:\\\\\\\\s+(stock|newtype|anyclass))?\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.deriving.haskell\"},\"2\":{\"name\":\"keyword.other.deriving.strategy.$2.haskell\"},\"3\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"}},\"name\":\"meta.deriving.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.other.deriving.haskell\"},\"2\":{\"name\":\"keyword.other.deriving.strategy.$2.haskell\"},\"3\":{\"patterns\":[{\"include\":\"#type_signature\"}]},\"5\":{\"name\":\"keyword.other.deriving.strategy.via.haskell\"},\"6\":{\"patterns\":[{\"include\":\"#type_signature\"}]}},\"match\":\"(deriving)(?:\\\\\\\\s+(stock|newtype|anyclass))?\\\\\\\\s+([\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)(\\\\\\\\s+(via)\\\\\\\\s+(.*)$)?\",\"name\":\"meta.deriving.haskell\"},{\"match\":\"(?<!')\\\\\\\\b(via)\\\\\\\\b(?!')\",\"name\":\"keyword.other.deriving.strategy.via.haskell\"}]},\"double_colon\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.double-colon.haskell\"}},\"match\":\"\\\\\\\\s*(::|∷)(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']])\\\\\\\\s*\"},\"export_constructs\":{\"patterns\":[{\"include\":\"#comment_like\"},{\"begin\":\"\\\\\\\\b(?<!')(pattern)\\\\\\\\b(?!')\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.pattern.haskell\"}},\"end\":\"([\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)|(\\\\\\\\()\\\\\\\\s*(:[\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']]+)\\\\\\\\s*(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"constant.other.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"constant.other.operator.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"}]},{\"begin\":\"\\\\\\\\b(?<!')(type)\\\\\\\\b(?!')\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.type.haskell\"}},\"end\":\"([\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)|(\\\\\\\\()\\\\\\\\s*([\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']]+)\\\\\\\\s*(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"storage.type.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"storage.type.operator.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"}]},{\"match\":\"(?<!')\\\\\\\\b[\\\\\\\\p{Ll}_][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*\",\"name\":\"entity.name.function.haskell\"},{\"match\":\"(?<!')\\\\\\\\b[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*\",\"name\":\"storage.type.haskell\"},{\"include\":\"#record_wildcard\"},{\"include\":\"#reserved_symbol\"},{\"include\":\"#prefix_op\"}]},\"ffi\":{\"begin\":\"^(\\\\\\\\s*)(foreign)\\\\\\\\s+(import|export)\\\\\\\\s+\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.foreign.haskell\"},\"3\":{\"name\":\"keyword.other.$3.haskell\"}},\"end\":\"(?=\\\\\\\\}|;)|^(?!\\\\\\\\1\\\\\\\\s+\\\\\\\\S|\\\\\\\\s*(?:$|\\\\\\\\{-[^@]|--+(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]{}\\`_\\\\\"']]).*$))\",\"name\":\"meta.$3.foreign.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.calling-convention.$1.haskell\"}},\"match\":\"\\\\\\\\b(?<!')(ccall|cplusplus|dotnet|jvm|stdcall|prim|capi)\\\\\\\\s+\"},{\"begin\":\"(?=\\\\\")|(?=\\\\\\\\b(?<!')([\\\\\\\\p{Ll}_][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)\\\\\\\\b(?!'))\",\"end\":\"(?=(::|∷)(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']]))\",\"patterns\":[{\"include\":\"#comment_like\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.safety.$1.haskell\"},\"2\":{\"name\":\"entity.name.foreign.haskell\",\"patterns\":[{\"include\":\"#string_literal\"}]},\"3\":{\"name\":\"entity.name.function.haskell\"},\"4\":{\"name\":\"entity.name.function.infix.haskell\"}},\"match\":\"\\\\\\\\b(?<!')(safe|unsafe|interruptible)\\\\\\\\b(?!')\\\\\\\\s*(\\\\\"(?:\\\\\\\\\\\\\\\\\\\\\"|[^\\\\\"])*\\\\\")?\\\\\\\\s*(?:(?:\\\\\\\\b(?<!'')([\\\\\\\\p{Ll}_][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)\\\\\\\\b(?!'))|(?:\\\\\\\\(\\\\\\\\s*(?!--+\\\\\\\\))([\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']]+)\\\\\\\\s*\\\\\\\\)))\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.safety.$1.haskell\"},\"2\":{\"name\":\"entity.name.foreign.haskell\",\"patterns\":[{\"include\":\"#string_literal\"}]}},\"match\":\"\\\\\\\\b(?<!')(safe|unsafe|interruptible)\\\\\\\\b(?!')\\\\\\\\s*(\\\\\"(?:\\\\\\\\\\\\\\\\\\\\\"|[^\\\\\"])*\\\\\")?\\\\\\\\s*$\"},{\"captures\":{\"0\":{\"name\":\"entity.name.foreign.haskell\",\"patterns\":[{\"include\":\"#string_literal\"}]}},\"match\":\"\\\\\"(?:\\\\\\\\\\\\\\\\\\\\\"|[^\\\\\"])*\\\\\"\"},{\"captures\":{\"1\":{\"name\":\"entity.name.function.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"entity.name.function.infix.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(?:\\\\\\\\b(?<!'')([\\\\\\\\p{Ll}_][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)\\\\\\\\b(?!'))|(?:(\\\\\\\\()\\\\\\\\s*(?!--+\\\\\\\\))([\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']]+)\\\\\\\\s*(\\\\\\\\)))\"}]},{\"include\":\"#double_colon\"},{\"include\":\"#type_signature\"}]},\"float_literals\":{\"captures\":{\"1\":{\"name\":\"constant.numeric.floating.decimal.haskell\"},\"2\":{\"name\":\"constant.numeric.floating.hexadecimal.haskell\"}},\"comment\":\"Floats are decimal or hexadecimal\",\"match\":\"\\\\\\\\b(?<!')(?:([0-9][_0-9]*\\\\\\\\.[0-9][_0-9]*(?:[eE][-+]?[0-9][_0-9]*)?|[0-9][_0-9]*[eE][-+]?[0-9][_0-9]*)|(0[xX]_*[0-9a-fA-F][_0-9a-fA-F]*\\\\\\\\.[0-9a-fA-F][_0-9a-fA-F]*(?:[pP][-+]?[0-9][_0-9]*)?|0[xX]_*[0-9a-fA-F][_0-9a-fA-F]*[pP][-+]?[0-9][_0-9]*))\\\\\\\\b(?!')\"},\"forall\":{\"begin\":\"\\\\\\\\b(?<!')(forall|∀)\\\\\\\\b(?!')\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.forall.haskell\"}},\"end\":\"(\\\\\\\\.)|(->|→)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.period.haskell\"},\"2\":{\"name\":\"keyword.operator.arrow.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#type_variable\"},{\"include\":\"#type_signature\"}]},\"fun_decl\":{\"begin\":\"^(\\\\\\\\s*)(?<fn>(?:[\\\\\\\\p{Ll}_][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*\\\\\\\\#*|\\\\\\\\(\\\\\\\\s*(?!--+\\\\\\\\))[\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),:;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']][\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']]*\\\\\\\\s*\\\\\\\\))(?:\\\\\\\\s*,\\\\\\\\s*\\\\\\\\g<fn>)?)\\\\\\\\s*(?<![\\\\\\\\p{S}\\\\\\\\p{P}&&[^\\\\\\\\),;\\\\\\\\]\\`}_\\\\\"']])(::|∷)(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^\\\\\\\\(,;\\\\\\\\[\\`{_\\\\\"']])\",\"beginCaptures\":{\"2\":{\"name\":\"entity.name.function.haskell\",\"patterns\":[{\"include\":\"#reserved_symbol\"},{\"include\":\"#prefix_op\"}]},\"3\":{\"name\":\"keyword.operator.double-colon.haskell\"}},\"end\":\"(?=(?<![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']])((<-|←)|(=)|(-<|↢)|(-<<|⤛))([(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']|[^\\\\\\\\p{S}\\\\\\\\p{P}]))|(?=\\\\\\\\}|;)|^(?!\\\\\\\\1\\\\\\\\s+\\\\\\\\S|\\\\\\\\s*(?:$|\\\\\\\\{-[^@]|--+(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]{}\\`_\\\\\"']]).*$))\",\"name\":\"meta.function.type-declaration.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},\"gadt_constructor\":{\"patterns\":[{\"begin\":\"^(\\\\\\\\s*)(?:(\\\\\\\\b(?<!')[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)|(\\\\\\\\()\\\\\\\\s*(:[\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']]*)\\\\\\\\s*(\\\\\\\\)))\",\"beginCaptures\":{\"2\":{\"name\":\"constant.other.haskell\"},\"3\":{\"name\":\"punctuation.paren.haskell\"},\"4\":{\"name\":\"constant.other.operator.haskell\"},\"5\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"(?=\\\\\\\\b(?<!'')deriving\\\\\\\\b(?!'))|(?=\\\\\\\\}|;)|^(?!\\\\\\\\1\\\\\\\\s+\\\\\\\\S|\\\\\\\\s*(?:$|\\\\\\\\{-[^@]|--+(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]{}\\`_\\\\\"']]).*$))\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#deriving\"},{\"include\":\"#double_colon\"},{\"include\":\"#record_decl\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"(\\\\\\\\b(?<!')[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}]*)|(\\\\\\\\()\\\\\\\\s*(:[\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']]*)\\\\\\\\s*(\\\\\\\\))\",\"beginCaptures\":{\"1\":{\"name\":\"constant.other.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"constant.other.operator.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"$\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#deriving\"},{\"include\":\"#double_colon\"},{\"include\":\"#record_decl\"},{\"include\":\"#type_signature\"}]}]},\"infix_op\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"entity.name.namespace.haskell\"},\"3\":{\"name\":\"keyword.operator.infix.haskell\"}},\"comment\":\"In case this regex seems overly general, note that Haskell permits  the definition of new operators which can be nearly any string of  punctuation characters, such as $%^&*.\\\\n\",\"match\":\"((?:(?<!'')('')?[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}'']*\\\\\\\\.)*)(\\\\\\\\#+|[\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']]+(?<!\\\\\\\\#))\"},{\"captures\":{\"1\":{\"name\":\"punctuation.backtick.haskell\"},\"2\":{\"name\":\"entity.name.namespace.haskell\"},\"3\":{\"patterns\":[{\"include\":\"#data_constructor\"}]},\"4\":{\"name\":\"punctuation.backtick.haskell\"}},\"comment\":\"In case this regex seems unusual for an infix operator, note that Haskell\\\\nallows any ordinary function application (elem 4 [1..10]) to be rewritten\\\\nas an infix expression (4 \\`elem\\` [1..10]).\\\\n\",\"match\":\"(\\`)((?:[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}'']*\\\\\\\\.)*)([\\\\\\\\p{Ll}\\\\\\\\p{Lu}_][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}'']*)(\\`)\",\"name\":\"keyword.operator.function.infix.haskell\"}]},\"inline_phase\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.bracket.haskell\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.bracket.haskell\"}},\"name\":\"meta.inlining-phase.haskell\",\"patterns\":[{\"match\":\"~\",\"name\":\"punctuation.tilde.haskell\"},{\"include\":\"#integer_literals\"},{\"match\":\"\\\\\\\\w*\",\"name\":\"invalid\"}]},\"integer_literals\":{\"captures\":{\"1\":{\"name\":\"constant.numeric.integral.decimal.haskell\"},\"2\":{\"name\":\"constant.numeric.integral.hexadecimal.haskell\"},\"3\":{\"name\":\"constant.numeric.integral.octal.haskell\"},\"4\":{\"name\":\"constant.numeric.integral.binary.haskell\"}},\"match\":\"\\\\\\\\b(?<!')(?:([0-9][_0-9]*)|(0[xX]_*[0-9a-fA-F][_0-9a-fA-F]*)|(0[oO]_*[0-7][_0-7]*)|(0[bB]_*[01][_01]*))\\\\\\\\b(?!')\"},\"keyword\":{\"captures\":{\"1\":{\"name\":\"keyword.other.$1.haskell\"},\"2\":{\"name\":\"keyword.control.$2.haskell\"}},\"match\":\"\\\\\\\\b(?<!')(?:(where|let|in|default)|(m?do|if|then|else|case|of|proc|rec))\\\\\\\\b(?!')\"},\"layout_herald\":{\"begin\":\"(?<!')\\\\\\\\b(?:(where|let|m?do)|(of))\\\\\\\\s*(\\\\\\\\{)(?!-)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.$1.haskell\"},\"2\":{\"name\":\"keyword.control.of.haskell\"},\"3\":{\"name\":\"punctuation.brace.haskell\"}},\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"patterns\":[{\"include\":\"$self\"},{\"match\":\";\",\"name\":\"punctuation.semicolon.haskell\"}]},\"liquid_haskell\":{\"begin\":\"\\\\\\\\{-@\",\"end\":\"@-\\\\\\\\}\",\"name\":\"block.liquidhaskell.haskell\",\"patterns\":[{\"include\":\"$self\"}]},\"module_exports\":{\"applyEndPatternLast\":1,\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.paren.haskell\"}},\"name\":\"meta.declaration.exports.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.module.haskell\"}},\"match\":\"\\\\\\\\b(?<!')(module)\\\\\\\\b(?!')\"},{\"include\":\"#comma\"},{\"include\":\"#export_constructs\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#record_wildcard\"},{\"include\":\"#export_constructs\"},{\"include\":\"#comma\"}]}]},\"module_name\":{\"match\":\"(?<conid>[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*(\\\\\\\\.\\\\\\\\g<conid>)?)\",\"name\":\"entity.name.namespace.haskell\"},\"numeric_literals\":{\"patterns\":[{\"include\":\"#float_literals\"},{\"include\":\"#integer_literals\"}]},\"overloaded_label\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.prefix.hash.haskell\"},\"2\":{\"patterns\":[{\"include\":\"#string_literal\"}]}},\"match\":\"(?<![\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}\\\\\\\\p{S}\\\\\\\\p{P}&&[^(,;\\\\\\\\[\\`{]])(\\\\\\\\#)(?:(\\\\\"(?:\\\\\\\\\\\\\\\\\\\\\"|[^\\\\\"])*\\\\\")|[\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}'\\\\\\\\.]+)\",\"name\":\"entity.name.label.haskell\"}]},\"pragma\":{\"begin\":\"\\\\\\\\{-#\",\"end\":\"#-\\\\\\\\}\",\"name\":\"meta.preprocessor.haskell\",\"patterns\":[{\"begin\":\"(?xi) \\\\\\\\b(?<!')(LANGUAGE)\\\\\\\\b(?!')\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.preprocessor.pragma.haskell\"}},\"end\":\"(?=#-\\\\\\\\})\",\"patterns\":[{\"match\":\"(?:No)?(?:AutoDeriveTypeable|DatatypeContexts|DoRec|IncoherentInstances|MonadFailDesugaring|MonoPatBinds|NullaryTypeClasses|OverlappingInstances|PatternSignatures|RecordPuns|RelaxedPolyRec)\",\"name\":\"invalid.deprecated\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.preprocessor.extension.haskell\"}},\"match\":\"((?:No)?(?:AllowAmbiguousTypes|AlternativeLayoutRule|AlternativeLayoutRuleTransitional|Arrows|BangPatterns|BinaryLiterals|CApiFFI|CPP|CUSKs|ConstrainedClassMethods|ConstraintKinds|DataKinds|DefaultSignatures|DeriveAnyClass|DeriveDataTypeable|DeriveFoldable|DeriveFunctor|DeriveGeneric|DeriveLift|DeriveTraversable|DerivingStrategies|DerivingVia|DisambiguateRecordFields|DoAndIfThenElse|BlockArguments|DuplicateRecordFields|EmptyCase|EmptyDataDecls|EmptyDataDeriving|ExistentialQuantification|ExplicitForAll|ExplicitNamespaces|ExtendedDefaultRules|FlexibleContexts|FlexibleInstances|ForeignFunctionInterface|FunctionalDependencies|GADTSyntax|GADTs|GHCForeignImportPrim|Generali(?:s|z)edNewtypeDeriving|ImplicitParams|ImplicitPrelude|ImportQualifiedPost|ImpredicativeTypes|TypeFamilyDependencies|InstanceSigs|ApplicativeDo|InterruptibleFFI|JavaScriptFFI|KindSignatures|LambdaCase|LiberalTypeSynonyms|MagicHash|MonadComprehensions|MonoLocalBinds|MonomorphismRestriction|MultiParamTypeClasses|MultiWayIf|NumericUnderscores|NPlusKPatterns|NamedFieldPuns|NamedWildCards|NegativeLiterals|HexFloatLiterals|NondecreasingIndentation|NumDecimals|OverloadedLabels|OverloadedLists|OverloadedStrings|PackageImports|ParallelArrays|ParallelListComp|PartialTypeSignatures|PatternGuards|PatternSynonyms|PolyKinds|PolymorphicComponents|QuantifiedConstraints|PostfixOperators|QuasiQuotes|Rank2Types|RankNTypes|RebindableSyntax|RecordWildCards|RecursiveDo|RelaxedLayout|RoleAnnotations|ScopedTypeVariables|StandaloneDeriving|StarIsType|StaticPointers|Strict|StrictData|TemplateHaskell|TemplateHaskellQuotes|StandaloneKindSignatures|TraditionalRecordSyntax|TransformListComp|TupleSections|TypeApplications|TypeInType|TypeFamilies|TypeOperators|TypeSynonymInstances|UnboxedTuples|UnboxedSums|UndecidableInstances|UndecidableSuperClasses|UnicodeSyntax|UnliftedFFITypes|UnliftedNewtypes|ViewPatterns))\"},{\"include\":\"#comma\"}]},{\"begin\":\"(?xi)\\\\n  \\\\\\\\b(?<!')(SPECIALI(?:S|Z)E)\\\\n  (?:\\\\n  \\\\\\\\s*( \\\\\\\\[ [^\\\\\\\\[\\\\\\\\]]* \\\\\\\\])?\\\\\\\\s*\\\\n  |\\\\\\\\s+\\\\n  )\\\\n  (instance)\\\\\\\\b(?!')\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.preprocessor.pragma.haskell\"},\"2\":{\"patterns\":[{\"include\":\"#inline_phase\"}]},\"3\":{\"name\":\"keyword.other.instance.haskell\"}},\"end\":\"(?=#-\\\\\\\\})\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"(?xi)\\\\n  \\\\\\\\b(?<!')(SPECIALI(?:S|Z)E)\\\\\\\\b(?!')\\\\n  (?:\\\\\\\\s+(INLINE)\\\\\\\\b(?!'))?\\\\n  (?:\\\\\\\\s*(\\\\\\\\[ [^\\\\\\\\[\\\\\\\\]]* \\\\\\\\])?)\\\\n  \\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.preprocessor.pragma.haskell\"},\"2\":{\"name\":\"keyword.other.preprocessor.pragma.haskell\"},\"3\":{\"patterns\":[{\"include\":\"#inline_phase\"}]}},\"end\":\"(?=#-\\\\\\\\})\",\"patterns\":[{\"include\":\"$self\"}]},{\"match\":\"(?xi) \\\\\\\\b(?<!')\\\\n  (LANGUAGE|OPTIONS_GHC|INCLUDE\\\\n  |MINIMAL|UNPACK|OVERLAPS|INCOHERENT\\\\n  |NOUNPACK|SOURCE|OVERLAPPING|OVERLAPPABLE|INLINE\\\\n  |NOINLINE|INLINE?ABLE|CONLIKE|LINE|COLUMN|RULES\\\\n  |COMPLETE)\\\\\\\\b(?!')\",\"name\":\"keyword.other.preprocessor.haskell\"},{\"begin\":\"(?i)\\\\\\\\b(DEPRECATED|WARNING)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.preprocessor.pragma.haskell\"}},\"end\":\"(?=#-\\\\\\\\})\",\"patterns\":[{\"include\":\"#string_literal\"}]}]},\"prefix_op\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"entity.name.function.infix.haskell\"},\"3\":{\"name\":\"punctuation.paren.haskell\"}},\"comment\":\"An operator cannot be composed entirely of '-' characters;  instead, it should be matched as a comment.\\\\n\",\"match\":\"(\\\\\\\\()\\\\\\\\s*(?!(?:--+|\\\\\\\\.\\\\\\\\.)\\\\\\\\))(\\\\\\\\#+|[\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']]+(?<!\\\\\\\\#))\\\\\\\\s*(\\\\\\\\))\"}]},\"qualifier\":{\"match\":\"\\\\\\\\b(?<!')[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*\\\\\\\\.\",\"name\":\"entity.name.namespace.haskell\"},\"quasi_quote\":{\"patterns\":[{\"begin\":\"(\\\\\\\\[)(e|d|p)?(\\\\\\\\|\\\\\\\\|?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.quasi-quotation.begin.haskell\"},\"2\":{\"name\":\"entity.name.quasi-quoter.haskell\"},\"3\":{\"name\":\"keyword.operator.quasi-quotation.begin.haskell\"}},\"end\":\"\\\\\\\\3\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.quasi-quotation.end.haskell\"}},\"name\":\"meta.quasi-quotation.haskell\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(\\\\\\\\[)(t)(\\\\\\\\|\\\\\\\\|?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.quasi-quotation.begin.haskell\"},\"2\":{\"name\":\"entity.name.quasi-quoter.haskell\"},\"3\":{\"name\":\"keyword.operator.quasi-quotation.begin.haskell\"}},\"end\":\"\\\\\\\\3\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.quasi-quotation.end.haskell\"}},\"name\":\"meta.quasi-quotation.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"(\\\\\\\\[)(?:(\\\\\\\\$\\\\\\\\$)|(\\\\\\\\$))?((?:[^\\\\\\\\s\\\\\\\\p{S}\\\\\\\\p{P}]|[\\\\\\\\.'_])*)(\\\\\\\\|\\\\\\\\|?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.quasi-quotation.begin.haskell\"},\"2\":{\"name\":\"keyword.operator.prefix.double-dollar.haskell\"},\"3\":{\"name\":\"keyword.operator.prefix.dollar.haskell\"},\"4\":{\"name\":\"entity.name.quasi-quoter.haskell\",\"patterns\":[{\"include\":\"#qualifier\"}]},\"5\":{\"name\":\"keyword.operator.quasi-quotation.begin.haskell\"}},\"end\":\"\\\\\\\\5\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.quasi-quotation.end.haskell\"}},\"name\":\"meta.quasi-quotation.haskell\"}]},\"record\":{\"begin\":\"({)(?!-)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"end\":\"(?<!-)(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"name\":\"meta.record.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#record_field\"}]},\"record_decl\":{\"begin\":\"({)(?!-)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"end\":\"(?<!-)(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"name\":\"meta.record.definition.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#record_decl_field\"}]},\"record_decl_field\":{\"begin\":\"(?:([\\\\\\\\p{Ll}_][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)|(\\\\\\\\()\\\\\\\\s*([\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']]+)\\\\\\\\s*(\\\\\\\\)))\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.member.definition.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"variable.other.member.definition.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"(,)|(?=})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.comma.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#comma\"},{\"include\":\"#double_colon\"},{\"include\":\"#type_signature\"},{\"include\":\"#record_decl_field\"}]},\"record_field\":{\"patterns\":[{\"begin\":\"(?:([\\\\\\\\p{Ll}\\\\\\\\p{Lu}_][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}\\\\\\\\.']*)|(\\\\\\\\()\\\\\\\\s*([\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']]+)\\\\\\\\s*(\\\\\\\\)))\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.member.haskell\",\"patterns\":[{\"include\":\"#qualifier\"}]},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"variable.other.member.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"(,)|(?=})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.comma.haskell\"}},\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#comma\"},{\"include\":\"$self\"}]},{\"include\":\"#record_wildcard\"}]},\"record_wildcard\":{\"captures\":{\"1\":{\"name\":\"variable.other.member.wildcard.haskell\"}},\"match\":\"(?<![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']])(\\\\\\\\.\\\\\\\\.)(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']])\"},\"reserved_symbol\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.double-dot.haskell\"},\"2\":{\"name\":\"keyword.operator.colon.haskell\"},\"3\":{\"name\":\"keyword.operator.eq.haskell\"},\"4\":{\"name\":\"keyword.operator.lambda.haskell\"},\"5\":{\"name\":\"keyword.operator.pipe.haskell\"},\"6\":{\"name\":\"keyword.operator.arrow.left.haskell\"},\"7\":{\"name\":\"keyword.operator.arrow.haskell\"},\"8\":{\"name\":\"keyword.operator.arrow.left.tail.haskell\"},\"9\":{\"name\":\"keyword.operator.arrow.left.tail.double.haskell\"},\"10\":{\"name\":\"keyword.operator.arrow.tail.haskell\"},\"11\":{\"name\":\"keyword.operator.arrow.tail.double.haskell\"},\"12\":{\"name\":\"keyword.other.forall.haskell\"}},\"match\":\"(?<![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"'']])(?:(\\\\\\\\.\\\\\\\\.)|(:)|(=)|(\\\\\\\\\\\\\\\\)|(\\\\\\\\|)|(<-|←)|(->|→)|(-<|↢)|(-<<|⤛)|(>-|⤚)|(>>-|⤜)|(∀))(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"'']])\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.postfix.hash.haskell\"}},\"match\":\"(?<=[\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}\\\\\\\\p{S}\\\\\\\\p{P}&&[^\\\\\\\\#,;\\\\\\\\[\\`{]])(\\\\\\\\#+)(?![\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}\\\\\\\\p{S}\\\\\\\\p{P}&&[^),;\\\\\\\\]\\`}]])\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.infix.tight.at.haskell\"}},\"match\":\"(?<=[\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}\\\\\\\\)\\\\\\\\}\\\\\\\\]])(@)(?=[\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}\\\\\\\\(\\\\\\\\[\\\\\\\\{])\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.prefix.tilde.haskell\"},\"2\":{\"name\":\"keyword.operator.prefix.bang.haskell\"},\"3\":{\"name\":\"keyword.operator.prefix.minus.haskell\"},\"4\":{\"name\":\"keyword.operator.prefix.dollar.haskell\"},\"5\":{\"name\":\"keyword.operator.prefix.double-dollar.haskell\"}},\"match\":\"(?<![\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}\\\\\\\\p{S}\\\\\\\\p{P}&&[^(,;\\\\\\\\[\\`{]])(?:(~)|(!)|(-)|(\\\\\\\\$)|(\\\\\\\\$\\\\\\\\$))(?=[\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}\\\\\\\\(\\\\\\\\{\\\\\\\\[])\"}]},\"role_annotation\":{\"patterns\":[{\"begin\":\"^(\\\\\\\\s*)(type)\\\\\\\\s+(role)\\\\\\\\b(?!')\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.type.haskell\"},\"3\":{\"name\":\"keyword.other.role.haskell\"}},\"end\":\"(?=\\\\\\\\}|;)|^(?!\\\\\\\\1\\\\\\\\s+\\\\\\\\S|\\\\\\\\s*(?:$|\\\\\\\\{-[^@]|--+(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]{}\\`_\\\\\"']]).*$))\",\"name\":\"meta.role-annotation.haskell\",\"patterns\":[{\"include\":\"#comment_like\"},{\"include\":\"#type_constructor\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.role.$1.haskell\"}},\"match\":\"\\\\\\\\b(?<!')(nominal|representational|phantom)\\\\\\\\b(?!')\"}]}]},\"start_type_signature\":{\"patterns\":[{\"begin\":\"^(\\\\\\\\s*)(::|∷)(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^\\\\\\\\(,;\\\\\\\\[\\`{_\\\\\"']])\\\\\\\\s*\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.operator.double-colon.haskell\"}},\"end\":\"(?=\\\\\\\\#?\\\\\\\\)|\\\\\\\\]|,|(?<!')\\\\\\\\b(in|then|else|of)\\\\\\\\b(?!')|(?<![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']])(?:(\\\\\\\\\\\\\\\\|λ)|(<-|←)|(=)|(-<|↢)|(-<<|⤛))([(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']|[^\\\\\\\\p{S}\\\\\\\\p{P}])|(\\\\\\\\#|@)-\\\\\\\\}|(?=\\\\\\\\}|;)|^(?!\\\\\\\\1\\\\\\\\s*\\\\\\\\S|\\\\\\\\s*(?:$|\\\\\\\\{-[^@]|--+(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]{}\\`_\\\\\"']]).*$)))\",\"name\":\"meta.type-declaration.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"(?<![\\\\\\\\p{S}\\\\\\\\p{P}&&[^\\\\\\\\(,;\\\\\\\\[\\`{_\\\\\"']])(::|∷)(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^\\\\\\\\(,;\\\\\\\\[\\`{_\\\\\"']])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.haskell\"}},\"end\":\"(?=\\\\\\\\#?\\\\\\\\)|\\\\\\\\]|,|\\\\\\\\b(?<!')(in|then|else|of)\\\\\\\\b(?!')|(\\\\\\\\#|@)-\\\\\\\\}|(?<![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']])(?:(\\\\\\\\\\\\\\\\|λ)|(<-|←)|(=)|(-<|↢)|(-<<|⤛))([(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']|[^\\\\\\\\p{S}\\\\\\\\p{P}])|(?=\\\\\\\\}|;)|$)\",\"patterns\":[{\"include\":\"#type_signature\"}]}]},\"string_literal\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.haskell\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.haskell\"}},\"name\":\"string.quoted.double.haskell\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"'\\\\\\\\&])\",\"name\":\"constant.character.escape.haskell\"},{\"match\":\"\\\\\\\\\\\\\\\\o[0-7]+|\\\\\\\\\\\\\\\\x[0-9A-Fa-f]+|\\\\\\\\\\\\\\\\[0-9]+\",\"name\":\"constant.character.escape.octal.haskell\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\^[A-Z@\\\\\\\\[\\\\\\\\]\\\\\\\\\\\\\\\\\\\\\\\\^_]\",\"name\":\"constant.character.escape.control.haskell\"},{\"begin\":\"\\\\\\\\\\\\\\\\\\\\\\\\s\",\"beginCaptures\":{\"0\":{\"name\":\"constant.character.escape.begin.haskell\"}},\"end\":\"\\\\\\\\\\\\\\\\\",\"endCaptures\":{\"0\":{\"name\":\"constant.character.escape.end.haskell\"}},\"patterns\":[{\"match\":\"\\\\\\\\S+\",\"name\":\"invalid.illegal.character-not-allowed-here.haskell\"}]}]},\"type_application\":{\"patterns\":[{\"begin\":\"(?<=[\\\\\\\\s,;\\\\\\\\[\\\\\\\\]{}\\\\\"])(@)(')?(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.prefix.at.haskell\"},\"2\":{\"name\":\"keyword.operator.promotion.haskell\"},\"3\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.paren.haskell\"}},\"name\":\"meta.type-application.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"(?<=[\\\\\\\\s,;\\\\\\\\[\\\\\\\\]{}\\\\\"])(@)(')?(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.prefix.at.haskell\"},\"2\":{\"name\":\"keyword.operator.promotion.haskell\"},\"3\":{\"name\":\"punctuation.bracket.haskell\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.bracket.haskell\"}},\"name\":\"meta.type-application.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"(?<=[\\\\\\\\s,;\\\\\\\\[\\\\\\\\]{}\\\\\"])(@)(?=\\\\\\\\\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.prefix.at.haskell\"}},\"end\":\"(?<=\\\\\\\\\\\\\")\",\"name\":\"meta.type-application.haskell\",\"patterns\":[{\"include\":\"#string_literal\"}]},{\"begin\":\"(?<=[\\\\\\\\s,;\\\\\\\\[\\\\\\\\]{}\\\\\"])(@)(?=[\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}'])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.prefix.at.haskell\"}},\"end\":\"(?![\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}'])\",\"name\":\"meta.type-application.haskell\",\"patterns\":[{\"include\":\"#type_signature\"}]}]},\"type_constructor\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"entity.name.namespace.haskell\"},\"3\":{\"name\":\"storage.type.haskell\"}},\"match\":\"(')?((?:\\\\\\\\b[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*\\\\\\\\.)*)(\\\\\\\\b[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"entity.name.namespace.haskell\"},\"4\":{\"name\":\"storage.type.operator.haskell\"},\"5\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(')?(\\\\\\\\()\\\\\\\\s*((?:[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*\\\\\\\\.)*)([\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']]+)\\\\\\\\s*(\\\\\\\\))\"}]},\"type_operator\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"entity.name.namespace.haskell\"},\"3\":{\"name\":\"storage.type.operator.infix.haskell\"}},\"match\":\"(?:(?<!')('))?((?:\\\\\\\\b[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*\\\\\\\\.)*)(?![#@]?-})(\\\\\\\\#+|[\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']]+(?<!\\\\\\\\#))\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.backtick.haskell\"},\"3\":{\"name\":\"entity.name.namespace.haskell\"},\"4\":{\"name\":\"storage.type.infix.haskell\"},\"5\":{\"name\":\"punctuation.backtick.haskell\"}},\"match\":\"(')?(\\\\\\\\\\`)((?:[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*\\\\\\\\.)*)([\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)(\\`)\"}]},\"type_signature\":{\"patterns\":[{\"include\":\"#comment_like\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(')?(\\\\\\\\()\\\\\\\\s*(\\\\\\\\))\",\"name\":\"support.constant.unit.haskell\"},{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"},\"3\":{\"name\":\"keyword.operator.hash.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\\\\\()(#)\\\\\\\\s*(#)(\\\\\\\\))\",\"name\":\"support.constant.unit.unboxed.haskell\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"},\"3\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(')?(\\\\\\\\()\\\\\\\\s*,[\\\\\\\\s,]*(\\\\\\\\))\",\"name\":\"support.constant.tuple.haskell\"},{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"},\"3\":{\"name\":\"keyword.operator.hash.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\\\\\()(#)\\\\\\\\s*(#)(\\\\\\\\))\",\"name\":\"support.constant.unit.unboxed.haskell\"},{\"captures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"},\"3\":{\"name\":\"keyword.operator.hash.haskell\"},\"4\":{\"name\":\"punctuation.paren.haskell\"}},\"match\":\"(\\\\\\\\()(#)\\\\\\\\s*,[\\\\\\\\s,]*(#)(\\\\\\\\))\",\"name\":\"support.constant.tuple.unboxed.haskell\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.bracket.haskell\"},\"3\":{\"name\":\"punctuation.bracket.haskell\"}},\"match\":\"(')?(\\\\\\\\[)\\\\\\\\s*(\\\\\\\\])\",\"name\":\"support.constant.empty-list.haskell\"},{\"include\":\"#integer_literals\"},{\"match\":\"(::|∷)(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']])\",\"name\":\"keyword.operator.double-colon.haskell\"},{\"include\":\"#forall\"},{\"match\":\"=>|⇒\",\"name\":\"keyword.operator.big-arrow.haskell\"},{\"include\":\"#string_literal\"},{\"match\":\"'[^']'\",\"name\":\"invalid\"},{\"include\":\"#type_application\"},{\"include\":\"#reserved_symbol\"},{\"include\":\"#type_operator\"},{\"include\":\"#type_constructor\"},{\"begin\":\"(\\\\\\\\()(#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"},\"2\":{\"name\":\"keyword.operator.hash.haskell\"}},\"end\":\"(#)(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.hash.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"(')?(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.paren.haskell\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.paren.haskell\"}},\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"(')?(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.promotion.haskell\"},\"2\":{\"name\":\"punctuation.bracket.haskell\"}},\"end\":\"(\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.bracket.haskell\"}},\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"#type_signature\"}]},{\"include\":\"#type_variable\"}]},\"type_variable\":{\"match\":\"\\\\\\\\b(?<!')(?!(?:forall|deriving)\\\\\\\\b(?!'))[\\\\\\\\p{Ll}_][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*\",\"name\":\"variable.other.generic-type.haskell\"},\"where\":{\"patterns\":[{\"begin\":\"(?<!')\\\\\\\\b(where)\\\\\\\\s*(\\\\\\\\{)(?!-)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.where.haskell\"},\"2\":{\"name\":\"punctuation.brace.haskell\"}},\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.brace.haskell\"}},\"patterns\":[{\"include\":\"$self\"},{\"match\":\";\",\"name\":\"punctuation.semicolon.haskell\"}]},{\"match\":\"\\\\\\\\b(?<!')(where)\\\\\\\\b(?!')\",\"name\":\"keyword.other.where.haskell\"}]}},\"scopeName\":\"source.haskell\",\"aliases\":[\"hs\"]}`)),a=[e];export{a as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BJ4Li9vH.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Sass\",\"fileTypes\":[\"sass\"],\"foldingStartMarker\":\"/\\\\\\\\*|^#|^\\\\\\\\*|^\\\\\\\\b|*#?region|^\\\\\\\\.\",\"foldingStopMarker\":\"\\\\\\\\*/|*#?endregion|^\\\\\\\\s*$\",\"name\":\"sass\",\"patterns\":[{\"begin\":\"^(\\\\\\\\s*)(/\\\\\\\\*)\",\"end\":\"(\\\\\\\\*/)|^(?!\\\\\\\\s\\\\\\\\1)\",\"name\":\"comment.block.sass\",\"patterns\":[{\"include\":\"#comment-tag\"},{\"include\":\"#comment-param\"}]},{\"match\":\"^[\\\\\\\\t ]*/?//[\\\\\\\\t ]*[SRI][\\\\\\\\t ]*$\",\"name\":\"keyword.other.sass.formatter.action\"},{\"begin\":\"^[\\\\\\\\t ]*//[\\\\\\\\t ]*(import)[\\\\\\\\t ]*(css-variables)[\\\\\\\\t ]*(from)\",\"captures\":{\"1\":{\"name\":\"keyword.control\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"keyword.control\"}},\"end\":\"$\\\\\\\\n?\",\"name\":\"comment.import.css.variables\",\"patterns\":[{\"include\":\"#import-quotes\"}]},{\"include\":\"#double-slash\"},{\"include\":\"#double-quoted\"},{\"include\":\"#single-quoted\"},{\"include\":\"#interpolation\"},{\"include\":\"#curly-brackets\"},{\"include\":\"#placeholder-selector\"},{\"begin\":\"\\\\\\\\$[a-zA-Z0-9_-]+(?=:)\",\"captures\":{\"0\":{\"name\":\"variable.other.name\"}},\"end\":\"$\\\\\\\\n?|(?=\\\\\\\\)\\\\\\\\s\\\\\\\\)|\\\\\\\\)\\\\\\\\n)\",\"name\":\"sass.script.maps\",\"patterns\":[{\"include\":\"#double-slash\"},{\"include\":\"#double-quoted\"},{\"include\":\"#single-quoted\"},{\"include\":\"#interpolation\"},{\"include\":\"#variable\"},{\"include\":\"#rgb-value\"},{\"include\":\"#numeric\"},{\"include\":\"#unit\"},{\"include\":\"#flag\"},{\"include\":\"#comma\"},{\"include\":\"#function\"},{\"include\":\"#function-content\"},{\"include\":\"#operator\"},{\"include\":\"#reserved-words\"},{\"include\":\"#parent-selector\"},{\"include\":\"#property-value\"},{\"include\":\"#semicolon\"},{\"include\":\"#dotdotdot\"}]},{\"include\":\"#variable-root\"},{\"include\":\"#numeric\"},{\"include\":\"#unit\"},{\"include\":\"#flag\"},{\"include\":\"#comma\"},{\"include\":\"#semicolon\"},{\"include\":\"#dotdotdot\"},{\"begin\":\"@include|\\\\\\\\+(?!\\\\\\\\W|\\\\\\\\d)\",\"captures\":{\"0\":{\"name\":\"keyword.control.at-rule.css.sass\"}},\"end\":\"(?=\\\\\\\\n|\\\\\\\\()\",\"name\":\"support.function.name.sass.library\"},{\"begin\":\"^(@use)\",\"captures\":{\"0\":{\"name\":\"keyword.control.at-rule.css.sass.use\"}},\"end\":\"(?=\\\\\\\\n)\",\"name\":\"sass.use\",\"patterns\":[{\"match\":\"as|with\",\"name\":\"support.type.css.sass\"},{\"include\":\"#numeric\"},{\"include\":\"#unit\"},{\"include\":\"#variable-root\"},{\"include\":\"#rgb-value\"},{\"include\":\"#comma\"},{\"include\":\"#parenthesis-open\"},{\"include\":\"#parenthesis-close\"},{\"include\":\"#colon\"},{\"include\":\"#import-quotes\"}]},{\"begin\":\"^@import(.*?)( as.*)?$\",\"captures\":{\"1\":{\"name\":\"constant.character.css.sass\"},\"2\":{\"name\":\"invalid\"}},\"end\":\"(?=\\\\\\\\n)\",\"name\":\"keyword.control.at-rule.use\"},{\"begin\":\"@mixin|^[\\\\\\\\t ]*=|@function\",\"captures\":{\"0\":{\"name\":\"keyword.control.at-rule.css.sass\"}},\"end\":\"$\\\\\\\\n?|(?=\\\\\\\\()\",\"name\":\"support.function.name.sass\",\"patterns\":[{\"match\":\"[\\\\\\\\w-]+\",\"name\":\"entity.name.function\"}]},{\"begin\":\"@\",\"end\":\"$\\\\\\\\n?|\\\\\\\\s(?!(all|braille|embossed|handheld|print|projection|screen|speech|tty|tv|if|only|not)(\\\\\\\\s|,))\",\"name\":\"keyword.control.at-rule.css.sass\"},{\"begin\":\"(?<!\\\\\\\\-|\\\\\\\\()\\\\\\\\b(a|abbr|acronym|address|applet|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|embed|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|picture|pre|progress|q|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video|main|svg|rect|ruby|center|circle|ellipse|line|polyline|polygon|path|text|u|slot)\\\\\\\\b(?!-|\\\\\\\\)|:\\\\\\\\s)|&\",\"end\":\"$\\\\\\\\n?|(?=\\\\\\\\s|,|\\\\\\\\(|\\\\\\\\)|\\\\\\\\.|\\\\\\\\#|\\\\\\\\[|>|-|_)\",\"name\":\"entity.name.tag.css.sass.symbol\",\"patterns\":[{\"include\":\"#interpolation\"},{\"include\":\"#pseudo-class\"}]},{\"begin\":\"#\",\"end\":\"$\\\\\\\\n?|(?=\\\\\\\\s|,|\\\\\\\\(|\\\\\\\\)|\\\\\\\\.|\\\\\\\\[|>)\",\"name\":\"entity.other.attribute-name.id.css.sass\",\"patterns\":[{\"include\":\"#interpolation\"},{\"include\":\"#pseudo-class\"}]},{\"begin\":\"\\\\\\\\.|(?<=&)(-|_)\",\"end\":\"$\\\\\\\\n?|(?=\\\\\\\\s|,|\\\\\\\\(|\\\\\\\\)|\\\\\\\\[|>)\",\"name\":\"entity.other.attribute-name.class.css.sass\",\"patterns\":[{\"include\":\"#interpolation\"},{\"include\":\"#pseudo-class\"}]},{\"begin\":\"\\\\\\\\[\",\"end\":\"\\\\\\\\]\",\"name\":\"entity.other.attribute-selector.sass\",\"patterns\":[{\"include\":\"#double-quoted\"},{\"include\":\"#single-quoted\"},{\"match\":\"\\\\\\\\^|\\\\\\\\$|\\\\\\\\*|~\",\"name\":\"keyword.other.regex.sass\"}]},{\"match\":\"^((?<=\\\\\\\\]|\\\\\\\\)|not\\\\\\\\(|\\\\\\\\*|>|>\\\\\\\\s)|\\\\n*):[a-z:-]+|(::|:-)[a-z:-]+\",\"name\":\"entity.other.attribute-name.pseudo-class.css.sass\"},{\"include\":\"#module\"},{\"match\":\"[\\\\\\\\w-]*\\\\\\\\(\",\"name\":\"entity.name.function\"},{\"match\":\"\\\\\\\\)\",\"name\":\"entity.name.function.close\"},{\"begin\":\":\",\"end\":\"$\\\\\\\\n?|(?=\\\\\\\\s\\\\\\\\(|and\\\\\\\\(|\\\\\\\\),)\",\"name\":\"meta.property-list.css.sass.prop\",\"patterns\":[{\"match\":\"(?<=:)[a-z-]+\\\\\\\\s\",\"name\":\"support.type.property-name.css.sass.prop.name\"},{\"include\":\"#double-slash\"},{\"include\":\"#double-quoted\"},{\"include\":\"#single-quoted\"},{\"include\":\"#interpolation\"},{\"include\":\"#curly-brackets\"},{\"include\":\"#variable\"},{\"include\":\"#rgb-value\"},{\"include\":\"#numeric\"},{\"include\":\"#unit\"},{\"include\":\"#module\"},{\"match\":\"--.+?(?=\\\\\\\\))\",\"name\":\"variable.css\"},{\"match\":\"[\\\\\\\\w-]*\\\\\\\\(\",\"name\":\"entity.name.function\"},{\"match\":\"\\\\\\\\)\",\"name\":\"entity.name.function.close\"},{\"include\":\"#flag\"},{\"include\":\"#comma\"},{\"include\":\"#semicolon\"},{\"include\":\"#function\"},{\"include\":\"#function-content\"},{\"include\":\"#operator\"},{\"include\":\"#parent-selector\"},{\"include\":\"#property-value\"}]},{\"include\":\"#rgb-value\"},{\"include\":\"#function\"},{\"include\":\"#function-content\"},{\"begin\":\"(?<=})(?!\\\\\\\\n|\\\\\\\\(|\\\\\\\\)|[a-zA-Z0-9_-]+:)\",\"end\":\"\\\\\\\\s|(?=,|\\\\\\\\.|\\\\\\\\[|\\\\\\\\)|\\\\\\\\n)\",\"name\":\"entity.name.tag.css.sass\",\"patterns\":[{\"include\":\"#interpolation\"},{\"include\":\"#pseudo-class\"}]},{\"include\":\"#operator\"},{\"match\":\"[a-z-]+((?=:|#{))\",\"name\":\"support.type.property-name.css.sass.prop.name\"},{\"include\":\"#reserved-words\"},{\"include\":\"#property-value\"}],\"repository\":{\"colon\":{\"match\":\":\",\"name\":\"meta.property-list.css.sass.colon\"},\"comma\":{\"match\":\"\\\\\\\\band\\\\\\\\b|\\\\\\\\bor\\\\\\\\b|,\",\"name\":\"comment.punctuation.comma.sass\"},\"comment-param\":{\"match\":\"\\\\\\\\@(\\\\\\\\w+)\",\"name\":\"storage.type.class.jsdoc\"},\"comment-tag\":{\"begin\":\"(?<={{)\",\"end\":\"(?=}})\",\"name\":\"comment.tag.sass\"},\"curly-brackets\":{\"match\":\"{|}\",\"name\":\"invalid\"},\"dotdotdot\":{\"match\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"name\":\"variable.other\"},\"double-quoted\":{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.css.sass\",\"patterns\":[{\"include\":\"#quoted-interpolation\"}]},\"double-slash\":{\"begin\":\"//\",\"end\":\"$\\\\\\\\n?\",\"name\":\"comment.line.sass\",\"patterns\":[{\"include\":\"#comment-tag\"}]},\"flag\":{\"match\":\"!(important|default|optional|global)\",\"name\":\"keyword.other.important.css.sass\"},\"function\":{\"match\":\"(?<=[\\\\\\\\s|\\\\\\\\(|,|:])(?!url|format|attr)[a-zA-Z0-9_-][\\\\\\\\w-]*(?=\\\\\\\\()\",\"name\":\"support.function.name.sass\"},\"function-content\":{\"begin\":\"(?<=url\\\\\\\\(|format\\\\\\\\(|attr\\\\\\\\()\",\"end\":\".(?=\\\\\\\\))\",\"name\":\"string.quoted.double.css.sass\"},\"import-quotes\":{\"match\":\"[\\\\\"']?\\\\\\\\.{0,2}[\\\\\\\\w/]+[\\\\\"']?\",\"name\":\"constant.character.css.sass\"},\"interpolation\":{\"begin\":\"#{\",\"end\":\"}\",\"name\":\"support.function.interpolation.sass\",\"patterns\":[{\"include\":\"#variable\"},{\"include\":\"#numeric\"},{\"include\":\"#operator\"},{\"include\":\"#unit\"},{\"include\":\"#comma\"},{\"include\":\"#double-quoted\"},{\"include\":\"#single-quoted\"}]},\"module\":{\"captures\":{\"1\":{\"name\":\"constant.character.module.name\"},\"2\":{\"name\":\"constant.numeric.module.dot\"}},\"match\":\"([\\\\\\\\w-]+?)(\\\\\\\\.)\",\"name\":\"constant.character.module\"},\"numeric\":{\"match\":\"(-|\\\\\\\\.)?[0-9]+(\\\\\\\\.[0-9]+)?\",\"name\":\"constant.numeric.css.sass\"},\"operator\":{\"match\":\"\\\\\\\\+|\\\\\\\\s-\\\\\\\\s|\\\\\\\\s-(?=\\\\\\\\$)|(?<=\\\\\\\\()-(?=\\\\\\\\$)|\\\\\\\\s-(?=\\\\\\\\()|\\\\\\\\*|/|%|=|!|<|>|~\",\"name\":\"keyword.operator.sass\"},\"parent-selector\":{\"match\":\"&\",\"name\":\"entity.name.tag.css.sass\"},\"parenthesis-close\":{\"match\":\"\\\\\\\\)\",\"name\":\"entity.name.function.parenthesis.close\"},\"parenthesis-open\":{\"match\":\"\\\\\\\\(\",\"name\":\"entity.name.function.parenthesis.open\"},\"placeholder-selector\":{\"begin\":\"(?<!\\\\\\\\d)%(?!\\\\\\\\d)\",\"end\":\"$\\\\\\\\n?|\\\\\\\\s\",\"name\":\"entity.other.inherited-class.placeholder-selector.css.sass\"},\"property-value\":{\"match\":\"[a-zA-Z0-9_-]+\",\"name\":\"meta.property-value.css.sass support.constant.property-value.css.sass\"},\"pseudo-class\":{\"match\":\":[a-z:-]+\",\"name\":\"entity.other.attribute-name.pseudo-class.css.sass\"},\"quoted-interpolation\":{\"begin\":\"#{\",\"end\":\"}\",\"name\":\"support.function.interpolation.sass\",\"patterns\":[{\"include\":\"#variable\"},{\"include\":\"#numeric\"},{\"include\":\"#operator\"},{\"include\":\"#unit\"},{\"include\":\"#comma\"}]},\"reserved-words\":{\"match\":\"\\\\\\\\b(false|from|in|not|null|through|to|true)\\\\\\\\b\",\"name\":\"support.type.property-name.css.sass\"},\"rgb-value\":{\"match\":\"(#)([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\\\\\\\\b\",\"name\":\"constant.language.color.rgb-value.css.sass\"},\"semicolon\":{\"match\":\";\",\"name\":\"invalid\"},\"single-quoted\":{\"begin\":\"'\",\"end\":\"'\",\"name\":\"string.quoted.single.css.sass\",\"patterns\":[{\"include\":\"#quoted-interpolation\"}]},\"unit\":{\"match\":\"(?<=[\\\\\\\\d]|})(ch|cm|deg|dpcm|dpi|dppx|em|ex|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vw|fr|%)\",\"name\":\"keyword.control.unit.css.sass\"},\"variable\":{\"match\":\"\\\\\\\\$[a-zA-Z0-9_-]+\",\"name\":\"variable.other.value\"},\"variable-root\":{\"match\":\"\\\\\\\\$[a-zA-Z0-9_-]+\",\"name\":\"variable.other.root\"}},\"scopeName\":\"source.sass\"}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BJ5jdafP.js",
    "content": "import{_ as tt}from\"./Dr_JbmT0.js\";import{_ as st}from\"./Bt5ljtES.js\";import{_ as rt}from\"./Bk9BmIv8.js\";import{d as ne,r as x,C as v,g as a,F as W,j as p,i as m,q as B,aw as ot,x as u,f as C,ab as Be,k as nt,aN as lt,t as we,s as oe,a8 as at,a as it,c as E,a6 as ut,w as q,B as Pe,A as de,n as dt,o as ct,K as xe,e as $,E as h,ad as mt,ae as pt,O as re,G as I,J as F,a0 as De,a7 as ft,D as G,bn as ue,L as gt,aO as Ae,H as ke,N as yt,ag as vt,ac as bt,aK as ht,I as _t,ai as kt}from\"./CU_MfyYc.js\";import{_ as xt}from\"./DnWQm4Tq.js\";import{_ as wt}from\"./BW0IIeyO.js\";import{_ as Tt,r as Ne}from\"./D-1_drer.js\";import{_ as Ct}from\"./CqvT4tPC.js\";import{_ as $t}from\"./CYcD1Eih.js\";import{_ as Et}from\"./CvhZxjKo.js\";import{_ as St}from\"./DZb6Dd70.js\";import{T as Lt}from\"./9VOnL4Iz.js\";import{s as qe,l as Rt,d as Vt}from\"./BS9OwPT8.js\";import{_ as It}from\"./s0YP2YF7.js\";import{_ as Pt}from\"./Cw4FHd9N.js\";import{_ as Ue}from\"./RFJ54-KY.js\";import{_ as Fe}from\"./D35nYK_C.js\";import{_ as Ut}from\"./C4bX54si.js\";import{_ as Ot}from\"./_FEXNRsZ.js\";import{u as ze}from\"./Cwg39VG_.js\";import{u as Mt}from\"./X3S5orim.js\";import\"./C6794tGI.js\";import\"./DK27pemE.js\";const jt={class:\"flex justify-end item-center\"},Dt={class:\"flex justify-end\"},At=ne({__name:\"ReportLiveSession\",props:{session:{}},emits:[\"close\"],setup(z,{emit:o}){const w=o,S=x(!1),_=z,b=x({description:\"\",email:\"\"}),c=()=>{w(\"close\")},f=async()=>{if(S.value=!0,!b.value.description){oe(\"error\",\"Please enter a description.\"),S.value=!1;return}const{data:d,error:r}=await at(\"/system/report-exception\",{description:b.value.description,email:b.value.email,traceback:\"manual report\",mode:\"live\",attach_logs:!0,session_id:_.session},!0);if(S.value=!1,r.value&&r.value.statusCode!==200){oe(\"error\",`[${r.value.statusCode}]: ${r.value.statusText}`);return}const k=d.value;k.status===\"success\"?(b.value.description=\"\",b.value.email=\"\",oe(\"success\",k.message),c()):k.status===\"error\"&&oe(\"error\",k.message)};return(d,r)=>{const k=nt,P=Be,D=lt,O=we,Q=ot;return a(),v(W,null,[r[5]||(r[5]=p(\"p\",null,\" If you think something is wrong with your running live session, you can submit a report. By submitting this form, the logs of this session will be sent to Jesse's developers so we can see what's going on. \",-1)),r[6]||(r[6]=p(\"br\",null,null,-1)),r[7]||(r[7]=p(\"p\",null,[B(\"Your exchange API keys and strategies are safe and \"),p(\"b\",null,\"are never sent to us.\")],-1)),r[8]||(r[8]=p(\"br\",null,null,-1)),m(Q,{state:u(b),class:\"space-y-4\",onSubmit:f},{default:C(()=>[m(P,{label:\"Email (optional)\",help:\"Enter your email address for us to know who sent the email and possibly reply back to you.\"},{default:C(()=>[m(k,{modelValue:u(b).email,\"onUpdate:modelValue\":r[0]||(r[0]=H=>u(b).email=H),placeholder:\"Email address...\",type:\"email\"},null,8,[\"modelValue\"])]),_:1}),r[3]||(r[3]=p(\"br\",null,null,-1)),m(P,{label:\"Description:\",name:\"Description\"},{default:C(()=>[m(D,{modelValue:u(b).description,\"onUpdate:modelValue\":r[1]||(r[1]=H=>u(b).description=H),rows:10,placeholder:\"Describe what you think is wrong in this session...\"},null,8,[\"modelValue\"])]),_:1}),r[4]||(r[4]=p(\"br\",null,null,-1)),p(\"div\",jt,[p(\"div\",Dt,[m(O,{color:\"gray\",variant:\"ghost\",class:\"mr-2\",label:\"Cancel\",onClick:r[2]||(r[2]=H=>c())}),m(O,{type:\"submit\",class:\"w-48 flex justify-center\",label:\"Submit\",loading:u(S),disabled:u(S)},null,8,[\"loading\",\"disabled\"])])])]),_:1},8,[\"state\"])],64)}}}),Nt={class:\"mb-16\"},qt={key:0,class:\"rounded overflow-hidden border-2 border-gray-100 dark:border-gray-600 p-4\"},Bt={key:2},Ft=ne({__name:\"CandlesChart\",props:{form:{},results:{}},setup(z){const o=it(),w=E(()=>ut().params.id),S=x(!0),_=x(2),b=x(null),c=z,f=x();let d=null,r=null;const k={orderEntries:{},positionEntry:null};let P=null,D=null;const O=x({}),Q=E(()=>o.value),H=E(()=>c.form.exchange),A=E(()=>{var t,i;return`${H.value}-${((t=c.results.selectedRoute)==null?void 0:t.symbol)||\"\"}-${((i=c.results.selectedRoute)==null?void 0:i.timeframe)||\"\"}`}),Y=E(()=>c.results.currentCandles),X=E(()=>{const t=c.results.positions.find(i=>i[0].value===c.results.selectedRoute.symbol);return t===void 0?[]:t}),Z=E(()=>{var t,i;return((i=(t=X.value)==null?void 0:t[2])==null?void 0:i.value)??0}),ee=E(()=>{var i,n;const t=Number(((n=(i=X.value)==null?void 0:i[1])==null?void 0:n.value)??0);return t>0?\"long\":t<0?\"short\":\"close\"});q(Q,t=>{ye(t)}),q(Z,(t,i)=>{r!==null&&t!==i&&pe()}),q(()=>c.results.orders,()=>{r!==null&&(fe(),me())},{deep:!0});let U=null;function M(){U||(U=setTimeout(async()=>{U=null,await J()},750))}const ce=E(()=>{var i,n;const t=c.results.generalInfo||{};return[c.results.phase,c.form.exchange,(i=c.results.selectedRoute)==null?void 0:i.symbol,(n=c.results.selectedRoute)==null?void 0:n.timeframe,t.count_trades,t.count_active_orders].join(\"|\")});q(ce,()=>{r&&[\"running\",\"stopping\"].includes(c.results.phase)&&M()});function me(){var T;if(!r||!((T=c.results.selectedRoute)!=null&&T.symbol))return;const t=A.value,i=O.value[t]||[],n=new Set(i.map(y=>y.order_id)),l=c.results.orders.filter(y=>y.status===\"EXECUTED\"&&y.executed_at&&y.symbol===c.results.selectedRoute.symbol&&!n.has(y.id));if(l.length>0){const y=l.map(R=>ae(R,c.results.selectedRoute.timeframe));O.value[t]=[...i,...y],te()}}async function J(){var i;if(!r||!((i=c.results.selectedRoute)!=null&&i.symbol))return;const t=A.value;try{const l=await de().fetchOrdersHistory({limit:500,offset:0,id_search:w.value,status_filter:\"EXECUTED\",symbol_filter:c.results.selectedRoute.symbol,exchange_filter:c.form.exchange||null,date_filter:\"90_days\",type_filter:null,side_filter:null});if(l.orders&&l.orders.length>0){const T=l.orders.filter(y=>y.executed_at).map(y=>ae(y,c.results.selectedRoute.timeframe));O.value[t]=T,te()}}catch(n){console.error(\"Failed to refresh executed order markers:\",n)}}q(Y,(t,i)=>{r!==null&&ge(t[A.value],t[A.value])}),Pe(async()=>{D=setTimeout(async()=>{await K()},200)});async function K(){var t,i;S.value=!0,b.value=null;try{await de().fetchCandles(w.value);const n=Se(c.results.candles);if(n){S.value=!1,b.value=n,console.error(\"Candle data validation failed:\",n);return}S.value=!1,await dt();const l=f.value;if(!l)return;qe.width=l.clientWidth,d=Lt(l,qe),d.applyOptions({watermark:{visible:!0,fontSize:16,horzAlign:\"left\",vertAlign:\"bottom\",color:\"#888\",text:`${c.results.selectedRoute.symbol} • ${c.results.selectedRoute.timeframe}`}}),r=d.addCandlestickSeries();const T=(c.results.candles||[]).map(y=>{const R=ve(y==null?void 0:y.time);return R===null?null:{...y,time:R}}).filter(Boolean);if(r.setData(T),T.length>0){const y=T[T.length-1];P=y==null?void 0:y.time}else P=null;d.timeScale().fitContent(),r.applyOptions({priceFormat:{type:\"price\",precision:_.value,minMove:.01}}),ge((t=c.results.candles)==null?void 0:t[0],(i=c.results.candles)==null?void 0:i[1]),pe(),fe(),await Te(),ye(Q.value)}catch(n){S.value=!1,b.value=(n==null?void 0:n.message)||\"An unexpected error occurred while loading the chart\",console.error(\"Failed to initialize candle chart:\",n),le()}}async function Te(){var i,n;if(!r||!((i=c.results.selectedRoute)!=null&&i.symbol))return;const t=A.value;if(((n=O.value[t])==null?void 0:n.length)>0){te();return}try{const T=await de().fetchOrdersHistory({limit:500,offset:0,id_search:w.value,status_filter:\"EXECUTED\",symbol_filter:c.results.selectedRoute.symbol,exchange_filter:c.form.exchange||null,date_filter:\"90_days\",type_filter:null,side_filter:null});if(T.orders&&T.orders.length>0){const y=T.orders.filter(R=>R.executed_at).map(R=>ae(R,c.results.selectedRoute.timeframe));O.value[t]=y,te()}}catch(l){console.error(\"Failed to load historical executed orders:\",l)}}ct(()=>{le(),D&&(clearTimeout(D),D=null)});function le(){d!==null&&(d.remove(),d=null),r&&(r=null),P=null}function Ce(t){const i={m:60,h:3600,d:86400,w:604800},n=t.match(/^(\\d+)([mhdw])$/);return n?parseInt(n[1])*i[n[2]]:60}function $e(t,i){const n=Math.floor(t/1e3),l=Ce(i);return Math.floor(n/l)*l}function ae(t,i){var l;const n=((l=t.side)==null?void 0:l.toLowerCase())||\"buy\";return{time:$e(t.executed_at,i),position:n===\"buy\"?\"belowBar\":\"aboveBar\",color:n===\"buy\"?\"#2196F3\":\"#e91e63\",shape:n===\"buy\"?\"arrowUp\":\"arrowDown\",text:n.toUpperCase(),order_id:t.id}}function te(){if(!r)return;const t=A.value,i=O.value[t]||[],n=Array.from(new Map(i.map(l=>[l.order_id,l])).values()).sort((l,T)=>l.time-T.time).slice(-500);O.value[t]=n,r.setMarkers(n)}function pe(){const t=ee.value===\"long\"?\"#00AB5C\":\"#FF497D\";if(k.positionEntry&&r.removePriceLine(k.positionEntry),Number(Z.value)>0){const i={price:Number(Z.value),color:t,lineWidth:1,lineStyle:0,axisLabelVisible:!0,title:\"Entry Price\"};k.positionEntry=r.createPriceLine(i)}}function fe(){var i,n;const t=(n=(i=X.value)==null?void 0:i[0])==null?void 0:n.value;if(t){for(const l in k.orderEntries)r.removePriceLine(k.orderEntries[l]),delete k.orderEntries[l];c.results.orders.forEach(l=>{const T=l.side===\"buy\"?\"#00AB5C\":\"#FF497D\",y=xe.startCase(xe.lowerCase(`${l.side} ${l.type}`));if((l.status===\"ACTIVE\"||l.status===\"QUEUED\")&&l.symbol===t){const R={price:Number(l.price),color:T,lineWidth:1,lineStyle:0,axisLabelVisible:!0,title:y};k.orderEntries[l.id]=r.createPriceLine(R)}})}}function ge(t,i){if(!(!t||!i)&&c.results.candles.length!==0&&!b.value)try{const n=String(t.open).indexOf(\".\"),l=n===-1?0:String(t.open).length-n-1,T=String(i.open).indexOf(\".\"),y=T===-1?0:String(i.open).length-T-1,R=l>y?l:y;_.value=R,(_.value<0||_.value>100)&&(_.value=0),r.applyOptions({priceFormat:{type:\"price\",precision:_.value,minMove:Math.pow(10,-R).toFixed(R)}});const e=c.results.currentCandles[A.value];if(!e)return;const s=be(e,-1);if(s){console.warn(\"Received invalid candle update, skipping:\",s);return}const j=ve(e.time);if(j===null||P!==null&&j<P)return;const N={...e,time:j};r.update(N),P=j}catch(n){console.error(\"Error updating candle:\",n)}}function ye(t){d!==null&&d.applyOptions(t===\"light\"?Rt.chart:Vt.chart)}function Ee(t){c.results.selectedRoute=t,b.value=null,le(),K()}function ve(t){if(typeof t==\"number\")return t;if(t&&typeof t==\"object\"){if(\"year\"in t&&\"month\"in t&&\"day\"in t){const{year:i,month:n,day:l}=t;return Math.floor(Date.UTC(i,n-1,l)/1e3)}if(t instanceof Date)return Math.floor(t.getTime()/1e3)}return null}function be(t,i){if(!t||typeof t!=\"object\")return`Candle at index ${i} is not a valid object`;const n=[\"time\",\"open\",\"high\",\"low\",\"close\"];for(const l of n){if(!(l in t))return`Candle at index ${i} is missing required field: ${l}`;if(l===\"time\"){if(typeof t.time!=\"number\"&&typeof t.time!=\"object\")return`Candle at index ${i} has invalid time format`}else if(typeof t[l]!=\"number\"||isNaN(t[l]))return`Candle at index ${i} has invalid ${l} value (expected number, got ${typeof t[l]})`}return null}function Se(t){if(!Array.isArray(t))return\"Candle data is not an array\";if(t.length===0)return null;const i=[...t.slice(0,5).map((n,l)=>l),...t.slice(-5).map((n,l)=>t.length-5+l)].filter((n,l,T)=>T.indexOf(n)===l&&n>=0&&n<t.length);for(const n of i){const l=be(t[n],n);if(l)return l}return null}async function Le(){b.value=null,await K()}return(t,i)=>{const n=Et,l=we,T=St;return a(),v(\"div\",Nt,[u(S)?(a(),v(\"div\",qt,[m(n,{class:\"h-4 w-full mb-4\"}),m(n,{class:\"h-4 w-2/3 mb-4\"}),m(n,{class:\"h-4 w-1/2 mb-4\"}),m(n,{class:\"h-4 w-full mb-4\"}),m(n,{class:\"h-4 w-full mb-4\"}),m(n,{class:\"h-4 w-2/3 mb-4\"}),m(n,{class:\"h-4 w-full mb-4\"}),m(n,{class:\"h-4 w-full\"})])):u(b)?(a(),$(T,{key:1,icon:\"i-heroicons-exclamation-triangle\",color:\"amber\",variant:\"subtle\",title:\"Unable to display candle chart\",description:u(b)},{actions:C(()=>[m(l,{variant:\"solid\",color:\"white\",size:\"xs\",icon:\"i-heroicons-arrow-path\",onClick:Le},{default:C(()=>i[0]||(i[0]=[B(\" Retry \")])),_:1})]),_:1},8,[\"description\"])):h(\"\",!0),mt(p(\"div\",{ref_key:\"chartContainer\",ref:f,class:\"rounded overflow-hidden border-2 border-gray-100 dark:border-gray-600\"},null,512),[[pt,!u(S)&&!u(b)]]),c.form.routes.length>1&&!u(b)?(a(),v(\"div\",Bt,[(a(!0),v(W,null,re(c.form.routes,y=>(a(),$(l,{key:y.symbol,variant:\"soft\",color:\"gray\",disabled:t.results.selectedRoute.symbol===y.symbol&&t.results.selectedRoute.timeframe===y.timeframe,class:\"mt-2 mr-2\",onClick:R=>Ee(y)},{default:C(()=>[B(I(y.symbol)+\" • \"+I(y.timeframe),1)]),_:2},1032,[\"disabled\",\"onClick\"]))),128))])):h(\"\",!0)])}}}),zt={class:\"flex justify-end mb-4\"},Ht=ne({__name:\"LiveClosedTrades\",props:{trades:{},sessionId:{}},emits:[\"trade-click\",\"reload\"],setup(z,{emit:o}){const w=z,S=o,_=x(!1),b=E(()=>{if(!w.trades.length)return[];const d=[];for(const r of w.trades)d.push([{value:r.symbol,style:\"text-xs\"},{value:r.type,style:F.colorBasedOnType(r.type)},{value:F.roundPrice(r.entry_price),style:\"text-xs\"},{value:r.exit_price?F.roundPrice(r.exit_price):\"-\",style:\"text-xs\"},{value:r.qty,style:\"text-xs\"},{value:r.pnl!==null?`${xe.round(r.pnl,2)} (${xe.round(r.pnl_percentage,2)}%)`:\"-\",style:r.pnl!==null?F.colorBasedOnNumber(r.pnl):\"\"},{value:F.timestampToTimeOnly(r.opened_at),style:\"text-xs\",tooltip:F.timestampToTime(r.opened_at)},{value:r.status,style:r.status===\"open\"?\"text-blue-600 dark:text-blue-400\":\"text-gray-600 dark:text-gray-400\"}]);return d});function c(d){if(d>=0&&d<w.trades.length){const r=w.trades[d];S(\"trade-click\",r.id)}}async function f(){_.value=!0,S(\"reload\"),setTimeout(()=>{_.value=!1},1e3)}return(d,r)=>{const k=we,P=Ue,D=Fe;return a(),v(\"div\",null,[p(\"div\",zt,[m(k,{icon:\"i-heroicons-arrow-path\",size:\"xs\",variant:\"soft\",color:\"gray\",loading:u(_),label:\"Reload Trades\",class:\"font-bold uppercase tracking-wider text-[10px]\",onClick:f},null,8,[\"loading\"])]),u(b).length?(a(),$(P,{key:0,data:u(b),\"header-items\":[\"Symbol\",\"Type\",\"Entry\",\"Exit\",\"QTY\",\"PNL\",\"Opened\",\"Status\"],header:\"\",clickable:!0,onRowClick:c},null,8,[\"data\"])):(a(),$(D,{key:1,class:\"mt-4\"}))])}}}),Jt=ne({__name:\"LiveOrders\",props:{orders:{}},emits:[\"order-click\"],setup(z,{emit:o}){const w=z,S=o,_=E(()=>{if(!w.orders.length)return[];const c=[];for(let f=w.orders.length-1;f>=0;f--){const d=w.orders[f];c.push([{value:d.id.slice(-12),style:\"text-xs\",tooltip:d.id,tag:\"code\"},{value:F.timestampToTimeOnly(d.created_at),style:\"text-xs\",tooltip:F.timestampToTime(d.created_at)},{value:d.symbol,style:\"text-xs\"},{value:d.type,style:\"text-xs\"},{value:d.side,style:F.colorBasedOnSide(d.side)},{value:d.price,style:\"text-xs\"},{value:d.qty,style:F.colorBasedOnSide(d.side)},{value:d.status,style:\"text-xs\"}])}return c});function b(c){const f=w.orders.length-1-c;if(f>=0&&f<w.orders.length){const d=w.orders[f];S(\"order-click\",d.id)}}return(c,f)=>{const d=Ue,r=Fe;return u(_).length?(a(),$(d,{key:0,data:u(_),\"header-items\":[\"ID\",\"Created\",\"Symbol\",\"Type\",\"Side\",\"Price\",\"QTY\",\"Status\"],header:\"\",clickable:!0,onRowClick:b},null,8,[\"data\"])):(a(),$(r,{key:1}))}}}),Wt={key:0,class:\"flex flex-col items-center justify-center mt-[6%]\"},Kt=[\"textContent\"],Qt={class:\"mt-8\"},Yt={key:1,class:\"mx-auto container mt-8\"},Gt={key:0,\"data-cy\":\"live-page-content\"},Xt={class:\"flex justify-between items-center\"},Zt={class:\"grid grid-cols-1 gap-6\"},es={class:\"flex justify-between items-center\"},ts={key:1},ss={key:0,class:\"mb-8\"},rs={class:\"flex justify-between items-center mb-4\"},os={class:\"flex gap-2\"},ns=[\"onClick\"],ls={key:0,class:\"text-sm text-gray-500 dark:text-gray-400\"},as={class:\"mt-12 mb-6 p-1 bg-gray-50 dark:bg-gray-900/50 border dark:border-gray-700 rounded-2xl flex items-center gap-1\"},is=[\"onClick\"],us={key:0,class:\"w-2 h-2 rounded-full shrink-0 bg-green-500\"},ds={class:\"truncate\"},cs={key:0,class:\"mt-8 lg:mt-0\"},ms={key:3,class:\"grid grid-cols-2 gap-4 mt-4\"},ps={key:4,class:\"grid grid-cols-2 gap-4 mt-4\"},fs={key:1,\"data-cy\":\"live-action-button\"},gs={key:0,class:\"my-8 border-2 dark:border-gray-600 rounded-full\"},ys={key:1,class:\"bg-white dark:bg-gray-800 border dark:border-gray-700 rounded-lg overflow-hidden\"},vs={class:\"px-6 py-4 space-y-3\"},bs={class:\"text-sm font-medium text-gray-500 dark:text-gray-400\"},hs={key:2,class:\"mt-8 bg-white dark:bg-gray-800 border dark:border-gray-700 rounded-lg overflow-hidden\"},_s={class:\"px-6 py-4 space-y-3\"},ks={class:\"text-sm font-medium text-gray-500 dark:text-gray-400 shrink-0\"},xs={class:\"text-sm font-semibold text-gray-900 dark:text-gray-100 sm:text-right whitespace-pre-wrap overflow-x-auto max-w-full\"},ws={key:3,class:\"mt-8 bg-white dark:bg-gray-800 border dark:border-gray-700 rounded-lg overflow-hidden select-none\"},Ts={class:\"px-6 py-4 space-y-4\"},Cs={class:\"text-sm font-bold text-gray-900 dark:text-gray-100 truncate pr-2\"},$s={class:\"text-sm text-gray-500 dark:text-gray-400 truncate text-center px-2\"},Es={class:\"flex justify-end ml-auto\"},Ss={key:4,class:\"mt-8 bg-white dark:bg-gray-800 border dark:border-gray-700 rounded-lg overflow-hidden select-none\"},Ls={class:\"px-6 py-4 border-b dark:border-gray-700 bg-gray-100 dark:bg-gray-700/50 flex justify-between items-center\"},Rs={class:\"text-xs font-bold text-gray-900 dark:text-gray-100 uppercase tracking-wider\"},Vs={class:\"px-6 py-4\"},Is={key:0,class:\"text-sm text-gray-600 dark:text-gray-300 whitespace-pre-wrap\"},Ps={key:1,class:\"text-sm text-gray-400 dark:text-gray-500 italic text-center py-2\"},Us=ne({__name:\"LiveTab\",props:{form:{},results:{},session:{},tabs:{}},setup(z){const o=z,w=E(()=>o.results.generalInfo.title?`${o.results.generalInfo.title} - Live Session - Jesse`:\"Live Session - Jesse\");ze({title:w});const S=x([]),_=x(!1),b=x(!1),c=x(!1),f=x(!1),d=x(!1),r=x(!1),k=x(!1),P=x(!1),D=x(!1),O=x(!1),Q=x(null),H=x(null),A=x(\"positions\"),Y=x(!1),X=x(null),Z=x(null),ee=x(\"auto\"),U=De(),M=de(),ce=E(()=>[\"running\",\"stopping\"].includes(o.results.phase)&&!o.results.exception.error),me=e=>e?F.timestampToTime(e):\"-\",J=x([]);async function K(){if(o.results.phase===\"editing\"){if(!o.form.paper_mode){const e=U.exchangeApiKeys.find(s=>s.id===o.form.exchange_api_key_id);e&&(o.form.exchange=e.exchange)}try{J.value=await De().getExchangeSupportedSymbols(o.form.exchange);for(let e=0;e<o.form.routes.length;e++)J.value.includes(o.form.routes[e].symbol)||(o.form.routes[e].symbol=J.value[0]);if(o.form.data_routes.length>0)for(let e=0;e<o.form.data_routes.length;e++)J.value.includes(o.form.data_routes[e].symbol)||(o.form.data_routes[e].symbol=J.value[0])}catch(e){console.error(\"Error updating supported symbols:\",e)}}}Pe(async()=>{setTimeout(async()=>{o.form.exchange&&(o.results.phase===\"editing\"||!J.value.length)&&await K()},200),[\"running\",\"stopping\",\"ended\"].includes(o.results.phase)&&await M.fetchEquityCurve(o.session,ee.value)}),q(()=>o.form.exchange,async(e,s)=>{e!==s&&await K()}),q(()=>o.results.phase,async e=>{e===\"editing\"&&await K()});const Te=ft(()=>{o.results.phase===\"editing\"&&M.saveState(o.session)},1e3);q(()=>o.form,()=>{Te()},{deep:!0}),q(()=>o.form.exchange_api_key_id,async(e,s)=>{e!==s&&await K()}),q(Y,async e=>{if(e){const s=await M.getSessionData(o.session);s!=null&&s.session&&(X.value=s.session.title||null,Z.value=s.session.description||null)}});function le(e){o.results.generalInfo.title=e.title||null,o.results.generalInfo.description=e.description||null}const Ce=E(()=>{var V;const e=o.results.generalInfo||{},s=e.exchange||o.form.exchange||\"-\",j=e.started_at||((V=o.results.generalInfo)==null?void 0:V.started_at),N=e.pnl!==void 0&&e.pnl!==null&&e.pnl_perc!==void 0&&e.pnl_perc!==null,Re=e.started_balance!==void 0&&e.started_balance!==null&&e.current_balance!==void 0&&e.current_balance!==null,ie=N?e.pnl>0?\"text-green-500\":e.pnl<0?\"text-rose-500\":\"\":\"\",se=[{label:\"Exchange\",value:s},{label:\"Current Time\",value:me(e.current_time)},{label:\"Debug Mode\",value:e.debug_mode??o.form.debug_mode??\"-\"},{label:\"Paper Trade\",value:e.paper_mode??o.form.paper_mode??\"-\"},{label:\"PNL\",value:N?`${e.pnl} (${e.pnl_perc}%)`:\"-\",color:ie},{label:\"Started\",value:me(j)},{label:\"Started/Current Balance\",value:Re?`${e.started_balance} / ${e.current_balance}`:\"-\"},{label:\"Trades\",value:`${e.count_trades??0}`}],he=e.leverage_type||\"spot\";return he!==\"spot\"&&(se.push({label:\"Available Margin\",value:`${e.available_margin??\"-\"}`}),se.push({label:\"Leverage\",value:`${e.leverage??\"-\"}x (${he})`})),se}),$e=E(()=>U.notificationApiKeys.map(e=>({label:`${e.name} - ${e.driver}`,value:e.id}))),ae=E(()=>Math.round(o.results.progressbar.estimated_remaining_seconds)===0?\"Please wait...\":`${Math.round(o.results.progressbar.estimated_remaining_seconds)} seconds remaining...`),te=E(()=>{let e=[];const s=U.jesseSupportedTimeframes;return U.settings.live.generate_candles_from_1m||!o.form.exchange?e=s.map(j=>U.planLimits.timeframes.includes(j)?{label:j,value:j,disabled:!1}:{label:`${j} (Upgrade required)`,value:j,disabled:!0}):e=U.exchangeInfo[o.form.exchange].supported_timeframes.map(N=>U.planLimits.timeframes.includes(N)?{label:N,value:N,disabled:!1}:{label:`${N} (Upgrade required)`,value:N,disabled:!0}),e}),pe=E(()=>U.liveTradingExchangeNames.map(e=>U.planLimits.exchanges.includes(e)?{label:e,value:e,disabled:!1}:{label:`${e} (Upgrade required)`,value:e,disabled:!0})),fe=E(()=>U.exchangeApiKeys.map(e=>U.planLimits.exchanges.includes(e.exchange)?{label:`${e.exchange} - ${e.name}`,value:e.id,disabled:!1}:{label:`${e.exchange} - ${e.name} (Upgrade required)`,value:e.id,disabled:!0})),ge=M.cancel,ye=M.newLive;function Ee(e){M.start(e)}function ve(e){M.closeTab(e)}async function be(){o.results.infoLogs===\"\"&&o.results.generalInfo.count_info_logs>0&&await M.fetchLogs(o.session),k.value=!0}async function Se(){o.results.errorLogs===\"\"&&o.results.generalInfo.count_error_logs>0&&await M.fetchLogs(o.session),P.value=!0}function Le(){b.value=!0,navigator.clipboard.writeText(o.results.infoLogs),oe(\"success\",\"Logs copied successfully\"),f.value=!0,setTimeout(()=>{f.value=!1},3e3)}function t(){c.value=!0,navigator.clipboard.writeText(o.results.errorLogs),oe(\"success\",\"Logs copied successfully\"),d.value=!0,setTimeout(()=>{d.value=!1},3e3)}const i=E(()=>[\"basic\",\"pro\",\"enterprise\",\"basic-lifetime\",\"pro-lifetime\",\"enterprise-lifetime\",\"lifetime\"].includes(U.plan));function n(e){Q.value=e,D.value=!0}function l(e){H.value=e,O.value=!0}function T(e){A.value=e,e===\"trades\"&&y()}async function y(){const e=await M.fetchTrades(o.session);e&&(o.results.trades=e)}async function R(e){ee.value=e,await M.fetchEquityCurve(o.session,e)}return q(()=>o.results.phase,async e=>{[\"running\",\"stopping\",\"ended\"].includes(e)&&await M.fetchEquityCurve(o.session,ee.value)},{immediate:!0}),(e,s)=>{const j=st,N=rt,Re=At,ie=gt,se=xt,he=wt,V=we,Oe=Tt,Me=yt,Ve=Ct,He=$t,je=vt,Je=Be,We=Ft,Ke=It,Qe=bt,_e=Pt,Ye=Ue,Ge=Ht,Xe=Jt,Ze=Ut,et=Ot;return a(),v(W,null,[m(j,{modelValue:u(D),\"onUpdate:modelValue\":s[0]||(s[0]=g=>G(D)?D.value=g:null),\"trade-id\":u(Q),onOrderClick:l},null,8,[\"modelValue\",\"trade-id\"]),m(N,{modelValue:u(O),\"onUpdate:modelValue\":s[1]||(s[1]=g=>G(O)?O.value=g:null),\"order-id\":u(H)},null,8,[\"modelValue\",\"order-id\"]),m(ie,{modelValue:u(r),\"onUpdate:modelValue\":s[3]||(s[3]=g=>G(r)?r.value=g:null),size:\"small\",title:\"Report An Issue\"},{default:C(()=>[m(Re,{session:e.session,onClose:s[2]||(s[2]=g=>r.value=!1)},null,8,[\"session\"])]),_:1},8,[\"modelValue\"]),m(ie,{modelValue:u(k),\"onUpdate:modelValue\":s[4]||(s[4]=g=>G(k)?k.value=g:null),title:\"Info Logs\"},{default:C(()=>[m(se,{logs:e.results.infoLogs},null,8,[\"logs\"])]),buttons:C(()=>[p(\"button\",{class:\"ml-2 p-2 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-full text-gray-400 hover:text-gray-500 dark:hover:text-gray-300 focus:outline-none\",onClick:Le},[u(f)?(a(),$(u(Ae),{key:0,class:\"h-6 w-6\",\"aria-hidden\":\"true\"})):h(\"\",!0),!u(f)&&e.results.infoLogs.length!=0?(a(),$(u(Ne),{key:1,class:\"h-6 w-6\",\"aria-hidden\":\"true\"})):h(\"\",!0)])]),_:1},8,[\"modelValue\"]),m(ie,{modelValue:u(P),\"onUpdate:modelValue\":s[5]||(s[5]=g=>G(P)?P.value=g:null),title:\"Error Logs\"},{default:C(()=>[m(se,{logs:e.results.errorLogs},null,8,[\"logs\"])]),buttons:C(()=>[p(\"button\",{class:\"ml-2 p-2 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-full text-gray-400 hover:text-gray-500 dark:hover:text-gray-300 focus:outline-none\",onClick:t},[u(d)?(a(),$(u(Ae),{key:0,class:\"h-6 w-6\",\"aria-hidden\":\"true\"})):h(\"\",!0),!u(d)&&e.results.errorLogs.length!=0?(a(),$(u(Ne),{key:1,class:\"h-6 w-6\",\"aria-hidden\":\"true\"})):h(\"\",!0)])]),_:1},8,[\"modelValue\"]),e.results.phase===\"starting\"?(a(),v(\"div\",Wt,[p(\"div\",null,[m(he,{progress:e.results.progressbar.current},null,8,[\"progress\"])]),e.results.exception.error?h(\"\",!0):(a(),v(\"h3\",{key:0,class:\"mt-8 animate-pulse\",textContent:I(u(ae))},null,8,Kt)),p(\"div\",Qt,[e.form.debug_mode?(a(),$(V,{key:0,icon:\"i-heroicons-clipboard-document-list\",variant:\"solid\",label:\"View Logs\",class:\"flex justify-center w-64\",onClick:s[6]||(s[6]=g=>k.value=!0)})):h(\"\",!0),m(V,{color:\"gray\",class:\"w-64 flex justify-center mt-4\",ui:{color:{gray:{soft:\"text-rose-500 dark:text-rose-400\"}}},icon:\"i-heroicons-no-symbol\",variant:\"soft\",label:\"Cancel\",trailing:!1,onClick:s[7]||(s[7]=g=>u(ge)((e._.provides[ue]||e.$route).params.id))})]),e.results.exception.error?(a(),v(\"div\",Yt,[m(Oe,{modelValue:u(_),\"onUpdate:modelValue\":s[8]||(s[8]=g=>G(_)?_.value=g:null),title:e.results.exception.error,content:e.results.exception.traceback,mode:\"live\",\"debug-mode\":e.form.debug_mode},null,8,[\"modelValue\",\"title\",\"content\",\"debug-mode\"])])):h(\"\",!0)])):(a(),$(Ze,{key:1},{left:C(()=>[e.results.phase===\"editing\"?(a(),v(\"div\",Gt,[m(Me,{class:\"mb-4\",title:\"Exchange\"}),e.form.paper_mode?(a(),$(Ve,{key:0,modelValue:e.form.exchange,\"onUpdate:modelValue\":s[9]||(s[9]=g=>e.form.exchange=g),placeholder:\"Select an exchange...\",searchable:\"\",options:u(pe),\"value-attribute\":\"value\",class:\"mt-2 mb-16\"},null,8,[\"modelValue\",\"options\"])):(a(),$(Ve,{key:1,modelValue:e.form.exchange_api_key_id,\"onUpdate:modelValue\":s[10]||(s[10]=g=>e.form.exchange_api_key_id=g),placeholder:\"Select an exchange...\",searchable:\"\",options:u(fe),\"value-attribute\":\"value\",class:\"mt-2 mb-16\"},{empty:C(()=>[p(\"div\",Xt,[s[21]||(s[21]=p(\"span\",null,\" No exchange API keys found. Please add at least one: \",-1)),m(V,{to:\"/exchange-api-keys\",icon:\"i-heroicons-plus\",type:\"link\",variant:\"solid\",size:\"sm\",label:\"Add Exchange API Key\"})])]),_:1},8,[\"modelValue\",\"options\"])),m(He,{\"total-routes-error\":u(S),form:e.form,results:e.results,mode:\"live\",symbols:u(J),timeframes:u(te)},null,8,[\"total-routes-error\",\"form\",\"results\",\"symbols\",\"timeframes\"]),m(Me,{class:\"mt-16 mb-4\",title:\"Options\"}),p(\"div\",Zt,[m(je,{modelValue:e.form.debug_mode,\"onUpdate:modelValue\":s[11]||(s[11]=g=>e.form.debug_mode=g),title:\"Debug Mode\",description:\"Logs more details, helpful for debugging.\"},null,8,[\"modelValue\"]),m(je,{modelValue:e.form.paper_mode,\"onUpdate:modelValue\":s[12]||(s[12]=g=>e.form.paper_mode=g),title:\"Paper Trade\",disabled:!u(i),\"disabled-guide\":u(i)?\"\":\"Premium plan required\",description:\"Trade in real-time using actual exchange data with PAPER money.\"},null,8,[\"modelValue\",\"disabled\",\"disabled-guide\"]),m(Je,{label:\"Notifications:\",help:\"Select a notification driver to receive notifications\"},{default:C(()=>[m(Ve,{modelValue:e.form.notification_api_key_id,\"onUpdate:modelValue\":s[13]||(s[13]=g=>e.form.notification_api_key_id=g),placeholder:\"Select a notification driver\",options:u($e),\"value-attribute\":\"value\"},{empty:C(()=>[p(\"div\",es,[s[22]||(s[22]=p(\"span\",null,\" No notification API keys found. Please add at least one: \",-1)),m(V,{to:\"/notification-api-keys\",icon:\"i-heroicons-plus\",type:\"link\",variant:\"solid\",size:\"sm\",label:\"Add Notification API Key\"})])]),_:1},8,[\"modelValue\",\"options\"])]),_:1})])])):h(\"\",!0),[\"running\",\"stopping\",\"ended\",\"error\"].includes(e.results.phase)?(a(),v(\"div\",ts,[e.results.exception.error?(a(),v(\"div\",ss,[m(Oe,{title:e.results.exception.error,content:e.results.exception.traceback,mode:\"live\",\"debug-mode\":e.form.debug_mode},null,8,[\"title\",\"content\",\"debug-mode\"])])):h(\"\",!0),u(ce)?(a(),$(We,{key:1,results:e.results,form:e.form,exchange:e.form.exchange},null,8,[\"results\",\"form\",\"exchange\"])):h(\"\",!0),[\"running\",\"stopping\",\"ended\"].includes(e.results.phase)?(a(),v(\"div\",{key:2,class:ke(u(ce)?\"mt-12\":\"mt-0\")},[p(\"div\",rs,[s[23]||(s[23]=p(\"h3\",{class:\"text-lg font-bold text-gray-900 dark:text-gray-100\"},\"Equity Curve\",-1)),p(\"div\",os,[(a(),v(W,null,re([\"1m\",\"5m\",\"15m\",\"1h\",\"1d\",\"auto\"],g=>p(\"button\",{key:g,class:ke([\"px-3 py-1.5 text-xs font-semibold rounded-lg transition-colors duration-200\",[u(ee)===g?\"bg-primary-500 text-white\":\"bg-gray-100 dark:bg-gray-700 text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-600\"]]),onClick:L=>R(g)},I(g.toUpperCase()),11,ns)),64))])]),e.results.charts.equity_curve.length===0?(a(),v(\"div\",ls,\" No equity data yet. It should appear shortly after the session starts (usually within ~1 minute). \")):(a(),$(Ke,{key:1,data:e.results.charts.equity_curve},null,8,[\"data\"]))],2)):h(\"\",!0),p(\"div\",as,[(a(!0),v(W,null,re([{id:\"positions\",label:\"Positions\",count:e.results.generalInfo.open_positions,icon:\"i-heroicons-chart-bar\"},{id:\"trades\",label:\"Trades\",count:e.results.generalInfo.count_trades,icon:\"i-heroicons-arrows-right-left\"},{id:\"orders\",label:\"Orders\",count:e.results.generalInfo.count_active_orders,icon:\"i-heroicons-list-bullet\"}],g=>(a(),v(\"button\",{key:g.id,class:ke([\"flex-1 flex items-center justify-center gap-2 px-4 py-2.5 text-xs font-bold rounded-xl select-none h-10 group focus:outline-none transition-colors duration-200\",[u(A)===g.id?\"bg-white dark:bg-gray-700 text-gray-900 dark:text-white border border-gray-200 dark:border-gray-600\":\"text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-200 hover:bg-gray-100 dark:hover:bg-gray-700/50 border border-transparent\"]]),onClick:L=>T(g.id)},[g.id===\"positions\"&&g.count>0?(a(),v(\"div\",us)):(a(),$(Qe,{key:1,name:g.icon,class:\"w-4 h-4 shrink-0\"},null,8,[\"name\"])),p(\"span\",ds,I(g.label.toUpperCase()),1),g.count>0?(a(),$(_e,{key:2,color:\"gray\",variant:\"solid\",size:\"xs\",class:\"ml-1 px-1.5 py-0 min-w-[1.25rem] flex justify-center text-[10px] font-black rounded-md\"},{default:C(()=>[B(I(g.count),1)]),_:2},1024)):h(\"\",!0)],10,is))),128))]),p(\"div\",null,[u(A)===\"positions\"?(a(),$(Ye,{key:0,data:e.results.positions,\"header-items\":[\"Symbol\",\"QTY\",\"Entry\",\"Price\",\"Liq Price\",\"PNL\"],header:\"\"},null,8,[\"data\"])):h(\"\",!0),u(A)===\"trades\"?(a(),$(Ge,{key:1,trades:e.results.trades,\"session-id\":e.session,onTradeClick:n,onReload:y},null,8,[\"trades\",\"session-id\"])):h(\"\",!0),u(A)===\"orders\"?(a(),$(Xe,{key:2,orders:e.results.orders,onOrderClick:l},null,8,[\"orders\"])):h(\"\",!0)])])):h(\"\",!0)]),right:C(()=>{var g;return[p(\"div\",null,[[\"running\",\"stopping\",\"ended\",\"error\"].includes(e.results.phase)?(a(),v(\"div\",cs,[e.results.phase===\"ended\"||e.results.phase===\"error\"?(a(),$(V,{key:0,class:\"w-full flex justify-center\",variant:\"solid\",icon:\"i-heroicons-plus\",label:\"New session\",onClick:s[14]||(s[14]=L=>u(ye)((e._.provides[ue]||e.$route).params.id))})):(a(),$(V,{key:1,class:\"w-full flex justify-center\",variant:\"soft\",color:\"gray\",icon:\"i-heroicons-no-symbol\",label:e.results.phase===\"stopping\"?\"Terminating...\":\"Terminate\",ui:{color:{gray:{soft:\"text-rose-500 dark:text-rose-400\"}}},onClick:s[15]||(s[15]=L=>u(M).openStopConfirmModal((e._.provides[ue]||e.$route).params.id))},null,8,[\"label\"])),[\"running\",\"stopping\",\"ended\",\"error\"].includes(e.results.phase)?(a(),$(V,{key:2,class:\"w-full flex justify-center mt-4\",variant:\"soft\",color:\"gray\",icon:\"i-heroicons-flag\",label:\"Report\",onClick:s[16]||(s[16]=L=>r.value=!0)})):h(\"\",!0),[\"running\",\"stopping\",\"ended\",\"error\"].includes(e.results.phase)?(a(),v(\"div\",ms,[m(V,{color:\"gray\",variant:\"soft\",icon:\"i-heroicons-clipboard-document-list\",class:\"flex justify-center\",onClick:be},{trailing:C(()=>[m(_e,{color:\"gray\",variant:\"solid\",size:\"xs\",class:\"ml-1\"},{default:C(()=>[B(I(e.results.generalInfo.count_info_logs),1)]),_:1})]),default:C(()=>[s[24]||(s[24]=B(\" Logs \"))]),_:1}),m(V,{color:\"gray\",variant:\"soft\",icon:\"i-heroicons-exclamation-triangle\",class:\"flex justify-center\",onClick:Se},{trailing:C(()=>[m(_e,{color:e.results.generalInfo.count_error_logs>0?\"rose\":\"gray\",variant:\"solid\",size:\"xs\",class:\"ml-1\"},{default:C(()=>[B(I(e.results.generalInfo.count_error_logs),1)]),_:1},8,[\"color\"])]),default:C(()=>[s[25]||(s[25]=B(\" Errors \"))]),_:1})])):h(\"\",!0),[\"running\",\"stopping\",\"ended\",\"error\"].includes(e.results.phase)?(a(),v(\"div\",ps,[m(V,{to:`/live/orders-history?id=${e.session}`,color:\"gray\",variant:\"soft\",icon:\"i-heroicons-list-bullet\",class:\"flex justify-center\"},{default:C(()=>s[26]||(s[26]=[B(\" Orders \")])),_:1},8,[\"to\"]),m(V,{to:`/live/trades-history?id=${e.session}`,color:\"gray\",variant:\"soft\",icon:\"i-heroicons-arrows-right-left\",class:\"flex justify-center\"},{default:C(()=>s[27]||(s[27]=[B(\" Trades \")])),_:1},8,[\"to\"])])):h(\"\",!0)])):(a(),v(\"div\",fs,[m(V,{class:\"w-full flex justify-center\",icon:\"i-heroicons-bolt\",label:\"Start\",trailing:!1,onClick:s[17]||(s[17]=L=>Ee((e._.provides[ue]||e.$route).params.id))}),Object.keys(e.tabs).length>1?(a(),$(V,{key:0,class:\"w-full md:hidden flex justify-center mt-2\",icon:\"i-heroicons-x-mark\",variant:\"soft\",color:\"gray\",label:\"Close Tab\",trailing:!1,onClick:s[18]||(s[18]=L=>ve((e._.provides[ue]||e.$route).params.id))})):h(\"\",!0)]))]),[\"running\",\"stopping\",\"ended\",\"error\"].includes(e.results.phase)?(a(),v(\"hr\",gs)):h(\"\",!0),[\"running\",\"stopping\",\"ended\",\"error\"].includes(e.results.phase)?(a(),v(\"div\",ys,[s[28]||(s[28]=p(\"div\",{class:\"px-6 py-4 border-b dark:border-gray-700 bg-gray-100 dark:bg-gray-700/50\"},[p(\"h3\",{class:\"text-xs font-bold text-gray-900 dark:text-gray-100 uppercase tracking-wider\"},\"Session Info\")],-1)),p(\"dl\",vs,[(a(!0),v(W,null,re(u(Ce),L=>(a(),v(\"div\",{key:L.label,class:\"flex justify-between items-center\"},[p(\"dt\",bs,I(L.label)+\":\",1),p(\"dd\",{class:ke([\"text-sm font-semibold truncate ml-4\",L.color||\"text-gray-900 dark:text-gray-100\"])},I(L.value),3)]))),128))])])):h(\"\",!0),[\"running\",\"stopping\",\"ended\",\"error\"].includes(e.results.phase)&&((g=e.results.watchlist[`${o.form.exchange}-${e.results.selectedRoute.symbol}-${e.results.selectedRoute.timeframe}`])!=null&&g.length)?(a(),v(\"div\",hs,[s[29]||(s[29]=p(\"div\",{class:\"px-6 py-4 border-b dark:border-gray-700 bg-gray-100 dark:bg-gray-700/50\"},[p(\"h3\",{class:\"text-xs font-bold text-gray-900 dark:text-gray-100 uppercase tracking-wider\"},\"Watch List\")],-1)),p(\"dl\",_s,[(a(!0),v(W,null,re(e.results.watchlist[`${o.form.exchange}-${e.results.selectedRoute.symbol}-${e.results.selectedRoute.timeframe}`],(L,Ie)=>(a(),v(\"div\",{key:Ie,class:\"flex flex-col sm:flex-row sm:justify-between sm:items-start gap-1\"},[p(\"dt\",ks,I(L[0])+\":\",1),p(\"dd\",xs,I(L[1]),1)]))),128))])])):h(\"\",!0),[\"running\",\"stopping\",\"ended\",\"error\"].includes(e.results.phase)&&e.results.routes.length?(a(),v(\"div\",ws,[s[30]||(s[30]=p(\"div\",{class:\"px-6 py-4 border-b dark:border-gray-700 bg-gray-100 dark:bg-gray-700/50\"},[p(\"h3\",{class:\"text-xs font-bold text-gray-900 dark:text-gray-100 uppercase tracking-wider\"},\"Routes\")],-1)),p(\"div\",Ts,[(a(!0),v(W,null,re(e.results.routes,(L,Ie)=>(a(),v(\"div\",{key:Ie,class:\"grid grid-cols-3 items-center\"},[p(\"div\",Cs,I(L[2].value),1),p(\"div\",$s,I(L[0].value),1),p(\"div\",Es,[m(_e,{color:\"gray\",variant:\"soft\",size:\"xs\"},{default:C(()=>[B(I(L[1].value),1)]),_:2},1024)])]))),128))])])):h(\"\",!0),[\"running\",\"stopping\",\"ended\",\"error\"].includes(e.results.phase)?(a(),v(\"div\",Ss,[p(\"div\",Ls,[p(\"h3\",Rs,I(e.results.generalInfo.title||\"Session Notes\"),1),m(V,{variant:\"link\",color:\"gray\",icon:\"i-heroicons-pencil-square\",size:\"xs\",onClick:s[19]||(s[19]=L=>Y.value=!0)})]),p(\"div\",Vs,[e.results.generalInfo.description?(a(),v(\"div\",Is,I(e.results.generalInfo.description),1)):(a(),v(\"div\",Ps,\" No notes yet. Click the edit button to add notes. \"))])])):h(\"\",!0)]}),_:1})),m(et,{modelValue:u(Y),\"onUpdate:modelValue\":s[20]||(s[20]=g=>G(Y)?Y.value=g:null),\"session-id\":e.session,\"initial-title\":u(X),\"initial-description\":u(Z),onSaved:le},null,8,[\"modelValue\",\"session-id\",\"initial-title\",\"initial-description\"])],64)}}}),Os={class:\"w-full\"},nr=ne({__name:\"[id]\",setup(z){ze({title:\"Live/Paper trading - Jesse\"});const o=de(),w=E(()=>o.tabs),S=ht(),_=E(()=>S.params.id),b=E(()=>w.value[_.value]);Pe(async()=>{if(!b.value){if(o.recentlyClosedTabIds.includes(_.value))return;!await o.ensureTab(_.value)&&Object.keys(w.value).length===0&&await o.addTab()}}),q(_,f=>{if(!f||w.value[f]||!o.recentlyClosedTabIds.includes(f))return;const d=Object.keys(w.value)[0];if(d){_t(`/live/${d}`);return}o.addTab()},{immediate:!0}),kt(()=>{var r,k;const f=b.value;if(!f)return;const d=(r=f.form.routes)==null?void 0:r[0];!f.results.selectedRoute||Object.keys(f.results.selectedRoute).length===0?d&&(f.results.selectedRoute=d):d&&c(f.results.selectedRoute,d)&&(f.results.selectedRoute=d),f.form.exchange===\"\"&&(f.form.exchange=((k=f.results.generalInfo)==null?void 0:k.exchange)||\"\")});function c(f,d){return!f||!d?!1:f.symbol===d.symbol&&f.timeframe===d.timeframe&&f.strategy===d.strategy}return Mt({w:()=>{const f=S.params.id;f&&o.requestCloseOrStopTab(f)},ArrowLeft:()=>o.goToPrevTab(_.value),ArrowRight:()=>o.goToNextTab(_.value)}),(f,d)=>{const r=tt,k=Us;return a(),v(W,null,[p(\"div\",Os,[m(r,{\"current-tab\":b.value?b.value.id:null,tabs:w.value,onClose:u(o).closeTab,onCancel:u(o).cancel},null,8,[\"current-tab\",\"tabs\",\"onClose\",\"onCancel\"])]),b.value?(a(),$(k,{key:0,form:b.value.form,results:b.value.results,session:_.value,tabs:w.value},null,8,[\"form\",\"results\",\"session\",\"tabs\"])):h(\"\",!0)],64)}}});export{nr as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BJGe-b2p.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Scheme\",\"fileTypes\":[\"scm\",\"ss\",\"sch\",\"rkt\"],\"name\":\"scheme\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#block-comment\"},{\"include\":\"#sexp\"},{\"include\":\"#string\"},{\"include\":\"#language-functions\"},{\"include\":\"#quote\"},{\"include\":\"#illegal\"}],\"repository\":{\"block-comment\":{\"begin\":\"\\\\\\\\#\\\\\\\\|\",\"contentName\":\"comment\",\"end\":\"\\\\\\\\|\\\\\\\\#\",\"name\":\"comment\",\"patterns\":[{\"include\":\"#block-comment\",\"name\":\"comment\"}]},\"comment\":{\"begin\":\"(^[ \\\\\\\\t]+)?(?=;)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.scheme\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\";\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.scheme\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.semicolon.scheme\"}]},\"constants\":{\"patterns\":[{\"match\":\"#[t|f]\",\"name\":\"constant.language.boolean.scheme\"},{\"match\":\"(?<=[\\\\\\\\(\\\\\\\\s])((#e|#i)?[0-9]+(\\\\\\\\.[0-9]+)?|(#x)[0-9a-fA-F]+|(#o)[0-7]+|(#b)[01]+)(?=[\\\\\\\\s;()'\\\\\",\\\\\\\\[\\\\\\\\]])\",\"name\":\"constant.numeric.scheme\"}]},\"illegal\":{\"match\":\"[()\\\\\\\\[\\\\\\\\]]\",\"name\":\"invalid.illegal.parenthesis.scheme\"},\"language-functions\":{\"patterns\":[{\"match\":\"(?<=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\[))(do|or|and|else|quasiquote|begin|if|case|set!|cond|let|unquote|define|let\\\\\\\\*|unquote-splicing|delay|letrec)(?=(\\\\\\\\s|\\\\\\\\())\",\"name\":\"keyword.control.scheme\"},{\"comment\":\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tThese functions run a test, and return a boolean\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tanswer.\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\",\"match\":\"(?<=(\\\\\\\\s|\\\\\\\\())(char-alphabetic|char-lower-case|char-numeric|char-ready|char-upper-case|char-whitespace|(?:char|string)(?:-ci)?(?:=|<=?|>=?)|atom|boolean|bound-identifier=|char|complex|identifier|integer|symbol|free-identifier=|inexact|eof-object|exact|list|(?:input|output)-port|pair|real|rational|zero|vector|negative|odd|null|string|eq|equal|eqv|even|number|positive|procedure)(\\\\\\\\?)(?=(\\\\\\\\s|\\\\\\\\())\",\"name\":\"support.function.boolean-test.scheme\"},{\"comment\":\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tThese functions change one type into another.\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\",\"match\":\"(?<=(\\\\\\\\s|\\\\\\\\())(char->integer|exact->inexact|inexact->exact|integer->char|symbol->string|list->vector|list->string|identifier->symbol|vector->list|string->list|string->number|string->symbol|number->string)(?=(\\\\\\\\s|\\\\\\\\())\",\"name\":\"support.function.convert-type.scheme\"},{\"comment\":\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tThese functions are potentially dangerous because\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tthey have side-effects which could affect other\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tparts of the program.\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\",\"match\":\"(?<=(\\\\\\\\s|\\\\\\\\())(set-(?:car|cdr)|(?:vector|string)-(?:fill|set))(!)(?=(\\\\\\\\s|\\\\\\\\())\",\"name\":\"support.function.with-side-effects.scheme\"},{\"comment\":\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t+, -, *, /, =, >, etc. \\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\",\"match\":\"(?<=(\\\\\\\\s|\\\\\\\\())(>=?|<=?|=|[*/+-])(?=(\\\\\\\\s|\\\\\\\\())\",\"name\":\"keyword.operator.arithmetic.scheme\"},{\"match\":\"(?<=(\\\\\\\\s|\\\\\\\\())(append|apply|approximate|call-with-current-continuation|call/cc|catch|construct-identifier|define-syntax|display|foo|for-each|force|format|cd|gen-counter|gen-loser|generate-identifier|last-pair|length|let-syntax|letrec-syntax|list|list-ref|list-tail|load|log|macro|magnitude|map|map-streams|max|member|memq|memv|min|newline|nil|not|peek-char|rationalize|read|read-char|return|reverse|sequence|substring|syntax|syntax-rules|transcript-off|transcript-on|truncate|unwrap-syntax|values-list|write|write-char|cons|c(a|d){1,4}r|abs|acos|angle|asin|assoc|assq|assv|atan|ceiling|cos|floor|round|sin|sqrt|tan|(?:real|imag)-part|numerator|denominatormodulo|exp|expt|remainder|quotient|lcm|call-with-(?:input|output)-file|(?:close|current)-(?:input|output)-port|with-(?:input|output)-from-file|open-(?:input|output)-file|char-(?:downcase|upcase|ready)|make-(?:polar|promise|rectangular|string|vector)string(?:-(?:append|copy|length|ref))?|vector(?:-length|-ref))(?=(\\\\\\\\s|\\\\\\\\())\",\"name\":\"support.function.general.scheme\"}]},\"quote\":{\"comment\":\"\\\\n\\\\t\\\\t\\\\t\\\\tWe need to be able to quote any kind of item, which creates\\\\n\\\\t\\\\t\\\\t\\\\ta tiny bit of complexity in our grammar.  It is hopefully\\\\n\\\\t\\\\t\\\\t\\\\tnot overwhelming complexity.\\\\n\\\\t\\\\t\\\\t\\\\t\\\\n\\\\t\\\\t\\\\t\\\\tNote: the first two matches are special cases.  quoted\\\\n\\\\t\\\\t\\\\t\\\\tsymbols, and quoted empty lists are considered constant.other\\\\n\\\\t\\\\t\\\\t\\\\t\\\\n\\\\t\\\\t\\\\t\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.section.quoted.symbol.scheme\"}},\"match\":\"(')\\\\\\\\s*([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*)\",\"name\":\"constant.other.symbol.scheme\"},{\"captures\":{\"1\":{\"name\":\"punctuation.section.quoted.empty-list.scheme\"},\"2\":{\"name\":\"meta.expression.scheme\"},\"3\":{\"name\":\"punctuation.section.expression.begin.scheme\"},\"4\":{\"name\":\"punctuation.section.expression.end.scheme\"}},\"match\":\"(')\\\\\\\\s*((\\\\\\\\()\\\\\\\\s*(\\\\\\\\)))\",\"name\":\"constant.other.empty-list.schem\"},{\"begin\":\"(')\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.quoted.scheme\"}},\"comment\":\"quoted double-quoted string or s-expression\",\"end\":\"(?=[\\\\\\\\s()])|(?<=\\\\\\\\n)\",\"name\":\"string.other.quoted-object.scheme\",\"patterns\":[{\"include\":\"#quoted\"}]}]},\"quote-sexp\":{\"begin\":\"(?<=\\\\\\\\()\\\\\\\\s*(quote)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.quote.scheme\"}},\"comment\":\"\\\\n\\\\t\\\\t\\\\t\\\\tSomething quoted with (quote «thing»).  In this case «thing»\\\\n\\\\t\\\\t\\\\t\\\\twill not be evaluated, so we are considering it a string.\\\\n\\\\t\\\\t\\\\t\",\"contentName\":\"string.other.quote.scheme\",\"end\":\"(?=[\\\\\\\\s)])|(?<=\\\\\\\\n)\",\"patterns\":[{\"include\":\"#quoted\"}]},\"quoted\":{\"patterns\":[{\"include\":\"#string\"},{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.expression.begin.scheme\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.expression.end.scheme\"}},\"name\":\"meta.expression.scheme\",\"patterns\":[{\"include\":\"#quoted\"}]},{\"include\":\"#quote\"},{\"include\":\"#illegal\"}]},\"sexp\":{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.expression.begin.scheme\"}},\"end\":\"(\\\\\\\\))(\\\\\\\\n)?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.expression.end.scheme\"},\"2\":{\"name\":\"meta.after-expression.scheme\"}},\"name\":\"meta.expression.scheme\",\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?<=\\\\\\\\()(define)\\\\\\\\s+(\\\\\\\\()([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*)((\\\\\\\\s+([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*|[._]))*)\\\\\\\\s*(\\\\\\\\))\",\"captures\":{\"1\":{\"name\":\"keyword.control.scheme\"},\"2\":{\"name\":\"punctuation.definition.function.scheme\"},\"3\":{\"name\":\"entity.name.function.scheme\"},\"4\":{\"name\":\"variable.parameter.function.scheme\"},\"7\":{\"name\":\"punctuation.definition.function.scheme\"}},\"end\":\"(?=\\\\\\\\))\",\"name\":\"meta.declaration.procedure.scheme\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#sexp\"},{\"include\":\"#illegal\"}]},{\"begin\":\"(?<=\\\\\\\\()(lambda)\\\\\\\\s+(\\\\\\\\()((?:([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*|[._])\\\\\\\\s+)*(?:([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*|[._]))?)(\\\\\\\\))\",\"captures\":{\"1\":{\"name\":\"keyword.control.scheme\"},\"2\":{\"name\":\"punctuation.definition.variable.scheme\"},\"3\":{\"name\":\"variable.parameter.scheme\"},\"6\":{\"name\":\"punctuation.definition.variable.scheme\"}},\"comment\":\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tNot sure this one is quite correct.  That \\\\\\\\s* is\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tparticularly troubling\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\",\"end\":\"(?=\\\\\\\\))\",\"name\":\"meta.declaration.procedure.scheme\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#sexp\"},{\"include\":\"#illegal\"}]},{\"begin\":\"(?<=\\\\\\\\()(define)\\\\\\\\s([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*)\\\\\\\\s*.*?\",\"captures\":{\"1\":{\"name\":\"keyword.control.scheme\"},\"2\":{\"name\":\"variable.other.scheme\"}},\"end\":\"(?=\\\\\\\\))\",\"name\":\"meta.declaration.variable.scheme\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#sexp\"},{\"include\":\"#illegal\"}]},{\"include\":\"#quote-sexp\"},{\"include\":\"#quote\"},{\"include\":\"#language-functions\"},{\"include\":\"#string\"},{\"include\":\"#constants\"},{\"match\":\"(?<=[\\\\\\\\(\\\\\\\\s])(#\\\\\\\\\\\\\\\\)(space|newline|tab)(?=[\\\\\\\\s\\\\\\\\)])\",\"name\":\"constant.character.named.scheme\"},{\"match\":\"(?<=[\\\\\\\\(\\\\\\\\s])(#\\\\\\\\\\\\\\\\)x[0-9A-F]{2,4}(?=[\\\\\\\\s\\\\\\\\)])\",\"name\":\"constant.character.hex-literal.scheme\"},{\"match\":\"(?<=[\\\\\\\\(\\\\\\\\s])(#\\\\\\\\\\\\\\\\).(?=[\\\\\\\\s\\\\\\\\)])\",\"name\":\"constant.character.escape.scheme\"},{\"comment\":\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tthe . in (a . b) which conses together two elements\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\ta and b. (a b c) == (a . (b . (c . nil)))\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\",\"match\":\"(?<=[ ()])\\\\\\\\.(?=[ ()])\",\"name\":\"punctuation.separator.cons.scheme\"},{\"include\":\"#sexp\"},{\"include\":\"#illegal\"}]},\"string\":{\"begin\":\"(\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.scheme\"}},\"end\":\"(\\\\\")\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.scheme\"}},\"name\":\"string.quoted.double.scheme\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.scheme\"}]}},\"scopeName\":\"source.scheme\"}`)),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BK9xJ97g.js",
    "content": "import e from\"./BMYPR7BL.js\";import t from\"./xI-RfyKK.js\";import\"./ySlJ1b_l.js\";import\"./BPhBrDlE.js\";const n=Object.freeze(JSON.parse(`{\"displayName\":\"COBOL\",\"fileTypes\":[\"ccp\",\"scbl\",\"cobol\",\"cbl\",\"cblle\",\"cblsrce\",\"cblcpy\",\"lks\",\"pdv\",\"cpy\",\"copybook\",\"cobcopy\",\"fd\",\"sel\",\"scb\",\"scbl\",\"sqlcblle\",\"cob\",\"dds\",\"def\",\"src\",\"ss\",\"wks\",\"bib\",\"pco\"],\"name\":\"cobol\",\"patterns\":[{\"match\":\"(^[ \\\\\\\\*][ \\\\\\\\*][ \\\\\\\\*][ \\\\\\\\*][ \\\\\\\\*][ \\\\\\\\*])([dD]\\\\\\\\s.*$)\",\"name\":\"token.info-token.cobol\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.cobol\"},\"2\":{\"name\":\"comment.line.cobol.newpage\"}},\"match\":\"(^[ \\\\\\\\*][ \\\\\\\\*][ \\\\\\\\*][ \\\\\\\\*][ \\\\\\\\*][ \\\\\\\\*])(\\\\\\\\/.*$)\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.cobol\"},\"2\":{\"name\":\"comment.line.cobol.fixed\"}},\"match\":\"(^[ \\\\\\\\*][ \\\\\\\\*][ \\\\\\\\*][ \\\\\\\\*][ \\\\\\\\*][ \\\\\\\\*])(\\\\\\\\*.*$)\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.cobol\"},\"2\":{\"name\":\"comment.line.cobol.newpage\"}},\"match\":\"(^[0-9\\\\\\\\s][0-9\\\\\\\\s][0-9\\\\\\\\s][0-9\\\\\\\\s][0-9\\\\\\\\s][0-9\\\\\\\\s])(\\\\\\\\/.*$)\"},{\"match\":\"^[0-9\\\\\\\\s][0-9\\\\\\\\s][0-9\\\\\\\\s][0-9\\\\\\\\s][0-9\\\\\\\\s][0-9\\\\\\\\s]$\",\"name\":\"constant.numeric.cobol\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.cobol\"},\"2\":{\"name\":\"comment.line.cobol.fixed\"}},\"match\":\"(^[0-9\\\\\\\\s][0-9\\\\\\\\s][0-9\\\\\\\\s][0-9\\\\\\\\s][0-9\\\\\\\\s][0-9\\\\\\\\s])(\\\\\\\\*.*$)\"},{\"captures\":{\"1\":{\"name\":\"constant.cobol\"},\"2\":{\"name\":\"comment.line.cobol.fixed\"}},\"match\":\"(^[0-9a-zA-Z\\\\\\\\s\\\\\\\\$#%\\\\\\\\.@\\\\\\\\- ][0-9a-zA-Z\\\\\\\\s\\\\\\\\$#%\\\\\\\\.@\\\\\\\\- ][0-9a-zA-Z\\\\\\\\s\\\\\\\\$#%\\\\\\\\.@\\\\\\\\- ][0-9a-zA-Z\\\\\\\\s\\\\\\\\$#%\\\\\\\\.@\\\\\\\\- ][0-9a-zA-Z\\\\\\\\s\\\\\\\\$#%\\\\\\\\.@\\\\\\\\- ][0-9a-zA-Z\\\\\\\\s\\\\\\\\$#%\\\\\\\\.@\\\\\\\\- ])(\\\\\\\\*.*$)\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.cobol\"},\"2\":{\"name\":\"variable.other.constant\"}},\"match\":\"^\\\\\\\\s+(78)\\\\\\\\s+([0-9a-zA-Z][a-zA-Z\\\\\\\\-0-9_]+)\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.cobol\"},\"2\":{\"name\":\"variable.other.constant\"},\"3\":{\"name\":\"keyword.identifers.cobol\"}},\"match\":\"^\\\\\\\\s+([0-9]+)\\\\\\\\s+([0-9a-zA-Z][a-zA-Z\\\\\\\\-0-9_]+)\\\\\\\\s+((?i:constant))\"},{\"captures\":{\"1\":{\"name\":\"constant.cobol\"},\"2\":{\"name\":\"comment.line.cobol.newpage\"}},\"match\":\"(^[0-9a-zA-Z\\\\\\\\s\\\\\\\\$#%\\\\\\\\.@][0-9a-zA-Z\\\\\\\\s\\\\\\\\$#%\\\\\\\\.@][0-9a-zA-Z\\\\\\\\s\\\\\\\\$#%\\\\\\\\.@][0-9a-zA-Z\\\\\\\\s\\\\\\\\$#%\\\\\\\\.@][0-9a-zA-Z\\\\\\\\s\\\\\\\\$#%\\\\\\\\.@][0-9a-zA-Z\\\\\\\\s\\\\\\\\$#%\\\\\\\\.@])(\\\\\\\\/.*$)\"},{\"match\":\"^\\\\\\\\*.*$\",\"name\":\"comment.line.cobol.fixed\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.directive.conditional.cobol\"},\"2\":{\"name\":\"entity.name.function.preprocessor.cobol\"},\"3\":{\"name\":\"entity.name.function.cobol\"},\"4\":{\"name\":\"keyword.control.directive.conditional.cobol\"}},\"match\":\"((?:^|\\\\\\\\s+)(?i:\\\\\\\\$set)\\\\\\\\s+)((?i:constant)\\\\\\\\s+)([0-9a-zA-Z][a-zA-Z\\\\\\\\-0-9]+\\\\\\\\s*)([a-zA-Z\\\\\\\\-0-9]*)\"},{\"captures\":{\"1\":{\"name\":\"entity.name.function.preprocessor.cobol\"},\"2\":{\"name\":\"storage.modifier.import.cobol\"},\"3\":{\"name\":\"punctuation.begin.bracket.round.cobol\"},\"4\":{\"name\":\"string.quoted.other.cobol\"},\"5\":{\"name\":\"punctuation.end.bracket.round.cobol\"}},\"match\":\"((?i:\\\\\\\\$\\\\\\\\s*set\\\\\\\\s+)(ilusing)(\\\\\\\\()(.*)(\\\\\\\\)))\"},{\"captures\":{\"1\":{\"name\":\"entity.name.function.preprocessor.cobol\"},\"2\":{\"name\":\"storage.modifier.import.cobol\"},\"3\":{\"name\":\"punctuation.definition.string.begin.cobol\"},\"4\":{\"name\":\"string.quoted.other.cobol\"},\"5\":{\"name\":\"punctuation.definition.string.begin.cobol\"}},\"match\":\"((?i:\\\\\\\\$\\\\\\\\s*set\\\\\\\\s+)(ilusing)(\\\\\")(.*)(\\\\\"))\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.directive.conditional.cobol\"},\"2\":{\"name\":\"entity.name.function.preprocessor.cobol\"},\"3\":{\"name\":\"punctuation.definition.string.begin.cobol\"},\"4\":{\"name\":\"string.quoted.other.cobol\"},\"5\":{\"name\":\"punctuation.definition.string.begin.cobol\"}},\"match\":\"((?i:\\\\\\\\$set))\\\\\\\\s+(\\\\\\\\w+)\\\\\\\\s*(\\\\\")(\\\\\\\\w*)(\\\\\")\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.directive.conditional.cobol\"},\"2\":{\"name\":\"entity.name.function.preprocessor.cobol\"},\"3\":{\"name\":\"punctuation.begin.bracket.round.cobol\"},\"4\":{\"name\":\"string.quoted.other.cobol\"},\"5\":{\"name\":\"punctuation.end.bracket.round.cobol\"}},\"match\":\"((?i:\\\\\\\\$set))\\\\\\\\s+(\\\\\\\\w+)\\\\\\\\s*(\\\\\\\\()(.*)(\\\\\\\\))\"},{\"captures\":{\"0\":{\"name\":\"keyword.control.directive.conditional.cobol\"},\"1\":{\"name\":\"invalid.illegal.directive\"},\"2\":{\"name\":\"comment.line.set.cobol\"}},\"match\":\"(?:^|\\\\\\\\s+)(?i:\\\\\\\\$\\\\\\\\s*set\\\\\\\\s)((?i:01SHUFFLE|64KPARA|64KSECT|AUXOPT|CHIP|DATALIT|EANIM|EXPANDDATA|FIXING|FLAG-CHIP|MASM|MODEL|OPTSIZE|OPTSPEED|PARAS|PROTMODE|REGPARM|SEGCROSS|SEGSIZE|SIGNCOMPARE|SMALLDD|TABLESEGCROSS|TRICKLECHECK|\\\\\\\\s)+).*$\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.directive.cobol\"},\"2\":{\"name\":\"entity.other.attribute-name.preprocessor.cobol\"}},\"match\":\"(\\\\\\\\$region|\\\\\\\\$end-region)(.*$)\"},{\"begin\":\"\\\\\\\\$(?i:doc)(.*$)\",\"end\":\"\\\\\\\\$(?i:end-doc)(.*$)\",\"name\":\"invalid.illegal.iscobol\"},{\"match\":\">>\\\\\\\\s*(?i:turn|page|listing|leap-seconds|d)\\\\\\\\s+.*$\",\"name\":\"invalid.illegal.meta.preprocessor.cobolit\"},{\"match\":\"(?i:substitute-case|substitute)\\\\\\\\s+\",\"name\":\"invalid.illegal.functions.cobolit\"},{\"captures\":{\"1\":{\"name\":\"invalid.illegal.keyword.control.directive.conditional.cobol\"},\"2\":{\"name\":\"invalid.illegal.entity.name.function.preprocessor.cobol\"},\"3\":{\"name\":\"invalid.illegal.entity.name.function.preprocessor.cobol\"}},\"match\":\"((((>>|\\\\\\\\$)[\\\\\\\\s]*)(?i:elif))(.*$))\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.directive.conditional.cobol\"},\"2\":{\"name\":\"entity.name.function.preprocessor.cobol\"},\"3\":{\"name\":\"entity.name.function.preprocessor.cobol\"}},\"match\":\"((((>>|\\\\\\\\$)[\\\\\\\\s]*)(?i:if|else|elif|end-if|end-evaluate|end|define|evaluate|when|display|call-convention|set))(.*$))\"},{\"captures\":{\"1\":{\"name\":\"comment.line.scantoken.cobol\"},\"2\":{\"name\":\"keyword.cobol\"},\"3\":{\"name\":\"string.cobol\"}},\"match\":\"(\\\\\\\\*>)\\\\\\\\s+(@[0-9a-zA-Z][a-zA-Z\\\\\\\\-0-9]+)\\\\\\\\s+(.*$)\"},{\"match\":\"(\\\\\\\\*>.*$)\",\"name\":\"comment.line.modern\"},{\"match\":\"(>>.*)$\",\"name\":\"strong comment.line.set.acucobol\"},{\"match\":\"([nNuU][xX]|[hHxX])'\\\\\\\\h*'\",\"name\":\"constant.numeric.integer.hexadecimal.cobol\"},{\"match\":\"([nNuU][xX]|[hHxX])'.*'\",\"name\":\"invalid.illegal.hexadecimal.cobol\"},{\"match\":\"([nNuU][xX]|[hHxX])\\\\\"\\\\\\\\h*\\\\\"\",\"name\":\"constant.numeric.integer.hexadecimal.cobol\"},{\"match\":\"([nNuU][xX]|[hHxX])\\\\\".*\\\\\"\",\"name\":\"invalid.illegal.hexadecimal.cobol\"},{\"match\":\"[bB]\\\\\"[0-1]\\\\\"\",\"name\":\"constant.numeric.integer.boolean.cobol\"},{\"match\":\"[bB]'[0-1]'\",\"name\":\"constant.numeric.integer.boolean.cobol\"},{\"match\":\"[oO]\\\\\"[0-7]*\\\\\"\",\"name\":\"constant.numeric.integer.octal.cobol\"},{\"match\":\"[oO]\\\\\".*\\\\\"\",\"name\":\"invalid.illegal.octal.cobol\"},{\"match\":\"(#)([0-9a-zA-Z][a-zA-Z\\\\\\\\-0-9]+)\",\"name\":\"meta.symbol.forced.cobol\"},{\"begin\":\"((?<![-_a-zA-Z0-9()-])(?i:installation|author|source-computer|object-computer|date-written|security|date-compiled)(\\\\\\\\.|$))\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.identifiers.cobol\"}},\"end\":\"(?=((?<![-_])(?i:remarks|author|date-written|source-computer|object-computer|installation|date-compiled|special-names|security|environment\\\\\\\\s+division|data\\\\\\\\s+division|working-storage\\\\\\\\s+section|input-output\\\\\\\\s+section|linkage\\\\\\\\s+section|procedure\\\\\\\\s+division|local-storage\\\\\\\\s+section)|^[ \\\\\\\\*][ \\\\\\\\*][ \\\\\\\\*][ \\\\\\\\*][ \\\\\\\\*][ \\\\\\\\*]\\\\\\\\*.*$|^\\\\\\\\+$))\",\"name\":\"comment.block.cobol.remark\",\"patterns\":[{\"match\":\"(^[0-9 ][0-9 ][0-9 ][0-9 ][0-9 ][0-9 ])\",\"name\":\"constant.numeric.cobol\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.start.bracket.cobol\"},\"2\":{\"name\":\"constant.numeric.cobol\"},\"3\":{\"name\":\"keyword.end.bracket.cobol\"}},\"comment\":\"simple numerics in () and []\",\"match\":\"(?<=(\\\\\\\\(|\\\\\\\\[))((\\\\\\\\-\\\\\\\\+)*\\\\\\\\s*[0-9 ,\\\\\\\\.\\\\\\\\+\\\\\\\\-\\\\\\\\*\\\\\\\\/]+)(?=(\\\\\\\\)|\\\\\\\\]))\",\"name\":\"constant.numeric.cobol\"},{\"include\":\"#number-complex-constant\"},{\"include\":\"#number-simple-constant\"},{\"match\":\"(?<![-_])(?i:true|false|null|nulls)(?![0-9A-Za-z_-])\",\"name\":\"constant.language.cobol\"},{\"match\":\"(?<![-_])(?i:zeroes|alphabetic-lower|alphabetic-upper|alphanumeric-edited|alphabetic|alphabet|alphanumeric|zeros|zeros|zero|spaces|space|quotes|quote|low-values|low-value|high-values|high-value)(?=\\\\\\\\s+|\\\\\\\\.|,|\\\\\\\\))\",\"name\":\"constant.language.figurative.cobol\"},{\"begin\":\"(?i:exec\\\\\\\\s+sqlims|exec\\\\\\\\s+sql)\",\"contentName\":\"meta.embedded.block.openesql\",\"end\":\"(?i:end\\\\\\\\-exec)\",\"name\":\"keyword.verb.cobol\",\"patterns\":[{\"match\":\"(^\\\\\\\\s*\\\\\\\\*.*)$\",\"name\":\"comment.line.sql\"},{\"match\":\"(--.*$)\",\"name\":\"comment.line.sql\"},{\"match\":\"(\\\\\\\\*>.*$)\",\"name\":\"comment.line.modern\"},{\"match\":\"(\\\\\\\\:([0-9a-zA-Z\\\\\\\\-_])*)\",\"name\":\"variable.cobol\"},{\"include\":\"source.openesql\"}]},{\"begin\":\"(?i:exec\\\\\\\\s+cics)\",\"contentName\":\"meta.embedded.block.cics\",\"end\":\"(?i:end\\\\\\\\-exec)\",\"name\":\"keyword.verb.cobol\",\"patterns\":[{\"match\":\"(\\\\\\\\()\",\"name\":\"meta.symbol.cobol\"},{\"include\":\"#cics-keywords\"},{\"include\":\"#string-double-quoted-constant\"},{\"include\":\"#string-quoted-constant\"},{\"include\":\"#number-complex-constant\"},{\"include\":\"#number-simple-constant\"},{\"match\":\"([a-zA-Z-0-9_]*[a-zA-Z0-9]|([#]?[0-9a-zA-Z]+[a-zA-Z-0-9_]*[a-zA-Z0-9]))\",\"name\":\"variable.cobol\"}]},{\"begin\":\"(?i:exec\\\\\\\\s+dli)\",\"contentName\":\"meta.embedded.block.dli\",\"end\":\"(?i:end\\\\\\\\-exec)\",\"name\":\"keyword.verb.cobol\",\"patterns\":[{\"match\":\"(\\\\\\\\()\",\"name\":\"meta.symbol.cobol\"},{\"include\":\"#dli-keywords\"},{\"include\":\"#dli-options\"},{\"include\":\"#string-double-quoted-constant\"},{\"include\":\"#string-quoted-constant\"},{\"include\":\"#number-complex-constant\"},{\"include\":\"#number-simple-constant\"},{\"match\":\"([a-zA-Z-0-9_]*[a-zA-Z0-9]|([#]?[0-9a-zA-Z]+[a-zA-Z-0-9_]*[a-zA-Z0-9]))\",\"name\":\"variable.cobol\"}]},{\"begin\":\"(?i:exec\\\\\\\\s+sqlims)\",\"contentName\":\"meta.embedded.block.openesql\",\"end\":\"(?i:end\\\\\\\\-exec)\",\"name\":\"keyword.verb.cobol\",\"patterns\":[{\"match\":\"(\\\\\\\\*>.*$)\",\"name\":\"comment.line.modern\"},{\"match\":\"(\\\\\\\\:([a-zA-Z\\\\\\\\-])*)\",\"name\":\"variable.cobol\"},{\"include\":\"source.openesql\"}]},{\"begin\":\"(?i:exec\\\\\\\\s+ado)\",\"contentName\":\"meta.embedded.block.openesql\",\"end\":\"(?i:end\\\\\\\\-exec)\",\"name\":\"keyword.verb.cobol\",\"patterns\":[{\"match\":\"(--.*$)\",\"name\":\"comment.line.sql\"},{\"match\":\"(\\\\\\\\*>.*$)\",\"name\":\"comment.line.modern\"},{\"match\":\"(\\\\\\\\:([a-zA-Z\\\\\\\\-])*)\",\"name\":\"variable.cobol\"},{\"include\":\"source.openesql\"}]},{\"begin\":\"(?i:exec\\\\\\\\s+html)\",\"contentName\":\"meta.embedded.block.html\",\"end\":\"(?i:end\\\\\\\\-exec)\",\"name\":\"keyword.verb.cobol\",\"patterns\":[{\"include\":\"text.html.basic\"}]},{\"begin\":\"(?i:exec\\\\\\\\s+java)\",\"contentName\":\"meta.embedded.block.java\",\"end\":\"(?i:end\\\\\\\\-exec)\",\"name\":\"keyword.verb.cobol\",\"patterns\":[{\"include\":\"source.java\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.cobol\"},\"2\":{\"name\":\"support.function.cobol\"},\"3\":{\"name\":\"punctuation.definition.string.end.cobol\"}},\"match\":\"(\\\\\")(CBL_.*)(\\\\\")\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.cobol\"},\"2\":{\"name\":\"support.function.cobol\"},\"3\":{\"name\":\"punctuation.definition.string.end.cobol\"}},\"match\":\"(\\\\\")(PC_.*)(\\\\\")\"},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cobol\"}},\"end\":\"(\\\\\"|$)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cobol\"}},\"name\":\"string.quoted.double.cobol\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.cobol\"},\"2\":{\"name\":\"support.function.cobol\"},\"3\":{\"name\":\"punctuation.definition.string.end.cobol\"}},\"match\":\"(\\\\\\\\')(CBL_.*)(\\\\\\\\')\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.cobol\"},\"2\":{\"name\":\"support.function.cobol\"},\"3\":{\"name\":\"punctuation.definition.string.end.cobol\"}},\"match\":\"(\\\\\\\\')(PC_.*)(\\\\\\\\')\"},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cobol\"}},\"end\":\"('|$)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cobol\"}},\"name\":\"string.quoted.single.cobol\"},{\"begin\":\"(?<![\\\\\\\\-\\\\\\\\w])[gGzZ]\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cobol\"}},\"end\":\"(\\\\\"|$)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cobol\"}},\"name\":\"string.quoted.double.cobol\"},{\"begin\":\"(?<![\\\\\\\\-\\\\\\\\w])[gGzZ]'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cobol\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cobol\"}},\"name\":\"string.quoted.single.cobol\"},{\"begin\":\"(?<![\\\\\\\\-\\\\\\\\w])[gGnN]\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cobol\"}},\"end\":\"(\\\\\"|$)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cobol\"}},\"name\":\"string.quoted.double.cobol\"},{\"begin\":\"(?<![\\\\\\\\-\\\\\\\\w])[gGnN]'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cobol\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cobol\"}},\"name\":\"string.quoted.single.cobol\"},{\"begin\":\"(?<![\\\\\\\\-\\\\\\\\w])[uU]\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cobol\"}},\"end\":\"(\\\\\"|$)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cobol\"}},\"name\":\"string.quoted.utf8.double.cobol\"},{\"begin\":\"(?<![\\\\\\\\-\\\\\\\\w])[uU]'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cobol\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cobol\"}},\"name\":\"string.quoted.utf8.single.cobol\"},{\"match\":\"(?<![-_])(?i:id\\\\\\\\s+division|identification\\\\\\\\s+division|identification|id|property-id|getter|setter|entry|function-id|end\\\\\\\\s+attribute|attribute|interface-id|indexer-id|factory|ctl|class-control|options|environment\\\\\\\\s+division|environment-name|environment-value|environment|configuration\\\\\\\\s+section|configuration|decimal-point\\\\\\\\s+is|decimal-point|console\\\\\\\\s+is|call-convention|special-names|cursor\\\\\\\\s+is|update|picture\\\\\\\\s+symbol|currency\\\\\\\\s+sign|currency|repository|input-output\\\\\\\\s+section|input-output|file\\\\\\\\s+section|file-control|select|optional|i-o-control|data\\\\\\\\s+division|working-storage\\\\\\\\s+section|working-storage|section|local-storage|linkage\\\\\\\\s+section|linkage|communication|report|screen\\\\\\\\s+section|object-storage|object\\\\\\\\s+section|class-object|fd|rd|cd|sd|printing|procedure\\\\\\\\s+division|procedure|division|references|debugging|end\\\\\\\\s+declaratives|declaratives|end\\\\\\\\s+static|end\\\\\\\\s+factory|end\\\\\\\\s+class-object|based-storage|size|font|national-edited|national)(?![0-9A-Za-z_-])\",\"name\":\"keyword.identifiers.cobol\"},{\"captures\":{\"1\":{\"name\":\"keyword.verb.cobol\"},\"2\":{\"name\":\"entity.name.function.cobol\"}},\"match\":\"(?<![-_])((?i:valuetype-id|operator-id|method-id|method|property-id|attribute-id|enum-id|iterator-id|class-id|program-id|operator-id|end\\\\\\\\s+program|end\\\\\\\\s+valuetype|extension))[\\\\\\\\.]*[\\\\\\\\s]+([a-zA-Z0-9_-]*)\"},{\"match\":\"(?<![-_])(?i:implements|inherits|constraints|constrain)(?=\\\\\\\\s|\\\\\\\\.)\",\"name\":\"keyword.verb.cobol\"},{\"match\":\"(?<![-_])(?i:end\\\\\\\\s+enum|end\\\\\\\\s+interface|end\\\\\\\\s+class|end\\\\\\\\s+property|end\\\\\\\\s+method|end\\\\\\\\s+object|end\\\\\\\\s+iterator|end\\\\\\\\s+function|end\\\\\\\\s+operator|end\\\\\\\\s+program|end\\\\\\\\s+indexer|create|reset|instance|delegate|end-delegate|delegate-id|declare|exception-object|as|stop\\\\\\\\s+iterator|stop\\\\\\\\s+run|stop)(?=\\\\\\\\s|\\\\\\\\.|,|\\\\\\\\))\",\"name\":\"keyword.identifiers.cobol\"},{\"match\":\"\\\\\\\\s+(?i:attach\\\\\\\\s+method|attach\\\\\\\\s+del|attach|detach\\\\\\\\s+del|detach\\\\\\\\s+method|detach|method|del)(?=\\\\\\\\s|\\\\\\\\.|$)\",\"name\":\"keyword.identifiers.cobol\"},{\"match\":\"\\\\\\\\s+(?i:sync\\\\\\\\s+(?i:on))(?=\\\\\\\\s|\\\\\\\\.)\",\"name\":\"keyword.other.sync.cobol\"},{\"match\":\"\\\\\\\\s+(?i:try|finally|catch|end-try|throw)(?=\\\\\\\\s|\\\\\\\\.|$)\",\"name\":\"keyword.control.catch-exception.cobol\"},{\"match\":\"(?<![-_])(?i:select|use|thru|varying|giving|remainder|tallying|through|until|execute|returning|using|chaining|yielding|\\\\\\\\+\\\\\\\\+include|copy|replace)(?=\\\\\\\\s)\",\"name\":\"keyword.otherverb.cobol\"},{\"match\":\"(?i:dynamic)\\\\\\\\s+(?i:length)(?=\\\\\\\\s|\\\\\\\\.)\",\"name\":\"storage.type.dynamiclength.cobol\"},{\"match\":\"(?<![-_])(?i:assign|external|prototype|organization|organisation|indexed|column|plus|line\\\\\\\\*s*sequential|sequential|access|dynamic|relative|label|block|contains|standard|records|record\\\\\\\\s+key|record|is|alternate|duplicates|reel|tape|terminal|disk\\\\\\\\sfilename|disk|disc|recording\\\\\\\\smode|mode|random)(?=\\\\\\\\s|\\\\\\\\.)\",\"name\":\"keyword.identifers.cobol\"},{\"match\":\"(?<![-_])(?i:max|min|integer-of-date|integer-of-day|integer-part|integer|date-to-yyyymmdd|year-to-yyyy|day-to-yyyyddd|exp|exception-file|exception-location|exception-statement|exception-status|e|variance|integer-of-date|rem|pi|factorial|sqrt|log10|fraction-part|mean|exp|log|char|day-of-integer|date-of-integer|exp10|atan|integer-part|tan|sin|cos|midrange|addr|acos|asin|annuity|present-value|integer-of-day|ord-max|ord-min|ord|random|integer-of-date|sum|standard-deviation|median|reverse|abs|upper-case|lower-case|char-national|numval|mod|range|length|locale-date|locale-time-from-seconds|locale-time|seconds-past-midnight|stored-char-length|seconds-from-formatted-time|seconds-past-midnight|trim|length-an|numval-c|current-date|national-of|display-of|when-compiled|integer-of-boolean|combined-datetime|concatenate)(?=\\\\\\\\s|\\\\\\\\.|\\\\\\\\(|\\\\\\\\))\",\"name\":\"support.function.cobol\"},{\"captures\":{\"0\":{\"name\":\"support.function.cics.cobol\"},\"1\":{\"name\":\"punctuation.definition.string.end.cobol\"},\"2\":{\"name\":\"keyword.identifers.cobol\"},\"3\":{\"name\":\"punctuation.definition.string.end.cobol\"}},\"match\":\"(?<![-_])(?i:DFHRESP|DFHVALUE)(\\\\\\\\s*\\\\\\\\(\\\\\\\\s*)([a-zA-Z]*)(\\\\\\\\s*\\\\\\\\))\"},{\"match\":\"(?<![-_])(?i:function)(?=\\\\\\\\s|\\\\\\\\.)\",\"name\":\"keyword.verb.cobol\"},{\"match\":\"(?<![-_])(?i:end-accept|end-add|end-sync|end-compute|end-delete|end-display|end-divide|end-set|end-multiply|end-of-page|end-read|end-receive|end-return|end-rewrite|end-search|end-start|end-string|end-subtract|end-unstring|end-write|program|class|interface|enum|interface)(?![0-9A-Za-z_-])\",\"name\":\"keyword.verb.cobol\"},{\"match\":\"(?<![-_])(?:by value|by reference|by content|property-value)(?![0-9A-Za-z_-])\",\"name\":\"keyword.other.cobol\"},{\"match\":\"(?<![-_])(?i:attr-string|automatic|auto-skip|footing|next|group|indicate|source|control|full|required|of|input|output|i-o|extend|file|error|exception|overflow|goto|off|on|proceed|procedures|procedure|through|invalid|data|normal|eop|returning|to|for|giving|into|by|params|remainder|also|numeric|free|depending|converting|replacing|after|before|all|leading|first|recursive|initialized|global|common|initial|resident|reference|content|are\\\\\\\\sstandard|are|renames|like|format\\\\\\\\stime|values|omitted|value|constant|ascending|descending|key|retry|until|varying|with|no|advancing|up|down|uccurs|ignore\\\\\\\\s+lock|lock|length|delimited|count|delimiter|redefines|from\\\\\\\\s+console|from\\\\\\\\s+command-line|from\\\\\\\\s+user\\\\\\\\s+name|from\\\\\\\\s+day\\\\\\\\s+yyyyddd|from\\\\\\\\s+day|from\\\\\\\\s+time|from\\\\\\\\s+day-of-week|from\\\\\\\\s+escape|from\\\\\\\\s+day\\\\\\\\s+yyyyddd|from\\\\\\\\s+date\\\\\\\\s+yyyymmdd|from\\\\\\\\s+date|from|raising|crt\\\\\\\\s+status|status|class|upon\\\\\\\\s+crt|upon|lines|columns|step|linage|auto|line|position|col|reports|code-set|reporting|arithmetic|localize|program|class|interface|in|at\\\\\\\\s+end|page|name)(?![0-9A-Za-z_-])\",\"name\":\"keyword.identifers.cobol\"},{\"captures\":{\"0\":{\"name\":\"keyword.verb.cobol\"},\"1\":{\"name\":\"storage.type.cobol\"}},\"comment\":\"type ssss \",\"match\":\"(?<![-_])(?i:type|new)\\\\\\\\s+([a-zA-Z][a-zA-Z0-9\\\\\\\\$\\\\\\\\-\\\\\\\\._]*|[a-zA-Z])(?=\\\\\\\\.$)\"},{\"match\":\"(?<![-_])(?i:string)(?=\\\\\\\\s+value|\\\\\\\\.)\",\"name\":\"storage.type.cobol\"},{\"match\":\"(?<![-_])(?i:bit|byte|binary-char|binary-char-unsigned|binary-short|binary-short-unsigned|binary.long|binary-c-long|binary-long-unsigned|binary-long|binary-double|binary-double-unsigned|float-short|float-extended|float-long|bit|condition-value|characters|character\\\\\\\\s+type|character|comma|crt|decimal|object\\\\\\\\+sreference|object-reference|object|list|dictionary|unsigned)(?=\\\\\\\\s|\\\\\\\\.|,|\\\\\\\\]|\\\\\\\\[)\",\"name\":\"storage.type.cobol\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.verb.cobol\"},\"2\":{\"name\":\"meta.symbol.cobol\"}},\"comment\":\"operator-id ssss \",\"match\":\"(operator-id\\\\\\\\s+[+\\\\\\\\-\\\\\\\\*\\\\\\\\/])\",\"name\":\"keyword.operator-id.cobol\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.cobol.b3\"},\"2\":{\"name\":\"entity.name.function.b3\"}},\"comment\":\" ::.. \",\"match\":\"(?i:self)(\\\\\\\\:\\\\\\\\:)([0-9a-zA-Z_\\\\\\\\-\\\\\\\\.]*)(?=\\\\\\\\.$)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.cobol\"},\"2\":{\"name\":\"entity.name.function.cobol\"}},\"comment\":\" ::.. \",\"match\":\"(\\\\\\\\:\\\\\\\\:)([0-9a-zA-Z_\\\\\\\\-\\\\\\\\.]*)\"},{\"captures\":{\"0\":{\"name\":\"keyword.verb.cobol.aa\"},\"1\":{\"name\":\"storage.type.cobol.bb\"}},\"match\":\"(?<![-_])(?i:type)\\\\\\\\s+([0-9a-zA-Z\\\\\\\\.]*)\"},{\"match\":\"(?<![-_])(?i:if|else|end-if|exit\\\\\\\\s+iterator|exit\\\\\\\\s+program|exit\\\\\\\\s+method|evaluate|end-evaluate|exit\\\\\\\\s+perform|perform|end-perform|when\\\\\\\\s+other|when|continue|call|end-call|chain|end-chain|invoke|end\\\\\\\\s+invoke|go\\\\\\\\s+to|go|sort|merge|use|xml|parse|stop\\\\\\\\s+run|goback\\\\\\\\s+returning|goback|raise|exit\\\\\\\\s+function|exit\\\\\\\\sparagraph|await)(?![0-9A-Za-z_-])\",\"name\":\"keyword.control.cobol\"},{\"captures\":{\"1\":{\"name\":\"storage.type.picture10.cobol\"},\"2\":{\"name\":\"constant.numeric.cobol\"},\"3\":{\"name\":\"storage.type.picture10.cobol\"},\"4\":{\"name\":\"constant.numeric.cobol\"}},\"match\":\"(?<![-_])((?i:picture\\\\\\\\s+is|picture|pic\\\\\\\\s+is|pic)\\\\\\\\s+[-+sS\\\\\\\\*$09aAbBxXuUpPnNzZ/,.]*)\\\\\\\\(([0-9]*)\\\\\\\\)([vV][-+sS\\\\\\\\*$09aAbBxXuUpPnNzZ/,\\\\\\\\.]*)\\\\\\\\(([0-9]*)\\\\\\\\)[-|+]\"},{\"captures\":{\"1\":{\"name\":\"storage.type.picture9.cobol\"},\"2\":{\"name\":\"constant.numeric.cobol\"},\"3\":{\"name\":\"storage.type.picture9.cobol\"},\"4\":{\"name\":\"constant.numeric.cobol\"}},\"match\":\"(?<![-_])((?i:picture\\\\\\\\s+is|picture|pic\\\\\\\\s+is|pic)\\\\\\\\s+[-+sS\\\\\\\\*$09aAbBxXuUpPnNzZ/,.]*)\\\\\\\\(([0-9]*)\\\\\\\\)([vV][-+sS\\\\\\\\*$09aAbBxXuUpPnNzZ/,\\\\\\\\.]*)\\\\\\\\(([0-9]*)\\\\\\\\)\"},{\"captures\":{\"1\":{\"name\":\"storage.type.picture8.cobol\"},\"2\":{\"name\":\"constant.numeric.cobol\"},\"3\":{\"name\":\"storage.type.picture8.cobol\"}},\"match\":\"(?<![-_])((?i:picture\\\\\\\\s+is|picture|pic\\\\\\\\s+is|pic)\\\\\\\\s+[-+sS\\\\\\\\*$09aAbBxXuUpPnNzZ/,.]*)\\\\\\\\(([0-9]*)\\\\\\\\)([vV\\\\\\\\.][-+s\\\\\\\\*$09aAbBsSnNxXuUzZ/,]*[0-9\\\\\\\\.()])*\"},{\"match\":\"(?<![-_])(?i:picture\\\\\\\\s+is|picture|pic\\\\\\\\s+is|pic)\\\\\\\\s+[-+sS\\\\\\\\*$09aAbBsSnpPNxXuUzZ/,.]*\\\\\\\\([0-9]*\\\\\\\\)[Vv\\\\\\\\.][-+s\\\\\\\\*0$9aAbBsSnNxpPxXuUzZ/,]*\",\"name\":\"storage.type.picture7.cobol\"},{\"match\":\"(?<![-_])(?i:picture\\\\\\\\s+is|picture|pic\\\\\\\\s+is|pic)\\\\\\\\s+[-+sS\\\\\\\\*$09aAbBsSnpPNxXuUzZ/,.]*\\\\\\\\([0-9]*\\\\\\\\)[-+s\\\\\\\\*0$9aAbBsSnNxpPxXuUzZ/,]*[Vv\\\\\\\\.][-+s\\\\\\\\*0$9aAbBsSnNxpPxXuUzZ/,]*\",\"name\":\"storage.type.picture6.cobol\"},{\"captures\":{\"1\":{\"name\":\"storage.type.picture5.cobol\"},\"2\":{\"name\":\"constant.numeric.cobol\"}},\"match\":\"(?<![-_])((?i:picture\\\\\\\\s+is|picture|pic\\\\\\\\s+is|pic)\\\\\\\\s+[-+sS\\\\\\\\*$09aAbBsSnpPNxuUXzZ/,.]*)\\\\\\\\(([0-9]*)\\\\\\\\)[-+s\\\\\\\\*0$9aAbBsSnNxpPxXuUzZ/,]*\"},{\"match\":\"(?<![-_])(?i:picture\\\\\\\\s+is|picture|pic\\\\\\\\s+is|pic)\\\\\\\\s+[-+sS\\\\\\\\*$09aAbBsSnpNNxXuUzZ/,.]*\\\\\\\\([0-9]*\\\\\\\\)\",\"name\":\"storage.type.picture4.cobol\"},{\"match\":\"(?<![-_])(?i:picture\\\\\\\\s+is|picture|pic\\\\\\\\s+is|pic)\\\\\\\\s+[sS]?[9aAbBsSnNxXuUzZ]*[Vv][9aAxbXuUzZ]*\\\\\\\\([0-9]*\\\\\\\\)\",\"name\":\"storage.type.picture3.cobol\"},{\"match\":\"(?<![-_])(?i:picture\\\\\\\\s+is|picture|pic\\\\\\\\s+is|pic)\\\\\\\\s+[sS]?[9aAbBsSnNxXuUzZ]*[Vv][9aAxbXuUzZ]*\",\"name\":\"storage.type.picture2.cobol\"},{\"match\":\"(?<![-_])(?i:picture\\\\\\\\s+is|picture|pic\\\\\\\\s+is|pic)\\\\\\\\s+[-+\\\\\\\\*$9aAbBsSnpPNxXuUzZ/,.vV]*\",\"name\":\"storage.type.picture1.cobol\"},{\"captures\":{\"1\":{\"name\":\"invalid.illegal.keyword.verb.acu.cobol\"},\"2\":{\"name\":\"invalid.illegal.constant.numeric.integer\"}},\"match\":\"((?<![-_])(?i:binary|computational-4|comp-4|computational-5|comp-5))\\\\\\\\(([0-9]*)\\\\\\\\)\"},{\"match\":\"(?i:cblt-x1-compx-const|cblt-x2-compx-const|cblt-x4-compx-const|cblt-alphanum-const|cblt-x9-compx|cblt-x8-compx|cblt-x8-comp5|cblt-x4-compx|cblt-x4-comp5|cblt-x2-compx|cblt-x2-comp5|cblt-x1-compx|cblt-x1-comp5|cblt-x1|cblt-vfile-status|cblt-vfile-handle|cblt-sx8-comp5|cblt-sx4-comp5|cblt-sx2-comp5|cblt-sx1-comp5|cblt-subsys-params|cblt-splitjoin-buf|cblt-screen-position|cblt-rtncode|cblt-request-context|cblt-reqhand-service-info|cblt-reqhand-service-funcs|cblt-reqhand-response|cblt-reqhand-funcs|cblt-prog-info-params|cblt-prog-info-arg-info|cblt-printer-properties|cblt-printer-name|cblt-printer-info|cblt-printer-default|cblt-ppointer|cblt-pointer|cblt-os-ssize|cblt-os-size|cblt-os-offset|cblt-os-info-params|cblt-os-flags|cblt-node-name|cblt-nls-msg-params|cblt-nls-msg-number-pair|cblt-nls-msg-ins-struct|cblt-nls-msg-buffer|cblt-mouse-shape|cblt-mouse-rect|cblt-mouse-pos|cblt-mouse-event|cblt-mem-validate-param|cblt-idp-exit-service-funcs|cblt-idp-exit-info|cblt-HWND|cblt-HINSTANCE|cblt-get-scr-line-draw-buffer|cblt-get-scr-graphics-buffer|cblt-generic-attr-value|cblt-generic-attr-rgb-values|cblt-generic-attr-information|cblt-file-status|cblt-fileexist-buf|cblt-exit-params|cblt-exit-info-params|cblt-cancel-proc-params|cblt-bytestream-handle|cblt-alphanum)\",\"name\":\"support.function.cbltypes.cobol\"},{\"match\":\"(?<![-_])(?i:computational-1|comp-1|computational-2|comp-2|computational-3|comp-3|computational-4|comp-4|computational-x|comp-x|computational-5|comp-5|computational-6|comp-6|computational-n|comp-n|packed-decimal|index|float|double|signed-short|unsigned-short|signed-int|unsigned-int|signed-long|unsigned-long|comp|computational|group-usage|usage\\\\\\\\sis\\\\\\\\sdisplay|usage\\\\\\\\sis\\\\\\\\sfont|usage\\\\\\\\s+display|binary|mutex-pointer|data-pointer|thread-pointer|sempahore-pointer|event-pointer|program-pointer|procedure-pointer|pointer|window|subwindow|control-type|thread|menu|variant|layout-manager|occurs|typedef|any|times|display\\\\\\\\s+blank\\\\\\\\s+when|blank\\\\\\\\s+when|blank\\\\\\\\s+screen|blank|usage\\\\\\\\sis|is\\\\\\\\spartial|usage|justified|just|right|signed|trailing\\\\\\\\s+separate|sign|seperate|sql)(?=\\\\\\\\s|\\\\\\\\.|\\\\\\\\))\",\"name\":\"storage.type.picture.cobol\"},{\"match\":\"(?i:byte-length)\\\\\\\\s+[0-9]+\",\"name\":\"storage.type.length.cobol\"},{\"match\":\"(?<![-_])(?i:accept|add|address|allocate|cancel|close|commit|compute|continue|delete|disable|display|bell|divide|eject|enable|enter|evaluate|exhibit|named|exit|free|generate|go\\\\\\\\s+to|initialize\\\\\\\\sonly|initialize|initiate|inspect|merge|end-set|set|end-invoke|invoke\\\\\\\\s+run|invoke|move|corresponding|corr|multiply|otherwise|open|sharing|sort-merge|purge|ready|read|kept|receive|release|return|rewrite|rounded|rollback|search|send|sort|collating\\\\\\\\s+sequence|collating|start|service|subtract|suppress|terminate|then|unlock|string|unstring|validate|write|next|statement|sentence)(?![0-9A-Za-z_-])\",\"name\":\"keyword.verb.cobol\"},{\"match\":\"(?<![-_])(?i:thread-local)(?![0-9A-Za-z_-])\",\"name\":\"keyword.verb.cobol\"},{\"match\":\"(\\\\\\\\s+|^)(?i:foreground-color|background-color|prompt|underline|reverse-video|no-echo|highlight|blink)(?![0-9A-Za-z_-])\",\"name\":\"keyword.screens.cobol\"},{\"match\":\"(\\\\\\\\s+|^)(?i:bold|high|lowlight|low|background-high|background-low|background-standard)(?![0-9A-Za-z_-])\",\"name\":\"invalid.illegal.screens.acu.cobol\"},{\"match\":\"(?<![-_])(?i:internal|public|protected|final|private|static|new|abstract|override|readonly|property|async-void|async-value|async)(?=\\\\\\\\s|\\\\\\\\.)\",\"name\":\"storage.modifier.cobol\"},{\"match\":\"=|<|>|<=|>=|<>|\\\\\\\\+|\\\\\\\\-|\\\\\\\\*|\\\\\\\\/|(?<![-_])(?i:b-and|b-or|b-xor|b-exor|b-not|b-left|b-right|and|or|equals|equal|greater\\\\\\\\s+than|less\\\\\\\\s+than|greater)(?![0-9A-Za-z_-])\",\"name\":\"keyword.operator.cobol\"},{\"match\":\"(?i:not\\\\\\\\s+at\\\\\\\\s+end)(?![0-9A-Za-z_-])\",\"name\":\"keyword.verb.cobol\"},{\"match\":\"(?<![-_])(?i:not)(?![0-9A-Za-z_-])\",\"name\":\"keyword.operator.cobol\"},{\"match\":\"(?<![-_])(?i:sysout-flush|sysin|stderr|stdout|csp|stdin|sysipt|sysout|sysprint|syslist|syslst|printer|syserr|console|c01|c02|c03|c04|c05|c06|c07|c08|c09|c10|c11|c12|formfeed|switch-0|switch-10|switch-11|switch-12|switch-13|switch-13|switch-14|switch-15|switch-1|switch-2|switch-3|switch-4|switch-5|switch-6|switch-7|switch-8|switch-9|sw0|sw11|sw12|sw13|sw14|sw15|sw1|sw2|sw3|sw4|sw5|sw6|sw7|sw8|sw9|sw10|lc_all|lc_collate|lc_ctype|lc_messages|lc_monetary|lc_numeric|lc_time|ucs-4|utf-8|utf-16)(?![0-9A-Za-z_-])\",\"name\":\"support.type.cobol\"},{\"match\":\"(?<![-_])(?i:end-xml|processing.*procedure|xml\\\\\\\\sparse|xml|xml-information|xml-text|xml-schemal|xml-declaration)(?![0-9A-Za-z_-])\",\"name\":\"keyword.xml.cobol\"},{\"match\":\"(?<![-_])(?i:json\\\\\\\\s+generate|json|end-json|name\\\\\\\\sof)(?![0-9A-Za-z_-])\",\"name\":\"keyword.json.cobol\"},{\"match\":\"(?<![-_])(?i:modify|inquire|tab|title|event|center|label-offset|cell|help-id|cells|push-button|radio-button|page-layout-screen|entry-field|list-box|label|default-font|id|no-tab|unsorted|color|height|width|bind|thread|erase|modeless|scroll|system|menu|title-bar|wrap|destroy|resizeable|user-gray|large-font|newline|3-d|data-columns|display-columns|alignment|separation|cursor-frame-width|divider-color|drag-color|heading-color|heading-divider-color|num-rows|record-data|tiled-headings|vpadding|centered-headings|column-headings|self-act|cancel-button|vscroll|report-composer|clsid|primary-interface|active-x-control|default-interface|default-source|auto-minimize|auto-resize|resource|engraved|initial-state|frame|acuactivexcontrol|activex-res|grid|box|message|namespace|class-name|module|constructor|version|strong|culture|method|handle|exception-value|read-only|dividers|graphical|indexed|termination-value|permanent|boxed|visible|centered|record-position|convert)(?=\\\\\\\\s|\\\\\\\\.|,|;|$)\",\"name\":\"invalid.illegal.acu.cobol\"},{\"match\":\"(?<![-_])(?i:actual|auto|automatic|based-storage|complex|connect|contained|core-index|db-access-control-key|db-data-name|db-exception|db-record-name|db-set-name|db-status|dead-lock|endcobol|end-disable|end-enable|end-send|end-transceive|eos|file-limits|file-limit|formatted|sort-status|usage-mode)(?=\\\\\\\\s|\\\\\\\\.|,|;|$)\",\"name\":\"invalid.illegal.netcobol.cobol\"},{\"match\":\"(?<![-_])(?i:System-Info|Terminal-Info)(?![0-9A-Za-z_-])\",\"name\":\"support.type.cobol.acu strong\"},{\"match\":\"(?<![-_])(?i:alter)(?=\\\\\\\\s|\\\\\\\\.)\",\"name\":\"invalid.illegal.cobol\"},{\"match\":\"(?<![-_])(?i:apply|areas|area|clock-units|code|com-reg|controls|dbcs|destination|detail|display-1|ending|every|insert|kanjikey|last|left|less|limits|limit|memory|metaclass|modules|more-labels|multiple|native_binary|native|negative|number|numeric-edited|other|padding|password|pf|ph|postive|processing|queue|recording|reload|removal|rerun|reserve|reserved|rewind|segment-limit|segment|separate|sequence|skip1|skip2|skip3|standard-1|standard-2|sub-queue-1|sub-queue-2|sub-queue-3|sum|symbolic|synchronized|sync|table|test|text|than|top|trace|trailing|unit|words|write-only|at|basis|beginning|bottom|cbl|cf|ch|de|positive|egcs|egi|emi|end|reversed|rf|rh|run|same|order|heading|esi)(?![0-9A-Za-z_-])\",\"name\":\"keyword.ibmreserved.cobol\"},{\"match\":\"(?<![-_])(?i:active-class|aligned|anycase|boolean|cols|col|condition|ec|eo|system-default|function-pointer)(?![0-9A-Za-z_-])\",\"name\":\"strong keyword.potential.reserved.cobol\"},{\"match\":\"(?i:filler)\",\"name\":\"keyword.filler.cobol\"},{\"match\":\"(?<![-_])(?i:address-of|date|day-of-week|day|debug-content|debug-item|debug-line|debug-item|debug-sub-1|debug-sub-2|debug-sub-3|shift-in|shift-out|sort-control|sort-core-size|sort-file-size|sort-message|sort-return|sort-mode-size|sort-return|tally|time|when-compiled|line-counter|page-counter|return-code|linage-counter|debug-line|debug-name|debug-contents|json-code|json-status|xml-code|xml-event|xml-information|xml-namespace-prefix|xml-namespace|xml-nnamespace-repfix|xml-nnamespace|xml-ntext|jnienvptr|igy-javaiop-call-exception)(?![0-9A-Za-z_-])\",\"name\":\"variable.language\"},{\"match\":\"(?<![-_])(?i:shortint1|shortint2|shortint3|shortint4|shortint5|shortint6|shortint7|longint1|longint2|longint3|longint4|longint5|longint6|bigint1|bigint2|blob-locator|clob-locator|dbclob-locator|dbclob-file|blob-file|clob-file|clob|dbclob|blob|varbinary|long-varbinary|time-record|timestamp-record|timestamp-offset-record|timestamp-offset|timestamp|rowid|xml|long-varchar)(?=\\\\\\\\s|\\\\\\\\.|\\\\\\\\)|\\\\\\\\()\",\"name\":\"storage.type.sql.picture.cobol\"},{\"match\":\"(?<![-_])(?i:self)\",\"name\":\"keyword.other.self.cobol\"},{\"match\":\"(?<![-_])(?i:super)\",\"name\":\"keyword.other.super.cobol\"},{\"match\":\"(^[0-9][0-9][0-9][0-9][0-9][0-9])\",\"name\":\"constant.numeric.cobol\"},{\"captures\":{\"1\":{\"name\":\"meta.symbol.cobol\"},\"2\":{\"name\":\"constant.numeric.integer\"},\"3\":{\"name\":\"meta.symbol.cobol\"},\"4\":{\"name\":\"constant.numeric.integer\"},\"5\":{\"name\":\"meta.symbol.cobol\"}},\"match\":\"(\\\\\\\\()([0-9]*)(:)([0-9]*)(\\\\\\\\))\"},{\"match\":\"([a-zA-Z-0-9-_]*[a-zA-Z0-9]|([#]?[0-9a-zA-Z]+[a-zA-Z-0-9_-]*[a-zA-Z0-9]))\",\"name\":\"meta.symbol.cobol\"}],\"repository\":{\"cics-keywords\":{\"match\":\"(?<![\\\\\\\\-\\\\\\\\w])(?i:abcode|abdump|abend|abort|abprogram|abstime|accum|acee|acqactivity|acqprocess|acquactivity|action|activity|activityid|actpartn|add|address|after|aid|alarm|all|allocate|alter|alternate|altscrnht|altscrnwd|and|anykey|aplkybd|apltext|applid|as|asa|asis|asktime|asraintrpt|asrakey|asrapsw|asraregs|asraspc|asrastg|assign|asynchronous|at|attach|attachid|attributes|authenticate|autopage|auxiliary|base64|basicauth|below|bif|binary|bit|bodycharset|bookmark|brdata|brdatalength|brexit|bridge|browsetoken|btrans|buffer|build|burgeability|caddrlength|cancel|card|cbuff|ccsid|certificate|change|changetime|channel|char|characterset|check|chunkend|chunking|chunkno|chunkyes|cicsdatakey|ciphers|class|clear|cliconvert|client|clientaddr|clientaddrnu|clientconv|clientname|clntaddr6nu|clntipfamily|close|closestatus|clrpartn|cmdsec|cnamelength|cnotcompl|codepage|color|commarea|commonname|commonnamlen|comparemax|comparemin|complete|composite|compstatus|condition|confirm|confirmation|connect|consistent|console|container|contexttype|control|convdata|converse|convertst|converttime|convid|copy|counter|country|countrylen|create|critical|ctlchar|current|cursor|cwa|cwaleng|data|data1|data2|datalength|datalenth|dataonly|datapointer|dataset|datastr|datatoxml|datatype|datcontainer|date|dateform|datesep|datestring|day|daycount|dayofmonth|dayofweek|dayofyear|days|daysleft|day-of-week|dcounter|ddmmyy|ddmmyyyy|debkey|debrec|debug-contents|debug-item|debug-line|debug-name|debug-sub-1|debug-sub-2|debug-sub-3|deedit|default|define|defresp|defscrnht|defscrnwd|delay|delete|deleteq|delimiter|deq|destcount|destid|destidleng|detail|detaillength|dfhresp|dfhvalue|digest|digesttype|disconnect|docdelete|docsize|docstatus|doctoken|document|ds3270|dsscs|dump|dumpcode|dumpid|duprec|ecaddr|ecblist|eib|elemname|elemnamelen|elemns|elemnslen|end|endactivity|endbr|endbrowse|endfile|endoutput|enq|enter|entry|entryname|eoc|eods|eprfield|eprfrom|eprinto|eprlength|eprset|eprtype|equal|erase|eraseaup|error|errterm|esmreason|esmresp|event|eventtype|eventual|ewasupp|exception|expect|expirytime|extds|external|extract|facility|facilitytokn|false|faultactlen|faultactor|faultcode|faultcodelen|faultcodestr|faultstring|faultstrlen|fci|fct|field|file|firestatus|flength|fmh|fmhparm|for|force|formattime|formfeed|formfield|free|freekb|freemain|from|fromactivity|fromccsid|fromchannel|fromcodepage|fromdoc|fromflength|fromlength|fromprocess|frset|fulldate|function|gchars|gcodes|gds|generic|get|getmain|getnext|gmmi|groupid|gtec|gteq|handle|head|header|hex|high-value|high-values|hilight|hold|honeom|host|hostcodepage|hostlength|hosttype|hours|httpheader|httpmethod|httprnum|httpversion|httpvnum|ignore|immediate|in|increment|initimg|initparm|initparmlen|inpartn|input|inputevent|inputmsg|inputmsglen|inquire|insert|integer|interval|into|intoccsid|intocodepage|invalidcount|invite|invmpsz|invoke|invokingprog|invpartn|invreq|issue|issuer|item|iutype|journalname|jtypeid|jusfirst|juslast|justify|katakana|keep|keylength|keynumber|l40|l64|l80|label|langinuse|languagecode|last|lastusetime|ldc|ldcmnem|ldcnum|leavekb|length|lengthlist|level|lightpen|linage-counter|line|lineaddr|line-counter|link|list|listlength|llid|load|locality|localitylen|logmessage|logmode|logonlogmode|logonmsg|low-value|low-values|luname|main|map|mapcolumn|mapfail|mapheight|mapline|maponly|mapped|mappingdev|mapset|mapwidth|massinsert|maxdatalen|maxflength|maximum|maxlength|maxlifetime|maxproclen|mcc|mediatype|message|messageid|metadata|metadatalen|method|methodlength|milliseconds|minimum|minutes|mmddyy|mmddyyyy|mode|modename|monitor|month|monthofyear|move|msr|msrcontrol|name|namelength|natlang|natlanginuse|netname|newpassword|newphrase|newphraselen|next|nexttransid|nleom|noautopage|nocc|nocheck|nocliconvert|noclose|nodata|node|nodocdelete|nodump|noedit|noflush|nohandle|noinconvert|none|nooutconert|noqueue|noquiesce|nosrvconvert|nosuspend|note|notpurgeable|notruncate|nowait|nscontainer|null|nulls|numciphers|numevents|numitems|numrec|numroutes|numsegments|numtab|of|oidcard|on|opclass|open|operation|operator|operid|operkeys|operpurge|opid|opsecurity|options|or|orgabcode|organization|organizatlen|orgunit|orgunitlen|outdescr|outline|outpartn|output|owner|pa1|pa2|pa3|page|pagenum|page-counter|paging|parse|partn|partner|partnfail|partnpage|partns|partnset|pass|passbk|password|passwordlen|path|pathlength|pct|pf1|pf10|pf11|pf12|pf13|pf14|pf15|pf16|pf17|pf18|pf19|pf2|pf20|pf21|pf22|pf23|pf24|pf3|pf4|pf5|pf6|pf7|pf8|pf9|pfxleng|phrase|phraselen|piplength|piplist|point|pool|pop|portnumber|portnumnu|post|ppt|predicate|prefix|prepare|princonvid|prinsysid|print|priority|privacy|process|processtype|proclength|procname|profile|program|protect|ps|punch|purge|purgeable|push|put|qname|query|queryparm|querystring|querystrlen|queue|quote|quotes|random|rba|rbn|rdatt|read|readnext|readprev|readq|reattach|receive|receiver|recfm|record|recordlen|recordlength|reduce|refparms|refparmslen|relatesindex|relatestype|relatesuri|release|remove|repeatable|repetable|replace|reply|replylength|reqid|requesttype|resclass|reset|resetbr|resid|residlength|resource|resp|resp2|ressec|restart|restype|result|resume|retain|retcode|retcord|retriece|retrieve|return|returnprog|return-code|rewind|rewrite|ridfld|role|rolelength|rollback|route|routecodes|rprocess|rresource|rrn|rtermid|rtransid|run|saddrlength|scheme|schemename|scope|scopelen|scrnht|scrnwd|seconds|security|segmentlist|send|sender|serialnum|serialnumlen|server|serveraddr|serveraddrnu|serverconv|servername|service|session|sesstoken|set|shared|shift-in|shift-out|sigdata|signal|signoff|signon|sit|snamelength|soapfault|sort-control|sort-core-size|sort-file-size|sort-message|sort-mode-size|sort-return|sosi|space|spaces|spoolclose|spoolopen|spoolread|spoolwrite|srvconvert|srvraddr6nu|srvripfamily|ssltype|start|startbr|startbrowse|startcode|state|statelen|stationid|status|statuscode|statuslen|statustext|storage|strfield|stringformat|subaddr|subcodelen|subcodestr|subevent|subevent1|subevent2|subevent3|subevent4|subevent5|subevent6|subevent7|subevent8|sum|suspend|suspstatus|symbol|symbollist|synchronous|synclevel|synconreturn|syncpoint|sysid|tables|tally|task|taskpriority|tcpip|tcpipservice|tct|tctua|tctualeng|td|tellerid|template|termcode|termid|terminal|termpriority|test|text|textkybd|textlength|textprint|time|timeout|timer|timesep|title|to|toactivity|tochannel|tocontainer|toflength|token|tolength|toprocess|trace|tracenum|trailer|tranpriority|transaction|transform|transid|trigger|trt|true|ts|twa|twaleng|type|typename|typenamelen|typens|typenslen|unattend|uncommitted|unescaped|unexpin|unlock|until|uow|update|uri|urimap|url|urllength|userdatakey|userid|username|usernamelen|userpriority|using|validation|value|valuelength|verify|versionlen|volume|volumeleng|wait|waitcics|web|when-compiled|wpmedia1|wpmedia2|wpmedia3|wpmedia4|wrap|write|writeq|wsacontext|wsaepr|xctl|xmlcontainer|xmltodata|xmltransform|xrba|year|yyddd|yyddmm|yymmdd|yyyyddd|yyyyddmm|yyyymmdd|zero|zeroes|zeros)(?![\\\\\\\\-\\\\\\\\w])\",\"name\":\"keyword.verb.cics\"},\"dli-keywords\":{\"match\":\"(?<![\\\\\\\\-\\\\\\\\w])(?i:accept|chkp|deq|dlet|gnp|gn|gu|isrt|load|log|pos|query|refresh|repl|retrieve|rolb|roll|rols|schd|sets|setu|symchkp|term|xrst)(?![\\\\\\\\-\\\\\\\\w])\",\"name\":\"keyword.verb.dli\"},\"dli-options\":{\"match\":\"(?<![\\\\\\\\-\\\\\\\\w])(?i:statusgroup|checkpoint|chkp|id|lockclass|segment|info|where|from|using|keyfeedback|feedbacklen|variable|first|last|current|seglength|offset|locked|movenext|getfirst|set|setcond|setzero|setparent|fieldlength|keys|maxlength|length[0-9]*|area[0-9]*|psc|pcs|pcb|sysserve|into)(?![\\\\\\\\-\\\\\\\\w])\",\"name\":\"keyword.other.dli\"},\"number-complex-constant\":{\"match\":\"(\\\\\\\\-|\\\\\\\\+)?((([0-9]+(\\\\\\\\.[0-9]+))|(\\\\\\\\.[0-9]+))((e|E)(\\\\\\\\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?(?=\\\\\\\\s|\\\\\\\\.$|,|\\\\\\\\))\",\"name\":\"constant.numeric.cobol\"},\"number-simple-constant\":{\"match\":\"(\\\\\\\\-|\\\\\\\\+)?([0-9]+)(?=\\\\\\\\s|\\\\\\\\.$|,|\\\\\\\\))\",\"name\":\"constant.numeric.cobol\"},\"string-double-quoted-constant\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cobol\"}},\"end\":\"(\\\\\"|$)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cobol\"}}},\"string-quoted-constant\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cobol\"}},\"end\":\"('|$)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cobol\"}},\"name\":\"string.quoted.single.cobol\"}},\"scopeName\":\"source.cobol\",\"embeddedLangs\":[\"html\",\"java\"]}`)),c=[...e,...t,n];export{c as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BKENxkRn.js",
    "content": "import{C as u,g as c,j as n,bo as T,bp as z,a8 as h,h as p,s as k,bq as E,d as F,a6 as S,c as C,r as f,B as H,F as M,i,ad as R,x as t,br as U,H as $,D as V,bh as q,f as m,E as B,G as L,O as G,a3 as I,t as O,ar as P,X as Q,aa as X,a4 as J,Q as K}from\"./CU_MfyYc.js\";function W(r,a){return c(),u(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 24 24\",fill:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[n(\"path\",{d:\"M5.625 1.5c-1.036 0-1.875.84-1.875 1.875v17.25c0 1.035.84 1.875 1.875 1.875h12.75c1.035 0 1.875-.84 1.875-1.875V12.75A3.75 3.75 0 0 0 16.5 9h-1.875a1.875 1.875 0 0 1-1.875-1.875V5.25A3.75 3.75 0 0 0 9 1.5H5.625Z\"}),n(\"path\",{d:\"M12.971 1.816A5.23 5.23 0 0 1 14.25 5.25v1.875c0 .207.168.375.375.375H16.5a5.23 5.23 0 0 1 3.434 1.279 9.768 9.768 0 0 0-6.963-6.963Z\"})])}function A(r,a){return c(),u(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 24 24\",fill:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[n(\"path\",{\"fill-rule\":\"evenodd\",d:\"M10.5 3.75a6.75 6.75 0 1 0 0 13.5 6.75 6.75 0 0 0 0-13.5ZM2.25 10.5a8.25 8.25 0 1 1 14.59 5.28l4.69 4.69a.75.75 0 1 1-1.06 1.06l-4.69-4.69A8.25 8.25 0 0 1 2.25 10.5Z\",\"clip-rule\":\"evenodd\"})])}function Y(r,a){return c(),u(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 24 24\",fill:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[n(\"path\",{\"fill-rule\":\"evenodd\",d:\"M5.47 5.47a.75.75 0 0 1 1.06 0L12 10.94l5.47-5.47a.75.75 0 1 1 1.06 1.06L13.06 12l5.47 5.47a.75.75 0 1 1-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 0 1-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 0 1 0-1.06Z\",\"clip-rule\":\"evenodd\"})])}const x=T(\"strategies\",{state:()=>({strategies:[]}),persist:{storage:z.localStorage},actions:{async getStrategies(){const{data:r,error:a}=await E(\"/strategy/all\",!0);if(a.value&&a.value.statusCode!==200){p(a);return}const s=r.value;this.strategies=s.strategies},async getStrategy(r){const{data:a,error:s}=await h(\"/strategy/get\",{name:r},!0);return s.value&&s.value.statusCode!==200?(p(s),\"\"):a.value.content},async saveStrategy(r,a){const{data:s,error:e}=await h(\"/strategy/save\",{name:r,content:a},!0);if(e.value&&e.value.statusCode!==200){p(e);return}const d=s.value;k(\"success\",d.message)},async deleteStrategy(r){const{data:a,error:s}=await h(\"/strategy/delete\",{name:r},!0);if(s.value&&s.value.statusCode!==200){p(s);return}const e=a.value;k(\"success\",e.message),this.strategies=this.strategies.filter(d=>d!==r)}}}),ee={class:\"flex flex-col border-r dark:border-gray-600\",style:{height:\"calc(100vh - 4rem - 4px)\"}},te={class:\"flex-shrink-0 flex justify-between items-center border-b dark:border-gray-600 relative\"},ae={class:\"flex-1 overflow-auto\"},se={key:0,class:\"flex flex-col items-center justify-center py-8 px-4 text-center\"},re={class:\"text-sm text-gray-600 dark:text-gray-400\"},oe=[\"onMouseenter\"],ne=F({__name:\"StrategiesSidebar\",setup(r){const a=S(),s=C(()=>x().strategies),e=f(\"\"),d=f(null),v=f(!1),y=f(null),_=C(()=>s.value.filter(g=>g.toLowerCase().includes(e.value.toLowerCase())));function D(g){y.value=g,v.value=!0}async function N(){if(!y.value)return;const g=y.value;await x().deleteStrategy(g),v.value=!1,y.value=null,S().params.name===g&&J().push(\"/strategies\")}return H(async()=>{setTimeout(async()=>{await x().getStrategies()},200)}),(g,l)=>{const Z=I,w=O,j=X;return c(),u(M,null,[n(\"div\",ee,[n(\"div\",te,[i(t(A),{class:\"absolute left-3 w-4 h-4 text-gray-400 dark:text-gray-500 pointer-events-none\"}),R(n(\"input\",{\"onUpdate:modelValue\":l[0]||(l[0]=o=>V(e)?e.value=o:null),class:$([\"w-full pl-10 pr-4 py-2 bg-gray-50 focus:outline-none dark:bg-backdrop-dark\",{\"pr-10\":t(e)}]),placeholder:\"Search strategies...\"},null,2),[[U,t(e)]]),i(q,{name:\"fade\"},{default:m(()=>[t(e)?(c(),u(\"button\",{key:0,class:\"absolute right-2 p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded transition-colors\",onClick:l[1]||(l[1]=o=>e.value=\"\")},[i(t(Y),{class:\"w-4 h-4 text-gray-500 dark:text-gray-400\"})])):B(\"\",!0)]),_:1})]),n(\"div\",ae,[t(_).length===0&&t(e)?(c(),u(\"div\",se,[i(t(A),{class:\"w-12 h-12 text-gray-400 dark:text-gray-600 mb-3\"}),n(\"p\",re,' No matches for \"'+L(t(e))+'\" ',1)])):B(\"\",!0),(c(!0),u(M,null,G(t(_),o=>(c(),u(\"div\",{key:o,class:$([\"group relative px-4 py-2 cursor-pointer select-none flex items-center justify-between\",t(a).params.name===o?\"bg-gray-100 dark:bg-gray-800\":\"bg-gray-50 dark:bg-backdrop-dark hover:bg-gray-100 dark:hover:bg-gray-800\"]),onMouseenter:b=>d.value=o,onMouseleave:l[2]||(l[2]=b=>d.value=null)},[i(Z,{to:`/strategies/${o}`,class:\"flex items-center flex-1\"},{default:m(()=>[i(t(W),{class:\"w-4 h-4 mr-2\"}),n(\"span\",null,L(o),1)]),_:2},1032,[\"to\"]),i(w,{size:\"xs\",icon:\"i-heroicons-trash\",color:\"gray\",variant:\"link\",style:Q({visibility:t(d)===o?\"visible\":\"hidden\"}),onClick:P(b=>D(o),[\"prevent\"])},null,8,[\"style\",\"onClick\"])],42,oe))),128))])]),i(j,{modelValue:t(v),\"onUpdate:modelValue\":l[3]||(l[3]=o=>V(v)?v.value=o:null),title:\"Delete strategy\",description:`Are you sure you want to delete the strategy '${t(y)}'?`,type:\"info\"},{default:m(()=>[i(w,{variant:\"solid\",color:\"red\",block:\"\",class:\"sm:w-auto\",label:\"Delete\",onClick:N})]),_:1},8,[\"modelValue\",\"description\"])],64)}}}),ie=K(ne,[[\"__scopeId\",\"data-v-2e630b44\"]]);export{ie as S,x as u};\n"
  },
  {
    "path": "jesse/static/_nuxt/BLhTXw86.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"1C (Query)\",\"fileTypes\":[\"sdbl\",\"query\"],\"firstLineMatch\":\"(?i)Выбрать|Select(\\\\\\\\s+Разрешенные|\\\\\\\\s+Allowed)?(\\\\\\\\s+Различные|\\\\\\\\s+Distinct)?(\\\\\\\\s+Первые|\\\\\\\\s+Top)?.*\",\"name\":\"sdbl\",\"patterns\":[{\"match\":\"(^\\\\\\\\s*//.*$)\",\"name\":\"comment.line.double-slash.sdbl\"},{\"begin\":\"//\",\"end\":\"$\",\"name\":\"comment.line.double-slash.sdbl\"},{\"begin\":\"\\\\\\\\\\\\\"\",\"end\":\"\\\\\\\\\\\\\"(?![\\\\\\\\\\\\\"])\",\"name\":\"string.quoted.double.sdbl\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"\",\"name\":\"constant.character.escape.sdbl\"},{\"match\":\"(^\\\\\\\\s*//.*$)\",\"name\":\"comment.line.double-slash.sdbl\"}]},{\"match\":\"(?i)(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(Неопределено|Undefined|Истина|True|Ложь|False|NULL)(?=[^\\\\\\\\wа-яё\\\\\\\\.]|$)\",\"name\":\"constant.language.sdbl\"},{\"match\":\"(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(\\\\\\\\d+\\\\\\\\.?\\\\\\\\d*)(?=[^\\\\\\\\wа-яё\\\\\\\\.]|$)\",\"name\":\"constant.numeric.sdbl\"},{\"match\":\"(?i)(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(Выбор|Case|Когда|When|Тогда|Then|Иначе|Else|Конец|End)(?=[^\\\\\\\\wа-яё\\\\\\\\.]|$)\",\"name\":\"keyword.control.conditional.sdbl\"},{\"match\":\"(?i)(?<!КАК\\\\\\\\s|AS\\\\\\\\s)(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(НЕ|NOT|И|AND|ИЛИ|OR|В\\\\\\\\s+ИЕРАРХИИ|IN\\\\\\\\s+HIERARCHY|В|In|Между|Between|Есть(\\\\\\\\s+НЕ)?\\\\\\\\s+NULL|Is(\\\\\\\\s+NOT)?\\\\\\\\s+NULL|Ссылка|Refs|Подобно|Like)(?=[^\\\\\\\\wа-яё\\\\\\\\.]|$)\",\"name\":\"keyword.operator.logical.sdbl\"},{\"match\":\"<=|>=|=|<|>\",\"name\":\"keyword.operator.comparison.sdbl\"},{\"match\":\"(\\\\\\\\+|-|\\\\\\\\*|/|%)\",\"name\":\"keyword.operator.arithmetic.sdbl\"},{\"match\":\"(,|;)\",\"name\":\"keyword.operator.sdbl\"},{\"match\":\"(?i)(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(Выбрать|Select|Разрешенные|Allowed|Различные|Distinct|Первые|Top|Как|As|ПустаяТаблица|EmptyTable|Поместить|Into|Уничтожить|Drop|Из|From|((Левое|Left|Правое|Right|Полное|Full)\\\\\\\\s+(Внешнее\\\\\\\\s+|Outer\\\\\\\\s+)?Соединение|Join)|((Внутреннее|Inner)\\\\\\\\s+Соединение|Join)|Где|Where|(Сгруппировать\\\\\\\\s+По(\\\\\\\\s+Группирующим\\\\\\\\s+Наборам)?)|(Group\\\\\\\\s+By(\\\\\\\\s+Grouping\\\\\\\\s+Set)?)|Имеющие|Having|Объединить(\\\\\\\\s+Все)?|Union(\\\\\\\\s+All)?|(Упорядочить\\\\\\\\s+По)|(Order\\\\\\\\s+By)|Автоупорядочивание|Autoorder|Итоги|Totals|По(\\\\\\\\s+Общие)?|By(\\\\\\\\s+Overall)?|(Только\\\\\\\\s+)?Иерархия|(Only\\\\\\\\s+)?Hierarchy|Периодами|Periods|Индексировать|Index|Выразить|Cast|Возр|Asc|Убыв|Desc|Для\\\\\\\\s+Изменения|(For\\\\\\\\s+Update(\\\\\\\\s+Of)?)|Спецсимвол|Escape|СгруппированоПо|GroupedBy)(?=[^\\\\\\\\wа-яё\\\\\\\\.]|$)\",\"name\":\"keyword.control.sdbl\"},{\"comment\":\"Функции языка запросов\",\"match\":\"(?i)(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(Значение|Value|ДатаВремя|DateTime|Тип|Type)(?=\\\\\\\\()\",\"name\":\"support.function.sdbl\"},{\"comment\":\"Функции работы со строками\",\"match\":\"(?i)(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(Подстрока|Substring|НРег|Lower|ВРег|Upper|Лев|Left|Прав|Right|ДлинаСтроки|StringLength|СтрНайти|StrFind|СтрЗаменить|StrReplace|СокрЛП|TrimAll|СокрЛ|TrimL|СокрП|TrimR)(?=\\\\\\\\()\",\"name\":\"support.function.sdbl\"},{\"comment\":\"Функции работы с датами\",\"match\":\"(?i)(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(Год|Year|Квартал|Quarter|Месяц|Month|ДеньГода|DayOfYear|День|Day|Неделя|Week|ДеньНедели|Weekday|Час|Hour|Минута|Minute|Секунда|Second|НачалоПериода|BeginOfPeriod|КонецПериода|EndOfPeriod|ДобавитьКДате|DateAdd|РазностьДат|DateDiff|Полугодие|HalfYear|Декада|TenDays)(?=\\\\\\\\()\",\"name\":\"support.function.sdbl\"},{\"comment\":\"Функции работы с числами\",\"match\":\"(?i)(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(ACOS|COS|ASIN|SIN|ATAN|TAN|EXP|POW|LOG|LOG10|Цел|Int|Окр|Round|SQRT)(?=\\\\\\\\()\",\"name\":\"support.function.sdbl\"},{\"comment\":\"Агрегатные функции\",\"match\":\"(?i)(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(Сумма|Sum|Среднее|Avg|Минимум|Min|Максимум|Max|Количество|Count)(?=\\\\\\\\()\",\"name\":\"support.function.sdbl\"},{\"comment\":\"Прочие функции\",\"match\":\"(?i)(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(ЕстьNULL|IsNULL|Представление|Presentation|ПредставлениеСсылки|RefPresentation|ТипЗначения|ValueType|АвтономерЗаписи|RecordAutoNumber|РазмерХранимыхДанных|StoredDataSize|УникальныйИдентификатор|UUID)(?=\\\\\\\\()\",\"name\":\"support.function.sdbl\"},{\"match\":\"(?i)(?<=[^\\\\\\\\wа-яё\\\\\\\\.])(Число|Number|Строка|String|Дата|Date|Булево|Boolean)(?=[^\\\\\\\\wа-яё\\\\\\\\.]|$)\",\"name\":\"support.type.sdbl\"},{\"match\":\"(&[\\\\\\\\wа-яё]+)\",\"name\":\"variable.parameter.sdbl\"}],\"scopeName\":\"source.sdbl\",\"aliases\":[\"1c-query\"]}')),s=[e];export{s as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BLuZWbUW.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"//\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'}]},t={keywords:[\"namespace\",\"open\",\"as\",\"operation\",\"function\",\"body\",\"adjoint\",\"newtype\",\"controlled\",\"if\",\"elif\",\"else\",\"repeat\",\"until\",\"fixup\",\"for\",\"in\",\"while\",\"return\",\"fail\",\"within\",\"apply\",\"Adjoint\",\"Controlled\",\"Adj\",\"Ctl\",\"is\",\"self\",\"auto\",\"distribute\",\"invert\",\"intrinsic\",\"let\",\"set\",\"w/\",\"new\",\"not\",\"and\",\"or\",\"use\",\"borrow\",\"using\",\"borrowing\",\"mutable\",\"internal\"],typeKeywords:[\"Unit\",\"Int\",\"BigInt\",\"Double\",\"Bool\",\"String\",\"Qubit\",\"Result\",\"Pauli\",\"Range\"],invalidKeywords:[\"abstract\",\"base\",\"bool\",\"break\",\"byte\",\"case\",\"catch\",\"char\",\"checked\",\"class\",\"const\",\"continue\",\"decimal\",\"default\",\"delegate\",\"do\",\"double\",\"enum\",\"event\",\"explicit\",\"extern\",\"finally\",\"fixed\",\"float\",\"foreach\",\"goto\",\"implicit\",\"int\",\"interface\",\"lock\",\"long\",\"null\",\"object\",\"operator\",\"out\",\"override\",\"params\",\"private\",\"protected\",\"public\",\"readonly\",\"ref\",\"sbyte\",\"sealed\",\"short\",\"sizeof\",\"stackalloc\",\"static\",\"string\",\"struct\",\"switch\",\"this\",\"throw\",\"try\",\"typeof\",\"unit\",\"ulong\",\"unchecked\",\"unsafe\",\"ushort\",\"virtual\",\"void\",\"volatile\"],constants:[\"true\",\"false\",\"PauliI\",\"PauliX\",\"PauliY\",\"PauliZ\",\"One\",\"Zero\"],builtin:[\"X\",\"Y\",\"Z\",\"H\",\"HY\",\"S\",\"T\",\"SWAP\",\"CNOT\",\"CCNOT\",\"MultiX\",\"R\",\"RFrac\",\"Rx\",\"Ry\",\"Rz\",\"R1\",\"R1Frac\",\"Exp\",\"ExpFrac\",\"Measure\",\"M\",\"MultiM\",\"Message\",\"Length\",\"Assert\",\"AssertProb\",\"AssertEqual\"],operators:[\"and=\",\"<-\",\"->\",\"*\",\"*=\",\"@\",\"!\",\"^\",\"^=\",\":\",\"::\",\"..\",\"==\",\"...\",\"=\",\"=>\",\">\",\">=\",\"<\",\"<=\",\"-\",\"-=\",\"!=\",\"or=\",\"%\",\"%=\",\"|\",\"+\",\"+=\",\"?\",\"/\",\"/=\",\"&&&\",\"&&&=\",\"^^^\",\"^^^=\",\">>>\",\">>>=\",\"<<<\",\"<<<=\",\"|||\",\"|||=\",\"~~~\",\"_\",\"w/\",\"w/=\"],namespaceFollows:[\"namespace\",\"open\"],symbols:/[=><!~?:&|+\\-*\\/\\^%@._]+/,escapes:/\\\\[\\s\\S]/,tokenizer:{root:[[/[a-zA-Z_$][\\w$]*/,{cases:{\"@namespaceFollows\":{token:\"keyword.$0\",next:\"@namespace\"},\"@typeKeywords\":\"type\",\"@keywords\":\"keyword\",\"@constants\":\"constant\",\"@builtin\":\"keyword\",\"@invalidKeywords\":\"invalid\",\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"operator\",\"@default\":\"\"}}],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/\\d+/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"/,{token:\"string.quote\",bracket:\"@open\",next:\"@string\"}]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\"/,{token:\"string.quote\",bracket:\"@close\",next:\"@pop\"}]],namespace:[{include:\"@whitespace\"},[/[A-Za-z]\\w*/,\"namespace\"],[/[\\.=]/,\"delimiter\"],[\"\",\"\",\"@pop\"]],whitespace:[[/[ \\t\\r\\n]+/,\"white\"],[/(\\/\\/).*/,\"comment\"]]}};export{e as conf,t as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/BMR_PYu6.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Turtle\",\"fileTypes\":[\"turtle\",\"ttl\",\"acl\"],\"name\":\"turtle\",\"patterns\":[{\"include\":\"#rule-constraint\"},{\"include\":\"#iriref\"},{\"include\":\"#prefix\"},{\"include\":\"#prefixed-name\"},{\"include\":\"#comment\"},{\"include\":\"#special-predicate\"},{\"include\":\"#literals\"},{\"include\":\"#language-tag\"}],\"repository\":{\"boolean\":{\"match\":\"\\\\\\\\b(?i:true|false)\\\\\\\\b\",\"name\":\"constant.language.sparql\"},\"comment\":{\"match\":\"#.*$\",\"name\":\"comment.line.number-sign.turtle\"},\"integer\":{\"match\":\"[+-]?(?:\\\\\\\\d+|[0-9]+\\\\\\\\.[0-9]*|\\\\\\\\.[0-9]+(?:[eE][+-]?\\\\\\\\d+)?)\",\"name\":\"constant.numeric.turtle\"},\"iriref\":{\"match\":\"<[^\\\\\\\\x20-\\\\\\\\x20<>\\\\\"{}|^\\`\\\\\\\\\\\\\\\\]*>\",\"name\":\"entity.name.type.iriref.turtle\"},\"language-tag\":{\"captures\":{\"1\":{\"name\":\"entity.name.class.turtle\"}},\"match\":\"@(\\\\\\\\w+)\",\"name\":\"meta.string-literal-language-tag.turtle\"},\"literals\":{\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#numeric\"},{\"include\":\"#boolean\"}]},\"numeric\":{\"patterns\":[{\"include\":\"#integer\"}]},\"prefix\":{\"match\":\"(?i:@?base|@?prefix)\\\\\\\\s\",\"name\":\"keyword.operator.turtle\"},\"prefixed-name\":{\"captures\":{\"1\":{\"name\":\"storage.type.PNAME_NS.turtle\"},\"2\":{\"name\":\"support.variable.PN_LOCAL.turtle\"}},\"match\":\"(\\\\\\\\w*:)(\\\\\\\\w*)\",\"name\":\"constant.complex.turtle\"},\"rule-constraint\":{\"begin\":\"(rule:content) (\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#prefixed-name\"}]},\"2\":{\"name\":\"string.quoted.triple.turtle\"}},\"end\":\"\\\\\"\\\\\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"string.quoted.triple.turtle\"}},\"name\":\"meta.rule-constraint.turtle\",\"patterns\":[{\"include\":\"source.srs\"}]},\"single-dquote-string-literal\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.turtle\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.turtle\"}},\"name\":\"string.quoted.double.turtle\",\"patterns\":[{\"include\":\"#string-character-escape\"}]},\"single-squote-string-literal\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.turtle\"}},\"end\":\"'\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.turtle\"},\"2\":{\"name\":\"invalid.illegal.newline.turtle\"}},\"name\":\"string.quoted.single.turtle\",\"patterns\":[{\"include\":\"#string-character-escape\"}]},\"special-predicate\":{\"captures\":{\"1\":{\"name\":\"keyword.control.turtle\"}},\"match\":\"\\\\\\\\s(a)\\\\\\\\s\",\"name\":\"meta.specialPredicate.turtle\"},\"string\":{\"patterns\":[{\"include\":\"#triple-squote-string-literal\"},{\"include\":\"#triple-dquote-string-literal\"},{\"include\":\"#single-squote-string-literal\"},{\"include\":\"#single-dquote-string-literal\"},{\"include\":\"#triple-tick-string-literal\"}]},\"string-character-escape\":{\"match\":\"\\\\\\\\\\\\\\\\(x\\\\\\\\h{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)\",\"name\":\"constant.character.escape.turtle\"},\"triple-dquote-string-literal\":{\"begin\":\"\\\\\"\\\\\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.turtle\"}},\"end\":\"\\\\\"\\\\\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.turtle\"}},\"name\":\"string.quoted.triple.turtle\",\"patterns\":[{\"include\":\"#string-character-escape\"}]},\"triple-squote-string-literal\":{\"begin\":\"'''\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.turtle\"}},\"end\":\"'''\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.turtle\"}},\"name\":\"string.quoted.triple.turtle\",\"patterns\":[{\"include\":\"#string-character-escape\"}]},\"triple-tick-string-literal\":{\"begin\":\"\\`\\`\\`\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.turtle\"}},\"end\":\"\\`\\`\\`\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.turtle\"}},\"name\":\"string.quoted.triple.turtle\",\"patterns\":[{\"include\":\"#string-character-escape\"}]}},\"scopeName\":\"source.turtle\"}`)),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BMYPR7BL.js",
    "content": "import t from\"./ySlJ1b_l.js\";import e from\"./BPhBrDlE.js\";const n=Object.freeze(JSON.parse(`{\"displayName\":\"HTML\",\"injections\":{\"R:text.html - (comment.block, text.html meta.embedded, meta.tag.*.*.html, meta.tag.*.*.*.html, meta.tag.*.*.*.*.html)\":{\"comment\":\"Uses R: to ensure this matches after any other injections.\",\"patterns\":[{\"match\":\"<\",\"name\":\"invalid.illegal.bad-angle-bracket.html\"}]}},\"name\":\"html\",\"patterns\":[{\"include\":\"#xml-processing\"},{\"include\":\"#comment\"},{\"include\":\"#doctype\"},{\"include\":\"#cdata\"},{\"include\":\"#tags-valid\"},{\"include\":\"#tags-invalid\"},{\"include\":\"#entities\"}],\"repository\":{\"attribute\":{\"patterns\":[{\"begin\":\"(s(hape|cope|t(ep|art)|ize(s)?|p(ellcheck|an)|elected|lot|andbox|rc(set|doc|lang)?)|h(ttp-equiv|i(dden|gh)|e(ight|aders)|ref(lang)?)|n(o(nce|validate|module)|ame)|c(h(ecked|arset)|ite|o(nt(ent(editable)?|rols)|ords|l(s(pan)?|or))|lass|rossorigin)|t(ype(mustmatch)?|itle|a(rget|bindex)|ranslate)|i(s(map)?|n(tegrity|putmode)|tem(scope|type|id|prop|ref)|d)|op(timum|en)|d(i(sabled|r(name)?)|ownload|e(coding|f(er|ault))|at(etime|a)|raggable)|usemap|p(ing|oster|la(ysinline|ceholder)|attern|reload)|enctype|value|kind|for(m(novalidate|target|enctype|action|method)?)?|w(idth|rap)|l(ist|o(op|w)|a(ng|bel))|a(s(ync)?|c(ce(sskey|pt(-charset)?)|tion)|uto(c(omplete|apitalize)|play|focus)|l(t|low(usermedia|paymentrequest|fullscreen))|bbr)|r(ows(pan)?|e(versed|quired|ferrerpolicy|l|adonly))|m(in(length)?|u(ted|ltiple)|e(thod|dia)|a(nifest|x(length)?)))(?![\\\\\\\\w:-])\",\"beginCaptures\":{\"0\":{\"name\":\"entity.other.attribute-name.html\"}},\"comment\":\"HTML5 attributes, not event handlers\",\"end\":\"(?=\\\\\\\\s*+[^=\\\\\\\\s])\",\"name\":\"meta.attribute.$1.html\",\"patterns\":[{\"include\":\"#attribute-interior\"}]},{\"begin\":\"style(?![\\\\\\\\w:-])\",\"beginCaptures\":{\"0\":{\"name\":\"entity.other.attribute-name.html\"}},\"comment\":\"HTML5 style attribute\",\"end\":\"(?=\\\\\\\\s*+[^=\\\\\\\\s])\",\"name\":\"meta.attribute.style.html\",\"patterns\":[{\"begin\":\"=\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.key-value.html\"}},\"end\":\"(?<=[^\\\\\\\\s=])(?!\\\\\\\\s*=)|(?=/?>)\",\"patterns\":[{\"begin\":\"(?=[^\\\\\\\\s=<>\\`/]|/(?!>))\",\"end\":\"(?!\\\\\\\\G)\",\"name\":\"meta.embedded.line.css\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"source.css\"}},\"match\":\"([^\\\\\\\\s\\\\\"'=<>\\`/]|/(?!>))+\",\"name\":\"string.unquoted.html\"},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"contentName\":\"source.css\",\"end\":\"(\\\\\")\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"},\"1\":{\"name\":\"source.css\"}},\"name\":\"string.quoted.double.html\",\"patterns\":[{\"include\":\"#entities\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"contentName\":\"source.css\",\"end\":\"(')\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"},\"1\":{\"name\":\"source.css\"}},\"name\":\"string.quoted.single.html\",\"patterns\":[{\"include\":\"#entities\"}]}]},{\"match\":\"=\",\"name\":\"invalid.illegal.unexpected-equals-sign.html\"}]}]},{\"begin\":\"on(s(croll|t(orage|alled)|u(spend|bmit)|e(curitypolicyviolation|ek(ing|ed)|lect))|hashchange|c(hange|o(ntextmenu|py)|u(t|echange)|l(ick|ose)|an(cel|play(through)?))|t(imeupdate|oggle)|in(put|valid)|o(nline|ffline)|d(urationchange|r(op|ag(start|over|e(n(ter|d)|xit)|leave)?)|blclick)|un(handledrejection|load)|p(opstate|lay(ing)?|a(ste|use|ge(show|hide))|rogress)|e(nded|rror|mptied)|volumechange|key(down|up|press)|focus|w(heel|aiting)|l(oad(start|e(nd|d(data|metadata)))?|anguagechange)|a(uxclick|fterprint|bort)|r(e(s(ize|et)|jectionhandled)|atechange)|m(ouse(o(ut|ver)|down|up|enter|leave|move)|essage(error)?)|b(efore(unload|print)|lur))(?![\\\\\\\\w:-])\",\"beginCaptures\":{\"0\":{\"name\":\"entity.other.attribute-name.html\"}},\"comment\":\"HTML5 attributes, event handlers\",\"end\":\"(?=\\\\\\\\s*+[^=\\\\\\\\s])\",\"name\":\"meta.attribute.event-handler.$1.html\",\"patterns\":[{\"begin\":\"=\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.key-value.html\"}},\"end\":\"(?<=[^\\\\\\\\s=])(?!\\\\\\\\s*=)|(?=/?>)\",\"patterns\":[{\"begin\":\"(?=[^\\\\\\\\s=<>\\`/]|/(?!>))\",\"end\":\"(?!\\\\\\\\G)\",\"name\":\"meta.embedded.line.js\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"source.js\"},\"1\":{\"patterns\":[{\"include\":\"source.js\"}]}},\"match\":\"(([^\\\\\\\\s\\\\\"'=<>\\`/]|/(?!>))+)\",\"name\":\"string.unquoted.html\"},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"contentName\":\"source.js\",\"end\":\"(\\\\\")\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"},\"1\":{\"name\":\"source.js\"}},\"name\":\"string.quoted.double.html\",\"patterns\":[{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"source.js\"}]}},\"match\":\"([^\\\\\\\\n\\\\\"/]|/(?![/*]))+\"},{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.js\"}},\"end\":\"(?=\\\\\")|\\\\\\\\n\",\"name\":\"comment.line.double-slash.js\"},{\"begin\":\"/\\\\\\\\*\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.js\"}},\"end\":\"(?=\\\\\")|\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.js\"}},\"name\":\"comment.block.js\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"contentName\":\"source.js\",\"end\":\"(')\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"},\"1\":{\"name\":\"source.js\"}},\"name\":\"string.quoted.single.html\",\"patterns\":[{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"source.js\"}]}},\"match\":\"([^\\\\\\\\n'/]|/(?![/*]))+\"},{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.js\"}},\"end\":\"(?=')|\\\\\\\\n\",\"name\":\"comment.line.double-slash.js\"},{\"begin\":\"/\\\\\\\\*\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.js\"}},\"end\":\"(?=')|\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.js\"}},\"name\":\"comment.block.js\"}]}]},{\"match\":\"=\",\"name\":\"invalid.illegal.unexpected-equals-sign.html\"}]}]},{\"begin\":\"(data-[a-z\\\\\\\\-]+)(?![\\\\\\\\w:-])\",\"beginCaptures\":{\"0\":{\"name\":\"entity.other.attribute-name.html\"}},\"comment\":\"HTML5 attributes, data-*\",\"end\":\"(?=\\\\\\\\s*+[^=\\\\\\\\s])\",\"name\":\"meta.attribute.data-x.$1.html\",\"patterns\":[{\"include\":\"#attribute-interior\"}]},{\"begin\":\"(align|bgcolor|border)(?![\\\\\\\\w:-])\",\"beginCaptures\":{\"0\":{\"name\":\"invalid.deprecated.entity.other.attribute-name.html\"}},\"comment\":\"HTML attributes, deprecated\",\"end\":\"(?=\\\\\\\\s*+[^=\\\\\\\\s])\",\"name\":\"meta.attribute.$1.html\",\"patterns\":[{\"include\":\"#attribute-interior\"}]},{\"begin\":\"([^\\\\\\\\x{0020}\\\\\"'<>/=\\\\\\\\x{0000}-\\\\\\\\x{001F}\\\\\\\\x{007F}-\\\\\\\\x{009F}\\\\\\\\x{FDD0}-\\\\\\\\x{FDEF}\\\\\\\\x{FFFE}\\\\\\\\x{FFFF}\\\\\\\\x{1FFFE}\\\\\\\\x{1FFFF}\\\\\\\\x{2FFFE}\\\\\\\\x{2FFFF}\\\\\\\\x{3FFFE}\\\\\\\\x{3FFFF}\\\\\\\\x{4FFFE}\\\\\\\\x{4FFFF}\\\\\\\\x{5FFFE}\\\\\\\\x{5FFFF}\\\\\\\\x{6FFFE}\\\\\\\\x{6FFFF}\\\\\\\\x{7FFFE}\\\\\\\\x{7FFFF}\\\\\\\\x{8FFFE}\\\\\\\\x{8FFFF}\\\\\\\\x{9FFFE}\\\\\\\\x{9FFFF}\\\\\\\\x{AFFFE}\\\\\\\\x{AFFFF}\\\\\\\\x{BFFFE}\\\\\\\\x{BFFFF}\\\\\\\\x{CFFFE}\\\\\\\\x{CFFFF}\\\\\\\\x{DFFFE}\\\\\\\\x{DFFFF}\\\\\\\\x{EFFFE}\\\\\\\\x{EFFFF}\\\\\\\\x{FFFFE}\\\\\\\\x{FFFFF}\\\\\\\\x{10FFFE}\\\\\\\\x{10FFFF}]+)\",\"beginCaptures\":{\"0\":{\"name\":\"entity.other.attribute-name.html\"}},\"comment\":\"Anything else that is valid\",\"end\":\"(?=\\\\\\\\s*+[^=\\\\\\\\s])\",\"name\":\"meta.attribute.unrecognized.$1.html\",\"patterns\":[{\"include\":\"#attribute-interior\"}]},{\"match\":\"[^\\\\\\\\s>]+\",\"name\":\"invalid.illegal.character-not-allowed-here.html\"}]},\"attribute-interior\":{\"patterns\":[{\"begin\":\"=\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.key-value.html\"}},\"end\":\"(?<=[^\\\\\\\\s=])(?!\\\\\\\\s*=)|(?=/?>)\",\"patterns\":[{\"match\":\"([^\\\\\\\\s\\\\\"'=<>\\`/]|/(?!>))+\",\"name\":\"string.unquoted.html\"},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"string.quoted.double.html\",\"patterns\":[{\"include\":\"#entities\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"string.quoted.single.html\",\"patterns\":[{\"include\":\"#entities\"}]},{\"match\":\"=\",\"name\":\"invalid.illegal.unexpected-equals-sign.html\"}]}]},\"cdata\":{\"begin\":\"<!\\\\\\\\[CDATA\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.begin.html\"}},\"contentName\":\"string.other.inline-data.html\",\"end\":\"]]>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.metadata.cdata.html\"},\"comment\":{\"begin\":\"<!--\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.html\"}},\"end\":\"-->\",\"name\":\"comment.block.html\",\"patterns\":[{\"match\":\"\\\\\\\\G-?>\",\"name\":\"invalid.illegal.characters-not-allowed-here.html\"},{\"match\":\"<!--(?!>)|<!-(?=-->)\",\"name\":\"invalid.illegal.characters-not-allowed-here.html\"},{\"match\":\"--!>\",\"name\":\"invalid.illegal.characters-not-allowed-here.html\"}]},\"core-minus-invalid\":{\"comment\":\"This should be the root pattern array includes minus #tags-invalid\",\"patterns\":[{\"include\":\"#xml-processing\"},{\"include\":\"#comment\"},{\"include\":\"#doctype\"},{\"include\":\"#cdata\"},{\"include\":\"#tags-valid\"},{\"include\":\"#entities\"}]},\"doctype\":{\"begin\":\"<!(?=(?i:DOCTYPE\\\\\\\\s))\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.begin.html\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.metadata.doctype.html\",\"patterns\":[{\"match\":\"\\\\\\\\G(?i:DOCTYPE)\",\"name\":\"entity.name.tag.html\"},{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.html\"},{\"match\":\"[^\\\\\\\\s>]+\",\"name\":\"entity.other.attribute-name.html\"}]},\"entities\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.html\"},\"912\":{\"name\":\"punctuation.definition.entity.html\"}},\"comment\":\"Yes this is a bit ridiculous, there are quite a lot of these\",\"match\":\"(&)(?=[a-zA-Z])((a(s(ymp(eq)?|cr|t)|n(d(slope|d|v|and)?|g(s(t|ph)|zarr|e|le|rt(vb(d)?)?|msd(a(h|c|d|e|f|a|g|b))?)?)|c(y|irc|d|ute|E)?|tilde|o(pf|gon)|uml|p(id|os|prox(eq)?|e|E|acir)?|elig|f(r)?|w(conint|int)|l(pha|e(ph|fsym))|acute|ring|grave|m(p|a(cr|lg))|breve)|A(s(sign|cr)|nd|MP|c(y|irc)|tilde|o(pf|gon)|uml|pplyFunction|fr|Elig|lpha|acute|ring|grave|macr|breve))|(B(scr|cy|opf|umpeq|e(cause|ta|rnoullis)|fr|a(ckslash|r(v|wed))|reve)|b(s(cr|im(e)?|ol(hsub|b)?|emi)|n(ot|e(quiv)?)|c(y|ong)|ig(s(tar|qcup)|c(irc|up|ap)|triangle(down|up)|o(times|dot|plus)|uplus|vee|wedge)|o(t(tom)?|pf|wtie|x(h(d|u|D|U)?|times|H(d|u|D|U)?|d(R|l|r|L)|u(R|l|r|L)|plus|D(R|l|r|L)|v(R|h|H|l|r|L)?|U(R|l|r|L)|V(R|h|H|l|r|L)?|minus|box))|Not|dquo|u(ll(et)?|mp(e(q)?|E)?)|prime|e(caus(e)?|t(h|ween|a)|psi|rnou|mptyv)|karow|fr|l(ock|k(1(2|4)|34)|a(nk|ck(square|triangle(down|left|right)?|lozenge)))|a(ck(sim(eq)?|cong|prime|epsilon)|r(vee|wed(ge)?))|r(eve|vbar)|brk(tbrk)?))|(c(s(cr|u(p(e)?|b(e)?))|h(cy|i|eck(mark)?)|ylcty|c(irc|ups(sm)?|edil|a(ps|ron))|tdot|ir(scir|c(eq|le(d(R|circ|S|dash|ast)|arrow(left|right)))?|e|fnint|E|mid)?|o(n(int|g(dot)?)|p(y(sr)?|f|rod)|lon(e(q)?)?|m(p(fn|le(xes|ment))?|ma(t)?))|dot|u(darr(l|r)|p(s|c(up|ap)|or|dot|brcap)?|e(sc|pr)|vee|wed|larr(p)?|r(vearrow(left|right)|ly(eq(succ|prec)|vee|wedge)|arr(m)?|ren))|e(nt(erdot)?|dil|mptyv)|fr|w(conint|int)|lubs(uit)?|a(cute|p(s|c(up|ap)|dot|and|brcup)?|r(on|et))|r(oss|arr))|C(scr|hi|c(irc|onint|edil|aron)|ircle(Minus|Times|Dot|Plus)|Hcy|o(n(tourIntegral|int|gruent)|unterClockwiseContourIntegral|p(f|roduct)|lon(e)?)|dot|up(Cap)?|OPY|e(nterDot|dilla)|fr|lo(seCurly(DoubleQuote|Quote)|ckwiseContourIntegral)|a(yleys|cute|p(italDifferentialD)?)|ross))|(d(s(c(y|r)|trok|ol)|har(l|r)|c(y|aron)|t(dot|ri(f)?)|i(sin|e|v(ide(ontimes)?|onx)?|am(s|ond(suit)?)?|gamma)|Har|z(cy|igrarr)|o(t(square|plus|eq(dot)?|minus)?|ublebarwedge|pf|wn(harpoon(left|right)|downarrows|arrow)|llar)|d(otseq|a(rr|gger))?|u(har|arr)|jcy|e(lta|g|mptyv)|f(isht|r)|wangle|lc(orn|rop)|a(sh(v)?|leth|rr|gger)|r(c(orn|rop)|bkarow)|b(karow|lac)|Arr)|D(s(cr|trok)|c(y|aron)|Scy|i(fferentialD|a(critical(Grave|Tilde|Do(t|ubleAcute)|Acute)|mond))|o(t(Dot|Equal)?|uble(Right(Tee|Arrow)|ContourIntegral|Do(t|wnArrow)|Up(DownArrow|Arrow)|VerticalBar|L(ong(RightArrow|Left(RightArrow|Arrow))|eft(RightArrow|Tee|Arrow)))|pf|wn(Right(TeeVector|Vector(Bar)?)|Breve|Tee(Arrow)?|arrow|Left(RightVector|TeeVector|Vector(Bar)?)|Arrow(Bar|UpArrow)?))|Zcy|el(ta)?|D(otrahd)?|Jcy|fr|a(shv|rr|gger)))|(e(s(cr|im|dot)|n(sp|g)|c(y|ir(c)?|olon|aron)|t(h|a)|o(pf|gon)|dot|u(ro|ml)|p(si(v|lon)?|lus|ar(sl)?)|e|D(ot|Dot)|q(s(im|lant(less|gtr))|c(irc|olon)|u(iv(DD)?|est|als)|vparsl)|f(Dot|r)|l(s(dot)?|inters|l)?|a(ster|cute)|r(Dot|arr)|g(s(dot)?|rave)?|x(cl|ist|p(onentiale|ectation))|m(sp(1(3|4))?|pty(set|v)?|acr))|E(s(cr|im)|c(y|irc|aron)|ta|o(pf|gon)|NG|dot|uml|TH|psilon|qu(ilibrium|al(Tilde)?)|fr|lement|acute|grave|x(ists|ponentialE)|m(pty(SmallSquare|VerySmallSquare)|acr)))|(f(scr|nof|cy|ilig|o(pf|r(k(v)?|all))|jlig|partint|emale|f(ilig|l(ig|lig)|r)|l(tns|lig|at)|allingdotseq|r(own|a(sl|c(1(2|8|3|4|5|6)|78|2(3|5)|3(8|4|5)|45|5(8|6)))))|F(scr|cy|illed(SmallSquare|VerySmallSquare)|o(uriertrf|pf|rAll)|fr))|(G(scr|c(y|irc|edil)|t|opf|dot|T|Jcy|fr|amma(d)?|reater(Greater|SlantEqual|Tilde|Equal(Less)?|FullEqual|Less)|g|breve)|g(s(cr|im(e|l)?)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|irc)|t(c(c|ir)|dot|quest|lPar|r(sim|dot|eq(qless|less)|less|a(pprox|rr)))?|imel|opf|dot|jcy|e(s(cc|dot(o(l)?)?|l(es)?)?|q(slant|q)?|l)?|v(nE|ertneqq)|fr|E(l)?|l(j|E|a)?|a(cute|p|mma(d)?)|rave|g(g)?|breve))|(h(s(cr|trok|lash)|y(phen|bull)|circ|o(ok(leftarrow|rightarrow)|pf|arr|rbar|mtht)|e(llip|arts(uit)?|rcon)|ks(earow|warow)|fr|a(irsp|lf|r(dcy|r(cir|w)?)|milt)|bar|Arr)|H(s(cr|trok)|circ|ilbertSpace|o(pf|rizontalLine)|ump(DownHump|Equal)|fr|a(cek|t)|ARDcy))|(i(s(cr|in(s(v)?|dot|v|E)?)|n(care|t(cal|prod|e(rcal|gers)|larhk)?|odot|fin(tie)?)?|c(y|irc)?|t(ilde)?|i(nfin|i(nt|int)|ota)?|o(cy|ta|pf|gon)|u(kcy|ml)|jlig|prod|e(cy|xcl)|quest|f(f|r)|acute|grave|m(of|ped|a(cr|th|g(part|e|line))))|I(scr|n(t(e(rsection|gral))?|visible(Comma|Times))|c(y|irc)|tilde|o(ta|pf|gon)|dot|u(kcy|ml)|Ocy|Jlig|fr|Ecy|acute|grave|m(plies|a(cr|ginaryI))?))|(j(s(cr|ercy)|c(y|irc)|opf|ukcy|fr|math)|J(s(cr|ercy)|c(y|irc)|opf|ukcy|fr))|(k(scr|hcy|c(y|edil)|opf|jcy|fr|appa(v)?|green)|K(scr|c(y|edil)|Hcy|opf|Jcy|fr|appa))|(l(s(h|cr|trok|im(e|g)?|q(uo(r)?|b)|aquo)|h(ar(d|u(l)?)|blk)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|ub|e(il|dil)|aron)|Barr|t(hree|c(c|ir)|imes|dot|quest|larr|r(i(e|f)?|Par))?|Har|o(ng(left(arrow|rightarrow)|rightarrow|mapsto)|times|z(enge|f)?|oparrow(left|right)|p(f|lus|ar)|w(ast|bar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|r(dhar|ushar))|ur(dshar|uhar)|jcy|par(lt)?|e(s(s(sim|dot|eq(qgtr|gtr)|approx|gtr)|cc|dot(o(r)?)?|g(es)?)?|q(slant|q)?|ft(harpoon(down|up)|threetimes|leftarrows|arrow(tail)?|right(squigarrow|harpoons|arrow(s)?))|g)?|v(nE|ertneqq)|f(isht|loor|r)|E(g)?|l(hard|corner|tri|arr)?|a(ng(d|le)?|cute|t(e(s)?|ail)?|p|emptyv|quo|rr(sim|hk|tl|pl|fs|lp|b(fs)?)?|gran|mbda)|r(har(d)?|corner|tri|arr|m)|g(E)?|m(idot|oust(ache)?)|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr))|L(s(h|cr|trok)|c(y|edil|aron)|t|o(ng(RightArrow|left(arrow|rightarrow)|rightarrow|Left(RightArrow|Arrow))|pf|wer(RightArrow|LeftArrow))|T|e(ss(Greater|SlantEqual|Tilde|EqualGreater|FullEqual|Less)|ft(Right(Vector|Arrow)|Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|rightarrow|Floor|A(ngleBracket|rrow(RightArrow|Bar)?)))|Jcy|fr|l(eftarrow)?|a(ng|cute|placetrf|rr|mbda)|midot))|(M(scr|cy|inusPlus|opf|u|e(diumSpace|llintrf)|fr|ap)|m(s(cr|tpos)|ho|nplus|c(y|omma)|i(nus(d(u)?|b)?|cro|d(cir|dot|ast)?)|o(dels|pf)|dash|u(ltimap|map)?|p|easuredangle|DDot|fr|l(cp|dr)|a(cr|p(sto(down|up|left)?)?|l(t(ese)?|e)|rker)))|(n(s(hort(parallel|mid)|c(cue|e|r)?|im(e(q)?)?|u(cc(eq)?|p(set(eq(q)?)?|e|E)?|b(set(eq(q)?)?|e|E)?)|par|qsu(pe|be)|mid)|Rightarrow|h(par|arr|Arr)|G(t(v)?|g)|c(y|ong(dot)?|up|edil|a(p|ron))|t(ilde|lg|riangle(left(eq)?|right(eq)?)|gl)|i(s(d)?|v)?|o(t(ni(v(c|a|b))?|in(dot|v(c|a|b)|E)?)?|pf)|dash|u(m(sp|ero)?)?|jcy|p(olint|ar(sl|t|allel)?|r(cue|e(c(eq)?)?)?)|e(s(im|ear)|dot|quiv|ar(hk|r(ow)?)|xist(s)?|Arr)?|v(sim|infin|Harr|dash|Dash|l(t(rie)?|e|Arr)|ap|r(trie|Arr)|g(t|e))|fr|w(near|ar(hk|r(ow)?)|Arr)|V(dash|Dash)|l(sim|t(ri(e)?)?|dr|e(s(s)?|q(slant|q)?|ft(arrow|rightarrow))?|E|arr|Arr)|a(ng|cute|tur(al(s)?)?|p(id|os|prox|E)?|bla)|r(tri(e)?|ightarrow|arr(c|w)?|Arr)|g(sim|t(r)?|e(s|q(slant|q)?)?|E)|mid|L(t(v)?|eft(arrow|rightarrow)|l)|b(sp|ump(e)?))|N(scr|c(y|edil|aron)|tilde|o(nBreakingSpace|Break|t(R(ightTriangle(Bar|Equal)?|everseElement)|Greater(Greater|SlantEqual|Tilde|Equal|FullEqual|Less)?|S(u(cceeds(SlantEqual|Tilde|Equal)?|perset(Equal)?|bset(Equal)?)|quareSu(perset(Equal)?|bset(Equal)?))|Hump(DownHump|Equal)|Nested(GreaterGreater|LessLess)|C(ongruent|upCap)|Tilde(Tilde|Equal|FullEqual)?|DoubleVerticalBar|Precedes(SlantEqual|Equal)?|E(qual(Tilde)?|lement|xists)|VerticalBar|Le(ss(Greater|SlantEqual|Tilde|Equal|Less)?|ftTriangle(Bar|Equal)?))?|pf)|u|e(sted(GreaterGreater|LessLess)|wLine|gative(MediumSpace|Thi(nSpace|ckSpace)|VeryThinSpace))|Jcy|fr|acute))|(o(s(cr|ol|lash)|h(m|bar)|c(y|ir(c)?)|ti(lde|mes(as)?)|S|int|opf|d(sold|iv|ot|ash|blac)|uml|p(erp|lus|ar)|elig|vbar|f(cir|r)|l(c(ir|ross)|t|ine|arr)|a(st|cute)|r(slope|igof|or|d(er(of)?|f|m)?|v|arr)?|g(t|on|rave)|m(i(nus|cron|d)|ega|acr))|O(s(cr|lash)|c(y|irc)|ti(lde|mes)|opf|dblac|uml|penCurly(DoubleQuote|Quote)|ver(B(ar|rac(e|ket))|Parenthesis)|fr|Elig|acute|r|grave|m(icron|ega|acr)))|(p(s(cr|i)|h(i(v)?|one|mmat)|cy|i(tchfork|v)?|o(intint|und|pf)|uncsp|er(cnt|tenk|iod|p|mil)|fr|l(us(sim|cir|two|d(o|u)|e|acir|mn|b)?|an(ck(h)?|kv))|ar(s(im|l)|t|a(llel)?)?|r(sim|n(sim|E|ap)|cue|ime(s)?|o(d|p(to)?|f(surf|line|alar))|urel|e(c(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?)?|E|ap)?|m)|P(s(cr|i)|hi|cy|i|o(incareplane|pf)|fr|lusMinus|artialD|r(ime|o(duct|portion(al)?)|ecedes(SlantEqual|Tilde|Equal)?)?))|(q(scr|int|opf|u(ot|est(eq)?|at(int|ernions))|prime|fr)|Q(scr|opf|UOT|fr))|(R(s(h|cr)|ho|c(y|edil|aron)|Barr|ight(Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|Floor|A(ngleBracket|rrow(Bar|LeftArrow)?))|o(undImplies|pf)|uleDelayed|e(verse(UpEquilibrium|E(quilibrium|lement)))?|fr|EG|a(ng|cute|rr(tl)?)|rightarrow)|r(s(h|cr|q(uo(r)?|b)|aquo)|h(o(v)?|ar(d|u(l)?))|nmid|c(y|ub|e(il|dil)|aron)|Barr|t(hree|imes|ri(e|f|ltri)?)|i(singdotseq|ng|ght(squigarrow|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(tail)?|rightarrows))|Har|o(times|p(f|lus|ar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|ldhar)|uluhar|p(polint|ar(gt)?)|e(ct|al(s|ine|part)?|g)|f(isht|loor|r)|l(har|arr|m)|a(ng(d|e|le)?|c(ute|e)|t(io(nals)?|ail)|dic|emptyv|quo|rr(sim|hk|c|tl|pl|fs|w|lp|ap|b(fs)?)?)|rarr|x|moust(ache)?|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr)))|(s(s(cr|tarf|etmn|mile)|h(y|c(hcy|y)|ort(parallel|mid)|arp)|c(sim|y|n(sim|E|ap)|cue|irc|polint|e(dil)?|E|a(p|ron))?|t(ar(f)?|r(ns|aight(phi|epsilon)))|i(gma(v|f)?|m(ne|dot|plus|e(q)?|l(E)?|rarr|g(E)?)?)|zlig|o(pf|ftcy|l(b(ar)?)?)|dot(e|b)?|u(ng|cc(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?|p(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|hs(ol|ub)|1|n(e|E)|2|d(sub|ot)|3|plus|e(dot)?|E|larr|mult)?|m|b(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|n(e|E)|dot|plus|e(dot)?|E|rarr|mult)?)|pa(des(uit)?|r)|e(swar|ct|tm(n|inus)|ar(hk|r(ow)?)|xt|mi|Arr)|q(su(p(set(eq)?|e)?|b(set(eq)?|e)?)|c(up(s)?|ap(s)?)|u(f|ar(e|f))?)|fr(own)?|w(nwar|ar(hk|r(ow)?)|Arr)|larr|acute|rarr|m(t(e(s)?)?|i(d|le)|eparsl|a(shp|llsetminus))|bquo)|S(scr|hort(RightArrow|DownArrow|UpArrow|LeftArrow)|c(y|irc|edil|aron)?|tar|igma|H(cy|CHcy)|opf|u(c(hThat|ceeds(SlantEqual|Tilde|Equal)?)|p(set|erset(Equal)?)?|m|b(set(Equal)?)?)|OFTcy|q(uare(Su(perset(Equal)?|bset(Equal)?)|Intersection|Union)?|rt)|fr|acute|mallCircle))|(t(s(hcy|c(y|r)|trok)|h(i(nsp|ck(sim|approx))|orn|e(ta(sym|v)?|re(4|fore))|k(sim|ap))|c(y|edil|aron)|i(nt|lde|mes(d|b(ar)?)?)|o(sa|p(cir|f(ork)?|bot)?|ea)|dot|prime|elrec|fr|w(ixt|ohead(leftarrow|rightarrow))|a(u|rget)|r(i(sb|time|dot|plus|e|angle(down|q|left(eq)?|right(eq)?)?|minus)|pezium|ade)|brk)|T(s(cr|trok)|RADE|h(i(nSpace|ckSpace)|e(ta|refore))|c(y|edil|aron)|S(cy|Hcy)|ilde(Tilde|Equal|FullEqual)?|HORN|opf|fr|a(u|b)|ripleDot))|(u(scr|h(ar(l|r)|blk)|c(y|irc)|t(ilde|dot|ri(f)?)|Har|o(pf|gon)|d(har|arr|blac)|u(arr|ml)|p(si(h|lon)?|harpoon(left|right)|downarrow|uparrows|lus|arrow)|f(isht|r)|wangle|l(c(orn(er)?|rop)|tri)|a(cute|rr)|r(c(orn(er)?|rop)|tri|ing)|grave|m(l|acr)|br(cy|eve)|Arr)|U(scr|n(ion(Plus)?|der(B(ar|rac(e|ket))|Parenthesis))|c(y|irc)|tilde|o(pf|gon)|dblac|uml|p(si(lon)?|downarrow|Tee(Arrow)?|per(RightArrow|LeftArrow)|DownArrow|Equilibrium|arrow|Arrow(Bar|DownArrow)?)|fr|a(cute|rr(ocir)?)|ring|grave|macr|br(cy|eve)))|(v(s(cr|u(pn(e|E)|bn(e|E)))|nsu(p|b)|cy|Bar(v)?|zigzag|opf|dash|prop|e(e(eq|bar)?|llip|r(t|bar))|Dash|fr|ltri|a(ngrt|r(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|t(heta|riangle(left|right))|p(hi|i|ropto)|epsilon|kappa|r(ho)?))|rtri|Arr)|V(scr|cy|opf|dash(l)?|e(e|r(yThinSpace|t(ical(Bar|Separator|Tilde|Line))?|bar))|Dash|vdash|fr|bar))|(w(scr|circ|opf|p|e(ierp|d(ge(q)?|bar))|fr|r(eath)?)|W(scr|circ|opf|edge|fr))|(X(scr|i|opf|fr)|x(s(cr|qcup)|h(arr|Arr)|nis|c(irc|up|ap)|i|o(time|dot|p(f|lus))|dtri|u(tri|plus)|vee|fr|wedge|l(arr|Arr)|r(arr|Arr)|map))|(y(scr|c(y|irc)|icy|opf|u(cy|ml)|en|fr|ac(y|ute))|Y(scr|c(y|irc)|opf|uml|Icy|Ucy|fr|acute|Acy))|(z(scr|hcy|c(y|aron)|igrarr|opf|dot|e(ta|etrf)|fr|w(nj|j)|acute)|Z(scr|c(y|aron)|Hcy|opf|dot|e(ta|roWidthSpace)|fr|acute)))(;)\",\"name\":\"constant.character.entity.named.$2.html\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.html\"},\"3\":{\"name\":\"punctuation.definition.entity.html\"}},\"match\":\"(&)#[0-9]+(;)\",\"name\":\"constant.character.entity.numeric.decimal.html\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.html\"},\"3\":{\"name\":\"punctuation.definition.entity.html\"}},\"match\":\"(&)#[xX][0-9a-fA-F]+(;)\",\"name\":\"constant.character.entity.numeric.hexadecimal.html\"},{\"match\":\"&(?=[a-zA-Z0-9]+;)\",\"name\":\"invalid.illegal.ambiguous-ampersand.html\"}]},\"math\":{\"patterns\":[{\"begin\":\"(?i)(<)(math)(?=\\\\\\\\s|/?>)(?:(([^\\\\\"'>]|\\\\\"[^\\\\\"]*\\\\\"|'[^']*')*)(>))?\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.structure.$2.start.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"patterns\":[{\"include\":\"#attribute\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"end\":\"(?i)(</)(\\\\\\\\2)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.structure.$2.end.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.element.structure.$2.html\",\"patterns\":[{\"begin\":\"(?<!>)\\\\\\\\G\",\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.structure.start.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"include\":\"#tags\"}]}],\"repository\":{\"attribute\":{\"patterns\":[{\"begin\":\"(s(hift|ymmetric|cript(sizemultiplier|level|minsize)|t(ackalign|retchy)|ide|u(pscriptshift|bscriptshift)|e(parator(s)?|lection)|rc)|h(eight|ref)|n(otation|umalign)|c(haralign|olumn(spa(n|cing)|width|lines|align)|lose|rossout)|i(n(dent(shift(first|last)?|target|align(first|last)?)|fixlinebreakstyle)|d)|o(pen|verflow)|d(i(splay(style)?|r)|e(nomalign|cimalpoint|pth))|position|e(dge|qual(columns|rows))|voffset|f(orm|ence|rame(spacing)?)|width|l(space|ine(thickness|leading|break(style|multchar)?)|o(ngdivstyle|cation)|ength|quote|argeop)|a(c(cent(under)?|tiontype)|l(t(text|img(-(height|valign|width))?)|ign(mentscope)?))|r(space|ow(spa(n|cing)|lines|align)|quote)|groupalign|x(link:href|mlns)|m(in(size|labelspacing)|ovablelimits|a(th(size|color|variant|background)|xsize))|bevelled)(?![\\\\\\\\w:-])\",\"beginCaptures\":{\"0\":{\"name\":\"entity.other.attribute-name.html\"}},\"end\":\"(?=\\\\\\\\s*+[^=\\\\\\\\s])\",\"name\":\"meta.attribute.$1.html\",\"patterns\":[{\"include\":\"#attribute-interior\"}]},{\"begin\":\"([^\\\\\\\\x{0020}\\\\\"'<>/=\\\\\\\\x{0000}-\\\\\\\\x{001F}\\\\\\\\x{007F}-\\\\\\\\x{009F}\\\\\\\\x{FDD0}-\\\\\\\\x{FDEF}\\\\\\\\x{FFFE}\\\\\\\\x{FFFF}\\\\\\\\x{1FFFE}\\\\\\\\x{1FFFF}\\\\\\\\x{2FFFE}\\\\\\\\x{2FFFF}\\\\\\\\x{3FFFE}\\\\\\\\x{3FFFF}\\\\\\\\x{4FFFE}\\\\\\\\x{4FFFF}\\\\\\\\x{5FFFE}\\\\\\\\x{5FFFF}\\\\\\\\x{6FFFE}\\\\\\\\x{6FFFF}\\\\\\\\x{7FFFE}\\\\\\\\x{7FFFF}\\\\\\\\x{8FFFE}\\\\\\\\x{8FFFF}\\\\\\\\x{9FFFE}\\\\\\\\x{9FFFF}\\\\\\\\x{AFFFE}\\\\\\\\x{AFFFF}\\\\\\\\x{BFFFE}\\\\\\\\x{BFFFF}\\\\\\\\x{CFFFE}\\\\\\\\x{CFFFF}\\\\\\\\x{DFFFE}\\\\\\\\x{DFFFF}\\\\\\\\x{EFFFE}\\\\\\\\x{EFFFF}\\\\\\\\x{FFFFE}\\\\\\\\x{FFFFF}\\\\\\\\x{10FFFE}\\\\\\\\x{10FFFF}]+)\",\"beginCaptures\":{\"0\":{\"name\":\"entity.other.attribute-name.html\"}},\"comment\":\"Anything else that is valid\",\"end\":\"(?=\\\\\\\\s*+[^=\\\\\\\\s])\",\"name\":\"meta.attribute.unrecognized.$1.html\",\"patterns\":[{\"include\":\"#attribute-interior\"}]},{\"match\":\"[^\\\\\\\\s>]+\",\"name\":\"invalid.illegal.character-not-allowed-here.html\"}]},\"tags\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#cdata\"},{\"captures\":{\"0\":{\"name\":\"meta.tag.structure.math.$2.void.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"patterns\":[{\"include\":\"#attribute\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"match\":\"(?i)(<)(annotation|annotation-xml|semantics|menclose|merror|mfenced|mfrac|mpadded|mphantom|mroot|mrow|msqrt|mstyle|mmultiscripts|mover|mprescripts|msub|msubsup|msup|munder|munderover|none|mlabeledtr|mtable|mtd|mtr|mlongdiv|mscarries|mscarry|msgroup|msline|msrow|mstack|maction)(?=\\\\\\\\s|/?>)(?:(([^\\\\\"'>]|\\\\\"[^\\\\\"]*\\\\\"|'[^']*')*)(/>))\",\"name\":\"meta.element.structure.math.$2.html\"},{\"begin\":\"(?i)(<)(annotation|annotation-xml|semantics|menclose|merror|mfenced|mfrac|mpadded|mphantom|mroot|mrow|msqrt|mstyle|mmultiscripts|mover|mprescripts|msub|msubsup|msup|munder|munderover|none|mlabeledtr|mtable|mtd|mtr|mlongdiv|mscarries|mscarry|msgroup|msline|msrow|mstack|maction)(?=\\\\\\\\s|/?>)(?:(([^\\\\\"'>]|\\\\\"[^\\\\\"]*\\\\\"|'[^']*')*)(>))?\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.structure.math.$2.start.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"patterns\":[{\"include\":\"#attribute\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"end\":\"(?i)(</)(\\\\\\\\2)\\\\\\\\s*(>)|(/>)|(?=</\\\\\\\\w+)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.structure.math.$2.end.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"punctuation.definition.tag.end.html\"},\"4\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.element.structure.math.$2.html\",\"patterns\":[{\"begin\":\"(?<!>)\\\\\\\\G\",\"end\":\"(?=/>)|>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.structure.start.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"include\":\"#tags\"}]},{\"captures\":{\"0\":{\"name\":\"meta.tag.inline.math.$2.void.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"patterns\":[{\"include\":\"#attribute\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"match\":\"(?i)(<)(mi|mn|mo|ms|mspace|mtext|maligngroup|malignmark)(?=\\\\\\\\s|/?>)(?:(([^\\\\\"'>]|\\\\\"[^\\\\\"]*\\\\\"|'[^']*')*)(/>))\",\"name\":\"meta.element.inline.math.$2.html\"},{\"begin\":\"(?i)(<)(mi|mn|mo|ms|mspace|mtext|maligngroup|malignmark)(?=\\\\\\\\s|/?>)(?:(([^\\\\\"'>]|\\\\\"[^\\\\\"]*\\\\\"|'[^']*')*)(>))?\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.inline.math.$2.start.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"patterns\":[{\"include\":\"#attribute\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"end\":\"(?i)(</)(\\\\\\\\2)\\\\\\\\s*(>)|(/>)|(?=</\\\\\\\\w+)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.inline.math.$2.end.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"punctuation.definition.tag.end.html\"},\"4\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.element.inline.math.$2.html\",\"patterns\":[{\"begin\":\"(?<!>)\\\\\\\\G\",\"end\":\"(?=/>)|>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.inline.start.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"include\":\"#tags\"}]},{\"captures\":{\"0\":{\"name\":\"meta.tag.object.math.$2.void.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"patterns\":[{\"include\":\"#attribute\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"match\":\"(?i)(<)(mglyph)(?=\\\\\\\\s|/?>)(?:(([^\\\\\"'>]|\\\\\"[^\\\\\"]*\\\\\"|'[^']*')*)(/>))\",\"name\":\"meta.element.object.math.$2.html\"},{\"begin\":\"(?i)(<)(mglyph)(?=\\\\\\\\s|/?>)(?:(([^\\\\\"'>]|\\\\\"[^\\\\\"]*\\\\\"|'[^']*')*)(>))?\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.object.math.$2.start.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"patterns\":[{\"include\":\"#attribute\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"end\":\"(?i)(</)(\\\\\\\\2)\\\\\\\\s*(>)|(/>)|(?=</\\\\\\\\w+)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.object.math.$2.end.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"punctuation.definition.tag.end.html\"},\"4\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.element.object.math.$2.html\",\"patterns\":[{\"begin\":\"(?<!>)\\\\\\\\G\",\"end\":\"(?=/>)|>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.object.start.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"include\":\"#tags\"}]},{\"captures\":{\"0\":{\"name\":\"meta.tag.other.invalid.void.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"invalid.illegal.unrecognized-tag.html\"},\"4\":{\"patterns\":[{\"include\":\"#attribute\"}]},\"6\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"match\":\"(?i)(<)(([\\\\\\\\w:]+))(?=\\\\\\\\s|/?>)(?:(([^\\\\\"'>]|\\\\\"[^\\\\\"]*\\\\\"|'[^']*')*)(/>))\",\"name\":\"meta.element.other.invalid.html\"},{\"begin\":\"(?i)(<)((\\\\\\\\w[^\\\\\\\\s>]*))(?=\\\\\\\\s|/?>)(?:(([^\\\\\"'>]|\\\\\"[^\\\\\"]*\\\\\"|'[^']*')*)(>))?\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.other.invalid.start.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"invalid.illegal.unrecognized-tag.html\"},\"4\":{\"patterns\":[{\"include\":\"#attribute\"}]},\"6\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"end\":\"(?i)(</)((\\\\\\\\2))\\\\\\\\s*(>)|(/>)|(?=</\\\\\\\\w+)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.other.invalid.end.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"invalid.illegal.unrecognized-tag.html\"},\"4\":{\"name\":\"punctuation.definition.tag.end.html\"},\"5\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.element.other.invalid.html\",\"patterns\":[{\"begin\":\"(?<!>)\\\\\\\\G\",\"end\":\"(?=/>)|>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.other.invalid.start.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"include\":\"#tags\"}]},{\"include\":\"#tags-invalid\"}]}}},\"svg\":{\"patterns\":[{\"begin\":\"(?i)(<)(svg)(?=\\\\\\\\s|/?>)(?:(([^\\\\\"'>]|\\\\\"[^\\\\\"]*\\\\\"|'[^']*')*)(>))?\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.structure.$2.start.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"patterns\":[{\"include\":\"#attribute\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"end\":\"(?i)(</)(\\\\\\\\2)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.structure.$2.end.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.element.structure.$2.html\",\"patterns\":[{\"begin\":\"(?<!>)\\\\\\\\G\",\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.structure.start.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"include\":\"#tags\"}]}],\"repository\":{\"attribute\":{\"patterns\":[{\"begin\":\"(s(hape-rendering|ystemLanguage|cale|t(yle|itchTiles|op-(color|opacity)|dDeviation|em(h|v)|artOffset|r(i(ng|kethrough-(thickness|position))|oke(-(opacity|dash(offset|array)|width|line(cap|join)|miterlimit))?))|urfaceScale|p(e(cular(Constant|Exponent)|ed)|acing|readMethod)|eed|lope)|h(oriz-(origin-x|adv-x)|eight|anging|ref(lang)?)|y(1|2|ChannelSelector)?|n(umOctaves|ame)|c(y|o(ntentS(criptType|tyleType)|lor(-(interpolation(-filters)?|profile|rendering))?)|ursor|l(ip(-(path|rule)|PathUnits)?|ass)|a(p-height|lcMode)|x)|t(ype|o|ext(-(decoration|anchor|rendering)|Length)|a(rget(X|Y)?|b(index|leValues))|ransform)|i(n(tercept|2)?|d(eographic)?|mage-rendering)|z(oomAndPan)?|o(p(erator|acity)|ver(flow|line-(thickness|position))|ffset|r(i(ent(ation)?|gin)|der))|d(y|i(splay|visor|ffuseConstant|rection)|ominant-baseline|ur|e(scent|celerate)|x)?|u(1|n(i(code(-(range|bidi))?|ts-per-em)|derline-(thickness|position))|2)|p(ing|oint(s(At(X|Y|Z))?|er-events)|a(nose-1|t(h(Length)?|tern(ContentUnits|Transform|Units))|int-order)|r(imitiveUnits|eserveA(spectRatio|lpha)))|e(n(d|able-background)|dgeMode|levation|x(ternalResourcesRequired|ponent))|v(i(sibility|ew(Box|Target))|-(hanging|ideographic|alphabetic|mathematical)|e(ctor-effect|r(sion|t-(origin-(y|x)|adv-y)))|alues)|k(1|2|3|e(y(Splines|Times|Points)|rn(ing|el(Matrix|UnitLength)))|4)?|f(y|il(ter(Res|Units)?|l(-(opacity|rule))?)|o(nt-(s(t(yle|retch)|ize(-adjust)?)|variant|family|weight)|rmat)|lood-(color|opacity)|r(om)?|x)|w(idth(s)?|ord-spacing|riting-mode)|l(i(ghting-color|mitingConeAngle)|ocal|e(ngthAdjust|tter-spacing)|ang)|a(scent|cc(umulate|ent-height)|ttribute(Name|Type)|zimuth|dditive|utoReverse|l(ignment-baseline|phabetic|lowReorder)|rabic-form|mplitude)|r(y|otate|e(s(tart|ult)|ndering-intent|peat(Count|Dur)|quired(Extensions|Features)|f(X|Y|errerPolicy)|l)|adius|x)?|g(1|2|lyph(Ref|-(name|orientation-(horizontal|vertical)))|radient(Transform|Units))|x(1|2|ChannelSelector|-height|link:(show|href|t(ype|itle)|a(ctuate|rcrole)|role)|ml:(space|lang|base))?|m(in|ode|e(thod|dia)|a(sk(ContentUnits|Units)?|thematical|rker(Height|-(start|end|mid)|Units|Width)|x))|b(y|ias|egin|ase(Profile|line-shift|Frequency)|box))(?![\\\\\\\\w:-])\",\"beginCaptures\":{\"0\":{\"name\":\"entity.other.attribute-name.html\"}},\"end\":\"(?=\\\\\\\\s*+[^=\\\\\\\\s])\",\"name\":\"meta.attribute.$1.html\",\"patterns\":[{\"include\":\"#attribute-interior\"}]},{\"begin\":\"([^\\\\\\\\x{0020}\\\\\"'<>/=\\\\\\\\x{0000}-\\\\\\\\x{001F}\\\\\\\\x{007F}-\\\\\\\\x{009F}\\\\\\\\x{FDD0}-\\\\\\\\x{FDEF}\\\\\\\\x{FFFE}\\\\\\\\x{FFFF}\\\\\\\\x{1FFFE}\\\\\\\\x{1FFFF}\\\\\\\\x{2FFFE}\\\\\\\\x{2FFFF}\\\\\\\\x{3FFFE}\\\\\\\\x{3FFFF}\\\\\\\\x{4FFFE}\\\\\\\\x{4FFFF}\\\\\\\\x{5FFFE}\\\\\\\\x{5FFFF}\\\\\\\\x{6FFFE}\\\\\\\\x{6FFFF}\\\\\\\\x{7FFFE}\\\\\\\\x{7FFFF}\\\\\\\\x{8FFFE}\\\\\\\\x{8FFFF}\\\\\\\\x{9FFFE}\\\\\\\\x{9FFFF}\\\\\\\\x{AFFFE}\\\\\\\\x{AFFFF}\\\\\\\\x{BFFFE}\\\\\\\\x{BFFFF}\\\\\\\\x{CFFFE}\\\\\\\\x{CFFFF}\\\\\\\\x{DFFFE}\\\\\\\\x{DFFFF}\\\\\\\\x{EFFFE}\\\\\\\\x{EFFFF}\\\\\\\\x{FFFFE}\\\\\\\\x{FFFFF}\\\\\\\\x{10FFFE}\\\\\\\\x{10FFFF}]+)\",\"beginCaptures\":{\"0\":{\"name\":\"entity.other.attribute-name.html\"}},\"comment\":\"Anything else that is valid\",\"end\":\"(?=\\\\\\\\s*+[^=\\\\\\\\s])\",\"name\":\"meta.attribute.unrecognized.$1.html\",\"patterns\":[{\"include\":\"#attribute-interior\"}]},{\"match\":\"[^\\\\\\\\s>]+\",\"name\":\"invalid.illegal.character-not-allowed-here.html\"}]},\"tags\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#cdata\"},{\"captures\":{\"0\":{\"name\":\"meta.tag.metadata.svg.$2.void.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"patterns\":[{\"include\":\"#attribute\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"match\":\"(?i)(<)(color-profile|desc|metadata|script|style|title)(?=\\\\\\\\s|/?>)(?:(([^\\\\\"'>]|\\\\\"[^\\\\\"]*\\\\\"|'[^']*')*)(/>))\",\"name\":\"meta.element.metadata.svg.$2.html\"},{\"begin\":\"(?i)(<)(color-profile|desc|metadata|script|style|title)(?=\\\\\\\\s|/?>)(?:(([^\\\\\"'>]|\\\\\"[^\\\\\"]*\\\\\"|'[^']*')*)(>))?\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.svg.$2.start.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"patterns\":[{\"include\":\"#attribute\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"end\":\"(?i)(</)(\\\\\\\\2)\\\\\\\\s*(>)|(/>)|(?=</\\\\\\\\w+)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.svg.$2.end.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"punctuation.definition.tag.end.html\"},\"4\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.element.metadata.svg.$2.html\",\"patterns\":[{\"begin\":\"(?<!>)\\\\\\\\G\",\"end\":\"(?=/>)|>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.metadata.start.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"include\":\"#tags\"}]},{\"captures\":{\"0\":{\"name\":\"meta.tag.structure.svg.$2.void.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"patterns\":[{\"include\":\"#attribute\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"match\":\"(?i)(<)(animateMotion|clipPath|defs|feComponentTransfer|feDiffuseLighting|feMerge|feSpecularLighting|filter|g|hatch|linearGradient|marker|mask|mesh|meshgradient|meshpatch|meshrow|pattern|radialGradient|switch|text|textPath)(?=\\\\\\\\s|/?>)(?:(([^\\\\\"'>]|\\\\\"[^\\\\\"]*\\\\\"|'[^']*')*)(/>))\",\"name\":\"meta.element.structure.svg.$2.html\"},{\"begin\":\"(?i)(<)(animateMotion|clipPath|defs|feComponentTransfer|feDiffuseLighting|feMerge|feSpecularLighting|filter|g|hatch|linearGradient|marker|mask|mesh|meshgradient|meshpatch|meshrow|pattern|radialGradient|switch|text|textPath)(?=\\\\\\\\s|/?>)(?:(([^\\\\\"'>]|\\\\\"[^\\\\\"]*\\\\\"|'[^']*')*)(>))?\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.structure.svg.$2.start.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"patterns\":[{\"include\":\"#attribute\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"end\":\"(?i)(</)(\\\\\\\\2)\\\\\\\\s*(>)|(/>)|(?=</\\\\\\\\w+)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.structure.svg.$2.end.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"punctuation.definition.tag.end.html\"},\"4\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.element.structure.svg.$2.html\",\"patterns\":[{\"begin\":\"(?<!>)\\\\\\\\G\",\"end\":\"(?=/>)|>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.structure.start.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"include\":\"#tags\"}]},{\"captures\":{\"0\":{\"name\":\"meta.tag.inline.svg.$2.void.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"patterns\":[{\"include\":\"#attribute\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"match\":\"(?i)(<)(a|animate|discard|feBlend|feColorMatrix|feComposite|feConvolveMatrix|feDisplacementMap|feDistantLight|feDropShadow|feFlood|feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur|feMergeNode|feMorphology|feOffset|fePointLight|feSpotLight|feTile|feTurbulence|hatchPath|mpath|set|solidcolor|stop|tspan)(?=\\\\\\\\s|/?>)(?:(([^\\\\\"'>]|\\\\\"[^\\\\\"]*\\\\\"|'[^']*')*)(/>))\",\"name\":\"meta.element.inline.svg.$2.html\"},{\"begin\":\"(?i)(<)(a|animate|discard|feBlend|feColorMatrix|feComposite|feConvolveMatrix|feDisplacementMap|feDistantLight|feDropShadow|feFlood|feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur|feMergeNode|feMorphology|feOffset|fePointLight|feSpotLight|feTile|feTurbulence|hatchPath|mpath|set|solidcolor|stop|tspan)(?=\\\\\\\\s|/?>)(?:(([^\\\\\"'>]|\\\\\"[^\\\\\"]*\\\\\"|'[^']*')*)(>))?\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.inline.svg.$2.start.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"patterns\":[{\"include\":\"#attribute\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"end\":\"(?i)(</)(\\\\\\\\2)\\\\\\\\s*(>)|(/>)|(?=</\\\\\\\\w+)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.inline.svg.$2.end.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"punctuation.definition.tag.end.html\"},\"4\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.element.inline.svg.$2.html\",\"patterns\":[{\"begin\":\"(?<!>)\\\\\\\\G\",\"end\":\"(?=/>)|>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.inline.start.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"include\":\"#tags\"}]},{\"captures\":{\"0\":{\"name\":\"meta.tag.object.svg.$2.void.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"patterns\":[{\"include\":\"#attribute\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"match\":\"(?i)(<)(circle|ellipse|feImage|foreignObject|image|line|path|polygon|polyline|rect|symbol|use|view)(?=\\\\\\\\s|/?>)(?:(([^\\\\\"'>]|\\\\\"[^\\\\\"]*\\\\\"|'[^']*')*)(/>))\",\"name\":\"meta.element.object.svg.$2.html\"},{\"begin\":\"(?i)(<)(a|circle|ellipse|feImage|foreignObject|image|line|path|polygon|polyline|rect|symbol|use|view)(?=\\\\\\\\s|/?>)(?:(([^\\\\\"'>]|\\\\\"[^\\\\\"]*\\\\\"|'[^']*')*)(>))?\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.object.svg.$2.start.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"patterns\":[{\"include\":\"#attribute\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"end\":\"(?i)(</)(\\\\\\\\2)\\\\\\\\s*(>)|(/>)|(?=</\\\\\\\\w+)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.object.svg.$2.end.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"punctuation.definition.tag.end.html\"},\"4\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.element.object.svg.$2.html\",\"patterns\":[{\"begin\":\"(?<!>)\\\\\\\\G\",\"end\":\"(?=/>)|>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.object.start.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"include\":\"#tags\"}]},{\"captures\":{\"0\":{\"name\":\"meta.tag.other.svg.$2.void.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"invalid.deprecated.html\"},\"4\":{\"patterns\":[{\"include\":\"#attribute\"}]},\"6\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"match\":\"(?i)(<)((altGlyph|altGlyphDef|altGlyphItem|animateColor|animateTransform|cursor|font|font-face|font-face-format|font-face-name|font-face-src|font-face-uri|glyph|glyphRef|hkern|missing-glyph|tref|vkern))(?=\\\\\\\\s|/?>)(?:(([^\\\\\"'>]|\\\\\"[^\\\\\"]*\\\\\"|'[^']*')*)(/>))\",\"name\":\"meta.element.other.svg.$2.html\"},{\"begin\":\"(?i)(<)((altGlyph|altGlyphDef|altGlyphItem|animateColor|animateTransform|cursor|font|font-face|font-face-format|font-face-name|font-face-src|font-face-uri|glyph|glyphRef|hkern|missing-glyph|tref|vkern))(?=\\\\\\\\s|/?>)(?:(([^\\\\\"'>]|\\\\\"[^\\\\\"]*\\\\\"|'[^']*')*)(>))?\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.other.svg.$2.start.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"invalid.deprecated.html\"},\"4\":{\"patterns\":[{\"include\":\"#attribute\"}]},\"6\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"end\":\"(?i)(</)((\\\\\\\\2))\\\\\\\\s*(>)|(/>)|(?=</\\\\\\\\w+)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.other.svg.$2.end.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"invalid.deprecated.html\"},\"4\":{\"name\":\"punctuation.definition.tag.end.html\"},\"5\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.element.other.svg.$2.html\",\"patterns\":[{\"begin\":\"(?<!>)\\\\\\\\G\",\"end\":\"(?=/>)|>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.other.start.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"include\":\"#tags\"}]},{\"captures\":{\"0\":{\"name\":\"meta.tag.other.invalid.void.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"invalid.illegal.unrecognized-tag.html\"},\"4\":{\"patterns\":[{\"include\":\"#attribute\"}]},\"6\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"match\":\"(?i)(<)(([\\\\\\\\w:]+))(?=\\\\\\\\s|/?>)(?:(([^\\\\\"'>]|\\\\\"[^\\\\\"]*\\\\\"|'[^']*')*)(/>))\",\"name\":\"meta.element.other.invalid.html\"},{\"begin\":\"(?i)(<)((\\\\\\\\w[^\\\\\\\\s>]*))(?=\\\\\\\\s|/?>)(?:(([^\\\\\"'>]|\\\\\"[^\\\\\"]*\\\\\"|'[^']*')*)(>))?\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.other.invalid.start.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"invalid.illegal.unrecognized-tag.html\"},\"4\":{\"patterns\":[{\"include\":\"#attribute\"}]},\"6\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"end\":\"(?i)(</)((\\\\\\\\2))\\\\\\\\s*(>)|(/>)|(?=</\\\\\\\\w+)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.other.invalid.end.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"invalid.illegal.unrecognized-tag.html\"},\"4\":{\"name\":\"punctuation.definition.tag.end.html\"},\"5\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.element.other.invalid.html\",\"patterns\":[{\"begin\":\"(?<!>)\\\\\\\\G\",\"end\":\"(?=/>)|>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.other.invalid.start.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"include\":\"#tags\"}]},{\"include\":\"#tags-invalid\"}]}}},\"tags-invalid\":{\"patterns\":[{\"begin\":\"(</?)((\\\\\\\\w[^\\\\\\\\s>]*))(?<!/)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"invalid.illegal.unrecognized-tag.html\"}},\"end\":\"((?: ?/)?>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.other.$2.html\",\"patterns\":[{\"include\":\"#attribute\"}]}]},\"tags-valid\":{\"patterns\":[{\"begin\":\"(^[ \\\\\\\\t]+)?(?=<(?i:style)\\\\\\\\b(?!-))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.embedded.leading.html\"}},\"end\":\"(?!\\\\\\\\G)([ \\\\\\\\t]*$\\\\\\\\n?)?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.embedded.trailing.html\"}},\"patterns\":[{\"begin\":\"(?i)(<)(style)(?=\\\\\\\\s|/?>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.style.start.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"}},\"end\":\"(?i)((<)/)(style)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.style.end.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"source.css-ignored-vscode\"},\"3\":{\"name\":\"entity.name.tag.html\"},\"4\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.embedded.block.html\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"end\":\"(>)\",\"name\":\"meta.tag.metadata.style.start.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"begin\":\"(?!\\\\\\\\G)\",\"end\":\"(?=</(?i:style))\",\"name\":\"source.css\",\"patterns\":[{\"include\":\"source.css\"}]}]}]},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=<(?i:script)\\\\\\\\b(?!-))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.embedded.leading.html\"}},\"end\":\"(?!\\\\\\\\G)([ \\\\\\\\t]*$\\\\\\\\n?)?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.embedded.trailing.html\"}},\"patterns\":[{\"begin\":\"(<)((?i:script))\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.script.start.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"}},\"end\":\"(/)((?i:script))(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.script.end.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.embedded.block.html\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(?=/)\",\"patterns\":[{\"begin\":\"(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.script.start.html\"},\"1\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"end\":\"((<))(?=/(?i:script))\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.script.end.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"source.js-ignored-vscode\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(?=</(?i:script))\",\"name\":\"source.js\",\"patterns\":[{\"begin\":\"(^[ \\\\\\\\t]+)?(?=//)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.js\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.js\"}},\"end\":\"(?=<\\/script)|\\\\\\\\n\",\"name\":\"comment.line.double-slash.js\"}]},{\"begin\":\"/\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.js\"}},\"end\":\"\\\\\\\\*/|(?=<\\/script)\",\"name\":\"comment.block.js\"},{\"include\":\"source.js\"}]}]},{\"begin\":\"\\\\\\\\G\",\"end\":\"(?ix:\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t(?=>\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t# Tag without type attribute\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t  | type(?=[\\\\\\\\s=])\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t  \\\\t(?!\\\\\\\\s*=\\\\\\\\s*\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t(\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t''\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t# Empty\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t  | \\\\\"\\\\\"\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#   Values\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t  | ('|\\\\\"|)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t(\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\ttext/\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t# Text mime-types\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t(\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tjavascript(1\\\\\\\\.[0-5])?\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t  | x-javascript\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t  | jscript\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t  | livescript\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t  | (x-)?ecmascript\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t  | babel\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t# Javascript variant currently\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t  \\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t#   recognized as such\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t  \\\\t)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t  | application/\\\\t\\\\t\\\\t\\\\t\\\\t# Application mime-types\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t  \\\\t(\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t(x-)?javascript\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t  | (x-)?ecmascript\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t  | module\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t  \\\\t)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t[\\\\\\\\s\\\\\"'>]\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t)\",\"name\":\"meta.tag.metadata.script.start.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"begin\":\"(?ix:\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t(?=\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\ttype\\\\\\\\s*=\\\\\\\\s*\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t('|\\\\\"|)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\ttext/\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t(\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tx-handlebars\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t  | (x-(handlebars-)?|ng-)?template\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t  | html\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t[\\\\\\\\s\\\\\"'>]\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t)\",\"end\":\"((<))(?=/(?i:script))\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.script.end.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"text.html.basic\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.metadata.script.start.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"begin\":\"(?!\\\\\\\\G)\",\"end\":\"(?=</(?i:script))\",\"name\":\"text.html.basic\",\"patterns\":[{\"include\":\"text.html.basic\"}]}]},{\"begin\":\"(?=(?i:type))\",\"end\":\"(<)(?=/(?i:script))\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.script.end.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.metadata.script.start.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"begin\":\"(?!\\\\\\\\G)\",\"end\":\"(?=</(?i:script))\",\"name\":\"source.unknown\"}]}]}]}]},{\"begin\":\"(?i)(<)(base|link|meta)(?=\\\\\\\\s|/?>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"}},\"end\":\"/?>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.metadata.$2.void.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"begin\":\"(?i)(<)(noscript|title)(?=\\\\\\\\s|/?>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.metadata.$2.start.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"begin\":\"(?i)(</)(noscript|title)(?=\\\\\\\\s|/?>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.metadata.$2.end.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"begin\":\"(?i)(<)(col|hr|input)(?=\\\\\\\\s|/?>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"}},\"end\":\"/?>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.structure.$2.void.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"begin\":\"(?i)(<)(address|article|aside|blockquote|body|button|caption|colgroup|datalist|dd|details|dialog|div|dl|dt|fieldset|figcaption|figure|footer|form|head|header|hgroup|html|h[1-6]|label|legend|li|main|map|menu|meter|nav|ol|optgroup|option|output|p|pre|progress|section|select|slot|summary|table|tbody|td|template|textarea|tfoot|th|thead|tr|ul)(?=\\\\\\\\s|/?>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.structure.$2.start.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"begin\":\"(?i)(</)(address|article|aside|blockquote|body|button|caption|colgroup|datalist|dd|details|dialog|div|dl|dt|fieldset|figcaption|figure|footer|form|head|header|hgroup|html|h[1-6]|label|legend|li|main|map|menu|meter|nav|ol|optgroup|option|output|p|pre|progress|section|select|slot|summary|table|tbody|td|template|textarea|tfoot|th|thead|tr|ul)(?=\\\\\\\\s|/?>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.structure.$2.end.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"begin\":\"(?i)(<)(area|br|wbr)(?=\\\\\\\\s|/?>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"}},\"end\":\"/?>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.inline.$2.void.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"begin\":\"(?i)(<)(a|abbr|b|bdi|bdo|cite|code|data|del|dfn|em|i|ins|kbd|mark|q|rp|rt|ruby|s|samp|small|span|strong|sub|sup|time|u|var)(?=\\\\\\\\s|/?>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.inline.$2.start.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"begin\":\"(?i)(</)(a|abbr|b|bdi|bdo|cite|code|data|del|dfn|em|i|ins|kbd|mark|q|rp|rt|ruby|s|samp|small|span|strong|sub|sup|time|u|var)(?=\\\\\\\\s|/?>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.inline.$2.end.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"begin\":\"(?i)(<)(embed|img|param|source|track)(?=\\\\\\\\s|/?>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"}},\"end\":\"/?>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.object.$2.void.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"begin\":\"(?i)(<)(audio|canvas|iframe|object|picture|video)(?=\\\\\\\\s|/?>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.object.$2.start.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"begin\":\"(?i)(</)(audio|canvas|iframe|object|picture|video)(?=\\\\\\\\s|/?>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.object.$2.end.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"begin\":\"(?i)(<)((basefont|isindex))(?=\\\\\\\\s|/?>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"invalid.deprecated.html\"}},\"end\":\"/?>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.metadata.$2.void.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"begin\":\"(?i)(<)((center|frameset|noembed|noframes))(?=\\\\\\\\s|/?>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"invalid.deprecated.html\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.structure.$2.start.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"begin\":\"(?i)(</)((center|frameset|noembed|noframes))(?=\\\\\\\\s|/?>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"invalid.deprecated.html\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.structure.$2.end.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"begin\":\"(?i)(<)((acronym|big|blink|font|strike|tt|xmp))(?=\\\\\\\\s|/?>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"invalid.deprecated.html\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.inline.$2.start.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"begin\":\"(?i)(</)((acronym|big|blink|font|strike|tt|xmp))(?=\\\\\\\\s|/?>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"invalid.deprecated.html\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.inline.$2.end.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"begin\":\"(?i)(<)((frame))(?=\\\\\\\\s|/?>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"invalid.deprecated.html\"}},\"end\":\"/?>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.object.$2.void.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"begin\":\"(?i)(<)((applet))(?=\\\\\\\\s|/?>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"invalid.deprecated.html\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.object.$2.start.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"begin\":\"(?i)(</)((applet))(?=\\\\\\\\s|/?>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"invalid.deprecated.html\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.object.$2.end.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"begin\":\"(?i)(<)((dir|keygen|listing|menuitem|plaintext|spacer))(?=\\\\\\\\s|/?>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"invalid.illegal.no-longer-supported.html\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.other.$2.start.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"begin\":\"(?i)(</)((dir|keygen|listing|menuitem|plaintext|spacer))(?=\\\\\\\\s|/?>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"invalid.illegal.no-longer-supported.html\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.other.$2.end.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"include\":\"#math\"},{\"include\":\"#svg\"},{\"begin\":\"(<)([a-zA-Z][.0-9_a-zA-Z\\\\\\\\x{00B7}\\\\\\\\x{00C0}-\\\\\\\\x{00D6}\\\\\\\\x{00D8}-\\\\\\\\x{00F6}\\\\\\\\x{00F8}-\\\\\\\\x{037D}\\\\\\\\x{037F}-\\\\\\\\x{1FFF}\\\\\\\\x{200C}-\\\\\\\\x{200D}\\\\\\\\x{203F}-\\\\\\\\x{2040}\\\\\\\\x{2070}-\\\\\\\\x{218F}\\\\\\\\x{2C00}-\\\\\\\\x{2FEF}\\\\\\\\x{3001}-\\\\\\\\x{D7FF}\\\\\\\\x{F900}-\\\\\\\\x{FDCF}\\\\\\\\x{FDF0}-\\\\\\\\x{FFFD}\\\\\\\\x{10000}-\\\\\\\\x{EFFFF}]*-[\\\\\\\\-.0-9_a-zA-Z\\\\\\\\x{00B7}\\\\\\\\x{00C0}-\\\\\\\\x{00D6}\\\\\\\\x{00D8}-\\\\\\\\x{00F6}\\\\\\\\x{00F8}-\\\\\\\\x{037D}\\\\\\\\x{037F}-\\\\\\\\x{1FFF}\\\\\\\\x{200C}-\\\\\\\\x{200D}\\\\\\\\x{203F}-\\\\\\\\x{2040}\\\\\\\\x{2070}-\\\\\\\\x{218F}\\\\\\\\x{2C00}-\\\\\\\\x{2FEF}\\\\\\\\x{3001}-\\\\\\\\x{D7FF}\\\\\\\\x{F900}-\\\\\\\\x{FDCF}\\\\\\\\x{FDF0}-\\\\\\\\x{FFFD}\\\\\\\\x{10000}-\\\\\\\\x{EFFFF}]*)(?=\\\\\\\\s|/?>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"}},\"end\":\"/?>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.custom.start.html\",\"patterns\":[{\"include\":\"#attribute\"}]},{\"begin\":\"(</)([a-zA-Z][.0-9_a-zA-Z\\\\\\\\x{00B7}\\\\\\\\x{00C0}-\\\\\\\\x{00D6}\\\\\\\\x{00D8}-\\\\\\\\x{00F6}\\\\\\\\x{00F8}-\\\\\\\\x{037D}\\\\\\\\x{037F}-\\\\\\\\x{1FFF}\\\\\\\\x{200C}-\\\\\\\\x{200D}\\\\\\\\x{203F}-\\\\\\\\x{2040}\\\\\\\\x{2070}-\\\\\\\\x{218F}\\\\\\\\x{2C00}-\\\\\\\\x{2FEF}\\\\\\\\x{3001}-\\\\\\\\x{D7FF}\\\\\\\\x{F900}-\\\\\\\\x{FDCF}\\\\\\\\x{FDF0}-\\\\\\\\x{FFFD}\\\\\\\\x{10000}-\\\\\\\\x{EFFFF}]*-[\\\\\\\\-.0-9_a-zA-Z\\\\\\\\x{00B7}\\\\\\\\x{00C0}-\\\\\\\\x{00D6}\\\\\\\\x{00D8}-\\\\\\\\x{00F6}\\\\\\\\x{00F8}-\\\\\\\\x{037D}\\\\\\\\x{037F}-\\\\\\\\x{1FFF}\\\\\\\\x{200C}-\\\\\\\\x{200D}\\\\\\\\x{203F}-\\\\\\\\x{2040}\\\\\\\\x{2070}-\\\\\\\\x{218F}\\\\\\\\x{2C00}-\\\\\\\\x{2FEF}\\\\\\\\x{3001}-\\\\\\\\x{D7FF}\\\\\\\\x{F900}-\\\\\\\\x{FDCF}\\\\\\\\x{FDF0}-\\\\\\\\x{FFFD}\\\\\\\\x{10000}-\\\\\\\\x{EFFFF}]*)(?=\\\\\\\\s|/?>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.custom.end.html\",\"patterns\":[{\"include\":\"#attribute\"}]}]},\"xml-processing\":{\"begin\":\"(<\\\\\\\\?)(xml)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.html\"}},\"end\":\"(\\\\\\\\?>)\",\"name\":\"meta.tag.metadata.processing.xml.html\",\"patterns\":[{\"include\":\"#attribute\"}]}},\"scopeName\":\"text.html.basic\",\"embeddedLangs\":[\"javascript\",\"css\"]}`)),r=[...t,...e,n];export{r as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BMj5Y0dO.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Hy\",\"name\":\"hy\",\"patterns\":[{\"include\":\"#all\"}],\"repository\":{\"all\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#constants\"},{\"include\":\"#keywords\"},{\"include\":\"#strings\"},{\"include\":\"#operators\"},{\"include\":\"#keysym\"},{\"include\":\"#builtin\"},{\"include\":\"#symbol\"}]},\"builtin\":{\"patterns\":[{\"match\":\"(?<![\\\\\\\\.:\\\\\\\\w_\\\\\\\\-=!@\\\\\\\\$%^&?/<>*])(abs|all|any|ascii|bin|breakpoint|callable|chr|compile|delattr|dir|divmod|eval|exec|format|getattr|globals|hasattr|hash|hex|id|input|isinstance|issubclass|iter|aiter|len|locals|max|min|next|anext|oct|ord|pow|print|repr|round|setattr|sorted|sum|vars|False|None|True|NotImplemented|bool|memoryview|bytearray|bytes|classmethod|complex|dict|enumerate|filter|float|frozenset|property|int|list|map|object|range|reversed|set|slice|staticmethod|str|super|tuple|type|zip|open|quit|exit|copyright|credits|help)(?![\\\\\\\\.:\\\\\\\\w_\\\\\\\\-=!@\\\\\\\\$%^&?/<>*])\",\"name\":\"storage.builtin.hy\"},{\"match\":\"(?<=\\\\\\\\(\\\\\\\\s*)\\\\\\\\.\\\\\\\\.\\\\\\\\.(?![\\\\\\\\.:\\\\\\\\w_\\\\\\\\-=!@\\\\\\\\$%^&?/<>*])\",\"name\":\"storage.builtin.dots.hy\"}]},\"comment\":{\"patterns\":[{\"match\":\"(;).*$\",\"name\":\"comment.line.hy\"}]},\"constants\":{\"patterns\":[{\"match\":\"(?<=[\\\\\\\\{\\\\\\\\[\\\\\\\\(\\\\\\\\s])([0-9]+(\\\\\\\\.[0-9]+)?|(#x)[0-9a-fA-F]+|(#o)[0-7]+|(#b)[01]+)(?=[\\\\\\\\s;()'\\\\\",\\\\\\\\[\\\\\\\\]\\\\\\\\{\\\\\\\\}])\",\"name\":\"constant.numeric.hy\"}]},\"keysym\":{\"match\":\"(?<![\\\\\\\\.:\\\\\\\\w_\\\\\\\\-=!@\\\\\\\\$%^&?\\\\\\\\/<>*]):[\\\\\\\\.:\\\\\\\\w_\\\\\\\\-=!@\\\\\\\\$%^&?\\\\\\\\/<>*]*\",\"name\":\"variable.other.constant\"},\"keywords\":{\"patterns\":[{\"match\":\"(?<![\\\\\\\\.:\\\\\\\\w_\\\\\\\\-=!@\\\\\\\\$%^&?/<>*])(and|await|match|let|annotate|assert|break|chainc|cond|continue|deftype|do|except\\\\\\\\*?|finally|else|defreader|([dgls])?for|set[vx]|defclass|defmacro|del|export|eval-and-compile|eval-when-compile|get|global|if|import|(de)?fn|nonlocal|not-in|or|(quasi)?quote|require|return|cut|raise|try|unpack-iterable|unpack-mapping|unquote|unquote-splice|when|while|with|yield|local-macros|in|is|py(s)?|pragma|nonlocal|(is-)?not)(?![\\\\\\\\.:\\\\\\\\w_\\\\\\\\-=!@\\\\\\\\$%^&?/<>*])\",\"name\":\"keyword.control.hy\"},{\"match\":\"(?<=\\\\\\\\(\\\\\\\\s*)\\\\\\\\.(?![\\\\\\\\.:\\\\\\\\w_\\\\\\\\-=!@\\\\\\\\$%^&?/<>*])\",\"name\":\"keyword.control.dot.hy\"}]},\"operators\":{\"patterns\":[{\"match\":\"(?<![\\\\\\\\.:\\\\\\\\w_\\\\\\\\-=!@\\\\\\\\$%^&?/<>*])(\\\\\\\\+=?|\\\\\\\\/\\\\\\\\/?=?|\\\\\\\\*\\\\\\\\*?=?|--?=?|[!<>]?=|@=?|%=?|<<?=?|>>?=?|&=?|\\\\\\\\|=?|\\\\\\\\^|~@|~=?|#\\\\\\\\*\\\\\\\\*?)(?![\\\\\\\\.:\\\\\\\\w_\\\\\\\\-=!@\\\\\\\\$%^&?/<>*])\",\"name\":\"keyword.control.hy\"}]},\"strings\":{\"begin\":\"(f?\\\\\"|}(?=[^\\\\n]*?[{\\\\\"]))\",\"end\":\"(\\\\\"|(?<=[\\\\\"}][^\\\\n]*?){)\",\"name\":\"string.quoted.double.hy\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.hy\"}]},\"symbol\":{\"match\":\"(?<![\\\\\\\\.:\\\\\\\\w_\\\\\\\\-=!@\\\\\\\\$%^&?/<>*#])[\\\\\\\\.a-zA-ZΑ-Ωα-ω_\\\\\\\\-=!@\\\\\\\\$%^<?/<>*#][\\\\\\\\.:\\\\\\\\w_\\\\\\\\-=!@\\\\\\\\$%^&?/<>*#]*\",\"name\":\"variable.other.hy\"}},\"scopeName\":\"source.hy\"}`)),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BMl_rFTw.js",
    "content": "import{_ as Fe}from\"./DnWQm4Tq.js\";import{d as fe,a as _e,c as T,S as le,r as y,w as M,B as me,W as pe,C as d,g as i,E as b,j as t,G as m,bl as Ee,ad as Ue,bm as Ie,F,O as P,Q as ye,a4 as Be,a6 as He,aM as We,n as Pe,J as R,i as s,f as h,L as qe,_ as Ge,e as W,x as f,t as Je,H as Y,N as Ke,M as Qe,q as O,ar as oe,ay as Xe,K as x,z as Ye,l as Ze,p as et,s as A,I as tt,h as st}from\"./CU_MfyYc.js\";import{_ as at}from\"./DZb6Dd70.js\";import{_ as ot}from\"./D-1_drer.js\";import{_ as lt}from\"./CvhZxjKo.js\";import{s as nt,T as it,l as rt,d as dt}from\"./9VOnL4Iz.js\";import{_ as ct}from\"./BW0IIeyO.js\";import{_ as ut}from\"./DMFWKIsW.js\";import{_ as vt}from\"./RFJ54-KY.js\";import{_ as gt}from\"./C4bX54si.js\";import{_ as ft}from\"./CD20-hSi.js\";import{_ as _t}from\"./DK27pemE.js\";import{u as mt}from\"./Cwg39VG_.js\";import{r as pt,a as yt}from\"./CViTd9PT.js\";import\"./D35nYK_C.js\";const ht={key:0,class:\"mb-2 p-3 bg-red-100 dark:bg-red-900 text-red-700 dark:text-red-200 rounded-md\"},bt={class:\"text-sm font-medium\"},wt={class:\"mt-2 flex items-center justify-between\"},xt={class:\"flex items-center\"},kt=[\"value\"],Ct=fe({__name:\"ObjectiveCurveChart\",props:{data:{}},setup(ne){const J=_e(),E=T(()=>J.value),S=le(),u=y(null),V=ne,l=T(()=>{const c=S.results.generalInfo.find($=>$[0]===\"Objective Function\");return c?{sharpe:\"sharpe_ratio\",calmar:\"calmar_ratio\",sortino:\"sortino_ratio\",omega:\"omega_ratio\",serenity:\"serenity_index\",\"smart sharpe\":\"smart_sharpe\",\"smart sortino\":\"smart_sortino\"}[c[1].toLowerCase()]||c[1].toLowerCase():\"sharpe_ratio\"}),L=y(null);let g=null,z=null,j=null;const U=T(()=>V.data.length>0&&V.data[0].training?Object.keys(V.data[0].training):[]),p=T({get:()=>S.results.selectedObjectiveMetric,set:c=>{S.results.selectedObjectiveMetric=c}});M(U,c=>{if(!S.results.selectedObjectiveMetric&&c.length){const r=l.value;c.includes(r)?p.value=r:p.value=c[0]}},{immediate:!0});const k=T(()=>V.data.map(r=>({trial:r.trial,training:r.training[p.value]!==void 0?r.training[p.value]:null,testing:r.testing[p.value]!==void 0?r.testing[p.value]:null})));function q(){if(L.value)try{u.value=null;const c={...nt,width:L.value.clientWidth,height:300,timeScale:{timeVisible:!1,secondsVisible:!1,tickMarkFormatter:r=>Math.floor(r)},localization:{timeFormatter:r=>Math.floor(r)}};g=it(L.value,c),z=g.addLineSeries({color:\"#60A5FA\",lineWidth:2,title:\"Training\"}),j=g.addLineSeries({color:\"#F87171\",lineWidth:2,title:\"Testing\"}),B(E.value),I()}catch(c){N(c)}}function I(){if(!(!z||!j))try{u.value=null;const c=k.value.sort((C,Z)=>C.trial-Z.trial),r=c.filter(C=>C.training!==null).map(C=>({time:C.trial,value:C.training})),$=c.filter(C=>C.testing!==null).map(C=>({time:C.trial,value:C.testing}));z.setData(r),j.setData($),g==null||g.timeScale().fitContent()}catch(c){N(c)}}function N(c){console.error(\"Chart error:\",c),u.value=`Failed to render chart: ${c.message||\"Unknown error\"}`,g&&(g.remove(),g=null,z=null,j=null)}function B(c){if(g)try{g.applyOptions(c===\"light\"?rt.chart:dt.chart)}catch(r){N(r)}}function K(){if(g&&L.value)try{g.applyOptions({width:L.value.clientWidth})}catch(c){N(c)}}me(()=>{q(),window.addEventListener(\"resize\",K)}),pe(()=>{g&&(g.remove(),g=null),window.removeEventListener(\"resize\",K)}),M(k,I),M(p,I),M(E,B);function Q(c){return c.replace(/_/g,\" \").toUpperCase()}return(c,r)=>(i(),d(\"div\",null,[u.value?(i(),d(\"div\",ht,[t(\"p\",bt,m(u.value),1)])):b(\"\",!0),t(\"div\",{ref_key:\"chartContainer\",ref:L,class:\"rounded overflow-hidden border-2 border-gray-100 dark:border-gray-600\",style:{\"min-height\":\"300px\"}},null,512),t(\"div\",wt,[r[2]||(r[2]=Ee('<div class=\"flex items-center\" data-v-a7d13feb><span class=\"text-xs mr-2 rounded bg-white dark:bg-gray-700 p-1\" data-v-a7d13feb><span class=\"inline-block\" style=\"background-color:#60A5FA;width:25px;height:10px;\" data-v-a7d13feb></span><span class=\"ml-2\" data-v-a7d13feb>Training</span></span><span class=\"text-xs mr-2 rounded bg-white dark:bg-gray-700 p-1\" data-v-a7d13feb><span class=\"inline-block\" style=\"background-color:#F87171;width:25px;height:10px;\" data-v-a7d13feb></span><span class=\"ml-2\" data-v-a7d13feb>Testing</span></span></div>',1)),t(\"div\",xt,[r[1]||(r[1]=t(\"label\",{class:\"text-sm text-gray-700 dark:text-gray-300 mr-2\"},\"Metric:\",-1)),Ue(t(\"select\",{\"onUpdate:modelValue\":r[0]||(r[0]=$=>p.value=$),class:\"text-sm py-1 px-2 border border-gray-300 dark:border-gray-600 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 bg-white dark:bg-gray-800\"},[(i(!0),d(F,null,P(U.value,$=>(i(),d(\"option\",{key:$,value:$},m(Q($)),9,kt))),128))],512),[[Ie,p.value]])])])]))}}),Tt=ye(Ct,[[\"__scopeId\",\"data-v-a7d13feb\"]]),St=et(_t),$t={key:0,class:\"mb-8\"},jt={key:1,class:\"mb-8\"},Lt={key:2,class:\"mb-8\"},zt={class:\"border-2 border-gray-100 dark:border-gray-600 rounded overflow-hidden p-4 mb-8\"},Mt={class:\"space-y-2\"},Vt={class:\"border border-gray-200 bg-white dark:border-gray-700 dark:bg-gray-700 rounded-lg overflow-hidden\"},Dt={class:\"flex justify-between font-semibold p-4 bg-gray-100 dark:bg-gray-900 text-sm\"},Nt={class:\"w-[10%]\"},Rt={class:\"w-[12%]\"},Ot={class:\"w-[28%]\"},At={class:\"w-[20%]\"},Ft={class:\"w-[15%]\"},Et={class:\"w-[15%]\"},Ut={class:\"w-[10%]\"},It={class:\"w-[12%]\"},Bt={class:\"w-[28%]\"},Ht={class:\"w-[20%]\"},Wt={class:\"w-[15%]\"},Pt={class:\"w-[15%]\"},qt={key:3},Gt={class:\"mb-8\"},Jt={key:0},Kt={key:1,class:\"border-2 border-gray-100 dark:border-gray-600 rounded overflow-hidden p-4\"},Qt={class:\"space-y-2\"},Xt={key:2,class:\"border-2 border-gray-100 dark:border-gray-600 rounded overflow-hidden p-8 text-center\"},Yt={class:\"mt-16\"},Zt={class:\"text-sm text-gray-500 dark:text-gray-400 mb-4\"},es={key:0,class:\"my-4 flex gap-2\"},ts={class:\"border border-gray-200 bg-white dark:border-gray-700 rounded-lg overflow-hidden\"},ss={class:\"flex justify-between font-semibold p-4 bg-gray-100 dark:bg-gray-900 text-sm\"},as={class:\"w-[28%] text-center\"},os={key:0},ls=[\"onClick\"],ns={class:\"w-[10%] text-sm font-medium\"},is={class:\"w-[12%] text-sm\"},rs={class:\"w-[28%] text-sm text-center\"},ds={class:\"w-[20%] text-sm\"},cs={class:\"w-[15%] flex justify-center space-x-1\"},us={class:\"relative w-[15%] flex justify-center\"},vs={key:1,class:\"dark:bg-gray-800\"},gs={class:\"w-[10%]\"},fs={class:\"w-[12%]\"},_s={class:\"w-[28%] flex justify-center\"},ms={class:\"w-[20%]\"},ps={class:\"w-[15%] flex justify-center\"},ys={class:\"w-[15%] flex justify-center\"},hs={key:2,class:\"text-center py-8 text-gray-500 dark:text-gray-400 dark:bg-gray-800\"},bs={key:1,class:\"mt-4 flex gap-2\"},ws={key:0,class:\"flex flex-col items-center justify-center select-none\"},xs={class:\"mb-8 w-full\"},ks={class:\"flex flex-col gap-4 mt-4\"},Cs=[\"textContent\"],Ts={key:1},Ss={class:\"mb-8 w-full\"},$s={class:\"flex flex-col gap-4 mt-4\"},js={key:2,class:\"mt-8 w-full\"},Ls={class:\"p-4\"},zs={class:\"mt-4\"},Ms={class:\"w-full text-sm\"},Vs={class:\"w-full\"},Ds={class:\"w-full flex justify-between bg-gray-50 dark:bg-gray-800 py-2 px-4\"},Ns={class:\"w-full flex justify-between py-2 px-4\"},Rs={class:\"w-full flex justify-between bg-gray-50 dark:bg-gray-800 py-2 px-4\"},Os={class:\"w-full flex justify-between py-2 px-4\"},As={class:\"w-full\"},Fs={class:\"font-bold\"},Es={class:\"w-full\"},Us={class:\"w-1/3 font-bold italic\"},Is={class:\"w-1/3 text-center\"},Bs={class:\"w-1/3 text-center\"},Hs={class:\"flex justify-end mt-8 space-x-2\"},Ws={class:\"flex items-center justify-between\"},Ps={key:0,class:\"flex flex-col space-y-4\"},qs={class:\"flex flex-col\"},Gs={class:\"flex items-center justify-between mb-2\"},Js={class:\"flex gap-2\"},Ks={class:\"border border-gray-200 dark:border-gray-800 rounded\",style:{height:\"500px\"}},Qs={class:\"p-4 space-y-3\"},Xs={key:1,class:\"flex flex-col space-y-4\"},Ys={class:\"flex flex-col\"},Zs={class:\"flex items-center justify-between mb-2\"},ea={class:\"flex gap-2\"},ta={key:2,class:\"text-center py-8 text-gray-500 dark:text-gray-400\"},sa=fe({__name:\"[id]\",setup(ne){mt({title:\"Optimization Session - Jesse\"});const J=Be(),E=He(),S=T(()=>E.params.id),u=le(),V=T(()=>u.form),l=T(()=>u.results),L=y(!1),g=y(!1),z=y(!1),j=y(!1),U=y(null),p=y(),k=y(\"\"),q=y(!1),I=y(\"\"),N=y(\"\"),B=y(!0),K=_e(),Q=T(()=>K.value===\"light\"?\"vs-light\":\"vs-dark\"),c=T(()=>({automaticLayout:!0,minimap:{enabled:!1},fontSize:14,lineHeight:21,readOnly:!0})),r=y([]);M(()=>u.results.status,n=>{n===\"terminated\"||n===\"stopped\"?D.value=!0:D.value=!1});const $=T(()=>E.query.status?E.query.status:null);me(()=>{const n=()=>{var _;(_=u.clearCurrentSession)==null||_.call(u)},e=()=>{document.hidden&&(k.value=\"\",U.value=null)};window.addEventListener(\"beforeunload\",n),document.addEventListener(\"visibilitychange\",e),pe(()=>{var _;if(window.removeEventListener(\"beforeunload\",n),document.removeEventListener(\"visibilitychange\",e),(_=p.value)!=null&&_.$editor)try{p.value.$editor.dispose()}catch(G){console.error(\"Error disposing editor:\",G)}p.value=void 0,k.value=\"\",U.value=null,l.value.infoLogs=\"\",l.value.best_candidates=[],u.clearCurrentSession&&u.clearCurrentSession()}),setTimeout(async()=>{$.value?J.replace(`/optimization/${S.value}`):(u.clearCurrentSession(),await u.loadSession(S.value),u.results.status===\"terminated\"||u.results.status===\"stopped\"?D.value=!0:D.value=!1),B.value=!1},100)}),We(()=>{var n;return(n=u.clearCurrentSession)==null||n.call(u),k.value=\"\",U.value=null,B.value=!0,!0}),M(Q,n=>{var e,_;(_=(e=p.value)==null?void 0:e.$editor)==null||_.updateOptions({theme:n})}),M(j,async n=>{if(q.value=!0,n&&k.value===\"\"){const e=await u.getSessionStrategyCodes(S.value);e&&(k.value=Object.values(e)[0]),await Pe(),setTimeout(()=>{var _;(_=p.value)!=null&&_.$editor&&p.value.$editor.updateOptions({theme:Q.value})},50)}q.value=!1}),M(z,async n=>{if(n){const e=await u.getSessionNotes(S.value);e&&(I.value=e.title||\"\",N.value=e.description||\"\")}}),M(()=>l.value.logsModal,async n=>{if(n&&S.value&&!l.value.infoLogs.length){const e=await u.getSessionLogs(S.value);e&&(l.value.infoLogs=e)}});const C=T(()=>R.remainingTimeText(l.value.progressbar.estimated_remaining_seconds)),Z=T(()=>{const n=l.value.generalInfo.find(e=>e[0]===\"Objective Function\");return n?n[1]:\"sharpe\"});function he(){R.copyToClipboard(l.value.infoLogs),A(\"success\",\"Info logs copied successfully\"),g.value=!0,setTimeout(()=>{g.value=!1},3e3)}async function be(){await u.terminate()}const X=y(!1),w=y({});async function ie(n){(await R.copyToClipboard(n)).success?A(\"success\",\"DNA copied to clipboard\"):A(\"error\",\"Failed to copy DNA. Please try manually selecting and copying.\")}function we(n){w.value=n,X.value=!0}const D=y(!1);async function xe(){await u.resume()}function re(){u.newSession(),tt(\"/optimization/\")}const ke=n=>{const e=[];return n.forEach(_=>{e.push([{value:_.symbol,style:\"\"},{value:_.timeframe,style:\"\"},{value:_.strategy,style:\"\"}])}),e},Ce=n=>[[\"Training Start Date\",n.training_start_date],[\"Training Finish Date\",n.training_finish_date],[\"Testing Start Date\",n.testing_start_date],[\"Testing Finish Date\",n.testing_finish_date]];async function Te(){try{await navigator.clipboard.writeText(k.value),A(\"success\",\"Strategy code copied to clipboard\")}catch(n){st(n)}}function Se(){var e;const n=(e=V.value.routes[0])==null?void 0:e.strategy;n?te(`/strategies/${n}`):A(\"error\",\"No strategy selected\")}function de(n){const e=r.value.findIndex(_=>_.trial===n.trial);e>-1?r.value.splice(e,1):r.value.push(n)}function ee(){r.value=[]}async function ce(){if(r.value.length===0)return;const e=r.value.map(G=>G.dna).join(`\n\n`);(await R.copyToClipboard(e)).success?(A(\"success\",`DNA from ${r.value.length} candidates copied to clipboard`),ee()):A(\"error\",\"Failed to copy DNA. Please try manually selecting and copying.\")}function te(n){J.push(n)}return(n,e)=>{const _=Fe,G=qe,$e=at,je=ot,o=lt,se=Ke,Le=Tt,v=Je,ze=Xe,Me=ct,ue=Qe,ve=ut,Ve=vt,De=gt,ge=Ge,Ne=ft,Re=St,Oe=Ze,Ae=Ye;return i(),d(F,null,[s(G,{modelValue:l.value.logsModal,\"onUpdate:modelValue\":e[0]||(e[0]=a=>l.value.logsModal=a),title:\"Logs\"},{default:h(()=>[s(_,{logs:l.value.infoLogs},null,8,[\"logs\"])]),buttons:h(()=>[t(\"button\",{class:\"ml-2 p-2 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-full text-gray-400 hover:text-gray-500 dark:hover:text-gray-300 focus:outline-none\",onClick:he},[g.value?(i(),W(f(pt),{key:0,class:\"h-6 w-6\",\"aria-hidden\":\"true\"})):b(\"\",!0),!g.value&&l.value.infoLogs.length!=0?(i(),W(f(yt),{key:1,class:\"h-6 w-6\",\"aria-hidden\":\"true\"})):b(\"\",!0)])]),_:1},8,[\"modelValue\"]),s(De,null,{left:h(()=>[l.value.alert.message?(i(),d(\"div\",$t,[s($e,{color:\"teal\",icon:\"i-heroicons-check-circle\",variant:\"soft\",title:l.value.alert.message,\"close-button\":{icon:\"i-heroicons-x-mark-20-solid\",color:\"white\",variant:\"link\"},onClose:e[1]||(e[1]=a=>l.value.alert.message=\"\")},null,8,[\"title\"])])):b(\"\",!0),l.value.exception.error&&l.value.executing?(i(),d(\"div\",jt,[s(je,{modelValue:L.value,\"onUpdate:modelValue\":e[2]||(e[2]=a=>L.value=a),title:l.value.exception.error,content:l.value.exception.traceback,mode:\"optimize\"},null,8,[\"modelValue\",\"title\",\"content\"])])):b(\"\",!0),B.value&&!l.value.executing&&!l.value.showResults?(i(),d(\"div\",Lt,[t(\"div\",zt,[t(\"div\",Mt,[s(o,{class:\"h-8 w-3/4\"}),s(o,{class:\"h-8 w-full\"}),s(o,{class:\"h-8 w-5/6\"}),s(o,{class:\"h-8 w-full\"}),s(o,{class:\"h-8 w-4/5\"}),s(o,{class:\"h-8 w-full\"})])]),t(\"div\",Vt,[t(\"div\",Dt,[t(\"div\",Nt,[s(o,{class:\"h-4 w-12\"})]),t(\"div\",Rt,[s(o,{class:\"h-4 w-12\"})]),t(\"div\",Ot,[s(o,{class:\"h-4 w-32\"})]),t(\"div\",At,[s(o,{class:\"h-4 w-16\"})]),t(\"div\",Ft,[s(o,{class:\"h-4 w-16\"})]),t(\"div\",Et,[s(o,{class:\"h-4 w-16\"})])]),(i(),d(F,null,P(5,a=>t(\"div\",{key:a,class:\"flex justify-between border-t border-gray-200 dark:border-gray-700 p-4\"},[t(\"div\",Ut,[s(o,{class:\"h-4 w-8\"})]),t(\"div\",It,[s(o,{class:\"h-4 w-10\"})]),t(\"div\",Bt,[s(o,{class:\"h-4 w-24\"})]),t(\"div\",Ht,[s(o,{class:\"h-4 w-16\"})]),t(\"div\",Wt,[s(o,{class:\"h-4 w-12\"})]),t(\"div\",Pt,[s(o,{class:\"h-4 w-8\"})])])),64))])])):b(\"\",!0),(l.value.executing||l.value.showResults)&&!l.value.exception.error?(i(),d(\"div\",qt,[t(\"div\",Gt,[s(se,{title:\"Objective Progress\",class:\"mb-4\"}),l.value.objective_curve&&l.value.objective_curve.length?(i(),d(\"div\",Jt,[s(Le,{data:l.value.objective_curve},null,8,[\"data\"])])):l.value.executing&&!D.value?(i(),d(\"div\",Kt,[t(\"div\",Qt,[s(o,{class:\"h-8 w-3/4\"}),s(o,{class:\"h-8 w-full\"}),s(o,{class:\"h-8 w-5/6\"}),s(o,{class:\"h-8 w-full\"}),s(o,{class:\"h-8 w-4/5\"}),s(o,{class:\"h-8 w-full\"}),s(o,{class:\"h-8 w-3/4\"}),s(o,{class:\"h-8 w-full\"}),s(o,{class:\"h-8 w-5/6\"}),s(o,{class:\"h-8 w-full\"})])])):(i(),d(\"div\",Xt,e[21]||(e[21]=[t(\"div\",{class:\"text-gray-400 dark:text-gray-500\"},[t(\"svg\",{class:\"mx-auto h-12 w-12 mb-4\",fill:\"none\",viewBox:\"0 0 24 24\",stroke:\"currentColor\"},[t(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",\"stroke-width\":\"1.5\",d:\"M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z\"})]),t(\"p\",{class:\"text-sm\"},\"No optimization progress data available\")],-1)])))]),t(\"div\",Yt,[s(se,{title:\"Best Trials\",class:\"my-4\"}),t(\"p\",Zt,\" Showing \"+m(l.value.best_candidates.length)+\" trials sorted by fitness score \",1),r.value.length>0?(i(),d(\"div\",es,[s(v,{variant:\"soft\",color:\"primary\",size:\"sm\",icon:\"i-heroicons-clipboard-document-list\",onClick:ce},{default:h(()=>[O(\" Copy Selected DNA (\"+m(r.value.length)+\") \",1)]),_:1}),s(v,{variant:\"soft\",color:\"gray\",size:\"sm\",icon:\"i-heroicons-x-mark\",onClick:ee},{default:h(()=>e[22]||(e[22]=[O(\" Clear Selection \")])),_:1})])):b(\"\",!0),t(\"div\",ts,[t(\"div\",ss,[e[23]||(e[23]=t(\"div\",{class:\"w-[10%]\"},\"Rank\",-1)),e[24]||(e[24]=t(\"div\",{class:\"w-[12%]\"},\"Trial\",-1)),t(\"div\",as,\"Training/Testing \"+m(Z.value),1),e[25]||(e[25]=t(\"div\",{class:\"w-[20%]\"},\"Fitness\",-1)),e[26]||(e[26]=t(\"div\",{class:\"w-[15%] text-center\"},\"Actions\",-1)),e[27]||(e[27]=t(\"div\",{class:\"w-[15%] text-center\"},\"Select\",-1))]),l.value.best_candidates.length?(i(),d(\"div\",os,[(i(!0),d(F,null,P(l.value.best_candidates,(a,H)=>(i(),d(\"div\",{key:H,class:Y([\"flex items-center justify-between border-t border-gray-200 dark:border-gray-700 p-4 dark:bg-gray-700 cursor-pointer\",{\"bg-gray-50 dark:bg-gray-800\":H%2===0}]),onClick:oe(ae=>de(a),[\"stop\"])},[t(\"div\",ns,m(a.rank),1),t(\"div\",is,m(a.trial),1),t(\"div\",rs,m(a.objective_metric),1),t(\"div\",ds,m(a.fitness),1),t(\"div\",cs,[s(v,{variant:\"ghost\",color:\"gray\",icon:\"i-heroicons-clipboard-document-list\",onClick:oe(ae=>ie(a.dna),[\"stop\"])},null,8,[\"onClick\"]),s(v,{variant:\"ghost\",icon:\"i-heroicons-information-circle\",onClick:oe(ae=>we(a),[\"stop\"])},null,8,[\"onClick\"])]),t(\"div\",us,[e[28]||(e[28]=t(\"div\",{class:\"inset-0 absolute z-10\"},null,-1)),s(ze,{\"model-value\":r.value.includes(a),\"onUpdate:modelValue\":ae=>de(a)},null,8,[\"model-value\",\"onUpdate:modelValue\"])])],10,ls))),128))])):l.value.executing&&!D.value?(i(),d(\"div\",vs,[(i(),d(F,null,P(5,a=>t(\"div\",{key:a,class:\"flex justify-between border-t border-gray-200 dark:border-gray-700 p-4\"},[t(\"div\",gs,[s(o,{class:\"h-4 w-8\"})]),t(\"div\",fs,[s(o,{class:\"h-4 w-10\"})]),t(\"div\",_s,[s(o,{class:\"h-4 w-24\"})]),t(\"div\",ms,[s(o,{class:\"h-4 w-16\"})]),t(\"div\",ps,[s(o,{class:\"h-4 w-12\"})]),t(\"div\",ys,[s(o,{class:\"h-4 w-8\"})])])),64))])):(i(),d(\"div\",hs,e[29]||(e[29]=[t(\"svg\",{class:\"mx-auto h-10 w-10 mb-3 text-gray-300 dark:text-gray-600\",fill:\"none\",viewBox:\"0 0 24 24\",stroke:\"currentColor\"},[t(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",\"stroke-width\":\"1.5\",d:\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"})],-1),t(\"p\",{class:\"text-sm\"},\"No candidates were found in this session\",-1)])))]),r.value.length>0?(i(),d(\"div\",bs,[s(v,{variant:\"soft\",color:\"primary\",size:\"sm\",icon:\"i-heroicons-clipboard-document-list\",onClick:ce},{default:h(()=>[O(\" Copy Selected DNA (\"+m(r.value.length)+\") \",1)]),_:1}),s(v,{variant:\"soft\",color:\"gray\",size:\"sm\",icon:\"i-heroicons-x-mark\",onClick:ee},{default:h(()=>e[30]||(e[30]=[O(\" Clear Selection \")])),_:1})])):b(\"\",!0)])])):b(\"\",!0)]),right:h(()=>[l.value.executing&&!l.value.showResults?(i(),d(\"div\",ws,[t(\"div\",xs,[l.value.exception.error?(i(),W(v,{key:0,class:\"w-full flex justify-center mt-4\",icon:\"i-heroicons-arrow-path\",size:\"xl\",variant:\"solid\",label:\"Rerun\",trailing:!1,onClick:e[3]||(e[3]=a=>f(le)().rerun())})):b(\"\",!0),l.value.exception.error?(i(),W(v,{key:1,class:\"w-full flex justify-center mt-4\",icon:\"i-heroicons-arrow-uturn-left\",size:\"xl\",variant:\"solid\",color:\"green\",label:\"New Session\",trailing:!1,onClick:e[4]||(e[4]=a=>re())})):l.value.showResults?b(\"\",!0):(i(),W(v,{key:2,color:\"gray\",ui:{color:{gray:{solid:\"text-rose-500 dark:text-rose-400\"}}},class:\"w-full flex justify-center mt-4\",icon:\"i-heroicons-pause\",size:\"xl\",variant:\"solid\",label:\"Terminate\",trailing:!1,onClick:e[5]||(e[5]=a=>be())})),t(\"div\",ks,[s(v,{class:\"w-full flex justify-center\",color:\"gray\",size:\"xl\",variant:\"solid\",label:\"Logs\",icon:\"i-heroicons-document-text\",trailing:!1,onClick:e[6]||(e[6]=a=>l.value.logsModal=!0)}),s(v,{class:\"w-full flex justify-center\",color:\"gray\",size:\"xl\",variant:\"solid\",label:\"History\",icon:\"i-heroicons-clock\",trailing:!1,onClick:e[7]||(e[7]=a=>te(\"/optimization/history\"))})])]),t(\"div\",null,[s(Me,{progress:l.value.progressbar.current},null,8,[\"progress\"])]),!l.value.exception.error&&!l.value.best_candidates.length?(i(),d(\"h3\",{key:0,class:\"mt-8 animate-pulse\",textContent:m(C.value)},null,8,Cs)):b(\"\",!0)])):b(\"\",!0),l.value.showResults?(i(),d(\"div\",Ts,[t(\"div\",Ss,[D.value?(i(),W(v,{key:0,class:\"w-full flex justify-center\",icon:\"i-heroicons-play\",size:\"xl\",variant:\"solid\",color:\"primary\",label:\"Resume\",trailing:!1,onClick:e[8]||(e[8]=a=>xe())})):b(\"\",!0),s(v,{class:Y([\"w-full flex justify-center\",{\"mt-4\":D.value}]),icon:\"i-heroicons-arrow-uturn-left\",size:\"xl\",variant:\"solid\",color:\"green\",label:\"New Session\",trailing:!1,onClick:e[9]||(e[9]=a=>re())},null,8,[\"class\"]),t(\"div\",$s,[s(v,{class:\"w-full flex justify-center\",color:\"gray\",size:\"xl\",variant:\"solid\",label:\"Logs\",icon:\"i-heroicons-document-text\",trailing:!1,onClick:e[10]||(e[10]=a=>l.value.logsModal=!0)}),s(v,{class:\"w-full flex justify-center\",color:\"gray\",size:\"xl\",variant:\"solid\",label:\"History\",icon:\"i-heroicons-clock\",trailing:!1,onClick:e[11]||(e[11]=a=>te(\"/optimization/history\"))}),s(v,{class:\"w-full flex justify-center\",color:\"gray\",size:\"xl\",variant:\"solid\",label:\"Title & Notes\",icon:\"i-heroicons-pencil-square\",trailing:!1,onClick:e[12]||(e[12]=a=>z.value=!0)}),s(v,{class:\"w-full flex justify-center\",color:\"gray\",size:\"xl\",variant:\"solid\",label:\"View Strategy\",icon:\"i-heroicons-code-bracket\",trailing:!1,onClick:e[13]||(e[13]=a=>j.value=!0)})])])])):b(\"\",!0),(l.value.executing||l.value.showResults)&&l.value.generalInfo.length?(i(),d(\"div\",js,[s(se,{title:\"Info\",class:\"mb-4\"}),s(ue,{data:l.value.generalInfo},null,8,[\"data\"]),s(ve,{class:\"mt-8 mb-4\",size:\"lg\",label:\"Duration\"}),s(ue,{data:Ce(V.value)},null,8,[\"data\"]),s(ve,{class:\"mt-8 mb-4\",size:\"lg\",label:\"Routes\"}),s(Ve,{data:ke(V.value.routes),\"header-items\":[\"Symbol\",\"Timeframe\",\"Strategy\"],header:\"\"},null,8,[\"data\"])])):b(\"\",!0)]),_:1}),s(ge,{modelValue:X.value,\"onUpdate:modelValue\":e[16]||(e[16]=a=>X.value=a)},{default:h(()=>[t(\"div\",Ls,[t(\"div\",zs,[t(\"div\",Ms,[e[37]||(e[37]=t(\"h2\",{class:\"text-lg mb-2 font-bold italic dark:text-white text-center\"},\" Candidate Info \",-1)),t(\"div\",Vs,[t(\"div\",Ds,[e[31]||(e[31]=t(\"div\",{class:\"font-bold\"},\"Rank\",-1)),t(\"div\",null,m(w.value.rank),1)]),t(\"div\",Ns,[e[32]||(e[32]=t(\"div\",{class:\"font-bold\"},\"Trial\",-1)),t(\"div\",null,m(w.value.trial),1)]),t(\"div\",Rs,[e[33]||(e[33]=t(\"div\",{class:\"font-bold\"},\"Fitness\",-1)),t(\"div\",null,m(w.value.fitness),1)]),t(\"div\",Os,[e[35]||(e[35]=t(\"div\",{class:\"font-bold\"},\"DNA\",-1)),s(v,{size:\"xs\",color:\"primary\",onClick:e[14]||(e[14]=a=>ie(w.value.dna))},{default:h(()=>e[34]||(e[34]=[O(\" Copy DNA \")])),_:1})])]),e[38]||(e[38]=t(\"h2\",{class:\"text-lg font-bold italic dark:text-white mt-6 mb-2 text-center\"},\" Parameters \",-1)),t(\"div\",As,[(i(!0),d(F,null,P(Object.keys(w.value.params),(a,H)=>(i(),d(\"div\",{key:a,class:Y([{\"bg-gray-50 dark:bg-gray-800\":H%2===0},\"w-full flex justify-between py-2 px-4\"])},[t(\"div\",Fs,m(a),1),t(\"div\",null,m(typeof w.value.params[a]==\"number\"?f(x).round(w.value.params[a],6):w.value.params[a]),1)],2))),128))]),e[39]||(e[39]=t(\"h2\",{class:\"text-lg font-bold italic dark:text-white mt-6 mb-2 text-center\"},\" Metrics Comparison \",-1)),t(\"div\",Es,[e[36]||(e[36]=t(\"div\",{class:\"flex justify-between py-2 px-4 bg-gray-100 dark:bg-gray-800 font-bold text-sm\"},[t(\"div\",{class:\"w-1/3 font-bold\"},\"Metric\"),t(\"div\",{class:\"w-1/3 text-center font-bold\"},\"Training\"),t(\"div\",{class:\"w-1/3 text-center font-bold\"},\"Testing\")],-1)),(i(!0),d(F,null,P([{key:\"total\",label:\"Total Closed Trades\"},{key:\"net_profit\",label:\"Total Net Profit\",format:a=>`${f(x).round(a.net_profit,2)} (${f(x).round(a.net_profit_percentage,2)}%)`},{key:\"starting_balance\",label:\"Starting => Finishing Balance\",format:a=>`${f(x).round(a.starting_balance,2)} => ${f(x).round(a.finishing_balance,2)}`},{key:\"total_open_trades\",label:\"Open Trades\"},{key:\"fee\",label:\"Total Paid Fees\",round:2},{key:\"max_drawdown\",label:\"Max Drawdown\",round:2},{key:\"annual_return\",label:\"Annual Return\",format:a=>`${f(x).round(a.annual_return,2)}%`},{key:\"expectancy\",label:\"Expectancy\",format:a=>`${f(x).round(a.expectancy,2)} (${f(x).round(a.expectancy_percentage,2)}%)`},{key:\"average_win\",label:\"Avg Win | Avg Loss\",format:a=>`${f(x).round(a.average_win,2)} | ${f(x).round(a.average_loss,2)}`},{key:\"ratio_avg_win_loss\",label:\"Ratio Avg Win / Avg Loss\",round:2},{key:\"win_rate\",label:\"Win-rate\",format:a=>`${f(x).round(a.win_rate*100,2)}%`},{key:\"longs_percentage\",label:\"Longs | Shorts\",format:a=>`${f(x).round(a.longs_percentage,2)}% | ${f(x).round(a.shorts_percentage,2)}%`},{key:\"average_holding_period\",label:\"Avg Holding Time\",format:a=>f(R).secondsToHumanReadable(a.average_holding_period)},{key:\"average_winning_holding_period\",label:\"Winning Trades Avg Holding Time\",format:a=>f(R).secondsToHumanReadable(a.average_winning_holding_period)},{key:\"average_losing_holding_period\",label:\"Losing Trades Avg Holding Time\",format:a=>f(R).secondsToHumanReadable(a.average_losing_holding_period)},{key:\"sharpe_ratio\",label:\"Sharpe Ratio\",round:2},{key:\"calmar_ratio\",label:\"Calmar Ratio\",round:2},{key:\"sortino_ratio\",label:\"Sortino Ratio\",round:2},{key:\"omega_ratio\",label:\"Omega Ratio\",round:2},{key:\"winning_streak\",label:\"Winning Streak\"},{key:\"losing_streak\",label:\"Losing Streak\"},{key:\"largest_winning_trade\",label:\"Largest Winning Trade\",round:2},{key:\"largest_losing_trade\",label:\"Largest Losing Trade\",round:2},{key:\"total_winning_trades\",label:\"Total Winning Trades\"},{key:\"total_losing_trades\",label:\"Total Losing Trades\"}],(a,H)=>(i(),d(\"div\",{key:a.key,class:Y([{\"bg-gray-50 dark:bg-gray-800\":H%2===0},\"w-full flex justify-between py-2 px-4\"])},[t(\"div\",Us,m(a.label),1),t(\"div\",Is,m(a.format?a.format(w.value.training_metrics):a.round?f(x).round(w.value.training_metrics[a.key],a.round):w.value.training_metrics[a.key]),1),t(\"div\",Bs,m(a.format?a.format(w.value.testing_metrics):a.round?f(x).round(w.value.testing_metrics[a.key],a.round):w.value.testing_metrics[a.key]),1)],2))),128))])])]),t(\"div\",Hs,[s(v,{color:\"gray\",block:\"\",onClick:e[15]||(e[15]=a=>X.value=!1)},{default:h(()=>e[40]||(e[40]=[O(\" Close \")])),_:1})])])]),_:1},8,[\"modelValue\"]),s(Ne,{modelValue:z.value,\"onUpdate:modelValue\":e[17]||(e[17]=a=>z.value=a),\"session-id\":S.value,\"initial-title\":I.value,\"initial-description\":N.value},null,8,[\"modelValue\",\"session-id\",\"initial-title\",\"initial-description\"]),s(ge,{modelValue:j.value,\"onUpdate:modelValue\":e[20]||(e[20]=a=>j.value=a),ui:{width:\"sm:max-w-5xl\"}},{default:h(()=>[s(Ae,null,{header:h(()=>[t(\"div\",Ws,[e[41]||(e[41]=t(\"h3\",{class:\"text-lg font-semibold\"},\"Strategy Code Snapshot\",-1)),s(v,{color:\"gray\",variant:\"ghost\",icon:\"i-heroicons-x-mark\",size:\"sm\",onClick:e[18]||(e[18]=a=>j.value=!1)})])]),default:h(()=>[q.value?(i(),d(\"div\",Ps,[t(\"div\",qs,[t(\"div\",Gs,[s(o,{class:\"h-4 w-20\"}),t(\"div\",Js,[s(o,{class:\"h-8 w-16\"}),s(o,{class:\"h-8 w-32\"})])]),t(\"div\",Ks,[t(\"div\",Qs,[s(o,{class:\"h-4 w-full\"}),s(o,{class:\"h-4 w-5/6\"}),s(o,{class:\"h-4 w-4/5\"}),s(o,{class:\"h-4 w-full\"}),s(o,{class:\"h-4 w-3/4\"}),s(o,{class:\"h-4 w-full\"}),s(o,{class:\"h-4 w-2/3\"}),s(o,{class:\"h-4 w-5/6\"}),s(o,{class:\"h-4 w-full\"}),s(o,{class:\"h-4 w-4/5\"}),s(o,{class:\"h-4 w-1/2\"}),s(o,{class:\"h-4 w-3/4\"}),s(o,{class:\"h-4 w-full\"}),s(o,{class:\"h-4 w-5/6\"}),s(o,{class:\"h-4 w-2/3\"})])])])])):k.value&&k.value.length>0?(i(),d(\"div\",Xs,[t(\"div\",Ys,[t(\"div\",Zs,[e[42]||(e[42]=t(\"label\",{class:\"block text-sm font-medium\"},null,-1)),t(\"div\",ea,[s(v,{icon:\"i-heroicons-clipboard-document\",label:\"Copy\",variant:\"soft\",color:\"gray\",size:\"sm\",onClick:Te}),s(v,{icon:\"i-heroicons-pencil-square\",label:\"Go to Strategy Editor\",variant:\"soft\",color:\"primary\",size:\"sm\",onClick:Se})])]),s(Oe,null,{default:h(()=>[s(Re,{ref_key:\"codeEditorRef\",ref:p,modelValue:k.value,\"onUpdate:modelValue\":e[19]||(e[19]=a=>k.value=a),lang:\"python\",options:c.value,class:\"border border-gray-200 dark:border-gray-800 rounded\",style:{height:\"500px\"}},{default:h(()=>e[43]||(e[43]=[O(\" Loading editor... \")])),_:1},8,[\"modelValue\",\"options\"])]),_:1})])])):(i(),d(\"div\",ta,\" No strategy code snapshot available for this session. \"))]),_:1})]),_:1},8,[\"modelValue\"])],64)}}}),ya=ye(sa,[[\"__scopeId\",\"data-v-ac8c2f8b\"]]);export{ya as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BNHBcdi1.js",
    "content": "import s from\"./atvbtKCR.js\";const e=Object.freeze(JSON.parse('{\"displayName\":\"Shell Session\",\"fileTypes\":[\"sh-session\"],\"name\":\"shellsession\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.other.prompt-prefix.shell-session\"},\"2\":{\"name\":\"punctuation.separator.prompt.shell-session\"},\"3\":{\"name\":\"source.shell\",\"patterns\":[{\"include\":\"source.shell\"}]}},\"match\":\"^(?:((?:\\\\\\\\(\\\\\\\\S+\\\\\\\\)\\\\\\\\s*)?(?:sh\\\\\\\\S*?|\\\\\\\\w+\\\\\\\\S+[@:]\\\\\\\\S+(?:\\\\\\\\s+\\\\\\\\S+)?|\\\\\\\\[\\\\\\\\S+?[@:][^\\\\\\\\n]+?\\\\\\\\].*?))\\\\\\\\s*)?([>$#%❯➜]|\\\\\\\\p{Greek})\\\\\\\\s+(.*)$\"},{\"match\":\"^.+$\",\"name\":\"meta.output.shell-session\"}],\"scopeName\":\"text.shell-session\",\"embeddedLangs\":[\"shellscript\"],\"aliases\":[\"console\"]}')),t=[...s,e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BNioltXt.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"OCaml\",\"fileTypes\":[\".ml\",\".mli\"],\"name\":\"ocaml\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#pragma\"},{\"include\":\"#decl\"}],\"repository\":{\"attribute\":{\"begin\":\"(\\\\\\\\[)[[:space:]]*((?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])@{1,3}(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"beginCaptures\":{\"1\":{\"name\":\"constant.language constant.numeric entity.other.attribute-name.id.css strong\"},\"2\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"constant.language constant.numeric entity.other.attribute-name.id.css strong\"}},\"patterns\":[{\"include\":\"#attributePayload\"}]},\"attributeIdentifier\":{\"captures\":{\"1\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp strong\"},\"2\":{\"name\":\"punctuation.definition.tag\"}},\"match\":\"((?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])%(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))((?:(?!\\\\\\\\b(?:and|'|as|asr|assert|\\\\\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\\\\\{|\\\\\\\\(|\\\\\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\\\\\+|private|\\\\\\\\?|\\\\\"|rec|\\\\\\\\\\\\\\\\|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\\\\\||virtual|when|while|with)\\\\\\\\b(?:[^']|$))\\\\\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))\"},\"attributePayload\":{\"patterns\":[{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]%|^%))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"end\":\"((?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])[:\\\\\\\\?](?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))|(?<=[[:space:]])|(?=\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"}},\"patterns\":[{\"include\":\"#pathModuleExtended\"},{\"include\":\"#pathRecord\"}]},{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"end\":\"(?=\\\\\\\\])\",\"patterns\":[{\"include\":\"#signature\"},{\"include\":\"#type\"}]},{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]\\\\\\\\?|^\\\\\\\\?))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"end\":\"(?=\\\\\\\\])\",\"patterns\":[{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]\\\\\\\\?|^\\\\\\\\?))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"end\":\"(?=\\\\\\\\])|\\\\\\\\bwhen\\\\\\\\b\",\"endCaptures\":{\"1\":{}},\"patterns\":[{\"include\":\"#pattern\"}]},{\"begin\":\"(?:(?<=(?:[^[:word:]]when|^when))(?![[:word:]]))\",\"end\":\"(?=\\\\\\\\])\",\"patterns\":[{\"include\":\"#term\"}]}]},{\"include\":\"#term\"}]},\"bindClassTerm\":{\"patterns\":[{\"begin\":\"(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))\",\"end\":\"(?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])(:)|(=)(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"endCaptures\":{\"1\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp strong\"},\"2\":{\"name\":\"support.type strong\"}},\"patterns\":[{\"begin\":\"(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))\",\"end\":\"(?=(?:(?!\\\\\\\\b(?:and|'|as|asr|assert|\\\\\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\\\\\{|\\\\\\\\(|\\\\\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\\\\\+|private|\\\\\\\\?|\\\\\"|rec|\\\\\\\\\\\\\\\\|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\\\\\||virtual|when|while|with)\\\\\\\\b(?:[^']|$))\\\\\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)[[:space:]]*,|[^[:space:][:lower:]%])|(?:(?!\\\\\\\\b(?:and|'|as|asr|assert|\\\\\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\\\\\{|\\\\\\\\(|\\\\\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\\\\\+|private|\\\\\\\\?|\\\\\"|rec|\\\\\\\\\\\\\\\\|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\\\\\||virtual|when|while|with)\\\\\\\\b(?:[^']|$))\\\\\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)|(?=\\\\\\\\btype\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"entity.name.function strong emphasis\"}},\"patterns\":[{\"include\":\"#attributeIdentifier\"}]},{\"begin\":\"\\\\\\\\[\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.tag\"}},\"end\":\"\\\\\\\\]\",\"patterns\":[{\"include\":\"#type\"}]},{\"include\":\"#bindTermArgs\"}]},{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"end\":\"(?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])=(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$])|(?=\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"support.type strong\"}},\"patterns\":[{\"include\":\"#literalClassType\"}]},{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"end\":\"\\\\\\\\band\\\\\\\\b|(?=;;|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp markup.underline\"}},\"patterns\":[{\"include\":\"#term\"}]}]},\"bindClassType\":{\"patterns\":[{\"begin\":\"(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))\",\"end\":\"(?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])(:)|(=)(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"endCaptures\":{\"1\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp strong\"},\"2\":{\"name\":\"support.type strong\"}},\"patterns\":[{\"begin\":\"(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))\",\"end\":\"(?=(?:(?!\\\\\\\\b(?:and|'|as|asr|assert|\\\\\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\\\\\{|\\\\\\\\(|\\\\\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\\\\\+|private|\\\\\\\\?|\\\\\"|rec|\\\\\\\\\\\\\\\\|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\\\\\||virtual|when|while|with)\\\\\\\\b(?:[^']|$))\\\\\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)[[:space:]]*,|[^[:space:][:lower:]%])|(?:(?!\\\\\\\\b(?:and|'|as|asr|assert|\\\\\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\\\\\{|\\\\\\\\(|\\\\\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\\\\\+|private|\\\\\\\\?|\\\\\"|rec|\\\\\\\\\\\\\\\\|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\\\\\||virtual|when|while|with)\\\\\\\\b(?:[^']|$))\\\\\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)|(?=\\\\\\\\btype\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"entity.name.function strong emphasis\"}},\"patterns\":[{\"include\":\"#attributeIdentifier\"}]},{\"begin\":\"\\\\\\\\[\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.tag\"}},\"end\":\"\\\\\\\\]\",\"patterns\":[{\"include\":\"#type\"}]},{\"include\":\"#bindTermArgs\"}]},{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"end\":\"(?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])=(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$])|(?=\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"support.type strong\"}},\"patterns\":[{\"include\":\"#literalClassType\"}]},{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"end\":\"\\\\\\\\band\\\\\\\\b|(?=;;|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp markup.underline\"}},\"patterns\":[{\"include\":\"#literalClassType\"}]}]},\"bindConstructor\":{\"patterns\":[{\"begin\":\"(?:(?<=(?:[^[:word:]]exception|^exception))(?![[:word:]]))|(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]\\\\\\\\+=|^\\\\\\\\+=|[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]=|^=|[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]\\\\\\\\||^\\\\\\\\|))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"end\":\"(:)|(\\\\\\\\bof\\\\\\\\b)|((?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])\\\\\\\\|(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))|(?=;;|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"endCaptures\":{\"1\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp strong\"},\"2\":{\"name\":\"punctuation.definition.tag\"},\"3\":{\"name\":\"support.type strong\"}},\"patterns\":[{\"include\":\"#attributeIdentifier\"},{\"match\":\"\\\\\\\\.\\\\\\\\.\",\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"},{\"match\":\"\\\\\\\\b(?:\\\\\\\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)\\\\\\\\b(?![[:space:]]*(?:\\\\\\\\.|\\\\\\\\([^\\\\\\\\*]))\",\"name\":\"constant.language constant.numeric entity.other.attribute-name.id.css strong\"},{\"include\":\"#type\"}]},{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]of|^of))(?![[:word:]]))\",\"end\":\"(?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])\\\\\\\\|(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"support.type strong\"}},\"patterns\":[{\"include\":\"#type\"}]}]},\"bindSignature\":{\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))\",\"end\":\"(?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])=(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$])\",\"endCaptures\":{\"0\":{\"name\":\"support.type strong\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#pathModuleExtended\"}]},{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"end\":\"\\\\\\\\band\\\\\\\\b|(?=;;|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp markup.underline\"}},\"patterns\":[{\"include\":\"#signature\"}]}]},\"bindStructure\":{\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?:(?<=(?:[^[:word:]]and|^and))(?![[:word:]]))|(?=[[:upper:]])\",\"end\":\"(?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])(:(?!=))|(:?=)(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$])|(?=\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|open|type|val)\\\\\\\\b)\",\"endCaptures\":{\"1\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp strong\"},\"2\":{\"name\":\"support.type strong\"}},\"patterns\":[{\"include\":\"#comment\"},{\"match\":\"\\\\\\\\bmodule\\\\\\\\b\",\"name\":\"markup.inserted constant.language support.constant.property-value entity.name.filename\"},{\"match\":\"(?:\\\\\\\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)\",\"name\":\"entity.name.function strong emphasis\"},{\"begin\":\"\\\\\\\\((?!\\\\\\\\))\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.tag\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$]):(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$])\",\"beginCaptures\":{\"0\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp strong\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#signature\"}]},{\"include\":\"#variableModule\"}]},{\"include\":\"#literalUnit\"}]},{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"end\":\"\\\\\\\\b(and)\\\\\\\\b|((?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])=(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))|(?=;;|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"endCaptures\":{\"1\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp markup.underline\"},\"2\":{\"name\":\"support.type strong\"}},\"patterns\":[{\"include\":\"#signature\"}]},{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]:=|^:=|[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"end\":\"\\\\\\\\b(?:(and)|(with))\\\\\\\\b|(?=;;|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"endCaptures\":{\"1\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp markup.underline\"},\"2\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp markup.underline\"}},\"patterns\":[{\"include\":\"#structure\"}]}]},\"bindTerm\":{\"patterns\":[{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]!|^!))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]external|^external|[^[:word:]]let|^let|[^[:word:]]method|^method|[^[:word:]]val|^val))(?![[:word:]]))\",\"end\":\"(\\\\\\\\bmodule\\\\\\\\b)|(\\\\\\\\bopen\\\\\\\\b)|(?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])(:)|((?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])=(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"endCaptures\":{\"1\":{\"name\":\"markup.inserted constant.language support.constant.property-value entity.name.filename\"},\"2\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"},\"3\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp strong\"},\"4\":{\"name\":\"support.type strong\"}},\"patterns\":[{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]!|^!))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]external|^external|[^[:word:]]let|^let|[^[:word:]]method|^method|[^[:word:]]val|^val))(?![[:word:]]))\",\"end\":\"(?=\\\\\\\\b(?:module|open)\\\\\\\\b)|(?=(?:(?!\\\\\\\\b(?:and|'|as|asr|assert|\\\\\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\\\\\{|\\\\\\\\(|\\\\\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\\\\\+|private|\\\\\\\\?|\\\\\"|rec|\\\\\\\\\\\\\\\\|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\\\\\||virtual|when|while|with)\\\\\\\\b(?:[^']|$))\\\\\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)[[:space:]]*,|[^[:space:][:lower:]%])|(\\\\\\\\brec\\\\\\\\b)|((?:(?!\\\\\\\\b(?:and|'|as|asr|assert|\\\\\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\\\\\{|\\\\\\\\(|\\\\\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\\\\\+|private|\\\\\\\\?|\\\\\"|rec|\\\\\\\\\\\\\\\\|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\\\\\||virtual|when|while|with)\\\\\\\\b(?:[^']|$))\\\\\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))\",\"endCaptures\":{\"1\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"},\"2\":{\"name\":\"entity.name.function strong emphasis\"}},\"patterns\":[{\"include\":\"#attributeIdentifier\"},{\"include\":\"#comment\"}]},{\"begin\":\"(?:(?<=(?:[^[:word:]]rec|^rec))(?![[:word:]]))\",\"end\":\"((?:(?!\\\\\\\\b(?:and|'|as|asr|assert|\\\\\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\\\\\{|\\\\\\\\(|\\\\\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\\\\\+|private|\\\\\\\\?|\\\\\"|rec|\\\\\\\\\\\\\\\\|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\\\\\||virtual|when|while|with)\\\\\\\\b(?:[^']|$))\\\\\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(?=[^[:space:][:alpha:]])\",\"endCaptures\":{\"0\":{\"name\":\"entity.name.function strong emphasis\"}},\"patterns\":[{\"include\":\"#bindTermArgs\"}]},{\"include\":\"#bindTermArgs\"}]},{\"begin\":\"(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))\",\"end\":\"(?=;;|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"patterns\":[{\"include\":\"#declModule\"}]},{\"begin\":\"(?:(?<=(?:[^[:word:]]open|^open))(?![[:word:]]))\",\"end\":\"(?=\\\\\\\\bin\\\\\\\\b)|(?=\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"patterns\":[{\"include\":\"#pathModuleSimple\"}]},{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"end\":\"(?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])=(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"support.type strong\"}},\"patterns\":[{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"end\":\"\\\\\\\\btype\\\\\\\\b|(?=[^[:space:]])\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control\"}}},{\"begin\":\"(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))\",\"end\":\"(?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])\\\\\\\\.(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$])\",\"endCaptures\":{\"0\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"}},\"patterns\":[{\"include\":\"#pattern\"}]},{\"include\":\"#type\"}]},{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"end\":\"\\\\\\\\band\\\\\\\\b|(?=;;|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp markup.underline\"}},\"patterns\":[{\"include\":\"#term\"}]}]},\"bindTermArgs\":{\"patterns\":[{\"applyEndPatternLast\":true,\"begin\":\"~|\\\\\\\\?\",\"beginCaptures\":{\"0\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"}},\"end\":\":|(?=[^[:space:]])\",\"endCaptures\":{\"0\":{\"name\":\"keyword\"}},\"patterns\":[{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]~|^~|[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]\\\\\\\\?|^\\\\\\\\?))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"end\":\"(?:(?!\\\\\\\\b(?:and|'|as|asr|assert|\\\\\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\\\\\{|\\\\\\\\(|\\\\\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\\\\\+|private|\\\\\\\\?|\\\\\"|rec|\\\\\\\\\\\\\\\\|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\\\\\||virtual|when|while|with)\\\\\\\\b(?:[^']|$))\\\\\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)|(?<=\\\\\\\\))\",\"endCaptures\":{\"0\":{\"name\":\"markup.inserted constant.language support.constant.property-value entity.name.filename\"}},\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"\\\\\\\\((?!\\\\\\\\*)\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.tag\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"begin\":\"(?<=\\\\\\\\()\",\"end\":\":|=\",\"endCaptures\":{\"0\":{\"name\":\"keyword\"}},\"patterns\":[{\"match\":\"(?:(?!\\\\\\\\b(?:and|'|as|asr|assert|\\\\\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\\\\\{|\\\\\\\\(|\\\\\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\\\\\+|private|\\\\\\\\?|\\\\\"|rec|\\\\\\\\\\\\\\\\|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\\\\\||virtual|when|while|with)\\\\\\\\b(?:[^']|$))\\\\\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)\",\"name\":\"markup.inserted constant.language support.constant.property-value entity.name.filename\"}]},{\"begin\":\"(?<=:)\",\"end\":\"=|(?=\\\\\\\\))\",\"endCaptures\":{\"0\":{\"name\":\"keyword\"}},\"patterns\":[{\"include\":\"#type\"}]},{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#term\"}]}]}]}]},{\"include\":\"#pattern\"}]},\"bindType\":{\"patterns\":[{\"begin\":\"(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]type|^type))(?![[:word:]]))\",\"end\":\"(?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])\\\\\\\\+=|=(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"support.type strong\"}},\"patterns\":[{\"include\":\"#attributeIdentifier\"},{\"include\":\"#pathType\"},{\"match\":\"(?:(?!\\\\\\\\b(?:and|'|as|asr|assert|\\\\\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\\\\\{|\\\\\\\\(|\\\\\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\\\\\+|private|\\\\\\\\?|\\\\\"|rec|\\\\\\\\\\\\\\\\|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\\\\\||virtual|when|while|with)\\\\\\\\b(?:[^']|$))\\\\\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)\",\"name\":\"entity.name.function strong\"},{\"include\":\"#type\"}]},{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]\\\\\\\\+=|^\\\\\\\\+=|[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"end\":\"\\\\\\\\band\\\\\\\\b|(?=;;|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp markup.underline\"}},\"patterns\":[{\"include\":\"#bindConstructor\"}]}]},\"comment\":{\"patterns\":[{\"include\":\"#attribute\"},{\"include\":\"#extension\"},{\"include\":\"#commentBlock\"},{\"include\":\"#commentDoc\"}]},\"commentBlock\":{\"begin\":\"\\\\\\\\(\\\\\\\\*(?!\\\\\\\\*[^\\\\\\\\)])\",\"contentName\":\"emphasis\",\"end\":\"\\\\\\\\*\\\\\\\\)\",\"name\":\"comment constant.regexp meta.separator.markdown\",\"patterns\":[{\"include\":\"#commentBlock\"},{\"include\":\"#commentDoc\"}]},\"commentDoc\":{\"begin\":\"\\\\\\\\(\\\\\\\\*\\\\\\\\*\",\"end\":\"\\\\\\\\*\\\\\\\\)\",\"name\":\"comment constant.regexp meta.separator.markdown\",\"patterns\":[{\"match\":\"\\\\\\\\*\"},{\"include\":\"#comment\"}]},\"decl\":{\"patterns\":[{\"include\":\"#declClass\"},{\"include\":\"#declException\"},{\"include\":\"#declInclude\"},{\"include\":\"#declModule\"},{\"include\":\"#declOpen\"},{\"include\":\"#declTerm\"},{\"include\":\"#declType\"}]},\"declClass\":{\"begin\":\"\\\\\\\\bclass\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"entity.name.class constant.numeric markup.underline\"}},\"end\":\";;|(?=\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#pragma\"},{\"begin\":\"(?:(?<=(?:[^[:word:]]class|^class))(?![[:word:]]))\",\"beginCaptures\":{\"0\":{\"name\":\"entity.name.class constant.numeric markup.underline\"}},\"end\":\"\\\\\\\\btype\\\\\\\\b|(?=\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"keyword\"}},\"patterns\":[{\"include\":\"#bindClassTerm\"}]},{\"begin\":\"(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))\",\"end\":\"(?=;;|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"patterns\":[{\"include\":\"#bindClassType\"}]}]},\"declException\":{\"begin\":\"\\\\\\\\bexception\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword markup.underline\"}},\"end\":\";;|(?=\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag\"}},\"patterns\":[{\"include\":\"#attributeIdentifier\"},{\"include\":\"#comment\"},{\"include\":\"#pragma\"},{\"include\":\"#bindConstructor\"}]},\"declInclude\":{\"begin\":\"\\\\\\\\binclude\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"}},\"end\":\";;|(?=\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag\"}},\"patterns\":[{\"include\":\"#attributeIdentifier\"},{\"include\":\"#comment\"},{\"include\":\"#pragma\"},{\"include\":\"#signature\"}]},\"declModule\":{\"begin\":\"(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))|\\\\\\\\bmodule\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"markup.inserted constant.language support.constant.property-value entity.name.filename markup.underline\"}},\"end\":\";;|(?=\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#pragma\"},{\"begin\":\"(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))\",\"end\":\"(\\\\\\\\btype\\\\\\\\b)|(?=[[:upper:]])\",\"endCaptures\":{\"0\":{\"name\":\"keyword\"}},\"patterns\":[{\"include\":\"#attributeIdentifier\"},{\"include\":\"#comment\"},{\"match\":\"\\\\\\\\brec\\\\\\\\b\",\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"}]},{\"begin\":\"(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))\",\"end\":\"(?=;;|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"patterns\":[{\"include\":\"#bindSignature\"}]},{\"begin\":\"(?=[[:upper:]])\",\"end\":\"(?=;;|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"patterns\":[{\"include\":\"#bindStructure\"}]}]},\"declOpen\":{\"begin\":\"\\\\\\\\bopen\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"}},\"end\":\";;|(?=\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag\"}},\"patterns\":[{\"include\":\"#attributeIdentifier\"},{\"include\":\"#comment\"},{\"include\":\"#pragma\"},{\"include\":\"#pathModuleExtended\"}]},\"declTerm\":{\"begin\":\"\\\\\\\\b(?:(external|val)|(method)|(let))\\\\\\\\b(!?)\",\"beginCaptures\":{\"1\":{\"name\":\"support.type markup.underline\"},\"2\":{\"name\":\"storage.type markup.underline\"},\"3\":{\"name\":\"keyword.control markup.underline\"},\"4\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"}},\"end\":\";;|(?=\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#pragma\"},{\"include\":\"#bindTerm\"}]},\"declType\":{\"begin\":\"(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))|\\\\\\\\btype\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword markup.underline\"}},\"end\":\";;|(?=\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#pragma\"},{\"include\":\"#bindType\"}]},\"extension\":{\"begin\":\"(\\\\\\\\[)((?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])%{1,3}(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"beginCaptures\":{\"1\":{\"name\":\"constant.language constant.numeric entity.other.attribute-name.id.css strong\"},\"2\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"constant.language constant.numeric entity.other.attribute-name.id.css strong\"}},\"patterns\":[{\"include\":\"#attributePayload\"}]},\"literal\":{\"patterns\":[{\"include\":\"#termConstructor\"},{\"include\":\"#literalArray\"},{\"include\":\"#literalBoolean\"},{\"include\":\"#literalCharacter\"},{\"include\":\"#literalList\"},{\"include\":\"#literalNumber\"},{\"include\":\"#literalObjectTerm\"},{\"include\":\"#literalString\"},{\"include\":\"#literalRecord\"},{\"include\":\"#literalUnit\"}]},\"literalArray\":{\"begin\":\"\\\\\\\\[\\\\\\\\|\",\"captures\":{\"0\":{\"name\":\"constant.language constant.numeric entity.other.attribute-name.id.css strong\"}},\"end\":\"\\\\\\\\|\\\\\\\\]\",\"patterns\":[{\"include\":\"#term\"}]},\"literalBoolean\":{\"match\":\"\\\\\\\\bfalse|true\\\\\\\\b\",\"name\":\"constant.language constant.numeric entity.other.attribute-name.id.css strong\"},\"literalCharacter\":{\"begin\":\"(?<![[:word:]])'\",\"end\":\"'\",\"name\":\"markup.punctuation.quote.beginning\",\"patterns\":[{\"include\":\"#literalCharacterEscape\"}]},\"literalCharacterEscape\":{\"match\":\"\\\\\\\\\\\\\\\\(?:[\\\\\\\\\\\\\\\\\\\\\"'ntbr]|[[:digit:]][[:digit:]][[:digit:]]|x[[:xdigit:]][[:xdigit:]]|o[0-3][0-7][0-7])\"},\"literalClassType\":{\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"\\\\\\\\bobject\\\\\\\\b\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.tag emphasis\"}},\"end\":\"\\\\\\\\bend\\\\\\\\b\",\"patterns\":[{\"begin\":\"\\\\\\\\binherit\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"}},\"end\":\";;|(?=\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag\"}},\"patterns\":[{\"begin\":\"\\\\\\\\bas\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"}},\"end\":\";;|(?=\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"patterns\":[{\"include\":\"#variablePattern\"}]},{\"include\":\"#type\"}]},{\"include\":\"#pattern\"},{\"include\":\"#declTerm\"}]},{\"begin\":\"\\\\\\\\[\",\"end\":\"\\\\\\\\]\"}]},\"literalList\":{\"patterns\":[{\"begin\":\"\\\\\\\\[\",\"captures\":{\"0\":{\"name\":\"constant.language constant.numeric entity.other.attribute-name.id.css strong\"}},\"end\":\"\\\\\\\\]\",\"patterns\":[{\"include\":\"#term\"}]}]},\"literalNumber\":{\"match\":\"(?<![[:alpha:]])[[:digit:]][[:digit:]]*(\\\\\\\\.[[:digit:]][[:digit:]]*)?\",\"name\":\"constant.numeric\"},\"literalObjectTerm\":{\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"\\\\\\\\bobject\\\\\\\\b\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.tag emphasis\"}},\"end\":\"\\\\\\\\bend\\\\\\\\b\",\"patterns\":[{\"begin\":\"\\\\\\\\binherit\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"}},\"end\":\";;|(?=\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag\"}},\"patterns\":[{\"begin\":\"\\\\\\\\bas\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"}},\"end\":\";;|(?=\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"patterns\":[{\"include\":\"#variablePattern\"}]},{\"include\":\"#term\"}]},{\"include\":\"#pattern\"},{\"include\":\"#declTerm\"}]},{\"begin\":\"\\\\\\\\[\",\"end\":\"\\\\\\\\]\"}]},\"literalRecord\":{\"begin\":\"\\\\\\\\{\",\"captures\":{\"0\":{\"name\":\"constant.language constant.numeric entity.other.attribute-name.id.css strong strong\"}},\"end\":\"\\\\\\\\}\",\"patterns\":[{\"begin\":\"(?<=\\\\\\\\{|;)\",\"end\":\"(:)|(=)|(;)|(with)|(?=\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp strong\"},\"2\":{\"name\":\"support.type strong\"},\"3\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"},\"4\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#pathModulePrefixSimple\"},{\"match\":\"(?:(?!\\\\\\\\b(?:and|'|as|asr|assert|\\\\\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\\\\\{|\\\\\\\\(|\\\\\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\\\\\+|private|\\\\\\\\?|\\\\\"|rec|\\\\\\\\\\\\\\\\|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\\\\\||virtual|when|while|with)\\\\\\\\b(?:[^']|$))\\\\\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)\",\"name\":\"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis\"}]},{\"begin\":\"(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))\",\"end\":\"(:)|(=)|(;)|(?=\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp strong\"},\"2\":{\"name\":\"support.type strong\"},\"3\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"}},\"patterns\":[{\"match\":\"(?:(?!\\\\\\\\b(?:and|'|as|asr|assert|\\\\\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\\\\\{|\\\\\\\\(|\\\\\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\\\\\+|private|\\\\\\\\?|\\\\\"|rec|\\\\\\\\\\\\\\\\|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\\\\\||virtual|when|while|with)\\\\\\\\b(?:[^']|$))\\\\\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)\",\"name\":\"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis\"}]},{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"end\":\"(;)|(=)|(?=\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"},\"2\":{\"name\":\"support.type strong\"}},\"patterns\":[{\"include\":\"#type\"}]},{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"end\":\";|(?=\\\\\\\\})\",\"endCaptures\":{\"0\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"}},\"patterns\":[{\"include\":\"#term\"}]}]},\"literalString\":{\"patterns\":[{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string beginning.punctuation.definition.quote.markdown\",\"patterns\":[{\"include\":\"#literalStringEscape\"}]},{\"begin\":\"(\\\\\\\\{)([_[:lower:]]*?)(\\\\\\\\|)\",\"end\":\"(\\\\\\\\|)(\\\\\\\\2)(\\\\\\\\})\",\"name\":\"string beginning.punctuation.definition.quote.markdown\",\"patterns\":[{\"include\":\"#literalStringEscape\"}]}]},\"literalStringEscape\":{\"match\":\"\\\\\\\\\\\\\\\\(?:[\\\\\\\\\\\\\\\\\\\\\"ntbr]|[[:digit:]][[:digit:]][[:digit:]]|x[[:xdigit:]][[:xdigit:]]|o[0-3][0-7][0-7])\"},\"literalUnit\":{\"match\":\"\\\\\\\\(\\\\\\\\)\",\"name\":\"constant.language constant.numeric entity.other.attribute-name.id.css strong\"},\"pathModuleExtended\":{\"patterns\":[{\"include\":\"#pathModulePrefixExtended\"},{\"match\":\"(?:\\\\\\\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)\",\"name\":\"entity.name.class constant.numeric\"}]},\"pathModulePrefixExtended\":{\"begin\":\"(?:\\\\\\\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\\\\\\\.|$|\\\\\\\\()\",\"beginCaptures\":{\"0\":{\"name\":\"entity.name.class constant.numeric\"}},\"end\":\"(?![[:space:]\\\\\\\\.]|$|\\\\\\\\()\",\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"\\\\\\\\(\",\"captures\":{\"0\":{\"name\":\"keyword.control\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"match\":\"((?:\\\\\\\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\\\\\\\)))\",\"name\":\"string.other.link variable.language variable.parameter emphasis\"},{\"include\":\"#structure\"}]},{\"begin\":\"(?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])\\\\\\\\.(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$])\",\"beginCaptures\":{\"0\":{\"name\":\"keyword strong\"}},\"end\":\"((?:\\\\\\\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\\\\\\\.|$))|((?:\\\\\\\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*(?:$|\\\\\\\\()))|((?:\\\\\\\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\\\\\\\)))|(?![[:space:]\\\\\\\\.[:upper:]]|$|\\\\\\\\()\",\"endCaptures\":{\"1\":{\"name\":\"entity.name.class constant.numeric\"},\"2\":{\"name\":\"entity.name.function strong\"},\"3\":{\"name\":\"string.other.link variable.language variable.parameter emphasis\"}}}]},\"pathModulePrefixExtendedParens\":{\"begin\":\"\\\\\\\\(\",\"captures\":{\"0\":{\"name\":\"keyword.control\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"match\":\"((?:\\\\\\\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\\\\\\\)))\",\"name\":\"string.other.link variable.language variable.parameter emphasis\"},{\"include\":\"#structure\"}]},\"pathModulePrefixSimple\":{\"begin\":\"(?:\\\\\\\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\\\\\\\.)\",\"beginCaptures\":{\"0\":{\"name\":\"entity.name.class constant.numeric\"}},\"end\":\"(?![[:space:]\\\\\\\\.])\",\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])\\\\\\\\.(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$])\",\"beginCaptures\":{\"0\":{\"name\":\"keyword strong\"}},\"end\":\"((?:\\\\\\\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\\\\\\\.))|((?:\\\\\\\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*))|(?![[:space:]\\\\\\\\.[:upper:]])\",\"endCaptures\":{\"1\":{\"name\":\"entity.name.class constant.numeric\"},\"2\":{\"name\":\"constant.language constant.numeric entity.other.attribute-name.id.css strong\"}}}]},\"pathModuleSimple\":{\"patterns\":[{\"include\":\"#pathModulePrefixSimple\"},{\"match\":\"(?:\\\\\\\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)\",\"name\":\"entity.name.class constant.numeric\"}]},\"pathRecord\":{\"patterns\":[{\"begin\":\"(?:(?!\\\\\\\\b(?:and|'|as|asr|assert|\\\\\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\\\\\{|\\\\\\\\(|\\\\\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\\\\\+|private|\\\\\\\\?|\\\\\"|rec|\\\\\\\\\\\\\\\\|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\\\\\||virtual|when|while|with)\\\\\\\\b(?:[^']|$))\\\\\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)\",\"end\":\"(?=[^[:space:]\\\\\\\\.])(?!\\\\\\\\(\\\\\\\\*)\",\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]\\\\\\\\.|^\\\\\\\\.))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))|(?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])\\\\\\\\.(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$])\",\"beginCaptures\":{\"0\":{\"name\":\"keyword strong\"}},\"end\":\"((?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])\\\\\\\\.(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))|((?:(?!\\\\\\\\b(?:and|'|as|asr|assert|\\\\\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\\\\\{|\\\\\\\\(|\\\\\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|mutable|nonrec|#|object|of|open|or|%|\\\\\\\\+|private|\\\\\\\\?|\\\\\"|rec|\\\\\\\\\\\\\\\\|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\\\\\||virtual|when|while|with)\\\\\\\\b(?:[^']|$))\\\\\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(?<=\\\\\\\\))|(?<=\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"keyword strong\"},\"2\":{\"name\":\"markup.inserted constant.language support.constant.property-value entity.name.filename\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#pathModulePrefixSimple\"},{\"begin\":\"\\\\\\\\((?!\\\\\\\\*)\",\"captures\":{\"0\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#term\"}]},{\"begin\":\"\\\\\\\\[\",\"captures\":{\"0\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"}},\"end\":\"\\\\\\\\]\",\"patterns\":[{\"include\":\"#pattern\"}]}]}]}]},\"pattern\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#patternArray\"},{\"include\":\"#patternLazy\"},{\"include\":\"#patternList\"},{\"include\":\"#patternMisc\"},{\"include\":\"#patternModule\"},{\"include\":\"#patternRecord\"},{\"include\":\"#literal\"},{\"include\":\"#patternParens\"},{\"include\":\"#patternType\"},{\"include\":\"#variablePattern\"},{\"include\":\"#termOperator\"}]},\"patternArray\":{\"begin\":\"\\\\\\\\[\\\\\\\\|\",\"captures\":{\"0\":{\"name\":\"constant.language constant.numeric entity.other.attribute-name.id.css strong\"}},\"end\":\"\\\\\\\\|\\\\\\\\]\",\"patterns\":[{\"include\":\"#pattern\"}]},\"patternLazy\":{\"match\":\"lazy\",\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"},\"patternList\":{\"begin\":\"\\\\\\\\[\",\"captures\":{\"0\":{\"name\":\"constant.language constant.numeric entity.other.attribute-name.id.css strong\"}},\"end\":\"\\\\\\\\]\",\"patterns\":[{\"include\":\"#pattern\"}]},\"patternMisc\":{\"captures\":{\"1\":{\"name\":\"string.regexp strong\"},\"2\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"},\"3\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"}},\"match\":\"((?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$]),(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))|([#\\\\\\\\-:!?.@*/&%^+<=>|~$]+)|\\\\\\\\b(as)\\\\\\\\b\"},\"patternModule\":{\"begin\":\"\\\\\\\\bmodule\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"markup.inserted constant.language support.constant.property-value entity.name.filename\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#declModule\"}]},\"patternParens\":{\"begin\":\"\\\\\\\\((?!\\\\\\\\))\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.tag\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$]):(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$])\",\"beginCaptures\":{\"0\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp strong\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#type\"}]},{\"include\":\"#pattern\"}]},\"patternRecord\":{\"begin\":\"\\\\\\\\{\",\"captures\":{\"0\":{\"name\":\"constant.language constant.numeric entity.other.attribute-name.id.css strong strong\"}},\"end\":\"\\\\\\\\}\",\"patterns\":[{\"begin\":\"(?<=\\\\\\\\{|;)\",\"end\":\"(:)|(=)|(;)|(with)|(?=\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp strong\"},\"2\":{\"name\":\"support.type strong\"},\"3\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"},\"4\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#pathModulePrefixSimple\"},{\"match\":\"(?:(?!\\\\\\\\b(?:and|'|as|asr|assert|\\\\\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\\\\\{|\\\\\\\\(|\\\\\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\\\\\+|private|\\\\\\\\?|\\\\\"|rec|\\\\\\\\\\\\\\\\|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\\\\\||virtual|when|while|with)\\\\\\\\b(?:[^']|$))\\\\\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)\",\"name\":\"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis\"}]},{\"begin\":\"(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))\",\"end\":\"(:)|(=)|(;)|(?=\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp strong\"},\"2\":{\"name\":\"support.type strong\"},\"3\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"}},\"patterns\":[{\"match\":\"(?:(?!\\\\\\\\b(?:and|'|as|asr|assert|\\\\\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\\\\\{|\\\\\\\\(|\\\\\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\\\\\+|private|\\\\\\\\?|\\\\\"|rec|\\\\\\\\\\\\\\\\|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\\\\\||virtual|when|while|with)\\\\\\\\b(?:[^']|$))\\\\\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)\",\"name\":\"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis\"}]},{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"end\":\"(;)|(=)|(?=\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"},\"2\":{\"name\":\"support.type strong\"}},\"patterns\":[{\"include\":\"#type\"}]},{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"end\":\";|(?=\\\\\\\\})\",\"endCaptures\":{\"0\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"}},\"patterns\":[{\"include\":\"#pattern\"}]}]},\"patternType\":{\"begin\":\"\\\\\\\\btype\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#declType\"}]},\"pragma\":{\"begin\":\"(?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])#(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$])\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag\"}},\"end\":\"(?=;;|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#literalNumber\"},{\"include\":\"#literalString\"}]},\"signature\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#signatureLiteral\"},{\"include\":\"#signatureFunctor\"},{\"include\":\"#pathModuleExtended\"},{\"include\":\"#signatureParens\"},{\"include\":\"#signatureRecovered\"},{\"include\":\"#signatureConstraints\"}]},\"signatureConstraints\":{\"begin\":\"\\\\\\\\bwith\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp markup.underline\"}},\"end\":\"(?=\\\\\\\\))|(?=;;|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"patterns\":[{\"begin\":\"(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))\",\"end\":\"\\\\\\\\b(?:(module)|(type))\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"markup.inserted constant.language support.constant.property-value entity.name.filename\"},\"2\":{\"name\":\"keyword\"}}},{\"include\":\"#declModule\"},{\"include\":\"#declType\"}]},\"signatureFunctor\":{\"patterns\":[{\"begin\":\"\\\\\\\\bfunctor\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword\"}},\"end\":\"(?=;;|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"patterns\":[{\"begin\":\"(?:(?<=(?:[^[:word:]]functor|^functor))(?![[:word:]]))\",\"end\":\"(\\\\\\\\(\\\\\\\\))|(\\\\\\\\((?!\\\\\\\\)))\",\"endCaptures\":{\"1\":{\"name\":\"constant.language constant.numeric entity.other.attribute-name.id.css strong\"},\"2\":{\"name\":\"punctuation.definition.tag\"}}},{\"begin\":\"(?<=\\\\\\\\()\",\"end\":\"(:)|(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp strong\"},\"2\":{\"name\":\"punctuation.definition.tag\"}},\"patterns\":[{\"include\":\"#variableModule\"}]},{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag\"}},\"patterns\":[{\"include\":\"#signature\"}]},{\"begin\":\"(?<=\\\\\\\\))\",\"end\":\"(\\\\\\\\()|((?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])->(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag\"},\"2\":{\"name\":\"support.type strong\"}}},{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"end\":\"(?=;;|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"patterns\":[{\"include\":\"#signature\"}]}]},{\"match\":\"(?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])->(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$])\",\"name\":\"support.type strong\"}]},\"signatureLiteral\":{\"begin\":\"\\\\\\\\bsig\\\\\\\\b\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.tag emphasis\"}},\"end\":\"\\\\\\\\bend\\\\\\\\b\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#pragma\"},{\"include\":\"#decl\"}]},\"signatureParens\":{\"begin\":\"\\\\\\\\((?!\\\\\\\\))\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.tag\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$]):(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$])\",\"beginCaptures\":{\"0\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp strong\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#signature\"}]},{\"include\":\"#signature\"}]},\"signatureRecovered\":{\"patterns\":[{\"begin\":\"\\\\\\\\(|(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]:|^:|[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]include|^include|[^[:word:]]open|^open))(?![[:word:]]))\",\"end\":\"\\\\\\\\bmodule\\\\\\\\b|(?!$|[[:space:]]|\\\\\\\\bmodule\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"markup.inserted constant.language support.constant.property-value entity.name.filename\"}}},{\"begin\":\"(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))\",\"end\":\"(?=;;|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"patterns\":[{\"begin\":\"(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))\",\"end\":\"\\\\\\\\btype\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"keyword\"}}},{\"begin\":\"(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))\",\"end\":\"\\\\\\\\bof\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag\"}}},{\"begin\":\"(?:(?<=(?:[^[:word:]]of|^of))(?![[:word:]]))\",\"end\":\"(?=;;|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"patterns\":[{\"include\":\"#signature\"}]}]}]},\"structure\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#structureLiteral\"},{\"include\":\"#structureFunctor\"},{\"include\":\"#pathModuleExtended\"},{\"include\":\"#structureParens\"}]},\"structureFunctor\":{\"patterns\":[{\"begin\":\"\\\\\\\\bfunctor\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword\"}},\"end\":\"(?=;;|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"patterns\":[{\"begin\":\"(?:(?<=(?:[^[:word:]]functor|^functor))(?![[:word:]]))\",\"end\":\"(\\\\\\\\(\\\\\\\\))|(\\\\\\\\((?!\\\\\\\\)))\",\"endCaptures\":{\"1\":{\"name\":\"constant.language constant.numeric entity.other.attribute-name.id.css strong\"},\"2\":{\"name\":\"punctuation.definition.tag\"}}},{\"begin\":\"(?<=\\\\\\\\()\",\"end\":\"(:)|(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp strong\"},\"2\":{\"name\":\"punctuation.definition.tag\"}},\"patterns\":[{\"include\":\"#variableModule\"}]},{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag\"}},\"patterns\":[{\"include\":\"#signature\"}]},{\"begin\":\"(?<=\\\\\\\\))\",\"end\":\"(\\\\\\\\()|((?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])->(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag\"},\"2\":{\"name\":\"support.type strong\"}}},{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"end\":\"(?=;;|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"patterns\":[{\"include\":\"#structure\"}]}]},{\"match\":\"(?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])->(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$])\",\"name\":\"support.type strong\"}]},\"structureLiteral\":{\"begin\":\"\\\\\\\\bstruct\\\\\\\\b\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.tag emphasis\"}},\"end\":\"\\\\\\\\bend\\\\\\\\b\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#pragma\"},{\"include\":\"#decl\"}]},\"structureParens\":{\"begin\":\"\\\\\\\\(\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.tag\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#structureUnpack\"},{\"include\":\"#structure\"}]},\"structureUnpack\":{\"begin\":\"\\\\\\\\bval\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"}},\"end\":\"(?=\\\\\\\\))\"},\"term\":{\"patterns\":[{\"include\":\"#termLet\"},{\"include\":\"#termAtomic\"}]},\"termAtomic\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#termConditional\"},{\"include\":\"#termConstructor\"},{\"include\":\"#termDelim\"},{\"include\":\"#termFor\"},{\"include\":\"#termFunction\"},{\"include\":\"#literal\"},{\"include\":\"#termMatch\"},{\"include\":\"#termMatchRule\"},{\"include\":\"#termPun\"},{\"include\":\"#termOperator\"},{\"include\":\"#termTry\"},{\"include\":\"#termWhile\"},{\"include\":\"#pathRecord\"}]},\"termConditional\":{\"match\":\"\\\\\\\\b(?:if|then|else)\\\\\\\\b\",\"name\":\"keyword.control\"},\"termConstructor\":{\"patterns\":[{\"include\":\"#pathModulePrefixSimple\"},{\"match\":\"(?:\\\\\\\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)\",\"name\":\"constant.language constant.numeric entity.other.attribute-name.id.css strong\"}]},\"termDelim\":{\"patterns\":[{\"begin\":\"\\\\\\\\((?!\\\\\\\\))\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.tag\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#term\"}]},{\"begin\":\"\\\\\\\\bbegin\\\\\\\\b\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.tag\"}},\"end\":\"\\\\\\\\bend\\\\\\\\b\",\"patterns\":[{\"include\":\"#attributeIdentifier\"},{\"include\":\"#term\"}]}]},\"termFor\":{\"patterns\":[{\"begin\":\"\\\\\\\\bfor\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control\"}},\"end\":\"\\\\\\\\bdone\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control\"}},\"patterns\":[{\"begin\":\"(?:(?<=(?:[^[:word:]]for|^for))(?![[:word:]]))\",\"end\":\"(?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])=(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$])\",\"endCaptures\":{\"0\":{\"name\":\"support.type strong\"}},\"patterns\":[{\"include\":\"#pattern\"}]},{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"end\":\"\\\\\\\\b(?:downto|to)\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control\"}},\"patterns\":[{\"include\":\"#term\"}]},{\"begin\":\"(?:(?<=(?:[^[:word:]]to|^to))(?![[:word:]]))\",\"end\":\"\\\\\\\\bdo\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control\"}},\"patterns\":[{\"include\":\"#term\"}]},{\"begin\":\"(?:(?<=(?:[^[:word:]]do|^do))(?![[:word:]]))\",\"end\":\"(?=\\\\\\\\bdone\\\\\\\\b)\",\"patterns\":[{\"include\":\"#term\"}]}]}]},\"termFunction\":{\"captures\":{\"1\":{\"name\":\"storage.type\"},\"2\":{\"name\":\"storage.type\"}},\"match\":\"\\\\\\\\b(?:(fun)|(function))\\\\\\\\b\"},\"termLet\":{\"patterns\":[{\"begin\":\"(?:(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]=|^=|[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))|(?<=;|\\\\\\\\())(?=[[:space:]]|\\\\\\\\blet\\\\\\\\b)|(?:(?<=(?:[^[:word:]]begin|^begin|[^[:word:]]do|^do|[^[:word:]]else|^else|[^[:word:]]in|^in|[^[:word:]]struct|^struct|[^[:word:]]then|^then|[^[:word:]]try|^try))(?![[:word:]]))|(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]@@|^@@))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))[[:space:]]+\",\"end\":\"\\\\\\\\b(?:(and)|(let))\\\\\\\\b|(?=[^[:space:]])(?!\\\\\\\\(\\\\\\\\*)\",\"endCaptures\":{\"1\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp markup.underline\"},\"2\":{\"name\":\"storage.type markup.underline\"}},\"patterns\":[{\"include\":\"#comment\"}]},{\"begin\":\"(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]let|^let))(?![[:word:]]))|(let)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type markup.underline\"}},\"end\":\"\\\\\\\\b(?:(and)|(in))\\\\\\\\b|(?=\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|class|exception|external|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"endCaptures\":{\"1\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp markup.underline\"},\"2\":{\"name\":\"storage.type markup.underline\"}},\"patterns\":[{\"include\":\"#bindTerm\"}]}]},\"termMatch\":{\"begin\":\"\\\\\\\\bmatch\\\\\\\\b\",\"captures\":{\"0\":{\"name\":\"keyword.control\"}},\"end\":\"\\\\\\\\bwith\\\\\\\\b\",\"patterns\":[{\"include\":\"#term\"}]},\"termMatchRule\":{\"patterns\":[{\"begin\":\"(?:(?<=(?:[^[:word:]]fun|^fun|[^[:word:]]function|^function|[^[:word:]]with|^with))(?![[:word:]]))\",\"end\":\"(?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])(\\\\\\\\|)|(->)(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$])\",\"endCaptures\":{\"1\":{\"name\":\"support.type strong\"},\"2\":{\"name\":\"support.type strong\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#attributeIdentifier\"},{\"include\":\"#pattern\"}]},{\"begin\":\"(?:(?<=(?:[^\\\\\\\\[#\\\\\\\\-:!?.@*/&%^+<=>|~$]\\\\\\\\||^\\\\\\\\|))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))|(?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])\\\\\\\\|(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$])\",\"beginCaptures\":{\"0\":{\"name\":\"support.type strong\"}},\"end\":\"(?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])(\\\\\\\\|)|(->)(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$])\",\"endCaptures\":{\"1\":{\"name\":\"support.type strong\"},\"2\":{\"name\":\"support.type strong\"}},\"patterns\":[{\"include\":\"#pattern\"},{\"begin\":\"\\\\\\\\bwhen\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"}},\"end\":\"(?=(?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])->(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"patterns\":[{\"include\":\"#term\"}]}]}]},\"termOperator\":{\"patterns\":[{\"begin\":\"(?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])#(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$])\",\"beginCaptures\":{\"0\":{\"name\":\"keyword\"}},\"end\":\"(?:(?!\\\\\\\\b(?:and|'|as|asr|assert|\\\\\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\\\\\{|\\\\\\\\(|\\\\\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\\\\\+|private|\\\\\\\\?|\\\\\"|rec|\\\\\\\\\\\\\\\\|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\\\\\||virtual|when|while|with)\\\\\\\\b(?:[^']|$))\\\\\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)\",\"endCaptures\":{\"0\":{\"name\":\"entity.name.function\"}}},{\"captures\":{\"0\":{\"name\":\"keyword.control strong\"}},\"match\":\"<-\"},{\"captures\":{\"1\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"},\"2\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"}},\"match\":\"(,|[#\\\\\\\\-:!?.@*/&%^+<=>|~$]+)|(;)\"},{\"match\":\"\\\\\\\\b(?:and|assert|asr|land|lazy|lsr|lxor|mod|new|or)\\\\\\\\b\",\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"}]},\"termPun\":{\"applyEndPatternLast\":true,\"begin\":\"(?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])\\\\\\\\?|~(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$])\",\"beginCaptures\":{\"0\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"}},\"end\":\":|(?=[^[:space:]:])\",\"endCaptures\":{\"0\":{\"name\":\"keyword\"}},\"patterns\":[{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]\\\\\\\\?|^\\\\\\\\?|[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]~|^~))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"end\":\"(?:(?!\\\\\\\\b(?:and|'|as|asr|assert|\\\\\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\\\\\{|\\\\\\\\(|\\\\\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\\\\\+|private|\\\\\\\\?|\\\\\"|rec|\\\\\\\\\\\\\\\\|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\\\\\||virtual|when|while|with)\\\\\\\\b(?:[^']|$))\\\\\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)\",\"endCaptures\":{\"0\":{\"name\":\"markup.inserted constant.language support.constant.property-value entity.name.filename\"}}}]},\"termTry\":{\"begin\":\"\\\\\\\\btry\\\\\\\\b\",\"captures\":{\"0\":{\"name\":\"keyword.control\"}},\"end\":\"\\\\\\\\bwith\\\\\\\\b\",\"patterns\":[{\"include\":\"#term\"}]},\"termWhile\":{\"patterns\":[{\"begin\":\"\\\\\\\\bwhile\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control\"}},\"end\":\"\\\\\\\\bdone\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control\"}},\"patterns\":[{\"begin\":\"(?:(?<=(?:[^[:word:]]while|^while))(?![[:word:]]))\",\"end\":\"\\\\\\\\bdo\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control\"}},\"patterns\":[{\"include\":\"#term\"}]},{\"begin\":\"(?:(?<=(?:[^[:word:]]do|^do))(?![[:word:]]))\",\"end\":\"(?=\\\\\\\\bdone\\\\\\\\b)\",\"patterns\":[{\"include\":\"#term\"}]}]}]},\"type\":{\"patterns\":[{\"include\":\"#comment\"},{\"match\":\"\\\\\\\\bnonrec\\\\\\\\b\",\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"},{\"include\":\"#pathModulePrefixExtended\"},{\"include\":\"#typeLabel\"},{\"include\":\"#typeObject\"},{\"include\":\"#typeOperator\"},{\"include\":\"#typeParens\"},{\"include\":\"#typePolymorphicVariant\"},{\"include\":\"#typeRecord\"},{\"include\":\"#typeConstructor\"}]},\"typeConstructor\":{\"patterns\":[{\"begin\":\"(_)|((?:(?!\\\\\\\\b(?:and|'|as|asr|assert|\\\\\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\\\\\{|\\\\\\\\(|\\\\\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\\\\\+|private|\\\\\\\\?|\\\\\"|rec|\\\\\\\\\\\\\\\\|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\\\\\||virtual|when|while|with)\\\\\\\\b(?:[^']|$))\\\\\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(')((?:(?!\\\\\\\\b(?:and|'|as|asr|assert|\\\\\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\\\\\{|\\\\\\\\(|\\\\\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\\\\\+|private|\\\\\\\\?|\\\\\"|rec|\\\\\\\\\\\\\\\\|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\\\\\||virtual|when|while|with)\\\\\\\\b(?:[^']|$))\\\\\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(?<=[^\\\\\\\\*]\\\\\\\\)|\\\\\\\\])\",\"beginCaptures\":{\"1\":{\"name\":\"comment constant.regexp meta.separator.markdown\"},\"3\":{\"name\":\"string.other.link variable.language variable.parameter emphasis strong emphasis\"},\"4\":{\"name\":\"keyword.control emphasis\"}},\"end\":\"(?=\\\\\\\\((?!\\\\\\\\*)|\\\\\\\\*|:|,|=|\\\\\\\\.|>|-|\\\\\\\\{|\\\\\\\\[|\\\\\\\\+|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|;|\\\\\\\\|)|((?:(?!\\\\\\\\b(?:and|'|as|asr|assert|\\\\\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\\\\\{|\\\\\\\\(|\\\\\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\\\\\+|private|\\\\\\\\?|\\\\\"|rec|\\\\\\\\\\\\\\\\|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\\\\\||virtual|when|while|with)\\\\\\\\b(?:[^']|$))\\\\\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))[:space:]*(?!\\\\\\\\(\\\\\\\\*|[[:word:]])|(?=;;|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|\\\\\\\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\\\\\\\b)\",\"endCaptures\":{\"1\":{\"name\":\"entity.name.function strong\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#pathModulePrefixExtended\"}]}]},\"typeLabel\":{\"patterns\":[{\"begin\":\"(\\\\\\\\??)((?:(?!\\\\\\\\b(?:and|'|as|asr|assert|\\\\\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\\\\\{|\\\\\\\\(|\\\\\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\\\\\+|private|\\\\\\\\?|\\\\\"|rec|\\\\\\\\\\\\\\\\|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\\\\\||virtual|when|while|with)\\\\\\\\b(?:[^']|$))\\\\\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))[[:space:]]*((?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$]):(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"captures\":{\"1\":{\"name\":\"keyword strong emphasis\"},\"2\":{\"name\":\"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis\"},\"3\":{\"name\":\"keyword\"}},\"end\":\"(?=(?<![#\\\\\\\\-:!?.@*/&%^+<=>|~$])->(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"patterns\":[{\"include\":\"#type\"}]}]},\"typeModule\":{\"begin\":\"\\\\\\\\bmodule\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"markup.inserted constant.language support.constant.property-value entity.name.filename\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#pathModuleExtended\"},{\"include\":\"#signatureConstraints\"}]},\"typeObject\":{\"begin\":\"<\",\"captures\":{\"0\":{\"name\":\"constant.language constant.numeric entity.other.attribute-name.id.css strong strong\"}},\"end\":\">\",\"patterns\":[{\"begin\":\"(?<=<|;)\",\"end\":\"(:)|(?=>)\",\"endCaptures\":{\"1\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp strong\"},\"3\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"},\"4\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#pathModulePrefixSimple\"},{\"match\":\"(?:(?!\\\\\\\\b(?:and|'|as|asr|assert|\\\\\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\\\\\{|\\\\\\\\(|\\\\\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\\\\\+|private|\\\\\\\\?|\\\\\"|rec|\\\\\\\\\\\\\\\\|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\\\\\||virtual|when|while|with)\\\\\\\\b(?:[^']|$))\\\\\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)\",\"name\":\"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis\"}]},{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"end\":\"(;)|(?=>)\",\"endCaptures\":{\"1\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"},\"2\":{\"name\":\"support.type strong\"}},\"patterns\":[{\"include\":\"#type\"}]}]},\"typeOperator\":{\"patterns\":[{\"match\":\",|;|[#\\\\\\\\-:!?.@*/&%^+<=>|~$]+\",\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp strong\"}]},\"typeParens\":{\"begin\":\"\\\\\\\\(\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.tag\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"match\":\",\",\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"},{\"include\":\"#typeModule\"},{\"include\":\"#type\"}]},\"typePolymorphicVariant\":{\"begin\":\"\\\\\\\\[\",\"end\":\"\\\\\\\\]\",\"patterns\":[]},\"typeRecord\":{\"begin\":\"\\\\\\\\{\",\"captures\":{\"0\":{\"name\":\"constant.language constant.numeric entity.other.attribute-name.id.css strong strong\"}},\"end\":\"\\\\\\\\}\",\"patterns\":[{\"begin\":\"(?<=\\\\\\\\{|;)\",\"end\":\"(:)|(=)|(;)|(with)|(?=\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp strong\"},\"2\":{\"name\":\"support.type strong\"},\"3\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"},\"4\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#pathModulePrefixSimple\"},{\"match\":\"(?:(?!\\\\\\\\b(?:and|'|as|asr|assert|\\\\\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\\\\\{|\\\\\\\\(|\\\\\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\\\\\+|private|\\\\\\\\?|\\\\\"|rec|\\\\\\\\\\\\\\\\|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\\\\\||virtual|when|while|with)\\\\\\\\b(?:[^']|$))\\\\\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)\",\"name\":\"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis\"}]},{\"begin\":\"(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))\",\"end\":\"(:)|(=)|(;)|(?=\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp strong\"},\"2\":{\"name\":\"support.type strong\"},\"3\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"}},\"patterns\":[{\"match\":\"(?:(?!\\\\\\\\b(?:and|'|as|asr|assert|\\\\\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\\\\\{|\\\\\\\\(|\\\\\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\\\\\+|private|\\\\\\\\?|\\\\\"|rec|\\\\\\\\\\\\\\\\|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\\\\\||virtual|when|while|with)\\\\\\\\b(?:[^']|$))\\\\\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)\",\"name\":\"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis\"}]},{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"end\":\"(;)|(=)|(?=\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"},\"2\":{\"name\":\"support.type strong\"}},\"patterns\":[{\"include\":\"#type\"}]},{\"begin\":\"(?:(?<=(?:[^#\\\\\\\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\\\\\\\-:!?.@*/&%^+<=>|~$]))\",\"end\":\";|(?=\\\\\\\\})\",\"endCaptures\":{\"0\":{\"name\":\"variable.other.class.js message.error variable.interpolation string.regexp\"}},\"patterns\":[{\"include\":\"#type\"}]}]},\"variableModule\":{\"captures\":{\"0\":{\"name\":\"string.other.link variable.language variable.parameter emphasis\"}},\"match\":\"(?:\\\\\\\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)\"},\"variablePattern\":{\"captures\":{\"1\":{\"name\":\"comment constant.regexp meta.separator.markdown\"},\"2\":{\"name\":\"string.other.link variable.language variable.parameter emphasis\"}},\"match\":\"(\\\\\\\\b_\\\\\\\\b)|((?:(?!\\\\\\\\b(?:and|'|as|asr|assert|\\\\\\\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\\\\\\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\\\\\\\{|\\\\\\\\(|\\\\\\\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\\\\\\\+|private|\\\\\\\\?|\\\\\"|rec|\\\\\\\\\\\\\\\\|\\\\\\\\}|\\\\\\\\)|\\\\\\\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\\\\\\\||virtual|when|while|with)\\\\\\\\b(?:[^']|$))\\\\\\\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))\"}},\"scopeName\":\"source.ocaml\"}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BPT9niGB.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"AsciiDoc\",\"fileTypes\":[\"ad\",\"asc\",\"adoc\",\"asciidoc\",\"adoc.txt\"],\"name\":\"asciidoc\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#callout-list-item\"},{\"include\":\"#titles\"},{\"include\":\"#attribute-entry\"},{\"include\":\"#blocks\"},{\"include\":\"#block-title\"},{\"include\":\"#tables\"},{\"include\":\"#horizontal-rule\"},{\"include\":\"#list\"},{\"include\":\"#inlines\"},{\"include\":\"#block-attribute\"},{\"include\":\"#line-break\"}],\"repository\":{\"admonition-paragraph\":{\"patterns\":[{\"begin\":\"(?=(?>(?:^\\\\\\\\[(NOTE|TIP|IMPORTANT|WARNING|CAUTION)((?:,|#|\\\\\\\\.|%)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|====)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.admonition.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(NOTE|TIP|IMPORTANT|WARNING|CAUTION)((?:,|#|\\\\\\\\.|%)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(={4,})\\\\\\\\s*$\",\"comment\":\"example block\",\"end\":\"(?<=\\\\\\\\1)\",\"patterns\":[{\"include\":\"#inlines\"},{\"include\":\"#list\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"end\":\"(?<=\\\\\\\\1)\",\"patterns\":[{\"include\":\"#inlines\"},{\"include\":\"#list\"}]}]},{\"begin\":\"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION)\\\\\\\\:\\\\\\\\p{Blank}+\",\"captures\":{\"1\":{\"name\":\"entity.name.function.asciidoc\"}},\"end\":\"^\\\\\\\\p{Blank}*$\",\"name\":\"markup.admonition.asciidoc\",\"patterns\":[{\"include\":\"#inlines\"}]}]},\"anchor-macro\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"support.constant.asciidoc\"},\"2\":{\"name\":\"markup.blockid.asciidoc\"},\"3\":{\"name\":\"string.unquoted.asciidoc\"},\"4\":{\"name\":\"support.constant.asciidoc\"}},\"match\":\"(?<!\\\\\\\\\\\\\\\\)(?:(\\\\\\\\[{2})([\\\\\\\\p{Alpha}:_][\\\\\\\\p{Word}:.-]*)(?:,\\\\\\\\p{Blank}*(\\\\\\\\S.*?))?(\\\\\\\\]{2}))\",\"name\":\"markup.other.anchor.asciidoc\"},{\"captures\":{\"1\":{\"name\":\"entity.name.function.asciidoc\"},\"2\":{\"name\":\"markup.blockid.asciidoc\"},\"3\":{\"name\":\"string.unquoted.asciidoc\"}},\"match\":\"(?<!\\\\\\\\\\\\\\\\)(anchor):(\\\\\\\\S+)\\\\\\\\[(.*?[^\\\\\\\\\\\\\\\\])?\\\\\\\\]\",\"name\":\"markup.other.anchor.asciidoc\"}]},\"attribute-entry\":{\"patterns\":[{\"begin\":\"^(:)(!?\\\\\\\\w.*?)(:)(\\\\\\\\p{Blank}+.+\\\\\\\\p{Blank}(?:\\\\\\\\+|\\\\\\\\\\\\\\\\))$\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.attribute-entry.asciidoc\"},\"2\":{\"name\":\"support.constant.attribute-name.asciidoc\"},\"3\":{\"name\":\"punctuation.separator.attribute-entry.asciidoc\"},\"4\":{\"name\":\"string.unquoted.attribute-value.asciidoc\",\"patterns\":[{\"include\":\"#inlines\"},{\"include\":\"#hard-break-backslash\"},{\"include\":\"#line-break\"},{\"include\":\"#line-break-backslash\"}]}},\"contentName\":\"string.unquoted.attribute-value.asciidoc\",\"end\":\"^\\\\\\\\p{Blank}+.+$(?<!\\\\\\\\+|\\\\\\\\\\\\\\\\)|^\\\\\\\\p{Blank}*$\",\"endCaptures\":{\"0\":{\"name\":\"string.unquoted.attribute-value.asciidoc\"}},\"name\":\"meta.definition.attribute-entry.asciidoc\",\"patterns\":[{\"include\":\"#inlines\"},{\"include\":\"#hard-break-backslash\"},{\"include\":\"#line-break\"},{\"include\":\"#line-break-backslash\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.asciidoc\"},\"2\":{\"name\":\"support.constant.attribute-name.asciidoc\"},\"3\":{\"name\":\"punctuation.separator.asciidoc\"},\"4\":{\"name\":\"string.unquoted.attribute-value.asciidoc\",\"patterns\":[{\"include\":\"#inlines\"},{\"include\":\"#line-break\"}]}},\"match\":\"^(:)(!?\\\\\\\\w.*?)(:)(\\\\\\\\p{Blank}+(.*))?$\",\"name\":\"meta.definition.attribute-entry.asciidoc\"}]},\"attribute-reference\":{\"patterns\":[{\"captures\":{\"2\":{\"name\":\"entity.name.function.asciidoc\"},\"3\":{\"name\":\"punctuation.separator.asciidoc\"},\"4\":{\"name\":\"support.constant.attribute-name.asciidoc\"},\"6\":{\"name\":\"punctuation.separator.asciidoc\"},\"7\":{\"name\":\"string.unquoted.attribute-value.asciidoc\"}},\"match\":\"(?<!\\\\\\\\\\\\\\\\)(\\\\\\\\{)(set|counter2?)(:)([\\\\\\\\p{Alnum}\\\\\\\\-_!]+)((:)(.*?))?(?<!\\\\\\\\\\\\\\\\)(\\\\\\\\})\",\"name\":\"markup.substitution.attribute-reference.asciidoc\"},{\"match\":\"(?<!\\\\\\\\\\\\\\\\)(\\\\\\\\{)(\\\\\\\\w+(?:[\\\\\\\\-]\\\\\\\\w+)*)(?<!\\\\\\\\\\\\\\\\)(\\\\\\\\})\",\"name\":\"markup.substitution.attribute-reference.asciidoc\"}]},\"bibliography-anchor\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"support.constant.asciidoc\"},\"2\":{\"name\":\"markup.biblioref.asciidoc\"},\"3\":{\"name\":\"support.constant.asciidoc\"}},\"match\":\"(?<!\\\\\\\\\\\\\\\\)(\\\\\\\\[{3})([\\\\\\\\p{Word}:][\\\\\\\\p{Word}:.-]*?)(\\\\\\\\]{3})\",\"name\":\"bibliography-anchor.asciidoc\"}]},\"bibtex-macro\":{\"patterns\":[{\"begin\":\"(?<!\\\\\\\\\\\\\\\\)(citenp:)([a-z,]*)(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.asciidoc\"},\"2\":{\"name\":\"markup.meta.attribute-list.asciidoc\"}},\"contentName\":\"string.unquoted.asciidoc\",\"end\":\"\\\\\\\\]|^$\",\"name\":\"markup.macro.inline.bibtex.asciidoc\"}]},\"block-attribute\":{\"patterns\":[{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(|\\\\\\\\p{Blank}*[\\\\\\\\p{Word}\\\\\\\\{,.#\\\\\"\\'%].*)\\\\\\\\]$\",\"name\":\"markup.heading.block-attribute.asciidoc\"}]},\"block-attribute-inner\":{\"patterns\":[{\"comment\":\"separators\",\"match\":\"([,.#%])\",\"name\":\"punctuation.separator.asciidoc\"},{\"captures\":{\"0\":{\"name\":\"markup.meta.attribute-list.asciidoc\",\"patterns\":[{\"include\":\"#keywords\"}]}},\"comment\":\"blockname\",\"match\":\"(?<=\\\\\\\\[)([^\\\\\\\\[\\\\\\\\],.#%=]+)\"},{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#attribute-reference\"}]}},\"comment\":\"attributes\",\"match\":\"(?<=\\\\\\\\{|,|.|#|\\\\\"|\\'|%)([^\\\\\\\\],.#%]+)\",\"name\":\"markup.meta.attribute-list.asciidoc\"}]},\"block-callout\":{\"patterns\":[{\"captures\":{\"2\":{\"name\":\"constant.other.symbol.asciidoc\"},\"4\":{\"name\":\"constant.numeric.asciidoc\"},\"5\":{\"name\":\"constant.other.symbol.asciidoc\"}},\"match\":\"(?:(?:\\\\\\\\/\\\\\\\\/|#|--|;;) ?)?( )?(?<!\\\\\\\\\\\\\\\\)(<)!?(--|)(\\\\\\\\d+)\\\\\\\\3(>)(?=(?: ?<!?\\\\\\\\3\\\\\\\\d+\\\\\\\\3>)*$)\",\"name\":\"callout.source.code.asciidoc\"}]},\"block-title\":{\"patterns\":[{\"begin\":\"^\\\\\\\\.([^\\\\\\\\p{Blank}.].*)\",\"captures\":{\"1\":{\"name\":\"markup.heading.blocktitle.asciidoc\"}},\"end\":\"$\"}]},\"blocks\":{\"patterns\":[{\"include\":\"#front-matter-block\"},{\"include\":\"#comment-paragraph\"},{\"include\":\"#admonition-paragraph\"},{\"include\":\"#quote-paragraph\"},{\"include\":\"#listing-paragraph\"},{\"include\":\"#source-paragraphs\"},{\"include\":\"#passthrough-paragraph\"},{\"include\":\"#example-paragraph\"},{\"include\":\"#sidebar-paragraph\"},{\"include\":\"#literal-paragraph\"},{\"include\":\"#open-block\"}]},\"callout-list-item\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.other.symbol.asciidoc\"},\"2\":{\"name\":\"constant.numeric.asciidoc\"},\"3\":{\"name\":\"constant.other.symbol.asciidoc\"},\"4\":{\"patterns\":[{\"include\":\"#inlines\"}]}},\"match\":\"^(<)(\\\\\\\\d+)(>)\\\\\\\\p{Blank}+(.*)$\",\"name\":\"callout.asciidoc\"}]},\"characters\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.character.asciidoc\"},\"3\":{\"name\":\"constant.character.asciidoc\"}},\"match\":\"(?<!\\\\\\\\\\\\\\\\)(&)(\\\\\\\\S+?)(;)\",\"name\":\"markup.character-reference.asciidoc\"}]},\"comment\":{\"patterns\":[{\"begin\":\"^(/{4,})$\",\"end\":\"^\\\\\\\\1$\",\"name\":\"comment.block.asciidoc\",\"patterns\":[{\"include\":\"#inlines\"}]},{\"match\":\"^/{2}([^/].*)?$\",\"name\":\"comment.inline.asciidoc\"}]},\"comment-paragraph\":{\"patterns\":[{\"begin\":\"(?=(?>(?:^\\\\\\\\[(comment)((?:,|#|\\\\\\\\.|%)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"comment.block.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(comment)((?:,|#|\\\\\\\\.|%)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#inlines\"},{\"include\":\"#list\"}]},{\"include\":\"#inlines\"}]}]},\"emphasis\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"markup.meta.attribute-list.asciidoc\"},\"2\":{\"name\":\"markup.italic.asciidoc\"},\"3\":{\"name\":\"punctuation.definition.asciidoc\"},\"5\":{\"name\":\"punctuation.definition.asciidoc\"}},\"match\":\"(?<!\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\)(\\\\\\\\[(?:[^\\\\\\\\]]+?)\\\\\\\\])?((__)((?!_).+?)(__))\",\"name\":\"markup.emphasis.unconstrained.asciidoc\"},{\"captures\":{\"1\":{\"name\":\"markup.meta.attribute-list.asciidoc\"},\"2\":{\"name\":\"markup.italic.asciidoc\"},\"3\":{\"name\":\"punctuation.definition.asciidoc\"},\"5\":{\"name\":\"punctuation.definition.asciidoc\"}},\"match\":\"(?!_{4,}\\\\\\\\s*$)(?<=^|[^\\\\\\\\p{Word};:])(\\\\\\\\[(?:[^\\\\\\\\]]+?)\\\\\\\\])?((_)(\\\\\\\\S|\\\\\\\\S.*?\\\\\\\\S)(_))(?!\\\\\\\\p{Word})\",\"name\":\"markup.emphasis.constrained.asciidoc\"}]},\"example-paragraph\":{\"patterns\":[{\"begin\":\"(?=(?>(?:^\\\\\\\\[(example)((?:,|#|\\\\\\\\.|%)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|====)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.block.example.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(example)((?:,|#|\\\\\\\\.|%)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#block-title\"},{\"begin\":\"^(={4,})$\",\"comment\":\"example block\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"^(-{2})$\",\"comment\":\"open block\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"$self\"}]},{\"include\":\"#inlines\"}]},{\"begin\":\"^(={4,})$\",\"end\":\"^(\\\\\\\\1)$\",\"name\":\"markup.block.example.asciidoc\",\"patterns\":[{\"include\":\"$self\"}]}]},\"footnote-macro\":{\"patterns\":[{\"begin\":\"(?<!\\\\\\\\\\\\\\\\)footnote(?:(ref):|:([\\\\\\\\w-]+)?)\\\\\\\\[(?:|(.*?[^\\\\\\\\\\\\\\\\]))\\\\\\\\]\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.asciidoc\"},\"2\":{\"name\":\"support.constant.attribute-name.asciidoc\"}},\"contentName\":\"string.unquoted.asciidoc\",\"end\":\"\\\\\\\\]|^$\",\"name\":\"markup.other.footnote.asciidoc\",\"patterns\":[{\"include\":\"#inlines\"}]}]},\"front-matter-block\":{\"patterns\":[{\"begin\":\"\\\\\\\\A(-{3}$)\",\"end\":\"^(\\\\\\\\1)$\",\"name\":\"markup.block.front-matter.asciidoc\",\"patterns\":[{\"include\":\"source.yaml\"}]}]},\"general-block-macro\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.function.asciidoc\"},\"2\":{\"name\":\"punctuation.separator.asciidoc\"},\"3\":{\"name\":\"markup.link.asciidoc\",\"patterns\":[{\"include\":\"#attribute-reference\"}]},\"4\":{\"name\":\"punctuation.separator.asciidoc\"},\"5\":{\"name\":\"string.unquoted.asciidoc\",\"patterns\":[{\"include\":\"#attribute-reference\"}]},\"6\":{\"name\":\"punctuation.separator.asciidoc\"}},\"match\":\"^(\\\\\\\\p{Word}+)(::)(\\\\\\\\S*?)(\\\\\\\\[)((?:\\\\\\\\\\\\\\\\\\\\\\\\]|[^\\\\\\\\]])*?)(\\\\\\\\])$\",\"name\":\"markup.macro.block.general.asciidoc\"}]},\"hard-break-backslash\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.other.symbol.hard-break.asciidoc\"}},\"match\":\"(?<=\\\\\\\\S)\\\\\\\\p{Blank}+(\\\\\\\\+ \\\\\\\\\\\\\\\\)$\"}]},\"horizontal-rule\":{\"patterns\":[{\"match\":\"^(?:\\'|<){3,}$|^ {0,3}([-\\\\\\\\*\\'])( *)\\\\\\\\1\\\\\\\\2\\\\\\\\1$\",\"name\":\"constant.other.symbol.horizontal-rule.asciidoc\"}]},\"image-macro\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.function.asciidoc\"},\"2\":{\"name\":\"markup.link.asciidoc\"},\"3\":{\"name\":\"string.unquoted.asciidoc\"}},\"match\":\"(?<!\\\\\\\\\\\\\\\\)(image|icon):([^:\\\\\\\\[][^\\\\\\\\[]*)\\\\\\\\[((?:\\\\\\\\\\\\\\\\\\\\\\\\]|[^\\\\\\\\]])*?)\\\\\\\\]\",\"name\":\"markup.macro.image.asciidoc\"}]},\"include-directive\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.function.asciidoc\"},\"2\":{\"name\":\"punctuation.separator.asciidoc\"},\"3\":{\"name\":\"markup.link.asciidoc\",\"patterns\":[{\"include\":\"#attribute-reference\"}]},\"4\":{\"name\":\"punctuation.separator.asciidoc\"},\"5\":{\"name\":\"string.unquoted.asciidoc\",\"patterns\":[{\"include\":\"#attribute-reference\"}]},\"6\":{\"name\":\"punctuation.separator.asciidoc\"}},\"match\":\"^(include)(::)([^\\\\\\\\[]+)(\\\\\\\\[)(.*?)(\\\\\\\\])$\"}]},\"inlines\":{\"patterns\":[{\"include\":\"#typographic-quotes\"},{\"include\":\"#strong\"},{\"include\":\"#monospace\"},{\"include\":\"#emphasis\"},{\"include\":\"#superscript\"},{\"include\":\"#subscript\"},{\"include\":\"#mark\"},{\"include\":\"#general-block-macro\"},{\"include\":\"#anchor-macro\"},{\"include\":\"#footnote-macro\"},{\"include\":\"#image-macro\"},{\"include\":\"#kbd-macro\"},{\"include\":\"#link-macro\"},{\"include\":\"#stem-macro\"},{\"include\":\"#menu-macro\"},{\"include\":\"#passthrough-macro\"},{\"include\":\"#xref-macro\"},{\"include\":\"#attribute-reference\"},{\"include\":\"#characters\"},{\"include\":\"#bibtex-macro\"},{\"include\":\"#bibliography-anchor\"}]},\"kbd-macro\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.function.asciidoc\"},\"3\":{\"name\":\"string.unquoted.asciidoc\"}},\"match\":\"(?<!\\\\\\\\\\\\\\\\)(kbd|btn):(\\\\\\\\[)((?:\\\\\\\\\\\\\\\\\\\\\\\\]|[^\\\\\\\\]])+?)(\\\\\\\\])\",\"name\":\"markup.macro.kbd.asciidoc\"}]},\"keywords\":{\"patterns\":[{\"comment\":\"Admonition\",\"match\":\"(NOTE|TIP|IMPORTANT|WARNING|CAUTION)\",\"name\":\"entity.name.function.asciidoc\"},{\"comment\":\"Paragraph or verbatim\",\"match\":\"(comment|example|literal|listing|normal|pass|quote|sidebar|source|verse|abstract|partintro)\",\"name\":\"entity.name.function.asciidoc\"},{\"comment\":\"Diagram\",\"match\":\"(actdiag|blockdiag|ditaa|graphviz|meme|mermaid|nwdiag|packetdiag|pikchr|plantuml|rackdiag|seqdiag|shaape|wavedrom)\",\"name\":\"entity.name.function.asciidoc\"},{\"comment\":\"Others\",\"match\":\"(sect[1-4]|preface|colophon|dedication|glossary|bibliography|synopsis|appendix|index|normal|partintro|music|latex|stem)\",\"name\":\"entity.name.function.asciidoc\"}]},\"line-break\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.line-break.asciidoc\"}},\"match\":\"(?<=\\\\\\\\S)\\\\\\\\p{Blank}+(\\\\\\\\+)$\"}]},\"line-break-backslash\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.line-break.asciidoc\"}},\"match\":\"(?<=\\\\\\\\S)\\\\\\\\p{Blank}+(\\\\\\\\\\\\\\\\)$\"}]},\"link-macro\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"markup.link.asciidoc\",\"patterns\":[{\"include\":\"#attribute-reference\"}]},\"2\":{\"name\":\"string.unquoted.asciidoc\"}},\"match\":\"(?:^|<|[\\\\\\\\s>\\\\\\\\(\\\\\\\\)\\\\\\\\[\\\\\\\\];])((?<!\\\\\\\\\\\\\\\\)(?:https?|file|ftp|irc)://[^\\\\\\\\s\\\\\\\\[\\\\\\\\]<]*[^\\\\\\\\s.,\\\\\\\\[\\\\\\\\]<\\\\\\\\)])(?:\\\\\\\\[((?:\\\\\\\\\\\\\\\\\\\\\\\\]|[^\\\\\\\\]])*?)\\\\\\\\])?\",\"name\":\"markup.other.url.asciidoc\"},{\"captures\":{\"1\":{\"name\":\"markup.substitution.attribute-reference.asciidoc\"},\"2\":{\"name\":\"string.unquoted.asciidoc\"}},\"match\":\"(?:^|<|[\\\\\\\\p{Blank}>\\\\\\\\(\\\\\\\\)\\\\\\\\[\\\\\\\\];])((?<!\\\\\\\\\\\\\\\\)\\\\\\\\{uri-\\\\\\\\w+(?:[\\\\\\\\-]\\\\\\\\w+)*(?<!\\\\\\\\\\\\\\\\)\\\\\\\\})(?:\\\\\\\\[((?:\\\\\\\\\\\\\\\\\\\\\\\\]|[^\\\\\\\\]])*?)\\\\\\\\])\",\"name\":\"markup.other.url.asciidoc\"},{\"captures\":{\"1\":{\"name\":\"entity.name.function.asciidoc\"},\"2\":{\"name\":\"markup.link.asciidoc\",\"patterns\":[{\"include\":\"#attribute-reference\"}]},\"3\":{\"name\":\"string.unquoted.asciidoc\"}},\"match\":\"(?<!\\\\\\\\\\\\\\\\)(link|mailto):([^\\\\\\\\s\\\\\\\\[]+)(?:\\\\\\\\[((?:\\\\\\\\\\\\\\\\\\\\\\\\]|[^\\\\\\\\]])*?)\\\\\\\\])\",\"name\":\"markup.other.url.asciidoc\"},{\"match\":\"\\\\\\\\p{Word}[\\\\\\\\p{Word}.%+-]*(@)\\\\\\\\p{Alnum}[\\\\\\\\p{Alnum}.-]*(\\\\\\\\.)\\\\\\\\p{Alpha}{2,4}\\\\\\\\b\",\"name\":\"markup.link.email.asciidoc\"}]},\"list\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"markup.list.bullet.asciidoc\"},\"2\":{\"name\":\"markup.todo.box.asciidoc\"}},\"match\":\"^\\\\\\\\s*(-)\\\\\\\\p{Blank}(\\\\\\\\[[\\\\\\\\p{Blank}\\\\\\\\*x]\\\\\\\\])(?=\\\\\\\\p{Blank})\",\"name\":\"markup.todo.asciidoc\"},{\"captures\":{\"1\":{\"name\":\"markup.list.bullet.asciidoc\"}},\"match\":\"^\\\\\\\\p{Blank}*(-|\\\\\\\\*{1,5}|\\\\\\\\u2022{1,5})(?=\\\\\\\\p{Blank})\",\"name\":\"markup.list.asciidoc\"},{\"captures\":{\"1\":{\"name\":\"markup.list.bullet.asciidoc\"}},\"match\":\"^\\\\\\\\p{Blank}*(\\\\\\\\.{1,5}|\\\\\\\\d+\\\\\\\\.|[a-zA-Z]\\\\\\\\.|[IVXivx]+\\\\\\\\))(?=\\\\\\\\p{Blank})\",\"name\":\"markup.list.asciidoc\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#link-macro\"},{\"include\":\"#attribute-reference\"}]},\"2\":{\"name\":\"markup.list.bullet.asciidoc\"}},\"match\":\"^\\\\\\\\p{Blank}*(.*?\\\\\\\\S)(:{2,4}|;;)($|\\\\\\\\p{Blank}+)\",\"name\":\"markup.heading.list.asciidoc\"}]},\"listing-paragraph\":{\"patterns\":[{\"begin\":\"(?=(?>(?:^\\\\\\\\[(listing)((?:,|#|\\\\\\\\.|%)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.block.listing.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(listing)((?:,|#|\\\\\\\\.|%)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"end\":\"^(\\\\\\\\1)$\"},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"end\":\"^(\\\\\\\\1)$\"},{\"include\":\"#inlines\"}]}]},\"literal-paragraph\":{\"patterns\":[{\"begin\":\"(?=(?>(?:^\\\\\\\\[(literal)((?:,|#|\\\\\\\\.|%)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.block.literal.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(literal)((?:,|#|\\\\\\\\.|%)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#block-title\"},{\"begin\":\"^(\\\\\\\\.{4,})$\",\"comment\":\"literal block\",\"end\":\"^(\\\\\\\\1)$\"},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"end\":\"^(\\\\\\\\1)$\"},{\"include\":\"#inlines\"}]},{\"begin\":\"^(\\\\\\\\.{4,})$\",\"end\":\"^(\\\\\\\\1)$\",\"name\":\"markup.block.literal.asciidoc\"}]},\"mark\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"markup.meta.attribute-list.asciidoc\"},\"2\":{\"name\":\"markup.mark.asciidoc\"},\"3\":{\"name\":\"punctuation.definition.asciidoc\"},\"5\":{\"name\":\"punctuation.definition.asciidoc\"}},\"match\":\"(?<!\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\)(\\\\\\\\[[^\\\\\\\\]]+?\\\\\\\\])((##)(.+?)(##))\",\"name\":\"markup.mark.unconstrained.asciidoc\"},{\"captures\":{\"1\":{\"name\":\"markup.highlight.asciidoc\"},\"2\":{\"name\":\"punctuation.definition.asciidoc\"},\"4\":{\"name\":\"punctuation.definition.asciidoc\"}},\"match\":\"(?<!\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\)((##)(.+?)(##))\",\"name\":\"markup.mark.unconstrained.asciidoc\"},{\"captures\":{\"1\":{\"name\":\"markup.meta.attribute-list.asciidoc\"},\"2\":{\"name\":\"markup.mark.asciidoc\"},\"3\":{\"name\":\"punctuation.definition.asciidoc\"},\"5\":{\"name\":\"punctuation.definition.asciidoc\"}},\"match\":\"(?<![\\\\\\\\\\\\\\\\;:\\\\\\\\p{Word}#])(\\\\\\\\[[^\\\\\\\\]]+?\\\\\\\\])((#)(\\\\\\\\S|\\\\\\\\S.*?\\\\\\\\S)(#)(?!\\\\\\\\p{Word}))\",\"name\":\"markup.mark.constrained.asciidoc\"},{\"captures\":{\"1\":{\"name\":\"markup.meta.attribute-list.asciidoc\"},\"2\":{\"name\":\"markup.highlight.asciidoc\"},\"3\":{\"name\":\"punctuation.definition.asciidoc\"},\"5\":{\"name\":\"punctuation.definition.asciidoc\"}},\"match\":\"(?<![\\\\\\\\\\\\\\\\;:\\\\\\\\p{Word}#])(\\\\\\\\[[^\\\\\\\\]]+?\\\\\\\\])?((#)(\\\\\\\\S|\\\\\\\\S.*?\\\\\\\\S)(#)(?!\\\\\\\\p{Word}))\",\"name\":\"markup.mark.constrained.asciidoc\"}]},\"menu-macro\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.function.asciidoc\"},\"2\":{\"name\":\"markup.link.asciidoc\"},\"3\":{\"name\":\"string.unquoted.asciidoc\"}},\"match\":\"(?<!\\\\\\\\\\\\\\\\)(menu):(\\\\\\\\p{Word}|\\\\\\\\p{Word}.*?\\\\\\\\S)\\\\\\\\[\\\\\\\\p{Blank}*(.+?)?\\\\\\\\]\",\"name\":\"markup.other.menu.asciidoc\"}]},\"monospace\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"markup.meta.attribute-list.asciidoc\"},\"2\":{\"name\":\"markup.raw.monospace.asciidoc\"},\"3\":{\"name\":\"punctuation.definition.asciidoc\"},\"5\":{\"name\":\"punctuation.definition.asciidoc\"}},\"match\":\"(?<!\\\\\\\\\\\\\\\\)(\\\\\\\\[.+?\\\\\\\\])?((``)(.+?)(``))\",\"name\":\"markup.monospace.unconstrained.asciidoc\"},{\"captures\":{\"1\":{\"name\":\"markup.meta.attribute-list.asciidoc\"},\"2\":{\"name\":\"markup.raw.monospace.asciidoc\"},\"3\":{\"name\":\"punctuation.definition.asciidoc\"},\"5\":{\"name\":\"punctuation.definition.asciidoc\"}},\"match\":\"(?<![\\\\\\\\\\\\\\\\;:\\\\\\\\p{Word}\\\\\"\\'`])(\\\\\\\\[.+?\\\\\\\\])?((`)(\\\\\\\\S|\\\\\\\\S.*?\\\\\\\\S)(`))(?![\\\\\\\\p{Word}\\\\\"\\'`])\",\"name\":\"markup.monospace.constrained.asciidoc\"}]},\"open-block\":{\"patterns\":[{\"begin\":\"^(-{2})$\",\"beginCaptures\":{\"1\":{\"name\":\"constant.other.symbol.asciidoc\"}},\"end\":\"^(\\\\\\\\1)$\",\"endCaptures\":{\"1\":{\"name\":\"constant.other.symbol.asciidoc\"}},\"name\":\"markup.block.open.asciidoc\",\"patterns\":[{\"include\":\"$self\"}]}]},\"passthrough-macro\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"markup.meta.attribute-list.asciidoc\"},\"3\":{\"name\":\"support.constant.asciidoc\"},\"4\":{\"name\":\"string.unquoted.asciidoc\",\"patterns\":[{\"include\":\"text.html.basic\"}]},\"5\":{\"name\":\"support.constant.asciidoc\"}},\"match\":\"(?:(?<!\\\\\\\\\\\\\\\\)(\\\\\\\\[([^\\\\\\\\]]+?)\\\\\\\\]))?(?:\\\\\\\\\\\\\\\\{0,2})(?<delim>\\\\\\\\+{2,3}|\\\\\\\\${2})(.*?)(\\\\\\\\k<delim>)\",\"name\":\"markup.macro.inline.passthrough.asciidoc\"},{\"begin\":\"(?<!\\\\\\\\\\\\\\\\)(pass:)([a-z,]*)(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.asciidoc\"},\"2\":{\"name\":\"markup.meta.attribute-list.asciidoc\"}},\"contentName\":\"string.unquoted.asciidoc\",\"end\":\"\\\\\\\\]|^$\",\"name\":\"markup.macro.inline.passthrough.asciidoc\",\"patterns\":[{\"include\":\"text.html.basic\"}]}]},\"passthrough-paragraph\":{\"patterns\":[{\"begin\":\"(?=(?>(?:^\\\\\\\\[(pass)((?:,|#|\\\\\\\\.|%)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\+\\\\\\\\+)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.block.passthrough.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(pass)((?:,|#|\\\\\\\\.|%)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#block-title\"},{\"begin\":\"^(\\\\\\\\+{4,})\\\\\\\\s*$\",\"comment\":\"passthrough block\",\"end\":\"(?<=\\\\\\\\1)\",\"patterns\":[{\"include\":\"text.html.basic\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"end\":\"(?<=\\\\\\\\1)\",\"patterns\":[{\"include\":\"text.html.basic\"}]}]},{\"begin\":\"(^\\\\\\\\+{4,}$)\",\"end\":\"\\\\\\\\1\",\"name\":\"markup.block.passthrough.asciidoc\",\"patterns\":[{\"include\":\"text.html.basic\"}]}]},\"quote-paragraph\":{\"patterns\":[{\"begin\":\"(?=(?>(?:^\\\\\\\\[(quote|verse)((?:,|#|\\\\\\\\.|%)([^,\\\\\\\\]]+))*\\\\\\\\]$)))\",\"end\":\"((?<=____|\\\\\"\\\\\"|--)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.italic.quotes.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(quote|verse)((?:,|#|\\\\\\\\.|%)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#block-title\"},{\"include\":\"#inlines\"},{\"begin\":\"^([_]{4,})\\\\\\\\s*$\",\"comment\":\"quotes block\",\"end\":\"(?<=\\\\\\\\1)\",\"patterns\":[{\"include\":\"#inlines\"},{\"include\":\"#list\"}]},{\"begin\":\"^(\\\\\"{2})\\\\\\\\s*$\",\"comment\":\"air quotes\",\"end\":\"(?<=\\\\\\\\1)\",\"patterns\":[{\"include\":\"#inlines\"},{\"include\":\"#list\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"end\":\"(?<=\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#inlines\"},{\"include\":\"#list\"}]}]},{\"begin\":\"^(\\\\\"\\\\\")$\",\"end\":\"^\\\\\\\\1$\",\"name\":\"markup.italic.quotes.asciidoc\",\"patterns\":[{\"include\":\"#inlines\"},{\"include\":\"#list\"}]},{\"begin\":\"^\\\\\\\\p{Blank}*(>) \",\"end\":\"^\\\\\\\\p{Blank}*?$\",\"name\":\"markup.italic.quotes.asciidoc\",\"patterns\":[{\"include\":\"#inlines\"},{\"include\":\"#list\"}]}]},\"sidebar-paragraph\":{\"patterns\":[{\"begin\":\"(?=(?>(?:^\\\\\\\\[(sidebar)((?:,|#|\\\\\\\\.|%)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\*\\\\\\\\*\\\\\\\\*\\\\\\\\*)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.block.sidebar.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(sidebar)((?:,|#|\\\\\\\\.|%)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#block-title\"},{\"begin\":\"^(\\\\\\\\*{4,})$\",\"comment\":\"sidebar block\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"^(-{2})$\",\"comment\":\"open block\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"$self\"}]},{\"include\":\"#inlines\"}]},{\"begin\":\"^(\\\\\\\\*{4,})$\",\"end\":\"^(\\\\\\\\1)$\",\"name\":\"markup.block.sidebar.asciidoc\",\"patterns\":[{\"include\":\"$self\"}]}]},\"source-asciidoctor\":{\"patterns\":[{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(c))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.c.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(c))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.c\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.c\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.c\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.c\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.c\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.c\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(clojure))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.clojure.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(clojure))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.clojure\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.clojure\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.clojure\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.clojure\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.clojure\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.clojure\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(coffee-?(script)?))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.coffee.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(coffee-?(script)?))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.coffee\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.coffee\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.coffee\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.coffee\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.coffee\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.coffee\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(c(pp|\\\\\\\\+\\\\\\\\+)))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.cpp.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(c(pp|\\\\\\\\+\\\\\\\\+)))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.cpp\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.cpp\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.cpp\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.cpp\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.cpp\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.cpp\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(css))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.css.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(css))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.css\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.css\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.css\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.css\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.css\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.css\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(cs(harp)?))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.cs.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(cs(harp)?))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.cs\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.cs\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.cs\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.cs\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.cs\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.cs\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(diff|patch|rej))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.diff.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(diff|patch|rej))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.diff\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.diff\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.diff\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.diff\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.diff\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.diff\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(docker(file)?))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.dockerfile.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(docker(file)?))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.dockerfile\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.dockerfile\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.dockerfile\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.dockerfile\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.dockerfile\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.dockerfile\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(elixir))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.elixir.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(elixir))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.elixir\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.elixir\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.elixir\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.elixir\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.elixir\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.elixir\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(elm))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.elm.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(elm))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.elm\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.elm\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.elm\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.elm\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.elm\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.elm\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(erlang))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.erlang.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(erlang))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.erlang\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.erlang\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.erlang\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.erlang\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.erlang\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.erlang\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(go(lang)?))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.go.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(go(lang)?))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.go\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.go\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.go\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.go\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.go\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.go\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(groovy))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.groovy.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(groovy))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.groovy\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.groovy\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.groovy\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.groovy\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.groovy\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.groovy\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(haskell))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.haskell.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(haskell))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.haskell\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.haskell\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.haskell\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.haskell\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.haskell\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.haskell\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(html))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.html.basic.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(html))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"text.embedded.html.basic\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"text.html.basic\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"text.embedded.html.basic\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"text.html.basic\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"text.embedded.html.basic\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"text.html.basic\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(java))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.java.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(java))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.java\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.java\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.java\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.java\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.java\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.java\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(javascript|js))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.js.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(javascript|js))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.js\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.js\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.js\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.js\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.js\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.js\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(json))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.json.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(json))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.json\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.json\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.json\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.json\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.json\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.json\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(jsx))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.js.jsx.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(jsx))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.js.jsx\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.js.jsx\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.js.jsx\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.js.jsx\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.js.jsx\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.js.jsx\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(julia))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.julia.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(julia))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.julia\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.julia\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.julia\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.julia\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.julia\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.julia\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(kotlin|kts?))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.kotlin.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(kotlin|kts?))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.kotlin\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.kotlin\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.kotlin\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.kotlin\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.kotlin\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.kotlin\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(less))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.css.less.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(less))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.css.less\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.css.less\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.css.less\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.css.less\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.css.less\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.css.less\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(make(file)?))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.makefile.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(make(file)?))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.makefile\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.makefile\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.makefile\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.makefile\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.makefile\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.makefile\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(markdown|mdown|md))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.gfm.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(markdown|mdown|md))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.gfm\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.gfm\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.gfm\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.gfm\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.gfm\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.gfm\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(mustache))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.html.mustache.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(mustache))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"text.embedded.html.mustache\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"text.html.mustache\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"text.embedded.html.mustache\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"text.html.mustache\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"text.embedded.html.mustache\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"text.html.mustache\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(objc|objective-c))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.objc.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(objc|objective-c))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.objc\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.objc\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.objc\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.objc\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.objc\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.objc\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(ocaml))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.ocaml.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(ocaml))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.ocaml\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.ocaml\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.ocaml\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.ocaml\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.ocaml\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.ocaml\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(perl))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.perl.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(perl))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.perl\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.perl\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.perl\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.perl\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.perl\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.perl\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(perl6))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.perl6.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(perl6))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.perl6\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.perl6\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.perl6\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.perl6\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.perl6\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.perl6\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(php))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.html.php.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(php))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"text.embedded.html.php\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"text.html.php\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"text.embedded.html.php\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"text.html.php\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"text.embedded.html.php\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"text.html.php\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(properties))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.asciidoc.properties.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(properties))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.asciidoc.properties\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.asciidoc.properties\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.asciidoc.properties\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.asciidoc.properties\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.asciidoc.properties\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.asciidoc.properties\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(py(thon)?))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.python.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(py(thon)?))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.python\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.python\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.python\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.python\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.python\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.python\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(r))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.r.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(r))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.r\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.r\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.r\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.r\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.r\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.r\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(ruby|rb))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.ruby.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(ruby|rb))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.ruby\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.ruby\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.ruby\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.ruby\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.ruby\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.ruby\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(rust|rs))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.rust.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(rust|rs))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.rust\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.rust\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.rust\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.rust\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.rust\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.rust\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(sass))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.sass.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(sass))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.sass\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.sass\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.sass\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.sass\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.sass\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.sass\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(scala))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.scala.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(scala))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.scala\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.scala\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.scala\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.scala\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.scala\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.scala\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(scss))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.css.scss.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(scss))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.css.scss\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.css.scss\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.css.scss\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.css.scss\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.css.scss\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.css.scss\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(sh|bash|shell))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.shell.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(sh|bash|shell))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.shell\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.shell\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.shell\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.shell\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.shell\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.shell\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(sql))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.sql.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(sql))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.sql\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.sql\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.sql\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.sql\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.sql\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.sql\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(swift))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.swift.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(swift))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.swift\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.swift\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.swift\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.swift\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.swift\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.swift\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(toml))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.toml.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(toml))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.toml\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.toml\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.toml\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.toml\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.toml\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.toml\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(typescript|ts))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.ts.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(typescript|ts))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.ts\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.ts\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.ts\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.ts\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.ts\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.ts\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(xml))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.xml.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(xml))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"text.embedded.xml\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"text.xml\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"text.embedded.xml\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"text.xml\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"text.embedded.xml\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"text.xml\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(ya?ml))((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"name\":\"markup.code.yaml.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)(?:,|#)\\\\\\\\p{Blank}*(?i:(ya?ml))((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"contentName\":\"source.embedded.yaml\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.yaml\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"contentName\":\"source.embedded.yaml\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.yaml\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"contentName\":\"source.embedded.yaml\",\"end\":\"^(\\\\\\\\1)$\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"},{\"include\":\"source.yaml\"}]}]},{\"begin\":\"(?=(?>(?:^\\\\\\\\[(source)((?:,|#)[^\\\\\\\\]]+)*\\\\\\\\]$)))\",\"end\":\"((?<=--|\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\.)$|^\\\\\\\\p{Blank}*$)\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.heading.asciidoc\",\"patterns\":[{\"include\":\"#block-attribute-inner\"}]}},\"match\":\"^\\\\\\\\[(source)((?:,|#)([^,\\\\\\\\]]+))*\\\\\\\\]$\"},{\"include\":\"#inlines\"},{\"include\":\"#block-title\"},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"comment\":\"listing block\",\"end\":\"^(\\\\\\\\1)$\",\"name\":\"markup.raw.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"}]},{\"begin\":\"^(-{2})\\\\\\\\s*$\",\"comment\":\"open block\",\"end\":\"^(\\\\\\\\1)$\",\"name\":\"markup.raw.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"}]},{\"begin\":\"^(\\\\\\\\.{4})\\\\\\\\s*$\",\"comment\":\"literal block\",\"end\":\"^(\\\\\\\\1)$\",\"name\":\"markup.raw.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"}]}]},{\"begin\":\"^(-{4,})\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"end\":\"^(\\\\\\\\1)$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.raw.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"#include-directive\"}]}]},\"source-markdown\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(c))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.c\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.c.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.c\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(clojure))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.clojure\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.clojure.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.clojure\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(coffee-?(script)?))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.coffee\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.coffee.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.coffee\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(c(pp|\\\\\\\\+\\\\\\\\+)))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.cpp\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.cpp.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.cpp\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(css))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.css\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.css.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.css\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(cs(harp)?))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.cs\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.cs.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.cs\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(diff|patch|rej))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.diff\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.diff.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.diff\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(docker(file)?))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.dockerfile\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.dockerfile.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.dockerfile\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(elixir))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.elixir\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.elixir.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.elixir\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(elm))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.elm\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.elm.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.elm\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(erlang))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.erlang\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.erlang.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.erlang\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(go(lang)?))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.go\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.go.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.go\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(groovy))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.groovy\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.groovy.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.groovy\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(haskell))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.haskell\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.haskell.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.haskell\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(html))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"text.embedded.html.basic\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.html.basic.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"text.html.basic\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(java))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.java\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.java.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.java\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(javascript|js))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.js\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.js.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.js\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(json))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.json\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.json.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.json\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(jsx))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.js.jsx\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.js.jsx.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.js.jsx\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(julia))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.julia\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.julia.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.julia\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(kotlin|kts?))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.kotlin\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.kotlin.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.kotlin\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(less))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.css.less\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.css.less.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.css.less\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(make(file)?))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.makefile\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.makefile.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.makefile\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(markdown|mdown|md))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.gfm\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.gfm.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.gfm\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(mustache))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"text.embedded.html.mustache\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.html.mustache.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"text.html.mustache\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(objc|objective-c))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.objc\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.objc.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.objc\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(ocaml))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.ocaml\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.ocaml.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.ocaml\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(perl))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.perl\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.perl.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.perl\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(perl6))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.perl6\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.perl6.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.perl6\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(php))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"text.embedded.html.php\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.html.php.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"text.html.php\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(properties))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.asciidoc.properties\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.asciidoc.properties.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.asciidoc.properties\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(py(thon)?))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.python\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.python.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.python\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(r))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.r\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.r.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.r\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(ruby|rb))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.ruby\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.ruby.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.ruby\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(rust|rs))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.rust\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.rust.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.rust\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(sass))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.sass\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.sass.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.sass\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(scala))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.scala\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.scala.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.scala\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(scss))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.css.scss\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.css.scss.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.css.scss\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(sh|bash|shell))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.shell\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.shell.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.shell\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(sql))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.sql\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.sql.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.sql\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(swift))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.swift\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.swift.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.swift\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(toml))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.toml\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.toml.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.toml\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(typescript|ts))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.ts\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.ts.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.ts\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(xml))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"text.embedded.xml\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.xml.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"text.xml\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,})\\\\\\\\s*(?i:(ya?ml))\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"contentName\":\"source.embedded.yaml\",\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.code.yaml.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"},{\"include\":\"source.yaml\"}]},{\"begin\":\"^\\\\\\\\s*(`{3,}).*$\",\"beginCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"end\":\"^\\\\\\\\s*\\\\\\\\1\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"support.asciidoc\"}},\"name\":\"markup.raw.asciidoc\",\"patterns\":[{\"include\":\"#block-callout\"}]}]},\"source-paragraphs\":{\"patterns\":[{\"include\":\"#source-asciidoctor\"},{\"include\":\"#source-markdown\"}]},\"stem-macro\":{\"patterns\":[{\"begin\":\"(?<!\\\\\\\\\\\\\\\\)(stem|(?:latex|ascii)math):([a-z,]*)(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.asciidoc\"},\"2\":{\"name\":\"markup.meta.attribute-list.asciidoc\"}},\"contentName\":\"string.unquoted.asciidoc\",\"end\":\"\\\\\\\\]|^$\",\"name\":\"markup.macro.inline.stem.asciidoc\"}]},\"strong\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"markup.meta.attribute-list.asciidoc\"},\"2\":{\"name\":\"markup.bold.asciidoc\"},\"3\":{\"name\":\"punctuation.definition.asciidoc\"},\"5\":{\"name\":\"punctuation.definition.asciidoc\"}},\"match\":\"(?<!\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\)(\\\\\\\\[.+?\\\\\\\\])?((\\\\\\\\*\\\\\\\\*)(.+?)(\\\\\\\\*\\\\\\\\*))\",\"name\":\"markup.strong.unconstrained.asciidoc\"},{\"captures\":{\"1\":{\"name\":\"markup.meta.attribute-list.asciidoc\"},\"2\":{\"name\":\"markup.bold.asciidoc\"},\"3\":{\"name\":\"punctuation.definition.asciidoc\"},\"5\":{\"name\":\"punctuation.definition.asciidoc\"}},\"match\":\"(?<![\\\\\\\\\\\\\\\\;:\\\\\\\\p{Word}\\\\\\\\*])(\\\\\\\\[.+?\\\\\\\\])?((\\\\\\\\*)(\\\\\\\\S|\\\\\\\\S.*?\\\\\\\\S)(\\\\\\\\*)(?!\\\\\\\\p{Word}))\",\"name\":\"markup.strong.constrained.asciidoc\"}]},\"subscript\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"markup.meta.sub.attribute-list.asciidoc\"},\"2\":{\"name\":\"markup.sub.subscript.asciidoc\"},\"3\":{\"name\":\"punctuation.definition.asciidoc\"},\"5\":{\"name\":\"punctuation.definition.asciidoc\"}},\"match\":\"(?<!\\\\\\\\\\\\\\\\)(\\\\\\\\[.+?\\\\\\\\])?((~)(\\\\\\\\S+?)(~))\",\"name\":\"markup.subscript.asciidoc\"}]},\"superscript\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"markup.meta.super.attribute-list.asciidoc\"},\"2\":{\"name\":\"markup.super.superscript.asciidoc\"},\"3\":{\"name\":\"punctuation.definition.asciidoc\"},\"5\":{\"name\":\"punctuation.definition.asciidoc\"}},\"match\":\"(?<!\\\\\\\\\\\\\\\\)(\\\\\\\\[.+?\\\\\\\\])?((\\\\\\\\^)(\\\\\\\\S+?)(\\\\\\\\^))\",\"name\":\"markup.superscript.asciidoc\"}]},\"table-csv\":{\"patterns\":[{\"begin\":\"^(,===)$\",\"beginCaptures\":{\"0\":{\"name\":\"markup.table.delimiter.asciidoc\"}},\"contentName\":\"string.unquoted.asciidoc\",\"end\":\"^(\\\\\\\\1)$\",\"endCaptures\":{\"0\":{\"name\":\"markup.table.delimiter.asciidoc\"}},\"name\":\"markup.table.csv.asciidoc\",\"patterns\":[{\"include\":\"text.csv\"},{\"captures\":{\"0\":{\"name\":\"markup.table.cell.delimiter.asciidoc\"}},\"comment\":\"cell separator\",\"match\":\",\"},{\"include\":\"#general-block-macro\"}]}]},\"table-dsv\":{\"patterns\":[{\"begin\":\"^(:===)$\",\"beginCaptures\":{\"0\":{\"name\":\"markup.table.delimiter.asciidoc\"}},\"contentName\":\"string.unquoted.asciidoc\",\"end\":\"^(\\\\\\\\1)$\",\"endCaptures\":{\"0\":{\"name\":\"markup.table.delimiter.asciidoc\"}},\"name\":\"markup.table.dsv.asciidoc\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"markup.table.cell.delimiter.asciidoc\"}},\"comment\":\"cell separator\",\"match\":\":\"},{\"include\":\"#general-block-macro\"}]}]},\"table-nested\":{\"patterns\":[{\"begin\":\"^(!===)$\",\"beginCaptures\":{\"0\":{\"name\":\"markup.table.delimiter.asciidoc\"}},\"contentName\":\"markup.table.content.asciidoc\",\"end\":\"^(\\\\\\\\1)$\",\"endCaptures\":{\"0\":{\"name\":\"markup.table.delimiter.asciidoc\"}},\"name\":\"markup.table.nested.asciidoc\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"markup.meta.attribute-list.asciidoc\"},\"2\":{\"name\":\"markup.table.cell.delimiter.asciidoc\"}},\"comment\":\"cell separator and attributes\",\"match\":\"(^|[^\\\\\\\\p{Blank}\\\\\\\\\\\\\\\\]*)(?<!\\\\\\\\\\\\\\\\)(!)\"},{\"include\":\"#tables-includes\"}]}]},\"table-psv\":{\"patterns\":[{\"begin\":\"^(\\\\\\\\|===)\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"markup.table.delimiter.asciidoc\"}},\"contentName\":\"markup.table.content.asciidoc\",\"end\":\"^(\\\\\\\\1)\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"markup.table.delimiter.asciidoc\"}},\"name\":\"markup.table.asciidoc\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"markup.meta.attribute-list.asciidoc\"},\"2\":{\"name\":\"markup.table.cell.delimiter.asciidoc\"}},\"comment\":\"cell separator and attributes\",\"match\":\"(^|[^\\\\\\\\p{Blank}\\\\\\\\\\\\\\\\]*)(?<!\\\\\\\\\\\\\\\\)(\\\\\\\\|)\"},{\"include\":\"#tables-includes\"}]}]},\"tables\":{\"patterns\":[{\"include\":\"#table-psv\"},{\"include\":\"#table-nested\"},{\"include\":\"#table-csv\"},{\"include\":\"#table-dsv\"}]},\"tables-includes\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#callout-list-item\"},{\"include\":\"#attribute-entry\"},{\"include\":\"#block-title\"},{\"include\":\"#explicit-paragraph\"},{\"include\":\"#section\"},{\"include\":\"#blocks\"},{\"include\":\"#list\"},{\"include\":\"#inlines\"},{\"include\":\"#line-break\"}]},\"titles\":{\"patterns\":[{\"begin\":\"^((?:=|#){6})([\\\\\\\\p{Blank}]+)(?=\\\\\\\\S+)\",\"beginCaptures\":{\"1\":{\"name\":\"markup.heading.marker.asciidoc\"},\"2\":{\"name\":\"markup.heading.space.asciidoc\"}},\"end\":\"$\",\"name\":\"markup.heading.heading-5.asciidoc\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"^((?:=|#){5})([\\\\\\\\p{Blank}]+)(?=\\\\\\\\S+)\",\"beginCaptures\":{\"1\":{\"name\":\"markup.heading.marker.asciidoc\"},\"2\":{\"name\":\"markup.heading.space.asciidoc\"}},\"end\":\"$\",\"name\":\"markup.heading.heading-4.asciidoc\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"^((?:=|#){4})([\\\\\\\\p{Blank}]+)(?=\\\\\\\\S+)\",\"beginCaptures\":{\"1\":{\"name\":\"markup.heading.marker.asciidoc\"},\"2\":{\"name\":\"markup.heading.space.asciidoc\"}},\"end\":\"$\",\"name\":\"markup.heading.heading-3.asciidoc\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"^((?:=|#){3})([\\\\\\\\p{Blank}]+)(?=\\\\\\\\S+)\",\"beginCaptures\":{\"1\":{\"name\":\"markup.heading.marker.asciidoc\"},\"2\":{\"name\":\"markup.heading.space.asciidoc\"}},\"end\":\"$\",\"name\":\"markup.heading.heading-2.asciidoc\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"^((?:=|#){2})([\\\\\\\\p{Blank}]+)(?=\\\\\\\\S+)\",\"beginCaptures\":{\"1\":{\"name\":\"markup.heading.marker.asciidoc\"},\"2\":{\"name\":\"markup.heading.space.asciidoc\"}},\"end\":\"$\",\"name\":\"markup.heading.heading-1.asciidoc\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"^((?:=|#){1})([\\\\\\\\p{Blank}]+)(?=\\\\\\\\S+)\",\"beginCaptures\":{\"1\":{\"name\":\"markup.heading.marker.asciidoc\"},\"2\":{\"name\":\"markup.heading.space.asciidoc\"}},\"end\":\"$\",\"name\":\"markup.heading.heading-0.asciidoc\",\"patterns\":[{\"include\":\"$self\"}]}]},\"typographic-quotes\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"markup.meta.attribute-list.asciidoc\"},\"3\":{\"name\":\"punctuation.definition.asciidoc\"},\"5\":{\"name\":\"punctuation.definition.asciidoc\"}},\"comment\":\"double-quoted\",\"match\":\"(?:^|(?<!\\\\\\\\p{Word}|;|:))(\\\\\\\\[([^\\\\\\\\]]+?)\\\\\\\\])?(\\\\\"`)(\\\\\\\\S|\\\\\\\\S.*?\\\\\\\\S)(`\\\\\")(?!\\\\\\\\p{Word})\",\"name\":\"markup.italic.quote.typographic-quotes.asciidoc\"},{\"captures\":{\"1\":{\"name\":\"markup.meta.attribute-list.asciidoc\"},\"3\":{\"name\":\"punctuation.definition.asciidoc\"},\"5\":{\"name\":\"punctuation.definition.asciidoc\"}},\"comment\":\"single-quoted\",\"match\":\"(?:^|(?<!\\\\\\\\p{Word}|;|:))(\\\\\\\\[([^\\\\\\\\]]+?)\\\\\\\\])?(\\'`)(\\\\\\\\S|\\\\\\\\S.*?\\\\\\\\S)(`\\')(?!\\\\\\\\p{Word})\",\"name\":\"markup.italic.quote.typographic-quotes.asciidoc\"}]},\"xref-macro\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.asciidoc\"},\"2\":{\"name\":\"markup.meta.attribute-list.asciidoc\"},\"3\":{\"name\":\"string.unquoted.asciidoc\"},\"4\":{\"name\":\"constant.asciidoc\"}},\"match\":\"(?<!\\\\\\\\\\\\\\\\)(?:(<<)([\\\\\\\\p{Word}\\\\\":./]+,)?(.*?)(>>))\",\"name\":\"markup.reference.xref.asciidoc\"},{\"begin\":\"(?<!\\\\\\\\\\\\\\\\)(xref:)([\\\\\\\\p{Word}\\\\\":.\\\\\\\\/].*?)(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.asciidoc\"},\"2\":{\"name\":\"markup.meta.attribute-list.asciidoc\"}},\"contentName\":\"string.unquoted.asciidoc\",\"end\":\"\\\\\\\\]|^$\",\"name\":\"markup.reference.xref.asciidoc\"}]}},\"scopeName\":\"text.asciidoc\",\"embeddedLangs\":[],\"aliases\":[\"adoc\"],\"embeddedLangsLazy\":[\"html\",\"yaml\",\"csv\",\"c\",\"clojure\",\"coffee\",\"cpp\",\"css\",\"csharp\",\"diff\",\"docker\",\"elixir\",\"elm\",\"erlang\",\"go\",\"groovy\",\"haskell\",\"java\",\"javascript\",\"json\",\"jsx\",\"julia\",\"kotlin\",\"less\",\"make\",\"objective-c\",\"ocaml\",\"perl\",\"python\",\"r\",\"ruby\",\"rust\",\"sass\",\"scala\",\"scss\",\"shellscript\",\"sql\",\"swift\",\"toml\",\"typescript\",\"xml\"]}')),c=[e];export{c as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BPUjjr-i.js",
    "content": "import{a1 as l}from\"./CU_MfyYc.js\";/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var i=Object.defineProperty,s=Object.getOwnPropertyDescriptor,d=Object.getOwnPropertyNames,c=Object.prototype.hasOwnProperty,p=(t,e,a,m)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let n of d(e))!c.call(t,n)&&n!==a&&i(t,n,{get:()=>e[n],enumerable:!(m=s(e,n))||m.enumerable});return t},h=(t,e,a)=>(p(t,e,\"default\"),a),r={};h(r,l);var o=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"menuitem\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"],u={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\$\\^\\&\\*\\(\\)\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\s]+)/g,comments:{blockComment:[\"{{!--\",\"--}}\"]},brackets:[[\"<!--\",\"-->\"],[\"<\",\">\"],[\"{{\",\"}}\"],[\"{\",\"}\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"<\",close:\">\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${o.join(\"|\")}))(\\\\w[\\\\w\\\\d]*)([^/>]*(?!/)>)[^<]*$`,\"i\"),afterText:/^<\\/(\\w[\\w\\d]*)\\s*>$/i,action:{indentAction:r.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${o.join(\"|\")}))(\\\\w[\\\\w\\\\d]*)([^/>]*(?!/)>)[^<]*$`,\"i\"),action:{indentAction:r.languages.IndentAction.Indent}}]},y={defaultToken:\"\",tokenPostfix:\"\",tokenizer:{root:[[/\\{\\{!--/,\"comment.block.start.handlebars\",\"@commentBlock\"],[/\\{\\{!/,\"comment.start.handlebars\",\"@comment\"],[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.root\"}],[/<!DOCTYPE/,\"metatag.html\",\"@doctype\"],[/<!--/,\"comment.html\",\"@commentHtml\"],[/(<)(\\w+)(\\/>)/,[\"delimiter.html\",\"tag.html\",\"delimiter.html\"]],[/(<)(script)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@script\"}]],[/(<)(style)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@style\"}]],[/(<)([:\\w]+)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@otherTag\"}]],[/(<\\/)(\\w+)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@otherTag\"}]],[/</,\"delimiter.html\"],[/\\{/,\"delimiter.html\"],[/[^<{]+/]],doctype:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.comment\"}],[/[^>]+/,\"metatag.content.html\"],[/>/,\"metatag.html\",\"@pop\"]],comment:[[/\\}\\}/,\"comment.end.handlebars\",\"@pop\"],[/./,\"comment.content.handlebars\"]],commentBlock:[[/--\\}\\}/,\"comment.block.end.handlebars\",\"@pop\"],[/./,\"comment.content.handlebars\"]],commentHtml:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.comment\"}],[/-->/,\"comment.html\",\"@pop\"],[/[^-]+/,\"comment.content.html\"],[/./,\"comment.content.html\"]],otherTag:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.otherTag\"}],[/\\/?>/,\"delimiter.html\",\"@pop\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/]],script:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.script\"}],[/type/,\"attribute.name\",\"@scriptAfterType\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.text/javascript\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/(<\\/)(script\\s*)(>)/,[\"delimiter.html\",\"tag.html\",{token:\"delimiter.html\",next:\"@pop\"}]]],scriptAfterType:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.scriptAfterType\"}],[/=/,\"delimiter\",\"@scriptAfterTypeEquals\"],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.text/javascript\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptAfterTypeEquals:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.scriptAfterTypeEquals\"}],[/\"([^\"]*)\"/,{token:\"attribute.value\",switchTo:\"@scriptWithCustomType.$1\"}],[/'([^']*)'/,{token:\"attribute.value\",switchTo:\"@scriptWithCustomType.$1\"}],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.text/javascript\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptWithCustomType:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.scriptWithCustomType.$S2\"}],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.$S2\",nextEmbedded:\"$S2\"}],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptEmbedded:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInEmbeddedState.scriptEmbedded.$S2\",nextEmbedded:\"@pop\"}],[/<\\/script/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}]],style:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.style\"}],[/type/,\"attribute.name\",\"@styleAfterType\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.text/css\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/(<\\/)(style\\s*)(>)/,[\"delimiter.html\",\"tag.html\",{token:\"delimiter.html\",next:\"@pop\"}]]],styleAfterType:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.styleAfterType\"}],[/=/,\"delimiter\",\"@styleAfterTypeEquals\"],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.text/css\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleAfterTypeEquals:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.styleAfterTypeEquals\"}],[/\"([^\"]*)\"/,{token:\"attribute.value\",switchTo:\"@styleWithCustomType.$1\"}],[/'([^']*)'/,{token:\"attribute.value\",switchTo:\"@styleWithCustomType.$1\"}],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.text/css\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleWithCustomType:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInSimpleState.styleWithCustomType.$S2\"}],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.$S2\",nextEmbedded:\"$S2\"}],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleEmbedded:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@handlebarsInEmbeddedState.styleEmbedded.$S2\",nextEmbedded:\"@pop\"}],[/<\\/style/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}]],handlebarsInSimpleState:[[/\\{\\{\\{?/,\"delimiter.handlebars\"],[/\\}\\}\\}?/,{token:\"delimiter.handlebars\",switchTo:\"@$S2.$S3\"}],{include:\"handlebarsRoot\"}],handlebarsInEmbeddedState:[[/\\{\\{\\{?/,\"delimiter.handlebars\"],[/\\}\\}\\}?/,{token:\"delimiter.handlebars\",switchTo:\"@$S2.$S3\",nextEmbedded:\"$S3\"}],{include:\"handlebarsRoot\"}],handlebarsRoot:[[/\"[^\"]*\"/,\"string.handlebars\"],[/[#/][^\\s}]+/,\"keyword.helper.handlebars\"],[/else\\b/,\"keyword.helper.handlebars\"],[/[\\s]+/],[/[^}]/,\"variable.parameter.handlebars\"]]}};export{u as conf,y as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/BPhBrDlE.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"CSS\",\"name\":\"css\",\"patterns\":[{\"include\":\"#comment-block\"},{\"include\":\"#escapes\"},{\"include\":\"#combinators\"},{\"include\":\"#selector\"},{\"include\":\"#at-rules\"},{\"include\":\"#rule-list\"}],\"repository\":{\"at-rules\":{\"patterns\":[{\"begin\":\"\\\\\\\\A(?:\\\\\\\\xEF\\\\\\\\xBB\\\\\\\\xBF)?(?i:(?=\\\\\\\\s*@charset\\\\\\\\b))\",\"end\":\";|(?=$)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.rule.css\"}},\"name\":\"meta.at-rule.charset.css\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"invalid.illegal.not-lowercase.charset.css\"},\"2\":{\"name\":\"invalid.illegal.leading-whitespace.charset.css\"},\"3\":{\"name\":\"invalid.illegal.no-whitespace.charset.css\"},\"4\":{\"name\":\"invalid.illegal.whitespace.charset.css\"},\"5\":{\"name\":\"invalid.illegal.not-double-quoted.charset.css\"},\"6\":{\"name\":\"invalid.illegal.unclosed-string.charset.css\"},\"7\":{\"name\":\"invalid.illegal.unexpected-characters.charset.css\"}},\"match\":\"\\\\\\\\G((?!@charset)@\\\\\\\\w+)|\\\\\\\\G(\\\\\\\\s+)|(@charset\\\\\\\\S[^;]*)|(?<=@charset)(\\\\\\\\x20{2,}|\\\\\\\\t+)|(?<=@charset\\\\\\\\x20)([^\\\\\";]+)|(\\\\\"[^\\\\\"]+$)|(?<=\\\\\")([^;]+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.at-rule.charset.css\"},\"2\":{\"name\":\"punctuation.definition.keyword.css\"}},\"match\":\"((@)charset)(?=\\\\\\\\s)\"},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.css\"}},\"end\":\"\\\\\"|$\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.css\"}},\"name\":\"string.quoted.double.css\",\"patterns\":[{\"begin\":\"(?:\\\\\\\\G|^)(?=(?:[^\\\\\"])+$)\",\"end\":\"$\",\"name\":\"invalid.illegal.unclosed.string.css\"}]}]},{\"begin\":\"(?i)((@)import)(?:\\\\\\\\s+|$|(?=['\\\\\"]|/\\\\\\\\*))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.at-rule.import.css\"},\"2\":{\"name\":\"punctuation.definition.keyword.css\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.rule.css\"}},\"name\":\"meta.at-rule.import.css\",\"patterns\":[{\"begin\":\"\\\\\\\\G\\\\\\\\s*(?=/\\\\\\\\*)\",\"end\":\"(?<=\\\\\\\\*/)\\\\\\\\s*\",\"patterns\":[{\"include\":\"#comment-block\"}]},{\"include\":\"#string\"},{\"include\":\"#url\"},{\"include\":\"#media-query-list\"}]},{\"begin\":\"(?i)((@)font-face)(?=\\\\\\\\s*|{|/\\\\\\\\*|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.at-rule.font-face.css\"},\"2\":{\"name\":\"punctuation.definition.keyword.css\"}},\"end\":\"(?!\\\\\\\\G)\",\"name\":\"meta.at-rule.font-face.css\",\"patterns\":[{\"include\":\"#comment-block\"},{\"include\":\"#escapes\"},{\"include\":\"#rule-list\"}]},{\"begin\":\"(?i)(@)page(?=[\\\\\\\\s:{]|/\\\\\\\\*|$)\",\"captures\":{\"0\":{\"name\":\"keyword.control.at-rule.page.css\"},\"1\":{\"name\":\"punctuation.definition.keyword.css\"}},\"end\":\"(?=\\\\\\\\s*($|[:{;]))\",\"name\":\"meta.at-rule.page.css\",\"patterns\":[{\"include\":\"#rule-list\"}]},{\"begin\":\"(?i)(?=@media(\\\\\\\\s|\\\\\\\\(|/\\\\\\\\*|$))\",\"end\":\"(?<=})(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\G(@)media\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.at-rule.media.css\"},\"1\":{\"name\":\"punctuation.definition.keyword.css\"}},\"end\":\"(?=\\\\\\\\s*[{;])\",\"name\":\"meta.at-rule.media.header.css\",\"patterns\":[{\"include\":\"#media-query-list\"}]},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.media.begin.bracket.curly.css\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.media.end.bracket.curly.css\"}},\"name\":\"meta.at-rule.media.body.css\",\"patterns\":[{\"include\":\"$self\"}]}]},{\"begin\":\"(?i)(?=@counter-style([\\\\\\\\s'\\\\\"{;]|/\\\\\\\\*|$))\",\"end\":\"(?<=})(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\G(@)counter-style\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.at-rule.counter-style.css\"},\"1\":{\"name\":\"punctuation.definition.keyword.css\"}},\"end\":\"(?=\\\\\\\\s*{)\",\"name\":\"meta.at-rule.counter-style.header.css\",\"patterns\":[{\"include\":\"#comment-block\"},{\"include\":\"#escapes\"},{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#escapes\"}]}},\"match\":\"(?:[-a-zA-Z_]|[^\\\\\\\\x00-\\\\\\\\x7F])(?:[-a-zA-Z0-9_]|[^\\\\\\\\x00-\\\\\\\\x7F]|\\\\\\\\\\\\\\\\(?:[0-9a-fA-F]{1,6}|.))*\",\"name\":\"variable.parameter.style-name.css\"}]},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.property-list.begin.bracket.curly.css\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.property-list.end.bracket.curly.css\"}},\"name\":\"meta.at-rule.counter-style.body.css\",\"patterns\":[{\"include\":\"#comment-block\"},{\"include\":\"#escapes\"},{\"include\":\"#rule-list-innards\"}]}]},{\"begin\":\"(?i)(?=@document([\\\\\\\\s'\\\\\"{;]|/\\\\\\\\*|$))\",\"end\":\"(?<=})(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\G(@)document\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.at-rule.document.css\"},\"1\":{\"name\":\"punctuation.definition.keyword.css\"}},\"end\":\"(?=\\\\\\\\s*[{;])\",\"name\":\"meta.at-rule.document.header.css\",\"patterns\":[{\"begin\":\"(?i)(?<![\\\\\\\\w-])(url-prefix|domain|regexp)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.document-rule.css\"},\"2\":{\"name\":\"punctuation.section.function.begin.bracket.round.css\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.function.end.bracket.round.css\"}},\"name\":\"meta.function.document-rule.css\",\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#comment-block\"},{\"include\":\"#escapes\"},{\"match\":\"[^'\\\\\")\\\\\\\\s]+\",\"name\":\"variable.parameter.document-rule.css\"}]},{\"include\":\"#url\"},{\"include\":\"#commas\"},{\"include\":\"#comment-block\"},{\"include\":\"#escapes\"}]},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.document.begin.bracket.curly.css\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.document.end.bracket.curly.css\"}},\"name\":\"meta.at-rule.document.body.css\",\"patterns\":[{\"include\":\"$self\"}]}]},{\"begin\":\"(?i)(?=@(?:-(?:webkit|moz|o|ms)-)?keyframes([\\\\\\\\s'\\\\\"{;]|/\\\\\\\\*|$))\",\"end\":\"(?<=})(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\G(@)(?:-(?:webkit|moz|o|ms)-)?keyframes\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.at-rule.keyframes.css\"},\"1\":{\"name\":\"punctuation.definition.keyword.css\"}},\"end\":\"(?=\\\\\\\\s*{)\",\"name\":\"meta.at-rule.keyframes.header.css\",\"patterns\":[{\"include\":\"#comment-block\"},{\"include\":\"#escapes\"},{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#escapes\"}]}},\"match\":\"(?:[-a-zA-Z_]|[^\\\\\\\\x00-\\\\\\\\x7F])(?:[-a-zA-Z0-9_]|[^\\\\\\\\x00-\\\\\\\\x7F]|\\\\\\\\\\\\\\\\(?:[0-9a-fA-F]{1,6}|.))*\",\"name\":\"variable.parameter.keyframe-list.css\"}]},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.keyframes.begin.bracket.curly.css\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.keyframes.end.bracket.curly.css\"}},\"name\":\"meta.at-rule.keyframes.body.css\",\"patterns\":[{\"include\":\"#comment-block\"},{\"include\":\"#escapes\"},{\"captures\":{\"1\":{\"name\":\"entity.other.keyframe-offset.css\"},\"2\":{\"name\":\"entity.other.keyframe-offset.percentage.css\"}},\"match\":\"(?xi)\\\\n(?<![\\\\\\\\w-]) (from|to) (?![\\\\\\\\w-])         # Keywords for 0% | 100%\\\\n|\\\\n([-+]?(?:\\\\\\\\d+(?:\\\\\\\\.\\\\\\\\d+)?|\\\\\\\\.\\\\\\\\d+)%)     # Percentile value\"},{\"include\":\"#rule-list\"}]}]},{\"begin\":\"(?i)(?=@supports(\\\\\\\\s|\\\\\\\\(|/\\\\\\\\*|$))\",\"end\":\"(?<=})(?!\\\\\\\\G)|(?=;)\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\G(@)supports\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.at-rule.supports.css\"},\"1\":{\"name\":\"punctuation.definition.keyword.css\"}},\"end\":\"(?=\\\\\\\\s*[{;])\",\"name\":\"meta.at-rule.supports.header.css\",\"patterns\":[{\"include\":\"#feature-query-operators\"},{\"include\":\"#feature-query\"},{\"include\":\"#comment-block\"},{\"include\":\"#escapes\"}]},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.supports.begin.bracket.curly.css\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.supports.end.bracket.curly.css\"}},\"name\":\"meta.at-rule.supports.body.css\",\"patterns\":[{\"include\":\"$self\"}]}]},{\"begin\":\"(?i)((@)(-(ms|o)-)?viewport)(?=[\\\\\\\\s'\\\\\"{;]|/\\\\\\\\*|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.at-rule.viewport.css\"},\"2\":{\"name\":\"punctuation.definition.keyword.css\"}},\"end\":\"(?=\\\\\\\\s*[@{;])\",\"name\":\"meta.at-rule.viewport.css\",\"patterns\":[{\"include\":\"#comment-block\"},{\"include\":\"#escapes\"}]},{\"begin\":\"(?i)((@)font-feature-values)(?=[\\\\\\\\s'\\\\\"{;]|/\\\\\\\\*|$)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.at-rule.font-feature-values.css\"},\"2\":{\"name\":\"punctuation.definition.keyword.css\"}},\"contentName\":\"variable.parameter.font-name.css\",\"end\":\"(?=\\\\\\\\s*[@{;])\",\"name\":\"meta.at-rule.font-features.css\",\"patterns\":[{\"include\":\"#comment-block\"},{\"include\":\"#escapes\"}]},{\"include\":\"#font-features\"},{\"begin\":\"(?i)((@)namespace)(?=[\\\\\\\\s'\\\\\";]|/\\\\\\\\*|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.at-rule.namespace.css\"},\"2\":{\"name\":\"punctuation.definition.keyword.css\"}},\"end\":\";|(?=[@{])\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.rule.css\"}},\"name\":\"meta.at-rule.namespace.css\",\"patterns\":[{\"include\":\"#url\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#comment-block\"}]},\"2\":{\"name\":\"entity.name.function.namespace-prefix.css\",\"patterns\":[{\"include\":\"#escapes\"}]}},\"match\":\"(?xi)\\\\n(?:\\\\\\\\G|^|(?<=\\\\\\\\s))\\\\n(?=\\\\n  (?<=\\\\\\\\s|^)                             # Starts with whitespace\\\\n  (?:[-a-zA-Z_]|[^\\\\\\\\x00-\\\\\\\\x7F])          # Then a valid identifier character\\\\n  |\\\\n  \\\\\\\\s*                                   # Possible adjoining whitespace\\\\n  /\\\\\\\\*(?:[^*]|\\\\\\\\*[^/])*\\\\\\\\*/              # Injected comment\\\\n)\\\\n(.*?)                                    # Grouped to embed #comment-block\\\\n(\\\\n  (?:[-a-zA-Z_]    | [^\\\\\\\\x00-\\\\\\\\x7F])     # First letter\\\\n  (?:[-a-zA-Z0-9_] | [^\\\\\\\\x00-\\\\\\\\x7F]      # Remainder of identifier\\\\n    |\\\\\\\\\\\\\\\\(?:[0-9a-fA-F]{1,6}|.)\\\\n  )*\\\\n)\"},{\"include\":\"#comment-block\"},{\"include\":\"#escapes\"},{\"include\":\"#string\"}]},{\"begin\":\"(?i)(?=@[\\\\\\\\w-]+[^;]+;s*$)\",\"end\":\"(?<=;)(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\G(@)[\\\\\\\\w-]+\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.at-rule.css\"},\"1\":{\"name\":\"punctuation.definition.keyword.css\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.rule.css\"}},\"name\":\"meta.at-rule.header.css\"}]},{\"begin\":\"(?i)(?=@[\\\\\\\\w-]+(\\\\\\\\s|\\\\\\\\(|{|/\\\\\\\\*|$))\",\"end\":\"(?<=})(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\G(@)[\\\\\\\\w-]+\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.at-rule.css\"},\"1\":{\"name\":\"punctuation.definition.keyword.css\"}},\"end\":\"(?=\\\\\\\\s*[{;])\",\"name\":\"meta.at-rule.header.css\"},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.begin.bracket.curly.css\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.end.bracket.curly.css\"}},\"name\":\"meta.at-rule.body.css\",\"patterns\":[{\"include\":\"$self\"}]}]}]},\"color-keywords\":{\"patterns\":[{\"match\":\"(?i)(?<![\\\\\\\\w-])(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)(?![\\\\\\\\w-])\",\"name\":\"support.constant.color.w3c-standard-color-name.css\"},{\"match\":\"(?xi) (?<![\\\\\\\\w-])\\\\n(aliceblue|antiquewhite|aquamarine|azure|beige|bisque|blanchedalmond|blueviolet|brown|burlywood\\\\n|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan\\\\n|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange\\\\n|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise\\\\n|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen\\\\n|gainsboro|ghostwhite|gold|goldenrod|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki\\\\n|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow\\\\n|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray\\\\n|lightslategrey|lightsteelblue|lightyellow|limegreen|linen|magenta|mediumaquamarine|mediumblue\\\\n|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise\\\\n|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|oldlace|olivedrab|orangered\\\\n|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum\\\\n|powderblue|rebeccapurple|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell\\\\n|sienna|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|thistle|tomato\\\\n|transparent|turquoise|violet|wheat|whitesmoke|yellowgreen)\\\\n(?![\\\\\\\\w-])\",\"name\":\"support.constant.color.w3c-extended-color-name.css\"},{\"match\":\"(?i)(?<![\\\\\\\\w-])currentColor(?![\\\\\\\\w-])\",\"name\":\"support.constant.color.current.css\"},{\"match\":\"(?xi) (?<![\\\\\\\\w-])\\\\n(ActiveBorder|ActiveCaption|AppWorkspace|Background|ButtonFace|ButtonHighlight|ButtonShadow\\\\n|ButtonText|CaptionText|GrayText|Highlight|HighlightText|InactiveBorder|InactiveCaption\\\\n|InactiveCaptionText|InfoBackground|InfoText|Menu|MenuText|Scrollbar|ThreeDDarkShadow\\\\n|ThreeDFace|ThreeDHighlight|ThreeDLightShadow|ThreeDShadow|Window|WindowFrame|WindowText)\\\\n(?![\\\\\\\\w-])\",\"name\":\"invalid.deprecated.color.system.css\"}]},\"combinators\":{\"patterns\":[{\"match\":\"/deep/|>>>\",\"name\":\"invalid.deprecated.combinator.css\"},{\"match\":\">>|>|\\\\\\\\+|~\",\"name\":\"keyword.operator.combinator.css\"}]},\"commas\":{\"match\":\",\",\"name\":\"punctuation.separator.list.comma.css\"},\"comment-block\":{\"begin\":\"/\\\\\\\\*\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.css\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.css\"}},\"name\":\"comment.block.css\"},\"escapes\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[0-9a-fA-F]{1,6}\",\"name\":\"constant.character.escape.codepoint.css\"},{\"begin\":\"\\\\\\\\\\\\\\\\$\\\\\\\\s*\",\"end\":\"^(?<!\\\\\\\\G)\",\"name\":\"constant.character.escape.newline.css\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.css\"}]},\"feature-query\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.condition.begin.bracket.round.css\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.condition.end.bracket.round.css\"}},\"name\":\"meta.feature-query.css\",\"patterns\":[{\"include\":\"#feature-query-operators\"},{\"include\":\"#feature-query\"}]},\"feature-query-operators\":{\"patterns\":[{\"match\":\"(?i)(?<=[\\\\\\\\s()]|^|\\\\\\\\*/)(and|not|or)(?=[\\\\\\\\s()]|/\\\\\\\\*|$)\",\"name\":\"keyword.operator.logical.feature.$1.css\"},{\"include\":\"#rule-list-innards\"}]},\"font-features\":{\"begin\":\"(?xi)\\\\n((@)(annotation|character-variant|ornaments|styleset|stylistic|swash))\\\\n(?=[\\\\\\\\s@'\\\\\"{;]|/\\\\\\\\*|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.at-rule.\\${3:/downcase}.css\"},\"2\":{\"name\":\"punctuation.definition.keyword.css\"}},\"end\":\"(?<=})\",\"name\":\"meta.at-rule.\\${3:/downcase}.css\",\"patterns\":[{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.property-list.begin.bracket.curly.css\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.property-list.end.bracket.curly.css\"}},\"name\":\"meta.property-list.font-feature.css\",\"patterns\":[{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#escapes\"}]}},\"match\":\"(?:[-a-zA-Z_]|[^\\\\\\\\x00-\\\\\\\\x7F])(?:[-a-zA-Z0-9_]|[^\\\\\\\\x00-\\\\\\\\x7F]|\\\\\\\\\\\\\\\\(?:[0-9a-fA-F]{1,6}|.))*\",\"name\":\"variable.font-feature.css\"},{\"include\":\"#rule-list-innards\"}]}]},\"functional-pseudo-classes\":{\"patterns\":[{\"begin\":\"(?i)((:)dir)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.other.attribute-name.pseudo-class.css\"},\"2\":{\"name\":\"punctuation.definition.entity.css\"},\"3\":{\"name\":\"punctuation.section.function.begin.bracket.round.css\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.function.end.bracket.round.css\"}},\"patterns\":[{\"include\":\"#comment-block\"},{\"include\":\"#escapes\"},{\"match\":\"(?i)(?<![\\\\\\\\w-])(ltr|rtl)(?![\\\\\\\\w-])\",\"name\":\"support.constant.text-direction.css\"},{\"include\":\"#property-values\"}]},{\"begin\":\"(?i)((:)lang)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.other.attribute-name.pseudo-class.css\"},\"2\":{\"name\":\"punctuation.definition.entity.css\"},\"3\":{\"name\":\"punctuation.section.function.begin.bracket.round.css\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.function.end.bracket.round.css\"}},\"patterns\":[{\"match\":\"(?<=[(,\\\\\\\\s])[a-zA-Z]+(-[a-zA-Z0-9]*|\\\\\\\\\\\\\\\\(?:[0-9a-fA-F]{1,6}|.))*(?=[),\\\\\\\\s])\",\"name\":\"support.constant.language-range.css\"},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.css\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.css\"}},\"name\":\"string.quoted.double.css\",\"patterns\":[{\"include\":\"#escapes\"},{\"match\":\"(?<=[\\\\\"\\\\\\\\s])[a-zA-Z*]+(-[a-zA-Z0-9*]*)*(?=[\\\\\"\\\\\\\\s])\",\"name\":\"support.constant.language-range.css\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.css\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.css\"}},\"name\":\"string.quoted.single.css\",\"patterns\":[{\"include\":\"#escapes\"},{\"match\":\"(?<=['\\\\\\\\s])[a-zA-Z*]+(-[a-zA-Z0-9*]*)*(?=['\\\\\\\\s])\",\"name\":\"support.constant.language-range.css\"}]},{\"include\":\"#commas\"}]},{\"begin\":\"(?i)((:)(?:not|has|matches|where|is))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.other.attribute-name.pseudo-class.css\"},\"2\":{\"name\":\"punctuation.definition.entity.css\"},\"3\":{\"name\":\"punctuation.section.function.begin.bracket.round.css\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.function.end.bracket.round.css\"}},\"patterns\":[{\"include\":\"#selector-innards\"}]},{\"begin\":\"(?i)((:)nth-(?:last-)?(?:child|of-type))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.other.attribute-name.pseudo-class.css\"},\"2\":{\"name\":\"punctuation.definition.entity.css\"},\"3\":{\"name\":\"punctuation.section.function.begin.bracket.round.css\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.function.end.bracket.round.css\"}},\"patterns\":[{\"match\":\"(?i)[+-]?(\\\\\\\\d+n?|n)(\\\\\\\\s*[+-]\\\\\\\\s*\\\\\\\\d+)?\",\"name\":\"constant.numeric.css\"},{\"match\":\"(?i)even|odd\",\"name\":\"support.constant.parity.css\"}]}]},\"functions\":{\"patterns\":[{\"begin\":\"(?i)(?<![\\\\\\\\w-])(calc)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.calc.css\"},\"2\":{\"name\":\"punctuation.section.function.begin.bracket.round.css\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.function.end.bracket.round.css\"}},\"name\":\"meta.function.calc.css\",\"patterns\":[{\"match\":\"[*/]|(?<=\\\\\\\\s|^)[-+](?=\\\\\\\\s|$)\",\"name\":\"keyword.operator.arithmetic.css\"},{\"include\":\"#property-values\"}]},{\"begin\":\"(?i)(?<![\\\\\\\\w-])(rgba?|rgb|hsla?|hsl|hwb|lab|oklab|lch|oklch|color)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.misc.css\"},\"2\":{\"name\":\"punctuation.section.function.begin.bracket.round.css\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.function.end.bracket.round.css\"}},\"name\":\"meta.function.color.css\",\"patterns\":[{\"include\":\"#property-values\"}]},{\"begin\":\"(?xi) (?<![\\\\\\\\w-])\\\\n(\\\\n  (?:-webkit-|-moz-|-o-)?    # Accept prefixed/historical variants\\\\n  (?:repeating-)?            # \\\\\"Repeating\\\\\"-type gradient\\\\n  (?:linear|radial|conic)    # Shape\\\\n  -gradient\\\\n)\\\\n(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.gradient.css\"},\"2\":{\"name\":\"punctuation.section.function.begin.bracket.round.css\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.function.end.bracket.round.css\"}},\"name\":\"meta.function.gradient.css\",\"patterns\":[{\"match\":\"(?i)(?<![\\\\\\\\w-])(from|to|at|in|hue)(?![\\\\\\\\w-])\",\"name\":\"keyword.operator.gradient.css\"},{\"include\":\"#property-values\"}]},{\"begin\":\"(?i)(?<![\\\\\\\\w-])(-webkit-gradient)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"invalid.deprecated.gradient.function.css\"},\"2\":{\"name\":\"punctuation.section.function.begin.bracket.round.css\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.function.end.bracket.round.css\"}},\"name\":\"meta.function.gradient.invalid.deprecated.gradient.css\",\"patterns\":[{\"begin\":\"(?i)(?<![\\\\\\\\w-])(from|to|color-stop)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"invalid.deprecated.function.css\"},\"2\":{\"name\":\"punctuation.section.function.begin.bracket.round.css\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.function.end.bracket.round.css\"}},\"patterns\":[{\"include\":\"#property-values\"}]},{\"include\":\"#property-values\"}]},{\"begin\":\"(?xi) (?<![\\\\\\\\w-])\\\\n(annotation|attr|blur|brightness|character-variant|clamp|contrast|counters?\\\\n|cross-fade|drop-shadow|element|fit-content|format|grayscale|hue-rotate|color-mix\\\\n|image-set|invert|local|max|min|minmax|opacity|ornaments|repeat|saturate|sepia\\\\n|styleset|stylistic|swash|symbols\\\\n|cos|sin|tan|acos|asin|atan|atan2|hypot|sqrt|pow|log|exp|abs|sign)\\\\n(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.misc.css\"},\"2\":{\"name\":\"punctuation.section.function.begin.bracket.round.css\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.function.end.bracket.round.css\"}},\"name\":\"meta.function.misc.css\",\"patterns\":[{\"match\":\"(?i)(?<=[,\\\\\\\\s\\\\\"]|\\\\\\\\*/|^)\\\\\\\\d+x(?=[\\\\\\\\s,\\\\\"')]|/\\\\\\\\*|$)\",\"name\":\"constant.numeric.other.density.css\"},{\"include\":\"#property-values\"},{\"match\":\"[^'\\\\\"),\\\\\\\\s]+\",\"name\":\"variable.parameter.misc.css\"}]},{\"begin\":\"(?i)(?<![\\\\\\\\w-])(circle|ellipse|inset|polygon|rect)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.shape.css\"},\"2\":{\"name\":\"punctuation.section.function.begin.bracket.round.css\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.function.end.bracket.round.css\"}},\"name\":\"meta.function.shape.css\",\"patterns\":[{\"match\":\"(?i)(?<=\\\\\\\\s|^|\\\\\\\\*/)(at|round)(?=\\\\\\\\s|/\\\\\\\\*|$)\",\"name\":\"keyword.operator.shape.css\"},{\"include\":\"#property-values\"}]},{\"begin\":\"(?i)(?<![\\\\\\\\w-])(cubic-bezier|steps)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.timing-function.css\"},\"2\":{\"name\":\"punctuation.section.function.begin.bracket.round.css\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.function.end.bracket.round.css\"}},\"name\":\"meta.function.timing-function.css\",\"patterns\":[{\"match\":\"(?i)(?<![\\\\\\\\w-])(start|end)(?=\\\\\\\\s*\\\\\\\\)|$)\",\"name\":\"support.constant.step-direction.css\"},{\"include\":\"#property-values\"}]},{\"begin\":\"(?xi) (?<![\\\\\\\\w-])\\\\n( (?:translate|scale|rotate)(?:[XYZ]|3D)?\\\\n| matrix(?:3D)?\\\\n| skew[XY]?\\\\n| perspective\\\\n)\\\\n(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.transform.css\"},\"2\":{\"name\":\"punctuation.section.function.begin.bracket.round.css\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.function.end.bracket.round.css\"}},\"patterns\":[{\"include\":\"#property-values\"}]},{\"include\":\"#url\"},{\"begin\":\"(?i)(?<![\\\\\\\\w-])(var)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.misc.css\"},\"2\":{\"name\":\"punctuation.section.function.begin.bracket.round.css\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.function.end.bracket.round.css\"}},\"name\":\"meta.function.variable.css\",\"patterns\":[{\"match\":\"--(?:[-a-zA-Z_]|[^\\\\\\\\x00-\\\\\\\\x7F])(?:[-a-zA-Z0-9_]|[^\\\\\\\\x00-\\\\\\\\x7F]|\\\\\\\\\\\\\\\\(?:[0-9a-fA-F]{1,6}|.))*\",\"name\":\"variable.argument.css\"},{\"include\":\"#property-values\"}]}]},\"media-feature-keywords\":{\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|:|\\\\\\\\*/)\\\\n(?: portrait                  # Orientation\\\\n  | landscape\\\\n  | progressive               # Scan types\\\\n  | interlace\\\\n  | fullscreen                # Display modes\\\\n  | standalone\\\\n  | minimal-ui\\\\n  | browser\\\\n  | hover\\\\n)\\\\n(?=\\\\\\\\s|\\\\\\\\)|$)\",\"name\":\"support.constant.property-value.css\"},\"media-features\":{\"captures\":{\"1\":{\"name\":\"support.type.property-name.media.css\"},\"2\":{\"name\":\"support.type.property-name.media.css\"},\"3\":{\"name\":\"support.type.vendored.property-name.media.css\"}},\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\(|\\\\\\\\*/)           # Preceded by whitespace, bracket or comment\\\\n(?:\\\\n  # Standardised features\\\\n  (\\\\n    (?:min-|max-)?            # Range features\\\\n    (?: height\\\\n      | width\\\\n      | aspect-ratio\\\\n      | color\\\\n      | color-index\\\\n      | monochrome\\\\n      | resolution\\\\n    )\\\\n    | grid                    # Discrete features\\\\n    | scan\\\\n    | orientation\\\\n    | display-mode\\\\n    | hover\\\\n  )\\\\n  |\\\\n  # Deprecated features\\\\n  (\\\\n    (?:min-|max-)?            # Deprecated in Media Queries 4\\\\n    device-\\\\n    (?: height\\\\n      | width\\\\n      | aspect-ratio\\\\n    )\\\\n  )\\\\n  |\\\\n  # Vendor extensions\\\\n  (\\\\n    (?:\\\\n      # Spec-compliant syntax\\\\n      [-_]\\\\n      (?: webkit              # Webkit/Blink\\\\n        | apple|khtml         # Webkit aliases\\\\n        | epub                # ePub3\\\\n        | moz                 # Gecko\\\\n        | ms                  # Microsoft\\\\n        | o                   # Presto (pre-Opera 15)\\\\n        | xv|ah|rim|atsc|     # Less common vendors\\\\n          hp|tc|wap|ro\\\\n      )\\\\n      |\\\\n      # Non-standard prefixes\\\\n      (?: mso                 # Microsoft Office\\\\n        | prince              # YesLogic\\\\n      )\\\\n    )\\\\n    -\\\\n    [\\\\\\\\w-]+                   # Feature name\\\\n    (?=                       # Terminates correctly\\\\n      \\\\\\\\s*                    # Possible whitespace\\\\n      (?:                     # Possible injected comment\\\\n        /\\\\\\\\*\\\\n        (?:[^*]|\\\\\\\\*[^/])*\\\\n        \\\\\\\\*/\\\\n      )?\\\\n      \\\\\\\\s*\\\\n      [:)]                    # Ends with a colon or closed bracket\\\\n    )\\\\n  )\\\\n)\\\\n(?=\\\\\\\\s|$|[><:=]|\\\\\\\\)|/\\\\\\\\*)     # Terminates cleanly\"},\"media-query\":{\"begin\":\"\\\\\\\\G\",\"end\":\"(?=\\\\\\\\s*[{;])\",\"patterns\":[{\"include\":\"#comment-block\"},{\"include\":\"#escapes\"},{\"include\":\"#media-types\"},{\"match\":\"(?i)(?<=\\\\\\\\s|^|,|\\\\\\\\*/)(only|not)(?=\\\\\\\\s|{|/\\\\\\\\*|$)\",\"name\":\"keyword.operator.logical.$1.media.css\"},{\"match\":\"(?i)(?<=\\\\\\\\s|^|\\\\\\\\*/|\\\\\\\\))and(?=\\\\\\\\s|/\\\\\\\\*|$)\",\"name\":\"keyword.operator.logical.and.media.css\"},{\"match\":\",(?:(?:\\\\\\\\s*,)+|(?=\\\\\\\\s*[;){]))\",\"name\":\"invalid.illegal.comma.css\"},{\"include\":\"#commas\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.begin.bracket.round.css\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.bracket.round.css\"}},\"patterns\":[{\"include\":\"#media-features\"},{\"include\":\"#media-feature-keywords\"},{\"match\":\":\",\"name\":\"punctuation.separator.key-value.css\"},{\"match\":\">=|<=|=|<|>\",\"name\":\"keyword.operator.comparison.css\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.css\"},\"2\":{\"name\":\"keyword.operator.arithmetic.css\"},\"3\":{\"name\":\"constant.numeric.css\"}},\"match\":\"(\\\\\\\\d+)\\\\\\\\s*(/)\\\\\\\\s*(\\\\\\\\d+)\",\"name\":\"meta.ratio.css\"},{\"include\":\"#numeric-values\"},{\"include\":\"#comment-block\"}]}]},\"media-query-list\":{\"begin\":\"(?=\\\\\\\\s*[^{;])\",\"end\":\"(?=\\\\\\\\s*[{;])\",\"patterns\":[{\"include\":\"#media-query\"}]},\"media-types\":{\"captures\":{\"1\":{\"name\":\"support.constant.media.css\"},\"2\":{\"name\":\"invalid.deprecated.constant.media.css\"}},\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|,|\\\\\\\\*/)\\\\n(?:\\\\n  # Valid media types\\\\n  (all|print|screen|speech)\\\\n  |\\\\n  # Deprecated in Media Queries 4: http://dev.w3.org/csswg/mediaqueries/#media-types\\\\n  (aural|braille|embossed|handheld|projection|tty|tv)\\\\n)\\\\n(?=$|[{,\\\\\\\\s;]|/\\\\\\\\*)\"},\"numeric-values\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.constant.css\"}},\"match\":\"(#)(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\\\\\\\\b\",\"name\":\"constant.other.color.rgb-value.hex.css\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.percentage.css\"},\"2\":{\"name\":\"keyword.other.unit.\\${2:/downcase}.css\"}},\"match\":\"(?xi) (?<![\\\\\\\\w-])\\\\n[-+]?                               # Sign indicator\\\\n\\\\n(?:                                 # Numerals\\\\n    [0-9]+ (?:\\\\\\\\.[0-9]+)?           # Integer/float with leading digits\\\\n  | \\\\\\\\.[0-9]+                       # Float without leading digits\\\\n)\\\\n\\\\n(?:                                 # Scientific notation\\\\n  (?<=[0-9])                        # Exponent must follow a digit\\\\n  E                                 # Exponent indicator\\\\n  [-+]?                             # Possible sign indicator\\\\n  [0-9]+                            # Exponent value\\\\n)?\\\\n\\\\n(?:                                 # Possible unit for data-type:\\\\n  (%)                               # - Percentage\\\\n  | ( deg|grad|rad|turn             # - Angle\\\\n    | Hz|kHz                        # - Frequency\\\\n    | ch|cm|em|ex|fr|in|mm|mozmm|   # - Length\\\\n      pc|pt|px|q|rem|rch|rex|rlh|\\\\n      ic|ric|rcap|vh|vw|vb|vi|svh|\\\\n      svw|svb|svi|dvh|dvw|dvb|dvi|\\\\n      lvh|lvw|lvb|lvi|vmax|vmin|\\\\n      cqw|cqi|cqh|cqb|cqmin|cqmax\\\\n    | dpi|dpcm|dppx                 # - Resolution\\\\n    | s|ms                          # - Time\\\\n    )\\\\n  \\\\\\\\b                               # Boundary checking intentionally lax to\\\\n)?                                  # facilitate embedding in CSS-like grammars\",\"name\":\"constant.numeric.css\"}]},\"property-keywords\":{\"patterns\":[{\"match\":\"(?xi) (?<![\\\\\\\\w-])\\\\n(above|absolute|active|add|additive|after-edge|alias|all|all-petite-caps|all-scroll|all-small-caps|alpha|alphabetic|alternate|alternate-reverse\\\\n|always|antialiased|auto|auto-fill|auto-fit|auto-pos|available|avoid|avoid-column|avoid-page|avoid-region|backwards|balance|baseline|before-edge|below|bevel\\\\n|bidi-override|blink|block|block-axis|block-start|block-end|bold|bolder|border|border-box|both|bottom|bottom-outside|break-all|break-word|bullets\\\\n|butt|capitalize|caption|cell|center|central|char|circle|clip|clone|close-quote|closest-corner|closest-side|col-resize|collapse|color|color-burn\\\\n|color-dodge|column|column-reverse|common-ligatures|compact|condensed|contain|content|content-box|contents|context-menu|contextual|copy|cover\\\\n|crisp-edges|crispEdges|crosshair|cyclic|dark|darken|dashed|decimal|default|dense|diagonal-fractions|difference|digits|disabled|disc|discretionary-ligatures\\\\n|distribute|distribute-all-lines|distribute-letter|distribute-space|dot|dotted|double|double-circle|downleft|downright|e-resize|each-line|ease|ease-in\\\\n|ease-in-out|ease-out|economy|ellipse|ellipsis|embed|end|evenodd|ew-resize|exact|exclude|exclusion|expanded|extends|extra-condensed|extra-expanded\\\\n|fallback|farthest-corner|farthest-side|fill|fill-available|fill-box|filled|fit-content|fixed|flat|flex|flex-end|flex-start|flip|flow-root|forwards|freeze\\\\n|from-image|full-width|geometricPrecision|georgian|grab|grabbing|grayscale|grid|groove|hand|hanging|hard-light|help|hidden|hide\\\\n|historical-forms|historical-ligatures|horizontal|horizontal-tb|hue|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space\\\\n|ideographic|inactive|infinite|inherit|initial|inline|inline-axis|inline-block|inline-end|inline-flex|inline-grid|inline-list-item|inline-start\\\\n|inline-table|inset|inside|inter-character|inter-ideograph|inter-word|intersect|invert|isolate|isolate-override|italic|jis04|jis78|jis83\\\\n|jis90|justify|justify-all|kannada|keep-all|landscape|large|larger|left|light|lighten|lighter|line|line-edge|line-through|linear|linearRGB\\\\n|lining-nums|list-item|local|loose|lowercase|lr|lr-tb|ltr|luminance|luminosity|main-size|mandatory|manipulation|manual|margin-box|match-parent\\\\n|match-source|mathematical|max-content|medium|menu|message-box|middle|min-content|miter|mixed|move|multiply|n-resize|narrower|ne-resize\\\\n|nearest-neighbor|nesw-resize|newspaper|no-change|no-clip|no-close-quote|no-common-ligatures|no-contextual|no-discretionary-ligatures\\\\n|no-drop|no-historical-ligatures|no-open-quote|no-repeat|none|nonzero|normal|not-allowed|nowrap|ns-resize|numbers|numeric|nw-resize|nwse-resize\\\\n|oblique|oldstyle-nums|open|open-quote|optimizeLegibility|optimizeQuality|optimizeSpeed|optional|ordinal|outset|outside|over|overlay|overline|padding\\\\n|padding-box|page|painted|pan-down|pan-left|pan-right|pan-up|pan-x|pan-y|paused|petite-caps|pixelated|plaintext|pointer|portrait|pre|pre-line\\\\n|pre-wrap|preserve-3d|progress|progressive|proportional-nums|proportional-width|proximity|radial|recto|region|relative|remove|repeat|repeat-[xy]\\\\n|reset-size|reverse|revert|ridge|right|rl|rl-tb|round|row|row-resize|row-reverse|row-severse|rtl|ruby|ruby-base|ruby-base-container|ruby-text\\\\n|ruby-text-container|run-in|running|s-resize|saturation|scale-down|screen|scroll|scroll-position|se-resize|semi-condensed|semi-expanded|separate\\\\n|sesame|show|sideways|sideways-left|sideways-lr|sideways-right|sideways-rl|simplified|slashed-zero|slice|small|small-caps|small-caption|smaller\\\\n|smooth|soft-light|solid|space|space-around|space-between|space-evenly|spell-out|square|sRGB|stacked-fractions|start|static|status-bar|swap\\\\n|step-end|step-start|sticky|stretch|strict|stroke|stroke-box|style|sub|subgrid|subpixel-antialiased|subtract|super|sw-resize|symbolic|table\\\\n|table-caption|table-cell|table-column|table-column-group|table-footer-group|table-header-group|table-row|table-row-group|tabular-nums|tb|tb-rl\\\\n|text|text-after-edge|text-before-edge|text-bottom|text-top|thick|thin|titling-caps|top|top-outside|touch|traditional|transparent|triangle\\\\n|ultra-condensed|ultra-expanded|under|underline|unicase|unset|upleft|uppercase|upright|use-glyph-orientation|use-script|verso|vertical\\\\n|vertical-ideographic|vertical-lr|vertical-rl|vertical-text|view-box|visible|visibleFill|visiblePainted|visibleStroke|w-resize|wait|wavy\\\\n|weight|whitespace|wider|words|wrap|wrap-reverse|x|x-large|x-small|xx-large|xx-small|y|zero|zoom-in|zoom-out)\\\\n(?![\\\\\\\\w-])\",\"name\":\"support.constant.property-value.css\"},{\"match\":\"(?xi) (?<![\\\\\\\\w-])\\\\n(arabic-indic|armenian|bengali|cambodian|circle|cjk-decimal|cjk-earthly-branch|cjk-heavenly-stem|cjk-ideographic\\\\n|decimal|decimal-leading-zero|devanagari|disc|disclosure-closed|disclosure-open|ethiopic-halehame-am\\\\n|ethiopic-halehame-ti-e[rt]|ethiopic-numeric|georgian|gujarati|gurmukhi|hangul|hangul-consonant|hebrew\\\\n|hiragana|hiragana-iroha|japanese-formal|japanese-informal|kannada|katakana|katakana-iroha|khmer\\\\n|korean-hangul-formal|korean-hanja-formal|korean-hanja-informal|lao|lower-alpha|lower-armenian|lower-greek\\\\n|lower-latin|lower-roman|malayalam|mongolian|myanmar|oriya|persian|simp-chinese-formal|simp-chinese-informal\\\\n|square|tamil|telugu|thai|tibetan|trad-chinese-formal|trad-chinese-informal|upper-alpha|upper-armenian\\\\n|upper-latin|upper-roman|urdu)\\\\n(?![\\\\\\\\w-])\",\"name\":\"support.constant.property-value.list-style-type.css\"},{\"match\":\"(?<![\\\\\\\\w-])(?i:-(?:ah|apple|atsc|epub|hp|khtml|moz|ms|o|rim|ro|tc|wap|webkit|xv)|(?:mso|prince))-[a-zA-Z-]+\",\"name\":\"support.constant.vendored.property-value.css\"},{\"match\":\"(?<![\\\\\\\\w-])(?i:arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system-ui|system|tahoma|times|trebuchet|ui-monospace|ui-rounded|ui-sans-serif|ui-serif|utopia|verdana|webdings|sans-serif|serif|monospace)(?![\\\\\\\\w-])\",\"name\":\"support.constant.font-name.css\"}]},\"property-names\":{\"patterns\":[{\"match\":\"(?xi) (?<![\\\\\\\\w-])\\\\n(?:\\\\n  # Standard CSS\\\\n  accent-color|additive-symbols|align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration\\\\n  | animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|aspect-ratio|backdrop-filter\\\\n  | backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image\\\\n  | background-origin|background-position|background-position-[xy]|background-repeat|background-size|bleed|block-size|border\\\\n  | border-block-end|border-block-end-color|border-block-end-style|border-block-end-width|border-block-start|border-block-start-color\\\\n  | border-block-start-style|border-block-start-width|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius\\\\n  | border-bottom-style|border-bottom-width|border-collapse|border-color|border-end-end-radius|border-end-start-radius|border-image\\\\n  | border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-inline-end\\\\n  | border-inline-end-color|border-inline-end-style|border-inline-end-width|border-inline-start|border-inline-start-color\\\\n  | border-inline-start-style|border-inline-start-width|border-left|border-left-color|border-left-style|border-left-width\\\\n  | border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-start-end-radius\\\\n  | border-start-start-radius|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style\\\\n  | border-top-width|border-width|bottom|box-decoration-break|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side\\\\n  | caret-color|clear|clip|clip-path|clip-rule|color|color-adjust|color-interpolation-filters|color-scheme|column-count|column-fill|column-gap\\\\n  | column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|contain|container|container-name|container-type|content|counter-increment\\\\n  | counter-reset|cursor|direction|display|empty-cells|enable-background|fallback|fill|fill-opacity|fill-rule|filter|flex|flex-basis\\\\n  | flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|flood-color|flood-opacity|font|font-display|font-family\\\\n  | font-feature-settings|font-kerning|font-language-override|font-optical-sizing|font-size|font-size-adjust|font-stretch\\\\n  | font-style|font-synthesis|font-variant|font-variant-alternates|font-variant-caps|font-variant-east-asian|font-variant-ligatures\\\\n  | font-variant-numeric|font-variant-position|font-variation-settings|font-weight|gap|glyph-orientation-horizontal|glyph-orientation-vertical\\\\n  | grid|grid-area|grid-auto-columns|grid-auto-flow|grid-auto-rows|grid-column|grid-column-end|grid-column-gap|grid-column-start\\\\n  | grid-gap|grid-row|grid-row-end|grid-row-gap|grid-row-start|grid-template|grid-template-areas|grid-template-columns|grid-template-rows\\\\n  | hanging-punctuation|height|hyphens|image-orientation|image-rendering|image-resolution|ime-mode|initial-letter|initial-letter-align\\\\n  | inline-size|inset|inset-block|inset-block-end|inset-block-start|inset-inline|inset-inline-end|inset-inline-start|isolation\\\\n  | justify-content|justify-items|justify-self|kerning|left|letter-spacing|lighting-color|line-break|line-clamp|line-height|list-style\\\\n  | 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\\\\n  | margin-left|margin-right|margin-top|marker-end|marker-mid|marker-start|marks|mask|mask-border|mask-border-mode|mask-border-outset\\\\n  | mask-border-repeat|mask-border-slice|mask-border-source|mask-border-width|mask-clip|mask-composite|mask-image|mask-mode\\\\n  | mask-origin|mask-position|mask-repeat|mask-size|mask-type|max-block-size|max-height|max-inline-size|max-lines|max-width\\\\n  | max-zoom|min-block-size|min-height|min-inline-size|min-width|min-zoom|mix-blend-mode|negative|object-fit|object-position\\\\n  | offset|offset-anchor|offset-distance|offset-path|offset-position|offset-rotation|opacity|order|orientation|orphans\\\\n  | outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-anchor|overflow-block|overflow-inline\\\\n  | overflow-wrap|overflow-[xy]|overscroll-behavior|overscroll-behavior-block|overscroll-behavior-inline|overscroll-behavior-[xy]\\\\n  | pad|padding|padding-block|padding-block-end|padding-block-start|padding-bottom|padding-inline|padding-inline-end|padding-inline-start|padding-left\\\\n  | padding-right|padding-top|page-break-after|page-break-before|page-break-inside|paint-order|perspective|perspective-origin\\\\n  | place-content|place-items|place-self|pointer-events|position|prefix|quotes|range|resize|right|rotate|row-gap|ruby-align\\\\n  | ruby-merge|ruby-position|scale|scroll-behavior|scroll-margin|scroll-margin-block|scroll-margin-block-end|scroll-margin-block-start\\\\n  | scroll-margin-bottom|scroll-margin-inline|scroll-margin-inline-end|scroll-margin-inline-start|scroll-margin-left|scroll-margin-right\\\\n  | scroll-margin-top|scroll-padding|scroll-padding-block|scroll-padding-block-end|scroll-padding-block-start|scroll-padding-bottom\\\\n  | scroll-padding-inline|scroll-padding-inline-end|scroll-padding-inline-start|scroll-padding-left|scroll-padding-right\\\\n  | scroll-padding-top|scroll-snap-align|scroll-snap-coordinate|scroll-snap-destination|scroll-snap-stop|scroll-snap-type\\\\n  | scrollbar-color|scrollbar-gutter|scrollbar-width|shape-image-threshold|shape-margin|shape-outside|shape-rendering|size\\\\n  | speak-as|src|stop-color|stop-opacity|stroke|stroke-dasharray|stroke-dashoffset|stroke-linecap|stroke-linejoin|stroke-miterlimit\\\\n  | stroke-opacity|stroke-width|suffix|symbols|system|tab-size|table-layout|text-align|text-align-last|text-anchor|text-combine-upright\\\\n  | text-decoration|text-decoration-color|text-decoration-line|text-decoration-skip|text-decoration-skip-ink|text-decoration-style|text-decoration-thickness\\\\n  | text-emphasis|text-emphasis-color|text-emphasis-position|text-emphasis-style|text-indent|text-justify|text-orientation\\\\n  | text-overflow|text-rendering|text-shadow|text-size-adjust|text-transform|text-underline-offset|text-underline-position|top|touch-action|transform\\\\n  | transform-box|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function\\\\n  | translate|unicode-bidi|unicode-range|user-select|user-zoom|vertical-align|visibility|white-space|widows|width|will-change\\\\n  | word-break|word-spacing|word-wrap|writing-mode|z-index|zoom\\\\n\\\\n  # SVG attributes\\\\n  | alignment-baseline|baseline-shift|clip-rule|color-interpolation|color-interpolation-filters|color-profile\\\\n  | color-rendering|cx|cy|dominant-baseline|enable-background|fill|fill-opacity|fill-rule|flood-color|flood-opacity\\\\n  | glyph-orientation-horizontal|glyph-orientation-vertical|height|kerning|lighting-color|marker-end|marker-mid\\\\n  | marker-start|r|rx|ry|shape-rendering|stop-color|stop-opacity|stroke|stroke-dasharray|stroke-dashoffset|stroke-linecap\\\\n  | stroke-linejoin|stroke-miterlimit|stroke-opacity|stroke-width|text-anchor|width|x|y\\\\n\\\\n  # Not listed on MDN; presumably deprecated\\\\n  | adjust|after|align|align-last|alignment|alignment-adjust|appearance|attachment|azimuth|background-break\\\\n  | balance|baseline|before|bidi|binding|bookmark|bookmark-label|bookmark-level|bookmark-target|border-length\\\\n  | bottom-color|bottom-left-radius|bottom-right-radius|bottom-style|bottom-width|box|box-align|box-direction\\\\n  | box-flex|box-flex-group|box-lines|box-ordinal-group|box-orient|box-pack|break|character|collapse|column\\\\n  | column-break-after|column-break-before|count|counter|crop|cue|cue-after|cue-before|decoration|decoration-break\\\\n  | delay|display-model|display-role|down|drop|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust\\\\n  | drop-initial-before-align|drop-initial-size|drop-initial-value|duration|elevation|emphasis|family|fit|fit-position\\\\n  | flex-group|float-offset|gap|grid-columns|grid-rows|hanging-punctuation|header|hyphenate|hyphenate-after|hyphenate-before\\\\n  | hyphenate-character|hyphenate-lines|hyphenate-resource|icon|image|increment|indent|index|initial-after-adjust\\\\n  | initial-after-align|initial-before-adjust|initial-before-align|initial-size|initial-value|inline-box-align|iteration-count\\\\n  | justify|label|left-color|left-style|left-width|length|level|line|line-stacking|line-stacking-ruby|line-stacking-shift\\\\n  | line-stacking-strategy|lines|list|mark|mark-after|mark-before|marks|marquee|marquee-direction|marquee-play-count|marquee-speed\\\\n  | marquee-style|max|min|model|move-to|name|nav|nav-down|nav-index|nav-left|nav-right|nav-up|new|numeral|offset|ordinal-group\\\\n  | orient|origin|overflow-style|overhang|pack|page|page-policy|pause|pause-after|pause-before|phonemes|pitch|pitch-range\\\\n  | play-count|play-during|play-state|point|presentation|presentation-level|profile|property|punctuation|punctuation-trim\\\\n  | radius|rate|rendering-intent|repeat|replace|reset|resolution|resource|respond-to|rest|rest-after|rest-before|richness\\\\n  | right-color|right-style|right-width|role|rotation|rotation-point|rows|ruby|ruby-overhang|ruby-span|rule|rule-color\\\\n  | rule-style|rule-width|shadow|size|size-adjust|sizing|space|space-collapse|spacing|span|speak|speak-header|speak-numeral\\\\n  | speak-punctuation|speech|speech-rate|speed|stacking|stacking-ruby|stacking-shift|stacking-strategy|stress|stretch\\\\n  | string-set|style|style-image|style-position|style-type|target|target-name|target-new|target-position|text|text-height\\\\n  | text-justify|text-outline|text-replace|text-wrap|timing-function|top-color|top-left-radius|top-right-radius|top-style\\\\n  | top-width|trim|unicode|up|user-select|variant|voice|voice-balance|voice-duration|voice-family|voice-pitch|voice-pitch-range\\\\n  | voice-rate|voice-stress|voice-volume|volume|weight|white|white-space-collapse|word|wrap\\\\n)\\\\n(?![\\\\\\\\w-])\",\"name\":\"support.type.property-name.css\"},{\"match\":\"(?<![\\\\\\\\w-])(?i:-(?:ah|apple|atsc|epub|hp|khtml|moz|ms|o|rim|ro|tc|wap|webkit|xv)|(?:mso|prince))-[a-zA-Z-]+\",\"name\":\"support.type.vendored.property-name.css\"}]},\"property-values\":{\"patterns\":[{\"include\":\"#commas\"},{\"include\":\"#comment-block\"},{\"include\":\"#escapes\"},{\"include\":\"#functions\"},{\"include\":\"#property-keywords\"},{\"include\":\"#unicode-range\"},{\"include\":\"#numeric-values\"},{\"include\":\"#color-keywords\"},{\"include\":\"#string\"},{\"match\":\"!\\\\\\\\s*important(?![\\\\\\\\w-])\",\"name\":\"keyword.other.important.css\"}]},\"pseudo-classes\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.css\"},\"2\":{\"name\":\"invalid.illegal.colon.css\"}},\"match\":\"(?xi)\\\\n(:)(:*)\\\\n(?: active|any-link|checked|default|disabled|empty|enabled|first\\\\n  | (?:first|last|only)-(?:child|of-type)|focus|focus-visible|focus-within|fullscreen|host|hover\\\\n  | in-range|indeterminate|invalid|left|link|optional|out-of-range\\\\n  | read-only|read-write|required|right|root|scope|target|unresolved\\\\n  | valid|visited\\\\n)(?![\\\\\\\\w-]|\\\\\\\\s*[;}])\",\"name\":\"entity.other.attribute-name.pseudo-class.css\"},\"pseudo-elements\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.css\"},\"2\":{\"name\":\"punctuation.definition.entity.css\"}},\"match\":\"(?xi)\\\\n(?:\\\\n  (::?)                       # Elements using both : and :: notation\\\\n  (?: after\\\\n    | before\\\\n    | first-letter\\\\n    | first-line\\\\n    | (?:-(?:ah|apple|atsc|epub|hp|khtml|moz\\\\n            |ms|o|rim|ro|tc|wap|webkit|xv)\\\\n        | (?:mso|prince))\\\\n      -[a-z-]+\\\\n  )\\\\n  |\\\\n  (::)                        # Double-colon only\\\\n  (?: backdrop\\\\n    | content\\\\n    | grammar-error\\\\n    | marker\\\\n    | placeholder\\\\n    | selection\\\\n    | shadow\\\\n    | spelling-error\\\\n  )\\\\n)\\\\n(?![\\\\\\\\w-]|\\\\\\\\s*[;}])\",\"name\":\"entity.other.attribute-name.pseudo-element.css\"},\"rule-list\":{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.property-list.begin.bracket.curly.css\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.property-list.end.bracket.curly.css\"}},\"name\":\"meta.property-list.css\",\"patterns\":[{\"include\":\"#rule-list-innards\"}]},\"rule-list-innards\":{\"patterns\":[{\"include\":\"#comment-block\"},{\"include\":\"#escapes\"},{\"include\":\"#font-features\"},{\"match\":\"(?<![\\\\\\\\w-])--(?:[-a-zA-Z_]|[^\\\\\\\\x00-\\\\\\\\x7F])(?:[-a-zA-Z0-9_]|[^\\\\\\\\x00-\\\\\\\\x7F]|\\\\\\\\\\\\\\\\(?:[0-9a-fA-F]{1,6}|.))*\",\"name\":\"variable.css\"},{\"begin\":\"(?<![-a-zA-Z])(?=[-a-zA-Z])\",\"end\":\"$|(?![-a-zA-Z])\",\"name\":\"meta.property-name.css\",\"patterns\":[{\"include\":\"#property-names\"}]},{\"begin\":\"(:)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.key-value.css\"}},\"contentName\":\"meta.property-value.css\",\"end\":\"\\\\\\\\s*(;)|\\\\\\\\s*(?=}|\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.rule.css\"}},\"patterns\":[{\"include\":\"#comment-block\"},{\"include\":\"#property-values\"}]},{\"match\":\";\",\"name\":\"punctuation.terminator.rule.css\"}]},\"selector\":{\"begin\":\"(?=(?:\\\\\\\\|)?(?:[-\\\\\\\\[:.*\\\\\\\\#a-zA-Z_]|[^\\\\\\\\x00-\\\\\\\\x7F]|\\\\\\\\\\\\\\\\(?:[0-9a-fA-F]{1,6}|.)))\",\"end\":\"(?=\\\\\\\\s*[/@{)])\",\"name\":\"meta.selector.css\",\"patterns\":[{\"include\":\"#selector-innards\"}]},\"selector-innards\":{\"patterns\":[{\"include\":\"#comment-block\"},{\"include\":\"#commas\"},{\"include\":\"#escapes\"},{\"include\":\"#combinators\"},{\"captures\":{\"1\":{\"name\":\"entity.other.namespace-prefix.css\"},\"2\":{\"name\":\"punctuation.separator.css\"}},\"match\":\"(?:^|(?<=[\\\\\\\\s,(};]))(?![-\\\\\\\\w*]+\\\\\\\\|(?![-\\\\\\\\[:.*\\\\\\\\#a-zA-Z_]|[^\\\\\\\\x00-\\\\\\\\x7F]))((?:[-a-zA-Z_]|[^\\\\\\\\x00-\\\\\\\\x7F])(?:[-a-zA-Z0-9_]|[^\\\\\\\\x00-\\\\\\\\x7F]|\\\\\\\\\\\\\\\\(?:[0-9a-fA-F]{1,6}|.))*|\\\\\\\\*)?(\\\\\\\\|)\"},{\"include\":\"#tag-names\"},{\"match\":\"\\\\\\\\*\",\"name\":\"entity.name.tag.wildcard.css\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.css\"},\"2\":{\"patterns\":[{\"include\":\"#escapes\"}]}},\"match\":\"(?<![@\\\\\\\\w-])([.\\\\\\\\#])((?:-?[0-9]|-(?=$|[\\\\\\\\s,.\\\\\\\\#)\\\\\\\\[:{>+~|]|/\\\\\\\\*)|(?:[-a-zA-Z_0-9]|[^\\\\\\\\x00-\\\\\\\\x7F]|\\\\\\\\\\\\\\\\(?:[0-9a-fA-F]{1,6}|.))*(?:[!\\\\\"'%&(*;<?@^\\`|\\\\\\\\]}]|/(?!\\\\\\\\*))+)(?:[-a-zA-Z_0-9]|[^\\\\\\\\x00-\\\\\\\\x7F]|\\\\\\\\\\\\\\\\(?:[0-9a-fA-F]{1,6}|.))*)\",\"name\":\"invalid.illegal.bad-identifier.css\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.css\"},\"2\":{\"patterns\":[{\"include\":\"#escapes\"}]}},\"match\":\"(\\\\\\\\.)((?:[-a-zA-Z_0-9]|[^\\\\\\\\x00-\\\\\\\\x7F]|\\\\\\\\\\\\\\\\(?:[0-9a-fA-F]{1,6}|.))+)(?=$|[\\\\\\\\s,.\\\\\\\\#)\\\\\\\\[:{>+~|]|/\\\\\\\\*)\",\"name\":\"entity.other.attribute-name.class.css\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.css\"},\"2\":{\"patterns\":[{\"include\":\"#escapes\"}]}},\"match\":\"(\\\\\\\\#)(-?(?![0-9])(?:[-a-zA-Z0-9_]|[^\\\\\\\\x00-\\\\\\\\x7F]|\\\\\\\\\\\\\\\\(?:[0-9a-fA-F]{1,6}|.))+)(?=$|[\\\\\\\\s,.\\\\\\\\#)\\\\\\\\[:{>+~|]|/\\\\\\\\*)\",\"name\":\"entity.other.attribute-name.id.css\"},{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.entity.begin.bracket.square.css\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.entity.end.bracket.square.css\"}},\"name\":\"meta.attribute-selector.css\",\"patterns\":[{\"include\":\"#comment-block\"},{\"include\":\"#string\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.ignore-case.css\"}},\"match\":\"(?<=[\\\\\"'\\\\\\\\s]|^|\\\\\\\\*/)\\\\\\\\s*([iI])\\\\\\\\s*(?=[\\\\\\\\s\\\\\\\\]]|/\\\\\\\\*|$)\"},{\"captures\":{\"1\":{\"name\":\"string.unquoted.attribute-value.css\",\"patterns\":[{\"include\":\"#escapes\"}]}},\"match\":\"(?<==)\\\\\\\\s*((?!/\\\\\\\\*)(?:[^\\\\\\\\\\\\\\\\\\\\\"'\\\\\\\\s\\\\\\\\]]|\\\\\\\\\\\\\\\\.)+)\"},{\"include\":\"#escapes\"},{\"match\":\"[~|^$*]?=\",\"name\":\"keyword.operator.pattern.css\"},{\"match\":\"\\\\\\\\|\",\"name\":\"punctuation.separator.css\"},{\"captures\":{\"1\":{\"name\":\"entity.other.namespace-prefix.css\",\"patterns\":[{\"include\":\"#escapes\"}]}},\"match\":\"(-?(?!\\\\\\\\d)(?:[\\\\\\\\w-]|[^\\\\\\\\x00-\\\\\\\\x7F]|\\\\\\\\\\\\\\\\(?:[0-9a-fA-F]{1,6}|.))+|\\\\\\\\*)(?=\\\\\\\\|(?!\\\\\\\\s|=|$|\\\\\\\\])(?:-?(?!\\\\\\\\d)|[\\\\\\\\\\\\\\\\\\\\\\\\w-]|[^\\\\\\\\x00-\\\\\\\\x7F]))\"},{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.css\",\"patterns\":[{\"include\":\"#escapes\"}]}},\"match\":\"(-?(?!\\\\\\\\d)(?>[\\\\\\\\w-]|[^\\\\\\\\x00-\\\\\\\\x7F]|\\\\\\\\\\\\\\\\(?:[0-9a-fA-F]{1,6}|.))+)\\\\\\\\s*(?=[~|^\\\\\\\\]$*=]|/\\\\\\\\*)\"}]},{\"include\":\"#pseudo-classes\"},{\"include\":\"#pseudo-elements\"},{\"include\":\"#functional-pseudo-classes\"},{\"match\":\"(?<![@\\\\\\\\w-])(?=[a-z]\\\\\\\\w*-)(?:(?![A-Z])[\\\\\\\\w-])+(?![(\\\\\\\\w-])\",\"name\":\"entity.name.tag.custom.css\"}]},\"string\":{\"patterns\":[{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.css\"}},\"end\":\"\\\\\"|(?<!\\\\\\\\\\\\\\\\)(?=$|\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.css\"}},\"name\":\"string.quoted.double.css\",\"patterns\":[{\"begin\":\"(?:\\\\\\\\G|^)(?=(?:[^\\\\\\\\\\\\\\\\\\\\\"]|\\\\\\\\\\\\\\\\.)+$)\",\"end\":\"$\",\"name\":\"invalid.illegal.unclosed.string.css\",\"patterns\":[{\"include\":\"#escapes\"}]},{\"include\":\"#escapes\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.css\"}},\"end\":\"'|(?<!\\\\\\\\\\\\\\\\)(?=$|\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.css\"}},\"name\":\"string.quoted.single.css\",\"patterns\":[{\"begin\":\"(?:\\\\\\\\G|^)(?=(?:[^\\\\\\\\\\\\\\\\']|\\\\\\\\\\\\\\\\.)+$)\",\"end\":\"$\",\"name\":\"invalid.illegal.unclosed.string.css\",\"patterns\":[{\"include\":\"#escapes\"}]},{\"include\":\"#escapes\"}]}]},\"tag-names\":{\"match\":\"(?xi) (?<![\\\\\\\\w:-])\\\\n(?:\\\\n    # HTML\\\\n    a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdi|bdo|bgsound\\\\n  | big|blink|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|command\\\\n  | content|data|datalist|dd|del|details|dfn|dialog|dir|div|dl|dt|element|em|embed|fieldset\\\\n  | figcaption|figure|font|footer|form|frame|frameset|h[1-6]|head|header|hgroup|hr|html|i\\\\n  | iframe|image|img|input|ins|isindex|kbd|keygen|label|legend|li|link|listing|main|map|mark\\\\n  | marquee|math|menu|menuitem|meta|meter|multicol|nav|nextid|nobr|noembed|noframes|noscript\\\\n  | object|ol|optgroup|option|output|p|param|picture|plaintext|pre|progress|q|rb|rp|rt|rtc\\\\n  | ruby|s|samp|script|section|select|shadow|slot|small|source|spacer|span|strike|strong\\\\n  | style|sub|summary|sup|table|tbody|td|template|textarea|tfoot|th|thead|time|title|tr\\\\n  | track|tt|u|ul|var|video|wbr|xmp\\\\n\\\\n  # SVG\\\\n  | altGlyph|altGlyphDef|altGlyphItem|animate|animateColor|animateMotion|animateTransform\\\\n  | circle|clipPath|color-profile|cursor|defs|desc|discard|ellipse|feBlend|feColorMatrix\\\\n  | feComponentTransfer|feComposite|feConvolveMatrix|feDiffuseLighting|feDisplacementMap\\\\n  | feDistantLight|feDropShadow|feFlood|feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur\\\\n  | feImage|feMerge|feMergeNode|feMorphology|feOffset|fePointLight|feSpecularLighting\\\\n  | feSpotLight|feTile|feTurbulence|filter|font-face|font-face-format|font-face-name\\\\n  | font-face-src|font-face-uri|foreignObject|g|glyph|glyphRef|hatch|hatchpath|hkern\\\\n  | line|linearGradient|marker|mask|mesh|meshgradient|meshpatch|meshrow|metadata\\\\n  | missing-glyph|mpath|path|pattern|polygon|polyline|radialGradient|rect|set|solidcolor\\\\n  | stop|svg|switch|symbol|text|textPath|tref|tspan|use|view|vkern\\\\n\\\\n  # MathML\\\\n  | annotation|annotation-xml|maction|maligngroup|malignmark|math|menclose|merror|mfenced\\\\n  | mfrac|mglyph|mi|mlabeledtr|mlongdiv|mmultiscripts|mn|mo|mover|mpadded|mphantom|mroot\\\\n  | mrow|ms|mscarries|mscarry|msgroup|msline|mspace|msqrt|msrow|mstack|mstyle|msub|msubsup\\\\n  | msup|mtable|mtd|mtext|mtr|munder|munderover|semantics\\\\n)\\\\n(?=[+~>\\\\\\\\s,.\\\\\\\\#|){:\\\\\\\\[]|/\\\\\\\\*|$)\",\"name\":\"entity.name.tag.css\"},\"unicode-range\":{\"captures\":{\"0\":{\"name\":\"constant.other.unicode-range.css\"},\"1\":{\"name\":\"punctuation.separator.dash.unicode-range.css\"}},\"match\":\"(?<![\\\\\\\\w-])[Uu]\\\\\\\\+[0-9A-Fa-f?]{1,6}(?:(-)[0-9A-Fa-f]{1,6})?(?![\\\\\\\\w-])\"},\"url\":{\"begin\":\"(?i)(?<![\\\\\\\\w@-])(url)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.url.css\"},\"2\":{\"name\":\"punctuation.section.function.begin.bracket.round.css\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.function.end.bracket.round.css\"}},\"name\":\"meta.function.url.css\",\"patterns\":[{\"match\":\"[^'\\\\\")\\\\\\\\s]+\",\"name\":\"variable.parameter.url.css\"},{\"include\":\"#string\"},{\"include\":\"#comment-block\"},{\"include\":\"#escapes\"}]}},\"scopeName\":\"source.css\"}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BQoSv7ci.js",
    "content": "const n=Object.freeze(JSON.parse('{\"displayName\":\"JSON\",\"name\":\"json\",\"patterns\":[{\"include\":\"#value\"}],\"repository\":{\"array\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.array.begin.json\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.array.end.json\"}},\"name\":\"meta.structure.array.json\",\"patterns\":[{\"include\":\"#value\"},{\"match\":\",\",\"name\":\"punctuation.separator.array.json\"},{\"match\":\"[^\\\\\\\\s\\\\\\\\]]\",\"name\":\"invalid.illegal.expected-array-separator.json\"}]},\"comments\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\\\\\\\\*(?!/)\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.json\"}},\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.documentation.json\"},{\"begin\":\"/\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.json\"}},\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.json\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.json\"}},\"match\":\"(//).*$\\\\\\\\n?\",\"name\":\"comment.line.double-slash.js\"}]},\"constant\":{\"match\":\"\\\\\\\\b(?:true|false|null)\\\\\\\\b\",\"name\":\"constant.language.json\"},\"number\":{\"match\":\"-?(?:0|[1-9]\\\\\\\\d*)(?:(?:\\\\\\\\.\\\\\\\\d+)?(?:[eE][+-]?\\\\\\\\d+)?)?\",\"name\":\"constant.numeric.json\"},\"object\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.dictionary.begin.json\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.dictionary.end.json\"}},\"name\":\"meta.structure.dictionary.json\",\"patterns\":[{\"comment\":\"the JSON object key\",\"include\":\"#objectkey\"},{\"include\":\"#comments\"},{\"begin\":\":\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.dictionary.key-value.json\"}},\"end\":\"(,)|(?=\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.dictionary.pair.json\"}},\"name\":\"meta.structure.dictionary.value.json\",\"patterns\":[{\"comment\":\"the JSON object value\",\"include\":\"#value\"},{\"match\":\"[^\\\\\\\\s,]\",\"name\":\"invalid.illegal.expected-dictionary-separator.json\"}]},{\"match\":\"[^\\\\\\\\s\\\\\\\\}]\",\"name\":\"invalid.illegal.expected-dictionary-separator.json\"}]},\"objectkey\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.support.type.property-name.begin.json\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.support.type.property-name.end.json\"}},\"name\":\"string.json support.type.property-name.json\",\"patterns\":[{\"include\":\"#stringcontent\"}]},\"string\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.json\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.json\"}},\"name\":\"string.quoted.double.json\",\"patterns\":[{\"include\":\"#stringcontent\"}]},\"stringcontent\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(?:[\\\\\"\\\\\\\\\\\\\\\\/bfnrt]|u[0-9a-fA-F]{4})\",\"name\":\"constant.character.escape.json\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"invalid.illegal.unrecognized-string-escape.json\"}]},\"value\":{\"patterns\":[{\"include\":\"#constant\"},{\"include\":\"#number\"},{\"include\":\"#string\"},{\"include\":\"#array\"},{\"include\":\"#object\"},{\"include\":\"#comments\"}]}},\"scopeName\":\"source.json\"}')),e=[n];export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BQwtg7Y-.js",
    "content": "import e from\"./SKMF96pI.js\";import r from\"./DfxzS6Rs.js\";const a=Object.freeze(JSON.parse(`{\"displayName\":\"GDResource\",\"name\":\"gdresource\",\"patterns\":[{\"include\":\"#embedded_shader\"},{\"include\":\"#embedded_gdscript\"},{\"include\":\"#comment\"},{\"include\":\"#heading\"},{\"include\":\"#key_value\"}],\"repository\":{\"comment\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.gdresource\"}},\"match\":\"(;).*$\\\\\\\\n?\",\"name\":\"comment.line.gdresource\"},\"data\":{\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?<!\\\\\\\\w)(\\\\\\\\{)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.table.inline.gdresource\"}},\"end\":\"\\\\\\\\s*(\\\\\\\\})(?!\\\\\\\\w)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.table.inline.gdresource\"}},\"patterns\":[{\"include\":\"#key_value\"},{\"include\":\"#data\"}]},{\"begin\":\"(?<!\\\\\\\\w)(\\\\\\\\[)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.array.gdresource\"}},\"end\":\"\\\\\\\\s*(\\\\\\\\])(?!\\\\\\\\w)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.array.gdresource\"}},\"patterns\":[{\"include\":\"#data\"}]},{\"begin\":\"\\\\\"\\\\\"\\\\\"\",\"end\":\"\\\\\"\\\\\"\\\\\"\",\"name\":\"string.quoted.triple.basic.block.gdresource\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\([btnfr\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\n/ ]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})\",\"name\":\"constant.character.escape.gdresource\"},{\"match\":\"\\\\\\\\\\\\\\\\[^btnfr/\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\n]\",\"name\":\"invalid.illegal.escape.gdresource\"}]},{\"match\":\"\\\\\"res:\\\\\\\\/\\\\\\\\/[^\\\\\"\\\\\\\\\\\\\\\\]*(?:\\\\\\\\\\\\\\\\.[^\\\\\"\\\\\\\\\\\\\\\\]*)*\\\\\"\",\"name\":\"support.function.any-method.gdresource\"},{\"match\":\"(?<=type=)\\\\\"[^\\\\\"\\\\\\\\\\\\\\\\]*(?:\\\\\\\\\\\\\\\\.[^\\\\\"\\\\\\\\\\\\\\\\]*)*\\\\\"\",\"name\":\"support.class.library.gdresource\"},{\"match\":\"(?<=NodePath\\\\\\\\(|parent=|name=)\\\\\"[^\\\\\"\\\\\\\\\\\\\\\\]*(?:\\\\\\\\\\\\\\\\.[^\\\\\"\\\\\\\\\\\\\\\\]*)*\\\\\"\",\"name\":\"constant.character.escape.gdresource\"},{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.basic.line.gdresource\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\([btnfr\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\n/ ]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})\",\"name\":\"constant.character.escape.gdresource\"},{\"match\":\"\\\\\\\\\\\\\\\\[^btnfr/\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\n]\",\"name\":\"invalid.illegal.escape.gdresource\"}]},{\"match\":\"'.*?'\",\"name\":\"string.quoted.single.literal.line.gdresource\"},{\"match\":\"(?<!\\\\\\\\w)(true|false)(?!\\\\\\\\w)\",\"name\":\"constant.language.gdresource\"},{\"match\":\"(?<!\\\\\\\\w)([\\\\\\\\+\\\\\\\\-]?(0|([1-9](([0-9]|_[0-9])+)?))(?:(?:\\\\\\\\.(0|([1-9](([0-9]|_[0-9])+)?)))?[eE][\\\\\\\\+\\\\\\\\-]?[1-9]_?[0-9]*|(?:\\\\\\\\.[0-9_]*)))(?!\\\\\\\\w)\",\"name\":\"constant.numeric.float.gdresource\"},{\"match\":\"(?<!\\\\\\\\w)((?:[\\\\\\\\+\\\\\\\\-]?(0|([1-9](([0-9]|_[0-9])+)?))))(?!\\\\\\\\w)\",\"name\":\"constant.numeric.integer.gdresource\"},{\"match\":\"(?<!\\\\\\\\w)([\\\\\\\\+\\\\\\\\-]?inf)(?!\\\\\\\\w)\",\"name\":\"constant.numeric.inf.gdresource\"},{\"match\":\"(?<!\\\\\\\\w)([\\\\\\\\+\\\\\\\\-]?nan)(?!\\\\\\\\w)\",\"name\":\"constant.numeric.nan.gdresource\"},{\"match\":\"(?<!\\\\\\\\w)((?:0x(([0-9a-fA-F](([0-9a-fA-F]|_[0-9a-fA-F])+)?))))(?!\\\\\\\\w)\",\"name\":\"constant.numeric.hex.gdresource\"},{\"match\":\"(?<!\\\\\\\\w)(0o[0-7](_?[0-7])*)(?!\\\\\\\\w)\",\"name\":\"constant.numeric.oct.gdresource\"},{\"match\":\"(?<!\\\\\\\\w)(0b[01](_?[01])*)(?!\\\\\\\\w)\",\"name\":\"constant.numeric.bin.gdresource\"},{\"begin\":\"(?<!\\\\\\\\w)(Vector2|Vector2i|Vector3|Vector3i|Color|Rect2|Rect2i|Array|Basis|Dictionary|Plane|Quat|RID|Rect3|Transform|Transform2D|Transform3D|AABB|String|Color|NodePath|Object|PoolByteArray|PoolIntArray|PoolRealArray|PoolStringArray|PoolVector2Array|PoolVector3Array|PoolColorArray|bool|int|float|StringName|Quaternion|PackedByteArray|PackedInt32Array|PackedInt64Array|PackedFloat32Array|PackedFloat64Array|PackedStringArray|PackedVector2Array|PackedVector2iArray|PackedVector3Array|PackedVector3iArray|PackedColorArray)(\\\\\\\\()\\\\\\\\s?\",\"beginCaptures\":{\"1\":{\"name\":\"support.class.library.gdresource\"}},\"end\":\"\\\\\\\\s?(\\\\\\\\))\",\"patterns\":[{\"include\":\"#key_value\"},{\"include\":\"#data\"}]},{\"begin\":\"(?<!\\\\\\\\w)(ExtResource|SubResource)(\\\\\\\\()\\\\\\\\s?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.gdresource\"}},\"end\":\"\\\\\\\\s?(\\\\\\\\))\",\"patterns\":[{\"include\":\"#key_value\"},{\"include\":\"#data\"}]}]},\"embedded_gdscript\":{\"begin\":\"(script/source) = \\\\\"\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.property.gdresource\"}},\"comment\":\"meta.embedded.block.gdscript\",\"end\":\"\\\\\"\",\"patterns\":[{\"include\":\"source.gdscript\"}]},\"embedded_shader\":{\"begin\":\"(code) = \\\\\"\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.property.gdresource\"}},\"end\":\"\\\\\"\",\"name\":\"meta.embedded.block.gdshader\",\"patterns\":[{\"include\":\"source.gdshader\"}]},\"heading\":{\"begin\":\"\\\\\\\\[([a-z_]*)\\\\\\\\s?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.gdresource\"}},\"end\":\"\\\\\\\\]\",\"patterns\":[{\"include\":\"#heading_properties\"},{\"include\":\"#data\"}]},\"heading_properties\":{\"patterns\":[{\"match\":\"(\\\\\\\\s*[A-Za-z_\\\\\\\\-][A-Za-z0-9_\\\\\\\\-]*\\\\\\\\s*=)(?=\\\\\\\\s*$)\",\"name\":\"invalid.illegal.noValue.gdresource\"},{\"begin\":\"\\\\\\\\s*([A-Za-z_-][^\\\\\\\\s]*|\\\\\".+\\\\\"|'.+'|[0-9]+)\\\\\\\\s*(=)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.property.gdresource\"},\"2\":{\"name\":\"punctuation.definition.keyValue.gdresource\"}},\"end\":\"($|(?==)|\\\\\\\\,?|\\\\\\\\s*(?=\\\\\\\\}))\",\"patterns\":[{\"include\":\"#data\"}]}]},\"key_value\":{\"patterns\":[{\"match\":\"(\\\\\\\\s*[A-Za-z_\\\\\\\\-][A-Za-z0-9_\\\\\\\\-]*\\\\\\\\s*=)(?=\\\\\\\\s*$)\",\"name\":\"invalid.illegal.noValue.gdresource\"},{\"begin\":\"\\\\\\\\s*([A-Za-z_-][^\\\\\\\\s]*|\\\\\".+\\\\\"|'.+'|[0-9]+)\\\\\\\\s*(=)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.property.gdresource\"},\"2\":{\"name\":\"punctuation.definition.keyValue.gdresource\"}},\"end\":\"($|(?==)|\\\\\\\\,|\\\\\\\\s*(?=\\\\\\\\}))\",\"patterns\":[{\"include\":\"#data\"}]}]}},\"scopeName\":\"source.gdresource\",\"embeddedLangs\":[\"gdshader\",\"gdscript\"]}`)),c=[...e,...r,a];export{c as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BRk-K-rg.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"#\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"'\",close:\"'\"},{open:'\"',close:'\"'}],autoClosingPairs:[{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]},{open:'\"',close:'\"',notIn:[\"comment\"]},{open:'\"\"\"',close:'\"\"\"'},{open:\"`\",close:\"`\",notIn:[\"string\",\"comment\"]},{open:\"(\",close:\")\"},{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"<<\",close:\">>\"}],indentationRules:{increaseIndentPattern:/^\\s*(after|else|catch|rescue|fn|[^#]*(do|<\\-|\\->|\\{|\\[|\\=))\\s*$/,decreaseIndentPattern:/^\\s*((\\}|\\])\\s*$|(after|else|catch|rescue|end)\\b)/}},t={defaultToken:\"source\",tokenPostfix:\".elixir\",brackets:[{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"<<\",close:\">>\",token:\"delimiter.angle.special\"}],declarationKeywords:[\"def\",\"defp\",\"defn\",\"defnp\",\"defguard\",\"defguardp\",\"defmacro\",\"defmacrop\",\"defdelegate\",\"defcallback\",\"defmacrocallback\",\"defmodule\",\"defprotocol\",\"defexception\",\"defimpl\",\"defstruct\"],operatorKeywords:[\"and\",\"in\",\"not\",\"or\",\"when\"],namespaceKeywords:[\"alias\",\"import\",\"require\",\"use\"],otherKeywords:[\"after\",\"case\",\"catch\",\"cond\",\"do\",\"else\",\"end\",\"fn\",\"for\",\"if\",\"quote\",\"raise\",\"receive\",\"rescue\",\"super\",\"throw\",\"try\",\"unless\",\"unquote_splicing\",\"unquote\",\"with\"],constants:[\"true\",\"false\",\"nil\"],nameBuiltin:[\"__MODULE__\",\"__DIR__\",\"__ENV__\",\"__CALLER__\",\"__STACKTRACE__\"],operator:/-[->]?|!={0,2}|\\*{1,2}|\\/|\\\\\\\\|&{1,3}|\\.\\.?|\\^(?:\\^\\^)?|\\+\\+?|<(?:-|<<|=|>|\\|>|~>?)?|=~|={1,3}|>(?:=|>>)?|\\|~>|\\|>|\\|{1,3}|~>>?|~~~|::/,variableName:/[a-z_][a-zA-Z0-9_]*[?!]?/,atomName:/[a-zA-Z_][a-zA-Z0-9_@]*[?!]?|@specialAtomName|@operator/,specialAtomName:/\\.\\.\\.|<<>>|%\\{\\}|%|\\{\\}/,aliasPart:/[A-Z][a-zA-Z0-9_]*/,moduleName:/@aliasPart(?:\\.@aliasPart)*/,sigilSymmetricDelimiter:/\"\"\"|'''|\"|'|\\/|\\|/,sigilStartDelimiter:/@sigilSymmetricDelimiter|<|\\{|\\[|\\(/,sigilEndDelimiter:/@sigilSymmetricDelimiter|>|\\}|\\]|\\)/,sigilModifiers:/[a-zA-Z0-9]*/,decimal:/\\d(?:_?\\d)*/,hex:/[0-9a-fA-F](_?[0-9a-fA-F])*/,octal:/[0-7](_?[0-7])*/,binary:/[01](_?[01])*/,escape:/\\\\u[0-9a-fA-F]{4}|\\\\x[0-9a-fA-F]{2}|\\\\./,tokenizer:{root:[{include:\"@whitespace\"},{include:\"@comments\"},{include:\"@keywordsShorthand\"},{include:\"@numbers\"},{include:\"@identifiers\"},{include:\"@strings\"},{include:\"@atoms\"},{include:\"@sigils\"},{include:\"@attributes\"},{include:\"@symbols\"}],whitespace:[[/\\s+/,\"white\"]],comments:[[/(#)(.*)/,[\"comment.punctuation\",\"comment\"]]],keywordsShorthand:[[/(@atomName)(:)(\\s+)/,[\"constant\",\"constant.punctuation\",\"white\"]],[/\"(?=([^\"]|#\\{.*?\\}|\\\\\")*\":)/,{token:\"constant.delimiter\",next:\"@doubleQuotedStringKeyword\"}],[/'(?=([^']|#\\{.*?\\}|\\\\')*':)/,{token:\"constant.delimiter\",next:\"@singleQuotedStringKeyword\"}]],doubleQuotedStringKeyword:[[/\":/,{token:\"constant.delimiter\",next:\"@pop\"}],{include:\"@stringConstantContentInterpol\"}],singleQuotedStringKeyword:[[/':/,{token:\"constant.delimiter\",next:\"@pop\"}],{include:\"@stringConstantContentInterpol\"}],numbers:[[/0b@binary/,\"number.binary\"],[/0o@octal/,\"number.octal\"],[/0x@hex/,\"number.hex\"],[/@decimal\\.@decimal([eE]-?@decimal)?/,\"number.float\"],[/@decimal/,\"number\"]],identifiers:[[/\\b(defp?|defnp?|defmacrop?|defguardp?|defdelegate)(\\s+)(@variableName)(?!\\s+@operator)/,[\"keyword.declaration\",\"white\",{cases:{unquote:\"keyword\",\"@default\":\"function\"}}]],[/(@variableName)(?=\\s*\\.?\\s*\\()/,{cases:{\"@declarationKeywords\":\"keyword.declaration\",\"@namespaceKeywords\":\"keyword\",\"@otherKeywords\":\"keyword\",\"@default\":\"function.call\"}}],[/(@moduleName)(\\s*)(\\.)(\\s*)(@variableName)/,[\"type.identifier\",\"white\",\"operator\",\"white\",\"function.call\"]],[/(:)(@atomName)(\\s*)(\\.)(\\s*)(@variableName)/,[\"constant.punctuation\",\"constant\",\"white\",\"operator\",\"white\",\"function.call\"]],[/(\\|>)(\\s*)(@variableName)/,[\"operator\",\"white\",{cases:{\"@otherKeywords\":\"keyword\",\"@default\":\"function.call\"}}]],[/(&)(\\s*)(@variableName)/,[\"operator\",\"white\",\"function.call\"]],[/@variableName/,{cases:{\"@declarationKeywords\":\"keyword.declaration\",\"@operatorKeywords\":\"keyword.operator\",\"@namespaceKeywords\":\"keyword\",\"@otherKeywords\":\"keyword\",\"@constants\":\"constant.language\",\"@nameBuiltin\":\"variable.language\",\"_.*\":\"comment.unused\",\"@default\":\"identifier\"}}],[/@moduleName/,\"type.identifier\"]],strings:[[/\"\"\"/,{token:\"string.delimiter\",next:\"@doubleQuotedHeredoc\"}],[/'''/,{token:\"string.delimiter\",next:\"@singleQuotedHeredoc\"}],[/\"/,{token:\"string.delimiter\",next:\"@doubleQuotedString\"}],[/'/,{token:\"string.delimiter\",next:\"@singleQuotedString\"}]],doubleQuotedHeredoc:[[/\"\"\"/,{token:\"string.delimiter\",next:\"@pop\"}],{include:\"@stringContentInterpol\"}],singleQuotedHeredoc:[[/'''/,{token:\"string.delimiter\",next:\"@pop\"}],{include:\"@stringContentInterpol\"}],doubleQuotedString:[[/\"/,{token:\"string.delimiter\",next:\"@pop\"}],{include:\"@stringContentInterpol\"}],singleQuotedString:[[/'/,{token:\"string.delimiter\",next:\"@pop\"}],{include:\"@stringContentInterpol\"}],atoms:[[/(:)(@atomName)/,[\"constant.punctuation\",\"constant\"]],[/:\"/,{token:\"constant.delimiter\",next:\"@doubleQuotedStringAtom\"}],[/:'/,{token:\"constant.delimiter\",next:\"@singleQuotedStringAtom\"}]],doubleQuotedStringAtom:[[/\"/,{token:\"constant.delimiter\",next:\"@pop\"}],{include:\"@stringConstantContentInterpol\"}],singleQuotedStringAtom:[[/'/,{token:\"constant.delimiter\",next:\"@pop\"}],{include:\"@stringConstantContentInterpol\"}],sigils:[[/~[a-z]@sigilStartDelimiter/,{token:\"@rematch\",next:\"@sigil.interpol\"}],[/~([A-Z]+)@sigilStartDelimiter/,{token:\"@rematch\",next:\"@sigil.noInterpol\"}]],sigil:[[/~([a-z]|[A-Z]+)\\{/,{token:\"@rematch\",switchTo:\"@sigilStart.$S2.$1.{.}\"}],[/~([a-z]|[A-Z]+)\\[/,{token:\"@rematch\",switchTo:\"@sigilStart.$S2.$1.[.]\"}],[/~([a-z]|[A-Z]+)\\(/,{token:\"@rematch\",switchTo:\"@sigilStart.$S2.$1.(.)\"}],[/~([a-z]|[A-Z]+)\\</,{token:\"@rematch\",switchTo:\"@sigilStart.$S2.$1.<.>\"}],[/~([a-z]|[A-Z]+)(@sigilSymmetricDelimiter)/,{token:\"@rematch\",switchTo:\"@sigilStart.$S2.$1.$2.$2\"}]],\"sigilStart.interpol.s\":[[/~s@sigilStartDelimiter/,{token:\"string.delimiter\",switchTo:\"@sigilContinue.$S2.$S3.$S4.$S5\"}]],\"sigilContinue.interpol.s\":[[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{\"$1==$S5\":{token:\"string.delimiter\",next:\"@pop\"},\"@default\":\"string\"}}],{include:\"@stringContentInterpol\"}],\"sigilStart.noInterpol.S\":[[/~S@sigilStartDelimiter/,{token:\"string.delimiter\",switchTo:\"@sigilContinue.$S2.$S3.$S4.$S5\"}]],\"sigilContinue.noInterpol.S\":[[/(^|[^\\\\])\\\\@sigilEndDelimiter/,\"string\"],[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{\"$1==$S5\":{token:\"string.delimiter\",next:\"@pop\"},\"@default\":\"string\"}}],{include:\"@stringContent\"}],\"sigilStart.interpol.r\":[[/~r@sigilStartDelimiter/,{token:\"regexp.delimiter\",switchTo:\"@sigilContinue.$S2.$S3.$S4.$S5\"}]],\"sigilContinue.interpol.r\":[[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{\"$1==$S5\":{token:\"regexp.delimiter\",next:\"@pop\"},\"@default\":\"regexp\"}}],{include:\"@regexpContentInterpol\"}],\"sigilStart.noInterpol.R\":[[/~R@sigilStartDelimiter/,{token:\"regexp.delimiter\",switchTo:\"@sigilContinue.$S2.$S3.$S4.$S5\"}]],\"sigilContinue.noInterpol.R\":[[/(^|[^\\\\])\\\\@sigilEndDelimiter/,\"regexp\"],[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{\"$1==$S5\":{token:\"regexp.delimiter\",next:\"@pop\"},\"@default\":\"regexp\"}}],{include:\"@regexpContent\"}],\"sigilStart.interpol\":[[/~([a-z]|[A-Z]+)@sigilStartDelimiter/,{token:\"sigil.delimiter\",switchTo:\"@sigilContinue.$S2.$S3.$S4.$S5\"}]],\"sigilContinue.interpol\":[[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{\"$1==$S5\":{token:\"sigil.delimiter\",next:\"@pop\"},\"@default\":\"sigil\"}}],{include:\"@sigilContentInterpol\"}],\"sigilStart.noInterpol\":[[/~([a-z]|[A-Z]+)@sigilStartDelimiter/,{token:\"sigil.delimiter\",switchTo:\"@sigilContinue.$S2.$S3.$S4.$S5\"}]],\"sigilContinue.noInterpol\":[[/(^|[^\\\\])\\\\@sigilEndDelimiter/,\"sigil\"],[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{\"$1==$S5\":{token:\"sigil.delimiter\",next:\"@pop\"},\"@default\":\"sigil\"}}],{include:\"@sigilContent\"}],attributes:[[/\\@(module|type)?doc (~[sS])?\"\"\"/,{token:\"comment.block.documentation\",next:\"@doubleQuotedHeredocDocstring\"}],[/\\@(module|type)?doc (~[sS])?'''/,{token:\"comment.block.documentation\",next:\"@singleQuotedHeredocDocstring\"}],[/\\@(module|type)?doc (~[sS])?\"/,{token:\"comment.block.documentation\",next:\"@doubleQuotedStringDocstring\"}],[/\\@(module|type)?doc (~[sS])?'/,{token:\"comment.block.documentation\",next:\"@singleQuotedStringDocstring\"}],[/\\@(module|type)?doc false/,\"comment.block.documentation\"],[/\\@(@variableName)/,\"variable\"]],doubleQuotedHeredocDocstring:[[/\"\"\"/,{token:\"comment.block.documentation\",next:\"@pop\"}],{include:\"@docstringContent\"}],singleQuotedHeredocDocstring:[[/'''/,{token:\"comment.block.documentation\",next:\"@pop\"}],{include:\"@docstringContent\"}],doubleQuotedStringDocstring:[[/\"/,{token:\"comment.block.documentation\",next:\"@pop\"}],{include:\"@docstringContent\"}],singleQuotedStringDocstring:[[/'/,{token:\"comment.block.documentation\",next:\"@pop\"}],{include:\"@docstringContent\"}],symbols:[[/\\?(\\\\.|[^\\\\\\s])/,\"number.constant\"],[/&\\d+/,\"operator\"],[/<<<|>>>/,\"operator\"],[/[()\\[\\]\\{\\}]|<<|>>/,\"@brackets\"],[/\\.\\.\\./,\"identifier\"],[/=>/,\"punctuation\"],[/@operator/,\"operator\"],[/[:;,.%]/,\"punctuation\"]],stringContentInterpol:[{include:\"@interpolation\"},{include:\"@escapeChar\"},{include:\"@stringContent\"}],stringContent:[[/./,\"string\"]],stringConstantContentInterpol:[{include:\"@interpolation\"},{include:\"@escapeChar\"},{include:\"@stringConstantContent\"}],stringConstantContent:[[/./,\"constant\"]],regexpContentInterpol:[{include:\"@interpolation\"},{include:\"@escapeChar\"},{include:\"@regexpContent\"}],regexpContent:[[/(\\s)(#)(\\s.*)$/,[\"white\",\"comment.punctuation\",\"comment\"]],[/./,\"regexp\"]],sigilContentInterpol:[{include:\"@interpolation\"},{include:\"@escapeChar\"},{include:\"@sigilContent\"}],sigilContent:[[/./,\"sigil\"]],docstringContent:[[/./,\"comment.block.documentation\"]],escapeChar:[[/@escape/,\"constant.character.escape\"]],interpolation:[[/#{/,{token:\"delimiter.bracket.embed\",next:\"@interpolationContinue\"}]],interpolationContinue:[[/}/,{token:\"delimiter.bracket.embed\",next:\"@pop\"}],{include:\"@root\"}]}};export{e as conf,t as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/BS9OwPT8.js",
    "content": "import{a as e}from\"./9VOnL4Iz.js\";const o={width:800,height:380,crosshair:{mode:e.Normal}},i={chart:{layout:{background:{color:\"#ffffff\"},textColor:\"rgba(33, 56, 77, 1)\"},grid:{vertLines:{color:\"#f1f1f1\",visible:!1},horzLines:{color:\"#f1f1f1\",visible:!1}},rightPriceScale:{borderColor:\"rgba(197, 203, 206, 0.6)\"},timeScale:{borderColor:\"rgba(197, 203, 206, 0.6)\",timeVisible:!0,secondsVisible:!1}}},l={chart:{layout:{background:{color:\"rgb(29 25 23)\"},textColor:\"#D1D5DB\"},grid:{vertLines:{color:\"#525252\",visible:!1},horzLines:{color:\"#525252\",visible:!1}},rightPriceScale:{borderColor:\"#525252\"},timeScale:{borderColor:\"#525252\",timeVisible:!0,secondsVisible:!1}}};export{l as d,i as l,o as s};\n"
  },
  {
    "path": "jesse/static/_nuxt/BSxZ-RaX.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Swift\",\"fileTypes\":[\"swift\"],\"firstLineMatch\":\"^#!/.*\\\\\\\\bswift\",\"name\":\"swift\",\"patterns\":[{\"include\":\"#root\"}],\"repository\":{\"async-throws\":{\"captures\":{\"1\":{\"name\":\"invalid.illegal.await-must-precede-throws.swift\"},\"2\":{\"name\":\"storage.modifier.exception.swift\"},\"3\":{\"name\":\"storage.modifier.async.swift\"}},\"match\":\"\\\\\\\\b(?:(throws\\\\\\\\s+async|rethrows\\\\\\\\s+async)|(throws|rethrows)|(async))\\\\\\\\b\"},\"attributes\":{\"patterns\":[{\"begin\":\"((@)available)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.attribute.swift\"},\"2\":{\"name\":\"punctuation.definition.attribute.swift\"},\"3\":{\"name\":\"punctuation.definition.arguments.begin.swift\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.swift\"}},\"name\":\"meta.attribute.available.swift\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.platform.os.swift\"},\"2\":{\"name\":\"constant.numeric.swift\"}},\"match\":\"\\\\\\\\b(swift|(?:iOS|macOS|OSX|watchOS|tvOS|visionOS|UIKitForMac)(?:ApplicationExtension)?)\\\\\\\\b(?:\\\\\\\\s+([0-9]+(?:\\\\\\\\.[0-9]+)*\\\\\\\\b))?\"},{\"begin\":\"\\\\\\\\b(introduced|deprecated|obsoleted)\\\\\\\\s*(:)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.swift\"},\"2\":{\"name\":\"punctuation.separator.key-value.swift\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"match\":\"\\\\\\\\b[0-9]+(?:\\\\\\\\.[0-9]+)*\\\\\\\\b\",\"name\":\"constant.numeric.swift\"}]},{\"begin\":\"\\\\\\\\b(message|renamed)\\\\\\\\s*(:)\\\\\\\\s*(?=\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.swift\"},\"2\":{\"name\":\"punctuation.separator.key-value.swift\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"include\":\"#literals\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.other.platform.all.swift\"},\"2\":{\"name\":\"keyword.other.swift\"},\"3\":{\"name\":\"invalid.illegal.character-not-allowed-here.swift\"}},\"match\":\"(?:(\\\\\\\\*)|\\\\\\\\b(deprecated|unavailable|noasync)\\\\\\\\b)\\\\\\\\s*(.*?)(?=[,)])\"}]},{\"begin\":\"((@)objc)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.attribute.swift\"},\"2\":{\"name\":\"punctuation.definition.attribute.swift\"},\"3\":{\"name\":\"punctuation.definition.arguments.begin.swift\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.swift\"}},\"name\":\"meta.attribute.objc.swift\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"invalid.illegal.missing-colon-after-selector-piece.swift\"}},\"match\":\"\\\\\\\\w*(?::(?:\\\\\\\\w*:)*(\\\\\\\\w*))?\",\"name\":\"entity.name.function.swift\"}]},{\"begin\":\"(@)(?<q>`?)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*(\\\\\\\\k<q>)\",\"beginCaptures\":{\"0\":{\"name\":\"storage.modifier.attribute.swift\"},\"1\":{\"name\":\"punctuation.definition.attribute.swift\"},\"2\":{\"name\":\"punctuation.definition.identifier.swift\"},\"3\":{\"name\":\"punctuation.definition.identifier.swift\"}},\"end\":\"(?!\\\\\\\\G\\\\\\\\()\",\"name\":\"meta.attribute.swift\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.begin.swift\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.swift\"}},\"name\":\"meta.arguments.attribute.swift\",\"patterns\":[{\"include\":\"#expressions\"}]}]}]},\"builtin-functions\":{\"patterns\":[{\"match\":\"(?<=\\\\\\\\.)(?:s(?:ort(?:ed)?|plit)|contains|index|partition|f(?:i(?:lter|rst)|orEach|latMap)|with(?:MutableCharacters|CString|U(?:nsafe(?:Mutable(?:BufferPointer|Pointer(?:s|To(?:Header|Elements)))|BufferPointer)|TF8Buffer))|m(?:in|a(?:p|x)))(?=\\\\\\\\s*[({])\\\\\\\\b\",\"name\":\"support.function.swift\"},{\"match\":\"(?<=\\\\\\\\.)(?:s(?:ymmetricDifference|t(?:oreBytes|arts|ride)|ortInPlace|u(?:ccessor|ffix|btract(?:ing|InPlace|WithOverflow)?)|quareRoot|amePosition)|h(?:oldsUnique(?:Reference|OrPinnedReference)|as(?:Suffix|Prefix))|ne(?:gate(?:d)?|xt)|c(?:o(?:untByEnumerating|py(?:Bytes)?)|lamp(?:ed)?|reate)|t(?:o(?:IntMax|Opaque|UIntMax)|ake(?:RetainedValue|UnretainedValue)|r(?:uncatingRemainder|a(?:nscodedLength|ilSurrogate)))|i(?:s(?:MutableAndUniquelyReferenced(?:OrPinned)?|S(?:trictSu(?:perset(?:Of)?|bset(?:Of)?)|u(?:perset(?:Of)?|bset(?:Of)?))|Continuation|T(?:otallyOrdered|railSurrogate)|Disjoint(?:With)?|Unique(?:Reference|lyReferenced(?:OrPinned)?)|Equal|Le(?:ss(?:ThanOrEqualTo)?|adSurrogate))|n(?:sert(?:ContentsOf)?|tersect(?:ion|InPlace)?|itialize(?:Memory|From)?|dex(?:Of|ForKey)))|o(?:verlaps|bjectAt)|d(?:i(?:stance(?:To)?|vide(?:d|WithOverflow)?)|e(?:s(?:cendant|troy)|code(?:CString)?|initialize|alloc(?:ate(?:Capacity)?)?)|rop(?:First|Last))|u(?:n(?:ion(?:InPlace)?|derestimateCount|wrappedOrError)|p(?:date(?:Value)?|percased))|join(?:ed|WithSeparator)|p(?:op(?:First|Last)|ass(?:Retained|Unretained)|re(?:decessor|fix))|e(?:scape(?:d)?|n(?:code|umerate(?:d)?)|lementsEqual|xclusiveOr(?:InPlace)?)|f(?:orm(?:Remainder|S(?:ymmetricDifference|quareRoot)|TruncatingRemainder|In(?:tersection|dex)|Union)|latten|rom(?:CString(?:RepairingIllFormedUTF8)?|Opaque))|w(?:i(?:thMemoryRebound|dth)|rite(?:To)?)|l(?:o(?:wercased|ad)|e(?:adSurrogate|xicographical(?:Compare|lyPrecedes)))|a(?:ss(?:ign(?:BackwardFrom|From)?|umingMemoryBound)|d(?:d(?:ing(?:Product)?|Product|WithOverflow)?|vanced(?:By)?)|utorelease|ppend(?:ContentsOf)?|lloc(?:ate)?|bs)|r(?:ound(?:ed)?|e(?:serveCapacity|tain|duce|place(?:Range|Subrange)?|verse(?:d)?|quest(?:NativeBuffer|UniqueMutableBackingBuffer)|lease|m(?:ove(?:Range|Subrange|Value(?:ForKey)?|First|Last|A(?:tIndex|ll))?|ainder(?:WithOverflow)?)))|ge(?:nerate|t(?:Objects|Element))|m(?:in(?:imum(?:Magnitude)?|Element)|ove(?:Initialize(?:Memory|BackwardFrom|From)?|Assign(?:From)?)?|ultipl(?:y(?:WithOverflow)?|ied)|easure|a(?:ke(?:Iterator|Description)|x(?:imum(?:Magnitude)?|Element)))|bindMemory)(?=\\\\\\\\s*\\\\\\\\()\",\"name\":\"support.function.swift\"},{\"match\":\"(?<=\\\\\\\\.)(?:s(?:uperclassMirror|amePositionIn|tartsWith)|nextObject|c(?:haracterAtIndex|o(?:untByEnumeratingWithState|pyWithZone)|ustom(?:Mirror|PlaygroundQuickLook))|is(?:EmptyInput|ASCII)|object(?:Enumerator|ForKey|AtIndex)|join|put|keyEnumerator|withUnsafeMutablePointerToValue|length|getMirror|m(?:oveInitializeAssignFrom|ember))(?=\\\\\\\\s*\\\\\\\\()\",\"name\":\"support.function.swift\"}]},\"builtin-global-functions\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(type)(\\\\\\\\()\\\\\\\\s*(of)(:)\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.dynamic-type.swift\"},\"2\":{\"name\":\"punctuation.definition.arguments.begin.swift\"},\"3\":{\"name\":\"support.variable.parameter.swift\"},\"4\":{\"name\":\"punctuation.separator.argument-label.begin.swift\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.swift\"}},\"patterns\":[{\"include\":\"#expressions\"}]},{\"match\":\"\\\\\\\\b(?:anyGenerator|autoreleasepool)(?=\\\\\\\\s*[({])\\\\\\\\b\",\"name\":\"support.function.swift\"},{\"match\":\"\\\\\\\\b(?:s(?:tride(?:of(?:Value)?)?|izeof(?:Value)?|equence|wap)|numericCast|transcode|is(?:UniquelyReferenced(?:NonObjC)?|KnownUniquelyReferenced)|zip|d(?:ump|ebugPrint)|unsafe(?:BitCast|Downcast|Unwrap|Address(?:Of)?)|pr(?:int|econdition(?:Failure)?)|fatalError|with(?:Unsafe(?:MutablePointer|Pointer)|ExtendedLifetime|VaList)|a(?:ssert(?:ionFailure)?|lignof(?:Value)?|bs)|re(?:peatElement|adLine)|getVaList|m(?:in|ax))(?=\\\\\\\\s*\\\\\\\\()\",\"name\":\"support.function.swift\"},{\"match\":\"\\\\\\\\b(?:s(?:ort|uffix|pli(?:ce|t))|insert|overlaps|d(?:istance|rop(?:First|Last))|join|prefix|extend|withUnsafe(?:MutablePointers|Pointers)|lazy|advance|re(?:flect|move(?:Range|Last|A(?:tIndex|ll))))(?=\\\\\\\\s*\\\\\\\\()\",\"name\":\"support.function.swift\"}]},\"builtin-properties\":{\"patterns\":[{\"match\":\"(?<=^Process\\\\\\\\.|\\\\\\\\WProcess\\\\\\\\.|^CommandLine\\\\\\\\.|\\\\\\\\WCommandLine\\\\\\\\.)(arguments|argc|unsafeArgv)\",\"name\":\"support.variable.swift\"},{\"match\":\"(?<=\\\\\\\\.)(?:s(?:t(?:artIndex|ri(?:ngValue|de))|i(?:ze|gn(?:BitIndex|ificand(?:Bit(?:Count|Pattern)|Width)?|alingNaN)?)|u(?:perclassMirror|mmary|bscriptBaseAddress))|h(?:eader|as(?:hValue|PointerRepresentation))|n(?:ulTerminatedUTF8|ext(?:Down|Up)|a(?:n|tiveOwner))|c(?:haracters|ount(?:TrailingZeros)?|ustom(?:Mirror|PlaygroundQuickLook)|apacity)|i(?:s(?:S(?:ign(?:Minus|aling(?:NaN)?)|ubnormal)|N(?:ormal|aN)|Canonical|Infinite|Zero|Empty|Finite|ASCII)|n(?:dices|finity)|dentity)|owner|de(?:scription|bugDescription)|u(?:n(?:safelyUnwrapped|icodeScalar(?:s)?|derestimatedCount)|tf(?:16|8(?:Start|C(?:String|odeUnitCount))?)|intValue|ppercaseString|lp(?:OfOne)?)|p(?:i|ointee)|e(?:ndIndex|lements|xponent(?:Bit(?:Count|Pattern))?)|value(?:s)?|keys|quietNaN|f(?:irst(?:ElementAddress(?:IfContiguous)?)?|loatingPointClass)|l(?:ittleEndian|owercaseString|eastNo(?:nzeroMagnitude|rmalMagnitude)|a(?:st|zy))|a(?:l(?:ignment|l(?:ocatedElementCount|Zeros))|rray(?:PropertyIsNativeTypeChecked)?)|ra(?:dix|wValue)|greatestFiniteMagnitude|m(?:in|emory|ax)|b(?:yteS(?:ize|wapped)|i(?:nade|tPattern|gEndian)|uffer|ase(?:Address)?))\\\\\\\\b\",\"name\":\"support.variable.swift\"},{\"match\":\"(?<=\\\\\\\\.)(?:boolValue|disposition|end|objectIdentifier|quickLookObject|start|valueType)\\\\\\\\b\",\"name\":\"support.variable.swift\"},{\"match\":\"(?<=\\\\\\\\.)(?:s(?:calarValue|i(?:ze|gnalingNaN)|o(?:und|me)|uppressed|prite|et)|n(?:one|egative(?:Subnormal|Normal|Infinity|Zero))|c(?:ol(?:or|lection)|ustomized)|t(?:o(?:NearestOr(?:Even|AwayFromZero)|wardZero)|uple|ext)|i(?:nt|mage)|optional|d(?:ictionary|o(?:uble|wn))|u(?:Int|p|rl)|p(?:o(?:sitive(?:Subnormal|Normal|Infinity|Zero)|int)|lus)|e(?:rror|mptyInput)|view|quietNaN|float|a(?:ttributedString|wayFromZero)|r(?:ectangle|ange)|generated|minus|b(?:ool|ezierPath))\\\\\\\\b\",\"name\":\"support.variable.swift\"}]},\"builtin-types\":{\"patterns\":[{\"include\":\"#builtin-types-builtin-class-type\"},{\"include\":\"#builtin-types-builtin-enum-type\"},{\"include\":\"#builtin-types-builtin-protocol-type\"},{\"include\":\"#builtin-types-builtin-struct-type\"},{\"include\":\"#builtin-types-builtin-typealias\"},{\"match\":\"\\\\\\\\bAny\\\\\\\\b\",\"name\":\"support.type.any.swift\"}]},\"builtin-types-builtin-class-type\":{\"match\":\"\\\\\\\\b(Managed(Buffer|ProtoBuffer)|NonObjectiveCBase|AnyGenerator)\\\\\\\\b\",\"name\":\"support.class.swift\"},\"builtin-types-builtin-enum-type\":{\"patterns\":[{\"match\":\"\\\\\\\\b(?:CommandLine|Process(?=\\\\\\\\.))\\\\\\\\b\",\"name\":\"support.constant.swift\"},{\"match\":\"\\\\\\\\bNever\\\\\\\\b\",\"name\":\"support.constant.never.swift\"},{\"match\":\"\\\\\\\\b(?:ImplicitlyUnwrappedOptional|Representation|MemoryLayout|FloatingPointClassification|SetIndexRepresentation|SetIteratorRepresentation|FloatingPointRoundingRule|UnicodeDecodingResult|Optional|DictionaryIndexRepresentation|AncestorRepresentation|DisplayStyle|PlaygroundQuickLook|Never|FloatingPointSign|Bit|DictionaryIteratorRepresentation)\\\\\\\\b\",\"name\":\"support.type.swift\"},{\"match\":\"\\\\\\\\b(?:MirrorDisposition|QuickLookObject)\\\\\\\\b\",\"name\":\"support.type.swift\"}]},\"builtin-types-builtin-protocol-type\":{\"patterns\":[{\"match\":\"\\\\\\\\b(?:Ra(?:n(?:domAccess(?:Collection|Indexable)|geReplaceable(?:Collection|Indexable))|wRepresentable)|M(?:irrorPath|utable(?:Collection|Indexable))|Bi(?:naryFloatingPoint|twiseOperations|directional(?:Collection|Indexable))|S(?:tr(?:ideable|eamable)|igned(?:Number|Integer)|e(?:tAlgebra|quence))|Hashable|C(?:o(?:llection|mparable)|ustom(?:Reflectable|StringConvertible|DebugStringConvertible|PlaygroundQuickLookable|LeafReflectable)|VarArg)|TextOutputStream|I(?:n(?:teger(?:Arithmetic)?|dexable(?:Base)?)|teratorProtocol)|OptionSet|Un(?:signedInteger|icodeCodec)|E(?:quatable|rror|xpressibleBy(?:BooleanLiteral|String(?:Interpolation|Literal)|NilLiteral|IntegerLiteral|DictionaryLiteral|UnicodeScalarLiteral|ExtendedGraphemeClusterLiteral|FloatLiteral|ArrayLiteral))|FloatingPoint|L(?:osslessStringConvertible|azy(?:SequenceProtocol|CollectionProtocol))|A(?:nyObject|bsoluteValuable))\\\\\\\\b\",\"name\":\"support.type.swift\"},{\"match\":\"\\\\\\\\b(?:Ran(?:domAccessIndexType|geReplaceableCollectionType)|GeneratorType|M(?:irror(?:Type|PathType)|utable(?:Sliceable|CollectionType))|B(?:i(?:twiseOperationsType|directionalIndexType)|oolean(?:Type|LiteralConvertible))|S(?:tring(?:InterpolationConvertible|LiteralConvertible)|i(?:nkType|gned(?:NumberType|IntegerType))|e(?:tAlgebraType|quenceType)|liceable)|NilLiteralConvertible|C(?:ollectionType|VarArgType)|Inte(?:rvalType|ger(?:Type|LiteralConvertible|ArithmeticType))|O(?:utputStreamType|ptionSetType)|DictionaryLiteralConvertible|Un(?:signedIntegerType|icode(?:ScalarLiteralConvertible|CodecType))|E(?:rrorType|xten(?:sibleCollectionType|dedGraphemeClusterLiteralConvertible))|F(?:orwardIndexType|loat(?:ingPointType|LiteralConvertible))|A(?:nyCollectionType|rrayLiteralConvertible))\\\\\\\\b\",\"name\":\"support.type.swift\"}]},\"builtin-types-builtin-struct-type\":{\"patterns\":[{\"match\":\"\\\\\\\\b(?:R(?:e(?:peat(?:ed)?|versed(?:RandomAccess(?:Collection|Index)|Collection|Index))|an(?:domAccessSlice|ge(?:Replaceable(?:RandomAccessSlice|BidirectionalSlice|Slice)|Generator)?))|Generator(?:Sequence|OfOne)|M(?:irror|utable(?:Ran(?:domAccessSlice|geReplaceable(?:RandomAccessSlice|BidirectionalSlice|Slice))|BidirectionalSlice|Slice)|anagedBufferPointer)|B(?:idirectionalSlice|ool)|S(?:t(?:aticString|ri(?:ng|deT(?:hrough(?:Generator|Iterator)?|o(?:Generator|Iterator)?)))|et(?:I(?:ndex|terator))?|lice)|HalfOpenInterval|C(?:haracter(?:View)?|o(?:ntiguousArray|untable(?:Range|ClosedRange)|llectionOfOne)|OpaquePointer|losed(?:Range(?:I(?:ndex|terator))?|Interval)|VaListPointer)|I(?:n(?:t(?:16|8|32|64)?|d(?:ices|ex(?:ing(?:Generator|Iterator))?))|terator(?:Sequence|OverOne)?)|Zip2(?:Sequence|Iterator)|O(?:paquePointer|bjectIdentifier)|D(?:ictionary(?:I(?:ndex|terator)|Literal)?|ouble|efault(?:RandomAccessIndices|BidirectionalIndices|Indices))|U(?:n(?:safe(?:RawPointer|Mutable(?:RawPointer|BufferPointer|Pointer)|BufferPointer(?:Generator|Iterator)?|Pointer)|icodeScalar(?:View)?|foldSequence|managed)|TF(?:16(?:View)?|8(?:View)?|32)|Int(?:16|8|32|64)?)|Join(?:Generator|ed(?:Sequence|Iterator))|PermutationGenerator|E(?:numerate(?:Generator|Sequence|d(?:Sequence|Iterator))|mpty(?:Generator|Collection|Iterator))|Fl(?:oat(?:80)?|atten(?:Generator|BidirectionalCollection(?:Index)?|Sequence|Collection(?:Index)?|Iterator))|L(?:egacyChildren|azy(?:RandomAccessCollection|Map(?:RandomAccessCollection|Generator|BidirectionalCollection|Sequence|Collection|Iterator)|BidirectionalCollection|Sequence|Collection|Filter(?:Generator|BidirectionalCollection|Sequence|Collection|I(?:ndex|terator))))|A(?:ny(?:RandomAccessCollection|Generator|BidirectionalCollection|Sequence|Hashable|Collection|I(?:ndex|terator))|utoreleasingUnsafeMutablePointer|rray(?:Slice)?))\\\\\\\\b\",\"name\":\"support.type.swift\"},{\"match\":\"\\\\\\\\b(?:R(?:everse(?:RandomAccess(?:Collection|Index)|Collection|Index)|awByte)|Map(?:Generator|Sequence|Collection)|S(?:inkOf|etGenerator)|Zip2Generator|DictionaryGenerator|Filter(?:Generator|Sequence|Collection(?:Index)?)|LazyForwardCollection|Any(?:RandomAccessIndex|BidirectionalIndex|Forward(?:Collection|Index)))\\\\\\\\b\",\"name\":\"support.type.swift\"}]},\"builtin-types-builtin-typealias\":{\"patterns\":[{\"match\":\"\\\\\\\\b(?:Raw(?:Significand|Exponent|Value)|B(?:ooleanLiteralType|uffer|ase)|S(?:t(?:orage|r(?:i(?:ngLiteralType|de)|eam(?:1|2)))|ubSequence)|NativeBuffer|C(?:hild(?:ren)?|Bool|S(?:hort|ignedChar)|odeUnit|Char(?:16|32)?|Int|Double|Unsigned(?:Short|Char|Int|Long(?:Long)?)|Float|WideChar|Long(?:Long)?)|I(?:n(?:t(?:Max|egerLiteralType)|d(?:ices|ex(?:Distance)?))|terator)|Distance|U(?:n(?:icodeScalar(?:Type|Index|View|LiteralType)|foldFirstSequence)|TF(?:16(?:Index|View)|8Index)|IntMax)|E(?:lement(?:s)?|x(?:tendedGraphemeCluster(?:Type|LiteralType)|ponent))|V(?:oid|alue)|Key|Float(?:32|LiteralType|64)|AnyClass)\\\\\\\\b\",\"name\":\"support.type.swift\"},{\"match\":\"\\\\\\\\b(?:Generator|PlaygroundQuickLook|UWord|Word)\\\\\\\\b\",\"name\":\"support.type.swift\"}]},\"code-block\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.scope.begin.swift\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.scope.end.swift\"}},\"patterns\":[{\"include\":\"$self\"}]},\"comments\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.swift\"}},\"match\":\"\\\\\\\\A^(#!).*$\\\\\\\\n?\",\"name\":\"comment.line.number-sign.swift\"},{\"begin\":\"/\\\\\\\\*\\\\\\\\*(?!/)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.swift\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.swift\"}},\"name\":\"comment.block.documentation.swift\",\"patterns\":[{\"include\":\"#comments-nested\"}]},{\"begin\":\"/\\\\\\\\*:\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.swift\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.swift\"}},\"name\":\"comment.block.documentation.playground.swift\",\"patterns\":[{\"include\":\"#comments-nested\"}]},{\"begin\":\"/\\\\\\\\*\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.swift\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.swift\"}},\"name\":\"comment.block.swift\",\"patterns\":[{\"include\":\"#comments-nested\"}]},{\"match\":\"\\\\\\\\*/\",\"name\":\"invalid.illegal.unexpected-end-of-block-comment.swift\"},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=//)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.swift\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"///\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.swift\"}},\"end\":\"$\",\"name\":\"comment.line.triple-slash.documentation.swift\"},{\"begin\":\"//:\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.swift\"}},\"end\":\"$\",\"name\":\"comment.line.double-slash.documentation.swift\"},{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.swift\"}},\"end\":\"$\",\"name\":\"comment.line.double-slash.swift\"}]}]},\"comments-nested\":{\"begin\":\"/\\\\\\\\*\",\"end\":\"\\\\\\\\*/\",\"patterns\":[{\"include\":\"#comments-nested\"}]},\"compiler-control\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*(#)(if|elseif)\\\\\\\\s+(false)\\\\\\\\b.*?(?=$|//|/\\\\\\\\*)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.conditional.swift\"},\"1\":{\"name\":\"punctuation.definition.preprocessor.swift\"},\"2\":{\"name\":\"keyword.control.import.preprocessor.conditional.swift\"},\"3\":{\"name\":\"constant.language.boolean.swift\"}},\"contentName\":\"comment.block.preprocessor.swift\",\"end\":\"(?=^\\\\\\\\s*(#(elseif|else|endif)\\\\\\\\b))\"},{\"begin\":\"^\\\\\\\\s*(#)(if|elseif)\\\\\\\\s+\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.preprocessor.swift\"},\"2\":{\"name\":\"keyword.control.import.preprocessor.conditional.swift\"}},\"end\":\"(?=\\\\\\\\s*(?://|/\\\\\\\\*))|$\",\"name\":\"meta.preprocessor.conditional.swift\",\"patterns\":[{\"match\":\"(&&|\\\\\\\\|\\\\\\\\|)\",\"name\":\"keyword.operator.logical.swift\"},{\"match\":\"\\\\\\\\b(true|false)\\\\\\\\b\",\"name\":\"constant.language.boolean.swift\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.condition.swift\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.swift\"},\"3\":{\"name\":\"support.constant.platform.architecture.swift\"},\"4\":{\"name\":\"punctuation.definition.parameters.end.swift\"}},\"match\":\"\\\\\\\\b(arch)\\\\\\\\s*(\\\\\\\\()\\\\\\\\s*(?:(arm|arm64|powerpc64|powerpc64le|i386|x86_64|s390x)|\\\\\\\\w+)\\\\\\\\s*(\\\\\\\\))\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.condition.swift\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.swift\"},\"3\":{\"name\":\"support.constant.platform.os.swift\"},\"4\":{\"name\":\"punctuation.definition.parameters.end.swift\"}},\"match\":\"\\\\\\\\b(os)\\\\\\\\s*(\\\\\\\\()\\\\\\\\s*(?:(macOS|OSX|iOS|tvOS|watchOS|visionOS|Android|Linux|FreeBSD|Windows|PS4)|\\\\\\\\w+)\\\\\\\\s*(\\\\\\\\))\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.condition.swift\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.swift\"},\"3\":{\"name\":\"entity.name.type.module.swift\"},\"4\":{\"name\":\"punctuation.definition.parameters.end.swift\"}},\"match\":\"\\\\\\\\b(canImport)\\\\\\\\s*(\\\\\\\\()([\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*)(\\\\\\\\))\"},{\"begin\":\"\\\\\\\\b(targetEnvironment)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.condition.swift\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.swift\"}},\"end\":\"(\\\\\\\\))|$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.swift\"}},\"patterns\":[{\"match\":\"\\\\\\\\b(simulator|UIKitForMac)\\\\\\\\b\",\"name\":\"support.constant.platform.environment.swift\"}]},{\"begin\":\"\\\\\\\\b(swift|compiler)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.condition.swift\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.swift\"}},\"end\":\"(\\\\\\\\))|$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.swift\"}},\"patterns\":[{\"match\":\">=|<\",\"name\":\"keyword.operator.comparison.swift\"},{\"match\":\"\\\\\\\\b[0-9]+(?:\\\\\\\\.[0-9]+)*\\\\\\\\b\",\"name\":\"constant.numeric.swift\"}]}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.preprocessor.swift\"},\"2\":{\"name\":\"keyword.control.import.preprocessor.conditional.swift\"},\"3\":{\"patterns\":[{\"match\":\"\\\\\\\\S+\",\"name\":\"invalid.illegal.character-not-allowed-here.swift\"}]}},\"match\":\"^\\\\\\\\s*(#)(else|endif)(.*?)(?=$|//|/\\\\\\\\*)\",\"name\":\"meta.preprocessor.conditional.swift\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.preprocessor.swift\"},\"2\":{\"name\":\"keyword.control.import.preprocessor.sourcelocation.swift\"},\"4\":{\"name\":\"punctuation.definition.parameters.begin.swift\"},\"5\":{\"patterns\":[{\"begin\":\"(file)\\\\\\\\s*(:)\\\\\\\\s*(?=\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"support.variable.parameter.swift\"},\"2\":{\"name\":\"punctuation.separator.key-value.swift\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"include\":\"#literals\"}]},{\"captures\":{\"1\":{\"name\":\"support.variable.parameter.swift\"},\"2\":{\"name\":\"punctuation.separator.key-value.swift\"},\"3\":{\"name\":\"constant.numeric.integer.swift\"}},\"match\":\"(line)\\\\\\\\s*(:)\\\\\\\\s*([0-9]+)\"},{\"match\":\",\",\"name\":\"punctuation.separator.parameters.swift\"},{\"match\":\"\\\\\\\\S+\",\"name\":\"invalid.illegal.character-not-allowed-here.swift\"}]},\"6\":{\"name\":\"punctuation.definition.parameters.begin.swift\"},\"7\":{\"patterns\":[{\"match\":\"\\\\\\\\S+\",\"name\":\"invalid.illegal.character-not-allowed-here.swift\"}]}},\"match\":\"^\\\\\\\\s*(#)(sourceLocation)((\\\\\\\\()([^)]*)(\\\\\\\\)))(.*?)(?=$|//|/\\\\\\\\*)\",\"name\":\"meta.preprocessor.sourcelocation.swift\"}]},\"conditionals\":{\"patterns\":[{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(if|guard|switch|for)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#keywords\"}]}},\"end\":\"(?=\\\\\\\\{)\",\"patterns\":[{\"include\":\"#expressions-without-trailing-closures\"}]},{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(while)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#keywords\"}]}},\"end\":\"(?=\\\\\\\\{)|$\",\"patterns\":[{\"include\":\"#expressions-without-trailing-closures\"}]}]},\"declarations\":{\"patterns\":[{\"include\":\"#declarations-function\"},{\"include\":\"#declarations-function-initializer\"},{\"include\":\"#declarations-function-subscript\"},{\"include\":\"#declarations-typed-variable-declaration\"},{\"include\":\"#declarations-import\"},{\"include\":\"#declarations-operator\"},{\"include\":\"#declarations-precedencegroup\"},{\"include\":\"#declarations-protocol\"},{\"include\":\"#declarations-type\"},{\"include\":\"#declarations-extension\"},{\"include\":\"#declarations-typealias\"},{\"include\":\"#declarations-macro\"}]},\"declarations-available-types\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#builtin-types\"},{\"include\":\"#attributes\"},{\"match\":\"\\\\\\\\basync\\\\\\\\b\",\"name\":\"storage.modifier.async.swift\"},{\"match\":\"\\\\\\\\b(?:throws|rethrows)\\\\\\\\b\",\"name\":\"storage.modifier.exception.swift\"},{\"match\":\"\\\\\\\\bsome\\\\\\\\b\",\"name\":\"keyword.other.operator.type.opaque.swift\"},{\"match\":\"\\\\\\\\bany\\\\\\\\b\",\"name\":\"keyword.other.operator.type.existential.swift\"},{\"match\":\"\\\\\\\\b(?:repeat|each)\\\\\\\\b\",\"name\":\"keyword.control.loop.swift\"},{\"match\":\"\\\\\\\\b(?:inout|isolated|borrowing|consuming)\\\\\\\\b\",\"name\":\"storage.modifier.swift\"},{\"match\":\"\\\\\\\\bSelf\\\\\\\\b\",\"name\":\"variable.language.swift\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.type.function.swift\"}},\"match\":\"(?<![/=\\\\\\\\-+!*%<>&|\\\\\\\\^~.])(->)(?![/=\\\\\\\\-+!*%<>&|\\\\\\\\^~.])\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.type.composition.swift\"}},\"match\":\"(?<![/=\\\\\\\\-+!*%<>&|\\\\\\\\^~.])(&)(?![/=\\\\\\\\-+!*%<>&|\\\\\\\\^~.])\"},{\"match\":\"[?!]\",\"name\":\"keyword.operator.type.optional.swift\"},{\"match\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"name\":\"keyword.operator.function.variadic-parameter.swift\"},{\"match\":\"\\\\\\\\bprotocol\\\\\\\\b\",\"name\":\"keyword.other.type.composition.swift\"},{\"match\":\"(?<=\\\\\\\\.)(?:Protocol|Type)\\\\\\\\b\",\"name\":\"keyword.other.type.metatype.swift\"},{\"include\":\"#declarations-available-types-tuple-type\"},{\"include\":\"#declarations-available-types-collection-type\"},{\"include\":\"#declarations-generic-argument-clause\"}]},\"declarations-available-types-collection-type\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.collection-type.begin.swift\"}},\"end\":\"\\\\\\\\]|(?=[>){}])\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.collection-type.end.swift\"}},\"patterns\":[{\"include\":\"#declarations-available-types\"},{\"begin\":\":\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.key-value.swift\"}},\"end\":\"(?=\\\\\\\\]|[>){}])\",\"patterns\":[{\"match\":\":\",\"name\":\"invalid.illegal.extra-colon-in-dictionary-type.swift\"},{\"include\":\"#declarations-available-types\"}]}]},\"declarations-available-types-tuple-type\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.tuple-type.begin.swift\"}},\"end\":\"\\\\\\\\)|(?=[>\\\\\\\\]{}])\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.tuple-type.end.swift\"}},\"patterns\":[{\"include\":\"#declarations-available-types\"}]},\"declarations-extension\":{\"begin\":\"\\\\\\\\b(extension)\\\\\\\\s+((?<q>`?)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*(\\\\\\\\k<q>))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.$1.swift\"},\"2\":{\"name\":\"entity.name.type.swift\",\"patterns\":[{\"include\":\"#declarations-available-types\"}]},\"3\":{\"name\":\"punctuation.definition.identifier.swift\"},\"4\":{\"name\":\"punctuation.definition.identifier.swift\"}},\"end\":\"(?<=\\\\\\\\})\",\"name\":\"meta.definition.type.$1.swift\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#declarations-generic-where-clause\"},{\"include\":\"#declarations-inheritance-clause\"},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.type.begin.swift\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.type.end.swift\"}},\"name\":\"meta.definition.type.body.swift\",\"patterns\":[{\"include\":\"$self\"}]}]},\"declarations-function\":{\"begin\":\"\\\\\\\\b(func)\\\\\\\\s+((?<q>`?)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*(\\\\\\\\k<q>)|(?:((?<oph>[/=\\\\\\\\-+!*%<>&|^~?]|[\\\\\\\\x{00A1}-\\\\\\\\x{00A7}]|[\\\\\\\\x{00A9}\\\\\\\\x{00AB}]|[\\\\\\\\x{00AC}\\\\\\\\x{00AE}]|[\\\\\\\\x{00B0}-\\\\\\\\x{00B1}\\\\\\\\x{00B6}\\\\\\\\x{00BB}\\\\\\\\x{00BF}\\\\\\\\x{00D7}\\\\\\\\x{00F7}]|[\\\\\\\\x{2016}-\\\\\\\\x{2017}\\\\\\\\x{2020}-\\\\\\\\x{2027}]|[\\\\\\\\x{2030}-\\\\\\\\x{203E}]|[\\\\\\\\x{2041}-\\\\\\\\x{2053}]|[\\\\\\\\x{2055}-\\\\\\\\x{205E}]|[\\\\\\\\x{2190}-\\\\\\\\x{23FF}]|[\\\\\\\\x{2500}-\\\\\\\\x{2775}]|[\\\\\\\\x{2794}-\\\\\\\\x{2BFF}]|[\\\\\\\\x{2E00}-\\\\\\\\x{2E7F}]|[\\\\\\\\x{3001}-\\\\\\\\x{3003}]|[\\\\\\\\x{3008}-\\\\\\\\x{3030}])(\\\\\\\\g<oph>|(?<opc>[\\\\\\\\x{0300}-\\\\\\\\x{036F}]|[\\\\\\\\x{1DC0}-\\\\\\\\x{1DFF}]|[\\\\\\\\x{20D0}-\\\\\\\\x{20FF}]|[\\\\\\\\x{FE00}-\\\\\\\\x{FE0F}]|[\\\\\\\\x{FE20}-\\\\\\\\x{FE2F}]|[\\\\\\\\x{E0100}-\\\\\\\\x{E01EF}]))*)|(\\\\\\\\.(\\\\\\\\g<oph>|\\\\\\\\g<opc>|\\\\\\\\.)+)))\\\\\\\\s*(?=\\\\\\\\(|<)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.swift\"},\"2\":{\"name\":\"entity.name.function.swift\"},\"3\":{\"name\":\"punctuation.definition.identifier.swift\"},\"4\":{\"name\":\"punctuation.definition.identifier.swift\"}},\"end\":\"(?<=\\\\\\\\})|$\",\"name\":\"meta.definition.function.swift\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#declarations-generic-parameter-clause\"},{\"include\":\"#declarations-parameter-clause\"},{\"include\":\"#declarations-function-result\"},{\"include\":\"#async-throws\"},{\"include\":\"#declarations-generic-where-clause\"},{\"begin\":\"(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.function.begin.swift\"}},\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.function.end.swift\"}},\"name\":\"meta.definition.function.body.swift\",\"patterns\":[{\"include\":\"$self\"}]}]},\"declarations-function-initializer\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(init[?!]*)\\\\\\\\s*(?=\\\\\\\\(|<)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.swift\",\"patterns\":[{\"match\":\"(?<=[?!])[?!]+\",\"name\":\"invalid.illegal.character-not-allowed-here.swift\"}]}},\"end\":\"(?<=\\\\\\\\})|$\",\"name\":\"meta.definition.function.initializer.swift\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#declarations-generic-parameter-clause\"},{\"include\":\"#declarations-parameter-clause\"},{\"include\":\"#async-throws\"},{\"include\":\"#declarations-generic-where-clause\"},{\"begin\":\"(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.function.begin.swift\"}},\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.function.end.swift\"}},\"name\":\"meta.definition.function.body.swift\",\"patterns\":[{\"include\":\"$self\"}]}]},\"declarations-function-result\":{\"begin\":\"(?<![/=\\\\\\\\-+!*%<>&|\\\\\\\\^~.])(->)(?![/=\\\\\\\\-+!*%<>&|\\\\\\\\^~.])\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.function-result.swift\"}},\"end\":\"(?!\\\\\\\\G)(?=\\\\\\\\{|\\\\\\\\bwhere\\\\\\\\b|;|=)|$\",\"name\":\"meta.function-result.swift\",\"patterns\":[{\"include\":\"#declarations-available-types\"}]},\"declarations-function-subscript\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(subscript)\\\\\\\\s*(?=\\\\\\\\(|<)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.swift\"}},\"end\":\"(?<=\\\\\\\\})|$\",\"name\":\"meta.definition.function.subscript.swift\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#declarations-generic-parameter-clause\"},{\"include\":\"#declarations-parameter-clause\"},{\"include\":\"#declarations-function-result\"},{\"include\":\"#async-throws\"},{\"include\":\"#declarations-generic-where-clause\"},{\"begin\":\"(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.function.begin.swift\"}},\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.function.end.swift\"}},\"name\":\"meta.definition.function.body.swift\",\"patterns\":[{\"include\":\"$self\"}]}]},\"declarations-generic-argument-clause\":{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.generic-argument-clause.begin.swift\"}},\"end\":\">|(?=[)\\\\\\\\]{}])\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.separator.generic-argument-clause.end.swift\"}},\"name\":\"meta.generic-argument-clause.swift\",\"patterns\":[{\"include\":\"#declarations-available-types\"}]},\"declarations-generic-parameter-clause\":{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.generic-parameter-clause.begin.swift\"}},\"end\":\">|(?=[^\\\\\\\\w\\\\\\\\d:<>\\\\\\\\s,=&`])\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.separator.generic-parameter-clause.end.swift\"}},\"name\":\"meta.generic-parameter-clause.swift\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#declarations-generic-where-clause\"},{\"match\":\"\\\\\\\\beach\\\\\\\\b\",\"name\":\"keyword.control.loop.swift\"},{\"captures\":{\"1\":{\"name\":\"variable.language.generic-parameter.swift\"}},\"match\":\"\\\\\\\\b((?!\\\\\\\\d)\\\\\\\\w[\\\\\\\\w\\\\\\\\d]*)\\\\\\\\b\"},{\"match\":\",\",\"name\":\"punctuation.separator.generic-parameters.swift\"},{\"begin\":\"(:)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.generic-parameter-constraint.swift\"}},\"end\":\"(?=[,>]|(?!\\\\\\\\G)\\\\\\\\bwhere\\\\\\\\b)\",\"name\":\"meta.generic-parameter-constraint.swift\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(?=[,>]|(?!\\\\\\\\G)\\\\\\\\bwhere\\\\\\\\b)\",\"name\":\"entity.other.inherited-class.swift\",\"patterns\":[{\"include\":\"#declarations-type-identifier\"},{\"include\":\"#declarations-type-operators\"}]}]}]},\"declarations-generic-where-clause\":{\"begin\":\"\\\\\\\\b(where)\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.generic-constraint-introducer.swift\"}},\"end\":\"(?!\\\\\\\\G)$|(?=[>{};\\\\\\\\n]|//|/\\\\\\\\*)\",\"name\":\"meta.generic-where-clause.swift\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#declarations-generic-where-clause-requirement-list\"}]},\"declarations-generic-where-clause-requirement-list\":{\"begin\":\"\\\\\\\\G|,\\\\\\\\s*\",\"end\":\"(?=[,>{};\\\\\\\\n]|//|/\\\\\\\\*)\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#constraint\"},{\"include\":\"#declarations-available-types\"},{\"begin\":\"(?<![/=\\\\\\\\-+!*%<>&|\\\\\\\\^~.])(==)(?![/=\\\\\\\\-+!*%<>&|\\\\\\\\^~.])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.generic-constraint.same-type.swift\"}},\"end\":\"(?=\\\\\\\\s*[,>{};\\\\\\\\n]|//|/\\\\\\\\*)\",\"name\":\"meta.generic-where-clause.same-type-requirement.swift\",\"patterns\":[{\"include\":\"#declarations-available-types\"}]},{\"begin\":\"(?<![/=\\\\\\\\-+!*%<>&|\\\\\\\\^~.])(:)(?![/=\\\\\\\\-+!*%<>&|\\\\\\\\^~.])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.generic-constraint.conforms-to.swift\"}},\"end\":\"(?=\\\\\\\\s*[,>{};\\\\\\\\n]|//|/\\\\\\\\*)\",\"name\":\"meta.generic-where-clause.conformance-requirement.swift\",\"patterns\":[{\"begin\":\"\\\\\\\\G\\\\\\\\s*\",\"contentName\":\"entity.other.inherited-class.swift\",\"end\":\"(?=\\\\\\\\s*[,>{};\\\\\\\\n]|//|/\\\\\\\\*)\",\"patterns\":[{\"include\":\"#declarations-available-types\"}]}]}]},\"declarations-import\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(import)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.import.swift\"}},\"end\":\"(;)|$\\\\\\\\n?|(?=//|/\\\\\\\\*)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.swift\"}},\"name\":\"meta.import.swift\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?!;|$|//|/\\\\\\\\*)(?:(typealias|struct|class|actor|enum|protocol|var|func)\\\\\\\\s+)?\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.swift\"}},\"end\":\"(?=;|$|//|/\\\\\\\\*)\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.identifier.swift\"},\"2\":{\"name\":\"punctuation.definition.identifier.swift\"}},\"match\":\"(?<=\\\\\\\\G|\\\\\\\\.)(?<q>`?)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*(\\\\\\\\k<q>)\",\"name\":\"entity.name.type.swift\"},{\"match\":\"(?<=\\\\\\\\G|\\\\\\\\.)\\\\\\\\$[0-9]+\",\"name\":\"entity.name.type.swift\"},{\"captures\":{\"1\":{\"patterns\":[{\"match\":\"\\\\\\\\.\",\"name\":\"invalid.illegal.dot-not-allowed-here.swift\"}]}},\"match\":\"(?<=\\\\\\\\G|\\\\\\\\.)(?:((?<oph>[/=\\\\\\\\-+!*%<>&|^~?]|[\\\\\\\\x{00A1}-\\\\\\\\x{00A7}]|[\\\\\\\\x{00A9}\\\\\\\\x{00AB}]|[\\\\\\\\x{00AC}\\\\\\\\x{00AE}]|[\\\\\\\\x{00B0}-\\\\\\\\x{00B1}\\\\\\\\x{00B6}\\\\\\\\x{00BB}\\\\\\\\x{00BF}\\\\\\\\x{00D7}\\\\\\\\x{00F7}]|[\\\\\\\\x{2016}-\\\\\\\\x{2017}\\\\\\\\x{2020}-\\\\\\\\x{2027}]|[\\\\\\\\x{2030}-\\\\\\\\x{203E}]|[\\\\\\\\x{2041}-\\\\\\\\x{2053}]|[\\\\\\\\x{2055}-\\\\\\\\x{205E}]|[\\\\\\\\x{2190}-\\\\\\\\x{23FF}]|[\\\\\\\\x{2500}-\\\\\\\\x{2775}]|[\\\\\\\\x{2794}-\\\\\\\\x{2BFF}]|[\\\\\\\\x{2E00}-\\\\\\\\x{2E7F}]|[\\\\\\\\x{3001}-\\\\\\\\x{3003}]|[\\\\\\\\x{3008}-\\\\\\\\x{3030}])(\\\\\\\\g<oph>|(?<opc>[\\\\\\\\x{0300}-\\\\\\\\x{036F}]|[\\\\\\\\x{1DC0}-\\\\\\\\x{1DFF}]|[\\\\\\\\x{20D0}-\\\\\\\\x{20FF}]|[\\\\\\\\x{FE00}-\\\\\\\\x{FE0F}]|[\\\\\\\\x{FE20}-\\\\\\\\x{FE2F}]|[\\\\\\\\x{E0100}-\\\\\\\\x{E01EF}]))*)|(\\\\\\\\.(\\\\\\\\g<oph>|\\\\\\\\g<opc>|\\\\\\\\.)+))(?=\\\\\\\\.|;|$|//|/\\\\\\\\*|\\\\\\\\s)\",\"name\":\"entity.name.type.swift\"},{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.separator.import.swift\"},{\"begin\":\"(?!\\\\\\\\s*(;|$|//|/\\\\\\\\*))\",\"end\":\"(?=\\\\\\\\s*(;|$|//|/\\\\\\\\*))\",\"name\":\"invalid.illegal.character-not-allowed-here.swift\"}]}]},\"declarations-inheritance-clause\":{\"begin\":\"(:)(?=\\\\\\\\s*\\\\\\\\{)|(:)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"invalid.illegal.empty-inheritance-clause.swift\"},\"2\":{\"name\":\"punctuation.separator.inheritance-clause.swift\"}},\"end\":\"(?!\\\\\\\\G)$|(?=[={}]|(?!\\\\\\\\G)\\\\\\\\bwhere\\\\\\\\b)\",\"name\":\"meta.inheritance-clause.swift\",\"patterns\":[{\"begin\":\"\\\\\\\\bclass\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.class.swift\"}},\"end\":\"(?=[={}]|(?!\\\\\\\\G)\\\\\\\\bwhere\\\\\\\\b)\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#declarations-inheritance-clause-more-types\"}]},{\"begin\":\"\\\\\\\\G\",\"end\":\"(?!\\\\\\\\G)$|(?=[={}]|(?!\\\\\\\\G)\\\\\\\\bwhere\\\\\\\\b)\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#declarations-inheritance-clause-inherited-type\"},{\"include\":\"#declarations-inheritance-clause-more-types\"},{\"include\":\"#declarations-type-operators\"}]}]},\"declarations-inheritance-clause-inherited-type\":{\"begin\":\"(?=[`\\\\\\\\p{L}_])\",\"end\":\"(?!\\\\\\\\G)\",\"name\":\"entity.other.inherited-class.swift\",\"patterns\":[{\"include\":\"#declarations-type-identifier\"}]},\"declarations-inheritance-clause-more-types\":{\"begin\":\",\\\\\\\\s*\",\"end\":\"(?!\\\\\\\\G)(?!//|/\\\\\\\\*)|(?=[,={}]|(?!\\\\\\\\G)\\\\\\\\bwhere\\\\\\\\b)\",\"name\":\"meta.inheritance-list.more-types\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#declarations-inheritance-clause-inherited-type\"},{\"include\":\"#declarations-inheritance-clause-more-types\"},{\"include\":\"#declarations-type-operators\"}]},\"declarations-macro\":{\"begin\":\"\\\\\\\\b(macro)\\\\\\\\s+((?<q>`?)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*(\\\\\\\\k<q>))\\\\\\\\s*(?=\\\\\\\\(|<|=)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.swift\"},\"2\":{\"name\":\"entity.name.function.swift\"},\"3\":{\"name\":\"punctuation.definition.identifier.swift\"},\"4\":{\"name\":\"punctuation.definition.identifier.swift\"}},\"end\":\"$|(?=;|//|/\\\\\\\\*|\\\\\\\\}|=)\",\"name\":\"meta.definition.macro.swift\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#declarations-generic-parameter-clause\"},{\"include\":\"#declarations-parameter-clause\"},{\"include\":\"#declarations-function-result\"},{\"include\":\"#async-throws\"},{\"include\":\"#declarations-generic-where-clause\"}]},\"declarations-operator\":{\"begin\":\"(?:\\\\\\\\b(prefix|infix|postfix)\\\\\\\\s+)?\\\\\\\\b(operator)\\\\\\\\s+(((?<oph>[/=\\\\\\\\-+!*%<>&|^~?]|[\\\\\\\\x{00A1}-\\\\\\\\x{00A7}]|[\\\\\\\\x{00A9}\\\\\\\\x{00AB}]|[\\\\\\\\x{00AC}\\\\\\\\x{00AE}]|[\\\\\\\\x{00B0}-\\\\\\\\x{00B1}\\\\\\\\x{00B6}\\\\\\\\x{00BB}\\\\\\\\x{00BF}\\\\\\\\x{00D7}\\\\\\\\x{00F7}]|[\\\\\\\\x{2016}-\\\\\\\\x{2017}\\\\\\\\x{2020}-\\\\\\\\x{2027}]|[\\\\\\\\x{2030}-\\\\\\\\x{203E}]|[\\\\\\\\x{2041}-\\\\\\\\x{2053}]|[\\\\\\\\x{2055}-\\\\\\\\x{205E}]|[\\\\\\\\x{2190}-\\\\\\\\x{23FF}]|[\\\\\\\\x{2500}-\\\\\\\\x{2775}]|[\\\\\\\\x{2794}-\\\\\\\\x{2BFF}]|[\\\\\\\\x{2E00}-\\\\\\\\x{2E7F}]|[\\\\\\\\x{3001}-\\\\\\\\x{3003}]|[\\\\\\\\x{3008}-\\\\\\\\x{3030}])(\\\\\\\\g<oph>|\\\\\\\\.|(?<opc>[\\\\\\\\x{0300}-\\\\\\\\x{036F}]|[\\\\\\\\x{1DC0}-\\\\\\\\x{1DFF}]|[\\\\\\\\x{20D0}-\\\\\\\\x{20FF}]|[\\\\\\\\x{FE00}-\\\\\\\\x{FE0F}]|[\\\\\\\\x{FE20}-\\\\\\\\x{FE2F}]|[\\\\\\\\x{E0100}-\\\\\\\\x{E01EF}]))*+)|(\\\\\\\\.(\\\\\\\\g<oph>|\\\\\\\\g<opc>|\\\\\\\\.)++))\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.swift\"},\"2\":{\"name\":\"storage.type.function.operator.swift\"},\"3\":{\"name\":\"entity.name.function.operator.swift\"},\"4\":{\"name\":\"entity.name.function.operator.swift\",\"patterns\":[{\"match\":\"\\\\\\\\.\",\"name\":\"invalid.illegal.dot-not-allowed-here.swift\"}]}},\"end\":\"(;)|$\\\\\\\\n?|(?=//|/\\\\\\\\*)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.swift\"}},\"name\":\"meta.definition.operator.swift\",\"patterns\":[{\"include\":\"#declarations-operator-swift2\"},{\"include\":\"#declarations-operator-swift3\"},{\"match\":\"((?!$|;|//|/\\\\\\\\*)\\\\\\\\S)+\",\"name\":\"invalid.illegal.character-not-allowed-here.swift\"}]},\"declarations-operator-swift2\":{\"begin\":\"\\\\\\\\G(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.operator.begin.swift\"}},\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.operator.end.swift\"}},\"patterns\":[{\"include\":\"#comments\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.swift\"},\"2\":{\"name\":\"keyword.other.operator.associativity.swift\"}},\"match\":\"\\\\\\\\b(associativity)\\\\\\\\s+(left|right)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.swift\"},\"2\":{\"name\":\"constant.numeric.integer.swift\"}},\"match\":\"\\\\\\\\b(precedence)\\\\\\\\s+([0-9]+)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.swift\"}},\"match\":\"\\\\\\\\b(assignment)\\\\\\\\b\"}]},\"declarations-operator-swift3\":{\"captures\":{\"2\":{\"name\":\"entity.other.inherited-class.swift\",\"patterns\":[{\"include\":\"#declarations-types-precedencegroup\"}]},\"3\":{\"name\":\"punctuation.definition.identifier.swift\"},\"4\":{\"name\":\"punctuation.definition.identifier.swift\"}},\"match\":\"\\\\\\\\G(:)\\\\\\\\s*((?<q>`?)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*(\\\\\\\\k<q>))\"},\"declarations-parameter-clause\":{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.begin.swift\"}},\"end\":\"(\\\\\\\\))(?:\\\\\\\\s*(async)\\\\\\\\b)?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.swift\"},\"2\":{\"name\":\"storage.modifier.async.swift\"}},\"name\":\"meta.parameter-clause.swift\",\"patterns\":[{\"include\":\"#declarations-parameter-list\"}]},\"declarations-parameter-list\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.function.swift\"},\"2\":{\"name\":\"punctuation.definition.identifier.swift\"},\"3\":{\"name\":\"punctuation.definition.identifier.swift\"},\"4\":{\"name\":\"variable.parameter.function.swift\"},\"5\":{\"name\":\"punctuation.definition.identifier.swift\"},\"6\":{\"name\":\"punctuation.definition.identifier.swift\"}},\"match\":\"((?<q1>`?)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*(\\\\\\\\k<q1>))\\\\\\\\s+((?<q2>`?)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*(\\\\\\\\k<q2>))(?=\\\\\\\\s*:)\"},{\"captures\":{\"1\":{\"name\":\"variable.parameter.function.swift\"},\"2\":{\"name\":\"entity.name.function.swift\"},\"3\":{\"name\":\"punctuation.definition.identifier.swift\"},\"4\":{\"name\":\"punctuation.definition.identifier.swift\"}},\"match\":\"(((?<q>`?)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*(\\\\\\\\k<q>)))(?=\\\\\\\\s*:)\"},{\"begin\":\":\\\\\\\\s*(?!\\\\\\\\s)\",\"end\":\"(?=[,)])\",\"patterns\":[{\"include\":\"#declarations-available-types\"},{\"match\":\":\",\"name\":\"invalid.illegal.extra-colon-in-parameter-list.swift\"},{\"begin\":\"=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.assignment.swift\"}},\"end\":\"(?=[,)])\",\"patterns\":[{\"include\":\"#expressions\"}]}]}]},\"declarations-precedencegroup\":{\"begin\":\"\\\\\\\\b(precedencegroup)\\\\\\\\s+((?<q>`?)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*(\\\\\\\\k<q>))\\\\\\\\s*(?=\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.precedencegroup.swift\"},\"2\":{\"name\":\"entity.name.type.precedencegroup.swift\"},\"3\":{\"name\":\"punctuation.definition.identifier.swift\"},\"4\":{\"name\":\"punctuation.definition.identifier.swift\"}},\"end\":\"(?!\\\\\\\\G)\",\"name\":\"meta.definition.precedencegroup.swift\",\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.precedencegroup.begin.swift\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.precedencegroup.end.swift\"}},\"patterns\":[{\"include\":\"#comments\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.swift\"},\"2\":{\"name\":\"entity.other.inherited-class.swift\",\"patterns\":[{\"include\":\"#declarations-types-precedencegroup\"}]},\"3\":{\"name\":\"punctuation.definition.identifier.swift\"},\"4\":{\"name\":\"punctuation.definition.identifier.swift\"}},\"match\":\"\\\\\\\\b(higherThan|lowerThan)\\\\\\\\s*:\\\\\\\\s*((?<q>`?)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*(\\\\\\\\k<q>))\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.swift\"},\"2\":{\"name\":\"keyword.other.operator.associativity.swift\"}},\"match\":\"\\\\\\\\b(associativity)\\\\\\\\b(?:\\\\\\\\s*:\\\\\\\\s*(right|left|none)\\\\\\\\b)?\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.swift\"},\"2\":{\"name\":\"constant.language.boolean.swift\"}},\"match\":\"\\\\\\\\b(assignment)\\\\\\\\b(?:\\\\\\\\s*:\\\\\\\\s*(true|false)\\\\\\\\b)?\"}]}]},\"declarations-protocol\":{\"begin\":\"\\\\\\\\b(protocol)\\\\\\\\s+((?<q>`?)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*(\\\\\\\\k<q>))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.$1.swift\"},\"2\":{\"name\":\"entity.name.type.$1.swift\"},\"3\":{\"name\":\"punctuation.definition.identifier.swift\"},\"4\":{\"name\":\"punctuation.definition.identifier.swift\"}},\"end\":\"(?<=\\\\\\\\})\",\"name\":\"meta.definition.type.protocol.swift\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#declarations-inheritance-clause\"},{\"include\":\"#declarations-generic-where-clause\"},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.type.begin.swift\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.type.end.swift\"}},\"name\":\"meta.definition.type.body.swift\",\"patterns\":[{\"include\":\"#declarations-protocol-protocol-method\"},{\"include\":\"#declarations-protocol-protocol-initializer\"},{\"include\":\"#declarations-protocol-associated-type\"},{\"include\":\"$self\"}]}]},\"declarations-protocol-associated-type\":{\"begin\":\"\\\\\\\\b(associatedtype)\\\\\\\\s+((?<q>`?)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*(\\\\\\\\k<q>))\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.declaration-specifier.swift\"},\"2\":{\"name\":\"variable.language.associatedtype.swift\"},\"3\":{\"name\":\"punctuation.definition.identifier.swift\"},\"4\":{\"name\":\"punctuation.definition.identifier.swift\"}},\"end\":\"(?!\\\\\\\\G)$|(?=[;}]|$)\",\"name\":\"meta.definition.associatedtype.swift\",\"patterns\":[{\"include\":\"#declarations-inheritance-clause\"},{\"include\":\"#declarations-generic-where-clause\"},{\"include\":\"#declarations-typealias-assignment\"}]},\"declarations-protocol-protocol-initializer\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(init[?!]*)\\\\\\\\s*(?=\\\\\\\\(|<)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.swift\",\"patterns\":[{\"match\":\"(?<=[?!])[?!]+\",\"name\":\"invalid.illegal.character-not-allowed-here.swift\"}]}},\"end\":\"$|(?=;|//|/\\\\\\\\*|\\\\\\\\})\",\"name\":\"meta.definition.function.initializer.swift\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#declarations-generic-parameter-clause\"},{\"include\":\"#declarations-parameter-clause\"},{\"include\":\"#async-throws\"},{\"include\":\"#declarations-generic-where-clause\"},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.function.begin.swift\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.function.end.swift\"}},\"name\":\"invalid.illegal.function-body-not-allowed-in-protocol.swift\",\"patterns\":[{\"include\":\"$self\"}]}]},\"declarations-protocol-protocol-method\":{\"begin\":\"\\\\\\\\b(func)\\\\\\\\s+((?<q>`?)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*(\\\\\\\\k<q>)|(?:((?<oph>[/=\\\\\\\\-+!*%<>&|^~?]|[\\\\\\\\x{00A1}-\\\\\\\\x{00A7}]|[\\\\\\\\x{00A9}\\\\\\\\x{00AB}]|[\\\\\\\\x{00AC}\\\\\\\\x{00AE}]|[\\\\\\\\x{00B0}-\\\\\\\\x{00B1}\\\\\\\\x{00B6}\\\\\\\\x{00BB}\\\\\\\\x{00BF}\\\\\\\\x{00D7}\\\\\\\\x{00F7}]|[\\\\\\\\x{2016}-\\\\\\\\x{2017}\\\\\\\\x{2020}-\\\\\\\\x{2027}]|[\\\\\\\\x{2030}-\\\\\\\\x{203E}]|[\\\\\\\\x{2041}-\\\\\\\\x{2053}]|[\\\\\\\\x{2055}-\\\\\\\\x{205E}]|[\\\\\\\\x{2190}-\\\\\\\\x{23FF}]|[\\\\\\\\x{2500}-\\\\\\\\x{2775}]|[\\\\\\\\x{2794}-\\\\\\\\x{2BFF}]|[\\\\\\\\x{2E00}-\\\\\\\\x{2E7F}]|[\\\\\\\\x{3001}-\\\\\\\\x{3003}]|[\\\\\\\\x{3008}-\\\\\\\\x{3030}])(\\\\\\\\g<oph>|(?<opc>[\\\\\\\\x{0300}-\\\\\\\\x{036F}]|[\\\\\\\\x{1DC0}-\\\\\\\\x{1DFF}]|[\\\\\\\\x{20D0}-\\\\\\\\x{20FF}]|[\\\\\\\\x{FE00}-\\\\\\\\x{FE0F}]|[\\\\\\\\x{FE20}-\\\\\\\\x{FE2F}]|[\\\\\\\\x{E0100}-\\\\\\\\x{E01EF}]))*)|(\\\\\\\\.(\\\\\\\\g<oph>|\\\\\\\\g<opc>|\\\\\\\\.)+)))\\\\\\\\s*(?=\\\\\\\\(|<)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.swift\"},\"2\":{\"name\":\"entity.name.function.swift\"},\"3\":{\"name\":\"punctuation.definition.identifier.swift\"},\"4\":{\"name\":\"punctuation.definition.identifier.swift\"}},\"end\":\"$|(?=;|//|/\\\\\\\\*|\\\\\\\\})\",\"name\":\"meta.definition.function.swift\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#declarations-generic-parameter-clause\"},{\"include\":\"#declarations-parameter-clause\"},{\"include\":\"#declarations-function-result\"},{\"include\":\"#async-throws\"},{\"include\":\"#declarations-generic-where-clause\"},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.function.begin.swift\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.function.end.swift\"}},\"name\":\"invalid.illegal.function-body-not-allowed-in-protocol.swift\",\"patterns\":[{\"include\":\"$self\"}]}]},\"declarations-type\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(class(?!\\\\\\\\s+(?:func|var|let)\\\\\\\\b)|struct|actor)\\\\\\\\b\\\\\\\\s*((?<q>`?)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*(\\\\\\\\k<q>))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.$1.swift\"},\"2\":{\"name\":\"entity.name.type.$1.swift\"},\"3\":{\"name\":\"punctuation.definition.identifier.swift\"},\"4\":{\"name\":\"punctuation.definition.identifier.swift\"}},\"end\":\"(?<=\\\\\\\\})\",\"name\":\"meta.definition.type.$1.swift\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#declarations-generic-parameter-clause\"},{\"include\":\"#declarations-generic-where-clause\"},{\"include\":\"#declarations-inheritance-clause\"},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.type.begin.swift\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.type.end.swift\"}},\"name\":\"meta.definition.type.body.swift\",\"patterns\":[{\"include\":\"$self\"}]}]},{\"include\":\"#declarations-type-enum\"}]},\"declarations-type-enum\":{\"begin\":\"\\\\\\\\b(enum)\\\\\\\\s+((?<q>`?)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*(\\\\\\\\k<q>))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.$1.swift\"},\"2\":{\"name\":\"entity.name.type.$1.swift\"},\"3\":{\"name\":\"punctuation.definition.identifier.swift\"},\"4\":{\"name\":\"punctuation.definition.identifier.swift\"}},\"end\":\"(?<=\\\\\\\\})\",\"name\":\"meta.definition.type.$1.swift\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#declarations-generic-parameter-clause\"},{\"include\":\"#declarations-generic-where-clause\"},{\"include\":\"#declarations-inheritance-clause\"},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.type.begin.swift\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.type.end.swift\"}},\"name\":\"meta.definition.type.body.swift\",\"patterns\":[{\"include\":\"#declarations-type-enum-enum-case-clause\"},{\"include\":\"$self\"}]}]},\"declarations-type-enum-associated-values\":{\"begin\":\"\\\\\\\\G\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.begin.swift\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.swift\"}},\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\"(?:(_)|((?<q1>`?)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*\\\\\\\\k<q1>))\\\\\\\\s+(((?<q2>`?)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*\\\\\\\\k<q2>))\\\\\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.swift\"},\"2\":{\"name\":\"invalid.illegal.distinct-labels-not-allowed.swift\"},\"5\":{\"name\":\"variable.parameter.function.swift\"},\"7\":{\"name\":\"punctuation.separator.argument-label.swift\"}},\"end\":\"(?=[,)\\\\\\\\]])\",\"patterns\":[{\"include\":\"#declarations-available-types\"}]},{\"begin\":\"(((?<q>`?)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*\\\\\\\\k<q>))\\\\\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.swift\"},\"2\":{\"name\":\"variable.parameter.function.swift\"},\"4\":{\"name\":\"punctuation.separator.argument-label.swift\"}},\"end\":\"(?=[,)\\\\\\\\]])\",\"patterns\":[{\"include\":\"#declarations-available-types\"}]},{\"begin\":\"(?![,)\\\\\\\\]])(?=\\\\\\\\S)\",\"end\":\"(?=[,)\\\\\\\\]])\",\"patterns\":[{\"include\":\"#declarations-available-types\"},{\"match\":\":\",\"name\":\"invalid.illegal.extra-colon-in-parameter-list.swift\"}]}]},\"declarations-type-enum-enum-case\":{\"begin\":\"((?<q>`?)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*(\\\\\\\\k<q>))\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.enummember.swift\"}},\"end\":\"(?<=\\\\\\\\))|(?![=(])\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#declarations-type-enum-associated-values\"},{\"include\":\"#declarations-type-enum-raw-value-assignment\"}]},\"declarations-type-enum-enum-case-clause\":{\"begin\":\"\\\\\\\\b(case)\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.enum.case.swift\"}},\"end\":\"(?=[;}])|(?!\\\\\\\\G)(?!//|/\\\\\\\\*)(?=[^\\\\\\\\s,])\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#declarations-type-enum-enum-case\"},{\"include\":\"#declarations-type-enum-more-cases\"}]},\"declarations-type-enum-more-cases\":{\"begin\":\",\\\\\\\\s*\",\"end\":\"(?!\\\\\\\\G)(?!//|/\\\\\\\\*)(?=[;}]|[^\\\\\\\\s,])\",\"name\":\"meta.enum-case.more-cases\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#declarations-type-enum-enum-case\"},{\"include\":\"#declarations-type-enum-more-cases\"}]},\"declarations-type-enum-raw-value-assignment\":{\"begin\":\"(=)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.swift\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#literals\"}]},\"declarations-type-identifier\":{\"begin\":\"((?<q>`?)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*(\\\\\\\\k<q>))\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"meta.type-name.swift\",\"patterns\":[{\"include\":\"#builtin-types\"}]},\"2\":{\"name\":\"punctuation.definition.identifier.swift\"},\"3\":{\"name\":\"punctuation.definition.identifier.swift\"}},\"end\":\"(?!<)\",\"patterns\":[{\"begin\":\"(?=<)\",\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"include\":\"#declarations-generic-argument-clause\"}]}]},\"declarations-type-operators\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.type.composition.swift\"}},\"match\":\"(?<![/=\\\\\\\\-+!*%<>&|\\\\\\\\^~.])(&)(?![/=\\\\\\\\-+!*%<>&|\\\\\\\\^~.])\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.type.requirement-suppression.swift\"}},\"match\":\"(?<![/=\\\\\\\\-+!*%<>&|\\\\\\\\^~.])(~)(?![/=\\\\\\\\-+!*%<>&|\\\\\\\\^~.])\"}]},\"declarations-typealias\":{\"begin\":\"\\\\\\\\b(typealias)\\\\\\\\s+((?<q>`?)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*(\\\\\\\\k<q>))\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.declaration-specifier.swift\"},\"2\":{\"name\":\"entity.name.type.typealias.swift\"},\"3\":{\"name\":\"punctuation.definition.identifier.swift\"},\"4\":{\"name\":\"punctuation.definition.identifier.swift\"}},\"end\":\"(?!\\\\\\\\G)$|(?=;|//|/\\\\\\\\*|$)\",\"name\":\"meta.definition.typealias.swift\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?=<)\",\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"include\":\"#declarations-generic-parameter-clause\"}]},{\"include\":\"#declarations-typealias-assignment\"}]},\"declarations-typealias-assignment\":{\"begin\":\"(=)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.swift\"}},\"end\":\"(?!\\\\\\\\G)$|(?=;|//|/\\\\\\\\*|$)\",\"patterns\":[{\"include\":\"#declarations-available-types\"}]},\"declarations-typed-variable-declaration\":{\"begin\":\"\\\\\\\\b(?:(async)\\\\\\\\s+)?(let|var)\\\\\\\\b\\\\\\\\s+(?<q>`?)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*(\\\\\\\\k<q>)\\\\\\\\s*:\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.swift\"},\"2\":{\"name\":\"keyword.other.declaration-specifier.swift\"}},\"end\":\"(?=$|[={])\",\"patterns\":[{\"include\":\"#declarations-available-types\"}]},\"declarations-types-precedencegroup\":{\"patterns\":[{\"match\":\"\\\\\\\\b(?:BitwiseShift|Assignment|RangeFormation|Casting|Addition|NilCoalescing|Comparison|LogicalConjunction|LogicalDisjunction|Default|Ternary|Multiplication|FunctionArrow)Precedence\\\\\\\\b\",\"name\":\"support.type.swift\"}]},\"expressions\":{\"patterns\":[{\"include\":\"#expressions-without-trailing-closures-or-member-references\"},{\"include\":\"#expressions-trailing-closure\"},{\"include\":\"#member-reference\"}]},\"expressions-trailing-closure\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"support.function.any-method.swift\"},\"2\":{\"name\":\"punctuation.definition.identifier.swift\"},\"3\":{\"name\":\"punctuation.definition.identifier.swift\"}},\"match\":\"(#?(?<q>`?)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*(\\\\\\\\k<q>))(?=\\\\\\\\s*\\\\\\\\{)\",\"name\":\"meta.function-call.trailing-closure-only.swift\"},{\"captures\":{\"1\":{\"name\":\"support.function.any-method.trailing-closure-label.swift\"},\"2\":{\"name\":\"punctuation.definition.identifier.swift\"},\"3\":{\"name\":\"punctuation.definition.identifier.swift\"},\"4\":{\"name\":\"punctuation.separator.argument-label.swift\"}},\"match\":\"((?<q>`?)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*(\\\\\\\\k<q>))\\\\\\\\s*(:)(?=\\\\\\\\s*\\\\\\\\{)\"}]},\"expressions-without-trailing-closures\":{\"patterns\":[{\"include\":\"#expressions-without-trailing-closures-or-member-references\"},{\"include\":\"#member-references\"}]},\"expressions-without-trailing-closures-or-member-references\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#code-block\"},{\"include\":\"#attributes\"},{\"include\":\"#expressions-without-trailing-closures-or-member-references-closure-parameter\"},{\"include\":\"#literals\"},{\"include\":\"#operators\"},{\"include\":\"#builtin-types\"},{\"include\":\"#builtin-functions\"},{\"include\":\"#builtin-global-functions\"},{\"include\":\"#builtin-properties\"},{\"include\":\"#expressions-without-trailing-closures-or-member-references-compound-name\"},{\"include\":\"#conditionals\"},{\"include\":\"#keywords\"},{\"include\":\"#expressions-without-trailing-closures-or-member-references-availability-condition\"},{\"include\":\"#expressions-without-trailing-closures-or-member-references-function-or-macro-call-expression\"},{\"include\":\"#expressions-without-trailing-closures-or-member-references-macro-expansion\"},{\"include\":\"#expressions-without-trailing-closures-or-member-references-subscript-expression\"},{\"include\":\"#expressions-without-trailing-closures-or-member-references-parenthesized-expression\"},{\"match\":\"\\\\\\\\b_\\\\\\\\b\",\"name\":\"support.variable.discard-value.swift\"}]},\"expressions-without-trailing-closures-or-member-references-availability-condition\":{\"begin\":\"\\\\\\\\B(#(?:un)?available)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.availability-condition.swift\"},\"2\":{\"name\":\"punctuation.definition.arguments.begin.swift\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.swift\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.platform.os.swift\"},\"2\":{\"name\":\"constant.numeric.swift\"}},\"match\":\"\\\\\\\\s*\\\\\\\\b((?:iOS|macOS|OSX|watchOS|tvOS|visionOS|UIKitForMac)(?:ApplicationExtension)?)\\\\\\\\b(?:\\\\\\\\s+([0-9]+(?:\\\\\\\\.[0-9]+)*\\\\\\\\b))\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.platform.all.swift\"},\"2\":{\"name\":\"invalid.illegal.character-not-allowed-here.swift\"}},\"match\":\"(\\\\\\\\*)\\\\\\\\s*(.*?)(?=[,)])\"},{\"match\":\"[^\\\\\\\\s,)]+\",\"name\":\"invalid.illegal.character-not-allowed-here.swift\"}]},\"expressions-without-trailing-closures-or-member-references-closure-parameter\":{\"match\":\"\\\\\\\\$[0-9]+\",\"name\":\"variable.language.closure-parameter.swift\"},\"expressions-without-trailing-closures-or-member-references-compound-name\":{\"captures\":{\"1\":{\"name\":\"entity.name.function.compound-name.swift\"},\"2\":{\"name\":\"punctuation.definition.entity.swift\"},\"3\":{\"name\":\"punctuation.definition.entity.swift\"},\"4\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.swift\"},\"2\":{\"name\":\"punctuation.definition.entity.swift\"}},\"match\":\"(?<q>`?)(?!_:)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*(\\\\\\\\k<q>):\",\"name\":\"entity.name.function.compound-name.swift\"}]}},\"match\":\"((?<q1>`?)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*(\\\\\\\\k<q1>))\\\\\\\\(((((?<q2>`?)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*(\\\\\\\\k<q2>)):)+)\\\\\\\\)\"},\"expressions-without-trailing-closures-or-member-references-expression-element-list\":{\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\"((?<q>`?)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*(\\\\\\\\k<q>))\\\\\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.any-method.swift\"},\"2\":{\"name\":\"punctuation.definition.identifier.swift\"},\"3\":{\"name\":\"punctuation.definition.identifier.swift\"},\"4\":{\"name\":\"punctuation.separator.argument-label.swift\"}},\"end\":\"(?=[,)\\\\\\\\]])\",\"patterns\":[{\"include\":\"#expressions\"}]},{\"begin\":\"(?![,)\\\\\\\\]])(?=\\\\\\\\S)\",\"end\":\"(?=[,)\\\\\\\\]])\",\"patterns\":[{\"include\":\"#expressions\"}]}]},\"expressions-without-trailing-closures-or-member-references-function-or-macro-call-expression\":{\"patterns\":[{\"begin\":\"(#?(?<q>`?)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*(\\\\\\\\k<q>))\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.any-method.swift\"},\"2\":{\"name\":\"punctuation.definition.identifier.swift\"},\"3\":{\"name\":\"punctuation.definition.identifier.swift\"},\"4\":{\"name\":\"punctuation.definition.arguments.begin.swift\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.swift\"}},\"name\":\"meta.function-call.swift\",\"patterns\":[{\"include\":\"#expressions-without-trailing-closures-or-member-references-expression-element-list\"}]},{\"begin\":\"(?<=[`\\\\\\\\])}>\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}])\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.swift\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.swift\"}},\"name\":\"meta.function-call.swift\",\"patterns\":[{\"include\":\"#expressions-without-trailing-closures-or-member-references-expression-element-list\"}]}]},\"expressions-without-trailing-closures-or-member-references-macro-expansion\":{\"match\":\"(#(?<q>`?)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*(\\\\\\\\k<q>))\",\"name\":\"support.function.any-method.swift\"},\"expressions-without-trailing-closures-or-member-references-parenthesized-expression\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.tuple.begin.swift\"}},\"end\":\"(\\\\\\\\))\\\\\\\\s*((?:\\\\\\\\b(?:async|throws|rethrows)\\\\\\\\s)*)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.tuple.end.swift\"},\"2\":{\"patterns\":[{\"match\":\"\\\\\\\\brethrows\\\\\\\\b\",\"name\":\"invalid.illegal.rethrows-only-allowed-on-function-declarations.swift\"},{\"include\":\"#async-throws\"}]}},\"patterns\":[{\"include\":\"#expressions-without-trailing-closures-or-member-references-expression-element-list\"}]},\"expressions-without-trailing-closures-or-member-references-subscript-expression\":{\"begin\":\"(?<=[`\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}])\\\\\\\\s*(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.swift\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.swift\"}},\"name\":\"meta.subscript-expression.swift\",\"patterns\":[{\"include\":\"#expressions-without-trailing-closures-or-member-references-expression-element-list\"}]},\"keywords\":{\"patterns\":[{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(?:if|else|guard|where|switch|case|default|fallthrough)\\\\\\\\b\",\"name\":\"keyword.control.branch.swift\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(?:continue|break|fallthrough|return)\\\\\\\\b\",\"name\":\"keyword.control.transfer.swift\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(?:while|for|in|each)\\\\\\\\b\",\"name\":\"keyword.control.loop.swift\"},{\"match\":\"\\\\\\\\bany\\\\\\\\b(?=\\\\\\\\s*`?[\\\\\\\\p{L}_])\",\"name\":\"keyword.other.operator.type.existential.swift\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.loop.swift\"},\"2\":{\"name\":\"punctuation.whitespace.trailing.repeat.swift\"}},\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(repeat)\\\\\\\\b(\\\\\\\\s*)\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\bdefer\\\\\\\\b\",\"name\":\"keyword.control.defer.swift\"},{\"captures\":{\"1\":{\"name\":\"invalid.illegal.try-must-precede-await.swift\"},\"2\":{\"name\":\"keyword.control.await.swift\"}},\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(?:(await\\\\\\\\s+try)|(await))\\\\\\\\b\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(?:catch|throw|try)\\\\\\\\b|\\\\\\\\btry[?!]\\\\\\\\B\",\"name\":\"keyword.control.exception.swift\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(?:throws|rethrows)\\\\\\\\b\",\"name\":\"storage.modifier.exception.swift\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.exception.swift\"},\"2\":{\"name\":\"punctuation.whitespace.trailing.do.swift\"}},\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(do)\\\\\\\\b(\\\\\\\\s*)\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.async.swift\"},\"2\":{\"name\":\"keyword.other.declaration-specifier.swift\"}},\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(?:(async)\\\\\\\\s+)?(let|var)\\\\\\\\b\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(?:associatedtype|operator|typealias)\\\\\\\\b\",\"name\":\"keyword.other.declaration-specifier.swift\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(class|enum|extension|precedencegroup|protocol|struct|actor)\\\\\\\\b(?=\\\\\\\\s*`?[\\\\\\\\p{L}_])\",\"name\":\"storage.type.$1.swift\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(?:inout|static|final|lazy|mutating|nonmutating|optional|indirect|required|override|dynamic|convenience|infix|prefix|postfix|distributed|nonisolated|borrowing|consuming)\\\\\\\\b\",\"name\":\"storage.modifier.swift\"},{\"match\":\"\\\\\\\\binit[?!]|\\\\\\\\binit\\\\\\\\b|(?<!\\\\\\\\.)\\\\\\\\b(?:func|deinit|subscript|didSet|get|set|willSet)\\\\\\\\b\",\"name\":\"storage.type.function.swift\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(?:fileprivate|private|internal|public|open|package)\\\\\\\\b\",\"name\":\"keyword.other.declaration-specifier.accessibility.swift\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\bunowned\\\\\\\\((?:safe|unsafe)\\\\\\\\)|(?<!\\\\\\\\.)\\\\\\\\b(?:weak|unowned)\\\\\\\\b\",\"name\":\"keyword.other.capture-specifier.swift\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.type.swift\"},\"2\":{\"name\":\"keyword.other.type.metatype.swift\"}},\"match\":\"(?<=\\\\\\\\.)(?:(dynamicType|self)|(Protocol|Type))\\\\\\\\b\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(?:super|self|Self)\\\\\\\\b\",\"name\":\"variable.language.swift\"},{\"match\":\"\\\\\\\\B(?:#file|#filePath|#fileID|#line|#column|#function|#dsohandle)\\\\\\\\b|\\\\\\\\b(?:__FILE__|__LINE__|__COLUMN__|__FUNCTION__|__DSO_HANDLE__)\\\\\\\\b\",\"name\":\"support.variable.swift\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\bimport\\\\\\\\b\",\"name\":\"keyword.control.import.swift\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\bconsume(?=\\\\\\\\s+`?[\\\\\\\\p{L}_])\",\"name\":\"keyword.control.consume.swift\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\bcopy(?=\\\\\\\\s+`?[\\\\\\\\p{L}_])\",\"name\":\"keyword.control.copy.swift\"}]},\"literals\":{\"patterns\":[{\"include\":\"#literals-boolean\"},{\"include\":\"#literals-numeric\"},{\"include\":\"#literals-string\"},{\"match\":\"\\\\\\\\bnil\\\\\\\\b\",\"name\":\"constant.language.nil.swift\"},{\"match\":\"\\\\\\\\B#(colorLiteral|imageLiteral|fileLiteral)\\\\\\\\b\",\"name\":\"support.function.object-literal.swift\"},{\"match\":\"\\\\\\\\B#externalMacro\\\\\\\\b\",\"name\":\"support.function.builtin-macro.swift\"},{\"match\":\"\\\\\\\\B#keyPath\\\\\\\\b\",\"name\":\"support.function.key-path.swift\"},{\"begin\":\"\\\\\\\\B(#selector)(\\\\\\\\()(?:\\\\\\\\s*(getter|setter)\\\\\\\\s*(:))?\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.selector-reference.swift\"},\"2\":{\"name\":\"punctuation.definition.arguments.begin.swift\"},\"3\":{\"name\":\"support.variable.parameter.swift\"},\"4\":{\"name\":\"punctuation.separator.argument-label.swift\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.swift\"}},\"patterns\":[{\"include\":\"#expressions\"}]},{\"include\":\"#literals-regular-expression-literal\"}]},\"literals-boolean\":{\"match\":\"\\\\\\\\b(true|false)\\\\\\\\b\",\"name\":\"constant.language.boolean.swift\"},\"literals-numeric\":{\"patterns\":[{\"match\":\"(\\\\\\\\B\\\\\\\\-|\\\\\\\\b)(?<![\\\\\\\\[\\\\\\\\](){}\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]\\\\\\\\.)[0-9][0-9_]*(?=\\\\\\\\.[0-9]|[eE])(?:\\\\\\\\.[0-9][0-9_]*)?(?:[eE][-+]?[0-9][0-9_]*)?\\\\\\\\b(?!\\\\\\\\.[0-9])\",\"name\":\"constant.numeric.float.decimal.swift\"},{\"match\":\"(\\\\\\\\B\\\\\\\\-|\\\\\\\\b)(?<![\\\\\\\\[\\\\\\\\](){}\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]\\\\\\\\.)(0x[0-9a-fA-F][0-9a-fA-F_]*)(?:\\\\\\\\.[0-9a-fA-F][0-9a-fA-F_]*)?[pP][-+]?[0-9][0-9_]*\\\\\\\\b(?!\\\\\\\\.[0-9])\",\"name\":\"constant.numeric.float.hexadecimal.swift\"},{\"match\":\"(\\\\\\\\B\\\\\\\\-|\\\\\\\\b)(?<![\\\\\\\\[\\\\\\\\](){}\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]\\\\\\\\.)(0x[0-9a-fA-F][0-9a-fA-F_]*)(?:\\\\\\\\.[0-9a-fA-F][0-9a-fA-F_]*)?(?:[pP][-+]?\\\\\\\\w*)\\\\\\\\b(?!\\\\\\\\.[0-9])\",\"name\":\"invalid.illegal.numeric.float.invalid-exponent.swift\"},{\"match\":\"(\\\\\\\\B\\\\\\\\-|\\\\\\\\b)(?<![\\\\\\\\[\\\\\\\\](){}\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]\\\\\\\\.)(0x[0-9a-fA-F][0-9a-fA-F_]*)\\\\\\\\.[0-9][\\\\\\\\w.]*\",\"name\":\"invalid.illegal.numeric.float.missing-exponent.swift\"},{\"match\":\"(?<=\\\\\\\\s|^)\\\\\\\\-?\\\\\\\\.[0-9][\\\\\\\\w.]*\",\"name\":\"invalid.illegal.numeric.float.missing-leading-zero.swift\"},{\"match\":\"(\\\\\\\\B\\\\\\\\-|\\\\\\\\b)0[box]_[0-9a-fA-F_]*(?:[pPeE][+-]?\\\\\\\\w+)?[\\\\\\\\w.]+\",\"name\":\"invalid.illegal.numeric.leading-underscore.swift\"},{\"match\":\"(?<=[\\\\\\\\[\\\\\\\\](){}\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]\\\\\\\\.)[0-9]+\\\\\\\\b\"},{\"match\":\"(\\\\\\\\B\\\\\\\\-|\\\\\\\\b)(?<![\\\\\\\\[\\\\\\\\](){}\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]\\\\\\\\.)0b[01][01_]*\\\\\\\\b(?!\\\\\\\\.[0-9])\",\"name\":\"constant.numeric.integer.binary.swift\"},{\"match\":\"(\\\\\\\\B\\\\\\\\-|\\\\\\\\b)(?<![\\\\\\\\[\\\\\\\\](){}\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]\\\\\\\\.)0o[0-7][0-7_]*\\\\\\\\b(?!\\\\\\\\.[0-9])\",\"name\":\"constant.numeric.integer.octal.swift\"},{\"match\":\"(\\\\\\\\B\\\\\\\\-|\\\\\\\\b)(?<![\\\\\\\\[\\\\\\\\](){}\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]\\\\\\\\.)[0-9][0-9_]*\\\\\\\\b(?!\\\\\\\\.[0-9])\",\"name\":\"constant.numeric.integer.decimal.swift\"},{\"match\":\"(\\\\\\\\B\\\\\\\\-|\\\\\\\\b)(?<![\\\\\\\\[\\\\\\\\](){}\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]\\\\\\\\.)0x[0-9a-fA-F][0-9a-fA-F_]*\\\\\\\\b(?!\\\\\\\\.[0-9])\",\"name\":\"constant.numeric.integer.hexadecimal.swift\"},{\"match\":\"(\\\\\\\\B\\\\\\\\-|\\\\\\\\b)[0-9][\\\\\\\\w.]*\",\"name\":\"invalid.illegal.numeric.other.swift\"}]},\"literals-regular-expression-literal\":{\"patterns\":[{\"begin\":\"(#+)/\\\\\\\\n\",\"end\":\"/\\\\\\\\1\",\"name\":\"string.regexp.block.swift\",\"patterns\":[{\"include\":\"#literals-regular-expression-literal-regex-guts\"},{\"include\":\"#literals-regular-expression-literal-line-comment\"}]},{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#literals-regular-expression-literal-regex-guts\"}]},\"1\":{\"name\":\"punctuation.definition.string.begin.regexp.swift\"},\"8\":{\"name\":\"punctuation.definition.string.end.regexp.swift\"},\"9\":{\"name\":\"invalid.illegal.returns-not-allowed.regexp\"}},\"match\":\"(?!/\\\\\\\\s)(?!//)(((\\\\\\\\#+)?)/)(\\\\\\\\\\\\\\\\\\\\\\\\s)?(?<guts>(?>(?:\\\\\\\\\\\\\\\\Q(?:(?!\\\\\\\\\\\\\\\\E)(?!/\\\\\\\\2).)*+(?:\\\\\\\\\\\\\\\\E|(?(3)|(?<!\\\\\\\\s))(?=/\\\\\\\\2))|\\\\\\\\\\\\\\\\.|\\\\\\\\(\\\\\\\\?\\\\\\\\#[^)]*\\\\\\\\)|\\\\\\\\(\\\\\\\\?(?>(\\\\\\\\{(?:\\\\\\\\g<-1>|(?!{).*?)\\\\\\\\}))(?:\\\\\\\\[(?!\\\\\\\\d)\\\\\\\\w+\\\\\\\\])?[X<>]?\\\\\\\\)|(?<class>\\\\\\\\[(?:\\\\\\\\\\\\\\\\.|[^\\\\\\\\[\\\\\\\\]]|\\\\\\\\g<class>)+\\\\\\\\])|\\\\\\\\(\\\\\\\\g<guts>?+\\\\\\\\)|(?:(?!/\\\\\\\\2)[^()\\\\\\\\[\\\\\\\\\\\\\\\\])+)+))?+(?(3)|(?(5)(?<!\\\\\\\\s)))(/\\\\\\\\2)|\\\\\\\\#+/.+(\\\\\\\\n)\",\"name\":\"string.regexp.line.swift\"}]},\"literals-regular-expression-literal-backreference-or-subpattern\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.character.escape.backslash.regexp\"},\"2\":{\"name\":\"variable.other.group-name.regexp\"},\"3\":{\"name\":\"keyword.operator.recursion-level.regexp\"},\"4\":{\"name\":\"constant.numeric.integer.decimal.regexp\"},\"5\":{\"name\":\"constant.numeric.integer.decimal.regexp\"},\"6\":{\"name\":\"keyword.operator.recursion-level.regexp\"},\"7\":{\"name\":\"constant.numeric.integer.decimal.regexp\"},\"8\":{\"name\":\"constant.character.escape.backslash.regexp\"}},\"match\":\"(\\\\\\\\\\\\\\\\g\\\\\\\\{)(?:((?!\\\\\\\\d)\\\\\\\\w+)(?:([+-])(\\\\\\\\d+))?|([+-]?\\\\\\\\d+)(?:([+-])(\\\\\\\\d+))?)(\\\\\\\\})\"},{\"captures\":{\"1\":{\"name\":\"constant.character.escape.backslash.regexp\"},\"2\":{\"name\":\"constant.numeric.integer.decimal.regexp\"},\"3\":{\"name\":\"keyword.operator.recursion-level.regexp\"},\"4\":{\"name\":\"constant.numeric.integer.decimal.regexp\"}},\"match\":\"(\\\\\\\\\\\\\\\\g)([+-]?\\\\\\\\d+)(?:([+-])(\\\\\\\\d+))?\"},{\"captures\":{\"1\":{\"name\":\"constant.character.escape.backslash.regexp\"},\"2\":{\"name\":\"variable.other.group-name.regexp\"},\"3\":{\"name\":\"keyword.operator.recursion-level.regexp\"},\"4\":{\"name\":\"constant.numeric.integer.decimal.regexp\"},\"5\":{\"name\":\"constant.numeric.integer.decimal.regexp\"},\"6\":{\"name\":\"keyword.operator.recursion-level.regexp\"},\"7\":{\"name\":\"constant.numeric.integer.decimal.regexp\"},\"8\":{\"name\":\"constant.character.escape.backslash.regexp\"}},\"match\":\"(\\\\\\\\\\\\\\\\[gk]<)(?:((?!\\\\\\\\d)\\\\\\\\w+)(?:([+-])(\\\\\\\\d+))?|([+-]?\\\\\\\\d+)(?:([+-])(\\\\\\\\d+))?)(>)\"},{\"captures\":{\"1\":{\"name\":\"constant.character.escape.backslash.regexp\"},\"2\":{\"name\":\"variable.other.group-name.regexp\"},\"3\":{\"name\":\"keyword.operator.recursion-level.regexp\"},\"4\":{\"name\":\"constant.numeric.integer.decimal.regexp\"},\"5\":{\"name\":\"constant.numeric.integer.decimal.regexp\"},\"6\":{\"name\":\"keyword.operator.recursion-level.regexp\"},\"7\":{\"name\":\"constant.numeric.integer.decimal.regexp\"},\"8\":{\"name\":\"constant.character.escape.backslash.regexp\"}},\"match\":\"(\\\\\\\\\\\\\\\\[gk]\\')(?:((?!\\\\\\\\d)\\\\\\\\w+)(?:([+-])(\\\\\\\\d+))?|([+-]?\\\\\\\\d+)(?:([+-])(\\\\\\\\d+))?)(\\')\"},{\"captures\":{\"1\":{\"name\":\"constant.character.escape.backslash.regexp\"},\"2\":{\"name\":\"variable.other.group-name.regexp\"},\"3\":{\"name\":\"keyword.operator.recursion-level.regexp\"},\"4\":{\"name\":\"constant.numeric.integer.decimal.regexp\"},\"5\":{\"name\":\"constant.character.escape.backslash.regexp\"}},\"match\":\"(\\\\\\\\\\\\\\\\k\\\\\\\\{)((?!\\\\\\\\d)\\\\\\\\w+)(?:([+-])(\\\\\\\\d+))?(\\\\\\\\})\"},{\"match\":\"\\\\\\\\\\\\\\\\[1-9][0-9]+\",\"name\":\"keyword.other.back-reference.regexp\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.back-reference.regexp\"},\"2\":{\"name\":\"variable.other.group-name.regexp\"},\"3\":{\"name\":\"keyword.operator.recursion-level.regexp\"},\"4\":{\"name\":\"constant.numeric.integer.decimal.regexp\"},\"5\":{\"name\":\"keyword.other.back-reference.regexp\"}},\"match\":\"(\\\\\\\\(\\\\\\\\?(?:P[=>]|&))((?!\\\\\\\\d)\\\\\\\\w+)(?:([+-])(\\\\\\\\d+))?(\\\\\\\\))\"},{\"match\":\"\\\\\\\\(\\\\\\\\?R\\\\\\\\)\",\"name\":\"keyword.other.back-reference.regexp\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.back-reference.regexp\"},\"2\":{\"name\":\"constant.numeric.integer.decimal.regexp\"},\"3\":{\"name\":\"keyword.operator.recursion-level.regexp\"},\"4\":{\"name\":\"constant.numeric.integer.decimal.regexp\"},\"5\":{\"name\":\"keyword.other.back-reference.regexp\"}},\"match\":\"(\\\\\\\\(\\\\\\\\?)([+-]?\\\\\\\\d+)(?:([+-])(\\\\\\\\d+))?(\\\\\\\\))\"}]},\"literals-regular-expression-literal-backtracking-directive-or-global-matching-option\":{\"captures\":{\"1\":{\"name\":\"keyword.control.directive.regexp\"},\"2\":{\"name\":\"keyword.control.directive.regexp\"},\"3\":{\"name\":\"keyword.control.directive.regexp\"},\"4\":{\"name\":\"variable.language.tag.regexp\"},\"5\":{\"name\":\"keyword.control.directive.regexp\"},\"6\":{\"name\":\"keyword.operator.assignment.regexp\"},\"7\":{\"name\":\"constant.numeric.integer.decimal.regexp\"},\"8\":{\"name\":\"keyword.control.directive.regexp\"},\"9\":{\"name\":\"keyword.control.directive.regexp\"}},\"match\":\"(\\\\\\\\(\\\\\\\\*)(?:(ACCEPT|FAIL|F|MARK(?=:)|(?=:)|COMMIT|PRUNE|SKIP|THEN)(?:(:)([^)]+))?|(?:(LIMIT_(?:DEPTH|HEAP|MATCH))(=)(\\\\\\\\d+))|(CRLF|CR|ANYCRLF|ANY|LF|NUL|BSR_ANYCRLF|BSR_UNICODE|NOTEMPTY_ATSTART|NOTEMPTY|NO_AUTO_POSSESS|NO_DOTSTAR_ANCHOR|NO_JIT|NO_START_OPT|UTF|UCP))(\\\\\\\\))\"},\"literals-regular-expression-literal-callout\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.group.regexp\"},\"2\":{\"name\":\"keyword.control.callout.regexp\"},\"3\":{\"name\":\"constant.numeric.integer.decimal.regexp\"},\"4\":{\"name\":\"entity.name.function.callout.regexp\"},\"5\":{\"name\":\"entity.name.function.callout.regexp\"},\"6\":{\"name\":\"entity.name.function.callout.regexp\"},\"7\":{\"name\":\"entity.name.function.callout.regexp\"},\"8\":{\"name\":\"entity.name.function.callout.regexp\"},\"9\":{\"name\":\"entity.name.function.callout.regexp\"},\"10\":{\"name\":\"entity.name.function.callout.regexp\"},\"11\":{\"name\":\"entity.name.function.callout.regexp\"},\"12\":{\"name\":\"punctuation.definition.group.regexp\"},\"13\":{\"name\":\"punctuation.definition.group.regexp\"},\"14\":{\"name\":\"keyword.control.callout.regexp\"},\"15\":{\"name\":\"entity.name.function.callout.regexp\"},\"16\":{\"name\":\"variable.language.tag-name.regexp\"},\"17\":{\"name\":\"punctuation.definition.group.regexp\"},\"18\":{\"name\":\"punctuation.definition.group.regexp\"},\"19\":{\"name\":\"keyword.control.callout.regexp\"},\"21\":{\"name\":\"variable.language.tag-name.regexp\"},\"22\":{\"name\":\"keyword.control.callout.regexp\"},\"23\":{\"name\":\"punctuation.definition.group.regexp\"}},\"match\":\"(\\\\\\\\()(?<keyw>\\\\\\\\?C)(?:(?<num>\\\\\\\\d+)|`(?<name>(?:[^`]|``)*)`|\\'(?<name>(?:[^\\']|\\'\\')*)\\'|\\\\\"(?<name>(?:[^\\\\\"]|\\\\\"\\\\\")*)\\\\\"|\\\\\\\\^(?<name>(?:[^\\\\\\\\^]|\\\\\\\\^\\\\\\\\^)*)\\\\\\\\^|%(?<name>(?:[^%]|%%)*)%|\\\\\\\\#(?<name>(?:[^#]|\\\\\\\\#\\\\\\\\#)*)\\\\\\\\#|\\\\\\\\$(?<name>(?:[^$]|\\\\\\\\$\\\\\\\\$)*)\\\\\\\\$|\\\\\\\\{(?<name>(?:[^}]|\\\\\\\\}\\\\\\\\})*)\\\\\\\\})?(\\\\\\\\))|(\\\\\\\\()(?<keyw>\\\\\\\\*)(?<name>(?!\\\\\\\\d)\\\\\\\\w+)(?:\\\\\\\\[(?<tag>(?!\\\\\\\\d)\\\\\\\\w+)\\\\\\\\])?(?:\\\\\\\\{[^,}]+(?:,[^,}]+)*\\\\\\\\})?(\\\\\\\\))|(\\\\\\\\()(?<keyw>\\\\\\\\?)(?>(\\\\\\\\{(?:\\\\\\\\g<-1>|(?!{).*?)\\\\\\\\}))(?:\\\\\\\\[(?<tag>(?!\\\\\\\\d)\\\\\\\\w+)\\\\\\\\])?(?<keyw>[X<>]?)(\\\\\\\\))\",\"name\":\"meta.callout.regexp\"},\"literals-regular-expression-literal-character-properties\":{\"captures\":{\"1\":{\"name\":\"support.variable.character-property.regexp\"},\"2\":{\"name\":\"punctuation.definition.character-class.regexp\"},\"3\":{\"name\":\"support.variable.character-property.regexp\"},\"4\":{\"name\":\"punctuation.definition.character-class.regexp\"}},\"match\":\"\\\\\\\\\\\\\\\\[pP]\\\\\\\\{([\\\\\\\\s\\\\\\\\w-]+(?:=[\\\\\\\\s\\\\\\\\w-]+)?)\\\\\\\\}|(\\\\\\\\[:)([\\\\\\\\s\\\\\\\\w-]+(?:=[\\\\\\\\s\\\\\\\\w-]+)?)(:\\\\\\\\])\",\"name\":\"constant.other.character-class.set.regexp\"},\"literals-regular-expression-literal-custom-char-class\":{\"patterns\":[{\"begin\":\"(\\\\\\\\[)(\\\\\\\\^)?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.character-class.regexp\"},\"2\":{\"name\":\"keyword.operator.negation.regexp\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.character-class.regexp\"}},\"name\":\"constant.other.character-class.set.regexp\",\"patterns\":[{\"include\":\"#literals-regular-expression-literal-custom-char-class-members\"}]}]},\"literals-regular-expression-literal-custom-char-class-members\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\b\",\"name\":\"constant.character.escape.backslash.regexp\"},{\"include\":\"#literals-regular-expression-literal-custom-char-class\"},{\"include\":\"#literals-regular-expression-literal-quote\"},{\"include\":\"#literals-regular-expression-literal-set-operators\"},{\"include\":\"#literals-regular-expression-literal-unicode-scalars\"},{\"include\":\"#literals-regular-expression-literal-character-properties\"}]},\"literals-regular-expression-literal-group-option-toggle\":{\"match\":\"\\\\\\\\(\\\\\\\\?(?:\\\\\\\\^(?:[iJmnsUxwDPSW]|xx|y\\\\\\\\{[gw]\\\\\\\\})*|(?:[iJmnsUxwDPSW]|xx|y\\\\\\\\{[gw]\\\\\\\\})+|(?:[iJmnsUxwDPSW]|xx|y\\\\\\\\{[gw]\\\\\\\\})*-(?:[iJmnsUxwDPSW]|xx|y\\\\\\\\{[gw]\\\\\\\\})*)\\\\\\\\)\",\"name\":\"keyword.other.option-toggle.regexp\"},\"literals-regular-expression-literal-group-or-conditional\":{\"patterns\":[{\"begin\":\"(\\\\\\\\()(\\\\\\\\?~)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.group.regexp\"},\"2\":{\"name\":\"keyword.control.conditional.absent.regexp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.regexp\"}},\"name\":\"meta.group.absent.regexp\",\"patterns\":[{\"include\":\"#literals-regular-expression-literal-regex-guts\"}]},{\"begin\":\"(\\\\\\\\()(?<cond>\\\\\\\\?\\\\\\\\()(?:(?<NumberRef>(?<num>[+-]?\\\\\\\\d+)(?:(?<op>[+-])(?<num>\\\\\\\\d+))?)|(?<cond>R)\\\\\\\\g<NumberRef>?|(?<cond>R&)(?<NamedRef>(?<name>(?!\\\\\\\\d)\\\\\\\\w+)(?:(?<op>[+-])(?<num>\\\\\\\\d+))?)|(?<cond><)(?:\\\\\\\\g<NamedRef>|\\\\\\\\g<NumberRef>)(?<cond>>)|(?<cond>\\')(?:\\\\\\\\g<NamedRef>|\\\\\\\\g<NumberRef>)(?<cond>\\')|(?<cond>DEFINE)|(?<cond>VERSION)(?<compar>>?=)(?<num>\\\\\\\\d+\\\\\\\\.\\\\\\\\d+))(?<cond>\\\\\\\\))|(\\\\\\\\()(?<cond>\\\\\\\\?)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.group.regexp\"},\"2\":{\"name\":\"keyword.control.conditional.regexp\"},\"4\":{\"name\":\"constant.numeric.integer.decimal.regexp\"},\"5\":{\"name\":\"keyword.operator.recursion-level.regexp\"},\"6\":{\"name\":\"constant.numeric.integer.decimal.regexp\"},\"7\":{\"name\":\"keyword.control.conditional.regexp\"},\"8\":{\"name\":\"keyword.control.conditional.regexp\"},\"10\":{\"name\":\"variable.other.group-name.regexp\"},\"11\":{\"name\":\"keyword.operator.recursion-level.regexp\"},\"12\":{\"name\":\"constant.numeric.integer.decimal.regexp\"},\"13\":{\"name\":\"keyword.control.conditional.regexp\"},\"14\":{\"name\":\"keyword.control.conditional.regexp\"},\"15\":{\"name\":\"keyword.control.conditional.regexp\"},\"16\":{\"name\":\"keyword.control.conditional.regexp\"},\"17\":{\"name\":\"keyword.control.conditional.regexp\"},\"18\":{\"name\":\"keyword.control.conditional.regexp\"},\"19\":{\"name\":\"keyword.operator.comparison.regexp\"},\"20\":{\"name\":\"constant.numeric.integer.decimal.regexp\"},\"21\":{\"name\":\"keyword.control.conditional.regexp\"},\"22\":{\"name\":\"punctuation.definition.group.regexp\"},\"23\":{\"name\":\"keyword.control.conditional.regexp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.regexp\"}},\"name\":\"meta.group.conditional.regexp\",\"patterns\":[{\"include\":\"#literals-regular-expression-literal-regex-guts\"}]},{\"begin\":\"(\\\\\\\\()((\\\\\\\\?)(?:([:|>=!*]|<[=!*])|P?<(?:((?!\\\\\\\\d)\\\\\\\\w+)(-))?((?!\\\\\\\\d)\\\\\\\\w+)>|\\'(?:((?!\\\\\\\\d)\\\\\\\\w+)(-))?((?!\\\\\\\\d)\\\\\\\\w+)\\'|(?:\\\\\\\\^(?:[iJmnsUxwDPSW]|xx|y\\\\\\\\{[gw]\\\\\\\\})*|(?:[iJmnsUxwDPSW]|xx|y\\\\\\\\{[gw]\\\\\\\\})+|(?:[iJmnsUxwDPSW]|xx|y\\\\\\\\{[gw]\\\\\\\\})*-(?:[iJmnsUxwDPSW]|xx|y\\\\\\\\{[gw]\\\\\\\\})*):)|\\\\\\\\*(atomic|pla|positive_lookahead|nla|negative_lookahead|plb|positive_lookbehind|nlb|negative_lookbehind|napla|non_atomic_positive_lookahead|naplb|non_atomic_positive_lookbehind|sr|script_run|asr|atomic_script_run):)?+\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.group.regexp\"},\"2\":{\"name\":\"keyword.other.group-options.regexp\"},\"3\":{\"name\":\"punctuation.definition.group.regexp\"},\"4\":{\"name\":\"punctuation.definition.group.regexp\"},\"5\":{\"name\":\"variable.other.group-name.regexp\"},\"6\":{\"name\":\"keyword.operator.balancing-group.regexp\"},\"7\":{\"name\":\"variable.other.group-name.regexp\"},\"8\":{\"name\":\"variable.other.group-name.regexp\"},\"9\":{\"name\":\"keyword.operator.balancing-group.regexp\"},\"10\":{\"name\":\"variable.other.group-name.regexp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.regexp\"}},\"name\":\"meta.group.regexp\",\"patterns\":[{\"include\":\"#literals-regular-expression-literal-regex-guts\"}]}]},\"literals-regular-expression-literal-line-comment\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.regexp\"}},\"match\":\"(\\\\\\\\#).*$\",\"name\":\"comment.line.regexp\"},\"literals-regular-expression-literal-quote\":{\"begin\":\"\\\\\\\\\\\\\\\\Q\",\"beginCaptures\":{\"0\":{\"name\":\"constant.character.escape.backslash.regexp\"}},\"end\":\"\\\\\\\\\\\\\\\\E|(\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"constant.character.escape.backslash.regexp\"},\"1\":{\"name\":\"invalid.illegal.returns-not-allowed.regexp\"}},\"name\":\"string.quoted.other.regexp.swift\"},\"literals-regular-expression-literal-regex-guts\":{\"patterns\":[{\"include\":\"#literals-regular-expression-literal-quote\"},{\"begin\":\"\\\\\\\\(\\\\\\\\?\\\\\\\\#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.regexp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.regexp\"}},\"name\":\"comment.block.regexp\"},{\"begin\":\"<\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.regexp\"}},\"end\":\"\\\\\\\\}>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.regexp\"}},\"name\":\"meta.embedded.expression.regexp\"},{\"include\":\"#literals-regular-expression-literal-unicode-scalars\"},{\"include\":\"#literals-regular-expression-literal-character-properties\"},{\"match\":\"[$^]|\\\\\\\\\\\\\\\\[AbBGyYzZ]|\\\\\\\\\\\\\\\\K\",\"name\":\"keyword.control.anchor.regexp\"},{\"include\":\"#literals-regular-expression-literal-backtracking-directive-or-global-matching-option\"},{\"include\":\"#literals-regular-expression-literal-callout\"},{\"include\":\"#literals-regular-expression-literal-backreference-or-subpattern\"},{\"match\":\"\\\\\\\\.|\\\\\\\\\\\\\\\\[CdDhHNORsSvVwWX]\",\"name\":\"constant.character.character-class.regexp\"},{\"match\":\"\\\\\\\\\\\\\\\\c.\",\"name\":\"constant.character.entity.control-character.regexp\"},{\"match\":\"\\\\\\\\\\\\\\\\[^c]\",\"name\":\"constant.character.escape.backslash.regexp\"},{\"match\":\"\\\\\\\\|\",\"name\":\"keyword.operator.or.regexp\"},{\"match\":\"[*+?]\",\"name\":\"keyword.operator.quantifier.regexp\"},{\"match\":\"\\\\\\\\{\\\\\\\\s*\\\\\\\\d+\\\\\\\\s*(?:,\\\\\\\\s*\\\\\\\\d*\\\\\\\\s*)?\\\\\\\\}|\\\\\\\\{\\\\\\\\s*,\\\\\\\\s*\\\\\\\\d+\\\\\\\\s*\\\\\\\\}\",\"name\":\"keyword.operator.quantifier.regexp\"},{\"include\":\"#literals-regular-expression-literal-custom-char-class\"},{\"include\":\"#literals-regular-expression-literal-group-option-toggle\"},{\"include\":\"#literals-regular-expression-literal-group-or-conditional\"}]},\"literals-regular-expression-literal-set-operators\":{\"patterns\":[{\"match\":\"&&\",\"name\":\"keyword.operator.intersection.regexp.swift\"},{\"match\":\"--\",\"name\":\"keyword.operator.subtraction.regexp.swift\"},{\"match\":\"\\\\\\\\~\\\\\\\\~\",\"name\":\"keyword.operator.symmetric-difference.regexp.swift\"}]},\"literals-regular-expression-literal-unicode-scalars\":{\"match\":\"\\\\\\\\\\\\\\\\u\\\\\\\\{\\\\\\\\s*(?:[0-9a-fA-F]+\\\\\\\\s*)+\\\\\\\\}|\\\\\\\\\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\\\\\\\\\x\\\\\\\\{[0-9a-fA-F]+\\\\\\\\}|\\\\\\\\\\\\\\\\x[0-9a-fA-F]{0,2}|\\\\\\\\\\\\\\\\U[0-9a-fA-F]{8}|\\\\\\\\\\\\\\\\o\\\\\\\\{[0-7]+\\\\\\\\}|\\\\\\\\\\\\\\\\0[0-7]{0,3}|\\\\\\\\\\\\\\\\N\\\\\\\\{(?:U\\\\\\\\+[0-9a-fA-F]{1,8}|[\\\\\\\\s\\\\\\\\w-]+)\\\\\\\\}\",\"name\":\"constant.character.numeric.regexp\"},\"literals-string\":{\"patterns\":[{\"begin\":\"\\\\\"\\\\\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.swift\"}},\"end\":\"\\\\\"\\\\\"\\\\\"(#*)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.swift\"},\"1\":{\"name\":\"invalid.illegal.extra-closing-delimiter.swift\"}},\"name\":\"string.quoted.double.block.swift\",\"patterns\":[{\"match\":\"\\\\\\\\G.+(?=\\\\\"\\\\\"\\\\\")|\\\\\\\\G.+\",\"name\":\"invalid.illegal.content-after-opening-delimiter.swift\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n\",\"name\":\"constant.character.escape.newline.swift\"},{\"include\":\"#literals-string-string-guts\"},{\"match\":\"\\\\\\\\S((?!\\\\\\\\\\\\\\\\\\\\\\\\().)*(?=\\\\\"\\\\\"\\\\\")\",\"name\":\"invalid.illegal.content-before-closing-delimiter.swift\"}]},{\"begin\":\"#\\\\\"\\\\\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.swift\"}},\"end\":\"\\\\\"\\\\\"\\\\\"#(#*)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.swift\"},\"1\":{\"name\":\"invalid.illegal.extra-closing-delimiter.swift\"}},\"name\":\"string.quoted.double.block.raw.swift\",\"patterns\":[{\"match\":\"\\\\\\\\G.+(?=\\\\\"\\\\\"\\\\\")|\\\\\\\\G.+\",\"name\":\"invalid.illegal.content-after-opening-delimiter.swift\"},{\"match\":\"\\\\\\\\\\\\\\\\#\\\\\\\\s*\\\\\\\\n\",\"name\":\"constant.character.escape.newline.swift\"},{\"include\":\"#literals-string-raw-string-guts\"},{\"match\":\"\\\\\\\\S((?!\\\\\\\\\\\\\\\\#\\\\\\\\().)*(?=\\\\\"\\\\\"\\\\\")\",\"name\":\"invalid.illegal.content-before-closing-delimiter.swift\"}]},{\"begin\":\"(##+)\\\\\"\\\\\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.swift\"}},\"end\":\"\\\\\"\\\\\"\\\\\"\\\\\\\\1(#*)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.swift\"},\"1\":{\"name\":\"invalid.illegal.extra-closing-delimiter.swift\"}},\"name\":\"string.quoted.double.block.raw.swift\",\"patterns\":[{\"match\":\"\\\\\\\\G.+(?=\\\\\"\\\\\"\\\\\")|\\\\\\\\G.+\",\"name\":\"invalid.illegal.content-after-opening-delimiter.swift\"}]},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.swift\"}},\"end\":\"\\\\\"(#*)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.swift\"},\"1\":{\"name\":\"invalid.illegal.extra-closing-delimiter.swift\"}},\"name\":\"string.quoted.double.single-line.swift\",\"patterns\":[{\"match\":\"\\\\\\\\r|\\\\\\\\n\",\"name\":\"invalid.illegal.returns-not-allowed.swift\"},{\"include\":\"#literals-string-string-guts\"}]},{\"begin\":\"(##+)\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.raw.swift\"}},\"end\":\"\\\\\"\\\\\\\\1(#*)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.raw.swift\"},\"1\":{\"name\":\"invalid.illegal.extra-closing-delimiter.swift\"}},\"name\":\"string.quoted.double.single-line.raw.swift\",\"patterns\":[{\"match\":\"\\\\\\\\r|\\\\\\\\n\",\"name\":\"invalid.illegal.returns-not-allowed.swift\"}]},{\"begin\":\"#\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.raw.swift\"}},\"end\":\"\\\\\"#(#*)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.raw.swift\"},\"1\":{\"name\":\"invalid.illegal.extra-closing-delimiter.swift\"}},\"name\":\"string.quoted.double.single-line.raw.swift\",\"patterns\":[{\"match\":\"\\\\\\\\r|\\\\\\\\n\",\"name\":\"invalid.illegal.returns-not-allowed.swift\"},{\"include\":\"#literals-string-raw-string-guts\"}]}]},\"literals-string-raw-string-guts\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\#[0\\\\\\\\\\\\\\\\tnr\\\\\"\\']\",\"name\":\"constant.character.escape.swift\"},{\"match\":\"\\\\\\\\\\\\\\\\#u\\\\\\\\{[0-9a-fA-F]{1,8}\\\\\\\\}\",\"name\":\"constant.character.escape.unicode.swift\"},{\"begin\":\"\\\\\\\\\\\\\\\\#\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.swift\"}},\"contentName\":\"source.swift\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.swift\"},\"1\":{\"name\":\"source.swift\"}},\"name\":\"meta.embedded.line.swift\",\"patterns\":[{\"include\":\"$self\"},{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\"}]},{\"match\":\"\\\\\\\\\\\\\\\\#.\",\"name\":\"invalid.illegal.escape-not-recognized\"}]},\"literals-string-string-guts\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[0\\\\\\\\\\\\\\\\tnr\\\\\"\\']\",\"name\":\"constant.character.escape.swift\"},{\"match\":\"\\\\\\\\\\\\\\\\u\\\\\\\\{[0-9a-fA-F]{1,8}\\\\\\\\}\",\"name\":\"constant.character.escape.unicode.swift\"},{\"begin\":\"\\\\\\\\\\\\\\\\\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.swift\"}},\"contentName\":\"source.swift\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.swift\"},\"1\":{\"name\":\"source.swift\"}},\"name\":\"meta.embedded.line.swift\",\"patterns\":[{\"include\":\"$self\"},{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\"}]},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"invalid.illegal.escape-not-recognized\"}]},\"member-reference\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.other.swift\"},\"2\":{\"name\":\"punctuation.definition.identifier.swift\"},\"3\":{\"name\":\"punctuation.definition.identifier.swift\"}},\"match\":\"(?<=\\\\\\\\.)((?<q>`?)[\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*(\\\\\\\\k<q>))\"}]},\"operators\":{\"patterns\":[{\"match\":\"\\\\\\\\b(is\\\\\\\\b|as([!?]\\\\\\\\B|\\\\\\\\b))\",\"name\":\"keyword.operator.type-casting.swift\"},{\"begin\":\"(?=(?<oph>[/=\\\\\\\\-+!*%<>&|^~?]|[\\\\\\\\x{00A1}-\\\\\\\\x{00A7}]|[\\\\\\\\x{00A9}\\\\\\\\x{00AB}]|[\\\\\\\\x{00AC}\\\\\\\\x{00AE}]|[\\\\\\\\x{00B0}-\\\\\\\\x{00B1}\\\\\\\\x{00B6}\\\\\\\\x{00BB}\\\\\\\\x{00BF}\\\\\\\\x{00D7}\\\\\\\\x{00F7}]|[\\\\\\\\x{2016}-\\\\\\\\x{2017}\\\\\\\\x{2020}-\\\\\\\\x{2027}]|[\\\\\\\\x{2030}-\\\\\\\\x{203E}]|[\\\\\\\\x{2041}-\\\\\\\\x{2053}]|[\\\\\\\\x{2055}-\\\\\\\\x{205E}]|[\\\\\\\\x{2190}-\\\\\\\\x{23FF}]|[\\\\\\\\x{2500}-\\\\\\\\x{2775}]|[\\\\\\\\x{2794}-\\\\\\\\x{2BFF}]|[\\\\\\\\x{2E00}-\\\\\\\\x{2E7F}]|[\\\\\\\\x{3001}-\\\\\\\\x{3003}]|[\\\\\\\\x{3008}-\\\\\\\\x{3030}])|\\\\\\\\.(\\\\\\\\g<oph>|\\\\\\\\.|[\\\\\\\\x{0300}-\\\\\\\\x{036F}]|[\\\\\\\\x{1DC0}-\\\\\\\\x{1DFF}]|[\\\\\\\\x{20D0}-\\\\\\\\x{20FF}]|[\\\\\\\\x{FE00}-\\\\\\\\x{FE0F}]|[\\\\\\\\x{FE20}-\\\\\\\\x{FE2F}]|[\\\\\\\\x{E0100}-\\\\\\\\x{E01EF}]))\",\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"captures\":{\"0\":{\"patterns\":[{\"match\":\"\\\\\\\\G(\\\\\\\\+\\\\\\\\+|\\\\\\\\-\\\\\\\\-)$\",\"name\":\"keyword.operator.increment-or-decrement.swift\"},{\"match\":\"\\\\\\\\G(\\\\\\\\+|\\\\\\\\-)$\",\"name\":\"keyword.operator.arithmetic.unary.swift\"},{\"match\":\"\\\\\\\\G!$\",\"name\":\"keyword.operator.logical.not.swift\"},{\"match\":\"\\\\\\\\G~$\",\"name\":\"keyword.operator.bitwise.not.swift\"},{\"match\":\".+\",\"name\":\"keyword.operator.custom.prefix.swift\"}]}},\"match\":\"\\\\\\\\G(?<=^|[\\\\\\\\s(\\\\\\\\[{,;:])((?!(//|/\\\\\\\\*|\\\\\\\\*/))([/=\\\\\\\\-+!*%<>&|^~?]|[\\\\\\\\x{00A1}-\\\\\\\\x{00A7}]|[\\\\\\\\x{00A9}\\\\\\\\x{00AB}]|[\\\\\\\\x{00AC}\\\\\\\\x{00AE}]|[\\\\\\\\x{00B0}-\\\\\\\\x{00B1}\\\\\\\\x{00B6}\\\\\\\\x{00BB}\\\\\\\\x{00BF}\\\\\\\\x{00D7}\\\\\\\\x{00F7}]|[\\\\\\\\x{2016}-\\\\\\\\x{2017}\\\\\\\\x{2020}-\\\\\\\\x{2027}]|[\\\\\\\\x{2030}-\\\\\\\\x{203E}]|[\\\\\\\\x{2041}-\\\\\\\\x{2053}]|[\\\\\\\\x{2055}-\\\\\\\\x{205E}]|[\\\\\\\\x{2190}-\\\\\\\\x{23FF}]|[\\\\\\\\x{2500}-\\\\\\\\x{2775}]|[\\\\\\\\x{2794}-\\\\\\\\x{2BFF}]|[\\\\\\\\x{2E00}-\\\\\\\\x{2E7F}]|[\\\\\\\\x{3001}-\\\\\\\\x{3003}]|[\\\\\\\\x{3008}-\\\\\\\\x{3030}]|[\\\\\\\\x{0300}-\\\\\\\\x{036F}]|[\\\\\\\\x{1DC0}-\\\\\\\\x{1DFF}]|[\\\\\\\\x{20D0}-\\\\\\\\x{20FF}]|[\\\\\\\\x{FE00}-\\\\\\\\x{FE0F}]|[\\\\\\\\x{FE20}-\\\\\\\\x{FE2F}]|[\\\\\\\\x{E0100}-\\\\\\\\x{E01EF}]))++(?![\\\\\\\\s)\\\\\\\\]},;:]|\\\\\\\\z)\"},{\"captures\":{\"0\":{\"patterns\":[{\"match\":\"\\\\\\\\G(\\\\\\\\+\\\\\\\\+|\\\\\\\\-\\\\\\\\-)$\",\"name\":\"keyword.operator.increment-or-decrement.swift\"},{\"match\":\"\\\\\\\\G!$\",\"name\":\"keyword.operator.increment-or-decrement.swift\"},{\"match\":\".+\",\"name\":\"keyword.operator.custom.postfix.swift\"}]}},\"match\":\"\\\\\\\\G(?<!^|[\\\\\\\\s(\\\\\\\\[{,;:])((?!(//|/\\\\\\\\*|\\\\\\\\*/))([/=\\\\\\\\-+!*%<>&|^~?]|[\\\\\\\\x{00A1}-\\\\\\\\x{00A7}]|[\\\\\\\\x{00A9}\\\\\\\\x{00AB}]|[\\\\\\\\x{00AC}\\\\\\\\x{00AE}]|[\\\\\\\\x{00B0}-\\\\\\\\x{00B1}\\\\\\\\x{00B6}\\\\\\\\x{00BB}\\\\\\\\x{00BF}\\\\\\\\x{00D7}\\\\\\\\x{00F7}]|[\\\\\\\\x{2016}-\\\\\\\\x{2017}\\\\\\\\x{2020}-\\\\\\\\x{2027}]|[\\\\\\\\x{2030}-\\\\\\\\x{203E}]|[\\\\\\\\x{2041}-\\\\\\\\x{2053}]|[\\\\\\\\x{2055}-\\\\\\\\x{205E}]|[\\\\\\\\x{2190}-\\\\\\\\x{23FF}]|[\\\\\\\\x{2500}-\\\\\\\\x{2775}]|[\\\\\\\\x{2794}-\\\\\\\\x{2BFF}]|[\\\\\\\\x{2E00}-\\\\\\\\x{2E7F}]|[\\\\\\\\x{3001}-\\\\\\\\x{3003}]|[\\\\\\\\x{3008}-\\\\\\\\x{3030}]|[\\\\\\\\x{0300}-\\\\\\\\x{036F}]|[\\\\\\\\x{1DC0}-\\\\\\\\x{1DFF}]|[\\\\\\\\x{20D0}-\\\\\\\\x{20FF}]|[\\\\\\\\x{FE00}-\\\\\\\\x{FE0F}]|[\\\\\\\\x{FE20}-\\\\\\\\x{FE2F}]|[\\\\\\\\x{E0100}-\\\\\\\\x{E01EF}]))++(?=[\\\\\\\\s)\\\\\\\\]},;:]|\\\\\\\\z)\"},{\"captures\":{\"0\":{\"patterns\":[{\"match\":\"\\\\\\\\G=$\",\"name\":\"keyword.operator.assignment.swift\"},{\"match\":\"\\\\\\\\G(\\\\\\\\+|\\\\\\\\-|\\\\\\\\*|/|%|<<|>>|&|\\\\\\\\^|\\\\\\\\||&&|\\\\\\\\|\\\\\\\\|)=$\",\"name\":\"keyword.operator.assignment.compound.swift\"},{\"match\":\"\\\\\\\\G(\\\\\\\\+|\\\\\\\\-|\\\\\\\\*|/)$\",\"name\":\"keyword.operator.arithmetic.swift\"},{\"match\":\"\\\\\\\\G&(\\\\\\\\+|\\\\\\\\-|\\\\\\\\*)$\",\"name\":\"keyword.operator.arithmetic.overflow.swift\"},{\"match\":\"\\\\\\\\G%$\",\"name\":\"keyword.operator.arithmetic.remainder.swift\"},{\"match\":\"\\\\\\\\G(==|!=|>|<|>=|<=|~=)$\",\"name\":\"keyword.operator.comparison.swift\"},{\"match\":\"\\\\\\\\G\\\\\\\\?\\\\\\\\?$\",\"name\":\"keyword.operator.coalescing.swift\"},{\"match\":\"\\\\\\\\G(&&|\\\\\\\\|\\\\\\\\|)$\",\"name\":\"keyword.operator.logical.swift\"},{\"match\":\"\\\\\\\\G(&|\\\\\\\\||\\\\\\\\^|<<|>>)$\",\"name\":\"keyword.operator.bitwise.swift\"},{\"match\":\"\\\\\\\\G(===|!==)$\",\"name\":\"keyword.operator.bitwise.swift\"},{\"match\":\"\\\\\\\\G\\\\\\\\?$\",\"name\":\"keyword.operator.ternary.swift\"},{\"match\":\".+\",\"name\":\"keyword.operator.custom.infix.swift\"}]}},\"match\":\"\\\\\\\\G((?!(//|/\\\\\\\\*|\\\\\\\\*/))([/=\\\\\\\\-+!*%<>&|^~?]|[\\\\\\\\x{00A1}-\\\\\\\\x{00A7}]|[\\\\\\\\x{00A9}\\\\\\\\x{00AB}]|[\\\\\\\\x{00AC}\\\\\\\\x{00AE}]|[\\\\\\\\x{00B0}-\\\\\\\\x{00B1}\\\\\\\\x{00B6}\\\\\\\\x{00BB}\\\\\\\\x{00BF}\\\\\\\\x{00D7}\\\\\\\\x{00F7}]|[\\\\\\\\x{2016}-\\\\\\\\x{2017}\\\\\\\\x{2020}-\\\\\\\\x{2027}]|[\\\\\\\\x{2030}-\\\\\\\\x{203E}]|[\\\\\\\\x{2041}-\\\\\\\\x{2053}]|[\\\\\\\\x{2055}-\\\\\\\\x{205E}]|[\\\\\\\\x{2190}-\\\\\\\\x{23FF}]|[\\\\\\\\x{2500}-\\\\\\\\x{2775}]|[\\\\\\\\x{2794}-\\\\\\\\x{2BFF}]|[\\\\\\\\x{2E00}-\\\\\\\\x{2E7F}]|[\\\\\\\\x{3001}-\\\\\\\\x{3003}]|[\\\\\\\\x{3008}-\\\\\\\\x{3030}]|[\\\\\\\\x{0300}-\\\\\\\\x{036F}]|[\\\\\\\\x{1DC0}-\\\\\\\\x{1DFF}]|[\\\\\\\\x{20D0}-\\\\\\\\x{20FF}]|[\\\\\\\\x{FE00}-\\\\\\\\x{FE0F}]|[\\\\\\\\x{FE20}-\\\\\\\\x{FE2F}]|[\\\\\\\\x{E0100}-\\\\\\\\x{E01EF}]))++\"},{\"captures\":{\"0\":{\"patterns\":[{\"match\":\".+\",\"name\":\"keyword.operator.custom.prefix.dot.swift\"}]}},\"match\":\"\\\\\\\\G(?<=^|[\\\\\\\\s(\\\\\\\\[{,;:])\\\\\\\\.((?!(//|/\\\\\\\\*|\\\\\\\\*/))(\\\\\\\\.|[/=\\\\\\\\-+!*%<>&|^~?]|[\\\\\\\\x{00A1}-\\\\\\\\x{00A7}]|[\\\\\\\\x{00A9}\\\\\\\\x{00AB}]|[\\\\\\\\x{00AC}\\\\\\\\x{00AE}]|[\\\\\\\\x{00B0}-\\\\\\\\x{00B1}\\\\\\\\x{00B6}\\\\\\\\x{00BB}\\\\\\\\x{00BF}\\\\\\\\x{00D7}\\\\\\\\x{00F7}]|[\\\\\\\\x{2016}-\\\\\\\\x{2017}\\\\\\\\x{2020}-\\\\\\\\x{2027}]|[\\\\\\\\x{2030}-\\\\\\\\x{203E}]|[\\\\\\\\x{2041}-\\\\\\\\x{2053}]|[\\\\\\\\x{2055}-\\\\\\\\x{205E}]|[\\\\\\\\x{2190}-\\\\\\\\x{23FF}]|[\\\\\\\\x{2500}-\\\\\\\\x{2775}]|[\\\\\\\\x{2794}-\\\\\\\\x{2BFF}]|[\\\\\\\\x{2E00}-\\\\\\\\x{2E7F}]|[\\\\\\\\x{3001}-\\\\\\\\x{3003}]|[\\\\\\\\x{3008}-\\\\\\\\x{3030}]|[\\\\\\\\x{0300}-\\\\\\\\x{036F}]|[\\\\\\\\x{1DC0}-\\\\\\\\x{1DFF}]|[\\\\\\\\x{20D0}-\\\\\\\\x{20FF}]|[\\\\\\\\x{FE00}-\\\\\\\\x{FE0F}]|[\\\\\\\\x{FE20}-\\\\\\\\x{FE2F}]|[\\\\\\\\x{E0100}-\\\\\\\\x{E01EF}]))++(?![\\\\\\\\s)\\\\\\\\]},;:]|\\\\\\\\z)\"},{\"captures\":{\"0\":{\"patterns\":[{\"match\":\".+\",\"name\":\"keyword.operator.custom.postfix.dot.swift\"}]}},\"match\":\"\\\\\\\\G(?<!^|[\\\\\\\\s(\\\\\\\\[{,;:])\\\\\\\\.((?!(//|/\\\\\\\\*|\\\\\\\\*/))(\\\\\\\\.|[/=\\\\\\\\-+!*%<>&|^~?]|[\\\\\\\\x{00A1}-\\\\\\\\x{00A7}]|[\\\\\\\\x{00A9}\\\\\\\\x{00AB}]|[\\\\\\\\x{00AC}\\\\\\\\x{00AE}]|[\\\\\\\\x{00B0}-\\\\\\\\x{00B1}\\\\\\\\x{00B6}\\\\\\\\x{00BB}\\\\\\\\x{00BF}\\\\\\\\x{00D7}\\\\\\\\x{00F7}]|[\\\\\\\\x{2016}-\\\\\\\\x{2017}\\\\\\\\x{2020}-\\\\\\\\x{2027}]|[\\\\\\\\x{2030}-\\\\\\\\x{203E}]|[\\\\\\\\x{2041}-\\\\\\\\x{2053}]|[\\\\\\\\x{2055}-\\\\\\\\x{205E}]|[\\\\\\\\x{2190}-\\\\\\\\x{23FF}]|[\\\\\\\\x{2500}-\\\\\\\\x{2775}]|[\\\\\\\\x{2794}-\\\\\\\\x{2BFF}]|[\\\\\\\\x{2E00}-\\\\\\\\x{2E7F}]|[\\\\\\\\x{3001}-\\\\\\\\x{3003}]|[\\\\\\\\x{3008}-\\\\\\\\x{3030}]|[\\\\\\\\x{0300}-\\\\\\\\x{036F}]|[\\\\\\\\x{1DC0}-\\\\\\\\x{1DFF}]|[\\\\\\\\x{20D0}-\\\\\\\\x{20FF}]|[\\\\\\\\x{FE00}-\\\\\\\\x{FE0F}]|[\\\\\\\\x{FE20}-\\\\\\\\x{FE2F}]|[\\\\\\\\x{E0100}-\\\\\\\\x{E01EF}]))++(?=[\\\\\\\\s)\\\\\\\\]},;:]|\\\\\\\\z)\"},{\"captures\":{\"0\":{\"patterns\":[{\"match\":\"\\\\\\\\G\\\\\\\\.\\\\\\\\.[.<]$\",\"name\":\"keyword.operator.range.swift\"},{\"match\":\".+\",\"name\":\"keyword.operator.custom.infix.dot.swift\"}]}},\"match\":\"\\\\\\\\G\\\\\\\\.((?!(//|/\\\\\\\\*|\\\\\\\\*/))(\\\\\\\\.|[/=\\\\\\\\-+!*%<>&|^~?]|[\\\\\\\\x{00A1}-\\\\\\\\x{00A7}]|[\\\\\\\\x{00A9}\\\\\\\\x{00AB}]|[\\\\\\\\x{00AC}\\\\\\\\x{00AE}]|[\\\\\\\\x{00B0}-\\\\\\\\x{00B1}\\\\\\\\x{00B6}\\\\\\\\x{00BB}\\\\\\\\x{00BF}\\\\\\\\x{00D7}\\\\\\\\x{00F7}]|[\\\\\\\\x{2016}-\\\\\\\\x{2017}\\\\\\\\x{2020}-\\\\\\\\x{2027}]|[\\\\\\\\x{2030}-\\\\\\\\x{203E}]|[\\\\\\\\x{2041}-\\\\\\\\x{2053}]|[\\\\\\\\x{2055}-\\\\\\\\x{205E}]|[\\\\\\\\x{2190}-\\\\\\\\x{23FF}]|[\\\\\\\\x{2500}-\\\\\\\\x{2775}]|[\\\\\\\\x{2794}-\\\\\\\\x{2BFF}]|[\\\\\\\\x{2E00}-\\\\\\\\x{2E7F}]|[\\\\\\\\x{3001}-\\\\\\\\x{3003}]|[\\\\\\\\x{3008}-\\\\\\\\x{3030}]|[\\\\\\\\x{0300}-\\\\\\\\x{036F}]|[\\\\\\\\x{1DC0}-\\\\\\\\x{1DFF}]|[\\\\\\\\x{20D0}-\\\\\\\\x{20FF}]|[\\\\\\\\x{FE00}-\\\\\\\\x{FE0F}]|[\\\\\\\\x{FE20}-\\\\\\\\x{FE2F}]|[\\\\\\\\x{E0100}-\\\\\\\\x{E01EF}]))++\"}]},{\"match\":\":\",\"name\":\"keyword.operator.ternary.swift\"}]},\"root\":{\"patterns\":[{\"include\":\"#compiler-control\"},{\"include\":\"#declarations\"},{\"include\":\"#expressions\"}]}},\"scopeName\":\"source.swift\"}')),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BTpWsGps.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"#\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},n={defaultToken:\"\",tokenPostfix:\".ini\",escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^\\[[^\\]]*\\]/,\"metatag\"],[/(^\\w+)(\\s*)(\\=)/,[\"key\",\"\",\"delimiter\"]],{include:\"@whitespace\"},[/\\d+/,\"number\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/'([^'\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",'@string.\"'],[/'/,\"string\",\"@string.'\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/^\\s*[#;].*$/,\"comment\"]],string:[[/[^\\\\\"']+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/[\"']/,{cases:{\"$#==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":\"string\"}}]]}};export{e as conf,n as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/BUEGK8hf.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Objective-C++\",\"name\":\"objective-cpp\",\"patterns\":[{\"include\":\"#cpp_lang\"},{\"include\":\"#anonymous_pattern_1\"},{\"include\":\"#anonymous_pattern_2\"},{\"include\":\"#anonymous_pattern_3\"},{\"include\":\"#anonymous_pattern_4\"},{\"include\":\"#anonymous_pattern_5\"},{\"include\":\"#apple_foundation_functional_macros\"},{\"include\":\"#anonymous_pattern_7\"},{\"include\":\"#anonymous_pattern_8\"},{\"include\":\"#anonymous_pattern_9\"},{\"include\":\"#anonymous_pattern_10\"},{\"include\":\"#anonymous_pattern_11\"},{\"include\":\"#anonymous_pattern_12\"},{\"include\":\"#anonymous_pattern_13\"},{\"include\":\"#anonymous_pattern_14\"},{\"include\":\"#anonymous_pattern_15\"},{\"include\":\"#anonymous_pattern_16\"},{\"include\":\"#anonymous_pattern_17\"},{\"include\":\"#anonymous_pattern_18\"},{\"include\":\"#anonymous_pattern_19\"},{\"include\":\"#anonymous_pattern_20\"},{\"include\":\"#anonymous_pattern_21\"},{\"include\":\"#anonymous_pattern_22\"},{\"include\":\"#anonymous_pattern_23\"},{\"include\":\"#anonymous_pattern_24\"},{\"include\":\"#anonymous_pattern_25\"},{\"include\":\"#anonymous_pattern_26\"},{\"include\":\"#anonymous_pattern_27\"},{\"include\":\"#anonymous_pattern_28\"},{\"include\":\"#anonymous_pattern_29\"},{\"include\":\"#anonymous_pattern_30\"},{\"include\":\"#bracketed_content\"},{\"include\":\"#c_lang\"}],\"repository\":{\"anonymous_pattern_1\":{\"begin\":\"((@)(interface|protocol))(?!.+;)\\\\\\\\s+([A-Za-z_][A-Za-z0-9_]*)\\\\\\\\s*((:)(?:\\\\\\\\s*)([A-Za-z][A-Za-z0-9]*))?(\\\\\\\\s|\\\\\\\\n)?\",\"captures\":{\"1\":{\"name\":\"storage.type.objcpp\"},\"2\":{\"name\":\"punctuation.definition.storage.type.objcpp\"},\"4\":{\"name\":\"entity.name.type.objcpp\"},\"6\":{\"name\":\"punctuation.definition.entity.other.inherited-class.objcpp\"},\"7\":{\"name\":\"entity.other.inherited-class.objcpp\"},\"8\":{\"name\":\"meta.divider.objcpp\"},\"9\":{\"name\":\"meta.inherited-class.objcpp\"}},\"contentName\":\"meta.scope.interface.objcpp\",\"end\":\"((@)end)\\\\\\\\b\",\"name\":\"meta.interface-or-protocol.objcpp\",\"patterns\":[{\"include\":\"#interface_innards\"}]},\"anonymous_pattern_10\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.keyword.objcpp\"}},\"match\":\"(@)(defs|encode)\\\\\\\\b\",\"name\":\"keyword.other.objcpp\"},\"anonymous_pattern_11\":{\"match\":\"\\\\\\\\bid\\\\\\\\b\",\"name\":\"storage.type.id.objcpp\"},\"anonymous_pattern_12\":{\"match\":\"\\\\\\\\b(IBOutlet|IBAction|BOOL|SEL|id|unichar|IMP|Class|instancetype)\\\\\\\\b\",\"name\":\"storage.type.objcpp\"},\"anonymous_pattern_13\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.storage.type.objcpp\"}},\"match\":\"(@)(class|protocol)\\\\\\\\b\",\"name\":\"storage.type.objcpp\"},\"anonymous_pattern_14\":{\"begin\":\"((@)selector)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.objcpp\"},\"2\":{\"name\":\"punctuation.definition.storage.type.objcpp\"},\"3\":{\"name\":\"punctuation.definition.storage.type.objcpp\"}},\"contentName\":\"meta.selector.method-name.objcpp\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.storage.type.objcpp\"}},\"name\":\"meta.selector.objcpp\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.arguments.objcpp\"}},\"match\":\"\\\\\\\\b(?:[a-zA-Z_:][\\\\\\\\w]*)+\",\"name\":\"support.function.any-method.name-of-parameter.objcpp\"}]},\"anonymous_pattern_15\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.storage.modifier.objcpp\"}},\"match\":\"(@)(synchronized|public|package|private|protected)\\\\\\\\b\",\"name\":\"storage.modifier.objcpp\"},\"anonymous_pattern_16\":{\"match\":\"\\\\\\\\b(YES|NO|Nil|nil)\\\\\\\\b\",\"name\":\"constant.language.objcpp\"},\"anonymous_pattern_17\":{\"match\":\"\\\\\\\\bNSApp\\\\\\\\b\",\"name\":\"support.variable.foundation.objcpp\"},\"anonymous_pattern_18\":{\"captures\":{\"1\":{\"name\":\"punctuation.whitespace.support.function.cocoa.leopard.objcpp\"},\"2\":{\"name\":\"support.function.cocoa.leopard.objcpp\"}},\"match\":\"(\\\\\\\\s*)\\\\\\\\b(NS(Rect(ToCGRect|FromCGRect)|MakeCollectable|S(tringFromProtocol|ize(ToCGSize|FromCGSize))|Draw(NinePartImage|ThreePartImage)|P(oint(ToCGPoint|FromCGPoint)|rotocolFromString)|EventMaskFromType|Value))\\\\\\\\b\"},\"anonymous_pattern_19\":{\"captures\":{\"1\":{\"name\":\"punctuation.whitespace.support.function.leading.cocoa.objcpp\"},\"2\":{\"name\":\"support.function.cocoa.objcpp\"}},\"match\":\"(\\\\\\\\s*)\\\\\\\\b(NS(R(ound(DownToMultipleOfPageSize|UpToMultipleOfPageSize)|un(CriticalAlertPanel(RelativeToWindow)?|InformationalAlertPanel(RelativeToWindow)?|AlertPanel(RelativeToWindow)?)|e(set(MapTable|HashTable)|c(ycleZone|t(Clip(List)?|F(ill(UsingOperation|List(UsingOperation|With(Grays|Colors(UsingOperation)?))?)?|romString))|ordAllocationEvent)|turnAddress|leaseAlertPanel|a(dPixel|l(MemoryAvailable|locateCollectable))|gisterServicesProvider)|angeFromString)|Get(SizeAndAlignment|CriticalAlertPanel|InformationalAlertPanel|UncaughtExceptionHandler|FileType(s)?|WindowServerMemory|AlertPanel)|M(i(n(X|Y)|d(X|Y))|ouseInRect|a(p(Remove|Get|Member|Insert(IfAbsent|KnownAbsent)?)|ke(R(ect|ange)|Size|Point)|x(Range|X|Y)))|B(itsPer(SampleFromDepth|PixelFromDepth)|e(stDepth|ep|gin(CriticalAlertSheet|InformationalAlertSheet|AlertSheet)))|S(ho(uldRetainWithZone|w(sServicesMenuItem|AnimationEffect))|tringFrom(R(ect|ange)|MapTable|S(ize|elector)|HashTable|Class|Point)|izeFromString|e(t(ShowsServicesMenuItem|ZoneName|UncaughtExceptionHandler|FocusRingStyle)|lectorFromString|archPathForDirectoriesInDomains)|wap(Big(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|Short|Host(ShortTo(Big|Little)|IntTo(Big|Little)|DoubleTo(Big|Little)|FloatTo(Big|Little)|Long(To(Big|Little)|LongTo(Big|Little)))|Int|Double|Float|L(ittle(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|ong(Long)?)))|H(ighlightRect|o(stByteOrder|meDirectory(ForUser)?)|eight|ash(Remove|Get|Insert(IfAbsent|KnownAbsent)?)|FSType(CodeFromFileType|OfFile))|N(umberOfColorComponents|ext(MapEnumeratorPair|HashEnumeratorItem))|C(o(n(tainsRect|vert(GlyphsToPackedGlyphs|Swapped(DoubleToHost|FloatToHost)|Host(DoubleToSwapped|FloatToSwapped)))|unt(MapTable|HashTable|Frames|Windows(ForContext)?)|py(M(emoryPages|apTableWithZone)|Bits|HashTableWithZone|Object)|lorSpaceFromDepth|mpare(MapTables|HashTables))|lassFromString|reate(MapTable(WithZone)?|HashTable(WithZone)?|Zone|File(namePboardType|ContentsPboardType)))|TemporaryDirectory|I(s(ControllerMarker|EmptyRect|FreedObject)|n(setRect|crementExtraRefCount|te(r(sect(sRect|ionR(ect|ange))|faceStyleForKey)|gralRect)))|Zone(Realloc|Malloc|Name|Calloc|Fr(omPointer|ee))|O(penStepRootDirectory|ffsetRect)|D(i(sableScreenUpdates|videRect)|ottedFrameRect|e(c(imal(Round|Multiply|S(tring|ubtract)|Normalize|Co(py|mpa(ct|re))|IsNotANumber|Divide|Power|Add)|rementExtraRefCountWasZero)|faultMallocZone|allocate(MemoryPages|Object))|raw(Gr(oove|ayBezel)|B(itmap|utton)|ColorTiledRects|TiledRects|DarkBezel|W(hiteBezel|indowBackground)|LightBezel))|U(serName|n(ionR(ect|ange)|registerServicesProvider)|pdateDynamicServices)|Java(Bundle(Setup|Cleanup)|Setup(VirtualMachine)?|Needs(ToLoadClasses|VirtualMachine)|ClassesF(orBundle|romPath)|ObjectNamedInPath|ProvidesClasses)|P(oint(InRect|FromString)|erformService|lanarFromDepth|ageSize)|E(n(d(MapTableEnumeration|HashTableEnumeration)|umerate(MapTable|HashTable)|ableScreenUpdates)|qual(R(ects|anges)|Sizes|Points)|raseRect|xtraRefCount)|F(ileTypeForHFSTypeCode|ullUserName|r(ee(MapTable|HashTable)|ame(Rect(WithWidth(UsingOperation)?)?|Address)))|Wi(ndowList(ForContext)?|dth)|Lo(cationInRange|g(v|PageSize)?)|A(ccessibility(R(oleDescription(ForUIElement)?|aiseBadArgumentException)|Unignored(Children(ForOnlyChild)?|Descendant|Ancestor)|PostNotification|ActionDescription)|pplication(Main|Load)|vailableWindowDepths|ll(MapTable(Values|Keys)|HashTableObjects|ocate(MemoryPages|Collectable|Object)))))\\\\\\\\b\"},\"anonymous_pattern_2\":{\"begin\":\"((@)(implementation))\\\\\\\\s+([A-Za-z_][A-Za-z0-9_]*)\\\\\\\\s*(?::\\\\\\\\s*([A-Za-z][A-Za-z0-9]*))?\",\"captures\":{\"1\":{\"name\":\"storage.type.objcpp\"},\"2\":{\"name\":\"punctuation.definition.storage.type.objcpp\"},\"4\":{\"name\":\"entity.name.type.objcpp\"},\"5\":{\"name\":\"entity.other.inherited-class.objcpp\"}},\"contentName\":\"meta.scope.implementation.objcpp\",\"end\":\"((@)end)\\\\\\\\b\",\"name\":\"meta.implementation.objcpp\",\"patterns\":[{\"include\":\"#implementation_innards\"}]},\"anonymous_pattern_20\":{\"match\":\"\\\\\\\\bNS(RuleEditor|G(arbageCollector|radient)|MapTable|HashTable|Co(ndition|llectionView(Item)?)|T(oolbarItemGroup|extInputClient|r(eeNode|ackingArea))|InvocationOperation|Operation(Queue)?|D(ictionaryController|ockTile)|P(ointer(Functions|Array)|athC(o(ntrol(Delegate)?|mponentCell)|ell(Delegate)?)|r(intPanelAccessorizing|edicateEditor(RowTemplate)?))|ViewController|FastEnumeration|Animat(ionContext|ablePropertyContainer))\\\\\\\\b\",\"name\":\"support.class.cocoa.leopard.objcpp\"},\"anonymous_pattern_21\":{\"match\":\"\\\\\\\\bNS(R(u(nLoop|ler(Marker|View))|e(sponder|cursiveLock|lativeSpecifier)|an(domSpecifier|geSpecifier))|G(etCommand|lyph(Generator|Storage|Info)|raphicsContext)|XML(Node|D(ocument|TD(Node)?)|Parser|Element)|M(iddleSpecifier|ov(ie(View)?|eCommand)|utable(S(tring|et)|C(haracterSet|opying)|IndexSet|D(ictionary|ata)|URLRequest|ParagraphStyle|A(ttributedString|rray))|e(ssagePort(NameServer)?|nu(Item(Cell)?|View)?|t(hodSignature|adata(Item|Query(ResultGroup|AttributeValueTuple)?)))|a(ch(BootstrapServer|Port)|trix))|B(itmapImageRep|ox|u(ndle|tton(Cell)?)|ezierPath|rowser(Cell)?)|S(hadow|c(anner|r(ipt(SuiteRegistry|C(o(ercionHandler|mmand(Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(er|View)|een))|t(epper(Cell)?|atus(Bar|Item)|r(ing|eam))|imple(HorizontalTypesetter|CString)|o(cketPort(NameServer)?|und|rtDescriptor)|p(e(cifierTest|ech(Recognizer|Synthesizer)|ll(Server|Checker))|litView)|e(cureTextField(Cell)?|t(Command)?|archField(Cell)?|rializer|gmentedC(ontrol|ell))|lider(Cell)?|avePanel)|H(ost|TTP(Cookie(Storage)?|URLResponse)|elpManager)|N(ib(Con(nector|trolConnector)|OutletConnector)?|otification(Center|Queue)?|u(ll|mber(Formatter)?)|etService(Browser)?|ameSpecifier)|C(ha(ngeSpelling|racterSet)|o(n(stantString|nection|trol(ler)?|ditionLock)|d(ing|er)|unt(Command|edSet)|pying|lor(Space|P(ick(ing(Custom|Default)|er)|anel)|Well|List)?|m(p(oundPredicate|arisonPredicate)|boBox(Cell)?))|u(stomImageRep|rsor)|IImageRep|ell|l(ipView|o(seCommand|neCommand)|assDescription)|a(ched(ImageRep|URLResponse)|lendar(Date)?)|reateCommand)|T(hread|ypesetter|ime(Zone|r)|o(olbar(Item(Validations)?)?|kenField(Cell)?)|ext(Block|Storage|Container|Tab(le(Block)?)?|Input|View|Field(Cell)?|List|Attachment(Cell)?)?|a(sk|b(le(Header(Cell|View)|Column|View)|View(Item)?))|reeController)|I(n(dex(S(pecifier|et)|Path)|put(Manager|S(tream|erv(iceProvider|er(MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(Rep|Cell|View)?)|O(ut(putStream|lineView)|pen(GL(Context|Pixel(Buffer|Format)|View)|Panel)|bj(CTypeSerializationCallBack|ect(Controller)?))|D(i(st(antObject(Request)?|ributed(NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(Controller)?|e(serializer|cimalNumber(Behaviors|Handler)?|leteCommand)|at(e(Components|Picker(Cell)?|Formatter)?|a)|ra(wer|ggingInfo))|U(ser(InterfaceValidations|Defaults(Controller)?)|RL(Re(sponse|quest)|Handle(Client)?|C(onnection|ache|redential(Storage)?)|Download(Delegate)?|Prot(ocol(Client)?|ectionSpace)|AuthenticationChallenge(Sender)?)?|n(iqueIDSpecifier|doManager|archiver))|P(ipe|o(sitionalSpecifier|pUpButton(Cell)?|rt(Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(steboard|nel|ragraphStyle|geLayout)|r(int(Info|er|Operation|Panel)|o(cessInfo|tocolChecker|perty(Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(numerator|vent|PSImageRep|rror|x(ception|istsCommand|pression))|V(iew(Animation)?|al(idated(ToobarItem|UserInterfaceItem)|ue(Transformer)?))|Keyed(Unarchiver|Archiver)|Qui(ckDrawView|tCommand)|F(ile(Manager|Handle|Wrapper)|o(nt(Manager|Descriptor|Panel)?|rm(Cell|atter)))|W(hoseSpecifier|indow(Controller)?|orkspace)|L(o(c(k(ing)?|ale)|gicalTest)|evelIndicator(Cell)?|ayoutManager)|A(ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(ication|e(Script|Event(Manager|Descriptor)))|ffineTransform|lert|r(chiver|ray(Controller)?)))\\\\\\\\b\",\"name\":\"support.class.cocoa.objcpp\"},\"anonymous_pattern_22\":{\"match\":\"\\\\\\\\bNS(R(oundingMode|ule(Editor(RowType|NestingMode)|rOrientation)|e(questUserAttentionType|lativePosition))|G(lyphInscription|radientDrawingOptions)|XML(NodeKind|D(ocumentContentKind|TDNodeKind)|ParserError)|M(ultibyteGlyphPacking|apTableOptions)|B(itmapFormat|oxType|ezierPathElement|ackgroundStyle|rowserDropOperation)|S(tr(ing(CompareOptions|DrawingOptions|EncodingConversionOptions)|eam(Status|Event))|p(eechBoundary|litViewDividerStyle)|e(archPathD(irectory|omainMask)|gmentS(tyle|witchTracking))|liderType|aveOptions)|H(TTPCookieAcceptPolicy|ashTableOptions)|N(otification(SuspensionBehavior|Coalescing)|umberFormatter(RoundingMode|Behavior|Style|PadPosition)|etService(sError|Options))|C(haracterCollection|o(lor(RenderingIntent|SpaceModel|PanelMode)|mp(oundPredicateType|arisonPredicateModifier))|ellStateValue|al(culationError|endarUnit))|T(ypesetterControlCharacterAction|imeZoneNameStyle|e(stComparisonOperation|xt(Block(Dimension|V(erticalAlignment|alueType)|Layer)|TableLayoutAlgorithm|FieldBezelStyle))|ableView(SelectionHighlightStyle|ColumnAutoresizingStyle)|rackingAreaOptions)|I(n(sertionPosition|te(rfaceStyle|ger))|mage(RepLoadStatus|Scaling|CacheMode|FrameStyle|LoadStatus|Alignment))|Ope(nGLPixelFormatAttribute|rationQueuePriority)|Date(Picker(Mode|Style)|Formatter(Behavior|Style))|U(RL(RequestCachePolicy|HandleStatus|C(acheStoragePolicy|redentialPersistence))|Integer)|P(o(stingStyle|int(ingDeviceType|erFunctionsOptions)|pUpArrowPosition)|athStyle|r(int(ing(Orientation|PaginationMode)|erTableStatus|PanelOptions)|opertyList(MutabilityOptions|Format)|edicateOperatorType))|ExpressionType|KeyValue(SetMutationKind|Change)|QTMovieLoopMode|F(indPanel(SubstringMatchType|Action)|o(nt(RenderingMode|FamilyClass)|cusRingPlacement))|W(hoseSubelementIdentifier|ind(ingRule|ow(B(utton|ackingLocation)|SharingType|CollectionBehavior)))|L(ine(MovementDirection|SweepDirection|CapStyle|JoinStyle)|evelIndicatorStyle)|Animation(BlockingMode|Curve))\\\\\\\\b\",\"name\":\"support.type.cocoa.leopard.objcpp\"},\"anonymous_pattern_23\":{\"match\":\"\\\\\\\\bC(I(Sampler|Co(ntext|lor)|Image(Accumulator)?|PlugIn(Registration)?|Vector|Kernel|Filter(Generator|Shape)?)|A(Renderer|MediaTiming(Function)?|BasicAnimation|ScrollLayer|Constraint(LayoutManager)?|T(iledLayer|extLayer|rans(ition|action))|OpenGLLayer|PropertyAnimation|KeyframeAnimation|Layer|A(nimation(Group)?|ction)))\\\\\\\\b\",\"name\":\"support.class.quartz.objcpp\"},\"anonymous_pattern_24\":{\"match\":\"\\\\\\\\bC(G(Float|Point|Size|Rect)|IFormat|AConstraintAttribute)\\\\\\\\b\",\"name\":\"support.type.quartz.objcpp\"},\"anonymous_pattern_25\":{\"match\":\"\\\\\\\\bNS(R(ect(Edge)?|ange)|G(lyph(Relation|LayoutMode)?|radientType)|M(odalSession|a(trixMode|p(Table|Enumerator)))|B(itmapImageFileType|orderType|uttonType|ezelStyle|ackingStoreType|rowserColumnResizingType)|S(cr(oll(er(Part|Arrow)|ArrowPosition)|eenAuxiliaryOpaque)|tringEncoding|ize|ocketNativeHandle|election(Granularity|Direction|Affinity)|wapped(Double|Float)|aveOperationType)|Ha(sh(Table|Enumerator)|ndler(2)?)|C(o(ntrol(Size|Tint)|mp(ositingOperation|arisonResult))|ell(State|Type|ImagePosition|Attribute))|T(hreadPrivate|ypesetterGlyphInfo|i(ckMarkPosition|tlePosition|meInterval)|o(ol(TipTag|bar(SizeMode|DisplayMode))|kenStyle)|IFFCompression|ext(TabType|Alignment)|ab(State|leViewDropOperation|ViewType)|rackingRectTag)|ImageInterpolation|Zone|OpenGL(ContextAuxiliary|PixelFormatAuxiliary)|D(ocumentChangeType|atePickerElementFlags|ra(werState|gOperation))|UsableScrollerParts|P(oint|r(intingPageOrder|ogressIndicator(Style|Th(ickness|readInfo))))|EventType|KeyValueObservingOptions|Fo(nt(SymbolicTraits|TraitMask|Action)|cusRingType)|W(indow(OrderingMode|Depth)|orkspace(IconCreationOptions|LaunchOptions)|ritingDirection)|L(ineBreakMode|ayout(Status|Direction))|A(nimation(Progress|Effect)|ppl(ication(TerminateReply|DelegateReply|PrintReply)|eEventManagerSuspensionID)|ffineTransformStruct|lertStyle))\\\\\\\\b\",\"name\":\"support.type.cocoa.objcpp\"},\"anonymous_pattern_26\":{\"match\":\"\\\\\\\\bNS(NotFound|Ordered(Ascending|Descending|Same))\\\\\\\\b\",\"name\":\"support.constant.cocoa.objcpp\"},\"anonymous_pattern_27\":{\"match\":\"\\\\\\\\bNS(MenuDidBeginTracking|ViewDidUpdateTrackingAreas)?Notification\\\\\\\\b\",\"name\":\"support.constant.notification.cocoa.leopard.objcpp\"},\"anonymous_pattern_28\":{\"match\":\"\\\\\\\\bNS(Menu(Did(RemoveItem|SendAction|ChangeItem|EndTracking|AddItem)|WillSendAction)|S(ystemColorsDidChange|plitView(DidResizeSubviews|WillResizeSubviews))|C(o(nt(extHelpModeDid(Deactivate|Activate)|rolT(intDidChange|extDid(BeginEditing|Change|EndEditing)))|lor(PanelColorDidChange|ListDidChange)|mboBox(Selection(IsChanging|DidChange)|Will(Dismiss|PopUp)))|lassDescriptionNeededForClass)|T(oolbar(DidRemoveItem|WillAddItem)|ext(Storage(DidProcessEditing|WillProcessEditing)|Did(BeginEditing|Change|EndEditing)|View(DidChange(Selection|TypingAttributes)|WillChangeNotifyingTextView))|ableView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)))|ImageRepRegistryDidChange|OutlineView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)|Item(Did(Collapse|Expand)|Will(Collapse|Expand)))|Drawer(Did(Close|Open)|Will(Close|Open))|PopUpButton(CellWillPopUp|WillPopUp)|View(GlobalFrameDidChange|BoundsDidChange|F(ocusDidChange|rameDidChange))|FontSetChanged|W(indow(Did(Resi(ze|gn(Main|Key))|M(iniaturize|ove)|Become(Main|Key)|ChangeScreen(|Profile)|Deminiaturize|Update|E(ndSheet|xpose))|Will(M(iniaturize|ove)|BeginSheet|Close))|orkspace(SessionDid(ResignActive|BecomeActive)|Did(Mount|TerminateApplication|Unmount|PerformFileOperation|Wake|LaunchApplication)|Will(Sleep|Unmount|PowerOff|LaunchApplication)))|A(ntialiasThresholdChanged|ppl(ication(Did(ResignActive|BecomeActive|Hide|ChangeScreenParameters|U(nhide|pdate)|FinishLaunching)|Will(ResignActive|BecomeActive|Hide|Terminate|U(nhide|pdate)|FinishLaunching))|eEventManagerWillProcessFirstEvent)))Notification\\\\\\\\b\",\"name\":\"support.constant.notification.cocoa.objcpp\"},\"anonymous_pattern_29\":{\"match\":\"\\\\\\\\bNS(RuleEditor(RowType(Simple|Compound)|NestingMode(Si(ngle|mple)|Compound|List))|GradientDraws(BeforeStartingLocation|AfterEndingLocation)|M(inusSetExpressionType|a(chPortDeallocate(ReceiveRight|SendRight|None)|pTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality)))|B(oxCustom|undleExecutableArchitecture(X86|I386|PPC(64)?)|etweenPredicateOperatorType|ackgroundStyle(Raised|Dark|L(ight|owered)))|S(tring(DrawingTruncatesLastVisibleLine|EncodingConversion(ExternalRepresentation|AllowLossy))|ubqueryExpressionType|p(e(ech(SentenceBoundary|ImmediateBoundary|WordBoundary)|llingState(GrammarFlag|SpellingFlag))|litViewDividerStyleThi(n|ck))|e(rvice(RequestTimedOutError|M(iscellaneousError|alformedServiceDictionaryError)|InvalidPasteboardDataError|ErrorM(inimum|aximum)|Application(NotFoundError|LaunchFailedError))|gmentStyle(Round(Rect|ed)|SmallSquare|Capsule|Textured(Rounded|Square)|Automatic)))|H(UDWindowMask|ashTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality))|N(oModeColorPanel|etServiceNoAutoRename)|C(hangeRedone|o(ntainsPredicateOperatorType|l(orRenderingIntent(RelativeColorimetric|Saturation|Default|Perceptual|AbsoluteColorimetric)|lectorDisabledOption))|ellHit(None|ContentArea|TrackableArea|EditableTextArea))|T(imeZoneNameStyle(S(hort(Standard|DaylightSaving)|tandard)|DaylightSaving)|extFieldDatePickerStyle|ableViewSelectionHighlightStyle(Regular|SourceList)|racking(Mouse(Moved|EnteredAndExited)|CursorUpdate|InVisibleRect|EnabledDuringMouseDrag|A(ssumeInside|ctive(In(KeyWindow|ActiveApp)|WhenFirstResponder|Always))))|I(n(tersectSetExpressionType|dexedColorSpaceModel)|mageScale(None|Proportionally(Down|UpOrDown)|AxesIndependently))|Ope(nGLPFAAllowOfflineRenderers|rationQueue(DefaultMaxConcurrentOperationCount|Priority(High|Normal|Very(High|Low)|Low)))|D(iacriticInsensitiveSearch|ownloadsDirectory)|U(nionSetExpressionType|TF(16(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)|32(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)))|P(ointerFunctions(Ma(chVirtualMemory|llocMemory)|Str(ongMemory|uctPersonality)|C(StringPersonality|opyIn)|IntegerPersonality|ZeroingWeakMemory|O(paque(Memory|Personality)|bjectP(ointerPersonality|ersonality)))|at(hStyle(Standard|NavigationBar|PopUp)|ternColorSpaceModel)|rintPanelShows(Scaling|Copies|Orientation|P(a(perSize|ge(Range|SetupAccessory))|review)))|Executable(RuntimeMismatchError|NotLoadableError|ErrorM(inimum|aximum)|L(inkError|oadError)|ArchitectureMismatchError)|KeyValueObservingOption(Initial|Prior)|F(i(ndPanelSubstringMatchType(StartsWith|Contains|EndsWith|FullWord)|leRead(TooLargeError|UnknownStringEncodingError))|orcedOrderingSearch)|Wi(ndow(BackingLocation(MainMemory|Default|VideoMemory)|Sharing(Read(Only|Write)|None)|CollectionBehavior(MoveToActiveSpace|CanJoinAllSpaces|Default))|dthInsensitiveSearch)|AggregateExpressionType)\\\\\\\\b\",\"name\":\"support.constant.cocoa.leopard.objcpp\"},\"anonymous_pattern_3\":{\"begin\":\"@\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objcpp\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objcpp\"}},\"name\":\"string.quoted.double.objcpp\",\"patterns\":[{\"include\":\"#string_escaped_char\"},{\"match\":\"%(\\\\\\\\d+\\\\\\\\$)?[#0\\\\\\\\- +']*((-?\\\\\\\\d+)|\\\\\\\\*(-?\\\\\\\\d+\\\\\\\\$)?)?(\\\\\\\\.((-?\\\\\\\\d+)|\\\\\\\\*(-?\\\\\\\\d+\\\\\\\\$)?)?)?[@]\",\"name\":\"constant.other.placeholder.objcpp\"},{\"include\":\"#string_placeholder\"}]},\"anonymous_pattern_30\":{\"match\":\"\\\\\\\\bNS(R(GB(ModeColorPanel|ColorSpaceModel)|ight(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey)|ound(RectBezelStyle|Bankers|ed(BezelStyle|TokenStyle|DisclosureBezelStyle)|Down|Up|Plain|Line(CapStyle|JoinStyle))|un(StoppedResponse|ContinuesResponse|AbortedResponse)|e(s(izableWindowMask|et(CursorRectsRunLoopOrdering|FunctionKey))|ce(ssedBezelStyle|iver(sCantHandleCommandScriptError|EvaluationScriptError))|turnTextMovement|doFunctionKey|quiredArgumentsMissingScriptError|l(evancyLevelIndicatorStyle|ative(Before|After))|gular(SquareBezelStyle|ControlSize)|moveTraitFontAction)|a(n(domSubelement|geDateMode)|tingLevelIndicatorStyle|dio(ModeMatrix|Button)))|G(IFFileType|lyph(Below|Inscribe(B(elow|ase)|Over(strike|Below)|Above)|Layout(WithPrevious|A(tAPoint|gainstAPoint))|A(ttribute(BidiLevel|Soft|Inscribe|Elastic)|bove))|r(ooveBorder|eaterThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|a(y(ModeColorPanel|ColorSpaceModel)|dient(None|Con(cave(Strong|Weak)|vex(Strong|Weak)))|phiteControlTint)))|XML(N(o(tationDeclarationKind|de(CompactEmptyElement|IsCDATA|OptionsNone|Use(SingleQuotes|DoubleQuotes)|Pre(serve(NamespaceOrder|C(haracterReferences|DATA)|DTD|Prefixes|E(ntities|mptyElements)|Quotes|Whitespace|A(ttributeOrder|ll))|ttyPrint)|ExpandEmptyElement))|amespaceKind)|CommentKind|TextKind|InvalidKind|D(ocument(X(MLKind|HTMLKind|Include)|HTMLKind|T(idy(XML|HTML)|extKind)|IncludeContentTypeDeclaration|Validate|Kind)|TDKind)|P(arser(GTRequiredError|XMLDeclNot(StartedError|FinishedError)|Mi(splaced(XMLDeclarationError|CDATAEndStringError)|xedContentDeclNot(StartedError|FinishedError))|S(t(andaloneValueError|ringNot(StartedError|ClosedError))|paceRequiredError|eparatorRequiredError)|N(MTOKENRequiredError|o(t(ationNot(StartedError|FinishedError)|WellBalancedError)|DTDError)|amespaceDeclarationError|AMERequiredError)|C(haracterRef(In(DTDError|PrologError|EpilogError)|AtEOFError)|o(nditionalSectionNot(StartedError|FinishedError)|mment(NotFinishedError|ContainsDoubleHyphenError))|DATANotFinishedError)|TagNameMismatchError|In(ternalError|valid(HexCharacterRefError|C(haracter(RefError|InEntityError|Error)|onditionalSectionError)|DecimalCharacterRefError|URIError|Encoding(NameError|Error)))|OutOfMemoryError|D(ocumentStartError|elegateAbortedParseError|OCTYPEDeclNotFinishedError)|U(RI(RequiredError|FragmentError)|n(declaredEntityError|parsedEntityError|knownEncodingError|finishedTagError))|P(CDATARequiredError|ublicIdentifierRequiredError|arsedEntityRef(MissingSemiError|NoNameError|In(Internal(SubsetError|Error)|PrologError|EpilogError)|AtEOFError)|r(ocessingInstructionNot(StartedError|FinishedError)|ematureDocumentEndError))|E(n(codingNotSupportedError|tity(Ref(In(DTDError|PrologError|EpilogError)|erence(MissingSemiError|WithoutNameError)|LoopError|AtEOFError)|BoundaryError|Not(StartedError|FinishedError)|Is(ParameterError|ExternalError)|ValueRequiredError))|qualExpectedError|lementContentDeclNot(StartedError|FinishedError)|xt(ernalS(tandaloneEntityError|ubsetNotFinishedError)|raContentError)|mptyDocumentError)|L(iteralNot(StartedError|FinishedError)|T(RequiredError|SlashRequiredError)|essThanSymbolInAttributeError)|Attribute(RedefinedError|HasNoValueError|Not(StartedError|FinishedError)|ListNot(StartedError|FinishedError)))|rocessingInstructionKind)|E(ntity(GeneralKind|DeclarationKind|UnparsedKind|P(ar(sedKind|ameterKind)|redefined))|lement(Declaration(MixedKind|UndefinedKind|E(lementKind|mptyKind)|Kind|AnyKind)|Kind))|Attribute(N(MToken(sKind|Kind)|otationKind)|CDATAKind|ID(Ref(sKind|Kind)|Kind)|DeclarationKind|En(tit(yKind|iesKind)|umerationKind)|Kind))|M(i(n(XEdge|iaturizableWindowMask|YEdge|uteCalendarUnit)|terLineJoinStyle|ddleSubelement|xedState)|o(nthCalendarUnit|deSwitchFunctionKey|use(Moved(Mask)?|E(ntered(Mask)?|ventSubtype|xited(Mask)?))|veToBezierPathElement|mentary(ChangeButton|Push(Button|InButton)|Light(Button)?))|enuFunctionKey|a(c(intoshInterfaceStyle|OSRomanStringEncoding)|tchesPredicateOperatorType|ppedRead|x(XEdge|YEdge))|ACHOperatingSystem)|B(MPFileType|o(ttomTabsBezelBorder|ldFontMask|rderlessWindowMask|x(Se(condary|parator)|OldStyle|Primary))|uttLineCapStyle|e(zelBorder|velLineJoinStyle|low(Bottom|Top)|gin(sWith(Comparison|PredicateOperatorType)|FunctionKey))|lueControlTint|ack(spaceCharacter|tabTextMovement|ingStore(Retained|Buffered|Nonretained)|TabCharacter|wardsSearch|groundTab)|r(owser(NoColumnResizing|UserColumnResizing|AutoColumnResizing)|eakFunctionKey))|S(h(ift(JISStringEncoding|KeyMask)|ow(ControlGlyphs|InvisibleGlyphs)|adowlessSquareBezelStyle)|y(s(ReqFunctionKey|tem(D(omainMask|efined(Mask)?)|FunctionKey))|mbolStringEncoding)|c(a(nnedOption|le(None|ToFit|Proportionally))|r(oll(er(NoPart|Increment(Page|Line|Arrow)|Decrement(Page|Line|Arrow)|Knob(Slot)?|Arrows(M(inEnd|axEnd)|None|DefaultSetting))|Wheel(Mask)?|LockFunctionKey)|eenChangedEventType))|t(opFunctionKey|r(ingDrawing(OneShot|DisableScreenFontSubstitution|Uses(DeviceMetrics|FontLeading|LineFragmentOrigin))|eam(Status(Reading|NotOpen|Closed|Open(ing)?|Error|Writing|AtEnd)|Event(Has(BytesAvailable|SpaceAvailable)|None|OpenCompleted|E(ndEncountered|rrorOccurred)))))|i(ngle(DateMode|UnderlineStyle)|ze(DownFontAction|UpFontAction))|olarisOperatingSystem|unOSOperatingSystem|pecialPageOrder|e(condCalendarUnit|lect(By(Character|Paragraph|Word)|i(ng(Next|Previous)|onAffinity(Downstream|Upstream))|edTab|FunctionKey)|gmentSwitchTracking(Momentary|Select(One|Any)))|quareLineCapStyle|witchButton|ave(ToOperation|Op(tions(Yes|No|Ask)|eration)|AsOperation)|mall(SquareBezelStyle|C(ontrolSize|apsFontMask)|IconButtonBezelStyle))|H(ighlightModeMatrix|SBModeColorPanel|o(ur(Minute(SecondDatePickerElementFlag|DatePickerElementFlag)|CalendarUnit)|rizontalRuler|meFunctionKey)|TTPCookieAcceptPolicy(Never|OnlyFromMainDocumentDomain|Always)|e(lp(ButtonBezelStyle|KeyMask|FunctionKey)|avierFontAction)|PUXOperatingSystem)|Year(MonthDa(yDatePickerElementFlag|tePickerElementFlag)|CalendarUnit)|N(o(n(StandardCharacterSetFontMask|ZeroWindingRule|activatingPanelMask|LossyASCIIStringEncoding)|Border|t(ification(SuspensionBehavior(Hold|Coalesce|D(eliverImmediately|rop))|NoCoalescing|CoalescingOn(Sender|Name)|DeliverImmediately|PostToAllSessions)|PredicateType|EqualToPredicateOperatorType)|S(cr(iptError|ollerParts)|ubelement|pecifierError)|CellMask|T(itle|opLevelContainersSpecifierError|abs(BezelBorder|NoBorder|LineBorder))|I(nterfaceStyle|mage)|UnderlineStyle|FontChangeAction)|u(ll(Glyph|CellType)|m(eric(Search|PadKeyMask)|berFormatter(Round(Half(Down|Up|Even)|Ceiling|Down|Up|Floor)|Behavior(10|Default)|S(cientificStyle|pellOutStyle)|NoStyle|CurrencyStyle|DecimalStyle|P(ercentStyle|ad(Before(Suffix|Prefix)|After(Suffix|Prefix))))))|e(t(Services(BadArgumentError|NotFoundError|C(ollisionError|ancelledError)|TimeoutError|InvalidError|UnknownError|ActivityInProgress)|workDomainMask)|wlineCharacter|xt(StepInterfaceStyle|FunctionKey))|EXTSTEPStringEncoding|a(t(iveShortGlyphPacking|uralTextAlignment)|rrowFontMask))|C(hange(ReadOtherContents|GrayCell(Mask)?|BackgroundCell(Mask)?|Cleared|Done|Undone|Autosaved)|MYK(ModeColorPanel|ColorSpaceModel)|ircular(BezelStyle|Slider)|o(n(stantValueExpressionType|t(inuousCapacityLevelIndicatorStyle|entsCellMask|ain(sComparison|erSpecifierError)|rol(Glyph|KeyMask))|densedFontMask)|lor(Panel(RGBModeMask|GrayModeMask|HSBModeMask|C(MYKModeMask|olorListModeMask|ustomPaletteModeMask|rayonModeMask)|WheelModeMask|AllModesMask)|ListModeColorPanel)|reServiceDirectory|m(p(osite(XOR|Source(In|O(ut|ver)|Atop)|Highlight|C(opy|lear)|Destination(In|O(ut|ver)|Atop)|Plus(Darker|Lighter))|ressedFontMask)|mandKeyMask))|u(stom(SelectorPredicateOperatorType|PaletteModeColorPanel)|r(sor(Update(Mask)?|PointingDevice)|veToBezierPathElement))|e(nterT(extAlignment|abStopType)|ll(State|H(ighlighted|as(Image(Horizontal|OnLeftOrBottom)|OverlappingImage))|ChangesContents|Is(Bordered|InsetButton)|Disabled|Editable|LightsBy(Gray|Background|Contents)|AllowsMixedState))|l(ipPagination|o(s(ePathBezierPathElement|ableWindowMask)|ckAndCalendarDatePickerStyle)|ear(ControlTint|DisplayFunctionKey|LineFunctionKey))|a(seInsensitive(Search|PredicateOption)|n(notCreateScriptCommandError|cel(Button|TextMovement))|chesDirectory|lculation(NoError|Overflow|DivideByZero|Underflow|LossOfPrecision)|rriageReturnCharacter)|r(itical(Request|AlertStyle)|ayonModeColorPanel))|T(hick(SquareBezelStyle|erSquareBezelStyle)|ypesetter(Behavior|HorizontalTabAction|ContainerBreakAction|ZeroAdvancementAction|OriginalBehavior|ParagraphBreakAction|WhitespaceAction|L(ineBreakAction|atestBehavior))|i(ckMark(Right|Below|Left|Above)|tledWindowMask|meZoneDatePickerElementFlag)|o(olbarItemVisibilityPriority(Standard|High|User|Low)|pTabsBezelBorder|ggleButton)|IFF(Compression(N(one|EXT)|CCITTFAX(3|4)|OldJPEG|JPEG|PackBits|LZW)|FileType)|e(rminate(Now|Cancel|Later)|xt(Read(InapplicableDocumentTypeError|WriteErrorM(inimum|aximum))|Block(M(i(nimum(Height|Width)|ddleAlignment)|a(rgin|ximum(Height|Width)))|B(o(ttomAlignment|rder)|aselineAlignment)|Height|TopAlignment|P(ercentageValueType|adding)|Width|AbsoluteValueType)|StorageEdited(Characters|Attributes)|CellType|ured(RoundedBezelStyle|BackgroundWindowMask|SquareBezelStyle)|Table(FixedLayoutAlgorithm|AutomaticLayoutAlgorithm)|Field(RoundedBezel|SquareBezel|AndStepperDatePickerStyle)|WriteInapplicableDocumentTypeError|ListPrependEnclosingMarker))|woByteGlyphPacking|ab(Character|TextMovement|le(tP(oint(Mask|EventSubtype)?|roximity(Mask|EventSubtype)?)|Column(NoResizing|UserResizingMask|AutoresizingMask)|View(ReverseSequentialColumnAutoresizingStyle|GridNone|S(olid(HorizontalGridLineMask|VerticalGridLineMask)|equentialColumnAutoresizingStyle)|NoColumnAutoresizing|UniformColumnAutoresizingStyle|FirstColumnOnlyAutoresizingStyle|LastColumnOnlyAutoresizingStyle)))|rackModeMatrix)|I(n(sert(CharFunctionKey|FunctionKey|LineFunctionKey)|t(Type|ernalS(criptError|pecifierError))|dexSubelement|validIndexSpecifierError|formational(Request|AlertStyle)|PredicateOperatorType)|talicFontMask|SO(2022JPStringEncoding|Latin(1StringEncoding|2StringEncoding))|dentityMappingCharacterCollection|llegalTextMovement|mage(R(ight|ep(MatchesDevice|LoadStatus(ReadingHeader|Completed|InvalidData|Un(expectedEOF|knownType)|WillNeedAllData)))|Below|C(ellType|ache(BySize|Never|Default|Always))|Interpolation(High|None|Default|Low)|O(nly|verlaps)|Frame(Gr(oove|ayBezel)|Button|None|Photo)|L(oadStatus(ReadError|C(ompleted|ancelled)|InvalidData|UnexpectedEOF)|eft)|A(lign(Right|Bottom(Right|Left)?|Center|Top(Right|Left)?|Left)|bove)))|O(n(State|eByteGlyphPacking|OffButton|lyScrollerArrows)|ther(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|TextMovement)|SF1OperatingSystem|pe(n(GL(GO(Re(setLibrary|tainRenderers)|ClearFormatCache|FormatCacheSize)|PFA(R(obust|endererID)|M(inimumPolicy|ulti(sample|Screen)|PSafe|aximumPolicy)|BackingStore|S(creenMask|te(ncilSize|reo)|ingleRenderer|upersample|ample(s|Buffers|Alpha))|NoRecovery|C(o(lor(Size|Float)|mpliant)|losestPolicy)|OffScreen|D(oubleBuffer|epthSize)|PixelBuffer|VirtualScreenCount|FullScreen|Window|A(cc(umSize|elerated)|ux(Buffers|DepthStencil)|l(phaSize|lRenderers))))|StepUnicodeReservedBase)|rationNotSupportedForKeyS(criptError|pecifierError))|ffState|KButton|rPredicateType|bjC(B(itfield|oolType)|S(hortType|tr(ingType|uctType)|electorType)|NoType|CharType|ObjectType|DoubleType|UnionType|PointerType|VoidType|FloatType|Long(Type|longType)|ArrayType))|D(i(s(c(losureBezelStyle|reteCapacityLevelIndicatorStyle)|playWindowRunLoopOrdering)|acriticInsensitivePredicateOption|rect(Selection|PredicateModifier))|o(c(ModalWindowMask|ument(Directory|ationDirectory))|ubleType|wn(TextMovement|ArrowFunctionKey))|e(s(cendingPageOrder|ktopDirectory)|cimalTabStopType|v(ice(NColorSpaceModel|IndependentModifierFlagsMask)|eloper(Directory|ApplicationDirectory))|fault(ControlTint|TokenStyle)|lete(Char(acter|FunctionKey)|FunctionKey|LineFunctionKey)|moApplicationDirectory)|a(yCalendarUnit|teFormatter(MediumStyle|Behavior(10|Default)|ShortStyle|NoStyle|FullStyle|LongStyle))|ra(wer(Clos(ingState|edState)|Open(ingState|State))|gOperation(Generic|Move|None|Copy|Delete|Private|Every|Link|All)))|U(ser(CancelledError|D(irectory|omainMask)|FunctionKey)|RL(Handle(NotLoaded|Load(Succeeded|InProgress|Failed))|CredentialPersistence(None|Permanent|ForSession))|n(scaledWindowMask|cachedRead|i(codeStringEncoding|talicFontMask|fiedTitleAndToolbarWindowMask)|d(o(CloseGroupingRunLoopOrdering|FunctionKey)|e(finedDateComponent|rline(Style(Single|None|Thick|Double)|Pattern(Solid|D(ot|ash(Dot(Dot)?)?)))))|known(ColorSpaceModel|P(ointingDevice|ageOrder)|KeyS(criptError|pecifierError))|boldFontMask)|tilityWindowMask|TF8StringEncoding|p(dateWindowsRunLoopOrdering|TextMovement|ArrowFunctionKey))|J(ustifiedTextAlignment|PEG(2000FileType|FileType)|apaneseEUC(GlyphPacking|StringEncoding))|P(o(s(t(Now|erFontMask|WhenIdle|ASAP)|iti(on(Replace|Be(fore|ginning)|End|After)|ve(IntType|DoubleType|FloatType)))|pUp(NoArrow|ArrowAt(Bottom|Center))|werOffEventType|rtraitOrientation)|NGFileType|ush(InCell(Mask)?|OnPushOffButton)|e(n(TipMask|UpperSideMask|PointingDevice|LowerSideMask)|riodic(Mask)?)|P(S(caleField|tatus(Title|Field)|aveButton)|N(ote(Title|Field)|ame(Title|Field))|CopiesField|TitleField|ImageButton|OptionsButton|P(a(perFeedButton|ge(Range(To|From)|ChoiceMatrix))|reviewButton)|LayoutButton)|lainTextTokenStyle|a(useFunctionKey|ragraphSeparatorCharacter|ge(DownFunctionKey|UpFunctionKey))|r(int(ing(ReplyLater|Success|Cancelled|Failure)|ScreenFunctionKey|erTable(NotFound|OK|Error)|FunctionKey)|o(p(ertyList(XMLFormat|MutableContainers(AndLeaves)?|BinaryFormat|Immutable|OpenStepFormat)|rietaryStringEncoding)|gressIndicator(BarStyle|SpinningStyle|Preferred(SmallThickness|Thickness|LargeThickness|AquaThickness)))|e(ssedTab|vFunctionKey))|L(HeightForm|CancelButton|TitleField|ImageButton|O(KButton|rientationMatrix)|UnitsButton|PaperNameButton|WidthForm))|E(n(terCharacter|d(sWith(Comparison|PredicateOperatorType)|FunctionKey))|v(e(nOddWindingRule|rySubelement)|aluatedObjectExpressionType)|qualTo(Comparison|PredicateOperatorType)|ra(serPointingDevice|CalendarUnit|DatePickerElementFlag)|x(clude(10|QuickDrawElementsIconCreationOption)|pandedFontMask|ecuteFunctionKey))|V(i(ew(M(in(XMargin|YMargin)|ax(XMargin|YMargin))|HeightSizable|NotSizable|WidthSizable)|aPanelFontAction)|erticalRuler|a(lidationErrorM(inimum|aximum)|riableExpressionType))|Key(SpecifierEvaluationScriptError|Down(Mask)?|Up(Mask)?|PathExpressionType|Value(MinusSetMutation|SetSetMutation|Change(Re(placement|moval)|Setting|Insertion)|IntersectSetMutation|ObservingOption(New|Old)|UnionSetMutation|ValidationError))|QTMovie(NormalPlayback|Looping(BackAndForthPlayback|Playback))|F(1(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|7FunctionKey|i(nd(PanelAction(Replace(A(ndFind|ll(InSelection)?))?|S(howFindPanel|e(tFindString|lectAll(InSelection)?))|Next|Previous)|FunctionKey)|tPagination|le(Read(No(SuchFileError|PermissionError)|CorruptFileError|In(validFileNameError|applicableStringEncodingError)|Un(supportedSchemeError|knownError))|HandlingPanel(CancelButton|OKButton)|NoSuchFileError|ErrorM(inimum|aximum)|Write(NoPermissionError|In(validFileNameError|applicableStringEncodingError)|OutOfSpaceError|Un(supportedSchemeError|knownError))|LockingError)|xedPitchFontMask)|2(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|o(nt(Mo(noSpaceTrait|dernSerifsClass)|BoldTrait|S(ymbolicClass|criptsClass|labSerifsClass|ansSerifClass)|C(o(ndensedTrait|llectionApplicationOnlyMask)|larendonSerifsClass)|TransitionalSerifsClass|I(ntegerAdvancementsRenderingMode|talicTrait)|O(ldStyleSerifsClass|rnamentalsClass)|DefaultRenderingMode|U(nknownClass|IOptimizedTrait)|Panel(S(hadowEffectModeMask|t(andardModesMask|rikethroughEffectModeMask)|izeModeMask)|CollectionModeMask|TextColorEffectModeMask|DocumentColorEffectModeMask|UnderlineEffectModeMask|FaceModeMask|All(ModesMask|EffectsModeMask))|ExpandedTrait|VerticalTrait|F(amilyClassMask|reeformSerifsClass)|Antialiased(RenderingMode|IntegerAdvancementsRenderingMode))|cusRing(Below|Type(None|Default|Exterior)|Only|Above)|urByteGlyphPacking|rm(attingError(M(inimum|aximum))?|FeedCharacter))|8FunctionKey|unction(ExpressionType|KeyMask)|3(1FunctionKey|2FunctionKey|3FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey)|9FunctionKey|4FunctionKey|P(RevertButton|S(ize(Title|Field)|etButton)|CurrentField|Preview(Button|Field))|l(oat(ingPointSamplesBitmapFormat|Type)|agsChanged(Mask)?)|axButton|5FunctionKey|6FunctionKey)|W(heelModeColorPanel|indow(s(NTOperatingSystem|CP125(1StringEncoding|2StringEncoding|3StringEncoding|4StringEncoding|0StringEncoding)|95(InterfaceStyle|OperatingSystem))|M(iniaturizeButton|ovedEventType)|Below|CloseButton|ToolbarButton|ZoomButton|Out|DocumentIconButton|ExposedEventType|Above)|orkspaceLaunch(NewInstance|InhibitingBackgroundOnly|Default|PreferringClassic|WithoutA(ctivation|ddingToRecents)|A(sync|nd(Hide(Others)?|Print)|llowingClassicStartup))|eek(day(CalendarUnit|OrdinalCalendarUnit)|CalendarUnit)|a(ntsBidiLevels|rningAlertStyle)|r(itingDirection(RightToLeft|Natural|LeftToRight)|apCalendarComponents))|L(i(stModeMatrix|ne(Moves(Right|Down|Up|Left)|B(order|reakBy(C(harWrapping|lipping)|Truncating(Middle|Head|Tail)|WordWrapping))|S(eparatorCharacter|weep(Right|Down|Up|Left))|ToBezierPathElement|DoesntMove|arSlider)|teralSearch|kePredicateOperatorType|ghterFontAction|braryDirectory)|ocalDomainMask|e(ssThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|ft(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey))|a(yout(RightToLeft|NotDone|CantFit|OutOfGlyphs|Done|LeftToRight)|ndscapeOrientation)|ABColorSpaceModel)|A(sc(iiWithDoubleByteEUCGlyphPacking|endingPageOrder)|n(y(Type|PredicateModifier|EventMask)|choredSearch|imation(Blocking|Nonblocking(Threaded)?|E(ffect(DisappearingItemDefault|Poof)|ase(In(Out)?|Out))|Linear)|dPredicateType)|t(Bottom|tachmentCharacter|omicWrite|Top)|SCIIStringEncoding|d(obe(GB1CharacterCollection|CNS1CharacterCollection|Japan(1CharacterCollection|2CharacterCollection)|Korea1CharacterCollection)|dTraitFontAction|minApplicationDirectory)|uto(saveOperation|Pagination)|pp(lication(SupportDirectory|D(irectory|e(fined(Mask)?|legateReply(Success|Cancel|Failure)|activatedEventType))|ActivatedEventType)|KitDefined(Mask)?)|l(ternateKeyMask|pha(ShiftKeyMask|NonpremultipliedBitmapFormat|FirstBitmapFormat)|ert(SecondButtonReturn|ThirdButtonReturn|OtherReturn|DefaultReturn|ErrorReturn|FirstButtonReturn|AlternateReturn)|l(ScrollerParts|DomainsMask|PredicateModifier|LibrariesDirectory|ApplicationsDirectory))|rgument(sWrongScriptError|EvaluationScriptError)|bove(Bottom|Top)|WTEventType))\\\\\\\\b\",\"name\":\"support.constant.cocoa.objcpp\"},\"anonymous_pattern_4\":{\"begin\":\"\\\\\\\\b(id)\\\\\\\\s*(?=<)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.objcpp\"}},\"end\":\"(?<=>)\",\"name\":\"meta.id-with-protocol.objcpp\",\"patterns\":[{\"include\":\"#protocol_list\"}]},\"anonymous_pattern_5\":{\"match\":\"\\\\\\\\b(NS_DURING|NS_HANDLER|NS_ENDHANDLER)\\\\\\\\b\",\"name\":\"keyword.control.macro.objcpp\"},\"anonymous_pattern_7\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.keyword.objcpp\"}},\"match\":\"(@)(try|catch|finally|throw)\\\\\\\\b\",\"name\":\"keyword.control.exception.objcpp\"},\"anonymous_pattern_8\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.keyword.objcpp\"}},\"match\":\"(@)(synchronized)\\\\\\\\b\",\"name\":\"keyword.control.synchronize.objcpp\"},\"anonymous_pattern_9\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.keyword.objcpp\"}},\"match\":\"(@)(required|optional)\\\\\\\\b\",\"name\":\"keyword.control.protocol-specification.objcpp\"},\"apple_foundation_functional_macros\":{\"begin\":\"(\\\\\\\\b(?:API_AVAILABLE|API_DEPRECATED|API_UNAVAILABLE|NS_AVAILABLE|NS_AVAILABLE_MAC|NS_AVAILABLE_IOS|NS_DEPRECATED|NS_DEPRECATED_MAC|NS_DEPRECATED_IOS|NS_SWIFT_NAME))(?:(?:\\\\\\\\s)+)?(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.preprocessor.apple-foundation.objcpp\"},\"2\":{\"name\":\"punctuation.section.macro.arguments.begin.bracket.round.apple-foundation.objcpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.macro.arguments.end.bracket.round.apple-foundation.objcpp\"}},\"name\":\"meta.preprocessor.macro.callable.apple-foundation.objcpp\",\"patterns\":[{\"include\":\"#c_lang\"}]},\"bracketed_content\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.scope.begin.objcpp\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.scope.end.objcpp\"}},\"name\":\"meta.bracketed.objcpp\",\"patterns\":[{\"begin\":\"(?=predicateWithFormat:)(?<=NSPredicate )(predicateWithFormat:)\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.any-method.objcpp\"},\"2\":{\"name\":\"punctuation.separator.arguments.objcpp\"}},\"end\":\"(?=\\\\\\\\])\",\"name\":\"meta.function-call.predicate.objcpp\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.arguments.objcpp\"}},\"match\":\"\\\\\\\\bargument(Array|s)(:)\",\"name\":\"support.function.any-method.name-of-parameter.objcpp\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.arguments.objcpp\"}},\"match\":\"\\\\\\\\b\\\\\\\\w+(:)\",\"name\":\"invalid.illegal.unknown-method.objcpp\"},{\"begin\":\"@\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objcpp\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objcpp\"}},\"name\":\"string.quoted.double.objcpp\",\"patterns\":[{\"match\":\"\\\\\\\\b(AND|OR|NOT|IN)\\\\\\\\b\",\"name\":\"keyword.operator.logical.predicate.cocoa.objcpp\"},{\"match\":\"\\\\\\\\b(ALL|ANY|SOME|NONE)\\\\\\\\b\",\"name\":\"constant.language.predicate.cocoa.objcpp\"},{\"match\":\"\\\\\\\\b(NULL|NIL|SELF|TRUE|YES|FALSE|NO|FIRST|LAST|SIZE)\\\\\\\\b\",\"name\":\"constant.language.predicate.cocoa.objcpp\"},{\"match\":\"\\\\\\\\b(MATCHES|CONTAINS|BEGINSWITH|ENDSWITH|BETWEEN)\\\\\\\\b\",\"name\":\"keyword.operator.comparison.predicate.cocoa.objcpp\"},{\"match\":\"\\\\\\\\bC(ASEINSENSITIVE|I)\\\\\\\\b\",\"name\":\"keyword.other.modifier.predicate.cocoa.objcpp\"},{\"match\":\"\\\\\\\\b(ANYKEY|SUBQUERY|CAST|TRUEPREDICATE|FALSEPREDICATE)\\\\\\\\b\",\"name\":\"keyword.other.predicate.cocoa.objcpp\"},{\"match\":\"\\\\\\\\\\\\\\\\(\\\\\\\\\\\\\\\\|[abefnrtv'\\\\\"?]|[0-3]\\\\\\\\d{,2}|[4-7]\\\\\\\\d?|x[a-zA-Z0-9]+)\",\"name\":\"constant.character.escape.objcpp\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"invalid.illegal.unknown-escape.objcpp\"}]},{\"include\":\"#special_variables\"},{\"include\":\"#c_functions\"},{\"include\":\"$base\"}]},{\"begin\":\"(?=\\\\\\\\w)(?<=[\\\\\\\\w\\\\\\\\])\\\\\"] )(\\\\\\\\w+(?:(:)|(?=\\\\\\\\])))\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.any-method.objcpp\"},\"2\":{\"name\":\"punctuation.separator.arguments.objcpp\"}},\"end\":\"(?=\\\\\\\\])\",\"name\":\"meta.function-call.objcpp\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.arguments.objcpp\"}},\"match\":\"\\\\\\\\b\\\\\\\\w+(:)\",\"name\":\"support.function.any-method.name-of-parameter.objcpp\"},{\"include\":\"#special_variables\"},{\"include\":\"#c_functions\"},{\"include\":\"$base\"}]},{\"include\":\"#special_variables\"},{\"include\":\"#c_functions\"},{\"include\":\"$self\"}]},\"c_functions\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.whitespace.support.function.leading.objcpp\"},\"2\":{\"name\":\"support.function.C99.objcpp\"}},\"match\":\"(\\\\\\\\s*)\\\\\\\\b(hypot(f|l)?|s(scanf|ystem|nprintf|ca(nf|lb(n(f|l)?|ln(f|l)?))|i(n(h(f|l)?|f|l)?|gn(al|bit))|tr(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(jmp|vbuf|locale|buf)|qrt(f|l)?|w(scanf|printf)|rand)|n(e(arbyint(f|l)?|xt(toward(f|l)?|after(f|l)?))|an(f|l)?)|c(s(in(h(f|l)?|f|l)?|qrt(f|l)?)|cos(h(f)?|f|l)?|imag(f|l)?|t(ime|an(h(f|l)?|f|l)?)|o(s(h(f|l)?|f|l)?|nj(f|l)?|pysign(f|l)?)|p(ow(f|l)?|roj(f|l)?)|e(il(f|l)?|xp(f|l)?)|l(o(ck|g(f|l)?)|earerr)|a(sin(h(f|l)?|f|l)?|cos(h(f|l)?|f|l)?|tan(h(f|l)?|f|l)?|lloc|rg(f|l)?|bs(f|l)?)|real(f|l)?|brt(f|l)?)|t(ime|o(upper|lower)|an(h(f|l)?|f|l)?|runc(f|l)?|gamma(f|l)?|mp(nam|file))|i(s(space|n(ormal|an)|cntrl|inf|digit|u(nordered|pper)|p(unct|rint)|finite|w(space|c(ntrl|type)|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit|blank)|l(ower|ess(equal|greater)?)|al(num|pha)|gr(eater(equal)?|aph)|xdigit|blank)|logb(f|l)?|max(div|abs))|di(v|fftime)|_Exit|unget(c|wc)|p(ow(f|l)?|ut(s|c(har)?|wc(har)?)|error|rintf)|e(rf(c(f|l)?|f|l)?|x(it|p(2(f|l)?|f|l|m1(f|l)?)?))|v(s(scanf|nprintf|canf|printf|w(scanf|printf))|printf|f(scanf|printf|w(scanf|printf))|w(scanf|printf)|a_(start|copy|end|arg))|qsort|f(s(canf|e(tpos|ek))|close|tell|open|dim(f|l)?|p(classify|ut(s|c|w(s|c))|rintf)|e(holdexcept|set(e(nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(aiseexcept|ror)|get(e(nv|xceptflag)|round))|flush|w(scanf|ide|printf|rite)|loor(f|l)?|abs(f|l)?|get(s|c|pos|w(s|c))|re(open|e|ad|xp(f|l)?)|m(in(f|l)?|od(f|l)?|a(f|l|x(f|l)?)?))|l(d(iv|exp(f|l)?)|o(ngjmp|cal(time|econv)|g(1(p(f|l)?|0(f|l)?)|2(f|l)?|f|l|b(f|l)?)?)|abs|l(div|abs|r(int(f|l)?|ound(f|l)?))|r(int(f|l)?|ound(f|l)?)|gamma(f|l)?)|w(scanf|c(s(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?|mbs)|pbrk|ftime|len|r(chr|tombs)|xfrm)|to(b|mb)|rtomb)|printf|mem(set|c(hr|py|mp)|move))|a(s(sert|ctime|in(h(f|l)?|f|l)?)|cos(h(f|l)?|f|l)?|t(o(i|f|l(l)?)|exit|an(h(f|l)?|2(f|l)?|f|l)?)|b(s|ort))|g(et(s|c(har)?|env|wc(har)?)|mtime)|r(int(f|l)?|ound(f|l)?|e(name|alloc|wind|m(ove|quo(f|l)?|ainder(f|l)?))|a(nd|ise))|b(search|towc)|m(odf(f|l)?|em(set|c(hr|py|mp)|move)|ktime|alloc|b(s(init|towcs|rtowcs)|towc|len|r(towc|len))))\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"punctuation.whitespace.function-call.leading.objcpp\"},\"2\":{\"name\":\"support.function.any-method.objcpp\"},\"3\":{\"name\":\"punctuation.definition.parameters.objcpp\"}},\"match\":\"(?:(?=\\\\\\\\s)(?:(?<=else|new|return)|(?<!\\\\\\\\w))(\\\\\\\\s+))?(\\\\\\\\b(?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\\\\\\\s*\\\\\\\\()(?:(?!NS)[A-Za-z_][A-Za-z0-9_]*+\\\\\\\\b|::)++)\\\\\\\\s*(\\\\\\\\()\",\"name\":\"meta.function-call.objcpp\"}]},\"c_lang\":{\"patterns\":[{\"include\":\"#preprocessor-rule-enabled\"},{\"include\":\"#preprocessor-rule-disabled\"},{\"include\":\"#preprocessor-rule-conditional\"},{\"include\":\"#comments\"},{\"include\":\"#switch_statement\"},{\"match\":\"\\\\\\\\b(break|continue|do|else|for|goto|if|_Pragma|return|while)\\\\\\\\b\",\"name\":\"keyword.control.objcpp\"},{\"include\":\"#storage_types\"},{\"match\":\"typedef\",\"name\":\"keyword.other.typedef.objcpp\"},{\"match\":\"\\\\\\\\bin\\\\\\\\b\",\"name\":\"keyword.other.in.objcpp\"},{\"match\":\"\\\\\\\\b(const|extern|register|restrict|static|volatile|inline|__block)\\\\\\\\b\",\"name\":\"storage.modifier.objcpp\"},{\"match\":\"\\\\\\\\bk[A-Z]\\\\\\\\w*\\\\\\\\b\",\"name\":\"constant.other.variable.mac-classic.objcpp\"},{\"match\":\"\\\\\\\\bg[A-Z]\\\\\\\\w*\\\\\\\\b\",\"name\":\"variable.other.readwrite.global.mac-classic.objcpp\"},{\"match\":\"\\\\\\\\bs[A-Z]\\\\\\\\w*\\\\\\\\b\",\"name\":\"variable.other.readwrite.static.mac-classic.objcpp\"},{\"match\":\"\\\\\\\\b(NULL|true|false|TRUE|FALSE)\\\\\\\\b\",\"name\":\"constant.language.objcpp\"},{\"include\":\"#operators\"},{\"include\":\"#numbers\"},{\"include\":\"#strings\"},{\"include\":\"#special_variables\"},{\"begin\":\"^\\\\\\\\s*((\\\\\\\\#)\\\\\\\\s*define)\\\\\\\\s+((?<id>[a-zA-Z_$][\\\\\\\\w$]*))(?:(\\\\\\\\()(\\\\\\\\s*\\\\\\\\g<id>\\\\\\\\s*((,)\\\\\\\\s*\\\\\\\\g<id>\\\\\\\\s*)*(?:\\\\\\\\.\\\\\\\\.\\\\\\\\.)?)(\\\\\\\\)))?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.define.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"},\"3\":{\"name\":\"entity.name.function.preprocessor.objcpp\"},\"5\":{\"name\":\"punctuation.definition.parameters.begin.objcpp\"},\"6\":{\"name\":\"variable.parameter.preprocessor.objcpp\"},\"8\":{\"name\":\"punctuation.separator.parameters.objcpp\"},\"9\":{\"name\":\"punctuation.definition.parameters.end.objcpp\"}},\"end\":\"(?=(?://|/\\\\\\\\*))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.macro.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-define-line-contents\"}]},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*(error|warning))\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.diagnostic.$3.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.diagnostic.objcpp\",\"patterns\":[{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objcpp\"}},\"end\":\"\\\\\"|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objcpp\"}},\"name\":\"string.quoted.double.objcpp\",\"patterns\":[{\"include\":\"#line_continuation_character\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objcpp\"}},\"end\":\"'|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objcpp\"}},\"name\":\"string.quoted.single.objcpp\",\"patterns\":[{\"include\":\"#line_continuation_character\"}]},{\"begin\":\"[^'\\\\\"]\",\"end\":\"(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"name\":\"string.unquoted.single.objcpp\",\"patterns\":[{\"include\":\"#line_continuation_character\"},{\"include\":\"#comments\"}]}]},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*(include(?:_next)?|import))\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.$3.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"(?=(?://|/\\\\\\\\*))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.include.objcpp\",\"patterns\":[{\"include\":\"#line_continuation_character\"},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objcpp\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objcpp\"}},\"name\":\"string.quoted.double.include.objcpp\"},{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objcpp\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objcpp\"}},\"name\":\"string.quoted.other.lt-gt.include.objcpp\"}]},{\"include\":\"#pragma-mark\"},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*line)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.line.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"(?=(?://|/\\\\\\\\*))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objcpp\",\"patterns\":[{\"include\":\"#strings\"},{\"include\":\"#numbers\"},{\"include\":\"#line_continuation_character\"}]},{\"begin\":\"^\\\\\\\\s*(?:((#)\\\\\\\\s*undef))\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.undef.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"(?=(?://|/\\\\\\\\*))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objcpp\",\"patterns\":[{\"match\":\"[a-zA-Z_$][\\\\\\\\w$]*\",\"name\":\"entity.name.function.preprocessor.objcpp\"},{\"include\":\"#line_continuation_character\"}]},{\"begin\":\"^\\\\\\\\s*(?:((#)\\\\\\\\s*pragma))\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.pragma.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"(?=(?://|/\\\\\\\\*))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.pragma.objcpp\",\"patterns\":[{\"include\":\"#strings\"},{\"match\":\"[a-zA-Z_$][\\\\\\\\w\\\\\\\\-$]*\",\"name\":\"entity.other.attribute-name.pragma.preprocessor.objcpp\"},{\"include\":\"#numbers\"},{\"include\":\"#line_continuation_character\"}]},{\"match\":\"\\\\\\\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\\\\\\\b\",\"name\":\"support.type.sys-types.objcpp\"},{\"match\":\"\\\\\\\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\\\\\\\b\",\"name\":\"support.type.pthread.objcpp\"},{\"match\":\"\\\\\\\\b(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t)\\\\\\\\b\",\"name\":\"support.type.stdint.objcpp\"},{\"match\":\"\\\\\\\\b(noErr|kNilOptions|kInvalidID|kVariableLengthArray)\\\\\\\\b\",\"name\":\"support.constant.mac-classic.objcpp\"},{\"match\":\"\\\\\\\\b(AbsoluteTime|Boolean|Byte|ByteCount|ByteOffset|BytePtr|CompTimeValue|ConstLogicalAddress|ConstStrFileNameParam|ConstStringPtr|Duration|Fixed|FixedPtr|Float32|Float32Point|Float64|Float80|Float96|FourCharCode|Fract|FractPtr|Handle|ItemCount|LogicalAddress|OptionBits|OSErr|OSStatus|OSType|OSTypePtr|PhysicalAddress|ProcessSerialNumber|ProcessSerialNumberPtr|ProcHandle|Ptr|ResType|ResTypePtr|ShortFixed|ShortFixedPtr|SignedByte|SInt16|SInt32|SInt64|SInt8|Size|StrFileName|StringHandle|StringPtr|TimeBase|TimeRecord|TimeScale|TimeValue|TimeValue64|UInt16|UInt32|UInt64|UInt8|UniChar|UniCharCount|UniCharCountPtr|UniCharPtr|UnicodeScalarValue|UniversalProcHandle|UniversalProcPtr|UnsignedFixed|UnsignedFixedPtr|UnsignedWide|UTF16Char|UTF32Char|UTF8Char)\\\\\\\\b\",\"name\":\"support.type.mac-classic.objcpp\"},{\"match\":\"\\\\\\\\b([A-Za-z0-9_]+_t)\\\\\\\\b\",\"name\":\"support.type.posix-reserved.objcpp\"},{\"include\":\"#block\"},{\"include\":\"#parens\"},{\"begin\":\"(?<!\\\\\\\\w)(?!\\\\\\\\s*(?:not|compl|sizeof|not_eq|bitand|xor|bitor|and|or|and_eq|xor_eq|or_eq|alignof|alignas|_Alignof|_Alignas|while|for|do|if|else|goto|switch|return|break|case|continue|default|void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|NULL|true|false|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t|struct|union|enum|typedef|auto|register|static|extern|thread_local|inline|_Noreturn|const|volatile|restrict|_Atomic)\\\\\\\\s*\\\\\\\\()(?=[a-zA-Z_]\\\\\\\\w*\\\\\\\\s*\\\\\\\\()\",\"end\":\"(?<=\\\\\\\\))\",\"name\":\"meta.function.objcpp\",\"patterns\":[{\"include\":\"#function-innards\"}]},{\"include\":\"#line_continuation_character\"},{\"begin\":\"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\\\\\\\]\\\\\\\\)]))?(\\\\\\\\[)(?!\\\\\\\\])\",\"beginCaptures\":{\"1\":{\"name\":\"variable.object.objcpp\"},\"2\":{\"name\":\"punctuation.definition.begin.bracket.square.objcpp\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.square.objcpp\"}},\"name\":\"meta.bracket.square.access.objcpp\",\"patterns\":[{\"include\":\"#function-call-innards\"}]},{\"match\":\"\\\\\\\\[\\\\\\\\s*\\\\\\\\]\",\"name\":\"storage.modifier.array.bracket.square.objcpp\"},{\"match\":\";\",\"name\":\"punctuation.terminator.statement.objcpp\"},{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.objcpp\"}],\"repository\":{\"access-method\":{\"begin\":\"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\\\\\\\]\\\\\\\\)]))\\\\\\\\s*(?:(\\\\\\\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\\\\\\\s*(?:(?:\\\\\\\\.)|(?:->)))*)\\\\\\\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"variable.object.objcpp\"},\"2\":{\"name\":\"punctuation.separator.dot-access.objcpp\"},\"3\":{\"name\":\"punctuation.separator.pointer-access.objcpp\"},\"4\":{\"patterns\":[{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.separator.dot-access.objcpp\"},{\"match\":\"->\",\"name\":\"punctuation.separator.pointer-access.objcpp\"},{\"match\":\"[a-zA-Z_][a-zA-Z_0-9]*\",\"name\":\"variable.object.objcpp\"},{\"match\":\".+\",\"name\":\"everything.else.objcpp\"}]},\"5\":{\"name\":\"entity.name.function.member.objcpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.function.member.objcpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.function.member.objcpp\"}},\"name\":\"meta.function-call.member.objcpp\",\"patterns\":[{\"include\":\"#function-call-innards\"}]},\"block\":{\"patterns\":[{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.objcpp\"}},\"end\":\"}|(?=\\\\\\\\s*#\\\\\\\\s*(?:elif|else|endif)\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.objcpp\"}},\"name\":\"meta.block.objcpp\",\"patterns\":[{\"include\":\"#block_innards\"}]}]},\"block_innards\":{\"patterns\":[{\"include\":\"#preprocessor-rule-enabled-block\"},{\"include\":\"#preprocessor-rule-disabled-block\"},{\"include\":\"#preprocessor-rule-conditional-block\"},{\"include\":\"#method_access\"},{\"include\":\"#member_access\"},{\"include\":\"#c_function_call\"},{\"begin\":\"(?:(?:(?=\\\\\\\\s)(?<!else|new|return)(?<=\\\\\\\\w)\\\\\\\\s+(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)))((?:[A-Za-z_][A-Za-z0-9_]*+|::)++|(?:(?<=operator)(?:[-*&<>=+!]+|\\\\\\\\(\\\\\\\\)|\\\\\\\\[\\\\\\\\])))\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.objcpp\"},\"2\":{\"name\":\"punctuation.section.parens.begin.bracket.round.initialization.objcpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.initialization.objcpp\"}},\"name\":\"meta.initialization.objcpp\",\"patterns\":[{\"include\":\"#function-call-innards\"}]},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.objcpp\"}},\"end\":\"}|(?=\\\\\\\\s*#\\\\\\\\s*(?:elif|else|endif)\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.objcpp\"}},\"patterns\":[{\"include\":\"#block_innards\"}]},{\"include\":\"#parens-block\"},{\"include\":\"$base\"}]},\"c_function_call\":{\"begin\":\"(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\\\\\\\s*\\\\\\\\()(?=(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\\\\\\\s*\\\\\\\\(|(?:(?<=operator)(?:[-*&<>=+!]+|\\\\\\\\(\\\\\\\\)|\\\\\\\\[\\\\\\\\]))\\\\\\\\s*\\\\\\\\()\",\"end\":\"(?<=\\\\\\\\))(?!\\\\\\\\w)\",\"name\":\"meta.function-call.objcpp\",\"patterns\":[{\"include\":\"#function-call-innards\"}]},\"case_statement\":{\"begin\":\"((?<!\\\\\\\\w)case(?!\\\\\\\\w))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.case.objcpp\"}},\"end\":\"(:)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.case.objcpp\"}},\"name\":\"meta.conditional.case.objcpp\",\"patterns\":[{\"include\":\"#conditional_context\"}]},\"comments\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"meta.toc-list.banner.block.objcpp\"}},\"match\":\"^/\\\\\\\\* =(\\\\\\\\s*.*?)\\\\\\\\s*= \\\\\\\\*/$\\\\\\\\n?\",\"name\":\"comment.block.objcpp\"},{\"begin\":\"/\\\\\\\\*\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.objcpp\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.objcpp\"}},\"name\":\"comment.block.objcpp\"},{\"captures\":{\"1\":{\"name\":\"meta.toc-list.banner.line.objcpp\"}},\"match\":\"^// =(\\\\\\\\s*.*?)\\\\\\\\s*=\\\\\\\\s*$\\\\\\\\n?\",\"name\":\"comment.line.banner.objcpp\"},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=//)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.objcpp\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.objcpp\"}},\"end\":\"(?=\\\\\\\\n)\",\"name\":\"comment.line.double-slash.objcpp\",\"patterns\":[{\"include\":\"#line_continuation_character\"}]}]}]},\"conditional_context\":{\"patterns\":[{\"include\":\"$base\"},{\"include\":\"#block_innards\"}]},\"default_statement\":{\"begin\":\"((?<!\\\\\\\\w)default(?!\\\\\\\\w))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.default.objcpp\"}},\"end\":\"(:)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.case.default.objcpp\"}},\"name\":\"meta.conditional.case.objcpp\",\"patterns\":[{\"include\":\"#conditional_context\"}]},\"disabled\":{\"begin\":\"^\\\\\\\\s*#\\\\\\\\s*if(n?def)?\\\\\\\\b.*$\",\"end\":\"^\\\\\\\\s*#\\\\\\\\s*endif\\\\\\\\b\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},\"function-call-innards\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#storage_types\"},{\"include\":\"#method_access\"},{\"include\":\"#member_access\"},{\"include\":\"#operators\"},{\"begin\":\"(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\\\\\\\s*\\\\\\\\()((?:[A-Za-z_][A-Za-z0-9_]*+|::)++|(?:(?<=operator)(?:[-*&<>=+!]+|\\\\\\\\(\\\\\\\\)|\\\\\\\\[\\\\\\\\])))\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.objcpp\"},\"2\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.objcpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.objcpp\"}},\"patterns\":[{\"include\":\"#function-call-innards\"}]},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.objcpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.objcpp\"}},\"patterns\":[{\"include\":\"#function-call-innards\"}]},{\"include\":\"#block_innards\"}]},\"function-innards\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#storage_types\"},{\"include\":\"#operators\"},{\"include\":\"#vararg_ellipses\"},{\"begin\":\"(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\\\\\\\s*\\\\\\\\()((?:[A-Za-z_][A-Za-z0-9_]*+|::)++|(?:(?<=operator)(?:[-*&<>=+!]+|\\\\\\\\(\\\\\\\\)|\\\\\\\\[\\\\\\\\])))\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.objcpp\"},\"2\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.objcpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.end.bracket.round.objcpp\"}},\"name\":\"meta.function.definition.parameters.objcpp\",\"patterns\":[{\"include\":\"#probably_a_parameter\"},{\"include\":\"#function-innards\"}]},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.objcpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.objcpp\"}},\"patterns\":[{\"include\":\"#function-innards\"}]},{\"include\":\"$base\"}]},\"line_continuation_character\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.character.escape.line-continuation.objcpp\"}},\"match\":\"(\\\\\\\\\\\\\\\\)\\\\\\\\n\"}]},\"member_access\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#special_variables\"},{\"match\":\"(.+)\",\"name\":\"variable.other.object.access.objcpp\"}]},\"2\":{\"name\":\"punctuation.separator.dot-access.objcpp\"},\"3\":{\"name\":\"punctuation.separator.pointer-access.objcpp\"},\"4\":{\"patterns\":[{\"include\":\"#member_access\"},{\"include\":\"#method_access\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#special_variables\"},{\"match\":\"(.+)\",\"name\":\"variable.other.object.access.objcpp\"}]},\"2\":{\"name\":\"punctuation.separator.dot-access.objcpp\"},\"3\":{\"name\":\"punctuation.separator.pointer-access.objcpp\"}},\"match\":\"((?:[a-zA-Z_]\\\\\\\\w*|(?<=\\\\\\\\]|\\\\\\\\)))\\\\\\\\s*)(?:((?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.))|((?:->\\\\\\\\*|->)))\"}]},\"5\":{\"name\":\"variable.other.member.objcpp\"}},\"match\":\"((?:[a-zA-Z_]\\\\\\\\w*|(?<=\\\\\\\\]|\\\\\\\\)))\\\\\\\\s*)(?:((?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.))|((?:->\\\\\\\\*|->)))((?:[a-zA-Z_]\\\\\\\\w*\\\\\\\\s*(?-mix:(?:(?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.))|(?:(?:->\\\\\\\\*|->)))\\\\\\\\s*)*)\\\\\\\\s*(\\\\\\\\b(?!(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t))[a-zA-Z_]\\\\\\\\w*\\\\\\\\b(?!\\\\\\\\())\"},\"method_access\":{\"begin\":\"((?:[a-zA-Z_]\\\\\\\\w*|(?<=\\\\\\\\]|\\\\\\\\)))\\\\\\\\s*)(?:((?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.))|((?:->\\\\\\\\*|->)))((?:[a-zA-Z_]\\\\\\\\w*\\\\\\\\s*(?-mix:(?:(?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.))|(?:(?:->\\\\\\\\*|->)))\\\\\\\\s*)*)\\\\\\\\s*([a-zA-Z_]\\\\\\\\w*)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#special_variables\"},{\"match\":\"(.+)\",\"name\":\"variable.other.object.access.objcpp\"}]},\"2\":{\"name\":\"punctuation.separator.dot-access.objcpp\"},\"3\":{\"name\":\"punctuation.separator.pointer-access.objcpp\"},\"4\":{\"patterns\":[{\"include\":\"#member_access\"},{\"include\":\"#method_access\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#special_variables\"},{\"match\":\"(.+)\",\"name\":\"variable.other.object.access.objcpp\"}]},\"2\":{\"name\":\"punctuation.separator.dot-access.objcpp\"},\"3\":{\"name\":\"punctuation.separator.pointer-access.objcpp\"}},\"match\":\"((?:[a-zA-Z_]\\\\\\\\w*|(?<=\\\\\\\\]|\\\\\\\\)))\\\\\\\\s*)(?:((?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.))|((?:->\\\\\\\\*|->)))\"}]},\"5\":{\"name\":\"entity.name.function.member.objcpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.function.member.objcpp\"}},\"contentName\":\"meta.function-call.member.objcpp\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.arguments.end.bracket.round.function.member.objcpp\"}},\"patterns\":[{\"include\":\"#function-call-innards\"}]},\"numbers\":{\"begin\":\"(?<!\\\\\\\\w)(?=\\\\\\\\d|\\\\\\\\.\\\\\\\\d)\",\"end\":\"(?!(?:['0-9a-zA-Z_\\\\\\\\.']|(?<=[eEpP])[+-]))\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.hexadecimal.objcpp\"},\"2\":{\"name\":\"constant.numeric.hexadecimal.objcpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.objcpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.objcpp\"},\"4\":{\"name\":\"constant.numeric.hexadecimal.objcpp\"},\"5\":{\"name\":\"constant.numeric.hexadecimal.objcpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.objcpp\"}]},\"6\":{\"name\":\"punctuation.separator.constant.numeric.objcpp\"},\"8\":{\"name\":\"keyword.other.unit.exponent.hexadecimal.objcpp\"},\"9\":{\"name\":\"keyword.operator.plus.exponent.hexadecimal.objcpp\"},\"10\":{\"name\":\"keyword.operator.minus.exponent.hexadecimal.objcpp\"},\"11\":{\"name\":\"constant.numeric.exponent.hexadecimal.objcpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.objcpp\"}]},\"12\":{\"name\":\"keyword.other.unit.suffix.floating-point.objcpp\"}},\"match\":\"(\\\\\\\\G0[xX])(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9a-fA-F])\\\\\\\\.|\\\\\\\\.(?=[0-9a-fA-F])))(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([pP])(\\\\\\\\+)?(\\\\\\\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\\\\\\\w)))?(?!(?:['0-9a-zA-Z_\\\\\\\\.']|(?<=[eEpP])[+-]))\"},{\"captures\":{\"2\":{\"name\":\"constant.numeric.decimal.objcpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.objcpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.objcpp\"},\"4\":{\"name\":\"constant.numeric.decimal.point.objcpp\"},\"5\":{\"name\":\"constant.numeric.decimal.objcpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.objcpp\"}]},\"6\":{\"name\":\"punctuation.separator.constant.numeric.objcpp\"},\"8\":{\"name\":\"keyword.other.unit.exponent.decimal.objcpp\"},\"9\":{\"name\":\"keyword.operator.plus.exponent.decimal.objcpp\"},\"10\":{\"name\":\"keyword.operator.minus.exponent.decimal.objcpp\"},\"11\":{\"name\":\"constant.numeric.exponent.decimal.objcpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.objcpp\"}]},\"12\":{\"name\":\"keyword.other.unit.suffix.floating-point.objcpp\"}},\"match\":\"(\\\\\\\\G(?=[0-9.])(?!0[xXbB]))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9])\\\\\\\\.|\\\\\\\\.(?=[0-9])))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([eE])(\\\\\\\\+)?(\\\\\\\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\\\\\\\w)))?(?!(?:['0-9a-zA-Z_\\\\\\\\.']|(?<=[eEpP])[+-]))\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.binary.objcpp\"},\"2\":{\"name\":\"constant.numeric.binary.objcpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.objcpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.objcpp\"},\"4\":{\"name\":\"keyword.other.unit.suffix.integer.objcpp\"}},\"match\":\"(\\\\\\\\G0[bB])([01](?:(?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\\\\\\\w)))?(?!(?:['0-9a-zA-Z_\\\\\\\\.']|(?<=[eEpP])[+-]))\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.octal.objcpp\"},\"2\":{\"name\":\"constant.numeric.octal.objcpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.objcpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.objcpp\"},\"4\":{\"name\":\"keyword.other.unit.suffix.integer.objcpp\"}},\"match\":\"(\\\\\\\\G0)((?:(?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))+)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\\\\\\\w)))?(?!(?:['0-9a-zA-Z_\\\\\\\\.']|(?<=[eEpP])[+-]))\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.hexadecimal.objcpp\"},\"2\":{\"name\":\"constant.numeric.hexadecimal.objcpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.objcpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.objcpp\"},\"5\":{\"name\":\"keyword.other.unit.exponent.hexadecimal.objcpp\"},\"6\":{\"name\":\"keyword.operator.plus.exponent.hexadecimal.objcpp\"},\"7\":{\"name\":\"keyword.operator.minus.exponent.hexadecimal.objcpp\"},\"8\":{\"name\":\"constant.numeric.exponent.hexadecimal.objcpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.objcpp\"}]},\"9\":{\"name\":\"keyword.other.unit.suffix.integer.objcpp\"}},\"match\":\"(\\\\\\\\G0[xX])([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([pP])(\\\\\\\\+)?(\\\\\\\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\\\\\\\w)))?(?!(?:['0-9a-zA-Z_\\\\\\\\.']|(?<=[eEpP])[+-]))\"},{\"captures\":{\"2\":{\"name\":\"constant.numeric.decimal.objcpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.objcpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.objcpp\"},\"5\":{\"name\":\"keyword.other.unit.exponent.decimal.objcpp\"},\"6\":{\"name\":\"keyword.operator.plus.exponent.decimal.objcpp\"},\"7\":{\"name\":\"keyword.operator.minus.exponent.decimal.objcpp\"},\"8\":{\"name\":\"constant.numeric.exponent.decimal.objcpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.objcpp\"}]},\"9\":{\"name\":\"keyword.other.unit.suffix.integer.objcpp\"}},\"match\":\"(\\\\\\\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([eE])(\\\\\\\\+)?(\\\\\\\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\\\\\\\w)))?(?!(?:['0-9a-zA-Z_\\\\\\\\.']|(?<=[eEpP])[+-]))\"},{\"match\":\"(?:(?:['0-9a-zA-Z_\\\\\\\\.']|(?<=[eEpP])[+-]))+\",\"name\":\"invalid.illegal.constant.numeric.objcpp\"}]},\"operators\":{\"patterns\":[{\"match\":\"(?<![\\\\\\\\w$])(sizeof)(?![\\\\\\\\w$])\",\"name\":\"keyword.operator.sizeof.objcpp\"},{\"match\":\"--\",\"name\":\"keyword.operator.decrement.objcpp\"},{\"match\":\"\\\\\\\\+\\\\\\\\+\",\"name\":\"keyword.operator.increment.objcpp\"},{\"match\":\"%=|\\\\\\\\+=|-=|\\\\\\\\*=|(?<!\\\\\\\\()/=\",\"name\":\"keyword.operator.assignment.compound.objcpp\"},{\"match\":\"&=|\\\\\\\\^=|<<=|>>=|\\\\\\\\|=\",\"name\":\"keyword.operator.assignment.compound.bitwise.objcpp\"},{\"match\":\"<<|>>\",\"name\":\"keyword.operator.bitwise.shift.objcpp\"},{\"match\":\"!=|<=|>=|==|<|>\",\"name\":\"keyword.operator.comparison.objcpp\"},{\"match\":\"&&|!|\\\\\\\\|\\\\\\\\|\",\"name\":\"keyword.operator.logical.objcpp\"},{\"match\":\"&|\\\\\\\\||\\\\\\\\^|~\",\"name\":\"keyword.operator.objcpp\"},{\"match\":\"=\",\"name\":\"keyword.operator.assignment.objcpp\"},{\"match\":\"%|\\\\\\\\*|/|-|\\\\\\\\+\",\"name\":\"keyword.operator.objcpp\"},{\"begin\":\"(\\\\\\\\?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.ternary.objcpp\"}},\"end\":\"(:)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.ternary.objcpp\"}},\"patterns\":[{\"include\":\"#function-call-innards\"},{\"include\":\"$base\"}]}]},\"parens\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.objcpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.objcpp\"}},\"name\":\"meta.parens.objcpp\",\"patterns\":[{\"include\":\"$base\"}]},\"parens-block\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.objcpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.objcpp\"}},\"name\":\"meta.parens.block.objcpp\",\"patterns\":[{\"include\":\"#block_innards\"},{\"match\":\"(?-mix:(?<!:):(?!:))\",\"name\":\"punctuation.range-based.objcpp\"}]},\"pragma-mark\":{\"captures\":{\"1\":{\"name\":\"meta.preprocessor.pragma.objcpp\"},\"2\":{\"name\":\"keyword.control.directive.pragma.pragma-mark.objcpp\"},\"3\":{\"name\":\"punctuation.definition.directive.objcpp\"},\"4\":{\"name\":\"entity.name.tag.pragma-mark.objcpp\"}},\"match\":\"^\\\\\\\\s*(((#)\\\\\\\\s*pragma\\\\\\\\s+mark)\\\\\\\\s+(.*))\",\"name\":\"meta.section.objcpp\"},\"preprocessor-rule-conditional\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*if(?:n?def)?\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#preprocessor-rule-enabled-elif\"},{\"include\":\"#preprocessor-rule-enabled-else\"},{\"include\":\"#preprocessor-rule-disabled-elif\"},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"$base\"}]},{\"captures\":{\"0\":{\"name\":\"invalid.illegal.stray-$1.objcpp\"}},\"match\":\"^\\\\\\\\s*#\\\\\\\\s*(else|elif|endif)\\\\\\\\b\"}]},\"preprocessor-rule-conditional-block\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*if(?:n?def)?\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#preprocessor-rule-enabled-elif-block\"},{\"include\":\"#preprocessor-rule-enabled-else-block\"},{\"include\":\"#preprocessor-rule-disabled-elif\"},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#block_innards\"}]},{\"captures\":{\"0\":{\"name\":\"invalid.illegal.stray-$1.objcpp\"}},\"match\":\"^\\\\\\\\s*#\\\\\\\\s*(else|elif|endif)\\\\\\\\b\"}]},\"preprocessor-rule-conditional-line\":{\"patterns\":[{\"match\":\"(?:\\\\\\\\bdefined\\\\\\\\b\\\\\\\\s*$)|(?:\\\\\\\\bdefined\\\\\\\\b(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\s*(?:(?!defined\\\\\\\\b)[a-zA-Z_$][\\\\\\\\w$]*\\\\\\\\b)\\\\\\\\s*\\\\\\\\)*\\\\\\\\s*(?:\\\\\\\\n|//|/\\\\\\\\*|\\\\\\\\?|\\\\\\\\:|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n)))\",\"name\":\"keyword.control.directive.conditional.objcpp\"},{\"match\":\"\\\\\\\\bdefined\\\\\\\\b\",\"name\":\"invalid.illegal.macro-name.objcpp\"},{\"include\":\"#comments\"},{\"include\":\"#strings\"},{\"include\":\"#numbers\"},{\"begin\":\"\\\\\\\\?\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.ternary.objcpp\"}},\"end\":\":\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.ternary.objcpp\"}},\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#operators\"},{\"match\":\"\\\\\\\\b(NULL|true|false|TRUE|FALSE)\\\\\\\\b\",\"name\":\"constant.language.objcpp\"},{\"match\":\"[a-zA-Z_$][\\\\\\\\w$]*\",\"name\":\"entity.name.function.preprocessor.objcpp\"},{\"include\":\"#line_continuation_character\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.objcpp\"}},\"end\":\"\\\\\\\\)|(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.objcpp\"}},\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]}]},\"preprocessor-rule-define-line-blocks\":{\"patterns\":[{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.objcpp\"}},\"end\":\"}|(?=\\\\\\\\s*#\\\\\\\\s*(?:elif|else|endif)\\\\\\\\b)|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.objcpp\"}},\"patterns\":[{\"include\":\"#preprocessor-rule-define-line-blocks\"},{\"include\":\"#preprocessor-rule-define-line-contents\"}]},{\"include\":\"#preprocessor-rule-define-line-contents\"}]},\"preprocessor-rule-define-line-contents\":{\"patterns\":[{\"include\":\"#vararg_ellipses\"},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.objcpp\"}},\"end\":\"}|(?=\\\\\\\\s*#\\\\\\\\s*(?:elif|else|endif)\\\\\\\\b)|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.objcpp\"}},\"name\":\"meta.block.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-define-line-blocks\"}]},{\"match\":\"\\\\\\\\(\",\"name\":\"punctuation.section.parens.begin.bracket.round.objcpp\"},{\"match\":\"\\\\\\\\)\",\"name\":\"punctuation.section.parens.end.bracket.round.objcpp\"},{\"begin\":\"(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\\\\\\\s*\\\\\\\\()(?=(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\\\\\\\s*\\\\\\\\(|(?:(?<=operator)(?:[-*&<>=+!]+|\\\\\\\\(\\\\\\\\)|\\\\\\\\[\\\\\\\\]))\\\\\\\\s*\\\\\\\\()\",\"end\":\"(?<=\\\\\\\\))(?!\\\\\\\\w)|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"name\":\"meta.function.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-define-line-functions\"}]},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objcpp\"}},\"end\":\"\\\\\"|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objcpp\"}},\"name\":\"string.quoted.double.objcpp\",\"patterns\":[{\"include\":\"#string_escaped_char\"},{\"include\":\"#string_placeholder\"},{\"include\":\"#line_continuation_character\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objcpp\"}},\"end\":\"'|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objcpp\"}},\"name\":\"string.quoted.single.objcpp\",\"patterns\":[{\"include\":\"#string_escaped_char\"},{\"include\":\"#line_continuation_character\"}]},{\"include\":\"#method_access\"},{\"include\":\"#member_access\"},{\"include\":\"$base\"}]},\"preprocessor-rule-define-line-functions\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#storage_types\"},{\"include\":\"#vararg_ellipses\"},{\"include\":\"#method_access\"},{\"include\":\"#member_access\"},{\"include\":\"#operators\"},{\"begin\":\"(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\\\\\\\s*\\\\\\\\()((?:[A-Za-z_][A-Za-z0-9_]*+|::)++|(?:(?<=operator)(?:[-*&<>=+!]+|\\\\\\\\(\\\\\\\\)|\\\\\\\\[\\\\\\\\])))\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.objcpp\"},\"2\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.objcpp\"}},\"end\":\"(\\\\\\\\))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.arguments.end.bracket.round.objcpp\"}},\"patterns\":[{\"include\":\"#preprocessor-rule-define-line-functions\"}]},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.objcpp\"}},\"end\":\"(\\\\\\\\))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.parens.end.bracket.round.objcpp\"}},\"patterns\":[{\"include\":\"#preprocessor-rule-define-line-functions\"}]},{\"include\":\"#preprocessor-rule-define-line-contents\"}]},\"preprocessor-rule-disabled\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*if\\\\\\\\b)(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\b0+\\\\\\\\b\\\\\\\\)*\\\\\\\\s*(?:$|//|/\\\\\\\\*))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#comments\"},{\"include\":\"#preprocessor-rule-enabled-elif\"},{\"include\":\"#preprocessor-rule-enabled-else\"},{\"include\":\"#preprocessor-rule-disabled-elif\"},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:elif|else|endif)\\\\\\\\b))\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"$base\"}]},{\"begin\":\"\\\\\\\\n\",\"contentName\":\"comment.block.preprocessor.if-branch.objcpp\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]}]}]},\"preprocessor-rule-disabled-block\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*if\\\\\\\\b)(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\b0+\\\\\\\\b\\\\\\\\)*\\\\\\\\s*(?:$|//|/\\\\\\\\*))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#comments\"},{\"include\":\"#preprocessor-rule-enabled-elif-block\"},{\"include\":\"#preprocessor-rule-enabled-else-block\"},{\"include\":\"#preprocessor-rule-disabled-elif\"},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:elif|else|endif)\\\\\\\\b))\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#block_innards\"}]},{\"begin\":\"\\\\\\\\n\",\"contentName\":\"comment.block.preprocessor.if-branch.in-block.objcpp\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]}]}]},\"preprocessor-rule-disabled-elif\":{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\b0+\\\\\\\\b\\\\\\\\)*\\\\\\\\s*(?:$|//|/\\\\\\\\*))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:elif|else|endif)\\\\\\\\b))\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#comments\"},{\"begin\":\"\\\\\\\\n\",\"contentName\":\"comment.block.preprocessor.elif-branch.objcpp\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]}]},\"preprocessor-rule-enabled\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*if\\\\\\\\b)(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\b0*1\\\\\\\\b\\\\\\\\)*\\\\\\\\s*(?:$|//|/\\\\\\\\*))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"},\"3\":{\"name\":\"constant.numeric.preprocessor.objcpp\"}},\"end\":\"^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#comments\"},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*else\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"contentName\":\"comment.block.preprocessor.else-branch.objcpp\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"contentName\":\"comment.block.preprocessor.if-branch.objcpp\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"begin\":\"\\\\\\\\n\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"$base\"}]}]}]},\"preprocessor-rule-enabled-block\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*if\\\\\\\\b)(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\b0*1\\\\\\\\b\\\\\\\\)*\\\\\\\\s*(?:$|//|/\\\\\\\\*))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#comments\"},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*else\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"contentName\":\"comment.block.preprocessor.else-branch.in-block.objcpp\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"contentName\":\"comment.block.preprocessor.if-branch.in-block.objcpp\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"begin\":\"\\\\\\\\n\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#block_innards\"}]}]}]},\"preprocessor-rule-enabled-elif\":{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\b0*1\\\\\\\\b\\\\\\\\)*\\\\\\\\s*(?:$|//|/\\\\\\\\*))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#comments\"},{\"begin\":\"\\\\\\\\n\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:endif)\\\\\\\\b))\",\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*(else)\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"contentName\":\"comment.block.preprocessor.elif-branch.objcpp\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*(elif)\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"contentName\":\"comment.block.preprocessor.elif-branch.objcpp\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"include\":\"$base\"}]}]},\"preprocessor-rule-enabled-elif-block\":{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\b0*1\\\\\\\\b\\\\\\\\)*\\\\\\\\s*(?:$|//|/\\\\\\\\*))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#comments\"},{\"begin\":\"\\\\\\\\n\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:endif)\\\\\\\\b))\",\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*(else)\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"contentName\":\"comment.block.preprocessor.elif-branch.in-block.objcpp\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*(elif)\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"contentName\":\"comment.block.preprocessor.elif-branch.objcpp\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"include\":\"#block_innards\"}]}]},\"preprocessor-rule-enabled-else\":{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*else\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"include\":\"$base\"}]},\"preprocessor-rule-enabled-else-block\":{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*else\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"include\":\"#block_innards\"}]},\"probably_a_parameter\":{\"captures\":{\"1\":{\"name\":\"variable.parameter.probably.objcpp\"}},\"match\":\"(?<=(?:[a-zA-Z_0-9] |[&*>\\\\\\\\]\\\\\\\\)]))\\\\\\\\s*([a-zA-Z_]\\\\\\\\w*)\\\\\\\\s*(?=(?:\\\\\\\\[\\\\\\\\]\\\\\\\\s*)?(?:,|\\\\\\\\)))\"},\"static_assert\":{\"begin\":\"(static_assert|_Static_assert)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.static_assert.objcpp\"},\"2\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.objcpp\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.arguments.end.bracket.round.objcpp\"}},\"patterns\":[{\"begin\":\"(,)\\\\\\\\s*(?=(?:L|u8|u|U\\\\\\\\s*\\\\\\\\\\\\\")?)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.delimiter.objcpp\"}},\"end\":\"(?=\\\\\\\\))\",\"name\":\"meta.static_assert.message.objcpp\",\"patterns\":[{\"include\":\"#string_context\"},{\"include\":\"#string_context_c\"}]},{\"include\":\"#function_call_context\"}]},\"storage_types\":{\"patterns\":[{\"match\":\"(?-mix:(?<!\\\\\\\\w)(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool)(?!\\\\\\\\w))\",\"name\":\"storage.type.built-in.primitive.objcpp\"},{\"match\":\"(?-mix:(?<!\\\\\\\\w)(?:_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t)(?!\\\\\\\\w))\",\"name\":\"storage.type.built-in.objcpp\"},{\"match\":\"(?-mix:\\\\\\\\b(asm|__asm__|enum|struct|union)\\\\\\\\b)\",\"name\":\"storage.type.$1.objcpp\"}]},\"string_escaped_char\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(\\\\\\\\\\\\\\\\|[abefnprtv'\\\\\"?]|[0-3]\\\\\\\\d{,2}|[4-7]\\\\\\\\d?|x[a-fA-F0-9]{,2}|u[a-fA-F0-9]{,4}|U[a-fA-F0-9]{,8})\",\"name\":\"constant.character.escape.objcpp\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"invalid.illegal.unknown-escape.objcpp\"}]},\"string_placeholder\":{\"patterns\":[{\"match\":\"%(\\\\\\\\d+\\\\\\\\$)?[#0\\\\\\\\- +']*[,;:_]?((-?\\\\\\\\d+)|\\\\\\\\*(-?\\\\\\\\d+\\\\\\\\$)?)?(\\\\\\\\.((-?\\\\\\\\d+)|\\\\\\\\*(-?\\\\\\\\d+\\\\\\\\$)?)?)?(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)?[diouxXDOUeEfFgGaACcSspn%]\",\"name\":\"constant.other.placeholder.objcpp\"},{\"captures\":{\"1\":{\"name\":\"invalid.illegal.placeholder.objcpp\"}},\"match\":\"(%)(?!\\\\\"\\\\\\\\s*(PRI|SCN))\"}]},\"strings\":{\"patterns\":[{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objcpp\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objcpp\"}},\"name\":\"string.quoted.double.objcpp\",\"patterns\":[{\"include\":\"#string_escaped_char\"},{\"include\":\"#string_placeholder\"},{\"include\":\"#line_continuation_character\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objcpp\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objcpp\"}},\"name\":\"string.quoted.single.objcpp\",\"patterns\":[{\"include\":\"#string_escaped_char\"},{\"include\":\"#line_continuation_character\"}]}]},\"switch_conditional_parentheses\":{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.parens.begin.bracket.round.conditional.switch.objcpp\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.parens.end.bracket.round.conditional.switch.objcpp\"}},\"name\":\"meta.conditional.switch.objcpp\",\"patterns\":[{\"include\":\"#conditional_context\"}]},\"switch_statement\":{\"begin\":\"(((?<!\\\\\\\\w)switch(?!\\\\\\\\w)))\",\"beginCaptures\":{\"1\":{\"name\":\"meta.head.switch.objcpp\"},\"2\":{\"name\":\"keyword.control.switch.objcpp\"}},\"end\":\"(?:(?<=\\\\\\\\})|(?=[;>\\\\\\\\[\\\\\\\\]=]))\",\"name\":\"meta.block.switch.objcpp\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"end\":\"((?:\\\\\\\\{|(?=;)))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.block.begin.bracket.curly.switch.objcpp\"}},\"name\":\"meta.head.switch.objcpp\",\"patterns\":[{\"include\":\"#switch_conditional_parentheses\"},{\"include\":\"$base\"}]},{\"begin\":\"(?<=\\\\\\\\{)\",\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.block.end.bracket.curly.switch.objcpp\"}},\"name\":\"meta.body.switch.objcpp\",\"patterns\":[{\"include\":\"#default_statement\"},{\"include\":\"#case_statement\"},{\"include\":\"$base\"},{\"include\":\"#block_innards\"}]},{\"begin\":\"(?<=})[\\\\\\\\s\\\\\\\\n]*\",\"end\":\"[\\\\\\\\s\\\\\\\\n]*(?=;)\",\"name\":\"meta.tail.switch.objcpp\",\"patterns\":[{\"include\":\"$base\"}]}]},\"vararg_ellipses\":{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\.\\\\\\\\.\\\\\\\\.(?!\\\\\\\\.)\",\"name\":\"punctuation.vararg-ellipses.objcpp\"}}},\"comment\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.objcpp\"}},\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.objcpp\"},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=//)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.objcpp\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.objcpp\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.double-slash.objcpp\",\"patterns\":[{\"match\":\"(?>\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n)\",\"name\":\"punctuation.separator.continuation.objcpp\"}]}]}]},\"cpp_lang\":{\"patterns\":[{\"include\":\"#special_block\"},{\"include\":\"#strings\"},{\"match\":\"\\\\\\\\b(friend|explicit|virtual|override|final|noexcept)\\\\\\\\b\",\"name\":\"storage.modifier.objcpp\"},{\"match\":\"\\\\\\\\b(private:|protected:|public:)\",\"name\":\"storage.type.modifier.access.objcpp\"},{\"match\":\"\\\\\\\\b(catch|try|throw|using)\\\\\\\\b\",\"name\":\"keyword.control.objcpp\"},{\"match\":\"\\\\\\\\bdelete\\\\\\\\b(\\\\\\\\s*\\\\\\\\[\\\\\\\\])?|\\\\\\\\bnew\\\\\\\\b(?!])\",\"name\":\"keyword.control.objcpp\"},{\"match\":\"\\\\\\\\b(f|m)[A-Z]\\\\\\\\w*\\\\\\\\b\",\"name\":\"variable.other.readwrite.member.objcpp\"},{\"match\":\"\\\\\\\\bthis\\\\\\\\b\",\"name\":\"variable.language.this.objcpp\"},{\"match\":\"\\\\\\\\bnullptr\\\\\\\\b\",\"name\":\"constant.language.objcpp\"},{\"include\":\"#template_definition\"},{\"match\":\"\\\\\\\\btemplate\\\\\\\\b\\\\\\\\s*\",\"name\":\"storage.type.template.objcpp\"},{\"match\":\"\\\\\\\\b(const_cast|dynamic_cast|reinterpret_cast|static_cast)\\\\\\\\b\\\\\\\\s*\",\"name\":\"keyword.operator.cast.objcpp\"},{\"captures\":{\"1\":{\"name\":\"entity.scope.objcpp\"},\"2\":{\"name\":\"entity.scope.name.objcpp\"},\"3\":{\"name\":\"punctuation.separator.namespace.access.objcpp\"}},\"match\":\"((?:[a-zA-Z_][a-zA-Z_0-9]*::)*)([a-zA-Z_][a-zA-Z_0-9]*)(::)\",\"name\":\"punctuation.separator.namespace.access.objcpp\"},{\"match\":\"\\\\\\\\b(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\\\\\\\b\",\"name\":\"keyword.operator.objcpp\"},{\"match\":\"\\\\\\\\b(decltype|wchar_t|char16_t|char32_t)\\\\\\\\b\",\"name\":\"storage.type.objcpp\"},{\"match\":\"\\\\\\\\b(constexpr|export|mutable|typename|thread_local)\\\\\\\\b\",\"name\":\"storage.modifier.objcpp\"},{\"begin\":\"(?:^|(?:(?<!else|new|=)))((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.objcpp\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.objcpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.objcpp\"}},\"name\":\"meta.function.destructor.objcpp\",\"patterns\":[{\"include\":\"$base\"}]},{\"begin\":\"(?:^|(?:(?<!else|new|=)))((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.objcpp\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.objcpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.objcpp\"}},\"name\":\"meta.function.destructor.prototype.objcpp\",\"patterns\":[{\"include\":\"$base\"}]},{\"include\":\"#c_lang\"}],\"repository\":{\"angle_brackets\":{\"begin\":\"<\",\"end\":\">\",\"name\":\"meta.angle-brackets.objcpp\",\"patterns\":[{\"include\":\"#angle_brackets\"},{\"include\":\"$base\"}]},\"block\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.objcpp\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.objcpp\"}},\"name\":\"meta.block.objcpp\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"support.function.any-method.objcpp\"},\"2\":{\"name\":\"punctuation.definition.parameters.objcpp\"}},\"match\":\"((?!while|for|do|if|else|switch|catch|enumerate|return|r?iterate)(?:\\\\\\\\b[A-Za-z_][A-Za-z0-9_]*+\\\\\\\\b|::)*+)\\\\\\\\s*(\\\\\\\\()\",\"name\":\"meta.function-call.objcpp\"},{\"include\":\"$base\"}]},\"constructor\":{\"patterns\":[{\"begin\":\"(?:^\\\\\\\\s*)((?!while|for|do|if|else|switch|catch|enumerate|r?iterate)[A-Za-z_][A-Za-z0-9_:]*)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.constructor.objcpp\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.objcpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.objcpp\"}},\"name\":\"meta.function.constructor.objcpp\",\"patterns\":[{\"include\":\"#probably_a_parameter\"},{\"include\":\"#function-innards\"}]},{\"begin\":\"(:)((?=\\\\\\\\s*[A-Za-z_][A-Za-z0-9_:]*\\\\\\\\s*(\\\\\\\\()))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.objcpp\"}},\"end\":\"(?=\\\\\\\\{)\",\"name\":\"meta.function.constructor.initializer-list.objcpp\",\"patterns\":[{\"include\":\"$base\"}]}]},\"special_block\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(using)\\\\\\\\b\\\\\\\\s*(namespace)\\\\\\\\b\\\\\\\\s*((?:[_A-Za-z][_A-Za-z0-9]*\\\\\\\\b(::)?)*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.objcpp\"},\"2\":{\"name\":\"storage.type.namespace.objcpp\"},\"3\":{\"name\":\"entity.name.type.objcpp\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.statement.objcpp\"}},\"name\":\"meta.using-namespace-declaration.objcpp\"},{\"begin\":\"\\\\\\\\b(namespace)\\\\\\\\b\\\\\\\\s*([_A-Za-z][_A-Za-z0-9]*\\\\\\\\b)?+\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.namespace.objcpp\"},\"2\":{\"name\":\"entity.name.type.objcpp\"}},\"captures\":{\"1\":{\"name\":\"keyword.control.namespace.$2.objcpp\"}},\"end\":\"(?<=\\\\\\\\})|(?=(;|,|\\\\\\\\(|\\\\\\\\)|>|\\\\\\\\[|\\\\\\\\]|=))\",\"name\":\"meta.namespace-block.objcpp\",\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.scope.objcpp\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.scope.objcpp\"}},\"patterns\":[{\"include\":\"#special_block\"},{\"include\":\"#constructor\"},{\"include\":\"$base\"}]},{\"include\":\"$base\"}]},{\"begin\":\"\\\\\\\\b(?:(class)|(struct))\\\\\\\\b\\\\\\\\s*([_A-Za-z][_A-Za-z0-9]*\\\\\\\\b)?+(\\\\\\\\s*:\\\\\\\\s*(public|protected|private)\\\\\\\\s*([_A-Za-z][_A-Za-z0-9]*\\\\\\\\b)((\\\\\\\\s*,\\\\\\\\s*(public|protected|private)\\\\\\\\s*[_A-Za-z][_A-Za-z0-9]*\\\\\\\\b)*))?\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.objcpp\"},\"2\":{\"name\":\"storage.type.struct.objcpp\"},\"3\":{\"name\":\"entity.name.type.objcpp\"},\"5\":{\"name\":\"storage.type.modifier.access.objcpp\"},\"6\":{\"name\":\"entity.name.type.inherited.objcpp\"},\"7\":{\"patterns\":[{\"match\":\"(public|protected|private)\",\"name\":\"storage.type.modifier.access.objcpp\"},{\"match\":\"[_A-Za-z][_A-Za-z0-9]*\",\"name\":\"entity.name.type.inherited.objcpp\"}]}},\"end\":\"(?<=\\\\\\\\})|(?=(;|\\\\\\\\(|\\\\\\\\)|>|\\\\\\\\[|\\\\\\\\]|=))\",\"name\":\"meta.class-struct-block.objcpp\",\"patterns\":[{\"include\":\"#angle_brackets\"},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.objcpp\"}},\"end\":\"(\\\\\\\\})(\\\\\\\\s*\\\\\\\\n)?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.block.end.bracket.curly.objcpp\"},\"2\":{\"name\":\"invalid.illegal.you-forgot-semicolon.objcpp\"}},\"patterns\":[{\"include\":\"#special_block\"},{\"include\":\"#constructor\"},{\"include\":\"$base\"}]},{\"include\":\"$base\"}]},{\"begin\":\"\\\\\\\\b(extern)(?=\\\\\\\\s*\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.objcpp\"}},\"end\":\"(?<=\\\\\\\\})|(?=\\\\\\\\w)|(?=\\\\\\\\s*#\\\\\\\\s*endif\\\\\\\\b)\",\"name\":\"meta.extern-block.objcpp\",\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.objcpp\"}},\"end\":\"\\\\\\\\}|(?=\\\\\\\\s*#\\\\\\\\s*endif\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.objcpp\"}},\"patterns\":[{\"include\":\"#special_block\"},{\"include\":\"$base\"}]},{\"include\":\"$base\"}]}]},\"strings\":{\"patterns\":[{\"begin\":\"(u|u8|U|L)?\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objcpp\"},\"1\":{\"name\":\"meta.encoding.objcpp\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objcpp\"}},\"name\":\"string.quoted.double.objcpp\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\u\\\\\\\\h{4}|\\\\\\\\\\\\\\\\U\\\\\\\\h{8}\",\"name\":\"constant.character.escape.objcpp\"},{\"match\":\"\\\\\\\\\\\\\\\\['\\\\\"?\\\\\\\\\\\\\\\\abfnrtv]\",\"name\":\"constant.character.escape.objcpp\"},{\"match\":\"\\\\\\\\\\\\\\\\[0-7]{1,3}\",\"name\":\"constant.character.escape.objcpp\"},{\"match\":\"\\\\\\\\\\\\\\\\x\\\\\\\\h+\",\"name\":\"constant.character.escape.objcpp\"},{\"include\":\"#string_placeholder\"}]},{\"begin\":\"(u|u8|U|L)?R\\\\\"(?:([^ ()\\\\\\\\\\\\\\\\\\\\\\\\t]{0,16})|([^ ()\\\\\\\\\\\\\\\\\\\\\\\\t]*))\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objcpp\"},\"1\":{\"name\":\"meta.encoding.objcpp\"},\"3\":{\"name\":\"invalid.illegal.delimiter-too-long.objcpp\"}},\"end\":\"\\\\\\\\)\\\\\\\\2(\\\\\\\\3)\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objcpp\"},\"1\":{\"name\":\"invalid.illegal.delimiter-too-long.objcpp\"}},\"name\":\"string.quoted.double.raw.objcpp\"}]},\"template_definition\":{\"begin\":\"\\\\\\\\b(template)\\\\\\\\s*(<)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.template.objcpp\"},\"2\":{\"name\":\"meta.template.angle-brackets.start.objcpp\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"meta.template.angle-brackets.end.objcpp\"}},\"name\":\"template.definition.objcpp\",\"patterns\":[{\"include\":\"#template_definition_argument\"}]},\"template_definition_argument\":{\"captures\":{\"1\":{\"name\":\"storage.type.template.objcpp\"},\"2\":{\"name\":\"storage.type.template.objcpp\"},\"3\":{\"name\":\"entity.name.type.template.objcpp\"},\"4\":{\"name\":\"storage.type.template.objcpp\"},\"5\":{\"name\":\"meta.template.operator.ellipsis.objcpp\"},\"6\":{\"name\":\"entity.name.type.template.objcpp\"},\"7\":{\"name\":\"storage.type.template.objcpp\"},\"8\":{\"name\":\"entity.name.type.template.objcpp\"},\"9\":{\"name\":\"keyword.operator.assignment.objcpp\"},\"10\":{\"name\":\"constant.language.objcpp\"},\"11\":{\"name\":\"meta.template.operator.comma.objcpp\"}},\"match\":\"\\\\\\\\s*(?:([a-zA-Z_][a-zA-Z_0-9]*\\\\\\\\s*)|((?:[a-zA-Z_][a-zA-Z_0-9]*\\\\\\\\s+)*)([a-zA-Z_][a-zA-Z_0-9]*)|([a-zA-Z_][a-zA-Z_0-9]*)\\\\\\\\s*(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*([a-zA-Z_][a-zA-Z_0-9]*)|((?:[a-zA-Z_][a-zA-Z_0-9]*\\\\\\\\s+)*)([a-zA-Z_][a-zA-Z_0-9]*)\\\\\\\\s*(=)\\\\\\\\s*(\\\\\\\\w+))(,|(?=>))\"}}},\"cpp_lang_newish\":{\"patterns\":[{\"include\":\"#special_block\"},{\"match\":\"(?-mix:##[a-zA-Z_]\\\\\\\\w*(?!\\\\\\\\w))\",\"name\":\"variable.other.macro.argument.objcpp\"},{\"include\":\"#strings\"},{\"match\":\"(?<!\\\\\\\\w)((?:inline|constexpr|mutable|friend|explicit|virtual))(?!\\\\\\\\w)\",\"name\":\"storage.modifier.specificer.functional.pre-parameters.$1.objcpp\"},{\"match\":\"(?<!\\\\\\\\w)((?:final|override|volatile|const|noexcept))(?!\\\\\\\\w)(?=\\\\\\\\s*(?:(?:(?:(?:\\\\\\\\{|;))|[\\\\\\\\n\\\\\\\\r])))\",\"name\":\"storage.modifier.specifier.functional.post-parameters.$1.objcpp\"},{\"match\":\"(?<!\\\\\\\\w)((?:const|static|volatile|register|restrict|extern))(?!\\\\\\\\w)\",\"name\":\"storage.modifier.specifier.$1.objcpp\"},{\"match\":\"(?<!\\\\\\\\w)((?:private|protected|public)) *:\",\"name\":\"storage.type.modifier.access.control.$1.objcpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:throw|try|catch)(?!\\\\\\\\w)\",\"name\":\"keyword.control.exception.$1.objcpp\"},{\"match\":\"(?<!\\\\\\\\w)(using|typedef)(?!\\\\\\\\w)\",\"name\":\"keyword.other.$1.objcpp\"},{\"include\":\"#memory_operators\"},{\"match\":\"\\\\\\\\bthis\\\\\\\\b\",\"name\":\"variable.language.this.objcpp\"},{\"include\":\"#constants\"},{\"include\":\"#template_definition\"},{\"match\":\"\\\\\\\\btemplate\\\\\\\\b\\\\\\\\s*\",\"name\":\"storage.type.template.objcpp\"},{\"match\":\"\\\\\\\\b(const_cast|dynamic_cast|reinterpret_cast|static_cast)\\\\\\\\b\\\\\\\\s*\",\"name\":\"keyword.operator.cast.$1.objcpp\"},{\"include\":\"#scope_resolution\"},{\"match\":\"\\\\\\\\b(decltype|wchar_t|char16_t|char32_t)\\\\\\\\b\",\"name\":\"storage.type.objcpp\"},{\"match\":\"\\\\\\\\b(constexpr|export|mutable|typename|thread_local)\\\\\\\\b\",\"name\":\"storage.modifier.objcpp\"},{\"begin\":\"(?:^|(?:(?<!else|new|=)))((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.destructor.objcpp\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.destructor.objcpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.destructor.objcpp\"}},\"name\":\"meta.function.destructor.objcpp\",\"patterns\":[{\"include\":\"$base\"}]},{\"begin\":\"(?:^|(?:(?<!else|new|=)))((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.objcpp\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.objcpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.objcpp\"}},\"name\":\"meta.function.destructor.prototype.objcpp\",\"patterns\":[{\"include\":\"$base\"}]},{\"include\":\"#preprocessor-rule-enabled\"},{\"include\":\"#preprocessor-rule-disabled\"},{\"include\":\"#preprocessor-rule-conditional\"},{\"include\":\"#comments-c\"},{\"match\":\"\\\\\\\\b(break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while)\\\\\\\\b\",\"name\":\"keyword.control.$1.objcpp\"},{\"include\":\"#storage_types_c\"},{\"match\":\"\\\\\\\\b(const|extern|register|restrict|static|volatile|inline)\\\\\\\\b\",\"name\":\"storage.modifier.objcpp\"},{\"include\":\"#operators\"},{\"include\":\"#operator_overload\"},{\"include\":\"#number_literal\"},{\"include\":\"#strings-c\"},{\"begin\":\"^\\\\\\\\s*((\\\\\\\\#)\\\\\\\\s*define)\\\\\\\\s+((?<id>[a-zA-Z_$][\\\\\\\\w$]*))(?:(\\\\\\\\()(\\\\\\\\s*\\\\\\\\g<id>\\\\\\\\s*((,)\\\\\\\\s*\\\\\\\\g<id>\\\\\\\\s*)*(?:\\\\\\\\.\\\\\\\\.\\\\\\\\.)?)(\\\\\\\\)))?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.define.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"},\"3\":{\"name\":\"entity.name.function.preprocessor.objcpp\"},\"5\":{\"name\":\"punctuation.definition.parameters.begin.objcpp\"},\"6\":{\"name\":\"variable.parameter.preprocessor.objcpp\"},\"8\":{\"name\":\"punctuation.separator.parameters.objcpp\"},\"9\":{\"name\":\"punctuation.definition.parameters.end.objcpp\"}},\"end\":\"(?=(?://|/\\\\\\\\*))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.macro.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-define-line-contents\"}]},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*(error|warning))\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.diagnostic.$3.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.diagnostic.objcpp\",\"patterns\":[{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objcpp\"}},\"end\":\"\\\\\"|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objcpp\"}},\"name\":\"string.quoted.double.objcpp\",\"patterns\":[{\"include\":\"#line_continuation_character\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objcpp\"}},\"end\":\"'|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objcpp\"}},\"name\":\"string.quoted.single.objcpp\",\"patterns\":[{\"include\":\"#line_continuation_character\"}]},{\"begin\":\"[^'\\\\\"]\",\"end\":\"(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"name\":\"string.unquoted.single.objcpp\",\"patterns\":[{\"include\":\"#line_continuation_character\"},{\"include\":\"#comments-c\"}]}]},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*(include(?:_next)?|import))\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.$3.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"(?=(?://|/\\\\\\\\*))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.include.objcpp\",\"patterns\":[{\"include\":\"#line_continuation_character\"},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objcpp\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objcpp\"}},\"name\":\"string.quoted.double.include.objcpp\"},{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objcpp\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objcpp\"}},\"name\":\"string.quoted.other.lt-gt.include.objcpp\"}]},{\"include\":\"#pragma-mark\"},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*line)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.line.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"(?=(?://|/\\\\\\\\*))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objcpp\",\"patterns\":[{\"include\":\"#strings-c\"},{\"include\":\"#number_literal\"},{\"include\":\"#line_continuation_character\"}]},{\"begin\":\"^\\\\\\\\s*(?:((#)\\\\\\\\s*undef))\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.undef.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"(?=(?://|/\\\\\\\\*))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objcpp\",\"patterns\":[{\"match\":\"[a-zA-Z_$][\\\\\\\\w$]*\",\"name\":\"entity.name.function.preprocessor.objcpp\"},{\"include\":\"#line_continuation_character\"}]},{\"begin\":\"^\\\\\\\\s*(?:((#)\\\\\\\\s*pragma))\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.pragma.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"(?=(?://|/\\\\\\\\*))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.pragma.objcpp\",\"patterns\":[{\"include\":\"#strings-c\"},{\"match\":\"[a-zA-Z_$][\\\\\\\\w\\\\\\\\-$]*\",\"name\":\"entity.other.attribute-name.pragma.preprocessor.objcpp\"},{\"include\":\"#number_literal\"},{\"include\":\"#line_continuation_character\"}]},{\"match\":\"\\\\\\\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\\\\\\\b\",\"name\":\"support.type.sys-types.objcpp\"},{\"match\":\"\\\\\\\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\\\\\\\b\",\"name\":\"support.type.pthread.objcpp\"},{\"match\":\"\\\\\\\\b(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t)\\\\\\\\b\",\"name\":\"support.type.stdint.objcpp\"},{\"match\":\"(?<!\\\\\\\\w)[a-zA-Z_](?:\\\\\\\\w)*_t(?!\\\\\\\\w)\",\"name\":\"support.type.posix-reserved.objcpp\"},{\"include\":\"#block-c\"},{\"include\":\"#parens-c\"},{\"begin\":\"(?<!\\\\\\\\w)(?!\\\\\\\\s*(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|NULL|true|false|nullptr|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\\\\\\\s*\\\\\\\\()(?=[a-zA-Z_]\\\\\\\\w*\\\\\\\\s*\\\\\\\\()\",\"end\":\"(?<=\\\\\\\\))\",\"name\":\"meta.function.definition.objcpp\",\"patterns\":[{\"include\":\"#function-innards-c\"}]},{\"include\":\"#line_continuation_character\"},{\"begin\":\"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\\\\\\\]\\\\\\\\)]))?(\\\\\\\\[)(?!\\\\\\\\])\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.object.objcpp\"},\"2\":{\"name\":\"punctuation.definition.begin.bracket.square.objcpp\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.square.objcpp\"}},\"name\":\"meta.bracket.square.access.objcpp\",\"patterns\":[{\"include\":\"#function-call-innards-c\"}]},{\"match\":\"(?-mix:(?<!delete))\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\\\s*\\\\\\\\\\\\\\\\]\",\"name\":\"storage.modifier.array.bracket.square.objcpp\"},{\"match\":\";\",\"name\":\"punctuation.terminator.statement.objcpp\"},{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.objcpp\"}],\"repository\":{\"access-member\":{\"captures\":{\"1\":{\"name\":\"variable.other.object.objcpp\"},\"2\":{\"name\":\"punctuation.separator.dot-access.objcpp\"},\"3\":{\"name\":\"punctuation.separator.pointer-access.objcpp\"},\"4\":{\"patterns\":[{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.separator.dot-access.objcpp\"},{\"match\":\"->\",\"name\":\"punctuation.separator.pointer-access.objcpp\"},{\"match\":\"[a-zA-Z_]\\\\\\\\w*\",\"name\":\"variable.other.object.objcpp\"},{\"match\":\".+\",\"name\":\"everything.else.objcpp\"}]},\"5\":{\"name\":\"variable.other.member.objcpp\"}},\"match\":\"(?:(?:([a-zA-Z_]\\\\\\\\w*)|(?<=\\\\\\\\]|\\\\\\\\))))\\\\\\\\s*(?:(?:((?:(?:\\\\\\\\.|\\\\\\\\.\\\\\\\\*)))|((?:(?:->|->\\\\\\\\*)))))\\\\\\\\s*((?:[a-zA-Z_]\\\\\\\\w*\\\\\\\\s*(?:(?:\\\\\\\\.|->))\\\\\\\\s*)*)\\\\\\\\b(?!(?:auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t))([a-zA-Z_]\\\\\\\\w*)\\\\\\\\b(?!\\\\\\\\()\",\"name\":\"variable.other.object.access.objcpp\"},\"access-method\":{\"begin\":\"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\\\\\\\]\\\\\\\\)]))\\\\\\\\s*(?:(\\\\\\\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\\\\\\\s*(?:(?:\\\\\\\\.)|(?:->)))*)\\\\\\\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.object.objcpp\"},\"2\":{\"name\":\"punctuation.separator.dot-access.objcpp\"},\"3\":{\"name\":\"punctuation.separator.pointer-access.objcpp\"},\"4\":{\"patterns\":[{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.separator.dot-access.objcpp\"},{\"match\":\"->\",\"name\":\"punctuation.separator.pointer-access.objcpp\"},{\"match\":\"[a-zA-Z_][a-zA-Z_0-9]*\",\"name\":\"variable.other.object.objcpp\"},{\"match\":\".+\",\"name\":\"everything.else.objcpp\"}]},\"5\":{\"name\":\"entity.name.function.member.objcpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.function.member.objcpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.function.member.objcpp\"}},\"name\":\"meta.function-call.member.objcpp\",\"patterns\":[{\"include\":\"#function-call-innards-c\"}]},\"angle_brackets\":{\"begin\":\"<\",\"end\":\">\",\"name\":\"meta.angle-brackets.objcpp\",\"patterns\":[{\"include\":\"#angle_brackets\"},{\"include\":\"$base\"}]},\"block\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.objcpp\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.objcpp\"}},\"name\":\"meta.block.objcpp\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"support.function.any-method.objcpp\"},\"2\":{\"name\":\"punctuation.definition.parameters.objcpp\"}},\"match\":\"((?!while|for|do|if|else|switch|catch|return)(?:\\\\\\\\b[A-Za-z_][A-Za-z0-9_]*+\\\\\\\\b|::)*+)\\\\\\\\s*(\\\\\\\\()\",\"name\":\"meta.function-call.objcpp\"},{\"include\":\"$base\"}]},\"block-c\":{\"patterns\":[{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.objcpp\"}},\"end\":\"}|(?=\\\\\\\\s*#\\\\\\\\s*(?:elif|else|endif)\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.objcpp\"}},\"name\":\"meta.block.objcpp\",\"patterns\":[{\"include\":\"#block_innards-c\"}]}]},\"block_innards-c\":{\"patterns\":[{\"include\":\"#preprocessor-rule-enabled-block\"},{\"include\":\"#preprocessor-rule-disabled-block\"},{\"include\":\"#preprocessor-rule-conditional-block\"},{\"include\":\"#access-method\"},{\"include\":\"#access-member\"},{\"include\":\"#c_function_call\"},{\"begin\":\"(?:(?:(?=\\\\\\\\s)(?<!else|new|return)(?<=\\\\\\\\w)\\\\\\\\s+(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)))((?:[A-Za-z_][A-Za-z0-9_]*+|::)++|(?:(?<=operator)(?:[-*&<>=+!]+|\\\\\\\\(\\\\\\\\)|\\\\\\\\[\\\\\\\\])))\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.objcpp\"},\"2\":{\"name\":\"punctuation.section.parens.begin.bracket.round.initialization.objcpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.initialization.objcpp\"}},\"name\":\"meta.initialization.objcpp\",\"patterns\":[{\"include\":\"#function-call-innards-c\"}]},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.objcpp\"}},\"end\":\"}|(?=\\\\\\\\s*#\\\\\\\\s*(?:elif|else|endif)\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.objcpp\"}},\"patterns\":[{\"include\":\"#block_innards-c\"}]},{\"include\":\"#parens-block-c\"},{\"include\":\"$base\"}]},\"c_function_call\":{\"begin\":\"(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\\\\\\\s*\\\\\\\\()(?=(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\\\\\\\s*(?:(?:<(?:[\\\\\\\\s<>,\\\\\\\\w])*>\\\\\\\\s*))?\\\\\\\\(|(?:(?<=operator)(?:[-*&<>=+!]+|\\\\\\\\(\\\\\\\\)|\\\\\\\\[\\\\\\\\]))\\\\\\\\s*\\\\\\\\()\",\"end\":\"(?<=\\\\\\\\))(?!\\\\\\\\w)\",\"name\":\"meta.function-call.objcpp\",\"patterns\":[{\"include\":\"#function-call-innards-c\"}]},\"comments-c\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"meta.toc-list.banner.block.objcpp\"}},\"match\":\"^/\\\\\\\\* =(\\\\\\\\s*.*?)\\\\\\\\s*= \\\\\\\\*/$\\\\\\\\n?\",\"name\":\"comment.block.objcpp\"},{\"begin\":\"/\\\\\\\\*\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.objcpp\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.objcpp\"}},\"name\":\"comment.block.objcpp\"},{\"captures\":{\"1\":{\"name\":\"meta.toc-list.banner.line.objcpp\"}},\"match\":\"^// =(\\\\\\\\s*.*?)\\\\\\\\s*=\\\\\\\\s*$\\\\\\\\n?\",\"name\":\"comment.line.banner.objcpp\"},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=//)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.objcpp\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.objcpp\"}},\"end\":\"(?=\\\\\\\\n)\",\"name\":\"comment.line.double-slash.objcpp\",\"patterns\":[{\"include\":\"#line_continuation_character\"}]}]}]},\"constants\":{\"match\":\"(?<!\\\\\\\\w)(?:NULL|true|false|nullptr)(?!\\\\\\\\w)\",\"name\":\"constant.language.objcpp\"},\"constructor\":{\"patterns\":[{\"begin\":\"(?:^\\\\\\\\s*)((?!while|for|do|if|else|switch|catch)[A-Za-z_][A-Za-z0-9_:]*)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.constructor.objcpp\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.constructor.objcpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.constructor.objcpp\"}},\"name\":\"meta.function.constructor.objcpp\",\"patterns\":[{\"include\":\"#probably_a_parameter\"},{\"include\":\"#function-innards-c\"}]},{\"begin\":\"(:)((?=\\\\\\\\s*[A-Za-z_][A-Za-z0-9_:]*\\\\\\\\s*(\\\\\\\\()))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.initializer-list.parameters.objcpp\"}},\"end\":\"(?=\\\\\\\\{)\",\"name\":\"meta.function.constructor.initializer-list.objcpp\",\"patterns\":[{\"include\":\"$base\"}]}]},\"disabled\":{\"begin\":\"^\\\\\\\\s*#\\\\\\\\s*if(n?def)?\\\\\\\\b.*$\",\"end\":\"^\\\\\\\\s*#\\\\\\\\s*endif\\\\\\\\b\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},\"function-call-innards-c\":{\"patterns\":[{\"include\":\"#comments-c\"},{\"include\":\"#storage_types_c\"},{\"include\":\"#access-method\"},{\"include\":\"#access-member\"},{\"include\":\"#operators\"},{\"begin\":\"(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\\\\\\\s*\\\\\\\\()((?:new)\\\\\\\\s*((?:(?:<(?:[\\\\\\\\s<>,\\\\\\\\w])*>\\\\\\\\s*))?)|(?:(?<=operator)(?:[-*&<>=+!]+|\\\\\\\\(\\\\\\\\)|\\\\\\\\[\\\\\\\\])))\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.memory.new.objcpp\"},\"2\":{\"patterns\":[{\"include\":\"#template_call_innards\"}]},\"3\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.objcpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.objcpp\"}},\"patterns\":[{\"include\":\"#function-call-innards-c\"}]},{\"begin\":\"(?<!\\\\\\\\w)(?!\\\\\\\\s*(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|NULL|true|false|nullptr|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\\\\\\\s*\\\\\\\\()((?:[a-zA-Z_]\\\\\\\\w*\\\\\\\\s*(?:(?:<(?:[\\\\\\\\s<>,\\\\\\\\w])*>\\\\\\\\s*))?::)*)\\\\\\\\s*([a-zA-Z_]\\\\\\\\w*)\\\\\\\\s*(?:((?:<(?:[\\\\\\\\s<>,\\\\\\\\w])*>\\\\\\\\s*)))?(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#scope_resolution\"}]},\"2\":{\"name\":\"entity.name.function.call.objcpp\"},\"3\":{\"patterns\":[{\"include\":\"#template_call_innards\"}]},\"4\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.objcpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.objcpp\"}},\"patterns\":[{\"include\":\"#function-call-innards-c\"}]},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.objcpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.objcpp\"}},\"patterns\":[{\"include\":\"#function-call-innards-c\"}]},{\"include\":\"#block_innards-c\"}]},\"function-innards-c\":{\"patterns\":[{\"include\":\"#comments-c\"},{\"include\":\"#storage_types_c\"},{\"include\":\"#operators\"},{\"include\":\"#vararg_ellipses-c\"},{\"begin\":\"(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\\\\\\\s*\\\\\\\\()((?:[A-Za-z_][A-Za-z0-9_]*+|::)++|(?:(?<=operator)(?:[-*&<>=+!]+|\\\\\\\\(\\\\\\\\)|\\\\\\\\[\\\\\\\\])))\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.objcpp\"},\"2\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.objcpp\"}},\"end\":\"\\\\\\\\)|:\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.end.bracket.round.objcpp\"}},\"name\":\"meta.function.definition.parameters.objcpp\",\"patterns\":[{\"include\":\"#probably_a_parameter\"},{\"include\":\"#function-innards-c\"}]},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.objcpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.objcpp\"}},\"patterns\":[{\"include\":\"#function-innards-c\"}]},{\"include\":\"$base\"}]},\"line_continuation_character\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.character.escape.line-continuation.objcpp\"}},\"match\":\"(\\\\\\\\\\\\\\\\)\\\\\\\\n\"}]},\"literal_numeric_seperator\":{\"match\":\"(?<!')'(?!')\",\"name\":\"punctuation.separator.constant.numeric.objcpp\"},\"memory_operators\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.memory.delete.array.objcpp\"},\"2\":{\"name\":\"keyword.operator.memory.delete.array.bracket.objcpp\"},\"3\":{\"name\":\"keyword.operator.memory.delete.objcpp\"},\"4\":{\"name\":\"keyword.operator.memory.new.objcpp\"}},\"match\":\"(?<!\\\\\\\\w)(?:(?:(delete)\\\\\\\\s*(\\\\\\\\[\\\\\\\\])|(delete))|(new))(?!\\\\\\\\w)\",\"name\":\"keyword.operator.memory.objcpp\"},\"number_literal\":{\"captures\":{\"2\":{\"name\":\"keyword.other.unit.hexadecimal.objcpp\"},\"3\":{\"name\":\"constant.numeric.hexadecimal.objcpp\",\"patterns\":[{\"include\":\"#literal_numeric_seperator\"}]},\"4\":{\"name\":\"punctuation.separator.constant.numeric.objcpp\"},\"5\":{\"name\":\"constant.numeric.hexadecimal.objcpp\"},\"6\":{\"name\":\"constant.numeric.hexadecimal.objcpp\",\"patterns\":[{\"include\":\"#literal_numeric_seperator\"}]},\"7\":{\"name\":\"punctuation.separator.constant.numeric.objcpp\"},\"8\":{\"name\":\"keyword.other.unit.exponent.hexadecimal.objcpp\"},\"9\":{\"name\":\"keyword.operator.plus.exponent.hexadecimal.objcpp\"},\"10\":{\"name\":\"keyword.operator.minus.exponent.hexadecimal.objcpp\"},\"11\":{\"name\":\"constant.numeric.exponent.hexadecimal.objcpp\",\"patterns\":[{\"include\":\"#literal_numeric_seperator\"}]},\"12\":{\"name\":\"constant.numeric.decimal.objcpp\",\"patterns\":[{\"include\":\"#literal_numeric_seperator\"}]},\"13\":{\"name\":\"punctuation.separator.constant.numeric.objcpp\"},\"14\":{\"name\":\"constant.numeric.decimal.point.objcpp\"},\"15\":{\"name\":\"constant.numeric.decimal.objcpp\",\"patterns\":[{\"include\":\"#literal_numeric_seperator\"}]},\"16\":{\"name\":\"punctuation.separator.constant.numeric.objcpp\"},\"17\":{\"name\":\"keyword.other.unit.exponent.decimal.objcpp\"},\"18\":{\"name\":\"keyword.operator.plus.exponent.decimal.objcpp\"},\"19\":{\"name\":\"keyword.operator.minus.exponent.decimal.objcpp\"},\"20\":{\"name\":\"constant.numeric.exponent.decimal.objcpp\",\"patterns\":[{\"include\":\"#literal_numeric_seperator\"}]},\"21\":{\"name\":\"keyword.other.unit.suffix.floating-point.objcpp\"},\"22\":{\"name\":\"keyword.other.unit.binary.objcpp\"},\"23\":{\"name\":\"constant.numeric.binary.objcpp\",\"patterns\":[{\"include\":\"#literal_numeric_seperator\"}]},\"24\":{\"name\":\"punctuation.separator.constant.numeric.objcpp\"},\"25\":{\"name\":\"keyword.other.unit.octal.objcpp\"},\"26\":{\"name\":\"constant.numeric.octal.objcpp\",\"patterns\":[{\"include\":\"#literal_numeric_seperator\"}]},\"27\":{\"name\":\"punctuation.separator.constant.numeric.objcpp\"},\"28\":{\"name\":\"keyword.other.unit.hexadecimal.objcpp\"},\"29\":{\"name\":\"constant.numeric.hexadecimal.objcpp\",\"patterns\":[{\"include\":\"#literal_numeric_seperator\"}]},\"30\":{\"name\":\"punctuation.separator.constant.numeric.objcpp\"},\"31\":{\"name\":\"keyword.other.unit.exponent.hexadecimal.objcpp\"},\"32\":{\"name\":\"keyword.operator.plus.exponent.hexadecimal.objcpp\"},\"33\":{\"name\":\"keyword.operator.minus.exponent.hexadecimal.objcpp\"},\"34\":{\"name\":\"constant.numeric.exponent.hexadecimal.objcpp\",\"patterns\":[{\"include\":\"#literal_numeric_seperator\"}]},\"35\":{\"name\":\"constant.numeric.decimal.objcpp\",\"patterns\":[{\"include\":\"#literal_numeric_seperator\"}]},\"36\":{\"name\":\"punctuation.separator.constant.numeric.objcpp\"},\"37\":{\"name\":\"keyword.other.unit.exponent.decimal.objcpp\"},\"38\":{\"name\":\"keyword.operator.plus.exponent.decimal.objcpp\"},\"39\":{\"name\":\"keyword.operator.minus.exponent.decimal.objcpp\"},\"40\":{\"name\":\"constant.numeric.exponent.decimal.objcpp\",\"patterns\":[{\"include\":\"#literal_numeric_seperator\"}]},\"41\":{\"name\":\"keyword.other.unit.suffix.integer.objcpp\"},\"42\":{\"name\":\"keyword.other.unit.user-defined.objcpp\"}},\"match\":\"((?<!\\\\\\\\w)(?:(?:(?:(0[xX])(?:([0-9a-fA-F](?:(?:(?:[0-9a-fA-F]|((?<!')'(?!')))))*))?((?:(?:(?<=[0-9a-fA-F])\\\\\\\\.|\\\\\\\\.(?=[0-9a-fA-F]))))(?:([0-9a-fA-F](?:(?:(?:[0-9a-fA-F]|((?<!')'(?!')))))*))?(?:([pP])(\\\\\\\\+)?(\\\\\\\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?|(?:([0-9](?:(?:(?:[0-9]|((?<!')'(?!')))))*))?((?:(?:(?<=[0-9])\\\\\\\\.|\\\\\\\\.(?=[0-9]))))(?:([0-9](?:(?:(?:[0-9]|((?<!')'(?!')))))*))?(?:([eE])(\\\\\\\\+)?(\\\\\\\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?)(?:([lLfF](?!\\\\\\\\w)))?|(?:(?:(?:(?:(?:(0[bB])((?:(?:(?:[01]|((?<!')'(?!')))))+)|(0)((?:(?:(?:[0-7]|((?<!')'(?!')))))+)))|(0[xX])([0-9a-fA-F](?:(?:(?:[0-9a-fA-F]|((?<!')'(?!')))))*)(?:([pP])(\\\\\\\\+)?(\\\\\\\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?))|([0-9](?:(?:(?:[0-9]|((?<!')'(?!')))))*)(?:([eE])(\\\\\\\\+)?(\\\\\\\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?)(?:((?:(?:(?:(?:(?:(?:(?:(?:(?:(?:(?:(?:LL[uU]|ll[uU]))|[uU]LL))|[uU]ll))|ll))|LL))|[uUlL]))(?!\\\\\\\\w)))?))(\\\\\\\\w*))\"},\"operator_overload\":{\"begin\":\"((?:[a-zA-Z_]\\\\\\\\w*\\\\\\\\s*(?:(?:<(?:[\\\\\\\\s<>,\\\\\\\\w])*>\\\\\\\\s*))?::)*)\\\\\\\\s*(operator)((?:(?:\\\\\\\\s*(?:\\\\\\\\+\\\\\\\\+|\\\\\\\\-\\\\\\\\-|\\\\\\\\(\\\\\\\\)|\\\\\\\\[\\\\\\\\]|\\\\\\\\->|\\\\\\\\+\\\\\\\\+|\\\\\\\\-\\\\\\\\-|\\\\\\\\+|\\\\\\\\-|!|~|\\\\\\\\*|&|\\\\\\\\->\\\\\\\\*|\\\\\\\\*|\\\\\\\\/|%|\\\\\\\\+|\\\\\\\\-|<<|>>|<=>|<|<=|>|>=|==|!=|&|\\\\\\\\^|\\\\\\\\||&&|\\\\\\\\|\\\\\\\\||=|\\\\\\\\+=|\\\\\\\\-=|\\\\\\\\*=|\\\\\\\\/=|%=|<<=|>>=|&=|\\\\\\\\^=|\\\\\\\\|=|,)|\\\\\\\\s+(?:(?:(?:new|new\\\\\\\\[\\\\\\\\]|delete|delete\\\\\\\\[\\\\\\\\])|(?:[a-zA-Z_]\\\\\\\\w*\\\\\\\\s*(?:(?:<(?:[\\\\\\\\s<>,\\\\\\\\w])*>\\\\\\\\s*))?::)*[a-zA-Z_]\\\\\\\\w*\\\\\\\\s*(?:&)?)))))\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.scope.objcpp\"},\"2\":{\"name\":\"keyword.other.operator.overload.objcpp\"},\"3\":{\"name\":\"entity.name.operator.overloadee.objcpp\"},\"4\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.objcpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.end.bracket.round.objcpp\"}},\"name\":\"meta.function.definition.parameters.operator-overload.objcpp\",\"patterns\":[{\"include\":\"#probably_a_parameter\"},{\"include\":\"#function-innards-c\"}]},\"operators\":{\"patterns\":[{\"match\":\"(?-mix:(?<!\\\\\\\\w)((?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept))(?!\\\\\\\\w))\",\"name\":\"keyword.operator.$1.objcpp\"},{\"match\":\"--\",\"name\":\"keyword.operator.decrement.objcpp\"},{\"match\":\"\\\\\\\\+\\\\\\\\+\",\"name\":\"keyword.operator.increment.objcpp\"},{\"match\":\"%=|\\\\\\\\+=|-=|\\\\\\\\*=|(?<!\\\\\\\\()/=\",\"name\":\"keyword.operator.assignment.compound.objcpp\"},{\"match\":\"&=|\\\\\\\\^=|<<=|>>=|\\\\\\\\|=\",\"name\":\"keyword.operator.assignment.compound.bitwise.objcpp\"},{\"match\":\"<<|>>\",\"name\":\"keyword.operator.bitwise.shift.objcpp\"},{\"match\":\"!=|<=|>=|==|<|>\",\"name\":\"keyword.operator.comparison.objcpp\"},{\"match\":\"&&|!|\\\\\\\\|\\\\\\\\|\",\"name\":\"keyword.operator.logical.objcpp\"},{\"match\":\"&|\\\\\\\\||\\\\\\\\^|~\",\"name\":\"keyword.operator.objcpp\"},{\"match\":\"=\",\"name\":\"keyword.operator.assignment.objcpp\"},{\"match\":\"%|\\\\\\\\*|/|-|\\\\\\\\+\",\"name\":\"keyword.operator.objcpp\"},{\"applyEndPatternLast\":true,\"begin\":\"\\\\\\\\?\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.ternary.objcpp\"}},\"end\":\":\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.ternary.objcpp\"}},\"patterns\":[{\"include\":\"#access-method\"},{\"include\":\"#access-member\"},{\"include\":\"#c_function_call\"},{\"include\":\"$base\"}]}]},\"parens-block-c\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.objcpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.objcpp\"}},\"name\":\"meta.block.parens.objcpp\",\"patterns\":[{\"include\":\"#block_innards-c\"},{\"match\":\"(?<!:):(?!:)\",\"name\":\"punctuation.range-based.objcpp\"}]},\"parens-c\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.objcpp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.objcpp\"}},\"name\":\"punctuation.section.parens-c\\\\b.objcpp\",\"patterns\":[{\"include\":\"$base\"}]},\"pragma-mark\":{\"captures\":{\"1\":{\"name\":\"meta.preprocessor.pragma.objcpp\"},\"2\":{\"name\":\"keyword.control.directive.pragma.pragma-mark.objcpp\"},\"3\":{\"name\":\"punctuation.definition.directive.objcpp\"},\"4\":{\"name\":\"entity.name.tag.pragma-mark.objcpp\"}},\"match\":\"^\\\\\\\\s*(((#)\\\\\\\\s*pragma\\\\\\\\s+mark)\\\\\\\\s+(.*))\",\"name\":\"meta.section.objcpp\"},\"preprocessor-rule-conditional\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*if(?:n?def)?\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#preprocessor-rule-enabled-elif\"},{\"include\":\"#preprocessor-rule-enabled-else\"},{\"include\":\"#preprocessor-rule-disabled-elif\"},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"$base\"}]},{\"captures\":{\"0\":{\"name\":\"invalid.illegal.stray-$1.objcpp\"}},\"match\":\"^\\\\\\\\s*#\\\\\\\\s*(else|elif|endif)\\\\\\\\b\"}]},\"preprocessor-rule-conditional-block\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*if(?:n?def)?\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#preprocessor-rule-enabled-elif-block\"},{\"include\":\"#preprocessor-rule-enabled-else-block\"},{\"include\":\"#preprocessor-rule-disabled-elif\"},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#block_innards-c\"}]},{\"captures\":{\"0\":{\"name\":\"invalid.illegal.stray-$1.objcpp\"}},\"match\":\"^\\\\\\\\s*#\\\\\\\\s*(else|elif|endif)\\\\\\\\b\"}]},\"preprocessor-rule-conditional-line\":{\"patterns\":[{\"match\":\"(?:\\\\\\\\bdefined\\\\\\\\b\\\\\\\\s*$)|(?:\\\\\\\\bdefined\\\\\\\\b(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\s*(?:(?!defined\\\\\\\\b)[a-zA-Z_$][\\\\\\\\w$]*\\\\\\\\b)\\\\\\\\s*\\\\\\\\)*\\\\\\\\s*(?:\\\\\\\\n|//|/\\\\\\\\*|\\\\\\\\?|\\\\\\\\:|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n)))\",\"name\":\"keyword.control.directive.conditional.objcpp\"},{\"match\":\"\\\\\\\\bdefined\\\\\\\\b\",\"name\":\"invalid.illegal.macro-name.objcpp\"},{\"include\":\"#comments-c\"},{\"include\":\"#strings-c\"},{\"include\":\"#number_literal\"},{\"begin\":\"\\\\\\\\?\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.ternary.objcpp\"}},\"end\":\":\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.ternary.objcpp\"}},\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#operators\"},{\"include\":\"#constants\"},{\"match\":\"[a-zA-Z_$][\\\\\\\\w$]*\",\"name\":\"entity.name.function.preprocessor.objcpp\"},{\"include\":\"#line_continuation_character\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.objcpp\"}},\"end\":\"\\\\\\\\)|(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.objcpp\"}},\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]}]},\"preprocessor-rule-define-line-blocks\":{\"patterns\":[{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.objcpp\"}},\"end\":\"}|(?=\\\\\\\\s*#\\\\\\\\s*(?:elif|else|endif)\\\\\\\\b)|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.objcpp\"}},\"patterns\":[{\"include\":\"#preprocessor-rule-define-line-blocks\"},{\"include\":\"#preprocessor-rule-define-line-contents\"}]},{\"include\":\"#preprocessor-rule-define-line-contents\"}]},\"preprocessor-rule-define-line-contents\":{\"patterns\":[{\"include\":\"#vararg_ellipses-c\"},{\"match\":\"(?-mix:##?[a-zA-Z_]\\\\\\\\w*(?!\\\\\\\\w))\",\"name\":\"variable.other.macro.argument.objcpp\"},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.objcpp\"}},\"end\":\"}|(?=\\\\\\\\s*#\\\\\\\\s*(?:elif|else|endif)\\\\\\\\b)|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.objcpp\"}},\"name\":\"meta.block.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-define-line-blocks\"}]},{\"match\":\"\\\\\\\\(\",\"name\":\"punctuation.section.parens.begin.bracket.round.objcpp\"},{\"match\":\"\\\\\\\\)\",\"name\":\"punctuation.section.parens.end.bracket.round.objcpp\"},{\"begin\":\"(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\\\\\\\s*\\\\\\\\()(?=(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\\\\\\\s*\\\\\\\\(|(?:(?<=operator)(?:[-*&<>=+!]+|\\\\\\\\(\\\\\\\\)|\\\\\\\\[\\\\\\\\]))\\\\\\\\s*\\\\\\\\()\",\"end\":\"(?<=\\\\\\\\))(?!\\\\\\\\w)|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"name\":\"meta.function.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-define-line-functions\"}]},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objcpp\"}},\"end\":\"\\\\\"|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objcpp\"}},\"name\":\"string.quoted.double.objcpp\",\"patterns\":[{\"include\":\"#string_escaped_char-c\"},{\"include\":\"#string_placeholder-c\"},{\"include\":\"#line_continuation_character\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objcpp\"}},\"end\":\"'|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objcpp\"}},\"name\":\"string.quoted.single.objcpp\",\"patterns\":[{\"include\":\"#string_escaped_char-c\"},{\"include\":\"#line_continuation_character\"}]},{\"include\":\"#access-method\"},{\"include\":\"#access-member\"},{\"include\":\"$base\"}]},\"preprocessor-rule-define-line-functions\":{\"patterns\":[{\"include\":\"#comments-c\"},{\"include\":\"#storage_types_c\"},{\"include\":\"#vararg_ellipses-c\"},{\"include\":\"#access-method\"},{\"include\":\"#access-member\"},{\"include\":\"#operators\"},{\"begin\":\"(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\\\\\\\s*\\\\\\\\()((?:[A-Za-z_][A-Za-z0-9_]*+|::)++|(?:(?<=operator)(?:[-*&<>=+!]+|\\\\\\\\(\\\\\\\\)|\\\\\\\\[\\\\\\\\])))\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.objcpp\"},\"2\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.objcpp\"}},\"end\":\"(\\\\\\\\))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.arguments.end.bracket.round.objcpp\"}},\"patterns\":[{\"include\":\"#preprocessor-rule-define-line-functions\"}]},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.objcpp\"}},\"end\":\"(\\\\\\\\))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.parens.end.bracket.round.objcpp\"}},\"patterns\":[{\"include\":\"#preprocessor-rule-define-line-functions\"}]},{\"include\":\"#preprocessor-rule-define-line-contents\"}]},\"preprocessor-rule-disabled\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*if\\\\\\\\b)(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\b0+\\\\\\\\b\\\\\\\\)*\\\\\\\\s*(?:$|//|/\\\\\\\\*))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#comments-c\"},{\"include\":\"#preprocessor-rule-enabled-elif\"},{\"include\":\"#preprocessor-rule-enabled-else\"},{\"include\":\"#preprocessor-rule-disabled-elif\"},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:elif|else|endif)\\\\\\\\b))\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"$base\"}]},{\"begin\":\"\\\\\\\\n\",\"contentName\":\"comment.block.preprocessor.if-branch.objcpp\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]}]}]},\"preprocessor-rule-disabled-block\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*if\\\\\\\\b)(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\b0+\\\\\\\\b\\\\\\\\)*\\\\\\\\s*(?:$|//|/\\\\\\\\*))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#comments-c\"},{\"include\":\"#preprocessor-rule-enabled-elif-block\"},{\"include\":\"#preprocessor-rule-enabled-else-block\"},{\"include\":\"#preprocessor-rule-disabled-elif\"},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:elif|else|endif)\\\\\\\\b))\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#block_innards-c\"}]},{\"begin\":\"\\\\\\\\n\",\"contentName\":\"comment.block.preprocessor.if-branch.in-block.objcpp\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]}]}]},\"preprocessor-rule-disabled-elif\":{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\b0+\\\\\\\\b\\\\\\\\)*\\\\\\\\s*(?:$|//|/\\\\\\\\*))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:elif|else|endif)\\\\\\\\b))\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#comments-c\"},{\"begin\":\"\\\\\\\\n\",\"contentName\":\"comment.block.preprocessor.elif-branch.objcpp\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]}]},\"preprocessor-rule-enabled\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*if\\\\\\\\b)(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\b0*1\\\\\\\\b\\\\\\\\)*\\\\\\\\s*(?:$|//|/\\\\\\\\*))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"},\"3\":{\"name\":\"constant.numeric.preprocessor.objcpp\"}},\"end\":\"^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#comments-c\"},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*else\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"contentName\":\"comment.block.preprocessor.else-branch.objcpp\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"contentName\":\"comment.block.preprocessor.if-branch.objcpp\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"begin\":\"\\\\\\\\n\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"$base\"}]}]}]},\"preprocessor-rule-enabled-block\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*if\\\\\\\\b)(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\b0*1\\\\\\\\b\\\\\\\\)*\\\\\\\\s*(?:$|//|/\\\\\\\\*))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#comments-c\"},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*else\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"contentName\":\"comment.block.preprocessor.else-branch.in-block.objcpp\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"contentName\":\"comment.block.preprocessor.if-branch.in-block.objcpp\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"begin\":\"\\\\\\\\n\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#block_innards-c\"}]}]}]},\"preprocessor-rule-enabled-elif\":{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\b0*1\\\\\\\\b\\\\\\\\)*\\\\\\\\s*(?:$|//|/\\\\\\\\*))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#comments-c\"},{\"begin\":\"\\\\\\\\n\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:endif)\\\\\\\\b))\",\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*(else)\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"contentName\":\"comment.block.preprocessor.elif-branch.objcpp\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*(elif)\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"contentName\":\"comment.block.preprocessor.elif-branch.objcpp\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"include\":\"$base\"}]}]},\"preprocessor-rule-enabled-elif-block\":{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\b0*1\\\\\\\\b\\\\\\\\)*\\\\\\\\s*(?:$|//|/\\\\\\\\*))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objcpp\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#comments-c\"},{\"begin\":\"\\\\\\\\n\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:endif)\\\\\\\\b))\",\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*(else)\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"contentName\":\"comment.block.preprocessor.elif-branch.in-block.objcpp\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*(elif)\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"contentName\":\"comment.block.preprocessor.elif-branch.objcpp\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"include\":\"#block_innards-c\"}]}]},\"preprocessor-rule-enabled-else\":{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*else\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"include\":\"$base\"}]},\"preprocessor-rule-enabled-else-block\":{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*else\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objcpp\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objcpp\"},\"2\":{\"name\":\"punctuation.definition.directive.objcpp\"}},\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"include\":\"#block_innards-c\"}]},\"probably_a_parameter\":{\"captures\":{\"1\":{\"name\":\"variable.parameter.probably.defaulted.objcpp\"},\"2\":{\"name\":\"variable.parameter.probably.objcpp\"}},\"match\":\"(?:(?:([a-zA-Z_]\\\\\\\\w*)\\\\\\\\s*(?==)|(?<=\\\\\\\\w\\\\\\\\s|\\\\\\\\*\\\\\\\\/|[&*>\\\\\\\\]\\\\\\\\)])\\\\\\\\s*([a-zA-Z_]\\\\\\\\w*)\\\\\\\\s*(?=(?:\\\\\\\\[\\\\\\\\]\\\\\\\\s*)?(?:(?:,|\\\\\\\\))))))\"},\"scope_resolution\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#scope_resolution\"}]},\"2\":{\"name\":\"entity.name.namespace.scope-resolution.objcpp\"},\"3\":{\"patterns\":[{\"include\":\"#template_call_innards\"}]},\"4\":{\"name\":\"punctuation.separator.namespace.access.objcpp\"}},\"match\":\"((?:[a-zA-Z_]\\\\\\\\w*\\\\\\\\s*(?:(?:<(?:[\\\\\\\\s<>,\\\\\\\\w])*>\\\\\\\\s*))?::)*\\\\\\\\s*)([a-zA-Z_]\\\\\\\\w*)\\\\\\\\s*((?:<(?:[\\\\\\\\s<>,\\\\\\\\w])*>\\\\\\\\s*))?(::)\",\"name\":\"meta.scope-resolution.objcpp\"},\"special_block\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(using)\\\\\\\\s+(namespace)\\\\\\\\s+(?:((?:[a-zA-Z_]\\\\\\\\w*\\\\\\\\s*(?:(?:<(?:[\\\\\\\\s<>,\\\\\\\\w])*>\\\\\\\\s*))?::)*)\\\\\\\\s*)?((?<!\\\\\\\\w)[a-zA-Z_]\\\\\\\\w*(?!\\\\\\\\w))(?=;|\\\\\\\\n)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.using.directive.objcpp\"},\"2\":{\"name\":\"keyword.other.namespace.directive.objcpp storage.type.namespace.directive.objcpp\"},\"3\":{\"patterns\":[{\"include\":\"#scope_resolution\"}]},\"4\":{\"name\":\"entity.name.namespace.objcpp\"}},\"comment\":\"https://en.cppreference.com/w/cpp/language/namespace\",\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.statement.objcpp\"}},\"name\":\"meta.using-namespace-declaration.objcpp\"},{\"begin\":\"(?<!\\\\\\\\w)(namespace)\\\\\\\\s+(?:(?:((?:[a-zA-Z_]\\\\\\\\w*\\\\\\\\s*(?:(?:<(?:[\\\\\\\\s<>,\\\\\\\\w])*>\\\\\\\\s*))?::)*[a-zA-Z_]\\\\\\\\w*)|(?={)))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.namespace.definition.objcpp storage.type.namespace.definition.objcpp\"},\"2\":{\"patterns\":[{\"match\":\"(?-mix:(?<!\\\\\\\\w)[a-zA-Z_]\\\\\\\\w*(?!\\\\\\\\w))\",\"name\":\"entity.name.type.objcpp\"},{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.objcpp\"}]}},\"end\":\"(?<=\\\\\\\\})|(?=(;|,|\\\\\\\\(|\\\\\\\\)|>|\\\\\\\\[|\\\\\\\\]|=))\",\"name\":\"meta.namespace-block.objcpp\",\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.scope.objcpp\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.scope.objcpp\"}},\"patterns\":[{\"include\":\"#special_block\"},{\"include\":\"#constructor\"},{\"include\":\"$base\"}]},{\"include\":\"$base\"}]},{\"begin\":\"\\\\\\\\b(?:(class)|(struct))\\\\\\\\b\\\\\\\\s*([_A-Za-z][_A-Za-z0-9]*\\\\\\\\b)?+(\\\\\\\\s*:\\\\\\\\s*(public|protected|private)\\\\\\\\s*([_A-Za-z][_A-Za-z0-9]*\\\\\\\\b)((\\\\\\\\s*,\\\\\\\\s*(public|protected|private)\\\\\\\\s*[_A-Za-z][_A-Za-z0-9]*\\\\\\\\b)*))?\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.objcpp\"},\"2\":{\"name\":\"storage.type.struct.objcpp\"},\"3\":{\"name\":\"entity.name.type.objcpp\"},\"5\":{\"name\":\"storage.type.modifier.access.objcpp\"},\"6\":{\"name\":\"entity.name.type.inherited.objcpp\"},\"7\":{\"patterns\":[{\"match\":\"(public|protected|private)\",\"name\":\"storage.type.modifier.access.objcpp\"},{\"match\":\"[_A-Za-z][_A-Za-z0-9]*\",\"name\":\"entity.name.type.inherited.objcpp\"}]}},\"end\":\"(?<=\\\\\\\\})|(;)|(?=(\\\\\\\\(|\\\\\\\\)|>|\\\\\\\\[|\\\\\\\\]|=))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.objcpp\"}},\"name\":\"meta.class-struct-block.objcpp\",\"patterns\":[{\"include\":\"#angle_brackets\"},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.objcpp\"}},\"end\":\"(\\\\\\\\})(\\\\\\\\s*\\\\\\\\n)?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.block.end.bracket.curly.objcpp\"},\"2\":{\"name\":\"invalid.illegal.you-forgot-semicolon.objcpp\"}},\"patterns\":[{\"include\":\"#special_block\"},{\"include\":\"#constructor\"},{\"include\":\"$base\"}]},{\"include\":\"$base\"}]},{\"begin\":\"\\\\\\\\b(extern)(?=\\\\\\\\s*\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.objcpp\"}},\"end\":\"(?<=\\\\\\\\})|(?=\\\\\\\\w)|(?=\\\\\\\\s*#\\\\\\\\s*endif\\\\\\\\b)\",\"name\":\"meta.extern-block.objcpp\",\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.objcpp\"}},\"end\":\"\\\\\\\\}|(?=\\\\\\\\s*#\\\\\\\\s*endif\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.objcpp\"}},\"patterns\":[{\"include\":\"#special_block\"},{\"include\":\"$base\"}]},{\"include\":\"$base\"}]}]},\"storage_types_c\":{\"patterns\":[{\"match\":\"(?<!\\\\\\\\w)(?:auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t)(?!\\\\\\\\w)\",\"name\":\"storage.type.primitive.objcpp\"},{\"match\":\"(?<!\\\\\\\\w)(?:u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t)(?!\\\\\\\\w)\",\"name\":\"storage.type.objcpp\"},{\"match\":\"(?<!\\\\\\\\w)(asm|__asm__|enum|union|struct)(?!\\\\\\\\w)\",\"name\":\"storage.type.$1.objcpp\"}]},\"string_escaped_char-c\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(\\\\\\\\\\\\\\\\|[abefnprtv'\\\\\"?]|[0-3]\\\\\\\\d{,2}|[4-7]\\\\\\\\d?|x[a-fA-F0-9]{,2}|u[a-fA-F0-9]{,4}|U[a-fA-F0-9]{,8})\",\"name\":\"constant.character.escape.objcpp\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"invalid.illegal.unknown-escape.objcpp\"}]},\"string_placeholder-c\":{\"patterns\":[{\"match\":\"%(\\\\\\\\d+\\\\\\\\$)?[#0\\\\\\\\- +']*[,;:_]?((-?\\\\\\\\d+)|\\\\\\\\*(-?\\\\\\\\d+\\\\\\\\$)?)?(\\\\\\\\.((-?\\\\\\\\d+)|\\\\\\\\*(-?\\\\\\\\d+\\\\\\\\$)?)?)?(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)?[diouxXDOUeEfFgGaACcSspn%]\",\"name\":\"constant.other.placeholder.objcpp\"}]},\"strings\":{\"patterns\":[{\"begin\":\"(u|u8|U|L)?\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objcpp\"},\"1\":{\"name\":\"meta.encoding.objcpp\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objcpp\"}},\"name\":\"string.quoted.double.objcpp\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\u\\\\\\\\h{4}|\\\\\\\\\\\\\\\\U\\\\\\\\h{8}\",\"name\":\"constant.character.escape.objcpp\"},{\"match\":\"\\\\\\\\\\\\\\\\['\\\\\"?\\\\\\\\\\\\\\\\abfnrtv]\",\"name\":\"constant.character.escape.objcpp\"},{\"match\":\"\\\\\\\\\\\\\\\\[0-7]{1,3}\",\"name\":\"constant.character.escape.objcpp\"},{\"match\":\"\\\\\\\\\\\\\\\\x\\\\\\\\h+\",\"name\":\"constant.character.escape.objcpp\"},{\"include\":\"#string_placeholder-c\"}]},{\"begin\":\"(u|u8|U|L)?R\\\\\"(?:([^ ()\\\\\\\\\\\\\\\\\\\\\\\\t]{0,16})|([^ ()\\\\\\\\\\\\\\\\\\\\\\\\t]*))\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objcpp\"},\"1\":{\"name\":\"meta.encoding.objcpp\"},\"3\":{\"name\":\"invalid.illegal.delimiter-too-long.objcpp\"}},\"end\":\"\\\\\\\\)\\\\\\\\2(\\\\\\\\3)\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objcpp\"},\"1\":{\"name\":\"invalid.illegal.delimiter-too-long.objcpp\"}},\"name\":\"string.quoted.double.raw.objcpp\"}]},\"strings-c\":{\"patterns\":[{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objcpp\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objcpp\"}},\"name\":\"string.quoted.double.objcpp\",\"patterns\":[{\"include\":\"#string_escaped_char-c\"},{\"include\":\"#string_placeholder-c\"},{\"include\":\"#line_continuation_character\"}]},{\"begin\":\"(?-mix:(?<![\\\\\\\\da-fA-F])')\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objcpp\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objcpp\"}},\"name\":\"string.quoted.single.objcpp\",\"patterns\":[{\"include\":\"#string_escaped_char-c\"},{\"include\":\"#line_continuation_character\"}]}]},\"template_call_innards\":{\"captures\":{\"0\":{\"name\":\"meta.template.call.objcpp\",\"patterns\":[{\"include\":\"#storage_types_c\"},{\"include\":\"#constants\"},{\"include\":\"#scope_resolution\"},{\"match\":\"(?<!\\\\\\\\w)[a-zA-Z_]\\\\\\\\w*(?!\\\\\\\\w)\",\"name\":\"storage.type.user-defined.objcpp\"},{\"include\":\"#operators\"},{\"include\":\"#number_literal\"},{\"include\":\"#strings\"},{\"match\":\",\",\"name\":\"punctuation.separator.comma.template.argument.objcpp\"}]}},\"match\":\"<(?:[\\\\\\\\s<>,\\\\\\\\w])*>\\\\\\\\s*\"},\"template_definition\":{\"begin\":\"(?-mix:(?<!\\\\\\\\w)(template)\\\\\\\\s*(<))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.template.objcpp\"},\"2\":{\"name\":\"punctuation.section.angle-brackets.start.template.definition.objcpp\"}},\"end\":\"(?-mix:(>))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.angle-brackets.end.template.definition.objcpp\"}},\"name\":\"meta.template.definition.objcpp\",\"patterns\":[{\"include\":\"#scope_resolution\"},{\"include\":\"#template_definition_argument\"},{\"include\":\"#template_call_innards\"}]},\"template_definition_argument\":{\"captures\":{\"2\":{\"name\":\"storage.type.template.argument.$1.objcpp\"},\"3\":{\"name\":\"storage.type.template.argument.$2.objcpp\"},\"4\":{\"name\":\"entity.name.type.template.objcpp\"},\"5\":{\"name\":\"storage.type.template.objcpp\"},\"6\":{\"name\":\"keyword.operator.ellipsis.template.definition.objcpp\"},\"7\":{\"name\":\"entity.name.type.template.objcpp\"},\"8\":{\"name\":\"storage.type.template.objcpp\"},\"9\":{\"name\":\"entity.name.type.template.objcpp\"},\"10\":{\"name\":\"keyword.operator.assignment.objcpp\"},\"11\":{\"name\":\"constant.other.objcpp\"},\"12\":{\"name\":\"punctuation.separator.comma.template.argument.objcpp\"}},\"match\":\"((?:(?:(?:(?:(?:(?:\\\\\\\\s*([a-zA-Z_]\\\\\\\\w*)|((?:[a-zA-Z_]\\\\\\\\w*\\\\\\\\s+)+)([a-zA-Z_]\\\\\\\\w*)))|([a-zA-Z_]\\\\\\\\w*)\\\\\\\\s*(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*([a-zA-Z_]\\\\\\\\w*)))|((?:[a-zA-Z_]\\\\\\\\w*\\\\\\\\s+)*)([a-zA-Z_]\\\\\\\\w*)\\\\\\\\s*([=])\\\\\\\\s*(\\\\\\\\w+)))\\\\\\\\s*(?:(?:(,)|(?=>))))\"},\"vararg_ellipses-c\":{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\.\\\\\\\\.\\\\\\\\.(?!\\\\\\\\.)\",\"name\":\"punctuation.vararg-ellipses.objcpp\"}}},\"disabled\":{\"begin\":\"^\\\\\\\\s*#\\\\\\\\s*if(n?def)?\\\\\\\\b.*$\",\"comment\":\"eat nested preprocessor if(def)s\",\"end\":\"^\\\\\\\\s*#\\\\\\\\s*endif\\\\\\\\b.*$\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},\"implementation_innards\":{\"patterns\":[{\"include\":\"#preprocessor-rule-enabled-implementation\"},{\"include\":\"#preprocessor-rule-disabled-implementation\"},{\"include\":\"#preprocessor-rule-other-implementation\"},{\"include\":\"#property_directive\"},{\"include\":\"#method_super\"},{\"include\":\"$base\"}]},\"interface_innards\":{\"patterns\":[{\"include\":\"#preprocessor-rule-enabled-interface\"},{\"include\":\"#preprocessor-rule-disabled-interface\"},{\"include\":\"#preprocessor-rule-other-interface\"},{\"include\":\"#properties\"},{\"include\":\"#protocol_list\"},{\"include\":\"#method\"},{\"include\":\"$base\"}]},\"method\":{\"begin\":\"^(-|\\\\\\\\+)\\\\\\\\s*\",\"end\":\"(?=\\\\\\\\{|#)|;\",\"name\":\"meta.function.objcpp\",\"patterns\":[{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.type.begin.objcpp\"}},\"end\":\"(\\\\\\\\))\\\\\\\\s*(\\\\\\\\w+\\\\\\\\b)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.type.end.objcpp\"},\"2\":{\"name\":\"entity.name.function.objcpp\"}},\"name\":\"meta.return-type.objcpp\",\"patterns\":[{\"include\":\"#protocol_list\"},{\"include\":\"#protocol_type_qualifier\"},{\"include\":\"$base\"}]},{\"match\":\"\\\\\\\\b\\\\\\\\w+(?=:)\",\"name\":\"entity.name.function.name-of-parameter.objcpp\"},{\"begin\":\"((:))\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.name-of-parameter.objcpp\"},\"2\":{\"name\":\"punctuation.separator.arguments.objcpp\"},\"3\":{\"name\":\"punctuation.definition.type.begin.objcpp\"}},\"end\":\"(\\\\\\\\))\\\\\\\\s*(\\\\\\\\w+\\\\\\\\b)?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.type.end.objcpp\"},\"2\":{\"name\":\"variable.parameter.function.objcpp\"}},\"name\":\"meta.argument-type.objcpp\",\"patterns\":[{\"include\":\"#protocol_list\"},{\"include\":\"#protocol_type_qualifier\"},{\"include\":\"$base\"}]},{\"include\":\"#comment\"}]},\"method_super\":{\"begin\":\"^(?=-|\\\\\\\\+)\",\"end\":\"(?<=\\\\\\\\})|(?=#)\",\"name\":\"meta.function-with-body.objcpp\",\"patterns\":[{\"include\":\"#method\"},{\"include\":\"$base\"}]},\"pragma-mark\":{\"captures\":{\"1\":{\"name\":\"meta.preprocessor.objcpp\"},\"2\":{\"name\":\"keyword.control.import.pragma.objcpp\"},\"3\":{\"name\":\"meta.toc-list.pragma-mark.objcpp\"}},\"match\":\"^\\\\\\\\s*(#\\\\\\\\s*(pragma\\\\\\\\s+mark)\\\\\\\\s+(.*))\",\"name\":\"meta.section.objcpp\"},\"preprocessor-rule-disabled-implementation\":{\"begin\":\"^\\\\\\\\s*(#(if)\\\\\\\\s+(0)\\\\\\\\b).*\",\"captures\":{\"1\":{\"name\":\"meta.preprocessor.objcpp\"},\"2\":{\"name\":\"keyword.control.import.if.objcpp\"},\"3\":{\"name\":\"constant.numeric.preprocessor.objcpp\"}},\"end\":\"^\\\\\\\\s*(#\\\\\\\\s*(endif)\\\\\\\\b.*?(?:(?=(?://|/\\\\\\\\*))|$))\",\"patterns\":[{\"begin\":\"^\\\\\\\\s*(#\\\\\\\\s*(else)\\\\\\\\b)\",\"captures\":{\"1\":{\"name\":\"meta.preprocessor.objcpp\"},\"2\":{\"name\":\"keyword.control.import.else.objcpp\"}},\"end\":\"(?=^\\\\\\\\s*#\\\\\\\\s*endif\\\\\\\\b.*?(?:(?=(?://|/\\\\\\\\*))|$))\",\"patterns\":[{\"include\":\"#interface_innards\"}]},{\"begin\":\"\",\"end\":\"(?=^\\\\\\\\s*#\\\\\\\\s*(else|endif)\\\\\\\\b.*?(?:(?=(?://|/\\\\\\\\*))|$))\",\"name\":\"comment.block.preprocessor.if-branch.objcpp\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]}]},\"preprocessor-rule-disabled-interface\":{\"begin\":\"^\\\\\\\\s*(#(if)\\\\\\\\s+(0)\\\\\\\\b).*\",\"captures\":{\"1\":{\"name\":\"meta.preprocessor.objcpp\"},\"2\":{\"name\":\"keyword.control.import.if.objcpp\"},\"3\":{\"name\":\"constant.numeric.preprocessor.objcpp\"}},\"end\":\"^\\\\\\\\s*(#\\\\\\\\s*(endif)\\\\\\\\b.*?(?:(?=(?://|/\\\\\\\\*))|$))\",\"patterns\":[{\"begin\":\"^\\\\\\\\s*(#\\\\\\\\s*(else)\\\\\\\\b)\",\"captures\":{\"1\":{\"name\":\"meta.preprocessor.objcpp\"},\"2\":{\"name\":\"keyword.control.import.else.objcpp\"}},\"end\":\"(?=^\\\\\\\\s*#\\\\\\\\s*endif\\\\\\\\b.*?(?:(?=(?://|/\\\\\\\\*))|$))\",\"patterns\":[{\"include\":\"#interface_innards\"}]},{\"begin\":\"\",\"end\":\"(?=^\\\\\\\\s*#\\\\\\\\s*(else|endif)\\\\\\\\b.*?(?:(?=(?://|/\\\\\\\\*))|$))\",\"name\":\"comment.block.preprocessor.if-branch.objcpp\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]}]},\"preprocessor-rule-enabled-implementation\":{\"begin\":\"^\\\\\\\\s*(#(if)\\\\\\\\s+(0*1)\\\\\\\\b)\",\"captures\":{\"1\":{\"name\":\"meta.preprocessor.objcpp\"},\"2\":{\"name\":\"keyword.control.import.if.objcpp\"},\"3\":{\"name\":\"constant.numeric.preprocessor.objcpp\"}},\"end\":\"^\\\\\\\\s*(#\\\\\\\\s*(endif)\\\\\\\\b.*?(?:(?=(?://|/\\\\\\\\*))|$))\",\"patterns\":[{\"begin\":\"^\\\\\\\\s*(#\\\\\\\\s*(else)\\\\\\\\b).*\",\"captures\":{\"1\":{\"name\":\"meta.preprocessor.objcpp\"},\"2\":{\"name\":\"keyword.control.import.else.objcpp\"}},\"contentName\":\"comment.block.preprocessor.else-branch.objcpp\",\"end\":\"(?=^\\\\\\\\s*#\\\\\\\\s*endif\\\\\\\\b.*?(?:(?=(?://|/\\\\\\\\*))|$))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"begin\":\"\",\"end\":\"(?=^\\\\\\\\s*#\\\\\\\\s*(else|endif)\\\\\\\\b.*?(?:(?=(?://|/\\\\\\\\*))|$))\",\"patterns\":[{\"include\":\"#implementation_innards\"}]}]},\"preprocessor-rule-enabled-interface\":{\"begin\":\"^\\\\\\\\s*(#(if)\\\\\\\\s+(0*1)\\\\\\\\b)\",\"captures\":{\"1\":{\"name\":\"meta.preprocessor.objcpp\"},\"2\":{\"name\":\"keyword.control.import.if.objcpp\"},\"3\":{\"name\":\"constant.numeric.preprocessor.objcpp\"}},\"end\":\"^\\\\\\\\s*(#\\\\\\\\s*(endif)\\\\\\\\b.*?(?:(?=(?://|/\\\\\\\\*))|$))\",\"patterns\":[{\"begin\":\"^\\\\\\\\s*(#\\\\\\\\s*(else)\\\\\\\\b).*\",\"captures\":{\"1\":{\"name\":\"meta.preprocessor.objcpp\"},\"2\":{\"name\":\"keyword.control.import.else.objcpp\"}},\"contentName\":\"comment.block.preprocessor.else-branch.objcpp\",\"end\":\"(?=^\\\\\\\\s*#\\\\\\\\s*endif\\\\\\\\b.*?(?:(?=(?://|/\\\\\\\\*))|$))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"begin\":\"\",\"end\":\"(?=^\\\\\\\\s*#\\\\\\\\s*(else|endif)\\\\\\\\b.*?(?:(?=(?://|/\\\\\\\\*))|$))\",\"patterns\":[{\"include\":\"#interface_innards\"}]}]},\"preprocessor-rule-other-implementation\":{\"begin\":\"^\\\\\\\\s*(#\\\\\\\\s*(if(n?def)?)\\\\\\\\b.*?(?:(?=(?://|/\\\\\\\\*))|$))\",\"captures\":{\"1\":{\"name\":\"meta.preprocessor.objcpp\"},\"2\":{\"name\":\"keyword.control.import.objcpp\"}},\"end\":\"^\\\\\\\\s*(#\\\\\\\\s*(endif)\\\\\\\\b).*?(?:(?=(?://|/\\\\\\\\*))|$)\",\"patterns\":[{\"include\":\"#implementation_innards\"}]},\"preprocessor-rule-other-interface\":{\"begin\":\"^\\\\\\\\s*(#\\\\\\\\s*(if(n?def)?)\\\\\\\\b.*?(?:(?=(?://|/\\\\\\\\*))|$))\",\"captures\":{\"1\":{\"name\":\"meta.preprocessor.objcpp\"},\"2\":{\"name\":\"keyword.control.import.objcpp\"}},\"end\":\"^\\\\\\\\s*(#\\\\\\\\s*(endif)\\\\\\\\b).*?(?:(?=(?://|/\\\\\\\\*))|$)\",\"patterns\":[{\"include\":\"#interface_innards\"}]},\"properties\":{\"patterns\":[{\"begin\":\"((@)property)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.property.objcpp\"},\"2\":{\"name\":\"punctuation.definition.keyword.objcpp\"},\"3\":{\"name\":\"punctuation.section.scope.begin.objcpp\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.scope.end.objcpp\"}},\"name\":\"meta.property-with-attributes.objcpp\",\"patterns\":[{\"match\":\"\\\\\\\\b(getter|setter|readonly|readwrite|assign|retain|copy|nonatomic|atomic|strong|weak|nonnull|nullable|null_resettable|null_unspecified|class|direct)\\\\\\\\b\",\"name\":\"keyword.other.property.attribute.objcpp\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.other.property.objcpp\"},\"2\":{\"name\":\"punctuation.definition.keyword.objcpp\"}},\"match\":\"((@)property)\\\\\\\\b\",\"name\":\"meta.property.objcpp\"}]},\"property_directive\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.keyword.objcpp\"}},\"match\":\"(@)(dynamic|synthesize)\\\\\\\\b\",\"name\":\"keyword.other.property.directive.objcpp\"},\"protocol_list\":{\"begin\":\"(<)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.scope.begin.objcpp\"}},\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.scope.end.objcpp\"}},\"name\":\"meta.protocol-list.objcpp\",\"patterns\":[{\"match\":\"\\\\\\\\bNS(GlyphStorage|M(utableCopying|enuItem)|C(hangeSpelling|o(ding|pying|lorPicking(Custom|Default)))|T(oolbarItemValidations|ext(Input|AttachmentCell))|I(nputServ(iceProvider|erMouseTracker)|gnoreMisspelledWords)|Obj(CTypeSerializationCallBack|ect)|D(ecimalNumberBehaviors|raggingInfo)|U(serInterfaceValidations|RL(HandleClient|DownloadDelegate|ProtocolClient|AuthenticationChallengeSender))|Validated(ToobarItem|UserInterfaceItem)|Locking)\\\\\\\\b\",\"name\":\"support.other.protocol.objcpp\"}]},\"protocol_type_qualifier\":{\"match\":\"\\\\\\\\b(in|out|inout|oneway|bycopy|byref|nonnull|nullable|_Nonnull|_Nullable|_Null_unspecified)\\\\\\\\b\",\"name\":\"storage.modifier.protocol.objcpp\"},\"special_variables\":{\"patterns\":[{\"match\":\"\\\\\\\\b_cmd\\\\\\\\b\",\"name\":\"variable.other.selector.objcpp\"},{\"match\":\"\\\\\\\\b(self|super)\\\\\\\\b\",\"name\":\"variable.language.objcpp\"}]},\"string_escaped_char\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(\\\\\\\\\\\\\\\\|[abefnprtv'\\\\\"?]|[0-3]\\\\\\\\d{,2}|[4-7]\\\\\\\\d?|x[a-fA-F0-9]{,2}|u[a-fA-F0-9]{,4}|U[a-fA-F0-9]{,8})\",\"name\":\"constant.character.escape.objcpp\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"invalid.illegal.unknown-escape.objcpp\"}]},\"string_placeholder\":{\"patterns\":[{\"match\":\"%(\\\\\\\\d+\\\\\\\\$)?[#0\\\\\\\\- +']*[,;:_]?((-?\\\\\\\\d+)|\\\\\\\\*(-?\\\\\\\\d+\\\\\\\\$)?)?(\\\\\\\\.((-?\\\\\\\\d+)|\\\\\\\\*(-?\\\\\\\\d+\\\\\\\\$)?)?)?(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)?[diouxXDOUeEfFgGaACcSspn%]\",\"name\":\"constant.other.placeholder.objcpp\"},{\"captures\":{\"1\":{\"name\":\"invalid.illegal.placeholder.objcpp\"}},\"match\":\"(%)(?!\\\\\"\\\\\\\\s*(PRI|SCN))\"}]}},\"scopeName\":\"source.objcpp\"}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BVUVsWT6.js",
    "content": "const t=Object.freeze(JSON.parse('{\"displayName\":\"Typst\",\"name\":\"typst\",\"patterns\":[{\"include\":\"#markup\"}],\"repository\":{\"arguments\":{\"patterns\":[{\"match\":\"\\\\\\\\b[[:alpha:]_][[:alnum:]_-]*(?=:)\",\"name\":\"variable.parameter.typst\"},{\"include\":\"#code\"}]},\"code\":{\"patterns\":[{\"include\":\"#common\"},{\"begin\":\"{\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.block.code.typst\"}},\"end\":\"}\",\"name\":\"meta.block.code.typst\",\"patterns\":[{\"include\":\"#code\"}]},{\"begin\":\"\\\\\\\\[\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.block.content.typst\"}},\"end\":\"\\\\\\\\]\",\"name\":\"meta.block.content.typst\",\"patterns\":[{\"include\":\"#markup\"}]},{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.typst\"}},\"end\":\"\\\\n\",\"name\":\"comment.line.double-slash.typst\"},{\"match\":\":\",\"name\":\"punctuation.separator.colon.typst\"},{\"match\":\",\",\"name\":\"punctuation.separator.comma.typst\"},{\"match\":\"=>|\\\\\\\\.\\\\\\\\.\",\"name\":\"keyword.operator.typst\"},{\"match\":\"==|!=|<=|<|>=|>\",\"name\":\"keyword.operator.relational.typst\"},{\"match\":\"\\\\\\\\+=|-=|\\\\\\\\*=|/=|=\",\"name\":\"keyword.operator.assignment.typst\"},{\"match\":\"\\\\\\\\+|\\\\\\\\*|/|(?<![[:alpha:]_][[:alnum:]_-]*)-(?![:alnum:]_-]*[[:alpha:]_])\",\"name\":\"keyword.operator.arithmetic.typst\"},{\"match\":\"\\\\\\\\b(and|or|not)\\\\\\\\b\",\"name\":\"keyword.operator.word.typst\"},{\"match\":\"\\\\\\\\b(let|as|in|set|show)\\\\\\\\b\",\"name\":\"keyword.other.typst\"},{\"match\":\"\\\\\\\\b(if|else)\\\\\\\\b\",\"name\":\"keyword.control.conditional.typst\"},{\"match\":\"\\\\\\\\b(for|while|break|continue)\\\\\\\\b\",\"name\":\"keyword.control.loop.typst\"},{\"match\":\"\\\\\\\\b(import|include|export)\\\\\\\\b\",\"name\":\"keyword.control.import.typst\"},{\"match\":\"\\\\\\\\b(return)\\\\\\\\b\",\"name\":\"keyword.control.flow.typst\"},{\"include\":\"#constants\"},{\"comment\":\"Function name\",\"match\":\"\\\\\\\\b[[:alpha:]_][[:alnum:]_-]*!?(?=\\\\\\\\[|\\\\\\\\()\",\"name\":\"entity.name.function.typst\"},{\"comment\":\"Function name\",\"match\":\"(?<=\\\\\\\\bshow\\\\\\\\s*)\\\\\\\\b[[:alpha:]_][[:alnum:]_-]*(?=\\\\\\\\s*[:.])\",\"name\":\"entity.name.function.typst\"},{\"begin\":\"(?<=\\\\\\\\b[[:alpha:]_][[:alnum:]_-]*!?)\\\\\\\\(\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.group.typst\"}},\"comment\":\"Function arguments\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#arguments\"}]},{\"match\":\"\\\\\\\\b[[:alpha:]_][[:alnum:]_-]*\\\\\\\\b\",\"name\":\"variable.other.typst\"},{\"begin\":\"\\\\\\\\(\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.group.typst\"}},\"end\":\"\\\\\\\\)|(?=;)\",\"name\":\"meta.group.typst\",\"patterns\":[{\"include\":\"#code\"}]}]},\"comments\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.typst\"}},\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.typst\",\"patterns\":[{\"include\":\"#comments\"}]},{\"begin\":\"(?<!:)//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.typst\"}},\"end\":\"\\\\n\",\"name\":\"comment.line.double-slash.typst\",\"patterns\":[{\"include\":\"#comments\"}]}]},\"common\":{\"patterns\":[{\"include\":\"#comments\"}]},\"constants\":{\"patterns\":[{\"match\":\"\\\\\\\\bnone\\\\\\\\b\",\"name\":\"constant.language.none.typst\"},{\"match\":\"\\\\\\\\bauto\\\\\\\\b\",\"name\":\"constant.language.auto.typst\"},{\"match\":\"\\\\\\\\b(true|false)\\\\\\\\b\",\"name\":\"constant.language.boolean.typst\"},{\"match\":\"\\\\\\\\b(\\\\\\\\d*)?\\\\\\\\.?\\\\\\\\d+([eE][+-]?\\\\\\\\d+)?(mm|pt|cm|in|em)\\\\\\\\b\",\"name\":\"constant.numeric.length.typst\"},{\"match\":\"\\\\\\\\b(\\\\\\\\d*)?\\\\\\\\.?\\\\\\\\d+([eE][+-]?\\\\\\\\d+)?(rad|deg)\\\\\\\\b\",\"name\":\"constant.numeric.angle.typst\"},{\"match\":\"\\\\\\\\b(\\\\\\\\d*)?\\\\\\\\.?\\\\\\\\d+([eE][+-]?\\\\\\\\d+)?%\",\"name\":\"constant.numeric.percentage.typst\"},{\"match\":\"\\\\\\\\b(\\\\\\\\d*)?\\\\\\\\.?\\\\\\\\d+([eE][+-]?\\\\\\\\d+)?fr\",\"name\":\"constant.numeric.fr.typst\"},{\"match\":\"\\\\\\\\b\\\\\\\\d+\\\\\\\\b\",\"name\":\"constant.numeric.integer.typst\"},{\"match\":\"\\\\\\\\b(\\\\\\\\d*)?\\\\\\\\.?\\\\\\\\d+([eE][+-]?\\\\\\\\d+)?\\\\\\\\b\",\"name\":\"constant.numeric.float.typst\"},{\"begin\":\"\\\\\"\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.string.typst\"}},\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.typst\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\([\\\\\\\\\\\\\\\\\\\\\"nrt]|u\\\\\\\\{?[0-9a-zA-Z]*\\\\\\\\}?)\",\"name\":\"constant.character.escape.string.typst\"}]},{\"begin\":\"\\\\\\\\$\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.string.math.typst\"}},\"end\":\"\\\\\\\\$\",\"name\":\"string.other.math.typst\"}]},\"markup\":{\"patterns\":[{\"include\":\"#common\"},{\"match\":\"\\\\\\\\\\\\\\\\([\\\\\\\\\\\\\\\\/\\\\\\\\[\\\\\\\\]{}#*_=~`$-.]|u\\\\\\\\{[0-9a-zA-Z]*\\\\\\\\}?)\",\"name\":\"constant.character.escape.content.typst\"},{\"match\":\"\\\\\\\\\\\\\\\\\",\"name\":\"punctuation.definition.linebreak.typst\"},{\"match\":\"~\",\"name\":\"punctuation.definition.nonbreaking-space.typst\"},{\"match\":\"-\\\\\\\\?\",\"name\":\"punctuation.definition.shy.typst\"},{\"match\":\"---\",\"name\":\"punctuation.definition.em-dash.typst\"},{\"match\":\"--\",\"name\":\"punctuation.definition.en-dash.typst\"},{\"match\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"name\":\"punctuation.definition.ellipsis.typst\"},{\"match\":\":([a-zA-Z0-9]+:)+\",\"name\":\"constant.symbol.typst\"},{\"begin\":\"(^\\\\\\\\*|\\\\\\\\*$|((?<=\\\\\\\\W|_)\\\\\\\\*)|(\\\\\\\\*(?=\\\\\\\\W|_)))\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.bold.typst\"}},\"end\":\"(^\\\\\\\\*|\\\\\\\\*$|((?<=\\\\\\\\W|_)\\\\\\\\*)|(\\\\\\\\*(?=\\\\\\\\W|_)))|\\\\n|(?=\\\\\\\\])\",\"name\":\"markup.bold.typst\",\"patterns\":[{\"include\":\"#markup\"}]},{\"begin\":\"(^_|_$|((?<=\\\\\\\\W|_)_)|(_(?=\\\\\\\\W|_)))\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.italic.typst\"}},\"end\":\"(^_|_$|((?<=\\\\\\\\W|_)_)|(_(?=\\\\\\\\W|_)))|\\\\n|(?=\\\\\\\\])\",\"name\":\"markup.italic.typst\",\"patterns\":[{\"include\":\"#markup\"}]},{\"match\":\"https?://[0-9a-zA-Z~/%#&=\\',;\\\\\\\\.\\\\\\\\+\\\\\\\\?]*\",\"name\":\"markup.underline.link.typst\"},{\"begin\":\"`{3,}\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.raw.typst\"}},\"end\":\"\\\\\\\\0\",\"name\":\"markup.raw.block.typst\"},{\"begin\":\"`\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.raw.typst\"}},\"end\":\"`\",\"name\":\"markup.raw.inline.typst\"},{\"begin\":\"\\\\\\\\$\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.string.math.typst\"}},\"end\":\"\\\\\\\\$\",\"name\":\"string.other.math.typst\"},{\"begin\":\"^\\\\\\\\s*=+\\\\\\\\s+\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.heading.typst\"}},\"contentName\":\"entity.name.section.typst\",\"end\":\"\\\\n|(?=<)\",\"name\":\"markup.heading.typst\",\"patterns\":[{\"include\":\"#markup\"}]},{\"match\":\"^\\\\\\\\s*-\\\\\\\\s+\",\"name\":\"punctuation.definition.list.unnumbered.typst\"},{\"match\":\"^\\\\\\\\s*([0-9]*\\\\\\\\.|\\\\\\\\+)\\\\\\\\s+\",\"name\":\"punctuation.definition.list.numbered.typst\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.list.description.typst\"},\"2\":{\"name\":\"markup.list.term.typst\"}},\"match\":\"^\\\\\\\\s*(/)\\\\\\\\s+([^:]*:)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.label.typst\"}},\"match\":\"<[[:alpha:]_][[:alnum:]_-]*>\",\"name\":\"entity.other.label.typst\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.reference.typst\"}},\"match\":\"(@)[[:alpha:]_][[:alnum:]_-]*\",\"name\":\"entity.other.reference.typst\"},{\"begin\":\"(#)(let|set|show)\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.typst\"},\"1\":{\"name\":\"punctuation.definition.keyword.typst\"}},\"end\":\"\\\\n|(;)|(?=])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.typst\"}},\"patterns\":[{\"include\":\"#code\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.keyword.typst\"}},\"match\":\"(#)(as|in)\\\\\\\\b\",\"name\":\"keyword.other.typst\"},{\"begin\":\"((#)if|(?<=(}|])\\\\\\\\s*)else)\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.conditional.typst\"},\"2\":{\"name\":\"punctuation.definition.keyword.typst\"}},\"end\":\"\\\\n|(?=])|(?<=}|])\",\"patterns\":[{\"include\":\"#code\"}]},{\"begin\":\"(#)(for|while)\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.loop.typst\"},\"1\":{\"name\":\"punctuation.definition.keyword.typst\"}},\"end\":\"\\\\n|(?=])|(?<=}|])\",\"patterns\":[{\"include\":\"#code\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.keyword.typst\"}},\"match\":\"(#)(break|continue)\\\\\\\\b\",\"name\":\"keyword.control.loop.typst\"},{\"begin\":\"(#)(import|include|export)\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.import.typst\"},\"1\":{\"name\":\"punctuation.definition.keyword.typst\"}},\"end\":\"\\\\n|(;)|(?=])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.typst\"}},\"patterns\":[{\"include\":\"#code\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.keyword.typst\"}},\"match\":\"(#)(return)\\\\\\\\b\",\"name\":\"keyword.control.flow.typst\"},{\"captures\":{\"2\":{\"name\":\"punctuation.definition.function.typst\"}},\"comment\":\"Function name\",\"match\":\"((#)[[:alpha:]_][[:alnum:]_-]*!?)(?=\\\\\\\\[|\\\\\\\\()\",\"name\":\"entity.name.function.typst\"},{\"begin\":\"(?<=#[[:alpha:]_][[:alnum:]_-]*!?)\\\\\\\\(\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.group.typst\"}},\"comment\":\"Function arguments\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#arguments\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.typst\"}},\"match\":\"(#)[[:alpha:]_][.[:alnum:]_-]*\",\"name\":\"entity.other.interpolated.typst\"},{\"begin\":\"#\",\"end\":\"\\\\\\\\s\",\"name\":\"meta.block.content.typst\",\"patterns\":[{\"include\":\"#code\"}]}]}},\"scopeName\":\"source.typst\",\"aliases\":[\"typ\"]}')),n=[t];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BVr_1_27.js",
    "content": "import e from\"./BMYPR7BL.js\";import n from\"./BPhBrDlE.js\";import t from\"./BQoSv7ci.js\";import i from\"./ySlJ1b_l.js\";const a=Object.freeze(JSON.parse(`{\"displayName\":\"Liquid\",\"fileTypes\":[\"liquid\"],\"foldingStartMarker\":\"{%-?\\\\\\\\s*(capture|case|comment|for|form|if|javascript|paginate|schema|style)[^(%})]+%}\",\"foldingStopMarker\":\"{%\\\\\\\\s*(endcapture|endcase|endcomment|endfor|endform|endif|endjavascript|endpaginate|endschema|endstyle)[^(%})]+%}\",\"injections\":{\"L:meta.embedded.block.js, L:meta.embedded.block.css, L:meta.embedded.block.html, L:string.quoted\":{\"patterns\":[{\"include\":\"#injection\"}]}},\"name\":\"liquid\",\"patterns\":[{\"include\":\"#core\"}],\"repository\":{\"attribute\":{\"begin\":\"\\\\\\\\w+:\",\"beginCaptures\":{\"0\":{\"name\":\"entity.other.attribute-name.liquid\"}},\"end\":\"(?=,|%}|}}|\\\\\\\\|)\",\"patterns\":[{\"include\":\"#value_expression\"}]},\"attribute_liquid\":{\"begin\":\"\\\\\\\\w+:\",\"beginCaptures\":{\"0\":{\"name\":\"entity.other.attribute-name.liquid\"}},\"end\":\"(?=,|\\\\\\\\|)|$\",\"patterns\":[{\"include\":\"#value_expression\"}]},\"comment_block\":{\"begin\":\"{%-?\\\\\\\\s*comment\\\\\\\\s*-?%}\",\"end\":\"{%-?\\\\\\\\s*endcomment\\\\\\\\s*-?%}\",\"name\":\"comment.block.liquid\",\"patterns\":[{\"include\":\"#comment_block\"},{\"match\":\"(.(?!{%-?\\\\\\\\s*(comment|endcomment)\\\\\\\\s*-?%}))*.\"}]},\"core\":{\"patterns\":[{\"include\":\"#raw_tag\"},{\"include\":\"#doc_tag\"},{\"include\":\"#comment_block\"},{\"include\":\"#style_codefence\"},{\"include\":\"#stylesheet_codefence\"},{\"include\":\"#json_codefence\"},{\"include\":\"#javascript_codefence\"},{\"include\":\"#object\"},{\"include\":\"#tag\"},{\"include\":\"text.html.basic\"}]},\"doc_tag\":{\"begin\":\"{%-?\\\\\\\\s*(doc)\\\\\\\\s*-?%}\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.liquid\"},\"1\":{\"name\":\"entity.name.tag.doc.liquid\"}},\"contentName\":\"comment.block.documentation.liquid\",\"end\":\"{%-?\\\\\\\\s*(enddoc)\\\\\\\\s*-?%}\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.liquid\"},\"1\":{\"name\":\"entity.name.tag.doc.liquid\"}},\"name\":\"meta.block.doc.liquid\",\"patterns\":[{\"include\":\"#liquid_doc_param_tag\"},{\"include\":\"#liquid_doc_example_tag\"},{\"include\":\"#liquid_doc_fallback_tag\"}]},\"filter\":{\"captures\":{\"1\":{\"name\":\"support.function.liquid\"}},\"match\":\"\\\\\\\\|\\\\\\\\s*((?![\\\\\\\\.0-9])[a-zA-Z0-9_-]+\\\\\\\\:?)\\\\\\\\s*\"},\"injection\":{\"patterns\":[{\"include\":\"#raw_tag\"},{\"include\":\"#comment_block\"},{\"include\":\"#object\"},{\"include\":\"#tag_injection\"}]},\"invalid_range\":{\"match\":\"\\\\\\\\((.(?!\\\\\\\\.\\\\\\\\.))+\\\\\\\\)\",\"name\":\"invalid.illegal.range.liquid\"},\"javascript_codefence\":{\"begin\":\"({%-?)\\\\\\\\s*(javascript)\\\\\\\\s*(-?%})\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.javascript.start.liquid\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.liquid\"},\"2\":{\"name\":\"entity.name.tag.javascript.liquid\"},\"3\":{\"name\":\"punctuation.definition.tag.begin.liquid\"}},\"contentName\":\"meta.embedded.block.js\",\"end\":\"({%-?)\\\\\\\\s*(endjavascript)\\\\\\\\s*(-?%})\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.javascript.end.liquid\"},\"1\":{\"name\":\"punctuation.definition.tag.end.liquid\"},\"2\":{\"name\":\"entity.name.tag.javascript.liquid\"},\"3\":{\"name\":\"punctuation.definition.tag.end.liquid\"}},\"name\":\"meta.block.javascript.liquid\",\"patterns\":[{\"include\":\"source.js\"}]},\"json_codefence\":{\"begin\":\"({%-?)\\\\\\\\s*(schema)\\\\\\\\s*(-?%})\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.schema.start.liquid\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.liquid\"},\"2\":{\"name\":\"entity.name.tag.schema.liquid\"},\"3\":{\"name\":\"punctuation.definition.tag.begin.liquid\"}},\"contentName\":\"meta.embedded.block.json\",\"end\":\"({%-?)\\\\\\\\s*(endschema)\\\\\\\\s*(-?%})\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.schema.end.liquid\"},\"1\":{\"name\":\"punctuation.definition.tag.end.liquid\"},\"2\":{\"name\":\"entity.name.tag.schema.liquid\"},\"3\":{\"name\":\"punctuation.definition.tag.end.liquid\"}},\"name\":\"meta.block.schema.liquid\",\"patterns\":[{\"include\":\"source.json\"}]},\"language_constant\":{\"match\":\"\\\\\\\\b(false|true|nil|blank)\\\\\\\\b|empty(?!\\\\\\\\?)\",\"name\":\"constant.language.liquid\"},\"liquid_doc_example_tag\":{\"captures\":{\"1\":{\"name\":\"storage.type.class.liquid\"}},\"match\":\"(@example)\\\\\\\\b\"},\"liquid_doc_fallback_tag\":{\"captures\":{\"1\":{\"name\":\"storage.type.class.liquid\"}},\"match\":\"(@\\\\\\\\w+)\\\\\\\\b\"},\"liquid_doc_param_tag\":{\"captures\":{\"1\":{\"name\":\"storage.type.class.liquid\"},\"2\":{\"name\":\"entity.name.type.instance.liquid\"},\"3\":{\"name\":\"variable.other.liquid\"}},\"match\":\"(@param)\\\\\\\\s+(?:({[^}]*}?)\\\\\\\\s+)?([a-zA-Z_]\\\\\\\\w*)?\"},\"number\":{\"match\":\"((-|\\\\\\\\+)\\\\\\\\s*)?[0-9]+(\\\\\\\\.[0-9]+)?\",\"name\":\"constant.numeric.liquid\"},\"object\":{\"begin\":\"(?<!comment %})(?<!comment -%})(?<!comment%})(?<!comment-%})(?<!raw %})(?<!raw -%})(?<!raw%})(?<!raw-%}){{-?\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.begin.liquid\"}},\"end\":\"-?}}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.liquid\"}},\"name\":\"meta.object.liquid\",\"patterns\":[{\"include\":\"#filter\"},{\"include\":\"#attribute\"},{\"include\":\"#value_expression\"}]},\"operator\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.expression.liquid\"}},\"match\":\"(?:(?<=\\\\\\\\s)|\\\\\\\\b)(\\\\\\\\=\\\\\\\\=|!\\\\\\\\=|\\\\\\\\>|\\\\\\\\<|\\\\\\\\>\\\\\\\\=|\\\\\\\\<\\\\\\\\=|or|and|contains)(?:(?=\\\\\\\\s)|\\\\\\\\b)\"},\"range\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.liquid\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.liquid\"}},\"name\":\"meta.range.liquid\",\"patterns\":[{\"match\":\"\\\\\\\\.\\\\\\\\.\",\"name\":\"punctuation.range.liquid\"},{\"include\":\"#variable_lookup\"},{\"include\":\"#number\"}]},\"raw_tag\":{\"begin\":\"{%-?\\\\\\\\s*(raw)\\\\\\\\s*-?%}\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.liquid\"}},\"contentName\":\"string.unquoted.liquid\",\"end\":\"{%-?\\\\\\\\s*(endraw)\\\\\\\\s*-?%}\",\"endCaptures\":{\"1\":{\"name\":\"entity.name.tag.liquid\"}},\"name\":\"meta.entity.tag.raw.liquid\",\"patterns\":[{\"match\":\"(.(?!{%-?\\\\\\\\s*endraw\\\\\\\\s*-?%}))*.\"}]},\"string\":{\"patterns\":[{\"include\":\"#string_single\"},{\"include\":\"#string_double\"}]},\"string_double\":{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.liquid\"},\"string_single\":{\"begin\":\"'\",\"end\":\"'\",\"name\":\"string.quoted.single.liquid\"},\"style_codefence\":{\"begin\":\"({%-?)\\\\\\\\s*(style)\\\\\\\\s*(-?%})\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.style.start.liquid\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.liquid\"},\"2\":{\"name\":\"entity.name.tag.style.liquid\"},\"3\":{\"name\":\"punctuation.definition.tag.begin.liquid\"}},\"contentName\":\"meta.embedded.block.css\",\"end\":\"({%-?)\\\\\\\\s*(endstyle)\\\\\\\\s*(-?%})\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.style.end.liquid\"},\"1\":{\"name\":\"punctuation.definition.tag.end.liquid\"},\"2\":{\"name\":\"entity.name.tag.style.liquid\"},\"3\":{\"name\":\"punctuation.definition.tag.end.liquid\"}},\"name\":\"meta.block.style.liquid\",\"patterns\":[{\"include\":\"source.css\"}]},\"stylesheet_codefence\":{\"begin\":\"({%-?)\\\\\\\\s*(stylesheet)\\\\\\\\s*(-?%})\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.style.start.liquid\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.liquid\"},\"2\":{\"name\":\"entity.name.tag.style.liquid\"},\"3\":{\"name\":\"punctuation.definition.tag.begin.liquid\"}},\"contentName\":\"meta.embedded.block.css\",\"end\":\"({%-?)\\\\\\\\s*(endstylesheet)\\\\\\\\s*(-?%})\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.style.end.liquid\"},\"1\":{\"name\":\"punctuation.definition.tag.end.liquid\"},\"2\":{\"name\":\"entity.name.tag.style.liquid\"},\"3\":{\"name\":\"punctuation.definition.tag.end.liquid\"}},\"name\":\"meta.block.style.liquid\",\"patterns\":[{\"include\":\"source.css\"}]},\"tag\":{\"begin\":\"(?<!comment %})(?<!comment -%})(?<!comment%})(?<!comment-%})(?<!raw %})(?<!raw -%})(?<!raw%})(?<!raw-%}){%-?\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.begin.liquid\"}},\"end\":\"-?%}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.liquid\"}},\"name\":\"meta.tag.liquid\",\"patterns\":[{\"include\":\"#tag_body\"}]},\"tag_assign\":{\"begin\":\"(?:(?:(?<={%)|(?<={%-)|^)\\\\\\\\s*)(assign|echo)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.liquid\"}},\"end\":\"(?=%})\",\"name\":\"meta.entity.tag.liquid\",\"patterns\":[{\"include\":\"#filter\"},{\"include\":\"#attribute\"},{\"include\":\"#value_expression\"}]},\"tag_assign_liquid\":{\"begin\":\"(?:(?:(?<={%)|(?<={%-)|^)\\\\\\\\s*)(assign|echo)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.liquid\"}},\"end\":\"$\",\"name\":\"meta.entity.tag.liquid\",\"patterns\":[{\"include\":\"#filter\"},{\"include\":\"#attribute_liquid\"},{\"include\":\"#value_expression\"}]},\"tag_body\":{\"patterns\":[{\"include\":\"#tag_liquid\"},{\"include\":\"#tag_assign\"},{\"include\":\"#tag_comment_inline\"},{\"include\":\"#tag_case\"},{\"include\":\"#tag_conditional\"},{\"include\":\"#tag_for\"},{\"include\":\"#tag_paginate\"},{\"include\":\"#tag_render\"},{\"include\":\"#tag_tablerow\"},{\"include\":\"#tag_expression\"}]},\"tag_case\":{\"begin\":\"(?:(?:(?<={%)|(?<={%-)|^)\\\\\\\\s*)(case|when)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.case.liquid\"}},\"end\":\"(?=%})\",\"name\":\"meta.entity.tag.case.liquid\",\"patterns\":[{\"include\":\"#value_expression\"}]},\"tag_case_liquid\":{\"begin\":\"(?:(?:(?<={%)|(?<={%-)|^)\\\\\\\\s*)(case|when)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.case.liquid\"}},\"end\":\"$\",\"name\":\"meta.entity.tag.case.liquid\",\"patterns\":[{\"include\":\"#value_expression\"}]},\"tag_comment_block_liquid\":{\"begin\":\"(?:^\\\\\\\\s*)(comment)\\\\\\\\b\",\"end\":\"(?:^\\\\\\\\s*)(endcomment)\\\\\\\\b\",\"name\":\"comment.block.liquid\",\"patterns\":[{\"include\":\"#tag_comment_block_liquid\"},{\"match\":\"(?:^\\\\\\\\s*)(?!(comment|endcomment)).*\"}]},\"tag_comment_inline\":{\"begin\":\"#\",\"end\":\"(?=%})\",\"name\":\"comment.line.number-sign.liquid\"},\"tag_comment_inline_liquid\":{\"begin\":\"(?:^\\\\\\\\s*)#.*\",\"end\":\"$\",\"name\":\"comment.line.number-sign.liquid\"},\"tag_conditional\":{\"begin\":\"(?:(?:(?<={%)|(?<={%-)|^)\\\\\\\\s*)(if|elsif|unless)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.conditional.liquid\"}},\"end\":\"(?=%})\",\"name\":\"meta.entity.tag.conditional.liquid\",\"patterns\":[{\"include\":\"#value_expression\"}]},\"tag_conditional_liquid\":{\"begin\":\"(?:(?:(?<={%)|(?<={%-)|^)\\\\\\\\s*)(if|elsif|unless)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.conditional.liquid\"}},\"end\":\"$\",\"name\":\"meta.entity.tag.conditional.liquid\",\"patterns\":[{\"include\":\"#value_expression\"}]},\"tag_expression\":{\"patterns\":[{\"include\":\"#tag_expression_without_arguments\"},{\"begin\":\"(?:(?:(?<={%)|(?<={%-)|^)\\\\\\\\s*)(\\\\\\\\w+)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.liquid\"}},\"end\":\"(?=%})\",\"name\":\"meta.entity.tag.liquid\",\"patterns\":[{\"include\":\"#value_expression\"}]}]},\"tag_expression_liquid\":{\"patterns\":[{\"include\":\"#tag_expression_without_arguments\"},{\"begin\":\"(?:(?:(?<={%)|(?<={%-)|^)\\\\\\\\s*)(\\\\\\\\w+)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.liquid\"}},\"end\":\"$\",\"name\":\"meta.entity.tag.liquid\",\"patterns\":[{\"include\":\"#value_expression\"}]}]},\"tag_expression_without_arguments\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.conditional.liquid\"}},\"match\":\"(?:(?:(?<={%)|(?<={%-)|^)\\\\\\\\s*)(endunless|endif)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.loop.liquid\"}},\"match\":\"(?:(?:(?<={%)|(?<={%-)|^)\\\\\\\\s*)(endfor|endtablerow|endpaginate)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.case.liquid\"}},\"match\":\"(?:(?:(?<={%)|(?<={%-)|^)\\\\\\\\s*)(endcase)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.other.liquid\"}},\"match\":\"(?:(?:(?<={%)|(?<={%-)|^)\\\\\\\\s*)(capture|case|comment|for|form|if|javascript|paginate|schema|style)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.other.liquid\"}},\"match\":\"(?:(?:(?<={%)|(?<={%-)|^)\\\\\\\\s*)(endcapture|endcase|endcomment|endfor|endform|endif|endjavascript|endpaginate|endschema|endstyle)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.other.liquid\"}},\"match\":\"(?:(?:(?<={%)|(?<={%-)|^)\\\\\\\\s*)(else|break|continue)\\\\\\\\b\"}]},\"tag_for\":{\"begin\":\"(?:(?:(?<={%)|(?<={%-)|^)\\\\\\\\s*)(for)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.for.liquid\"}},\"end\":\"(?=%})\",\"name\":\"meta.entity.tag.for.liquid\",\"patterns\":[{\"include\":\"#tag_for_body\"}]},\"tag_for_body\":{\"patterns\":[{\"match\":\"\\\\\\\\b(in|reversed)\\\\\\\\b\",\"name\":\"keyword.control.liquid\"},{\"match\":\"\\\\\\\\b(offset|limit):\",\"name\":\"keyword.control.liquid\"},{\"include\":\"#value_expression\"}]},\"tag_for_liquid\":{\"begin\":\"(?:(?:(?<={%)|(?<={%-)|^)\\\\\\\\s*)(for)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.for.liquid\"}},\"end\":\"$\",\"name\":\"meta.entity.tag.for.liquid\",\"patterns\":[{\"include\":\"#tag_for_body\"}]},\"tag_injection\":{\"begin\":\"(?<!comment %})(?<!comment -%})(?<!comment%})(?<!comment-%})(?<!raw %})(?<!raw -%})(?<!raw%})(?<!raw-%}){%-?(?!-?\\\\\\\\s*(endstyle|endjavascript|endcomment|endraw))\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.liquid\"}},\"end\":\"-?%}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.liquid\"}},\"name\":\"meta.tag.liquid\",\"patterns\":[{\"include\":\"#tag_body\"}]},\"tag_liquid\":{\"begin\":\"(?:(?:(?<={%)|(?<={%-)|^)\\\\\\\\s*)(liquid)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.liquid.liquid\"}},\"end\":\"(?=%})\",\"name\":\"meta.entity.tag.liquid.liquid\",\"patterns\":[{\"include\":\"#tag_comment_block_liquid\"},{\"include\":\"#tag_comment_inline_liquid\"},{\"include\":\"#tag_assign_liquid\"},{\"include\":\"#tag_case_liquid\"},{\"include\":\"#tag_conditional_liquid\"},{\"include\":\"#tag_for_liquid\"},{\"include\":\"#tag_paginate_liquid\"},{\"include\":\"#tag_render_liquid\"},{\"include\":\"#tag_tablerow_liquid\"},{\"include\":\"#tag_expression_liquid\"}]},\"tag_paginate\":{\"begin\":\"(?:(?:(?<={%)|(?<={%-)|^)\\\\\\\\s*)(paginate)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.paginate.liquid\"}},\"end\":\"(?=%})\",\"name\":\"meta.entity.tag.paginate.liquid\",\"patterns\":[{\"include\":\"#tag_paginate_body\"}]},\"tag_paginate_body\":{\"patterns\":[{\"match\":\"\\\\\\\\b(by)\\\\\\\\b\",\"name\":\"keyword.control.liquid\"},{\"include\":\"#value_expression\"}]},\"tag_paginate_liquid\":{\"begin\":\"(?:(?:(?<={%)|(?<={%-)|^)\\\\\\\\s*)(paginate)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.paginate.liquid\"}},\"end\":\"$\",\"name\":\"meta.entity.tag.paginate.liquid\",\"patterns\":[{\"include\":\"#tag_paginate_body\"}]},\"tag_render\":{\"begin\":\"(?:(?:(?<={%)|(?<={%-)|^)\\\\\\\\s*)(render)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.render.liquid\"}},\"end\":\"(?=%})\",\"name\":\"meta.entity.tag.render.liquid\",\"patterns\":[{\"include\":\"#tag_render_special_keywords\"},{\"include\":\"#attribute\"},{\"include\":\"#value_expression\"}]},\"tag_render_liquid\":{\"begin\":\"(?:(?:(?<={%)|(?<={%-)|^)\\\\\\\\s*)(render)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.render.liquid\"}},\"end\":\"$\",\"name\":\"meta.entity.tag.render.liquid\",\"patterns\":[{\"include\":\"#tag_render_special_keywords\"},{\"include\":\"#attribute_liquid\"},{\"include\":\"#value_expression\"}]},\"tag_render_special_keywords\":{\"match\":\"\\\\\\\\b(with|as|for)\\\\\\\\b\",\"name\":\"keyword.control.other.liquid\"},\"tag_tablerow\":{\"begin\":\"(?:(?:(?<={%)|(?<={%-)|^)\\\\\\\\s*)(tablerow)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.tablerow.liquid\"}},\"end\":\"(?=%})\",\"name\":\"meta.entity.tag.tablerow.liquid\",\"patterns\":[{\"include\":\"#tag_tablerow_body\"}]},\"tag_tablerow_body\":{\"patterns\":[{\"match\":\"\\\\\\\\b(in)\\\\\\\\b\",\"name\":\"keyword.control.liquid\"},{\"match\":\"\\\\\\\\b(cols|offset|limit):\",\"name\":\"keyword.control.liquid\"},{\"include\":\"#value_expression\"}]},\"tag_tablerow_liquid\":{\"begin\":\"(?:(?:(?<={%)|(?<={%-)|^)\\\\\\\\s*)(tablerow)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.tablerow.liquid\"}},\"end\":\"$\",\"name\":\"meta.entity.tag.tablerow.liquid\",\"patterns\":[{\"include\":\"#tag_tablerow_body\"}]},\"value_expression\":{\"patterns\":[{\"captures\":{\"2\":{\"name\":\"invalid.illegal.filter.liquid\"},\"3\":{\"name\":\"invalid.illegal.filter.liquid\"}},\"match\":\"(\\\\\\\\[)(\\\\\\\\|)(?=[^\\\\\\\\]]*)(?=\\\\\\\\])\"},{\"match\":\"(?<=\\\\\\\\s)(\\\\\\\\+|\\\\\\\\-|\\\\\\\\/|\\\\\\\\*)(?=\\\\\\\\s)\",\"name\":\"invalid.illegal.filter.liquid\"},{\"include\":\"#language_constant\"},{\"include\":\"#operator\"},{\"include\":\"#invalid_range\"},{\"include\":\"#range\"},{\"include\":\"#number\"},{\"include\":\"#string\"},{\"include\":\"#variable_lookup\"}]},\"variable_lookup\":{\"patterns\":[{\"match\":\"\\\\\\\\b(additional_checkout_buttons|address|all_country_option_tags|all_products|article|articles|block|blog|blogs|canonical_url|cart|checkout|collection|collections|comment|content_for_additional_checkout_buttons|content_for_header|content_for_index|content_for_layout|country_option_tags|currency|current_page|current_tags|customer|customer_address|discount_allocation|discount_application|external_video|font|forloop|form|fulfillment|gift_card|handle|image|images|line_item|link|linklist|linklists|location|localization|metafield|model|model_source|order|page|page_description|page_image|page_title|pages|paginate|part|policy|powered_by_link|predictive_search|product|product_option|product_variant|recommendations|request|routes|script|scripts|search|section|selling_plan|selling_plan_allocation|selling_plan_group|settings|shipping_method|shop|shop_locale|store_availability|tablerow|tax_line|template|theme|transaction|unit_price_measurement|variant|video|video_source)\\\\\\\\b\",\"name\":\"variable.language.liquid\"},{\"match\":\"((?<=\\\\\\\\w\\\\\\\\:\\\\\\\\s)\\\\\\\\w+)\",\"name\":\"variable.parameter.liquid\"},{\"begin\":\"(?<=\\\\\\\\w)\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.brackets.begin.liquid\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.brackets.end.liquid\"}},\"name\":\"meta.brackets.liquid\",\"patterns\":[{\"include\":\"#string\"}]},{\"match\":\"(?<=(\\\\\\\\w|\\\\\\\\])\\\\\\\\.)([-\\\\\\\\w]+\\\\\\\\??)\",\"name\":\"variable.other.member.liquid\"},{\"match\":\"(?<=\\\\\\\\w)\\\\\\\\.(?=\\\\\\\\w)\",\"name\":\"punctuation.accessor.liquid\"},{\"match\":\"(?i)[a-z_](\\\\\\\\w|(?:-(?!\\\\\\\\}\\\\\\\\})))*\",\"name\":\"variable.other.liquid\"}]}},\"scopeName\":\"text.html.liquid\",\"embeddedLangs\":[\"html\",\"css\",\"json\",\"javascript\"]}`)),s=[...e,...n,...t,...i,a];export{s as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BVz_zdnA.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Zig\",\"fileTypes\":[\"zig\",\"zon\"],\"name\":\"zig\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#strings\"},{\"include\":\"#keywords\"},{\"include\":\"#operators\"},{\"include\":\"#punctuation\"},{\"include\":\"#numbers\"},{\"include\":\"#support\"},{\"include\":\"#variables\"}],\"repository\":{\"commentContents\":{\"patterns\":[{\"match\":\"\\\\\\\\b(TODO|FIXME|XXX|NOTE)\\\\\\\\b:?\",\"name\":\"keyword.todo.zig\"}]},\"comments\":{\"patterns\":[{\"begin\":\"//[!/](?=[^/])\",\"end\":\"$\",\"name\":\"comment.line.documentation.zig\",\"patterns\":[{\"include\":\"#commentContents\"}]},{\"begin\":\"//\",\"end\":\"$\",\"name\":\"comment.line.double-slash.zig\",\"patterns\":[{\"include\":\"#commentContents\"}]}]},\"keywords\":{\"patterns\":[{\"match\":\"\\\\\\\\binline\\\\\\\\b(?!\\\\\\\\s*\\\\\\\\bfn\\\\\\\\b)\",\"name\":\"keyword.control.repeat.zig\"},{\"match\":\"\\\\\\\\b(while|for)\\\\\\\\b\",\"name\":\"keyword.control.repeat.zig\"},{\"match\":\"\\\\\\\\b(extern|packed|export|pub|noalias|inline|comptime|volatile|align|linksection|threadlocal|allowzero|noinline|callconv)\\\\\\\\b\",\"name\":\"keyword.storage.zig\"},{\"match\":\"\\\\\\\\b(struct|enum|union|opaque)\\\\\\\\b\",\"name\":\"keyword.structure.zig\"},{\"match\":\"\\\\\\\\b(asm|unreachable)\\\\\\\\b\",\"name\":\"keyword.statement.zig\"},{\"match\":\"\\\\\\\\b(break|return|continue|defer|errdefer)\\\\\\\\b\",\"name\":\"keyword.control.flow.zig\"},{\"match\":\"\\\\\\\\b(await|resume|suspend|async|nosuspend)\\\\\\\\b\",\"name\":\"keyword.control.async.zig\"},{\"match\":\"\\\\\\\\b(try|catch)\\\\\\\\b\",\"name\":\"keyword.control.trycatch.zig\"},{\"match\":\"\\\\\\\\b(if|else|switch|orelse)\\\\\\\\b\",\"name\":\"keyword.control.conditional.zig\"},{\"match\":\"\\\\\\\\b(null|undefined)\\\\\\\\b\",\"name\":\"keyword.constant.default.zig\"},{\"match\":\"\\\\\\\\b(true|false)\\\\\\\\b\",\"name\":\"keyword.constant.bool.zig\"},{\"match\":\"\\\\\\\\b(usingnamespace|test|and|or)\\\\\\\\b\",\"name\":\"keyword.default.zig\"},{\"match\":\"\\\\\\\\b(bool|void|noreturn|type|error|anyerror|anyframe|anytype|anyopaque)\\\\\\\\b\",\"name\":\"keyword.type.zig\"},{\"match\":\"\\\\\\\\b(f16|f32|f64|f80|f128|u\\\\\\\\d+|i\\\\\\\\d+|isize|usize|comptime_int|comptime_float)\\\\\\\\b\",\"name\":\"keyword.type.integer.zig\"},{\"match\":\"\\\\\\\\b(c_char|c_short|c_ushort|c_int|c_uint|c_long|c_ulong|c_longlong|c_ulonglong|c_longdouble)\\\\\\\\b\",\"name\":\"keyword.type.c.zig\"}]},\"numbers\":{\"patterns\":[{\"match\":\"\\\\\\\\b0x[0-9a-fA-F][0-9a-fA-F_]*(\\\\\\\\.[0-9a-fA-F][0-9a-fA-F_]*)?([pP][+-]?[0-9a-fA-F_]+)?\\\\\\\\b\",\"name\":\"constant.numeric.hexfloat.zig\"},{\"match\":\"\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.[0-9][0-9_]*)?([eE][+-]?[0-9_]+)?\\\\\\\\b\",\"name\":\"constant.numeric.float.zig\"},{\"match\":\"\\\\\\\\b[0-9][0-9_]*\\\\\\\\b\",\"name\":\"constant.numeric.decimal.zig\"},{\"match\":\"\\\\\\\\b0x[a-fA-F0-9_]+\\\\\\\\b\",\"name\":\"constant.numeric.hexadecimal.zig\"},{\"match\":\"\\\\\\\\b0o[0-7_]+\\\\\\\\b\",\"name\":\"constant.numeric.octal.zig\"},{\"match\":\"\\\\\\\\b0b[01_]+\\\\\\\\b\",\"name\":\"constant.numeric.binary.zig\"},{\"match\":\"\\\\\\\\b[0-9](([eEpP][+-])|[0-9a-zA-Z_])*(\\\\\\\\.(([eEpP][+-])|[0-9a-zA-Z_])*)?([eEpP][+-])?[0-9a-zA-Z_]*\\\\\\\\b\",\"name\":\"constant.numeric.invalid.zig\"}]},\"operators\":{\"patterns\":[{\"match\":\"(?<=\\\\\\\\[)\\\\\\\\*c(?=\\\\\\\\])\",\"name\":\"keyword.operator.c-pointer.zig\"},{\"match\":\"(\\\\\\\\b(and|or)\\\\\\\\b)|(==|!=|<=|>=|<|>)\",\"name\":\"keyword.operator.comparison.zig\"},{\"match\":\"(-%?|\\\\\\\\+%?|\\\\\\\\*%?|/|%)=?\",\"name\":\"keyword.operator.arithmetic.zig\"},{\"match\":\"(<<%?|>>|!|~|&|\\\\\\\\^|\\\\\\\\|)=?\",\"name\":\"keyword.operator.bitwise.zig\"},{\"match\":\"(==|\\\\\\\\+\\\\\\\\+|\\\\\\\\*\\\\\\\\*|->)\",\"name\":\"keyword.operator.special.zig\"},{\"match\":\"=\",\"name\":\"keyword.operator.assignment.zig\"},{\"match\":\"\\\\\\\\?\",\"name\":\"keyword.operator.question.zig\"}]},\"punctuation\":{\"patterns\":[{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.accessor.zig\"},{\"match\":\",\",\"name\":\"punctuation.comma.zig\"},{\"match\":\":\",\"name\":\"punctuation.separator.key-value.zig\"},{\"match\":\";\",\"name\":\"punctuation.terminator.statement.zig\"}]},\"stringcontent\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\([nrt'\\\\\"\\\\\\\\\\\\\\\\]|(x[0-9a-fA-F]{2})|(u\\\\\\\\{[0-9a-fA-F]+\\\\\\\\}))\",\"name\":\"constant.character.escape.zig\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"invalid.illegal.unrecognized-string-escape.zig\"}]},\"strings\":{\"patterns\":[{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.zig\",\"patterns\":[{\"include\":\"#stringcontent\"}]},{\"begin\":\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\"end\":\"$\",\"name\":\"string.multiline.zig\"},{\"match\":\"'([^'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\(x\\\\\\\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.))'\",\"name\":\"string.quoted.single.zig\"}]},\"support\":{\"patterns\":[{\"comment\":\"Built-in functions\",\"match\":\"@[_a-zA-Z][_a-zA-Z0-9]*\",\"name\":\"support.function.builtin.zig\"}]},\"variables\":{\"patterns\":[{\"name\":\"meta.function.declaration.zig\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.function.zig\"},\"2\":{\"name\":\"entity.name.type.zig\"}},\"match\":\"\\\\\\\\b(fn)\\\\\\\\s+([A-Z][a-zA-Z0-9]*)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"storage.type.function.zig\"},\"2\":{\"name\":\"entity.name.function.zig\"}},\"match\":\"\\\\\\\\b(fn)\\\\\\\\s+([_a-zA-Z][_a-zA-Z0-9]*)\\\\\\\\b\"},{\"begin\":\"\\\\\\\\b(fn)\\\\\\\\s+@\\\\\"\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.zig\"}},\"end\":\"\\\\\"\",\"name\":\"entity.name.function.string.zig\",\"patterns\":[{\"include\":\"#stringcontent\"}]},{\"match\":\"\\\\\\\\b(const|var|fn)\\\\\\\\b\",\"name\":\"keyword.default.zig\"}]},{\"name\":\"meta.function.call.zig\",\"patterns\":[{\"match\":\"([A-Z][a-zA-Z0-9]*)(?=\\\\\\\\s*\\\\\\\\()\",\"name\":\"entity.name.type.zig\"},{\"match\":\"([_a-zA-Z][_a-zA-Z0-9]*)(?=\\\\\\\\s*\\\\\\\\()\",\"name\":\"entity.name.function.zig\"}]},{\"name\":\"meta.variable.zig\",\"patterns\":[{\"match\":\"\\\\\\\\b[_a-zA-Z][_a-zA-Z0-9]*\\\\\\\\b\",\"name\":\"variable.zig\"},{\"begin\":\"@\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"variable.string.zig\",\"patterns\":[{\"include\":\"#stringcontent\"}]}]}]}},\"scopeName\":\"source.zig\"}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BW0IIeyO.js",
    "content": "import{d as n,c as p,C as c,g as l,j as r,G as i,H as _,x as d,Q as f}from\"./CU_MfyYc.js\";const u=n({__name:\"CircleProgressbar\",props:{progress:{}},setup(o){const e=o,t=p(()=>{let s=\"progress-circle\";return e.progress>50&&(s+=\" over50\"),s+=` p${Math.round(e.progress)}`,s});return(s,a)=>(l(),c(\"div\",{class:_(d(t))},[r(\"span\",null,i(s.progress)+\"%\",1),a[0]||(a[0]=r(\"div\",{class:\"left-half-clipper\"},[r(\"div\",{class:\"first50-bar\"}),r(\"div\",{class:\"value-bar\"})],-1))],2))}}),g=f(u,[[\"__scopeId\",\"data-v-88f4951a\"]]);export{g as _};\n"
  },
  {
    "path": "jesse/static/_nuxt/BWBTHuhh.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{lineComment:\"//\",blockComment:[\"{\",\"}\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"],[\"<\",\">\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"},{open:\"'\",close:\"'\"}],folding:{markers:{start:new RegExp(\"^\\\\s*\\\\{\\\\$REGION(\\\\s\\\\'.*\\\\')?\\\\}\"),end:new RegExp(\"^\\\\s*\\\\{\\\\$ENDREGION\\\\}\")}}},t={defaultToken:\"\",tokenPostfix:\".pascal\",ignoreCase:!0,brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"}],keywords:[\"absolute\",\"abstract\",\"all\",\"and_then\",\"array\",\"as\",\"asm\",\"attribute\",\"begin\",\"bindable\",\"case\",\"class\",\"const\",\"contains\",\"default\",\"div\",\"else\",\"end\",\"except\",\"exports\",\"external\",\"far\",\"file\",\"finalization\",\"finally\",\"forward\",\"generic\",\"goto\",\"if\",\"implements\",\"import\",\"in\",\"index\",\"inherited\",\"initialization\",\"interrupt\",\"is\",\"label\",\"library\",\"mod\",\"module\",\"name\",\"near\",\"not\",\"object\",\"of\",\"on\",\"only\",\"operator\",\"or_else\",\"otherwise\",\"override\",\"package\",\"packed\",\"pow\",\"private\",\"program\",\"protected\",\"public\",\"published\",\"interface\",\"implementation\",\"qualified\",\"read\",\"record\",\"resident\",\"requires\",\"resourcestring\",\"restricted\",\"segment\",\"set\",\"shl\",\"shr\",\"specialize\",\"stored\",\"strict\",\"then\",\"threadvar\",\"to\",\"try\",\"type\",\"unit\",\"uses\",\"var\",\"view\",\"virtual\",\"dynamic\",\"overload\",\"reintroduce\",\"with\",\"write\",\"xor\",\"true\",\"false\",\"procedure\",\"function\",\"constructor\",\"destructor\",\"property\",\"break\",\"continue\",\"exit\",\"abort\",\"while\",\"do\",\"for\",\"raise\",\"repeat\",\"until\"],typeKeywords:[\"boolean\",\"double\",\"byte\",\"integer\",\"shortint\",\"char\",\"longint\",\"float\",\"string\"],operators:[\"=\",\">\",\"<\",\"<=\",\">=\",\"<>\",\":\",\":=\",\"and\",\"or\",\"+\",\"-\",\"*\",\"/\",\"@\",\"&\",\"^\",\"%\"],symbols:/[=><:@\\^&|+\\-*\\/\\^%]+/,tokenizer:{root:[[/[a-zA-Z_][\\w]*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/\\$[0-9a-fA-F]{1,16}/,\"number.hex\"],[/\\d+/,\"number\"],[/[;,.]/,\"delimiter\"],[/'([^'\\\\]|\\\\.)*$/,\"string.invalid\"],[/'/,\"string\",\"@string\"],[/'[^\\\\']'/,\"string\"],[/'/,\"string.invalid\"],[/\\#\\d+/,\"string\"]],comment:[[/[^\\*\\}]+/,\"comment\"],[/\\}/,\"comment\",\"@pop\"],[/[\\{]/,\"comment\"]],string:[[/[^\\\\']+/,\"string\"],[/\\\\./,\"string.escape.invalid\"],[/'/,{token:\"string.quote\",bracket:\"@close\",next:\"@pop\"}]],whitespace:[[/[ \\t\\r\\n]+/,\"white\"],[/\\{/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]]}};export{e as conf,t as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/BX77sIaO.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Emacs Lisp\",\"fileTypes\":[\"el\",\"elc\",\"eld\",\"spacemacs\",\"_emacs\",\"emacs\",\"emacs.desktop\",\"abbrev_defs\",\"Project.ede\",\"Cask\",\"gnus\",\"viper\"],\"firstLineMatch\":\"^\\\\\\\\#!.*(?:\\\\\\\\s|\\\\\\\\/|(?<=!)\\\\\\\\b)emacs(?:$|\\\\\\\\s)|(?:-\\\\\\\\*-(?i:[ \\\\\\\\t]*(?=[^:;\\\\\\\\s]+[ \\\\\\\\t]*-\\\\\\\\*-)|(?:.*?[ \\\\\\\\t;]|(?<=-\\\\\\\\*-))[ \\\\\\\\t]*mode[ \\\\\\\\t]*:[ \\\\\\\\t]*)(?i:emacs-lisp)(?=[ \\\\\\\\t;]|(?<![-*])-\\\\\\\\*-).*?-\\\\\\\\*-|(?:(?:^|[ \\\\\\\\t])(?:vi|Vi(?=m))(?:m[<=>]?[0-9]+|m)?|[ \\\\\\\\t]ex)(?=:(?=[ \\\\\\\\t]*set?[ \\\\\\\\t][^\\\\\\\\r\\\\\\\\n:]+:)|:(?![ \\\\\\\\t]*set?[ \\\\\\\\t]))(?:(?:[ \\\\\\\\t]*:[ \\\\\\\\t]*|[ \\\\\\\\t])\\\\\\\\w*(?:[ \\\\\\\\t]*=(?:[^\\\\\\\\\\\\\\\\\\\\\\\\s]|\\\\\\\\\\\\\\\\.)*)?)*[ \\\\\\\\t:](?:filetype|ft|syntax)[ \\\\\\\\t]*=(?i:emacs-lisp|elisp)(?=$|\\\\\\\\s|:))\",\"name\":\"emacs-lisp\",\"patterns\":[{\"begin\":\"\\\\\\\\A(#!)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.hashbang.emacs.lisp\"}},\"end\":\"$\",\"name\":\"comment.line.hashbang.emacs.lisp\"},{\"include\":\"#main\"}],\"repository\":{\"archive-sources\":{\"captures\":{\"1\":{\"name\":\"support.language.constant.archive-source.emacs.lisp\"}},\"match\":\"\\\\\\\\b(?<=[\\\\\\\\s()\\\\\\\\[]|^)(SC|gnu|marmalade|melpa-stable|melpa|org)(?=[\\\\\\\\s()]|$)\\\\\\\\b\"},\"arg-values\":{\"patterns\":[{\"match\":\"&(optional|rest)(?=\\\\\\\\s|\\\\\\\\))\",\"name\":\"constant.language.$1.arguments.emacs.lisp\"}]},\"autoload\":{\"begin\":\"^(;;;###)(autoload)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.emacs.lisp\"},\"2\":{\"name\":\"storage.modifier.autoload.emacs.lisp\"}},\"contentName\":\"string.unquoted.other.emacs.lisp\",\"end\":\"$\",\"name\":\"comment.line.semicolon.autoload.emacs.lisp\"},\"binding\":{\"match\":\"\\\\\\\\b(?<=[\\\\\\\\s()\\\\\\\\[]|^)(let\\\\\\\\*?|set[fq]?)(?=[\\\\\\\\s()]|$)\",\"name\":\"storage.binding.emacs.lisp\"},\"boolean\":{\"patterns\":[{\"match\":\"\\\\\\\\b(?<=[\\\\\\\\s()\\\\\\\\[]|^)t(?=[\\\\\\\\s()]|$)\\\\\\\\b\",\"name\":\"constant.boolean.true.emacs.lisp\"},{\"match\":\"\\\\\\\\b(?<=[\\\\\\\\s()\\\\\\\\[]|^)(nil)(?=[\\\\\\\\s()]|$)\\\\\\\\b\",\"name\":\"constant.language.nil.emacs.lisp\"}]},\"cask\":{\"match\":\"\\\\\\\\b(?<=[\\\\\\\\s()\\\\\\\\[]|^)(?:files|source|development|depends-on|package-file|package-descriptor|package)(?=[\\\\\\\\s()]|$)\\\\\\\\b\",\"name\":\"support.function.emacs.lisp\"},\"comment\":{\"begin\":\";\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.emacs.lisp\"}},\"end\":\"$\",\"name\":\"comment.line.semicolon.emacs.lisp\",\"patterns\":[{\"include\":\"#modeline\"},{\"include\":\"#eldoc\"}]},\"definition\":{\"patterns\":[{\"begin\":\"(\\\\\\\\()(?:(cl-(defun|defmacro|defsubst))|(defun|defmacro|defsubst))(?!-)\\\\\\\\b(?:\\\\\\\\s*(?![-+\\\\\\\\d])([-+=*/\\\\\\\\w~!@$%^&:<>{}?]+))?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.expression.begin.emacs.lisp\"},\"2\":{\"name\":\"storage.type.$3.function.cl-lib.emacs.lisp\"},\"4\":{\"name\":\"storage.type.$4.function.emacs.lisp\"},\"5\":{\"name\":\"entity.function.name.emacs.lisp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.expression.end.emacs.lisp\"}},\"name\":\"meta.function.definition.emacs.lisp\",\"patterns\":[{\"include\":\"#defun-innards\"}]},{\"match\":\"\\\\\\\\b(?<=[\\\\\\\\s()\\\\\\\\[]|^)defun(?=[\\\\\\\\s()]|$)\",\"name\":\"storage.type.function.emacs.lisp\"},{\"begin\":\"(?<=\\\\\\\\s|^)(\\\\\\\\()(def(advice|class|const|custom|face|image|group|package|struct|subst|theme|type|var))(?:\\\\\\\\s+([-+=*/\\\\\\\\w~!@$%^&:<>{}?]+))?(?=[\\\\\\\\s()]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.expression.begin.emacs.lisp\"},\"2\":{\"name\":\"storage.type.$3.emacs.lisp\"},\"4\":{\"name\":\"entity.name.$3.emacs.lisp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.expression.end.emacs.lisp\"}},\"name\":\"meta.$3.definition.emacs.lisp\",\"patterns\":[{\"include\":\"$self\"}]},{\"match\":\"\\\\\\\\b(?<=[\\\\\\\\s()\\\\\\\\[]|^)(define-(?:condition|widget))(?=[\\\\\\\\s()]|$)\\\\\\\\b\",\"name\":\"storage.type.$1.emacs.lisp\"}]},\"defun-innards\":{\"patterns\":[{\"begin\":\"\\\\\\\\G\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.expression.begin.emacs.lisp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.expression.end.emacs.lisp\"}},\"name\":\"meta.argument-list.expression.emacs.lisp\",\"patterns\":[{\"include\":\"#arg-keywords\"},{\"match\":\"(?![-+\\\\\\\\d:&'#])([-+=*/\\\\\\\\w~!@$%^&:<>{}?]+)\",\"name\":\"variable.parameter.emacs.lisp\"},{\"include\":\"$self\"}]},{\"include\":\"$self\"}]},\"docesc\":{\"patterns\":[{\"match\":\"\\\\\\\\x5C{2}=\",\"name\":\"constant.escape.character.key-sequence.emacs.lisp\"},{\"match\":\"\\\\\\\\x5C{2}+\",\"name\":\"constant.escape.character.suppress-link.emacs.lisp\"}]},\"dockey\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.reference.begin.emacs.lisp\"},\"2\":{\"name\":\"constant.other.reference.link.emacs.lisp\"},\"3\":{\"name\":\"punctuation.definition.reference.end.emacs.lisp\"}},\"match\":\"(\\\\\\\\x5C{2}\\\\\\\\[)((?:[^\\\\\\\\s\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)+)(\\\\\\\\])\",\"name\":\"variable.other.reference.key-sequence.emacs.lisp\"},\"docmap\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.reference.begin.emacs.lisp\"},\"2\":{\"name\":\"entity.name.tag.keymap.emacs.lisp\"},\"3\":{\"name\":\"punctuation.definition.reference.end.emacs.lisp\"}},\"match\":\"(\\\\\\\\x5C{2}{)((?:[^\\\\\\\\s\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)+)(})\",\"name\":\"meta.keymap.summary.emacs.lisp\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.reference.begin.emacs.lisp\"},\"2\":{\"name\":\"entity.name.tag.keymap.emacs.lisp\"},\"3\":{\"name\":\"punctuation.definition.reference.end.emacs.lisp\"}},\"match\":\"(\\\\\\\\x5C{2}<)((?:[^\\\\\\\\s\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)+)(>)\",\"name\":\"meta.keymap.specifier.emacs.lisp\"}]},\"docvar\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.quote.begin.emacs.lisp\"},\"2\":{\"name\":\"punctuation.definition.quote.end.emacs.lisp\"}},\"match\":\"(\\`)[^\\\\\\\\s()]+(')\",\"name\":\"variable.other.literal.emacs.lisp\"},\"eldoc\":{\"patterns\":[{\"include\":\"#docesc\"},{\"include\":\"#docvar\"},{\"include\":\"#dockey\"},{\"include\":\"#docmap\"}]},\"escapes\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.codepoint.emacs.lisp\"},\"2\":{\"name\":\"punctuation.definition.codepoint.emacs.lisp\"}},\"match\":\"(\\\\\\\\?)\\\\\\\\\\\\\\\\u[A-Fa-f0-9]{4}|(\\\\\\\\?)\\\\\\\\\\\\\\\\U00[A-Fa-f0-9]{6}\",\"name\":\"constant.character.escape.hex.emacs.lisp\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.codepoint.emacs.lisp\"}},\"match\":\"(\\\\\\\\?)\\\\\\\\\\\\\\\\x[A-Fa-f0-9]+\",\"name\":\"constant.character.escape.hex.emacs.lisp\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.codepoint.emacs.lisp\"}},\"match\":\"(\\\\\\\\?)\\\\\\\\\\\\\\\\[0-7]{1,3}\",\"name\":\"constant.character.escape.octal.emacs.lisp\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.codepoint.emacs.lisp\"},\"2\":{\"name\":\"punctuation.definition.backslash.emacs.lisp\"}},\"match\":\"(\\\\\\\\?)(?:[^\\\\\\\\\\\\\\\\]|(\\\\\\\\\\\\\\\\).)\",\"name\":\"constant.numeric.codepoint.emacs.lisp\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.backslash.emacs.lisp\"}},\"match\":\"(\\\\\\\\\\\\\\\\).\",\"name\":\"constant.character.escape.emacs.lisp\"}]},\"expression\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.expression.begin.emacs.lisp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.expression.end.emacs.lisp\"}},\"name\":\"meta.expression.emacs.lisp\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(\\\\\\\\')(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.symbol.emacs.lisp\"},\"2\":{\"name\":\"punctuation.section.quoted.expression.begin.emacs.lisp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.quoted.expression.end.emacs.lisp\"}},\"name\":\"meta.quoted.expression.emacs.lisp\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(\\\\\\\\\\`)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.symbol.emacs.lisp\"},\"2\":{\"name\":\"punctuation.section.backquoted.expression.begin.emacs.lisp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.backquoted.expression.end.emacs.lisp\"}},\"name\":\"meta.backquoted.expression.emacs.lisp\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(,@)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.symbol.emacs.lisp\"},\"2\":{\"name\":\"punctuation.section.interpolated.expression.begin.emacs.lisp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.interpolated.expression.end.emacs.lisp\"}},\"name\":\"meta.interpolated.expression.emacs.lisp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"face-innards\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.section.expression.begin.emacs.lisp\"},\"2\":{\"name\":\"variable.language.display.type.emacs.lisp\"},\"3\":{\"name\":\"support.constant.display.type.emacs.lisp\"},\"4\":{\"name\":\"punctuation.section.expression.end.emacs.lisp\"}},\"match\":\"(\\\\\\\\()(type)\\\\\\\\s+(graphic|x|pc|w32|tty)(\\\\\\\\))\",\"name\":\"meta.expression.display-type.emacs.lisp\"},{\"captures\":{\"1\":{\"name\":\"punctuation.section.expression.begin.emacs.lisp\"},\"2\":{\"name\":\"variable.language.display.class.emacs.lisp\"},\"3\":{\"name\":\"support.constant.display.class.emacs.lisp\"},\"4\":{\"name\":\"punctuation.section.expression.end.emacs.lisp\"}},\"match\":\"(\\\\\\\\()(class)\\\\\\\\s+(color|grayscale|mono)(\\\\\\\\))\",\"name\":\"meta.expression.display-class.emacs.lisp\"},{\"captures\":{\"1\":{\"name\":\"punctuation.section.expression.begin.emacs.lisp\"},\"2\":{\"name\":\"variable.language.background-type.emacs.lisp\"},\"3\":{\"name\":\"support.constant.background-type.emacs.lisp\"},\"4\":{\"name\":\"punctuation.section.expression.end.emacs.lisp\"}},\"match\":\"(\\\\\\\\()(background)\\\\\\\\s+(light|dark)(\\\\\\\\))\",\"name\":\"meta.expression.background-type.emacs.lisp\"},{\"begin\":\"(\\\\\\\\()(min-colors|supports)(?=[\\\\\\\\s()]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.expression.begin.emacs.lisp\"},\"2\":{\"name\":\"variable.language.display-prerequisite.emacs.lisp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.expression.end.emacs.lisp\"}},\"name\":\"meta.expression.display-prerequisite.emacs.lisp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"faces\":{\"match\":\"\\\\\\\\b(?<=[\\\\\\\\s()\\\\\\\\[]|^)(?:Buffer-menu-buffer|Info-quoted|Info-title-1-face|Info-title-2-face|Info-title-3-face|Info-title-4-face|Man-overstrike|Man-reverse|Man-underline|antlr-default|antlr-font-lock-default-face|antlr-font-lock-keyword-face|antlr-font-lock-literal-face|antlr-font-lock-ruledef-face|antlr-font-lock-ruleref-face|antlr-font-lock-syntax-face|antlr-font-lock-tokendef-face|antlr-font-lock-tokenref-face|antlr-keyword|antlr-literal|antlr-ruledef|antlr-ruleref|antlr-syntax|antlr-tokendef|antlr-tokenref|apropos-keybinding|apropos-property|apropos-symbol|bat-label-face|bg:erc-color-face0|bg:erc-color-face1|bg:erc-color-face10|bg:erc-color-face11|bg:erc-color-face12|bg:erc-color-face13|bg:erc-color-face14|bg:erc-color-face15|bg:erc-color-face2|bg:erc-color-face3|bg:erc-color-face4|bg:erc-color-face5|bg:erc-color-face6|bg:erc-color-face7|bg:erc-color-face8|bg:erc-color-face9|bold-italic|bold|bookmark-menu-bookmark|bookmark-menu-heading|border|breakpoint-disabled|breakpoint-enabled|buffer-menu-buffer|button|c-annotation-face|calc-nonselected-face|calc-selected-face|calendar-month-header|calendar-today|calendar-weekday-header|calendar-weekend-header|change-log-acknowledgement-face|change-log-acknowledgement|change-log-acknowledgment|change-log-conditionals-face|change-log-conditionals|change-log-date-face|change-log-date|change-log-email-face|change-log-email|change-log-file-face|change-log-file|change-log-function-face|change-log-function|change-log-list-face|change-log-list|change-log-name-face|change-log-name|comint-highlight-input|comint-highlight-prompt|compare-windows|compilation-column-number|compilation-error|compilation-info|compilation-line-number|compilation-mode-line-exit|compilation-mode-line-fail|compilation-mode-line-run|compilation-warning|completions-annotations|completions-common-part|completions-first-difference|cperl-array-face|cperl-hash-face|cperl-nonoverridable-face|css-property|css-selector|cua-global-mark|cua-rectangle-noselect|cua-rectangle|cursor|custom-button-mouse|custom-button-pressed-unraised|custom-button-pressed|custom-button-unraised|custom-button|custom-changed|custom-comment-tag|custom-comment|custom-documentation|custom-face-tag|custom-group-subtitle|custom-group-tag-1|custom-group-tag|custom-invalid|custom-link|custom-modified|custom-rogue|custom-saved|custom-set|custom-state|custom-themed|custom-variable-button|custom-variable-tag|custom-visibility|cvs-filename-face|cvs-filename|cvs-handled-face|cvs-handled|cvs-header-face|cvs-header|cvs-marked-face|cvs-marked|cvs-msg-face|cvs-msg|cvs-need-action-face|cvs-need-action|cvs-unknown-face|cvs-unknown|default|diary-anniversary|diary-button|diary-time|diary|diff-added-face|diff-added|diff-changed-face|diff-changed|diff-context-face|diff-context|diff-file-header-face|diff-file-header|diff-function-face|diff-function|diff-header-face|diff-header|diff-hunk-header-face|diff-hunk-header|diff-index-face|diff-index|diff-indicator-added|diff-indicator-changed|diff-indicator-removed|diff-nonexistent-face|diff-nonexistent|diff-refine-added|diff-refine-change|diff-refine-changed|diff-refine-removed|diff-removed-face|diff-removed|dired-directory|dired-flagged|dired-header|dired-ignored|dired-mark|dired-marked|dired-perm-write|dired-symlink|dired-warning|ebrowse-default|ebrowse-file-name|ebrowse-member-attribute|ebrowse-member-class|ebrowse-progress|ebrowse-root-class|ebrowse-tree-mark|ediff-current-diff-A|ediff-current-diff-Ancestor|ediff-current-diff-B|ediff-current-diff-C|ediff-even-diff-A|ediff-even-diff-Ancestor|ediff-even-diff-B|ediff-even-diff-C|ediff-fine-diff-A|ediff-fine-diff-Ancestor|ediff-fine-diff-B|ediff-fine-diff-C|ediff-odd-diff-A|ediff-odd-diff-Ancestor|ediff-odd-diff-B|ediff-odd-diff-C|eieio-custom-slot-tag-face|eldoc-highlight-function-argument|epa-field-body|epa-field-name|epa-mark|epa-string|epa-validity-disabled|epa-validity-high|epa-validity-low|epa-validity-medium|erc-action-face|erc-bold-face|erc-button|erc-command-indicator-face|erc-current-nick-face|erc-dangerous-host-face|erc-default-face|erc-direct-msg-face|erc-error-face|erc-fool-face|erc-header-line|erc-input-face|erc-inverse-face|erc-keyword-face|erc-my-nick-face|erc-my-nick-prefix-face|erc-nick-default-face|erc-nick-msg-face|erc-nick-prefix-face|erc-notice-face|erc-pal-face|erc-prompt-face|erc-timestamp-face|erc-underline-face|error|ert-test-result-expected|ert-test-result-unexpected|escape-glyph|eww-form-checkbox|eww-form-file|eww-form-select|eww-form-submit|eww-form-text|eww-form-textarea|eww-invalid-certificate|eww-valid-certificate|excerpt|ffap|fg:erc-color-face0|fg:erc-color-face1|fg:erc-color-face10|fg:erc-color-face11|fg:erc-color-face12|fg:erc-color-face13|fg:erc-color-face14|fg:erc-color-face15|fg:erc-color-face2|fg:erc-color-face3|fg:erc-color-face4|fg:erc-color-face5|fg:erc-color-face6|fg:erc-color-face7|fg:erc-color-face8|fg:erc-color-face9|file-name-shadow|fixed-pitch|fixed|flymake-errline|flymake-warnline|flyspell-duplicate|flyspell-incorrect|font-lock-builtin-face|font-lock-comment-delimiter-face|font-lock-comment-face|font-lock-constant-face|font-lock-doc-face|font-lock-function-name-face|font-lock-keyword-face|font-lock-negation-char-face|font-lock-preprocessor-face|font-lock-regexp-grouping-backslash|font-lock-regexp-grouping-construct|font-lock-string-face|font-lock-type-face|font-lock-variable-name-face|font-lock-warning-face|fringe|glyphless-char|gnus-button|gnus-cite-1|gnus-cite-10|gnus-cite-11|gnus-cite-2|gnus-cite-3|gnus-cite-4|gnus-cite-5|gnus-cite-6|gnus-cite-7|gnus-cite-8|gnus-cite-9|gnus-cite-attribution-face|gnus-cite-attribution|gnus-cite-face-1|gnus-cite-face-10|gnus-cite-face-11|gnus-cite-face-2|gnus-cite-face-3|gnus-cite-face-4|gnus-cite-face-5|gnus-cite-face-6|gnus-cite-face-7|gnus-cite-face-8|gnus-cite-face-9|gnus-emphasis-bold-italic|gnus-emphasis-bold|gnus-emphasis-highlight-words|gnus-emphasis-italic|gnus-emphasis-strikethru|gnus-emphasis-underline-bold-italic|gnus-emphasis-underline-bold|gnus-emphasis-underline-italic|gnus-emphasis-underline|gnus-group-mail-1-empty-face|gnus-group-mail-1-empty|gnus-group-mail-1-face|gnus-group-mail-1|gnus-group-mail-2-empty-face|gnus-group-mail-2-empty|gnus-group-mail-2-face|gnus-group-mail-2|gnus-group-mail-3-empty-face|gnus-group-mail-3-empty|gnus-group-mail-3-face|gnus-group-mail-3|gnus-group-mail-low-empty-face|gnus-group-mail-low-empty|gnus-group-mail-low-face|gnus-group-mail-low|gnus-group-news-1-empty-face|gnus-group-news-1-empty|gnus-group-news-1-face|gnus-group-news-1|gnus-group-news-2-empty-face|gnus-group-news-2-empty|gnus-group-news-2-face|gnus-group-news-2|gnus-group-news-3-empty-face|gnus-group-news-3-empty|gnus-group-news-3-face|gnus-group-news-3|gnus-group-news-4-empty-face|gnus-group-news-4-empty|gnus-group-news-4-face|gnus-group-news-4|gnus-group-news-5-empty-face|gnus-group-news-5-empty|gnus-group-news-5-face|gnus-group-news-5|gnus-group-news-6-empty-face|gnus-group-news-6-empty|gnus-group-news-6-face|gnus-group-news-6|gnus-group-news-low-empty-face|gnus-group-news-low-empty|gnus-group-news-low-face|gnus-group-news-low|gnus-header-content-face|gnus-header-content|gnus-header-from-face|gnus-header-from|gnus-header-name-face|gnus-header-name|gnus-header-newsgroups-face|gnus-header-newsgroups|gnus-header-subject-face|gnus-header-subject|gnus-signature-face|gnus-signature|gnus-splash-face|gnus-splash|gnus-summary-cancelled-face|gnus-summary-cancelled|gnus-summary-high-ancient-face|gnus-summary-high-ancient|gnus-summary-high-read-face|gnus-summary-high-read|gnus-summary-high-ticked-face|gnus-summary-high-ticked|gnus-summary-high-undownloaded-face|gnus-summary-high-undownloaded|gnus-summary-high-unread-face|gnus-summary-high-unread|gnus-summary-low-ancient-face|gnus-summary-low-ancient|gnus-summary-low-read-face|gnus-summary-low-read|gnus-summary-low-ticked-face|gnus-summary-low-ticked|gnus-summary-low-undownloaded-face|gnus-summary-low-undownloaded|gnus-summary-low-unread-face|gnus-summary-low-unread|gnus-summary-normal-ancient-face|gnus-summary-normal-ancient|gnus-summary-normal-read-face|gnus-summary-normal-read|gnus-summary-normal-ticked-face|gnus-summary-normal-ticked|gnus-summary-normal-undownloaded-face|gnus-summary-normal-undownloaded|gnus-summary-normal-unread-face|gnus-summary-normal-unread|gnus-summary-selected-face|gnus-summary-selected|gomoku-O|gomoku-X|header-line|help-argument-name|hexl-address-region|hexl-ascii-region|hi-black-b|hi-black-hb|hi-blue-b|hi-blue|hi-green-b|hi-green|hi-pink|hi-red-b|hi-yellow|hide-ifdef-shadow|highlight-changes-delete-face|highlight-changes-delete|highlight-changes-face|highlight-changes|highlight|hl-line|holiday|icomplete-first-match|idlwave-help-link|idlwave-shell-bp|idlwave-shell-disabled-bp|idlwave-shell-electric-stop-line|idlwave-shell-pending-electric-stop|idlwave-shell-pending-stop|ido-first-match|ido-incomplete-regexp|ido-indicator|ido-only-match|ido-subdir|ido-virtual|info-header-node|info-header-xref|info-index-match|info-menu-5|info-menu-header|info-menu-star|info-node|info-title-1|info-title-2|info-title-3|info-title-4|info-xref|isearch-fail|isearch-lazy-highlight-face|isearch|iswitchb-current-match|iswitchb-invalid-regexp|iswitchb-single-match|iswitchb-virtual-matches|italic|landmark-font-lock-face-O|landmark-font-lock-face-X|lazy-highlight|ld-script-location-counter|link-visited|link|log-edit-header|log-edit-summary|log-edit-unknown-header|log-view-file-face|log-view-file|log-view-message-face|log-view-message|makefile-makepp-perl|makefile-shell|makefile-space-face|makefile-space|makefile-targets|match|menu|message-cited-text-face|message-cited-text|message-header-cc-face|message-header-cc|message-header-name-face|message-header-name|message-header-newsgroups-face|message-header-newsgroups|message-header-other-face|message-header-other|message-header-subject-face|message-header-subject|message-header-to-face|message-header-to|message-header-xheader-face|message-header-xheader|message-mml-face|message-mml|message-separator-face|message-separator|mh-folder-address|mh-folder-blacklisted|mh-folder-body|mh-folder-cur-msg-number|mh-folder-date|mh-folder-deleted|mh-folder-followup|mh-folder-msg-number|mh-folder-refiled|mh-folder-sent-to-me-hint|mh-folder-sent-to-me-sender|mh-folder-subject|mh-folder-tick|mh-folder-to|mh-folder-whitelisted|mh-letter-header-field|mh-search-folder|mh-show-cc|mh-show-date|mh-show-from|mh-show-header|mh-show-pgg-bad|mh-show-pgg-good|mh-show-pgg-unknown|mh-show-signature|mh-show-subject|mh-show-to|mh-speedbar-folder-with-unseen-messages|mh-speedbar-folder|mh-speedbar-selected-folder-with-unseen-messages|mh-speedbar-selected-folder|minibuffer-prompt|mm-command-output|mm-uu-extract|mode-line-buffer-id|mode-line-emphasis|mode-line-highlight|mode-line-inactive|mode-line|modeline-buffer-id|modeline-highlight|modeline-inactive|mouse|mpuz-solved|mpuz-text|mpuz-trivial|mpuz-unsolved|newsticker-date-face|newsticker-default-face|newsticker-enclosure-face|newsticker-extra-face|newsticker-feed-face|newsticker-immortal-item-face|newsticker-new-item-face|newsticker-obsolete-item-face|newsticker-old-item-face|newsticker-statistics-face|newsticker-treeview-face|newsticker-treeview-immortal-face|newsticker-treeview-new-face|newsticker-treeview-obsolete-face|newsticker-treeview-old-face|newsticker-treeview-selection-face|next-error|nobreak-space|nxml-attribute-colon|nxml-attribute-local-name|nxml-attribute-prefix|nxml-attribute-value-delimiter|nxml-attribute-value|nxml-cdata-section-CDATA|nxml-cdata-section-content|nxml-cdata-section-delimiter|nxml-char-ref-delimiter|nxml-char-ref-number|nxml-comment-content|nxml-comment-delimiter|nxml-delimited-data|nxml-delimiter|nxml-element-colon|nxml-element-local-name|nxml-element-prefix|nxml-entity-ref-delimiter|nxml-entity-ref-name|nxml-glyph|nxml-hash|nxml-heading|nxml-markup-declaration-delimiter|nxml-name|nxml-namespace-attribute-colon|nxml-namespace-attribute-prefix|nxml-namespace-attribute-value-delimiter|nxml-namespace-attribute-value|nxml-namespace-attribute-xmlns|nxml-outline-active-indicator|nxml-outline-ellipsis|nxml-outline-indicator|nxml-processing-instruction-content|nxml-processing-instruction-delimiter|nxml-processing-instruction-target|nxml-prolog-keyword|nxml-prolog-literal-content|nxml-prolog-literal-delimiter|nxml-ref|nxml-tag-delimiter|nxml-tag-slash|nxml-text|octave-function-comment-block|org-agenda-calendar-event|org-agenda-calendar-sexp|org-agenda-clocking|org-agenda-column-dateline|org-agenda-current-time|org-agenda-date-today|org-agenda-date-weekend|org-agenda-date|org-agenda-diary|org-agenda-dimmed-todo-face|org-agenda-done|org-agenda-filter-category|org-agenda-filter-regexp|org-agenda-filter-tags|org-agenda-restriction-lock|org-agenda-structure|org-archived|org-block-background|org-block-begin-line|org-block-end-line|org-block|org-checkbox-statistics-done|org-checkbox-statistics-todo|org-checkbox|org-clock-overlay|org-code|org-column-title|org-column|org-date-selected|org-date|org-default|org-document-info-keyword|org-document-info|org-document-title|org-done|org-drawer|org-ellipsis|org-footnote|org-formula|org-headline-done|org-hide|org-latex-and-related|org-level-1|org-level-2|org-level-3|org-level-4|org-level-5|org-level-6|org-level-7|org-level-8|org-link|org-list-dt|org-macro|org-meta-line|org-mode-line-clock-overrun|org-mode-line-clock|org-priority|org-property-value|org-quote|org-scheduled-previously|org-scheduled-today|org-scheduled|org-sexp-date|org-special-keyword|org-table|org-tag-group|org-tag|org-target|org-time-grid|org-todo|org-upcoming-deadline|org-verbatim|org-verse|org-warning|outline-1|outline-2|outline-3|outline-4|outline-5|outline-6|outline-7|outline-8|proced-mark|proced-marked|proced-sort-header|pulse-highlight-face|pulse-highlight-start-face|query-replace|rcirc-bright-nick|rcirc-dim-nick|rcirc-keyword|rcirc-my-nick|rcirc-nick-in-message-full-line|rcirc-nick-in-message|rcirc-other-nick|rcirc-prompt|rcirc-server-prefix|rcirc-server|rcirc-timestamp|rcirc-track-keyword|rcirc-track-nick|rcirc-url|reb-match-0|reb-match-1|reb-match-2|reb-match-3|rectangle-preview-face|region|rmail-header-name|rmail-highlight|rng-error|rst-adornment|rst-block|rst-comment|rst-definition|rst-directive|rst-emphasis1|rst-emphasis2|rst-external|rst-level-1|rst-level-2|rst-level-3|rst-level-4|rst-level-5|rst-level-6|rst-literal|rst-reference|rst-transition|ruler-mode-column-number|ruler-mode-comment-column|ruler-mode-current-column|ruler-mode-default|ruler-mode-fill-column|ruler-mode-fringes|ruler-mode-goal-column|ruler-mode-margins|ruler-mode-pad|ruler-mode-tab-stop|scroll-bar|secondary-selection|semantic-highlight-edits-face|semantic-highlight-func-current-tag-face|semantic-unmatched-syntax-face|senator-momentary-highlight-face|sgml-namespace|sh-escaped-newline|sh-heredoc-face|sh-heredoc|sh-quoted-exec|shadow|show-paren-match-face|show-paren-match|show-paren-mismatch-face|show-paren-mismatch|shr-link|shr-strike-through|smerge-base-face|smerge-base|smerge-markers-face|smerge-markers|smerge-mine-face|smerge-mine|smerge-other-face|smerge-other|smerge-refined-added|smerge-refined-change|smerge-refined-changed|smerge-refined-removed|speedbar-button-face|speedbar-directory-face|speedbar-file-face|speedbar-highlight-face|speedbar-selected-face|speedbar-separator-face|speedbar-tag-face|srecode-separator-face|strokes-char|subscript|success|superscript|table-cell|tcl-escaped-newline|term-bold|term-color-black|term-color-blue|term-color-cyan|term-color-green|term-color-magenta|term-color-red|term-color-white|term-color-yellow|term-underline|term|testcover-1value|testcover-nohits|tex-math-face|tex-math|tex-verbatim-face|tex-verbatim|texinfo-heading-face|texinfo-heading|tmm-inactive|todo-archived-only|todo-button|todo-category-string|todo-comment|todo-date|todo-diary-expired|todo-done-sep|todo-done|todo-key-prompt|todo-mark|todo-nondiary|todo-prefix-string|todo-search|todo-sorted-column|todo-time|todo-top-priority|tool-bar|tooltip|trailing-whitespace|tty-menu-disabled-face|tty-menu-enabled-face|tty-menu-selected-face|underline|variable-pitch|vc-conflict-state|vc-edited-state|vc-locally-added-state|vc-locked-state|vc-missing-state|vc-needs-update-state|vc-removed-state|vc-state-base-face|vc-up-to-date-state|vcursor|vera-font-lock-function|vera-font-lock-interface|vera-font-lock-number|verilog-font-lock-ams-face|verilog-font-lock-grouping-keywords-face|verilog-font-lock-p1800-face|verilog-font-lock-translate-off-face|vertical-border|vhdl-font-lock-attribute-face|vhdl-font-lock-directive-face|vhdl-font-lock-enumvalue-face|vhdl-font-lock-function-face|vhdl-font-lock-generic-\\\\\\\\/constant-face|vhdl-font-lock-prompt-face|vhdl-font-lock-reserved-words-face|vhdl-font-lock-translate-off-face|vhdl-font-lock-type-face|vhdl-font-lock-variable-face|vhdl-speedbar-architecture-face|vhdl-speedbar-architecture-selected-face|vhdl-speedbar-configuration-face|vhdl-speedbar-configuration-selected-face|vhdl-speedbar-entity-face|vhdl-speedbar-entity-selected-face|vhdl-speedbar-instantiation-face|vhdl-speedbar-instantiation-selected-face|vhdl-speedbar-library-face|vhdl-speedbar-package-face|vhdl-speedbar-package-selected-face|vhdl-speedbar-subprogram-face|viper-minibuffer-emacs|viper-minibuffer-insert|viper-minibuffer-vi|viper-replace-overlay|viper-search|warning|which-func|whitespace-big-indent|whitespace-empty|whitespace-hspace|whitespace-indentation|whitespace-line|whitespace-newline|whitespace-space-after-tab|whitespace-space-before-tab|whitespace-space|whitespace-tab|whitespace-trailing|widget-button-face|widget-button-pressed-face|widget-button-pressed|widget-button|widget-documentation-face|widget-documentation|widget-field-face|widget-field|widget-inactive-face|widget-inactive|widget-single-line-field-face|widget-single-line-field|window-divider-first-pixel|window-divider-last-pixel|window-divider|woman-addition-face|woman-addition|woman-bold-face|woman-bold|woman-italic-face|woman-italic|woman-unknown-face|woman-unknown)(?=[\\\\\\\\s()]|$)\\\\\\\\b\",\"name\":\"support.constant.face.emacs.lisp\"},\"format\":{\"begin\":\"\\\\\\\\G\",\"contentName\":\"string.quoted.double.emacs.lisp\",\"end\":\"(?=\\\\\")\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.other.placeholder.emacs.lisp\"},\"2\":{\"name\":\"invalid.illegal.placeholder.emacs.lisp\"}},\"match\":\"(%[%cdefgosSxX])|(%.)\"},{\"include\":\"#string-innards\"}]},\"formatting\":{\"begin\":\"(\\\\\\\\()(format|format-message|message|error)(?=\\\\\\\\s|$|\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.expression.begin.emacs.lisp\"},\"2\":{\"name\":\"support.function.$2.emacs.lisp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.expression.end.emacs.lisp\"}},\"name\":\"meta.string-formatting.expression.emacs.lisp\",\"patterns\":[{\"begin\":\"\\\\\\\\G\\\\\\\\s*(\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.emacs.lisp\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.emacs.lisp\"}},\"patterns\":[{\"include\":\"#format\"}]},{\"begin\":\"\\\\\\\\G\\\\\\\\s*$\\\\\\\\n?\",\"end\":\"\\\\\"|(?<!^)$|[\\\\\\\\s\\\\\"](?=[^\\\\\\\\s\\\\\"])\",\"patterns\":[{\"match\":\"^\\\\\\\\s*$\\\\\\\\n?\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.emacs.lisp\"}},\"match\":\"(?:^|\\\\\\\\G)\\\\\\\\s*(\\\\\")\"},{\"begin\":\"(?<=\\\\\")\",\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.emacs.lisp\"}},\"patterns\":[{\"include\":\"#format\"}]}]},{\"include\":\"$self\"}]},\"functions\":{\"match\":\"\\\\\\\\b(?<=[\\\\\\\\s()\\\\\\\\[]|^)(abs|append|apply|assoc|butlast|c[ad]{1,2}r|c[ad]r-safe|consp?|copy-alist|copy-tree|dolist|funcall|last|length|listp?|load|make-list|mapc|mapcar|max|min|member|nbutlast|nconc|nreverse|nth|nthcdr|null|pop|prin[1ct]|push|quote|rassoc|reverse|rplac[ad]|safe-length|setcar|setcdr)(?=[\\\\\\\\s()]|$)\\\\\\\\b\",\"name\":\"keyword.control.function.$1.emacs.lisp\"},\"key-notation\":{\"patterns\":[{\"match\":\"\\\\\\\\b(DEL|ESC|LFD|NUL|RET|SPC|TAB)\\\\\\\\b\",\"name\":\"constant.control-character.key.emacs.lisp\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.escape.backslash.emacs.lisp\"}},\"match\":\"(\\\\\\\\\\\\\\\\)[0-7]{1,6}\",\"name\":\"constant.character.escape.octal.codepoint.key.emacs.lisp\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.escape.caret.emacs.lisp\"}},\"match\":\"(\\\\\\\\^)\\\\\\\\S\",\"name\":\"constant.character.escape.caret.control.key.emacs.lisp\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.double.angle.bracket.begin.emacs.lisp\"},\"2\":{\"name\":\"punctuation.definition.double.angle.bracket.end.emacs.lisp\"}},\"match\":\"(<<)[-A-Za-z0-9]+(>>)\",\"name\":\"constant.command-name.key.emacs.lisp\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.integer.int.decimal.emacs.lisp\"},\"2\":{\"name\":\"keyword.operator.arithmetic.multiply.emacs.lisp\"}},\"match\":\"([0-9]+)(\\\\\\\\*)(?=[\\\\\\\\S])\",\"name\":\"meta.key-repetition.emacs.lisp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#key-notation-prefix\"}]},\"2\":{\"name\":\"constant.character.key.emacs.lisp\"}},\"match\":\"\\\\\\\\b(M-)(-?[0-9]+)\\\\\\\\b\",\"name\":\"meta.key-sequence.emacs.lisp\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#key-notation-prefix\"}]},\"2\":{\"name\":\"punctuation.definition.angle.bracket.begin.emacs.lisp\"},\"3\":{\"name\":\"constant.control-character.key.emacs.lisp\"},\"4\":{\"name\":\"punctuation.definition.angle.bracket.end.emacs.lisp\"},\"5\":{\"name\":\"constant.control-character.key.emacs.lisp\"},\"6\":{\"name\":\"invalid.illegal.bad-prefix.emacs.lisp\"},\"7\":{\"name\":\"constant.character.key.emacs.lisp\"}},\"match\":\"\\\\\\\\b((?:[MCSAHs]-)+)(?:(<)(DEL|ESC|LFD|NUL|RET|SPC|TAB)(>)|(DEL|ESC|LFD|NUL|RET|SPC|TAB)\\\\\\\\b|([!-_a-z]{2,})|([!-_a-z]))?\",\"name\":\"meta.key-sequence.emacs.lisp\"},{\"captures\":{\"1\":{\"patterns\":[{\"match\":\"<\",\"name\":\"punctuation.definition.angle.bracket.begin.emacs.lisp\"},{\"include\":\"#key-notation-prefix\"}]},\"2\":{\"name\":\"constant.function-key.emacs.lisp\"},\"3\":{\"name\":\"punctuation.definition.angle.bracket.end.emacs.lisp\"}},\"match\":\"([MCSAHs]-<|<[MCSAHs]-|<)([-A-Za-z0-9]+)(>)\",\"name\":\"meta.function-key.emacs.lisp\"},{\"match\":\"(?<=\\\\\\\\s)(?![MCSAHs<>])[!-_a-z](?=\\\\\\\\s)\",\"name\":\"constant.character.key.emacs.lisp\"}]},\"key-notation-prefix\":{\"captures\":{\"1\":{\"name\":\"constant.character.key.modifier.emacs.lisp\"},\"2\":{\"name\":\"punctuation.separator.modifier.dash.emacs.lisp\"}},\"match\":\"([MCSAHs])(-)\"},\"keyword\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.keyword.emacs.lisp\"}},\"match\":\"(?<=[\\\\\\\\s()\\\\\\\\[]|^)(:)[-+=*/\\\\\\\\w~!@$%^&:<>{}?]+\",\"name\":\"constant.keyword.emacs.lisp\"},\"lambda\":{\"begin\":\"(\\\\\\\\()(lambda|function)(?:\\\\\\\\s+|(?=[()]))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.expression.begin.emacs.lisp\"},\"2\":{\"name\":\"storage.type.lambda.function.emacs.lisp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.expression.end.emacs.lisp\"}},\"name\":\"meta.lambda.expression.emacs.lisp\",\"patterns\":[{\"include\":\"#defun-innards\"}]},\"loop\":{\"begin\":\"(\\\\\\\\()(cl-loop)(?=[\\\\\\\\s()]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.expression.begin.emacs.lisp\"},\"2\":{\"name\":\"support.function.cl-lib.emacs.lisp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.expression.end.emacs.lisp\"}},\"name\":\"meta.cl-lib.loop.emacs.lisp\",\"patterns\":[{\"match\":\"(?<=[\\\\\\\\s()\\\\\\\\[]|^)(above|across|across-ref|always|and|append|as|below|by|collect|concat|count|do|each|finally|for|from|if|in|in-ref|initially|into|maximize|minimize|named|nconc|never|of|of-ref|on|repeat|return|sum|then|thereis|sum|to|unless|until|using|vconcat|when|while|with|(?:being\\\\\\\\s+(?:the)?\\\\\\\\s+(?:element|hash-key|hash-value|key-code|key-binding|key-seq|overlay|interval|symbols|frame|window|buffer)s?))(?=[\\\\\\\\s()]|$)\",\"name\":\"keyword.control.emacs.lisp\"},{\"include\":\"$self\"}]},\"main\":{\"patterns\":[{\"include\":\"#autoload\"},{\"include\":\"#comment\"},{\"include\":\"#lambda\"},{\"include\":\"#loop\"},{\"include\":\"#escapes\"},{\"include\":\"#definition\"},{\"include\":\"#formatting\"},{\"include\":\"#face-innards\"},{\"include\":\"#expression\"},{\"include\":\"#operators\"},{\"include\":\"#functions\"},{\"include\":\"#binding\"},{\"include\":\"#keyword\"},{\"include\":\"#string\"},{\"include\":\"#number\"},{\"include\":\"#quote\"},{\"include\":\"#symbols\"},{\"include\":\"#vectors\"},{\"include\":\"#arg-values\"},{\"include\":\"#archive-sources\"},{\"include\":\"#boolean\"},{\"include\":\"#faces\"},{\"include\":\"#cask\"},{\"include\":\"#stdlib\"}]},\"modeline\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.modeline.begin.emacs.lisp\"},\"2\":{\"patterns\":[{\"include\":\"#modeline-innards\"}]},\"3\":{\"name\":\"punctuation.definition.modeline.end.emacs.lisp\"}},\"match\":\"(-\\\\\\\\*-)(.*)(-\\\\\\\\*-)\",\"name\":\"meta.modeline.emacs.lisp\"},\"modeline-innards\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.assignment.modeline.emacs.lisp\"},\"2\":{\"name\":\"punctuation.separator.key-value.emacs.lisp\"},\"3\":{\"patterns\":[{\"include\":\"#modeline-innards\"}]}},\"match\":\"([^\\\\\\\\s:;]+)\\\\\\\\s*(:)\\\\\\\\s*([^;]*)\",\"name\":\"meta.modeline.variable.emacs.lisp\"},{\"match\":\";\",\"name\":\"punctuation.terminator.statement.emacs.lisp\"},{\"match\":\":\",\"name\":\"punctuation.separator.key-value.emacs.lisp\"},{\"match\":\"\\\\\\\\S+\",\"name\":\"string.other.modeline.emacs.lisp\"}]},\"number\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.binary.emacs.lisp\"}},\"match\":\"(?<=[\\\\\\\\s()\\\\\\\\[]|^)(#)[Bb][01]+\",\"name\":\"constant.numeric.integer.binary.emacs.lisp\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.hex.emacs.lisp\"}},\"match\":\"(?<=[\\\\\\\\s()\\\\\\\\[]|^)(#)[Xx][0-9A-Fa-f]+\",\"name\":\"constant.numeric.integer.hex.viml\"},{\"match\":\"(?<=[\\\\\\\\s()\\\\\\\\[]|^)[-+]?\\\\\\\\d*\\\\\\\\.\\\\\\\\d+(?:[Ee][-+]?\\\\\\\\d+|[Ee]\\\\\\\\+(?:INF|NaN))?(?=[\\\\\\\\s()]|$)\",\"name\":\"constant.numeric.float.emacs.lisp\"},{\"match\":\"(?<=[\\\\\\\\s()\\\\\\\\[]|^)[-+]?\\\\\\\\d+(?:[Ee][-+]?\\\\\\\\d+|[Ee]\\\\\\\\+(?:INF|NaN))?(?=[\\\\\\\\s()]|$)\",\"name\":\"constant.numeric.integer.emacs.lisp\"}]},\"operators\":{\"patterns\":[{\"match\":\"(?<=[()]|^)(and|catch|cond|condition-case(?:-unless-debug)?|dotimes|eql?|equal|if|not|or|pcase|prog[12n]|throw|unless|unwind-protect|when|while)(?=[\\\\\\\\s()]|$)\",\"name\":\"keyword.control.$1.emacs.lisp\"},{\"match\":\"(?<=\\\\\\\\(|\\\\\\\\s|^)(interactive)(?=\\\\\\\\s|\\\\\\\\(|\\\\\\\\))\",\"name\":\"storage.modifier.interactive.function.emacs.lisp\"},{\"match\":\"(?<=\\\\\\\\(|\\\\\\\\s|^)[-*+/%](?=\\\\\\\\s|\\\\\\\\)|$)\",\"name\":\"keyword.operator.numeric.emacs.lisp\"},{\"match\":\"(?<=\\\\\\\\(|\\\\\\\\s|^)[/<>]=|[=<>](?=\\\\\\\\s|\\\\\\\\)|$)\",\"name\":\"keyword.operator.comparison.emacs.lisp\"},{\"match\":\"(?<=\\\\\\\\s)\\\\\\\\.(?=\\\\\\\\s|$)\",\"name\":\"keyword.operator.pair-separator.emacs.lisp\"}]},\"quote\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.quote.emacs.lisp\"},\"2\":{\"patterns\":[{\"include\":\"$self\"}]}},\"match\":\"(')([-+=*/\\\\\\\\w~!@$%^&:<>{}?]+)\",\"name\":\"constant.other.symbol.emacs.lisp\"}]},\"stdlib\":{\"patterns\":[{\"match\":\"(?<=[()]|^)(\\`--pcase-macroexpander|Buffer-menu-unmark-all-buffers|Buffer-menu-unmark-all|Info-node-description|aa2u-mark-as-text|aa2u-mark-rectangle-as-text|aa2u-rectangle|aa2u|ada-find-file|ada-header|ada-mode|add-abbrev|add-change-log-entry-other-window|add-change-log-entry|add-dir-local-variable|add-file-local-variable-prop-line|add-file-local-variable|add-global-abbrev|add-log-current-defun|add-minor-mode|add-mode-abbrev|add-submenu|add-timeout|add-to-coding-system-list|add-to-list--anon-cmacro|add-variable-watcher|adoc-mode|advertised-undo|advice--add-function|advice--buffer-local|advice--called-interactively-skip|advice--car|advice--cd\\\\\\\\*r|advice--cdr|advice--defalias-fset|advice--interactive-form|advice--make-1|advice--make-docstring|advice--make-interactive-form|advice--make|advice--member-p|advice--normalize-place|advice--normalize|advice--props|advice--p|advice--remove-function|advice--set-buffer-local|advice--strip-macro|advice--subst-main|advice--symbol-function|advice--tweak|advice--where|after-insert-file-set-coding|aggressive-indent--extend-end-to-whole-sexps|aggressive-indent--indent-current-balanced-line|aggressive-indent--indent-if-changed|aggressive-indent--keep-track-of-changes|aggressive-indent--local-electric|aggressive-indent--proccess-changed-list-and-indent|aggressive-indent--run-user-hooks|aggressive-indent--softly-indent-defun|aggressive-indent--softly-indent-region-and-on|aggressive-indent-bug-report|aggressive-indent-global-mode|aggressive-indent-indent-defun|aggressive-indent-indent-region-and-on|aggressive-indent-mode-set-explicitly|aggressive-indent-mode|align-current|align-entire|align-highlight-rule|align-newline-and-indent|align-regexp|align-unhighlight-rule|align|alist-get|all-threads|allout-auto-activation-helper|allout-mode-p|allout-mode|allout-setup|allout-widgets-mode|allout-widgets-setup|alter-text-property|and-let\\\\\\\\*|ange-ftp-completion-hook-function|apache-mode|apropos-local-value|apropos-local-variable|arabic-shape-gstring|assoc-delete-all|auth-source--decode-octal-string|auth-source--symbol-keyword|auth-source-backend--anon-cmacro|auth-source-backend--eieio-childp|auth-source-backends-parser-file|auth-source-backends-parser-macos-keychain|auth-source-backends-parser-secrets|auth-source-json-check|auth-source-json-search|auth-source-pass-enable|auth-source-secrets-saver|auto-save-visited-mode|backtrace-frame--internal|backtrace-frames|backward-to-word|backward-word-strictly|battery-upower-prop|battery-upower|beginning-of-defun--in-emptyish-line-p|beginning-of-defun-comments|bf-help-describe-symbol|bf-help-mode|bf-help-setup|bignump|bison-mode|blink-cursor--rescan-frames|blink-cursor--should-blink|blink-cursor--start-idle-timer|blink-cursor--start-timer|bookmark-set-no-overwrite|brainfuck-mode|browse-url-conkeror|buffer-hash|bufferpos-to-filepos|byte-compile--function-signature|byte-compile--log-warning-for-byte-compile|byte-compile-cond-jump-table-info|byte-compile-cond-jump-table|byte-compile-cond-vars|byte-compile-define-symbol-prop|byte-compile-file-form-defvar-function|byte-compile-file-form-make-obsolete|byte-opt--arith-reduce|byte-opt--portable-numberp|byte-optimize-1-|byte-optimize-1\\\\\\\\+|byte-optimize-memq|c-or-c\\\\\\\\+\\\\\\\\+-mode|call-shell-region|cancel-debug-on-variable-change|cancel-debug-watch|capitalize-dwim|cconv--convert-funcbody|cconv--remap-llv|char-fold-to-regexp|char-from-name|checkdoc-file|checkdoc-package-keywords|cl--assertion-failed|cl--class-docstring--cmacro|cl--class-docstring|cl--class-index-table--cmacro|cl--class-index-table|cl--class-name--cmacro|cl--class-name|cl--class-p--cmacro|cl--class-parents--cmacro|cl--class-parents|cl--class-p|cl--class-slots--cmacro|cl--class-slots|cl--copy-slot-descriptor-1|cl--copy-slot-descriptor|cl--defstruct-predicate|cl--describe-class-slots|cl--describe-class-slot|cl--describe-class|cl--do-&aux|cl--find-class|cl--generic-arg-specializer|cl--generic-build-combined-method|cl--generic-cache-miss|cl--generic-class-parents|cl--generic-derived-specializers|cl--generic-describe|cl--generic-dispatches--cmacro|cl--generic-dispatches|cl--generic-fgrep|cl--generic-generalizer-name--cmacro|cl--generic-generalizer-name|cl--generic-generalizer-p--cmacro|cl--generic-generalizer-priority--cmacro|cl--generic-generalizer-priority|cl--generic-generalizer-p|cl--generic-generalizer-specializers-function--cmacro|cl--generic-generalizer-specializers-function|cl--generic-generalizer-tagcode-function--cmacro|cl--generic-generalizer-tagcode-function|cl--generic-get-dispatcher|cl--generic-isnot-nnm-p|cl--generic-lambda|cl--generic-load-hist-format|cl--generic-make--cmacro|cl--generic-make-defmethod-docstring|cl--generic-make-function|cl--generic-make-method--cmacro|cl--generic-make-method|cl--generic-make-next-function|cl--generic-make|cl--generic-member-method|cl--generic-method-documentation|cl--generic-method-files|cl--generic-method-function--cmacro|cl--generic-method-function|cl--generic-method-info|cl--generic-method-qualifiers--cmacro|cl--generic-method-qualifiers|cl--generic-method-specializers--cmacro|cl--generic-method-specializers|cl--generic-method-table--cmacro|cl--generic-method-table|cl--generic-method-uses-cnm--cmacro|cl--generic-method-uses-cnm|cl--generic-name--cmacro|cl--generic-name)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(cl--generic-no-next-method-function|cl--generic-options--cmacro|cl--generic-options|cl--generic-search-method|cl--generic-specializers-apply-to-type-p|cl--generic-split-args|cl--generic-standard-method-combination|cl--generic-struct-specializers|cl--generic-struct-tag|cl--generic-with-memoization|cl--generic|cl--make-random-state--cmacro|cl--make-random-state|cl--make-slot-descriptor--cmacro|cl--make-slot-descriptor|cl--make-slot-desc|cl--old-struct-type-of|cl--pcase-mutually-exclusive-p|cl--plist-remove|cl--print-table|cl--prog|cl--random-state-i--cmacro|cl--random-state-i|cl--random-state-j--cmacro|cl--random-state-j|cl--random-state-vec--cmacro|cl--random-state-vec|cl--slot-descriptor-initform--cmacro|cl--slot-descriptor-initform|cl--slot-descriptor-name--cmacro|cl--slot-descriptor-name|cl--slot-descriptor-props--cmacro|cl--slot-descriptor-props|cl--slot-descriptor-type--cmacro|cl--slot-descriptor-type|cl--struct-all-parents|cl--struct-cl--generic-method-p--cmacro|cl--struct-cl--generic-method-p|cl--struct-cl--generic-p--cmacro|cl--struct-cl--generic-p|cl--struct-class-children-sym--cmacro|cl--struct-class-children-sym|cl--struct-class-docstring--cmacro|cl--struct-class-docstring|cl--struct-class-index-table--cmacro|cl--struct-class-index-table|cl--struct-class-name--cmacro|cl--struct-class-named--cmacro|cl--struct-class-named|cl--struct-class-name|cl--struct-class-p--cmacro|cl--struct-class-parents--cmacro|cl--struct-class-parents|cl--struct-class-print--cmacro|cl--struct-class-print|cl--struct-class-p|cl--struct-class-slots--cmacro|cl--struct-class-slots|cl--struct-class-tag--cmacro|cl--struct-class-tag|cl--struct-class-type--cmacro|cl--struct-class-type|cl--struct-get-class|cl--struct-name-p|cl--struct-new-class--cmacro|cl--struct-new-class|cl--struct-register-child|cl-call-next-method|cl-defgeneric|cl-defmethod|cl-describe-type|cl-find-class|cl-find-method|cl-generic-all-functions|cl-generic-apply|cl-generic-call-method|cl-generic-combine-methods|cl-generic-current-method-specializers|cl-generic-define-context-rewriter|cl-generic-define-generalizer|cl-generic-define-method|cl-generic-define|cl-generic-ensure-function|cl-generic-function-options|cl-generic-generalizers|cl-generic-make-generalizer--cmacro|cl-generic-make-generalizer|cl-generic-p|cl-iter-defun|cl-method-qualifiers|cl-next-method-p|cl-no-applicable-method|cl-no-next-method|cl-no-primary-method|cl-old-struct-compat-mode|cl-prin1-to-string|cl-prin1|cl-print-expand-ellipsis|cl-print-object|cl-print-to-string-with-limit|cl-prog\\\\\\\\*|cl-prog|cl-random-state-p--cmacro|cl-slot-descriptor-p--cmacro|cl-slot-descriptor-p|cl-struct--pcase-macroexpander|cl-struct-define|cl-struct-p--cmacro|cl-struct-p|cl-struct-slot-value--inliner|cl-typep--inliner|clear-composition-cache|cmake-command-run|cmake-help-command|cmake-help-list-commands|cmake-help-module|cmake-help-property|cmake-help-variable|cmake-help|cmake-mode|coffee-mode|combine-change-calls-1|combine-change-calls|comment-line|comment-make-bol-ws|comment-quote-nested-default|comment-region-default-1|completion--category-override|completion-pcm--pattern-point-idx|condition-mutex|condition-name|condition-notify|condition-variable-p|condition-wait|conf-desktop-mode|conf-toml-mode|conf-toml-recognize-section|connection-local-set-profile-variables|connection-local-set-profiles|copy-cl--generic-generalizer|copy-cl--generic-method|copy-cl--generic|copy-from-above-command|copy-lisp-indent-state|copy-xref-elisp-location|copy-yas--exit|copy-yas--field|copy-yas--mirror|copy-yas--snippet|copy-yas--table|copy-yas--template|css-lookup-symbol|csv-mode|cuda-mode|current-thread|cursor-intangible-mode|cursor-sensor-mode|custom--should-apply-setting|debug-on-variable-change|debug-watch|default-font-width|define-symbol-prop|define-thing-chars|defined-colors-with-face-attributes|delete-selection-uses-region-p|describe-char-eldoc|describe-symbol|dir-locals--all-files|dir-locals-read-from-dir|dired--align-all-files|dired--need-align-p|dired-create-empty-file|dired-do-compress-to|dired-do-find-regexp-and-replace|dired-do-find-regexp|dired-mouse-find-file-other-frame|dired-mouse-find-file|dired-omit-mode|display-buffer--maybe-at-bottom|display-buffer--maybe-pop-up-frame|display-buffer--maybe-pop-up-window|display-buffer-in-child-frame|display-buffer-reuse-mode-window|display-buffer-use-some-frame|display-line-numbers-mode|dna-add-hooks|dna-isearch-forward|dna-mode|dna-reverse-complement-region|dockerfile-build-buffer|dockerfile-build-no-cache-buffer|dockerfile-mode|dolist-with-progress-reporter|dotenv-mode|downcase-dwim|dyalog-ediff-forward-word|dyalog-editor-connect|dyalog-fix-altgr-chars|dyalog-mode|dyalog-session-connect|easy-mmode--mode-docstring|eieio--add-new-slot|eieio--c3-candidate|eieio--c3-merge-lists|eieio--class-children--cmacro|eieio--class-class-allocation-values--cmacro|eieio--class-class-slots--cmacro|eieio--class-class-slots|eieio--class-constructor|eieio--class-default-object-cache--cmacro|eieio--class-docstring--cmacro|eieio--class-docstring|eieio--class-index-table--cmacro|eieio--class-index-table|eieio--class-initarg-tuples--cmacro|eieio--class-make--cmacro|eieio--class-make|eieio--class-method-invocation-order|eieio--class-name--cmacro|eieio--class-name|eieio--class-object|eieio--class-option-assoc|eieio--class-options--cmacro|eieio--class-option|eieio--class-p--cmacro)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(eieio--class-parents--cmacro|eieio--class-parents|eieio--class-precedence-bfs|eieio--class-precedence-c3|eieio--class-precedence-dfs|eieio--class-precedence-list|eieio--class-print-name|eieio--class-p|eieio--class-slot-initarg|eieio--class-slot-name-index|eieio--class-slots--cmacro|eieio--class-slots|eieio--class\\\\\\\\/struct-parents|eieio--generic-subclass-specializers|eieio--initarg-to-attribute|eieio--object-class-tag|eieio--pcase-macroexpander|eieio--perform-slot-validation-for-default|eieio--perform-slot-validation|eieio--slot-name-index|eieio--slot-override|eieio--validate-class-slot-value|eieio--validate-slot-value|eieio-change-class|eieio-class-slots|eieio-default-superclass--eieio-childp|eieio-defclass-internal|eieio-make-child-predicate|eieio-make-class-predicate|eieio-oref--anon-cmacro|eieio-pcase-slot-index-from-index-table|eieio-pcase-slot-index-table|eieio-slot-descriptor-name|eldoc--supported-p|eldoc-docstring-format-sym-doc|eldoc-mode-set-explicitly|electric-pair--balance-info|electric-pair--insert|electric-pair--inside-string-p|electric-pair--skip-whitespace|electric-pair--syntax-ppss|electric-pair--unbalanced-strings-p|electric-pair--with-uncached-syntax|electric-pair-conservative-inhibit|electric-pair-default-inhibit|electric-pair-default-skip-self|electric-pair-delete-pair|electric-pair-inhibit-if-helps-balance|electric-pair-local-mode|electric-pair-post-self-insert-function|electric-pair-skip-if-helps-balance|electric-pair-syntax-info|electric-pair-will-use-region|electric-quote-local-mode|electric-quote-mode|electric-quote-post-self-insert-function|elisp--font-lock-backslash|elisp--font-lock-flush-elisp-buffers|elisp--xref-backend|elisp--xref-make-xref|elisp-flymake--batch-compile-for-flymake|elisp-flymake--byte-compile-done|elisp-flymake-byte-compile|elisp-flymake-checkdoc|elisp-function-argstring|elisp-get-fnsym-args-string|elisp-get-var-docstring|elisp-load-path-roots|emacs-repository-version-git|enh-ruby-mode|epg-config--make-gpg-configuration|epg-config--make-gpgsm-configuration|epg-context-error-buffer--cmacro|epg-context-error-buffer|epg-find-configuration|erlang-compile|erlang-edoc-mode|erlang-find-tag-other-window|erlang-find-tag|erlang-mode|erlang-shell|erldoc-apropos|erldoc-browse-topic|erldoc-browse|erldoc-eldoc-function|etags--xref-backend|eval-expression-get-print-arguments|event-line-count|face-list-p|facemenu-set-charset|faces--attribute-at-point|faceup-clean-buffer|faceup-defexplainer|faceup-render-view-buffer|faceup-view-buffer|faceup-write-file|fic-mode|file-attribute-access-time|file-attribute-collect|file-attribute-device-number|file-attribute-group-id|file-attribute-inode-number|file-attribute-link-number|file-attribute-modes|file-attribute-modification-time|file-attribute-size|file-attribute-status-change-time|file-attribute-type|file-attribute-user-id|file-local-name|file-name-case-insensitive-p|file-name-quoted-p|file-name-quote|file-name-unquote|file-system-info|filepos-to-bufferpos--dos|filepos-to-bufferpos|files--ask-user-about-large-file|files--ensure-directory|files--force|files--make-magic-temp-file|files--message|files--name-absolute-system-p|files--splice-dirname-file|fill-polish-nobreak-p|find-function-on-key-other-frame|find-function-on-key-other-window|find-library-other-frame|find-library-other-window|fixnump|flymake-cc|flymake-diag-region|flymake-diagnostics|flymake-make-diagnostic|follow-scroll-down-window|follow-scroll-up-window|font-lock--remove-face-from-text-property|form-feed-mode|format-message|forth-block-mode|forth-eval-defun|forth-eval-last-expression-display-output|forth-eval-last-expression|forth-eval-region|forth-eval|forth-interaction-send|forth-kill|forth-load-file|forth-mode|forth-restart|forth-see|forth-switch-to-output-buffer|forth-switch-to-source-buffer|forth-words|fortune-message|forward-to-word|forward-word-strictly|frame--size-history|frame-after-make-frame|frame-ancestor-p|frame-creation-function|frame-edges|frame-focus-state|frame-geometry|frame-inner-height|frame-inner-width|frame-internal-border-width|frame-list-z-order|frame-monitor-attribute|frame-monitor-geometry|frame-monitor-workarea|frame-native-height|frame-native-width|frame-outer-height|frame-outer-width|frame-parent|frame-position|frame-restack|frame-size-changed-p|func-arity|generic--normalize-comments|generic-bracket-support|generic-mode-set-comments|generic-set-comment-syntax|generic-set-comment-vars|get-variable-watchers|gfm-mode|gfm-view-mode|ghc-core-create-core|ghc-core-mode|ghci-script-mode|git-commit--save-and-exit|git-commit-ack|git-commit-cc|git-commit-committer-email|git-commit-committer-name|git-commit-commit|git-commit-find-pseudo-header-position|git-commit-first-env-var|git-commit-font-lock-diff|git-commit-git-config-var|git-commit-insert-header-as-self|git-commit-insert-header|git-commit-mode|git-commit-reported|git-commit-review|git-commit-signoff|git-commit-test|git-define-git-commit-self|git-define-git-commit|gitattributes-mode--highlight-1st-field|gitattributes-mode-backward-field|gitattributes-mode-eldoc|gitattributes-mode-forward-field|gitattributes-mode-help|gitattributes-mode-menu|gitattributes-mode|gitconfig-indent-line|gitconfig-indentation-string|gitconfig-line-indented-p|gitconfig-mode|gitconfig-point-in-indentation-p|gitignore-mode|global-aggressive-indent-mode-check-buffers|global-aggressive-indent-mode-cmhh|global-aggressive-indent-mode-enable-in-buffers|global-aggressive-indent-mode|global-display-line-numbers-mode|global-eldoc-mode-check-buffers|global-eldoc-mode-cmhh|global-eldoc-mode-enable-in-buffers|glsl-mode|gnutls-asynchronous-parameters|gnutls-ciphers|gnutls-digests|gnutls-hash-digest|gnutls-hash-mac|gnutls-macs|gnutls-symmetric-decrypt|gnutls-symmetric-encrypt|go-download-play|go-mode|godoc|gofmt-before-save|gui-backend-get-selection|gui-backend-selection-exists-p|gui-backend-selection-owner-p|gui-backend-set-selection|gv-delay-error|gv-setter|gv-synthetic-place|hack-connection-local-variables-apply|handle-args-function|handle-move-frame|hash-table-empty-p|haskell-align-imports|haskell-c2hs-mode|haskell-cabal-get-dir|haskell-cabal-get-field|haskell-cabal-mode|haskell-cabal-visit-file|haskell-collapse-mode|haskell-compile|haskell-completions-completion-at-point|haskell-decl-scan-mode|haskell-describe|haskell-doc-current-info|haskell-doc-mode|haskell-doc-show-type|haskell-ds-create-imenu-index|haskell-forward-sexp|haskell-hayoo|haskell-hoogle-lookup-from-local|haskell-hoogle|haskell-indent-mode|haskell-indentation-mode|haskell-interactive-bring|haskell-interactive-kill|haskell-interactive-mode-echo|haskell-interactive-mode-reset-error|haskell-interactive-mode-return|haskell-interactive-mode-visit-error|haskell-interactive-switch|haskell-kill-session-process|haskell-menu|haskell-mode-after-save-handler|haskell-mode-find-uses|haskell-mode-generate-tags|haskell-mode-goto-loc|haskell-mode-jump-to-def-or-tag|haskell-mode-jump-to-def|haskell-mode-jump-to-tag|haskell-mode-show-type-at)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(haskell-mode-stylish-buffer|haskell-mode-tag-find|haskell-mode-view-news|haskell-mode|haskell-move-nested-left|haskell-move-nested-right|haskell-move-nested|haskell-navigate-imports-go|haskell-navigate-imports-return|haskell-navigate-imports|haskell-process-cabal-build|haskell-process-cabal-macros|haskell-process-cabal|haskell-process-cd|haskell-process-clear|haskell-process-do-info|haskell-process-do-type|haskell-process-interrupt|haskell-process-load-file|haskell-process-load-or-reload|haskell-process-minimal-imports|haskell-process-reload-devel-main|haskell-process-reload-file|haskell-process-reload|haskell-process-restart|haskell-process-show-repl-response|haskell-process-unignore|haskell-rgrep|haskell-session-all-modules|haskell-session-change-target|haskell-session-change|haskell-session-installed-modules|haskell-session-kill|haskell-session-maybe|haskell-session-process|haskell-session-project-modules|haskell-session|haskell-sort-imports|haskell-tab-indent-mode|haskell-version|hayoo|help--analyze-key|help--binding-undefined-p|help--docstring-quote|help--filter-info-list|help--load-prefixes|help--loaded-p|help--make-usage-docstring|help--make-usage|help--read-key-sequence|help--symbol-completion-table|help-definition-prefixes|help-fns--analyze-function|help-fns-function-description-header|help-fns-short-filename|highlight-uses-mode|hoogle|hyperspec-lookup|ibuffer-jump|ido-dired-other-frame|ido-dired-other-window|ido-display-buffer-other-frame|ido-find-alternate-file-other-window|if-let\\\\\\\\*|image-dired-minor-mode|image-mode-to-text|indent--default-inside-comment|indent--funcall-widened|indent-region-line-by-line|indent-relative-first-indent-point|inferior-erlang|inferior-lfe-mode|inferior-lfe|ini-mode|insert-directory-clean|insert-directory-wildcard-in-dir-p|interactive-haskell-mode|internal--compiler-macro-cXXr|internal--syntax-propertize|internal-auto-fill|internal-default-interrupt-process|internal-echo-keystrokes-prefix|internal-handle-focus-in|isearch--describe-regexp-mode|isearch--describe-word-mode|isearch--lax-regexp-function-p|isearch--momentary-message|isearch--yank-char-or-syntax|isearch-define-mode-toggle|isearch-lazy-highlight-start|isearch-string-propertize|isearch-toggle-char-fold|isearch-update-from-string-properties|isearch-xterm-paste|isearch-yank-symbol-or-char|jison-mode|jit-lock--run-functions|js-jsx-mode|js2-highlight-unused-variables-mode|js2-imenu-extras-mode|js2-imenu-extras-setup|js2-jsx-mode|js2-minor-mode|js2-mode|json--check-position|json--decode-utf-16-surrogates|json--plist-reverse|json--plist-to-alist|json--record-path|json-advance--inliner|json-path-to-position|json-peek--inliner|json-pop--inliner|json-pretty-print-buffer-ordered|json-pretty-print-ordered|json-readtable-dispatch|json-skip-whitespace--inliner|kill-current-buffer|kmacro-keyboard-macro-p|kmacro-p|kqueue-add-watch|kqueue-rm-watch|kqueue-valid-p|langdoc-call-fun|langdoc-define-help-mode|langdoc-if-let|langdoc-insert-link|langdoc-matched-strings|langdoc-while-let|lcms-cam02-ucs|lcms-cie-de2000|lcms-jab->jch|lcms-jch->jab|lcms-jch->xyz|lcms-temp->white-point|lcms-xyz->jch|lcms2-available-p|less-css-mode|let-when-compile|lfe-indent-function|lfe-mode|lgstring-remove-glyph|libxml-available-p|line-number-display-width|lisp--el-match-keyword|lisp--el-non-funcall-position-p|lisp-adaptive-fill|lisp-indent-calc-next|lisp-indent-initial-state|lisp-indent-region|lisp-indent-state-p--cmacro|lisp-indent-state-ppss--cmacro|lisp-indent-state-ppss-point--cmacro|lisp-indent-state-ppss-point|lisp-indent-state-ppss|lisp-indent-state-p|lisp-indent-state-stack--cmacro|lisp-indent-state-stack|lisp-ppss|list-timers|literate-haskell-mode|load-user-init-file|loadhist-unload-element|logcount|lread--substitute-object-in-subtree|macroexp-macroexpand|macroexp-parse-body|macrostep-c-mode-hook|macrostep-expand|macrostep-mode|major-mode-restore|major-mode-suspend|make-condition-variable|make-empty-file|make-finalizer|make-mutex|make-nearby-temp-file|make-pipe-process|make-process|make-record|make-temp-file-internal|make-thread|make-xref-elisp-location--cmacro|make-xref-elisp-location|make-yas--exit--cmacro|make-yas--exit|make-yas--field--cmacro|make-yas--field|make-yas--mirror--cmacro|make-yas--mirror|make-yas--snippet--cmacro|make-yas--snippet|make-yas--table--cmacro|make-yas--table|map--apply-alist|map--apply-array|map--apply-hash-table|map--do-alist|map--do-array|map--into-hash-table|map--make-pcase-bindings|map--make-pcase-patterns|map--pcase-macroexpander|map--put|map-apply|map-contains-key|map-copy|map-delete|map-do|map-elt|map-empty-p|map-every-p|map-filter|map-into|map-keys-apply|map-keys|map-length|map-let|map-merge-with|map-merge|map-nested-elt|map-pairs|map-put|map-remove|map-some|map-values-apply|map-values|mapbacktrace|mapp|mark-beginning-of-buffer|mark-end-of-buffer|markdown-live-preview-mode|markdown-mode|markdown-view-mode|mc-hide-unmatched-lines-mode|mc\\\\\\\\/add-cursor-on-click|mc\\\\\\\\/edit-beginnings-of-lines|mc\\\\\\\\/edit-ends-of-lines|mc\\\\\\\\/edit-lines|mc\\\\\\\\/insert-letters|mc\\\\\\\\/insert-numbers|mc\\\\\\\\/mark-all-dwim|mc\\\\\\\\/mark-all-in-region-regexp|mc\\\\\\\\/mark-all-in-region|mc\\\\\\\\/mark-all-like-this-dwim|mc\\\\\\\\/mark-all-like-this-in-defun|mc\\\\\\\\/mark-all-like-this|mc\\\\\\\\/mark-all-symbols-like-this-in-defun|mc\\\\\\\\/mark-all-symbols-like-this|mc\\\\\\\\/mark-all-words-like-this-in-defun|mc\\\\\\\\/mark-all-words-like-this|mc\\\\\\\\/mark-more-like-this-extended|mc\\\\\\\\/mark-next-like-this-word|mc\\\\\\\\/mark-next-like-this|mc\\\\\\\\/mark-next-lines|mc\\\\\\\\/mark-next-symbol-like-this|mc\\\\\\\\/mark-next-word-like-this|mc\\\\\\\\/mark-pop|mc\\\\\\\\/mark-previous-like-this-word|mc\\\\\\\\/mark-previous-like-this|mc\\\\\\\\/mark-previous-lines|mc\\\\\\\\/mark-previous-symbol-like-this|mc\\\\\\\\/mark-previous-word-like-this|mc\\\\\\\\/mark-sgml-tag-pair|mc\\\\\\\\/reverse-regions|mc\\\\\\\\/skip-to-next-like-this|mc\\\\\\\\/skip-to-previous-like-this|mc\\\\\\\\/sort-regions|mc\\\\\\\\/toggle-cursor-on-click|mc\\\\\\\\/unmark-next-like-this|mc\\\\\\\\/unmark-previous-like-this|mc\\\\\\\\/vertical-align-with-space|mc\\\\\\\\/vertical-align|menu-bar-bottom-and-right-window-divider|menu-bar-bottom-window-divider|menu-bar-display-line-numbers-mode|menu-bar-goto-uses-etags-p|menu-bar-no-window-divider|menu-bar-right-window-divider|menu-bar-window-divider-customize|mhtml-mode|midnight-mode|minibuffer-maybe-quote-filename|minibuffer-prompt-properties--setter|mm-images-in-region-p|mocha--get-callsite-name|mocha-attach-indium|mocha-check-debugger|mocha-compilation-filter|mocha-debug-at-point|mocha-debug-file|mocha-debug-project|mocha-debugger-get|mocha-debugger-name-p|mocha-debug|mocha-find-current-test|mocha-find-project-root|mocha-generate-command|mocha-list-of-strings-p|mocha-make-imenu-alist|mocha-opts-file|mocha-realgud:nodejs-attach|mocha-run|mocha-test-at-point|mocha-test-file|mocha-test-project|mocha-toggle-imenu-function|mocha-walk-up-to-it|mode-line-default-help-echo|module-function-p|module-load|mouse--click-1-maybe-follows-link|mouse-absolute-pixel-position|mouse-drag-and-drop-region|mouse-drag-bottom-edge|mouse-drag-bottom-left-corner|mouse-drag-bottom-right-corner|mouse-drag-frame|mouse-drag-left-edge|mouse-drag-right-edge|mouse-drag-top-edge|mouse-drag-top-left-corner|mouse-drag-top-right-corner|mouse-resize-frame|move-text--at-first-line-p)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(move-text--at-last-line-p|move-text--at-penultimate-line-p|move-text--last-line-is-just-newline|move-text--total-lines|move-text-default-bindings|move-text-down|move-text-line-down|move-text-line-up|move-text-region-down|move-text-region-up|move-text-region|move-text-up|move-to-window-group-line|mule--ucs-names-annotation|multiple-cursors-mode|mutex-lock|mutex-name|mutex-unlock|mutexp|nasm-mode|newlisp-mode|newlisp-show-repl|next-error-buffer-on-selected-frame|next-error-found|next-error-select-buffer|ninja-mode|obarray-get|obarray-make|obarray-map|obarray-put|obarray-remove|obarray-size|obarrayp|occur-regexp-descr|org-columns-insert-dblock|org-duration-from-minutes|org-duration-h:mm-only-p|org-duration-p|org-duration-set-regexps|org-duration-to-minutes|org-lint|package--activate-autoloads-and-load-path|package--add-to-compatibility-table|package--append-to-alist|package--autoloads-file-name|package--build-compatibility-table|package--check-signature-content|package--download-and-read-archives|package--find-non-dependencies|package--get-deps|package--incompatible-p|package--load-files-for-activation|package--newest-p|package--prettify-quick-help-key|package--print-help-section|package--quickstart-maybe-refresh|package--read-pkg-desc|package--removable-packages|package--remove-hidden|package--save-selected-packages|package--sort-by-dependence|package--sort-deps-in-alist|package--update-downloads-in-progress|package--update-selected-packages|package--used-elsewhere-p|package--user-installed-p|package--user-selected-p|package--with-response-buffer|package-activate-all|package-archive-priority|package-autoremove|package-delete-button-action|package-desc-priority-version|package-desc-priority|package-dir-info|package-install-selected-packages|package-menu--find-and-notify-upgrades|package-menu--list-to-prompt|package-menu--mark-or-notify-upgrades|package-menu--mark-upgrades-1|package-menu--partition-transaction|package-menu--perform-transaction|package-menu--populate-new-package-list|package-menu--post-refresh|package-menu--print-info-simple|package-menu--prompt-transaction-p|package-menu-hide-package|package-menu-mode-menu|package-menu-toggle-hiding|package-quickstart-refresh|package-reinstall|pcase--edebug-match-macro|pcase--make-docstring|pcase-lambda|pcomplete\\\\\\\\/find|perl-flymake|picolisp-mode|picolisp-repl-mode|picolisp-repl|pixel-scroll-mode|pos-visible-in-window-group-p|pov-mode|powershell-mode|powershell|prefix-command-preserve-state|prefix-command-update|prettify-symbols--post-command-hook|prettify-symbols-default-compose-p|print--preprocess|process-thread|prog-first-column|project-current|project-find-file|project-find-regexp|project-or-external-find-file|project-or-external-find-regexp|proper-list-p|provided-mode-derived-p|pulse-momentary-highlight-one-line|pulse-momentary-highlight-region|quelpa|query-replace--split-string|radix-tree--insert|radix-tree--lookup|radix-tree--prefixes|radix-tree--remove|radix-tree--subtree|radix-tree-count|radix-tree-from-map|radix-tree-insert|radix-tree-iter-mappings|radix-tree-iter-subtrees|radix-tree-leaf--pcase-macroexpander|radix-tree-lookup|radix-tree-prefixes|radix-tree-subtree|read-answer|read-multiple-choice|readable-foreground-color|recenter-window-group|recentf-mode|recode-file-name|recode-region|record-window-buffer|recordp|record|recover-file|recover-session-finish|recover-session|recover-this-file|rectangle-mark-mode|rectangle-number-lines|rectangular-region-mode|redirect-debugging-output|redisplay--pre-redisplay-functions|redisplay--update-region-highlight|redraw-modeline|refill-mode|reftex-all-document-files|reftex-citation|reftex-index-phrases-mode|reftex-isearch-minor-mode|reftex-mode|reftex-reset-scanning-information|regexp-builder|regexp-opt-group|region-active-p|region-bounds|region-modifiable-p|region-noncontiguous-p|register-ccl-program|register-code-conversion-map|register-definition-prefixes|register-describe-oneline|register-input-method|register-preview-default|register-preview|register-swap-out|register-to-point|register-val-describe|register-val-insert|register-val-jump-to|registerv--make--cmacro|registerv--make|registerv-data--cmacro|registerv-data|registerv-insert-func--cmacro|registerv-insert-func|registerv-jump-func--cmacro|registerv-jump-func|registerv-make|registerv-p--cmacro|registerv-print-func--cmacro|registerv-print-func|registerv-p|remember-clipboard|remember-diary-extract-entries|remember-notes|remember-other-frame|remember|remove-variable-watcher|remove-yank-excluded-properties|rename-uniquely|repeat-complex-command|repeat-matching-complex-command|repeat|replace--push-stack|replace-buffer-contents|replace-dehighlight|replace-eval-replacement|replace-highlight|replace-loop-through-replacements|replace-match-data|replace-match-maybe-edit|replace-match-string-symbols|replace-quote|replace-rectangle|replace-regexp|replace-search|replace-string|report-emacs-bug|report-errors|reporter-submit-bug-report|reposition-window|repunctuate-sentences|reset-language-environment|reset-this-command-lengths|resize-mini-window-internal|resize-temp-buffer-window|reveal-mode|reverse-region|revert-buffer--default|revert-buffer-insert-file-contents--default-function|revert-buffer-with-coding-system|rfc2104-hash|rfc822-goto-eoh|rfn-eshadow-setup-minibuffer|rfn-eshadow-sifn-equal|rfn-eshadow-update-overlay|rgrep|right-char|right-word|rlogin|rmail-input|rmail-mode|rmail-movemail-variant-p|rmail-output-as-seen|run-erlang|run-forth|run-haskell|run-lfe|run-newlisp|run-sml|rust-mode|rx--pcase-macroexpander|save-mark-and-excursion--restore|save-mark-and-excursion--save|save-mark-and-excursion|save-place-local-mode|save-place-mode|scad-mode|search-forward-help-for-help|secondary-selection-exist-p|secondary-selection-from-region|secondary-selection-to-region|secure-hash-algorithms|sed-mode|selected-window-group|seq--activate-font-lock-keywords|seq--elt-safe|seq--into-list|seq--into-string|seq--into-vector|seq--make-pcase-bindings|seq--make-pcase-patterns|seq--pcase-macroexpander|seq-contains|seq-difference|seq-do-indexed|seq-find|seq-group-by|seq-intersection|seq-into-sequence|seq-into|seq-let|seq-map-indexed|seq-mapcat|seq-mapn|seq-max|seq-min|seq-partition|seq-position|seq-random-elt|seq-set-equal-p|seq-some|seq-sort-by|seqp|set--this-command-keys|set-binary-mode|set-buffer-redisplay|set-mouse-absolute-pixel-position|set-process-thread|set-rectangular-region-anchor|set-window-group-start|shell-command--save-pos-or-erase|shell-command--set-point-after-cmd|shift-number-down|shift-number-up|slime-connect|slime-lisp-mode-hook|slime-mode|slime-scheme-mode-hook|slime-selector|slime-setup|slime|smerge-refine-regions|sml-cm-mode|sml-lex-mode|sml-mode|sml-run|sml-yacc-mode|snippet-mode|spice-mode|split-window-no-error|sql-mariadb|ssh-authorized-keys-mode|ssh-config-mode|ssh-known-hosts-mode|startup--setup-quote-display|string-distance|string-greaterp|string-version-lessp|string>|subr--with-wrapper-hook-no-warnings|switch-to-haskell|sxhash-eql|sxhash-equal|sxhash-eq|syntax-ppss--data)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(tabulated-list--col-local-max-widths|tabulated-list--get-sorter|tabulated-list-header-overlay-p|tabulated-list-line-number-width|tabulated-list-watch-line-number-width|tabulated-list-window-scroll-function|terminal-init-xterm|thing-at-point--beginning-of-sexp|thing-at-point--end-of-sexp|thing-at-point--read-from-whole-string|thread--blocker|thread-alive-p|thread-handle-event|thread-join|thread-last-error|thread-live-p|thread-name|thread-signal|thread-yield|threadp|tildify-mode|tildify-space|toml-mode|tramp-archive-autoload-file-name-regexp|tramp-register-archive-file-name-handler|tty-color-24bit|turn-on-haskell-decl-scan|turn-on-haskell-doc-mode|turn-on-haskell-doc|turn-on-haskell-indentation|turn-on-haskell-indent|turn-on-haskell-unicode-input-method|typescript-mode|uncomment-region-default-1|undo--wrap-and-run-primitive-undo|undo-amalgamate-change-group|undo-auto--add-boundary|undo-auto--boundaries|undo-auto--boundary-ensure-timer|undo-auto--boundary-timer|undo-auto--ensure-boundary|undo-auto--last-boundary-amalgamating-number|undo-auto--needs-boundary-p|undo-auto--undoable-change|undo-auto-amalgamate|universal-argument--description|universal-argument--preserve|upcase-char|upcase-dwim|url-asynchronous--cmacro|url-asynchronous|url-directory-files|url-domain|url-file-attributes|url-file-directory-p|url-file-executable-p|url-file-exists-p|url-file-handler-identity|url-file-name-all-completions|url-file-name-completion|url-file-symlink-p|url-file-truename|url-file-writable-p|url-handler-directory-file-name|url-handler-expand-file-name|url-handler-file-name-directory|url-handler-file-remote-p|url-handler-unhandled-file-name-directory|url-handlers-create-wrapper|url-handlers-set-buffer-mode|url-insert-buffer-contents|url-insert|url-run-real-handler|user-ptrp|userlock--ask-user-about-supersession-threat|vc-message-unresolved-conflicts|vc-print-branch-log|vc-push|vc-refresh-state|version-control-safe-local-p|vimrc-mode|wavefront-obj-mode|when-let\\\\\\\\*|window--adjust-process-windows|window--even-window-sizes|window--make-major-side-window-next-to|window--make-major-side-window|window--process-window-list|window--sides-check-failed|window--sides-check|window--sides-reverse-all|window--sides-reverse-frame|window--sides-reverse-on-frame-p|window--sides-reverse-side|window--sides-reverse|window--sides-verticalize-frame|window--sides-verticalize|window-absolute-body-pixel-edges|window-absolute-pixel-position|window-adjust-process-window-size-largest|window-adjust-process-window-size-smallest|window-adjust-process-window-size|window-body-edges|window-body-pixel-edges|window-divider-mode-apply|window-divider-mode|window-divider-width-valid-p|window-font-height|window-font-width|window-group-end|window-group-start|window-largest-empty-rectangle--disjoint-maximums|window-largest-empty-rectangle--maximums-1|window-largest-empty-rectangle--maximums|window-largest-empty-rectangle|window-lines-pixel-dimensions|window-main-window|window-max-chars-per-line|window-pixel-height-before-size-change|window-pixel-width-before-size-change|window-swap-states|window-system-initialization|window-toggle-side-windows|with-connection-local-profiles|with-mutex|x-load-color-file|xml-remove-comments|xref-backend-apropos|xref-backend-definitions|xref-backend-identifier-completion-table|xref-collect-matches|xref-elisp-location-file--cmacro|xref-elisp-location-file|xref-elisp-location-p--cmacro|xref-elisp-location-symbol--cmacro|xref-elisp-location-symbol|xref-elisp-location-type--cmacro|xref-elisp-location-type|xref-find-backend|xref-find-definitions-at-mouse|xref-make-elisp-location--cmacro|xref-marker-stack-empty-p|xterm--init-activate-get-selection|xterm--init-activate-set-selection|xterm--init-bracketed-paste-mode|xterm--init-focus-tracking|xterm--init-frame-title|xterm--init-modify-other-keys|xterm--pasted-text|xterm--push-map|xterm--query|xterm--read-event-for-query|xterm--report-background-handler|xterm--selection-char|xterm--suspend-tty-function|xterm--version-handler|xterm-maybe-set-dark-background-mode|xterm-paste|xterm-register-default-colors|xterm-rgb-convert-to-16bit|xterm-set-window-title-flag|xterm-set-window-title|xterm-translate-bracketed-paste|xterm-translate-focus-in|xterm-translate-focus-out|xterm-unset-window-title-flag|xwidget-webkit-browse-url|yaml-mode|yas--add-template|yas--advance-end-maybe|yas--advance-end-of-parents-maybe|yas--advance-start-maybe|yas--all-templates|yas--apply-transform|yas--auto-fill-wrapper|yas--auto-fill|yas--auto-next|yas--calculate-adjacencies|yas--calculate-group|yas--calculate-mirror-depth|yas--calculate-simple-fom-parentage|yas--check-commit-snippet|yas--collect-snippet-markers|yas--commit-snippet|yas--compute-major-mode-and-parents|yas--create-snippet-xrefs|yas--define-menu-1|yas--define-parents|yas--define-snippets-1|yas--define-snippets-2|yas--define|yas--delete-from-keymap|yas--delete-regions|yas--describe-pretty-table|yas--escape-string|yas--eval-condition|yas--eval-for-effect|yas--eval-for-string|yas--exit-marker--cmacro|yas--exit-marker|yas--exit-next--cmacro|yas--exit-next|yas--exit-p--cmacro|yas--exit-p|yas--expand-from-keymap-doc|yas--expand-from-trigger-key-doc|yas--expand-or-prompt-for-template|yas--expand-or-visit-from-menu|yas--fallback-translate-input|yas--fallback|yas--fetch|yas--field-contains-point-p|yas--field-end--cmacro|yas--field-end|yas--field-mirrors--cmacro|yas--field-mirrors|yas--field-modified-p--cmacro|yas--field-modified-p|yas--field-next--cmacro|yas--field-next|yas--field-number--cmacro|yas--field-number|yas--field-p--cmacro|yas--field-parent-field--cmacro|yas--field-parent-field|yas--field-parse-create|yas--field-probably-deleted-p|yas--field-p|yas--field-start--cmacro|yas--field-start|yas--field-text-for-display|yas--field-transform--cmacro|yas--field-transform|yas--field-update-display|yas--filter-templates-by-condition|yas--find-next-field|yas--finish-moving-snippets|yas--fom-end|yas--fom-next|yas--fom-parent-field|yas--fom-start|yas--format|yas--get-field-once|yas--get-snippet-tables|yas--get-template-by-uuid|yas--global-mode-reload-with-jit-maybe|yas--goto-saved-location|yas--guess-snippet-directories-1|yas--guess-snippet-directories|yas--indent-parse-create|yas--indent-region|yas--indent|yas--key-from-desc|yas--keybinding-beyond-yasnippet|yas--letenv|yas--load-directory-1|yas--load-directory-2|yas--load-pending-jits|yas--load-snippet-dirs|yas--load-yas-setup-file|yas--lookup-snippet-1|yas--make-control-overlay|yas--make-directory-maybe|yas--make-exit--cmacro|yas--make-exit|yas--make-field--cmacro|yas--make-field|yas--make-marker|yas--make-menu-binding|yas--make-mirror--cmacro|yas--make-mirror|yas--make-move-active-field-overlay|yas--make-move-field-protection-overlays|yas--make-snippet--cmacro|yas--make-snippet-table--cmacro|yas--make-snippet-table|yas--make-snippet|yas--make-template--cmacro|yas--make-template)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(yas--mark-this-and-children-modified|yas--markers-to-points|yas--maybe-clear-field-filter|yas--maybe-expand-from-keymap-filter|yas--maybe-expand-key-filter|yas--maybe-move-to-active-field|yas--menu-keymap-get-create|yas--message|yas--minor-mode-menu|yas--mirror-depth--cmacro|yas--mirror-depth|yas--mirror-end--cmacro|yas--mirror-end|yas--mirror-next--cmacro|yas--mirror-next|yas--mirror-p--cmacro|yas--mirror-parent-field--cmacro|yas--mirror-parent-field|yas--mirror-p|yas--mirror-start--cmacro|yas--mirror-start|yas--mirror-transform--cmacro|yas--mirror-transform|yas--mirror-update-display|yas--modes-to-activate|yas--move-to-field|yas--namehash-templates-alist|yas--on-buffer-kill|yas--on-field-overlay-modification|yas--on-protection-overlay-modification|yas--parse-template|yas--place-overlays|yas--points-to-markers|yas--post-command-handler|yas--prepare-snippets-for-move|yas--prompt-for-keys|yas--prompt-for-table|yas--prompt-for-template|yas--protect-escapes|yas--read-keybinding|yas--read-lisp|yas--read-table|yas--remove-misc-free-from-undo|yas--remove-template-by-uuid|yas--replace-all|yas--require-template-specific-condition-p|yas--restore-backquotes|yas--restore-escapes|yas--restore-marker-location|yas--restore-overlay-line-location|yas--restore-overlay-location|yas--safely-call-fun|yas--safely-run-hook|yas--save-backquotes|yas--save-restriction-and-widen|yas--scan-sexps|yas--schedule-jit|yas--show-menu-p|yas--simple-fom-create|yas--skip-and-clear-field-p|yas--skip-and-clear|yas--snapshot-marker-location|yas--snapshot-overlay-line-location|yas--snapshot-overlay-location|yas--snippet-active-field--cmacro|yas--snippet-active-field|yas--snippet-control-overlay--cmacro|yas--snippet-control-overlay|yas--snippet-create|yas--snippet-description-finish-runonce|yas--snippet-exit--cmacro|yas--snippet-exit|yas--snippet-expand-env--cmacro|yas--snippet-expand-env|yas--snippet-field-compare|yas--snippet-fields--cmacro|yas--snippet-fields|yas--snippet-find-field|yas--snippet-force-exit--cmacro|yas--snippet-force-exit|yas--snippet-id--cmacro|yas--snippet-id|yas--snippet-live-p|yas--snippet-map-markers|yas--snippet-next-id|yas--snippet-p--cmacro|yas--snippet-parse-create|yas--snippet-previous-active-field--cmacro|yas--snippet-previous-active-field|yas--snippet-p|yas--snippet-revive|yas--snippet-sort-fields|yas--snippets-at-point|yas--subdirs|yas--table-all-keys|yas--table-direct-keymap--cmacro|yas--table-direct-keymap|yas--table-get-create|yas--table-hash--cmacro|yas--table-hash|yas--table-mode|yas--table-name--cmacro|yas--table-name|yas--table-p--cmacro|yas--table-parents--cmacro|yas--table-parents|yas--table-p|yas--table-templates|yas--table-uuidhash--cmacro|yas--table-uuidhash|yas--take-care-of-redo|yas--template-can-expand-p|yas--template-condition--cmacro|yas--template-condition|yas--template-content--cmacro|yas--template-content|yas--template-expand-env--cmacro|yas--template-expand-env|yas--template-fine-group|yas--template-get-file|yas--template-group--cmacro|yas--template-group|yas--template-key--cmacro|yas--template-keybinding--cmacro|yas--template-keybinding|yas--template-key|yas--template-load-file--cmacro|yas--template-load-file|yas--template-menu-binding-pair--cmacro|yas--template-menu-binding-pair-get-create|yas--template-menu-binding-pair|yas--template-menu-managed-by-yas-define-menu|yas--template-name--cmacro|yas--template-name|yas--template-p--cmacro|yas--template-perm-group--cmacro|yas--template-perm-group|yas--template-pretty-list|yas--template-p|yas--template-save-file--cmacro|yas--template-save-file|yas--template-table--cmacro|yas--template-table|yas--template-uuid--cmacro|yas--template-uuid|yas--templates-for-key-at-point|yas--transform-mirror-parse-create|yas--undo-in-progress|yas--update-mirrors|yas--update-template-menu|yas--update-template|yas--visit-snippet-file-1|yas--warning|yas--watch-auto-fill|yas-abort-snippet|yas-about|yas-activate-extra-mode|yas-active-keys|yas-active-snippets|yas-auto-next|yas-choose-value|yas-compile-directory|yas-completing-prompt|yas-current-field|yas-deactivate-extra-mode|yas-default-from-field|yas-define-condition-cache|yas-define-menu|yas-define-snippets|yas-describe-table-by-namehash|yas-describe-tables|yas-direct-keymaps-reload|yas-dropdown-prompt|yas-escape-text|yas-exit-all-snippets|yas-exit-snippet|yas-expand-from-keymap|yas-expand-from-trigger-key|yas-expand-snippet|yas-expand|yas-field-value|yas-global-mode-check-buffers|yas-global-mode-cmhh|yas-global-mode-enable-in-buffers|yas-global-mode|yas-hippie-try-expand|yas-ido-prompt|yas-initialize|yas-insert-snippet|yas-inside-string|yas-key-to-value|yas-load-directory|yas-load-snippet-buffer-and-close|yas-load-snippet-buffer|yas-longest-key-from-whitespace|yas-lookup-snippet|yas-maybe-ido-prompt|yas-maybe-load-snippet-buffer|yas-minor-mode-on|yas-minor-mode-set-explicitly|yas-minor-mode|yas-new-snippet|yas-next-field-or-maybe-expand|yas-next-field-will-exit-p|yas-next-field|yas-no-prompt|yas-prev-field|yas-recompile-all|yas-reload-all|yas-selected-text|yas-shortest-key-until-whitespace|yas-skip-and-clear-field|yas-skip-and-clear-or-delete-char|yas-snippet-dirs|yas-snippet-mode-buffer-p|yas-substr|yas-text|yas-throw|yas-try-key-from-whitespace|yas-tryout-snippet|yas-unimplemented|yas-verify-value|yas-visit-snippet-file|yas-x-prompt|yas\\\\\\\\/abort-snippet|yas\\\\\\\\/about|yas\\\\\\\\/choose-value|yas\\\\\\\\/compile-directory|yas\\\\\\\\/completing-prompt|yas\\\\\\\\/default-from-field|yas\\\\\\\\/define-condition-cache|yas\\\\\\\\/define-menu|yas\\\\\\\\/define-snippets|yas\\\\\\\\/describe-tables|yas\\\\\\\\/direct-keymaps-reload|yas\\\\\\\\/dropdown-prompt|yas\\\\\\\\/exit-all-snippets|yas\\\\\\\\/exit-snippet|yas\\\\\\\\/expand-from-keymap|yas\\\\\\\\/expand-from-trigger-key|yas\\\\\\\\/expand-snippet|yas\\\\\\\\/expand|yas\\\\\\\\/field-value|yas\\\\\\\\/global-mode|yas\\\\\\\\/hippie-try-expand|yas\\\\\\\\/ido-prompt|yas\\\\\\\\/initialize|yas\\\\\\\\/insert-snippet|yas\\\\\\\\/inside-string|yas\\\\\\\\/key-to-value|yas\\\\\\\\/load-directory|yas\\\\\\\\/load-snippet-buffer|yas\\\\\\\\/minor-mode-on|yas\\\\\\\\/minor-mode|yas\\\\\\\\/new-snippet|yas\\\\\\\\/next-field-or-maybe-expand|yas\\\\\\\\/next-field|yas\\\\\\\\/no-prompt|yas\\\\\\\\/prev-field|yas\\\\\\\\/recompile-all|yas\\\\\\\\/reload-all|yas\\\\\\\\/selected-text|yas\\\\\\\\/skip-and-clear-or-delete-char|yas\\\\\\\\/snippet-dirs|yas\\\\\\\\/substr|yas\\\\\\\\/text|yas\\\\\\\\/throw|yas\\\\\\\\/tryout-snippet|yas\\\\\\\\/unimplemented|yas\\\\\\\\/verify-value|yas\\\\\\\\/visit-snippet-file|yas\\\\\\\\/x-prompt|yasnippet-unload-function|zap-up-to-char)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(abbrev-all-caps|abbrev-expand-function|abbrev-expansion|abbrev-file-name|abbrev-get|abbrev-insert|abbrev-map|abbrev-minor-mode-table-alist|abbrev-prefix-mark|abbrev-put|abbrev-start-location|abbrev-start-location-buffer|abbrev-symbol|abbrev-table-get|abbrev-table-name-list|abbrev-table-p|abbrev-table-put|abbreviate-file-name|abbrevs-changed|abort-recursive-edit|accept-change-group|accept-process-output|access-file|accessible-keymaps|acos|activate-change-group|activate-mark-hook|active-minibuffer-window|adaptive-fill-first-line-regexp|adaptive-fill-function|adaptive-fill-mode|adaptive-fill-regexp|add-face-text-property|add-function|add-hook|add-name-to-file|add-text-properties|add-to-history|add-to-invisibility-spec|add-to-list|add-to-ordered-list|adjust-window-trailing-edge|advice-add|advice-eval-interactive-spec|advice-function-mapc|advice-function-member-p|advice-mapc|advice-member-p|advice-remove|after-change-functions|after-change-major-mode-hook|after-find-file|after-init-hook|after-init-time|after-insert-file-functions|after-load-functions|after-make-frame-functions|after-revert-hook|after-save-hook|after-setting-font-hook|all-completions|append-to-file|apply-partially|apropos|aref|argv|arrayp|ascii-case-table|aset|ash|asin|ask-user-about-lock|ask-user-about-supersession-threat|assoc-default|assoc-string|assq|assq-delete-all|atan|atom|auto-coding-alist|auto-coding-functions|auto-coding-regexp-alist|auto-fill-chars|auto-fill-function|auto-hscroll-mode|auto-mode-alist|auto-raise-tool-bar-buttons|auto-resize-tool-bars|auto-save-default|auto-save-file-name-p|auto-save-hook|auto-save-interval|auto-save-list-file-name|auto-save-list-file-prefix|auto-save-mode|auto-save-timeout|auto-save-visited-file-name|auto-window-vscroll|autoload|autoload-do-load|autoloadp|back-to-indentation|backtrace|backtrace-debug|backtrace-frame|backup-buffer|backup-by-copying|backup-by-copying-when-linked|backup-by-copying-when-mismatch|backup-by-copying-when-privileged-mismatch|backup-directory-alist|backup-enable-predicate|backup-file-name-p|backup-inhibited|backward-button|backward-char|backward-delete-char-untabify|backward-delete-char-untabify-method|backward-list|backward-prefix-chars|backward-sexp|backward-to-indentation|backward-word|balance-windows|balance-windows-area|barf-if-buffer-read-only|base64-decode-region|base64-decode-string|base64-encode-region|base64-encode-string|batch-byte-compile|baud-rate|beep|before-change-functions|before-hack-local-variables-hook|before-init-hook|before-init-time|before-make-frame-hook|before-revert-hook|before-save-hook|beginning-of-buffer|beginning-of-defun|beginning-of-defun-function|beginning-of-line|bidi-display-reordering|bidi-paragraph-direction|bidi-string-mark-left-to-right|bindat-get-field|bindat-ip-to-string|bindat-length|bindat-pack|bindat-unpack|bitmap-spec-p|blink-cursor-alist|blink-matching-delay|blink-matching-open|blink-matching-paren|blink-matching-paren-distance|blink-paren-function|bobp|bolp|bool-vector-count-consecutive|bool-vector-count-population|bool-vector-exclusive-or|bool-vector-intersection|bool-vector-not|bool-vector-p|bool-vector-set-difference|bool-vector-subsetp|bool-vector-union|booleanp|boundp|buffer-access-fontified-property|buffer-access-fontify-functions|buffer-auto-save-file-format|buffer-auto-save-file-name|buffer-backed-up|buffer-base-buffer|buffer-chars-modified-tick|buffer-disable-undo|buffer-display-count|buffer-display-table|buffer-display-time|buffer-enable-undo|buffer-end|buffer-file-coding-system|buffer-file-format|buffer-file-name|buffer-file-number|buffer-file-truename|buffer-invisibility-spec|buffer-list|buffer-list-update-hook|buffer-live-p|buffer-local-value|buffer-local-variables|buffer-modified-p|buffer-modified-tick|buffer-name|buffer-name-history|buffer-narrowed-p|buffer-offer-save|buffer-quit-function|buffer-read-only|buffer-save-without-query|buffer-saved-size|buffer-size|buffer-stale-function|buffer-string|buffer-substring|buffer-substring-filters|buffer-substring-no-properties|buffer-swap-text|buffer-undo-list|bufferp|bury-buffer|button-activate|button-at|button-end|button-get|button-has-type-p|button-label|button-put|button-start|button-type|button-type-get|button-type-put|button-type-subtype-p|byte-boolean-vars|byte-code-function-p|byte-compile|byte-compile-dynamic|byte-compile-dynamic-docstrings|byte-compile-file|byte-recompile-directory|byte-to-position|byte-to-string|call-interactively|call-process|call-process-region|call-process-shell-command|called-interactively-p|cancel-change-group|cancel-debug-on-entry|cancel-timer|capitalize|capitalize-region|capitalize-word|case-fold-search|case-replace|case-table-p|category-docstring|category-set-mnemonics|category-table|category-table-p|ceiling|change-major-mode-after-body-hook|change-major-mode-hook|char-after|char-before|char-category-set|char-charset|char-code-property-description|char-displayable-p|char-equal|char-or-string-p|char-property-alias-alist|char-script-table|char-syntax|char-table-extra-slot|char-table-p|char-table-parent|char-table-range|char-table-subtype|char-to-string|char-width|char-width-table|characterp|charset-after|charset-list|charset-plist|charset-priority-list|charsetp|check-coding-system|check-coding-systems-region|checkdoc-minor-mode|cl|clear-abbrev-table|clear-image-cache|clear-string|clear-this-command-keys|clear-visited-file-modtime|clone-indirect-buffer|clrhash|coding-system-aliases|coding-system-change-eol-conversion|coding-system-change-text-conversion|coding-system-charset-list|coding-system-eol-type|coding-system-for-read|coding-system-for-write|coding-system-get|coding-system-list|coding-system-p|coding-system-priority-list|collapse-delayed-warnings|color-defined-p|color-gray-p|color-supported-p|color-values|combine-after-change-calls|combine-and-quote-strings|command-debug-status|command-error-function|command-execute|command-history|command-line|command-line-args|command-line-args-left|command-line-functions|command-line-processed|command-remapping|command-switch-alist|commandp|compare-buffer-substrings|compare-strings|compare-window-configurations|compile-defun|completing-read|completing-read-function|completion-at-point|completion-at-point-functions|completion-auto-help|completion-boundaries|completion-category-overrides|completion-extra-properties|completion-ignore-case|completion-ignored-extensions|completion-in-region|completion-regexp-list|completion-styles|completion-styles-alist|completion-table-case-fold|completion-table-dynamic|completion-table-in-turn|completion-table-merge|completion-table-subvert|completion-table-with-cache|completion-table-with-predicate|completion-table-with-quoting|completion-table-with-terminator|compute-motion|concat|cons-cells-consed|constrain-to-field|continue-process|controlling-tty-p|convert-standard-filename|coordinates-in-window-p|copy-abbrev-table|copy-category-table|copy-directory|copy-file|copy-hash-table|copy-keymap|copy-marker|copy-overlay|copy-region-as-kill|copy-sequence|copy-syntax-table|copysign|cos|count-lines|count-loop|count-screen-lines|count-words|create-file-buffer|create-fontset-from-fontset-spec|create-image|create-lockfiles|current-active-maps|current-bidi-paragraph-direction|current-buffer|current-case-table|current-column|current-fill-column|current-frame-configuration|current-global-map|current-idle-time|current-indentation|current-input-method|current-input-mode|current-justification|current-kill|current-left-margin|current-local-map|current-message|current-minor-mode-maps|current-prefix-arg|current-time|current-time-string|current-time-zone|current-window-configuration|current-word|cursor-in-echo-area|cursor-in-non-selected-windows|cursor-type|cust-print|custom-add-frequent-value|custom-initialize-delay|custom-known-themes|custom-reevaluate-setting|custom-set-faces|custom-set-variables|custom-theme-p|custom-theme-set-faces|custom-theme-set-variables|custom-unlispify-remove-prefixes|custom-variable-p|customize-package-emacs-version-alist|cygwin-convert-file-name-from-windows|cygwin-convert-file-name-to-windows|data-directory|date-leap-year-p|date-to-time|deactivate-mark|deactivate-mark-hook|debug|debug-ignored-errors|debug-on-entry|debug-on-error|debug-on-event|debug-on-message|debug-on-next-call|debug-on-quit|debug-on-signal|debugger|debugger-bury-or-kill|declare|declare-function|decode-char|decode-coding-inserted-region|decode-coding-region|decode-coding-string|decode-time|def-edebug-spec|defalias|default-boundp|default-directory|default-file-modes|default-frame-alist|default-input-method|default-justification|default-minibuffer-frame|default-process-coding-system|default-text-properties|default-value|define-abbrev|define-abbrev-table|define-alternatives|define-button-type|define-category|define-derived-mode|define-error|define-fringe-bitmap|define-generic-mode|define-globalized-minor-mode|define-hash-table-test|define-key|define-key-after|define-minor-mode|define-obsolete-face-alias|define-obsolete-function-alias|define-obsolete-variable-alias|define-package|define-prefix-command|defined-colors|defining-kbd-macro|defun-prompt-regexp|defvar-local|defvaralias|delay-mode-hooks|delayed-warnings-hook|delayed-warnings-list|delete|delete-and-extract-region|delete-auto-save-file-if-necessary|delete-auto-save-files|delete-backward-char|delete-blank-lines|delete-by-moving-to-trash|delete-char|delete-directory|delete-dups|delete-exited-processes|delete-field|delete-file|delete-frame|delete-frame-functions|delete-horizontal-space|delete-indentation|delete-minibuffer-contents|delete-old-versions|delete-other-windows|delete-overlay|delete-process|delete-region|delete-terminal|delete-terminal-functions|delete-to-left-margin|delete-trailing-whitespace|delete-window|delete-windows-on|delq|derived-mode-p|describe-bindings|describe-buffer-case-table|describe-categories|describe-current-display-table|describe-display-table|describe-mode|describe-prefix-bindings|describe-syntax|desktop-buffer-mode-handlers|desktop-save-buffer|destroy-fringe-bitmap|detect-coding-region|detect-coding-string|digit-argument|ding|dir-locals-class-alist|dir-locals-directory-cache|dir-locals-file|dir-locals-set-class-variables|dir-locals-set-directory-class|directory-file-name|directory-files|directory-files-and-attributes|dired-kept-versions|disable-command|disable-point-adjustment|disable-theme|disabled|disabled-command-function|disassemble|discard-input|display-backing-store|display-buffer|display-buffer-alist|display-buffer-at-bottom|display-buffer-base-action|display-buffer-below-selected|display-buffer-fallback-action|display-buffer-in-previous-window|display-buffer-no-window|display-buffer-overriding-action|display-buffer-pop-up-frame|display-buffer-pop-up-window|display-buffer-reuse-window|display-buffer-same-window|display-buffer-use-some-window|display-color-cells|display-color-p|display-completion-list|display-delayed-warnings|display-graphic-p|display-grayscale-p|display-images-p|display-message-or-buffer|display-mm-dimensions-alist|display-mm-height|display-mm-width|display-monitor-attributes-list|display-mouse-p|display-pixel-height|display-pixel-width|display-planes|display-popup-menus-p|display-save-under|display-screens|display-selections-p|display-supports-face-attributes-p|display-table-slot|display-visual-class|display-warning|dnd-protocol-alist|do-auto-save|doc-directory|documentation|documentation-property|dotimes-with-progress-reporter|double-click-fuzz|double-click-time|down-list|downcase|downcase-region|downcase-word|dump-emacs|dynamic-library-alist)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(easy-menu-define|easy-mmode-define-minor-mode|echo-area-clear-hook|echo-keystrokes|edebug|edebug-all-defs|edebug-all-forms|edebug-continue-kbd-macro|edebug-defun|edebug-display-freq-count|edebug-eval-macro-args|edebug-eval-top-level-form|edebug-global-break-condition|edebug-initial-mode|edebug-on-error|edebug-on-quit|edebug-print-circle|edebug-print-length|edebug-print-level|edebug-print-trace-after|edebug-print-trace-before|edebug-save-displayed-buffer-points|edebug-save-windows|edebug-set-global-break-condition|edebug-setup-hook|edebug-sit-for-seconds|edebug-temp-display-freq-count|edebug-test-coverage|edebug-trace|edebug-tracing|edebug-unwrap-results|edit-and-eval-command|electric-future-map|elt|emacs-build-time|emacs-init-time|emacs-lisp-docstring-fill-column|emacs-major-version|emacs-minor-version|emacs-pid|emacs-save-session-functions|emacs-session-restore|emacs-startup-hook|emacs-uptime|emacs-version|emulation-mode-map-alists|enable-command|enable-dir-local-variables|enable-local-eval|enable-local-variables|enable-multibyte-characters|enable-recursive-minibuffers|enable-theme|encode-char|encode-coding-region|encode-coding-string|encode-time|end-of-buffer|end-of-defun|end-of-defun-function|end-of-file|end-of-line|eobp|eolp|equal-including-properties|erase-buffer|error|error-conditions|error-message-string|esc-map|ESC-prefix|eval|eval-and-compile|eval-buffer|eval-current-buffer|eval-expression-debug-on-error|eval-expression-print-length|eval-expression-print-level|eval-minibuffer|eval-region|eval-when-compile|event-basic-type|event-click-count|event-convert-list|event-end|event-modifiers|event-start|eventp|ewoc-buffer|ewoc-collect|ewoc-create|ewoc-data|ewoc-delete|ewoc-enter-after|ewoc-enter-before|ewoc-enter-first|ewoc-enter-last|ewoc-filter|ewoc-get-hf|ewoc-goto-next|ewoc-goto-node|ewoc-goto-prev|ewoc-invalidate|ewoc-locate|ewoc-location|ewoc-map|ewoc-next|ewoc-nth|ewoc-prev|ewoc-refresh|ewoc-set-data|ewoc-set-hf|exec-directory|exec-path|exec-suffixes|executable-find|execute-extended-command|execute-kbd-macro|executing-kbd-macro|exit|exit-minibuffer|exit-recursive-edit|exp|expand-abbrev|expand-file-name|expt|extended-command-history|extra-keyboard-modifiers|face-all-attributes|face-attribute|face-attribute-relative-p|face-background|face-bold-p|face-differs-from-default-p|face-documentation|face-equal|face-font|face-font-family-alternatives|face-font-registry-alternatives|face-font-rescale-alist|face-font-selection-order|face-foreground|face-id|face-inverse-video-p|face-italic-p|face-list|face-name-history|face-remap-add-relative|face-remap-remove-relative|face-remap-reset-base|face-remap-set-base|face-remapping-alist|face-spec-set|face-stipple|face-underline-p|facemenu-keymap|facep|fboundp|fceiling|feature-unload-function|featurep|features|fetch-bytecode|ffloor|field-beginning|field-end|field-string|field-string-no-properties|file-accessible-directory-p|file-acl|file-already-exists|file-attributes|file-chase-links|file-coding-system-alist|file-directory-p|file-equal-p|file-error|file-executable-p|file-exists-p|file-expand-wildcards|file-extended-attributes|file-in-directory-p|file-local-copy|file-local-variables-alist|file-locked|file-locked-p|file-modes|file-modes-symbolic-to-number|file-name-absolute-p|file-name-all-completions|file-name-as-directory|file-name-base|file-name-coding-system|file-name-completion|file-name-directory|file-name-extension|file-name-handler-alist|file-name-history|file-name-nondirectory|file-name-sans-extension|file-name-sans-versions|file-newer-than-file-p|file-newest-backup|file-nlinks|file-notify-add-watch|file-notify-rm-watch|file-ownership-preserved-p|file-precious-flag|file-readable-p|file-regular-p|file-relative-name|file-remote-p|file-selinux-context|file-supersession|file-symlink-p|file-truename|file-writable-p|fill-column|fill-context-prefix|fill-forward-paragraph-function|fill-individual-paragraphs|fill-individual-varying-indent|fill-nobreak-predicate|fill-paragraph|fill-paragraph-function|fill-prefix|fill-region|fill-region-as-paragraph|fillarray|filter-buffer-substring|filter-buffer-substring-function|filter-buffer-substring-functions|find-auto-coding|find-backup-file-name|find-buffer-visiting|find-charset-region|find-charset-string|find-coding-systems-for-charsets|find-coding-systems-region|find-coding-systems-string|find-file|find-file-hook|find-file-literally|find-file-name-handler|find-file-noselect|find-file-not-found-functions|find-file-other-window|find-file-read-only|find-file-wildcards|find-font|find-image|find-operation-coding-system|first-change-hook|fit-frame-to-buffer|fit-frame-to-buffer-margins|fit-frame-to-buffer-sizes|fit-window-to-buffer|fit-window-to-buffer-horizontally|fixup-whitespace|float|float-e|float-output-format|float-pi|float-time|floatp|floats-consed|floor|fmakunbound|focus-follows-mouse|focus-in-hook|focus-out-hook|following-char|font-at|font-face-attributes|font-family-list|font-get|font-lock-add-keywords|font-lock-beginning-of-syntax-function|font-lock-builtin-face|font-lock-comment-delimiter-face|font-lock-comment-face|font-lock-constant-face|font-lock-defaults|font-lock-doc-face|font-lock-extend-after-change-region-function|font-lock-extra-managed-props|font-lock-fontify-buffer-function|font-lock-fontify-region-function|font-lock-function-name-face|font-lock-keyword-face|font-lock-keywords|font-lock-keywords-case-fold-search|font-lock-keywords-only|font-lock-mark-block-function|font-lock-multiline|font-lock-negation-char-face|font-lock-preprocessor-face|font-lock-remove-keywords|font-lock-string-face|font-lock-syntactic-face-function|font-lock-syntax-table|font-lock-type-face|font-lock-unfontify-buffer-function|font-lock-unfontify-region-function|font-lock-variable-name-face|font-lock-warning-face|font-put|font-spec|font-xlfd-name|fontification-functions|fontp|for|force-mode-line-update|force-window-update|format|format-alist|format-find-file|format-insert-file|format-mode-line|format-network-address|format-seconds|format-time-string|format-write-file|forward-button|forward-char|forward-comment|forward-line|forward-list|forward-sexp|forward-to-indentation|forward-word|frame-alpha-lower-limit|frame-auto-hide-function|frame-char-height|frame-char-width|frame-current-scroll-bars|frame-first-window|frame-height|frame-inherited-parameters|frame-list|frame-live-p|frame-monitor-attributes|frame-parameter|frame-parameters|frame-pixel-height|frame-pixel-width|frame-pointer-visible-p|frame-resize-pixelwise|frame-root-window|frame-selected-window|frame-terminal|frame-title-format|frame-visible-p|frame-width|framep|frexp|fringe-bitmaps-at-pos|fringe-cursor-alist|fringe-indicator-alist|fringes-outside-margins|fround|fset|ftp-login|ftruncate|function-get|functionp|fundamental-mode|fundamental-mode-abbrev-table|gap-position|gap-size|garbage-collect|garbage-collection-messages|gc-cons-percentage|gc-cons-threshold|gc-elapsed|gcs-done|generate-autoload-cookie|generate-new-buffer|generate-new-buffer-name|generated-autoload-file|get|get-buffer|get-buffer-create|get-buffer-process|get-buffer-window|get-buffer-window-list|get-byte|get-char-code-property|get-char-property|get-char-property-and-overlay|get-charset-property|get-device-terminal|get-file-buffer|get-internal-run-time|get-largest-window|get-load-suffixes|get-lru-window|get-pos-property|get-process|get-register|get-text-property|get-unused-category|get-window-with-predicate|getenv|gethash|global-abbrev-table|global-buffers-menu-map|global-disable-point-adjustment|global-key-binding|global-map|global-mode-string|global-set-key|global-unset-key|glyph-char|glyph-face|glyph-table|glyphless-char-display|glyphless-char-display-control|goto-char|goto-map|group-gid|group-real-gid|gv-define-expander|gv-define-setter|gv-define-simple-setter|gv-letplace|hack-dir-local-variables|hack-dir-local-variables-non-file-buffer|hack-local-variables|hack-local-variables-hook|handle-shift-selection|handle-switch-frame|hash-table-count|hash-table-p|hash-table-rehash-size|hash-table-rehash-threshold|hash-table-size|hash-table-test|hash-table-weakness|header-line-format|help-buffer|help-char|help-command|help-event-list|help-form|help-map|help-setup-xref|help-window-select|Helper-describe-bindings|Helper-help|Helper-help-map|history-add-new-input|history-delete-duplicates|history-length)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(icon-title-format|iconify-frame|identity|ignore|ignore-errors|ignore-window-parameters|ignored-local-variables|image-animate|image-animate-timer|image-cache-eviction-delay|image-current-frame|image-default-frame-delay|image-flush|image-format-suffixes|image-load-path|image-load-path-for-library|image-mask-p|image-minimum-frame-delay|image-multi-frame-p|image-show-frame|image-size|image-type-available-p|image-types|imagemagick-enabled-types|imagemagick-types|imagemagick-types-inhibit|imenu-add-to-menubar|imenu-case-fold-search|imenu-create-index-function|imenu-extract-index-name-function|imenu-generic-expression|imenu-prev-index-position-function|imenu-syntax-alist|inc|indent-according-to-mode|indent-code-rigidly|indent-for-tab-command|indent-line-function|indent-region|indent-region-function|indent-relative|indent-relative-maybe|indent-rigidly|indent-tabs-mode|indent-to|indent-to-left-margin|indicate-buffer-boundaries|indicate-empty-lines|indirect-function|indirect-variable|inhibit-default-init|inhibit-eol-conversion|inhibit-field-text-motion|inhibit-file-name-handlers|inhibit-file-name-operation|inhibit-iso-escape-detection|inhibit-local-variables-regexps|inhibit-modification-hooks|inhibit-null-byte-detection|inhibit-point-motion-hooks|inhibit-quit|inhibit-read-only|inhibit-splash-screen|inhibit-startup-echo-area-message|inhibit-startup-message|inhibit-startup-screen|inhibit-x-resources|init-file-user|initial-buffer-choice|initial-environment|initial-frame-alist|initial-major-mode|initial-scratch-message|initial-window-system|input-decode-map|input-method-alist|input-method-function|input-pending-p|insert|insert-abbrev-table-description|insert-and-inherit|insert-before-markers|insert-before-markers-and-inherit|insert-buffer|insert-buffer-substring|insert-buffer-substring-as-yank|insert-buffer-substring-no-properties|insert-button|insert-char|insert-default-directory|insert-directory|insert-directory-program|insert-file-contents|insert-file-contents-literally|insert-for-yank|insert-image|insert-register|insert-sliced-image|insert-text-button|installation-directory|integer-or-marker-p|integerp|interactive-form|intern|intern-soft|interpreter-mode-alist|interprogram-cut-function|interprogram-paste-function|interrupt-process|intervals-consed|invalid-function|invalid-read-syntax|invalid-regexp|invert-face|invisible-p|invocation-directory|invocation-name|isnan|jit-lock-register|jit-lock-unregister|just-one-space|justify-current-line|kbd|kbd-macro-termination-hook|kept-new-versions|kept-old-versions|key-binding|key-description|key-translation-map|keyboard-coding-system|keyboard-quit|keyboard-translate|keyboard-translate-table|keymap-parent|keymap-prompt|keymapp|keywordp|kill-all-local-variables|kill-append|kill-buffer|kill-buffer-hook|kill-buffer-query-functions|kill-emacs|kill-emacs-hook|kill-emacs-query-functions|kill-local-variable|kill-new|kill-process|kill-read-only-ok|kill-region|kill-ring|kill-ring-max|kill-ring-yank-pointer|kmacro-keymap|last-abbrev|last-abbrev-location|last-abbrev-text|last-buffer|last-coding-system-used|last-command|last-command-event|last-event-frame|last-input-event|last-kbd-macro|last-nonmenu-event|last-prefix-arg|last-repeatable-command|lax-plist-get|lax-plist-put|lazy-completion-table|ldexp|left-fringe-width|left-margin|left-margin-width|lexical-binding|libxml-parse-html-region|libxml-parse-xml-region|line-beginning-position|line-end-position|line-move-ignore-invisible|line-number-at-pos|line-prefix|line-spacing|lisp-mode-abbrev-table|list-buffers-directory|list-charset-chars|list-fonts|list-load-path-shadows|list-processes|list-system-processes|listify-key-sequence|ln|load-average|load-file|load-file-name|load-file-rep-suffixes|load-history|load-in-progress|load-library|load-path|load-prefer-newer|load-read-function|load-suffixes|load-theme|local-abbrev-table|local-function-key-map|local-key-binding|local-set-key|local-unset-key|local-variable-if-set-p|local-variable-p|locale-coding-system|locale-info|locate-file|locate-library|locate-user-emacs-file|lock-buffer|log|logand|logb|logior|lognot|logxor|looking-at|looking-at-p|looking-back|lookup-key|lower-frame|lsh|lwarn|macroexpand|macroexpand-all|macrop|magic-fallback-mode-alist|magic-mode-alist|mail-host-address|major-mode|make-abbrev-table|make-auto-save-file-name|make-backup-file-name|make-backup-file-name-function|make-backup-files|make-bool-vector|make-button|make-byte-code|make-category-set|make-category-table|make-char-table|make-composed-keymap|make-directory|make-display-table|make-frame|make-frame-invisible|make-frame-on-display|make-frame-visible|make-glyph-code|make-hash-table|make-help-screen|make-indirect-buffer|make-keymap|make-local-variable|make-marker|make-network-process|make-obsolete|make-obsolete-variable|make-overlay|make-progress-reporter|make-ring|make-serial-process|make-sparse-keymap|make-string|make-symbol|make-symbolic-link|make-syntax-table|make-temp-file|make-temp-name|make-text-button|make-translation-table|make-translation-table-from-alist|make-translation-table-from-vector|make-variable-buffer-local|make-vector|makehash|makunbound|map-char-table|map-charset-chars|map-keymap|map-y-or-n-p|mapatoms|mapconcat|maphash|mark|mark-active|mark-even-if-inactive|mark-marker|mark-ring|mark-ring-max|marker-buffer|marker-insertion-type|marker-position|markerp|match-beginning|match-data|match-end|match-string|match-string-no-properties|match-substitute-replacement|max-char|max-image-size|max-lisp-eval-depth|max-mini-window-height|max-specpdl-size|maximize-window|md5|member-ignore-case|memory-full|memory-limit|memory-use-counts|memq|memql|menu-bar-file-menu|menu-bar-final-items|menu-bar-help-menu|menu-bar-options-menu|menu-bar-tools-menu|menu-bar-update-hook|menu-item|menu-prompt-more-char|merge-face-attribute|message|message-box|message-log-max|message-or-box|message-truncate-lines|messages-buffer|meta-prefix-char|minibuffer-allow-text-properties|minibuffer-auto-raise|minibuffer-complete|minibuffer-complete-and-exit|minibuffer-complete-word|minibuffer-completion-confirm|minibuffer-completion-help|minibuffer-completion-predicate|minibuffer-completion-table|minibuffer-confirm-exit-commands|minibuffer-contents|minibuffer-contents-no-properties|minibuffer-depth|minibuffer-exit-hook|minibuffer-frame-alist|minibuffer-help-form|minibuffer-history|minibuffer-inactive-mode|minibuffer-local-completion-map|minibuffer-local-filename-completion-map|minibuffer-local-map|minibuffer-local-must-match-map|minibuffer-local-ns-map|minibuffer-local-shell-command-map|minibuffer-message|minibuffer-message-timeout|minibuffer-prompt|minibuffer-prompt-end|minibuffer-prompt-width|minibuffer-scroll-window|minibuffer-selected-window|minibuffer-setup-hook|minibuffer-window|minibuffer-window-active-p|minibufferp|minimize-window|minor-mode-alist|minor-mode-key-binding|minor-mode-list|minor-mode-map-alist|minor-mode-overriding-map-alist|misc-objects-consed|mkdir|mod|mode-line-buffer-identification|mode-line-client|mode-line-coding-system-map|mode-line-column-line-number-mode-map|mode-line-format|mode-line-frame-identification|mode-line-input-method-map|mode-line-modes|mode-line-modified|mode-line-mule-info|mode-line-position|mode-line-process|mode-line-remote|mode-name|mode-specific-map|modify-all-frames-parameters|modify-category-entry|modify-frame-parameters|modify-syntax-entry|momentary-string-display|most-negative-fixnum|most-positive-fixnum|mouse-1-click-follows-link|mouse-appearance-menu-map|mouse-leave-buffer-hook|mouse-movement-p|mouse-on-link-p|mouse-pixel-position|mouse-position|mouse-position-function|mouse-wheel-down-event|mouse-wheel-up-event|move-marker|move-overlay|move-point-visually|move-to-column|move-to-left-margin|move-to-window-line|movemail|mule-keymap|multi-query-replace-map|multibyte-char-to-unibyte|multibyte-string-p|multibyte-syntax-as-symbol|multiple-frames|narrow-map|narrow-to-page|narrow-to-region|natnump|negative-argument|network-coding-system-alist|network-interface-info|network-interface-list|newline|newline-and-indent|next-button|next-char-property-change|next-complete-history-element|next-frame|next-history-element|next-matching-history-element|next-overlay-change|next-property-change|next-screen-context-lines|next-single-char-property-change|next-single-property-change|next-window|nlistp|no-byte-compile|no-catch|no-redraw-on-reenter|noninteractive|noreturn|normal-auto-fill-function|normal-backup-enable-predicate|normal-mode|not-modified|notifications-close-notification|notifications-get-capabilities|notifications-get-server-information|notifications-notify|num-input-keys|num-nonmacro-input-events|number-or-marker-p|number-sequence|number-to-string|numberp|obarray|one-window-p|only-global-abbrevs|open-dribble-file|open-network-stream|open-paren-in-column-0-is-defun-start|open-termscript|other-buffer|other-window|other-window-scroll-buffer|overflow-newline-into-fringe|overlay-arrow-position|overlay-arrow-string|overlay-arrow-variable-list|overlay-buffer|overlay-end|overlay-get|overlay-properties|overlay-put|overlay-recenter|overlay-start|overlayp|overlays-at|overlays-in|overriding-local-map|overriding-local-map-menu-flag|overriding-terminal-local-map|overwrite-mode|package-archive-upload-base|package-archives|package-initialize|package-upload-buffer|package-upload-file|page-delimiter|paragraph-separate|paragraph-start|parse-colon-path|parse-partial-sexp|parse-sexp-ignore-comments|parse-sexp-lookup-properties|path-separator|perform-replace|play-sound|play-sound-file|play-sound-functions|plist-get|plist-member|plist-put|point|point-marker|point-max|point-max-marker|point-min|point-min-marker|pop-mark|pop-to-buffer|pop-up-frame-alist|pop-up-frame-function|pop-up-frames|pop-up-windows|pos-visible-in-window-p|position-bytes|posix-looking-at|posix-search-backward|posix-search-forward|posix-string-match|posn-actual-col-row|posn-area|posn-at-point|posn-at-x-y|posn-col-row|posn-image|posn-object|posn-object-width-height|posn-object-x-y|posn-point|posn-string|posn-timestamp|posn-window|posn-x-y|posnp|post-command-hook|post-gc-hook|post-self-insert-hook|pp|pre-command-hook|pre-redisplay-function|preceding-char|prefix-arg|prefix-help-command|prefix-numeric-value|preloaded-file-list|prepare-change-group|previous-button|previous-char-property-change|previous-complete-history-element|previous-frame|previous-history-element|previous-matching-history-element|previous-overlay-change|previous-property-change|previous-single-char-property-change|previous-single-property-change|previous-window|primitive-undo|prin1-to-string|print-circle|print-continuous-numbering|print-escape-multibyte|print-escape-newlines|print-escape-nonascii|print-gensym|print-length|print-level|print-number-table|print-quoted|printable-chars|process-adaptive-read-buffering|process-attributes|process-buffer|process-coding-system|process-coding-system-alist|process-command|process-connection-type|process-contact|process-datagram-address|process-environment|process-exit-status|process-file|process-file-shell-command|process-file-side-effects|process-filter|process-get|process-id|process-kill-buffer-query-function|process-lines|process-list|process-live-p|process-mark|process-name|process-plist|process-put|process-query-on-exit-flag|process-running-child-p|process-send-eof|process-send-region|process-send-string|process-sentinel|process-status|process-tty-name|process-type|processp|prog-mode|prog-mode-hook|progress-reporter-done|progress-reporter-force-update|progress-reporter-update|propertize|provide|provide-theme|pure-bytes-used|purecopy|purify-flag|push-button|push-mark|put|put-char-code-property|put-charset-property|put-image|put-text-property|puthash|query-replace-history|query-replace-map|quietly-read-abbrev-file|quit-flag|quit-process|quit-restore-window|quit-window|raise-frame|random|rassq|rassq-delete-all|re-builder|re-search-backward|re-search-forward|read|read-buffer|read-buffer-completion-ignore-case|read-buffer-function|read-char|read-char-choice|read-char-exclusive|read-circle|read-coding-system|read-color|read-command|read-directory-name|read-event|read-expression-history|read-file-modes|read-file-name|read-file-name-completion-ignore-case|read-file-name-function|read-from-minibuffer|read-from-string|read-input-method-name|read-kbd-macro|read-key|read-key-sequence|read-key-sequence-vector|read-minibuffer|read-no-blanks-input|read-non-nil-coding-system|read-only-mode|read-passwd|read-quoted-char|read-regexp|read-regexp-defaults-function|read-shell-command|read-string|read-variable|real-last-command|recent-auto-save-p|recent-keys|recenter|recenter-positions|recenter-redisplay|recenter-top-bottom|recursion-depth|recursive-edit|redirect-frame-focus|redisplay|redraw-display|redraw-frame|regexp-history|regexp-opt|regexp-opt-charset|regexp-opt-depth|regexp-quote|region-beginning|region-end|register-alist|register-read-with-preview|reindent-then-newline-and-indent|remhash|remote-file-name-inhibit-cache|remove|remove-from-invisibility-spec|remove-function|remove-hook|remove-images|remove-list-of-text-properties|remove-overlays|remove-text-properties|remq|rename-auto-save-file|rename-buffer|rename-file|replace-buffer-in-windows|replace-match|replace-re-search-function|replace-regexp-in-string|replace-search-function|require|require-final-newline|restore-buffer-modified-p|resume-tty|resume-tty-functions|revert-buffer|revert-buffer-function|revert-buffer-in-progress-p|revert-buffer-insert-file-contents-function|revert-without-query|right-fringe-width|right-margin-width|ring-bell-function|ring-copy|ring-elements|ring-empty-p|ring-insert|ring-insert-at-beginning|ring-length|ring-p|ring-ref|ring-remove|ring-size|risky-local-variable-p|rm|round|run-at-time|run-hook-with-args|run-hook-with-args-until-failure|run-hook-with-args-until-success|run-hooks|run-mode-hooks|run-with-idle-timer)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(safe-local-eval-forms|safe-local-variable-p|safe-local-variable-values|same-window-buffer-names|same-window-p|same-window-regexps|save-abbrevs|save-buffer|save-buffer-coding-system|save-current-buffer|save-excursion|save-match-data|save-restriction|save-selected-window|save-some-buffers|save-window-excursion|scalable-fonts-allowed|scan-lists|scan-sexps|scroll-bar-event-ratio|scroll-bar-mode|scroll-bar-scale|scroll-bar-width|scroll-conservatively|scroll-down|scroll-down-aggressively|scroll-down-command|scroll-error-top-bottom|scroll-left|scroll-margin|scroll-other-window|scroll-preserve-screen-position|scroll-right|scroll-step|scroll-up|scroll-up-aggressively|scroll-up-command|search-backward|search-failed|search-forward|search-map|search-spaces-regexp|seconds-to-time|secure-hash|select-frame|select-frame-set-input-focus|select-safe-coding-system|select-safe-coding-system-accept-default-p|select-window|selected-frame|selected-window|selection-coding-system|selective-display|selective-display-ellipses|self-insert-and-exit|self-insert-command|send-string-to-terminal|sentence-end|sentence-end-double-space|sentence-end-without-period|sentence-end-without-space|sequencep|serial-process-configure|serial-term|set-advertised-calling-convention|set-auto-coding|set-auto-mode|set-buffer|set-buffer-auto-saved|set-buffer-major-mode|set-buffer-modified-p|set-buffer-multibyte|set-case-syntax|set-case-syntax-delims|set-case-syntax-pair|set-case-table|set-category-table|set-char-table-extra-slot|set-char-table-parent|set-char-table-range|set-charset-priority|set-coding-system-priority|set-default|set-default-file-modes|set-display-table-slot|set-face-attribute|set-face-background|set-face-bold|set-face-font|set-face-foreground|set-face-inverse-video|set-face-italic|set-face-stipple|set-face-underline|set-file-acl|set-file-extended-attributes|set-file-modes|set-file-selinux-context|set-file-times|set-fontset-font|set-frame-configuration|set-frame-height|set-frame-parameter|set-frame-position|set-frame-selected-window|set-frame-size|set-frame-width|set-fringe-bitmap-face|set-input-method|set-input-mode|set-keyboard-coding-system|set-keymap-parent|set-left-margin|set-mark|set-marker|set-marker-insertion-type|set-match-data|set-minibuffer-window|set-mouse-pixel-position|set-mouse-position|set-network-process-option|set-process-buffer|set-process-coding-system|set-process-datagram-address|set-process-filter|set-process-plist|set-process-query-on-exit-flag|set-process-sentinel|set-register|set-right-margin|set-standard-case-table|set-syntax-table|set-terminal-coding-system|set-terminal-parameter|set-text-properties|set-transient-map|set-visited-file-modtime|set-visited-file-name|set-window-buffer|set-window-combination-limit|set-window-configuration|set-window-dedicated-p|set-window-display-table|set-window-fringes|set-window-hscroll|set-window-margins|set-window-next-buffers|set-window-parameter|set-window-point|set-window-prev-buffers|set-window-scroll-bars|set-window-start|set-window-vscroll|setenv|setplist|setq-default|setq-local|shell-command-history|shell-command-to-string|shell-quote-argument|show-help-function|shr-insert-document|shrink-window-if-larger-than-buffer|signal|signal-process|sin|single-key-description|sit-for|site-run-file|skip-chars-backward|skip-chars-forward|skip-syntax-backward|skip-syntax-forward|sleep-for|small-temporary-file-directory|smie-bnf->prec2|smie-close-block|smie-config|smie-config-guess|smie-config-local|smie-config-save|smie-config-set-indent|smie-config-show-indent|smie-down-list|smie-merge-prec2s|smie-prec2->grammar|smie-precs->prec2|smie-rule-bolp|smie-rule-hanging-p|smie-rule-next-p|smie-rule-parent|smie-rule-parent-p|smie-rule-prev-p|smie-rule-separator|smie-rule-sibling-p|smie-setup|Snarf-documentation|sort|sort-columns|sort-fields|sort-fold-case|sort-lines|sort-numeric-base|sort-numeric-fields|sort-pages|sort-paragraphs|sort-regexp-fields|sort-subr|special-event-map|special-form-p|special-mode|special-variable-p|split-height-threshold|split-string|split-string-and-unquote|split-string-default-separators|split-width-threshold|split-window|split-window-below|split-window-keep-point|split-window-preferred-function|split-window-right|split-window-sensibly|sqrt|standard-case-table|standard-category-table|standard-display-table|standard-input|standard-output|standard-syntax-table|standard-translation-table-for-decode|standard-translation-table-for-encode|start-file-process|start-file-process-shell-command|start-process|start-process-shell-command|stop-process|store-match-data|store-substring|string|string-as-multibyte|string-as-unibyte|string-bytes|string-chars-consed|string-equal|string-lessp|string-match|string-match-p|string-or-null-p|string-prefix-p|string-suffix-p|string-to-char|string-to-int|string-to-multibyte|string-to-number|string-to-syntax|string-to-unibyte|string-width|string<|string=|stringp|strings-consed|subr-arity|subrp|subst-char-in-region|substitute-command-keys|substitute-in-file-name|substitute-key-definition|substring|substring-no-properties|suppress-keymap|suspend-emacs|suspend-frame|suspend-hook|suspend-resume-hook|suspend-tty|suspend-tty-functions|switch-to-buffer|switch-to-buffer-other-frame|switch-to-buffer-other-window|switch-to-buffer-preserve-window-point|switch-to-next-buffer|switch-to-prev-buffer|switch-to-visible-buffer|sxhash|symbol-file|symbol-function|symbol-name|symbol-plist|symbol-value|symbolp|symbols-consed|syntax-after|syntax-begin-function|syntax-class|syntax-ppss|syntax-ppss-flush-cache|syntax-ppss-toplevel-pos|syntax-propertize-extend-region-functions|syntax-propertize-function|syntax-table|syntax-table-p|system-configuration|system-groups|system-key-alist|system-messages-locale|system-name|system-time-locale|system-type|system-users|tab-always-indent|tab-stop-list|tab-to-tab-stop|tab-width|tabulated-list-entries|tabulated-list-format|tabulated-list-init-header|tabulated-list-mode|tabulated-list-print|tabulated-list-printer|tabulated-list-revert-hook|tabulated-list-sort-key|tan|temacs|temp-buffer-setup-hook|temp-buffer-show-function|temp-buffer-show-hook|temp-buffer-window-setup-hook|temp-buffer-window-show-hook|temporary-file-directory|term-file-prefix|terminal-coding-system|terminal-list|terminal-live-p|terminal-name|terminal-parameter|terminal-parameters|terpri|test-completion|testcover-mark-all|testcover-next-mark|testcover-start|text-char-description|text-mode|text-mode-abbrev-table|text-properties-at|text-property-any|text-property-default-nonsticky|text-property-not-all|thing-at-point|this-command|this-command-keys|this-command-keys-shift-translated|this-command-keys-vector|this-original-command|three-step-help|time-add|time-less-p|time-subtract|time-to-day-in-year|time-to-days|timer-max-repeats|toggle-enable-multibyte-characters|tool-bar-add-item|tool-bar-add-item-from-menu|tool-bar-border|tool-bar-button-margin|tool-bar-button-relief|tool-bar-local-item-from-menu|tool-bar-map|top-level|tq-close|tq-create|tq-enqueue|track-mouse|transient-mark-mode|translate-region|translation-table-for-input|transpose-regions|truncate|truncate-lines|truncate-partial-width-windows|truncate-string-to-width|try-completion|tty-color-alist|tty-color-approximate|tty-color-clear|tty-color-define|tty-color-translate|tty-erase-char|tty-setup-hook|tty-top-frame|type-of|unbury-buffer|undefined|underline-minimum-offset|undo-ask-before-discard|undo-boundary|undo-in-progress|undo-limit|undo-outer-limit|undo-strong-limit|unhandled-file-name-directory|unibyte-char-to-multibyte|unibyte-string|unicode-category-table|unintern|universal-argument|universal-argument-map|unload-feature|unload-feature-special-hooks|unlock-buffer|unread-command-events|unsafep|up-list|upcase|upcase-initials|upcase-region|upcase-word|update-directory-autoloads|update-file-autoloads|use-empty-active-region|use-global-map|use-hard-newlines|use-local-map|use-region-p|user-emacs-directory|user-error|user-full-name|user-init-file|user-login-name|user-mail-address|user-real-login-name|user-real-uid|user-uid|values|vc-mode|vc-prefix-map|vconcat|vector|vector-cells-consed|vectorp|verify-visited-file-modtime|version-control|vertical-motion|vertical-scroll-bar|view-register|visible-bell|visible-frame-list|visited-file-modtime|void-function|void-text-area-pointer|waiting-for-user-input-p|walk-windows|warn|warning-fill-prefix|warning-levels|warning-minimum-level|warning-minimum-log-level|warning-prefix-function|warning-series|warning-suppress-log-types|warning-suppress-types|warning-type-format|where-is-internal|while-no-input|wholenump|widen|window-absolute-pixel-edges|window-at|window-body-height|window-body-size|window-body-width|window-bottom-divider-width|window-buffer|window-child|window-combination-limit|window-combination-resize|window-combined-p|window-configuration-change-hook|window-configuration-frame|window-configuration-p|window-current-scroll-bars|window-dedicated-p|window-display-table|window-edges|window-end|window-frame|window-fringes|window-full-height-p|window-full-width-p|window-header-line-height|window-hscroll|window-in-direction|window-inside-absolute-pixel-edges|window-inside-edges|window-inside-pixel-edges|window-left-child|window-left-column|window-line-height|window-list|window-live-p|window-margins|window-min-height|window-min-size|window-min-width|window-minibuffer-p|window-mode-line-height|window-next-buffers|window-next-sibling|window-parameter|window-parameters|window-parent|window-persistent-parameters|window-pixel-edges|window-pixel-height|window-pixel-left|window-pixel-top|window-pixel-width|window-point|window-point-insertion-type|window-prev-buffers|window-prev-sibling|window-resizable|window-resize|window-resize-pixelwise|window-right-divider-width|window-scroll-bar-width|window-scroll-bars|window-scroll-functions|window-setup-hook|window-size-change-functions|window-size-fixed|window-start|window-state-get|window-state-put|window-system|window-system-initialization-alist|window-text-change-functions|window-text-pixel-size|window-top-child|window-top-line|window-total-height|window-total-size|window-total-width|window-tree|window-valid-p|window-vscroll|windowp|with-case-table|with-coding-priority|with-current-buffer|with-current-buffer-window|with-demoted-errors|with-eval-after-load|with-help-window|with-local-quit|with-no-warnings|with-output-to-string|with-output-to-temp-buffer|with-selected-window|with-syntax-table|with-temp-buffer|with-temp-buffer-window|with-temp-file|with-temp-message|with-timeout|word-search-backward|word-search-backward-lax|word-search-forward|word-search-forward-lax|word-search-regexp|words-include-escapes|wrap-prefix|write-abbrev-file|write-char|write-contents-functions|write-file|write-file-functions|write-region|write-region-annotate-functions|write-region-post-annotation-function|wrong-number-of-arguments|wrong-type-argument|x-alt-keysym|x-alternatives-map|x-bitmap-file-path|x-close-connection|x-color-defined-p|x-color-values|x-defined-colors|x-display-color-p|x-display-list|x-dnd-known-types|x-dnd-test-function|x-dnd-types-alist|x-family-fonts|x-get-resource|x-get-selection|x-hyper-keysym|x-list-fonts|x-meta-keysym|x-open-connection|x-parse-geometry|x-pointer-shape|x-popup-dialog|x-popup-menu|x-resource-class|x-resource-name|x-sensitive-text-pointer-shape|x-server-vendor|x-server-version|x-set-selection|x-setup-function-keys|x-super-keysym|y-or-n-p|y-or-n-p-with-timeout|yank|yank-excluded-properties|yank-handled-properties|yank-pop|yank-undo-function|yes-or-no-p|zerop|zlib-available-p|zlib-decompress-region)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:mocha--other-js2-imenu-function|mocha-command|mocha-debug-port|mocha-debuggers|mocha-debugger|mocha-environment-variables|mocha-imenu-functions|mocha-options|mocha-project-test-directory|mocha-reporter|mocha-test-definition-nodes|mocha-which-node|node-error-regexp-alist|node-error-regexp)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.variable.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:define-modify-macro|define-setf-method|defsetf|eval-when-compile|flet|labels|lexical-let\\\\\\\\*?|cl-(?:acons|adjoin|assert|assoc|assoc-if|assoc-if-not|block|caddr|callf|callf2|case|ceiling|check-type|coerce|compiler-macroexpand|concatenate|copy-list|count|count-if|count-if-not|decf|declaim|declare|define-compiler-macro|defmacro|defstruct|defsubst|deftype|defun|delete|delete-duplicates|delete-if|delete-if-not|destructuring-bind|do\\\\\\\\*?|do-all-symbols|do-symbols|dolist|dotimes|ecase|endp|equalp|etypecase|eval-when|evenp|every|fill|find|find-if|find-if-not|first|flet|float-limits|floor|function|gcd|gensym|gentemp|getf?|incf|intersection|isqrt|labels|lcm|ldiff|letf\\\\\\\\*?|list\\\\\\\\*|list-length|load-time-value|locally|loop|macrolet|make-random-state|map|mapc|mapcan|mapcar|mapcon|mapl|maplist|member|member-if|member-if-not|merge|minusp|mismatch|mod|multiple-value-bind|multiple-value-setq|nintersection|notany|notevery|nset-difference|nset-exclusive-or|nsublis|nsubst|nsubst-if|nsubst-if-not|nsubstitute|nsubstitute-if|nsubstitute-if-not|nunion|oddp|pairlis|plusp|position|position-if|position-if-not|prettyexpand|proclaim|progv|psetf|psetq|pushnew|random|random-state-p|rassoc|rassoc-if|rassoc-if-not|reduce|remf?|remove|remove-duplicates|remove-if|remove-if-not|remprop|replace|rest|return|return-from|rotatef|round|search|set-difference|set-exclusive-or|shiftf|some|sort|stable-sort|sublis|subseq|subsetp|subst|subst-if|subst-if-not|substitute|substitute-if|substitute-if-not|symbol-macrolet|tagbody|tailp|the|tree-equal|truncate|typecase|typep|union))(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.cl-lib.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:\\\\\\\\*table--cell-backward-kill-paragraph|\\\\\\\\*table--cell-backward-kill-sentence|\\\\\\\\*table--cell-backward-kill-sexp|\\\\\\\\*table--cell-backward-kill-word|\\\\\\\\*table--cell-backward-paragraph|\\\\\\\\*table--cell-backward-sentence|\\\\\\\\*table--cell-backward-word|\\\\\\\\*table--cell-beginning-of-buffer|\\\\\\\\*table--cell-beginning-of-line|\\\\\\\\*table--cell-center-line|\\\\\\\\*table--cell-center-paragraph|\\\\\\\\*table--cell-center-region|\\\\\\\\*table--cell-clipboard-yank|\\\\\\\\*table--cell-copy-region-as-kill|\\\\\\\\*table--cell-dabbrev-completion|\\\\\\\\*table--cell-dabbrev-expand|\\\\\\\\*table--cell-delete-backward-char|\\\\\\\\*table--cell-delete-char|\\\\\\\\*table--cell-delete-region|\\\\\\\\*table--cell-describe-bindings|\\\\\\\\*table--cell-describe-mode|\\\\\\\\*table--cell-end-of-buffer|\\\\\\\\*table--cell-end-of-line|\\\\\\\\*table--cell-fill-paragraph|\\\\\\\\*table--cell-forward-paragraph|\\\\\\\\*table--cell-forward-sentence|\\\\\\\\*table--cell-forward-word|\\\\\\\\*table--cell-insert|\\\\\\\\*table--cell-kill-line|\\\\\\\\*table--cell-kill-paragraph|\\\\\\\\*table--cell-kill-region|\\\\\\\\*table--cell-kill-ring-save|\\\\\\\\*table--cell-kill-sentence|\\\\\\\\*table--cell-kill-sexp|\\\\\\\\*table--cell-kill-word|\\\\\\\\*table--cell-move-beginning-of-line|\\\\\\\\*table--cell-move-end-of-line|\\\\\\\\*table--cell-newline-and-indent|\\\\\\\\*table--cell-newline|\\\\\\\\*table--cell-open-line|\\\\\\\\*table--cell-quoted-insert|\\\\\\\\*table--cell-self-insert-command|\\\\\\\\*table--cell-yank-clipboard-selection|\\\\\\\\*table--cell-yank|\\\\\\\\*table--present-cell-popup-menu|-cvs-create-fileinfo--cmacro|-cvs-create-fileinfo|-cvs-flags-make--cmacro|-cvs-flags-make|1\\\\\\\\+|1-|1value|2C-associate-buffer|2C-associated-buffer|2C-autoscroll|2C-command|2C-dissociate|2C-enlarge-window-horizontally|2C-merge|2C-mode|2C-newline|2C-other|2C-shrink-window-horizontally|2C-split|2C-toggle-autoscroll|2C-two-columns|5x5-bol|5x5-cell|5x5-copy-grid|5x5-crack-mutating-best|5x5-crack-mutating-current|5x5-crack-randomly|5x5-crack-xor-mutate|5x5-crack|5x5-defvar-local|5x5-down|5x5-draw-grid-end|5x5-draw-grid|5x5-eol|5x5-first|5x5-flip-cell|5x5-flip-current|5x5-grid-to-vec|5x5-grid-value|5x5-last|5x5-left|5x5-log-init|5x5-log|5x5-made-move|5x5-make-move|5x5-make-mutate-best|5x5-make-mutate-current|5x5-make-new-grid|5x5-make-random-grid|5x5-make-random-solution|5x5-make-xor-with-mutation|5x5-mode-menu|5x5-mode|5x5-mutate-solution|5x5-new-game|5x5-play-solution|5x5-position-cursor|5x5-quit-game|5x5-randomize|5x5-right|5x5-row-value|5x5-set-cell|5x5-solve-rotate-left|5x5-solve-rotate-right|5x5-solve-suggest|5x5-solver|5x5-up|5x5-vec-to-grid|5x5-xor|5x5-y-or-n-p|5x5|Buffer-menu--pretty-file-name|Buffer-menu--pretty-name|Buffer-menu--unmark|Buffer-menu-1-window|Buffer-menu-2-window|Buffer-menu-backup-unmark|Buffer-menu-beginning|Buffer-menu-buffer|Buffer-menu-bury|Buffer-menu-delete-backwards|Buffer-menu-delete|Buffer-menu-execute|Buffer-menu-info-node-description|Buffer-menu-isearch-buffers-regexp|Buffer-menu-isearch-buffers|Buffer-menu-mark|Buffer-menu-marked-buffers|Buffer-menu-mode|Buffer-menu-mouse-select|Buffer-menu-multi-occur|Buffer-menu-no-header|Buffer-menu-not-modified|Buffer-menu-other-window|Buffer-menu-save|Buffer-menu-select|Buffer-menu-sort|Buffer-menu-switch-other-window|Buffer-menu-this-window|Buffer-menu-toggle-files-only|Buffer-menu-toggle-read-only|Buffer-menu-unmark|Buffer-menu-view-other-window|Buffer-menu-view|Buffer-menu-visit-tags-table|Control-X-prefix|Custom-buffer-done|Custom-goto-parent|Custom-help|Custom-mode-menu|Custom-mode|Custom-newline|Custom-no-edit|Custom-reset-current|Custom-reset-saved|Custom-reset-standard|Custom-save|Custom-set|Electric-buffer-menu-exit|Electric-buffer-menu-mode-view-buffer|Electric-buffer-menu-mode|Electric-buffer-menu-mouse-select|Electric-buffer-menu-quit|Electric-buffer-menu-select|Electric-buffer-menu-undefined|Electric-command-history-redo-expression|Electric-command-loop|Electric-pop-up-window|Footnote-add-footnote|Footnote-assoc-index|Footnote-back-to-message|Footnote-current-regexp|Footnote-cycle-style|Footnote-delete-footnote|Footnote-english-lower|Footnote-english-upper|Footnote-goto-char-point-max|Footnote-goto-footnote|Footnote-index-to-string|Footnote-insert-footnote|Footnote-insert-numbered-footnote|Footnote-insert-pointer-marker|Footnote-insert-text-marker|Footnote-latin|Footnote-make-hole|Footnote-narrow-to-footnotes|Footnote-numeric|Footnote-refresh-footnotes|Footnote-renumber-footnotes|Footnote-renumber|Footnote-roman-common|Footnote-roman-lower|Footnote-roman-upper|Footnote-set-style|Footnote-sort|Footnote-style-p|Footnote-text-under-cursor|Footnote-under-cursor|Footnote-unicode|Info--search-loop|Info-apropos-find-file|Info-apropos-find-node|Info-apropos-matches|Info-apropos-toc-nodes|Info-backward-node|Info-bookmark-jump|Info-bookmark-make-record|Info-breadcrumbs|Info-build-node-completions-1|Info-build-node-completions|Info-cease-edit|Info-check-pointer|Info-clone-buffer|Info-complete-menu-item|Info-copy-current-node-name|Info-default-dirs|Info-desktop-buffer-misc-data|Info-dir-remove-duplicates|Info-directory-find-file|Info-directory-find-node|Info-directory-toc-nodes|Info-directory|Info-display-images-node|Info-edit-mode|Info-edit|Info-exit|Info-extract-menu-counting|Info-extract-menu-item|Info-extract-menu-node-name|Info-extract-pointer|Info-file-supports-index-cookies|Info-final-node|Info-find-emacs-command-nodes|Info-find-file|Info-find-in-tag-table-1|Info-find-in-tag-table|Info-find-index-name|Info-find-node-2|Info-find-node-in-buffer-1|Info-find-node-in-buffer|Info-find-node|Info-finder-find-file|Info-finder-find-node|Info-follow-nearest-node|Info-follow-reference|Info-following-node-name-re|Info-following-node-name|Info-fontify-node|Info-forward-node|Info-get-token|Info-goto-emacs-command-node|Info-goto-emacs-key-command-node|Info-goto-index|Info-goto-node|Info-help|Info-hide-cookies-node|Info-history-back|Info-history-find-file|Info-history-find-node|Info-history-forward|Info-history-toc-nodes|Info-history|Info-index-next|Info-index-node|Info-index-nodes|Info-index|Info-insert-dir|Info-install-speedbar-variables|Info-isearch-end|Info-isearch-filter|Info-isearch-pop-state|Info-isearch-push-state|Info-isearch-search|Info-isearch-start|Info-isearch-wrap|Info-kill-buffer|Info-last-menu-item|Info-last-preorder|Info-last|Info-menu-update|Info-menu|Info-mode-menu|Info-mode|Info-mouse-follow-link|Info-mouse-follow-nearest-node|Info-mouse-scroll-down|Info-mouse-scroll-up|Info-next-menu-item|Info-next-preorder|Info-next-reference-or-link|Info-next-reference|Info-next|Info-no-error|Info-node-at-bob-matching|Info-nth-menu-item|Info-on-current-buffer|Info-prev-reference-or-link|Info-prev-reference|Info-prev|Info-read-node-name-1|Info-read-node-name-2|Info-read-node-name|Info-read-subfile|Info-restore-desktop-buffer|Info-restore-point|Info-revert-buffer-function|Info-revert-find-node|Info-scroll-down|Info-scroll-up|Info-search-backward|Info-search-case-sensitively|Info-search-next|Info-search|Info-select-node|Info-set-mode-line|Info-speedbar-browser|Info-speedbar-buttons|Info-speedbar-expand-node|Info-speedbar-fetch-file-nodes|Info-speedbar-goto-node|Info-speedbar-hierarchy-buttons|Info-split-parameter-string|Info-split|Info-summary|Info-tagify|Info-toc-build|Info-toc-find-node|Info-toc-insert|Info-toc-nodes|Info-toc|Info-top-node|Info-try-follow-nearest-node|Info-undefined|Info-unescape-quotes|Info-up|Info-validate-node-name|Info-validate-tags-table|Info-validate|Info-virtual-call|Info-virtual-file-p|Info-virtual-fun|Info-virtual-index-find-node|Info-virtual-index|LaTeX-mode|Man-bgproc-filter|Man-bgproc-sentinel|Man-bookmark-jump|Man-bookmark-make-record|Man-build-man-command|Man-build-page-list|Man-build-references-alist|Man-build-section-alist|Man-cleanup-manpage|Man-completion-table|Man-default-bookmark-title|Man-default-man-entry|Man-find-section|Man-follow-manual-reference|Man-fontify-manpage|Man-getpage-in-background|Man-goto-page|Man-goto-section|Man-goto-see-also-section|Man-highlight-references|Man-highlight-references0|Man-init-defvars|Man-kill|Man-make-page-mode-string|Man-mode|Man-next-manpage|Man-next-section|Man-notify-when-ready|Man-page-from-arguments|Man-parse-man-k|Man-possibly-hyphenated-word|Man-previous-manpage|Man-previous-section|Man-quit|Man-softhyphen-to-minus|Man-start-calling|Man-strip-page-headers|Man-support-local-filenames|Man-translate-cleanup|Man-translate-references|Man-unindent|Man-update-manpage|Man-view-header-file|Man-xref-button-action|Math-anglep|Math-bignum-test|Math-equal-int|Math-equal|Math-integer-neg|Math-integer-negp|Math-integer-posp|Math-integerp|Math-lessp|Math-looks-negp|Math-messy-integerp|Math-natnum-lessp|Math-natnump|Math-negp|Math-num-integerp|Math-numberp|Math-objectp|Math-objvecp|Math-posp|Math-primp|Math-ratp|Math-realp|Math-scalarp|Math-vectorp|Math-zerop|TeX-mode|View-back-to-mark|View-exit-and-edit|View-exit|View-goto-line|View-goto-percent|View-kill-and-leave|View-leave|View-quit-all|View-quit|View-revert-buffer-scroll-page-forward|View-scroll-half-page-backward|View-scroll-half-page-forward|View-scroll-line-backward|View-scroll-line-forward|View-scroll-page-backward-set-page-size|View-scroll-page-backward|View-scroll-page-forward-set-page-size|View-scroll-page-forward|View-scroll-to-buffer-end|View-search-last-regexp-backward|View-search-last-regexp-forward|View-search-regexp-backward|View-search-regexp-forward|WoMan-find-buffer|WoMan-getpage-in-background|WoMan-log-1|WoMan-log-begin|WoMan-log-end|WoMan-log|WoMan-next-manpage|WoMan-previous-manpage|WoMan-warn-ignored|WoMan-warn|abbrev--active-tables|abbrev--before-point|abbrev--check-chars|abbrev--default-expand|abbrev--describe|abbrev--symbol|abbrev--write|abbrev-edit-save-buffer|abbrev-edit-save-to-file|abbrev-mode|abbrev-table-empty-p|abbrev-table-menu|abbrev-table-name|abort-if-file-too-large|about-emacs|accelerate-menu|accept-completion|acons|activate-input-method|activate-mark|activate-mode-local-bindings|ad--defalias-fset|ad--make-advised-docstring|ad-Advice-c-backward-sws|ad-Advice-c-beginning-of-macro|ad-Advice-c-forward-sws|ad-Advice-save-place-find-file-hook|ad-access-argument|ad-activate-advised-definition|ad-activate-all|ad-activate-internal|ad-activate-on|ad-activate-regexp|ad-activate|ad-add-advice|ad-advice-definition|ad-advice-enabled|ad-advice-name|ad-advice-p|ad-advice-position|ad-advice-protected|ad-advice-set-enabled|ad-advised-arglist|ad-advised-interactive-form|ad-arg-binding-field|ad-arglist|ad-assemble-advised-definition|ad-body-forms|ad-cache-id-verification-code|ad-class-p|ad-clear-advicefunname-definition|ad-clear-cache|ad-compile-function|ad-compiled-code|ad-compiled-p|ad-copy-advice-info|ad-deactivate-all|ad-deactivate-regexp|ad-deactivate|ad-definition-type|ad-disable-advice|ad-disable-regexp|ad-do-advised-functions|ad-docstring|ad-element-access|ad-enable-advice-internal|ad-enable-advice|ad-enable-regexp-internal|ad-enable-regexp|ad-find-advice|ad-find-some-advice|ad-get-advice-info-field|ad-get-advice-info-macro|ad-get-advice-info|ad-get-argument|ad-get-arguments|ad-get-cache-class-id|ad-get-cache-definition|ad-get-cache-id|ad-get-enabled-advices|ad-get-orig-definition|ad-has-any-advice|ad-has-enabled-advice|ad-has-proper-definition|ad-has-redefining-advice|ad-initialize-advice-info|ad-insert-argument-access-forms|ad-interactive-form|ad-is-active|ad-is-advised|ad-is-compilable|ad-lambda-expression|ad-lambda-p|ad-lambdafy|ad-list-access|ad-macrofy|ad-make-advice|ad-make-advicefunname|ad-make-advised-definition|ad-make-cache-id|ad-make-hook-form|ad-make-single-advice-docstring|ad-map-arglists|ad-name-p|ad-parse-arglist|ad-pop-advised-function|ad-position-p|ad-preactivate-advice|ad-pushnew-advised-function|ad-read-advice-class|ad-read-advice-name|ad-read-advice-specification|ad-read-advised-function|ad-read-regexp|ad-real-definition|ad-real-orig-definition|ad-recover-all|ad-recover-normality|ad-recover|ad-remove-advice|ad-retrieve-args-form|ad-set-advice-info-field|ad-set-advice-info|ad-set-argument|ad-set-arguments|ad-set-cache|ad-should-compile|ad-substitute-tree|ad-unadvise-all|ad-unadvise|ad-update-all|ad-update-regexp|ad-update|ad-verify-cache-class-id|ad-verify-cache-id|ad-with-originals|ada-activate-keys-for-case|ada-add-extensions|ada-adjust-case-buffer|ada-adjust-case-identifier|ada-adjust-case-interactive|ada-adjust-case-region|ada-adjust-case-skeleton|ada-adjust-case-substring|ada-adjust-case|ada-after-keyword-p|ada-array|ada-batch-reformat|ada-call-from-contextual-menu|ada-capitalize-word|ada-case-read-exceptions-from-file)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:ada-case-read-exceptions|ada-case|ada-change-prj|ada-check-current|ada-check-defun-name|ada-check-matching-start|ada-compile-application|ada-compile-current|ada-compile-goto-error|ada-compile-mouse-goto-error|ada-complete-identifier|ada-contextual-menu|ada-create-case-exception-substring|ada-create-case-exception|ada-create-keymap|ada-create-menu|ada-customize|ada-declare-block|ada-else|ada-elsif|ada-exception-block|ada-exception|ada-exit|ada-ff-other-window|ada-fill-comment-paragraph-justify|ada-fill-comment-paragraph-postfix|ada-fill-comment-paragraph|ada-find-any-references|ada-find-file|ada-find-local-references|ada-find-references|ada-find-src-file-in-dir|ada-for-loop|ada-format-paramlist|ada-function-spec|ada-gdb-application|ada-gen-treat-proc|ada-get-body-name|ada-get-current-indent|ada-get-indent-block-label|ada-get-indent-block-start|ada-get-indent-case|ada-get-indent-end|ada-get-indent-goto-label|ada-get-indent-if|ada-get-indent-loop|ada-get-indent-nochange|ada-get-indent-noindent|ada-get-indent-open-paren|ada-get-indent-paramlist|ada-get-indent-subprog|ada-get-indent-type|ada-get-indent-when|ada-gnat-style|ada-goto-decl-start|ada-goto-declaration-other-frame|ada-goto-declaration|ada-goto-matching-end|ada-goto-matching-start|ada-goto-next-non-ws|ada-goto-next-word|ada-goto-parent|ada-goto-previous-word|ada-goto-stmt-end|ada-goto-stmt-start|ada-header|ada-if|ada-in-comment-p|ada-in-decl-p|ada-in-numeric-literal-p|ada-in-open-paren-p|ada-in-paramlist-p|ada-in-string-or-comment-p|ada-in-string-p|ada-indent-current-function|ada-indent-current|ada-indent-newline-indent-conditional|ada-indent-newline-indent|ada-indent-on-previous-lines|ada-indent-region|ada-insert-paramlist|ada-justified-indent-current|ada-looking-at-semi-or|ada-looking-at-semi-private|ada-loop|ada-loose-case-word|ada-make-body-gnatstub|ada-make-body|ada-make-filename-from-adaname|ada-make-subprogram-body|ada-mode-menu|ada-mode-version|ada-mode|ada-move-to-end|ada-move-to-start|ada-narrow-to-defun|ada-next-package|ada-next-procedure|ada-no-auto-case|ada-other-file-name|ada-outline-level|ada-package-body|ada-package-spec|ada-point-and-xref|ada-popup-menu|ada-previous-package|ada-previous-procedure|ada-private|ada-prj-edit|ada-prj-new|ada-prj-save|ada-procedure-spec|ada-record|ada-region-selected|ada-remove-trailing-spaces|ada-reread-prj-file|ada-run-application|ada-save-exceptions-to-file|ada-scan-paramlist|ada-search-ignore-complex-boolean|ada-search-ignore-string-comment|ada-search-prev-end-stmt|ada-set-default-project-file|ada-set-main-compile-application|ada-set-point-accordingly|ada-show-current-main|ada-subprogram-body|ada-subtype|ada-tab-hard|ada-tab|ada-tabsize|ada-task-body|ada-task-spec|ada-type|ada-uncomment-region|ada-untab-hard|ada-untab|ada-use|ada-when|ada-which-function-are-we-in|ada-which-function|ada-while-loop|ada-with|ada-xref-goto-previous-reference|add-abbrev|add-change-log-entry-other-window|add-change-log-entry|add-completion-to-head|add-completion-to-tail-if-new|add-completion|add-completions-from-buffer|add-completions-from-c-buffer|add-completions-from-file|add-completions-from-lisp-buffer|add-completions-from-tags-table|add-dir-local-variable|add-file-local-variable-prop-line|add-file-local-variable|add-global-abbrev|add-log-current-defun|add-log-edit-next-comment|add-log-edit-prev-comment|add-log-file-name|add-log-iso8601-time-string|add-log-iso8601-time-zone|add-log-tcl-defun|add-minor-mode|add-mode-abbrev|add-new-page|add-permanent-completion|add-submenu|add-timeout|add-to-coding-system-list|add-to-list--anon-cmacro|addbib|adjoin|advertised-undo|advertised-widget-backward|advertised-xscheme-send-previous-expression|advice--add-function|advice--buffer-local|advice--called-interactively-skip|advice--car|advice--cd\\\\\\\\*r|advice--cdr|advice--defalias-fset|advice--interactive-form|advice--make-1|advice--make-docstring|advice--make-interactive-form|advice--make|advice--member-p|advice--normalize-place|advice--normalize|advice--p|advice--props|advice--remove-function|advice--set-buffer-local|advice--strip-macro|advice--subst-main|advice--symbol-function|advice--tweak|after-insert-file-set-coding|align--set-marker|align-adjust-col-for-rule|align-areas|align-column|align-current|align-entire|align-highlight-rule|align-match-tex-pattern|align-new-section-p|align-newline-and-indent|align-regexp|align-region|align-regions|align-set-vhdl-rules|align-unhighlight-rule|align|alist-get|allout-aberrant-container-p|allout-add-resumptions|allout-adjust-file-variable|allout-after-saves-handler|allout-annotate-hidden|allout-ascend-to-depth|allout-ascend|allout-auto-activation-helper|allout-auto-fill|allout-back-to-current-heading|allout-back-to-heading|allout-back-to-visible-text|allout-backward-current-level|allout-before-change-handler|allout-beginning-of-current-entry|allout-beginning-of-current-line|allout-beginning-of-level|allout-beginning-of-line|allout-body-modification-handler|allout-bullet-for-depth|allout-bullet-isearch|allout-called-interactively-p|allout-chart-exposure-contour-by-icon|allout-chart-siblings|allout-chart-subtree|allout-chart-to-reveal|allout-compose-and-institute-keymap|allout-copy-exposed-to-buffer|allout-copy-line-as-kill|allout-copy-topic-as-kill|allout-current-bullet-pos|allout-current-bullet|allout-current-decorated-p|allout-current-depth|allout-current-topic-collapsed-p|allout-deannotate-hidden|allout-decorate-item-and-context|allout-decorate-item-body|allout-decorate-item-cue|allout-decorate-item-guides|allout-decorate-item-icon|allout-decorate-item-span|allout-depth|allout-descend-to-depth|allout-distinctive-bullet|allout-do-doublecheck|allout-do-resumptions|allout-e-o-prefix-p|allout-elapsed-time-seconds|allout-encrypt-decrypted|allout-encrypt-string|allout-encrypted-topic-p|allout-encrypted-type-prefix|allout-end-of-current-heading|allout-end-of-current-line|allout-end-of-current-subtree|allout-end-of-entry|allout-end-of-heading|allout-end-of-level|allout-end-of-line|allout-end-of-prefix|allout-end-of-subtree|allout-expose-topic|allout-fetch-icon-image|allout-file-vars-section-data|allout-find-file-hook|allout-find-image|allout-flag-current-subtree|allout-flag-region|allout-flatten-exposed-to-buffer|allout-flatten|allout-format-quote|allout-forward-current-level|allout-frame-property|allout-get-body-text|allout-get-bullet|allout-get-configvar-values|allout-get-current-prefix|allout-get-invisibility-overlay|allout-get-item-widget|allout-get-or-create-item-widget|allout-get-or-create-parent-widget|allout-get-prefix-bullet|allout-goto-prefix-doublechecked|allout-goto-prefix|allout-graphics-modification-handler|allout-hidden-p|allout-hide-bodies|allout-hide-by-annotation|allout-hide-current-entry|allout-hide-current-leaves|allout-hide-current-subtree|allout-hide-region-body|allout-hotspot-key-handler|allout-indented-exposed-to-buffer|allout-infer-body-reindent|allout-infer-header-lead-and-primary-bullet|allout-infer-header-lead|allout-inhibit-auto-save-info-for-decryption|allout-init|allout-insert-latex-header|allout-insert-latex-trailer|allout-insert-listified|allout-institute-keymap|allout-isearch-end-handler|allout-item-actual-position|allout-item-element-span-is|allout-item-icon-key-handler|allout-item-location|allout-item-span|allout-kill-line|allout-kill-topic|allout-latex-verb-quote|allout-latex-verbatim-quote-curr-line|allout-latexify-exposed|allout-latexify-one-item|allout-lead-with-comment-string|allout-listify-exposed|allout-make-topic-prefix|allout-mark-active-p|allout-mark-marker|allout-mark-topic|allout-maybe-resume-auto-save-info-after-encryption|allout-minor-mode|allout-mode-map|allout-mode-p|allout-mode|allout-new-exposure|allout-new-item-widget|allout-next-heading|allout-next-sibling-leap|allout-next-sibling|allout-next-single-char-property-change|allout-next-topic-pending-encryption|allout-next-visible-heading|allout-number-siblings|allout-numbered-type-prefix|allout-old-expose-topic|allout-on-current-heading-p|allout-on-heading-p|allout-open-sibtopic|allout-open-subtopic|allout-open-supertopic|allout-open-topic|allout-overlay-insert-in-front-handler|allout-overlay-interior-modification-handler|allout-overlay-preparations|allout-parse-item-at-point|allout-post-command-business|allout-pre-command-business|allout-pre-next-prefix|allout-prefix-data|allout-previous-heading|allout-previous-sibling|allout-previous-single-char-property-change|allout-previous-visible-heading|allout-process-exposed|allout-range-overlaps|allout-rebullet-current-heading|allout-rebullet-heading|allout-rebullet-topic-grunt|allout-rebullet-topic|allout-recent-bullet|allout-recent-depth|allout-recent-prefix|allout-redecorate-item|allout-redecorate-visible-subtree|allout-region-active-p|allout-reindent-body|allout-renumber-to-depth|allout-reset-header-lead|allout-resolve-xref|allout-run-unit-tests|allout-select-safe-coding-system|allout-set-boundary-marker|allout-setup-menubar|allout-setup-text-properties|allout-setup|allout-shift-in|allout-shift-out|allout-show-all|allout-show-children|allout-show-current-branches|allout-show-current-entry|allout-show-current-subtree|allout-show-entry|allout-show-to-offshoot|allout-sibling-index|allout-snug-back|allout-solicit-alternate-bullet|allout-stringify-flat-index-indented|allout-stringify-flat-index-plain|allout-stringify-flat-index|allout-substring-no-properties|allout-test-range-overlaps|allout-test-resumptions|allout-tests-obliterate-variable|allout-this-or-next-heading|allout-toggle-current-subtree-encryption|allout-toggle-current-subtree-exposure|allout-toggle-subtree-encryption|allout-topic-flat-index|allout-unload-function|allout-unprotected|allout-up-current-level|allout-version|allout-widgetize-buffer|allout-widgets-additions-processor|allout-widgets-additions-recorder|allout-widgets-adjusting-message|allout-widgets-after-change-handler|allout-widgets-after-copy-or-kill-function|allout-widgets-after-undo-function|allout-widgets-before-change-handler|allout-widgets-changes-dispatcher|allout-widgets-copy-list|allout-widgets-count-buttons-in-region|allout-widgets-deletions-processor|allout-widgets-deletions-recorder|allout-widgets-exposure-change-processor|allout-widgets-exposure-change-recorder|allout-widgets-exposure-undo-processor|allout-widgets-exposure-undo-recorder|allout-widgets-hook-error-handler|allout-widgets-mode-disable|allout-widgets-mode-enable|allout-widgets-mode-off|allout-widgets-mode-on|allout-widgets-mode|allout-widgets-post-command-business|allout-widgets-pre-command-business|allout-widgets-prepopulate-buffer|allout-widgets-run-unit-tests|allout-widgets-setup|allout-widgets-shifts-processor|allout-widgets-shifts-recorder|allout-widgets-tally-string|allout-widgets-undecorate-item|allout-widgets-undecorate-region|allout-widgets-undecorate-text|allout-widgets-version|allout-write-contents-hook-handler|allout-yank-pop|allout-yank-processing|allout-yank|alter-text-property|ange-ftp-abbreviate-filename|ange-ftp-add-bs2000-host|ange-ftp-add-bs2000-posix-host|ange-ftp-add-cms-host|ange-ftp-add-dl-dir|ange-ftp-add-dumb-unix-host|ange-ftp-add-file-entry|ange-ftp-add-mts-host|ange-ftp-add-vms-host|ange-ftp-allow-child-lookup|ange-ftp-barf-if-not-directory|ange-ftp-barf-or-query-if-file-exists|ange-ftp-binary-file|ange-ftp-bs2000-cd-to-posix|ange-ftp-bs2000-host|ange-ftp-bs2000-posix-host|ange-ftp-call-chmod|ange-ftp-call-cont|ange-ftp-canonize-filename|ange-ftp-cd|ange-ftp-cf1|ange-ftp-cf2|ange-ftp-chase-symlinks|ange-ftp-cms-host|ange-ftp-cms-make-compressed-filename|ange-ftp-completion-hook-function|ange-ftp-compress|ange-ftp-copy-file-internal|ange-ftp-copy-file|ange-ftp-copy-files-async|ange-ftp-del-tmp-name|ange-ftp-delete-directory|ange-ftp-delete-file-entry|ange-ftp-delete-file|ange-ftp-directory-file-name|ange-ftp-directory-files-and-attributes|ange-ftp-directory-files|ange-ftp-dired-compress-file|ange-ftp-dired-uncache|ange-ftp-dl-parser|ange-ftp-dumb-unix-host|ange-ftp-error|ange-ftp-expand-dir|ange-ftp-expand-file-name|ange-ftp-expand-symlink|ange-ftp-file-attributes|ange-ftp-file-directory-p|ange-ftp-file-entry-not-ignored-p|ange-ftp-file-entry-p|ange-ftp-file-executable-p|ange-ftp-file-exists-p|ange-ftp-file-local-copy|ange-ftp-file-modtime|ange-ftp-file-name-all-completions|ange-ftp-file-name-as-directory|ange-ftp-file-name-completion-1|ange-ftp-file-name-completion|ange-ftp-file-name-directory|ange-ftp-file-name-nondirectory|ange-ftp-file-name-sans-versions)(?=[\\\\\\\\s()]|$)\"},{\"match\":\"(?<=[()]|^)(?:ange-ftp-file-newer-than-file-p|ange-ftp-file-readable-p|ange-ftp-file-remote-p|ange-ftp-file-size|ange-ftp-file-symlink-p|ange-ftp-file-writable-p|ange-ftp-find-backup-file-name|ange-ftp-fix-dir-name-for-bs2000|ange-ftp-fix-dir-name-for-cms|ange-ftp-fix-dir-name-for-mts|ange-ftp-fix-dir-name-for-vms|ange-ftp-fix-name-for-bs2000|ange-ftp-fix-name-for-cms|ange-ftp-fix-name-for-mts|ange-ftp-fix-name-for-vms|ange-ftp-ftp-name-component|ange-ftp-ftp-name|ange-ftp-ftp-process-buffer|ange-ftp-generate-passwd-key|ange-ftp-generate-root-prefixes|ange-ftp-get-account|ange-ftp-get-file-entry|ange-ftp-get-file-part|ange-ftp-get-files|ange-ftp-get-host-with-passwd|ange-ftp-get-passwd|ange-ftp-get-process|ange-ftp-get-pwd|ange-ftp-get-user|ange-ftp-guess-hash-mark-size|ange-ftp-guess-host-type|ange-ftp-gwp-filter|ange-ftp-gwp-sentinel|ange-ftp-gwp-start|ange-ftp-hash-entry-exists-p|ange-ftp-hash-table-keys|ange-ftp-hook-function|ange-ftp-host-type|ange-ftp-ignore-errors-if-non-essential|ange-ftp-insert-directory|ange-ftp-insert-file-contents|ange-ftp-internal-add-file-entry|ange-ftp-internal-delete-file-entry|ange-ftp-kill-ftp-process|ange-ftp-load|ange-ftp-lookup-passwd|ange-ftp-ls-parser|ange-ftp-ls|ange-ftp-make-directory|ange-ftp-make-tmp-name|ange-ftp-message|ange-ftp-mts-host|ange-ftp-normal-login|ange-ftp-nslookup-host|ange-ftp-parse-bs2000-filename|ange-ftp-parse-bs2000-listing|ange-ftp-parse-cms-listing|ange-ftp-parse-dired-listing|ange-ftp-parse-filename|ange-ftp-parse-mts-listing|ange-ftp-parse-netrc-group|ange-ftp-parse-netrc-token|ange-ftp-parse-netrc|ange-ftp-parse-vms-filename|ange-ftp-parse-vms-listing|ange-ftp-passive-mode|ange-ftp-process-file|ange-ftp-process-filter|ange-ftp-process-handle-hash|ange-ftp-process-handle-line|ange-ftp-process-sentinel|ange-ftp-quote-string|ange-ftp-raw-send-cmd|ange-ftp-re-read-dir|ange-ftp-real-backup-buffer|ange-ftp-real-copy-file|ange-ftp-real-delete-directory|ange-ftp-real-delete-file|ange-ftp-real-directory-file-name|ange-ftp-real-directory-files-and-attributes|ange-ftp-real-directory-files|ange-ftp-real-expand-file-name|ange-ftp-real-file-attributes|ange-ftp-real-file-directory-p|ange-ftp-real-file-executable-p|ange-ftp-real-file-exists-p|ange-ftp-real-file-name-all-completions|ange-ftp-real-file-name-as-directory|ange-ftp-real-file-name-completion|ange-ftp-real-file-name-directory|ange-ftp-real-file-name-nondirectory|ange-ftp-real-file-name-sans-versions|ange-ftp-real-file-newer-than-file-p|ange-ftp-real-file-readable-p|ange-ftp-real-file-symlink-p|ange-ftp-real-file-writable-p|ange-ftp-real-find-backup-file-name|ange-ftp-real-insert-directory|ange-ftp-real-insert-file-contents|ange-ftp-real-load|ange-ftp-real-make-directory|ange-ftp-real-rename-file|ange-ftp-real-shell-command|ange-ftp-real-verify-visited-file-modtime|ange-ftp-real-write-region|ange-ftp-rename-file|ange-ftp-rename-local-to-remote|ange-ftp-rename-remote-to-local|ange-ftp-rename-remote-to-remote|ange-ftp-repaint-minibuffer|ange-ftp-replace-name-component|ange-ftp-reread-dir|ange-ftp-root-dir-p|ange-ftp-run-real-handler-orig|ange-ftp-run-real-handler|ange-ftp-send-cmd|ange-ftp-set-account|ange-ftp-set-ascii-mode|ange-ftp-set-binary-mode|ange-ftp-set-buffer-mode|ange-ftp-set-file-modes|ange-ftp-set-files|ange-ftp-set-passwd|ange-ftp-set-user|ange-ftp-set-xfer-size|ange-ftp-shell-command|ange-ftp-smart-login|ange-ftp-start-process|ange-ftp-switches-ok|ange-ftp-uncompress|ange-ftp-unhandled-file-name-directory|ange-ftp-use-gateway-p|ange-ftp-use-smart-gateway-p|ange-ftp-verify-visited-file-modtime|ange-ftp-vms-add-file-entry|ange-ftp-vms-delete-file-entry|ange-ftp-vms-file-name-as-directory|ange-ftp-vms-host|ange-ftp-vms-make-compressed-filename|ange-ftp-vms-sans-version|ange-ftp-wait-not-busy|ange-ftp-wipe-file-entries|ange-ftp-write-region|animate-birthday-present|animate-initialize|animate-place-char|animate-sequence|animate-step|animate-string|another-calc|ansi-color--find-face|ansi-color-apply-on-region|ansi-color-apply-overlay-face|ansi-color-apply-sequence|ansi-color-apply|ansi-color-filter-apply|ansi-color-filter-region|ansi-color-for-comint-mode-filter|ansi-color-for-comint-mode-off|ansi-color-for-comint-mode-on|ansi-color-freeze-overlay|ansi-color-get-face-1|ansi-color-make-color-map|ansi-color-make-extent|ansi-color-make-face|ansi-color-map-update|ansi-color-parse-sequence|ansi-color-process-output|ansi-color-set-extent-face|ansi-color-unfontify-region|ansi-term|antlr-beginning-of-body|antlr-beginning-of-rule|antlr-c\\\\\\\\+\\\\\\\\+-mode-extra|antlr-c-forward-sws|antlr-c-init-language-vars|antlr-default-directory|antlr-directory-dependencies|antlr-downcase-literals|antlr-electric-character|antlr-end-of-body|antlr-end-of-rule|antlr-file-dependencies|antlr-font-lock-keywords|antlr-grammar-tokens|antlr-hide-actions|antlr-imenu-create-index-function|antlr-indent-command|antlr-indent-line|antlr-insert-makefile-rules|antlr-insert-option-area|antlr-insert-option-do|antlr-insert-option-existing|antlr-insert-option-interactive|antlr-insert-option-space|antlr-insert-option|antlr-inside-rule-p|antlr-invalidate-context-cache|antlr-language-option-extra|antlr-language-option|antlr-makefile-insert-variable|antlr-mode-menu|antlr-mode|antlr-next-rule|antlr-option-kind|antlr-option-level|antlr-option-location|antlr-option-spec|antlr-options-menu-filter|antlr-outside-rule-p|antlr-re-search-forward|antlr-read-boolean|antlr-read-shell-command|antlr-read-value|antlr-run-tool-interactive|antlr-run-tool|antlr-search-backward|antlr-search-forward|antlr-set-tabs|antlr-show-makefile-rules|antlr-skip-exception-part|antlr-skip-file-prelude|antlr-skip-sexps|antlr-superclasses-glibs|antlr-syntactic-context|antlr-syntactic-grammar-depth|antlr-upcase-literals|antlr-upcase-p|antlr-version-string|antlr-with-displaying-help-buffer|antlr-with-syntax-table|append-next-kill|append-to-buffer|append-to-register|apply-macro-to-region-lines|apply-on-rectangle|appt-activate|appt-add|apropos-command|apropos-documentation-property|apropos-documentation|apropos-internal|apropos-library|apropos-read-pattern|apropos-user-option|apropos-value|apropos-variable|archive-\\\\\\\\*-expunge|archive-\\\\\\\\*-extract|archive-\\\\\\\\*-write-file-member|archive-7z-extract|archive-7z-summarize|archive-7z-write-file-member|archive-add-new-member|archive-alternate-display|archive-ar-extract|archive-ar-summarize|archive-arc-rename-entry|archive-arc-summarize|archive-calc-mode|archive-chgrp-entry|archive-chmod-entry|archive-chown-entry|archive-delete-local|archive-desummarize|archive-display-other-window|archive-dosdate|archive-dostime|archive-expunge|archive-extract-by-file|archive-extract-by-stdout|archive-extract-other-window|archive-extract|archive-file-name-handler|archive-find-type|archive-flag-deleted|archive-get-descr|archive-get-lineno|archive-get-marked|archive-int-to-mode|archive-l-e|archive-lzh-chgrp-entry|archive-lzh-chmod-entry|archive-lzh-chown-entry|archive-lzh-exe-extract|archive-lzh-exe-summarize|archive-lzh-extract|archive-lzh-ogm|archive-lzh-rename-entry|archive-lzh-resum|archive-lzh-summarize|archive-mark|archive-maybe-copy|archive-maybe-update|archive-mode-revert|archive-mode|archive-mouse-extract|archive-name|archive-next-line|archive-previous-line|archive-rar-exe-extract|archive-rar-exe-summarize|archive-rar-extract|archive-rar-summarize|archive-rename-entry|archive-resummarize|archive-set-buffer-as-visiting-file|archive-summarize-files|archive-summarize|archive-try-jka-compr|archive-undo|archive-unflag-backwards|archive-unflag|archive-unique-fname|archive-unixdate|archive-unixtime|archive-unmark-all-files|archive-view|archive-write-file-member|archive-write-file|archive-zip-chmod-entry|archive-zip-extract|archive-zip-summarize|archive-zip-write-file-member|archive-zoo-extract|archive-zoo-summarize|arp|array-backward-column|array-beginning-of-field|array-copy-backward|array-copy-column-backward|array-copy-column-forward|array-copy-down|array-copy-forward|array-copy-once-horizontally|array-copy-once-vertically|array-copy-row-down|array-copy-row-up|array-copy-to-cell|array-copy-to-column|array-copy-to-row|array-copy-up|array-current-column|array-current-row|array-cursor-in-array-range|array-display-local-variables|array-end-of-field|array-expand-rows|array-field-string|array-fill-rectangle|array-forward-column|array-goto-cell|array-make-template|array-maybe-scroll-horizontally|array-mode|array-move-one-column|array-move-one-row|array-move-to-cell|array-move-to-column|array-move-to-row|array-next-row|array-normalize-cursor|array-previous-row|array-reconfigure-rows|array-update-array-position|array-update-buffer-position|array-what-position|artist-2point-get-endpoint1|artist-2point-get-endpoint2|artist-2point-get-shapeinfo|artist-arrow-point-get-direction|artist-arrow-point-get-marker|artist-arrow-point-get-orig-char|artist-arrow-point-get-state|artist-arrow-point-set-state|artist-arrows|artist-backward-char|artist-calculate-new-char|artist-calculate-new-chars|artist-charlist-to-string|artist-clear-arrow-points|artist-clear-buffer|artist-compute-key-compl-table|artist-compute-line-char|artist-compute-popup-menu-table-sub|artist-compute-popup-menu-table|artist-compute-up-event-key|artist-coord-add-new-char|artist-coord-add-saved-char|artist-coord-get-new-char|artist-coord-get-saved-char|artist-coord-get-x|artist-coord-get-y|artist-coord-set-new-char|artist-coord-set-x|artist-coord-set-y|artist-coord-win-to-buf|artist-copy-generic|artist-copy-rect|artist-copy-square|artist-current-column|artist-current-line|artist-cut-rect|artist-cut-square|artist-direction-char|artist-direction-step-x|artist-direction-step-y|artist-do-nothing|artist-down-mouse-1|artist-down-mouse-3|artist-draw-circle|artist-draw-ellipse-general|artist-draw-ellipse-with-0-height|artist-draw-ellipse|artist-draw-line|artist-draw-rect|artist-draw-region-reset|artist-draw-region-trim-line-endings|artist-draw-sline|artist-draw-square|artist-eight-point|artist-ellipse-compute-fill-info|artist-ellipse-fill-info-add-center|artist-ellipse-generate-quadrant|artist-ellipse-mirror-quadrant|artist-ellipse-point-list-add-center|artist-ellipse-remove-0-fills|artist-endpoint-get-x|artist-endpoint-get-y|artist-erase-char|artist-erase-rect|artist-event-is-shifted|artist-fc-get-fn-from-symbol|artist-fc-get-fn|artist-fc-get-keyword|artist-fc-get-symbol|artist-fc-retrieve-from-symbol-sub|artist-fc-retrieve-from-symbol|artist-ff-get-rightmost-from-xy|artist-ff-is-bottommost-line|artist-ff-is-topmost-line|artist-ff-too-far-right|artist-figlet-choose-font|artist-figlet-get-extra-args|artist-figlet-get-font-list|artist-figlet-run|artist-figlet|artist-file-to-string|artist-fill-circle|artist-fill-ellipse|artist-fill-item-get-width|artist-fill-item-get-x|artist-fill-item-get-y|artist-fill-item-set-width|artist-fill-item-set-x|artist-fill-item-set-y|artist-fill-rect|artist-fill-square|artist-find-direction|artist-find-octant|artist-flood-fill|artist-forward-char|artist-funcall|artist-get-buffer-contents-at-xy|artist-get-char-at-xy-conv|artist-get-char-at-xy|artist-get-dfdx-init-coeff|artist-get-dfdy-init-coeff|artist-get-first-non-nil-op|artist-get-last-non-nil-op|artist-get-replacement-char|artist-get-x-step-q<0|artist-get-x-step-q>=0|artist-get-y-step-q<0|artist-get-y-step-q>=0|artist-go-get-arrow-pred-from-symbol|artist-go-get-arrow-pred|artist-go-get-arrow-set-fn-from-symbol|artist-go-get-arrow-set-fn|artist-go-get-desc|artist-go-get-draw-fn-from-symbol|artist-go-get-draw-fn|artist-go-get-draw-how-from-symbol|artist-go-get-draw-how|artist-go-get-exit-fn-from-symbol|artist-go-get-exit-fn|artist-go-get-fill-fn-from-symbol|artist-go-get-fill-fn|artist-go-get-fill-pred-from-symbol|artist-go-get-fill-pred|artist-go-get-init-fn-from-symbol|artist-go-get-init-fn|artist-go-get-interval-fn-from-symbol|artist-go-get-interval-fn|artist-go-get-keyword-from-symbol|artist-go-get-keyword|artist-go-get-mode-line-from-symbol|artist-go-get-mode-line|artist-go-get-prep-fill-fn-from-symbol|artist-go-get-prep-fill-fn|artist-go-get-shifted|artist-go-get-symbol-shift-sub|artist-go-get-symbol-shift|artist-go-get-symbol|artist-go-get-undraw-fn-from-symbol|artist-go-get-undraw-fn|artist-go-get-unshifted|artist-go-retrieve-from-symbol-sub|artist-go-retrieve-from-symbol|artist-intersection-char|artist-is-in-op-list-p|artist-key-do-continously-1point|artist-key-do-continously-2points|artist-key-do-continously-common)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:artist-key-do-continously-continously|artist-key-do-continously-poly|artist-key-draw-1point|artist-key-draw-2points|artist-key-draw-common|artist-key-draw-continously|artist-key-draw-poly|artist-key-set-point-1point|artist-key-set-point-2points|artist-key-set-point-common|artist-key-set-point-continously|artist-key-set-point-poly|artist-key-set-point|artist-key-undraw-1point|artist-key-undraw-2points|artist-key-undraw-common|artist-key-undraw-continously|artist-key-undraw-poly|artist-make-2point-object|artist-make-arrow-point|artist-make-endpoint|artist-make-prev-next-op-alist|artist-mn-get-items|artist-mn-get-title|artist-mode-exit|artist-mode-init|artist-mode-line-show-curr-operation|artist-mode-off|artist-mode|artist-modify-new-chars|artist-mouse-choose-operation|artist-mouse-draw-1point|artist-mouse-draw-2points|artist-mouse-draw-continously|artist-mouse-draw-poly|artist-move-to-xy|artist-mt-get-info-part|artist-mt-get-symbol-from-keyword-sub|artist-mt-get-symbol-from-keyword|artist-mt-get-tag|artist-new-coord|artist-new-fill-item|artist-next-line|artist-nil|artist-no-arrows|artist-no-rb-set-point1|artist-no-rb-set-point2|artist-no-rb-unset-point1|artist-no-rb-unset-point2|artist-no-rb-unset-points|artist-paste|artist-pen-line|artist-pen-reset-last-xy|artist-pen-set-arrow-points|artist-pen|artist-previous-line|artist-put-pixel|artist-rect-corners-squarify|artist-replace-char|artist-replace-chars|artist-replace-string|artist-save-chars-under-point-list|artist-save-chars-under-sline|artist-select-erase-char|artist-select-fill-char|artist-select-line-char|artist-select-next-op-in-list|artist-select-op-circle|artist-select-op-copy-rectangle|artist-select-op-copy-square|artist-select-op-cut-rectangle|artist-select-op-cut-square|artist-select-op-ellipse|artist-select-op-erase-char|artist-select-op-erase-rectangle|artist-select-op-flood-fill|artist-select-op-line|artist-select-op-paste|artist-select-op-pen-line|artist-select-op-poly-line|artist-select-op-rectangle|artist-select-op-spray-can|artist-select-op-spray-set-size|artist-select-op-square|artist-select-op-straight-line|artist-select-op-straight-poly-line|artist-select-op-text-overwrite|artist-select-op-text-see-thru|artist-select-op-vaporize-line|artist-select-op-vaporize-lines|artist-select-operation|artist-select-prev-op-in-list|artist-select-spray-chars|artist-set-arrow-points-for-2points|artist-set-arrow-points-for-poly|artist-set-pointer-shape|artist-shift-has-changed|artist-sline|artist-spray-clear-circle|artist-spray-get-interval|artist-spray-random-points|artist-spray-set-radius|artist-spray|artist-straight-calculate-length|artist-string-split|artist-string-to-charlist|artist-string-to-file|artist-submit-bug-report|artist-system|artist-t-if-fill-char-set|artist-t|artist-text-insert-common|artist-text-insert-overwrite|artist-text-insert-see-thru|artist-text-overwrite|artist-text-see-thru|artist-toggle-borderless-shapes|artist-toggle-first-arrow|artist-toggle-rubber-banding|artist-toggle-second-arrow|artist-toggle-trim-line-endings|artist-undraw-circle|artist-undraw-ellipse|artist-undraw-line|artist-undraw-rect|artist-undraw-sline|artist-undraw-square|artist-unintersection-char|artist-uniq|artist-update-display|artist-update-pointer-shape|artist-vap-find-endpoint|artist-vap-find-endpoints-horiz|artist-vap-find-endpoints-nwse|artist-vap-find-endpoints-swne|artist-vap-find-endpoints-vert|artist-vap-find-endpoints|artist-vap-group-in-pairs|artist-vaporize-by-endpoints|artist-vaporize-line|artist-vaporize-lines|asm-calculate-indentation|asm-colon|asm-comment|asm-indent-line|asm-mode|asm-newline|assert|assoc\\\\\\\\*|assoc-if-not|assoc-if|assoc-ignore-case|assoc-ignore-representation|async-shell-command|atomic-change-group|auth-source--aget|auth-source--aput-1|auth-source--aput|auth-source-backend-child-p|auth-source-backend-list-p|auth-source-backend-p|auth-source-backend-parse-parameters|auth-source-backend-parse|auth-source-backend|auth-source-current-line|auth-source-delete|auth-source-do-debug|auth-source-do-trivia|auth-source-do-warn|auth-source-ensure-strings|auth-source-epa-extract-gpg-token|auth-source-epa-make-gpg-token|auth-source-forget\\\\\\\\+|auth-source-forget-all-cached|auth-source-forget|auth-source-format-cache-entry|auth-source-format-prompt|auth-source-macos-keychain-create|auth-source-macos-keychain-result-append|auth-source-macos-keychain-search-items|auth-source-macos-keychain-search|auth-source-netrc-create|auth-source-netrc-element-or-first|auth-source-netrc-normalize|auth-source-netrc-parse-entries|auth-source-netrc-parse-next-interesting|auth-source-netrc-parse-one|auth-source-netrc-parse|auth-source-netrc-saver|auth-source-netrc-search|auth-source-pick-first-password|auth-source-plstore-create|auth-source-plstore-search|auth-source-read-char-choice|auth-source-recall|auth-source-remember|auth-source-remembered-p|auth-source-search-backends|auth-source-search-collection|auth-source-search|auth-source-secrets-create|auth-source-secrets-listify-pattern|auth-source-secrets-search|auth-source-specmatchp|auth-source-token-passphrase-callback-function|auth-source-user-and-password|auth-source-user-or-password|auto-coding-alist-lookup|auto-coding-regexp-alist-lookup|auto-compose-chars|auto-composition-mode|auto-compression-mode|auto-encryption-mode|auto-fill-mode|auto-image-file-mode|auto-insert-mode|auto-insert|auto-lower-mode|auto-raise-mode|auto-revert-active-p|auto-revert-buffers|auto-revert-handler|auto-revert-mode|auto-revert-notify-add-watch|auto-revert-notify-handler|auto-revert-notify-rm-watch|auto-revert-set-timer|auto-revert-tail-handler|auto-revert-tail-mode|autoarg-kp-digit-argument|autoarg-kp-mode|autoarg-mode|autoarg-terminate|autoconf-current-defun-function|autoconf-mode|autodoc-font-lock-keywords|autodoc-font-lock-line-markup|autoload-coding-system|autoload-rubric|avl-tree--check-node|avl-tree--check|avl-tree--cmpfun--cmacro|avl-tree--cmpfun|avl-tree--create--cmacro|avl-tree--create|avl-tree--del-balance|avl-tree--dir-to-sign|avl-tree--do-copy|avl-tree--do-del-internal|avl-tree--do-delete|avl-tree--do-enter|avl-tree--dummyroot--cmacro|avl-tree--dummyroot|avl-tree--enter-balance|avl-tree--mapc|avl-tree--node-balance--cmacro|avl-tree--node-balance|avl-tree--node-branch|avl-tree--node-create--cmacro|avl-tree--node-create|avl-tree--node-data--cmacro|avl-tree--node-data|avl-tree--node-left--cmacro|avl-tree--node-left|avl-tree--node-right--cmacro|avl-tree--node-right|avl-tree--root|avl-tree--sign-to-dir|avl-tree--stack-create|avl-tree--stack-p--cmacro|avl-tree--stack-p|avl-tree--stack-repopulate|avl-tree--stack-reverse--cmacro|avl-tree--stack-reverse|avl-tree--stack-store--cmacro|avl-tree--stack-store|avl-tree--switch-dir|avl-tree-clear|avl-tree-compare-function|avl-tree-copy|avl-tree-create|avl-tree-delete|avl-tree-empty|avl-tree-enter|avl-tree-first|avl-tree-flatten|avl-tree-last|avl-tree-map|avl-tree-mapc|avl-tree-mapcar|avl-tree-mapf|avl-tree-member-p|avl-tree-member|avl-tree-p--cmacro|avl-tree-p|avl-tree-size|avl-tree-stack-empty-p|avl-tree-stack-first|avl-tree-stack-p|avl-tree-stack-pop|avl-tree-stack|awk-mode|babel-as-string|background-color-at-point|backquote-delay-process|backquote-list\\\\\\\\*-function|backquote-list\\\\\\\\*-macro|backquote-list\\\\\\\\*|backquote-listify|backquote-process|backquote|backtrace--locals|backtrace-eval|backup-buffer-copy|backup-extract-version|backward-delete-char|backward-ifdef|backward-kill-paragraph|backward-kill-sentence|backward-kill-sexp|backward-kill-word|backward-page|backward-paragraph|backward-sentence|backward-text-line|backward-up-list|bad-package-check|balance-windows-1|balance-windows-2|balance-windows-area-adjust|basic-save-buffer-1|basic-save-buffer-2|basic-save-buffer|bat-cmd-help|bat-mode|bat-run-args|bat-run|bat-template|batch-byte-compile-file|batch-byte-compile-if-not-done|batch-byte-recompile-directory|batch-info-validate|batch-texinfo-format|batch-titdic-convert|batch-unrmail|batch-update-autoloads|battery-bsd-apm|battery-format|battery-linux-proc-acpi|battery-linux-proc-apm|battery-linux-sysfs|battery-pmset|battery-search-for-one-match-in-files|battery-update-handler|battery-update|battery|bb-bol|bb-done|bb-down|bb-eol|bb-goto|bb-init-board|bb-insert-board|bb-left|bb-outside-box|bb-place-ball|bb-right|bb-romp|bb-show-bogus-balls-2|bb-show-bogus-balls|bb-trace-ray-2|bb-trace-ray|bb-up|bb-update-board|beginning-of-buffer-other-window|beginning-of-defun-raw|beginning-of-icon-defun|beginning-of-line-text|beginning-of-sexp|beginning-of-thing|beginning-of-visual-line|benchmark-elapse|benchmark-run-compiled|benchmark-run|benchmark|bib-capitalize-title-region|bib-capitalize-title|bib-find-key|bib-mode|bibtex-Article|bibtex-Book|bibtex-BookInBook|bibtex-Booklet|bibtex-Collection|bibtex-InBook|bibtex-InCollection|bibtex-InProceedings|bibtex-InReference|bibtex-MVBook|bibtex-MVCollection|bibtex-MVProceedings|bibtex-MVReference|bibtex-Manual|bibtex-MastersThesis|bibtex-Misc|bibtex-Online|bibtex-Patent|bibtex-Periodical|bibtex-PhdThesis|bibtex-Preamble|bibtex-Proceedings|bibtex-Reference|bibtex-Report|bibtex-String|bibtex-SuppBook|bibtex-SuppCollection|bibtex-SuppPeriodical|bibtex-TechReport|bibtex-Thesis|bibtex-Unpublished|bibtex-autofill-entry|bibtex-autokey-abbrev|bibtex-autokey-demangle-name|bibtex-autokey-demangle-title|bibtex-autokey-get-field|bibtex-autokey-get-names|bibtex-autokey-get-title|bibtex-autokey-get-year|bibtex-beginning-first-field|bibtex-beginning-of-entry|bibtex-beginning-of-field|bibtex-beginning-of-first-entry|bibtex-button-action|bibtex-button|bibtex-clean-entry|bibtex-complete-crossref-cleanup|bibtex-complete-string-cleanup|bibtex-complete|bibtex-completion-at-point-function|bibtex-convert-alien|bibtex-copy-entry-as-kill|bibtex-copy-field-as-kill|bibtex-copy-summary-as-kill|bibtex-count-entries|bibtex-current-line|bibtex-delete-whitespace|bibtex-display-entries|bibtex-dist|bibtex-edit-menu|bibtex-empty-field|bibtex-enclosing-field|bibtex-end-of-entry|bibtex-end-of-field|bibtex-end-of-name-in-field|bibtex-end-of-string|bibtex-end-of-text-in-field|bibtex-end-of-text-in-string|bibtex-entry-alist|bibtex-entry-index|bibtex-entry-left-delimiter|bibtex-entry-right-delimiter|bibtex-entry-update|bibtex-entry|bibtex-field-left-delimiter|bibtex-field-list|bibtex-field-re-init|bibtex-field-right-delimiter|bibtex-fill-entry|bibtex-fill-field-bounds|bibtex-fill-field|bibtex-find-crossref|bibtex-find-entry|bibtex-find-text-internal|bibtex-find-text|bibtex-flash-head|bibtex-font-lock-cite|bibtex-font-lock-crossref|bibtex-font-lock-url|bibtex-format-entry|bibtex-generate-autokey|bibtex-global-key-alist|bibtex-goto-line|bibtex-init-sort-entry-class-alist|bibtex-initialize|bibtex-insert-kill|bibtex-ispell-abstract|bibtex-ispell-entry|bibtex-key-in-head|bibtex-kill-entry|bibtex-kill-field|bibtex-lessp|bibtex-make-field|bibtex-make-optional-field|bibtex-map-entries|bibtex-mark-entry|bibtex-mode|bibtex-move-outside-of-entry|bibtex-name-in-field|bibtex-narrow-to-entry|bibtex-next-field|bibtex-parse-association|bibtex-parse-buffers-stealthily|bibtex-parse-entry|bibtex-parse-field-name|bibtex-parse-field-string|bibtex-parse-field-text|bibtex-parse-field|bibtex-parse-keys|bibtex-parse-preamble|bibtex-parse-string-postfix|bibtex-parse-string-prefix|bibtex-parse-string|bibtex-parse-strings|bibtex-pop-next|bibtex-pop-previous|bibtex-pop|bibtex-prepare-new-entry|bibtex-print-help-message|bibtex-progress-message|bibtex-read-key|bibtex-read-string-key|bibtex-realign|bibtex-reference-key-in-string|bibtex-reformat|bibtex-remove-OPT-or-ALT|bibtex-remove-delimiters|bibtex-reposition-window|bibtex-search-backward-field|bibtex-search-crossref|bibtex-search-entries|bibtex-search-entry|bibtex-search-forward-field|bibtex-search-forward-string|bibtex-set-dialect|bibtex-skip-to-valid-entry|bibtex-sort-buffer|bibtex-start-of-field|bibtex-start-of-name-in-field|bibtex-start-of-text-in-field|bibtex-start-of-text-in-string|bibtex-string-files-init|bibtex-string=|bibtex-strings|bibtex-style-calculate-indentation|bibtex-style-indent-line|bibtex-style-mode|bibtex-summary|bibtex-text-in-field-bounds|bibtex-text-in-field|bibtex-text-in-string|bibtex-type-in-head|bibtex-url|bibtex-valid-entry|bibtex-validate-globally|bibtex-validate|bibtex-vec-incr|bibtex-vec-push|bibtex-yank-pop|bibtex-yank|bidi-find-overridden-directionality)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:bidi-resolved-levels|binary-overwrite-mode|bindat--length-group|bindat--pack-group|bindat--pack-item|bindat--pack-u16|bindat--pack-u16r|bindat--pack-u24|bindat--pack-u24r|bindat--pack-u32|bindat--pack-u32r|bindat--pack-u8|bindat--unpack-group|bindat--unpack-item|bindat--unpack-u16|bindat--unpack-u16r|bindat--unpack-u24|bindat--unpack-u24r|bindat--unpack-u32|bindat--unpack-u32r|bindat--unpack-u8|bindat-format-vector|bindat-vector-to-dec|bindat-vector-to-hex|bindings--define-key|binhex-char-int|binhex-char-map|binhex-decode-region-external|binhex-decode-region-internal|binhex-decode-region|binhex-header|binhex-insert-char|binhex-push-char|binhex-string-big-endian|binhex-string-little-endian|binhex-update-crc|binhex-verify-crc|blackbox-mode|blackbox-redefine-key|blackbox|blink-cursor-check|blink-cursor-end|blink-cursor-mode|blink-cursor-start|blink-cursor-suspend|blink-cursor-timer-function|blink-matching-check-mismatch|blink-paren-post-self-insert-function|block|bookmark--jump-via|bookmark-alist-from-buffer|bookmark-all-names|bookmark-bmenu-1-window|bookmark-bmenu-2-window|bookmark-bmenu-any-marks|bookmark-bmenu-backup-unmark|bookmark-bmenu-bookmark|bookmark-bmenu-delete-backwards|bookmark-bmenu-delete|bookmark-bmenu-edit-annotation|bookmark-bmenu-ensure-position|bookmark-bmenu-execute-deletions|bookmark-bmenu-filter-alist-by-regexp|bookmark-bmenu-goto-bookmark|bookmark-bmenu-hide-filenames|bookmark-bmenu-list|bookmark-bmenu-load|bookmark-bmenu-locate|bookmark-bmenu-mark|bookmark-bmenu-mode|bookmark-bmenu-other-window-with-mouse|bookmark-bmenu-other-window|bookmark-bmenu-relocate|bookmark-bmenu-rename|bookmark-bmenu-save|bookmark-bmenu-search|bookmark-bmenu-select|bookmark-bmenu-set-header|bookmark-bmenu-show-all-annotations|bookmark-bmenu-show-annotation|bookmark-bmenu-show-filenames|bookmark-bmenu-surreptitiously-rebuild-list|bookmark-bmenu-switch-other-window|bookmark-bmenu-this-window|bookmark-bmenu-toggle-filenames|bookmark-bmenu-unmark|bookmark-buffer-file-name|bookmark-buffer-name|bookmark-completing-read|bookmark-default-annotation-text|bookmark-default-handler|bookmark-delete|bookmark-edit-annotation-mode|bookmark-edit-annotation|bookmark-exit-hook-internal|bookmark-get-annotation|bookmark-get-bookmark-record|bookmark-get-bookmark|bookmark-get-filename|bookmark-get-front-context-string|bookmark-get-handler|bookmark-get-position|bookmark-get-rear-context-string|bookmark-grok-file-format-version|bookmark-handle-bookmark|bookmark-import-new-list|bookmark-insert-annotation|bookmark-insert-file-format-version-stamp|bookmark-insert-location|bookmark-insert|bookmark-jump-noselect|bookmark-jump-other-window|bookmark-jump|bookmark-kill-line|bookmark-load|bookmark-locate|bookmark-location|bookmark-make-record-default|bookmark-make-record|bookmark-map|bookmark-maybe-historicize-string|bookmark-maybe-load-default-file|bookmark-maybe-message|bookmark-maybe-rename|bookmark-maybe-sort-alist|bookmark-maybe-upgrade-file-format|bookmark-menu-popup-paned-menu|bookmark-name-from-full-record|bookmark-prop-get|bookmark-prop-set|bookmark-relocate|bookmark-rename|bookmark-save|bookmark-send-edited-annotation|bookmark-set-annotation|bookmark-set-filename|bookmark-set-front-context-string|bookmark-set-name|bookmark-set-position|bookmark-set-rear-context-string|bookmark-set|bookmark-show-all-annotations|bookmark-show-annotation|bookmark-store|bookmark-time-to-save-p|bookmark-unload-function|bookmark-upgrade-file-format-from-0|bookmark-upgrade-version-0-alist|bookmark-write-file|bookmark-write|bookmark-yank-word|bool-vector|bound-and-true-p|bounds-of-thing-at-point|bovinate|bovine-grammar-mode|browse-url-at-mouse|browse-url-at-point|browse-url-can-use-xdg-open|browse-url-cci|browse-url-chromium|browse-url-default-browser|browse-url-default-macosx-browser|browse-url-default-windows-browser|browse-url-delete-temp-file|browse-url-elinks-new-window|browse-url-elinks-sentinel|browse-url-elinks|browse-url-emacs-display|browse-url-emacs|browse-url-encode-url|browse-url-epiphany-sentinel|browse-url-epiphany|browse-url-file-url|browse-url-firefox-sentinel|browse-url-firefox|browse-url-galeon-sentinel|browse-url-galeon|browse-url-generic|browse-url-gnome-moz|browse-url-interactive-arg|browse-url-kde|browse-url-mail|browse-url-maybe-new-window|browse-url-mosaic|browse-url-mozilla-sentinel|browse-url-mozilla|browse-url-netscape-reload|browse-url-netscape-send|browse-url-netscape-sentinel|browse-url-netscape|browse-url-of-buffer|browse-url-of-dired-file|browse-url-of-file|browse-url-of-region|browse-url-process-environment|browse-url-text-emacs|browse-url-text-xterm|browse-url-url-at-point|browse-url-url-encode-chars|browse-url-w3-gnudoit|browse-url-w3|browse-url-xdg-open|browse-url|browse-web|bs--configuration-name-for-prefix-arg|bs--create-header-line|bs--current-buffer|bs--current-config-message|bs--down|bs--format-aux|bs--get-file-name|bs--get-marked-string|bs--get-mode-name|bs--get-modified-string|bs--get-name-length|bs--get-name|bs--get-readonly-string|bs--get-size-string|bs--get-value|bs--goto-current-buffer|bs--insert-one-entry|bs--make-header-match-string|bs--mark-unmark|bs--nth-wrapper|bs--redisplay|bs--remove-hooks|bs--restore-window-config|bs--set-toggle-to-show|bs--set-window-height|bs--show-config-message|bs--show-header|bs--show-with-configuration|bs--sort-by-filename|bs--sort-by-mode|bs--sort-by-name|bs--sort-by-size|bs--track-window-changes|bs--up|bs--update-current-line|bs-abort|bs-apply-sort-faces|bs-buffer-list|bs-buffer-sort|bs-bury-buffer|bs-clear-modified|bs-config--all-intern-last|bs-config--all|bs-config--files-and-scratch|bs-config--only-files|bs-config-clear|bs-customize|bs-cycle-next|bs-cycle-previous|bs-define-sort-function|bs-delete-backward|bs-delete|bs-down|bs-help|bs-kill|bs-mark-current|bs-message-without-log|bs-mode|bs-mouse-select-other-frame|bs-mouse-select|bs-next-buffer|bs-next-config-aux|bs-next-config|bs-previous-buffer|bs-refresh|bs-save|bs-select-in-one-window|bs-select-next-configuration|bs-select-other-frame|bs-select-other-window|bs-select|bs-set-configuration-and-refresh|bs-set-configuration|bs-set-current-buffer-to-show-always|bs-set-current-buffer-to-show-never|bs-show-in-buffer|bs-show-sorted|bs-show|bs-sort-buffer-interns-are-last|bs-tmp-select-other-window|bs-toggle-current-to-show|bs-toggle-readonly|bs-toggle-show-all|bs-unload-function|bs-unmark-current|bs-up|bs-view|bs-visit-tags-table|bs-visits-non-file|bubbles--char-at|bubbles--col|bubbles--colors|bubbles--compute-offsets|bubbles--count|bubbles--empty-char|bubbles--game-over|bubbles--goto|bubbles--grid-height|bubbles--grid-width|bubbles--initialize-faces|bubbles--initialize-images|bubbles--initialize|bubbles--mark-direct-neighbors|bubbles--mark-neighborhood|bubbles--neighborhood-available|bubbles--remove-overlays|bubbles--reset-score|bubbles--row|bubbles--set-faces|bubbles--shift-mode|bubbles--shift|bubbles--show-images|bubbles--show-scores|bubbles--update-faces-or-images|bubbles--update-neighborhood-score|bubbles--update-score|bubbles-customize|bubbles-mode|bubbles-plop|bubbles-quit|bubbles-save-settings|bubbles-set-game-difficult|bubbles-set-game-easy|bubbles-set-game-hard|bubbles-set-game-medium|bubbles-set-game-userdefined|bubbles-set-graphics-theme-ascii|bubbles-set-graphics-theme-balls|bubbles-set-graphics-theme-circles|bubbles-set-graphics-theme-diamonds|bubbles-set-graphics-theme-emacs|bubbles-set-graphics-theme-squares|bubbles-undo|bubbles|buffer-face-mode-invoke|buffer-face-mode|buffer-face-set|buffer-face-toggle|buffer-has-markers-at|buffer-menu-open|buffer-menu-other-window|buffer-menu|buffer-stale--default-function|buffer-substring--filter|buffer-substring-with-bidi-context|bug-reference-fontify|bug-reference-mode|bug-reference-prog-mode|bug-reference-push-button|bug-reference-set-overlay-properties|bug-reference-unfontify|build-mail-abbrevs|build-mail-aliases|bury-buffer-internal|butterfly|button--area-button-p|button--area-button-string|button-category-symbol|byte-code|byte-compile--declare-var|byte-compile--reify-function|byte-compile-abbreviate-file|byte-compile-and-folded|byte-compile-and-recursion|byte-compile-and|byte-compile-annotate-call-tree|byte-compile-arglist-signature-string|byte-compile-arglist-signature|byte-compile-arglist-signatures-congruent-p|byte-compile-arglist-vars|byte-compile-arglist-warn|byte-compile-associative|byte-compile-autoload|byte-compile-backward-char|byte-compile-backward-word|byte-compile-bind|byte-compile-body-do-effect|byte-compile-body|byte-compile-butlast|byte-compile-callargs-warn|byte-compile-catch|byte-compile-char-before|byte-compile-check-lambda-list|byte-compile-check-variable|byte-compile-cl-file-p|byte-compile-cl-warn|byte-compile-close-variables|byte-compile-concat|byte-compile-cond|byte-compile-condition-case--new|byte-compile-condition-case--old|byte-compile-condition-case|byte-compile-constant|byte-compile-constants-vector|byte-compile-defvar|byte-compile-delete-first|byte-compile-dest-file|byte-compile-disable-warning|byte-compile-discard|byte-compile-dynamic-variable-bind|byte-compile-dynamic-variable-op|byte-compile-enable-warning|byte-compile-eval-before-compile|byte-compile-eval|byte-compile-fdefinition|byte-compile-file-form-autoload|byte-compile-file-form-custom-declare-variable|byte-compile-file-form-defalias|byte-compile-file-form-define-abbrev-table|byte-compile-file-form-defmumble|byte-compile-file-form-defvar|byte-compile-file-form-eval|byte-compile-file-form-progn|byte-compile-file-form-require|byte-compile-file-form-with-no-warnings|byte-compile-file-form|byte-compile-find-bound-condition|byte-compile-find-cl-functions|byte-compile-fix-header|byte-compile-flush-pending|byte-compile-form-do-effect|byte-compile-form-make-variable-buffer-local|byte-compile-form|byte-compile-format-warn|byte-compile-from-buffer|byte-compile-fset|byte-compile-funcall|byte-compile-function-form|byte-compile-function-warn|byte-compile-get-closed-var|byte-compile-get-constant|byte-compile-goto-if|byte-compile-goto|byte-compile-if|byte-compile-indent-to|byte-compile-inline-expand|byte-compile-inline-lapcode|byte-compile-insert-header|byte-compile-insert|byte-compile-keep-pending|byte-compile-lambda-form|byte-compile-lambda|byte-compile-lapcode|byte-compile-let|byte-compile-list|byte-compile-log-1|byte-compile-log-file|byte-compile-log-lap-1|byte-compile-log-lap|byte-compile-log-warning|byte-compile-log|byte-compile-macroexpand-declare-function|byte-compile-make-args-desc|byte-compile-make-closure|byte-compile-make-lambda-lexenv|byte-compile-make-obsolete-variable|byte-compile-make-tag|byte-compile-make-variable-buffer-local|byte-compile-maybe-guarded|byte-compile-minus|byte-compile-nconc|byte-compile-negated|byte-compile-negation-optimizer|byte-compile-nilconstp|byte-compile-no-args|byte-compile-no-warnings|byte-compile-nogroup-warn|byte-compile-noop|byte-compile-normal-call|byte-compile-not-lexical-var-p|byte-compile-one-arg|byte-compile-one-or-two-args|byte-compile-or-recursion|byte-compile-or|byte-compile-out-tag|byte-compile-out-toplevel|byte-compile-out|byte-compile-output-as-comment|byte-compile-output-docform|byte-compile-output-file-form|byte-compile-preprocess|byte-compile-print-syms|byte-compile-prog1|byte-compile-prog2|byte-compile-progn|byte-compile-push-binding-init|byte-compile-push-bytecode-const2|byte-compile-push-bytecodes|byte-compile-push-constant|byte-compile-quo|byte-compile-quote|byte-compile-recurse-toplevel|byte-compile-refresh-preloaded|byte-compile-report-error|byte-compile-report-ops|byte-compile-save-current-buffer|byte-compile-save-excursion|byte-compile-save-restriction|byte-compile-set-default|byte-compile-set-symbol-position|byte-compile-setq-default|byte-compile-setq|byte-compile-sexp|byte-compile-stack-adjustment|byte-compile-stack-ref|byte-compile-stack-set|byte-compile-subr-wrong-args|byte-compile-three-args|byte-compile-top-level-body|byte-compile-top-level|byte-compile-toplevel-file-form|byte-compile-trueconstp|byte-compile-two-args|byte-compile-two-or-three-args|byte-compile-unbind|byte-compile-unfold-bcf|byte-compile-unfold-lambda|byte-compile-unwind-protect|byte-compile-variable-ref)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:byte-compile-variable-set|byte-compile-warn-about-unresolved-functions|byte-compile-warn-obsolete|byte-compile-warn|byte-compile-warning-enabled-p|byte-compile-warning-prefix|byte-compile-warning-series|byte-compile-while|byte-compile-zero-or-one-arg|byte-compiler-base-file-name|byte-decompile-bytecode-1|byte-decompile-bytecode|byte-defop-compiler-1|byte-defop-compiler|byte-defop|byte-extrude-byte-code-vectors|byte-force-recompile|byte-optimize-all-constp|byte-optimize-and|byte-optimize-apply|byte-optimize-approx-equal|byte-optimize-associative-math|byte-optimize-binary-predicate|byte-optimize-body|byte-optimize-cond|byte-optimize-delay-constants-math|byte-optimize-divide|byte-optimize-form-code-walker|byte-optimize-form|byte-optimize-funcall|byte-optimize-identity|byte-optimize-if|byte-optimize-inline-handler|byte-optimize-lapcode|byte-optimize-letX|byte-optimize-logmumble|byte-optimize-minus|byte-optimize-multiply|byte-optimize-nonassociative-math|byte-optimize-nth|byte-optimize-nthcdr|byte-optimize-or|byte-optimize-plus|byte-optimize-predicate|byte-optimize-quote|byte-optimize-set|byte-optimize-while|byte-recompile-file|byteorder|c\\\\\\\\+\\\\\\\\+-font-lock-keywords-2|c\\\\\\\\+\\\\\\\\+-font-lock-keywords-3|c\\\\\\\\+\\\\\\\\+-font-lock-keywords|c\\\\\\\\+\\\\\\\\+-mode|c--macroexpand-all|c-add-class-syntax|c-add-language|c-add-stmt-syntax|c-add-style|c-add-syntax|c-add-type|c-advise-fl-for-region|c-after-change-check-<>-operators|c-after-change|c-after-conditional|c-after-font-lock-init|c-after-special-operator-id|c-after-statement-terminator-p|c-append-backslashes-forward|c-append-lower-brace-pair-to-state-cache|c-append-syntax|c-append-to-state-cache|c-ascertain-following-literal|c-ascertain-preceding-literal|c-at-expression-start-p|c-at-macro-vsemi-p|c-at-statement-start-p|c-at-toplevel-p|c-at-vsemi-p|c-awk-menu|c-back-over-illiterals|c-back-over-member-initializer-braces|c-back-over-member-initializers|c-backslash-region|c-backward-<>-arglist|c-backward-colon-prefixed-type|c-backward-comments|c-backward-conditional|c-backward-into-nomenclature|c-backward-over-enum-header|c-backward-sexp|c-backward-single-comment|c-backward-sws|c-backward-syntactic-ws|c-backward-to-block-anchor|c-backward-to-decl-anchor|c-backward-to-nth-BOF-\\\\\\\\{|c-backward-token-1|c-backward-token-2|c-basic-common-init|c-before-change-check-<>-operators|c-before-change|c-before-hack-hook|c-beginning-of-current-token|c-beginning-of-decl-1|c-beginning-of-defun-1|c-beginning-of-defun|c-beginning-of-inheritance-list|c-beginning-of-macro|c-beginning-of-sentence-in-comment|c-beginning-of-sentence-in-string|c-beginning-of-statement-1|c-beginning-of-statement|c-beginning-of-syntax|c-benign-error|c-bind-special-erase-keys|c-block-in-arglist-dwim|c-bos-pop-state-and-retry|c-bos-pop-state|c-bos-push-state|c-bos-report-error|c-bos-restore-pos|c-bos-save-error-info|c-bos-save-pos|c-brace-anchor-point|c-brace-newlines|c-c\\\\\\\\+\\\\\\\\+-menu|c-c-menu|c-calc-comment-indent|c-calc-offset|c-calculate-state|c-change-set-fl-decl-start|c-cheap-inside-bracelist-p|c-check-type|c-clear-<-pair-props-if-match-after|c-clear-<-pair-props|c-clear-<>-pair-props|c-clear->-pair-props-if-match-before|c-clear->-pair-props|c-clear-c-type-property|c-clear-char-properties|c-clear-char-property-with-value-function|c-clear-char-property-with-value|c-clear-char-property|c-clear-cpp-delimiters|c-clear-found-types|c-collect-line-comments|c-comment-indent|c-comment-line-break-function|c-comment-out-cpps|c-common-init|c-compose-keywords-list|c-concat-separated|c-constant-symbol|c-context-line-break|c-context-open-line|c-context-set-fl-decl-start|c-count-cfss|c-cpp-define-name|c-crosses-statement-barrier-p|c-debug-add-face|c-debug-parse-state-double-cons|c-debug-parse-state|c-debug-put-decl-spot-faces|c-debug-remove-decl-spot-faces|c-debug-remove-face|c-debug-sws-msg|c-declaration-limits|c-declare-lang-variables|c-default-value-sentence-end|c-define-abbrev-table|c-define-lang-constant|c-defun-name|c-delete-and-extract-region|c-delete-backslashes-forward|c-delete-overlay|c-determine-\\\\\\\\+ve-limit|c-determine-limit-get-base|c-determine-limit|c-do-auto-fill|c-down-conditional-with-else|c-down-conditional|c-down-list-backward|c-down-list-forward|c-echo-parsing-error|c-electric-backspace|c-electric-brace|c-electric-colon|c-electric-continued-statement|c-electric-delete-forward|c-electric-delete|c-electric-indent-local-mode-hook|c-electric-indent-mode-hook|c-electric-lt-gt|c-electric-paren|c-electric-pound|c-electric-semi&comma|c-electric-slash|c-electric-star|c-end-of-current-token|c-end-of-decl-1|c-end-of-defun-1|c-end-of-defun|c-end-of-macro|c-end-of-sentence-in-comment|c-end-of-sentence-in-string|c-end-of-statement|c-evaluate-offset|c-extend-after-change-region|c-extend-font-lock-region-for-macros|c-extend-region-for-CPP|c-face-name-p|c-fdoc-shift-type-backward|c-fill-paragraph|c-find-assignment-for-mode|c-find-decl-prefix-search|c-find-decl-spots|c-find-invalid-doc-markup|c-fn-region-is-active-p|c-font-lock-<>-arglists|c-font-lock-c\\\\\\\\+\\\\\\\\+-new|c-font-lock-complex-decl-prepare|c-font-lock-declarations|c-font-lock-declarators|c-font-lock-doc-comments|c-font-lock-enclosing-decls|c-font-lock-enum-tail|c-font-lock-fontify-region|c-font-lock-init|c-font-lock-invalid-string|c-font-lock-keywords-2|c-font-lock-keywords-3|c-font-lock-keywords|c-font-lock-labels|c-font-lock-objc-method|c-font-lock-objc-methods|c-fontify-recorded-types-and-refs|c-fontify-types-and-refs|c-forward-<>-arglist-recur|c-forward-<>-arglist|c-forward-annotation|c-forward-comments|c-forward-conditional|c-forward-decl-or-cast-1|c-forward-id-comma-list|c-forward-into-nomenclature|c-forward-keyword-clause|c-forward-keyword-prefixed-id|c-forward-label|c-forward-name|c-forward-objc-directive|c-forward-over-cpp-define-id|c-forward-over-illiterals|c-forward-sexp|c-forward-single-comment|c-forward-sws|c-forward-syntactic-ws|c-forward-to-cpp-define-body|c-forward-to-nth-EOF-\\\\\\\\}|c-forward-token-1|c-forward-token-2|c-forward-type|c-get-cache-scan-pos|c-get-char-property|c-get-current-file|c-get-lang-constant|c-get-offset|c-get-style-variables|c-get-syntactic-indentation|c-gnu-impose-minimum|c-go-down-list-backward|c-go-down-list-forward|c-go-list-backward|c-go-list-forward|c-go-up-list-backward|c-go-up-list-forward|c-got-face-at|c-guess-accumulate-offset|c-guess-accumulate|c-guess-basic-syntax|c-guess-buffer-no-install|c-guess-buffer|c-guess-continued-construct|c-guess-current-offset|c-guess-dump-accumulator|c-guess-dump-guessed-style|c-guess-dump-guessed-values|c-guess-empty-line-p|c-guess-examine|c-guess-fill-prefix|c-guess-guess|c-guess-guessed-syntactic-symbols|c-guess-install|c-guess-make-basic-offset|c-guess-make-offsets-alist|c-guess-make-style|c-guess-merge-offsets-alists|c-guess-no-install|c-guess-region-no-install|c-guess-region|c-guess-reset-accumulator|c-guess-sort-accumulator|c-guess-style-name|c-guess-symbolize-integer|c-guess-symbolize-offsets-alist|c-guess-view-mark-guessed-entries|c-guess-view-reorder-offsets-alist-in-style|c-guess-view|c-guess|c-hungry-backspace|c-hungry-delete-backwards|c-hungry-delete-forward|c-hungry-delete|c-idl-menu|c-in-comment-line-prefix-p|c-in-function-trailer-p|c-in-gcc-asm-p|c-in-knr-argdecl|c-in-literal|c-in-method-def-p|c-indent-command|c-indent-defun|c-indent-exp|c-indent-line-or-region|c-indent-line|c-indent-multi-line-block|c-indent-new-comment-line|c-indent-one-line-block|c-indent-region|c-init-language-vars-for|c-initialize-builtin-style|c-initialize-cc-mode|c-inside-bracelist-p|c-int-to-char|c-intersect-lists|c-invalidate-find-decl-cache|c-invalidate-macro-cache|c-invalidate-state-cache-1|c-invalidate-state-cache|c-invalidate-sws-region-after|c-java-menu|c-just-after-func-arglist-p|c-keep-region-active|c-keyword-member|c-keyword-sym|c-lang-const|c-lang-defconst-eval-immediately|c-lang-defconst|c-lang-major-mode-is|c-langelem-2nd-pos|c-langelem-col|c-langelem-pos|c-langelem-sym|c-last-command-char|c-least-enclosing-brace|c-leave-cc-mode-mode|c-lineup-C-comments|c-lineup-ObjC-method-args-2|c-lineup-ObjC-method-args|c-lineup-ObjC-method-call-colons|c-lineup-ObjC-method-call|c-lineup-after-whitesmith-blocks|c-lineup-argcont-scan|c-lineup-argcont|c-lineup-arglist-close-under-paren|c-lineup-arglist-intro-after-paren|c-lineup-arglist-operators|c-lineup-arglist|c-lineup-assignments|c-lineup-cascaded-calls|c-lineup-close-paren|c-lineup-comment|c-lineup-cpp-define|c-lineup-dont-change|c-lineup-gcc-asm-reg|c-lineup-gnu-DEFUN-intro-cont|c-lineup-inexpr-block|c-lineup-java-inher|c-lineup-java-throws|c-lineup-knr-region-comment|c-lineup-math|c-lineup-multi-inher|c-lineup-respect-col-0|c-lineup-runin-statements|c-lineup-streamop|c-lineup-string-cont|c-lineup-template-args|c-lineup-topmost-intro-cont|c-lineup-whitesmith-in-block|c-list-found-types|c-literal-limits-fast|c-literal-limits|c-literal-type|c-looking-at-bos|c-looking-at-decl-block|c-looking-at-inexpr-block-backward|c-looking-at-inexpr-block|c-looking-at-non-alphnumspace|c-looking-at-special-brace-list|c-lookup-lists|c-macro-display-buffer|c-macro-expand|c-macro-expansion|c-macro-is-genuine-p|c-macro-vsemi-status-unknown-p|c-major-mode-is|c-make-bare-char-alt|c-make-font-lock-BO-decl-search-function|c-make-font-lock-context-search-function|c-make-font-lock-extra-types-blurb|c-make-font-lock-search-form|c-make-font-lock-search-function|c-make-inherited-keymap|c-make-inverse-face|c-make-keywords-re|c-make-macro-with-semi-re|c-make-styles-buffer-local|c-make-syntactic-matcher|c-mark-<-as-paren|c-mark->-as-paren|c-mark-function|c-mask-paragraph|c-mode-menu|c-mode-symbol|c-mode-var|c-mode|c-most-enclosing-brace|c-most-enclosing-decl-block|c-narrow-to-comment-innards|c-narrow-to-most-enclosing-decl-block|c-neutralize-CPP-line|c-neutralize-syntax-in-and-mark-CPP|c-newline-and-indent|c-next-single-property-change|c-objc-menu|c-on-identifier|c-one-line-string-p|c-outline-level|c-override-default-keywords|c-parse-state-1|c-parse-state-get-strategy|c-parse-state|c-partial-ws-p|c-pike-menu|c-point-syntax|c-point|c-populate-syntax-table|c-postprocess-file-styles|c-progress-fini|c-progress-init|c-progress-update|c-pull-open-brace|c-punctuation-in|c-put-c-type-property|c-put-char-property-fun|c-put-char-property|c-put-font-lock-face|c-put-font-lock-string-face|c-put-in-sws|c-put-is-sws|c-put-overlay|c-query-and-set-macro-start|c-query-macro-start|c-read-offset|c-real-parse-state|c-record-parse-state-state|c-record-ref-id|c-record-type-id|c-regexp-opt-depth|c-regexp-opt|c-region-is-active-p|c-remove-any-local-eval-or-mode-variables|c-remove-font-lock-face|c-remove-in-sws|c-remove-is-and-in-sws|c-remove-is-sws|c-remove-stale-state-cache-backwards|c-remove-stale-state-cache|c-renarrow-state-cache|c-replay-parse-state-state|c-restore-<->-as-parens|c-run-mode-hooks|c-safe-position|c-safe-scan-lists|c-safe|c-save-buffer-state|c-sc-parse-partial-sexp-no-category|c-sc-parse-partial-sexp|c-sc-scan-lists-no-category\\\\\\\\+1\\\\\\\\+1|c-sc-scan-lists-no-category\\\\\\\\+1-1|c-sc-scan-lists-no-category-1\\\\\\\\+1|c-sc-scan-lists-no-category-1-1|c-sc-scan-lists|c-scan-conditionals|c-scope-operator|c-search-backward-char-property|c-search-decl-header-end|c-search-forward-char-property|c-search-uplist-for-classkey|c-semi&comma-inside-parenlist|c-semi&comma-no-newlines-before-nonblanks|c-semi&comma-no-newlines-for-oneline-inliners|c-sentence-end|c-set-cpp-delimiters|c-set-fl-decl-start|c-set-offset|c-set-region-active|c-set-style-1|c-set-style|c-set-stylevar-fallback|c-setup-doc-comment-style|c-setup-filladapt|c-setup-paragraph-variables|c-shift-line-indentation|c-show-syntactic-information|c-simple-skip-symbol-backward|c-skip-comments-and-strings|c-skip-conditional|c-skip-ws-backward|c-skip-ws-forward|c-snug-1line-defun-close|c-snug-do-while|c-ssb-lit-begin|c-state-balance-parens-backwards|c-state-cache-after-top-paren|c-state-cache-init|c-state-cache-non-literal-place|c-state-cache-top-lparen|c-state-cache-top-paren|c-state-get-min-scan-pos|c-state-lit-beg|c-state-literal-at|c-state-mark-point-min-literal|c-state-maybe-marker|c-state-pp-to-literal|c-state-push-any-brace-pair|c-state-safe-place|c-state-semi-safe-place|c-submit-bug-report|c-subword-mode|c-suppress-<->-as-parens|c-syntactic-content|c-syntactic-end-of-macro|c-syntactic-information-on-region|c-syntactic-re-search-forward|c-syntactic-skip-backward|c-tentative-buffer-changes|c-tnt-chng-cleanup)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:c-tnt-chng-record-state|c-toggle-auto-hungry-state|c-toggle-auto-newline|c-toggle-auto-state|c-toggle-electric-state|c-toggle-hungry-state|c-toggle-parse-state-debug|c-toggle-syntactic-indentation|c-trim-found-types|c-try-one-liner|c-uncomment-out-cpps|c-unfind-coalesced-tokens|c-unfind-enclosing-token|c-unfind-type|c-unmark-<->-as-paren|c-up-conditional-with-else|c-up-conditional|c-up-list-backward|c-up-list-forward|c-update-modeline|c-valid-offset|c-version|c-vsemi-status-unknown-p|c-whack-state-after|c-whack-state-before|c-where-wrt-brace-construct|c-while-widening-to-decl-block|c-widen-to-enclosing-decl-scope|c-with-<->-as-parens-suppressed|c-with-all-but-one-cpps-commented-out|c-with-cpps-commented-out|c-with-syntax-table|caaaar|caaadr|caaar|caadar|caaddr|caadr|cadaar|cadadr|cadar|caddar|cadddr|caddr|cal-html-cursor-month|cal-html-cursor-year|cal-menu-context-mouse-menu|cal-menu-global-mouse-menu|cal-menu-holiday-window-suffix|cal-menu-set-date-title|cal-menu-x-popup-menu|cal-tex-cursor-day|cal-tex-cursor-filofax-2week|cal-tex-cursor-filofax-daily|cal-tex-cursor-filofax-week|cal-tex-cursor-filofax-year|cal-tex-cursor-month-landscape|cal-tex-cursor-month|cal-tex-cursor-week-iso|cal-tex-cursor-week-monday|cal-tex-cursor-week|cal-tex-cursor-week2-summary|cal-tex-cursor-week2|cal-tex-cursor-year-landscape|cal-tex-cursor-year|calc-alg-digit-entry|calc-alg-entry|calc-algebraic-entry|calc-align-stack-window|calc-auto-algebraic-entry|calc-big-or-small|calc-binary-op|calc-change-sign|calc-check-defines|calc-check-stack|calc-check-trail-aligned|calc-check-user-syntax|calc-clear-unread-commands|calc-count-lines|calc-create-buffer|calc-cursor-stack-index|calc-dispatch-help|calc-dispatch|calc-divide|calc-do-alg-entry|calc-do-calc-eval|calc-do-dispatch|calc-do-embedded-activate|calc-do-handle-whys|calc-do-quick-calc|calc-do-refresh|calc-do|calc-embedded-activate|calc-embedded|calc-enter-result|calc-enter|calc-eval|calc-get-stack-element|calc-grab-rectangle|calc-grab-region|calc-grab-sum-across|calc-grab-sum-down|calc-handle-whys|calc-help|calc-info-goto-node|calc-info-summary|calc-info|calc-inv|calc-keypad|calc-kill-stack-buffer|calc-last-args-stub|calc-left-divide|calc-match-user-syntax|calc-minibuffer-contains|calc-minibuffer-size|calc-minus|calc-missing-key|calc-mod|calc-mode-var-list-restore-default-values|calc-mode-var-list-restore-saved-values|calc-normalize|calc-num-prefix-name|calc-other-window|calc-over|calc-percent|calc-plus|calc-pop-above|calc-pop-push-list|calc-pop-push-record-list|calc-pop-stack|calc-pop|calc-power|calc-push-list|calc-quit|calc-read-key-sequence|calc-read-key|calc-record-list|calc-record-undo|calc-record-why|calc-record|calc-refresh|calc-renumber-stack|calc-report-bug|calc-roll-down-stack|calc-roll-down|calc-roll-up-stack|calc-roll-up|calc-same-interface|calc-select-buffer|calc-set-command-flag|calc-set-mode-line|calc-shift-Y-prefix-help|calc-slow-wrapper|calc-stack-size|calc-substack-height|calc-temp-minibuffer-message|calc-times|calc-top-list-n|calc-top-list|calc-top-n|calc-top|calc-trail-buffer|calc-trail-display|calc-trail-here|calc-transpose-lines|calc-tutorial|calc-unary-op|calc-undo|calc-unread-command|calc-user-invocation|calc-window-width|calc-with-default-simplification|calc-with-trail-buffer|calc-wrapper|calc-yank|calc|calcDigit-algebraic|calcDigit-backspace|calcDigit-edit|calcDigit-key|calcDigit-letter|calcDigit-nondigit|calcDigit-start|calcFunc-floor|calcFunc-inv|calcFunc-trunc|calculate-icon-indent|calculate-lisp-indent|calculate-tcl-indent|calculator-add-operators|calculator-backspace|calculator-clear-fragile|calculator-clear-saved|calculator-clear|calculator-close-paren|calculator-copy|calculator-dec\\\\\\\\/deg-mode|calculator-decimal|calculator-digit|calculator-displayer-next|calculator-displayer-prev|calculator-eng-display|calculator-enter|calculator-exp|calculator-expt|calculator-fact|calculator-funcall|calculator-get-display|calculator-get-register|calculator-groupize-number|calculator-help|calculator-last-input|calculator-menu|calculator-message|calculator-mode|calculator-need-3-lines|calculator-number-to-string|calculator-op-arity|calculator-op-or-exp|calculator-op-prec|calculator-op|calculator-open-paren|calculator-paste|calculator-push-curnum|calculator-put-value|calculator-quit|calculator-radix-input-mode|calculator-radix-mode|calculator-radix-output-mode|calculator-reduce-stack-once|calculator-reduce-stack|calculator-remove-zeros|calculator-repL|calculator-repR|calculator-reset|calculator-rotate-displayer-back|calculator-rotate-displayer|calculator-save-and-quit|calculator-save-on-list|calculator-saved-down|calculator-saved-move|calculator-saved-up|calculator-set-register|calculator-standard-displayer|calculator-string-to-number|calculator-truncate|calculator-update-display|calculator|calendar-abbrev-construct|calendar-absolute-from-gregorian|calendar-astro-date-string|calendar-astro-from-absolute|calendar-astro-goto-day-number|calendar-astro-print-day-number|calendar-astro-to-absolute|calendar-backward-day|calendar-backward-month|calendar-backward-week|calendar-backward-year|calendar-bahai-date-string|calendar-bahai-goto-date|calendar-bahai-mark-date-pattern|calendar-bahai-print-date|calendar-basic-setup|calendar-beginning-of-month|calendar-beginning-of-week|calendar-beginning-of-year|calendar-buffer-list|calendar-check-holidays|calendar-chinese-date-string|calendar-chinese-goto-date|calendar-chinese-print-date|calendar-column-to-segment|calendar-coptic-date-string|calendar-coptic-goto-date|calendar-coptic-print-date|calendar-count-days-region|calendar-current-date|calendar-cursor-holidays|calendar-cursor-to-date|calendar-cursor-to-nearest-date|calendar-cursor-to-visible-date|calendar-customized-p|calendar-date-compare|calendar-date-equal|calendar-date-is-valid-p|calendar-date-is-visible-p|calendar-date-string|calendar-day-header-construct|calendar-day-name|calendar-day-number|calendar-day-of-week|calendar-day-of-year-string|calendar-dayname-on-or-before|calendar-end-of-month|calendar-end-of-week|calendar-end-of-year|calendar-ensure-newline|calendar-ethiopic-date-string|calendar-ethiopic-goto-date|calendar-ethiopic-print-date|calendar-exchange-point-and-mark|calendar-exit|calendar-extract-day|calendar-extract-month|calendar-extract-year|calendar-forward-day|calendar-forward-month|calendar-forward-week|calendar-forward-year|calendar-frame-setup|calendar-french-date-string|calendar-french-goto-date|calendar-french-print-date|calendar-generate-month|calendar-generate-window|calendar-generate|calendar-goto-date|calendar-goto-day-of-year|calendar-goto-info-node|calendar-goto-today|calendar-gregorian-from-absolute|calendar-hebrew-date-string|calendar-hebrew-goto-date|calendar-hebrew-list-yahrzeits|calendar-hebrew-mark-date-pattern|calendar-hebrew-print-date|calendar-holiday-list|calendar-in-read-only-buffer|calendar-increment-month-cons|calendar-increment-month|calendar-insert-at-column|calendar-interval|calendar-islamic-date-string|calendar-islamic-goto-date|calendar-islamic-mark-date-pattern|calendar-islamic-print-date|calendar-iso-date-string|calendar-iso-from-absolute|calendar-iso-goto-date|calendar-iso-goto-week|calendar-iso-print-date|calendar-julian-date-string|calendar-julian-from-absolute|calendar-julian-goto-date|calendar-julian-print-date|calendar-last-day-of-month|calendar-leap-year-p|calendar-list-holidays|calendar-lunar-phases|calendar-make-alist|calendar-make-temp-face|calendar-mark-1|calendar-mark-complex|calendar-mark-date-pattern|calendar-mark-days-named|calendar-mark-holidays|calendar-mark-month|calendar-mark-today|calendar-mark-visible-date|calendar-mayan-date-string|calendar-mayan-goto-long-count-date|calendar-mayan-next-haab-date|calendar-mayan-next-round-date|calendar-mayan-next-tzolkin-date|calendar-mayan-previous-haab-date|calendar-mayan-previous-round-date|calendar-mayan-previous-tzolkin-date|calendar-mayan-print-date|calendar-mode-line-entry|calendar-mode|calendar-month-edges|calendar-month-name|calendar-mouse-view-diary-entries|calendar-mouse-view-other-diary-entries|calendar-move-to-column|calendar-nongregorian-visible-p|calendar-not-implemented|calendar-nth-named-absday|calendar-nth-named-day|calendar-other-dates|calendar-other-month|calendar-persian-date-string|calendar-persian-goto-date|calendar-persian-print-date|calendar-print-day-of-year|calendar-print-other-dates|calendar-read-date|calendar-read|calendar-recompute-layout-variables|calendar-redraw|calendar-scroll-left-three-months|calendar-scroll-left|calendar-scroll-right-three-months|calendar-scroll-right|calendar-scroll-toolkit-scroll|calendar-set-date-style|calendar-set-layout-variable|calendar-set-mark|calendar-set-mode-line|calendar-star-date|calendar-string-spread|calendar-sum|calendar-sunrise-sunset-month|calendar-sunrise-sunset|calendar-unmark|calendar-update-mode-line|calendar-week-end-day|calendar|call-last-kbd-macro|call-next-method|callf|callf2|cancel-edebug-on-entry|cancel-function-timers|cancel-kbd-macro-events|cancel-timer-internal|canlock-insert-header|canlock-verify|canonicalize-coding-system-name|canonically-space-region|capitalized-words-mode|car-less-than-car|case-table-get-table|case|cc-choose-style-for-mode|cc-eval-when-compile|cc-imenu-init|cc-imenu-java-build-type-args-regex|cc-imenu-objc-function|cc-imenu-objc-method-to-selector|cc-imenu-objc-remove-white-space|ccl-compile|ccl-dump|ccl-execute-on-string|ccl-execute-with-args|ccl-execute|ccl-program-p|cconv--analyze-function|cconv--analyze-use|cconv--convert-function|cconv--map-diff-elem|cconv--map-diff-set|cconv--map-diff|cconv--set-diff-map|cconv--set-diff|cconv-analyse-form|cconv-analyze-form|cconv-closure-convert|cconv-convert|cconv-warnings-only|cd-absolute|cd|cdaaar|cdaadr|cdaar|cdadar|cdaddr|cdadr|cddaar|cddadr|cddar|cdddar|cddddr|cdddr|cdl-get-file|cdl-put-region|cedet-version|ceiling\\\\\\\\*|center-line|center-paragraph|center-region|cfengine-auto-mode|cfengine-common-settings|cfengine-common-syntax|cfengine-fill-paragraph|cfengine-mode|cfengine2-beginning-of-defun|cfengine2-end-of-defun|cfengine2-indent-line|cfengine2-mode|cfengine2-outline-level|cfengine3--current-function|cfengine3-beginning-of-defun|cfengine3-clear-syntax-cache|cfengine3-completion-function|cfengine3-create-imenu-index|cfengine3-current-defun|cfengine3-documentation-function|cfengine3-end-of-defun|cfengine3-format-function-docstring|cfengine3-indent-line|cfengine3-make-syntax-cache|cfengine3-mode|change-class|change-log-beginning-of-defun|change-log-end-of-defun|change-log-fill-forward-paragraph|change-log-fill-parenthesized-list|change-log-find-file|change-log-get-method-definition-1|change-log-get-method-definition|change-log-goto-source-1|change-log-goto-source|change-log-indent|change-log-merge|change-log-mode|change-log-name|change-log-next-buffer|change-log-next-error|change-log-resolve-conflict|change-log-search-file-name|change-log-search-tag-name-1|change-log-search-tag-name|change-log-sortable-date-at|change-log-version-number-search|char-resolve-modifiers|char-valid-p|charset-bytes|charset-chars|charset-description|charset-dimension|charset-id-internal|charset-id|charset-info|charset-iso-final-char|charset-long-name|charset-short-name|chart-add-sequence|chart-axis-child-p|chart-axis-draw|chart-axis-list-p|chart-axis-names-child-p|chart-axis-names-list-p|chart-axis-names-p|chart-axis-names|chart-axis-p|chart-axis-range-child-p|chart-axis-range-list-p|chart-axis-range-p|chart-axis-range|chart-axis|chart-bar-child-p|chart-bar-list-p|chart-bar-p|chart-bar-quickie|chart-bar|chart-child-p|chart-deface-rectangle|chart-display-label|chart-draw-axis|chart-draw-data|chart-draw-line|chart-draw-title|chart-draw|chart-emacs-lists|chart-emacs-storage|chart-file-count|chart-goto-xy|chart-list-p|chart-mode|chart-new-buffer|chart-p|chart-rmail-from|chart-sequece-child-p|chart-sequece-list-p|chart-sequece-p|chart-sequece|chart-size-in-dir|chart-sort-matchlist|chart-sort|chart-space-usage|chart-test-it-all|chart-translate-namezone|chart-translate-xpos|chart-translate-ypos|chart-trim|chart-zap-chars|chart|check-ccl-program|check-completion-length|check-declare-directory|check-declare-errmsg|check-declare-file|check-declare-files|check-declare-locate|check-declare-scan|check-declare-sort|check-declare-verify|check-declare-warn)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:check-face|check-ispell-version|check-parens|check-type|checkdoc-autofix-ask-replace|checkdoc-buffer-label|checkdoc-char=|checkdoc-comments|checkdoc-continue|checkdoc-create-common-verbs-regexp|checkdoc-create-error|checkdoc-current-buffer|checkdoc-defun-info|checkdoc-defun|checkdoc-delete-overlay|checkdoc-display-status-buffer|checkdoc-error-end|checkdoc-error-start|checkdoc-error-text|checkdoc-error-unfixable|checkdoc-error|checkdoc-eval-current-buffer|checkdoc-eval-defun|checkdoc-file-comments-engine|checkdoc-in-example-string-p|checkdoc-in-sample-code-p|checkdoc-interactive-ispell-loop|checkdoc-interactive-loop|checkdoc-interactive|checkdoc-ispell-comments|checkdoc-ispell-continue|checkdoc-ispell-current-buffer|checkdoc-ispell-defun|checkdoc-ispell-docstring-engine|checkdoc-ispell-init|checkdoc-ispell-interactive|checkdoc-ispell-message-interactive|checkdoc-ispell-message-text|checkdoc-ispell-start|checkdoc-ispell|checkdoc-list-of-strings-p|checkdoc-make-overlay|checkdoc-message-interactive-ispell-loop|checkdoc-message-interactive|checkdoc-message-text-engine|checkdoc-message-text-next-string|checkdoc-message-text-search|checkdoc-message-text|checkdoc-mode-line-update|checkdoc-next-docstring|checkdoc-next-error|checkdoc-next-message-error|checkdoc-output-mode|checkdoc-outside-major-sexp|checkdoc-overlay-end|checkdoc-overlay-put|checkdoc-overlay-start|checkdoc-proper-noun-region-engine|checkdoc-recursive-edit|checkdoc-rogue-space-check-engine|checkdoc-rogue-spaces|checkdoc-run-hooks|checkdoc-sentencespace-region-engine|checkdoc-show-diagnostics|checkdoc-start-section|checkdoc-start|checkdoc-this-string-valid-engine|checkdoc-this-string-valid|checkdoc-y-or-n-p|checkdoc|child-of-class-p|chmod|choose-completion-delete-max-match|choose-completion-guess-base-position|choose-completion-string|choose-completion|cl--adjoin|cl--arglist-args|cl--block-throw--cmacro|cl--block-throw|cl--block-wrapper--cmacro|cl--block-wrapper|cl--check-key|cl--check-match|cl--check-test-nokey|cl--check-test|cl--compile-time-too|cl--compiler-macro-adjoin|cl--compiler-macro-assoc|cl--compiler-macro-cXXr|cl--compiler-macro-get|cl--compiler-macro-list\\\\\\\\*|cl--compiler-macro-member|cl--compiler-macro-typep|cl--compiling-file|cl--const-expr-p|cl--const-expr-val|cl--defalias|cl--defsubst-expand|cl--delete-duplicates|cl--do-arglist|cl--do-prettyprint|cl--do-proclaim|cl--do-remf|cl--do-subst|cl--expand-do-loop|cl--expr-contains-any|cl--expr-contains|cl--expr-depends-p|cl--finite-do|cl--function-convert|cl--gv-adapt|cl--labels-convert|cl--letf|cl--loop-build-ands|cl--loop-handle-accum|cl--loop-let|cl--loop-set-iterator-function|cl--macroexp-fboundp|cl--make-type-test|cl--make-usage-args|cl--make-usage-var|cl--map-intervals|cl--map-keymap-recursively|cl--map-overlays|cl--mapcar-many|cl--nsublis-rec|cl--parse-loop-clause|cl--parsing-keywords|cl--pass-args-to-cl-declare|cl--pop2|cl--position|cl--random-time|cl--safe-expr-p|cl--set-buffer-substring|cl--set-frame-visible-p|cl--set-getf|cl--set-substring|cl--simple-expr-p|cl--simple-exprs-p|cl--sm-macroexpand|cl--struct-epg-context-p--cmacro|cl--struct-epg-context-p|cl--struct-epg-data-p--cmacro|cl--struct-epg-data-p|cl--struct-epg-import-result-p--cmacro|cl--struct-epg-import-result-p|cl--struct-epg-import-status-p--cmacro|cl--struct-epg-import-status-p|cl--struct-epg-key-p--cmacro|cl--struct-epg-key-p|cl--struct-epg-key-signature-p--cmacro|cl--struct-epg-key-signature-p|cl--struct-epg-new-signature-p--cmacro|cl--struct-epg-new-signature-p|cl--struct-epg-sig-notation-p--cmacro|cl--struct-epg-sig-notation-p|cl--struct-epg-signature-p--cmacro|cl--struct-epg-signature-p|cl--struct-epg-sub-key-p--cmacro|cl--struct-epg-sub-key-p|cl--struct-epg-user-id-p--cmacro|cl--struct-epg-user-id-p|cl--sublis-rec|cl--sublis|cl--transform-lambda|cl--tree-equal-rec|cl--unused-var-p|cl--wrap-in-nil-block|cl-caaaar|cl-caaadr|cl-caaar|cl-caadar|cl-caaddr|cl-caadr|cl-cadaar|cl-cadadr|cl-cadar|cl-caddar|cl-cadddr|cl-cdaaar|cl-cdaadr|cl-cdaar|cl-cdadar|cl-cdaddr|cl-cdadr|cl-cddaar|cl-cddadr|cl-cddar|cl-cdddar|cl-cddddr|cl-cdddr|cl-clrhash|cl-copy-seq|cl-copy-tree|cl-digit-char-p|cl-eighth|cl-fifth|cl-flet\\\\\\\\*|cl-floatp-safe|cl-fourth|cl-fresh-line|cl-gethash|cl-hash-table-count|cl-hash-table-p|cl-maclisp-member|cl-macroexpand-all|cl-macroexpand|cl-make-hash-table|cl-map-extents|cl-map-intervals|cl-map-keymap-recursively|cl-map-keymap|cl-maphash|cl-multiple-value-apply|cl-multiple-value-call|cl-multiple-value-list|cl-ninth|cl-not-hash-table|cl-nreconc|cl-nth-value|cl-parse-integer|cl-prettyprint|cl-puthash|cl-remhash|cl-revappend|cl-second|cl-set-getf|cl-seventh|cl-signum|cl-sixth|cl-struct-sequence-type|cl-struct-setf-expander|cl-struct-slot-info|cl-struct-slot-offset|cl-struct-slot-value--cmacro|cl-struct-slot-value|cl-svref|cl-tenth|cl-third|cl-unload-function|cl-values-list|cl-values|class-abstract-p|class-children|class-constructor|class-direct-subclasses|class-direct-superclasses|class-method-invocation-order|class-name|class-of|class-option-assoc|class-option|class-p|class-parent|class-parents|class-precedence-list|class-slot-initarg|class-v|clean-buffer-list-delay|clean-buffer-list|clear-all-completions|clear-buffer-auto-save-failure|clear-charset-maps|clear-face-cache|clear-font-cache|clear-rectangle-line|clear-rectangle|clipboard-kill-region|clipboard-kill-ring-save|clipboard-yank|clone-buffer|clone-indirect-buffer-other-window|clone-process|clone|close-display-connection|close-font|close-rectangle|cmpl-coerce-string-case|cmpl-hours-since-origin|cmpl-merge-string-cases|cmpl-prefix-entry-head|cmpl-prefix-entry-tail|cmpl-string-case-type|coding-system-base|coding-system-category|coding-system-doc-string|coding-system-eol-type-mnemonic|coding-system-equal|coding-system-from-name|coding-system-lessp|coding-system-mnemonic|coding-system-plist|coding-system-post-read-conversion|coding-system-pre-write-conversion|coding-system-put|coding-system-translation-table-for-decode|coding-system-translation-table-for-encode|coding-system-type|coerce|color-cie-de2000|color-clamp|color-complement-hex|color-complement|color-darken-hsl|color-darken-name|color-desaturate-hsl|color-desaturate-name|color-distance|color-gradient|color-hsl-to-rgb|color-hue-to-rgb|color-lab-to-srgb|color-lab-to-xyz|color-lighten-hsl|color-lighten-name|color-name-to-rgb|color-rgb-to-hex|color-rgb-to-hsl|color-rgb-to-hsv|color-saturate-hsl|color-saturate-name|color-srgb-to-lab|color-srgb-to-xyz|color-xyz-to-lab|color-xyz-to-srgb|column-number-mode|combine-after-change-execute|comint--complete-file-name-data|comint--match-partial-filename|comint--requote-argument|comint--unquote&expand-filename|comint--unquote&requote-argument|comint--unquote-argument|comint-accumulate|comint-add-to-input-history|comint-adjust-point|comint-adjust-window-point|comint-after-pmark-p|comint-append-output-to-file|comint-args|comint-arguments|comint-backward-matching-input|comint-bol-or-process-mark|comint-bol|comint-c-a-p-replace-by-expanded-history|comint-carriage-motion|comint-check-proc|comint-check-source|comint-completion-at-point|comint-completion-file-name-table|comint-continue-subjob|comint-copy-old-input|comint-delchar-or-maybe-eof|comint-delete-input|comint-delete-output|comint-delim-arg|comint-directory|comint-dynamic-complete-as-filename|comint-dynamic-complete-filename|comint-dynamic-complete|comint-dynamic-list-completions|comint-dynamic-list-filename-completions|comint-dynamic-list-input-ring-select|comint-dynamic-list-input-ring|comint-dynamic-simple-complete|comint-exec-1|comint-exec|comint-extract-string|comint-filename-completion|comint-forward-matching-input|comint-get-next-from-history|comint-get-old-input-default|comint-get-source|comint-goto-input|comint-goto-process-mark|comint-history-isearch-backward-regexp|comint-history-isearch-backward|comint-history-isearch-end|comint-history-isearch-message|comint-history-isearch-pop-state|comint-history-isearch-push-state|comint-history-isearch-search|comint-history-isearch-setup|comint-history-isearch-wrap|comint-how-many-region|comint-insert-input|comint-insert-previous-argument|comint-interrupt-subjob|comint-kill-input|comint-kill-region|comint-kill-subjob|comint-kill-whole-line|comint-line-beginning-position|comint-magic-space|comint-match-partial-filename|comint-mode|comint-next-input|comint-next-matching-input-from-input|comint-next-matching-input|comint-next-prompt|comint-output-filter|comint-postoutput-scroll-to-bottom|comint-preinput-scroll-to-bottom|comint-previous-input-string|comint-previous-input|comint-previous-matching-input-from-input|comint-previous-matching-input-string-position|comint-previous-matching-input-string|comint-previous-matching-input|comint-previous-prompt|comint-proc-query|comint-quit-subjob|comint-quote-filename|comint-read-input-ring|comint-read-noecho|comint-redirect-cleanup|comint-redirect-filter|comint-redirect-preoutput-filter|comint-redirect-remove-redirection|comint-redirect-results-list-from-process|comint-redirect-results-list|comint-redirect-send-command-to-process|comint-redirect-send-command|comint-redirect-setup|comint-regexp-arg|comint-replace-by-expanded-filename|comint-replace-by-expanded-history-before-point|comint-replace-by-expanded-history|comint-restore-input|comint-run|comint-search-arg|comint-search-start|comint-send-eof|comint-send-input|comint-send-region|comint-send-string|comint-set-process-mark|comint-show-maximum-output|comint-show-output|comint-simple-send|comint-skip-input|comint-skip-prompt|comint-snapshot-last-prompt|comint-source-default|comint-stop-subjob|comint-strip-ctrl-m|comint-substitute-in-file-name|comint-truncate-buffer|comint-unquote-filename|comint-update-fence|comint-watch-for-password-prompt|comint-within-quotes|comint-word|comint-write-input-ring|comint-write-output|command-apropos|command-error-default-function|command-history-mode|command-history-repeat|command-line-1|command-line-normalize-file-name|comment-add|comment-beginning|comment-box|comment-choose-indent|comment-dwim|comment-enter-backward|comment-forward|comment-indent-default|comment-indent-new-line|comment-indent|comment-kill|comment-make-extra-lines|comment-normalize-vars|comment-only-p|comment-or-uncomment-region|comment-padleft|comment-padright|comment-quote-nested|comment-quote-re|comment-region-default|comment-region-internal|comment-region|comment-search-backward|comment-search-forward|comment-set-column|comment-string-reverse|comment-string-strip|comment-valid-prefix-p|comment-with-narrowing|common-lisp-indent-function|common-lisp-mode|compare-windows-dehighlight|compare-windows-get-next-window|compare-windows-get-recent-window|compare-windows-highlight|compare-windows-skip-whitespace|compare-windows-sync-default-function|compare-windows-sync-regexp|compare-windows|compilation--compat-error-properties|compilation--compat-parse-errors|compilation--ensure-parse|compilation--file-struct->file-spec|compilation--file-struct->formats|compilation--file-struct->loc-tree|compilation--flush-directory-cache|compilation--flush-file-structure|compilation--flush-parse|compilation--loc->col|compilation--loc->file-struct|compilation--loc->line|compilation--loc->marker|compilation--loc->visited|compilation--make-cdrloc|compilation--make-file-struct|compilation--make-message--cmacro|compilation--make-message|compilation--message->end-loc--cmacro|compilation--message->end-loc|compilation--message->loc--cmacro|compilation--message->loc|compilation--message->type--cmacro|compilation--message->type|compilation--message-p--cmacro|compilation--message-p|compilation--parse-region|compilation--previous-directory|compilation--put-prop|compilation--remove-properties|compilation--unsetup|compilation-auto-jump|compilation-buffer-internal-p|compilation-buffer-name|compilation-buffer-p|compilation-button-map|compilation-directory-properties|compilation-display-error|compilation-error-properties|compilation-face|compilation-fake-loc|compilation-filter|compilation-find-buffer|compilation-find-file|compilation-forget-errors|compilation-get-file-structure|compilation-goto-locus-delete-o|compilation-goto-locus|compilation-handle-exit|compilation-internal-error-properties|compilation-loop|compilation-minor-mode|compilation-mode-font-lock-keywords|compilation-mode|compilation-move-to-column|compilation-next-error-function|compilation-next-error|compilation-next-file|compilation-next-single-property-change)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:compilation-parse-errors|compilation-previous-error|compilation-previous-file|compilation-read-command|compilation-revert-buffer|compilation-sentinel|compilation-set-skip-threshold|compilation-set-window-height|compilation-set-window|compilation-setup|compilation-shell-minor-mode|compilation-start|compile-goto-error|compile-mouse-goto-error|compile|compiler-macroexpand|complete-in-turn|complete-symbol|complete-tag|complete-with-action|complete|completing-read-default|completing-read-multiple|completion--cache-all-sorted-completions|completion--capf-wrapper|completion--common-suffix|completion--complete-and-exit|completion--cycle-threshold|completion--do-completion|completion--done|completion--embedded-envvar-table|completion--field-metadata|completion--file-name-table|completion--flush-all-sorted-completions|completion--in-region-1|completion--in-region|completion--insert-strings|completion--make-envvar-table|completion--merge-suffix|completion--message|completion--metadata|completion--nth-completion|completion--post-self-insert|completion--replace|completion--sifn-requote|completion--some|completion--string-equal-p|completion--styles|completion--try-word-completion|completion--twq-all|completion--twq-try|completion-all-completions|completion-all-sorted-completions|completion-backup-filename|completion-basic--pattern|completion-basic-all-completions|completion-basic-try-completion|completion-before-command|completion-c-mode-hook|completion-complete-and-exit|completion-def-wrapper|completion-emacs21-all-completions|completion-emacs21-try-completion|completion-emacs22-all-completions|completion-emacs22-try-completion|completion-file-name-table|completion-find-file-hook|completion-help-at-point|completion-hilit-commonality|completion-in-region--postch|completion-in-region--single-word|completion-in-region-mode|completion-initialize|completion-initials-all-completions|completion-initials-expand|completion-initials-try-completion|completion-kill-region|completion-last-use-time|completion-lisp-mode-hook|completion-list-mode-finish|completion-list-mode|completion-metadata-get|completion-metadata|completion-mode|completion-num-uses|completion-pcm--all-completions|completion-pcm--filename-try-filter|completion-pcm--find-all-completions|completion-pcm--hilit-commonality|completion-pcm--merge-completions|completion-pcm--merge-try|completion-pcm--optimize-pattern|completion-pcm--pattern->regex|completion-pcm--pattern->string|completion-pcm--pattern-trivial-p|completion-pcm--prepare-delim-re|completion-pcm--string->pattern|completion-pcm-all-completions|completion-pcm-try-completion|completion-search-next|completion-search-peek|completion-search-reset-1|completion-search-reset|completion-setup-fortran-mode|completion-setup-function|completion-source|completion-string|completion-substring--all-completions|completion-substring-all-completions|completion-substring-try-completion|completion-table-with-context|completion-try-completion|compose-chars-after|compose-chars|compose-glyph-string-relative|compose-glyph-string|compose-gstring-for-dotted-circle|compose-gstring-for-graphic|compose-gstring-for-terminal|compose-gstring-for-variation-glyph|compose-last-chars|compose-mail-other-frame|compose-mail-other-window|compose-mail|compose-region-internal|compose-region|compose-string-internal|compose-string|composition-get-gstring|concatenate|condition-case-no-debug|conf-align-assignments|conf-colon-mode|conf-javaprop-mode|conf-mode-initialize|conf-mode-maybe|conf-mode|conf-outline-level|conf-ppd-mode|conf-quote-normal|conf-space-keywords|conf-space-mode-internal|conf-space-mode|conf-unix-mode|conf-windows-mode|conf-xdefaults-mode|confirm-nonexistent-file-or-buffer|constructor|convert-define-charset-argument|cookie-apropos|cookie-check-file|cookie-doctor|cookie-insert|cookie-read|cookie-shuffle-vector|cookie-snarf|cookie|cookie1|copy-case-table|copy-cvs-flags|copy-cvs-tag|copy-dir-locals-to-file-locals-prop-line|copy-dir-locals-to-file-locals|copy-ebrowse-bs|copy-ebrowse-cs|copy-ebrowse-hs|copy-ebrowse-ms|copy-ebrowse-position|copy-ebrowse-ts|copy-erc-channel-user|copy-erc-response|copy-erc-server-user|copy-ert--ewoc-entry|copy-ert--stats|copy-ert--test-execution-info|copy-ert-test-aborted-with-non-local-exit|copy-ert-test-failed|copy-ert-test-passed|copy-ert-test-quit|copy-ert-test-result-with-condition|copy-ert-test-result|copy-ert-test-skipped|copy-ert-test|copy-ewoc--node|copy-ewoc|copy-face|copy-file-locals-to-dir-locals|copy-flymake-ler|copy-gdb-handler|copy-gdb-table|copy-htmlize-fstruct|copy-js--js-handle|copy-js--pitem|copy-list|copy-package--bi-desc|copy-package-desc|copy-profiler-calltree|copy-profiler-profile|copy-rectangle-as-kill|copy-rectangle-to-register|copy-seq|copy-ses--locprn|copy-sgml-tag|copy-soap-array-type|copy-soap-basic-type|copy-soap-binding|copy-soap-bound-operation|copy-soap-element|copy-soap-message|copy-soap-namespace-link|copy-soap-namespace|copy-soap-operation|copy-soap-port-type|copy-soap-port|copy-soap-sequence-element|copy-soap-sequence-type|copy-soap-simple-type|copy-soap-wsdl|copy-tar-header|copy-to-buffer|copy-to-register|copy-url-queue|copyright-find-copyright|copyright-find-end|copyright-fix-years|copyright-limit|copyright-offset-too-large-p|copyright-re-search|copyright-start-point|copyright-update-directory|copyright-update-year|copyright-update|copyright|count-if-not|count-if|count-lines-page|count-lines-region|count-matches|count-text-lines|count-trailing-whitespace-region|count-windows|count-words--buffer-message|count-words--message|count-words-region|count|cperl-1\\\\\\\\+|cperl-1-|cperl-add-tags-recurse-noxs-fullpath|cperl-add-tags-recurse-noxs|cperl-add-tags-recurse|cperl-after-block-and-statement-beg|cperl-after-block-p|cperl-after-change-function|cperl-after-expr-p|cperl-after-label|cperl-after-sub-regexp|cperl-at-end-of-expr|cperl-backward-to-noncomment|cperl-backward-to-start-of-continued-exp|cperl-backward-to-start-of-expr|cperl-beautify-level|cperl-beautify-regexp-piece|cperl-beautify-regexp|cperl-beginning-of-property|cperl-block-p|cperl-build-manpage|cperl-cached-syntax-table|cperl-calculate-indent-within-comment|cperl-calculate-indent|cperl-check-syntax|cperl-choose-color|cperl-comment-indent|cperl-comment-region|cperl-commentify|cperl-contract-level|cperl-contract-levels|cperl-db|cperl-define-key|cperl-delay-update-hook|cperl-describe-perl-symbol|cperl-do-auto-fill|cperl-electric-backspace|cperl-electric-brace|cperl-electric-else|cperl-electric-keyword|cperl-electric-lbrace|cperl-electric-paren|cperl-electric-pod|cperl-electric-rparen|cperl-electric-semi|cperl-electric-terminator|cperl-emulate-lazy-lock|cperl-enable-font-lock|cperl-ensure-newlines|cperl-etags|cperl-facemenu-add-face-function|cperl-fill-paragraph|cperl-find-bad-style|cperl-find-pods-heres-region|cperl-find-pods-heres|cperl-find-sub-attrs|cperl-find-tags|cperl-fix-line-spacing|cperl-font-lock-fontify-region-function|cperl-font-lock-unfontify-region-function|cperl-fontify-syntaxically|cperl-fontify-update-bad|cperl-fontify-update|cperl-forward-group-in-re|cperl-forward-re|cperl-forward-to-end-of-expr|cperl-get-help-defer|cperl-get-help|cperl-get-here-doc-region|cperl-get-state|cperl-here-doc-spell|cperl-highlight-charclass|cperl-imenu--create-perl-index|cperl-imenu-addback|cperl-imenu-info-imenu-name|cperl-imenu-info-imenu-search|cperl-imenu-name-and-position|cperl-imenu-on-info|cperl-indent-command|cperl-indent-exp|cperl-indent-for-comment|cperl-indent-line|cperl-indent-region|cperl-info-buffer|cperl-info-on-command|cperl-info-on-current-command|cperl-init-faces-weak|cperl-init-faces|cperl-inside-parens-p|cperl-invert-if-unless-modifiers|cperl-invert-if-unless|cperl-lazy-hook|cperl-lazy-install|cperl-lazy-unstall|cperl-linefeed|cperl-lineup|cperl-list-fold|cperl-load-font-lock-keywords-1|cperl-load-font-lock-keywords-2|cperl-load-font-lock-keywords|cperl-look-at-leading-count|cperl-make-indent|cperl-make-regexp-x|cperl-map-pods-heres|cperl-mark-active|cperl-menu-to-keymap|cperl-menu|cperl-mode|cperl-modify-syntax-type|cperl-msb-fix|cperl-narrow-to-here-doc|cperl-next-bad-style|cperl-next-interpolated-REx-0|cperl-next-interpolated-REx-1|cperl-next-interpolated-REx|cperl-outline-level|cperl-perldoc-at-point|cperl-perldoc|cperl-pod-spell|cperl-pod-to-manpage|cperl-pod2man-build-command|cperl-postpone-fontification|cperl-protect-defun-start|cperl-ps-print-init|cperl-ps-print|cperl-put-do-not-fontify|cperl-putback-char|cperl-regext-to-level-start|cperl-select-this-pod-or-here-doc|cperl-set-style-back|cperl-set-style|cperl-setup-tmp-buf|cperl-sniff-for-indent|cperl-switch-to-doc-buffer|cperl-tags-hier-fill|cperl-tags-hier-init|cperl-tags-treeify|cperl-time-fontification|cperl-to-comment-or-eol|cperl-toggle-abbrev|cperl-toggle-auto-newline|cperl-toggle-autohelp|cperl-toggle-construct-fix|cperl-toggle-electric|cperl-toggle-set-debug-unwind|cperl-uncomment-region|cperl-unwind-to-safe|cperl-update-syntaxification|cperl-use-region-p|cperl-val|cperl-windowed-init|cperl-word-at-point-hard|cperl-word-at-point|cperl-write-tags|cperl-xsub-scan|cpp-choose-branch|cpp-choose-default-face|cpp-choose-face|cpp-choose-symbol|cpp-create-bg-face|cpp-edit-apply|cpp-edit-background|cpp-edit-false|cpp-edit-home|cpp-edit-known|cpp-edit-list-entry-get-or-create|cpp-edit-load|cpp-edit-mode|cpp-edit-reset|cpp-edit-save|cpp-edit-toggle-known|cpp-edit-toggle-unknown|cpp-edit-true|cpp-edit-unknown|cpp-edit-write|cpp-face-name|cpp-grow-overlay|cpp-highlight-buffer|cpp-make-button|cpp-make-known-overlay|cpp-make-overlay-hidden|cpp-make-overlay-read-only|cpp-make-overlay-sticky|cpp-make-unknown-overlay|cpp-parse-close|cpp-parse-edit|cpp-parse-error|cpp-parse-open|cpp-parse-reset|cpp-progress-message|cpp-push-button|cpp-signal-read-only|create-default-fontset|create-fontset-from-ascii-font|create-fontset-from-x-resource|create-glyph|crm--choose-completion-string|crm--collection-fn|crm--completion-command|crm--current-element|crm-complete-and-exit|crm-complete-word|crm-complete|crm-completion-help|crm-minibuffer-complete-and-exit|crm-minibuffer-complete|crm-minibuffer-completion-help|css--font-lock-keywords|css-current-defun-name|css-extract-keyword-list|css-extract-parse-val-grammar|css-extract-props-and-vals|css-fill-paragraph|css-mode|css-smie--backward-token|css-smie--forward-token|css-smie-rules|ctext-non-standard-encodings-table|ctext-post-read-conversion|ctext-pre-write-conversion|ctl-x-4-prefix|ctl-x-5-prefix|ctl-x-ctl-p-prefix|cua--M\\\\\\\\/H-key|cua--deactivate|cua--fallback|cua--filter-buffer-noprops|cua--init-keymaps|cua--keep-active|cua--post-command-handler-1|cua--post-command-handler|cua--pre-command-handler-1|cua--pre-command-handler|cua--prefix-arg|cua--prefix-copy-handler|cua--prefix-cut-handler|cua--prefix-override-handler|cua--prefix-override-replay|cua--prefix-override-timeout|cua--prefix-repeat-handler|cua--select-keymaps|cua--self-insert-char-p|cua--shift-control-c-prefix|cua--shift-control-prefix|cua--shift-control-x-prefix|cua--update-indications|cua-cancel|cua-copy-region|cua-cut-region|cua-debug|cua-delete-region|cua-exchange-point-and-mark|cua-help-for-region|cua-mode|cua-paste-pop|cua-paste|cua-pop-to-last-change|cua-rectangle-mark-mode|cua-scroll-down|cua-scroll-up|cua-selection-mode|cua-set-mark|cua-set-rectangle-mark|cua-toggle-global-mark|current-line|custom--frame-color-default|custom--initialize-widget-variables|custom--sort-vars-1|custom--sort-vars|custom-add-dependencies|custom-add-link|custom-add-load|custom-add-option|custom-add-package-version|custom-add-parent-links|custom-add-see-also|custom-add-to-group|custom-add-version|custom-autoload|custom-available-themes|custom-browse-face-tag-action|custom-browse-group-tag-action|custom-browse-insert-prefix|custom-browse-variable-tag-action|custom-browse-visibility-action|custom-buffer-create-internal|custom-buffer-create-other-window|custom-buffer-create|custom-check-theme|custom-command-apply|custom-comment-create|custom-comment-hide|custom-comment-invisible-p|custom-comment-show|custom-convert-widget|custom-current-group|custom-declare-face|custom-declare-group|custom-declare-theme|custom-declare-variable|custom-face-action|custom-face-attributes-get|custom-face-edit-activate|custom-face-edit-all|custom-face-edit-attribute-tag|custom-face-edit-convert-widget)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:custom-face-edit-deactivate|custom-face-edit-delete|custom-face-edit-fix-value|custom-face-edit-lisp|custom-face-edit-selected|custom-face-edit-value-create|custom-face-edit-value-visibility-action|custom-face-get-current-spec|custom-face-mark-to-reset-standard|custom-face-mark-to-save|custom-face-menu-create|custom-face-reset-saved|custom-face-reset-standard|custom-face-save-command|custom-face-save|custom-face-set|custom-face-standard-value|custom-face-state-set-and-redraw|custom-face-state-set|custom-face-state|custom-face-value-create|custom-face-widget-to-spec|custom-facep|custom-file|custom-filter-face-spec|custom-fix-face-spec|custom-get-fresh-buffer|custom-group-action|custom-group-link-action|custom-group-mark-to-reset-standard|custom-group-mark-to-save|custom-group-members|custom-group-menu-create|custom-group-of-mode|custom-group-reset-current|custom-group-reset-saved|custom-group-reset-standard|custom-group-sample-face-get|custom-group-save|custom-group-set|custom-group-state-set-and-redraw|custom-group-state-update|custom-group-value-create|custom-group-visibility-create|custom-guess-type|custom-handle-all-keywords|custom-handle-keyword|custom-hook-convert-widget|custom-initialize-changed|custom-initialize-default|custom-initialize-reset|custom-initialize-set|custom-load-symbol|custom-load-widget|custom-magic-reset|custom-magic-value-create|custom-make-theme-feature|custom-menu-create|custom-menu-filter|custom-mode|custom-note-var-changed|custom-notify|custom-post-filter-face-spec|custom-pre-filter-face-spec|custom-prefix-add|custom-prompt-customize-unsaved-options|custom-prompt-variable|custom-push-theme|custom-put-if-not|custom-quote|custom-redraw-magic|custom-redraw|custom-reset-faces|custom-reset-standard-save-and-update|custom-reset-variables|custom-reset|custom-save-all|custom-save-delete|custom-save-faces|custom-save-variables|custom-set-default|custom-set-minor-mode|custom-show|custom-sort-items|custom-split-regexp-maybe|custom-state-buffer-message|custom-tag-action|custom-tag-mouse-down-action|custom-theme--load-path|custom-theme-enabled-p|custom-theme-load-confirm|custom-theme-name-valid-p|custom-theme-recalc-face|custom-theme-recalc-variable|custom-theme-reset-faces|custom-theme-reset-variables|custom-theme-visit-theme|custom-toggle-hide-face|custom-toggle-hide-variable|custom-toggle-hide|custom-toggle-parent|custom-unlispify-menu-entry|custom-unlispify-tag-name|custom-unloaded-symbol-p|custom-unloaded-widget-p|custom-unsaved-options|custom-variable-action|custom-variable-backup-value|custom-variable-documentation|custom-variable-edit-lisp|custom-variable-edit|custom-variable-mark-to-reset-standard|custom-variable-mark-to-save|custom-variable-menu-create|custom-variable-prompt|custom-variable-reset-backup|custom-variable-reset-saved|custom-variable-reset-standard|custom-variable-save|custom-variable-set|custom-variable-standard-value|custom-variable-state-set-and-redraw|custom-variable-state-set|custom-variable-state|custom-variable-theme-value|custom-variable-type|custom-variable-value-create|customize-apropos-faces|customize-apropos-groups|customize-apropos-options|customize-apropos|customize-browse|customize-changed-options|customize-changed|customize-create-theme|customize-customized|customize-face-other-window|customize-face|customize-group-other-window|customize-group|customize-mark-as-set|customize-mark-to-save|customize-menu-create|customize-mode|customize-object|customize-option-other-window|customize-option|customize-package-emacs-version|customize-project|customize-push-and-save|customize-read-group|customize-rogue|customize-save-customized|customize-save-variable|customize-saved|customize-set-value|customize-set-variable|customize-target|customize-themes|customize-unsaved|customize-variable-other-window|customize-variable|customize-version-lessp|customize|cvs-add-branch-prefix|cvs-add-face|cvs-add-secondary-branch-prefix|cvs-addto-collection|cvs-append-to-ignore|cvs-append|cvs-applicable-p|cvs-buffer-check|cvs-buffer-p|cvs-bury-buffer|cvs-car|cvs-cdr|cvs-change-cvsroot|cvs-check-fileinfo|cvs-checkout|cvs-cleanup-collection|cvs-cleanup-removed|cvs-cmd-do|cvs-commit-filelist|cvs-commit-minor-wrap|cvs-create-fileinfo|cvs-defaults|cvs-diff-backup-extractor|cvs-dir-member-p|cvs-dired-noselect|cvs-do-commit|cvs-do-edit-log|cvs-do-match|cvs-do-removal|cvs-ediff-diff|cvs-ediff-exit-hook|cvs-ediff-merge|cvs-ediff-startup-hook|cvs-edit-log-filelist|cvs-edit-log-minor-wrap|cvs-edit-log-text-at-point|cvs-emerge-diff|cvs-emerge-merge|cvs-enabledp|cvs-every|cvs-examine|cvs-execute-single-file-list|cvs-execute-single-file|cvs-expand-dir-name|cvs-file-to-string|cvs-fileinfo->backup-file|cvs-fileinfo->base-rev--cmacro|cvs-fileinfo->base-rev|cvs-fileinfo->dir--cmacro|cvs-fileinfo->dir|cvs-fileinfo->file--cmacro|cvs-fileinfo->file|cvs-fileinfo->full-log--cmacro|cvs-fileinfo->full-log|cvs-fileinfo->full-name|cvs-fileinfo->full-path|cvs-fileinfo->head-rev--cmacro|cvs-fileinfo->head-rev|cvs-fileinfo->marked--cmacro|cvs-fileinfo->marked|cvs-fileinfo->merge--cmacro|cvs-fileinfo->merge|cvs-fileinfo->pp-name|cvs-fileinfo->subtype--cmacro|cvs-fileinfo->subtype|cvs-fileinfo->type--cmacro|cvs-fileinfo->type|cvs-fileinfo-from-entries|cvs-fileinfo-p--cmacro|cvs-fileinfo-p|cvs-fileinfo-pp|cvs-fileinfo-update|cvs-fileinfo<|cvs-find-modif|cvs-first|cvs-flags-defaults--cmacro|cvs-flags-defaults|cvs-flags-define|cvs-flags-desc--cmacro|cvs-flags-desc|cvs-flags-hist-sym--cmacro|cvs-flags-hist-sym|cvs-flags-p--cmacro|cvs-flags-p|cvs-flags-persist--cmacro|cvs-flags-persist|cvs-flags-qtypedesc--cmacro|cvs-flags-qtypedesc|cvs-flags-query|cvs-flags-set|cvs-get-buffer-create|cvs-get-cvsroot|cvs-get-marked|cvs-get-module|cvs-global-menu|cvs-header-msg|cvs-help|cvs-ignore-marks-p|cvs-insert-file|cvs-insert-strings|cvs-insert-visited-file|cvs-is-within-p|cvs-make-cvs-buffer|cvs-map|cvs-mark-buffer-changed|cvs-mark-fis-dead|cvs-match|cvs-menu|cvs-minor-mode|cvs-mode!|cvs-mode-acknowledge|cvs-mode-add-change-log-entry-other-window|cvs-mode-add|cvs-mode-byte-compile-files|cvs-mode-checkout|cvs-mode-commit-setup|cvs-mode-commit|cvs-mode-delete-lock|cvs-mode-diff-1|cvs-mode-diff-backup|cvs-mode-diff-head|cvs-mode-diff-map|cvs-mode-diff-repository|cvs-mode-diff-vendor|cvs-mode-diff-yesterday|cvs-mode-diff|cvs-mode-display-file|cvs-mode-do|cvs-mode-edit-log|cvs-mode-examine|cvs-mode-files|cvs-mode-find-file-other-window|cvs-mode-find-file|cvs-mode-force-command|cvs-mode-idiff-other|cvs-mode-idiff|cvs-mode-ignore|cvs-mode-imerge|cvs-mode-insert|cvs-mode-kill-buffers|cvs-mode-kill-process|cvs-mode-log|cvs-mode-map|cvs-mode-mark-all-files|cvs-mode-mark-get-modif|cvs-mode-mark-matching-files|cvs-mode-mark-on-state|cvs-mode-mark|cvs-mode-marked|cvs-mode-next-line|cvs-mode-previous-line|cvs-mode-quit|cvs-mode-remove-handled|cvs-mode-remove|cvs-mode-revert-buffer|cvs-mode-revert-to-rev|cvs-mode-run|cvs-mode-set-flags|cvs-mode-status|cvs-mode-tag|cvs-mode-toggle-mark|cvs-mode-toggle-marks|cvs-mode-tree|cvs-mode-undo|cvs-mode-unmark-all-files|cvs-mode-unmark-up|cvs-mode-unmark|cvs-mode-untag|cvs-mode-update|cvs-mode-view-file-other-window|cvs-mode-view-file|cvs-mode|cvs-mouse-toggle-mark|cvs-move-to-goal-column|cvs-or|cvs-parse-buffer|cvs-parse-commit|cvs-parse-merge|cvs-parse-msg|cvs-parse-process|cvs-parse-run-table|cvs-parse-status|cvs-parse-table|cvs-parsed-fileinfo|cvs-partition|cvs-pop-to-buffer-same-frame|cvs-prefix-define|cvs-prefix-get|cvs-prefix-make-local|cvs-prefix-set|cvs-prefix-sym|cvs-qtypedesc-complete--cmacro|cvs-qtypedesc-complete|cvs-qtypedesc-create--cmacro|cvs-qtypedesc-create|cvs-qtypedesc-hist-sym--cmacro|cvs-qtypedesc-hist-sym|cvs-qtypedesc-obj2str--cmacro|cvs-qtypedesc-obj2str|cvs-qtypedesc-p--cmacro|cvs-qtypedesc-p|cvs-qtypedesc-require--cmacro|cvs-qtypedesc-require|cvs-qtypedesc-str2obj--cmacro|cvs-qtypedesc-str2obj|cvs-query-directory|cvs-query-read|cvs-quickdir|cvs-reread-cvsrc|cvs-retrieve-revision|cvs-revert-if-needed|cvs-run-process|cvs-sentinel|cvs-set-branch-prefix|cvs-set-secondary-branch-prefix|cvs-status-current-file|cvs-status-current-tag|cvs-status-cvstrees|cvs-status-get-tags|cvs-status-minor-wrap|cvs-status-mode|cvs-status-next|cvs-status-prev|cvs-status-trees|cvs-status-vl-to-str|cvs-status|cvs-string-prefix-p|cvs-tag->name--cmacro|cvs-tag->name|cvs-tag->string|cvs-tag->type--cmacro|cvs-tag->type|cvs-tag->vlist--cmacro|cvs-tag->vlist|cvs-tag-compare-1|cvs-tag-compare|cvs-tag-lessp|cvs-tag-make--cmacro|cvs-tag-make-tag|cvs-tag-make|cvs-tag-merge|cvs-tag-p--cmacro|cvs-tag-p|cvs-tags->tree|cvs-tags-list|cvs-temp-buffer|cvs-tree-merge|cvs-tree-print|cvs-tree-tags-insert|cvs-union|cvs-update-filter|cvs-update-header|cvs-update|cvs-vc-command-advice|cwarn-font-lock-keywords|cwarn-font-lock-match-assignment-in-expression|cwarn-font-lock-match-dangerous-semicolon|cwarn-font-lock-match-reference|cwarn-font-lock-match|cwarn-inside-macro|cwarn-is-enabled|cwarn-mode-set-explicitly|cwarn-mode|cycle-spacing|cyrillic-encode-alternativnyj-char|cyrillic-encode-koi8-r-char|dabbrev--abbrev-at-point|dabbrev--find-all-expansions|dabbrev--find-expansion|dabbrev--goto-start-of-abbrev|dabbrev--ignore-buffer-p|dabbrev--ignore-case-p|dabbrev--make-friend-buffer-list|dabbrev--minibuffer-origin|dabbrev--reset-global-variables|dabbrev--safe-replace-match|dabbrev--same-major-mode-p|dabbrev--search|dabbrev--select-buffers|dabbrev--substitute-expansion|dabbrev--try-find|dabbrev-completion|dabbrev-expand|dabbrev-filter-elements|daemon-initialized|daemonp|data-debug-new-buffer|date-to-day|days-between|days-to-time|dbus--init-bus|dbus-byte-array-to-string|dbus-call-method-handler|dbus-check-event|dbus-escape-as-identifier|dbus-event-bus-name|dbus-event-interface-name|dbus-event-member-name|dbus-event-message-type|dbus-event-path-name|dbus-event-serial-number|dbus-event-service-name|dbus-get-all-managed-objects|dbus-get-all-properties|dbus-get-name-owner|dbus-get-property|dbus-get-unique-name|dbus-handle-bus-disconnect|dbus-handle-event|dbus-ignore-errors|dbus-init-bus|dbus-introspect-get-all-nodes|dbus-introspect-get-annotation-names|dbus-introspect-get-annotation|dbus-introspect-get-argument-names|dbus-introspect-get-argument|dbus-introspect-get-attribute|dbus-introspect-get-interface-names|dbus-introspect-get-interface|dbus-introspect-get-method-names|dbus-introspect-get-method|dbus-introspect-get-node-names|dbus-introspect-get-property-names|dbus-introspect-get-property|dbus-introspect-get-signal-names|dbus-introspect-get-signal|dbus-introspect-get-signature|dbus-introspect-xml|dbus-introspect|dbus-list-activatable-names|dbus-list-hash-table|dbus-list-known-names|dbus-list-names|dbus-list-queued-owners|dbus-managed-objects-handler|dbus-message-internal|dbus-method-error-internal|dbus-method-return-internal|dbus-notice-synchronous-call-errors|dbus-peer-handler|dbus-ping|dbus-property-handler|dbus-register-method|dbus-register-property|dbus-register-service|dbus-register-signal|dbus-set-property|dbus-setenv|dbus-string-to-byte-array|dbus-unescape-from-identifier|dbus-unregister-object|dbus-unregister-service|dbx|dcl-back-to-indentation-1|dcl-back-to-indentation|dcl-backward-command|dcl-beginning-of-command-p|dcl-beginning-of-command|dcl-beginning-of-statement|dcl-calc-command-indent-hang|dcl-calc-command-indent-multiple|dcl-calc-command-indent|dcl-calc-cont-indent-relative|dcl-calc-continuation-indent|dcl-command-p|dcl-delete-chars|dcl-delete-indentation|dcl-electric-character|dcl-end-of-command-p|dcl-end-of-command|dcl-end-of-statement|dcl-forward-command|dcl-get-line-type|dcl-guess-option-value|dcl-guess-option|dcl-imenu-create-index-function|dcl-indent-command-line|dcl-indent-command|dcl-indent-continuation-line|dcl-indent-line|dcl-indent-to|dcl-indentation-point|dcl-mode|dcl-option-value-basic|dcl-option-value-comment-line|dcl-option-value-margin-offset|dcl-option-value-offset|dcl-save-all-options|dcl-save-local-variable|dcl-save-mode|dcl-save-nondefault-options|dcl-save-option|dcl-set-option|dcl-show-line-type|dcl-split-line|dcl-tab|dcl-was-looking-at|deactivate-input-method|deactivate-mode-local-bindings|debug--function-list|debug--implement-debug-on-entry|debug-help-follow|debugger--backtrace-base|debugger--hide-locals|debugger--insert-locals|debugger--locals-visible-p|debugger--show-locals)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:debugger-continue|debugger-env-macro|debugger-eval-expression|debugger-frame-clear|debugger-frame-number|debugger-frame|debugger-jump|debugger-list-functions|debugger-make-xrefs|debugger-mode|debugger-record-expression|debugger-reenable|debugger-return-value|debugger-setup-buffer|debugger-step-through|debugger-toggle-locals|decf|decipher--analyze|decipher--digram-counts|decipher--digram-total|decipher-add-undo|decipher-adjacency-list|decipher-alphabet-keypress|decipher-analyze-buffer|decipher-analyze|decipher-complete-alphabet|decipher-copy-cons|decipher-digram-list|decipher-display-range|decipher-display-regexp|decipher-display-stats-buffer|decipher-frequency-count|decipher-get-undo|decipher-insert-frequency-counts|decipher-insert|decipher-keypress|decipher-last-command-char|decipher-loop-no-breaks|decipher-loop-with-breaks|decipher-make-checkpoint|decipher-mode|decipher-read-alphabet|decipher-restore-checkpoint|decipher-resync|decipher-set-map|decipher-show-alphabet|decipher-stats-buffer|decipher-stats-mode|decipher-undo|decipher|declaim|declare-ccl-program|declare-equiv-charset|decode-big5-char|decode-composition-components|decode-composition-rule|decode-hex-string|decode-hz-buffer|decode-hz-region|decode-sjis-char|decompose-region|decompose-string|decrease-left-margin|decrease-right-margin|def-gdb-auto-update-handler|def-gdb-auto-update-trigger|def-gdb-memory-format|def-gdb-memory-show-page|def-gdb-memory-unit|def-gdb-preempt-display-buffer|def-gdb-set-positive-number|def-gdb-thread-buffer-command|def-gdb-thread-buffer-gud-command|def-gdb-thread-buffer-simple-command|def-gdb-trigger-and-handler|default-command-history-filter|default-font-height|default-indent-new-line|default-line-height|default-toplevel-value|defcalcmodevar|defconst-mode-local|defcustom-c-stylevar|defcustom-mh|defezimage|defface-mh|defgeneric|defgroup-mh|defimage-speedbar|define-abbrevs|define-advice|define-auto-insert|define-ccl-program|define-char-code-property|define-charset-alias|define-charset-internal|define-charset|define-child-mode|define-coding-system-alias|define-coding-system-internal|define-coding-system|define-compilation-mode|define-compiler-macro|define-erc-module|define-erc-response-handler|define-global-abbrev|define-global-minor-mode|define-hmac-function|define-ibuffer-column|define-ibuffer-filter|define-ibuffer-op|define-ibuffer-sorter|define-inline|define-lex-analyzer|define-lex-block-analyzer|define-lex-block-type-analyzer|define-lex-keyword-type-analyzer|define-lex-regex-analyzer|define-lex-regex-type-analyzer|define-lex-sexp-type-analyzer|define-lex-simple-regex-analyzer|define-lex-string-type-analyzer|define-lex|define-mail-abbrev|define-mail-alias|define-mail-user-agent|define-mode-abbrev|define-mode-local-override|define-mode-overload-implementation|define-overload|define-overloadable-function|define-setf-expander|define-skeleton|define-translation-hash-table|define-translation-table|define-widget-keywords|defmacro-mh|defmath|defmethod|defun-cvs-mode|defun-gmm|defun-mh|defun-rcirc-command|defvar-mode-local|degrees-to-radians|dehexlify-buffer|delay-warning|delete\\\\\\\\*|delete-active-region|delete-all-overlays|delete-completion-window|delete-completion|delete-consecutive-dups|delete-dir-local-variable|delete-directory-internal|delete-duplicate-lines|delete-duplicates|delete-extract-rectangle-line|delete-extract-rectangle|delete-file-local-variable-prop-line|delete-file-local-variable|delete-forward-char|delete-frame-enabled-p|delete-if-not|delete-if|delete-instance|delete-matching-lines|delete-non-matching-lines|delete-other-frames|delete-other-windows-internal|delete-other-windows-vertically|delete-pair|delete-rectangle-line|delete-rectangle|delete-selection-helper|delete-selection-mode|delete-selection-pre-hook|delete-selection-repeat-replace-region|delete-side-window|delete-whitespace-rectangle-line|delete-whitespace-rectangle|delete-window-internal|delimit-columns-customize|delimit-columns-format|delimit-columns-rectangle-line|delimit-columns-rectangle-max|delimit-columns-rectangle|delimit-columns-region|delimit-columns-str|delphi-mode|delsel-unload-function|denato-region|derived-mode-abbrev-table-name|derived-mode-class|derived-mode-hook-name|derived-mode-init-mode-variables|derived-mode-make-docstring|derived-mode-map-name|derived-mode-merge-abbrev-tables|derived-mode-merge-keymaps|derived-mode-merge-syntax-tables|derived-mode-run-hooks|derived-mode-set-abbrev-table|derived-mode-set-keymap|derived-mode-set-syntax-table|derived-mode-setup-function-name|derived-mode-syntax-table-name|describe-bindings-internal|describe-buffer-bindings|describe-char-after|describe-char-categories|describe-char-display|describe-char-padded-string|describe-char-unicode-data|describe-char|describe-character-set|describe-chinese-environment-map|describe-coding-system|describe-copying|describe-current-coding-system-briefly|describe-current-coding-system|describe-current-input-method|describe-cyrillic-environment-map|describe-distribution|describe-european-environment-map|describe-face|describe-font|describe-fontset|describe-function-1|describe-function|describe-gnu-project|describe-indian-environment-map|describe-input-method|describe-key-briefly|describe-key|describe-language-environment|describe-minor-mode-completion-table-for-indicator|describe-minor-mode-completion-table-for-symbol|describe-minor-mode-from-indicator|describe-minor-mode-from-symbol|describe-minor-mode|describe-mode-local-bindings-in-mode|describe-mode-local-bindings|describe-no-warranty|describe-package-1|describe-package|describe-project|describe-property-list|describe-register-1|describe-specified-language-support|describe-text-category|describe-text-properties-1|describe-text-properties|describe-text-sexp|describe-text-widget|describe-theme|describe-variable-custom-version-info|describe-variable|describe-vector|desktop--check-dont-save|desktop--v2s|desktop-append-buffer-args|desktop-auto-save-cancel-timer|desktop-auto-save-disable|desktop-auto-save-enable|desktop-auto-save-set-timer|desktop-auto-save|desktop-buffer-info|desktop-buffer|desktop-change-dir|desktop-claim-lock|desktop-clear|desktop-create-buffer|desktop-file-name|desktop-full-file-name|desktop-full-lock-name|desktop-idle-create-buffers|desktop-kill|desktop-lazy-abort|desktop-lazy-complete|desktop-lazy-create-buffer|desktop-list\\\\\\\\*|desktop-load-default|desktop-load-file|desktop-outvar|desktop-owner|desktop-read|desktop-release-lock|desktop-remove|desktop-restore-file-buffer|desktop-restore-frameset|desktop-restoring-frameset-p|desktop-revert|desktop-save-buffer-p|desktop-save-frameset|desktop-save-in-desktop-dir|desktop-save-mode-off|desktop-save-mode|desktop-save|desktop-truncate|desktop-value-to-string|destructor|destructuring-bind|detect-coding-with-language-environment|detect-coding-with-priority|dframe-attached-frame|dframe-click|dframe-close-frame|dframe-current-frame|dframe-detach|dframe-double-click|dframe-frame-mode|dframe-frame-parameter|dframe-get-focus|dframe-hack-buffer-menu|dframe-handle-delete-frame|dframe-handle-iconify-frame|dframe-handle-make-frame-visible|dframe-help-echo|dframe-live-p|dframe-maybee-jump-to-attached-frame|dframe-message|dframe-mouse-event-p|dframe-mouse-hscroll|dframe-mouse-set-point|dframe-needed-height|dframe-popup-kludge|dframe-power-click|dframe-quick-mouse|dframe-reposition-frame-emacs|dframe-reposition-frame-xemacs|dframe-reposition-frame|dframe-select-attached-frame|dframe-set-timer-internal|dframe-set-timer|dframe-switch-buffer-attached-frame|dframe-temp-buffer-show-function|dframe-timer-fn|dframe-track-mouse-xemacs|dframe-track-mouse|dframe-update-keymap|dframe-with-attached-buffer|dframe-y-or-n-p|diary-add-to-list|diary-anniversary|diary-astro-day-number|diary-attrtype-convert|diary-bahai-date|diary-bahai-insert-entry|diary-bahai-insert-monthly-entry|diary-bahai-insert-yearly-entry|diary-bahai-list-entries|diary-bahai-mark-entries|diary-block|diary-check-diary-file|diary-chinese-anniversary|diary-chinese-date|diary-chinese-insert-anniversary-entry|diary-chinese-insert-entry|diary-chinese-insert-monthly-entry|diary-chinese-insert-yearly-entry|diary-chinese-list-entries|diary-chinese-mark-entries|diary-coptic-date|diary-cyclic|diary-date-display-form|diary-date|diary-day-of-year|diary-display-no-entries|diary-entry-compare|diary-entry-time|diary-ethiopic-date|diary-fancy-date-matcher|diary-fancy-date-pattern|diary-fancy-display-mode|diary-fancy-display|diary-fancy-font-lock-fontify-region-function|diary-float|diary-font-lock-date-forms|diary-font-lock-keywords-1|diary-font-lock-keywords|diary-font-lock-sexps|diary-french-date|diary-from-outlook-gnus|diary-from-outlook-internal|diary-from-outlook-rmail|diary-from-outlook|diary-goto-entry|diary-hebrew-birthday|diary-hebrew-date|diary-hebrew-insert-entry|diary-hebrew-insert-monthly-entry|diary-hebrew-insert-yearly-entry|diary-hebrew-list-entries|diary-hebrew-mark-entries|diary-hebrew-omer|diary-hebrew-parasha|diary-hebrew-rosh-hodesh|diary-hebrew-sabbath-candles|diary-hebrew-yahrzeit|diary-include-files|diary-include-other-diary-files|diary-insert-anniversary-entry|diary-insert-block-entry|diary-insert-cyclic-entry|diary-insert-entry-1|diary-insert-entry|diary-insert-monthly-entry|diary-insert-weekly-entry|diary-insert-yearly-entry|diary-islamic-date|diary-islamic-insert-entry|diary-islamic-insert-monthly-entry|diary-islamic-insert-yearly-entry|diary-islamic-list-entries|diary-islamic-mark-entries|diary-iso-date|diary-julian-date|diary-list-entries-1|diary-list-entries-2|diary-list-entries|diary-list-sexp-entries|diary-live-p|diary-lunar-phases|diary-mail-entries|diary-make-date|diary-make-entry|diary-mark-entries-1|diary-mark-entries|diary-mark-included-diary-files|diary-mark-sexp-entries|diary-mayan-date|diary-mode|diary-name-pattern|diary-ordinal-suffix|diary-outlook-format-1|diary-persian-date|diary-print-entries|diary-pull-attrs|diary-redraw-calendar|diary-remind|diary-set-header|diary-set-maybe-redraw|diary-sexp-entry|diary-show-all-entries|diary-simple-display|diary-sort-entries|diary-sunrise-sunset|diary-unhide-everything|diary-view-entries|diary-view-other-diary-entries|diary|diff-add-change-log-entries-other-window|diff-after-change-function|diff-apply-hunk|diff-auto-refine-mode|diff-backup|diff-beginning-of-file-and-junk|diff-beginning-of-file|diff-beginning-of-hunk|diff-bounds-of-file|diff-bounds-of-hunk|diff-buffer-with-file|diff-context->unified|diff-count-matches|diff-current-defun|diff-delete-empty-files|diff-delete-if-empty|diff-delete-trailing-whitespace|diff-ediff-patch|diff-end-of-file|diff-end-of-hunk|diff-file-kill|diff-file-local-copy|diff-file-next|diff-file-prev|diff-filename-drop-dir|diff-find-approx-text|diff-find-file-name|diff-find-source-location|diff-find-text|diff-fixup-modifs|diff-goto-source|diff-hunk-file-names|diff-hunk-kill|diff-hunk-next|diff-hunk-prev|diff-hunk-status-msg|diff-hunk-style|diff-hunk-text|diff-ignore-whitespace-hunk|diff-kill-applied-hunks|diff-kill-junk|diff-latest-backup-file|diff-make-unified|diff-merge-strings|diff-minor-mode|diff-mode-menu|diff-mode|diff-mouse-goto-source|diff-next-complex-hunk|diff-next-error|diff-no-select|diff-post-command-hook|diff-process-filter|diff-refine-hunk|diff-refine-preproc|diff-restrict-view|diff-reverse-direction|diff-sanity-check-context-hunk-half|diff-sanity-check-hunk|diff-sentinel|diff-setup-whitespace|diff-split-hunk|diff-splittable-p|diff-switches|diff-tell-file-name|diff-test-hunk|diff-undo|diff-unified->context|diff-unified-hunk-p|diff-write-contents-hooks|diff-xor|diff-yank-function|diff|dig-exit|dig-extract-rr|dig-invoke|dig-mode|dig-rr-get-pkix-cert|dig|digest-md5-challenge|digest-md5-digest-response|digest-md5-digest-uri|digest-md5-parse-digest-challenge|dir-locals-collect-mode-variables|dir-locals-collect-variables|dir-locals-find-file|dir-locals-get-class-variables|dir-locals-read-from-file|directory-files-recursively|directory-name-p|dired-add-file|dired-advertise|dired-advertised-find-file|dired-align-file|dired-alist-add-1|dired-at-point-prompter|dired-at-point|dired-backup-diff|dired-between-files|dired-buffer-stale-p|dired-buffers-for-dir|dired-build-subdir-alist|dired-change-marks|dired-check-switches|dired-clean-directory|dired-clean-up-after-deletion|dired-clear-alist|dired-compare-directories|dired-compress-file|dired-copy-file|dired-copy-filename-as-kill|dired-create-directory)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:dired-current-directory|dired-delete-entry|dired-delete-file|dired-desktop-buffer-misc-data|dired-diff|dired-directory-changed-p|dired-display-file|dired-dnd-do-ask-action|dired-dnd-handle-file|dired-dnd-handle-local-file|dired-dnd-popup-notice|dired-do-async-shell-command|dired-do-byte-compile|dired-do-chgrp|dired-do-chmod|dired-do-chown|dired-do-compress|dired-do-copy-regexp|dired-do-copy|dired-do-create-files-regexp|dired-do-delete|dired-do-flagged-delete|dired-do-hardlink-regexp|dired-do-hardlink|dired-do-isearch-regexp|dired-do-isearch|dired-do-kill-lines|dired-do-load|dired-do-print|dired-do-query-replace-regexp|dired-do-redisplay|dired-do-relsymlink|dired-do-rename-regexp|dired-do-rename|dired-do-search|dired-do-shell-command|dired-do-symlink-regexp|dired-do-symlink|dired-do-touch|dired-downcase|dired-file-marker|dired-file-name-at-point|dired-find-alternate-file|dired-find-buffer-nocreate|dired-find-file-other-window|dired-find-file|dired-flag-auto-save-files|dired-flag-backup-files|dired-flag-file-deletion|dired-flag-files-regexp|dired-flag-garbage-files|dired-format-columns-of-files|dired-fun-in-all-buffers|dired-get-file-for-visit|dired-get-filename|dired-get-marked-files|dired-get-subdir-max|dired-get-subdir-min|dired-get-subdir|dired-glob-regexp|dired-goto-file-1|dired-goto-file|dired-goto-next-file|dired-goto-next-nontrivial-file|dired-goto-subdir|dired-hide-all|dired-hide-details-mode|dired-hide-details-update-invisibility-spec|dired-hide-subdir|dired-in-this-tree|dired-initial-position|dired-insert-directory|dired-insert-old-subdirs|dired-insert-set-properties|dired-insert-subdir|dired-internal-do-deletions|dired-internal-noselect|dired-isearch-filenames-regexp|dired-isearch-filenames-setup|dired-isearch-filenames|dired-jump-other-window|dired-jump|dired-kill-subdir|dired-log-summary|dired-log|dired-make-absolute|dired-make-relative|dired-map-over-marks|dired-mark-directories|dired-mark-executables|dired-mark-files-containing-regexp|dired-mark-files-in-region|dired-mark-files-regexp|dired-mark-if|dired-mark-pop-up|dired-mark-prompt|dired-mark-remembered|dired-mark-subdir-files|dired-mark-symlinks|dired-mark|dired-marker-regexp|dired-maybe-insert-subdir|dired-mode|dired-mouse-find-file-other-window|dired-move-to-end-of-filename|dired-move-to-filename|dired-next-dirline|dired-next-line|dired-next-marked-file|dired-next-subdir|dired-normalize-subdir|dired-noselect|dired-other-frame|dired-other-window|dired-plural-s|dired-pop-to-buffer|dired-prev-dirline|dired-prev-marked-file|dired-prev-subdir|dired-previous-line|dired-query|dired-read-dir-and-switches|dired-read-regexp|dired-readin-insert|dired-readin|dired-relist-file|dired-remember-hidden|dired-remember-marks|dired-remove-file|dired-rename-file|dired-repeat-over-lines|dired-replace-in-string|dired-restore-desktop-buffer|dired-restore-positions|dired-revert|dired-run-shell-command|dired-safe-switches-p|dired-save-positions|dired-show-file-type|dired-sort-R-check|dired-sort-other|dired-sort-set-mode-line|dired-sort-set-modeline|dired-sort-toggle-or-edit|dired-sort-toggle|dired-string-replace-match|dired-subdir-index|dired-subdir-max|dired-summary|dired-switches-escape-p|dired-switches-recursive-p|dired-toggle-marks|dired-toggle-read-only|dired-tree-down|dired-tree-up|dired-unadvertise|dired-uncache|dired-undo|dired-unmark-all-files|dired-unmark-all-marks|dired-unmark-backward|dired-unmark|dired-up-directory|dired-upcase|dired-view-file|dired-why|dired|dirs|dirtrack-cygwin-directory-function|dirtrack-debug-message|dirtrack-debug-mode|dirtrack-debug-toggle|dirtrack-mode|dirtrack-toggle|dirtrack-windows-directory-function|dirtrack|disable-timeout|disassemble-1|disassemble-internal|disassemble-offset|display-about-screen|display-battery-mode|display-buffer--maybe-pop-up-frame-or-window|display-buffer--maybe-same-window|display-buffer--special-action|display-buffer-assq-regexp|display-buffer-in-atom-window|display-buffer-in-major-side-window|display-buffer-in-side-window|display-buffer-other-frame|display-buffer-record-window|display-call-tree|display-local-help|display-multi-font-p|display-multi-frame-p|display-splash-screen|display-startup-echo-area-message|display-startup-screen|display-table-print-array|display-time-mode|display-time-world|display-time|displaying-byte-compile-warnings|dissociated-press|dnd-get-local-file-name|dnd-get-local-file-uri|dnd-handle-one-url|dnd-insert-text|dnd-open-file|dnd-open-local-file|dnd-open-remote-url|dnd-unescape-uri|dns-get-txt-answer|dns-get|dns-inverse-get|dns-lookup-host|dns-make-network-process|dns-mode-menu|dns-mode-soa-increment-serial|dns-mode-soa-maybe-increment-serial|dns-mode|dns-query-cached|dns-query|dns-read-bytes|dns-read-int32|dns-read-name|dns-read-string-name|dns-read-txt|dns-read-type|dns-read|dns-servers-up-to-date-p|dns-set-servers|dns-write-bytes|dns-write-name|dns-write|dnsDomainIs|dnsResolve|do\\\\\\\\*|do-after-load-evaluation|do-all-symbols|do-auto-fill|do-symbols|do|doc\\\\\\\\$|doc\\\\\\\\/\\\\\\\\/|doc-file-to-info|doc-file-to-man|doc-view--current-cache-dir|doc-view-active-pages|doc-view-already-converted-p|doc-view-bookmark-jump|doc-view-bookmark-make-record|doc-view-buffer-message|doc-view-clear-cache|doc-view-clone-buffer-hook|doc-view-convert-current-doc|doc-view-current-cache-doc-pdf|doc-view-current-image|doc-view-current-info|doc-view-current-overlay|doc-view-current-page|doc-view-current-slice|doc-view-desktop-save-buffer|doc-view-dired-cache|doc-view-display|doc-view-djvu->tiff-converter-ddjvu|doc-view-doc->txt|doc-view-document->bitmap|doc-view-dvi->pdf|doc-view-enlarge|doc-view-fallback-mode|doc-view-first-page|doc-view-fit-height-to-window|doc-view-fit-page-to-window|doc-view-fit-width-to-window|doc-view-get-bounding-box|doc-view-goto-page|doc-view-guess-paper-size|doc-view-initiate-display|doc-view-insert-image|doc-view-intersection|doc-view-kill-proc-and-buffer|doc-view-kill-proc|doc-view-last-page-number|doc-view-last-page|doc-view-make-safe-dir|doc-view-menu|doc-view-minor-mode|doc-view-mode-maybe|doc-view-mode-p|doc-view-mode|doc-view-new-window-function|doc-view-next-line-or-next-page|doc-view-next-page|doc-view-odf->pdf-converter-soffice|doc-view-odf->pdf-converter-unoconv|doc-view-open-text|doc-view-pdf\\\\\\\\/ps->png|doc-view-pdf->png-converter-ghostscript|doc-view-pdf->png-converter-mupdf|doc-view-pdf->txt|doc-view-previous-line-or-previous-page|doc-view-previous-page|doc-view-ps->pdf|doc-view-ps->png-converter-ghostscript|doc-view-reconvert-doc|doc-view-reset-slice|doc-view-restore-desktop-buffer|doc-view-revert-buffer|doc-view-scale-adjust|doc-view-scale-bounding-box|doc-view-scale-reset|doc-view-scroll-down-or-previous-page|doc-view-scroll-up-or-next-page|doc-view-search-backward|doc-view-search-internal|doc-view-search-next-match|doc-view-search-no-of-matches|doc-view-search-previous-match|doc-view-search|doc-view-sentinel|doc-view-set-doc-type|doc-view-set-slice-from-bounding-box|doc-view-set-slice-using-mouse|doc-view-set-slice|doc-view-set-up-single-converter|doc-view-show-tooltip|doc-view-shrink|doc-view-sort|doc-view-start-process|doc-view-toggle-display|doctex-font-lock-\\\\\\\\^\\\\\\\\^A|doctex-font-lock-syntactic-face-function|doctex-mode|doctor-\\\\\\\\$|doctor-adjectivep|doctor-adverbp|doctor-alcohol|doctor-articlep|doctor-assm|doctor-build|doctor-chat|doctor-colorp|doctor-concat|doctor-conj|doctor-correct-spelling|doctor-death|doctor-def|doctor-define|doctor-defq|doctor-desire|doctor-desire1|doctor-doc|doctor-drug|doctor-eliza|doctor-family|doctor-fear|doctor-fix-2|doctor-fixup|doctor-forget|doctor-foul|doctor-getnoun|doctor-go|doctor-hate|doctor-hates|doctor-hates1|doctor-howdy|doctor-huh|doctor-love|doctor-loves|doctor-mach|doctor-make-string|doctor-math|doctor-meaning|doctor-mode|doctor-modifierp|doctor-mood|doctor-nmbrp|doctor-nounp|doctor-othermodifierp|doctor-plural|doctor-possess|doctor-possessivepronounp|doctor-prepp|doctor-pronounp|doctor-put-meaning|doctor-qloves|doctor-query|doctor-read-print|doctor-read-token|doctor-readin|doctor-remem|doctor-remember|doctor-replace|doctor-ret-or-read|doctor-rms|doctor-rthing|doctor-school|doctor-setprep|doctor-sexnoun|doctor-sexverb|doctor-short|doctor-shorten|doctor-sizep|doctor-sports|doctor-state|doctor-subjsearch|doctor-svo|doctor-symptoms|doctor-toke|doctor-txtype|doctor-type-symbol|doctor-type|doctor-verbp|doctor-vowelp|doctor-when|doctor-wherego|doctor-zippy|doctor|dom-add-child-before|dom-append-child|dom-attr|dom-attributes|dom-by-class|dom-by-id|dom-by-style|dom-by-tag|dom-child-by-tag|dom-children|dom-elements|dom-ensure-node|dom-node|dom-non-text-children|dom-parent|dom-pp|dom-set-attribute|dom-set-attributes|dom-tag|dom-text|dom-texts|dont-compile|double-column|double-mode|double-read-event|double-translate-key|down-ifdef|dsssl-mode|dunnet|dynamic-completion-mode|dynamic-completion-table|dynamic-setting-handle-config-changed-event|easy-menu-add-item|easy-menu-add|easy-menu-always-true-p|easy-menu-binding|easy-menu-change|easy-menu-convert-item-1|easy-menu-convert-item|easy-menu-create-menu|easy-menu-define-key|easy-menu-do-define|easy-menu-filter-return|easy-menu-get-map|easy-menu-intern|easy-menu-item-present-p|easy-menu-lookup-name|easy-menu-make-symbol|easy-menu-name-match|easy-menu-remove-item|easy-menu-remove|easy-menu-return-item|easy-mmode-define-global-mode|easy-mmode-define-keymap|easy-mmode-define-navigation|easy-mmode-define-syntax|easy-mmode-defmap|easy-mmode-defsyntax|easy-mmode-pretty-mode-name|easy-mmode-set-keymap-parents|ebnf-abn-initialize|ebnf-abn-parser|ebnf-adjust-empty|ebnf-adjust-width|ebnf-alternative-dimension|ebnf-alternative-width|ebnf-apply-style|ebnf-apply-style1|ebnf-begin-file|ebnf-begin-job|ebnf-begin-line|ebnf-bnf-initialize|ebnf-bnf-parser|ebnf-boolean|ebnf-buffer-substring|ebnf-check-style-values|ebnf-customize|ebnf-delete-style|ebnf-despool|ebnf-dimensions|ebnf-directory|ebnf-dtd-initialize|ebnf-dtd-parser|ebnf-dup-list|ebnf-ebx-initialize|ebnf-ebx-parser|ebnf-element-width|ebnf-eliminate-empty-rules|ebnf-empty-alternative|ebnf-end-of-string|ebnf-entry|ebnf-eop-horizontal|ebnf-eop-vertical|ebnf-eps-add-context|ebnf-eps-add-production|ebnf-eps-buffer|ebnf-eps-directory|ebnf-eps-file|ebnf-eps-filename|ebnf-eps-finish-and-write|ebnf-eps-footer-comment|ebnf-eps-footer|ebnf-eps-header-comment|ebnf-eps-header-footer-comment|ebnf-eps-header-footer-file|ebnf-eps-header-footer-p|ebnf-eps-header-footer-set|ebnf-eps-header-footer|ebnf-eps-header|ebnf-eps-output|ebnf-eps-production-list|ebnf-eps-region|ebnf-eps-remove-context|ebnf-eps-string|ebnf-eps-write-kill-temp|ebnf-except-dimension|ebnf-file|ebnf-find-style|ebnf-font-attributes|ebnf-font-background|ebnf-font-foreground|ebnf-font-height|ebnf-font-list|ebnf-font-name-select|ebnf-font-name|ebnf-font-select|ebnf-font-size|ebnf-font-width|ebnf-format-color|ebnf-format-float|ebnf-gen-terminal|ebnf-generate-alternative|ebnf-generate-empty|ebnf-generate-eps|ebnf-generate-except|ebnf-generate-non-terminal|ebnf-generate-one-or-more|ebnf-generate-optional|ebnf-generate-postscript|ebnf-generate-production|ebnf-generate-region|ebnf-generate-repeat|ebnf-generate-sequence|ebnf-generate-special|ebnf-generate-terminal|ebnf-generate-with-max-height|ebnf-generate-without-max-height|ebnf-generate-zero-or-more|ebnf-generate|ebnf-get-string|ebnf-horizontal-movement|ebnf-insert-ebnf-prologue|ebnf-insert-style|ebnf-iso-initialize|ebnf-iso-parser|ebnf-justify-list|ebnf-justify|ebnf-log-header|ebnf-log|ebnf-make-alternative|ebnf-make-dup-sequence|ebnf-make-empty|ebnf-make-except|ebnf-make-non-terminal|ebnf-make-one-or-more|ebnf-make-optional|ebnf-make-or-more1|ebnf-make-production|ebnf-make-repeat|ebnf-make-sequence|ebnf-make-special|ebnf-make-terminal|ebnf-make-terminal1|ebnf-make-zero-or-more|ebnf-max-width|ebnf-merge-style|ebnf-message-float|ebnf-message-info|ebnf-new-page|ebnf-newline|ebnf-node-action|ebnf-node-default|ebnf-node-dimension-func|ebnf-node-entry|ebnf-node-generation|ebnf-node-height|ebnf-node-kind|ebnf-node-list|ebnf-node-name|ebnf-node-production|ebnf-node-separator|ebnf-node-width-func|ebnf-node-width|ebnf-non-terminal-dimension|ebnf-one-or-more-dimension|ebnf-optimize|ebnf-optional-dimension|ebnf-otz-initialize|ebnf-parse-and-sort|ebnf-pop-style|ebnf-print-buffer|ebnf-print-directory|ebnf-print-file|ebnf-print-region|ebnf-production-dimension|ebnf-push-style|ebnf-range-regexp|ebnf-repeat-dimension|ebnf-reset-style|ebnf-sequence-dimension|ebnf-sequence-width)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:ebnf-setup|ebnf-shape-value|ebnf-sorter-ascending|ebnf-sorter-descending|ebnf-special-dimension|ebnf-spool-buffer|ebnf-spool-directory|ebnf-spool-file|ebnf-spool-region|ebnf-string|ebnf-syntax-buffer|ebnf-syntax-directory|ebnf-syntax-file|ebnf-syntax-region|ebnf-terminal-dimension|ebnf-terminal-dimension1|ebnf-token-alternative|ebnf-token-except|ebnf-token-optional|ebnf-token-repeat|ebnf-token-sequence|ebnf-trim-right|ebnf-vertical-movement|ebnf-yac-initialize|ebnf-yac-parser|ebnf-zero-or-more-dimension|ebrowse-back-in-position-stack|ebrowse-base-classes|ebrowse-browser-buffer-list|ebrowse-bs-file--cmacro|ebrowse-bs-file|ebrowse-bs-flags--cmacro|ebrowse-bs-flags|ebrowse-bs-name--cmacro|ebrowse-bs-name|ebrowse-bs-p--cmacro|ebrowse-bs-p|ebrowse-bs-pattern--cmacro|ebrowse-bs-pattern|ebrowse-bs-point--cmacro|ebrowse-bs-point|ebrowse-bs-scope--cmacro|ebrowse-bs-scope|ebrowse-buffer-p|ebrowse-build-tree-obarray|ebrowse-choose-from-browser-buffers|ebrowse-choose-tree|ebrowse-class-alist-for-member|ebrowse-class-declaration-regexp|ebrowse-class-in-tree|ebrowse-class-name-displayed-in-member-buffer|ebrowse-collapse-branch|ebrowse-collapse-fn|ebrowse-completing-read-value|ebrowse-const-p|ebrowse-create-tree-buffer|ebrowse-cs-file--cmacro|ebrowse-cs-file|ebrowse-cs-flags--cmacro|ebrowse-cs-flags|ebrowse-cs-name--cmacro|ebrowse-cs-name|ebrowse-cs-p--cmacro|ebrowse-cs-p|ebrowse-cs-pattern--cmacro|ebrowse-cs-pattern|ebrowse-cs-point--cmacro|ebrowse-cs-point|ebrowse-cs-scope--cmacro|ebrowse-cs-scope|ebrowse-cs-source-file--cmacro|ebrowse-cs-source-file|ebrowse-cyclic-display-next\\\\\\\\/previous-member-list|ebrowse-cyclic-successor-in-string-list|ebrowse-define-p|ebrowse-direct-base-classes|ebrowse-display-friends-member-list|ebrowse-display-function-member-list|ebrowse-display-member-buffer|ebrowse-display-member-list-for-accessor|ebrowse-display-next-member-list|ebrowse-display-previous-member-list|ebrowse-display-static-functions-member-list|ebrowse-display-static-variables-member-list|ebrowse-display-types-member-list|ebrowse-display-variables-member-list|ebrowse-displaying-friends|ebrowse-displaying-functions|ebrowse-displaying-static-functions|ebrowse-displaying-static-variables|ebrowse-displaying-types|ebrowse-displaying-variables|ebrowse-draw-file-member-info|ebrowse-draw-marks-fn|ebrowse-draw-member-attributes|ebrowse-draw-member-buffer-class-line|ebrowse-draw-member-long-fn|ebrowse-draw-member-regexp|ebrowse-draw-member-short-fn|ebrowse-draw-position-buffer|ebrowse-draw-tree-fn|ebrowse-electric-buffer-list|ebrowse-electric-choose-tree|ebrowse-electric-find-position|ebrowse-electric-get-buffer|ebrowse-electric-list-looper|ebrowse-electric-list-mode|ebrowse-electric-list-quit|ebrowse-electric-list-select|ebrowse-electric-list-undefined|ebrowse-electric-position-looper|ebrowse-electric-position-menu|ebrowse-electric-position-mode|ebrowse-electric-position-quit|ebrowse-electric-position-undefined|ebrowse-electric-select-position|ebrowse-electric-view-buffer|ebrowse-electric-view-position|ebrowse-every|ebrowse-expand-all|ebrowse-expand-branch|ebrowse-explicit-p|ebrowse-extern-c-p|ebrowse-files-list|ebrowse-files-table|ebrowse-fill-member-table|ebrowse-find-class-declaration|ebrowse-find-member-declaration|ebrowse-find-member-definition|ebrowse-find-pattern|ebrowse-find-source-file|ebrowse-for-all-trees|ebrowse-forward-in-position-stack|ebrowse-freeze-member-buffer|ebrowse-frozen-tree-buffer-name|ebrowse-function-declaration\\\\\\\\/definition-regexp|ebrowse-gather-statistics|ebrowse-globals-tree-p|ebrowse-goto-visible-member\\\\\\\\/all-member-lists|ebrowse-goto-visible-member|ebrowse-hack-electric-buffer-menu|ebrowse-hide-line|ebrowse-hs-command-line-options--cmacro|ebrowse-hs-command-line-options|ebrowse-hs-member-table--cmacro|ebrowse-hs-member-table|ebrowse-hs-p--cmacro|ebrowse-hs-p|ebrowse-hs-unused--cmacro|ebrowse-hs-unused|ebrowse-hs-version--cmacro|ebrowse-hs-version|ebrowse-ignoring-completion-case|ebrowse-inline-p|ebrowse-insert-supers|ebrowse-install-1-to-9-keys|ebrowse-kill-member-buffers-displaying|ebrowse-known-class-trees-buffer-list|ebrowse-list-of-matching-members|ebrowse-list-tree-buffers|ebrowse-mark-all-classes|ebrowse-marked-classes-p|ebrowse-member-bit-set-p|ebrowse-member-buffer-list|ebrowse-member-buffer-object-menu|ebrowse-member-buffer-p|ebrowse-member-class-name-object-menu|ebrowse-member-display-p|ebrowse-member-info-from-point|ebrowse-member-list-name|ebrowse-member-mode|ebrowse-member-mouse-2|ebrowse-member-mouse-3|ebrowse-member-name-object-menu|ebrowse-member-table|ebrowse-mouse-1-in-tree-buffer|ebrowse-mouse-2-in-tree-buffer|ebrowse-mouse-3-in-tree-buffer|ebrowse-mouse-find-member|ebrowse-move-in-position-stack|ebrowse-move-point-to-member|ebrowse-ms-definition-file--cmacro|ebrowse-ms-definition-file|ebrowse-ms-definition-pattern--cmacro|ebrowse-ms-definition-pattern|ebrowse-ms-definition-point--cmacro|ebrowse-ms-definition-point|ebrowse-ms-file--cmacro|ebrowse-ms-file|ebrowse-ms-flags--cmacro|ebrowse-ms-flags|ebrowse-ms-name--cmacro|ebrowse-ms-name|ebrowse-ms-p--cmacro|ebrowse-ms-p|ebrowse-ms-pattern--cmacro|ebrowse-ms-pattern|ebrowse-ms-point--cmacro|ebrowse-ms-point|ebrowse-ms-scope--cmacro|ebrowse-ms-scope|ebrowse-ms-visibility--cmacro|ebrowse-ms-visibility|ebrowse-mutable-p|ebrowse-name\\\\\\\\/accessor-alist-for-class-members|ebrowse-name\\\\\\\\/accessor-alist-for-visible-members|ebrowse-name\\\\\\\\/accessor-alist|ebrowse-on-class-name|ebrowse-on-member-name|ebrowse-output|ebrowse-pop\\\\\\\\/switch-to-member-buffer-for-same-tree|ebrowse-pop-from-member-to-tree-buffer|ebrowse-pop-to-browser-buffer|ebrowse-popup-menu|ebrowse-position-file-name--cmacro|ebrowse-position-file-name|ebrowse-position-info--cmacro|ebrowse-position-info|ebrowse-position-name|ebrowse-position-p--cmacro|ebrowse-position-p|ebrowse-position-point--cmacro|ebrowse-position-point|ebrowse-position-target--cmacro|ebrowse-position-target|ebrowse-position|ebrowse-pp-define-regexp|ebrowse-print-statistics-line|ebrowse-pure-virtual-p|ebrowse-push-position|ebrowse-qualified-class-name|ebrowse-read-class-name-and-go|ebrowse-read|ebrowse-redisplay-member-buffer|ebrowse-redraw-marks|ebrowse-redraw-tree|ebrowse-remove-all-member-filters|ebrowse-remove-class-and-kill-member-buffers|ebrowse-remove-class-at-point|ebrowse-rename-buffer|ebrowse-repeat-member-search|ebrowse-revert-tree-buffer-from-file|ebrowse-same-tree-member-buffer-list|ebrowse-save-class|ebrowse-save-selective|ebrowse-save-tree-as|ebrowse-save-tree|ebrowse-select-1st-to-9nth|ebrowse-set-face|ebrowse-set-mark-props|ebrowse-set-member-access-visibility|ebrowse-set-member-buffer-column-width|ebrowse-set-tree-indentation|ebrowse-show-displayed-class-in-tree|ebrowse-show-file-name-at-point|ebrowse-show-progress|ebrowse-some-member-table|ebrowse-some|ebrowse-sort-tree-list|ebrowse-statistics|ebrowse-switch-member-buffer-to-any-class|ebrowse-switch-member-buffer-to-base-class|ebrowse-switch-member-buffer-to-derived-class|ebrowse-switch-member-buffer-to-next-sibling-class|ebrowse-switch-member-buffer-to-other-class|ebrowse-switch-member-buffer-to-previous-sibling-class|ebrowse-switch-member-buffer-to-sibling-class|ebrowse-switch-to-next-member-buffer|ebrowse-symbol-regexp|ebrowse-tags-apropos|ebrowse-tags-choose-class|ebrowse-tags-complete-symbol|ebrowse-tags-display-member-buffer|ebrowse-tags-find-declaration-other-frame|ebrowse-tags-find-declaration-other-window|ebrowse-tags-find-declaration|ebrowse-tags-find-definition-other-frame|ebrowse-tags-find-definition-other-window|ebrowse-tags-find-definition|ebrowse-tags-list-members-in-file|ebrowse-tags-loop-continue|ebrowse-tags-next-file|ebrowse-tags-query-replace|ebrowse-tags-read-member\\\\\\\\+class-name|ebrowse-tags-read-name|ebrowse-tags-search-member-use|ebrowse-tags-search|ebrowse-tags-select\\\\\\\\/create-member-buffer|ebrowse-tags-view\\\\\\\\/find-member-decl\\\\\\\\/defn|ebrowse-tags-view-declaration-other-frame|ebrowse-tags-view-declaration-other-window|ebrowse-tags-view-declaration|ebrowse-tags-view-definition-other-frame|ebrowse-tags-view-definition-other-window|ebrowse-tags-view-definition|ebrowse-template-p|ebrowse-throw-list-p|ebrowse-toggle-base-class-display|ebrowse-toggle-const-member-filter|ebrowse-toggle-file-name-display|ebrowse-toggle-inline-member-filter|ebrowse-toggle-long-short-display|ebrowse-toggle-mark-at-point|ebrowse-toggle-member-attributes-display|ebrowse-toggle-private-member-filter|ebrowse-toggle-protected-member-filter|ebrowse-toggle-public-member-filter|ebrowse-toggle-pure-member-filter|ebrowse-toggle-regexp-display|ebrowse-toggle-virtual-member-filter|ebrowse-tree-at-point|ebrowse-tree-buffer-class-object-menu|ebrowse-tree-buffer-list|ebrowse-tree-buffer-object-menu|ebrowse-tree-buffer-p|ebrowse-tree-command:show-friends|ebrowse-tree-command:show-member-functions|ebrowse-tree-command:show-member-variables|ebrowse-tree-command:show-static-member-functions|ebrowse-tree-command:show-static-member-variables|ebrowse-tree-command:show-types|ebrowse-tree-mode|ebrowse-tree-obarray-as-alist|ebrowse-trim-string|ebrowse-ts-base-classes--cmacro|ebrowse-ts-base-classes|ebrowse-ts-class--cmacro|ebrowse-ts-class|ebrowse-ts-friends--cmacro|ebrowse-ts-friends|ebrowse-ts-mark--cmacro|ebrowse-ts-mark|ebrowse-ts-member-functions--cmacro|ebrowse-ts-member-functions|ebrowse-ts-member-variables--cmacro|ebrowse-ts-member-variables|ebrowse-ts-p--cmacro|ebrowse-ts-p|ebrowse-ts-static-functions--cmacro|ebrowse-ts-static-functions|ebrowse-ts-static-variables--cmacro|ebrowse-ts-static-variables|ebrowse-ts-subclasses--cmacro|ebrowse-ts-subclasses|ebrowse-ts-types--cmacro|ebrowse-ts-types|ebrowse-unhide-base-classes|ebrowse-update-member-buffer-mode-line|ebrowse-update-tree-buffer-mode-line|ebrowse-variable-declaration-regexp|ebrowse-view\\\\\\\\/find-class-declaration|ebrowse-view\\\\\\\\/find-file-and-search-pattern|ebrowse-view\\\\\\\\/find-member-declaration\\\\\\\\/definition|ebrowse-view\\\\\\\\/find-position|ebrowse-view-class-declaration|ebrowse-view-exit-fn|ebrowse-view-file-other-frame|ebrowse-view-member-declaration|ebrowse-view-member-definition|ebrowse-virtual-p|ebrowse-width-of-drawable-area|ebrowse-write-file-hook-fn|ebuffers|ebuffers3|ecase|ecomplete-display-matches|ecomplete-setup|ede--detect-ldf-predicate|ede--detect-ldf-root-predicate|ede--detect-ldf-rootonly-predicate|ede--detect-scan-directory-for-project-root|ede--detect-scan-directory-for-project|ede--detect-scan-directory-for-rootonly-project|ede--detect-stop-scan-p|ede--directory-project-add-description-to-hash|ede--directory-project-from-hash|ede--get-inode-dir-hash|ede--inode-for-dir|ede--inode-get-toplevel-open-project|ede--project-inode|ede--put-inode-dir-hash|ede-add-file|ede-add-project-autoload|ede-add-project-to-global-list|ede-add-subproject|ede-adebug-project-parent|ede-adebug-project-root|ede-adebug-project|ede-apply-object-keymap|ede-apply-preprocessor-map|ede-apply-project-local-variables|ede-apply-target-options|ede-auto-add-to-target|ede-auto-detect-in-dir|ede-auto-load-project|ede-buffer-belongs-to-project-p|ede-buffer-belongs-to-target-p|ede-buffer-documentation-files|ede-buffer-header-file|ede-buffer-mine|ede-buffer-object|ede-buffers|ede-build-forms-menu|ede-check-project-directory|ede-choose-object|ede-commit-local-variables|ede-compile-project|ede-compile-selected|ede-compile-target|ede-configuration-forms-menu|ede-convert-path|ede-cpp-root-project-child-p|ede-cpp-root-project-list-p|ede-cpp-root-project-p|ede-cpp-root-project|ede-create-tag-buttons|ede-current-project|ede-customize-current-target|ede-customize-forms-menu|ede-customize-project|ede-debug-target|ede-delete-project-from-global-list|ede-delete-target|ede-description|ede-detect-directory-for-project|ede-detect-qtest|ede-directory-get-open-project|ede-directory-get-toplevel-open-project|ede-directory-project-cons|ede-directory-project-p|ede-directory-safe-p|ede-dired-minor-mode|ede-dirmatch-installed|ede-do-dirmatch|ede-documentation-files|ede-documentation|ede-ecb-project-paths|ede-edit-file-target|ede-edit-web-page|ede-enable-generic-projects|ede-enable-locate-on-project|ede-expand-filename-impl-via-subproj|ede-expand-filename-impl|ede-expand-filename-local|ede-expand-filename|ede-file-find|ede-find-file|ede-find-nearest-file-line|ede-find-subproject-for-directory|ede-find-target|ede-flush-deleted-projects|ede-flush-directory-hash|ede-flush-project-hash|ede-get-locator-object|ede-global-list-sanity-check|ede-header-file|ede-html-documentation-files|ede-html-documentation|ede-ignore-file|ede-initialize-state-current-buffer|ede-invoke-method)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:ede-java-classpath|ede-linux-load|ede-load-cache|ede-load-project-file|ede-make-check-version|ede-make-dist|ede-make-project-local-variable|ede-map-all-subprojects|ede-map-any-target-p|ede-map-buffers|ede-map-project-buffers|ede-map-subprojects|ede-map-target-buffers|ede-map-targets|ede-menu-items-build|ede-menu-obj-of-class-p|ede-minor-mode|ede-name|ede-new-target-custom|ede-new-target|ede-new|ede-normalize-file\\\\\\\\/directory|ede-object-keybindings|ede-object-menu|ede-object-sourcecode|ede-parent-project|ede-preprocessor-map|ede-project-autoload-child-p|ede-project-autoload-dirmatch-child-p|ede-project-autoload-dirmatch-list-p|ede-project-autoload-dirmatch-p|ede-project-autoload-dirmatch|ede-project-autoload-list-p|ede-project-autoload-p|ede-project-autoload|ede-project-buffers|ede-project-child-p|ede-project-configurations-set|ede-project-directory-remove-hash|ede-project-forms-menu|ede-project-list-p|ede-project-p|ede-project-placeholder-child-p|ede-project-placeholder-list-p|ede-project-placeholder-p|ede-project-placeholder|ede-project-root-directory|ede-project-root|ede-project-sort-targets|ede-project|ede-remove-file|ede-rescan-toplevel|ede-reset-all-buffers|ede-run-target|ede-save-cache|ede-set-project-local-variable|ede-set-project-variables|ede-set|ede-singular-object|ede-source-paths|ede-sourcecode-child-p|ede-sourcecode-list-p|ede-sourcecode-p|ede-sourcecode|ede-speedbar-compile-file-project|ede-speedbar-compile-line|ede-speedbar-compile-project|ede-speedbar-edit-projectfile|ede-speedbar-file-setup|ede-speedbar-get-top-project-for-line|ede-speedbar-make-distribution|ede-speedbar-make-map|ede-speedbar-remove-file-from-target|ede-speedbar-toplevel-buttons|ede-speedbar|ede-subproject-p|ede-subproject-relative-path|ede-system-include-path|ede-tag-expand|ede-tag-find|ede-target-buffer-in-sourcelist|ede-target-buffers|ede-target-child-p|ede-target-forms-menu|ede-target-in-project-p|ede-target-list-p|ede-target-name|ede-target-p|ede-target-parent|ede-target-sourcecode|ede-target|ede-toplevel-project-or-nil|ede-toplevel-project|ede-toplevel|ede-turn-on-hook|ede-up-directory|ede-update-version|ede-upload-distribution|ede-upload-html-documentation|ede-vc-project-directory|ede-version|ede-want-any-auxiliary-files-p|ede-want-any-files-p|ede-want-any-source-files-p|ede-want-file-auxiliary-p|ede-want-file-p|ede-want-file-source-p|ede-web-browse-home|ede-with-projectfile|ede|edebug-&optional-wrapper|edebug-&rest-wrapper|edebug--called-interactively-skip|edebug--display|edebug--enter-trace|edebug--form-data-begin--cmacro|edebug--form-data-begin|edebug--form-data-end--cmacro|edebug--form-data-end|edebug--form-data-name--cmacro|edebug--form-data-name|edebug--make-form-data-entry--cmacro|edebug--make-form-data-entry|edebug--read|edebug--recursive-edit|edebug--require-cl-read|edebug--update-coverage|edebug-Continue-fast-mode|edebug-Go-nonstop-mode|edebug-Trace-fast-mode|edebug-\\`|edebug-adjust-window|edebug-after-offset|edebug-after|edebug-all-defuns|edebug-backtrace|edebug-basic-spec|edebug-before-offset|edebug-before|edebug-bounce-point|edebug-changing-windows|edebug-clear-coverage|edebug-clear-form-data-entry|edebug-clear-frequency-count|edebug-compute-previous-result|edebug-continue-mode|edebug-copy-cursor|edebug-create-eval-buffer|edebug-current-windows|edebug-cursor-expressions|edebug-cursor-offsets|edebug-debugger|edebug-defining-form|edebug-delete-eval-item|edebug-empty-cursor|edebug-enter|edebug-eval-defun|edebug-eval-display-list|edebug-eval-display|edebug-eval-expression|edebug-eval-last-sexp|edebug-eval-mode|edebug-eval-print-last-sexp|edebug-eval-redisplay|edebug-eval-result-list|edebug-eval|edebug-fast-after|edebug-fast-before|edebug-find-stop-point|edebug-form-data-symbol|edebug-form|edebug-format|edebug-forms|edebug-forward-sexp|edebug-get-displayed-buffer-points|edebug-get-form-data-entry|edebug-go-mode|edebug-goto-here|edebug-help|edebug-ignore-offset|edebug-inc-offset|edebug-initialize-offsets|edebug-install-read-eval-functions|edebug-instrument-callee|edebug-instrument-function|edebug-interactive-p-name|edebug-kill-buffer|edebug-lambda-list-keywordp|edebug-last-sexp|edebug-list-form-args|edebug-list-form|edebug-make-after-form|edebug-make-before-and-after-form|edebug-make-enter-wrapper|edebug-make-form-wrapper|edebug-make-top-form-data-entry|edebug-mark-marker|edebug-mark|edebug-match-&define|edebug-match-&key|edebug-match-¬|edebug-match-&optional|edebug-match-&or|edebug-match-&rest|edebug-match-arg|edebug-match-body|edebug-match-colon-name|edebug-match-def-body|edebug-match-def-form|edebug-match-form|edebug-match-function|edebug-match-gate|edebug-match-lambda-expr|edebug-match-list|edebug-match-name|edebug-match-nil|edebug-match-one-spec|edebug-match-place|edebug-match-sexp|edebug-match-specs|edebug-match-string|edebug-match-sublist|edebug-match-symbol|edebug-match|edebug-menu|edebug-message|edebug-mode|edebug-modify-breakpoint|edebug-move-cursor|edebug-new-cursor|edebug-next-breakpoint|edebug-next-mode|edebug-next-token-class|edebug-no-match|edebug-on-entry|edebug-outside-excursion|edebug-overlay-arrow|edebug-pop-to-buffer|edebug-previous-result|edebug-prin1-to-string|edebug-prin1|edebug-print|edebug-read-and-maybe-wrap-form|edebug-read-and-maybe-wrap-form1|edebug-read-backquote|edebug-read-comma|edebug-read-function|edebug-read-list|edebug-read-quote|edebug-read-sexp|edebug-read-storing-offsets|edebug-read-string|edebug-read-symbol|edebug-read-top-level-form|edebug-read-vector|edebug-report-error|edebug-restore-status|edebug-run-fast|edebug-run-slow|edebug-safe-eval|edebug-safe-prin1-to-string|edebug-set-breakpoint|edebug-set-buffer-points|edebug-set-conditional-breakpoint|edebug-set-cursor|edebug-set-form-data-entry|edebug-set-mode|edebug-set-windows|edebug-sexps|edebug-signal|edebug-skip-whitespace|edebug-slow-after|edebug-slow-before|edebug-sort-alist|edebug-spec-p|edebug-step-in|edebug-step-mode|edebug-step-out|edebug-step-through-mode|edebug-stop|edebug-store-after-offset|edebug-store-before-offset|edebug-storing-offsets|edebug-syntax-error|edebug-toggle-save-all-windows|edebug-toggle-save-selected-window|edebug-toggle-save-windows|edebug-toggle|edebug-top-element-required|edebug-top-element|edebug-top-level-nonstop|edebug-top-offset|edebug-trace-display|edebug-trace-mode|edebug-uninstall-read-eval-functions|edebug-unload-function|edebug-unset-breakpoint|edebug-unwrap\\\\\\\\*|edebug-unwrap|edebug-update-eval-list|edebug-var-status|edebug-view-outside|edebug-visit-eval-list|edebug-where|edebug-window-list|edebug-window-live-p|edebug-wrap-def-body|ediff-3way-comparison-job|ediff-3way-job|ediff-abbrev-jobname|ediff-abbreviate-file-name|ediff-activate-mark|ediff-add-slash-if-directory|ediff-add-to-history|ediff-ancestor-metajob|ediff-append-custom-diff|ediff-arrange-autosave-in-merge-jobs|ediff-background-face|ediff-backup|ediff-barf-if-not-control-buffer|ediff-buffer-live-p|ediff-buffer-type|ediff-buffers-internal|ediff-buffers|ediff-buffers3|ediff-bury-dir-diffs-buffer|ediff-calc-command-time|ediff-change-saved-variable|ediff-char-to-buftype|ediff-check-version|ediff-choose-syntax-table|ediff-choose-window-setup-function-automatically|ediff-cleanup-mess|ediff-cleanup-meta-buffer|ediff-clear-diff-vector|ediff-clear-fine-diff-vector|ediff-clear-fine-differences-in-one-buffer|ediff-clear-fine-differences|ediff-clone-buffer-for-current-diff-comparison|ediff-clone-buffer-for-region-comparison|ediff-clone-buffer-for-window-comparison|ediff-collect-custom-diffs|ediff-collect-diffs-metajob|ediff-color-display-p|ediff-combine-diffs|ediff-comparison-metajob3|ediff-compute-custom-diffs-maybe|ediff-compute-toolbar-width|ediff-convert-diffs-to-overlays|ediff-convert-fine-diffs-to-overlays|ediff-convert-standard-filename|ediff-copy-A-to-B|ediff-copy-A-to-C|ediff-copy-B-to-A|ediff-copy-B-to-C|ediff-copy-C-to-A|ediff-copy-C-to-B|ediff-copy-diff|ediff-copy-list|ediff-copy-to-buffer|ediff-current-file|ediff-customize|ediff-deactivate-mark|ediff-debug-info|ediff-default-suspend-function|ediff-defvar-local|ediff-delete-all-matches|ediff-delete-overlay|ediff-delete-temp-files|ediff-destroy-control-frame|ediff-device-type|ediff-diff-at-point|ediff-diff-to-diff|ediff-diff3-job|ediff-dir-diff-copy-file|ediff-directories-command|ediff-directories-internal|ediff-directories|ediff-directories3-command|ediff-directories3|ediff-directory-revisions-internal|ediff-directory-revisions|ediff-display-pixel-height|ediff-display-pixel-width|ediff-dispose-of-meta-buffer|ediff-dispose-of-variant-according-to-user|ediff-do-merge|ediff-documentation|ediff-draw-dir-diffs|ediff-empty-diff-region-p|ediff-empty-overlay-p|ediff-event-buffer|ediff-event-key|ediff-event-point|ediff-exec-process|ediff-extract-diffs|ediff-extract-diffs3|ediff-file-attributes|ediff-file-checked-in-p|ediff-file-checked-out-p|ediff-file-compressed-p|ediff-file-modtime|ediff-file-remote-p|ediff-file-size|ediff-filegroup-action|ediff-filename-magic-p|ediff-files-command|ediff-files-internal|ediff-files|ediff-files3|ediff-fill-leading-zero|ediff-find-file|ediff-focus-on-regexp-matches|ediff-format-bindings-of|ediff-format-date|ediff-forward-word|ediff-frame-char-height|ediff-frame-char-width|ediff-frame-has-dedicated-windows|ediff-frame-iconified-p|ediff-frame-unsplittable-p|ediff-get-buffer|ediff-get-combined-region|ediff-get-default-directory-name|ediff-get-default-file-name|ediff-get-diff-overlay-from-diff-record|ediff-get-diff-overlay|ediff-get-diff-posn|ediff-get-diff3-group|ediff-get-difference|ediff-get-directory-files-under-revision|ediff-get-file-eqstatus|ediff-get-fine-diff-vector-from-diff-record|ediff-get-fine-diff-vector|ediff-get-group-buffer|ediff-get-group-comparison-func|ediff-get-group-merge-autostore-dir|ediff-get-group-objA|ediff-get-group-objB|ediff-get-group-objC|ediff-get-group-regexp|ediff-get-lines-to-region-end|ediff-get-lines-to-region-start|ediff-get-meta-info|ediff-get-meta-overlay-at-pos|ediff-get-next-window|ediff-get-region-contents|ediff-get-region-size-coefficient|ediff-get-selected-buffers|ediff-get-session-activity-marker|ediff-get-session-buffer|ediff-get-session-number-at-pos|ediff-get-session-objA-name|ediff-get-session-objA|ediff-get-session-objB-name|ediff-get-session-objB|ediff-get-session-objC-name|ediff-get-session-objC|ediff-get-session-status|ediff-get-state-of-ancestor|ediff-get-state-of-diff|ediff-get-state-of-merge|ediff-get-symbol-from-alist|ediff-get-value-according-to-buffer-type|ediff-get-visible-buffer-window|ediff-get-window-by-clicking|ediff-good-frame-under-mouse|ediff-goto-word|ediff-has-face-support-p|ediff-has-gutter-support-p|ediff-has-toolbar-support-p|ediff-help-for-quick-help|ediff-help-message-line-length|ediff-hide-face|ediff-hide-marked-sessions|ediff-hide-regexp-matches|ediff-highlight-diff-in-one-buffer|ediff-highlight-diff|ediff-in-control-buffer-p|ediff-indent-help-message|ediff-inferior-compare-regions|ediff-insert-dirs-in-meta-buffer|ediff-insert-session-activity-marker-in-meta-buffer|ediff-insert-session-info-in-meta-buffer|ediff-insert-session-status-in-meta-buffer|ediff-install-fine-diff-if-necessary|ediff-intersect-directories|ediff-intersection|ediff-janitor|ediff-jump-to-difference-at-point|ediff-jump-to-difference|ediff-keep-window-config|ediff-key-press-event-p|ediff-kill-bottom-toolbar|ediff-kill-buffer-carefully|ediff-last-command-char|ediff-listable-file|ediff-load-version-control|ediff-looks-like-combined-merge|ediff-make-base-title|ediff-make-bottom-toolbar|ediff-make-bullet-proof-overlay|ediff-make-cloned-buffer|ediff-make-current-diff-overlay|ediff-make-diff2-buffer|ediff-make-empty-tmp-file|ediff-make-fine-diffs|ediff-make-frame-position|ediff-make-indirect-buffer|ediff-make-narrow-control-buffer-id|ediff-make-new-meta-list-element|ediff-make-new-meta-list-header|ediff-make-or-kill-fine-diffs|ediff-make-overlay|ediff-make-temp-file|ediff-make-wide-control-buffer-id|ediff-make-wide-display|ediff-mark-diff-as-space-only|ediff-mark-for-hiding-at-pos|ediff-mark-for-operation-at-pos|ediff-mark-if-equal|ediff-mark-session-for-hiding|ediff-mark-session-for-operation|ediff-maybe-checkout|ediff-maybe-save-and-delete-merge|ediff-member|ediff-merge-buffers-with-ancestor|ediff-merge-buffers|ediff-merge-changed-from-default-p|ediff-merge-command|ediff-merge-directories-command|ediff-merge-directories-with-ancestor-command)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:ediff-merge-directories-with-ancestor|ediff-merge-directories|ediff-merge-directory-revisions-with-ancestor|ediff-merge-directory-revisions|ediff-merge-files-with-ancestor|ediff-merge-files|ediff-merge-job|ediff-merge-metajob|ediff-merge-on-startup|ediff-merge-region-is-non-clash-to-skip|ediff-merge-region-is-non-clash|ediff-merge-revisions-with-ancestor|ediff-merge-revisions|ediff-merge-with-ancestor-command|ediff-merge-with-ancestor-job|ediff-merge-with-ancestor|ediff-merge|ediff-message-if-verbose|ediff-meta-insert-file-info1|ediff-meta-mark-equal-files|ediff-meta-mode|ediff-meta-session-p|ediff-meta-show-patch|ediff-metajob3|ediff-minibuffer-with-setup-hook|ediff-mode|ediff-mouse-event-p|ediff-move-overlay|ediff-multiframe-setup-p|ediff-narrow-control-frame-p|ediff-narrow-job|ediff-next-difference|ediff-next-meta-item|ediff-next-meta-item1|ediff-next-meta-overlay-start|ediff-no-fine-diffs-p|ediff-nonempty-string-p|ediff-nuke-selective-display|ediff-one-filegroup-metajob|ediff-operate-on-marked-sessions|ediff-operate-on-windows|ediff-other-buffer|ediff-overlay-buffer|ediff-overlay-end|ediff-overlay-get|ediff-overlay-put|ediff-overlay-start|ediff-overlayp|ediff-paint-background-regions-in-one-buffer|ediff-paint-background-regions|ediff-patch-buffer|ediff-patch-file-form-meta|ediff-patch-file-internal|ediff-patch-file|ediff-patch-job|ediff-patch-metajob|ediff-place-flags-in-buffer|ediff-place-flags-in-buffer1|ediff-pop-diff|ediff-position-region|ediff-prepare-error-list|ediff-prepare-meta-buffer|ediff-previous-difference|ediff-previous-meta-item|ediff-previous-meta-item1|ediff-previous-meta-overlay-start|ediff-print-diff-vector|ediff-problematic-session-p|ediff-process-filter|ediff-process-sentinel|ediff-profile|ediff-quit-meta-buffer|ediff-quit|ediff-re-merge|ediff-read-event|ediff-read-file-name|ediff-really-quit|ediff-recenter-ancestor|ediff-recenter-one-window|ediff-recenter|ediff-redraw-directory-group-buffer|ediff-redraw-registry-buffer|ediff-refresh-control-frame|ediff-refresh-mode-lines|ediff-region-help-echo|ediff-regions-internal|ediff-regions-linewise|ediff-regions-wordwise|ediff-registry-action|ediff-reload-keymap|ediff-remove-flags-from-buffer|ediff-replace-session-activity-marker-in-meta-buffer|ediff-replace-session-status-in-meta-buffer|ediff-reset-mouse|ediff-restore-diff-in-merge-buffer|ediff-restore-diff|ediff-restore-highlighting|ediff-restore-protected-variables|ediff-restore-variables|ediff-revert-buffers-then-recompute-diffs|ediff-revision-metajob|ediff-revision|ediff-safe-to-quit|ediff-same-contents|ediff-same-file-contents-lists|ediff-same-file-contents|ediff-save-buffer-in-file|ediff-save-buffer|ediff-save-diff-region|ediff-save-protected-variables|ediff-save-time|ediff-save-variables|ediff-scroll-horizontally|ediff-scroll-vertically|ediff-select-difference|ediff-select-lowest-window|ediff-set-actual-diff-options|ediff-set-diff-options|ediff-set-diff-overlays-in-one-buffer|ediff-set-difference|ediff-set-face-pixmap|ediff-set-file-eqstatus|ediff-set-fine-diff-properties-in-one-buffer|ediff-set-fine-diff-properties|ediff-set-fine-diff-vector|ediff-set-fine-overlays-for-combined-merge|ediff-set-fine-overlays-in-one-buffer|ediff-set-help-message|ediff-set-help-overlays|ediff-set-keys|ediff-set-merge-mode|ediff-set-meta-overlay|ediff-set-overlay-face|ediff-set-read-only-in-buf-A|ediff-set-session-status|ediff-set-state-of-all-diffs-in-all-buffers|ediff-set-state-of-diff-in-all-buffers|ediff-set-state-of-diff|ediff-set-state-of-merge|ediff-setup-control-buffer|ediff-setup-control-frame|ediff-setup-diff-regions|ediff-setup-diff-regions3|ediff-setup-fine-diff-regions|ediff-setup-keymap|ediff-setup-meta-map|ediff-setup-windows-default|ediff-setup-windows-multiframe-compare|ediff-setup-windows-multiframe-merge|ediff-setup-windows-multiframe|ediff-setup-windows-plain-compare|ediff-setup-windows-plain-merge|ediff-setup-windows-plain|ediff-setup-windows|ediff-setup|ediff-show-all-diffs|ediff-show-ancestor|ediff-show-current-session-meta-buffer|ediff-show-diff-output|ediff-show-dir-diffs|ediff-show-meta-buff-from-registry|ediff-show-meta-buffer|ediff-show-registry|ediff-shrink-window-C|ediff-skip-merge-region-if-changed-from-default-p|ediff-skip-unsuitable-frames|ediff-spy-after-mouse|ediff-status-info|ediff-strip-last-dir|ediff-strip-mode-line-format|ediff-submit-report|ediff-suspend|ediff-swap-buffers|ediff-test-save-region|ediff-toggle-autorefine|ediff-toggle-filename-truncation|ediff-toggle-help|ediff-toggle-hilit|ediff-toggle-ignore-case|ediff-toggle-multiframe|ediff-toggle-narrow-region|ediff-toggle-read-only|ediff-toggle-regexp-match|ediff-toggle-show-clashes-only|ediff-toggle-skip-changed-regions|ediff-toggle-skip-similar|ediff-toggle-split|ediff-toggle-use-toolbar|ediff-toggle-verbose-help-meta-buffer|ediff-toggle-wide-display|ediff-truncate-string-left|ediff-unhighlight-diff-in-one-buffer|ediff-unhighlight-diff|ediff-unhighlight-diffs-totally-in-one-buffer|ediff-unhighlight-diffs-totally|ediff-union|ediff-unique-buffer-name|ediff-unmark-all-for-hiding|ediff-unmark-all-for-operation|ediff-unselect-and-select-difference|ediff-unselect-difference|ediff-up-meta-hierarchy|ediff-update-diffs|ediff-update-markers-in-dir-meta-buffer|ediff-update-meta-buffer|ediff-update-registry|ediff-update-session-marker-in-dir-meta-buffer|ediff-use-toolbar-p|ediff-user-grabbed-mouse|ediff-valid-difference-p|ediff-verify-file-buffer|ediff-verify-file-merge-buffer|ediff-version|ediff-visible-region|ediff-whitespace-diff-region-p|ediff-window-display-p|ediff-window-ok-for-display|ediff-window-visible-p|ediff-windows-job|ediff-windows-linewise|ediff-windows-wordwise|ediff-windows|ediff-with-current-buffer|ediff-with-syntax-table|ediff-word-mode-job|ediff-wordify|ediff-write-merge-buffer-and-maybe-kill|ediff-xemacs-select-frame-hook|ediff|ediff3-files-command|ediff3|edir-merge-revisions-with-ancestor|edir-merge-revisions|edir-revisions|edirs-merge-with-ancestor|edirs-merge|edirs|edirs3|edit-abbrevs-mode|edit-abbrevs-redefine|edit-abbrevs|edit-bookmarks|edit-kbd-macro|edit-last-kbd-macro|edit-named-kbd-macro|edit-picture|edit-tab-stops-note-changes|edit-tab-stops|edmacro-finish-edit|edmacro-fix-menu-commands|edmacro-format-keys|edmacro-insert-key|edmacro-mode|edmacro-parse-keys|edmacro-sanitize-for-string|edt-advance|edt-append|edt-backup|edt-beginning-of-line|edt-bind-function-key-default|edt-bind-function-key|edt-bind-gold-key-default|edt-bind-gold-key|edt-bind-key-default|edt-bind-key|edt-bind-standard-key|edt-bottom-check|edt-bottom|edt-change-case|edt-change-direction|edt-character|edt-check-match|edt-check-prefix|edt-check-selection|edt-copy-rectangle|edt-copy|edt-current-line|edt-cut-or-copy|edt-cut-rectangle-insert-mode|edt-cut-rectangle-overstrike-mode|edt-cut-rectangle|edt-cut|edt-default-emulation-setup|edt-default-menu-bar-update-buffers|edt-define-key|edt-delete-character|edt-delete-entire-line|edt-delete-line|edt-delete-previous-character|edt-delete-to-beginning-of-line|edt-delete-to-beginning-of-word|edt-delete-to-end-of-line|edt-delete-word|edt-display-the-time|edt-duplicate-line|edt-duplicate-word|edt-electric-helpify|edt-electric-keypad-help|edt-electric-user-keypad-help|edt-eliminate-all-tabs|edt-emulation-off|edt-emulation-on|edt-end-of-line-backward|edt-end-of-line-forward|edt-end-of-line|edt-exit|edt-fill-region|edt-find-backward|edt-find-forward|edt-find-next-backward|edt-find-next-forward|edt-find-next|edt-find|edt-form-feed-insert|edt-goto-percentage|edt-indent-or-fill-region|edt-key-not-assigned|edt-keypad-help|edt-learn|edt-line-backward|edt-line-forward|edt-line-to-bottom-of-window|edt-line-to-middle-of-window|edt-line-to-top-of-window|edt-line|edt-load-keys|edt-lowercase|edt-mark-section-wisely|edt-match-beginning|edt-match-end|edt-next-line|edt-one-word-backward|edt-one-word-forward|edt-page-backward|edt-page-forward|edt-page|edt-paragraph-backward|edt-paragraph-forward|edt-paragraph|edt-paste-rectangle-insert-mode|edt-paste-rectangle-overstrike-mode|edt-paste-rectangle|edt-previous-line|edt-quit|edt-remember|edt-replace|edt-reset|edt-restore-key|edt-scroll-line|edt-scroll-window-backward-line|edt-scroll-window-backward|edt-scroll-window-forward-line|edt-scroll-window-forward|edt-scroll-window|edt-sect-backward|edt-sect-forward|edt-sect|edt-select-default-global-map|edt-select-mode|edt-select-user-global-map|edt-select|edt-sentence-backward|edt-sentence-forward|edt-sentence|edt-set-match|edt-set-screen-width-132|edt-set-screen-width-80|edt-set-scroll-margins|edt-setup-default-bindings|edt-show-match-markers|edt-split-window|edt-substitute|edt-switch-global-maps|edt-tab-insert|edt-toggle-capitalization-of-word|edt-toggle-select|edt-top-check|edt-top|edt-undelete-character|edt-undelete-line|edt-undelete-word|edt-unset-match|edt-uppercase|edt-user-emulation-setup|edt-user-menu-bar-update-buffers|edt-window-bottom|edt-window-top|edt-with-position|edt-word-backward|edt-word-forward|edt-word|edt-y-or-n-p|ehelp-command|eieio--check-type|eieio--class--unused-0|eieio--class-children|eieio--class-class-allocation-a|eieio--class-class-allocation-custom-group|eieio--class-class-allocation-custom-label|eieio--class-class-allocation-custom|eieio--class-class-allocation-doc|eieio--class-class-allocation-printer|eieio--class-class-allocation-protection|eieio--class-class-allocation-type|eieio--class-class-allocation-values|eieio--class-default-object-cache|eieio--class-initarg-tuples|eieio--class-options|eieio--class-parent|eieio--class-protection|eieio--class-public-a|eieio--class-public-custom-group|eieio--class-public-custom-label|eieio--class-public-custom|eieio--class-public-d|eieio--class-public-doc|eieio--class-public-printer|eieio--class-public-type|eieio--class-symbol-obarray|eieio--class-symbol|eieio--defalias|eieio--defgeneric-init-form|eieio--define-field-accessors|eieio--defmethod|eieio--object--unused-0|eieio--object-class|eieio--object-name|eieio--scoped-class|eieio--with-scoped-class|eieio-add-new-slot|eieio-attribute-to-initarg|eieio-barf-if-slot-unbound|eieio-browse|eieio-c3-candidate|eieio-c3-merge-lists|eieio-class-children-fast|eieio-class-children|eieio-class-name|eieio-class-parent|eieio-class-parents-fast|eieio-class-parents|eieio-class-precedence-bfs|eieio-class-precedence-c3|eieio-class-precedence-dfs|eieio-class-precedence-list|eieio-class-slot-name-index|eieio-class-un-autoload|eieio-copy-parents-into-subclass|eieio-custom-mode|eieio-custom-object-apply-reset|eieio-custom-toggle-hide|eieio-custom-toggle-parent|eieio-custom-widget-insert|eieio-customize-object-group|eieio-customize-object|eieio-default-eval-maybe|eieio-default-superclass-child-p|eieio-default-superclass-list-p|eieio-default-superclass-p|eieio-default-superclass|eieio-defclass-autoload|eieio-defclass|eieio-defgeneric-form-primary-only-one|eieio-defgeneric-form-primary-only|eieio-defgeneric-form|eieio-defgeneric-reset-generic-form-primary-only-one|eieio-defgeneric-reset-generic-form-primary-only|eieio-defgeneric-reset-generic-form|eieio-defgeneric|eieio-defmethod|eieio-done-customizing|eieio-edebug-prin1-to-string|eieio-eval-default-p|eieio-filter-slot-type|eieio-generic-call-primary-only|eieio-generic-call|eieio-generic-form|eieio-help-class|eieio-help-constructor|eieio-help-generic|eieio-initarg-to-attribute|eieio-instance-inheritor-child-p|eieio-instance-inheritor-list-p|eieio-instance-inheritor-p|eieio-instance-inheritor-slot-boundp|eieio-instance-inheritor|eieio-instance-tracker-child-p|eieio-instance-tracker-find|eieio-instance-tracker-list-p|eieio-instance-tracker-p|eieio-instance-tracker|eieio-list-prin1|eieio-named-child-p|eieio-named-list-p|eieio-named-p|eieio-named|eieio-object-abstract-to-value|eieio-object-class-name|eieio-object-class|eieio-object-match|eieio-object-name-string|eieio-object-name|eieio-object-p|eieio-object-set-name-string|eieio-object-value-create|eieio-object-value-get|eieio-object-value-to-abstract|eieio-oref-default|eieio-oref|eieio-oset-default|eieio-oset|eieio-override-prin1|eieio-perform-slot-validation-for-default|eieio-perform-slot-validation|eieio-persistent-child-p|eieio-persistent-convert-list-to-object|eieio-persistent-list-p|eieio-persistent-p|eieio-persistent-path-relative)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:eieio-persistent-read|eieio-persistent-save-interactive|eieio-persistent-save|eieio-persistent-slot-type-is-class-p|eieio-persistent-validate\\\\\\\\/fix-slot-value|eieio-persistent|eieio-read-customization-group|eieio-set-defaults|eieio-singleton-child-p|eieio-singleton-list-p|eieio-singleton-p|eieio-singleton|eieio-slot-name-index|eieio-slot-originating-class-p|eieio-slot-value-create|eieio-slot-value-get|eieio-specialized-key-to-generic-key|eieio-speedbar-buttons|eieio-speedbar-child-description|eieio-speedbar-child-make-tag-lines|eieio-speedbar-child-p|eieio-speedbar-create-engine|eieio-speedbar-create|eieio-speedbar-customize-line|eieio-speedbar-derive-line-path|eieio-speedbar-description|eieio-speedbar-directory-button-child-p|eieio-speedbar-directory-button-list-p|eieio-speedbar-directory-button-p|eieio-speedbar-directory-button|eieio-speedbar-expand|eieio-speedbar-file-button-child-p|eieio-speedbar-file-button-list-p|eieio-speedbar-file-button-p|eieio-speedbar-file-button|eieio-speedbar-find-nearest-object|eieio-speedbar-handle-click|eieio-speedbar-item-info|eieio-speedbar-line-path|eieio-speedbar-list-p|eieio-speedbar-make-map|eieio-speedbar-make-tag-line|eieio-speedbar-object-buttonname|eieio-speedbar-object-children|eieio-speedbar-object-click|eieio-speedbar-object-expand|eieio-speedbar-p|eieio-speedbar|eieio-unbind-method-implementations|eieio-validate-class-slot-value|eieio-validate-slot-value|eieio-version|eieio-widget-test-class-child-p|eieio-widget-test-class-list-p|eieio-widget-test-class-p|eieio-widget-test-class|eieiomt-add|eieiomt-install|eieiomt-method-list|eieiomt-next|eieiomt-sym-optimize|eighth|eldoc--message-command-p|eldoc-add-command-completions|eldoc-add-command|eldoc-display-message-no-interference-p|eldoc-display-message-p|eldoc-edit-message-commands|eldoc-message|eldoc-minibuffer-message|eldoc-mode|eldoc-pre-command-refresh-echo-area|eldoc-print-current-symbol-info|eldoc-remove-command-completions|eldoc-remove-command|eldoc-schedule-timer|electric--after-char-pos|electric--sort-post-self-insertion-hook|electric-apropos|electric-buffer-list|electric-buffer-menu-looper|electric-buffer-menu-mode|electric-buffer-update-highlight|electric-command-apropos|electric-describe-bindings|electric-describe-function|electric-describe-key|electric-describe-mode|electric-describe-syntax|electric-describe-variable|electric-help-command-loop|electric-help-ctrl-x-prefix|electric-help-execute-extended|electric-help-exit|electric-help-help|electric-help-mode|electric-help-retain|electric-help-undefined|electric-helpify|electric-icon-brace|electric-indent-just-newline|electric-indent-local-mode|electric-indent-mode|electric-indent-post-self-insert-function|electric-layout-mode|electric-layout-post-self-insert-function|electric-newline-and-maybe-indent|electric-nroff-mode|electric-nroff-newline|electric-pair-mode|electric-pascal-colon|electric-pascal-equal|electric-pascal-hash|electric-pascal-semi-or-dot|electric-pascal-tab|electric-pascal-terminate-line|electric-perl-terminator|electric-verilog-backward-sexp|electric-verilog-colon|electric-verilog-forward-sexp|electric-verilog-semi-with-comment|electric-verilog-semi|electric-verilog-tab|electric-verilog-terminate-and-indent|electric-verilog-terminate-line|electric-verilog-tick|electric-view-lossage|el-get[-\\\\\\\\w]*|elide-head-show|elide-head|elint-add-required-env|elint-check-cond-form|elint-check-condition-case-form|elint-check-conditional-form|elint-check-defalias-form|elint-check-defcustom-form|elint-check-defun-form|elint-check-defvar-form|elint-check-function-form|elint-check-let-form|elint-check-macro-form|elint-check-quote-form|elint-check-setq-form|elint-clear-log|elint-current-buffer|elint-defun|elint-directory|elint-display-log|elint-env-add-env|elint-env-add-func|elint-env-add-global-var|elint-env-add-macro|elint-env-add-var|elint-env-find-func|elint-env-find-var|elint-env-macro-env|elint-env-macrop|elint-error|elint-file|elint-find-args-in-code|elint-find-autoloaded-variables|elint-find-builtin-args|elint-find-builtins|elint-find-next-top-form|elint-form|elint-forms|elint-get-args|elint-get-log-buffer|elint-get-top-forms|elint-init-env|elint-init-form|elint-initialize|elint-log-message|elint-log|elint-make-env|elint-make-top-form|elint-match-args|elint-output|elint-put-function-args|elint-scan-doc-file|elint-set-mode-line|elint-top-form-form|elint-top-form-pos|elint-top-form|elint-unbound-variable|elint-update-env|elint-warning|elisp--beginning-of-sexp|elisp--byte-code-comment|elisp--company-doc-buffer|elisp--company-doc-string|elisp--company-location|elisp--current-symbol|elisp--docstring-first-line|elisp--docstring-format-sym-doc|elisp--eval-defun-1|elisp--eval-defun|elisp--eval-last-sexp-print-value|elisp--eval-last-sexp|elisp--expect-function-p|elisp--fnsym-in-current-sexp|elisp--form-quoted-p|elisp--function-argstring|elisp--get-fnsym-args-string|elisp--get-var-docstring|elisp--highlight-function-argument|elisp--last-data-store|elisp--local-variables-1|elisp--local-variables|elisp--preceding-sexp|elisp--xref-find-apropos|elisp--xref-find-definitions|elisp--xref-identifier-completion-table|elisp--xref-identifier-file|elisp-byte-code-mode|elisp-byte-code-syntax-propertize|elisp-completion-at-point|elisp-eldoc-documentation-function|elisp-index-search|elisp-last-sexp-toggle-display|elisp-xref-find|elp--instrumented-p|elp--make-wrapper|elp-elapsed-time|elp-instrument-function|elp-instrument-list|elp-instrument-package|elp-output-insert-symname|elp-output-result|elp-pack-number|elp-profilable-p|elp-reset-all|elp-reset-function|elp-reset-list|elp-restore-all|elp-restore-function|elp-restore-list|elp-results-jump-to-definition|elp-results|elp-set-master|elp-sort-by-average-time|elp-sort-by-call-count|elp-sort-by-total-time|elp-unload-function|elp-unset-master|emacs-bzr-get-version|emacs-bzr-version-bzr|emacs-bzr-version-dirstate|emacs-index-search|emacs-lisp-byte-compile-and-load|emacs-lisp-byte-compile|emacs-lisp-macroexpand|emacs-lisp-mode|emacs-lock--can-auto-unlock|emacs-lock--exit-locked-buffer|emacs-lock--kill-buffer-query-functions|emacs-lock--kill-emacs-hook|emacs-lock--kill-emacs-query-functions|emacs-lock--set-mode|emacs-lock-live-process-p|emacs-lock-mode|emacs-lock-unload-function|emacs-repository-get-version|emacs-session-filename|emacs-session-save|emerge-abort|emerge-auto-advance|emerge-buffers-with-ancestor|emerge-buffers|emerge-combine-versions-edit|emerge-combine-versions-internal|emerge-combine-versions-register|emerge-combine-versions|emerge-command-exit|emerge-compare-buffers|emerge-convert-diffs-to-markers|emerge-copy-as-kill-A|emerge-copy-as-kill-B|emerge-copy-modes|emerge-count-matches-string|emerge-default-A|emerge-default-B|emerge-define-key-if-possible|emerge-defvar-local|emerge-edit-mode|emerge-execute-line|emerge-extract-diffs|emerge-extract-diffs3|emerge-fast-mode|emerge-file-names|emerge-files-command|emerge-files-exit|emerge-files-internal|emerge-files-remote|emerge-files-with-ancestor-command|emerge-files-with-ancestor-internal|emerge-files-with-ancestor-remote|emerge-files-with-ancestor|emerge-files|emerge-find-difference-A|emerge-find-difference-B|emerge-find-difference-merge|emerge-find-difference|emerge-find-difference1|emerge-force-define-key|emerge-get-diff3-group|emerge-goto-line|emerge-handle-local-variables|emerge-hash-string-into-string|emerge-insert-A|emerge-insert-B|emerge-join-differences|emerge-jump-to-difference|emerge-line-number-in-buf|emerge-line-numbers|emerge-make-auto-save-file-name|emerge-make-diff-list|emerge-make-diff3-list|emerge-make-temp-file|emerge-mark-difference|emerge-merge-directories|emerge-mode|emerge-new-flags|emerge-next-difference|emerge-one-line-window|emerge-operate-on-windows|emerge-place-flags-in-buffer|emerge-place-flags-in-buffer1|emerge-position-region|emerge-prepare-error-list|emerge-previous-difference|emerge-protect-metachars|emerge-query-and-call|emerge-query-save-buffer|emerge-query-write-file|emerge-quit|emerge-read-file-name|emerge-really-quit|emerge-recenter|emerge-refresh-mode-line|emerge-remember-buffer-characteristics|emerge-remote-exit|emerge-remove-flags-in-buffer|emerge-restore-buffer-characteristics|emerge-restore-variables|emerge-revision-with-ancestor-internal|emerge-revisions-internal|emerge-revisions-with-ancestor|emerge-revisions|emerge-save-variables|emerge-scroll-down|emerge-scroll-left|emerge-scroll-reset|emerge-scroll-right|emerge-scroll-up|emerge-select-A-edit|emerge-select-A|emerge-select-B-edit|emerge-select-B|emerge-select-difference|emerge-select-prefer-Bs|emerge-select-version|emerge-set-combine-template|emerge-set-combine-versions-template|emerge-set-keys|emerge-set-merge-mode|emerge-setup-fixed-keymaps|emerge-setup-windows|emerge-setup-with-ancestor|emerge-setup|emerge-show-file-name|emerge-skip-prefers|emerge-split-difference|emerge-trim-difference|emerge-unique-buffer-name|emerge-unselect-and-select-difference|emerge-unselect-difference|emerge-unslashify-name|emerge-validate-difference|emerge-verify-file-buffer|emerge-write-and-delete|en\\\\\\\\/disable-command|enable-flow-control-on|enable-flow-control|encode-big5-char|encode-coding-char|encode-composition-components|encode-composition-rule|encode-hex-string|encode-hz-buffer|encode-hz-region|encode-sjis-char|encode-time-value|encoded-string-description|end-kbd-macro|end-of-buffer-other-window|end-of-icon-defun|end-of-paragraph-text|end-of-sexp|end-of-thing|end-of-visible-line|end-of-visual-line|endp|enlarge-window-horizontally|enlarge-window|enriched-after-change-major-mode|enriched-before-change-major-mode|enriched-decode-background|enriched-decode-display-prop|enriched-decode-foreground|enriched-decode|enriched-encode-other-face|enriched-encode|enriched-face-ans|enriched-get-file-width|enriched-handle-display-prop|enriched-insert-indentation|enriched-make-annotation|enriched-map-property-regions|enriched-mode-map|enriched-mode|enriched-next-annotation|enriched-remove-header|epa--decode-coding-string|epa--derived-mode-p|epa--encode-coding-string|epa--find-coding-system-for-mime-charset|epa--insert-keys|epa--key-list-revert-buffer|epa--key-widget-action|epa--key-widget-button-face-get|epa--key-widget-help-echo|epa--key-widget-value-create|epa--list-keys|epa--marked-keys|epa--read-signature-type|epa--select-keys|epa--select-safe-coding-system|epa--show-key|epa-decrypt-armor-in-region|epa-decrypt-file|epa-decrypt-region|epa-delete-keys|epa-dired-do-decrypt|epa-dired-do-encrypt|epa-dired-do-sign|epa-dired-do-verify|epa-display-error|epa-display-info|epa-display-verify-result|epa-encrypt-file|epa-encrypt-region|epa-exit-buffer|epa-export-keys|epa-file--file-name-regexp-set|epa-file-disable|epa-file-enable|epa-file-find-file-hook|epa-file-handler|epa-file-name-regexp-update|epa-global-mail-mode|epa-import-armor-in-region|epa-import-keys-region|epa-import-keys|epa-info-mode|epa-insert-keys|epa-key-list-mode|epa-key-mode|epa-list-keys|epa-list-secret-keys|epa-mail-decrypt|epa-mail-encrypt|epa-mail-import-keys|epa-mail-mode|epa-mail-sign|epa-mail-verify|epa-mark-key|epa-passphrase-callback-function|epa-progress-callback-function|epa-read-file-name|epa-select-keys|epa-sign-file|epa-sign-region|epa-unmark-key|epa-verify-cleartext-in-region|epa-verify-file|epa-verify-region|epatch-buffer|epatch|epg--args-from-sig-notations|epg--check-error-for-decrypt|epg--clear-string|epg--decode-coding-string|epg--decode-hexstring|epg--decode-percent-escape|epg--decode-quotedstring|epg--encode-coding-string|epg--gv-nreverse|epg--import-keys-1|epg--list-keys-1|epg--make-sub-key-1|epg--make-temp-file|epg--process-filter|epg--prompt-GET_BOOL-untrusted_key\\\\\\\\.override|epg--prompt-GET_BOOL|epg--start|epg--status-\\\\\\\\*SIG|epg--status-BADARMOR|epg--status-BADSIG|epg--status-DECRYPTION_FAILED|epg--status-DECRYPTION_OKAY|epg--status-DELETE_PROBLEM|epg--status-ENC_TO|epg--status-ERRSIG|epg--status-EXPKEYSIG|epg--status-EXPSIG|epg--status-GET_BOOL|epg--status-GET_HIDDEN|epg--status-GET_LINE|epg--status-GOODSIG|epg--status-IMPORTED|epg--status-IMPORT_OK|epg--status-IMPORT_PROBLEM|epg--status-IMPORT_RES|epg--status-INV_RECP|epg--status-INV_SGNR|epg--status-KEYEXPIRED|epg--status-KEYREVOKED|epg--status-KEY_CREATED|epg--status-KEY_NOT_CREATED|epg--status-NEED_PASSPHRASE|epg--status-NEED_PASSPHRASE_PIN|epg--status-NEED_PASSPHRASE_SYM|epg--status-NODATA)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:epg--status-NOTATION_DATA|epg--status-NOTATION_NAME|epg--status-NO_PUBKEY|epg--status-NO_RECP|epg--status-NO_SECKEY|epg--status-NO_SGNR|epg--status-POLICY_URL|epg--status-PROGRESS|epg--status-REVKEYSIG|epg--status-SIG_CREATED|epg--status-TRUST_FULLY|epg--status-TRUST_MARGINAL|epg--status-TRUST_NEVER|epg--status-TRUST_ULTIMATE|epg--status-TRUST_UNDEFINED|epg--status-UNEXPECTED|epg--status-USERID_HINT|epg--status-VALIDSIG|epg--time-from-seconds|epg-cancel|epg-check-configuration|epg-config--compare-version|epg-config--parse-version|epg-configuration|epg-context--make|epg-context-armor--cmacro|epg-context-armor|epg-context-cipher-algorithm--cmacro|epg-context-cipher-algorithm|epg-context-compress-algorithm--cmacro|epg-context-compress-algorithm|epg-context-digest-algorithm--cmacro|epg-context-digest-algorithm|epg-context-edit-callback--cmacro|epg-context-edit-callback|epg-context-error-output--cmacro|epg-context-error-output|epg-context-home-directory--cmacro|epg-context-home-directory|epg-context-include-certs--cmacro|epg-context-include-certs|epg-context-operation--cmacro|epg-context-operation|epg-context-output-file--cmacro|epg-context-output-file|epg-context-passphrase-callback--cmacro|epg-context-passphrase-callback|epg-context-pinentry-mode--cmacro|epg-context-pinentry-mode|epg-context-process--cmacro|epg-context-process|epg-context-program--cmacro|epg-context-program|epg-context-progress-callback--cmacro|epg-context-progress-callback|epg-context-protocol--cmacro|epg-context-protocol|epg-context-result--cmacro|epg-context-result-for|epg-context-result|epg-context-set-armor|epg-context-set-passphrase-callback|epg-context-set-progress-callback|epg-context-set-result-for|epg-context-set-signers|epg-context-set-textmode|epg-context-sig-notations--cmacro|epg-context-sig-notations|epg-context-signers--cmacro|epg-context-signers|epg-context-textmode--cmacro|epg-context-textmode|epg-data-file--cmacro|epg-data-file|epg-data-string--cmacro|epg-data-string|epg-decode-dn|epg-decrypt-file|epg-decrypt-string|epg-delete-keys|epg-delete-output-file|epg-dn-from-string|epg-edit-key|epg-encrypt-file|epg-encrypt-string|epg-error-to-string|epg-errors-to-string|epg-expand-group|epg-export-keys-to-file|epg-export-keys-to-string|epg-generate-key-from-file|epg-generate-key-from-string|epg-import-keys-from-file|epg-import-keys-from-server|epg-import-keys-from-string|epg-import-result-considered--cmacro|epg-import-result-considered|epg-import-result-imported--cmacro|epg-import-result-imported-rsa--cmacro|epg-import-result-imported-rsa|epg-import-result-imported|epg-import-result-imports--cmacro|epg-import-result-imports|epg-import-result-new-revocations--cmacro|epg-import-result-new-revocations|epg-import-result-new-signatures--cmacro|epg-import-result-new-signatures|epg-import-result-new-sub-keys--cmacro|epg-import-result-new-sub-keys|epg-import-result-new-user-ids--cmacro|epg-import-result-new-user-ids|epg-import-result-no-user-id--cmacro|epg-import-result-no-user-id|epg-import-result-not-imported--cmacro|epg-import-result-not-imported|epg-import-result-secret-imported--cmacro|epg-import-result-secret-imported|epg-import-result-secret-read--cmacro|epg-import-result-secret-read|epg-import-result-secret-unchanged--cmacro|epg-import-result-secret-unchanged|epg-import-result-to-string|epg-import-result-unchanged--cmacro|epg-import-result-unchanged|epg-import-status-fingerprint--cmacro|epg-import-status-fingerprint|epg-import-status-new--cmacro|epg-import-status-new|epg-import-status-reason--cmacro|epg-import-status-reason|epg-import-status-secret--cmacro|epg-import-status-secret|epg-import-status-signature--cmacro|epg-import-status-signature|epg-import-status-sub-key--cmacro|epg-import-status-sub-key|epg-import-status-user-id--cmacro|epg-import-status-user-id|epg-key-owner-trust--cmacro|epg-key-owner-trust|epg-key-signature-class--cmacro|epg-key-signature-class|epg-key-signature-creation-time--cmacro|epg-key-signature-creation-time|epg-key-signature-expiration-time--cmacro|epg-key-signature-expiration-time|epg-key-signature-exportable-p--cmacro|epg-key-signature-exportable-p|epg-key-signature-key-id--cmacro|epg-key-signature-key-id|epg-key-signature-pubkey-algorithm--cmacro|epg-key-signature-pubkey-algorithm|epg-key-signature-user-id--cmacro|epg-key-signature-user-id|epg-key-signature-validity--cmacro|epg-key-signature-validity|epg-key-sub-key-list--cmacro|epg-key-sub-key-list|epg-key-user-id-list--cmacro|epg-key-user-id-list|epg-list-keys|epg-make-context|epg-make-data-from-file--cmacro|epg-make-data-from-file|epg-make-data-from-string--cmacro|epg-make-data-from-string|epg-make-import-result--cmacro|epg-make-import-result|epg-make-import-status--cmacro|epg-make-import-status|epg-make-key--cmacro|epg-make-key-signature--cmacro|epg-make-key-signature|epg-make-key|epg-make-new-signature--cmacro|epg-make-new-signature|epg-make-sig-notation--cmacro|epg-make-sig-notation|epg-make-signature--cmacro|epg-make-signature|epg-make-sub-key--cmacro|epg-make-sub-key|epg-make-user-id--cmacro|epg-make-user-id|epg-new-signature-class--cmacro|epg-new-signature-class|epg-new-signature-creation-time--cmacro|epg-new-signature-creation-time|epg-new-signature-digest-algorithm--cmacro|epg-new-signature-digest-algorithm|epg-new-signature-fingerprint--cmacro|epg-new-signature-fingerprint|epg-new-signature-pubkey-algorithm--cmacro|epg-new-signature-pubkey-algorithm|epg-new-signature-to-string|epg-new-signature-type--cmacro|epg-new-signature-type|epg-passphrase-callback-function|epg-read-output|epg-receive-keys|epg-reset|epg-sig-notation-critical--cmacro|epg-sig-notation-critical|epg-sig-notation-human-readable--cmacro|epg-sig-notation-human-readable|epg-sig-notation-name--cmacro|epg-sig-notation-name|epg-sig-notation-value--cmacro|epg-sig-notation-value|epg-sign-file|epg-sign-keys|epg-sign-string|epg-signature-class--cmacro|epg-signature-class|epg-signature-creation-time--cmacro|epg-signature-creation-time|epg-signature-digest-algorithm--cmacro|epg-signature-digest-algorithm|epg-signature-expiration-time--cmacro|epg-signature-expiration-time|epg-signature-fingerprint--cmacro|epg-signature-fingerprint|epg-signature-key-id--cmacro|epg-signature-key-id|epg-signature-notations--cmacro|epg-signature-notations|epg-signature-pubkey-algorithm--cmacro|epg-signature-pubkey-algorithm|epg-signature-status--cmacro|epg-signature-status|epg-signature-to-string|epg-signature-validity--cmacro|epg-signature-validity|epg-signature-version--cmacro|epg-signature-version|epg-start-decrypt|epg-start-delete-keys|epg-start-edit-key|epg-start-encrypt|epg-start-export-keys|epg-start-generate-key|epg-start-import-keys|epg-start-receive-keys|epg-start-sign-keys|epg-start-sign|epg-start-verify|epg-sub-key-algorithm--cmacro|epg-sub-key-algorithm|epg-sub-key-capability--cmacro|epg-sub-key-capability|epg-sub-key-creation-time--cmacro|epg-sub-key-creation-time|epg-sub-key-expiration-time--cmacro|epg-sub-key-expiration-time|epg-sub-key-fingerprint--cmacro|epg-sub-key-fingerprint|epg-sub-key-id--cmacro|epg-sub-key-id|epg-sub-key-length--cmacro|epg-sub-key-length|epg-sub-key-secret-p--cmacro|epg-sub-key-secret-p|epg-sub-key-validity--cmacro|epg-sub-key-validity|epg-user-id-signature-list--cmacro|epg-user-id-signature-list|epg-user-id-string--cmacro|epg-user-id-string|epg-user-id-validity--cmacro|epg-user-id-validity|epg-verify-file|epg-verify-result-to-string|epg-verify-string|epg-wait-for-completion|epg-wait-for-status|equalp|erc-active-buffer|erc-add-dangerous-host|erc-add-default-channel|erc-add-entry-to-list|erc-add-fool|erc-add-keyword|erc-add-pal|erc-add-query|erc-add-scroll-to-bottom|erc-add-server-user|erc-add-timestamp|erc-add-to-input-ring|erc-all-buffer-names|erc-already-logged-in|erc-arrange-session-in-multiple-windows|erc-auto-query|erc-autoaway-mode|erc-autojoin-add|erc-autojoin-after-ident|erc-autojoin-channels-delayed|erc-autojoin-channels|erc-autojoin-disable|erc-autojoin-enable|erc-autojoin-mode|erc-autojoin-remove|erc-away-time|erc-banlist-finished|erc-banlist-store|erc-banlist-update|erc-beep-on-match|erc-beg-of-input-line|erc-bol|erc-browse-emacswiki-lisp|erc-browse-emacswiki|erc-buffer-filter|erc-buffer-list-with-nick|erc-buffer-list|erc-buffer-visible|erc-button-add-button|erc-button-add-buttons-1|erc-button-add-buttons|erc-button-add-face|erc-button-add-nickname-buttons|erc-button-beats-to-time|erc-button-click-button|erc-button-describe-symbol|erc-button-disable|erc-button-enable|erc-button-mode|erc-button-next-function|erc-button-next|erc-button-press-button|erc-button-previous|erc-button-remove-old-buttons|erc-button-setup|erc-call-hooks|erc-cancel-timer|erc-canonicalize-server-name|erc-capab-identify-mode|erc-change-user-nickname|erc-channel-begin-receiving-names|erc-channel-end-receiving-names|erc-channel-list|erc-channel-names|erc-channel-p|erc-channel-receive-names|erc-channel-user-admin--cmacro|erc-channel-user-admin-p|erc-channel-user-admin|erc-channel-user-halfop--cmacro|erc-channel-user-halfop-p|erc-channel-user-halfop|erc-channel-user-last-message-time--cmacro|erc-channel-user-last-message-time|erc-channel-user-op--cmacro|erc-channel-user-op-p|erc-channel-user-op|erc-channel-user-owner--cmacro|erc-channel-user-owner-p|erc-channel-user-owner|erc-channel-user-p--cmacro|erc-channel-user-p|erc-channel-user-voice--cmacro|erc-channel-user-voice-p|erc-channel-user-voice|erc-clear-input-ring|erc-client-info|erc-cmd-AMSG|erc-cmd-APPENDTOPIC|erc-cmd-AT|erc-cmd-AWAY|erc-cmd-BANLIST|erc-cmd-BL|erc-cmd-BYE|erc-cmd-CHANNEL|erc-cmd-CLEAR|erc-cmd-CLEARTOPIC|erc-cmd-COUNTRY|erc-cmd-CTCP|erc-cmd-DATE|erc-cmd-DCC|erc-cmd-DEOP|erc-cmd-DESCRIBE|erc-cmd-EXIT|erc-cmd-GAWAY|erc-cmd-GQ|erc-cmd-GQUIT|erc-cmd-H|erc-cmd-HELP|erc-cmd-IDLE|erc-cmd-IGNORE|erc-cmd-J|erc-cmd-JOIN|erc-cmd-KICK|erc-cmd-LASTLOG|erc-cmd-LEAVE|erc-cmd-LIST|erc-cmd-LOAD|erc-cmd-M|erc-cmd-MASSUNBAN|erc-cmd-ME'S|erc-cmd-ME|erc-cmd-MODE|erc-cmd-MSG|erc-cmd-MUB|erc-cmd-N|erc-cmd-NAMES|erc-cmd-NICK|erc-cmd-NOTICE|erc-cmd-NOTIFY|erc-cmd-OP|erc-cmd-OPS|erc-cmd-PART|erc-cmd-PING|erc-cmd-Q|erc-cmd-QUERY|erc-cmd-QUIT|erc-cmd-QUOTE|erc-cmd-RECONNECT|erc-cmd-SAY|erc-cmd-SERVER|erc-cmd-SET|erc-cmd-SIGNOFF|erc-cmd-SM|erc-cmd-SQUERY|erc-cmd-SV|erc-cmd-T|erc-cmd-TIME|erc-cmd-TOPIC|erc-cmd-UNIGNORE|erc-cmd-VAR|erc-cmd-VARIABLE|erc-cmd-WHOAMI|erc-cmd-WHOIS|erc-cmd-WHOLEFT|erc-cmd-WI|erc-cmd-WL|erc-cmd-default|erc-cmd-ezb|erc-coding-system-for-target|erc-command-indicator|erc-command-name|erc-command-no-process-p|erc-command-symbol|erc-complete-word-at-point|erc-complete-word|erc-completion-mode|erc-compute-full-name|erc-compute-nick|erc-compute-port|erc-compute-server|erc-connection-established|erc-controls-highlight|erc-controls-interpret|erc-controls-propertize|erc-controls-strip|erc-create-imenu-index|erc-ctcp-query-ACTION|erc-ctcp-query-CLIENTINFO|erc-ctcp-query-DCC|erc-ctcp-query-ECHO|erc-ctcp-query-FINGER|erc-ctcp-query-PING|erc-ctcp-query-TIME|erc-ctcp-query-USERINFO|erc-ctcp-query-VERSION|erc-ctcp-reply-CLIENTINFO|erc-ctcp-reply-ECHO|erc-ctcp-reply-FINGER|erc-ctcp-reply-PING|erc-ctcp-reply-TIME|erc-ctcp-reply-VERSION|erc-current-network|erc-current-nick-p|erc-current-nick|erc-current-time|erc-dcc-mode|erc-debug-missing-hooks|erc-decode-coding-string|erc-decode-parsed-server-response|erc-decode-string-from-target|erc-default-server-handler|erc-default-target|erc-define-catalog-entry|erc-define-catalog|erc-define-minor-mode|erc-delete-dangerous-host|erc-delete-default-channel|erc-delete-dups|erc-delete-fool|erc-delete-if|erc-delete-keyword|erc-delete-pal|erc-delete-query|erc-determine-network|erc-determine-parameters|erc-directory-writable-p|erc-display-command|erc-display-error-notice|erc-display-line-1|erc-display-line|erc-display-message-highlight|erc-display-message|erc-display-msg|erc-display-prompt|erc-display-server-message|erc-downcase|erc-echo-notice-in-active-buffer|erc-echo-notice-in-active-non-server-buffer|erc-echo-notice-in-default-buffer|erc-echo-notice-in-first-user-buffer|erc-echo-notice-in-minibuffer|erc-echo-notice-in-server-buffer|erc-echo-notice-in-target-buffer|erc-echo-notice-in-user-and-target-buffers|erc-echo-notice-in-user-buffers|erc-echo-timestamp|erc-emacs-time-to-erc-time|erc-encode-coding-string|erc-end-of-input-line|erc-ensure-channel-name|erc-error|erc-extract-command-from-line|erc-extract-nick|erc-ezb-add-session|erc-ezb-end-of-session-list|erc-ezb-get-login|erc-ezb-identify)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:erc-ezb-init-session-list|erc-ezb-initialize|erc-ezb-lookup-action|erc-ezb-notice-autodetect|erc-ezb-select-session|erc-ezb-select|erc-faces-in|erc-fill-disable|erc-fill-enable|erc-fill-mode|erc-fill-regarding-timestamp|erc-fill-static|erc-fill-variable|erc-fill|erc-find-file|erc-find-parsed-property|erc-find-script-file|erc-format-@nick|erc-format-away-status|erc-format-channel-modes|erc-format-lag-time|erc-format-message|erc-format-my-nick|erc-format-network|erc-format-nick|erc-format-privmessage|erc-format-target-and\\\\\\\\/or-network|erc-format-target-and\\\\\\\\/or-server|erc-format-target|erc-format-timestamp|erc-function-arglist|erc-generate-new-buffer-name|erc-get-arglist|erc-get-bg-color-face|erc-get-buffer-create|erc-get-buffer|erc-get-channel-mode-from-keypress|erc-get-channel-nickname-alist|erc-get-channel-nickname-list|erc-get-channel-user-list|erc-get-channel-user|erc-get-fg-color-face|erc-get-hook|erc-get-parsed-vector-nick|erc-get-parsed-vector-type|erc-get-parsed-vector|erc-get-server-nickname-alist|erc-get-server-nickname-list|erc-get-server-user|erc-get-user-mode-prefix|erc-get|erc-go-to-log-matches-buffer|erc-grab-region|erc-group-list|erc-handle-irc-url|erc-handle-login|erc-handle-parsed-server-response|erc-handle-unknown-server-response|erc-handle-user-status-change|erc-hide-current-message-p|erc-hide-fools|erc-hide-timestamps|erc-highlight-error|erc-highlight-notice|erc-identd-mode|erc-identd-start|erc-identd-stop|erc-ignored-reply-p|erc-ignored-user-p|erc-imenu-setup|erc-initialize-log-marker|erc-input-action|erc-input-message|erc-input-ring-setup|erc-insert-aligned|erc-insert-mode-command|erc-insert-timestamp-left-and-right|erc-insert-timestamp-left|erc-insert-timestamp-right|erc-invite-only-mode|erc-irccontrols-disable|erc-irccontrols-enable|erc-irccontrols-mode|erc-is-message-ctcp-and-not-action-p|erc-is-message-ctcp-p|erc-is-valid-nick-p|erc-ison-p|erc-iswitchb|erc-join-channel|erc-keep-place-disable|erc-keep-place-enable|erc-keep-place-mode|erc-keep-place|erc-kill-buffer-function|erc-kill-channel|erc-kill-input|erc-kill-query-buffers|erc-kill-server|erc-list-button|erc-list-disable|erc-list-enable|erc-list-handle-322|erc-list-insert-item|erc-list-install-322-handler|erc-list-join|erc-list-kill|erc-list-make-string|erc-list-match|erc-list-menu-mode|erc-list-menu-sort-by-column|erc-list-mode|erc-list-revert|erc-list|erc-load-irc-script-lines|erc-load-irc-script|erc-load-script|erc-log-aux|erc-log-irc-protocol|erc-log-matches-come-back|erc-log-matches-make-buffer|erc-log-matches|erc-log-mode|erc-log|erc-logging-enabled|erc-login|erc-lurker-cleanup|erc-lurker-initialize|erc-lurker-maybe-trim|erc-lurker-p|erc-lurker-update-status|erc-make-message-variable-name|erc-make-mode-line-buffer-name|erc-make-notice|erc-make-obsolete-variable|erc-make-obsolete|erc-make-read-only|erc-match-current-nick-p|erc-match-dangerous-host-p|erc-match-directed-at-fool-p|erc-match-disable|erc-match-enable|erc-match-fool-p|erc-match-keyword-p|erc-match-message|erc-match-mode|erc-match-pal-p|erc-member-if|erc-member-ignore-case|erc-menu-add|erc-menu-disable|erc-menu-enable|erc-menu-mode|erc-menu-remove|erc-menu|erc-message-english-PART|erc-message-target|erc-message-type-member|erc-message|erc-migrate-modules|erc-mode|erc-modes|erc-modified-channels-display|erc-modified-channels-object|erc-modified-channels-remove-buffer|erc-modified-channels-update|erc-move-to-prompt-disable|erc-move-to-prompt-enable|erc-move-to-prompt-mode|erc-move-to-prompt-setup|erc-move-to-prompt|erc-munge-invisibility-spec|erc-netsplit-JOIN|erc-netsplit-MODE|erc-netsplit-QUIT|erc-netsplit-disable|erc-netsplit-enable|erc-netsplit-install-message-catalogs|erc-netsplit-mode|erc-netsplit-timer|erc-network-name|erc-network|erc-networks-disable|erc-networks-enable|erc-networks-mode|erc-next-command|erc-nick-at-point|erc-nick-equal-p|erc-nick-popup|erc-nickname-in-use|erc-nickserv-identify-mode|erc-nickserv-identify|erc-noncommands-disable|erc-noncommands-enable|erc-noncommands-mode|erc-normalize-port|erc-notifications-mode|erc-notify-mode|erc-occur|erc-once-with-server-event|erc-open-server-buffer-p|erc-open-tls-stream|erc-open|erc-page-mode|erc-parse-modes|erc-parse-prefix|erc-parse-server-response|erc-parse-user|erc-part-from-channel|erc-part-reason-normal|erc-part-reason-various|erc-part-reason-zippy|erc-pcomplete-disable|erc-pcomplete-enable|erc-pcomplete-mode|erc-pcomplete|erc-pcompletions-at-point|erc-popup-input-buffer|erc-port-equal|erc-port-to-string|erc-ports-list|erc-previous-command|erc-process-away|erc-process-ctcp-query|erc-process-ctcp-reply|erc-process-input-line|erc-process-script-line|erc-process-sentinel-1|erc-process-sentinel-2|erc-process-sentinel|erc-prompt|erc-propertize|erc-put-text-properties|erc-put-text-property|erc-query-buffer-p|erc-query|erc-quit\\\\\\\\/part-reason-default|erc-quit-reason-normal|erc-quit-reason-various|erc-quit-reason-zippy|erc-quit-server|erc-readonly-disable|erc-readonly-enable|erc-readonly-mode|erc-remove-channel-member|erc-remove-channel-user|erc-remove-channel-users|erc-remove-current-channel-member|erc-remove-entry-from-list|erc-remove-if-not|erc-remove-server-user|erc-remove-text-properties-region|erc-remove-user|erc-replace-current-command|erc-replace-match-subexpression-in-string|erc-replace-mode|erc-replace-regexp-in-string|erc-response-p--cmacro|erc-response-p|erc-response\\\\\\\\.command--cmacro|erc-response\\\\\\\\.command-args--cmacro|erc-response\\\\\\\\.command-args|erc-response\\\\\\\\.command|erc-response\\\\\\\\.contents--cmacro|erc-response\\\\\\\\.contents|erc-response\\\\\\\\.sender--cmacro|erc-response\\\\\\\\.sender|erc-response\\\\\\\\.unparsed--cmacro|erc-response\\\\\\\\.unparsed|erc-restore-text-properties|erc-retrieve-catalog-entry|erc-ring-disable|erc-ring-enable|erc-ring-mode|erc-save-buffer-in-logs|erc-scroll-to-bottom|erc-scrolltobottom-disable|erc-scrolltobottom-enable|erc-scrolltobottom-mode|erc-sec-to-time|erc-seconds-to-string|erc-select-read-args|erc-select-startup-file|erc-select|erc-send-action|erc-send-command|erc-send-ctcp-message|erc-send-ctcp-notice|erc-send-current-line|erc-send-distinguish-noncommands|erc-send-input-line|erc-send-input|erc-send-line|erc-send-message|erc-server-001|erc-server-002|erc-server-003|erc-server-004|erc-server-005|erc-server-221|erc-server-250|erc-server-251|erc-server-252|erc-server-253|erc-server-254|erc-server-255|erc-server-256|erc-server-257|erc-server-258|erc-server-259|erc-server-265|erc-server-266|erc-server-275|erc-server-290|erc-server-301|erc-server-303|erc-server-305|erc-server-306|erc-server-307|erc-server-311|erc-server-312|erc-server-313|erc-server-314|erc-server-315|erc-server-317|erc-server-318|erc-server-319|erc-server-320|erc-server-321-message|erc-server-321|erc-server-322-message|erc-server-322|erc-server-323|erc-server-324|erc-server-328|erc-server-329|erc-server-330|erc-server-331|erc-server-332|erc-server-333|erc-server-341|erc-server-352|erc-server-353|erc-server-366|erc-server-367|erc-server-368|erc-server-369|erc-server-371|erc-server-372|erc-server-374|erc-server-375|erc-server-376|erc-server-377|erc-server-378|erc-server-379|erc-server-391|erc-server-401|erc-server-403|erc-server-404|erc-server-405|erc-server-406|erc-server-412|erc-server-421|erc-server-422|erc-server-431|erc-server-432|erc-server-433|erc-server-437|erc-server-442|erc-server-445|erc-server-446|erc-server-451|erc-server-461|erc-server-462|erc-server-463|erc-server-464|erc-server-465|erc-server-474|erc-server-475|erc-server-477|erc-server-481|erc-server-482|erc-server-483|erc-server-484|erc-server-485|erc-server-491|erc-server-501|erc-server-502|erc-server-671|erc-server-ERROR|erc-server-INVITE|erc-server-JOIN|erc-server-KICK|erc-server-MODE|erc-server-MOTD|erc-server-NICK|erc-server-NOTICE|erc-server-PART|erc-server-PING|erc-server-PONG|erc-server-PRIVMSG|erc-server-QUIT|erc-server-TOPIC|erc-server-WALLOPS|erc-server-buffer-live-p|erc-server-buffer-p|erc-server-buffer|erc-server-connect|erc-server-filter-function|erc-server-join-channel|erc-server-process-alive|erc-server-reconnect-p|erc-server-reconnect|erc-server-select|erc-server-send-ping|erc-server-send-queue|erc-server-send|erc-server-setup-periodical-ping|erc-server-user-buffers--cmacro|erc-server-user-buffers|erc-server-user-full-name--cmacro|erc-server-user-full-name|erc-server-user-host--cmacro|erc-server-user-host|erc-server-user-info--cmacro|erc-server-user-info|erc-server-user-login--cmacro|erc-server-user-login|erc-server-user-nickname--cmacro|erc-server-user-nickname|erc-server-user-p--cmacro|erc-server-user-p|erc-services-mode|erc-set-active-buffer|erc-set-channel-key|erc-set-channel-limit|erc-set-current-nick|erc-set-initial-user-mode|erc-set-modes|erc-set-network-name|erc-set-topic|erc-set-write-file-functions|erc-setup-buffer|erc-shorten-server-name|erc-show-timestamps|erc-smiley-disable|erc-smiley-enable|erc-smiley-mode|erc-smiley|erc-sort-channel-users-alphabetically|erc-sort-channel-users-by-activity|erc-sort-strings|erc-sound-mode|erc-speedbar-browser|erc-spelling-mode|erc-split-line|erc-split-multiline-safe|erc-ssl|erc-stamp-disable|erc-stamp-enable|erc-stamp-mode|erc-string-invisible-p|erc-string-no-properties|erc-string-to-emacs-time|erc-string-to-port|erc-subseq|erc-time-diff|erc-time-gt|erc-timestamp-mode|erc-timestamp-offset|erc-tls|erc-toggle-channel-mode|erc-toggle-ctcp-autoresponse|erc-toggle-debug-irc-protocol|erc-toggle-flood-control|erc-toggle-interpret-controls|erc-toggle-timestamps|erc-track-add-to-mode-line|erc-track-disable|erc-track-enable|erc-track-face-priority|erc-track-find-face|erc-track-get-active-buffer|erc-track-get-buffer-window|erc-track-minor-mode-maybe|erc-track-minor-mode|erc-track-mode|erc-track-modified-channels|erc-track-remove-from-mode-line|erc-track-shorten-names|erc-track-sort-by-activest|erc-track-sort-by-importance|erc-track-switch-buffer|erc-trim-string|erc-truncate-buffer-to-size|erc-truncate-buffer|erc-truncate-mode|erc-unique-channel-names|erc-unique-substring-1|erc-unique-substrings|erc-unmorse-disable|erc-unmorse-enable|erc-unmorse-mode|erc-unmorse|erc-unset-network-name|erc-upcase-first-word|erc-update-channel-key|erc-update-channel-limit|erc-update-channel-member|erc-update-channel-topic|erc-update-current-channel-member|erc-update-mode-line-buffer|erc-update-mode-line|erc-update-modes|erc-update-modules|erc-update-undo-list|erc-update-user-nick|erc-update-user|erc-user-input|erc-user-is-active|erc-user-spec|erc-version|erc-view-mode-enter|erc-wash-quit-reason|erc-window-configuration-change|erc-with-all-buffers-of-server|erc-with-buffer|erc-with-selected-window|erc-with-server-buffer|erc-xdcc-add-file|erc-xdcc-mode|erc|eregistry|erevision|ert--abbreviate-string|ert--activate-font-lock-keywords|ert--button-action-position|ert--ewoc-entry-expanded-p--cmacro|ert--ewoc-entry-expanded-p|ert--ewoc-entry-extended-printer-limits-p--cmacro|ert--ewoc-entry-extended-printer-limits-p|ert--ewoc-entry-hidden-p--cmacro|ert--ewoc-entry-hidden-p|ert--ewoc-entry-p--cmacro|ert--ewoc-entry-p|ert--ewoc-entry-test--cmacro|ert--ewoc-entry-test|ert--ewoc-position|ert--expand-should-1|ert--expand-should|ert--explain-equal-including-properties|ert--explain-equal-rec|ert--explain-equal|ert--explain-format-atom|ert--force-message-log-buffer-truncation|ert--format-time-iso8601|ert--insert-human-readable-selector|ert--insert-infos|ert--make-stats|ert--make-xrefs-region|ert--parse-keys-and-body|ert--plist-difference-explanation|ert--pp-with-indentation-and-newline|ert--print-backtrace|ert--print-test-for-ewoc|ert--proper-list-p|ert--record-backtrace|ert--remove-from-list|ert--results-expand-collapse-button-action|ert--results-font-lock-function|ert--results-format-expected-unexpected|ert--results-move|ert--results-progress-bar-button-action|ert--results-test-at-point-allow-redefinition|ert--results-test-at-point-no-redefinition|ert--results-test-node-at-point|ert--results-test-node-or-null-at-point|ert--results-update-after-test-redefinition|ert--results-update-ewoc-hf|ert--results-update-stats-display-maybe|ert--results-update-stats-display|ert--run-test-debugger|ert--run-test-internal|ert--setup-results-buffer|ert--should-error-handle-error|ert--signal-should-execution|ert--significant-plist-keys|ert--skip-unless|ert--special-operator-p|ert--stats-aborted-p--cmacro|ert--stats-aborted-p|ert--stats-current-test--cmacro|ert--stats-current-test|ert--stats-end-time--cmacro)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:ert--stats-end-time|ert--stats-failed-expected--cmacro|ert--stats-failed-expected|ert--stats-failed-unexpected--cmacro|ert--stats-failed-unexpected|ert--stats-next-redisplay--cmacro|ert--stats-next-redisplay|ert--stats-p--cmacro|ert--stats-p|ert--stats-passed-expected--cmacro|ert--stats-passed-expected|ert--stats-passed-unexpected--cmacro|ert--stats-passed-unexpected|ert--stats-selector--cmacro|ert--stats-selector|ert--stats-set-test-and-result|ert--stats-skipped--cmacro|ert--stats-skipped|ert--stats-start-time--cmacro|ert--stats-start-time|ert--stats-test-end-times--cmacro|ert--stats-test-end-times|ert--stats-test-key|ert--stats-test-map--cmacro|ert--stats-test-map|ert--stats-test-pos|ert--stats-test-results--cmacro|ert--stats-test-results|ert--stats-test-start-times--cmacro|ert--stats-test-start-times|ert--stats-tests--cmacro|ert--stats-tests|ert--string-first-line|ert--test-execution-info-ert-debug-on-error--cmacro|ert--test-execution-info-ert-debug-on-error|ert--test-execution-info-exit-continuation--cmacro|ert--test-execution-info-exit-continuation|ert--test-execution-info-next-debugger--cmacro|ert--test-execution-info-next-debugger|ert--test-execution-info-p--cmacro|ert--test-execution-info-p|ert--test-execution-info-result--cmacro|ert--test-execution-info-result|ert--test-execution-info-test--cmacro|ert--test-execution-info-test|ert--test-name-button-action|ert--tests-running-mode-line-indicator|ert--unload-function|ert-char-for-test-result|ert-deftest|ert-delete-all-tests|ert-delete-test|ert-describe-test|ert-equal-including-properties|ert-face-for-stats|ert-face-for-test-result|ert-fail|ert-find-test-other-window|ert-get-test|ert-info|ert-insert-test-name-button|ert-kill-all-test-buffers|ert-make-test-unbound|ert-pass|ert-read-test-name-at-point|ert-read-test-name|ert-results-describe-test-at-point|ert-results-find-test-at-point-other-window|ert-results-jump-between-summary-and-result|ert-results-mode-menu|ert-results-mode|ert-results-next-test|ert-results-pop-to-backtrace-for-test-at-point|ert-results-pop-to-messages-for-test-at-point|ert-results-pop-to-should-forms-for-test-at-point|ert-results-pop-to-timings|ert-results-previous-test|ert-results-rerun-all-tests|ert-results-rerun-test-at-point-debugging-errors|ert-results-rerun-test-at-point|ert-results-toggle-printer-limits-for-test-at-point|ert-run-or-rerun-test|ert-run-test|ert-run-tests-batch-and-exit|ert-run-tests-batch|ert-run-tests-interactively|ert-run-tests|ert-running-test|ert-select-tests|ert-set-test|ert-simple-view-mode|ert-skip|ert-stats-completed-expected|ert-stats-completed-unexpected|ert-stats-completed|ert-stats-skipped|ert-stats-total|ert-string-for-test-result|ert-summarize-tests-batch-and-exit|ert-test-aborted-with-non-local-exit-messages--cmacro|ert-test-aborted-with-non-local-exit-messages|ert-test-aborted-with-non-local-exit-p--cmacro|ert-test-aborted-with-non-local-exit-p|ert-test-aborted-with-non-local-exit-should-forms--cmacro|ert-test-aborted-with-non-local-exit-should-forms|ert-test-at-point|ert-test-body--cmacro|ert-test-body|ert-test-boundp|ert-test-documentation--cmacro|ert-test-documentation|ert-test-expected-result-type--cmacro|ert-test-expected-result-type|ert-test-failed-backtrace--cmacro|ert-test-failed-backtrace|ert-test-failed-condition--cmacro|ert-test-failed-condition|ert-test-failed-infos--cmacro|ert-test-failed-infos|ert-test-failed-messages--cmacro|ert-test-failed-messages|ert-test-failed-p--cmacro|ert-test-failed-p|ert-test-failed-should-forms--cmacro|ert-test-failed-should-forms|ert-test-most-recent-result--cmacro|ert-test-most-recent-result|ert-test-name--cmacro|ert-test-name|ert-test-p--cmacro|ert-test-p|ert-test-passed-messages--cmacro|ert-test-passed-messages|ert-test-passed-p--cmacro|ert-test-passed-p|ert-test-passed-should-forms--cmacro|ert-test-passed-should-forms|ert-test-quit-backtrace--cmacro|ert-test-quit-backtrace|ert-test-quit-condition--cmacro|ert-test-quit-condition|ert-test-quit-infos--cmacro|ert-test-quit-infos|ert-test-quit-messages--cmacro|ert-test-quit-messages|ert-test-quit-p--cmacro|ert-test-quit-p|ert-test-quit-should-forms--cmacro|ert-test-quit-should-forms|ert-test-result-expected-p|ert-test-result-messages--cmacro|ert-test-result-messages|ert-test-result-p--cmacro|ert-test-result-p|ert-test-result-should-forms--cmacro|ert-test-result-should-forms|ert-test-result-type-p|ert-test-result-with-condition-backtrace--cmacro|ert-test-result-with-condition-backtrace|ert-test-result-with-condition-condition--cmacro|ert-test-result-with-condition-condition|ert-test-result-with-condition-infos--cmacro|ert-test-result-with-condition-infos|ert-test-result-with-condition-messages--cmacro|ert-test-result-with-condition-messages|ert-test-result-with-condition-p--cmacro|ert-test-result-with-condition-p|ert-test-result-with-condition-should-forms--cmacro|ert-test-result-with-condition-should-forms|ert-test-skipped-backtrace--cmacro|ert-test-skipped-backtrace|ert-test-skipped-condition--cmacro|ert-test-skipped-condition|ert-test-skipped-infos--cmacro|ert-test-skipped-infos|ert-test-skipped-messages--cmacro|ert-test-skipped-messages|ert-test-skipped-p--cmacro|ert-test-skipped-p|ert-test-skipped-should-forms--cmacro|ert-test-skipped-should-forms|ert-test-tags--cmacro|ert-test-tags|ert|eshell\\\\\\\\/addpath|eshell\\\\\\\\/define|eshell\\\\\\\\/env|eshell\\\\\\\\/eshell-debug|eshell\\\\\\\\/exit|eshell\\\\\\\\/export|eshell\\\\\\\\/jobs|eshell\\\\\\\\/kill|eshell\\\\\\\\/setq|eshell\\\\\\\\/unset|eshell\\\\\\\\/wait|eshell\\\\\\\\/which|eshell--apply-redirections|eshell--do-opts|eshell--process-args|eshell--process-option|eshell--set-option|eshell-add-to-window-buffer-names|eshell-apply\\\\\\\\*|eshell-apply-indices|eshell-apply|eshell-applyn|eshell-arg-delimiter|eshell-arg-initialize|eshell-as-subcommand|eshell-backward-argument|eshell-begin-on-new-line|eshell-beginning-of-input|eshell-beginning-of-output|eshell-bol|eshell-buffered-print|eshell-clipboard-append|eshell-close-handles|eshell-close-target|eshell-cmd-initialize|eshell-command-finished|eshell-command-result|eshell-command-started|eshell-command-to-value|eshell-command|eshell-commands|eshell-complete-lisp-symbols|eshell-complete-variable-assignment|eshell-complete-variable-reference|eshell-condition-case|eshell-convert|eshell-copy-environment|eshell-copy-handles|eshell-copy-old-input|eshell-copy-tree|eshell-create-handles|eshell-current-ange-uids|eshell-debug-command|eshell-debug-show-parsed-args|eshell-directory-files-and-attributes|eshell-directory-files|eshell-do-command-to-value|eshell-do-eval|eshell-do-pipelines-synchronously|eshell-do-pipelines|eshell-do-subjob|eshell-end-of-output|eshell-environment-variables|eshell-envvar-names|eshell-error|eshell-errorn|eshell-escape-arg|eshell-eval\\\\\\\\*|eshell-eval-command|eshell-eval-using-options|eshell-eval|eshell-evaln|eshell-exec-lisp|eshell-execute-pipeline|eshell-exit-success-p|eshell-explicit-command|eshell-ext-initialize|eshell-external-command|eshell-file-attributes|eshell-find-alias-function|eshell-find-delimiter|eshell-find-interpreter|eshell-find-tag|eshell-finish-arg|eshell-flatten-and-stringify|eshell-flatten-list|eshell-flush|eshell-for|eshell-forward-argument|eshell-funcall\\\\\\\\*|eshell-funcall|eshell-funcalln|eshell-gather-process-output|eshell-get-old-input|eshell-get-target|eshell-get-variable|eshell-goto-input-start|eshell-group-id|eshell-group-name|eshell-handle-ansi-color|eshell-handle-control-codes|eshell-handle-local-variables|eshell-index-value|eshell-init-print-buffer|eshell-insert-buffer-name|eshell-insert-envvar|eshell-insert-process|eshell-insertion-filter|eshell-interactive-output-p|eshell-interactive-print|eshell-interactive-process|eshell-intercept-commands|eshell-interpolate-variable|eshell-interrupt-process|eshell-invoke-batch-file|eshell-invoke-directly|eshell-invokify-arg|eshell-io-initialize|eshell-kill-append|eshell-kill-buffer-function|eshell-kill-input|eshell-kill-new|eshell-kill-output|eshell-kill-process-function|eshell-kill-process|eshell-life-is-too-much|eshell-lisp-command\\\\\\\\*|eshell-lisp-command|eshell-looking-at-backslash-return|eshell-make-private-directory|eshell-manipulate|eshell-mark-output|eshell-mode|eshell-move-argument|eshell-named-command\\\\\\\\*|eshell-named-command|eshell-needs-pipe-p|eshell-no-command-conversion|eshell-operator|eshell-output-filter|eshell-output-object-to-target|eshell-output-object|eshell-parse-ange-ls|eshell-parse-argument|eshell-parse-arguments|eshell-parse-backslash|eshell-parse-colon-path|eshell-parse-command-input|eshell-parse-command|eshell-parse-delimiter|eshell-parse-double-quote|eshell-parse-indices|eshell-parse-lisp-argument|eshell-parse-literal-quote|eshell-parse-pipeline|eshell-parse-redirection|eshell-parse-special-reference|eshell-parse-subcommand-argument|eshell-parse-variable-ref|eshell-parse-variable|eshell-plain-command|eshell-postoutput-scroll-to-bottom|eshell-preinput-scroll-to-bottom|eshell-print|eshell-printable-size|eshell-printn|eshell-proc-initialize|eshell-process-identity|eshell-process-interact|eshell-processp|eshell-protect-handles|eshell-protect|eshell-push-command-mark|eshell-query-kill-processes|eshell-queue-input|eshell-quit-process|eshell-quote-argument|eshell-quote-backslash|eshell-read-group-names|eshell-read-host-names|eshell-read-hosts-file|eshell-read-hosts|eshell-read-passwd-file|eshell-read-passwd|eshell-read-process-name|eshell-read-user-names|eshell-record-process-object|eshell-redisplay|eshell-regexp-arg|eshell-remote-command|eshell-remove-from-window-buffer-names|eshell-remove-process-entry|eshell-repeat-argument|eshell-report-bug|eshell-reset-after-proc|eshell-reset|eshell-resolve-current-argument|eshell-resume-command|eshell-resume-eval|eshell-return-exits-minibuffer|eshell-rewrite-for-command|eshell-rewrite-if-command|eshell-rewrite-initial-subcommand|eshell-rewrite-named-command|eshell-rewrite-sexp-command|eshell-rewrite-while-command|eshell-round-robin-kill|eshell-run-output-filters|eshell-script-interpreter|eshell-search-path|eshell-self-insert-command|eshell-send-eof-to-process|eshell-send-input|eshell-send-invisible|eshell-sentinel|eshell-separate-commands|eshell-set-output-handle|eshell-show-maximum-output|eshell-show-output|eshell-show-usage|eshell-split-path|eshell-stringify-list|eshell-stringify|eshell-strip-redirections|eshell-structure-basic-command|eshell-subcommand-arg-values|eshell-subgroups|eshell-sublist|eshell-substring|eshell-to-flat-string|eshell-toggle-direct-send|eshell-trap-errors|eshell-truncate-buffer|eshell-under-windows-p|eshell-uniqify-list|eshell-unload-all-modules|eshell-unload-extension-modules|eshell-update-markers|eshell-user-id|eshell-user-name|eshell-using-module|eshell-var-initialize|eshell-variables-list|eshell-wait-for-process|eshell-watch-for-password-prompt|eshell-winnow-list|eshell-with-file-modes|eshell-with-private-file-modes|eshell|etags--xref-find-definitions|etags-file-of-tag|etags-goto-tag-location|etags-list-tags|etags-recognize-tags-table|etags-snarf-tag|etags-tags-apropos-additional|etags-tags-apropos|etags-tags-completion-table|etags-tags-included-tables|etags-tags-table-files|etags-verify-tags-table|etags-xref-find|ethio-composition-function|ethio-fidel-to-java-buffer|ethio-fidel-to-sera-buffer|ethio-fidel-to-sera-marker|ethio-fidel-to-sera-region|ethio-fidel-to-tex-buffer|ethio-find-file|ethio-input-special-character|ethio-insert-ethio-space|ethio-java-to-fidel-buffer|ethio-modify-vowel|ethio-replace-space|ethio-sera-to-fidel-buffer|ethio-sera-to-fidel-marker|ethio-sera-to-fidel-region|ethio-tex-to-fidel-buffer|ethio-write-file|etypecase|eudc-add-field-to-records|eudc-bookmark-current-server|eudc-bookmark-server|eudc-caar|eudc-cadr|eudc-cdaar|eudc-cdar|eudc-customize|eudc-default-set|eudc-display-generic-binary|eudc-display-jpeg-as-button|eudc-display-jpeg-inline|eudc-display-mail|eudc-display-records|eudc-display-sound|eudc-display-url|eudc-distribute-field-on-records|eudc-edit-hotlist|eudc-expand-inline|eudc-extract-n-word-formats|eudc-filter-duplicate-attributes|eudc-filter-partial-records|eudc-format-attribute-name-for-display|eudc-format-query|eudc-get-attribute-list|eudc-get-email|eudc-get-phone|eudc-insert-record-at-point-into-bbdb|eudc-install-menu|eudc-lax-plist-get|eudc-load-eudc|eudc-menu|eudc-mode|eudc-move-to-next-record|eudc-move-to-previous-record|eudc-plist-get|eudc-plist-member)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:eudc-print-attribute-value|eudc-print-record-field|eudc-process-form|eudc-protocol-local-variable-p|eudc-protocol-set|eudc-query-form|eudc-query|eudc-register-protocol|eudc-replace-in-string|eudc-save-options|eudc-select|eudc-server-local-variable-p|eudc-server-set|eudc-set-server|eudc-set|eudc-tools-menu|eudc-translate-attribute-list|eudc-translate-query|eudc-try-bbdb-insert|eudc-update-local-variables|eudc-update-variable|eudc-variable-default-value|eudc-variable-protocol-value|eudc-variable-server-value|eval-after-load--anon-cmacro|eval-after-load|eval-defun|eval-expression-print-format|eval-expression|eval-last-sexp|eval-next-after-load|eval-print-last-sexp|eval-sexp-add-defvars|eval-when|evenp|event-apply-alt-modifier|event-apply-control-modifier|event-apply-hyper-modifier|event-apply-meta-modifier|event-apply-modifier|event-apply-shift-modifier|event-apply-super-modifier|every|ewoc--adjust|ewoc--buffer--cmacro|ewoc--buffer|ewoc--create--cmacro|ewoc--create|ewoc--dll--cmacro|ewoc--dll|ewoc--filter-hf-nodes|ewoc--footer--cmacro|ewoc--footer|ewoc--header--cmacro|ewoc--header|ewoc--hf-pp--cmacro|ewoc--hf-pp|ewoc--insert-new-node|ewoc--last-node--cmacro|ewoc--last-node|ewoc--node-create--cmacro|ewoc--node-create|ewoc--node-data--cmacro|ewoc--node-data|ewoc--node-left--cmacro|ewoc--node-left|ewoc--node-next|ewoc--node-nth|ewoc--node-prev|ewoc--node-right--cmacro|ewoc--node-right|ewoc--node-start-marker--cmacro|ewoc--node-start-marker|ewoc--pretty-printer--cmacro|ewoc--pretty-printer|ewoc--refresh-node|ewoc--set-buffer-bind-dll-let\\\\\\\\*|ewoc--set-buffer-bind-dll|ewoc--wrap|ewoc-p--cmacro|ewoc-p|eww-add-bookmark|eww-back-url|eww-beginning-of-field|eww-beginning-of-text|eww-bookmark-browse|eww-bookmark-kill|eww-bookmark-mode|eww-bookmark-prepare|eww-bookmark-yank|eww-browse-url|eww-browse-with-external-browser|eww-buffer-kill|eww-buffer-select|eww-buffer-show-next|eww-buffer-show-previous|eww-buffer-show|eww-buffers-mode|eww-change-select|eww-copy-page-url|eww-current-url|eww-desktop-data-1|eww-desktop-history-duplicate|eww-desktop-misc-data|eww-detect-charset|eww-display-html|eww-display-image|eww-display-pdf|eww-display-raw|eww-download-callback|eww-download|eww-end-of-field|eww-end-of-text|eww-follow-link|eww-form-checkbox|eww-form-file|eww-form-submit|eww-form-text|eww-forward-url|eww-handle-link|eww-highest-readability|eww-history-browse|eww-history-mode|eww-input-value|eww-inputs|eww-links-at-point|eww-list-bookmarks|eww-list-buffers|eww-list-histories|eww-make-unique-file-name|eww-mode|eww-next-bookmark|eww-next-url|eww-open-file|eww-parse-headers|eww-previous-bookmark|eww-previous-url|eww-process-text-input|eww-read-bookmarks|eww-readable|eww-reload|eww-render|eww-restore-desktop|eww-restore-history|eww-same-page-p|eww-save-history|eww-score-readability|eww-search-words|eww-select-display|eww-select-file|eww-set-character-encoding|eww-setup-buffer|eww-size-text-inputs|eww-submit|eww-suggested-uris|eww-tag-a|eww-tag-body|eww-tag-form|eww-tag-input|eww-tag-link|eww-tag-select|eww-tag-textarea|eww-tag-title|eww-toggle-checkbox|eww-top-url|eww-up-url|eww-update-field|eww-update-header-line-format|eww-view-source|eww-write-bookmarks|eww|ex-args|ex-cd|ex-cmd-accepts-multiple-files-p|ex-cmd-assoc|ex-cmd-complete|ex-cmd-execute|ex-cmd-is-mashed-with-args|ex-cmd-is-one-letter|ex-cmd-not-yet|ex-cmd-obsolete|ex-cmd-read-exit|ex-command|ex-compile|ex-copy|ex-delete|ex-edit|ex-expand-filsyms|ex-find-file|ex-fixup-history|ex-get-inline-cmd-args|ex-global|ex-goto|ex-help|ex-line-no|ex-line-subr|ex-line|ex-map-read-args|ex-map|ex-mark|ex-next-related-buffer|ex-next|ex-preserve|ex-print-display-lines|ex-print|ex-put|ex-pwd|ex-quit|ex-read|ex-recover|ex-rewind|ex-search-address|ex-set-read-variable|ex-set-visited-file-name|ex-set|ex-shell|ex-show-vars|ex-source|ex-splice-args-in-1-letr-cmd|ex-substitute|ex-tag|ex-unmap-read-args|ex-unmap|ex-write-info|ex-write|ex-yank|exchange-dot-and-mark|exchange-point-and-mark|executable-chmod|executable-command-find-posix-p|executable-interpret|executable-make-buffer-file-executable-if-script-p|executable-self-display|executable-set-magic|execute-extended-command--shorter-1|execute-extended-command--shorter|exit-scheme-interaction-mode|exit-splash-screen|expand-abbrev-from-expand|expand-abbrev-hook|expand-add-abbrev|expand-add-abbrevs|expand-build-list|expand-build-marks|expand-c-for-skeleton|expand-clear-markers|expand-do-expansion|expand-in-literal|expand-jump-to-next-slot|expand-jump-to-previous-slot|expand-list-to-markers|expand-mail-aliases|expand-previous-word|expand-region-abbrevs|expand-skeleton-end-hook|external-debugging-output|extract-rectangle-line|extract-rectangle|ezimage-all-images|ezimage-image-association-dump|ezimage-image-dump|ezimage-image-over-string|ezimage-insert-image-button-maybe|ezimage-insert-over-text|f90-abbrev-help|f90-abbrev-start|f90-add-imenu-menu|f90-backslash-not-special|f90-beginning-of-block|f90-beginning-of-subprogram|f90-block-match|f90-break-line|f90-calculate-indent|f90-capitalize-keywords|f90-capitalize-region-keywords|f90-change-keywords|f90-comment-indent|f90-comment-region|f90-current-defun|f90-current-indentation|f90-do-auto-fill|f90-downcase-keywords|f90-downcase-region-keywords|f90-electric-insert|f90-end-of-block|f90-end-of-subprogram|f90-equal-symbols|f90-fill-region|f90-find-breakpoint|f90-font-lock-1|f90-font-lock-2|f90-font-lock-3|f90-font-lock-4|f90-font-lock-n|f90-get-correct-indent|f90-get-present-comment-type|f90-imenu-type-matcher|f90-in-comment|f90-in-string|f90-indent-line-no|f90-indent-line|f90-indent-new-line|f90-indent-region|f90-indent-subprogram|f90-indent-to|f90-insert-end|f90-join-lines|f90-line-continued|f90-looking-at-associate|f90-looking-at-critical|f90-looking-at-do|f90-looking-at-end-critical|f90-looking-at-if-then|f90-looking-at-program-block-end|f90-looking-at-program-block-start|f90-looking-at-select-case|f90-looking-at-type-like|f90-looking-at-where-or-forall|f90-mark-subprogram|f90-match-end|f90-menu|f90-mode|f90-next-block|f90-next-statement|f90-no-block-limit|f90-prepare-abbrev-list-buffer|f90-present-statement-cont|f90-previous-block|f90-previous-statement|f90-typedec-matcher|f90-typedef-matcher|f90-upcase-keywords|f90-upcase-region-keywords|f90-update-line|face-at-point|face-attr-construct|face-attr-match-p|face-attribute-merged-with|face-attribute-specified-or|face-attributes-as-vector|face-attrs-more-relative-p|face-background-pixmap|face-default-spec|face-descriptive-attribute-name|face-doc-string|face-name|face-nontrivial-p|face-read-integer|face-read-string|face-remap-order|face-set-after-frame-default|face-spec-choose|face-spec-match-p|face-spec-recalc|face-spec-reset-face|face-spec-set-2|face-spec-set-match-display|face-user-default-spec|face-valid-attribute-values|facemenu-active-faces|facemenu-add-face|facemenu-add-new-color|facemenu-add-new-face|facemenu-background-menu|facemenu-color-equal|facemenu-complete-face-list|facemenu-enable-faces-p|facemenu-face-menu|facemenu-foreground-menu|facemenu-indentation-menu|facemenu-iterate|facemenu-justification-menu|facemenu-menu|facemenu-post-self-insert-function|facemenu-read-color|facemenu-remove-all|facemenu-remove-face-props|facemenu-remove-special|facemenu-set-background|facemenu-set-bold-italic|facemenu-set-bold|facemenu-set-default|facemenu-set-face-from-menu|facemenu-set-face|facemenu-set-foreground|facemenu-set-intangible|facemenu-set-invisible|facemenu-set-italic|facemenu-set-read-only|facemenu-set-self-insert-face|facemenu-set-underline|facemenu-special-menu|facemenu-update|fancy-about-screen|fancy-splash-frame|fancy-splash-head|fancy-splash-image-file|fancy-splash-insert|fancy-startup-screen|fancy-startup-tail|feature-file|feature-symbols|feedmail-accume-n-nuke-header|feedmail-buffer-to-binmail|feedmail-buffer-to-sendmail|feedmail-buffer-to-smtp|feedmail-buffer-to-smtpmail|feedmail-confirm-addresses-hook-example|feedmail-create-queue-filename|feedmail-deduce-address-list|feedmail-default-date-generator|feedmail-default-message-id-generator|feedmail-default-x-mailer-generator|feedmail-dump-message-to-queue|feedmail-envelope-deducer|feedmail-fiddle-date|feedmail-fiddle-from|feedmail-fiddle-header|feedmail-fiddle-list-of-fiddle-plexes|feedmail-fiddle-list-of-spray-fiddle-plexes|feedmail-fiddle-message-id|feedmail-fiddle-sender|feedmail-fiddle-spray-address|feedmail-fiddle-x-mailer|feedmail-fill-this-one|feedmail-fill-to-cc-function|feedmail-find-eoh|feedmail-fqm-p|feedmail-give-it-to-buffer-eater|feedmail-look-at-queue-directory|feedmail-mail-send-hook-splitter|feedmail-message-action-draft-strong|feedmail-message-action-draft|feedmail-message-action-edit|feedmail-message-action-help-blat|feedmail-message-action-help|feedmail-message-action-queue-strong|feedmail-message-action-queue|feedmail-message-action-scroll-down|feedmail-message-action-scroll-up|feedmail-message-action-send-strong|feedmail-message-action-send|feedmail-message-action-toggle-spray|feedmail-one-last-look|feedmail-queue-express-to-draft|feedmail-queue-express-to-queue|feedmail-queue-reminder-brief|feedmail-queue-reminder-medium|feedmail-queue-reminder|feedmail-queue-runner-prompt|feedmail-queue-send-edit-prompt-inner|feedmail-queue-send-edit-prompt|feedmail-queue-subject-slug-maker|feedmail-rfc822-date|feedmail-rfc822-time-zone|feedmail-run-the-queue-global-prompt|feedmail-run-the-queue-no-prompts|feedmail-run-the-queue|feedmail-say-chatter|feedmail-say-debug|feedmail-scroll-buffer|feedmail-send-it-immediately-wrapper|feedmail-send-it-immediately|feedmail-send-it|feedmail-spray-via-bbdb|feedmail-tidy-up-slug|feedmail-vm-mail-mode|fetch-overload|ff-all-dirs-under|ff-basename|ff-cc-hh-converter|ff-find-file|ff-find-other-file|ff-find-related-file|ff-find-the-other-file|ff-get-file-name|ff-get-file|ff-get-other-file|ff-list-replace-env-vars|ff-mouse-find-other-file-other-window|ff-mouse-find-other-file|ff-other-file-name|ff-set-point-accordingly|ff-string-match|ff-switch-file|ff-switch-to-buffer|ff-treat-as-special|ff-upcase-p|ff-which-function-are-we-in|ffap--toggle-read-only|ffap-all-subdirs-loop|ffap-all-subdirs|ffap-alternate-file-other-window|ffap-alternate-file|ffap-at-mouse|ffap-bib|ffap-bindings|ffap-bug|ffap-c\\\\\\\\+\\\\\\\\+-mode|ffap-c-mode|ffap-completable|ffap-copy-string-as-kill|ffap-dired-other-frame|ffap-dired-other-window|ffap-dired|ffap-el-mode|ffap-el|ffap-event-buffer|ffap-file-at-point|ffap-file-exists-string|ffap-file-remote-p|ffap-file-suffix|ffap-fixup-machine|ffap-fixup-url|ffap-fortran-mode|ffap-gnus-hook|ffap-gnus-menu|ffap-gnus-next|ffap-gnus-wrapper|ffap-gopher-at-point|ffap-guess-file-name-at-point|ffap-guesser|ffap-highlight|ffap-home|ffap-host-to-filename|ffap-info-2|ffap-info-3|ffap-info|ffap-kpathsea-expand-path|ffap-latex-mode|ffap-lcd|ffap-list-directory|ffap-list-env|ffap-literally|ffap-locate-file|ffap-machine-at-point|ffap-machine-p|ffap-menu-ask|ffap-menu-cont|ffap-menu-rescan|ffap-menu|ffap-mouse-event|ffap-newsgroup-p|ffap-next-guess|ffap-next-url|ffap-next|ffap-other-frame|ffap-other-window|ffap-prompter|ffap-read-file-or-url-internal|ffap-read-file-or-url|ffap-read-only-other-frame|ffap-read-only-other-window|ffap-read-only|ffap-read-url-internal|ffap-reduce-path|ffap-replace-file-component|ffap-rfc|ffap-ro-mode-hook|ffap-string-around|ffap-string-at-point|ffap-submit-bug|ffap-symbol-value|ffap-tex-init|ffap-tex-mode|ffap-tex|ffap-url-at-point|ffap-url-p|ffap-url-unwrap-local|ffap-url-unwrap-remote|ffap-what-domain|ffap|field-at-pos|field-complete|fifth|file-attributes-lessp|file-cache--read-list|file-cache-add-directory-list|file-cache-add-directory-recursively|file-cache-add-directory-using-find|file-cache-add-directory-using-locate|file-cache-add-directory|file-cache-add-file-list|file-cache-add-file|file-cache-add-from-file-cache-buffer|file-cache-canonical-directory|file-cache-choose-completion|file-cache-clear-cache|file-cache-complete|file-cache-completion-setup-function|file-cache-debug-read-from-minibuffer|file-cache-delete-directory-list|file-cache-delete-directory|file-cache-delete-file-list|file-cache-delete-file-regexp|file-cache-delete-file|file-cache-directory-name|file-cache-display|file-cache-do-delete-directory)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:file-cache-file-name|file-cache-files-matching-internal|file-cache-files-matching|file-cache-minibuffer-complete|file-cache-mouse-choose-completion|file-dependents|file-loadhist-lookup|file-modes-char-to-right|file-modes-char-to-who|file-modes-rights-to-number|file-name-non-special|file-name-shadow-mode|file-notify--event-cookie|file-notify--event-file-name|file-notify--event-file1-name|file-notify-callback|file-notify-handle-event|file-of-tag|file-provides|file-requires|file-set-intersect|file-size-human-readable|file-tree-walk|filesets-add-buffer|filesets-alist-get|filesets-browse-dir|filesets-browser-name|filesets-build-dir-submenu-now|filesets-build-dir-submenu|filesets-build-ingroup-submenu|filesets-build-menu-maybe|filesets-build-menu-now|filesets-build-menu|filesets-build-submenu|filesets-close|filesets-cmd-get-args|filesets-cmd-get-def|filesets-cmd-get-fn|filesets-cmd-isearch-getargs|filesets-cmd-query-replace-getargs|filesets-cmd-query-replace-regexp-getargs|filesets-cmd-shell-command-getargs|filesets-cmd-shell-command|filesets-cmd-show-result|filesets-conditional-sort|filesets-convert-path-list|filesets-convert-patterns|filesets-customize|filesets-data-get-data|filesets-data-get-name|filesets-data-get|filesets-data-set-default|filesets-data-set|filesets-directory-files|filesets-edit|filesets-entry-get-dormant-flag|filesets-entry-get-file|filesets-entry-get-files|filesets-entry-get-filter-dirs-flag|filesets-entry-get-master|filesets-entry-get-open-fn|filesets-entry-get-pattern--dir|filesets-entry-get-pattern--pattern|filesets-entry-get-pattern|filesets-entry-get-save-fn|filesets-entry-get-tree-max-level|filesets-entry-get-tree|filesets-entry-get-verbosity|filesets-entry-mode|filesets-entry-set-files|filesets-error|filesets-eviewer-constraint-p|filesets-eviewer-get-props|filesets-exit|filesets-file-close|filesets-file-open|filesets-files-equalp|filesets-files-in-same-directory-p|filesets-filetype-get-prop|filesets-filetype-property|filesets-filter-dir-names|filesets-filter-list|filesets-find-file-using|filesets-find-file|filesets-find-or-display-file|filesets-get-cmd-menu|filesets-get-external-viewer-by-name|filesets-get-external-viewer|filesets-get-filelist|filesets-get-fileset-from-name|filesets-get-fileset-name|filesets-get-menu-epilog|filesets-get-quoted-selection|filesets-get-selection|filesets-get-shortcut|filesets-goto-homepage|filesets-info|filesets-ingroup-cache-get|filesets-ingroup-cache-put|filesets-ingroup-collect-build-menu|filesets-ingroup-collect-files|filesets-ingroup-collect-finder|filesets-ingroup-collect|filesets-ingroup-get-data|filesets-ingroup-get-pattern|filesets-ingroup-get-remdupl-p|filesets-init|filesets-member|filesets-menu-cache-file-load|filesets-menu-cache-file-save-maybe|filesets-menu-cache-file-save|filesets-message|filesets-open|filesets-ormap|filesets-quote|filesets-rebuild-this-submenu|filesets-remake-shortcut|filesets-remove-buffer|filesets-remove-from-ubl|filesets-reset-filename-on-change|filesets-reset-fileset|filesets-run-cmd--repl-fn|filesets-run-cmd|filesets-save-config|filesets-select-command|filesets-set-config|filesets-set-default!|filesets-set-default\\\\\\\\+|filesets-set-default|filesets-some|filesets-spawn-external-viewer|filesets-sublist|filesets-update-cleanup|filesets-update-pre010505|filesets-update|filesets-which-command-p|filesets-which-command|filesets-which-file|filesets-wrap-submenu|fill-comment-paragraph|fill-common-string-prefix|fill-delete-newlines|fill-delete-prefix|fill-find-break-point|fill-flowed-encode|fill-flowed|fill-forward-paragraph|fill-french-nobreak-p|fill-indent-to-left-margin|fill-individual-paragraphs-citation|fill-individual-paragraphs-prefix|fill-match-adaptive-prefix|fill-minibuffer-function|fill-move-to-break-point|fill-newline|fill-nobreak-p|fill-nonuniform-paragraphs|fill-single-char-nobreak-p|fill-single-word-nobreak-p|fill-text-properties-at|fill|filtered-frame-list|find-alternate-file-other-window|find-alternate-file|find-change-log|find-class|find-cmd|find-cmpl-prefix-entry|find-coding-systems-region-internal|find-composition-internal|find-composition|find-definition-noselect|find-dired-filter|find-dired-sentinel|find-dired|find-emacs-lisp-shadows|find-exact-completion|find-face-definition|find-file--read-only|find-file-at-point|find-file-existing|find-file-literally-at-point|find-file-noselect-1|find-file-other-frame|find-file-read-args|find-file-read-only-other-frame|find-file-read-only-other-window|find-function-C-source|find-function-advised-original|find-function-at-point|find-function-do-it|find-function-library|find-function-noselect|find-function-on-key|find-function-other-frame|find-function-other-window|find-function-read|find-function-search-for-symbol|find-function-setup-keys|find-function|find-grep-dired|find-grep|find-if-not|find-if|find-library--load-name|find-library-name|find-library-suffixes|find-library|find-lisp-debug-message|find-lisp-default-directory-predicate|find-lisp-default-file-predicate|find-lisp-file-predicate-is-directory|find-lisp-find-dired-filter|find-lisp-find-dired-insert-file|find-lisp-find-dired-internal|find-lisp-find-dired-subdirectories|find-lisp-find-dired|find-lisp-find-files-internal|find-lisp-find-files|find-lisp-format-time|find-lisp-format|find-lisp-insert-directory|find-lisp-object-file-name|find-lisp-time-index|find-multibyte-characters|find-name-dired|find-new-buffer-file-coding-system|find-tag-default-as-regexp|find-tag-default-as-symbol-regexp|find-tag-default-bounds|find-tag-default|find-tag-in-order|find-tag-interactive|find-tag-noselect|find-tag-other-frame|find-tag-other-window|find-tag-regexp|find-tag-tag|find-tag|find-variable-at-point|find-variable-noselect|find-variable-other-frame|find-variable-other-window|find-variable|find|finder-by-keyword|finder-commentary|finder-compile-keywords-make-dist|finder-compile-keywords|finder-current-item|finder-exit|finder-goto-xref|finder-insert-at-column|finder-list-keywords|finder-list-matches|finder-mode|finder-mouse-face-on-line|finder-mouse-select|finder-select|finder-summary|finder-unknown-keywords|finder-unload-function|finger|first-error|first|floatp-safe|floor\\\\\\\\*|flush-lines|flymake-add-buildfile-to-cache|flymake-add-err-info|flymake-add-line-err-info|flymake-add-project-include-dirs-to-cache|flymake-after-change-function|flymake-after-save-hook|flymake-can-syntax-check-file|flymake-check-include|flymake-check-patch-master-file-buffer|flymake-clear-buildfile-cache|flymake-clear-project-include-dirs-cache|flymake-compilation-is-running|flymake-compile|flymake-copy-buffer-to-temp-buffer|flymake-create-master-file|flymake-create-temp-inplace|flymake-create-temp-with-folder-structure|flymake-delete-own-overlays|flymake-delete-temp-directory|flymake-display-err-menu-for-current-line|flymake-display-warning|flymake-er-get-line-err-info-list|flymake-er-get-line|flymake-er-make-er|flymake-find-buffer-for-file|flymake-find-buildfile|flymake-find-err-info|flymake-find-file-hook|flymake-find-make-buildfile|flymake-find-possible-master-files|flymake-fix-file-name|flymake-fix-line-numbers|flymake-get-ant-cmdline|flymake-get-buildfile-from-cache|flymake-get-cleanup-function|flymake-get-err-count|flymake-get-file-name-mode-and-masks|flymake-get-first-err-line-no|flymake-get-full-nonpatched-file-name|flymake-get-full-patched-file-name|flymake-get-include-dirs-dot|flymake-get-include-dirs|flymake-get-init-function|flymake-get-last-err-line-no|flymake-get-line-err-count|flymake-get-make-cmdline|flymake-get-next-err-line-no|flymake-get-prev-err-line-no|flymake-get-project-include-dirs-from-cache|flymake-get-project-include-dirs-imp|flymake-get-project-include-dirs|flymake-get-real-file-name-function|flymake-get-real-file-name|flymake-get-syntax-check-program-args|flymake-get-system-include-dirs|flymake-get-tex-args|flymake-goto-file-and-line|flymake-goto-line|flymake-goto-next-error|flymake-goto-prev-error|flymake-highlight-err-lines|flymake-highlight-line|flymake-init-create-temp-buffer-copy|flymake-init-create-temp-source-and-master-buffer-copy|flymake-init-find-buildfile-dir|flymake-ins-after|flymake-kill-buffer-hook|flymake-kill-process|flymake-ler-file--cmacro|flymake-ler-file|flymake-ler-full-file--cmacro|flymake-ler-full-file|flymake-ler-line--cmacro|flymake-ler-line|flymake-ler-make-ler--cmacro|flymake-ler-make-ler|flymake-ler-p--cmacro|flymake-ler-p|flymake-ler-set-file|flymake-ler-set-full-file|flymake-ler-set-line|flymake-ler-text--cmacro|flymake-ler-text|flymake-ler-type--cmacro|flymake-ler-type|flymake-line-err-info-is-less-or-equal|flymake-log|flymake-make-overlay|flymake-master-cleanup|flymake-master-file-compare|flymake-master-make-header-init|flymake-master-make-init|flymake-master-tex-init|flymake-mode-off|flymake-mode-on|flymake-mode|flymake-on-timer-event|flymake-overlay-p|flymake-parse-err-lines|flymake-parse-line|flymake-parse-output-and-residual|flymake-parse-residual|flymake-patch-err-text|flymake-perl-init|flymake-php-init|flymake-popup-current-error-menu|flymake-post-syntax-check|flymake-process-filter|flymake-process-sentinel|flymake-read-file-to-temp-buffer|flymake-reformat-err-line-patterns-from-compile-el|flymake-region-has-flymake-overlays|flymake-replace-region|flymake-report-fatal-status|flymake-report-status|flymake-safe-delete-directory|flymake-safe-delete-file|flymake-same-files|flymake-save-buffer-in-file|flymake-set-at|flymake-simple-ant-java-init|flymake-simple-cleanup|flymake-simple-java-cleanup|flymake-simple-make-init-impl|flymake-simple-make-init|flymake-simple-make-java-init|flymake-simple-tex-init|flymake-skip-whitespace|flymake-split-output|flymake-start-syntax-check-process|flymake-start-syntax-check|flymake-stop-all-syntax-checks|flymake-xml-init|flyspell-abbrev-table|flyspell-accept-buffer-local-defs|flyspell-after-change-function|flyspell-ajust-cursor-point|flyspell-already-abbrevp|flyspell-auto-correct-previous-hook|flyspell-auto-correct-previous-word|flyspell-auto-correct-word|flyspell-buffer|flyspell-change-abbrev|flyspell-check-changed-word-p|flyspell-check-pre-word-p|flyspell-check-previous-highlighted-word|flyspell-check-region-doublons|flyspell-check-word-p|flyspell-correct-word-before-point|flyspell-correct-word|flyspell-debug-signal-changed-checked|flyspell-debug-signal-no-check|flyspell-debug-signal-pre-word-checked|flyspell-debug-signal-word-checked|flyspell-define-abbrev|flyspell-delay-command|flyspell-delay-commands|flyspell-delete-all-overlays|flyspell-delete-region-overlays|flyspell-deplacement-command|flyspell-deplacement-commands|flyspell-display-next-corrections|flyspell-do-correct|flyspell-emacs-popup|flyspell-external-point-words|flyspell-generic-progmode-verify|flyspell-get-casechars|flyspell-get-not-casechars|flyspell-get-word|flyspell-goto-next-error|flyspell-hack-local-variables-hook|flyspell-highlight-duplicate-region|flyspell-highlight-incorrect-region|flyspell-kill-ispell-hook|flyspell-large-region|flyspell-math-tex-command-p|flyspell-maybe-correct-doubling|flyspell-maybe-correct-transposition|flyspell-minibuffer-p|flyspell-mode-off|flyspell-mode-on|flyspell-mode|flyspell-notify-misspell|flyspell-overlay-p|flyspell-post-command-hook|flyspell-pre-command-hook|flyspell-process-localwords|flyspell-prog-mode|flyspell-properties-at-p|flyspell-region|flyspell-small-region|flyspell-tex-command-p|flyspell-unhighlight-at|flyspell-word-search-backward|flyspell-word-search-forward|flyspell-word|flyspell-xemacs-popup|focus-frame|foldout-exit-fold|foldout-mouse-goto-heading|foldout-mouse-hide-or-exit|foldout-mouse-show|foldout-mouse-swallow-events|foldout-mouse-zoom|foldout-update-mode-line|foldout-zoom-subtree|follow--window-sorter|follow-adjust-window|follow-align-compilation-windows|follow-all-followers|follow-avoid-tail-recenter|follow-cache-valid-p|follow-calc-win-end|follow-calc-win-start|follow-calculate-first-window-start-from-above|follow-calculate-first-window-start-from-below|follow-comint-scroll-to-bottom|follow-debug-message|follow-delete-other-windows-and-split|follow-end-of-buffer|follow-estimate-first-window-start|follow-find-file-hook|follow-first-window|follow-last-window|follow-maximize-region|follow-menu-filter|follow-mode|follow-mwheel-scroll|follow-next-window|follow-point-visible-all-windows-p|follow-pos-visible|follow-post-command-hook|follow-previous-window|follow-recenter|follow-redisplay|follow-redraw-after-event|follow-redraw|follow-scroll-bar-drag|follow-scroll-bar-scroll-down)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:follow-scroll-bar-scroll-up|follow-scroll-bar-toolkit-scroll|follow-scroll-down|follow-scroll-up|follow-select-if-end-visible|follow-select-if-visible-from-first|follow-select-if-visible|follow-split-followers|follow-switch-to-buffer-all|follow-switch-to-buffer|follow-switch-to-current-buffer-all|follow-update-window-start|follow-window-size-change|follow-windows-aligned-p|follow-windows-start-end|font-get-glyphs|font-get-system-font|font-get-system-normal-font|font-info|font-lock-after-change-function|font-lock-after-fontify-buffer|font-lock-after-unfontify-buffer|font-lock-append-text-property|font-lock-apply-highlight|font-lock-apply-syntactic-highlight|font-lock-change-mode|font-lock-choose-keywords|font-lock-compile-keyword|font-lock-compile-keywords|font-lock-default-fontify-buffer|font-lock-default-fontify-region|font-lock-default-function|font-lock-default-unfontify-buffer|font-lock-default-unfontify-region|font-lock-defontify|font-lock-ensure|font-lock-eval-keywords|font-lock-extend-jit-lock-region-after-change|font-lock-extend-region-multiline|font-lock-extend-region-wholelines|font-lock-fillin-text-property|font-lock-flush|font-lock-fontify-anchored-keywords|font-lock-fontify-block|font-lock-fontify-buffer|font-lock-fontify-keywords-region|font-lock-fontify-region|font-lock-fontify-syntactic-anchored-keywords|font-lock-fontify-syntactic-keywords-region|font-lock-fontify-syntactically-region|font-lock-initial-fontify|font-lock-match-c-style-declaration-item-and-skip-to-next|font-lock-match-meta-declaration-item-and-skip-to-next|font-lock-mode-internal|font-lock-mode-set-explicitly|font-lock-mode|font-lock-prepend-text-property|font-lock-refresh-defaults|font-lock-set-defaults|font-lock-specified-p|font-lock-turn-off-thing-lock|font-lock-turn-on-thing-lock|font-lock-unfontify-buffer|font-lock-unfontify-region|font-lock-update-removed-keyword-alist|font-lock-value-in-major-mode|font-match-p|font-menu-add-default|font-setting-change-default-font|font-shape-gstring|font-show-log|font-variation-glyphs|fontset-font|fontset-info|fontset-list|fontset-name-p|fontset-plain-name|footnote-mode|foreground-color-at-point|form-at-point|format-annotate-atomic-property-change|format-annotate-function|format-annotate-location|format-annotate-region|format-annotate-single-property-change|format-annotate-value|format-deannotate-region|format-decode-buffer|format-decode-region|format-decode-run-method|format-decode|format-delq-cons|format-encode-buffer|format-encode-region|format-encode-run-method|format-insert-annotations|format-kbd-macro|format-make-relatively-unique|format-proper-list-p|format-property-increment-region|format-read|format-reorder|format-replace-strings|format-spec-make|format-spec|format-subtract-regions|forms-find-file-other-window|forms-find-file|forms-mode|fortran-abbrev-help|fortran-abbrev-start|fortran-analyze-file-format|fortran-auto-fill-mode|fortran-auto-fill|fortran-beginning-do|fortran-beginning-if|fortran-beginning-of-block|fortran-beginning-of-subprogram|fortran-blink-match|fortran-blink-matching-do|fortran-blink-matching-if|fortran-break-line|fortran-calculate-indent|fortran-check-end-prog-re|fortran-check-for-matching-do|fortran-column-ruler|fortran-comment-indent|fortran-comment-region|fortran-current-defun|fortran-current-line-indentation|fortran-electric-line-number|fortran-end-do|fortran-end-if|fortran-end-of-block|fortran-end-of-subprogram|fortran-fill-paragraph|fortran-fill-statement|fortran-fill|fortran-find-comment-start-skip|fortran-gud-find-expr|fortran-hack-local-variables|fortran-indent-comment|fortran-indent-line|fortran-indent-new-line|fortran-indent-subprogram|fortran-indent-to-column|fortran-is-in-string-p|fortran-join-line|fortran-line-length|fortran-line-number-indented-correctly-p|fortran-looking-at-if-then|fortran-make-syntax-propertize-function|fortran-mark-do|fortran-mark-if|fortran-match-and-skip-declaration|fortran-menu|fortran-mode|fortran-next-statement|fortran-numerical-continuation-char|fortran-prepare-abbrev-list-buffer|fortran-previous-statement|fortran-remove-continuation|fortran-split-line|fortran-strip-sequence-nos|fortran-uncomment-region|fortran-window-create-momentarily|fortran-window-create|fortune-add-fortune|fortune-append|fortune-ask-file|fortune-compile|fortune-from-region|fortune-in-buffer|fortune-to-signature|fortune|forward-ifdef|forward-page|forward-paragraph|forward-point|forward-same-syntax|forward-sentence|forward-symbol|forward-text-line|forward-thing|forward-visible-line|forward-whitespace|fourth|frame-border-width|frame-bottom-divider-width|frame-can-run-window-configuration-change-hook|frame-char-size|frame-configuration-p|frame-configuration-to-register|frame-face-alist|frame-focus|frame-font-cache|frame-fringe-width|frame-geom-spec-cons|frame-geom-value-cons|frame-initialize|frame-notice-user-settings|frame-or-buffer-changed-p|frame-remove-geometry-params|frame-right-divider-width|frame-root-window-p|frame-scroll-bar-height|frame-scroll-bar-width|frame-set-background-mode|frame-terminal-default-bg-mode|frame-text-cols|frame-text-height|frame-text-lines|frame-text-width|frame-total-cols|frame-total-lines|frame-windows-min-size|framep-on-display|frames-on-display-list|frameset--find-frame-if|frameset--initial-params|frameset--jump-to-register|frameset--make--cmacro|frameset--make|frameset--minibufferless-last-p|frameset--print-register|frameset--prop-setter|frameset--record-minibuffer-relationships|frameset--restore-frame|frameset--reuse-frame|frameset--set-id|frameset-app--cmacro|frameset-app|frameset-cfg-id|frameset-compute-pos|frameset-copy|frameset-description--cmacro|frameset-description|frameset-filter-iconified|frameset-filter-minibuffer|frameset-filter-params|frameset-filter-sanitize-color|frameset-filter-shelve-param|frameset-filter-tty-to-GUI|frameset-filter-unshelve-param|frameset-frame-id-equal-p|frameset-frame-id|frameset-frame-with-id|frameset-keep-original-display-p|frameset-minibufferless-first-p|frameset-move-onscreen|frameset-name--cmacro|frameset-name|frameset-p--cmacro|frameset-p|frameset-prop|frameset-properties--cmacro|frameset-properties|frameset-restore|frameset-save|frameset-states--cmacro|frameset-states|frameset-switch-to-gui-p|frameset-switch-to-tty-p|frameset-timestamp--cmacro|frameset-timestamp|frameset-to-register|frameset-valid-p|frameset-version--cmacro|frameset-version|fringe--check-style|fringe-bitmap-p|fringe-columns|fringe-mode-initialize|fringe-mode|fringe-query-style|ftp-mode|ftp|full-calc-keypad|full-calc|funcall-interactively|function\\\\\\\\*|function-called-at-point|function-equal|function-overload-p|function-put|function|gamegrid-add-score-insecure|gamegrid-add-score-with-update-game-score-1|gamegrid-add-score-with-update-game-score|gamegrid-add-score|gamegrid-cell-offset|gamegrid-characterp|gamegrid-color|gamegrid-colorize-glyph|gamegrid-display-type|gamegrid-event-x|gamegrid-event-y|gamegrid-get-cell|gamegrid-init-buffer|gamegrid-init|gamegrid-initialize-display|gamegrid-kill-timer|gamegrid-make-color-tty-face|gamegrid-make-color-x-face|gamegrid-make-face|gamegrid-make-glyph|gamegrid-make-grid-x-face|gamegrid-make-image-from-vector|gamegrid-make-mono-tty-face|gamegrid-make-mono-x-face|gamegrid-match-spec-list|gamegrid-match-spec|gamegrid-set-cell|gamegrid-set-display-table|gamegrid-set-face|gamegrid-set-font|gamegrid-set-timer|gamegrid-setup-default-font|gamegrid-setup-face|gamegrid-start-timer|gametree-apply-layout|gametree-apply-register-layout|gametree-break-line-here|gametree-children-shown-p|gametree-compute-and-insert-score|gametree-compute-reduced-score|gametree-current-branch-depth|gametree-current-branch-ply|gametree-current-branch-score|gametree-current-layout|gametree-entry-shown-p|gametree-forward-line|gametree-hack-file-layout|gametree-insert-new-leaf|gametree-insert-score|gametree-layout-to-register|gametree-looking-at-ply|gametree-merge-line|gametree-mode|gametree-mouse-break-line-here|gametree-mouse-hide-subtree|gametree-mouse-show-children-and-entry|gametree-mouse-show-subtree|gametree-prettify-heading|gametree-restore-layout|gametree-save-and-hack-layout|gametree-save-layout|gametree-show-children-and-entry|gametree-transpose-following-leaves|gcd|gdb--check-interpreter|gdb--if-arrow|gdb-add-handler|gdb-add-subscriber|gdb-append-to-partial-output|gdb-bind-function-to-buffer|gdb-breakpoints-buffer-name|gdb-breakpoints-list-handler-custom|gdb-breakpoints-list-handler|gdb-breakpoints-mode|gdb-buffer-shows-main-thread-p|gdb-buffer-type|gdb-changed-registers-handler|gdb-check-target-async|gdb-clear-inferior-io|gdb-clear-partial-output|gdb-concat-output|gdb-console|gdb-continue-thread|gdb-control-all-threads|gdb-control-current-thread|gdb-create-define-alist|gdb-current-buffer-frame|gdb-current-buffer-rules|gdb-current-buffer-thread|gdb-current-context-buffer-name|gdb-current-context-command|gdb-current-context-mode-name|gdb-delchar-or-quit|gdb-delete-breakpoint|gdb-delete-frame-or-window|gdb-delete-handler|gdb-delete-subscriber|gdb-disassembly-buffer-name|gdb-disassembly-handler-custom|gdb-disassembly-handler|gdb-disassembly-mode|gdb-disassembly-place-breakpoints|gdb-display-breakpoints-buffer|gdb-display-buffer|gdb-display-disassembly-buffer|gdb-display-disassembly-for-thread|gdb-display-gdb-buffer|gdb-display-io-buffer|gdb-display-locals-buffer|gdb-display-locals-for-thread|gdb-display-memory-buffer|gdb-display-registers-buffer|gdb-display-registers-for-thread|gdb-display-source-buffer|gdb-display-stack-buffer|gdb-display-stack-for-thread|gdb-display-threads-buffer|gdb-done-or-error|gdb-done|gdb-edit-locals-value|gdb-edit-register-value|gdb-edit-value-handler|gdb-edit-value|gdb-emit-signal|gdb-enable-debug|gdb-error|gdb-find-file-hook|gdb-find-watch-expression|gdb-force-mode-line-update|gdb-frame-breakpoints-buffer|gdb-frame-disassembly-buffer|gdb-frame-disassembly-for-thread|gdb-frame-gdb-buffer|gdb-frame-handler|gdb-frame-io-buffer|gdb-frame-locals-buffer|gdb-frame-locals-for-thread|gdb-frame-location|gdb-frame-memory-buffer|gdb-frame-registers-buffer|gdb-frame-registers-for-thread|gdb-frame-stack-buffer|gdb-frame-stack-for-thread|gdb-frame-threads-buffer|gdb-frames-mode|gdb-gdb|gdb-get-buffer-create|gdb-get-buffer|gdb-get-changed-registers|gdb-get-handler-function|gdb-get-location|gdb-get-main-selected-frame|gdb-get-many-fields|gdb-get-prompt|gdb-get-source-file-list|gdb-get-source-file|gdb-get-subscribers|gdb-get-target-string|gdb-goto-breakpoint|gdb-gud-context-call|gdb-gud-context-command|gdb-handle-reply|gdb-handler-function--cmacro|gdb-handler-function|gdb-handler-p--cmacro|gdb-handler-p|gdb-handler-pending-trigger--cmacro|gdb-handler-pending-trigger|gdb-handler-token-number--cmacro|gdb-handler-token-number|gdb-ignored-notification|gdb-inferior-filter|gdb-inferior-io--init-proc|gdb-inferior-io-mode|gdb-inferior-io-name|gdb-inferior-io-sentinel|gdb-init-1|gdb-init-buffer|gdb-input|gdb-internals|gdb-interrupt-thread|gdb-invalidate-breakpoints|gdb-invalidate-disassembly|gdb-invalidate-frames|gdb-invalidate-locals|gdb-invalidate-memory|gdb-invalidate-registers|gdb-invalidate-threads|gdb-io-eof|gdb-io-interrupt|gdb-io-quit|gdb-io-stop|gdb-json-partial-output|gdb-json-read-buffer|gdb-json-string|gdb-jsonify-buffer|gdb-line-posns|gdb-locals-buffer-name|gdb-locals-handler-custom|gdb-locals-handler|gdb-locals-mode|gdb-make-header-line-mouse-map|gdb-many-windows|gdb-mark-line|gdb-memory-buffer-name|gdb-memory-column-width|gdb-memory-format-binary|gdb-memory-format-hexadecimal|gdb-memory-format-menu-1|gdb-memory-format-menu|gdb-memory-format-octal|gdb-memory-format-signed|gdb-memory-format-unsigned|gdb-memory-mode|gdb-memory-set-address-event|gdb-memory-set-address|gdb-memory-set-columns|gdb-memory-set-rows|gdb-memory-show-next-page|gdb-memory-show-previous-page|gdb-memory-unit-byte|gdb-memory-unit-giant|gdb-memory-unit-halfword|gdb-memory-unit-menu-1|gdb-memory-unit-menu|gdb-memory-unit-word|gdb-mi-quote|gdb-mouse-jump|gdb-mouse-set-clear-breakpoint|gdb-mouse-toggle-breakpoint-fringe|gdb-mouse-toggle-breakpoint-margin|gdb-mouse-until|gdb-non-stop-handler|gdb-pad-string|gdb-parent-mode|gdb-partial-output-name|gdb-pending-handler-p|gdb-place-breakpoints|gdb-preempt-existing-or-display-buffer|gdb-preemptively-display-disassembly-buffer|gdb-preemptively-display-locals-buffer|gdb-preemptively-display-registers-buffer|gdb-preemptively-display-stack-buffer|gdb-propertize-header)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:gdb-put-breakpoint-icon|gdb-put-string|gdb-read-memory-custom|gdb-read-memory-handler|gdb-register-names-handler|gdb-registers-buffer-name|gdb-registers-handler-custom|gdb-registers-handler|gdb-registers-mode|gdb-remove-all-pending-triggers|gdb-remove-breakpoint-icons|gdb-remove-strings|gdb-reset|gdb-restore-windows|gdb-resync|gdb-rules-buffer-mode|gdb-rules-name-maker|gdb-rules-update-trigger|gdb-running|gdb-script-beginning-of-defun|gdb-script-calculate-indentation|gdb-script-end-of-defun|gdb-script-font-lock-syntactic-face|gdb-script-indent-line|gdb-script-mode|gdb-script-skip-to-head|gdb-select-frame|gdb-select-thread|gdb-send|gdb-set-buffer-rules|gdb-set-window-buffer|gdb-setq-thread-number|gdb-setup-windows|gdb-shell|gdb-show-run-p|gdb-show-stop-p|gdb-speedbar-auto-raise|gdb-speedbar-expand-node|gdb-speedbar-timer-fn|gdb-speedbar-update|gdb-stack-buffer-name|gdb-stack-list-frames-custom|gdb-stack-list-frames-handler|gdb-starting|gdb-step-thread|gdb-stopped|gdb-strip-string-backslash|gdb-table-add-row|gdb-table-column-sizes--cmacro|gdb-table-column-sizes|gdb-table-p--cmacro|gdb-table-p|gdb-table-right-align--cmacro|gdb-table-right-align|gdb-table-row-properties--cmacro|gdb-table-row-properties|gdb-table-rows--cmacro|gdb-table-rows|gdb-table-string|gdb-thread-created|gdb-thread-exited|gdb-thread-list-handler-custom|gdb-thread-list-handler|gdb-thread-selected|gdb-threads-buffer-name|gdb-threads-mode|gdb-toggle-breakpoint|gdb-toggle-switch-when-another-stopped|gdb-tooltip-print-1|gdb-tooltip-print|gdb-update-buffer-name|gdb-update-gud-running|gdb-update|gdb-var-create-handler|gdb-var-delete-1|gdb-var-delete-children|gdb-var-delete|gdb-var-evaluate-expression-handler|gdb-var-list-children-handler|gdb-var-list-children|gdb-var-set-format|gdb-var-update-handler|gdb-var-update|gdb-wait-for-pending|gdb|gdbmi-bnf-async-record|gdbmi-bnf-console-stream-output|gdbmi-bnf-gdb-prompt|gdbmi-bnf-incomplete-record-result|gdbmi-bnf-init|gdbmi-bnf-log-stream-output|gdbmi-bnf-out-of-band-record|gdbmi-bnf-output|gdbmi-bnf-result-and-async-record-impl|gdbmi-bnf-result-record|gdbmi-bnf-skip-unrecognized|gdbmi-bnf-stream-record|gdbmi-bnf-target-stream-output|gdbmi-is-number|gdbmi-same-start|gdbmi-start-with|generate-fontset-menu|generic-char-p|generic-make-keywords-list|generic-mode-internal|generic-mode|generic-p|generic-primary-only-one-p|generic-primary-only-p|gensym|gentemp|get\\\\\\\\*|get-edebug-spec|get-file-char|get-free-disk-space|get-language-info|get-mode-local-parent|get-mru-window|get-next-valid-buffer|get-other-frame|get-scroll-bar-mode|get-unicode-property-internal|get-unused-iso-final-char|get-upcase-table|getenv-internal|getf|gfile-add-watch|gfile-rm-watch|glasses-change|glasses-convert-to-unreadable|glasses-custom-set|glasses-make-overlay|glasses-make-readable|glasses-make-unreadable|glasses-mode|glasses-overlay-p|glasses-parenthesis-exception-p|glasses-set-overlay-properties|global-auto-composition-mode|global-auto-revert-mode|global-cwarn-mode-check-buffers|global-cwarn-mode-cmhh|global-cwarn-mode-enable-in-buffers|global-cwarn-mode|global-ede-mode|global-eldoc-mode|global-font-lock-mode-check-buffers|global-font-lock-mode-cmhh|global-font-lock-mode-enable-in-buffers|global-font-lock-mode|global-hi-lock-mode-check-buffers|global-hi-lock-mode-cmhh|global-hi-lock-mode-enable-in-buffers|global-hi-lock-mode|global-highlight-changes-mode-check-buffers|global-highlight-changes-mode-cmhh|global-highlight-changes-mode-enable-in-buffers|global-highlight-changes-mode|global-highlight-changes|global-hl-line-highlight|global-hl-line-mode|global-hl-line-unhighlight-all|global-hl-line-unhighlight|global-linum-mode-check-buffers|global-linum-mode-cmhh|global-linum-mode-enable-in-buffers|global-linum-mode|global-prettify-symbols-mode-check-buffers|global-prettify-symbols-mode-cmhh|global-prettify-symbols-mode-enable-in-buffers|global-prettify-symbols-mode|global-reveal-mode|global-semantic-decoration-mode|global-semantic-highlight-edits-mode|global-semantic-highlight-func-mode|global-semantic-idle-completions-mode|global-semantic-idle-local-symbol-highlight-mode|global-semantic-idle-scheduler-mode|global-semantic-idle-summary-mode|global-semantic-mru-bookmark-mode|global-semantic-show-parser-state-mode|global-semantic-show-unmatched-syntax-mode|global-semantic-stickyfunc-mode|global-semanticdb-minor-mode|global-set-scheme-interaction-buffer|global-srecode-minor-mode|global-subword-mode|global-superword-mode|global-visual-line-mode-check-buffers|global-visual-line-mode-cmhh|global-visual-line-mode-enable-in-buffers|global-visual-line-mode|global-whitespace-mode|global-whitespace-newline-mode|global-whitespace-toggle-options|glyphless-set-char-table-range|gmm-called-interactively-p|gmm-customize-mode|gmm-error|gmm-format-time-string|gmm-image-load-path-for-library|gmm-image-search-load-path|gmm-labels|gmm-message|gmm-regexp-concat|gmm-tool-bar-from-list|gmm-widget-p|gmm-write-region|gnus--random-face-with-type|gnus-1|gnus-Folder-save-name|gnus-active|gnus-add-buffer|gnus-add-configuration|gnus-add-shutdown|gnus-add-text-properties-when|gnus-add-text-properties|gnus-add-to-sorted-list|gnus-agent-batch-fetch|gnus-agent-batch|gnus-agent-delete-group|gnus-agent-fetch-session|gnus-agent-find-parameter|gnus-agent-get-function|gnus-agent-get-undownloaded-list|gnus-agent-group-covered-p|gnus-agent-method-p|gnus-agent-possibly-alter-active|gnus-agent-possibly-save-gcc|gnus-agent-regenerate|gnus-agent-rename-group|gnus-agent-request-article|gnus-agent-retrieve-headers|gnus-agent-save-active|gnus-agent-save-group-info|gnus-agent-store-article|gnus-agentize|gnus-alist-pull|gnus-alive-p|gnus-and|gnus-annotation-in-region-p|gnus-apply-kill-file-internal|gnus-apply-kill-file|gnus-archive-server-wanted-p|gnus-article-date-lapsed|gnus-article-date-local|gnus-article-date-original|gnus-article-de-base64-unreadable|gnus-article-de-quoted-unreadable|gnus-article-decode-HZ|gnus-article-decode-encoded-words|gnus-article-delete-invisible-text|gnus-article-display-x-face|gnus-article-edit-article|gnus-article-edit-done|gnus-article-edit-mode|gnus-article-fill-cited-article|gnus-article-fill-cited-long-lines|gnus-article-hide-boring-headers|gnus-article-hide-citation-in-followups|gnus-article-hide-citation-maybe|gnus-article-hide-citation|gnus-article-hide-headers|gnus-article-hide-pem|gnus-article-hide-signature|gnus-article-highlight-citation|gnus-article-html|gnus-article-mail|gnus-article-mode|gnus-article-next-page|gnus-article-outlook-deuglify-article|gnus-article-outlook-repair-attribution|gnus-article-outlook-unwrap-lines|gnus-article-prepare-display|gnus-article-prepare|gnus-article-prev-page|gnus-article-read-summary-keys|gnus-article-remove-cr|gnus-article-remove-trailing-blank-lines|gnus-article-save|gnus-article-set-window-start|gnus-article-setup-buffer|gnus-article-strip-leading-blank-lines|gnus-article-treat-overstrike|gnus-article-unsplit-urls|gnus-article-wash-html|gnus-assq-delete-all|gnus-async-halt-prefetch|gnus-async-prefetch-article|gnus-async-prefetch-next|gnus-async-prefetch-remove-group|gnus-async-request-fetched-article|gnus-atomic-progn-assign|gnus-atomic-progn|gnus-atomic-setq|gnus-backlog-enter-article|gnus-backlog-remove-article|gnus-backlog-request-article|gnus-batch-kill|gnus-batch-score|gnus-binary-mode|gnus-bind-print-variables|gnus-blocked-images|gnus-bookmark-bmenu-list|gnus-bookmark-jump|gnus-bookmark-set|gnus-bound-and-true-p|gnus-boundp|gnus-browse-foreign-server|gnus-buffer-exists-p|gnus-buffer-live-p|gnus-buffers|gnus-bug|gnus-button-mailto|gnus-button-reply|gnus-byte-compile|gnus-cache-articles-in-group|gnus-cache-close|gnus-cache-delete-group|gnus-cache-enter-article|gnus-cache-enter-remove-article|gnus-cache-file-contents|gnus-cache-generate-active|gnus-cache-generate-nov-databases|gnus-cache-open|gnus-cache-possibly-alter-active|gnus-cache-possibly-enter-article|gnus-cache-possibly-remove-articles|gnus-cache-remove-article|gnus-cache-rename-group|gnus-cache-request-article|gnus-cache-retrieve-headers|gnus-cache-save-buffers|gnus-cache-update-article|gnus-cached-article-p|gnus-character-to-event|gnus-check-backend-function|gnus-check-reasonable-setup|gnus-completing-read|gnus-configure-windows|gnus-continuum-version|gnus-convert-article-to-rmail|gnus-convert-face-to-png|gnus-convert-gray-x-face-to-xpm|gnus-convert-image-to-gray-x-face|gnus-convert-png-to-face|gnus-copy-article-buffer|gnus-copy-file|gnus-copy-overlay|gnus-copy-sequence|gnus-create-hash-size|gnus-create-image|gnus-create-info-command|gnus-current-score-file-nondirectory|gnus-data-find|gnus-data-header|gnus-date-get-time|gnus-date-iso8601|gnus-dd-mmm|gnus-deactivate-mark|gnus-declare-backend|gnus-decode-newsgroups|gnus-define-group-parameter|gnus-define-keymap|gnus-define-keys-1|gnus-define-keys-safe|gnus-define-keys|gnus-delay-article|gnus-delay-initialize|gnus-delay-send-queue|gnus-delete-alist|gnus-delete-directory|gnus-delete-duplicates|gnus-delete-file|gnus-delete-first|gnus-delete-gnus-frame|gnus-delete-line|gnus-delete-overlay|gnus-demon-add-disconnection|gnus-demon-add-handler|gnus-demon-add-rescan|gnus-demon-add-scan-timestamps|gnus-demon-add-scanmail|gnus-demon-cancel|gnus-demon-init|gnus-demon-remove-handler|gnus-display-x-face-in-from|gnus-draft-mode|gnus-draft-reminder|gnus-dribble-enter|gnus-dribble-touch|gnus-dup-enter-articles|gnus-dup-suppress-articles|gnus-dup-unsuppress-article|gnus-edit-form|gnus-emacs-completing-read|gnus-emacs-version|gnus-ems-redefine|gnus-enter-server-buffer|gnus-ephemeral-group-p|gnus-error|gnus-eval-in-buffer-window|gnus-execute|gnus-expand-group-parameter|gnus-expand-group-parameters|gnus-expunge|gnus-extended-version|gnus-extent-detached-p|gnus-extent-start-open|gnus-extract-address-components|gnus-extract-references|gnus-face-from-file|gnus-faces-at|gnus-fetch-field|gnus-fetch-group-other-frame|gnus-fetch-group|gnus-fetch-original-field|gnus-file-newer-than|gnus-final-warning|gnus-find-method-for-group|gnus-find-subscribed-addresses|gnus-find-text-property-region|gnus-float-time|gnus-folder-save-name|gnus-frame-or-window-display-name|gnus-generate-new-group-name|gnus-get-buffer-create|gnus-get-buffer-window|gnus-get-display-table|gnus-get-info|gnus-get-text-property-excluding-characters-with-faces|gnus-getenv-nntpserver|gnus-gethash-safe|gnus-gethash|gnus-globalify-regexp|gnus-goto-char|gnus-goto-colon|gnus-graphic-display-p|gnus-grep-in-list|gnus-group-add-parameter|gnus-group-add-score|gnus-group-auto-expirable-p|gnus-group-customize|gnus-group-decoded-name|gnus-group-entry|gnus-group-fast-parameter|gnus-group-find-parameter|gnus-group-first-unread-group|gnus-group-foreign-p|gnus-group-full-name|gnus-group-get-new-news|gnus-group-get-parameter|gnus-group-group-name|gnus-group-guess-full-name-from-command-method|gnus-group-insert-group-line|gnus-group-iterate|gnus-group-list-groups|gnus-group-mail|gnus-group-make-help-group|gnus-group-method|gnus-group-name-charset|gnus-group-name-decode|gnus-group-name-to-method|gnus-group-native-p|gnus-group-news|gnus-group-parameter-value|gnus-group-position-point|gnus-group-post-news|gnus-group-prefixed-name|gnus-group-prefixed-p|gnus-group-quit-config|gnus-group-quit|gnus-group-read-only-p|gnus-group-real-name|gnus-group-real-prefix|gnus-group-remove-parameter|gnus-group-save-newsrc|gnus-group-secondary-p|gnus-group-send-queue|gnus-group-server|gnus-group-set-info|gnus-group-set-mode-line|gnus-group-set-parameter|gnus-group-setup-buffer|gnus-group-short-name|gnus-group-split-fancy|gnus-group-split-setup|gnus-group-split-update|gnus-group-split|gnus-group-startup-message|gnus-group-total-expirable-p|gnus-group-unread|gnus-group-update-group|gnus-groups-from-server|gnus-header-from|gnus-highlight-selected-tree|gnus-horizontal-recenter|gnus-html-prefetch-images|gnus-ido-completing-read|gnus-image-type-available-p|gnus-indent-rigidly|gnus-info-find-node|gnus-info-group|gnus-info-level|gnus-info-marks|gnus-info-method|gnus-info-params|gnus-info-rank|gnus-info-read|gnus-info-score|gnus-info-set-entry|gnus-info-set-group|gnus-info-set-level|gnus-info-set-marks|gnus-info-set-method|gnus-info-set-params|gnus-info-set-rank|gnus-info-set-read|gnus-info-set-score|gnus-insert-random-face-header|gnus-insert-random-x-face-header|gnus-interactive|gnus-intern-safe|gnus-intersection|gnus-invisible-p|gnus-iswitchb-completing-read|gnus-jog-cache|gnus-key-press-event-p|gnus-kill-all-overlays)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:gnus-kill-buffer|gnus-kill-ephemeral-group|gnus-kill-file-edit-file|gnus-kill-file-raise-followups-to-author|gnus-kill-save-kill-buffer|gnus-kill|gnus-list-debbugs|gnus-list-memq-of-list|gnus-list-of-read-articles|gnus-list-of-unread-articles|gnus-local-set-keys|gnus-mail-strip-quoted-names|gnus-mailing-list-insinuate|gnus-mailing-list-mode|gnus-make-directory|gnus-make-hashtable|gnus-make-local-hook|gnus-make-overlay|gnus-make-predicate-1|gnus-make-predicate|gnus-make-sort-function-1|gnus-make-sort-function|gnus-make-thread-indent-array|gnus-map-function|gnus-mapcar|gnus-mark-active-p|gnus-match-substitute-replacement|gnus-max-width-function|gnus-member-of-valid|gnus-merge|gnus-message-with-timestamp|gnus-message|gnus-method-ephemeral-p|gnus-method-equal|gnus-method-option-p|gnus-method-simplify|gnus-method-to-full-server-name|gnus-method-to-server-name|gnus-method-to-server|gnus-methods-equal-p|gnus-methods-sloppily-equal|gnus-methods-using|gnus-mime-view-all-parts|gnus-mode-line-buffer-identification|gnus-mode-string-quote|gnus-move-overlay|gnus-msg-mail|gnus-mule-max-width-function|gnus-multiple-choice|gnus-narrow-to-body|gnus-narrow-to-page|gnus-native-method-p|gnus-news-group-p|gnus-newsgroup-directory-form|gnus-newsgroup-kill-file|gnus-newsgroup-savable-name|gnus-newsrc-parse-options|gnus-next-char-property-change|gnus-no-server-1|gnus-no-server|gnus-not-ignore|gnus-notifications|gnus-offer-save-summaries|gnus-online|gnus-open-agent|gnus-open-server|gnus-or|gnus-other-frame|gnus-outlook-deuglify-article|gnus-output-to-mail|gnus-output-to-rmail|gnus-overlay-buffer|gnus-overlay-end|gnus-overlay-get|gnus-overlay-put|gnus-overlay-start|gnus-overlays-at|gnus-overlays-in|gnus-parameter-charset|gnus-parameter-ham-marks|gnus-parameter-ham-process-destination|gnus-parameter-ham-resend-to|gnus-parameter-large-newsgroup-initial|gnus-parameter-post-method|gnus-parameter-registry-ignore|gnus-parameter-spam-autodetect-methods|gnus-parameter-spam-autodetect|gnus-parameter-spam-contents|gnus-parameter-spam-marks|gnus-parameter-spam-process-destination|gnus-parameter-spam-process|gnus-parameter-spam-resend-to|gnus-parameter-subscribed|gnus-parameter-to-address|gnus-parameter-to-list|gnus-parameters-get-parameter|gnus-parent-id|gnus-parse-without-error|gnus-pick-mode|gnus-plugged|gnus-possibly-generate-tree|gnus-possibly-score-headers|gnus-post-news|gnus-pp-to-string|gnus-pp|gnus-previous-char-property-change|gnus-prin1-to-string|gnus-prin1|gnus-process-get|gnus-process-plist|gnus-process-put|gnus-put-display-table|gnus-put-image|gnus-put-overlay-excluding-newlines|gnus-put-text-property-excluding-characters-with-faces|gnus-put-text-property-excluding-newlines|gnus-put-text-property|gnus-random-face|gnus-random-x-face|gnus-range-add|gnus-read-event-char|gnus-read-group|gnus-read-init-file|gnus-read-method|gnus-read-shell-command|gnus-recursive-directory-files|gnus-redefine-select-method-widget|gnus-region-active-p|gnus-registry-handle-action|gnus-registry-initialize|gnus-registry-install-hooks|gnus-remassoc|gnus-remove-from-range|gnus-remove-if-not|gnus-remove-if|gnus-remove-image|gnus-remove-text-properties-when|gnus-remove-text-with-property|gnus-rename-file|gnus-replace-in-string|gnus-request-article-this-buffer|gnus-request-post|gnus-request-type|gnus-rescale-image|gnus-run-hook-with-args|gnus-run-hooks|gnus-run-mode-hooks|gnus-same-method-different-name|gnus-score-adaptive|gnus-score-advanced|gnus-score-close|gnus-score-customize|gnus-score-delta-default|gnus-score-file-name|gnus-score-find-trace|gnus-score-flush-cache|gnus-score-followup-article|gnus-score-followup-thread|gnus-score-headers|gnus-score-mode|gnus-score-save|gnus-secondary-method-p|gnus-seconds-month|gnus-seconds-today|gnus-seconds-year|gnus-select-frame-set-input-focus|gnus-select-lowest-window|gnus-server-add-address|gnus-server-equal|gnus-server-extend-method|gnus-server-get-method|gnus-server-server-name|gnus-server-set-info|gnus-server-status|gnus-server-string|gnus-server-to-method|gnus-servers-using-backend|gnus-set-active|gnus-set-file-modes|gnus-set-info|gnus-set-process-plist|gnus-set-process-query-on-exit-flag|gnus-set-sorted-intersection|gnus-set-window-start|gnus-set-work-buffer|gnus-sethash|gnus-short-group-name|gnus-shutdown|gnus-sieve-article-add-rule|gnus-sieve-generate|gnus-sieve-update|gnus-similar-server-opened|gnus-simplify-mode-line|gnus-slave-no-server|gnus-slave-unplugged|gnus-slave|gnus-sloppily-equal-method-parameters|gnus-sorted-complement|gnus-sorted-difference|gnus-sorted-intersection|gnus-sorted-ndifference|gnus-sorted-nintersection|gnus-sorted-nunion|gnus-sorted-range-intersection|gnus-sorted-union|gnus-splash-svg-color-symbols|gnus-splash|gnus-split-references|gnus-start-date-timer|gnus-stop-date-timer|gnus-string-equal|gnus-string-mark-left-to-right|gnus-string-match-p|gnus-string-or-1|gnus-string-or|gnus-string-prefix-p|gnus-string-remove-all-properties|gnus-string<|gnus-string>|gnus-strip-whitespace|gnus-subscribe-topics|gnus-summary-article-number|gnus-summary-bookmark-jump|gnus-summary-buffer-name|gnus-summary-cancel-article|gnus-summary-current-score|gnus-summary-exit|gnus-summary-followup-to-mail-with-original|gnus-summary-followup-to-mail|gnus-summary-followup-with-original|gnus-summary-followup|gnus-summary-increase-score|gnus-summary-insert-cached-articles|gnus-summary-insert-line|gnus-summary-last-subject|gnus-summary-line-format-spec|gnus-summary-lower-same-subject-and-select|gnus-summary-lower-same-subject|gnus-summary-lower-score|gnus-summary-lower-thread|gnus-summary-mail-forward|gnus-summary-mail-other-window|gnus-summary-news-other-window|gnus-summary-position-point|gnus-summary-post-forward|gnus-summary-post-news|gnus-summary-raise-same-subject-and-select|gnus-summary-raise-same-subject|gnus-summary-raise-score|gnus-summary-raise-thread|gnus-summary-read-group|gnus-summary-reply-with-original|gnus-summary-reply|gnus-summary-resend-bounced-mail|gnus-summary-resend-message|gnus-summary-save-article-folder|gnus-summary-save-article-vm|gnus-summary-save-in-folder|gnus-summary-save-in-vm|gnus-summary-score-map|gnus-summary-send-map|gnus-summary-set-agent-mark|gnus-summary-set-score|gnus-summary-skip-intangible|gnus-summary-supersede-article|gnus-summary-wide-reply-with-original|gnus-summary-wide-reply|gnus-suppress-keymap|gnus-symbolic-argument|gnus-sync-initialize|gnus-sync-install-hooks|gnus-time-iso8601|gnus-timer--function|gnus-tool-bar-update|gnus-topic-mode|gnus-topic-remove-group|gnus-topic-set-parameters|gnus-treat-article|gnus-treat-from-gravatar|gnus-treat-from-picon|gnus-treat-mail-gravatar|gnus-treat-mail-picon|gnus-treat-newsgroups-picon|gnus-tree-close|gnus-tree-open|gnus-try-warping-via-registry|gnus-turn-off-edit-menu|gnus-undo-mode|gnus-undo-register|gnus-union|gnus-unplugged|gnus-update-alist-soft|gnus-update-format|gnus-update-read-articles|gnus-url-unhex-string|gnus-url-unhex|gnus-use-long-file-name|gnus-user-format-function-D|gnus-user-format-function-d|gnus-uu-decode-binhex-view|gnus-uu-decode-binhex|gnus-uu-decode-save-view|gnus-uu-decode-save|gnus-uu-decode-unshar-and-save-view|gnus-uu-decode-unshar-and-save|gnus-uu-decode-unshar-view|gnus-uu-decode-unshar|gnus-uu-decode-uu-and-save-view|gnus-uu-decode-uu-and-save|gnus-uu-decode-uu-view|gnus-uu-decode-uu|gnus-uu-delete-work-dir|gnus-uu-digest-mail-forward|gnus-uu-digest-post-forward|gnus-uu-extract-map|gnus-uu-invert-processable|gnus-uu-mark-all|gnus-uu-mark-buffer|gnus-uu-mark-by-regexp|gnus-uu-mark-map|gnus-uu-mark-over|gnus-uu-mark-region|gnus-uu-mark-series|gnus-uu-mark-sparse|gnus-uu-mark-thread|gnus-uu-post-news|gnus-uu-unmark-thread|gnus-version|gnus-virtual-group-p|gnus-visual-p|gnus-window-edges|gnus-window-inside-pixel-edges|gnus-with-output-to-file|gnus-write-active-file|gnus-write-buffer|gnus-x-face-from-file|gnus-xmas-define|gnus-xmas-redefine|gnus-xmas-splash|gnus-y-or-n-p|gnus-yes-or-no-p|gnus|gnutls-available-p|gnutls-boot|gnutls-bye|gnutls-deinit|gnutls-error-fatalp|gnutls-error-string|gnutls-errorp|gnutls-get-initstage|gnutls-message-maybe|gnutls-negotiate|gnutls-peer-status-warning-describe|gnutls-peer-status|gomoku--intangible|gomoku-beginning-of-line|gomoku-check-filled-qtuple|gomoku-click|gomoku-crash-game|gomoku-cross-qtuple|gomoku-display-statistics|gomoku-emacs-plays|gomoku-end-of-line|gomoku-find-filled-qtuple|gomoku-goto-square|gomoku-goto-xy|gomoku-human-plays|gomoku-human-resigns|gomoku-human-takes-back|gomoku-index-to-x|gomoku-index-to-y|gomoku-init-board|gomoku-init-display|gomoku-init-score-table|gomoku-init-square-score|gomoku-max-height|gomoku-max-width|gomoku-mode|gomoku-mouse-play|gomoku-move-down|gomoku-move-ne|gomoku-move-nw|gomoku-move-se|gomoku-move-sw|gomoku-move-up|gomoku-nb-qtuples|gomoku-offer-a-draw|gomoku-play-move|gomoku-plot-square|gomoku-point-square|gomoku-point-y|gomoku-prompt-for-move|gomoku-prompt-for-other-game|gomoku-start-game|gomoku-strongest-square|gomoku-switch-to-window|gomoku-take-back|gomoku-terminate-game|gomoku-update-score-in-direction|gomoku-update-score-table|gomoku-xy-to-index|gomoku|goto-address-at-mouse|goto-address-at-point|goto-address-find-address-at-point|goto-address-fontify-region|goto-address-fontify|goto-address-mode|goto-address-prog-mode|goto-address-unfontify|goto-address|goto-history-element|goto-line|goto-next-locus|gpm-mouse-disable|gpm-mouse-enable|gpm-mouse-mode|gpm-mouse-start|gpm-mouse-stop|gravatar-retrieve-synchronously|gravatar-retrieve|grep-apply-setting|grep-compute-defaults|grep-default-command|grep-expand-template|grep-filter|grep-find|grep-mode|grep-probe|grep-process-setup|grep-read-files|grep-read-regexp|grep-tag-default|grep|gs-height-in-pt|gs-load-image|gs-options|gs-set-ghostview-colors-window-prop|gs-set-ghostview-window-prop|gs-width-in-pt|gud-backward-sexp|gud-basic-call|gud-call|gud-common-init|gud-dbx-marker-filter|gud-dbx-massage-args|gud-def|gud-dguxdbx-marker-filter|gud-display-frame|gud-display-line|gud-expansion-speedbar-buttons|gud-expr-compound-sep|gud-expr-compound|gud-file-name|gud-filter|gud-find-c-expr|gud-find-class|gud-find-expr|gud-find-file|gud-format-command|gud-forward-sexp|gud-gdb-completion-at-point|gud-gdb-completions-1|gud-gdb-completions|gud-gdb-fetch-lines-filter|gud-gdb-get-stackframe|gud-gdb-goto-stackframe|gud-gdb-marker-filter|gud-gdb-run-command-fetch-lines|gud-gdb|gud-gdbmi-completions|gud-gdbmi-fetch-lines-filter|gud-gdbmi-marker-filter|gud-goto-info|gud-guiler-marker-filter|gud-innermost-expr|gud-install-speedbar-variables|gud-irixdbx-marker-filter|gud-jdb-analyze-source|gud-jdb-build-class-source-alist-for-file|gud-jdb-build-class-source-alist|gud-jdb-build-source-files-list|gud-jdb-find-source-file|gud-jdb-find-source-using-classpath|gud-jdb-find-source|gud-jdb-marker-filter|gud-jdb-massage-args|gud-jdb-parse-classpath-string|gud-jdb-skip-block|gud-jdb-skip-character-literal|gud-jdb-skip-id-ish-thing|gud-jdb-skip-single-line-comment|gud-jdb-skip-string-literal|gud-jdb-skip-traditional-or-documentation-comment|gud-jdb-skip-whitespace-and-comments|gud-jdb-skip-whitespace|gud-kill-buffer-hook|gud-marker-filter|gud-mipsdbx-marker-filter|gud-mode|gud-next-expr|gud-pdb-marker-filter|gud-perldb-marker-filter|gud-perldb-massage-args|gud-prev-expr|gud-query-cmdline|gud-read-address|gud-refresh|gud-reset|gud-sdb-find-file|gud-sdb-marker-filter|gud-sentinel|gud-set-buffer|gud-speedbar-buttons|gud-speedbar-item-info|gud-stop-subjob|gud-symbol|gud-tool-bar-item-visible-no-fringe|gud-tooltip-activate-mouse-motions-if-enabled|gud-tooltip-activate-mouse-motions|gud-tooltip-change-major-mode|gud-tooltip-dereference|gud-tooltip-mode|gud-tooltip-mouse-motion|gud-tooltip-print-command|gud-tooltip-process-output|gud-tooltip-tips|gud-val|gud-watch|gud-xdb-marker-filter|gud-xdb-massage-args|gui--selection-value-internal|gui--valid-simple-selection-p|gui-call|gui-get-primary-selection|gui-get-selection|gui-method--name|gui-method-declare|gui-method-define|gui-method|gui-select-text|gui-selection-value|gui-set-selection|guiler|gv--defsetter|gv--defun-declaration|gv-deref|gv-get|gv-ref|hack-local-variables-apply|hack-local-variables-confirm|hack-local-variables-filter|hack-local-variables-prop-line|hack-one-local-variable--obsolete|hack-one-local-variable-constantp|hack-one-local-variable-eval-safep|hack-one-local-variable-quotep|hack-one-local-variable|handle-delete-frame|handle-focus-in|handle-focus-out|handle-save-session|handle-select-window|handwrite-10pt|handwrite-11pt|handwrite-12pt|handwrite-13pt|handwrite-insert-font|handwrite-insert-header|handwrite-insert-info|handwrite-insert-preamble|handwrite-set-pagenumber-off|handwrite-set-pagenumber-on|handwrite-set-pagenumber|handwrite|hangul-input-method-activate|hanoi-0|hanoi-goto-char|hanoi-insert-ring|hanoi-internal|hanoi-move-ring|hanoi-n|hanoi-pos-on-tower-p|hanoi-put-face|hanoi-ring-to-pos|hanoi-sit-for|hanoi-unix-64|hanoi-unix|hanoi|hash-table-keys|hash-table-values|hashcash-already-paid-p|hashcash-cancel-async|hashcash-check-payment|hashcash-generate-payment-async|hashcash-generate-payment|hashcash-insert-payment-async-2|hashcash-insert-payment-async|hashcash-insert-payment|hashcash-payment-required|hashcash-payment-to|hashcash-point-at-bol|hashcash-point-at-eol|hashcash-processes-running-p|hashcash-strip-quoted-names|hashcash-token-substring|hashcash-verify-payment|hashcash-version|hashcash-wait-async|hashcash-wait-or-cancel|he--all-buffers|he-buffer-member|he-capitalize-first|he-concat-directory-file-name|he-dabbrev-beg|he-dabbrev-kill-search|he-dabbrev-search|he-file-name-beg|he-init-string|he-kill-beg|he-line-beg|he-line-search-regexp|he-line-search|he-lisp-symbol-beg)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:he-list-beg|he-list-search|he-ordinary-case-p|he-reset-string|he-string-member|he-substitute-string|he-transfer-case|he-whole-kill-search|hebrew-font-get-precomposed|hebrew-shape-gstring|help--binding-locus|help--key-binding-keymap|help-C-file-name|help-add-fundoc-usage|help-at-pt-cancel-timer|help-at-pt-kbd-string|help-at-pt-maybe-display|help-at-pt-set-timer|help-at-pt-string|help-bookmark-jump|help-bookmark-make-record|help-button-action|help-describe-category-set|help-do-arg-highlight|help-do-xref|help-fns--autoloaded-p|help-fns--compiler-macro|help-fns--interactive-only|help-fns--key-bindings|help-fns--obsolete|help-fns--parent-mode|help-fns--signature|help-follow-mouse|help-follow-symbol|help-follow|help-for-help-internal-doc|help-for-help-internal|help-for-help|help-form-show|help-function-arglist|help-go-back|help-go-forward|help-highlight-arg|help-highlight-arguments|help-insert-string|help-insert-xref-button|help-key-description|help-make-usage|help-make-xrefs|help-mode-finish|help-mode-menu|help-mode-revert-buffer|help-mode-setup|help-mode|help-print-return-message|help-quit|help-split-fundoc|help-window-display-message|help-window-setup|help-with-tutorial-spec-language|help-with-tutorial|help-xref-button|help-xref-go-back|help-xref-go-forward|help-xref-interned|help-xref-on-pp|help|hexl-C-c-prefix|hexl-C-x-prefix|hexl-ESC-prefix|hexl-activate-ruler|hexl-address-to-marker|hexl-ascii-start-column|hexl-backward-char|hexl-backward-short|hexl-backward-word|hexl-beginning-of-1k-page|hexl-beginning-of-512b-page|hexl-beginning-of-buffer|hexl-beginning-of-line|hexl-char-after-point|hexl-current-address|hexl-end-of-1k-page|hexl-end-of-512b-page|hexl-end-of-buffer|hexl-end-of-line|hexl-find-file|hexl-follow-ascii-find|hexl-follow-ascii|hexl-follow-line|hexl-forward-char|hexl-forward-short|hexl-forward-word|hexl-goto-address|hexl-goto-hex-address|hexl-hex-char-to-integer|hexl-hex-string-to-integer|hexl-highlight-line-range|hexl-htoi|hexl-insert-char|hexl-insert-decimal-char|hexl-insert-hex-char|hexl-insert-hex-string|hexl-insert-multibyte-char|hexl-insert-octal-char|hexl-isearch-search-function|hexl-line-displen|hexl-maybe-dehexlify-buffer|hexl-menu|hexl-mode--minor-mode-p|hexl-mode--setq-local|hexl-mode-exit|hexl-mode-ruler|hexl-mode|hexl-next-line|hexl-oct-char-to-integer|hexl-octal-string-to-integer|hexl-options|hexl-previous-line|hexl-print-current-point-info|hexl-printable-character|hexl-quoted-insert|hexl-revert-buffer-function|hexl-rulerize|hexl-save-buffer|hexl-scroll-down|hexl-scroll-up|hexl-self-insert-command|hexlify-buffer|hfy-begin-span|hfy-bgcol|hfy-box-to-border-assoc|hfy-box-to-style|hfy-box|hfy-buffer|hfy-colour-vals|hfy-colour|hfy-combined-face-spec|hfy-compile-face-map|hfy-compile-stylesheet|hfy-copy-and-fontify-file|hfy-css-name|hfy-decor|hfy-default-footer|hfy-default-header|hfy-dirname|hfy-end-span|hfy-face-at|hfy-face-attr-for-class|hfy-face-or-def-to-name|hfy-face-resolve-face|hfy-face-to-css-default|hfy-face-to-style-i|hfy-face-to-style|hfy-fallback-colour-values|hfy-family|hfy-find-invisible-ranges|hfy-flatten-style|hfy-fontified-p|hfy-fontify-buffer|hfy-force-fontification|hfy-href-stub|hfy-href|hfy-html-dekludge-buffer|hfy-html-enkludge-buffer|hfy-html-quote|hfy-init-progn|hfy-initfile|hfy-interq|hfy-invisible-name|hfy-invisible|hfy-kludge-cperl-mode|hfy-link-style-string|hfy-link-style|hfy-list-files|hfy-load-tags-cache|hfy-lookup|hfy-make-directory|hfy-mark-tag-hrefs|hfy-mark-tag-names|hfy-mark-trailing-whitespace|hfy-merge-adjacent-spans|hfy-opt|hfy-overlay-props-at|hfy-parse-tags-buffer|hfy-prepare-index-i|hfy-prepare-index|hfy-prepare-tag-map|hfy-prop-invisible-p|hfy-relstub|hfy-save-buffer-state|hfy-save-initvar|hfy-save-kill-buffers|hfy-shell|hfy-size-to-int|hfy-size|hfy-slant|hfy-sprintf-stylesheet|hfy-subtract-maps|hfy-tags-for-file|hfy-text-p|hfy-triplet|hfy-unmark-trailing-whitespace|hfy-weight|hfy-which-etags|hfy-width|hfy-word-regex|hi-lock--hashcons|hi-lock--regexps-at-point|hi-lock-face-buffer|hi-lock-face-phrase-buffer|hi-lock-face-symbol-at-point|hi-lock-find-patterns|hi-lock-font-lock-hook|hi-lock-keyword->face|hi-lock-line-face-buffer|hi-lock-mode-set-explicitly|hi-lock-mode|hi-lock-process-phrase|hi-lock-read-face-name|hi-lock-regexp-okay|hi-lock-set-file-patterns|hi-lock-set-pattern|hi-lock-unface-buffer|hi-lock-unload-function|hi-lock-write-interactive-patterns|hide-body|hide-entry|hide-ifdef-block|hide-ifdef-define|hide-ifdef-guts|hide-ifdef-mode-menu|hide-ifdef-mode|hide-ifdef-region-internal|hide-ifdef-region|hide-ifdef-set-define-alist|hide-ifdef-toggle-outside-read-only|hide-ifdef-toggle-read-only|hide-ifdef-toggle-shadowing|hide-ifdef-undef|hide-ifdef-use-define-alist|hide-ifdefs|hide-leaves|hide-other|hide-region-body|hide-sublevels|hide-subtree|hif-add-new-defines|hif-after-revert-function|hif-and-expr|hif-and|hif-canonicalize-tokens|hif-canonicalize|hif-clear-all-ifdef-defined|hif-comma|hif-comp-expr|hif-compress-define-list|hif-conditional|hif-define-macro|hif-define-operator|hif-defined|hif-delimit|hif-divide|hif-end-of-line|hif-endif-to-ifdef|hif-eq-expr|hif-equal|hif-evaluate-macro|hif-evaluate-region|hif-expand-token-list|hif-expr|hif-exprlist|hif-factor|hif-find-any-ifX|hif-find-define|hif-find-ifdef-block|hif-find-next-relevant|hif-find-previous-relevant|hif-find-range|hif-flatten|hif-get-argument-list|hif-greater-equal|hif-greater|hif-hide-line|hif-if-valid-identifier-p|hif-ifdef-to-endif|hif-invoke|hif-less-equal|hif-less|hif-logand-expr|hif-logand|hif-logior-expr|hif-logior|hif-lognot|hif-logshift-expr|hif-logxor-expr|hif-logxor|hif-looking-at-elif|hif-looking-at-else|hif-looking-at-endif|hif-looking-at-ifX|hif-lookup|hif-macro-supply-arguments|hif-make-range|hif-math|hif-mathify-binop|hif-mathify|hif-merge-ifdef-region|hif-minus|hif-modulo|hif-muldiv-expr|hif-multiply|hif-nexttoken|hif-not|hif-notequal|hif-or-expr|hif-or|hif-parse-exp|hif-parse-macro-arglist|hif-place-macro-invocation|hif-plus|hif-possibly-hide|hif-range-elif|hif-range-else|hif-range-end|hif-range-start|hif-recurse-on|hif-set-var|hif-shiftleft|hif-shiftright|hif-show-all|hif-show-ifdef-region|hif-string-concatenation|hif-string-to-number|hif-stringify|hif-token-concat|hif-token-concatenation|hif-token-stringification|hif-tokenize|hif-undefine-symbol|highlight-changes-mode-set-explicitly|highlight-changes-mode-turn-on|highlight-changes-mode|highlight-changes-next-change|highlight-changes-previous-change|highlight-changes-remove-highlight|highlight-changes-rotate-faces|highlight-changes-visible-mode|highlight-compare-buffers|highlight-compare-with-file|highlight-lines-matching-regexp|highlight-markup-buffers|highlight-phrase|highlight-regexp|highlight-symbol-at-point|hilit-chg-bump-change|hilit-chg-clear|hilit-chg-cust-fix-changes-face-list|hilit-chg-desktop-restore|hilit-chg-display-changes|hilit-chg-fixup|hilit-chg-get-diff-info|hilit-chg-get-diff-list-hk|hilit-chg-hide-changes|hilit-chg-make-list|hilit-chg-make-ov|hilit-chg-map-changes|hilit-chg-set-face-on-change|hilit-chg-set|hilit-chg-unload-function|hilit-chg-update|hippie-expand|hl-line-highlight|hl-line-make-overlay|hl-line-mode|hl-line-move|hl-line-unhighlight|hl-line-unload-function|hmac-md5-96|hmac-md5|holiday-list|holidays|horizontal-scroll-bar-mode|horizontal-scroll-bars-available-p|how-many|hs-already-hidden-p|hs-c-like-adjust-block-beginning|hs-discard-overlays|hs-find-block-beginning|hs-forward-sexp|hs-grok-mode-type|hs-hide-all|hs-hide-block-at-point|hs-hide-block|hs-hide-comment-region|hs-hide-initial-comment-block|hs-hide-level-recursive|hs-hide-level|hs-inside-comment-p|hs-isearch-show-temporary|hs-isearch-show|hs-life-goes-on|hs-looking-at-block-start-p|hs-make-overlay|hs-minor-mode-menu|hs-minor-mode|hs-mouse-toggle-hiding|hs-overlay-at|hs-show-all|hs-show-block|hs-toggle-hiding|html-autoview-mode|html-checkboxes|html-current-defun-name|html-headline-1|html-headline-2|html-headline-3|html-headline-4|html-headline-5|html-headline-6|html-horizontal-rule|html-href-anchor|html-image|html-imenu-index|html-line|html-list-item|html-mode|html-name-anchor|html-ordered-list|html-paragraph|html-radio-buttons|html-unordered-list|html2text|htmlfontify-buffer|htmlfontify-copy-and-link-dir|htmlfontify-load-initfile|htmlfontify-load-rgb-file|htmlfontify-run-etags|htmlfontify-save-initfile|htmlfontify-string|htmlize-attrlist-to-fstruct|htmlize-buffer-1|htmlize-buffer-substring-no-invisible|htmlize-buffer|htmlize-color-to-rgb|htmlize-copy-attr-if-set|htmlize-css-insert-head|htmlize-css-insert-text|htmlize-css-specs|htmlize-defang-local-variables|htmlize-default-body-tag|htmlize-default-doctype|htmlize-despam-address|htmlize-ensure-fontified|htmlize-face-background|htmlize-face-color-internal|htmlize-face-emacs21-attr|htmlize-face-foreground|htmlize-face-list-p|htmlize-face-size|htmlize-face-specifies-property|htmlize-face-to-fstruct|htmlize-faces-at-point|htmlize-faces-in-buffer|htmlize-file|htmlize-font-body-tag|htmlize-font-insert-text|htmlize-fstruct-background--cmacro|htmlize-fstruct-background|htmlize-fstruct-boldp--cmacro|htmlize-fstruct-boldp|htmlize-fstruct-css-name--cmacro|htmlize-fstruct-css-name|htmlize-fstruct-foreground--cmacro|htmlize-fstruct-foreground|htmlize-fstruct-italicp--cmacro|htmlize-fstruct-italicp|htmlize-fstruct-overlinep--cmacro|htmlize-fstruct-overlinep|htmlize-fstruct-p--cmacro|htmlize-fstruct-p|htmlize-fstruct-size--cmacro|htmlize-fstruct-size|htmlize-fstruct-strikep--cmacro|htmlize-fstruct-strikep|htmlize-fstruct-underlinep--cmacro|htmlize-fstruct-underlinep|htmlize-get-color-rgb-hash|htmlize-inline-css-body-tag|htmlize-inline-css-insert-text|htmlize-locate-file|htmlize-make-face-map|htmlize-make-file-name|htmlize-make-hyperlinks|htmlize-many-files-dired|htmlize-many-files|htmlize-memoize|htmlize-merge-faces|htmlize-merge-size|htmlize-merge-two-faces|htmlize-method-function|htmlize-method|htmlize-next-change|htmlize-protect-string|htmlize-region-for-paste|htmlize-region|htmlize-trim-ellipsis|htmlize-unstringify-face|htmlize-untabify|htmlize-with-fontify-message|ibuffer-active-formats-name|ibuffer-add-saved-filters|ibuffer-add-to-tmp-hide|ibuffer-add-to-tmp-show|ibuffer-assert-ibuffer-mode|ibuffer-auto-mode|ibuffer-backward-filter-group|ibuffer-backward-line|ibuffer-backwards-next-marked|ibuffer-bs-show|ibuffer-buf-matches-predicates|ibuffer-buffer-file-name|ibuffer-buffer-name-face|ibuffer-buffer-names-with-mark|ibuffer-bury-buffer|ibuffer-check-formats|ibuffer-clear-filter-groups|ibuffer-clear-summary-columns|ibuffer-columnize-and-insert-list|ibuffer-compile-format|ibuffer-compile-make-eliding-form|ibuffer-compile-make-format-form|ibuffer-compile-make-substring-form|ibuffer-confirm-operation-on|ibuffer-copy-filename-as-kill|ibuffer-count-deletion-lines|ibuffer-count-marked-lines|ibuffer-current-buffer|ibuffer-current-buffers-with-marks|ibuffer-current-format|ibuffer-current-formats|ibuffer-current-mark|ibuffer-current-state-list|ibuffer-customize|ibuffer-decompose-filter-group|ibuffer-decompose-filter|ibuffer-delete-saved-filter-groups|ibuffer-delete-saved-filters|ibuffer-deletion-marked-buffer-names|ibuffer-diff-with-file|ibuffer-do-delete|ibuffer-do-eval|ibuffer-do-isearch-regexp|ibuffer-do-isearch|ibuffer-do-kill-lines|ibuffer-do-kill-on-deletion-marks|ibuffer-do-occur|ibuffer-do-print|ibuffer-do-query-replace-regexp|ibuffer-do-query-replace|ibuffer-do-rename-uniquely|ibuffer-do-replace-regexp|ibuffer-do-revert|ibuffer-do-save|ibuffer-do-shell-command-file|ibuffer-do-shell-command-pipe-replace|ibuffer-do-shell-command-pipe|ibuffer-do-sort-by-alphabetic|ibuffer-do-sort-by-filename\\\\\\\\/process|ibuffer-do-sort-by-major-mode|ibuffer-do-sort-by-mode-name|ibuffer-do-sort-by-recency|ibuffer-do-sort-by-size|ibuffer-do-toggle-modified|ibuffer-do-toggle-read-only|ibuffer-do-view-1|ibuffer-do-view-and-eval|ibuffer-do-view-horizontally|ibuffer-do-view-other-frame|ibuffer-do-view|ibuffer-exchange-filters|ibuffer-expand-format-entry|ibuffer-filter-buffers|ibuffer-filter-by-content|ibuffer-filter-by-derived-mode|ibuffer-filter-by-filename|ibuffer-filter-by-mode|ibuffer-filter-by-name|ibuffer-filter-by-predicate|ibuffer-filter-by-size-gt|ibuffer-filter-by-size-lt|ibuffer-filter-by-used-mode|ibuffer-filter-disable|ibuffer-filters-to-filter-group|ibuffer-find-file)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:ibuffer-format-column|ibuffer-forward-filter-group|ibuffer-forward-line|ibuffer-forward-next-marked|ibuffer-get-marked-buffers|ibuffer-included-in-filters-p|ibuffer-insert-buffer-line|ibuffer-insert-filter-group|ibuffer-interactive-filter-by-mode|ibuffer-invert-sorting|ibuffer-jump-to-buffer|ibuffer-jump-to-filter-group|ibuffer-kill-filter-group|ibuffer-kill-line|ibuffer-list-buffers|ibuffer-make-column-filename-and-process|ibuffer-make-column-filename|ibuffer-make-column-process|ibuffer-map-deletion-lines|ibuffer-map-lines-nomodify|ibuffer-map-lines|ibuffer-map-marked-lines|ibuffer-map-on-mark|ibuffer-mark-by-file-name-regexp|ibuffer-mark-by-mode-regexp|ibuffer-mark-by-mode|ibuffer-mark-by-name-regexp|ibuffer-mark-compressed-file-buffers|ibuffer-mark-dired-buffers|ibuffer-mark-dissociated-buffers|ibuffer-mark-for-delete-backwards|ibuffer-mark-for-delete|ibuffer-mark-forward|ibuffer-mark-help-buffers|ibuffer-mark-interactive|ibuffer-mark-modified-buffers|ibuffer-mark-old-buffers|ibuffer-mark-read-only-buffers|ibuffer-mark-special-buffers|ibuffer-mark-unsaved-buffers|ibuffer-marked-buffer-names|ibuffer-mode|ibuffer-mouse-filter-by-mode|ibuffer-mouse-popup-menu|ibuffer-mouse-toggle-filter-group|ibuffer-mouse-toggle-mark|ibuffer-mouse-visit-buffer|ibuffer-negate-filter|ibuffer-or-filter|ibuffer-other-window|ibuffer-pop-filter-group|ibuffer-pop-filter|ibuffer-recompile-formats|ibuffer-redisplay-current|ibuffer-redisplay-engine|ibuffer-redisplay|ibuffer-save-filter-groups|ibuffer-save-filters|ibuffer-set-filter-groups-by-mode|ibuffer-set-mark-1|ibuffer-set-mark|ibuffer-shrink-to-fit|ibuffer-skip-properties|ibuffer-sort-bufferlist|ibuffer-switch-format|ibuffer-switch-to-saved-filter-groups|ibuffer-switch-to-saved-filters|ibuffer-toggle-filter-group|ibuffer-toggle-marks|ibuffer-toggle-sorting-mode|ibuffer-unmark-all|ibuffer-unmark-backward|ibuffer-unmark-forward|ibuffer-update-format|ibuffer-update-title-and-summary|ibuffer-update|ibuffer-visible-p|ibuffer-visit-buffer-1-window|ibuffer-visit-buffer-other-frame|ibuffer-visit-buffer-other-window-noselect|ibuffer-visit-buffer-other-window|ibuffer-visit-buffer|ibuffer-visit-tags-table|ibuffer-yank-filter-group|ibuffer-yank|ibuffer|icalendar--add-decoded-times|icalendar--add-diary-entry|icalendar--all-events|icalendar--convert-all-timezones|icalendar--convert-anniversary-to-ical|icalendar--convert-block-to-ical|icalendar--convert-cyclic-to-ical|icalendar--convert-date-to-ical|icalendar--convert-float-to-ical|icalendar--convert-ical-to-diary|icalendar--convert-non-recurring-all-day-to-diary|icalendar--convert-non-recurring-not-all-day-to-diary|icalendar--convert-ordinary-to-ical|icalendar--convert-recurring-to-diary|icalendar--convert-sexp-to-ical|icalendar--convert-string-for-export|icalendar--convert-string-for-import|icalendar--convert-to-ical|icalendar--convert-tz-offset|icalendar--convert-weekly-to-ical|icalendar--convert-yearly-to-ical|icalendar--create-ical-alarm|icalendar--create-uid|icalendar--date-to-isodate|icalendar--datestring-to-isodate|icalendar--datetime-to-american-date|icalendar--datetime-to-colontime|icalendar--datetime-to-diary-date|icalendar--datetime-to-european-date|icalendar--datetime-to-iso-date|icalendar--datetime-to-noneuropean-date|icalendar--decode-isodatetime|icalendar--decode-isoduration|icalendar--diarytime-to-isotime|icalendar--dmsg|icalendar--do-create-ical-alarm|icalendar--find-time-zone|icalendar--format-ical-event|icalendar--get-children|icalendar--get-event-properties|icalendar--get-event-property-attributes|icalendar--get-event-property|icalendar--get-month-number|icalendar--get-unfolded-buffer|icalendar--get-weekday-abbrev|icalendar--get-weekday-number|icalendar--get-weekday-numbers|icalendar--parse-summary-and-rest|icalendar--parse-vtimezone|icalendar--read-element|icalendar--rris|icalendar--split-value|icalendar-convert-diary-to-ical|icalendar-export-file|icalendar-export-region|icalendar-extract-ical-from-buffer|icalendar-first-weekday-of-year|icalendar-import-buffer|icalendar-import-file|icalendar-import-format-sample|icomplete--completion-predicate|icomplete--completion-table|icomplete--field-beg|icomplete--field-end|icomplete--field-string|icomplete--in-region-setup|icomplete-backward-completions|icomplete-completions|icomplete-exhibit|icomplete-forward-completions|icomplete-minibuffer-setup|icomplete-mode|icomplete-post-command-hook|icomplete-pre-command-hook|icomplete-simple-completing-p|icomplete-tidy|icon-backward-to-noncomment|icon-backward-to-start-of-continued-exp|icon-backward-to-start-of-if|icon-comment-indent|icon-forward-sexp-function|icon-indent-command|icon-indent-line|icon-is-continuation-line|icon-is-continued-line|icon-mode|iconify-or-deiconify-frame|idl-font-lock-keywords-2|idl-font-lock-keywords-3|idl-font-lock-keywords|idl-mode|idlwave-action-and-binding|idlwave-active-rinfo-space|idlwave-add-file-link-selector|idlwave-after-successful-completion|idlwave-all-assq|idlwave-all-class-inherits|idlwave-all-class-tags|idlwave-all-method-classes|idlwave-all-method-keyword-classes|idlwave-any-syslib|idlwave-attach-class-tag-classes|idlwave-attach-classes|idlwave-attach-keyword-classes|idlwave-attach-method-classes|idlwave-auto-fill-mode|idlwave-auto-fill|idlwave-backward-block|idlwave-backward-up-block|idlwave-beginning-of-block|idlwave-beginning-of-statement|idlwave-beginning-of-subprogram|idlwave-best-rinfo-assoc|idlwave-best-rinfo-assq|idlwave-block-jump-out|idlwave-block-master|idlwave-calc-hanging-indent|idlwave-calculate-cont-indent|idlwave-calculate-indent|idlwave-calculate-paren-indent|idlwave-call-special|idlwave-case|idlwave-check-abbrev|idlwave-choose-completion|idlwave-choose|idlwave-class-alist|idlwave-class-file-or-buffer|idlwave-class-found-in|idlwave-class-info|idlwave-class-inherits|idlwave-class-or-superclass-with-tag|idlwave-class-tag-reset|idlwave-class-tags|idlwave-close-block|idlwave-code-abbrev|idlwave-command-hook|idlwave-comment-hook|idlwave-complete-class-structure-tag-help|idlwave-complete-class-structure-tag|idlwave-complete-class|idlwave-complete-filename|idlwave-complete-in-buffer|idlwave-complete-sysvar-help|idlwave-complete-sysvar-or-tag|idlwave-complete-sysvar-tag-help|idlwave-complete|idlwave-completing-read|idlwave-completion-fontify-classes|idlwave-concatenate-rinfo-lists|idlwave-context-help|idlwave-convert-xml-clean-routine-aliases|idlwave-convert-xml-clean-statement-aliases|idlwave-convert-xml-clean-sysvar-aliases|idlwave-convert-xml-system-routine-info|idlwave-count-eq|idlwave-count-memq|idlwave-count-outlawed-buffers|idlwave-create-customize-menu|idlwave-create-user-catalog-file|idlwave-current-indent|idlwave-current-routine-fullname|idlwave-current-routine|idlwave-current-statement-indent|idlwave-custom-ampersand-surround|idlwave-custom-ltgtr-surround|idlwave-customize|idlwave-debug-map|idlwave-default-choose-completion|idlwave-default-insert-timestamp|idlwave-define-abbrev|idlwave-delete-user-catalog-file|idlwave-determine-class|idlwave-display-calling-sequence|idlwave-display-completion-list-emacs|idlwave-display-completion-list-xemacs|idlwave-display-completion-list|idlwave-display-user-catalog-widget|idlwave-do-action|idlwave-do-context-help|idlwave-do-context-help1|idlwave-do-find-module|idlwave-do-kill-autoloaded-buffers|idlwave-do-mouse-completion-help|idlwave-doc-header|idlwave-doc-modification|idlwave-down-block|idlwave-downcase-safe|idlwave-edit-in-idlde|idlwave-elif|idlwave-end-of-block|idlwave-end-of-statement|idlwave-end-of-statement0|idlwave-end-of-subprogram|idlwave-entry-find-keyword|idlwave-entry-has-help|idlwave-entry-keywords|idlwave-expand-equal|idlwave-expand-keyword|idlwave-expand-lib-file-name|idlwave-expand-path|idlwave-expand-region-abbrevs|idlwave-explicit-class-listed|idlwave-fill-paragraph|idlwave-find-class-definition|idlwave-find-file-noselect|idlwave-find-inherited-class|idlwave-find-key|idlwave-find-module-this-file|idlwave-find-module|idlwave-find-struct-tag|idlwave-find-structure-definition|idlwave-fix-keywords|idlwave-fix-module-if-obj_new|idlwave-font-lock-fontify-region|idlwave-for|idlwave-forward-block|idlwave-function-menu|idlwave-function|idlwave-get-buffer-routine-info|idlwave-get-buffer-visiting|idlwave-get-routine-info-from-buffers|idlwave-goto-comment|idlwave-grep|idlwave-hard-tab|idlwave-has-help|idlwave-help-assistant-available|idlwave-help-assistant-close|idlwave-help-assistant-command|idlwave-help-assistant-help-with-topic|idlwave-help-assistant-open-link|idlwave-help-assistant-raise|idlwave-help-assistant-start|idlwave-help-check-locations|idlwave-help-diagnostics|idlwave-help-display-help-window|idlwave-help-error|idlwave-help-find-first-header|idlwave-help-find-header|idlwave-help-find-in-doc-header|idlwave-help-find-routine-definition|idlwave-help-fontify|idlwave-help-get-help-buffer|idlwave-help-get-special-help|idlwave-help-html-link|idlwave-help-menu|idlwave-help-mode|idlwave-help-quit|idlwave-help-return-to-calling-frame|idlwave-help-select-help-frame|idlwave-help-show-help-frame|idlwave-help-toggle-header-match-and-def|idlwave-help-toggle-header-top-and-def|idlwave-help-with-source|idlwave-highlight-linked-completions|idlwave-html-help-location|idlwave-if|idlwave-in-comment|idlwave-in-quote|idlwave-in-structure|idlwave-indent-and-action|idlwave-indent-left-margin|idlwave-indent-line|idlwave-indent-statement|idlwave-indent-subprogram|idlwave-indent-to|idlwave-info|idlwave-insert-source-location|idlwave-is-comment-line|idlwave-is-comment-or-empty-line|idlwave-is-continuation-line|idlwave-is-pointer-dereference|idlwave-keyboard-quit|idlwave-keyword-abbrev|idlwave-kill-autoloaded-buffers|idlwave-kill-buffer-update|idlwave-last-valid-char|idlwave-launch-idlhelp|idlwave-lib-p|idlwave-list-abbrevs|idlwave-list-all-load-path-shadows|idlwave-list-buffer-load-path-shadows|idlwave-list-load-path-shadows|idlwave-list-shell-load-path-shadows|idlwave-load-all-rinfo|idlwave-load-rinfo-next-step|idlwave-load-system-routine-info|idlwave-local-value|idlwave-locate-lib-file|idlwave-look-at|idlwave-make-force-complete-where-list|idlwave-make-full-name|idlwave-make-modified-completion-map-emacs|idlwave-make-modified-completion-map-xemacs|idlwave-make-one-key-alist|idlwave-make-space|idlwave-make-tags|idlwave-mark-block|idlwave-mark-doclib|idlwave-mark-statement|idlwave-mark-subprogram|idlwave-match-class-arrows|idlwave-members-only|idlwave-min-current-statement-indent|idlwave-mode-debug-menu|idlwave-mode-menu|idlwave-mode|idlwave-mouse-active-rinfo-right|idlwave-mouse-active-rinfo-shift|idlwave-mouse-active-rinfo|idlwave-mouse-choose-completion|idlwave-mouse-completion-help|idlwave-mouse-context-help|idlwave-new-buffer-update|idlwave-new-sintern-type|idlwave-newline|idlwave-next-statement|idlwave-nonmembers-only|idlwave-one-key-select|idlwave-online-help|idlwave-parse-definition|idlwave-path-alist-add-flag|idlwave-path-alist-remove-flag|idlwave-popup-select|idlwave-prepare-class-tag-completion|idlwave-prev-index-position|idlwave-previous-statement|idlwave-print-source|idlwave-procedure|idlwave-process-sysvars|idlwave-quit-help|idlwave-quoted|idlwave-read-paths|idlwave-recursive-directory-list|idlwave-region-active-p|idlwave-repeat|idlwave-replace-buffer-routine-info|idlwave-replace-string|idlwave-rescan-asynchronously|idlwave-rescan-catalog-directories|idlwave-reset-sintern-type|idlwave-reset-sintern|idlwave-resolve|idlwave-restore-wconf-after-completion|idlwave-revoke-license-to-kill|idlwave-rinfo-assoc|idlwave-rinfo-assq-any-class|idlwave-rinfo-assq|idlwave-rinfo-group-keywords|idlwave-rinfo-insert-keyword|idlwave-routine-entry-compare-twins|idlwave-routine-entry-compare|idlwave-routine-info|idlwave-routine-source-file|idlwave-routine-twin-compare|idlwave-routine-twins|idlwave-routines|idlwave-rw-case|idlwave-save-buffer-update|idlwave-save-routine-info|idlwave-scan-class-info|idlwave-scan-library-catalogs|idlwave-scan-user-lib-files|idlwave-scroll-completions|idlwave-selector|idlwave-set-local|idlwave-setup|idlwave-shell-break-here|idlwave-shell-compile-helper-routines|idlwave-shell-filter-sysvars|idlwave-shell-recenter-shell-window|idlwave-shell-run-region|idlwave-shell-save-and-run|idlwave-shell-send-command|idlwave-shell-show-commentary|idlwave-shell-update-routine-info|idlwave-shell|idlwave-shorten-syntax|idlwave-show-begin-check|idlwave-show-begin|idlwave-show-commentary|idlwave-show-matching-quote|idlwave-sintern-class-info|idlwave-sintern-class-tag|idlwave-sintern-class)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:idlwave-sintern-dir|idlwave-sintern-keyword-list|idlwave-sintern-keyword|idlwave-sintern-libname|idlwave-sintern-method|idlwave-sintern-rinfo-list|idlwave-sintern-routine-or-method|idlwave-sintern-routine|idlwave-sintern-set|idlwave-sintern-sysvar-alist|idlwave-sintern-sysvar|idlwave-sintern-sysvartag|idlwave-sintern|idlwave-skip-label-or-case|idlwave-skip-multi-commands|idlwave-skip-object|idlwave-special-lib-test|idlwave-split-line|idlwave-split-link-target|idlwave-split-menu-emacs|idlwave-split-menu-xemacs|idlwave-split-string|idlwave-start-load-rinfo-timer|idlwave-start-of-substatement|idlwave-statement-type|idlwave-struct-borders|idlwave-struct-inherits|idlwave-struct-tags|idlwave-study-twins|idlwave-substitute-link-target|idlwave-surround|idlwave-switch|idlwave-sys-dir|idlwave-syslib-p|idlwave-syslib-scanned-p|idlwave-sysvars-reset|idlwave-template|idlwave-this-word|idlwave-toggle-comment-region|idlwave-true-path-alist|idlwave-uniquify|idlwave-unit-name|idlwave-update-buffer-routine-info|idlwave-update-current-buffer-info|idlwave-update-routine-info|idlwave-user-catalog-command-hook|idlwave-what-function|idlwave-what-module-find-class|idlwave-what-module|idlwave-what-procedure|idlwave-where|idlwave-while|idlwave-widget-scan-user-lib-files|idlwave-with-special-syntax|idlwave-write-paths|idlwave-xml-create-class-method-lists|idlwave-xml-create-rinfo-list|idlwave-xml-create-sysvar-alist|idlwave-xml-system-routine-info-up-to-date|idlwave-xor|idna-to-ascii|ido-active|ido-add-virtual-buffers-to-list|ido-all-completions|ido-buffer-internal|ido-buffer-window-other-frame|ido-bury-buffer-at-head|ido-cache-ftp-valid|ido-cache-unc-valid|ido-choose-completion-string|ido-chop|ido-common-initialization|ido-complete-space|ido-complete|ido-completing-read|ido-completion-help|ido-completions|ido-copy-current-file-name|ido-copy-current-word|ido-delete-backward-updir|ido-delete-backward-word-updir|ido-delete-file-at-head|ido-directory-too-big-p|ido-dired|ido-display-buffer|ido-display-file|ido-edit-input|ido-enter-dired|ido-enter-find-file|ido-enter-insert-buffer|ido-enter-insert-file|ido-enter-switch-buffer|ido-everywhere|ido-exhibit|ido-existing-item-p|ido-exit-minibuffer|ido-expand-directory|ido-fallback-command|ido-file-extension-aux|ido-file-extension-lessp|ido-file-extension-order|ido-file-internal|ido-file-lessp|ido-file-name-all-completions-1|ido-file-name-all-completions|ido-final-slash|ido-find-alternate-file|ido-find-common-substring|ido-find-file-in-dir|ido-find-file-other-frame|ido-find-file-other-window|ido-find-file-read-only-other-frame|ido-find-file-read-only-other-window|ido-find-file-read-only|ido-find-file|ido-flatten-merged-list|ido-forget-work-directory|ido-fractionp|ido-get-buffers-in-frames|ido-get-bufname|ido-get-work-directory|ido-get-work-file|ido-ignore-item-p|ido-init-completion-maps|ido-initiate-auto-merge|ido-insert-buffer|ido-insert-file|ido-is-ftp-directory|ido-is-root-directory|ido-is-slow-ftp-host|ido-is-tramp-root|ido-is-unc-host|ido-is-unc-root|ido-kill-buffer-at-head|ido-kill-buffer|ido-kill-emacs-hook|ido-list-directory|ido-load-history|ido-local-file-exists-p|ido-magic-backward-char|ido-magic-delete-char|ido-magic-forward-char|ido-make-buffer-list-1|ido-make-buffer-list|ido-make-choice-list|ido-make-dir-list-1|ido-make-dir-list|ido-make-directory|ido-make-file-list-1|ido-make-file-list|ido-make-merged-file-list-1|ido-make-merged-file-list|ido-make-prompt|ido-makealist|ido-may-cache-directory|ido-merge-work-directories|ido-minibuffer-setup|ido-mode|ido-name|ido-next-match-dir|ido-next-match|ido-next-work-directory|ido-next-work-file|ido-no-final-slash|ido-nonreadable-directory-p|ido-pop-dir|ido-pp|ido-prev-match-dir|ido-prev-match|ido-prev-work-directory|ido-prev-work-file|ido-push-dir-first|ido-push-dir|ido-read-buffer|ido-read-directory-name|ido-read-file-name|ido-read-internal|ido-record-command|ido-record-work-directory|ido-record-work-file|ido-remove-cached-dir|ido-reread-directory|ido-restrict-to-matches|ido-save-history|ido-select-text|ido-set-common-completion|ido-set-current-directory|ido-set-current-home|ido-set-matches-1|ido-set-matches|ido-setup-completion-map|ido-sort-merged-list|ido-summary-buffers-to-end|ido-switch-buffer-other-frame|ido-switch-buffer-other-window|ido-switch-buffer|ido-take-first-match|ido-tidy|ido-time-stamp|ido-to-end|ido-toggle-case|ido-toggle-ignore|ido-toggle-literal|ido-toggle-prefix|ido-toggle-regexp|ido-toggle-trace|ido-toggle-vc|ido-toggle-virtual-buffers|ido-trace|ido-unc-hosts-net-view|ido-unc-hosts|ido-undo-merge-work-directory|ido-unload-function|ido-up-directory|ido-visit-buffer|ido-wash-history|ido-wide-find-dir-or-delete-dir|ido-wide-find-dir|ido-wide-find-dirs-or-files|ido-wide-find-file-or-pop-dir|ido-wide-find-file|ido-word-matching-substring|ido-write-file|ielm|ietf-drums-get-comment|ietf-drums-init|ietf-drums-make-address|ietf-drums-narrow-to-header|ietf-drums-parse-address|ietf-drums-parse-addresses|ietf-drums-parse-date|ietf-drums-quote-string|ietf-drums-remove-comments|ietf-drums-remove-whitespace|ietf-drums-strip|ietf-drums-token-to-list|ietf-drums-unfold-fws|if-let|ifconfig|iimage-mode-buffer|iimage-mode|iimage-modification-hook|iimage-recenter|image--set-speed|image-after-revert-hook|image-animate-get-speed|image-animate-set-speed|image-animate-timeout|image-animated-p|image-backward-hscroll|image-bob|image-bol|image-bookmark-jump|image-bookmark-make-record|image-decrease-speed|image-dired--with-db-file|image-dired-add-to-file-comment-list|image-dired-add-to-tag-file-list|image-dired-add-to-tag-file-lists|image-dired-associated-dired-buffer-window|image-dired-associated-dired-buffer|image-dired-backward-image|image-dired-comment-thumbnail|image-dired-copy-with-exif-file-name|image-dired-create-display-image-buffer|image-dired-create-gallery-lists|image-dired-create-thumb|image-dired-create-thumbnail-buffer|image-dired-create-thumbs|image-dired-define-display-image-mode-keymap|image-dired-define-thumbnail-mode-keymap|image-dired-delete-char|image-dired-delete-tag|image-dired-dir|image-dired-dired-after-readin-hook|image-dired-dired-comment-files|image-dired-dired-display-external|image-dired-dired-display-image|image-dired-dired-display-properties|image-dired-dired-edit-comment-and-tags|image-dired-dired-file-marked-p|image-dired-dired-next-line|image-dired-dired-previous-line|image-dired-dired-toggle-marked-thumbs|image-dired-dired-with-window-configuration|image-dired-display-current-image-full|image-dired-display-current-image-sized|image-dired-display-image-mode|image-dired-display-image|image-dired-display-next-thumbnail-original|image-dired-display-previous-thumbnail-original|image-dired-display-thumb-properties|image-dired-display-thumb|image-dired-display-thumbnail-original-image|image-dired-display-thumbs-append|image-dired-display-thumbs|image-dired-display-window-height|image-dired-display-window-width|image-dired-display-window|image-dired-flag-thumb-original-file|image-dired-format-properties-string|image-dired-forward-image|image-dired-gallery-generate|image-dired-get-buffer-window|image-dired-get-comment|image-dired-get-exif-data|image-dired-get-exif-file-name|image-dired-get-thumbnail-image|image-dired-hidden-p|image-dired-image-at-point-p|image-dired-insert-image|image-dired-insert-thumbnail|image-dired-jump-original-dired-buffer|image-dired-jump-thumbnail-buffer|image-dired-kill-buffer-and-window|image-dired-line-up-dynamic|image-dired-line-up-interactive|image-dired-line-up|image-dired-list-tags|image-dired-mark-and-display-next|image-dired-mark-tagged-files|image-dired-mark-thumb-original-file|image-dired-modify-mark-on-thumb-original-file|image-dired-mouse-display-image|image-dired-mouse-select-thumbnail|image-dired-mouse-toggle-mark|image-dired-next-line-and-display|image-dired-next-line|image-dired-original-file-name|image-dired-previous-line-and-display|image-dired-previous-line|image-dired-read-comment|image-dired-refresh-thumb|image-dired-remove-tag|image-dired-restore-window-configuration|image-dired-rotate-original-left|image-dired-rotate-original-right|image-dired-rotate-original|image-dired-rotate-thumbnail-left|image-dired-rotate-thumbnail-right|image-dired-rotate-thumbnail|image-dired-sane-db-file|image-dired-save-information-from-widgets|image-dired-set-exif-data|image-dired-setup-dired-keybindings|image-dired-show-all-from-dir|image-dired-slideshow-start|image-dired-slideshow-step|image-dired-slideshow-stop|image-dired-tag-files|image-dired-tag-thumbnail-remove|image-dired-tag-thumbnail|image-dired-thumb-name|image-dired-thumbnail-display-external|image-dired-thumbnail-mode|image-dired-thumbnail-set-image-description|image-dired-thumbnail-window|image-dired-toggle-append-browsing|image-dired-toggle-dired-display-properties|image-dired-toggle-mark-thumb-original-file|image-dired-toggle-movement-tracking|image-dired-track-original-file|image-dired-track-thumbnail|image-dired-unmark-thumb-original-file|image-dired-update-property|image-dired-window-height-pixels|image-dired-window-width-pixels|image-dired-write-comments|image-dired-write-tags|image-dired|image-display-size|image-eob|image-eol|image-extension-data|image-file-call-underlying|image-file-handler|image-file-name-regexp|image-file-yank-handler|image-forward-hscroll|image-get-display-property|image-goto-frame|image-increase-speed|image-jpeg-p|image-metadata|image-minor-mode|image-mode--images-in-directory|image-mode-as-text|image-mode-fit-frame|image-mode-maybe|image-mode-menu|image-mode-reapply-winprops|image-mode-setup-winprops|image-mode-window-get|image-mode-window-put|image-mode-winprops|image-mode|image-next-file|image-next-frame|image-next-line|image-previous-file|image-previous-frame|image-previous-line|image-refresh|image-reset-speed|image-reverse-speed|image-scroll-down|image-scroll-up|image-search-load-path|image-set-window-hscroll|image-set-window-vscroll|image-toggle-animation|image-toggle-display-image|image-toggle-display-text|image-toggle-display|image-transform-check-size|image-transform-fit-to-height|image-transform-fit-to-width|image-transform-fit-width|image-transform-properties|image-transform-reset|image-transform-set-rotation|image-transform-set-scale|image-transform-width|image-type-auto-detected-p|image-type-from-buffer|image-type-from-data|image-type-from-file-header|image-type-from-file-name|image-type|imagemagick-filter-types|imagemagick-register-types|imap-add-callback|imap-anonymous-auth|imap-anonymous-p|imap-arrival-filter|imap-authenticate|imap-body-lines|imap-capability|imap-close|imap-cram-md5-auth|imap-cram-md5-p|imap-current-mailbox-p-1|imap-current-mailbox-p|imap-current-mailbox|imap-current-message|imap-digest-md5-auth|imap-digest-md5-p|imap-disable-multibyte|imap-envelope-from|imap-error-text|imap-fetch-asynch|imap-fetch-safe|imap-fetch|imap-find-next-line|imap-forward|imap-gssapi-auth-p|imap-gssapi-auth|imap-gssapi-open|imap-gssapi-stream-p|imap-id|imap-interactive-login|imap-kerberos4-auth-p|imap-kerberos4-auth|imap-kerberos4-open|imap-kerberos4-stream-p|imap-list-to-message-set|imap-log|imap-login-auth|imap-login-p|imap-logout-wait|imap-logout|imap-mailbox-acl-delete|imap-mailbox-acl-get|imap-mailbox-acl-set|imap-mailbox-close|imap-mailbox-create-1|imap-mailbox-create|imap-mailbox-delete|imap-mailbox-examine-1|imap-mailbox-examine|imap-mailbox-expunge|imap-mailbox-get-1|imap-mailbox-get|imap-mailbox-list|imap-mailbox-lsub|imap-mailbox-map-1|imap-mailbox-map|imap-mailbox-put|imap-mailbox-rename|imap-mailbox-select-1|imap-mailbox-select|imap-mailbox-status-asynch|imap-mailbox-status|imap-mailbox-subscribe|imap-mailbox-unselect|imap-mailbox-unsubscribe|imap-message-append|imap-message-appenduid-1|imap-message-appenduid|imap-message-body|imap-message-copy|imap-message-copyuid-1|imap-message-copyuid|imap-message-envelope-bcc|imap-message-envelope-cc|imap-message-envelope-date|imap-message-envelope-from|imap-message-envelope-in-reply-to|imap-message-envelope-message-id|imap-message-envelope-reply-to|imap-message-envelope-sender|imap-message-envelope-subject|imap-message-envelope-to|imap-message-flag-permanent-p|imap-message-flags-add|imap-message-flags-del|imap-message-flags-set|imap-message-get|imap-message-map|imap-message-put|imap-namespace|imap-network-open|imap-network-p|imap-ok-p|imap-open-1|imap-open|imap-opened|imap-parse-acl|imap-parse-address-list|imap-parse-address|imap-parse-astring|imap-parse-body-ext)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:imap-parse-body-extension|imap-parse-body|imap-parse-data-list|imap-parse-envelope|imap-parse-fetch-body-section|imap-parse-fetch|imap-parse-flag-list|imap-parse-greeting|imap-parse-header-list|imap-parse-literal|imap-parse-mailbox|imap-parse-nil|imap-parse-nstring|imap-parse-number|imap-parse-resp-text-code|imap-parse-resp-text|imap-parse-response|imap-parse-status|imap-parse-string-list|imap-parse-string|imap-ping-server|imap-quote-specials|imap-range-to-message-set|imap-remassoc|imap-sasl-auth-p|imap-sasl-auth|imap-sasl-make-mechanisms|imap-search|imap-send-command-1|imap-send-command-wait|imap-send-command|imap-sentinel|imap-shell-open|imap-shell-p|imap-ssl-open|imap-ssl-p|imap-starttls-open|imap-starttls-p|imap-string-to-integer|imap-tls-open|imap-tls-p|imap-utf7-decode|imap-utf7-encode|imap-wait-for-tag|imenu--cleanup|imenu--completion-buffer|imenu--create-keymap|imenu--generic-function|imenu--in-alist|imenu--make-index-alist|imenu--menubar-select|imenu--mouse-menu|imenu--relative-position|imenu--sort-by-name|imenu--sort-by-position|imenu--split-menu|imenu--split-submenus|imenu--split|imenu--subalist-p|imenu--truncate-items|imenu-add-menubar-index|imenu-choose-buffer-index|imenu-default-create-index-function|imenu-default-goto-function|imenu-example--create-c-index|imenu-example--create-lisp-index|imenu-example--lisp-extract-index-name|imenu-example--name-and-position|imenu-find-default|imenu-progress-message|imenu-update-menubar|imenu|in-is13194-post-read-conversion|in-is13194-pre-write-conversion|in-string-p|inactivate-input-method|incf|increase-left-margin|increase-right-margin|increment-register|indent-accumulate-tab-stops|indent-for-comment|indent-icon-exp|indent-line-to|indent-new-comment-line|indent-next-tab-stop|indent-perl-exp|indent-pp-sexp|indent-rigidly--current-indentation|indent-rigidly--pop-undo|indent-rigidly-left-to-tab-stop|indent-rigidly-left|indent-rigidly-right-to-tab-stop|indent-rigidly-right|indent-sexp|indent-tcl-exp|indent-to-column|indented-text-mode|indian-2-column-to-ucs-region|indian-compose-regexp|indian-compose-region|indian-compose-string|indicate-copied-region|inferior-lisp-install-letter-bindings|inferior-lisp-menu|inferior-lisp-mode|inferior-lisp-proc|inferior-lisp|inferior-octave-check-process|inferior-octave-complete|inferior-octave-completion-at-point|inferior-octave-completion-table|inferior-octave-directory-tracker|inferior-octave-dynamic-list-input-ring|inferior-octave-mode|inferior-octave-output-digest|inferior-octave-process-live-p|inferior-octave-resync-dirs|inferior-octave-send-list-and-digest|inferior-octave-startup|inferior-octave-track-window-width-change|inferior-octave|inferior-python-mode|inferior-scheme-mode|inferior-tcl-mode|inferior-tcl-proc|inferior-tcl|info--manual-names|info--prettify-description|info-apropos|info-complete-file|info-complete-symbol|info-complete|info-display-manual|info-emacs-bug|info-emacs-manual|info-file-exists-p|info-finder|info-initialize|info-insert-file-contents-1|info-insert-file-contents|info-lookup->all-modes|info-lookup->cache|info-lookup->completions|info-lookup->doc-spec|info-lookup->ignore-case|info-lookup->initialized|info-lookup->mode-cache|info-lookup->mode-value|info-lookup->other-modes|info-lookup->parse-rule|info-lookup->refer-modes|info-lookup->regexp|info-lookup->topic-cache|info-lookup->topic-value|info-lookup-add-help\\\\\\\\*|info-lookup-add-help|info-lookup-change-mode|info-lookup-completions-at-point|info-lookup-file|info-lookup-guess-c-symbol|info-lookup-guess-custom-symbol|info-lookup-guess-default\\\\\\\\*|info-lookup-guess-default|info-lookup-interactive-arguments|info-lookup-make-completions|info-lookup-maybe-add-help|info-lookup-quick-all-modes|info-lookup-reset|info-lookup-select-mode|info-lookup-setup-mode|info-lookup-symbol|info-lookup|info-other-window|info-setup|info-standalone|info-xref-all-info-files|info-xref-check-all-custom|info-xref-check-all|info-xref-check-buffer|info-xref-check-list|info-xref-check-node|info-xref-check|info-xref-docstrings|info-xref-goto-node-p|info-xref-lock-file-p|info-xref-output-error|info-xref-output|info-xref-subfile-p|info-xref-with-file|info-xref-with-output|info|inhibit-local-variables-p|init-image-library|initialize-completions|initialize-instance|initialize-new-tags-table|inline|insert-abbrevs|insert-byte|insert-directory-adj-pos|insert-directory-safely|insert-file-1|insert-file-literally|insert-file|insert-for-yank-1|insert-image-file|insert-kbd-macro|insert-pair|insert-parentheses|insert-rectangle|insert-string|insert-tab|int-to-string|interactive-completion-string-reader|interactive-p|intern-safe|internal--after-save-selected-window|internal--after-with-selected-window|internal--before-save-selected-window|internal--before-with-selected-window|internal--build-binding-value-form|internal--build-binding|internal--build-bindings|internal--check-binding|internal--listify|internal--thread-argument|internal--track-mouse|internal-ange-ftp-mode|internal-char-font|internal-complete-buffer-except|internal-complete-buffer|internal-copy-lisp-face|internal-default-process-filter|internal-default-process-sentinel|internal-describe-syntax-value|internal-event-symbol-parse-modifiers|internal-face-x-get-resource|internal-get-lisp-face-attribute|internal-lisp-face-attribute-values|internal-lisp-face-empty-p|internal-lisp-face-equal-p|internal-lisp-face-p|internal-macroexpand-for-load|internal-make-lisp-face|internal-make-var-non-special|internal-merge-in-global-face|internal-pop-keymap|internal-push-keymap|internal-set-alternative-font-family-alist|internal-set-alternative-font-registry-alist|internal-set-font-selection-order|internal-set-lisp-face-attribute-from-resource|internal-set-lisp-face-attribute|internal-show-cursor-p|internal-show-cursor|internal-temp-output-buffer-show|internal-timer-start-idle|intersection|inverse-add-abbrev|inverse-add-global-abbrev|inverse-add-mode-abbrev|inversion-<|inversion-=|inversion-add-to-load-path|inversion-check-version|inversion-decode-version|inversion-download-package-ask|inversion-find-version|inversion-locate-package-files-and-split|inversion-locate-package-files|inversion-package-incompatibility-version|inversion-package-version|inversion-recode|inversion-release-to-number|inversion-require-emacs|inversion-require|inversion-reverse-test|inversion-test|ipconfig|irc|isInNet|isPlainHostName|isResolvable|isearch--get-state|isearch--set-state|isearch--state-barrier--cmacro|isearch--state-barrier|isearch--state-case-fold-search--cmacro|isearch--state-case-fold-search|isearch--state-error--cmacro|isearch--state-error|isearch--state-forward--cmacro|isearch--state-forward|isearch--state-message--cmacro|isearch--state-message|isearch--state-other-end--cmacro|isearch--state-other-end|isearch--state-p--cmacro|isearch--state-p|isearch--state-point--cmacro|isearch--state-point|isearch--state-pop-fun--cmacro|isearch--state-pop-fun|isearch--state-string--cmacro|isearch--state-string|isearch--state-success--cmacro|isearch--state-success|isearch--state-word--cmacro|isearch--state-word|isearch--state-wrapped--cmacro|isearch--state-wrapped|isearch-abort|isearch-back-into-window|isearch-backslash|isearch-backward-regexp|isearch-backward|isearch-cancel|isearch-char-by-name|isearch-clean-overlays|isearch-close-unnecessary-overlays|isearch-complete-edit|isearch-complete|isearch-complete1|isearch-dehighlight|isearch-del-char|isearch-delete-char|isearch-describe-bindings|isearch-describe-key|isearch-describe-mode|isearch-done|isearch-edit-string|isearch-exit|isearch-fail-pos|isearch-fallback|isearch-filter-visible|isearch-forward-exit-minibuffer|isearch-forward-regexp|isearch-forward-symbol-at-point|isearch-forward-symbol|isearch-forward-word|isearch-forward|isearch-help-for-help-internal-doc|isearch-help-for-help-internal|isearch-help-for-help|isearch-highlight-regexp|isearch-highlight|isearch-intersects-p|isearch-lazy-highlight-cleanup|isearch-lazy-highlight-new-loop|isearch-lazy-highlight-search|isearch-lazy-highlight-update|isearch-message-prefix|isearch-message-suffix|isearch-message|isearch-mode-help|isearch-mode|isearch-mouse-2|isearch-no-upper-case-p|isearch-nonincremental-exit-minibuffer|isearch-occur|isearch-open-necessary-overlays|isearch-open-overlay-temporary|isearch-pop-state|isearch-post-command-hook|isearch-pre-command-hook|isearch-printing-char|isearch-process-search-char|isearch-process-search-multibyte-characters|isearch-process-search-string|isearch-push-state|isearch-query-replace-regexp|isearch-query-replace|isearch-quote-char|isearch-range-invisible|isearch-repeat-backward|isearch-repeat-forward|isearch-repeat|isearch-resume|isearch-reverse-exit-minibuffer|isearch-ring-adjust|isearch-ring-adjust1|isearch-ring-advance|isearch-ring-retreat|isearch-search-and-update|isearch-search-fun-default|isearch-search-fun|isearch-search-string|isearch-search|isearch-string-out-of-window|isearch-symbol-regexp|isearch-text-char-description|isearch-toggle-case-fold|isearch-toggle-input-method|isearch-toggle-invisible|isearch-toggle-lax-whitespace|isearch-toggle-regexp|isearch-toggle-specified-input-method|isearch-toggle-symbol|isearch-toggle-word|isearch-unread|isearch-update-ring|isearch-update|isearch-yank-char-in-minibuffer|isearch-yank-char|isearch-yank-internal|isearch-yank-kill|isearch-yank-line|isearch-yank-pop|isearch-yank-string|isearch-yank-word-or-char|isearch-yank-word|isearch-yank-x-selection|isearchb-activate|isearchb-follow-char|isearchb-iswitchb|isearchb-set-keybindings|isearchb-stop|isearchb|iso-charset|iso-cvt-define-menu|iso-cvt-read-only|iso-cvt-write-only|iso-german|iso-gtex2iso|iso-iso2duden|iso-iso2gtex|iso-iso2sgml|iso-iso2tex|iso-sgml2iso|iso-spanish|iso-tex2iso|iso-transl-ctl-x-8-map|ispell-accept-buffer-local-defs|ispell-accept-output|ispell-add-per-file-word-list|ispell-aspell-add-aliases|ispell-aspell-find-dictionary|ispell-begin-skip-region-regexp|ispell-begin-skip-region|ispell-begin-tex-skip-regexp|ispell-buffer-local-dict|ispell-buffer-local-parsing|ispell-buffer-local-words|ispell-buffer-with-debug|ispell-buffer|ispell-call-process-region|ispell-call-process|ispell-change-dictionary|ispell-check-minver|ispell-check-version|ispell-command-loop|ispell-comments-and-strings|ispell-complete-word-interior-frag|ispell-complete-word|ispell-continue|ispell-create-debug-buffer|ispell-decode-string|ispell-display-buffer|ispell-filter|ispell-find-aspell-dictionaries|ispell-find-hunspell-dictionaries|ispell-get-aspell-config-value|ispell-get-casechars|ispell-get-coding-system|ispell-get-decoded-string|ispell-get-extended-character-mode|ispell-get-ispell-args|ispell-get-line|ispell-get-many-otherchars-p|ispell-get-not-casechars|ispell-get-otherchars|ispell-get-word|ispell-help|ispell-highlight-spelling-error-generic|ispell-highlight-spelling-error-overlay|ispell-highlight-spelling-error-xemacs|ispell-highlight-spelling-error|ispell-horiz-scroll|ispell-hunspell-fill-dictionary-entry|ispell-ignore-fcc|ispell-init-process|ispell-int-char|ispell-internal-change-dictionary|ispell-kill-ispell|ispell-looking-at|ispell-looking-back|ispell-lookup-words|ispell-menu-map|ispell-message|ispell-mime-multipartp|ispell-mime-skip-part|ispell-minor-check|ispell-minor-mode|ispell-non-empty-string|ispell-parse-hunspell-affix-file|ispell-parse-output|ispell-pdict-save|ispell-print-if-debug|ispell-process-line|ispell-process-status|ispell-region|ispell-send-replacement|ispell-send-string|ispell-set-spellchecker-params|ispell-show-choices|ispell-skip-region-list|ispell-skip-region|ispell-start-process|ispell-tex-arg-end|ispell-valid-dictionary-list|ispell-with-no-warnings|ispell-word|ispell|isqrt|iswitchb-buffer-other-frame|iswitchb-buffer-other-window|iswitchb-buffer|iswitchb-case|iswitchb-chop|iswitchb-complete|iswitchb-completion-help|iswitchb-completions|iswitchb-display-buffer|iswitchb-entryfn-p|iswitchb-exhibit|iswitchb-existing-buffer-p|iswitchb-exit-minibuffer|iswitchb-find-common-substring|iswitchb-find-file|iswitchb-get-buffers-in-frames|iswitchb-get-bufname|iswitchb-get-matched-buffers|iswitchb-ignore-buffername-p|iswitchb-init-XEmacs-trick|iswitchb-kill-buffer|iswitchb-make-buflist|iswitchb-makealist|iswitchb-minibuffer-setup|iswitchb-mode|iswitchb-next-match|iswitchb-output-completion|iswitchb-possible-new-buffer)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:iswitchb-post-command|iswitchb-pre-command|iswitchb-prev-match|iswitchb-read-buffer|iswitchb-rotate-list|iswitchb-select-buffer-text|iswitchb-set-common-completion|iswitchb-set-matches|iswitchb-summaries-to-end|iswitchb-tidy|iswitchb-to-end|iswitchb-toggle-case|iswitchb-toggle-ignore|iswitchb-toggle-regexp|iswitchb-visit-buffer|iswitchb-window-buffer-p|iswitchb-word-matching-substring|iswitchb-xemacs-backspacekey|iswitchb|iwconfig|japanese-hankaku-region|japanese-hankaku|japanese-hiragana-region|japanese-hiragana|japanese-katakana-region|japanese-katakana|japanese-zenkaku-region|japanese-zenkaku|java-font-lock-keywords-2|java-font-lock-keywords-3|java-font-lock-keywords|java-mode|javascript-mode|jdb|jit-lock--debug-fontify|jit-lock-after-change|jit-lock-context-fontify|jit-lock-debug-mode|jit-lock-deferred-fontify|jit-lock-fontify-now|jit-lock-force-redisplay|jit-lock-function|jit-lock-mode|jit-lock-refontify|jit-lock-stealth-chunk-start|jit-lock-stealth-fontify|jka-compr-build-file-regexp|jka-compr-byte-compiler-base-file-name|jka-compr-call-process|jka-compr-error|jka-compr-file-local-copy|jka-compr-get-compression-info|jka-compr-handler|jka-compr-info-can-append|jka-compr-info-compress-args|jka-compr-info-compress-message|jka-compr-info-compress-program|jka-compr-info-file-magic-bytes|jka-compr-info-regexp|jka-compr-info-strip-extension|jka-compr-info-uncompress-args|jka-compr-info-uncompress-message|jka-compr-info-uncompress-program|jka-compr-insert-file-contents|jka-compr-install|jka-compr-installed-p|jka-compr-load|jka-compr-make-temp-name|jka-compr-partial-uncompress|jka-compr-run-real-handler|jka-compr-set|jka-compr-uninstall|jka-compr-update|jka-compr-write-region|join-line|js--array-comp-indentation|js--backward-pstate|js--backward-syntactic-ws|js--backward-text-property|js--beginning-of-defun-flat|js--beginning-of-defun-nested|js--beginning-of-defun-raw|js--beginning-of-macro|js--class-decl-matcher|js--clear-stale-cache|js--continued-expression-p|js--ctrl-statement-indentation|js--debug|js--end-of-defun-flat|js--end-of-defun-nested|js--end-of-do-while-loop-p|js--ensure-cache--pop-if-ended|js--ensure-cache--update-parse|js--ensure-cache|js--flatten-list|js--flush-caches|js--forward-destructuring-spec|js--forward-expression|js--forward-function-decl|js--forward-pstate|js--forward-syntactic-ws|js--forward-text-property|js--function-prologue-beginning|js--get-all-known-symbols|js--get-c-offset|js--get-js-context|js--get-tabs|js--guess-eval-defun-info|js--guess-function-name|js--guess-symbol-at-point|js--imenu-create-index|js--imenu-to-flat|js--indent-in-array-comp|js--inside-dojo-class-list-p|js--inside-param-list-p|js--inside-pitem-p|js--js-add-resource-alias|js--js-content-window|js--js-create-instance|js--js-decode-retval|js--js-encode-value|js--js-enter-repl|js--js-eval|js--js-funcall|js--js-get-service|js--js-get|js--js-handle-expired-p|js--js-handle-id--cmacro|js--js-handle-id|js--js-handle-p--cmacro|js--js-handle-p|js--js-handle-process--cmacro|js--js-handle-process|js--js-leave-repl|js--js-list|js--js-new|js--js-not|js--js-put|js--js-qi|js--js-true|js--js-wait-for-eval-prompt|js--looking-at-operator-p|js--make-framework-matcher|js--make-merged-item|js--make-nsilocalfile|js--maybe-join|js--maybe-make-marker|js--multi-line-declaration-indentation|js--optimize-arglist|js--parse-state-at-point|js--pitem-add-child|js--pitem-b-end--cmacro|js--pitem-b-end|js--pitem-children--cmacro|js--pitem-children|js--pitem-format|js--pitem-goto-h-end|js--pitem-h-begin--cmacro|js--pitem-h-begin|js--pitem-name--cmacro|js--pitem-name|js--pitem-paren-depth--cmacro|js--pitem-paren-depth|js--pitem-strname|js--pitem-type--cmacro|js--pitem-type|js--pitems-to-imenu|js--proper-indentation|js--pstate-is-toplevel-defun|js--re-search-backward-inner|js--re-search-backward|js--re-search-forward-inner|js--re-search-forward|js--read-symbol|js--read-tab|js--regexp-opt-symbol|js--same-line|js--show-cache-at-point|js--splice-into-items|js--split-name|js--syntactic-context-from-pstate|js--syntax-begin-function|js--up-nearby-list|js--update-quick-match-re|js--variable-decl-matcher|js--wait-for-matching-output|js--which-func-joiner|js-beginning-of-defun|js-c-fill-paragraph|js-end-of-defun|js-eval-defun|js-eval|js-find-symbol|js-gc|js-indent-line|js-mode|js-set-js-context|js-syntactic-context|js-syntax-propertize-regexp|js-syntax-propertize|json--with-indentation|json-add-to-object|json-advance|json-alist-p|json-decode-char0|json-encode-alist|json-encode-array|json-encode-char|json-encode-char0|json-encode-hash-table|json-encode-key|json-encode-keyword|json-encode-list|json-encode-number|json-encode-plist|json-encode-string|json-encode|json-join|json-new-object|json-peek|json-plist-p|json-pop|json-pretty-print-buffer|json-pretty-print|json-read-array|json-read-escaped-char|json-read-file|json-read-from-string|json-read-keyword|json-read-number|json-read-object|json-read-string|json-read|json-skip-whitespace|jump-to-register|kbd-macro-query|keep-lines-read-args|keep-lines|kermit-clean-filter|kermit-clean-off|kermit-clean-on|kermit-default-cr|kermit-default-nl|kermit-esc|kermit-send-char|kermit-send-input-cr|keyboard-escape-quit|keymap--menu-item-binding|keymap--menu-item-with-binding|keymap--merge-bindings|keymap-canonicalize|keypad-setup|kill-all-abbrevs|kill-backward-chars|kill-backward-up-list|kill-buffer-and-window|kill-buffer-ask|kill-buffer-if-not-modified|kill-comment|kill-compilation|kill-completion|kill-emacs-save-completions|kill-find|kill-forward-chars|kill-grep|kill-line|kill-matching-buffers|kill-paragraph|kill-rectangle|kill-ring-save|kill-sentence|kill-sexp|kill-some-buffers|kill-this-buffer-enabled-p|kill-this-buffer|kill-visual-line|kill-whole-line|kill-word|kinsoku-longer|kinsoku-shorter|kinsoku|kkc-region|kmacro-add-counter|kmacro-bind-to-key|kmacro-call-macro|kmacro-call-ring-2nd-repeat|kmacro-call-ring-2nd|kmacro-cycle-ring-next|kmacro-cycle-ring-previous|kmacro-delete-ring-head|kmacro-display-counter|kmacro-display|kmacro-edit-lossage|kmacro-edit-macro-repeat|kmacro-edit-macro|kmacro-end-and-call-macro|kmacro-end-call-mouse|kmacro-end-macro|kmacro-end-or-call-macro-repeat|kmacro-end-or-call-macro|kmacro-exec-ring-item|kmacro-execute-from-register|kmacro-extract-lambda|kmacro-get-repeat-prefix|kmacro-insert-counter|kmacro-keyboard-quit|kmacro-lambda-form|kmacro-loop-setup-function|kmacro-name-last-macro|kmacro-pop-ring|kmacro-pop-ring1|kmacro-push-ring|kmacro-repeat-on-last-key|kmacro-ring-empty-p|kmacro-ring-head|kmacro-set-counter|kmacro-set-format|kmacro-split-ring-element|kmacro-start-macro-or-insert-counter|kmacro-start-macro|kmacro-step-edit-insert|kmacro-step-edit-macro|kmacro-step-edit-minibuf-setup|kmacro-step-edit-post-command|kmacro-step-edit-pre-command|kmacro-step-edit-prompt|kmacro-step-edit-query|kmacro-swap-ring|kmacro-to-register|kmacro-view-macro-repeat|kmacro-view-macro|kmacro-view-ring-2nd|lambda|landmark--distance|landmark--intangible|landmark-amble-robot|landmark-beginning-of-line|landmark-blackbox|landmark-calc-confidences|landmark-calc-current-smells|landmark-calc-distance-of-robot-from|landmark-calc-payoff|landmark-calc-smell-internal|landmark-check-filled-qtuple|landmark-click|landmark-confidence-for|landmark-crash-game|landmark-cross-qtuple|landmark-display-statistics|landmark-emacs-plays|landmark-end-of-line|landmark-f|landmark-find-filled-qtuple|landmark-fix-weights-for|landmark-flip-a-coin|landmark-goto-square|landmark-goto-xy|landmark-human-plays|landmark-human-resigns|landmark-human-takes-back|landmark-index-to-x|landmark-index-to-y|landmark-init-board|landmark-init-display|landmark-init-score-table|landmark-init-square-score|landmark-init|landmark-max-height|landmark-max-width|landmark-mode|landmark-mouse-play|landmark-move-down|landmark-move-ne|landmark-move-nw|landmark-move-se|landmark-move-sw|landmark-move-up|landmark-move|landmark-nb-qtuples|landmark-noise|landmark-nslify-wts-int|landmark-nslify-wts|landmark-offer-a-draw|landmark-play-move|landmark-plot-internal|landmark-plot-landmarks|landmark-plot-square|landmark-point-square|landmark-point-y|landmark-print-distance-int|landmark-print-distance|landmark-print-moves|landmark-print-smell-int|landmark-print-smell|landmark-print-w0-int|landmark-print-w0|landmark-print-wts-blackbox|landmark-print-wts-int|landmark-print-wts|landmark-print-y-s-noise-int|landmark-print-y-s-noise|landmark-prompt-for-move|landmark-prompt-for-other-game|landmark-random-move|landmark-randomize-weights-for|landmark-repeat|landmark-set-landmark-signal-strengths|landmark-start-game|landmark-start-robot|landmark-store-old-y_t|landmark-strongest-square|landmark-switch-to-window|landmark-take-back|landmark-terminate-game|landmark-test-run|landmark-update-naught-weights|landmark-update-normal-weights|landmark-update-score-in-direction|landmark-update-score-table|landmark-weights-debug|landmark-xy-to-index|landmark-y|landmark|lao-compose-region|lao-compose-string|lao-composition-function|lao-transcribe-roman-to-lao-string|lao-transcribe-single-roman-syllable-to-lao|last-nonminibuffer-frame|last-sexp-setup-props|latex-backward-sexp-1|latex-close-block|latex-complete-bibtex-keys|latex-complete-data|latex-complete-envnames|latex-complete-refkeys|latex-down-list|latex-electric-env-pair-mode|latex-env-before-change|latex-fill-nobreak-predicate|latex-find-indent|latex-forward-sexp-1|latex-forward-sexp|latex-imenu-create-index|latex-indent|latex-insert-block|latex-insert-item|latex-mode|latex-outline-level|latex-skip-close-parens|latex-split-block|latex-string-prefix-p|latex-syntax-after|latexenc-coding-system-to-inputenc|latexenc-find-file-coding-system|latexenc-inputenc-to-coding-system|latin1-display|lazy-highlight-cleanup|lcm|ld-script-mode|ldap-decode-address|ldap-decode-attribute|ldap-decode-boolean|ldap-decode-string|ldap-encode-address|ldap-encode-boolean|ldap-encode-country-string|ldap-encode-string|ldap-get-host-parameter|ldap-search-internal|ldap-search|ldiff|led-flash|led-off|led-on|led-update|left-char|left-word|let-alist--access-sexp|let-alist--deep-dot-search|let-alist--list-to-sexp|let-alist--remove-dot|let-alist|letf\\\\\\\\*|letf|letrec|lglyph-adjustment|lglyph-ascent|lglyph-char|lglyph-code|lglyph-copy|lglyph-descent|lglyph-from|lglyph-lbearing|lglyph-rbearing|lglyph-set-adjustment|lglyph-set-char|lglyph-set-code|lglyph-set-from-to|lglyph-set-width|lglyph-to|lglyph-width|lgrep|lgstring-char-len|lgstring-char|lgstring-font|lgstring-glyph-len|lgstring-glyph|lgstring-header|lgstring-insert-glyph|lgstring-set-glyph|lgstring-set-header|lgstring-set-id|lgstring-shaped-p|life-birth-char|life-birth-string|life-compute-neighbor-deltas|life-death-char|life-death-string|life-display-generation|life-expand-plane-if-needed|life-extinct-quit|life-grim-reaper|life-increment-generation|life-increment|life-insert-random-pattern|life-life-char|life-life-string|life-mode|life-not-void-regexp|life-setup|life-void-char|life-void-string|life|limit-index|line-move-1|line-move-finish|line-move-partial|line-move-to-column|line-move-visual|line-move|line-number-mode|line-pixel-height|line-substring-with-bidi-context|linum--face-width|linum-after-change|linum-after-scroll|linum-delete-overlays|linum-mode-set-explicitly|linum-mode|linum-on|linum-schedule|linum-unload-function|linum-update-current|linum-update-window|linum-update|lisp--match-hidden-arg|lisp-comment-indent|lisp-compile-defun-and-go|lisp-compile-defun|lisp-compile-file|lisp-compile-region-and-go|lisp-compile-region|lisp-compile-string|lisp-complete-symbol|lisp-completion-at-point|lisp-current-defun-name|lisp-describe-sym|lisp-do-defun|lisp-eval-defun-and-go|lisp-eval-defun|lisp-eval-form-and-next|lisp-eval-last-sexp|lisp-eval-paragraph|lisp-eval-region-and-go|lisp-eval-region|lisp-eval-string|lisp-fill-paragraph|lisp-find-tag-default|lisp-fn-called-at-pt|lisp-font-lock-syntactic-face-function|lisp-get-old-input|lisp-indent-defform|lisp-indent-function|lisp-indent-line|lisp-indent-specform|lisp-input-filter|lisp-interaction-mode|lisp-load-file|lisp-mode-auto-fill|lisp-mode-variables|lisp-mode|lisp-outline-level|lisp-show-arglist|lisp-show-function-documentation|lisp-show-variable-documentation|lisp-string-after-doc-keyword-p|lisp-string-in-doc-position-p)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:lisp-symprompt|lisp-var-at-pt|list\\\\\\\\*|list-abbrevs|list-all-completions-1|list-all-completions-by-hash-bucket-1|list-all-completions-by-hash-bucket|list-all-completions|list-at-point|list-bookmarks|list-buffers--refresh|list-buffers-noselect|list-buffers|list-character-sets|list-coding-categories|list-coding-systems|list-colors-display|list-colors-duplicates|list-colors-print|list-colors-redisplay|list-colors-sort-key|list-command-history|list-directory|list-dynamic-libraries|list-faces-display|list-fontsets|list-holidays|list-input-methods|list-length|list-matching-lines|list-packages|list-processes--refresh|list-registers|list-tags|lm-adapted-by|lm-authors|lm-code-mark|lm-code-start|lm-commentary-end|lm-commentary-mark|lm-commentary-start|lm-commentary|lm-copyright-mark|lm-crack-address|lm-crack-copyright|lm-creation-date|lm-get-header-re|lm-get-package-name|lm-header-multiline|lm-header|lm-history-mark|lm-history-start|lm-homepage|lm-insert-at-column|lm-keywords-finder-p|lm-keywords-list|lm-keywords|lm-last-modified-date|lm-maintainer|lm-report-bug|lm-section-end|lm-section-mark|lm-section-start|lm-summary|lm-synopsis|lm-verify|lm-version|lm-with-file|load-completions-from-file|load-history-filename-element|load-history-regexp|load-path-shadows-find|load-path-shadows-mode|load-path-shadows-same-file-or-nonexistent|load-save-place-alist-from-file|load-time-value|load-with-code-conversion|local-clear-scheme-interaction-buffer|local-set-scheme-interaction-buffer|locale-charset-match-p|locale-charset-to-coding-system|locale-name-match|locale-translate|locally|locate-completion-db-error|locate-completion-entry-retry|locate-completion-entry|locate-current-line-number|locate-default-make-command-line|locate-do-redisplay|locate-do-setup|locate-dominating-file|locate-file-completion-table|locate-file-completion|locate-file-internal|locate-filter-output|locate-find-directory-other-window|locate-find-directory|locate-get-dirname|locate-get-file-positions|locate-get-filename|locate-in-alternate-database|locate-insert-header|locate-main-listing-line-p|locate-mode|locate-mouse-view-file|locate-prompt-for-search-string|locate-set-properties|locate-tags|locate-update|locate-with-filter|locate-word-at-point|locate|log-edit--match-first-line|log-edit-add-field|log-edit-add-to-changelog|log-edit-beginning-of-line|log-edit-changelog-entries|log-edit-changelog-entry|log-edit-changelog-insert-entries|log-edit-changelog-ours-p|log-edit-changelog-paragraph|log-edit-changelog-subparagraph|log-edit-comment-search-backward|log-edit-comment-search-forward|log-edit-comment-to-change-log|log-edit-done|log-edit-empty-buffer-p|log-edit-extract-headers|log-edit-files|log-edit-font-lock-keywords|log-edit-goto-eoh|log-edit-hide-buf|log-edit-insert-changelog-entries|log-edit-insert-changelog|log-edit-insert-cvs-rcstemplate|log-edit-insert-cvs-template|log-edit-insert-filenames-without-changelog|log-edit-insert-filenames|log-edit-insert-message-template|log-edit-kill-buffer|log-edit-match-to-eoh|log-edit-menu|log-edit-mode-help|log-edit-mode|log-edit-narrow-changelog|log-edit-new-comment-index|log-edit-next-comment|log-edit-previous-comment|log-edit-remember-comment|log-edit-set-common-indentation|log-edit-set-header|log-edit-show-diff|log-edit-show-files|log-edit-toggle-header|log-edit|log-view-annotate-version|log-view-beginning-of-defun|log-view-current-entry|log-view-current-file|log-view-current-tag|log-view-diff-changeset|log-view-diff-common|log-view-diff|log-view-end-of-defun-1|log-view-end-of-defun|log-view-extract-comment|log-view-file-next|log-view-file-prev|log-view-find-revision|log-view-get-marked|log-view-goto-rev|log-view-inside-comment-p|log-view-minor-wrap|log-view-mode-menu|log-view-mode|log-view-modify-change-comment|log-view-msg-next|log-view-msg-prev|log-view-toggle-entry-display|log-view-toggle-mark-entry|log10|lookfor-dired|lookup-image-map|lookup-key-ignore-too-long|lookup-minor-mode-from-indicator|lookup-nested-alist|lookup-words|loop|lpr-buffer|lpr-customize|lpr-eval-switch|lpr-flatten-list-1|lpr-flatten-list|lpr-print-region|lpr-region|lpr-setup|lunar-phases|m2-begin-comment|m2-begin|m2-case|m2-compile|m2-definition|m2-else|m2-end-comment|m2-execute-monitor-command|m2-export|m2-for|m2-header|m2-if|m2-import|m2-link|m2-loop|m2-mode|m2-module|m2-or|m2-procedure|m2-record|m2-smie-backward-token|m2-smie-forward-token|m2-smie-refine-colon|m2-smie-refine-of|m2-smie-refine-semi|m2-smie-rules|m2-stdio|m2-toggle|m2-type|m2-until|m2-var|m2-visit|m2-while|m2-with|m4--quoted-p|m4-current-defun-name|m4-m4-buffer|m4-m4-region|m4-mode|macro-declaration-function|macroexp--accumulate|macroexp--all-clauses|macroexp--all-forms|macroexp--backtrace|macroexp--compiler-macro|macroexp--compiling-p|macroexp--cons|macroexp--const-symbol-p|macroexp--expand-all|macroexp--funcall-if-compiled|macroexp--maxsize|macroexp--obsolete-warning|macroexp--trim-backtrace-frame|macroexp--warn-and-return|macroexp-const-p|macroexp-copyable-p|macroexp-if|macroexp-let\\\\\\\\*|macroexp-let2\\\\\\\\*|macroexp-let2|macroexp-progn|macroexp-quote|macroexp-small-p|macroexp-unprogn|macroexpand-1|macrolet|mail-abbrev-complete-alias|mail-abbrev-end-of-buffer|mail-abbrev-expand-hook|mail-abbrev-expand-wrapper|mail-abbrev-in-expansion-header-p|mail-abbrev-insert-alias|mail-abbrev-make-syntax-table|mail-abbrev-next-line|mail-abbrevs-disable|mail-abbrevs-enable|mail-abbrevs-mode|mail-abbrevs-setup|mail-abbrevs-sync-aliases|mail-add-attachment|mail-add-payment-async|mail-add-payment|mail-attach-file|mail-bcc|mail-bury|mail-cc|mail-check-payment|mail-comma-list-regexp|mail-complete|mail-completion-at-point-function|mail-completion-expand|mail-content-type-get|mail-decode-encoded-address-region|mail-decode-encoded-address-string|mail-decode-encoded-word-region|mail-decode-encoded-word-string|mail-directory-process|mail-directory-stream|mail-directory|mail-do-fcc|mail-dont-reply-to|mail-dont-send|mail-encode-encoded-word-buffer|mail-encode-encoded-word-region|mail-encode-encoded-word-string|mail-encode-header|mail-envelope-from|mail-extract-address-components|mail-fcc|mail-fetch-field|mail-file-babyl-p|mail-fill-yanked-message|mail-get-names|mail-header-chars|mail-header-date|mail-header-encode-parameter|mail-header-end|mail-header-extra|mail-header-extract-no-properties|mail-header-extract|mail-header-field-value|mail-header-fold-field|mail-header-format|mail-header-from|mail-header-get-comment|mail-header-id|mail-header-lines|mail-header-make-address|mail-header-merge|mail-header-message-id|mail-header-narrow-to-field|mail-header-number|mail-header-parse-address|mail-header-parse-addresses|mail-header-parse-content-disposition|mail-header-parse-content-type|mail-header-parse-date|mail-header-parse|mail-header-references|mail-header-remove-comments|mail-header-remove-whitespace|mail-header-set-chars|mail-header-set-date|mail-header-set-extra|mail-header-set-from|mail-header-set-id|mail-header-set-lines|mail-header-set-message-id|mail-header-set-number|mail-header-set-references|mail-header-set-subject|mail-header-set-xref|mail-header-set|mail-header-strip|mail-header-subject|mail-header-unfold-field|mail-header-xref|mail-header|mail-hist-define-keys|mail-hist-enable|mail-hist-put-headers-into-history|mail-indent-citation|mail-insert-file|mail-insert-from-field|mail-mail-followup-to|mail-mail-reply-to|mail-mbox-from|mail-mode-auto-fill|mail-mode-fill-paragraph|mail-mode-flyspell-verify|mail-mode|mail-narrow-to-head|mail-other-frame|mail-other-window|mail-parse-comma-list|mail-position-on-field|mail-quote-printable-region|mail-quote-printable|mail-quote-string|mail-recover-1|mail-recover|mail-reply-to|mail-resolve-all-aliases-1|mail-resolve-all-aliases|mail-rfc822-date|mail-rfc822-time-zone|mail-send-and-exit|mail-send|mail-sendmail-delimit-header|mail-sendmail-undelimit-header|mail-sent-via|mail-sentto-newsgroups|mail-setup|mail-signature|mail-split-line|mail-string-delete|mail-strip-quoted-names|mail-subject|mail-text-start|mail-text|mail-to|mail-unquote-printable-hexdigit|mail-unquote-printable-region|mail-unquote-printable|mail-yank-clear-headers|mail-yank-original|mail-yank-region|mail|mailcap-add-mailcap-entry|mailcap-add|mailcap-command-p|mailcap-delete-duplicates|mailcap-extension-to-mime|mailcap-file-default-commands|mailcap-mailcap-entry-passes-test|mailcap-maybe-eval|mailcap-mime-info|mailcap-mime-types|mailcap-parse-mailcap-extras|mailcap-parse-mailcap|mailcap-parse-mailcaps|mailcap-parse-mimetype-file|mailcap-parse-mimetypes|mailcap-possible-viewers|mailcap-replace-in-string|mailcap-replace-regexp|mailcap-save-binary-file|mailcap-unescape-mime-test|mailcap-view-mime|mailcap-viewer-lessp|mailcap-viewer-passes-test|mailclient-encode-string-as-url|mailclient-gather-addresses|mailclient-send-it|mailclient-url-delim|mairix-build-search-list|mairix-call-mairix|mairix-edit-saved-searches-customize|mairix-edit-saved-searches|mairix-gnus-ephemeral-nndoc|mairix-gnus-fetch-field|mairix-insert-search-line|mairix-next-search|mairix-previous-search|mairix-replace-invalid-chars|mairix-rmail-display|mairix-rmail-fetch-field|mairix-save-search|mairix-search-from-this-article|mairix-search-thread-this-article|mairix-search|mairix-searches-mode|mairix-select-delete|mairix-select-edit|mairix-select-quit|mairix-select-save|mairix-select-search|mairix-sentinel-mairix-update-finished|mairix-show-folder|mairix-update-database|mairix-use-saved-search|mairix-vm-display|mairix-vm-fetch-field|mairix-widget-add|mairix-widget-build-editable-fields|mairix-widget-create-query|mairix-widget-get-values|mairix-widget-make-query-from-widgets|mairix-widget-save-search|mairix-widget-search-based-on-article|mairix-widget-search|mairix-widget-send-query|mairix-widget-toggle-activate|make-backup-file-name--default-function|make-backup-file-name-1|make-char-internal|make-char|make-cmpl-prefix-entry|make-coding-system|make-comint-in-buffer|make-comint|make-command-summary|make-completion|make-directory-internal|make-doctor-variables|make-ebrowse-bs--cmacro|make-ebrowse-bs|make-ebrowse-cs--cmacro|make-ebrowse-cs|make-ebrowse-hs--cmacro|make-ebrowse-hs|make-ebrowse-ms--cmacro|make-ebrowse-ms|make-ebrowse-position--cmacro|make-ebrowse-position|make-ebrowse-ts--cmacro|make-ebrowse-ts|make-empty-face|make-erc-channel-user--cmacro|make-erc-channel-user|make-erc-response--cmacro|make-erc-response|make-erc-server-user--cmacro|make-erc-server-user|make-ert--ewoc-entry--cmacro|make-ert--ewoc-entry|make-ert--stats--cmacro|make-ert--stats|make-ert--test-execution-info--cmacro|make-ert--test-execution-info|make-ert-test--cmacro|make-ert-test-aborted-with-non-local-exit--cmacro|make-ert-test-aborted-with-non-local-exit|make-ert-test-failed--cmacro|make-ert-test-failed|make-ert-test-passed--cmacro|make-ert-test-passed|make-ert-test-quit--cmacro|make-ert-test-quit|make-ert-test-result--cmacro|make-ert-test-result-with-condition--cmacro|make-ert-test-result-with-condition|make-ert-test-result|make-ert-test-skipped--cmacro|make-ert-test-skipped|make-ert-test|make-face-bold-italic|make-face-bold|make-face-italic|make-face-unbold|make-face-unitalic|make-face-x-resource-internal|make-face|make-flyspell-overlay|make-frame-command|make-frame-names-alist|make-full-mail-header|make-gdb-handler--cmacro|make-gdb-handler|make-gdb-table--cmacro|make-gdb-table|make-hippie-expand-function|make-htmlize-fstruct--cmacro|make-htmlize-fstruct|make-initial-minibuffer-frame|make-instance|make-js--js-handle--cmacro|make-js--js-handle|make-js--pitem--cmacro|make-js--pitem|make-mail-header|make-mode-line-mouse-map|make-obsolete-overload|make-package--ac-desc--cmacro|make-package--ac-desc|make-package--bi-desc--cmacro|make-package--bi-desc|make-random-state|make-ses--locprn--cmacro|make-ses--locprn|make-sgml-tag--cmacro|make-sgml-tag|make-soap-array-type--cmacro|make-soap-array-type|make-soap-basic-type--cmacro|make-soap-basic-type|make-soap-binding--cmacro|make-soap-binding|make-soap-bound-operation--cmacro|make-soap-bound-operation|make-soap-element--cmacro|make-soap-element|make-soap-message--cmacro|make-soap-message|make-soap-namespace--cmacro|make-soap-namespace-link--cmacro|make-soap-namespace-link|make-soap-namespace|make-soap-operation--cmacro|make-soap-operation|make-soap-port--cmacro|make-soap-port-type--cmacro|make-soap-port-type)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:make-soap-port|make-soap-sequence-element--cmacro|make-soap-sequence-element|make-soap-sequence-type--cmacro|make-soap-sequence-type|make-soap-simple-type--cmacro|make-soap-simple-type|make-soap-wsdl--cmacro|make-soap-wsdl|make-tar-header--cmacro|make-tar-header|make-term|make-terminal-frame|make-url-queue--cmacro|make-url-queue|make-variable-frame-local|makefile-add-log-defun|makefile-append-backslash|makefile-automake-mode|makefile-backslash-region|makefile-browse|makefile-browser-fill|makefile-browser-format-macro-line|makefile-browser-format-target-line|makefile-browser-get-state-for-line|makefile-browser-insert-continuation|makefile-browser-insert-selection-and-quit|makefile-browser-insert-selection|makefile-browser-next-line|makefile-browser-on-macro-line-p|makefile-browser-previous-line|makefile-browser-quit|makefile-browser-send-this-line-item|makefile-browser-set-state-for-line|makefile-browser-start-interaction|makefile-browser-this-line-macro-name|makefile-browser-this-line-target-name|makefile-browser-toggle-state-for-line|makefile-browser-toggle|makefile-bsdmake-mode|makefile-cleanup-continuations|makefile-complete|makefile-completions-at-point|makefile-create-up-to-date-overview|makefile-delete-backslash|makefile-do-macro-insertion|makefile-electric-colon|makefile-electric-dot|makefile-electric-equal|makefile-fill-paragraph|makefile-first-line-p|makefile-format-macro-ref|makefile-forward-after-target-colon|makefile-generate-temporary-filename|makefile-gmake-mode|makefile-imake-mode|makefile-insert-gmake-function|makefile-insert-macro-ref|makefile-insert-macro|makefile-insert-special-target|makefile-insert-target-ref|makefile-insert-target|makefile-last-line-p|makefile-make-font-lock-keywords|makefile-makepp-mode|makefile-match-action|makefile-match-dependency|makefile-match-function-end|makefile-mode|makefile-next-dependency|makefile-pickup-everything|makefile-pickup-filenames-as-targets|makefile-pickup-macros|makefile-pickup-targets|makefile-previous-dependency|makefile-prompt-for-gmake-funargs|makefile-query-by-make-minus-q|makefile-query-targets|makefile-remember-macro|makefile-remember-target|makefile-save-temporary|makefile-switch-to-browser|makefile-warn-continuations|makefile-warn-suspicious-lines|makeinfo-buffer|makeinfo-compilation-sentinel-buffer|makeinfo-compilation-sentinel-region|makeinfo-compile|makeinfo-current-node|makeinfo-next-error|makeinfo-recenter-compilation-buffer|makeinfo-region|man-follow|man|mantemp-insert-cxx-syntax|mantemp-make-mantemps-buffer|mantemp-make-mantemps-region|mantemp-make-mantemps|mantemp-remove-comments|mantemp-remove-memfuncs|mantemp-sort-and-unique-lines|manual-entry|map-keymap-internal|map-keymap-sorted|map-query-replace-regexp|map|mapcan|mapcar\\\\\\\\*|mapcon|mapl|maplist|mark-bib|mark-defun|mark-end-of-sentence|mark-icon-function|mark-page|mark-paragraph|mark-perl-function|mark-sexp|mark-whole-buffer|mark-word|master-mode|master-says-beginning-of-buffer|master-says-end-of-buffer|master-says-recenter|master-says-scroll-down|master-says-scroll-up|master-says|master-set-slave|master-show-slave|matching-paren|math-add-bignum|math-add-float|math-add|math-bignum-big|math-bignum|math-build-parse-table|math-check-complete|math-comp-concat|math-concat|math-constp|math-div-bignum-big|math-div-bignum-digit|math-div-bignum-part|math-div-bignum-try|math-div-bignum|math-div-float|math-div|math-div10-bignum|math-div2-bignum|math-div2|math-do-working|math-evenp|math-expr-ops|math-find-user-tokens|math-fixnatnump|math-fixnump|math-float|math-floatp|math-floor|math-format-bignum-decimal|math-format-bignum|math-format-flat-expr|math-format-number|math-format-stack-value|math-format-value|math-idivmod|math-imod|math-infinitep|math-ipow|math-looks-negp|math-make-float|math-match-substring|math-mod|math-mul-bignum-digit|math-mul-bignum|math-mul|math-neg|math-negp|math-normalize|math-numdigs|math-posp|math-pow|math-quotient|math-read-bignum|math-read-expr-list|math-read-exprs|math-read-if|math-read-number-simple|math-read-number|math-read-preprocess-string|math-read-radix-digit|math-read-token|math-reject-arg|math-remove-dashes|math-scale-int|math-scale-left-bignum|math-scale-left|math-scale-right-bignum|math-scale-right|math-scale-rounding|math-showing-full-precision|math-stack-value-offset|math-standard-ops-p|math-standard-ops|math-sub-bignum|math-sub-float|math-sub|math-trunc|math-with-extra-prec|math-working|math-zerop|md4-64|md4-F|md4-G|md4-H|md4-add|md4-and|md4-copy64|md4-make-step|md4-pack-int16|md4-pack-int32|md4-round1|md4-round2|md4-round3|md4-unpack-int16|md4-unpack-int32|md4|md5-binary|member\\\\\\\\*|member-if-not|member-if|memory-info|menu-bar-bookmark-map|menu-bar-buffer-vector|menu-bar-ediff-menu|menu-bar-ediff-merge-menu|menu-bar-ediff-misc-menu|menu-bar-enable-clipboard|menu-bar-epatch-menu|menu-bar-frame-for-menubar|menu-bar-handwrite-map|menu-bar-horizontal-scroll-bar|menu-bar-kill-ring-save|menu-bar-left-scroll-bar|menu-bar-make-mm-toggle|menu-bar-make-toggle|menu-bar-menu-at-x-y|menu-bar-menu-frame-live-and-visible-p|menu-bar-mode|menu-bar-next-tag-other-window|menu-bar-next-tag|menu-bar-no-horizontal-scroll-bar|menu-bar-no-scroll-bar|menu-bar-non-minibuffer-window-p|menu-bar-open|menu-bar-options-save|menu-bar-positive-p|menu-bar-read-lispintro|menu-bar-read-lispref|menu-bar-read-mail|menu-bar-right-scroll-bar|menu-bar-select-buffer|menu-bar-select-frame|menu-bar-select-yank|menu-bar-set-tool-bar-position|menu-bar-showhide-fringe-ind-box|menu-bar-showhide-fringe-ind-customize|menu-bar-showhide-fringe-ind-left|menu-bar-showhide-fringe-ind-mixed|menu-bar-showhide-fringe-ind-none|menu-bar-showhide-fringe-ind-right|menu-bar-showhide-fringe-menu-customize-disable|menu-bar-showhide-fringe-menu-customize-left|menu-bar-showhide-fringe-menu-customize-reset|menu-bar-showhide-fringe-menu-customize-right|menu-bar-showhide-fringe-menu-customize|menu-bar-showhide-tool-bar-menu-customize-disable|menu-bar-showhide-tool-bar-menu-customize-enable-bottom|menu-bar-showhide-tool-bar-menu-customize-enable-left|menu-bar-showhide-tool-bar-menu-customize-enable-right|menu-bar-showhide-tool-bar-menu-customize-enable-top|menu-bar-update-buffers-1|menu-bar-update-buffers|menu-bar-update-yank-menu|menu-find-file-existing|menu-or-popup-active-p|menu-set-font|mercury-mode|merge-coding-systems|merge-mail-abbrevs|merge|message--yank-original-internal|message-add-action|message-add-archive-header|message-add-header|message-alter-recipients-discard-bogus-full-name|message-beginning-of-line|message-bogus-recipient-p|message-bold-region|message-bounce|message-buffer-name|message-buffers|message-bury|message-caesar-buffer-body|message-caesar-region|message-cancel-news|message-canlock-generate|message-canlock-password|message-carefully-insert-headers|message-change-subject|message-check-element|message-check-news-body-syntax|message-check-news-header-syntax|message-check-news-syntax|message-check-recipients|message-check|message-checksum|message-cite-original-1|message-cite-original-without-signature|message-cite-original|message-cleanup-headers|message-clone-locals|message-completion-function|message-completion-in-region|message-cross-post-followup-to-header|message-cross-post-followup-to|message-cross-post-insert-note|message-default-send-mail-function|message-default-send-rename-function|message-delete-action|message-delete-line|message-delete-not-region|message-delete-overlay|message-disassociate-draft|message-display-abbrev|message-do-actions|message-do-auto-fill|message-do-fcc|message-do-send-housekeeping|message-dont-reply-to-names|message-dont-send|message-elide-region|message-encode-message-body|message-exchange-point-and-mark|message-expand-group|message-expand-name|message-fetch-field|message-fetch-reply-field|message-field-name|message-field-value|message-fill-field-address|message-fill-field-general|message-fill-field|message-fill-paragraph|message-fill-yanked-message|message-fix-before-sending|message-flatten-list|message-followup|message-font-lock-make-header-matcher|message-forward-make-body-digest-mime|message-forward-make-body-digest-plain|message-forward-make-body-digest|message-forward-make-body-mime|message-forward-make-body-mml|message-forward-make-body-plain|message-forward-make-body|message-forward-rmail-make-body|message-forward-subject-author-subject|message-forward-subject-fwd|message-forward-subject-name-subject|message-forward|message-generate-headers|message-generate-new-buffer-clone-locals|message-generate-unsubscribed-mail-followup-to|message-get-reply-headers|message-gnksa-enable-p|message-goto-bcc|message-goto-body|message-goto-cc|message-goto-distribution|message-goto-eoh|message-goto-fcc|message-goto-followup-to|message-goto-from|message-goto-keywords|message-goto-mail-followup-to|message-goto-newsgroups|message-goto-reply-to|message-goto-signature|message-goto-subject|message-goto-summary|message-goto-to|message-headers-to-generate|message-hide-header-p|message-hide-headers|message-idna-to-ascii-rhs-1|message-idna-to-ascii-rhs|message-in-body-p|message-indent-citation|message-info|message-insert-canlock|message-insert-citation-line|message-insert-courtesy-copy|message-insert-disposition-notification-to|message-insert-expires|message-insert-formatted-citation-line|message-insert-header|message-insert-headers|message-insert-importance-high|message-insert-importance-low|message-insert-newsgroups|message-insert-or-toggle-importance|message-insert-signature|message-insert-to|message-insert-wide-reply|message-insinuate-rmail|message-is-yours-p|message-kill-address|message-kill-all-overlays|message-kill-buffer|message-kill-to-signature|message-mail-alias-type-p|message-mail-file-mbox-p|message-mail-other-frame|message-mail-other-window|message-mail-p|message-mail-user-agent|message-mail|message-make-address|message-make-caesar-translation-table|message-make-date|message-make-distribution|message-make-domain|message-make-expires-date|message-make-expires|message-make-forward-subject|message-make-fqdn|message-make-from|message-make-html-message-with-image-files|message-make-in-reply-to|message-make-lines|message-make-mail-followup-to|message-make-message-id|message-make-organization|message-make-overlay|message-make-path|message-make-references|message-make-sender|message-make-tool-bar|message-mark-active-p|message-mark-insert-file|message-mark-inserted-region|message-mode-field-menu|message-mode-menu|message-mode|message-multi-smtp-send-mail|message-narrow-to-field|message-narrow-to-head-1|message-narrow-to-head|message-narrow-to-headers-or-head|message-narrow-to-headers|message-newline-and-reformat|message-news-other-frame|message-news-other-window|message-news-p|message-news|message-next-header|message-number-base36|message-options-get|message-options-set-recipient|message-options-set|message-output|message-overlay-put|message-pipe-buffer-body|message-point-in-header-p|message-pop-to-buffer|message-position-on-field|message-position-point|message-posting-charset|message-prune-recipients|message-put-addresses-in-ecomplete|message-read-from-minibuffer|message-recover|message-reduce-to-to-cc|message-remove-blank-cited-lines|message-remove-first-header|message-remove-header|message-remove-ignored-headers|message-rename-buffer|message-replace-header|message-reply|message-resend|message-send-and-exit|message-send-form-letter|message-send-mail-function|message-send-mail-partially|message-send-mail-with-mailclient|message-send-mail-with-mh|message-send-mail-with-qmail|message-send-mail-with-sendmail|message-send-mail|message-send-news|message-send-via-mail|message-send-via-news|message-send|message-sendmail-envelope-from|message-set-auto-save-file-name|message-setup-1|message-setup-fill-variables|message-setup-toolbar|message-setup|message-shorten-1|message-shorten-references|message-signed-or-encrypted-p|message-simplify-recipients|message-simplify-subject|message-skip-to-next-address|message-smtpmail-send-it|message-sort-headers-1|message-sort-headers|message-split-line|message-strip-forbidden-properties|message-strip-list-identifiers|message-strip-subject-encoded-words|message-strip-subject-re|message-strip-subject-trailing-was|message-subscribed-p|message-supersede|message-tab|message-talkative-question|message-tamago-not-in-use-p|message-text-with-property|message-to-list-only|message-tokenize-header|message-tool-bar-update|message-unbold-region|message-unique-id|message-unquote-tokens|message-use-alternative-email-as-from|message-user-mail-address|message-wash-subject|message-wide-reply|message-widen-reply|message-with-reply-buffer|message-y-or-n-p)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:message-yank-buffer|message-yank-original|messages-buffer-mode|meta-add-symbols|meta-beginning-of-defun|meta-car-string-lessp|meta-comment-defun|meta-comment-indent|meta-comment-region|meta-common-mode|meta-complete-symbol|meta-completions-at-point|meta-end-of-defun|meta-indent-buffer|meta-indent-calculate|meta-indent-current-indentation|meta-indent-current-nesting|meta-indent-defun|meta-indent-in-string-p|meta-indent-level-count|meta-indent-line|meta-indent-looking-at-code|meta-indent-previous-line|meta-indent-region|meta-indent-unfinished-line|meta-listify|meta-mark-active|meta-mark-defun|meta-mode-menu|meta-symbol-list|meta-uncomment-defun|meta-uncomment-region|metafont-mode|metamail-buffer|metamail-interpret-body|metamail-interpret-header|metamail-region|metapost-mode|mh-adaptive-cmd-note-flag-check|mh-add-missing-mime-version-header|mh-add-msgs-to-seq|mh-alias-address-to-alias|mh-alias-expand|mh-alias-for-from-p|mh-alias-grab-from-field|mh-alias-letter-expand-alias|mh-alias-minibuffer-confirm-address|mh-alias-reload-maybe|mh-assoc-string|mh-beginning-of-word|mh-bogofilter-blacklist|mh-bogofilter-whitelist|mh-buffer-data|mh-burst-digest|mh-cancel-timer|mh-catchup|mh-cl-flet|mh-clean-msg-header|mh-clear-sub-folders-cache|mh-coalesce-msg-list|mh-colors-available-p|mh-colors-in-use-p|mh-complete-word|mh-compose-forward|mh-compose-insertion|mh-copy-msg|mh-create-sequence-map|mh-customize|mh-decode-message-header|mh-decode-message-subject|mh-define-obsolete-variable-alias|mh-define-sequence|mh-defstruct|mh-delete-a-msg|mh-delete-line|mh-delete-msg-from-seq|mh-delete-msg-no-motion|mh-delete-msg|mh-delete-seq|mh-delete-subject-or-thread|mh-delete-subject|mh-destroy-postponed-handles|mh-display-color-cells|mh-display-completion-list|mh-display-emphasis|mh-display-msg|mh-display-smileys|mh-display-with-external-viewer|mh-do-at-event-location|mh-do-in-gnu-emacs|mh-do-in-xemacs|mh-edit-again|mh-ephem-message|mh-exchange-point-and-mark-preserving-active-mark|mh-exec-cmd-daemon|mh-exec-cmd-env-daemon|mh-exec-cmd-error|mh-exec-cmd-output|mh-exec-cmd-quiet|mh-exec-cmd|mh-exec-lib-cmd-output|mh-execute-commands|mh-expand-file-name|mh-extract-from-header-value|mh-extract-rejected-mail|mh-face-background|mh-face-data|mh-face-foreground|mh-file-command-p|mh-file-mime-type|mh-find-path|mh-find-seq|mh-first-msg|mh-folder-completion-function|mh-folder-from-address|mh-folder-inline-mime-part|mh-folder-list|mh-folder-mode|mh-folder-name-p|mh-folder-save-mime-part|mh-folder-speedbar-buttons|mh-folder-toggle-mime-part|mh-font-lock-add-keywords|mh-forward|mh-fully-kill-draft|mh-funcall-if-exists|mh-get-header-field|mh-get-msg-num|mh-gnus-article-highlight-citation|mh-goto-cur-msg|mh-goto-header-end|mh-goto-header-field|mh-goto-msg|mh-goto-next-button|mh-handle-process-error|mh-have-file-command|mh-header-display|mh-header-field-beginning|mh-header-field-end|mh-help|mh-identity-add-menu|mh-identity-handler-attribution-verb|mh-identity-handler-bottom|mh-identity-handler-gpg-identity|mh-identity-handler-signature|mh-identity-handler-top|mh-identity-insert-attribution-verb|mh-identity-make-menu-no-autoload|mh-identity-make-menu|mh-image-load-path-for-library|mh-image-search-load-path|mh-in-header-p|mh-in-show-buffer|mh-inc-folder|mh-inc-spool-make-no-autoload|mh-inc-spool-make|mh-index-add-to-sequence|mh-index-create-imenu-index|mh-index-create-sequences|mh-index-delete-folder-headers|mh-index-delete-from-sequence|mh-index-execute-commands|mh-index-group-by-folder|mh-index-insert-folder-headers|mh-index-new-messages|mh-index-next-folder|mh-index-previous-folder|mh-index-read-data|mh-index-sequenced-messages|mh-index-ticked-messages|mh-index-update-maps|mh-index-visit-folder|mh-insert-auto-fields|mh-insert-identity|mh-insert-signature|mh-interactive-range|mh-invalidate-show-buffer|mh-invisible-headers|mh-iterate-on-messages-in-region|mh-iterate-on-range|mh-junk-blacklist-disposition|mh-junk-blacklist|mh-junk-choose|mh-junk-process-blacklist|mh-junk-process-whitelist|mh-junk-whitelist|mh-kill-folder|mh-last-msg|mh-lessp|mh-letter-hide-all-skipped-fields|mh-letter-mode|mh-letter-next-header-field|mh-letter-skip-leading-whitespace-in-header-field|mh-letter-skipped-header-field-p|mh-letter-speedbar-buttons|mh-letter-toggle-header-field-display-button|mh-letter-toggle-header-field-display|mh-line-beginning-position|mh-line-end-position|mh-list-folders|mh-list-sequences|mh-list-to-string-1|mh-list-to-string|mh-logo-display|mh-macro-expansion-time-gnus-version|mh-mail-abbrev-make-syntax-table|mh-mail-header-end|mh-make-folder-mode-line|mh-make-local-hook|mh-make-local-vars|mh-make-obsolete-variable|mh-mapc|mh-mark-active-p|mh-match-string-no-properties|mh-maybe-show|mh-mh-compose-anon-ftp|mh-mh-compose-external-compressed-tar|mh-mh-compose-external-type|mh-mh-directive-present-p|mh-mh-to-mime-undo|mh-mh-to-mime|mh-mime-cleanup|mh-mime-display|mh-mime-save-parts|mh-mml-forward-message|mh-mml-secure-message-encrypt|mh-mml-secure-message-sign|mh-mml-secure-message-signencrypt|mh-mml-tag-present-p|mh-mml-to-mime|mh-mml-unsecure-message|mh-modify|mh-msg-filename|mh-msg-is-in-seq|mh-msg-num-width-to-column|mh-msg-num-width|mh-narrow-to-cc|mh-narrow-to-from|mh-narrow-to-range|mh-narrow-to-seq|mh-narrow-to-subject|mh-narrow-to-tick|mh-narrow-to-to|mh-new-draft-name|mh-next-button|mh-next-msg|mh-next-undeleted-msg|mh-next-unread-msg|mh-nmail|mh-notate-cur|mh-notate-deleted-and-refiled|mh-notate-user-sequences|mh-notate|mh-outstanding-commands-p|mh-pack-folder|mh-page-digest-backwards|mh-page-digest|mh-page-msg|mh-parse-flist-output-line|mh-pipe-msg|mh-position-on-field|mh-prefix-help|mh-prev-button|mh-previous-page|mh-previous-undeleted-msg|mh-previous-unread-msg|mh-print-msg|mh-process-daemon|mh-process-or-undo-commands|mh-profile-component-value|mh-profile-component|mh-prompt-for-folder|mh-prompt-for-refile-folder|mh-ps-print-msg-file|mh-ps-print-msg|mh-ps-print-toggle-color|mh-ps-print-toggle-faces|mh-put-msg-in-seq|mh-quit|mh-quote-for-shell|mh-quote-pick-expr|mh-range-to-msg-list|mh-read-address|mh-read-folder-sequences|mh-read-range|mh-read-seq-default|mh-recenter|mh-redistribute|mh-refile-a-msg|mh-refile-msg|mh-refile-or-write-again|mh-regenerate-headers|mh-remove-all-notation|mh-remove-cur-notation|mh-remove-from-sub-folders-cache|mh-replace-regexp-in-string|mh-replace-string|mh-reply|mh-require-cl|mh-require|mh-rescan-folder|mh-reset-threads-and-narrowing|mh-rmail|mh-run-time-gnus-version|mh-scan-folder|mh-scan-format-file-check|mh-scan-format|mh-scan-msg-number-regexp|mh-scan-msg-search-regexp|mh-search-from-end|mh-search-p|mh-search|mh-send-letter|mh-send|mh-seq-msgs|mh-seq-to-msgs|mh-set-cmd-note|mh-set-folder-modified-p|mh-set-help|mh-set-x-image-cache-directory|mh-show-addr|mh-show-buffer-message-number|mh-show-font-lock-keywords-with-cite|mh-show-font-lock-keywords|mh-show-mode|mh-show-preferred-alternative|mh-show-speedbar-buttons|mh-show-xface|mh-show|mh-showing-mode|mh-signature-separator-p|mh-smail-batch|mh-smail-other-window|mh-smail|mh-sort-folder|mh-spamassassin-blacklist|mh-spamassassin-identify-spammers|mh-spamassassin-whitelist|mh-spamprobe-blacklist|mh-spamprobe-whitelist|mh-speed-add-folder|mh-speed-flists-active-p|mh-speed-flists|mh-speed-invalidate-map|mh-start-of-uncleaned-message|mh-store-msg|mh-strip-package-version|mh-sub-folders|mh-test-completion|mh-thread-add-spaces|mh-thread-ancestor|mh-thread-delete|mh-thread-find-msg-subject|mh-thread-forget-message|mh-thread-generate|mh-thread-inc|mh-thread-next-sibling|mh-thread-parse-scan-line|mh-thread-previous-sibling|mh-thread-print-scan-lines|mh-thread-refile|mh-thread-update-scan-line-map|mh-toggle-mh-decode-mime-flag|mh-toggle-mime-buttons|mh-toggle-showing|mh-toggle-threads|mh-toggle-tick|mh-translate-range|mh-truncate-log-buffer|mh-undefine-sequence|mh-undo-folder|mh-undo|mh-update-sequences|mh-url-hexify-string|mh-user-agent-compose|mh-valid-seq-p|mh-valid-view-change-operation-p|mh-variant-gnu-mh-info|mh-variant-info|mh-variant-mh-info|mh-variant-nmh-info|mh-variant-p|mh-variant-set-variant|mh-variant-set|mh-variants|mh-version|mh-view-mode-enter|mh-visit-folder|mh-widen|mh-window-full-height-p|mh-write-file-functions|mh-write-msg-to-file|mh-xargs|mh-yank-cur-msg|midnight-buffer-display-time|midnight-delay-set|midnight-find|midnight-next|mime-to-mml|minibuf-eldef-setup-minibuffer|minibuf-eldef-update-minibuffer|minibuffer--bitset|minibuffer--double-dollars|minibuffer-avoid-prompt|minibuffer-completion-contents|minibuffer-default--in-prompt-regexps|minibuffer-default-add-completions|minibuffer-default-add-shell-commands|minibuffer-depth-indicate-mode|minibuffer-depth-setup|minibuffer-electric-default-mode|minibuffer-force-complete-and-exit|minibuffer-force-complete|minibuffer-frame-list|minibuffer-hide-completions|minibuffer-history-initialize|minibuffer-history-isearch-end|minibuffer-history-isearch-message|minibuffer-history-isearch-pop-state|minibuffer-history-isearch-push-state|minibuffer-history-isearch-search|minibuffer-history-isearch-setup|minibuffer-history-isearch-wrap|minibuffer-insert-file-name-at-point|minibuffer-keyboard-quit|minibuffer-with-setup-hook|minor-mode-menu-from-indicator|minusp|mismatch|mixal-debug|mixal-describe-operation-code|mixal-mode|mixal-run|mm-add-meta-html-tag|mm-alist-to-plist|mm-annotationp|mm-append-to-file|mm-archive-decoders|mm-archive-dissect-and-inline|mm-assoc-string-match|mm-attachment-override-p|mm-auto-mode-alist|mm-automatic-display-p|mm-automatic-external-display-p|mm-body-7-or-8|mm-body-encoding|mm-char-int|mm-char-or-char-int-p|mm-charset-after|mm-charset-to-coding-system|mm-codepage-setup|mm-coding-system-equal|mm-coding-system-list|mm-coding-system-p|mm-coding-system-to-mime-charset|mm-complicated-handles|mm-content-transfer-encoding|mm-convert-shr-links|mm-copy-to-buffer|mm-create-image-xemacs|mm-decode-body|mm-decode-coding-region|mm-decode-coding-string|mm-decode-content-transfer-encoding|mm-decode-string|mm-decompress-buffer|mm-default-file-encoding|mm-default-multibyte-p|mm-delete-duplicates|mm-destroy-part|mm-destroy-parts|mm-destroy-postponed-undisplay-list|mm-detect-coding-region|mm-detect-mime-charset-region|mm-disable-multibyte|mm-display-external|mm-display-inline|mm-display-part|mm-display-parts|mm-dissect-archive|mm-dissect-buffer|mm-dissect-multipart|mm-dissect-singlepart|mm-enable-multibyte|mm-encode-body|mm-encode-buffer|mm-encode-coding-region|mm-encode-coding-string|mm-encode-content-transfer-encoding|mm-enrich-utf-8-by-mule-ucs|mm-extern-cache-contents|mm-file-name-collapse-whitespace|mm-file-name-delete-control|mm-file-name-delete-gotchas|mm-file-name-delete-whitespace|mm-file-name-replace-whitespace|mm-file-name-trim-whitespace|mm-find-buffer-file-coding-system|mm-find-charset-region|mm-find-mime-charset-region|mm-find-part-by-type|mm-find-raw-part-by-type|mm-get-coding-system-list|mm-get-content-id|mm-get-image|mm-get-part|mm-guess-charset|mm-handle-buffer|mm-handle-cache|mm-handle-description|mm-handle-displayed-p|mm-handle-disposition|mm-handle-encoding|mm-handle-filename|mm-handle-id|mm-handle-media-subtype|mm-handle-media-supertype|mm-handle-media-type|mm-handle-multipart-ctl-parameter|mm-handle-multipart-from|mm-handle-multipart-original-buffer|mm-handle-set-cache|mm-handle-set-external-undisplayer|mm-handle-set-undisplayer|mm-handle-type|mm-handle-undisplayer|mm-image-fit-p|mm-image-load-path|mm-image-type-from-buffer|mm-inlinable-p|mm-inline-external-body|mm-inline-override-p|mm-inline-partial|mm-inlined-p|mm-insert-byte|mm-insert-file-contents|mm-insert-headers|mm-insert-inline|mm-insert-multipart-headers|mm-insert-part|mm-insert-rfc822-headers|mm-interactively-view-part|mm-iso-8859-x-to-15-region|mm-keep-viewer-alive-p|mm-line-number-at-pos|mm-long-lines-p|mm-mailcap-command|mm-make-handle|mm-make-temp-file|mm-merge-handles|mm-mime-charset|mm-mule-charset-to-mime-charset|mm-multibyte-char-to-unibyte|mm-multibyte-p|mm-multibyte-string-p|mm-multiple-handles|mm-pipe-part|mm-possibly-verify-or-decrypt|mm-preferred-alternative-precedence|mm-preferred-alternative|mm-preferred-coding-system|mm-qp-or-base64|mm-read-charset|mm-read-coding-system|mm-readable-p|mm-remove-part|mm-remove-parts|mm-replace-in-string|mm-safer-encoding|mm-save-part-to-file|mm-save-part|mm-set-buffer-file-coding-system|mm-set-buffer-multibyte|mm-set-handle-multipart-parameter|mm-setup-codepage-ibm|mm-setup-codepage-iso-8859|mm-shr|mm-sort-coding-systems-predicate)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:mm-special-display-p|mm-string-as-multibyte|mm-string-as-unibyte|mm-string-make-unibyte|mm-string-to-multibyte|mm-subst-char-in-string|mm-substring-no-properties|mm-temp-files-delete|mm-ucs-to-char|mm-url-decode-entities-nbsp|mm-url-decode-entities-string|mm-url-decode-entities|mm-url-encode-multipart-form-data|mm-url-encode-www-form-urlencoded|mm-url-form-encode-xwfu|mm-url-insert-file-contents-external|mm-url-insert-file-contents|mm-url-insert|mm-url-load-url|mm-url-remove-markup|mm-uu-dissect-text-parts|mm-uu-dissect|mm-valid-and-fit-image-p|mm-valid-image-format-p|mm-view-pkcs7|mm-with-multibyte-buffer|mm-with-part|mm-with-unibyte-buffer|mm-with-unibyte-current-buffer|mm-write-region|mm-xemacs-find-mime-charset-1|mm-xemacs-find-mime-charset|mml-attach-buffer|mml-attach-external|mml-attach-file|mml-buffer-substring-no-properties-except-hard-newlines|mml-compute-boundary-1|mml-compute-boundary|mml-content-disposition|mml-destroy-buffers|mml-dnd-attach-file|mml-expand-html-into-multipart-related|mml-generate-mime-1|mml-generate-mime|mml-generate-new-buffer|mml-insert-buffer|mml-insert-empty-tag|mml-insert-mime-headers|mml-insert-mime|mml-insert-mml-markup|mml-insert-multipart|mml-insert-parameter-string|mml-insert-parameter|mml-insert-part|mml-insert-tag|mml-make-boundary|mml-menu|mml-minibuffer-read-description|mml-minibuffer-read-disposition|mml-minibuffer-read-file|mml-minibuffer-read-type|mml-mode|mml-parameter-string|mml-parse-1|mml-parse-file-name|mml-parse-singlepart-with-multiple-charsets|mml-parse|mml-pgp-encrypt-buffer|mml-pgp-sign-buffer|mml-pgpauto-encrypt-buffer|mml-pgpauto-sign-buffer|mml-pgpmime-encrypt-buffer|mml-pgpmime-sign-buffer|mml-preview-insert-mail-followup-to|mml-preview|mml-quote-region|mml-read-part|mml-read-tag|mml-secure-encrypt-pgp|mml-secure-encrypt-pgpmime|mml-secure-encrypt-smime|mml-secure-encrypt|mml-secure-message-encrypt-pgp|mml-secure-message-encrypt-pgpauto|mml-secure-message-encrypt-pgpmime|mml-secure-message-encrypt-smime|mml-secure-message-encrypt|mml-secure-message-sign-encrypt|mml-secure-message-sign-pgp|mml-secure-message-sign-pgpauto|mml-secure-message-sign-pgpmime|mml-secure-message-sign-smime|mml-secure-message-sign|mml-secure-message|mml-secure-part|mml-secure-sign-pgp|mml-secure-sign-pgpauto|mml-secure-sign-pgpmime|mml-secure-sign-smime|mml-secure-sign|mml-signencrypt-style|mml-smime-encrypt-buffer|mml-smime-encrypt-query|mml-smime-encrypt|mml-smime-sign-buffer|mml-smime-sign-query|mml-smime-sign|mml-smime-verify-test|mml-smime-verify|mml-to-mime|mml-tweak-externalize-attachments|mml-tweak-part|mml-unsecure-message|mml-validate|mml1991-encrypt|mml1991-sign|mml2015-decrypt-test|mml2015-decrypt|mml2015-encrypt|mml2015-self-encrypt|mml2015-sign|mml2015-verify-test|mml2015-verify|mod\\\\\\\\*|mode-line-bury-buffer|mode-line-change-eol|mode-line-eol-desc|mode-line-frame-control|mode-line-minor-mode-help|mode-line-modified-help-echo|mode-line-mule-info-help-echo|mode-line-next-buffer|mode-line-other-buffer|mode-line-previous-buffer|mode-line-read-only-help-echo|mode-line-toggle-modified|mode-line-toggle-read-only|mode-line-unbury-buffer|mode-line-widen|mode-local--expand-overrides|mode-local--overload-body|mode-local--override|mode-local-augment-function-help|mode-local-bind|mode-local-describe-bindings-1|mode-local-describe-bindings-2|mode-local-equivalent-mode-p|mode-local-initialized-p|mode-local-map-file-buffers|mode-local-map-mode-buffers|mode-local-on-major-mode-change|mode-local-post-major-mode-change|mode-local-print-binding|mode-local-print-bindings|mode-local-read-function|mode-local-setup-edebug-specs|mode-local-symbol-value|mode-local-symbol|mode-local-use-bindings-p|mode-local-value|mode-specific-command-prefix|modify-coding-system-alist|modify-face|modula-2-mode|morse-region|mouse--down-1-maybe-follows-link|mouse--drag-set-mark-and-point|mouse--strip-first-event|mouse-appearance-menu|mouse-autoselect-window-cancel|mouse-autoselect-window-select|mouse-autoselect-window-start|mouse-avoidance-banish-destination|mouse-avoidance-banish-mouse|mouse-avoidance-banish|mouse-avoidance-delta|mouse-avoidance-exile|mouse-avoidance-fancy|mouse-avoidance-ignore-p|mouse-avoidance-mode|mouse-avoidance-nudge-mouse|mouse-avoidance-point-position|mouse-avoidance-random-shape|mouse-avoidance-set-mouse-position|mouse-avoidance-set-pointer-shape|mouse-avoidance-too-close-p|mouse-buffer-menu-alist|mouse-buffer-menu-keymap|mouse-buffer-menu-map|mouse-buffer-menu-split|mouse-buffer-menu|mouse-choose-completion|mouse-copy-work-around-drag-bug|mouse-delete-other-windows|mouse-delete-window|mouse-drag-drag|mouse-drag-events-are-point-events-p|mouse-drag-header-line|mouse-drag-line|mouse-drag-mode-line|mouse-drag-region|mouse-drag-repeatedly-safe-scroll|mouse-drag-safe-scroll|mouse-drag-scroll-delta|mouse-drag-secondary-moving|mouse-drag-secondary-pasting|mouse-drag-secondary|mouse-drag-should-do-col-scrolling|mouse-drag-throw|mouse-drag-track|mouse-drag-vertical-line|mouse-event-p|mouse-fixup-help-message|mouse-kill-preserving-secondary|mouse-kill-ring-save|mouse-kill-secondary|mouse-kill|mouse-major-mode-menu|mouse-menu-bar-map|mouse-menu-major-mode-map|mouse-menu-non-singleton|mouse-minibuffer-check|mouse-minor-mode-menu|mouse-popup-menubar-stuff|mouse-popup-menubar|mouse-posn-property|mouse-region-match|mouse-save-then-kill-delete-region|mouse-save-then-kill|mouse-scroll-subr|mouse-secondary-save-then-kill|mouse-select-buffer|mouse-select-font|mouse-select-window|mouse-set-font|mouse-set-mark-fast|mouse-set-mark|mouse-set-point|mouse-set-region-1|mouse-set-region|mouse-set-secondary|mouse-skip-word|mouse-split-window-horizontally|mouse-split-window-vertically|mouse-start-end|mouse-start-secondary|mouse-tear-off-window|mouse-undouble-last-event|mouse-wheel-change-button|mouse-wheel-mode|mouse-yank-at-click|mouse-yank-primary|mouse-yank-secondary|move-beginning-of-line|move-end-of-line|move-file-to-trash|move-past-close-and-reindent|move-to-column-untabify|move-to-tab-stop|move-to-window-line-top-bottom|mpc--debug|mpc--faster-stop|mpc--faster-toggle-refresh|mpc--faster-toggle|mpc--faster|mpc--proc-alist-to-alists|mpc--proc-connect|mpc--proc-filter|mpc--proc-quote-string|mpc--songduration|mpc--status-callback|mpc--status-idle-timer-run|mpc--status-idle-timer-start|mpc--status-idle-timer-stop|mpc--status-timer-run|mpc--status-timer-start|mpc--status-timer-stop|mpc--status-timers-refresh|mpc-assq-all|mpc-cmd-add|mpc-cmd-clear|mpc-cmd-delete|mpc-cmd-find|mpc-cmd-flush|mpc-cmd-list|mpc-cmd-move|mpc-cmd-pause|mpc-cmd-play|mpc-cmd-special-tag-p|mpc-cmd-status|mpc-cmd-stop|mpc-cmd-tagtypes|mpc-cmd-update|mpc-compare-strings|mpc-constraints-get-current|mpc-constraints-pop|mpc-constraints-push|mpc-constraints-restore|mpc-constraints-tag-lookup|mpc-current-refresh|mpc-data-directory|mpc-drag-n-drop|mpc-event-set-point|mpc-ffwd|mpc-file-local-copy|mpc-format|mpc-intersection|mpc-mode-menu|mpc-mode|mpc-next|mpc-pause|mpc-play-at-point|mpc-play|mpc-playlist-add|mpc-playlist-create|mpc-playlist-delete|mpc-playlist-destroy|mpc-playlist-rename|mpc-playlist|mpc-prev|mpc-proc-buf-to-alist|mpc-proc-buf-to-alists|mpc-proc-buffer|mpc-proc-check|mpc-proc-cmd-list-ok|mpc-proc-cmd-list|mpc-proc-cmd-to-alist|mpc-proc-cmd|mpc-proc-sync|mpc-proc-tag-string-to-sym|mpc-proc|mpc-quit|mpc-reorder|mpc-resume|mpc-rewind|mpc-ring-make|mpc-ring-pop|mpc-ring-push|mpc-secs-to-time|mpc-select-extend|mpc-select-get-selection|mpc-select-make-overlay|mpc-select-restore|mpc-select-save|mpc-select-toggle|mpc-select|mpc-selection-refresh|mpc-separator|mpc-songpointer-context|mpc-songpointer-refresh-hairy|mpc-songpointer-refresh|mpc-songpointer-score|mpc-songpointer-set|mpc-songs-buf|mpc-songs-hashcons|mpc-songs-jump-to|mpc-songs-kill-search|mpc-songs-mode|mpc-songs-refresh|mpc-songs-search|mpc-songs-selection|mpc-sort|mpc-status-buffer-refresh|mpc-status-buffer-show|mpc-status-mode|mpc-status-refresh|mpc-status-stop|mpc-stop|mpc-string-prefix-p|mpc-tagbrowser-all-p|mpc-tagbrowser-all-select|mpc-tagbrowser-buf|mpc-tagbrowser-dir-mode|mpc-tagbrowser-dir-toggle|mpc-tagbrowser-mode|mpc-tagbrowser-refresh|mpc-tagbrowser-tag-name|mpc-tagbrowser|mpc-tempfiles-add|mpc-tempfiles-clean|mpc-union|mpc-update|mpc-updated-db|mpc-volume-mouse-set|mpc-volume-refresh|mpc-volume-widget|mpc|mpuz-ask-for-try|mpuz-build-random-perm|mpuz-check-all-solved|mpuz-close-game|mpuz-create-buffer|mpuz-digit-solved-p|mpuz-ding|mpuz-get-buffer|mpuz-mode|mpuz-offer-abort|mpuz-paint-board|mpuz-paint-digit|mpuz-paint-errors|mpuz-paint-number|mpuz-paint-statistics|mpuz-put-number-on-board|mpuz-random-puzzle|mpuz-show-solution|mpuz-solve|mpuz-start-new-game|mpuz-switch-to-window|mpuz-to-digit|mpuz-to-letter|mpuz-try-letter|mpuz-try-proposal|mpuz|msb--add-separators|msb--add-to-menu|msb--aggregate-alist|msb--choose-file-menu|msb--choose-menu|msb--collect|msb--create-buffer-menu-2|msb--create-buffer-menu|msb--create-function-info|msb--create-sort-item|msb--dired-directory|msb--format-title|msb--init-file-alist|msb--make-keymap-menu|msb--mode-menu-cond|msb--most-recently-used-menu|msb--split-menus-2|msb--split-menus|msb--strip-dir|msb--toggle-menu-type|msb-alon-item-handler|msb-custom-set|msb-dired-item-handler|msb-invisible-buffer-p|msb-item-handler|msb-menu-bar-update-buffers|msb-mode|msb-sort-by-directory|msb-sort-by-name|msb-unload-function|msb|mspools-get-folder-from-spool|mspools-get-spool-files|mspools-get-spool-name|mspools-help|mspools-mode|mspools-quit|mspools-revert-buffer|mspools-set-vm-spool-files|mspools-show-again|mspools-show|mspools-size-folder|mspools-visit-spool|mule-diag|multi-isearch-buffers-regexp|multi-isearch-buffers|multi-isearch-end|multi-isearch-files-regexp|multi-isearch-files|multi-isearch-next-buffer-from-list|multi-isearch-next-file-buffer-from-list|multi-isearch-pop-state|multi-isearch-push-state|multi-isearch-read-buffers|multi-isearch-read-files|multi-isearch-read-matching-buffers|multi-isearch-read-matching-files|multi-isearch-search-fun|multi-isearch-setup|multi-isearch-wrap|multi-occur-in-matching-buffers|multi-occur|multiple-value-apply|multiple-value-bind|multiple-value-call|multiple-value-list|multiple-value-setq|mwheel-event-button|mwheel-event-window|mwheel-filter-click-events|mwheel-inhibit-click-timeout|mwheel-install|mwheel-scroll|name-last-kbd-macro|narrow-to-defun|nato-region|nested-alist-p|net-utils--revert-function|net-utils-machine-at-point|net-utils-mode|net-utils-remove-ctrl-m-filter|net-utils-run-program|net-utils-run-simple|net-utils-url-at-point|netrc-credentials|netrc-find-service-name|netrc-get|netrc-machine-user-or-password|netrc-machine|netrc-parse-services|netrc-parse|netrc-port-equal|netstat|network-connection-mode-setup|network-connection-mode|network-connection-reconnect|network-connection-to-service|network-connection|network-service-connection|network-stream-certificate|network-stream-command|network-stream-get-response|network-stream-open-plain|network-stream-open-shell|network-stream-open-starttls|network-stream-open-tls|new-fontset|new-frame|new-mode-local-bindings|newline-cache-check|newsticker--age|newsticker--buffer-beginning-of-feed|newsticker--buffer-beginning-of-item|newsticker--buffer-do-insert-text|newsticker--buffer-end-of-feed|newsticker--buffer-end-of-item|newsticker--buffer-get-feed-title-at-point|newsticker--buffer-get-item-title-at-point|newsticker--buffer-goto|newsticker--buffer-hideshow|newsticker--buffer-insert-all-items|newsticker--buffer-insert-item|newsticker--buffer-make-item-completely-visible|newsticker--buffer-redraw|newsticker--buffer-set-faces|newsticker--buffer-set-invisibility|newsticker--buffer-set-uptodate|newsticker--buffer-statistics|newsticker--cache-add|newsticker--cache-contains|newsticker--cache-dir|newsticker--cache-get-feed|newsticker--cache-item-compare-by-position|newsticker--cache-item-compare-by-time|newsticker--cache-item-compare-by-title|newsticker--cache-mark-expired|newsticker--cache-read-feed|newsticker--cache-read-version1|newsticker--cache-read|newsticker--cache-remove|newsticker--cache-replace-age|newsticker--cache-save-feed|newsticker--cache-save-version1|newsticker--cache-save|newsticker--cache-set-preformatted-contents|newsticker--cache-set-preformatted-title|newsticker--cache-sort)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:newsticker--cache-update|newsticker--count-grouped-feeds|newsticker--count-groups|newsticker--debug-msg|newsticker--decode-iso8601-date|newsticker--decode-rfc822-date|newsticker--desc|newsticker--display-jump|newsticker--display-scroll|newsticker--display-tick|newsticker--do-forget-preformatted|newsticker--do-mark-item-at-point-as-read|newsticker--do-print-extra-element|newsticker--do-run-auto-mark-filter|newsticker--do-xml-workarounds|newsticker--echo-area-clean-p|newsticker--enclosure|newsticker--extra|newsticker--forget-preformatted|newsticker--get-group-names|newsticker--get-icon-url-atom-1\\\\\\\\.0|newsticker--get-logo-url-atom-0\\\\\\\\.3|newsticker--get-logo-url-atom-1\\\\\\\\.0|newsticker--get-logo-url-rss-0\\\\\\\\.91|newsticker--get-logo-url-rss-0\\\\\\\\.92|newsticker--get-logo-url-rss-1\\\\\\\\.0|newsticker--get-logo-url-rss-2\\\\\\\\.0|newsticker--get-news-by-funcall|newsticker--get-news-by-url-callback|newsticker--get-news-by-url|newsticker--get-news-by-wget|newsticker--group-all-groups|newsticker--group-do-find-group|newsticker--group-do-get-group|newsticker--group-do-rename-group|newsticker--group-find-parent-group|newsticker--group-get-feeds|newsticker--group-get-group|newsticker--group-get-subgroups|newsticker--group-manage-orphan-feeds|newsticker--group-names|newsticker--group-remove-obsolete-feeds|newsticker--group-shift|newsticker--guid-to-string|newsticker--guid|newsticker--icon-read|newsticker--icons-dir|newsticker--image-download-by-url-callback|newsticker--image-download-by-url|newsticker--image-download-by-wget|newsticker--image-get|newsticker--image-read|newsticker--image-remove|newsticker--image-save|newsticker--image-sentinel|newsticker--images-dir|newsticker--imenu-create-index|newsticker--imenu-goto|newsticker--insert-enclosure|newsticker--insert-image|newsticker--link|newsticker--lists-intersect-p|newsticker--opml-import-outlines|newsticker--parse-atom-0\\\\\\\\.3|newsticker--parse-atom-1\\\\\\\\.0|newsticker--parse-generic-feed|newsticker--parse-generic-items|newsticker--parse-rss-0\\\\\\\\.91|newsticker--parse-rss-0\\\\\\\\.92|newsticker--parse-rss-1\\\\\\\\.0|newsticker--parse-rss-2\\\\\\\\.0|newsticker--pos|newsticker--preformatted-contents|newsticker--preformatted-title|newsticker--print-extra-elements|newsticker--process-auto-mark-filter-match|newsticker--real-feed-name|newsticker--remove-whitespace|newsticker--run-auto-mark-filter|newsticker--sentinel-work|newsticker--sentinel|newsticker--set-customvar-buffer|newsticker--set-customvar-formatting|newsticker--set-customvar-retrieval|newsticker--set-customvar-sorting|newsticker--set-customvar-ticker|newsticker--set-face-properties|newsticker--splicer|newsticker--start-feed|newsticker--stat-num-items-for-group|newsticker--stat-num-items-total|newsticker--stat-num-items|newsticker--stop-feed|newsticker--ticker-text-remove|newsticker--ticker-text-setup|newsticker--time|newsticker--title|newsticker--tree-widget-icon-create|newsticker--treeview-activate-node|newsticker--treeview-buffer-init|newsticker--treeview-count-node-items|newsticker--treeview-do-get-node-by-id|newsticker--treeview-do-get-node-of-feed|newsticker--treeview-first-feed|newsticker--treeview-frame-init|newsticker--treeview-get-current-node|newsticker--treeview-get-feed-vfeed|newsticker--treeview-get-first-child|newsticker--treeview-get-id|newsticker--treeview-get-last-child|newsticker--treeview-get-next-sibling|newsticker--treeview-get-next-uncle|newsticker--treeview-get-node-by-id|newsticker--treeview-get-node-of-feed|newsticker--treeview-get-other-tree|newsticker--treeview-get-prev-sibling|newsticker--treeview-get-prev-uncle|newsticker--treeview-get-second-child|newsticker--treeview-get-selected-item|newsticker--treeview-ids-eq|newsticker--treeview-item-buffer|newsticker--treeview-item-show-text|newsticker--treeview-item-show|newsticker--treeview-item-update|newsticker--treeview-item-window|newsticker--treeview-list-add-item|newsticker--treeview-list-all-items|newsticker--treeview-list-buffer|newsticker--treeview-list-clear-highlight|newsticker--treeview-list-clear|newsticker--treeview-list-compare-item-by-age-reverse|newsticker--treeview-list-compare-item-by-age|newsticker--treeview-list-compare-item-by-time-reverse|newsticker--treeview-list-compare-item-by-time|newsticker--treeview-list-compare-item-by-title-reverse|newsticker--treeview-list-compare-item-by-title|newsticker--treeview-list-feed-items|newsticker--treeview-list-highlight-start|newsticker--treeview-list-immortal-items|newsticker--treeview-list-items-v|newsticker--treeview-list-items-with-age-callback|newsticker--treeview-list-items-with-age|newsticker--treeview-list-items|newsticker--treeview-list-new-items|newsticker--treeview-list-obsolete-items|newsticker--treeview-list-select|newsticker--treeview-list-sort-by-column|newsticker--treeview-list-sort-items|newsticker--treeview-list-update-faces|newsticker--treeview-list-update-highlight|newsticker--treeview-list-update|newsticker--treeview-list-window|newsticker--treeview-load|newsticker--treeview-mark-item|newsticker--treeview-nodes-eq|newsticker--treeview-propertize-tag|newsticker--treeview-render-text|newsticker--treeview-restore-layout|newsticker--treeview-set-current-node|newsticker--treeview-tree-buffer|newsticker--treeview-tree-do-update-tags|newsticker--treeview-tree-expand-status|newsticker--treeview-tree-expand|newsticker--treeview-tree-get-tag|newsticker--treeview-tree-open-menu|newsticker--treeview-tree-update-highlight|newsticker--treeview-tree-update-tag|newsticker--treeview-tree-update-tags|newsticker--treeview-tree-update|newsticker--treeview-tree-window|newsticker--treeview-unfold-node|newsticker--treeview-virtual-feed-p|newsticker--treeview-window-init|newsticker--unxml-attribute|newsticker--unxml-node|newsticker--unxml|newsticker--update-process-ids|newsticker-add-url|newsticker-browse-url-item|newsticker-browse-url|newsticker-buffer-force-update|newsticker-buffer-update|newsticker-close-buffer|newsticker-customize|newsticker-download-enclosures|newsticker-download-images|newsticker-get-all-news|newsticker-get-news-at-point|newsticker-get-news|newsticker-group-add-group|newsticker-group-delete-group|newsticker-group-move-feed|newsticker-group-rename-group|newsticker-group-shift-feed-down|newsticker-group-shift-feed-up|newsticker-group-shift-group-down|newsticker-group-shift-group-up|newsticker-handle-url|newsticker-hide-all-desc|newsticker-hide-entry|newsticker-hide-extra|newsticker-hide-feed-desc|newsticker-hide-new-item-desc|newsticker-hide-old-item-desc|newsticker-hide-old-items|newsticker-htmlr-render|newsticker-item-not-immortal-p|newsticker-item-not-old-p|newsticker-mark-all-items-as-read|newsticker-mark-all-items-at-point-as-read-and-redraw|newsticker-mark-all-items-at-point-as-read|newsticker-mark-all-items-of-feed-as-read|newsticker-mark-item-at-point-as-immortal|newsticker-mark-item-at-point-as-read|newsticker-mode|newsticker-mouse-browse-url|newsticker-new-item-functions-sample|newsticker-next-feed-available-p|newsticker-next-feed|newsticker-next-item-available-p|newsticker-next-item-same-feed|newsticker-next-item|newsticker-next-new-item|newsticker-opml-export|newsticker-opml-import|newsticker-plainview|newsticker-previous-feed-available-p|newsticker-previous-feed|newsticker-previous-item-available-p|newsticker-previous-item|newsticker-previous-new-item|newsticker-retrieve-random-message|newsticker-running-p|newsticker-save-item|newsticker-set-auto-narrow-to-feed|newsticker-set-auto-narrow-to-item|newsticker-show-all-desc|newsticker-show-entry|newsticker-show-extra|newsticker-show-feed-desc|newsticker-show-new-item-desc|newsticker-show-news|newsticker-show-old-item-desc|newsticker-show-old-items|newsticker-start-ticker|newsticker-start|newsticker-stop-ticker|newsticker-stop|newsticker-ticker-running-p|newsticker-toggle-auto-narrow-to-feed|newsticker-toggle-auto-narrow-to-item|newsticker-treeview-browse-url-item|newsticker-treeview-browse-url|newsticker-treeview-get-news|newsticker-treeview-item-mode|newsticker-treeview-jump|newsticker-treeview-list-make-sort-button|newsticker-treeview-list-mode|newsticker-treeview-mark-item-old|newsticker-treeview-mark-list-items-old|newsticker-treeview-mode|newsticker-treeview-mouse-browse-url|newsticker-treeview-next-feed|newsticker-treeview-next-item|newsticker-treeview-next-new-or-immortal-item|newsticker-treeview-next-page|newsticker-treeview-prev-feed|newsticker-treeview-prev-item|newsticker-treeview-prev-new-or-immortal-item|newsticker-treeview-quit|newsticker-treeview-save-item|newsticker-treeview-save|newsticker-treeview-scroll-item|newsticker-treeview-show-item|newsticker-treeview-toggle-item-immortal|newsticker-treeview-tree-click|newsticker-treeview-tree-do-click|newsticker-treeview-update|newsticker-treeview|newsticker-w3m-show-inline-images|next-buffer|next-cdabbrev|next-completion|next-error-buffer-p|next-error-find-buffer|next-error-follow-minor-mode|next-error-follow-mode-post-command-hook|next-error-internal|next-error-no-select|next-error|next-file|next-ifdef|next-line-or-history-element|next-line|next-logical-line|next-match|next-method-p|next-multiframe-window|next-page|next-read-file-uses-dialog-p|nintersection|ninth|nndiary-generate-nov-databases|nndoc-add-type|nndraft-request-associate-buffer|nndraft-request-expire-articles|nnfolder-generate-active-file|nnheader-accept-process-output|nnheader-article-p|nnheader-article-to-file-alist|nnheader-be-verbose|nnheader-cancel-function-timers|nnheader-cancel-timer|nnheader-concat|nnheader-directory-articles|nnheader-directory-files-safe|nnheader-directory-files|nnheader-directory-regular-files|nnheader-fake-message-id-p|nnheader-file-error|nnheader-file-size|nnheader-file-to-group|nnheader-file-to-number|nnheader-find-etc-directory|nnheader-find-file-noselect|nnheader-find-nov-line|nnheader-fold-continuation-lines|nnheader-generate-fake-message-id|nnheader-get-lines-and-char|nnheader-get-report-string|nnheader-get-report|nnheader-group-pathname|nnheader-header-value|nnheader-init-server-buffer|nnheader-insert-article-line|nnheader-insert-buffer-substring|nnheader-insert-file-contents|nnheader-insert-head|nnheader-insert-header|nnheader-insert-nov-file|nnheader-insert-nov|nnheader-insert-references|nnheader-insert|nnheader-message-maybe|nnheader-message|nnheader-ms-strip-cr|nnheader-narrow-to-headers|nnheader-nov-delete-outside-range|nnheader-nov-field|nnheader-nov-parse-extra|nnheader-nov-read-integer|nnheader-nov-read-message-id|nnheader-nov-skip-field|nnheader-parse-head|nnheader-parse-naked-head|nnheader-parse-nov|nnheader-parse-overview-file|nnheader-re-read-dir|nnheader-remove-body|nnheader-remove-cr-followed-by-lf|nnheader-replace-chars-in-string|nnheader-replace-duplicate-chars-in-string|nnheader-replace-header|nnheader-replace-regexp|nnheader-replace-string|nnheader-report|nnheader-set-temp-buffer|nnheader-skeleton-replace|nnheader-strip-cr|nnheader-translate-file-chars|nnheader-update-marks-actions|nnheader-write-overview-file|nnmail-article-group|nnmail-message-id|nnmail-split-fancy|nnml-generate-nov-databases|nnvirtual-catchup-group|nnvirtual-convert-headers|nnvirtual-find-group-art|no-applicable-method|no-next-method|nonincremental-re-search-backward|nonincremental-re-search-forward|nonincremental-repeat-search-backward|nonincremental-repeat-search-forward|nonincremental-search-backward|nonincremental-search-forward|normal-about-screen|normal-erase-is-backspace-mode|normal-erase-is-backspace-setup-frame|normal-mouse-startup-screen|normal-no-mouse-startup-screen|normal-splash-screen|normal-top-level-add-subdirs-to-load-path|normal-top-level-add-to-load-path|normal-top-level|notany|notevery|notifications-on-action-signal|notifications-on-closed-signal|nreconc|nroff-backward-text-line|nroff-comment-indent|nroff-count-text-lines|nroff-electric-mode|nroff-electric-newline|nroff-forward-text-line|nroff-insert-comment-function|nroff-mode|nroff-outline-level|nroff-view|nset-difference|nset-exclusive-or|nslookup-host|nslookup-mode|nslookup|nsm-certificate-part|nsm-check-certificate|nsm-check-plain-connection|nsm-check-protocol|nsm-check-tls-connection|nsm-fingerprint-ok-p|nsm-fingerprint|nsm-format-certificate|nsm-host-settings|nsm-id|nsm-level|nsm-new-fingerprint-ok-p|nsm-parse-subject|nsm-query-user|nsm-query|nsm-read-settings|nsm-remove-permanent-setting|nsm-remove-temporary-setting|nsm-save-host|nsm-verify-connection|nsm-warnings-ok-p|nsm-write-settings|nsublis|nsubst-if-not|nsubst-if|nsubst|nsubstitute-if-not)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:nsubstitute-if|nsubstitute|nth-value|ntlm-ascii2unicode|ntlm-build-auth-request|ntlm-build-auth-response|ntlm-get-password-hashes|ntlm-md4hash|ntlm-smb-des-e-p16|ntlm-smb-des-e-p24|ntlm-smb-dohash|ntlm-smb-hash|ntlm-smb-owf-encrypt|ntlm-smb-passwd-hash|ntlm-smb-str-to-key|ntlm-string-lshift|ntlm-string-permute|ntlm-string-xor|ntlm-unicode2ascii|nullify-allout-prefix-data|number-at-point|number-to-register|nunion|nxml-enable-unicode-char-name-sets|nxml-glyph-display-string|nxml-mode|obj-of-class-p|objc-font-lock-keywords-2|objc-font-lock-keywords-3|objc-font-lock-keywords|objc-mode|object-add-to-list|object-assoc-list-safe|object-assoc-list|object-assoc|object-class-fast|object-class-name|object-class|object-name-string|object-name|object-of-class-p|object-p|object-print|object-remove-from-list|object-set-name-string|object-slots|object-write|occur-1|occur-accumulate-lines|occur-after-change-function|occur-cease-edit|occur-context-lines|occur-edit-mode|occur-engine-add-prefix|occur-engine-line|occur-engine|occur-find-match|occur-mode-display-occurrence|occur-mode-find-occurrence|occur-mode-goto-occurrence-other-window|occur-mode-goto-occurrence|occur-mode-mouse-goto|occur-mode|occur-next-error|occur-next|occur-prev|occur-read-primary-args|occur-rename-buffer|occur-revert-function|occur|octave--indent-new-comment-line|octave-add-log-current-defun|octave-beginning-of-defun|octave-beginning-of-line|octave-complete-symbol|octave-completing-read|octave-completion-at-point|octave-eldoc-function-signatures|octave-eldoc-function|octave-end-of-line|octave-eval-print-last-sexp|octave-fill-paragraph|octave-find-definition-default-filename|octave-find-definition|octave-font-lock-texinfo-comment|octave-function-file-comment|octave-function-file-p|octave-goto-function-definition|octave-help-mode|octave-help|octave-hide-process-buffer|octave-in-comment-p|octave-in-string-or-comment-p|octave-in-string-p|octave-indent-comment|octave-indent-defun|octave-indent-new-comment-line|octave-insert-defun|octave-kill-process|octave-lookfor|octave-looking-at-kw|octave-mark-block|octave-maybe-insert-continuation-string|octave-mode-menu|octave-mode|octave-next-code-line|octave-previous-code-line|octave-send-block|octave-send-buffer|octave-send-defun|octave-send-line|octave-send-region|octave-show-process-buffer|octave-skip-comment-forward|octave-smie-backward-token|octave-smie-forward-token|octave-smie-rules|octave-source-directories|octave-source-file|octave-submit-bug-report|octave-sync-function-file-names|octave-syntax-propertize-function|octave-syntax-propertize-sqs|octave-update-function-file-comment|oddp|opascal-block-start|opascal-char-token-at|opascal-charset-token-at|opascal-column-of|opascal-comment-block-end|opascal-comment-block-start|opascal-comment-content-start|opascal-comment-indent-of|opascal-composite-type-start|opascal-corrected-indentation|opascal-current-token|opascal-debug-goto-next-token|opascal-debug-goto-point|opascal-debug-goto-previous-token|opascal-debug-log|opascal-debug-show-current-string|opascal-debug-show-current-token|opascal-debug-token-string|opascal-debug-tokenize-buffer|opascal-debug-tokenize-region|opascal-debug-tokenize-window|opascal-else-start|opascal-enclosing-indent-of|opascal-ensure-buffer|opascal-explicit-token-at|opascal-fill-comment|opascal-find-current-body|opascal-find-current-def|opascal-find-current-xdef|opascal-find-unit-file|opascal-find-unit-in-directory|opascal-find-unit|opascal-group-end|opascal-group-start|opascal-in-token|opascal-indent-line|opascal-indent-of|opascal-is-block-after-expr-statement|opascal-is-directory|opascal-is-file|opascal-is-literal-end|opascal-is-simple-class-type|opascal-is-use-clause-end|opascal-is|opascal-line-indent-of|opascal-literal-end-pattern|opascal-literal-kind|opascal-literal-start-pattern|opascal-literal-stop-pattern|opascal-literal-token-at|opascal-log-msg|opascal-looking-at-string|opascal-match-token|opascal-mode|opascal-new-comment-line|opascal-next-line-start|opascal-next-token|opascal-next-visible-token|opascal-on-first-comment-line|opascal-open-group-indent|opascal-point-token-at|opascal-previous-indent-of|opascal-previous-token|opascal-progress-done|opascal-progress-start|opascal-save-excursion|opascal-search-directory|opascal-section-indent-of|opascal-set-token-end|opascal-set-token-kind|opascal-set-token-start|opascal-space-token-at|opascal-step-progress|opascal-stmt-line-indent-of|opascal-string-of|opascal-tab|opascal-token-at|opascal-token-end|opascal-token-kind|opascal-token-of|opascal-token-start|opascal-token-string|opascal-word-token-at|open-font|open-gnutls-stream|open-line|open-protocol-stream|open-rectangle-line|open-rectangle|open-tls-stream|operate-on-rectangle|optimize-char-table|oref-default|oref|org-2ft|org-N-empty-lines-before-current|org-activate-angle-links|org-activate-bracket-links|org-activate-code|org-activate-dates|org-activate-footnote-links|org-activate-mark|org-activate-plain-links|org-activate-tags|org-activate-target-links|org-adaptive-fill-function|org-add-angle-brackets|org-add-archive-files|org-add-hook|org-add-link-props|org-add-link-type|org-add-log-note|org-add-log-setup|org-add-note|org-add-planning-info|org-add-prop-inherited|org-add-props|org-advertized-archive-subtree|org-agenda-check-for-timestamp-as-reason-to-ignore-todo-item|org-agenda-columns|org-agenda-file-p|org-agenda-file-to-front|org-agenda-files|org-agenda-list-stuck-projects|org-agenda-list|org-agenda-prepare-buffers|org-agenda-set-restriction-lock|org-agenda-to-appt|org-agenda|org-align-all-tags|org-align-tags-here|org-all-targets|org-apply-on-list|org-apps-regexp-alist|org-archive-subtree-default-with-confirmation|org-archive-subtree-default|org-archive-subtree|org-archive-to-archive-sibling|org-ascii-export-as-ascii|org-ascii-export-to-ascii|org-ascii-publish-to-ascii|org-ascii-publish-to-latin1|org-ascii-publish-to-utf8|org-assign-fast-keys|org-at-TBLFM-p|org-at-block-p|org-at-clock-log-p|org-at-comment-p|org-at-date-range-p|org-at-drawer-p|org-at-heading-or-item-p|org-at-heading-p|org-at-item-bullet-p|org-at-item-checkbox-p|org-at-item-counter-p|org-at-item-description-p|org-at-item-p|org-at-item-timer-p|org-at-property-p|org-at-regexp-p|org-at-table-hline-p|org-at-table-p|org-at-table\\\\\\\\.el-p|org-at-target-p|org-at-timestamp-p|org-attach|org-auto-fill-function|org-auto-repeat-maybe|org-babel--shell-command-on-region|org-babel-active-location-p|org-babel-balanced-split|org-babel-check-confirm-evaluate|org-babel-check-evaluate|org-babel-check-src-block|org-babel-chomp|org-babel-combine-header-arg-lists|org-babel-comint-buffer-livep|org-babel-comint-eval-invisibly-and-wait-for-file|org-babel-comint-in-buffer|org-babel-comint-input-command|org-babel-comint-wait-for-output|org-babel-comint-with-output|org-babel-confirm-evaluate|org-babel-current-result-hash|org-babel-del-hlines|org-babel-demarcate-block|org-babel-describe-bindings|org-babel-detangle|org-babel-disassemble-tables|org-babel-do-in-edit-buffer|org-babel-do-key-sequence-in-edit-buffer|org-babel-do-load-languages|org-babel-edit-distance|org-babel-enter-header-arg-w-completion|org-babel-eval-error-notify|org-babel-eval-read-file|org-babel-eval-wipe-error-buffer|org-babel-eval|org-babel-examplize-region|org-babel-execute-buffer|org-babel-execute-maybe|org-babel-execute-safely-maybe|org-babel-execute-src-block-maybe|org-babel-execute-src-block|org-babel-execute-subtree|org-babel-execute:emacs-lisp|org-babel-exp-code|org-babel-exp-do-export|org-babel-exp-get-export-buffer|org-babel-exp-in-export-file|org-babel-exp-process-buffer|org-babel-exp-results|org-babel-exp-src-block|org-babel-expand-body:emacs-lisp|org-babel-expand-body:generic|org-babel-expand-noweb-references|org-babel-expand-src-block-maybe|org-babel-expand-src-block|org-babel-find-file-noselect-refresh|org-babel-find-named-block|org-babel-find-named-result|org-babel-format-result|org-babel-get-colnames|org-babel-get-header|org-babel-get-inline-src-block-matches|org-babel-get-lob-one-liner-matches|org-babel-get-rownames|org-babel-get-src-block-info|org-babel-goto-named-result|org-babel-goto-named-src-block|org-babel-goto-src-block-head|org-babel-hash-at-point|org-babel-header-arg-expand|org-babel-hide-all-hashes|org-babel-hide-hash|org-babel-hide-result-toggle-maybe|org-babel-hide-result-toggle|org-babel-import-elisp-from-file|org-babel-in-example-or-verbatim|org-babel-initiate-session|org-babel-insert-header-arg|org-babel-insert-result|org-babel-join-splits-near-ch|org-babel-load-file|org-babel-load-in-session-maybe|org-babel-load-in-session|org-babel-lob-execute-maybe|org-babel-lob-execute|org-babel-lob-get-info|org-babel-lob-ingest|org-babel-local-file-name|org-babel-map-call-lines|org-babel-map-executables|org-babel-map-inline-src-blocks|org-babel-map-src-blocks|org-babel-mark-block|org-babel-merge-params|org-babel-named-data-regexp-for-name|org-babel-named-src-block-regexp-for-name|org-babel-next-src-block|org-babel-noweb-p|org-babel-noweb-wrap|org-babel-number-p|org-babel-open-src-block-result|org-babel-params-from-properties|org-babel-parse-header-arguments|org-babel-parse-inline-src-block-match|org-babel-parse-multiple-vars|org-babel-parse-src-block-match|org-babel-pick-name|org-babel-pop-to-session-maybe|org-babel-pop-to-session|org-babel-previous-src-block|org-babel-process-file-name|org-babel-process-params|org-babel-put-colnames|org-babel-put-rownames|org-babel-read-link|org-babel-read-list|org-babel-read-result|org-babel-read-table|org-babel-read|org-babel-reassemble-table|org-babel-ref-at-ref-p|org-babel-ref-goto-headline-id|org-babel-ref-headline-body|org-babel-ref-index-list|org-babel-ref-parse|org-babel-ref-resolve|org-babel-ref-split-args|org-babel-remove-result|org-babel-remove-temporary-directory|org-babel-result-cond|org-babel-result-end|org-babel-result-hide-all|org-babel-result-hide-spec|org-babel-result-names|org-babel-result-to-file|org-babel-script-escape|org-babel-set-current-result-hash|org-babel-sha1-hash|org-babel-show-result-all|org-babel-spec-to-string|org-babel-speed-command-activate|org-babel-speed-command-hook|org-babel-src-block-names|org-babel-string-read|org-babel-switch-to-session-with-code|org-babel-switch-to-session|org-babel-table-truncate-at-newline|org-babel-tangle-clean|org-babel-tangle-collect-blocks|org-babel-tangle-comment-links|org-babel-tangle-file|org-babel-tangle-jump-to-org|org-babel-tangle-publish|org-babel-tangle-single-block|org-babel-tangle|org-babel-temp-file|org-babel-tramp-handle-call-process-region|org-babel-trim|org-babel-update-block-body|org-babel-view-src-block-info|org-babel-when-in-src-block|org-babel-where-is-src-block-head|org-babel-where-is-src-block-result|org-babel-with-temp-filebuffer|org-back-over-empty-lines|org-back-to-heading|org-backward-element|org-backward-heading-same-level|org-backward-paragraph|org-backward-sentence|org-base-buffer|org-batch-agenda-csv|org-batch-agenda|org-batch-store-agenda-views|org-bbdb-anniversaries|org-beamer-export-as-latex|org-beamer-export-to-latex|org-beamer-export-to-pdf|org-beamer-insert-options-template|org-beamer-mode|org-beamer-publish-to-latex|org-beamer-publish-to-pdf|org-beamer-select-environment|org-before-change-function|org-before-first-heading-p|org-beginning-of-dblock|org-beginning-of-item-list|org-beginning-of-item|org-beginning-of-line|org-between-regexps-p|org-block-map|org-block-todo-from-checkboxes|org-block-todo-from-children-or-siblings-or-parent|org-bookmark-jump-unhide|org-bound-and-true-p|org-buffer-list|org-buffer-narrowed-p|org-buffer-property-keys|org-cached-entry-get|org-calendar-goto-agenda|org-calendar-holiday|org-calendar-select-mouse|org-calendar-select|org-call-for-shift-select|org-call-with-arg|org-called-interactively-p|org-capture-import-remember-templates|org-capture-string|org-capture|org-cdlatex-math-modify|org-cdlatex-mode|org-cdlatex-underscore-caret|org-change-tag-in-region|org-char-to-string|org-check-after-date|org-check-agenda-file|org-check-and-save-marker|org-check-before-date|org-check-before-invisible-edit|org-check-dates-range|org-check-deadlines|org-check-external-command|org-check-for-hidden|org-check-running-clock|org-check-version|org-clean-visibility-after-subtree-move|org-clock-cancel|org-clock-display|org-clock-get-clocktable|org-clock-goto|org-clock-in-last|org-clock-in|org-clock-is-active|org-clock-out|org-clock-persistence-insinuate|org-clock-remove-overlays|org-clock-report|org-clock-sum|org-clock-update-time-maybe|org-clocktable-shift|org-clocktable-try-shift|org-clone-local-variables)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:org-clone-subtree-with-time-shift|org-closest-date|org-columns-compute|org-columns-get-format-and-top-level|org-columns-number-to-string|org-columns-remove-overlays|org-columns|org-combine-plists|org-command-at-point|org-comment-line-break-function|org-comment-or-uncomment-region|org-compatible-face|org-complete-expand-structure-template|org-completing-read-no-i|org-completing-read|org-compute-latex-and-related-regexp|org-compute-property-at-point|org-content|org-context-p|org-context|org-contextualize-keys|org-contextualize-validate-key|org-convert-to-odd-levels|org-convert-to-oddeven-levels|org-copy-face|org-copy-special|org-copy-subtree|org-copy-visible|org-copy|org-count-lines|org-count|org-create-customize-menu|org-create-dblock|org-create-formula--latex-header|org-create-formula-image-with-dvipng|org-create-formula-image-with-imagemagick|org-create-formula-image|org-create-math-formula|org-create-multibrace-regexp|org-ctrl-c-ctrl-c|org-ctrl-c-minus|org-ctrl-c-ret|org-ctrl-c-star|org-current-effective-time|org-current-level|org-current-line-string|org-current-line|org-current-time|org-cursor-to-region-beginning|org-customize|org-cut-special|org-cut-subtree|org-cycle-agenda-files|org-cycle-hide-archived-subtrees|org-cycle-hide-drawers|org-cycle-hide-inline-tasks|org-cycle-internal-global|org-cycle-internal-local|org-cycle-item-indentation|org-cycle-level|org-cycle-list-bullet|org-cycle-show-empty-lines|org-cycle|org-date-from-calendar|org-date-to-gregorian|org-datetree-find-date-create|org-days-to-iso-week|org-days-to-time|org-dblock-update|org-dblock-write:clocktable|org-dblock-write:columnview|org-deadline-close|org-deadline|org-decompose-region|org-default-apps|org-defkey|org-defvaralias|org-delete-all|org-delete-backward-char|org-delete-char|org-delete-directory|org-delete-property-globally|org-delete-property|org-demote-subtree|org-demote|org-detach-overlay|org-diary-sexp-entry|org-diary-to-ical-string|org-diary|org-display-custom-time|org-display-inline-images|org-display-inline-modification-hook|org-display-inline-remove-overlay|org-display-outline-path|org-display-warning|org-do-demote|org-do-emphasis-faces|org-do-latex-and-related|org-do-occur|org-do-promote|org-do-remove-indentation|org-do-sort|org-do-wrap|org-down-element|org-drag-element-backward|org-drag-element-forward|org-drag-line-backward|org-drag-line-forward|org-duration-string-to-minutes|org-dvipng-color-format|org-dvipng-color|org-edit-agenda-file-list|org-edit-fixed-width-region|org-edit-special|org-edit-src-abort|org-edit-src-code|org-edit-src-continue|org-edit-src-exit|org-edit-src-find-buffer|org-edit-src-find-region-and-lang|org-edit-src-get-indentation|org-edit-src-get-label-format|org-edit-src-get-lang|org-edit-src-save|org-element-at-point|org-element-context|org-element-interpret-data|org-email-link-description|org-emphasize|org-end-of-item-list|org-end-of-item|org-end-of-line|org-end-of-meta-data-and-drawers|org-end-of-subtree|org-entities-create-table|org-entities-help|org-entity-get-representation|org-entity-get|org-entity-latex-math-p|org-entry-add-to-multivalued-property|org-entry-beginning-position|org-entry-blocked-p|org-entry-delete|org-entry-end-position|org-entry-get-multivalued-property|org-entry-get-with-inheritance|org-entry-get|org-entry-is-done-p|org-entry-is-todo-p|org-entry-member-in-multivalued-property|org-entry-properties|org-entry-protect-space|org-entry-put-multivalued-property|org-entry-put|org-entry-remove-from-multivalued-property|org-entry-restore-space|org-escape-code-in-region|org-escape-code-in-string|org-eval-in-calendar|org-eval-in-environment|org-eval|org-evaluate-time-range|org-every|org-export-as|org-export-dispatch|org-export-insert-default-template|org-export-replace-region-by|org-export-string-as|org-export-to-buffer|org-export-to-file|org-extract-attributes|org-extract-log-state-settings|org-face-from-face-or-color|org-fast-tag-insert|org-fast-tag-selection|org-fast-tag-show-exit|org-fast-todo-selection|org-feed-goto-inbox|org-feed-show-raw-feed|org-feed-update-all|org-feed-update|org-file-apps-entry-match-against-dlink-p|org-file-complete-link|org-file-contents|org-file-equal-p|org-file-image-p|org-file-menu-entry|org-file-remote-p|org-files-list|org-fill-line-break-nobreak-p|org-fill-paragraph-with-timestamp-nobreak-p|org-fill-paragraph|org-fill-template|org-find-base-buffer-visiting|org-find-dblock|org-find-entry-with-id|org-find-exact-heading-in-directory|org-find-exact-headline-in-buffer|org-find-file-at-mouse|org-find-if|org-find-invisible-foreground|org-find-invisible|org-find-library-dir|org-find-olp|org-find-overlays|org-find-text-property-in-string|org-find-visible|org-first-headline-recenter|org-first-sibling-p|org-fit-window-to-buffer|org-fix-decoded-time|org-fix-indentation|org-fix-position-after-promote|org-fix-tags-on-the-fly|org-fixup-indentation|org-fixup-message-id-for-http|org-flag-drawer|org-flag-heading|org-flag-subtree|org-float-time|org-floor\\\\\\\\*|org-follow-timestamp-link|org-font-lock-add-priority-faces|org-font-lock-add-tag-faces|org-font-lock-ensure|org-font-lock-hook|org-fontify-entities|org-fontify-like-in-org-mode|org-fontify-meta-lines-and-blocks-1|org-fontify-meta-lines-and-blocks|org-footnote-action|org-footnote-all-labels|org-footnote-at-definition-p|org-footnote-at-reference-p|org-footnote-auto-adjust-maybe|org-footnote-create-definition|org-footnote-delete-definitions|org-footnote-delete-references|org-footnote-delete|org-footnote-get-definition|org-footnote-get-next-reference|org-footnote-goto-definition|org-footnote-goto-local-insertion-point|org-footnote-goto-previous-reference|org-footnote-in-valid-context-p|org-footnote-new|org-footnote-next-reference-or-definition|org-footnote-normalize-label|org-footnote-normalize|org-footnote-renumber-fn:N|org-footnote-unique-label|org-force-cycle-archived|org-force-self-insert|org-format-latex-as-mathml|org-format-latex-mathml-available-p|org-format-latex|org-format-outline-path|org-format-seconds|org-forward-element|org-forward-heading-same-level|org-forward-paragraph|org-forward-sentence|org-get-agenda-file-buffer|org-get-alist-option|org-get-at-bol|org-get-buffer-for-internal-link|org-get-buffer-tags|org-get-category|org-get-checkbox-statistics-face|org-get-compact-tod|org-get-cursor-date|org-get-date-from-calendar|org-get-deadline-time|org-get-entry|org-get-export-keywords|org-get-heading|org-get-indentation|org-get-indirect-buffer|org-get-last-sibling|org-get-level-face|org-get-limited-outline-regexp|org-get-local-tags-at|org-get-local-tags|org-get-local-variables|org-get-location|org-get-next-sibling|org-get-org-file|org-get-outline-path|org-get-packages-alist|org-get-previous-line-level|org-get-priority|org-get-property-block|org-get-repeat|org-get-scheduled-time|org-get-string-indentation|org-get-tag-face|org-get-tags-at|org-get-tags-string|org-get-tags|org-get-todo-face|org-get-todo-sequence-head|org-get-todo-state|org-get-valid-level|org-get-wdays|org-get-x-clipboard-compat|org-get-x-clipboard|org-git-version|org-global-cycle|org-global-tags-completion-table|org-goto-calendar|org-goto-first-child|org-goto-left|org-goto-line|org-goto-local-auto-isearch|org-goto-local-search-headings|org-goto-map|org-goto-marker-or-bmk|org-goto-quit|org-goto-ret|org-goto-right|org-goto-sibling|org-goto|org-heading-components|org-hh:mm-string-to-minutes|org-hidden-tree-error|org-hide-archived-subtrees|org-hide-block-all|org-hide-block-toggle-all|org-hide-block-toggle-maybe|org-hide-block-toggle|org-hide-wide-columns|org-highlight-new-match|org-hours-to-clocksum-string|org-html-convert-region-to-html|org-html-export-as-html|org-html-export-to-html|org-html-htmlize-generate-css|org-html-publish-to-html|org-icalendar-combine-agenda-files|org-icalendar-export-agenda-files|org-icalendar-export-to-ics|org-icompleting-read|org-id-copy|org-id-find-id-file|org-id-find|org-id-get-create|org-id-get-with-outline-drilling|org-id-get-with-outline-path-completion|org-id-get|org-id-goto|org-id-new|org-id-store-link|org-id-update-id-locations|org-ido-switchb|org-image-file-name-regexp|org-imenu-get-tree|org-imenu-new-marker|org-in-block-p|org-in-clocktable-p|org-in-commented-line|org-in-drawer-p|org-in-fixed-width-region-p|org-in-indented-comment-line|org-in-invisibility-spec-p|org-in-item-p|org-in-regexp|org-in-src-block-p|org-in-subtree-not-table-p|org-in-verbatim-emphasis|org-inc-effort|org-indent-block|org-indent-drawer|org-indent-item-tree|org-indent-item|org-indent-line-to|org-indent-line|org-indent-mode|org-indent-region|org-indent-to-column|org-info|org-inhibit-invisibility|org-insert-all-links|org-insert-columns-dblock|org-insert-comment|org-insert-drawer|org-insert-heading-after-current|org-insert-heading-respect-content|org-insert-heading|org-insert-item|org-insert-link-global|org-insert-link|org-insert-property-drawer|org-insert-subheading|org-insert-time-stamp|org-insert-todo-heading-respect-content|org-insert-todo-heading|org-insert-todo-subheading|org-inside-LaTeX-fragment-p|org-inside-latex-macro-p|org-install-agenda-files-menu|org-invisible-p2|org-irc-store-link|org-iread-file-name|org-isearch-end|org-isearch-post-command|org-iswitchb-completing-read|org-iswitchb|org-item-beginning-re|org-item-re|org-key|org-kill-is-subtree-p|org-kill-line|org-kill-new|org-kill-note-or-show-branches|org-last|org-latex-color-format|org-latex-color|org-latex-convert-region-to-latex|org-latex-export-as-latex|org-latex-export-to-latex|org-latex-export-to-pdf|org-latex-packages-to-string|org-latex-publish-to-latex|org-latex-publish-to-pdf|org-let|org-let2|org-level-increment|org-link-display-format|org-link-escape|org-link-expand-abbrev|org-link-fontify-links-to-this-file|org-link-prettify|org-link-search|org-link-try-special-completion|org-link-unescape-compound|org-link-unescape-single-byte-sequence|org-link-unescape|org-list-at-regexp-after-bullet-p|org-list-bullet-string|org-list-context|org-list-delete-item|org-list-get-all-items|org-list-get-bottom-point|org-list-get-bullet|org-list-get-checkbox|org-list-get-children|org-list-get-counter|org-list-get-first-item|org-list-get-ind|org-list-get-item-begin|org-list-get-item-end-before-blank|org-list-get-item-end|org-list-get-item-number|org-list-get-last-item|org-list-get-list-begin|org-list-get-list-end|org-list-get-list-type|org-list-get-next-item|org-list-get-nth|org-list-get-parent|org-list-get-prev-item|org-list-get-subtree|org-list-get-tag|org-list-get-top-point|org-list-has-child-p|org-list-in-valid-context-p|org-list-inc-bullet-maybe|org-list-indent-item-generic|org-list-insert-item|org-list-insert-radio-list|org-list-item-body-column|org-list-item-trim-br|org-list-make-subtree|org-list-parents-alist|org-list-prevs-alist|org-list-repair|org-list-search-backward|org-list-search-forward|org-list-search-generic|org-list-send-item|org-list-send-list|org-list-separating-blank-lines-number|org-list-set-bullet|org-list-set-checkbox|org-list-set-ind|org-list-set-item-visibility|org-list-set-nth|org-list-struct-apply-struct|org-list-struct-assoc-end|org-list-struct-fix-box|org-list-struct-fix-bul|org-list-struct-fix-ind|org-list-struct-fix-item-end|org-list-struct-indent|org-list-struct-outdent|org-list-swap-items|org-list-to-generic|org-list-to-html|org-list-to-latex|org-list-to-subtree|org-list-to-texinfo|org-list-use-alpha-bul-p|org-list-write-struct|org-load-modules-maybe|org-load-noerror-mustsuffix|org-local-logging|org-log-into-drawer|org-looking-at-p|org-looking-back|org-macro--collect-macros|org-macro-expand|org-macro-initialize-templates|org-macro-replace-all|org-make-link-regexps|org-make-link-string|org-make-options-regexp|org-make-org-heading-search-string|org-make-parameter-alist|org-make-tags-matcher|org-make-target-link-regexp|org-make-tdiff-string|org-map-dblocks|org-map-entries|org-map-region|org-map-tree|org-mark-element|org-mark-ring-goto|org-mark-ring-push|org-mark-subtree|org-match-any-p|org-match-line|org-match-sparse-tree|org-match-string-no-properties|org-matcher-time|org-maybe-intangible|org-md-convert-region-to-md|org-md-export-as-markdown|org-md-export-to-markdown|org-meta-return|org-metadown|org-metaleft|org-metaright|org-metaup|org-minutes-to-clocksum-string|org-minutes-to-hh:mm-string|org-mobile-pull|org-mobile-push|org-mode-flyspell-verify|org-mode-restart|org-mode|org-modifier-cursor-error)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:org-modify-ts-extra|org-move-item-down|org-move-item-up|org-move-subtree-down|org-move-subtree-up|org-move-to-column|org-narrow-to-block|org-narrow-to-element|org-narrow-to-subtree|org-next-block|org-next-item|org-next-link|org-no-popups|org-no-properties|org-no-read-only|org-no-warnings|org-normalize-color|org-not-nil|org-notes-order-reversed-p|org-number-sequence|org-occur-in-agenda-files|org-occur-link-in-agenda-files|org-occur-next-match|org-occur|org-odt-convert|org-odt-export-as-odf-and-open|org-odt-export-as-odf|org-odt-export-to-odt|org-offer-links-in-entry|org-olpath-completing-read|org-on-heading-p|org-on-target-p|org-op-to-function|org-open-at-mouse|org-open-at-point-global|org-open-at-point|org-open-file-with-emacs|org-open-file-with-system|org-open-file|org-open-line|org-open-link-from-string|org-optimize-window-after-visibility-change|org-order-calendar-date-args|org-org-export-as-org|org-org-export-to-org|org-org-menu|org-org-publish-to-org|org-outdent-item-tree|org-outdent-item|org-outline-level|org-outline-overlay-data|org-overlay-before-string|org-overlay-display|org-overview|org-parse-arguments|org-parse-time-string|org-paste-special|org-paste-subtree|org-pcomplete-case-double|org-pcomplete-initial|org-plist-delete|org-plot\\\\\\\\/gnuplot|org-point-at-end-of-empty-headline|org-point-in-group|org-pop-to-buffer-same-window|org-pos-in-match-range|org-prepare-dblock|org-preserve-lc|org-preview-latex-fragment|org-previous-block|org-previous-item|org-previous-line-empty-p|org-previous-link|org-print-speed-command|org-priority-down|org-priority-up|org-priority|org-promote-subtree|org-promote|org-propertize|org-property-action|org-property-get-allowed-values|org-property-inherit-p|org-property-next-allowed-value|org-property-or-variable-value|org-property-previous-allowed-value|org-property-values|org-protect-slash|org-publish-all|org-publish-current-file|org-publish-current-project|org-publish-project|org-publish|org-quote-csv-field|org-quote-vert|org-raise-scripts|org-re-property|org-re-timestamp|org-re|org-read-agenda-file-list|org-read-date-analyze|org-read-date-display|org-read-date-get-relative|org-read-date|org-read-property-name|org-read-property-value|org-rear-nonsticky-at|org-recenter-calendar|org-redisplay-inline-images|org-reduce|org-reduced-level|org-refile--get-location|org-refile-cache-check-set|org-refile-cache-clear|org-refile-cache-get|org-refile-cache-put|org-refile-check-position|org-refile-get-location|org-refile-get-targets|org-refile-goto-last-stored|org-refile-marker|org-refile-new-child|org-refile|org-refresh-category-properties|org-refresh-properties|org-reftex-citation|org-region-active-p|org-reinstall-markers-in-region|org-release-buffers|org-release|org-reload|org-remap|org-remove-angle-brackets|org-remove-double-quotes|org-remove-empty-drawer-at|org-remove-empty-overlays-at|org-remove-file|org-remove-flyspell-overlays-in|org-remove-font-lock-display-properties|org-remove-from-invisibility-spec|org-remove-if-not|org-remove-if|org-remove-indentation|org-remove-inline-images|org-remove-keyword-keys|org-remove-latex-fragment-image-overlays|org-remove-occur-highlights|org-remove-tabs|org-remove-timestamp-with-keyword|org-remove-uninherited-tags|org-replace-escapes|org-replace-match-keep-properties|org-require-autoloaded-modules|org-reset-checkbox-state-subtree|org-resolve-clocks|org-restart-font-lock|org-return-indent|org-return|org-reveal|org-reverse-string|org-revert-all-org-buffers|org-run-like-in-org-mode|org-save-all-org-buffers|org-save-markers-in-region|org-save-outline-visibility|org-sbe|org-scan-tags|org-schedule|org-search-not-self|org-search-view|org-select-frame-set-input-focus|org-self-insert-command|org-set-current-tags-overlay|org-set-effort|org-set-emph-re|org-set-font-lock-defaults|org-set-frame-title|org-set-local|org-set-modules|org-set-outline-overlay-data|org-set-packages-alist|org-set-property-and-value|org-set-property-function|org-set-property|org-set-regexps-and-options-for-tags|org-set-regexps-and-options|org-set-startup-visibility|org-set-tag-faces|org-set-tags-command|org-set-tags-to|org-set-tags|org-set-transient-map|org-set-visibility-according-to-property|org-setup-comments-handling|org-setup-filling|org-shiftcontroldown|org-shiftcontrolleft|org-shiftcontrolright|org-shiftcontrolup|org-shiftdown|org-shiftleft|org-shiftmetadown|org-shiftmetaleft|org-shiftmetaright|org-shiftmetaup|org-shiftright|org-shiftselect-error|org-shifttab|org-shiftup|org-shorten-string|org-show-block-all|org-show-context|org-show-empty-lines-in-parent|org-show-entry|org-show-hidden-entry|org-show-priority|org-show-siblings|org-show-subtree|org-show-todo-tree|org-skip-over-state-notes|org-skip-whitespace|org-small-year-to-year|org-some|org-sort-entries|org-sort-list|org-sort-remove-invisible|org-sort|org-sparse-tree|org-speed-command-activate|org-speed-command-default-hook|org-speed-command-help|org-speed-move-safe|org-speedbar-set-agenda-restriction|org-splice-latex-header|org-split-string|org-src-associate-babel-session|org-src-babel-configure-edit-buffer|org-src-construct-edit-buffer-name|org-src-do-at-code-block|org-src-do-key-sequence-at-code-block|org-src-edit-buffer-p|org-src-font-lock-fontify-block|org-src-fontify-block|org-src-fontify-buffer|org-src-get-lang-mode|org-src-in-org-buffer|org-src-mode-configure-edit-buffer|org-src-mode|org-src-native-tab-command-maybe|org-src-switch-to-buffer|org-src-tangle|org-store-agenda-views|org-store-link-props|org-store-link|org-store-log-note|org-store-new-agenda-file-list|org-string-match-p|org-string-nw-p|org-string-width|org-string<=|org-string<>|org-string>|org-string>=|org-sublist|org-submit-bug-report|org-substitute-posix-classes|org-subtree-end-visible-p|org-switch-to-buffer-other-window|org-switchb|org-table-align|org-table-begin|org-table-blank-field|org-table-convert-region|org-table-convert|org-table-copy-down|org-table-copy-region|org-table-create-or-convert-from-region|org-table-create-with-table\\\\\\\\.el|org-table-create|org-table-current-dline|org-table-cut-region|org-table-delete-column|org-table-edit-field|org-table-edit-formulas|org-table-end|org-table-eval-formula|org-table-export|org-table-field-info|org-table-get-stored-formulas|org-table-goto-column|org-table-hline-and-move|org-table-import|org-table-insert-column|org-table-insert-hline|org-table-insert-row|org-table-iterate-buffer-tables|org-table-iterate|org-table-justify-field-maybe|org-table-kill-row|org-table-map-tables|org-table-maybe-eval-formula|org-table-maybe-recalculate-line|org-table-move-column-left|org-table-move-column-right|org-table-move-column|org-table-move-row-down|org-table-move-row-up|org-table-move-row|org-table-next-field|org-table-next-row|org-table-p|org-table-paste-rectangle|org-table-previous-field|org-table-recalculate-buffer-tables|org-table-recalculate|org-table-recognize-table\\\\\\\\.el|org-table-rotate-recalc-marks|org-table-set-constants|org-table-sort-lines|org-table-sum|org-table-to-lisp|org-table-toggle-coordinate-overlays|org-table-toggle-formula-debugger|org-table-wrap-region|org-tag-inherit-p|org-tags-completion-function|org-tags-expand|org-tags-sparse-tree|org-tags-view|org-tbl-menu|org-texinfo-convert-region-to-texinfo|org-texinfo-publish-to-texinfo|org-thing-at-point|org-time-from-absolute|org-time-stamp-format|org-time-stamp-inactive|org-time-stamp-to-now|org-time-stamp|org-time-string-to-absolute|org-time-string-to-seconds|org-time-string-to-time|org-time-today|org-time<|org-time<=|org-time<>|org-time=|org-time>|org-time>=|org-timer-change-times-in-region|org-timer-item|org-timer-set-timer|org-timer-start|org-timer|org-timestamp-change|org-timestamp-down-day|org-timestamp-down|org-timestamp-format|org-timestamp-has-time-p|org-timestamp-split-range|org-timestamp-translate|org-timestamp-up-day|org-timestamp-up|org-today|org-todo-list|org-todo-trigger-tag-changes|org-todo-yesterday|org-todo|org-toggle-archive-tag|org-toggle-checkbox|org-toggle-comment|org-toggle-custom-properties-visibility|org-toggle-fixed-width-section|org-toggle-heading|org-toggle-inline-images|org-toggle-item|org-toggle-link-display|org-toggle-ordered-property|org-toggle-pretty-entities|org-toggle-sticky-agenda|org-toggle-tag|org-toggle-tags-groups|org-toggle-time-stamp-overlays|org-toggle-timestamp-type|org-tr-level|org-translate-link-from-planner|org-translate-link|org-translate-time|org-transpose-element|org-transpose-words|org-tree-to-indirect-buffer|org-trim|org-truely-invisible-p|org-try-cdlatex-tab|org-try-structure-completion|org-unescape-code-in-region|org-unescape-code-in-string|org-unfontify-region|org-unindent-buffer|org-uniquify-alist|org-uniquify|org-unlogged-message|org-unmodified|org-up-element|org-up-heading-all|org-up-heading-safe|org-update-all-dblocks|org-update-checkbox-count-maybe|org-update-checkbox-count|org-update-dblock|org-update-parent-todo-statistics|org-update-property-plist|org-update-radio-target-regexp|org-update-statistics-cookies|org-uuidgen-p|org-version-check|org-version|org-with-gensyms|org-with-limited-levels|org-with-point-at|org-with-remote-undo|org-with-silent-modifications|org-with-wide-buffer|org-without-partial-completion|org-wrap|org-xemacs-without-invisibility|org-xor|org-yank-folding-would-swallow-text|org-yank-generic|org-yank|org<>|orgstruct\\\\\\\\+\\\\\\\\+-mode|orgstruct-error|orgstruct-make-binding|orgstruct-mode|orgstruct-setup|orgtbl-mode|orgtbl-to-csv|orgtbl-to-generic|orgtbl-to-html|orgtbl-to-latex|orgtbl-to-orgtbl|orgtbl-to-texinfo|orgtbl-to-tsv|oset-default|oset|other-frame|other-window-for-scrolling|outline-back-to-heading|outline-backward-same-level|outline-demote|outline-end-of-heading|outline-end-of-subtree|outline-flag-region|outline-flag-subtree|outline-font-lock-face|outline-forward-same-level|outline-get-last-sibling|outline-get-next-sibling|outline-head-from-level|outline-headers-as-kill|outline-insert-heading|outline-invent-heading|outline-invisible-p|outline-isearch-open-invisible|outline-level|outline-map-region|outline-mark-subtree|outline-minor-mode|outline-mode|outline-move-subtree-down|outline-move-subtree-up|outline-next-heading|outline-next-preface|outline-next-visible-heading|outline-on-heading-p|outline-previous-heading|outline-previous-visible-heading|outline-promote|outline-reveal-toggle-invisible|outline-show-heading|outline-toggle-children|outline-up-heading|outlineify-sticky|outlinify-sticky|overlay-lists|overload-docstring-extension|overload-obsoleted-by|overload-that-obsolete|package--ac-desc-extras--cmacro|package--ac-desc-extras|package--ac-desc-kind--cmacro|package--ac-desc-kind|package--ac-desc-reqs--cmacro|package--ac-desc-reqs|package--ac-desc-summary--cmacro|package--ac-desc-summary|package--ac-desc-version--cmacro|package--ac-desc-version|package--add-to-archive-contents|package--alist-to-plist-args|package--archive-file-exists-p|package--bi-desc-reqs--cmacro|package--bi-desc-reqs|package--bi-desc-summary--cmacro|package--bi-desc-summary|package--bi-desc-version--cmacro|package--bi-desc-version|package--check-signature|package--compile|package--description-file|package--display-verify-error|package--download-one-archive|package--from-builtin|package--has-keyword-p|package--list-loaded-files|package--make-autoloads-and-stuff|package--mapc|package--prepare-dependencies|package--push|package--read-archive-file|package--with-work-buffer|package--write-file-no-coding|package-activate-1|package-activate|package-all-keywords|package-archive-base|package-autoload-ensure-default-file|package-buffer-info|package-built-in-p|package-compute-transaction|package-delete|package-desc--keywords|package-desc-archive--cmacro|package-desc-archive|package-desc-create--cmacro|package-desc-create|package-desc-dir--cmacro|package-desc-dir|package-desc-extras--cmacro|package-desc-extras|package-desc-from-define|package-desc-full-name|package-desc-kind--cmacro|package-desc-kind|package-desc-name--cmacro|package-desc-name|package-desc-p--cmacro|package-desc-p|package-desc-reqs--cmacro|package-desc-reqs|package-desc-signed--cmacro|package-desc-signed|package-desc-status|package-desc-suffix|package-desc-summary--cmacro|package-desc-summary|package-desc-version--cmacro|package-desc-version|package-disabled-p|package-download-transaction|package-generate-autoloads|package-generate-description-file|package-import-keyring|package-install-button-action|package-install-file|package-install-from-archive)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:package-install-from-buffer|package-install|package-installed-p|package-keyword-button-action|package-list-packages-no-fetch|package-list-packages|package-load-all-descriptors|package-load-descriptor|package-make-ac-desc--cmacro|package-make-ac-desc|package-make-builtin--cmacro|package-make-builtin|package-make-button|package-menu--archive-predicate|package-menu--description-predicate|package-menu--find-upgrades|package-menu--generate|package-menu--name-predicate|package-menu--print-info|package-menu--refresh|package-menu--status-predicate|package-menu--version-predicate|package-menu-backup-unmark|package-menu-describe-package|package-menu-execute|package-menu-filter|package-menu-get-status|package-menu-mark-delete|package-menu-mark-install|package-menu-mark-obsolete-for-deletion|package-menu-mark-unmark|package-menu-mark-upgrades|package-menu-mode|package-menu-quick-help|package-menu-refresh|package-menu-view-commentary|package-process-define-package|package-read-all-archive-contents|package-read-archive-contents|package-read-from-string|package-refresh-contents|package-show-package-list|package-strip-rcs-id|package-tar-file-info|package-unpack|package-untar-buffer|package-version-join|pages-copy-header-and-position|pages-directory-address-mode|pages-directory-for-addresses|pages-directory-goto-with-mouse|pages-directory-goto|pages-directory-mode|pages-directory|pairlis|paragraph-indent-minor-mode|paragraph-indent-text-mode|parse-iso8601-time-string|parse-time-string-chars|parse-time-string|parse-time-tokenize|pascal-beg-of-defun|pascal-build-defun-re|pascal-calculate-indent|pascal-capitalize-keywords|pascal-change-keywords|pascal-comment-area|pascal-comp-defun|pascal-complete-word|pascal-completion|pascal-completions-at-point|pascal-declaration-beg|pascal-declaration-end|pascal-downcase-keywords|pascal-end-of-defun|pascal-end-of-statement|pascal-func-completion|pascal-get-completion-decl|pascal-get-default-symbol|pascal-get-lineup-indent|pascal-goto-defun|pascal-hide-other-defuns|pascal-indent-case|pascal-indent-command|pascal-indent-comment|pascal-indent-declaration|pascal-indent-level|pascal-indent-line|pascal-indent-paramlist|pascal-insert-block|pascal-keyword-completion|pascal-mark-defun|pascal-mode|pascal-outline-change|pascal-outline-goto-defun|pascal-outline-mode|pascal-outline-next-defun|pascal-outline-prev-defun|pascal-outline|pascal-set-auto-comments|pascal-show-all|pascal-show-completions|pascal-star-comment|pascal-string-diff|pascal-type-completion|pascal-uncomment-area|pascal-upcase-keywords|pascal-var-completion|pascal-within-string|password-cache-add|password-cache-remove|password-in-cache-p|password-read-and-add|password-read-from-cache|password-read|password-reset|pcase--and|pcase--app-subst-match|pcase--app-subst-rest|pcase--eval|pcase--expand|pcase--fgrep|pcase--flip|pcase--funcall|pcase--if|pcase--let\\\\\\\\*|pcase--macroexpand|pcase--mark-used|pcase--match|pcase--mutually-exclusive-p|pcase--self-quoting-p|pcase--small-branch-p|pcase--split-equal|pcase--split-match|pcase--split-member|pcase--split-pred|pcase--split-rest|pcase--trivial-upat-p|pcase--u|pcase--u1|pcase-codegen|pcase-defmacro|pcase-dolist|pcase-exhaustive|pcase-let\\\\\\\\*|pcase-let|pcomplete\\\\\\\\/ack-grep|pcomplete\\\\\\\\/ack|pcomplete\\\\\\\\/ag|pcomplete\\\\\\\\/bzip2|pcomplete\\\\\\\\/cd|pcomplete\\\\\\\\/chgrp|pcomplete\\\\\\\\/chown|pcomplete\\\\\\\\/cvs|pcomplete\\\\\\\\/erc-mode\\\\\\\\/CLEARTOPIC|pcomplete\\\\\\\\/erc-mode\\\\\\\\/CTCP|pcomplete\\\\\\\\/erc-mode\\\\\\\\/DCC|pcomplete\\\\\\\\/erc-mode\\\\\\\\/DEOP|pcomplete\\\\\\\\/erc-mode\\\\\\\\/DESCRIBE|pcomplete\\\\\\\\/erc-mode\\\\\\\\/IDLE|pcomplete\\\\\\\\/erc-mode\\\\\\\\/KICK|pcomplete\\\\\\\\/erc-mode\\\\\\\\/LEAVE|pcomplete\\\\\\\\/erc-mode\\\\\\\\/LOAD|pcomplete\\\\\\\\/erc-mode\\\\\\\\/ME|pcomplete\\\\\\\\/erc-mode\\\\\\\\/MODE|pcomplete\\\\\\\\/erc-mode\\\\\\\\/MSG|pcomplete\\\\\\\\/erc-mode\\\\\\\\/NAMES|pcomplete\\\\\\\\/erc-mode\\\\\\\\/NOTICE|pcomplete\\\\\\\\/erc-mode\\\\\\\\/NOTIFY|pcomplete\\\\\\\\/erc-mode\\\\\\\\/OP|pcomplete\\\\\\\\/erc-mode\\\\\\\\/PART|pcomplete\\\\\\\\/erc-mode\\\\\\\\/QUERY|pcomplete\\\\\\\\/erc-mode\\\\\\\\/SAY|pcomplete\\\\\\\\/erc-mode\\\\\\\\/SOUND|pcomplete\\\\\\\\/erc-mode\\\\\\\\/TOPIC|pcomplete\\\\\\\\/erc-mode\\\\\\\\/UNIGNORE|pcomplete\\\\\\\\/erc-mode\\\\\\\\/WHOIS|pcomplete\\\\\\\\/erc-mode\\\\\\\\/complete-command|pcomplete\\\\\\\\/eshell-mode\\\\\\\\/eshell-debug|pcomplete\\\\\\\\/eshell-mode\\\\\\\\/export|pcomplete\\\\\\\\/eshell-mode\\\\\\\\/setq|pcomplete\\\\\\\\/eshell-mode\\\\\\\\/unset|pcomplete\\\\\\\\/gdb|pcomplete\\\\\\\\/gzip|pcomplete\\\\\\\\/kill|pcomplete\\\\\\\\/make|pcomplete\\\\\\\\/mount|pcomplete\\\\\\\\/org-mode\\\\\\\\/block-option\\\\\\\\/clocktable|pcomplete\\\\\\\\/org-mode\\\\\\\\/block-option\\\\\\\\/src|pcomplete\\\\\\\\/org-mode\\\\\\\\/drawer|pcomplete\\\\\\\\/org-mode\\\\\\\\/file-option\\\\\\\\/author|pcomplete\\\\\\\\/org-mode\\\\\\\\/file-option\\\\\\\\/bind|pcomplete\\\\\\\\/org-mode\\\\\\\\/file-option\\\\\\\\/date|pcomplete\\\\\\\\/org-mode\\\\\\\\/file-option\\\\\\\\/email|pcomplete\\\\\\\\/org-mode\\\\\\\\/file-option\\\\\\\\/exclude_tags|pcomplete\\\\\\\\/org-mode\\\\\\\\/file-option\\\\\\\\/filetags|pcomplete\\\\\\\\/org-mode\\\\\\\\/file-option\\\\\\\\/infojs_opt|pcomplete\\\\\\\\/org-mode\\\\\\\\/file-option\\\\\\\\/language|pcomplete\\\\\\\\/org-mode\\\\\\\\/file-option\\\\\\\\/options|pcomplete\\\\\\\\/org-mode\\\\\\\\/file-option\\\\\\\\/priorities|pcomplete\\\\\\\\/org-mode\\\\\\\\/file-option\\\\\\\\/select_tags|pcomplete\\\\\\\\/org-mode\\\\\\\\/file-option\\\\\\\\/startup|pcomplete\\\\\\\\/org-mode\\\\\\\\/file-option\\\\\\\\/tags|pcomplete\\\\\\\\/org-mode\\\\\\\\/file-option\\\\\\\\/title|pcomplete\\\\\\\\/org-mode\\\\\\\\/file-option|pcomplete\\\\\\\\/org-mode\\\\\\\\/link|pcomplete\\\\\\\\/org-mode\\\\\\\\/prop|pcomplete\\\\\\\\/org-mode\\\\\\\\/searchhead|pcomplete\\\\\\\\/org-mode\\\\\\\\/tag|pcomplete\\\\\\\\/org-mode\\\\\\\\/tex|pcomplete\\\\\\\\/org-mode\\\\\\\\/todo|pcomplete\\\\\\\\/pushd|pcomplete\\\\\\\\/rm|pcomplete\\\\\\\\/rmdir|pcomplete\\\\\\\\/rpm|pcomplete\\\\\\\\/scp|pcomplete\\\\\\\\/ssh|pcomplete\\\\\\\\/tar|pcomplete\\\\\\\\/time|pcomplete\\\\\\\\/tlmgr|pcomplete\\\\\\\\/umount|pcomplete\\\\\\\\/which|pcomplete\\\\\\\\/xargs|pcomplete--common-suffix|pcomplete--entries|pcomplete--help|pcomplete--here|pcomplete--test|pcomplete-actual-arg|pcomplete-all-entries|pcomplete-arg|pcomplete-begin|pcomplete-comint-setup|pcomplete-command-name|pcomplete-completions-at-point|pcomplete-completions|pcomplete-continue|pcomplete-dirs-or-entries|pcomplete-dirs|pcomplete-do-complete|pcomplete-entries|pcomplete-erc-all-nicks|pcomplete-erc-channels|pcomplete-erc-command-name|pcomplete-erc-commands|pcomplete-erc-nicks|pcomplete-erc-not-ops|pcomplete-erc-ops|pcomplete-erc-parse-arguments|pcomplete-erc-setup|pcomplete-event-matches-key-specifier-p|pcomplete-executables|pcomplete-expand-and-complete|pcomplete-expand|pcomplete-find-completion-function|pcomplete-help|pcomplete-here\\\\\\\\*|pcomplete-here|pcomplete-insert-entry|pcomplete-list|pcomplete-match-beginning|pcomplete-match-end|pcomplete-match-string|pcomplete-match|pcomplete-next-arg|pcomplete-opt|pcomplete-parse-arguments|pcomplete-parse-buffer-arguments|pcomplete-parse-comint-arguments|pcomplete-process-result|pcomplete-quote-argument|pcomplete-read-event|pcomplete-restore-windows|pcomplete-reverse|pcomplete-shell-setup|pcomplete-show-completions|pcomplete-std-complete|pcomplete-stub|pcomplete-test|pcomplete-uniqify-list|pcomplete-unquote-argument|pcomplete|pdb|pending-delete-mode|perl-backward-to-noncomment|perl-backward-to-start-of-continued-exp|perl-beginning-of-function|perl-calculate-indent|perl-comment-indent|perl-continuation-line-p|perl-current-defun-name|perl-electric-noindent-p|perl-electric-terminator|perl-end-of-function|perl-font-lock-syntactic-face-function|perl-hanging-paren-p|perl-indent-command|perl-indent-exp|perl-indent-line|perl-indent-new-calculate|perl-mark-function|perl-mode|perl-outline-level|perl-quote-syntax-table|perl-syntax-propertize-function|perl-syntax-propertize-special-constructs|perldb|picture-backward-clear-column|picture-backward-column|picture-beginning-of-line|picture-clear-column|picture-clear-line|picture-clear-rectangle-to-register|picture-clear-rectangle|picture-current-line|picture-delete-char|picture-draw-rectangle|picture-duplicate-line|picture-end-of-line|picture-forward-column|picture-insert-rectangle|picture-insert|picture-mode-exit|picture-mode|picture-motion-reverse|picture-motion|picture-mouse-set-point|picture-move-down|picture-move-up|picture-move|picture-movement-down|picture-movement-left|picture-movement-ne|picture-movement-nw|picture-movement-right|picture-movement-se|picture-movement-sw|picture-movement-up|picture-newline|picture-open-line|picture-replace-match|picture-self-insert|picture-set-motion|picture-set-tab-stops|picture-snarf-rectangle|picture-tab-search|picture-tab|picture-update-desired-column|picture-yank-at-click|picture-yank-rectangle-from-register|picture-yank-rectangle|pike-font-lock-keywords-2|pike-font-lock-keywords-3|pike-font-lock-keywords|pike-mode|ping|plain-TeX-mode|plain-tex-mode|play-sound-internal|plstore-delete|plstore-find|plstore-get-file|plstore-mode|plstore-open|plstore-put|plstore-save|plusp|po-find-charset|po-find-file-coding-system-guts|po-find-file-coding-system|point-at-bol|point-at-eol|point-to-register|pong-display-options|pong-init-buffer|pong-init|pong-move-down|pong-move-left|pong-move-right|pong-move-up|pong-pause|pong-quit|pong-resume|pong-update-bat|pong-update-game|pong-update-score|pong|pop-global-mark|pop-tag-mark|pop-to-buffer-same-window|pop-to-mark-command|pop3-movemail|popup-menu-normalize-position|popup-menu|position-if-not|position-if|position|posn-set-point|post-read-decode-hz|pp-buffer|pp-display-expression|pp-eval-expression|pp-eval-last-sexp|pp-last-sexp|pp-macroexpand-expression|pp-macroexpand-last-sexp|pp-to-string|pr-alist-custom-set|pr-article-date|pr-auto-mode-p|pr-call-process|pr-choice-alist|pr-command|pr-complete-alist|pr-create-interface|pr-customize|pr-delete-file-if-exists|pr-delete-file|pr-despool-preview|pr-despool-print|pr-despool-ps-print|pr-despool-using-ghostscript|pr-do-update-menus|pr-dosify-file-name|pr-eval-alist|pr-eval-local-alist|pr-eval-setting-alist|pr-even-or-odd-pages|pr-expand-file-name|pr-file-list|pr-find-buffer-visiting|pr-find-command|pr-get-symbol|pr-global-menubar|pr-gnus-lpr|pr-gnus-print|pr-help|pr-i-directory|pr-i-ps-send|pr-insert-button|pr-insert-checkbox|pr-insert-italic|pr-insert-menu|pr-insert-radio-button|pr-insert-section-1|pr-insert-section-2|pr-insert-section-3|pr-insert-section-4|pr-insert-section-5|pr-insert-section-6|pr-insert-section-7|pr-insert-toggle|pr-interactive-dir-args|pr-interactive-dir|pr-interactive-n-up-file|pr-interactive-n-up-inout|pr-interactive-n-up|pr-interactive-ps-dir-args|pr-interactive-regexp|pr-interface-directory|pr-interface-help|pr-interface-infile|pr-interface-outfile|pr-interface-preview|pr-interface-printify|pr-interface-ps-print|pr-interface-ps|pr-interface-quit|pr-interface-save|pr-interface-txt-print|pr-interface|pr-keep-region-active|pr-kill-help|pr-kill-local-variable|pr-local-variable|pr-lpr-message-from-summary|pr-menu-alist|pr-menu-bind|pr-menu-char-height|pr-menu-char-width|pr-menu-create|pr-menu-get-item|pr-menu-index|pr-menu-lock|pr-menu-lookup|pr-menu-position|pr-menu-set-item-name|pr-menu-set-ps-title|pr-menu-set-txt-title|pr-menu-set-utility-title|pr-mh-current-message|pr-mh-lpr-1|pr-mh-lpr-2|pr-mh-print-1|pr-mh-print-2|pr-mode-alist-p|pr-mode-lpr|pr-mode-print|pr-path-command|pr-printify-buffer|pr-printify-directory|pr-printify-region|pr-prompt-gs|pr-prompt-region|pr-prompt|pr-ps-buffer-preview|pr-ps-buffer-print|pr-ps-buffer-ps-print|pr-ps-buffer-using-ghostscript|pr-ps-directory-preview|pr-ps-directory-print|pr-ps-directory-ps-print|pr-ps-directory-using-ghostscript|pr-ps-fast-fire|pr-ps-file-list|pr-ps-file-preview|pr-ps-file-print|pr-ps-file-ps-print|pr-ps-file-up-preview|pr-ps-file-up-ps-print|pr-ps-file-using-ghostscript|pr-ps-file|pr-ps-infile-preprint|pr-ps-message-from-summary|pr-ps-mode-preview|pr-ps-mode-print|pr-ps-mode-ps-print|pr-ps-mode-using-ghostscript|pr-ps-mode|pr-ps-name-custom-set|pr-ps-name|pr-ps-outfile-preprint|pr-ps-preview|pr-ps-print|pr-ps-region-preview|pr-ps-region-print|pr-ps-region-ps-print|pr-ps-region-using-ghostscript|pr-ps-set-printer|pr-ps-set-utility|pr-ps-using-ghostscript|pr-ps-utility-args|pr-ps-utility-custom-set|pr-ps-utility-process|pr-ps-utility|pr-read-string|pr-region-active-p|pr-region-active-string|pr-region-active-symbol|pr-remove-nil-from-list|pr-rmail-lpr|pr-rmail-print|pr-save-file-modes|pr-set-dir-args|pr-set-keymap-name|pr-set-keymap-parents|pr-set-n-up-and-filename|pr-set-outfilename|pr-set-ps-dir-args|pr-setup|pr-show-lpr-setup|pr-show-pr-setup|pr-show-ps-setup|pr-show-setup|pr-standard-file-name|pr-switches-string|pr-switches|pr-text2ps|pr-toggle-duplex-menu|pr-toggle-duplex|pr-toggle-faces-menu|pr-toggle-faces|pr-toggle-file-duplex-menu|pr-toggle-file-duplex)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:pr-toggle-file-landscape-menu|pr-toggle-file-landscape|pr-toggle-file-tumble-menu|pr-toggle-file-tumble|pr-toggle-ghostscript-menu|pr-toggle-ghostscript|pr-toggle-header-frame-menu|pr-toggle-header-frame|pr-toggle-header-menu|pr-toggle-header|pr-toggle-landscape-menu|pr-toggle-landscape|pr-toggle-line-menu|pr-toggle-line|pr-toggle-lock-menu|pr-toggle-lock|pr-toggle-mode-menu|pr-toggle-mode|pr-toggle-region-menu|pr-toggle-region|pr-toggle-spool-menu|pr-toggle-spool|pr-toggle-tumble-menu|pr-toggle-tumble|pr-toggle-upside-down-menu|pr-toggle-upside-down|pr-toggle-zebra-menu|pr-toggle-zebra|pr-toggle|pr-txt-buffer|pr-txt-directory|pr-txt-fast-fire|pr-txt-mode|pr-txt-name-custom-set|pr-txt-name|pr-txt-print|pr-txt-region|pr-txt-set-printer|pr-unixify-file-name|pr-update-checkbox|pr-update-menus|pr-update-mode-line|pr-update-radio-button|pr-update-var|pr-using-ghostscript-p|pr-visible-p|pr-vm-lpr|pr-vm-print|pr-widget-field-action|pre-write-encode-hz|preceding-sexp|prefer-coding-system|prepare-abbrev-list-buffer|prepend-to-buffer|prepend-to-register|prettify-symbols--compose-symbol|prettify-symbols--make-keywords|prettify-symbols-mode-set-explicitly|prettify-symbols-mode|previous-buffer|previous-completion|previous-error-no-select|previous-error|previous-ifdef|previous-line-or-history-element|previous-line|previous-logical-line|previous-multiframe-window|previous-page|prin1-char|princ-list|print-buffer|print-help-return-message|print-region-1|print-region-new-buffer|print-region|printify-region|proced-<|proced-auto-update-timer|proced-children-alist|proced-children-pids|proced-do-mark-all|proced-do-mark|proced-filter-children|proced-filter-interactive|proced-filter-parents|proced-filter|proced-format-args|proced-format-interactive|proced-format-start|proced-format-time|proced-format-tree|proced-format-ttname|proced-format|proced-header-line|proced-help|proced-insert-mark|proced-log-summary|proced-log|proced-mark-all|proced-mark-children|proced-mark-parents|proced-mark-process-alist|proced-mark|proced-marked-processes|proced-marker-regexp|proced-menu|proced-mode|proced-move-to-goal-column|proced-omit-process|proced-omit-processes|proced-pid-at-point|proced-process-attributes|proced-process-tree-internal|proced-process-tree|proced-refine|proced-renice|proced-revert|proced-send-signal|proced-sort-header|proced-sort-interactive|proced-sort-p|proced-sort-pcpu|proced-sort-pid|proced-sort-pmem|proced-sort-start|proced-sort-time|proced-sort-user|proced-sort|proced-string-lessp|proced-success-message|proced-time-lessp|proced-toggle-auto-update|proced-toggle-marks|proced-toggle-tree|proced-tree-insert|proced-tree|proced-undo|proced-unmark-all|proced-unmark-backward|proced-unmark|proced-update|proced-why|proced-with-processes-buffer|proced-xor|proced|process-filter-multibyte-p|process-inherit-coding-system-flag|process-kill-without-query|process-menu-delete-process|process-menu-mode|process-menu-visit-buffer|proclaim|produce-allout-mode-menubar-entries|profiler-calltree-build-1|profiler-calltree-build-unified|profiler-calltree-build|profiler-calltree-children--cmacro|profiler-calltree-children|profiler-calltree-compute-percentages|profiler-calltree-count--cmacro|profiler-calltree-count-percent--cmacro|profiler-calltree-count-percent|profiler-calltree-count|profiler-calltree-count<|profiler-calltree-count>|profiler-calltree-depth|profiler-calltree-entry--cmacro|profiler-calltree-entry|profiler-calltree-find|profiler-calltree-leaf-p|profiler-calltree-p--cmacro|profiler-calltree-p|profiler-calltree-parent--cmacro|profiler-calltree-parent|profiler-calltree-sort|profiler-calltree-walk|profiler-compare-logs|profiler-compare-profiles|profiler-cpu-log|profiler-cpu-profile|profiler-cpu-running-p|profiler-cpu-start|profiler-cpu-stop|profiler-ensure-string|profiler-find-profile-other-frame|profiler-find-profile-other-window|profiler-find-profile|profiler-fixup-backtrace|profiler-fixup-entry|profiler-fixup-log|profiler-fixup-profile|profiler-format-entry|profiler-format-number|profiler-format-percent|profiler-format|profiler-make-calltree--cmacro|profiler-make-calltree|profiler-make-profile--cmacro|profiler-make-profile|profiler-memory-log|profiler-memory-profile|profiler-memory-running-p|profiler-memory-start|profiler-memory-stop|profiler-profile-diff-p--cmacro|profiler-profile-diff-p|profiler-profile-log--cmacro|profiler-profile-log|profiler-profile-tag--cmacro|profiler-profile-tag|profiler-profile-timestamp--cmacro|profiler-profile-timestamp|profiler-profile-type--cmacro|profiler-profile-type|profiler-profile-version--cmacro|profiler-profile-version|profiler-read-profile|profiler-report-ascending-sort|profiler-report-calltree-at-point|profiler-report-collapse-entry|profiler-report-compare-profile|profiler-report-cpu|profiler-report-descending-sort|profiler-report-describe-entry|profiler-report-expand-entry|profiler-report-find-entry|profiler-report-header-line-format|profiler-report-insert-calltree-children|profiler-report-insert-calltree|profiler-report-line-format|profiler-report-make-buffer-name|profiler-report-make-entry-part|profiler-report-make-name-part|profiler-report-memory|profiler-report-menu|profiler-report-mode|profiler-report-move-to-entry|profiler-report-next-entry|profiler-report-previous-entry|profiler-report-profile-other-frame|profiler-report-profile-other-window|profiler-report-profile|profiler-report-render-calltree-1|profiler-report-render-calltree|profiler-report-render-reversed-calltree|profiler-report-rerender-calltree|profiler-report-setup-buffer-1|profiler-report-setup-buffer|profiler-report-toggle-entry|profiler-report-write-profile|profiler-report|profiler-reset|profiler-running-p|profiler-start|profiler-stop|profiler-write-profile|prog-indent-sexp|progress-reporter-do-update|progv|project-add-file|project-compile-project|project-compile-target|project-debug-target|project-delete-target|project-dist-files|project-edit-file-target|project-interactive-select-target|project-make-dist|project-new-target-custom|project-new-target|project-remove-file|project-rescan|project-run-target|prolog-Info-follow-nearest-node|prolog-atleast-version|prolog-atom-under-point|prolog-beginning-of-clause|prolog-beginning-of-predicate|prolog-bsts|prolog-buffer-module|prolog-build-info-alist|prolog-build-prolog-command|prolog-clause-end|prolog-clause-info|prolog-clause-start|prolog-comment-limits|prolog-compile-buffer|prolog-compile-file|prolog-compile-predicate|prolog-compile-region|prolog-compile-string|prolog-consult-buffer|prolog-consult-compile-buffer|prolog-consult-compile-file|prolog-consult-compile-filter|prolog-consult-compile-predicate|prolog-consult-compile-region|prolog-consult-compile|prolog-consult-file|prolog-consult-predicate|prolog-consult-region|prolog-consult-string|prolog-debug-off|prolog-debug-on|prolog-disable-sicstus-sd|prolog-do-auto-fill|prolog-edit-menu-insert-move|prolog-edit-menu-runtime|prolog-electric--colon|prolog-electric--dash|prolog-electric--dot|prolog-electric--if-then-else|prolog-electric--underscore|prolog-enable-sicstus-sd|prolog-end-of-clause|prolog-end-of-predicate|prolog-ensure-process|prolog-face-name-p|prolog-fill-paragraph|prolog-find-documentation|prolog-find-term|prolog-find-unmatched-paren|prolog-find-value-by-system|prolog-font-lock-keywords|prolog-font-lock-object-matcher|prolog-get-predspec|prolog-goto-predicate-info|prolog-goto-prolog-process-buffer|prolog-guess-fill-prefix|prolog-help-apropos|prolog-help-info|prolog-help-on-predicate|prolog-help-online|prolog-in-object|prolog-indent-buffer|prolog-indent-predicate|prolog-inferior-buffer|prolog-inferior-guess-flavor|prolog-inferior-menu-all|prolog-inferior-menu|prolog-inferior-mode|prolog-inferior-self-insert-command|prolog-input-filter|prolog-insert-module-modeline|prolog-insert-next-clause|prolog-insert-predicate-template|prolog-insert-predspec|prolog-mark-clause|prolog-mark-predicate|prolog-menu-help|prolog-menu|prolog-mode-keybindings-common|prolog-mode-keybindings-edit|prolog-mode-keybindings-inferior|prolog-mode-variables|prolog-mode-version|prolog-mode|prolog-old-process-buffer|prolog-old-process-file|prolog-old-process-predicate|prolog-old-process-region|prolog-paren-balance|prolog-parse-sicstus-compilation-errors|prolog-post-self-insert|prolog-pred-end|prolog-pred-start|prolog-process-insert-string|prolog-program-name|prolog-program-switches|prolog-prompt-regexp|prolog-read-predicate|prolog-replace-in-string|prolog-smie-backward-token|prolog-smie-forward-token|prolog-smie-rules|prolog-temporary-file|prolog-toggle-sicstus-sd|prolog-trace-off|prolog-trace-on|prolog-uncomment-region|prolog-variables-to-anonymous|prolog-view-predspec|prolog-zip-off|prolog-zip-on|prompt-for-change-log-name|propertized-buffer-identification|prune-directory-list|ps-alist-position|ps-avg-char-width|ps-background-image|ps-background-pages|ps-background-text|ps-background|ps-basic-plot-str|ps-basic-plot-string|ps-basic-plot-whitespace|ps-begin-file|ps-begin-job|ps-begin-page|ps-boolean-capitalized|ps-boolean-constant|ps-build-reference-face-lists|ps-color-device|ps-color-scale|ps-color-values|ps-comment-string|ps-continue-line|ps-control-character|ps-count-lines-preprint|ps-count-lines|ps-del|ps-despool|ps-do-despool|ps-end-job|ps-end-page|ps-end-sheet|ps-extend-face-list|ps-extend-face|ps-extension-bit|ps-face-attribute-list|ps-face-attributes|ps-face-background-color-p|ps-face-background-name|ps-face-background|ps-face-bold-p|ps-face-box-p|ps-face-color-p|ps-face-extract-color|ps-face-foreground-color-p|ps-face-foreground-name|ps-face-italic-p|ps-face-overline-p|ps-face-strikeout-p|ps-face-underlined-p|ps-find-wrappoint|ps-float-format|ps-flush-output|ps-font-alist|ps-font-lock-face-attributes|ps-font-number|ps-font|ps-fonts|ps-format-color|ps-frame-parameter|ps-generate-header-line|ps-generate-header|ps-generate-postscript-with-faces|ps-generate-postscript-with-faces1|ps-generate-postscript|ps-generate|ps-get-boundingbox|ps-get-buffer-name|ps-get-font-size|ps-get-page-dimensions|ps-get-size|ps-get|ps-header-dirpart|ps-header-page|ps-header-sheet|ps-init-output-queue|ps-insert-file|ps-insert-string|ps-kill-emacs-check|ps-line-height|ps-line-lengths-internal|ps-line-lengths|ps-lookup|ps-map-face|ps-mark-active-p|ps-message-log-max|ps-mode--syntax-propertize-special|ps-mode-RE|ps-mode-backward-delete-char|ps-mode-center|ps-mode-comment-out-region|ps-mode-epsf-rich|ps-mode-epsf-sparse|ps-mode-heapsort|ps-mode-latin-extended|ps-mode-main|ps-mode-octal-buffer|ps-mode-octal-region|ps-mode-other-newline|ps-mode-print-buffer|ps-mode-print-region|ps-mode-right|ps-mode-show-version|ps-mode-smie-rules|ps-mode-submit-bug-report|ps-mode-syntax-propertize|ps-mode-target-column|ps-mode-uncomment-region|ps-mode|ps-mule-begin-job|ps-mule-end-job|ps-mule-initialize|ps-n-up-columns|ps-n-up-end|ps-n-up-filling|ps-n-up-landscape|ps-n-up-lines|ps-n-up-missing|ps-n-up-printing|ps-n-up-repeat|ps-n-up-xcolumn|ps-n-up-xline|ps-n-up-xstart|ps-n-up-ycolumn|ps-n-up-yline|ps-n-up-ystart|ps-nb-pages-buffer|ps-nb-pages-region|ps-nb-pages|ps-next-line|ps-next-page|ps-output-boolean|ps-output-frame-properties|ps-output-prologue|ps-output-string-prim|ps-output-string|ps-output|ps-page-dimensions-get-height|ps-page-dimensions-get-media|ps-page-dimensions-get-width|ps-page-number|ps-plot-region|ps-plot-string|ps-plot-with-face|ps-plot|ps-print-buffer-with-faces|ps-print-buffer|ps-print-customize|ps-print-ensure-fontified|ps-print-page-p|ps-print-preprint-region|ps-print-preprint|ps-print-quote|ps-print-region-with-faces|ps-print-region|ps-print-sheet-p|ps-print-with-faces|ps-print-without-faces|ps-printing-region|ps-prologue-file|ps-put|ps-remove-duplicates|ps-restore-selected-pages|ps-rgb-color|ps-run-boundingbox|ps-run-buffer|ps-run-cleanup|ps-run-clear|ps-run-goto-error|ps-run-kill|ps-run-make-tmp-filename|ps-run-mode|ps-run-mouse-goto-error|ps-run-quit|ps-run-region|ps-run-running|ps-run-send-string|ps-run-start|ps-screen-to-bit-face|ps-select-font|ps-selected-pages|ps-set-bg|ps-set-color|ps-set-face-attribute|ps-set-face-bold|ps-set-face-italic|ps-set-face-underline|ps-set-font|ps-setup|ps-size-scale|ps-skip-newline|ps-space-width|ps-spool-buffer-with-faces|ps-spool-buffer|ps-spool-region-with-faces|ps-spool-region|ps-spool-with-faces|ps-spool-without-faces|ps-time-stamp-hh:mm:ss|ps-time-stamp-iso8601)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:ps-time-stamp-locale-default|ps-time-stamp-mon-dd-yyyy|ps-time-stamp-yyyy-mm-dd|ps-title-line-height|ps-value-string|ps-value|psetf|psetq|push-mark-command|pushnew|put-unicode-property-internal|pwd|python-check|python-comint-output-filter-function|python-comint-postoutput-scroll-to-bottom|python-completion-at-point|python-completion-complete-at-point|python-define-auxiliary-skeleton|python-docstring-at-p|python-eldoc--get-doc-at-point|python-eldoc-at-point|python-eldoc-function|python-electric-pair-string-delimiter|python-ffap-module-path|python-fill-comment|python-fill-decorator|python-fill-paragraph|python-fill-paren|python-fill-string|python-font-lock-syntactic-face-function|python-imenu--build-tree|python-imenu--put-parent|python-imenu-create-flat-index|python-imenu-create-index|python-imenu-format-item-label|python-imenu-format-parent-item-jump-label|python-imenu-format-parent-item-label|python-indent-calculate-indentation|python-indent-calculate-levels|python-indent-context|python-indent-dedent-line-backspace|python-indent-dedent-line|python-indent-guess-indent-offset|python-indent-line-function|python-indent-line|python-indent-post-self-insert-function|python-indent-region|python-indent-shift-left|python-indent-shift-right|python-indent-toggle-levels|python-info-assignment-continuation-line-p|python-info-beginning-of-backslash|python-info-beginning-of-block-p|python-info-beginning-of-statement-p|python-info-block-continuation-line-p|python-info-closing-block-message|python-info-closing-block|python-info-continuation-line-p|python-info-current-defun|python-info-current-line-comment-p|python-info-current-line-empty-p|python-info-current-symbol|python-info-dedenter-opening-block-message|python-info-dedenter-opening-block-position|python-info-dedenter-opening-block-positions|python-info-dedenter-statement-p|python-info-encoding-from-cookie|python-info-encoding|python-info-end-of-block-p|python-info-end-of-statement-p|python-info-line-ends-backslash-p|python-info-looking-at-beginning-of-defun|python-info-ppss-comment-or-string-p|python-info-ppss-context-type|python-info-ppss-context|python-info-statement-ends-block-p|python-info-statement-starts-block-p|python-menu|python-mode|python-nav--beginning-of-defun|python-nav--forward-defun|python-nav--forward-sexp|python-nav--lisp-forward-sexp-safe|python-nav--lisp-forward-sexp|python-nav--syntactically|python-nav--up-list|python-nav-backward-block|python-nav-backward-defun|python-nav-backward-sexp-safe|python-nav-backward-sexp|python-nav-backward-statement|python-nav-backward-up-list|python-nav-beginning-of-block|python-nav-beginning-of-defun|python-nav-beginning-of-statement|python-nav-end-of-block|python-nav-end-of-defun|python-nav-end-of-statement|python-nav-forward-block|python-nav-forward-defun|python-nav-forward-sexp-safe|python-nav-forward-sexp|python-nav-forward-statement|python-nav-if-name-main|python-nav-up-list|python-pdbtrack-comint-output-filter-function|python-pdbtrack-set-tracked-buffer|python-proc|python-send-receive|python-send-string|python-shell--save-temp-file|python-shell-accept-process-output|python-shell-buffer-substring|python-shell-calculate-command|python-shell-calculate-exec-path|python-shell-calculate-process-environment|python-shell-calculate-pythonpath|python-shell-comint-end-of-output-p|python-shell-completion-at-point|python-shell-completion-complete-at-point|python-shell-completion-complete-or-indent|python-shell-completion-get-completions|python-shell-font-lock-cleanup-buffer|python-shell-font-lock-comint-output-filter-function|python-shell-font-lock-get-or-create-buffer|python-shell-font-lock-kill-buffer|python-shell-font-lock-post-command-hook|python-shell-font-lock-toggle|python-shell-font-lock-turn-off|python-shell-font-lock-turn-on|python-shell-font-lock-with-font-lock-buffer|python-shell-get-buffer|python-shell-get-or-create-process|python-shell-get-process-name|python-shell-get-process|python-shell-internal-get-or-create-process|python-shell-internal-get-process-name|python-shell-internal-send-string|python-shell-make-comint|python-shell-output-filter|python-shell-package-enable|python-shell-parse-command|python-shell-prompt-detect|python-shell-prompt-set-calculated-regexps|python-shell-prompt-validate-regexps|python-shell-send-buffer|python-shell-send-defun|python-shell-send-file|python-shell-send-region|python-shell-send-setup-code|python-shell-send-string-no-output|python-shell-send-string|python-shell-switch-to-shell|python-shell-with-shell-buffer|python-skeleton--else|python-skeleton--except|python-skeleton--finally|python-skeleton-add-menu-items|python-skeleton-class|python-skeleton-def|python-skeleton-define|python-skeleton-for|python-skeleton-if|python-skeleton-import|python-skeleton-try|python-skeleton-while|python-syntax-comment-or-string-p|python-syntax-context-type|python-syntax-context|python-syntax-count-quotes|python-syntax-stringify|python-util-clone-local-variables|python-util-comint-last-prompt|python-util-forward-comment|python-util-goto-line|python-util-list-directories|python-util-list-files|python-util-list-packages|python-util-popn|python-util-strip-string|python-util-text-properties-replace-name|python-util-valid-regexp-p|quail-define-package|quail-define-rules|quail-defrule-internal|quail-defrule|quail-install-decode-map|quail-install-map|quail-set-keyboard-layout|quail-show-keyboard-layout|quail-title|quail-update-leim-list-file|quail-use-package|query-dig|query-font|query-fontset|query-replace-compile-replacement|query-replace-descr|query-replace-read-args|query-replace-read-from|query-replace-read-to|query-replace-regexp-eval|query-replace-regexp|query-replace|quick-calc|quickurl-add-url|quickurl-ask|quickurl-browse-url-ask|quickurl-browse-url|quickurl-edit-urls|quickurl-find-url|quickurl-grab-url|quickurl-insert|quickurl-list-add-url|quickurl-list-insert-lookup|quickurl-list-insert-naked-url|quickurl-list-insert-url|quickurl-list-insert-with-desc|quickurl-list-insert-with-lookup|quickurl-list-insert|quickurl-list-make-inserter|quickurl-list-mode|quickurl-list-mouse-select|quickurl-list-populate-buffer|quickurl-list-quit|quickurl-list|quickurl-load-urls|quickurl-make-url|quickurl-read|quickurl-save-urls|quickurl-url-comment|quickurl-url-commented-p|quickurl-url-description|quickurl-url-keyword|quickurl-url-url|quickurl|quit-windows-on|quoted-insert|quoted-printable-decode-region|quoted-printable-decode-string|quoted-printable-encode-region|r2b-barf-output|r2b-capitalize-title-region|r2b-capitalize-title|r2b-clear-variables|r2b-convert-buffer|r2b-convert-month|r2b-convert-record|r2b-get-field|r2b-help|r2b-isa-proceedings|r2b-isa-university|r2b-match|r2b-moveq|r2b-put-field|r2b-require|r2b-reset|r2b-set-match|r2b-snarf-input|r2b-trace|r2b-warning|radians-to-degrees|raise-sexp|random\\\\\\\\*|random-state-p|rassoc\\\\\\\\*|rassoc-if-not|rassoc-if|rcirc--connection-open-p|rcirc-abbreviate|rcirc-activity-string|rcirc-add-face|rcirc-add-or-remove|rcirc-any-buffer|rcirc-authenticate|rcirc-browse-url|rcirc-buffer-nick|rcirc-buffer-process|rcirc-change-major-mode-hook|rcirc-channel-nicks|rcirc-channel-p|rcirc-check-auth-status|rcirc-clean-up-buffer|rcirc-clear-activity|rcirc-clear-unread|rcirc-cmd-bright|rcirc-cmd-ctcp|rcirc-cmd-dim|rcirc-cmd-ignore|rcirc-cmd-invite|rcirc-cmd-join|rcirc-cmd-keyword|rcirc-cmd-kick|rcirc-cmd-list|rcirc-cmd-me|rcirc-cmd-mode|rcirc-cmd-msg|rcirc-cmd-names|rcirc-cmd-nick|rcirc-cmd-oper|rcirc-cmd-part|rcirc-cmd-query|rcirc-cmd-quit|rcirc-cmd-quote|rcirc-cmd-reconnect|rcirc-cmd-topic|rcirc-cmd-whois|rcirc-complete|rcirc-completion-at-point|rcirc-condition-filter|rcirc-connect|rcirc-ctcp-sender-PING|rcirc-debug|rcirc-delete-process|rcirc-disconnect-buffer|rcirc-edit-multiline|rcirc-elapsed-lines|rcirc-facify|rcirc-fill-paragraph|rcirc-filter|rcirc-float-time|rcirc-format-response-string|rcirc-generate-log-filename|rcirc-generate-new-buffer-name|rcirc-get-buffer-create|rcirc-get-buffer|rcirc-get-temp-buffer-create|rcirc-handler-001|rcirc-handler-301|rcirc-handler-317|rcirc-handler-332|rcirc-handler-333|rcirc-handler-353|rcirc-handler-366|rcirc-handler-433|rcirc-handler-477|rcirc-handler-CTCP-response|rcirc-handler-CTCP|rcirc-handler-ERROR|rcirc-handler-INVITE|rcirc-handler-JOIN|rcirc-handler-KICK|rcirc-handler-MODE|rcirc-handler-NICK|rcirc-handler-NOTICE|rcirc-handler-PART-or-KICK|rcirc-handler-PART|rcirc-handler-PING|rcirc-handler-PONG|rcirc-handler-PRIVMSG|rcirc-handler-QUIT|rcirc-handler-TOPIC|rcirc-handler-WALLOPS|rcirc-handler-ctcp-ACTION|rcirc-handler-ctcp-KEEPALIVE|rcirc-handler-ctcp-TIME|rcirc-handler-ctcp-VERSION|rcirc-handler-generic|rcirc-ignore-update-automatic|rcirc-insert-next-input|rcirc-insert-prev-input|rcirc-join-channels-post-auth|rcirc-join-channels|rcirc-jump-to-first-unread-line|rcirc-keepalive|rcirc-kill-buffer-hook|rcirc-last-line|rcirc-last-quit-line|rcirc-log-write|rcirc-log|rcirc-looking-at-input|rcirc-make-trees|rcirc-markup-attributes|rcirc-markup-bright-nicks|rcirc-markup-fill|rcirc-markup-keywords|rcirc-markup-my-nick|rcirc-markup-timestamp|rcirc-markup-urls|rcirc-maybe-remember-nick-quit|rcirc-mode|rcirc-multiline-minor-cancel|rcirc-multiline-minor-mode|rcirc-multiline-minor-submit|rcirc-next-active-buffer|rcirc-nick-channels|rcirc-nick-remove|rcirc-nick|rcirc-nickname<|rcirc-non-irc-buffer|rcirc-omit-mode|rcirc-prev-input-string|rcirc-print|rcirc-process-command|rcirc-process-input-line|rcirc-process-list|rcirc-process-message|rcirc-process-server-response-1|rcirc-process-server-response|rcirc-prompt-for-encryption|rcirc-put-nick-channel|rcirc-rebuild-tree|rcirc-record-activity|rcirc-remove-nick-channel|rcirc-reschedule-timeout|rcirc-send-ctcp|rcirc-send-input|rcirc-send-message|rcirc-send-privmsg|rcirc-send-string|rcirc-sentinel|rcirc-server-name|rcirc-set-changed|rcirc-short-buffer-name|rcirc-sort-nicknames-join|rcirc-split-activity|rcirc-split-message|rcirc-switch-to-server-buffer|rcirc-target-buffer|rcirc-toggle-ignore-buffer-activity|rcirc-toggle-low-priority|rcirc-track-minor-mode|rcirc-update-activity-string|rcirc-update-prompt|rcirc-update-short-buffer-names|rcirc-user-nick|rcirc-view-log-file|rcirc-visible-buffers|rcirc-window-configuration-change-1|rcirc-window-configuration-change|rcirc|re-builder-unload-function|re-search-backward-lax-whitespace|re-search-forward-lax-whitespace|read--expression|read-abbrev-file|read-all-face-attributes|read-buffer-file-coding-system|read-buffer-to-switch|read-char-by-name|read-charset|read-cookie|read-envvar-name|read-extended-command|read-face-and-attribute|read-face-attribute|read-face-font|read-face-name|read-feature|read-file-name--defaults|read-file-name-default|read-file-name-internal|read-from-whole-string|read-hiragana-string|read-input|read-language-name|read-multilingual-string|read-number|read-regexp-suggestions|reb-assert-buffer-in-window|reb-auto-update|reb-change-syntax|reb-change-target-buffer|reb-color-display-p|reb-cook-regexp|reb-copy|reb-count-subexps|reb-delete-overlays|reb-display-subexp|reb-do-update|reb-empty-regexp|reb-enter-subexp-mode|reb-force-update|reb-initialize-buffer|reb-insert-regexp|reb-kill-buffer|reb-lisp-mode|reb-lisp-syntax-p|reb-mode-buffer-p|reb-mode-common|reb-mode|reb-next-match|reb-prev-match|reb-quit-subexp-mode|reb-quit|reb-read-regexp|reb-show-subexp|reb-target-binding|reb-toggle-case|reb-update-modestring|reb-update-overlays|reb-update-regexp|rebuild-mail-abbrevs|recentf-add-file|recentf-apply-filename-handlers|recentf-apply-menu-filter|recentf-arrange-by-dir|recentf-arrange-by-mode|recentf-arrange-by-rule|recentf-auto-cleanup|recentf-build-mode-rules|recentf-cancel-dialog|recentf-cleanup|recentf-dialog-goto-first|recentf-dialog-mode|recentf-dialog|recentf-digit-shortcut-command-name|recentf-dir-rule|recentf-directory-compare|recentf-dump-variable|recentf-edit-list-select|recentf-edit-list-validate|recentf-edit-list|recentf-elements|recentf-enabled-p|recentf-expand-file-name|recentf-file-name-nondir|recentf-filter-changer-select|recentf-filter-changer|recentf-hide-menu|recentf-include-p|recentf-indirect-mode-rule|recentf-keep-default-predicate|recentf-keep-p|recentf-load-list|recentf-make-default-menu-element|recentf-make-menu-element|recentf-make-menu-item|recentf-make-menu-items|recentf-match-rule|recentf-menu-bar|recentf-menu-customization-changed|recentf-menu-element-item|recentf-menu-element-value|recentf-menu-elements)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:rmail-output-body-to-file|rmail-output-to-rmail-buffer|rmail-output|rmail-parse-url|rmail-perm-variables|rmail-pop-to-buffer|rmail-previous-labeled-message|rmail-previous-message|rmail-previous-same-subject|rmail-previous-undeleted-message|rmail-probe|rmail-quit|rmail-read-label|rmail-redecode-body|rmail-reply|rmail-require-mime-maybe|rmail-resend|rmail-restore-desktop-buffer|rmail-retry-failure|rmail-revert|rmail-search-backwards|rmail-search-message|rmail-search|rmail-select-summary|rmail-set-attribute-1|rmail-set-attribute|rmail-set-header-1|rmail-set-header|rmail-set-message-counters-counter|rmail-set-message-counters|rmail-set-message-deleted-p|rmail-set-remote-password|rmail-show-message-1|rmail-show-message|rmail-simplified-subject-regexp|rmail-simplified-subject|rmail-sort-by-author|rmail-sort-by-correspondent|rmail-sort-by-date|rmail-sort-by-labels|rmail-sort-by-lines|rmail-sort-by-recipient|rmail-sort-by-subject|rmail-speedbar-button|rmail-speedbar-buttons|rmail-speedbar-find-file|rmail-speedbar-move-message-to-folder-on-line|rmail-speedbar-move-message|rmail-start-mail|rmail-summary-by-labels|rmail-summary-by-recipients|rmail-summary-by-regexp|rmail-summary-by-senders|rmail-summary-by-topic|rmail-summary-displayed|rmail-summary-exists|rmail-summary|rmail-swap-buffers-maybe|rmail-swap-buffers|rmail-toggle-header|rmail-undelete-previous-message|rmail-unfontify-buffer-function|rmail-unknown-mail-followup-to|rmail-unrmail-new-mail-maybe|rmail-unrmail-new-mail|rmail-update-summary|rmail-variables|rmail-view-buffer-kill-buffer-hook|rmail-what-message|rmail-widen-to-current-msgbeg|rmail-widen|rmail-write-region-annotate|rmail-yank-current-message|rmail|rng-c-load-schema|rng-nxml-mode-init|rng-validate-mode|rng-xsd-compile|robin-define-package|robin-modify-package|robin-use-package|rot13-other-window|rot13-region|rot13-string|rot13|rotate-yank-pointer|rotatef|round\\\\\\\\*|route|rsh|rst-minor-mode|rst-mode|ruby--at-indentation-p|ruby--detect-encoding|ruby--electric-indent-p|ruby--encoding-comment-required-p|ruby--insert-coding-comment|ruby--inverse-string-quote|ruby--string-region|ruby-accurate-end-of-block|ruby-add-log-current-method|ruby-backward-sexp|ruby-beginning-of-block|ruby-beginning-of-defun|ruby-beginning-of-indent|ruby-block-contains-point|ruby-brace-to-do-end|ruby-calculate-indent|ruby-current-indentation|ruby-deep-indent-paren-p|ruby-do-end-to-brace|ruby-end-of-block|ruby-end-of-defun|ruby-expr-beg|ruby-forward-sexp|ruby-forward-string|ruby-here-doc-end-match|ruby-imenu-create-index-in-block|ruby-imenu-create-index|ruby-in-ppss-context-p|ruby-indent-exp|ruby-indent-line|ruby-indent-size|ruby-indent-to|ruby-match-expression-expansion|ruby-mode-menu|ruby-mode-set-encoding|ruby-mode-variables|ruby-mode|ruby-move-to-block|ruby-parse-partial|ruby-parse-region|ruby-singleton-class-p|ruby-smie--args-separator-p|ruby-smie--at-dot-call|ruby-smie--backward-token|ruby-smie--bosp|ruby-smie--closing-pipe-p|ruby-smie--forward-token|ruby-smie--implicit-semi-p|ruby-smie--indent-to-stmt-p|ruby-smie--indent-to-stmt|ruby-smie--opening-pipe-p|ruby-smie--redundant-do-p|ruby-smie-rules|ruby-special-char-p|ruby-string-at-point-p|ruby-syntax-enclosing-percent-literal|ruby-syntax-expansion-allowed-p|ruby-syntax-propertize-expansion|ruby-syntax-propertize-expansions|ruby-syntax-propertize-function|ruby-syntax-propertize-heredoc|ruby-syntax-propertize-percent-literal|ruby-toggle-block|ruby-toggle-string-quotes|ruler--save-header-line-format|ruler-mode-character-validate|ruler-mode-full-window-width|ruler-mode-mouse-add-tab-stop|ruler-mode-mouse-del-tab-stop|ruler-mode-mouse-drag-any-column-iteration|ruler-mode-mouse-drag-any-column|ruler-mode-mouse-grab-any-column|ruler-mode-mouse-set-left-margin|ruler-mode-mouse-set-right-margin|ruler-mode-ruler|ruler-mode-space|ruler-mode-toggle-show-tab-stops|ruler-mode-window-col|ruler-mode|run-dig|run-hook-wrapped|run-lisp|run-network-program|run-octave|run-prolog|run-python-internal|run-python|run-scheme|run-tcl|run-window-configuration-change-hook|run-window-scroll-functions|run-with-timer|rx-\\\\\\\\*\\\\\\\\*|rx-=|rx->=|rx-and|rx-any-condense-range|rx-any-delete-from-range|rx-any|rx-anything|rx-atomic-p|rx-backref|rx-category|rx-check-any-string|rx-check-any|rx-check-backref|rx-check-category|rx-check-not|rx-check|rx-eval|rx-form|rx-greedy|rx-group-if|rx-info|rx-kleene|rx-not-char|rx-not-syntax|rx-not|rx-or|rx-regexp|rx-repeat|rx-submatch-n|rx-submatch|rx-syntax|rx-to-string|rx-trans-forms|rx|rzgrep|safe-date-to-time|same-class-fast-p|same-class-p|sanitize-coding-system-list|sasl-anonymous-response|sasl-client-mechanism|sasl-client-name|sasl-client-properties|sasl-client-property|sasl-client-server|sasl-client-service|sasl-client-set-properties|sasl-client-set-property|sasl-error|sasl-find-mechanism|sasl-login-response-1|sasl-login-response-2|sasl-make-client|sasl-make-mechanism|sasl-mechanism-name|sasl-mechanism-steps|sasl-next-step|sasl-plain-response|sasl-read-passphrase|sasl-step-data|sasl-step-set-data|sasl-unique-id-function|sasl-unique-id-number-base36|sasl-unique-id|save-buffers-kill-emacs|save-buffers-kill-terminal|save-completions-to-file|save-place-alist-to-file|save-place-dired-hook|save-place-find-file-hook|save-place-forget-unreadable-files|save-place-kill-emacs-hook|save-place-to-alist|save-places-to-alist|savehist-autosave|savehist-install|savehist-load|savehist-minibuffer-hook|savehist-mode|savehist-printable|savehist-save|savehist-trim-history|savehist-uninstall|sc-S-cite-region-limit|sc-S-mail-header-nuke-list|sc-S-mail-nuke-mail-headers|sc-S-preferred-attribution-list|sc-S-preferred-header-style|sc-T-auto-fill-region|sc-T-confirm-always|sc-T-describe|sc-T-downcase|sc-T-electric-circular|sc-T-electric-references|sc-T-fixup-whitespace|sc-T-mail-nuke-blank-lines|sc-T-nested-citation|sc-T-use-only-preferences|sc-add-citation-level|sc-ask|sc-attribs-!-addresses|sc-attribs-%@-addresses|sc-attribs-<>-addresses|sc-attribs-chop-address|sc-attribs-chop-namestring|sc-attribs-emailname|sc-attribs-extract-namestring|sc-attribs-filter-namelist|sc-attribs-strip-initials|sc-cite-coerce-cited-line|sc-cite-coerce-dumb-citer|sc-cite-line|sc-cite-original|sc-cite-regexp|sc-cite-region|sc-describe|sc-electric-mode|sc-eref-abort|sc-eref-exit|sc-eref-goto|sc-eref-insert-selected|sc-eref-jump|sc-eref-next|sc-eref-prev|sc-eref-setn|sc-eref-show|sc-fill-if-different|sc-get-address|sc-guess-attribution|sc-guess-nesting|sc-hdr|sc-header-attributed-writes|sc-header-author-writes|sc-header-inarticle-writes|sc-header-on-said|sc-header-regarding-adds|sc-header-verbose|sc-insert-citation|sc-insert-reference|sc-mail-append-field|sc-mail-build-nuke-frame|sc-mail-check-from|sc-mail-cleanup-blank-lines|sc-mail-error-in-mail-field|sc-mail-fetch-field|sc-mail-field-query|sc-mail-field|sc-mail-nuke-continuation-line|sc-mail-nuke-header-line|sc-mail-nuke-line|sc-mail-process-headers|sc-make-citation|sc-minor-mode|sc-name-substring|sc-no-blank-line-or-header|sc-no-header|sc-open-line|sc-raw-mode-toggle|sc-recite-line|sc-recite-region|sc-scan-info-alist|sc-select-attribution|sc-set-variable|sc-setup-filladapt|sc-setvar-symbol|sc-toggle-fn|sc-toggle-symbol|sc-toggle-var|sc-uncite-line|sc-uncite-region|sc-valid-index-p|sc-whofrom|scan-buf-move-to-region|scan-buf-next-region|scan-buf-previous-region|scheme-compile-definition-and-go|scheme-compile-definition|scheme-compile-file|scheme-compile-region-and-go|scheme-compile-region|scheme-debugger-mode-commands|scheme-debugger-mode-initialize|scheme-debugger-mode|scheme-debugger-self-insert|scheme-expand-current-form|scheme-form-at-point|scheme-get-old-input|scheme-get-process|scheme-indent-function|scheme-input-filter|scheme-interaction-mode-commands|scheme-interaction-mode-initialize|scheme-interaction-mode|scheme-interactively-start-process|scheme-let-indent|scheme-load-file|scheme-mode-commands|scheme-mode-variables|scheme-mode|scheme-proc|scheme-send-definition-and-go|scheme-send-definition|scheme-send-last-sexp|scheme-send-region-and-go|scheme-send-region|scheme-start-file|scheme-syntax-propertize-sexp-comment|scheme-syntax-propertize|scheme-trace-procedure|scroll-all-beginning-of-buffer-all|scroll-all-check-to-scroll|scroll-all-end-of-buffer-all|scroll-all-function-all|scroll-all-mode|scroll-all-page-down-all|scroll-all-page-up-all|scroll-all-scroll-down-all|scroll-all-scroll-up-all|scroll-bar-columns|scroll-bar-drag-1|scroll-bar-drag-position|scroll-bar-drag|scroll-bar-horizontal-drag-1|scroll-bar-horizontal-drag|scroll-bar-lines|scroll-bar-maybe-set-window-start|scroll-bar-scroll-down|scroll-bar-scroll-up|scroll-bar-set-window-start|scroll-bar-toolkit-horizontal-scroll|scroll-bar-toolkit-scroll|scroll-down-line|scroll-lock-mode|scroll-other-window-down|scroll-up-line|scss-mode|scss-smie--not-interpolation-p|sdb|search-backward-lax-whitespace|search-backward-regexp|search-emacs-glossary|search-forward-lax-whitespace|search-forward-regexp|search-pages|search-unencodable-char|search|second|seconds-to-string|secrets-close-session|secrets-collection-handler|secrets-collection-path|secrets-create-collection|secrets-create-item|secrets-delete-alias|secrets-delete-collection|secrets-delete-item|secrets-empty-path|secrets-expand-collection|secrets-expand-item|secrets-get-alias|secrets-get-attribute|secrets-get-attributes|secrets-get-collection-properties|secrets-get-collection-property|secrets-get-collections|secrets-get-item-properties|secrets-get-item-property|secrets-get-items|secrets-get-secret|secrets-item-path|secrets-list-collections|secrets-list-items|secrets-mode|secrets-open-session|secrets-prompt-handler|secrets-prompt|secrets-search-items|secrets-set-alias|secrets-show-collections|secrets-show-secrets|secrets-tree-widget-after-toggle-function|secrets-tree-widget-show-password|secrets-unlock-collection|secure-hash|select-frame-by-name|select-frame-set-input-focus|select-frame|select-message-coding-system|select-safe-coding-system-interactively|select-safe-coding-system|select-scheme|select-tags-table-mode|select-tags-table-quit|select-tags-table-select|select-tags-table|select-window|selected-frame|selected-window|self-insert-and-exit|self-insert-command|semantic--set-buffer-cache|semantic--tag-attributes-cdr|semantic--tag-copy-properties|semantic--tag-deep-copy-attributes|semantic--tag-deep-copy-tag-list|semantic--tag-deep-copy-value|semantic--tag-expand|semantic--tag-expanded-p|semantic--tag-find-parent-by-name|semantic--tag-get-property|semantic--tag-link-cache-to-buffer|semantic--tag-link-list-to-buffer|semantic--tag-link-to-buffer|semantic--tag-overlay-cdr|semantic--tag-properties-cdr|semantic--tag-put-property-no-side-effect|semantic--tag-put-property|semantic--tag-run-hooks|semantic--tag-set-overlay|semantic--tag-unlink-cache-from-buffer|semantic--tag-unlink-from-buffer|semantic--tag-unlink-list-from-buffer|semantic--umatched-syntax-needs-refresh-p|semantic-active-p|semantic-add-label|semantic-add-minor-mode|semantic-add-system-include|semantic-alias-obsolete|semantic-analyze-completion-at-point-function|semantic-analyze-current-context|semantic-analyze-current-tag|semantic-analyze-nolongprefix-completion-at-point-function|semantic-analyze-notc-completion-at-point-function|semantic-analyze-possible-completions|semantic-analyze-proto-impl-toggle|semantic-analyze-type-constants|semantic-assert-valid-token|semantic-bovinate-from-nonterminal-full|semantic-bovinate-from-nonterminal|semantic-bovinate-region-until-error|semantic-bovinate-stream|semantic-bovinate-toplevel|semantic-buffer-local-value|semantic-c-add-preprocessor-symbol|semantic-cache-data-post-command-hook|semantic-cache-data-to-buffer|semantic-calculate-scope|semantic-change-function|semantic-clean-token-of-unmatched-syntax|semantic-clean-unmatched-syntax-in-buffer|semantic-clean-unmatched-syntax-in-region|semantic-clear-parser-warnings|semantic-clear-toplevel-cache|semantic-clear-unmatched-syntax-cache|semantic-comment-lexer|semantic-complete-analyze-and-replace|semantic-complete-analyze-inline-idle|semantic-complete-analyze-inline|semantic-complete-inline-project|semantic-complete-jump-local-members|semantic-complete-jump-local|semantic-complete-jump|semantic-complete-self-insert|semantic-complete-symbol|semantic-create-imenu-index|semantic-create-tag-proxy|semantic-ctxt-current-mode|semantic-current-tag-parent|semantic-current-tag|semantic-customize-system-include-path|semantic-debug|semantic-decoration-include-visit|semantic-decoration-unparsed-include-do-reset)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:semantic-default-c-setup|semantic-default-elisp-setup|semantic-default-html-setup|semantic-default-make-setup|semantic-default-scheme-setup|semantic-default-texi-setup|semantic-delete-overlay-maybe|semantic-dependency-tag-file|semantic-describe-buffer-var-helper|semantic-describe-buffer|semantic-describe-tag|semantic-desktop-ignore-this-minor-mode|semantic-documentation-for-tag|semantic-dump-parser-warnings|semantic-edits-incremental-parser|semantic-elapsed-time|semantic-equivalent-tag-p|semantic-error-if-unparsed|semantic-event-window|semantic-exit-on-input|semantic-fetch-available-tags|semantic-fetch-tags-fast|semantic-fetch-tags|semantic-file-tag-table|semantic-file-token-stream|semantic-find-file-noselect|semantic-find-first-tag-by-name|semantic-find-tag-by-overlay-in-region|semantic-find-tag-by-overlay-next|semantic-find-tag-by-overlay-prev|semantic-find-tag-by-overlay|semantic-find-tag-for-completion|semantic-find-tag-parent-by-overlay|semantic-find-tags-by-scope-protection|semantic-find-tags-included|semantic-flatten-tags-table|semantic-flex-buffer|semantic-flex-end|semantic-flex-keyword-get|semantic-flex-keyword-p|semantic-flex-keyword-put|semantic-flex-keywords|semantic-flex-list|semantic-flex-make-keyword-table|semantic-flex-map-keywords|semantic-flex-start|semantic-flex-text|semantic-flex|semantic-force-refresh|semantic-foreign-tag-check|semantic-foreign-tag-invalid|semantic-foreign-tag-p|semantic-foreign-tag|semantic-format-tag-concise-prototype|semantic-format-tag-name|semantic-format-tag-prototype|semantic-format-tag-summarize|semantic-fw-add-edebug-spec|semantic-gcc-setup|semantic-get-cache-data|semantic-go-to-tag|semantic-highlight-edits-mode|semantic-highlight-edits-new-change-hook-fcn|semantic-highlight-func-highlight-current-tag|semantic-highlight-func-menu|semantic-highlight-func-mode|semantic-highlight-func-popup-menu|semantic-ia-complete-symbol-menu|semantic-ia-complete-symbol|semantic-ia-complete-tip|semantic-ia-describe-class|semantic-ia-fast-jump|semantic-ia-fast-mouse-jump|semantic-ia-show-doc|semantic-ia-show-summary|semantic-ia-show-variants|semantic-idle-completions-mode|semantic-idle-scheduler-mode|semantic-idle-summary-mode|semantic-insert-foreign-tag-change-log-mode|semantic-insert-foreign-tag-default|semantic-insert-foreign-tag-log-edit-mode|semantic-insert-foreign-tag|semantic-install-function-overrides|semantic-lex-beginning-of-line|semantic-lex-buffer|semantic-lex-catch-errors|semantic-lex-charquote|semantic-lex-close-paren|semantic-lex-comments-as-whitespace|semantic-lex-comments|semantic-lex-debug-break|semantic-lex-debug|semantic-lex-default-action|semantic-lex-end-block|semantic-lex-expand-block-specs|semantic-lex-highlight-token|semantic-lex-ignore-comments|semantic-lex-ignore-newline|semantic-lex-ignore-whitespace|semantic-lex-init|semantic-lex-keyword-get|semantic-lex-keyword-invalid|semantic-lex-keyword-p|semantic-lex-keyword-put|semantic-lex-keyword-set|semantic-lex-keyword-symbol|semantic-lex-keyword-value|semantic-lex-keywords|semantic-lex-list|semantic-lex-make-keyword-table|semantic-lex-make-type-table|semantic-lex-map-keywords|semantic-lex-map-symbols|semantic-lex-map-types|semantic-lex-newline-as-whitespace|semantic-lex-newline|semantic-lex-number|semantic-lex-one-token|semantic-lex-open-paren|semantic-lex-paren-or-list|semantic-lex-preset-default-types|semantic-lex-punctuation-type|semantic-lex-punctuation|semantic-lex-push-token|semantic-lex-spp-table-write-slot-value|semantic-lex-start-block|semantic-lex-string|semantic-lex-symbol-or-keyword|semantic-lex-test|semantic-lex-token-bounds|semantic-lex-token-class|semantic-lex-token-end|semantic-lex-token-p|semantic-lex-token-start|semantic-lex-token-text|semantic-lex-token-with-text-p|semantic-lex-token-without-text-p|semantic-lex-token|semantic-lex-type-get|semantic-lex-type-invalid|semantic-lex-type-p|semantic-lex-type-put|semantic-lex-type-set|semantic-lex-type-symbol|semantic-lex-type-value|semantic-lex-types|semantic-lex-unterminated-syntax-detected|semantic-lex-unterminated-syntax-protection|semantic-lex-whitespace|semantic-lex|semantic-make-local-hook|semantic-make-overlay|semantic-map-buffers|semantic-map-mode-buffers|semantic-menu-item|semantic-mode-line-update|semantic-mode|semantic-narrow-to-tag|semantic-new-buffer-fcn|semantic-next-unmatched-syntax|semantic-obtain-foreign-tag|semantic-overlay-buffer|semantic-overlay-delete|semantic-overlay-end|semantic-overlay-get|semantic-overlay-lists|semantic-overlay-live-p|semantic-overlay-move|semantic-overlay-next-change|semantic-overlay-p|semantic-overlay-previous-change|semantic-overlay-properties|semantic-overlay-put|semantic-overlay-start|semantic-overlays-at|semantic-overlays-in|semantic-overload-symbol-from-function|semantic-parse-changes-default|semantic-parse-changes|semantic-parse-region-default|semantic-parse-region|semantic-parse-stream-default|semantic-parse-stream|semantic-parse-tree-needs-rebuild-p|semantic-parse-tree-needs-update-p|semantic-parse-tree-set-needs-rebuild|semantic-parse-tree-set-needs-update|semantic-parse-tree-set-up-to-date|semantic-parse-tree-unparseable-p|semantic-parse-tree-unparseable|semantic-parse-tree-up-to-date-p|semantic-parser-working-message|semantic-popup-menu|semantic-push-parser-warning|semantic-read-event|semantic-read-function|semantic-read-symbol|semantic-read-type|semantic-read-variable|semantic-refresh-tags-safe|semantic-remove-system-include|semantic-repeat-parse-whole-stream|semantic-require-version|semantic-reset-system-include|semantic-run-mode-hooks|semantic-safe|semantic-sanity-check|semantic-set-unmatched-syntax-cache|semantic-show-label|semantic-show-parser-state-auto-marker|semantic-show-parser-state-marker|semantic-show-parser-state-mode|semantic-show-unmatched-lex-tokens-fetch|semantic-show-unmatched-syntax-mode|semantic-show-unmatched-syntax-next|semantic-show-unmatched-syntax|semantic-showing-unmatched-syntax-p|semantic-simple-lexer|semantic-something-to-stream|semantic-something-to-tag-table|semantic-speedbar-analysis|semantic-stickyfunc-fetch-stickyline|semantic-stickyfunc-menu|semantic-stickyfunc-mode|semantic-stickyfunc-popup-menu|semantic-stickyfunc-tag-to-stick|semantic-subst-char-in-string|semantic-symref-find-file-references-by-name|semantic-symref-find-references-by-name|semantic-symref-find-tags-by-completion|semantic-symref-find-tags-by-name|semantic-symref-find-tags-by-regexp|semantic-symref-find-text|semantic-symref-regexp|semantic-symref-symbol|semantic-symref-tool-cscope-child-p|semantic-symref-tool-cscope-list-p|semantic-symref-tool-cscope-p|semantic-symref-tool-cscope|semantic-symref-tool-global-child-p|semantic-symref-tool-global-list-p|semantic-symref-tool-global-p|semantic-symref-tool-global|semantic-symref-tool-grep-child-p|semantic-symref-tool-grep-list-p|semantic-symref-tool-grep-p|semantic-symref-tool-grep|semantic-symref-tool-idutils-child-p|semantic-symref-tool-idutils-list-p|semantic-symref-tool-idutils-p|semantic-symref-tool-idutils|semantic-symref|semantic-tag-add-hook|semantic-tag-alias-class|semantic-tag-alias-definition|semantic-tag-attributes|semantic-tag-bounds|semantic-tag-buffer|semantic-tag-children-compatibility|semantic-tag-class|semantic-tag-clone|semantic-tag-code-detail|semantic-tag-components-default|semantic-tag-components-with-overlays-default|semantic-tag-components-with-overlays|semantic-tag-components|semantic-tag-copy|semantic-tag-deep-copy-one-tag|semantic-tag-docstring|semantic-tag-end|semantic-tag-external-member-parent|semantic-tag-faux-p|semantic-tag-file-name|semantic-tag-function-arguments|semantic-tag-function-constructor-p|semantic-tag-function-destructor-p|semantic-tag-function-parent|semantic-tag-function-throws|semantic-tag-get-attribute|semantic-tag-in-buffer-p|semantic-tag-include-filename-default|semantic-tag-include-filename|semantic-tag-include-system-p|semantic-tag-make-assoc-list|semantic-tag-make-plist|semantic-tag-mode|semantic-tag-modifiers|semantic-tag-name|semantic-tag-named-parent|semantic-tag-new-alias|semantic-tag-new-code|semantic-tag-new-function|semantic-tag-new-include|semantic-tag-new-package|semantic-tag-new-type|semantic-tag-new-variable|semantic-tag-of-class-p|semantic-tag-of-type-p|semantic-tag-overlay|semantic-tag-p|semantic-tag-properties|semantic-tag-prototype-p|semantic-tag-put-attribute-no-side-effect|semantic-tag-put-attribute|semantic-tag-remove-hook|semantic-tag-resolve-proxy|semantic-tag-set-bounds|semantic-tag-set-faux|semantic-tag-set-name|semantic-tag-set-proxy|semantic-tag-similar-with-subtags-p|semantic-tag-start|semantic-tag-type-compound-p|semantic-tag-type-interfaces|semantic-tag-type-members|semantic-tag-type-superclass-protection|semantic-tag-type-superclasses|semantic-tag-type|semantic-tag-variable-constant-p|semantic-tag-variable-default|semantic-tag-with-position-p|semantic-tag-write-list-slot-value|semantic-tag|semantic-test-data-cache|semantic-throw-on-input|semantic-toggle-minor-mode-globally|semantic-token-type-parent|semantic-unmatched-syntax-overlay-p|semantic-unmatched-syntax-tokens|semantic-varalias-obsolete|semantic-with-buffer-narrowed-to-current-tag|semantic-with-buffer-narrowed-to-tag|semanticdb-database-typecache-child-p|semanticdb-database-typecache-list-p|semanticdb-database-typecache-p|semanticdb-database-typecache|semanticdb-enable-gnu-global-databases|semanticdb-file-table-object|semanticdb-find-adebug-lost-includes|semanticdb-find-result-length|semanticdb-find-result-nth-in-buffer|semanticdb-find-result-nth|semanticdb-find-table-for-include|semanticdb-find-tags-by-class|semanticdb-find-tags-by-name-regexp|semanticdb-find-tags-by-name|semanticdb-find-tags-for-completion|semanticdb-find-test-translate-path|semanticdb-find-translate-path|semanticdb-minor-mode-p|semanticdb-project-database-file-child-p|semanticdb-project-database-file-list-p|semanticdb-project-database-file-p|semanticdb-project-database-file|semanticdb-strip-find-results|semanticdb-typecache-child-p|semanticdb-typecache-find|semanticdb-typecache-list-p|semanticdb-typecache-p|semanticdb-typecache|semanticdb-without-unloaded-file-searches|senator-copy-tag-to-register|senator-copy-tag|senator-go-to-up-reference|senator-kill-tag|senator-next-tag|senator-previous-tag|senator-transpose-tags-down|senator-transpose-tags-up|senator-yank-tag|send-invisible|send-process-next-char|send-region|send-string|sendmail-query-once|sendmail-query-user-about-smtp|sendmail-send-it|sendmail-sync-aliases|sendmail-user-agent-compose|sentence-at-point|seq--count-successive|seq--drop-list|seq--drop-while-list|seq--take-list|seq--take-while-list|seq-concatenate|seq-contains-p|seq-copy|seq-count|seq-do|seq-doseq|seq-drop-while|seq-drop|seq-each|seq-elt|seq-empty-p|seq-every-p|seq-filter|seq-length|seq-map|seq-reduce|seq-remove|seq-reverse|seq-some-p|seq-sort|seq-subseq|seq-take-while|seq-take|seq-uniq|serial-mode-line-config-menu-1|serial-mode-line-config-menu|serial-mode-line-speed-menu-1|serial-mode-line-speed-menu|serial-nice-speed-history|serial-port-is-file-p|serial-read-name|serial-read-speed|serial-speed|serial-supported-or-barf|serial-update-config-menu|serial-update-speed-menu|server--on-display-p|server-add-client|server-buffer-done|server-clients-with|server-create-tty-frame|server-create-window-system-frame|server-delete-client|server-done|server-edit|server-ensure-safe-dir|server-eval-and-print|server-eval-at|server-execute-continuation|server-execute|server-force-delete|server-force-stop|server-generate-key|server-get-auth-key|server-goto-line-column|server-goto-toplevel|server-handle-delete-frame|server-handle-suspend-tty|server-kill-buffer|server-kill-emacs-query-function|server-log|server-mode|server-process-filter|server-quote-arg|server-reply-print|server-return-error|server-running-p|server-save-buffers-kill-terminal|server-select-display|server-send-string|server-sentinel|server-start|server-switch-buffer|server-temp-file-p|server-unload-function|server-unquote-arg|server-unselect-display|server-visit-files|server-with-environment|ses\\\\\\\\+|ses--advice-copy-region-as-kill|ses--advice-yank|ses--cell|ses--clean-!|ses--clean-_|ses--letref|ses--local-printer|ses--locprn-compiled--cmacro|ses--locprn-compiled|ses--locprn-def--cmacro|ses--locprn-def|ses--locprn-local-printer-list--cmacro|ses--locprn-local-printer-list|ses--locprn-number--cmacro|ses--locprn-number|ses--locprn-p--cmacro|ses--locprn-p|ses--metaprogramming)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:ses--time-check|ses-adjust-print-width|ses-append-row-jump-first-column|ses-aset-with-undo|ses-average|ses-begin-change|ses-calculate-cell|ses-call-printer|ses-cell--formula--cmacro|ses-cell--formula|ses-cell--printer--cmacro|ses-cell--printer|ses-cell--properties--cmacro|ses-cell--properties|ses-cell--references--cmacro|ses-cell--references|ses-cell--symbol--cmacro|ses-cell--symbol|ses-cell-formula|ses-cell-p|ses-cell-printer|ses-cell-property-pop|ses-cell-property|ses-cell-references|ses-cell-set-formula|ses-cell-symbol|ses-cell-value|ses-center-span|ses-center|ses-check-curcell|ses-cleanup|ses-clear-cell-backward|ses-clear-cell-forward|ses-clear-cell|ses-col-printer|ses-col-width|ses-column-letter|ses-column-printers|ses-column-widths|ses-command-hook|ses-copy-region-helper|ses-copy-region|ses-create-cell-symbol|ses-create-cell-variable-range|ses-create-cell-variable|ses-create-header-string|ses-dashfill-span|ses-dashfill|ses-decode-cell-symbol|ses-default-printer|ses-define-local-printer|ses-delete-blanks|ses-delete-column|ses-delete-line|ses-delete-row|ses-destroy-cell-variable-range|ses-dorange|ses-edit-cell|ses-end-of-line|ses-export-keymap|ses-export-tab|ses-export-tsf|ses-export-tsv|ses-file-format-extend-parameter-list|ses-formula-record|ses-formula-references|ses-forward-or-insert|ses-get-cell|ses-goto-data|ses-goto-print|ses-header-line-menu|ses-header-row|ses-in-print-area|ses-initialize-Dijkstra-attempt|ses-insert-column|ses-insert-range-click|ses-insert-range|ses-insert-row|ses-insert-ses-range-click|ses-insert-ses-range|ses-is-cell-sym-p|ses-jump-safe|ses-jump|ses-kill-override|ses-load|ses-local-printer-compile|ses-make-cell--cmacro|ses-make-cell|ses-make-local-printer-info|ses-mark-column|ses-mark-row|ses-menu|ses-mode-print-map|ses-mode|ses-print-cell-new-width|ses-print-cell|ses-printer-record|ses-printer-validate|ses-range|ses-read-cell-printer|ses-read-cell|ses-read-column-printer|ses-read-default-printer|ses-read-printer|ses-read-symbol|ses-recalculate-all|ses-recalculate-cell|ses-reconstruct-all|ses-refresh-local-printer|ses-relocate-all|ses-relocate-formula|ses-relocate-range|ses-relocate-symbol|ses-rename-cell|ses-renarrow-buffer|ses-repair-cell-reference-all|ses-replace-name-in-formula|ses-reprint-all|ses-reset-header-string|ses-safe-formula|ses-safe-printer|ses-select|ses-set-cell|ses-set-column-width|ses-set-curcell|ses-set-header-row|ses-set-localvars|ses-set-parameter|ses-set-with-undo|ses-setter-with-undo|ses-setup|ses-sort-column-click|ses-sort-column|ses-sym-rowcol|ses-tildefill-span|ses-truncate-cell|ses-unload-function|ses-unsafe|ses-unset-header-row|ses-update-cells|ses-vector-delete|ses-vector-insert|ses-warn-unsafe|ses-widen|ses-write-cells|ses-yank-cells|ses-yank-one|ses-yank-pop|ses-yank-resize|ses-yank-tsf|set-allout-regexp|set-auto-mode-0|set-auto-mode-1|set-background-color|set-border-color|set-buffer-file-coding-system|set-buffer-process-coding-system|set-cdabbrev-buffer|set-charset-plist|set-clipboard-coding-system|set-cmpl-prefix-entry-head|set-cmpl-prefix-entry-tail|set-coding-priority|set-comment-column|set-completion-last-use-time|set-completion-num-uses|set-completion-string|set-cursor-color|set-default-coding-systems|set-default-font|set-default-toplevel-value|set-difference|set-display-table-and-terminal-coding-system|set-downcase-syntax|set-exclusive-or|set-face-attribute-from-resource|set-face-attributes-from-resources|set-face-background-pixmap|set-face-bold-p|set-face-doc-string|set-face-documentation|set-face-inverse-video-p|set-face-italic-p|set-face-underline-p|set-file-name-coding-system|set-fill-column|set-fill-prefix|set-font-encoding|set-foreground-color|set-frame-font|set-frame-name|set-fringe-mode-1|set-fringe-mode|set-fringe-style|set-goal-column|set-hard-newline-properties|set-input-interrupt-mode|set-input-meta-mode|set-justification-center|set-justification-full|set-justification-left|set-justification-none|set-justification-right|set-justification|set-keyboard-coding-system-internal|set-language-environment-charset|set-language-environment-coding-systems|set-language-environment-input-method|set-language-environment-nonascii-translation|set-language-environment-unibyte|set-language-environment|set-language-info-alist|set-language-info-internal|set-language-info|set-locale-environment|set-mark-command|set-mode-local-parent|set-mouse-color|set-nested-alist|set-next-selection-coding-system|set-output-flow-control|set-page-delimiter|set-process-filter-multibyte|set-process-inherit-coding-system-flag|set-process-window-size|set-quit-char|set-rcirc-decode-coding-system|set-rcirc-encode-coding-system|set-rmail-inbox-list|set-safe-terminal-coding-system-internal|set-scroll-bar-mode|set-selection-coding-system|set-selective-display|set-slot-value|set-temporary-overlay-map|set-terminal-coding-system-internal|set-time-zone-rule|set-upcase-syntax|set-variable|set-viper-state-in-major-mode|set-window-buffer-start-and-point|set-window-dot|set-window-new-normal|set-window-new-pixel|set-window-new-total|set-window-redisplay-end-trigger|set-window-text-height|set-woman-file-regexp|setenv-internal|setq-mode-local|setup-chinese-environment-map|setup-cyrillic-environment-map|setup-default-fontset|setup-ethiopic-environment-internal|setup-european-environment-map|setup-indian-environment-map|setup-japanese-environment-internal|setup-korean-environment-internal|setup-specified-language-environment|seventh|sexp-at-point|sgml-at-indentation-p|sgml-attributes|sgml-auto-attributes|sgml-beginning-of-tag|sgml-calculate-indent|sgml-close-tag|sgml-comment-indent-new-line|sgml-comment-indent|sgml-delete-tag|sgml-electric-tag-pair-before-change-function|sgml-electric-tag-pair-flush-overlays|sgml-electric-tag-pair-mode|sgml-empty-tag-p|sgml-fill-nobreak|sgml-get-context|sgml-guess-indent|sgml-html-meta-auto-coding-function|sgml-indent-line|sgml-lexical-context|sgml-looking-back-at|sgml-make-syntax-table|sgml-make-tag--cmacro|sgml-make-tag|sgml-maybe-end-tag|sgml-maybe-name-self|sgml-mode-facemenu-add-face-function|sgml-mode-flyspell-verify|sgml-mode|sgml-name-8bit-mode|sgml-name-char|sgml-name-self|sgml-namify-char|sgml-parse-dtd|sgml-parse-tag-backward|sgml-parse-tag-name|sgml-point-entered|sgml-pretty-print|sgml-quote|sgml-show-context|sgml-skip-tag-backward|sgml-skip-tag-forward|sgml-slash-matching|sgml-slash|sgml-tag-end--cmacro|sgml-tag-end|sgml-tag-help|sgml-tag-name--cmacro|sgml-tag-name|sgml-tag-p--cmacro|sgml-tag-p|sgml-tag-start--cmacro|sgml-tag-start|sgml-tag-text-p|sgml-tag-type--cmacro|sgml-tag-type|sgml-tag|sgml-tags-invisible|sgml-unclosed-tag-p|sgml-validate|sgml-value|sgml-xml-auto-coding-function|sgml-xml-guess|sh--cmd-completion-table|sh--inside-noncommand-expression|sh--maybe-here-document|sh--vars-before-point|sh-add-completer|sh-add|sh-after-hack-local-variables|sh-append-backslash|sh-append|sh-assignment|sh-backslash-region|sh-basic-indent-line|sh-beginning-of-command|sh-blink|sh-calculate-indent|sh-canonicalize-shell|sh-case|sh-cd-here|sh-check-rule|sh-completion-at-point-function|sh-current-defun-name|sh-debug|sh-delete-backslash|sh-electric-here-document-mode|sh-end-of-command|sh-execute-region|sh-feature|sh-find-prev-matching|sh-find-prev-switch|sh-font-lock-backslash-quote|sh-font-lock-keywords-1|sh-font-lock-keywords-2|sh-font-lock-keywords|sh-font-lock-open-heredoc|sh-font-lock-paren|sh-font-lock-quoted-subshell|sh-font-lock-syntactic-face-function|sh-for|sh-function|sh-get-indent-info|sh-get-indent-var-for-line|sh-get-kw|sh-get-word|sh-goto-match-for-done|sh-goto-matching-case|sh-goto-matching-if|sh-guess-basic-offset|sh-handle-after-case-label|sh-handle-prev-case-alt-end|sh-handle-prev-case|sh-handle-prev-do|sh-handle-prev-done|sh-handle-prev-else|sh-handle-prev-esac|sh-handle-prev-fi|sh-handle-prev-if|sh-handle-prev-open|sh-handle-prev-rc-case|sh-handle-prev-then|sh-handle-this-close|sh-handle-this-do|sh-handle-this-done|sh-handle-this-else|sh-handle-this-esac|sh-handle-this-fi|sh-handle-this-rc-case|sh-handle-this-then|sh-help-string-for-variable|sh-if|sh-in-comment-or-string|sh-indent-line|sh-indexed-loop|sh-is-quoted-p|sh-learn-buffer-indent|sh-learn-line-indent|sh-load-style|sh-make-vars-local|sh-mark-init|sh-mark-line|sh-maybe-here-document|sh-mkword-regexpr|sh-mode-syntax-table|sh-mode|sh-modify|sh-must-support-indent|sh-name-style|sh-prev-line|sh-prev-stmt|sh-prev-thing|sh-quoted-p|sh-read-variable|sh-remember-variable|sh-repeat|sh-reset-indent-vars-to-global-values|sh-safe-forward-sexp|sh-save-styles-to-buffer|sh-select|sh-send-line-or-region-and-step|sh-send-text|sh-set-indent|sh-set-shell|sh-set-var-value|sh-shell-initialize-variables|sh-shell-process|sh-show-indent|sh-show-shell|sh-smie--continuation-start-indent|sh-smie--default-backward-token|sh-smie--default-forward-token|sh-smie--keyword-p|sh-smie--looking-back-at-continuation-p|sh-smie--newline-semi-p|sh-smie--rc-after-special-arg-p|sh-smie--rc-newline-semi-p|sh-smie--sh-keyword-in-p|sh-smie--sh-keyword-p|sh-smie-rc-backward-token|sh-smie-rc-forward-token|sh-smie-rc-rules|sh-smie-sh-backward-token|sh-smie-sh-forward-token|sh-smie-sh-rules|sh-syntax-propertize-function|sh-syntax-propertize-here-doc|sh-this-is-a-continuation|sh-tmp-file|sh-until|sh-var-value|sh-while-getopts|sh-while|sha1|shadow-add-to-todo|shadow-cancel|shadow-cluster-name|shadow-cluster-primary|shadow-cluster-regexp|shadow-contract-file-name|shadow-copy-file|shadow-copy-files|shadow-define-cluster|shadow-define-literal-group|shadow-define-regexp-group|shadow-expand-cluster-in-file-name|shadow-expand-file-name|shadow-file-match|shadow-find|shadow-get-cluster|shadow-get-user|shadow-initialize|shadow-insert-var|shadow-invalidate-hashtable|shadow-local-file|shadow-make-cluster|shadow-make-fullname|shadow-make-group|shadow-parse-fullname|shadow-parse-name|shadow-read-files|shadow-read-site|shadow-regexp-superquote|shadow-remove-from-todo|shadow-replace-name-component|shadow-same-site|shadow-save-buffers-kill-emacs|shadow-save-todo-file|shadow-set-cluster|shadow-shadows-of-1|shadow-shadows-of|shadow-shadows|shadow-site-cluster|shadow-site-match|shadow-site-primary|shadow-suffix|shadow-union|shadow-write-info-file|shadow-write-todo-file|shadowfile-unload-function|shared-initialize|shell--command-completion-data|shell--parse-pcomplete-arguments|shell--requote-argument|shell--unquote&requote-argument|shell--unquote-argument|shell-apply-ansi-color|shell-backward-command|shell-c-a-p-replace-by-expanded-directory|shell-cd|shell-command-completion-function|shell-command-completion|shell-command-on-region|shell-command-sentinel|shell-command|shell-completion-vars|shell-copy-environment-variable|shell-directory-tracker|shell-dirstack-message|shell-dirtrack-mode|shell-dirtrack-toggle|shell-dynamic-complete-command|shell-dynamic-complete-environment-variable|shell-dynamic-complete-filename|shell-environment-variable-completion|shell-extract-num|shell-filename-completion|shell-filter-ctrl-a-ctrl-b|shell-forward-command|shell-match-partial-variable|shell-mode|shell-prefixed-directory-name|shell-process-cd|shell-process-popd|shell-process-pushd|shell-quote-wildcard-pattern|shell-reapply-ansi-color|shell-replace-by-expanded-directory|shell-resync-dirs|shell-script-mode|shell-snarf-envar|shell-strip-ctrl-m|shell-unquote-argument|shell-write-history-on-exit|shell|shiftf|should-error|should-not|should|show-all|show-branches|show-buffer|show-children|show-entry|show-ifdef-block|show-ifdefs|show-paren--categorize-paren|show-paren--default|show-paren--locate-near-paren|show-paren--unescaped-p|show-paren-function|show-paren-mode|show-subtree|shr--extract-best-source|shr--get-media-pref|shr-add-font|shr-browse-image|shr-browse-url|shr-buffer-width|shr-char-breakable-p--inliner|shr-char-breakable-p|shr-char-kinsoku-bol-p--inliner|shr-char-kinsoku-bol-p|shr-char-kinsoku-eol-p--inliner|shr-char-kinsoku-eol-p|shr-char-nospace-p--inliner|shr-char-nospace-p|shr-color->hexadecimal|shr-color-check|shr-color-hsl-to-rgb-fractions|shr-color-hue-to-rgb|shr-color-relative-to-absolute|shr-color-set-minimum-interval|shr-color-visible|shr-colorize-region|shr-column-specs|shr-copy-url|shr-count|shr-descend|shr-dom-print|shr-dom-to-xml|shr-encode-url|shr-ensure-newline|shr-ensure-paragraph|shr-expand-newlines|shr-expand-url|shr-find-fill-point|shr-fold-text|shr-fontize-dom|shr-generic|shr-get-image-data|shr-heading|shr-image-displayer|shr-image-fetched|shr-image-from-data|shr-indent)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:shr-insert-image|shr-insert-table-ruler|shr-insert-table|shr-insert|shr-make-table-1|shr-make-table|shr-max-columns|shr-mouse-browse-url|shr-next-link|shr-parse-base|shr-parse-image-data|shr-parse-style|shr-previous-link|shr-previous-newline-padding-width|shr-pro-rate-columns|shr-put-image|shr-remove-trailing-whitespace|shr-render-buffer|shr-render-region|shr-render-td|shr-rescale-image|shr-save-contents|shr-show-alt-text|shr-store-contents|shr-table-widths|shr-tag-a|shr-tag-audio|shr-tag-b|shr-tag-base|shr-tag-blockquote|shr-tag-body|shr-tag-br|shr-tag-comment|shr-tag-dd|shr-tag-del|shr-tag-div|shr-tag-dl|shr-tag-dt|shr-tag-em|shr-tag-font|shr-tag-h1|shr-tag-h2|shr-tag-h3|shr-tag-h4|shr-tag-h5|shr-tag-h6|shr-tag-hr|shr-tag-i|shr-tag-img|shr-tag-label|shr-tag-li|shr-tag-object|shr-tag-ol|shr-tag-p|shr-tag-pre|shr-tag-s|shr-tag-script|shr-tag-span|shr-tag-strong|shr-tag-style|shr-tag-sub|shr-tag-sup|shr-tag-svg|shr-tag-table-1|shr-tag-table|shr-tag-title|shr-tag-u|shr-tag-ul|shr-tag-video|shr-urlify|shr-zoom-image|shrink-window-horizontally|shrink-window|shuffle-vector|sieve-manage|sieve-mode|sieve-upload-and-bury|sieve-upload-and-kill|sieve-upload|signum|simula-backward-up-level|simula-calculate-indent|simula-context|simula-electric-keyword|simula-electric-label|simula-expand-keyword|simula-expand-stdproc|simula-find-do-match|simula-find-if|simula-find-inspect|simula-forward-down-level|simula-forward-up-level|simula-goto-definition|simula-indent-command|simula-indent-exp|simula-indent-line|simula-inside-parens|simula-install-standard-abbrevs|simula-mode|simula-next-statement|simula-popup-menu|simula-previous-statement|simula-search-backward|simula-search-forward|simula-skip-comment-backward|simula-skip-comment-forward|simula-submit-bug-report|sixth|size-indication-mode|skeleton-insert|skeleton-internal-1|skeleton-internal-list|skeleton-pair-insert-maybe|skeleton-proxy-new|skeleton-read|skip-line-prefix|slitex-mode|slot-boundp|slot-exists-p|slot-makeunbound|slot-missing|slot-unbound|slot-value|smbclient-list-shares|smbclient-mode|smbclient|smerge--get-marker|smerge-apply-resolution-patch|smerge-auto-combine|smerge-auto-leave|smerge-batch-resolve|smerge-check|smerge-combine-with-next|smerge-conflict-overlay|smerge-context-menu|smerge-diff-base-mine|smerge-diff-base-other|smerge-diff-mine-other|smerge-diff|smerge-ediff|smerge-ensure-match|smerge-find-conflict|smerge-get-current|smerge-keep-all|smerge-keep-base|smerge-keep-current|smerge-keep-mine|smerge-keep-n|smerge-keep-other|smerge-kill-current|smerge-makeup-conflict|smerge-match-conflict|smerge-mode-menu|smerge-mode|smerge-next|smerge-popup-context-menu|smerge-prev|smerge-refine-chopup-region|smerge-refine-forward|smerge-refine-highlight-change|smerge-refine-subst|smerge-refine|smerge-remove-props|smerge-resolve--extract-comment|smerge-resolve--normalize|smerge-resolve-all|smerge-resolve|smerge-start-session|smerge-swap|smie--associative-p|smie--matching-block-data|smie--next-indent-change|smie--opener\\\\\\\\/closer-at-point|smie-auto-fill|smie-backward-sexp-command|smie-backward-sexp|smie-blink-matching-check|smie-blink-matching-open|smie-bnf--classify|smie-bnf--closer-alist|smie-bnf--set-class|smie-config--advice|smie-config--get-trace|smie-config--guess-1|smie-config--guess-value|smie-config--guess|smie-config--mode-hook|smie-config--setter|smie-debug--describe-cycle|smie-debug--prec2-cycle|smie-default-backward-token|smie-default-forward-token|smie-edebug|smie-forward-sexp-command|smie-forward-sexp|smie-indent--bolp-1|smie-indent--bolp|smie-indent--hanging-p|smie-indent--offset|smie-indent--parent|smie-indent--rule-1|smie-indent--rule|smie-indent--separator-outdent|smie-indent-after-keyword|smie-indent-backward-token|smie-indent-bob|smie-indent-calculate|smie-indent-close|smie-indent-comment-close|smie-indent-comment-continue|smie-indent-comment-inside|smie-indent-comment|smie-indent-exps|smie-indent-fixindent|smie-indent-forward-token|smie-indent-inside-string|smie-indent-keyword|smie-indent-line|smie-indent-virtual|smie-next-sexp|smie-op-left|smie-op-right|smie-set-prec2tab|smiley-buffer|smiley-region|smtpmail-command-or-throw|smtpmail-cred-cert|smtpmail-cred-key|smtpmail-cred-passwd|smtpmail-cred-port|smtpmail-cred-server|smtpmail-cred-user|smtpmail-deduce-address-list|smtpmail-do-bcc|smtpmail-find-credentials|smtpmail-fqdn|smtpmail-intersection|smtpmail-maybe-append-domain|smtpmail-ok-p|smtpmail-process-filter|smtpmail-query-smtp-server|smtpmail-read-response|smtpmail-response-code|smtpmail-response-text|smtpmail-send-command|smtpmail-send-data-1|smtpmail-send-data|smtpmail-send-it|smtpmail-send-queued-mail|smtpmail-try-auth-method|smtpmail-try-auth-methods|smtpmail-user-mail-address|smtpmail-via-smtp|snake-active-p|snake-display-options|snake-end-game|snake-final-x-velocity|snake-final-y-velocity|snake-init-buffer|snake-mode|snake-move-down|snake-move-left|snake-move-right|snake-move-up|snake-pause-game|snake-reset-game|snake-start-game|snake-update-game|snake-update-score|snake-update-velocity|snake|snarf-spooks|snmp-calculate-indent|snmp-common-mode|snmp-completing-read|snmp-indent-line|snmp-mode-imenu-create-index|snmp-mode|snmpv2-mode|soap-array-type-element-type--cmacro|soap-array-type-element-type|soap-array-type-name--cmacro|soap-array-type-name|soap-array-type-namespace-tag--cmacro|soap-array-type-namespace-tag|soap-array-type-p--cmacro|soap-array-type-p|soap-basic-type-kind--cmacro|soap-basic-type-kind|soap-basic-type-name--cmacro|soap-basic-type-name|soap-basic-type-namespace-tag--cmacro|soap-basic-type-namespace-tag|soap-basic-type-p--cmacro|soap-basic-type-p|soap-binding-name--cmacro|soap-binding-name|soap-binding-namespace-tag--cmacro|soap-binding-namespace-tag|soap-binding-operations--cmacro|soap-binding-operations|soap-binding-p--cmacro|soap-binding-p|soap-binding-port-type--cmacro|soap-binding-port-type|soap-bound-operation-operation--cmacro|soap-bound-operation-operation|soap-bound-operation-p--cmacro|soap-bound-operation-p|soap-bound-operation-soap-action--cmacro|soap-bound-operation-soap-action|soap-bound-operation-use--cmacro|soap-bound-operation-use|soap-create-envelope|soap-decode-any-type|soap-decode-array-type|soap-decode-array|soap-decode-basic-type|soap-decode-sequence-type|soap-decode-type|soap-default-soapenc-types|soap-default-xsd-types|soap-element-fq-name|soap-element-name--cmacro|soap-element-name|soap-element-namespace-tag--cmacro|soap-element-namespace-tag|soap-element-p--cmacro|soap-element-p|soap-encode-array-type|soap-encode-basic-type|soap-encode-body|soap-encode-sequence-type|soap-encode-simple-type|soap-encode-value|soap-extract-xmlns|soap-get-target-namespace|soap-invoke|soap-l2fq|soap-l2wk|soap-load-wsdl-from-url|soap-load-wsdl|soap-message-name--cmacro|soap-message-name|soap-message-namespace-tag--cmacro|soap-message-namespace-tag|soap-message-p--cmacro|soap-message-p|soap-message-parts--cmacro|soap-message-parts|soap-namespace-elements--cmacro|soap-namespace-elements|soap-namespace-get|soap-namespace-link-name--cmacro|soap-namespace-link-name|soap-namespace-link-namespace-tag--cmacro|soap-namespace-link-namespace-tag|soap-namespace-link-p--cmacro|soap-namespace-link-p|soap-namespace-link-target--cmacro|soap-namespace-link-target|soap-namespace-name--cmacro|soap-namespace-name|soap-namespace-p--cmacro|soap-namespace-p|soap-namespace-put-link|soap-namespace-put|soap-operation-faults--cmacro|soap-operation-faults|soap-operation-input--cmacro|soap-operation-input|soap-operation-name--cmacro|soap-operation-name|soap-operation-namespace-tag--cmacro|soap-operation-namespace-tag|soap-operation-output--cmacro|soap-operation-output|soap-operation-p--cmacro|soap-operation-p|soap-operation-parameter-order--cmacro|soap-operation-parameter-order|soap-parse-binding|soap-parse-complex-type-complex-content|soap-parse-complex-type-sequence|soap-parse-complex-type|soap-parse-envelope|soap-parse-message|soap-parse-operation|soap-parse-port-type|soap-parse-response|soap-parse-schema-element|soap-parse-schema|soap-parse-sequence|soap-parse-simple-type|soap-parse-wsdl|soap-port-binding--cmacro|soap-port-binding|soap-port-name--cmacro|soap-port-name|soap-port-namespace-tag--cmacro|soap-port-namespace-tag|soap-port-p--cmacro|soap-port-p|soap-port-service-url--cmacro|soap-port-service-url|soap-port-type-name--cmacro|soap-port-type-name|soap-port-type-namespace-tag--cmacro|soap-port-type-namespace-tag|soap-port-type-operations--cmacro|soap-port-type-operations|soap-port-type-p--cmacro|soap-port-type-p|soap-resolve-references-for-array-type|soap-resolve-references-for-binding|soap-resolve-references-for-element|soap-resolve-references-for-message|soap-resolve-references-for-operation|soap-resolve-references-for-port|soap-resolve-references-for-sequence-type|soap-resolve-references-for-simple-type|soap-sequence-element-multiple\\\\\\\\?--cmacro|soap-sequence-element-multiple\\\\\\\\?|soap-sequence-element-name--cmacro|soap-sequence-element-name|soap-sequence-element-nillable\\\\\\\\?--cmacro|soap-sequence-element-nillable\\\\\\\\?|soap-sequence-element-p--cmacro|soap-sequence-element-p|soap-sequence-element-type--cmacro|soap-sequence-element-type|soap-sequence-type-elements--cmacro|soap-sequence-type-elements|soap-sequence-type-name--cmacro|soap-sequence-type-name|soap-sequence-type-namespace-tag--cmacro|soap-sequence-type-namespace-tag|soap-sequence-type-p--cmacro|soap-sequence-type-p|soap-sequence-type-parent--cmacro|soap-sequence-type-parent|soap-simple-type-enumeration--cmacro|soap-simple-type-enumeration|soap-simple-type-kind--cmacro|soap-simple-type-kind|soap-simple-type-name--cmacro|soap-simple-type-name|soap-simple-type-namespace-tag--cmacro|soap-simple-type-namespace-tag|soap-simple-type-p--cmacro|soap-simple-type-p|soap-type-p|soap-warning|soap-with-local-xmlns|soap-wk2l|soap-wsdl-add-alias|soap-wsdl-add-namespace|soap-wsdl-alias-table--cmacro|soap-wsdl-alias-table|soap-wsdl-find-namespace|soap-wsdl-get|soap-wsdl-namespaces--cmacro|soap-wsdl-namespaces|soap-wsdl-origin--cmacro|soap-wsdl-origin|soap-wsdl-p--cmacro|soap-wsdl-p|soap-wsdl-ports--cmacro|soap-wsdl-ports|soap-wsdl-resolve-references|soap-xml-get-attribute-or-nil1|soap-xml-get-children1|socks-build-auth-list|socks-chap-auth|socks-cram-auth|socks-filter|socks-find-route|socks-find-services-entry|socks-gssapi-auth|socks-nslookup-host|socks-open-connection|socks-open-network-stream|socks-original-open-network-stream|socks-parse-services|socks-register-authentication-method|socks-send-command|socks-split-string|socks-unregister-authentication-method|socks-username\\\\\\\\/password-auth-filter|socks-username\\\\\\\\/password-auth|socks-wait-for-state-change|solicit-char-in-string|solitaire-build-mode-line|solitaire-center-point|solitaire-check|solitaire-current-line|solitaire-do-check|solitaire-down|solitaire-insert-board|solitaire-left|solitaire-mode|solitaire-move-down|solitaire-move-left|solitaire-move-right|solitaire-move-up|solitaire-move|solitaire-possible-move|solitaire-right|solitaire-solve|solitaire-undo|solitaire-up|solitaire|some-window|some|sort\\\\\\\\*|sort-build-lists|sort-charsets|sort-coding-systems|sort-fields-1|sort-pages-buffer|sort-pages-in-region|sort-regexp-fields-next-record|sort-reorder-buffer|sort-skip-fields|soundex|spaces-string|spam-initialize|spam-report-agentize|spam-report-deagentize|spam-report-process-queue|spam-report-url-ping-mm-url|spam-report-url-to-file|special-display-p|special-display-popup-frame|speedbar-add-expansion-list|speedbar-add-ignored-directory-regexp|speedbar-add-ignored-path-regexp|speedbar-add-indicator|speedbar-add-localized-speedbar-support|speedbar-add-mode-functions-list|speedbar-add-supported-extension|speedbar-backward-list|speedbar-buffer-buttons-engine|speedbar-buffer-buttons-temp|speedbar-buffer-buttons|speedbar-buffer-click|speedbar-buffer-kill-buffer|speedbar-buffer-revert-buffer|speedbar-buffers-item-info|speedbar-buffers-line-directory|speedbar-buffers-line-path|speedbar-buffers-tail-notes|speedbar-center-buffer-smartly|speedbar-change-expand-button-char|speedbar-change-initial-expansion-list|speedbar-check-obj-this-line|speedbar-check-objects|speedbar-check-read-only|speedbar-check-vc-this-line|speedbar-check-vc|speedbar-clear-current-file|speedbar-click|speedbar-contract-line-descendants|speedbar-contract-line|speedbar-create-directory)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:speedbar-create-tag-hierarchy|speedbar-current-frame|speedbar-customize|speedbar-default-directory-list|speedbar-delete-overlay|speedbar-delete-subblock|speedbar-dir-follow|speedbar-directory-buttons-follow|speedbar-directory-buttons|speedbar-directory-line|speedbar-dired|speedbar-disable-update|speedbar-do-function-pointer|speedbar-edit-line|speedbar-enable-update|speedbar-expand-line-descendants|speedbar-expand-line|speedbar-extension-list-to-regex|speedbar-extract-one-symbol|speedbar-fetch-dynamic-etags|speedbar-fetch-dynamic-imenu|speedbar-fetch-dynamic-tags|speedbar-fetch-replacement-function|speedbar-file-lists|speedbar-files-item-info|speedbar-files-line-directory|speedbar-find-file-in-frame|speedbar-find-file|speedbar-find-selected-file|speedbar-flush-expand-line|speedbar-forward-list|speedbar-frame-mode|speedbar-frame-reposition-smartly|speedbar-frame-width|speedbar-generic-item-info|speedbar-generic-list-group-p|speedbar-generic-list-positioned-group-p|speedbar-generic-list-tag-p|speedbar-get-focus|speedbar-goto-this-file|speedbar-handle-delete-frame|speedbar-highlight-one-tag-line|speedbar-image-dump|speedbar-initial-expansion-list|speedbar-initial-keymap|speedbar-initial-menu|speedbar-initial-stealthy-functions|speedbar-insert-button|speedbar-insert-etags-list|speedbar-insert-files-at-point|speedbar-insert-generic-list|speedbar-insert-image-button-maybe|speedbar-insert-imenu-list|speedbar-insert-separator|speedbar-item-byte-compile|speedbar-item-copy|speedbar-item-delete|speedbar-item-info-file-helper|speedbar-item-info-tag-helper|speedbar-item-info|speedbar-item-load|speedbar-item-object-delete|speedbar-item-rename|speedbar-line-directory|speedbar-line-file|speedbar-line-path|speedbar-line-text|speedbar-line-token|speedbar-make-button|speedbar-make-overlay|speedbar-make-specialized-keymap|speedbar-make-tag-line|speedbar-maybe-add-localized-support|speedbar-maybee-jump-to-attached-frame|speedbar-message|speedbar-mode-line-update|speedbar-mode|speedbar-mouse-item-info|speedbar-navigate-list|speedbar-next|speedbar-overlay-put|speedbar-parse-c-or-c\\\\\\\\+\\\\\\\\+tag|speedbar-parse-tex-string|speedbar-path-line|speedbar-position-cursor-on-line|speedbar-prefix-group-tag-hierarchy|speedbar-prev|speedbar-recenter-to-top|speedbar-recenter|speedbar-reconfigure-keymaps|speedbar-refresh|speedbar-remove-localized-speedbar-support|speedbar-reset-scanners|speedbar-restricted-move|speedbar-restricted-next|speedbar-restricted-prev|speedbar-scroll-down|speedbar-scroll-up|speedbar-select-attached-frame|speedbar-set-mode-line-format|speedbar-set-timer|speedbar-show-info-under-mouse|speedbar-simple-group-tag-hierarchy|speedbar-sort-tag-hierarchy|speedbar-stealthy-updates|speedbar-tag-expand|speedbar-tag-file|speedbar-tag-find|speedbar-this-file-in-vc|speedbar-timer-fn|speedbar-toggle-etags|speedbar-toggle-images|speedbar-toggle-line-expansion|speedbar-toggle-show-all-files|speedbar-toggle-sorting|speedbar-toggle-updates|speedbar-track-mouse|speedbar-trim-words-tag-hierarchy|speedbar-try-completion|speedbar-unhighlight-one-tag-line|speedbar-up-directory|speedbar-update-contents|speedbar-update-current-file|speedbar-update-directory-contents|speedbar-update-localized-contents|speedbar-update-special-contents|speedbar-vc-check-dir-p|speedbar-with-attached-buffer|speedbar-with-writable|speedbar-y-or-n-p|speedbar|split-char|split-line|split-window-horizontally|split-window-internal|split-window-vertically|spook|sql--completion-table|sql--make-help-docstring|sql--oracle-show-reserved-words|sql-accumulate-and-indent|sql-add-product-keywords|sql-add-product|sql-beginning-of-statement|sql-buffer-live-p|sql-build-completions-1|sql-build-completions|sql-comint-db2|sql-comint-informix|sql-comint-ingres|sql-comint-interbase|sql-comint-linter|sql-comint-ms|sql-comint-mysql|sql-comint-oracle|sql-comint-postgres|sql-comint-solid|sql-comint-sqlite|sql-comint-sybase|sql-comint-vertica|sql-comint|sql-connect|sql-connection-menu-filter|sql-copy-column|sql-db2|sql-default-value|sql-del-product|sql-end-of-statement|sql-ends-with-prompt-re|sql-escape-newlines-filter|sql-execute-feature|sql-execute|sql-find-sqli-buffer|sql-font-lock-keywords-builder|sql-for-each-login|sql-get-login-ext|sql-get-login|sql-get-product-feature|sql-help-list-products|sql-help|sql-highlight-ansi-keywords|sql-highlight-db2-keywords|sql-highlight-informix-keywords|sql-highlight-ingres-keywords|sql-highlight-interbase-keywords|sql-highlight-linter-keywords|sql-highlight-ms-keywords|sql-highlight-mysql-keywords|sql-highlight-oracle-keywords|sql-highlight-postgres-keywords|sql-highlight-product|sql-highlight-solid-keywords|sql-highlight-sqlite-keywords|sql-highlight-sybase-keywords|sql-highlight-vertica-keywords|sql-informix|sql-ingres|sql-input-sender|sql-interactive-mode-menu|sql-interactive-mode|sql-interactive-remove-continuation-prompt|sql-interbase|sql-linter|sql-list-all|sql-list-table|sql-magic-go|sql-magic-semicolon|sql-make-alternate-buffer-name|sql-mode-menu|sql-mode|sql-ms|sql-mysql|sql-oracle-completion-object|sql-oracle-list-all|sql-oracle-list-table|sql-oracle-restore-settings|sql-oracle-save-settings|sql-oracle|sql-placeholders-filter|sql-postgres-completion-object|sql-postgres|sql-product-font-lock-syntax-alist|sql-product-font-lock|sql-product-interactive|sql-product-syntax-table|sql-read-connection|sql-read-product|sql-read-table-name|sql-redirect-one|sql-redirect-value|sql-redirect|sql-regexp-abbrev-list|sql-regexp-abbrev|sql-remove-tabs-filter|sql-rename-buffer|sql-save-connection|sql-send-buffer|sql-send-line-and-next|sql-send-magic-terminator|sql-send-paragraph|sql-send-region|sql-send-string|sql-set-product-feature|sql-set-product|sql-set-sqli-buffer-generally|sql-set-sqli-buffer|sql-show-sqli-buffer|sql-solid|sql-sqlite-completion-object|sql-sqlite|sql-starts-with-prompt-re|sql-statement-regexp|sql-stop|sql-str-literal|sql-sybase|sql-toggle-pop-to-buffer-after-send-region|sql-vertica|squeeze-bidi-context-1|squeeze-bidi-context|srecode-compile-templates|srecode-document-insert-comment|srecode-document-insert-function-comment|srecode-document-insert-group-comments|srecode-document-insert-variable-one-line-comment|srecode-get-maps|srecode-insert-getset|srecode-insert-prototype-expansion|srecode-insert|srecode-minor-mode|srecode-semantic-handle-:c|srecode-semantic-handle-:cpp|srecode-semantic-handle-:el-custom|srecode-semantic-handle-:el|srecode-semantic-handle-:java|srecode-semantic-handle-:srt|srecode-semantic-handle-:texi|srecode-semantic-handle-:texitag|srecode-template-mode|srecode-template-setup-parser|srt-mode|stable-sort|standard-class|standard-display-8bit|standard-display-ascii|standard-display-cyrillic-translit|standard-display-default|standard-display-european-internal|standard-display-european|standard-display-g1|standard-display-graphic|standard-display-underline|start-kbd-macro|start-of-paragraph-text|start-scheme|starttls-any-program-available|starttls-available-p|starttls-negotiate-gnutls|starttls-negotiate|starttls-open-stream-gnutls|starttls-open-stream|starttls-set-process-query-on-exit-flag|startup-echo-area-message|straight-use-package|store-kbd-macro-event|string-blank-p|string-collate-equalp|string-collate-lessp|string-empty-p|string-insert-rectangle|string-join|string-make-multibyte|string-make-unibyte|string-rectangle-line|string-rectangle|string-remove-prefix|string-remove-suffix|string-reverse|string-to-list|string-to-vector|string-trim-left|string-trim-right|string-trim|strokes-alphabetic-lessp|strokes-button-press-event-p|strokes-button-release-event-p|strokes-click-p|strokes-compose-complex-stroke|strokes-decode-buffer|strokes-define-stroke|strokes-describe-stroke|strokes-distance-squared|strokes-do-complex-stroke|strokes-do-stroke|strokes-eliminate-consecutive-redundancies|strokes-encode-buffer|strokes-event-closest-point-1|strokes-event-closest-point|strokes-execute-stroke|strokes-fill-current-buffer-with-whitespace|strokes-fill-stroke|strokes-get-grid-position|strokes-get-stroke-extent|strokes-global-set-stroke-string|strokes-global-set-stroke|strokes-help|strokes-lift-p|strokes-list-strokes|strokes-load-user-strokes|strokes-match-stroke|strokes-mode|strokes-mouse-event-p|strokes-prompt-user-save-strokes|strokes-rate-stroke|strokes-read-complex-stroke|strokes-read-stroke|strokes-remassoc|strokes-renormalize-to-grid|strokes-report-bug|strokes-square|strokes-toggle-strokes-buffer|strokes-unload-function|strokes-unset-last-stroke|strokes-update-window-configuration|strokes-window-configuration-changed-p|strokes-xpm-char-bit-p|strokes-xpm-char-on-p|strokes-xpm-decode-char|strokes-xpm-encode-length-as-string|strokes-xpm-for-compressed-string|strokes-xpm-for-stroke|strokes-xpm-to-compressed-string|studlify-buffer|studlify-region|studlify-word|sublis|subr-name|subregexp-context-p|subseq|subsetp|subst-char-in-string|subst-if-not|subst-if|subst|substitute-env-in-file-name|substitute-env-vars|substitute-if-not|substitute-if|substitute-key-definition-key|substitute|subtract-time|subword-mode|sunrise-sunset|superword-mode|suspicious-object|svref|switch-to-completions|switch-to-lisp|switch-to-prolog|switch-to-scheme|switch-to-tcl|symbol-at-point|symbol-before-point-for-complete|symbol-before-point|symbol-macrolet|symbol-under-or-before-point|symbol-under-point|syntax-ppss-after-change-function|syntax-ppss-context|syntax-ppss-debug|syntax-ppss-depth|syntax-ppss-stats|syntax-propertize--shift-groups|syntax-propertize-multiline|syntax-propertize-precompile-rules|syntax-propertize-rules|syntax-propertize-via-font-lock|syntax-propertize-wholelines|syntax-propertize|t-mouse-mode|tabify|table--at-cell-p|table--buffer-substring-and-trim|table--cancel-timer|table--cell-blank-str|table--cell-can-span-p|table--cell-can-split-horizontally-p|table--cell-can-split-vertically-p|table--cell-horizontal-char-p|table--cell-insert-char|table--cell-list-to-coord-list|table--cell-to-coord|table--char-in-str-at-column|table--copy-coordinate|table--create-growing-space-below|table--current-line|table--detect-cell-alignment|table--editable-cell-p|table--fill-region-strictly|table--fill-region|table--find-row-column|table--finish-delayed-tasks|table--generate-source-cell-contents|table--generate-source-cells-in-a-row|table--generate-source-epilogue|table--generate-source-prologue|table--generate-source-scan-lines|table--generate-source-scan-rows|table--get-cell-justify-property|table--get-cell-valign-property|table--get-coordinate|table--get-last-command|table--get-property|table--goto-coordinate|table--horizontal-cell-list|table--horizontally-shift-above-and-below|table--insert-rectangle|table--justify-cell-contents|table--line-column-position|table--log|table--make-cell-map|table--measure-max-width|table--min-coord-list|table--multiply-string|table--offset-coordinate|table--point-entered-cell-function|table--point-in-cell-p|table--point-left-cell-function|table--probe-cell-left-up|table--probe-cell-right-bottom|table--probe-cell|table--put-cell-content-property|table--put-cell-face-property|table--put-cell-indicator-property|table--put-cell-justify-property|table--put-cell-keymap-property|table--put-cell-line-property|table--put-cell-point-entered\\\\\\\\/left-property|table--put-cell-property|table--put-cell-rear-nonsticky|table--put-cell-valign-property|table--put-property|table--query-justification|table--read-from-minibuffer|table--region-in-cell-p|table--remove-blank-lines|table--remove-cell-properties|table--remove-eol-spaces|table--row-column-insertion-point-p|table--set-timer|table--spacify-frame|table--str-index-at-column|table--string-to-number-list|table--test-cell-list|table--transcoord-cache-to-table|table--transcoord-table-to-cache|table--uniform-list-p|table--untabify-line|table--untabify|table--update-cell-face|table--update-cell-heightened|table--update-cell-widened|table--update-cell|table--valign|table--vertical-cell-list|table--warn-incompatibility|table-backward-cell|table-capture|table-delete-column|table-delete-row|table-fixed-width-mode|table-forward-cell|table-function|table-generate-source|table-get-source-info|table-global-menu-map|table-goto-bottom-left-corner|table-goto-bottom-right-corner|table-goto-top-left-corner|table-goto-top-right-corner|table-heighten-cell|table-insert-column|table-insert-row-column|table-insert-row|table-insert-sequence|table-insert|table-justify-cell|table-justify-column|table-justify-row|table-justify|table-narrow-cell|table-put-source-info|table-query-dimension|table-recognize-cell|table-recognize-region)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:table-recognize-table|table-recognize|table-release|table-shorten-cell|table-span-cell|table-split-cell-horizontally|table-split-cell-vertically|table-split-cell|table-unrecognize-cell|table-unrecognize-region|table-unrecognize-table|table-unrecognize|table-widen-cell|table-with-cache-buffer|tabulated-list--column-number|tabulated-list--sort-by-column-name|tabulated-list-col-sort|tabulated-list-delete-entry|tabulated-list-entry-size->|tabulated-list-get-entry|tabulated-list-get-id|tabulated-list-print-col|tabulated-list-print-entry|tabulated-list-print-fake-header|tabulated-list-put-tag|tabulated-list-revert|tabulated-list-set-col|tabulated-list-sort|tag-any-match-p|tag-exact-file-name-match-p|tag-exact-match-p|tag-file-name-match-p|tag-find-file-of-tag-noselect|tag-find-file-of-tag|tag-implicit-name-match-p|tag-partial-file-name-match-p|tag-re-match-p|tag-symbol-match-p|tag-word-match-p|tags-apropos|tags-complete-tags-table-file|tags-completion-at-point-function|tags-completion-table|tags-expand-table-name|tags-included-tables|tags-lazy-completion-table|tags-loop-continue|tags-loop-eval|tags-next-table|tags-query-replace|tags-recognize-empty-tags-table|tags-reset-tags-tables|tags-search|tags-table-check-computed-list|tags-table-extend-computed-list|tags-table-files|tags-table-including|tags-table-list-member|tags-table-mode|tags-verify-table|tags-with-face|tai-viet-composition-function|tailp|talk-add-display|talk-connect|talk-disconnect|talk-handle-delete-frame|talk-split-up-frame|talk-update-buffers|talk|tar--check-descriptor|tar--extract|tar-alter-one-field|tar-change-major-mode-hook|tar-chgrp-entry|tar-chmod-entry|tar-chown-entry|tar-clear-modification-flags|tar-clip-time-string|tar-copy|tar-current-descriptor|tar-data-swapped-p|tar-display-other-window|tar-expunge-internal|tar-expunge|tar-extract-other-window|tar-extract|tar-file-name-handler|tar-flag-deleted|tar-get-descriptor|tar-get-file-descriptor|tar-grind-file-mode|tar-header-block-check-checksum|tar-header-block-checksum|tar-header-block-summarize|tar-header-block-tokenize|tar-header-checksum--cmacro|tar-header-checksum|tar-header-data-end|tar-header-data-start--cmacro|tar-header-data-start|tar-header-date--cmacro|tar-header-date|tar-header-dmaj--cmacro|tar-header-dmaj|tar-header-dmin--cmacro|tar-header-dmin|tar-header-gid--cmacro|tar-header-gid|tar-header-gname--cmacro|tar-header-gname|tar-header-header-start--cmacro|tar-header-header-start|tar-header-link-name--cmacro|tar-header-link-name|tar-header-link-type--cmacro|tar-header-link-type|tar-header-magic--cmacro|tar-header-magic|tar-header-mode--cmacro|tar-header-mode|tar-header-name--cmacro|tar-header-name|tar-header-p--cmacro|tar-header-p|tar-header-size--cmacro|tar-header-size|tar-header-uid--cmacro|tar-header-uid|tar-header-uname--cmacro|tar-header-uname|tar-mode-kill-buffer-hook|tar-mode-revert|tar-mode|tar-mouse-extract|tar-next-line|tar-octal-time|tar-pad-to-blocksize|tar-parse-octal-integer-safe|tar-parse-octal-integer|tar-parse-octal-long-integer|tar-previous-line|tar-read-file-name|tar-rename-entry|tar-roundup-512|tar-subfile-mode|tar-subfile-save-buffer|tar-summarize-buffer|tar-swap-data|tar-unflag-backwards|tar-unflag|tar-untar-buffer|tar-view|tar-write-region-annotate|tcl-add-log-defun|tcl-auto-fill-mode|tcl-beginning-of-defun|tcl-calculate-indent|tcl-comment-indent|tcl-current-word|tcl-electric-brace|tcl-electric-char|tcl-electric-hash|tcl-end-of-defun|tcl-eval-defun|tcl-eval-region|tcl-figure-type|tcl-files-alist|tcl-filter|tcl-guess-application|tcl-hairy-scan-for-comment|tcl-hashify-buffer|tcl-help-on-word|tcl-help-snarf-commands|tcl-in-comment|tcl-indent-command|tcl-indent-exp|tcl-indent-for-comment|tcl-indent-line|tcl-load-file|tcl-mark-defun|tcl-mark|tcl-mode-menu|tcl-mode|tcl-outline-level|tcl-popup-menu|tcl-quote|tcl-real-command-p|tcl-real-comment-p|tcl-reread-help-files|tcl-restart-with-file|tcl-send-region|tcl-send-string|tcl-set-font-lock-keywords|tcl-set-proc-regexp|tcl-uncomment-region|tcl-word-no-props|tear-off-window|telnet-c-z|telnet-check-software-type-initialize|telnet-filter|telnet-initial-filter|telnet-interrupt-subjob|telnet-mode|telnet-send-input|telnet-simple-send|telnet|temp-buffer-resize-mode|temp-buffer-window-setup|temp-buffer-window-show|tempo-add-tag|tempo-backward-mark|tempo-build-collection|tempo-complete-tag|tempo-define-template|tempo-display-completions|tempo-expand-if-complete|tempo-find-match-string|tempo-forget-insertions|tempo-forward-mark|tempo-insert-mark|tempo-insert-named|tempo-insert-prompt-compat|tempo-insert-prompt|tempo-insert-template|tempo-insert|tempo-invalidate-collection|tempo-is-user-element|tempo-lookup-named|tempo-process-and-insert-string|tempo-save-named|tempo-template-dcl-f\\\\\\\\$context|tempo-template-dcl-f\\\\\\\\$csid|tempo-template-dcl-f\\\\\\\\$cvsi|tempo-template-dcl-f\\\\\\\\$cvtime|tempo-template-dcl-f\\\\\\\\$cvui|tempo-template-dcl-f\\\\\\\\$device|tempo-template-dcl-f\\\\\\\\$directory|tempo-template-dcl-f\\\\\\\\$edit|tempo-template-dcl-f\\\\\\\\$element|tempo-template-dcl-f\\\\\\\\$environment|tempo-template-dcl-f\\\\\\\\$extract|tempo-template-dcl-f\\\\\\\\$fao|tempo-template-dcl-f\\\\\\\\$file_attributes|tempo-template-dcl-f\\\\\\\\$getdvi|tempo-template-dcl-f\\\\\\\\$getjpi|tempo-template-dcl-f\\\\\\\\$getqui|tempo-template-dcl-f\\\\\\\\$getsyi|tempo-template-dcl-f\\\\\\\\$identifier|tempo-template-dcl-f\\\\\\\\$integer|tempo-template-dcl-f\\\\\\\\$length|tempo-template-dcl-f\\\\\\\\$locate|tempo-template-dcl-f\\\\\\\\$message|tempo-template-dcl-f\\\\\\\\$mode|tempo-template-dcl-f\\\\\\\\$parse|tempo-template-dcl-f\\\\\\\\$pid|tempo-template-dcl-f\\\\\\\\$privilege|tempo-template-dcl-f\\\\\\\\$process|tempo-template-dcl-f\\\\\\\\$search|tempo-template-dcl-f\\\\\\\\$setprv|tempo-template-dcl-f\\\\\\\\$string|tempo-template-dcl-f\\\\\\\\$time|tempo-template-dcl-f\\\\\\\\$trnlnm|tempo-template-dcl-f\\\\\\\\$type|tempo-template-dcl-f\\\\\\\\$user|tempo-template-dcl-f\\\\\\\\$verify|tempo-template-snmp-object-type|tempo-template-snmp-table-type|tempo-template-snmpv2-object-type|tempo-template-snmpv2-table-type|tempo-template-snmpv2-textual-convention|tempo-use-tag-list|tenth|term-adjust-current-row-cache|term-after-pmark-p|term-ansi-make-term|term-ansi-reset|term-args|term-arguments|term-backward-matching-input|term-bol|term-buffer-vertical-motion|term-char-mode|term-check-kill-echo-list|term-check-proc|term-check-size|term-check-source|term-command-hook|term-continue-subjob|term-copy-old-input|term-current-column|term-current-row|term-delchar-or-maybe-eof|term-delete-chars|term-delete-lines|term-delim-arg|term-directory|term-display-buffer-line|term-display-line|term-down|term-dynamic-complete-as-filename|term-dynamic-complete-filename|term-dynamic-complete|term-dynamic-list-completions|term-dynamic-list-filename-completions|term-dynamic-list-input-ring|term-dynamic-simple-complete|term-emulate-terminal|term-erase-in-display|term-erase-in-line|term-exec-1|term-exec|term-extract-string|term-forward-matching-input|term-get-old-input-default|term-get-source|term-goto-home|term-goto|term-handle-ansi-escape|term-handle-ansi-terminal-messages|term-handle-colors-array|term-handle-deferred-scroll|term-handle-exit|term-handle-scroll|term-handling-pager|term-horizontal-column|term-how-many-region|term-in-char-mode|term-in-line-mode|term-insert-char|term-insert-lines|term-insert-spaces|term-interrupt-subjob|term-kill-input|term-kill-output|term-kill-subjob|term-line-mode|term-magic-space|term-match-partial-filename|term-mode|term-mouse-paste|term-move-columns|term-next-input|term-next-matching-input-from-input|term-next-matching-input|term-next-prompt|term-pager-back-line|term-pager-back-page|term-pager-bob|term-pager-continue|term-pager-disable|term-pager-discard|term-pager-enable|term-pager-enabled|term-pager-eob|term-pager-help|term-pager-line|term-pager-menu|term-pager-page|term-pager-toggle|term-paste|term-previous-input-string|term-previous-input|term-previous-matching-input-from-input|term-previous-matching-input-string-position|term-previous-matching-input-string|term-previous-matching-input|term-previous-prompt|term-proc-query|term-process-pager|term-quit-subjob|term-read-input-ring|term-read-noecho|term-regexp-arg|term-replace-by-expanded-filename|term-replace-by-expanded-history-before-point|term-replace-by-expanded-history|term-reset-size|term-reset-terminal|term-search-arg|term-search-start|term-send-backspace|term-send-del|term-send-down|term-send-end|term-send-eof|term-send-home|term-send-input|term-send-insert|term-send-invisible|term-send-left|term-send-next|term-send-prior|term-send-raw-meta|term-send-raw-string|term-send-raw|term-send-region|term-send-right|term-send-string|term-send-up|term-sentinel|term-set-escape-char|term-set-scroll-region|term-show-maximum-output|term-show-output|term-signals-menu|term-simple-send|term-skip-prompt|term-source-default|term-start-line-column|term-start-output-log|term-stop-output-log|term-stop-subjob|term-terminal-menu|term-terminal-pos|term-unwrap-line|term-update-mode-line|term-using-alternate-sub-buffer|term-vertical-motion|term-window-width|term-within-quotes|term-word|term-write-input-ring|term|testcover-1value|testcover-after|testcover-end|testcover-enter|testcover-mark|testcover-read|testcover-reinstrument-compose|testcover-reinstrument-list|testcover-reinstrument|testcover-this-defun|testcover-unmark-all|tetris-active-p|tetris-default-update-speed-function|tetris-display-options|tetris-draw-border-p|tetris-draw-next-shape|tetris-draw-score|tetris-draw-shape|tetris-end-game|tetris-erase-shape|tetris-full-row|tetris-get-shape-cell|tetris-get-tick-period|tetris-init-buffer|tetris-mode|tetris-move-bottom|tetris-move-left|tetris-move-right|tetris-new-shape|tetris-pause-game|tetris-reset-game|tetris-rotate-next|tetris-rotate-prev|tetris-shape-done|tetris-shape-rotations|tetris-shape-width|tetris-shift-down|tetris-shift-row|tetris-start-game|tetris-test-shape|tetris-update-game|tetris-update-score|tetris|tex-alt-print|tex-append|tex-bibtex-file|tex-buffer|tex-categorize-whitespace|tex-close-latex-block|tex-cmd-doc-view|tex-command-active-p|tex-command-executable|tex-common-initialization|tex-compile-default|tex-compile|tex-count-words|tex-current-defun-name|tex-define-common-keys|tex-delete-last-temp-files|tex-display-shell|tex-env-mark|tex-executable-exists-p|tex-expand-files|tex-facemenu-add-face-function|tex-feed-input|tex-file|tex-font-lock-append-prop|tex-font-lock-match-suscript|tex-font-lock-suscript|tex-font-lock-syntactic-face-function|tex-font-lock-unfontify-region|tex-font-lock-verb|tex-format-cmd|tex-generate-zap-file-name|tex-goto-last-unclosed-latex-block|tex-guess-main-file|tex-guess-mode|tex-insert-braces|tex-insert-quote|tex-kill-job|tex-last-unended-begin|tex-last-unended-eparen|tex-latex-block|tex-main-file|tex-mode-flyspell-verify|tex-mode-internal|tex-mode|tex-next-unmatched-end|tex-next-unmatched-eparen|tex-old-error-file-name|tex-print|tex-recenter-output-buffer|tex-region-header|tex-region|tex-search-noncomment|tex-send-command|tex-send-tex-command|tex-set-buffer-directory|tex-shell-buf-no-error|tex-shell-buf|tex-shell-proc|tex-shell-running|tex-shell-sentinel|tex-shell|tex-show-print-queue|tex-start-shell|tex-start-tex|tex-string-prefix-p|tex-summarize-command|tex-suscript-height|tex-terminate-paragraph|tex-uptodate-p|tex-validate-buffer|tex-validate-region|tex-view|texi2info|texinfmt-version|texinfo-alias|texinfo-all-menus-update|texinfo-alphaenumerate-item|texinfo-alphaenumerate|texinfo-anchor|texinfo-append-refill|texinfo-capsenumerate-item|texinfo-capsenumerate|texinfo-check-for-node-name|texinfo-clean-up-node-line|texinfo-clear|texinfo-clone-environment|texinfo-copy-menu-title|texinfo-copy-menu|texinfo-copy-next-section-title|texinfo-copy-node-name|texinfo-copy-section-title|texinfo-copying|texinfo-current-defun-name|texinfo-define-common-keys|texinfo-define-info-enclosure|texinfo-delete-existing-pointers|texinfo-delete-from-print-queue|texinfo-delete-old-menu|texinfo-description|texinfo-discard-command-and-arg|texinfo-discard-command|texinfo-discard-line-with-args|texinfo-discard-line|texinfo-do-flushright|texinfo-do-itemize|texinfo-end-alphaenumerate|texinfo-end-capsenumerate|texinfo-end-defun|texinfo-end-direntry|texinfo-end-enumerate|texinfo-end-example|texinfo-end-flushleft)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:texinfo-end-flushright|texinfo-end-ftable|texinfo-end-indextable|texinfo-end-itemize|texinfo-end-multitable|texinfo-end-table|texinfo-end-vtable|texinfo-enumerate-item|texinfo-enumerate|texinfo-every-node-update|texinfo-filter|texinfo-find-higher-level-node|texinfo-find-lower-level-node|texinfo-find-pointer|texinfo-footnotestyle|texinfo-format-\\\\\\\\.|texinfo-format-:|texinfo-format-French-OE-ligature|texinfo-format-French-oe-ligature|texinfo-format-German-sharp-S|texinfo-format-Latin-Scandinavian-AE|texinfo-format-Latin-Scandinavian-ae|texinfo-format-Polish-suppressed-L|texinfo-format-Polish-suppressed-l-lower-case|texinfo-format-Scandinavian-A-with-circle|texinfo-format-Scandinavian-O-with-slash|texinfo-format-Scandinavian-a-with-circle|texinfo-format-Scandinavian-o-with-slash-lower-case|texinfo-format-TeX|texinfo-format-begin-end|texinfo-format-begin|texinfo-format-breve-accent|texinfo-format-buffer-1|texinfo-format-buffer|texinfo-format-bullet|texinfo-format-cedilla-accent|texinfo-format-center|texinfo-format-chapter-1|texinfo-format-chapter|texinfo-format-cindex|texinfo-format-code|texinfo-format-convert|texinfo-format-copyright|texinfo-format-ctrl|texinfo-format-defcv|texinfo-format-deffn|texinfo-format-defindex|texinfo-format-defivar|texinfo-format-defmethod|texinfo-format-defn|texinfo-format-defop|texinfo-format-deftypefn|texinfo-format-deftypefun|texinfo-format-defun-1|texinfo-format-defun|texinfo-format-defunx|texinfo-format-dircategory|texinfo-format-direntry|texinfo-format-documentdescription|texinfo-format-dotless|texinfo-format-dots|texinfo-format-email|texinfo-format-emph|texinfo-format-end-node|texinfo-format-end|texinfo-format-enddots|texinfo-format-equiv|texinfo-format-error|texinfo-format-example|texinfo-format-exdent|texinfo-format-expand-region|texinfo-format-expansion|texinfo-format-findex|texinfo-format-flushleft|texinfo-format-flushright|texinfo-format-footnote|texinfo-format-hacek-accent|texinfo-format-html|texinfo-format-ifeq|texinfo-format-ifhtml|texinfo-format-ifnotinfo|texinfo-format-ifplaintext|texinfo-format-iftex|texinfo-format-ifxml|texinfo-format-ignore|texinfo-format-image|texinfo-format-inforef|texinfo-format-kbd|texinfo-format-key|texinfo-format-kindex|texinfo-format-long-Hungarian-umlaut|texinfo-format-menu|texinfo-format-minus|texinfo-format-node|texinfo-format-noop|texinfo-format-option|texinfo-format-overdot-accent|texinfo-format-paragraph-break|texinfo-format-parse-args|texinfo-format-parse-defun-args|texinfo-format-parse-line-args|texinfo-format-pindex|texinfo-format-point|texinfo-format-pounds|texinfo-format-print|texinfo-format-printindex|texinfo-format-pxref|texinfo-format-refill|texinfo-format-region|texinfo-format-result|texinfo-format-ring-accent|texinfo-format-scan|texinfo-format-section|texinfo-format-sectionpad|texinfo-format-separate-node|texinfo-format-setfilename|texinfo-format-soft-hyphen|texinfo-format-sp|texinfo-format-specialized-defun|texinfo-format-subsection|texinfo-format-subsubsection|texinfo-format-synindex|texinfo-format-tex|texinfo-format-tie-after-accent|texinfo-format-timestamp|texinfo-format-tindex|texinfo-format-titlepage|texinfo-format-titlespec|texinfo-format-today|texinfo-format-underbar-accent|texinfo-format-underdot-accent|texinfo-format-upside-down-exclamation-mark|texinfo-format-upside-down-question-mark|texinfo-format-uref|texinfo-format-var|texinfo-format-verb|texinfo-format-vindex|texinfo-format-xml|texinfo-format-xref|texinfo-ftable-item|texinfo-ftable|texinfo-hierarchic-level|texinfo-if-clear|texinfo-if-set|texinfo-incorporate-descriptions|texinfo-incorporate-menu-entry-names|texinfo-indent-menu-description|texinfo-index-defcv|texinfo-index-deffn|texinfo-index-defivar|texinfo-index-defmethod|texinfo-index-defop|texinfo-index-deftypefn|texinfo-index-defun|texinfo-index|texinfo-indextable-item|texinfo-indextable|texinfo-insert-@code|texinfo-insert-@dfn|texinfo-insert-@email|texinfo-insert-@emph|texinfo-insert-@end|texinfo-insert-@example|texinfo-insert-@file|texinfo-insert-@item|texinfo-insert-@kbd|texinfo-insert-@node|texinfo-insert-@noindent|texinfo-insert-@quotation|texinfo-insert-@samp|texinfo-insert-@strong|texinfo-insert-@table|texinfo-insert-@uref|texinfo-insert-@url|texinfo-insert-@var|texinfo-insert-block|texinfo-insert-braces|texinfo-insert-master-menu-list|texinfo-insert-menu|texinfo-insert-node-lines|texinfo-insert-pointer|texinfo-insert-quote|texinfo-insertcopying|texinfo-inside-env-p|texinfo-inside-macro-p|texinfo-item|texinfo-itemize-item|texinfo-itemize|texinfo-last-unended-begin|texinfo-locate-menu-p|texinfo-make-menu-list|texinfo-make-menu|texinfo-make-one-menu|texinfo-master-menu-list|texinfo-master-menu|texinfo-menu-copy-old-description|texinfo-menu-end|texinfo-menu-first-node|texinfo-menu-indent-description|texinfo-menu-locate-entry-p|texinfo-mode-flyspell-verify|texinfo-mode-menu|texinfo-mode|texinfo-multi-file-included-list|texinfo-multi-file-master-menu-list|texinfo-multi-file-update|texinfo-multi-files-insert-main-menu|texinfo-multiple-files-update|texinfo-multitable-extract-row|texinfo-multitable-item|texinfo-multitable-widths|texinfo-multitable|texinfo-next-unmatched-end|texinfo-noindent|texinfo-old-menu-p|texinfo-optional-braces-discard|texinfo-paragraphindent|texinfo-parse-arg-discard|texinfo-parse-expanded-arg|texinfo-parse-line-arg|texinfo-pointer-name|texinfo-pop-stack|texinfo-print-index|texinfo-push-stack|texinfo-quit-job|texinfo-raise-lower-sections|texinfo-sequential-node-update|texinfo-sequentially-find-pointer|texinfo-sequentially-insert-pointer|texinfo-sequentially-update-the-node|texinfo-set|texinfo-show-structure|texinfo-sort-region|texinfo-sort-startkeyfun|texinfo-specific-section-type|texinfo-start-menu-description|texinfo-table-item|texinfo-table|texinfo-tex-buffer|texinfo-tex-print|texinfo-tex-region|texinfo-tex-view|texinfo-texindex|texinfo-top-pointer-case|texinfo-unsupported|texinfo-update-menu-region-beginning|texinfo-update-menu-region-end|texinfo-update-node|texinfo-update-the-node|texinfo-value|texinfo-vtable-item|texinfo-vtable|text-clone--maintain|text-clone-create|text-mode-hook-identify|text-scale-adjust|text-scale-decrease|text-scale-increase|text-scale-mode|text-scale-set|thai-compose-buffer|thai-compose-region|thai-compose-string|thai-composition-function|the|thing-at-point--bounds-of-markedup-url|thing-at-point--bounds-of-well-formed-url|thing-at-point-bounds-of-list-at-point|thing-at-point-bounds-of-url-at-point|thing-at-point-looking-at|thing-at-point-newsgroup-p|thing-at-point-url-at-point|third|this-major-mode-requires-vi-state|this-single-command-keys|this-single-command-raw-keys|thread-first|thread-last|thumbs-backward-char|thumbs-backward-line|thumbs-call-convert|thumbs-call-setroot-command|thumbs-cleanup-thumbsdir|thumbs-current-image|thumbs-delete-images|thumbs-dired-setroot|thumbs-dired-show-marked|thumbs-dired-show|thumbs-dired|thumbs-display-thumbs-buffer|thumbs-do-thumbs-insertion|thumbs-emboss-image|thumbs-enlarge-image|thumbs-file-alist|thumbs-file-list|thumbs-file-size|thumbs-find-image-at-point-other-window|thumbs-find-image-at-point|thumbs-find-image|thumbs-find-thumb|thumbs-forward-char|thumbs-forward-line|thumbs-image-type|thumbs-insert-image|thumbs-insert-thumb|thumbs-kill-buffer|thumbs-make-thumb|thumbs-mark|thumbs-mode|thumbs-modify-image|thumbs-monochrome-image|thumbs-mouse-find-image|thumbs-negate-image|thumbs-new-image-size|thumbs-next-image|thumbs-previous-image|thumbs-redraw-buffer|thumbs-rename-images|thumbs-resize-image-1|thumbs-resize-image|thumbs-rotate-left|thumbs-rotate-right|thumbs-save-current-image|thumbs-set-image-at-point-to-root-window|thumbs-set-root|thumbs-show-from-dir|thumbs-show-image-num|thumbs-show-more-images|thumbs-show-name|thumbs-show-thumbs-list|thumbs-shrink-image|thumbs-temp-dir|thumbs-temp-file|thumbs-thumbname|thumbs-thumbsdir|thumbs-unmark|thumbs-view-image-mode|thumbs|tibetan-char-p|tibetan-compose-buffer|tibetan-compose-region|tibetan-compose-string|tibetan-decompose-buffer|tibetan-decompose-region|tibetan-decompose-string|tibetan-post-read-conversion|tibetan-pre-write-canonicalize-for-unicode|tibetan-pre-write-conversion|tibetan-tibetan-to-transcription|tibetan-transcription-to-tibetan|tildify--deprecated-ignore-evironments|tildify--find-env|tildify--foreach-region|tildify--pick-alist-entry|tildify-buffer|tildify-foreach-ignore-environments|tildify-region|tildify-tildify|time-date--day-in-year|time-since|time-stamp-conv-warn|time-stamp-do-number|time-stamp-fconcat|time-stamp-mail-host-name|time-stamp-once|time-stamp-string-preprocess|time-stamp-string|time-stamp-toggle-active|time-stamp|time-to-number-of-days|time-to-seconds|timeclock-ask-for-project|timeclock-ask-for-reason|timeclock-change|timeclock-completing-read|timeclock-current-debt|timeclock-currently-in-p|timeclock-day-alist|timeclock-day-base|timeclock-day-begin|timeclock-day-break|timeclock-day-debt|timeclock-day-end|timeclock-day-length|timeclock-day-list-begin|timeclock-day-list-break|timeclock-day-list-debt|timeclock-day-list-end|timeclock-day-list-length|timeclock-day-list-projects|timeclock-day-list-required|timeclock-day-list-span|timeclock-day-list-template|timeclock-day-list|timeclock-day-projects|timeclock-day-required|timeclock-day-span|timeclock-entry-begin|timeclock-entry-comment|timeclock-entry-end|timeclock-entry-length|timeclock-entry-list-begin|timeclock-entry-list-break|timeclock-entry-list-end|timeclock-entry-list-length|timeclock-entry-list-projects|timeclock-entry-list-span|timeclock-entry-project|timeclock-find-discrep|timeclock-generate-report|timeclock-in|timeclock-last-period|timeclock-log-data|timeclock-log|timeclock-make-hours-explicit|timeclock-mean|timeclock-mode-line-display|timeclock-modeline-display|timeclock-out|timeclock-project-alist|timeclock-query-out|timeclock-read-moment|timeclock-reread-log|timeclock-seconds-to-string|timeclock-seconds-to-time|timeclock-status-string|timeclock-time-to-date|timeclock-time-to-seconds|timeclock-update-mode-line|timeclock-update-modeline|timeclock-visit-timelog|timeclock-when-to-leave-string|timeclock-when-to-leave|timeclock-workday-elapsed-string|timeclock-workday-elapsed|timeclock-workday-remaining-string|timeclock-workday-remaining|timeout-event-p|timep|timer--activate|timer--args--cmacro|timer--args|timer--check|timer--function--cmacro|timer--function|timer--high-seconds--cmacro|timer--high-seconds|timer--idle-delay--cmacro|timer--idle-delay|timer--low-seconds--cmacro|timer--low-seconds|timer--psecs--cmacro|timer--psecs|timer--repeat-delay--cmacro|timer--repeat-delay|timer--time-less-p|timer--time-setter|timer--time|timer--triggered--cmacro|timer--triggered|timer--usecs--cmacro|timer--usecs|timer-activate-when-idle|timer-activate|timer-create--cmacro|timer-create|timer-duration|timer-event-handler|timer-inc-time|timer-next-integral-multiple-of-time|timer-relative-time|timer-set-function|timer-set-idle-time|timer-set-time-with-usecs|timer-set-time|timer-until|timerp|timezone-absolute-from-gregorian|timezone-day-number|timezone-fix-time|timezone-last-day-of-month|timezone-leap-year-p|timezone-make-arpa-date|timezone-make-date-arpa-standard|timezone-make-date-sortable|timezone-make-sortable-date|timezone-make-time-string|timezone-parse-date|timezone-parse-time|timezone-time-from-absolute|timezone-time-zone-from-absolute|timezone-zone-to-minute|titdic-convert|tls-certificate-information|tmm--completion-table|tmm-add-one-shortcut|tmm-add-prompt|tmm-add-shortcuts|tmm-completion-delete-prompt|tmm-define-keys|tmm-get-keybind|tmm-get-keymap|tmm-goto-completions|tmm-menubar-mouse|tmm-menubar|tmm-prompt|tmm-remove-inactive-mouse-face|tmm-shortcut|todo--user-error-if-marked-done-item|todo-absolute-file-name|todo-add-category|todo-add-file|todo-adjusted-category-label-length|todo-archive-done-item|todo-archive-mode|todo-backward-category|todo-backward-item|todo-categories-mode|todo-category-completions|todo-category-number|todo-category-select|todo-category-string-matcher-1|todo-category-string-matcher-2|todo-check-file|todo-check-filtered-items-file|todo-check-format|todo-choose-archive|todo-clear-matches|todo-comment-string-matcher|todo-convert-legacy-date-time|todo-convert-legacy-files|todo-current-category|todo-date-string-matcher|todo-delete-category|todo-delete-file|todo-delete-item|todo-desktop-save-buffer)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:todo-diary-expired-matcher|todo-diary-goto-entry|todo-diary-item-p|todo-diary-nonmarking-matcher|todo-display-categories|todo-display-sorted|todo-done-item-p|todo-done-item-section-p|todo-done-separator|todo-done-string-matcher|todo-edit-category-diary-inclusion|todo-edit-category-diary-nonmarking|todo-edit-file|todo-edit-item--diary-inclusion|todo-edit-item--header|todo-edit-item--next-key|todo-edit-item--text|todo-edit-item|todo-edit-mode|todo-edit-quit|todo-files|todo-filter-diary-items-multifile|todo-filter-diary-items|todo-filter-items-1|todo-filter-items-filename|todo-filter-items|todo-filter-regexp-items-multifile|todo-filter-regexp-items|todo-filter-top-priorities-multifile|todo-filter-top-priorities|todo-filtered-items-mode|todo-find-archive|todo-find-filtered-items-file|todo-find-item|todo-forward-category|todo-forward-item|todo-get-count|todo-get-overlay|todo-go-to-source-item|todo-indent|todo-insert-category-line|todo-insert-item--apply-args|todo-insert-item--argsleft|todo-insert-item--basic|todo-insert-item--keyof|todo-insert-item--next-param|todo-insert-item--this-key|todo-insert-item-from-calendar|todo-insert-item|todo-insert-sort-button|todo-insert-with-overlays|todo-item-done|todo-item-end|todo-item-start|todo-item-string|todo-item-undone|todo-jump-to-archive-category|todo-jump-to-category|todo-label-to-key|todo-longest-category-name-length|todo-lower-category|todo-lower-item-priority|todo-make-categories-list|todo-mark-category|todo-marked-item-p|todo-menu|todo-merge-category|todo-mode-external-set|todo-mode-line-control|todo-mode|todo-modes-set-1|todo-modes-set-2|todo-modes-set-3|todo-move-category|todo-move-item|todo-multiple-filter-files|todo-next-button|todo-next-item|todo-nondiary-marker-matcher|todo-padded-string|todo-prefix-overlays|todo-previous-button|todo-previous-item|todo-print-buffer-to-file|todo-print-buffer|todo-quit|todo-raise-category|todo-raise-item-priority|todo-read-category|todo-read-date|todo-read-dayname|todo-read-file-name|todo-read-time|todo-reevaluate-category-completions-files-defcustom|todo-reevaluate-default-file-defcustom|todo-reevaluate-filelist-defcustoms|todo-reevaluate-filter-files-defcustom|todo-remove-item|todo-rename-category|todo-rename-file|todo-repair-categories-sexp|todo-reset-and-enable-done-separator|todo-reset-comment-string|todo-reset-done-separator-string|todo-reset-done-separator|todo-reset-done-string|todo-reset-global-current-todo-file|todo-reset-highlight-item|todo-reset-nondiary-marker|todo-reset-prefix|todo-restore-desktop-buffer|todo-revert-buffer|todo-save-filtered-items-buffer|todo-save|todo-search|todo-set-categories|todo-set-category-number|todo-set-date-from-calendar|todo-set-item-priority|todo-set-show-current-file|todo-set-top-priorities-in-category|todo-set-top-priorities-in-file|todo-set-top-priorities|todo-short-file-name|todo-show-categories-table|todo-show-current-file|todo-show|todo-sort-categories-alphabetically-or-numerically|todo-sort-categories-by-archived|todo-sort-categories-by-diary|todo-sort-categories-by-done|todo-sort-categories-by-todo|todo-sort|todo-time-string-matcher|todo-toggle-item-header|todo-toggle-item-highlighting|todo-toggle-mark-item|todo-toggle-prefix-numbers|todo-toggle-view-done-items|todo-toggle-view-done-only|todo-total-item-counts|todo-unarchive-items|todo-unmark-category|todo-update-buffer-list|todo-update-categories-display|todo-update-categories-sexp|todo-update-count|todo-validate-name|todo-y-or-n-p|toggle-auto-composition|toggle-case-fold-search|toggle-debug-on-error|toggle-debug-on-quit|toggle-emacs-lock|toggle-frame-fullscreen|toggle-frame-maximized|toggle-horizontal-scroll-bar|toggle-indicate-empty-lines|toggle-input-method|toggle-menu-bar-mode-from-frame|toggle-read-only|toggle-rot13-mode|toggle-save-place-globally|toggle-save-place|toggle-scroll-bar|toggle-text-mode-auto-fill|toggle-tool-bar-mode-from-frame|toggle-truncate-lines|toggle-uniquify-buffer-names|toggle-use-system-font|toggle-viper-mode|toggle-word-wrap|tool-bar--image-expression|tool-bar-get-system-style|tool-bar-height|tool-bar-lines-needed|tool-bar-local-item|tool-bar-make-keymap-1|tool-bar-make-keymap|tool-bar-mode|tool-bar-pixel-width|tool-bar-setup|tooltip-cancel-delayed-tip|tooltip-delay|tooltip-event-buffer|tooltip-expr-to-print|tooltip-gud-toggle-dereference|tooltip-help-tips|tooltip-hide|tooltip-identifier-from-point|tooltip-mode|tooltip-process-prompt-regexp|tooltip-set-param|tooltip-show-help-non-mode|tooltip-show-help|tooltip-show|tooltip-start-delayed-tip|tooltip-strip-prompt|tooltip-timeout|tq-buffer|tq-filter|tq-process-buffer|tq-process|tq-queue-add|tq-queue-empty|tq-queue-head-closure|tq-queue-head-fn|tq-queue-head-question|tq-queue-head-regexp|tq-queue-pop|tq-queue|trace--display-buffer|trace--read-args|trace-entry-message|trace-exit-message|trace-function-background|trace-function-foreground|trace-function-internal|trace-function|trace-is-traced|trace-make-advice|trace-values|traceroute|tramp-accept-process-output|tramp-action-login|tramp-action-out-of-band|tramp-action-password|tramp-action-permission-denied|tramp-action-process-alive|tramp-action-succeed|tramp-action-terminal|tramp-action-yesno|tramp-action-yn|tramp-adb-file-name-handler|tramp-adb-file-name-p|tramp-adb-parse-device-names|tramp-autoload-file-name-handler|tramp-backtrace|tramp-buffer-name|tramp-bug|tramp-cache-print|tramp-call-process|tramp-check-cached-permissions|tramp-check-for-regexp|tramp-check-proper-method-and-host|tramp-cleanup-all-buffers|tramp-cleanup-all-connections|tramp-cleanup-connection|tramp-cleanup-this-connection|tramp-clear-passwd|tramp-compat-coding-system-change-eol-conversion|tramp-compat-condition-case-unless-debug|tramp-compat-copy-directory|tramp-compat-copy-file|tramp-compat-decimal-to-octal|tramp-compat-delete-directory|tramp-compat-delete-file|tramp-compat-file-attributes|tramp-compat-font-lock-add-keywords|tramp-compat-funcall|tramp-compat-load|tramp-compat-make-temp-file|tramp-compat-most-positive-fixnum|tramp-compat-number-sequence|tramp-compat-octal-to-decimal|tramp-compat-process-get|tramp-compat-process-put|tramp-compat-process-running-p|tramp-compat-replace-regexp-in-string|tramp-compat-set-process-query-on-exit-flag|tramp-compat-split-string|tramp-compat-temporary-file-directory|tramp-compat-with-temp-message|tramp-completion-dissect-file-name|tramp-completion-dissect-file-name1|tramp-completion-file-name-handler|tramp-completion-handle-file-name-all-completions|tramp-completion-handle-file-name-completion|tramp-completion-make-tramp-file-name|tramp-completion-mode-p|tramp-completion-run-real-handler|tramp-condition-case-unless-debug|tramp-connectable-p|tramp-connection-property-p|tramp-debug-buffer-name|tramp-debug-message|tramp-debug-outline-level|tramp-default-file-modes|tramp-delete-temp-file-function|tramp-dissect-file-name|tramp-drop-volume-letter|tramp-equal-remote|tramp-error-with-buffer|tramp-error|tramp-eshell-directory-change|tramp-exists-file-name-handler|tramp-file-mode-from-int|tramp-file-mode-permissions|tramp-file-name-domain|tramp-file-name-for-operation|tramp-file-name-handler|tramp-file-name-hop|tramp-file-name-host|tramp-file-name-localname|tramp-file-name-method|tramp-file-name-p|tramp-file-name-port|tramp-file-name-real-host|tramp-file-name-real-user|tramp-file-name-user|tramp-find-file-name-coding-system-alist|tramp-find-foreign-file-name-handler|tramp-find-host|tramp-find-method|tramp-find-user|tramp-flush-connection-property|tramp-flush-directory-property|tramp-flush-file-property|tramp-ftp-enable-ange-ftp|tramp-ftp-file-name-handler|tramp-ftp-file-name-p|tramp-get-buffer|tramp-get-completion-function|tramp-get-completion-methods|tramp-get-completion-user-host|tramp-get-connection-buffer|tramp-get-connection-name|tramp-get-connection-process|tramp-get-connection-property|tramp-get-debug-buffer|tramp-get-device|tramp-get-file-property|tramp-get-inode|tramp-get-local-gid|tramp-get-local-uid|tramp-get-method-parameter|tramp-get-remote-tmpdir|tramp-gvfs-file-name-handler|tramp-gvfs-file-name-p|tramp-gw-open-connection|tramp-handle-directory-file-name|tramp-handle-directory-files-and-attributes|tramp-handle-directory-files|tramp-handle-dired-uncache|tramp-handle-file-accessible-directory-p|tramp-handle-file-exists-p|tramp-handle-file-modes|tramp-handle-file-name-as-directory|tramp-handle-file-name-completion|tramp-handle-file-name-directory|tramp-handle-file-name-nondirectory|tramp-handle-file-newer-than-file-p|tramp-handle-file-notify-add-watch|tramp-handle-file-notify-rm-watch|tramp-handle-file-regular-p|tramp-handle-file-remote-p|tramp-handle-file-symlink-p|tramp-handle-find-backup-file-name|tramp-handle-insert-directory|tramp-handle-insert-file-contents|tramp-handle-load|tramp-handle-make-auto-save-file-name|tramp-handle-make-symbolic-link|tramp-handle-set-visited-file-modtime|tramp-handle-shell-command|tramp-handle-substitute-in-file-name|tramp-handle-unhandled-file-name-directory|tramp-handle-verify-visited-file-modtime|tramp-list-connections|tramp-local-host-p|tramp-make-tramp-file-name|tramp-make-tramp-temp-file|tramp-message|tramp-mode-string-to-int|tramp-parse-connection-properties|tramp-parse-file|tramp-parse-group|tramp-parse-hosts-group|tramp-parse-hosts|tramp-parse-netrc-group|tramp-parse-netrc|tramp-parse-passwd-group|tramp-parse-passwd|tramp-parse-putty-group|tramp-parse-putty|tramp-parse-rhosts-group|tramp-parse-rhosts|tramp-parse-sconfig-group|tramp-parse-sconfig|tramp-parse-shostkeys-sknownhosts|tramp-parse-shostkeys|tramp-parse-shosts-group|tramp-parse-shosts|tramp-parse-sknownhosts|tramp-process-actions|tramp-process-one-action|tramp-progress-reporter-update|tramp-read-passwd|tramp-register-autoload-file-name-handlers|tramp-register-file-name-handlers|tramp-replace-environment-variables|tramp-rfn-eshadow-setup-minibuffer|tramp-rfn-eshadow-update-overlay|tramp-run-real-handler|tramp-send-string|tramp-set-auto-save-file-modes|tramp-set-completion-function|tramp-set-connection-property|tramp-set-file-property|tramp-sh-file-name-handler|tramp-shell-quote-argument|tramp-smb-file-name-handler|tramp-smb-file-name-p|tramp-subst-strs-in-string|tramp-time-diff|tramp-tramp-file-p|tramp-unload-file-name-handlers|tramp-unload-tramp|tramp-user-error|tramp-uuencode-region|tramp-version|tramp-wait-for-regexp|transform-make-coding-system-args|translate-region-internal|transpose-chars|transpose-lines|transpose-paragraphs|transpose-sentences|transpose-sexps|transpose-subr-1|transpose-subr|transpose-words|tree-equal|tree-widget--locate-sub-directory|tree-widget-action|tree-widget-button-click|tree-widget-children-value-save|tree-widget-convert-widget|tree-widget-create-image|tree-widget-expander-p|tree-widget-find-image|tree-widget-help-echo|tree-widget-icon-action|tree-widget-icon-create|tree-widget-icon-help-echo|tree-widget-image-formats|tree-widget-image-properties|tree-widget-keep|tree-widget-leaf-node-icon-p|tree-widget-lookup-image|tree-widget-node|tree-widget-p|tree-widget-set-image-properties|tree-widget-set-parent-theme|tree-widget-set-theme|tree-widget-theme-name|tree-widget-themes-path|tree-widget-use-image-p|tree-widget-value-create|truncate\\\\\\\\*|truncated-partial-width-window-p|try-complete-file-name-partially|try-complete-file-name|try-complete-lisp-symbol-partially|try-complete-lisp-symbol|try-expand-all-abbrevs|try-expand-dabbrev-all-buffers|try-expand-dabbrev-from-kill|try-expand-dabbrev-visible|try-expand-dabbrev|try-expand-line-all-buffers|try-expand-line|try-expand-list-all-buffers|try-expand-list|try-expand-whole-kill|tty-color-by-index|tty-color-canonicalize|tty-color-desc|tty-color-gray-shades|tty-color-off-gray-diag|tty-color-standard-values|tty-color-values|tty-create-frame-with-faces|tty-display-color-cells|tty-display-color-p|tty-find-type|tty-handle-args|tty-handle-reverse-video|tty-modify-color-alist|tty-no-underline|tty-register-default-colors|tty-run-terminal-initialization|tty-set-up-initial-frame-faces|tty-suppress-bold-inverse-default-colors|tty-type|tumme|turkish-case-conversion-disable|turkish-case-conversion-enable|turn-off-auto-fill|turn-off-flyspell|turn-off-follow-mode|turn-off-hideshow|turn-off-iimage-mode|turn-off-xterm-mouse-tracking-on-terminal|turn-on-auto-fill|turn-on-auto-revert-mode|turn-on-auto-revert-tail-mode|turn-on-cwarn-mode-if-enabled|turn-on-cwarn-mode|turn-on-eldoc-mode|turn-on-flyspell|turn-on-follow-mode|turn-on-font-lock-if-desired|turn-on-font-lock|turn-on-gnus-dired-mode)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:turn-on-gnus-mailing-list-mode|turn-on-hi-lock-if-enabled|turn-on-iimage-mode|turn-on-org-cdlatex|turn-on-orgstruct\\\\\\\\+\\\\\\\\+|turn-on-orgstruct|turn-on-orgtbl|turn-on-prettify-symbols-mode|turn-on-reftex|turn-on-visual-line-mode|turn-on-xterm-mouse-tracking-on-terminal|type-break-alarm|type-break-cancel-function-timers|type-break-cancel-schedule|type-break-cancel-time-warning-schedule|type-break-catch-up-event|type-break-check-keystroke-warning|type-break-check-post-command-hook|type-break-check|type-break-choose-file|type-break-demo-boring|type-break-demo-hanoi|type-break-demo-life|type-break-do-query|type-break-file-keystroke-count|type-break-file-time|type-break-force-mode-line-update|type-break-format-time|type-break-get-previous-count|type-break-get-previous-time|type-break-guesstimate-keystroke-threshold|type-break-keystroke-reset|type-break-keystroke-warning|type-break-mode-line-countdown-or-break|type-break-mode-line-message-mode|type-break-mode|type-break-noninteractive-query|type-break-query-mode|type-break-query|type-break-run-at-time|type-break-run-tb-post-command-hook|type-break-schedule|type-break-statistics|type-break-time-difference|type-break-time-stamp|type-break-time-sum|type-break-time-warning-alarm|type-break-time-warning-schedule|type-break-time-warning|type-break|typecase|typep|uce-insert-ranting|uce-reply-to-uce|ucs-input-activate|ucs-insert|ucs-names|ucs-normalize-HFS-NFC-region|ucs-normalize-HFS-NFC-string|ucs-normalize-HFS-NFD-region|ucs-normalize-HFS-NFD-string|ucs-normalize-NFC-region|ucs-normalize-NFC-string|ucs-normalize-NFD-region|ucs-normalize-NFD-string|ucs-normalize-NFKC-region|ucs-normalize-NFKC-string|ucs-normalize-NFKD-region|ucs-normalize-NFKD-string|uncomment-region-default|uncomment-region|uncompface|underline-region|undigestify-rmail-message|undo-adjust-beg-end|undo-adjust-elt|undo-adjust-pos|undo-copy-list-1|undo-copy-list|undo-delta|undo-elt-crosses-region|undo-elt-in-region|undo-make-selective-list|undo-more|undo-only|undo-outer-limit-truncate|undo-start|undo|unencodable-char-position|unexpand-abbrev|unfocus-frame|unforward-rmail-message|unhighlight-regexp|unicode-property-table-internal|unify-8859-on-decoding-mode|unify-8859-on-encoding-mode|unify-charset|union|uniquify--create-file-buffer-advice|uniquify--rename-buffer-advice|uniquify-buffer-base-name|uniquify-buffer-file-name|uniquify-get-proposed-name|uniquify-item-base--cmacro|uniquify-item-base|uniquify-item-buffer--cmacro|uniquify-item-buffer|uniquify-item-dirname--cmacro|uniquify-item-dirname|uniquify-item-greaterp|uniquify-item-p--cmacro|uniquify-item-p|uniquify-item-proposed--cmacro|uniquify-item-proposed|uniquify-kill-buffer-function|uniquify-make-item--cmacro|uniquify-make-item|uniquify-maybe-rerationalize-w\\\\\\\\/o-cb|uniquify-rationalize-a-list|uniquify-rationalize-conflicting-sublist|uniquify-rationalize-file-buffer-names|uniquify-rationalize|uniquify-rename-buffer|uniquify-rerationalize-w\\\\\\\\/o-cb|uniquify-unload-function|universal-argument--mode|universal-argument-more|universal-coding-system-argument|unix-sync|unjustify-current-line|unjustify-region|unload--set-major-mode|unmorse-region|unmsys--file-name|unread-bib|unrecord-window-buffer|unrmail|unsafep-function|unsafep-let|unsafep-progn|unsafep-variable|untabify-backward|untabify|untrace-all|untrace-function|ununderline-region|up-ifdef|upcase-initials-region|update-glyphless-char-display|update-leim-list-file|url--allowed-chars|url-attributes--cmacro|url-attributes|url-auth-registered|url-auth-user-prompt|url-basepath|url-basic-auth|url-bit-for-url|url-build-query-string|url-cache-create-filename|url-cache-extract|url-cache-prune-cache|url-cid|url-completion-function|url-cookie-clean-up|url-cookie-create--cmacro|url-cookie-create|url-cookie-delete|url-cookie-domain--cmacro|url-cookie-domain|url-cookie-expired-p|url-cookie-expires--cmacro|url-cookie-expires|url-cookie-generate-header-lines|url-cookie-handle-set-cookie|url-cookie-host-can-set-p|url-cookie-list|url-cookie-localpart--cmacro|url-cookie-localpart|url-cookie-mode|url-cookie-name--cmacro|url-cookie-name|url-cookie-p--cmacro|url-cookie-p|url-cookie-parse-file|url-cookie-quit|url-cookie-retrieve|url-cookie-secure--cmacro|url-cookie-secure|url-cookie-setup-save-timer|url-cookie-store|url-cookie-value--cmacro|url-cookie-value|url-cookie-write-file|url-copy-file|url-data|url-dav-request|url-dav-supported-p|url-dav-vc-registered|url-debug|url-default-expander|url-default-find-proxy-for-url|url-device-type|url-digest-auth-create-key|url-digest-auth|url-display-percentage|url-do-auth-source-search|url-do-setup|url-domsuf-cookie-allowed-p|url-domsuf-parse-file|url-eat-trailing-space|url-encode-url|url-expand-file-name|url-expander-remove-relative-links|url-extract-mime-headers|url-file-directory|url-file-extension|url-file-handler|url-file-local-copy|url-file-nondirectory|url-file|url-filename--cmacro|url-filename|url-find-proxy-for-url|url-fullness--cmacro|url-fullness|url-gateway-nslookup-host|url-gc-dead-buffers|url-generate-unique-filename|url-generic-emulator-loader|url-generic-parse-url|url-get-authentication|url-get-normalized-date|url-get-url-at-point|url-handle-content-transfer-encoding|url-handler-mode|url-have-visited-url|url-hexify-string|url-history-parse-history|url-history-save-history|url-history-setup-save-timer|url-history-update-url|url-host--cmacro|url-host|url-http-activate-callback|url-http-async-sentinel|url-http-chunked-encoding-after-change-function|url-http-clean-headers|url-http-content-length-after-change-function|url-http-create-request|url-http-debug|url-http-end-of-document-sentinel|url-http-expand-file-name|url-http-file-attributes|url-http-file-exists-p|url-http-file-readable-p|url-http-find-free-connection|url-http-generic-filter|url-http-handle-authentication|url-http-handle-cookies|url-http-head-file-attributes|url-http-head|url-http-idle-sentinel|url-http-mark-connection-as-busy|url-http-mark-connection-as-free|url-http-options|url-http-parse-headers|url-http-parse-response|url-http-simple-after-change-function|url-http-symbol-value-in-buffer|url-http-user-agent-string|url-http-wait-for-headers-change-function|url-http|url-https-create-secure-wrapper|url-https-expand-file-name|url-https-file-attributes|url-https-file-exists-p|url-https-file-readable-p|url-https|url-identity-expander|url-info|url-insert-entities-in-string|url-insert-file-contents|url-irc|url-is-cached|url-lazy-message|url-ldap|url-mail|url-mailto|url-make-private-file|url-man|url-mark-buffer-as-dead|url-mime-charset-string|url-mm-callback|url-mm-url|url-news|url-normalize-url|url-ns-prefs|url-ns-user-pref|url-open-rlogin|url-open-stream|url-open-telnet|url-p--cmacro|url-p|url-parse-args|url-parse-make-urlobj--cmacro|url-parse-make-urlobj|url-parse-query-string|url-password--cmacro|url-password-for-url|url-password|url-path-and-query|url-percentage|url-port-if-non-default|url-port|url-portspec--cmacro|url-portspec|url-pretty-length|url-proxy|url-queue-buffer--cmacro|url-queue-buffer|url-queue-callback--cmacro|url-queue-callback-function|url-queue-callback|url-queue-cbargs--cmacro|url-queue-cbargs|url-queue-inhibit-cookiesp--cmacro|url-queue-inhibit-cookiesp|url-queue-kill-job|url-queue-p--cmacro|url-queue-p|url-queue-pre-triggered--cmacro|url-queue-pre-triggered|url-queue-prune-old-entries|url-queue-remove-jobs-from-host|url-queue-retrieve|url-queue-run-queue|url-queue-setup-runners|url-queue-silentp--cmacro|url-queue-silentp|url-queue-start-retrieve|url-queue-start-time--cmacro|url-queue-start-time|url-queue-url--cmacro|url-queue-url|url-recreate-url-attributes|url-recreate-url|url-register-auth-scheme|url-retrieve-internal|url-retrieve-synchronously|url-retrieve|url-rlogin|url-scheme-default-loader|url-scheme-get-property|url-scheme-register-proxy|url-set-mime-charset-string|url-setup-privacy-info|url-silent--cmacro|url-silent|url-snews|url-store-in-cache|url-strip-leading-spaces|url-target--cmacro|url-target|url-telnet|url-tn3270|url-tramp-file-handler|url-truncate-url-for-viewing|url-type--cmacro|url-type|url-unhex-string|url-unhex|url-use-cookies--cmacro|url-use-cookies|url-user--cmacro|url-user-for-url|url-user|url-view-url|url-wait-for-string|url-warn|use-cjk-char-width-table|use-completion-backward-under|use-completion-backward|use-completion-before-point|use-completion-before-separator|use-completion-minibuffer-separator|use-completion-under-or-before-point|use-completion-under-point|use-default-char-width-table|use-fancy-splash-screens-p|use-package|user-original-login-name|user-variable-p|utf-7-imap-post-read-conversion|utf-7-imap-pre-write-conversion|utf-7-post-read-conversion|utf-7-pre-write-conversion|utf7-decode|utf7-encode|uudecode-char-int|uudecode-decode-region-external|uudecode-decode-region-internal|uudecode-decode-region|uudecode-string-to-multibyte|values-list|variable-at-point|variable-binding-locus|variable-pitch-mode|vc--add-line|vc--process-sentinel|vc--read-lines|vc--remove-regexp|vc-after-save|vc-annotate|vc-backend-for-registration|vc-backend-subdirectory-name|vc-backend|vc-before-save|vc-branch-p|vc-branch-part|vc-buffer-context|vc-buffer-sync|vc-bzr-registered|vc-call-backend|vc-call|vc-check-headers|vc-check-master-templates|vc-checkin|vc-checkout-model|vc-checkout|vc-clear-context|vc-coding-system-for-diff|vc-comment-search-forward|vc-comment-search-reverse|vc-comment-to-change-log|vc-compatible-state|vc-compilation-mode|vc-context-matches-p|vc-create-repo|vc-create-tag|vc-cvs-after-dir-status|vc-cvs-annotate-command|vc-cvs-annotate-current-time|vc-cvs-annotate-extract-revision-at-line|vc-cvs-annotate-process-filter|vc-cvs-annotate-time|vc-cvs-append-to-ignore|vc-cvs-check-headers|vc-cvs-checkin|vc-cvs-checkout-model|vc-cvs-checkout|vc-cvs-command|vc-cvs-comment-history|vc-cvs-could-register|vc-cvs-create-tag|vc-cvs-delete-file|vc-cvs-diff|vc-cvs-dir-extra-headers|vc-cvs-dir-status-files|vc-cvs-dir-status-heuristic|vc-cvs-file-to-string|vc-cvs-find-admin-dir|vc-cvs-find-revision|vc-cvs-get-entries|vc-cvs-ignore|vc-cvs-make-version-backups-p|vc-cvs-merge-file|vc-cvs-merge-news|vc-cvs-merge|vc-cvs-mode-line-string|vc-cvs-modify-change-comment|vc-cvs-next-revision|vc-cvs-parse-entry|vc-cvs-parse-root|vc-cvs-parse-status|vc-cvs-parse-sticky-tag|vc-cvs-parse-uhp|vc-cvs-previous-revision|vc-cvs-print-log|vc-cvs-register|vc-cvs-registered|vc-cvs-repository-hostname|vc-cvs-responsible-p|vc-cvs-retrieve-tag|vc-cvs-revert|vc-cvs-revision-completion-table|vc-cvs-revision-granularity|vc-cvs-revision-table|vc-cvs-state-heuristic|vc-cvs-state|vc-cvs-stay-local-p|vc-cvs-update-changelog|vc-cvs-valid-revision-number-p|vc-cvs-valid-symbolic-tag-name-p|vc-cvs-working-revision|vc-deduce-backend|vc-deduce-fileset|vc-default-check-headers|vc-default-comment-history|vc-default-dir-status-files|vc-default-extra-menu|vc-default-find-file-hook|vc-default-find-revision|vc-default-ignore-completion-table|vc-default-ignore|vc-default-log-edit-mode|vc-default-log-view-mode|vc-default-make-version-backups-p|vc-default-mark-resolved|vc-default-mode-line-string|vc-default-receive-file|vc-default-registered|vc-default-rename-file|vc-default-responsible-p|vc-default-retrieve-tag|vc-default-revert|vc-default-revision-completion-table|vc-default-show-log-entry|vc-default-working-revision|vc-delete-automatic-version-backups|vc-delete-file|vc-delistify|vc-diff-build-argument-list-internal|vc-diff-finish|vc-diff-internal|vc-diff-switches-list|vc-diff|vc-dir-mode|vc-dir|vc-dired-deduce-fileset|vc-dispatcher-browsing|vc-do-async-command|vc-do-command|vc-ediff|vc-editable-p|vc-ensure-vc-buffer|vc-error-occurred|vc-exec-after|vc-expand-dirs|vc-file-clearprops|vc-file-getprop|vc-file-setprop|vc-file-tree-walk-internal|vc-file-tree-walk|vc-find-backend-function|vc-find-conflicted-file|vc-find-file-hook|vc-find-position-by-context|vc-find-revision|vc-find-root|vc-finish-logentry|vc-follow-link|vc-git-registered|vc-hg-registered|vc-ignore|vc-incoming-outgoing-internal|vc-insert-file|vc-insert-headers|vc-kill-buffer-hook|vc-log-edit|vc-log-incoming|vc-log-internal-common|vc-log-outgoing|vc-make-backend-sym|vc-make-version-backup|vc-mark-resolved|vc-maybe-resolve-conflicts|vc-menu-map-filter|vc-menu-map|vc-merge|vc-mode-line|vc-modify-change-comment|vc-mtn-registered|vc-next-action|vc-next-comment|vc-parse-buffer)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:vc-position-context|vc-possible-master|vc-previous-comment|vc-print-log-internal|vc-print-log-setup-buttons|vc-print-log|vc-print-root-log|vc-process-filter|vc-pull|vc-rcs-registered|vc-read-backend|vc-read-revision|vc-region-history|vc-register-with|vc-register|vc-registered|vc-rename-file|vc-resolve-conflicts|vc-responsible-backend|vc-restore-buffer-context|vc-resynch-buffer|vc-resynch-buffers-in-directory|vc-resynch-window|vc-retrieve-tag|vc-revert-buffer-internal|vc-revert-buffer|vc-revert-file|vc-revert|vc-revision-other-window|vc-rollback|vc-root-diff|vc-root-dir|vc-run-delayed|vc-sccs-registered|vc-sccs-search-project-dir|vc-set-async-update|vc-set-mode-line-busy-indicator|vc-setup-buffer|vc-src-registered|vc-start-logentry|vc-state-refresh|vc-state|vc-steal-lock|vc-string-prefix-p|vc-svn-registered|vc-switch-backend|vc-switches|vc-tag-precondition|vc-toggle-read-only|vc-transfer-file|vc-up-to-date-p|vc-update-change-log|vc-update|vc-user-login-name|vc-version-backup-file-name|vc-version-backup-file|vc-version-diff|vc-version-ediff|vc-workfile-version|vc-working-revision|vcursor-backward-char|vcursor-backward-word|vcursor-beginning-of-buffer|vcursor-beginning-of-line|vcursor-bind-keys|vcursor-check|vcursor-compare-windows|vcursor-copy-line|vcursor-copy-word|vcursor-copy|vcursor-cs-binding|vcursor-disable|vcursor-end-of-buffer|vcursor-end-of-line|vcursor-execute-command|vcursor-execute-key|vcursor-find-window|vcursor-forward-char|vcursor-forward-word|vcursor-get-char-count|vcursor-goto|vcursor-insert|vcursor-isearch-backward|vcursor-isearch-forward|vcursor-locate|vcursor-map|vcursor-move|vcursor-next-line|vcursor-other-window|vcursor-post-command|vcursor-previous-line|vcursor-relative-move|vcursor-scroll-down|vcursor-scroll-up|vcursor-swap-point|vcursor-toggle-copy|vcursor-toggle-vcursor-map|vcursor-use-vcursor-map|vcursor-window-funcall|vector-or-char-table-p|vendor-specific-keysyms|vera-add-syntax|vera-backward-same-indent|vera-backward-statement|vera-backward-syntactic-ws|vera-beginning-of-statement|vera-beginning-of-substatement|vera-comment-uncomment-region|vera-corresponding-begin|vera-corresponding-if|vera-customize|vera-electric-closing-brace|vera-electric-opening-brace|vera-electric-pound|vera-electric-return|vera-electric-slash|vera-electric-space|vera-electric-star|vera-electric-tab|vera-evaluate-offset|vera-expand-abbrev|vera-font-lock-match-item|vera-fontify-buffer|vera-forward-same-indent|vera-forward-statement|vera-forward-syntactic-ws|vera-get-offset|vera-guess-basic-syntax|vera-in-literal|vera-indent-block-closing|vera-indent-buffer|vera-indent-line|vera-indent-region|vera-langelem-col|vera-lineup-C-comments|vera-lineup-comment|vera-mode-menu|vera-mode|vera-point|vera-prepare-search|vera-re-search-backward|vera-re-search-forward|vera-skip-backward-literal|vera-skip-forward-literal|vera-submit-bug-report|vera-try-expand-abbrev|vera-version|verify-xscheme-buffer|verilog-add-list-unique|verilog-alw-get-inputs|verilog-alw-get-outputs-delayed|verilog-alw-get-outputs-immediate|verilog-alw-get-temps|verilog-alw-get-uses-delayed|verilog-alw-new|verilog-at-close-constraint-p|verilog-at-close-struct-p|verilog-at-constraint-p|verilog-at-struct-mv-p|verilog-at-struct-p|verilog-auto-arg-ports|verilog-auto-arg|verilog-auto-ascii-enum|verilog-auto-assign-modport|verilog-auto-inout-comp|verilog-auto-inout-in|verilog-auto-inout-modport|verilog-auto-inout-module|verilog-auto-inout-param|verilog-auto-inout|verilog-auto-input|verilog-auto-insert-last|verilog-auto-insert-lisp|verilog-auto-inst-first|verilog-auto-inst-param|verilog-auto-inst-port-list|verilog-auto-inst-port-map|verilog-auto-inst-port|verilog-auto-inst|verilog-auto-logic-setup|verilog-auto-logic|verilog-auto-output-every|verilog-auto-output|verilog-auto-re-search-do|verilog-auto-read-locals|verilog-auto-reeval-locals|verilog-auto-reg-input|verilog-auto-reg|verilog-auto-reset|verilog-auto-save-check|verilog-auto-save-compile|verilog-auto-sense-sigs|verilog-auto-sense|verilog-auto-star-safe|verilog-auto-star|verilog-auto-template-lint|verilog-auto-templated-rel|verilog-auto-tieoff|verilog-auto-undef|verilog-auto-unused|verilog-auto-wire|verilog-auto|verilog-back-to-start-translate-off|verilog-backward-case-item|verilog-backward-open-bracket|verilog-backward-open-paren|verilog-backward-sexp|verilog-backward-syntactic-ws-quick|verilog-backward-syntactic-ws|verilog-backward-token|verilog-backward-up-list|verilog-backward-ws&directives|verilog-batch-auto|verilog-batch-delete-auto|verilog-batch-delete-trailing-whitespace|verilog-batch-diff-auto|verilog-batch-error-wrapper|verilog-batch-execute-func|verilog-batch-indent|verilog-batch-inject-auto|verilog-beg-of-defun-quick|verilog-beg-of-defun|verilog-beg-of-statement-1|verilog-beg-of-statement|verilog-booleanp|verilog-build-defun-re|verilog-calc-1|verilog-calculate-indent-directive|verilog-calculate-indent|verilog-case-indent-level|verilog-clog2|verilog-colorize-include-files-buffer|verilog-comment-depth|verilog-comment-indent|verilog-comment-region|verilog-comp-defun|verilog-complete-word|verilog-completion-response|verilog-completion|verilog-continued-line-1|verilog-continued-line|verilog-current-flags|verilog-current-indent-level|verilog-customize|verilog-declaration-beg|verilog-declaration-end|verilog-decls-append|verilog-decls-get-assigns|verilog-decls-get-consts|verilog-decls-get-gparams|verilog-decls-get-inouts|verilog-decls-get-inputs|verilog-decls-get-interfaces|verilog-decls-get-iovars|verilog-decls-get-modports|verilog-decls-get-outputs|verilog-decls-get-ports|verilog-decls-get-signals|verilog-decls-get-vars|verilog-decls-new|verilog-decls-princ|verilog-define-abbrev|verilog-delete-auto-star-all|verilog-delete-auto-star-implicit|verilog-delete-auto|verilog-delete-autos-lined|verilog-delete-empty-auto-pair|verilog-delete-to-paren|verilog-delete-trailing-whitespace|verilog-diff-auto|verilog-diff-buffers-p|verilog-diff-file-with-buffer|verilog-diff-report|verilog-dir-file-exists-p|verilog-dir-files|verilog-do-indent|verilog-easy-menu-filter|verilog-end-of-defun|verilog-end-of-statement|verilog-end-translate-off|verilog-enum-ascii|verilog-error-regexp-add-emacs|verilog-expand-command|verilog-expand-dirnames|verilog-expand-vector-internal|verilog-expand-vector|verilog-faq|verilog-font-customize|verilog-font-lock-match-item|verilog-forward-close-paren|verilog-forward-or-insert-line|verilog-forward-sexp-cmt|verilog-forward-sexp-function|verilog-forward-sexp-ign-cmt|verilog-forward-sexp|verilog-forward-syntactic-ws|verilog-forward-ws&directives|verilog-func-completion|verilog-generate-numbers|verilog-get-completion-decl|verilog-get-default-symbol|verilog-get-end-of-defun|verilog-get-expr|verilog-get-lineup-indent-2|verilog-get-lineup-indent|verilog-getopt-file|verilog-getopt-flags|verilog-getopt|verilog-goto-defun-file|verilog-goto-defun|verilog-header|verilog-highlight-buffer|verilog-highlight-region|verilog-in-attribute-p|verilog-in-case-region-p|verilog-in-comment-or-string-p|verilog-in-comment-p|verilog-in-coverage-p|verilog-in-directive-p|verilog-in-escaped-name-p|verilog-in-fork-region-p|verilog-in-generate-region-p|verilog-in-parameter-p|verilog-in-paren-count|verilog-in-paren-quick|verilog-in-paren|verilog-in-parenthesis-p|verilog-in-slash-comment-p|verilog-in-star-comment-p|verilog-in-struct-nested-p|verilog-in-struct-p|verilog-indent-buffer|verilog-indent-comment|verilog-indent-declaration|verilog-indent-line-relative|verilog-indent-line|verilog-inject-arg|verilog-inject-auto|verilog-inject-inst|verilog-inject-sense|verilog-insert-1|verilog-insert-block|verilog-insert-date|verilog-insert-definition|verilog-insert-indent|verilog-insert-indices|verilog-insert-last-command-event|verilog-insert-one-definition|verilog-insert-year|verilog-insert|verilog-inside-comment-or-string-p|verilog-is-number|verilog-just-one-space|verilog-keyword-completion|verilog-kill-existing-comment|verilog-label-be|verilog-leap-to-case-head|verilog-leap-to-head|verilog-library-filenames|verilog-lint-off|verilog-linter-name|verilog-load-file-at-mouse|verilog-load-file-at-point|verilog-make-width-expression|verilog-mark-defun|verilog-match-translate-off|verilog-menu|verilog-mode|verilog-modi-cache-add-gparams|verilog-modi-cache-add-inouts|verilog-modi-cache-add-inputs|verilog-modi-cache-add-outputs|verilog-modi-cache-add-vars|verilog-modi-cache-add|verilog-modi-cache-results|verilog-modi-current-get|verilog-modi-current|verilog-modi-file-or-buffer|verilog-modi-filename|verilog-modi-get-decls|verilog-modi-get-point|verilog-modi-get-sub-decls|verilog-modi-get-type|verilog-modi-goto|verilog-modi-lookup|verilog-modi-modport-lookup-one|verilog-modi-modport-lookup|verilog-modi-name|verilog-modi-new|verilog-modify-compile-command|verilog-modport-clockings-add|verilog-modport-clockings|verilog-modport-decls-set|verilog-modport-decls|verilog-modport-name|verilog-modport-new|verilog-modport-princ|verilog-module-filenames|verilog-module-inside-filename-p|verilog-more-comment|verilog-one-line|verilog-parenthesis-depth|verilog-point-text|verilog-preprocess|verilog-preserve-dir-cache|verilog-preserve-modi-cache|verilog-pretty-declarations-auto|verilog-pretty-declarations|verilog-pretty-expr|verilog-re-search-backward-quick|verilog-re-search-backward-substr|verilog-re-search-backward|verilog-re-search-forward-quick|verilog-re-search-forward-substr|verilog-re-search-forward|verilog-read-always-signals-recurse|verilog-read-always-signals|verilog-read-arg-pins|verilog-read-auto-constants|verilog-read-auto-lisp-present|verilog-read-auto-lisp|verilog-read-auto-params|verilog-read-auto-template-hit|verilog-read-auto-template-middle|verilog-read-auto-template|verilog-read-decls|verilog-read-defines|verilog-read-includes|verilog-read-inst-backward-name|verilog-read-inst-module-matcher|verilog-read-inst-module|verilog-read-inst-name|verilog-read-inst-param-value|verilog-read-inst-pins|verilog-read-instants|verilog-read-module-name|verilog-read-signals|verilog-read-sub-decls-expr|verilog-read-sub-decls-gate|verilog-read-sub-decls-line|verilog-read-sub-decls-sig|verilog-read-sub-decls|verilog-regexp-opt|verilog-regexp-words|verilog-repair-close-comma|verilog-repair-open-comma|verilog-run-hooks|verilog-save-buffer-state|verilog-save-font-mods|verilog-save-no-change-functions|verilog-save-scan-cache|verilog-scan-and-debug|verilog-scan-cache-flush|verilog-scan-cache-ok-p|verilog-scan-debug|verilog-scan-region|verilog-scan|verilog-set-auto-endcomments|verilog-set-compile-command|verilog-set-define|verilog-show-completions|verilog-showscopes|verilog-sig-bits|verilog-sig-comment|verilog-sig-enum|verilog-sig-memory|verilog-sig-modport|verilog-sig-multidim-string|verilog-sig-multidim|verilog-sig-name|verilog-sig-new|verilog-sig-signed|verilog-sig-tieoff|verilog-sig-type-set|verilog-sig-type|verilog-sig-width|verilog-signals-combine-bus|verilog-signals-edit-wire-reg|verilog-signals-from-signame|verilog-signals-in|verilog-signals-matching-dir-re|verilog-signals-matching-enum|verilog-signals-matching-regexp|verilog-signals-memory|verilog-signals-not-in|verilog-signals-not-matching-regexp|verilog-signals-not-params|verilog-signals-princ|verilog-signals-sort-compare|verilog-signals-with|verilog-simplify-range-expression|verilog-sk-always|verilog-sk-assign|verilog-sk-begin|verilog-sk-case|verilog-sk-casex|verilog-sk-casez|verilog-sk-comment|verilog-sk-datadef|verilog-sk-def-reg|verilog-sk-define-signal|verilog-sk-else-if|verilog-sk-for|verilog-sk-fork|verilog-sk-function|verilog-sk-generate|verilog-sk-header-tmpl|verilog-sk-header|verilog-sk-if|verilog-sk-initial|verilog-sk-inout|verilog-sk-input|verilog-sk-module|verilog-sk-output|verilog-sk-ovm-class|verilog-sk-primitive|verilog-sk-prompt-clock|verilog-sk-prompt-condition|verilog-sk-prompt-inc|verilog-sk-prompt-init|verilog-sk-prompt-lsb|verilog-sk-prompt-msb|verilog-sk-prompt-name|verilog-sk-prompt-output|verilog-sk-prompt-reset|verilog-sk-prompt-state-selector|verilog-sk-prompt-width|verilog-sk-reg|verilog-sk-repeat|verilog-sk-specify|verilog-sk-state-machine|verilog-sk-task|verilog-sk-uvm-component|verilog-sk-uvm-object|verilog-sk-while|verilog-sk-wire|verilog-skip-backward-comment-or-string|verilog-skip-backward-comments|verilog-skip-forward-comment-or-string)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:verilog-skip-forward-comment-p|verilog-star-comment|verilog-start-translate-off|verilog-stmt-menu|verilog-string-diff|verilog-string-match-fold|verilog-string-remove-spaces|verilog-string-replace-matches|verilog-strip-comments|verilog-subdecls-get-inouts|verilog-subdecls-get-inputs|verilog-subdecls-get-interfaced|verilog-subdecls-get-interfaces|verilog-subdecls-get-outputs|verilog-subdecls-new|verilog-submit-bug-report|verilog-surelint-off|verilog-symbol-detick-denumber|verilog-symbol-detick-text|verilog-symbol-detick|verilog-syntax-ppss|verilog-typedef-name-p|verilog-uncomment-region|verilog-var-completion|verilog-verilint-off|verilog-version|verilog-wai|verilog-warn-error|verilog-warn|verilog-within-string|verilog-within-translate-off|version-list-<|version-list-<=|version-list-=|version-list-not-zero|version-to-list|version|version<|version<=|version=|vhdl-abbrev-list-init|vhdl-activate-customizations|vhdl-add-modified-file|vhdl-add-source-files-menu|vhdl-add-syntax|vhdl-adelete|vhdl-aget|vhdl-align-buffer|vhdl-align-declarations|vhdl-align-group|vhdl-align-inline-comment-buffer|vhdl-align-inline-comment-group|vhdl-align-inline-comment-region-1|vhdl-align-inline-comment-region|vhdl-align-list|vhdl-align-region-1|vhdl-align-region-2|vhdl-align-region-groups|vhdl-align-region|vhdl-align-same-indent|vhdl-aput-delete-if-nil|vhdl-aput|vhdl-auto-load-project|vhdl-back-to-indentation|vhdl-backward-same-indent|vhdl-backward-sexp|vhdl-backward-skip-label|vhdl-backward-syntactic-ws|vhdl-backward-to-block|vhdl-backward-up-list|vhdl-beautify-buffer|vhdl-beautify-region|vhdl-begin-p|vhdl-beginning-of-block|vhdl-beginning-of-defun|vhdl-beginning-of-libunit|vhdl-beginning-of-macro|vhdl-beginning-of-statement-1|vhdl-beginning-of-statement|vhdl-case-alternative-p|vhdl-case-keyword|vhdl-case-word|vhdl-character-to-event|vhdl-comment-append-inline|vhdl-comment-block|vhdl-comment-display-line|vhdl-comment-display|vhdl-comment-indent|vhdl-comment-insert-inline|vhdl-comment-insert|vhdl-comment-kill-inline-region|vhdl-comment-kill-region|vhdl-comment-uncomment-line|vhdl-comment-uncomment-region|vhdl-compile-directory|vhdl-compile-init|vhdl-compile-print-file-name|vhdl-compile|vhdl-compose-components-package|vhdl-compose-configuration-architecture|vhdl-compose-configuration|vhdl-compose-insert-generic|vhdl-compose-insert-port|vhdl-compose-insert-signal|vhdl-compose-new-component|vhdl-compose-place-component|vhdl-compose-wire-components|vhdl-corresponding-begin|vhdl-corresponding-defun|vhdl-corresponding-end|vhdl-corresponding-mid|vhdl-create-mode-menu|vhdl-current-line|vhdl-custom-set|vhdl-customize|vhdl-decision-query|vhdl-default-directory|vhdl-defun-p|vhdl-delete-indentation|vhdl-delete|vhdl-directory-files|vhdl-do-group|vhdl-do-list|vhdl-do-same-indent|vhdl-doc-mode|vhdl-doc-variable|vhdl-duplicate-project|vhdl-electric-close-bracket|vhdl-electric-comma|vhdl-electric-dash|vhdl-electric-equal|vhdl-electric-mode|vhdl-electric-open-bracket|vhdl-electric-period|vhdl-electric-quote|vhdl-electric-return|vhdl-electric-semicolon|vhdl-electric-space|vhdl-electric-tab|vhdl-end-of-block|vhdl-end-of-defun|vhdl-end-of-leader|vhdl-end-of-statement|vhdl-end-p|vhdl-end-translate-off|vhdl-error-regexp-add-emacs|vhdl-expand-abbrev|vhdl-expand-paren|vhdl-export-project|vhdl-fill-group|vhdl-fill-list|vhdl-fill-region|vhdl-fill-same-indent|vhdl-first-word|vhdl-fix-case-buffer|vhdl-fix-case-region-1|vhdl-fix-case-region|vhdl-fix-case-word|vhdl-fix-clause-buffer|vhdl-fix-clause|vhdl-fix-statement-buffer|vhdl-fix-statement-region|vhdl-fixup-whitespace-buffer|vhdl-fixup-whitespace-region|vhdl-font-lock-init|vhdl-font-lock-match-item|vhdl-fontify-buffer|vhdl-forward-comment|vhdl-forward-same-indent|vhdl-forward-sexp|vhdl-forward-skip-label|vhdl-forward-syntactic-ws|vhdl-function-name|vhdl-generate-makefile-1|vhdl-generate-makefile|vhdl-get-block-state|vhdl-get-compile-options|vhdl-get-components-package-name|vhdl-get-end-of-unit|vhdl-get-hierarchy|vhdl-get-instantiations|vhdl-get-library-unit|vhdl-get-make-options|vhdl-get-offset|vhdl-get-packages|vhdl-get-source-files|vhdl-get-subdirs|vhdl-get-syntactic-context|vhdl-get-visible-signals|vhdl-goto-marker|vhdl-has-syntax|vhdl-he-list-beg|vhdl-hideshow-init|vhdl-hooked-abbrev|vhdl-hs-forward-sexp-func|vhdl-hs-minor-mode|vhdl-import-project|vhdl-in-argument-list-p|vhdl-in-comment-p|vhdl-in-extended-identifier-p|vhdl-in-literal|vhdl-in-quote-p|vhdl-in-string-p|vhdl-indent-buffer|vhdl-indent-group|vhdl-indent-line|vhdl-indent-region|vhdl-indent-sexp|vhdl-index-menu-init|vhdl-insert-file-contents|vhdl-insert-keyword|vhdl-insert-string-or-file|vhdl-keep-region-active|vhdl-last-word|vhdl-libunit-p|vhdl-line-copy|vhdl-line-expand|vhdl-line-kill-entire|vhdl-line-kill|vhdl-line-open|vhdl-line-transpose-next|vhdl-line-transpose-previous|vhdl-line-yank|vhdl-lineup-arglist-intro|vhdl-lineup-arglist|vhdl-lineup-comment|vhdl-lineup-statement-cont|vhdl-load-cache|vhdl-make|vhdl-makefile-name|vhdl-mark-defun|vhdl-match-string-downcase|vhdl-match-translate-off|vhdl-max-marker|vhdl-menu-split|vhdl-minibuffer-tab|vhdl-mode-abbrev-table-init|vhdl-mode-map-init|vhdl-mode|vhdl-model-defun|vhdl-model-example-model|vhdl-model-insert|vhdl-model-map-init|vhdl-parse-group-comment|vhdl-parse-string|vhdl-paste-group-comment|vhdl-point|vhdl-port-copy|vhdl-port-flatten|vhdl-port-paste-component|vhdl-port-paste-constants|vhdl-port-paste-context-clause|vhdl-port-paste-declaration|vhdl-port-paste-entity|vhdl-port-paste-generic-map|vhdl-port-paste-generic|vhdl-port-paste-initializations|vhdl-port-paste-instance|vhdl-port-paste-port-map|vhdl-port-paste-port|vhdl-port-paste-signals|vhdl-port-paste-testbench|vhdl-port-reverse-direction|vhdl-prepare-search-1|vhdl-prepare-search-2|vhdl-print-warnings|vhdl-process-command-line-option|vhdl-project-p|vhdl-ps-print-init|vhdl-ps-print-settings|vhdl-re-search-backward|vhdl-re-search-forward|vhdl-read-offset|vhdl-regress-line|vhdl-remove-trailing-spaces-region|vhdl-remove-trailing-spaces|vhdl-replace-string|vhdl-require-hierarchy-info|vhdl-resolve-env-variable|vhdl-resolve-paths|vhdl-run-when-idle|vhdl-safe|vhdl-save-cache|vhdl-save-caches|vhdl-scan-context-clause|vhdl-scan-directory-contents|vhdl-scan-project-contents|vhdl-sequential-statement-p|vhdl-set-compiler|vhdl-set-default-project|vhdl-set-offset|vhdl-set-project|vhdl-set-style|vhdl-show-messages|vhdl-show-syntactic-information|vhdl-skip-case-alternative|vhdl-sort-alist|vhdl-speedbar-check-unit|vhdl-speedbar-configuration|vhdl-speedbar-contract-all|vhdl-speedbar-contract-level|vhdl-speedbar-dired|vhdl-speedbar-display-directory|vhdl-speedbar-display-projects|vhdl-speedbar-expand-all|vhdl-speedbar-expand-architecture|vhdl-speedbar-expand-config|vhdl-speedbar-expand-dirs|vhdl-speedbar-expand-entity|vhdl-speedbar-expand-package|vhdl-speedbar-expand-project|vhdl-speedbar-expand-units|vhdl-speedbar-find-file|vhdl-speedbar-generate-makefile|vhdl-speedbar-goto-this-unit|vhdl-speedbar-higher-text|vhdl-speedbar-initialize|vhdl-speedbar-insert-dir-hierarchy|vhdl-speedbar-insert-dirs|vhdl-speedbar-insert-hierarchy|vhdl-speedbar-insert-project-hierarchy|vhdl-speedbar-insert-projects|vhdl-speedbar-insert-subpackages|vhdl-speedbar-item-info|vhdl-speedbar-line-key|vhdl-speedbar-line-project|vhdl-speedbar-line-text|vhdl-speedbar-make-design|vhdl-speedbar-make-inst-line|vhdl-speedbar-make-pack-line|vhdl-speedbar-make-subpack-line|vhdl-speedbar-make-subprogram-line|vhdl-speedbar-make-title-line|vhdl-speedbar-place-component|vhdl-speedbar-port-copy|vhdl-speedbar-refresh|vhdl-speedbar-rescan-hierarchy|vhdl-speedbar-select-mra|vhdl-speedbar-set-depth|vhdl-speedbar-update-current-project|vhdl-speedbar-update-current-unit|vhdl-speedbar-update-units|vhdl-speedbar|vhdl-standard-p|vhdl-start-translate-off|vhdl-statement-p|vhdl-statistics-buffer|vhdl-stutter-mode|vhdl-submit-bug-report|vhdl-subprog-copy|vhdl-subprog-flatten|vhdl-subprog-paste-body|vhdl-subprog-paste-call|vhdl-subprog-paste-declaration|vhdl-subprog-paste-specification|vhdl-template-alias-hook|vhdl-template-alias|vhdl-template-and-hook|vhdl-template-architecture-hook|vhdl-template-architecture|vhdl-template-argument-list|vhdl-template-array|vhdl-template-assert-hook|vhdl-template-assert|vhdl-template-attribute-decl|vhdl-template-attribute-hook|vhdl-template-attribute-spec|vhdl-template-attribute|vhdl-template-bare-loop-hook|vhdl-template-bare-loop|vhdl-template-begin-end|vhdl-template-block-configuration|vhdl-template-block-hook|vhdl-template-block|vhdl-template-break-hook|vhdl-template-break|vhdl-template-case-hook|vhdl-template-case-is|vhdl-template-case-use|vhdl-template-case|vhdl-template-clocked-wait|vhdl-template-component-conf|vhdl-template-component-decl|vhdl-template-component-hook|vhdl-template-component-inst|vhdl-template-component|vhdl-template-conditional-signal-asst-hook|vhdl-template-conditional-signal-asst|vhdl-template-configuration-decl|vhdl-template-configuration-hook|vhdl-template-configuration-spec|vhdl-template-configuration|vhdl-template-constant-hook|vhdl-template-constant|vhdl-template-construct-alist-init|vhdl-template-default-hook|vhdl-template-default-indent-hook|vhdl-template-default-indent|vhdl-template-default|vhdl-template-directive-synthesis-off|vhdl-template-directive-synthesis-on|vhdl-template-directive-translate-off|vhdl-template-directive-translate-on|vhdl-template-directive|vhdl-template-disconnect-hook|vhdl-template-disconnect|vhdl-template-display-comment-hook|vhdl-template-else-hook|vhdl-template-else|vhdl-template-elsif-hook|vhdl-template-elsif|vhdl-template-entity-hook|vhdl-template-entity|vhdl-template-exit-hook|vhdl-template-exit|vhdl-template-field|vhdl-template-file-hook|vhdl-template-file|vhdl-template-footer|vhdl-template-for-generate|vhdl-template-for-hook|vhdl-template-for-loop|vhdl-template-for|vhdl-template-function-body|vhdl-template-function-decl|vhdl-template-function-hook|vhdl-template-function|vhdl-template-generate-body|vhdl-template-generate|vhdl-template-generic-hook|vhdl-template-generic-list|vhdl-template-generic|vhdl-template-group-decl|vhdl-template-group-hook|vhdl-template-group-template|vhdl-template-group|vhdl-template-header|vhdl-template-if-generate|vhdl-template-if-hook|vhdl-template-if-then-use|vhdl-template-if-then|vhdl-template-if-use|vhdl-template-if|vhdl-template-insert-construct|vhdl-template-insert-date|vhdl-template-insert-directive|vhdl-template-insert-fun|vhdl-template-insert-package|vhdl-template-instance-hook|vhdl-template-instance|vhdl-template-library-hook|vhdl-template-library|vhdl-template-limit-hook|vhdl-template-limit|vhdl-template-loop|vhdl-template-map-hook|vhdl-template-map-init|vhdl-template-map|vhdl-template-modify-noerror|vhdl-template-modify|vhdl-template-nand-hook|vhdl-template-nature-hook|vhdl-template-nature|vhdl-template-next-hook|vhdl-template-next|vhdl-template-nor-hook|vhdl-template-not-hook|vhdl-template-or-hook|vhdl-template-others-hook|vhdl-template-others|vhdl-template-package-alist-init|vhdl-template-package-body|vhdl-template-package-decl|vhdl-template-package-electrical-systems|vhdl-template-package-energy-systems|vhdl-template-package-fluidic-systems|vhdl-template-package-fundamental-constants|vhdl-template-package-hook|vhdl-template-package-material-constants|vhdl-template-package-math-complex|vhdl-template-package-math-real|vhdl-template-package-mechanical-systems|vhdl-template-package-numeric-bit|vhdl-template-package-numeric-std|vhdl-template-package-radiant-systems|vhdl-template-package-std-logic-1164|vhdl-template-package-std-logic-arith|vhdl-template-package-std-logic-misc|vhdl-template-package-std-logic-signed|vhdl-template-package-std-logic-textio|vhdl-template-package-std-logic-unsigned|vhdl-template-package-textio|vhdl-template-package-thermal-systems|vhdl-template-package|vhdl-template-paired-parens|vhdl-template-port-hook|vhdl-template-port-list|vhdl-template-port|vhdl-template-procedural-hook|vhdl-template-procedural|vhdl-template-procedure-body|vhdl-template-procedure-decl|vhdl-template-procedure-hook|vhdl-template-procedure|vhdl-template-process-comb|vhdl-template-process-hook|vhdl-template-process-seq|vhdl-template-process|vhdl-template-quantity-branch|vhdl-template-quantity-free|vhdl-template-quantity-hook|vhdl-template-quantity-source|vhdl-template-quantity|vhdl-template-record|vhdl-template-replace-header-keywords|vhdl-template-report-hook|vhdl-template-report)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:vhdl-template-return-hook|vhdl-template-return|vhdl-template-search-prompt|vhdl-template-selected-signal-asst-hook|vhdl-template-selected-signal-asst|vhdl-template-seq-process|vhdl-template-signal-hook|vhdl-template-signal|vhdl-template-standard-package|vhdl-template-subnature-hook|vhdl-template-subnature|vhdl-template-subprogram-body|vhdl-template-subprogram-decl|vhdl-template-subtype-hook|vhdl-template-subtype|vhdl-template-terminal-hook|vhdl-template-terminal|vhdl-template-type-hook|vhdl-template-type|vhdl-template-undo|vhdl-template-use-hook|vhdl-template-use|vhdl-template-variable-hook|vhdl-template-variable|vhdl-template-wait-hook|vhdl-template-wait|vhdl-template-when-hook|vhdl-template-when|vhdl-template-while-loop-hook|vhdl-template-while-loop|vhdl-template-with-hook|vhdl-template-with|vhdl-template-xnor-hook|vhdl-template-xor-hook|vhdl-toggle-project|vhdl-try-expand-abbrev|vhdl-uniquify|vhdl-upcase-list|vhdl-update-file-contents|vhdl-update-hierarchy|vhdl-update-mode-menu|vhdl-update-progress-info|vhdl-update-sensitivity-list-buffer|vhdl-update-sensitivity-list-process|vhdl-update-sensitivity-list|vhdl-use-direct-instantiation|vhdl-version|vhdl-visit-file|vhdl-warning-when-idle|vhdl-warning|vhdl-widget-directory-validate|vhdl-win-bsws|vhdl-win-fsws|vhdl-win-il|vhdl-within-translate-off|vhdl-words-init|vhdl-work-library|vhdl-write-file-hooks-init|viet-decode-viqr-buffer|viet-decode-viqr-region|viet-encode-viqr-buffer|viet-encode-viqr-region|viet-encode-viscii-char|view--disable|view--enable|view-buffer-other-frame|view-buffer-other-window|view-buffer|view-echo-area-messages|view-emacs-FAQ|view-emacs-debugging|view-emacs-news|view-emacs-problems|view-emacs-todo|view-end-message|view-external-packages|view-file-other-frame|view-file-other-window|view-file|view-hello-file|view-help-file|view-lossage|view-mode-disable|view-mode-enable|view-mode-enter|view-mode-exit|view-mode|view-order-manuals|view-page-size-default|view-really-at-end|view-recenter|view-return-to-alist-update|view-scroll-lines|view-search-no-match-lines|view-search|view-set-half-page-size-default|view-todo|view-window-size|viper--lookup-key|viper--tty-ESC-filter|viper-Append|viper-ESC-event-p|viper-ESC-keyseq-timeout|viper-ESC|viper-Insert|viper-Open-line|viper-P-val|viper-Put-back|viper-R-state-post-command-sentinel|viper-Region|viper-abbreviate-file-name|viper-abbreviate-string|viper-activate-input-method-action|viper-activate-input-method|viper-add-keymap|viper-add-local-keys|viper-add-newline-at-eob-if-necessary|viper-adjust-keys-for|viper-adjust-undo|viper-adjust-window|viper-after-change-sentinel|viper-after-change-undo-hook|viper-alist-to-list|viper-alternate-Meta-key|viper-append-filter-alist|viper-append-to-register|viper-append|viper-apply-major-mode-modifiers|viper-array-to-string|viper-ask-level|viper-autoindent|viper-backward-Word|viper-backward-char-carefully|viper-backward-char|viper-backward-indent|viper-backward-paragraph|viper-backward-sentence|viper-backward-word-kernel|viper-backward-word|viper-before-change-sentinel|viper-beginning-of-field|viper-beginning-of-line|viper-bind-mouse-insert-key|viper-bind-mouse-search-key|viper-bol-and-skip-white|viper-brac-function|viper-buffer-live-p|viper-buffer-search-enable|viper-can-release-key|viper-catch-tty-ESC|viper-change-cursor-color|viper-change-state-to-emacs|viper-change-state-to-insert|viper-change-state-to-replace|viper-change-state-to-vi|viper-change-state|viper-change-subr|viper-change-to-eol|viper-change|viper-char-array-p|viper-char-array-to-macro|viper-char-at-pos|viper-char-equal|viper-char-symbol-sequence-p|viper-characterp|viper-charlist-to-string|viper-charpair-command-p|viper-chars-in-region|viper-check-minibuffer-overlay|viper-check-version|viper-cleanup-ring|viper-color-defined-p|viper-color-display-p|viper-comint-mode-hook|viper-command-argument|viper-common-seq-prefix|viper-complete-filename-or-exit|viper-copy-event|viper-copy-region-as-kill|viper-current-ring-item|viper-cycle-through-mark-ring|viper-deactivate-input-method-action|viper-deactivate-input-method|viper-deactivate-mark|viper-debug-keymaps|viper-default-ex-addresses|viper-deflocalvar|viper-del-backward-char-in-insert|viper-del-backward-char-in-replace|viper-del-forward-char-in-insert|viper-delete-backward-char|viper-delete-backward-word|viper-delete-char|viper-delocalize-var|viper-describe-arg|viper-describe-kbd-macros|viper-describe-one-macro-elt|viper-describe-one-macro|viper-device-type|viper-digit-argument|viper-digit-command-p|viper-display-current-destructive-command|viper-display-macro|viper-display-vector-completions|viper-do-sequence-completion|viper-dotable-command-p|viper-downgrade-to-insert|viper-end-mapping-kbd-macro|viper-end-of-Word|viper-end-of-word-kernel|viper-end-of-word-p|viper-end-of-word|viper-end-with-a-newline-p|viper-enlarge-region|viper-erase-line|viper-escape-to-emacs|viper-escape-to-state|viper-escape-to-vi|viper-event-click-count|viper-event-key|viper-event-vector-p|viper-eventify-list-xemacs|viper-events-to-macro|viper-ex-read-file-name|viper-ex|viper-exchange-point-and-mark|viper-exec-Change|viper-exec-Delete|viper-exec-Yank|viper-exec-bang|viper-exec-buffer-search|viper-exec-change|viper-exec-delete|viper-exec-dummy|viper-exec-equals|viper-exec-form-in-emacs|viper-exec-form-in-vi|viper-exec-key-in-emacs|viper-exec-mapped-kbd-macro|viper-exec-shift|viper-exec-yank|viper-execute-com|viper-exit-insert-state|viper-exit-minibuffer|viper-extract-matching-alist-members|viper-fast-keysequence-p|viper-file-add-suffix|viper-file-checked-in-p|viper-filter-alist|viper-filter-list|viper-find-best-matching-macro|viper-find-char-backward|viper-find-char-forward|viper-find-char|viper-finish-R-mode|viper-finish-change|viper-fixup-macro|viper-flash-search-pattern|viper-forward-Word|viper-forward-char-carefully|viper-forward-char|viper-forward-indent|viper-forward-paragraph|viper-forward-sentence|viper-forward-word-kernel|viper-forward-word|viper-frame-value|viper-get-cursor-color|viper-get-ex-address-subr|viper-get-ex-address|viper-get-ex-buffer|viper-get-ex-com-subr|viper-get-ex-count|viper-get-ex-file|viper-get-ex-opt-gc|viper-get-ex-pat|viper-get-ex-token|viper-get-face|viper-get-filenames-from-buffer|viper-get-saved-cursor-color-in-emacs-mode|viper-get-saved-cursor-color-in-insert-mode|viper-get-saved-cursor-color-in-replace-mode|viper-get-visible-buffer-window|viper-getCom|viper-getcom|viper-glob-mswindows-files|viper-glob-unix-files|viper-global-execute|viper-go-away|viper-goto-char-backward|viper-goto-char-forward|viper-goto-col|viper-goto-eol|viper-goto-line|viper-goto-mark-and-skip-white|viper-goto-mark-subr|viper-goto-mark|viper-handle-!|viper-harness-minor-mode|viper-has-face-support-p|viper-hash-command-p|viper-heading-end|viper-hide-replace-overlay|viper-hide-search-overlay|viper-iconify|viper-if-string|viper-indent-line|viper-info-on-file|viper-insert-isearch-string|viper-insert-next-from-insertion-ring|viper-insert-prev-from-insertion-ring|viper-insert-state-post-command-sentinel|viper-insert-state-pre-command-sentinel|viper-insert-tab|viper-insert|viper-int-to-char|viper-intercept-ESC-key|viper-is-in-minibuffer|viper-isearch-backward|viper-isearch-forward|viper-join-lines|viper-kbd-buf-alist|viper-kbd-buf-definition|viper-kbd-buf-pair|viper-kbd-global-definition|viper-kbd-global-pair|viper-kbd-mode-alist|viper-kbd-mode-definition|viper-kbd-mode-pair|viper-ket-function|viper-key-press-events-to-chars|viper-key-to-character|viper-key-to-emacs-key|viper-keyseq-is-a-possible-macro|viper-kill-buffer|viper-kill-line|viper-last-command-char|viper-leave-region-active|viper-line-pos|viper-line-to-bottom|viper-line-to-middle|viper-line-to-top|viper-line|viper-list-to-alist|viper-load-custom-file|viper-looking-at-alpha|viper-looking-at-alphasep|viper-looking-at-separator|viper-looking-back|viper-loop|viper-macro-to-events|viper-major-mode-change-sentinel|viper-make-overlay|viper-mark-beginning-of-buffer|viper-mark-end-of-buffer|viper-mark-marker|viper-mark-point|viper-maybe-checkout|viper-memq-char|viper-message-conditions|viper-minibuffer-post-command-hook|viper-minibuffer-real-start|viper-minibuffer-setup-sentinel|viper-minibuffer-standard-hook|viper-minibuffer-trim-tail|viper-mode|viper-modify-keymap|viper-modify-major-mode|viper-mouse-catch-frame-switch|viper-mouse-click-frame|viper-mouse-click-get-word|viper-mouse-click-insert-word|viper-mouse-click-posn|viper-mouse-click-search-word|viper-mouse-click-window-buffer-name|viper-mouse-click-window-buffer|viper-mouse-click-window|viper-mouse-event-p|viper-move-marker-locally|viper-move-overlay|viper-move-replace-overlay|viper-movement-command-p|viper-multiclick-p|viper-next-destructive-command|viper-next-heading|viper-next-line-at-bol|viper-next-line-carefully|viper-next-line|viper-nil|viper-non-hook-settings|viper-normalize-minor-mode-map-alist|viper-open-line-at-point|viper-open-line|viper-over-whitespace-line|viper-overlay-end|viper-overlay-get|viper-overlay-live-p|viper-overlay-p|viper-overlay-put|viper-overlay-start|viper-overwrite|viper-p-val|viper-paren-match|viper-parse-mouse-key|viper-pos-within-region|viper-post-command-sentinel|viper-pre-command-sentinel|viper-prefix-arg-com|viper-prefix-arg-value|viper-prefix-command-p|viper-prefix-subseq-p|viper-preserve-cursor-color|viper-prev-destructive-command|viper-prev-heading|viper-previous-line-at-bol|viper-previous-line|viper-push-onto-ring|viper-put-back|viper-put-on-search-overlay|viper-put-string-on-kill-ring|viper-query-replace|viper-quote-region|viper-read-char-exclusive|viper-read-event-convert-to-char|viper-read-event|viper-read-fast-keysequence|viper-read-key-sequence|viper-read-key|viper-read-string-with-history|viper-record-kbd-macro|viper-refresh-mode-line|viper-region|viper-register-macro|viper-register-to-point|viper-regsuffix-command-p|viper-remember-current-frame|viper-remove-hooks|viper-repeat-find-opposite|viper-repeat-find|viper-repeat-from-history|viper-repeat-insert-command|viper-repeat|viper-replace-char-subr|viper-replace-char|viper-replace-end|viper-replace-mode-spy-after|viper-replace-mode-spy-before|viper-replace-start|viper-replace-state-carriage-return|viper-replace-state-exit-cmd|viper-replace-state-post-command-sentinel|viper-replace-state-pre-command-sentinel|viper-reset-mouse-insert-key|viper-reset-mouse-search-key|viper-restore-cursor-color|viper-restore-cursor-type|viper-ring-insert|viper-ring-pop|viper-ring-rotate1|viper-same-line|viper-save-cursor-color|viper-save-kill-buffer|viper-save-last-insertion|viper-save-setting|viper-save-string-in-file|viper-scroll-down-one|viper-scroll-down|viper-scroll-screen-back|viper-scroll-screen|viper-scroll-up-one|viper-scroll-up|viper-search-Next|viper-search-backward|viper-search-forward|viper-search-next|viper-search|viper-separator-skipback-special|viper-seq-last-elt|viper-set-complex-command-for-undo|viper-set-cursor-color-according-to-state|viper-set-destructive-command|viper-set-emacs-state-searchstyle-macros|viper-set-expert-level|viper-set-hooks|viper-set-input-method|viper-set-insert-cursor-type|viper-set-iso-accents-mode|viper-set-mark-if-necessary|viper-set-minibuffer-overlay|viper-set-minibuffer-style|viper-set-mode-vars-for|viper-set-parsing-style-toggling-macro|viper-set-register-macro|viper-set-replace-overlay-glyphs|viper-set-replace-overlay|viper-set-searchstyle-toggling-macros|viper-set-syntax-preference|viper-set-unread-command-events|viper-setup-ESC-to-escape|viper-setup-master-buffer|viper-sit-for-short|viper-skip-all-separators-backward|viper-skip-all-separators-forward|viper-skip-alpha-backward|viper-skip-alpha-forward|viper-skip-nonalphasep-backward|viper-skip-nonalphasep-forward|viper-skip-nonseparators|viper-skip-separators|viper-skip-syntax|viper-special-prefix-com|viper-special-read-and-insert-char|viper-special-ring-rotate1|viper-standard-value|viper-start-R-mode|viper-start-replace|viper-string-to-list|viper-submit-report|viper-subseq|viper-substitute-line|viper-substitute|viper-surrounding-word|viper-switch-to-buffer-other-window|viper-switch-to-buffer|viper-test-com-defun|viper-this-buffer-macros|viper-tmp-insert-at-eob|viper-toggle-case|viper-toggle-key-action|viper-toggle-parse-sexp-ignore-comments)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:viper-toggle-search-style|viper-translate-all-ESC-keysequences|viper-trim-replace-chars-to-delete-if-necessary|viper-unbind-mouse-insert-key|viper-unbind-mouse-search-key|viper-uncatch-tty-ESC|viper-undisplayed-files|viper-undo-more|viper-undo-sentinel|viper-undo|viper-unrecord-kbd-macro|viper-update-syntax-classes|viper-valid-marker|viper-valid-register|viper-version|viper-vi-command-p|viper-wildcard-to-regexp|viper-window-bottom|viper-window-display-p|viper-window-middle|viper-window-top|viper-yank-defun|viper-yank-last-insertion|viper-yank-line|viper-yank|viper-zap-local-keys|viper=|viqr-post-read-conversion|viqr-pre-write-conversion|visible-mode|visit-tags-table-buffer|visit-tags-table|visual-line-mode-set-explicitly|visual-line-mode|vt-keypad-off|vt-keypad-on|vt-narrow|vt-numlock|vt-toggle-screen|vt-wide|walk-window-subtree|walk-window-tree-1|walk-window-tree|warn-maybe-out-of-memory|warning-numeric-level|warning-suppress-p|wdired-abort-changes|wdired-capitalize-word|wdired-change-to-dired-mode|wdired-change-to-wdired-mode|wdired-check-kill-buffer|wdired-customize|wdired-do-perm-changes|wdired-do-renames|wdired-do-symlink-changes|wdired-downcase-word|wdired-exit|wdired-finish-edit|wdired-flag-for-deletion|wdired-get-filename|wdired-get-previous-link|wdired-isearch-filter-read-only|wdired-mode|wdired-mouse-toggle-bit|wdired-next-line|wdired-normalize-filename|wdired-perm-allowed-in-pos|wdired-perms-to-number|wdired-preprocess-files|wdired-preprocess-perms|wdired-preprocess-symlinks|wdired-previous-line|wdired-revert|wdired-search-and-rename|wdired-set-bit|wdired-toggle-bit|wdired-upcase-word|wdired-xcase-word|webjump-builtin-check-args|webjump-builtin|webjump-choose-mirror|webjump-do-simple-query|webjump-mirror-default|webjump-null-or-blank-string-p|webjump-read-choice|webjump-read-number|webjump-read-string|webjump-read-url-choice|webjump-to-iwin|webjump-to-risks|webjump-url-encode|webjump-url-fix-trailing-slash|webjump-url-fix|webjump|what-cursor-position|what-domain|what-line|what-page|when-let|where-is|which-func-ff-hook|which-func-mode|which-func-update-1|which-func-update-ediff-windows|which-func-update|which-function-mode|which-function|whitespace-action-when-on|whitespace-buffer-changed|whitespace-char-valid-p|whitespace-cleanup-region|whitespace-cleanup|whitespace-color-off|whitespace-color-on|whitespace-display-char-off|whitespace-display-char-on|whitespace-display-vector-p|whitespace-display-window|whitespace-empty-at-bob-regexp|whitespace-empty-at-eob-regexp|whitespace-ensure-local-variables|whitespace-help-off|whitespace-help-on|whitespace-help-scroll|whitespace-indentation-regexp|whitespace-insert-option-mark|whitespace-insert-value|whitespace-interactive-char|whitespace-kill-buffer|whitespace-looking-back|whitespace-mark-x|whitespace-mode|whitespace-newline-mode|whitespace-point--flush-used|whitespace-point--used|whitespace-post-command-hook|whitespace-regexp|whitespace-replace-action|whitespace-report-region|whitespace-report|whitespace-space-after-tab-regexp|whitespace-style-face-p|whitespace-style-mark-p|whitespace-toggle-list|whitespace-toggle-options|whitespace-trailing-regexp|whitespace-turn-off|whitespace-turn-on-if-enabled|whitespace-turn-on|whitespace-unload-function|whitespace-warn-read-only|whitespace-write-file-hook|whois-get-tld|whois-reverse-lookup|whois|widget-add-change|widget-add-documentation-string-button|widget-after-change|widget-alist-convert-option|widget-alist-convert-widget|widget-apply-action|widget-apply|widget-at|widget-backward|widget-before-change|widget-beginning-of-line|widget-boolean-prompt-value|widget-browse-at|widget-browse-other-window|widget-browse|widget-button-click|widget-button-press|widget-button-release-event-p|widget-checkbox-action|widget-checklist-add-item|widget-checklist-match-find|widget-checklist-match-inline|widget-checklist-match-up|widget-checklist-match|widget-checklist-validate|widget-checklist-value-create|widget-checklist-value-get|widget-child-validate|widget-child-value-get|widget-child-value-inline|widget-children-validate|widget-children-value-delete|widget-choice-action|widget-choice-default-get|widget-choice-match-inline|widget-choice-match|widget-choice-mouse-down-action|widget-choice-prompt-value|widget-choice-validate|widget-choice-value-create|widget-choose|widget-clear-undo|widget-coding-system-action|widget-coding-system-prompt-value|widget-color--choose-action|widget-color-action|widget-color-notify|widget-color-sample-face-get|widget-color-value-create|widget-complete|widget-completions-at-point|widget-cons-match|widget-const-prompt-value|widget-convert-button|widget-convert-text|widget-convert|widget-copy|widget-create-child-and-convert|widget-create-child-value|widget-create-child|widget-create|widget-default-action|widget-default-active|widget-default-button-face-get|widget-default-completions|widget-default-create|widget-default-deactivate|widget-default-default-get|widget-default-delete|widget-default-format-handler|widget-default-get|widget-default-menu-tag-get|widget-default-mouse-face-get|widget-default-notify|widget-default-prompt-value|widget-default-sample-face-get|widget-default-value-inline|widget-default-value-set|widget-delete-button-action|widget-delete|widget-docstring|widget-documentation-link-action|widget-documentation-link-add|widget-documentation-string-action|widget-documentation-string-indent-to|widget-documentation-string-value-create|widget-echo-help|widget-editable-list-delete-at|widget-editable-list-entry-create|widget-editable-list-format-handler|widget-editable-list-insert-before|widget-editable-list-match-inline|widget-editable-list-match|widget-editable-list-value-create|widget-editable-list-value-get|widget-emacs-commentary-link-action|widget-emacs-library-link-action|widget-end-of-line|widget-event-point|widget-face-notify|widget-face-sample-face-get|widget-field-action|widget-field-activate|widget-field-at|widget-field-buffer|widget-field-end|widget-field-find|widget-field-match|widget-field-prompt-internal|widget-field-prompt-value|widget-field-start|widget-field-text-end|widget-field-validate|widget-field-value-create|widget-field-value-delete|widget-field-value-get|widget-field-value-set|widget-file-link-action|widget-file-prompt-value|widget-forward|widget-function-link-action|widget-get-indirect|widget-get-sibling|widget-get|widget-group-default-get|widget-group-match-inline|widget-group-match|widget-group-value-create|widget-image-find|widget-image-insert|widget-info-link-action|widget-insert-button-action|widget-insert|widget-item-action|widget-item-match-inline|widget-item-match|widget-item-value-create|widget-key-sequence-read-event|widget-key-sequence-validate|widget-key-sequence-value-to-external|widget-key-sequence-value-to-internal|widget-kill-line|widget-leave-text|widget-magic-mouse-down-action|widget-map-buttons|widget-match-inline|widget-member|widget-minor-mode|widget-mouse-help|widget-move-and-invoke|widget-move|widget-narrow-to-field|widget-overlay-inactive|widget-parent-action|widget-plist-convert-option|widget-plist-convert-widget|widget-plist-member|widget-princ-to-string|widget-prompt-value|widget-push-button-value-create|widget-put|widget-radio-action|widget-radio-add-item|widget-radio-button-notify|widget-radio-chosen|widget-radio-validate|widget-radio-value-create|widget-radio-value-get|widget-radio-value-inline|widget-radio-value-set|widget-regexp-match|widget-regexp-validate|widget-restricted-sexp-match|widget-setup|widget-sexp-prompt-value|widget-sexp-validate|widget-sexp-value-to-internal|widget-specify-active|widget-specify-button|widget-specify-doc|widget-specify-field|widget-specify-inactive|widget-specify-insert|widget-specify-sample|widget-specify-secret|widget-sublist|widget-symbol-prompt-internal|widget-tabable-at|widget-toggle-action|widget-toggle-value-create|widget-type-default-get|widget-type-match|widget-type-value-create|widget-type|widget-types-convert-widget|widget-types-copy|widget-url-link-action|widget-value-convert-widget|widget-value-set|widget-value-value-get|widget-value|widget-variable-link-action|widget-vector-match|widget-visibility-value-create|widgetp|wildcard-to-regexp|windmove-constrain-around-range|windmove-constrain-loc-for-movement|windmove-constrain-to-range|windmove-coord-add|windmove-default-keybindings|windmove-do-window-select|windmove-down|windmove-find-other-window|windmove-frame-edges|windmove-left|windmove-other-window-loc|windmove-reference-loc|windmove-right|windmove-up|windmove-wrap-loc-for-movement|window--atom-check-1|window--atom-check|window--check|window--delete|window--display-buffer|window--dump-frame|window--dump-window|window--even-window-heights|window--frame-usable-p|window--in-direction-2|window--in-subtree-p|window--major-non-side-window|window--major-side-window|window--max-delta-1|window--maybe-raise-frame|window--min-delta-1|window--min-size-1|window--min-size-ignore-p|window--pixel-to-total-1|window--pixel-to-total|window--preservable-size|window--preserve-size|window--resizable-p|window--resizable|window--resize-apply-p|window--resize-child-windows-normal|window--resize-child-windows-skip-p|window--resize-child-windows|window--resize-mini-window|window--resize-reset-1|window--resize-reset|window--resize-root-window-vertically|window--resize-root-window|window--resize-siblings|window--resize-this-window|window--sanitize-margin|window--sanitize-window-sizes|window--side-check|window--side-window-p|window--size-fixed-1|window--size-ignore-p|window--size-to-pixel|window--state-get-1|window--state-put-1|window--state-put-2|window--subtree|window--try-to-split-window|window-at-side-list|window-at-side-p|window-atom-root|window-buffer-height|window-child-count|window-combination-p|window-combinations|window-configuration-to-register|window-deletable-p|window-dot|window-fixed-size-p|window-height|window-last-child|window-left|window-list-1|window-make-atom|window-max-delta|window-min-delta|window-min-pixel-height|window-min-pixel-size|window-min-pixel-width|window-new-normal|window-new-pixel|window-new-total|window-normal-size|window-normalize-buffer-to-switch-to|window-normalize-buffer|window-normalize-frame|window-normalize-window|window-old-point|window-preserve-size|window-preserved-size|window-redisplay-end-trigger|window-resizable-p|window-resize-apply-total|window-resize-apply|window-resize-no-error|window-right|window-safe-min-pixel-height|window-safe-min-pixel-size|window-safe-min-pixel-width|window-safe-min-size|window-safely-shrinkable-p|window-screen-lines|window-scroll-bar-height|window-sizable-p|window-sizable|window-size-fixed-p|window-size|window-splittable-p|window-system-for-display|window-text-height|window-text-width|window-use-time|window-width|window-with-parameter|winner-active-region|winner-change-fun|winner-conf|winner-configuration|winner-edges|winner-equal|winner-get-point|winner-insert-if-new|winner-make-point-alist|winner-mode|winner-redo|winner-remember|winner-ring|winner-save-conditionally|winner-save-old-configurations|winner-save-unconditionally|winner-set-conf|winner-set|winner-sorted-window-list|winner-undo-this|winner-undo|winner-win-data|winner-window-list|wisent-grammar-mode|wisent-java-default-setup|wisent-javascript-setup-parser|wisent-python-default-setup|with-auto-compression-mode|with-buffer-modified-unmodified|with-category-table|with-decoded-time-value|with-displayed-buffer-window|with-electric-help|with-file-modes|with-isearch-suspended|with-js|with-mh-folder-updating|with-mode-local-symbol|with-mode-local|with-parsed-tramp-file-name|with-rcirc-process-buffer|with-rcirc-server-buffer|with-selected-frame|with-silent-modifications|with-slots|with-timeout-suspend|with-timeout-unsuspend|with-tramp-connection-property|with-tramp-file-property|with-tramp-progress-reporter|with-vc-properties|with-wrapper-hook|woman-Cyg-to-Win|woman-bookmark-jump|woman-bookmark-make-record|woman-break-table|woman-cached-data|woman-canonicalize-dir|woman-change-fonts|woman-decode-buffer|woman-decode-region|woman-default-faces|woman-delete-following-space|woman-delete-line|woman-delete-match|woman-delete-whole-line|woman-directory-files|woman-dired-define-key-maybe|woman-dired-define-key|woman-dired-define-keys|woman-dired-find-file|woman-display-extended-fonts)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"},{\"match\":\"(?<=[()]|^)(?:woman-expand-directory-path|woman-expand-locale|woman-file-accessible-directory-p|woman-file-name-all-completions|woman-file-name|woman-file-readable-p|woman-find-file|woman-find-next-control-line-carefully|woman-find-next-control-line|woman-follow-word|woman-follow|woman-forward-arg|woman-get-next-char|woman-get-numeric-arg|woman-get-tab-stop|woman-horizontal-escapes|woman-horizontal-line|woman-if-body|woman-if-ignore|woman-imenu|woman-insert-file-contents|woman-interparagraph-space|woman-interpolate-macro|woman-leave-blank-lines|woman-make-bufname|woman-man-buffer|woman-manpath-add-locales|woman-mark-horizontal-position|woman-match-name|woman-menu|woman-mini-help|woman-mode|woman-monochrome-faces|woman-negative-vertical-space|woman-non-underline-faces|woman-not-member|woman-parse-colon-path|woman-parse-man\\\\\\\\.conf|woman-parse-numeric-arg|woman-parse-numeric-value|woman-pop|woman-pre-process-region|woman-process-buffer|woman-push|woman-read-directory-cache|woman-really-find-file|woman-reformat-last-file|woman-replace-match|woman-reset-emulation|woman-reset-nospace|woman-select-symbol-fonts|woman-select|woman-set-arg|woman-set-buffer-display-table|woman-set-face|woman-set-interparagraph-distance|woman-special-characters|woman-strings|woman-tab-to-tab-stop|woman-tar-extract-file|woman-toggle-fill-frame|woman-toggle-use-extended-font|woman-toggle-use-symbol-font|woman-topic-all-completions-1|woman-topic-all-completions-merge|woman-topic-all-completions|woman-translate|woman-unescape|woman-unquote-args|woman-unquote|woman-write-directory-cache|woman|woman0-de|woman0-el|woman0-if|woman0-ig|woman0-macro|woman0-process-escapes|woman0-rename|woman0-rn|woman0-roff-buffer|woman0-so|woman1-B-or-I|woman1-B|woman1-BI|woman1-BR|woman1-I|woman1-IB|woman1-IR|woman1-IX|woman1-RB|woman1-RI|woman1-SB|woman1-SM|woman1-TP|woman1-TX|woman1-alt-fonts|woman1-bd|woman1-cs|woman1-hc|woman1-hw|woman1-hy|woman1-ne|woman1-nh|woman1-ps|woman1-roff-buffer|woman1-ss|woman1-ul|woman1-vs|woman2-DT|woman2-HP|woman2-IP|woman2-LP|woman2-P|woman2-PD|woman2-PP|woman2-RE|woman2-RS|woman2-SH|woman2-SS|woman2-TE|woman2-TH|woman2-TP|woman2-TS|woman2-ad|woman2-br|woman2-fc|woman2-fi|woman2-format-paragraphs|woman2-get-prevailing-indent|woman2-in|woman2-ll|woman2-na|woman2-nf|woman2-nr|woman2-ns|woman2-process-escapes-to-eol|woman2-process-escapes|woman2-roff-buffer|woman2-rs|woman2-sp|woman2-ta|woman2-tagged-paragraph|woman2-ti|woman2-tr|word-at-point|x-apply-session-resources|x-backspace-delete-keys-p|x-change-window-property|x-clipboard-yank|x-complement-fontset-spec|x-compose-font-name|x-create-frame-with-faces|x-create-frame|x-cut-buffer-or-selection-value|x-decompose-font-name|x-delete-window-property|x-disown-selection-internal|x-display-backing-store|x-display-color-cells|x-display-grayscale-p|x-display-mm-height|x-display-mm-width|x-display-monitor-attributes-list|x-display-pixel-height|x-display-pixel-width|x-display-planes|x-display-save-under|x-display-screens|x-display-visual-class|x-dnd-choose-type|x-dnd-current-type|x-dnd-default-test-function|x-dnd-drop-data|x-dnd-forget-drop|x-dnd-get-drop-width-height|x-dnd-get-drop-x-y|x-dnd-get-motif-value|x-dnd-get-state-cons-for-frame|x-dnd-get-state-for-frame|x-dnd-handle-drag-n-drop-event|x-dnd-handle-file-name|x-dnd-handle-motif|x-dnd-handle-moz-url|x-dnd-handle-old-kde|x-dnd-handle-uri-list|x-dnd-handle-xdnd|x-dnd-init-frame|x-dnd-init-motif-for-frame|x-dnd-init-xdnd-for-frame|x-dnd-insert-ctext|x-dnd-insert-utf16-text|x-dnd-insert-utf8-text|x-dnd-maybe-call-test-function|x-dnd-more-than-3-from-flags|x-dnd-motif-value-to-list|x-dnd-save-state|x-dnd-version-from-flags|x-file-dialog|x-focus-frame|x-frame-geometry|x-get-atom-name|x-get-clipboard|x-get-selection-internal|x-get-selection-value|x-gtk-map-stock|x-handle-args|x-handle-display|x-handle-geometry|x-handle-iconic|x-handle-initial-switch|x-handle-name-switch|x-handle-named-frame-geometry|x-handle-no-bitmap-icon|x-handle-numeric-switch|x-handle-parent-id|x-handle-reverse-video|x-handle-smid|x-handle-switch|x-handle-xrm-switch|x-hide-tip|x-initialize-window-system|x-menu-bar-open-internal|x-menu-bar-open|x-must-resolve-font-name|x-own-selection-internal|x-register-dnd-atom|x-resolve-font-name|x-select-font|x-select-text|x-selection-exists-p|x-selection-owner-p|x-selection-value|x-selection|x-send-client-message|x-server-max-request-size|x-show-tip|x-synchronize|x-uses-old-gtk-dialog|x-win-suspend-error|x-window-property|x-wm-set-size-hint|xdb|xml--entity-replacement-text|xml--parse-buffer|xml-debug-print-internal|xml-debug-print|xml-escape-string|xml-find-file-coding-system|xml-get-attribute-or-nil|xml-get-attribute|xml-get-children|xml-maybe-do-ns|xml-mode|xml-node-attributes|xml-node-children|xml-node-name|xml-parse-attlist|xml-parse-dtd|xml-parse-elem-type|xml-parse-file|xml-parse-region|xml-parse-string|xml-parse-tag-1|xml-parse-tag|xml-print|xml-skip-dtd|xml-substitute-numeric-entities|xml-substitute-special|xmltok-get-declared-encoding-position|xor|xref--alistify|xref--analyze|xref--display-position|xref--find-definitions|xref--goto-location|xref--insert-propertized|xref--insert-xrefs|xref--location-at-point|xref--next-line|xref--pop-to-location|xref--read-identifier|xref--search-property|xref--show-location|xref--show-xref-buffer|xref--show-xrefs|xref--xref-buffer-mode|xref--xref-child-p|xref--xref-description|xref--xref-list-p|xref--xref-location|xref--xref-p|xref--xref|xref-bogus-location-child-p|xref-bogus-location-list-p|xref-bogus-location-message|xref-bogus-location-p|xref-bogus-location|xref-buffer-location-child-p|xref-buffer-location-list-p|xref-buffer-location-p|xref-buffer-location|xref-clear-marker-stack|xref-default-identifier-at-point|xref-elisp-location-child-p|xref-elisp-location-list-p|xref-elisp-location-p|xref-elisp-location|xref-file-location-child-p|xref-file-location-list-p|xref-file-location-p|xref-file-location|xref-find-apropos|xref-find-definitions-other-frame|xref-find-definitions-other-window|xref-find-definitions|xref-find-references|xref-goto-xref|xref-location-child-p|xref-location-group|xref-location-list-p|xref-location-marker|xref-location-p|xref-location|xref-make-bogus-location|xref-make-buffer-location|xref-make-elisp-location|xref-make-file-location|xref-make|xref-next-line|xref-pop-marker-stack|xref-prev-line|xref-push-marker-stack|xscheme-cd|xscheme-coerce-prompt|xscheme-debugger-mode-p|xscheme-default-command-line|xscheme-delete-output|xscheme-display-process-buffer|xscheme-enable-control-g|xscheme-enter-debugger-mode|xscheme-enter-input-wait|xscheme-enter-interaction-mode|xscheme-eval|xscheme-evaluation-commands|xscheme-exit-input-wait|xscheme-finish-gc|xscheme-goto-output-point|xscheme-guarantee-newlines|xscheme-insert-expression|xscheme-interrupt-commands|xscheme-message|xscheme-mode-line-initialize|xscheme-output-goto|xscheme-parse-command-line|xscheme-process-buffer-current-p|xscheme-process-buffer-window|xscheme-process-buffer|xscheme-process-filter-initialize|xscheme-process-filter-output|xscheme-process-filter|xscheme-process-filter:simple-action|xscheme-process-filter:string-action-noexcursion|xscheme-process-filter:string-action|xscheme-process-running-p|xscheme-process-sentinel|xscheme-prompt-for-confirmation|xscheme-prompt-for-expression-exit|xscheme-prompt-for-expression|xscheme-read-command-line|xscheme-region-expression-p|xscheme-rotate-yank-pointer|xscheme-select-process-buffer|xscheme-send-breakpoint-interrupt|xscheme-send-buffer|xscheme-send-char|xscheme-send-control-g-interrupt|xscheme-send-control-u-interrupt|xscheme-send-control-x-interrupt|xscheme-send-current-line|xscheme-send-definition|xscheme-send-interrupt|xscheme-send-next-expression|xscheme-send-previous-expression|xscheme-send-proceed|xscheme-send-region|xscheme-send-string-1|xscheme-send-string-2|xscheme-send-string|xscheme-set-prompt-variable|xscheme-set-prompt|xscheme-set-runlight|xscheme-start-gc|xscheme-start-process|xscheme-start|xscheme-unsolicited-read-char|xscheme-wait-for-process|xscheme-write-message-1|xscheme-write-value|xscheme-yank-pop|xscheme-yank-previous-send|xscheme-yank-push|xscheme-yank|xselect--encode-string|xselect--int-to-cons|xselect--selection-bounds|xselect-convert-to-atom|xselect-convert-to-charpos|xselect-convert-to-class|xselect-convert-to-colno|xselect-convert-to-delete|xselect-convert-to-filename|xselect-convert-to-host|xselect-convert-to-identity|xselect-convert-to-integer|xselect-convert-to-length|xselect-convert-to-lineno|xselect-convert-to-name|xselect-convert-to-os|xselect-convert-to-save-targets|xselect-convert-to-string|xselect-convert-to-targets|xselect-convert-to-user|xterm-mouse--read-event-sequence-1000|xterm-mouse--read-event-sequence-1006|xterm-mouse--set-click-count|xterm-mouse-event|xterm-mouse-mode|xterm-mouse-position-function|xterm-mouse-translate-1|xterm-mouse-translate-extended|xterm-mouse-translate|xterm-mouse-truncate-wrap|xw-color-defined-p|xw-color-values|xw-defined-colors|xw-display-color-p|yank-handle-category-property|yank-handle-font-lock-face-property|yank-menu|yank-rectangle|yenc-decode-region|yenc-extract-filename|zap-to-char|zeroconf-get-domain|zeroconf-get-host-domain|zeroconf-get-host|zeroconf-get-interface-name|zeroconf-get-interface-number|zeroconf-get-service|zeroconf-init|zeroconf-list-service-names|zeroconf-list-service-types|zeroconf-list-services|zeroconf-publish-service|zeroconf-register-service-browser|zeroconf-register-service-resolver|zeroconf-register-service-type-browser|zeroconf-resolve-service|zeroconf-service-add-hook|zeroconf-service-address|zeroconf-service-aprotocol|zeroconf-service-browser-handler|zeroconf-service-domain|zeroconf-service-flags|zeroconf-service-host|zeroconf-service-interface|zeroconf-service-name|zeroconf-service-port|zeroconf-service-protocol|zeroconf-service-remove-hook|zeroconf-service-resolver-handler|zeroconf-service-txt|zeroconf-service-type-browser-handler|zeroconf-service-type|zerop--anon-cmacro|zone-call|zone-cpos|zone-exploding-remove|zone-fall-through-ws|zone-fill-out-screen|zone-fret|zone-hiding-mode-line|zone-leave-me-alone|zone-line-specs|zone-mode|zone-orig|zone-park\\\\\\\\/sit-for|zone-pgm-2nd-putz-with-case|zone-pgm-dissolve|zone-pgm-drip-fretfully|zone-pgm-drip|zone-pgm-explode|zone-pgm-five-oclock-swan-dive|zone-pgm-jitter|zone-pgm-martini-swan-dive|zone-pgm-paragraph-spaz|zone-pgm-putz-with-case|zone-pgm-random-life|zone-pgm-rat-race|zone-pgm-rotate-LR-lockstep|zone-pgm-rotate-LR-variable|zone-pgm-rotate-RL-lockstep|zone-pgm-rotate-RL-variable|zone-pgm-rotate|zone-pgm-stress-destress|zone-pgm-stress|zone-pgm-whack-chars|zone-remove-text|zone-replace-char|zone-shift-down|zone-shift-left|zone-shift-right|zone-shift-up|zone-when-idle|zone|zrgrep)(?=[\\\\\\\\s()]|$)\",\"name\":\"support.function.emacs.lisp\"}]},\"string\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.emacs.lisp\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.emacs.lisp\"}},\"name\":\"string.quoted.double.emacs.lisp\",\"patterns\":[{\"include\":\"#string-innards\"}]},\"string-innards\":{\"patterns\":[{\"include\":\"#eldoc\"},{\"match\":\"(\\\\\\\\\\\\\\\\)$\\\\\\\\n?\",\"name\":\"constant.escape.character.newline.emacs.lisp\"},{\"captures\":{\"1\":{\"name\":\"punctuation.escape.backslash.emacs.lisp\"}},\"match\":\"(\\\\\\\\\\\\\\\\).\",\"name\":\"constant.escape.character.emacs.lisp\"}]},\"symbols\":{\"patterns\":[{\"captures\":{\"0\":{\"name\":\"punctuation.definition.symbol.emacs.lisp\"}},\"match\":\"(?<=[\\\\\\\\s()\\\\\\\\[]|^)##\",\"name\":\"constant.other.interned.blank.symbol.emacs.lisp\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.symbol.emacs.lisp\"},\"2\":{\"patterns\":[{\"include\":\"$self\"}]}},\"match\":\"(?<=[\\\\\\\\s()\\\\\\\\[]|^)(#)((?:[-'+=*/\\\\\\\\w~!@$%^&:<>{}?]|\\\\\\\\\\\\\\\\.)+)\",\"name\":\"constant.other.symbol.emacs.lisp\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.spliced.symbol.emacs.lisp\"}},\"match\":\"(,@)([-+=*/\\\\\\\\w~!@$%^&:<>{}?]+)\",\"name\":\"constant.other.spliced.symbol.emacs.lisp\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.inserted.symbol.emacs.lisp\"}},\"match\":\"(,)([-+=*/\\\\\\\\w~!@$%^&:<>{}?]+)\",\"name\":\"constant.other.inserted.symbol.emacs.lisp\"}]},\"vectors\":{\"patterns\":[{\"match\":\"\\\\\\\\[\",\"name\":\"punctuation.section.vector.begin.emacs.lisp\"},{\"match\":\"\\\\\\\\]\",\"name\":\"punctuation.section.vector.end.emacs.lisp\"}]}},\"scopeName\":\"source.emacs.lisp\",\"aliases\":[\"elisp\"]}`)),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BXW1EomU.js",
    "content": "import e from\"./ySlJ1b_l.js\";import t from\"./Dj6nwHGl.js\";import n from\"./BPhBrDlE.js\";import s from\"./B3ZDOciz.js\";const a=Object.freeze(JSON.parse(`{\"displayName\":\"Svelte\",\"fileTypes\":[\"svelte\"],\"injections\":{\"L:(meta.script.svelte | meta.style.svelte) (meta.lang.js | meta.lang.javascript) - (meta source)\":{\"patterns\":[{\"begin\":\"(?<=>)(?!</)\",\"contentName\":\"source.js\",\"end\":\"(?=</)\",\"name\":\"meta.embedded.block.svelte\",\"patterns\":[{\"include\":\"source.js\"}]}]},\"L:(meta.script.svelte | meta.style.svelte) (meta.lang.ts | meta.lang.typescript) - (meta source)\":{\"patterns\":[{\"begin\":\"(?<=>)(?!</)\",\"contentName\":\"source.ts\",\"end\":\"(?=</)\",\"name\":\"meta.embedded.block.svelte\",\"patterns\":[{\"include\":\"source.ts\"}]}]},\"L:(meta.script.svelte | meta.style.svelte) meta.lang.coffee - (meta source)\":{\"patterns\":[{\"begin\":\"(?<=>)(?!</)\",\"contentName\":\"source.coffee\",\"end\":\"(?=</)\",\"name\":\"meta.embedded.block.svelte\",\"patterns\":[{\"include\":\"source.coffee\"}]}]},\"L:(source.ts, source.js, source.coffee)\":{\"patterns\":[{\"match\":\"(?<![_$./'\\\\\"[:alnum:]])\\\\\\\\$(?=[_[:alpha:]][_$[:alnum:]]*)\",\"name\":\"punctuation.definition.variable.svelte\"},{\"match\":\"(?<![_$./'\\\\\"[:alnum:]])(\\\\\\\\$\\\\\\\\$)(?=props|restProps|slots)\",\"name\":\"punctuation.definition.variable.svelte\"}]},\"L:meta.script.svelte - meta.lang - (meta source)\":{\"patterns\":[{\"begin\":\"(?<=>)(?!</)\",\"contentName\":\"source.js\",\"end\":\"(?=</)\",\"name\":\"meta.embedded.block.svelte\",\"patterns\":[{\"include\":\"source.js\"}]}]},\"L:meta.style.svelte - meta.lang - (meta source)\":{\"patterns\":[{\"begin\":\"(?<=>)(?!</)\",\"contentName\":\"source.css\",\"end\":\"(?=</)\",\"name\":\"meta.embedded.block.svelte\",\"patterns\":[{\"include\":\"source.css\"}]}]},\"L:meta.style.svelte meta.lang.css - (meta source)\":{\"patterns\":[{\"begin\":\"(?<=>)(?!</)\",\"contentName\":\"source.css\",\"end\":\"(?=</)\",\"name\":\"meta.embedded.block.svelte\",\"patterns\":[{\"include\":\"source.css\"}]}]},\"L:meta.style.svelte meta.lang.less - (meta source)\":{\"patterns\":[{\"begin\":\"(?<=>)(?!</)\",\"contentName\":\"source.css.less\",\"end\":\"(?=</)\",\"name\":\"meta.embedded.block.svelte\",\"patterns\":[{\"include\":\"source.css.less\"}]}]},\"L:meta.style.svelte meta.lang.postcss - (meta source)\":{\"patterns\":[{\"begin\":\"(?<=>)(?!</)\",\"contentName\":\"source.css.postcss\",\"end\":\"(?=</)\",\"name\":\"meta.embedded.block.svelte\",\"patterns\":[{\"include\":\"source.css.postcss\"}]}]},\"L:meta.style.svelte meta.lang.sass - (meta source)\":{\"patterns\":[{\"begin\":\"(?<=>)(?!</)\",\"contentName\":\"source.sass\",\"end\":\"(?=</)\",\"name\":\"meta.embedded.block.svelte\",\"patterns\":[{\"include\":\"source.sass\"}]}]},\"L:meta.style.svelte meta.lang.scss - (meta source)\":{\"patterns\":[{\"begin\":\"(?<=>)(?!</)\",\"contentName\":\"source.css.scss\",\"end\":\"(?=</)\",\"name\":\"meta.embedded.block.svelte\",\"patterns\":[{\"include\":\"source.css.scss\"}]}]},\"L:meta.style.svelte meta.lang.stylus - (meta source)\":{\"patterns\":[{\"begin\":\"(?<=>)(?!</)\",\"contentName\":\"source.stylus\",\"end\":\"(?=</)\",\"name\":\"meta.embedded.block.svelte\",\"patterns\":[{\"include\":\"source.stylus\"}]}]},\"L:meta.template.svelte - meta.lang - (meta source)\":{\"patterns\":[{\"begin\":\"(?<=>)\\\\\\\\s\",\"end\":\"(?=</template)\",\"patterns\":[{\"include\":\"#scope\"}]}]},\"L:meta.template.svelte meta.lang.pug - (meta source)\":{\"patterns\":[{\"begin\":\"(?<=>)(?!</)\",\"contentName\":\"text.pug\",\"end\":\"(?=</)\",\"name\":\"meta.embedded.block.svelte\",\"patterns\":[{\"include\":\"text.pug\"}]}]}},\"name\":\"svelte\",\"patterns\":[{\"include\":\"#scope\"}],\"repository\":{\"attributes\":{\"patterns\":[{\"include\":\"#attributes-directives\"},{\"include\":\"#attributes-keyvalue\"},{\"include\":\"#attributes-interpolated\"}]},\"attributes-directives\":{\"begin\":\"(?<!<)(on|use|bind|transition|in|out|animate|let|class|style)(:)(?:((?:--)?[_$[:alpha:]][_\\\\\\\\-$[:alnum:]]*(?=\\\\\\\\s*=))|((?:--)?[_$[:alpha:]][_\\\\\\\\-$[:alnum:]]*))((\\\\\\\\|\\\\\\\\w+)*)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#attributes-directives-keywords\"}]},\"2\":{\"name\":\"punctuation.definition.keyword.svelte\"},\"3\":{\"patterns\":[{\"include\":\"#attributes-directives-types-assigned\"}]},\"4\":{\"patterns\":[{\"include\":\"#attributes-directives-types\"}]},\"5\":{\"patterns\":[{\"match\":\"\\\\\\\\w+\",\"name\":\"support.function.svelte\"},{\"match\":\"\\\\\\\\|\",\"name\":\"punctuation.separator.svelte\"}]}},\"end\":\"(?=\\\\\\\\s*+[^=\\\\\\\\s])\",\"name\":\"meta.directive.$1.svelte\",\"patterns\":[{\"begin\":\"=\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.key-value.svelte\"}},\"end\":\"(?<=[^\\\\\\\\s=])(?!\\\\\\\\s*=)|(?=/?>)\",\"patterns\":[{\"include\":\"#attributes-value\"}]}]},\"attributes-directives-keywords\":{\"patterns\":[{\"match\":\"on|use|bind\",\"name\":\"keyword.control.svelte\"},{\"match\":\"transition|in|out|animate\",\"name\":\"keyword.other.animation.svelte\"},{\"match\":\"let\",\"name\":\"storage.type.svelte\"},{\"match\":\"class|style\",\"name\":\"entity.other.attribute-name.svelte\"}]},\"attributes-directives-types\":{\"patterns\":[{\"match\":\"(?<=(on):).*$\",\"name\":\"entity.name.type.svelte\"},{\"match\":\"(?<=(bind):).*$\",\"name\":\"variable.parameter.svelte\"},{\"match\":\"(?<=(use|transition|in|out|animate):).*$\",\"name\":\"variable.function.svelte\"},{\"match\":\"(?<=(let|class|style):).*$\",\"name\":\"variable.parameter.svelte\"}]},\"attributes-directives-types-assigned\":{\"patterns\":[{\"match\":\"(?<=(bind):)this$\",\"name\":\"variable.language.svelte\"},{\"match\":\"(?<=(bind):).*$\",\"name\":\"entity.name.type.svelte\"},{\"match\":\"(?<=(class):).*$\",\"name\":\"entity.other.attribute-name.class.svelte\"},{\"match\":\"(?<=(style):).*$\",\"name\":\"support.type.property-name.svelte\"},{\"include\":\"#attributes-directives-types\"}]},\"attributes-generics\":{\"begin\":\"(generics)(=)([\\\\\"'])\",\"beginCaptures\":{\"1\":{\"name\":\"entity.other.attribute-name.svelte\"},\"2\":{\"name\":\"punctuation.separator.key-value.svelte\"},\"3\":{\"name\":\"punctuation.definition.string.begin.svelte\"}},\"contentName\":\"meta.embedded.expression.svelte source.ts\",\"end\":\"(\\\\\\\\3)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.svelte\"}},\"patterns\":[{\"include\":\"#type-parameters\"}]},\"attributes-interpolated\":{\"begin\":\"(?<!:|=)\\\\\\\\s*({)\",\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.svelte\"}},\"contentName\":\"meta.embedded.expression.svelte source.ts\",\"end\":\"(\\\\\\\\})\",\"patterns\":[{\"include\":\"source.ts\"}]},\"attributes-keyvalue\":{\"begin\":\"((?:--)?[_$[:alpha:]][_\\\\\\\\-$[:alnum:]]*)\",\"beginCaptures\":{\"0\":{\"patterns\":[{\"match\":\"--.*\",\"name\":\"support.type.property-name.svelte\"},{\"match\":\".*\",\"name\":\"entity.other.attribute-name.svelte\"}]}},\"end\":\"(?=\\\\\\\\s*+[^=\\\\\\\\s])\",\"name\":\"meta.attribute.$1.svelte\",\"patterns\":[{\"begin\":\"=\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.key-value.svelte\"}},\"end\":\"(?<=[^\\\\\\\\s=])(?!\\\\\\\\s*=)|(?=/?>)\",\"patterns\":[{\"include\":\"#attributes-value\"}]}]},\"attributes-value\":{\"patterns\":[{\"include\":\"#interpolation\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.svelte\"},\"2\":{\"name\":\"constant.numeric.decimal.svelte\"},\"3\":{\"name\":\"punctuation.definition.string.end.svelte\"},\"4\":{\"name\":\"constant.numeric.decimal.svelte\"}},\"match\":\"(?:(['\\\\\"])([0-9._]+[\\\\\\\\w%]{,4})(\\\\\\\\1))|(?:([0-9._]+[\\\\\\\\w%]{,4})(?=\\\\\\\\s|/?>))\"},{\"match\":\"([^\\\\\\\\s\\\\\"'=<>\\`/]|/(?!>))+\",\"name\":\"string.unquoted.svelte\",\"patterns\":[{\"include\":\"#interpolation\"}]},{\"begin\":\"(['\\\\\"])\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.svelte\"}},\"end\":\"\\\\\\\\1\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.svelte\"}},\"name\":\"string.quoted.svelte\",\"patterns\":[{\"include\":\"#interpolation\"}]}]},\"comments\":{\"begin\":\"<!--\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.svelte\"}},\"end\":\"-->\",\"name\":\"comment.block.svelte\",\"patterns\":[{\"begin\":\"(@)(component)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.keyword.svelte\"},\"2\":{\"name\":\"storage.type.class.component.svelte keyword.declaration.class.component.svelte\"}},\"contentName\":\"comment.block.documentation.svelte\",\"end\":\"(?=-->)\",\"patterns\":[{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"text.html.markdown\"}]}},\"match\":\".*?(?=-->)\"},{\"include\":\"text.html.markdown\"}]},{\"match\":\"\\\\\\\\G-?>|<!--(?!>)|<!-(?=-->)|--!>\",\"name\":\"invalid.illegal.characters-not-allowed-here.svelte\"}]},\"destructuring\":{\"patterns\":[{\"begin\":\"(?={)\",\"end\":\"(?<=})\",\"name\":\"meta.embedded.expression.svelte source.ts\",\"patterns\":[{\"include\":\"source.ts#object-binding-pattern\"}]},{\"begin\":\"(?=\\\\\\\\[)\",\"end\":\"(?<=\\\\\\\\])\",\"name\":\"meta.embedded.expression.svelte source.ts\",\"patterns\":[{\"include\":\"source.ts#array-binding-pattern\"}]}]},\"destructuring-const\":{\"patterns\":[{\"begin\":\"(?={)\",\"end\":\"(?<=})\",\"name\":\"meta.embedded.expression.svelte source.ts\",\"patterns\":[{\"include\":\"source.ts#object-binding-pattern-const\"}]},{\"begin\":\"(?=\\\\\\\\[)\",\"end\":\"(?<=\\\\\\\\])\",\"name\":\"meta.embedded.expression.svelte source.ts\",\"patterns\":[{\"include\":\"source.ts#array-binding-pattern-const\"}]}]},\"interpolation\":{\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.svelte\"}},\"contentName\":\"meta.embedded.expression.svelte source.ts\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.svelte\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G\\\\\\\\s*(?={)\",\"end\":\"(?<=})\",\"patterns\":[{\"include\":\"source.ts#object-literal\"}]},{\"include\":\"source.ts\"}]}]},\"scope\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#special-tags\"},{\"include\":\"#tags\"},{\"include\":\"#interpolation\"},{\"begin\":\"(?<=>|})\",\"end\":\"(?=<|{)\",\"name\":\"text.svelte\"}]},\"special-tags\":{\"patterns\":[{\"include\":\"#special-tags-void\"},{\"include\":\"#special-tags-block-begin\"},{\"include\":\"#special-tags-block-end\"}]},\"special-tags-block-begin\":{\"begin\":\"({)\\\\\\\\s*(#([a-z]*))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.begin.svelte\"},\"2\":{\"patterns\":[{\"include\":\"#special-tags-keywords\"}]}},\"end\":\"(})\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.end.svelte\"}},\"name\":\"meta.special.$3.svelte meta.special.start.svelte\",\"patterns\":[{\"include\":\"#special-tags-modes\"}]},\"special-tags-block-end\":{\"begin\":\"({)\\\\\\\\s*(/([a-z]*))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.begin.svelte\"},\"2\":{\"patterns\":[{\"include\":\"#special-tags-keywords\"}]}},\"end\":\"(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.end.svelte\"}},\"name\":\"meta.special.$3.svelte meta.special.end.svelte\"},\"special-tags-keywords\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.keyword.svelte\"},\"2\":{\"patterns\":[{\"match\":\"if|else\\\\\\\\s+if|else\",\"name\":\"keyword.control.conditional.svelte\"},{\"match\":\"each|key\",\"name\":\"keyword.control.svelte\"},{\"match\":\"await|then|catch\",\"name\":\"keyword.control.flow.svelte\"},{\"match\":\"snippet\",\"name\":\"keyword.control.svelte\"},{\"match\":\"html\",\"name\":\"keyword.other.svelte\"},{\"match\":\"render\",\"name\":\"keyword.other.svelte\"},{\"match\":\"debug\",\"name\":\"keyword.other.debugger.svelte\"},{\"match\":\"const\",\"name\":\"storage.type.svelte\"}]}},\"match\":\"([#@/:])(else\\\\\\\\s+if|[a-z]*)\"},\"special-tags-modes\":{\"patterns\":[{\"begin\":\"(?<=(if|key|then|catch|snippet|html|render).*?)\\\\\\\\G\",\"end\":\"(?=})\",\"name\":\"meta.embedded.expression.svelte source.ts\",\"patterns\":[{\"include\":\"source.ts\"}]},{\"begin\":\"(?<=const.*?)\\\\\\\\G\",\"end\":\"(?=})\",\"patterns\":[{\"include\":\"#destructuring-const\"},{\"begin\":\"\\\\\\\\G\\\\\\\\s*([_$[:alpha:]][_$[:alnum:]]+)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.constant.svelte\"}},\"end\":\"(?=\\\\\\\\=)\"},{\"begin\":\"(?=\\\\\\\\=)\",\"end\":\"(?=})\",\"name\":\"meta.embedded.expression.svelte source.ts\",\"patterns\":[{\"include\":\"source.ts\"}]}]},{\"begin\":\"(?<=each.*?)\\\\\\\\G\",\"end\":\"(?=})\",\"patterns\":[{\"begin\":\"\\\\\\\\G\\\\\\\\s*?(?=\\\\\\\\S)\",\"contentName\":\"meta.embedded.expression.svelte source.ts\",\"end\":\"(?=(?:(?:^\\\\\\\\s*|\\\\\\\\s+)(as))|\\\\\\\\s*(}|,))\",\"patterns\":[{\"include\":\"source.ts\"}]},{\"begin\":\"(as)|(?=}|,)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.as.svelte\"}},\"end\":\"(?=})\",\"patterns\":[{\"include\":\"#destructuring\"},{\"begin\":\"\\\\\\\\(\",\"captures\":{\"0\":{\"name\":\"meta.brace.round.svelte\"}},\"contentName\":\"meta.embedded.expression.svelte source.ts\",\"end\":\"\\\\\\\\)|(?=})\",\"patterns\":[{\"include\":\"source.ts\"}]},{\"captures\":{\"1\":{\"name\":\"meta.embedded.expression.svelte source.ts\",\"patterns\":[{\"include\":\"source.ts\"}]}},\"match\":\"(\\\\\\\\s*([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*)\"},{\"match\":\",\",\"name\":\"punctuation.separator.svelte\"}]}]},{\"begin\":\"(?<=await.*?)\\\\\\\\G\",\"end\":\"(?=})\",\"patterns\":[{\"begin\":\"\\\\\\\\G\\\\\\\\s*?(?=\\\\\\\\S)\",\"contentName\":\"meta.embedded.expression.svelte source.ts\",\"end\":\"\\\\\\\\s+(then)|(?=})\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.flow.svelte\"}},\"patterns\":[{\"include\":\"source.ts\"}]},{\"begin\":\"(?<=then\\\\\\\\b)\",\"contentName\":\"meta.embedded.expression.svelte source.ts\",\"end\":\"(?=})\",\"patterns\":[{\"include\":\"source.ts\"}]}]},{\"begin\":\"(?<=debug.*?)\\\\\\\\G\",\"end\":\"(?=})\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"meta.embedded.expression.svelte source.ts\",\"patterns\":[{\"include\":\"source.ts\"}]}},\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\"},{\"match\":\",\",\"name\":\"punctuation.separator.svelte\"}]}]},\"special-tags-void\":{\"begin\":\"({)\\\\\\\\s*((?:[@:])(else\\\\\\\\s+if|[a-z]*))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.begin.svelte\"},\"2\":{\"patterns\":[{\"include\":\"#special-tags-keywords\"}]}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.end.svelte\"}},\"name\":\"meta.special.$3.svelte\",\"patterns\":[{\"include\":\"#special-tags-modes\"}]},\"tags\":{\"patterns\":[{\"include\":\"#tags-lang\"},{\"include\":\"#tags-void\"},{\"include\":\"#tags-general-end\"},{\"include\":\"#tags-general-start\"}]},\"tags-end-node\":{\"captures\":{\"1\":{\"name\":\"meta.tag.end.svelte punctuation.definition.tag.begin.svelte\"},\"2\":{\"name\":\"meta.tag.end.svelte\",\"patterns\":[{\"include\":\"#tags-name\"}]},\"3\":{\"name\":\"meta.tag.end.svelte punctuation.definition.tag.end.svelte\"},\"4\":{\"name\":\"meta.tag.start.svelte punctuation.definition.tag.end.svelte\"}},\"match\":\"(</)(.*?)\\\\\\\\s*(>)|(/>)\"},\"tags-general-end\":{\"begin\":\"(</)([^/\\\\\\\\s>]*)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.tag.end.svelte punctuation.definition.tag.begin.svelte\"},\"2\":{\"name\":\"meta.tag.end.svelte\",\"patterns\":[{\"include\":\"#tags-name\"}]}},\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"meta.tag.end.svelte punctuation.definition.tag.end.svelte\"}},\"name\":\"meta.scope.tag.$2.svelte\"},\"tags-general-start\":{\"begin\":\"(<)([^/\\\\\\\\s>/]*)\",\"beginCaptures\":{\"0\":{\"patterns\":[{\"include\":\"#tags-start-node\"}]}},\"end\":\"(/?>)\",\"endCaptures\":{\"1\":{\"name\":\"meta.tag.start.svelte punctuation.definition.tag.end.svelte\"}},\"name\":\"meta.scope.tag.$2.svelte\",\"patterns\":[{\"include\":\"#tags-start-attributes\"}]},\"tags-lang\":{\"begin\":\"<(script|style|template)\",\"beginCaptures\":{\"0\":{\"patterns\":[{\"include\":\"#tags-start-node\"}]}},\"end\":\"</\\\\\\\\1\\\\\\\\s*>|/>\",\"endCaptures\":{\"0\":{\"patterns\":[{\"include\":\"#tags-end-node\"}]}},\"name\":\"meta.$1.svelte\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?=\\\\\\\\s*[^>]*?(type|lang)\\\\\\\\s*=\\\\\\\\s*(['\\\\\"]|)(?:text/)?(\\\\\\\\w+)\\\\\\\\2)\",\"end\":\"(?=</|/>)\",\"name\":\"meta.lang.$3.svelte\",\"patterns\":[{\"include\":\"#tags-lang-start-attributes\"}]},{\"include\":\"#tags-lang-start-attributes\"}]},\"tags-lang-start-attributes\":{\"begin\":\"\\\\\\\\G\",\"end\":\"(?=/>)|>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.svelte\"}},\"name\":\"meta.tag.start.svelte\",\"patterns\":[{\"include\":\"#attributes-generics\"},{\"include\":\"#attributes\"}]},\"tags-name\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.svelte\"},\"2\":{\"name\":\"punctuation.definition.keyword.svelte\"},\"3\":{\"name\":\"entity.name.tag.svelte\"}},\"match\":\"(svelte)(:)([a-z][\\\\\\\\w:-]*)\"},{\"match\":\"slot\",\"name\":\"keyword.control.svelte\"},{\"captures\":{\"1\":{\"patterns\":[{\"match\":\"\\\\\\\\w+\",\"name\":\"support.class.component.svelte\"},{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.definition.keyword.svelte\"}]},\"2\":{\"name\":\"support.class.component.svelte\"}},\"match\":\"([\\\\\\\\w]+(?:\\\\\\\\.[\\\\\\\\w]+)+)|([A-Z][\\\\\\\\w]+)\"},{\"match\":\"[a-z][\\\\\\\\w0-9:]*-[\\\\\\\\w0-9:-]*\",\"name\":\"meta.tag.custom.svelte entity.name.tag.svelte\"},{\"match\":\"[a-z][\\\\\\\\w0-9:-]*\",\"name\":\"entity.name.tag.svelte\"}]},\"tags-start-attributes\":{\"begin\":\"\\\\\\\\G\",\"end\":\"(?=/?>)\",\"name\":\"meta.tag.start.svelte\",\"patterns\":[{\"include\":\"#attributes\"}]},\"tags-start-node\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.svelte\"},\"2\":{\"patterns\":[{\"include\":\"#tags-name\"}]}},\"match\":\"(<)([^/\\\\\\\\s>/]*)\",\"name\":\"meta.tag.start.svelte\"},\"tags-void\":{\"begin\":\"(<)(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)(?=\\\\\\\\s|/?>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.svelte\"},\"2\":{\"name\":\"entity.name.tag.svelte\"}},\"end\":\"/?>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.begin.svelte\"}},\"name\":\"meta.tag.void.svelte\",\"patterns\":[{\"include\":\"#attributes\"}]},\"type-parameters\":{\"name\":\"meta.type.parameters.ts\",\"patterns\":[{\"include\":\"source.ts#comment\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.modifier.ts\"},{\"include\":\"source.ts#type\"},{\"include\":\"source.ts#punctuation-comma\"},{\"match\":\"(=)(?!>)\",\"name\":\"keyword.operator.assignment.ts\"}]}},\"scopeName\":\"source.svelte\",\"embeddedLangs\":[\"javascript\",\"typescript\",\"css\",\"postcss\"],\"embeddedLangsLazy\":[\"coffee\",\"stylus\",\"sass\",\"scss\",\"less\",\"pug\",\"markdown\"]}`)),m=[...e,...t,...n,...s,a];export{m as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BXYnMxBe.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{blockComment:[\"<!--\",\"-->\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\",notIn:[\"string\"]}],surroundingPairs:[{open:\"(\",close:\")\"},{open:\"[\",close:\"]\"},{open:\"`\",close:\"`\"}],folding:{markers:{start:new RegExp(\"^\\\\s*<!--\\\\s*#?region\\\\b.*-->\"),end:new RegExp(\"^\\\\s*<!--\\\\s*#?endregion\\\\b.*-->\")}}},t={defaultToken:\"\",tokenPostfix:\".md\",control:/[\\\\`*_\\[\\]{}()#+\\-\\.!]/,noncontrol:/[^\\\\`*_\\[\\]{}()#+\\-\\.!]/,escapes:/\\\\(?:@control)/,jsescapes:/\\\\(?:[btnfr\\\\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,empty:[\"area\",\"base\",\"basefont\",\"br\",\"col\",\"frame\",\"hr\",\"img\",\"input\",\"isindex\",\"link\",\"meta\",\"param\"],tokenizer:{root:[[/^\\s*\\|/,\"@rematch\",\"@table_header\"],[/^(\\s{0,3})(#+)((?:[^\\\\#]|@escapes)+)((?:#+)?)/,[\"white\",\"keyword\",\"keyword\",\"keyword\"]],[/^\\s*(=+|\\-+)\\s*$/,\"keyword\"],[/^\\s*((\\*[ ]?)+)\\s*$/,\"meta.separator\"],[/^\\s*>+/,\"comment\"],[/^\\s*([\\*\\-+:]|\\d+\\.)\\s/,\"keyword\"],[/^(\\t|[ ]{4})[^ ].*$/,\"string\"],[/^\\s*~~~\\s*((?:\\w|[\\/\\-#])+)?\\s*$/,{token:\"string\",next:\"@codeblock\"}],[/^\\s*```\\s*((?:\\w|[\\/\\-#])+).*$/,{token:\"string\",next:\"@codeblockgh\",nextEmbedded:\"$1\"}],[/^\\s*```\\s*$/,{token:\"string\",next:\"@codeblock\"}],{include:\"@linecontent\"}],table_header:[{include:\"@table_common\"},[/[^\\|]+/,\"keyword.table.header\"]],table_body:[{include:\"@table_common\"},{include:\"@linecontent\"}],table_common:[[/\\s*[\\-:]+\\s*/,{token:\"keyword\",switchTo:\"table_body\"}],[/^\\s*\\|/,\"keyword.table.left\"],[/^\\s*[^\\|]/,\"@rematch\",\"@pop\"],[/^\\s*$/,\"@rematch\",\"@pop\"],[/\\|/,{cases:{\"@eos\":\"keyword.table.right\",\"@default\":\"keyword.table.middle\"}}]],codeblock:[[/^\\s*~~~\\s*$/,{token:\"string\",next:\"@pop\"}],[/^\\s*```\\s*$/,{token:\"string\",next:\"@pop\"}],[/.*$/,\"variable.source\"]],codeblockgh:[[/```\\s*$/,{token:\"string\",next:\"@pop\",nextEmbedded:\"@pop\"}],[/[^`]+/,\"variable.source\"]],linecontent:[[/&\\w+;/,\"string.escape\"],[/@escapes/,\"escape\"],[/\\b__([^\\\\_]|@escapes|_(?!_))+__\\b/,\"strong\"],[/\\*\\*([^\\\\*]|@escapes|\\*(?!\\*))+\\*\\*/,\"strong\"],[/\\b_[^_]+_\\b/,\"emphasis\"],[/\\*([^\\\\*]|@escapes)+\\*/,\"emphasis\"],[/`([^\\\\`]|@escapes)+`/,\"variable\"],[/\\{+[^}]+\\}+/,\"string.target\"],[/(!?\\[)((?:[^\\]\\\\]|@escapes)*)(\\]\\([^\\)]+\\))/,[\"string.link\",\"\",\"string.link\"]],[/(!?\\[)((?:[^\\]\\\\]|@escapes)*)(\\])/,\"string.link\"],{include:\"html\"}],html:[[/<(\\w+)\\/>/,\"tag\"],[/<(\\w+)(\\-|\\w)*/,{cases:{\"@empty\":{token:\"tag\",next:\"@tag.$1\"},\"@default\":{token:\"tag\",next:\"@tag.$1\"}}}],[/<\\/(\\w+)(\\-|\\w)*\\s*>/,{token:\"tag\"}],[/<!--/,\"comment\",\"@comment\"]],comment:[[/[^<\\-]+/,\"comment.content\"],[/-->/,\"comment\",\"@pop\"],[/<!--/,\"comment.content.invalid\"],[/[<\\-]/,\"comment.content\"]],tag:[[/[ \\t\\r\\n]+/,\"white\"],[/(type)(\\s*=\\s*)(\")([^\"]+)(\")/,[\"attribute.name.html\",\"delimiter.html\",\"string.html\",{token:\"string.html\",switchTo:\"@tag.$S2.$4\"},\"string.html\"]],[/(type)(\\s*=\\s*)(')([^']+)(')/,[\"attribute.name.html\",\"delimiter.html\",\"string.html\",{token:\"string.html\",switchTo:\"@tag.$S2.$4\"},\"string.html\"]],[/(\\w+)(\\s*=\\s*)(\"[^\"]*\"|'[^']*')/,[\"attribute.name.html\",\"delimiter.html\",\"string.html\"]],[/\\w+/,\"attribute.name.html\"],[/\\/>/,\"tag\",\"@pop\"],[/>/,{cases:{\"$S2==style\":{token:\"tag\",switchTo:\"embeddedStyle\",nextEmbedded:\"text/css\"},\"$S2==script\":{cases:{$S3:{token:\"tag\",switchTo:\"embeddedScript\",nextEmbedded:\"$S3\"},\"@default\":{token:\"tag\",switchTo:\"embeddedScript\",nextEmbedded:\"text/javascript\"}}},\"@default\":{token:\"tag\",next:\"@pop\"}}}]],embeddedStyle:[[/[^<]+/,\"\"],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}],[/</,\"\"]],embeddedScript:[[/[^<]+/,\"\"],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}],[/</,\"\"]]}};export{e as conf,t as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/BXkSAIEj.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBackground\":\"#BD93F910\",\"activityBar.activeBorder\":\"#FF79C680\",\"activityBar.background\":\"#343746\",\"activityBar.foreground\":\"#f6f6f4\",\"activityBar.inactiveForeground\":\"#7b7f8b\",\"activityBarBadge.background\":\"#f286c4\",\"activityBarBadge.foreground\":\"#f6f6f4\",\"badge.background\":\"#44475A\",\"badge.foreground\":\"#f6f6f4\",\"breadcrumb.activeSelectionForeground\":\"#f6f6f4\",\"breadcrumb.background\":\"#282A36\",\"breadcrumb.focusForeground\":\"#f6f6f4\",\"breadcrumb.foreground\":\"#7b7f8b\",\"breadcrumbPicker.background\":\"#191A21\",\"button.background\":\"#44475A\",\"button.foreground\":\"#f6f6f4\",\"button.secondaryBackground\":\"#282A36\",\"button.secondaryForeground\":\"#f6f6f4\",\"button.secondaryHoverBackground\":\"#343746\",\"debugToolBar.background\":\"#262626\",\"diffEditor.insertedTextBackground\":\"#50FA7B20\",\"diffEditor.removedTextBackground\":\"#FF555550\",\"dropdown.background\":\"#343746\",\"dropdown.border\":\"#191A21\",\"dropdown.foreground\":\"#f6f6f4\",\"editor.background\":\"#282A36\",\"editor.findMatchBackground\":\"#FFB86C80\",\"editor.findMatchHighlightBackground\":\"#FFFFFF40\",\"editor.findRangeHighlightBackground\":\"#44475A75\",\"editor.foldBackground\":\"#21222C80\",\"editor.foreground\":\"#f6f6f4\",\"editor.hoverHighlightBackground\":\"#8BE9FD50\",\"editor.lineHighlightBorder\":\"#44475A\",\"editor.rangeHighlightBackground\":\"#BD93F915\",\"editor.selectionBackground\":\"#44475A\",\"editor.selectionHighlightBackground\":\"#424450\",\"editor.snippetFinalTabstopHighlightBackground\":\"#282A36\",\"editor.snippetFinalTabstopHighlightBorder\":\"#62e884\",\"editor.snippetTabstopHighlightBackground\":\"#282A36\",\"editor.snippetTabstopHighlightBorder\":\"#7b7f8b\",\"editor.wordHighlightBackground\":\"#8BE9FD50\",\"editor.wordHighlightStrongBackground\":\"#50FA7B50\",\"editorBracketHighlight.foreground1\":\"#f6f6f4\",\"editorBracketHighlight.foreground2\":\"#f286c4\",\"editorBracketHighlight.foreground3\":\"#97e1f1\",\"editorBracketHighlight.foreground4\":\"#62e884\",\"editorBracketHighlight.foreground5\":\"#bf9eee\",\"editorBracketHighlight.foreground6\":\"#FFB86C\",\"editorBracketHighlight.unexpectedBracket.foreground\":\"#ee6666\",\"editorCodeLens.foreground\":\"#7b7f8b\",\"editorError.foreground\":\"#ee6666\",\"editorGroup.border\":\"#bf9eee\",\"editorGroup.dropBackground\":\"#44475A70\",\"editorGroupHeader.tabsBackground\":\"#191A21\",\"editorGutter.addedBackground\":\"#50FA7B80\",\"editorGutter.deletedBackground\":\"#FF555580\",\"editorGutter.modifiedBackground\":\"#8BE9FD80\",\"editorHoverWidget.background\":\"#282A36\",\"editorHoverWidget.border\":\"#7b7f8b\",\"editorIndentGuide.activeBackground\":\"#FFFFFF45\",\"editorIndentGuide.background\":\"#FFFFFF1A\",\"editorLineNumber.foreground\":\"#7b7f8b\",\"editorLink.activeForeground\":\"#97e1f1\",\"editorMarkerNavigation.background\":\"#262626\",\"editorOverviewRuler.addedForeground\":\"#50FA7B80\",\"editorOverviewRuler.border\":\"#191A21\",\"editorOverviewRuler.currentContentForeground\":\"#62e884\",\"editorOverviewRuler.deletedForeground\":\"#FF555580\",\"editorOverviewRuler.errorForeground\":\"#FF555580\",\"editorOverviewRuler.incomingContentForeground\":\"#bf9eee\",\"editorOverviewRuler.infoForeground\":\"#8BE9FD80\",\"editorOverviewRuler.modifiedForeground\":\"#8BE9FD80\",\"editorOverviewRuler.selectionHighlightForeground\":\"#FFB86C\",\"editorOverviewRuler.warningForeground\":\"#FFB86C80\",\"editorOverviewRuler.wordHighlightForeground\":\"#97e1f1\",\"editorOverviewRuler.wordHighlightStrongForeground\":\"#62e884\",\"editorRuler.foreground\":\"#FFFFFF1A\",\"editorSuggestWidget.background\":\"#262626\",\"editorSuggestWidget.foreground\":\"#f6f6f4\",\"editorSuggestWidget.selectedBackground\":\"#44475A\",\"editorWarning.foreground\":\"#97e1f1\",\"editorWhitespace.foreground\":\"#FFFFFF1A\",\"editorWidget.background\":\"#262626\",\"errorForeground\":\"#ee6666\",\"extensionButton.prominentBackground\":\"#50FA7B90\",\"extensionButton.prominentForeground\":\"#f6f6f4\",\"extensionButton.prominentHoverBackground\":\"#50FA7B60\",\"focusBorder\":\"#7b7f8b\",\"foreground\":\"#f6f6f4\",\"gitDecoration.conflictingResourceForeground\":\"#FFB86C\",\"gitDecoration.deletedResourceForeground\":\"#ee6666\",\"gitDecoration.ignoredResourceForeground\":\"#7b7f8b\",\"gitDecoration.modifiedResourceForeground\":\"#97e1f1\",\"gitDecoration.untrackedResourceForeground\":\"#62e884\",\"inlineChat.regionHighlight\":\"#343746\",\"input.background\":\"#282A36\",\"input.border\":\"#191A21\",\"input.foreground\":\"#f6f6f4\",\"input.placeholderForeground\":\"#7b7f8b\",\"inputOption.activeBorder\":\"#bf9eee\",\"inputValidation.errorBorder\":\"#ee6666\",\"inputValidation.infoBorder\":\"#f286c4\",\"inputValidation.warningBorder\":\"#FFB86C\",\"list.activeSelectionBackground\":\"#44475A\",\"list.activeSelectionForeground\":\"#f6f6f4\",\"list.dropBackground\":\"#44475A\",\"list.errorForeground\":\"#ee6666\",\"list.focusBackground\":\"#44475A75\",\"list.highlightForeground\":\"#97e1f1\",\"list.hoverBackground\":\"#44475A75\",\"list.inactiveSelectionBackground\":\"#44475A75\",\"list.warningForeground\":\"#FFB86C\",\"listFilterWidget.background\":\"#343746\",\"listFilterWidget.noMatchesOutline\":\"#ee6666\",\"listFilterWidget.outline\":\"#424450\",\"merge.currentHeaderBackground\":\"#50FA7B90\",\"merge.incomingHeaderBackground\":\"#BD93F990\",\"panel.background\":\"#282A36\",\"panel.border\":\"#bf9eee\",\"panelTitle.activeBorder\":\"#f286c4\",\"panelTitle.activeForeground\":\"#f6f6f4\",\"panelTitle.inactiveForeground\":\"#7b7f8b\",\"peekView.border\":\"#44475A\",\"peekViewEditor.background\":\"#282A36\",\"peekViewEditor.matchHighlightBackground\":\"#F1FA8C80\",\"peekViewResult.background\":\"#262626\",\"peekViewResult.fileForeground\":\"#f6f6f4\",\"peekViewResult.lineForeground\":\"#f6f6f4\",\"peekViewResult.matchHighlightBackground\":\"#F1FA8C80\",\"peekViewResult.selectionBackground\":\"#44475A\",\"peekViewResult.selectionForeground\":\"#f6f6f4\",\"peekViewTitle.background\":\"#191A21\",\"peekViewTitleDescription.foreground\":\"#7b7f8b\",\"peekViewTitleLabel.foreground\":\"#f6f6f4\",\"pickerGroup.border\":\"#bf9eee\",\"pickerGroup.foreground\":\"#97e1f1\",\"progressBar.background\":\"#f286c4\",\"selection.background\":\"#bf9eee\",\"settings.checkboxBackground\":\"#262626\",\"settings.checkboxBorder\":\"#191A21\",\"settings.checkboxForeground\":\"#f6f6f4\",\"settings.dropdownBackground\":\"#262626\",\"settings.dropdownBorder\":\"#191A21\",\"settings.dropdownForeground\":\"#f6f6f4\",\"settings.headerForeground\":\"#f6f6f4\",\"settings.modifiedItemIndicator\":\"#FFB86C\",\"settings.numberInputBackground\":\"#262626\",\"settings.numberInputBorder\":\"#191A21\",\"settings.numberInputForeground\":\"#f6f6f4\",\"settings.textInputBackground\":\"#262626\",\"settings.textInputBorder\":\"#191A21\",\"settings.textInputForeground\":\"#f6f6f4\",\"sideBar.background\":\"#262626\",\"sideBarSectionHeader.background\":\"#282A36\",\"sideBarSectionHeader.border\":\"#191A21\",\"sideBarTitle.foreground\":\"#f6f6f4\",\"statusBar.background\":\"#191A21\",\"statusBar.debuggingBackground\":\"#ee6666\",\"statusBar.debuggingForeground\":\"#191A21\",\"statusBar.foreground\":\"#f6f6f4\",\"statusBar.noFolderBackground\":\"#191A21\",\"statusBar.noFolderForeground\":\"#f6f6f4\",\"statusBarItem.prominentBackground\":\"#ee6666\",\"statusBarItem.prominentHoverBackground\":\"#FFB86C\",\"statusBarItem.remoteBackground\":\"#bf9eee\",\"statusBarItem.remoteForeground\":\"#282A36\",\"tab.activeBackground\":\"#282A36\",\"tab.activeBorderTop\":\"#FF79C680\",\"tab.activeForeground\":\"#f6f6f4\",\"tab.border\":\"#191A21\",\"tab.inactiveBackground\":\"#262626\",\"tab.inactiveForeground\":\"#7b7f8b\",\"terminal.ansiBlack\":\"#262626\",\"terminal.ansiBlue\":\"#bf9eee\",\"terminal.ansiBrightBlack\":\"#7b7f8b\",\"terminal.ansiBrightBlue\":\"#d6b4f7\",\"terminal.ansiBrightCyan\":\"#adf6f6\",\"terminal.ansiBrightGreen\":\"#78f09a\",\"terminal.ansiBrightMagenta\":\"#f49dda\",\"terminal.ansiBrightRed\":\"#f07c7c\",\"terminal.ansiBrightWhite\":\"#ffffff\",\"terminal.ansiBrightYellow\":\"#f6f6ae\",\"terminal.ansiCyan\":\"#97e1f1\",\"terminal.ansiGreen\":\"#62e884\",\"terminal.ansiMagenta\":\"#f286c4\",\"terminal.ansiRed\":\"#ee6666\",\"terminal.ansiWhite\":\"#f6f6f4\",\"terminal.ansiYellow\":\"#e7ee98\",\"terminal.background\":\"#282A36\",\"terminal.foreground\":\"#f6f6f4\",\"titleBar.activeBackground\":\"#262626\",\"titleBar.activeForeground\":\"#f6f6f4\",\"titleBar.inactiveBackground\":\"#191A21\",\"titleBar.inactiveForeground\":\"#7b7f8b\",\"walkThrough.embeddedEditorBackground\":\"#262626\"},\"displayName\":\"Dracula Theme Soft\",\"name\":\"dracula-soft\",\"semanticHighlighting\":true,\"tokenColors\":[{\"scope\":[\"emphasis\"],\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":[\"strong\"],\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":[\"header\"],\"settings\":{\"foreground\":\"#bf9eee\"}},{\"scope\":[\"meta.diff\",\"meta.diff.header\"],\"settings\":{\"foreground\":\"#7b7f8b\"}},{\"scope\":[\"markup.inserted\"],\"settings\":{\"foreground\":\"#62e884\"}},{\"scope\":[\"markup.deleted\"],\"settings\":{\"foreground\":\"#ee6666\"}},{\"scope\":[\"markup.changed\"],\"settings\":{\"foreground\":\"#FFB86C\"}},{\"scope\":[\"invalid\"],\"settings\":{\"fontStyle\":\"underline italic\",\"foreground\":\"#ee6666\"}},{\"scope\":[\"invalid.deprecated\"],\"settings\":{\"fontStyle\":\"underline italic\",\"foreground\":\"#f6f6f4\"}},{\"scope\":[\"entity.name.filename\"],\"settings\":{\"foreground\":\"#e7ee98\"}},{\"scope\":[\"markup.error\"],\"settings\":{\"foreground\":\"#ee6666\"}},{\"scope\":[\"markup.underline\"],\"settings\":{\"fontStyle\":\"underline\"}},{\"scope\":[\"markup.bold\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#FFB86C\"}},{\"scope\":[\"markup.heading\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#bf9eee\"}},{\"scope\":[\"markup.italic\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#e7ee98\"}},{\"scope\":[\"beginning.punctuation.definition.list.markdown\",\"beginning.punctuation.definition.quote.markdown\",\"punctuation.definition.link.restructuredtext\"],\"settings\":{\"foreground\":\"#97e1f1\"}},{\"scope\":[\"markup.inline.raw\",\"markup.raw.restructuredtext\"],\"settings\":{\"foreground\":\"#62e884\"}},{\"scope\":[\"markup.underline.link\",\"markup.underline.link.image\"],\"settings\":{\"foreground\":\"#97e1f1\"}},{\"scope\":[\"meta.link.reference.def.restructuredtext\",\"punctuation.definition.directive.restructuredtext\",\"string.other.link.description\",\"string.other.link.title\"],\"settings\":{\"foreground\":\"#f286c4\"}},{\"scope\":[\"entity.name.directive.restructuredtext\",\"markup.quote\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#e7ee98\"}},{\"scope\":[\"meta.separator.markdown\"],\"settings\":{\"foreground\":\"#7b7f8b\"}},{\"scope\":[\"fenced_code.block.language\",\"markup.raw.inner.restructuredtext\",\"markup.fenced_code.block.markdown punctuation.definition.markdown\"],\"settings\":{\"foreground\":\"#62e884\"}},{\"scope\":[\"punctuation.definition.constant.restructuredtext\"],\"settings\":{\"foreground\":\"#bf9eee\"}},{\"scope\":[\"markup.heading.markdown punctuation.definition.string.begin\",\"markup.heading.markdown punctuation.definition.string.end\"],\"settings\":{\"foreground\":\"#bf9eee\"}},{\"scope\":[\"meta.paragraph.markdown punctuation.definition.string.begin\",\"meta.paragraph.markdown punctuation.definition.string.end\"],\"settings\":{\"foreground\":\"#f6f6f4\"}},{\"scope\":[\"markup.quote.markdown meta.paragraph.markdown punctuation.definition.string.begin\",\"markup.quote.markdown meta.paragraph.markdown punctuation.definition.string.end\"],\"settings\":{\"foreground\":\"#e7ee98\"}},{\"scope\":[\"entity.name.type.class\",\"entity.name.class\"],\"settings\":{\"fontStyle\":\"normal\",\"foreground\":\"#97e1f1\"}},{\"scope\":[\"keyword.expressions-and-types.swift\",\"keyword.other.this\",\"variable.language\",\"variable.language punctuation.definition.variable.php\",\"variable.other.readwrite.instance.ruby\",\"variable.parameter.function.language.special\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#bf9eee\"}},{\"scope\":[\"entity.other.inherited-class\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#97e1f1\"}},{\"scope\":[\"comment\",\"punctuation.definition.comment\",\"unused.comment\",\"wildcard.comment\"],\"settings\":{\"foreground\":\"#7b7f8b\"}},{\"scope\":[\"comment keyword.codetag.notation\",\"comment.block.documentation keyword\",\"comment.block.documentation storage.type.class\"],\"settings\":{\"foreground\":\"#f286c4\"}},{\"scope\":[\"comment.block.documentation entity.name.type\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#97e1f1\"}},{\"scope\":[\"comment.block.documentation entity.name.type punctuation.definition.bracket\"],\"settings\":{\"foreground\":\"#97e1f1\"}},{\"scope\":[\"comment.block.documentation variable\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#FFB86C\"}},{\"scope\":[\"constant\",\"variable.other.constant\"],\"settings\":{\"foreground\":\"#bf9eee\"}},{\"scope\":[\"constant.character.escape\",\"constant.character.string.escape\",\"constant.regexp\"],\"settings\":{\"foreground\":\"#f286c4\"}},{\"scope\":[\"entity.name.tag\"],\"settings\":{\"foreground\":\"#f286c4\"}},{\"scope\":[\"entity.other.attribute-name.parent-selector\"],\"settings\":{\"foreground\":\"#f286c4\"}},{\"scope\":[\"entity.other.attribute-name\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#62e884\"}},{\"scope\":[\"entity.name.function\",\"meta.function-call.object\",\"meta.function-call.php\",\"meta.function-call.static\",\"meta.method-call.java meta.method\",\"meta.method.groovy\",\"support.function.any-method.lua\",\"keyword.operator.function.infix\"],\"settings\":{\"foreground\":\"#62e884\"}},{\"scope\":[\"entity.name.variable.parameter\",\"meta.at-rule.function variable\",\"meta.at-rule.mixin variable\",\"meta.function.arguments variable.other.php\",\"meta.selectionset.graphql meta.arguments.graphql variable.arguments.graphql\",\"variable.parameter\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#FFB86C\"}},{\"scope\":[\"meta.decorator variable.other.readwrite\",\"meta.decorator variable.other.property\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#62e884\"}},{\"scope\":[\"meta.decorator variable.other.object\"],\"settings\":{\"foreground\":\"#62e884\"}},{\"scope\":[\"keyword\",\"punctuation.definition.keyword\"],\"settings\":{\"foreground\":\"#f286c4\"}},{\"scope\":[\"keyword.control.new\",\"keyword.operator.new\"],\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":[\"meta.selector\"],\"settings\":{\"foreground\":\"#f286c4\"}},{\"scope\":[\"support\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#97e1f1\"}},{\"scope\":[\"support.function.magic\",\"support.variable\",\"variable.other.predefined\"],\"settings\":{\"fontStyle\":\"regular\",\"foreground\":\"#bf9eee\"}},{\"scope\":[\"support.function\",\"support.type.property-name\"],\"settings\":{\"fontStyle\":\"regular\"}},{\"scope\":[\"constant.other.symbol.hashkey punctuation.definition.constant.ruby\",\"entity.other.attribute-name.placeholder punctuation\",\"entity.other.attribute-name.pseudo-class punctuation\",\"entity.other.attribute-name.pseudo-element punctuation\",\"meta.group.double.toml\",\"meta.group.toml\",\"meta.object-binding-pattern-variable punctuation.destructuring\",\"punctuation.colon.graphql\",\"punctuation.definition.block.scalar.folded.yaml\",\"punctuation.definition.block.scalar.literal.yaml\",\"punctuation.definition.block.sequence.item.yaml\",\"punctuation.definition.entity.other.inherited-class\",\"punctuation.function.swift\",\"punctuation.separator.dictionary.key-value\",\"punctuation.separator.hash\",\"punctuation.separator.inheritance\",\"punctuation.separator.key-value\",\"punctuation.separator.key-value.mapping.yaml\",\"punctuation.separator.namespace\",\"punctuation.separator.pointer-access\",\"punctuation.separator.slice\",\"string.unquoted.heredoc punctuation.definition.string\",\"support.other.chomping-indicator.yaml\",\"punctuation.separator.annotation\"],\"settings\":{\"foreground\":\"#f286c4\"}},{\"scope\":[\"keyword.operator.other.powershell\",\"keyword.other.statement-separator.powershell\",\"meta.brace.round\",\"meta.function-call punctuation\",\"punctuation.definition.arguments.begin\",\"punctuation.definition.arguments.end\",\"punctuation.definition.entity.begin\",\"punctuation.definition.entity.end\",\"punctuation.definition.tag.cs\",\"punctuation.definition.type.begin\",\"punctuation.definition.type.end\",\"punctuation.section.scope.begin\",\"punctuation.section.scope.end\",\"punctuation.terminator.expression.php\",\"storage.type.generic.java\",\"string.template meta.brace\",\"string.template punctuation.accessor\"],\"settings\":{\"foreground\":\"#f6f6f4\"}},{\"scope\":[\"meta.string-contents.quoted.double punctuation.definition.variable\",\"punctuation.definition.interpolation.begin\",\"punctuation.definition.interpolation.end\",\"punctuation.definition.template-expression.begin\",\"punctuation.definition.template-expression.end\",\"punctuation.section.embedded.begin\",\"punctuation.section.embedded.coffee\",\"punctuation.section.embedded.end\",\"punctuation.section.embedded.end source.php\",\"punctuation.section.embedded.end source.ruby\",\"punctuation.definition.variable.makefile\"],\"settings\":{\"foreground\":\"#f286c4\"}},{\"scope\":[\"entity.name.function.target.makefile\",\"entity.name.section.toml\",\"entity.name.tag.yaml\",\"variable.other.key.toml\"],\"settings\":{\"foreground\":\"#97e1f1\"}},{\"scope\":[\"constant.other.date\",\"constant.other.timestamp\"],\"settings\":{\"foreground\":\"#FFB86C\"}},{\"scope\":[\"variable.other.alias.yaml\"],\"settings\":{\"fontStyle\":\"italic underline\",\"foreground\":\"#62e884\"}},{\"scope\":[\"storage\",\"meta.implementation storage.type.objc\",\"meta.interface-or-protocol storage.type.objc\",\"source.groovy storage.type.def\"],\"settings\":{\"fontStyle\":\"regular\",\"foreground\":\"#f286c4\"}},{\"scope\":[\"entity.name.type\",\"keyword.primitive-datatypes.swift\",\"keyword.type.cs\",\"meta.protocol-list.objc\",\"meta.return-type.objc\",\"source.go storage.type\",\"source.groovy storage.type\",\"source.java storage.type\",\"source.powershell entity.other.attribute-name\",\"storage.class.std.rust\",\"storage.type.attribute.swift\",\"storage.type.c\",\"storage.type.core.rust\",\"storage.type.cs\",\"storage.type.groovy\",\"storage.type.objc\",\"storage.type.php\",\"storage.type.haskell\",\"storage.type.ocaml\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#97e1f1\"}},{\"scope\":[\"entity.name.type.type-parameter\",\"meta.indexer.mappedtype.declaration entity.name.type\",\"meta.type.parameters entity.name.type\"],\"settings\":{\"foreground\":\"#FFB86C\"}},{\"scope\":[\"storage.modifier\"],\"settings\":{\"foreground\":\"#f286c4\"}},{\"scope\":[\"string.regexp\",\"constant.other.character-class.set.regexp\",\"constant.character.escape.backslash.regexp\"],\"settings\":{\"foreground\":\"#e7ee98\"}},{\"scope\":[\"punctuation.definition.group.capture.regexp\"],\"settings\":{\"foreground\":\"#f286c4\"}},{\"scope\":[\"string.regexp punctuation.definition.string.begin\",\"string.regexp punctuation.definition.string.end\"],\"settings\":{\"foreground\":\"#ee6666\"}},{\"scope\":[\"punctuation.definition.character-class.regexp\"],\"settings\":{\"foreground\":\"#97e1f1\"}},{\"scope\":[\"punctuation.definition.group.regexp\"],\"settings\":{\"foreground\":\"#FFB86C\"}},{\"scope\":[\"punctuation.definition.group.assertion.regexp\",\"keyword.operator.negation.regexp\"],\"settings\":{\"foreground\":\"#ee6666\"}},{\"scope\":[\"meta.assertion.look-ahead.regexp\"],\"settings\":{\"foreground\":\"#62e884\"}},{\"scope\":[\"string\"],\"settings\":{\"foreground\":\"#e7ee98\"}},{\"scope\":[\"punctuation.definition.string.begin\",\"punctuation.definition.string.end\"],\"settings\":{\"foreground\":\"#dee492\"}},{\"scope\":[\"punctuation.support.type.property-name.begin\",\"punctuation.support.type.property-name.end\"],\"settings\":{\"foreground\":\"#97e2f2\"}},{\"scope\":[\"string.quoted.docstring.multi\",\"string.quoted.docstring.multi.python punctuation.definition.string.begin\",\"string.quoted.docstring.multi.python punctuation.definition.string.end\",\"string.quoted.docstring.multi.python constant.character.escape\"],\"settings\":{\"foreground\":\"#7b7f8b\"}},{\"scope\":[\"variable\",\"constant.other.key.perl\",\"support.variable.property\",\"variable.other.constant.js\",\"variable.other.constant.ts\",\"variable.other.constant.tsx\"],\"settings\":{\"foreground\":\"#f6f6f4\"}},{\"scope\":[\"meta.import variable.other.readwrite\",\"meta.variable.assignment.destructured.object.coffee variable\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#FFB86C\"}},{\"scope\":[\"meta.import variable.other.readwrite.alias\",\"meta.export variable.other.readwrite.alias\",\"meta.variable.assignment.destructured.object.coffee variable variable\"],\"settings\":{\"fontStyle\":\"normal\",\"foreground\":\"#f6f6f4\"}},{\"scope\":[\"meta.selectionset.graphql variable\"],\"settings\":{\"foreground\":\"#e7ee98\"}},{\"scope\":[\"meta.selectionset.graphql meta.arguments variable\"],\"settings\":{\"foreground\":\"#f6f6f4\"}},{\"scope\":[\"entity.name.fragment.graphql\",\"variable.fragment.graphql\"],\"settings\":{\"foreground\":\"#97e1f1\"}},{\"scope\":[\"constant.other.symbol.hashkey.ruby\",\"keyword.operator.dereference.java\",\"keyword.operator.navigation.groovy\",\"meta.scope.for-loop.shell punctuation.definition.string.begin\",\"meta.scope.for-loop.shell punctuation.definition.string.end\",\"meta.scope.for-loop.shell string\",\"storage.modifier.import\",\"punctuation.section.embedded.begin.tsx\",\"punctuation.section.embedded.end.tsx\",\"punctuation.section.embedded.begin.jsx\",\"punctuation.section.embedded.end.jsx\",\"punctuation.separator.list.comma.css\",\"constant.language.empty-list.haskell\"],\"settings\":{\"foreground\":\"#f6f6f4\"}},{\"scope\":[\"source.shell variable.other\"],\"settings\":{\"foreground\":\"#bf9eee\"}},{\"scope\":[\"support.constant\"],\"settings\":{\"fontStyle\":\"normal\",\"foreground\":\"#bf9eee\"}},{\"scope\":[\"meta.scope.prerequisites.makefile\"],\"settings\":{\"foreground\":\"#e7ee98\"}},{\"scope\":[\"meta.attribute-selector.scss\"],\"settings\":{\"foreground\":\"#e7ee98\"}},{\"scope\":[\"punctuation.definition.attribute-selector.end.bracket.square.scss\",\"punctuation.definition.attribute-selector.begin.bracket.square.scss\"],\"settings\":{\"foreground\":\"#f6f6f4\"}},{\"scope\":[\"meta.preprocessor.haskell\"],\"settings\":{\"foreground\":\"#7b7f8b\"}},{\"scope\":[\"log.error\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#ee6666\"}},{\"scope\":[\"log.warning\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#e7ee98\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BY-TUvya.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Prolog\",\"fileTypes\":[\"pl\",\"pro\"],\"name\":\"prolog\",\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\"(?<=:-)\\\\\\\\s*\",\"end\":\"(\\\\\\\\.)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.clause.bodyend.prolog\"}},\"name\":\"meta.clause.body.prolog\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#builtin\"},{\"include\":\"#controlandkeywords\"},{\"include\":\"#atom\"},{\"include\":\"#variable\"},{\"include\":\"#constants\"},{\"match\":\".\",\"name\":\"meta.clause.body.prolog\"}]},{\"begin\":\"^\\\\\\\\s*([a-z][a-zA-Z0-9_]*)(\\\\\\\\(?)(?=.*:-.*)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.clause.prolog\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin\"}},\"end\":\"((\\\\\\\\)?))\\\\\\\\s*(:-)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end\"},\"3\":{\"name\":\"keyword.control.clause.bodybegin.prolog\"}},\"name\":\"meta.clause.head.prolog\",\"patterns\":[{\"include\":\"#atom\"},{\"include\":\"#variable\"},{\"include\":\"#constants\"}]},{\"begin\":\"^\\\\\\\\s*([a-z][a-zA-Z0-9_]*)(\\\\\\\\(?)(?=.*-->.*)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.dcg.prolog\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin\"}},\"end\":\"((\\\\\\\\)?))\\\\\\\\s*(-->)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end\"},\"3\":{\"name\":\"keyword.control.dcg.bodybegin.prolog\"}},\"name\":\"meta.dcg.head.prolog\",\"patterns\":[{\"include\":\"#atom\"},{\"include\":\"#variable\"},{\"include\":\"#constants\"}]},{\"begin\":\"(?<=-->)\\\\\\\\s*\",\"end\":\"(\\\\\\\\.)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.dcg.bodyend.prolog\"}},\"name\":\"meta.dcg.body.prolog\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#controlandkeywords\"},{\"include\":\"#atom\"},{\"include\":\"#variable\"},{\"include\":\"#constants\"},{\"match\":\".\",\"name\":\"meta.dcg.body.prolog\"}]},{\"begin\":\"^\\\\\\\\s*([a-zA-Z][a-zA-Z0-9_]*)(\\\\\\\\(?)(?!.*(:-|-->).*)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.fact.prolog\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin\"}},\"end\":\"((\\\\\\\\)?))\\\\\\\\s*(\\\\\\\\.)(?!\\\\\\\\d+)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end\"},\"3\":{\"name\":\"keyword.control.fact.end.prolog\"}},\"name\":\"meta.fact.prolog\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#atom\"},{\"include\":\"#variable\"},{\"include\":\"#constants\"}]}],\"repository\":{\"atom\":{\"patterns\":[{\"match\":\"(?<![a-zA-Z0-9_])[a-z][a-zA-Z0-9_]*(?!\\\\\\\\s*\\\\\\\\(|[a-zA-Z0-9_])\",\"name\":\"constant.other.atom.simple.prolog\"},{\"match\":\"'.*?'\",\"name\":\"constant.other.atom.quoted.prolog\"},{\"match\":\"\\\\\\\\[\\\\\\\\]\",\"name\":\"constant.other.atom.emptylist.prolog\"}]},\"builtin\":{\"patterns\":[{\"match\":\"\\\\\\\\b(op|nl|fail|dynamic|discontiguous|initialization|meta_predicate|module_transparent|multifile|public|thread_local|thread_initialization|volatile)\\\\\\\\b\",\"name\":\"keyword.other\"},{\"match\":\"\\\\\\\\b(abolish|abort|abs|absolute_file_name|access_file|acos|acosh|acyclic_term|add_import_module|append|apropos|arg|asin|asinh|assert|asserta|assertz|at_end_of_stream|at_halt|atan|atanh|atom|atom_chars|atom_codes|atom_concat|atom_length|atom_number|atom_prefix|atom_string|atom_to_stem_list|atom_to_term|atomic|atomic_concat|atomic_list_concat|atomics_to_string|attach_packs|attr_portray_hook|attr_unify_hook|attribute_goals|attvar|autoload|autoload_path|b_getval|b_set_dict|b_setval|bagof|begin_tests|between|blob|break|byte_count|call_dcg|call_residue_vars|callable|cancel_halt|catch|ceil|ceiling|char_code|char_conversion|char_type|character_count|chdir|chr_leash|chr_notrace|chr_show_store|chr_trace|clause|clause_property|close|close_dde_conversation|close_table|code_type|collation_key|compare|compare_strings|compile_aux_clauses|compile_predicates|compiling|compound|compound_name_arguments|compound_name_arity|consult|context_module|copy_predicate_clauses|copy_stream_data|copy_term|copy_term_nat|copysign|cos|cosh|cputime|create_prolog_flag|current_arithmetic_function|current_atom|current_blob|current_char_conversion|current_engine|current_flag|current_format_predicate|current_functor|current_input|current_key|current_locale|current_module|current_op|current_output|current_predicate|current_prolog_flag|current_signal|current_stream|current_trie|cyclic_term|date_time_stamp|date_time_value|day_of_the_week|dcg_translate_rule|dde_current_connection|dde_current_service|dde_execute|dde_poke|dde_register_service|dde_request|dde_unregister_service|debug|debugging|default_module|del_attr|del_attrs|del_dict|delete_directory|delete_file|delete_import_module|deterministic|dict_create|dict_pairs|dif|directory_files|divmod|doc_browser|doc_collect|doc_load_library|doc_server|double_metaphone|downcase_atom|dtd|dtd_property|duplicate_term|dwim_match|dwim_predicate|e|edit|encoding|engine_create|engine_fetch|engine_next|engine_next_reified|engine_post|engine_self|engine_yield|ensure_loaded|epsilon|erase|erf|erfc|eval|exception|exists_directory|exists_file|exists_source|exp|expand_answer|expand_file_name|expand_file_search_path|expand_goal|expand_query|expand_term|explain|fast_read|fast_term_serialized|fast_write|file_base_name|file_directory_name|file_name_extension|file_search_path|fill_buffer|find_chr_constraint|findall|findnsols|flag|float|float_fractional_part|float_integer_part|floor|flush_output|forall|format|format_predicate|format_time|free_dtd|free_sgml_parser|free_table|freeze|frozen|functor|garbage_collect|garbage_collect_atoms|garbage_collect_clauses|gdebug|get|get_attr|get_attrs|get_byte|get_char|get_code|get_dict|get_flag|get_sgml_parser|get_single_char|get_string_code|get_table_attribute|get_time|getbit|getenv|goal_expansion|ground|gspy|gtrace|guitracer|gxref|gzopen|halt|help|import_module|in_pce_thread|in_pce_thread_sync|in_table|include|inf|instance|integer|iri_xml_namespace|is_absolute_file_name|is_dict|is_engine|is_list|is_stream|is_thread|keysort|known_licenses|leash|length|lgamma|library_directory|license|line_count|line_position|list_strings|listing|load_dtd|load_files|load_html|load_rdf|load_sgml|load_structure|load_test_files|load_xml|locale_create|locale_destroy|locale_property|locale_sort|log|lsb|make|make_directory|make_library_index|max|memberchk|message_hook|message_property|message_queue_create|message_queue_destroy|message_queue_property|message_to_string|min|module|module_property|msb|msort|mutex_create|mutex_destroy|mutex_lock|mutex_property|mutex_statistics|mutex_trylock|mutex_unlock|name|nan|nb_current|nb_delete|nb_getval|nb_link_dict|nb_linkarg|nb_linkval|nb_set_dict|nb_setarg|nb_setval|new_dtd|new_order_table|new_sgml_parser|new_table|nl|nodebug|noguitracer|nonvar|noprotocol|normalize_space|nospy|nospyall|notrace|nth_clause|nth_integer_root_and_remainder|number|number_chars|number_codes|number_string|numbervars|odbc_close_statement|odbc_connect|odbc_current_connection|odbc_current_table|odbc_data_source|odbc_debug|odbc_disconnect|odbc_driver_connect|odbc_end_transaction|odbc_execute|odbc_fetch|odbc_free_statement|odbc_get_connection|odbc_prepare|odbc_query|odbc_set_connection|odbc_statistics|odbc_table_column|odbc_table_foreign_key|odbc_table_primary_key|odbc_type|on_signal|op|open|open_dde_conversation|open_dtd|open_null_stream|open_resource|open_string|open_table|order_table_mapping|parse_time|passed|pce_dispatch|pdt_install_console|peek_byte|peek_char|peek_code|peek_string|phrase|plus|popcount|porter_stem|portray|portray_clause|powm|predicate_property|predsort|prefix_string|print|print_message|print_message_lines|process_rdf|profile|profiler|project_attributes|prolog|prolog_choice_attribute|prolog_current_choice|prolog_current_frame|prolog_cut_to|prolog_debug|prolog_exception_hook|prolog_file_type|prolog_frame_attribute|prolog_ide|prolog_list_goal|prolog_load_context|prolog_load_file|prolog_nodebug|prolog_skip_frame|prolog_skip_level|prolog_stack_property|prolog_to_os_filename|prolog_trace_interception|prompt|protocol|protocola|protocolling|put|put_attr|put_attrs|put_byte|put_char|put_code|put_dict|qcompile|qsave_program|random|random_float|random_property|rational|rationalize|rdf_write_xml|read|read_clause|read_history|read_link|read_pending_chars|read_pending_codes|read_string|read_table_fields|read_table_record|read_table_record_data|read_term|read_term_from_atom|recorda|recorded|recordz|redefine_system_predicate|reexport|reload_library_index|rename_file|require|reset|reset_profiler|resource|retract|retractall|round|run_tests|running_tests|same_file|same_term|see|seeing|seek|seen|select_dict|set_end_of_stream|set_flag|set_input|set_locale|set_module|set_output|set_prolog_IO|set_prolog_flag|set_prolog_stack|set_random|set_sgml_parser|set_stream|set_stream_position|set_test_options|setarg|setenv|setlocale|setof|sgml_parse|shell|shift|show_coverage|show_profile|sign|sin|sinh|size_file|skip|sleep|sort|source_exports|source_file|source_file_property|source_location|split_string|spy|sqrt|stamp_date_time|statistics|stream_pair|stream_position_data|stream_property|string|string_chars|string_code|string_codes|string_concat|string_length|string_lower|string_upper|strip_module|style_check|sub_atom|sub_atom_icasechk|sub_string|subsumes_term|succ|suite|swritef|tab|table_previous_record|table_start_of_record|table_version|table_window|tan|tanh|tell|telling|term_attvars|term_expansion|term_hash|term_string|term_subsumer|term_to_atom|term_variables|test|test_report|text_to_string|thread_at_exit|thread_create|thread_detach|thread_exit|thread_get_message|thread_join|thread_message_hook|thread_peek_message|thread_property|thread_self|thread_send_message|thread_setconcurrency|thread_signal|thread_statistics|throw|time|time_file|tmp_file|tmp_file_stream|tokenize_atom|told|trace|tracing|trie_destroy|trie_gen|trie_insert|trie_insert_new|trie_lookup|trie_new|trie_property|trie_term|trim_stacks|truncate|tty_get_capability|tty_goto|tty_put|tty_size|ttyflush|unaccent_atom|unifiable|unify_with_occurs_check|unix|unknown|unload_file|unsetenv|upcase_atom|use_module|var|var_number|var_property|variant_hash|version|visible|wait_for_input|when|wildcard_match|win_add_dll_directory|win_exec|win_folder|win_has_menu|win_insert_menu|win_insert_menu_item|win_registry_get_value|win_remove_dll_directory|win_shell|win_window_pos|window_title|with_mutex|with_output_to|working_directory|write|write_canonical|write_length|write_term|writef|writeln|writeq|xml_is_dom|xml_to_rdf|zopen)\\\\\\\\b\",\"name\":\"support.function.builtin.prolog\"}]},\"comments\":{\"patterns\":[{\"match\":\"%.*\",\"name\":\"comment.line.percent-sign.prolog\"},{\"begin\":\"/\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.prolog\"}},\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.prolog\"}]},\"constants\":{\"patterns\":[{\"match\":\"(?<![a-zA-Z]|/)(\\\\\\\\d+|(\\\\\\\\d+\\\\\\\\.\\\\\\\\d+))\",\"name\":\"constant.numeric.integer.prolog\"},{\"match\":\"\\\\\".*?\\\\\"\",\"name\":\"string.quoted.double.prolog\"}]},\"controlandkeywords\":{\"patterns\":[{\"begin\":\"(->)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.if.prolog\"}},\"end\":\"(;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.else.prolog\"}},\"name\":\"meta.if.prolog\",\"patterns\":[{\"include\":\"$self\"},{\"include\":\"#builtin\"},{\"include\":\"#comments\"},{\"include\":\"#atom\"},{\"include\":\"#variable\"},{\"match\":\".\",\"name\":\"meta.if.body.prolog\"}]},{\"match\":\"!\",\"name\":\"keyword.control.cut.prolog\"},{\"match\":\"(\\\\\\\\s(is)\\\\\\\\s)|=:=|=\\\\\\\\.\\\\\\\\.|=?\\\\\\\\\\\\\\\\?=|\\\\\\\\\\\\\\\\\\\\\\\\+|@?>|@?=?<|\\\\\\\\+|\\\\\\\\*|\\\\\\\\-\",\"name\":\"keyword.operator.prolog\"}]},\"variable\":{\"patterns\":[{\"match\":\"(?<![a-zA-Z0-9_])[A-Z][a-zA-Z0-9_]*\",\"name\":\"variable.parameter.uppercase.prolog\"},{\"match\":\"(?<!\\\\\\\\w)_\",\"name\":\"variable.language.anonymous.prolog\"}]}},\"scopeName\":\"source.prolog\"}`)),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BY6pwuIY.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"REM\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'}],surroundingPairs:[{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'}],folding:{markers:{start:new RegExp(\"^\\\\s*(::\\\\s*|REM\\\\s+)#region\"),end:new RegExp(\"^\\\\s*(::\\\\s*|REM\\\\s+)#endregion\")}}},s={defaultToken:\"\",ignoreCase:!0,tokenPostfix:\".bat\",brackets:[{token:\"delimiter.bracket\",open:\"{\",close:\"}\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"},{token:\"delimiter.square\",open:\"[\",close:\"]\"}],keywords:/call|defined|echo|errorlevel|exist|for|goto|if|pause|set|shift|start|title|not|pushd|popd/,symbols:/[=><!~?&|+\\-*\\/\\^;\\.,]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^(\\s*)(rem(?:\\s.*|))$/,[\"\",\"comment\"]],[/(\\@?)(@keywords)(?!\\w)/,[{token:\"keyword\"},{token:\"keyword.$2\"}]],[/[ \\t\\r\\n]+/,\"\"],[/setlocal(?!\\w)/,\"keyword.tag-setlocal\"],[/endlocal(?!\\w)/,\"keyword.tag-setlocal\"],[/[a-zA-Z_]\\w*/,\"\"],[/:\\w*/,\"metatag\"],[/%[^%]+%/,\"variable\"],[/%%[\\w]+(?!\\w)/,\"variable\"],[/[{}()\\[\\]]/,\"@brackets\"],[/@symbols/,\"delimiter\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,\"number.hex\"],[/\\d+/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"/,\"string\",'@string.\"'],[/'/,\"string\",\"@string.'\"]],string:[[/[^\\\\\"'%]+/,{cases:{\"@eos\":{token:\"string\",next:\"@popall\"},\"@default\":\"string\"}}],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/%[\\w ]+%/,\"variable\"],[/%%[\\w]+(?!\\w)/,\"variable\"],[/[\"']/,{cases:{\"$#==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":\"string\"}}],[/$/,\"string\",\"@popall\"]]}};export{e as conf,s as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/BYtUz8ZP.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"`\",close:\"`\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"`\",close:\"`\"}]},o={defaultToken:\"\",tokenPostfix:\".swift\",identifier:/[a-zA-Z_][\\w$]*/,attributes:[\"@GKInspectable\",\"@IBAction\",\"@IBDesignable\",\"@IBInspectable\",\"@IBOutlet\",\"@IBSegueAction\",\"@NSApplicationMain\",\"@NSCopying\",\"@NSManaged\",\"@Sendable\",\"@UIApplicationMain\",\"@autoclosure\",\"@actorIndependent\",\"@asyncHandler\",\"@available\",\"@convention\",\"@derivative\",\"@differentiable\",\"@discardableResult\",\"@dynamicCallable\",\"@dynamicMemberLookup\",\"@escaping\",\"@frozen\",\"@globalActor\",\"@inlinable\",\"@inline\",\"@main\",\"@noDerivative\",\"@nonobjc\",\"@noreturn\",\"@objc\",\"@objcMembers\",\"@preconcurrency\",\"@propertyWrapper\",\"@requires_stored_property_inits\",\"@resultBuilder\",\"@testable\",\"@unchecked\",\"@unknown\",\"@usableFromInline\",\"@warn_unqualified_access\"],accessmodifiers:[\"open\",\"public\",\"internal\",\"fileprivate\",\"private\"],keywords:[\"#available\",\"#colorLiteral\",\"#column\",\"#dsohandle\",\"#else\",\"#elseif\",\"#endif\",\"#error\",\"#file\",\"#fileID\",\"#fileLiteral\",\"#filePath\",\"#function\",\"#if\",\"#imageLiteral\",\"#keyPath\",\"#line\",\"#selector\",\"#sourceLocation\",\"#warning\",\"Any\",\"Protocol\",\"Self\",\"Type\",\"actor\",\"as\",\"assignment\",\"associatedtype\",\"associativity\",\"async\",\"await\",\"break\",\"case\",\"catch\",\"class\",\"continue\",\"convenience\",\"default\",\"defer\",\"deinit\",\"didSet\",\"do\",\"dynamic\",\"dynamicType\",\"else\",\"enum\",\"extension\",\"fallthrough\",\"false\",\"fileprivate\",\"final\",\"for\",\"func\",\"get\",\"guard\",\"higherThan\",\"if\",\"import\",\"in\",\"indirect\",\"infix\",\"init\",\"inout\",\"internal\",\"is\",\"isolated\",\"lazy\",\"left\",\"let\",\"lowerThan\",\"mutating\",\"nil\",\"none\",\"nonisolated\",\"nonmutating\",\"open\",\"operator\",\"optional\",\"override\",\"postfix\",\"precedence\",\"precedencegroup\",\"prefix\",\"private\",\"protocol\",\"public\",\"repeat\",\"required\",\"rethrows\",\"return\",\"right\",\"safe\",\"self\",\"set\",\"some\",\"static\",\"struct\",\"subscript\",\"super\",\"switch\",\"throw\",\"throws\",\"true\",\"try\",\"typealias\",\"unowned\",\"unsafe\",\"var\",\"weak\",\"where\",\"while\",\"willSet\",\"__consuming\",\"__owned\"],symbols:/[=(){}\\[\\].,:;@#\\_&\\-<>`?!+*\\\\\\/]/,operatorstart:/[\\/=\\-+!*%<>&|^~?\\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-\\u3030]/,operatorend:/[\\u0300-\\u036F\\u1DC0-\\u1DFF\\u20D0-\\u20FF\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uE0100-\\uE01EF]/,operators:/(@operatorstart)((@operatorstart)|(@operatorend))*/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[{include:\"@whitespace\"},{include:\"@comment\"},{include:\"@attribute\"},{include:\"@literal\"},{include:\"@keyword\"},{include:\"@invokedmethod\"},{include:\"@symbol\"}],whitespace:[[/\\s+/,\"white\"],[/\"\"\"/,\"string.quote\",\"@endDblDocString\"]],endDblDocString:[[/[^\"]+/,\"string\"],[/\\\\\"/,\"string\"],[/\"\"\"/,\"string.quote\",\"@popall\"],[/\"/,\"string\"]],symbol:[[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/[.]/,\"delimiter\"],[/@operators/,\"operator\"],[/@symbols/,\"operator\"]],comment:[[/\\/\\/\\/.*$/,\"comment.doc\"],[/\\/\\*\\*/,\"comment.doc\",\"@commentdocbody\"],[/\\/\\/.*$/,\"comment\"],[/\\/\\*/,\"comment\",\"@commentbody\"]],commentdocbody:[[/\\/\\*/,\"comment\",\"@commentbody\"],[/\\*\\//,\"comment.doc\",\"@pop\"],[/\\:[a-zA-Z]+\\:/,\"comment.doc.param\"],[/./,\"comment.doc\"]],commentbody:[[/\\/\\*/,\"comment\",\"@commentbody\"],[/\\*\\//,\"comment\",\"@pop\"],[/./,\"comment\"]],attribute:[[/@@@identifier/,{cases:{\"@attributes\":\"keyword.control\",\"@default\":\"\"}}]],literal:[[/\"/,{token:\"string.quote\",next:\"@stringlit\"}],[/0[b]([01]_?)+/,\"number.binary\"],[/0[o]([0-7]_?)+/,\"number.octal\"],[/0[x]([0-9a-fA-F]_?)+([pP][\\-+](\\d_?)+)?/,\"number.hex\"],[/(\\d_?)*\\.(\\d_?)+([eE][\\-+]?(\\d_?)+)?/,\"number.float\"],[/(\\d_?)+/,\"number\"]],stringlit:[[/\\\\\\(/,{token:\"operator\",next:\"@interpolatedexpression\"}],[/@escapes/,\"string\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,{token:\"string.quote\",next:\"@pop\"}],[/./,\"string\"]],interpolatedexpression:[[/\\(/,{token:\"operator\",next:\"@interpolatedexpression\"}],[/\\)/,{token:\"operator\",next:\"@pop\"}],{include:\"@literal\"},{include:\"@keyword\"},{include:\"@symbol\"}],keyword:[[/`/,{token:\"operator\",next:\"@escapedkeyword\"}],[/@identifier/,{cases:{\"@keywords\":\"keyword\",\"[A-Z][a-zA-Z0-9$]*\":\"type.identifier\",\"@default\":\"identifier\"}}]],escapedkeyword:[[/`/,{token:\"operator\",next:\"@pop\"}],[/./,\"identifier\"]],invokedmethod:[[/([.])(@identifier)/,{cases:{$2:[\"delimeter\",\"type.identifier\"],\"@default\":\"\"}}]]}};/*!---------------------------------------------------------------------------------------------\n *  Copyright (C) David Owens II, owensd.io. All rights reserved.\n *--------------------------------------------------------------------------------------------*/export{e as conf,o as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/B_i9asfM.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#%\\^\\&\\*\\(\\)\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{lineComment:\"#\",blockComment:[\"<#\",\"#>\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"',notIn:[\"string\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],folding:{markers:{start:new RegExp(\"^\\\\s*#region\\\\b\"),end:new RegExp(\"^\\\\s*#endregion\\\\b\")}}},n={defaultToken:\"\",ignoreCase:!0,tokenPostfix:\".ps1\",brackets:[{token:\"delimiter.curly\",open:\"{\",close:\"}\"},{token:\"delimiter.square\",open:\"[\",close:\"]\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"}],keywords:[\"begin\",\"break\",\"catch\",\"class\",\"continue\",\"data\",\"define\",\"do\",\"dynamicparam\",\"else\",\"elseif\",\"end\",\"exit\",\"filter\",\"finally\",\"for\",\"foreach\",\"from\",\"function\",\"if\",\"in\",\"param\",\"process\",\"return\",\"switch\",\"throw\",\"trap\",\"try\",\"until\",\"using\",\"var\",\"while\",\"workflow\",\"parallel\",\"sequence\",\"inlinescript\",\"configuration\"],helpKeywords:/SYNOPSIS|DESCRIPTION|PARAMETER|EXAMPLE|INPUTS|OUTPUTS|NOTES|LINK|COMPONENT|ROLE|FUNCTIONALITY|FORWARDHELPTARGETNAME|FORWARDHELPCATEGORY|REMOTEHELPRUNSPACE|EXTERNALHELP/,symbols:/[=><!~?&%|+\\-*\\/\\^;\\.,]+/,escapes:/`(?:[abfnrtv\\\\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/[a-zA-Z_][\\w-]*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"\"}}],[/[ \\t\\r\\n]+/,\"\"],[/^:\\w*/,\"metatag\"],[/\\$(\\{((global|local|private|script|using):)?[\\w]+\\}|((global|local|private|script|using):)?[\\w]+)/,\"variable\"],[/<#/,\"comment\",\"@comment\"],[/#.*$/,\"comment\"],[/[{}()\\[\\]]/,\"@brackets\"],[/@symbols/,\"delimiter\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,\"number.hex\"],[/\\d+?/,\"number\"],[/[;,.]/,\"delimiter\"],[/\\@\"/,\"string\",'@herestring.\"'],[/\\@'/,\"string\",\"@herestring.'\"],[/\"/,{cases:{\"@eos\":\"string\",\"@default\":{token:\"string\",next:'@string.\"'}}}],[/'/,{cases:{\"@eos\":\"string\",\"@default\":{token:\"string\",next:\"@string.'\"}}}]],string:[[/[^\"'\\$`]+/,{cases:{\"@eos\":{token:\"string\",next:\"@popall\"},\"@default\":\"string\"}}],[/@escapes/,{cases:{\"@eos\":{token:\"string.escape\",next:\"@popall\"},\"@default\":\"string.escape\"}}],[/`./,{cases:{\"@eos\":{token:\"string.escape.invalid\",next:\"@popall\"},\"@default\":\"string.escape.invalid\"}}],[/\\$[\\w]+$/,{cases:{'$S2==\"':{token:\"variable\",next:\"@popall\"},\"@default\":{token:\"string\",next:\"@popall\"}}}],[/\\$[\\w]+/,{cases:{'$S2==\"':\"variable\",\"@default\":\"string\"}}],[/[\"']/,{cases:{\"$#==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":{cases:{\"@eos\":{token:\"string\",next:\"@popall\"},\"@default\":\"string\"}}}}]],herestring:[[/^\\s*([\"'])@/,{cases:{\"$1==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":\"string\"}}],[/[^\\$`]+/,\"string\"],[/@escapes/,\"string.escape\"],[/`./,\"string.escape.invalid\"],[/\\$[\\w]+/,{cases:{'$S2==\"':\"variable\",\"@default\":\"string\"}}]],comment:[[/[^#\\.]+/,\"comment\"],[/#>/,\"comment\",\"@pop\"],[/(\\.)(@helpKeywords)(?!\\w)/,{token:\"comment.keyword.$2\"}],[/[\\.#]/,\"comment\"]]}};export{e as conf,n as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/B_m7g4N7.js",
    "content": "const t=Object.freeze(JSON.parse('{\"displayName\":\"TSV\",\"fileTypes\":[\"tsv\",\"tab\"],\"name\":\"tsv\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"rainbow1\"},\"2\":{\"name\":\"keyword.rainbow2\"},\"3\":{\"name\":\"entity.name.function.rainbow3\"},\"4\":{\"name\":\"comment.rainbow4\"},\"5\":{\"name\":\"string.rainbow5\"},\"6\":{\"name\":\"variable.parameter.rainbow6\"},\"7\":{\"name\":\"constant.numeric.rainbow7\"},\"8\":{\"name\":\"entity.name.type.rainbow8\"},\"9\":{\"name\":\"markup.bold.rainbow9\"},\"10\":{\"name\":\"invalid.rainbow10\"}},\"match\":\"([^\\\\\\\\t]*\\\\\\\\t?)([^\\\\\\\\t]*\\\\\\\\t?)([^\\\\\\\\t]*\\\\\\\\t?)([^\\\\\\\\t]*\\\\\\\\t?)([^\\\\\\\\t]*\\\\\\\\t?)([^\\\\\\\\t]*\\\\\\\\t?)([^\\\\\\\\t]*\\\\\\\\t?)([^\\\\\\\\t]*\\\\\\\\t?)([^\\\\\\\\t]*\\\\\\\\t?)([^\\\\\\\\t]*\\\\\\\\t?)\",\"name\":\"rainbowgroup\"}],\"scopeName\":\"text.tsv\"}')),a=[t];export{a as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BaOuBgqt.js",
    "content": "import{u as b,S as O}from\"./BKENxkRn.js\";import{aD as W,aE as K,aF as M,d as P,r as _,c as h,a6 as j,a as A,w,B as G,o as J,a0 as T,aG as q,C as I,j as g,i as n,f as u,x as v,D as E,F as Q,s as $,l as X,aa as Y,g as Z,G as ee,t as te,q as f,p as oe,J as ae,a4 as ne}from\"./CU_MfyYc.js\";import{_ as se}from\"./DK27pemE.js\";import{u as ie}from\"./Cwg39VG_.js\";function re(){const{$connectPyrightLsp:k}=W();function p(o,l,d){var c;const i=K.parse(`file:///${l}`);let a=M.getModel(i);return a?a.setValue(d.value):a=M.createModel(d.value,\"python\",i),(c=o.getModel())==null||c.dispose(),o.setModel(a),a.onDidChangeContent(()=>{d.value=a.getValue()}),a}return{onEditorLoaded:async(o,l,d,i,a)=>{const c=await b().getStrategy(l);return i.value=c,p(o,d,i),a&&o.updateOptions(a),k(o),c}}}const le=oe(se),de={class:\"grid items-start lg:grid-cols-5\"},ce={class:\"grid grid-cols-1 lg:col-span-4 bg-backdrop dark:bg-backdrop-dark\"},ue={class:\"h-10 flex items-center justify-between px-4\"},pe={class:\"font-semibold\"},ge={class:\"flex items-center select-none\"},me={class:\"overflow-hidden border-l border-t dark:border-gray-600\"},he=P({__name:\"[name]\",setup(k){const p=_(!1),s=h(()=>j().params.name),o=_(\"\"),l=_(\"\"),d=A(),i=h(()=>d.value===\"light\"?\"vs-light\":\"vs-dark\"),a=_(),{onEditorLoaded:c}=re();ie({title:`${s.value} - Jesse`}),w(i,t=>{a.value.$editor.updateOptions({theme:t})});async function B(t){const e=`strategies/${s.value}/__init__.py`,S=await c(t,s.value,e,o,{theme:i.value});l.value=S}G(async()=>{window.addEventListener(\"keydown\",L)}),J(()=>{window.removeEventListener(\"keydown\",L)});const C=h(()=>o.value!==l.value),r=h(()=>T().settings.editor),D={automaticLayout:!0,minimap:{enabled:r.value.minimap},fontSize:r.value.fontSize,padding:{top:16,bottom:16},cursorStyle:r.value.cursorStyle,cursorWidth:r.value.cursorWidth,lineHeight:r.value.lineHeight,cursorBlinking:r.value.cursorBlinking,renderLineHighlight:r.value.renderLineHighlight};w(r,t=>{a.value.$editor.updateOptions({minimap:{enabled:t.minimap},fontSize:t.fontSize,cursorStyle:t.cursorStyle,cursorWidth:t.cursorWidth,lineHeight:t.lineHeight,cursorBlinking:t.cursorBlinking,renderLineHighlight:t.renderLineHighlight})},{deep:!0});function z(){ae.copyToClipboard(o.value),$(\"success\",\"Code copied to clipboard\")}async function x(){if(C.value){if(o.value===\"\"){$(\"error\",\"Code cannot be empty\");return}await b().saveStrategy(s.value,o.value),l.value=o.value}}const H=q.debounce(async()=>{await x()},300);function L(t){t.key===\"s\"&&(navigator.platform.match(\"Mac\")?t.metaKey:t.ctrlKey)&&(t.preventDefault(),H())}function U(){a.value.$editor.trigger(\"source\",\"actions.find\",{})}function N(){b().deleteStrategy(s.value),ne().push(\"/strategies\")}return(t,e)=>{const S=O,m=te,R=le,V=X,F=Y;return Z(),I(Q,null,[g(\"section\",de,[n(S),g(\"div\",ce,[n(V,null,{default:u(()=>[g(\"div\",ue,[g(\"h2\",pe,ee(v(s)),1),g(\"div\",ge,[n(m,{size:\"xs\",icon:\"i-heroicons-trash\",color:\"gray\",variant:\"ghost\",class:\"ml-2\",onClick:e[0]||(e[0]=y=>p.value=!0)},{default:u(()=>e[3]||(e[3]=[f(\" Delete \")])),_:1}),n(m,{size:\"xs\",icon:\"i-heroicons-clipboard\",color:\"gray\",variant:\"ghost\",class:\"ml-2\",onClick:z},{default:u(()=>e[4]||(e[4]=[f(\" Copy \")])),_:1}),n(m,{size:\"xs\",icon:\"i-heroicons-magnifying-glass\",class:\"ml-2\",color:\"gray\",variant:\"ghost\",onClick:U},{default:u(()=>e[5]||(e[5]=[f(\" Find \")])),_:1}),n(m,{size:\"xs\",icon:\"i-heroicons-check\",class:\"ml-2\",color:\"teal\",variant:\"ghost\",disabled:!v(C),onClick:x},{default:u(()=>e[6]||(e[6]=[f(\" Save \")])),_:1},8,[\"disabled\"])])]),g(\"div\",me,[n(R,{ref_key:\"editorRef\",ref:a,modelValue:v(o),\"onUpdate:modelValue\":e[1]||(e[1]=y=>E(o)?o.value=y:null),lang:\"python\",options:D,style:{height:\"calc(100vh - 4rem - 4px - 2.5rem)\"},onLoad:B},{default:u(()=>e[7]||(e[7]=[f(\" Loading editor... \")])),_:1},8,[\"modelValue\"])])]),_:1})])]),n(F,{modelValue:v(p),\"onUpdate:modelValue\":e[2]||(e[2]=y=>E(p)?p.value=y:null),title:\"Delete strategy\",description:`Are you sure you want to delete the strategy '${v(s)}'?`,type:\"info\"},{default:u(()=>[n(m,{variant:\"solid\",color:\"red\",block:\"\",class:\"sm:w-auto\",label:\"Delete\",onClick:N})]),_:1},8,[\"modelValue\",\"description\"])],64)}}});export{he as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BacktestTabs.CTcEQ1jl.css",
    "content": ".group:hover .tab-text-fade-hover[data-v-17ec90cb],.tab-text-fade-active[data-v-17ec90cb]{mask-image:linear-gradient(90deg,#000 calc(100% - 32px),transparent);-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 32px),transparent)}\n"
  },
  {
    "path": "jesse/static/_nuxt/Bad53t6V.js",
    "content": "import{d as R,r as g,a0 as T,e as b,g as _,at as ae,f as n,j as s,i as l,G as y,t as z,x as t,au as te,C as D,E as A,D as B,aa as G,a8 as F,h as Y,s as c,ah as W,c as N,av as se,q as S,aw as le,ab as oe,k as ne,F as re,O as ie,ax as de,_ as ue,z as pe,ac as ce}from\"./CU_MfyYc.js\";import{_ as me}from\"./CqvT4tPC.js\";import{_ as ye}from\"./D35nYK_C.js\";import{S as fe}from\"./CRzUWN8h.js\";import{u as _e}from\"./Cwg39VG_.js\";const ve={class:\"flex justify-between items-center mb-2\"},xe={class:\"text-xl font-bold\"},ge={class:\"text-sm text-gray-500 dark:text-gray-400\"},he={class:\"mt-4\"},ke={class:\"flex justify-between\"},we={class:\"font-medium\"},be={class:\"flex justify-between\"},Ae={class:\"font-medium\"},Pe={key:0},Ke={class:\"flex justify-between\"},Ve={class:\"flex justify-between\"},Ie={class:\"flex justify-between\"},Ce=R({__name:\"ExchangeApiKey\",props:{apiKey:{}},setup(H){const P=H,f=g(!1),a=g(!1),h=T();async function K(){a.value=!0;const{data:i,error:r}=await F(\"/exchange/api-keys/delete\",{id:P.apiKey.id},!0);if(a.value=!1,r.value&&r.value.statusCode!==200){Y(r);return}f.value=!1,c(\"success\",\"API Key deleted successfully\"),h.exchangeApiKeys=h.exchangeApiKeys.filter(k=>k.id!==P.apiKey.id)}return(i,r)=>{const k=z,x=G,V=ae;return _(),b(V,{class:\"mb-4 p-4 bg-white\"},{default:n(()=>[s(\"div\",ve,[s(\"h2\",xe,y(i.apiKey.name)+\" • \"+y(i.apiKey.exchange),1),l(k,{icon:\"i-heroicons-trash\",color:\"red\",label:\"Delete\",variant:\"link\",onClick:r[0]||(r[0]=I=>f.value=!0)})]),s(\"p\",ge,y(t(te)(i.apiKey.created_at).value),1),s(\"div\",he,[s(\"div\",ke,[s(\"span\",we,y(i.apiKey.exchange.includes(\"Hyperliquid\")?\"Wallet Address:\":\"API Key:\"),1),s(\"span\",null,y(i.apiKey.api_key),1)]),s(\"div\",be,[s(\"span\",Ae,y(i.apiKey.exchange.includes(\"Hyperliquid\")?\"Private Key:\":\"API Secret:\"),1),s(\"span\",null,y(i.apiKey.api_secret),1)]),i.apiKey.exchange.startsWith(\"Apex\")?(_(),D(\"div\",Pe,[s(\"div\",Ke,[r[2]||(r[2]=s(\"span\",{class:\"font-medium\"},\"API Passphrase:\",-1)),s(\"span\",null,y(i.apiKey.api_passphrase),1)]),s(\"div\",Ve,[r[3]||(r[3]=s(\"span\",{class:\"font-medium\"},\"Wallet Address:\",-1)),s(\"span\",null,y(i.apiKey.wallet_address),1)]),s(\"div\",Ie,[r[4]||(r[4]=s(\"span\",{class:\"font-medium\"},\"Omni/Stark Key:\",-1)),s(\"span\",null,y(i.apiKey.stark_private_key),1)])])):A(\"\",!0)]),l(x,{modelValue:t(f),\"onUpdate:modelValue\":r[1]||(r[1]=I=>B(f)?f.value=I:null),title:\"Delete API Key\",description:`Are you sure you want to delete '${i.apiKey.name}' API key?`,type:\"info\"},{default:n(()=>[l(k,{variant:\"solid\",color:\"red\",block:\"\",class:\"sm:w-auto\",label:\"Delete\",loading:t(a),onClick:K},null,8,[\"loading\"])]),_:1},8,[\"modelValue\",\"description\"])]),_:1})}}}),Se={class:\"flex justify-between items-start mb-4\"},Ue={class:\"flex gap-2 mt-1\"},Ee={class:\"flex justify-end\"},$e={class:\"mt-8\"},qe={key:0},je={class:\"flex items-center gap-2\"},Fe={class:\"space-y-4\"},Me={class:\"border-2 border-dashed border-gray-300 dark:border-gray-700 rounded-lg p-6 text-center hover:border-primary-400 dark:hover:border-primary-600 transition-colors\"},Ne={for:\"csv-file\",class:\"cursor-pointer flex flex-col items-center gap-3\"},De={class:\"text-sm font-medium text-gray-700 dark:text-gray-300\"},Be={class:\"flex justify-end gap-3\"},Te=R({__name:\"exchange-api-keys\",setup(H){_e({title:\"Exchange API Keys\"});const P=g(!1),f=T(),a=W({exchange:f.liveTradingExchangeNames[0],name:\"\",apiKey:\"\",apiSecret:\"\",apiPassphrase:\"\",walletAddress:\"\",stark_private_key:\"\"}),h=N(()=>f.exchangeApiKeys),K=N(()=>a.exchange.startsWith(\"Apex\")),i=g(!1),r=g(!1),k=g(!1),x=g(null),V=g(!1),I=g(\"\"),C=W({password:\"\"}),L=N(()=>a.exchange.startsWith(\"Apex\")?a.exchange&&a.apiKey&&a.apiSecret&&a.apiPassphrase&&a.walletAddress&&a.stark_private_key:a.exchange&&a.apiKey&&a.apiSecret);async function J(){if(!L.value){c(\"error\",\"Please fill in all required fields\");return}P.value=!0;const m={name:a.name,exchange:a.exchange,api_key:a.apiKey,api_secret:a.apiSecret};K.value&&(m.additional_fields={api_passphrase:a.apiPassphrase,wallet_address:a.walletAddress,stark_private_key:a.stark_private_key});const{data:e,error:d}=await F(\"/exchange/api-keys/store\",m,!0);P.value=!1,d.value&&d.value.statusCode!==200&&Y(d);const u=e.value;u.status===\"success\"?(c(\"success\",\"Successfully added API key\"),h.value.push(u.data),Z()):u.status===\"error\"&&c(\"error\",u.message)}async function O(){var m,e,d,u;if(!C.password){c(\"error\",\"Please fill password!\");return}V.value=!0;try{const{data:U,error:p}=await F(\"/download/download-api-keys\",{password:C.password},!0);if(p!=null&&p.value){p.value.statusCode===401?c(\"error\",\"Incorrect password\"):c(\"error\",((m=p.value.data)==null?void 0:m.message)||\"Failed to download API keys\"),V.value=!1;return}const v=(u=(d=(e=p.value)==null?void 0:e.data)==null?void 0:d.headers)==null?void 0:u.get(\"Content-Disposition\");let q=\"api-keys.csv\";if(v){const E=v.match(/filename=\"?(.+)\"?/i);E&&E[1]&&(q=decodeURIComponent(E[1].replace(/['\"]/g,\"\")))}const M=new Blob([U.value],{type:\"text/csv\"}),j=window.URL.createObjectURL(M),w=document.createElement(\"a\");w.href=j,w.download=q,document.body.appendChild(w),w.click(),window.URL.revokeObjectURL(j),document.body.removeChild(w),c(\"success\",\"API keys downloaded successfully\"),i.value=!1,C.password=\"\"}catch(U){c(\"error\",`Failed to download API keys: ${U.message}`)}finally{V.value=!1}}async function Q(m){var d;const e=(d=m.target.files)==null?void 0:d[0];e&&e.type===\"text/csv\"?(I.value=e.name,x.value=await e.text()):alert(\"Please select a valid CSV file\")}async function X(){if(x.value){k.value=!0;try{const{data:m,error:e}=await F(\"/download/import-api-keys\",{content:x.value},!0);if(e.value){c(\"error\",e.value);return}f.fetchExchangeApiKeys();const d=m.value;if(d.success){c(\"success\",`${d.imported_count} API keys imported successfully`),r.value=!1,$();return}c(\"error\",d.error)}catch(m){c(\"error\",m)}finally{k.value=!1}}}function $(){x.value=null,I.value=\"\"}function Z(){a.exchange=f.liveTradingExchangeNames[0],a.name=\"\",a.apiKey=\"\",a.apiSecret=\"\",a.apiPassphrase=\"\",a.walletAddress=\"\",a.stark_private_key=\"\"}return(m,e)=>{const d=se,u=z,U=me,p=oe,v=ne,q=le,M=ye,j=G,w=ce,E=pe,ee=ue;return _(),b(fe,null,{default:n(()=>[s(\"div\",Se,[l(d,null,{default:n(()=>e[13]||(e[13]=[S(\" Exchange API Keys \")])),_:1}),s(\"div\",Ue,[l(u,{icon:\"i-heroicons-arrow-down-tray\",color:\"white\",size:\"sm\",label:\"Export\",onClick:e[0]||(e[0]=o=>i.value=!0)}),l(u,{icon:\"i-heroicons-arrow-up-tray\",color:\"white\",size:\"sm\",label:\"Import\",onClick:e[1]||(e[1]=o=>r.value=!0)})])]),e[20]||(e[20]=s(\"p\",null,[S(\" Here you can add your API keys for various exchanges. API keys are used to connect your account to the exchange and allow the bot to trade on your behalf. \"),s(\"br\"),s(\"br\"),S(\"Please note that for security reasons, once created, API keys cannot be modified or seen again. \")],-1)),e[21]||(e[21]=s(\"br\",null,null,-1)),l(q,{state:t(a),class:\"space-y-4\",onSubmit:J},{default:n(()=>[l(p,{label:\"Exchange name:\",required:\"\"},{default:n(()=>[l(U,{modelValue:t(a).exchange,\"onUpdate:modelValue\":e[2]||(e[2]=o=>t(a).exchange=o),searchable:\"\",options:t(f).liveTradingExchangeNames},null,8,[\"modelValue\",\"options\"])]),_:1}),l(p,{label:\"Name:\",required:\"\"},{default:n(()=>[l(v,{modelValue:t(a).name,\"onUpdate:modelValue\":e[3]||(e[3]=o=>t(a).name=o),type:\"text\",placeholder:\"Give a name to this API key (e.g. subaccount1)\"},null,8,[\"modelValue\"])]),_:1}),l(p,{label:t(a).exchange.includes(\"Hyperliquid\")?\"Wallet Address\":\"API Key:\",required:\"\"},{default:n(()=>[l(v,{modelValue:t(a).apiKey,\"onUpdate:modelValue\":e[4]||(e[4]=o=>t(a).apiKey=o),placeholder:t(a).exchange.includes(\"Hyperliquid\")?\"Enter your wallet address here (0x123...)\":\"Enter your API key here\",type:\"text\"},null,8,[\"modelValue\",\"placeholder\"])]),_:1},8,[\"label\"]),l(p,{label:t(a).exchange.includes(\"Hyperliquid\")?\"Private Key\":\"API Secret:\",required:\"\"},{default:n(()=>[l(v,{modelValue:t(a).apiSecret,\"onUpdate:modelValue\":e[5]||(e[5]=o=>t(a).apiSecret=o),placeholder:t(a).exchange.includes(\"Hyperliquid\")?\"Enter your private key here\":\"Enter your API secret here\",type:\"text\"},null,8,[\"modelValue\",\"placeholder\"])]),_:1},8,[\"label\"]),t(K)?(_(),b(p,{key:0,label:\"API Passphrase:\",required:\"\"},{default:n(()=>[l(v,{modelValue:t(a).apiPassphrase,\"onUpdate:modelValue\":e[6]||(e[6]=o=>t(a).apiPassphrase=o),placeholder:\"Enter your API passphrase here\",type:\"text\"},null,8,[\"modelValue\"])]),_:1})):A(\"\",!0),t(K)?(_(),b(p,{key:1,label:\"Wallet Address:\",required:\"\"},{default:n(()=>[l(v,{modelValue:t(a).walletAddress,\"onUpdate:modelValue\":e[7]||(e[7]=o=>t(a).walletAddress=o),placeholder:\"Enter your wallet address here\",type:\"text\"},null,8,[\"modelValue\"])]),_:1})):A(\"\",!0),t(K)?(_(),b(p,{key:2,label:\"Omni/Stark Key:\",required:\"\"},{default:n(()=>[l(v,{modelValue:t(a).stark_private_key,\"onUpdate:modelValue\":e[8]||(e[8]=o=>t(a).stark_private_key=o),placeholder:\"Enter your Omni key (for Apex Omni) or Stark key (for Apex Pro) here\",type:\"text\"},null,8,[\"modelValue\"])]),_:1})):A(\"\",!0),s(\"div\",Ee,[l(u,{type:\"submit\",icon:\"i-i-heroicons-x-mark-plus\",class:\"w-48 flex justify-center\",label:\"Create\",loading:t(P),disabled:!t(L)},null,8,[\"loading\",\"disabled\"])])]),_:1},8,[\"state\"]),s(\"div\",$e,[l(d,null,{default:n(()=>[e[14]||(e[14]=S(\" Previously Added \")),t(h).length?(_(),D(\"span\",qe,\"(\"+y(t(h).length)+\")\",1)):A(\"\",!0)]),_:1}),t(h).length?A(\"\",!0):(_(),b(M,{key:0},{default:n(()=>e[15]||(e[15]=[S(\" No API keys added yet \")])),_:1})),(_(!0),D(re,null,ie(t(h),o=>(_(),b(Ce,{key:o.id,\"api-key\":o},null,8,[\"api-key\"]))),128))]),l(j,{modelValue:t(i),\"onUpdate:modelValue\":e[10]||(e[10]=o=>B(i)?i.value=o:null),title:\"Export API Keys\",type:\"warning\",description:\"You are about to export all your exchange API keys to a CSV file. This file will contain sensitive credentials in plain text. Please enter your password to confirm.\"},{fields:n(()=>[l(p,{label:\"Password\",required:\"\",class:\"mt-2\"},{default:n(()=>[l(v,{modelValue:t(C).password,\"onUpdate:modelValue\":e[9]||(e[9]=o=>t(C).password=o),type:\"password\",placeholder:\"Enter your password\",class:\"w-full\",ui:{icon:{trailing:{color:\"text-gray-500 dark:text-gray-400\"}}},onKeyup:de(O,[\"enter\"])},null,8,[\"modelValue\"])]),_:1})]),default:n(()=>[l(u,{variant:\"solid\",color:\"primary\",block:\"\",class:\"sm:w-auto\",label:\"Export API Keys\",loading:t(V),disabled:!t(C).password,onClick:O},null,8,[\"loading\",\"disabled\"])]),_:1},8,[\"modelValue\"]),l(ee,{modelValue:t(r),\"onUpdate:modelValue\":e[12]||(e[12]=o=>B(r)?r.value=o:null),onClose:$},{default:n(()=>[l(E,null,{header:n(()=>[s(\"div\",je,[l(w,{name:\"i-heroicons-arrow-up-tray\",class:\"w-5 h-5\"}),e[16]||(e[16]=s(\"h3\",{class:\"text-lg font-semibold\"},\"Import API Keys from CSV\",-1))])]),footer:n(()=>[s(\"div\",Be,[l(u,{color:\"gray\",variant:\"ghost\",label:\"Cancel\",onClick:e[11]||(e[11]=o=>{r.value=!1,$()})}),l(u,{icon:\"i-heroicons-arrow-up-tray\",color:\"primary\",label:\"Import API Keys\",loading:t(k),disabled:!t(x),onClick:X},null,8,[\"loading\",\"disabled\"])])]),default:n(()=>[s(\"div\",Fe,[e[19]||(e[19]=s(\"p\",{class:\"text-sm text-gray-600 dark:text-gray-400\"},\" Select a CSV file containing your API keys. \",-1)),s(\"div\",Me,[s(\"input\",{id:\"csv-file\",type:\"file\",class:\"hidden\",accept:\".csv\",onChange:Q},null,32),s(\"label\",Ne,[l(w,{name:\"i-heroicons-document-arrow-up\",class:\"w-12 h-12 text-gray-400\"}),s(\"div\",null,[s(\"p\",De,y(t(x)?t(I):\"Click to select a CSV file\"),1),e[17]||(e[17]=s(\"p\",{class:\"text-xs text-gray-500 dark:text-gray-400 mt-1\"},\" or drag and drop \",-1))])]),t(x)?(_(),b(u,{key:0,icon:\"i-heroicons-x-mark\",color:\"red\",variant:\"soft\",size:\"xs\",class:\"mt-3\",onClick:$},{default:n(()=>e[18]||(e[18]=[S(\" Clear file \")])),_:1})):A(\"\",!0)])])]),_:1})]),_:1},8,[\"modelValue\"])]),_:1})}}});export{Te as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BbSNqyBO.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Terraform\",\"fileTypes\":[\"tf\",\"tfvars\"],\"name\":\"terraform\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#attribute_definition\"},{\"include\":\"#block\"},{\"include\":\"#expressions\"}],\"repository\":{\"attribute_access\":{\"begin\":\"\\\\\\\\.(?!\\\\\\\\*)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.accessor.hcl\"}},\"comment\":\"Matches traversal attribute access such as .attr\",\"end\":\"[[:alpha:]][\\\\\\\\w-]*|\\\\\\\\d*\",\"endCaptures\":{\"0\":{\"patterns\":[{\"comment\":\"Attribute name\",\"match\":\"(?!null|false|true)[[:alpha:]][\\\\\\\\w-]*\",\"name\":\"variable.other.member.hcl\"},{\"comment\":\"Optional attribute index\",\"match\":\"\\\\\\\\d+\",\"name\":\"constant.numeric.integer.hcl\"}]}}},\"attribute_definition\":{\"captures\":{\"1\":{\"name\":\"punctuation.section.parens.begin.hcl\"},\"2\":{\"name\":\"variable.other.readwrite.hcl\"},\"3\":{\"name\":\"punctuation.section.parens.end.hcl\"},\"4\":{\"name\":\"keyword.operator.assignment.hcl\"}},\"comment\":\"Identifier \\\\\"=\\\\\" with optional parens\",\"match\":\"(\\\\\\\\()?(\\\\\\\\b(?!null\\\\\\\\b|false\\\\\\\\b|true\\\\\\\\b)[[:alpha:]][[:alnum:]_-]*)(\\\\\\\\))?\\\\\\\\s*(\\\\\\\\=(?!\\\\\\\\=|\\\\\\\\>))\\\\\\\\s*\",\"name\":\"variable.declaration.hcl\"},\"attribute_splat\":{\"begin\":\"\\\\\\\\.\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.accessor.hcl\"}},\"comment\":\"Legacy attribute-only splat\",\"end\":\"\\\\\\\\*\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.splat.hcl\"}}},\"block\":{\"begin\":\"([\\\\\\\\w][\\\\\\\\-\\\\\\\\w]*)([\\\\\\\\s\\\\\\\\\\\\\"\\\\\\\\-\\\\\\\\w]*)(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"comment\":\"Known block type\",\"match\":\"\\\\\\\\bdata|check|import|locals|module|output|provider|resource|terraform|variable\\\\\\\\b\",\"name\":\"entity.name.type.terraform\"},{\"comment\":\"Unknown block type\",\"match\":\"\\\\\\\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\\\\\\\b\",\"name\":\"entity.name.type.hcl\"}]},\"2\":{\"patterns\":[{\"comment\":\"Block label\",\"match\":\"[\\\\\\\\\\\\\"\\\\\\\\-\\\\\\\\w]+\",\"name\":\"variable.other.enummember.hcl\"}]},\"3\":{\"name\":\"punctuation.section.block.begin.hcl\"},\"5\":{\"name\":\"punctuation.section.block.begin.hcl\"}},\"comment\":\"This will match Terraform blocks like `resource \\\\\"aws_instance\\\\\" \\\\\"web\\\\\" {` or `module {`\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.hcl\"}},\"name\":\"meta.block.hcl\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#attribute_definition\"},{\"include\":\"#block\"},{\"include\":\"#expressions\"}]},\"block_inline_comments\":{\"begin\":\"/\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.hcl\"}},\"comment\":\"Inline comments start with the /* sequence and end with the */ sequence, and may have any characters within except the ending sequence. An inline comment is considered equivalent to a whitespace sequence\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.hcl\"},\"brackets\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.brackets.begin.hcl\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.brackets.end.hcl\"}},\"patterns\":[{\"comment\":\"Splat operator\",\"match\":\"\\\\\\\\*\",\"name\":\"keyword.operator.splat.hcl\"},{\"include\":\"#comma\"},{\"include\":\"#comments\"},{\"include\":\"#inline_for_expression\"},{\"include\":\"#inline_if_expression\"},{\"include\":\"#expressions\"},{\"include\":\"#local_identifiers\"}]},\"char_escapes\":{\"comment\":\"Character Escapes\",\"match\":\"\\\\\\\\\\\\\\\\[nrt\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\u(\\\\\\\\h{8}|\\\\\\\\h{4})\",\"name\":\"constant.character.escape.hcl\"},\"comma\":{\"comment\":\"Commas - used in certain expressions\",\"match\":\"\\\\\\\\,\",\"name\":\"punctuation.separator.hcl\"},\"comments\":{\"patterns\":[{\"include\":\"#hash_line_comments\"},{\"include\":\"#double_slash_line_comments\"},{\"include\":\"#block_inline_comments\"}]},\"double_slash_line_comments\":{\"begin\":\"//\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.hcl\"}},\"comment\":\"Line comments start with // sequence and end with the next newline sequence. A line comment is considered equivalent to a newline sequence\",\"end\":\"$\\\\\\\\n?\",\"name\":\"comment.line.double-slash.hcl\"},\"expressions\":{\"patterns\":[{\"include\":\"#literal_values\"},{\"include\":\"#operators\"},{\"include\":\"#tuple_for_expression\"},{\"include\":\"#object_for_expression\"},{\"include\":\"#brackets\"},{\"include\":\"#objects\"},{\"include\":\"#attribute_access\"},{\"include\":\"#attribute_splat\"},{\"include\":\"#functions\"},{\"include\":\"#parens\"}]},\"for_expression_body\":{\"patterns\":[{\"comment\":\"in keyword\",\"match\":\"\\\\\\\\bin\\\\\\\\b\",\"name\":\"keyword.operator.word.hcl\"},{\"comment\":\"if keyword\",\"match\":\"\\\\\\\\bif\\\\\\\\b\",\"name\":\"keyword.control.conditional.hcl\"},{\"match\":\"\\\\\\\\:\",\"name\":\"keyword.operator.hcl\"},{\"include\":\"#expressions\"},{\"include\":\"#comments\"},{\"include\":\"#comma\"},{\"include\":\"#local_identifiers\"}]},\"functions\":{\"begin\":\"([:\\\\\\\\-\\\\\\\\w]+)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"match\":\"\\\\\\\\b(core::)?(abs|abspath|alltrue|anytrue|base64decode|base64encode|base64gzip|base64sha256|base64sha512|basename|bcrypt|can|ceil|chomp|chunklist|cidrhost|cidrnetmask|cidrsubnet|cidrsubnets|coalesce|coalescelist|compact|concat|contains|csvdecode|dirname|distinct|element|endswith|file|filebase64|filebase64sha256|filebase64sha512|fileexists|filemd5|fileset|filesha1|filesha256|filesha512|flatten|floor|format|formatdate|formatlist|indent|index|join|jsondecode|jsonencode|keys|length|log|lookup|lower|matchkeys|max|md5|merge|min|nonsensitive|one|parseint|pathexpand|plantimestamp|pow|range|regex|regexall|replace|reverse|rsadecrypt|sensitive|setintersection|setproduct|setsubtract|setunion|sha1|sha256|sha512|signum|slice|sort|split|startswith|strcontains|strrev|substr|sum|templatefile|textdecodebase64|textencodebase64|timeadd|timecmp|timestamp|title|tobool|tolist|tomap|tonumber|toset|tostring|transpose|trim|trimprefix|trimspace|trimsuffix|try|upper|urlencode|uuid|uuidv5|values|yamldecode|yamlencode|zipmap)\\\\\\\\b\",\"name\":\"support.function.builtin.terraform\"},{\"match\":\"\\\\\\\\bprovider::[[:alpha:]][\\\\\\\\w_-]*::[[:alpha:]][\\\\\\\\w_-]*\\\\\\\\b\",\"name\":\"support.function.provider.terraform\"}]},\"2\":{\"name\":\"punctuation.section.parens.begin.hcl\"}},\"comment\":\"Built-in function calls\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.hcl\"}},\"name\":\"meta.function-call.hcl\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#expressions\"},{\"include\":\"#comma\"}]},\"hash_line_comments\":{\"begin\":\"#\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.hcl\"}},\"comment\":\"Line comments start with # sequence and end with the next newline sequence. A line comment is considered equivalent to a newline sequence\",\"end\":\"$\\\\\\\\n?\",\"name\":\"comment.line.number-sign.hcl\"},\"hcl_type_keywords\":{\"comment\":\"Type keywords known to HCL.\",\"match\":\"\\\\\\\\b(any|string|number|bool|list|set|map|tuple|object)\\\\\\\\b\",\"name\":\"storage.type.hcl\"},\"heredoc\":{\"begin\":\"(\\\\\\\\<\\\\\\\\<\\\\\\\\-?)\\\\\\\\s*(\\\\\\\\w+)\\\\\\\\s*$\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.heredoc.hcl\"},\"2\":{\"name\":\"keyword.control.heredoc.hcl\"}},\"comment\":\"String Heredoc\",\"end\":\"^\\\\\\\\s*\\\\\\\\2\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.heredoc.hcl\"}},\"name\":\"string.unquoted.heredoc.hcl\",\"patterns\":[{\"include\":\"#string_interpolation\"}]},\"inline_for_expression\":{\"captures\":{\"1\":{\"name\":\"keyword.control.hcl\"},\"2\":{\"patterns\":[{\"match\":\"\\\\\\\\=\\\\\\\\>\",\"name\":\"storage.type.function.hcl\"},{\"include\":\"#for_expression_body\"}]}},\"match\":\"(for)\\\\\\\\b(.*)\\\\\\\\n\"},\"inline_if_expression\":{\"begin\":\"(if)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.conditional.hcl\"}},\"end\":\"\\\\\\\\n\",\"patterns\":[{\"include\":\"#expressions\"},{\"include\":\"#comments\"},{\"include\":\"#comma\"},{\"include\":\"#local_identifiers\"}]},\"language_constants\":{\"comment\":\"Language Constants\",\"match\":\"\\\\\\\\b(true|false|null)\\\\\\\\b\",\"name\":\"constant.language.hcl\"},\"literal_values\":{\"patterns\":[{\"include\":\"#numeric_literals\"},{\"include\":\"#language_constants\"},{\"include\":\"#string_literals\"},{\"include\":\"#heredoc\"},{\"include\":\"#hcl_type_keywords\"},{\"include\":\"#named_value_references\"}]},\"local_identifiers\":{\"comment\":\"Local Identifiers\",\"match\":\"\\\\\\\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\\\\\\\b\",\"name\":\"variable.other.readwrite.hcl\"},\"named_value_references\":{\"comment\":\"Constant values available only to Terraform.\",\"match\":\"\\\\\\\\b(var|local|module|data|path|terraform)\\\\\\\\b\",\"name\":\"variable.other.readwrite.terraform\"},\"numeric_literals\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.exponent.hcl\"}},\"comment\":\"Integer, no fraction, optional exponent\",\"match\":\"\\\\\\\\b\\\\\\\\d+([Ee][+-]?)\\\\\\\\d+\\\\\\\\b\",\"name\":\"constant.numeric.float.hcl\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.decimal.hcl\"},\"2\":{\"name\":\"punctuation.separator.exponent.hcl\"}},\"comment\":\"Integer, fraction, optional exponent\",\"match\":\"\\\\\\\\b\\\\\\\\d+(\\\\\\\\.)\\\\\\\\d+(?:([Ee][+-]?)\\\\\\\\d+)?\\\\\\\\b\",\"name\":\"constant.numeric.float.hcl\"},{\"comment\":\"Integers\",\"match\":\"\\\\\\\\b\\\\\\\\d+\\\\\\\\b\",\"name\":\"constant.numeric.integer.hcl\"}]},\"object_for_expression\":{\"begin\":\"(\\\\\\\\{)\\\\\\\\s?(for)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.braces.begin.hcl\"},\"2\":{\"name\":\"keyword.control.hcl\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.braces.end.hcl\"}},\"patterns\":[{\"match\":\"\\\\\\\\=\\\\\\\\>\",\"name\":\"storage.type.function.hcl\"},{\"include\":\"#for_expression_body\"}]},\"object_key_values\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#literal_values\"},{\"include\":\"#operators\"},{\"include\":\"#tuple_for_expression\"},{\"include\":\"#object_for_expression\"},{\"include\":\"#heredoc\"},{\"include\":\"#functions\"}]},\"objects\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.braces.begin.hcl\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.braces.end.hcl\"}},\"name\":\"meta.braces.hcl\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#objects\"},{\"include\":\"#inline_for_expression\"},{\"include\":\"#inline_if_expression\"},{\"captures\":{\"1\":{\"name\":\"meta.mapping.key.hcl variable.other.readwrite.hcl\"},\"2\":{\"name\":\"keyword.operator.assignment.hcl\",\"patterns\":[{\"match\":\"\\\\\\\\=\\\\\\\\>\",\"name\":\"storage.type.function.hcl\"}]}},\"comment\":\"Literal, named object key\",\"match\":\"\\\\\\\\b((?!null|false|true)[[:alpha:]][[:alnum:]_-]*)\\\\\\\\s*(\\\\\\\\=\\\\\\\\>?)\\\\\\\\s*\"},{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#named_value_references\"}]},\"1\":{\"name\":\"meta.mapping.key.hcl string.quoted.double.hcl\"},\"2\":{\"name\":\"punctuation.definition.string.begin.hcl\"},\"3\":{\"name\":\"punctuation.definition.string.end.hcl\"},\"4\":{\"name\":\"keyword.operator.hcl\"}},\"comment\":\"String object key\",\"match\":\"\\\\\\\\b((\\\\\").*(\\\\\"))\\\\\\\\s*(\\\\\\\\=)\\\\\\\\s*\"},{\"begin\":\"^\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.hcl\"}},\"comment\":\"Computed object key (any expression between parens)\",\"end\":\"(\\\\\\\\))\\\\\\\\s*(=|:)\\\\\\\\s*\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.parens.end.hcl\"},\"2\":{\"name\":\"keyword.operator.hcl\"}},\"name\":\"meta.mapping.key.hcl\",\"patterns\":[{\"include\":\"#named_value_references\"},{\"include\":\"#attribute_access\"}]},{\"include\":\"#object_key_values\"}]},\"operators\":{\"patterns\":[{\"match\":\"\\\\\\\\>\\\\\\\\=\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\\\\\<\\\\\\\\=\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\\\\\=\\\\\\\\=\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\\\\\!\\\\\\\\=\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\\\\\+\",\"name\":\"keyword.operator.arithmetic.hcl\"},{\"match\":\"\\\\\\\\-\",\"name\":\"keyword.operator.arithmetic.hcl\"},{\"match\":\"\\\\\\\\*\",\"name\":\"keyword.operator.arithmetic.hcl\"},{\"match\":\"\\\\\\\\/\",\"name\":\"keyword.operator.arithmetic.hcl\"},{\"match\":\"\\\\\\\\%\",\"name\":\"keyword.operator.arithmetic.hcl\"},{\"match\":\"\\\\\\\\&\\\\\\\\&\",\"name\":\"keyword.operator.logical.hcl\"},{\"match\":\"\\\\\\\\|\\\\\\\\|\",\"name\":\"keyword.operator.logical.hcl\"},{\"match\":\"\\\\\\\\!\",\"name\":\"keyword.operator.logical.hcl\"},{\"match\":\"\\\\\\\\>\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\\\\\<\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\\\\\?\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\\\\\:\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\\\\\=\\\\\\\\>\",\"name\":\"keyword.operator.hcl\"}]},\"parens\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.hcl\"}},\"comment\":\"Parens - matched *after* function syntax\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.hcl\"}},\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#expressions\"}]},\"string_interpolation\":{\"begin\":\"(?<![%$])([%$]{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.interpolation.begin.hcl\"}},\"comment\":\"String interpolation\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"keyword.other.interpolation.end.hcl\"}},\"name\":\"meta.interpolation.hcl\",\"patterns\":[{\"comment\":\"Trim left whitespace\",\"match\":\"\\\\\\\\~\\\\\\\\s\",\"name\":\"keyword.operator.template.left.trim.hcl\"},{\"comment\":\"Trim right whitespace\",\"match\":\"\\\\\\\\s\\\\\\\\~\",\"name\":\"keyword.operator.template.right.trim.hcl\"},{\"comment\":\"if/else/endif and for/in/endfor directives\",\"match\":\"\\\\\\\\b(if|else|endif|for|in|endfor)\\\\\\\\b\",\"name\":\"keyword.control.hcl\"},{\"include\":\"#expressions\"},{\"include\":\"#local_identifiers\"}]},\"string_literals\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.hcl\"}},\"comment\":\"Strings\",\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.hcl\"}},\"name\":\"string.quoted.double.hcl\",\"patterns\":[{\"include\":\"#string_interpolation\"},{\"include\":\"#char_escapes\"}]},\"tuple_for_expression\":{\"begin\":\"(\\\\\\\\[)\\\\\\\\s?(for)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.brackets.begin.hcl\"},\"2\":{\"name\":\"keyword.control.hcl\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.brackets.end.hcl\"}},\"patterns\":[{\"include\":\"#for_expression_body\"}]}},\"scopeName\":\"source.hcl.terraform\",\"aliases\":[\"tf\",\"tfvars\"]}')),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Bc5xkKR1.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"--\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},_={defaultToken:\"\",tokenPostfix:\".sql\",ignoreCase:!0,brackets:[{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],keywords:[\"AES128\",\"AES256\",\"ALL\",\"ALLOWOVERWRITE\",\"ANALYSE\",\"ANALYZE\",\"AND\",\"ANY\",\"ARRAY\",\"AS\",\"ASC\",\"AUTHORIZATION\",\"AZ64\",\"BACKUP\",\"BETWEEN\",\"BINARY\",\"BLANKSASNULL\",\"BOTH\",\"BYTEDICT\",\"BZIP2\",\"CASE\",\"CAST\",\"CHECK\",\"COLLATE\",\"COLUMN\",\"CONSTRAINT\",\"CREATE\",\"CREDENTIALS\",\"CROSS\",\"CURRENT_DATE\",\"CURRENT_TIME\",\"CURRENT_TIMESTAMP\",\"CURRENT_USER\",\"CURRENT_USER_ID\",\"DEFAULT\",\"DEFERRABLE\",\"DEFLATE\",\"DEFRAG\",\"DELTA\",\"DELTA32K\",\"DESC\",\"DISABLE\",\"DISTINCT\",\"DO\",\"ELSE\",\"EMPTYASNULL\",\"ENABLE\",\"ENCODE\",\"ENCRYPT\",\"ENCRYPTION\",\"END\",\"EXCEPT\",\"EXPLICIT\",\"FALSE\",\"FOR\",\"FOREIGN\",\"FREEZE\",\"FROM\",\"FULL\",\"GLOBALDICT256\",\"GLOBALDICT64K\",\"GRANT\",\"GROUP\",\"GZIP\",\"HAVING\",\"IDENTITY\",\"IGNORE\",\"ILIKE\",\"IN\",\"INITIALLY\",\"INNER\",\"INTERSECT\",\"INTO\",\"IS\",\"ISNULL\",\"JOIN\",\"LANGUAGE\",\"LEADING\",\"LEFT\",\"LIKE\",\"LIMIT\",\"LOCALTIME\",\"LOCALTIMESTAMP\",\"LUN\",\"LUNS\",\"LZO\",\"LZOP\",\"MINUS\",\"MOSTLY16\",\"MOSTLY32\",\"MOSTLY8\",\"NATURAL\",\"NEW\",\"NOT\",\"NOTNULL\",\"NULL\",\"NULLS\",\"OFF\",\"OFFLINE\",\"OFFSET\",\"OID\",\"OLD\",\"ON\",\"ONLY\",\"OPEN\",\"OR\",\"ORDER\",\"OUTER\",\"OVERLAPS\",\"PARALLEL\",\"PARTITION\",\"PERCENT\",\"PERMISSIONS\",\"PLACING\",\"PRIMARY\",\"RAW\",\"READRATIO\",\"RECOVER\",\"REFERENCES\",\"RESPECT\",\"REJECTLOG\",\"RESORT\",\"RESTORE\",\"RIGHT\",\"SELECT\",\"SESSION_USER\",\"SIMILAR\",\"SNAPSHOT\",\"SOME\",\"SYSDATE\",\"SYSTEM\",\"TABLE\",\"TAG\",\"TDES\",\"TEXT255\",\"TEXT32K\",\"THEN\",\"TIMESTAMP\",\"TO\",\"TOP\",\"TRAILING\",\"TRUE\",\"TRUNCATECOLUMNS\",\"UNION\",\"UNIQUE\",\"USER\",\"USING\",\"VERBOSE\",\"WALLET\",\"WHEN\",\"WHERE\",\"WITH\",\"WITHOUT\"],operators:[\"AND\",\"BETWEEN\",\"IN\",\"LIKE\",\"NOT\",\"OR\",\"IS\",\"NULL\",\"INTERSECT\",\"UNION\",\"INNER\",\"JOIN\",\"LEFT\",\"OUTER\",\"RIGHT\"],builtinFunctions:[\"current_schema\",\"current_schemas\",\"has_database_privilege\",\"has_schema_privilege\",\"has_table_privilege\",\"age\",\"current_time\",\"current_timestamp\",\"localtime\",\"isfinite\",\"now\",\"ascii\",\"get_bit\",\"get_byte\",\"set_bit\",\"set_byte\",\"to_ascii\",\"approximate percentile_disc\",\"avg\",\"count\",\"listagg\",\"max\",\"median\",\"min\",\"percentile_cont\",\"stddev_samp\",\"stddev_pop\",\"sum\",\"var_samp\",\"var_pop\",\"bit_and\",\"bit_or\",\"bool_and\",\"bool_or\",\"cume_dist\",\"first_value\",\"lag\",\"last_value\",\"lead\",\"nth_value\",\"ratio_to_report\",\"dense_rank\",\"ntile\",\"percent_rank\",\"rank\",\"row_number\",\"case\",\"coalesce\",\"decode\",\"greatest\",\"least\",\"nvl\",\"nvl2\",\"nullif\",\"add_months\",\"at time zone\",\"convert_timezone\",\"current_date\",\"date_cmp\",\"date_cmp_timestamp\",\"date_cmp_timestamptz\",\"date_part_year\",\"dateadd\",\"datediff\",\"date_part\",\"date_trunc\",\"extract\",\"getdate\",\"interval_cmp\",\"last_day\",\"months_between\",\"next_day\",\"sysdate\",\"timeofday\",\"timestamp_cmp\",\"timestamp_cmp_date\",\"timestamp_cmp_timestamptz\",\"timestamptz_cmp\",\"timestamptz_cmp_date\",\"timestamptz_cmp_timestamp\",\"timezone\",\"to_timestamp\",\"trunc\",\"abs\",\"acos\",\"asin\",\"atan\",\"atan2\",\"cbrt\",\"ceil\",\"ceiling\",\"checksum\",\"cos\",\"cot\",\"degrees\",\"dexp\",\"dlog1\",\"dlog10\",\"exp\",\"floor\",\"ln\",\"log\",\"mod\",\"pi\",\"power\",\"radians\",\"random\",\"round\",\"sin\",\"sign\",\"sqrt\",\"tan\",\"to_hex\",\"bpcharcmp\",\"btrim\",\"bttext_pattern_cmp\",\"char_length\",\"character_length\",\"charindex\",\"chr\",\"concat\",\"crc32\",\"func_sha1\",\"initcap\",\"left and rights\",\"len\",\"length\",\"lower\",\"lpad and rpads\",\"ltrim\",\"md5\",\"octet_length\",\"position\",\"quote_ident\",\"quote_literal\",\"regexp_count\",\"regexp_instr\",\"regexp_replace\",\"regexp_substr\",\"repeat\",\"replace\",\"replicate\",\"reverse\",\"rtrim\",\"split_part\",\"strpos\",\"strtol\",\"substring\",\"textlen\",\"translate\",\"trim\",\"upper\",\"cast\",\"convert\",\"to_char\",\"to_date\",\"to_number\",\"json_array_length\",\"json_extract_array_element_text\",\"json_extract_path_text\",\"current_setting\",\"pg_cancel_backend\",\"pg_terminate_backend\",\"set_config\",\"current_database\",\"current_user\",\"current_user_id\",\"pg_backend_pid\",\"pg_last_copy_count\",\"pg_last_copy_id\",\"pg_last_query_id\",\"pg_last_unload_count\",\"session_user\",\"slice_num\",\"user\",\"version\",\"abbrev\",\"acosd\",\"any\",\"area\",\"array_agg\",\"array_append\",\"array_cat\",\"array_dims\",\"array_fill\",\"array_length\",\"array_lower\",\"array_ndims\",\"array_position\",\"array_positions\",\"array_prepend\",\"array_remove\",\"array_replace\",\"array_to_json\",\"array_to_string\",\"array_to_tsvector\",\"array_upper\",\"asind\",\"atan2d\",\"atand\",\"bit\",\"bit_length\",\"bound_box\",\"box\",\"brin_summarize_new_values\",\"broadcast\",\"cardinality\",\"center\",\"circle\",\"clock_timestamp\",\"col_description\",\"concat_ws\",\"convert_from\",\"convert_to\",\"corr\",\"cosd\",\"cotd\",\"covar_pop\",\"covar_samp\",\"current_catalog\",\"current_query\",\"current_role\",\"currval\",\"cursor_to_xml\",\"diameter\",\"div\",\"encode\",\"enum_first\",\"enum_last\",\"enum_range\",\"every\",\"family\",\"format\",\"format_type\",\"generate_series\",\"generate_subscripts\",\"get_current_ts_config\",\"gin_clean_pending_list\",\"grouping\",\"has_any_column_privilege\",\"has_column_privilege\",\"has_foreign_data_wrapper_privilege\",\"has_function_privilege\",\"has_language_privilege\",\"has_sequence_privilege\",\"has_server_privilege\",\"has_tablespace_privilege\",\"has_type_privilege\",\"height\",\"host\",\"hostmask\",\"inet_client_addr\",\"inet_client_port\",\"inet_merge\",\"inet_same_family\",\"inet_server_addr\",\"inet_server_port\",\"isclosed\",\"isempty\",\"isopen\",\"json_agg\",\"json_object\",\"json_object_agg\",\"json_populate_record\",\"json_populate_recordset\",\"json_to_record\",\"json_to_recordset\",\"jsonb_agg\",\"jsonb_object_agg\",\"justify_days\",\"justify_hours\",\"justify_interval\",\"lastval\",\"left\",\"line\",\"localtimestamp\",\"lower_inc\",\"lower_inf\",\"lpad\",\"lseg\",\"make_date\",\"make_interval\",\"make_time\",\"make_timestamp\",\"make_timestamptz\",\"masklen\",\"mode\",\"netmask\",\"network\",\"nextval\",\"npoints\",\"num_nonnulls\",\"num_nulls\",\"numnode\",\"obj_description\",\"overlay\",\"parse_ident\",\"path\",\"pclose\",\"percentile_disc\",\"pg_advisory_lock\",\"pg_advisory_lock_shared\",\"pg_advisory_unlock\",\"pg_advisory_unlock_all\",\"pg_advisory_unlock_shared\",\"pg_advisory_xact_lock\",\"pg_advisory_xact_lock_shared\",\"pg_backup_start_time\",\"pg_blocking_pids\",\"pg_client_encoding\",\"pg_collation_is_visible\",\"pg_column_size\",\"pg_conf_load_time\",\"pg_control_checkpoint\",\"pg_control_init\",\"pg_control_recovery\",\"pg_control_system\",\"pg_conversion_is_visible\",\"pg_create_logical_replication_slot\",\"pg_create_physical_replication_slot\",\"pg_create_restore_point\",\"pg_current_xlog_flush_location\",\"pg_current_xlog_insert_location\",\"pg_current_xlog_location\",\"pg_database_size\",\"pg_describe_object\",\"pg_drop_replication_slot\",\"pg_export_snapshot\",\"pg_filenode_relation\",\"pg_function_is_visible\",\"pg_get_constraintdef\",\"pg_get_expr\",\"pg_get_function_arguments\",\"pg_get_function_identity_arguments\",\"pg_get_function_result\",\"pg_get_functiondef\",\"pg_get_indexdef\",\"pg_get_keywords\",\"pg_get_object_address\",\"pg_get_owned_sequence\",\"pg_get_ruledef\",\"pg_get_serial_sequence\",\"pg_get_triggerdef\",\"pg_get_userbyid\",\"pg_get_viewdef\",\"pg_has_role\",\"pg_identify_object\",\"pg_identify_object_as_address\",\"pg_index_column_has_property\",\"pg_index_has_property\",\"pg_indexam_has_property\",\"pg_indexes_size\",\"pg_is_in_backup\",\"pg_is_in_recovery\",\"pg_is_other_temp_schema\",\"pg_is_xlog_replay_paused\",\"pg_last_committed_xact\",\"pg_last_xact_replay_timestamp\",\"pg_last_xlog_receive_location\",\"pg_last_xlog_replay_location\",\"pg_listening_channels\",\"pg_logical_emit_message\",\"pg_logical_slot_get_binary_changes\",\"pg_logical_slot_get_changes\",\"pg_logical_slot_peek_binary_changes\",\"pg_logical_slot_peek_changes\",\"pg_ls_dir\",\"pg_my_temp_schema\",\"pg_notification_queue_usage\",\"pg_opclass_is_visible\",\"pg_operator_is_visible\",\"pg_opfamily_is_visible\",\"pg_options_to_table\",\"pg_postmaster_start_time\",\"pg_read_binary_file\",\"pg_read_file\",\"pg_relation_filenode\",\"pg_relation_filepath\",\"pg_relation_size\",\"pg_reload_conf\",\"pg_replication_origin_create\",\"pg_replication_origin_drop\",\"pg_replication_origin_oid\",\"pg_replication_origin_progress\",\"pg_replication_origin_session_is_setup\",\"pg_replication_origin_session_progress\",\"pg_replication_origin_session_reset\",\"pg_replication_origin_session_setup\",\"pg_replication_origin_xact_reset\",\"pg_replication_origin_xact_setup\",\"pg_rotate_logfile\",\"pg_size_bytes\",\"pg_size_pretty\",\"pg_sleep\",\"pg_sleep_for\",\"pg_sleep_until\",\"pg_start_backup\",\"pg_stat_file\",\"pg_stop_backup\",\"pg_switch_xlog\",\"pg_table_is_visible\",\"pg_table_size\",\"pg_tablespace_databases\",\"pg_tablespace_location\",\"pg_tablespace_size\",\"pg_total_relation_size\",\"pg_trigger_depth\",\"pg_try_advisory_lock\",\"pg_try_advisory_lock_shared\",\"pg_try_advisory_xact_lock\",\"pg_try_advisory_xact_lock_shared\",\"pg_ts_config_is_visible\",\"pg_ts_dict_is_visible\",\"pg_ts_parser_is_visible\",\"pg_ts_template_is_visible\",\"pg_type_is_visible\",\"pg_typeof\",\"pg_xact_commit_timestamp\",\"pg_xlog_location_diff\",\"pg_xlog_replay_pause\",\"pg_xlog_replay_resume\",\"pg_xlogfile_name\",\"pg_xlogfile_name_offset\",\"phraseto_tsquery\",\"plainto_tsquery\",\"point\",\"polygon\",\"popen\",\"pqserverversion\",\"query_to_xml\",\"querytree\",\"quote_nullable\",\"radius\",\"range_merge\",\"regexp_matches\",\"regexp_split_to_array\",\"regexp_split_to_table\",\"regr_avgx\",\"regr_avgy\",\"regr_count\",\"regr_intercept\",\"regr_r2\",\"regr_slope\",\"regr_sxx\",\"regr_sxy\",\"regr_syy\",\"right\",\"row_security_active\",\"row_to_json\",\"rpad\",\"scale\",\"set_masklen\",\"setseed\",\"setval\",\"setweight\",\"shobj_description\",\"sind\",\"sprintf\",\"statement_timestamp\",\"stddev\",\"string_agg\",\"string_to_array\",\"strip\",\"substr\",\"table_to_xml\",\"table_to_xml_and_xmlschema\",\"tand\",\"text\",\"to_json\",\"to_regclass\",\"to_regnamespace\",\"to_regoper\",\"to_regoperator\",\"to_regproc\",\"to_regprocedure\",\"to_regrole\",\"to_regtype\",\"to_tsquery\",\"to_tsvector\",\"transaction_timestamp\",\"ts_debug\",\"ts_delete\",\"ts_filter\",\"ts_headline\",\"ts_lexize\",\"ts_parse\",\"ts_rank\",\"ts_rank_cd\",\"ts_rewrite\",\"ts_stat\",\"ts_token_type\",\"tsquery_phrase\",\"tsvector_to_array\",\"tsvector_update_trigger\",\"tsvector_update_trigger_column\",\"txid_current\",\"txid_current_snapshot\",\"txid_snapshot_xip\",\"txid_snapshot_xmax\",\"txid_snapshot_xmin\",\"txid_visible_in_snapshot\",\"unnest\",\"upper_inc\",\"upper_inf\",\"variance\",\"width\",\"width_bucket\",\"xml_is_well_formed\",\"xml_is_well_formed_content\",\"xml_is_well_formed_document\",\"xmlagg\",\"xmlcomment\",\"xmlconcat\",\"xmlelement\",\"xmlexists\",\"xmlforest\",\"xmlparse\",\"xmlpi\",\"xmlroot\",\"xmlserialize\",\"xpath\",\"xpath_exists\"],builtinVariables:[],pseudoColumns:[],tokenizer:{root:[{include:\"@comments\"},{include:\"@whitespace\"},{include:\"@pseudoColumns\"},{include:\"@numbers\"},{include:\"@strings\"},{include:\"@complexIdentifiers\"},{include:\"@scopes\"},[/[;,.]/,\"delimiter\"],[/[()]/,\"@brackets\"],[/[\\w@#$]+/,{cases:{\"@keywords\":\"keyword\",\"@operators\":\"operator\",\"@builtinVariables\":\"predefined\",\"@builtinFunctions\":\"predefined\",\"@default\":\"identifier\"}}],[/[<>=!%&+\\-*/|~^]/,\"operator\"]],whitespace:[[/\\s+/,\"white\"]],comments:[[/--+.*/,\"comment\"],[/\\/\\*/,{token:\"comment.quote\",next:\"@comment\"}]],comment:[[/[^*/]+/,\"comment\"],[/\\*\\//,{token:\"comment.quote\",next:\"@pop\"}],[/./,\"comment\"]],pseudoColumns:[[/[$][A-Za-z_][\\w@#$]*/,{cases:{\"@pseudoColumns\":\"predefined\",\"@default\":\"identifier\"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,\"number\"],[/[$][+-]*\\d*(\\.\\d*)?/,\"number\"],[/((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][\\-+]?\\d+)?/,\"number\"]],strings:[[/'/,{token:\"string\",next:\"@string\"}]],string:[[/[^']+/,\"string\"],[/''/,\"string\"],[/'/,{token:\"string\",next:\"@pop\"}]],complexIdentifiers:[[/\"/,{token:\"identifier.quote\",next:\"@quotedIdentifier\"}]],quotedIdentifier:[[/[^\"]+/,\"identifier\"],[/\"\"/,\"identifier\"],[/\"/,{token:\"identifier.quote\",next:\"@pop\"}]],scopes:[]}};export{e as conf,_ as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/BdxkyMLR.js",
    "content": "import e from\"./COyJrUc7.js\";import\"./C3t2pwGQ.js\";const a=Object.freeze(JSON.parse(`{\"displayName\":\"Elm\",\"fileTypes\":[\"elm\"],\"name\":\"elm\",\"patterns\":[{\"include\":\"#import\"},{\"include\":\"#module\"},{\"include\":\"#debug\"},{\"include\":\"#comments\"},{\"match\":\"\\\\\\\\b(_)\\\\\\\\b\",\"name\":\"keyword.unused.elm\"},{\"include\":\"#type-signature\"},{\"include\":\"#type-declaration\"},{\"include\":\"#type-alias-declaration\"},{\"include\":\"#string-triple\"},{\"include\":\"#string-quote\"},{\"include\":\"#char\"},{\"comment\":\"Floats are always decimal\",\"match\":\"\\\\\\\\b([0-9]+\\\\\\\\.[0-9]+([eE][+-]?[0-9]+)?|[0-9]+[eE][+-]?[0-9]+)\\\\\\\\b\",\"name\":\"constant.numeric.float.elm\"},{\"match\":\"\\\\\\\\b([0-9]+)\\\\\\\\b\",\"name\":\"constant.numeric.elm\"},{\"match\":\"\\\\\\\\b(0x[0-9a-fA-F]+)\\\\\\\\b\",\"name\":\"constant.numeric.elm\"},{\"include\":\"#glsl\"},{\"include\":\"#record-prefix\"},{\"include\":\"#module-prefix\"},{\"include\":\"#constructor\"},{\"captures\":{\"1\":{\"name\":\"punctuation.bracket.elm\"},\"2\":{\"name\":\"record.name.elm\"},\"3\":{\"name\":\"keyword.pipe.elm\"},\"4\":{\"name\":\"entity.name.record.field.elm\"}},\"match\":\"(\\\\\\\\{)\\\\\\\\s+([a-z][a-zA-Z0-9_]*)\\\\\\\\s+(\\\\\\\\|)\\\\\\\\s+([a-z][a-zA-Z0-9_]*)\",\"name\":\"meta.record.field.update.elm\"},{\"captures\":{\"1\":{\"name\":\"keyword.pipe.elm\"},\"2\":{\"name\":\"entity.name.record.field.elm\"},\"3\":{\"name\":\"keyword.operator.assignment.elm\"}},\"match\":\"(\\\\\\\\|)\\\\\\\\s+([a-z][a-zA-Z0-9_]*)\\\\\\\\s+(\\\\\\\\=)\",\"name\":\"meta.record.field.update.elm\"},{\"captures\":{\"1\":{\"name\":\"punctuation.bracket.elm\"},\"2\":{\"name\":\"record.name.elm\"}},\"match\":\"(\\\\\\\\{)\\\\\\\\s+([a-z][a-zA-Z0-9_]*)\\\\\\\\s+$\",\"name\":\"meta.record.field.update.elm\"},{\"captures\":{\"1\":{\"name\":\"punctuation.bracket.elm\"},\"2\":{\"name\":\"entity.name.record.field.elm\"},\"3\":{\"name\":\"keyword.operator.assignment.elm\"}},\"match\":\"(\\\\\\\\{)\\\\\\\\s+([a-z][a-zA-Z0-9_]*)\\\\\\\\s+(\\\\\\\\=)\",\"name\":\"meta.record.field.elm\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.comma.elm\"},\"2\":{\"name\":\"entity.name.record.field.elm\"},\"3\":{\"name\":\"keyword.operator.assignment.elm\"}},\"match\":\"(,)\\\\\\\\s+([a-z][a-zA-Z0-9_]*)\\\\\\\\s+(\\\\\\\\=)\",\"name\":\"meta.record.field.elm\"},{\"match\":\"(\\\\\\\\}|\\\\\\\\{)\",\"name\":\"punctuation.bracket.elm\"},{\"include\":\"#unit\"},{\"include\":\"#comma\"},{\"include\":\"#parens\"},{\"match\":\"(->)\",\"name\":\"keyword.operator.arrow.elm\"},{\"include\":\"#infix_op\"},{\"match\":\"(\\\\\\\\=|\\\\\\\\:|\\\\\\\\||\\\\\\\\\\\\\\\\)\",\"name\":\"keyword.other.elm\"},{\"match\":\"\\\\\\\\b(type|as|port|exposing|alias|infixl|infixr|infix)\\\\\\\\s+\",\"name\":\"keyword.other.elm\"},{\"match\":\"\\\\\\\\b(if|then|else|case|of|let|in)\\\\\\\\s+\",\"name\":\"keyword.control.elm\"},{\"include\":\"#record-accessor\"},{\"include\":\"#top_level_value\"},{\"include\":\"#value\"},{\"include\":\"#period\"},{\"include\":\"#square_brackets\"}],\"repository\":{\"block_comment\":{\"applyEndPatternLast\":1,\"begin\":\"\\\\\\\\{-(?!#)\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.elm\"}},\"end\":\"-\\\\\\\\}\",\"name\":\"comment.block.elm\",\"patterns\":[{\"include\":\"#block_comment\"}]},\"char\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.char.begin.elm\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.char.end.elm\"}},\"name\":\"string.quoted.single.elm\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"'\\\\\\\\&]|x[0-9a-fA-F]{1,5})\",\"name\":\"constant.character.escape.elm\"},{\"match\":\"\\\\\\\\^[A-Z@\\\\\\\\[\\\\\\\\]\\\\\\\\\\\\\\\\\\\\\\\\^_]\",\"name\":\"constant.character.escape.control.elm\"}]},\"comma\":{\"match\":\"(,)\",\"name\":\"punctuation.separator.comma.elm\"},\"comments\":{\"patterns\":[{\"begin\":\"--\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.elm\"}},\"end\":\"$\",\"name\":\"comment.line.double-dash.elm\"},{\"include\":\"#block_comment\"}]},\"constructor\":{\"match\":\"\\\\\\\\b[A-Z][a-zA-Z0-9_]*\\\\\\\\b\",\"name\":\"constant.type-constructor.elm\"},\"debug\":{\"match\":\"\\\\\\\\b(Debug)\\\\\\\\b\",\"name\":\"invalid.illegal.debug.elm\"},\"glsl\":{\"begin\":\"(\\\\\\\\[)(glsl)(\\\\\\\\|)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.glsl.bracket.elm\"},\"2\":{\"name\":\"entity.glsl.name.elm\"},\"3\":{\"name\":\"entity.glsl.bracket.elm\"}},\"end\":\"(\\\\\\\\|\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"entity.glsl.bracket.elm\"}},\"name\":\"meta.embedded.block.glsl\",\"patterns\":[{\"include\":\"source.glsl\"}]},\"import\":{\"begin\":\"^\\\\\\\\b(import)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.import.elm\"}},\"end\":\"\\\\\\\\n(?!\\\\\\\\s)\",\"name\":\"meta.import.elm\",\"patterns\":[{\"match\":\"(as|exposing)\",\"name\":\"keyword.control.elm\"},{\"include\":\"#module_chunk\"},{\"include\":\"#period\"},{\"match\":\"\\\\\\\\s+\",\"name\":\"punctuation.spaces.elm\"},{\"include\":\"#module-exports\"}]},\"infix_op\":{\"match\":\"(</>|<\\\\\\\\?>|<\\\\\\\\||<=|\\\\\\\\|\\\\\\\\||&&|>=|\\\\\\\\|>|\\\\\\\\|=|\\\\\\\\|\\\\\\\\.|\\\\\\\\+\\\\\\\\+|::|/=|==|//|>>|<<|<|>|\\\\\\\\^|\\\\\\\\+|-|/|\\\\\\\\*)\",\"name\":\"keyword.operator.elm\"},\"module\":{\"begin\":\"^\\\\\\\\b((port |effect )?module)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.elm\"}},\"end\":\"\\\\\\\\n(?!\\\\\\\\s)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.other.elm\"}},\"name\":\"meta.declaration.module.elm\",\"patterns\":[{\"include\":\"#module_chunk\"},{\"include\":\"#period\"},{\"match\":\"(exposing)\",\"name\":\"keyword.other.elm\"},{\"match\":\"\\\\\\\\s+\",\"name\":\"punctuation.spaces.elm\"},{\"include\":\"#module-exports\"}]},\"module-exports\":{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.parens.module-export.elm\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parens.module-export.elm\"}},\"name\":\"meta.declaration.exports.elm\",\"patterns\":[{\"match\":\"\\\\\\\\b[a-z][a-zA-Z_'0-9]*\",\"name\":\"entity.name.function.elm\"},{\"match\":\"\\\\\\\\b[A-Z][A-Za-z_'0-9]*\",\"name\":\"storage.type.elm\"},{\"match\":\",\",\"name\":\"punctuation.separator.comma.elm\"},{\"match\":\"\\\\\\\\s+\",\"name\":\"punctuation.spaces.elm\"},{\"include\":\"#comma\"},{\"match\":\"\\\\\\\\(\\\\\\\\.\\\\\\\\.\\\\\\\\)\",\"name\":\"punctuation.parens.ellipses.elm\"},{\"match\":\"\\\\\\\\.\\\\\\\\.\",\"name\":\"punctuation.parens.ellipses.elm\"},{\"include\":\"#infix_op\"},{\"comment\":\"So named because I don't know what to call this.\",\"match\":\"\\\\\\\\(.*?\\\\\\\\)\",\"name\":\"meta.other.unknown.elm\"}]},\"module-prefix\":{\"captures\":{\"1\":{\"name\":\"support.module.elm\"},\"2\":{\"name\":\"keyword.other.period.elm\"}},\"match\":\"([A-Z][a-zA-Z0-9_]*)(\\\\\\\\.)\",\"name\":\"meta.module.name.elm\"},\"module_chunk\":{\"match\":\"[A-Z][a-zA-Z0-9_]*\",\"name\":\"support.module.elm\"},\"parens\":{\"match\":\"(\\\\\\\\(|\\\\\\\\))\",\"name\":\"punctuation.parens.elm\"},\"period\":{\"match\":\"[.]\",\"name\":\"keyword.other.period.elm\"},\"record-accessor\":{\"captures\":{\"1\":{\"name\":\"keyword.other.period.elm\"},\"2\":{\"name\":\"entity.name.record.field.accessor.elm\"}},\"match\":\"(\\\\\\\\.)([a-z][a-zA-Z0-9_]*)\",\"name\":\"meta.record.accessor\"},\"record-prefix\":{\"captures\":{\"1\":{\"name\":\"record.name.elm\"},\"2\":{\"name\":\"keyword.other.period.elm\"},\"3\":{\"name\":\"entity.name.record.field.accessor.elm\"}},\"match\":\"([a-z][a-zA-Z0-9_]*)(\\\\\\\\.)([a-z][a-zA-Z0-9_]*)\",\"name\":\"record.accessor.elm\"},\"square_brackets\":{\"match\":\"[\\\\\\\\[\\\\\\\\]]\",\"name\":\"punctuation.definition.list.elm\"},\"string-quote\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.elm\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.elm\"}},\"name\":\"string.quoted.double.elm\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"'\\\\\\\\&]|x[0-9a-fA-F]{1,5})\",\"name\":\"constant.character.escape.elm\"},{\"match\":\"\\\\\\\\^[A-Z@\\\\\\\\[\\\\\\\\]\\\\\\\\\\\\\\\\\\\\\\\\^_]\",\"name\":\"constant.character.escape.control.elm\"}]},\"string-triple\":{\"begin\":\"\\\\\"\\\\\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.elm\"}},\"end\":\"\\\\\"\\\\\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.elm\"}},\"name\":\"string.quoted.triple.elm\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"'\\\\\\\\&]|x[0-9a-fA-F]{1,5})\",\"name\":\"constant.character.escape.elm\"},{\"match\":\"\\\\\\\\^[A-Z@\\\\\\\\[\\\\\\\\]\\\\\\\\\\\\\\\\\\\\\\\\^_]\",\"name\":\"constant.character.escape.control.elm\"}]},\"top_level_value\":{\"match\":\"^[a-z][a-zA-Z0-9_]*\\\\\\\\b\",\"name\":\"entity.name.function.top_level.elm\"},\"type-alias-declaration\":{\"begin\":\"^(type\\\\\\\\s+)(alias\\\\\\\\s+)([A-Z][a-zA-Z0-9_']*)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.type.elm\"},\"2\":{\"name\":\"keyword.type-alias.elm\"},\"3\":{\"name\":\"storage.type.elm\"}},\"end\":\"^(?=\\\\\\\\S)\",\"name\":\"meta.function.type-declaration.elm\",\"patterns\":[{\"match\":\"\\\\\\\\n\\\\\\\\s+\",\"name\":\"punctuation.spaces.elm\"},{\"match\":\"\\\\\\\\=\",\"name\":\"keyword.operator.assignment.elm\"},{\"include\":\"#module-prefix\"},{\"match\":\"\\\\\\\\b[A-Z][a-zA-Z0-9_]*\\\\\\\\b\",\"name\":\"storage.type.elm\"},{\"match\":\"\\\\\\\\b[a-z][a-zA-Z0-9_]*\\\\\\\\b\",\"name\":\"variable.type.elm\"},{\"include\":\"#comments\"},{\"include\":\"#type-record\"}]},\"type-declaration\":{\"begin\":\"^(type\\\\\\\\s+)([A-Z][a-zA-Z0-9_']*)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.type.elm\"},\"2\":{\"name\":\"storage.type.elm\"}},\"end\":\"^(?=\\\\\\\\S)\",\"name\":\"meta.function.type-declaration.elm\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.type-constructor.elm\"}},\"match\":\"^\\\\\\\\s*([A-Z][a-zA-Z0-9_]*)\\\\\\\\b\",\"name\":\"meta.record.field.elm\"},{\"match\":\"\\\\\\\\s+\",\"name\":\"punctuation.spaces.elm\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.assignment.elm\"},\"2\":{\"name\":\"constant.type-constructor.elm\"}},\"match\":\"(\\\\\\\\=|\\\\\\\\|)\\\\\\\\s+([A-Z][a-zA-Z0-9_]*)\\\\\\\\b\",\"name\":\"meta.record.field.elm\"},{\"match\":\"\\\\\\\\=\",\"name\":\"keyword.operator.assignment.elm\"},{\"match\":\"\\\\\\\\-\\\\\\\\>\",\"name\":\"keyword.operator.arrow.elm\"},{\"include\":\"#module-prefix\"},{\"match\":\"\\\\\\\\b[a-z][a-zA-Z0-9_]*\\\\\\\\b\",\"name\":\"variable.type.elm\"},{\"match\":\"\\\\\\\\b[A-Z][a-zA-Z0-9_]*\\\\\\\\b\",\"name\":\"storage.type.elm\"},{\"include\":\"#comments\"},{\"include\":\"#type-record\"}]},\"type-record\":{\"begin\":\"(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.braces.begin\"}},\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.braces.end\"}},\"name\":\"meta.function.type-record.elm\",\"patterns\":[{\"match\":\"\\\\\\\\s+\",\"name\":\"punctuation.spaces.elm\"},{\"match\":\"->\",\"name\":\"keyword.operator.arrow.elm\"},{\"captures\":{\"1\":{\"name\":\"entity.name.record.field.elm\"},\"2\":{\"name\":\"keyword.other.elm\"}},\"match\":\"([a-z][a-zA-Z0-9_]*)\\\\\\\\s+(\\\\\\\\:)\",\"name\":\"meta.record.field.elm\"},{\"match\":\"\\\\\\\\,\",\"name\":\"punctuation.separator.comma.elm\"},{\"include\":\"#module-prefix\"},{\"match\":\"\\\\\\\\b[a-z][a-zA-Z0-9_]*\\\\\\\\b\",\"name\":\"variable.type.elm\"},{\"match\":\"\\\\\\\\b[A-Z][a-zA-Z0-9_]*\\\\\\\\b\",\"name\":\"storage.type.elm\"},{\"include\":\"#comments\"},{\"include\":\"#type-record\"}]},\"type-signature\":{\"begin\":\"^(port\\\\\\\\s+)?([a-z_][a-zA-Z0-9_']*)\\\\\\\\s+(\\\\\\\\:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.port.elm\"},\"2\":{\"name\":\"entity.name.function.elm\"},\"3\":{\"name\":\"keyword.other.colon.elm\"}},\"end\":\"((^(?=[a-z]))|^$)\",\"name\":\"meta.function.type-declaration.elm\",\"patterns\":[{\"include\":\"#type-signature-chunk\"}]},\"type-signature-chunk\":{\"patterns\":[{\"match\":\"->\",\"name\":\"keyword.operator.arrow.elm\"},{\"match\":\"\\\\\\\\s+\",\"name\":\"punctuation.spaces.elm\"},{\"include\":\"#module-prefix\"},{\"match\":\"\\\\\\\\b[a-z][a-zA-Z0-9_]*\\\\\\\\b\",\"name\":\"variable.type.elm\"},{\"match\":\"\\\\\\\\b[A-Z][a-zA-Z0-9_]*\\\\\\\\b\",\"name\":\"storage.type.elm\"},{\"match\":\"\\\\\\\\(\\\\\\\\)\",\"name\":\"constant.unit.elm\"},{\"include\":\"#comma\"},{\"include\":\"#parens\"},{\"include\":\"#comments\"},{\"include\":\"#type-record\"}]},\"unit\":{\"match\":\"\\\\\\\\(\\\\\\\\)\",\"name\":\"constant.unit.elm\"},\"value\":{\"match\":\"\\\\\\\\b[a-z][a-zA-Z0-9_]*\\\\\\\\b\",\"name\":\"meta.value.elm\"}},\"scopeName\":\"source.elm\",\"embeddedLangs\":[\"glsl\"]}`)),m=[...e,a];export{m as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Be6lgOlo.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Rust\",\"name\":\"rust\",\"patterns\":[{\"begin\":\"(<)(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.brackets.angle.rust\"},\"2\":{\"name\":\"punctuation.brackets.square.rust\"}},\"comment\":\"boxed slice literal\",\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.brackets.angle.rust\"}},\"patterns\":[{\"include\":\"#block-comments\"},{\"include\":\"#comments\"},{\"include\":\"#gtypes\"},{\"include\":\"#lvariables\"},{\"include\":\"#lifetimes\"},{\"include\":\"#punctuation\"},{\"include\":\"#types\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.operator.macro.dollar.rust\"},\"3\":{\"name\":\"keyword.other.crate.rust\"},\"4\":{\"name\":\"entity.name.type.metavariable.rust\"},\"6\":{\"name\":\"keyword.operator.key-value.rust\"},\"7\":{\"name\":\"variable.other.metavariable.specifier.rust\"}},\"comment\":\"macro type metavariables\",\"match\":\"(\\\\\\\\$)((crate)|([A-Z][A-Za-z0-9_]*))((:)(block|expr|ident|item|lifetime|literal|meta|path?|stmt|tt|ty|vis))?\",\"name\":\"meta.macro.metavariable.type.rust\",\"patterns\":[{\"include\":\"#keywords\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.operator.macro.dollar.rust\"},\"2\":{\"name\":\"variable.other.metavariable.name.rust\"},\"4\":{\"name\":\"keyword.operator.key-value.rust\"},\"5\":{\"name\":\"variable.other.metavariable.specifier.rust\"}},\"comment\":\"macro metavariables\",\"match\":\"(\\\\\\\\$)([a-z][A-Za-z0-9_]*)((:)(block|expr|ident|item|lifetime|literal|meta|path?|stmt|tt|ty|vis))?\",\"name\":\"meta.macro.metavariable.rust\",\"patterns\":[{\"include\":\"#keywords\"}]},{\"captures\":{\"1\":{\"name\":\"entity.name.function.macro.rules.rust\"},\"3\":{\"name\":\"entity.name.function.macro.rust\"},\"4\":{\"name\":\"entity.name.type.macro.rust\"},\"5\":{\"name\":\"punctuation.brackets.curly.rust\"}},\"comment\":\"macro rules\",\"match\":\"\\\\\\\\b(macro_rules!)\\\\\\\\s+(([a-z0-9_]+)|([A-Z][a-z0-9_]*))\\\\\\\\s+(\\\\\\\\{)\",\"name\":\"meta.macro.rules.rust\"},{\"captures\":{\"1\":{\"name\":\"storage.type.rust\"},\"2\":{\"name\":\"entity.name.module.rust\"}},\"comment\":\"modules\",\"match\":\"(mod)\\\\\\\\s+((?:r#(?!crate|[Ss]elf|super))?[a-z][A-Za-z0-9_]*)\"},{\"begin\":\"\\\\\\\\b(extern)\\\\\\\\s+(crate)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.rust\"},\"2\":{\"name\":\"keyword.other.crate.rust\"}},\"comment\":\"external crate imports\",\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.semi.rust\"}},\"name\":\"meta.import.rust\",\"patterns\":[{\"include\":\"#block-comments\"},{\"include\":\"#comments\"},{\"include\":\"#keywords\"},{\"include\":\"#punctuation\"}]},{\"begin\":\"\\\\\\\\b(use)\\\\\\\\s\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.rust\"}},\"comment\":\"use statements\",\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.semi.rust\"}},\"name\":\"meta.use.rust\",\"patterns\":[{\"include\":\"#block-comments\"},{\"include\":\"#comments\"},{\"include\":\"#keywords\"},{\"include\":\"#namespaces\"},{\"include\":\"#punctuation\"},{\"include\":\"#types\"},{\"include\":\"#lvariables\"}]},{\"include\":\"#block-comments\"},{\"include\":\"#comments\"},{\"include\":\"#attributes\"},{\"include\":\"#lvariables\"},{\"include\":\"#constants\"},{\"include\":\"#gtypes\"},{\"include\":\"#functions\"},{\"include\":\"#types\"},{\"include\":\"#keywords\"},{\"include\":\"#lifetimes\"},{\"include\":\"#macros\"},{\"include\":\"#namespaces\"},{\"include\":\"#punctuation\"},{\"include\":\"#strings\"},{\"include\":\"#variables\"}],\"repository\":{\"attributes\":{\"begin\":\"(#)(\\\\\\\\!?)(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.attribute.rust\"},\"3\":{\"name\":\"punctuation.brackets.attribute.rust\"}},\"comment\":\"attributes\",\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.brackets.attribute.rust\"}},\"name\":\"meta.attribute.rust\",\"patterns\":[{\"include\":\"#block-comments\"},{\"include\":\"#comments\"},{\"include\":\"#keywords\"},{\"include\":\"#lifetimes\"},{\"include\":\"#punctuation\"},{\"include\":\"#strings\"},{\"include\":\"#gtypes\"},{\"include\":\"#types\"}]},\"block-comments\":{\"patterns\":[{\"comment\":\"empty block comments\",\"match\":\"/\\\\\\\\*\\\\\\\\*/\",\"name\":\"comment.block.rust\"},{\"begin\":\"/\\\\\\\\*\\\\\\\\*\",\"comment\":\"block documentation comments\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.documentation.rust\",\"patterns\":[{\"include\":\"#block-comments\"}]},{\"begin\":\"/\\\\\\\\*(?!\\\\\\\\*)\",\"comment\":\"block comments\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.rust\",\"patterns\":[{\"include\":\"#block-comments\"}]}]},\"comments\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.rust\"}},\"comment\":\"documentation comments\",\"match\":\"(///).*$\",\"name\":\"comment.line.documentation.rust\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.rust\"}},\"comment\":\"line comments\",\"match\":\"(//).*$\",\"name\":\"comment.line.double-slash.rust\"}]},\"constants\":{\"patterns\":[{\"comment\":\"ALL CAPS constants\",\"match\":\"\\\\\\\\b[A-Z]{2}[A-Z0-9_]*\\\\\\\\b\",\"name\":\"constant.other.caps.rust\"},{\"captures\":{\"1\":{\"name\":\"storage.type.rust\"},\"2\":{\"name\":\"constant.other.caps.rust\"}},\"comment\":\"constant declarations\",\"match\":\"\\\\\\\\b(const)\\\\\\\\s+([A-Z][A-Za-z0-9_]*)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.dot.decimal.rust\"},\"2\":{\"name\":\"keyword.operator.exponent.rust\"},\"3\":{\"name\":\"keyword.operator.exponent.sign.rust\"},\"4\":{\"name\":\"constant.numeric.decimal.exponent.mantissa.rust\"},\"5\":{\"name\":\"entity.name.type.numeric.rust\"}},\"comment\":\"decimal integers and floats\",\"match\":\"\\\\\\\\b\\\\\\\\d[\\\\\\\\d_]*(\\\\\\\\.?)[\\\\\\\\d_]*(?:(E|e)([+-]?)([\\\\\\\\d_]+))?(f32|f64|i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\\\\\\\b\",\"name\":\"constant.numeric.decimal.rust\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.numeric.rust\"}},\"comment\":\"hexadecimal integers\",\"match\":\"\\\\\\\\b0x[\\\\\\\\da-fA-F_]+(i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\\\\\\\b\",\"name\":\"constant.numeric.hex.rust\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.numeric.rust\"}},\"comment\":\"octal integers\",\"match\":\"\\\\\\\\b0o[0-7_]+(i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\\\\\\\b\",\"name\":\"constant.numeric.oct.rust\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.numeric.rust\"}},\"comment\":\"binary integers\",\"match\":\"\\\\\\\\b0b[01_]+(i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\\\\\\\b\",\"name\":\"constant.numeric.bin.rust\"},{\"comment\":\"booleans\",\"match\":\"\\\\\\\\b(true|false)\\\\\\\\b\",\"name\":\"constant.language.bool.rust\"}]},\"escapes\":{\"captures\":{\"1\":{\"name\":\"constant.character.escape.backslash.rust\"},\"2\":{\"name\":\"constant.character.escape.bit.rust\"},\"3\":{\"name\":\"constant.character.escape.unicode.rust\"},\"4\":{\"name\":\"constant.character.escape.unicode.punctuation.rust\"},\"5\":{\"name\":\"constant.character.escape.unicode.punctuation.rust\"}},\"comment\":\"escapes: ASCII, byte, Unicode, quote, regex\",\"match\":\"(\\\\\\\\\\\\\\\\)(?:(?:(x[0-7][\\\\\\\\da-fA-F])|(u(\\\\\\\\{)[\\\\\\\\da-fA-F]{4,6}(\\\\\\\\}))|.))\",\"name\":\"constant.character.escape.rust\"},\"functions\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.rust\"},\"2\":{\"name\":\"punctuation.brackets.round.rust\"}},\"comment\":\"pub as a function\",\"match\":\"\\\\\\\\b(pub)(\\\\\\\\()\"},{\"begin\":\"\\\\\\\\b(fn)\\\\\\\\s+((?:r#(?!crate|[Ss]elf|super))?[A-Za-z0-9_]+)((\\\\\\\\()|(<))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.fn.rust\"},\"2\":{\"name\":\"entity.name.function.rust\"},\"4\":{\"name\":\"punctuation.brackets.round.rust\"},\"5\":{\"name\":\"punctuation.brackets.angle.rust\"}},\"comment\":\"function definition\",\"end\":\"(\\\\\\\\{)|(;)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.brackets.curly.rust\"},\"2\":{\"name\":\"punctuation.semi.rust\"}},\"name\":\"meta.function.definition.rust\",\"patterns\":[{\"include\":\"#block-comments\"},{\"include\":\"#comments\"},{\"include\":\"#keywords\"},{\"include\":\"#lvariables\"},{\"include\":\"#constants\"},{\"include\":\"#gtypes\"},{\"include\":\"#functions\"},{\"include\":\"#lifetimes\"},{\"include\":\"#macros\"},{\"include\":\"#namespaces\"},{\"include\":\"#punctuation\"},{\"include\":\"#strings\"},{\"include\":\"#types\"},{\"include\":\"#variables\"}]},{\"begin\":\"((?:r#(?!crate|[Ss]elf|super))?[A-Za-z0-9_]+)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.rust\"},\"2\":{\"name\":\"punctuation.brackets.round.rust\"}},\"comment\":\"function/method calls, chaining\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.brackets.round.rust\"}},\"name\":\"meta.function.call.rust\",\"patterns\":[{\"include\":\"#block-comments\"},{\"include\":\"#comments\"},{\"include\":\"#attributes\"},{\"include\":\"#keywords\"},{\"include\":\"#lvariables\"},{\"include\":\"#constants\"},{\"include\":\"#gtypes\"},{\"include\":\"#functions\"},{\"include\":\"#lifetimes\"},{\"include\":\"#macros\"},{\"include\":\"#namespaces\"},{\"include\":\"#punctuation\"},{\"include\":\"#strings\"},{\"include\":\"#types\"},{\"include\":\"#variables\"}]},{\"begin\":\"((?:r#(?!crate|[Ss]elf|super))?[A-Za-z0-9_]+)(?=::<.*>\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.rust\"}},\"comment\":\"function/method calls with turbofish\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.brackets.round.rust\"}},\"name\":\"meta.function.call.rust\",\"patterns\":[{\"include\":\"#block-comments\"},{\"include\":\"#comments\"},{\"include\":\"#attributes\"},{\"include\":\"#keywords\"},{\"include\":\"#lvariables\"},{\"include\":\"#constants\"},{\"include\":\"#gtypes\"},{\"include\":\"#functions\"},{\"include\":\"#lifetimes\"},{\"include\":\"#macros\"},{\"include\":\"#namespaces\"},{\"include\":\"#punctuation\"},{\"include\":\"#strings\"},{\"include\":\"#types\"},{\"include\":\"#variables\"}]}]},\"gtypes\":{\"patterns\":[{\"comment\":\"option types\",\"match\":\"\\\\\\\\b(Some|None)\\\\\\\\b\",\"name\":\"entity.name.type.option.rust\"},{\"comment\":\"result types\",\"match\":\"\\\\\\\\b(Ok|Err)\\\\\\\\b\",\"name\":\"entity.name.type.result.rust\"}]},\"interpolations\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.interpolation.rust\"},\"2\":{\"name\":\"punctuation.definition.interpolation.rust\"}},\"comment\":\"curly brace interpolations\",\"match\":\"({)[^\\\\\"{}]*(})\",\"name\":\"meta.interpolation.rust\"},\"keywords\":{\"patterns\":[{\"comment\":\"control flow keywords\",\"match\":\"\\\\\\\\b(await|break|continue|do|else|for|if|loop|match|return|try|while|yield)\\\\\\\\b\",\"name\":\"keyword.control.rust\"},{\"comment\":\"storage keywords\",\"match\":\"\\\\\\\\b(extern|let|macro|mod)\\\\\\\\b\",\"name\":\"keyword.other.rust storage.type.rust\"},{\"comment\":\"const keyword\",\"match\":\"\\\\\\\\b(const)\\\\\\\\b\",\"name\":\"storage.modifier.rust\"},{\"comment\":\"type keyword\",\"match\":\"\\\\\\\\b(type)\\\\\\\\b\",\"name\":\"keyword.declaration.type.rust storage.type.rust\"},{\"comment\":\"enum keyword\",\"match\":\"\\\\\\\\b(enum)\\\\\\\\b\",\"name\":\"keyword.declaration.enum.rust storage.type.rust\"},{\"comment\":\"trait keyword\",\"match\":\"\\\\\\\\b(trait)\\\\\\\\b\",\"name\":\"keyword.declaration.trait.rust storage.type.rust\"},{\"comment\":\"struct keyword\",\"match\":\"\\\\\\\\b(struct)\\\\\\\\b\",\"name\":\"keyword.declaration.struct.rust storage.type.rust\"},{\"comment\":\"storage modifiers\",\"match\":\"\\\\\\\\b(abstract|static)\\\\\\\\b\",\"name\":\"storage.modifier.rust\"},{\"comment\":\"other keywords\",\"match\":\"\\\\\\\\b(as|async|become|box|dyn|move|final|gen|impl|in|override|priv|pub|ref|typeof|union|unsafe|unsized|use|virtual|where)\\\\\\\\b\",\"name\":\"keyword.other.rust\"},{\"comment\":\"fn\",\"match\":\"\\\\\\\\bfn\\\\\\\\b\",\"name\":\"keyword.other.fn.rust\"},{\"comment\":\"crate\",\"match\":\"\\\\\\\\bcrate\\\\\\\\b\",\"name\":\"keyword.other.crate.rust\"},{\"comment\":\"mut\",\"match\":\"\\\\\\\\bmut\\\\\\\\b\",\"name\":\"storage.modifier.mut.rust\"},{\"comment\":\"logical operators\",\"match\":\"(\\\\\\\\^|\\\\\\\\||\\\\\\\\|\\\\\\\\||&&|<<|>>|!)(?!=)\",\"name\":\"keyword.operator.logical.rust\"},{\"comment\":\"logical AND, borrow references\",\"match\":\"&(?![&=])\",\"name\":\"keyword.operator.borrow.and.rust\"},{\"comment\":\"assignment operators\",\"match\":\"(\\\\\\\\+=|-=|\\\\\\\\*=|/=|%=|\\\\\\\\^=|&=|\\\\\\\\|=|<<=|>>=)\",\"name\":\"keyword.operator.assignment.rust\"},{\"comment\":\"single equal\",\"match\":\"(?<![<>])=(?!=|>)\",\"name\":\"keyword.operator.assignment.equal.rust\"},{\"comment\":\"comparison operators\",\"match\":\"(=(=)?(?!>)|!=|<=|(?<!=)>=)\",\"name\":\"keyword.operator.comparison.rust\"},{\"comment\":\"math operators\",\"match\":\"(([+%]|(\\\\\\\\*(?!\\\\\\\\w)))(?!=))|(-(?!>))|(/(?!/))\",\"name\":\"keyword.operator.math.rust\"},{\"captures\":{\"1\":{\"name\":\"punctuation.brackets.round.rust\"},\"2\":{\"name\":\"punctuation.brackets.square.rust\"},\"3\":{\"name\":\"punctuation.brackets.curly.rust\"},\"4\":{\"name\":\"keyword.operator.comparison.rust\"},\"5\":{\"name\":\"punctuation.brackets.round.rust\"},\"6\":{\"name\":\"punctuation.brackets.square.rust\"},\"7\":{\"name\":\"punctuation.brackets.curly.rust\"}},\"comment\":\"less than, greater than (special case)\",\"match\":\"(?:\\\\\\\\b|(?:(\\\\\\\\))|(\\\\\\\\])|(\\\\\\\\})))[ \\\\\\\\t]+([<>])[ \\\\\\\\t]+(?:\\\\\\\\b|(?:(\\\\\\\\()|(\\\\\\\\[)|(\\\\\\\\{)))\"},{\"comment\":\"namespace operator\",\"match\":\"::\",\"name\":\"keyword.operator.namespace.rust\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.dereference.rust\"}},\"comment\":\"dereference asterisk\",\"match\":\"(\\\\\\\\*)(?=\\\\\\\\w+)\"},{\"comment\":\"subpattern binding\",\"match\":\"@\",\"name\":\"keyword.operator.subpattern.rust\"},{\"comment\":\"dot access\",\"match\":\"\\\\\\\\.(?!\\\\\\\\.)\",\"name\":\"keyword.operator.access.dot.rust\"},{\"comment\":\"ranges, range patterns\",\"match\":\"\\\\\\\\.{2}(=|\\\\\\\\.)?\",\"name\":\"keyword.operator.range.rust\"},{\"comment\":\"colon\",\"match\":\":(?!:)\",\"name\":\"keyword.operator.key-value.rust\"},{\"comment\":\"dashrocket, skinny arrow\",\"match\":\"->|<-\",\"name\":\"keyword.operator.arrow.skinny.rust\"},{\"comment\":\"hashrocket, fat arrow\",\"match\":\"=>\",\"name\":\"keyword.operator.arrow.fat.rust\"},{\"comment\":\"dollar macros\",\"match\":\"\\\\\\\\$\",\"name\":\"keyword.operator.macro.dollar.rust\"},{\"comment\":\"question mark operator, questionably sized, macro kleene matcher\",\"match\":\"\\\\\\\\?\",\"name\":\"keyword.operator.question.rust\"}]},\"lifetimes\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.lifetime.rust\"},\"2\":{\"name\":\"entity.name.type.lifetime.rust\"}},\"comment\":\"named lifetime parameters\",\"match\":\"(['])([a-zA-Z_][0-9a-zA-Z_]*)(?!['])\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.borrow.rust\"},\"2\":{\"name\":\"punctuation.definition.lifetime.rust\"},\"3\":{\"name\":\"entity.name.type.lifetime.rust\"}},\"comment\":\"borrowing references to named lifetimes\",\"match\":\"(\\\\\\\\&)(['])([a-zA-Z_][0-9a-zA-Z_]*)(?!['])\\\\\\\\b\"}]},\"lvariables\":{\"patterns\":[{\"comment\":\"self\",\"match\":\"\\\\\\\\b[Ss]elf\\\\\\\\b\",\"name\":\"variable.language.self.rust\"},{\"comment\":\"super\",\"match\":\"\\\\\\\\bsuper\\\\\\\\b\",\"name\":\"variable.language.super.rust\"}]},\"macros\":{\"patterns\":[{\"captures\":{\"2\":{\"name\":\"entity.name.function.macro.rust\"},\"3\":{\"name\":\"entity.name.type.macro.rust\"}},\"comment\":\"macros\",\"match\":\"(([a-z_][A-Za-z0-9_]*!)|([A-Z_][A-Za-z0-9_]*!))\",\"name\":\"meta.macro.rust\"}]},\"namespaces\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.namespace.rust\"},\"2\":{\"name\":\"keyword.operator.namespace.rust\"}},\"comment\":\"namespace (non-type, non-function path segment)\",\"match\":\"(?<![A-Za-z0-9_])([A-Za-z0-9_]+)((?<!super|self)::)\"}]},\"punctuation\":{\"patterns\":[{\"comment\":\"comma\",\"match\":\",\",\"name\":\"punctuation.comma.rust\"},{\"comment\":\"curly braces\",\"match\":\"[{}]\",\"name\":\"punctuation.brackets.curly.rust\"},{\"comment\":\"parentheses, round brackets\",\"match\":\"[()]\",\"name\":\"punctuation.brackets.round.rust\"},{\"comment\":\"semicolon\",\"match\":\";\",\"name\":\"punctuation.semi.rust\"},{\"comment\":\"square brackets\",\"match\":\"[\\\\\\\\[\\\\\\\\]]\",\"name\":\"punctuation.brackets.square.rust\"},{\"comment\":\"angle brackets\",\"match\":\"(?<!=)[<>]\",\"name\":\"punctuation.brackets.angle.rust\"}]},\"strings\":{\"patterns\":[{\"begin\":\"(b?)(\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"string.quoted.byte.raw.rust\"},\"2\":{\"name\":\"punctuation.definition.string.rust\"}},\"comment\":\"double-quoted strings and byte strings\",\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.rust\"}},\"name\":\"string.quoted.double.rust\",\"patterns\":[{\"include\":\"#escapes\"},{\"include\":\"#interpolations\"}]},{\"begin\":\"(b?r)(#*)(\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"string.quoted.byte.raw.rust\"},\"2\":{\"name\":\"punctuation.definition.string.raw.rust\"},\"3\":{\"name\":\"punctuation.definition.string.rust\"}},\"comment\":\"double-quoted raw strings and raw byte strings\",\"end\":\"(\\\\\")(\\\\\\\\2)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.rust\"},\"2\":{\"name\":\"punctuation.definition.string.raw.rust\"}},\"name\":\"string.quoted.double.rust\"},{\"begin\":\"(b)?(')\",\"beginCaptures\":{\"1\":{\"name\":\"string.quoted.byte.raw.rust\"},\"2\":{\"name\":\"punctuation.definition.char.rust\"}},\"comment\":\"characters and bytes\",\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.char.rust\"}},\"name\":\"string.quoted.single.char.rust\",\"patterns\":[{\"include\":\"#escapes\"}]}]},\"types\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.type.numeric.rust\"}},\"comment\":\"numeric types\",\"match\":\"(?<![A-Za-z])(f32|f64|i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)\\\\\\\\b\"},{\"begin\":\"\\\\\\\\b(_?[A-Z][A-Za-z0-9_]*)(<)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.type.rust\"},\"2\":{\"name\":\"punctuation.brackets.angle.rust\"}},\"comment\":\"parameterized types\",\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.brackets.angle.rust\"}},\"patterns\":[{\"include\":\"#block-comments\"},{\"include\":\"#comments\"},{\"include\":\"#keywords\"},{\"include\":\"#lvariables\"},{\"include\":\"#lifetimes\"},{\"include\":\"#punctuation\"},{\"include\":\"#types\"},{\"include\":\"#variables\"}]},{\"comment\":\"primitive types\",\"match\":\"\\\\\\\\b(bool|char|str)\\\\\\\\b\",\"name\":\"entity.name.type.primitive.rust\"},{\"captures\":{\"1\":{\"name\":\"keyword.declaration.trait.rust storage.type.rust\"},\"2\":{\"name\":\"entity.name.type.trait.rust\"}},\"comment\":\"trait declarations\",\"match\":\"\\\\\\\\b(trait)\\\\\\\\s+(_?[A-Z][A-Za-z0-9_]*)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.declaration.struct.rust storage.type.rust\"},\"2\":{\"name\":\"entity.name.type.struct.rust\"}},\"comment\":\"struct declarations\",\"match\":\"\\\\\\\\b(struct)\\\\\\\\s+(_?[A-Z][A-Za-z0-9_]*)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.declaration.enum.rust storage.type.rust\"},\"2\":{\"name\":\"entity.name.type.enum.rust\"}},\"comment\":\"enum declarations\",\"match\":\"\\\\\\\\b(enum)\\\\\\\\s+(_?[A-Z][A-Za-z0-9_]*)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.declaration.type.rust storage.type.rust\"},\"2\":{\"name\":\"entity.name.type.declaration.rust\"}},\"comment\":\"type declarations\",\"match\":\"\\\\\\\\b(type)\\\\\\\\s+(_?[A-Z][A-Za-z0-9_]*)\\\\\\\\b\"},{\"comment\":\"types\",\"match\":\"\\\\\\\\b_?[A-Z][A-Za-z0-9_]*\\\\\\\\b(?!!)\",\"name\":\"entity.name.type.rust\"}]},\"variables\":{\"patterns\":[{\"comment\":\"variables\",\"match\":\"\\\\\\\\b(?<!(?<!\\\\\\\\.)\\\\\\\\.)(?:r#(?!(crate|[Ss]elf|super)))?[a-z0-9_]+\\\\\\\\b\",\"name\":\"variable.other.rust\"}]}},\"scopeName\":\"source.rust\",\"aliases\":[\"rs\"]}`)),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BeQkCIfX.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Stylus\",\"fileTypes\":[\"styl\",\"stylus\",\"css.styl\",\"css.stylus\"],\"name\":\"stylus\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#at_rule\"},{\"include\":\"#language_keywords\"},{\"include\":\"#language_constants\"},{\"include\":\"#variable_declaration\"},{\"include\":\"#function\"},{\"include\":\"#selector\"},{\"include\":\"#declaration\"},{\"captures\":{\"1\":{\"name\":\"punctuation.section.property-list.begin.css\"},\"2\":{\"name\":\"punctuation.section.property-list.end.css\"}},\"match\":\"(\\\\\\\\{)(\\\\\\\\})\",\"name\":\"meta.brace.curly.css\"},{\"match\":\"\\\\\\\\{|\\\\\\\\}\",\"name\":\"meta.brace.curly.css\"},{\"include\":\"#numeric\"},{\"include\":\"#string\"},{\"include\":\"#operator\"}],\"repository\":{\"at_rule\":{\"patterns\":[{\"begin\":\"\\\\\\\\s*((@)(import|require))\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.at-rule.import.stylus\"},\"2\":{\"name\":\"punctuation.definition.keyword.stylus\"}},\"end\":\"\\\\\\\\s*((?=;|$|\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.rule.css\"}},\"name\":\"meta.at-rule.import.css\",\"patterns\":[{\"include\":\"#string\"}]},{\"begin\":\"\\\\\\\\s*((@)(extend[s]?)\\\\\\\\b)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.at-rule.extend.stylus\"},\"2\":{\"name\":\"punctuation.definition.keyword.stylus\"}},\"end\":\"\\\\\\\\s*((?=;|$|\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.rule.css\"}},\"name\":\"meta.at-rule.extend.css\",\"patterns\":[{\"include\":\"#selector\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.at-rule.fontface.stylus\"},\"2\":{\"name\":\"punctuation.definition.keyword.stylus\"}},\"match\":\"^\\\\\\\\s*((@)font-face)\\\\\\\\b\",\"name\":\"meta.at-rule.fontface.stylus\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.at-rule.css.stylus\"},\"2\":{\"name\":\"punctuation.definition.keyword.stylus\"}},\"match\":\"^\\\\\\\\s*((@)css)\\\\\\\\b\",\"name\":\"meta.at-rule.css.stylus\"},{\"begin\":\"\\\\\\\\s*((@)charset)\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.at-rule.charset.stylus\"},\"2\":{\"name\":\"punctuation.definition.keyword.stylus\"}},\"end\":\"\\\\\\\\s*((?=;|$|\\\\\\\\n))\",\"name\":\"meta.at-rule.charset.stylus\",\"patterns\":[{\"include\":\"#string\"}]},{\"begin\":\"\\\\\\\\s*((@)keyframes)\\\\\\\\b\\\\\\\\s+([a-zA-Z_-][a-zA-Z0-9_-]*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.at-rule.keyframes.stylus\"},\"2\":{\"name\":\"punctuation.definition.keyword.stylus\"},\"3\":{\"name\":\"entity.name.function.keyframe.stylus\"}},\"end\":\"\\\\\\\\s*((?=\\\\\\\\{|$|\\\\\\\\n))\",\"name\":\"meta.at-rule.keyframes.stylus\"},{\"begin\":\"(?=(\\\\\\\\b(\\\\\\\\d+%|from\\\\\\\\b|to\\\\\\\\b)))\",\"end\":\"(?=(\\\\\\\\{|\\\\\\\\n))\",\"name\":\"meta.at-rule.keyframes.stylus\",\"patterns\":[{\"match\":\"(\\\\\\\\b(\\\\\\\\d+%|from\\\\\\\\b|to\\\\\\\\b))\",\"name\":\"entity.other.attribute-name.stylus\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.at-rule.media.stylus\"},\"2\":{\"name\":\"punctuation.definition.keyword.stylus\"}},\"match\":\"^\\\\\\\\s*((@)media)\\\\\\\\b\",\"name\":\"meta.at-rule.media.stylus\"},{\"match\":\"(?:(?=\\\\\\\\w)(?<![\\\\\\\\w-]))(width|scan|resolution|orientation|monochrome|min-width|min-resolution|min-monochrome|min-height|min-device-width|min-device-height|min-device-aspect-ratio|min-color-index|min-color|min-aspect-ratio|max-width|max-resolution|max-monochrome|max-height|max-device-width|max-device-height|max-device-aspect-ratio|max-color-index|max-color|max-aspect-ratio|height|grid|device-width|device-height|device-aspect-ratio|color-index|color|aspect-ratio)(?:(?<=\\\\\\\\w)(?![\\\\\\\\w-]))\",\"name\":\"support.type.property-name.media-feature.media.css\"},{\"match\":\"(?:(?=\\\\\\\\w)(?<![\\\\\\\\w-]))(tv|tty|screen|projection|print|handheld|embossed|braille|aural|all)(?:(?<=\\\\\\\\w)(?![\\\\\\\\w-]))\",\"name\":\"support.constant.media-type.media.css\"},{\"match\":\"(?:(?=\\\\\\\\w)(?<![\\\\\\\\w-]))(portrait|landscape)(?:(?<=\\\\\\\\w)(?![\\\\\\\\w-]))\",\"name\":\"support.constant.property-value.media-property.media.css\"}]},\"char_escape\":{\"match\":\"\\\\\\\\\\\\\\\\(.)\",\"name\":\"constant.character.escape.stylus\"},\"color\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(rgb|rgba|hsl|hsla)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.color.css\"},\"2\":{\"name\":\"punctuation.section.function.css\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.function.css\"}},\"name\":\"meta.function.color.css\",\"patterns\":[{\"match\":\"\\\\\\\\s*(,)\\\\\\\\s*\",\"name\":\"punctuation.separator.parameter.css\"},{\"include\":\"#numeric\"},{\"include\":\"#property_variable\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.constant.css\"}},\"match\":\"(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\\\\\\\\b\",\"name\":\"constant.other.color.rgb-value.css\"},{\"comment\":\"http://www.w3.org/TR/CSS21/syndata.html#value-def-color\",\"match\":\"\\\\\\\\b(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)\\\\\\\\b\",\"name\":\"support.constant.color.w3c-standard-color-name.css\"},{\"comment\":\"http://www.w3.org/TR/css3-color/#svg-color\",\"match\":\"\\\\\\\\b(aliceblue|antiquewhite|aquamarine|azure|beige|bisque|blanchedalmond|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|gainsboro|ghostwhite|gold|goldenrod|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|limegreen|linen|magenta|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|oldlace|olivedrab|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|thistle|tomato|turquoise|violet|wheat|whitesmoke|yellowgreen)\\\\\\\\b\",\"name\":\"support.constant.color.w3c-extended-color-name.css\"}]},\"comment\":{\"patterns\":[{\"include\":\"#comment_block\"},{\"include\":\"#comment_line\"}]},\"comment_block\":{\"begin\":\"/\\\\\\\\*\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.css\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.css\"}},\"name\":\"comment.block.css\"},\"comment_line\":{\"begin\":\"(^[ \\\\\\\\t]+)?(?=//)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.stylus\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.stylus\"}},\"end\":\"(?=\\\\\\\\n)\",\"name\":\"comment.line.double-slash.stylus\"}]},\"declaration\":{\"begin\":\"((?<=^)[^\\\\\\\\S\\\\\\\\n]+)|((?<=;)[^\\\\\\\\S\\\\\\\\n]*)|((?<=\\\\\\\\{)[^\\\\\\\\S\\\\\\\\n]*)\",\"end\":\"(?=\\\\\\\\n)|(;)|(?=\\\\\\\\})|(\\\\\\\\n)\",\"endCaptures\":{\"2\":{\"name\":\"punctuation.terminator.rule.css\"}},\"name\":\"meta.property-list.css\",\"patterns\":[{\"match\":\"(?<![\\\\\\\\w-])--(?:[-a-zA-Z_]|[^\\\\\\\\x00-\\\\\\\\x7F])(?:[-a-zA-Z0-9_]|[^\\\\\\\\x00-\\\\\\\\x7F]|\\\\\\\\\\\\\\\\(?:[0-9a-fA-F]{1,6}|.))*\",\"name\":\"variable.css\"},{\"include\":\"#language_keywords\"},{\"include\":\"#language_constants\"},{\"match\":\"(?:(?<=^)[^\\\\\\\\S\\\\\\\\n]+(\\\\\\\\n))\"},{\"captures\":{\"1\":{\"name\":\"support.type.property-name.css\"},\"2\":{\"name\":\"punctuation.separator.key-value.css\"},\"3\":{\"name\":\"variable.section.css\"}},\"match\":\"\\\\\\\\G\\\\\\\\s*(counter-reset|counter-increment)(?:(:)|[^\\\\\\\\S\\\\\\\\n])[^\\\\\\\\S\\\\\\\\n]*([a-zA-Z_-][a-zA-Z0-9_-]*)\",\"name\":\"meta.property.counter.css\"},{\"begin\":\"\\\\\\\\G\\\\\\\\s*(filter)(?:(:)|[^\\\\\\\\S\\\\\\\\n])[^\\\\\\\\S\\\\\\\\n]*\",\"beginCaptures\":{\"1\":{\"name\":\"support.type.property-name.css\"},\"2\":{\"name\":\"punctuation.separator.key-value.css\"}},\"end\":\"(?=\\\\\\\\n|;|\\\\\\\\}|$)\",\"name\":\"meta.property.filter.css\",\"patterns\":[{\"include\":\"#function\"},{\"include\":\"#property_values\"}]},{\"include\":\"#property\"},{\"include\":\"#interpolation\"},{\"include\":\"$self\"}]},\"font_name\":{\"match\":\"(\\\\\\\\b(?i:arial|century|comic|courier|cursive|fantasy|futura|garamond|georgia|helvetica|impact|lucida|monospace|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif)\\\\\\\\b)\",\"name\":\"support.constant.font-name.css\"},\"function\":{\"begin\":\"(?=[a-zA-Z_-][a-zA-Z0-9_-]*\\\\\\\\()\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.function.css\"}},\"patterns\":[{\"begin\":\"(format|url|local)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.misc.css\"},\"2\":{\"name\":\"punctuation.section.function.css\"}},\"end\":\"(?=\\\\\\\\))\",\"name\":\"meta.function.misc.css\",\"patterns\":[{\"match\":\"(?<=\\\\\\\\()[^\\\\\\\\)\\\\\\\\s]*(?=\\\\\\\\))\",\"name\":\"string.css\"},{\"include\":\"#string\"},{\"include\":\"#variable\"},{\"include\":\"#operator\"},{\"match\":\"\\\\\\\\s*\"}]},{\"captures\":{\"1\":{\"name\":\"support.function.misc.counter.css\"},\"2\":{\"name\":\"punctuation.section.function.css\"},\"3\":{\"name\":\"variable.section.css\"}},\"match\":\"(counter)(\\\\\\\\()([a-zA-Z_-][a-zA-Z0-9_-]*)(?=\\\\\\\\))\",\"name\":\"meta.function.misc.counter.css\"},{\"begin\":\"(counters)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.misc.counters.css\"},\"2\":{\"name\":\"punctuation.section.function.css\"}},\"end\":\"(?=\\\\\\\\))\",\"name\":\"meta.function.misc.counters.css\",\"patterns\":[{\"match\":\"\\\\\\\\G[a-zA-Z_-][a-zA-Z0-9_-]*\",\"name\":\"variable.section.css\"},{\"match\":\"\\\\\\\\s*(,)\\\\\\\\s*\",\"name\":\"punctuation.separator.parameter.css\"},{\"include\":\"#string\"},{\"include\":\"#interpolation\"}]},{\"begin\":\"(attr)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.misc.attr.css\"},\"2\":{\"name\":\"punctuation.section.function.css\"}},\"end\":\"(?=\\\\\\\\))\",\"name\":\"meta.function.misc.attr.css\",\"patterns\":[{\"match\":\"\\\\\\\\G[a-zA-Z_-][a-zA-Z0-9_-]*\",\"name\":\"entity.other.attribute-name.attribute.css\"},{\"match\":\"(?<=[a-zA-Z0-9_-])\\\\\\\\s*\\\\\\\\b(string|color|url|integer|number|length|em|ex|px|rem|vw|vh|vmin|vmax|mm|cm|in|pt|pc|angle|deg|grad|rad|time|s|ms|frequency|Hz|kHz|%)\\\\\\\\b\",\"name\":\"support.type.attr.css\"},{\"match\":\"\\\\\\\\s*(,)\\\\\\\\s*\",\"name\":\"punctuation.separator.parameter.css\"},{\"include\":\"#string\"},{\"include\":\"#interpolation\"}]},{\"begin\":\"(calc)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.misc.calc.css\"},\"2\":{\"name\":\"punctuation.section.function.css\"}},\"end\":\"(?=\\\\\\\\))\",\"name\":\"meta.function.misc.calc.css\",\"patterns\":[{\"include\":\"#property_values\"}]},{\"begin\":\"(cubic-bezier)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.timing.cubic-bezier.css\"},\"2\":{\"name\":\"punctuation.section.function.css\"}},\"end\":\"(?=\\\\\\\\))\",\"name\":\"meta.function.timing.cubic-bezier.css\",\"patterns\":[{\"match\":\"\\\\\\\\s*(,)\\\\\\\\s*\",\"name\":\"punctuation.separator.parameter.css\"},{\"include\":\"#numeric\"},{\"include\":\"#interpolation\"}]},{\"begin\":\"(steps)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.timing.steps.css\"},\"2\":{\"name\":\"punctuation.section.function.css\"}},\"end\":\"(?=\\\\\\\\))\",\"name\":\"meta.function.timing.steps.css\",\"patterns\":[{\"match\":\"\\\\\\\\s*(,)\\\\\\\\s*\",\"name\":\"punctuation.separator.parameter.css\"},{\"include\":\"#numeric\"},{\"match\":\"\\\\\\\\b(start|end)\\\\\\\\b\",\"name\":\"support.constant.timing.steps.direction.css\"},{\"include\":\"#interpolation\"}]},{\"begin\":\"(linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.gradient.css\"},\"2\":{\"name\":\"punctuation.section.function.css\"}},\"end\":\"(?=\\\\\\\\))\",\"name\":\"meta.function.gradient.css\",\"patterns\":[{\"match\":\"\\\\\\\\s*(,)\\\\\\\\s*\",\"name\":\"punctuation.separator.parameter.css\"},{\"include\":\"#numeric\"},{\"include\":\"#color\"},{\"match\":\"\\\\\\\\b(to|bottom|right|left|top|circle|ellipse|center|closest-side|closest-corner|farthest-side|farthest-corner|at)\\\\\\\\b\",\"name\":\"support.constant.gradient.css\"},{\"include\":\"#interpolation\"}]},{\"begin\":\"(blur|brightness|contrast|grayscale|hue-rotate|invert|opacity|saturate|sepia)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.filter.css\"},\"2\":{\"name\":\"punctuation.section.function.css\"}},\"end\":\"(?=\\\\\\\\))\",\"name\":\"meta.function.filter.css\",\"patterns\":[{\"include\":\"#numeric\"},{\"include\":\"#property_variable\"},{\"include\":\"#interpolation\"}]},{\"begin\":\"(drop-shadow)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.filter.drop-shadow.css\"},\"2\":{\"name\":\"punctuation.section.function.css\"}},\"end\":\"(?=\\\\\\\\))\",\"name\":\"meta.function.filter.drop-shadow.css\",\"patterns\":[{\"include\":\"#numeric\"},{\"include\":\"#color\"},{\"include\":\"#property_variable\"},{\"include\":\"#interpolation\"}]},{\"begin\":\"(matrix|matrix3d|perspective|rotate|rotate3d|rotate[Xx]|rotate[yY]|rotate[zZ]|scale|scale3d|scale[xX]|scale[yY]|scale[zZ]|skew|skew[xX]|skew[yY]|translate|translate3d|translate[xX]|translate[yY]|translate[zZ])(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.transform.css\"},\"2\":{\"name\":\"punctuation.section.function.css\"}},\"end\":\"(?=\\\\\\\\))\",\"name\":\"meta.function.transform.css\",\"patterns\":[{\"include\":\"#numeric\"},{\"include\":\"#property_variable\"},{\"include\":\"#interpolation\"}]},{\"match\":\"(url|local|format|counter|counters|attr|calc)(?=\\\\\\\\()\",\"name\":\"support.function.misc.css\"},{\"match\":\"(cubic-bezier|steps)(?=\\\\\\\\()\",\"name\":\"support.function.timing.css\"},{\"match\":\"(linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient)(?=\\\\\\\\()\",\"name\":\"support.function.gradient.css\"},{\"match\":\"(blur|brightness|contrast|drop-shadow|grayscale|hue-rotate|invert|opacity|saturate|sepia)(?=\\\\\\\\()\",\"name\":\"support.function.filter.css\"},{\"match\":\"(matrix|matrix3d|perspective|rotate|rotate3d|rotate[Xx]|rotate[yY]|rotate[zZ]|scale|scale3d|scale[xX]|scale[yY]|scale[zZ]|skew|skew[xX]|skew[yY]|translate|translate3d|translate[xX]|translate[yY]|translate[zZ])(?=\\\\\\\\()\",\"name\":\"support.function.transform.css\"},{\"begin\":\"([a-zA-Z_-][a-zA-Z0-9_-]*)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.stylus\"},\"2\":{\"name\":\"punctuation.section.function.css\"}},\"end\":\"(?=\\\\\\\\))\",\"name\":\"meta.function.stylus\",\"patterns\":[{\"match\":\"--(?:[-a-zA-Z_]|[^\\\\\\\\x00-\\\\\\\\x7F])(?:[-a-zA-Z0-9_]|[^\\\\\\\\x00-\\\\\\\\x7F]|\\\\\\\\\\\\\\\\(?:[0-9a-fA-F]{1,6}|.))*\",\"name\":\"variable.argument.stylus\"},{\"match\":\"\\\\\\\\s*(,)\\\\\\\\s*\",\"name\":\"punctuation.separator.parameter.css\"},{\"include\":\"#interpolation\"},{\"include\":\"#property_values\"}]},{\"match\":\"\\\\\\\\(\",\"name\":\"punctuation.section.function.css\"}]},\"interpolation\":{\"begin\":\"(?:(\\\\\\\\{)[^\\\\\\\\S\\\\\\\\n]*)(?=[^;=]*[^\\\\\\\\S\\\\\\\\n]*\\\\\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"meta.brace.curly\"}},\"end\":\"(?:[^\\\\\\\\S\\\\\\\\n]*(\\\\\\\\}))|\\\\\\\\n|$\",\"endCaptures\":{\"1\":{\"name\":\"meta.brace.curly\"}},\"name\":\"meta.interpolation.stylus\",\"patterns\":[{\"include\":\"#variable\"},{\"include\":\"#numeric\"},{\"include\":\"#string\"},{\"include\":\"#operator\"}]},\"language_constants\":{\"match\":\"\\\\\\\\b(true|false|null)\\\\\\\\b\",\"name\":\"constant.language.stylus\"},\"language_keywords\":{\"patterns\":[{\"match\":\"(\\\\\\\\b|\\\\\\\\s)(return|else|for|unless|if|else)\\\\\\\\b\",\"name\":\"keyword.control.stylus\"},{\"match\":\"(\\\\\\\\b|\\\\\\\\s)(!important|in|is defined|is a)\\\\\\\\b\",\"name\":\"keyword.other.stylus\"},{\"match\":\"\\\\\\\\barguments\\\\\\\\b\",\"name\":\"variable.language.stylus\"}]},\"numeric\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.css\"}},\"match\":\"(?<!\\\\\\\\w|-)(?:(?:-|\\\\\\\\+)?(?:[0-9]+(?:\\\\\\\\.[0-9]+)?)|(?:\\\\\\\\.[0-9]+))((?:px|pt|ch|cm|mm|in|r?em|ex|pc|deg|g?rad|dpi|dpcm|dppx|fr|ms|s|turn|vh|vmax|vmin|vw)\\\\\\\\b|%)?\",\"name\":\"constant.numeric.css\"}]},\"operator\":{\"patterns\":[{\"match\":\"((?:\\\\\\\\?|:|!|~|\\\\\\\\+|(\\\\\\\\s-\\\\\\\\s)|(?:\\\\\\\\*)?\\\\\\\\*|\\\\\\\\/|%|(\\\\\\\\.)?\\\\\\\\.\\\\\\\\.|<|>|(?:=|:|\\\\\\\\?|\\\\\\\\+|-|\\\\\\\\*|\\\\\\\\/|%|<|>)?=|!=)|\\\\\\\\b(?:in|is(?:nt)?|(?<!:)not|or|and)\\\\\\\\b)\",\"name\":\"keyword.operator.stylus\"},{\"include\":\"#char_escape\"}]},\"property\":{\"begin\":\"(?:\\\\\\\\G\\\\\\\\s*(?:(-webkit-[-A-Za-z]+|-moz-[-A-Za-z]+|-o-[-A-Za-z]+|-ms-[-A-Za-z]+|-khtml-[-A-Za-z]+|zoom|z-index|y|x|wrap|word-wrap|word-spacing|word-break|word|width|widows|white-space-collapse|white-space|white|weight|volume|voice-volume|voice-stress|voice-rate|voice-pitch-range|voice-pitch|voice-family|voice-duration|voice-balance|voice|visibility|vertical-align|variant|user-select|up|unicode-bidi|unicode-range|unicode|trim|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform|touch-action|top-width|top-style|top-right-radius|top-left-radius|top-color|top|timing-function|text-wrap|text-transform|text-shadow|text-replace|text-rendering|text-overflow|text-outline|text-justify|text-indent|text-height|text-emphasis|text-decoration|text-align-last|text-align|text|target-position|target-new|target-name|target|table-layout|tab-size|style-type|style-position|style-image|style|string-set|stretch|stress|stacking-strategy|stacking-shift|stacking-ruby|stacking|src|speed|speech-rate|speech|speak-punctuation|speak-numeral|speak-header|speak|span|spacing|space-collapse|space|sizing|size-adjust|size|shadow|respond-to|rule-width|rule-style|rule-color|rule|ruby-span|ruby-position|ruby-overhang|ruby-align|ruby|rows|rotation-point|rotation|role|right-width|right-style|right-color|right|richness|rest-before|rest-after|rest|resource|resize|reset|replace|repeat|rendering-intent|rate|radius|quotes|punctuation-trim|punctuation|property|profile|presentation-level|presentation|position|pointer-events|point|play-state|play-during|play-count|pitch-range|pitch|phonemes|pause-before|pause-after|pause|page-policy|page-break-inside|page-break-before|page-break-after|page|padding-top|padding-right|padding-left|padding-bottom|padding|pack|overhang|overflow-y|overflow-x|overflow-style|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|origin|orientation|orient|ordinal-group|order|opacity|offset|numeral|new|nav-up|nav-right|nav-left|nav-index|nav-down|nav|name|move-to|model|mix-blend-mode|min-width|min-height|min|max-width|max-height|max|marquee-style|marquee-speed|marquee-play-count|marquee-direction|marquee|marks|mark-before|mark-after|mark|margin-top|margin-right|margin-left|margin-bottom|margin|mask-image|list-style-type|list-style-position|list-style-image|list-style|list|lines|line-stacking-strategy|line-stacking-shift|line-stacking-ruby|line-stacking|line-height|line-break|level|letter-spacing|length|left-width|left-style|left-color|left|label|justify-content|justify|iteration-count|inline-box-align|initial-value|initial-size|initial-before-align|initial-before-adjust|initial-after-align|initial-after-adjust|index|indent|increment|image-resolution|image-orientation|image|icon|hyphens|hyphenate-resource|hyphenate-lines|hyphenate-character|hyphenate-before|hyphenate-after|hyphenate|height|header|hanging-punctuation|gap|grid|grid-area|grid-auto-columns|grid-auto-flow|grid-auto-rows|grid-column|grid-column-end|grid-column-start|grid-row|grid-row-end|grid-row-start|grid-template|grid-template-areas|grid-template-columns|grid-template-rows|row-gap|gap|font-kerning|font-language-override|font-weight|font-variant-caps|font-variant|font-style|font-synthesis|font-stretch|font-size-adjust|font-size|font-family|font|float-offset|float|flex-wrap|flex-shrink|flex-grow|flex-group|flex-flow|flex-direction|flex-basis|flex|fit-position|fit|fill|filter|family|empty-cells|emphasis|elevation|duration|drop-initial-value|drop-initial-size|drop-initial-before-align|drop-initial-before-adjust|drop-initial-after-align|drop-initial-after-adjust|drop|down|dominant-baseline|display-role|display-model|display|direction|delay|decoration-break|decoration|cursor|cue-before|cue-after|cue|crop|counter-reset|counter-increment|counter|count|content|columns|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|column-break-before|column-break-after|column|color-profile|color|collapse|clip|clear|character|caption-side|break-inside|break-before|break-after|break|box-sizing|box-shadow|box-pack|box-orient|box-ordinal-group|box-lines|box-flex-group|box-flex|box-direction|box-decoration-break|box-align|box|bottom-width|bottom-style|bottom-right-radius|bottom-left-radius|bottom-color|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-length|border-left-width|border-left-style|border-left-color|border-left|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|bookmark-target|bookmark-level|bookmark-label|bookmark|binding|bidi|before|baseline-shift|baseline|balance|background-blend-mode|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-break|background-attachment|background|azimuth|attachment|appearance|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-duration|animation-direction|animation-delay|animation-fill-mode|animation|alignment-baseline|alignment-adjust|alignment|align-self|align-last|align-items|align-content|align|after|adjust|will-change)|(writing-mode|text-anchor|stroke-width|stroke-opacity|stroke-miterlimit|stroke-linejoin|stroke-linecap|stroke-dashoffset|stroke-dasharray|stroke|stop-opacity|stop-color|shape-rendering|marker-start|marker-mid|marker-end|lighting-color|kerning|image-rendering|glyph-orientation-vertical|glyph-orientation-horizontal|flood-opacity|flood-color|fill-rule|fill-opacity|fill|enable-background|color-rendering|color-interpolation-filters|color-interpolation|clip-rule|clip-path)|([a-zA-Z_-][a-zA-Z0-9_-]*))(?!([^\\\\\\\\S\\\\\\\\n]*&)|([^\\\\\\\\S\\\\\\\\n]*\\\\\\\\{))(?=:|([^\\\\\\\\S\\\\\\\\n]+[^\\\\\\\\s])))\",\"beginCaptures\":{\"1\":{\"name\":\"support.type.property-name.css\"},\"2\":{\"name\":\"support.type.property-name.svg.css\"},\"3\":{\"name\":\"support.function.mixin.stylus\"}},\"end\":\"(;)|(?=\\\\\\\\n|\\\\\\\\}|$)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.rule.css\"}},\"patterns\":[{\"include\":\"#property_value\"}]},\"property_value\":{\"begin\":\"\\\\\\\\G(?:(:)|(\\\\\\\\s))(\\\\\\\\s*)(?!&)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.key-value.css\"},\"2\":{\"name\":\"punctuation.separator.key-value.css\"}},\"end\":\"(?=\\\\\\\\n|;|\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.rule.css\"}},\"name\":\"meta.property-value.css\",\"patterns\":[{\"include\":\"#property_values\"},{\"match\":\"[^\\\\\\\\n]+?\"}]},\"property_values\":{\"patterns\":[{\"include\":\"#function\"},{\"include\":\"#comment\"},{\"include\":\"#language_keywords\"},{\"include\":\"#language_constants\"},{\"match\":\"(?:(?=\\\\\\\\w)(?<![\\\\\\\\w-]))(wrap-reverse|wrap|whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|unicase|underline|ultra-expanded|ultra-condensed|transparent|transform|top|titling-caps|thin|thick|text-top|text-bottom|text|tb-rl|table-row-group|table-row|table-header-group|table-footer-group|table-column-group|table-column|table-cell|table|sw-resize|super|strict|stretch|step-start|step-end|static|square|space-between|space-around|space|solid|soft-light|small-caps|separate|semi-expanded|semi-condensed|se-resize|scroll|screen|saturation|s-resize|running|rtl|row-reverse|row-resize|row|round|right|ridge|reverse|repeat-y|repeat-x|repeat|relative|progressive|progress|pre-wrap|pre-line|pre|pointer|petite-caps|paused|pan-x|pan-left|pan-right|pan-y|pan-up|pan-down|padding-box|overline|overlay|outside|outset|optimizeSpeed|optimizeLegibility|opacity|oblique|nw-resize|nowrap|not-allowed|normal|none|no-repeat|no-drop|newspaper|ne-resize|n-resize|multiply|move|middle|medium|max-height|manipulation|main-size|luminosity|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|local|list-item|linear(?!-)|line-through|line-edge|line|lighter|lighten|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline-block|inline|inherit|infinite|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|hue|horizontal|hidden|help|hard-light|hand|groove|geometricPrecision|forwards|flex-start|flex-end|flex|fixed|extra-expanded|extra-condensed|expanded|exclusion|ellipsis|ease-out|ease-in-out|ease-in|ease|e-resize|double|dotted|distribute-space|distribute-letter|distribute-all-lines|distribute|disc|disabled|difference|default|decimal|dashed|darken|currentColor|crosshair|cover|content-box|contain|condensed|column-reverse|column|color-dodge|color-burn|color|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|border-box|bolder|bold|block|bidi-override|below|baseline|balance|backwards|auto|antialiased|always|alternate-reverse|alternate|all-small-caps|all-scroll|all-petite-caps|all|absolute)(?:(?<=\\\\\\\\w)(?![\\\\\\\\w-]))\",\"name\":\"support.constant.property-value.css\"},{\"match\":\"(?:(?=\\\\\\\\w)(?<![\\\\\\\\w-]))(start|sRGB|square|round|optimizeSpeed|optimizeQuality|nonzero|miter|middle|linearRGB|geometricPrecision |evenodd |end |crispEdges|butt|bevel)(?:(?<=\\\\\\\\w)(?![\\\\\\\\w-]))\",\"name\":\"support.constant.property-value.svg.css\"},{\"include\":\"#font_name\"},{\"include\":\"#numeric\"},{\"include\":\"#color\"},{\"include\":\"#string\"},{\"match\":\"\\\\\\\\!\\\\\\\\s*important\",\"name\":\"keyword.other.important.css\"},{\"include\":\"#operator\"},{\"include\":\"#stylus_keywords\"},{\"include\":\"#property_variable\"}]},\"property_variable\":{\"patterns\":[{\"include\":\"#variable\"},{\"match\":\"(?<!^)(\\\\\\\\@[a-zA-Z_-][a-zA-Z0-9_-]*)\",\"name\":\"variable.property.stylus\"}]},\"selector\":{\"patterns\":[{\"match\":\"(?:(?=\\\\\\\\w)(?<![\\\\\\\\w-]))(a|abbr|acronym|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|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|main|map|mark|math|menu|menuitem|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|picture|pre|progress|q|rb|rp|rt|rtc|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|svg|table|tbody|td|template|textarea|tfoot|th|thead|time|title|tr|track|tt|u|ul|var|video|wbr)(?:(?<=\\\\\\\\w)(?![\\\\\\\\w-]))\",\"name\":\"entity.name.tag.css\"},{\"match\":\"(?:(?=\\\\\\\\w)(?<![\\\\\\\\w-]))(vkern|view|use|tspan|tref|title|textPath|text|symbol|switch|svg|style|stop|set|script|rect|radialGradient|polyline|polygon|pattern|path|mpath|missing-glyph|metadata|mask|marker|linearGradient|line|image|hkern|glyphRef|glyph|g|foreignObject|font-face-uri|font-face-src|font-face-name|font-face-format|font-face|font|filter|feTurbulence|feTile|feSpotLight|feSpecularLighting|fePointLight|feOffset|feMorphology|feMergeNode|feMerge|feImage|feGaussianBlur|feFuncR|feFuncG|feFuncB|feFuncA|feFlood|feDistantLight|feDisplacementMap|feDiffuseLighting|feConvolveMatrix|feComposite|feComponentTransfer|feColorMatrix|feBlend|ellipse|desc|defs|cursor|color-profile|clipPath|circle|animateTransform|animateMotion|animateColor|animate|altGlyphItem|altGlyphDef|altGlyph|a)(?:(?<=\\\\\\\\w)(?![\\\\\\\\w-]))\",\"name\":\"entity.name.tag.svg.css\"},{\"match\":\"\\\\\\\\s*(\\\\\\\\,)\\\\\\\\s*\",\"name\":\"meta.selector.stylus\"},{\"match\":\"\\\\\\\\*\",\"name\":\"meta.selector.stylus\"},{\"captures\":{\"2\":{\"name\":\"entity.other.attribute-name.parent-selector-suffix.stylus\"}},\"match\":\"\\\\\\\\s*(\\\\\\\\&)([a-zA-Z0-9_-]+)\\\\\\\\s*\",\"name\":\"meta.selector.stylus\"},{\"match\":\"\\\\\\\\s*(\\\\\\\\&)\\\\\\\\s*\",\"name\":\"meta.selector.stylus\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.css\"}},\"match\":\"(\\\\\\\\.)[a-zA-Z0-9_-]+\",\"name\":\"entity.other.attribute-name.class.css\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.css\"}},\"match\":\"(#)[a-zA-Z][a-zA-Z0-9_-]*\",\"name\":\"entity.other.attribute-name.id.css\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.css\"}},\"match\":\"(:+)(after|before|content|first-letter|first-line|host|(-(moz|webkit|ms)-)?selection)\\\\\\\\b\",\"name\":\"entity.other.attribute-name.pseudo-element.css\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.css\"}},\"match\":\"(:)((first|last)-child|(first|last|only)-of-type|empty|root|target|first|left|right)\\\\\\\\b\",\"name\":\"entity.other.attribute-name.pseudo-class.css\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.css\"}},\"match\":\"(:)(checked|enabled|default|disabled|indeterminate|invalid|optional|required|valid)\\\\\\\\b\",\"name\":\"entity.other.attribute-name.pseudo-class.ui-state.css\"},{\"begin\":\"((:)not)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.other.attribute-name.pseudo-class.css\"},\"2\":{\"name\":\"punctuation.definition.entity.css\"},\"3\":{\"name\":\"punctuation.section.function.css\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.function.css\"}},\"patterns\":[{\"include\":\"#selector\"}]},{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.pseudo-class.css\"},\"2\":{\"name\":\"punctuation.definition.entity.css\"},\"3\":{\"name\":\"punctuation.section.function.css\"},\"4\":{\"name\":\"constant.numeric.css\"},\"5\":{\"name\":\"punctuation.section.function.css\"}},\"match\":\"((:)nth-(?:(?:last-)?child|(?:last-)?of-type))(\\\\\\\\()(\\\\\\\\-?(?:\\\\\\\\d+n?|n)(?:\\\\\\\\+\\\\\\\\d+)?|even|odd)(\\\\\\\\))\"},{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.pseudo-class.css\"},\"2\":{\"name\":\"puncutation.definition.entity.css\"},\"3\":{\"name\":\"punctuation.section.function.css\"},\"4\":{\"name\":\"constant.language.css\"},\"5\":{\"name\":\"punctuation.section.function.css\"}},\"match\":\"((:)dir)\\\\\\\\s*(?:(\\\\\\\\()(ltr|rtl)?(\\\\\\\\)))?\"},{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.pseudo-class.css\"},\"2\":{\"name\":\"puncutation.definition.entity.css\"},\"3\":{\"name\":\"punctuation.section.function.css\"},\"4\":{\"name\":\"constant.language.css\"},\"6\":{\"name\":\"punctuation.section.function.css\"}},\"match\":\"((:)lang)\\\\\\\\s*(?:(\\\\\\\\()(\\\\\\\\w+(-\\\\\\\\w+)?)?(\\\\\\\\)))?\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.css\"}},\"match\":\"(:)(active|hover|link|visited|focus)\\\\\\\\b\",\"name\":\"entity.other.attribute-name.pseudo-class.css\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.css\"}},\"match\":\"(::)(shadow)\\\\\\\\b\",\"name\":\"entity.other.attribute-name.pseudo-class.css\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.css\"},\"2\":{\"name\":\"entity.other.attribute-name.attribute.css\"},\"3\":{\"name\":\"punctuation.separator.operator.css\"},\"4\":{\"name\":\"string.unquoted.attribute-value.css\"},\"5\":{\"name\":\"string.quoted.double.attribute-value.css\"},\"6\":{\"name\":\"punctuation.definition.string.begin.css\"},\"7\":{\"name\":\"punctuation.definition.string.end.css\"},\"8\":{\"name\":\"punctuation.definition.entity.css\"}},\"match\":\"(?i)(\\\\\\\\[)\\\\\\\\s*(-?[_a-z\\\\\\\\\\\\\\\\[[:^ascii:]]][_a-z0-9\\\\\\\\-\\\\\\\\\\\\\\\\[[:^ascii:]]]*)(?:\\\\\\\\s*([~|^$*]?=)\\\\\\\\s*(?:(-?[_a-z\\\\\\\\\\\\\\\\[[:^ascii:]]][_a-z0-9\\\\\\\\-\\\\\\\\\\\\\\\\[[:^ascii:]]]*)|((?>(['\\\\\"])(?:[^\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*?(\\\\\\\\6)))))?\\\\\\\\s*(\\\\\\\\])\",\"name\":\"meta.attribute-selector.css\"},{\"include\":\"#interpolation\"},{\"include\":\"#variable\"}]},\"string\":{\"patterns\":[{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.css\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.css\"}},\"name\":\"string.quoted.double.css\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\([a-fA-F0-9]{1,6}|.)\",\"name\":\"constant.character.escape.css\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.css\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.css\"}},\"name\":\"string.quoted.single.css\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\([a-fA-F0-9]{1,6}|.)\",\"name\":\"constant.character.escape.css\"}]}]},\"variable\":{\"match\":\"(\\\\\\\\$[a-zA-Z_-][a-zA-Z0-9_-]*)\",\"name\":\"variable.stylus\"},\"variable_declaration\":{\"begin\":\"^[^\\\\\\\\S\\\\\\\\n]*(\\\\\\\\$?[a-zA-Z_-][a-zA-Z0-9_-]*)[^\\\\\\\\S\\\\\\\\n]*(\\\\\\\\=|\\\\\\\\?\\\\\\\\=|\\\\\\\\:\\\\\\\\=)\",\"beginCaptures\":{\"1\":{\"name\":\"variable.stylus\"},\"2\":{\"name\":\"keyword.operator.stylus\"}},\"end\":\"(\\\\\\\\n)|(;)|(?=\\\\\\\\})\",\"endCaptures\":{\"2\":{\"name\":\"punctuation.terminator.rule.css\"}},\"patterns\":[{\"include\":\"#property_values\"}]}},\"scopeName\":\"source.stylus\",\"aliases\":[\"styl\"]}`)),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BfCpw3nA.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Less\",\"name\":\"less\",\"patterns\":[{\"include\":\"#comment-block\"},{\"include\":\"#less-namespace-accessors\"},{\"include\":\"#less-extend\"},{\"include\":\"#at-rules\"},{\"include\":\"#less-variable-assignment\"},{\"include\":\"#property-list\"},{\"include\":\"#selector\"}],\"repository\":{\"angle-type\":{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.less\"}},\"match\":\"(?i:[-+]?(?:(?:\\\\\\\\d*\\\\\\\\.\\\\\\\\d+(?:[eE](?:[-+]?\\\\\\\\d+))*)|(?:[-+]?\\\\\\\\d+))(deg|grad|rad|turn))\\\\\\\\b\",\"name\":\"constant.numeric.less\"},\"arbitrary-repetition\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.arbitrary-repetition.less\"}},\"match\":\"\\\\\\\\s*(?:(,))\"},\"at-charset\":{\"begin\":\"\\\\\\\\s*((@)charset\\\\\\\\b)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.at-rule.charset.less\"},\"2\":{\"name\":\"punctuation.definition.keyword.less\"}},\"end\":\"\\\\\\\\s*((?=;|$))\",\"name\":\"meta.at-rule.charset.less\",\"patterns\":[{\"include\":\"#literal-string\"}]},\"at-container\":{\"begin\":\"(?=\\\\\\\\s*@container)\",\"end\":\"\\\\\\\\s*(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.end.less\"}},\"patterns\":[{\"begin\":\"((@)container)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.at-rule.container.less\"},\"2\":{\"name\":\"punctuation.definition.keyword.less\"},\"3\":{\"name\":\"support.constant.container.less\"}},\"end\":\"(?=\\\\\\\\{)\",\"name\":\"meta.at-rule.container.less\",\"patterns\":[{\"begin\":\"\\\\\\\\s*(?=[^{;])\",\"end\":\"\\\\\\\\s*(?=[{;])\",\"patterns\":[{\"match\":\"\\\\\\\\b(not|and|or)\\\\\\\\b\",\"name\":\"keyword.operator.comparison.less\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.at-rule.container-query.less\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"support.type.property-name.less\"}},\"match\":\"\\\\\\\\b(aspect-ratio|block-size|height|inline-size|orientation|width)\\\\\\\\b\",\"name\":\"support.constant.size-feature.less\"},{\"match\":\"((<|>)=?)|=|\\\\\\\\/\",\"name\":\"keyword.operator.comparison.less\"},{\"match\":\":\",\"name\":\"punctuation.separator.key-value.less\"},{\"match\":\"portrait|landscape\",\"name\":\"support.constant.property-value.less\"},{\"include\":\"#numeric-values\"},{\"match\":\"\\\\\\\\/\",\"name\":\"keyword.operator.arithmetic.less\"},{\"include\":\"#var-function\"},{\"include\":\"#less-variables\"},{\"include\":\"#less-variable-interpolation\"}]},{\"include\":\"#style-function\"},{\"match\":\"--|(?:-?(?:(?:[a-zA-Z_]|[\\\\\\\\x{00B7}\\\\\\\\x{00C0}-\\\\\\\\x{00D6}\\\\\\\\x{00D8}-\\\\\\\\x{00F6}\\\\\\\\x{00F8}-\\\\\\\\x{037D}\\\\\\\\x{037F}-\\\\\\\\x{1FFF}\\\\\\\\x{200C}\\\\\\\\x{200D}\\\\\\\\x{203F}\\\\\\\\x{2040}\\\\\\\\x{2070}-\\\\\\\\x{218F}\\\\\\\\x{2C00}-\\\\\\\\x{2FEF}\\\\\\\\x{3001}-\\\\\\\\x{D7FF}\\\\\\\\x{F900}-\\\\\\\\x{FDCF}\\\\\\\\x{FDF0}-\\\\\\\\x{FFFD}\\\\\\\\x{10000}-\\\\\\\\x{EFFFF}])|(?:\\\\\\\\\\\\\\\\(?:\\\\\\\\N|[[:^xdigit:]]|[[:xdigit:]]{1,6}[\\\\\\\\s\\\\\\\\R]))))(?:(?:[-\\\\\\\\da-zA-Z_]|[\\\\\\\\x{00B7}\\\\\\\\x{00C0}-\\\\\\\\x{00D6}\\\\\\\\x{00D8}-\\\\\\\\x{00F6}\\\\\\\\x{00F8}-\\\\\\\\x{037D}\\\\\\\\x{037F}-\\\\\\\\x{1FFF}\\\\\\\\x{200C}\\\\\\\\x{200D}\\\\\\\\x{203F}\\\\\\\\x{2040}\\\\\\\\x{2070}-\\\\\\\\x{218F}\\\\\\\\x{2C00}-\\\\\\\\x{2FEF}\\\\\\\\x{3001}-\\\\\\\\x{D7FF}\\\\\\\\x{F900}-\\\\\\\\x{FDCF}\\\\\\\\x{FDF0}-\\\\\\\\x{FFFD}\\\\\\\\x{10000}-\\\\\\\\x{EFFFF}])|(?:\\\\\\\\\\\\\\\\(?:\\\\\\\\N|[[:^xdigit:]]|[[:xdigit:]]{1,6}[\\\\\\\\s\\\\\\\\R])))*\",\"name\":\"variable.parameter.container-name.css\"},{\"include\":\"#arbitrary-repetition\"},{\"include\":\"#less-variables\"}]}]},{\"begin\":\"\\\\\\\\s*(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.begin.less\"}},\"end\":\"(?=\\\\\\\\})\",\"patterns\":[{\"include\":\"#rule-list-body\"},{\"include\":\"$self\"}]}]},\"at-counter-style\":{\"begin\":\"\\\\\\\\s*((@)counter-style\\\\\\\\b)\\\\\\\\s+(?:(?i:\\\\\\\\b(decimal|none)\\\\\\\\b)|(-?(?:[[_a-zA-Z][^\\\\\\\\x{00}-\\\\\\\\x{7F}]]|(?:\\\\\\\\\\\\\\\\\\\\\\\\h{1,6}[\\\\\\\\s\\\\\\\\t\\\\\\\\n\\\\\\\\f]?|\\\\\\\\\\\\\\\\[^\\\\\\\\n\\\\\\\\f\\\\\\\\h]))(?:[[-\\\\\\\\w][^\\\\\\\\x{00}-\\\\\\\\x{7F}]]|(?:\\\\\\\\\\\\\\\\\\\\\\\\h{1,6}[\\\\\\\\s\\\\\\\\t\\\\\\\\n\\\\\\\\f]?|\\\\\\\\\\\\\\\\[^\\\\\\\\n\\\\\\\\f\\\\\\\\h]))*))\\\\\\\\s*(?=\\\\\\\\{|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.at-rule.counter-style.less\"},\"2\":{\"name\":\"punctuation.definition.keyword.less\"},\"3\":{\"name\":\"invalid.illegal.counter-style-name.less\"},\"4\":{\"name\":\"entity.other.counter-style-name.css\"}},\"end\":\"\\\\\\\\s*(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.begin.less\"}},\"name\":\"meta.at-rule.counter-style.less\",\"patterns\":[{\"include\":\"#comment-block\"},{\"include\":\"#rule-list\"}]},\"at-custom-media\":{\"begin\":\"(?=\\\\\\\\s*@custom-media\\\\\\\\b)\",\"end\":\"\\\\\\\\s*(?=;)\",\"name\":\"meta.at-rule.custom-media.less\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"punctuation.section.property-list.less\"}},\"match\":\"\\\\\\\\s*;\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.at-rule.custom-media.less\"},\"2\":{\"name\":\"punctuation.definition.keyword.less\"},\"3\":{\"name\":\"support.constant.custom-media.less\"}},\"match\":\"\\\\\\\\s*((@)custom-media)(?=.*?)\"},{\"include\":\"#media-query-list\"}]},\"at-font-face\":{\"begin\":\"\\\\\\\\s*((@)font-face)\\\\\\\\s*(?=\\\\\\\\{|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.at-rule.font-face.less\"},\"2\":{\"name\":\"punctuation.definition.keyword.less\"}},\"end\":\"\\\\\\\\s*(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.end.less\"}},\"name\":\"meta.at-rule.font-face.less\",\"patterns\":[{\"include\":\"#comment-block\"},{\"include\":\"#rule-list\"}]},\"at-import\":{\"begin\":\"\\\\\\\\s*((@)import\\\\\\\\b)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.at-rule.import.less\"},\"2\":{\"name\":\"punctuation.definition.keyword.less\"}},\"end\":\"\\\\\\\\;\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.rule.less\"}},\"name\":\"meta.at-rule.import.less\",\"patterns\":[{\"include\":\"#url-function\"},{\"include\":\"#less-variables\"},{\"begin\":\"(?<=([\\\\\"'])|([\\\\\"']\\\\\\\\)))\\\\\\\\s*\",\"end\":\"\\\\\\\\s*(?=\\\\\\\\;)\",\"patterns\":[{\"include\":\"#media-query\"}]},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.group.less\",\"patterns\":[{\"match\":\"reference|inline|less|css|once|multiple|optional\",\"name\":\"constant.language.import-directive.less\"},{\"include\":\"#comma-delimiter\"}]},{\"include\":\"#literal-string\"}]},\"at-keyframes\":{\"begin\":\"\\\\\\\\s*((@)keyframes)(?=.*?\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.at-rule.keyframe.less\"},\"2\":{\"name\":\"punctuation.definition.keyword.less\"},\"4\":{\"name\":\"support.constant.keyframe.less\"}},\"end\":\"\\\\\\\\s*(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.end.less\"}},\"patterns\":[{\"begin\":\"\\\\\\\\s*(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.begin.less\"}},\"end\":\"(?=\\\\\\\\})\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.keyframe-selector.less\"},\"2\":{\"name\":\"constant.numeric.less\"},\"3\":{\"name\":\"keyword.other.unit.less\"}},\"match\":\"\\\\\\\\s*(?:(from|to)|((?:\\\\\\\\.[0-9]+|[0-9]+(?:\\\\\\\\.[0-9]*)?)(%)))\\\\\\\\s*,?\\\\\\\\s*\"},{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\s*(?=[^{;])\",\"end\":\"\\\\\\\\s*(?=\\\\\\\\{)\",\"name\":\"meta.at-rule.keyframe.less\",\"patterns\":[{\"include\":\"#keyframe-name\"},{\"include\":\"#arbitrary-repetition\"}]}]},\"at-media\":{\"begin\":\"(?=\\\\\\\\s*@media\\\\\\\\b)\",\"end\":\"\\\\\\\\s*(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.end.less\"}},\"patterns\":[{\"begin\":\"\\\\\\\\s*((@)media)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.at-rule.media.less\"},\"2\":{\"name\":\"punctuation.definition.keyword.less\"},\"3\":{\"name\":\"support.constant.media.less\"}},\"end\":\"\\\\\\\\s*(?=\\\\\\\\{)\",\"name\":\"meta.at-rule.media.less\",\"patterns\":[{\"include\":\"#media-query-list\"}]},{\"begin\":\"\\\\\\\\s*(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.begin.less\"}},\"end\":\"(?=\\\\\\\\})\",\"patterns\":[{\"include\":\"#rule-list-body\"},{\"include\":\"$self\"}]}]},\"at-namespace\":{\"begin\":\"\\\\\\\\s*((@)namespace)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.at-rule.namespace.less\"},\"2\":{\"name\":\"punctuation.definition.keyword.less\"}},\"end\":\"\\\\\\\\;\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.rule.less\"}},\"name\":\"meta.at-rule.namespace.less\",\"patterns\":[{\"include\":\"#url-function\"},{\"include\":\"#literal-string\"},{\"match\":\"(-?(?:[[_a-zA-Z][^\\\\\\\\x{00}-\\\\\\\\x{7F}]]|(?:\\\\\\\\\\\\\\\\\\\\\\\\h{1,6}[\\\\\\\\s\\\\\\\\t\\\\\\\\n\\\\\\\\f]?|\\\\\\\\\\\\\\\\[^\\\\\\\\n\\\\\\\\f\\\\\\\\h]))(?:[[-\\\\\\\\w][^\\\\\\\\x{00}-\\\\\\\\x{7F}]]|(?:\\\\\\\\\\\\\\\\\\\\\\\\h{1,6}[\\\\\\\\s\\\\\\\\t\\\\\\\\n\\\\\\\\f]?|\\\\\\\\\\\\\\\\[^\\\\\\\\n\\\\\\\\f\\\\\\\\h]))*)\",\"name\":\"entity.name.constant.namespace-prefix.less\"}]},\"at-page\":{\"captures\":{\"1\":{\"name\":\"keyword.control.at-rule.page.less\"},\"2\":{\"name\":\"punctuation.definition.keyword.less\"},\"3\":{\"name\":\"punctuation.definition.entity.less\"},\"4\":{\"name\":\"entity.other.attribute-name.pseudo-class.less\"}},\"match\":\"\\\\\\\\s*((@)page)\\\\\\\\s*(?:(:)(first|left|right))?\\\\\\\\s*(?=\\\\\\\\{|$)\",\"name\":\"meta.at-rule.page.less\",\"patterns\":[{\"include\":\"#comment-block\"},{\"include\":\"#rule-list\"}]},\"at-rules\":{\"patterns\":[{\"include\":\"#at-charset\"},{\"include\":\"#at-container\"},{\"include\":\"#at-counter-style\"},{\"include\":\"#at-custom-media\"},{\"include\":\"#at-font-face\"},{\"include\":\"#at-media\"},{\"include\":\"#at-import\"},{\"include\":\"#at-keyframes\"},{\"include\":\"#at-namespace\"},{\"include\":\"#at-page\"},{\"include\":\"#at-supports\"},{\"include\":\"#at-viewport\"}]},\"at-supports\":{\"begin\":\"(?=\\\\\\\\s*@supports\\\\\\\\b)\",\"end\":\"(?=\\\\\\\\s*)(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.end.less\"}},\"patterns\":[{\"begin\":\"\\\\\\\\s*((@)supports)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.at-rule.supports.less\"},\"2\":{\"name\":\"punctuation.definition.keyword.less\"},\"3\":{\"name\":\"support.constant.supports.less\"}},\"end\":\"\\\\\\\\s*(?=\\\\\\\\{)\",\"name\":\"meta.at-rule.supports.less\",\"patterns\":[{\"include\":\"#at-supports-operators\"},{\"include\":\"#at-supports-parens\"}]},{\"begin\":\"\\\\\\\\s*(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.property-list.begin.less\"}},\"end\":\"(?=\\\\\\\\})\",\"patterns\":[{\"include\":\"#rule-list-body\"},{\"include\":\"$self\"}]}]},\"at-supports-operators\":{\"match\":\"\\\\\\\\b(?:and|or|not)\\\\\\\\b\",\"name\":\"keyword.operator.logic.less\"},\"at-supports-parens\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.group.less\",\"patterns\":[{\"include\":\"#at-supports-operators\"},{\"include\":\"#at-supports-parens\"},{\"include\":\"#rule-list-body\"}]},\"attr-function\":{\"begin\":\"\\\\\\\\b(attr)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.filter.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#qualified-name\"},{\"include\":\"#literal-string\"},{\"begin\":\"(-?(?:[[_a-zA-Z][^\\\\\\\\x{00}-\\\\\\\\x{7F}]]|(?:\\\\\\\\\\\\\\\\\\\\\\\\h{1,6}[\\\\\\\\s\\\\\\\\t\\\\\\\\n\\\\\\\\f]?|\\\\\\\\\\\\\\\\[^\\\\\\\\n\\\\\\\\f\\\\\\\\h]))(?:[[-\\\\\\\\w][^\\\\\\\\x{00}-\\\\\\\\x{7F}]]|(?:\\\\\\\\\\\\\\\\\\\\\\\\h{1,6}[\\\\\\\\s\\\\\\\\t\\\\\\\\n\\\\\\\\f]?|\\\\\\\\\\\\\\\\[^\\\\\\\\n\\\\\\\\f\\\\\\\\h]))*)\",\"end\":\"(?=\\\\\\\\))\",\"name\":\"entity.other.attribute-name.less\",\"patterns\":[{\"match\":\"\\\\\\\\b((?i:em|ex|ch|rem)|(?i:vw|vh|vmin|vmax)|(?i:cm|mm|q|in|pt|pc|px|fr)|(?i:deg|grad|rad|turn)|(?i:s|ms)|(?i:Hz|kHz)|(?i:dpi|dpcm|dppx))\\\\\\\\b\",\"name\":\"keyword.other.unit.less\"},{\"include\":\"#comma-delimiter\"},{\"include\":\"#property-value-constants\"},{\"include\":\"#numeric-values\"}]},{\"include\":\"#color-values\"}]}]},\"builtin-functions\":{\"patterns\":[{\"include\":\"#attr-function\"},{\"include\":\"#calc-function\"},{\"include\":\"#color-functions\"},{\"include\":\"#counter-functions\"},{\"include\":\"#cross-fade-function\"},{\"include\":\"#cubic-bezier-function\"},{\"include\":\"#filter-function\"},{\"include\":\"#fit-content-function\"},{\"include\":\"#format-function\"},{\"include\":\"#gradient-functions\"},{\"include\":\"#grid-repeat-function\"},{\"include\":\"#image-function\"},{\"include\":\"#less-functions\"},{\"include\":\"#local-function\"},{\"include\":\"#minmax-function\"},{\"include\":\"#regexp-function\"},{\"include\":\"#shape-functions\"},{\"include\":\"#steps-function\"},{\"include\":\"#symbols-function\"},{\"include\":\"#transform-functions\"},{\"include\":\"#url-function\"},{\"include\":\"#var-function\"}]},\"calc-function\":{\"begin\":\"\\\\\\\\b(calc)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.calc.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#less-strings\"},{\"include\":\"#var-function\"},{\"include\":\"#calc-function\"},{\"include\":\"#attr-function\"},{\"include\":\"#less-math\"},{\"include\":\"#relative-color\"}]}]},\"color-adjuster-operators\":{\"match\":\"[\\\\\\\\-\\\\\\\\+*](?=\\\\\\\\s+)\",\"name\":\"keyword.operator.less\"},\"color-functions\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(rgba?)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.color.less\"}},\"comment\":\"rgb(), rgba()\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#less-strings\"},{\"include\":\"#less-variables\"},{\"include\":\"#var-function\"},{\"include\":\"#comma-delimiter\"},{\"include\":\"#value-separator\"},{\"include\":\"#percentage-type\"},{\"include\":\"#number-type\"}]}]},{\"begin\":\"\\\\\\\\b(hsla|hsl|hwb|oklab|oklch|lab|lch)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.color.less\"}},\"comment\":\"hsla, hsl, hwb, oklab, oklch, lab, lch\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#color-values\"},{\"include\":\"#less-strings\"},{\"include\":\"#less-variables\"},{\"include\":\"#var-function\"},{\"include\":\"#comma-delimiter\"},{\"include\":\"#angle-type\"},{\"include\":\"#percentage-type\"},{\"include\":\"#number-type\"},{\"include\":\"#calc-function\"},{\"include\":\"#value-separator\"}]}]},{\"begin\":\"\\\\\\\\b(light-dark)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.color.less\"}},\"comment\":\"light-dark()\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#color-values\"},{\"include\":\"#comma-delimiter\"}]}]},{\"include\":\"#less-color-functions\"}]},\"color-values\":{\"patterns\":[{\"include\":\"#color-functions\"},{\"include\":\"#less-functions\"},{\"include\":\"#less-variables\"},{\"include\":\"#var-function\"},{\"match\":\"\\\\\\\\b(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)\\\\\\\\b\",\"name\":\"support.constant.color.w3c-standard-color-name.less\"},{\"match\":\"\\\\\\\\b(aliceblue|antiquewhite|aquamarine|azure|beige|bisque|blanchedalmond|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|gainsboro|ghostwhite|gold|goldenrod|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|limegreen|linen|magenta|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|oldlace|olivedrab|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|rebeccapurple|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|thistle|tomato|turquoise|violet|wheat|whitesmoke|yellowgreen)\\\\\\\\b\",\"name\":\"support.constant.color.w3c-extended-color-keywords.less\"},{\"match\":\"\\\\\\\\b((?i)currentColor|transparent)\\\\\\\\b\",\"name\":\"support.constant.color.w3c-special-color-keyword.less\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.constant.less\"}},\"match\":\"(#)(\\\\\\\\h{3}|\\\\\\\\h{4}|\\\\\\\\h{6}|\\\\\\\\h{8})\\\\\\\\b\",\"name\":\"constant.other.color.rgb-value.less\"},{\"include\":\"#relative-color\"}]},\"comma-delimiter\":{\"captures\":{\"1\":{\"name\":\"punctuation.separator.less\"}},\"match\":\"\\\\\\\\s*(,)\\\\\\\\s*\"},\"comment-block\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.less\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.less\"}},\"name\":\"comment.block.less\"},{\"include\":\"#comment-line\"}]},\"comment-line\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.less\"}},\"match\":\"(//).*$\\\\\\\\n?\",\"name\":\"comment.line.double-slash.less\"},\"counter-functions\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(counter)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.filter.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#less-strings\"},{\"include\":\"#less-variables\"},{\"include\":\"#var-function\"},{\"match\":\"(?:--(?:[[-\\\\\\\\w][^\\\\\\\\x{00}-\\\\\\\\x{7F}]]|(?:\\\\\\\\\\\\\\\\\\\\\\\\h{1,6}[\\\\\\\\s\\\\\\\\t\\\\\\\\n\\\\\\\\f]?|\\\\\\\\\\\\\\\\[^\\\\\\\\n\\\\\\\\f\\\\\\\\h]))+|-?(?:[[_a-zA-Z][^\\\\\\\\x{00}-\\\\\\\\x{7F}]]|(?:\\\\\\\\\\\\\\\\\\\\\\\\h{1,6}[\\\\\\\\s\\\\\\\\t\\\\\\\\n\\\\\\\\f]?|\\\\\\\\\\\\\\\\[^\\\\\\\\n\\\\\\\\f\\\\\\\\h]))(?:[[-\\\\\\\\w][^\\\\\\\\x{00}-\\\\\\\\x{7F}]]|(?:\\\\\\\\\\\\\\\\\\\\\\\\h{1,6}[\\\\\\\\s\\\\\\\\t\\\\\\\\n\\\\\\\\f]?|\\\\\\\\\\\\\\\\[^\\\\\\\\n\\\\\\\\f\\\\\\\\h]))*)\",\"name\":\"entity.other.counter-name.less\"},{\"begin\":\"(?=,)\",\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#comma-delimiter\"},{\"match\":\"\\\\\\\\b((?xi:arabic-indic|armenian|bengali|cambodian|circle|cjk-decimal|cjk-earthly-branch|cjk-heavenly-stem|decimal-leading-zero|decimal|devanagari|disclosure-closed|disclosure-open|disc|ethiopic-numeric|georgian|gujarati|gurmukhi|hebrew|hiragana-iroha|hiragana|japanese-formal|japanese-informal|kannada|katakana-iroha|katakana|khmer|korean-hangul-formal|korean-hanja-formal|korean-hanja-informal|lao|lower-alpha|lower-armenian|lower-greek|lower-latin|lower-roman|malayalam|mongolian|myanmar|oriya|persian|simp-chinese-formal|simp-chinese-informal|square|tamil|telugu|thai|tibetan|trad-chinese-formal|trad-chinese-informal|upper-alpha|upper-armenian|upper-latin|upper-roman)|none)\\\\\\\\b\",\"name\":\"support.constant.property-value.counter-style.less\"}]}]}]},{\"begin\":\"\\\\\\\\b(counters)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.filter.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"match\":\"(-?(?:[[_a-zA-Z][^\\\\\\\\x{00}-\\\\\\\\x{7F}]]|(?:\\\\\\\\\\\\\\\\\\\\\\\\h{1,6}[\\\\\\\\s\\\\\\\\t\\\\\\\\n\\\\\\\\f]?|\\\\\\\\\\\\\\\\[^\\\\\\\\n\\\\\\\\f\\\\\\\\h]))(?:[[-\\\\\\\\w][^\\\\\\\\x{00}-\\\\\\\\x{7F}]]|(?:\\\\\\\\\\\\\\\\\\\\\\\\h{1,6}[\\\\\\\\s\\\\\\\\t\\\\\\\\n\\\\\\\\f]?|\\\\\\\\\\\\\\\\[^\\\\\\\\n\\\\\\\\f\\\\\\\\h]))*)\",\"name\":\"entity.other.counter-name.less string.unquoted.less\"},{\"begin\":\"(?=,)\",\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#less-strings\"},{\"include\":\"#less-variables\"},{\"include\":\"#var-function\"},{\"include\":\"#literal-string\"},{\"include\":\"#comma-delimiter\"},{\"match\":\"\\\\\\\\b((?xi:arabic-indic|armenian|bengali|cambodian|circle|cjk-decimal|cjk-earthly-branch|cjk-heavenly-stem|decimal-leading-zero|decimal|devanagari|disclosure-closed|disclosure-open|disc|ethiopic-numeric|georgian|gujarati|gurmukhi|hebrew|hiragana-iroha|hiragana|japanese-formal|japanese-informal|kannada|katakana-iroha|katakana|khmer|korean-hangul-formal|korean-hanja-formal|korean-hanja-informal|lao|lower-alpha|lower-armenian|lower-greek|lower-latin|lower-roman|malayalam|mongolian|myanmar|oriya|persian|simp-chinese-formal|simp-chinese-informal|square|tamil|telugu|thai|tibetan|trad-chinese-formal|trad-chinese-informal|upper-alpha|upper-armenian|upper-latin|upper-roman)|none)\\\\\\\\b\",\"name\":\"support.constant.property-value.counter-style.less\"}]}]}]}]},\"cross-fade-function\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(cross-fade)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.image.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#comma-delimiter\"},{\"include\":\"#percentage-type\"},{\"include\":\"#color-values\"},{\"include\":\"#image-type\"},{\"include\":\"#literal-string\"},{\"include\":\"#unquoted-string\"}]}]}]},\"cubic-bezier-function\":{\"begin\":\"\\\\\\\\b(cubic-bezier)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.timing.less\"},\"2\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"contentName\":\"meta.group.less\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"include\":\"#less-functions\"},{\"include\":\"#calc-function\"},{\"include\":\"#less-variables\"},{\"include\":\"#var-function\"},{\"include\":\"#comma-delimiter\"},{\"include\":\"#number-type\"}]},\"custom-property-name\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.custom-property.less\"},\"2\":{\"name\":\"support.type.custom-property.name.less\"}},\"match\":\"\\\\\\\\s*(--)((?:[[-\\\\\\\\w][^\\\\\\\\x{00}-\\\\\\\\x{7F}]]|(?:\\\\\\\\\\\\\\\\\\\\\\\\h{1,6}[\\\\\\\\s\\\\\\\\t\\\\\\\\n\\\\\\\\f]?|\\\\\\\\\\\\\\\\[^\\\\\\\\n\\\\\\\\f\\\\\\\\h]))+)\",\"name\":\"support.type.custom-property.less\"},\"dimensions\":{\"patterns\":[{\"include\":\"#angle-type\"},{\"include\":\"#frequency-type\"},{\"include\":\"#time-type\"},{\"include\":\"#percentage-type\"},{\"include\":\"#length-type\"}]},\"filter-function\":{\"begin\":\"\\\\\\\\b(filter)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.filter.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"name\":\"meta.group.less\",\"patterns\":[{\"include\":\"#comma-delimiter\"},{\"include\":\"#image-type\"},{\"include\":\"#literal-string\"},{\"include\":\"#filter-functions\"}]}]},\"filter-functions\":{\"patterns\":[{\"include\":\"#less-functions\"},{\"begin\":\"\\\\\\\\b(blur)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.filter.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#length-type\"}]}]},{\"begin\":\"\\\\\\\\b(brightness|contrast|grayscale|invert|opacity|saturate|sepia)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.filter.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#percentage-type\"},{\"include\":\"#number-type\"},{\"include\":\"#less-functions\"}]}]},{\"begin\":\"\\\\\\\\b(drop-shadow)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.filter.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#length-type\"},{\"include\":\"#color-values\"}]}]},{\"begin\":\"\\\\\\\\b(hue-rotate)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.filter.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#angle-type\"}]}]}]},\"fit-content-function\":{\"begin\":\"\\\\\\\\b(fit-content)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.grid.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#less-variables\"},{\"include\":\"#var-function\"},{\"include\":\"#calc-function\"},{\"include\":\"#percentage-type\"},{\"include\":\"#length-type\"}]}]},\"format-function\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(format)(?=\\\\\\\\()\",\"beginCaptures\":{\"0\":{\"name\":\"support.function.format.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#literal-string\"}]}]}]},\"frequency-type\":{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.less\"}},\"match\":\"(?i:[-+]?(?:(?:\\\\\\\\d*\\\\\\\\.\\\\\\\\d+(?:[eE](?:[-+]?\\\\\\\\d+))*)|(?:[-+]?\\\\\\\\d+))(Hz|kHz))\\\\\\\\b\",\"name\":\"constant.numeric.less\"},\"global-property-values\":{\"match\":\"\\\\\\\\b(?:initial|inherit|unset|revert-layer|revert)\\\\\\\\b\",\"name\":\"support.constant.property-value.less\"},\"gradient-functions\":{\"patterns\":[{\"begin\":\"\\\\\\\\b((?:repeating-)?linear-gradient)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.gradient.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#less-variables\"},{\"include\":\"#var-function\"},{\"include\":\"#angle-type\"},{\"include\":\"#color-values\"},{\"include\":\"#percentage-type\"},{\"include\":\"#length-type\"},{\"include\":\"#comma-delimiter\"},{\"match\":\"\\\\\\\\bto\\\\\\\\b\",\"name\":\"keyword.other.less\"},{\"match\":\"\\\\\\\\b(top|right|bottom|left)\\\\\\\\b\",\"name\":\"support.constant.property-value.less\"}]}]},{\"begin\":\"\\\\\\\\b((?:repeating-)?radial-gradient)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.gradient.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#less-variables\"},{\"include\":\"#var-function\"},{\"include\":\"#color-values\"},{\"include\":\"#percentage-type\"},{\"include\":\"#length-type\"},{\"include\":\"#comma-delimiter\"},{\"match\":\"\\\\\\\\b(at|circle|ellipse)\\\\\\\\b\",\"name\":\"keyword.other.less\"},{\"match\":\"\\\\\\\\b(top|right|bottom|left|center|(farthest|closest)-(corner|side))\\\\\\\\b\",\"name\":\"support.constant.property-value.less\"}]}]}]},\"grid-repeat-function\":{\"begin\":\"\\\\\\\\b(repeat)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.grid.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#comma-delimiter\"},{\"include\":\"#var-function\"},{\"include\":\"#length-type\"},{\"include\":\"#percentage-type\"},{\"include\":\"#minmax-function\"},{\"include\":\"#integer-type\"},{\"match\":\"\\\\\\\\b(auto-(fill|fit))\\\\\\\\b\",\"name\":\"support.keyword.repetitions.less\"},{\"match\":\"\\\\\\\\b(((max|min)-content)|auto)\\\\\\\\b\",\"name\":\"support.constant.property-value.less\"}]}]},\"image-function\":{\"begin\":\"\\\\\\\\b(image)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.image.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#image-type\"},{\"include\":\"#literal-string\"},{\"include\":\"#color-values\"},{\"include\":\"#comma-delimiter\"},{\"include\":\"#unquoted-string\"}]}]},\"image-type\":{\"patterns\":[{\"include\":\"#cross-fade-function\"},{\"include\":\"#gradient-functions\"},{\"include\":\"#image-function\"},{\"include\":\"#url-function\"}]},\"important\":{\"captures\":{\"1\":{\"name\":\"punctuation.separator.less\"}},\"match\":\"(\\\\\\\\!)\\\\\\\\s*important\",\"name\":\"keyword.other.important.less\"},\"integer-type\":{\"match\":\"(?:[-+]?\\\\\\\\d+)\",\"name\":\"constant.numeric.less\"},\"keyframe-name\":{\"begin\":\"\\\\\\\\s*(-?(?:[_a-z]|[^\\\\\\\\x{00}-\\\\\\\\x{7F}]|(?:(:?\\\\\\\\\\\\\\\\[0-9a-f]{1,6}(\\\\\\\\r\\\\\\\\n|[\\\\\\\\s\\\\\\\\t\\\\\\\\r\\\\\\\\n\\\\\\\\f])?)|\\\\\\\\\\\\\\\\[^\\\\\\\\r\\\\\\\\n\\\\\\\\f0-9a-f]))(?:[_a-z0-9-]|[^\\\\\\\\x{00}-\\\\\\\\x{7F}]|(?:(:?\\\\\\\\\\\\\\\\[0-9a-f]{1,6}(\\\\\\\\r\\\\\\\\n|[\\\\\\\\t\\\\\\\\r\\\\\\\\n\\\\\\\\f])?)|\\\\\\\\\\\\\\\\[^\\\\\\\\r\\\\\\\\n\\\\\\\\f0-9a-f]))*)?\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.constant.animation-name.less\"}},\"end\":\"\\\\\\\\s*(?:(,)|(?=[{;]))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arbitrary-repetition.less\"}}},\"length-type\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.less\"}},\"match\":\"(?:[-+]?)(?:\\\\\\\\d+\\\\\\\\.\\\\\\\\d+|\\\\\\\\.?\\\\\\\\d+)(?:[eE][-+]?\\\\\\\\d+)?(em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|m|q|in|pt|pc|px|fr|dpi|dpcm|dppx|x)\",\"name\":\"constant.numeric.less\"},{\"match\":\"\\\\\\\\b(?:[-+]?)0\\\\\\\\b\",\"name\":\"constant.numeric.less\"}]},\"less-boolean-function\":{\"begin\":\"\\\\\\\\b(boolean)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.boolean.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#less-logical-comparisons\"}]}]},\"less-color-blend-functions\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(multiply|screen|overlay|(soft|hard)light|difference|exclusion|negation|average)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.color-blend.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#less-variables\"},{\"include\":\"#var-function\"},{\"include\":\"#comma-delimiter\"},{\"include\":\"#color-values\"}]}]}]},\"less-color-channel-functions\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(hue|saturation|lightness|hsv(hue|saturation|value)|red|green|blue|alpha|luma|luminance)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.color-definition.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#color-values\"}]}]}]},\"less-color-definition-functions\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(argb)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.color-definition.less\"}},\"comment\":\"argb()\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#less-variables\"},{\"include\":\"#var-function\"},{\"include\":\"#color-values\"}]}]},{\"begin\":\"\\\\\\\\b(hsva?)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.color.less\"}},\"comment\":\"hsva(), hsv()\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#integer-type\"},{\"include\":\"#percentage-type\"},{\"include\":\"#number-type\"},{\"include\":\"#less-strings\"},{\"include\":\"#less-variables\"},{\"include\":\"#var-function\"},{\"include\":\"#calc-function\"},{\"include\":\"#comma-delimiter\"}]}]}]},\"less-color-functions\":{\"patterns\":[{\"include\":\"#less-color-blend-functions\"},{\"include\":\"#less-color-channel-functions\"},{\"include\":\"#less-color-definition-functions\"},{\"include\":\"#less-color-operation-functions\"}]},\"less-color-operation-functions\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(fade|shade|tint)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.color-operation.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#color-values\"},{\"include\":\"#comma-delimiter\"},{\"include\":\"#percentage-type\"}]}]},{\"begin\":\"\\\\\\\\b(spin)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.color-operation.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#color-values\"},{\"include\":\"#comma-delimiter\"},{\"include\":\"#number-type\"}]}]},{\"begin\":\"\\\\\\\\b(((de)?saturate)|((light|dark)en)|(fade(in|out)))(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.color-operation.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#color-values\"},{\"include\":\"#comma-delimiter\"},{\"include\":\"#percentage-type\"},{\"match\":\"\\\\\\\\brelative\\\\\\\\b\",\"name\":\"constant.language.relative.less\"}]}]},{\"begin\":\"\\\\\\\\b(contrast)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.color-operation.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#color-values\"},{\"include\":\"#comma-delimiter\"},{\"include\":\"#percentage-type\"}]}]},{\"begin\":\"\\\\\\\\b(greyscale)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.color-operation.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#color-values\"}]}]},{\"begin\":\"\\\\\\\\b(mix)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.color-operation.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#color-values\"},{\"include\":\"#comma-delimiter\"},{\"include\":\"#less-math\"},{\"include\":\"#percentage-type\"}]}]}]},\"less-extend\":{\"begin\":\"(:)(extend)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.entity.less\"},\"2\":{\"name\":\"entity.other.attribute-name.pseudo-class.extend.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"match\":\"\\\\\\\\ball\\\\\\\\b\",\"name\":\"constant.language.all.less\"},{\"include\":\"#selectors\"}]}]},\"less-functions\":{\"patterns\":[{\"include\":\"#less-boolean-function\"},{\"include\":\"#less-color-functions\"},{\"include\":\"#less-if-function\"},{\"include\":\"#less-list-functions\"},{\"include\":\"#less-math-functions\"},{\"include\":\"#less-misc-functions\"},{\"include\":\"#less-string-functions\"},{\"include\":\"#less-type-functions\"}]},\"less-if-function\":{\"begin\":\"\\\\\\\\b(if)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.if.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#less-mixin-guards\"},{\"include\":\"#comma-delimiter\"},{\"include\":\"#property-values\"}]}]},\"less-list-functions\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(length)(?=\\\\\\\\()\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.length.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#property-values\"},{\"include\":\"#comma-delimiter\"}]}]},{\"begin\":\"\\\\\\\\b(extract)(?=\\\\\\\\()\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.extract.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#property-values\"},{\"include\":\"#comma-delimiter\"},{\"include\":\"#integer-type\"}]}]},{\"begin\":\"\\\\\\\\b(range)(?=\\\\\\\\()\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.range.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#property-values\"},{\"include\":\"#comma-delimiter\"},{\"include\":\"#integer-type\"}]}]}]},\"less-logical-comparisons\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.logical.less\"}},\"match\":\"\\\\\\\\s*(=|((<|>)=?))\\\\\\\\s*\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.group.less\",\"patterns\":[{\"include\":\"#less-logical-comparisons\"}]},{\"match\":\"\\\\\\\\btrue|false\\\\\\\\b\",\"name\":\"constant.language.less\"},{\"match\":\",\",\"name\":\"punctuation.separator.less\"},{\"include\":\"#property-values\"},{\"include\":\"#selectors\"},{\"include\":\"#unquoted-string\"}]},\"less-math\":{\"patterns\":[{\"match\":\"[-\\\\\\\\+\\\\\\\\*\\\\\\\\/]\",\"name\":\"keyword.operator.arithmetic.less\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.group.less\",\"patterns\":[{\"include\":\"#less-math\"}]},{\"include\":\"#numeric-values\"},{\"include\":\"#less-variables\"}]},\"less-math-functions\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(ceil|floor|percentage|round|sqrt|abs|a?(sin|cos|tan))(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.math.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#less-variables\"},{\"include\":\"#numeric-values\"}]}]},{\"captures\":{\"2\":{\"name\":\"support.function.math.less\"},\"3\":{\"name\":\"punctuation.definition.group.begin.less\"},\"4\":{\"name\":\"punctuation.definition.group.end.less\"}},\"match\":\"((pi)(\\\\\\\\()(\\\\\\\\)))\",\"name\":\"meta.function-call.less\"},{\"begin\":\"\\\\\\\\b(pow|m(od|in|ax))(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.math.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#less-variables\"},{\"include\":\"#numeric-values\"},{\"include\":\"#comma-delimiter\"}]}]}]},\"less-misc-functions\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(color)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.color.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#literal-string\"}]}]},{\"begin\":\"\\\\\\\\b(image-(size|width|height))(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.image.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#literal-string\"},{\"include\":\"#unquoted-string\"}]}]},{\"begin\":\"\\\\\\\\b(convert|unit)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.convert.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#less-variables\"},{\"include\":\"#numeric-values\"},{\"include\":\"#literal-string\"},{\"include\":\"#comma-delimiter\"},{\"match\":\"((c|m)?m|in|p(t|c|x)|m?s|g?rad|deg|turn|%|r?em|ex|ch)\",\"name\":\"keyword.other.unit.less\"}]}]},{\"begin\":\"\\\\\\\\b(data-uri)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.data-uri.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#less-variables\"},{\"include\":\"#literal-string\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.less\"}},\"match\":\"\\\\\\\\s*(?:(,))\"}]}]},{\"captures\":{\"2\":{\"name\":\"punctuation.definition.group.begin.less\"},\"3\":{\"name\":\"punctuation.definition.group.end.less\"}},\"match\":\"\\\\\\\\b(default(\\\\\\\\()(\\\\\\\\)))\\\\\\\\b\",\"name\":\"support.function.default.less\"},{\"begin\":\"\\\\\\\\b(get-unit)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.get-unit.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#dimensions\"}]}]},{\"begin\":\"\\\\\\\\b(svg-gradient)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.svg-gradient.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#angle-type\"},{\"include\":\"#comma-delimiter\"},{\"include\":\"#color-values\"},{\"include\":\"#percentage-type\"},{\"include\":\"#length-type\"},{\"match\":\"\\\\\\\\bto\\\\\\\\b\",\"name\":\"keyword.other.less\"},{\"match\":\"\\\\\\\\b(top|right|bottom|left|center)\\\\\\\\b\",\"name\":\"support.constant.property-value.less\"},{\"match\":\"\\\\\\\\b(at|circle|ellipse)\\\\\\\\b\",\"name\":\"keyword.other.less\"}]}]}]},\"less-mixin-guards\":{\"patterns\":[{\"begin\":\"\\\\\\\\s*(and|not|or)?\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.logical.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"name\":\"meta.group.less\",\"patterns\":[{\"include\":\"#less-variable-comparison\"},{\"captures\":{\"1\":{\"name\":\"meta.group.less\"},\"2\":{\"name\":\"punctuation.definition.group.begin.less\"},\"3\":{\"name\":\"punctuation.definition.group.end.less\"}},\"match\":\"default((\\\\\\\\()(\\\\\\\\)))\",\"name\":\"support.function.default.less\"},{\"include\":\"#property-values\"},{\"include\":\"#less-logical-comparisons\"},{\"include\":\"$self\"}]}]}]},\"less-namespace-accessors\":{\"patterns\":[{\"begin\":\"(?=\\\\\\\\s*when\\\\\\\\b)\",\"end\":\"\\\\\\\\s*(?:(,)|(?=[{;]))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.end.less\"}},\"name\":\"meta.conditional.guarded-namespace.less\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.conditional.less\"},\"2\":{\"name\":\"punctuation.definition.keyword.less\"}},\"match\":\"\\\\\\\\s*(when)(?=.*?)\"},{\"include\":\"#less-mixin-guards\"},{\"include\":\"#comma-delimiter\"},{\"begin\":\"\\\\\\\\s*(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.property-list.begin.less\"}},\"end\":\"(?=\\\\\\\\})\",\"name\":\"meta.block.less\",\"patterns\":[{\"include\":\"#rule-list-body\"}]},{\"include\":\"#selectors\"}]},{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.group.end.less\"},\"2\":{\"name\":\"punctuation.terminator.rule.less\"}},\"name\":\"meta.group.less\",\"patterns\":[{\"include\":\"#less-variable-assignment\"},{\"include\":\"#comma-delimiter\"},{\"include\":\"#property-values\"},{\"include\":\"#rule-list-body\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.terminator.rule.less\"}},\"match\":\"(;)|(?=[})])\"}]},\"less-string-functions\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(e(scape)?)(?=\\\\\\\\()\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.escape.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#less-variables\"},{\"include\":\"#comma-delimiter\"},{\"include\":\"#literal-string\"},{\"include\":\"#unquoted-string\"}]}]},{\"begin\":\"\\\\\\\\s*(%)(?=\\\\\\\\()\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.format.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#less-variables\"},{\"include\":\"#comma-delimiter\"},{\"include\":\"#literal-string\"},{\"include\":\"#property-values\"}]}]},{\"begin\":\"\\\\\\\\b(replace)(?=\\\\\\\\()\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.replace.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#less-variables\"},{\"include\":\"#comma-delimiter\"},{\"include\":\"#literal-string\"},{\"include\":\"#property-values\"}]}]}]},\"less-strings\":{\"patterns\":[{\"begin\":\"(~)('|\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"constant.character.escape.less\"},\"2\":{\"name\":\"punctuation.definition.string.begin.less\"}},\"contentName\":\"markup.raw.inline.less\",\"end\":\"('|\\\\\")|(\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.less\"},\"2\":{\"name\":\"invalid.illegal.newline.less\"}},\"name\":\"string.quoted.other.less\",\"patterns\":[{\"include\":\"#string-content\"}]}]},\"less-type-functions\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(is(number|string|color|keyword|url|pixel|em|percentage|ruleset))(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.type.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#property-values\"}]}]},{\"begin\":\"\\\\\\\\b(isunit)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.type.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#property-values\"},{\"include\":\"#comma-delimiter\"},{\"match\":\"\\\\\\\\b((?i:em|ex|ch|rem)|(?i:vw|vh|vmin|vmax)|(?i:cm|mm|q|in|pt|pc|px|fr)|(?i:deg|grad|rad|turn)|(?i:s|ms)|(?i:Hz|kHz)|(?i:dpi|dpcm|dppx))\\\\\\\\b\",\"name\":\"keyword.other.unit.less\"}]}]},{\"begin\":\"\\\\\\\\b(isdefined)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.type.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#less-variables\"}]}]}]},\"less-variable-assignment\":{\"patterns\":[{\"begin\":\"(@)(-?(?:[[-\\\\\\\\w][^\\\\\\\\x{00}-\\\\\\\\x{7F}]]|(?:\\\\\\\\\\\\\\\\\\\\\\\\h{1,6}[\\\\\\\\s\\\\\\\\t\\\\\\\\n\\\\\\\\f]?|\\\\\\\\\\\\\\\\[^\\\\\\\\n\\\\\\\\f\\\\\\\\h]))(?:[[-\\\\\\\\w][^\\\\\\\\x{00}-\\\\\\\\x{7F}]]|(?:\\\\\\\\\\\\\\\\\\\\\\\\h{1,6}[\\\\\\\\s\\\\\\\\t\\\\\\\\n\\\\\\\\f]?|\\\\\\\\\\\\\\\\[^\\\\\\\\n\\\\\\\\f\\\\\\\\h]))*)\",\"beginCaptures\":{\"0\":{\"name\":\"variable.other.readwrite.less\"},\"1\":{\"name\":\"punctuation.definition.variable.less\"},\"2\":{\"name\":\"support.other.variable.less\"}},\"end\":\"\\\\\\\\s*(;|(\\\\\\\\.{3})|(?=\\\\\\\\)))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.rule.less\"},\"2\":{\"name\":\"keyword.operator.spread.less\"}},\"name\":\"meta.property-value.less\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.key-value.less\"},\"4\":{\"name\":\"meta.property-value.less\"}},\"match\":\"(((\\\\\\\\+_?)?):)([\\\\\\\\s\\\\\\\\t]*)\"},{\"include\":\"#property-values\"},{\"include\":\"#comma-delimiter\"},{\"include\":\"#property-list\"},{\"include\":\"#unquoted-string\"}]}]},\"less-variable-comparison\":{\"patterns\":[{\"begin\":\"(@{1,2})([-]?([_a-z]|[^\\\\\\\\x{00}-\\\\\\\\x{7F}]|(?:\\\\\\\\\\\\\\\\\\\\\\\\h{1,6}[\\\\\\\\s\\\\\\\\t\\\\\\\\n\\\\\\\\f]?|\\\\\\\\\\\\\\\\[^\\\\\\\\n\\\\\\\\f\\\\\\\\h]))(?:[[-\\\\\\\\w][^\\\\\\\\x{00}-\\\\\\\\x{7F}]]|(?:\\\\\\\\\\\\\\\\\\\\\\\\h{1,6}[\\\\\\\\s\\\\\\\\t\\\\\\\\n\\\\\\\\f]?|\\\\\\\\\\\\\\\\[^\\\\\\\\n\\\\\\\\f\\\\\\\\h]))*)\",\"beginCaptures\":{\"0\":{\"name\":\"variable.other.readwrite.less\"},\"1\":{\"name\":\"punctuation.definition.variable.less\"},\"2\":{\"name\":\"support.other.variable.less\"}},\"end\":\"\\\\\\\\s*(?=\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.rule.less\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.logical.less\"}},\"match\":\"\\\\\\\\s*(=|((<|>)=?))\\\\\\\\s*\"},{\"match\":\"\\\\\\\\btrue\\\\\\\\b\",\"name\":\"constant.language.less\"},{\"include\":\"#property-values\"},{\"include\":\"#selectors\"},{\"include\":\"#unquoted-string\"},{\"match\":\",\",\"name\":\"punctuation.separator.less\"}]}]},\"less-variable-interpolation\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.less\"},\"2\":{\"name\":\"punctuation.definition.expression.less\"},\"3\":{\"name\":\"support.other.variable.less\"},\"4\":{\"name\":\"punctuation.definition.expression.less\"}},\"match\":\"(@)(\\\\\\\\{)([-\\\\\\\\w]+)(\\\\\\\\})\",\"name\":\"variable.other.readwrite.less\"},\"less-variables\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.less\"},\"2\":{\"name\":\"support.other.variable.less\"}},\"match\":\"\\\\\\\\s*(@@?)([-\\\\\\\\w]+)\",\"name\":\"variable.other.readwrite.less\"},{\"include\":\"#less-variable-interpolation\"}]},\"literal-string\":{\"patterns\":[{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.less\"}},\"end\":\"(')|(\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.less\"},\"2\":{\"name\":\"invalid.illegal.newline.less\"}},\"name\":\"string.quoted.single.less\",\"patterns\":[{\"include\":\"#string-content\"}]},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.less\"}},\"end\":\"(\\\\\")|(\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.less\"},\"2\":{\"name\":\"invalid.illegal.newline.less\"}},\"name\":\"string.quoted.double.less\",\"patterns\":[{\"include\":\"#string-content\"}]},{\"include\":\"#less-strings\"}]},\"local-function\":{\"begin\":\"\\\\\\\\b(local)(?=\\\\\\\\()\",\"beginCaptures\":{\"0\":{\"name\":\"support.function.font-face.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#unquoted-string\"}]}]},\"media-query\":{\"begin\":\"\\\\\\\\s*(only|not)?\\\\\\\\s*(all|aural|braille|embossed|handheld|print|projection|screen|tty|tv)?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.logic.media.less\"},\"2\":{\"name\":\"support.constant.media.less\"}},\"end\":\"\\\\\\\\s*(?:(,)|(?=[{;]))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arbitrary-repetition.less\"}},\"patterns\":[{\"include\":\"#less-variables\"},{\"include\":\"#custom-property-name\"},{\"begin\":\"\\\\\\\\s*(and)?\\\\\\\\s*(\\\\\\\\()\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.logic.media.less\"},\"2\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.group.less\",\"patterns\":[{\"begin\":\"(--|(?:-?(?:(?:[a-zA-Z_]|[\\\\\\\\x{00B7}\\\\\\\\x{00C0}-\\\\\\\\x{00D6}\\\\\\\\x{00D8}-\\\\\\\\x{00F6}\\\\\\\\x{00F8}-\\\\\\\\x{037D}\\\\\\\\x{037F}-\\\\\\\\x{1FFF}\\\\\\\\x{200C}\\\\\\\\x{200D}\\\\\\\\x{203F}\\\\\\\\x{2040}\\\\\\\\x{2070}-\\\\\\\\x{218F}\\\\\\\\x{2C00}-\\\\\\\\x{2FEF}\\\\\\\\x{3001}-\\\\\\\\x{D7FF}\\\\\\\\x{F900}-\\\\\\\\x{FDCF}\\\\\\\\x{FDF0}-\\\\\\\\x{FFFD}\\\\\\\\x{10000}-\\\\\\\\x{EFFFF}])|(?:\\\\\\\\\\\\\\\\(?:\\\\\\\\N|[[:^xdigit:]]|[[:xdigit:]]{1,6}[\\\\\\\\s\\\\\\\\R]))))(?:(?:[-\\\\\\\\da-zA-Z_]|[\\\\\\\\x{00B7}\\\\\\\\x{00C0}-\\\\\\\\x{00D6}\\\\\\\\x{00D8}-\\\\\\\\x{00F6}\\\\\\\\x{00F8}-\\\\\\\\x{037D}\\\\\\\\x{037F}-\\\\\\\\x{1FFF}\\\\\\\\x{200C}\\\\\\\\x{200D}\\\\\\\\x{203F}\\\\\\\\x{2040}\\\\\\\\x{2070}-\\\\\\\\x{218F}\\\\\\\\x{2C00}-\\\\\\\\x{2FEF}\\\\\\\\x{3001}-\\\\\\\\x{D7FF}\\\\\\\\x{F900}-\\\\\\\\x{FDCF}\\\\\\\\x{FDF0}-\\\\\\\\x{FFFD}\\\\\\\\x{10000}-\\\\\\\\x{EFFFF}])|(?:\\\\\\\\\\\\\\\\(?:\\\\\\\\N|[[:^xdigit:]]|[[:xdigit:]]{1,6}[\\\\\\\\s\\\\\\\\R])))*)\\\\\\\\s*(?=[:)])\",\"beginCaptures\":{\"0\":{\"name\":\"support.type.property-name.media.less\"}},\"end\":\"(((\\\\\\\\+_?)?):)|(?=\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.key-value.less\"}}},{\"match\":\"\\\\\\\\b(portrait|landscape|progressive|interlace)\",\"name\":\"support.constant.property-value.less\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.less\"},\"2\":{\"name\":\"keyword.operator.arithmetic.less\"},\"3\":{\"name\":\"constant.numeric.less\"}},\"match\":\"\\\\\\\\s*(\\\\\\\\d+)(/)(\\\\\\\\d+)\"},{\"include\":\"#less-math\"}]}]},\"media-query-list\":{\"begin\":\"\\\\\\\\s*(?=[^{;])\",\"end\":\"\\\\\\\\s*(?=[{;])\",\"patterns\":[{\"include\":\"#media-query\"}]},\"minmax-function\":{\"begin\":\"\\\\\\\\b(minmax)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.grid.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#less-variables\"},{\"include\":\"#var-function\"},{\"include\":\"#length-type\"},{\"include\":\"#comma-delimiter\"},{\"match\":\"\\\\\\\\b(max-content|min-content)\\\\\\\\b\",\"name\":\"support.constant.property-value.less\"}]}]},\"number-type\":{\"match\":\"(?:[-+]?)(?:\\\\\\\\d+\\\\\\\\.\\\\\\\\d+|\\\\\\\\.?\\\\\\\\d+)(?:[eE][-+]?\\\\\\\\d+)?\",\"name\":\"constant.numeric.less\"},\"numeric-values\":{\"patterns\":[{\"include\":\"#dimensions\"},{\"include\":\"#percentage-type\"},{\"include\":\"#number-type\"}]},\"percentage-type\":{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.less\"}},\"match\":\"(?:[-+]?)(?:\\\\\\\\d+\\\\\\\\.\\\\\\\\d+|\\\\\\\\.?\\\\\\\\d+)(?:[eE][-+]?\\\\\\\\d+)?(%)\",\"name\":\"constant.numeric.less\"},\"property-list\":{\"patterns\":[{\"begin\":\"(?=(?=[^;]*)\\\\\\\\{)\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.end.less\"}},\"patterns\":[{\"include\":\"#rule-list\"}]}]},\"property-value-constants\":{\"patterns\":[{\"comment\":\"align-content, align-items, align-self, justify-content, justify-items, justify-self\",\"match\":\"\\\\\\\\b(flex-start|flex-end|start|end|space-between|space-around|space-evenly|stretch|baseline|safe|unsafe|legacy|anchor-center|first|last|self-start|self-end)\\\\\\\\b\",\"name\":\"support.constant.property-value.less\"},{\"comment\":\"alignment-baseline\",\"match\":\"\\\\\\\\b(text-before-edge|before-edge|middle|central|text-after-edge|after-edge|ideographic|alphabetic|hanging|mathematical|top|center|bottom)\\\\\\\\b\",\"name\":\"support.constant.property-value.less\"},{\"include\":\"#global-property-values\"},{\"include\":\"#cubic-bezier-function\"},{\"include\":\"#steps-function\"},{\"comment\":\"animation-composition\",\"match\":\"\\\\\\\\b(?:replace|add|accumulate)\\\\\\\\b\",\"name\":\"support.constant.property-value.less\"},{\"comment\":\"animation-direction\",\"match\":\"\\\\\\\\b(?:normal|alternate-reverse|alternate|reverse)\\\\\\\\b\",\"name\":\"support.constant.property-value.less\"},{\"comment\":\"animation-fill-mode\",\"match\":\"\\\\\\\\b(?:forwards|backwards|both)\\\\\\\\b\",\"name\":\"support.constant.property-value.less\"},{\"comment\":\"animation-iteration-count\",\"match\":\"\\\\\\\\b(?:infinite)\\\\\\\\b\",\"name\":\"support.constant.property-value.less\"},{\"comment\":\"animation-play-state\",\"match\":\"\\\\\\\\b(?:running|paused)\\\\\\\\b\",\"name\":\"support.constant.property-value.less\"},{\"comment\":\"animation-range, animation-range-start, animation-range-end\",\"match\":\"\\\\\\\\b(?:entry-crossing|exit-crossing|entry|exit)\\\\\\\\b\",\"name\":\"support.constant.property-value.less\"},{\"comment\":\"animation-timing-function\",\"match\":\"\\\\\\\\b(linear|ease-in-out|ease-in|ease-out|ease|step-start|step-end)\\\\\\\\b\",\"name\":\"support.constant.property-value.less\"},{\"match\":\"\\\\\\\\b(absolute|active|add|all-petite-caps|all-small-caps|all-scroll|all|alphabetic|alpha|alternate-reverse|alternate|always|annotation|antialiased|at|autohiding-scrollbar|auto|avoid-column|avoid-page|avoid-region|avoid|background-color|background-image|background-position|background-size|background-repeat|background|backwards|balance|baseline|below|bevel|bicubic|bidi-override|blink|block-line-height|block-start|block-end|block|blur|bolder|bold|border-top-left-radius|border-top-right-radius|border-bottom-left-radius|border-bottom-right-radius|border-end-end-radius|border-end-start-radius|border-start-end-radius|border-start-start-radius|border-block-start-color|border-block-start-style|border-block-start-width|border-block-start|border-block-end-color|border-block-end-style|border-block-end-width|border-block-end|border-block-color|border-block-style|border-block-width|border-block|border-inline-start-color|border-inline-start-style|border-inline-start-width|border-inline-start|border-inline-end-color|border-inline-end-style|border-inline-end-width|border-inline-end|border-inline-color|border-inline-style|border-inline-width|border-inline|border-top-color|border-top-style|border-top-width|border-top|border-right-color|border-right-style|border-right-width|border-right|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-left-color|border-left-style|border-left-width|border-left|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-image|border-color|border-style|border-width|border-radius|border-collapse|border-spacing|border|both|bottom|box-shadow|box|break-all|break-word|break-spaces|brightness|butt(on)?|capitalize|central|center|char(acter-variant)?|cjk-ideographic|clip|clone|close-quote|closest-corner|closest-side|col-resize|collapse|color-stop|color-burn|color-dodge|color|column-count|column-gap|column-reverse|column-rule-color|column-rule-width|column-rule|column-width|columns|column|common-ligatures|condensed|consider-shifts|contain|content-box|contents?|contextual|contrast|cover|crisp-edges|crispEdges|crop|crosshair|cross|darken|dashed|default|dense|device-width|diagonal-fractions|difference|disabled|discard|discretionary-ligatures|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|drop-shadow|[nsew]{1,4}-resize|ease-in-out|ease-in|ease-out|ease|element|ellipsis|embed|end|EndColorStr|evenodd|exclude-ruby|exclusion|expanded|extra-condensed|extra-expanded|farthest-corner|farthest-side|farthest|fill-box|fill-opacity|fill|filter|fit-content|fixed|flat|flex-basis|flex-end|flex-grow|flex-shrink|flex-start|flexbox|flex|flip|flood-color|font-size-adjust|font-size|font-stretch|font-weight|font|forwards|from-image|from|full-width|gap|geometricPrecision|glyphs|gradient|grayscale|grid-column-gap|grid-column|grid-row-gap|grid-row|grid-gap|grid-height|grid|groove|hand|hanging|hard-light|height|help|hidden|hide|historical-forms|historical-ligatures|horizontal-tb|horizontal|hue|ideographic|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|include-ruby|infinite|inherit|initial|inline-end|inline-size|inline-start|inline-table|inline-line-height|inline-flexbox|inline-flex|inline-box|inline-block|inline|inset|inside|inter-ideograph|inter-word|intersect|invert|isolate|isolation|italic|jis(04|78|83|90)|justify-all|justify|keep-all|larger|large|last|layout|left|letter-spacing|lighten|lighter|lighting-color|linear-gradient|linearRGB|linear|line-edge|line-height|line-through|line|lining-nums|list-item|local|loose|lowercase|lr-tb|ltr|luminosity|luminance|manual|manipulation|margin-bottom|margin-box|margin-left|margin-right|margin-top|margin|marker(-offset|s)?|match-parent|mathematical|max-(content|height|lines|size|width)|medium|middle|min-(content|height|width)|miter|mixed|move|multiply|newspaper|no-change|no-clip|no-close-quote|no-open-quote|no-common-ligatures|no-discretionary-ligatures|no-historical-ligatures|no-contextual|no-drop|no-repeat|none|nonzero|normal|not-allowed|nowrap|oblique|offset-after|offset-before|offset-end|offset-start|offset|oldstyle-nums|opacity|open-quote|optimize(Legibility|Precision|Quality|Speed)|order|ordinal|ornaments|outline-color|outline-offset|outline-width|outline|outset|outside|overline|over-edge|overlay|padding(-bottom|-box|-left|-right|-top|-box)?|page|paint(ed)?|paused|pan-(x|left|right|y|up|down)|perspective-origin|petite-caps|pixelated|pointer|pinch-zoom|pretty|pre(-line|-wrap)?|preserve-3d|preserve-breaks|preserve-spaces|preserve|progid:DXImageTransform\\\\\\\\.Microsoft\\\\\\\\.(Alpha|Blur|dropshadow|gradient|Shadow)|progress|proportional-nums|proportional-width|radial-gradient|recto|region|relative|repeating-linear-gradient|repeating-radial-gradient|repeat-x|repeat-y|repeat|replaced|reset-size|reverse|revert-layer|revert|ridge|right|round|row-gap|row-resize|row-reverse|row|rtl|ruby|running|saturate|saturation|screen|scrollbar|scroll-position|scroll|separate|sepia|scale-down|semi-condensed|semi-expanded|shape-image-threshold|shape-margin|shape-outside|show|sideways-lr|sideways-rl|sideways|simplified|size|slashed-zero|slice|small-caps|smaller|small|smooth|snap|solid|soft-light|space-around|space-between|space|span|sRGB|stable|stacked-fractions|stack|startColorStr|start|static|step-end|step-start|sticky|stop-color|stop-opacity|stretch|strict|stroke-box|stroke-dasharray|stroke-dashoffset|stroke-miterlimit|stroke-opacity|stroke-width|stroke|styleset|style|stylistic|subgrid|subpixel-antialiased|subtract|super|swash|table-caption|table-cell|table-column-group|table-footer-group|table-header-group|table-row-group|table-column|table-row|table|tabular-nums|tb-rl|text((-bottom|-(decoration|emphasis)-color|-indent|-(over|under)-edge|-shadow|-size(-adjust)?|-top)|field)?|thick|thin|titling-caps|titling-case|top|touch|to|traditional|transform-origin|transform-style|transform|ultra-condensed|ultra-expanded|under-edge|underline|unicase|unset|uppercase|upright|use-glyph-orientation|use-script|verso|vertical(-align|-ideographic|-lr|-rl|-text)?|view-box|viewport-fill-opacity|viewport-fill|visibility|visibleFill|visiblePainted|visibleStroke|visible|wait|wavy|weight|whitespace|width|word-spacing|wrap-reverse|wrap-reverse|wrap|xx?-(large|small)|z-index|zero|zoom-in|zoom-out|zoom|arabic-indic|armenian|bengali|cambodian|circle|cjk-decimal|cjk-earthly-branch|cjk-heavenly-stem|decimal-leading-zero|decimal|devanagari|disclosure-closed|disclosure-open|disc|ethiopic-numeric|georgian|gujarati|gurmukhi|hebrew|hiragana-iroha|hiragana|japanese-formal|japanese-informal|kannada|katakana-iroha|katakana|khmer|korean-hangul-formal|korean-hanja-formal|korean-hanja-informal|lao|lower-alpha|lower-armenian|lower-greek|lower-latin|lower-roman|malayalam|mongolian|myanmar|oriya|persian|simp-chinese-formal|simp-chinese-informal|square|tamil|telugu|thai|tibetan|trad-chinese-formal|trad-chinese-informal|upper-alpha|upper-armenian|upper-latin|upper-roman)\\\\\\\\b\",\"name\":\"support.constant.property-value.less\"},{\"match\":\"\\\\\\\\b(sans-serif|serif|monospace|fantasy|cursive)\\\\\\\\b(?=\\\\\\\\s*[;,\\\\\\\\n}])\",\"name\":\"support.constant.font-name.less\"}]},\"property-values\":{\"patterns\":[{\"include\":\"#comment-block\"},{\"include\":\"#builtin-functions\"},{\"include\":\"#color-functions\"},{\"include\":\"#less-functions\"},{\"include\":\"#less-variables\"},{\"include\":\"#unicode-range\"},{\"include\":\"#numeric-values\"},{\"include\":\"#color-values\"},{\"include\":\"#property-value-constants\"},{\"include\":\"#less-math\"},{\"include\":\"#literal-string\"},{\"include\":\"#comma-delimiter\"},{\"include\":\"#important\"}]},\"pseudo-selectors\":{\"patterns\":[{\"begin\":\"(:)(dir)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.entity.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"entity.other.attribute-name.pseudo-class.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"match\":\"ltr|rtl\",\"name\":\"variable.parameter.dir.less\"},{\"include\":\"#less-variables\"}]}]},{\"begin\":\"(:)(lang)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.entity.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"entity.other.attribute-name.pseudo-class.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#less-variables\"},{\"include\":\"#literal-string\"},{\"include\":\"#unquoted-string\"}]}]},{\"begin\":\"(:)(not)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.entity.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"entity.other.attribute-name.pseudo-class.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#selectors\"}]}]},{\"begin\":\"(:)(nth(-last)?-(child|of-type))(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.entity.less\"},\"2\":{\"name\":\"entity.other.attribute-name.pseudo-class.less\"}},\"contentName\":\"meta.function-call.less\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"entity.other.attribute-name.pseudo-class.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"name\":\"meta.group.less\",\"patterns\":[{\"match\":\"\\\\\\\\b(even|odd)\\\\\\\\b\",\"name\":\"keyword.other.pseudo-class.less\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.arithmetic.less\"},\"2\":{\"name\":\"keyword.other.unit.less\"},\"4\":{\"name\":\"keyword.operator.arithmetic.less\"}},\"match\":\"(?:([-+])?(?:\\\\\\\\d+)?(n)(\\\\\\\\s*([-+])\\\\\\\\s*\\\\\\\\d+)?|[-+]?\\\\\\\\s*\\\\\\\\d+)\",\"name\":\"constant.numeric.less\"},{\"include\":\"#less-math\"},{\"include\":\"#less-strings\"},{\"include\":\"#less-variable-interpolation\"}]}]},{\"begin\":\"(:)(host-context|host|has|is|not|where)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.entity.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"entity.other.attribute-name.pseudo-class.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#selectors\"}]}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.less\"},\"2\":{\"name\":\"entity.other.attribute-name.pseudo-class.less\"}},\"match\":\"(:)(active|any-link|autofill|blank|buffering|checked|current|default|defined|disabled|empty|enabled|first-child|first-of-type|first|focus-visible|focus-within|focus|fullscreen|future|host|hover|in-range|indeterminate|invalid|last-child|last-of-type|left|local-link|link|modal|muted|only-child|only-of-type|optional|out-of-range|past|paused|picture-in-picture|placeholder-shown|playing|popover-open|read-only|read-write|required|right|root|scope|seeking|stalled|target-within|target|user-invalid|user-valid|valid|visited|volume-locked)\\\\\\\\b\",\"name\":\"meta.function-call.less\"},{\"begin\":\"(::?)(highlight|part|state)(?=\\\\\\\\s*(\\\\\\\\())\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.entity.less\"}},\"comment\":\"::highlight()\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"entity.other.attribute-name.pseudo-element.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"match\":\"--|(?:-?(?:(?:[a-zA-Z_]|[\\\\\\\\x{00B7}\\\\\\\\x{00C0}-\\\\\\\\x{00D6}\\\\\\\\x{00D8}-\\\\\\\\x{00F6}\\\\\\\\x{00F8}-\\\\\\\\x{037D}\\\\\\\\x{037F}-\\\\\\\\x{1FFF}\\\\\\\\x{200C}\\\\\\\\x{200D}\\\\\\\\x{203F}\\\\\\\\x{2040}\\\\\\\\x{2070}-\\\\\\\\x{218F}\\\\\\\\x{2C00}-\\\\\\\\x{2FEF}\\\\\\\\x{3001}-\\\\\\\\x{D7FF}\\\\\\\\x{F900}-\\\\\\\\x{FDCF}\\\\\\\\x{FDF0}-\\\\\\\\x{FFFD}\\\\\\\\x{10000}-\\\\\\\\x{EFFFF}])|(?:\\\\\\\\\\\\\\\\(?:\\\\\\\\N|[[:^xdigit:]]|[[:xdigit:]]{1,6}[\\\\\\\\s\\\\\\\\R]))))(?:(?:[-\\\\\\\\da-zA-Z_]|[\\\\\\\\x{00B7}\\\\\\\\x{00C0}-\\\\\\\\x{00D6}\\\\\\\\x{00D8}-\\\\\\\\x{00F6}\\\\\\\\x{00F8}-\\\\\\\\x{037D}\\\\\\\\x{037F}-\\\\\\\\x{1FFF}\\\\\\\\x{200C}\\\\\\\\x{200D}\\\\\\\\x{203F}\\\\\\\\x{2040}\\\\\\\\x{2070}-\\\\\\\\x{218F}\\\\\\\\x{2C00}-\\\\\\\\x{2FEF}\\\\\\\\x{3001}-\\\\\\\\x{D7FF}\\\\\\\\x{F900}-\\\\\\\\x{FDCF}\\\\\\\\x{FDF0}-\\\\\\\\x{FFFD}\\\\\\\\x{10000}-\\\\\\\\x{EFFFF}])|(?:\\\\\\\\\\\\\\\\(?:\\\\\\\\N|[[:^xdigit:]]|[[:xdigit:]]{1,6}[\\\\\\\\s\\\\\\\\R])))*\",\"name\":\"variable.parameter.less\"},{\"include\":\"#less-variables\"}]}]},{\"begin\":\"(::?)slotted(?=\\\\\\\\s*(\\\\\\\\())\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.entity.less\"}},\"comment\":\"::slotted()\",\"contentName\":\"meta.function-call.less\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"entity.other.attribute-name.pseudo-element.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"name\":\"meta.group.less\",\"patterns\":[{\"include\":\"#selectors\"}]}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.less\"}},\"comment\":\"defined pseudo-elements\",\"match\":\"(::?)(after|backdrop|before|cue|file-selector-button|first-letter|first-line|grammar-error|marker|placeholder|selection|spelling-error|target-text|view-transition-group|view-transition-image-pair|view-transition-new|view-transition-old|view-transition)\\\\\\\\b\",\"name\":\"entity.other.attribute-name.pseudo-element.less\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.less\"},\"2\":{\"name\":\"meta.namespace.vendor-prefix.less\"}},\"comment\":\"other possible pseudo-elements\",\"match\":\"(::?)(-\\\\\\\\w+-)(--|(?:-?(?:(?:[a-zA-Z_]|[\\\\\\\\x{00B7}\\\\\\\\x{00C0}-\\\\\\\\x{00D6}\\\\\\\\x{00D8}-\\\\\\\\x{00F6}\\\\\\\\x{00F8}-\\\\\\\\x{037D}\\\\\\\\x{037F}-\\\\\\\\x{1FFF}\\\\\\\\x{200C}\\\\\\\\x{200D}\\\\\\\\x{203F}\\\\\\\\x{2040}\\\\\\\\x{2070}-\\\\\\\\x{218F}\\\\\\\\x{2C00}-\\\\\\\\x{2FEF}\\\\\\\\x{3001}-\\\\\\\\x{D7FF}\\\\\\\\x{F900}-\\\\\\\\x{FDCF}\\\\\\\\x{FDF0}-\\\\\\\\x{FFFD}\\\\\\\\x{10000}-\\\\\\\\x{EFFFF}])|(?:\\\\\\\\\\\\\\\\(?:\\\\\\\\N|[[:^xdigit:]]|[[:xdigit:]]{1,6}[\\\\\\\\s\\\\\\\\R]))))(?:(?:[-\\\\\\\\da-zA-Z_]|[\\\\\\\\x{00B7}\\\\\\\\x{00C0}-\\\\\\\\x{00D6}\\\\\\\\x{00D8}-\\\\\\\\x{00F6}\\\\\\\\x{00F8}-\\\\\\\\x{037D}\\\\\\\\x{037F}-\\\\\\\\x{1FFF}\\\\\\\\x{200C}\\\\\\\\x{200D}\\\\\\\\x{203F}\\\\\\\\x{2040}\\\\\\\\x{2070}-\\\\\\\\x{218F}\\\\\\\\x{2C00}-\\\\\\\\x{2FEF}\\\\\\\\x{3001}-\\\\\\\\x{D7FF}\\\\\\\\x{F900}-\\\\\\\\x{FDCF}\\\\\\\\x{FDF0}-\\\\\\\\x{FFFD}\\\\\\\\x{10000}-\\\\\\\\x{EFFFF}])|(?:\\\\\\\\\\\\\\\\(?:\\\\\\\\N|[[:^xdigit:]]|[[:xdigit:]]{1,6}[\\\\\\\\s\\\\\\\\R])))*)\\\\\\\\b\",\"name\":\"entity.other.attribute-name.pseudo-element.less\"}]},\"qualified-name\":{\"captures\":{\"1\":{\"name\":\"entity.name.constant.less\"},\"2\":{\"name\":\"entity.name.namespace.wildcard.less\"},\"3\":{\"name\":\"punctuation.separator.namespace.less\"}},\"match\":\"(?:(-?(?:[[-\\\\\\\\w][^\\\\\\\\x{00}-\\\\\\\\x{7F}]]|(?:\\\\\\\\\\\\\\\\\\\\\\\\h{1,6}[\\\\\\\\s\\\\\\\\t\\\\\\\\n\\\\\\\\f]?|\\\\\\\\\\\\\\\\[^\\\\\\\\n\\\\\\\\f\\\\\\\\h]))(?:[[_a-zA-Z][^\\\\\\\\x{00}-\\\\\\\\x{7F}]]|(?:\\\\\\\\\\\\\\\\\\\\\\\\h{1,6}[\\\\\\\\s\\\\\\\\t\\\\\\\\n\\\\\\\\f]?|\\\\\\\\\\\\\\\\[^\\\\\\\\n\\\\\\\\f\\\\\\\\h]))*)|(\\\\\\\\*))?([|])(?!=)\"},\"regexp-function\":{\"begin\":\"\\\\\\\\b(regexp)(?=\\\\\\\\()\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"support.function.regexp.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"name\":\"meta.function-call.less\",\"patterns\":[{\"include\":\"#literal-string\"}]}]},\"relative-color\":{\"patterns\":[{\"match\":\"from\",\"name\":\"keyword.other.less\"},{\"match\":\"\\\\\\\\b[hslawbch]\\\\\\\\b\",\"name\":\"keyword.other.less\"}]},\"rule-list\":{\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.begin.less\"}},\"end\":\"(?=\\\\\\\\s*\\\\\\\\})\",\"name\":\"meta.property-list.less\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.terminator.rule.less\"}},\"match\":\"\\\\\\\\s*(;)|(?=[})])\"},{\"include\":\"#rule-list-body\"},{\"include\":\"#less-extend\"}]}]},\"rule-list-body\":{\"patterns\":[{\"include\":\"#comment-block\"},{\"include\":\"#comment-line\"},{\"include\":\"#at-rules\"},{\"include\":\"#less-variable-assignment\"},{\"begin\":\"(?=[-\\\\\\\\w]*?@\\\\\\\\{.*\\\\\\\\}[-\\\\\\\\w]*?\\\\\\\\s*:[^;{(]*(?=[;})]))\",\"end\":\"(?=\\\\\\\\s*(;)|(?=[})]))\",\"patterns\":[{\"begin\":\"(?=[^\\\\\\\\s:])\",\"end\":\"(?=(((\\\\\\\\+_?)?):)[\\\\\\\\s\\\\\\\\t]*)\",\"name\":\"support.type.property-name.less\",\"patterns\":[{\"include\":\"#less-variable-interpolation\"}]},{\"begin\":\"(((\\\\\\\\+_?)?):)(?=[\\\\\\\\s\\\\\\\\t]*)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.key-value.less\"}},\"contentName\":\"support.type.property-name.less\",\"end\":\"(?=\\\\\\\\s*(;)|(?=[})]))\",\"patterns\":[{\"include\":\"#property-values\"}]}]},{\"begin\":\"(?=[-a-z])\",\"end\":\"$|(?![-a-z])\",\"patterns\":[{\"include\":\"#custom-property-name\"},{\"begin\":\"(-[\\\\\\\\w-]+?-)((?:(?:[a-zA-Z_]|[\\\\\\\\x{00B7}\\\\\\\\x{00C0}-\\\\\\\\x{00D6}\\\\\\\\x{00D8}-\\\\\\\\x{00F6}\\\\\\\\x{00F8}-\\\\\\\\x{037D}\\\\\\\\x{037F}-\\\\\\\\x{1FFF}\\\\\\\\x{200C}\\\\\\\\x{200D}\\\\\\\\x{203F}\\\\\\\\x{2040}\\\\\\\\x{2070}-\\\\\\\\x{218F}\\\\\\\\x{2C00}-\\\\\\\\x{2FEF}\\\\\\\\x{3001}-\\\\\\\\x{D7FF}\\\\\\\\x{F900}-\\\\\\\\x{FDCF}\\\\\\\\x{FDF0}-\\\\\\\\x{FFFD}\\\\\\\\x{10000}-\\\\\\\\x{EFFFF}])|(?:\\\\\\\\\\\\\\\\(?:\\\\\\\\N|[[:^xdigit:]]|[[:xdigit:]]{1,6}[\\\\\\\\s\\\\\\\\R])))(?:(?:[-\\\\\\\\da-zA-Z_]|[\\\\\\\\x{00B7}\\\\\\\\x{00C0}-\\\\\\\\x{00D6}\\\\\\\\x{00D8}-\\\\\\\\x{00F6}\\\\\\\\x{00F8}-\\\\\\\\x{037D}\\\\\\\\x{037F}-\\\\\\\\x{1FFF}\\\\\\\\x{200C}\\\\\\\\x{200D}\\\\\\\\x{203F}\\\\\\\\x{2040}\\\\\\\\x{2070}-\\\\\\\\x{218F}\\\\\\\\x{2C00}-\\\\\\\\x{2FEF}\\\\\\\\x{3001}-\\\\\\\\x{D7FF}\\\\\\\\x{F900}-\\\\\\\\x{FDCF}\\\\\\\\x{FDF0}-\\\\\\\\x{FFFD}\\\\\\\\x{10000}-\\\\\\\\x{EFFFF}])|(?:\\\\\\\\\\\\\\\\(?:\\\\\\\\N|[[:^xdigit:]]|[[:xdigit:]]{1,6}[\\\\\\\\s\\\\\\\\R])))*)\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"support.type.property-name.less\"},\"1\":{\"name\":\"meta.namespace.vendor-prefix.less\"}},\"comment\":\"vendor-prefixed properties\",\"end\":\"\\\\\\\\s*(;)|(?=[})])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.rule.less\"}},\"patterns\":[{\"begin\":\"(((\\\\\\\\+_?)?):)(?=[\\\\\\\\s\\\\\\\\t]*)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.key-value.less\"}},\"contentName\":\"meta.property-value.less\",\"end\":\"(?=\\\\\\\\s*(;)|(?=[})]))\",\"patterns\":[{\"include\":\"#property-values\"},{\"match\":\"[\\\\\\\\w-]+\",\"name\":\"support.constant.property-value.less\"}]}]},{\"include\":\"#filter-function\"},{\"begin\":\"\\\\\\\\b(border((-(bottom|top)-(left|right))|((-(start|end)){2}))?-radius|(border-image(?!-)))\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"support.type.property-name.less\"}},\"comment\":\"border-radius and border-image properties utilize a slash as a separator\",\"end\":\"\\\\\\\\s*(;)|(?=[})])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.rule.less\"}},\"patterns\":[{\"begin\":\"(((\\\\\\\\+_?)?):)(?=[\\\\\\\\s\\\\\\\\t]*)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.key-value.less\"}},\"contentName\":\"meta.property-value.less\",\"end\":\"(?=\\\\\\\\s*(;)|(?=[})]))\",\"patterns\":[{\"include\":\"#value-separator\"},{\"include\":\"#property-values\"}]}]},{\"captures\":{\"1\":{\"name\":\"keyword.other.custom-property.prefix.less\"},\"2\":{\"name\":\"support.type.custom-property.name.less\"}},\"match\":\"\\\\\\\\b(var-)(-?(?:[[-\\\\\\\\w][^\\\\\\\\x{00}-\\\\\\\\x{9f}]]|(?:\\\\\\\\\\\\\\\\\\\\\\\\h{1,6}[\\\\\\\\s\\\\\\\\t\\\\\\\\n\\\\\\\\f]?|\\\\\\\\\\\\\\\\[^\\\\\\\\n\\\\\\\\f\\\\\\\\h]))(?:[[_a-zA-Z][^\\\\\\\\x{00}-\\\\\\\\x{9f}]]|(?:\\\\\\\\\\\\\\\\\\\\\\\\h{1,6}[\\\\\\\\s\\\\\\\\t\\\\\\\\n\\\\\\\\f]?|\\\\\\\\\\\\\\\\[^\\\\\\\\n\\\\\\\\f\\\\\\\\h]))*)(?=\\\\\\\\s)\",\"name\":\"invalid.deprecated.custom-property.less\"},{\"begin\":\"\\\\\\\\bfont(-family)?(?!-)\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"support.type.property-name.less\"}},\"end\":\"\\\\\\\\s*(;)|(?=[})])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.rule.less\"}},\"name\":\"meta.property-name.less\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.key-value.less\"},\"4\":{\"name\":\"meta.property-value.less\"}},\"match\":\"(((\\\\\\\\+_?)?):)([\\\\\\\\s\\\\\\\\t]*)\"},{\"include\":\"#property-values\"},{\"match\":\"-?(?:[[_a-zA-Z][^\\\\\\\\x{00}-\\\\\\\\x{9f}]]|(?:\\\\\\\\\\\\\\\\\\\\\\\\h{1,6}[\\\\\\\\s\\\\\\\\t\\\\\\\\n\\\\\\\\f]?|\\\\\\\\\\\\\\\\[^\\\\\\\\n\\\\\\\\f\\\\\\\\h]))(?:[[-\\\\\\\\w][^\\\\\\\\x{00}-\\\\\\\\x{9f}]]|(?:\\\\\\\\\\\\\\\\\\\\\\\\h{1,6}[\\\\\\\\s\\\\\\\\t\\\\\\\\n\\\\\\\\f]?|\\\\\\\\\\\\\\\\[^\\\\\\\\n\\\\\\\\f\\\\\\\\h]))*(\\\\\\\\s+-?(?:[[_a-zA-Z][^\\\\\\\\x{00}-\\\\\\\\x{9f}]]|(?:\\\\\\\\\\\\\\\\\\\\\\\\h{1,6}[\\\\\\\\s\\\\\\\\t\\\\\\\\n\\\\\\\\f]?|\\\\\\\\\\\\\\\\[^\\\\\\\\n\\\\\\\\f\\\\\\\\h]))(?:[[-\\\\\\\\w][^\\\\\\\\x{00}-\\\\\\\\x{9f}]]|(?:\\\\\\\\\\\\\\\\\\\\\\\\h{1,6}[\\\\\\\\s\\\\\\\\t\\\\\\\\n\\\\\\\\f]?|\\\\\\\\\\\\\\\\[^\\\\\\\\n\\\\\\\\f\\\\\\\\h]))*)*\",\"name\":\"string.unquoted.less\"},{\"match\":\",\",\"name\":\"punctuation.separator.less\"}]},{\"begin\":\"\\\\\\\\banimation-timeline\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"support.type.property-name.less\"}},\"end\":\"\\\\\\\\s*(;)|(?=[})])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.rule.less\"}},\"patterns\":[{\"begin\":\"(((\\\\\\\\+_?)?):)(?=[\\\\\\\\s\\\\\\\\t]*)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.key-value.less\"}},\"contentName\":\"meta.property-value.less\",\"end\":\"(?=\\\\\\\\s*(;)|(?=[})]))\",\"patterns\":[{\"include\":\"#comment-block\"},{\"include\":\"#custom-property-name\"},{\"include\":\"#scroll-function\"},{\"include\":\"#view-function\"},{\"include\":\"#property-values\"},{\"include\":\"#less-variables\"},{\"include\":\"#arbitrary-repetition\"},{\"include\":\"#important\"}]}]},{\"begin\":\"\\\\\\\\banimation(?:-name)?(?=(?:\\\\\\\\+_?)?:)\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"support.type.property-name.less\"}},\"end\":\"\\\\\\\\s*(;)|(?=[})])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.rule.less\"}},\"patterns\":[{\"begin\":\"(((\\\\\\\\+_?)?):)(?=[\\\\\\\\s\\\\\\\\t]*)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.key-value.less\"}},\"contentName\":\"meta.property-value.less\",\"end\":\"(?=\\\\\\\\s*(;)|(?=[})]))\",\"patterns\":[{\"include\":\"#comment-block\"},{\"include\":\"#builtin-functions\"},{\"include\":\"#less-functions\"},{\"include\":\"#less-variables\"},{\"include\":\"#numeric-values\"},{\"include\":\"#property-value-constants\"},{\"match\":\"-?(?:[_a-zA-Z]|[^\\\\\\\\x{00}-\\\\\\\\x{7F}]|(?:(:?\\\\\\\\\\\\\\\\[0-9a-f]{1,6}(\\\\\\\\r\\\\\\\\n|[\\\\\\\\s\\\\\\\\t\\\\\\\\r\\\\\\\\n\\\\\\\\f])?)|\\\\\\\\\\\\\\\\[^\\\\\\\\r\\\\\\\\n\\\\\\\\f0-9a-f]))(?:[-_a-zA-Z0-9]|[^\\\\\\\\x{00}-\\\\\\\\x{7F}]|(?:(:?\\\\\\\\\\\\\\\\[0-9a-f]{1,6}(\\\\\\\\r\\\\\\\\n|[\\\\\\\\t\\\\\\\\r\\\\\\\\n\\\\\\\\f])?)|\\\\\\\\\\\\\\\\[^\\\\\\\\r\\\\\\\\n\\\\\\\\f0-9a-f]))*\",\"name\":\"variable.other.constant.animation-name.less string.unquoted.less\"},{\"include\":\"#less-math\"},{\"include\":\"#arbitrary-repetition\"},{\"include\":\"#important\"}]}]},{\"begin\":\"\\\\\\\\b(transition(-(property|duration|delay|timing-function))?)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"support.type.property-name.less\"}},\"end\":\"\\\\\\\\s*(;)|(?=[})])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.rule.less\"}},\"patterns\":[{\"begin\":\"(((\\\\\\\\+_?)?):)(?=[\\\\\\\\s\\\\\\\\t]*)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.key-value.less\"}},\"contentName\":\"meta.property-value.less\",\"end\":\"(?=\\\\\\\\s*(;)|(?=[})]))\",\"patterns\":[{\"include\":\"#time-type\"},{\"include\":\"#property-values\"},{\"include\":\"#cubic-bezier-function\"},{\"include\":\"#steps-function\"},{\"include\":\"#arbitrary-repetition\"}]}]},{\"begin\":\"\\\\\\\\b(?:backdrop-)?filter\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"support.type.property-name.less\"}},\"end\":\"\\\\\\\\s*(;)|(?=[})])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.rule.less\"}},\"name\":\"meta.property-name.less\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.key-value.less\"},\"4\":{\"name\":\"meta.property-value.less\"}},\"match\":\"(((\\\\\\\\+_?)?):)([\\\\\\\\s\\\\\\\\t]*)\"},{\"match\":\"\\\\\\\\b(inherit|initial|unset|none)\\\\\\\\b\",\"name\":\"meta.property-value.less\"},{\"include\":\"#filter-functions\"}]},{\"begin\":\"\\\\\\\\bwill-change\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"support.type.property-name.less\"}},\"end\":\"\\\\\\\\s*(;)|(?=[})])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.rule.less\"}},\"name\":\"meta.property-name.less\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.key-value.less\"},\"4\":{\"name\":\"meta.property-value.less\"}},\"match\":\"(((\\\\\\\\+_?)?):)([\\\\\\\\s\\\\\\\\t]*)\"},{\"match\":\"unset|initial|inherit|will-change|auto|scroll-position|contents\",\"name\":\"invalid.illegal.property-value.less\"},{\"match\":\"-?(?:[[-\\\\\\\\w][^\\\\\\\\x{00}-\\\\\\\\x{9f}]]|(?:\\\\\\\\\\\\\\\\\\\\\\\\h{1,6}[\\\\\\\\s\\\\\\\\t\\\\\\\\n\\\\\\\\f]?|\\\\\\\\\\\\\\\\[^\\\\\\\\n\\\\\\\\f\\\\\\\\h]))(?:[[_a-zA-Z][^\\\\\\\\x{00}-\\\\\\\\x{9f}]]|(?:\\\\\\\\\\\\\\\\\\\\\\\\h{1,6}[\\\\\\\\s\\\\\\\\t\\\\\\\\n\\\\\\\\f]?|\\\\\\\\\\\\\\\\[^\\\\\\\\n\\\\\\\\f\\\\\\\\h]))*\",\"name\":\"support.constant.property-value.less\"},{\"include\":\"#arbitrary-repetition\"}]},{\"begin\":\"\\\\\\\\bcounter-(increment|(re)?set)\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"support.type.property-name.less\"}},\"end\":\"\\\\\\\\s*(;)|(?=[})])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.rule.less\"}},\"name\":\"meta.property-name.less\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.key-value.less\"},\"4\":{\"name\":\"meta.property-value.less\"}},\"match\":\"(((\\\\\\\\+_?)?):)([\\\\\\\\s\\\\\\\\t]*)\"},{\"match\":\"-?(?:[[-\\\\\\\\w][^\\\\\\\\x{00}-\\\\\\\\x{9f}]]|(?:\\\\\\\\\\\\\\\\\\\\\\\\h{1,6}[\\\\\\\\s\\\\\\\\t\\\\\\\\n\\\\\\\\f]?|\\\\\\\\\\\\\\\\[^\\\\\\\\n\\\\\\\\f\\\\\\\\h]))(?:[[_a-zA-Z][^\\\\\\\\x{00}-\\\\\\\\x{9f}]]|(?:\\\\\\\\\\\\\\\\\\\\\\\\h{1,6}[\\\\\\\\s\\\\\\\\t\\\\\\\\n\\\\\\\\f]?|\\\\\\\\\\\\\\\\[^\\\\\\\\n\\\\\\\\f\\\\\\\\h]))*\",\"name\":\"entity.name.constant.counter-name.less\"},{\"include\":\"#integer-type\"},{\"match\":\"unset|initial|inherit|auto\",\"name\":\"invalid.illegal.property-value.less\"}]},{\"begin\":\"\\\\\\\\bcontainer(?:-name)?(?=\\\\\\\\s*?:)\",\"end\":\"\\\\\\\\s*(;)|(?=[})])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.rule.less\"}},\"name\":\"support.type.property-name.less\",\"patterns\":[{\"begin\":\"(((\\\\\\\\+_?)?):)(?=[\\\\\\\\s\\\\\\\\t]*)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.key-value.less\"}},\"contentName\":\"meta.property-value.less\",\"end\":\"(?=\\\\\\\\s*(;)|(?=[})]))\",\"patterns\":[{\"match\":\"\\\\\\\\bdefault\\\\\\\\b\",\"name\":\"invalid.illegal.property-value.less\"},{\"include\":\"#global-property-values\"},{\"include\":\"#custom-property-name\"},{\"contentName\":\"variable.other.constant.container-name.less\",\"match\":\"--|(?:-?(?:(?:[a-zA-Z_]|[\\\\\\\\x{00B7}\\\\\\\\x{00C0}-\\\\\\\\x{00D6}\\\\\\\\x{00D8}-\\\\\\\\x{00F6}\\\\\\\\x{00F8}-\\\\\\\\x{037D}\\\\\\\\x{037F}-\\\\\\\\x{1FFF}\\\\\\\\x{200C}\\\\\\\\x{200D}\\\\\\\\x{203F}\\\\\\\\x{2040}\\\\\\\\x{2070}-\\\\\\\\x{218F}\\\\\\\\x{2C00}-\\\\\\\\x{2FEF}\\\\\\\\x{3001}-\\\\\\\\x{D7FF}\\\\\\\\x{F900}-\\\\\\\\x{FDCF}\\\\\\\\x{FDF0}-\\\\\\\\x{FFFD}\\\\\\\\x{10000}-\\\\\\\\x{EFFFF}])|(?:\\\\\\\\\\\\\\\\(?:\\\\\\\\N|[[:^xdigit:]]|[[:xdigit:]]{1,6}[\\\\\\\\s\\\\\\\\R]))))(?:(?:[-\\\\\\\\da-zA-Z_]|[\\\\\\\\x{00B7}\\\\\\\\x{00C0}-\\\\\\\\x{00D6}\\\\\\\\x{00D8}-\\\\\\\\x{00F6}\\\\\\\\x{00F8}-\\\\\\\\x{037D}\\\\\\\\x{037F}-\\\\\\\\x{1FFF}\\\\\\\\x{200C}\\\\\\\\x{200D}\\\\\\\\x{203F}\\\\\\\\x{2040}\\\\\\\\x{2070}-\\\\\\\\x{218F}\\\\\\\\x{2C00}-\\\\\\\\x{2FEF}\\\\\\\\x{3001}-\\\\\\\\x{D7FF}\\\\\\\\x{F900}-\\\\\\\\x{FDCF}\\\\\\\\x{FDF0}-\\\\\\\\x{FFFD}\\\\\\\\x{10000}-\\\\\\\\x{EFFFF}])|(?:\\\\\\\\\\\\\\\\(?:\\\\\\\\N|[[:^xdigit:]]|[[:xdigit:]]{1,6}[\\\\\\\\s\\\\\\\\R])))*\",\"name\":\"support.constant.property-value.less\"},{\"include\":\"#property-values\"}]}]},{\"match\":\"\\\\\\\\b(accent-height|align-content|align-items|align-self|alignment-baseline|all|animation-timing-function|animation-range-start|animation-range-end|animation-range|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation-composition|animation|appearance|ascent|aspect-ratio|azimuth|backface-visibility|background-size|background-repeat-y|background-repeat-x|background-repeat|background-position-y|background-position-x|background-position|background-origin|background-image|background-color|background-clip|background-blend-mode|background-attachment|background|baseline-shift|begin|bias|blend-mode|border-top-left-radius|border-top-right-radius|border-bottom-left-radius|border-bottom-right-radius|border-end-end-radius|border-end-start-radius|border-start-end-radius|border-start-start-radius|border-block-start-color|border-block-start-style|border-block-start-width|border-block-start|border-block-end-color|border-block-end-style|border-block-end-width|border-block-end|border-block-color|border-block-style|border-block-width|border-block|border-inline-start-color|border-inline-start-style|border-inline-start-width|border-inline-start|border-inline-end-color|border-inline-end-style|border-inline-end-width|border-inline-end|border-inline-color|border-inline-style|border-inline-width|border-inline|border-top-color|border-top-style|border-top-width|border-top|border-right-color|border-right-style|border-right-width|border-right|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-left-color|border-left-style|border-left-width|border-left|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-image|border-color|border-style|border-width|border-radius|border-collapse|border-spacing|border|bottom|box-(align|decoration-break|direction|flex|ordinal-group|orient|pack|shadow|sizing)|break-(after|before|inside)|caption-side|clear|clip-path|clip-rule|clip|color(-(interpolation(-filters)?|profile|rendering))?|columns|column-(break-before|count|fill|gap|(rule(-(color|style|width))?)|span|width)|container-name|container-type|container|contain-intrinsic-block-size|contain-intrinsic-inline-size|contain-intrinsic-height|contain-intrinsic-size|contain-intrinsic-width|contain|content|counter-(increment|reset)|cursor|[cdf][xy]|direction|display|divisor|dominant-baseline|dur|elevation|empty-cells|enable-background|end|fallback|fill(-(opacity|rule))?|filter|flex(-(align|basis|direction|flow|grow|item-align|line-pack|negative|order|pack|positive|preferred-size|shrink|wrap))?|float|flood-(color|opacity)|font-display|font-family|font-feature-settings|font-kerning|font-language-override|font-size(-adjust)?|font-smoothing|font-stretch|font-style|font-synthesis|font-variant(-(alternates|caps|east-asian|ligatures|numeric|position))?|font-weight|font|fr|((column|row)-)?gap|glyph-orientation-(horizontal|vertical)|grid-(area|gap)|grid-auto-(columns|flow|rows)|grid-(column|row)(-(end|gap|start))?|grid-template(-(areas|columns|rows))?|grid|height|hyphens|image-(orientation|rendering|resolution)|inset(-(block|inline))?(-(start|end))?|isolation|justify-content|justify-items|justify-self|kerning|left|letter-spacing|lighting-color|line-(box-contain|break|clamp|height)|list-style(-(image|position|type))?|(margin|padding)(-(bottom|left|right|top)|(-(block|inline)?(-(end|start))?))?|marker(-(end|mid|start))?|mask(-(clip||composite|image|origin|position|repeat|size|type))?|(max|min)-(height|width)|mix-blend-mode|nbsp-mode|negative|object-(fit|position)|opacity|operator|order|orphans|outline(-(color|offset|style|width))?|overflow(-((inline|block)|scrolling|wrap|x|y))?|overscroll-behavior(-block|-(inline|x|y))?|pad(ding(-(bottom|left|right|top))?)?|page(-break-(after|before|inside))?|paint-order|pause(-(after|before))?|perspective(-origin(-(x|y))?)?|pitch(-range)?|place-content|place-self|pointer-events|position|prefix|quotes|range|resize|right|rotate|scale|scroll-behavior|shape-(image-threshold|margin|outside|rendering)|size|speak(-as)?|src|stop-(color|opacity)|stroke(-(dash(array|offset)|line(cap|join)|miterlimit|opacity|width))?|suffix|symbols|system|tab-size|table-layout|tap-highlight-color|text-align(-last)?|text-decoration(-(color|line|style))?|text-emphasis(-(color|position|style))?|text-(anchor|fill-color|height|indent|justify|orientation|overflow|rendering|size-adjust|shadow|transform|underline-position|wrap)|top|touch-action|transform(-origin(-(x|y))?)|transform(-style)?|transition(-(delay|duration|property|timing-function))?|translate|unicode-(bidi|range)|user-(drag|select)|vertical-align|visibility|white-space(-collapse)?|widows|width|will-change|word-(break|spacing|wrap)|writing-mode|z-index|zoom)\\\\\\\\b\",\"name\":\"support.type.property-name.less\"},{\"match\":\"\\\\\\\\b(((contain-intrinsic|max|min)-)?(block|inline)?-size)\\\\\\\\b\",\"name\":\"support.type.property-name.less\"},{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\b((?:(?:\\\\\\\\+_?)?):)([\\\\\\\\s\\\\\\\\t]*)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.key-value.less\"},\"2\":{\"name\":\"meta.property-value.less\"}},\"captures\":{\"1\":{\"name\":\"punctuation.separator.key-value.less\"},\"4\":{\"name\":\"meta.property-value.less\"}},\"contentName\":\"meta.property-value.less\",\"end\":\"\\\\\\\\s*(;)|(?=[})])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.rule.less\"}},\"patterns\":[{\"include\":\"#property-values\"}]},{\"include\":\"$self\"}]},\"scroll-function\":{\"begin\":\"\\\\\\\\b(scroll)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.scroll.less\"},\"2\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"match\":\"root|nearest|self\",\"name\":\"support.constant.scroller.less\"},{\"match\":\"block|inline|x|y\",\"name\":\"support.constant.axis.less\"},{\"include\":\"#less-variables\"},{\"include\":\"#var-function\"}]},\"selector\":{\"patterns\":[{\"begin\":\"(?=[>~+/\\\\\\\\.*#a-zA-Z\\\\\\\\[&]|(\\\\\\\\:{1,2}[^\\\\\\\\s])|@\\\\\\\\{)\",\"contentName\":\"meta.selector.less\",\"end\":\"(?=@(?!\\\\\\\\{)|[{;])\",\"patterns\":[{\"include\":\"#comment-line\"},{\"include\":\"#selectors\"},{\"include\":\"#less-namespace-accessors\"},{\"include\":\"#less-variable-interpolation\"},{\"include\":\"#important\"}]}]},\"selectors\":{\"patterns\":[{\"match\":\"\\\\\\\\b([a-z](?:(?:[-_a-z0-9\\\\\\\\x{00B7}]|\\\\\\\\\\\\\\\\\\\\\\\\.|[[\\\\\\\\x{00C0}-\\\\\\\\x{00D6}][\\\\\\\\x{00D8}-\\\\\\\\x{00F6}][\\\\\\\\x{00F8}-\\\\\\\\x{02FF}][\\\\\\\\x{0300}-\\\\\\\\x{037D}][\\\\\\\\x{037F}-\\\\\\\\x{1FFF}][\\\\\\\\x{200C}-\\\\\\\\x{200D}][\\\\\\\\x{203F}-\\\\\\\\x{2040}][\\\\\\\\x{2070}-\\\\\\\\x{218F}][\\\\\\\\x{2C00}-\\\\\\\\x{2FEF}][\\\\\\\\x{3001}-\\\\\\\\x{D7FF}][\\\\\\\\x{F900}-\\\\\\\\x{FDCF}][\\\\\\\\x{FDF0}-\\\\\\\\x{FFFD}][\\\\\\\\x{10000}-\\\\\\\\x{EFFFF}]]))*-(?:(?:[-_a-z0-9\\\\\\\\x{00B7}]|\\\\\\\\\\\\\\\\\\\\\\\\.|[[\\\\\\\\x{00C0}-\\\\\\\\x{00D6}][\\\\\\\\x{00D8}-\\\\\\\\x{00F6}][\\\\\\\\x{00F8}-\\\\\\\\x{02FF}][\\\\\\\\x{0300}-\\\\\\\\x{037D}][\\\\\\\\x{037F}-\\\\\\\\x{1FFF}][\\\\\\\\x{200C}-\\\\\\\\x{200D}][\\\\\\\\x{203F}-\\\\\\\\x{2040}][\\\\\\\\x{2070}-\\\\\\\\x{218F}][\\\\\\\\x{2C00}-\\\\\\\\x{2FEF}][\\\\\\\\x{3001}-\\\\\\\\x{D7FF}][\\\\\\\\x{F900}-\\\\\\\\x{FDCF}][\\\\\\\\x{FDF0}-\\\\\\\\x{FFFD}][\\\\\\\\x{10000}-\\\\\\\\x{EFFFF}]]))*)\\\\\\\\b\",\"name\":\"entity.name.tag.custom.less\"},{\"match\":\"\\\\\\\\b(a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdi|bdo|big|blockquote|body|br|button|canvas|caption|circle|cite|clipPath|code|col|colgroup|content|data|dataList|dd|defs|del|details|dfn|dialog|dir|div|dl|dt|element|ellipse|em|embed|eventsource|fieldset|figcaption|figure|filter|footer|foreignObject|form|frame|frameset|g|glyph|glyphRef|h1|h2|h3|h4|h5|h6|head|header|hgroup|hr|html|i|iframe|image|img|input|ins|isindex|kbd|keygen|label|legend|li|line|linearGradient|link|main|map|mark|marker|mask|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|path|pattern|picture|polygon|polyline|pre|progress|q|radialGradient|rect|rp|ruby|rt|rtc|s|samp|script|section|select|shadow|small|source|span|stop|strike|strong|style|sub|summary|sup|svg|switch|symbol|table|tbody|td|template|textarea|textPath|tfoot|th|thead|time|title|tr|track|tref|tspan|tt|u|ul|use|var|video|wbr|xmp)\\\\\\\\b\",\"name\":\"entity.name.tag.less\"},{\"begin\":\"(\\\\\\\\.)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.entity.less\"}},\"end\":\"(?![-\\\\\\\\w]|[^\\\\\\\\x{00}-\\\\\\\\x{9f}]|\\\\\\\\\\\\\\\\([A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9])|(\\\\\\\\@(?=\\\\\\\\{)))\",\"name\":\"entity.other.attribute-name.class.less\",\"patterns\":[{\"include\":\"#less-variable-interpolation\"}]},{\"begin\":\"(#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.entity.less\"}},\"end\":\"(?![-\\\\\\\\w]|[^\\\\\\\\x{00}-\\\\\\\\x{9f}]|\\\\\\\\\\\\\\\\([A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9])|(\\\\\\\\@(?=\\\\\\\\{)))\",\"name\":\"entity.other.attribute-name.id.less\",\"patterns\":[{\"include\":\"#less-variable-interpolation\"}]},{\"begin\":\"(&)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.entity.less\"}},\"contentName\":\"entity.other.attribute-name.parent.less\",\"end\":\"(?![-\\\\\\\\w]|[^\\\\\\\\x{00}-\\\\\\\\x{9f}]|\\\\\\\\\\\\\\\\([A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9])|(\\\\\\\\@(?=\\\\\\\\{)))\",\"name\":\"entity.other.attribute-name.parent.less\",\"patterns\":[{\"include\":\"#less-variable-interpolation\"},{\"include\":\"#selectors\"}]},{\"include\":\"#pseudo-selectors\"},{\"include\":\"#less-extend\"},{\"match\":\"(?!\\\\\\\\+_?:)(?:>{1,3}|[~+])(?![>~+;}])\",\"name\":\"punctuation.separator.combinator.less\"},{\"match\":\"((?:>{1,3}|[~+])){2,}\",\"name\":\"invalid.illegal.combinator.less\"},{\"match\":\"\\\\\\\\/deep\\\\\\\\/\",\"name\":\"invalid.illegal.combinator.less\"},{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.braces.begin.less\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.braces.end.less\"}},\"name\":\"meta.attribute-selector.less\",\"patterns\":[{\"include\":\"#less-variable-interpolation\"},{\"include\":\"#qualified-name\"},{\"match\":\"(-?(?:[[_a-zA-Z][^\\\\\\\\x{00}-\\\\\\\\x{7F}]]|(?:\\\\\\\\\\\\\\\\\\\\\\\\h{1,6}[\\\\\\\\s\\\\\\\\t\\\\\\\\n\\\\\\\\f]?|\\\\\\\\\\\\\\\\[^\\\\\\\\n\\\\\\\\f\\\\\\\\h]))(?:[[-\\\\\\\\w][^\\\\\\\\x{00}-\\\\\\\\x{7F}]]|(?:\\\\\\\\\\\\\\\\\\\\\\\\h{1,6}[\\\\\\\\s\\\\\\\\t\\\\\\\\n\\\\\\\\f]?|\\\\\\\\\\\\\\\\[^\\\\\\\\n\\\\\\\\f\\\\\\\\h]))*)\",\"name\":\"entity.other.attribute-name.less\"},{\"begin\":\"\\\\\\\\s*([~*|^$]?=)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.attribute-selector.less\"}},\"end\":\"(?=(\\\\\\\\s|\\\\\\\\]))\",\"patterns\":[{\"include\":\"#less-variable-interpolation\"},{\"match\":\"[^\\\\\\\\s\\\\\\\\]\\\\\\\\['\\\\\"]\",\"name\":\"string.unquoted.less\"},{\"include\":\"#literal-string\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.less\"}},\"match\":\"(?:\\\\\\\\s+([iI]))?\"},{\"match\":\"\\\\\\\\]\",\"name\":\"punctuation.definition.entity.less\"}]}]},{\"include\":\"#arbitrary-repetition\"},{\"match\":\"\\\\\\\\*\",\"name\":\"entity.name.tag.wildcard.less\"}]},\"shape-functions\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(rect)(?=\\\\\\\\()\",\"beginCaptures\":{\"0\":{\"name\":\"support.function.shape.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"match\":\"\\\\\\\\bauto\\\\\\\\b\",\"name\":\"support.constant.property-value.less\"},{\"include\":\"#length-type\"},{\"include\":\"#comma-delimiter\"}]}]},{\"begin\":\"\\\\\\\\b(inset)(?=\\\\\\\\()\",\"beginCaptures\":{\"0\":{\"name\":\"support.function.shape.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"match\":\"\\\\\\\\bround\\\\\\\\b\",\"name\":\"keyword.other.less\"},{\"include\":\"#length-type\"},{\"include\":\"#percentage-type\"}]}]},{\"begin\":\"\\\\\\\\b(circle|ellipse)(?=\\\\\\\\()\",\"beginCaptures\":{\"0\":{\"name\":\"support.function.shape.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"match\":\"\\\\\\\\bat\\\\\\\\b\",\"name\":\"keyword.other.less\"},{\"match\":\"\\\\\\\\b(top|right|bottom|left|center|closest-side|farthest-side)\\\\\\\\b\",\"name\":\"support.constant.property-value.less\"},{\"include\":\"#length-type\"},{\"include\":\"#percentage-type\"}]}]},{\"begin\":\"\\\\\\\\b(polygon)(?=\\\\\\\\()\",\"beginCaptures\":{\"0\":{\"name\":\"support.function.shape.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"match\":\"\\\\\\\\b(nonzero|evenodd)\\\\\\\\b\",\"name\":\"support.constant.property-value.less\"},{\"include\":\"#length-type\"},{\"include\":\"#percentage-type\"}]}]}]},\"steps-function\":{\"begin\":\"\\\\\\\\b(steps)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.timing.less\"},\"2\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"contentName\":\"meta.group.less\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"match\":\"jump-start|jump-end|jump-none|jump-both|start|end\",\"name\":\"support.constant.step-position.less\"},{\"include\":\"#comma-delimiter\"},{\"include\":\"#integer-type\"},{\"include\":\"#less-variables\"},{\"include\":\"#var-function\"},{\"include\":\"#calc-function\"}]},\"string-content\":{\"patterns\":[{\"include\":\"#less-variable-interpolation\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n\",\"name\":\"constant.character.escape.newline.less\"},{\"match\":\"\\\\\\\\\\\\\\\\(\\\\\\\\h{1,6}|.)\",\"name\":\"constant.character.escape.less\"}]},\"style-function\":{\"begin\":\"\\\\\\\\b(style)(?=\\\\\\\\()\",\"beginCaptures\":{\"0\":{\"name\":\"support.function.style.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#rule-list-body\"}]}]},\"symbols-function\":{\"begin\":\"\\\\\\\\b(symbols)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.counter.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"match\":\"\\\\\\\\b(cyclic|numeric|alphabetic|symbolic|fixed)\\\\\\\\b\",\"name\":\"support.constant.symbol-type.less\"},{\"include\":\"#comma-delimiter\"},{\"include\":\"#literal-string\"},{\"include\":\"#image-type\"}]}]},\"time-type\":{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.less\"}},\"match\":\"(?i:[-+]?(?:(?:\\\\\\\\d*\\\\\\\\.\\\\\\\\d+(?:[eE](?:[-+]?\\\\\\\\d+))*)|(?:[-+]?\\\\\\\\d+))(s|ms))\\\\\\\\b\",\"name\":\"constant.numeric.less\"},\"transform-functions\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(matrix3d|scale3d|matrix|scale)(?=\\\\\\\\()\",\"beginCaptures\":{\"0\":{\"name\":\"support.function.transform.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#comma-delimiter\"},{\"include\":\"#number-type\"},{\"include\":\"#less-variables\"},{\"include\":\"#var-function\"}]}]},{\"begin\":\"\\\\\\\\b(translate(3d)?)(?=\\\\\\\\()\",\"beginCaptures\":{\"0\":{\"name\":\"support.function.transform.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#comma-delimiter\"},{\"include\":\"#percentage-type\"},{\"include\":\"#length-type\"},{\"include\":\"#number-type\"},{\"include\":\"#less-variables\"},{\"include\":\"#var-function\"}]}]},{\"begin\":\"\\\\\\\\b(translate[XY])(?=\\\\\\\\()\",\"beginCaptures\":{\"0\":{\"name\":\"support.function.transform.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#percentage-type\"},{\"include\":\"#length-type\"},{\"include\":\"#number-type\"},{\"include\":\"#less-variables\"},{\"include\":\"#var-function\"}]}]},{\"begin\":\"\\\\\\\\b(rotate[XYZ]?|skew[XY])(?=\\\\\\\\()\",\"beginCaptures\":{\"0\":{\"name\":\"support.function.transform.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#angle-type\"},{\"include\":\"#less-variables\"},{\"include\":\"#calc-function\"},{\"include\":\"#var-function\"}]}]},{\"begin\":\"\\\\\\\\b(skew)(?=\\\\\\\\()\",\"beginCaptures\":{\"0\":{\"name\":\"support.function.transform.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#comma-delimiter\"},{\"include\":\"#angle-type\"},{\"include\":\"#less-variables\"},{\"include\":\"#calc-function\"},{\"include\":\"#var-function\"}]}]},{\"begin\":\"\\\\\\\\b(translateZ|perspective)(?=\\\\\\\\()\",\"beginCaptures\":{\"0\":{\"name\":\"support.function.transform.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#length-type\"},{\"include\":\"#less-variables\"},{\"include\":\"#calc-function\"},{\"include\":\"#var-function\"}]}]},{\"begin\":\"\\\\\\\\b(rotate3d)(?=\\\\\\\\()\",\"beginCaptures\":{\"0\":{\"name\":\"support.function.transform.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#comma-delimiter\"},{\"include\":\"#angle-type\"},{\"include\":\"#number-type\"},{\"include\":\"#less-variables\"},{\"include\":\"#calc-function\"},{\"include\":\"#var-function\"}]}]},{\"begin\":\"\\\\\\\\b(scale[XYZ])(?=\\\\\\\\()\",\"beginCaptures\":{\"0\":{\"name\":\"support.function.transform.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#comma-delimiter\"},{\"include\":\"#number-type\"},{\"include\":\"#less-variables\"},{\"include\":\"#calc-function\"},{\"include\":\"#var-function\"}]}]}]},\"unicode-range\":{\"captures\":{\"1\":{\"name\":\"support.constant.unicode-range.prefix.less\"},\"2\":{\"name\":\"constant.codepoint-range.less\"},\"3\":{\"name\":\"punctuation.section.range.less\"}},\"match\":\"(?i)(u\\\\\\\\+)([0-9a-f?]{1,6}(?:(-)[0-9a-f]{1,6})?)\",\"name\":\"support.unicode-range.less\"},\"unquoted-string\":{\"match\":\"[^\\\\\\\\s'\\\\\"]\",\"name\":\"string.unquoted.less\"},\"url-function\":{\"begin\":\"\\\\\\\\b(url)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.url.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#less-variables\"},{\"include\":\"#literal-string\"},{\"include\":\"#unquoted-string\"},{\"include\":\"#var-function\"}]}]},\"value-separator\":{\"captures\":{\"1\":{\"name\":\"punctuation.separator.less\"}},\"match\":\"\\\\\\\\s*(/)\\\\\\\\s*\"},\"var-function\":{\"begin\":\"\\\\\\\\b(var)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.var.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#comma-delimiter\"},{\"include\":\"#custom-property-name\"},{\"include\":\"#less-variables\"},{\"include\":\"#property-values\"}]}]},\"view-function\":{\"begin\":\"\\\\\\\\b(view)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.view.less\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.less\"}},\"name\":\"meta.function-call.less\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.less\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"match\":\"block|inline|x|y|auto\",\"name\":\"support.constant.property-value.less\"},{\"include\":\"#percentage-type\"},{\"include\":\"#length-type\"},{\"include\":\"#less-variables\"},{\"include\":\"#var-function\"},{\"include\":\"#calc-function\"},{\"include\":\"#arbitrary-repetition\"}]}]}},\"scopeName\":\"source.css.less\"}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BfHTSMKl.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBorder\":\"#80CBC4\",\"activityBar.background\":\"#212121\",\"activityBar.border\":\"#21212160\",\"activityBar.dropBackground\":\"#f0717880\",\"activityBar.foreground\":\"#EEFFFF\",\"activityBarBadge.background\":\"#80CBC4\",\"activityBarBadge.foreground\":\"#000000\",\"badge.background\":\"#00000030\",\"badge.foreground\":\"#545454\",\"breadcrumb.activeSelectionForeground\":\"#80CBC4\",\"breadcrumb.background\":\"#212121\",\"breadcrumb.focusForeground\":\"#EEFFFF\",\"breadcrumb.foreground\":\"#676767\",\"breadcrumbPicker.background\":\"#212121\",\"button.background\":\"#61616150\",\"button.foreground\":\"#ffffff\",\"debugConsole.errorForeground\":\"#f07178\",\"debugConsole.infoForeground\":\"#89DDFF\",\"debugConsole.warningForeground\":\"#FFCB6B\",\"debugToolBar.background\":\"#212121\",\"diffEditor.insertedTextBackground\":\"#89DDFF20\",\"diffEditor.removedTextBackground\":\"#ff9cac20\",\"dropdown.background\":\"#212121\",\"dropdown.border\":\"#FFFFFF10\",\"editor.background\":\"#212121\",\"editor.findMatchBackground\":\"#000000\",\"editor.findMatchBorder\":\"#80CBC4\",\"editor.findMatchHighlight\":\"#EEFFFF\",\"editor.findMatchHighlightBackground\":\"#00000050\",\"editor.findMatchHighlightBorder\":\"#ffffff30\",\"editor.findRangeHighlightBackground\":\"#FFCB6B30\",\"editor.foreground\":\"#EEFFFF\",\"editor.lineHighlightBackground\":\"#00000050\",\"editor.lineHighlightBorder\":\"#00000000\",\"editor.rangeHighlightBackground\":\"#FFFFFF0d\",\"editor.selectionBackground\":\"#61616150\",\"editor.selectionHighlightBackground\":\"#FFCC0020\",\"editor.wordHighlightBackground\":\"#ff9cac30\",\"editor.wordHighlightStrongBackground\":\"#C3E88D30\",\"editorBracketMatch.background\":\"#212121\",\"editorBracketMatch.border\":\"#FFCC0050\",\"editorCursor.foreground\":\"#FFCC00\",\"editorError.foreground\":\"#f0717870\",\"editorGroup.border\":\"#00000030\",\"editorGroup.dropBackground\":\"#f0717880\",\"editorGroup.focusedEmptyBorder\":\"#f07178\",\"editorGroupHeader.tabsBackground\":\"#212121\",\"editorGutter.addedBackground\":\"#C3E88D60\",\"editorGutter.deletedBackground\":\"#f0717860\",\"editorGutter.modifiedBackground\":\"#82AAFF60\",\"editorHoverWidget.background\":\"#212121\",\"editorHoverWidget.border\":\"#FFFFFF10\",\"editorIndentGuide.activeBackground\":\"#424242\",\"editorIndentGuide.background\":\"#42424270\",\"editorInfo.foreground\":\"#82AAFF70\",\"editorLineNumber.activeForeground\":\"#676767\",\"editorLineNumber.foreground\":\"#424242\",\"editorLink.activeForeground\":\"#EEFFFF\",\"editorMarkerNavigation.background\":\"#EEFFFF05\",\"editorOverviewRuler.border\":\"#212121\",\"editorOverviewRuler.errorForeground\":\"#f0717840\",\"editorOverviewRuler.findMatchForeground\":\"#80CBC4\",\"editorOverviewRuler.infoForeground\":\"#82AAFF40\",\"editorOverviewRuler.warningForeground\":\"#FFCB6B40\",\"editorRuler.foreground\":\"#424242\",\"editorSuggestWidget.background\":\"#212121\",\"editorSuggestWidget.border\":\"#FFFFFF10\",\"editorSuggestWidget.foreground\":\"#EEFFFF\",\"editorSuggestWidget.highlightForeground\":\"#80CBC4\",\"editorSuggestWidget.selectedBackground\":\"#00000050\",\"editorWarning.foreground\":\"#FFCB6B70\",\"editorWhitespace.foreground\":\"#EEFFFF40\",\"editorWidget.background\":\"#212121\",\"editorWidget.border\":\"#80CBC4\",\"editorWidget.resizeBorder\":\"#80CBC4\",\"extensionBadge.remoteForeground\":\"#EEFFFF\",\"extensionButton.prominentBackground\":\"#C3E88D90\",\"extensionButton.prominentForeground\":\"#EEFFFF\",\"extensionButton.prominentHoverBackground\":\"#C3E88D\",\"focusBorder\":\"#FFFFFF00\",\"foreground\":\"#EEFFFF\",\"gitDecoration.conflictingResourceForeground\":\"#FFCB6B90\",\"gitDecoration.deletedResourceForeground\":\"#f0717890\",\"gitDecoration.ignoredResourceForeground\":\"#67676790\",\"gitDecoration.modifiedResourceForeground\":\"#82AAFF90\",\"gitDecoration.untrackedResourceForeground\":\"#C3E88D90\",\"input.background\":\"#2B2B2B\",\"input.border\":\"#FFFFFF10\",\"input.foreground\":\"#EEFFFF\",\"input.placeholderForeground\":\"#EEFFFF60\",\"inputOption.activeBackground\":\"#EEFFFF30\",\"inputOption.activeBorder\":\"#EEFFFF30\",\"inputValidation.errorBorder\":\"#f07178\",\"inputValidation.infoBorder\":\"#82AAFF\",\"inputValidation.warningBorder\":\"#FFCB6B\",\"list.activeSelectionBackground\":\"#212121\",\"list.activeSelectionForeground\":\"#80CBC4\",\"list.dropBackground\":\"#f0717880\",\"list.focusBackground\":\"#EEFFFF20\",\"list.focusForeground\":\"#EEFFFF\",\"list.highlightForeground\":\"#80CBC4\",\"list.hoverBackground\":\"#212121\",\"list.hoverForeground\":\"#FFFFFF\",\"list.inactiveSelectionBackground\":\"#00000030\",\"list.inactiveSelectionForeground\":\"#80CBC4\",\"listFilterWidget.background\":\"#00000030\",\"listFilterWidget.noMatchesOutline\":\"#00000030\",\"listFilterWidget.outline\":\"#00000030\",\"menu.background\":\"#212121\",\"menu.foreground\":\"#EEFFFF\",\"menu.selectionBackground\":\"#00000050\",\"menu.selectionBorder\":\"#00000030\",\"menu.selectionForeground\":\"#80CBC4\",\"menu.separatorBackground\":\"#EEFFFF\",\"menubar.selectionBackground\":\"#00000030\",\"menubar.selectionBorder\":\"#00000030\",\"menubar.selectionForeground\":\"#80CBC4\",\"notebook.focusedCellBorder\":\"#80CBC4\",\"notebook.inactiveFocusedCellBorder\":\"#80CBC450\",\"notificationLink.foreground\":\"#80CBC4\",\"notifications.background\":\"#212121\",\"notifications.foreground\":\"#EEFFFF\",\"panel.background\":\"#212121\",\"panel.border\":\"#21212160\",\"panel.dropBackground\":\"#EEFFFF\",\"panelTitle.activeBorder\":\"#80CBC4\",\"panelTitle.activeForeground\":\"#FFFFFF\",\"panelTitle.inactiveForeground\":\"#EEFFFF\",\"peekView.border\":\"#00000030\",\"peekViewEditor.background\":\"#2B2B2B\",\"peekViewEditor.matchHighlightBackground\":\"#61616150\",\"peekViewEditorGutter.background\":\"#2B2B2B\",\"peekViewResult.background\":\"#2B2B2B\",\"peekViewResult.matchHighlightBackground\":\"#61616150\",\"peekViewResult.selectionBackground\":\"#67676770\",\"peekViewTitle.background\":\"#2B2B2B\",\"peekViewTitleDescription.foreground\":\"#EEFFFF60\",\"pickerGroup.border\":\"#FFFFFF1a\",\"pickerGroup.foreground\":\"#80CBC4\",\"progressBar.background\":\"#80CBC4\",\"quickInput.background\":\"#212121\",\"quickInput.foreground\":\"#676767\",\"quickInput.list.focusBackground\":\"#EEFFFF20\",\"sash.hoverBorder\":\"#80CBC450\",\"scrollbar.shadow\":\"#00000030\",\"scrollbarSlider.activeBackground\":\"#80CBC4\",\"scrollbarSlider.background\":\"#EEFFFF20\",\"scrollbarSlider.hoverBackground\":\"#EEFFFF10\",\"selection.background\":\"#00000080\",\"settings.checkboxBackground\":\"#212121\",\"settings.checkboxForeground\":\"#EEFFFF\",\"settings.dropdownBackground\":\"#212121\",\"settings.dropdownForeground\":\"#EEFFFF\",\"settings.headerForeground\":\"#80CBC4\",\"settings.modifiedItemIndicator\":\"#80CBC4\",\"settings.numberInputBackground\":\"#212121\",\"settings.numberInputForeground\":\"#EEFFFF\",\"settings.textInputBackground\":\"#212121\",\"settings.textInputForeground\":\"#EEFFFF\",\"sideBar.background\":\"#212121\",\"sideBar.border\":\"#21212160\",\"sideBar.foreground\":\"#676767\",\"sideBarSectionHeader.background\":\"#212121\",\"sideBarSectionHeader.border\":\"#21212160\",\"sideBarTitle.foreground\":\"#EEFFFF\",\"statusBar.background\":\"#212121\",\"statusBar.border\":\"#21212160\",\"statusBar.debuggingBackground\":\"#C792EA\",\"statusBar.debuggingForeground\":\"#ffffff\",\"statusBar.foreground\":\"#616161\",\"statusBar.noFolderBackground\":\"#212121\",\"statusBarItem.activeBackground\":\"#f0717880\",\"statusBarItem.hoverBackground\":\"#54545420\",\"statusBarItem.remoteBackground\":\"#80CBC4\",\"statusBarItem.remoteForeground\":\"#000000\",\"tab.activeBackground\":\"#212121\",\"tab.activeBorder\":\"#80CBC4\",\"tab.activeForeground\":\"#FFFFFF\",\"tab.activeModifiedBorder\":\"#676767\",\"tab.border\":\"#212121\",\"tab.inactiveBackground\":\"#212121\",\"tab.inactiveForeground\":\"#676767\",\"tab.inactiveModifiedBorder\":\"#904348\",\"tab.unfocusedActiveBorder\":\"#545454\",\"tab.unfocusedActiveForeground\":\"#EEFFFF\",\"tab.unfocusedActiveModifiedBorder\":\"#c05a60\",\"tab.unfocusedInactiveModifiedBorder\":\"#904348\",\"terminal.ansiBlack\":\"#000000\",\"terminal.ansiBlue\":\"#82AAFF\",\"terminal.ansiBrightBlack\":\"#545454\",\"terminal.ansiBrightBlue\":\"#82AAFF\",\"terminal.ansiBrightCyan\":\"#89DDFF\",\"terminal.ansiBrightGreen\":\"#C3E88D\",\"terminal.ansiBrightMagenta\":\"#C792EA\",\"terminal.ansiBrightRed\":\"#f07178\",\"terminal.ansiBrightWhite\":\"#ffffff\",\"terminal.ansiBrightYellow\":\"#FFCB6B\",\"terminal.ansiCyan\":\"#89DDFF\",\"terminal.ansiGreen\":\"#C3E88D\",\"terminal.ansiMagenta\":\"#C792EA\",\"terminal.ansiRed\":\"#f07178\",\"terminal.ansiWhite\":\"#ffffff\",\"terminal.ansiYellow\":\"#FFCB6B\",\"terminalCursor.background\":\"#000000\",\"terminalCursor.foreground\":\"#FFCB6B\",\"textLink.activeForeground\":\"#EEFFFF\",\"textLink.foreground\":\"#80CBC4\",\"titleBar.activeBackground\":\"#212121\",\"titleBar.activeForeground\":\"#EEFFFF\",\"titleBar.border\":\"#21212160\",\"titleBar.inactiveBackground\":\"#212121\",\"titleBar.inactiveForeground\":\"#676767\",\"tree.indentGuidesStroke\":\"#424242\",\"widget.shadow\":\"#00000030\"},\"displayName\":\"Material Theme Darker\",\"name\":\"material-theme-darker\",\"semanticHighlighting\":true,\"tokenColors\":[{\"settings\":{\"background\":\"#212121\",\"foreground\":\"#EEFFFF\"}},{\"scope\":\"string\",\"settings\":{\"foreground\":\"#C3E88D\"}},{\"scope\":\"punctuation, constant.other.symbol\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"constant.character.escape, text.html constant.character.entity.named\",\"settings\":{\"foreground\":\"#EEFFFF\"}},{\"scope\":\"constant.language.boolean\",\"settings\":{\"foreground\":\"#ff9cac\"}},{\"scope\":\"constant.numeric\",\"settings\":{\"foreground\":\"#F78C6C\"}},{\"scope\":\"variable, variable.parameter, support.variable, variable.language, support.constant, meta.definition.variable entity.name.function, meta.function-call.arguments\",\"settings\":{\"foreground\":\"#EEFFFF\"}},{\"scope\":\"keyword.other\",\"settings\":{\"foreground\":\"#F78C6C\"}},{\"scope\":\"keyword, modifier, variable.language.this, support.type.object, constant.language\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"entity.name.function, support.function\",\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":\"storage.type, storage.modifier, storage.control\",\"settings\":{\"foreground\":\"#C792EA\"}},{\"scope\":\"support.module, support.node\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#f07178\"}},{\"scope\":\"support.type, constant.other.key\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"entity.name.type, entity.other.inherited-class, entity.other\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"comment\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#545454\"}},{\"scope\":\"comment punctuation.definition.comment, string.quoted.docstring\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#545454\"}},{\"scope\":\"punctuation\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"entity.name, entity.name.type.class, support.type, support.class, meta.use\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"variable.object.property, meta.field.declaration entity.name.function\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"meta.definition.method entity.name.function\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"meta.function entity.name.function\",\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":\"template.expression.begin, template.expression.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"meta.embedded, source.groovy.embedded, meta.template.expression\",\"settings\":{\"foreground\":\"#EEFFFF\"}},{\"scope\":\"entity.name.tag.yaml\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"meta.object-literal.key, meta.object-literal.key string, support.type.property-name.json\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"constant.language.json\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"entity.other.attribute-name.class\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"entity.other.attribute-name.id\",\"settings\":{\"foreground\":\"#F78C6C\"}},{\"scope\":\"source.css entity.name.tag\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"support.type.property-name.css\",\"settings\":{\"foreground\":\"#B2CCD6\"}},{\"scope\":\"meta.tag, punctuation.definition.tag\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"entity.name.tag\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"entity.other.attribute-name\",\"settings\":{\"foreground\":\"#C792EA\"}},{\"scope\":\"punctuation.definition.entity.html\",\"settings\":{\"foreground\":\"#EEFFFF\"}},{\"scope\":\"markup.heading\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"text.html.markdown meta.link.inline, meta.link.reference\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"text.html.markdown beginning.punctuation.definition.list\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"markup.italic\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#f07178\"}},{\"scope\":\"markup.bold\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#f07178\"}},{\"scope\":\"markup.bold markup.italic, markup.italic markup.bold\",\"settings\":{\"fontStyle\":\"italic bold\",\"foreground\":\"#f07178\"}},{\"scope\":\"markup.fenced_code.block.markdown punctuation.definition.markdown\",\"settings\":{\"foreground\":\"#C3E88D\"}},{\"scope\":\"markup.inline.raw.string.markdown\",\"settings\":{\"foreground\":\"#C3E88D\"}},{\"scope\":\"keyword.other.definition.ini\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"entity.name.section.group-title.ini\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"source.cs meta.class.identifier storage.type\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"source.cs meta.method.identifier entity.name.function\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"source.cs meta.method-call meta.method, source.cs entity.name.function\",\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":\"source.cs storage.type\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"source.cs meta.method.return-type\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"source.cs meta.preprocessor\",\"settings\":{\"foreground\":\"#545454\"}},{\"scope\":\"source.cs entity.name.type.namespace\",\"settings\":{\"foreground\":\"#EEFFFF\"}},{\"scope\":\"meta.jsx.children, SXNested\",\"settings\":{\"foreground\":\"#EEFFFF\"}},{\"scope\":\"support.class.component\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"source.cpp meta.block variable.other\",\"settings\":{\"foreground\":\"#EEFFFF\"}},{\"scope\":\"source.python meta.member.access.python\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"source.python meta.function-call.python, meta.function-call.arguments\",\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":\"meta.block\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"entity.name.function.call\",\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":\"source.php support.other.namespace, source.php meta.use support.class\",\"settings\":{\"foreground\":\"#EEFFFF\"}},{\"scope\":\"constant.keyword\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#89DDFF\"}},{\"scope\":\"entity.name.function\",\"settings\":{\"foreground\":\"#82AAFF\"}},{\"settings\":{\"background\":\"#212121\",\"foreground\":\"#EEFFFF\"}},{\"scope\":[\"constant.other.placeholder\"],\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":[\"markup.deleted\"],\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":[\"markup.inserted\"],\"settings\":{\"foreground\":\"#C3E88D\"}},{\"scope\":[\"markup.underline\"],\"settings\":{\"fontStyle\":\"underline\"}},{\"scope\":[\"keyword.control\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#89DDFF\"}},{\"scope\":[\"variable.parameter\"],\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":[\"variable.parameter.function.language.special.self.python\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#f07178\"}},{\"scope\":[\"constant.character.format.placeholder.other.python\"],\"settings\":{\"foreground\":\"#F78C6C\"}},{\"scope\":[\"markup.quote\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#89DDFF\"}},{\"scope\":[\"markup.fenced_code.block\"],\"settings\":{\"foreground\":\"#EEFFFF90\"}},{\"scope\":[\"punctuation.definition.quote\"],\"settings\":{\"foreground\":\"#ff9cac\"}},{\"scope\":[\"meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#C792EA\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#F78C6C\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#916b53\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#ff9cac\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#C792EA\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#C3E88D\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BfLuTCmN.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={wordPattern:/(#?-?\\d*\\.\\d\\w*%?)|((::|[@#.!:])?[\\w-?]+%?)|::|[@#.!:]/g,comments:{blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\",notIn:[\"string\",\"comment\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\"]},{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],folding:{markers:{start:new RegExp(\"^\\\\s*\\\\/\\\\*\\\\s*#region\\\\b\\\\s*(.*?)\\\\s*\\\\*\\\\/\"),end:new RegExp(\"^\\\\s*\\\\/\\\\*\\\\s*#endregion\\\\b.*\\\\*\\\\/\")}}},t={defaultToken:\"\",tokenPostfix:\".css\",ws:`[ \t\n\\r\\f]*`,identifier:\"-?-?([a-zA-Z]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))([\\\\w\\\\-]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))*\",brackets:[{open:\"{\",close:\"}\",token:\"delimiter.bracket\"},{open:\"[\",close:\"]\",token:\"delimiter.bracket\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"}],tokenizer:{root:[{include:\"@selector\"}],selector:[{include:\"@comments\"},{include:\"@import\"},{include:\"@strings\"},[\"[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)\",{token:\"keyword\",next:\"@keyframedeclaration\"}],[\"[@](page|content|font-face|-moz-document)\",{token:\"keyword\"}],[\"[@](charset|namespace)\",{token:\"keyword\",next:\"@declarationbody\"}],[\"(url-prefix)(\\\\()\",[\"attribute.value\",{token:\"delimiter.parenthesis\",next:\"@urldeclaration\"}]],[\"(url)(\\\\()\",[\"attribute.value\",{token:\"delimiter.parenthesis\",next:\"@urldeclaration\"}]],{include:\"@selectorname\"},[\"[\\\\*]\",\"tag\"],[\"[>\\\\+,]\",\"delimiter\"],[\"\\\\[\",{token:\"delimiter.bracket\",next:\"@selectorattribute\"}],[\"{\",{token:\"delimiter.bracket\",next:\"@selectorbody\"}]],selectorbody:[{include:\"@comments\"},[\"[*_]?@identifier@ws:(?=(\\\\s|\\\\d|[^{;}]*[;}]))\",\"attribute.name\",\"@rulevalue\"],[\"}\",{token:\"delimiter.bracket\",next:\"@pop\"}]],selectorname:[[\"(\\\\.|#(?=[^{])|%|(@identifier)|:)+\",\"tag\"]],selectorattribute:[{include:\"@term\"},[\"]\",{token:\"delimiter.bracket\",next:\"@pop\"}]],term:[{include:\"@comments\"},[\"(url-prefix)(\\\\()\",[\"attribute.value\",{token:\"delimiter.parenthesis\",next:\"@urldeclaration\"}]],[\"(url)(\\\\()\",[\"attribute.value\",{token:\"delimiter.parenthesis\",next:\"@urldeclaration\"}]],{include:\"@functioninvocation\"},{include:\"@numbers\"},{include:\"@name\"},{include:\"@strings\"},[\"([<>=\\\\+\\\\-\\\\*\\\\/\\\\^\\\\|\\\\~,])\",\"delimiter\"],[\",\",\"delimiter\"]],rulevalue:[{include:\"@comments\"},{include:\"@strings\"},{include:\"@term\"},[\"!important\",\"keyword\"],[\";\",\"delimiter\",\"@pop\"],[\"(?=})\",{token:\"\",next:\"@pop\"}]],warndebug:[[\"[@](warn|debug)\",{token:\"keyword\",next:\"@declarationbody\"}]],import:[[\"[@](import)\",{token:\"keyword\",next:\"@declarationbody\"}]],urldeclaration:[{include:\"@strings\"},[`[^)\\r\n]+`,\"string\"],[\"\\\\)\",{token:\"delimiter.parenthesis\",next:\"@pop\"}]],parenthizedterm:[{include:\"@term\"},[\"\\\\)\",{token:\"delimiter.parenthesis\",next:\"@pop\"}]],declarationbody:[{include:\"@term\"},[\";\",\"delimiter\",\"@pop\"],[\"(?=})\",{token:\"\",next:\"@pop\"}]],comments:[[\"\\\\/\\\\*\",\"comment\",\"@comment\"],[\"\\\\/\\\\/+.*\",\"comment\"]],comment:[[\"\\\\*\\\\/\",\"comment\",\"@pop\"],[/[^*/]+/,\"comment\"],[/./,\"comment\"]],name:[[\"@identifier\",\"attribute.value\"]],numbers:[[\"-?(\\\\d*\\\\.)?\\\\d+([eE][\\\\-+]?\\\\d+)?\",{token:\"attribute.value.number\",next:\"@units\"}],[\"#[0-9a-fA-F_]+(?!\\\\w)\",\"attribute.value.hex\"]],units:[[\"(em|ex|ch|rem|fr|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?\",\"attribute.value.unit\",\"@pop\"]],keyframedeclaration:[[\"@identifier\",\"attribute.value\"],[\"{\",{token:\"delimiter.bracket\",switchTo:\"@keyframebody\"}]],keyframebody:[{include:\"@term\"},[\"{\",{token:\"delimiter.bracket\",next:\"@selectorbody\"}],[\"}\",{token:\"delimiter.bracket\",next:\"@pop\"}]],functioninvocation:[[\"@identifier\\\\(\",{token:\"attribute.value\",next:\"@functionarguments\"}]],functionarguments:[[\"\\\\$@identifier@ws:\",\"attribute.name\"],[\"[,]\",\"delimiter\"],{include:\"@term\"},[\"\\\\)\",{token:\"attribute.value\",next:\"@pop\"}]],strings:[['~?\"',{token:\"string\",next:\"@stringenddoublequote\"}],[\"~?'\",{token:\"string\",next:\"@stringendquote\"}]],stringenddoublequote:[[\"\\\\\\\\.\",\"string\"],['\"',{token:\"string\",next:\"@pop\"}],[/[^\\\\\"]+/,\"string\"],[\".\",\"string\"]],stringendquote:[[\"\\\\\\\\.\",\"string\"],[\"'\",{token:\"string\",next:\"@pop\"}],[/[^\\\\']+/,\"string\"],[\".\",\"string\"]]}};export{e as conf,t as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/BfYIQCg8.js",
    "content": "import{d as U,m as x,u as $,r as c,a as O,c as k,w as p,n as B,o as L,P as z,s as S,h as j,e as I,f as u,_ as K,g as R,i as a,j as t,k as q,l as A,p as H,q as P,t as W,z as F}from\"./CU_MfyYc.js\";import{_ as G}from\"./DK27pemE.js\";const J=H(G),Q={class:\"flex items-center justify-between\"},X={class:\"space-y-4\"},Y={class:\"flex justify-end gap-3\"},oe=U({__name:\"MonteCarloNotesModal\",props:x({sessionId:{},initialTitle:{},initialDescription:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:x([\"saved\"],[\"update:modelValue\"]),setup(y,{emit:b}){const n=y,C=b,s=$(y,\"modelValue\"),i=c(n.initialTitle||\"\"),d=c(n.initialDescription||\"\"),v=c(!1),m=c(),V=O(),g=k(()=>V.value===\"light\"?\"vs-light\":\"vs-dark\"),h={automaticLayout:!0,minimap:{enabled:!1},fontSize:15,lineHeight:21,wordWrap:\"on\"},w=k(()=>i.value!==(n.initialTitle||\"\")||d.value!==(n.initialDescription||\"\"));p(g,o=>{var e,r;(r=(e=m.value)==null?void 0:e.$editor)==null||r.updateOptions({theme:o})}),p(()=>n.initialTitle,o=>{i.value=o||\"\"}),p(()=>n.initialDescription,o=>{d.value=o||\"\"}),p(s,async o=>{o?(await B(),setTimeout(()=>{var e;(e=m.value)!=null&&e.$editor&&(m.value.$editor.updateOptions({theme:g.value}),m.value.$editor.addCommand(2051,()=>{_()}))},100),window.addEventListener(\"keydown\",f)):window.removeEventListener(\"keydown\",f)}),L(()=>{window.removeEventListener(\"keydown\",f)});function f(o){(o.metaKey||o.ctrlKey)&&o.key===\"Enter\"&&(o.preventDefault(),_())}async function _(){if(w.value){v.value=!0;try{await z().updateSessionNotes(n.sessionId,i.value,d.value),S(\"success\",\"Notes saved successfully\"),C(\"saved\",{title:i.value,description:d.value}),s.value=!1}catch(o){j(o)}finally{v.value=!1}}}return(o,e)=>{const r=W,M=q,T=J,E=A,N=F,D=K;return R(),I(D,{modelValue:s.value,\"onUpdate:modelValue\":e[4]||(e[4]=l=>s.value=l),ui:{width:\"sm:max-w-3xl\"}},{default:u(()=>[a(N,null,{header:u(()=>[t(\"div\",Q,[e[5]||(e[5]=t(\"h3\",{class:\"text-lg font-semibold\"},\"Add Title & Notes\",-1)),a(r,{color:\"gray\",variant:\"ghost\",icon:\"i-heroicons-x-mark\",size:\"sm\",onClick:e[0]||(e[0]=l=>s.value=!1)})])]),footer:u(()=>[t(\"div\",Y,[a(r,{color:\"gray\",variant:\"ghost\",label:\"Cancel\",onClick:e[3]||(e[3]=l=>s.value=!1)}),a(r,{color:\"primary\",label:\"Save\",icon:\"i-heroicons-check\",disabled:!w.value,loading:v.value,onClick:_},null,8,[\"disabled\",\"loading\"])])]),default:u(()=>[t(\"div\",X,[t(\"div\",null,[e[6]||(e[6]=t(\"label\",{class:\"block text-sm font-medium mb-2\"},\"Title\",-1)),a(M,{modelValue:i.value,\"onUpdate:modelValue\":e[1]||(e[1]=l=>i.value=l),placeholder:\"Enter a title for this Monte Carlo session\",maxlength:\"255\",size:\"lg\"},null,8,[\"modelValue\"])]),t(\"div\",null,[e[8]||(e[8]=t(\"label\",{class:\"block text-sm font-medium mb-2\"},\"Description\",-1)),a(E,null,{default:u(()=>[a(T,{ref_key:\"descriptionEditorRef\",ref:m,modelValue:d.value,\"onUpdate:modelValue\":e[2]||(e[2]=l=>d.value=l),lang:\"markdown\",options:h,class:\"border border-gray-200 dark:border-gray-800 rounded\",style:{height:\"400px\"}},{default:u(()=>e[7]||(e[7]=[P(\" Loading editor... \")])),_:1},8,[\"modelValue\"])]),_:1})])])]),_:1})]),_:1},8,[\"modelValue\"])}}});export{oe as _};\n"
  },
  {
    "path": "jesse/static/_nuxt/BfivnA6A.js",
    "content": "const n=Object.freeze(JSON.parse(`{\"displayName\":\"Jsonnet\",\"name\":\"jsonnet\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#keywords\"}],\"repository\":{\"builtin-functions\":{\"patterns\":[{\"match\":\"\\\\\\\\bstd[.](acos|asin|atan|ceil|char|codepoint|cos|exp|exponent)\\\\\\\\b\",\"name\":\"support.function.jsonnet\"},{\"match\":\"\\\\\\\\bstd[.](filter|floor|force|length|log|makeArray|mantissa)\\\\\\\\b\",\"name\":\"support.function.jsonnet\"},{\"match\":\"\\\\\\\\bstd[.](objectFields|objectHas|pow|sin|sqrt|tan|type|thisFile)\\\\\\\\b\",\"name\":\"support.function.jsonnet\"},{\"match\":\"\\\\\\\\bstd[.](acos|asin|atan|ceil|char|codepoint|cos|exp|exponent)\\\\\\\\b\",\"name\":\"support.function.jsonnet\"},{\"match\":\"\\\\\\\\bstd[.](abs|assertEqual|escapeString(Bash|Dollars|Json|Python))\\\\\\\\b\",\"name\":\"support.function.jsonnet\"},{\"match\":\"\\\\\\\\bstd[.](filterMap|flattenArrays|foldl|foldr|format|join)\\\\\\\\b\",\"name\":\"support.function.jsonnet\"},{\"match\":\"\\\\\\\\bstd[.](lines|manifest(Ini|Python(Vars)?)|map|max|min|mod)\\\\\\\\b\",\"name\":\"support.function.jsonnet\"},{\"match\":\"\\\\\\\\bstd[.](set|set(Diff|Inter|Member|Union)|sort)\\\\\\\\b\",\"name\":\"support.function.jsonnet\"},{\"match\":\"\\\\\\\\bstd[.](range|split|stringChars|substr|toString|uniq)\\\\\\\\b\",\"name\":\"support.function.jsonnet\"}]},\"comment\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.jsonnet\"},{\"match\":\"//.*$\",\"name\":\"comment.line.jsonnet\"},{\"match\":\"#.*$\",\"name\":\"comment.block.jsonnet\"}]},\"double-quoted-strings\":{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.jsonnet\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\([\\\\\"\\\\\\\\\\\\\\\\/bfnrt]|(u[0-9a-fA-F]{4}))\",\"name\":\"constant.character.escape.jsonnet\"},{\"match\":\"\\\\\\\\\\\\\\\\[^\\\\\"\\\\\\\\\\\\\\\\/bfnrtu]\",\"name\":\"invalid.illegal.jsonnet\"}]},\"expression\":{\"patterns\":[{\"include\":\"#literals\"},{\"include\":\"#comment\"},{\"include\":\"#single-quoted-strings\"},{\"include\":\"#double-quoted-strings\"},{\"include\":\"#triple-quoted-strings\"},{\"include\":\"#builtin-functions\"},{\"include\":\"#functions\"}]},\"functions\":{\"patterns\":[{\"begin\":\"\\\\\\\\b([a-zA-Z_][a-z0-9A-Z_]*)\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.jsonnet\"}},\"end\":\"\\\\\\\\)\",\"name\":\"meta.function\",\"patterns\":[{\"include\":\"#expression\"}]}]},\"keywords\":{\"patterns\":[{\"match\":\"[!:~\\\\\\\\+\\\\\\\\-&\\\\\\\\|\\\\\\\\^=<>\\\\\\\\*\\\\\\\\/%]\",\"name\":\"keyword.operator.jsonnet\"},{\"match\":\"\\\\\\\\$\",\"name\":\"keyword.other.jsonnet\"},{\"match\":\"\\\\\\\\b(self|super|import|importstr|local|tailstrict)\\\\\\\\b\",\"name\":\"keyword.other.jsonnet\"},{\"match\":\"\\\\\\\\b(if|then|else|for|in|error|assert)\\\\\\\\b\",\"name\":\"keyword.control.jsonnet\"},{\"match\":\"\\\\\\\\b(function)\\\\\\\\b\",\"name\":\"storage.type.jsonnet\"},{\"match\":\"[a-zA-Z_][a-z0-9A-Z_]*\\\\\\\\s*(:::|\\\\\\\\+:::)\",\"name\":\"variable.parameter.jsonnet\"},{\"match\":\"[a-zA-Z_][a-z0-9A-Z_]*\\\\\\\\s*(::|\\\\\\\\+::)\",\"name\":\"entity.name.type\"},{\"match\":\"[a-zA-Z_][a-z0-9A-Z_]*\\\\\\\\s*(:|\\\\\\\\+:)\",\"name\":\"variable.parameter.jsonnet\"}]},\"literals\":{\"patterns\":[{\"match\":\"\\\\\\\\b(true|false|null)\\\\\\\\b\",\"name\":\"constant.language.jsonnet\"},{\"match\":\"\\\\\\\\b(\\\\\\\\d+([Ee][+-]?\\\\\\\\d+)?)\\\\\\\\b\",\"name\":\"constant.numeric.jsonnet\"},{\"match\":\"\\\\\\\\b\\\\\\\\d+[.]\\\\\\\\d*([Ee][+-]?\\\\\\\\d+)?\\\\\\\\b\",\"name\":\"constant.numeric.jsonnet\"},{\"match\":\"\\\\\\\\b[.]\\\\\\\\d+([Ee][+-]?\\\\\\\\d+)?\\\\\\\\b\",\"name\":\"constant.numeric.jsonnet\"}]},\"single-quoted-strings\":{\"begin\":\"'\",\"end\":\"'\",\"name\":\"string.quoted.double.jsonnet\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(['\\\\\\\\\\\\\\\\/bfnrt]|(u[0-9a-fA-F]{4}))\",\"name\":\"constant.character.escape.jsonnet\"},{\"match\":\"\\\\\\\\\\\\\\\\[^'\\\\\\\\\\\\\\\\/bfnrtu]\",\"name\":\"invalid.illegal.jsonnet\"}]},\"triple-quoted-strings\":{\"patterns\":[{\"begin\":\"\\\\\\\\|\\\\\\\\|\\\\\\\\|\",\"end\":\"\\\\\\\\|\\\\\\\\|\\\\\\\\|\",\"name\":\"string.quoted.triple.jsonnet\"}]}},\"scopeName\":\"source.jsonnet\"}`)),t=[n];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BfjtVDDH.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBorder\":\"#ef5b48\",\"activityBar.background\":\"#ffffff\",\"activityBar.border\":\"#20252c\",\"activityBar.foreground\":\"#0e1116\",\"activityBar.inactiveForeground\":\"#0e1116\",\"activityBarBadge.background\":\"#0349b4\",\"activityBarBadge.foreground\":\"#ffffff\",\"badge.background\":\"#0349b4\",\"badge.foreground\":\"#ffffff\",\"breadcrumb.activeSelectionForeground\":\"#0e1116\",\"breadcrumb.focusForeground\":\"#0e1116\",\"breadcrumb.foreground\":\"#0e1116\",\"breadcrumbPicker.background\":\"#ffffff\",\"button.background\":\"#055d20\",\"button.foreground\":\"#ffffff\",\"button.hoverBackground\":\"#024c1a\",\"button.secondaryBackground\":\"#acb6c0\",\"button.secondaryForeground\":\"#0e1116\",\"button.secondaryHoverBackground\":\"#ced5dc\",\"checkbox.background\":\"#e7ecf0\",\"checkbox.border\":\"#20252c\",\"debugConsole.errorForeground\":\"#a0111f\",\"debugConsole.infoForeground\":\"#4b535d\",\"debugConsole.sourceForeground\":\"#744500\",\"debugConsole.warningForeground\":\"#603700\",\"debugConsoleInputIcon.foreground\":\"#512598\",\"debugIcon.breakpointForeground\":\"#a0111f\",\"debugTokenExpression.boolean\":\"#024c1a\",\"debugTokenExpression.error\":\"#86061d\",\"debugTokenExpression.name\":\"#023b95\",\"debugTokenExpression.number\":\"#024c1a\",\"debugTokenExpression.string\":\"#032563\",\"debugTokenExpression.value\":\"#032563\",\"debugToolBar.background\":\"#ffffff\",\"descriptionForeground\":\"#0e1116\",\"diffEditor.insertedLineBackground\":\"#82e5964d\",\"diffEditor.insertedTextBackground\":\"#43c66380\",\"diffEditor.removedLineBackground\":\"#ffc1bc4d\",\"diffEditor.removedTextBackground\":\"#ee5a5d66\",\"dropdown.background\":\"#ffffff\",\"dropdown.border\":\"#20252c\",\"dropdown.foreground\":\"#0e1116\",\"dropdown.listBackground\":\"#ffffff\",\"editor.background\":\"#ffffff\",\"editor.findMatchBackground\":\"#744500\",\"editor.findMatchHighlightBackground\":\"#f0ce5380\",\"editor.focusedStackFrameHighlightBackground\":\"#26a148\",\"editor.foldBackground\":\"#66707b1a\",\"editor.foreground\":\"#0e1116\",\"editor.inactiveSelectionBackground\":\"#66707b\",\"editor.lineHighlightBackground\":\"#e7ecf0\",\"editor.linkedEditingBackground\":\"#0349b412\",\"editor.selectionBackground\":\"#0e1116\",\"editor.selectionForeground\":\"#ffffff\",\"editor.selectionHighlightBackground\":\"#26a14840\",\"editor.stackFrameHighlightBackground\":\"#b58407\",\"editor.wordHighlightBackground\":\"#e7ecf080\",\"editor.wordHighlightBorder\":\"#acb6c099\",\"editor.wordHighlightStrongBackground\":\"#acb6c04d\",\"editor.wordHighlightStrongBorder\":\"#acb6c099\",\"editorBracketHighlight.foreground1\":\"#0349b4\",\"editorBracketHighlight.foreground2\":\"#055d20\",\"editorBracketHighlight.foreground3\":\"#744500\",\"editorBracketHighlight.foreground4\":\"#a0111f\",\"editorBracketHighlight.foreground5\":\"#971368\",\"editorBracketHighlight.foreground6\":\"#622cbc\",\"editorBracketHighlight.unexpectedBracket.foreground\":\"#0e1116\",\"editorBracketMatch.background\":\"#26a14840\",\"editorBracketMatch.border\":\"#26a14899\",\"editorCursor.foreground\":\"#0349b4\",\"editorGroup.border\":\"#20252c\",\"editorGroupHeader.tabsBackground\":\"#ffffff\",\"editorGroupHeader.tabsBorder\":\"#20252c\",\"editorGutter.addedBackground\":\"#26a148\",\"editorGutter.deletedBackground\":\"#ee5a5d\",\"editorGutter.modifiedBackground\":\"#b58407\",\"editorIndentGuide.activeBackground\":\"#0e11163d\",\"editorIndentGuide.background\":\"#0e11161f\",\"editorInlayHint.background\":\"#acb6c033\",\"editorInlayHint.foreground\":\"#0e1116\",\"editorInlayHint.paramBackground\":\"#acb6c033\",\"editorInlayHint.paramForeground\":\"#0e1116\",\"editorInlayHint.typeBackground\":\"#acb6c033\",\"editorInlayHint.typeForeground\":\"#0e1116\",\"editorLineNumber.activeForeground\":\"#0e1116\",\"editorLineNumber.foreground\":\"#88929d\",\"editorOverviewRuler.border\":\"#ffffff\",\"editorWhitespace.foreground\":\"#acb6c0\",\"editorWidget.background\":\"#ffffff\",\"errorForeground\":\"#a0111f\",\"focusBorder\":\"#0349b4\",\"foreground\":\"#0e1116\",\"gitDecoration.addedResourceForeground\":\"#055d20\",\"gitDecoration.conflictingResourceForeground\":\"#873800\",\"gitDecoration.deletedResourceForeground\":\"#a0111f\",\"gitDecoration.ignoredResourceForeground\":\"#66707b\",\"gitDecoration.modifiedResourceForeground\":\"#744500\",\"gitDecoration.submoduleResourceForeground\":\"#0e1116\",\"gitDecoration.untrackedResourceForeground\":\"#055d20\",\"icon.foreground\":\"#0e1116\",\"input.background\":\"#ffffff\",\"input.border\":\"#20252c\",\"input.foreground\":\"#0e1116\",\"input.placeholderForeground\":\"#66707b\",\"keybindingLabel.foreground\":\"#0e1116\",\"list.activeSelectionBackground\":\"#acb6c033\",\"list.activeSelectionForeground\":\"#0e1116\",\"list.focusBackground\":\"#dff7ff\",\"list.focusForeground\":\"#0e1116\",\"list.highlightForeground\":\"#0349b4\",\"list.hoverBackground\":\"#e7ecf0\",\"list.hoverForeground\":\"#0e1116\",\"list.inactiveFocusBackground\":\"#dff7ff\",\"list.inactiveSelectionBackground\":\"#acb6c033\",\"list.inactiveSelectionForeground\":\"#0e1116\",\"minimapSlider.activeBackground\":\"#88929d47\",\"minimapSlider.background\":\"#88929d33\",\"minimapSlider.hoverBackground\":\"#88929d3d\",\"notificationCenterHeader.background\":\"#e7ecf0\",\"notificationCenterHeader.foreground\":\"#0e1116\",\"notifications.background\":\"#ffffff\",\"notifications.border\":\"#20252c\",\"notifications.foreground\":\"#0e1116\",\"notificationsErrorIcon.foreground\":\"#a0111f\",\"notificationsInfoIcon.foreground\":\"#0349b4\",\"notificationsWarningIcon.foreground\":\"#744500\",\"panel.background\":\"#ffffff\",\"panel.border\":\"#20252c\",\"panelInput.border\":\"#20252c\",\"panelTitle.activeBorder\":\"#ef5b48\",\"panelTitle.activeForeground\":\"#0e1116\",\"panelTitle.inactiveForeground\":\"#0e1116\",\"pickerGroup.border\":\"#20252c\",\"pickerGroup.foreground\":\"#0e1116\",\"progressBar.background\":\"#0349b4\",\"quickInput.background\":\"#ffffff\",\"quickInput.foreground\":\"#0e1116\",\"scrollbar.shadow\":\"#66707b33\",\"scrollbarSlider.activeBackground\":\"#88929d47\",\"scrollbarSlider.background\":\"#88929d33\",\"scrollbarSlider.hoverBackground\":\"#88929d3d\",\"settings.headerForeground\":\"#0e1116\",\"settings.modifiedItemIndicator\":\"#b58407\",\"sideBar.background\":\"#ffffff\",\"sideBar.border\":\"#20252c\",\"sideBar.foreground\":\"#0e1116\",\"sideBarSectionHeader.background\":\"#ffffff\",\"sideBarSectionHeader.border\":\"#20252c\",\"sideBarSectionHeader.foreground\":\"#0e1116\",\"sideBarTitle.foreground\":\"#0e1116\",\"statusBar.background\":\"#ffffff\",\"statusBar.border\":\"#20252c\",\"statusBar.debuggingBackground\":\"#a0111f\",\"statusBar.debuggingForeground\":\"#ffffff\",\"statusBar.focusBorder\":\"#0349b480\",\"statusBar.foreground\":\"#0e1116\",\"statusBar.noFolderBackground\":\"#ffffff\",\"statusBarItem.activeBackground\":\"#0e11161f\",\"statusBarItem.focusBorder\":\"#0349b4\",\"statusBarItem.hoverBackground\":\"#0e111614\",\"statusBarItem.prominentBackground\":\"#acb6c033\",\"statusBarItem.remoteBackground\":\"#e7ecf0\",\"statusBarItem.remoteForeground\":\"#0e1116\",\"symbolIcon.arrayForeground\":\"#702c00\",\"symbolIcon.booleanForeground\":\"#023b95\",\"symbolIcon.classForeground\":\"#702c00\",\"symbolIcon.colorForeground\":\"#032563\",\"symbolIcon.constantForeground\":\"#024c1a\",\"symbolIcon.constructorForeground\":\"#341763\",\"symbolIcon.enumeratorForeground\":\"#702c00\",\"symbolIcon.enumeratorMemberForeground\":\"#023b95\",\"symbolIcon.eventForeground\":\"#4b535d\",\"symbolIcon.fieldForeground\":\"#702c00\",\"symbolIcon.fileForeground\":\"#603700\",\"symbolIcon.folderForeground\":\"#603700\",\"symbolIcon.functionForeground\":\"#512598\",\"symbolIcon.interfaceForeground\":\"#702c00\",\"symbolIcon.keyForeground\":\"#023b95\",\"symbolIcon.keywordForeground\":\"#86061d\",\"symbolIcon.methodForeground\":\"#512598\",\"symbolIcon.moduleForeground\":\"#86061d\",\"symbolIcon.namespaceForeground\":\"#86061d\",\"symbolIcon.nullForeground\":\"#023b95\",\"symbolIcon.numberForeground\":\"#024c1a\",\"symbolIcon.objectForeground\":\"#702c00\",\"symbolIcon.operatorForeground\":\"#032563\",\"symbolIcon.packageForeground\":\"#702c00\",\"symbolIcon.propertyForeground\":\"#702c00\",\"symbolIcon.referenceForeground\":\"#023b95\",\"symbolIcon.snippetForeground\":\"#023b95\",\"symbolIcon.stringForeground\":\"#032563\",\"symbolIcon.structForeground\":\"#702c00\",\"symbolIcon.textForeground\":\"#032563\",\"symbolIcon.typeParameterForeground\":\"#032563\",\"symbolIcon.unitForeground\":\"#023b95\",\"symbolIcon.variableForeground\":\"#702c00\",\"tab.activeBackground\":\"#ffffff\",\"tab.activeBorder\":\"#ffffff\",\"tab.activeBorderTop\":\"#ef5b48\",\"tab.activeForeground\":\"#0e1116\",\"tab.border\":\"#20252c\",\"tab.hoverBackground\":\"#ffffff\",\"tab.inactiveBackground\":\"#ffffff\",\"tab.inactiveForeground\":\"#0e1116\",\"tab.unfocusedActiveBorder\":\"#ffffff\",\"tab.unfocusedActiveBorderTop\":\"#20252c\",\"tab.unfocusedHoverBackground\":\"#e7ecf0\",\"terminal.ansiBlack\":\"#0e1116\",\"terminal.ansiBlue\":\"#0349b4\",\"terminal.ansiBrightBlack\":\"#4b535d\",\"terminal.ansiBrightBlue\":\"#1168e3\",\"terminal.ansiBrightCyan\":\"#3192aa\",\"terminal.ansiBrightGreen\":\"#055d20\",\"terminal.ansiBrightMagenta\":\"#844ae7\",\"terminal.ansiBrightRed\":\"#86061d\",\"terminal.ansiBrightWhite\":\"#88929d\",\"terminal.ansiBrightYellow\":\"#4e2c00\",\"terminal.ansiCyan\":\"#1b7c83\",\"terminal.ansiGreen\":\"#024c1a\",\"terminal.ansiMagenta\":\"#622cbc\",\"terminal.ansiRed\":\"#a0111f\",\"terminal.ansiWhite\":\"#66707b\",\"terminal.ansiYellow\":\"#3f2200\",\"terminal.foreground\":\"#0e1116\",\"textBlockQuote.background\":\"#ffffff\",\"textBlockQuote.border\":\"#20252c\",\"textCodeBlock.background\":\"#acb6c033\",\"textLink.activeForeground\":\"#0349b4\",\"textLink.foreground\":\"#0349b4\",\"textPreformat.background\":\"#acb6c033\",\"textPreformat.foreground\":\"#0e1116\",\"textSeparator.foreground\":\"#88929d\",\"titleBar.activeBackground\":\"#ffffff\",\"titleBar.activeForeground\":\"#0e1116\",\"titleBar.border\":\"#20252c\",\"titleBar.inactiveBackground\":\"#ffffff\",\"titleBar.inactiveForeground\":\"#0e1116\",\"tree.indentGuidesStroke\":\"#88929d\",\"welcomePage.buttonBackground\":\"#e7ecf0\",\"welcomePage.buttonHoverBackground\":\"#ced5dc\"},\"displayName\":\"GitHub Light High Contrast\",\"name\":\"github-light-high-contrast\",\"semanticHighlighting\":true,\"tokenColors\":[{\"scope\":[\"comment\",\"punctuation.definition.comment\",\"string.comment\"],\"settings\":{\"foreground\":\"#66707b\"}},{\"scope\":[\"constant.other.placeholder\",\"constant.character\"],\"settings\":{\"foreground\":\"#a0111f\"}},{\"scope\":[\"constant\",\"entity.name.constant\",\"variable.other.constant\",\"variable.other.enummember\",\"variable.language\",\"entity\"],\"settings\":{\"foreground\":\"#023b95\"}},{\"scope\":[\"entity.name\",\"meta.export.default\",\"meta.definition.variable\"],\"settings\":{\"foreground\":\"#702c00\"}},{\"scope\":[\"variable.parameter.function\",\"meta.jsx.children\",\"meta.block\",\"meta.tag.attributes\",\"entity.name.constant\",\"meta.object.member\",\"meta.embedded.expression\"],\"settings\":{\"foreground\":\"#0e1116\"}},{\"scope\":\"entity.name.function\",\"settings\":{\"foreground\":\"#622cbc\"}},{\"scope\":[\"entity.name.tag\",\"support.class.component\"],\"settings\":{\"foreground\":\"#024c1a\"}},{\"scope\":\"keyword\",\"settings\":{\"foreground\":\"#a0111f\"}},{\"scope\":[\"storage\",\"storage.type\"],\"settings\":{\"foreground\":\"#a0111f\"}},{\"scope\":[\"storage.modifier.package\",\"storage.modifier.import\",\"storage.type.java\"],\"settings\":{\"foreground\":\"#0e1116\"}},{\"scope\":[\"string\",\"string punctuation.section.embedded source\"],\"settings\":{\"foreground\":\"#032563\"}},{\"scope\":\"support\",\"settings\":{\"foreground\":\"#023b95\"}},{\"scope\":\"meta.property-name\",\"settings\":{\"foreground\":\"#023b95\"}},{\"scope\":\"variable\",\"settings\":{\"foreground\":\"#702c00\"}},{\"scope\":\"variable.other\",\"settings\":{\"foreground\":\"#0e1116\"}},{\"scope\":\"invalid.broken\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#6e011a\"}},{\"scope\":\"invalid.deprecated\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#6e011a\"}},{\"scope\":\"invalid.illegal\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#6e011a\"}},{\"scope\":\"invalid.unimplemented\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#6e011a\"}},{\"scope\":\"carriage-return\",\"settings\":{\"background\":\"#a0111f\",\"content\":\"^M\",\"fontStyle\":\"italic underline\",\"foreground\":\"#ffffff\"}},{\"scope\":\"message.error\",\"settings\":{\"foreground\":\"#6e011a\"}},{\"scope\":\"string variable\",\"settings\":{\"foreground\":\"#023b95\"}},{\"scope\":[\"source.regexp\",\"string.regexp\"],\"settings\":{\"foreground\":\"#032563\"}},{\"scope\":[\"string.regexp.character-class\",\"string.regexp constant.character.escape\",\"string.regexp source.ruby.embedded\",\"string.regexp string.regexp.arbitrary-repitition\"],\"settings\":{\"foreground\":\"#032563\"}},{\"scope\":\"string.regexp constant.character.escape\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#024c1a\"}},{\"scope\":\"support.constant\",\"settings\":{\"foreground\":\"#023b95\"}},{\"scope\":\"support.variable\",\"settings\":{\"foreground\":\"#023b95\"}},{\"scope\":\"support.type.property-name.json\",\"settings\":{\"foreground\":\"#024c1a\"}},{\"scope\":\"meta.module-reference\",\"settings\":{\"foreground\":\"#023b95\"}},{\"scope\":\"punctuation.definition.list.begin.markdown\",\"settings\":{\"foreground\":\"#702c00\"}},{\"scope\":[\"markup.heading\",\"markup.heading entity.name\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#023b95\"}},{\"scope\":\"markup.quote\",\"settings\":{\"foreground\":\"#024c1a\"}},{\"scope\":\"markup.italic\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#0e1116\"}},{\"scope\":\"markup.bold\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#0e1116\"}},{\"scope\":[\"markup.underline\"],\"settings\":{\"fontStyle\":\"underline\"}},{\"scope\":[\"markup.strikethrough\"],\"settings\":{\"fontStyle\":\"strikethrough\"}},{\"scope\":\"markup.inline.raw\",\"settings\":{\"foreground\":\"#023b95\"}},{\"scope\":[\"markup.deleted\",\"meta.diff.header.from-file\",\"punctuation.definition.deleted\"],\"settings\":{\"background\":\"#fff0ee\",\"foreground\":\"#6e011a\"}},{\"scope\":[\"punctuation.section.embedded\"],\"settings\":{\"foreground\":\"#a0111f\"}},{\"scope\":[\"markup.inserted\",\"meta.diff.header.to-file\",\"punctuation.definition.inserted\"],\"settings\":{\"background\":\"#d2fedb\",\"foreground\":\"#024c1a\"}},{\"scope\":[\"markup.changed\",\"punctuation.definition.changed\"],\"settings\":{\"background\":\"#ffc67b\",\"foreground\":\"#702c00\"}},{\"scope\":[\"markup.ignored\",\"markup.untracked\"],\"settings\":{\"background\":\"#023b95\",\"foreground\":\"#e7ecf0\"}},{\"scope\":\"meta.diff.range\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#622cbc\"}},{\"scope\":\"meta.diff.header\",\"settings\":{\"foreground\":\"#023b95\"}},{\"scope\":\"meta.separator\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#023b95\"}},{\"scope\":\"meta.output\",\"settings\":{\"foreground\":\"#023b95\"}},{\"scope\":[\"brackethighlighter.tag\",\"brackethighlighter.curly\",\"brackethighlighter.round\",\"brackethighlighter.square\",\"brackethighlighter.angle\",\"brackethighlighter.quote\"],\"settings\":{\"foreground\":\"#4b535d\"}},{\"scope\":\"brackethighlighter.unmatched\",\"settings\":{\"foreground\":\"#6e011a\"}},{\"scope\":[\"constant.other.reference.link\",\"string.other.link\"],\"settings\":{\"foreground\":\"#032563\"}}],\"type\":\"light\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Bg-kzb6g.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"PureScript\",\"fileTypes\":[\"purs\"],\"name\":\"purescript\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.purescript\"},\"2\":{\"name\":\"punctuation.definition.entity.purescript\"}},\"match\":\"(\\`)(?:[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*(?:\\\\\\\\.[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)*\\\\\\\\.)?[\\\\\\\\p{Ll}_][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*(\\`)\",\"name\":\"keyword.operator.function.infix.purescript\"},{\"begin\":\"^\\\\\\\\s*\\\\\\\\b(module)(?!')\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.purescript\"}},\"end\":\"(where)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.other.purescript\"}},\"name\":\"meta.declaration.module.purescript\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#module_name\"},{\"include\":\"#module_exports\"},{\"match\":\"[a-z]+\",\"name\":\"invalid.purescript\"}]},{\"begin\":\"^\\\\\\\\s*\\\\\\\\b(class)(?!')\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.purescript\"}},\"end\":\"\\\\\\\\b(where)\\\\\\\\b|$\",\"endCaptures\":{\"1\":{\"name\":\"keyword.other.purescript\"}},\"name\":\"meta.declaration.typeclass.purescript\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"^\\\\\\\\s*\\\\\\\\b(else\\\\\\\\s+)?(derive\\\\\\\\s+)?(newtype\\\\\\\\s+)?(instance)(?!')\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.purescript\"},\"2\":{\"name\":\"keyword.other.purescript\"},\"3\":{\"name\":\"keyword.other.purescript\"},\"4\":{\"name\":\"keyword.other.purescript\"}},\"contentName\":\"meta.type-signature.purescript\",\"end\":\"\\\\\\\\b(where)\\\\\\\\b|$\",\"endCaptures\":{\"1\":{\"name\":\"keyword.other.purescript\"}},\"name\":\"meta.declaration.instance.purescript\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"begin\":\"^(\\\\\\\\s*)(foreign)\\\\\\\\s+(import)\\\\\\\\s+(data)\\\\\\\\s+([\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.purescript\"},\"3\":{\"name\":\"keyword.other.purescript\"},\"4\":{\"name\":\"keyword.other.purescript\"},\"5\":{\"name\":\"entity.name.type.purescript\"},\"6\":{\"name\":\"keyword.other.double-colon.purescript\"}},\"contentName\":\"meta.kind-signature.purescript\",\"end\":\"^(?!\\\\\\\\1[ \\\\\\\\t]|[ \\\\\\\\t]*$)\",\"name\":\"meta.foreign.data.purescript\",\"patterns\":[{\"include\":\"#double_colon\"},{\"include\":\"#kind_signature\"}]},{\"begin\":\"^(\\\\\\\\s*)(foreign)\\\\\\\\s+(import)\\\\\\\\s+([\\\\\\\\p{Ll}_][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.purescript\"},\"3\":{\"name\":\"keyword.other.purescript\"},\"4\":{\"name\":\"entity.name.function.purescript\"}},\"contentName\":\"meta.type-signature.purescript\",\"end\":\"^(?!\\\\\\\\1[ \\\\\\\\t]|[ \\\\\\\\t]*$)\",\"name\":\"meta.foreign.purescript\",\"patterns\":[{\"include\":\"#double_colon\"},{\"include\":\"#type_signature\"}]},{\"begin\":\"^\\\\\\\\s*\\\\\\\\b(import)(?!')\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.purescript\"}},\"end\":\"($|(?=--))\",\"name\":\"meta.import.purescript\",\"patterns\":[{\"include\":\"#module_name\"},{\"include\":\"#module_exports\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.purescript\"}},\"match\":\"\\\\\\\\b(as|hiding)\\\\\\\\b\"}]},{\"begin\":\"^(\\\\\\\\s)*(data|newtype)\\\\\\\\s+(.+?)\\\\\\\\s*(?=\\\\\\\\=|$)\",\"beginCaptures\":{\"2\":{\"name\":\"storage.type.data.purescript\"},\"3\":{\"name\":\"meta.type-signature.purescript\",\"patterns\":[{\"include\":\"#type_signature\"}]}},\"end\":\"^(?!\\\\\\\\1[ \\\\\\\\t]|[ \\\\\\\\t]*$)\",\"name\":\"meta.declaration.type.data.purescript\",\"patterns\":[{\"include\":\"#comments\"},{\"captures\":{\"0\":{\"name\":\"keyword.operator.assignment.purescript\"}},\"match\":\"=\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#data_ctor\"}]},\"2\":{\"name\":\"meta.type-signature.purescript\",\"patterns\":[{\"include\":\"#type_signature\"}]}},\"match\":\"(?:(?:\\\\\\\\b([\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*(?:\\\\\\\\.[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)*)\\\\\\\\s+)(?:(?<ctorArgs>(?:(?:[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*(?:\\\\\\\\.[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)*|(?:[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*(?:\\\\\\\\.[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)*\\\\\\\\.)?[\\\\\\\\p{Ll}_][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*|(?:(?:[\\\\\\\\w()'→⇒\\\\\\\\[\\\\\\\\],]|->|=>)+\\\\\\\\s*)+))(?:\\\\\\\\s*(?:\\\\\\\\s+)\\\\\\\\s*\\\\\\\\g<ctorArgs>)?)?))\"},{\"captures\":{\"0\":{\"name\":\"punctuation.separator.pipe.purescript\"}},\"match\":\"\\\\\\\\|\"},{\"include\":\"#record_types\"}]},{\"begin\":\"^(\\\\\\\\s)*(type)\\\\\\\\s+(.+?)\\\\\\\\s*(?=\\\\\\\\=|$)\",\"beginCaptures\":{\"2\":{\"name\":\"storage.type.data.purescript\"},\"3\":{\"name\":\"meta.type-signature.purescript\",\"patterns\":[{\"include\":\"#type_signature\"}]}},\"contentName\":\"meta.type-signature.purescript\",\"end\":\"^(?!\\\\\\\\1[ \\\\\\\\t]|[ \\\\\\\\t]*$)\",\"name\":\"meta.declaration.type.type.purescript\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"keyword.operator.assignment.purescript\"}},\"match\":\"=\"},{\"include\":\"#type_signature\"},{\"include\":\"#record_types\"},{\"include\":\"#comments\"}]},{\"match\":\"^\\\\\\\\s*\\\\\\\\b(derive|where|data|type|newtype|infix[lr]?|foreign(\\\\\\\\s+import)?(\\\\\\\\s+data)?)(?!')\\\\\\\\b\",\"name\":\"keyword.other.purescript\"},{\"match\":\"\\\\\\\\?(?:[\\\\\\\\p{Ll}_][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*|[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)\",\"name\":\"entity.name.function.typed-hole.purescript\"},{\"match\":\"^\\\\\\\\s*\\\\\\\\b(data|type|newtype)(?!')\\\\\\\\b\",\"name\":\"storage.type.purescript\"},{\"match\":\"\\\\\\\\b(do|ado|if|then|else|case|of|let|in)(?!('|\\\\\\\\s*(:|=)))\\\\\\\\b\",\"name\":\"keyword.control.purescript\"},{\"match\":\"\\\\\\\\b(?<!\\\\\\\\$)0(x|X)[0-9a-fA-F]+\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.numeric.hex.purescript\"},{\"captures\":{\"0\":{\"name\":\"constant.numeric.decimal.purescript\"},\"1\":{\"name\":\"meta.delimiter.decimal.period.purescript\"},\"2\":{\"name\":\"meta.delimiter.decimal.period.purescript\"},\"3\":{\"name\":\"meta.delimiter.decimal.period.purescript\"},\"4\":{\"name\":\"meta.delimiter.decimal.period.purescript\"},\"5\":{\"name\":\"meta.delimiter.decimal.period.purescript\"},\"6\":{\"name\":\"meta.delimiter.decimal.period.purescript\"}},\"match\":\"(?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9]+(\\\\\\\\.)[0-9]+[eE][+-]?[0-9]+\\\\\\\\b)|(?:\\\\\\\\b[0-9]+[eE][+-]?[0-9]+\\\\\\\\b)|(?:\\\\\\\\b[0-9]+(\\\\\\\\.)[0-9]+\\\\\\\\b)|(?:\\\\\\\\b[0-9]+\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$)\",\"name\":\"constant.numeric.decimal.purescript\"},{\"match\":\"\\\\\\\\b(true|false)\\\\\\\\b\",\"name\":\"constant.language.boolean.purescript\"},{\"match\":\"\\\\\\\\b(([0-9]+_?)*[0-9]+|0([xX][0-9a-fA-F]+|[oO][0-7]+))\\\\\\\\b\",\"name\":\"constant.numeric.purescript\"},{\"begin\":\"\\\\\"\\\\\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.purescript\"}},\"end\":\"\\\\\"\\\\\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.purescript\"}},\"name\":\"string.quoted.triple.purescript\"},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.purescript\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.purescript\"}},\"name\":\"string.quoted.double.purescript\",\"patterns\":[{\"include\":\"#characters\"},{\"begin\":\"\\\\\\\\\\\\\\\\\\\\\\\\s\",\"beginCaptures\":{\"0\":{\"name\":\"markup.other.escape.newline.begin.purescript\"}},\"end\":\"\\\\\\\\\\\\\\\\\",\"endCaptures\":{\"0\":{\"name\":\"markup.other.escape.newline.end.purescript\"}},\"patterns\":[{\"match\":\"\\\\\\\\S+\",\"name\":\"invalid.illegal.character-not-allowed-here.purescript\"}]}]},{\"match\":\"\\\\\\\\\\\\\\\\$\",\"name\":\"markup.other.escape.newline.purescript\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.purescript\"},\"2\":{\"patterns\":[{\"include\":\"#characters\"}]},\"7\":{\"name\":\"punctuation.definition.string.end.purescript\"}},\"match\":\"(')((?:[ -\\\\\\\\[\\\\\\\\]-~]|(\\\\\\\\\\\\\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"'\\\\\\\\&]))|(\\\\\\\\\\\\\\\\o[0-7]+)|(\\\\\\\\\\\\\\\\x[0-9A-Fa-f]+)|(\\\\\\\\^[A-Z@\\\\\\\\[\\\\\\\\]\\\\\\\\\\\\\\\\\\\\\\\\^_])))(')\",\"name\":\"string.quoted.single.purescript\"},{\"include\":\"#function_type_declaration\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"$self\"}]},\"2\":{\"name\":\"keyword.other.double-colon.purescript\"},\"3\":{\"name\":\"meta.type-signature.purescript\",\"patterns\":[{\"include\":\"#type_signature\"}]}},\"match\":\"\\\\\\\\((?<paren>(?:[^()]|\\\\\\\\(\\\\\\\\g<paren>\\\\\\\\))*)(::|∷)(?<paren2>(?:[^()]|\\\\\\\\(\\\\\\\\g<paren2>\\\\\\\\))*)\\\\\\\\)\"},{\"begin\":\"^(\\\\\\\\s*)(?:(::|∷))\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.double-colon.purescript\"}},\"end\":\"^(?!\\\\\\\\1[ \\\\\\\\t]*|[ \\\\\\\\t]*$)\",\"patterns\":[{\"include\":\"#type_signature\"}]},{\"include\":\"#data_ctor\"},{\"include\":\"#comments\"},{\"include\":\"#infix_op\"},{\"match\":\"\\\\\\\\<-|-\\\\\\\\>\",\"name\":\"keyword.other.arrow.purescript\"},{\"match\":\"[\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']]+\",\"name\":\"keyword.operator.purescript\"},{\"match\":\",\",\"name\":\"punctuation.separator.comma.purescript\"}],\"repository\":{\"block_comment\":{\"patterns\":[{\"applyEndPatternLast\":1,\"begin\":\"\\\\\\\\{-\\\\\\\\s*\\\\\\\\|\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.documentation.purescript\"}},\"end\":\"-\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.documentation.purescript\"}},\"name\":\"comment.block.documentation.purescript\",\"patterns\":[{\"include\":\"#block_comment\"}]},{\"applyEndPatternLast\":1,\"begin\":\"\\\\\\\\{-\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.purescript\"}},\"end\":\"-\\\\\\\\}\",\"name\":\"comment.block.purescript\",\"patterns\":[{\"include\":\"#block_comment\"}]}]},\"characters\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.character.escape.purescript\"},\"2\":{\"name\":\"constant.character.escape.octal.purescript\"},\"3\":{\"name\":\"constant.character.escape.hexadecimal.purescript\"},\"4\":{\"name\":\"constant.character.escape.control.purescript\"}},\"match\":\"(?:[ -\\\\\\\\[\\\\\\\\]-~]|(\\\\\\\\\\\\\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"'\\\\\\\\&]))|(\\\\\\\\\\\\\\\\o[0-7]+)|(\\\\\\\\\\\\\\\\x[0-9A-Fa-f]+)|(\\\\\\\\^[A-Z@\\\\\\\\[\\\\\\\\]\\\\\\\\\\\\\\\\\\\\\\\\^_]))\"}]},\"class_constraint\":{\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"match\":\"\\\\\\\\b[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*(?:\\\\\\\\.[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)*\",\"name\":\"entity.name.type.purescript\"}]},\"2\":{\"patterns\":[{\"include\":\"#type_name\"},{\"include\":\"#generic_type\"}]}},\"match\":\"(?:(?:([\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*(?:\\\\\\\\.[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)*)\\\\\\\\s+)(?:(?<classConstraint>(?:[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*(?:\\\\\\\\.[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)*|(?:[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*(?:\\\\\\\\.[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)*\\\\\\\\.)?[\\\\\\\\p{Ll}_][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)(?:\\\\\\\\s*(?:\\\\\\\\s+)\\\\\\\\s*\\\\\\\\g<classConstraint>)?)))\",\"name\":\"meta.class-constraint.purescript\"}]},\"comments\":{\"patterns\":[{\"begin\":\"(^[ \\\\\\\\t]+)?(?=--+\\\\\\\\s+\\\\\\\\|)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.purescript\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"(--+)\\\\\\\\s+(\\\\\\\\|)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.purescript\"},\"2\":{\"name\":\"punctuation.definition.comment.documentation.purescript\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.double-dash.documentation.purescript\"}]},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=--+(?![\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']]))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.purescript\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"--\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.purescript\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.double-dash.purescript\"}]},{\"include\":\"#block_comment\"}]},\"data_ctor\":{\"patterns\":[{\"match\":\"\\\\\\\\b[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*(?:\\\\\\\\.[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)*\",\"name\":\"entity.name.tag.purescript\"}]},\"double_colon\":{\"patterns\":[{\"match\":\"(?:::|∷)\",\"name\":\"keyword.other.double-colon.purescript\"}]},\"function_type_declaration\":{\"patterns\":[{\"begin\":\"^(\\\\\\\\s*)([\\\\\\\\p{Ll}_][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)\\\\\\\\s*(?:(::|∷)(?!.*<-))\",\"beginCaptures\":{\"2\":{\"name\":\"entity.name.function.purescript\"},\"3\":{\"name\":\"keyword.other.double-colon.purescript\"}},\"contentName\":\"meta.type-signature.purescript\",\"end\":\"^(?!\\\\\\\\1[ \\\\\\\\t]|[ \\\\\\\\t]*$)\",\"name\":\"meta.function.type-declaration.purescript\",\"patterns\":[{\"include\":\"#double_colon\"},{\"include\":\"#type_signature\"}]}]},\"generic_type\":{\"patterns\":[{\"match\":\"\\\\\\\\b(?:[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*(?:\\\\\\\\.[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)*\\\\\\\\.)?[\\\\\\\\p{Ll}_][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*\",\"name\":\"variable.other.generic-type.purescript\"}]},\"infix_op\":{\"patterns\":[{\"match\":\"(?:\\\\\\\\((?!--+\\\\\\\\))[\\\\\\\\p{S}\\\\\\\\p{P}&&[^(),;\\\\\\\\[\\\\\\\\]\\`{}_\\\\\"']]+\\\\\\\\))\",\"name\":\"entity.name.function.infix.purescript\"}]},\"kind_signature\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"keyword.other.star.purescript\"},{\"match\":\"!\",\"name\":\"keyword.other.exclaimation-point.purescript\"},{\"match\":\"#\",\"name\":\"keyword.other.pound-sign.purescript\"},{\"match\":\"->|→\",\"name\":\"keyword.other.arrow.purescript\"}]},\"module_exports\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"name\":\"meta.declaration.exports.purescript\",\"patterns\":[{\"include\":\"#comments\"},{\"match\":\"\\\\\\\\b(?:[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*(?:\\\\\\\\.[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)*\\\\\\\\.)?[\\\\\\\\p{Ll}_][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*\",\"name\":\"entity.name.function.purescript\"},{\"include\":\"#type_name\"},{\"match\":\",\",\"name\":\"punctuation.separator.comma.purescript\"},{\"include\":\"#infix_op\"},{\"match\":\"\\\\\\\\(.*?\\\\\\\\)\",\"name\":\"meta.other.constructor-list.purescript\"}]}]},\"module_name\":{\"patterns\":[{\"match\":\"(?:[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*(?:\\\\\\\\.[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)*\\\\\\\\.)*[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*(?:\\\\\\\\.[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)*\\\\\\\\.?\",\"name\":\"support.other.module.purescript\"}]},\"record_field_declaration\":{\"patterns\":[{\"begin\":\"([\\\\\\\\p{Ll}_][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)\\\\\\\\s*(::|∷)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"match\":\"(?:[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*(?:\\\\\\\\.[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)*\\\\\\\\.)?[\\\\\\\\p{Ll}_][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*\",\"name\":\"entity.other.attribute-name.purescript\"}]},\"2\":{\"name\":\"keyword.other.double-colon.purescript\"}},\"contentName\":\"meta.type-signature.purescript\",\"end\":\"(?=([\\\\\\\\p{Ll}_][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)\\\\\\\\s*(::|∷)|})\",\"name\":\"meta.record-field.type-declaration.purescript\",\"patterns\":[{\"include\":\"#type_signature\"},{\"include\":\"#record_types\"}]}]},\"record_types\":{\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.type.record.begin.purescript\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.type.record.end.purescript\"}},\"name\":\"meta.type.record.purescript\",\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.separator.comma.purescript\"},{\"include\":\"#record_field_declaration\"},{\"include\":\"#comments\"}]}]},\"type_name\":{\"patterns\":[{\"match\":\"\\\\\\\\b[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*(?:\\\\\\\\.[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)*\",\"name\":\"entity.name.type.purescript\"}]},\"type_signature\":{\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#class_constraint\"}]},\"4\":{\"name\":\"keyword.other.big-arrow.purescript\"}},\"match\":\"(?:(?:\\\\\\\\()(?:(?<classConstraints>(?:(?:(?:([\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*(?:\\\\\\\\.[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)*)\\\\\\\\s+)(?:(?<classConstraint>(?:[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*(?:\\\\\\\\.[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)*|(?:[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*(?:\\\\\\\\.[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)*\\\\\\\\.)?[\\\\\\\\p{Ll}_][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)(?:\\\\\\\\s*(?:\\\\\\\\s+)\\\\\\\\s*\\\\\\\\g<classConstraint>)?))))(?:\\\\\\\\s*(?:,)\\\\\\\\s*\\\\\\\\g<classConstraints>)?))(?:\\\\\\\\))(?:\\\\\\\\s*(=>|<=|⇐|⇒)))\",\"name\":\"meta.class-constraints.purescript\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#class_constraint\"}]},\"4\":{\"name\":\"keyword.other.big-arrow.purescript\"}},\"match\":\"((?:(?:([\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*(?:\\\\\\\\.[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)*)\\\\\\\\s+)(?:(?<classConstraint>(?:[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*(?:\\\\\\\\.[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)*|(?:[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*(?:\\\\\\\\.[\\\\\\\\p{Lu}\\\\\\\\p{Lt}][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)*\\\\\\\\.)?[\\\\\\\\p{Ll}_][\\\\\\\\p{Ll}_\\\\\\\\p{Lu}\\\\\\\\p{Lt}\\\\\\\\p{Nd}']*)(?:\\\\\\\\s*(?:\\\\\\\\s+)\\\\\\\\s*\\\\\\\\g<classConstraint>)?))))\\\\\\\\s*(=>|<=|⇐|⇒)\",\"name\":\"meta.class-constraints.purescript\"},{\"match\":\"->|→\",\"name\":\"keyword.other.arrow.purescript\"},{\"match\":\"=>|⇒\",\"name\":\"keyword.other.big-arrow.purescript\"},{\"match\":\"<=|⇐\",\"name\":\"keyword.other.big-arrow-left.purescript\"},{\"match\":\"forall|∀\",\"name\":\"keyword.other.forall.purescript\"},{\"include\":\"#generic_type\"},{\"include\":\"#type_name\"},{\"include\":\"#comments\"}]}},\"scopeName\":\"source.purescript\"}`)),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BgDCqdQA.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBorder\":\"#a7c080d0\",\"activityBar.activeFocusBorder\":\"#a7c080\",\"activityBar.background\":\"#2d353b\",\"activityBar.border\":\"#2d353b\",\"activityBar.dropBackground\":\"#2d353b\",\"activityBar.foreground\":\"#d3c6aa\",\"activityBar.inactiveForeground\":\"#859289\",\"activityBarBadge.background\":\"#a7c080\",\"activityBarBadge.foreground\":\"#2d353b\",\"badge.background\":\"#a7c080\",\"badge.foreground\":\"#2d353b\",\"breadcrumb.activeSelectionForeground\":\"#d3c6aa\",\"breadcrumb.focusForeground\":\"#d3c6aa\",\"breadcrumb.foreground\":\"#859289\",\"button.background\":\"#a7c080\",\"button.foreground\":\"#2d353b\",\"button.hoverBackground\":\"#a7c080d0\",\"button.secondaryBackground\":\"#3d484d\",\"button.secondaryForeground\":\"#d3c6aa\",\"button.secondaryHoverBackground\":\"#475258\",\"charts.blue\":\"#7fbbb3\",\"charts.foreground\":\"#d3c6aa\",\"charts.green\":\"#a7c080\",\"charts.orange\":\"#e69875\",\"charts.purple\":\"#d699b6\",\"charts.red\":\"#e67e80\",\"charts.yellow\":\"#dbbc7f\",\"checkbox.background\":\"#2d353b\",\"checkbox.border\":\"#4f585e\",\"checkbox.foreground\":\"#e69875\",\"debugConsole.errorForeground\":\"#e67e80\",\"debugConsole.infoForeground\":\"#a7c080\",\"debugConsole.sourceForeground\":\"#d699b6\",\"debugConsole.warningForeground\":\"#dbbc7f\",\"debugConsoleInputIcon.foreground\":\"#83c092\",\"debugIcon.breakpointCurrentStackframeForeground\":\"#7fbbb3\",\"debugIcon.breakpointDisabledForeground\":\"#da6362\",\"debugIcon.breakpointForeground\":\"#e67e80\",\"debugIcon.breakpointStackframeForeground\":\"#e67e80\",\"debugIcon.breakpointUnverifiedForeground\":\"#9aa79d\",\"debugIcon.continueForeground\":\"#7fbbb3\",\"debugIcon.disconnectForeground\":\"#d699b6\",\"debugIcon.pauseForeground\":\"#dbbc7f\",\"debugIcon.restartForeground\":\"#83c092\",\"debugIcon.startForeground\":\"#83c092\",\"debugIcon.stepBackForeground\":\"#7fbbb3\",\"debugIcon.stepIntoForeground\":\"#7fbbb3\",\"debugIcon.stepOutForeground\":\"#7fbbb3\",\"debugIcon.stepOverForeground\":\"#7fbbb3\",\"debugIcon.stopForeground\":\"#e67e80\",\"debugTokenExpression.boolean\":\"#d699b6\",\"debugTokenExpression.error\":\"#e67e80\",\"debugTokenExpression.name\":\"#7fbbb3\",\"debugTokenExpression.number\":\"#d699b6\",\"debugTokenExpression.string\":\"#dbbc7f\",\"debugTokenExpression.value\":\"#a7c080\",\"debugToolBar.background\":\"#2d353b\",\"descriptionForeground\":\"#859289\",\"diffEditor.diagonalFill\":\"#4f585e\",\"diffEditor.insertedTextBackground\":\"#569d7930\",\"diffEditor.removedTextBackground\":\"#da636230\",\"dropdown.background\":\"#2d353b\",\"dropdown.border\":\"#4f585e\",\"dropdown.foreground\":\"#9aa79d\",\"editor.background\":\"#2d353b\",\"editor.findMatchBackground\":\"#d77f4840\",\"editor.findMatchHighlightBackground\":\"#899c4040\",\"editor.findRangeHighlightBackground\":\"#47525860\",\"editor.foldBackground\":\"#4f585e80\",\"editor.foreground\":\"#d3c6aa\",\"editor.hoverHighlightBackground\":\"#475258b0\",\"editor.inactiveSelectionBackground\":\"#47525860\",\"editor.lineHighlightBackground\":\"#3d484d90\",\"editor.lineHighlightBorder\":\"#4f585e00\",\"editor.rangeHighlightBackground\":\"#3d484d80\",\"editor.selectionBackground\":\"#475258c0\",\"editor.selectionHighlightBackground\":\"#47525860\",\"editor.snippetFinalTabstopHighlightBackground\":\"#899c4040\",\"editor.snippetFinalTabstopHighlightBorder\":\"#2d353b\",\"editor.snippetTabstopHighlightBackground\":\"#3d484d\",\"editor.symbolHighlightBackground\":\"#5a93a240\",\"editor.wordHighlightBackground\":\"#47525858\",\"editor.wordHighlightStrongBackground\":\"#475258b0\",\"editorBracketHighlight.foreground1\":\"#e67e80\",\"editorBracketHighlight.foreground2\":\"#dbbc7f\",\"editorBracketHighlight.foreground3\":\"#a7c080\",\"editorBracketHighlight.foreground4\":\"#7fbbb3\",\"editorBracketHighlight.foreground5\":\"#e69875\",\"editorBracketHighlight.foreground6\":\"#d699b6\",\"editorBracketHighlight.unexpectedBracket.foreground\":\"#859289\",\"editorBracketMatch.background\":\"#4f585e\",\"editorBracketMatch.border\":\"#2d353b00\",\"editorCodeLens.foreground\":\"#7f897da0\",\"editorCursor.foreground\":\"#d3c6aa\",\"editorError.background\":\"#da636200\",\"editorError.foreground\":\"#da6362\",\"editorGhostText.background\":\"#2d353b00\",\"editorGhostText.foreground\":\"#7f897da0\",\"editorGroup.border\":\"#21272b\",\"editorGroup.dropBackground\":\"#4f585e60\",\"editorGroupHeader.noTabsBackground\":\"#2d353b\",\"editorGroupHeader.tabsBackground\":\"#2d353b\",\"editorGutter.addedBackground\":\"#899c40a0\",\"editorGutter.background\":\"#2d353b00\",\"editorGutter.commentRangeForeground\":\"#7f897d\",\"editorGutter.deletedBackground\":\"#da6362a0\",\"editorGutter.modifiedBackground\":\"#5a93a2a0\",\"editorHint.foreground\":\"#b87b9d\",\"editorHoverWidget.background\":\"#343f44\",\"editorHoverWidget.border\":\"#475258\",\"editorIndentGuide.activeBackground\":\"#9aa79d50\",\"editorIndentGuide.background\":\"#9aa79d20\",\"editorInfo.background\":\"#5a93a200\",\"editorInfo.foreground\":\"#5a93a2\",\"editorInlayHint.background\":\"#2d353b00\",\"editorInlayHint.foreground\":\"#7f897da0\",\"editorInlayHint.parameterBackground\":\"#2d353b00\",\"editorInlayHint.parameterForeground\":\"#7f897da0\",\"editorInlayHint.typeBackground\":\"#2d353b00\",\"editorInlayHint.typeForeground\":\"#7f897da0\",\"editorLightBulb.foreground\":\"#dbbc7f\",\"editorLightBulbAutoFix.foreground\":\"#83c092\",\"editorLineNumber.activeForeground\":\"#9aa79de0\",\"editorLineNumber.foreground\":\"#7f897da0\",\"editorLink.activeForeground\":\"#a7c080\",\"editorMarkerNavigation.background\":\"#343f44\",\"editorMarkerNavigationError.background\":\"#da636280\",\"editorMarkerNavigationInfo.background\":\"#5a93a280\",\"editorMarkerNavigationWarning.background\":\"#bf983d80\",\"editorOverviewRuler.addedForeground\":\"#899c40a0\",\"editorOverviewRuler.border\":\"#2d353b00\",\"editorOverviewRuler.commonContentForeground\":\"#859289\",\"editorOverviewRuler.currentContentForeground\":\"#5a93a2\",\"editorOverviewRuler.deletedForeground\":\"#da6362a0\",\"editorOverviewRuler.errorForeground\":\"#e67e80\",\"editorOverviewRuler.findMatchForeground\":\"#569d79\",\"editorOverviewRuler.incomingContentForeground\":\"#569d79\",\"editorOverviewRuler.infoForeground\":\"#d699b6\",\"editorOverviewRuler.modifiedForeground\":\"#5a93a2a0\",\"editorOverviewRuler.rangeHighlightForeground\":\"#569d79\",\"editorOverviewRuler.selectionHighlightForeground\":\"#569d79\",\"editorOverviewRuler.warningForeground\":\"#dbbc7f\",\"editorOverviewRuler.wordHighlightForeground\":\"#4f585e\",\"editorOverviewRuler.wordHighlightStrongForeground\":\"#4f585e\",\"editorRuler.foreground\":\"#475258a0\",\"editorSuggestWidget.background\":\"#3d484d\",\"editorSuggestWidget.border\":\"#3d484d\",\"editorSuggestWidget.foreground\":\"#d3c6aa\",\"editorSuggestWidget.highlightForeground\":\"#a7c080\",\"editorSuggestWidget.selectedBackground\":\"#475258\",\"editorUnnecessaryCode.border\":\"#2d353b\",\"editorUnnecessaryCode.opacity\":\"#00000080\",\"editorWarning.background\":\"#bf983d00\",\"editorWarning.foreground\":\"#bf983d\",\"editorWhitespace.foreground\":\"#475258\",\"editorWidget.background\":\"#2d353b\",\"editorWidget.border\":\"#4f585e\",\"editorWidget.foreground\":\"#d3c6aa\",\"errorForeground\":\"#e67e80\",\"extensionBadge.remoteBackground\":\"#a7c080\",\"extensionBadge.remoteForeground\":\"#2d353b\",\"extensionButton.prominentBackground\":\"#a7c080\",\"extensionButton.prominentForeground\":\"#2d353b\",\"extensionButton.prominentHoverBackground\":\"#a7c080d0\",\"extensionIcon.preReleaseForeground\":\"#e69875\",\"extensionIcon.starForeground\":\"#83c092\",\"extensionIcon.verifiedForeground\":\"#a7c080\",\"focusBorder\":\"#2d353b00\",\"foreground\":\"#9aa79d\",\"gitDecoration.addedResourceForeground\":\"#a7c080a0\",\"gitDecoration.conflictingResourceForeground\":\"#d699b6a0\",\"gitDecoration.deletedResourceForeground\":\"#e67e80a0\",\"gitDecoration.ignoredResourceForeground\":\"#4f585e\",\"gitDecoration.modifiedResourceForeground\":\"#7fbbb3a0\",\"gitDecoration.stageDeletedResourceForeground\":\"#83c092a0\",\"gitDecoration.stageModifiedResourceForeground\":\"#83c092a0\",\"gitDecoration.submoduleResourceForeground\":\"#e69875a0\",\"gitDecoration.untrackedResourceForeground\":\"#dbbc7fa0\",\"gitlens.closedPullRequestIconColor\":\"#e67e80\",\"gitlens.decorations.addedForegroundColor\":\"#a7c080\",\"gitlens.decorations.branchAheadForegroundColor\":\"#83c092\",\"gitlens.decorations.branchBehindForegroundColor\":\"#e69875\",\"gitlens.decorations.branchDivergedForegroundColor\":\"#dbbc7f\",\"gitlens.decorations.branchMissingUpstreamForegroundColor\":\"#e67e80\",\"gitlens.decorations.branchUnpublishedForegroundColor\":\"#7fbbb3\",\"gitlens.decorations.branchUpToDateForegroundColor\":\"#d3c6aa\",\"gitlens.decorations.copiedForegroundColor\":\"#d699b6\",\"gitlens.decorations.deletedForegroundColor\":\"#e67e80\",\"gitlens.decorations.ignoredForegroundColor\":\"#9aa79d\",\"gitlens.decorations.modifiedForegroundColor\":\"#7fbbb3\",\"gitlens.decorations.renamedForegroundColor\":\"#d699b6\",\"gitlens.decorations.untrackedForegroundColor\":\"#dbbc7f\",\"gitlens.gutterBackgroundColor\":\"#2d353b\",\"gitlens.gutterForegroundColor\":\"#d3c6aa\",\"gitlens.gutterUncommittedForegroundColor\":\"#7fbbb3\",\"gitlens.lineHighlightBackgroundColor\":\"#343f44\",\"gitlens.lineHighlightOverviewRulerColor\":\"#a7c080\",\"gitlens.mergedPullRequestIconColor\":\"#d699b6\",\"gitlens.openPullRequestIconColor\":\"#83c092\",\"gitlens.trailingLineForegroundColor\":\"#859289\",\"gitlens.unpublishedCommitIconColor\":\"#dbbc7f\",\"gitlens.unpulledChangesIconColor\":\"#e69875\",\"gitlens.unpushlishedChangesIconColor\":\"#7fbbb3\",\"icon.foreground\":\"#83c092\",\"imagePreview.border\":\"#2d353b\",\"input.background\":\"#2d353b00\",\"input.border\":\"#4f585e\",\"input.foreground\":\"#d3c6aa\",\"input.placeholderForeground\":\"#7f897d\",\"inputOption.activeBorder\":\"#83c092\",\"inputValidation.errorBackground\":\"#da6362\",\"inputValidation.errorBorder\":\"#e67e80\",\"inputValidation.errorForeground\":\"#d3c6aa\",\"inputValidation.infoBackground\":\"#5a93a2\",\"inputValidation.infoBorder\":\"#7fbbb3\",\"inputValidation.infoForeground\":\"#d3c6aa\",\"inputValidation.warningBackground\":\"#bf983d\",\"inputValidation.warningBorder\":\"#dbbc7f\",\"inputValidation.warningForeground\":\"#d3c6aa\",\"issues.closed\":\"#e67e80\",\"issues.open\":\"#83c092\",\"keybindingLabel.background\":\"#2d353b00\",\"keybindingLabel.border\":\"#272e33\",\"keybindingLabel.bottomBorder\":\"#21272b\",\"keybindingLabel.foreground\":\"#d3c6aa\",\"keybindingTable.headerBackground\":\"#3d484d\",\"keybindingTable.rowsBackground\":\"#343f44\",\"list.activeSelectionBackground\":\"#47525880\",\"list.activeSelectionForeground\":\"#d3c6aa\",\"list.dropBackground\":\"#343f4480\",\"list.errorForeground\":\"#e67e80\",\"list.focusBackground\":\"#47525880\",\"list.focusForeground\":\"#d3c6aa\",\"list.highlightForeground\":\"#a7c080\",\"list.hoverBackground\":\"#2d353b00\",\"list.hoverForeground\":\"#d3c6aa\",\"list.inactiveFocusBackground\":\"#47525860\",\"list.inactiveSelectionBackground\":\"#47525880\",\"list.inactiveSelectionForeground\":\"#9aa79d\",\"list.invalidItemForeground\":\"#da6362\",\"list.warningForeground\":\"#dbbc7f\",\"menu.background\":\"#2d353b\",\"menu.foreground\":\"#9aa79d\",\"menu.selectionBackground\":\"#343f44\",\"menu.selectionForeground\":\"#d3c6aa\",\"menubar.selectionBackground\":\"#2d353b\",\"menubar.selectionBorder\":\"#2d353b\",\"merge.border\":\"#2d353b00\",\"merge.currentContentBackground\":\"#5a93a240\",\"merge.currentHeaderBackground\":\"#5a93a280\",\"merge.incomingContentBackground\":\"#569d7940\",\"merge.incomingHeaderBackground\":\"#569d7980\",\"minimap.errorHighlight\":\"#da636280\",\"minimap.findMatchHighlight\":\"#569d7960\",\"minimap.selectionHighlight\":\"#4f585ef0\",\"minimap.warningHighlight\":\"#bf983d80\",\"minimapGutter.addedBackground\":\"#899c40a0\",\"minimapGutter.deletedBackground\":\"#da6362a0\",\"minimapGutter.modifiedBackground\":\"#5a93a2a0\",\"notebook.cellBorderColor\":\"#4f585e\",\"notebook.cellHoverBackground\":\"#2d353b\",\"notebook.cellStatusBarItemHoverBackground\":\"#343f44\",\"notebook.cellToolbarSeparator\":\"#4f585e\",\"notebook.focusedCellBackground\":\"#2d353b\",\"notebook.focusedCellBorder\":\"#4f585e\",\"notebook.focusedEditorBorder\":\"#4f585e\",\"notebook.focusedRowBorder\":\"#4f585e\",\"notebook.inactiveFocusedCellBorder\":\"#4f585e\",\"notebook.outputContainerBackgroundColor\":\"#272e33\",\"notebook.selectedCellBorder\":\"#4f585e\",\"notebookStatusErrorIcon.foreground\":\"#e67e80\",\"notebookStatusRunningIcon.foreground\":\"#7fbbb3\",\"notebookStatusSuccessIcon.foreground\":\"#a7c080\",\"notificationCenterHeader.background\":\"#3d484d\",\"notificationCenterHeader.foreground\":\"#d3c6aa\",\"notificationLink.foreground\":\"#a7c080\",\"notifications.background\":\"#2d353b\",\"notifications.foreground\":\"#d3c6aa\",\"notificationsErrorIcon.foreground\":\"#e67e80\",\"notificationsInfoIcon.foreground\":\"#7fbbb3\",\"notificationsWarningIcon.foreground\":\"#dbbc7f\",\"panel.background\":\"#2d353b\",\"panel.border\":\"#2d353b\",\"panelInput.border\":\"#4f585e\",\"panelSection.border\":\"#21272b\",\"panelSectionHeader.background\":\"#2d353b\",\"panelTitle.activeBorder\":\"#a7c080d0\",\"panelTitle.activeForeground\":\"#d3c6aa\",\"panelTitle.inactiveForeground\":\"#859289\",\"peekView.border\":\"#475258\",\"peekViewEditor.background\":\"#343f44\",\"peekViewEditor.matchHighlightBackground\":\"#bf983d50\",\"peekViewEditorGutter.background\":\"#343f44\",\"peekViewResult.background\":\"#343f44\",\"peekViewResult.fileForeground\":\"#d3c6aa\",\"peekViewResult.lineForeground\":\"#9aa79d\",\"peekViewResult.matchHighlightBackground\":\"#bf983d50\",\"peekViewResult.selectionBackground\":\"#569d7950\",\"peekViewResult.selectionForeground\":\"#d3c6aa\",\"peekViewTitle.background\":\"#475258\",\"peekViewTitleDescription.foreground\":\"#d3c6aa\",\"peekViewTitleLabel.foreground\":\"#a7c080\",\"pickerGroup.border\":\"#a7c0801a\",\"pickerGroup.foreground\":\"#d3c6aa\",\"ports.iconRunningProcessForeground\":\"#e69875\",\"problemsErrorIcon.foreground\":\"#e67e80\",\"problemsInfoIcon.foreground\":\"#7fbbb3\",\"problemsWarningIcon.foreground\":\"#dbbc7f\",\"progressBar.background\":\"#a7c080\",\"quickInputTitle.background\":\"#343f44\",\"rust_analyzer.inlayHints.background\":\"#2d353b00\",\"rust_analyzer.inlayHints.foreground\":\"#7f897da0\",\"rust_analyzer.syntaxTreeBorder\":\"#e67e80\",\"sash.hoverBorder\":\"#475258\",\"scrollbar.shadow\":\"#00000070\",\"scrollbarSlider.activeBackground\":\"#9aa79d\",\"scrollbarSlider.background\":\"#4f585e80\",\"scrollbarSlider.hoverBackground\":\"#4f585e\",\"selection.background\":\"#475258e0\",\"settings.checkboxBackground\":\"#2d353b\",\"settings.checkboxBorder\":\"#4f585e\",\"settings.checkboxForeground\":\"#e69875\",\"settings.dropdownBackground\":\"#2d353b\",\"settings.dropdownBorder\":\"#4f585e\",\"settings.dropdownForeground\":\"#83c092\",\"settings.focusedRowBackground\":\"#343f44\",\"settings.headerForeground\":\"#9aa79d\",\"settings.modifiedItemIndicator\":\"#7f897d\",\"settings.numberInputBackground\":\"#2d353b\",\"settings.numberInputBorder\":\"#4f585e\",\"settings.numberInputForeground\":\"#d699b6\",\"settings.rowHoverBackground\":\"#343f44\",\"settings.textInputBackground\":\"#2d353b\",\"settings.textInputBorder\":\"#4f585e\",\"settings.textInputForeground\":\"#7fbbb3\",\"sideBar.background\":\"#2d353b\",\"sideBar.foreground\":\"#859289\",\"sideBarSectionHeader.background\":\"#2d353b00\",\"sideBarSectionHeader.foreground\":\"#9aa79d\",\"sideBarTitle.foreground\":\"#9aa79d\",\"statusBar.background\":\"#2d353b\",\"statusBar.border\":\"#2d353b\",\"statusBar.debuggingBackground\":\"#2d353b\",\"statusBar.debuggingForeground\":\"#e69875\",\"statusBar.foreground\":\"#9aa79d\",\"statusBar.noFolderBackground\":\"#2d353b\",\"statusBar.noFolderBorder\":\"#2d353b\",\"statusBar.noFolderForeground\":\"#9aa79d\",\"statusBarItem.activeBackground\":\"#47525870\",\"statusBarItem.errorBackground\":\"#2d353b\",\"statusBarItem.errorForeground\":\"#e67e80\",\"statusBarItem.hoverBackground\":\"#475258a0\",\"statusBarItem.prominentBackground\":\"#2d353b\",\"statusBarItem.prominentForeground\":\"#d3c6aa\",\"statusBarItem.prominentHoverBackground\":\"#475258a0\",\"statusBarItem.remoteBackground\":\"#2d353b\",\"statusBarItem.remoteForeground\":\"#9aa79d\",\"statusBarItem.warningBackground\":\"#2d353b\",\"statusBarItem.warningForeground\":\"#dbbc7f\",\"symbolIcon.arrayForeground\":\"#7fbbb3\",\"symbolIcon.booleanForeground\":\"#d699b6\",\"symbolIcon.classForeground\":\"#dbbc7f\",\"symbolIcon.colorForeground\":\"#d3c6aa\",\"symbolIcon.constantForeground\":\"#83c092\",\"symbolIcon.constructorForeground\":\"#d699b6\",\"symbolIcon.enumeratorForeground\":\"#d699b6\",\"symbolIcon.enumeratorMemberForeground\":\"#83c092\",\"symbolIcon.eventForeground\":\"#dbbc7f\",\"symbolIcon.fieldForeground\":\"#d3c6aa\",\"symbolIcon.fileForeground\":\"#d3c6aa\",\"symbolIcon.folderForeground\":\"#d3c6aa\",\"symbolIcon.functionForeground\":\"#a7c080\",\"symbolIcon.interfaceForeground\":\"#dbbc7f\",\"symbolIcon.keyForeground\":\"#a7c080\",\"symbolIcon.keywordForeground\":\"#e67e80\",\"symbolIcon.methodForeground\":\"#a7c080\",\"symbolIcon.moduleForeground\":\"#d699b6\",\"symbolIcon.namespaceForeground\":\"#d699b6\",\"symbolIcon.nullForeground\":\"#83c092\",\"symbolIcon.numberForeground\":\"#d699b6\",\"symbolIcon.objectForeground\":\"#d699b6\",\"symbolIcon.operatorForeground\":\"#e69875\",\"symbolIcon.packageForeground\":\"#d699b6\",\"symbolIcon.propertyForeground\":\"#83c092\",\"symbolIcon.referenceForeground\":\"#7fbbb3\",\"symbolIcon.snippetForeground\":\"#d3c6aa\",\"symbolIcon.stringForeground\":\"#a7c080\",\"symbolIcon.structForeground\":\"#dbbc7f\",\"symbolIcon.textForeground\":\"#d3c6aa\",\"symbolIcon.typeParameterForeground\":\"#83c092\",\"symbolIcon.unitForeground\":\"#d3c6aa\",\"symbolIcon.variableForeground\":\"#7fbbb3\",\"tab.activeBackground\":\"#2d353b\",\"tab.activeBorder\":\"#a7c080d0\",\"tab.activeForeground\":\"#d3c6aa\",\"tab.border\":\"#2d353b\",\"tab.hoverBackground\":\"#2d353b\",\"tab.hoverForeground\":\"#d3c6aa\",\"tab.inactiveBackground\":\"#2d353b\",\"tab.inactiveForeground\":\"#7f897d\",\"tab.lastPinnedBorder\":\"#a7c080d0\",\"tab.unfocusedActiveBorder\":\"#859289\",\"tab.unfocusedActiveForeground\":\"#9aa79d\",\"tab.unfocusedHoverForeground\":\"#d3c6aa\",\"tab.unfocusedInactiveForeground\":\"#7f897d\",\"terminal.ansiBlack\":\"#343f44\",\"terminal.ansiBlue\":\"#7fbbb3\",\"terminal.ansiBrightBlack\":\"#859289\",\"terminal.ansiBrightBlue\":\"#7fbbb3\",\"terminal.ansiBrightCyan\":\"#83c092\",\"terminal.ansiBrightGreen\":\"#a7c080\",\"terminal.ansiBrightMagenta\":\"#d699b6\",\"terminal.ansiBrightRed\":\"#e67e80\",\"terminal.ansiBrightWhite\":\"#d3c6aa\",\"terminal.ansiBrightYellow\":\"#dbbc7f\",\"terminal.ansiCyan\":\"#83c092\",\"terminal.ansiGreen\":\"#a7c080\",\"terminal.ansiMagenta\":\"#d699b6\",\"terminal.ansiRed\":\"#e67e80\",\"terminal.ansiWhite\":\"#d3c6aa\",\"terminal.ansiYellow\":\"#dbbc7f\",\"terminal.foreground\":\"#d3c6aa\",\"terminalCursor.foreground\":\"#d3c6aa\",\"testing.iconErrored\":\"#e67e80\",\"testing.iconFailed\":\"#e67e80\",\"testing.iconPassed\":\"#83c092\",\"testing.iconQueued\":\"#7fbbb3\",\"testing.iconSkipped\":\"#d699b6\",\"testing.iconUnset\":\"#dbbc7f\",\"testing.runAction\":\"#83c092\",\"textBlockQuote.background\":\"#272e33\",\"textBlockQuote.border\":\"#475258\",\"textCodeBlock.background\":\"#272e33\",\"textLink.activeForeground\":\"#a7c080c0\",\"textLink.foreground\":\"#a7c080\",\"textPreformat.foreground\":\"#dbbc7f\",\"titleBar.activeBackground\":\"#2d353b\",\"titleBar.activeForeground\":\"#9aa79d\",\"titleBar.border\":\"#2d353b\",\"titleBar.inactiveBackground\":\"#2d353b\",\"titleBar.inactiveForeground\":\"#7f897d\",\"toolbar.hoverBackground\":\"#343f44\",\"tree.indentGuidesStroke\":\"#7f897d\",\"walkThrough.embeddedEditorBackground\":\"#272e33\",\"welcomePage.buttonBackground\":\"#343f44\",\"welcomePage.buttonHoverBackground\":\"#343f44a0\",\"welcomePage.progress.foreground\":\"#a7c080\",\"welcomePage.tileHoverBackground\":\"#343f44\",\"widget.shadow\":\"#00000070\"},\"displayName\":\"Everforest Dark\",\"name\":\"everforest-dark\",\"semanticHighlighting\":true,\"semanticTokenColors\":{\"class:python\":\"#83c092\",\"class:typescript\":\"#83c092\",\"class:typescriptreact\":\"#83c092\",\"enum:typescript\":\"#d699b6\",\"enum:typescriptreact\":\"#d699b6\",\"enumMember:typescript\":\"#7fbbb3\",\"enumMember:typescriptreact\":\"#7fbbb3\",\"interface:typescript\":\"#83c092\",\"interface:typescriptreact\":\"#83c092\",\"intrinsic:python\":\"#d699b6\",\"macro:rust\":\"#83c092\",\"memberOperatorOverload\":\"#e69875\",\"module:python\":\"#7fbbb3\",\"namespace:rust\":\"#d699b6\",\"namespace:typescript\":\"#d699b6\",\"namespace:typescriptreact\":\"#d699b6\",\"operatorOverload\":\"#e69875\",\"property.defaultLibrary:javascript\":\"#d699b6\",\"property.defaultLibrary:javascriptreact\":\"#d699b6\",\"property.defaultLibrary:typescript\":\"#d699b6\",\"property.defaultLibrary:typescriptreact\":\"#d699b6\",\"selfKeyword:rust\":\"#d699b6\",\"variable.defaultLibrary:javascript\":\"#d699b6\",\"variable.defaultLibrary:javascriptreact\":\"#d699b6\",\"variable.defaultLibrary:typescript\":\"#d699b6\",\"variable.defaultLibrary:typescriptreact\":\"#d699b6\"},\"tokenColors\":[{\"scope\":\"keyword, storage.type.function, storage.type.class, storage.type.enum, storage.type.interface, storage.type.property, keyword.operator.new, keyword.operator.expression, keyword.operator.new, keyword.operator.delete, storage.type.extends\",\"settings\":{\"foreground\":\"#e67e80\"}},{\"scope\":\"keyword.other.debugger\",\"settings\":{\"foreground\":\"#e67e80\"}},{\"scope\":\"storage, modifier, keyword.var, entity.name.tag, keyword.control.case, keyword.control.switch\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"keyword.operator\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"string, punctuation.definition.string.end, punctuation.definition.string.begin, punctuation.definition.string.template.begin, punctuation.definition.string.template.end\",\"settings\":{\"foreground\":\"#dbbc7f\"}},{\"scope\":\"entity.other.attribute-name\",\"settings\":{\"foreground\":\"#dbbc7f\"}},{\"scope\":\"constant.character.escape, punctuation.quasi.element, punctuation.definition.template-expression, punctuation.section.embedded, storage.type.format, constant.other.placeholder, constant.other.placeholder, variable.interpolation\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"entity.name.function, support.function, meta.function, meta.function-call, meta.definition.method\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"keyword.control.at-rule, keyword.control.import, keyword.control.export, storage.type.namespace, punctuation.decorator, keyword.control.directive, keyword.preprocessor, punctuation.definition.preprocessor, punctuation.definition.directive, keyword.other.import, keyword.other.package, entity.name.type.namespace, entity.name.scope-resolution, keyword.other.using, keyword.package, keyword.import, keyword.map\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"storage.type.annotation\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"entity.name.label, constant.other.label\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"support.module, support.node, support.other.module, support.type.object.module, entity.name.type.module, entity.name.type.class.module, keyword.control.module\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"storage.type, support.type, entity.name.type, keyword.type\",\"settings\":{\"foreground\":\"#7fbbb3\"}},{\"scope\":\"entity.name.type.class, support.class, entity.name.class, entity.other.inherited-class, storage.class\",\"settings\":{\"foreground\":\"#7fbbb3\"}},{\"scope\":\"constant.numeric\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"constant.language.boolean\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"entity.name.function.preprocessor\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"variable.language.this, variable.language.self, variable.language.super, keyword.other.this, variable.language.special, constant.language.null, constant.language.undefined, constant.language.nan\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"constant.language, support.constant\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"variable, support.variable, meta.definition.variable\",\"settings\":{\"foreground\":\"#d3c6aa\"}},{\"scope\":\"variable.object.property, support.variable.property, variable.other.property, variable.other.object.property, variable.other.enummember, variable.other.member, meta.object-literal.key\",\"settings\":{\"foreground\":\"#d3c6aa\"}},{\"scope\":\"punctuation, meta.brace, meta.delimiter, meta.bracket\",\"settings\":{\"foreground\":\"#d3c6aa\"}},{\"scope\":\"heading.1.markdown, markup.heading.setext.1.markdown\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#e67e80\"}},{\"scope\":\"heading.2.markdown, markup.heading.setext.2.markdown\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#e69875\"}},{\"scope\":\"heading.3.markdown\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#dbbc7f\"}},{\"scope\":\"heading.4.markdown\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#a7c080\"}},{\"scope\":\"heading.5.markdown\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#7fbbb3\"}},{\"scope\":\"heading.6.markdown\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#d699b6\"}},{\"scope\":\"punctuation.definition.heading.markdown\",\"settings\":{\"fontStyle\":\"regular\",\"foreground\":\"#859289\"}},{\"scope\":\"string.other.link.title.markdown, constant.other.reference.link.markdown, string.other.link.description.markdown\",\"settings\":{\"fontStyle\":\"regular\",\"foreground\":\"#d699b6\"}},{\"scope\":\"markup.underline.link.image.markdown, markup.underline.link.markdown\",\"settings\":{\"fontStyle\":\"underline\",\"foreground\":\"#a7c080\"}},{\"scope\":\"punctuation.definition.string.begin.markdown, punctuation.definition.string.end.markdown, punctuation.definition.italic.markdown, punctuation.definition.quote.begin.markdown, punctuation.definition.metadata.markdown, punctuation.separator.key-value.markdown, punctuation.definition.constant.markdown\",\"settings\":{\"foreground\":\"#859289\"}},{\"scope\":\"punctuation.definition.bold.markdown\",\"settings\":{\"fontStyle\":\"regular\",\"foreground\":\"#859289\"}},{\"scope\":\"meta.separator.markdown, punctuation.definition.constant.begin.markdown, punctuation.definition.constant.end.markdown\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#859289\"}},{\"scope\":\"markup.italic\",\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":\"markup.bold\",\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":\"markup.bold markup.italic, markup.italic markup.bold\",\"settings\":{\"fontStyle\":\"italic bold\"}},{\"scope\":\"punctuation.definition.markdown, punctuation.definition.raw.markdown\",\"settings\":{\"foreground\":\"#dbbc7f\"}},{\"scope\":\"fenced_code.block.language\",\"settings\":{\"foreground\":\"#dbbc7f\"}},{\"scope\":\"markup.fenced_code.block.markdown, markup.inline.raw.string.markdown\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"punctuation.definition.list.begin.markdown\",\"settings\":{\"foreground\":\"#e67e80\"}},{\"scope\":\"punctuation.definition.heading.restructuredtext\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#e69875\"}},{\"scope\":\"punctuation.definition.field.restructuredtext, punctuation.separator.key-value.restructuredtext, punctuation.definition.directive.restructuredtext, punctuation.definition.constant.restructuredtext, punctuation.definition.italic.restructuredtext, punctuation.definition.table.restructuredtext\",\"settings\":{\"foreground\":\"#859289\"}},{\"scope\":\"punctuation.definition.bold.restructuredtext\",\"settings\":{\"fontStyle\":\"regular\",\"foreground\":\"#859289\"}},{\"scope\":\"entity.name.tag.restructuredtext, punctuation.definition.link.restructuredtext, punctuation.definition.raw.restructuredtext, punctuation.section.raw.restructuredtext\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"constant.other.footnote.link.restructuredtext\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"support.directive.restructuredtext\",\"settings\":{\"foreground\":\"#e67e80\"}},{\"scope\":\"entity.name.directive.restructuredtext, markup.raw.restructuredtext, markup.raw.inner.restructuredtext, string.other.link.title.restructuredtext\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"punctuation.definition.function.latex, punctuation.definition.function.tex, punctuation.definition.keyword.latex, constant.character.newline.tex, punctuation.definition.keyword.tex\",\"settings\":{\"foreground\":\"#859289\"}},{\"scope\":\"support.function.be.latex\",\"settings\":{\"foreground\":\"#e67e80\"}},{\"scope\":\"support.function.section.latex, keyword.control.table.cell.latex, keyword.control.table.newline.latex\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"support.class.latex, variable.parameter.latex, variable.parameter.function.latex, variable.parameter.definition.label.latex, constant.other.reference.label.latex\",\"settings\":{\"foreground\":\"#dbbc7f\"}},{\"scope\":\"keyword.control.preamble.latex\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"punctuation.separator.namespace.xml\",\"settings\":{\"foreground\":\"#859289\"}},{\"scope\":\"entity.name.tag.html, entity.name.tag.xml, entity.name.tag.localname.xml\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"entity.other.attribute-name.html, entity.other.attribute-name.xml, entity.other.attribute-name.localname.xml\",\"settings\":{\"foreground\":\"#dbbc7f\"}},{\"scope\":\"string.quoted.double.html, string.quoted.single.html, punctuation.definition.string.begin.html, punctuation.definition.string.end.html, punctuation.separator.key-value.html, punctuation.definition.string.begin.xml, punctuation.definition.string.end.xml, string.quoted.double.xml, string.quoted.single.xml, punctuation.definition.tag.begin.html, punctuation.definition.tag.end.html, punctuation.definition.tag.xml, meta.tag.xml, meta.tag.preprocessor.xml, meta.tag.other.html, meta.tag.block.any.html, meta.tag.inline.any.html\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"variable.language.documentroot.xml, meta.tag.sgml.doctype.xml\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"storage.type.proto\",\"settings\":{\"foreground\":\"#dbbc7f\"}},{\"scope\":\"string.quoted.double.proto.syntax, string.quoted.single.proto.syntax, string.quoted.double.proto, string.quoted.single.proto\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"entity.name.class.proto, entity.name.class.message.proto\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"punctuation.definition.entity.css, punctuation.separator.key-value.css, punctuation.terminator.rule.css, punctuation.separator.list.comma.css\",\"settings\":{\"foreground\":\"#859289\"}},{\"scope\":\"entity.other.attribute-name.class.css\",\"settings\":{\"foreground\":\"#e67e80\"}},{\"scope\":\"keyword.other.unit\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"entity.other.attribute-name.pseudo-class.css, entity.other.attribute-name.pseudo-element.css\",\"settings\":{\"foreground\":\"#dbbc7f\"}},{\"scope\":\"string.quoted.single.css, string.quoted.double.css, support.constant.property-value.css, meta.property-value.css, punctuation.definition.string.begin.css, punctuation.definition.string.end.css, constant.numeric.css, support.constant.font-name.css, variable.parameter.keyframe-list.css\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"support.type.property-name.css\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"support.type.vendored.property-name.css\",\"settings\":{\"foreground\":\"#7fbbb3\"}},{\"scope\":\"entity.name.tag.css, entity.other.keyframe-offset.css, punctuation.definition.keyword.css, keyword.control.at-rule.keyframes.css, meta.selector.css\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"punctuation.definition.entity.scss, punctuation.separator.key-value.scss, punctuation.terminator.rule.scss, punctuation.separator.list.comma.scss\",\"settings\":{\"foreground\":\"#859289\"}},{\"scope\":\"keyword.control.at-rule.keyframes.scss\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"punctuation.definition.interpolation.begin.bracket.curly.scss, punctuation.definition.interpolation.end.bracket.curly.scss\",\"settings\":{\"foreground\":\"#dbbc7f\"}},{\"scope\":\"punctuation.definition.string.begin.scss, punctuation.definition.string.end.scss, string.quoted.double.scss, string.quoted.single.scss, constant.character.css.sass, meta.property-value.scss\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"keyword.control.at-rule.include.scss, keyword.control.at-rule.use.scss, keyword.control.at-rule.mixin.scss, keyword.control.at-rule.extend.scss, keyword.control.at-rule.import.scss\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"meta.function.stylus\",\"settings\":{\"foreground\":\"#d3c6aa\"}},{\"scope\":\"entity.name.function.stylus\",\"settings\":{\"foreground\":\"#dbbc7f\"}},{\"scope\":\"string.unquoted.js\",\"settings\":{\"foreground\":\"#d3c6aa\"}},{\"scope\":\"punctuation.accessor.js, punctuation.separator.key-value.js, punctuation.separator.label.js, keyword.operator.accessor.js\",\"settings\":{\"foreground\":\"#859289\"}},{\"scope\":\"punctuation.definition.block.tag.jsdoc\",\"settings\":{\"foreground\":\"#e67e80\"}},{\"scope\":\"storage.type.js, storage.type.function.arrow.js\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"JSXNested\",\"settings\":{\"foreground\":\"#d3c6aa\"}},{\"scope\":\"punctuation.definition.tag.jsx, entity.other.attribute-name.jsx, punctuation.definition.tag.begin.js.jsx, punctuation.definition.tag.end.js.jsx, entity.other.attribute-name.js.jsx\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"entity.name.type.module.ts\",\"settings\":{\"foreground\":\"#d3c6aa\"}},{\"scope\":\"keyword.operator.type.annotation.ts, punctuation.accessor.ts, punctuation.separator.key-value.ts\",\"settings\":{\"foreground\":\"#859289\"}},{\"scope\":\"punctuation.definition.tag.directive.ts, entity.other.attribute-name.directive.ts\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"entity.name.type.ts, entity.name.type.interface.ts, entity.other.inherited-class.ts, entity.name.type.alias.ts, entity.name.type.class.ts, entity.name.type.enum.ts\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"storage.type.ts, storage.type.function.arrow.ts, storage.type.type.ts\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"entity.name.type.module.ts\",\"settings\":{\"foreground\":\"#7fbbb3\"}},{\"scope\":\"keyword.control.import.ts, keyword.control.export.ts, storage.type.namespace.ts\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"entity.name.type.module.tsx\",\"settings\":{\"foreground\":\"#d3c6aa\"}},{\"scope\":\"keyword.operator.type.annotation.tsx, punctuation.accessor.tsx, punctuation.separator.key-value.tsx\",\"settings\":{\"foreground\":\"#859289\"}},{\"scope\":\"punctuation.definition.tag.directive.tsx, entity.other.attribute-name.directive.tsx, punctuation.definition.tag.begin.tsx, punctuation.definition.tag.end.tsx, entity.other.attribute-name.tsx\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"entity.name.type.tsx, entity.name.type.interface.tsx, entity.other.inherited-class.tsx, entity.name.type.alias.tsx, entity.name.type.class.tsx, entity.name.type.enum.tsx\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"entity.name.type.module.tsx\",\"settings\":{\"foreground\":\"#7fbbb3\"}},{\"scope\":\"keyword.control.import.tsx, keyword.control.export.tsx, storage.type.namespace.tsx\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"storage.type.tsx, storage.type.function.arrow.tsx, storage.type.type.tsx, support.class.component.tsx\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"storage.type.function.coffee\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"meta.type-signature.purescript\",\"settings\":{\"foreground\":\"#d3c6aa\"}},{\"scope\":\"keyword.other.double-colon.purescript, keyword.other.arrow.purescript, keyword.other.big-arrow.purescript\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"entity.name.function.purescript\",\"settings\":{\"foreground\":\"#dbbc7f\"}},{\"scope\":\"string.quoted.single.purescript, string.quoted.double.purescript, punctuation.definition.string.begin.purescript, punctuation.definition.string.end.purescript, string.quoted.triple.purescript, entity.name.type.purescript\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"support.other.module.purescript\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"punctuation.dot.dart\",\"settings\":{\"foreground\":\"#859289\"}},{\"scope\":\"storage.type.primitive.dart\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"support.class.dart\",\"settings\":{\"foreground\":\"#dbbc7f\"}},{\"scope\":\"entity.name.function.dart, string.interpolated.single.dart, string.interpolated.double.dart\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"variable.language.dart\",\"settings\":{\"foreground\":\"#7fbbb3\"}},{\"scope\":\"keyword.other.import.dart, storage.type.annotation.dart\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"entity.other.attribute-name.class.pug\",\"settings\":{\"foreground\":\"#e67e80\"}},{\"scope\":\"storage.type.function.pug\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"entity.other.attribute-name.tag.pug\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"entity.name.tag.pug, storage.type.import.include.pug\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"meta.function-call.c, storage.modifier.array.bracket.square.c, meta.function.definition.parameters.c\",\"settings\":{\"foreground\":\"#d3c6aa\"}},{\"scope\":\"punctuation.separator.dot-access.c, constant.character.escape.line-continuation.c\",\"settings\":{\"foreground\":\"#859289\"}},{\"scope\":\"keyword.control.directive.include.c, punctuation.definition.directive.c, keyword.control.directive.pragma.c, keyword.control.directive.line.c, keyword.control.directive.define.c, keyword.control.directive.conditional.c, keyword.control.directive.diagnostic.error.c, keyword.control.directive.undef.c, keyword.control.directive.conditional.ifdef.c, keyword.control.directive.endif.c, keyword.control.directive.conditional.ifndef.c, keyword.control.directive.conditional.if.c, keyword.control.directive.else.c\",\"settings\":{\"foreground\":\"#e67e80\"}},{\"scope\":\"punctuation.separator.pointer-access.c\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"variable.other.member.c\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"meta.function-call.cpp, storage.modifier.array.bracket.square.cpp, meta.function.definition.parameters.cpp, meta.body.function.definition.cpp\",\"settings\":{\"foreground\":\"#d3c6aa\"}},{\"scope\":\"punctuation.separator.dot-access.cpp, constant.character.escape.line-continuation.cpp\",\"settings\":{\"foreground\":\"#859289\"}},{\"scope\":\"keyword.control.directive.include.cpp, punctuation.definition.directive.cpp, keyword.control.directive.pragma.cpp, keyword.control.directive.line.cpp, keyword.control.directive.define.cpp, keyword.control.directive.conditional.cpp, keyword.control.directive.diagnostic.error.cpp, keyword.control.directive.undef.cpp, keyword.control.directive.conditional.ifdef.cpp, keyword.control.directive.endif.cpp, keyword.control.directive.conditional.ifndef.cpp, keyword.control.directive.conditional.if.cpp, keyword.control.directive.else.cpp, storage.type.namespace.definition.cpp, keyword.other.using.directive.cpp, storage.type.struct.cpp\",\"settings\":{\"foreground\":\"#e67e80\"}},{\"scope\":\"punctuation.separator.pointer-access.cpp, punctuation.section.angle-brackets.begin.template.call.cpp, punctuation.section.angle-brackets.end.template.call.cpp\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"variable.other.member.cpp\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"keyword.other.using.cs\",\"settings\":{\"foreground\":\"#e67e80\"}},{\"scope\":\"keyword.type.cs, constant.character.escape.cs, punctuation.definition.interpolation.begin.cs, punctuation.definition.interpolation.end.cs\",\"settings\":{\"foreground\":\"#dbbc7f\"}},{\"scope\":\"string.quoted.double.cs, string.quoted.single.cs, punctuation.definition.string.begin.cs, punctuation.definition.string.end.cs\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"variable.other.object.property.cs\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"entity.name.type.namespace.cs\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"keyword.symbol.fsharp, constant.language.unit.fsharp\",\"settings\":{\"foreground\":\"#d3c6aa\"}},{\"scope\":\"keyword.format.specifier.fsharp, entity.name.type.fsharp\",\"settings\":{\"foreground\":\"#dbbc7f\"}},{\"scope\":\"string.quoted.double.fsharp, string.quoted.single.fsharp, punctuation.definition.string.begin.fsharp, punctuation.definition.string.end.fsharp\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"entity.name.section.fsharp\",\"settings\":{\"foreground\":\"#7fbbb3\"}},{\"scope\":\"support.function.attribute.fsharp\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"punctuation.separator.java, punctuation.separator.period.java\",\"settings\":{\"foreground\":\"#859289\"}},{\"scope\":\"keyword.other.import.java, keyword.other.package.java\",\"settings\":{\"foreground\":\"#e67e80\"}},{\"scope\":\"storage.type.function.arrow.java, keyword.control.ternary.java\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"variable.other.property.java\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"variable.language.wildcard.java, storage.modifier.import.java, storage.type.annotation.java, punctuation.definition.annotation.java, storage.modifier.package.java, entity.name.type.module.java\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"keyword.other.import.kotlin\",\"settings\":{\"foreground\":\"#e67e80\"}},{\"scope\":\"storage.type.kotlin\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"constant.language.kotlin\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"entity.name.package.kotlin, storage.type.annotation.kotlin\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"entity.name.package.scala\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"constant.language.scala\",\"settings\":{\"foreground\":\"#7fbbb3\"}},{\"scope\":\"entity.name.import.scala\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"string.quoted.double.scala, string.quoted.single.scala, punctuation.definition.string.begin.scala, punctuation.definition.string.end.scala, string.quoted.double.interpolated.scala, string.quoted.single.interpolated.scala, string.quoted.triple.scala\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"entity.name.class, entity.other.inherited-class.scala\",\"settings\":{\"foreground\":\"#dbbc7f\"}},{\"scope\":\"keyword.declaration.stable.scala, keyword.other.arrow.scala\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"keyword.other.import.scala\",\"settings\":{\"foreground\":\"#e67e80\"}},{\"scope\":\"keyword.operator.navigation.groovy, meta.method.body.java, meta.definition.method.groovy, meta.definition.method.signature.java\",\"settings\":{\"foreground\":\"#d3c6aa\"}},{\"scope\":\"punctuation.separator.groovy\",\"settings\":{\"foreground\":\"#859289\"}},{\"scope\":\"keyword.other.import.groovy, keyword.other.package.groovy, keyword.other.import.static.groovy\",\"settings\":{\"foreground\":\"#e67e80\"}},{\"scope\":\"storage.type.def.groovy\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"variable.other.interpolated.groovy, meta.method.groovy\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"storage.modifier.import.groovy, storage.modifier.package.groovy\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"storage.type.annotation.groovy\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"keyword.type.go\",\"settings\":{\"foreground\":\"#e67e80\"}},{\"scope\":\"entity.name.package.go\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"keyword.import.go, keyword.package.go\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"entity.name.type.mod.rust\",\"settings\":{\"foreground\":\"#d3c6aa\"}},{\"scope\":\"keyword.operator.path.rust, keyword.operator.member-access.rust\",\"settings\":{\"foreground\":\"#859289\"}},{\"scope\":\"storage.type.rust\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"support.constant.core.rust\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"meta.attribute.rust, variable.language.rust, storage.type.module.rust\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"meta.function-call.swift, support.function.any-method.swift\",\"settings\":{\"foreground\":\"#d3c6aa\"}},{\"scope\":\"support.variable.swift\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"keyword.operator.class.php\",\"settings\":{\"foreground\":\"#d3c6aa\"}},{\"scope\":\"storage.type.trait.php\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"constant.language.php, support.other.namespace.php\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"storage.type.modifier.access.control.public.cpp, storage.type.modifier.access.control.private.cpp\",\"settings\":{\"foreground\":\"#7fbbb3\"}},{\"scope\":\"keyword.control.import.include.php, storage.type.php\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"meta.function-call.arguments.python\",\"settings\":{\"foreground\":\"#d3c6aa\"}},{\"scope\":\"punctuation.definition.decorator.python, punctuation.separator.period.python\",\"settings\":{\"foreground\":\"#859289\"}},{\"scope\":\"constant.language.python\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"keyword.control.import.python, keyword.control.import.from.python\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"constant.language.lua\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"entity.name.class.lua\",\"settings\":{\"foreground\":\"#7fbbb3\"}},{\"scope\":\"meta.function.method.with-arguments.ruby\",\"settings\":{\"foreground\":\"#d3c6aa\"}},{\"scope\":\"punctuation.separator.method.ruby\",\"settings\":{\"foreground\":\"#859289\"}},{\"scope\":\"keyword.control.pseudo-method.ruby, storage.type.variable.ruby\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"keyword.other.special-method.ruby\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"keyword.control.module.ruby, punctuation.definition.constant.ruby\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"string.regexp.character-class.ruby,string.regexp.interpolated.ruby,punctuation.definition.character-class.ruby,string.regexp.group.ruby, punctuation.section.regexp.ruby, punctuation.definition.group.ruby\",\"settings\":{\"foreground\":\"#dbbc7f\"}},{\"scope\":\"variable.other.constant.ruby\",\"settings\":{\"foreground\":\"#7fbbb3\"}},{\"scope\":\"keyword.other.arrow.haskell, keyword.other.big-arrow.haskell, keyword.other.double-colon.haskell\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"storage.type.haskell\",\"settings\":{\"foreground\":\"#dbbc7f\"}},{\"scope\":\"constant.other.haskell, string.quoted.double.haskell, string.quoted.single.haskell, punctuation.definition.string.begin.haskell, punctuation.definition.string.end.haskell\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"entity.name.function.haskell\",\"settings\":{\"foreground\":\"#7fbbb3\"}},{\"scope\":\"entity.name.namespace, meta.preprocessor.haskell\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"keyword.control.import.julia, keyword.control.export.julia\",\"settings\":{\"foreground\":\"#e67e80\"}},{\"scope\":\"keyword.storage.modifier.julia\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"constant.language.julia\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"support.function.macro.julia\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"keyword.other.period.elm\",\"settings\":{\"foreground\":\"#d3c6aa\"}},{\"scope\":\"storage.type.elm\",\"settings\":{\"foreground\":\"#dbbc7f\"}},{\"scope\":\"keyword.other.r\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"entity.name.function.r, variable.function.r\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"constant.language.r\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"entity.namespace.r\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"punctuation.separator.module-function.erlang, punctuation.section.directive.begin.erlang\",\"settings\":{\"foreground\":\"#859289\"}},{\"scope\":\"keyword.control.directive.erlang, keyword.control.directive.define.erlang\",\"settings\":{\"foreground\":\"#e67e80\"}},{\"scope\":\"entity.name.type.class.module.erlang\",\"settings\":{\"foreground\":\"#dbbc7f\"}},{\"scope\":\"string.quoted.double.erlang, string.quoted.single.erlang, punctuation.definition.string.begin.erlang, punctuation.definition.string.end.erlang\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"keyword.control.directive.export.erlang, keyword.control.directive.module.erlang, keyword.control.directive.import.erlang, keyword.control.directive.behaviour.erlang\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"variable.other.readwrite.module.elixir, punctuation.definition.variable.elixir\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"constant.language.elixir\",\"settings\":{\"foreground\":\"#7fbbb3\"}},{\"scope\":\"keyword.control.module.elixir\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"entity.name.type.value-signature.ocaml\",\"settings\":{\"foreground\":\"#d3c6aa\"}},{\"scope\":\"keyword.other.ocaml\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"constant.language.variant.ocaml\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"storage.type.sub.perl, storage.type.declare.routine.perl\",\"settings\":{\"foreground\":\"#e67e80\"}},{\"scope\":\"meta.function.lisp\",\"settings\":{\"foreground\":\"#d3c6aa\"}},{\"scope\":\"storage.type.function-type.lisp\",\"settings\":{\"foreground\":\"#e67e80\"}},{\"scope\":\"keyword.constant.lisp\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"entity.name.function.lisp\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"constant.keyword.clojure, support.variable.clojure, meta.definition.variable.clojure\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"entity.global.clojure\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"entity.name.function.clojure\",\"settings\":{\"foreground\":\"#7fbbb3\"}},{\"scope\":\"meta.scope.if-block.shell, meta.scope.group.shell\",\"settings\":{\"foreground\":\"#d3c6aa\"}},{\"scope\":\"support.function.builtin.shell, entity.name.function.shell\",\"settings\":{\"foreground\":\"#dbbc7f\"}},{\"scope\":\"string.quoted.double.shell, string.quoted.single.shell, punctuation.definition.string.begin.shell, punctuation.definition.string.end.shell, string.unquoted.heredoc.shell\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"keyword.control.heredoc-token.shell, variable.other.normal.shell, punctuation.definition.variable.shell, variable.other.special.shell, variable.other.positional.shell, variable.other.bracket.shell\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"support.function.builtin.fish\",\"settings\":{\"foreground\":\"#e67e80\"}},{\"scope\":\"support.function.unix.fish\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"variable.other.normal.fish, punctuation.definition.variable.fish, variable.other.fixed.fish, variable.other.special.fish\",\"settings\":{\"foreground\":\"#7fbbb3\"}},{\"scope\":\"string.quoted.double.fish, punctuation.definition.string.end.fish, punctuation.definition.string.begin.fish, string.quoted.single.fish\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"constant.character.escape.single.fish\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"punctuation.definition.variable.powershell\",\"settings\":{\"foreground\":\"#859289\"}},{\"scope\":\"entity.name.function.powershell, support.function.attribute.powershell, support.function.powershell\",\"settings\":{\"foreground\":\"#dbbc7f\"}},{\"scope\":\"string.quoted.single.powershell, string.quoted.double.powershell, punctuation.definition.string.begin.powershell, punctuation.definition.string.end.powershell, string.quoted.double.heredoc.powershell\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"variable.other.member.powershell\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"string.unquoted.alias.graphql\",\"settings\":{\"foreground\":\"#d3c6aa\"}},{\"scope\":\"keyword.type.graphql\",\"settings\":{\"foreground\":\"#e67e80\"}},{\"scope\":\"entity.name.fragment.graphql\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"entity.name.function.target.makefile\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"variable.other.makefile\",\"settings\":{\"foreground\":\"#dbbc7f\"}},{\"scope\":\"meta.scope.prerequisites.makefile\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"string.source.cmake\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"entity.source.cmake\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"storage.source.cmake\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"punctuation.definition.map.viml\",\"settings\":{\"foreground\":\"#859289\"}},{\"scope\":\"storage.type.map.viml\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"constant.character.map.viml, constant.character.map.key.viml\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"constant.character.map.special.viml\",\"settings\":{\"foreground\":\"#7fbbb3\"}},{\"scope\":\"constant.language.tmux, constant.numeric.tmux\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"entity.name.function.package-manager.dockerfile\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"keyword.operator.flag.dockerfile\",\"settings\":{\"foreground\":\"#dbbc7f\"}},{\"scope\":\"string.quoted.double.dockerfile, string.quoted.single.dockerfile\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"constant.character.escape.dockerfile\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"entity.name.type.base-image.dockerfile, entity.name.image.dockerfile\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"punctuation.definition.separator.diff\",\"settings\":{\"foreground\":\"#859289\"}},{\"scope\":\"markup.deleted.diff, punctuation.definition.deleted.diff\",\"settings\":{\"foreground\":\"#e67e80\"}},{\"scope\":\"meta.diff.range.context, punctuation.definition.range.diff\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"meta.diff.header.from-file\",\"settings\":{\"foreground\":\"#dbbc7f\"}},{\"scope\":\"markup.inserted.diff, punctuation.definition.inserted.diff\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"markup.changed.diff, punctuation.definition.changed.diff\",\"settings\":{\"foreground\":\"#7fbbb3\"}},{\"scope\":\"punctuation.definition.from-file.diff\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"entity.name.section.group-title.ini, punctuation.definition.entity.ini\",\"settings\":{\"foreground\":\"#e67e80\"}},{\"scope\":\"punctuation.separator.key-value.ini\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"string.quoted.double.ini, string.quoted.single.ini, punctuation.definition.string.begin.ini, punctuation.definition.string.end.ini\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"keyword.other.definition.ini\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"support.function.aggregate.sql\",\"settings\":{\"foreground\":\"#dbbc7f\"}},{\"scope\":\"string.quoted.single.sql, punctuation.definition.string.end.sql, punctuation.definition.string.begin.sql, string.quoted.double.sql\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"support.type.graphql\",\"settings\":{\"foreground\":\"#dbbc7f\"}},{\"scope\":\"variable.parameter.graphql\",\"settings\":{\"foreground\":\"#7fbbb3\"}},{\"scope\":\"constant.character.enum.graphql\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"punctuation.support.type.property-name.begin.json, punctuation.support.type.property-name.end.json, punctuation.separator.dictionary.key-value.json, punctuation.definition.string.begin.json, punctuation.definition.string.end.json, punctuation.separator.dictionary.pair.json, punctuation.separator.array.json\",\"settings\":{\"foreground\":\"#859289\"}},{\"scope\":\"support.type.property-name.json\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"string.quoted.double.json\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"punctuation.separator.key-value.mapping.yaml\",\"settings\":{\"foreground\":\"#859289\"}},{\"scope\":\"string.unquoted.plain.out.yaml, string.quoted.single.yaml, string.quoted.double.yaml, punctuation.definition.string.begin.yaml, punctuation.definition.string.end.yaml, string.unquoted.plain.in.yaml, string.unquoted.block.yaml\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"punctuation.definition.anchor.yaml, punctuation.definition.block.sequence.item.yaml\",\"settings\":{\"foreground\":\"#83c092\"}},{\"scope\":\"keyword.key.toml\",\"settings\":{\"foreground\":\"#e69875\"}},{\"scope\":\"string.quoted.single.basic.line.toml, string.quoted.single.literal.line.toml, punctuation.definition.keyValuePair.toml\",\"settings\":{\"foreground\":\"#a7c080\"}},{\"scope\":\"constant.other.boolean.toml\",\"settings\":{\"foreground\":\"#7fbbb3\"}},{\"scope\":\"entity.other.attribute-name.table.toml, punctuation.definition.table.toml, entity.other.attribute-name.table.array.toml, punctuation.definition.table.array.toml\",\"settings\":{\"foreground\":\"#d699b6\"}},{\"scope\":\"comment, string.comment, punctuation.definition.comment\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#859289\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BgYniUM_.js",
    "content": "const n=Object.freeze(JSON.parse('{\"displayName\":\"Diff\",\"name\":\"diff\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.separator.diff\"}},\"match\":\"^((\\\\\\\\*{15})|(={67})|(-{3}))$\\\\\\\\n?\",\"name\":\"meta.separator.diff\"},{\"match\":\"^\\\\\\\\d+(,\\\\\\\\d+)*(a|d|c)\\\\\\\\d+(,\\\\\\\\d+)*$\\\\\\\\n?\",\"name\":\"meta.diff.range.normal\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.range.diff\"},\"2\":{\"name\":\"meta.toc-list.line-number.diff\"},\"3\":{\"name\":\"punctuation.definition.range.diff\"}},\"match\":\"^(@@)\\\\\\\\s*(.+?)\\\\\\\\s*(@@)($\\\\\\\\n?)?\",\"name\":\"meta.diff.range.unified\"},{\"captures\":{\"3\":{\"name\":\"punctuation.definition.range.diff\"},\"4\":{\"name\":\"punctuation.definition.range.diff\"},\"6\":{\"name\":\"punctuation.definition.range.diff\"},\"7\":{\"name\":\"punctuation.definition.range.diff\"}},\"match\":\"^(((\\\\\\\\-{3}) .+ (\\\\\\\\-{4}))|((\\\\\\\\*{3}) .+ (\\\\\\\\*{4})))$\\\\\\\\n?\",\"name\":\"meta.diff.range.context\"},{\"match\":\"^diff --git a/.*$\\\\\\\\n?\",\"name\":\"meta.diff.header.git\"},{\"match\":\"^diff (-|\\\\\\\\S+\\\\\\\\s+\\\\\\\\S+).*$\\\\\\\\n?\",\"name\":\"meta.diff.header.command\"},{\"captures\":{\"4\":{\"name\":\"punctuation.definition.from-file.diff\"},\"6\":{\"name\":\"punctuation.definition.from-file.diff\"},\"7\":{\"name\":\"punctuation.definition.from-file.diff\"}},\"match\":\"(^(((-{3}) .+)|((\\\\\\\\*{3}) .+))$\\\\\\\\n?|^(={4}) .+(?= - ))\",\"name\":\"meta.diff.header.from-file\"},{\"captures\":{\"2\":{\"name\":\"punctuation.definition.to-file.diff\"},\"3\":{\"name\":\"punctuation.definition.to-file.diff\"},\"4\":{\"name\":\"punctuation.definition.to-file.diff\"}},\"match\":\"(^(\\\\\\\\+{3}) .+$\\\\\\\\n?| (-) .* (={4})$\\\\\\\\n?)\",\"name\":\"meta.diff.header.to-file\"},{\"captures\":{\"3\":{\"name\":\"punctuation.definition.inserted.diff\"},\"6\":{\"name\":\"punctuation.definition.inserted.diff\"}},\"match\":\"^(((>)( .*)?)|((\\\\\\\\+).*))$\\\\\\\\n?\",\"name\":\"markup.inserted.diff\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.changed.diff\"}},\"match\":\"^(!).*$\\\\\\\\n?\",\"name\":\"markup.changed.diff\"},{\"captures\":{\"3\":{\"name\":\"punctuation.definition.deleted.diff\"},\"6\":{\"name\":\"punctuation.definition.deleted.diff\"}},\"match\":\"^(((<)( .*)?)|((-).*))$\\\\\\\\n?\",\"name\":\"markup.deleted.diff\"},{\"begin\":\"^(#)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.diff\"}},\"comment\":\"Git produces unified diffs with embedded comments\\\\\"\",\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.number-sign.diff\"},{\"match\":\"^index [0-9a-f]{7,40}\\\\\\\\.\\\\\\\\.[0-9a-f]{7,40}.*$\\\\\\\\n?\",\"name\":\"meta.diff.index.git\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.key-value.diff\"},\"2\":{\"name\":\"meta.toc-list.file-name.diff\"}},\"match\":\"^Index(:) (.+)$\\\\\\\\n?\",\"name\":\"meta.diff.index\"},{\"match\":\"^Only in .*: .*$\\\\\\\\n?\",\"name\":\"meta.diff.only-in\"}],\"scopeName\":\"source.diff\"}')),e=[n];export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BiFfXF7O.js",
    "content": "import e from\"./COK4E0Yg.js\";const t=Object.freeze(JSON.parse(`{\"displayName\":\"SAS\",\"fileTypes\":[\"sas\"],\"foldingStartMarker\":\"(?i:(proc|data|%macro).*;$)\",\"foldingStopMarker\":\"(?i:(run|quit|%mend)\\\\\\\\s?);\",\"name\":\"sas\",\"patterns\":[{\"include\":\"#starComment\"},{\"include\":\"#blockComment\"},{\"include\":\"#macro\"},{\"include\":\"#constant\"},{\"include\":\"#quote\"},{\"include\":\"#operator\"},{\"begin\":\"\\\\\\\\b(?i:(data))\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.sas\"}},\"comment\":\"Begins a DATA step and provides names for any output SAS data sets, views, or programs.\",\"end\":\"(;)\",\"patterns\":[{\"include\":\"#blockComment\"},{\"include\":\"#dataSet\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.sas\"},\"2\":{\"name\":\"keyword.other.sas\"}},\"match\":\"(?i:(?:(stack|pgm|view|source)\\\\\\\\s?=\\\\\\\\s?)|(debug|nesting|nolist))\"}]},{\"begin\":\"\\\\\\\\b(?i:(set|update|modify|merge))\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.sas\"},\"2\":{\"name\":\"entity.name.class.sas\"},\"3\":{\"name\":\"entity.name.class.sas\"}},\"comment\":\"DATA set File-Handling Statements for DATA step\",\"end\":\"(;)\",\"patterns\":[{\"include\":\"#blockComment\"},{\"include\":\"#dataSet\"}]},{\"match\":\"(?i:\\\\\\\\b(if|while|until|for|do|end|then|else|run|quit|cancel|options)\\\\\\\\b)\",\"name\":\"keyword.control.sas\"},{\"captures\":{\"1\":{\"name\":\"support.class.sas\"},\"3\":{\"name\":\"entity.name.function.sas\"}},\"match\":\"(?i:(%(bquote|do|else|end|eval|global|goto|if|inc|include|index|input|length|let|list|local|lowcase|macro|mend|nrbquote|nrquote|nrstr|put|qscan|qsysfunc|quote|run|scan|str|substr|syscall|sysevalf|sysexec|sysfunc|sysrc|then|to|unquote|upcase|until|while|window)\\\\\\\\b))\\\\\\\\s*(\\\\\\\\w*)\",\"name\":\"keyword.other.sas\"},{\"begin\":\"(?i:\\\\\\\\b(proc\\\\\\\\s*(sql))\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.sas\"},\"2\":{\"name\":\"support.class.sas\"}},\"comment\":\"Looks like for this to work there must be a *name* as well as the patterns/include bit.\",\"end\":\"(?i:\\\\\\\\b(quit)\\\\\\\\s*;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.sas\"}},\"name\":\"meta.sql.sas\",\"patterns\":[{\"include\":\"#starComment\"},{\"include\":\"#blockComment\"},{\"include\":\"source.sql\"}]},{\"match\":\"(?i:\\\\\\\\b(by|label|format)\\\\\\\\b)\",\"name\":\"keyword.datastep.sas\"},{\"captures\":{\"1\":{\"name\":\"support.function.sas\"},\"2\":{\"name\":\"support.class.sas\"}},\"match\":\"(?i:\\\\\\\\b(proc (\\\\\\\\w+))\\\\\\\\b)\",\"name\":\"meta.function-call.sas\"},{\"match\":\"(?i:\\\\\\\\b(_n_|_error_)\\\\\\\\b)\",\"name\":\"variable.language.sas\"},{\"captures\":{\"1\":{\"name\":\"support.class.sas\"}},\"match\":\"\\\\\\\\b(?i:(_all_|_character_|_cmd_|_freq_|_i_|_infile_|_last_|_msg_|_null_|_numeric_|_temporary_|_type_|abort|abs|addr|adjrsq|airy|alpha|alter|altlog|altprint|and|arcos|array|arsin|as|atan|attrc|attrib|attrn|authserver|autoexec|awscontrol|awsdef|awsmenu|awsmenumerge|awstitle|backward|band|base|betainv|between|blocksize|blshift|bnot|bor|brshift|bufno|bufsize|bxor|by|byerr|byline|byte|calculated|call|cards|cards4|case|catcache|cbufno|cdf|ceil|center|cexist|change|chisq|cinv|class|cleanup|close|cnonct|cntllev|coalesce|codegen|col|collate|collin|column|comamid|comaux1|comaux2|comdef|compbl|compound|compress|config|continue|convert|cos|cosh|cpuid|create|cross|crosstab|css|curobs|cv|daccdb|daccdbsl|daccsl|daccsyd|dacctab|dairy|datalines|datalines4|date|datejul|datepart|datetime|day|dbcslang|dbcstype|dclose|ddm|delete|delimiter|depdb|depdbsl|depsl|depsyd|deptab|dequote|descending|descript|design=|device|dflang|dhms|dif|digamma|dim|dinfo|display|distinct|dkricond|dkrocond|dlm|dnum|do|dopen|doptname|doptnum|dread|drop|dropnote|dsname|dsnferr|echo|else|emaildlg|emailid|emailpw|emailserver|emailsys|encrypt|end|endsas|engine|eof|eov|erf|erfc|error|errorcheck|errors|exist|exp|fappend|fclose|fcol|fdelete|feedback|fetch|fetchobs|fexist|fget|file|fileclose|fileexist|filefmt|filename|fileref|filevar|finfo|finv|fipname|fipnamel|fipstate|first|firstobs|floor|fmterr|fmtsearch|fnonct|fnote|font|fontalias|footnote[1-9]?|fopen|foptname|foptnum|force|formatted|formchar|formdelim|formdlim|forward|fpoint|fpos|fput|fread|frewind|frlen|from|fsep|full|fullstimer|fuzz|fwrite|gaminv|gamma|getoption|getvarc|getvarn|go|goto|group|gwindow|hbar|hbound|helpenv|helploc|hms|honorappearance|hosthelp|hostprint|hour|hpct|html|hvar|ibessel|ibr|id|if|index|indexc|indexw|infile|informat|initcmd|initstmt|inner|input|inputc|inputn|inr|insert|int|intck|intnx|into|intrr|invaliddata|irr|is|jbessel|join|juldate|keep|kentb|kurtosis|label|lag|last|lbound|leave|left|length|levels|lgamma|lib|libname|library|libref|line|linesize|link|list|log|log10|log2|logpdf|logpmf|logsdf|lostcard|lowcase|lrecl|ls|macro|macrogen|maps|mautosource|max|maxdec|maxr|mdy|mean|measures|median|memtype|merge|merror|min|minute|missing|missover|mlogic|mod|mode|model|modify|month|mopen|mort|mprint|mrecall|msglevel|msymtabmax|mvarsize|myy|n|nest|netpv|new|news|nmiss|no|nobatch|nobs|nocaps|nocardimage|nocenter|nocharcode|nocmdmac|nocol|nocum|nodate|nodbcs|nodetails|nodmr|nodms|nodmsbatch|nodup|nodupkey|noduplicates|noechoauto|noequals|noerrorabend|noexitwindows|nofullstimer|noicon|noimplmac|noint|nolist|noloadlist|nomiss|nomlogic|nomprint|nomrecall|nomsgcase|nomstored|nomultenvappl|nonotes|nonumber|noobs|noovp|nopad|nopercent|noprint|noprintinit|normal|norow|norsasuser|nosetinit|nosource|nosource2|nosplash|nosymbolgen|note|notes|notitle|notitles|notsorted|noverbose|noxsync|noxwait|npv|null|number|numkeys|nummousekeys|nway|obs|ods|on|open|option|order|ordinal|otherwise|out|outer|outp=|output|over|ovp|p(1|5|10|25|50|75|90|95|99)|pad|pad2|page|pageno|pagesize|paired|parm|parmcards|path|pathdll|pathname|pdf|peek|peekc|pfkey|pmf|point|poisson|poke|position|printer|probbeta|probbnml|probchi|probf|probgam|probhypr|probit|probnegb|probnorm|probsig|probt|procleave|project|prt|propcase|prxmatch|prxparse|prxchange|prxposn|ps|put|putc|putn|pw|pwreq|qtr|quote|r|ranbin|rancau|ranexp|rangam|range|ranks|rannor|ranpoi|rantbl|rantri|ranuni|read|recfm|register|regr|remote|remove|rename|repeat|replace|resolve|retain|return|reuse|reverse|rewind|right|round|rsquare|rtf|rtrace|rtraceloc|s|s2|samploc|sasautos|sascontrol|sasfrscr|sashelp|sasmsg|sasmstore|sasscript|sasuser|saving|scan|sdf|second|select|selection|separated|seq|serror|set|setcomm|setot|sign|simple|sin|sinh|siteinfo|skewness|skip|sle|sls|sortedby|sortpgm|sortseq|sortsize|soundex|source2|spedis|splashlocation|split|spool|sqrt|start|std|stderr|stdin|stfips|stimer|stname|stnamel|stop|stopover|strip|subgroup|subpopn|substr|sum|sumwgt|symbol|symbolgen|symget|symput|sysget|sysin|sysleave|sysmsg|sysparm|sysprint|sysprintfont|sysprod|sysrc|system|t|table|tables|tan|tanh|tapeclose|tbufsize|terminal|test|then|time|timepart|tinv|title[1-9]?|tnonct|to|today|tol|tooldef|totper|transformout|translate|trantab|tranwrd|trigamma|trim|trimn|trunc|truncover|type|unformatted|uniform|union|until|upcase|update|user|usericon|uss|validate|value|var|varfmt|varinfmt|varlabel|varlen|varname|varnum|varray|varrayx|vartype|verify|vformat|vformatd|vformatdx|vformatn|vformatnx|vformatw|vformatwx|vformatx|vinarray|vinarrayx|vinformat|vinformatd|vinformatdx|vinformatn|vinformatnx|vinformatw|vinformatwx|vinformatx|vlabel|vlabelx|vlength|vlengthx|vname|vnamex|vnferr|vtype|vtypex|weekday|weight|when|where|while|wincharset|window|work|workinit|workterm|write|wsum|wsumx|x|xsync|xwait|year|yearcutoff|yes|yyq|zipfips|zipname|zipnamel|zipstate))\\\\\\\\b\",\"name\":\"support.function.sas\"}],\"repository\":{\"blockComment\":{\"patterns\":[{\"begin\":\"\\\\\\\\/\\\\\\\\*\",\"end\":\"\\\\\\\\*\\\\\\\\/\",\"name\":\"comment.block.slashstar.sas\"}]},\"constant\":{\"patterns\":[{\"comment\":\"numeric constant\",\"match\":\"(?<![&\\\\\\\\}])\\\\\\\\b[0-9]*\\\\\\\\.?[0-9]+([eEdD][-+]?[0-9]+)?\\\\\\\\b\",\"name\":\"constant.numeric.sas\"},{\"comment\":\"single quote numeric-type constant\",\"match\":\"(')([^']+)(')(dt|[dt])\",\"name\":\"constant.numeric.quote.single.sas\"},{\"comment\":\"double quote numeric-type constant\",\"match\":\"(\\\\\")([^\\\\\"]+)(\\\\\")(dt|[dt])\",\"name\":\"constant.numeric.quote.double.sas\"}]},\"dataSet\":{\"patterns\":[{\"begin\":\"((\\\\\\\\w+)\\\\\\\\.)?(\\\\\\\\w+)\\\\\\\\s?\\\\\\\\(\",\"beginCaptures\":{\"2\":{\"name\":\"entity.name.class.libref.sas\"},\"3\":{\"name\":\"entity.name.class.dsname.sas\"}},\"comment\":\"data set with options\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#dataSetOptions\"},{\"include\":\"#blockComment\"},{\"include\":\"#macro\"},{\"include\":\"#constant\"},{\"include\":\"#quote\"},{\"include\":\"#operator\"}]},{\"captures\":{\"2\":{\"name\":\"entity.name.class.libref.sas\"},\"3\":{\"name\":\"entity.name.class.dsname.sas\"}},\"comment\":\"data set without options\",\"match\":\"\\\\\\\\b((\\\\\\\\w+)\\\\\\\\.)?(\\\\\\\\w+)\\\\\\\\b\"}]},\"dataSetOptions\":{\"patterns\":[{\"match\":\"(?<=\\\\\\\\s|\\\\\\\\(|\\\\\\\\))(?i:ALTER|BUFNO|BUFSIZE|CNTLLEV|COMPRESS|DLDMGACTION|ENCRYPT|ENCRYPTKEY|EXTENDOBSCOUNTER|GENMAX|GENNUM|INDEX|LABEL|OBSBUF|OUTREP|PW|PWREQ|READ|REPEMPTY|REPLACE|REUSE|ROLE|SORTEDBY|SPILL|TOBSNO|TYPE|WRITE|FILECLOSE|FIRSTOBS|IN|OBS|POINTOBS|WHERE|WHEREUP|IDXNAME|IDXWHERE|DROP|KEEP|RENAME)\\\\\\\\s?=\",\"name\":\"keyword.other.sas\"}]},\"macro\":{\"patterns\":[{\"match\":\"(&+(?i:[a-z_]([a-z0-9_]+)?)(\\\\\\\\.+)?)\\\\\\\\b\",\"name\":\"variable.other.macro.sas\"}]},\"operator\":{\"patterns\":[{\"match\":\"([\\\\\\\\+\\\\\\\\-\\\\\\\\*\\\\\\\\^\\\\\\\\/])\",\"name\":\"keyword.operator.arithmetic.sas\"},{\"match\":\"\\\\\\\\b(?i:(eq|ne|gt|lt|ge|le|in|not|&|and|or|min|max))\\\\\\\\b\",\"name\":\"keyword.operator.comparison.sas\"},{\"match\":\"([¬<>^~]?=(:)?|>|<|\\\\\\\\||!|¦|¬|^|~|<>|><|\\\\\\\\|\\\\\\\\|)\",\"name\":\"keyword.operator.sas\"}]},\"quote\":{\"patterns\":[{\"begin\":\"(?<!%)(')\",\"comment\":\"single quoted string block\",\"end\":\"(')([bx])?\",\"name\":\"string.quoted.single.sas\"},{\"begin\":\"(\\\\\")\",\"comment\":\"double quoted string block\",\"end\":\"(\\\\\")([bx])?\",\"name\":\"string.quoted.double.sas\"}]},\"starComment\":{\"patterns\":[{\"include\":\"#blockcomment\"},{\"begin\":\"(?<=;)[\\\\\\\\s%]*\\\\\\\\*\",\"end\":\";\",\"name\":\"comment.line.inline.star.sas\"},{\"begin\":\"^[\\\\\\\\s%]*\\\\\\\\*\",\"end\":\";\",\"name\":\"comment.line.start.sas\"}]}},\"scopeName\":\"source.sas\",\"embeddedLangs\":[\"sql\"]}`)),s=[...e,t];export{s as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Bid6LQhH.js",
    "content": "import e from\"./ySlJ1b_l.js\";const t=Object.freeze(JSON.parse(`{\"displayName\":\"QML\",\"name\":\"qml\",\"patterns\":[{\"match\":\"\\\\\\\\bpragma\\\\\\\\s+Singleton\\\\\\\\b\",\"name\":\"constant.language.qml\"},{\"include\":\"#import-statements\"},{\"include\":\"#object\"},{\"include\":\"#comment\"}],\"repository\":{\"attributes-dictionary\":{\"patterns\":[{\"include\":\"#typename\"},{\"include\":\"#keywords\"},{\"include\":\"#identifier\"},{\"include\":\"#attributes-value\"},{\"include\":\"#comment\"}]},\"attributes-value\":{\"patterns\":[{\"begin\":\"(?<=\\\\\\\\w)\\\\\\\\s*\\\\\\\\:\\\\\\\\s*(?=[A-Z]\\\\\\\\w*\\\\\\\\s*\\\\\\\\{)\",\"description\":\"A QML object as value.\",\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#object\"}]},{\"begin\":\"(?<=\\\\\\\\w)\\\\\\\\s*\\\\\\\\:\\\\\\\\s*\\\\\\\\[\",\"description\":\"A list as value.\",\"end\":\"\\\\\\\\](.*)$\",\"endCaptures\":{\"0\":{\"patterns\":[{\"include\":\"source.js\"}]}},\"patterns\":[{\"include\":\"#object\"},{\"include\":\"source.js\"}]},{\"begin\":\"(?<=\\\\\\\\w)\\\\\\\\s*\\\\\\\\:(?=\\\\\\\\s*\\\\\\\\{?\\\\\\\\s*$)\",\"description\":\"A block of JavaScript code as value.\",\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"contentName\":\"meta.embedded.block.js\",\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"source.js\"}]}]},{\"begin\":\"(?<=\\\\\\\\w)\\\\\\\\s*\\\\\\\\:\",\"contentName\":\"meta.embedded.line.js\",\"description\":\"A JavaScript expression as value.\",\"end\":\";|$|(?=\\\\\\\\})\",\"patterns\":[{\"include\":\"source.js\"}]}]},\"comment\":{\"patterns\":[{\"begin\":\"(\\\\\\\\/\\\\\\\\/:)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.qml.tr\"}},\"end\":\"$\",\"patterns\":[{\"include\":\"#comment-contents\"}]},{\"begin\":\"(\\\\\\\\/\\\\\\\\/[~|=])\\\\\\\\s*([A-Za-z_$][\\\\\\\\w$.\\\\\\\\[\\\\\\\\]]*)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.qml.tr\"},\"2\":{\"name\":\"variable.other.qml.tr\"}},\"end\":\"$\",\"patterns\":[{\"include\":\"#comment-contents\"}]},{\"begin\":\"(\\\\\\\\/\\\\\\\\/)\",\"beginCaptures\":{\"1\":{\"name\":\"comment.line.double-slash.qml\"}},\"end\":\"$\",\"patterns\":[{\"include\":\"#comment-contents\"}]},{\"begin\":\"(\\\\\\\\/\\\\\\\\*)\",\"beginCaptures\":{\"1\":{\"name\":\"comment.line.double-slash.qml\"}},\"end\":\"(\\\\\\\\*\\\\\\\\/)\",\"endCaptures\":{\"1\":{\"name\":\"comment.line.double-slash.qml\"}},\"patterns\":[{\"include\":\"#comment-contents\"}]}]},\"comment-contents\":{\"patterns\":[{\"match\":\"\\\\\\\\b(TODO|DEBUG|XXX)\\\\\\\\b\",\"name\":\"constant.language.qml\"},{\"match\":\"\\\\\\\\b(BUG|FIXME)\\\\\\\\b\",\"name\":\"invalid\"},{\"match\":\".\",\"name\":\"comment.line.double-slash.qml\"}]},\"data-types\":{\"patterns\":[{\"description\":\"QML basic data types.\",\"match\":\"\\\\\\\\b(bool|double|enum|int|list|real|string|url|variant|var)\\\\\\\\b\",\"name\":\"storage.type.qml\"},{\"description\":\"QML modules basic data types.\",\"match\":\"\\\\\\\\b(date|point|rect|size)\\\\\\\\b\",\"name\":\"support.type.qml\"}]},\"group-attributes\":{\"patterns\":[{\"begin\":\"\\\\\\\\b([_a-zA-Z]\\\\\\\\w*)\\\\\\\\s*\\\\\\\\{\",\"beginCaptures\":{\"1\":{\"name\":\"variable.parameter.qml\"}},\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"$self\"},{\"include\":\"#comment\"},{\"include\":\"#attributes-dictionary\"}]}]},\"identifier\":{\"description\":\"The name of variable, key, signal and etc.\",\"patterns\":[{\"match\":\"\\\\\\\\b[_a-zA-Z]\\\\\\\\w*\\\\\\\\b\",\"name\":\"variable.parameter.qml\"}]},\"import-statements\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(import)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.import.qml\"}},\"end\":\"$\",\"patterns\":[{\"match\":\"\\\\\\\\bas\\\\\\\\b\",\"name\":\"keyword.control.as.qml\"},{\"include\":\"#string\"},{\"description\":\"<Version.Number>\",\"match\":\"\\\\\\\\b\\\\\\\\d+\\\\\\\\.\\\\\\\\d+\\\\\\\\b\",\"name\":\"constant.numeric.qml\"},{\"description\":\"as <Namespace>\",\"match\":\"(?<=as)\\\\\\\\s+[A-Z]\\\\\\\\w*\\\\\\\\b\",\"name\":\"entity.name.type.qml\"},{\"include\":\"#identifier\"},{\"include\":\"#comment\"}]}]},\"keywords\":{\"patterns\":[{\"include\":\"#data-types\"},{\"include\":\"#reserved-words\"}]},\"method-attributes\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(function)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.qml\"}},\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"begin\":\"([_a-zA-Z]\\\\\\\\w*)\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.qml\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#identifier\"}]},{\"begin\":\"\\\\\\\\{\",\"contentName\":\"meta.embedded.block.js\",\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"source.js\"}]}]}]},\"object\":{\"patterns\":[{\"begin\":\"\\\\\\\\b([A-Z]\\\\\\\\w*)\\\\\\\\s*\\\\\\\\{\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.type.qml\"}},\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"$self\"},{\"include\":\"#group-attributes\"},{\"include\":\"#method-attributes\"},{\"include\":\"#signal-attributes\"},{\"include\":\"#comment\"},{\"include\":\"#attributes-dictionary\"}]}]},\"reserved-words\":{\"patterns\":[{\"description\":\"Attribute modifier.\",\"match\":\"\\\\\\\\b(default|alias|readonly|required)\\\\\\\\b\",\"name\":\"storage.modifier.qml\"},{\"match\":\"\\\\\\\\b(property|id|on)\\\\\\\\b\",\"name\":\"keyword.other.qml\"},{\"description\":\"Special words for signal handlers including property change.\",\"match\":\"\\\\\\\\b(on[A-Z]\\\\\\\\w*(Changed)?)\\\\\\\\b\",\"name\":\"keyword.control.qml\"}]},\"signal-attributes\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(signal)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.qml\"}},\"end\":\"$\",\"patterns\":[{\"begin\":\"([_a-zA-Z]\\\\\\\\w*)\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.qml\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#keywords\"},{\"include\":\"#identifier\"}]},{\"include\":\"#identifier\"},{\"include\":\"#comment\"}]}]},\"string\":{\"description\":\"String literal with double or signle quote.\",\"patterns\":[{\"begin\":\"'\",\"end\":\"'\",\"name\":\"string.quoted.single.qml\"},{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.qml\"}]},\"typename\":{\"description\":\"The name of type. First letter must be uppercase.\",\"patterns\":[{\"match\":\"\\\\\\\\b[A-Z]\\\\\\\\w*\\\\\\\\b\",\"name\":\"entity.name.type.qml\"}]}},\"scopeName\":\"source.qml\",\"embeddedLangs\":[\"javascript\"]}`)),a=[...e,t];export{a as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BjABl1g7.js",
    "content": "const n=Object.freeze(JSON.parse(`{\"displayName\":\"INI\",\"name\":\"ini\",\"patterns\":[{\"begin\":\"(^[ \\\\\\\\t]+)?(?=#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.ini\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.ini\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.number-sign.ini\"}]},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=;)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.ini\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\";\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.ini\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.semicolon.ini\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.other.definition.ini\"},\"2\":{\"name\":\"punctuation.separator.key-value.ini\"}},\"match\":\"\\\\\\\\b([a-zA-Z0-9_.-]+)\\\\\\\\b\\\\\\\\s*(=)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.ini\"},\"3\":{\"name\":\"punctuation.definition.entity.ini\"}},\"match\":\"^(\\\\\\\\[)(.*?)(\\\\\\\\])\",\"name\":\"entity.name.section.group-title.ini\"},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ini\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ini\"}},\"name\":\"string.quoted.single.ini\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.ini\"}]},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ini\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ini\"}},\"name\":\"string.quoted.double.ini\"}],\"scopeName\":\"source.ini\",\"aliases\":[\"properties\"]}`)),i=[n];export{i as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BjQB5zDj.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"dotEnv\",\"name\":\"dotenv\",\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#line-comment\"}]}},\"comment\":\"Full Line Comment\",\"match\":\"^\\\\\\\\s?(#.*$)\\\\\\\\n\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#key\"}]},\"2\":{\"name\":\"keyword.operator.assignment.dotenv\"},\"3\":{\"name\":\"property.value.dotenv\",\"patterns\":[{\"include\":\"#line-comment\"},{\"include\":\"#double-quoted-string\"},{\"include\":\"#single-quoted-string\"},{\"include\":\"#interpolation\"}]}},\"comment\":\"ENV entry\",\"match\":\"^\\\\\\\\s?(.*?)\\\\\\\\s?(\\\\\\\\=)(.*)$\"}],\"repository\":{\"double-quoted-string\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#interpolation\"},{\"include\":\"#escape-characters\"}]}},\"comment\":\"Double Quoted String\",\"match\":\"\\\\\"(.*)\\\\\"\",\"name\":\"string.quoted.double.dotenv\"},\"escape-characters\":{\"comment\":\"Escape characters\",\"match\":\"\\\\\\\\\\\\\\\\[nrtfb\\\\\"'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\u[0123456789ABCDEF]{4}\",\"name\":\"constant.character.escape.dotenv\"},\"interpolation\":{\"captures\":{\"1\":{\"name\":\"keyword.interpolation.begin.dotenv\"},\"2\":{\"name\":\"variable.interpolation.dotenv\"},\"3\":{\"name\":\"keyword.interpolation.end.dotenv\"}},\"comment\":\"Interpolation (variable substitution)\",\"match\":\"(\\\\\\\\$\\\\\\\\{)(.*)(\\\\\\\\})\"},\"key\":{\"captures\":{\"1\":{\"name\":\"keyword.key.export.dotenv\"},\"2\":{\"name\":\"variable.key.dotenv\",\"patterns\":[{\"include\":\"#variable\"}]}},\"comment\":\"Key\",\"match\":\"(export\\\\\\\\s)?(.*)\"},\"line-comment\":{\"comment\":\"Comment\",\"match\":\"#.*$\",\"name\":\"comment.line.dotenv\"},\"single-quoted-string\":{\"comment\":\"Single Quoted String\",\"match\":\"'(.*)'\",\"name\":\"string.quoted.single.dotenv\"},\"variable\":{\"comment\":\"env variable\",\"match\":\"[a-zA-Z_]+[a-zA-Z0-9_]*\"}},\"scopeName\":\"source.dotenv\"}`)),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BjtZpFsH.js",
    "content": "import{a1 as Et}from\"./CU_MfyYc.js\";/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var Lt=Object.defineProperty,Ot=Object.getOwnPropertyDescriptor,Nt=Object.getOwnPropertyNames,Rt=Object.prototype.hasOwnProperty,Mt=(e,r,i,n)=>{if(r&&typeof r==\"object\"||typeof r==\"function\")for(let t of Nt(r))!Rt.call(e,t)&&t!==i&&Lt(e,t,{get:()=>r[t],enumerable:!(n=Ot(r,t))||n.enumerable});return e},Dt=(e,r,i)=>(Mt(e,r,\"default\"),i),f={};Dt(f,Et);var Ft=2*60*1e3,Ut=class{constructor(e){this._defaults=e,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){if(!this._worker)return;Date.now()-this._lastUsedTime>Ft&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||(this._worker=f.editor.createWebWorker({moduleId:\"vs/language/json/jsonWorker\",label:this._defaults.languageId,createData:{languageSettings:this._defaults.diagnosticsOptions,languageId:this._defaults.languageId,enableSchemaRequest:this._defaults.diagnosticsOptions.enableSchemaRequest}}),this._client=this._worker.getProxy()),this._client}getLanguageServiceWorker(...e){let r;return this._getClient().then(i=>{r=i}).then(i=>{if(this._worker)return this._worker.withSyncedResources(e)}).then(i=>r)}},le;(function(e){function r(i){return typeof i==\"string\"}e.is=r})(le||(le={}));var Q;(function(e){function r(i){return typeof i==\"string\"}e.is=r})(Q||(Q={}));var fe;(function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647;function r(i){return typeof i==\"number\"&&e.MIN_VALUE<=i&&i<=e.MAX_VALUE}e.is=r})(fe||(fe={}));var W;(function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647;function r(i){return typeof i==\"number\"&&e.MIN_VALUE<=i&&i<=e.MAX_VALUE}e.is=r})(W||(W={}));var O;(function(e){function r(n,t){return n===Number.MAX_VALUE&&(n=W.MAX_VALUE),t===Number.MAX_VALUE&&(t=W.MAX_VALUE),{line:n,character:t}}e.create=r;function i(n){let t=n;return a.objectLiteral(t)&&a.uinteger(t.line)&&a.uinteger(t.character)}e.is=i})(O||(O={}));var m;(function(e){function r(n,t,o,s){if(a.uinteger(n)&&a.uinteger(t)&&a.uinteger(o)&&a.uinteger(s))return{start:O.create(n,t),end:O.create(o,s)};if(O.is(n)&&O.is(t))return{start:n,end:t};throw new Error(`Range#create called with invalid arguments[${n}, ${t}, ${o}, ${s}]`)}e.create=r;function i(n){let t=n;return a.objectLiteral(t)&&O.is(t.start)&&O.is(t.end)}e.is=i})(m||(m={}));var H;(function(e){function r(n,t){return{uri:n,range:t}}e.create=r;function i(n){let t=n;return a.objectLiteral(t)&&m.is(t.range)&&(a.string(t.uri)||a.undefined(t.uri))}e.is=i})(H||(H={}));var de;(function(e){function r(n,t,o,s){return{targetUri:n,targetRange:t,targetSelectionRange:o,originSelectionRange:s}}e.create=r;function i(n){let t=n;return a.objectLiteral(t)&&m.is(t.targetRange)&&a.string(t.targetUri)&&m.is(t.targetSelectionRange)&&(m.is(t.originSelectionRange)||a.undefined(t.originSelectionRange))}e.is=i})(de||(de={}));var Y;(function(e){function r(n,t,o,s){return{red:n,green:t,blue:o,alpha:s}}e.create=r;function i(n){const t=n;return a.objectLiteral(t)&&a.numberRange(t.red,0,1)&&a.numberRange(t.green,0,1)&&a.numberRange(t.blue,0,1)&&a.numberRange(t.alpha,0,1)}e.is=i})(Y||(Y={}));var ge;(function(e){function r(n,t){return{range:n,color:t}}e.create=r;function i(n){const t=n;return a.objectLiteral(t)&&m.is(t.range)&&Y.is(t.color)}e.is=i})(ge||(ge={}));var pe;(function(e){function r(n,t,o){return{label:n,textEdit:t,additionalTextEdits:o}}e.create=r;function i(n){const t=n;return a.objectLiteral(t)&&a.string(t.label)&&(a.undefined(t.textEdit)||T.is(t))&&(a.undefined(t.additionalTextEdits)||a.typedArray(t.additionalTextEdits,T.is))}e.is=i})(pe||(pe={}));var P;(function(e){e.Comment=\"comment\",e.Imports=\"imports\",e.Region=\"region\"})(P||(P={}));var ve;(function(e){function r(n,t,o,s,u,g){const c={startLine:n,endLine:t};return a.defined(o)&&(c.startCharacter=o),a.defined(s)&&(c.endCharacter=s),a.defined(u)&&(c.kind=u),a.defined(g)&&(c.collapsedText=g),c}e.create=r;function i(n){const t=n;return a.objectLiteral(t)&&a.uinteger(t.startLine)&&a.uinteger(t.startLine)&&(a.undefined(t.startCharacter)||a.uinteger(t.startCharacter))&&(a.undefined(t.endCharacter)||a.uinteger(t.endCharacter))&&(a.undefined(t.kind)||a.string(t.kind))}e.is=i})(ve||(ve={}));var G;(function(e){function r(n,t){return{location:n,message:t}}e.create=r;function i(n){let t=n;return a.defined(t)&&H.is(t.location)&&a.string(t.message)}e.is=i})(G||(G={}));var F;(function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4})(F||(F={}));var me;(function(e){e.Unnecessary=1,e.Deprecated=2})(me||(me={}));var he;(function(e){function r(i){const n=i;return a.objectLiteral(n)&&a.string(n.href)}e.is=r})(he||(he={}));var z;(function(e){function r(n,t,o,s,u,g){let c={range:n,message:t};return a.defined(o)&&(c.severity=o),a.defined(s)&&(c.code=s),a.defined(u)&&(c.source=u),a.defined(g)&&(c.relatedInformation=g),c}e.create=r;function i(n){var t;let o=n;return a.defined(o)&&m.is(o.range)&&a.string(o.message)&&(a.number(o.severity)||a.undefined(o.severity))&&(a.integer(o.code)||a.string(o.code)||a.undefined(o.code))&&(a.undefined(o.codeDescription)||a.string((t=o.codeDescription)===null||t===void 0?void 0:t.href))&&(a.string(o.source)||a.undefined(o.source))&&(a.undefined(o.relatedInformation)||a.typedArray(o.relatedInformation,G.is))}e.is=i})(z||(z={}));var U;(function(e){function r(n,t,...o){let s={title:n,command:t};return a.defined(o)&&o.length>0&&(s.arguments=o),s}e.create=r;function i(n){let t=n;return a.defined(t)&&a.string(t.title)&&a.string(t.command)}e.is=i})(U||(U={}));var T;(function(e){function r(o,s){return{range:o,newText:s}}e.replace=r;function i(o,s){return{range:{start:o,end:o},newText:s}}e.insert=i;function n(o){return{range:o,newText:\"\"}}e.del=n;function t(o){const s=o;return a.objectLiteral(s)&&a.string(s.newText)&&m.is(s.range)}e.is=t})(T||(T={}));var Z;(function(e){function r(n,t,o){const s={label:n};return t!==void 0&&(s.needsConfirmation=t),o!==void 0&&(s.description=o),s}e.create=r;function i(n){const t=n;return a.objectLiteral(t)&&a.string(t.label)&&(a.boolean(t.needsConfirmation)||t.needsConfirmation===void 0)&&(a.string(t.description)||t.description===void 0)}e.is=i})(Z||(Z={}));var j;(function(e){function r(i){const n=i;return a.string(n)}e.is=r})(j||(j={}));var _e;(function(e){function r(o,s,u){return{range:o,newText:s,annotationId:u}}e.replace=r;function i(o,s,u){return{range:{start:o,end:o},newText:s,annotationId:u}}e.insert=i;function n(o,s){return{range:o,newText:\"\",annotationId:s}}e.del=n;function t(o){const s=o;return T.is(s)&&(Z.is(s.annotationId)||j.is(s.annotationId))}e.is=t})(_e||(_e={}));var K;(function(e){function r(n,t){return{textDocument:n,edits:t}}e.create=r;function i(n){let t=n;return a.defined(t)&&re.is(t.textDocument)&&Array.isArray(t.edits)}e.is=i})(K||(K={}));var C;(function(e){function r(n,t,o){let s={kind:\"create\",uri:n};return t!==void 0&&(t.overwrite!==void 0||t.ignoreIfExists!==void 0)&&(s.options=t),o!==void 0&&(s.annotationId=o),s}e.create=r;function i(n){let t=n;return t&&t.kind===\"create\"&&a.string(t.uri)&&(t.options===void 0||(t.options.overwrite===void 0||a.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||a.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||j.is(t.annotationId))}e.is=i})(C||(C={}));var ee;(function(e){function r(n,t,o,s){let u={kind:\"rename\",oldUri:n,newUri:t};return o!==void 0&&(o.overwrite!==void 0||o.ignoreIfExists!==void 0)&&(u.options=o),s!==void 0&&(u.annotationId=s),u}e.create=r;function i(n){let t=n;return t&&t.kind===\"rename\"&&a.string(t.oldUri)&&a.string(t.newUri)&&(t.options===void 0||(t.options.overwrite===void 0||a.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||a.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||j.is(t.annotationId))}e.is=i})(ee||(ee={}));var te;(function(e){function r(n,t,o){let s={kind:\"delete\",uri:n};return t!==void 0&&(t.recursive!==void 0||t.ignoreIfNotExists!==void 0)&&(s.options=t),o!==void 0&&(s.annotationId=o),s}e.create=r;function i(n){let t=n;return t&&t.kind===\"delete\"&&a.string(t.uri)&&(t.options===void 0||(t.options.recursive===void 0||a.boolean(t.options.recursive))&&(t.options.ignoreIfNotExists===void 0||a.boolean(t.options.ignoreIfNotExists)))&&(t.annotationId===void 0||j.is(t.annotationId))}e.is=i})(te||(te={}));var ne;(function(e){function r(i){let n=i;return n&&(n.changes!==void 0||n.documentChanges!==void 0)&&(n.documentChanges===void 0||n.documentChanges.every(t=>a.string(t.kind)?C.is(t)||ee.is(t)||te.is(t):K.is(t)))}e.is=r})(ne||(ne={}));var ke;(function(e){function r(n){return{uri:n}}e.create=r;function i(n){let t=n;return a.defined(t)&&a.string(t.uri)}e.is=i})(ke||(ke={}));var be;(function(e){function r(n,t){return{uri:n,version:t}}e.create=r;function i(n){let t=n;return a.defined(t)&&a.string(t.uri)&&a.integer(t.version)}e.is=i})(be||(be={}));var re;(function(e){function r(n,t){return{uri:n,version:t}}e.create=r;function i(n){let t=n;return a.defined(t)&&a.string(t.uri)&&(t.version===null||a.integer(t.version))}e.is=i})(re||(re={}));var we;(function(e){function r(n,t,o,s){return{uri:n,languageId:t,version:o,text:s}}e.create=r;function i(n){let t=n;return a.defined(t)&&a.string(t.uri)&&a.string(t.languageId)&&a.integer(t.version)&&a.string(t.text)}e.is=i})(we||(we={}));var ie;(function(e){e.PlainText=\"plaintext\",e.Markdown=\"markdown\";function r(i){const n=i;return n===e.PlainText||n===e.Markdown}e.is=r})(ie||(ie={}));var S;(function(e){function r(i){const n=i;return a.objectLiteral(i)&&ie.is(n.kind)&&a.string(n.value)}e.is=r})(S||(S={}));var h;(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(h||(h={}));var oe;(function(e){e.PlainText=1,e.Snippet=2})(oe||(oe={}));var Ae;(function(e){e.Deprecated=1})(Ae||(Ae={}));var Ie;(function(e){function r(n,t,o){return{newText:n,insert:t,replace:o}}e.create=r;function i(n){const t=n;return t&&a.string(t.newText)&&m.is(t.insert)&&m.is(t.replace)}e.is=i})(Ie||(Ie={}));var Ee;(function(e){e.asIs=1,e.adjustIndentation=2})(Ee||(Ee={}));var Le;(function(e){function r(i){const n=i;return n&&(a.string(n.detail)||n.detail===void 0)&&(a.string(n.description)||n.description===void 0)}e.is=r})(Le||(Le={}));var Oe;(function(e){function r(i){return{label:i}}e.create=r})(Oe||(Oe={}));var Ne;(function(e){function r(i,n){return{items:i||[],isIncomplete:!!n}}e.create=r})(Ne||(Ne={}));var X;(function(e){function r(n){return n.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,\"\\\\$&\")}e.fromPlainText=r;function i(n){const t=n;return a.string(t)||a.objectLiteral(t)&&a.string(t.language)&&a.string(t.value)}e.is=i})(X||(X={}));var Re;(function(e){function r(i){let n=i;return!!n&&a.objectLiteral(n)&&(S.is(n.contents)||X.is(n.contents)||a.typedArray(n.contents,X.is))&&(i.range===void 0||m.is(i.range))}e.is=r})(Re||(Re={}));var Me;(function(e){function r(i,n){return n?{label:i,documentation:n}:{label:i}}e.create=r})(Me||(Me={}));var De;(function(e){function r(i,n,...t){let o={label:i};return a.defined(n)&&(o.documentation=n),a.defined(t)?o.parameters=t:o.parameters=[],o}e.create=r})(De||(De={}));var V;(function(e){e.Text=1,e.Read=2,e.Write=3})(V||(V={}));var Fe;(function(e){function r(i,n){let t={range:i};return a.number(n)&&(t.kind=n),t}e.create=r})(Fe||(Fe={}));var _;(function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26})(_||(_={}));var Ue;(function(e){e.Deprecated=1})(Ue||(Ue={}));var Te;(function(e){function r(i,n,t,o,s){let u={name:i,kind:n,location:{uri:o,range:t}};return s&&(u.containerName=s),u}e.create=r})(Te||(Te={}));var je;(function(e){function r(i,n,t,o){return o!==void 0?{name:i,kind:n,location:{uri:t,range:o}}:{name:i,kind:n,location:{uri:t}}}e.create=r})(je||(je={}));var xe;(function(e){function r(n,t,o,s,u,g){let c={name:n,detail:t,kind:o,range:s,selectionRange:u};return g!==void 0&&(c.children=g),c}e.create=r;function i(n){let t=n;return t&&a.string(t.name)&&a.number(t.kind)&&m.is(t.range)&&m.is(t.selectionRange)&&(t.detail===void 0||a.string(t.detail))&&(t.deprecated===void 0||a.boolean(t.deprecated))&&(t.children===void 0||Array.isArray(t.children))&&(t.tags===void 0||Array.isArray(t.tags))}e.is=i})(xe||(xe={}));var ye;(function(e){e.Empty=\"\",e.QuickFix=\"quickfix\",e.Refactor=\"refactor\",e.RefactorExtract=\"refactor.extract\",e.RefactorInline=\"refactor.inline\",e.RefactorRewrite=\"refactor.rewrite\",e.Source=\"source\",e.SourceOrganizeImports=\"source.organizeImports\",e.SourceFixAll=\"source.fixAll\"})(ye||(ye={}));var q;(function(e){e.Invoked=1,e.Automatic=2})(q||(q={}));var Pe;(function(e){function r(n,t,o){let s={diagnostics:n};return t!=null&&(s.only=t),o!=null&&(s.triggerKind=o),s}e.create=r;function i(n){let t=n;return a.defined(t)&&a.typedArray(t.diagnostics,z.is)&&(t.only===void 0||a.typedArray(t.only,a.string))&&(t.triggerKind===void 0||t.triggerKind===q.Invoked||t.triggerKind===q.Automatic)}e.is=i})(Pe||(Pe={}));var Ve;(function(e){function r(n,t,o){let s={title:n},u=!0;return typeof t==\"string\"?(u=!1,s.kind=t):U.is(t)?s.command=t:s.edit=t,u&&o!==void 0&&(s.kind=o),s}e.create=r;function i(n){let t=n;return t&&a.string(t.title)&&(t.diagnostics===void 0||a.typedArray(t.diagnostics,z.is))&&(t.kind===void 0||a.string(t.kind))&&(t.edit!==void 0||t.command!==void 0)&&(t.command===void 0||U.is(t.command))&&(t.isPreferred===void 0||a.boolean(t.isPreferred))&&(t.edit===void 0||ne.is(t.edit))}e.is=i})(Ve||(Ve={}));var Se;(function(e){function r(n,t){let o={range:n};return a.defined(t)&&(o.data=t),o}e.create=r;function i(n){let t=n;return a.defined(t)&&m.is(t.range)&&(a.undefined(t.command)||U.is(t.command))}e.is=i})(Se||(Se={}));var Be;(function(e){function r(n,t){return{tabSize:n,insertSpaces:t}}e.create=r;function i(n){let t=n;return a.defined(t)&&a.uinteger(t.tabSize)&&a.boolean(t.insertSpaces)}e.is=i})(Be||(Be={}));var We;(function(e){function r(n,t,o){return{range:n,target:t,data:o}}e.create=r;function i(n){let t=n;return a.defined(t)&&m.is(t.range)&&(a.undefined(t.target)||a.string(t.target))}e.is=i})(We||(We={}));var He;(function(e){function r(n,t){return{range:n,parent:t}}e.create=r;function i(n){let t=n;return a.objectLiteral(t)&&m.is(t.range)&&(t.parent===void 0||e.is(t.parent))}e.is=i})(He||(He={}));var ze;(function(e){e.namespace=\"namespace\",e.type=\"type\",e.class=\"class\",e.enum=\"enum\",e.interface=\"interface\",e.struct=\"struct\",e.typeParameter=\"typeParameter\",e.parameter=\"parameter\",e.variable=\"variable\",e.property=\"property\",e.enumMember=\"enumMember\",e.event=\"event\",e.function=\"function\",e.method=\"method\",e.macro=\"macro\",e.keyword=\"keyword\",e.modifier=\"modifier\",e.comment=\"comment\",e.string=\"string\",e.number=\"number\",e.regexp=\"regexp\",e.operator=\"operator\",e.decorator=\"decorator\"})(ze||(ze={}));var Xe;(function(e){e.declaration=\"declaration\",e.definition=\"definition\",e.readonly=\"readonly\",e.static=\"static\",e.deprecated=\"deprecated\",e.abstract=\"abstract\",e.async=\"async\",e.modification=\"modification\",e.documentation=\"documentation\",e.defaultLibrary=\"defaultLibrary\"})(Xe||(Xe={}));var qe;(function(e){function r(i){const n=i;return a.objectLiteral(n)&&(n.resultId===void 0||typeof n.resultId==\"string\")&&Array.isArray(n.data)&&(n.data.length===0||typeof n.data[0]==\"number\")}e.is=r})(qe||(qe={}));var Je;(function(e){function r(n,t){return{range:n,text:t}}e.create=r;function i(n){const t=n;return t!=null&&m.is(t.range)&&a.string(t.text)}e.is=i})(Je||(Je={}));var $e;(function(e){function r(n,t,o){return{range:n,variableName:t,caseSensitiveLookup:o}}e.create=r;function i(n){const t=n;return t!=null&&m.is(t.range)&&a.boolean(t.caseSensitiveLookup)&&(a.string(t.variableName)||t.variableName===void 0)}e.is=i})($e||($e={}));var Qe;(function(e){function r(n,t){return{range:n,expression:t}}e.create=r;function i(n){const t=n;return t!=null&&m.is(t.range)&&(a.string(t.expression)||t.expression===void 0)}e.is=i})(Qe||(Qe={}));var Ye;(function(e){function r(n,t){return{frameId:n,stoppedLocation:t}}e.create=r;function i(n){const t=n;return a.defined(t)&&m.is(n.stoppedLocation)}e.is=i})(Ye||(Ye={}));var se;(function(e){e.Type=1,e.Parameter=2;function r(i){return i===1||i===2}e.is=r})(se||(se={}));var ae;(function(e){function r(n){return{value:n}}e.create=r;function i(n){const t=n;return a.objectLiteral(t)&&(t.tooltip===void 0||a.string(t.tooltip)||S.is(t.tooltip))&&(t.location===void 0||H.is(t.location))&&(t.command===void 0||U.is(t.command))}e.is=i})(ae||(ae={}));var Ge;(function(e){function r(n,t,o){const s={position:n,label:t};return o!==void 0&&(s.kind=o),s}e.create=r;function i(n){const t=n;return a.objectLiteral(t)&&O.is(t.position)&&(a.string(t.label)||a.typedArray(t.label,ae.is))&&(t.kind===void 0||se.is(t.kind))&&t.textEdits===void 0||a.typedArray(t.textEdits,T.is)&&(t.tooltip===void 0||a.string(t.tooltip)||S.is(t.tooltip))&&(t.paddingLeft===void 0||a.boolean(t.paddingLeft))&&(t.paddingRight===void 0||a.boolean(t.paddingRight))}e.is=i})(Ge||(Ge={}));var Ze;(function(e){function r(i){return{kind:\"snippet\",value:i}}e.createSnippet=r})(Ze||(Ze={}));var Ke;(function(e){function r(i,n,t,o){return{insertText:i,filterText:n,range:t,command:o}}e.create=r})(Ke||(Ke={}));var Ce;(function(e){function r(i){return{items:i}}e.create=r})(Ce||(Ce={}));var et;(function(e){e.Invoked=0,e.Automatic=1})(et||(et={}));var tt;(function(e){function r(i,n){return{range:i,text:n}}e.create=r})(tt||(tt={}));var nt;(function(e){function r(i,n){return{triggerKind:i,selectedCompletionInfo:n}}e.create=r})(nt||(nt={}));var rt;(function(e){function r(i){const n=i;return a.objectLiteral(n)&&Q.is(n.uri)&&a.string(n.name)}e.is=r})(rt||(rt={}));var it;(function(e){function r(o,s,u,g){return new Tt(o,s,u,g)}e.create=r;function i(o){let s=o;return!!(a.defined(s)&&a.string(s.uri)&&(a.undefined(s.languageId)||a.string(s.languageId))&&a.uinteger(s.lineCount)&&a.func(s.getText)&&a.func(s.positionAt)&&a.func(s.offsetAt))}e.is=i;function n(o,s){let u=o.getText(),g=t(s,(v,d)=>{let k=v.range.start.line-d.range.start.line;return k===0?v.range.start.character-d.range.start.character:k}),c=u.length;for(let v=g.length-1;v>=0;v--){let d=g[v],k=o.offsetAt(d.range.start),p=o.offsetAt(d.range.end);if(p<=c)u=u.substring(0,k)+d.newText+u.substring(p,u.length);else throw new Error(\"Overlapping edit\");c=k}return u}e.applyEdits=n;function t(o,s){if(o.length<=1)return o;const u=o.length/2|0,g=o.slice(0,u),c=o.slice(u);t(g,s),t(c,s);let v=0,d=0,k=0;for(;v<g.length&&d<c.length;)s(g[v],c[d])<=0?o[k++]=g[v++]:o[k++]=c[d++];for(;v<g.length;)o[k++]=g[v++];for(;d<c.length;)o[k++]=c[d++];return o}})(it||(it={}));var Tt=class{constructor(e,r,i,n){this._uri=e,this._languageId=r,this._version=i,this._content=n,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let r=this.offsetAt(e.start),i=this.offsetAt(e.end);return this._content.substring(r,i)}return this._content}update(e,r){this._content=e.text,this._version=r,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let e=[],r=this._content,i=!0;for(let n=0;n<r.length;n++){i&&(e.push(n),i=!1);let t=r.charAt(n);i=t===\"\\r\"||t===`\n`,t===\"\\r\"&&n+1<r.length&&r.charAt(n+1)===`\n`&&n++}i&&r.length>0&&e.push(r.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let r=this.getLineOffsets(),i=0,n=r.length;if(n===0)return O.create(0,e);for(;i<n;){let o=Math.floor((i+n)/2);r[o]>e?n=o:i=o+1}let t=i-1;return O.create(t,e-r[t])}offsetAt(e){let r=this.getLineOffsets();if(e.line>=r.length)return this._content.length;if(e.line<0)return 0;let i=r[e.line],n=e.line+1<r.length?r[e.line+1]:this._content.length;return Math.max(Math.min(i+e.character,n),i)}get lineCount(){return this.getLineOffsets().length}},a;(function(e){const r=Object.prototype.toString;function i(p){return typeof p<\"u\"}e.defined=i;function n(p){return typeof p>\"u\"}e.undefined=n;function t(p){return p===!0||p===!1}e.boolean=t;function o(p){return r.call(p)===\"[object String]\"}e.string=o;function s(p){return r.call(p)===\"[object Number]\"}e.number=s;function u(p,N,J){return r.call(p)===\"[object Number]\"&&N<=p&&p<=J}e.numberRange=u;function g(p){return r.call(p)===\"[object Number]\"&&-2147483648<=p&&p<=2147483647}e.integer=g;function c(p){return r.call(p)===\"[object Number]\"&&0<=p&&p<=2147483647}e.uinteger=c;function v(p){return r.call(p)===\"[object Function]\"}e.func=v;function d(p){return p!==null&&typeof p==\"object\"}e.objectLiteral=d;function k(p,N){return Array.isArray(p)&&p.every(N)}e.typedArray=k})(a||(a={}));var jt=class{constructor(e,r,i){this._languageId=e,this._worker=r,this._disposables=[],this._listener=Object.create(null);const n=o=>{let s=o.getLanguageId();if(s!==this._languageId)return;let u;this._listener[o.uri.toString()]=o.onDidChangeContent(()=>{window.clearTimeout(u),u=window.setTimeout(()=>this._doValidate(o.uri,s),500)}),this._doValidate(o.uri,s)},t=o=>{f.editor.setModelMarkers(o,this._languageId,[]);let s=o.uri.toString(),u=this._listener[s];u&&(u.dispose(),delete this._listener[s])};this._disposables.push(f.editor.onDidCreateModel(n)),this._disposables.push(f.editor.onWillDisposeModel(t)),this._disposables.push(f.editor.onDidChangeModelLanguage(o=>{t(o.model),n(o.model)})),this._disposables.push(i(o=>{f.editor.getModels().forEach(s=>{s.getLanguageId()===this._languageId&&(t(s),n(s))})})),this._disposables.push({dispose:()=>{f.editor.getModels().forEach(t);for(let o in this._listener)this._listener[o].dispose()}}),f.editor.getModels().forEach(n)}dispose(){this._disposables.forEach(e=>e&&e.dispose()),this._disposables.length=0}_doValidate(e,r){this._worker(e).then(i=>i.doValidation(e.toString())).then(i=>{const n=i.map(o=>yt(e,o));let t=f.editor.getModel(e);t&&t.getLanguageId()===r&&f.editor.setModelMarkers(t,r,n)}).then(void 0,i=>{console.error(i)})}};function xt(e){switch(e){case F.Error:return f.MarkerSeverity.Error;case F.Warning:return f.MarkerSeverity.Warning;case F.Information:return f.MarkerSeverity.Info;case F.Hint:return f.MarkerSeverity.Hint;default:return f.MarkerSeverity.Info}}function yt(e,r){let i=typeof r.code==\"number\"?String(r.code):r.code;return{severity:xt(r.severity),startLineNumber:r.range.start.line+1,startColumn:r.range.start.character+1,endLineNumber:r.range.end.line+1,endColumn:r.range.end.character+1,message:r.message,code:i,source:r.source}}var Pt=class{constructor(e,r){this._worker=e,this._triggerCharacters=r}get triggerCharacters(){return this._triggerCharacters}provideCompletionItems(e,r,i,n){const t=e.uri;return this._worker(t).then(o=>o.doComplete(t.toString(),R(r))).then(o=>{if(!o)return;const s=e.getWordUntilPosition(r),u=new f.Range(r.lineNumber,s.startColumn,r.lineNumber,s.endColumn),g=o.items.map(c=>{const v={label:c.label,insertText:c.insertText||c.label,sortText:c.sortText,filterText:c.filterText,documentation:c.documentation,detail:c.detail,command:Bt(c.command),range:u,kind:St(c.kind)};return c.textEdit&&(Vt(c.textEdit)?v.range={insert:w(c.textEdit.insert),replace:w(c.textEdit.replace)}:v.range=w(c.textEdit.range),v.insertText=c.textEdit.newText),c.additionalTextEdits&&(v.additionalTextEdits=c.additionalTextEdits.map(B)),c.insertTextFormat===oe.Snippet&&(v.insertTextRules=f.languages.CompletionItemInsertTextRule.InsertAsSnippet),v});return{isIncomplete:o.isIncomplete,suggestions:g}})}};function R(e){if(e)return{character:e.column-1,line:e.lineNumber-1}}function pt(e){if(e)return{start:{line:e.startLineNumber-1,character:e.startColumn-1},end:{line:e.endLineNumber-1,character:e.endColumn-1}}}function w(e){if(e)return new f.Range(e.start.line+1,e.start.character+1,e.end.line+1,e.end.character+1)}function Vt(e){return typeof e.insert<\"u\"&&typeof e.replace<\"u\"}function St(e){const r=f.languages.CompletionItemKind;switch(e){case h.Text:return r.Text;case h.Method:return r.Method;case h.Function:return r.Function;case h.Constructor:return r.Constructor;case h.Field:return r.Field;case h.Variable:return r.Variable;case h.Class:return r.Class;case h.Interface:return r.Interface;case h.Module:return r.Module;case h.Property:return r.Property;case h.Unit:return r.Unit;case h.Value:return r.Value;case h.Enum:return r.Enum;case h.Keyword:return r.Keyword;case h.Snippet:return r.Snippet;case h.Color:return r.Color;case h.File:return r.File;case h.Reference:return r.Reference}return r.Property}function B(e){if(e)return{range:w(e.range),text:e.newText}}function Bt(e){return e&&e.command===\"editor.action.triggerSuggest\"?{id:e.command,title:e.title,arguments:e.arguments}:void 0}var Wt=class{constructor(e){this._worker=e}provideHover(e,r,i){let n=e.uri;return this._worker(n).then(t=>t.doHover(n.toString(),R(r))).then(t=>{if(t)return{range:w(t.range),contents:zt(t.contents)}})}};function Ht(e){return e&&typeof e==\"object\"&&typeof e.kind==\"string\"}function ot(e){return typeof e==\"string\"?{value:e}:Ht(e)?e.kind===\"plaintext\"?{value:e.value.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,\"\\\\$&\")}:{value:e.value}:{value:\"```\"+e.language+`\n`+e.value+\"\\n```\\n\"}}function zt(e){if(e)return Array.isArray(e)?e.map(ot):[ot(e)]}var hn=class{constructor(e){this._worker=e}provideDocumentHighlights(e,r,i){const n=e.uri;return this._worker(n).then(t=>t.findDocumentHighlights(n.toString(),R(r))).then(t=>{if(t)return t.map(o=>({range:w(o.range),kind:Xt(o.kind)}))})}};function Xt(e){switch(e){case V.Read:return f.languages.DocumentHighlightKind.Read;case V.Write:return f.languages.DocumentHighlightKind.Write;case V.Text:return f.languages.DocumentHighlightKind.Text}return f.languages.DocumentHighlightKind.Text}var _n=class{constructor(e){this._worker=e}provideDefinition(e,r,i){const n=e.uri;return this._worker(n).then(t=>t.findDefinition(n.toString(),R(r))).then(t=>{if(t)return[vt(t)]})}};function vt(e){return{uri:f.Uri.parse(e.uri),range:w(e.range)}}var kn=class{constructor(e){this._worker=e}provideReferences(e,r,i,n){const t=e.uri;return this._worker(t).then(o=>o.findReferences(t.toString(),R(r))).then(o=>{if(o)return o.map(vt)})}},bn=class{constructor(e){this._worker=e}provideRenameEdits(e,r,i,n){const t=e.uri;return this._worker(t).then(o=>o.doRename(t.toString(),R(r),i)).then(o=>qt(o))}};function qt(e){if(!e||!e.changes)return;let r=[];for(let i in e.changes){const n=f.Uri.parse(i);for(let t of e.changes[i])r.push({resource:n,versionId:void 0,textEdit:{range:w(t.range),text:t.newText}})}return{edits:r}}var Jt=class{constructor(e){this._worker=e}provideDocumentSymbols(e,r){const i=e.uri;return this._worker(i).then(n=>n.findDocumentSymbols(i.toString())).then(n=>{if(n)return n.map(t=>$t(t)?mt(t):{name:t.name,detail:\"\",containerName:t.containerName,kind:ht(t.kind),range:w(t.location.range),selectionRange:w(t.location.range),tags:[]})})}};function $t(e){return\"children\"in e}function mt(e){return{name:e.name,detail:e.detail??\"\",kind:ht(e.kind),range:w(e.range),selectionRange:w(e.selectionRange),tags:e.tags??[],children:(e.children??[]).map(r=>mt(r))}}function ht(e){let r=f.languages.SymbolKind;switch(e){case _.File:return r.File;case _.Module:return r.Module;case _.Namespace:return r.Namespace;case _.Package:return r.Package;case _.Class:return r.Class;case _.Method:return r.Method;case _.Property:return r.Property;case _.Field:return r.Field;case _.Constructor:return r.Constructor;case _.Enum:return r.Enum;case _.Interface:return r.Interface;case _.Function:return r.Function;case _.Variable:return r.Variable;case _.Constant:return r.Constant;case _.String:return r.String;case _.Number:return r.Number;case _.Boolean:return r.Boolean;case _.Array:return r.Array}return r.Function}var wn=class{constructor(e){this._worker=e}provideLinks(e,r){const i=e.uri;return this._worker(i).then(n=>n.findDocumentLinks(i.toString())).then(n=>{if(n)return{links:n.map(t=>({range:w(t.range),url:t.target}))}})}},Qt=class{constructor(e){this._worker=e}provideDocumentFormattingEdits(e,r,i){const n=e.uri;return this._worker(n).then(t=>t.format(n.toString(),null,_t(r)).then(o=>{if(!(!o||o.length===0))return o.map(B)}))}},Yt=class{constructor(e){this._worker=e,this.canFormatMultipleRanges=!1}provideDocumentRangeFormattingEdits(e,r,i,n){const t=e.uri;return this._worker(t).then(o=>o.format(t.toString(),pt(r),_t(i)).then(s=>{if(!(!s||s.length===0))return s.map(B)}))}};function _t(e){return{tabSize:e.tabSize,insertSpaces:e.insertSpaces}}var Gt=class{constructor(e){this._worker=e}provideDocumentColors(e,r){const i=e.uri;return this._worker(i).then(n=>n.findDocumentColors(i.toString())).then(n=>{if(n)return n.map(t=>({color:t.color,range:w(t.range)}))})}provideColorPresentations(e,r,i){const n=e.uri;return this._worker(n).then(t=>t.getColorPresentations(n.toString(),r.color,pt(r.range))).then(t=>{if(t)return t.map(o=>{let s={label:o.label};return o.textEdit&&(s.textEdit=B(o.textEdit)),o.additionalTextEdits&&(s.additionalTextEdits=o.additionalTextEdits.map(B)),s})})}},Zt=class{constructor(e){this._worker=e}provideFoldingRanges(e,r,i){const n=e.uri;return this._worker(n).then(t=>t.getFoldingRanges(n.toString(),r)).then(t=>{if(t)return t.map(o=>{const s={start:o.startLine+1,end:o.endLine+1};return typeof o.kind<\"u\"&&(s.kind=Kt(o.kind)),s})})}};function Kt(e){switch(e){case P.Comment:return f.languages.FoldingRangeKind.Comment;case P.Imports:return f.languages.FoldingRangeKind.Imports;case P.Region:return f.languages.FoldingRangeKind.Region}}var Ct=class{constructor(e){this._worker=e}provideSelectionRanges(e,r,i){const n=e.uri;return this._worker(n).then(t=>t.getSelectionRanges(n.toString(),r.map(R))).then(t=>{if(t)return t.map(o=>{const s=[];for(;o;)s.push({range:w(o.range)}),o=o.parent;return s})})}};function en(e,r=!1){const i=e.length;let n=0,t=\"\",o=0,s=16,u=0,g=0,c=0,v=0,d=0;function k(l,A){let L=0,I=0;for(;L<l;){let b=e.charCodeAt(n);if(b>=48&&b<=57)I=I*16+b-48;else if(b>=65&&b<=70)I=I*16+b-65+10;else if(b>=97&&b<=102)I=I*16+b-97+10;else break;n++,L++}return L<l&&(I=-1),I}function p(l){n=l,t=\"\",o=0,s=16,d=0}function N(){let l=n;if(e.charCodeAt(n)===48)n++;else for(n++;n<e.length&&M(e.charCodeAt(n));)n++;if(n<e.length&&e.charCodeAt(n)===46)if(n++,n<e.length&&M(e.charCodeAt(n)))for(n++;n<e.length&&M(e.charCodeAt(n));)n++;else return d=3,e.substring(l,n);let A=n;if(n<e.length&&(e.charCodeAt(n)===69||e.charCodeAt(n)===101))if(n++,(n<e.length&&e.charCodeAt(n)===43||e.charCodeAt(n)===45)&&n++,n<e.length&&M(e.charCodeAt(n))){for(n++;n<e.length&&M(e.charCodeAt(n));)n++;A=n}else d=3;return e.substring(l,A)}function J(){let l=\"\",A=n;for(;;){if(n>=i){l+=e.substring(A,n),d=2;break}const L=e.charCodeAt(n);if(L===34){l+=e.substring(A,n),n++;break}if(L===92){if(l+=e.substring(A,n),n++,n>=i){d=2;break}switch(e.charCodeAt(n++)){case 34:l+='\"';break;case 92:l+=\"\\\\\";break;case 47:l+=\"/\";break;case 98:l+=\"\\b\";break;case 102:l+=\"\\f\";break;case 110:l+=`\n`;break;case 114:l+=\"\\r\";break;case 116:l+=\"\t\";break;case 117:const b=k(4);b>=0?l+=String.fromCharCode(b):d=4;break;default:d=5}A=n;continue}if(L>=0&&L<=31)if(x(L)){l+=e.substring(A,n),d=2;break}else d=6;n++}return l}function ce(){if(t=\"\",d=0,o=n,g=u,v=c,n>=i)return o=i,s=17;let l=e.charCodeAt(n);if($(l)){do n++,t+=String.fromCharCode(l),l=e.charCodeAt(n);while($(l));return s=15}if(x(l))return n++,t+=String.fromCharCode(l),l===13&&e.charCodeAt(n)===10&&(n++,t+=`\n`),u++,c=n,s=14;switch(l){case 123:return n++,s=1;case 125:return n++,s=2;case 91:return n++,s=3;case 93:return n++,s=4;case 58:return n++,s=6;case 44:return n++,s=5;case 34:return n++,t=J(),s=10;case 47:const A=n-1;if(e.charCodeAt(n+1)===47){for(n+=2;n<i&&!x(e.charCodeAt(n));)n++;return t=e.substring(A,n),s=12}if(e.charCodeAt(n+1)===42){n+=2;const L=i-1;let I=!1;for(;n<L;){const b=e.charCodeAt(n);if(b===42&&e.charCodeAt(n+1)===47){n+=2,I=!0;break}n++,x(b)&&(b===13&&e.charCodeAt(n)===10&&n++,u++,c=n)}return I||(n++,d=1),t=e.substring(A,n),s=13}return t+=String.fromCharCode(l),n++,s=16;case 45:if(t+=String.fromCharCode(l),n++,n===i||!M(e.charCodeAt(n)))return s=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return t+=N(),s=11;default:for(;n<i&&At(l);)n++,l=e.charCodeAt(n);if(o!==n){switch(t=e.substring(o,n),t){case\"true\":return s=8;case\"false\":return s=9;case\"null\":return s=7}return s=16}return t+=String.fromCharCode(l),n++,s=16}}function At(l){if($(l)||x(l))return!1;switch(l){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}function It(){let l;do l=ce();while(l>=12&&l<=15);return l}return{setPosition:p,getPosition:()=>n,scan:r?It:ce,getToken:()=>s,getTokenValue:()=>t,getTokenOffset:()=>o,getTokenLength:()=>n-o,getTokenStartLine:()=>g,getTokenStartCharacter:()=>o-v,getTokenError:()=>d}}function $(e){return e===32||e===9}function x(e){return e===10||e===13}function M(e){return e>=48&&e<=57}var st;(function(e){e[e.lineFeed=10]=\"lineFeed\",e[e.carriageReturn=13]=\"carriageReturn\",e[e.space=32]=\"space\",e[e._0=48]=\"_0\",e[e._1=49]=\"_1\",e[e._2=50]=\"_2\",e[e._3=51]=\"_3\",e[e._4=52]=\"_4\",e[e._5=53]=\"_5\",e[e._6=54]=\"_6\",e[e._7=55]=\"_7\",e[e._8=56]=\"_8\",e[e._9=57]=\"_9\",e[e.a=97]=\"a\",e[e.b=98]=\"b\",e[e.c=99]=\"c\",e[e.d=100]=\"d\",e[e.e=101]=\"e\",e[e.f=102]=\"f\",e[e.g=103]=\"g\",e[e.h=104]=\"h\",e[e.i=105]=\"i\",e[e.j=106]=\"j\",e[e.k=107]=\"k\",e[e.l=108]=\"l\",e[e.m=109]=\"m\",e[e.n=110]=\"n\",e[e.o=111]=\"o\",e[e.p=112]=\"p\",e[e.q=113]=\"q\",e[e.r=114]=\"r\",e[e.s=115]=\"s\",e[e.t=116]=\"t\",e[e.u=117]=\"u\",e[e.v=118]=\"v\",e[e.w=119]=\"w\",e[e.x=120]=\"x\",e[e.y=121]=\"y\",e[e.z=122]=\"z\",e[e.A=65]=\"A\",e[e.B=66]=\"B\",e[e.C=67]=\"C\",e[e.D=68]=\"D\",e[e.E=69]=\"E\",e[e.F=70]=\"F\",e[e.G=71]=\"G\",e[e.H=72]=\"H\",e[e.I=73]=\"I\",e[e.J=74]=\"J\",e[e.K=75]=\"K\",e[e.L=76]=\"L\",e[e.M=77]=\"M\",e[e.N=78]=\"N\",e[e.O=79]=\"O\",e[e.P=80]=\"P\",e[e.Q=81]=\"Q\",e[e.R=82]=\"R\",e[e.S=83]=\"S\",e[e.T=84]=\"T\",e[e.U=85]=\"U\",e[e.V=86]=\"V\",e[e.W=87]=\"W\",e[e.X=88]=\"X\",e[e.Y=89]=\"Y\",e[e.Z=90]=\"Z\",e[e.asterisk=42]=\"asterisk\",e[e.backslash=92]=\"backslash\",e[e.closeBrace=125]=\"closeBrace\",e[e.closeBracket=93]=\"closeBracket\",e[e.colon=58]=\"colon\",e[e.comma=44]=\"comma\",e[e.dot=46]=\"dot\",e[e.doubleQuote=34]=\"doubleQuote\",e[e.minus=45]=\"minus\",e[e.openBrace=123]=\"openBrace\",e[e.openBracket=91]=\"openBracket\",e[e.plus=43]=\"plus\",e[e.slash=47]=\"slash\",e[e.formFeed=12]=\"formFeed\",e[e.tab=9]=\"tab\"})(st||(st={}));new Array(20).fill(0).map((e,r)=>\" \".repeat(r));var D=200;new Array(D).fill(0).map((e,r)=>`\n`+\" \".repeat(r)),new Array(D).fill(0).map((e,r)=>\"\\r\"+\" \".repeat(r)),new Array(D).fill(0).map((e,r)=>`\\r\n`+\" \".repeat(r)),new Array(D).fill(0).map((e,r)=>`\n`+\"\t\".repeat(r)),new Array(D).fill(0).map((e,r)=>\"\\r\"+\"\t\".repeat(r)),new Array(D).fill(0).map((e,r)=>`\\r\n`+\"\t\".repeat(r));var at;(function(e){e.DEFAULT={allowTrailingComma:!1}})(at||(at={}));var tn=en,ut;(function(e){e[e.None=0]=\"None\",e[e.UnexpectedEndOfComment=1]=\"UnexpectedEndOfComment\",e[e.UnexpectedEndOfString=2]=\"UnexpectedEndOfString\",e[e.UnexpectedEndOfNumber=3]=\"UnexpectedEndOfNumber\",e[e.InvalidUnicode=4]=\"InvalidUnicode\",e[e.InvalidEscapeCharacter=5]=\"InvalidEscapeCharacter\",e[e.InvalidCharacter=6]=\"InvalidCharacter\"})(ut||(ut={}));var ct;(function(e){e[e.OpenBraceToken=1]=\"OpenBraceToken\",e[e.CloseBraceToken=2]=\"CloseBraceToken\",e[e.OpenBracketToken=3]=\"OpenBracketToken\",e[e.CloseBracketToken=4]=\"CloseBracketToken\",e[e.CommaToken=5]=\"CommaToken\",e[e.ColonToken=6]=\"ColonToken\",e[e.NullKeyword=7]=\"NullKeyword\",e[e.TrueKeyword=8]=\"TrueKeyword\",e[e.FalseKeyword=9]=\"FalseKeyword\",e[e.StringLiteral=10]=\"StringLiteral\",e[e.NumericLiteral=11]=\"NumericLiteral\",e[e.LineCommentTrivia=12]=\"LineCommentTrivia\",e[e.BlockCommentTrivia=13]=\"BlockCommentTrivia\",e[e.LineBreakTrivia=14]=\"LineBreakTrivia\",e[e.Trivia=15]=\"Trivia\",e[e.Unknown=16]=\"Unknown\",e[e.EOF=17]=\"EOF\"})(ct||(ct={}));var lt;(function(e){e[e.InvalidSymbol=1]=\"InvalidSymbol\",e[e.InvalidNumberFormat=2]=\"InvalidNumberFormat\",e[e.PropertyNameExpected=3]=\"PropertyNameExpected\",e[e.ValueExpected=4]=\"ValueExpected\",e[e.ColonExpected=5]=\"ColonExpected\",e[e.CommaExpected=6]=\"CommaExpected\",e[e.CloseBraceExpected=7]=\"CloseBraceExpected\",e[e.CloseBracketExpected=8]=\"CloseBracketExpected\",e[e.EndOfFileExpected=9]=\"EndOfFileExpected\",e[e.InvalidCommentToken=10]=\"InvalidCommentToken\",e[e.UnexpectedEndOfComment=11]=\"UnexpectedEndOfComment\",e[e.UnexpectedEndOfString=12]=\"UnexpectedEndOfString\",e[e.UnexpectedEndOfNumber=13]=\"UnexpectedEndOfNumber\",e[e.InvalidUnicode=14]=\"InvalidUnicode\",e[e.InvalidEscapeCharacter=15]=\"InvalidEscapeCharacter\",e[e.InvalidCharacter=16]=\"InvalidCharacter\"})(lt||(lt={}));function nn(e){return{getInitialState:()=>new bt(null,null,!1,null),tokenize:(r,i)=>gn(e,r,i)}}var ft=\"delimiter.bracket.json\",dt=\"delimiter.array.json\",rn=\"delimiter.colon.json\",on=\"delimiter.comma.json\",sn=\"keyword.json\",an=\"keyword.json\",un=\"string.value.json\",cn=\"number.json\",ln=\"string.key.json\",fn=\"comment.block.json\",dn=\"comment.line.json\",y=class kt{constructor(r,i){this.parent=r,this.type=i}static pop(r){return r?r.parent:null}static push(r,i){return new kt(r,i)}static equals(r,i){if(!r&&!i)return!0;if(!r||!i)return!1;for(;r&&i;){if(r===i)return!0;if(r.type!==i.type)return!1;r=r.parent,i=i.parent}return!0}},bt=class ue{constructor(r,i,n,t){this._state=r,this.scanError=i,this.lastWasColon=n,this.parents=t}clone(){return new ue(this._state,this.scanError,this.lastWasColon,this.parents)}equals(r){return r===this?!0:!r||!(r instanceof ue)?!1:this.scanError===r.scanError&&this.lastWasColon===r.lastWasColon&&y.equals(this.parents,r.parents)}getStateData(){return this._state}setStateData(r){this._state=r}};function gn(e,r,i,n=0){let t=0,o=!1;switch(i.scanError){case 2:r='\"'+r,t=1;break;case 1:r=\"/*\"+r,t=2;break}const s=tn(r);let u=i.lastWasColon,g=i.parents;const c={tokens:[],endState:i.clone()};for(;;){let v=n+s.getPosition(),d=\"\";const k=s.scan();if(k===17)break;if(v===n+s.getPosition())throw new Error(\"Scanner did not advance, next 3 characters are: \"+r.substr(s.getPosition(),3));switch(o&&(v-=t),o=t>0,k){case 1:g=y.push(g,0),d=ft,u=!1;break;case 2:g=y.pop(g),d=ft,u=!1;break;case 3:g=y.push(g,1),d=dt,u=!1;break;case 4:g=y.pop(g),d=dt,u=!1;break;case 6:d=rn,u=!0;break;case 5:d=on,u=!1;break;case 8:case 9:d=sn,u=!1;break;case 7:d=an,u=!1;break;case 10:const N=(g?g.type:0)===1;d=u||N?un:ln,u=!1;break;case 11:d=cn,u=!1;break}switch(k){case 12:d=dn;break;case 13:d=fn;break}c.endState=new bt(i.getStateData(),s.getTokenError(),u,g),c.tokens.push({startIndex:v,scopes:d})}return c}var E;function An(){return new Promise((e,r)=>{if(!E)return r(\"JSON not registered!\");e(E)})}var pn=class extends jt{constructor(e,r,i){super(e,r,i.onDidChange),this._disposables.push(f.editor.onWillDisposeModel(n=>{this._resetSchema(n.uri)})),this._disposables.push(f.editor.onDidChangeModelLanguage(n=>{this._resetSchema(n.model.uri)}))}_resetSchema(e){this._worker().then(r=>{r.resetSchema(e.toString())})}};function In(e){const r=[],i=[],n=new Ut(e);r.push(n),E=(...s)=>n.getLanguageServiceWorker(...s);function t(){const{languageId:s,modeConfiguration:u}=e;wt(i),u.documentFormattingEdits&&i.push(f.languages.registerDocumentFormattingEditProvider(s,new Qt(E))),u.documentRangeFormattingEdits&&i.push(f.languages.registerDocumentRangeFormattingEditProvider(s,new Yt(E))),u.completionItems&&i.push(f.languages.registerCompletionItemProvider(s,new Pt(E,[\" \",\":\",'\"']))),u.hovers&&i.push(f.languages.registerHoverProvider(s,new Wt(E))),u.documentSymbols&&i.push(f.languages.registerDocumentSymbolProvider(s,new Jt(E))),u.tokens&&i.push(f.languages.setTokensProvider(s,nn(!0))),u.colors&&i.push(f.languages.registerColorProvider(s,new Gt(E))),u.foldingRanges&&i.push(f.languages.registerFoldingRangeProvider(s,new Zt(E))),u.diagnostics&&i.push(new pn(s,E,e)),u.selectionRanges&&i.push(f.languages.registerSelectionRangeProvider(s,new Ct(E)))}t(),r.push(f.languages.setLanguageConfiguration(e.languageId,vn));let o=e.modeConfiguration;return e.onDidChange(s=>{s.modeConfiguration!==o&&(o=s.modeConfiguration,t())}),r.push(gt(i)),gt(r)}function gt(e){return{dispose:()=>wt(e)}}function wt(e){for(;e.length;)e.pop().dispose()}var vn={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\[\\{\\]\\}\\:\\\"\\,\\s]+)/g,comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"]],autoClosingPairs:[{open:\"{\",close:\"}\",notIn:[\"string\"]},{open:\"[\",close:\"]\",notIn:[\"string\"]},{open:'\"',close:'\"',notIn:[\"string\"]}]};export{Pt as CompletionAdapter,_n as DefinitionAdapter,jt as DiagnosticsAdapter,Gt as DocumentColorAdapter,Qt as DocumentFormattingEditProvider,hn as DocumentHighlightAdapter,wn as DocumentLinkAdapter,Yt as DocumentRangeFormattingEditProvider,Jt as DocumentSymbolAdapter,Zt as FoldingRangeAdapter,Wt as HoverAdapter,kn as ReferenceAdapter,bn as RenameAdapter,Ct as SelectionRangeAdapter,Ut as WorkerManager,R as fromPosition,pt as fromRange,An as getWorker,In as setupMode,w as toRange,B as toTextEdit};\n"
  },
  {
    "path": "jesse/static/_nuxt/Bk9BmIv8.js",
    "content": "import{d as w,m as C,u as I,A as S,r as m,w as _,c as V,J as o,e as D,f as O,L as T,g as l,C as d,E as F,x as u,j as r,F as B,O as E,H as f,G as n}from\"./CU_MfyYc.js\";const A={key:0,class:\"flex justify-center items-center py-12\"},q={key:1},L={class:\"flex flex-col\"},M={class:\"-my-2 overflow-x-auto\"},N={class:\"py-2 align-middle inline-block min-w-full\"},P={class:\"border dark:border-gray-600 overflow-hidden sm:rounded\"},j={class:\"min-w-full divide-y divide-gray-200 dark:divide-gray-600\"},z={class:\"px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-500 dark:text-gray-400\"},Q=[\"textContent\"],G=[\"textContent\"],H=[\"textContent\"],J={key:2,class:\"text-center py-12 text-red-600 dark:text-red-400\"},U=w({__name:\"OrderDetailsSlideOver\",props:C({orderId:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:[\"update:modelValue\"],setup(g){const i=I(g,\"modelValue\"),c=g,k=S(),y=m(!1),s=m(\"\"),e=m(null);_(()=>c.orderId,async a=>{a&&i.value&&await x()}),_(i,async a=>{a&&c.orderId&&await x()});async function x(){if(c.orderId){y.value=!0,s.value=\"\",e.value=null;try{const a=await k.fetchOrderDetails(c.orderId);a?e.value=a:s.value=\"Failed to load order details\"}catch(a){s.value=a.message||\"Failed to load order details\"}finally{y.value=!1}}}const b=V(()=>e.value?[[\"ID\",{value:e.value.id,tag:\"code\"}],[\"Exchange ID\",{value:e.value.exchange_id||\"-\",tag:e.value.exchange_id?\"code\":void 0}],[\"Trade ID\",{value:e.value.trade_id||\"-\",tag:e.value.trade_id?\"code\":void 0}],[\"Symbol\",{value:e.value.symbol}],[\"Exchange\",{value:e.value.exchange}],[\"Side\",{value:e.value.side,style:e.value.side===\"buy\"?\"text-green-600 dark:text-green-400\":\"text-red-600 dark:text-red-400\"}],[\"Type\",{value:e.value.type}],[\"Price\",{value:e.value.price?o.roundPrice(e.value.price):\"-\"}],[\"Quantity\",{value:e.value.qty,style:e.value.qty>0?\"text-green-600 dark:text-green-400\":\"text-red-600 dark:text-red-400\"}],[\"Filled Quantity\",{value:e.value.filled_qty}],[\"Fee\",{value:e.value.fee!==null&&e.value.fee!==void 0?o.roundPrice(e.value.fee):\"-\"}],[\"Status\",{value:e.value.status}],[\"Reduce Only\",{value:e.value.reduce_only?\"Yes\":\"No\"}],[\"Submitted Via\",{value:e.value.submitted_via||\"-\"}],[\"Created At\",{value:o.timestampToTime(e.value.created_at)}],[\"Executed At\",{value:e.value.executed_at?o.timestampToTime(e.value.executed_at):\"-\"}],[\"Canceled At\",{value:e.value.canceled_at?o.timestampToTime(e.value.canceled_at):\"-\"}]]:[]);return(a,v)=>{const h=T;return l(),D(h,{modelValue:i.value,\"onUpdate:modelValue\":v[0]||(v[0]=t=>i.value=t),size:\"big\",title:\"Order Details\"},{default:O(()=>[u(y)?(l(),d(\"div\",A,v[1]||(v[1]=[r(\"div\",{class:\"animate-spin rounded-full h-12 w-12 border-b-2 border-indigo-600\"},null,-1)]))):u(e)?(l(),d(\"div\",q,[r(\"div\",L,[r(\"div\",M,[r(\"div\",N,[r(\"div\",P,[r(\"table\",j,[r(\"tbody\",null,[(l(!0),d(B,null,E(u(b),(t,p)=>(l(),d(\"tr\",{key:p,class:f(p%2===0?\"bg-white dark:bg-gray-700\":\"bg-gray-50 dark:bg-backdrop-dark\")},[r(\"td\",z,n(t[0]),1),r(\"td\",{class:f([\"px-6 py-4 whitespace-nowrap text-sm font-bold\",t[1].style])},[t[1].tag===\"code\"?(l(),d(\"code\",{key:0,class:\"rounded border dark:border-gray-600 bg-gray-50 dark:bg-gray-700 select-text text-sm dark:text-gray-300 px-2 py-1\",textContent:n(t[1].value===0?\"\":t[1].value)},null,8,Q)):t[1].tag===\"pre\"?(l(),d(\"pre\",{key:1,class:\"whitespace-pre-line rounded border dark:border-gray-600 bg-gray-50 dark:bg-gray-700 select-text text-sm dark:text-gray-300 px-2 py-1\",textContent:n(t[1].value===0?\"\":t[1].value)},null,8,G)):(l(),d(\"span\",{key:2,textContent:n(t[1].value===0?\"\":t[1].value)},null,8,H))],2)],2))),128))])])])])])])])):u(s)?(l(),d(\"div\",J,n(u(s)),1)):F(\"\",!0)]),_:1},8,[\"modelValue\"])}}});export{U as _};\n"
  },
  {
    "path": "jesse/static/_nuxt/BknIz3MU.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"SSH Config\",\"fileTypes\":[\"ssh_config\",\".ssh/config\",\"sshd_config\"],\"name\":\"ssh-config\",\"patterns\":[{\"match\":\"\\\\\\\\b(A(cceptEnv|dd(ressFamily|KeysToAgent)|llow(AgentForwarding|Groups|StreamLocalForwarding|TcpForwarding|Users)|uth(enticationMethods|orized((Keys(Command(User)?|File)|Principals(Command(User)?|File)))))|B(anner|atchMode|ind(Address|Interface))|C(anonical(Domains|ize(FallbackLocal|Hostname|MaxDots|PermittedCNAMEs))|ertificateFile|hallengeResponseAuthentication|heckHostIP|hrootDirectory|iphers?|learAllForwardings|ientAlive(CountMax|Interval)|ompression(Level)?|onnect(Timeout|ionAttempts)|ontrolMaster|ontrolPath|ontrolPersist)|D(eny(Groups|Users)|isableForwarding|ynamicForward)|E(nableSSHKeysign|scapeChar|xitOnForwardFailure|xposeAuthInfo)|F(ingerprintHash|orceCommand|orward(Agent|X11(Timeout|Trusted)?))|G(atewayPorts|SSAPI(Authentication|CleanupCredentials|ClientIdentity|DelegateCredentials|KeyExchange|RenewalForcesRekey|ServerIdentity|StrictAcceptorCheck|TrustDns)|atewayPorts|lobalKnownHostsFile)|H(ashKnownHosts|ost(based(AcceptedKeyTypes|Authentication|KeyTypes|UsesNameFromPacketOnly)|Certificate|Key(Agent|Algorithms|Alias)?|Name))|I(dentit(iesOnly|y(Agent|File))|gnore(Rhosts|Unknown|UserKnownHosts)|nclude|PQoS)|K(bdInteractive(Authentication|Devices)|erberos(Authentication|GetAFSToken|OrLocalPasswd|TicketCleanup)|exAlgorithms)|L(istenAddress|ocal(Command|Forward)|oginGraceTime|ogLevel)|M(ACs|atch|ax(AuthTries|Sessions|Startups))|N(oHostAuthenticationForLocalhost|umberOfPasswordPrompts)|P(KCS11Provider|asswordAuthentication|ermit(EmptyPasswords|LocalCommand|Open|RootLogin|TTY|Tunnel|User(Environment|RC))|idFile|ort|referredAuthentications|rint(LastLog|Motd)|rotocol|roxy(Command|Jump|UseFdpass)|ubkey(AcceptedKeyTypes|Authentication))|R(Domain|SAAuthentication|ekeyLimit|emote(Command|Forward)|equestTTY|evoked(HostKeys|Keys)|hostsRSAAuthentication)|S(endEnv|erverAlive(CountMax|Interval)|treamLocalBind(Mask|Unlink)|trict(HostKeyChecking|Modes)|ubsystem|yslogFacility)|T(CPKeepAlive|rustedUserCAKeys|unnel(Device)?)|U(pdateHostKeys|se(BlacklistedKeys|DNS|Keychain|PAM|PrivilegedPort|r(KnownHostsFile)?))|V(erifyHostKeyDNS|ersionAddendum|isualHostKey)|X(11(DisplayOffset|Forwarding|UseLocalhost)|AuthLocation))\\\\\\\\b\",\"name\":\"keyword.other.ssh-config\"},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.ssh-config\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.ssh-config\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.number-sign.ssh-config\"}]},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=//)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.ssh-config\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.ssh-config\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.double-slash.ssh-config\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.ssh-config\"},\"2\":{\"name\":\"entity.name.section.ssh-config\"},\"3\":{\"name\":\"meta.toc-list.ssh-config\"}},\"match\":\"(?:^| |\\\\\\\\t)(Host)\\\\\\\\s+((.*))$\"},{\"match\":\"\\\\\\\\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\\\\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\\\\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\\\\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\\\\\b\",\"name\":\"constant.numeric.ssh-config\"},{\"match\":\"\\\\\\\\b[0-9]+\\\\\\\\b\",\"name\":\"constant.numeric.ssh-config\"},{\"match\":\"\\\\\\\\b(yes|no)\\\\\\\\b\",\"name\":\"constant.language.ssh-config\"},{\"match\":\"\\\\\\\\b[A-Z_]+\\\\\\\\b\",\"name\":\"constant.language.ssh-config\"}],\"scopeName\":\"source.ssh-config\"}')),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Bkuqu6BP.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBorder\":\"#4d9375\",\"activityBar.background\":\"#000\",\"activityBar.border\":\"#191919\",\"activityBar.foreground\":\"#dbd7cacc\",\"activityBar.inactiveForeground\":\"#dedcd550\",\"activityBarBadge.background\":\"#bfbaaa\",\"activityBarBadge.foreground\":\"#000\",\"badge.background\":\"#dedcd590\",\"badge.foreground\":\"#000\",\"breadcrumb.activeSelectionForeground\":\"#eeeeee18\",\"breadcrumb.background\":\"#121212\",\"breadcrumb.focusForeground\":\"#dbd7cacc\",\"breadcrumb.foreground\":\"#959da5\",\"breadcrumbPicker.background\":\"#000\",\"button.background\":\"#4d9375\",\"button.foreground\":\"#000\",\"button.hoverBackground\":\"#4d9375\",\"checkbox.background\":\"#121212\",\"checkbox.border\":\"#2f363d\",\"debugToolBar.background\":\"#000\",\"descriptionForeground\":\"#dedcd590\",\"diffEditor.insertedTextBackground\":\"#4d937550\",\"diffEditor.removedTextBackground\":\"#ab595950\",\"dropdown.background\":\"#000\",\"dropdown.border\":\"#191919\",\"dropdown.foreground\":\"#dbd7cacc\",\"dropdown.listBackground\":\"#121212\",\"editor.background\":\"#000\",\"editor.findMatchBackground\":\"#e6cc7722\",\"editor.findMatchHighlightBackground\":\"#e6cc7744\",\"editor.focusedStackFrameHighlightBackground\":\"#b808\",\"editor.foldBackground\":\"#eeeeee10\",\"editor.foreground\":\"#dbd7cacc\",\"editor.inactiveSelectionBackground\":\"#eeeeee10\",\"editor.lineHighlightBackground\":\"#121212\",\"editor.selectionBackground\":\"#eeeeee18\",\"editor.selectionHighlightBackground\":\"#eeeeee10\",\"editor.stackFrameHighlightBackground\":\"#a707\",\"editor.wordHighlightBackground\":\"#1c6b4805\",\"editor.wordHighlightStrongBackground\":\"#1c6b4810\",\"editorBracketHighlight.foreground1\":\"#5eaab5\",\"editorBracketHighlight.foreground2\":\"#4d9375\",\"editorBracketHighlight.foreground3\":\"#d4976c\",\"editorBracketHighlight.foreground4\":\"#d9739f\",\"editorBracketHighlight.foreground5\":\"#e6cc77\",\"editorBracketHighlight.foreground6\":\"#6394bf\",\"editorBracketMatch.background\":\"#4d937520\",\"editorError.foreground\":\"#cb7676\",\"editorGroup.border\":\"#191919\",\"editorGroupHeader.tabsBackground\":\"#000\",\"editorGroupHeader.tabsBorder\":\"#191919\",\"editorGutter.addedBackground\":\"#4d9375\",\"editorGutter.commentRangeForeground\":\"#dedcd550\",\"editorGutter.deletedBackground\":\"#cb7676\",\"editorGutter.foldingControlForeground\":\"#dedcd590\",\"editorGutter.modifiedBackground\":\"#6394bf\",\"editorHint.foreground\":\"#4d9375\",\"editorIndentGuide.activeBackground\":\"#ffffff30\",\"editorIndentGuide.background\":\"#ffffff15\",\"editorInfo.foreground\":\"#6394bf\",\"editorInlayHint.background\":\"#121212\",\"editorInlayHint.foreground\":\"#444444\",\"editorLineNumber.activeForeground\":\"#bfbaaa\",\"editorLineNumber.foreground\":\"#dedcd550\",\"editorOverviewRuler.border\":\"#111\",\"editorStickyScroll.background\":\"#121212\",\"editorStickyScrollHover.background\":\"#121212\",\"editorWarning.foreground\":\"#d4976c\",\"editorWhitespace.foreground\":\"#ffffff15\",\"editorWidget.background\":\"#000\",\"errorForeground\":\"#cb7676\",\"focusBorder\":\"#00000000\",\"foreground\":\"#dbd7cacc\",\"gitDecoration.addedResourceForeground\":\"#4d9375\",\"gitDecoration.conflictingResourceForeground\":\"#d4976c\",\"gitDecoration.deletedResourceForeground\":\"#cb7676\",\"gitDecoration.ignoredResourceForeground\":\"#dedcd550\",\"gitDecoration.modifiedResourceForeground\":\"#6394bf\",\"gitDecoration.submoduleResourceForeground\":\"#dedcd590\",\"gitDecoration.untrackedResourceForeground\":\"#5eaab5\",\"input.background\":\"#121212\",\"input.border\":\"#191919\",\"input.foreground\":\"#dbd7cacc\",\"input.placeholderForeground\":\"#dedcd590\",\"inputOption.activeBackground\":\"#dedcd550\",\"list.activeSelectionBackground\":\"#121212\",\"list.activeSelectionForeground\":\"#dbd7cacc\",\"list.focusBackground\":\"#121212\",\"list.highlightForeground\":\"#4d9375\",\"list.hoverBackground\":\"#121212\",\"list.hoverForeground\":\"#dbd7cacc\",\"list.inactiveFocusBackground\":\"#000\",\"list.inactiveSelectionBackground\":\"#121212\",\"list.inactiveSelectionForeground\":\"#dbd7cacc\",\"menu.separatorBackground\":\"#191919\",\"notificationCenterHeader.background\":\"#000\",\"notificationCenterHeader.foreground\":\"#959da5\",\"notifications.background\":\"#000\",\"notifications.border\":\"#191919\",\"notifications.foreground\":\"#dbd7cacc\",\"notificationsErrorIcon.foreground\":\"#cb7676\",\"notificationsInfoIcon.foreground\":\"#6394bf\",\"notificationsWarningIcon.foreground\":\"#d4976c\",\"panel.background\":\"#000\",\"panel.border\":\"#191919\",\"panelInput.border\":\"#2f363d\",\"panelTitle.activeBorder\":\"#4d9375\",\"panelTitle.activeForeground\":\"#dbd7cacc\",\"panelTitle.inactiveForeground\":\"#959da5\",\"peekViewEditor.background\":\"#000\",\"peekViewEditor.matchHighlightBackground\":\"#ffd33d33\",\"peekViewResult.background\":\"#000\",\"peekViewResult.matchHighlightBackground\":\"#ffd33d33\",\"pickerGroup.border\":\"#191919\",\"pickerGroup.foreground\":\"#dbd7cacc\",\"problemsErrorIcon.foreground\":\"#cb7676\",\"problemsInfoIcon.foreground\":\"#6394bf\",\"problemsWarningIcon.foreground\":\"#d4976c\",\"progressBar.background\":\"#4d9375\",\"quickInput.background\":\"#000\",\"quickInput.foreground\":\"#dbd7cacc\",\"quickInputList.focusBackground\":\"#121212\",\"scrollbar.shadow\":\"#0000\",\"scrollbarSlider.activeBackground\":\"#dedcd550\",\"scrollbarSlider.background\":\"#dedcd510\",\"scrollbarSlider.hoverBackground\":\"#dedcd550\",\"settings.headerForeground\":\"#dbd7cacc\",\"settings.modifiedItemIndicator\":\"#4d9375\",\"sideBar.background\":\"#000\",\"sideBar.border\":\"#191919\",\"sideBar.foreground\":\"#bfbaaa\",\"sideBarSectionHeader.background\":\"#000\",\"sideBarSectionHeader.border\":\"#191919\",\"sideBarSectionHeader.foreground\":\"#dbd7cacc\",\"sideBarTitle.foreground\":\"#dbd7cacc\",\"statusBar.background\":\"#000\",\"statusBar.border\":\"#191919\",\"statusBar.debuggingBackground\":\"#121212\",\"statusBar.debuggingForeground\":\"#bfbaaa\",\"statusBar.foreground\":\"#bfbaaa\",\"statusBar.noFolderBackground\":\"#000\",\"statusBarItem.prominentBackground\":\"#121212\",\"tab.activeBackground\":\"#000\",\"tab.activeBorder\":\"#191919\",\"tab.activeBorderTop\":\"#dedcd590\",\"tab.activeForeground\":\"#dbd7cacc\",\"tab.border\":\"#191919\",\"tab.hoverBackground\":\"#121212\",\"tab.inactiveBackground\":\"#000\",\"tab.inactiveForeground\":\"#959da5\",\"tab.unfocusedActiveBorder\":\"#191919\",\"tab.unfocusedActiveBorderTop\":\"#191919\",\"tab.unfocusedHoverBackground\":\"#000\",\"terminal.ansiBlack\":\"#393a34\",\"terminal.ansiBlue\":\"#6394bf\",\"terminal.ansiBrightBlack\":\"#777777\",\"terminal.ansiBrightBlue\":\"#6394bf\",\"terminal.ansiBrightCyan\":\"#5eaab5\",\"terminal.ansiBrightGreen\":\"#4d9375\",\"terminal.ansiBrightMagenta\":\"#d9739f\",\"terminal.ansiBrightRed\":\"#cb7676\",\"terminal.ansiBrightWhite\":\"#ffffff\",\"terminal.ansiBrightYellow\":\"#e6cc77\",\"terminal.ansiCyan\":\"#5eaab5\",\"terminal.ansiGreen\":\"#4d9375\",\"terminal.ansiMagenta\":\"#d9739f\",\"terminal.ansiRed\":\"#cb7676\",\"terminal.ansiWhite\":\"#dbd7ca\",\"terminal.ansiYellow\":\"#e6cc77\",\"terminal.foreground\":\"#dbd7cacc\",\"terminal.selectionBackground\":\"#eeeeee18\",\"textBlockQuote.background\":\"#000\",\"textBlockQuote.border\":\"#191919\",\"textCodeBlock.background\":\"#000\",\"textLink.activeForeground\":\"#4d9375\",\"textLink.foreground\":\"#4d9375\",\"textPreformat.foreground\":\"#d1d5da\",\"textSeparator.foreground\":\"#586069\",\"titleBar.activeBackground\":\"#000\",\"titleBar.activeForeground\":\"#bfbaaa\",\"titleBar.border\":\"#121212\",\"titleBar.inactiveBackground\":\"#000\",\"titleBar.inactiveForeground\":\"#959da5\",\"tree.indentGuidesStroke\":\"#2f363d\",\"welcomePage.buttonBackground\":\"#2f363d\",\"welcomePage.buttonHoverBackground\":\"#444d56\"},\"displayName\":\"Vitesse Black\",\"name\":\"vitesse-black\",\"semanticHighlighting\":true,\"semanticTokenColors\":{\"class\":\"#6872ab\",\"interface\":\"#5d99a9\",\"namespace\":\"#db889a\",\"property\":\"#b8a965\",\"type\":\"#5d99a9\"},\"tokenColors\":[{\"scope\":[\"comment\",\"punctuation.definition.comment\",\"string.comment\"],\"settings\":{\"foreground\":\"#758575dd\"}},{\"scope\":[\"delimiter.bracket\",\"delimiter\",\"invalid.illegal.character-not-allowed-here.html\",\"keyword.operator.rest\",\"keyword.operator.spread\",\"keyword.operator.type.annotation\",\"keyword.operator.relational\",\"keyword.operator.assignment\",\"keyword.operator.type\",\"meta.brace\",\"meta.tag.block.any.html\",\"meta.tag.inline.any.html\",\"meta.tag.structure.input.void.html\",\"meta.type.annotation\",\"meta.embedded.block.github-actions-expression\",\"storage.type.function.arrow\",\"meta.objectliteral.ts\",\"punctuation\",\"punctuation.definition.string.begin.html.vue\",\"punctuation.definition.string.end.html.vue\"],\"settings\":{\"foreground\":\"#444444\"}},{\"scope\":[\"constant\",\"entity.name.constant\",\"variable.language\",\"meta.definition.variable\"],\"settings\":{\"foreground\":\"#c99076\"}},{\"scope\":[\"entity\",\"entity.name\"],\"settings\":{\"foreground\":\"#80a665\"}},{\"scope\":\"variable.parameter.function\",\"settings\":{\"foreground\":\"#dbd7cacc\"}},{\"scope\":[\"entity.name.tag\",\"tag.html\"],\"settings\":{\"foreground\":\"#4d9375\"}},{\"scope\":\"entity.name.function\",\"settings\":{\"foreground\":\"#80a665\"}},{\"scope\":[\"keyword\",\"storage.type.class.jsdoc\",\"punctuation.definition.template-expression\"],\"settings\":{\"foreground\":\"#4d9375\"}},{\"scope\":[\"storage\",\"storage.type\",\"support.type.builtin\",\"constant.language.undefined\",\"constant.language.null\",\"constant.language.import-export-all.ts\"],\"settings\":{\"foreground\":\"#cb7676\"}},{\"scope\":[\"text.html.derivative\",\"storage.modifier.package\",\"storage.modifier.import\",\"storage.type.java\"],\"settings\":{\"foreground\":\"#dbd7cacc\"}},{\"scope\":[\"string\",\"string punctuation.section.embedded source\",\"attribute.value\"],\"settings\":{\"foreground\":\"#c98a7d\"}},{\"scope\":[\"punctuation.definition.string\"],\"settings\":{\"foreground\":\"#c98a7d77\"}},{\"scope\":[\"punctuation.support.type.property-name\"],\"settings\":{\"foreground\":\"#b8a96577\"}},{\"scope\":\"support\",\"settings\":{\"foreground\":\"#b8a965\"}},{\"scope\":[\"property\",\"meta.property-name\",\"meta.object-literal.key\",\"entity.name.tag.yaml\",\"attribute.name\"],\"settings\":{\"foreground\":\"#b8a965\"}},{\"scope\":[\"entity.other.attribute-name\",\"invalid.deprecated.entity.other.attribute-name.html\"],\"settings\":{\"foreground\":\"#bd976a\"}},{\"scope\":[\"variable\",\"identifier\"],\"settings\":{\"foreground\":\"#bd976a\"}},{\"scope\":[\"support.type.primitive\",\"entity.name.type\"],\"settings\":{\"foreground\":\"#5DA994\"}},{\"scope\":\"namespace\",\"settings\":{\"foreground\":\"#db889a\"}},{\"scope\":[\"keyword.operator\",\"keyword.operator.assignment.compound\",\"meta.var.expr.ts\"],\"settings\":{\"foreground\":\"#cb7676\"}},{\"scope\":\"invalid.broken\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#fdaeb7\"}},{\"scope\":\"invalid.deprecated\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#fdaeb7\"}},{\"scope\":\"invalid.illegal\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#fdaeb7\"}},{\"scope\":\"invalid.unimplemented\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#fdaeb7\"}},{\"scope\":\"carriage-return\",\"settings\":{\"background\":\"#f97583\",\"content\":\"^M\",\"fontStyle\":\"italic underline\",\"foreground\":\"#24292e\"}},{\"scope\":\"message.error\",\"settings\":{\"foreground\":\"#fdaeb7\"}},{\"scope\":\"string variable\",\"settings\":{\"foreground\":\"#c98a7d\"}},{\"scope\":[\"source.regexp\",\"string.regexp\"],\"settings\":{\"foreground\":\"#c4704f\"}},{\"scope\":[\"string.regexp.character-class\",\"string.regexp constant.character.escape\",\"string.regexp source.ruby.embedded\",\"string.regexp string.regexp.arbitrary-repitition\"],\"settings\":{\"foreground\":\"#c98a7d\"}},{\"scope\":\"string.regexp constant.character.escape\",\"settings\":{\"foreground\":\"#e6cc77\"}},{\"scope\":[\"support.constant\"],\"settings\":{\"foreground\":\"#c99076\"}},{\"scope\":[\"keyword.operator.quantifier.regexp\",\"constant.numeric\",\"number\"],\"settings\":{\"foreground\":\"#4C9A91\"}},{\"scope\":[\"keyword.other.unit\"],\"settings\":{\"foreground\":\"#cb7676\"}},{\"scope\":[\"constant.language.boolean\",\"constant.language\"],\"settings\":{\"foreground\":\"#4d9375\"}},{\"scope\":\"meta.module-reference\",\"settings\":{\"foreground\":\"#4d9375\"}},{\"scope\":\"punctuation.definition.list.begin.markdown\",\"settings\":{\"foreground\":\"#d4976c\"}},{\"scope\":[\"markup.heading\",\"markup.heading entity.name\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#4d9375\"}},{\"scope\":\"markup.quote\",\"settings\":{\"foreground\":\"#5d99a9\"}},{\"scope\":\"markup.italic\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#dbd7cacc\"}},{\"scope\":\"markup.bold\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#dbd7cacc\"}},{\"scope\":\"markup.raw\",\"settings\":{\"foreground\":\"#4d9375\"}},{\"scope\":[\"markup.deleted\",\"meta.diff.header.from-file\",\"punctuation.definition.deleted\"],\"settings\":{\"background\":\"#86181d\",\"foreground\":\"#fdaeb7\"}},{\"scope\":[\"markup.inserted\",\"meta.diff.header.to-file\",\"punctuation.definition.inserted\"],\"settings\":{\"background\":\"#144620\",\"foreground\":\"#85e89d\"}},{\"scope\":[\"markup.changed\",\"punctuation.definition.changed\"],\"settings\":{\"background\":\"#c24e00\",\"foreground\":\"#ffab70\"}},{\"scope\":[\"markup.ignored\",\"markup.untracked\"],\"settings\":{\"background\":\"#79b8ff\",\"foreground\":\"#2f363d\"}},{\"scope\":\"meta.diff.range\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#b392f0\"}},{\"scope\":\"meta.diff.header\",\"settings\":{\"foreground\":\"#79b8ff\"}},{\"scope\":\"meta.separator\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#79b8ff\"}},{\"scope\":\"meta.output\",\"settings\":{\"foreground\":\"#79b8ff\"}},{\"scope\":[\"brackethighlighter.tag\",\"brackethighlighter.curly\",\"brackethighlighter.round\",\"brackethighlighter.square\",\"brackethighlighter.angle\",\"brackethighlighter.quote\"],\"settings\":{\"foreground\":\"#d1d5da\"}},{\"scope\":\"brackethighlighter.unmatched\",\"settings\":{\"foreground\":\"#fdaeb7\"}},{\"scope\":[\"constant.other.reference.link\",\"string.other.link\",\"punctuation.definition.string.begin.markdown\",\"punctuation.definition.string.end.markdown\"],\"settings\":{\"foreground\":\"#c98a7d\"}},{\"scope\":[\"markup.underline.link.markdown\",\"markup.underline.link.image.markdown\"],\"settings\":{\"fontStyle\":\"underline\",\"foreground\":\"#dedcd590\"}},{\"scope\":[\"type.identifier\",\"constant.other.character-class.regexp\"],\"settings\":{\"foreground\":\"#6872ab\"}},{\"scope\":[\"entity.other.attribute-name.html.vue\"],\"settings\":{\"foreground\":\"#80a665\"}},{\"scope\":[\"invalid.illegal.unrecognized-tag.html\"],\"settings\":{\"fontStyle\":\"normal\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Bl1h29GH.js",
    "content": "import e from\"./BPhBrDlE.js\";const n=Object.freeze(JSON.parse(`{\"displayName\":\"SCSS\",\"name\":\"scss\",\"patterns\":[{\"include\":\"#variable_setting\"},{\"include\":\"#at_rule_forward\"},{\"include\":\"#at_rule_use\"},{\"include\":\"#at_rule_include\"},{\"include\":\"#at_rule_import\"},{\"include\":\"#general\"},{\"include\":\"#flow_control\"},{\"include\":\"#rules\"},{\"include\":\"#property_list\"},{\"include\":\"#at_rule_mixin\"},{\"include\":\"#at_rule_media\"},{\"include\":\"#at_rule_function\"},{\"include\":\"#at_rule_charset\"},{\"include\":\"#at_rule_option\"},{\"include\":\"#at_rule_namespace\"},{\"include\":\"#at_rule_fontface\"},{\"include\":\"#at_rule_page\"},{\"include\":\"#at_rule_keyframes\"},{\"include\":\"#at_rule_at_root\"},{\"include\":\"#at_rule_supports\"},{\"match\":\";\",\"name\":\"punctuation.terminator.rule.css\"}],\"repository\":{\"at_rule_at_root\":{\"begin\":\"\\\\\\\\s*((@)(at-root))(\\\\\\\\s+|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.at-rule.at-root.scss\"},\"2\":{\"name\":\"punctuation.definition.keyword.scss\"}},\"end\":\"\\\\\\\\s*(?={)\",\"name\":\"meta.at-rule.at-root.scss\",\"patterns\":[{\"include\":\"#function_attributes\"},{\"include\":\"#functions\"},{\"include\":\"#selectors\"}]},\"at_rule_charset\":{\"begin\":\"\\\\\\\\s*((@)charset\\\\\\\\b)\\\\\\\\s*\",\"captures\":{\"1\":{\"name\":\"keyword.control.at-rule.charset.scss\"},\"2\":{\"name\":\"punctuation.definition.keyword.scss\"}},\"end\":\"\\\\\\\\s*((?=;|$))\",\"name\":\"meta.at-rule.charset.scss\",\"patterns\":[{\"include\":\"#variable\"},{\"include\":\"#string_single\"},{\"include\":\"#string_double\"}]},\"at_rule_content\":{\"begin\":\"\\\\\\\\s*((@)content\\\\\\\\b)\\\\\\\\s*\",\"captures\":{\"1\":{\"name\":\"keyword.control.content.scss\"}},\"end\":\"\\\\\\\\s*((?=;))\",\"name\":\"meta.content.scss\",\"patterns\":[{\"include\":\"#variable\"},{\"include\":\"#selectors\"},{\"include\":\"#property_values\"}]},\"at_rule_each\":{\"begin\":\"\\\\\\\\s*((@)each\\\\\\\\b)\\\\\\\\s*\",\"captures\":{\"1\":{\"name\":\"keyword.control.each.scss\"},\"2\":{\"name\":\"punctuation.definition.keyword.scss\"}},\"end\":\"\\\\\\\\s*((?=}))\",\"name\":\"meta.at-rule.each.scss\",\"patterns\":[{\"match\":\"\\\\\\\\b(in|,)\\\\\\\\b\",\"name\":\"keyword.control.operator\"},{\"include\":\"#variable\"},{\"include\":\"#property_values\"},{\"include\":\"$self\"}]},\"at_rule_else\":{\"begin\":\"\\\\\\\\s*((@)else(\\\\\\\\s*(if)?))\\\\\\\\s*\",\"captures\":{\"1\":{\"name\":\"keyword.control.else.scss\"},\"2\":{\"name\":\"punctuation.definition.keyword.scss\"}},\"end\":\"\\\\\\\\s*(?={)\",\"name\":\"meta.at-rule.else.scss\",\"patterns\":[{\"include\":\"#conditional_operators\"},{\"include\":\"#variable\"},{\"include\":\"#property_values\"}]},\"at_rule_extend\":{\"begin\":\"\\\\\\\\s*((@)extend\\\\\\\\b)\\\\\\\\s*\",\"captures\":{\"1\":{\"name\":\"keyword.control.at-rule.extend.scss\"},\"2\":{\"name\":\"punctuation.definition.keyword.scss\"}},\"end\":\"\\\\\\\\s*(?=;)\",\"name\":\"meta.at-rule.extend.scss\",\"patterns\":[{\"include\":\"#variable\"},{\"include\":\"#selectors\"},{\"include\":\"#property_values\"}]},\"at_rule_fontface\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((@)font-face\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.at-rule.fontface.scss\"},\"2\":{\"name\":\"punctuation.definition.keyword.scss\"}},\"end\":\"\\\\\\\\s*(?={)\",\"name\":\"meta.at-rule.fontface.scss\",\"patterns\":[{\"include\":\"#function_attributes\"}]}]},\"at_rule_for\":{\"begin\":\"\\\\\\\\s*((@)for\\\\\\\\b)\\\\\\\\s*\",\"captures\":{\"1\":{\"name\":\"keyword.control.for.scss\"},\"2\":{\"name\":\"punctuation.definition.keyword.scss\"}},\"end\":\"\\\\\\\\s*(?={)\",\"name\":\"meta.at-rule.for.scss\",\"patterns\":[{\"match\":\"(==|!=|<=|>=|<|>|from|to|through)\",\"name\":\"keyword.control.operator\"},{\"include\":\"#variable\"},{\"include\":\"#property_values\"},{\"include\":\"$self\"}]},\"at_rule_forward\":{\"begin\":\"\\\\\\\\s*((@)forward\\\\\\\\b)\\\\\\\\s*\",\"captures\":{\"1\":{\"name\":\"keyword.control.at-rule.forward.scss\"},\"2\":{\"name\":\"punctuation.definition.keyword.scss\"}},\"end\":\"\\\\\\\\s*(?=;)\",\"name\":\"meta.at-rule.forward.scss\",\"patterns\":[{\"match\":\"\\\\\\\\b(as|hide|show)\\\\\\\\b\",\"name\":\"keyword.control.operator\"},{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.module.scss\"},\"2\":{\"name\":\"punctuation.definition.wildcard.scss\"}},\"match\":\"\\\\\\\\b([\\\\\\\\w-]+)(\\\\\\\\*)\"},{\"match\":\"\\\\\\\\b[\\\\\\\\w-]+\\\\\\\\b\",\"name\":\"entity.name.function.scss\"},{\"include\":\"#variable\"},{\"include\":\"#string_single\"},{\"include\":\"#string_double\"},{\"include\":\"#comment_line\"},{\"include\":\"#comment_block\"}]},\"at_rule_function\":{\"patterns\":[{\"begin\":\"\\\\\\\\s*((@)function\\\\\\\\b)\\\\\\\\s*\",\"captures\":{\"1\":{\"name\":\"keyword.control.at-rule.function.scss\"},\"2\":{\"name\":\"punctuation.definition.keyword.scss\"},\"3\":{\"name\":\"entity.name.function.scss\"}},\"end\":\"\\\\\\\\s*(?={)\",\"name\":\"meta.at-rule.function.scss\",\"patterns\":[{\"include\":\"#function_attributes\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.at-rule.function.scss\"},\"2\":{\"name\":\"punctuation.definition.keyword.scss\"},\"3\":{\"name\":\"entity.name.function.scss\"}},\"match\":\"\\\\\\\\s*((@)function\\\\\\\\b)\\\\\\\\s*\",\"name\":\"meta.at-rule.function.scss\"}]},\"at_rule_if\":{\"begin\":\"\\\\\\\\s*((@)if\\\\\\\\b)\\\\\\\\s*\",\"captures\":{\"1\":{\"name\":\"keyword.control.if.scss\"},\"2\":{\"name\":\"punctuation.definition.keyword.scss\"}},\"end\":\"\\\\\\\\s*(?={)\",\"name\":\"meta.at-rule.if.scss\",\"patterns\":[{\"include\":\"#conditional_operators\"},{\"include\":\"#variable\"},{\"include\":\"#property_values\"}]},\"at_rule_import\":{\"begin\":\"\\\\\\\\s*((@)import\\\\\\\\b)\\\\\\\\s*\",\"captures\":{\"1\":{\"name\":\"keyword.control.at-rule.import.scss\"},\"2\":{\"name\":\"punctuation.definition.keyword.scss\"}},\"end\":\"\\\\\\\\s*((?=;)|(?=}))\",\"name\":\"meta.at-rule.import.scss\",\"patterns\":[{\"include\":\"#variable\"},{\"include\":\"#string_single\"},{\"include\":\"#string_double\"},{\"include\":\"#functions\"},{\"include\":\"#comment_line\"}]},\"at_rule_include\":{\"patterns\":[{\"begin\":\"(?<=@include)\\\\\\\\s+(?:([\\\\\\\\w-]+)\\\\\\\\s*(\\\\\\\\.))?([\\\\\\\\w-]+)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"variable.scss\"},\"2\":{\"name\":\"punctuation.access.module.scss\"},\"3\":{\"name\":\"entity.name.function.scss\"},\"4\":{\"name\":\"punctuation.definition.parameters.begin.bracket.round.scss\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.bracket.round.scss\"}},\"name\":\"meta.at-rule.include.scss\",\"patterns\":[{\"include\":\"#function_attributes\"}]},{\"captures\":{\"0\":{\"name\":\"meta.at-rule.include.scss\"},\"1\":{\"name\":\"variable.scss\"},\"2\":{\"name\":\"punctuation.access.module.scss\"},\"3\":{\"name\":\"entity.name.function.scss\"}},\"match\":\"(?<=@include)\\\\\\\\s+(?:([\\\\\\\\w-]+)\\\\\\\\s*(\\\\\\\\.))?([\\\\\\\\w-]+)\"},{\"captures\":{\"0\":{\"name\":\"meta.at-rule.include.scss\"},\"1\":{\"name\":\"keyword.control.at-rule.include.scss\"},\"2\":{\"name\":\"punctuation.definition.keyword.scss\"}},\"match\":\"((@)include)\\\\\\\\b\"}]},\"at_rule_keyframes\":{\"begin\":\"(?<=^|\\\\\\\\s)(@)(?:-(?:webkit|moz)-)?keyframes\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.at-rule.keyframes.scss\"},\"1\":{\"name\":\"punctuation.definition.keyword.scss\"}},\"end\":\"(?<=})\",\"name\":\"meta.at-rule.keyframes.scss\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.function.scss\"}},\"match\":\"(?<=@keyframes)\\\\\\\\s+((?:[_A-Za-z][-\\\\\\\\w]|-[_A-Za-z])[-\\\\\\\\w]*)\"},{\"begin\":\"(?<=@keyframes)\\\\\\\\s+(\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.scss\"}},\"contentName\":\"entity.name.function.scss\",\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.scss\"}},\"name\":\"string.quoted.double.scss\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(\\\\\\\\h{1,6}|.)\",\"name\":\"constant.character.escape.scss\"},{\"include\":\"#interpolation\"}]},{\"begin\":\"(?<=@keyframes)\\\\\\\\s+(')\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.scss\"}},\"contentName\":\"entity.name.function.scss\",\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.scss\"}},\"name\":\"string.quoted.single.scss\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(\\\\\\\\h{1,6}|.)\",\"name\":\"constant.character.escape.scss\"},{\"include\":\"#interpolation\"}]},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.keyframes.begin.scss\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.keyframes.end.scss\"}},\"patterns\":[{\"match\":\"\\\\\\\\b(?:(?:100|[1-9]\\\\\\\\d|\\\\\\\\d)%|from|to)(?=\\\\\\\\s*{)\",\"name\":\"entity.other.attribute-name.scss\"},{\"include\":\"#flow_control\"},{\"include\":\"#interpolation\"},{\"include\":\"#property_list\"},{\"include\":\"#rules\"}]}]},\"at_rule_media\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((@)media)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.at-rule.media.scss\"},\"2\":{\"name\":\"punctuation.definition.keyword.scss\"}},\"end\":\"\\\\\\\\s*(?={)\",\"name\":\"meta.at-rule.media.scss\",\"patterns\":[{\"include\":\"#comment_docblock\"},{\"include\":\"#comment_block\"},{\"include\":\"#comment_line\"},{\"match\":\"\\\\\\\\b(only)\\\\\\\\b\",\"name\":\"keyword.control.operator.css.scss\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.media-query.begin.bracket.round.scss\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.media-query.end.bracket.round.scss\"}},\"name\":\"meta.property-list.media-query.scss\",\"patterns\":[{\"begin\":\"(?<![-a-z])(?=[-a-z])\",\"end\":\"$|(?![-a-z])\",\"name\":\"meta.property-name.media-query.scss\",\"patterns\":[{\"include\":\"source.css#media-features\"},{\"include\":\"source.css#property-names\"}]},{\"begin\":\"(:)\\\\\\\\s*(?!(\\\\\\\\s*{))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.key-value.scss\"}},\"contentName\":\"meta.property-value.media-query.scss\",\"end\":\"\\\\\\\\s*(;|(?=}|\\\\\\\\)))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.rule.scss\"}},\"patterns\":[{\"include\":\"#general\"},{\"include\":\"#property_values\"}]}]},{\"include\":\"#variable\"},{\"include\":\"#conditional_operators\"},{\"include\":\"source.css#media-types\"}]}]},\"at_rule_mixin\":{\"patterns\":[{\"begin\":\"(?<=@mixin)\\\\\\\\s+([\\\\\\\\w-]+)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.scss\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.bracket.round.scss\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.bracket.round.scss\"}},\"name\":\"meta.at-rule.mixin.scss\",\"patterns\":[{\"include\":\"#function_attributes\"}]},{\"captures\":{\"1\":{\"name\":\"entity.name.function.scss\"}},\"match\":\"(?<=@mixin)\\\\\\\\s+([\\\\\\\\w-]+)\",\"name\":\"meta.at-rule.mixin.scss\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.at-rule.mixin.scss\"},\"2\":{\"name\":\"punctuation.definition.keyword.scss\"}},\"match\":\"((@)mixin)\\\\\\\\b\",\"name\":\"meta.at-rule.mixin.scss\"}]},\"at_rule_namespace\":{\"patterns\":[{\"begin\":\"(?<=@namespace)\\\\\\\\s+(?=url)\",\"end\":\"(?=;|$)\",\"name\":\"meta.at-rule.namespace.scss\",\"patterns\":[{\"include\":\"#property_values\"},{\"include\":\"#string_single\"},{\"include\":\"#string_double\"}]},{\"begin\":\"(?<=@namespace)\\\\\\\\s+([\\\\\\\\w-]*)\",\"captures\":{\"1\":{\"name\":\"entity.name.namespace-prefix.scss\"}},\"end\":\"(?=;|$)\",\"name\":\"meta.at-rule.namespace.scss\",\"patterns\":[{\"include\":\"#variables\"},{\"include\":\"#property_values\"},{\"include\":\"#string_single\"},{\"include\":\"#string_double\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.at-rule.namespace.scss\"},\"2\":{\"name\":\"punctuation.definition.keyword.scss\"}},\"match\":\"((@)namespace)\\\\\\\\b\",\"name\":\"meta.at-rule.namespace.scss\"}]},\"at_rule_option\":{\"captures\":{\"1\":{\"name\":\"keyword.control.at-rule.charset.scss\"},\"2\":{\"name\":\"punctuation.definition.keyword.scss\"}},\"match\":\"^\\\\\\\\s*((@)option\\\\\\\\b)\\\\\\\\s*\",\"name\":\"meta.at-rule.option.scss\"},\"at_rule_page\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((@)page)(?=:|\\\\\\\\s)\\\\\\\\s*([-:\\\\\\\\w]*)\",\"captures\":{\"1\":{\"name\":\"keyword.control.at-rule.page.scss\"},\"2\":{\"name\":\"punctuation.definition.keyword.scss\"},\"3\":{\"name\":\"entity.name.function.scss\"}},\"end\":\"\\\\\\\\s*(?={)\",\"name\":\"meta.at-rule.page.scss\"}]},\"at_rule_return\":{\"begin\":\"\\\\\\\\s*((@)(return)\\\\\\\\b)\",\"captures\":{\"1\":{\"name\":\"keyword.control.return.scss\"},\"2\":{\"name\":\"punctuation.definition.keyword.scss\"}},\"end\":\"\\\\\\\\s*((?=;))\",\"name\":\"meta.at-rule.return.scss\",\"patterns\":[{\"include\":\"#variable\"},{\"include\":\"#property_values\"}]},\"at_rule_supports\":{\"begin\":\"(?<=^|\\\\\\\\s)(@)supports\\\\\\\\b\",\"captures\":{\"0\":{\"name\":\"keyword.control.at-rule.supports.scss\"},\"1\":{\"name\":\"punctuation.definition.keyword.scss\"}},\"end\":\"(?={)|$\",\"name\":\"meta.at-rule.supports.scss\",\"patterns\":[{\"include\":\"#logical_operators\"},{\"include\":\"#properties\"},{\"match\":\"\\\\\\\\(\",\"name\":\"punctuation.definition.condition.begin.bracket.round.scss\"},{\"match\":\"\\\\\\\\)\",\"name\":\"punctuation.definition.condition.end.bracket.round.scss\"}]},\"at_rule_use\":{\"begin\":\"\\\\\\\\s*((@)use\\\\\\\\b)\\\\\\\\s*\",\"captures\":{\"1\":{\"name\":\"keyword.control.at-rule.use.scss\"},\"2\":{\"name\":\"punctuation.definition.keyword.scss\"}},\"end\":\"\\\\\\\\s*(?=;)\",\"name\":\"meta.at-rule.use.scss\",\"patterns\":[{\"match\":\"\\\\\\\\b(as|with)\\\\\\\\b\",\"name\":\"keyword.control.operator\"},{\"match\":\"\\\\\\\\b[\\\\\\\\w-]+\\\\\\\\b\",\"name\":\"variable.scss\"},{\"match\":\"\\\\\\\\*\",\"name\":\"variable.language.expanded-namespace.scss\"},{\"include\":\"#string_single\"},{\"include\":\"#string_double\"},{\"include\":\"#comment_line\"},{\"include\":\"#comment_block\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.begin.bracket.round.scss\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.bracket.round.scss\"}},\"patterns\":[{\"include\":\"#function_attributes\"}]}]},\"at_rule_warn\":{\"begin\":\"\\\\\\\\s*((@)(warn|debug|error)\\\\\\\\b)\\\\\\\\s*\",\"captures\":{\"1\":{\"name\":\"keyword.control.warn.scss\"},\"2\":{\"name\":\"punctuation.definition.keyword.scss\"}},\"end\":\"\\\\\\\\s*(?=;)\",\"name\":\"meta.at-rule.warn.scss\",\"patterns\":[{\"include\":\"#variable\"},{\"include\":\"#string_double\"},{\"include\":\"#string_single\"}]},\"at_rule_while\":{\"begin\":\"\\\\\\\\s*((@)while\\\\\\\\b)\\\\\\\\s*\",\"captures\":{\"1\":{\"name\":\"keyword.control.while.scss\"},\"2\":{\"name\":\"punctuation.definition.keyword.scss\"}},\"end\":\"\\\\\\\\s*(?=})\",\"name\":\"meta.at-rule.while.scss\",\"patterns\":[{\"include\":\"#conditional_operators\"},{\"include\":\"#variable\"},{\"include\":\"#property_values\"},{\"include\":\"$self\"}]},\"comment_block\":{\"begin\":\"/\\\\\\\\*\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.scss\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.scss\"}},\"name\":\"comment.block.scss\"},\"comment_docblock\":{\"begin\":\"///\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.scss\"}},\"end\":\"(?=$)\",\"name\":\"comment.block.documentation.scss\",\"patterns\":[{\"include\":\"source.sassdoc\"}]},\"comment_line\":{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.scss\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.scss\"},\"comparison_operators\":{\"match\":\"==|!=|<=|>=|<|>\",\"name\":\"keyword.operator.comparison.scss\"},\"conditional_operators\":{\"patterns\":[{\"include\":\"#comparison_operators\"},{\"include\":\"#logical_operators\"}]},\"constant_default\":{\"match\":\"!default\",\"name\":\"keyword.other.default.scss\"},\"constant_functions\":{\"begin\":\"(?:([\\\\\\\\w-]+)(\\\\\\\\.))?([\\\\\\\\w-]+)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"variable.scss\"},\"2\":{\"name\":\"punctuation.access.module.scss\"},\"3\":{\"name\":\"support.function.misc.scss\"},\"4\":{\"name\":\"punctuation.section.function.scss\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.function.scss\"}},\"patterns\":[{\"include\":\"#parameters\"}]},\"constant_important\":{\"match\":\"!important\",\"name\":\"keyword.other.important.scss\"},\"constant_mathematical_symbols\":{\"match\":\"\\\\\\\\b(\\\\\\\\+|-|\\\\\\\\*|/)\\\\\\\\b\",\"name\":\"support.constant.mathematical-symbols.scss\"},\"constant_optional\":{\"match\":\"!optional\",\"name\":\"keyword.other.optional.scss\"},\"constant_sass_functions\":{\"begin\":\"(headings|stylesheet-url|rgba?|hsla?|ie-hex-str|red|green|blue|alpha|opacity|hue|saturation|lightness|prefixed|prefix|-moz|-svg|-css2|-pie|-webkit|-ms|font-(?:files|url)|grid-image|image-(?:width|height|url|color)|sprites?|sprite-(?:map|map-name|file|url|position)|inline-(?:font-files|image)|opposite-position|grad-point|grad-end-position|color-stops|color-stops-in-percentages|grad-color-stops|(?:radial|linear)-(?:gradient|svg-gradient)|opacify|fade-?in|transparentize|fade-?out|lighten|darken|saturate|desaturate|grayscale|adjust-(?:hue|lightness|saturation|color)|scale-(?:lightness|saturation|color)|change-color|spin|complement|invert|mix|-compass-(?:list|space-list|slice|nth|list-size)|blank|compact|nth|first-value-of|join|length|append|nest|append-selector|headers|enumerate|range|percentage|unitless|unit|if|type-of|comparable|elements-of-type|quote|unquote|escape|e|sin|cos|tan|abs|round|ceil|floor|pi|translate(?:X|Y))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.misc.scss\"},\"2\":{\"name\":\"punctuation.section.function.scss\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.function.scss\"}},\"patterns\":[{\"include\":\"#parameters\"}]},\"flow_control\":{\"patterns\":[{\"include\":\"#at_rule_if\"},{\"include\":\"#at_rule_else\"},{\"include\":\"#at_rule_warn\"},{\"include\":\"#at_rule_for\"},{\"include\":\"#at_rule_while\"},{\"include\":\"#at_rule_each\"},{\"include\":\"#at_rule_return\"}]},\"function_attributes\":{\"patterns\":[{\"match\":\":\",\"name\":\"punctuation.separator.key-value.scss\"},{\"include\":\"#general\"},{\"include\":\"#property_values\"},{\"match\":\"[={}\\\\\\\\?;@]\",\"name\":\"invalid.illegal.scss\"}]},\"functions\":{\"patterns\":[{\"begin\":\"([\\\\\\\\w-]{1,})(\\\\\\\\()\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.misc.scss\"},\"2\":{\"name\":\"punctuation.section.function.scss\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.function.scss\"}},\"patterns\":[{\"include\":\"#parameters\"}]},{\"match\":\"([\\\\\\\\w-]{1,})\",\"name\":\"support.function.misc.scss\"}]},\"general\":{\"patterns\":[{\"include\":\"#variable\"},{\"include\":\"#comment_docblock\"},{\"include\":\"#comment_block\"},{\"include\":\"#comment_line\"}]},\"interpolation\":{\"begin\":\"#{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.interpolation.begin.bracket.curly.scss\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.interpolation.end.bracket.curly.scss\"}},\"name\":\"variable.interpolation.scss\",\"patterns\":[{\"include\":\"#variable\"},{\"include\":\"#property_values\"}]},\"logical_operators\":{\"match\":\"\\\\\\\\b(not|or|and)\\\\\\\\b\",\"name\":\"keyword.operator.logical.scss\"},\"map\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.map.begin.bracket.round.scss\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.map.end.bracket.round.scss\"}},\"name\":\"meta.definition.variable.map.scss\",\"patterns\":[{\"include\":\"#comment_docblock\"},{\"include\":\"#comment_block\"},{\"include\":\"#comment_line\"},{\"captures\":{\"1\":{\"name\":\"support.type.map.key.scss\"},\"2\":{\"name\":\"punctuation.separator.key-value.scss\"}},\"match\":\"\\\\\\\\b([\\\\\\\\w-]+)\\\\\\\\s*(:)\"},{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.scss\"},{\"include\":\"#map\"},{\"include\":\"#variable\"},{\"include\":\"#property_values\"}]},\"operators\":{\"match\":\"[-+*/](?!\\\\\\\\s*[-+*/])\",\"name\":\"keyword.operator.css\"},\"parameters\":{\"patterns\":[{\"include\":\"#variable\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.begin.bracket.round.scss\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.round.scss\"}},\"patterns\":[{\"include\":\"#function_attributes\"}]},{\"include\":\"#property_values\"},{\"include\":\"#comment_block\"},{\"match\":\"[^'\\\\\",) \\\\\\\\t]+\",\"name\":\"variable.parameter.url.scss\"},{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.scss\"}]},\"parent_selector_suffix\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.css\"},\"2\":{\"patterns\":[{\"include\":\"#interpolation\"},{\"match\":\"\\\\\\\\\\\\\\\\([0-9a-fA-F]{1,6}|.)\",\"name\":\"constant.character.escape.scss\"},{\"match\":\"\\\\\\\\$|}\",\"name\":\"invalid.illegal.identifier.scss\"}]}},\"match\":\"(?<=&)((?:[-a-zA-Z_0-9]|[^\\\\\\\\x00-\\\\\\\\x7F]|\\\\\\\\\\\\\\\\(?:[0-9a-fA-F]{1,6}|.)|\\\\\\\\#\\\\\\\\{|\\\\\\\\$|})+)(?=$|[\\\\\\\\s,.\\\\\\\\#)\\\\\\\\[:{>+~|]|/\\\\\\\\*)\",\"name\":\"entity.other.attribute-name.parent-selector-suffix.css\"},\"properties\":{\"patterns\":[{\"begin\":\"(?<![-a-z])(?=[-a-z])\",\"end\":\"$|(?![-a-z])\",\"name\":\"meta.property-name.scss\",\"patterns\":[{\"include\":\"source.css#property-names\"},{\"include\":\"#at_rule_include\"}]},{\"begin\":\"(:)\\\\\\\\s*(?!(\\\\\\\\s*{))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.key-value.scss\"}},\"contentName\":\"meta.property-value.scss\",\"end\":\"\\\\\\\\s*(;|(?=}|\\\\\\\\)))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.rule.scss\"}},\"patterns\":[{\"include\":\"#general\"},{\"include\":\"#property_values\"}]}]},\"property_list\":{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.property-list.begin.bracket.curly.scss\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.property-list.end.bracket.curly.scss\"}},\"name\":\"meta.property-list.scss\",\"patterns\":[{\"include\":\"#flow_control\"},{\"include\":\"#rules\"},{\"include\":\"#properties\"},{\"include\":\"$self\"}]},\"property_values\":{\"patterns\":[{\"include\":\"#string_single\"},{\"include\":\"#string_double\"},{\"include\":\"#constant_functions\"},{\"include\":\"#constant_sass_functions\"},{\"include\":\"#constant_important\"},{\"include\":\"#constant_default\"},{\"include\":\"#constant_optional\"},{\"include\":\"source.css#numeric-values\"},{\"include\":\"source.css#property-keywords\"},{\"include\":\"source.css#color-keywords\"},{\"include\":\"source.css#property-names\"},{\"include\":\"#constant_mathematical_symbols\"},{\"include\":\"#operators\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.begin.bracket.round.scss\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.round.scss\"}},\"patterns\":[{\"include\":\"#general\"},{\"include\":\"#property_values\"}]}]},\"rules\":{\"patterns\":[{\"include\":\"#general\"},{\"include\":\"#at_rule_extend\"},{\"include\":\"#at_rule_content\"},{\"include\":\"#at_rule_include\"},{\"include\":\"#at_rule_media\"},{\"include\":\"#selectors\"}]},\"selector_attribute\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.attribute-selector.begin.bracket.square.scss\"},\"2\":{\"name\":\"entity.other.attribute-name.attribute.scss\",\"patterns\":[{\"include\":\"#interpolation\"},{\"match\":\"\\\\\\\\\\\\\\\\([0-9a-fA-F]{1,6}|.)\",\"name\":\"constant.character.escape.scss\"},{\"match\":\"\\\\\\\\$|}\",\"name\":\"invalid.illegal.scss\"}]},\"3\":{\"name\":\"keyword.operator.scss\"},\"4\":{\"name\":\"string.unquoted.attribute-value.scss\",\"patterns\":[{\"include\":\"#interpolation\"},{\"match\":\"\\\\\\\\\\\\\\\\([0-9a-fA-F]{1,6}|.)\",\"name\":\"constant.character.escape.scss\"},{\"match\":\"\\\\\\\\$|}\",\"name\":\"invalid.illegal.scss\"}]},\"5\":{\"name\":\"string.quoted.double.attribute-value.scss\"},\"6\":{\"name\":\"punctuation.definition.string.begin.scss\"},\"7\":{\"patterns\":[{\"include\":\"#interpolation\"},{\"match\":\"\\\\\\\\\\\\\\\\([0-9a-fA-F]{1,6}|.)\",\"name\":\"constant.character.escape.scss\"},{\"match\":\"\\\\\\\\$|}\",\"name\":\"invalid.illegal.scss\"}]},\"8\":{\"name\":\"punctuation.definition.string.end.scss\"},\"9\":{\"name\":\"string.quoted.single.attribute-value.scss\"},\"10\":{\"name\":\"punctuation.definition.string.begin.scss\"},\"11\":{\"patterns\":[{\"include\":\"#interpolation\"},{\"match\":\"\\\\\\\\\\\\\\\\([0-9a-fA-F]{1,6}|.)\",\"name\":\"constant.character.escape.scss\"},{\"match\":\"\\\\\\\\$|}\",\"name\":\"invalid.illegal.scss\"}]},\"12\":{\"name\":\"punctuation.definition.string.end.scss\"},\"13\":{\"name\":\"punctuation.definition.attribute-selector.end.bracket.square.scss\"}},\"match\":\"(?xi)\\\\n(\\\\\\\\[)\\\\n\\\\\\\\s*\\\\n(\\\\n  (?:\\\\n    [-a-zA-Z_0-9]|[^\\\\\\\\x00-\\\\\\\\x7F]       # Valid identifier characters\\\\n    | \\\\\\\\\\\\\\\\(?:[0-9a-fA-F]{1,6}|.)       # Escape sequence\\\\n    | \\\\\\\\#\\\\\\\\{                           # Interpolation (escaped to avoid Coffeelint errors)\\\\n    | \\\\\\\\.?\\\\\\\\$                          # Possible start of interpolation variable\\\\n    | }                                # Possible end of interpolation\\\\n  )+?\\\\n)\\\\n(?:\\\\n  \\\\\\\\s*([~|^$*]?=)\\\\\\\\s*\\\\n  (?:\\\\n    (\\\\n      (?:\\\\n        [-a-zA-Z_0-9]|[^\\\\\\\\x00-\\\\\\\\x7F]       # Valid identifier characters\\\\n        | \\\\\\\\\\\\\\\\(?:[0-9a-fA-F]{1,6}|.)       # Escape sequence\\\\n        | \\\\\\\\#\\\\\\\\{                           # Interpolation (escaped to avoid Coffeelint errors)\\\\n        | \\\\\\\\.?\\\\\\\\$                          # Possible start of interpolation variable\\\\n        | }                                # Possible end of interpolation\\\\n      )+\\\\n    )\\\\n    |\\\\n    ((\\\\\")(.*?)(\\\\\"))\\\\n    |\\\\n    ((')(.*?)('))\\\\n  )\\\\n)?\\\\n\\\\\\\\s*\\\\n(\\\\\\\\])\",\"name\":\"meta.attribute-selector.scss\"},\"selector_class\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.css\"},\"2\":{\"patterns\":[{\"include\":\"#interpolation\"},{\"match\":\"\\\\\\\\\\\\\\\\([0-9a-fA-F]{1,6}|.)\",\"name\":\"constant.character.escape.scss\"},{\"match\":\"\\\\\\\\$|}\",\"name\":\"invalid.illegal.scss\"}]}},\"match\":\"(\\\\\\\\.)((?:[-a-zA-Z_0-9]|[^\\\\\\\\x00-\\\\\\\\x7F]|\\\\\\\\\\\\\\\\(?:[0-9a-fA-F]{1,6}|.)|\\\\\\\\#\\\\\\\\{|\\\\\\\\.?\\\\\\\\$|})+)(?=$|[\\\\\\\\s,\\\\\\\\#)\\\\\\\\[:{>+~|]|\\\\\\\\.[^$]|/\\\\\\\\*|;)\",\"name\":\"entity.other.attribute-name.class.css\"},\"selector_custom\":{\"match\":\"\\\\\\\\b([a-zA-Z0-9]+(-[a-zA-Z0-9]+)+)(?=\\\\\\\\.|\\\\\\\\s++[^:]|\\\\\\\\s*[,\\\\\\\\[{]|:(link|visited|hover|active|focus|target|lang|disabled|enabled|checked|indeterminate|root|nth-(child|last-child|of-type|last-of-type)|first-child|last-child|first-of-type|last-of-type|only-child|only-of-type|empty|not|valid|invalid)(\\\\\\\\([0-9A-Za-z]*\\\\\\\\))?)\",\"name\":\"entity.name.tag.custom.scss\"},\"selector_id\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.css\"},\"2\":{\"patterns\":[{\"include\":\"#interpolation\"},{\"match\":\"\\\\\\\\\\\\\\\\([0-9a-fA-F]{1,6}|.)\",\"name\":\"constant.character.escape.scss\"},{\"match\":\"\\\\\\\\$|}\",\"name\":\"invalid.illegal.identifier.scss\"}]}},\"match\":\"(\\\\\\\\#)((?:[-a-zA-Z_0-9]|[^\\\\\\\\x00-\\\\\\\\x7F]|\\\\\\\\\\\\\\\\(?:[0-9a-fA-F]{1,6}|.)|\\\\\\\\#\\\\\\\\{|\\\\\\\\.?\\\\\\\\$|})+)(?=$|[\\\\\\\\s,\\\\\\\\#)\\\\\\\\[:{>+~|]|\\\\\\\\.[^$]|/\\\\\\\\*)\",\"name\":\"entity.other.attribute-name.id.css\"},\"selector_placeholder\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.css\"},\"2\":{\"patterns\":[{\"include\":\"#interpolation\"},{\"match\":\"\\\\\\\\\\\\\\\\([0-9a-fA-F]{1,6}|.)\",\"name\":\"constant.character.escape.scss\"},{\"match\":\"\\\\\\\\$|}\",\"name\":\"invalid.illegal.identifier.scss\"}]}},\"match\":\"(%)((?:[-a-zA-Z_0-9]|[^\\\\\\\\x00-\\\\\\\\x7F]|\\\\\\\\\\\\\\\\(?:[0-9a-fA-F]{1,6}|.)|\\\\\\\\#\\\\\\\\{|\\\\\\\\.\\\\\\\\$|\\\\\\\\$|})+)(?=;|$|[\\\\\\\\s,\\\\\\\\#)\\\\\\\\[:{>+~|]|\\\\\\\\.[^$]|/\\\\\\\\*)\",\"name\":\"entity.other.attribute-name.placeholder.css\"},\"selector_pseudo_class\":{\"patterns\":[{\"begin\":\"((:)\\\\\\\\bnth-(?:child|last-child|of-type|last-of-type))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.other.attribute-name.pseudo-class.css\"},\"2\":{\"name\":\"punctuation.definition.entity.css\"},\"3\":{\"name\":\"punctuation.definition.pseudo-class.begin.bracket.round.css\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.pseudo-class.end.bracket.round.css\"}},\"patterns\":[{\"include\":\"#interpolation\"},{\"match\":\"\\\\\\\\d+\",\"name\":\"constant.numeric.css\"},{\"match\":\"(?<=\\\\\\\\d)n\\\\\\\\b|\\\\\\\\b(n|even|odd)\\\\\\\\b\",\"name\":\"constant.other.scss\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"invalid.illegal.scss\"}]},{\"include\":\"source.css#pseudo-classes\"},{\"include\":\"source.css#pseudo-elements\"},{\"include\":\"source.css#functional-pseudo-classes\"}]},\"selectors\":{\"patterns\":[{\"include\":\"source.css#tag-names\"},{\"include\":\"#selector_custom\"},{\"include\":\"#selector_class\"},{\"include\":\"#selector_id\"},{\"include\":\"#selector_pseudo_class\"},{\"include\":\"#tag_wildcard\"},{\"include\":\"#tag_parent_reference\"},{\"include\":\"source.css#pseudo-elements\"},{\"include\":\"#selector_attribute\"},{\"include\":\"#selector_placeholder\"},{\"include\":\"#parent_selector_suffix\"}]},\"string_double\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.scss\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.scss\"}},\"name\":\"string.quoted.double.scss\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(\\\\\\\\h{1,6}|.)\",\"name\":\"constant.character.escape.scss\"},{\"include\":\"#interpolation\"}]},\"string_single\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.scss\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.scss\"}},\"name\":\"string.quoted.single.scss\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(\\\\\\\\h{1,6}|.)\",\"name\":\"constant.character.escape.scss\"},{\"include\":\"#interpolation\"}]},\"tag_parent_reference\":{\"match\":\"&\",\"name\":\"entity.name.tag.reference.scss\"},\"tag_wildcard\":{\"match\":\"\\\\\\\\*\",\"name\":\"entity.name.tag.wildcard.scss\"},\"variable\":{\"patterns\":[{\"include\":\"#variables\"},{\"include\":\"#interpolation\"}]},\"variable_setting\":{\"begin\":\"(?=\\\\\\\\$[\\\\\\\\w-]+\\\\\\\\s*:)\",\"contentName\":\"meta.definition.variable.scss\",\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.rule.scss\"}},\"patterns\":[{\"match\":\"\\\\\\\\$[\\\\\\\\w-]+(?=\\\\\\\\s*:)\",\"name\":\"variable.scss\"},{\"begin\":\":\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.key-value.scss\"}},\"end\":\"(?=;)\",\"patterns\":[{\"include\":\"#comment_docblock\"},{\"include\":\"#comment_block\"},{\"include\":\"#comment_line\"},{\"include\":\"#map\"},{\"include\":\"#property_values\"},{\"include\":\"#variable\"},{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.scss\"}]}]},\"variables\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.scss\"},\"2\":{\"name\":\"punctuation.access.module.scss\"},\"3\":{\"name\":\"variable.scss\"}},\"match\":\"\\\\\\\\b([\\\\\\\\w-]+)(\\\\\\\\.)(\\\\\\\\$[\\\\\\\\w-]+)\\\\\\\\b\"},{\"match\":\"(\\\\\\\\$|\\\\\\\\-\\\\\\\\-)[A-Za-z0-9_-]+\\\\\\\\b\",\"name\":\"variable.scss\"}]}},\"scopeName\":\"source.css.scss\",\"embeddedLangs\":[\"css\"]}`)),s=[...e,n];export{s as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BlxRB_8X.js",
    "content": "import t from\"./DRhBOlRY.js\";import e from\"./ySlJ1b_l.js\";import\"./BMYPR7BL.js\";import\"./BPhBrDlE.js\";import\"./Dj6nwHGl.js\";import\"./BQoSv7ci.js\";import\"./e4jU7D2d.js\";const n=Object.freeze(JSON.parse(`{\"displayName\":\"Vue HTML\",\"fileTypes\":[],\"name\":\"vue-html\",\"patterns\":[{\"include\":\"source.vue#vue-interpolations\"},{\"begin\":\"(<)([A-Z][a-zA-Z0-9:-]*)(?=[^>]*></\\\\\\\\2>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"support.class.component.html\"}},\"end\":\"(>)(<)(/)(\\\\\\\\2)(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html\"},\"2\":{\"name\":\"punctuation.definition.tag.begin.html meta.scope.between-tag-pair.html\"},\"3\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"4\":{\"name\":\"support.class.component.html\"},\"5\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(<)([a-z][a-zA-Z0-9:-]*)(?=[^>]*></\\\\\\\\2>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"}},\"end\":\"(>)(<)(/)(\\\\\\\\2)(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html\"},\"2\":{\"name\":\"punctuation.definition.tag.begin.html meta.scope.between-tag-pair.html\"},\"3\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"4\":{\"name\":\"entity.name.tag.html\"},\"5\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(<\\\\\\\\?)(xml)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.xml.html\"}},\"end\":\"(\\\\\\\\?>)\",\"name\":\"meta.tag.preprocessor.xml.html\",\"patterns\":[{\"include\":\"#tag-generic-attribute\"},{\"include\":\"#string-double-quoted\"},{\"include\":\"#string-single-quoted\"}]},{\"begin\":\"<!--\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.html\"}},\"end\":\"-->\",\"name\":\"comment.block.html\"},{\"begin\":\"<!\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.tag.html\"}},\"end\":\">\",\"name\":\"meta.tag.sgml.html\",\"patterns\":[{\"begin\":\"(?i:DOCTYPE)\",\"captures\":{\"1\":{\"name\":\"entity.name.tag.doctype.html\"}},\"end\":\"(?=>)\",\"name\":\"meta.tag.sgml.doctype.html\",\"patterns\":[{\"match\":\"\\\\\"[^\\\\\">]*\\\\\"\",\"name\":\"string.quoted.double.doctype.identifiers-and-DTDs.html\"}]},{\"begin\":\"\\\\\\\\[CDATA\\\\\\\\[\",\"end\":\"]](?=>)\",\"name\":\"constant.other.inline-data.html\"},{\"match\":\"(\\\\\\\\s*)(?!--|>)\\\\\\\\S(\\\\\\\\s*)\",\"name\":\"invalid.illegal.bad-comments-or-CDATA.html\"}]},{\"begin\":\"(</?)([A-Z][a-zA-Z0-9:-]*\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"support.class.component.html\"}},\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.block.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(</?)([a-z][a-zA-Z0-9:-]*\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.block.any.html\"}},\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.block.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(</?)((?i:body|head|html)\\\\\\\\b)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.structure.any.html\"}},\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.structure.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(</?)((?i:address|blockquote|dd|div|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|menu|pre)(?!-)\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.block.any.html\"}},\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.block.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(</?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var)(?!-)\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.inline.any.html\"}},\"end\":\"(/?>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.inline.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(</?)([a-zA-Z0-9:-]+)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.other.html\"}},\"end\":\"(/?>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.other.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"include\":\"#entities\"},{\"match\":\"<>\",\"name\":\"invalid.illegal.incomplete.html\"},{\"match\":\"<\",\"name\":\"invalid.illegal.bad-angle-bracket.html\"}],\"repository\":{\"entities\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.html\"},\"3\":{\"name\":\"punctuation.definition.entity.html\"}},\"match\":\"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)\",\"name\":\"constant.character.entity.html\"},{\"match\":\"&\",\"name\":\"invalid.illegal.bad-ampersand.html\"}]},\"string-double-quoted\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"string.quoted.double.html\",\"patterns\":[{\"include\":\"source.vue#vue-interpolations\"},{\"include\":\"#entities\"}]},\"string-single-quoted\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"string.quoted.single.html\",\"patterns\":[{\"include\":\"source.vue#vue-interpolations\"},{\"include\":\"#entities\"}]},\"tag-generic-attribute\":{\"match\":\"(?<=[^=])\\\\\\\\b([a-zA-Z0-9:\\\\\\\\-_]+)\",\"name\":\"entity.other.attribute-name.html\"},\"tag-id-attribute\":{\"begin\":\"\\\\\\\\b(id)\\\\\\\\b\\\\\\\\s*(=)\",\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.id.html\"},\"2\":{\"name\":\"punctuation.separator.key-value.html\"}},\"end\":\"(?!\\\\\\\\G)(?<='|\\\\\"|[^\\\\\\\\s<>/])\",\"name\":\"meta.attribute-with-value.id.html\",\"patterns\":[{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"contentName\":\"meta.toc-list.id.html\",\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"string.quoted.double.html\",\"patterns\":[{\"include\":\"source.vue#vue-interpolations\"},{\"include\":\"#entities\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"contentName\":\"meta.toc-list.id.html\",\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"string.quoted.single.html\",\"patterns\":[{\"include\":\"source.vue#vue-interpolations\"},{\"include\":\"#entities\"}]},{\"captures\":{\"0\":{\"name\":\"meta.toc-list.id.html\"}},\"match\":\"(?<==)(?:[^\\\\\\\\s<>/'\\\\\"]|/(?!>))+\",\"name\":\"string.unquoted.html\"}]},\"tag-stuff\":{\"patterns\":[{\"include\":\"#vue-directives\"},{\"include\":\"#tag-id-attribute\"},{\"include\":\"#tag-generic-attribute\"},{\"include\":\"#string-double-quoted\"},{\"include\":\"#string-single-quoted\"},{\"include\":\"#unquoted-attribute\"}]},\"unquoted-attribute\":{\"match\":\"(?<==)(?:[^\\\\\\\\s<>/'\\\\\"]|/(?!>))+\",\"name\":\"string.unquoted.html\"},\"vue-directives\":{\"begin\":\"(?:\\\\\\\\b(v-)|(:|@|#))([a-zA-Z0-9\\\\\\\\-_]+)(?:\\\\\\\\:([a-zA-Z\\\\\\\\-_]+))?(?:\\\\\\\\.([a-zA-Z\\\\\\\\-_]+))*\\\\\\\\s*(=)\",\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.html\"},\"2\":{\"name\":\"punctuation.separator.key-value.html\"},\"3\":{\"name\":\"entity.other.attribute-name.html\"},\"4\":{\"name\":\"entity.other.attribute-name.html\"},\"5\":{\"name\":\"entity.other.attribute-name.html\"},\"6\":{\"name\":\"punctuation.separator.key-value.html\"}},\"end\":\"(?<='|\\\\\")|(?=[\\\\\\\\s<>\\`])\",\"name\":\"meta.directive.vue\",\"patterns\":[{\"begin\":\"\\`\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"end\":\"\\`\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"source.directive.vue\",\"patterns\":[{\"include\":\"source.js#expression\"}]},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"source.directive.vue\",\"patterns\":[{\"include\":\"source.js#expression\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"source.directive.vue\",\"patterns\":[{\"include\":\"source.js#expression\"}]}]}},\"scopeName\":\"text.html.vue-html\",\"embeddedLangs\":[\"vue\",\"javascript\"],\"embeddedLangsLazy\":[]}`)),d=[...t,...e,n];export{d as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BoXegm-a.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"D\",\"fileTypes\":[\"d\",\"di\",\"dpp\"],\"name\":\"d\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type\"},{\"include\":\"#statement\"},{\"include\":\"#expression\"}],\"repository\":{\"aggregate-declaration\":{\"patterns\":[{\"include\":\"#class-declaration\"},{\"include\":\"#interface-declaration\"},{\"include\":\"#struct-declaration\"},{\"include\":\"#union-declaration\"},{\"include\":\"#mixin-template-declaration\"},{\"include\":\"#template-declaration\"}]},\"alias-declaration\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(alias)\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.alias.d\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"meta.alias.end.d\"}},\"patterns\":[{\"include\":\"#type\"},{\"match\":\"=(?![=>])\",\"name\":\"keyword.operator.equal.alias.d\"},{\"include\":\"#expression\"}]}]},\"align-attribute\":{\"patterns\":[{\"begin\":\"\\\\\\\\balign\\\\\\\\s*\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"name\":\"storage.modifier.align-attribute.d\",\"patterns\":[{\"include\":\"#integer-literal\"}]},{\"match\":\"\\\\\\\\balign\\\\\\\\b\\\\\\\\s*(?!\\\\\\\\()\",\"name\":\"storage.modifier.align-attribute.d\"}]},\"alternate-wysiwyg-string\":{\"patterns\":[{\"begin\":\"\\`\",\"end\":\"\\`[cwd]?\",\"name\":\"string.alternate-wysiwyg-string.d\",\"patterns\":[{\"include\":\"#wysiwyg-characters\"}]}]},\"arbitrary-delimited-string\":{\"begin\":\"q\\\\\"(\\\\\\\\w+)\",\"end\":\"\\\\\\\\1\\\\\"\",\"name\":\"string.delimited.d\",\"patterns\":[{\"match\":\".\",\"name\":\"string.delimited.d\"}]},\"arithmetic-expression\":{\"patterns\":[{\"match\":\"\\\\\\\\^\\\\\\\\^|\\\\\\\\+\\\\\\\\+|--|(?<!/)\\\\\\\\+(?!/)|-|~|(?<!/)\\\\\\\\*(?!/)|(?<![+*/])/(?![+*/])|%\",\"name\":\"keyword.operator.numeric.d\"}]},\"asm-instruction\":{\"patterns\":[{\"include\":\"#comment\"},{\"match\":\"\\\\\\\\b(align|even|naked|db|ds|di|dl|df|dd|de)\\\\\\\\b|:\",\"name\":\"keyword.asm-instruction.d\"},{\"match\":\"\\\\\\\\b__LOCAL_SIZE\\\\\\\\b\",\"name\":\"constant.language.assembly.d\"},{\"match\":\"\\\\\\\\b(offsetof|seg)\\\\\\\\b\",\"name\":\"support.type.assembly.d\"},{\"include\":\"#asm-type-prefix\"},{\"include\":\"#asm-primary-expression\"},{\"include\":\"#operands\"},{\"include\":\"#register\"},{\"include\":\"#register-64\"},{\"include\":\"#float-literal\"},{\"include\":\"#integer-literal\"},{\"include\":\"#identifier\"}]},\"asm-statement\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(asm)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\{)\",\"captures\":{\"1\":{\"name\":\"keyword.control.switch.d\"}},\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.asm.begin.d\"}},\"contentName\":\"gfm.markup.raw.assembly.d\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.asm.end.d\"}},\"patterns\":[{\"include\":\"#asm-instruction\"}]}]}]},\"asm-type-prefix\":{\"patterns\":[{\"match\":\"\\\\\\\\b((near\\\\\\\\s+ptr)|(far\\\\\\\\s+ptr)|(byte\\\\\\\\s+ptr)|(short\\\\\\\\s+ptr)|(int\\\\\\\\s+ptr)|(word\\\\\\\\s+ptr)|(dword\\\\\\\\s+ptr)|(qword\\\\\\\\s+ptr)|(float\\\\\\\\s+ptr)|(double\\\\\\\\s+ptr)|(real\\\\\\\\s+ptr))\\\\\\\\b\",\"name\":\"support.type.asm-type-prefix.d\"}]},\"assert-expression\":{\"patterns\":[{\"begin\":\"\\\\\\\\bassert\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.assert.begin.d\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"keyword.other.assert.end.d\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#expression\"},{\"include\":\"#comma\"}]}]},\"assign-expression\":{\"patterns\":[{\"match\":\">>>=|\\\\\\\\^\\\\\\\\^=|>>=|<<=|~=|\\\\\\\\^=|\\\\\\\\|=|&=|%=|/=|\\\\\\\\*=|-=|\\\\\\\\+=|=(?!>)\",\"name\":\"keyword.operator.assign.d\"}]},\"attribute\":{\"patterns\":[{\"include\":\"#linkage-attribute\"},{\"include\":\"#align-attribute\"},{\"include\":\"#deprecated-attribute\"},{\"include\":\"#protection-attribute\"},{\"include\":\"#pragma\"},{\"match\":\"\\\\\\\\b(static|extern|abstract|final|override|synchronized|auto|scope|const|immutable|inout|shared|__gshared|nothrow|pure|ref)\\\\\\\\b\",\"name\":\"entity.other.attribute-name.d\"},{\"include\":\"#property\"}]},\"base-type\":{\"patterns\":[{\"match\":\"\\\\\\\\b(auto|bool|byte|ubyte|short|ushort|int|uint|long|ulong|char|wchar|dchar|float|double|real|ifloat|idouble|ireal|cfloat|cdouble|creal|void|noreturn)\\\\\\\\b\",\"name\":\"storage.type.basic-type.d\"},{\"match\":\"\\\\\\\\b(string|wstring|dstring|size_t|ptrdiff_t)\\\\\\\\b(?!\\\\\\\\s*=)\",\"name\":\"storage.type.basic-type.d\"}]},\"binary-integer\":{\"patterns\":[{\"match\":\"\\\\\\\\b(0b|0B)[0-1_]+(Lu|LU|uL|UL|L|u|U)?\\\\\\\\b\",\"name\":\"constant.numeric.integer.binary.d\"}]},\"bitwise-expression\":{\"patterns\":[{\"match\":\"\\\\\\\\||\\\\\\\\^|&\",\"name\":\"keyword.operator.bitwise.d\"}]},\"block-comment\":{\"patterns\":[{\"begin\":\"/((?!\\\\\\\\*/)\\\\\\\\*)+\",\"beginCaptures\":{\"0\":{\"name\":\"comment.block.begin.d\"}},\"end\":\"\\\\\\\\*+/\",\"endCaptures\":{\"0\":{\"name\":\"comment.block.end.d\"}},\"name\":\"comment.block.content.d\"}]},\"break-statement\":{\"patterns\":[{\"match\":\"\\\\\\\\bbreak\\\\\\\\b\",\"name\":\"keyword.control.break.d\"}]},\"case-statement\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(case)\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.case.range.d\"}},\"end\":\":\",\"endCaptures\":{\"0\":{\"name\":\"meta.case.end.d\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#expression\"},{\"include\":\"#comma\"}]}]},\"cast-expression\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(cast)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.cast.d\"},\"2\":{\"name\":\"keyword.operator.cast.begin.d\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.cast.end.d\"}},\"patterns\":[{\"include\":\"#type\"},{\"include\":\"#extended-type\"}]}]},\"catch\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(catch)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\()\",\"captures\":{\"1\":{\"name\":\"keyword.control.catch.d\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"source.d\"}]}]}]},\"catches\":{\"patterns\":[{\"include\":\"#catch\"}]},\"character\":{\"patterns\":[{\"match\":\"[\\\\\\\\w\\\\\\\\s]+\",\"name\":\"string.character.d\"}]},\"character-literal\":{\"patterns\":[{\"begin\":\"'\",\"end\":\"'\",\"name\":\"string.character-literal.d\",\"patterns\":[{\"include\":\"#character\"},{\"include\":\"#escape-sequence\"}]}]},\"class-declaration\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.class.d\"},\"2\":{\"name\":\"entity.name.class.d\"}},\"match\":\"\\\\\\\\b(class)(?:\\\\\\\\s+([A-Za-z_][\\\\\\\\w_\\\\\\\\d]*))?\\\\\\\\b\"},{\"include\":\"#protection-attribute\"},{\"include\":\"#class-members\"}]},\"class-members\":{\"patterns\":[{\"include\":\"#shared-static-constructor\"},{\"include\":\"#shared-static-destructor\"},{\"include\":\"#constructor\"},{\"include\":\"#destructor\"},{\"include\":\"#postblit\"},{\"include\":\"#invariant\"},{\"include\":\"#member-function-attribute\"}]},\"colon\":{\"patterns\":[{\"match\":\":\",\"name\":\"support.type.colon.d\"}]},\"comma\":{\"patterns\":[{\"match\":\",\",\"name\":\"keyword.operator.comma.d\"}]},\"comment\":{\"patterns\":[{\"include\":\"#block-comment\"},{\"include\":\"#line-comment\"},{\"include\":\"#nesting-block-comment\"}]},\"condition\":{\"patterns\":[{\"include\":\"#version-condition\"},{\"include\":\"#debug-condition\"},{\"include\":\"#static-if-condition\"}]},\"conditional-declaration\":{\"patterns\":[{\"include\":\"#condition\"},{\"match\":\"\\\\\\\\belse\\\\\\\\b\",\"name\":\"keyword.control.else.d\"},{\"include\":\"#colon\"},{\"include\":\"#decl-defs\"}]},\"conditional-expression\":{\"patterns\":[{\"match\":\"\\\\\\\\s(\\\\\\\\?|:)\\\\\\\\s\",\"name\":\"keyword.operator.ternary.d\"}]},\"conditional-statement\":{\"patterns\":[{\"include\":\"#condition\"},{\"include\":\"#no-scope-non-empty-statement\"},{\"match\":\"\\\\\\\\belse\\\\\\\\b\",\"name\":\"keyword.control.else.d\"}]},\"constructor\":{\"patterns\":[{\"match\":\"\\\\\\\\bthis\\\\\\\\b\",\"name\":\"entity.name.function.constructor.d\"}]},\"continue-statement\":{\"patterns\":[{\"match\":\"\\\\\\\\bcontinue\\\\\\\\b\",\"name\":\"keyword.control.continue.d\"}]},\"debug-condition\":{\"patterns\":[{\"begin\":\"\\\\\\\\bdebug\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.debug.identifier.begin.d\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"keyword.other.debug.identifier.end.d\"}},\"patterns\":[{\"include\":\"#integer-literal\"},{\"include\":\"#identifier\"}]},{\"match\":\"\\\\\\\\bdebug\\\\\\\\b\\\\\\\\s*(?!\\\\\\\\()\",\"name\":\"keyword.other.debug.plain.d\"}]},\"debug-specification\":{\"patterns\":[{\"match\":\"\\\\\\\\bdebug\\\\\\\\b\\\\\\\\s*(?==)\",\"name\":\"keyword.other.debug-specification.d\"}]},\"decimal-float\":{\"patterns\":[{\"match\":\"\\\\\\\\b((\\\\\\\\.[0-9])|(0\\\\\\\\.)|(([1-9]|(0[1-9_]))[0-9_]*\\\\\\\\.))[0-9_]*((e-|E-|e\\\\\\\\+|E\\\\\\\\+|e|E)[0-9][0-9_]*)?[LfF]?i?\\\\\\\\b\",\"name\":\"constant.numeric.float.decimal.d\"}]},\"decimal-integer\":{\"patterns\":[{\"match\":\"\\\\\\\\b(0(?=[^\\\\\\\\dxXbB]))|([1-9][0-9_]*)(Lu|LU|uL|UL|L|u|U)?\\\\\\\\b\",\"name\":\"constant.numeric.integer.decimal.d\"}]},\"declaration\":{\"patterns\":[{\"include\":\"#alias-declaration\"},{\"include\":\"#aggregate-declaration\"},{\"include\":\"#enum-declaration\"},{\"include\":\"#import-declaration\"},{\"include\":\"#storage-class\"},{\"include\":\"#void-initializer\"},{\"include\":\"#mixin-declaration\"}]},\"declaration-statement\":{\"patterns\":[{\"include\":\"#declaration\"}]},\"default-statement\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.case.default.d\"},\"2\":{\"name\":\"meta.default.colon.d\"}},\"match\":\"\\\\\\\\b(default)\\\\\\\\s*(:)\"}]},\"delete-expression\":{\"patterns\":[{\"match\":\"\\\\\\\\bdelete\\\\\\\\s+\",\"name\":\"keyword.other.delete.d\"}]},\"delimited-string\":{\"begin\":\"q\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.delimited.d\",\"patterns\":[{\"include\":\"#delimited-string-bracket\"},{\"include\":\"#delimited-string-parens\"},{\"include\":\"#delimited-string-angle-brackets\"},{\"include\":\"#delimited-string-braces\"}]},\"delimited-string-angle-brackets\":{\"patterns\":[{\"begin\":\"<\",\"end\":\">\",\"name\":\"constant.character.angle-brackets.d\",\"patterns\":[{\"include\":\"#wysiwyg-characters\"}]}]},\"delimited-string-braces\":{\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"end\":\"\\\\\\\\}\",\"name\":\"constant.character.delimited.braces.d\",\"patterns\":[{\"include\":\"#wysiwyg-characters\"}]}]},\"delimited-string-bracket\":{\"patterns\":[{\"begin\":\"\\\\\\\\[\",\"end\":\"\\\\\\\\]\",\"name\":\"constant.characters.delimited.brackets.d\",\"patterns\":[{\"include\":\"#wysiwyg-characters\"}]}]},\"delimited-string-parens\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"name\":\"constant.character.delimited.parens.d\",\"patterns\":[{\"include\":\"#wysiwyg-characters\"}]}]},\"deprecated-statement\":{\"patterns\":[{\"begin\":\"\\\\\\\\bdeprecated\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.deprecated.begin.d\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"keyword.other.deprecated.end.d\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#expression\"},{\"include\":\"#comma\"}]},{\"match\":\"\\\\\\\\bdeprecated\\\\\\\\b\\\\\\\\s*(?!\\\\\\\\()\",\"name\":\"keyword.other.deprecated.plain.d\"}]},\"destructor\":{\"patterns\":[{\"match\":\"\\\\\\\\b~this\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\)\",\"name\":\"entity.name.class.destructor.d\"}]},\"do-statement\":{\"patterns\":[{\"match\":\"\\\\\\\\bdo\\\\\\\\b\",\"name\":\"keyword.control.do.d\"}]},\"double-quoted-characters\":{\"patterns\":[{\"include\":\"#character\"},{\"include\":\"#end-of-line\"},{\"include\":\"#escape-sequence\"}]},\"double-quoted-string\":{\"patterns\":[{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"[cwd]?\",\"name\":\"string.double-quoted-string.d\",\"patterns\":[{\"include\":\"#double-quoted-characters\"}]}]},\"end-of-line\":{\"patterns\":[{\"match\":\"\\\\\\\\n+\",\"name\":\"string.character.end-of-line.d\"}]},\"enum-declaration\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(enum)\\\\\\\\b\\\\\\\\s+(?=.*[=;])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.enum.d\"}},\"end\":\"([A-Za-z_][\\\\\\\\w_\\\\\\\\d]*)\\\\\\\\s*(?=;|=|\\\\\\\\()(;)?\",\"endCaptures\":{\"1\":{\"name\":\"entity.name.type.enum.d\"},\"2\":{\"name\":\"meta.enum.end.d\"}},\"patterns\":[{\"include\":\"#type\"},{\"include\":\"#extended-type\"},{\"match\":\"=(?![=>])\",\"name\":\"keyword.operator.equal.alias.d\"}]}]},\"eof\":{\"patterns\":[{\"begin\":\"__EOF__\",\"beginCaptures\":{\"0\":{\"name\":\"comment.block.documentation.eof.start.d\"}},\"end\":\"(?!__NEVER_MATCH__)__NEVER_MATCH__\",\"name\":\"text.eof.d\"}]},\"equal\":{\"patterns\":[{\"match\":\"=(?![=>])\",\"name\":\"keyword.operator.equal.d\"}]},\"escape-sequence\":{\"patterns\":[{\"match\":\"(\\\\\\\\\\\\\\\\(?:quot|amp|lt|gt|OElig|oelig|Scaron|scaron|Yuml|circ|tilde|ensp|emsp|thinsp|zwnj|zwj|lrm|rlm|ndash|mdash|lsquo|rsquo|sbquo|ldquo|rdquo|bdquo|dagger|Dagger|permil|lsaquo|rsaquo|euro|nbsp|iexcl|cent|pound|curren|yen|brvbar|sect|uml|copy|ordf|laquo|not|shy|reg|macr|deg|plusmn|sup2|sup3|acute|micro|para|middot|cedil|sup1|ordm|raquo|frac14|frac12|frac34|iquest|Agrave|Aacute|Acirc|Atilde|Auml|Aring|Aelig|Ccedil|egrave|eacute|ecirc|iuml|eth|ntilde|ograve|oacute|ocirc|otilde|ouml|divide|oslash|ugrave|uacute|ucirc|uuml|yacute|thorn|yuml|fnof|Alpha|Beta|Gamma|Delta|Epsilon|Zeta|Eta|Theta|Iota|Kappa|Lambda|Mu|Nu|Xi|Omicron|Pi|Rho|Sigma|Tau|Upsilon|Phi|Chi|Psi|Omega|alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigmaf|sigma|tau|upsilon|phi|chi|psi|omega|thetasym|upsih|piv|bull|hellip|prime|Prime|oline|frasl|weierp|image|real|trade|alefsym|larr|uarr|rarr|darr|harr|crarr|lArr|uArr|rArr|dArr|hArr|forall|part|exist|empty|nabla|isin|notin|ni|prod|sum|minux|lowast|radic|prop|infin|ang|and|or|cap|cup|int|there4|sim|cong|asymp|ne|equiv|le|ge|sub|sup|nsub|sube|supe|oplus|otimes|perp|sdot|lceil|rceil|lfloor|rfloor|loz|spades|clubs|hearts|diams|lang|rang))\",\"name\":\"constant.character.escape-sequence.entity.d\"},{\"match\":\"(\\\\\\\\\\\\\\\\x[0-9a-fA-F_]{2}|\\\\\\\\\\\\\\\\u[0-9a-fA-F_]{4}|\\\\\\\\\\\\\\\\U[0-9a-fA-F_]{8}|\\\\\\\\\\\\\\\\[0-7]{1,3})\",\"name\":\"constant.character.escape-sequence.number.d\"},{\"match\":\"(\\\\\\\\\\\\\\\\t|\\\\\\\\\\\\\\\\'|\\\\\\\\\\\\\\\\\\\\\"|\\\\\\\\\\\\\\\\\\\\\\\\?|\\\\\\\\\\\\\\\\0|\\\\\\\\\\\\\\\\a|\\\\\\\\\\\\\\\\b|\\\\\\\\\\\\\\\\f|\\\\\\\\\\\\\\\\n|\\\\\\\\\\\\\\\\r|\\\\\\\\\\\\\\\\v|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\)\",\"name\":\"constant.character.escape-sequence.d\"}]},\"expression\":{\"patterns\":[{\"include\":\"#index-expression\"},{\"include\":\"#expression-no-index\"}]},\"expression-no-index\":{\"patterns\":[{\"include\":\"#function-literal\"},{\"include\":\"#assert-expression\"},{\"include\":\"#assign-expression\"},{\"include\":\"#mixin-expression\"},{\"include\":\"#import-expression\"},{\"include\":\"#traits-expression\"},{\"include\":\"#is-expression\"},{\"include\":\"#typeid-expression\"},{\"include\":\"#shift-expression\"},{\"include\":\"#logical-expression\"},{\"include\":\"#rel-expression\"},{\"include\":\"#bitwise-expression\"},{\"include\":\"#identity-expression\"},{\"include\":\"#in-expression\"},{\"include\":\"#conditional-expression\"},{\"include\":\"#arithmetic-expression\"},{\"include\":\"#new-expression\"},{\"include\":\"#delete-expression\"},{\"include\":\"#cast-expression\"},{\"include\":\"#type-specialization\"},{\"include\":\"#comma\"},{\"include\":\"#special-keyword\"},{\"include\":\"#functions\"},{\"include\":\"#type\"},{\"include\":\"#parentheses-expression\"},{\"include\":\"#lexical\"}]},\"extended-type\":{\"patterns\":[{\"match\":\"\\\\\\\\b((\\\\\\\\.\\\\\\\\s*)?[_\\\\\\\\w][_\\\\\\\\d\\\\\\\\w]*)(\\\\\\\\s*\\\\\\\\.\\\\\\\\s*[_\\\\\\\\w][_\\\\\\\\d\\\\\\\\w]*)*\\\\\\\\b\",\"name\":\"entity.name.type.d\"},{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.array.expression.begin.d\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"storage.type.array.expression.end.d\"}},\"patterns\":[{\"match\":\"\\\\\\\\.\\\\\\\\.|\\\\\\\\$\",\"name\":\"keyword.operator.slice.d\"},{\"include\":\"#type\"},{\"include\":\"#expression\"}]}]},\"final-switch-statement\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(final\\\\\\\\s+switch)\\\\\\\\b\\\\\\\\s*\",\"captures\":{\"1\":{\"name\":\"keyword.control.final.switch.d\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"source.d\"}]}]}]},\"finally-statement\":{\"patterns\":[{\"match\":\"\\\\\\\\bfinally\\\\\\\\b\",\"name\":\"keyword.control.throw.d\"}]},\"float-literal\":{\"patterns\":[{\"include\":\"#decimal-float\"},{\"include\":\"#hexadecimal-float\"}]},\"for-statement\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(for)\\\\\\\\b\\\\\\\\s*\",\"captures\":{\"1\":{\"name\":\"keyword.control.for.d\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"source.d\"}]}]}]},\"foreach-reverse-statement\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(foreach_reverse)\\\\\\\\b\\\\\\\\s*\",\"captures\":{\"1\":{\"name\":\"keyword.control.foreach_reverse.d\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"match\":\";\",\"name\":\"keyword.operator.semi-colon.d\"},{\"include\":\"source.d\"}]}]}]},\"foreach-statement\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(foreach)\\\\\\\\b\\\\\\\\s*\",\"captures\":{\"1\":{\"name\":\"keyword.control.foreach.d\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"match\":\";\",\"name\":\"keyword.operator.semi-colon.d\"},{\"include\":\"source.d\"}]}]}]},\"function-attribute\":{\"patterns\":[{\"match\":\"\\\\\\\\b(nothrow|pure)\\\\\\\\b\",\"name\":\"storage.type.modifier.function-attribute.d\"},{\"include\":\"#property\"}]},\"function-body\":{\"patterns\":[{\"include\":\"#in-statement\"},{\"include\":\"#out-statement\"},{\"include\":\"#block-statement\"}]},\"function-literal\":{\"patterns\":[{\"match\":\"=>\",\"name\":\"keyword.operator.lambda.d\"},{\"match\":\"\\\\\\\\b(function|delegate)\\\\\\\\b\",\"name\":\"keyword.other.function-literal.d\"},{\"begin\":\"\\\\\\\\b([_\\\\\\\\w][_\\\\\\\\d\\\\\\\\w]*)\\\\\\\\s*(=>)\",\"beginCaptures\":{\"1\":{\"name\":\"variable.parameter.d\"},\"2\":{\"name\":\"meta.lexical.token.symbolic.d\"}},\"end\":\"(?=[\\\\\\\\);,\\\\\\\\]}])\",\"patterns\":[{\"include\":\"source.d\"}]},{\"begin\":\"(?<=\\\\\\\\)|\\\\\\\\()(\\\\\\\\s*)({)\",\"beginCaptures\":{\"1\":{\"name\":\"source.d\"},\"2\":{\"name\":\"source.d\"}},\"end\":\"}\",\"patterns\":[{\"include\":\"source.d\"}]}]},\"function-prelude\":{\"patterns\":[{\"match\":\"(?!typeof|typeid)((\\\\\\\\.\\\\\\\\s*)?[_\\\\\\\\w][_\\\\\\\\d\\\\\\\\w]*)(\\\\\\\\s*\\\\\\\\.\\\\\\\\s*[_\\\\\\\\w][_\\\\\\\\d\\\\\\\\w]*)*\\\\\\\\s*(?=\\\\\\\\()\",\"name\":\"entity.name.function.d\"}]},\"functions\":{\"patterns\":[{\"include\":\"#function-attribute\"},{\"include\":\"#function-prelude\"}]},\"goto-statement\":{\"patterns\":[{\"match\":\"\\\\\\\\bgoto\\\\\\\\s+default\\\\\\\\b\",\"name\":\"keyword.control.goto.d\"},{\"match\":\"\\\\\\\\bgoto\\\\\\\\s+case\\\\\\\\b\",\"name\":\"keyword.control.goto.d\"},{\"match\":\"\\\\\\\\bgoto\\\\\\\\b\",\"name\":\"keyword.control.goto.d\"}]},\"hex-string\":{\"patterns\":[{\"begin\":\"x\\\\\"\",\"end\":\"\\\\\"[cwd]?\",\"name\":\"string.hex-string.d\",\"patterns\":[{\"match\":\"[a-fA-F0-9_s]+\",\"name\":\"constant.character.hex-string.d\"}]}]},\"hexadecimal-float\":{\"patterns\":[{\"match\":\"\\\\\\\\b0[xX][0-9a-fA-F_]*(\\\\\\\\.[0-9a-fA-F_]*)?(p-|P-|p\\\\\\\\+|P\\\\\\\\+|p|P)[0-9][0-9_]*[LfF]?i?\\\\\\\\b\",\"name\":\"constant.numeric.float.hexadecimal.d\"}]},\"hexadecimal-integer\":{\"patterns\":[{\"match\":\"\\\\\\\\b(0x|0X)([0-9a-fA-F][0-9a-fA-F_]*)(Lu|LU|uL|UL|L|u|U)?\\\\\\\\b\",\"name\":\"constant.numeric.integer.hexadecimal.d\"}]},\"identifier\":{\"patterns\":[{\"match\":\"\\\\\\\\b((\\\\\\\\.\\\\\\\\s*)?[_\\\\\\\\w][_\\\\\\\\d\\\\\\\\w]*)(\\\\\\\\s*\\\\\\\\.\\\\\\\\s*[_\\\\\\\\w][_\\\\\\\\d\\\\\\\\w]*)*\\\\\\\\b\",\"name\":\"variable.d\"}]},\"identifier-list\":{\"patterns\":[{\"match\":\",\",\"name\":\"keyword.other.comma.d\"},{\"include\":\"#identifier\"}]},\"identity-expression\":{\"patterns\":[{\"match\":\"\\\\\\\\b(is|!is)\\\\\\\\b\",\"name\":\"keyword.operator.identity.d\"}]},\"if-statement\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(if)\\\\\\\\b\\\\\\\\s*\",\"captures\":{\"1\":{\"name\":\"keyword.control.if.d\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"source.d\"}]}]},{\"match\":\"\\\\\\\\belse\\\\\\\\b\\\\\\\\s*\",\"name\":\"keyword.control.else.d\"}]},\"import-declaration\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(static\\\\\\\\s+)?(import)\\\\\\\\s+(?!\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.package.import.d\"},\"2\":{\"name\":\"keyword.package.import.d\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"meta.import.end.d\"}},\"patterns\":[{\"include\":\"#import-identifier\"},{\"include\":\"#comma\"},{\"include\":\"#comment\"}]}]},\"import-expression\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(import)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.import.d\"},\"2\":{\"name\":\"keyword.other.import.begin.d\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"keyword.other.import.end.d\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#expression\"},{\"include\":\"#comma\"}]}]},\"import-identifier\":{\"patterns\":[{\"match\":\"([_a-zA-Z][_\\\\\\\\d\\\\\\\\w]*)(\\\\\\\\s*\\\\\\\\.\\\\\\\\s*[_a-zA-Z][_\\\\\\\\d\\\\\\\\w]*)*\",\"name\":\"variable.parameter.import.d\"}]},\"in-expression\":{\"patterns\":[{\"match\":\"\\\\\\\\b(in|!in)\\\\\\\\b\",\"name\":\"keyword.operator.in.d\"}]},\"in-statement\":{\"patterns\":[{\"match\":\"\\\\\\\\bin\\\\\\\\b\",\"name\":\"keyword.control.in.d\"}]},\"index-expression\":{\"patterns\":[{\"begin\":\"\\\\\\\\[\",\"end\":\"\\\\\\\\]\",\"patterns\":[{\"match\":\"\\\\\\\\.\\\\\\\\.|\\\\\\\\$\",\"name\":\"keyword.operator.slice.d\"},{\"include\":\"#expression-no-index\"}]}]},\"integer-literal\":{\"patterns\":[{\"include\":\"#decimal-integer\"},{\"include\":\"#binary-integer\"},{\"include\":\"#hexadecimal-integer\"}]},\"interface-declaration\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.interface.d\"},\"2\":{\"name\":\"entity.name.type.interface.d\"}},\"match\":\"\\\\\\\\b(interface)(?:\\\\\\\\s+([A-Za-z_][\\\\\\\\w_\\\\\\\\d]*))?\\\\\\\\b\"}]},\"invariant\":{\"patterns\":[{\"match\":\"\\\\\\\\binvariant\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\)\",\"name\":\"entity.name.class.invariant.d\"}]},\"is-expression\":{\"patterns\":[{\"begin\":\"\\\\\\\\bis\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.token.is.begin.d\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"keyword.token.is.end.d\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#expression\"},{\"include\":\"#comma\"}]}]},\"keyword\":{\"patterns\":[{\"match\":\"\\\\\\\\babstract\\\\\\\\b\",\"name\":\"keyword.token.abstract.d\"},{\"match\":\"\\\\\\\\balias\\\\\\\\b\",\"name\":\"keyword.token.alias.d\"},{\"match\":\"\\\\\\\\balign\\\\\\\\b\",\"name\":\"keyword.token.align.d\"},{\"match\":\"\\\\\\\\basm\\\\\\\\b\",\"name\":\"keyword.token.asm.d\"},{\"match\":\"\\\\\\\\bassert\\\\\\\\b\",\"name\":\"keyword.token.assert.d\"},{\"match\":\"\\\\\\\\bauto\\\\\\\\b\",\"name\":\"keyword.token.auto.d\"},{\"match\":\"\\\\\\\\bbool\\\\\\\\b\",\"name\":\"keyword.token.bool.d\"},{\"match\":\"\\\\\\\\bbreak\\\\\\\\b\",\"name\":\"keyword.token.break.d\"},{\"match\":\"\\\\\\\\bbyte\\\\\\\\b\",\"name\":\"keyword.token.byte.d\"},{\"match\":\"\\\\\\\\bcase\\\\\\\\b\",\"name\":\"keyword.token.case.d\"},{\"match\":\"\\\\\\\\bcast\\\\\\\\b\",\"name\":\"keyword.token.cast.d\"},{\"match\":\"\\\\\\\\bcatch\\\\\\\\b\",\"name\":\"keyword.token.catch.d\"},{\"match\":\"\\\\\\\\bcdouble\\\\\\\\b\",\"name\":\"keyword.token.cdouble.d\"},{\"match\":\"\\\\\\\\bcent\\\\\\\\b\",\"name\":\"keyword.token.cent.d\"},{\"match\":\"\\\\\\\\bcfloat\\\\\\\\b\",\"name\":\"keyword.token.cfloat.d\"},{\"match\":\"\\\\\\\\bchar\\\\\\\\b\",\"name\":\"keyword.token.char.d\"},{\"match\":\"\\\\\\\\bclass\\\\\\\\b\",\"name\":\"keyword.token.class.d\"},{\"match\":\"\\\\\\\\bconst\\\\\\\\b\",\"name\":\"keyword.token.const.d\"},{\"match\":\"\\\\\\\\bcontinue\\\\\\\\b\",\"name\":\"keyword.token.continue.d\"},{\"match\":\"\\\\\\\\bcreal\\\\\\\\b\",\"name\":\"keyword.token.creal.d\"},{\"match\":\"\\\\\\\\bdchar\\\\\\\\b\",\"name\":\"keyword.token.dchar.d\"},{\"match\":\"\\\\\\\\bdebug\\\\\\\\b\",\"name\":\"keyword.token.debug.d\"},{\"match\":\"\\\\\\\\bdefault\\\\\\\\b\",\"name\":\"keyword.token.default.d\"},{\"match\":\"\\\\\\\\bdelegate\\\\\\\\b\",\"name\":\"keyword.token.delegate.d\"},{\"match\":\"\\\\\\\\bdelete\\\\\\\\b\",\"name\":\"keyword.token.delete.d\"},{\"match\":\"\\\\\\\\bdeprecated\\\\\\\\b\",\"name\":\"keyword.token.deprecated.d\"},{\"match\":\"\\\\\\\\bdo\\\\\\\\b\",\"name\":\"keyword.token.do.d\"},{\"match\":\"\\\\\\\\bdouble\\\\\\\\b\",\"name\":\"keyword.token.double.d\"},{\"match\":\"\\\\\\\\belse\\\\\\\\b\",\"name\":\"keyword.token.else.d\"},{\"match\":\"\\\\\\\\benum\\\\\\\\b\",\"name\":\"keyword.token.enum.d\"},{\"match\":\"\\\\\\\\bexport\\\\\\\\b\",\"name\":\"keyword.token.export.d\"},{\"match\":\"\\\\\\\\bextern\\\\\\\\b\",\"name\":\"keyword.token.extern.d\"},{\"match\":\"\\\\\\\\bfalse\\\\\\\\b\",\"name\":\"constant.language.boolean.false.d\"},{\"match\":\"\\\\\\\\bfinal\\\\\\\\b\",\"name\":\"keyword.token.final.d\"},{\"match\":\"\\\\\\\\bfinally\\\\\\\\b\",\"name\":\"keyword.token.finally.d\"},{\"match\":\"\\\\\\\\bfloat\\\\\\\\b\",\"name\":\"keyword.token.float.d\"},{\"match\":\"\\\\\\\\bfor\\\\\\\\b\",\"name\":\"keyword.token.for.d\"},{\"match\":\"\\\\\\\\bforeach\\\\\\\\b\",\"name\":\"keyword.token.foreach.d\"},{\"match\":\"\\\\\\\\bforeach_reverse\\\\\\\\b\",\"name\":\"keyword.token.foreach_reverse.d\"},{\"match\":\"\\\\\\\\bfunction\\\\\\\\b\",\"name\":\"keyword.token.function.d\"},{\"match\":\"\\\\\\\\bgoto\\\\\\\\b\",\"name\":\"keyword.token.goto.d\"},{\"match\":\"\\\\\\\\bidouble\\\\\\\\b\",\"name\":\"keyword.token.idouble.d\"},{\"match\":\"\\\\\\\\bif\\\\\\\\b\",\"name\":\"keyword.token.if.d\"},{\"match\":\"\\\\\\\\bifloat\\\\\\\\b\",\"name\":\"keyword.token.ifloat.d\"},{\"match\":\"\\\\\\\\bimmutable\\\\\\\\b\",\"name\":\"keyword.token.immutable.d\"},{\"match\":\"\\\\\\\\bimport\\\\\\\\b\",\"name\":\"keyword.token.import.d\"},{\"match\":\"\\\\\\\\bin\\\\\\\\b\",\"name\":\"keyword.token.in.d\"},{\"match\":\"\\\\\\\\binout\\\\\\\\b\",\"name\":\"keyword.token.inout.d\"},{\"match\":\"\\\\\\\\bint\\\\\\\\b\",\"name\":\"keyword.token.int.d\"},{\"match\":\"\\\\\\\\binterface\\\\\\\\b\",\"name\":\"keyword.token.interface.d\"},{\"match\":\"\\\\\\\\binvariant\\\\\\\\b\",\"name\":\"keyword.token.invariant.d\"},{\"match\":\"\\\\\\\\bireal\\\\\\\\b\",\"name\":\"keyword.token.ireal.d\"},{\"match\":\"\\\\\\\\bis\\\\\\\\b\",\"name\":\"keyword.token.is.d\"},{\"match\":\"\\\\\\\\blazy\\\\\\\\b\",\"name\":\"keyword.token.lazy.d\"},{\"match\":\"\\\\\\\\blong\\\\\\\\b\",\"name\":\"keyword.token.long.d\"},{\"match\":\"\\\\\\\\bmacro\\\\\\\\b\",\"name\":\"keyword.token.macro.d\"},{\"match\":\"\\\\\\\\bmixin\\\\\\\\b\",\"name\":\"keyword.token.mixin.d\"},{\"match\":\"\\\\\\\\bmodule\\\\\\\\b\",\"name\":\"keyword.token.module.d\"},{\"match\":\"\\\\\\\\bnew\\\\\\\\b\",\"name\":\"keyword.token.new.d\"},{\"match\":\"\\\\\\\\bnothrow\\\\\\\\b\",\"name\":\"keyword.token.nothrow.d\"},{\"match\":\"\\\\\\\\bnull\\\\\\\\b\",\"name\":\"constant.language.null.d\"},{\"match\":\"\\\\\\\\bout\\\\\\\\b\",\"name\":\"keyword.token.out.d\"},{\"match\":\"\\\\\\\\boverride\\\\\\\\b\",\"name\":\"keyword.token.override.d\"},{\"match\":\"\\\\\\\\bpackage\\\\\\\\b\",\"name\":\"keyword.token.package.d\"},{\"match\":\"\\\\\\\\bpragma\\\\\\\\b\",\"name\":\"keyword.token.pragma.d\"},{\"match\":\"\\\\\\\\bprivate\\\\\\\\b\",\"name\":\"keyword.token.private.d\"},{\"match\":\"\\\\\\\\bprotected\\\\\\\\b\",\"name\":\"keyword.token.protected.d\"},{\"match\":\"\\\\\\\\bpublic\\\\\\\\b\",\"name\":\"keyword.token.public.d\"},{\"match\":\"\\\\\\\\bpure\\\\\\\\b\",\"name\":\"keyword.token.pure.d\"},{\"match\":\"\\\\\\\\breal\\\\\\\\b\",\"name\":\"keyword.token.real.d\"},{\"match\":\"\\\\\\\\bref\\\\\\\\b\",\"name\":\"keyword.token.ref.d\"},{\"match\":\"\\\\\\\\breturn\\\\\\\\b\",\"name\":\"keyword.token.return.d\"},{\"match\":\"\\\\\\\\bscope\\\\\\\\b\",\"name\":\"keyword.token.scope.d\"},{\"match\":\"\\\\\\\\bshared\\\\\\\\b\",\"name\":\"keyword.token.shared.d\"},{\"match\":\"\\\\\\\\bshort\\\\\\\\b\",\"name\":\"keyword.token.short.d\"},{\"match\":\"\\\\\\\\bstatic\\\\\\\\b\",\"name\":\"keyword.token.static.d\"},{\"match\":\"\\\\\\\\bstruct\\\\\\\\b\",\"name\":\"keyword.token.struct.d\"},{\"match\":\"\\\\\\\\bsuper\\\\\\\\b\",\"name\":\"keyword.token.super.d\"},{\"match\":\"\\\\\\\\bswitch\\\\\\\\b\",\"name\":\"keyword.token.switch.d\"},{\"match\":\"\\\\\\\\bsynchronized\\\\\\\\b\",\"name\":\"keyword.token.synchronized.d\"},{\"match\":\"\\\\\\\\btemplate\\\\\\\\b\",\"name\":\"keyword.token.template.d\"},{\"match\":\"\\\\\\\\bthis\\\\\\\\b\",\"name\":\"keyword.token.this.d\"},{\"match\":\"\\\\\\\\bthrow\\\\\\\\b\",\"name\":\"keyword.token.throw.d\"},{\"match\":\"\\\\\\\\btrue\\\\\\\\b\",\"name\":\"constant.language.boolean.true.d\"},{\"match\":\"\\\\\\\\btry\\\\\\\\b\",\"name\":\"keyword.token.try.d\"},{\"match\":\"\\\\\\\\btypedef\\\\\\\\b\",\"name\":\"keyword.token.typedef.d\"},{\"match\":\"\\\\\\\\btypeid\\\\\\\\b\",\"name\":\"keyword.token.typeid.d\"},{\"match\":\"\\\\\\\\btypeof\\\\\\\\b\",\"name\":\"keyword.token.typeof.d\"},{\"match\":\"\\\\\\\\bubyte\\\\\\\\b\",\"name\":\"keyword.token.ubyte.d\"},{\"match\":\"\\\\\\\\bucent\\\\\\\\b\",\"name\":\"keyword.token.ucent.d\"},{\"match\":\"\\\\\\\\buint\\\\\\\\b\",\"name\":\"keyword.token.uint.d\"},{\"match\":\"\\\\\\\\bulong\\\\\\\\b\",\"name\":\"keyword.token.ulong.d\"},{\"match\":\"\\\\\\\\bunion\\\\\\\\b\",\"name\":\"keyword.token.union.d\"},{\"match\":\"\\\\\\\\bunittest\\\\\\\\b\",\"name\":\"keyword.token.unittest.d\"},{\"match\":\"\\\\\\\\bushort\\\\\\\\b\",\"name\":\"keyword.token.ushort.d\"},{\"match\":\"\\\\\\\\bversion\\\\\\\\b\",\"name\":\"keyword.token.version.d\"},{\"match\":\"\\\\\\\\bvoid\\\\\\\\b\",\"name\":\"keyword.token.void.d\"},{\"match\":\"\\\\\\\\bvolatile\\\\\\\\b\",\"name\":\"keyword.token.volatile.d\"},{\"match\":\"\\\\\\\\bwchar\\\\\\\\b\",\"name\":\"keyword.token.wchar.d\"},{\"match\":\"\\\\\\\\bwhile\\\\\\\\b\",\"name\":\"keyword.token.while.d\"},{\"match\":\"\\\\\\\\bwith\\\\\\\\b\",\"name\":\"keyword.token.with.d\"},{\"match\":\"\\\\\\\\b__FILE__\\\\\\\\b\",\"name\":\"keyword.token.__FILE__.d\"},{\"match\":\"\\\\\\\\b__MODULE__\\\\\\\\b\",\"name\":\"keyword.token.__MODULE__.d\"},{\"match\":\"\\\\\\\\b__LINE__\\\\\\\\b\",\"name\":\"keyword.token.__LINE__.d\"},{\"match\":\"\\\\\\\\b__FUNCTION__\\\\\\\\b\",\"name\":\"keyword.token.__FUNCTION__.d\"},{\"match\":\"\\\\\\\\b__PRETTY_FUNCTION__\\\\\\\\b\",\"name\":\"keyword.token.__PRETTY_FUNCTION__.d\"},{\"match\":\"\\\\\\\\b__gshared\\\\\\\\b\",\"name\":\"keyword.token.__gshared.d\"},{\"match\":\"\\\\\\\\b__traits\\\\\\\\b\",\"name\":\"keyword.token.__traits.d\"},{\"match\":\"\\\\\\\\b__vector\\\\\\\\b\",\"name\":\"keyword.token.__vector.d\"},{\"match\":\"\\\\\\\\b__parameters\\\\\\\\b\",\"name\":\"keyword.token.__parameters.d\"}]},\"labeled-statement\":{\"patterns\":[{\"match\":\"\\\\\\\\b(?!abstract|alias|align|asm|assert|auto|bool|break|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|debug|default|delegate|delete|deprecated|do|double|else|enum|export|extern|false|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat|immutable|import|in|inout|int|interface|invariant|ireal|is|lazy|long|macro|mixin|module|new|nothrow|noreturn|null|out|override|package|pragma|private|protected|public|pure|real|ref|return|scope|shared|short|static|struct|super|switch|synchronized|template|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittest|ushort|version|void|volatile|wchar|while|with|__FILE__|__MODULE__|__LINE__|__FUNCTION__|__PRETTY_FUNCTION__|__gshared|__traits|__vector|__parameters)[a-zA-Z_][a-zA-Z_0-9]*\\\\\\\\s*:\",\"name\":\"entity.name.d\"}]},\"lexical\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string-literal\"},{\"include\":\"#character-literal\"},{\"include\":\"#float-literal\"},{\"include\":\"#integer-literal\"},{\"include\":\"#eof\"},{\"include\":\"#special-tokens\"},{\"include\":\"#special-token-sequence\"},{\"include\":\"#keyword\"},{\"include\":\"#identifier\"}]},\"line-comment\":{\"patterns\":[{\"match\":\"//+.*$\",\"name\":\"comment.line.d\"}]},\"linkage-attribute\":{\"patterns\":[{\"begin\":\"\\\\\\\\bextern\\\\\\\\s*\\\\\\\\(\\\\\\\\s*C\\\\\\\\+\\\\\\\\+\\\\\\\\s*,\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.extern.cplusplus.begin.d\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"keyword.other.extern.cplusplus.end.d\"}},\"patterns\":[{\"include\":\"#identifier\"},{\"include\":\"#comma\"}]},{\"begin\":\"\\\\\\\\bextern\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.extern.begin.d\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"keyword.other.extern.end.d\"}},\"patterns\":[{\"include\":\"#linkage-type\"}]}]},\"linkage-type\":{\"patterns\":[{\"match\":\"C|C\\\\\\\\+\\\\\\\\+|D|Windows|Pascal|System\",\"name\":\"storage.modifier.linkage-type.d\"}]},\"logical-expression\":{\"patterns\":[{\"match\":\"\\\\\\\\|\\\\\\\\||&&|==|!=|!\",\"name\":\"keyword.operator.logical.d\"}]},\"member-function-attribute\":{\"patterns\":[{\"match\":\"\\\\\\\\b(const|immutable|inout|shared)\\\\\\\\b\",\"name\":\"storage.type.modifier.member-function-attribute\"}]},\"mixin-declaration\":{\"patterns\":[{\"begin\":\"\\\\\\\\bmixin\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.mixin.begin.d\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"keyword.mixin.end.d\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#expression\"},{\"include\":\"#comma\"}]}]},\"mixin-expression\":{\"patterns\":[{\"begin\":\"\\\\\\\\bmixin\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.mixin.begin.d\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"keyword.other.mixin.end.d\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#expression\"},{\"include\":\"#comma\"}]}]},\"mixin-statement\":{\"patterns\":[{\"begin\":\"\\\\\\\\bmixin\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.mixin.begin.d\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.mixin.end.d\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#expression\"},{\"include\":\"#comma\"}]}]},\"mixin-template-declaration\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.mixintemplate.d\"},\"2\":{\"name\":\"entity.name.type.mixintemplate.d\"}},\"match\":\"\\\\\\\\b(mixin\\\\\\\\s*template)(?:\\\\\\\\s+([A-Za-z_][\\\\\\\\w_\\\\\\\\d]*))?\\\\\\\\b\"}]},\"module\":{\"packages\":[{\"import\":\"#module-declaration\"}]},\"module-declaration\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(module)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.package.module.d\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"meta.module.end.d\"}},\"patterns\":[{\"include\":\"#module-identifier\"},{\"include\":\"#comment\"}]}]},\"module-identifier\":{\"patterns\":[{\"match\":\"([_a-zA-Z][_\\\\\\\\d\\\\\\\\w]*)(\\\\\\\\s*\\\\\\\\.\\\\\\\\s*[_a-zA-Z][_\\\\\\\\d\\\\\\\\w]*)*\",\"name\":\"variable.parameter.module.d\"}]},\"nesting-block-comment\":{\"patterns\":[{\"begin\":\"/((?!\\\\\\\\+/)\\\\\\\\+)+\",\"beginCaptures\":{\"0\":{\"name\":\"comment.block.documentation.begin.d\"}},\"end\":\"\\\\\\\\++/\",\"endCaptures\":{\"0\":{\"name\":\"comment.block.documentation.end.d\"}},\"name\":\"comment.block.documentation.content.d\",\"patterns\":[{\"include\":\"#nesting-block-comment\"}]}]},\"new-expression\":{\"patterns\":[{\"match\":\"\\\\\\\\bnew\\\\\\\\s+\",\"name\":\"keyword.other.new.d\"}]},\"non-block-statement\":{\"patterns\":[{\"include\":\"#module-declaration\"},{\"include\":\"#labeled-statement\"},{\"include\":\"#if-statement\"},{\"include\":\"#while-statement\"},{\"include\":\"#do-statement\"},{\"include\":\"#for-statement\"},{\"include\":\"#static-foreach\"},{\"include\":\"#static-foreach-reverse\"},{\"include\":\"#foreach-statement\"},{\"include\":\"#foreach-reverse-statement\"},{\"include\":\"#switch-statement\"},{\"include\":\"#final-switch-statement\"},{\"include\":\"#case-statement\"},{\"include\":\"#default-statement\"},{\"include\":\"#continue-statement\"},{\"include\":\"#break-statement\"},{\"include\":\"#return-statement\"},{\"include\":\"#goto-statement\"},{\"include\":\"#with-statement\"},{\"include\":\"#synchronized-statement\"},{\"include\":\"#try-statement\"},{\"include\":\"#catches\"},{\"include\":\"#scope-guard-statement\"},{\"include\":\"#throw-statement\"},{\"include\":\"#finally-statement\"},{\"include\":\"#asm-statement\"},{\"include\":\"#pragma-statement\"},{\"include\":\"#mixin-statement\"},{\"include\":\"#conditional-statement\"},{\"include\":\"#static-assert\"},{\"include\":\"#deprecated-statement\"},{\"include\":\"#unit-test\"},{\"include\":\"#declaration-statement\"}]},\"operands\":{\"patterns\":[{\"match\":\"\\\\\\\\?|:\",\"name\":\"keyword.operator.ternary.assembly.d\"},{\"match\":\"\\\\\\\\]|\\\\\\\\[\",\"name\":\"keyword.operator.bracket.assembly.d\"},{\"match\":\">>>|\\\\\\\\|\\\\\\\\||&&|==|!=|<=|>=|<<|>>|\\\\\\\\||\\\\\\\\^|&|<|>|\\\\\\\\+|-|\\\\\\\\*|/|%|~|!\",\"name\":\"keyword.operator.assembly.d\"}]},\"out-statement\":{\"patterns\":[{\"begin\":\"\\\\\\\\bout\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.out.begin.d\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.out.end.d\"}},\"patterns\":[{\"include\":\"#identifier\"}]},{\"match\":\"\\\\\\\\bout\\\\\\\\b\",\"name\":\"keyword.control.out.d\"}]},\"parentheses-expression\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#expression\"}]}]},\"postblit\":{\"patterns\":[{\"match\":\"\\\\\\\\bthis\\\\\\\\s*\\\\\\\\(\\\\\\\\s*this\\\\\\\\s*\\\\\\\\)\\\\\\\\s\",\"name\":\"entity.name.class.postblit.d\"}]},\"pragma\":{\"patterns\":[{\"match\":\"\\\\\\\\bpragma\\\\\\\\s*\\\\\\\\(\\\\\\\\s*[_\\\\\\\\w][_\\\\\\\\d\\\\\\\\w]*\\\\\\\\s*\\\\\\\\)\",\"name\":\"keyword.other.pragma.d\"},{\"begin\":\"\\\\\\\\bpragma\\\\\\\\s*\\\\\\\\(\\\\\\\\s*[_\\\\\\\\w][_\\\\\\\\d\\\\\\\\w]*\\\\\\\\s*,\",\"end\":\"\\\\\\\\)\",\"name\":\"keyword.other.pragma.d\",\"patterns\":[{\"include\":\"#expression\"}]},{\"match\":\"^#!.+\",\"name\":\"gfm.markup.header.preprocessor.script-tag.d\"}]},\"pragma-statement\":{\"patterns\":[{\"include\":\"#pragma\"}]},\"property\":{\"patterns\":[{\"match\":\"@(property|safe|trusted|system|disable|nogc)\\\\\\\\b\",\"name\":\"entity.name.tag.property.d\"},{\"include\":\"#user-defined-attribute\"}]},\"protection-attribute\":{\"patterns\":[{\"match\":\"\\\\\\\\b(private|package|protected|public|export)\\\\\\\\b\",\"name\":\"keyword.other.protections.d\"}]},\"register\":{\"patterns\":[{\"match\":\"\\\\\\\\b(XMM0|XMM1|XMM2|XMM3|XMM4|XMM5|XMM6|XMM7|MM0|MM1|MM2|MM3|MM4|MM5|MM6|MM7|ST\\\\\\\\(0\\\\\\\\)|ST\\\\\\\\(1\\\\\\\\)|ST\\\\\\\\(2\\\\\\\\)|ST\\\\\\\\(3\\\\\\\\)|ST\\\\\\\\(4\\\\\\\\)|ST\\\\\\\\(5\\\\\\\\)|ST\\\\\\\\(6\\\\\\\\)|ST\\\\\\\\(7\\\\\\\\)|ST|TR1|TR2|TR3|TR4|TR5|TR6|TR7|DR0|DR1|DR2|DR3|DR4|DR5|DR6|DR7|CR0|CR2|CR3|CR4|EAX|EBX|ECX|EDX|EBP|ESP|EDI|ESI|AL|AH|AX|BL|BH|BX|CL|CH|CX|DL|DH|DX|BP|SP|DI|SI|ES|CS|SS|DS|GS|FS)\\\\\\\\b\",\"name\":\"storage.type.assembly.register.d\"}]},\"register-64\":{\"patterns\":[{\"match\":\"\\\\\\\\b(RAX|RBX|RCX|RDX|BPL|RBP|SPL|RSP|DIL|RDI|SIL|RSI|R8B|R8W|R8D|R8|R9B|R9W|R9D|R9|R10B|R10W|R10D|R10|R11B|R11W|R11D|R11|R12B|R12W|R12D|R12|R13B|R13W|R13D|R13|R14B|R14W|R14D|R14|R15B|R15W|R15D|R15|XMM8|XMM9|XMM10|XMM11|XMM12|XMM13|XMM14|XMM15|YMM0|YMM1|YMM2|YMM3|YMM4|YMM5|YMM6|YMM7|YMM8|YMM9|YMM10|YMM11|YMM12|YMM13|YMM14|YMM15)\\\\\\\\b\",\"name\":\"storage.type.assembly.register-64.d\"}]},\"rel-expression\":{\"patterns\":[{\"match\":\"!<>=|!<>|<>=|!>=|!<=|<=|>=|<>|!>|!<|<|>\",\"name\":\"keyword.operator.rel.d\"}]},\"return-statement\":{\"patterns\":[{\"match\":\"\\\\\\\\breturn\\\\\\\\b\",\"name\":\"keyword.control.return.d\"}]},\"scope-guard-statement\":{\"patterns\":[{\"match\":\"\\\\\\\\bscope\\\\\\\\s*\\\\\\\\((exit|success|failure)\\\\\\\\)\",\"name\":\"keyword.control.scope.d\"}]},\"semi-colon\":{\"patterns\":[{\"match\":\";\",\"name\":\"meta.statement.end.d\"}]},\"shared-static-constructor\":{\"patterns\":[{\"match\":\"\\\\\\\\b(shared\\\\\\\\s+)?static\\\\\\\\s+this\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\)\",\"name\":\"entity.name.class.constructor.shared-static.d\"},{\"include\":\"#function-body\"}]},\"shared-static-destructor\":{\"patterns\":[{\"match\":\"\\\\\\\\b(shared\\\\\\\\s+)?static\\\\\\\\s+~this\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\)\",\"name\":\"entity.name.class.destructor.static.d\"}]},\"shift-expression\":{\"patterns\":[{\"match\":\"<<|>>|>>>\",\"name\":\"keyword.operator.shift.d\"},{\"include\":\"#add-expression\"}]},\"special-keyword\":{\"patterns\":[{\"match\":\"\\\\\\\\b(__FILE__|__FILE_FULL_PATH__|__MODULE__|__LINE__|__FUNCTION__|__PRETTY_FUNCTION__)\\\\\\\\b\",\"name\":\"constant.language.special-keyword.d\"}]},\"special-token-sequence\":{\"patterns\":[{\"match\":\"#\\\\\\\\s*line.*\",\"name\":\"gfm.markup.italic.special-token-sequence.d\"}]},\"special-tokens\":{\"patterns\":[{\"match\":\"\\\\\\\\b(__DATE__|__TIME__|__TIMESTAMP__|__VENDOR__|__VERSION__)\\\\\\\\b\",\"name\":\"gfm.markup.raw.special-tokens.d\"}]},\"statement\":{\"patterns\":[{\"include\":\"#non-block-statement\"},{\"include\":\"#semi-colon\"}]},\"static-assert\":{\"patterns\":[{\"begin\":\"\\\\\\\\bstatic\\\\\\\\s+assert\\\\\\\\b\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.static-assert.begin.d\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"keyword.other.static-assert.end.d\"}},\"patterns\":[{\"include\":\"#expression\"}]}]},\"static-foreach\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(static\\\\\\\\s+foreach)\\\\\\\\b\\\\\\\\s*\",\"captures\":{\"1\":{\"name\":\"keyword.control.static-foreach.d\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"match\":\";\",\"name\":\"keyword.operator.semi-colon.d\"},{\"include\":\"source.d\"}]}]}]},\"static-foreach-reverse\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(static\\\\\\\\s+foreach_reverse)\\\\\\\\b\\\\\\\\s*\",\"captures\":{\"1\":{\"name\":\"keyword.control.static-foreach.d\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"match\":\";\",\"name\":\"keyword.operator.semi-colon.d\"},{\"include\":\"source.d\"}]}]}]},\"static-if-condition\":{\"patterns\":[{\"begin\":\"\\\\\\\\bstatic\\\\\\\\s+if\\\\\\\\b\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.static-if.begin.d\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.static-if.end.d\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#expression\"}]}]},\"storage-class\":{\"patterns\":[{\"match\":\"\\\\\\\\b(deprecated|enum|static|extern|abstract|final|override|synchronized|auto|scope|const|immutable|inout|shared|__gshared|nothrow|pure|ref)\\\\\\\\b\",\"name\":\"storage.class.d\"},{\"include\":\"#linkage-attribute\"},{\"include\":\"#align-attribute\"},{\"include\":\"#property\"}]},\"string-literal\":{\"patterns\":[{\"include\":\"#wysiwyg-string\"},{\"include\":\"#alternate-wysiwyg-string\"},{\"include\":\"#hex-string\"},{\"include\":\"#arbitrary-delimited-string\"},{\"include\":\"#delimited-string\"},{\"include\":\"#double-quoted-string\"},{\"include\":\"#token-string\"}]},\"struct-declaration\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.struct.d\"},\"2\":{\"name\":\"entity.name.type.struct.d\"}},\"match\":\"\\\\\\\\b(struct)(?:\\\\\\\\s+([A-Za-z_][\\\\\\\\w_\\\\\\\\d]*))?\\\\\\\\b\"}]},\"switch-statement\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(switch)\\\\\\\\b\\\\\\\\s*\",\"captures\":{\"1\":{\"name\":\"keyword.control.switch.d\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"source.d\"}]}]}]},\"synchronized-statement\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(synchronized)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\()\",\"captures\":{\"1\":{\"name\":\"keyword.control.synchronized.d\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"source.d\"}]}]}]},\"template-declaration\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.template.d\"},\"2\":{\"name\":\"entity.name.type.template.d\"}},\"match\":\"\\\\\\\\b(template)(?:\\\\\\\\s+([A-Za-z_][\\\\\\\\w_\\\\\\\\d]*))?\\\\\\\\b\"}]},\"throw-statement\":{\"patterns\":[{\"match\":\"\\\\\\\\bthrow\\\\\\\\b\",\"name\":\"keyword.control.throw.d\"}]},\"token-string\":{\"begin\":\"q\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"string.quoted.token.d\"}},\"end\":\"\\\\\\\\}[cdw]?\",\"endCaptures\":{\"0\":{\"name\":\"string.quoted.token.d\"}},\"patterns\":[{\"include\":\"#token-string-content\"}]},\"token-string-content\":{\"patterns\":[{\"begin\":\"{\",\"end\":\"}\",\"patterns\":[{\"include\":\"#token-string-content\"}]},{\"include\":\"#comment\"},{\"include\":\"#tokens\"}]},\"tokens\":{\"patterns\":[{\"include\":\"#string-literal\"},{\"include\":\"#character-literal\"},{\"include\":\"#integer-literal\"},{\"include\":\"#float-literal\"},{\"include\":\"#keyword\"},{\"match\":\"~=|~|>>>|>>=|>>|>=|>|=>|==|=|<>|<=|<<|<|%=|%|#|&=|&&|&|\\\\\\\\$|\\\\\\\\|=|\\\\\\\\|\\\\\\\\||\\\\\\\\||\\\\\\\\+=|\\\\\\\\+\\\\\\\\+|\\\\\\\\+|\\\\\\\\^=|\\\\\\\\^\\\\\\\\^=|\\\\\\\\^\\\\\\\\^|\\\\\\\\^|\\\\\\\\*=|\\\\\\\\*|\\\\\\\\}|\\\\\\\\{|\\\\\\\\]|\\\\\\\\[|\\\\\\\\)|\\\\\\\\(|\\\\\\\\.\\\\\\\\.\\\\\\\\.|\\\\\\\\.\\\\\\\\.|\\\\\\\\.|\\\\\\\\?|\\\\\\\\!>=|\\\\\\\\!>|\\\\\\\\!=|\\\\\\\\!<>=|\\\\\\\\!<>|\\\\\\\\!<=|\\\\\\\\!<|\\\\\\\\!|/=|/|@|:|;|,|-=|--|-\",\"name\":\"meta.lexical.token.symbolic.d\"},{\"include\":\"#identifier\"}]},\"traits-argument\":{\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#type\"}]},\"traits-arguments\":{\"patterns\":[{\"include\":\"#traits-argument\"},{\"include\":\"#comma\"}]},\"traits-expression\":{\"patterns\":[{\"begin\":\"\\\\\\\\b__traits\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.traits.begin.d\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"keyword.other.traits.end.d\"}},\"patterns\":[{\"include\":\"#traits-keyword\"},{\"include\":\"#comma\"},{\"include\":\"#traits-argument\"}]}]},\"traits-keyword\":{\"patterns\":[{\"match\":\"isAbstractClass|isArithmetic|isAssociativeArray|isFinalClass|isPOD|isNested|isFloating|isIntegral|isScalar|isStaticArray|isUnsigned|isVirtualFunction|isVirtualMethod|isAbstractFunction|isFinalFunction|isStaticFunction|isOverrideFunction|isRef|isOut|isLazy|hasMember|identifier|getAliasThis|getAttributes|getMember|getOverloads|getProtection|getVirtualFunctions|getVirtualMethods|getUnitTests|parent|classInstanceSize|getVirtualIndex|allMembers|derivedMembers|isSame|compiles\",\"name\":\"support.constant.traits-keyword.d\"}]},\"try-statement\":{\"patterns\":[{\"match\":\"\\\\\\\\btry\\\\\\\\b\",\"name\":\"keyword.control.try.d\"}]},\"type\":{\"patterns\":[{\"include\":\"#typeof\"},{\"include\":\"#base-type\"},{\"include\":\"#type-ctor\"},{\"begin\":\"!\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#type\"},{\"include\":\"#expression\"}]}]},\"type-ctor\":{\"patterns\":[{\"match\":\"(const|immutable|inout|shared)\\\\\\\\b\",\"name\":\"storage.type.modifier.d\"}]},\"type-specialization\":{\"patterns\":[{\"match\":\"\\\\\\\\b(struct|union|class|interface|enum|function|delegate|super|const|immutable|inout|shared|return|__parameters)\\\\\\\\b\",\"name\":\"keyword.other.storage.type-specialization.d\"}]},\"typeid-expression\":{\"patterns\":[{\"match\":\"\\\\\\\\btypeid\\\\\\\\s*(?=\\\\\\\\()\",\"name\":\"keyword.other.typeid.d\"}]},\"typeof\":{\"begin\":\"typeof\\\\\\\\s*\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"name\":\"keyword.token.typeof.d\",\"patterns\":[{\"match\":\"return\",\"name\":\"keyword.control.return.d\"},{\"include\":\"#expression\"}]},\"union-declaration\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.union.d\"},\"2\":{\"name\":\"entity.name.type.union.d\"}},\"match\":\"\\\\\\\\b(union)(?:\\\\\\\\s+([A-Za-z_][\\\\\\\\w_\\\\\\\\d]*))?\\\\\\\\b\"}]},\"user-defined-attribute\":{\"patterns\":[{\"match\":\"@([_\\\\\\\\w][_\\\\\\\\d\\\\\\\\w]*)\\\\\\\\b\",\"name\":\"entity.name.tag.user-defined-property.d\"},{\"begin\":\"@([_\\\\\\\\w][_\\\\\\\\d\\\\\\\\w]*)?\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"name\":\"entity.name.tag.user-defined-property.d\",\"patterns\":[{\"include\":\"#expression\"}]}]},\"version-condition\":{\"patterns\":[{\"match\":\"\\\\\\\\bversion\\\\\\\\s*\\\\\\\\(\\\\\\\\s*unittest\\\\\\\\s*\\\\\\\\)\",\"name\":\"keyword.other.version.unittest.d\"},{\"match\":\"\\\\\\\\bversion\\\\\\\\s*\\\\\\\\(\\\\\\\\s*assert\\\\\\\\s*\\\\\\\\)\",\"name\":\"keyword.other.version.assert.d\"},{\"begin\":\"\\\\\\\\bversion\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.version.identifier.begin.d\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"keyword.other.version.identifer.end.d\"}},\"patterns\":[{\"include\":\"#integer-literal\"},{\"include\":\"#identifier\"}]},{\"include\":\"#version-specification\"}]},\"version-specification\":{\"patterns\":[{\"match\":\"\\\\\\\\bversion\\\\\\\\b\\\\\\\\s*(?==)\",\"name\":\"keyword.other.version-specification.d\"}]},\"void-initializer\":{\"patterns\":[{\"match\":\"\\\\\\\\bvoid\\\\\\\\b\",\"name\":\"support.type.void.d\"}]},\"while-statement\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(while)\\\\\\\\b\\\\\\\\s*\",\"captures\":{\"1\":{\"name\":\"keyword.control.while.d\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"source.d\"}]}]}]},\"with-statement\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(with)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\()\",\"captures\":{\"1\":{\"name\":\"keyword.control.with.d\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"source.d\"}]}]}]},\"wysiwyg-characters\":{\"patterns\":[{\"include\":\"#character\"},{\"include\":\"#end-of-line\"}]},\"wysiwyg-string\":{\"patterns\":[{\"begin\":\"r\\\\\\\\\\\\\"\",\"end\":\"\\\\\\\\\\\\\"[cwd]?\",\"name\":\"string.wysiwyg-string.d\",\"patterns\":[{\"include\":\"#wysiwyg-characters\"}]}]}},\"scopeName\":\"source.d\"}`)),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Bp6g37R7.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"CODEOWNERS\",\"name\":\"codeowners\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#pattern\"},{\"include\":\"#owner\"}],\"repository\":{\"comment\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*#\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.codeowners\"}},\"end\":\"$\",\"name\":\"comment.line.codeowners\"}]},\"owner\":{\"match\":\"\\\\\\\\S*@\\\\\\\\S+\",\"name\":\"storage.type.function.codeowners\"},\"pattern\":{\"match\":\"^\\\\\\\\s*(\\\\\\\\S+)\",\"name\":\"variable.other.codeowners\"}},\"scopeName\":\"text.codeowners\"}')),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BpWG_bgh.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"TypeSpec\",\"fileTypes\":[\"tsp\"],\"name\":\"typespec\",\"patterns\":[{\"include\":\"#statement\"}],\"repository\":{\"alias-id\":{\"begin\":\"(=)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.tsp\"}},\"end\":\"(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.alias-id.typespec\",\"patterns\":[{\"include\":\"#expression\"}]},\"alias-statement\":{\"begin\":\"\\\\\\\\b(alias)\\\\\\\\b\\\\\\\\s+(\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\b|`(?:[^`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*`)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"},\"2\":{\"name\":\"entity.name.type.tsp\"}},\"end\":\"(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.alias-statement.typespec\",\"patterns\":[{\"include\":\"#alias-id\"},{\"include\":\"#type-parameters\"}]},\"augment-decorator-statement\":{\"begin\":\"((@@)\\\\\\\\b[_$[:alpha:]](?:[_$[:alnum:]]|\\\\\\\\.[_$[:alpha:]])*\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.tsp\"},\"2\":{\"name\":\"entity.name.tag.tsp\"}},\"end\":\"(?=[_$[:alpha:]])|(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.augment-decorator-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#parenthesized-expression\"}]},\"block-comment\":{\"begin\":\"/\\\\\\\\*\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.tsp\"},\"boolean-literal\":{\"match\":\"\\\\\\\\b(true|false)\\\\\\\\b\",\"name\":\"constant.language.tsp\"},\"callExpression\":{\"begin\":\"(\\\\\\\\b[_$[:alpha:]](?:[_$[:alnum:]]|\\\\\\\\.[_$[:alpha:]])*\\\\\\\\b)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.tsp\"},\"2\":{\"name\":\"punctuation.parenthesis.open.tsp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.tsp\"}},\"name\":\"meta.callExpression.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"const-statement\":{\"begin\":\"\\\\\\\\b(const)\\\\\\\\b\\\\\\\\s+(\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\b|`(?:[^`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"},\"2\":{\"name\":\"variable.name.tsp\"}},\"end\":\"(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.const-statement.typespec\",\"patterns\":[{\"include\":\"#type-annotation\"},{\"include\":\"#operator-assignment\"},{\"include\":\"#expression\"}]},\"decorator\":{\"begin\":\"((@)\\\\\\\\b[_$[:alpha:]](?:[_$[:alnum:]]|\\\\\\\\.[_$[:alpha:]])*\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.tsp\"},\"2\":{\"name\":\"entity.name.tag.tsp\"}},\"end\":\"(?=[_$[:alpha:]])|(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.decorator.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#parenthesized-expression\"}]},\"decorator-declaration-statement\":{\"begin\":\"(?:(extern)\\\\\\\\s+)?\\\\\\\\b(dec)\\\\\\\\b\\\\\\\\s+(\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\b|`(?:[^`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"},\"2\":{\"name\":\"keyword.other.tsp\"},\"3\":{\"name\":\"entity.name.function.tsp\"}},\"end\":\"(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.decorator-declaration-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#operation-parameters\"}]},\"directive\":{\"begin\":\"\\\\\\\\s*(#\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.name.tsp\"}},\"end\":\"$|(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.directive.typespec\",\"patterns\":[{\"include\":\"#string-literal\"},{\"include\":\"#identifier-expression\"}]},\"doc-comment\":{\"begin\":\"/\\\\\\\\*\\\\\\\\*\",\"beginCaptures\":{\"0\":{\"name\":\"comment.block.tsp\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"comment.block.tsp\"}},\"name\":\"comment.block.tsp\",\"patterns\":[{\"include\":\"#doc-comment-block\"}]},\"doc-comment-block\":{\"patterns\":[{\"include\":\"#doc-comment-param\"},{\"include\":\"#doc-comment-return-tag\"},{\"include\":\"#doc-comment-unknown-tag\"}]},\"doc-comment-param\":{\"captures\":{\"1\":{\"name\":\"keyword.tag.tspdoc\"},\"2\":{\"name\":\"keyword.tag.tspdoc\"},\"3\":{\"name\":\"variable.name.tsp\"}},\"match\":\"((@)(?:param|template|prop))\\\\\\\\s+(\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\b|`(?:[^`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*`)\\\\\\\\b\",\"name\":\"comment.block.tsp\"},\"doc-comment-return-tag\":{\"captures\":{\"1\":{\"name\":\"keyword.tag.tspdoc\"},\"2\":{\"name\":\"keyword.tag.tspdoc\"}},\"match\":\"((@)(?:returns))\\\\\\\\b\",\"name\":\"comment.block.tsp\"},\"doc-comment-unknown-tag\":{\"captures\":{\"1\":{\"name\":\"entity.name.tag.tsp\"},\"2\":{\"name\":\"entity.name.tag.tsp\"}},\"match\":\"((@)(?:\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\b|`(?:[^`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*`))\\\\\\\\b\",\"name\":\"comment.block.tsp\"},\"else-expression\":{\"begin\":\"\\\\\\\\b(else)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"((?<=\\\\\\\\})|(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b))\",\"name\":\"meta.else-expression.typespec\",\"patterns\":[{\"include\":\"#projection-expression\"},{\"include\":\"#projection-body\"}]},\"else-if-expression\":{\"begin\":\"\\\\\\\\b(else)\\\\\\\\s+(if)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"},\"2\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"((?<=\\\\\\\\})|(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b))\",\"name\":\"meta.else-if-expression.typespec\",\"patterns\":[{\"include\":\"#projection-expression\"},{\"include\":\"#projection-body\"}]},\"enum-body\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.tsp\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.tsp\"}},\"name\":\"meta.enum-body.typespec\",\"patterns\":[{\"include\":\"#enum-member\"},{\"include\":\"#token\"},{\"include\":\"#directive\"},{\"include\":\"#decorator\"},{\"include\":\"#punctuation-comma\"}]},\"enum-member\":{\"begin\":\"(?:(\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\b|`(?:[^`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*`)\\\\\\\\s*(:?))\",\"beginCaptures\":{\"1\":{\"name\":\"variable.name.tsp\"},\"2\":{\"name\":\"keyword.operator.type.annotation.tsp\"}},\"end\":\"(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.enum-member.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#type-annotation\"}]},\"enum-statement\":{\"begin\":\"\\\\\\\\b(enum)\\\\\\\\b\\\\\\\\s+(\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\b|`(?:[^`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"},\"2\":{\"name\":\"entity.name.type.tsp\"}},\"end\":\"(?<=\\\\\\\\})|(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.enum-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#enum-body\"}]},\"escape-character\":{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.tsp\"},\"expression\":{\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#directive\"},{\"include\":\"#parenthesized-expression\"},{\"include\":\"#valueof\"},{\"include\":\"#typeof\"},{\"include\":\"#type-arguments\"},{\"include\":\"#object-literal\"},{\"include\":\"#tuple-literal\"},{\"include\":\"#tuple-expression\"},{\"include\":\"#model-expression\"},{\"include\":\"#callExpression\"},{\"include\":\"#identifier-expression\"}]},\"function-call\":{\"begin\":\"(\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\b|`(?:[^`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*`)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.tsp\"},\"2\":{\"name\":\"punctuation.parenthesis.open.tsp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.tsp\"}},\"name\":\"meta.function-call.typespec\",\"patterns\":[{\"include\":\"#expression\"}]},\"function-declaration-statement\":{\"begin\":\"(?:(extern)\\\\\\\\s+)?\\\\\\\\b(fn)\\\\\\\\b\\\\\\\\s+(\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\b|`(?:[^`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"},\"2\":{\"name\":\"keyword.other.tsp\"},\"3\":{\"name\":\"entity.name.function.tsp\"}},\"end\":\"(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.function-declaration-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#operation-parameters\"},{\"include\":\"#type-annotation\"}]},\"identifier-expression\":{\"match\":\"\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\b|`(?:[^`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*`\",\"name\":\"entity.name.type.tsp\"},\"if-expression\":{\"begin\":\"\\\\\\\\b(if)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"((?<=\\\\\\\\})|(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b))\",\"name\":\"meta.if-expression.typespec\",\"patterns\":[{\"include\":\"#projection-expression\"},{\"include\":\"#projection-body\"}]},\"import-statement\":{\"begin\":\"\\\\\\\\b(import)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.import-statement.typespec\",\"patterns\":[{\"include\":\"#token\"}]},\"interface-body\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.tsp\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.tsp\"}},\"name\":\"meta.interface-body.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#directive\"},{\"include\":\"#decorator\"},{\"include\":\"#interface-member\"},{\"include\":\"#punctuation-semicolon\"}]},\"interface-heritage\":{\"begin\":\"\\\\\\\\b(extends)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"((?=\\\\\\\\{)|(?=;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b))\",\"name\":\"meta.interface-heritage.typespec\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"interface-member\":{\"begin\":\"(?:\\\\\\\\b(op)\\\\\\\\b\\\\\\\\s+)?(\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\b|`(?:[^`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"},\"2\":{\"name\":\"entity.name.function.tsp\"}},\"end\":\"(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.interface-member.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#operation-signature\"}]},\"interface-statement\":{\"begin\":\"\\\\\\\\b(interface)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"(?<=\\\\\\\\})|(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.interface-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#type-parameters\"},{\"include\":\"#interface-heritage\"},{\"include\":\"#interface-body\"},{\"include\":\"#expression\"}]},\"line-comment\":{\"match\":\"//.*$\",\"name\":\"comment.line.double-slash.tsp\"},\"model-expression\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.tsp\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.tsp\"}},\"name\":\"meta.model-expression.typespec\",\"patterns\":[{\"include\":\"#model-property\"},{\"include\":\"#token\"},{\"include\":\"#directive\"},{\"include\":\"#decorator\"},{\"include\":\"#spread-operator\"},{\"include\":\"#punctuation-semicolon\"}]},\"model-heritage\":{\"begin\":\"\\\\\\\\b(extends|is)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"((?=\\\\\\\\{)|(?=;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b))\",\"name\":\"meta.model-heritage.typespec\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"model-property\":{\"begin\":\"(?:(\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\b|`(?:[^`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*`)|(\\\\\\\\\\\\\"(?:[^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\"))\",\"beginCaptures\":{\"1\":{\"name\":\"variable.name.tsp\"},\"2\":{\"name\":\"string.quoted.double.tsp\"}},\"end\":\"(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.model-property.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#type-annotation\"},{\"include\":\"#operator-assignment\"},{\"include\":\"#expression\"}]},\"model-statement\":{\"begin\":\"\\\\\\\\b(model)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"(?<=\\\\\\\\})|(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.model-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#type-parameters\"},{\"include\":\"#model-heritage\"},{\"include\":\"#expression\"}]},\"namespace-body\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.tsp\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.tsp\"}},\"name\":\"meta.namespace-body.typespec\",\"patterns\":[{\"include\":\"#statement\"}]},\"namespace-name\":{\"begin\":\"(?=[_$[:alpha:]])\",\"end\":\"((?=\\\\\\\\{)|(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b))\",\"name\":\"meta.namespace-name.typespec\",\"patterns\":[{\"include\":\"#identifier-expression\"},{\"include\":\"#punctuation-accessor\"}]},\"namespace-statement\":{\"begin\":\"\\\\\\\\b(namespace)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"((?<=\\\\\\\\})|(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b))\",\"name\":\"meta.namespace-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#namespace-name\"},{\"include\":\"#namespace-body\"}]},\"numeric-literal\":{\"match\":\"(?:\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$)|\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$)|(?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))\",\"name\":\"constant.numeric.tsp\"},\"object-literal\":{\"begin\":\"#\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.hashcurlybrace.open.tsp\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.tsp\"}},\"name\":\"meta.object-literal.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#object-literal-property\"},{\"include\":\"#directive\"},{\"include\":\"#spread-operator\"},{\"include\":\"#punctuation-comma\"}]},\"object-literal-property\":{\"begin\":\"(?:(\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\b|`(?:[^`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*`)\\\\\\\\s*(:))\",\"beginCaptures\":{\"1\":{\"name\":\"variable.name.tsp\"},\"2\":{\"name\":\"keyword.operator.type.annotation.tsp\"}},\"end\":\"(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.object-literal-property.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#expression\"}]},\"operation-heritage\":{\"begin\":\"\\\\\\\\b(is)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.operation-heritage.typespec\",\"patterns\":[{\"include\":\"#expression\"}]},\"operation-parameters\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.tsp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.tsp\"}},\"name\":\"meta.operation-parameters.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#decorator\"},{\"include\":\"#model-property\"},{\"include\":\"#spread-operator\"},{\"include\":\"#punctuation-comma\"}]},\"operation-signature\":{\"patterns\":[{\"include\":\"#type-parameters\"},{\"include\":\"#operation-heritage\"},{\"include\":\"#operation-parameters\"},{\"include\":\"#type-annotation\"}]},\"operation-statement\":{\"begin\":\"\\\\\\\\b(op)\\\\\\\\b\\\\\\\\s+(\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\b|`(?:[^`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"},\"2\":{\"name\":\"entity.name.function.tsp\"}},\"end\":\"(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.operation-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#operation-signature\"}]},\"operator-assignment\":{\"match\":\"=\",\"name\":\"keyword.operator.assignment.tsp\"},\"parenthesized-expression\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.tsp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.tsp\"}},\"name\":\"meta.parenthesized-expression.typespec\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"projection\":{\"begin\":\"(from|to)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"((?<=\\\\\\\\})|(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b))\",\"name\":\"meta.projection.typespec\",\"patterns\":[{\"include\":\"#projection-parameters\"},{\"include\":\"#projection-body\"}]},\"projection-body\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.tsp\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.tsp\"}},\"name\":\"meta.projection-body.typespec\",\"patterns\":[{\"include\":\"#projection-expression\"},{\"include\":\"#punctuation-semicolon\"}]},\"projection-expression\":{\"patterns\":[{\"include\":\"#else-if-expression\"},{\"include\":\"#if-expression\"},{\"include\":\"#else-expression\"},{\"include\":\"#function-call\"}]},\"projection-parameter\":{\"begin\":\"(\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\b|`(?:[^`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"variable.name.tsp\"}},\"end\":\"(?=\\\\\\\\))|(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.projection-parameter.typespec\",\"patterns\":[]},\"projection-parameters\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.tsp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.tsp\"}},\"name\":\"meta.projection-parameters.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#projection-parameter\"}]},\"projection-statement\":{\"begin\":\"\\\\\\\\b(projection)\\\\\\\\b\\\\\\\\s+(\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\b|`(?:[^`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*`)(#)(\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\b|`(?:[^`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"},\"2\":{\"name\":\"keyword.other.tsp\"},\"3\":{\"name\":\"keyword.operator.selector.tsp\"},\"4\":{\"name\":\"variable.name.tsp\"}},\"end\":\"((?<=\\\\\\\\})|(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b))\",\"name\":\"meta.projection-statement.typespec\",\"patterns\":[{\"include\":\"#projection-statement-body\"}]},\"projection-statement-body\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.tsp\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.tsp\"}},\"name\":\"meta.projection-statement-body.typespec\",\"patterns\":[{\"include\":\"#projection\"}]},\"punctuation-accessor\":{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.accessor.tsp\"},\"punctuation-comma\":{\"match\":\",\",\"name\":\"punctuation.comma.tsp\"},\"punctuation-semicolon\":{\"match\":\";\",\"name\":\"punctuation.terminator.statement.tsp\"},\"scalar-body\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.tsp\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.tsp\"}},\"name\":\"meta.scalar-body.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#directive\"},{\"include\":\"#scalar-constructor\"},{\"include\":\"#punctuation-semicolon\"}]},\"scalar-constructor\":{\"begin\":\"\\\\\\\\b(init)\\\\\\\\b\\\\\\\\s+(\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\b|`(?:[^`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"},\"2\":{\"name\":\"entity.name.function.tsp\"}},\"end\":\"(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.scalar-constructor.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#operation-parameters\"}]},\"scalar-extends\":{\"begin\":\"\\\\\\\\b(extends)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"(?=;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.scalar-extends.typespec\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"scalar-statement\":{\"begin\":\"\\\\\\\\b(scalar)\\\\\\\\b\\\\\\\\s+(\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\b|`(?:[^`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"},\"2\":{\"name\":\"entity.name.type.tsp\"}},\"end\":\"(?<=\\\\\\\\})|(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.scalar-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#type-parameters\"},{\"include\":\"#scalar-extends\"},{\"include\":\"#scalar-body\"}]},\"spread-operator\":{\"begin\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.spread.tsp\"}},\"end\":\"(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.spread-operator.typespec\",\"patterns\":[{\"include\":\"#expression\"}]},\"statement\":{\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#directive\"},{\"include\":\"#augment-decorator-statement\"},{\"include\":\"#decorator\"},{\"include\":\"#model-statement\"},{\"include\":\"#scalar-statement\"},{\"include\":\"#union-statement\"},{\"include\":\"#interface-statement\"},{\"include\":\"#enum-statement\"},{\"include\":\"#alias-statement\"},{\"include\":\"#const-statement\"},{\"include\":\"#namespace-statement\"},{\"include\":\"#operation-statement\"},{\"include\":\"#import-statement\"},{\"include\":\"#using-statement\"},{\"include\":\"#decorator-declaration-statement\"},{\"include\":\"#function-declaration-statement\"},{\"include\":\"#projection-statement\"},{\"include\":\"#punctuation-semicolon\"}]},\"string-literal\":{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"|$\",\"name\":\"string.quoted.double.tsp\",\"patterns\":[{\"include\":\"#template-expression\"},{\"include\":\"#escape-character\"}]},\"template-expression\":{\"begin\":\"\\\\\\\\$\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.begin.tsp\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.end.tsp\"}},\"name\":\"meta.template-expression.typespec\",\"patterns\":[{\"include\":\"#expression\"}]},\"token\":{\"patterns\":[{\"include\":\"#doc-comment\"},{\"include\":\"#line-comment\"},{\"include\":\"#block-comment\"},{\"include\":\"#triple-quoted-string-literal\"},{\"include\":\"#string-literal\"},{\"include\":\"#boolean-literal\"},{\"include\":\"#numeric-literal\"}]},\"triple-quoted-string-literal\":{\"begin\":\"\\\\\"\\\\\"\\\\\"\",\"end\":\"\\\\\"\\\\\"\\\\\"\",\"name\":\"string.quoted.triple.tsp\",\"patterns\":[{\"include\":\"#template-expression\"},{\"include\":\"#escape-character\"}]},\"tuple-expression\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.squarebracket.open.tsp\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.squarebracket.close.tsp\"}},\"name\":\"meta.tuple-expression.typespec\",\"patterns\":[{\"include\":\"#expression\"}]},\"tuple-literal\":{\"begin\":\"#\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.hashsquarebracket.open.tsp\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.squarebracket.close.tsp\"}},\"name\":\"meta.tuple-literal.typespec\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"type-annotation\":{\"begin\":\"\\\\\\\\s*(\\\\\\\\??)\\\\\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.optional.tsp\"},\"2\":{\"name\":\"keyword.operator.type.annotation.tsp\"}},\"end\":\"(?=,|;|@|\\\\\\\\)|\\\\\\\\}|=|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.type-annotation.typespec\",\"patterns\":[{\"include\":\"#expression\"}]},\"type-argument\":{\"begin\":\"(?:(\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\b|`(?:[^`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*`)\\\\\\\\s*(=))\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.type.tsp\"},\"2\":{\"name\":\"keyword.operator.assignment.tsp\"}},\"end\":\"(?=>)|(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.assignment.tsp\"}},\"name\":\"meta.type-argument.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"type-arguments\":{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.begin.tsp\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.end.tsp\"}},\"name\":\"meta.type-arguments.typespec\",\"patterns\":[{\"include\":\"#type-argument\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"type-parameter\":{\"begin\":\"(\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\b|`(?:[^`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.type.tsp\"}},\"end\":\"(?=>)|(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.type-parameter.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#type-parameter-constraint\"},{\"include\":\"#type-parameter-default\"}]},\"type-parameter-constraint\":{\"begin\":\"extends\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"(?=>)|(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.type-parameter-constraint.typespec\",\"patterns\":[{\"include\":\"#expression\"}]},\"type-parameter-default\":{\"begin\":\"=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.assignment.tsp\"}},\"end\":\"(?=>)|(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.type-parameter-default.typespec\",\"patterns\":[{\"include\":\"#expression\"}]},\"type-parameters\":{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.begin.tsp\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.end.tsp\"}},\"name\":\"meta.type-parameters.typespec\",\"patterns\":[{\"include\":\"#type-parameter\"},{\"include\":\"#punctuation-comma\"}]},\"typeof\":{\"begin\":\"\\\\\\\\b(typeof)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"(?=>)|(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.typeof.typespec\",\"patterns\":[{\"include\":\"#expression\"}]},\"union-body\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.tsp\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.tsp\"}},\"name\":\"meta.union-body.typespec\",\"patterns\":[{\"include\":\"#union-variant\"},{\"include\":\"#token\"},{\"include\":\"#directive\"},{\"include\":\"#decorator\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"union-statement\":{\"begin\":\"\\\\\\\\b(union)\\\\\\\\b\\\\\\\\s+(\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\b|`(?:[^`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*`)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"},\"2\":{\"name\":\"entity.name.type.tsp\"}},\"end\":\"(?<=\\\\\\\\})|(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.union-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#union-body\"}]},\"union-variant\":{\"begin\":\"(?:(\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\b|`(?:[^`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*`)\\\\\\\\s*(:))\",\"beginCaptures\":{\"1\":{\"name\":\"variable.name.tsp\"},\"2\":{\"name\":\"keyword.operator.type.annotation.tsp\"}},\"end\":\"(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.union-variant.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#expression\"}]},\"using-statement\":{\"begin\":\"\\\\\\\\b(using)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.using-statement.typespec\",\"patterns\":[{\"include\":\"#token\"},{\"include\":\"#identifier-expression\"},{\"include\":\"#punctuation-accessor\"}]},\"valueof\":{\"begin\":\"\\\\\\\\b(valueof)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tsp\"}},\"end\":\"(?=>)|(?=,|;|@|\\\\\\\\)|\\\\\\\\}|\\\\\\\\b(?:extern)\\\\\\\\b|\\\\\\\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\\\\\\\b)\",\"name\":\"meta.valueof.typespec\",\"patterns\":[{\"include\":\"#expression\"}]}},\"scopeName\":\"source.tsp\",\"aliases\":[\"tsp\"]}')),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BsOYHjMa.js",
    "content": "import e from\"./Dj6nwHGl.js\";import t from\"./BMYPR7BL.js\";import n from\"./e4jU7D2d.js\";import\"./ySlJ1b_l.js\";import\"./BPhBrDlE.js\";const a=Object.freeze(JSON.parse('{\"displayName\":\"Edge\",\"injections\":{\"text.html.edge - (meta.embedded | meta.tag | comment.block.edge), L:(text.html.edge meta.tag - (comment.block.edge | meta.embedded.block.edge)), L:(source.ts.embedded.html - (comment.block.edge | meta.embedded.block.edge))\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#escapedMustache\"},{\"include\":\"#safeMustache\"},{\"include\":\"#mustache\"},{\"include\":\"#nonSeekableTag\"},{\"include\":\"#tag\"}]}},\"name\":\"edge\",\"patterns\":[{\"include\":\"text.html.basic\"},{\"include\":\"text.html.derivative\"}],\"repository\":{\"comment\":{\"begin\":\"\\\\\\\\{{--\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.edge\"}},\"end\":\"\\\\\\\\--}}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.edge\"}},\"name\":\"comment.block\"},\"escapedMustache\":{\"begin\":\"\\\\\\\\@{{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.edge\"}},\"end\":\"\\\\\\\\}}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.edge\"}},\"name\":\"comment.block\"},\"mustache\":{\"begin\":\"\\\\\\\\{{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.mustache.begin\"}},\"end\":\"\\\\\\\\}}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.mustache.end\"}},\"name\":\"meta.embedded.block.javascript\",\"patterns\":[{\"include\":\"source.ts#expression\"}]},\"nonSeekableTag\":{\"captures\":{\"2\":{\"name\":\"support.function.edge\"}},\"match\":\"^(\\\\\\\\s*)((@{1,2})(!)?([a-zA-Z._]+))(~)?$\",\"name\":\"meta.embedded.block.javascript\",\"patterns\":[{\"include\":\"source.ts#expression\"}]},\"safeMustache\":{\"begin\":\"\\\\\\\\{{{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.mustache.begin\"}},\"end\":\"\\\\\\\\}}}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.mustache.end\"}},\"name\":\"meta.embedded.block.javascript\",\"patterns\":[{\"include\":\"source.ts#expression\"}]},\"tag\":{\"begin\":\"^(\\\\\\\\s*)((@{1,2})(!)?([a-zA-Z._]+)(\\\\\\\\s{0,2}))(\\\\\\\\()\",\"beginCaptures\":{\"2\":{\"name\":\"support.function.edge\"},\"7\":{\"name\":\"punctuation.paren.open\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.paren.close\"}},\"name\":\"meta.embedded.block.javascript\",\"patterns\":[{\"include\":\"source.ts#expression\"}]}},\"scopeName\":\"text.html.edge\",\"embeddedLangs\":[\"typescript\",\"html\",\"html-derivative\"]}')),o=[...e,...t,...n,a];export{o as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Bt5ljtES.js",
    "content": "import{d as I,m as _,u as O,A as E,r as c,w as y,c as f,J as a,K as x,e as g,f as M,L as N,g as s,C as d,E as F,x as l,j as L,i as m,M as q,N as z,G as A}from\"./CU_MfyYc.js\";import{_ as j}from\"./RFJ54-KY.js\";import{_ as K}from\"./D35nYK_C.js\";const Q={key:0,class:\"flex justify-center items-center py-12\"},G={key:1},H={key:0},J={key:2,class:\"text-center py-12 text-red-600 dark:text-red-400\"},W=I({__name:\"ClosedTradeDetailsSlideOver\",props:_({tradeId:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:_([\"order-click\"],[\"update:modelValue\"]),setup(v,{emit:T}){const i=O(v,\"modelValue\"),n=v,h=T,k=E(),u=c(!1),o=c(\"\"),e=c(null);y(()=>n.tradeId,async t=>{t&&i.value&&await p()}),y(i,async t=>{t&&n.tradeId&&await p()});async function p(){if(n.tradeId){u.value=!0,o.value=\"\",e.value=null;try{const t=await k.fetchTradeDetails(n.tradeId);t?e.value=t:o.value=\"Failed to load trade details\"}catch(t){o.value=t.message||\"Failed to load trade details\"}finally{u.value=!1}}}const S=f(()=>e.value?[[\"ID\",e.value.id],[\"Symbol\",e.value.symbol],[\"Exchange\",e.value.exchange],[\"Strategy\",e.value.strategy_name],[\"Type\",e.value.type],[\"Timeframe\",e.value.timeframe],[\"Leverage\",`${e.value.leverage}x`],[\"Entry Price\",a.roundPrice(e.value.entry_price)],[\"Exit Price\",e.value.exit_price?a.roundPrice(e.value.exit_price):\"-\"],[\"Quantity\",e.value.qty],[\"Size\",a.roundPrice(e.value.size)],[\"Fee\",e.value.fee!==null?a.roundPrice(e.value.fee):\"-\"],[\"PNL\",e.value.pnl!==null&&e.value.pnl_percentage!==null?`${x.round(e.value.pnl,2)} (${x.round(e.value.pnl_percentage,2)}%)`:\"-\"],[\"Opened At\",a.timestampToTime(e.value.opened_at)],[\"Closed At\",e.value.closed_at?a.timestampToTime(e.value.closed_at):\"-\"],[\"Holding Period\",e.value.holding_period!==null?`${Math.round(e.value.holding_period)}s`:\"-\"],[\"Status\",e.value.status]]:[]),b=f(()=>!e.value||!e.value.orders?[]:e.value.orders.map(t=>[{value:t.id.slice(-12),style:\"text-xs font-mono\",tooltip:t.id,tag:\"code\"},{value:t.side,style:a.colorBasedOnSide(t.side)},{value:t.type,style:\"text-xs\"},{value:t.price?a.roundPrice(t.price):\"-\",style:\"text-xs\"},{value:t.qty,style:\"text-xs\"},{value:t.filled_qty,style:\"text-xs\"},{value:t.status,style:\"text-xs\"},{value:a.timestampToTimeOnly(t.created_at),style:\"text-xs\",tooltip:a.timestampToTime(t.created_at)}]));function V(t){e.value&&e.value.orders&&e.value.orders[t]&&h(\"order-click\",e.value.orders[t].id)}return(t,r)=>{const P=q,C=z,D=j,$=K,w=N;return s(),g(w,{modelValue:i.value,\"onUpdate:modelValue\":r[0]||(r[0]=B=>i.value=B),size:\"big\",title:\"Trade Details\"},{default:M(()=>[l(u)?(s(),d(\"div\",Q,r[1]||(r[1]=[L(\"div\",{class:\"animate-spin rounded-full h-12 w-12 border-b-2 border-indigo-600\"},null,-1)]))):l(e)?(s(),d(\"div\",G,[m(P,{data:l(S)},null,8,[\"data\"]),m(C,{class:\"mt-8 mb-4\",title:\"Orders\"}),l(e).orders&&l(e).orders.length?(s(),d(\"div\",H,[m(D,{data:l(b),\"header-items\":[\"ID\",\"Side\",\"Type\",\"Price\",\"QTY\",\"Filled\",\"Status\",\"Created\"],header:\"\",clickable:!0,onRowClick:V},null,8,[\"data\"])])):(s(),g($,{key:1}))])):l(o)?(s(),d(\"div\",J,A(l(o)),1)):F(\"\",!0)]),_:1},8,[\"modelValue\"])}}});export{W as _};\n"
  },
  {
    "path": "jesse/static/_nuxt/BthQWCQV.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.background\":\"#222222\",\"activityBarBadge.background\":\"#1D978D\",\"button.background\":\"#0077B5\",\"button.foreground\":\"#FFF\",\"button.hoverBackground\":\"#005076\",\"debugExceptionWidget.background\":\"#141414\",\"debugExceptionWidget.border\":\"#FFF\",\"debugToolBar.background\":\"#141414\",\"editor.background\":\"#222222\",\"editor.foreground\":\"#E6E6E6\",\"editor.inactiveSelectionBackground\":\"#3a3d41\",\"editor.lineHighlightBackground\":\"#141414\",\"editor.lineHighlightBorder\":\"#141414\",\"editor.selectionHighlightBackground\":\"#add6ff26\",\"editorIndentGuide.activeBackground\":\"#707070\",\"editorIndentGuide.background\":\"#404040\",\"editorLink.activeForeground\":\"#0077B5\",\"editorSuggestWidget.selectedBackground\":\"#0077B5\",\"extensionButton.prominentBackground\":\"#0077B5\",\"extensionButton.prominentForeground\":\"#FFF\",\"extensionButton.prominentHoverBackground\":\"#005076\",\"focusBorder\":\"#0077B5\",\"gitDecoration.addedResourceForeground\":\"#ECB22E\",\"gitDecoration.conflictingResourceForeground\":\"#FFF\",\"gitDecoration.deletedResourceForeground\":\"#FFF\",\"gitDecoration.ignoredResourceForeground\":\"#877583\",\"gitDecoration.modifiedResourceForeground\":\"#ECB22E\",\"gitDecoration.untrackedResourceForeground\":\"#ECB22E\",\"input.placeholderForeground\":\"#7A7A7A\",\"list.activeSelectionBackground\":\"#222222\",\"list.dropBackground\":\"#383b3d\",\"list.focusBackground\":\"#0077B5\",\"list.hoverBackground\":\"#222222\",\"menu.background\":\"#252526\",\"menu.foreground\":\"#E6E6E6\",\"notificationLink.foreground\":\"#0077B5\",\"settings.numberInputBackground\":\"#292929\",\"settings.textInputBackground\":\"#292929\",\"sideBarSectionHeader.background\":\"#222222\",\"sideBarTitle.foreground\":\"#E6E6E6\",\"statusBar.background\":\"#222222\",\"statusBar.debuggingBackground\":\"#1D978D\",\"statusBar.noFolderBackground\":\"#141414\",\"textLink.activeForeground\":\"#0077B5\",\"textLink.foreground\":\"#0077B5\",\"titleBar.activeBackground\":\"#222222\",\"titleBar.activeForeground\":\"#E6E6E6\",\"titleBar.inactiveBackground\":\"#222222\",\"titleBar.inactiveForeground\":\"#7A7A7A\"},\"displayName\":\"Slack Dark\",\"name\":\"slack-dark\",\"tokenColors\":[{\"scope\":[\"meta.embedded\",\"source.groovy.embedded\"],\"settings\":{\"foreground\":\"#D4D4D4\"}},{\"scope\":\"emphasis\",\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":\"strong\",\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":\"header\",\"settings\":{\"foreground\":\"#000080\"}},{\"scope\":\"comment\",\"settings\":{\"foreground\":\"#6A9955\"}},{\"scope\":\"constant.language\",\"settings\":{\"foreground\":\"#569cd6\"}},{\"scope\":[\"constant.numeric\"],\"settings\":{\"foreground\":\"#b5cea8\"}},{\"scope\":\"constant.regexp\",\"settings\":{\"foreground\":\"#646695\"}},{\"scope\":\"entity.name.tag\",\"settings\":{\"foreground\":\"#569cd6\"}},{\"scope\":\"entity.name.tag.css\",\"settings\":{\"foreground\":\"#d7ba7d\"}},{\"scope\":\"entity.other.attribute-name\",\"settings\":{\"foreground\":\"#9cdcfe\"}},{\"scope\":[\"entity.other.attribute-name.class.css\",\"entity.other.attribute-name.class.mixin.css\",\"entity.other.attribute-name.id.css\",\"entity.other.attribute-name.parent-selector.css\",\"entity.other.attribute-name.pseudo-class.css\",\"entity.other.attribute-name.pseudo-element.css\",\"source.css.less entity.other.attribute-name.id\",\"entity.other.attribute-name.attribute.scss\",\"entity.other.attribute-name.scss\"],\"settings\":{\"foreground\":\"#d7ba7d\"}},{\"scope\":\"invalid\",\"settings\":{\"foreground\":\"#f44747\"}},{\"scope\":\"markup.underline\",\"settings\":{\"fontStyle\":\"underline\"}},{\"scope\":\"markup.bold\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#569cd6\"}},{\"scope\":\"markup.heading\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#569cd6\"}},{\"scope\":\"markup.italic\",\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":\"markup.inserted\",\"settings\":{\"foreground\":\"#b5cea8\"}},{\"scope\":\"markup.deleted\",\"settings\":{\"foreground\":\"#ce9178\"}},{\"scope\":\"markup.changed\",\"settings\":{\"foreground\":\"#569cd6\"}},{\"scope\":\"punctuation.definition.quote.begin.markdown\",\"settings\":{\"foreground\":\"#6A9955\"}},{\"scope\":\"punctuation.definition.list.begin.markdown\",\"settings\":{\"foreground\":\"#6796e6\"}},{\"scope\":\"markup.inline.raw\",\"settings\":{\"foreground\":\"#ce9178\"}},{\"scope\":\"punctuation.definition.tag\",\"settings\":{\"foreground\":\"#808080\"}},{\"scope\":\"meta.preprocessor\",\"settings\":{\"foreground\":\"#569cd6\"}},{\"scope\":\"meta.preprocessor.string\",\"settings\":{\"foreground\":\"#ce9178\"}},{\"scope\":\"meta.preprocessor.numeric\",\"settings\":{\"foreground\":\"#b5cea8\"}},{\"scope\":\"meta.structure.dictionary.key.python\",\"settings\":{\"foreground\":\"#9cdcfe\"}},{\"scope\":\"meta.diff.header\",\"settings\":{\"foreground\":\"#569cd6\"}},{\"scope\":\"storage\",\"settings\":{\"foreground\":\"#569cd6\"}},{\"scope\":\"storage.type\",\"settings\":{\"foreground\":\"#569cd6\"}},{\"scope\":\"storage.modifier\",\"settings\":{\"foreground\":\"#569cd6\"}},{\"scope\":\"string\",\"settings\":{\"foreground\":\"#ce9178\"}},{\"scope\":\"string.tag\",\"settings\":{\"foreground\":\"#ce9178\"}},{\"scope\":\"string.value\",\"settings\":{\"foreground\":\"#ce9178\"}},{\"scope\":\"string.regexp\",\"settings\":{\"foreground\":\"#d16969\"}},{\"scope\":[\"punctuation.definition.template-expression.begin\",\"punctuation.definition.template-expression.end\",\"punctuation.section.embedded\"],\"settings\":{\"foreground\":\"#569cd6\"}},{\"scope\":[\"meta.template.expression\"],\"settings\":{\"foreground\":\"#d4d4d4\"}},{\"scope\":[\"support.type.vendored.property-name\",\"support.type.property-name\",\"variable.css\",\"variable.scss\",\"variable.other.less\",\"source.coffee.embedded\"],\"settings\":{\"foreground\":\"#9cdcfe\"}},{\"scope\":\"keyword\",\"settings\":{\"foreground\":\"#569cd6\"}},{\"scope\":\"keyword.control\",\"settings\":{\"foreground\":\"#569cd6\"}},{\"scope\":\"keyword.operator\",\"settings\":{\"foreground\":\"#d4d4d4\"}},{\"scope\":[\"keyword.operator.new\",\"keyword.operator.expression\",\"keyword.operator.cast\",\"keyword.operator.sizeof\",\"keyword.operator.instanceof\",\"keyword.operator.logical.python\"],\"settings\":{\"foreground\":\"#569cd6\"}},{\"scope\":\"keyword.other.unit\",\"settings\":{\"foreground\":\"#b5cea8\"}},{\"scope\":[\"punctuation.section.embedded.begin.php\",\"punctuation.section.embedded.end.php\"],\"settings\":{\"foreground\":\"#569cd6\"}},{\"scope\":\"support.function.git-rebase\",\"settings\":{\"foreground\":\"#9cdcfe\"}},{\"scope\":\"constant.sha.git-rebase\",\"settings\":{\"foreground\":\"#b5cea8\"}},{\"scope\":[\"storage.modifier.import.java\",\"variable.language.wildcard.java\",\"storage.modifier.package.java\"],\"settings\":{\"foreground\":\"#d4d4d4\"}},{\"scope\":\"variable.language\",\"settings\":{\"foreground\":\"#569cd6\"}},{\"scope\":[\"entity.name.function\",\"support.function\",\"support.constant.handlebars\"],\"settings\":{\"foreground\":\"#DCDCAA\"}},{\"scope\":[\"meta.return-type\",\"support.class\",\"support.type\",\"entity.name.type\",\"entity.name.class\",\"storage.type.numeric.go\",\"storage.type.byte.go\",\"storage.type.boolean.go\",\"storage.type.string.go\",\"storage.type.uintptr.go\",\"storage.type.error.go\",\"storage.type.rune.go\",\"storage.type.cs\",\"storage.type.generic.cs\",\"storage.type.modifier.cs\",\"storage.type.variable.cs\",\"storage.type.annotation.java\",\"storage.type.generic.java\",\"storage.type.java\",\"storage.type.object.array.java\",\"storage.type.primitive.array.java\",\"storage.type.primitive.java\",\"storage.type.token.java\",\"storage.type.groovy\",\"storage.type.annotation.groovy\",\"storage.type.parameters.groovy\",\"storage.type.generic.groovy\",\"storage.type.object.array.groovy\",\"storage.type.primitive.array.groovy\",\"storage.type.primitive.groovy\"],\"settings\":{\"foreground\":\"#4EC9B0\"}},{\"scope\":[\"meta.type.cast.expr\",\"meta.type.new.expr\",\"support.constant.math\",\"support.constant.dom\",\"support.constant.json\",\"entity.other.inherited-class\"],\"settings\":{\"foreground\":\"#4EC9B0\"}},{\"scope\":\"keyword.control\",\"settings\":{\"foreground\":\"#C586C0\"}},{\"scope\":[\"variable\",\"meta.definition.variable.name\",\"support.variable\",\"entity.name.variable\"],\"settings\":{\"foreground\":\"#9CDCFE\"}},{\"scope\":[\"meta.object-literal.key\"],\"settings\":{\"foreground\":\"#9CDCFE\"}},{\"scope\":[\"support.constant.property-value\",\"support.constant.font-name\",\"support.constant.media-type\",\"support.constant.media\",\"constant.other.color.rgb-value\",\"constant.other.rgb-value\",\"support.constant.color\"],\"settings\":{\"foreground\":\"#CE9178\"}},{\"scope\":[\"punctuation.definition.group.regexp\",\"punctuation.definition.group.assertion.regexp\",\"punctuation.definition.character-class.regexp\",\"punctuation.character.set.begin.regexp\",\"punctuation.character.set.end.regexp\",\"keyword.operator.negation.regexp\",\"support.other.parenthesis.regexp\"],\"settings\":{\"foreground\":\"#CE9178\"}},{\"scope\":[\"constant.character.character-class.regexp\",\"constant.other.character-class.set.regexp\",\"constant.other.character-class.regexp\",\"constant.character.set.regexp\"],\"settings\":{\"foreground\":\"#d16969\"}},{\"scope\":[\"keyword.operator.or.regexp\",\"keyword.control.anchor.regexp\"],\"settings\":{\"foreground\":\"#DCDCAA\"}},{\"scope\":\"keyword.operator.quantifier.regexp\",\"settings\":{\"foreground\":\"#d7ba7d\"}},{\"scope\":\"constant.character\",\"settings\":{\"foreground\":\"#569cd6\"}},{\"scope\":\"constant.character.escape\",\"settings\":{\"foreground\":\"#d7ba7d\"}},{\"scope\":\"token.info-token\",\"settings\":{\"foreground\":\"#6796e6\"}},{\"scope\":\"token.warn-token\",\"settings\":{\"foreground\":\"#cd9731\"}},{\"scope\":\"token.error-token\",\"settings\":{\"foreground\":\"#f44747\"}},{\"scope\":\"token.debug-token\",\"settings\":{\"foreground\":\"#b267e6\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Bu5BbsvL.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"AppleScript\",\"fileTypes\":[\"applescript\",\"scpt\",\"script editor\"],\"firstLineMatch\":\"^#!.*(osascript)\",\"name\":\"applescript\",\"patterns\":[{\"include\":\"#blocks\"},{\"include\":\"#inline\"}],\"repository\":{\"attributes.considering-ignoring\":{\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.separator.array.attributes.applescript\"},{\"match\":\"\\\\\\\\b(and)\\\\\\\\b\",\"name\":\"keyword.control.attributes.and.applescript\"},{\"match\":\"\\\\\\\\b(?i:case|diacriticals|hyphens|numeric\\\\\\\\s+strings|punctuation|white\\\\\\\\s+space)\\\\\\\\b\",\"name\":\"constant.other.attributes.text.applescript\"},{\"match\":\"\\\\\\\\b(?i:application\\\\\\\\s+responses)\\\\\\\\b\",\"name\":\"constant.other.attributes.application.applescript\"}]},\"blocks\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*(script)\\\\\\\\s+(\\\\\\\\w+)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.script.applescript\"},\"2\":{\"name\":\"entity.name.type.script-object.applescript\"}},\"end\":\"^\\\\\\\\s*(end(?:\\\\\\\\s+script)?)(?=\\\\\\\\s*(--.*?)?$)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.script.applescript\"}},\"name\":\"meta.block.script.applescript\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"^\\\\\\\\s*(to|on)\\\\\\\\s+(\\\\\\\\w+)(\\\\\\\\()((?:[\\\\\\\\s,:\\\\\\\\{\\\\\\\\}]*(?:\\\\\\\\w+)?)*)(\\\\\\\\))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.function.applescript\"},\"2\":{\"name\":\"entity.name.function.handler.applescript\"},\"3\":{\"name\":\"punctuation.definition.parameters.begin.applescript\"},\"4\":{\"name\":\"variable.parameter.handler.applescript\"},\"5\":{\"name\":\"punctuation.definition.parameters.end.applescript\"}},\"comment\":\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tThis is not a very well-designed rule.  For now,\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\twe can leave it like this though, as it sorta works.\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\",\"end\":\"^\\\\\\\\s*(end)(?:\\\\\\\\s+(\\\\\\\\2))?(?=\\\\\\\\s*(--.*?)?$)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.function.applescript\"}},\"name\":\"meta.function.positional.applescript\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"^\\\\\\\\s*(to|on)\\\\\\\\s+(\\\\\\\\w+)(?:\\\\\\\\s+(of|in)\\\\\\\\s+(\\\\\\\\w+))?(?=\\\\\\\\s+(above|against|apart\\\\\\\\s+from|around|aside\\\\\\\\s+from|at|below|beneath|beside|between|by|for|from|instead\\\\\\\\s+of|into|on|onto|out\\\\\\\\s+of|over|thru|under)\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.function.applescript\"},\"2\":{\"name\":\"entity.name.function.handler.applescript\"},\"3\":{\"name\":\"keyword.control.function.applescript\"},\"4\":{\"name\":\"variable.parameter.handler.direct.applescript\"}},\"comment\":\"TODO: match `given` parameters\",\"end\":\"^\\\\\\\\s*(end)(?:\\\\\\\\s+(\\\\\\\\2))?(?=\\\\\\\\s*(--.*?)?$)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.function.applescript\"}},\"name\":\"meta.function.prepositional.applescript\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.preposition.applescript\"},\"2\":{\"name\":\"variable.parameter.handler.applescript\"}},\"match\":\"\\\\\\\\b(?i:above|against|apart\\\\\\\\s+from|around|aside\\\\\\\\s+from|at|below|beneath|beside|between|by|for|from|instead\\\\\\\\s+of|into|on|onto|out\\\\\\\\s+of|over|thru|under)\\\\\\\\s+(\\\\\\\\w+)\\\\\\\\b\"},{\"include\":\"$self\"}]},{\"begin\":\"^\\\\\\\\s*(to|on)\\\\\\\\s+(\\\\\\\\w+)(?=\\\\\\\\s*(--.*?)?$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.function.applescript\"},\"2\":{\"name\":\"entity.name.function.handler.applescript\"}},\"end\":\"^\\\\\\\\s*(end)(?:\\\\\\\\s+(\\\\\\\\2))?(?=\\\\\\\\s*(--.*?)?$)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.function.applescript\"}},\"name\":\"meta.function.parameterless.applescript\",\"patterns\":[{\"include\":\"$self\"}]},{\"include\":\"#blocks.tell\"},{\"include\":\"#blocks.repeat\"},{\"include\":\"#blocks.statement\"},{\"include\":\"#blocks.other\"}]},\"blocks.other\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*(considering)\\\\\\\\b\",\"end\":\"^\\\\\\\\s*(end(?:\\\\\\\\s+considering)?)(?=\\\\\\\\s*(--.*?)?$)\",\"name\":\"meta.block.considering.applescript\",\"patterns\":[{\"begin\":\"(?<=considering)\",\"end\":\"(?<!¬)$\",\"name\":\"meta.array.attributes.considering.applescript\",\"patterns\":[{\"include\":\"#attributes.considering-ignoring\"}]},{\"begin\":\"(?<=ignoring)\",\"end\":\"(?<!¬)$\",\"name\":\"meta.array.attributes.ignoring.applescript\",\"patterns\":[{\"include\":\"#attributes.considering-ignoring\"}]},{\"match\":\"\\\\\\\\b(but)\\\\\\\\b\",\"name\":\"keyword.control.but.applescript\"},{\"include\":\"$self\"}]},{\"begin\":\"^\\\\\\\\s*(ignoring)\\\\\\\\b\",\"end\":\"^\\\\\\\\s*(end(?:\\\\\\\\s+ignoring)?)(?=\\\\\\\\s*(--.*?)?$)\",\"name\":\"meta.block.ignoring.applescript\",\"patterns\":[{\"begin\":\"(?<=considering)\",\"end\":\"(?<!¬)$\",\"name\":\"meta.array.attributes.considering.applescript\",\"patterns\":[{\"include\":\"#attributes.considering-ignoring\"}]},{\"begin\":\"(?<=ignoring)\",\"end\":\"(?<!¬)$\",\"name\":\"meta.array.attributes.ignoring.applescript\",\"patterns\":[{\"include\":\"#attributes.considering-ignoring\"}]},{\"match\":\"\\\\\\\\b(but)\\\\\\\\b\",\"name\":\"keyword.control.but.applescript\"},{\"include\":\"$self\"}]},{\"begin\":\"^\\\\\\\\s*(if)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.if.applescript\"}},\"end\":\"^\\\\\\\\s*(end(?:\\\\\\\\s+if)?)(?=\\\\\\\\s*(--.*?)?$)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end.applescript\"}},\"name\":\"meta.block.if.applescript\",\"patterns\":[{\"match\":\"\\\\\\\\b(then)\\\\\\\\b\",\"name\":\"keyword.control.then.applescript\"},{\"match\":\"\\\\\\\\b(else\\\\\\\\s+if)\\\\\\\\b\",\"name\":\"keyword.control.else-if.applescript\"},{\"match\":\"\\\\\\\\b(else)\\\\\\\\b\",\"name\":\"keyword.control.else.applescript\"},{\"include\":\"$self\"}]},{\"begin\":\"^\\\\\\\\s*(try)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.try.applescript\"}},\"end\":\"^\\\\\\\\s*(end(?:\\\\\\\\s+(try|error))?)(?=\\\\\\\\s*(--.*?)?$)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end.applescript\"}},\"name\":\"meta.block.try.applescript\",\"patterns\":[{\"begin\":\"^\\\\\\\\s*(on\\\\\\\\s+error)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.exception.on-error.applescript\"}},\"end\":\"(?<!¬)$\",\"name\":\"meta.property.error.applescript\",\"patterns\":[{\"match\":\"\\\\\\\\b(?i:number|partial|from|to)\\\\\\\\b\",\"name\":\"keyword.control.exception.modifier.applescript\"},{\"include\":\"#inline\"}]},{\"include\":\"$self\"}]},{\"begin\":\"^\\\\\\\\s*(using\\\\\\\\s+terms\\\\\\\\s+from)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.terms.applescript\"}},\"end\":\"^\\\\\\\\s*(end(?:\\\\\\\\s+using\\\\\\\\s+terms\\\\\\\\s+from)?)(?=\\\\\\\\s*(--.*?)?$)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end.applescript\"}},\"name\":\"meta.block.terms.applescript\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"^\\\\\\\\s*(with\\\\\\\\s+timeout(\\\\\\\\s+of)?)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.timeout.applescript\"}},\"end\":\"^\\\\\\\\s*(end(?:\\\\\\\\s+timeout)?)(?=\\\\\\\\s*(--.*?)?$)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end.applescript\"}},\"name\":\"meta.block.timeout.applescript\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"^\\\\\\\\s*(with\\\\\\\\s+transaction(\\\\\\\\s+of)?)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.transaction.applescript\"}},\"end\":\"^\\\\\\\\s*(end(?:\\\\\\\\s+transaction)?)(?=\\\\\\\\s*(--.*?)?$)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end.applescript\"}},\"name\":\"meta.block.transaction.applescript\",\"patterns\":[{\"include\":\"$self\"}]}]},\"blocks.repeat\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*(repeat)\\\\\\\\s+(until)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.repeat.applescript\"},\"2\":{\"name\":\"keyword.control.until.applescript\"}},\"end\":\"^\\\\\\\\s*(end(?:\\\\\\\\s+repeat)?)(?=\\\\\\\\s*(--.*?)?$)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end.applescript\"}},\"name\":\"meta.block.repeat.until.applescript\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"^\\\\\\\\s*(repeat)\\\\\\\\s+(while)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.repeat.applescript\"},\"2\":{\"name\":\"keyword.control.while.applescript\"}},\"end\":\"^\\\\\\\\s*(end(?:\\\\\\\\s+repeat)?)(?=\\\\\\\\s*(--.*?)?$)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end.applescript\"}},\"name\":\"meta.block.repeat.while.applescript\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"^\\\\\\\\s*(repeat)\\\\\\\\s+(with)\\\\\\\\s+(\\\\\\\\w+)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.repeat.applescript\"},\"2\":{\"name\":\"keyword.control.until.applescript\"},\"3\":{\"name\":\"variable.parameter.loop.applescript\"}},\"end\":\"^\\\\\\\\s*(end(?:\\\\\\\\s+repeat)?)(?=\\\\\\\\s*(--.*?)?$)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end.applescript\"}},\"name\":\"meta.block.repeat.with.applescript\",\"patterns\":[{\"match\":\"\\\\\\\\b(from|to|by)\\\\\\\\b\",\"name\":\"keyword.control.modifier.range.applescript\"},{\"match\":\"\\\\\\\\b(in)\\\\\\\\b\",\"name\":\"keyword.control.modifier.list.applescript\"},{\"include\":\"$self\"}]},{\"begin\":\"^\\\\\\\\s*(repeat)\\\\\\\\b(?=\\\\\\\\s*(--.*?)?$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.repeat.applescript\"}},\"end\":\"^\\\\\\\\s*(end(?:\\\\\\\\s+repeat)?)(?=\\\\\\\\s*(--.*?)?$)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end.applescript\"}},\"name\":\"meta.block.repeat.forever.applescript\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"^\\\\\\\\s*(repeat)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.repeat.applescript\"}},\"end\":\"^\\\\\\\\s*(end(?:\\\\\\\\s+repeat)?)(?=\\\\\\\\s*(--.*?)?$)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end.applescript\"}},\"name\":\"meta.block.repeat.times.applescript\",\"patterns\":[{\"match\":\"\\\\\\\\b(times)\\\\\\\\b\",\"name\":\"keyword.control.times.applescript\"},{\"include\":\"$self\"}]}]},\"blocks.statement\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(prop(?:erty)?)\\\\\\\\s+(\\\\\\\\w+)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.def.property.applescript\"},\"2\":{\"name\":\"variable.other.property.applescript\"}},\"end\":\"(?<!¬)$\",\"name\":\"meta.statement.property.applescript\",\"patterns\":[{\"match\":\":\",\"name\":\"punctuation.separator.key-value.property.applescript\"},{\"include\":\"#inline\"}]},{\"begin\":\"\\\\\\\\b(set)\\\\\\\\s+(\\\\\\\\w+)\\\\\\\\s+(to)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.def.set.applescript\"},\"2\":{\"name\":\"variable.other.readwrite.set.applescript\"},\"3\":{\"name\":\"keyword.control.def.set.applescript\"}},\"end\":\"(?<!¬)$\",\"name\":\"meta.statement.set.applescript\",\"patterns\":[{\"include\":\"#inline\"}]},{\"begin\":\"\\\\\\\\b(local)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.def.local.applescript\"}},\"end\":\"(?<!¬)$\",\"name\":\"meta.statement.local.applescript\",\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.separator.variables.local.applescript\"},{\"match\":\"\\\\\\\\b\\\\\\\\w+\",\"name\":\"variable.other.readwrite.local.applescript\"},{\"include\":\"#inline\"}]},{\"begin\":\"\\\\\\\\b(global)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.def.global.applescript\"}},\"end\":\"(?<!¬)$\",\"name\":\"meta.statement.global.applescript\",\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.separator.variables.global.applescript\"},{\"match\":\"\\\\\\\\b\\\\\\\\w+\",\"name\":\"variable.other.readwrite.global.applescript\"},{\"include\":\"#inline\"}]},{\"begin\":\"\\\\\\\\b(error)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.exception.error.applescript\"}},\"end\":\"(?<!¬)$\",\"name\":\"meta.statement.error.applescript\",\"patterns\":[{\"match\":\"\\\\\\\\b(number|partial|from|to)\\\\\\\\b\",\"name\":\"keyword.control.exception.modifier.applescript\"},{\"include\":\"#inline\"}]},{\"begin\":\"\\\\\\\\b(if)\\\\\\\\b(?=.*\\\\\\\\bthen\\\\\\\\b(?!\\\\\\\\s*(--.*?)?$))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.if.applescript\"}},\"end\":\"(?<!¬)$\",\"name\":\"meta.statement.if-then.applescript\",\"patterns\":[{\"include\":\"#inline\"}]}]},\"blocks.tell\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*(tell)\\\\\\\\s+(?=app(lication)?\\\\\\\\s+\\\\\"(?i:textmate)\\\\\")(?!.*\\\\\\\\bto(?!\\\\\\\\s+tell)\\\\\\\\b)\",\"captures\":{\"1\":{\"name\":\"keyword.control.tell.applescript\"}},\"comment\":\"tell Textmate\",\"end\":\"^\\\\\\\\s*(end(?:\\\\\\\\s+tell)?)(?=\\\\\\\\s*(--.*?)?$)\",\"name\":\"meta.block.tell.application.textmate.applescript\",\"patterns\":[{\"include\":\"#textmate\"},{\"include\":\"#standard-suite\"},{\"include\":\"$self\"}]},{\"begin\":\"^\\\\\\\\s*(tell)\\\\\\\\s+(?=app(lication)?\\\\\\\\s+\\\\\"(?i:finder)\\\\\")(?!.*\\\\\\\\bto(?!\\\\\\\\s+tell)\\\\\\\\b)\",\"captures\":{\"1\":{\"name\":\"keyword.control.tell.applescript\"}},\"comment\":\"tell Finder\",\"end\":\"^\\\\\\\\s*(end(?:\\\\\\\\s+tell)?)(?=\\\\\\\\s*(--.*?)?$)\",\"name\":\"meta.block.tell.application.finder.applescript\",\"patterns\":[{\"include\":\"#finder\"},{\"include\":\"#standard-suite\"},{\"include\":\"$self\"}]},{\"begin\":\"^\\\\\\\\s*(tell)\\\\\\\\s+(?=app(lication)?\\\\\\\\s+\\\\\"(?i:system events)\\\\\")(?!.*\\\\\\\\bto(?!\\\\\\\\s+tell)\\\\\\\\b)\",\"captures\":{\"1\":{\"name\":\"keyword.control.tell.applescript\"}},\"comment\":\"tell System Events\",\"end\":\"^\\\\\\\\s*(end(?:\\\\\\\\s+tell)?)(?=\\\\\\\\s*(--.*?)?$)\",\"name\":\"meta.block.tell.application.system-events.applescript\",\"patterns\":[{\"include\":\"#system-events\"},{\"include\":\"#standard-suite\"},{\"include\":\"$self\"}]},{\"begin\":\"^\\\\\\\\s*(tell)\\\\\\\\s+(?=app(lication)?\\\\\\\\s+\\\\\"(?i:itunes)\\\\\")(?!.*\\\\\\\\bto(?!\\\\\\\\s+tell)\\\\\\\\b)\",\"captures\":{\"1\":{\"name\":\"keyword.control.tell.applescript\"}},\"comment\":\"tell iTunes\",\"end\":\"^\\\\\\\\s*(end(?:\\\\\\\\s+tell)?)(?=\\\\\\\\s*(--.*?)?$)\",\"name\":\"meta.block.tell.application.itunes.applescript\",\"patterns\":[{\"include\":\"#itunes\"},{\"include\":\"#standard-suite\"},{\"include\":\"$self\"}]},{\"begin\":\"^\\\\\\\\s*(tell)\\\\\\\\s+(?=app(lication)?\\\\\\\\s+process\\\\\\\\b)(?!.*\\\\\\\\bto(?!\\\\\\\\s+tell)\\\\\\\\b)\",\"captures\":{\"1\":{\"name\":\"keyword.control.tell.applescript\"}},\"comment\":\"tell generic application process\",\"end\":\"^\\\\\\\\s*(end(?:\\\\\\\\s+tell)?)(?=\\\\\\\\s*(--.*?)?$)\",\"name\":\"meta.block.tell.application-process.generic.applescript\",\"patterns\":[{\"include\":\"#standard-suite\"},{\"include\":\"$self\"}]},{\"begin\":\"^\\\\\\\\s*(tell)\\\\\\\\s+(?=app(lication)?\\\\\\\\b)(?!.*\\\\\\\\bto(?!\\\\\\\\s+tell)\\\\\\\\b)\",\"captures\":{\"1\":{\"name\":\"keyword.control.tell.applescript\"}},\"comment\":\"tell generic application\",\"end\":\"^\\\\\\\\s*(end(?:\\\\\\\\s+tell)?)(?=\\\\\\\\s*(--.*?)?$)\",\"name\":\"meta.block.tell.application.generic.applescript\",\"patterns\":[{\"include\":\"#standard-suite\"},{\"include\":\"$self\"}]},{\"begin\":\"^\\\\\\\\s*(tell)\\\\\\\\s+(?!.*\\\\\\\\bto(?!\\\\\\\\s+tell)\\\\\\\\b)\",\"captures\":{\"1\":{\"name\":\"keyword.control.tell.applescript\"}},\"comment\":\"generic tell block\",\"end\":\"^\\\\\\\\s*(end(?:\\\\\\\\s+tell)?)(?=\\\\\\\\s*(--.*?)?$)\",\"name\":\"meta.block.tell.generic.applescript\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"^\\\\\\\\s*(tell)\\\\\\\\s+(?=.*\\\\\\\\bto\\\\\\\\b)\",\"captures\":{\"1\":{\"name\":\"keyword.control.tell.applescript\"}},\"comment\":\"tell … to statement\",\"end\":\"(?<!¬)$\",\"name\":\"meta.block.tell.generic.applescript\",\"patterns\":[{\"include\":\"$self\"}]}]},\"built-in\":{\"patterns\":[{\"include\":\"#built-in.constant\"},{\"include\":\"#built-in.keyword\"},{\"include\":\"#built-in.support\"},{\"include\":\"#built-in.punctuation\"}]},\"built-in.constant\":{\"patterns\":[{\"comment\":\"yes/no can’t always be used as booleans, e.g. in an if() expression. But they work e.g. for boolean arguments.\",\"match\":\"\\\\\\\\b(?i:true|false|yes|no)\\\\\\\\b\",\"name\":\"constant.language.boolean.applescript\"},{\"match\":\"\\\\\\\\b(?i:null|missing\\\\\\\\s+value)\\\\\\\\b\",\"name\":\"constant.language.null.applescript\"},{\"match\":\"-?\\\\\\\\b\\\\\\\\d+((\\\\\\\\.(\\\\\\\\d+\\\\\\\\b)?)?(?i:e\\\\\\\\+?\\\\\\\\d*\\\\\\\\b)?|\\\\\\\\b)\",\"name\":\"constant.numeric.applescript\"},{\"match\":\"\\\\\\\\b(?i:space|tab|return|linefeed|quote)\\\\\\\\b\",\"name\":\"constant.other.text.applescript\"},{\"match\":\"\\\\\\\\b(?i:all\\\\\\\\s+(caps|lowercase)|bold|condensed|expanded|hidden|italic|outline|plain|shadow|small\\\\\\\\s+caps|strikethrough|(sub|super)script|underline)\\\\\\\\b\",\"name\":\"constant.other.styles.applescript\"},{\"match\":\"\\\\\\\\b(?i:Jan(uary)?|Feb(ruary)?|Mar(ch)?|Apr(il)?|May|Jun(e)?|Jul(y)?|Aug(ust)?|Sep(tember)?|Oct(ober)?|Nov(ember)?|Dec(ember)?)\\\\\\\\b\",\"name\":\"constant.other.time.month.applescript\"},{\"match\":\"\\\\\\\\b(?i:Mon(day)?|Tue(sday)?|Wed(nesday)?|Thu(rsday)?|Fri(day)?|Sat(urday)?|Sun(day)?)\\\\\\\\b\",\"name\":\"constant.other.time.weekday.applescript\"},{\"match\":\"\\\\\\\\b(?i:AppleScript|pi|result|version|current\\\\\\\\s+application|its?|m[ey])\\\\\\\\b\",\"name\":\"constant.other.miscellaneous.applescript\"},{\"match\":\"\\\\\\\\b(?i:text\\\\\\\\s+item\\\\\\\\s+delimiters|print\\\\\\\\s+(length|depth))\\\\\\\\b\",\"name\":\"variable.language.applescript\"}]},\"built-in.keyword\":{\"patterns\":[{\"match\":\"(&|\\\\\\\\*|\\\\\\\\+|-|/|÷|\\\\\\\\^)\",\"name\":\"keyword.operator.arithmetic.applescript\"},{\"match\":\"(=|≠|>|<|≥|>=|≤|<=)\",\"name\":\"keyword.operator.comparison.applescript\"},{\"match\":\"(?ix)\\\\\\\\b\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t(and|or|div|mod|as|not\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t|(a\\\\\\\\s+)?(ref(\\\\\\\\s+to)?|reference\\\\\\\\s+to)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t|equal(s|\\\\\\\\s+to)|contains?|comes\\\\\\\\s+(after|before)|(start|begin|end)s?\\\\\\\\s+with\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\\b\",\"name\":\"keyword.operator.word.applescript\"},{\"comment\":\"In double quotes so we can use a single quote in the keywords.\",\"match\":\"(?ix)\\\\\\\\b\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t(is(n\\'t|\\\\\\\\s+not)?(\\\\\\\\s+(equal(\\\\\\\\s+to)?|(less|greater)\\\\\\\\s+than(\\\\\\\\s+or\\\\\\\\s+equal(\\\\\\\\s+to)?)?|in|contained\\\\\\\\s+by))?\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t|does(n\\'t|\\\\\\\\s+not)\\\\\\\\s+(equal|come\\\\\\\\s+(before|after)|contain)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\\b\",\"name\":\"keyword.operator.word.applescript\"},{\"match\":\"\\\\\\\\b(?i:some|every|whose|where|that|id|index|\\\\\\\\d+(st|nd|rd|th)|first|second|third|fourth|fifth|sixth|seventh|eighth|ninth|tenth|last|front|back|middle|named|beginning|end|from|to|thr(u|ough)|before|(front|back|beginning|end)\\\\\\\\s+of|after|behind|in\\\\\\\\s+(front|back|beginning|end)\\\\\\\\s+of)\\\\\\\\b\",\"name\":\"keyword.operator.reference.applescript\"},{\"match\":\"\\\\\\\\b(?i:continue|return|exit(\\\\\\\\s+repeat)?)\\\\\\\\b\",\"name\":\"keyword.control.loop.applescript\"},{\"match\":\"\\\\\\\\b(?i:about|above|after|against|and|apart\\\\\\\\s+from|around|as|aside\\\\\\\\s+from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|contain|contains|contains|copy|div|does|eighth|else|end|equal|equals|error|every|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead\\\\\\\\s+of|into|is|it|its|last|local|me|middle|mod|my|ninth|not|of|on|onto|or|out\\\\\\\\s+of|over|prop|property|put|ref|reference|repeat|returning|script|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\\\\\\\\b\",\"name\":\"keyword.other.applescript\"}]},\"built-in.punctuation\":{\"patterns\":[{\"match\":\"¬\",\"name\":\"punctuation.separator.continuation.line.applescript\"},{\"comment\":\"the : in property assignments\",\"match\":\":\",\"name\":\"punctuation.separator.key-value.property.applescript\"},{\"comment\":\"the parentheses in groups\",\"match\":\"[()]\",\"name\":\"punctuation.section.group.applescript\"}]},\"built-in.support\":{\"patterns\":[{\"match\":\"\\\\\\\\b(?i:POSIX\\\\\\\\s+path|frontmost|id|name|running|version|days?|weekdays?|months?|years?|time|date\\\\\\\\s+string|time\\\\\\\\s+string|length|rest|reverse|items?|contents|quoted\\\\\\\\s+form|characters?|paragraphs?|words?)\\\\\\\\b\",\"name\":\"support.function.built-in.property.applescript\"},{\"match\":\"\\\\\\\\b(?i:activate|log|clipboard\\\\\\\\s+info|set\\\\\\\\s+the\\\\\\\\s+clipboard\\\\\\\\s+to|the\\\\\\\\s+clipboard|info\\\\\\\\s+for|list\\\\\\\\s+(disks|folder)|mount\\\\\\\\s+volume|path\\\\\\\\s+to(\\\\\\\\s+resource)?|close\\\\\\\\s+access|get\\\\\\\\s+eof|open\\\\\\\\s+for\\\\\\\\s+access|read|set\\\\\\\\s+eof|write|open\\\\\\\\s+location|current\\\\\\\\s+date|do\\\\\\\\s+shell\\\\\\\\s+script|get\\\\\\\\s+volume\\\\\\\\s+settings|random\\\\\\\\s+number|round|set\\\\\\\\s+volume|system\\\\\\\\s+(attribute|info)|time\\\\\\\\s+to\\\\\\\\s+GMT|load\\\\\\\\s+script|run\\\\\\\\s+script|scripting\\\\\\\\s+components|store\\\\\\\\s+script|copy|count|get|launch|run|set|ASCII\\\\\\\\s+(character|number)|localized\\\\\\\\s+string|offset|summarize|beep|choose\\\\\\\\s+(application|color|file(\\\\\\\\s+name)?|folder|from\\\\\\\\s+list|remote\\\\\\\\s+application|URL)|delay|display\\\\\\\\s+(alert|dialog)|say)\\\\\\\\b\",\"name\":\"support.function.built-in.command.applescript\"},{\"match\":\"\\\\\\\\b(?i:get|run)\\\\\\\\b\",\"name\":\"support.function.built-in.applescript\"},{\"match\":\"\\\\\\\\b(?i:anything|data|text|upper\\\\\\\\s+case|propert(y|ies))\\\\\\\\b\",\"name\":\"support.class.built-in.applescript\"},{\"match\":\"\\\\\\\\b(?i:alias|class)(es)?\\\\\\\\b\",\"name\":\"support.class.built-in.applescript\"},{\"match\":\"\\\\\\\\b(?i:app(lication)?|boolean|character|constant|date|event|file(\\\\\\\\s+specification)?|handler|integer|item|keystroke|linked\\\\\\\\s+list|list|machine|number|picture|preposition|POSIX\\\\\\\\s+file|real|record|reference(\\\\\\\\s+form)?|RGB\\\\\\\\s+color|script|sound|text\\\\\\\\s+item|type\\\\\\\\s+class|vector|writing\\\\\\\\s+code(\\\\\\\\s+info)?|zone|((international|styled(\\\\\\\\s+(Clipboard|Unicode))?|Unicode)\\\\\\\\s+)?text|((C|encoded|Pascal)\\\\\\\\s+)?string)s?\\\\\\\\b\",\"name\":\"support.class.built-in.applescript\"},{\"match\":\"(?ix)\\\\\\\\b\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t(\\\\t(cubic\\\\\\\\s+(centi)?|square\\\\\\\\s+(kilo)?|centi|kilo)met(er|re)s\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t|\\\\tsquare\\\\\\\\s+(yards|feet|miles)|cubic\\\\\\\\s+(yards|feet|inches)|miles|inches\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t|\\\\tlit(re|er)s|gallons|quarts\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t|\\\\t(kilo)?grams|ounces|pounds\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t|\\\\tdegrees\\\\\\\\s+(Celsius|Fahrenheit|Kelvin)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\\b\",\"name\":\"support.class.built-in.unit.applescript\"},{\"match\":\"\\\\\\\\b(?i:seconds|minutes|hours|days)\\\\\\\\b\",\"name\":\"support.class.built-in.time.applescript\"}]},\"comments\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*(#!)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.applescript\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.number-sign.applescript\"},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.applescript\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.applescript\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.number-sign.applescript\"}]},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=--)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.applescript\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"--\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.applescript\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.double-dash.applescript\"}]},{\"begin\":\"\\\\\\\\(\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.applescript\"}},\"end\":\"\\\\\\\\*\\\\\\\\)\",\"name\":\"comment.block.applescript\",\"patterns\":[{\"include\":\"#comments.nested\"}]}]},\"comments.nested\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\\\\\\\\*\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.applescript\"}},\"end\":\"\\\\\\\\*\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.applescript\"}},\"name\":\"comment.block.applescript\",\"patterns\":[{\"include\":\"#comments.nested\"}]}]},\"data-structures\":{\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.array.begin.applescript\"}},\"comment\":\"We cannot necessarily distinguish \\\\\"records\\\\\" from \\\\\"arrays\\\\\", and so this could be either.\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.array.end.applescript\"}},\"name\":\"meta.array.applescript\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.other.key.applescript\"},\"2\":{\"name\":\"meta.identifier.applescript\"},\"3\":{\"name\":\"punctuation.definition.identifier.applescript\"},\"4\":{\"name\":\"punctuation.definition.identifier.applescript\"},\"5\":{\"name\":\"punctuation.separator.key-value.applescript\"}},\"match\":\"(\\\\\\\\w+|((\\\\\\\\|)[^|\\\\\\\\n]*(\\\\\\\\|)))\\\\\\\\s*(:)\"},{\"match\":\":\",\"name\":\"punctuation.separator.key-value.applescript\"},{\"match\":\",\",\"name\":\"punctuation.separator.array.applescript\"},{\"include\":\"#inline\"}]},{\"begin\":\"(?:(?<=application )|(?<=app ))(\\\\\")\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.string.applescript\"}},\"end\":\"(\\\\\")\",\"name\":\"string.quoted.double.application-name.applescript\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.applescript\"}]},{\"begin\":\"(\\\\\")\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.string.applescript\"}},\"end\":\"(\\\\\")\",\"name\":\"string.quoted.double.applescript\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.applescript\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.identifier.applescript\"},\"2\":{\"name\":\"punctuation.definition.identifier.applescript\"}},\"match\":\"(\\\\\\\\|)[^|\\\\\\\\n]*(\\\\\\\\|)\",\"name\":\"meta.identifier.applescript\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.data.applescript\"},\"2\":{\"name\":\"support.class.built-in.applescript\"},\"3\":{\"name\":\"storage.type.utxt.applescript\"},\"4\":{\"name\":\"string.unquoted.data.applescript\"},\"5\":{\"name\":\"punctuation.definition.data.applescript\"},\"6\":{\"name\":\"keyword.operator.applescript\"},\"7\":{\"name\":\"support.class.built-in.applescript\"}},\"match\":\"(«)(data) (utxt|utf8)([[:xdigit:]]*)(»)(?:\\\\\\\\s+(as)\\\\\\\\s+(?i:Unicode\\\\\\\\s+text))?\",\"name\":\"constant.other.data.utxt.applescript\"},{\"begin\":\"(«)(\\\\\\\\w+)\\\\\\\\b(?=\\\\\\\\s)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.data.applescript\"},\"2\":{\"name\":\"support.class.built-in.applescript\"}},\"end\":\"(»)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.data.applescript\"}},\"name\":\"constant.other.data.raw.applescript\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.data.applescript\"},\"2\":{\"name\":\"punctuation.definition.data.applescript\"}},\"match\":\"(«)[^»]*(»)\",\"name\":\"invalid.illegal.data.applescript\"}]},\"finder\":{\"patterns\":[{\"match\":\"\\\\\\\\b(item|container|(computer|disk|trash)-object|disk|folder|((alias|application|document|internet location) )?file|clipping|package)s?\\\\\\\\b\",\"name\":\"support.class.finder.items.applescript\"},{\"match\":\"\\\\\\\\b((Finder|desktop|information|preferences|clipping) )windows?\\\\\\\\b\",\"name\":\"support.class.finder.window-classes.applescript\"},{\"match\":\"\\\\\\\\b(preferences|(icon|column|list) view options|(label|column|alias list)s?)\\\\\\\\b\",\"name\":\"support.class.finder.type-definitions.applescript\"},{\"match\":\"\\\\\\\\b(copy|find|sort|clean up|eject|empty( trash)|erase|reveal|update)\\\\\\\\b\",\"name\":\"support.function.finder.items.applescript\"},{\"match\":\"\\\\\\\\b(insertion location|product version|startup disk|desktop|trash|home|computer container|finder preferences)\\\\\\\\b\",\"name\":\"support.constant.finder.applescript\"},{\"match\":\"\\\\\\\\b(visible)\\\\\\\\b\",\"name\":\"support.variable.finder.applescript\"}]},\"inline\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#data-structures\"},{\"include\":\"#built-in\"},{\"include\":\"#standardadditions\"}]},\"itunes\":{\"patterns\":[{\"match\":\"\\\\\\\\b(artwork|application|encoder|EQ preset|item|source|visual|(EQ |browser )?window|((audio CD|device|shared|URL|file) )?track|playlist window|((audio CD|device|radio tuner|library|folder|user) )?playlist)s?\\\\\\\\b\",\"name\":\"support.class.itunes.applescript\"},{\"match\":\"\\\\\\\\b(add|back track|convert|fast forward|(next|previous) track|pause|play(pause)?|refresh|resume|rewind|search|stop|update|eject|subscribe|update(Podcast|AllPodcasts)|download)\\\\\\\\b\",\"name\":\"support.function.itunes.applescript\"},{\"match\":\"\\\\\\\\b(current (playlist|stream (title|URL)|track)|player state)\\\\\\\\b\",\"name\":\"support.constant.itunes.applescript\"},{\"match\":\"\\\\\\\\b(current (encoder|EQ preset|visual)|EQ enabled|fixed indexing|full screen|mute|player position|sound volume|visuals enabled|visual size)\\\\\\\\b\",\"name\":\"support.variable.itunes.applescript\"}]},\"standard-suite\":{\"patterns\":[{\"match\":\"\\\\\\\\b(colors?|documents?|items?|windows?)\\\\\\\\b\",\"name\":\"support.class.standard-suite.applescript\"},{\"match\":\"\\\\\\\\b(close|count|delete|duplicate|exists|make|move|open|print|quit|save|activate|select|data size)\\\\\\\\b\",\"name\":\"support.function.standard-suite.applescript\"},{\"match\":\"\\\\\\\\b(name|frontmost|version)\\\\\\\\b\",\"name\":\"support.constant.standard-suite.applescript\"},{\"match\":\"\\\\\\\\b(selection)\\\\\\\\b\",\"name\":\"support.variable.standard-suite.applescript\"},{\"match\":\"\\\\\\\\b(attachments?|attribute runs?|characters?|paragraphs?|texts?|words?)\\\\\\\\b\",\"name\":\"support.class.text-suite.applescript\"}]},\"standardadditions\":{\"patterns\":[{\"match\":\"\\\\\\\\b((alert|dialog) reply)\\\\\\\\b\",\"name\":\"support.class.standardadditions.user-interaction.applescript\"},{\"match\":\"\\\\\\\\b(file information)\\\\\\\\b\",\"name\":\"support.class.standardadditions.file.applescript\"},{\"match\":\"\\\\\\\\b(POSIX files?|system information|volume settings)\\\\\\\\b\",\"name\":\"support.class.standardadditions.miscellaneous.applescript\"},{\"match\":\"\\\\\\\\b(URLs?|internet address(es)?|web pages?|FTP items?)\\\\\\\\b\",\"name\":\"support.class.standardadditions.internet.applescript\"},{\"match\":\"\\\\\\\\b(info for|list (disks|folder)|mount volume|path to( resource)?)\\\\\\\\b\",\"name\":\"support.function.standardadditions.file.applescript\"},{\"match\":\"\\\\\\\\b(beep|choose (application|color|file( name)?|folder|from list|remote application|URL)|delay|display (alert|dialog)|say)\\\\\\\\b\",\"name\":\"support.function.standardadditions.user-interaction.applescript\"},{\"match\":\"\\\\\\\\b(ASCII (character|number)|localized string|offset|summarize)\\\\\\\\b\",\"name\":\"support.function.standardadditions.string.applescript\"},{\"match\":\"\\\\\\\\b(set the clipboard to|the clipboard|clipboard info)\\\\\\\\b\",\"name\":\"support.function.standardadditions.clipboard.applescript\"},{\"match\":\"\\\\\\\\b(open for access|close access|read|write|get eof|set eof)\\\\\\\\b\",\"name\":\"support.function.standardadditions.file-i-o.applescript\"},{\"match\":\"\\\\\\\\b((load|store|run) script|scripting components)\\\\\\\\b\",\"name\":\"support.function.standardadditions.scripting.applescript\"},{\"match\":\"\\\\\\\\b(current date|do shell script|get volume settings|random number|round|set volume|system attribute|system info|time to GMT)\\\\\\\\b\",\"name\":\"support.function.standardadditions.miscellaneous.applescript\"},{\"match\":\"\\\\\\\\b(opening folder|(closing|moving) folder window for|adding folder items to|removing folder items from)\\\\\\\\b\",\"name\":\"support.function.standardadditions.folder-actions.applescript\"},{\"match\":\"\\\\\\\\b(open location|handle CGI request)\\\\\\\\b\",\"name\":\"support.function.standardadditions.internet.applescript\"}]},\"system-events\":{\"patterns\":[{\"match\":\"\\\\\\\\b(audio (data|file))\\\\\\\\b\",\"name\":\"support.class.system-events.audio-file.applescript\"},{\"match\":\"\\\\\\\\b(alias(es)?|(Classic|local|network|system|user) domain objects?|disk( item)?s?|domains?|file( package)?s?|folders?|items?)\\\\\\\\b\",\"name\":\"support.class.system-events.disk-folder-file.applescript\"},{\"match\":\"\\\\\\\\b(delete|open|move)\\\\\\\\b\",\"name\":\"support.function.system-events.disk-folder-file.applescript\"},{\"match\":\"\\\\\\\\b(folder actions?|scripts?)\\\\\\\\b\",\"name\":\"support.class.system-events.folder-actions.applescript\"},{\"match\":\"\\\\\\\\b(attach action to|attached scripts|edit action of|remove action from)\\\\\\\\b\",\"name\":\"support.function.system-events.folder-actions.applescript\"},{\"match\":\"\\\\\\\\b(movie data|movie file)\\\\\\\\b\",\"name\":\"support.class.system-events.movie-file.applescript\"},{\"match\":\"\\\\\\\\b(log out|restart|shut down|sleep)\\\\\\\\b\",\"name\":\"support.function.system-events.power.applescript\"},{\"match\":\"\\\\\\\\b(((application |desk accessory )?process|(check|combo )?box)(es)?|(action|attribute|browser|(busy|progress|relevance) indicator|color well|column|drawer|group|grow area|image|incrementor|list|menu( bar)?( item)?|(menu |pop up |radio )?button|outline|(radio|tab|splitter) group|row|scroll (area|bar)|sheet|slider|splitter|static text|table|text (area|field)|tool bar|UI element|window)s?)\\\\\\\\b\",\"name\":\"support.class.system-events.processes.applescript\"},{\"match\":\"\\\\\\\\b(click|key code|keystroke|perform|select)\\\\\\\\b\",\"name\":\"support.function.system-events.processes.applescript\"},{\"match\":\"\\\\\\\\b(property list (file|item))\\\\\\\\b\",\"name\":\"support.class.system-events.property-list.applescript\"},{\"match\":\"\\\\\\\\b(annotation|QuickTime (data|file)|track)s?\\\\\\\\b\",\"name\":\"support.class.system-events.quicktime-file.applescript\"},{\"match\":\"\\\\\\\\b((abort|begin|end) transaction)\\\\\\\\b\",\"name\":\"support.function.system-events.system-events.applescript\"},{\"match\":\"\\\\\\\\b(XML (attribute|data|element|file)s?)\\\\\\\\b\",\"name\":\"support.class.system-events.xml.applescript\"},{\"match\":\"\\\\\\\\b(print settings|users?|login items?)\\\\\\\\b\",\"name\":\"support.class.sytem-events.other.applescript\"}]},\"textmate\":{\"patterns\":[{\"match\":\"\\\\\\\\b(print settings)\\\\\\\\b\",\"name\":\"support.class.textmate.applescript\"},{\"match\":\"\\\\\\\\b(get url|insert|reload bundles)\\\\\\\\b\",\"name\":\"support.function.textmate.applescript\"}]}},\"scopeName\":\"source.applescript\"}')),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Bu73EIfS.js",
    "content": "import e from\"./BLhTXw86.js\";const t=Object.freeze(JSON.parse(`{\"displayName\":\"1C (Enterprise)\",\"fileTypes\":[\"bsl\",\"os\"],\"name\":\"bsl\",\"patterns\":[{\"include\":\"#basic\"},{\"include\":\"#miscellaneous\"},{\"begin\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(Процедура|Procedure|Функция|Function)\\\\\\\\s+([a-zа-яё0-9_]+)\\\\\\\\s*(\\\\\\\\())\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.bsl\"},\"2\":{\"name\":\"entity.name.function.bsl\"},\"3\":{\"name\":\"punctuation.bracket.begin.bsl\"}},\"comment\":\"Proc and function definition\",\"end\":\"(?i:(\\\\\\\\))\\\\\\\\s*((Экспорт|Export)(?=[^\\\\\\\\wа-яё\\\\\\\\.]|$))?)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.bracket.end.bsl\"},\"2\":{\"name\":\"storage.modifier.bsl\"}},\"patterns\":[{\"include\":\"#annotations\"},{\"include\":\"#basic\"},{\"match\":\"(=)\",\"name\":\"keyword.operator.assignment.bsl\"},{\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(Знач|Val)(?=[^\\\\\\\\wа-яё\\\\\\\\.]|$))\",\"name\":\"storage.modifier.bsl\"},{\"match\":\"(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)((?<==)(?i)[a-zа-яё0-9_]+)(?=[^\\\\\\\\wа-яё\\\\\\\\.]|$)\",\"name\":\"invalid.illegal.bsl\"},{\"match\":\"(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)((?<==\\\\\\\\s)\\\\\\\\s*(?i)[a-zа-яё0-9_]+)(?=[^\\\\\\\\wа-яё\\\\\\\\.]|$)\",\"name\":\"invalid.illegal.bsl\"},{\"match\":\"(?i:[a-zа-яё0-9_]+)\",\"name\":\"variable.parameter.bsl\"}]},{\"begin\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(Перем|Var)\\\\\\\\s+([a-zа-яё0-9_]+)\\\\\\\\s*)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.var.bsl\"},\"2\":{\"name\":\"variable.bsl\"}},\"comment\":\"Define of variable\",\"end\":\"(;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.bsl\"}},\"patterns\":[{\"match\":\"(,)\",\"name\":\"keyword.operator.bsl\"},{\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(Экспорт|Export)(?=[^\\\\\\\\wа-яё\\\\\\\\.]|$))\",\"name\":\"storage.modifier.bsl\"},{\"match\":\"(?i:[a-zа-яё0-9_]+)\",\"name\":\"variable.bsl\"}]},{\"begin\":\"(?i:(?<=;|^)\\\\\\\\s*(Если|If))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.conditional.bsl\"}},\"comment\":\"Conditional\",\"end\":\"(?i:(Тогда|Then))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.conditional.bsl\"}},\"name\":\"meta.conditional.bsl\",\"patterns\":[{\"include\":\"#basic\"},{\"include\":\"#miscellaneous\"}]},{\"begin\":\"(?i:(?<=;|^)\\\\\\\\s*([\\\\\\\\wа-яё]+))\\\\\\\\s*(=)\",\"beginCaptures\":{\"1\":{\"name\":\"variable.assignment.bsl\"},\"2\":{\"name\":\"keyword.operator.assignment.bsl\"}},\"comment\":\"Variable assignment\",\"end\":\"(?i:(?=(;|Иначе|Конец|Els|End)))\",\"name\":\"meta.var-single-variable.bsl\",\"patterns\":[{\"include\":\"#basic\"},{\"include\":\"#miscellaneous\"}]},{\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(КонецПроцедуры|EndProcedure|КонецФункции|EndFunction)(?=[^\\\\\\\\wа-яё\\\\\\\\.]|$))\",\"name\":\"storage.type.bsl\"},{\"match\":\"(?i)#(Использовать|Use)(?=[^\\\\\\\\wа-яё\\\\\\\\.]|$)\",\"name\":\"keyword.control.import.bsl\"},{\"match\":\"(?i)#native\",\"name\":\"keyword.control.native.bsl\"},{\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(Прервать|Break|Продолжить|Continue|Возврат|Return)(?=[^\\\\\\\\wа-яё\\\\\\\\.]|$))\",\"name\":\"keyword.control.bsl\"},{\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(Если|If|Иначе|Else|ИначеЕсли|ElsIf|Тогда|Then|КонецЕсли|EndIf)(?=[^\\\\\\\\wа-яё\\\\\\\\.]|$))\",\"name\":\"keyword.control.conditional.bsl\"},{\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(Попытка|Try|Исключение|Except|КонецПопытки|EndTry|ВызватьИсключение|Raise)(?=[^\\\\\\\\wа-яё\\\\\\\\.]|$))\",\"name\":\"keyword.control.exception.bsl\"},{\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(Пока|While|(Для|For)(\\\\\\\\s+(Каждого|Each))?|Из|In|По|To|Цикл|Do|КонецЦикла|EndDo)(?=[^\\\\\\\\wа-яё\\\\\\\\.]|$))\",\"name\":\"keyword.control.repeat.bsl\"},{\"match\":\"(?i:&(НаКлиенте((НаСервере(БезКонтекста)?)?)|AtClient((AtServer(NoContext)?)?)|НаСервере(БезКонтекста)?|AtServer(NoContext)?))\",\"name\":\"storage.modifier.directive.bsl\"},{\"include\":\"#annotations\"},{\"match\":\"(?i:#(Если|If|ИначеЕсли|ElsIf|Иначе|Else|КонецЕсли|EndIf).*(Тогда|Then)?)\",\"name\":\"keyword.other.preprocessor.bsl\"},{\"begin\":\"(?i)(#(Область|Region))(\\\\\\\\s+([\\\\\\\\wа-яё]+))?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.section.bsl\"},\"4\":{\"name\":\"entity.name.section.bsl\"}},\"comment\":\"Region start\",\"end\":\"$\"},{\"comment\":\"Region end\",\"match\":\"(?i)#(КонецОбласти|EndRegion)\",\"name\":\"keyword.other.section.bsl\"},{\"comment\":\"Delete start\",\"match\":\"(?i)#(Удаление|Delete)\",\"name\":\"keyword.other.section.bsl\"},{\"comment\":\"Delete end\",\"match\":\"(?i)#(КонецУдаления|EndDelete)\",\"name\":\"keyword.other.section.bsl\"},{\"comment\":\"Inster start\",\"match\":\"(?i)#(Вставка|Insert)\",\"name\":\"keyword.other.section.bsl\"},{\"comment\":\"Insert end\",\"match\":\"(?i)#(КонецВставки|EndInsert)\",\"name\":\"keyword.other.section.bsl\"}],\"repository\":{\"annotations\":{\"patterns\":[{\"begin\":\"(?i)(&([a-zа-яё0-9_]+))\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.annotation.bsl\"},\"3\":{\"name\":\"punctuation.bracket.begin.bsl\"}},\"comment\":\"Annotations with parameters\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.bracket.end.bsl\"}},\"patterns\":[{\"include\":\"#basic\"},{\"match\":\"(=)\",\"name\":\"keyword.operator.assignment.bsl\"},{\"match\":\"(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)((?<==)(?i)[a-zа-яё0-9_]+)(?=[^\\\\\\\\wа-яё\\\\\\\\.]|$)\",\"name\":\"invalid.illegal.bsl\"},{\"match\":\"(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)((?<==\\\\\\\\s)\\\\\\\\s*(?i)[a-zа-яё0-9_]+)(?=[^\\\\\\\\wа-яё\\\\\\\\.]|$)\",\"name\":\"invalid.illegal.bsl\"},{\"match\":\"(?i)[a-zа-яё0-9_]+\",\"name\":\"variable.annotation.bsl\"}]},{\"comment\":\"Annotations without parameters\",\"match\":\"(?i)(&([a-zа-яё0-9_]+))\",\"name\":\"storage.type.annotation.bsl\"}]},\"basic\":{\"patterns\":[{\"begin\":\"//\",\"end\":\"$\",\"name\":\"comment.line.double-slash.bsl\"},{\"begin\":\"\\\\\\\\\\\\\"\",\"end\":\"\\\\\\\\\\\\\"(?![\\\\\\\\\\\\\"])\",\"name\":\"string.quoted.double.bsl\",\"patterns\":[{\"include\":\"#query\"},{\"match\":\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"\",\"name\":\"constant.character.escape.bsl\"},{\"match\":\"(^\\\\\\\\s*//.*$)\",\"name\":\"comment.line.double-slash.bsl\"}]},{\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(Неопределено|Undefined|Истина|True|Ложь|False|NULL)(?=[^\\\\\\\\wа-яё\\\\\\\\.]|$))\",\"name\":\"constant.language.bsl\"},{\"match\":\"(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(\\\\\\\\d+\\\\\\\\.?\\\\\\\\d*)(?=[^\\\\\\\\wа-яё\\\\\\\\.]|$)\",\"name\":\"constant.numeric.bsl\"},{\"match\":\"\\\\\\\\'((\\\\\\\\d{4}[^\\\\\\\\d\\\\\\\\']*\\\\\\\\d{2}[^\\\\\\\\d\\\\\\\\']*\\\\\\\\d{2})([^\\\\\\\\d\\\\\\\\']*\\\\\\\\d{2}[^\\\\\\\\d\\\\\\\\']*\\\\\\\\d{2}([^\\\\\\\\d\\\\\\\\']*\\\\\\\\d{2})?)?)\\\\\\\\'\",\"name\":\"constant.other.date.bsl\"},{\"match\":\"(,)\",\"name\":\"keyword.operator.bsl\"},{\"match\":\"(\\\\\\\\()\",\"name\":\"punctuation.bracket.begin.bsl\"},{\"match\":\"(\\\\\\\\))\",\"name\":\"punctuation.bracket.end.bsl\"}]},\"miscellaneous\":{\"patterns\":[{\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(НЕ|NOT|И|AND|ИЛИ|OR)(?=[^\\\\\\\\wа-яё\\\\\\\\.]|$))\",\"name\":\"keyword.operator.logical.bsl\"},{\"match\":\"<=|>=|=|<|>\",\"name\":\"keyword.operator.comparison.bsl\"},{\"match\":\"(\\\\\\\\+|-|\\\\\\\\*|/|%)\",\"name\":\"keyword.operator.arithmetic.bsl\"},{\"match\":\"(;|\\\\\\\\?)\",\"name\":\"keyword.operator.bsl\"},{\"comment\":\"Functions w/o brackets\",\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(Новый|New)(?=[^\\\\\\\\wа-яё\\\\\\\\.]|$))\",\"name\":\"support.function.bsl\"},{\"comment\":\"Глобальный контекст - функции работы со значениями типа Строка\",\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(СтрДлина|StrLen|СокрЛ|TrimL|СокрП|TrimR|СокрЛП|TrimAll|Лев|Left|Прав|Right|Сред|Mid|СтрНайти|StrFind|ВРег|Upper|НРег|Lower|ТРег|Title|Символ|Char|КодСимвола|CharCode|ПустаяСтрока|IsBlankString|СтрЗаменить|StrReplace|СтрЧислоСтрок|StrLineCount|СтрПолучитьСтроку|StrGetLine|СтрЧислоВхождений|StrOccurrenceCount|СтрСравнить|StrCompare|СтрНачинаетсяС|StrStartWith|СтрЗаканчиваетсяНа|StrEndsWith|СтрРазделить|StrSplit|СтрСоединить|StrConcat)\\\\\\\\s*(?=\\\\\\\\())\",\"name\":\"support.function.bsl\"},{\"comment\":\"Глобальный контекст - функции работы со значениями типа Число\",\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(Цел|Int|Окр|Round|ACos|ASin|ATan|Cos|Exp|Log|Log10|Pow|Sin|Sqrt|Tan)\\\\\\\\s*(?=\\\\\\\\())\",\"name\":\"support.function.bsl\"},{\"comment\":\"Глобальный контекст - функции работы со значениями типа Дата\",\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(Год|Year|Месяц|Month|День|Day|Час|Hour|Минута|Minute|Секунда|Second|НачалоГода|BegOfYear|НачалоДня|BegOfDay|НачалоКвартала|BegOfQuarter|НачалоМесяца|BegOfMonth|НачалоМинуты|BegOfMinute|НачалоНедели|BegOfWeek|НачалоЧаса|BegOfHour|КонецГода|EndOfYear|КонецДня|EndOfDay|КонецКвартала|EndOfQuarter|КонецМесяца|EndOfMonth|КонецМинуты|EndOfMinute|КонецНедели|EndOfWeek|КонецЧаса|EndOfHour|НеделяГода|WeekOfYear|ДеньГода|DayOfYear|ДеньНедели|WeekDay|ТекущаяДата|CurrentDate|ДобавитьМесяц|AddMonth)\\\\\\\\s*(?=\\\\\\\\())\",\"name\":\"support.function.bsl\"},{\"comment\":\"Глобальный контекст - функции работы со значениями типа Тип\",\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(Тип|Type|ТипЗнч|TypeOf)\\\\\\\\s*(?=\\\\\\\\())\",\"name\":\"support.function.bsl\"},{\"comment\":\"Глобальный контекст - функции преобразования значений\",\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(Булево|Boolean|Число|Number|Строка|String|Дата|Date)\\\\\\\\s*(?=\\\\\\\\())\",\"name\":\"support.function.bsl\"},{\"comment\":\"Глобальный контекст - процедуры и функции интерактивной работы\",\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(ПоказатьВопрос|ShowQueryBox|Вопрос|DoQueryBox|ПоказатьПредупреждение|ShowMessageBox|Предупреждение|DoMessageBox|Сообщить|Message|ОчиститьСообщения|ClearMessages|ОповеститьОбИзменении|NotifyChanged|Состояние|Status|Сигнал|Beep|ПоказатьЗначение|ShowValue|ОткрытьЗначение|OpenValue|Оповестить|Notify|ОбработкаПрерыванияПользователя|UserInterruptProcessing|ОткрытьСодержаниеСправки|OpenHelpContent|ОткрытьИндексСправки|OpenHelpIndex|ОткрытьСправку|OpenHelp|ПоказатьИнформациюОбОшибке|ShowErrorInfo|КраткоеПредставлениеОшибки|BriefErrorDescription|ПодробноеПредставлениеОшибки|DetailErrorDescription|ПолучитьФорму|GetForm|ЗакрытьСправку|CloseHelp|ПоказатьОповещениеПользователя|ShowUserNotification|ОткрытьФорму|OpenForm|ОткрытьФормуМодально|OpenFormModal|АктивноеОкно|ActiveWindow|ВыполнитьОбработкуОповещения|ExecuteNotifyProcessing)\\\\\\\\s*(?=\\\\\\\\())\",\"name\":\"support.function.bsl\"},{\"comment\":\"Глобальный контекст - функции для вызова диалога ввода данных\",\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(ПоказатьВводЗначения|ShowInputValue|ВвестиЗначение|InputValue|ПоказатьВводЧисла|ShowInputNumber|ВвестиЧисло|InputNumber|ПоказатьВводСтроки|ShowInputString|ВвестиСтроку|InputString|ПоказатьВводДаты|ShowInputDate|ВвестиДату|InputDate)\\\\\\\\s*(?=\\\\\\\\())\",\"name\":\"support.function.bsl\"},{\"comment\":\"Глобальный контекст - функции форматирования\",\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(Формат|Format|ЧислоПрописью|NumberInWords|НСтр|NStr|ПредставлениеПериода|PeriodPresentation|СтрШаблон|StrTemplate)\\\\\\\\s*(?=\\\\\\\\())\",\"name\":\"support.function.bsl\"},{\"comment\":\"Глобальный контекст - функции обращения к конфигурации\",\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(ПолучитьОбщийМакет|GetCommonTemplate|ПолучитьОбщуюФорму|GetCommonForm|ПредопределенноеЗначение|PredefinedValue|ПолучитьПолноеИмяПредопределенногоЗначения|GetPredefinedValueFullName)\\\\\\\\s*(?=\\\\\\\\())\",\"name\":\"support.function.bsl\"},{\"comment\":\"Глобальный контекст - процедуры и функции сеанса работы\",\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(ПолучитьЗаголовокСистемы|GetCaption|ПолучитьСкоростьКлиентскогоСоединения|GetClientConnectionSpeed|ПодключитьОбработчикОжидания|AttachIdleHandler|УстановитьЗаголовокСистемы|SetCaption|ОтключитьОбработчикОжидания|DetachIdleHandler|ИмяКомпьютера|ComputerName|ЗавершитьРаботуСистемы|Exit|ИмяПользователя|UserName|ПрекратитьРаботуСистемы|Terminate|ПолноеИмяПользователя|UserFullName|ЗаблокироватьРаботуПользователя|LockApplication|КаталогПрограммы|BinDir|КаталогВременныхФайлов|TempFilesDir|ПравоДоступа|AccessRight|РольДоступна|IsInRole|ТекущийЯзык|CurrentLanguage|ТекущийКодЛокализации|CurrentLocaleCode|СтрокаСоединенияИнформационнойБазы|InfoBaseConnectionString|ПодключитьОбработчикОповещения|AttachNotificationHandler|ОтключитьОбработчикОповещения|DetachNotificationHandler|ПолучитьСообщенияПользователю|GetUserMessages|ПараметрыДоступа|AccessParameters|ПредставлениеПриложения|ApplicationPresentation|ТекущийЯзыкСистемы|CurrentSystemLanguage|ЗапуститьСистему|RunSystem|ТекущийРежимЗапуска|CurrentRunMode|УстановитьЧасовойПоясСеанса|SetSessionTimeZone|ЧасовойПоясСеанса|SessionTimeZone|ТекущаяДатаСеанса|CurrentSessionDate|УстановитьКраткийЗаголовокПриложения|SetShortApplicationCaption|ПолучитьКраткийЗаголовокПриложения|GetShortApplicationCaption|ПредставлениеПрава|RightPresentation|ВыполнитьПроверкуПравДоступа|VerifyAccessRights|РабочийКаталогДанныхПользователя|UserDataWorkDir|КаталогДокументов|DocumentsDir|ПолучитьИнформациюЭкрановКлиента|GetClientDisplaysInformation|ТекущийВариантОсновногоШрифтаКлиентскогоПриложения|ClientApplicationBaseFontCurrentVariant|ТекущийВариантИнтерфейсаКлиентскогоПриложения|ClientApplicationInterfaceCurrentVariant|УстановитьЗаголовокКлиентскогоПриложения|SetClientApplicationCaption|ПолучитьЗаголовокКлиентскогоПриложения|GetClientApplicationCaption|НачатьПолучениеКаталогаВременныхФайлов|BeginGettingTempFilesDir|НачатьПолучениеКаталогаДокументов|BeginGettingDocumentsDir|НачатьПолучениеРабочегоКаталогаДанныхПользователя|BeginGettingUserDataWorkDir|ПодключитьОбработчикЗапросаНастроекКлиентаЛицензирования|AttachLicensingClientParametersRequestHandler|ОтключитьОбработчикЗапросаНастроекКлиентаЛицензирования|DetachLicensingClientParametersRequestHandler|КаталогБиблиотекиМобильногоУстройства|MobileDeviceLibraryDir)\\\\\\\\s*(?=\\\\\\\\())\",\"name\":\"support.function.bsl\"},{\"comment\":\"Глобальный контекст - процедуры и функции сохранения значений\",\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(ЗначениеВСтрокуВнутр|ValueToStringInternal|ЗначениеИзСтрокиВнутр|ValueFromStringInternal|ЗначениеВФайл|ValueToFile|ЗначениеИзФайла|ValueFromFile)\\\\\\\\s*(?=\\\\\\\\())\",\"name\":\"support.function.bsl\"},{\"comment\":\"Глобальный контекст - Процедуры и функции работы с операционной системой\",\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(КомандаСистемы|System|ЗапуститьПриложение|RunApp|ПолучитьCOMОбъект|GetCOMObject|ПользователиОС|OSUsers|НачатьЗапускПриложения|BeginRunningApplication)\\\\\\\\s*(?=\\\\\\\\())\",\"name\":\"support.function.bsl\"},{\"comment\":\"Глобальный контекст - Процедуры и функции работы с внешними компонентами\",\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(ПодключитьВнешнююКомпоненту|AttachAddIn|НачатьУстановкуВнешнейКомпоненты|BeginInstallAddIn|УстановитьВнешнююКомпоненту|InstallAddIn|НачатьПодключениеВнешнейКомпоненты|BeginAttachingAddIn)\\\\\\\\s*(?=\\\\\\\\())\",\"name\":\"support.function.bsl\"},{\"comment\":\"Глобальный контекст - Процедуры и функции работы с файлами\",\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(КопироватьФайл|FileCopy|ПереместитьФайл|MoveFile|УдалитьФайлы|DeleteFiles|НайтиФайлы|FindFiles|СоздатьКаталог|CreateDirectory|ПолучитьИмяВременногоФайла|GetTempFileName|РазделитьФайл|SplitFile|ОбъединитьФайлы|MergeFiles|ПолучитьФайл|GetFile|НачатьПомещениеФайла|BeginPutFile|ПоместитьФайл|PutFile|ЭтоАдресВременногоХранилища|IsTempStorageURL|УдалитьИзВременногоХранилища|DeleteFromTempStorage|ПолучитьИзВременногоХранилища|GetFromTempStorage|ПоместитьВоВременноеХранилище|PutToTempStorage|ПодключитьРасширениеРаботыСФайлами|AttachFileSystemExtension|НачатьУстановкуРасширенияРаботыСФайлами|BeginInstallFileSystemExtension|УстановитьРасширениеРаботыСФайлами|InstallFileSystemExtension|ПолучитьФайлы|GetFiles|ПоместитьФайлы|PutFiles|ЗапроситьРазрешениеПользователя|RequestUserPermission|ПолучитьМаскуВсеФайлы|GetAllFilesMask|ПолучитьМаскуВсеФайлыКлиента|GetClientAllFilesMask|ПолучитьМаскуВсеФайлыСервера|GetServerAllFilesMask|ПолучитьРазделительПути|GetPathSeparator|ПолучитьРазделительПутиКлиента|GetClientPathSeparator|ПолучитьРазделительПутиСервера|GetServerPathSeparator|НачатьПодключениеРасширенияРаботыСФайлами|BeginAttachingFileSystemExtension|НачатьЗапросРазрешенияПользователя|BeginRequestingUserPermission|НачатьПоискФайлов|BeginFindingFiles|НачатьСозданиеКаталога|BeginCreatingDirectory|НачатьКопированиеФайла|BeginCopyingFile|НачатьПеремещениеФайла|BeginMovingFile|НачатьУдалениеФайлов|BeginDeletingFiles|НачатьПолучениеФайлов|BeginGettingFiles|НачатьПомещениеФайлов|BeginPuttingFiles|НачатьСозданиеДвоичныхДанныхИзФайла|BeginCreateBinaryDataFromFile)\\\\\\\\s*(?=\\\\\\\\())\",\"name\":\"support.function.bsl\"},{\"comment\":\"Глобальный контекст - Процедуры и функции работы с информационной базой\",\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(НачатьТранзакцию|BeginTransaction|ЗафиксироватьТранзакцию|CommitTransaction|ОтменитьТранзакцию|RollbackTransaction|УстановитьМонопольныйРежим|SetExclusiveMode|МонопольныйРежим|ExclusiveMode|ПолучитьОперативнуюОтметкуВремени|GetRealTimeTimestamp|ПолучитьСоединенияИнформационнойБазы|GetInfoBaseConnections|НомерСоединенияИнформационнойБазы|InfoBaseConnectionNumber|КонфигурацияИзменена|ConfigurationChanged|КонфигурацияБазыДанныхИзмененаДинамически|DataBaseConfigurationChangedDynamically|УстановитьВремяОжиданияБлокировкиДанных|SetLockWaitTime|ОбновитьНумерациюОбъектов|RefreshObjectsNumbering|ПолучитьВремяОжиданияБлокировкиДанных|GetLockWaitTime|КодЛокализацииИнформационнойБазы|InfoBaseLocaleCode|УстановитьМинимальнуюДлинуПаролейПользователей|SetUserPasswordMinLength|ПолучитьМинимальнуюДлинуПаролейПользователей|GetUserPasswordMinLength|ИнициализироватьПредопределенныеДанные|InitializePredefinedData|УдалитьДанныеИнформационнойБазы|EraseInfoBaseData|УстановитьПроверкуСложностиПаролейПользователей|SetUserPasswordStrengthCheck|ПолучитьПроверкуСложностиПаролейПользователей|GetUserPasswordStrengthCheck|ПолучитьСтруктуруХраненияБазыДанных|GetDBStorageStructureInfo|УстановитьПривилегированныйРежим|SetPrivilegedMode|ПривилегированныйРежим|PrivilegedMode|ТранзакцияАктивна|TransactionActive|НеобходимостьЗавершенияСоединения|ConnectionStopRequest|НомерСеансаИнформационнойБазы|InfoBaseSessionNumber|ПолучитьСеансыИнформационнойБазы|GetInfoBaseSessions|ЗаблокироватьДанныеДляРедактирования|LockDataForEdit|УстановитьСоединениеСВнешнимИсточникомДанных|ConnectExternalDataSource|РазблокироватьДанныеДляРедактирования|UnlockDataForEdit|РазорватьСоединениеСВнешнимИсточникомДанных|DisconnectExternalDataSource|ПолучитьБлокировкуСеансов|GetSessionsLock|УстановитьБлокировкуСеансов|SetSessionsLock|ОбновитьПовторноИспользуемыеЗначения|RefreshReusableValues|УстановитьБезопасныйРежим|SetSafeMode|БезопасныйРежим|SafeMode|ПолучитьДанныеВыбора|GetChoiceData|УстановитьЧасовойПоясИнформационнойБазы|SetInfoBaseTimeZone|ПолучитьЧасовойПоясИнформационнойБазы|GetInfoBaseTimeZone|ПолучитьОбновлениеКонфигурацииБазыДанных|GetDataBaseConfigurationUpdate|УстановитьБезопасныйРежимРазделенияДанных|SetDataSeparationSafeMode|БезопасныйРежимРазделенияДанных|DataSeparationSafeMode|УстановитьВремяЗасыпанияПассивногоСеанса|SetPassiveSessionHibernateTime|ПолучитьВремяЗасыпанияПассивногоСеанса|GetPassiveSessionHibernateTime|УстановитьВремяЗавершенияСпящегоСеанса|SetHibernateSessionTerminateTime|ПолучитьВремяЗавершенияСпящегоСеанса|GetHibernateSessionTerminateTime|ПолучитьТекущийСеансИнформационнойБазы|GetCurrentInfoBaseSession|ПолучитьИдентификаторКонфигурации|GetConfigurationID|УстановитьНастройкиКлиентаЛицензирования|SetLicensingClientParameters|ПолучитьИмяКлиентаЛицензирования|GetLicensingClientName|ПолучитьДополнительныйПараметрКлиентаЛицензирования|GetLicensingClientAdditionalParameter|ПолучитьОтключениеБезопасногоРежима|GetSafeModeDisabled|УстановитьОтключениеБезопасногоРежима|SetSafeModeDisabled)\\\\\\\\s*(?=\\\\\\\\())\",\"name\":\"support.function.bsl\"},{\"comment\":\"Глобальный контекст - Процедуры и функции работы с данными информационной базы\",\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(НайтиПомеченныеНаУдаление|FindMarkedForDeletion|НайтиПоСсылкам|FindByRef|УдалитьОбъекты|DeleteObjects|УстановитьОбновлениеПредопределенныхДанныхИнформационнойБазы|SetInfoBasePredefinedDataUpdate|ПолучитьОбновлениеПредопределенныхДанныхИнформационнойБазы|GetInfoBasePredefinedData)\\\\\\\\s*(?=\\\\\\\\())\",\"name\":\"support.function.bsl\"},{\"comment\":\"Глобальный контекст - Процедуры и функции работы с XML\",\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(XMLСтрока|XMLString|XMLЗначение|XMLValue|XMLТип|XMLType|XMLТипЗнч|XMLTypeOf|ИзXMLТипа|FromXMLType|ВозможностьЧтенияXML|CanReadXML|ПолучитьXMLТип|GetXMLType|ПрочитатьXML|ReadXML|ЗаписатьXML|WriteXML|НайтиНедопустимыеСимволыXML|FindDisallowedXMLCharacters|ИмпортМоделиXDTO|ImportXDTOModel|СоздатьФабрикуXDTO|CreateXDTOFactory)\\\\\\\\s*(?=\\\\\\\\())\",\"name\":\"support.function.bsl\"},{\"comment\":\"Глобальный контекст - Процедуры и функции работы с JSON\",\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(ЗаписатьJSON|WriteJSON|ПрочитатьJSON|ReadJSON|ПрочитатьДатуJSON|ReadJSONDate|ЗаписатьДатуJSON|WriteJSONDate)\\\\\\\\s*(?=\\\\\\\\())\",\"name\":\"support.function.bsl\"},{\"comment\":\"Глобальный контекст - Процедуры и функции работы с журналом регистрации\",\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(ЗаписьЖурналаРегистрации|WriteLogEvent|ПолучитьИспользованиеЖурналаРегистрации|GetEventLogUsing|УстановитьИспользованиеЖурналаРегистрации|SetEventLogUsing|ПредставлениеСобытияЖурналаРегистрации|EventLogEventPresentation|ВыгрузитьЖурналРегистрации|UnloadEventLog|ПолучитьЗначенияОтбораЖурналаРегистрации|GetEventLogFilterValues|УстановитьИспользованиеСобытияЖурналаРегистрации|SetEventLogEventUse|ПолучитьИспользованиеСобытияЖурналаРегистрации|GetEventLogEventUse|СкопироватьЖурналРегистрации|CopyEventLog|ОчиститьЖурналРегистрации|ClearEventLog)\\\\\\\\s*(?=\\\\\\\\())\",\"name\":\"support.function.bsl\"},{\"comment\":\"Глобальный контекст - Процедуры и функции работы с универсальными объектами\",\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(ЗначениеВДанныеФормы|ValueToFormData|ДанныеФормыВЗначение|FormDataToValue|КопироватьДанныеФормы|CopyFormData|УстановитьСоответствиеОбъектаИФормы|SetObjectAndFormConformity|ПолучитьСоответствиеОбъектаИФормы|GetObjectAndFormConformity)\\\\\\\\s*(?=\\\\\\\\())\",\"name\":\"support.function.bsl\"},{\"comment\":\"Глобальный контекст - Процедуры и функции работы с функциональными опциями\",\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(ПолучитьФункциональнуюОпцию|GetFunctionalOption|ПолучитьФункциональнуюОпциюИнтерфейса|GetInterfaceFunctionalOption|УстановитьПараметрыФункциональныхОпцийИнтерфейса|SetInterfaceFunctionalOptionParameters|ПолучитьПараметрыФункциональныхОпцийИнтерфейса|GetInterfaceFunctionalOptionParameters|ОбновитьИнтерфейс|RefreshInterface)\\\\\\\\s*(?=\\\\\\\\())\",\"name\":\"support.function.bsl\"},{\"comment\":\"Глобальный контекст - Процедуры и функции работы с криптографией\",\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(УстановитьРасширениеРаботыСКриптографией|InstallCryptoExtension|НачатьУстановкуРасширенияРаботыСКриптографией|BeginInstallCryptoExtension|ПодключитьРасширениеРаботыСКриптографией|AttachCryptoExtension|НачатьПодключениеРасширенияРаботыСКриптографией|BeginAttachingCryptoExtension)\\\\\\\\s*(?=\\\\\\\\())\",\"name\":\"support.function.bsl\"},{\"comment\":\"Глобальный контекст - Процедуры и функции работы со стандартным интерфейсом OData\",\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(УстановитьСоставСтандартногоИнтерфейсаOData|SetStandardODataInterfaceContent|ПолучитьСоставСтандартногоИнтерфейсаOData|GetStandardODataInterfaceContent)\\\\\\\\s*(?=\\\\\\\\())\",\"name\":\"support.function.bsl\"},{\"comment\":\"Глобальный контекст - Процедуры и функции работы с двоичными данными\",\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(СоединитьБуферыДвоичныхДанных|ConcatBinaryDataBuffers)\\\\\\\\s*(?=\\\\\\\\())\",\"name\":\"support.function.bsl\"},{\"comment\":\"Глобальный контекст - Прочие процедуры и функции\",\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(Мин|Min|Макс|Max|ОписаниеОшибки|ErrorDescription|Вычислить|Eval|ИнформацияОбОшибке|ErrorInfo|Base64Значение|Base64Value|Base64Строка|Base64String|ЗаполнитьЗначенияСвойств|FillPropertyValues|ЗначениеЗаполнено|ValueIsFilled|ПолучитьПредставленияНавигационныхСсылок|GetURLsPresentations|НайтиОкноПоНавигационнойСсылке|FindWindowByURL|ПолучитьОкна|GetWindows|ПерейтиПоНавигационнойСсылке|GotoURL|ПолучитьНавигационнуюСсылку|GetURL|ПолучитьДопустимыеКодыЛокализации|GetAvailableLocaleCodes|ПолучитьНавигационнуюСсылкуИнформационнойБазы|GetInfoBaseURL|ПредставлениеКодаЛокализации|LocaleCodePresentation|ПолучитьДопустимыеЧасовыеПояса|GetAvailableTimeZones|ПредставлениеЧасовогоПояса|TimeZonePresentation|ТекущаяУниверсальнаяДата|CurrentUniversalDate|ТекущаяУниверсальнаяДатаВМиллисекундах|CurrentUniversalDateInMilliseconds|МестноеВремя|ToLocalTime|УниверсальноеВремя|ToUniversalTime|ЧасовойПояс|TimeZone|СмещениеЛетнегоВремени|DaylightTimeOffset|СмещениеСтандартногоВремени|StandardTimeOffset|КодироватьСтроку|EncodeString|РаскодироватьСтроку|DecodeString|Найти|Find|ПродолжитьВызов|ProceedWithCall)\\\\\\\\s*(?=\\\\\\\\())\",\"name\":\"support.function.bsl\"},{\"comment\":\"Глобальный контекст - События приложения и сеанса\",\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(ПередНачаломРаботыСистемы|BeforeStart|ПриНачалеРаботыСистемы|OnStart|ПередЗавершениемРаботыСистемы|BeforeExit|ПриЗавершенииРаботыСистемы|OnExit|ОбработкаВнешнегоСобытия|ExternEventProcessing|УстановкаПараметровСеанса|SessionParametersSetting|ПриИзмененииПараметровЭкрана|OnChangeDisplaySettings)\\\\\\\\s*(?=\\\\\\\\())\",\"name\":\"support.function.bsl\"},{\"comment\":\"Глобальный контекст - Свойства (классы)\",\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(WSСсылки|WSReferences|БиблиотекаКартинок|PictureLib|БиблиотекаМакетовОформленияКомпоновкиДанных|DataCompositionAppearanceTemplateLib|БиблиотекаСтилей|StyleLib|БизнесПроцессы|BusinessProcesses|ВнешниеИсточникиДанных|ExternalDataSources|ВнешниеОбработки|ExternalDataProcessors|ВнешниеОтчеты|ExternalReports|Документы|Documents|ДоставляемыеУведомления|DeliverableNotifications|ЖурналыДокументов|DocumentJournals|Задачи|Tasks|ИнформацияОбИнтернетСоединении|InternetConnectionInformation|ИспользованиеРабочейДаты|WorkingDateUse|ИсторияРаботыПользователя|UserWorkHistory|Константы|Constants|КритерииОтбора|FilterCriteria|Метаданные|Metadata|Обработки|DataProcessors|ОтправкаДоставляемыхУведомлений|DeliverableNotificationSend|Отчеты|Reports|ПараметрыСеанса|SessionParameters|Перечисления|Enums|ПланыВидовРасчета|ChartsOfCalculationTypes|ПланыВидовХарактеристик|ChartsOfCharacteristicTypes|ПланыОбмена|ExchangePlans|ПланыСчетов|ChartsOfAccounts|ПолнотекстовыйПоиск|FullTextSearch|ПользователиИнформационнойБазы|InfoBaseUsers|Последовательности|Sequences|РасширенияКонфигурации|ConfigurationExtensions|РегистрыБухгалтерии|AccountingRegisters|РегистрыНакопления|AccumulationRegisters|РегистрыРасчета|CalculationRegisters|РегистрыСведений|InformationRegisters|РегламентныеЗадания|ScheduledJobs|СериализаторXDTO|XDTOSerializer|Справочники|Catalogs|СредстваГеопозиционирования|LocationTools|СредстваКриптографии|CryptoToolsManager|СредстваМультимедиа|MultimediaTools|СредстваОтображенияРекламы|AdvertisingPresentationTools|СредстваПочты|MailTools|СредстваТелефонии|TelephonyTools|ФабрикаXDTO|XDTOFactory|ФайловыеПотоки|FileStreams|ФоновыеЗадания|BackgroundJobs|ХранилищаНастроек|SettingsStorages|ВстроенныеПокупки|InAppPurchases|ОтображениеРекламы|AdRepresentation|ПанельЗадачОС|OSTaskbar|ПроверкаВстроенныхПокупок|InAppPurchasesValidation)(?=[^\\\\\\\\wа-яё]|$))\",\"name\":\"support.class.bsl\"},{\"comment\":\"Глобальный контекст - Свойства (переменные)\",\"match\":\"(?i:(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(ГлавныйИнтерфейс|MainInterface|ГлавныйСтиль|MainStyle|ПараметрЗапуска|LaunchParameter|РабочаяДата|WorkingDate|ХранилищеВариантовОтчетов|ReportsVariantsStorage|ХранилищеНастроекДанныхФорм|FormDataSettingsStorage|ХранилищеОбщихНастроек|CommonSettingsStorage|ХранилищеПользовательскихНастроекДинамическихСписков|DynamicListsUserSettingsStorage|ХранилищеПользовательскихНастроекОтчетов|ReportsUserSettingsStorage|ХранилищеСистемныхНастроек|SystemSettingsStorage)(?=[^\\\\\\\\wа-яё]|$))\",\"name\":\"support.variable.bsl\"}]},\"query\":{\"begin\":\"(?i)(?<=[^\\\\\\\\wа-яё\\\\\\\\.]|^)(Выбрать|Select(\\\\\\\\s+Разрешенные|\\\\\\\\s+Allowed)?(\\\\\\\\s+Различные|\\\\\\\\s+Distinct)?(\\\\\\\\s+Первые|\\\\\\\\s+Top)?)(?=[^\\\\\\\\wа-яё\\\\\\\\.]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.sdbl\"}},\"end\":\"(?=\\\\\\\\\\\\\"[^\\\\\\\\\\\\\"])\",\"patterns\":[{\"begin\":\"^\\\\\\\\s*//\",\"end\":\"$\",\"name\":\"comment.line.double-slash.bsl\"},{\"match\":\"(//((\\\\\\\\\\\\\"\\\\\\\\\\\\\")|[^\\\\\\\\\\\\\"])*)\",\"name\":\"comment.line.double-slash.sdbl\"},{\"match\":\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"[^\\\\\"]*\\\\\\\\\\\\\"\\\\\\\\\\\\\"\",\"name\":\"string.quoted.double.sdbl\"},{\"include\":\"source.sdbl\"}]}},\"scopeName\":\"source.bsl\",\"embeddedLangs\":[\"sdbl\"],\"aliases\":[\"1c\"]}`)),a=[...e,t];export{a as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BuapDI9Y.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var n={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"<\",close:\">\"}],folding:{markers:{start:new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?region\\\\b)|(?:<editor-fold\\\\b))\"),end:new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?endregion\\\\b)|(?:</editor-fold>))\")}}},s=[\"abstract\",\"activate\",\"and\",\"any\",\"array\",\"as\",\"asc\",\"assert\",\"autonomous\",\"begin\",\"bigdecimal\",\"blob\",\"boolean\",\"break\",\"bulk\",\"by\",\"case\",\"cast\",\"catch\",\"char\",\"class\",\"collect\",\"commit\",\"const\",\"continue\",\"convertcurrency\",\"decimal\",\"default\",\"delete\",\"desc\",\"do\",\"double\",\"else\",\"end\",\"enum\",\"exception\",\"exit\",\"export\",\"extends\",\"false\",\"final\",\"finally\",\"float\",\"for\",\"from\",\"future\",\"get\",\"global\",\"goto\",\"group\",\"having\",\"hint\",\"if\",\"implements\",\"import\",\"in\",\"inner\",\"insert\",\"instanceof\",\"int\",\"interface\",\"into\",\"join\",\"last_90_days\",\"last_month\",\"last_n_days\",\"last_week\",\"like\",\"limit\",\"list\",\"long\",\"loop\",\"map\",\"merge\",\"native\",\"new\",\"next_90_days\",\"next_month\",\"next_n_days\",\"next_week\",\"not\",\"null\",\"nulls\",\"number\",\"object\",\"of\",\"on\",\"or\",\"outer\",\"override\",\"package\",\"parallel\",\"pragma\",\"private\",\"protected\",\"public\",\"retrieve\",\"return\",\"returning\",\"rollback\",\"savepoint\",\"search\",\"select\",\"set\",\"short\",\"sort\",\"stat\",\"static\",\"strictfp\",\"super\",\"switch\",\"synchronized\",\"system\",\"testmethod\",\"then\",\"this\",\"this_month\",\"this_week\",\"throw\",\"throws\",\"today\",\"tolabel\",\"tomorrow\",\"transaction\",\"transient\",\"trigger\",\"true\",\"try\",\"type\",\"undelete\",\"update\",\"upsert\",\"using\",\"virtual\",\"void\",\"volatile\",\"webservice\",\"when\",\"where\",\"while\",\"yesterday\"],o=e=>e.charAt(0).toUpperCase()+e.substr(1),t=[];s.forEach(e=>{t.push(e),t.push(e.toUpperCase()),t.push(o(e))});var i={defaultToken:\"\",tokenPostfix:\".apex\",keywords:t,operators:[\"=\",\">\",\"<\",\"!\",\"~\",\"?\",\":\",\"==\",\"<=\",\">=\",\"!=\",\"&&\",\"||\",\"++\",\"--\",\"+\",\"-\",\"*\",\"/\",\"&\",\"|\",\"^\",\"%\",\"<<\",\">>\",\">>>\",\"+=\",\"-=\",\"*=\",\"/=\",\"&=\",\"|=\",\"^=\",\"%=\",\"<<=\",\">>=\",\">>>=\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\\d+(_+\\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,tokenizer:{root:[[/[a-z_$][\\w$]*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],[/[A-Z][\\w\\$]*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"type.identifier\"}}],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/@\\s*[a-zA-Z_\\$][\\w\\$]*/,\"annotation\"],[/(@digits)[eE]([\\-+]?(@digits))?[fFdD]?/,\"number.float\"],[/(@digits)\\.(@digits)([eE][\\-+]?(@digits))?[fFdD]?/,\"number.float\"],[/(@digits)[fFdD]/,\"number.float\"],[/(@digits)[lL]?/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/'([^'\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",'@string.\"'],[/'/,\"string\",\"@string.'\"],[/'[^\\\\']'/,\"string\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",\"string\"]],[/'/,\"string.invalid\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\/\\*\\*(?!\\/)/,\"comment.doc\",\"@apexdoc\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],apexdoc:[[/[^\\/*]+/,\"comment.doc\"],[/\\*\\//,\"comment.doc\",\"@pop\"],[/[\\/*]/,\"comment.doc\"]],string:[[/[^\\\\\"']+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/[\"']/,{cases:{\"$#==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":\"string\"}}]]}};export{n as conf,i as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/BuljS_lV.js",
    "content": "import{Q as _,d as ee,C as r,g as o,j as u,H as n,E as h,i as j,ay as z,F as I,O as U,R as k,aj as $,ar as te,ak as ae,t as L,ac as G,am as oe,an as F,c as y,az as ne,V as M,aA as D,aB as q,aq as E,e as O,G as v,q as se}from\"./CU_MfyYc.js\";import{_ as H}from\"./DP9I38t9.js\";const le={wrapper:\"relative overflow-x-auto\",base:\"min-w-full table-fixed\",divide:\"divide-y divide-gray-300 dark:divide-gray-700\",thead:\"relative\",tbody:\"divide-y divide-gray-200 dark:divide-gray-800\",tr:{base:\"\",selected:\"bg-gray-50 dark:bg-gray-800/50\",active:\"hover:bg-gray-50 dark:hover:bg-gray-800/50 cursor-pointer\"},th:{base:\"text-left rtl:text-right\",padding:\"px-4 py-3.5\",color:\"text-gray-900 dark:text-white\",font:\"font-semibold\",size:\"text-sm\"},td:{base:\"whitespace-nowrap\",padding:\"px-4 py-4\",color:\"text-gray-500 dark:text-gray-400\",font:\"\",size:\"text-sm\"},checkbox:{padding:\"ps-4\"},loadingState:{wrapper:\"flex flex-col items-center justify-center flex-1 px-6 py-14 sm:px-14\",label:\"text-sm text-center text-gray-900 dark:text-white\",icon:\"w-6 h-6 mx-auto text-gray-400 dark:text-gray-500 mb-4 animate-spin\"},emptyState:{wrapper:\"flex flex-col items-center justify-center flex-1 px-6 py-14 sm:px-14\",label:\"text-sm text-center text-gray-900 dark:text-white\",icon:\"w-6 h-6 mx-auto text-gray-400 dark:text-gray-500 mb-4\"},progress:{wrapper:\"absolute inset-x-0 -bottom-[0.5px] p-0\"},default:{sortAscIcon:\"i-heroicons-bars-arrow-up-20-solid\",sortDescIcon:\"i-heroicons-bars-arrow-down-20-solid\",sortButton:{icon:\"i-heroicons-arrows-up-down-20-solid\",trailing:!0,square:!0,color:\"gray\",variant:\"ghost\",class:\"-m-1.5\"},progress:{color:\"primary\",animation:\"carousel\"},loadingState:{icon:\"i-heroicons-arrow-path-20-solid\",label:\"Loading...\"},emptyState:{icon:\"i-heroicons-circle-stack-20-solid\",label:\"No items.\"}}};function re(e){return e?e[0].toUpperCase()+e.slice(1):\"\"}const g=ae(E.ui.strategy,E.ui.table,le);function ie(e,l){return e===l}function P(e,l,f){return e===l?0:f===\"asc\"?e<l?-1:1:e>l?-1:1}const ue=ee({components:{UIcon:G,UButton:L,UProgress:H,UCheckbox:z},inheritAttrs:!1,props:{modelValue:{type:Array,default:null},by:{type:[String,Function],default:()=>ie},rows:{type:Array,default:()=>[]},columns:{type:Array,default:null},columnAttribute:{type:String,default:\"label\"},sort:{type:Object,default:()=>({})},sortMode:{type:String,default:\"auto\"},sortButton:{type:Object,default:()=>g.default.sortButton},sortAscIcon:{type:String,default:()=>g.default.sortAscIcon},sortDescIcon:{type:String,default:()=>g.default.sortDescIcon},loading:{type:Boolean,default:!1},loadingState:{type:Object,default:()=>g.default.loadingState},emptyState:{type:Object,default:()=>g.default.emptyState},progress:{type:Object,default:()=>g.default.progress},class:{type:[String,Object,Array],default:()=>\"\"},ui:{type:Object,default:()=>({})}},emits:[\"update:modelValue\",\"update:sort\"],setup(e,{emit:l,attrs:f}){const{ui:S,attrs:R}=oe(\"table\",F(e,\"ui\"),g,F(e,\"class\")),w=y(()=>e.columns??Object.keys(e.rows[0]??{}).map(t=>({key:t,label:re(t),sortable:!1,class:void 0,sort:P}))),s=ne(e,\"sort\",l,{passive:!0,defaultValue:M({},e.sort,{column:null,direction:\"asc\"})}),V={column:s.value.column,direction:null},C=y(()=>{var p;if(!((p=s.value)!=null&&p.column)||e.sortMode===\"manual\")return e.rows;const{column:t,direction:i}=s.value;return e.rows.slice().sort((W,X)=>{var N;const Y=D(W,t),Z=D(X,t);return(((N=w.value.find(x=>x.key===t))==null?void 0:N.sort)??P)(Y,Z,i)})}),d=y({get(){return e.modelValue},set(t){l(\"update:modelValue\",t)}}),a=y(()=>d.value&&d.value.length>0&&d.value.length<e.rows.length),m=y(()=>e.emptyState===null?null:{...S.value.default.emptyState,...e.emptyState}),c=y(()=>e.loadingState===null?null:{...S.value.default.loadingState,...e.loadingState});function B(t,i){if(typeof e.by==\"string\"){const p=e.by;return(t==null?void 0:t[p])===(i==null?void 0:i[p])}return e.by(t,i)}function b(t){return e.modelValue?d.value.some(i=>B(q(i),q(t))):!1}function A(t){if(s.value.column===t.key){const i=!t.direction||t.direction===\"asc\"?\"desc\":\"asc\";s.value.direction===i?s.value=M({},V,{column:null,direction:\"asc\"}):s.value={column:s.value.column,direction:s.value.direction===\"asc\"?\"desc\":\"asc\"}}else s.value={column:t.key,direction:t.direction||\"asc\"}}function Q(t){f.onSelect&&f.onSelect(t)}function T(){e.rows.forEach(t=>{b(t)||d.value.push(t)})}function J(t){t.target.checked?T():d.value=[]}function K(t,i,p=\"\"){return D(t,i,p)}return{ui:S,attrs:R,sort:s,columns:w,rows:C,selected:d,indeterminate:a,emptyState:m,loadingState:c,isSelected:b,onSort:A,onSelect:Q,onChange:J,getRowData:K}}}),de={key:1},ce={key:0},pe={key:0},ge=[\"colspan\"],me={key:1},ye=[\"colspan\"],fe=[\"onClick\"];function be(e,l,f,S,R,w){const s=z,V=L,C=H,d=G;return o(),r(\"div\",$({class:e.ui.wrapper},e.attrs),[u(\"table\",{class:n([e.ui.base,e.ui.divide])},[u(\"thead\",{class:n(e.ui.thead)},[u(\"tr\",{class:n(e.ui.tr.base)},[e.modelValue?(o(),r(\"th\",{key:0,scope:\"col\",class:n(e.ui.checkbox.padding)},[j(s,{\"model-value\":e.indeterminate||e.selected.length===e.rows.length,indeterminate:e.indeterminate,\"aria-label\":\"Select all\",onChange:e.onChange},null,8,[\"model-value\",\"indeterminate\",\"onChange\"])],2)):h(\"\",!0),(o(!0),r(I,null,U(e.columns,(a,m)=>(o(),r(\"th\",{key:m,scope:\"col\",class:n([e.ui.th.base,e.ui.th.padding,e.ui.th.color,e.ui.th.font,e.ui.th.size,a.class])},[k(e.$slots,`${a.key}-header`,{column:a,sort:e.sort,onSort:e.onSort},()=>[a.sortable?(o(),O(V,$({key:0,ref_for:!0},{...e.ui.default.sortButton||{},...e.sortButton},{icon:!e.sort.column||e.sort.column!==a.key?e.sortButton.icon||e.ui.default.sortButton.icon:e.sort.direction===\"asc\"?e.sortAscIcon:e.sortDescIcon,label:a[e.columnAttribute],onClick:c=>e.onSort(a)}),null,16,[\"icon\",\"label\",\"onClick\"])):(o(),r(\"span\",de,v(a[e.columnAttribute]),1))])],2))),128))],2),e.loading&&e.progress?(o(),r(\"tr\",ce,[u(\"td\",{colspan:0,class:n(e.ui.progress.wrapper)},[j(C,$({...e.ui.default.progress||{},...e.progress},{size:\"2xs\"}),null,16)],2)])):h(\"\",!0)],2),u(\"tbody\",{class:n(e.ui.tbody)},[e.loadingState&&e.loading&&!e.rows.length?(o(),r(\"tr\",pe,[u(\"td\",{colspan:e.columns.length+(e.modelValue?1:0)},[k(e.$slots,\"loading-state\",{},()=>[u(\"div\",{class:n(e.ui.loadingState.wrapper)},[e.loadingState.icon?(o(),O(d,{key:0,name:e.loadingState.icon,class:n(e.ui.loadingState.icon),\"aria-hidden\":\"true\"},null,8,[\"name\",\"class\"])):h(\"\",!0),u(\"p\",{class:n(e.ui.loadingState.label)},v(e.loadingState.label),3)],2)])],8,ge)])):e.emptyState&&!e.rows.length?(o(),r(\"tr\",me,[u(\"td\",{colspan:e.columns.length+(e.modelValue?1:0)},[k(e.$slots,\"empty-state\",{},()=>[u(\"div\",{class:n(e.ui.emptyState.wrapper)},[e.emptyState.icon?(o(),O(d,{key:0,name:e.emptyState.icon,class:n(e.ui.emptyState.icon),\"aria-hidden\":\"true\"},null,8,[\"name\",\"class\"])):h(\"\",!0),u(\"p\",{class:n(e.ui.emptyState.label)},v(e.emptyState.label),3)],2)])],8,ye)])):(o(!0),r(I,{key:2},U(e.rows,(a,m)=>(o(),r(\"tr\",{key:m,class:n([e.ui.tr.base,e.isSelected(a)&&e.ui.tr.selected,e.$attrs.onSelect&&e.ui.tr.active,a==null?void 0:a.class]),onClick:()=>e.onSelect(a)},[e.modelValue?(o(),r(\"td\",{key:0,class:n(e.ui.checkbox.padding)},[j(s,{modelValue:e.selected,\"onUpdate:modelValue\":l[0]||(l[0]=c=>e.selected=c),value:a,\"aria-label\":\"Select row\",onClick:l[1]||(l[1]=te(()=>{},[\"stop\"]))},null,8,[\"modelValue\",\"value\"])],2)):h(\"\",!0),(o(!0),r(I,null,U(e.columns,(c,B)=>{var b;return o(),r(\"td\",{key:B,class:n([e.ui.td.base,e.ui.td.padding,e.ui.td.color,e.ui.td.font,e.ui.td.size,(b=a[c.key])==null?void 0:b.class])},[k(e.$slots,`${c.key}-data`,{column:c,row:a,index:m,getRowData:A=>e.getRowData(a,c.key,A)},()=>[se(v(e.getRowData(a,c.key)),1)])],2)}),128))],10,fe))),128))],2)],2)],16)}const ve=_(ue,[[\"render\",be]]);export{ve as _};\n"
  },
  {
    "path": "jesse/static/_nuxt/BupSXVCO.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var o=e=>`\\\\b${e}\\\\b`,n=e=>`(?!${e})`,r=\"[_a-zA-Z]\",i=\"[_a-zA-Z0-9]\",t=o(`${r}${i}*`),a=o(\"[_a-zA-Z-0-9]+\"),s=[\"import\",\"model\",\"scalar\",\"namespace\",\"op\",\"interface\",\"union\",\"using\",\"is\",\"extends\",\"enum\",\"alias\",\"return\",\"void\",\"if\",\"else\",\"projection\",\"dec\",\"extern\",\"fn\"],c=[\"true\",\"false\",\"null\",\"unknown\",\"never\"],g=\"[ \\\\t\\\\r\\\\n]\",l=\"[0-9]+\",k={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"/**\",close:\" */\",notIn:[\"string\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'}],indentationRules:{decreaseIndentPattern:new RegExp(\"^((?!.*?/\\\\*).*\\\\*/)?\\\\s*[\\\\}\\\\]].*$\"),increaseIndentPattern:new RegExp(\"^((?!//).)*(\\\\{([^}\\\"'`/]*|(\\\\t|[ ])*//.*)|\\\\([^)\\\"'`/]*|\\\\[[^\\\\]\\\"'`/]*)$\"),unIndentedLinePattern:new RegExp(\"^(\\\\t|[ ])*[ ]\\\\*[^/]*\\\\*/\\\\s*$|^(\\\\t|[ ])*[ ]\\\\*/\\\\s*$|^(\\\\t|[ ])*[ ]\\\\*([ ]([^\\\\*]|\\\\*(?!/))*)?$\")}},x={defaultToken:\"\",tokenPostfix:\".tsp\",brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],symbols:/[=:;<>]+/,keywords:s,namedLiterals:c,escapes:'\\\\\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\\\\\|\"|\\\\${)',tokenizer:{root:[{include:\"@expression\"},{include:\"@whitespace\"}],stringVerbatim:[{regex:'(|\"|\"\")[^\"]',action:{token:\"string\"}},{regex:`\"\"\"${n('\"')}`,action:{token:\"string\",next:\"@pop\"}}],stringLiteral:[{regex:\"\\\\${\",action:{token:\"delimiter.bracket\",next:\"@bracketCounting\"}},{regex:'[^\\\\\\\\\"$]+',action:{token:\"string\"}},{regex:\"@escapes\",action:{token:\"string.escape\"}},{regex:\"\\\\\\\\.\",action:{token:\"string.escape.invalid\"}},{regex:'\"',action:{token:\"string\",next:\"@pop\"}}],bracketCounting:[{regex:\"{\",action:{token:\"delimiter.bracket\",next:\"@bracketCounting\"}},{regex:\"}\",action:{token:\"delimiter.bracket\",next:\"@pop\"}},{include:\"@expression\"}],comment:[{regex:\"[^\\\\*]+\",action:{token:\"comment\"}},{regex:\"\\\\*\\\\/\",action:{token:\"comment\",next:\"@pop\"}},{regex:\"[\\\\/*]\",action:{token:\"comment\"}}],whitespace:[{regex:g},{regex:\"\\\\/\\\\*\",action:{token:\"comment\",next:\"@comment\"}},{regex:\"\\\\/\\\\/.*$\",action:{token:\"comment\"}}],expression:[{regex:'\"\"\"',action:{token:\"string\",next:\"@stringVerbatim\"}},{regex:`\"${n('\"\"')}`,action:{token:\"string\",next:\"@stringLiteral\"}},{regex:l,action:{token:\"number\"}},{regex:t,action:{cases:{\"@keywords\":{token:\"keyword\"},\"@namedLiterals\":{token:\"keyword\"},\"@default\":{token:\"identifier\"}}}},{regex:`@${t}`,action:{token:\"tag\"}},{regex:`#${a}`,action:{token:\"directive\"}}]}};export{k as conf,x as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/Bvotw-X0.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Makefile\",\"name\":\"make\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#variables\"},{\"include\":\"#variable-assignment\"},{\"include\":\"#directives\"},{\"include\":\"#recipe\"},{\"include\":\"#target\"}],\"repository\":{\"another-variable-braces\":{\"patterns\":[{\"begin\":\"(?<={)(?!})\",\"end\":\"(?=}|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"name\":\"variable.other.makefile\",\"patterns\":[{\"include\":\"#variables\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\n\",\"name\":\"constant.character.escape.continuation.makefile\"}]}]},\"another-variable-parentheses\":{\"patterns\":[{\"begin\":\"(?<=\\\\\\\\()(?!\\\\\\\\))\",\"end\":\"(?=\\\\\\\\)|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"name\":\"variable.other.makefile\",\"patterns\":[{\"include\":\"#variables\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\n\",\"name\":\"constant.character.escape.continuation.makefile\"}]}]},\"braces-interpolation\":{\"begin\":\"{\",\"end\":\"}\",\"patterns\":[{\"include\":\"#variables\"},{\"include\":\"#interpolation\"}]},\"builtin-variable-braces\":{\"patterns\":[{\"match\":\"(?<={)(MAKEFILES|VPATH|SHELL|MAKESHELL|MAKE|MAKELEVEL|MAKEFLAGS|MAKECMDGOALS|CURDIR|SUFFIXES|\\\\\\\\.LIBPATTERNS)(?=\\\\\\\\s*})\",\"name\":\"variable.language.makefile\"}]},\"builtin-variable-parentheses\":{\"patterns\":[{\"match\":\"(?<=\\\\\\\\()(MAKEFILES|VPATH|SHELL|MAKESHELL|MAKE|MAKELEVEL|MAKEFLAGS|MAKECMDGOALS|CURDIR|SUFFIXES|\\\\\\\\.LIBPATTERNS)(?=\\\\\\\\s*\\\\\\\\))\",\"name\":\"variable.language.makefile\"}]},\"comma\":{\"match\":\",\",\"name\":\"punctuation.separator.delimeter.comma.makefile\"},\"comment\":{\"begin\":\"(^[ ]+)?((?<!\\\\\\\\\\\\\\\\)(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\)*)(?=#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.makefile\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.makefile\"}},\"end\":\"(?=[^\\\\\\\\\\\\\\\\])$\",\"name\":\"comment.line.number-sign.makefile\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\n\",\"name\":\"constant.character.escape.continuation.makefile\"}]}]},\"directives\":{\"patterns\":[{\"begin\":\"^[ ]*([s\\\\\\\\-]?include)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.include.makefile\"}},\"end\":\"^\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#variables\"},{\"match\":\"%\",\"name\":\"constant.other.placeholder.makefile\"}]},{\"begin\":\"^[ ]*(vpath)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.vpath.makefile\"}},\"end\":\"^\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#variables\"},{\"match\":\"%\",\"name\":\"constant.other.placeholder.makefile\"}]},{\"begin\":\"^\\\\\\\\s*(?:(override)\\\\\\\\s*)?(define)\\\\\\\\s*([^\\\\\\\\s]+)\\\\\\\\s*(=|\\\\\\\\?=|:=|\\\\\\\\+=)?(?=\\\\\\\\s)\",\"captures\":{\"1\":{\"name\":\"keyword.control.override.makefile\"},\"2\":{\"name\":\"keyword.control.define.makefile\"},\"3\":{\"name\":\"variable.other.makefile\"},\"4\":{\"name\":\"punctuation.separator.key-value.makefile\"}},\"end\":\"^\\\\\\\\s*(endef)\\\\\\\\b\",\"name\":\"meta.scope.conditional.makefile\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?!\\\\\\\\n)\",\"end\":\"^\",\"patterns\":[{\"include\":\"#comment\"}]},{\"include\":\"#variables\"},{\"include\":\"#directives\"}]},{\"begin\":\"^[ ]*(export)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.$1.makefile\"}},\"end\":\"^\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#variable-assignment\"},{\"match\":\"[^\\\\\\\\s]+\",\"name\":\"variable.other.makefile\"}]},{\"begin\":\"^[ ]*(override|private)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.$1.makefile\"}},\"end\":\"^\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#variable-assignment\"}]},{\"begin\":\"^[ ]*(unexport|undefine)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.$1.makefile\"}},\"end\":\"^\",\"patterns\":[{\"include\":\"#comment\"},{\"match\":\"[^\\\\\\\\s]+\",\"name\":\"variable.other.makefile\"}]},{\"begin\":\"^\\\\\\\\s*(ifeq|ifneq|ifdef|ifndef)(?=\\\\\\\\s)\",\"captures\":{\"1\":{\"name\":\"keyword.control.$1.makefile\"}},\"end\":\"^\\\\\\\\s*(endif)\\\\\\\\b\",\"name\":\"meta.scope.conditional.makefile\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"^\",\"name\":\"meta.scope.condition.makefile\",\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"#variables\"},{\"include\":\"#comment\"}]},{\"begin\":\"^\\\\\\\\s*else(?=\\\\\\\\s)\\\\\\\\s*(ifeq|ifneq|ifdef|ifndef)*(?=\\\\\\\\s)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.else.makefile\"}},\"end\":\"^\",\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"#variables\"},{\"include\":\"#comment\"}]},{\"include\":\"$self\"}]}]},\"flavor-variable-braces\":{\"patterns\":[{\"begin\":\"(?<={)(origin|flavor)\\\\\\\\s(?=[^\\\\\\\\s}]+\\\\\\\\s*})\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.$1.makefile\"}},\"contentName\":\"variable.other.makefile\",\"end\":\"(?=})\",\"name\":\"meta.scope.function-call.makefile\",\"patterns\":[{\"include\":\"#variables\"}]}]},\"flavor-variable-parentheses\":{\"patterns\":[{\"begin\":\"(?<=\\\\\\\\()(origin|flavor)\\\\\\\\s(?=[^\\\\\\\\s)]+\\\\\\\\s*\\\\\\\\))\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.$1.makefile\"}},\"contentName\":\"variable.other.makefile\",\"end\":\"(?=\\\\\\\\))\",\"name\":\"meta.scope.function-call.makefile\",\"patterns\":[{\"include\":\"#variables\"}]}]},\"function-variable-braces\":{\"patterns\":[{\"begin\":\"(?<={)(subst|patsubst|strip|findstring|filter(-out)?|sort|word(list)?|firstword|lastword|dir|notdir|suffix|basename|addsuffix|addprefix|join|wildcard|realpath|abspath|info|error|warning|shell|foreach|if|or|and|call|eval|value|file|guile)\\\\\\\\s\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.$1.makefile\"}},\"end\":\"(?=}|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"name\":\"meta.scope.function-call.makefile\",\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"#variables\"},{\"include\":\"#interpolation\"},{\"match\":\"%|\\\\\\\\*\",\"name\":\"constant.other.placeholder.makefile\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\n\",\"name\":\"constant.character.escape.continuation.makefile\"}]}]},\"function-variable-parentheses\":{\"patterns\":[{\"begin\":\"(?<=\\\\\\\\()(subst|patsubst|strip|findstring|filter(-out)?|sort|word(list)?|firstword|lastword|dir|notdir|suffix|basename|addsuffix|addprefix|join|wildcard|realpath|abspath|info|error|warning|shell|foreach|if|or|and|call|eval|value|file|guile)\\\\\\\\s\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.$1.makefile\"}},\"end\":\"(?=\\\\\\\\)|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"name\":\"meta.scope.function-call.makefile\",\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"#variables\"},{\"include\":\"#interpolation\"},{\"match\":\"%|\\\\\\\\*\",\"name\":\"constant.other.placeholder.makefile\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\n\",\"name\":\"constant.character.escape.continuation.makefile\"}]}]},\"interpolation\":{\"patterns\":[{\"include\":\"#parentheses-interpolation\"},{\"include\":\"#braces-interpolation\"}]},\"parentheses-interpolation\":{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#variables\"},{\"include\":\"#interpolation\"}]},\"recipe\":{\"begin\":\"^\\\\\\\\t([+\\\\\\\\-@]*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.$1.makefile\"}},\"end\":\"[^\\\\\\\\\\\\\\\\]$\",\"name\":\"meta.scope.recipe.makefile\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\n\",\"name\":\"constant.character.escape.continuation.makefile\"},{\"include\":\"#variables\"}]},\"simple-variable\":{\"patterns\":[{\"match\":\"\\\\\\\\$[^(){}]\",\"name\":\"variable.language.makefile\"}]},\"target\":{\"begin\":\"^(?!\\\\\\\\t)([^:]*)(:)(?!\\\\\\\\=)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"support.function.target.$1.makefile\"}},\"match\":\"^\\\\\\\\s*(\\\\\\\\.(PHONY|SUFFIXES|DEFAULT|PRECIOUS|INTERMEDIATE|SECONDARY|SECONDEXPANSION|DELETE_ON_ERROR|IGNORE|LOW_RESOLUTION_TIME|SILENT|EXPORT_ALL_VARIABLES|NOTPARALLEL|ONESHELL|POSIX))\\\\\\\\s*$\"},{\"begin\":\"(?=\\\\\\\\S)\",\"end\":\"(?=\\\\\\\\s|$)\",\"name\":\"entity.name.function.target.makefile\",\"patterns\":[{\"include\":\"#variables\"},{\"match\":\"%\",\"name\":\"constant.other.placeholder.makefile\"}]}]},\"2\":{\"name\":\"punctuation.separator.key-value.makefile\"}},\"end\":\"[^\\\\\\\\\\\\\\\\]$\",\"name\":\"meta.scope.target.makefile\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(?=[^\\\\\\\\\\\\\\\\])$\",\"name\":\"meta.scope.prerequisites.makefile\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\n\",\"name\":\"constant.character.escape.continuation.makefile\"},{\"match\":\"%|\\\\\\\\*\",\"name\":\"constant.other.placeholder.makefile\"},{\"include\":\"#comment\"},{\"include\":\"#variables\"}]}]},\"variable-assignment\":{\"begin\":\"(^[ ]*|\\\\\\\\G\\\\\\\\s*)([^\\\\\\\\s:#=]+)\\\\\\\\s*((?<![?:+!])=|\\\\\\\\?=|:=|\\\\\\\\+=|!=)\",\"beginCaptures\":{\"2\":{\"name\":\"variable.other.makefile\",\"patterns\":[{\"include\":\"#variables\"}]},\"3\":{\"name\":\"punctuation.separator.key-value.makefile\"}},\"end\":\"\\\\\\\\n\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\n\",\"name\":\"constant.character.escape.continuation.makefile\"},{\"include\":\"#comment\"},{\"include\":\"#variables\"}]},\"variable-braces\":{\"patterns\":[{\"begin\":\"\\\\\\\\${\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.variable.makefile\"}},\"end\":\"}|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)\",\"name\":\"string.interpolated.makefile\",\"patterns\":[{\"include\":\"#variables\"},{\"include\":\"#builtin-variable-braces\"},{\"include\":\"#function-variable-braces\"},{\"include\":\"#flavor-variable-braces\"},{\"include\":\"#another-variable-braces\"}]}]},\"variable-parentheses\":{\"patterns\":[{\"begin\":\"\\\\\\\\$\\\\\\\\(\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.variable.makefile\"}},\"end\":\"\\\\\\\\)|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)\",\"name\":\"string.interpolated.makefile\",\"patterns\":[{\"include\":\"#variables\"},{\"include\":\"#builtin-variable-parentheses\"},{\"include\":\"#function-variable-parentheses\"},{\"include\":\"#flavor-variable-parentheses\"},{\"include\":\"#another-variable-parentheses\"}]}]},\"variables\":{\"patterns\":[{\"include\":\"#simple-variable\"},{\"include\":\"#variable-parentheses\"},{\"include\":\"#variable-braces\"}]}},\"scopeName\":\"source.makefile\",\"aliases\":[\"makefile\"]}')),a=[e];export{a as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Bw0wYZmb.js",
    "content": "import e from\"./BEhvmC7f.js\";import n from\"./DhUJRlN_.js\";import t from\"./ySlJ1b_l.js\";import a from\"./CwjWoCRV.js\";import i from\"./COK4E0Yg.js\";import\"./DWJ3fJO_.js\";import\"./COyJrUc7.js\";import\"./C3t2pwGQ.js\";const o=Object.freeze(JSON.parse(`{\"displayName\":\"Julia\",\"name\":\"julia\",\"patterns\":[{\"include\":\"#operator\"},{\"include\":\"#array\"},{\"include\":\"#string\"},{\"include\":\"#parentheses\"},{\"include\":\"#bracket\"},{\"include\":\"#function_decl\"},{\"include\":\"#function_call\"},{\"include\":\"#for_block\"},{\"include\":\"#keyword\"},{\"include\":\"#number\"},{\"include\":\"#comment\"},{\"include\":\"#type_decl\"},{\"include\":\"#symbol\"},{\"include\":\"#punctuation\"}],\"repository\":{\"array\":{\"patterns\":[{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"meta.bracket.julia\"}},\"end\":\"(\\\\\\\\])((?:\\\\\\\\.)?'*)\",\"endCaptures\":{\"1\":{\"name\":\"meta.bracket.julia\"},\"2\":{\"name\":\"keyword.operator.transpose.julia\"}},\"name\":\"meta.array.julia\",\"patterns\":[{\"match\":\"\\\\\\\\bbegin\\\\\\\\b\",\"name\":\"constant.numeric.julia\"},{\"match\":\"\\\\\\\\bend\\\\\\\\b\",\"name\":\"constant.numeric.julia\"},{\"include\":\"#self_no_for_block\"}]}]},\"bracket\":{\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"meta.bracket.julia\"}},\"end\":\"(\\\\\\\\})((?:\\\\\\\\.)?'*)\",\"endCaptures\":{\"1\":{\"name\":\"meta.bracket.julia\"},\"2\":{\"name\":\"keyword.operator.transpose.julia\"}},\"patterns\":[{\"include\":\"#self_no_for_block\"}]}]},\"comment\":{\"patterns\":[{\"include\":\"#comment_block\"},{\"begin\":\"#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.julia\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.number-sign.julia\",\"patterns\":[{\"include\":\"#comment_tags\"}]}]},\"comment_block\":{\"patterns\":[{\"begin\":\"#=\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.julia\"}},\"end\":\"=#\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.julia\"}},\"name\":\"comment.block.number-sign-equals.julia\",\"patterns\":[{\"include\":\"#comment_tags\"},{\"include\":\"#comment_block\"}]}]},\"comment_tags\":{\"patterns\":[{\"match\":\"\\\\\\\\bTODO\\\\\\\\b\",\"name\":\"keyword.other.comment-annotation.julia\"},{\"match\":\"\\\\\\\\bFIXME\\\\\\\\b\",\"name\":\"keyword.other.comment-annotation.julia\"},{\"match\":\"\\\\\\\\bCHANGED\\\\\\\\b\",\"name\":\"keyword.other.comment-annotation.julia\"},{\"match\":\"\\\\\\\\bXXX\\\\\\\\b\",\"name\":\"keyword.other.comment-annotation.julia\"}]},\"for_block\":{\"comment\":\"for blocks need to be special-cased to support tokenizing 'outer' properly\",\"patterns\":[{\"begin\":\"\\\\\\\\b(for)\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.julia\"}},\"end\":\"(?<!,|\\\\\\\\s)(\\\\\\\\s*\\\\\\\\n)\",\"patterns\":[{\"match\":\"\\\\\\\\bouter\\\\\\\\b\",\"name\":\"keyword.other.julia\"},{\"include\":\"$self\"}]}]},\"function_call\":{\"patterns\":[{\"begin\":\"((?:[[:alpha:]_\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{So}←-⇿])(?:[[:word:]_!\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{Mn}\\\\u0001-¡]|[^\\\\\\\\P{Mc}\\\\u0001-¡]|[^\\\\\\\\P{Nd}\\\\u0001-¡]|[^\\\\\\\\P{Pc}\\\\u0001-¡]|[^\\\\\\\\P{Sk}\\\\u0001-¡]|[^\\\\\\\\P{Me}\\\\u0001-¡]|[^\\\\\\\\P{No}\\\\u0001-¡]|[′-‷⁗]|[^\\\\\\\\P{So}←-⇿])*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?\\\\\\\\.?(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.julia\"},\"2\":{\"name\":\"support.type.julia\"},\"3\":{\"name\":\"meta.bracket.julia\"}},\"end\":\"\\\\\\\\)(('|(\\\\\\\\.'))*\\\\\\\\.?')?\",\"endCaptures\":{\"0\":{\"name\":\"meta.bracket.julia\"},\"1\":{\"name\":\"keyword.operator.transposed-func.julia\"}},\"patterns\":[{\"include\":\"#self_no_for_block\"}]}]},\"function_decl\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.function.julia\"},\"2\":{\"name\":\"support.type.julia\"}},\"comment\":\"first group is function name\\\\nSecond group is type parameters (e.g. {T<:Number, S})\\\\nThen open parens\\\\nThen a lookahead ensures that we are followed by:\\\\n  - anything (function arguments)\\\\n  - 0 or more spaces\\\\n  - Finally an equal sign\\\\nNegative lookahead ensures we don't have another equal sign (not \\`==\\`)\",\"match\":\"((?:[[:alpha:]_\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{So}←-⇿])(?:[[:word:]_!\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{Mn}\\\\u0001-¡]|[^\\\\\\\\P{Mc}\\\\u0001-¡]|[^\\\\\\\\P{Nd}\\\\u0001-¡]|[^\\\\\\\\P{Pc}\\\\u0001-¡]|[^\\\\\\\\P{Sk}\\\\u0001-¡]|[^\\\\\\\\P{Me}\\\\u0001-¡]|[^\\\\\\\\P{No}\\\\u0001-¡]|[′-‷⁗]|[^\\\\\\\\P{So}←-⇿])*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?(?=\\\\\\\\([^#]*\\\\\\\\)(::[^\\\\\\\\s]+)?(\\\\\\\\s*\\\\\\\\bwhere\\\\\\\\b\\\\\\\\s+.+?)?\\\\\\\\s*?=(?![=>]))\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.julia\"},\"2\":{\"name\":\"keyword.operator.dots.julia\"},\"3\":{\"name\":\"entity.name.function.julia\"},\"4\":{\"name\":\"support.type.julia\"}},\"comment\":\"similar regex to previous, but with keyword not 1-line syntax\",\"match\":\"\\\\\\\\b(function|macro)(?:\\\\\\\\s+(?:(?:[[:alpha:]_\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{So}←-⇿])(?:[[:word:]_!\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{Mn}\\\\u0001-¡]|[^\\\\\\\\P{Mc}\\\\u0001-¡]|[^\\\\\\\\P{Nd}\\\\u0001-¡]|[^\\\\\\\\P{Pc}\\\\u0001-¡]|[^\\\\\\\\P{Sk}\\\\u0001-¡]|[^\\\\\\\\P{Me}\\\\u0001-¡]|[^\\\\\\\\P{No}\\\\u0001-¡]|[′-‷⁗]|[^\\\\\\\\P{So}←-⇿])*(\\\\\\\\.))?((?:[[:alpha:]_\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{So}←-⇿])(?:[[:word:]_!\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{Mn}\\\\u0001-¡]|[^\\\\\\\\P{Mc}\\\\u0001-¡]|[^\\\\\\\\P{Nd}\\\\u0001-¡]|[^\\\\\\\\P{Pc}\\\\u0001-¡]|[^\\\\\\\\P{Sk}\\\\u0001-¡]|[^\\\\\\\\P{Me}\\\\u0001-¡]|[^\\\\\\\\P{No}\\\\u0001-¡]|[′-‷⁗]|[^\\\\\\\\P{So}←-⇿])*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?|\\\\\\\\s*)(?=\\\\\\\\()\"}]},\"keyword\":{\"patterns\":[{\"match\":\"\\\\\\\\b(?<![:_\\\\\\\\.])(?:function|mutable\\\\\\\\s+struct|struct|macro|quote|abstract\\\\\\\\s+type|primitive\\\\\\\\s+type|module|baremodule|where)\\\\\\\\b\",\"name\":\"keyword.other.julia\"},{\"match\":\"\\\\\\\\b(?<![:_])(?:if|else|elseif|for|while|begin|let|do|try|catch|finally|return|break|continue)\\\\\\\\b\",\"name\":\"keyword.control.julia\"},{\"match\":\"\\\\\\\\b(?<![:_])end\\\\\\\\b\",\"name\":\"keyword.control.end.julia\"},{\"match\":\"\\\\\\\\b(?<![:_])(?:global|local|const)\\\\\\\\b\",\"name\":\"keyword.storage.modifier.julia\"},{\"match\":\"\\\\\\\\b(?<![:_])(?:export)\\\\\\\\b\",\"name\":\"keyword.control.export.julia\"},{\"match\":\"^(?:public)\\\\\\\\b\",\"name\":\"keyword.control.public.julia\"},{\"match\":\"\\\\\\\\b(?<![:_])(?:import)\\\\\\\\b\",\"name\":\"keyword.control.import.julia\"},{\"match\":\"\\\\\\\\b(?<![:_])(?:using)\\\\\\\\b\",\"name\":\"keyword.control.using.julia\"},{\"match\":\"(?<=\\\\\\\\S\\\\\\\\s+)\\\\\\\\b(as)\\\\\\\\b(?=\\\\\\\\s+\\\\\\\\S)\",\"name\":\"keyword.control.as.julia\"},{\"match\":\"(@(\\\\\\\\.|(?:[[:alpha:]_\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{So}←-⇿])(?:[[:word:]_!\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{Mn}\\\\u0001-¡]|[^\\\\\\\\P{Mc}\\\\u0001-¡]|[^\\\\\\\\P{Nd}\\\\u0001-¡]|[^\\\\\\\\P{Pc}\\\\u0001-¡]|[^\\\\\\\\P{Sk}\\\\u0001-¡]|[^\\\\\\\\P{Me}\\\\u0001-¡]|[^\\\\\\\\P{No}\\\\u0001-¡]|[′-‷⁗]|[^\\\\\\\\P{So}←-⇿])*))\",\"name\":\"support.function.macro.julia\"}]},\"number\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.numeric.julia\"},\"2\":{\"name\":\"keyword.operator.conjugate-number.julia\"}},\"match\":\"((?<!(?:[[:word:]_!\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{Mn}\\\\u0001-¡]|[^\\\\\\\\P{Mc}\\\\u0001-¡]|[^\\\\\\\\P{Nd}\\\\u0001-¡]|[^\\\\\\\\P{Pc}\\\\u0001-¡]|[^\\\\\\\\P{Sk}\\\\u0001-¡]|[^\\\\\\\\P{Me}\\\\u0001-¡]|[^\\\\\\\\P{No}\\\\u0001-¡]|[′-‷⁗]|[^\\\\\\\\P{So}←-⇿]))(?:(?:\\\\\\\\b0(?:x|X)[0-9a-fA-F](?:_?[0-9a-fA-F])*)|(?:\\\\\\\\b0o[0-7](?:_?[0-7])*)|(?:\\\\\\\\b0b[0-1](?:_?[0-1])*)|(?:(?:\\\\\\\\b[0-9](?:_?[0-9])*\\\\\\\\.?(?!\\\\\\\\.)(?:[_0-9]*))|(?:\\\\\\\\b\\\\\\\\.[0-9](?:_?[0-9])*))(?:[efE][+-]?[0-9](?:_?[0-9])*)?(?:im\\\\\\\\b|Inf(?:16|32|64)?\\\\\\\\b|NaN(?:16|32|64)?\\\\\\\\b|π\\\\\\\\b|pi\\\\\\\\b|ℯ\\\\\\\\b)?|\\\\\\\\b[0-9]+|\\\\\\\\bInf(?:16|32|64)?\\\\\\\\b|\\\\\\\\bNaN(?:16|32|64)?\\\\\\\\b|\\\\\\\\bπ\\\\\\\\b|\\\\\\\\bpi\\\\\\\\b|\\\\\\\\bℯ\\\\\\\\b))('*)\"},{\"match\":\"\\\\\\\\bARGS\\\\\\\\b|\\\\\\\\bC_NULL\\\\\\\\b|\\\\\\\\bDEPOT_PATH\\\\\\\\b|\\\\\\\\bENDIAN_BOM\\\\\\\\b|\\\\\\\\bENV\\\\\\\\b|\\\\\\\\bLOAD_PATH\\\\\\\\b|\\\\\\\\bPROGRAM_FILE\\\\\\\\b|\\\\\\\\bstdin\\\\\\\\b|\\\\\\\\bstdout\\\\\\\\b|\\\\\\\\bstderr\\\\\\\\b|\\\\\\\\bVERSION\\\\\\\\b|\\\\\\\\bdevnull\\\\\\\\b\",\"name\":\"constant.global.julia\"},{\"match\":\"\\\\\\\\btrue\\\\\\\\b|\\\\\\\\bfalse\\\\\\\\b|\\\\\\\\bnothing\\\\\\\\b|\\\\\\\\bmissing\\\\\\\\b\",\"name\":\"constant.language.julia\"}]},\"operator\":{\"patterns\":[{\"match\":\"\\\\\\\\.?(?:<-->|->|-->|<--|←|→|↔|↚|↛|↞|↠|↢|↣|↦|↤|↮|⇎|⇍|⇏|⇐|⇒|⇔|⇴|⇶|⇷|⇸|⇹|⇺|⇻|⇼|⇽|⇾|⇿|⟵|⟶|⟷|⟹|⟺|⟻|⟼|⟽|⟾|⟿|⤀|⤁|⤂|⤃|⤄|⤅|⤆|⤇|⤌|⤍|⤎|⤏|⤐|⤑|⤔|⤕|⤖|⤗|⤘|⤝|⤞|⤟|⤠|⥄|⥅|⥆|⥇|⥈|⥊|⥋|⥎|⥐|⥒|⥓|⥖|⥗|⥚|⥛|⥞|⥟|⥢|⥤|⥦|⥧|⥨|⥩|⥪|⥫|⥬|⥭|⥰|⧴|⬱|⬰|⬲|⬳|⬴|⬵|⬶|⬷|⬸|⬹|⬺|⬻|⬼|⬽|⬾|⬿|⭀|⭁|⭂|⭃|⥷|⭄|⥺|⭇|⭈|⭉|⭊|⭋|⭌|￩|￫|⇜|⇝|↜|↝|↩|↪|↫|↬|↼|↽|⇀|⇁|⇄|⇆|⇇|⇉|⇋|⇌|⇚|⇛|⇠|⇢|↷|↶|↺|↻|=>)\",\"name\":\"keyword.operator.arrow.julia\"},{\"match\":\"(?::=|\\\\\\\\+=|-=|\\\\\\\\*=|//=|/=|\\\\\\\\.//=|\\\\\\\\./=|\\\\\\\\.\\\\\\\\*=|\\\\\\\\\\\\\\\\=|\\\\\\\\.\\\\\\\\\\\\\\\\=|\\\\\\\\^=|\\\\\\\\.\\\\\\\\^=|%=|\\\\\\\\.%=|÷=|\\\\\\\\.÷=|\\\\\\\\|=|&=|\\\\\\\\.&=|⊻=|\\\\\\\\.⊻=|\\\\\\\\$=|<<=|>>=|>>>=|=(?!=))\",\"name\":\"keyword.operator.update.julia\"},{\"match\":\"(?:<<|>>>|>>|\\\\\\\\.>>>|\\\\\\\\.>>|\\\\\\\\.<<)\",\"name\":\"keyword.operator.shift.julia\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.relation.types.julia\"},\"2\":{\"name\":\"support.type.julia\"},\"3\":{\"name\":\"keyword.operator.transpose.julia\"}},\"match\":\"(?:\\\\\\\\s*(::|>:|<:)\\\\\\\\s*((?:(?:Union)?\\\\\\\\([^)]*\\\\\\\\)|[[:alpha:]_$∇][[:word:]⁺-ₜ!′\\\\\\\\.]*(?:(?:{(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})|(?:\\\\\".+?(?<!\\\\\\\\\\\\\\\\)\\\\\"))?)))(?:\\\\\\\\.\\\\\\\\.\\\\\\\\.)?((?:\\\\\\\\.)?'*)\"},{\"match\":\"(\\\\\\\\.?((?<!<)<=|(?<!>)>=|>|<|≥|≤|===|==|≡|!=|≠|!==|≢|∈|∉|∋|∌|⊆|⊈|⊂|⊄|⊊|∝|∊|∍|∥|∦|∷|∺|∻|∽|∾|≁|≃|≂|≄|≅|≆|≇|≈|≉|≊|≋|≌|≍|≎|≐|≑|≒|≓|≖|≗|≘|≙|≚|≛|≜|≝|≞|≟|≣|≦|≧|≨|≩|≪|≫|≬|≭|≮|≯|≰|≱|≲|≳|≴|≵|≶|≷|≸|≹|≺|≻|≼|≽|≾|≿|⊀|⊁|⊃|⊅|⊇|⊉|⊋|⊏|⊐|⊑|⊒|⊜|⊩|⊬|⊮|⊰|⊱|⊲|⊳|⊴|⊵|⊶|⊷|⋍|⋐|⋑|⋕|⋖|⋗|⋘|⋙|⋚|⋛|⋜|⋝|⋞|⋟|⋠|⋡|⋢|⋣|⋤|⋥|⋦|⋧|⋨|⋩|⋪|⋫|⋬|⋭|⋲|⋳|⋴|⋵|⋶|⋷|⋸|⋹|⋺|⋻|⋼|⋽|⋾|⋿|⟈|⟉|⟒|⦷|⧀|⧁|⧡|⧣|⧤|⧥|⩦|⩧|⩪|⩫|⩬|⩭|⩮|⩯|⩰|⩱|⩲|⩳|⩵|⩶|⩷|⩸|⩹|⩺|⩻|⩼|⩽|⩾|⩿|⪀|⪁|⪂|⪃|⪄|⪅|⪆|⪇|⪈|⪉|⪊|⪋|⪌|⪍|⪎|⪏|⪐|⪑|⪒|⪓|⪔|⪕|⪖|⪗|⪘|⪙|⪚|⪛|⪜|⪝|⪞|⪟|⪠|⪡|⪢|⪣|⪤|⪥|⪦|⪧|⪨|⪩|⪪|⪫|⪬|⪭|⪮|⪯|⪰|⪱|⪲|⪳|⪴|⪵|⪶|⪷|⪸|⪹|⪺|⪻|⪼|⪽|⪾|⪿|⫀|⫁|⫂|⫃|⫄|⫅|⫆|⫇|⫈|⫉|⫊|⫋|⫌|⫍|⫎|⫏|⫐|⫑|⫒|⫓|⫔|⫕|⫖|⫗|⫘|⫙|⫷|⫸|⫹|⫺|⊢|⊣|⟂|⫪|⫫|<:|>:))\",\"name\":\"keyword.operator.relation.julia\"},{\"match\":\"(?<=\\\\\\\\s)(?:\\\\\\\\?)(?=\\\\\\\\s)\",\"name\":\"keyword.operator.ternary.julia\"},{\"match\":\"(?<=\\\\\\\\s)(?:\\\\\\\\:)(?=\\\\\\\\s)\",\"name\":\"keyword.operator.ternary.julia\"},{\"match\":\"(?:\\\\\\\\|\\\\\\\\||&&|(?<!(?:[[:word:]_!\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{Mn}\\\\u0001-¡]|[^\\\\\\\\P{Mc}\\\\u0001-¡]|[^\\\\\\\\P{Nd}\\\\u0001-¡]|[^\\\\\\\\P{Pc}\\\\u0001-¡]|[^\\\\\\\\P{Sk}\\\\u0001-¡]|[^\\\\\\\\P{Me}\\\\u0001-¡]|[^\\\\\\\\P{No}\\\\u0001-¡]|[′-‷⁗]|[^\\\\\\\\P{So}←-⇿]))!)\",\"name\":\"keyword.operator.boolean.julia\"},{\"match\":\"(?<=[[:word:]⁺-ₜ!′∇\\\\\\\\)\\\\\\\\]\\\\\\\\}])(?::)\",\"name\":\"keyword.operator.range.julia\"},{\"match\":\"(?:\\\\\\\\|>)\",\"name\":\"keyword.operator.applies.julia\"},{\"match\":\"(?:\\\\\\\\||\\\\\\\\.\\\\\\\\||\\\\\\\\&|\\\\\\\\.\\\\\\\\&|~|¬|\\\\\\\\.~|⊻|\\\\\\\\.⊻)\",\"name\":\"keyword.operator.bitwise.julia\"},{\"match\":\"\\\\\\\\.?(?:\\\\\\\\+\\\\\\\\+|\\\\\\\\-\\\\\\\\-|\\\\\\\\+|\\\\\\\\-|−|¦|\\\\\\\\||⊕|⊖|⊞|⊟|∪|∨|⊔|±|∓|∔|∸|≏|⊎|⊻|⊽|⋎|⋓|⟇|⧺|⧻|⨈|⨢|⨣|⨤|⨥|⨦|⨧|⨨|⨩|⨪|⨫|⨬|⨭|⨮|⨹|⨺|⩁|⩂|⩅|⩊|⩌|⩏|⩐|⩒|⩔|⩖|⩗|⩛|⩝|⩡|⩢|⩣|\\\\\\\\*|//?|⌿|÷|%|&|·|·|⋅|∘|×|\\\\\\\\\\\\\\\\|∩|∧|⊗|⊘|⊙|⊚|⊛|⊠|⊡|⊓|∗|∙|∤|⅋|≀|⊼|⋄|⋆|⋇|⋉|⋊|⋋|⋌|⋏|⋒|⟑|⦸|⦼|⦾|⦿|⧶|⧷|⨇|⨰|⨱|⨲|⨳|⨴|⨵|⨶|⨷|⨸|⨻|⨼|⨽|⩀|⩃|⩄|⩋|⩍|⩎|⩑|⩓|⩕|⩘|⩚|⩜|⩞|⩟|⩠|⫛|⊍|▷|⨝|⟕|⟖|⟗|⨟|\\\\\\\\^|↑|↓|⇵|⟰|⟱|⤈|⤉|⤊|⤋|⤒|⤓|⥉|⥌|⥍|⥏|⥑|⥔|⥕|⥘|⥙|⥜|⥝|⥠|⥡|⥣|⥥|⥮|⥯|￪|￬|√|∛|∜|⋆|±|∓)\",\"name\":\"keyword.operator.arithmetic.julia\"},{\"match\":\"(?:∘)\",\"name\":\"keyword.operator.compose.julia\"},{\"match\":\"(?:::|(?<=\\\\\\\\s)isa(?=\\\\\\\\s))\",\"name\":\"keyword.operator.isa.julia\"},{\"match\":\"(?:(?<=\\\\\\\\s)in(?=\\\\\\\\s))\",\"name\":\"keyword.operator.relation.in.julia\"},{\"match\":\"(?:\\\\\\\\.(?=(?:@|_|\\\\\\\\p{L}))|\\\\\\\\.\\\\\\\\.+|…|⁝|⋮|⋱|⋰|⋯)\",\"name\":\"keyword.operator.dots.julia\"},{\"match\":\"(?:\\\\\\\\$)(?=.+)\",\"name\":\"keyword.operator.interpolation.julia\"},{\"captures\":{\"2\":{\"name\":\"keyword.operator.transposed-variable.julia\"}},\"match\":\"((?:[[:alpha:]_\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{So}←-⇿])(?:[[:word:]_!\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{Mn}\\\\u0001-¡]|[^\\\\\\\\P{Mc}\\\\u0001-¡]|[^\\\\\\\\P{Nd}\\\\u0001-¡]|[^\\\\\\\\P{Pc}\\\\u0001-¡]|[^\\\\\\\\P{Sk}\\\\u0001-¡]|[^\\\\\\\\P{Me}\\\\u0001-¡]|[^\\\\\\\\P{No}\\\\u0001-¡]|[′-‷⁗]|[^\\\\\\\\P{So}←-⇿])*)(('|(\\\\\\\\.'))*\\\\\\\\.?')\"},{\"captures\":{\"1\":{\"name\":\"bracket.end.julia\"},\"2\":{\"name\":\"keyword.operator.transposed-matrix.julia\"}},\"match\":\"(\\\\\\\\])((?:'|(?:\\\\\\\\.'))*\\\\\\\\.?')\"},{\"captures\":{\"1\":{\"name\":\"bracket.end.julia\"},\"2\":{\"name\":\"keyword.operator.transposed-parens.julia\"}},\"match\":\"(\\\\\\\\))((?:'|(?:\\\\\\\\.'))*\\\\\\\\.?')\"}]},\"parentheses\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.bracket.julia\"}},\"end\":\"(\\\\\\\\))((?:\\\\\\\\.)?'*)\",\"endCaptures\":{\"1\":{\"name\":\"meta.bracket.julia\"},\"2\":{\"name\":\"keyword.operator.transpose.julia\"}},\"patterns\":[{\"include\":\"#self_no_for_block\"}]}]},\"punctuation\":{\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.separator.comma.julia\"},{\"match\":\";\",\"name\":\"punctuation.separator.semicolon.julia\"}]},\"self_no_for_block\":{\"comment\":\"Same as $self, but does not contain #for_block. 'outer' is not valid in some contexts (e.g. generators, comprehensions, indexing), so use this when matching those in begin/end patterns. Keep this up-to-date with $self!\",\"patterns\":[{\"include\":\"#operator\"},{\"include\":\"#array\"},{\"include\":\"#string\"},{\"include\":\"#parentheses\"},{\"include\":\"#bracket\"},{\"include\":\"#function_decl\"},{\"include\":\"#function_call\"},{\"include\":\"#keyword\"},{\"include\":\"#number\"},{\"include\":\"#comment\"},{\"include\":\"#type_decl\"},{\"include\":\"#symbol\"},{\"include\":\"#punctuation\"}]},\"string\":{\"patterns\":[{\"begin\":\"(?:(@doc)\\\\\\\\s((?:doc)?\\\\\"\\\\\"\\\\\")|(doc\\\\\"\\\\\"\\\\\"))\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.macro.julia\"},\"2\":{\"name\":\"punctuation.definition.string.begin.julia\"}},\"end\":\"(\\\\\"\\\\\"\\\\\") ?(->)?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.julia\"},\"2\":{\"name\":\"keyword.operator.arrow.julia\"}},\"name\":\"string.docstring.julia\",\"patterns\":[{\"include\":\"#string_escaped_char\"},{\"include\":\"#string_dollar_sign_interpolate\"}]},{\"begin\":\"(i?cxx)(\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.macro.julia\"},\"2\":{\"name\":\"punctuation.definition.string.begin.julia\"}},\"contentName\":\"meta.embedded.inline.cpp\",\"end\":\"\\\\\"\\\\\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.julia\"}},\"name\":\"embed.cxx.julia\",\"patterns\":[{\"include\":\"source.cpp#root_context\"},{\"include\":\"#string_dollar_sign_interpolate\"}]},{\"begin\":\"(py)(\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.macro.julia\"},\"2\":{\"name\":\"punctuation.definition.string.begin.julia\"}},\"contentName\":\"meta.embedded.inline.python\",\"end\":\"([\\\\\\\\s\\\\\\\\w]*)(\\\\\"\\\\\"\\\\\")\",\"endCaptures\":{\"2\":{\"name\":\"punctuation.definition.string.end.julia\"}},\"name\":\"embed.python.julia\",\"patterns\":[{\"include\":\"source.python\"},{\"include\":\"#string_dollar_sign_interpolate\"}]},{\"begin\":\"(js)(\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.macro.julia\"},\"2\":{\"name\":\"punctuation.definition.string.begin.julia\"}},\"contentName\":\"meta.embedded.inline.javascript\",\"end\":\"\\\\\"\\\\\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.julia\"}},\"name\":\"embed.js.julia\",\"patterns\":[{\"include\":\"source.js\"},{\"include\":\"#string_dollar_sign_interpolate\"}]},{\"begin\":\"(R)(\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.macro.julia\"},\"2\":{\"name\":\"punctuation.definition.string.begin.julia\"}},\"contentName\":\"meta.embedded.inline.r\",\"end\":\"\\\\\"\\\\\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.julia\"}},\"name\":\"embed.R.julia\",\"patterns\":[{\"include\":\"source.r\"},{\"include\":\"#string_dollar_sign_interpolate\"}]},{\"begin\":\"(raw)(\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.macro.julia\"},\"2\":{\"name\":\"punctuation.definition.string.begin.julia\"}},\"end\":\"\\\\\"\\\\\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.julia\"}},\"name\":\"string.quoted.other.julia\",\"patterns\":[{\"include\":\"#string_escaped_char\"}]},{\"begin\":\"(raw)(\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.macro.julia\"},\"2\":{\"name\":\"punctuation.definition.string.begin.julia\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.julia\"}},\"name\":\"string.quoted.other.julia\",\"patterns\":[{\"include\":\"#string_escaped_char\"}]},{\"begin\":\"(sql)(\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.macro.julia\"},\"2\":{\"name\":\"punctuation.definition.string.begin.julia\"}},\"contentName\":\"meta.embedded.inline.sql\",\"end\":\"\\\\\"\\\\\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.julia\"}},\"name\":\"embed.sql.julia\",\"patterns\":[{\"include\":\"source.sql\"},{\"include\":\"#string_dollar_sign_interpolate\"}]},{\"begin\":\"var\\\\\"\\\\\"\\\\\"\",\"end\":\"\\\\\"\\\\\"\\\\\"\",\"name\":\"constant.other.symbol.julia\",\"patterns\":[{\"include\":\"#string_escaped_char\"}]},{\"begin\":\"var\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"constant.other.symbol.julia\",\"patterns\":[{\"include\":\"#string_escaped_char\"}]},{\"begin\":\"^\\\\\\\\s?(doc)?(\\\\\"\\\\\"\\\\\")\\\\\\\\s?$\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.macro.julia\"},\"2\":{\"name\":\"punctuation.definition.string.begin.julia\"}},\"comment\":\"This only matches docstrings that start and end with triple quotes on\\\\ntheir own line in the void\",\"end\":\"(\\\\\"\\\\\"\\\\\")\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.julia\"}},\"name\":\"string.docstring.julia\",\"patterns\":[{\"include\":\"#string_escaped_char\"},{\"include\":\"#string_dollar_sign_interpolate\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.julia\"}},\"end\":\"'(?!')\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.julia\"}},\"name\":\"string.quoted.single.julia\",\"patterns\":[{\"include\":\"#string_escaped_char\"}]},{\"begin\":\"\\\\\"\\\\\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.multiline.begin.julia\"}},\"comment\":\"multi-line string with triple double quotes\",\"end\":\"\\\\\"\\\\\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.multiline.end.julia\"}},\"name\":\"string.quoted.triple.double.julia\",\"patterns\":[{\"include\":\"#string_escaped_char\"},{\"include\":\"#string_dollar_sign_interpolate\"}]},{\"begin\":\"\\\\\"(?!\\\\\"\\\\\")\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.julia\"}},\"comment\":\"String with single pair of double quotes. Regex matches isolated double quote\",\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.julia\"}},\"name\":\"string.quoted.double.julia\",\"patterns\":[{\"include\":\"#string_escaped_char\"},{\"include\":\"#string_dollar_sign_interpolate\"}]},{\"begin\":\"r\\\\\"\\\\\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.regexp.begin.julia\"}},\"end\":\"(\\\\\"\\\\\"\\\\\")([imsx]{0,4})?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.regexp.end.julia\"},\"2\":{\"comment\":\"I took this scope name from python regex grammar\",\"name\":\"keyword.other.option-toggle.regexp.julia\"}},\"name\":\"string.regexp.julia\",\"patterns\":[{\"include\":\"#string_escaped_char\"}]},{\"begin\":\"r\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.regexp.begin.julia\"}},\"end\":\"(\\\\\")([imsx]{0,4})?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.regexp.end.julia\"},\"2\":{\"comment\":\"I took this scope name from python regex grammar\",\"name\":\"keyword.other.option-toggle.regexp.julia\"}},\"name\":\"string.regexp.julia\",\"patterns\":[{\"include\":\"#string_escaped_char\"}]},{\"begin\":\"(?<!\\\\\")((?:[[:alpha:]_\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{So}←-⇿])(?:[[:word:]_!\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{Mn}\\\\u0001-¡]|[^\\\\\\\\P{Mc}\\\\u0001-¡]|[^\\\\\\\\P{Nd}\\\\u0001-¡]|[^\\\\\\\\P{Pc}\\\\u0001-¡]|[^\\\\\\\\P{Sk}\\\\u0001-¡]|[^\\\\\\\\P{Me}\\\\u0001-¡]|[^\\\\\\\\P{No}\\\\u0001-¡]|[′-‷⁗]|[^\\\\\\\\P{So}←-⇿])*)\\\\\"\\\\\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.julia\"},\"1\":{\"name\":\"support.function.macro.julia\"}},\"end\":\"(\\\\\"\\\\\"\\\\\")((?:[[:alpha:]_\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{So}←-⇿])(?:[[:word:]_!\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{Mn}\\\\u0001-¡]|[^\\\\\\\\P{Mc}\\\\u0001-¡]|[^\\\\\\\\P{Nd}\\\\u0001-¡]|[^\\\\\\\\P{Pc}\\\\u0001-¡]|[^\\\\\\\\P{Sk}\\\\u0001-¡]|[^\\\\\\\\P{Me}\\\\u0001-¡]|[^\\\\\\\\P{No}\\\\u0001-¡]|[′-‷⁗]|[^\\\\\\\\P{So}←-⇿])*)?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.julia\"},\"2\":{\"name\":\"support.function.macro.julia\"}},\"name\":\"string.quoted.other.julia\",\"patterns\":[{\"include\":\"#string_escaped_char\"}]},{\"begin\":\"(?<!\\\\\")((?:[[:alpha:]_\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{So}←-⇿])(?:[[:word:]_!\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{Mn}\\\\u0001-¡]|[^\\\\\\\\P{Mc}\\\\u0001-¡]|[^\\\\\\\\P{Nd}\\\\u0001-¡]|[^\\\\\\\\P{Pc}\\\\u0001-¡]|[^\\\\\\\\P{Sk}\\\\u0001-¡]|[^\\\\\\\\P{Me}\\\\u0001-¡]|[^\\\\\\\\P{No}\\\\u0001-¡]|[′-‷⁗]|[^\\\\\\\\P{So}←-⇿])*)\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.julia\"},\"1\":{\"name\":\"support.function.macro.julia\"}},\"end\":\"(?<![^\\\\\\\\\\\\\\\\]\\\\\\\\\\\\\\\\)(\\\\\")((?:[[:alpha:]_\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{So}←-⇿])(?:[[:word:]_!\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{Mn}\\\\u0001-¡]|[^\\\\\\\\P{Mc}\\\\u0001-¡]|[^\\\\\\\\P{Nd}\\\\u0001-¡]|[^\\\\\\\\P{Pc}\\\\u0001-¡]|[^\\\\\\\\P{Sk}\\\\u0001-¡]|[^\\\\\\\\P{Me}\\\\u0001-¡]|[^\\\\\\\\P{No}\\\\u0001-¡]|[′-‷⁗]|[^\\\\\\\\P{So}←-⇿])*)?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.julia\"},\"2\":{\"name\":\"support.function.macro.julia\"}},\"name\":\"string.quoted.other.julia\",\"patterns\":[{\"include\":\"#string_escaped_char\"}]},{\"begin\":\"(?<!\\`)((?:[[:alpha:]_\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{So}←-⇿])(?:[[:word:]_!\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{Mn}\\\\u0001-¡]|[^\\\\\\\\P{Mc}\\\\u0001-¡]|[^\\\\\\\\P{Nd}\\\\u0001-¡]|[^\\\\\\\\P{Pc}\\\\u0001-¡]|[^\\\\\\\\P{Sk}\\\\u0001-¡]|[^\\\\\\\\P{Me}\\\\u0001-¡]|[^\\\\\\\\P{No}\\\\u0001-¡]|[′-‷⁗]|[^\\\\\\\\P{So}←-⇿])*)?\\`\\`\\`\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.julia\"},\"1\":{\"name\":\"support.function.macro.julia\"}},\"end\":\"(\\`\\`\\`)((?:[[:alpha:]_\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{So}←-⇿])(?:[[:word:]_!\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{Mn}\\\\u0001-¡]|[^\\\\\\\\P{Mc}\\\\u0001-¡]|[^\\\\\\\\P{Nd}\\\\u0001-¡]|[^\\\\\\\\P{Pc}\\\\u0001-¡]|[^\\\\\\\\P{Sk}\\\\u0001-¡]|[^\\\\\\\\P{Me}\\\\u0001-¡]|[^\\\\\\\\P{No}\\\\u0001-¡]|[′-‷⁗]|[^\\\\\\\\P{So}←-⇿])*)?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.julia\"},\"2\":{\"name\":\"support.function.macro.julia\"}},\"name\":\"string.interpolated.backtick.julia\",\"patterns\":[{\"include\":\"#string_escaped_char\"},{\"include\":\"#string_dollar_sign_interpolate\"}]},{\"begin\":\"(?<!\\`)((?:[[:alpha:]_\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{So}←-⇿])(?:[[:word:]_!\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{Mn}\\\\u0001-¡]|[^\\\\\\\\P{Mc}\\\\u0001-¡]|[^\\\\\\\\P{Nd}\\\\u0001-¡]|[^\\\\\\\\P{Pc}\\\\u0001-¡]|[^\\\\\\\\P{Sk}\\\\u0001-¡]|[^\\\\\\\\P{Me}\\\\u0001-¡]|[^\\\\\\\\P{No}\\\\u0001-¡]|[′-‷⁗]|[^\\\\\\\\P{So}←-⇿])*)?\\`\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.julia\"},\"1\":{\"name\":\"support.function.macro.julia\"}},\"end\":\"(?<![^\\\\\\\\\\\\\\\\]\\\\\\\\\\\\\\\\)(\\`)((?:[[:alpha:]_\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{So}←-⇿])(?:[[:word:]_!\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{Mn}\\\\u0001-¡]|[^\\\\\\\\P{Mc}\\\\u0001-¡]|[^\\\\\\\\P{Nd}\\\\u0001-¡]|[^\\\\\\\\P{Pc}\\\\u0001-¡]|[^\\\\\\\\P{Sk}\\\\u0001-¡]|[^\\\\\\\\P{Me}\\\\u0001-¡]|[^\\\\\\\\P{No}\\\\u0001-¡]|[′-‷⁗]|[^\\\\\\\\P{So}←-⇿])*)?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.julia\"},\"2\":{\"name\":\"support.function.macro.julia\"}},\"name\":\"string.interpolated.backtick.julia\",\"patterns\":[{\"include\":\"#string_escaped_char\"},{\"include\":\"#string_dollar_sign_interpolate\"}]}]},\"string_dollar_sign_interpolate\":{\"patterns\":[{\"match\":\"\\\\\\\\$(?:[[:alpha:]_\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{So}←-⇿]|[^\\\\\\\\p{^Sc}$])(?:[[:word:]_!\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{Mn}\\\\u0001-¡]|[^\\\\\\\\P{Mc}\\\\u0001-¡]|[^\\\\\\\\P{Nd}\\\\u0001-¡]|[^\\\\\\\\P{Pc}\\\\u0001-¡]|[^\\\\\\\\P{Sk}\\\\u0001-¡]|[^\\\\\\\\P{Me}\\\\u0001-¡]|[^\\\\\\\\P{No}\\\\u0001-¡]|[′-‷⁗]|[^\\\\\\\\P{So}←-⇿]|[^\\\\\\\\p{^Sc}$])*\",\"name\":\"variable.interpolation.julia\"},{\"begin\":\"\\\\\\\\$(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"meta.bracket.julia\"}},\"comment\":\"\\`punctuation.section.embedded\\`, \\`constant.escape\\`,\\\\n& \\`meta.embedded.line\\` were considered but appear to have even spottier\\\\nsupport among popular syntaxes.\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.bracket.julia\"}},\"name\":\"variable.interpolation.julia\",\"patterns\":[{\"include\":\"#self_no_for_block\"}]}]},\"string_escaped_char\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(\\\\\\\\\\\\\\\\|[0-3]\\\\\\\\d{,2}|[4-7]\\\\\\\\d?|x[a-fA-F0-9]{,2}|u[a-fA-F0-9]{,4}|U[a-fA-F0-9]{,8}|.)\",\"name\":\"constant.character.escape.julia\"}]},\"symbol\":{\"patterns\":[{\"comment\":\"This is string.quoted.symbol.julia in tpoisot's package\",\"match\":\"(?<![[:word:]⁺-ₜ!′∇\\\\\\\\)\\\\\\\\]\\\\\\\\}]):(?:(?:[[:alpha:]_\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{So}←-⇿])(?:[[:word:]_!\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{Mn}\\\\u0001-¡]|[^\\\\\\\\P{Mc}\\\\u0001-¡]|[^\\\\\\\\P{Nd}\\\\u0001-¡]|[^\\\\\\\\P{Pc}\\\\u0001-¡]|[^\\\\\\\\P{Sk}\\\\u0001-¡]|[^\\\\\\\\P{Me}\\\\u0001-¡]|[^\\\\\\\\P{No}\\\\u0001-¡]|[′-‷⁗]|[^\\\\\\\\P{So}←-⇿])*)(?!(?:[[:word:]_!\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{Mn}\\\\u0001-¡]|[^\\\\\\\\P{Mc}\\\\u0001-¡]|[^\\\\\\\\P{Nd}\\\\u0001-¡]|[^\\\\\\\\P{Pc}\\\\u0001-¡]|[^\\\\\\\\P{Sk}\\\\u0001-¡]|[^\\\\\\\\P{Me}\\\\u0001-¡]|[^\\\\\\\\P{No}\\\\u0001-¡]|[′-‷⁗]|[^\\\\\\\\P{So}←-⇿]))(?![\\\\\"\\`])\",\"name\":\"constant.other.symbol.julia\"}]},\"type_decl\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.type.julia\"},\"2\":{\"name\":\"entity.other.inherited-class.julia\"},\"3\":{\"name\":\"punctuation.separator.inheritance.julia\"}},\"match\":\"(?>!:_)(?:struct|mutable\\\\\\\\s+struct|abstract\\\\\\\\s+type|primitive\\\\\\\\s+type)\\\\\\\\s+((?:[[:alpha:]_\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{So}←-⇿])(?:[[:word:]_!\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{Mn}\\\\u0001-¡]|[^\\\\\\\\P{Mc}\\\\u0001-¡]|[^\\\\\\\\P{Nd}\\\\u0001-¡]|[^\\\\\\\\P{Pc}\\\\u0001-¡]|[^\\\\\\\\P{Sk}\\\\u0001-¡]|[^\\\\\\\\P{Me}\\\\u0001-¡]|[^\\\\\\\\P{No}\\\\u0001-¡]|[′-‷⁗]|[^\\\\\\\\P{So}←-⇿])*)(\\\\\\\\s*(<:)\\\\\\\\s*(?:[[:alpha:]_\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{So}←-⇿])(?:[[:word:]_!\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\\\\\\\P{Mn}\\\\u0001-¡]|[^\\\\\\\\P{Mc}\\\\u0001-¡]|[^\\\\\\\\P{Nd}\\\\u0001-¡]|[^\\\\\\\\P{Pc}\\\\u0001-¡]|[^\\\\\\\\P{Sk}\\\\u0001-¡]|[^\\\\\\\\P{Me}\\\\u0001-¡]|[^\\\\\\\\P{No}\\\\u0001-¡]|[′-‷⁗]|[^\\\\\\\\P{So}←-⇿])*(?:{.*})?)?\",\"name\":\"meta.type.julia\"}]}},\"scopeName\":\"source.julia\",\"embeddedLangs\":[\"cpp\",\"python\",\"javascript\",\"r\",\"sql\"],\"aliases\":[\"jl\"]}`)),b=[...e,...n,...t,...a,...i,o];export{b as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Bw305WKR.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.background\":\"#E7E8E6\",\"activityBar.foreground\":\"#2DAE58\",\"activityBar.inactiveForeground\":\"#68696888\",\"activityBarBadge.background\":\"#09A1ED\",\"badge.background\":\"#09A1ED\",\"badge.foreground\":\"#ffffff\",\"button.background\":\"#2DAE58\",\"debugExceptionWidget.background\":\"#FFAEAC33\",\"debugExceptionWidget.border\":\"#FF5C57\",\"debugToolBar.border\":\"#E9EAEB\",\"diffEditor.insertedTextBackground\":\"#2DAE5824\",\"diffEditor.removedTextBackground\":\"#FFAEAC44\",\"dropdown.border\":\"#E9EAEB\",\"editor.background\":\"#FAFBFC\",\"editor.findMatchBackground\":\"#00E6E06A\",\"editor.findMatchHighlightBackground\":\"#00E6E02A\",\"editor.findRangeHighlightBackground\":\"#F5B90011\",\"editor.focusedStackFrameHighlightBackground\":\"#2DAE5822\",\"editor.foreground\":\"#565869\",\"editor.hoverHighlightBackground\":\"#00E6E018\",\"editor.rangeHighlightBackground\":\"#F5B90033\",\"editor.selectionBackground\":\"#2DAE5822\",\"editor.snippetTabstopHighlightBackground\":\"#ADB1C23A\",\"editor.stackFrameHighlightBackground\":\"#F5B90033\",\"editor.wordHighlightBackground\":\"#ADB1C23A\",\"editorError.foreground\":\"#FF5C56\",\"editorGroup.emptyBackground\":\"#F3F4F5\",\"editorGutter.addedBackground\":\"#2DAE58\",\"editorGutter.deletedBackground\":\"#FF5C57\",\"editorGutter.modifiedBackground\":\"#00A39FAA\",\"editorInlayHint.background\":\"#E9EAEB\",\"editorInlayHint.foreground\":\"#565869\",\"editorLineNumber.activeForeground\":\"#35CF68\",\"editorLineNumber.foreground\":\"#9194A2aa\",\"editorLink.activeForeground\":\"#35CF68\",\"editorOverviewRuler.addedForeground\":\"#2DAE58\",\"editorOverviewRuler.deletedForeground\":\"#FF5C57\",\"editorOverviewRuler.errorForeground\":\"#FF5C56\",\"editorOverviewRuler.findMatchForeground\":\"#13BBB7AA\",\"editorOverviewRuler.modifiedForeground\":\"#00A39FAA\",\"editorOverviewRuler.warningForeground\":\"#CF9C00\",\"editorOverviewRuler.wordHighlightForeground\":\"#ADB1C288\",\"editorOverviewRuler.wordHighlightStrongForeground\":\"#35CF68\",\"editorWarning.foreground\":\"#CF9C00\",\"editorWhitespace.foreground\":\"#ADB1C255\",\"extensionButton.prominentBackground\":\"#2DAE58\",\"extensionButton.prominentHoverBackground\":\"#238744\",\"focusBorder\":\"#09A1ED\",\"foreground\":\"#686968\",\"gitDecoration.modifiedResourceForeground\":\"#00A39F\",\"gitDecoration.untrackedResourceForeground\":\"#2DAE58\",\"input.border\":\"#E9EAEB\",\"list.activeSelectionBackground\":\"#09A1ED\",\"list.activeSelectionForeground\":\"#ffffff\",\"list.errorForeground\":\"#FF5C56\",\"list.focusBackground\":\"#BCE7FC99\",\"list.focusForeground\":\"#11658F\",\"list.hoverBackground\":\"#E9EAEB\",\"list.inactiveSelectionBackground\":\"#89B5CB33\",\"list.warningForeground\":\"#B38700\",\"menu.background\":\"#FAFBFC\",\"menu.selectionBackground\":\"#E9EAEB\",\"menu.selectionForeground\":\"#686968\",\"menubar.selectionBackground\":\"#E9EAEB\",\"menubar.selectionForeground\":\"#686968\",\"merge.currentContentBackground\":\"#35CF6833\",\"merge.currentHeaderBackground\":\"#35CF6866\",\"merge.incomingContentBackground\":\"#14B1FF33\",\"merge.incomingHeaderBackground\":\"#14B1FF77\",\"peekView.border\":\"#09A1ED\",\"peekViewEditor.background\":\"#14B1FF08\",\"peekViewEditor.matchHighlightBackground\":\"#F5B90088\",\"peekViewEditor.matchHighlightBorder\":\"#F5B900\",\"peekViewEditorStickyScroll.background\":\"#EDF4FB\",\"peekViewResult.matchHighlightBackground\":\"#F5B90088\",\"peekViewResult.selectionBackground\":\"#09A1ED\",\"peekViewResult.selectionForeground\":\"#FFFFFF\",\"peekViewTitle.background\":\"#09A1ED11\",\"selection.background\":\"#2DAE5844\",\"settings.modifiedItemIndicator\":\"#13BBB7\",\"sideBar.background\":\"#F3F4F5\",\"sideBar.border\":\"#DEDFE0\",\"sideBarSectionHeader.background\":\"#E9EAEB\",\"sideBarSectionHeader.border\":\"#DEDFE0\",\"statusBar.background\":\"#2DAE58\",\"statusBar.debuggingBackground\":\"#13BBB7\",\"statusBar.debuggingBorder\":\"#00A39F\",\"statusBar.noFolderBackground\":\"#565869\",\"statusBarItem.remoteBackground\":\"#238744\",\"tab.activeBorderTop\":\"#2DAE58\",\"terminal.ansiBlack\":\"#565869\",\"terminal.ansiBlue\":\"#09A1ED\",\"terminal.ansiBrightBlack\":\"#75798F\",\"terminal.ansiBrightBlue\":\"#14B1FF\",\"terminal.ansiBrightCyan\":\"#13BBB7\",\"terminal.ansiBrightGreen\":\"#35CF68\",\"terminal.ansiBrightMagenta\":\"#FF94D2\",\"terminal.ansiBrightRed\":\"#FFAEAC\",\"terminal.ansiBrightWhite\":\"#FFFFFF\",\"terminal.ansiBrightYellow\":\"#F5B900\",\"terminal.ansiCyan\":\"#13BBB7\",\"terminal.ansiGreen\":\"#2DAE58\",\"terminal.ansiMagenta\":\"#F767BB\",\"terminal.ansiRed\":\"#FF5C57\",\"terminal.ansiWhite\":\"#FAFBF9\",\"terminal.ansiYellow\":\"#CF9C00\",\"titleBar.activeBackground\":\"#F3F4F5\"},\"displayName\":\"Snazzy Light\",\"name\":\"snazzy-light\",\"tokenColors\":[{\"scope\":\"invalid.illegal\",\"settings\":{\"foreground\":\"#FF5C56\"}},{\"scope\":[\"meta.object-literal.key\",\"meta.object-literal.key constant.character.escape\",\"meta.object-literal string\",\"meta.object-literal string constant.character.escape\",\"support.type.property-name\",\"support.type.property-name constant.character.escape\"],\"settings\":{\"foreground\":\"#11658F\"}},{\"scope\":[\"keyword\",\"storage\",\"meta.class storage.type\",\"keyword.operator.expression.import\",\"keyword.operator.new\",\"keyword.operator.expression.delete\"],\"settings\":{\"foreground\":\"#F767BB\"}},{\"scope\":[\"support.type\",\"meta.type.annotation entity.name.type\",\"new.expr meta.type.parameters entity.name.type\",\"storage.type.primitive\",\"storage.type.built-in.primitive\",\"meta.function.parameter storage.type\"],\"settings\":{\"foreground\":\"#2DAE58\"}},{\"scope\":[\"storage.type.annotation\"],\"settings\":{\"foreground\":\"#C25193\"}},{\"scope\":\"keyword.other.unit\",\"settings\":{\"foreground\":\"#FF5C57CC\"}},{\"scope\":[\"constant.language\",\"support.constant\",\"variable.language\"],\"settings\":{\"foreground\":\"#2DAE58\"}},{\"scope\":[\"variable\",\"support.variable\"],\"settings\":{\"foreground\":\"#565869\"}},{\"scope\":\"variable.language.this\",\"settings\":{\"foreground\":\"#13BBB7\"}},{\"scope\":[\"entity.name.function\",\"support.function\"],\"settings\":{\"foreground\":\"#09A1ED\"}},{\"scope\":[\"entity.name.function.decorator\"],\"settings\":{\"foreground\":\"#11658F\"}},{\"scope\":[\"meta.class entity.name.type\",\"new.expr entity.name.type\",\"entity.other.inherited-class\",\"support.class\"],\"settings\":{\"foreground\":\"#13BBB7\"}},{\"scope\":[\"keyword.preprocessor.pragma\",\"keyword.control.directive.include\",\"keyword.other.preprocessor\"],\"settings\":{\"foreground\":\"#11658F\"}},{\"scope\":\"entity.name.exception\",\"settings\":{\"foreground\":\"#FF5C56\"}},{\"scope\":\"entity.name.section\",\"settings\":{}},{\"scope\":[\"constant.numeric\"],\"settings\":{\"foreground\":\"#FF5C57\"}},{\"scope\":[\"constant\",\"constant.character\"],\"settings\":{\"foreground\":\"#2DAE58\"}},{\"scope\":\"string\",\"settings\":{\"foreground\":\"#CF9C00\"}},{\"scope\":\"string\",\"settings\":{\"foreground\":\"#CF9C00\"}},{\"scope\":\"constant.character.escape\",\"settings\":{\"foreground\":\"#F5B900\"}},{\"scope\":[\"string.regexp\",\"string.regexp constant.character.escape\"],\"settings\":{\"foreground\":\"#13BBB7\"}},{\"scope\":[\"keyword.operator.quantifier.regexp\",\"keyword.operator.negation.regexp\",\"keyword.operator.or.regexp\",\"string.regexp punctuation\",\"string.regexp keyword\",\"string.regexp keyword.control\",\"string.regexp constant\",\"variable.other.regexp\"],\"settings\":{\"foreground\":\"#00A39F\"}},{\"scope\":[\"string.regexp keyword.other\"],\"settings\":{\"foreground\":\"#00A39F88\"}},{\"scope\":\"constant.other.symbol\",\"settings\":{\"foreground\":\"#CF9C00\"}},{\"scope\":[\"comment\",\"punctuation.definition.comment\"],\"settings\":{\"foreground\":\"#ADB1C2\"}},{\"scope\":\"comment.block.preprocessor\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#9194A2\"}},{\"scope\":\"comment.block.documentation entity.name.type\",\"settings\":{\"foreground\":\"#2DAE58\"}},{\"scope\":[\"comment.block.documentation storage\",\"comment.block.documentation keyword.other\",\"meta.class comment.block.documentation storage.type\"],\"settings\":{\"foreground\":\"#9194A2\"}},{\"scope\":[\"comment.block.documentation variable\"],\"settings\":{\"foreground\":\"#C25193\"}},{\"scope\":[\"punctuation\"],\"settings\":{\"foreground\":\"#ADB1C2\"}},{\"scope\":[\"keyword.operator\",\"keyword.other.arrow\",\"keyword.control.@\"],\"settings\":{\"foreground\":\"#ADB1C2\"}},{\"scope\":[\"meta.tag.metadata.doctype.html entity.name.tag\",\"meta.tag.metadata.doctype.html entity.other.attribute-name.html\",\"meta.tag.sgml.doctype\",\"meta.tag.sgml.doctype string\",\"meta.tag.sgml.doctype entity.name.tag\",\"meta.tag.sgml punctuation.definition.tag.html\"],\"settings\":{\"foreground\":\"#9194A2\"}},{\"scope\":[\"meta.tag\",\"punctuation.definition.tag.html\",\"punctuation.definition.tag.begin.html\",\"punctuation.definition.tag.end.html\"],\"settings\":{\"foreground\":\"#ADB1C2\"}},{\"scope\":[\"entity.name.tag\"],\"settings\":{\"foreground\":\"#13BBB7\"}},{\"scope\":[\"meta.tag entity.other.attribute-name\",\"entity.other.attribute-name.html\"],\"settings\":{\"foreground\":\"#FF8380\"}},{\"scope\":[\"constant.character.entity\",\"punctuation.definition.entity\"],\"settings\":{\"foreground\":\"#CF9C00\"}},{\"scope\":[\"source.css\"],\"settings\":{\"foreground\":\"#ADB1C2\"}},{\"scope\":[\"meta.selector\",\"meta.selector entity\",\"meta.selector entity punctuation\",\"source.css entity.name.tag\"],\"settings\":{\"foreground\":\"#F767BB\"}},{\"scope\":[\"keyword.control.at-rule\",\"keyword.control.at-rule punctuation.definition.keyword\"],\"settings\":{\"foreground\":\"#C25193\"}},{\"scope\":\"source.css variable\",\"settings\":{\"foreground\":\"#11658F\"}},{\"scope\":[\"source.css meta.property-name\",\"source.css support.type.property-name\"],\"settings\":{\"foreground\":\"#565869\"}},{\"scope\":[\"source.css support.type.vendored.property-name\"],\"settings\":{\"foreground\":\"#565869AA\"}},{\"scope\":[\"meta.property-value\",\"support.constant.property-value\"],\"settings\":{\"foreground\":\"#13BBB7\"}},{\"scope\":[\"source.css support.constant\"],\"settings\":{\"foreground\":\"#2DAE58\"}},{\"scope\":[\"punctuation.definition.entity.css\",\"keyword.operator.combinator.css\"],\"settings\":{\"foreground\":\"#FF82CBBB\"}},{\"scope\":[\"source.css support.function\"],\"settings\":{\"foreground\":\"#09A1ED\"}},{\"scope\":\"keyword.other.important\",\"settings\":{\"foreground\":\"#238744\"}},{\"scope\":[\"source.css.scss\"],\"settings\":{\"foreground\":\"#F767BB\"}},{\"scope\":[\"source.css.scss entity.other.attribute-name.class.css\",\"source.css.scss entity.other.attribute-name.id.css\"],\"settings\":{\"foreground\":\"#F767BB\"}},{\"scope\":[\"entity.name.tag.reference.scss\"],\"settings\":{\"foreground\":\"#C25193\"}},{\"scope\":[\"source.css.scss meta.at-rule keyword\",\"source.css.scss meta.at-rule keyword punctuation\",\"source.css.scss meta.at-rule operator.logical\",\"keyword.control.content.scss\",\"keyword.control.return.scss\",\"keyword.control.return.scss punctuation.definition.keyword\"],\"settings\":{\"foreground\":\"#C25193\"}},{\"scope\":[\"meta.at-rule.mixin.scss\",\"meta.at-rule.include.scss\",\"source.css.scss meta.at-rule.if\",\"source.css.scss meta.at-rule.else\",\"source.css.scss meta.at-rule.each\",\"source.css.scss meta.at-rule variable.parameter\"],\"settings\":{\"foreground\":\"#ADB1C2\"}},{\"scope\":[\"source.css.less entity.other.attribute-name.class.css\"],\"settings\":{\"foreground\":\"#F767BB\"}},{\"scope\":\"source.stylus meta.brace.curly.css\",\"settings\":{\"foreground\":\"#ADB1C2\"}},{\"scope\":[\"source.stylus entity.other.attribute-name.class\",\"source.stylus entity.other.attribute-name.id\",\"source.stylus entity.name.tag\"],\"settings\":{\"foreground\":\"#F767BB\"}},{\"scope\":[\"source.stylus support.type.property-name\"],\"settings\":{\"foreground\":\"#565869\"}},{\"scope\":[\"source.stylus variable\"],\"settings\":{\"foreground\":\"#11658F\"}},{\"scope\":\"markup.changed\",\"settings\":{\"foreground\":\"#888888\"}},{\"scope\":\"markup.deleted\",\"settings\":{\"foreground\":\"#888888\"}},{\"scope\":\"markup.italic\",\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":\"markup.error\",\"settings\":{\"foreground\":\"#FF5C56\"}},{\"scope\":\"markup.inserted\",\"settings\":{\"foreground\":\"#888888\"}},{\"scope\":\"meta.link\",\"settings\":{\"foreground\":\"#CF9C00\"}},{\"scope\":\"string.other.link.title.markdown\",\"settings\":{\"foreground\":\"#09A1ED\"}},{\"scope\":[\"markup.output\",\"markup.raw\"],\"settings\":{\"foreground\":\"#999999\"}},{\"scope\":\"markup.prompt\",\"settings\":{\"foreground\":\"#999999\"}},{\"scope\":\"markup.heading\",\"settings\":{\"foreground\":\"#2DAE58\"}},{\"scope\":\"markup.bold\",\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":\"markup.traceback\",\"settings\":{\"foreground\":\"#FF5C56\"}},{\"scope\":\"markup.underline\",\"settings\":{\"fontStyle\":\"underline\"}},{\"scope\":\"markup.quote\",\"settings\":{\"foreground\":\"#777985\"}},{\"scope\":[\"markup.bold\",\"markup.italic\"],\"settings\":{\"foreground\":\"#13BBB7\"}},{\"scope\":\"markup.inline.raw\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#F767BB\"}},{\"scope\":[\"meta.brace.round\",\"meta.brace.square\",\"storage.type.function.arrow\"],\"settings\":{\"foreground\":\"#ADB1C2\"}},{\"scope\":[\"constant.language.import-export-all\",\"meta.import keyword.control.default\"],\"settings\":{\"foreground\":\"#C25193\"}},{\"scope\":[\"support.function.js\"],\"settings\":{\"foreground\":\"#11658F\"}},{\"scope\":\"string.regexp.js\",\"settings\":{\"foreground\":\"#13BBB7\"}},{\"scope\":[\"variable.language.super\",\"support.type.object.module.js\"],\"settings\":{\"foreground\":\"#F767BB\"}},{\"scope\":\"meta.jsx.children\",\"settings\":{\"foreground\":\"#686968\"}},{\"scope\":\"entity.name.tag.yaml\",\"settings\":{\"foreground\":\"#11658F\"}},{\"scope\":\"variable.other.alias.yaml\",\"settings\":{\"foreground\":\"#2DAE58\"}},{\"scope\":[\"punctuation.section.embedded.begin.php\",\"punctuation.section.embedded.end.php\"],\"settings\":{\"foreground\":\"#75798F\"}},{\"scope\":[\"meta.use.php entity.other.alias.php\"],\"settings\":{\"foreground\":\"#13BBB7\"}},{\"scope\":[\"source.php support.function.construct\",\"source.php support.function.var\"],\"settings\":{\"foreground\":\"#11658F\"}},{\"scope\":[\"storage.modifier.extends.php\",\"source.php keyword.other\",\"storage.modifier.php\"],\"settings\":{\"foreground\":\"#F767BB\"}},{\"scope\":[\"meta.class.body.php storage.type.php\"],\"settings\":{\"foreground\":\"#F767BB\"}},{\"scope\":[\"storage.type.php\",\"meta.class.body.php meta.function-call.php storage.type.php\",\"meta.class.body.php meta.function.php storage.type.php\"],\"settings\":{\"foreground\":\"#2DAE58\"}},{\"scope\":[\"source.php keyword.other.DML\"],\"settings\":{\"foreground\":\"#D94E4A\"}},{\"scope\":[\"source.sql.embedded.php keyword.operator\"],\"settings\":{\"foreground\":\"#2DAE58\"}},{\"scope\":[\"source.ini keyword\",\"source.toml keyword\",\"source.env variable\"],\"settings\":{\"foreground\":\"#11658F\"}},{\"scope\":[\"source.ini entity.name.section\",\"source.toml entity.other.attribute-name\"],\"settings\":{\"foreground\":\"#F767BB\"}},{\"scope\":[\"source.go storage.type\"],\"settings\":{\"foreground\":\"#2DAE58\"}},{\"scope\":[\"keyword.import.go\",\"keyword.package.go\"],\"settings\":{\"foreground\":\"#FF5C56\"}},{\"scope\":[\"source.reason variable.language string\"],\"settings\":{\"foreground\":\"#565869\"}},{\"scope\":[\"source.reason support.type\",\"source.reason constant.language\",\"source.reason constant.language constant.numeric\",\"source.reason support.type string.regexp\"],\"settings\":{\"foreground\":\"#2DAE58\"}},{\"scope\":[\"source.reason keyword.operator keyword.control\",\"source.reason keyword.control.less\",\"source.reason keyword.control.flow\"],\"settings\":{\"foreground\":\"#ADB1C2\"}},{\"scope\":[\"source.reason string.regexp\"],\"settings\":{\"foreground\":\"#CF9C00\"}},{\"scope\":[\"source.reason support.property-value\"],\"settings\":{\"foreground\":\"#11658F\"}},{\"scope\":[\"source.rust support.function.core.rust\"],\"settings\":{\"foreground\":\"#11658F\"}},{\"scope\":[\"source.rust storage.type.core.rust\",\"source.rust storage.class.std\"],\"settings\":{\"foreground\":\"#2DAE58\"}},{\"scope\":[\"source.rust entity.name.type.rust\"],\"settings\":{\"foreground\":\"#13BBB7\"}},{\"scope\":[\"storage.type.function.coffee\"],\"settings\":{\"foreground\":\"#ADB1C2\"}},{\"scope\":[\"keyword.type.cs\",\"storage.type.cs\"],\"settings\":{\"foreground\":\"#2DAE58\"}},{\"scope\":[\"entity.name.type.namespace.cs\"],\"settings\":{\"foreground\":\"#13BBB7\"}},{\"scope\":\"meta.diff.header\",\"settings\":{\"foreground\":\"#11658F\"}},{\"scope\":[\"markup.inserted.diff\"],\"settings\":{\"foreground\":\"#2DAE58\"}},{\"scope\":[\"markup.deleted.diff\"],\"settings\":{\"foreground\":\"#FF5C56\"}},{\"scope\":[\"meta.diff.range\",\"meta.diff.index\",\"meta.separator\"],\"settings\":{\"foreground\":\"#09A1ED\"}},{\"scope\":\"source.makefile variable\",\"settings\":{\"foreground\":\"#11658F\"}},{\"scope\":[\"keyword.control.protocol-specification.objc\"],\"settings\":{\"foreground\":\"#F767BB\"}},{\"scope\":[\"meta.parens storage.type.objc\",\"meta.return-type.objc support.class\",\"meta.return-type.objc storage.type.objc\"],\"settings\":{\"foreground\":\"#2DAE58\"}},{\"scope\":[\"source.sql keyword\"],\"settings\":{\"foreground\":\"#11658F\"}},{\"scope\":[\"keyword.other.special-method.dockerfile\"],\"settings\":{\"foreground\":\"#09A1ED\"}},{\"scope\":\"constant.other.symbol.elixir\",\"settings\":{\"foreground\":\"#11658F\"}},{\"scope\":[\"storage.type.elm\",\"support.module.elm\"],\"settings\":{\"foreground\":\"#13BBB7\"}},{\"scope\":[\"source.elm keyword.other\"],\"settings\":{\"foreground\":\"#ADB1C2\"}},{\"scope\":[\"source.erlang entity.name.type.class\"],\"settings\":{\"foreground\":\"#13BBB7\"}},{\"scope\":[\"variable.other.field.erlang\"],\"settings\":{\"foreground\":\"#11658F\"}},{\"scope\":[\"source.erlang constant.other.symbol\"],\"settings\":{\"foreground\":\"#2DAE58\"}},{\"scope\":[\"storage.type.haskell\"],\"settings\":{\"foreground\":\"#2DAE58\"}},{\"scope\":[\"meta.declaration.class.haskell storage.type.haskell\",\"meta.declaration.instance.haskell storage.type.haskell\"],\"settings\":{\"foreground\":\"#13BBB7\"}},{\"scope\":[\"meta.preprocessor.haskell\"],\"settings\":{\"foreground\":\"#75798F\"}},{\"scope\":[\"source.haskell keyword.control\"],\"settings\":{\"foreground\":\"#F767BB\"}},{\"scope\":[\"tag.end.latte\",\"tag.begin.latte\"],\"settings\":{\"foreground\":\"#ADB1C2\"}},{\"scope\":\"source.po keyword.control\",\"settings\":{\"foreground\":\"#11658F\"}},{\"scope\":\"source.po storage.type\",\"settings\":{\"foreground\":\"#9194A2\"}},{\"scope\":\"constant.language.po\",\"settings\":{\"foreground\":\"#13BBB7\"}},{\"scope\":\"meta.header.po string\",\"settings\":{\"foreground\":\"#FF8380\"}},{\"scope\":\"source.po meta.header.po\",\"settings\":{\"foreground\":\"#ADB1C2\"}},{\"scope\":[\"source.ocaml markup.underline\"],\"settings\":{\"fontStyle\":\"\"}},{\"scope\":[\"source.ocaml punctuation.definition.tag emphasis\",\"source.ocaml entity.name.class constant.numeric\",\"source.ocaml support.type\"],\"settings\":{\"foreground\":\"#F767BB\"}},{\"scope\":[\"source.ocaml constant.numeric entity.other.attribute-name\"],\"settings\":{\"foreground\":\"#13BBB7\"}},{\"scope\":[\"source.ocaml comment meta.separator\"],\"settings\":{\"foreground\":\"#ADB1C2\"}},{\"scope\":[\"source.ocaml support.type strong\",\"source.ocaml keyword.control strong\"],\"settings\":{\"foreground\":\"#ADB1C2\"}},{\"scope\":[\"source.ocaml support.constant.property-value\"],\"settings\":{\"foreground\":\"#11658F\"}},{\"scope\":[\"source.scala entity.name.class\"],\"settings\":{\"foreground\":\"#13BBB7\"}},{\"scope\":[\"storage.type.scala\"],\"settings\":{\"foreground\":\"#2DAE58\"}},{\"scope\":[\"variable.parameter.scala\"],\"settings\":{\"foreground\":\"#11658F\"}},{\"scope\":[\"meta.bracket.scala\",\"meta.colon.scala\"],\"settings\":{\"foreground\":\"#ADB1C2\"}},{\"scope\":[\"meta.metadata.simple.clojure\"],\"settings\":{\"foreground\":\"#ADB1C2\"}},{\"scope\":[\"meta.metadata.simple.clojure meta.symbol\"],\"settings\":{\"foreground\":\"#13BBB7\"}},{\"scope\":[\"source.r keyword.other\"],\"settings\":{\"foreground\":\"#ADB1C2\"}},{\"scope\":[\"source.svelte meta.block.ts entity.name.label\"],\"settings\":{\"foreground\":\"#11658F\"}},{\"scope\":[\"keyword.operator.word.applescript\"],\"settings\":{\"foreground\":\"#F767BB\"}},{\"scope\":[\"meta.function-call.livescript\"],\"settings\":{\"foreground\":\"#09A1ED\"}},{\"scope\":[\"variable.language.self.lua\"],\"settings\":{\"foreground\":\"#13BBB7\"}},{\"scope\":[\"entity.name.type.class.swift\",\"meta.inheritance-clause.swift\",\"meta.import.swift entity.name.type\"],\"settings\":{\"foreground\":\"#13BBB7\"}},{\"scope\":[\"source.swift punctuation.section.embedded\"],\"settings\":{\"foreground\":\"#B38700\"}},{\"scope\":[\"variable.parameter.function.swift entity.name.function.swift\"],\"settings\":{\"foreground\":\"#565869\"}},{\"scope\":\"meta.function-call.twig\",\"settings\":{\"foreground\":\"#565869\"}},{\"scope\":\"string.unquoted.tag-string.django\",\"settings\":{\"foreground\":\"#565869\"}},{\"scope\":[\"entity.tag.tagbraces.django\",\"entity.tag.filter-pipe.django\"],\"settings\":{\"foreground\":\"#ADB1C2\"}},{\"scope\":[\"meta.section.attributes.haml constant.language\",\"meta.section.attributes.plain.haml constant.other.symbol\"],\"settings\":{\"foreground\":\"#FF8380\"}},{\"scope\":[\"meta.prolog.haml\"],\"settings\":{\"foreground\":\"#9194A2\"}},{\"scope\":[\"support.constant.handlebars\"],\"settings\":{\"foreground\":\"#ADB1C2\"}},{\"scope\":\"text.log log.constant\",\"settings\":{\"foreground\":\"#C25193\"}},{\"scope\":[\"source.c string constant.other.placeholder\",\"source.cpp string constant.other.placeholder\"],\"settings\":{\"foreground\":\"#B38700\"}},{\"scope\":\"constant.other.key.groovy\",\"settings\":{\"foreground\":\"#11658F\"}},{\"scope\":\"storage.type.groovy\",\"settings\":{\"foreground\":\"#13BBB7\"}},{\"scope\":\"meta.definition.variable.groovy storage.type.groovy\",\"settings\":{\"foreground\":\"#2DAE58\"}},{\"scope\":\"storage.modifier.import.groovy\",\"settings\":{\"foreground\":\"#CF9C00\"}},{\"scope\":[\"entity.other.attribute-name.class.pug\",\"entity.other.attribute-name.id.pug\"],\"settings\":{\"foreground\":\"#13BBB7\"}},{\"scope\":[\"constant.name.attribute.tag.pug\"],\"settings\":{\"foreground\":\"#ADB1C2\"}},{\"scope\":\"entity.name.tag.style.html\",\"settings\":{\"foreground\":\"#13BBB7\"}},{\"scope\":\"entity.name.type.wasm\",\"settings\":{\"foreground\":\"#2DAE58\"}}],\"type\":\"light\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BwHcMc3Y.js",
    "content": "import{_ as me}from\"./Dr_JbmT0.js\";import{d as ve,a6 as fe,a4 as pe,A as _e,c as k,r as u,J as ye,B as he,w as N,a7 as ge,a8 as P,h as S,C as V,j as l,i as t,x as a,E as z,e as be,D as _,F as we,O as xe,f as A,t as ke,k as Se,a9 as Ve,aa as Ce,_ as Te,g as h,ab as Le,I as O,s as B}from\"./CU_MfyYc.js\";import{_ as Ue}from\"./CvhZxjKo.js\";import{_ as Me}from\"./DPg46dy1.js\";import{_ as qe}from\"./_FEXNRsZ.js\";import{u as De}from\"./Cwg39VG_.js\";import\"./C6794tGI.js\";import\"./Cw4FHd9N.js\";import\"./BuljS_lV.js\";import\"./DP9I38t9.js\";import\"./DK27pemE.js\";const Ne={class:\"w-full\"},Pe={class:\"container mx-auto px-4 pt-16 pb-6 max-w-7xl\"},Re={class:\"mb-6 flex flex-col gap-4 md:flex-row md:items-center md:justify-between\"},Fe={class:\"flex items-center gap-3\"},$e={class:\"flex flex-col gap-3 sm:flex-row sm:items-center\"},je={key:0,class:\"space-y-4\"},ze={class:\"bg-white dark:bg-gray-800 shadow rounded-lg overflow-hidden\"},Ae={class:\"divide-y divide-gray-200 dark:divide-gray-700\"},Be={class:\"hidden md:grid md:grid-cols-12 gap-4 items-center\"},Oe={class:\"col-span-3\"},He={class:\"col-span-2\"},Ee={class:\"col-span-1 text-center\"},Je={class:\"col-span-2 text-center\"},Ge={class:\"col-span-2\"},We={class:\"col-span-2 flex justify-end gap-2\"},Ke={class:\"md:hidden space-y-3\"},Qe={class:\"flex items-start justify-between\"},Xe={class:\"flex-1\"},Ye={class:\"flex items-center justify-between\"},Ze={class:\"flex items-center justify-between\"},Ie={class:\"flex gap-1\"},es={key:1,class:\"space-y-4\"},ss={key:0,class:\"flex justify-center\"},ls={key:2,class:\"bg-white dark:bg-gray-800 shadow rounded-lg p-12 text-center\"},ts={class:\"p-6\"},as={class:\"mb-6\"},os={class:\"flex justify-end gap-3\"},R=50,hs=ve({__name:\"history\",setup(ns){De({title:\"Sessions History - Jesse\"});const m=fe(),U=pe(),y=_e(),H=k(()=>y.tabs),r=u([]),C=u(!1),T=u(null),M=u(!1),F=u(!1),$=u(!0),d=u(0),q=u(!1),c=u(null),g=u(!1),j=u(!1),b=u(30),w=k({get:()=>m.query.title||\"\",set:s=>{const e={...m.query};s?e.title=s:delete e.title,U.push({query:e})}}),v=k({get:()=>m.query.status||\"all\",set:s=>{const e={...m.query};s===\"all\"?delete e.status:e.status=s,U.push({query:e})}}),f=k({get:()=>m.query.mode||\"all\",set:s=>{const e={...m.query};s===\"all\"?delete e.mode:e.mode=s,U.push({query:e})}}),p=k({get:()=>m.query.dateRange||\"all_time\",set:s=>{const e={...m.query};s===\"all_time\"?delete e.dateRange:e.dateRange=s,U.push({query:e})}}),E=[{label:\"All Statuses\",value:\"all\"},{label:\"Running\",value:\"running\"},{label:\"Stopped\",value:\"stopped\"},{label:\"Terminated\",value:\"terminated\"}],J=[{label:\"All Modes\",value:\"all\"},{label:\"Live Trading\",value:\"livetrade\"},{label:\"Paper Trading\",value:\"papertrade\"}],G=[{label:\"All Time\",value:\"all_time\"},{label:\"Last 7 Days\",value:\"7_days\"},{label:\"Last 30 Days\",value:\"30_days\"},{label:\"Last 90 Days\",value:\"90_days\"}],W=[{label:\"1 day\",value:1},{label:\"7 days\",value:7},{label:\"30 days\",value:30},{label:\"3 months\",value:90},{label:\"6 months\",value:180},{label:\"1 year\",value:365},{label:\"2 years\",value:730},{label:\"All existing sessions\",value:-1}],K=k(()=>r.value.map(s=>({...s,updated_at:ye.timestampToReadableDateTime(s.updated_at)})));he(()=>{setTimeout(()=>{x()},20)});const Q=ge(()=>{d.value=0,x()},300);N(w,()=>{Q()}),N(v,()=>{d.value=0,x()}),N(f,()=>{d.value=0,x()}),N(p,()=>{d.value=0,x()});async function x(){var s;M.value=!0;try{const i=(await P(\"/live/sessions\",{limit:R,offset:0,title_search:w.value||null,status_filter:v.value===\"all\"?null:v.value,mode_filter:f.value===\"all\"?null:f.value,date_filter:p.value===\"all_time\"?null:p.value},!0)).data.value;r.value=(i==null?void 0:i.sessions)||[],d.value=r.value.length,$.value=((s=i==null?void 0:i.sessions)==null?void 0:s.length)===R}catch(e){S(e)}finally{M.value=!1}}async function X(){F.value=!0;try{const e=(await P(\"/live/sessions\",{limit:R,offset:d.value,title_search:w.value||null,status_filter:v.value===\"all\"?null:v.value,mode_filter:f.value===\"all\"?null:f.value,date_filter:p.value===\"all_time\"?null:p.value},!0)).data.value,i=(e==null?void 0:e.sessions)||[];r.value=[...r.value,...i],d.value+=i.length,$.value=i.length===R}catch(s){S(s)}finally{F.value=!1}}function Y(s){le(s.rawSession)}async function Z(s){if(y.tabs[s]){await O(`/live/${s}`);return}await y.loadSession(s)&&(await y.ensureTab(s),await O(`/live/${s}`))}function I(s){T.value=s,C.value=!0}async function ee(){T.value&&(await se(T.value),r.value=r.value.filter(s=>s.id!==T.value),d.value-=1),C.value=!1,T.value=null}async function se(s){if(y.tabs[s]){B(\"error\",\"Cannot delete a session that is currently open in a tab. Close the tab first.\");return}try{const e=await P(`/live/sessions/${s}/remove`,{},!0);if(e.error.value){S(e.error.value);return}B(\"success\",\"Session deleted successfully\")}catch(e){S(e)}}function le(s){c.value=s,q.value=!0}async function te(){j.value=!0;try{const s=await P(\"/live/purge-sessions\",{days_old:b.value===-1?null:b.value},!0);if(s.error.value){S(s.error.value);return}const e=s.data.value;B(\"success\",`Successfully purged ${e.deleted_count} session(s)`),g.value=!1,d.value=0,await x()}catch(s){S(s)}finally{j.value=!1}}function ae(){g.value=!1,b.value=30}function oe(s){if(c.value){const e=r.value.find(i=>i.id===c.value.id);e&&(e.title=s.title,e.description=s.description,c.value.title=s.title,c.value.description=s.description)}}return(s,e)=>{const i=me,L=ke,ne=Se,D=Ve,o=Ue,ie=Me,ue=Ce,re=qe,de=Le,ce=Te;return h(),V(\"div\",null,[l(\"div\",Ne,[t(i,{\"current-tab\":null,tabs:a(H),onClose:a(y).closeTab,onCancel:a(y).cancel},null,8,[\"tabs\",\"onClose\",\"onCancel\"])]),l(\"div\",Pe,[l(\"div\",Re,[l(\"div\",Fe,[e[9]||(e[9]=l(\"h1\",{class:\"text-xl md:text-2xl font-bold text-gray-900 dark:text-white\"},\" Sessions History \",-1)),t(L,{icon:\"i-heroicons-trash\",color:\"red\",variant:\"soft\",size:\"sm\",label:\"Purge\",onClick:e[0]||(e[0]=n=>g.value=!0)})]),l(\"div\",$e,[t(ne,{modelValue:a(w),\"onUpdate:modelValue\":e[1]||(e[1]=n=>_(w)?w.value=n:null),placeholder:\"Search by title...\",icon:\"i-heroicons-magnifying-glass\",size:\"sm\",class:\"w-full sm:w-64\"},null,8,[\"modelValue\"]),t(D,{modelValue:a(v),\"onUpdate:modelValue\":e[2]||(e[2]=n=>_(v)?v.value=n:null),options:E,size:\"sm\",class:\"w-full sm:w-40\"},null,8,[\"modelValue\"]),t(D,{modelValue:a(f),\"onUpdate:modelValue\":e[3]||(e[3]=n=>_(f)?f.value=n:null),options:J,size:\"sm\",class:\"w-full sm:w-40\"},null,8,[\"modelValue\"]),t(D,{modelValue:a(p),\"onUpdate:modelValue\":e[4]||(e[4]=n=>_(p)?p.value=n:null),options:G,size:\"sm\",class:\"w-full sm:w-40\"},null,8,[\"modelValue\"])])]),a(M)?(h(),V(\"div\",je,[l(\"div\",ze,[l(\"div\",Ae,[(h(),V(we,null,xe(5,n=>l(\"div\",{key:n,class:\"p-4\"},[l(\"div\",Be,[l(\"div\",Oe,[t(o,{class:\"h-4 w-full mb-2\"}),t(o,{class:\"h-3 w-2/3\"})]),l(\"div\",He,[t(o,{class:\"h-4 w-full mb-2\"}),t(o,{class:\"h-3 w-2/3\"})]),l(\"div\",Ee,[t(o,{class:\"h-6 w-16 mx-auto\"})]),l(\"div\",Je,[t(o,{class:\"h-6 w-20 mx-auto\"})]),l(\"div\",Ge,[t(o,{class:\"h-4 w-full\"})]),l(\"div\",We,[t(o,{class:\"h-8 w-8\"}),t(o,{class:\"h-8 w-8\"}),t(o,{class:\"h-8 w-8\"})])]),l(\"div\",Ke,[l(\"div\",Qe,[l(\"div\",Xe,[t(o,{class:\"h-4 w-3/4 mb-2\"}),t(o,{class:\"h-3 w-1/2\"})]),t(o,{class:\"h-6 w-16 ml-2\"})]),l(\"div\",Ye,[t(o,{class:\"h-4 w-24\"}),t(o,{class:\"h-4 w-16\"})]),l(\"div\",Ze,[t(o,{class:\"h-3 w-32\"}),l(\"div\",Ie,[t(o,{class:\"h-8 w-8\"}),t(o,{class:\"h-8 w-8\"}),t(o,{class:\"h-8 w-8\"})])])])])),64))])])])):a(r).length?(h(),V(\"div\",es,[t(ie,{sessions:a(K),\"show-history-actions\":!0,onNotes:Y,onLoad:Z,onDelete:I},null,8,[\"sessions\"]),a($)?(h(),V(\"div\",ss,[t(L,{label:\"Load More\",variant:\"soft\",color:\"gray\",loading:a(F),onClick:X},null,8,[\"loading\"])])):z(\"\",!0)])):!a(M)&&a(r).length===0?(h(),V(\"div\",ls,e[10]||(e[10]=[l(\"div\",{class:\"text-gray-400 dark:text-gray-500\"},[l(\"i\",{class:\"i-heroicons-clock h-12 w-12 mx-auto mb-4\"}),l(\"p\",{class:\"text-lg\"},\"No live trading history found\"),l(\"p\",{class:\"text-sm mt-2\"},\"Start a live session or change filters to see items in your history\")],-1)]))):z(\"\",!0),t(ue,{modelValue:a(C),\"onUpdate:modelValue\":e[5]||(e[5]=n=>_(C)?C.value=n:null),title:\"Delete Live Session\",description:\"Are you sure you want to delete this live session? This action cannot be undone.\",type:\"info\"},{default:A(()=>[t(L,{variant:\"solid\",color:\"red\",block:\"\",class:\"sm:w-auto\",label:\"Delete\",onClick:ee})]),_:1},8,[\"modelValue\"]),a(c)?(h(),be(re,{key:3,modelValue:a(q),\"onUpdate:modelValue\":e[6]||(e[6]=n=>_(q)?q.value=n:null),\"session-id\":a(c).id,\"initial-title\":a(c).title,\"initial-description\":a(c).description,onSaved:oe},null,8,[\"modelValue\",\"session-id\",\"initial-title\",\"initial-description\"])):z(\"\",!0),t(ce,{modelValue:a(g),\"onUpdate:modelValue\":e[8]||(e[8]=n=>_(g)?g.value=n:null)},{default:A(()=>[l(\"div\",ts,[e[13]||(e[13]=l(\"h3\",{class:\"text-lg font-semibold text-gray-900 dark:text-white mb-4\"},\" Purge Live Sessions \",-1)),l(\"div\",as,[e[11]||(e[11]=l(\"div\",{class:\"bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-4 mb-4\"},[l(\"div\",{class:\"flex items-start gap-3\"},[l(\"i\",{class:\"i-heroicons-exclamation-triangle text-red-600 dark:text-red-400 text-xl flex-shrink-0 mt-0.5\"}),l(\"div\",{class:\"text-sm text-red-800 dark:text-red-200\"},[l(\"p\",{class:\"font-semibold mb-1\"},\" Warning: This action is permanent! \"),l(\"p\",null,\"Deleted sessions cannot be recovered. Please select carefully.\")])])],-1)),t(de,{label:\"Delete sessions older than:\",class:\"mb-4\"},{default:A(()=>[t(D,{modelValue:a(b),\"onUpdate:modelValue\":e[7]||(e[7]=n=>_(b)?b.value=n:null),options:W,size:\"md\"},null,8,[\"modelValue\"])]),_:1}),e[12]||(e[12]=l(\"p\",{class:\"text-sm text-gray-600 dark:text-gray-400\"},\" This will permanently delete all live sessions that match your criteria. \",-1))]),l(\"div\",os,[t(L,{color:\"gray\",variant:\"ghost\",label:\"Cancel\",onClick:ae}),t(L,{color:\"red\",label:\"Purge Sessions\",loading:a(j),onClick:te},null,8,[\"loading\"])])])]),_:1},8,[\"modelValue\"])])])}}});export{hs as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BwXTMy5W.js",
    "content": "const n=Object.freeze(JSON.parse(`{\"displayName\":\"Beancount\",\"fileTypes\":[\"beancount\"],\"name\":\"beancount\",\"patterns\":[{\"comment\":\"Comments\",\"match\":\";.*\",\"name\":\"comment.line.beancount\"},{\"begin\":\"^\\\\\\\\s*(poptag|pushtag)\\\\\\\\s+(#)([A-Za-z0-9\\\\\\\\-_/.]+)\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.beancount\"},\"2\":{\"name\":\"keyword.operator.tag.beancount\"},\"3\":{\"name\":\"entity.name.tag.beancount\"}},\"comment\":\"Tag directive\",\"end\":\"(?=(^\\\\\\\\s*$|^\\\\\\\\S))\",\"name\":\"meta.directive.tag.beancount\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#illegal\"}]},{\"begin\":\"^\\\\\\\\s*(include)\\\\\\\\s+(\\\\\\\\\\\\\".*\\\\\\\\\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.beancount\"},\"2\":{\"name\":\"string.quoted.double.beancount\"}},\"comment\":\"Include directive\",\"end\":\"(?=(^\\\\\\\\s*$|^\\\\\\\\S))\",\"name\":\"meta.directive.include.beancount\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#illegal\"}]},{\"begin\":\"^\\\\\\\\s*(option)\\\\\\\\s+(\\\\\\\\\\\\\".*\\\\\\\\\\\\\")\\\\\\\\s+(\\\\\\\\\\\\\".*\\\\\\\\\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.beancount\"},\"2\":{\"name\":\"support.variable.beancount\"},\"3\":{\"name\":\"string.quoted.double.beancount\"}},\"comment\":\"Option directive\",\"end\":\"(?=(^\\\\\\\\s*$|^\\\\\\\\S))\",\"name\":\"meta.directive.option.beancount\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#illegal\"}]},{\"begin\":\"^\\\\\\\\s*(plugin)\\\\\\\\s*(\\\\\"(.*?)\\\\\")\\\\\\\\s*(\\\\\".*?\\\\\")?\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.beancount\"},\"2\":{\"name\":\"string.quoted.double.beancount\"},\"3\":{\"name\":\"entity.name.function.beancount\"},\"4\":{\"name\":\"string.quoted.double.beancount\"}},\"comment\":\"Plugin directive\",\"end\":\"(?=(^\\\\\\\\s*$|^\\\\\\\\S))\",\"name\":\"keyword.operator.directive.beancount\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#illegal\"}]},{\"begin\":\"([0-9]{4})([\\\\\\\\-|/])([0-9]{2})([\\\\\\\\-|/])([0-9]{2})\\\\\\\\s+(open|close|pad)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"constant.numeric.date.year.beancount\"},\"2\":{\"name\":\"punctuation.separator.beancount\"},\"3\":{\"name\":\"constant.numeric.date.month.beancount\"},\"4\":{\"name\":\"punctuation.separator.beancount\"},\"5\":{\"name\":\"constant.numeric.date.day.beancount\"},\"6\":{\"name\":\"support.function.beancount\"}},\"comment\":\"Open/Close/Pad directive\",\"end\":\"(?=(^\\\\\\\\s*$|^\\\\\\\\S))\",\"name\":\"meta.directive.dated.beancount\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#meta\"},{\"include\":\"#account\"},{\"include\":\"#commodity\"},{\"match\":\"\\\\\\\\,\",\"name\":\"punctuation.separator.beancount\"},{\"include\":\"#illegal\"}]},{\"begin\":\"([0-9]{4})([\\\\\\\\-|/])([0-9]{2})([\\\\\\\\-|/])([0-9]{2})\\\\\\\\s+(custom)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"constant.numeric.date.year.beancount\"},\"2\":{\"name\":\"punctuation.separator.beancount\"},\"3\":{\"name\":\"constant.numeric.date.month.beancount\"},\"4\":{\"name\":\"punctuation.separator.beancount\"},\"5\":{\"name\":\"constant.numeric.date.day.beancount\"},\"6\":{\"name\":\"support.function.beancount\"}},\"comment\":\"Custom directive\",\"end\":\"(?=(^\\\\\\\\s*$|^\\\\\\\\S))\",\"name\":\"meta.directive.dated.beancount\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#meta\"},{\"include\":\"#string\"},{\"include\":\"#bool\"},{\"include\":\"#amount\"},{\"include\":\"#number\"},{\"include\":\"#date\"},{\"include\":\"#account\"},{\"include\":\"#illegal\"}]},{\"begin\":\"([0-9]{4})([\\\\\\\\-|/])([0-9]{2})([\\\\\\\\-|/])([0-9]{2})\\\\\\\\s(event)\",\"beginCaptures\":{\"1\":{\"name\":\"constant.numeric.date.year.beancount\"},\"2\":{\"name\":\"punctuation.separator.beancount\"},\"3\":{\"name\":\"constant.numeric.date.month.beancount\"},\"4\":{\"name\":\"punctuation.separator.beancount\"},\"5\":{\"name\":\"constant.numeric.date.day.beancount\"},\"6\":{\"name\":\"support.function.directive.beancount\"}},\"comment\":\"Event directive\",\"end\":\"(?=(^\\\\\\\\s*$|^\\\\\\\\S))\",\"name\":\"meta.directive.dated.beancount\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#meta\"},{\"include\":\"#string\"},{\"include\":\"#illegal\"}]},{\"begin\":\"([0-9]{4})([\\\\\\\\-|/])([0-9]{2})([\\\\\\\\-|/])([0-9]{2})\\\\\\\\s(commodity)\",\"beginCaptures\":{\"1\":{\"name\":\"constant.numeric.date.year.beancount\"},\"2\":{\"name\":\"punctuation.separator.beancount\"},\"3\":{\"name\":\"constant.numeric.date.month.beancount\"},\"4\":{\"name\":\"punctuation.separator.beancount\"},\"5\":{\"name\":\"constant.numeric.date.day.beancount\"},\"6\":{\"name\":\"support.function.directive.beancount\"}},\"comment\":\"Commodity directive\",\"end\":\"(?=(^\\\\\\\\s*$|^\\\\\\\\S))\",\"name\":\"meta.directive.dated.beancount\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#meta\"},{\"include\":\"#commodity\"},{\"include\":\"#illegal\"}]},{\"begin\":\"([0-9]{4})([\\\\\\\\-|/])([0-9]{2})([\\\\\\\\-|/])([0-9]{2})\\\\\\\\s(note|document)\",\"beginCaptures\":{\"1\":{\"name\":\"constant.numeric.date.year.beancount\"},\"2\":{\"name\":\"punctuation.separator.beancount\"},\"3\":{\"name\":\"constant.numeric.date.month.beancount\"},\"4\":{\"name\":\"punctuation.separator.beancount\"},\"5\":{\"name\":\"constant.numeric.date.day.beancount\"},\"6\":{\"name\":\"support.function.directive.beancount\"}},\"comment\":\"Note/Document directive\",\"end\":\"(?=(^\\\\\\\\s*$|^\\\\\\\\S))\",\"name\":\"meta.directive.dated.beancount\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#meta\"},{\"include\":\"#account\"},{\"include\":\"#string\"},{\"include\":\"#illegal\"}]},{\"begin\":\"([0-9]{4})([\\\\\\\\-|/])([0-9]{2})([\\\\\\\\-|/])([0-9]{2})\\\\\\\\s(price)\",\"beginCaptures\":{\"1\":{\"name\":\"constant.numeric.date.year.beancount\"},\"2\":{\"name\":\"punctuation.separator.beancount\"},\"3\":{\"name\":\"constant.numeric.date.month.beancount\"},\"4\":{\"name\":\"punctuation.separator.beancount\"},\"5\":{\"name\":\"constant.numeric.date.day.beancount\"},\"6\":{\"name\":\"support.function.directive.beancount\"}},\"comment\":\"Price directives\",\"end\":\"(?=(^\\\\\\\\s*$|^\\\\\\\\S))\",\"name\":\"meta.directive.dated.beancount\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#meta\"},{\"include\":\"#commodity\"},{\"include\":\"#amount\"},{\"include\":\"#illegal\"}]},{\"begin\":\"([0-9]{4})([\\\\\\\\-|/])([0-9]{2})([\\\\\\\\-|/])([0-9]{2})\\\\\\\\s(balance)\",\"beginCaptures\":{\"1\":{\"name\":\"constant.numeric.date.year.beancount\"},\"2\":{\"name\":\"punctuation.separator.beancount\"},\"3\":{\"name\":\"constant.numeric.date.month.beancount\"},\"4\":{\"name\":\"punctuation.separator.beancount\"},\"5\":{\"name\":\"constant.numeric.date.day.beancount\"},\"6\":{\"name\":\"support.function.directive.beancount\"}},\"comment\":\"Balance directives\",\"end\":\"(?=(^\\\\\\\\s*$|^\\\\\\\\S))\",\"name\":\"meta.directive.dated.beancount\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#meta\"},{\"include\":\"#account\"},{\"include\":\"#amount\"},{\"include\":\"#illegal\"}]},{\"begin\":\"([0-9]{4})([\\\\\\\\-|/])([0-9]{2})([\\\\\\\\-|/])([0-9]{2})\\\\\\\\s*(txn|[*!&#?%PSTCURM])\\\\\\\\s*(\\\\\".*?\\\\\")?\\\\\\\\s*(\\\\\".*?\\\\\")?\",\"beginCaptures\":{\"1\":{\"name\":\"constant.numeric.date.year.beancount\"},\"2\":{\"name\":\"punctuation.separator.beancount\"},\"3\":{\"name\":\"constant.numeric.date.month.beancount\"},\"4\":{\"name\":\"punctuation.separator.beancount\"},\"5\":{\"name\":\"constant.numeric.date.day.beancount\"},\"6\":{\"name\":\"support.function.directive.beancount\"},\"7\":{\"name\":\"string.quoted.tiers.beancount\"},\"8\":{\"name\":\"string.quoted.narration.beancount\"}},\"comment\":\"Transaction directive\",\"end\":\"(?=(^\\\\\\\\s*$|^\\\\\\\\S))\",\"name\":\"meta.directive.transaction.beancount\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#posting\"},{\"include\":\"#meta\"},{\"include\":\"#tag\"},{\"include\":\"#link\"},{\"include\":\"#illegal\"}]}],\"repository\":{\"account\":{\"begin\":\"([A-Z][a-z]+)(:)\",\"beginCaptures\":{\"1\":{\"name\":\"variable.language.beancount\"},\"2\":{\"name\":\"punctuation.separator.beancount\"}},\"end\":\"\\\\\\\\s\",\"name\":\"meta.account.beancount\",\"patterns\":[{\"begin\":\"(\\\\\\\\S+)([:]?)\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.account.beancount\"},\"2\":{\"name\":\"punctuation.separator.beancount\"}},\"comment\":\"Sub accounts\",\"end\":\"([:]?)|(\\\\\\\\s)\",\"patterns\":[{\"include\":\"$self\"},{\"include\":\"#illegal\"}]}]},\"amount\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.modifier.beancount\"},\"2\":{\"name\":\"constant.numeric.currency.beancount\"},\"3\":{\"name\":\"entity.name.type.commodity.beancount\"}},\"match\":\"([\\\\\\\\-|\\\\\\\\+]?)(\\\\\\\\d+(?:,\\\\\\\\d{3})*(?:\\\\\\\\.\\\\\\\\d*)?)\\\\\\\\s*([A-Z][A-Z0-9\\\\\\\\'\\\\\\\\.\\\\\\\\_\\\\\\\\-]{0,22}[A-Z0-9])\",\"name\":\"meta.amount.beancount\"},\"bool\":{\"captures\":{\"0\":{\"name\":\"constant.language.bool.beancount\"},\"2\":{\"name\":\"constant.numeric.currency.beancount\"},\"3\":{\"name\":\"entity.name.type.commodity.beancount\"}},\"match\":\"TRUE|FALSE\"},\"comments\":{\"captures\":{\"1\":{\"name\":\"comment.line.beancount\"}},\"match\":\"(;.*)$\"},\"commodity\":{\"match\":\"([A-Z][A-Z0-9\\\\\\\\'\\\\\\\\.\\\\\\\\_\\\\\\\\-]{0,22}[A-Z0-9])\",\"name\":\"entity.name.type.commodity.beancount\"},\"cost\":{\"begin\":\"\\\\\\\\{\\\\\\\\{?\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.assignment.beancount\"}},\"end\":\"\\\\\\\\}\\\\\\\\}?\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.assignment.beancount\"}},\"name\":\"meta.cost.beancount\",\"patterns\":[{\"include\":\"#amount\"},{\"include\":\"#date\"},{\"match\":\"\\\\\\\\,\",\"name\":\"punctuation.separator.beancount\"},{\"include\":\"#illegal\"}]},\"date\":{\"captures\":{\"1\":{\"name\":\"constant.numeric.date.year.beancount\"},\"2\":{\"name\":\"punctuation.separator.beancount\"},\"3\":{\"name\":\"constant.numeric.date.month.beancount\"},\"4\":{\"name\":\"punctuation.separator.beancount\"},\"5\":{\"name\":\"constant.numeric.date.day.beancount\"}},\"match\":\"([0-9]{4})([\\\\\\\\-|/])([0-9]{2})([\\\\\\\\-|/])([0-9]{2})\",\"name\":\"meta.date.beancount\"},\"flag\":{\"match\":\"(?<=\\\\\\\\s)([*!&#?%PSTCURM])(?=\\\\\\\\s+)\",\"name\":\"keyword.other.beancount\"},\"illegal\":{\"match\":\"[^\\\\\\\\s]\",\"name\":\"invalid.illegal.unrecognized.beancount\"},\"link\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.link.beancount\"},\"2\":{\"name\":\"markup.underline.link.beancount\"}},\"match\":\"(\\\\\\\\^)([A-Za-z0-9\\\\\\\\-_/.]+)\"},\"meta\":{\"begin\":\"^\\\\\\\\s*([a-z][A-Za-z0-9\\\\\\\\-_]+)([:])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.directive.beancount\"},\"2\":{\"name\":\"punctuation.separator.beancount\"}},\"end\":\"\\\\\\\\n\",\"name\":\"meta.meta.beancount\",\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#account\"},{\"include\":\"#bool\"},{\"include\":\"#commodity\"},{\"include\":\"#date\"},{\"include\":\"#tag\"},{\"include\":\"#amount\"},{\"include\":\"#number\"},{\"include\":\"#comments\"},{\"include\":\"#illegal\"}]},\"number\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.modifier.beancount\"},\"2\":{\"name\":\"constant.numeric.currency.beancount\"}},\"match\":\"([\\\\\\\\-|\\\\\\\\+]?)(\\\\\\\\d+(?:,\\\\\\\\d{3})*(?:\\\\\\\\.\\\\\\\\d*)?)\"},\"posting\":{\"begin\":\"^\\\\\\\\s+(?=([A-Z\\\\\\\\!]))\",\"end\":\"(?=(^\\\\\\\\s*$|^\\\\\\\\S|^\\\\\\\\s*[A-Z]))\",\"name\":\"meta.posting.beancount\",\"patterns\":[{\"include\":\"#meta\"},{\"include\":\"#comments\"},{\"include\":\"#flag\"},{\"include\":\"#account\"},{\"include\":\"#amount\"},{\"include\":\"#cost\"},{\"include\":\"#date\"},{\"include\":\"#price\"},{\"include\":\"#illegal\"}]},\"price\":{\"begin\":\"\\\\\\\\@\\\\\\\\@?\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.assignment.beancount\"}},\"end\":\"(?=(;|\\\\\\\\n))\",\"name\":\"meta.price.beancount\",\"patterns\":[{\"include\":\"#amount\"},{\"include\":\"#illegal\"}]},\"string\":{\"begin\":\"\\\\\\\\\\\\\"\",\"end\":\"\\\\\\\\\\\\\"\",\"name\":\"string.quoted.double.beancount\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.beancount\"}]},\"tag\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.tag.beancount\"},\"2\":{\"name\":\"entity.name.tag.beancount\"}},\"match\":\"(#)([A-Za-z0-9\\\\\\\\-_/.]+)\"}},\"scopeName\":\"text.beancount\"}`)),e=[n];export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/BygKL3ZF.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"#\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"\"\"',close:'\"\"\"',notIn:[\"string\",\"comment\"]},{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"\"\"',close:'\"\"\"'},{open:'\"',close:'\"'}],folding:{offSide:!0}},n={defaultToken:\"invalid\",tokenPostfix:\".gql\",keywords:[\"null\",\"true\",\"false\",\"query\",\"mutation\",\"subscription\",\"extend\",\"schema\",\"directive\",\"scalar\",\"type\",\"interface\",\"union\",\"enum\",\"input\",\"implements\",\"fragment\",\"on\"],typeKeywords:[\"Int\",\"Float\",\"String\",\"Boolean\",\"ID\"],directiveLocations:[\"SCHEMA\",\"SCALAR\",\"OBJECT\",\"FIELD_DEFINITION\",\"ARGUMENT_DEFINITION\",\"INTERFACE\",\"UNION\",\"ENUM\",\"ENUM_VALUE\",\"INPUT_OBJECT\",\"INPUT_FIELD_DEFINITION\",\"QUERY\",\"MUTATION\",\"SUBSCRIPTION\",\"FIELD\",\"FRAGMENT_DEFINITION\",\"FRAGMENT_SPREAD\",\"INLINE_FRAGMENT\",\"VARIABLE_DEFINITION\"],operators:[\"=\",\"!\",\"?\",\":\",\"&\",\"|\"],symbols:/[=!?:&|]+/,escapes:/\\\\(?:[\"\\\\\\/bfnrt]|u[0-9A-Fa-f]{4})/,tokenizer:{root:[[/[a-z_][\\w$]*/,{cases:{\"@keywords\":\"keyword\",\"@default\":\"key.identifier\"}}],[/[$][\\w$]*/,{cases:{\"@keywords\":\"keyword\",\"@default\":\"argument.identifier\"}}],[/[A-Z][\\w\\$]*/,{cases:{\"@typeKeywords\":\"keyword\",\"@default\":\"type.identifier\"}}],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"operator\",\"@default\":\"\"}}],[/@\\s*[a-zA-Z_\\$][\\w\\$]*/,{token:\"annotation\",log:\"annotation token: $0\"}],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F]+/,\"number.hex\"],[/\\d+/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"\"\"/,{token:\"string\",next:\"@mlstring\",nextEmbedded:\"markdown\"}],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,{token:\"string.quote\",bracket:\"@open\",next:\"@string\"}]],mlstring:[[/[^\"]+/,\"string\"],['\"\"\"',{token:\"string\",next:\"@pop\",nextEmbedded:\"@pop\"}]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,{token:\"string.quote\",bracket:\"@close\",next:\"@pop\"}]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/#.*$/,\"comment\"]]}};export{e as conf,n as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/BypH-vXm.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"#\"}},t={defaultToken:\"keyword\",ignoreCase:!0,tokenPostfix:\".azcli\",str:/[^#\\s]/,tokenizer:{root:[{include:\"@comment\"},[/\\s-+@str*\\s*/,{cases:{\"@eos\":{token:\"key.identifier\",next:\"@popall\"},\"@default\":{token:\"key.identifier\",next:\"@type\"}}}],[/^-+@str*\\s*/,{cases:{\"@eos\":{token:\"key.identifier\",next:\"@popall\"},\"@default\":{token:\"key.identifier\",next:\"@type\"}}}]],type:[{include:\"@comment\"},[/-+@str*\\s*/,{cases:{\"@eos\":{token:\"key.identifier\",next:\"@popall\"},\"@default\":\"key.identifier\"}}],[/@str+\\s*/,{cases:{\"@eos\":{token:\"string\",next:\"@popall\"},\"@default\":\"string\"}}]],comment:[[/#.*$/,{cases:{\"@eos\":{token:\"comment\",next:\"@popall\"}}}]]}};export{e as conf,t as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/BzJJZx-M.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBackground\":\"#BD93F910\",\"activityBar.activeBorder\":\"#FF79C680\",\"activityBar.background\":\"#343746\",\"activityBar.foreground\":\"#F8F8F2\",\"activityBar.inactiveForeground\":\"#6272A4\",\"activityBarBadge.background\":\"#FF79C6\",\"activityBarBadge.foreground\":\"#F8F8F2\",\"badge.background\":\"#44475A\",\"badge.foreground\":\"#F8F8F2\",\"breadcrumb.activeSelectionForeground\":\"#F8F8F2\",\"breadcrumb.background\":\"#282A36\",\"breadcrumb.focusForeground\":\"#F8F8F2\",\"breadcrumb.foreground\":\"#6272A4\",\"breadcrumbPicker.background\":\"#191A21\",\"button.background\":\"#44475A\",\"button.foreground\":\"#F8F8F2\",\"button.secondaryBackground\":\"#282A36\",\"button.secondaryForeground\":\"#F8F8F2\",\"button.secondaryHoverBackground\":\"#343746\",\"debugToolBar.background\":\"#21222C\",\"diffEditor.insertedTextBackground\":\"#50FA7B20\",\"diffEditor.removedTextBackground\":\"#FF555550\",\"dropdown.background\":\"#343746\",\"dropdown.border\":\"#191A21\",\"dropdown.foreground\":\"#F8F8F2\",\"editor.background\":\"#282A36\",\"editor.findMatchBackground\":\"#FFB86C80\",\"editor.findMatchHighlightBackground\":\"#FFFFFF40\",\"editor.findRangeHighlightBackground\":\"#44475A75\",\"editor.foldBackground\":\"#21222C80\",\"editor.foreground\":\"#F8F8F2\",\"editor.hoverHighlightBackground\":\"#8BE9FD50\",\"editor.lineHighlightBorder\":\"#44475A\",\"editor.rangeHighlightBackground\":\"#BD93F915\",\"editor.selectionBackground\":\"#44475A\",\"editor.selectionHighlightBackground\":\"#424450\",\"editor.snippetFinalTabstopHighlightBackground\":\"#282A36\",\"editor.snippetFinalTabstopHighlightBorder\":\"#50FA7B\",\"editor.snippetTabstopHighlightBackground\":\"#282A36\",\"editor.snippetTabstopHighlightBorder\":\"#6272A4\",\"editor.wordHighlightBackground\":\"#8BE9FD50\",\"editor.wordHighlightStrongBackground\":\"#50FA7B50\",\"editorBracketHighlight.foreground1\":\"#F8F8F2\",\"editorBracketHighlight.foreground2\":\"#FF79C6\",\"editorBracketHighlight.foreground3\":\"#8BE9FD\",\"editorBracketHighlight.foreground4\":\"#50FA7B\",\"editorBracketHighlight.foreground5\":\"#BD93F9\",\"editorBracketHighlight.foreground6\":\"#FFB86C\",\"editorBracketHighlight.unexpectedBracket.foreground\":\"#FF5555\",\"editorCodeLens.foreground\":\"#6272A4\",\"editorError.foreground\":\"#FF5555\",\"editorGroup.border\":\"#BD93F9\",\"editorGroup.dropBackground\":\"#44475A70\",\"editorGroupHeader.tabsBackground\":\"#191A21\",\"editorGutter.addedBackground\":\"#50FA7B80\",\"editorGutter.deletedBackground\":\"#FF555580\",\"editorGutter.modifiedBackground\":\"#8BE9FD80\",\"editorHoverWidget.background\":\"#282A36\",\"editorHoverWidget.border\":\"#6272A4\",\"editorIndentGuide.activeBackground\":\"#FFFFFF45\",\"editorIndentGuide.background\":\"#FFFFFF1A\",\"editorLineNumber.foreground\":\"#6272A4\",\"editorLink.activeForeground\":\"#8BE9FD\",\"editorMarkerNavigation.background\":\"#21222C\",\"editorOverviewRuler.addedForeground\":\"#50FA7B80\",\"editorOverviewRuler.border\":\"#191A21\",\"editorOverviewRuler.currentContentForeground\":\"#50FA7B\",\"editorOverviewRuler.deletedForeground\":\"#FF555580\",\"editorOverviewRuler.errorForeground\":\"#FF555580\",\"editorOverviewRuler.incomingContentForeground\":\"#BD93F9\",\"editorOverviewRuler.infoForeground\":\"#8BE9FD80\",\"editorOverviewRuler.modifiedForeground\":\"#8BE9FD80\",\"editorOverviewRuler.selectionHighlightForeground\":\"#FFB86C\",\"editorOverviewRuler.warningForeground\":\"#FFB86C80\",\"editorOverviewRuler.wordHighlightForeground\":\"#8BE9FD\",\"editorOverviewRuler.wordHighlightStrongForeground\":\"#50FA7B\",\"editorRuler.foreground\":\"#FFFFFF1A\",\"editorSuggestWidget.background\":\"#21222C\",\"editorSuggestWidget.foreground\":\"#F8F8F2\",\"editorSuggestWidget.selectedBackground\":\"#44475A\",\"editorWarning.foreground\":\"#8BE9FD\",\"editorWhitespace.foreground\":\"#FFFFFF1A\",\"editorWidget.background\":\"#21222C\",\"errorForeground\":\"#FF5555\",\"extensionButton.prominentBackground\":\"#50FA7B90\",\"extensionButton.prominentForeground\":\"#F8F8F2\",\"extensionButton.prominentHoverBackground\":\"#50FA7B60\",\"focusBorder\":\"#6272A4\",\"foreground\":\"#F8F8F2\",\"gitDecoration.conflictingResourceForeground\":\"#FFB86C\",\"gitDecoration.deletedResourceForeground\":\"#FF5555\",\"gitDecoration.ignoredResourceForeground\":\"#6272A4\",\"gitDecoration.modifiedResourceForeground\":\"#8BE9FD\",\"gitDecoration.untrackedResourceForeground\":\"#50FA7B\",\"inlineChat.regionHighlight\":\"#343746\",\"input.background\":\"#282A36\",\"input.border\":\"#191A21\",\"input.foreground\":\"#F8F8F2\",\"input.placeholderForeground\":\"#6272A4\",\"inputOption.activeBorder\":\"#BD93F9\",\"inputValidation.errorBorder\":\"#FF5555\",\"inputValidation.infoBorder\":\"#FF79C6\",\"inputValidation.warningBorder\":\"#FFB86C\",\"list.activeSelectionBackground\":\"#44475A\",\"list.activeSelectionForeground\":\"#F8F8F2\",\"list.dropBackground\":\"#44475A\",\"list.errorForeground\":\"#FF5555\",\"list.focusBackground\":\"#44475A75\",\"list.highlightForeground\":\"#8BE9FD\",\"list.hoverBackground\":\"#44475A75\",\"list.inactiveSelectionBackground\":\"#44475A75\",\"list.warningForeground\":\"#FFB86C\",\"listFilterWidget.background\":\"#343746\",\"listFilterWidget.noMatchesOutline\":\"#FF5555\",\"listFilterWidget.outline\":\"#424450\",\"merge.currentHeaderBackground\":\"#50FA7B90\",\"merge.incomingHeaderBackground\":\"#BD93F990\",\"panel.background\":\"#282A36\",\"panel.border\":\"#BD93F9\",\"panelTitle.activeBorder\":\"#FF79C6\",\"panelTitle.activeForeground\":\"#F8F8F2\",\"panelTitle.inactiveForeground\":\"#6272A4\",\"peekView.border\":\"#44475A\",\"peekViewEditor.background\":\"#282A36\",\"peekViewEditor.matchHighlightBackground\":\"#F1FA8C80\",\"peekViewResult.background\":\"#21222C\",\"peekViewResult.fileForeground\":\"#F8F8F2\",\"peekViewResult.lineForeground\":\"#F8F8F2\",\"peekViewResult.matchHighlightBackground\":\"#F1FA8C80\",\"peekViewResult.selectionBackground\":\"#44475A\",\"peekViewResult.selectionForeground\":\"#F8F8F2\",\"peekViewTitle.background\":\"#191A21\",\"peekViewTitleDescription.foreground\":\"#6272A4\",\"peekViewTitleLabel.foreground\":\"#F8F8F2\",\"pickerGroup.border\":\"#BD93F9\",\"pickerGroup.foreground\":\"#8BE9FD\",\"progressBar.background\":\"#FF79C6\",\"selection.background\":\"#BD93F9\",\"settings.checkboxBackground\":\"#21222C\",\"settings.checkboxBorder\":\"#191A21\",\"settings.checkboxForeground\":\"#F8F8F2\",\"settings.dropdownBackground\":\"#21222C\",\"settings.dropdownBorder\":\"#191A21\",\"settings.dropdownForeground\":\"#F8F8F2\",\"settings.headerForeground\":\"#F8F8F2\",\"settings.modifiedItemIndicator\":\"#FFB86C\",\"settings.numberInputBackground\":\"#21222C\",\"settings.numberInputBorder\":\"#191A21\",\"settings.numberInputForeground\":\"#F8F8F2\",\"settings.textInputBackground\":\"#21222C\",\"settings.textInputBorder\":\"#191A21\",\"settings.textInputForeground\":\"#F8F8F2\",\"sideBar.background\":\"#21222C\",\"sideBarSectionHeader.background\":\"#282A36\",\"sideBarSectionHeader.border\":\"#191A21\",\"sideBarTitle.foreground\":\"#F8F8F2\",\"statusBar.background\":\"#191A21\",\"statusBar.debuggingBackground\":\"#FF5555\",\"statusBar.debuggingForeground\":\"#191A21\",\"statusBar.foreground\":\"#F8F8F2\",\"statusBar.noFolderBackground\":\"#191A21\",\"statusBar.noFolderForeground\":\"#F8F8F2\",\"statusBarItem.prominentBackground\":\"#FF5555\",\"statusBarItem.prominentHoverBackground\":\"#FFB86C\",\"statusBarItem.remoteBackground\":\"#BD93F9\",\"statusBarItem.remoteForeground\":\"#282A36\",\"tab.activeBackground\":\"#282A36\",\"tab.activeBorderTop\":\"#FF79C680\",\"tab.activeForeground\":\"#F8F8F2\",\"tab.border\":\"#191A21\",\"tab.inactiveBackground\":\"#21222C\",\"tab.inactiveForeground\":\"#6272A4\",\"terminal.ansiBlack\":\"#21222C\",\"terminal.ansiBlue\":\"#BD93F9\",\"terminal.ansiBrightBlack\":\"#6272A4\",\"terminal.ansiBrightBlue\":\"#D6ACFF\",\"terminal.ansiBrightCyan\":\"#A4FFFF\",\"terminal.ansiBrightGreen\":\"#69FF94\",\"terminal.ansiBrightMagenta\":\"#FF92DF\",\"terminal.ansiBrightRed\":\"#FF6E6E\",\"terminal.ansiBrightWhite\":\"#FFFFFF\",\"terminal.ansiBrightYellow\":\"#FFFFA5\",\"terminal.ansiCyan\":\"#8BE9FD\",\"terminal.ansiGreen\":\"#50FA7B\",\"terminal.ansiMagenta\":\"#FF79C6\",\"terminal.ansiRed\":\"#FF5555\",\"terminal.ansiWhite\":\"#F8F8F2\",\"terminal.ansiYellow\":\"#F1FA8C\",\"terminal.background\":\"#282A36\",\"terminal.foreground\":\"#F8F8F2\",\"titleBar.activeBackground\":\"#21222C\",\"titleBar.activeForeground\":\"#F8F8F2\",\"titleBar.inactiveBackground\":\"#191A21\",\"titleBar.inactiveForeground\":\"#6272A4\",\"walkThrough.embeddedEditorBackground\":\"#21222C\"},\"displayName\":\"Dracula Theme\",\"name\":\"dracula\",\"semanticHighlighting\":true,\"tokenColors\":[{\"scope\":[\"emphasis\"],\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":[\"strong\"],\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":[\"header\"],\"settings\":{\"foreground\":\"#BD93F9\"}},{\"scope\":[\"meta.diff\",\"meta.diff.header\"],\"settings\":{\"foreground\":\"#6272A4\"}},{\"scope\":[\"markup.inserted\"],\"settings\":{\"foreground\":\"#50FA7B\"}},{\"scope\":[\"markup.deleted\"],\"settings\":{\"foreground\":\"#FF5555\"}},{\"scope\":[\"markup.changed\"],\"settings\":{\"foreground\":\"#FFB86C\"}},{\"scope\":[\"invalid\"],\"settings\":{\"fontStyle\":\"underline italic\",\"foreground\":\"#FF5555\"}},{\"scope\":[\"invalid.deprecated\"],\"settings\":{\"fontStyle\":\"underline italic\",\"foreground\":\"#F8F8F2\"}},{\"scope\":[\"entity.name.filename\"],\"settings\":{\"foreground\":\"#F1FA8C\"}},{\"scope\":[\"markup.error\"],\"settings\":{\"foreground\":\"#FF5555\"}},{\"scope\":[\"markup.underline\"],\"settings\":{\"fontStyle\":\"underline\"}},{\"scope\":[\"markup.bold\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#FFB86C\"}},{\"scope\":[\"markup.heading\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#BD93F9\"}},{\"scope\":[\"markup.italic\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#F1FA8C\"}},{\"scope\":[\"beginning.punctuation.definition.list.markdown\",\"beginning.punctuation.definition.quote.markdown\",\"punctuation.definition.link.restructuredtext\"],\"settings\":{\"foreground\":\"#8BE9FD\"}},{\"scope\":[\"markup.inline.raw\",\"markup.raw.restructuredtext\"],\"settings\":{\"foreground\":\"#50FA7B\"}},{\"scope\":[\"markup.underline.link\",\"markup.underline.link.image\"],\"settings\":{\"foreground\":\"#8BE9FD\"}},{\"scope\":[\"meta.link.reference.def.restructuredtext\",\"punctuation.definition.directive.restructuredtext\",\"string.other.link.description\",\"string.other.link.title\"],\"settings\":{\"foreground\":\"#FF79C6\"}},{\"scope\":[\"entity.name.directive.restructuredtext\",\"markup.quote\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#F1FA8C\"}},{\"scope\":[\"meta.separator.markdown\"],\"settings\":{\"foreground\":\"#6272A4\"}},{\"scope\":[\"fenced_code.block.language\",\"markup.raw.inner.restructuredtext\",\"markup.fenced_code.block.markdown punctuation.definition.markdown\"],\"settings\":{\"foreground\":\"#50FA7B\"}},{\"scope\":[\"punctuation.definition.constant.restructuredtext\"],\"settings\":{\"foreground\":\"#BD93F9\"}},{\"scope\":[\"markup.heading.markdown punctuation.definition.string.begin\",\"markup.heading.markdown punctuation.definition.string.end\"],\"settings\":{\"foreground\":\"#BD93F9\"}},{\"scope\":[\"meta.paragraph.markdown punctuation.definition.string.begin\",\"meta.paragraph.markdown punctuation.definition.string.end\"],\"settings\":{\"foreground\":\"#F8F8F2\"}},{\"scope\":[\"markup.quote.markdown meta.paragraph.markdown punctuation.definition.string.begin\",\"markup.quote.markdown meta.paragraph.markdown punctuation.definition.string.end\"],\"settings\":{\"foreground\":\"#F1FA8C\"}},{\"scope\":[\"entity.name.type.class\",\"entity.name.class\"],\"settings\":{\"fontStyle\":\"normal\",\"foreground\":\"#8BE9FD\"}},{\"scope\":[\"keyword.expressions-and-types.swift\",\"keyword.other.this\",\"variable.language\",\"variable.language punctuation.definition.variable.php\",\"variable.other.readwrite.instance.ruby\",\"variable.parameter.function.language.special\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#BD93F9\"}},{\"scope\":[\"entity.other.inherited-class\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#8BE9FD\"}},{\"scope\":[\"comment\",\"punctuation.definition.comment\",\"unused.comment\",\"wildcard.comment\"],\"settings\":{\"foreground\":\"#6272A4\"}},{\"scope\":[\"comment keyword.codetag.notation\",\"comment.block.documentation keyword\",\"comment.block.documentation storage.type.class\"],\"settings\":{\"foreground\":\"#FF79C6\"}},{\"scope\":[\"comment.block.documentation entity.name.type\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#8BE9FD\"}},{\"scope\":[\"comment.block.documentation entity.name.type punctuation.definition.bracket\"],\"settings\":{\"foreground\":\"#8BE9FD\"}},{\"scope\":[\"comment.block.documentation variable\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#FFB86C\"}},{\"scope\":[\"constant\",\"variable.other.constant\"],\"settings\":{\"foreground\":\"#BD93F9\"}},{\"scope\":[\"constant.character.escape\",\"constant.character.string.escape\",\"constant.regexp\"],\"settings\":{\"foreground\":\"#FF79C6\"}},{\"scope\":[\"entity.name.tag\"],\"settings\":{\"foreground\":\"#FF79C6\"}},{\"scope\":[\"entity.other.attribute-name.parent-selector\"],\"settings\":{\"foreground\":\"#FF79C6\"}},{\"scope\":[\"entity.other.attribute-name\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#50FA7B\"}},{\"scope\":[\"entity.name.function\",\"meta.function-call.object\",\"meta.function-call.php\",\"meta.function-call.static\",\"meta.method-call.java meta.method\",\"meta.method.groovy\",\"support.function.any-method.lua\",\"keyword.operator.function.infix\"],\"settings\":{\"foreground\":\"#50FA7B\"}},{\"scope\":[\"entity.name.variable.parameter\",\"meta.at-rule.function variable\",\"meta.at-rule.mixin variable\",\"meta.function.arguments variable.other.php\",\"meta.selectionset.graphql meta.arguments.graphql variable.arguments.graphql\",\"variable.parameter\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#FFB86C\"}},{\"scope\":[\"meta.decorator variable.other.readwrite\",\"meta.decorator variable.other.property\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#50FA7B\"}},{\"scope\":[\"meta.decorator variable.other.object\"],\"settings\":{\"foreground\":\"#50FA7B\"}},{\"scope\":[\"keyword\",\"punctuation.definition.keyword\"],\"settings\":{\"foreground\":\"#FF79C6\"}},{\"scope\":[\"keyword.control.new\",\"keyword.operator.new\"],\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":[\"meta.selector\"],\"settings\":{\"foreground\":\"#FF79C6\"}},{\"scope\":[\"support\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#8BE9FD\"}},{\"scope\":[\"support.function.magic\",\"support.variable\",\"variable.other.predefined\"],\"settings\":{\"fontStyle\":\"regular\",\"foreground\":\"#BD93F9\"}},{\"scope\":[\"support.function\",\"support.type.property-name\"],\"settings\":{\"fontStyle\":\"regular\"}},{\"scope\":[\"constant.other.symbol.hashkey punctuation.definition.constant.ruby\",\"entity.other.attribute-name.placeholder punctuation\",\"entity.other.attribute-name.pseudo-class punctuation\",\"entity.other.attribute-name.pseudo-element punctuation\",\"meta.group.double.toml\",\"meta.group.toml\",\"meta.object-binding-pattern-variable punctuation.destructuring\",\"punctuation.colon.graphql\",\"punctuation.definition.block.scalar.folded.yaml\",\"punctuation.definition.block.scalar.literal.yaml\",\"punctuation.definition.block.sequence.item.yaml\",\"punctuation.definition.entity.other.inherited-class\",\"punctuation.function.swift\",\"punctuation.separator.dictionary.key-value\",\"punctuation.separator.hash\",\"punctuation.separator.inheritance\",\"punctuation.separator.key-value\",\"punctuation.separator.key-value.mapping.yaml\",\"punctuation.separator.namespace\",\"punctuation.separator.pointer-access\",\"punctuation.separator.slice\",\"string.unquoted.heredoc punctuation.definition.string\",\"support.other.chomping-indicator.yaml\",\"punctuation.separator.annotation\"],\"settings\":{\"foreground\":\"#FF79C6\"}},{\"scope\":[\"keyword.operator.other.powershell\",\"keyword.other.statement-separator.powershell\",\"meta.brace.round\",\"meta.function-call punctuation\",\"punctuation.definition.arguments.begin\",\"punctuation.definition.arguments.end\",\"punctuation.definition.entity.begin\",\"punctuation.definition.entity.end\",\"punctuation.definition.tag.cs\",\"punctuation.definition.type.begin\",\"punctuation.definition.type.end\",\"punctuation.section.scope.begin\",\"punctuation.section.scope.end\",\"punctuation.terminator.expression.php\",\"storage.type.generic.java\",\"string.template meta.brace\",\"string.template punctuation.accessor\"],\"settings\":{\"foreground\":\"#F8F8F2\"}},{\"scope\":[\"meta.string-contents.quoted.double punctuation.definition.variable\",\"punctuation.definition.interpolation.begin\",\"punctuation.definition.interpolation.end\",\"punctuation.definition.template-expression.begin\",\"punctuation.definition.template-expression.end\",\"punctuation.section.embedded.begin\",\"punctuation.section.embedded.coffee\",\"punctuation.section.embedded.end\",\"punctuation.section.embedded.end source.php\",\"punctuation.section.embedded.end source.ruby\",\"punctuation.definition.variable.makefile\"],\"settings\":{\"foreground\":\"#FF79C6\"}},{\"scope\":[\"entity.name.function.target.makefile\",\"entity.name.section.toml\",\"entity.name.tag.yaml\",\"variable.other.key.toml\"],\"settings\":{\"foreground\":\"#8BE9FD\"}},{\"scope\":[\"constant.other.date\",\"constant.other.timestamp\"],\"settings\":{\"foreground\":\"#FFB86C\"}},{\"scope\":[\"variable.other.alias.yaml\"],\"settings\":{\"fontStyle\":\"italic underline\",\"foreground\":\"#50FA7B\"}},{\"scope\":[\"storage\",\"meta.implementation storage.type.objc\",\"meta.interface-or-protocol storage.type.objc\",\"source.groovy storage.type.def\"],\"settings\":{\"fontStyle\":\"regular\",\"foreground\":\"#FF79C6\"}},{\"scope\":[\"entity.name.type\",\"keyword.primitive-datatypes.swift\",\"keyword.type.cs\",\"meta.protocol-list.objc\",\"meta.return-type.objc\",\"source.go storage.type\",\"source.groovy storage.type\",\"source.java storage.type\",\"source.powershell entity.other.attribute-name\",\"storage.class.std.rust\",\"storage.type.attribute.swift\",\"storage.type.c\",\"storage.type.core.rust\",\"storage.type.cs\",\"storage.type.groovy\",\"storage.type.objc\",\"storage.type.php\",\"storage.type.haskell\",\"storage.type.ocaml\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#8BE9FD\"}},{\"scope\":[\"entity.name.type.type-parameter\",\"meta.indexer.mappedtype.declaration entity.name.type\",\"meta.type.parameters entity.name.type\"],\"settings\":{\"foreground\":\"#FFB86C\"}},{\"scope\":[\"storage.modifier\"],\"settings\":{\"foreground\":\"#FF79C6\"}},{\"scope\":[\"string.regexp\",\"constant.other.character-class.set.regexp\",\"constant.character.escape.backslash.regexp\"],\"settings\":{\"foreground\":\"#F1FA8C\"}},{\"scope\":[\"punctuation.definition.group.capture.regexp\"],\"settings\":{\"foreground\":\"#FF79C6\"}},{\"scope\":[\"string.regexp punctuation.definition.string.begin\",\"string.regexp punctuation.definition.string.end\"],\"settings\":{\"foreground\":\"#FF5555\"}},{\"scope\":[\"punctuation.definition.character-class.regexp\"],\"settings\":{\"foreground\":\"#8BE9FD\"}},{\"scope\":[\"punctuation.definition.group.regexp\"],\"settings\":{\"foreground\":\"#FFB86C\"}},{\"scope\":[\"punctuation.definition.group.assertion.regexp\",\"keyword.operator.negation.regexp\"],\"settings\":{\"foreground\":\"#FF5555\"}},{\"scope\":[\"meta.assertion.look-ahead.regexp\"],\"settings\":{\"foreground\":\"#50FA7B\"}},{\"scope\":[\"string\"],\"settings\":{\"foreground\":\"#F1FA8C\"}},{\"scope\":[\"punctuation.definition.string.begin\",\"punctuation.definition.string.end\"],\"settings\":{\"foreground\":\"#E9F284\"}},{\"scope\":[\"punctuation.support.type.property-name.begin\",\"punctuation.support.type.property-name.end\"],\"settings\":{\"foreground\":\"#8BE9FE\"}},{\"scope\":[\"string.quoted.docstring.multi\",\"string.quoted.docstring.multi.python punctuation.definition.string.begin\",\"string.quoted.docstring.multi.python punctuation.definition.string.end\",\"string.quoted.docstring.multi.python constant.character.escape\"],\"settings\":{\"foreground\":\"#6272A4\"}},{\"scope\":[\"variable\",\"constant.other.key.perl\",\"support.variable.property\",\"variable.other.constant.js\",\"variable.other.constant.ts\",\"variable.other.constant.tsx\"],\"settings\":{\"foreground\":\"#F8F8F2\"}},{\"scope\":[\"meta.import variable.other.readwrite\",\"meta.variable.assignment.destructured.object.coffee variable\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#FFB86C\"}},{\"scope\":[\"meta.import variable.other.readwrite.alias\",\"meta.export variable.other.readwrite.alias\",\"meta.variable.assignment.destructured.object.coffee variable variable\"],\"settings\":{\"fontStyle\":\"normal\",\"foreground\":\"#F8F8F2\"}},{\"scope\":[\"meta.selectionset.graphql variable\"],\"settings\":{\"foreground\":\"#F1FA8C\"}},{\"scope\":[\"meta.selectionset.graphql meta.arguments variable\"],\"settings\":{\"foreground\":\"#F8F8F2\"}},{\"scope\":[\"entity.name.fragment.graphql\",\"variable.fragment.graphql\"],\"settings\":{\"foreground\":\"#8BE9FD\"}},{\"scope\":[\"constant.other.symbol.hashkey.ruby\",\"keyword.operator.dereference.java\",\"keyword.operator.navigation.groovy\",\"meta.scope.for-loop.shell punctuation.definition.string.begin\",\"meta.scope.for-loop.shell punctuation.definition.string.end\",\"meta.scope.for-loop.shell string\",\"storage.modifier.import\",\"punctuation.section.embedded.begin.tsx\",\"punctuation.section.embedded.end.tsx\",\"punctuation.section.embedded.begin.jsx\",\"punctuation.section.embedded.end.jsx\",\"punctuation.separator.list.comma.css\",\"constant.language.empty-list.haskell\"],\"settings\":{\"foreground\":\"#F8F8F2\"}},{\"scope\":[\"source.shell variable.other\"],\"settings\":{\"foreground\":\"#BD93F9\"}},{\"scope\":[\"support.constant\"],\"settings\":{\"fontStyle\":\"normal\",\"foreground\":\"#BD93F9\"}},{\"scope\":[\"meta.scope.prerequisites.makefile\"],\"settings\":{\"foreground\":\"#F1FA8C\"}},{\"scope\":[\"meta.attribute-selector.scss\"],\"settings\":{\"foreground\":\"#F1FA8C\"}},{\"scope\":[\"punctuation.definition.attribute-selector.end.bracket.square.scss\",\"punctuation.definition.attribute-selector.begin.bracket.square.scss\"],\"settings\":{\"foreground\":\"#F8F8F2\"}},{\"scope\":[\"meta.preprocessor.haskell\"],\"settings\":{\"foreground\":\"#6272A4\"}},{\"scope\":[\"log.error\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#FF5555\"}},{\"scope\":[\"log.warning\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#F1FA8C\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Bzb7OGdO.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={wordPattern:/(#?-?\\d*\\.\\d\\w*%?)|([@$#!.:]?[\\w-?]+%?)|[@#!.]/g,comments:{blockComment:[\"/*\",\"*/\"],lineComment:\"//\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\",notIn:[\"string\",\"comment\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\"]},{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],folding:{markers:{start:new RegExp(\"^\\\\s*\\\\/\\\\*\\\\s*#region\\\\b\\\\s*(.*?)\\\\s*\\\\*\\\\/\"),end:new RegExp(\"^\\\\s*\\\\/\\\\*\\\\s*#endregion\\\\b.*\\\\*\\\\/\")}}},t={defaultToken:\"\",tokenPostfix:\".scss\",ws:`[ \t\n\\r\\f]*`,identifier:\"-?-?([a-zA-Z]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))([\\\\w\\\\-]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))*\",brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.bracket\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"}],tokenizer:{root:[{include:\"@selector\"}],selector:[{include:\"@comments\"},{include:\"@import\"},{include:\"@variabledeclaration\"},{include:\"@warndebug\"},[\"[@](include)\",{token:\"keyword\",next:\"@includedeclaration\"}],[\"[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)\",{token:\"keyword\",next:\"@keyframedeclaration\"}],[\"[@](page|content|font-face|-moz-document)\",{token:\"keyword\"}],[\"[@](charset|namespace)\",{token:\"keyword\",next:\"@declarationbody\"}],[\"[@](function)\",{token:\"keyword\",next:\"@functiondeclaration\"}],[\"[@](mixin)\",{token:\"keyword\",next:\"@mixindeclaration\"}],[\"url(\\\\-prefix)?\\\\(\",{token:\"meta\",next:\"@urldeclaration\"}],{include:\"@controlstatement\"},{include:\"@selectorname\"},[\"[&\\\\*]\",\"tag\"],[\"[>\\\\+,]\",\"delimiter\"],[\"\\\\[\",{token:\"delimiter.bracket\",next:\"@selectorattribute\"}],[\"{\",{token:\"delimiter.curly\",next:\"@selectorbody\"}]],selectorbody:[[\"[*_]?@identifier@ws:(?=(\\\\s|\\\\d|[^{;}]*[;}]))\",\"attribute.name\",\"@rulevalue\"],{include:\"@selector\"},[\"[@](extend)\",{token:\"keyword\",next:\"@extendbody\"}],[\"[@](return)\",{token:\"keyword\",next:\"@declarationbody\"}],[\"}\",{token:\"delimiter.curly\",next:\"@pop\"}]],selectorname:[[\"#{\",{token:\"meta\",next:\"@variableinterpolation\"}],[\"(\\\\.|#(?=[^{])|%|(@identifier)|:)+\",\"tag\"]],selectorattribute:[{include:\"@term\"},[\"]\",{token:\"delimiter.bracket\",next:\"@pop\"}]],term:[{include:\"@comments\"},[\"url(\\\\-prefix)?\\\\(\",{token:\"meta\",next:\"@urldeclaration\"}],{include:\"@functioninvocation\"},{include:\"@numbers\"},{include:\"@strings\"},{include:\"@variablereference\"},[\"(and\\\\b|or\\\\b|not\\\\b)\",\"operator\"],{include:\"@name\"},[\"([<>=\\\\+\\\\-\\\\*\\\\/\\\\^\\\\|\\\\~,])\",\"operator\"],[\",\",\"delimiter\"],[\"!default\",\"literal\"],[\"\\\\(\",{token:\"delimiter.parenthesis\",next:\"@parenthizedterm\"}]],rulevalue:[{include:\"@term\"},[\"!important\",\"literal\"],[\";\",\"delimiter\",\"@pop\"],[\"{\",{token:\"delimiter.curly\",switchTo:\"@nestedproperty\"}],[\"(?=})\",{token:\"\",next:\"@pop\"}]],nestedproperty:[[\"[*_]?@identifier@ws:\",\"attribute.name\",\"@rulevalue\"],{include:\"@comments\"},[\"}\",{token:\"delimiter.curly\",next:\"@pop\"}]],warndebug:[[\"[@](warn|debug)\",{token:\"keyword\",next:\"@declarationbody\"}]],import:[[\"[@](import)\",{token:\"keyword\",next:\"@declarationbody\"}]],variabledeclaration:[[\"\\\\$@identifier@ws:\",\"variable.decl\",\"@declarationbody\"]],urldeclaration:[{include:\"@strings\"},[`[^)\\r\n]+`,\"string\"],[\"\\\\)\",{token:\"meta\",next:\"@pop\"}]],parenthizedterm:[{include:\"@term\"},[\"\\\\)\",{token:\"delimiter.parenthesis\",next:\"@pop\"}]],declarationbody:[{include:\"@term\"},[\";\",\"delimiter\",\"@pop\"],[\"(?=})\",{token:\"\",next:\"@pop\"}]],extendbody:[{include:\"@selectorname\"},[\"!optional\",\"literal\"],[\";\",\"delimiter\",\"@pop\"],[\"(?=})\",{token:\"\",next:\"@pop\"}]],variablereference:[[\"\\\\$@identifier\",\"variable.ref\"],[\"\\\\.\\\\.\\\\.\",\"operator\"],[\"#{\",{token:\"meta\",next:\"@variableinterpolation\"}]],variableinterpolation:[{include:\"@variablereference\"},[\"}\",{token:\"meta\",next:\"@pop\"}]],comments:[[\"\\\\/\\\\*\",\"comment\",\"@comment\"],[\"\\\\/\\\\/+.*\",\"comment\"]],comment:[[\"\\\\*\\\\/\",\"comment\",\"@pop\"],[\".\",\"comment\"]],name:[[\"@identifier\",\"attribute.value\"]],numbers:[[\"(\\\\d*\\\\.)?\\\\d+([eE][\\\\-+]?\\\\d+)?\",{token:\"number\",next:\"@units\"}],[\"#[0-9a-fA-F_]+(?!\\\\w)\",\"number.hex\"]],units:[[\"(em|ex|ch|rem|fr|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?\",\"number\",\"@pop\"]],functiondeclaration:[[\"@identifier@ws\\\\(\",{token:\"meta\",next:\"@parameterdeclaration\"}],[\"{\",{token:\"delimiter.curly\",switchTo:\"@functionbody\"}]],mixindeclaration:[[\"@identifier@ws\\\\(\",{token:\"meta\",next:\"@parameterdeclaration\"}],[\"@identifier\",\"meta\"],[\"{\",{token:\"delimiter.curly\",switchTo:\"@selectorbody\"}]],parameterdeclaration:[[\"\\\\$@identifier@ws:\",\"variable.decl\"],[\"\\\\.\\\\.\\\\.\",\"operator\"],[\",\",\"delimiter\"],{include:\"@term\"},[\"\\\\)\",{token:\"meta\",next:\"@pop\"}]],includedeclaration:[{include:\"@functioninvocation\"},[\"@identifier\",\"meta\"],[\";\",\"delimiter\",\"@pop\"],[\"(?=})\",{token:\"\",next:\"@pop\"}],[\"{\",{token:\"delimiter.curly\",switchTo:\"@selectorbody\"}]],keyframedeclaration:[[\"@identifier\",\"meta\"],[\"{\",{token:\"delimiter.curly\",switchTo:\"@keyframebody\"}]],keyframebody:[{include:\"@term\"},[\"{\",{token:\"delimiter.curly\",next:\"@selectorbody\"}],[\"}\",{token:\"delimiter.curly\",next:\"@pop\"}]],controlstatement:[[\"[@](if|else|for|while|each|media)\",{token:\"keyword.flow\",next:\"@controlstatementdeclaration\"}]],controlstatementdeclaration:[[\"(in|from|through|if|to)\\\\b\",{token:\"keyword.flow\"}],{include:\"@term\"},[\"{\",{token:\"delimiter.curly\",switchTo:\"@selectorbody\"}]],functionbody:[[\"[@](return)\",{token:\"keyword\"}],{include:\"@variabledeclaration\"},{include:\"@term\"},{include:\"@controlstatement\"},[\";\",\"delimiter\"],[\"}\",{token:\"delimiter.curly\",next:\"@pop\"}]],functioninvocation:[[\"@identifier\\\\(\",{token:\"meta\",next:\"@functionarguments\"}]],functionarguments:[[\"\\\\$@identifier@ws:\",\"attribute.name\"],[\"[,]\",\"delimiter\"],{include:\"@term\"},[\"\\\\)\",{token:\"meta\",next:\"@pop\"}]],strings:[['~?\"',{token:\"string.delimiter\",next:\"@stringenddoublequote\"}],[\"~?'\",{token:\"string.delimiter\",next:\"@stringendquote\"}]],stringenddoublequote:[[\"\\\\\\\\.\",\"string\"],['\"',{token:\"string.delimiter\",next:\"@pop\"}],[\".\",\"string\"]],stringendquote:[[\"\\\\\\\\.\",\"string\"],[\"'\",{token:\"string.delimiter\",next:\"@pop\"}],[\".\",\"string\"]]}};export{e as conf,t as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/C-_shW-Y.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBackground\":\"#00000000\",\"activityBar.activeBorder\":\"#00000000\",\"activityBar.activeFocusBorder\":\"#00000000\",\"activityBar.background\":\"#181926\",\"activityBar.border\":\"#00000000\",\"activityBar.dropBorder\":\"#c6a0f633\",\"activityBar.foreground\":\"#c6a0f6\",\"activityBar.inactiveForeground\":\"#6e738d\",\"activityBarBadge.background\":\"#c6a0f6\",\"activityBarBadge.foreground\":\"#181926\",\"activityBarTop.activeBorder\":\"#00000000\",\"activityBarTop.dropBorder\":\"#c6a0f633\",\"activityBarTop.foreground\":\"#c6a0f6\",\"activityBarTop.inactiveForeground\":\"#6e738d\",\"badge.background\":\"#494d64\",\"badge.foreground\":\"#cad3f5\",\"banner.background\":\"#494d64\",\"banner.foreground\":\"#cad3f5\",\"banner.iconForeground\":\"#cad3f5\",\"breadcrumb.activeSelectionForeground\":\"#c6a0f6\",\"breadcrumb.background\":\"#24273a\",\"breadcrumb.focusForeground\":\"#c6a0f6\",\"breadcrumb.foreground\":\"#cad3f5cc\",\"breadcrumbPicker.background\":\"#1e2030\",\"button.background\":\"#c6a0f6\",\"button.border\":\"#00000000\",\"button.foreground\":\"#181926\",\"button.hoverBackground\":\"#dac1f9\",\"button.secondaryBackground\":\"#5b6078\",\"button.secondaryBorder\":\"#c6a0f6\",\"button.secondaryForeground\":\"#cad3f5\",\"button.secondaryHoverBackground\":\"#6a708c\",\"button.separator\":\"#00000000\",\"charts.blue\":\"#8aadf4\",\"charts.foreground\":\"#cad3f5\",\"charts.green\":\"#a6da95\",\"charts.lines\":\"#b8c0e0\",\"charts.orange\":\"#f5a97f\",\"charts.purple\":\"#c6a0f6\",\"charts.red\":\"#ed8796\",\"charts.yellow\":\"#eed49f\",\"checkbox.background\":\"#494d64\",\"checkbox.border\":\"#00000000\",\"checkbox.foreground\":\"#c6a0f6\",\"commandCenter.activeBackground\":\"#5b607833\",\"commandCenter.activeBorder\":\"#c6a0f6\",\"commandCenter.activeForeground\":\"#c6a0f6\",\"commandCenter.background\":\"#1e2030\",\"commandCenter.border\":\"#00000000\",\"commandCenter.foreground\":\"#b8c0e0\",\"commandCenter.inactiveBorder\":\"#00000000\",\"commandCenter.inactiveForeground\":\"#b8c0e0\",\"debugConsole.errorForeground\":\"#ed8796\",\"debugConsole.infoForeground\":\"#8aadf4\",\"debugConsole.sourceForeground\":\"#f4dbd6\",\"debugConsole.warningForeground\":\"#f5a97f\",\"debugConsoleInputIcon.foreground\":\"#cad3f5\",\"debugExceptionWidget.background\":\"#181926\",\"debugExceptionWidget.border\":\"#c6a0f6\",\"debugIcon.breakpointCurrentStackframeForeground\":\"#5b6078\",\"debugIcon.breakpointDisabledForeground\":\"#ed879699\",\"debugIcon.breakpointForeground\":\"#ed8796\",\"debugIcon.breakpointStackframeForeground\":\"#5b6078\",\"debugIcon.breakpointUnverifiedForeground\":\"#a47487\",\"debugIcon.continueForeground\":\"#a6da95\",\"debugIcon.disconnectForeground\":\"#5b6078\",\"debugIcon.pauseForeground\":\"#8aadf4\",\"debugIcon.restartForeground\":\"#8bd5ca\",\"debugIcon.startForeground\":\"#a6da95\",\"debugIcon.stepBackForeground\":\"#5b6078\",\"debugIcon.stepIntoForeground\":\"#cad3f5\",\"debugIcon.stepOutForeground\":\"#cad3f5\",\"debugIcon.stepOverForeground\":\"#c6a0f6\",\"debugIcon.stopForeground\":\"#ed8796\",\"debugTokenExpression.boolean\":\"#c6a0f6\",\"debugTokenExpression.error\":\"#ed8796\",\"debugTokenExpression.number\":\"#f5a97f\",\"debugTokenExpression.string\":\"#a6da95\",\"debugToolBar.background\":\"#181926\",\"debugToolBar.border\":\"#00000000\",\"descriptionForeground\":\"#cad3f5\",\"diffEditor.border\":\"#5b6078\",\"diffEditor.diagonalFill\":\"#5b607899\",\"diffEditor.insertedLineBackground\":\"#a6da9526\",\"diffEditor.insertedTextBackground\":\"#a6da951a\",\"diffEditor.removedLineBackground\":\"#ed879626\",\"diffEditor.removedTextBackground\":\"#ed87961a\",\"diffEditorOverview.insertedForeground\":\"#a6da95cc\",\"diffEditorOverview.removedForeground\":\"#ed8796cc\",\"disabledForeground\":\"#a5adcb\",\"dropdown.background\":\"#1e2030\",\"dropdown.border\":\"#c6a0f6\",\"dropdown.foreground\":\"#cad3f5\",\"dropdown.listBackground\":\"#5b6078\",\"editor.background\":\"#24273a\",\"editor.findMatchBackground\":\"#604456\",\"editor.findMatchBorder\":\"#ed879633\",\"editor.findMatchHighlightBackground\":\"#455c6d\",\"editor.findMatchHighlightBorder\":\"#91d7e333\",\"editor.findRangeHighlightBackground\":\"#455c6d\",\"editor.findRangeHighlightBorder\":\"#91d7e333\",\"editor.focusedStackFrameHighlightBackground\":\"#a6da9526\",\"editor.foldBackground\":\"#91d7e340\",\"editor.foreground\":\"#cad3f5\",\"editor.hoverHighlightBackground\":\"#91d7e340\",\"editor.lineHighlightBackground\":\"#cad3f512\",\"editor.lineHighlightBorder\":\"#00000000\",\"editor.rangeHighlightBackground\":\"#91d7e340\",\"editor.rangeHighlightBorder\":\"#00000000\",\"editor.selectionBackground\":\"#939ab740\",\"editor.selectionHighlightBackground\":\"#939ab733\",\"editor.selectionHighlightBorder\":\"#939ab733\",\"editor.stackFrameHighlightBackground\":\"#eed49f26\",\"editor.wordHighlightBackground\":\"#939ab733\",\"editor.wordHighlightStrongBackground\":\"#8aadf433\",\"editorBracketHighlight.foreground1\":\"#ed8796\",\"editorBracketHighlight.foreground2\":\"#f5a97f\",\"editorBracketHighlight.foreground3\":\"#eed49f\",\"editorBracketHighlight.foreground4\":\"#a6da95\",\"editorBracketHighlight.foreground5\":\"#7dc4e4\",\"editorBracketHighlight.foreground6\":\"#c6a0f6\",\"editorBracketHighlight.unexpectedBracket.foreground\":\"#ee99a0\",\"editorBracketMatch.background\":\"#939ab71a\",\"editorBracketMatch.border\":\"#939ab7\",\"editorCodeLens.foreground\":\"#8087a2\",\"editorCursor.background\":\"#24273a\",\"editorCursor.foreground\":\"#f4dbd6\",\"editorError.background\":\"#00000000\",\"editorError.border\":\"#00000000\",\"editorError.foreground\":\"#ed8796\",\"editorGroup.border\":\"#5b6078\",\"editorGroup.dropBackground\":\"#c6a0f633\",\"editorGroup.emptyBackground\":\"#24273a\",\"editorGroupHeader.tabsBackground\":\"#181926\",\"editorGutter.addedBackground\":\"#a6da95\",\"editorGutter.background\":\"#24273a\",\"editorGutter.commentGlyphForeground\":\"#c6a0f6\",\"editorGutter.commentRangeForeground\":\"#363a4f\",\"editorGutter.deletedBackground\":\"#ed8796\",\"editorGutter.foldingControlForeground\":\"#939ab7\",\"editorGutter.modifiedBackground\":\"#eed49f\",\"editorHoverWidget.background\":\"#1e2030\",\"editorHoverWidget.border\":\"#5b6078\",\"editorHoverWidget.foreground\":\"#cad3f5\",\"editorIndentGuide.activeBackground\":\"#5b6078\",\"editorIndentGuide.background\":\"#494d64\",\"editorInfo.background\":\"#00000000\",\"editorInfo.border\":\"#00000000\",\"editorInfo.foreground\":\"#8aadf4\",\"editorInlayHint.background\":\"#1e2030bf\",\"editorInlayHint.foreground\":\"#5b6078\",\"editorInlayHint.parameterBackground\":\"#1e2030bf\",\"editorInlayHint.parameterForeground\":\"#a5adcb\",\"editorInlayHint.typeBackground\":\"#1e2030bf\",\"editorInlayHint.typeForeground\":\"#b8c0e0\",\"editorLightBulb.foreground\":\"#eed49f\",\"editorLineNumber.activeForeground\":\"#c6a0f6\",\"editorLineNumber.foreground\":\"#8087a2\",\"editorLink.activeForeground\":\"#c6a0f6\",\"editorMarkerNavigation.background\":\"#1e2030\",\"editorMarkerNavigationError.background\":\"#ed8796\",\"editorMarkerNavigationInfo.background\":\"#8aadf4\",\"editorMarkerNavigationWarning.background\":\"#f5a97f\",\"editorOverviewRuler.background\":\"#1e2030\",\"editorOverviewRuler.border\":\"#cad3f512\",\"editorOverviewRuler.modifiedForeground\":\"#eed49f\",\"editorRuler.foreground\":\"#5b6078\",\"editorStickyScrollHover.background\":\"#363a4f\",\"editorSuggestWidget.background\":\"#1e2030\",\"editorSuggestWidget.border\":\"#5b6078\",\"editorSuggestWidget.foreground\":\"#cad3f5\",\"editorSuggestWidget.highlightForeground\":\"#c6a0f6\",\"editorSuggestWidget.selectedBackground\":\"#363a4f\",\"editorWarning.background\":\"#00000000\",\"editorWarning.border\":\"#00000000\",\"editorWarning.foreground\":\"#f5a97f\",\"editorWhitespace.foreground\":\"#939ab766\",\"editorWidget.background\":\"#1e2030\",\"editorWidget.foreground\":\"#cad3f5\",\"editorWidget.resizeBorder\":\"#5b6078\",\"errorForeground\":\"#ed8796\",\"errorLens.errorBackground\":\"#ed879626\",\"errorLens.errorBackgroundLight\":\"#ed879626\",\"errorLens.errorForeground\":\"#ed8796\",\"errorLens.errorForegroundLight\":\"#ed8796\",\"errorLens.errorMessageBackground\":\"#ed879626\",\"errorLens.hintBackground\":\"#a6da9526\",\"errorLens.hintBackgroundLight\":\"#a6da9526\",\"errorLens.hintForeground\":\"#a6da95\",\"errorLens.hintForegroundLight\":\"#a6da95\",\"errorLens.hintMessageBackground\":\"#a6da9526\",\"errorLens.infoBackground\":\"#8aadf426\",\"errorLens.infoBackgroundLight\":\"#8aadf426\",\"errorLens.infoForeground\":\"#8aadf4\",\"errorLens.infoForegroundLight\":\"#8aadf4\",\"errorLens.infoMessageBackground\":\"#8aadf426\",\"errorLens.statusBarErrorForeground\":\"#ed8796\",\"errorLens.statusBarHintForeground\":\"#a6da95\",\"errorLens.statusBarIconErrorForeground\":\"#ed8796\",\"errorLens.statusBarIconWarningForeground\":\"#f5a97f\",\"errorLens.statusBarInfoForeground\":\"#8aadf4\",\"errorLens.statusBarWarningForeground\":\"#f5a97f\",\"errorLens.warningBackground\":\"#f5a97f26\",\"errorLens.warningBackgroundLight\":\"#f5a97f26\",\"errorLens.warningForeground\":\"#f5a97f\",\"errorLens.warningForegroundLight\":\"#f5a97f\",\"errorLens.warningMessageBackground\":\"#f5a97f26\",\"extensionBadge.remoteBackground\":\"#8aadf4\",\"extensionBadge.remoteForeground\":\"#181926\",\"extensionButton.prominentBackground\":\"#c6a0f6\",\"extensionButton.prominentForeground\":\"#181926\",\"extensionButton.prominentHoverBackground\":\"#dac1f9\",\"extensionButton.separator\":\"#24273a\",\"extensionIcon.preReleaseForeground\":\"#5b6078\",\"extensionIcon.sponsorForeground\":\"#f5bde6\",\"extensionIcon.starForeground\":\"#eed49f\",\"extensionIcon.verifiedForeground\":\"#a6da95\",\"focusBorder\":\"#c6a0f6\",\"foreground\":\"#cad3f5\",\"gitDecoration.addedResourceForeground\":\"#a6da95\",\"gitDecoration.conflictingResourceForeground\":\"#c6a0f6\",\"gitDecoration.deletedResourceForeground\":\"#ed8796\",\"gitDecoration.ignoredResourceForeground\":\"#6e738d\",\"gitDecoration.modifiedResourceForeground\":\"#eed49f\",\"gitDecoration.stageDeletedResourceForeground\":\"#ed8796\",\"gitDecoration.stageModifiedResourceForeground\":\"#eed49f\",\"gitDecoration.submoduleResourceForeground\":\"#8aadf4\",\"gitDecoration.untrackedResourceForeground\":\"#a6da95\",\"gitlens.closedAutolinkedIssueIconColor\":\"#c6a0f6\",\"gitlens.closedPullRequestIconColor\":\"#ed8796\",\"gitlens.decorations.branchAheadForegroundColor\":\"#a6da95\",\"gitlens.decorations.branchBehindForegroundColor\":\"#f5a97f\",\"gitlens.decorations.branchDivergedForegroundColor\":\"#eed49f\",\"gitlens.decorations.branchMissingUpstreamForegroundColor\":\"#f5a97f\",\"gitlens.decorations.branchUnpublishedForegroundColor\":\"#a6da95\",\"gitlens.decorations.statusMergingOrRebasingConflictForegroundColor\":\"#ee99a0\",\"gitlens.decorations.statusMergingOrRebasingForegroundColor\":\"#eed49f\",\"gitlens.decorations.workspaceCurrentForegroundColor\":\"#c6a0f6\",\"gitlens.decorations.workspaceRepoMissingForegroundColor\":\"#a5adcb\",\"gitlens.decorations.workspaceRepoOpenForegroundColor\":\"#c6a0f6\",\"gitlens.decorations.worktreeHasUncommittedChangesForegroundColor\":\"#f5a97f\",\"gitlens.decorations.worktreeMissingForegroundColor\":\"#ee99a0\",\"gitlens.graphChangesColumnAddedColor\":\"#a6da95\",\"gitlens.graphChangesColumnDeletedColor\":\"#ed8796\",\"gitlens.graphLane10Color\":\"#f5bde6\",\"gitlens.graphLane1Color\":\"#c6a0f6\",\"gitlens.graphLane2Color\":\"#eed49f\",\"gitlens.graphLane3Color\":\"#8aadf4\",\"gitlens.graphLane4Color\":\"#f0c6c6\",\"gitlens.graphLane5Color\":\"#a6da95\",\"gitlens.graphLane6Color\":\"#b7bdf8\",\"gitlens.graphLane7Color\":\"#f4dbd6\",\"gitlens.graphLane8Color\":\"#ed8796\",\"gitlens.graphLane9Color\":\"#8bd5ca\",\"gitlens.graphMinimapMarkerHeadColor\":\"#a6da95\",\"gitlens.graphMinimapMarkerHighlightsColor\":\"#eed49f\",\"gitlens.graphMinimapMarkerLocalBranchesColor\":\"#8aadf4\",\"gitlens.graphMinimapMarkerRemoteBranchesColor\":\"#739df2\",\"gitlens.graphMinimapMarkerStashesColor\":\"#c6a0f6\",\"gitlens.graphMinimapMarkerTagsColor\":\"#f0c6c6\",\"gitlens.graphMinimapMarkerUpstreamColor\":\"#96d382\",\"gitlens.graphScrollMarkerHeadColor\":\"#a6da95\",\"gitlens.graphScrollMarkerHighlightsColor\":\"#eed49f\",\"gitlens.graphScrollMarkerLocalBranchesColor\":\"#8aadf4\",\"gitlens.graphScrollMarkerRemoteBranchesColor\":\"#739df2\",\"gitlens.graphScrollMarkerStashesColor\":\"#c6a0f6\",\"gitlens.graphScrollMarkerTagsColor\":\"#f0c6c6\",\"gitlens.graphScrollMarkerUpstreamColor\":\"#96d382\",\"gitlens.gutterBackgroundColor\":\"#363a4f4d\",\"gitlens.gutterForegroundColor\":\"#cad3f5\",\"gitlens.gutterUncommittedForegroundColor\":\"#c6a0f6\",\"gitlens.lineHighlightBackgroundColor\":\"#c6a0f626\",\"gitlens.lineHighlightOverviewRulerColor\":\"#c6a0f6cc\",\"gitlens.mergedPullRequestIconColor\":\"#c6a0f6\",\"gitlens.openAutolinkedIssueIconColor\":\"#a6da95\",\"gitlens.openPullRequestIconColor\":\"#a6da95\",\"gitlens.trailingLineBackgroundColor\":\"#00000000\",\"gitlens.trailingLineForegroundColor\":\"#cad3f54d\",\"gitlens.unpublishedChangesIconColor\":\"#a6da95\",\"gitlens.unpublishedCommitIconColor\":\"#a6da95\",\"gitlens.unpulledChangesIconColor\":\"#f5a97f\",\"icon.foreground\":\"#c6a0f6\",\"input.background\":\"#363a4f\",\"input.border\":\"#00000000\",\"input.foreground\":\"#cad3f5\",\"input.placeholderForeground\":\"#cad3f573\",\"inputOption.activeBackground\":\"#5b6078\",\"inputOption.activeBorder\":\"#c6a0f6\",\"inputOption.activeForeground\":\"#cad3f5\",\"inputValidation.errorBackground\":\"#ed8796\",\"inputValidation.errorBorder\":\"#18192633\",\"inputValidation.errorForeground\":\"#181926\",\"inputValidation.infoBackground\":\"#8aadf4\",\"inputValidation.infoBorder\":\"#18192633\",\"inputValidation.infoForeground\":\"#181926\",\"inputValidation.warningBackground\":\"#f5a97f\",\"inputValidation.warningBorder\":\"#18192633\",\"inputValidation.warningForeground\":\"#181926\",\"issues.closed\":\"#c6a0f6\",\"issues.newIssueDecoration\":\"#f4dbd6\",\"issues.open\":\"#a6da95\",\"list.activeSelectionBackground\":\"#363a4f\",\"list.activeSelectionForeground\":\"#cad3f5\",\"list.dropBackground\":\"#c6a0f633\",\"list.focusAndSelectionBackground\":\"#494d64\",\"list.focusBackground\":\"#363a4f\",\"list.focusForeground\":\"#cad3f5\",\"list.focusOutline\":\"#00000000\",\"list.highlightForeground\":\"#c6a0f6\",\"list.hoverBackground\":\"#363a4f80\",\"list.hoverForeground\":\"#cad3f5\",\"list.inactiveSelectionBackground\":\"#363a4f\",\"list.inactiveSelectionForeground\":\"#cad3f5\",\"list.warningForeground\":\"#f5a97f\",\"listFilterWidget.background\":\"#494d64\",\"listFilterWidget.noMatchesOutline\":\"#ed8796\",\"listFilterWidget.outline\":\"#00000000\",\"menu.background\":\"#24273a\",\"menu.border\":\"#24273a80\",\"menu.foreground\":\"#cad3f5\",\"menu.selectionBackground\":\"#5b6078\",\"menu.selectionBorder\":\"#00000000\",\"menu.selectionForeground\":\"#cad3f5\",\"menu.separatorBackground\":\"#5b6078\",\"menubar.selectionBackground\":\"#494d64\",\"menubar.selectionForeground\":\"#cad3f5\",\"merge.commonContentBackground\":\"#494d64\",\"merge.commonHeaderBackground\":\"#5b6078\",\"merge.currentContentBackground\":\"#a6da9533\",\"merge.currentHeaderBackground\":\"#a6da9566\",\"merge.incomingContentBackground\":\"#8aadf433\",\"merge.incomingHeaderBackground\":\"#8aadf466\",\"minimap.background\":\"#1e203080\",\"minimap.errorHighlight\":\"#ed8796bf\",\"minimap.findMatchHighlight\":\"#91d7e34d\",\"minimap.selectionHighlight\":\"#5b6078bf\",\"minimap.selectionOccurrenceHighlight\":\"#5b6078bf\",\"minimap.warningHighlight\":\"#f5a97fbf\",\"minimapGutter.addedBackground\":\"#a6da95bf\",\"minimapGutter.deletedBackground\":\"#ed8796bf\",\"minimapGutter.modifiedBackground\":\"#eed49fbf\",\"minimapSlider.activeBackground\":\"#c6a0f699\",\"minimapSlider.background\":\"#c6a0f633\",\"minimapSlider.hoverBackground\":\"#c6a0f666\",\"notificationCenter.border\":\"#c6a0f6\",\"notificationCenterHeader.background\":\"#1e2030\",\"notificationCenterHeader.foreground\":\"#cad3f5\",\"notificationLink.foreground\":\"#8aadf4\",\"notificationToast.border\":\"#c6a0f6\",\"notifications.background\":\"#1e2030\",\"notifications.border\":\"#c6a0f6\",\"notifications.foreground\":\"#cad3f5\",\"notificationsErrorIcon.foreground\":\"#ed8796\",\"notificationsInfoIcon.foreground\":\"#8aadf4\",\"notificationsWarningIcon.foreground\":\"#f5a97f\",\"panel.background\":\"#24273a\",\"panel.border\":\"#5b6078\",\"panelSection.border\":\"#5b6078\",\"panelSection.dropBackground\":\"#c6a0f633\",\"panelTitle.activeBorder\":\"#c6a0f6\",\"panelTitle.activeForeground\":\"#cad3f5\",\"panelTitle.inactiveForeground\":\"#a5adcb\",\"peekView.border\":\"#c6a0f6\",\"peekViewEditor.background\":\"#1e2030\",\"peekViewEditor.matchHighlightBackground\":\"#91d7e34d\",\"peekViewEditor.matchHighlightBorder\":\"#00000000\",\"peekViewEditorGutter.background\":\"#1e2030\",\"peekViewResult.background\":\"#1e2030\",\"peekViewResult.fileForeground\":\"#cad3f5\",\"peekViewResult.lineForeground\":\"#cad3f5\",\"peekViewResult.matchHighlightBackground\":\"#91d7e34d\",\"peekViewResult.selectionBackground\":\"#363a4f\",\"peekViewResult.selectionForeground\":\"#cad3f5\",\"peekViewTitle.background\":\"#24273a\",\"peekViewTitleDescription.foreground\":\"#b8c0e0b3\",\"peekViewTitleLabel.foreground\":\"#cad3f5\",\"pickerGroup.border\":\"#c6a0f6\",\"pickerGroup.foreground\":\"#c6a0f6\",\"problemsErrorIcon.foreground\":\"#ed8796\",\"problemsInfoIcon.foreground\":\"#8aadf4\",\"problemsWarningIcon.foreground\":\"#f5a97f\",\"progressBar.background\":\"#c6a0f6\",\"pullRequests.closed\":\"#ed8796\",\"pullRequests.draft\":\"#939ab7\",\"pullRequests.merged\":\"#c6a0f6\",\"pullRequests.notification\":\"#cad3f5\",\"pullRequests.open\":\"#a6da95\",\"sash.hoverBorder\":\"#c6a0f6\",\"scrollbar.shadow\":\"#181926\",\"scrollbarSlider.activeBackground\":\"#363a4f66\",\"scrollbarSlider.background\":\"#5b607880\",\"scrollbarSlider.hoverBackground\":\"#6e738d\",\"selection.background\":\"#c6a0f666\",\"settings.dropdownBackground\":\"#494d64\",\"settings.dropdownListBorder\":\"#00000000\",\"settings.focusedRowBackground\":\"#5b607833\",\"settings.headerForeground\":\"#cad3f5\",\"settings.modifiedItemIndicator\":\"#c6a0f6\",\"settings.numberInputBackground\":\"#494d64\",\"settings.numberInputBorder\":\"#00000000\",\"settings.textInputBackground\":\"#494d64\",\"settings.textInputBorder\":\"#00000000\",\"sideBar.background\":\"#1e2030\",\"sideBar.border\":\"#00000000\",\"sideBar.dropBackground\":\"#c6a0f633\",\"sideBar.foreground\":\"#cad3f5\",\"sideBarSectionHeader.background\":\"#1e2030\",\"sideBarSectionHeader.foreground\":\"#cad3f5\",\"sideBarTitle.foreground\":\"#c6a0f6\",\"statusBar.background\":\"#181926\",\"statusBar.border\":\"#00000000\",\"statusBar.debuggingBackground\":\"#f5a97f\",\"statusBar.debuggingBorder\":\"#00000000\",\"statusBar.debuggingForeground\":\"#181926\",\"statusBar.foreground\":\"#cad3f5\",\"statusBar.noFolderBackground\":\"#181926\",\"statusBar.noFolderBorder\":\"#00000000\",\"statusBar.noFolderForeground\":\"#cad3f5\",\"statusBarItem.activeBackground\":\"#5b607866\",\"statusBarItem.errorBackground\":\"#00000000\",\"statusBarItem.errorForeground\":\"#ed8796\",\"statusBarItem.hoverBackground\":\"#5b607833\",\"statusBarItem.prominentBackground\":\"#00000000\",\"statusBarItem.prominentForeground\":\"#c6a0f6\",\"statusBarItem.prominentHoverBackground\":\"#5b607833\",\"statusBarItem.remoteBackground\":\"#8aadf4\",\"statusBarItem.remoteForeground\":\"#181926\",\"statusBarItem.warningBackground\":\"#00000000\",\"statusBarItem.warningForeground\":\"#f5a97f\",\"symbolIcon.arrayForeground\":\"#f5a97f\",\"symbolIcon.booleanForeground\":\"#c6a0f6\",\"symbolIcon.classForeground\":\"#eed49f\",\"symbolIcon.colorForeground\":\"#f5bde6\",\"symbolIcon.constantForeground\":\"#f5a97f\",\"symbolIcon.constructorForeground\":\"#b7bdf8\",\"symbolIcon.enumeratorForeground\":\"#eed49f\",\"symbolIcon.enumeratorMemberForeground\":\"#eed49f\",\"symbolIcon.eventForeground\":\"#f5bde6\",\"symbolIcon.fieldForeground\":\"#cad3f5\",\"symbolIcon.fileForeground\":\"#c6a0f6\",\"symbolIcon.folderForeground\":\"#c6a0f6\",\"symbolIcon.functionForeground\":\"#8aadf4\",\"symbolIcon.interfaceForeground\":\"#eed49f\",\"symbolIcon.keyForeground\":\"#8bd5ca\",\"symbolIcon.keywordForeground\":\"#c6a0f6\",\"symbolIcon.methodForeground\":\"#8aadf4\",\"symbolIcon.moduleForeground\":\"#cad3f5\",\"symbolIcon.namespaceForeground\":\"#eed49f\",\"symbolIcon.nullForeground\":\"#ee99a0\",\"symbolIcon.numberForeground\":\"#f5a97f\",\"symbolIcon.objectForeground\":\"#eed49f\",\"symbolIcon.operatorForeground\":\"#8bd5ca\",\"symbolIcon.packageForeground\":\"#f0c6c6\",\"symbolIcon.propertyForeground\":\"#ee99a0\",\"symbolIcon.referenceForeground\":\"#eed49f\",\"symbolIcon.snippetForeground\":\"#f0c6c6\",\"symbolIcon.stringForeground\":\"#a6da95\",\"symbolIcon.structForeground\":\"#8bd5ca\",\"symbolIcon.textForeground\":\"#cad3f5\",\"symbolIcon.typeParameterForeground\":\"#ee99a0\",\"symbolIcon.unitForeground\":\"#cad3f5\",\"symbolIcon.variableForeground\":\"#cad3f5\",\"tab.activeBackground\":\"#24273a\",\"tab.activeBorder\":\"#00000000\",\"tab.activeBorderTop\":\"#c6a0f6\",\"tab.activeForeground\":\"#c6a0f6\",\"tab.activeModifiedBorder\":\"#eed49f\",\"tab.border\":\"#1e2030\",\"tab.hoverBackground\":\"#2e324a\",\"tab.hoverBorder\":\"#00000000\",\"tab.hoverForeground\":\"#c6a0f6\",\"tab.inactiveBackground\":\"#1e2030\",\"tab.inactiveForeground\":\"#6e738d\",\"tab.inactiveModifiedBorder\":\"#eed49f4d\",\"tab.lastPinnedBorder\":\"#c6a0f6\",\"tab.unfocusedActiveBackground\":\"#1e2030\",\"tab.unfocusedActiveBorder\":\"#00000000\",\"tab.unfocusedActiveBorderTop\":\"#c6a0f64d\",\"tab.unfocusedInactiveBackground\":\"#141620\",\"table.headerBackground\":\"#363a4f\",\"table.headerForeground\":\"#cad3f5\",\"terminal.ansiBlack\":\"#494d64\",\"terminal.ansiBlue\":\"#8aadf4\",\"terminal.ansiBrightBlack\":\"#5b6078\",\"terminal.ansiBrightBlue\":\"#78a1f6\",\"terminal.ansiBrightCyan\":\"#63cbc0\",\"terminal.ansiBrightGreen\":\"#8ccf7f\",\"terminal.ansiBrightMagenta\":\"#f2a9dd\",\"terminal.ansiBrightRed\":\"#ec7486\",\"terminal.ansiBrightWhite\":\"#b8c0e0\",\"terminal.ansiBrightYellow\":\"#e1c682\",\"terminal.ansiCyan\":\"#8bd5ca\",\"terminal.ansiGreen\":\"#a6da95\",\"terminal.ansiMagenta\":\"#f5bde6\",\"terminal.ansiRed\":\"#ed8796\",\"terminal.ansiWhite\":\"#a5adcb\",\"terminal.ansiYellow\":\"#eed49f\",\"terminal.border\":\"#5b6078\",\"terminal.dropBackground\":\"#c6a0f633\",\"terminal.foreground\":\"#cad3f5\",\"terminal.inactiveSelectionBackground\":\"#5b607880\",\"terminal.selectionBackground\":\"#5b6078\",\"terminal.tab.activeBorder\":\"#c6a0f6\",\"terminalCommandDecoration.defaultBackground\":\"#5b6078\",\"terminalCommandDecoration.errorBackground\":\"#ed8796\",\"terminalCommandDecoration.successBackground\":\"#a6da95\",\"terminalCursor.background\":\"#24273a\",\"terminalCursor.foreground\":\"#f4dbd6\",\"textBlockQuote.background\":\"#1e2030\",\"textBlockQuote.border\":\"#181926\",\"textCodeBlock.background\":\"#24273a\",\"textLink.activeForeground\":\"#91d7e3\",\"textLink.foreground\":\"#8aadf4\",\"textPreformat.foreground\":\"#cad3f5\",\"textSeparator.foreground\":\"#c6a0f6\",\"titleBar.activeBackground\":\"#181926\",\"titleBar.activeForeground\":\"#cad3f5\",\"titleBar.border\":\"#00000000\",\"titleBar.inactiveBackground\":\"#181926\",\"titleBar.inactiveForeground\":\"#cad3f580\",\"tree.inactiveIndentGuidesStroke\":\"#494d64\",\"tree.indentGuidesStroke\":\"#939ab7\",\"walkThrough.embeddedEditorBackground\":\"#24273a4d\",\"welcomePage.progress.background\":\"#181926\",\"welcomePage.progress.foreground\":\"#c6a0f6\",\"welcomePage.tileBackground\":\"#1e2030\",\"widget.shadow\":\"#1e203080\",\"window.activeBorder\":\"#00000000\",\"window.inactiveBorder\":\"#00000000\"},\"displayName\":\"Catppuccin Macchiato\",\"name\":\"catppuccin-macchiato\",\"semanticHighlighting\":true,\"semanticTokenColors\":{\"boolean\":{\"foreground\":\"#f5a97f\"},\"builtinAttribute.attribute.library:rust\":{\"foreground\":\"#8aadf4\"},\"class.builtin:python\":{\"foreground\":\"#c6a0f6\"},\"class:python\":{\"foreground\":\"#eed49f\"},\"constant.builtin.readonly:nix\":{\"foreground\":\"#c6a0f6\"},\"enumMember\":{\"foreground\":\"#8bd5ca\"},\"function.decorator:python\":{\"foreground\":\"#f5a97f\"},\"generic.attribute:rust\":{\"foreground\":\"#cad3f5\"},\"heading\":{\"foreground\":\"#ed8796\"},\"number\":{\"foreground\":\"#f5a97f\"},\"pol\":{\"foreground\":\"#f0c6c6\"},\"property.readonly:javascript\":{\"foreground\":\"#cad3f5\"},\"property.readonly:javascriptreact\":{\"foreground\":\"#cad3f5\"},\"property.readonly:typescript\":{\"foreground\":\"#cad3f5\"},\"property.readonly:typescriptreact\":{\"foreground\":\"#cad3f5\"},\"selfKeyword\":{\"foreground\":\"#ed8796\"},\"text.emph\":{\"fontStyle\":\"italic\",\"foreground\":\"#ed8796\"},\"text.math\":{\"foreground\":\"#f0c6c6\"},\"text.strong\":{\"fontStyle\":\"bold\",\"foreground\":\"#ed8796\"},\"tomlArrayKey\":{\"fontStyle\":\"\",\"foreground\":\"#8aadf4\"},\"tomlTableKey\":{\"fontStyle\":\"\",\"foreground\":\"#8aadf4\"},\"type.defaultLibrary:go\":{\"foreground\":\"#c6a0f6\"},\"variable.defaultLibrary\":{\"foreground\":\"#ee99a0\"},\"variable.readonly.defaultLibrary:go\":{\"foreground\":\"#c6a0f6\"},\"variable.readonly:javascript\":{\"foreground\":\"#cad3f5\"},\"variable.readonly:javascriptreact\":{\"foreground\":\"#cad3f5\"},\"variable.readonly:scala\":{\"foreground\":\"#cad3f5\"},\"variable.readonly:typescript\":{\"foreground\":\"#cad3f5\"},\"variable.readonly:typescriptreact\":{\"foreground\":\"#cad3f5\"},\"variable.typeHint:python\":{\"foreground\":\"#eed49f\"}},\"tokenColors\":[{\"scope\":[\"text\",\"source\",\"variable.other.readwrite\",\"punctuation.definition.variable\"],\"settings\":{\"foreground\":\"#cad3f5\"}},{\"scope\":\"punctuation\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#939ab7\"}},{\"scope\":[\"comment\",\"punctuation.definition.comment\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#6e738d\"}},{\"scope\":[\"string\",\"punctuation.definition.string\"],\"settings\":{\"foreground\":\"#a6da95\"}},{\"scope\":\"constant.character.escape\",\"settings\":{\"foreground\":\"#f5bde6\"}},{\"scope\":[\"constant.numeric\",\"variable.other.constant\",\"entity.name.constant\",\"constant.language.boolean\",\"constant.language.false\",\"constant.language.true\",\"keyword.other.unit.user-defined\",\"keyword.other.unit.suffix.floating-point\"],\"settings\":{\"foreground\":\"#f5a97f\"}},{\"scope\":[\"keyword\",\"keyword.operator.word\",\"keyword.operator.new\",\"variable.language.super\",\"support.type.primitive\",\"storage.type\",\"storage.modifier\",\"punctuation.definition.keyword\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#c6a0f6\"}},{\"scope\":\"entity.name.tag.documentation\",\"settings\":{\"foreground\":\"#c6a0f6\"}},{\"scope\":[\"keyword.operator\",\"punctuation.accessor\",\"punctuation.definition.generic\",\"meta.function.closure punctuation.section.parameters\",\"punctuation.definition.tag\",\"punctuation.separator.key-value\"],\"settings\":{\"foreground\":\"#8bd5ca\"}},{\"scope\":[\"entity.name.function\",\"meta.function-call.method\",\"support.function\",\"support.function.misc\",\"variable.function\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#8aadf4\"}},{\"scope\":[\"entity.name.class\",\"entity.other.inherited-class\",\"support.class\",\"meta.function-call.constructor\",\"entity.name.struct\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#eed49f\"}},{\"scope\":\"entity.name.enum\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#eed49f\"}},{\"scope\":[\"meta.enum variable.other.readwrite\",\"variable.other.enummember\"],\"settings\":{\"foreground\":\"#8bd5ca\"}},{\"scope\":\"meta.property.object\",\"settings\":{\"foreground\":\"#8bd5ca\"}},{\"scope\":[\"meta.type\",\"meta.type-alias\",\"support.type\",\"entity.name.type\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#eed49f\"}},{\"scope\":[\"meta.annotation variable.function\",\"meta.annotation variable.annotation.function\",\"meta.annotation punctuation.definition.annotation\",\"meta.decorator\",\"punctuation.decorator\"],\"settings\":{\"foreground\":\"#f5a97f\"}},{\"scope\":[\"variable.parameter\",\"meta.function.parameters\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#ee99a0\"}},{\"scope\":[\"constant.language\",\"support.function.builtin\"],\"settings\":{\"foreground\":\"#ed8796\"}},{\"scope\":\"entity.other.attribute-name.documentation\",\"settings\":{\"foreground\":\"#ed8796\"}},{\"scope\":[\"keyword.control.directive\",\"punctuation.definition.directive\"],\"settings\":{\"foreground\":\"#eed49f\"}},{\"scope\":\"punctuation.definition.typeparameters\",\"settings\":{\"foreground\":\"#91d7e3\"}},{\"scope\":\"entity.name.namespace\",\"settings\":{\"foreground\":\"#eed49f\"}},{\"scope\":\"support.type.property-name.css\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#8aadf4\"}},{\"scope\":[\"variable.language.this\",\"variable.language.this punctuation.definition.variable\"],\"settings\":{\"foreground\":\"#ed8796\"}},{\"scope\":\"variable.object.property\",\"settings\":{\"foreground\":\"#cad3f5\"}},{\"scope\":[\"string.template variable\",\"string variable\"],\"settings\":{\"foreground\":\"#cad3f5\"}},{\"scope\":\"keyword.operator.new\",\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":\"storage.modifier.specifier.extern.cpp\",\"settings\":{\"foreground\":\"#c6a0f6\"}},{\"scope\":[\"entity.name.scope-resolution.template.call.cpp\",\"entity.name.scope-resolution.parameter.cpp\",\"entity.name.scope-resolution.cpp\",\"entity.name.scope-resolution.function.definition.cpp\"],\"settings\":{\"foreground\":\"#eed49f\"}},{\"scope\":\"storage.type.class.doxygen\",\"settings\":{\"fontStyle\":\"\"}},{\"scope\":[\"storage.modifier.reference.cpp\"],\"settings\":{\"foreground\":\"#8bd5ca\"}},{\"scope\":\"meta.interpolation.cs\",\"settings\":{\"foreground\":\"#cad3f5\"}},{\"scope\":\"comment.block.documentation.cs\",\"settings\":{\"foreground\":\"#cad3f5\"}},{\"scope\":[\"source.css entity.other.attribute-name.class.css\",\"entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css\"],\"settings\":{\"foreground\":\"#eed49f\"}},{\"scope\":\"punctuation.separator.operator.css\",\"settings\":{\"foreground\":\"#8bd5ca\"}},{\"scope\":\"source.css entity.other.attribute-name.pseudo-class\",\"settings\":{\"foreground\":\"#8bd5ca\"}},{\"scope\":\"source.css constant.other.unicode-range\",\"settings\":{\"foreground\":\"#f5a97f\"}},{\"scope\":\"source.css variable.parameter.url\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#a6da95\"}},{\"scope\":[\"support.type.vendored.property-name\"],\"settings\":{\"foreground\":\"#91d7e3\"}},{\"scope\":[\"source.css meta.property-value variable\",\"source.css meta.property-value variable.other.less\",\"source.css meta.property-value variable.other.less punctuation.definition.variable.less\",\"meta.definition.variable.scss\"],\"settings\":{\"foreground\":\"#ee99a0\"}},{\"scope\":[\"source.css meta.property-list variable\",\"meta.property-list variable.other.less\",\"meta.property-list variable.other.less punctuation.definition.variable.less\"],\"settings\":{\"foreground\":\"#8aadf4\"}},{\"scope\":\"keyword.other.unit.percentage.css\",\"settings\":{\"foreground\":\"#f5a97f\"}},{\"scope\":\"source.css meta.attribute-selector\",\"settings\":{\"foreground\":\"#a6da95\"}},{\"scope\":[\"keyword.other.definition.ini\",\"punctuation.support.type.property-name.json\",\"support.type.property-name.json\",\"punctuation.support.type.property-name.toml\",\"support.type.property-name.toml\",\"entity.name.tag.yaml\",\"punctuation.support.type.property-name.yaml\",\"support.type.property-name.yaml\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#8aadf4\"}},{\"scope\":[\"constant.language.json\",\"constant.language.yaml\"],\"settings\":{\"foreground\":\"#f5a97f\"}},{\"scope\":[\"entity.name.type.anchor.yaml\",\"variable.other.alias.yaml\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#eed49f\"}},{\"scope\":[\"support.type.property-name.table\",\"entity.name.section.group-title.ini\"],\"settings\":{\"foreground\":\"#eed49f\"}},{\"scope\":\"constant.other.time.datetime.offset.toml\",\"settings\":{\"foreground\":\"#f5bde6\"}},{\"scope\":[\"punctuation.definition.anchor.yaml\",\"punctuation.definition.alias.yaml\"],\"settings\":{\"foreground\":\"#f5bde6\"}},{\"scope\":\"entity.other.document.begin.yaml\",\"settings\":{\"foreground\":\"#f5bde6\"}},{\"scope\":\"markup.changed.diff\",\"settings\":{\"foreground\":\"#f5a97f\"}},{\"scope\":[\"meta.diff.header.from-file\",\"meta.diff.header.to-file\",\"punctuation.definition.from-file.diff\",\"punctuation.definition.to-file.diff\"],\"settings\":{\"foreground\":\"#8aadf4\"}},{\"scope\":\"markup.inserted.diff\",\"settings\":{\"foreground\":\"#a6da95\"}},{\"scope\":\"markup.deleted.diff\",\"settings\":{\"foreground\":\"#ed8796\"}},{\"scope\":[\"variable.other.env\"],\"settings\":{\"foreground\":\"#8aadf4\"}},{\"scope\":[\"string.quoted variable.other.env\"],\"settings\":{\"foreground\":\"#cad3f5\"}},{\"scope\":\"support.function.builtin.gdscript\",\"settings\":{\"foreground\":\"#8aadf4\"}},{\"scope\":\"constant.language.gdscript\",\"settings\":{\"foreground\":\"#f5a97f\"}},{\"scope\":\"comment meta.annotation.go\",\"settings\":{\"foreground\":\"#ee99a0\"}},{\"scope\":\"comment meta.annotation.parameters.go\",\"settings\":{\"foreground\":\"#f5a97f\"}},{\"scope\":\"constant.language.go\",\"settings\":{\"foreground\":\"#f5a97f\"}},{\"scope\":\"variable.graphql\",\"settings\":{\"foreground\":\"#cad3f5\"}},{\"scope\":\"string.unquoted.alias.graphql\",\"settings\":{\"foreground\":\"#f0c6c6\"}},{\"scope\":\"constant.character.enum.graphql\",\"settings\":{\"foreground\":\"#8bd5ca\"}},{\"scope\":\"meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql\",\"settings\":{\"foreground\":\"#f0c6c6\"}},{\"scope\":[\"keyword.other.doctype\",\"meta.tag.sgml.doctype punctuation.definition.tag\",\"meta.tag.metadata.doctype entity.name.tag\",\"meta.tag.metadata.doctype punctuation.definition.tag\"],\"settings\":{\"foreground\":\"#c6a0f6\"}},{\"scope\":[\"entity.name.tag\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#8aadf4\"}},{\"scope\":[\"text.html constant.character.entity\",\"text.html constant.character.entity punctuation\",\"constant.character.entity.xml\",\"constant.character.entity.xml punctuation\",\"constant.character.entity.js.jsx\",\"constant.charactger.entity.js.jsx punctuation\",\"constant.character.entity.tsx\",\"constant.character.entity.tsx punctuation\"],\"settings\":{\"foreground\":\"#ed8796\"}},{\"scope\":[\"entity.other.attribute-name\"],\"settings\":{\"foreground\":\"#eed49f\"}},{\"scope\":[\"support.class.component\",\"support.class.component.jsx\",\"support.class.component.tsx\",\"support.class.component.vue\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#f5bde6\"}},{\"scope\":[\"punctuation.definition.annotation\",\"storage.type.annotation\"],\"settings\":{\"foreground\":\"#f5a97f\"}},{\"scope\":\"constant.other.enum.java\",\"settings\":{\"foreground\":\"#8bd5ca\"}},{\"scope\":\"storage.modifier.import.java\",\"settings\":{\"foreground\":\"#cad3f5\"}},{\"scope\":\"comment.block.javadoc.java keyword.other.documentation.javadoc.java\",\"settings\":{\"fontStyle\":\"\"}},{\"scope\":\"meta.export variable.other.readwrite.js\",\"settings\":{\"foreground\":\"#ee99a0\"}},{\"scope\":[\"variable.other.constant.js\",\"variable.other.constant.ts\",\"variable.other.property.js\",\"variable.other.property.ts\"],\"settings\":{\"foreground\":\"#cad3f5\"}},{\"scope\":[\"variable.other.jsdoc\",\"comment.block.documentation variable.other\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#ee99a0\"}},{\"scope\":\"storage.type.class.jsdoc\",\"settings\":{\"fontStyle\":\"\"}},{\"scope\":\"support.type.object.console.js\",\"settings\":{\"foreground\":\"#cad3f5\"}},{\"scope\":[\"support.constant.node\",\"support.type.object.module.js\"],\"settings\":{\"foreground\":\"#c6a0f6\"}},{\"scope\":\"storage.modifier.implements\",\"settings\":{\"foreground\":\"#c6a0f6\"}},{\"scope\":[\"constant.language.null.js\",\"constant.language.null.ts\",\"constant.language.undefined.js\",\"constant.language.undefined.ts\",\"support.type.builtin.ts\"],\"settings\":{\"foreground\":\"#c6a0f6\"}},{\"scope\":\"variable.parameter.generic\",\"settings\":{\"foreground\":\"#eed49f\"}},{\"scope\":[\"keyword.declaration.function.arrow.js\",\"storage.type.function.arrow.ts\"],\"settings\":{\"foreground\":\"#8bd5ca\"}},{\"scope\":\"punctuation.decorator.ts\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#8aadf4\"}},{\"scope\":[\"keyword.operator.expression.in.js\",\"keyword.operator.expression.in.ts\",\"keyword.operator.expression.infer.ts\",\"keyword.operator.expression.instanceof.js\",\"keyword.operator.expression.instanceof.ts\",\"keyword.operator.expression.is\",\"keyword.operator.expression.keyof.ts\",\"keyword.operator.expression.of.js\",\"keyword.operator.expression.of.ts\",\"keyword.operator.expression.typeof.ts\"],\"settings\":{\"foreground\":\"#c6a0f6\"}},{\"scope\":\"support.function.macro.julia\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#8bd5ca\"}},{\"scope\":\"constant.language.julia\",\"settings\":{\"foreground\":\"#f5a97f\"}},{\"scope\":\"constant.other.symbol.julia\",\"settings\":{\"foreground\":\"#ee99a0\"}},{\"scope\":\"text.tex keyword.control.preamble\",\"settings\":{\"foreground\":\"#8bd5ca\"}},{\"scope\":\"text.tex support.function.be\",\"settings\":{\"foreground\":\"#91d7e3\"}},{\"scope\":\"constant.other.general.math.tex\",\"settings\":{\"foreground\":\"#f0c6c6\"}},{\"scope\":\"variable.language.liquid\",\"settings\":{\"foreground\":\"#f5bde6\"}},{\"scope\":\"comment.line.double-dash.documentation.lua storage.type.annotation.lua\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#c6a0f6\"}},{\"scope\":[\"comment.line.double-dash.documentation.lua entity.name.variable.lua\",\"comment.line.double-dash.documentation.lua variable.lua\"],\"settings\":{\"foreground\":\"#cad3f5\"}},{\"scope\":[\"heading.1.markdown punctuation.definition.heading.markdown\",\"heading.1.markdown\",\"heading.1.quarto punctuation.definition.heading.quarto\",\"heading.1.quarto\",\"markup.heading.atx.1.mdx\",\"markup.heading.atx.1.mdx punctuation.definition.heading.mdx\",\"markup.heading.setext.1.markdown\",\"markup.heading.heading-0.asciidoc\"],\"settings\":{\"foreground\":\"#ed8796\"}},{\"scope\":[\"heading.2.markdown punctuation.definition.heading.markdown\",\"heading.2.markdown\",\"heading.2.quarto punctuation.definition.heading.quarto\",\"heading.2.quarto\",\"markup.heading.atx.2.mdx\",\"markup.heading.atx.2.mdx punctuation.definition.heading.mdx\",\"markup.heading.setext.2.markdown\",\"markup.heading.heading-1.asciidoc\"],\"settings\":{\"foreground\":\"#f5a97f\"}},{\"scope\":[\"heading.3.markdown punctuation.definition.heading.markdown\",\"heading.3.markdown\",\"heading.3.quarto punctuation.definition.heading.quarto\",\"heading.3.quarto\",\"markup.heading.atx.3.mdx\",\"markup.heading.atx.3.mdx punctuation.definition.heading.mdx\",\"markup.heading.heading-2.asciidoc\"],\"settings\":{\"foreground\":\"#eed49f\"}},{\"scope\":[\"heading.4.markdown punctuation.definition.heading.markdown\",\"heading.4.markdown\",\"heading.4.quarto punctuation.definition.heading.quarto\",\"heading.4.quarto\",\"markup.heading.atx.4.mdx\",\"markup.heading.atx.4.mdx punctuation.definition.heading.mdx\",\"markup.heading.heading-3.asciidoc\"],\"settings\":{\"foreground\":\"#a6da95\"}},{\"scope\":[\"heading.5.markdown punctuation.definition.heading.markdown\",\"heading.5.markdown\",\"heading.5.quarto punctuation.definition.heading.quarto\",\"heading.5.quarto\",\"markup.heading.atx.5.mdx\",\"markup.heading.atx.5.mdx punctuation.definition.heading.mdx\",\"markup.heading.heading-4.asciidoc\"],\"settings\":{\"foreground\":\"#8aadf4\"}},{\"scope\":[\"heading.6.markdown punctuation.definition.heading.markdown\",\"heading.6.markdown\",\"heading.6.quarto punctuation.definition.heading.quarto\",\"heading.6.quarto\",\"markup.heading.atx.6.mdx\",\"markup.heading.atx.6.mdx punctuation.definition.heading.mdx\",\"markup.heading.heading-5.asciidoc\"],\"settings\":{\"foreground\":\"#c6a0f6\"}},{\"scope\":\"markup.bold\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#ed8796\"}},{\"scope\":\"markup.italic\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#ed8796\"}},{\"scope\":\"markup.strikethrough\",\"settings\":{\"fontStyle\":\"strikethrough\",\"foreground\":\"#a5adcb\"}},{\"scope\":[\"punctuation.definition.link\",\"markup.underline.link\"],\"settings\":{\"foreground\":\"#8aadf4\"}},{\"scope\":[\"text.html.markdown punctuation.definition.link.title\",\"text.html.quarto punctuation.definition.link.title\",\"string.other.link.title.markdown\",\"string.other.link.title.quarto\",\"markup.link\",\"punctuation.definition.constant.markdown\",\"punctuation.definition.constant.quarto\",\"constant.other.reference.link.markdown\",\"constant.other.reference.link.quarto\",\"markup.substitution.attribute-reference\"],\"settings\":{\"foreground\":\"#b7bdf8\"}},{\"scope\":[\"punctuation.definition.raw.markdown\",\"punctuation.definition.raw.quarto\",\"markup.inline.raw.string.markdown\",\"markup.inline.raw.string.quarto\",\"markup.raw.block.markdown\",\"markup.raw.block.quarto\"],\"settings\":{\"foreground\":\"#a6da95\"}},{\"scope\":\"fenced_code.block.language\",\"settings\":{\"foreground\":\"#91d7e3\"}},{\"scope\":[\"markup.fenced_code.block punctuation.definition\",\"markup.raw support.asciidoc\"],\"settings\":{\"foreground\":\"#939ab7\"}},{\"scope\":[\"markup.quote\",\"punctuation.definition.quote.begin\"],\"settings\":{\"foreground\":\"#f5bde6\"}},{\"scope\":\"meta.separator.markdown\",\"settings\":{\"foreground\":\"#8bd5ca\"}},{\"scope\":[\"punctuation.definition.list.begin.markdown\",\"punctuation.definition.list.begin.quarto\",\"markup.list.bullet\"],\"settings\":{\"foreground\":\"#8bd5ca\"}},{\"scope\":\"markup.heading.quarto\",\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":[\"entity.other.attribute-name.multipart.nix\",\"entity.other.attribute-name.single.nix\"],\"settings\":{\"foreground\":\"#8aadf4\"}},{\"scope\":\"variable.parameter.name.nix\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#cad3f5\"}},{\"scope\":\"meta.embedded variable.parameter.name.nix\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#b7bdf8\"}},{\"scope\":\"string.unquoted.path.nix\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#f5bde6\"}},{\"scope\":[\"support.attribute.builtin\",\"meta.attribute.php\"],\"settings\":{\"foreground\":\"#eed49f\"}},{\"scope\":\"meta.function.parameters.php punctuation.definition.variable.php\",\"settings\":{\"foreground\":\"#ee99a0\"}},{\"scope\":\"constant.language.php\",\"settings\":{\"foreground\":\"#c6a0f6\"}},{\"scope\":\"text.html.php support.function\",\"settings\":{\"foreground\":\"#91d7e3\"}},{\"scope\":\"keyword.other.phpdoc.php\",\"settings\":{\"fontStyle\":\"\"}},{\"scope\":[\"support.variable.magic.python\",\"meta.function-call.arguments.python\"],\"settings\":{\"foreground\":\"#cad3f5\"}},{\"scope\":[\"support.function.magic.python\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#91d7e3\"}},{\"scope\":[\"variable.parameter.function.language.special.self.python\",\"variable.language.special.self.python\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#ed8796\"}},{\"scope\":[\"keyword.control.flow.python\",\"keyword.operator.logical.python\"],\"settings\":{\"foreground\":\"#c6a0f6\"}},{\"scope\":\"storage.type.function.python\",\"settings\":{\"foreground\":\"#c6a0f6\"}},{\"scope\":[\"support.token.decorator.python\",\"meta.function.decorator.identifier.python\"],\"settings\":{\"foreground\":\"#91d7e3\"}},{\"scope\":[\"meta.function-call.python\"],\"settings\":{\"foreground\":\"#8aadf4\"}},{\"scope\":[\"entity.name.function.decorator.python\",\"punctuation.definition.decorator.python\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#f5a97f\"}},{\"scope\":\"constant.character.format.placeholder.other.python\",\"settings\":{\"foreground\":\"#f5bde6\"}},{\"scope\":[\"support.type.exception.python\",\"support.function.builtin.python\"],\"settings\":{\"foreground\":\"#f5a97f\"}},{\"scope\":[\"support.type.python\"],\"settings\":{\"foreground\":\"#f5a97f\"}},{\"scope\":\"constant.language.python\",\"settings\":{\"foreground\":\"#c6a0f6\"}},{\"scope\":[\"meta.indexed-name.python\",\"meta.item-access.python\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#ee99a0\"}},{\"scope\":\"storage.type.string.python\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#a6da95\"}},{\"scope\":\"meta.function.parameters.python\",\"settings\":{\"fontStyle\":\"\"}},{\"scope\":[\"string.regexp punctuation.definition.string.begin\",\"string.regexp punctuation.definition.string.end\"],\"settings\":{\"foreground\":\"#f5bde6\"}},{\"scope\":\"keyword.control.anchor.regexp\",\"settings\":{\"foreground\":\"#c6a0f6\"}},{\"scope\":\"string.regexp.ts\",\"settings\":{\"foreground\":\"#cad3f5\"}},{\"scope\":[\"punctuation.definition.group.regexp\",\"keyword.other.back-reference.regexp\"],\"settings\":{\"foreground\":\"#a6da95\"}},{\"scope\":\"punctuation.definition.character-class.regexp\",\"settings\":{\"foreground\":\"#eed49f\"}},{\"scope\":\"constant.other.character-class.regexp\",\"settings\":{\"foreground\":\"#f5bde6\"}},{\"scope\":\"constant.other.character-class.range.regexp\",\"settings\":{\"foreground\":\"#f4dbd6\"}},{\"scope\":\"keyword.operator.quantifier.regexp\",\"settings\":{\"foreground\":\"#8bd5ca\"}},{\"scope\":\"constant.character.numeric.regexp\",\"settings\":{\"foreground\":\"#f5a97f\"}},{\"scope\":[\"punctuation.definition.group.no-capture.regexp\",\"meta.assertion.look-ahead.regexp\",\"meta.assertion.negative-look-ahead.regexp\"],\"settings\":{\"foreground\":\"#8aadf4\"}},{\"scope\":[\"meta.annotation.rust\",\"meta.annotation.rust punctuation\",\"meta.attribute.rust\",\"punctuation.definition.attribute.rust\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#eed49f\"}},{\"scope\":[\"meta.attribute.rust string.quoted.double.rust\",\"meta.attribute.rust string.quoted.single.char.rust\"],\"settings\":{\"fontStyle\":\"\"}},{\"scope\":[\"entity.name.function.macro.rules.rust\",\"storage.type.module.rust\",\"storage.modifier.rust\",\"storage.type.struct.rust\",\"storage.type.enum.rust\",\"storage.type.trait.rust\",\"storage.type.union.rust\",\"storage.type.impl.rust\",\"storage.type.rust\",\"storage.type.function.rust\",\"storage.type.type.rust\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#c6a0f6\"}},{\"scope\":\"entity.name.type.numeric.rust\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#c6a0f6\"}},{\"scope\":\"meta.generic.rust\",\"settings\":{\"foreground\":\"#f5a97f\"}},{\"scope\":\"entity.name.impl.rust\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#eed49f\"}},{\"scope\":\"entity.name.module.rust\",\"settings\":{\"foreground\":\"#f5a97f\"}},{\"scope\":\"entity.name.trait.rust\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#eed49f\"}},{\"scope\":\"storage.type.source.rust\",\"settings\":{\"foreground\":\"#eed49f\"}},{\"scope\":\"entity.name.union.rust\",\"settings\":{\"foreground\":\"#eed49f\"}},{\"scope\":\"meta.enum.rust storage.type.source.rust\",\"settings\":{\"foreground\":\"#8bd5ca\"}},{\"scope\":[\"support.macro.rust\",\"meta.macro.rust support.function.rust\",\"entity.name.function.macro.rust\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#8aadf4\"}},{\"scope\":[\"storage.modifier.lifetime.rust\",\"entity.name.type.lifetime\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#8aadf4\"}},{\"scope\":\"string.quoted.double.rust constant.other.placeholder.rust\",\"settings\":{\"foreground\":\"#f5bde6\"}},{\"scope\":\"meta.function.return-type.rust meta.generic.rust storage.type.rust\",\"settings\":{\"foreground\":\"#cad3f5\"}},{\"scope\":\"meta.function.call.rust\",\"settings\":{\"foreground\":\"#8aadf4\"}},{\"scope\":\"punctuation.brackets.angle.rust\",\"settings\":{\"foreground\":\"#91d7e3\"}},{\"scope\":\"constant.other.caps.rust\",\"settings\":{\"foreground\":\"#f5a97f\"}},{\"scope\":[\"meta.function.definition.rust variable.other.rust\"],\"settings\":{\"foreground\":\"#ee99a0\"}},{\"scope\":\"meta.function.call.rust variable.other.rust\",\"settings\":{\"foreground\":\"#cad3f5\"}},{\"scope\":\"variable.language.self.rust\",\"settings\":{\"foreground\":\"#ed8796\"}},{\"scope\":[\"variable.other.metavariable.name.rust\",\"meta.macro.metavariable.rust keyword.operator.macro.dollar.rust\"],\"settings\":{\"foreground\":\"#f5bde6\"}},{\"scope\":[\"comment.line.shebang\",\"comment.line.shebang punctuation.definition.comment\",\"comment.line.shebang\",\"punctuation.definition.comment.shebang.shell\",\"meta.shebang.shell\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#f5bde6\"}},{\"scope\":\"comment.line.shebang constant.language\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#8bd5ca\"}},{\"scope\":[\"meta.function-call.arguments.shell punctuation.definition.variable.shell\",\"meta.function-call.arguments.shell punctuation.section.interpolation\",\"meta.function-call.arguments.shell punctuation.definition.variable.shell\",\"meta.function-call.arguments.shell punctuation.section.interpolation\"],\"settings\":{\"foreground\":\"#ed8796\"}},{\"scope\":\"meta.string meta.interpolation.parameter.shell variable.other.readwrite\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#f5a97f\"}},{\"scope\":[\"source.shell punctuation.section.interpolation\",\"punctuation.definition.evaluation.backticks.shell\"],\"settings\":{\"foreground\":\"#8bd5ca\"}},{\"scope\":\"entity.name.tag.heredoc.shell\",\"settings\":{\"foreground\":\"#c6a0f6\"}},{\"scope\":\"string.quoted.double.shell variable.other.normal.shell\",\"settings\":{\"foreground\":\"#cad3f5\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/C-nORZOA.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Dream Maker\",\"fileTypes\":[\"dm\",\"dme\"],\"foldingStartMarker\":\"/\\\\\\\\*\\\\\\\\*(?!\\\\\\\\*)|^(?![^{]*?//|[^{]*?/\\\\\\\\*(?!.*?\\\\\\\\*/.*?\\\\\\\\{)).*?\\\\\\\\{\\\\\\\\s*($|//|/\\\\\\\\*(?!.*?\\\\\\\\*/.*\\\\\\\\S))\",\"foldingStopMarker\":\"(?<!\\\\\\\\*)\\\\\\\\*\\\\\\\\*/|^\\\\\\\\s*\\\\\\\\}\",\"name\":\"dream-maker\",\"patterns\":[{\"include\":\"#preprocessor-rule-enabled\"},{\"include\":\"#preprocessor-rule-disabled\"},{\"include\":\"#preprocessor-rule-other\"},{\"include\":\"#comments\"},{\"captures\":{\"1\":{\"name\":\"storage.type.dm\"},\"2\":{\"name\":\"storage.modifier.dm\"},\"3\":{\"name\":\"storage.type.dm\"},\"5\":{\"name\":\"variable.other.dm\"}},\"match\":\"(var)[\\\\\\\\/ ](?:(static|global|tmp|const)\\\\\\\\/)?(?:(datum|atom(?:\\\\\\\\/movable)?|obj|mob|turf|area|savefile|list|client|sound|image|database|matrix|regex|exception)\\\\\\\\/)?(?:([a-zA-Z0-9_\\\\\\\\-$]*)\\\\\\\\/)*([A-Za-z0-9_$]*)\\\\\\\\b\",\"name\":\"meta.initialization.dm\"},{\"match\":\"\\\\\\\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\\\\\\\.?[0-9]*)|(\\\\\\\\.[0-9]+))((e|E)(\\\\\\\\+|-)?[0-9]+)?)\\\\\\\\b\",\"name\":\"constant.numeric.dm\"},{\"match\":\"\\\\\\\\b(sleep|spawn|break|continue|do|else|for|goto|if|return|switch|while)\\\\\\\\b\",\"name\":\"keyword.control.dm\"},{\"match\":\"\\\\\\\\b(del|new)\\\\\\\\b\",\"name\":\"keyword.other.dm\"},{\"match\":\"\\\\\\\\b(proc|verb|datum|atom(/movable)?|obj|mob|turf|area|savefile|list|client|sound|image|database|matrix|regex|exception)\\\\\\\\b\",\"name\":\"storage.type.dm\"},{\"match\":\"\\\\\\\\b(as|const|global|set|static|tmp)\\\\\\\\b\",\"name\":\"storage.modifier.dm\"},{\"match\":\"\\\\\\\\b(usr|world|src|args)\\\\\\\\b\",\"name\":\"variable.language.dm\"},{\"match\":\"(\\\\\\\\?|(>|<)(=)?|\\\\\\\\.|:|/(=)?|~|\\\\\\\\+(\\\\\\\\+|=)?|-(-|=)?|\\\\\\\\*(\\\\\\\\*|=)?|%|>>|<<|=(=)?|!(=)?|<>|&|&&|\\\\\\\\^|\\\\\\\\||\\\\\\\\|\\\\\\\\||\\\\\\\\bto\\\\\\\\b|\\\\\\\\bin\\\\\\\\b|\\\\\\\\bstep\\\\\\\\b)\",\"name\":\"keyword.operator.dm\"},{\"match\":\"\\\\\\\\b([A-Z_][A-Z_0-9]*)\\\\\\\\b\",\"name\":\"constant.language.dm\"},{\"match\":\"\\\\\\\\bnull\\\\\\\\b\",\"name\":\"constant.language.dm\"},{\"begin\":\"{\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.dm\"}},\"end\":\"\\\\\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.dm\"}},\"name\":\"string.quoted.triple.dm\",\"patterns\":[{\"include\":\"#string_escaped_char\"},{\"include\":\"#string_embedded_expression\"}]},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.dm\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.dm\"}},\"name\":\"string.quoted.double.dm\",\"patterns\":[{\"include\":\"#string_escaped_char\"},{\"include\":\"#string_embedded_expression\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.dm\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.dm\"}},\"name\":\"string.quoted.single.dm\",\"patterns\":[{\"include\":\"#string_escaped_char\"}]},{\"begin\":\"^\\\\\\\\s*((\\\\\\\\#)\\\\\\\\s*define)\\\\\\\\s+((?<id>[a-zA-Z_][a-zA-Z0-9_]*))(?:(\\\\\\\\()(\\\\\\\\s*\\\\\\\\g<id>\\\\\\\\s*((,)\\\\\\\\s*\\\\\\\\g<id>\\\\\\\\s*)*(?:\\\\\\\\.\\\\\\\\.\\\\\\\\.)?)(\\\\\\\\)))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.define.dm\"},\"2\":{\"name\":\"punctuation.definition.directive.dm\"},\"3\":{\"name\":\"entity.name.function.preprocessor.dm\"},\"5\":{\"name\":\"punctuation.definition.parameters.begin.dm\"},\"6\":{\"name\":\"variable.parameter.preprocessor.dm\"},\"8\":{\"name\":\"punctuation.separator.parameters.dm\"},\"9\":{\"name\":\"punctuation.definition.parameters.end.dm\"}},\"end\":\"(?=(?://|/\\\\\\\\*))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.macro.dm\",\"patterns\":[{\"include\":\"$base\"}]},{\"begin\":\"^\\\\\\\\s*((\\\\\\\\#)\\\\\\\\s*define)\\\\\\\\s+((?<id>[a-zA-Z_][a-zA-Z0-9_]*))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.define.dm\"},\"2\":{\"name\":\"punctuation.definition.directive.dm\"},\"3\":{\"name\":\"variable.other.preprocessor.dm\"}},\"end\":\"(?=(?://|/\\\\\\\\*))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.macro.dm\",\"patterns\":[{\"include\":\"$base\"}]},{\"begin\":\"^\\\\\\\\s*(#\\\\\\\\s*(error|warn))\\\\\\\\b\",\"captures\":{\"1\":{\"name\":\"keyword.control.import.error.dm\"}},\"end\":\"$\",\"name\":\"meta.preprocessor.diagnostic.dm\",\"patterns\":[{\"match\":\"(?>\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n)\",\"name\":\"punctuation.separator.continuation.dm\"}]},{\"begin\":\"^\\\\\\\\s*(?:((#)\\\\\\\\s*(?:elif|else|if|ifdef|ifndef))|((#)\\\\\\\\s*(undef|include)))\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.conditional.dm\"},\"2\":{\"name\":\"punctuation.definition.directive.dm\"},\"3\":{\"name\":\"keyword.control.directive.$5.dm\"},\"4\":{\"name\":\"punctuation.definition.directive.dm\"}},\"end\":\"(?=(?://|/\\\\\\\\*))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.dm\",\"patterns\":[{\"match\":\"(?>\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n)\",\"name\":\"punctuation.separator.continuation.dm\"}]},{\"include\":\"#block\"},{\"begin\":\"(?:^|(?:(?=\\\\\\\\s)(?<!else|new|return)(?<=\\\\\\\\w)|(?=\\\\\\\\s*[A-Za-z_])(?<!&&)(?<=[*&>])))(\\\\\\\\s*)(?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\\\\\\\s*\\\\\\\\()((?:[A-Za-z_][A-Za-z0-9_]*+|::)++|(?:(?<=operator)(?:[-*&<>=+!]+|\\\\\\\\(\\\\\\\\)|\\\\\\\\[\\\\\\\\])))\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.function.leading.dm\"},\"3\":{\"name\":\"entity.name.function.dm\"},\"4\":{\"name\":\"punctuation.definition.parameters.dm\"}},\"end\":\"(?<=\\\\\\\\})|(?=#)|(;)?\",\"name\":\"meta.function.dm\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#parens\"},{\"match\":\"\\\\\\\\bconst\\\\\\\\b\",\"name\":\"storage.modifier.dm\"},{\"include\":\"#block\"}]}],\"repository\":{\"access\":{\"match\":\"\\\\\\\\.[a-zA-Z_][a-zA-Z_0-9]*\\\\\\\\b(?!\\\\\\\\s*\\\\\\\\()\",\"name\":\"variable.other.dot-access.dm\"},\"block\":{\"begin\":\"\\\\\\\\{\",\"end\":\"\\\\\\\\}\",\"name\":\"meta.block.dm\",\"patterns\":[{\"include\":\"#block_innards\"}]},\"block_innards\":{\"patterns\":[{\"include\":\"#preprocessor-rule-enabled-block\"},{\"include\":\"#preprocessor-rule-disabled-block\"},{\"include\":\"#preprocessor-rule-other-block\"},{\"include\":\"#access\"},{\"captures\":{\"1\":{\"name\":\"punctuation.whitespace.function-call.leading.dm\"},\"2\":{\"name\":\"support.function.any-method.dm\"},\"3\":{\"name\":\"punctuation.definition.parameters.dm\"}},\"match\":\"(?:(?=\\\\\\\\s)(?:(?<=else|new|return)|(?<!\\\\\\\\w))(\\\\\\\\s+))?(\\\\\\\\b(?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\\\\\\\s*\\\\\\\\()(?:(?!NS)[A-Za-z_][A-Za-z0-9_]*+\\\\\\\\b|::)++)\\\\\\\\s*(\\\\\\\\()\",\"name\":\"meta.function-call.dm\"},{\"include\":\"#block\"},{\"include\":\"$base\"}]},\"comments\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"meta.toc-list.banner.block.dm\"}},\"match\":\"^/\\\\\\\\* =(\\\\\\\\s*.*?)\\\\\\\\s*= \\\\\\\\*/$\\\\\\\\n?\",\"name\":\"comment.block.dm\"},{\"begin\":\"/\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.dm\"}},\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.dm\",\"patterns\":[{\"include\":\"#comments\"}]},{\"match\":\"\\\\\\\\*/.*\\\\\\\\n\",\"name\":\"invalid.illegal.stray-comment-end.dm\"},{\"captures\":{\"1\":{\"name\":\"meta.toc-list.banner.line.dm\"}},\"match\":\"^// =(\\\\\\\\s*.*?)\\\\\\\\s*=\\\\\\\\s*$\\\\\\\\n?\",\"name\":\"comment.line.banner.dm\"},{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.dm\"}},\"end\":\"$\\\\\\\\n?\",\"name\":\"comment.line.double-slash.dm\",\"patterns\":[{\"match\":\"(?>\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n)\",\"name\":\"punctuation.separator.continuation.dm\"}]}]},\"disabled\":{\"begin\":\"^\\\\\\\\s*#\\\\\\\\s*if(n?def)?\\\\\\\\b.*$\",\"comment\":\"eat nested preprocessor if(def)s\",\"end\":\"^\\\\\\\\s*#\\\\\\\\s*endif\\\\\\\\b.*$\",\"patterns\":[{\"include\":\"#disabled\"}]},\"parens\":{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"name\":\"meta.parens.dm\",\"patterns\":[{\"include\":\"$base\"}]},\"preprocessor-rule-disabled\":{\"begin\":\"^\\\\\\\\s*(#(if)\\\\\\\\s+(0)\\\\\\\\b).*\",\"captures\":{\"1\":{\"name\":\"meta.preprocessor.dm\"},\"2\":{\"name\":\"keyword.control.import.if.dm\"},\"3\":{\"name\":\"constant.numeric.preprocessor.dm\"}},\"end\":\"^\\\\\\\\s*(#\\\\\\\\s*(endif)\\\\\\\\b)\",\"patterns\":[{\"begin\":\"^\\\\\\\\s*(#\\\\\\\\s*(else)\\\\\\\\b)\",\"captures\":{\"1\":{\"name\":\"meta.preprocessor.dm\"},\"2\":{\"name\":\"keyword.control.import.else.dm\"}},\"end\":\"(?=^\\\\\\\\s*#\\\\\\\\s*endif\\\\\\\\b.*$)\",\"patterns\":[{\"include\":\"$base\"}]},{\"begin\":\"\",\"end\":\"(?=^\\\\\\\\s*#\\\\\\\\s*(else|endif)\\\\\\\\b.*$)\",\"name\":\"comment.block.preprocessor.if-branch\",\"patterns\":[{\"include\":\"#disabled\"}]}]},\"preprocessor-rule-disabled-block\":{\"begin\":\"^\\\\\\\\s*(#(if)\\\\\\\\s+(0)\\\\\\\\b).*\",\"captures\":{\"1\":{\"name\":\"meta.preprocessor.dm\"},\"2\":{\"name\":\"keyword.control.import.if.dm\"},\"3\":{\"name\":\"constant.numeric.preprocessor.dm\"}},\"end\":\"^\\\\\\\\s*(#\\\\\\\\s*(endif)\\\\\\\\b)\",\"patterns\":[{\"begin\":\"^\\\\\\\\s*(#\\\\\\\\s*(else)\\\\\\\\b)\",\"captures\":{\"1\":{\"name\":\"meta.preprocessor.dm\"},\"2\":{\"name\":\"keyword.control.import.else.dm\"}},\"end\":\"(?=^\\\\\\\\s*#\\\\\\\\s*endif\\\\\\\\b.*$)\",\"patterns\":[{\"include\":\"#block_innards\"}]},{\"begin\":\"\",\"end\":\"(?=^\\\\\\\\s*#\\\\\\\\s*(else|endif)\\\\\\\\b.*$)\",\"name\":\"comment.block.preprocessor.if-branch.in-block\",\"patterns\":[{\"include\":\"#disabled\"}]}]},\"preprocessor-rule-enabled\":{\"begin\":\"^\\\\\\\\s*(#(if)\\\\\\\\s+(0*1)\\\\\\\\b)\",\"captures\":{\"1\":{\"name\":\"meta.preprocessor.dm\"},\"2\":{\"name\":\"keyword.control.import.if.dm\"},\"3\":{\"name\":\"constant.numeric.preprocessor.dm\"}},\"end\":\"^\\\\\\\\s*(#\\\\\\\\s*(endif)\\\\\\\\b)\",\"patterns\":[{\"begin\":\"^\\\\\\\\s*(#\\\\\\\\s*(else)\\\\\\\\b).*\",\"captures\":{\"1\":{\"name\":\"meta.preprocessor.dm\"},\"2\":{\"name\":\"keyword.control.import.else.dm\"}},\"contentName\":\"comment.block.preprocessor.else-branch\",\"end\":\"(?=^\\\\\\\\s*#\\\\\\\\s*endif\\\\\\\\b.*$)\",\"patterns\":[{\"include\":\"#disabled\"}]},{\"begin\":\"\",\"end\":\"(?=^\\\\\\\\s*#\\\\\\\\s*(else|endif)\\\\\\\\b.*$)\",\"patterns\":[{\"include\":\"$base\"}]}]},\"preprocessor-rule-enabled-block\":{\"begin\":\"^\\\\\\\\s*(#(if)\\\\\\\\s+(0*1)\\\\\\\\b)\",\"captures\":{\"1\":{\"name\":\"meta.preprocessor.dm\"},\"2\":{\"name\":\"keyword.control.import.if.dm\"},\"3\":{\"name\":\"constant.numeric.preprocessor.dm\"}},\"end\":\"^\\\\\\\\s*(#\\\\\\\\s*(endif)\\\\\\\\b)\",\"patterns\":[{\"begin\":\"^\\\\\\\\s*(#\\\\\\\\s*(else)\\\\\\\\b).*\",\"captures\":{\"1\":{\"name\":\"meta.preprocessor.dm\"},\"2\":{\"name\":\"keyword.control.import.else.dm\"}},\"contentName\":\"comment.block.preprocessor.else-branch.in-block\",\"end\":\"(?=^\\\\\\\\s*#\\\\\\\\s*endif\\\\\\\\b.*$)\",\"patterns\":[{\"include\":\"#disabled\"}]},{\"begin\":\"\",\"end\":\"(?=^\\\\\\\\s*#\\\\\\\\s*(else|endif)\\\\\\\\b.*$)\",\"patterns\":[{\"include\":\"#block_innards\"}]}]},\"preprocessor-rule-other\":{\"begin\":\"^\\\\\\\\s*((#\\\\\\\\s*(if(n?def)?))\\\\\\\\b.*?(?:(?=(?://|/\\\\\\\\*))|$))\",\"captures\":{\"1\":{\"name\":\"meta.preprocessor.dm\"},\"2\":{\"name\":\"keyword.control.import.dm\"}},\"end\":\"^\\\\\\\\s*((#\\\\\\\\s*(endif))\\\\\\\\b).*$\",\"patterns\":[{\"include\":\"$base\"}]},\"preprocessor-rule-other-block\":{\"begin\":\"^\\\\\\\\s*(#\\\\\\\\s*(if(n?def)?)\\\\\\\\b.*?(?:(?=(?://|/\\\\\\\\*))|$))\",\"captures\":{\"1\":{\"name\":\"meta.preprocessor.dm\"},\"2\":{\"name\":\"keyword.control.import.dm\"}},\"end\":\"^\\\\\\\\s*(#\\\\\\\\s*(endif)\\\\\\\\b).*$\",\"patterns\":[{\"include\":\"#block_innards\"}]},\"string_embedded_expression\":{\"patterns\":[{\"begin\":\"(?<!\\\\\\\\\\\\\\\\)\\\\\\\\[\",\"end\":\"\\\\\\\\]\",\"name\":\"string.interpolated.dm\",\"patterns\":[{\"include\":\"$self\"}]}]},\"string_escaped_char\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(h(?:(?:er|im)self|ers|im)|([tTsS]?he)|He|[Hh]is|[aA]n?|(?:im)?proper|\\\\\\\\.\\\\\\\\.\\\\\\\\.|(?:icon|ref|[Rr]oman)(?=\\\\\\\\[)|[s<>\\\\\"n\\\\\\\\n \\\\\\\\[])\",\"name\":\"constant.character.escape.dm\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"invalid.illegal.unknown-escape.dm\"}]}},\"scopeName\":\"source.dm\"}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/C-wny61x.js",
    "content": "import e from\"./ySlJ1b_l.js\";import t from\"./Dj6nwHGl.js\";import n from\"./BPhBrDlE.js\";import a from\"./BMYPR7BL.js\";const i=Object.freeze(JSON.parse(`{\"displayName\":\"Glimmer JS\",\"injections\":{\"L:source.gjs -comment -(string -meta.embedded)\":{\"patterns\":[{\"include\":\"#main\"}]}},\"name\":\"glimmer-js\",\"patterns\":[{\"include\":\"#main\"},{\"include\":\"source.js\"}],\"repository\":{\"as-keyword\":{\"match\":\"\\\\\\\\s\\\\\\\\b(as)\\\\\\\\b(?=\\\\\\\\s\\\\\\\\|)\",\"name\":\"keyword.control\",\"patterns\":[]},\"as-params\":{\"begin\":\"(?<!\\\\\\\\|)(\\\\\\\\|)\",\"beginCaptures\":{\"1\":{\"name\":\"constant.other.symbol.begin.ember-handlebars\"}},\"end\":\"(\\\\\\\\|)(?!\\\\\\\\|)\",\"endCaptures\":{\"1\":{\"name\":\"constant.other.symbol.end.ember-handlebars\"}},\"name\":\"keyword.block-params.ember-handlebars\",\"patterns\":[{\"include\":\"#variable\"}]},\"attention\":{\"match\":\"@?(TODO|FIXME|CHANGED|XXX|IDEA|HACK|NOTE|REVIEW|NB|BUG|QUESTION|TEMP)\\\\\\\\b\",\"name\":\"storage.type.class.\\${1:/downcase}\",\"patterns\":[]},\"boolean\":{\"captures\":{\"0\":{\"name\":\"string.regexp\"},\"1\":{\"name\":\"string.regexp\"},\"2\":{\"name\":\"string.regexp\"}},\"match\":\"true|false|undefined|null\",\"patterns\":[]},\"component-tag\":{\"begin\":\"(<\\\\\\\\/?)(@|this.)?([a-zA-Z0-9-_\\\\\\\\$:\\\\\\\\.]+)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag\"},\"2\":{\"name\":\"support.function\",\"patterns\":[{\"match\":\"(@|this)\",\"name\":\"variable.language\"},{\"match\":\"(\\\\\\\\.)+\",\"name\":\"punctuation.definition.tag\"}]},\"3\":{\"name\":\"entity.name.type\",\"patterns\":[{\"include\":\"#glimmer-component-path\"},{\"match\":\"(@|:|\\\\\\\\$)\",\"name\":\"markup.bold\"}]}},\"end\":\"(\\\\\\\\/?)(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag\"},\"2\":{\"name\":\"punctuation.definition.tag\"}},\"name\":\"meta.tag.any.ember-handlebars\",\"patterns\":[{\"include\":\"#tag-like-content\"}]},\"digit\":{\"captures\":{\"0\":{\"name\":\"constant.numeric\"},\"1\":{\"name\":\"constant.numeric\"},\"2\":{\"name\":\"constant.numeric\"}},\"match\":\"\\\\\\\\d*(\\\\\\\\.)?\\\\\\\\d+\",\"patterns\":[]},\"entities\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.html.ember-handlebars\"},\"3\":{\"name\":\"punctuation.definition.entity.html.ember-handlebars\"}},\"match\":\"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)\",\"name\":\"constant.character.entity.html.ember-handlebars\"},{\"match\":\"&\",\"name\":\"invalid.illegal.bad-ampersand.html.ember-handlebars\"}]},\"glimmer-argument\":{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.ember-handlebars.argument\",\"patterns\":[{\"match\":\"(@)\",\"name\":\"markup.italic\"}]},\"2\":{\"name\":\"punctuation.separator.key-value.html.ember-handlebars\"}},\"match\":\"\\\\\\\\s(@[a-zA-Z0-9:_.-]+)(=)?\"},\"glimmer-as-stuff\":{\"patterns\":[{\"include\":\"#as-keyword\"},{\"include\":\"#as-params\"}]},\"glimmer-block\":{\"begin\":\"({{~?)(#|/)(([@\\\\\\\\$a-zA-Z0-9_/.-]+))\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag\"},\"2\":{\"name\":\"punctuation.definition.tag\"},\"3\":{\"name\":\"keyword.control\",\"patterns\":[{\"include\":\"#glimmer-component-path\"},{\"match\":\"(\\\\\\\\/)+\",\"name\":\"punctuation.definition.tag\"},{\"match\":\"(\\\\\\\\.)+\",\"name\":\"punctuation.definition.tag\"}]}},\"end\":\"(~?}})\",\"name\":\"entity.expression.ember-handlebars\",\"patterns\":[{\"include\":\"#glimmer-as-stuff\"},{\"include\":\"#glimmer-supexp-content\"}]},\"glimmer-bools\":{\"captures\":{\"0\":{\"name\":\"keyword.operator\"},\"1\":{\"name\":\"keyword.operator\"},\"2\":{\"name\":\"string.regexp\"},\"3\":{\"name\":\"string.regexp\"},\"4\":{\"name\":\"keyword.operator\"}},\"match\":\"({{~?)(true|false|null|undefined|\\\\\\\\d*(\\\\\\\\.)?\\\\\\\\d+)(~?}})\",\"name\":\"entity.expression.ember-handlebars\"},\"glimmer-comment-block\":{\"begin\":\"{{!--\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.block.comment.glimmer\"}},\"end\":\"--}}\",\"name\":\"comment.block.glimmer\",\"patterns\":[{\"include\":\"#script\"},{\"include\":\"#attention\"}]},\"glimmer-comment-inline\":{\"begin\":\"{{!\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.block.comment.glimmer\"}},\"end\":\"}}\",\"name\":\"comment.inline.glimmer\",\"patterns\":[{\"include\":\"#script\"},{\"include\":\"#attention\"}]},\"glimmer-component-path\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag\"}},\"match\":\"(::|_|\\\\\\\\$|\\\\\\\\.)\"},\"glimmer-control-expression\":{\"begin\":\"({{~?)(([-a-zA-Z_0-9/]+)\\\\\\\\s)\",\"captures\":{\"1\":{\"name\":\"keyword.operator\"},\"2\":{\"name\":\"keyword.operator\"},\"3\":{\"name\":\"keyword.control\"}},\"end\":\"(~?}})\",\"name\":\"entity.expression.ember-handlebars\",\"patterns\":[{\"include\":\"#glimmer-supexp-content\"}]},\"glimmer-else-block\":{\"captures\":{\"0\":{\"name\":\"punctuation.definition.tag\"},\"1\":{\"name\":\"punctuation.definition.tag\"},\"2\":{\"name\":\"keyword.control\"},\"3\":{\"name\":\"keyword.control\",\"patterns\":[{\"include\":\"#glimmer-subexp\"},{\"include\":\"#string-single-quoted-handlebars\"},{\"include\":\"#string-double-quoted-handlebars\"},{\"include\":\"#boolean\"},{\"include\":\"#digit\"},{\"include\":\"#param\"},{\"include\":\"#glimmer-parameter-name\"},{\"include\":\"#glimmer-parameter-value\"}]},\"4\":{\"name\":\"punctuation.definition.tag\"}},\"match\":\"({{~?)(else\\\\\\\\s[a-z]+\\\\\\\\s|else)([()@a-zA-Z0-9\\\\\\\\.\\\\\\\\s\\\\\\\\b]+)?(~?}})\",\"name\":\"entity.expression.ember-handlebars\"},\"glimmer-expression\":{\"begin\":\"({{~?)(([()\\\\\\\\s@a-zA-Z0-9_.-]+))\",\"captures\":{\"1\":{\"name\":\"keyword.operator\"},\"2\":{\"name\":\"keyword.operator\"},\"3\":{\"name\":\"support.function\",\"patterns\":[{\"match\":\"[(]+\",\"name\":\"string.regexp\"},{\"match\":\"[)]+\",\"name\":\"string.regexp\"},{\"match\":\"(\\\\\\\\.)+\",\"name\":\"punctuation.definition.tag\"},{\"include\":\"#glimmer-supexp-content\"}]}},\"end\":\"(~?}})\",\"name\":\"entity.expression.ember-handlebars\",\"patterns\":[{\"include\":\"#glimmer-supexp-content\"}]},\"glimmer-expression-property\":{\"begin\":\"({{~?)((@|this.)([a-zA-Z0-9_.-]+))\",\"captures\":{\"1\":{\"name\":\"keyword.operator\"},\"2\":{\"name\":\"keyword.operator\"},\"3\":{\"name\":\"support.function\",\"patterns\":[{\"match\":\"(@|this)\",\"name\":\"variable.language\"},{\"match\":\"(\\\\\\\\.)+\",\"name\":\"punctuation.definition.tag\"}]},\"4\":{\"name\":\"support.function\",\"patterns\":[{\"match\":\"(\\\\\\\\.)+\",\"name\":\"punctuation.definition.tag\"}]}},\"end\":\"(~?}})\",\"name\":\"entity.expression.ember-handlebars\",\"patterns\":[{\"include\":\"#glimmer-supexp-content\"}]},\"glimmer-parameter-name\":{\"captures\":{\"1\":{\"name\":\"variable.parameter.name.ember-handlebars\"},\"2\":{\"name\":\"punctuation.definition.expression.ember-handlebars\"}},\"match\":\"\\\\\\\\b([a-zA-Z0-9_-]+)(\\\\\\\\s?=)\",\"patterns\":[]},\"glimmer-parameter-value\":{\"captures\":{\"1\":{\"name\":\"support.function\",\"patterns\":[{\"match\":\"(\\\\\\\\.)+\",\"name\":\"punctuation.definition.tag\"}]}},\"match\":\"\\\\\\\\b([a-zA-Z0-9:_.-]+)\\\\\\\\b(?!=)\",\"patterns\":[]},\"glimmer-special-block\":{\"captures\":{\"0\":{\"name\":\"keyword.operator\"},\"1\":{\"name\":\"keyword.operator\"},\"2\":{\"name\":\"keyword.control\"},\"3\":{\"name\":\"keyword.operator\"}},\"match\":\"({{~?)(yield|outlet)(~?}})\",\"name\":\"entity.expression.ember-handlebars\"},\"glimmer-subexp\":{\"begin\":\"(\\\\\\\\()([@a-zA-Z0-9.-]+)\",\"captures\":{\"1\":{\"name\":\"keyword.other\"},\"2\":{\"name\":\"keyword.control\"}},\"end\":\"(\\\\\\\\))\",\"name\":\"entity.subexpression.ember-handlebars\",\"patterns\":[{\"include\":\"#glimmer-supexp-content\"}]},\"glimmer-supexp-content\":{\"patterns\":[{\"include\":\"#glimmer-subexp\"},{\"include\":\"#string-single-quoted-handlebars\"},{\"include\":\"#string-double-quoted-handlebars\"},{\"include\":\"#boolean\"},{\"include\":\"#digit\"},{\"include\":\"#param\"},{\"include\":\"#glimmer-parameter-name\"},{\"include\":\"#glimmer-parameter-value\"}]},\"glimmer-unescaped-expression\":{\"begin\":\"{{{\",\"captures\":{\"0\":{\"name\":\"keyword.operator\"}},\"end\":\"}}}\",\"name\":\"entity.unescaped.expression.ember-handlebars\",\"patterns\":[{\"include\":\"#string-single-quoted-handlebars\"},{\"include\":\"#string-double-quoted-handlebars\"},{\"include\":\"#glimmer-subexp\"},{\"include\":\"#param\"}]},\"html-attribute\":{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.ember-handlebars\",\"patterns\":[{\"match\":\"(\\\\\\\\.\\\\\\\\.\\\\\\\\.attributes)\",\"name\":\"markup.bold\"}]},\"2\":{\"name\":\"punctuation.separator.key-value.html.ember-handlebars\"}},\"match\":\"\\\\\\\\s([a-zA-Z0-9:_.-]+)(=)?\"},\"html-comment\":{\"begin\":\"<!--\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.html.ember-handlebars\"}},\"end\":\"--\\\\\\\\s*>\",\"name\":\"comment.block.html.ember-handlebars\",\"patterns\":[{\"include\":\"#attention\"},{\"match\":\"--\",\"name\":\"invalid.illegal.bad-comments-or-CDATA.html.ember-handlebars\"}]},\"html-tag\":{\"begin\":\"(<\\\\\\\\/?)([a-z0-9-]+)(?!\\\\\\\\.|:)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag\"},\"2\":{\"name\":\"entity.name.tag.html.ember-handlebars\"}},\"end\":\"(\\\\\\\\/?)(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag\"},\"2\":{\"name\":\"punctuation.definition.tag\"}},\"name\":\"meta.tag.any.ember-handlebars\",\"patterns\":[{\"include\":\"#tag-like-content\"}]},\"main\":{\"patterns\":[{\"begin\":\"\\\\\\\\s*(<)(template)\\\\\\\\s*(>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.other.html\"},\"3\":{\"name\":\"punctuation.definition.tag.html\"}},\"end\":\"(</)(template)(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.other.html\"},\"3\":{\"name\":\"punctuation.definition.tag.html\"}},\"name\":\"meta.js.embeddedTemplateWithoutArgs\",\"patterns\":[{\"include\":\"#style\"},{\"include\":\"#script\"},{\"include\":\"#glimmer-else-block\"},{\"include\":\"#glimmer-bools\"},{\"include\":\"#glimmer-special-block\"},{\"include\":\"#glimmer-unescaped-expression\"},{\"include\":\"#glimmer-comment-block\"},{\"include\":\"#glimmer-comment-inline\"},{\"include\":\"#glimmer-expression-property\"},{\"include\":\"#glimmer-control-expression\"},{\"include\":\"#glimmer-expression\"},{\"include\":\"#glimmer-block\"},{\"include\":\"#html-tag\"},{\"include\":\"#component-tag\"},{\"include\":\"#html-comment\"},{\"include\":\"#entities\"}]},{\"begin\":\"(<)(template)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.other.html\"}},\"end\":\"(</)(template)(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.other.html\"},\"3\":{\"name\":\"punctuation.definition.tag.html\"}},\"name\":\"meta.js.embeddedTemplateWithArgs\",\"patterns\":[{\"begin\":\"(?<=\\\\\\\\<template)\",\"end\":\"(?=\\\\\\\\>)\",\"patterns\":[{\"include\":\"#tag-like-content\"}]},{\"begin\":\"(>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.js\"}},\"contentName\":\"meta.html.embedded.block\",\"end\":\"(?=</template>)\",\"patterns\":[{\"include\":\"#style\"},{\"include\":\"#script\"},{\"include\":\"#glimmer-else-block\"},{\"include\":\"#glimmer-bools\"},{\"include\":\"#glimmer-special-block\"},{\"include\":\"#glimmer-unescaped-expression\"},{\"include\":\"#glimmer-comment-block\"},{\"include\":\"#glimmer-comment-inline\"},{\"include\":\"#glimmer-expression-property\"},{\"include\":\"#glimmer-control-expression\"},{\"include\":\"#glimmer-expression\"},{\"include\":\"#glimmer-block\"},{\"include\":\"#html-tag\"},{\"include\":\"#component-tag\"},{\"include\":\"#html-comment\"},{\"include\":\"#entities\"}]}]},{\"begin\":\"(\\\\\\\\b(?:\\\\\\\\w+\\\\\\\\.)*(?:hbs|html)\\\\\\\\s*)(\\`)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.tagged-template.js\"},\"2\":{\"name\":\"punctuation.definition.string.template.begin.js\"}},\"contentName\":\"meta.embedded.block.html\",\"end\":\"(\\`)\",\"endCaptures\":{\"0\":{\"name\":\"string.js\"},\"1\":{\"name\":\"punctuation.definition.string.template.end.js\"}},\"patterns\":[{\"include\":\"source.ts#template-substitution-element\"},{\"include\":\"#style\"},{\"include\":\"#script\"},{\"include\":\"#glimmer-else-block\"},{\"include\":\"#glimmer-bools\"},{\"include\":\"#glimmer-special-block\"},{\"include\":\"#glimmer-unescaped-expression\"},{\"include\":\"#glimmer-comment-block\"},{\"include\":\"#glimmer-comment-inline\"},{\"include\":\"#glimmer-expression-property\"},{\"include\":\"#glimmer-control-expression\"},{\"include\":\"#glimmer-expression\"},{\"include\":\"#glimmer-block\"},{\"include\":\"#html-tag\"},{\"include\":\"#component-tag\"},{\"include\":\"#html-comment\"},{\"include\":\"#entities\"}]},{\"begin\":\"((createTemplate|hbs|html))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.ts\"},\"2\":{\"name\":\"meta.function-call.ts\"},\"3\":{\"name\":\"meta.brace.round.ts\"}},\"contentName\":\"meta.embedded.block.html\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"meta.brace.round.ts\"}},\"patterns\":[{\"begin\":\"((\\`|'|\\\\\"))\",\"beginCaptures\":{\"1\":{\"name\":\"string.template.ts\"},\"2\":{\"name\":\"punctuation.definition.string.template.begin.ts\"}},\"end\":\"((\\`|'|\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"string.template.ts\"},\"2\":{\"name\":\"punctuation.definition.string.template.end.ts\"}},\"patterns\":[{\"include\":\"#style\"},{\"include\":\"#script\"},{\"include\":\"#glimmer-else-block\"},{\"include\":\"#glimmer-bools\"},{\"include\":\"#glimmer-special-block\"},{\"include\":\"#glimmer-unescaped-expression\"},{\"include\":\"#glimmer-comment-block\"},{\"include\":\"#glimmer-comment-inline\"},{\"include\":\"#glimmer-expression-property\"},{\"include\":\"#glimmer-control-expression\"},{\"include\":\"#glimmer-expression\"},{\"include\":\"#glimmer-block\"},{\"include\":\"#html-tag\"},{\"include\":\"#component-tag\"},{\"include\":\"#html-comment\"},{\"include\":\"#entities\"}]}]},{\"begin\":\"((precompileTemplate)\\\\\\\\s*)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.ts\"},\"2\":{\"name\":\"meta.function-call.ts\"},\"3\":{\"name\":\"meta.brace.round.ts\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"meta.brace.round.ts\"}},\"patterns\":[{\"begin\":\"((\\`|'|\\\\\"))\",\"beginCaptures\":{\"1\":{\"name\":\"string.template.ts\"},\"2\":{\"name\":\"punctuation.definition.string.template.begin.ts\"}},\"contentName\":\"meta.embedded.block.html\",\"end\":\"((\\`|'|\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"string.template.ts\"},\"2\":{\"name\":\"punctuation.definition.string.template.end.ts\"}},\"patterns\":[{\"include\":\"#style\"},{\"include\":\"#script\"},{\"include\":\"#glimmer-else-block\"},{\"include\":\"#glimmer-bools\"},{\"include\":\"#glimmer-special-block\"},{\"include\":\"#glimmer-unescaped-expression\"},{\"include\":\"#glimmer-comment-block\"},{\"include\":\"#glimmer-comment-inline\"},{\"include\":\"#glimmer-expression-property\"},{\"include\":\"#glimmer-control-expression\"},{\"include\":\"#glimmer-expression\"},{\"include\":\"#glimmer-block\"},{\"include\":\"#html-tag\"},{\"include\":\"#component-tag\"},{\"include\":\"#html-comment\"},{\"include\":\"#entities\"}]},{\"include\":\"source.ts#object-literal\"},{\"include\":\"source.ts\"}]}]},\"param\":{\"captures\":{\"0\":{\"name\":\"support.function\",\"patterns\":[{\"match\":\"(@|this)\",\"name\":\"variable.language\"},{\"match\":\"(\\\\\\\\.)+\",\"name\":\"punctuation.definition.tag\"}]},\"1\":{\"name\":\"support.function\",\"patterns\":[{\"match\":\"(\\\\\\\\.)+\",\"name\":\"punctuation.definition.tag\"}]}},\"match\":\"(@|this.)([a-zA-Z0-9_.-]+)\",\"patterns\":[]},\"script\":{\"begin\":\"(^[ \\\\\\\\t]+)?(?=<(?i:script)\\\\\\\\b(?!-))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.embedded.leading.html\"}},\"end\":\"(?!\\\\\\\\G)([ \\\\\\\\t]*$\\\\\\\\n?)?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.embedded.trailing.html\"}},\"patterns\":[{\"begin\":\"(<)((?i:script))\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.script.start.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"}},\"end\":\"(/)((?i:script))(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.script.end.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.embedded.block.html\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(?=/)\",\"patterns\":[{\"begin\":\"(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.script.start.html\"},\"1\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"end\":\"((<))(?=/(?i:script))\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.script.end.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"source.js-ignored-vscode\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(?=</(?i:script))\",\"name\":\"source.js\",\"patterns\":[{\"begin\":\"(^[ \\\\\\\\t]+)?(?=//)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.js\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.js\"}},\"end\":\"(?=<\\/script)|\\\\\\\\n\",\"name\":\"comment.line.double-slash.js\"}]},{\"begin\":\"/\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.js\"}},\"end\":\"\\\\\\\\*/|(?=<\\/script)\",\"name\":\"comment.block.js\"},{\"include\":\"source.js\"}]}]},{\"begin\":\"(?ix:\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t(?=\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\ttype\\\\\\\\s*=\\\\\\\\s*\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t('|\\\\\"|)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\ttext/\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t(\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tx-handlebars\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t  | (x-(handlebars-)?|ng-)?template\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t  | html\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t[\\\\\\\\s\\\\\"'>]\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t)\",\"end\":\"((<))(?=/(?i:script))\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.script.end.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"text.html.basic\"}},\"patterns\":[{\"begin\":\"(?!\\\\\\\\G)\",\"end\":\"(?=</(?i:script))\",\"name\":\"text.html.basic\",\"patterns\":[{\"include\":\"text.html.basic\"}]}]},{\"begin\":\"(?=(?i:type))\",\"end\":\"(<)(?=/(?i:script))\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.script.end.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"}}},{\"include\":\"#string-double-quoted-html\"},{\"include\":\"#string-single-quoted-html\"},{\"include\":\"#glimmer-argument\"},{\"include\":\"#html-attribute\"}]}]}]},\"string-double-quoted-handlebars\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ember-handlebars\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ember-handlebars\"}},\"name\":\"string.quoted.double.ember-handlebars\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\\\\\"\",\"name\":\"constant.character.escape.ember-handlebars\"}]},\"string-double-quoted-html\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ember-handlebars\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ember-handlebars\"}},\"name\":\"string.quoted.double.html.ember-handlebars\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\\\\\"\",\"name\":\"constant.character.escape.ember-handlebars\"},{\"include\":\"#glimmer-bools\"},{\"include\":\"#glimmer-expression-property\"},{\"include\":\"#glimmer-control-expression\"},{\"include\":\"#glimmer-expression\"},{\"include\":\"#glimmer-block\"}]},\"string-single-quoted-handlebars\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ember-handlebars\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ember-handlebars\"}},\"name\":\"string.quoted.single.ember-handlebars\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\'\",\"name\":\"constant.character.escape.ember-handlebars\"}]},\"string-single-quoted-html\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ember-handlebars\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ember-handlebars\"}},\"name\":\"string.quoted.single.html.ember-handlebars\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\'\",\"name\":\"constant.character.escape.ember-handlebars\"},{\"include\":\"#glimmer-bools\"},{\"include\":\"#glimmer-expression-property\"},{\"include\":\"#glimmer-control-expression\"},{\"include\":\"#glimmer-expression\"},{\"include\":\"#glimmer-block\"}]},\"style\":{\"begin\":\"(^[ \\\\\\\\t]+)?(?=<(?i:style)\\\\\\\\b(?!-))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.embedded.leading.html\"}},\"end\":\"(?!\\\\\\\\G)([ \\\\\\\\t]*$\\\\\\\\n?)?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.embedded.trailing.html\"}},\"patterns\":[{\"begin\":\"(?i)(<)(style)(?=\\\\\\\\s|/?>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.style.start.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"}},\"end\":\"(?i)((<)/)(style)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.style.end.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"source.css-ignored-vscode\"},\"3\":{\"name\":\"entity.name.tag.html\"},\"4\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.embedded.block.html\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"end\":\"(>)\",\"name\":\"meta.tag.metadata.style.start.html\",\"patterns\":[{\"include\":\"#glimmer-argument\"},{\"include\":\"#html-attribute\"}]},{\"begin\":\"(?!\\\\\\\\G)\",\"end\":\"(?=</(?i:style))\",\"name\":\"source.css\",\"patterns\":[{\"include\":\"source.css\"}]}]}]},\"tag-like-content\":{\"patterns\":[{\"include\":\"#glimmer-bools\"},{\"include\":\"#glimmer-unescaped-expression\"},{\"include\":\"#glimmer-comment-block\"},{\"include\":\"#glimmer-comment-inline\"},{\"include\":\"#glimmer-expression-property\"},{\"include\":\"#boolean\"},{\"include\":\"#digit\"},{\"include\":\"#glimmer-control-expression\"},{\"include\":\"#glimmer-expression\"},{\"include\":\"#glimmer-block\"},{\"include\":\"#string-double-quoted-html\"},{\"include\":\"#string-single-quoted-html\"},{\"include\":\"#glimmer-as-stuff\"},{\"include\":\"#glimmer-argument\"},{\"include\":\"#html-attribute\"}]},\"variable\":{\"match\":\"\\\\\\\\b([a-zA-Z0-9-_]+)\\\\\\\\b\",\"name\":\"support.function\",\"patterns\":[]}},\"scopeName\":\"source.gjs\",\"embeddedLangs\":[\"javascript\",\"typescript\",\"css\",\"html\"],\"aliases\":[\"gjs\"]}`)),c=[...e,...t,...n,...a,i];export{c as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/C0nbwVuJ.js",
    "content": "import e from\"./BMYPR7BL.js\";import t from\"./BPhBrDlE.js\";import n from\"./ySlJ1b_l.js\";import a from\"./CVw76BM1.js\";const i=Object.freeze(JSON.parse(`{\"displayName\":\"Handlebars\",\"name\":\"handlebars\",\"patterns\":[{\"include\":\"#yfm\"},{\"include\":\"#extends\"},{\"include\":\"#block_comments\"},{\"include\":\"#comments\"},{\"include\":\"#block_helper\"},{\"include\":\"#end_block\"},{\"include\":\"#else_token\"},{\"include\":\"#partial_and_var\"},{\"include\":\"#inline_script\"},{\"include\":\"#html_tags\"},{\"include\":\"text.html.basic\"}],\"repository\":{\"block_comments\":{\"patterns\":[{\"begin\":\"\\\\\\\\{\\\\\\\\{!--\",\"end\":\"--\\\\\\\\}\\\\\\\\}\",\"name\":\"comment.block.handlebars\",\"patterns\":[{\"match\":\"@\\\\\\\\w*\",\"name\":\"keyword.annotation.handlebars\"},{\"include\":\"#comments\"}]},{\"begin\":\"<!--\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.html\"}},\"end\":\"-{2,3}\\\\\\\\s*>\",\"name\":\"comment.block.html\",\"patterns\":[{\"match\":\"--\",\"name\":\"invalid.illegal.bad-comments-or-CDATA.html\"}]}]},\"block_helper\":{\"begin\":\"(\\\\\\\\{\\\\\\\\{)(~?\\\\\\\\#)([-a-zA-Z0-9_\\\\\\\\./>]+)\\\\\\\\s?(@?[-a-zA-Z0-9_\\\\\\\\./]+)*\\\\\\\\s?(@?[-a-zA-Z0-9_\\\\\\\\./]+)*\\\\\\\\s?(@?[-a-zA-Z0-9_\\\\\\\\./]+)*\",\"beginCaptures\":{\"1\":{\"name\":\"support.constant.handlebars\"},\"2\":{\"name\":\"support.constant.handlebars keyword.control\"},\"3\":{\"name\":\"support.constant.handlebars keyword.control\"},\"4\":{\"name\":\"variable.parameter.handlebars\"},\"5\":{\"name\":\"support.constant.handlebars\"},\"6\":{\"name\":\"variable.parameter.handlebars\"},\"7\":{\"name\":\"support.constant.handlebars\"}},\"end\":\"(~?\\\\\\\\}\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"support.constant.handlebars\"}},\"name\":\"meta.function.block.start.handlebars\",\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#handlebars_attribute\"}]},\"comments\":{\"patterns\":[{\"begin\":\"\\\\\\\\{\\\\\\\\{!\",\"end\":\"\\\\\\\\}\\\\\\\\}\",\"name\":\"comment.block.handlebars\",\"patterns\":[{\"match\":\"@\\\\\\\\w*\",\"name\":\"keyword.annotation.handlebars\"},{\"include\":\"#comments\"}]},{\"begin\":\"<!--\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.html\"}},\"end\":\"-{2,3}\\\\\\\\s*>\",\"name\":\"comment.block.html\",\"patterns\":[{\"match\":\"--\",\"name\":\"invalid.illegal.bad-comments-or-CDATA.html\"}]}]},\"else_token\":{\"begin\":\"(\\\\\\\\{\\\\\\\\{)(~?else)(@?\\\\\\\\s(if)\\\\\\\\s([-a-zA-Z0-9_\\\\\\\\.\\\\\\\\(\\\\\\\\s\\\\\\\\)/]+))?\",\"beginCaptures\":{\"1\":{\"name\":\"support.constant.handlebars\"},\"2\":{\"name\":\"support.constant.handlebars keyword.control\"},\"3\":{\"name\":\"support.constant.handlebars\"},\"4\":{\"name\":\"variable.parameter.handlebars\"}},\"end\":\"(~?\\\\\\\\}\\\\\\\\}\\\\\\\\}*)\",\"endCaptures\":{\"1\":{\"name\":\"support.constant.handlebars\"}},\"name\":\"meta.function.inline.else.handlebars\"},\"end_block\":{\"begin\":\"(\\\\\\\\{\\\\\\\\{)(~?/)([a-zA-Z0-9/_\\\\\\\\.-]+)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"support.constant.handlebars\"},\"2\":{\"name\":\"support.constant.handlebars keyword.control\"},\"3\":{\"name\":\"support.constant.handlebars keyword.control\"}},\"end\":\"(~?\\\\\\\\}\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"support.constant.handlebars\"}},\"name\":\"meta.function.block.end.handlebars\",\"patterns\":[]},\"entities\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.html\"},\"3\":{\"name\":\"punctuation.definition.entity.html\"}},\"match\":\"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)\",\"name\":\"constant.character.entity.html\"},{\"match\":\"&\",\"name\":\"invalid.illegal.bad-ampersand.html\"}]},\"escaped-double-quote\":{\"match\":\"\\\\\\\\\\\\\\\\\\\\\"\",\"name\":\"constant.character.escape.js\"},\"escaped-single-quote\":{\"match\":\"\\\\\\\\\\\\\\\\'\",\"name\":\"constant.character.escape.js\"},\"extends\":{\"patterns\":[{\"begin\":\"(\\\\\\\\{\\\\\\\\{!<)\\\\\\\\s([-a-zA-Z0-9_\\\\\\\\./]+)\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.handlebars\"},\"2\":{\"name\":\"support.class.handlebars\"}},\"end\":\"(\\\\\\\\}\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"support.function.handlebars\"}},\"name\":\"meta.preprocessor.handlebars\"}]},\"handlebars_attribute\":{\"patterns\":[{\"include\":\"#handlebars_attribute_name\"},{\"include\":\"#handlebars_attribute_value\"}]},\"handlebars_attribute_name\":{\"begin\":\"\\\\\\\\b([-a-zA-Z0-9_\\\\\\\\.]+)\\\\\\\\b=\",\"captures\":{\"1\":{\"name\":\"variable.parameter.handlebars\"}},\"end\":\"(?='|\\\\\"|)\",\"name\":\"entity.other.attribute-name.handlebars\"},\"handlebars_attribute_value\":{\"begin\":\"([-a-zA-Z0-9_\\\\\\\\./]+)\\\\\\\\b\",\"captures\":{\"1\":{\"name\":\"variable.parameter.handlebars\"}},\"end\":\"('|\\\\\"|)\",\"name\":\"entity.other.attribute-value.handlebars\",\"patterns\":[{\"include\":\"#string\"}]},\"html_tags\":{\"patterns\":[{\"begin\":\"(<)([a-zA-Z0-9:-]+)(?=[^>]*></\\\\\\\\2>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.html\"}},\"end\":\"(>(<)/)(\\\\\\\\2)(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"meta.scope.between-tag-pair.html\"},\"3\":{\"name\":\"entity.name.tag.html\"},\"4\":{\"name\":\"punctuation.definition.tag.html\"}},\"name\":\"meta.tag.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(<\\\\\\\\?)(xml)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.xml.html\"}},\"end\":\"(\\\\\\\\?>)\",\"name\":\"meta.tag.preprocessor.xml.html\",\"patterns\":[{\"include\":\"#tag_generic_attribute\"},{\"include\":\"#string\"}]},{\"begin\":\"<!--\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.html\"}},\"end\":\"--\\\\\\\\s*>\",\"name\":\"comment.block.html\",\"patterns\":[{\"match\":\"--\",\"name\":\"invalid.illegal.bad-comments-or-CDATA.html\"}]},{\"begin\":\"<!\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.tag.html\"}},\"end\":\">\",\"name\":\"meta.tag.sgml.html\",\"patterns\":[{\"begin\":\"(DOCTYPE|doctype)\",\"captures\":{\"1\":{\"name\":\"entity.name.tag.doctype.html\"}},\"end\":\"(?=>)\",\"name\":\"meta.tag.sgml.doctype.html\",\"patterns\":[{\"match\":\"\\\\\"[^\\\\\">]*\\\\\"\",\"name\":\"string.quoted.double.doctype.identifiers-and-DTDs.html\"}]},{\"begin\":\"\\\\\\\\[CDATA\\\\\\\\[\",\"end\":\"]](?=>)\",\"name\":\"constant.other.inline-data.html\"},{\"match\":\"(\\\\\\\\s*)(?!--|>)\\\\\\\\S(\\\\\\\\s*)\",\"name\":\"invalid.illegal.bad-comments-or-CDATA.html\"}]},{\"begin\":\"(?:^\\\\\\\\s+)?(<)((?i:style))\\\\\\\\b(?![^>]*/>)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.style.html\"},\"3\":{\"name\":\"punctuation.definition.tag.html\"}},\"end\":\"(</)((?i:style))(>)(?:\\\\\\\\s*\\\\\\\\n)?\",\"name\":\"source.css.embedded.html\",\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"}},\"end\":\"(?=</(?i:style))\",\"patterns\":[{\"include\":\"source.css\"}]}]},{\"begin\":\"(?:^\\\\\\\\s+)?(<)((?i:script))\\\\\\\\b(?![^>]*/>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.script.html\"}},\"end\":\"(?<=</(script|SCRIPT))(>)(?:\\\\\\\\s*\\\\\\\\n)?\",\"endCaptures\":{\"2\":{\"name\":\"punctuation.definition.tag.html\"}},\"name\":\"source.js.embedded.html\",\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<!</(?:script|SCRIPT))(>)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.script.html\"}},\"end\":\"(</)((?i:script))\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.js\"}},\"match\":\"(//).*?((?=<\\/script)|$\\\\\\\\n?)\",\"name\":\"comment.line.double-slash.js\"},{\"begin\":\"/\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.js\"}},\"end\":\"\\\\\\\\*/|(?=<\\/script)\",\"name\":\"comment.block.js\"},{\"include\":\"source.js\"}]}]},{\"begin\":\"(</?)((?i:body|head|html)\\\\\\\\b)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.structure.any.html\"}},\"end\":\"(>)\",\"name\":\"meta.tag.structure.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(</?)((?i:address|blockquote|dd|div|header|section|footer|aside|nav|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|menu|pre)\\\\\\\\b)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.block.any.html\"}},\"end\":\"(>)\",\"name\":\"meta.tag.block.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(</?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var)\\\\\\\\b)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.inline.any.html\"}},\"end\":\"((?: ?/)?>)\",\"name\":\"meta.tag.inline.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(</?)([a-zA-Z0-9:-]+)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.other.html\"}},\"end\":\"(>)\",\"name\":\"meta.tag.other.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(</?)([a-zA-Z0-9{}:-]+)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.tokenised.html\"}},\"end\":\"(>)\",\"name\":\"meta.tag.tokenised.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"include\":\"#entities\"},{\"match\":\"<>\",\"name\":\"invalid.illegal.incomplete.html\"},{\"match\":\"<\",\"name\":\"invalid.illegal.bad-angle-bracket.html\"}]},\"inline_script\":{\"begin\":\"(?:^\\\\\\\\s+)?(<)((?i:script))\\\\\\\\b(?:.*(type)=([\\\\\"'](?:text/x-handlebars-template|text/x-handlebars|text/template|x-tmpl-handlebars)[\\\\\"']))(?![^>]*/>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.script.html\"},\"3\":{\"name\":\"entity.other.attribute-name.html\"},\"4\":{\"name\":\"string.quoted.double.html\"}},\"end\":\"(?<=</(script|SCRIPT))(>)(?:\\\\\\\\s*\\\\\\\\n)?\",\"endCaptures\":{\"2\":{\"name\":\"punctuation.definition.tag.html\"}},\"name\":\"source.handlebars.embedded.html\",\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<!</(?:script|SCRIPT))(>)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.script.html\"}},\"end\":\"(</)((?i:script))\",\"patterns\":[{\"include\":\"#block_comments\"},{\"include\":\"#comments\"},{\"include\":\"#block_helper\"},{\"include\":\"#end_block\"},{\"include\":\"#else_token\"},{\"include\":\"#partial_and_var\"},{\"include\":\"#html_tags\"},{\"include\":\"text.html.basic\"}]}]},\"partial_and_var\":{\"begin\":\"(\\\\\\\\{\\\\\\\\{~?\\\\\\\\{*(>|!<)*)\\\\\\\\s*(@?[-a-zA-Z0-9$_\\\\\\\\./]+)*\",\"beginCaptures\":{\"1\":{\"name\":\"support.constant.handlebars\"},\"3\":{\"name\":\"variable.parameter.handlebars\"}},\"end\":\"(~?\\\\\\\\}\\\\\\\\}\\\\\\\\}*)\",\"endCaptures\":{\"1\":{\"name\":\"support.constant.handlebars\"}},\"name\":\"meta.function.inline.other.handlebars\",\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#handlebars_attribute\"}]},\"string\":{\"patterns\":[{\"include\":\"#string-single-quoted\"},{\"include\":\"#string-double-quoted\"}]},\"string-double-quoted\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"string.quoted.double.handlebars\",\"patterns\":[{\"include\":\"#escaped-double-quote\"},{\"include\":\"#block_comments\"},{\"include\":\"#comments\"},{\"include\":\"#block_helper\"},{\"include\":\"#else_token\"},{\"include\":\"#end_block\"},{\"include\":\"#partial_and_var\"}]},\"string-single-quoted\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"string.quoted.single.handlebars\",\"patterns\":[{\"include\":\"#escaped-single-quote\"},{\"include\":\"#block_comments\"},{\"include\":\"#comments\"},{\"include\":\"#block_helper\"},{\"include\":\"#else_token\"},{\"include\":\"#end_block\"},{\"include\":\"#partial_and_var\"}]},\"tag-stuff\":{\"patterns\":[{\"include\":\"#tag_id_attribute\"},{\"include\":\"#tag_generic_attribute\"},{\"include\":\"#string\"},{\"include\":\"#block_comments\"},{\"include\":\"#comments\"},{\"include\":\"#block_helper\"},{\"include\":\"#end_block\"},{\"include\":\"#else_token\"},{\"include\":\"#partial_and_var\"}]},\"tag_generic_attribute\":{\"begin\":\"\\\\\\\\b([a-zA-Z0-9_-]+)\\\\\\\\b\\\\\\\\s*(=)\",\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.generic.html\"},\"2\":{\"name\":\"punctuation.separator.key-value.html\"}},\"end\":\"(?<='|\\\\\"|)\",\"name\":\"entity.other.attribute-name.html\",\"patterns\":[{\"include\":\"#string\"}]},\"tag_id_attribute\":{\"begin\":\"\\\\\\\\b(id)\\\\\\\\b\\\\\\\\s*(=)\",\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.id.html\"},\"2\":{\"name\":\"punctuation.separator.key-value.html\"}},\"end\":\"(?<='|\\\\\"|)\",\"name\":\"meta.attribute-with-value.id.html\",\"patterns\":[{\"include\":\"#string\"}]},\"yfm\":{\"patterns\":[{\"begin\":\"(?<!\\\\\\\\s)---\\\\\\\\n$\",\"end\":\"^---\\\\\\\\s\",\"name\":\"markup.raw.yaml.front-matter\",\"patterns\":[{\"include\":\"source.yaml\"}]}]}},\"scopeName\":\"text.html.handlebars\",\"embeddedLangs\":[\"html\",\"css\",\"javascript\",\"yaml\"],\"aliases\":[\"hbs\"]}`)),d=[...e,...t,...n,...a,i];export{d as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/C1XDQQGZ.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"TalonScript\",\"name\":\"talonscript\",\"patterns\":[{\"include\":\"#body-header\"},{\"include\":\"#header\"},{\"include\":\"#body-noheader\"},{\"include\":\"#comment\"},{\"include\":\"#settings\"}],\"repository\":{\"action\":{\"begin\":\"([a-zA-Z0-9._]+)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.talon\",\"patterns\":[{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.separator.talon\"}]},\"2\":{\"name\":\"punctuation.definition.parameters.begin.talon\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.talon\"}},\"name\":\"variable.parameter.talon\",\"patterns\":[{\"include\":\"#action\"},{\"include\":\"#qstring-long\"},{\"include\":\"#qstring\"},{\"include\":\"#argsep\"},{\"include\":\"#number\"},{\"include\":\"#operator\"},{\"include\":\"#varname\"}]},\"action-gamepad\":{\"captures\":{\"2\":{\"name\":\"punctuation.definition.parameters.begin.talon\"},\"3\":{\"name\":\"variable.parameter.talon\",\"patterns\":[{\"include\":\"#key-mods\"}]},\"4\":{\"name\":\"punctuation.definition.parameters.key.talon\"}},\"match\":\"(deck|gamepad|action|face|parrot)(\\\\\\\\()(.*)(\\\\\\\\))\",\"name\":\"entity.name.function.talon\"},\"action-key\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.parameters.begin.talon\"},\"2\":{\"name\":\"variable.parameter.talon\",\"patterns\":[{\"include\":\"#key-prefixes\"},{\"include\":\"#key-mods\"},{\"include\":\"#keystring\"}]},\"3\":{\"name\":\"punctuation.definition.parameters.key.talon\"}},\"match\":\"key(\\\\\\\\()(.*)(\\\\\\\\))\",\"name\":\"entity.name.function.talon\"},\"argsep\":{\"match\":\",\",\"name\":\"punctuation.separator.talon\"},\"assignment\":{\"captures\":{\"1\":{\"name\":\"variable.other.talon\"},\"2\":{\"name\":\"keyword.operator.talon\"},\"3\":{\"name\":\"variable.other.talon\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#expression\"}]}},\"match\":\"(\\\\\\\\S*)(\\\\\\\\s?=\\\\\\\\s?)(.*)\"},\"body-header\":{\"begin\":\"^-$\",\"end\":\"(?=not)possible\",\"patterns\":[{\"include\":\"#body-noheader\"}]},\"body-noheader\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#other-rule-definition\"},{\"include\":\"#speech-rule-definition\"}]},\"capture\":{\"match\":\"(\\\\\\\\<[a-zA-Z0-9._]+\\\\\\\\>)\",\"name\":\"variable.parameter.talon\"},\"comment\":{\"match\":\"(\\\\\\\\s*#.*)$\",\"name\":\"comment.line.number-sign.talon\"},\"context\":{\"captures\":{\"1\":{\"name\":\"entity.name.tag.talon\",\"patterns\":[{\"match\":\"(and |or )\",\"name\":\"keyword.operator.talon\"}]},\"2\":{\"name\":\"entity.name.type.talon\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#regexp\"}]}},\"match\":\"(.*): (.*)\"},\"expression\":{\"patterns\":[{\"include\":\"#qstring-long\"},{\"include\":\"#action-key\"},{\"include\":\"#action\"},{\"include\":\"#operator\"},{\"include\":\"#number\"},{\"include\":\"#qstring\"},{\"include\":\"#varname\"}]},\"fstring\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#action\"},{\"include\":\"#operator\"},{\"include\":\"#number\"},{\"include\":\"#varname\"},{\"include\":\"#qstring\"}]}},\"match\":\"{(.+?)}\",\"name\":\"constant.character.format.placeholder.talon\"},\"header\":{\"begin\":\"(?=^app:|title:|os:|tag:|list:|language:)\",\"end\":\"(?=^-$)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#context\"}]},\"key-mods\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.talon\"},\"2\":{\"name\":\"keyword.control.talon\"}},\"match\":\"(:)(up|down|change|repeat|start|stop|\\\\\\\\d+)\",\"name\":\"keyword.operator.talon\"},\"key-prefixes\":{\"captures\":{\"1\":{\"name\":\"keyword.control.talon\"},\"2\":{\"name\":\"keyword.operator.talon\"}},\"match\":\"(ctrl|shift|cmd|alt|win|super)(-)\"},\"keystring\":{\"begin\":\"(\\\\\"|')\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.talon\"}},\"end\":\"(\\\\\\\\1)|$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.talon\"}},\"name\":\"string.quoted.double.talon\",\"patterns\":[{\"include\":\"#string-body\"},{\"include\":\"#key-mods\"},{\"include\":\"#key-prefixes\"}]},\"list\":{\"match\":\"({[a-zA-Z0-9._]+?})\",\"name\":\"string.interpolated.talon\"},\"number\":{\"match\":\"(?<=\\\\\\\\b)\\\\\\\\d+(\\\\\\\\.\\\\\\\\d+)?\",\"name\":\"constant.numeric.talon\"},\"operator\":{\"match\":\"\\\\\\\\s(\\\\\\\\+|-|\\\\\\\\*|/|or)\\\\\\\\s\",\"name\":\"keyword.operator.talon\"},\"other-rule-definition\":{\"begin\":\"^([a-z]+\\\\\\\\(.*[^\\\\\\\\-]\\\\\\\\)|[a-z]+\\\\\\\\(.*--\\\\\\\\)|[a-z]+\\\\\\\\(-\\\\\\\\)|[a-z]+\\\\\\\\(\\\\\\\\)):\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.talon\",\"patterns\":[{\"include\":\"#action-key\"},{\"include\":\"#action-gamepad\"},{\"include\":\"#rule-specials\"}]}},\"end\":\"(?=^[^\\\\\\\\s#])\",\"patterns\":[{\"include\":\"#statement\"}]},\"qstring\":{\"begin\":\"(\\\\\"|')\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.talon\"}},\"end\":\"(\\\\\\\\1)|$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.talon\"}},\"name\":\"string.quoted.double.talon\",\"patterns\":[{\"include\":\"#string-body\"}]},\"qstring-long\":{\"begin\":\"(\\\\\"\\\\\"\\\\\"|''')\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.talon\"}},\"end\":\"(\\\\\\\\1)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.talon\"}},\"name\":\"string.quoted.double.talon\",\"patterns\":[{\"include\":\"#string-body\"}]},\"regexp\":{\"begin\":\"(/)\",\"end\":\"(/)\",\"name\":\"string.regexp.talon\",\"patterns\":[{\"match\":\"\\\\\\\\.\",\"name\":\"support.other.match.any.regexp\"},{\"match\":\"\\\\\\\\$\",\"name\":\"support.other.match.end.regexp\"},{\"match\":\"\\\\\\\\^\",\"name\":\"support.other.match.begin.regexp\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\.|\\\\\\\\\\\\\\\\\\\\\\\\*|\\\\\\\\\\\\\\\\\\\\\\\\^|\\\\\\\\\\\\\\\\\\\\\\\\$|\\\\\\\\\\\\\\\\\\\\\\\\+|\\\\\\\\\\\\\\\\\\\\\\\\?\",\"name\":\"constant.character.escape.talon\"},{\"match\":\"\\\\\\\\[(\\\\\\\\\\\\\\\\\\\\\\\\]|[^\\\\\\\\]])*\\\\\\\\]\",\"name\":\"constant.other.set.regexp\"},{\"match\":\"\\\\\\\\*|\\\\\\\\+|\\\\\\\\?\",\"name\":\"keyword.operator.quantifier.regexp\"}]},\"rule-specials\":{\"captures\":{\"1\":{\"name\":\"entity.name.function.talon\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.talon\"},\"3\":{\"name\":\"punctuation.definition.parameters.end.talon\"}},\"match\":\"(settings|tag)(\\\\\\\\()(\\\\\\\\))\"},\"speech-rule-definition\":{\"begin\":\"^(.*?):\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.talon\",\"patterns\":[{\"match\":\"^\\\\\\\\^\",\"name\":\"string.regexp.talon\"},{\"match\":\"\\\\\\\\$$\",\"name\":\"string.regexp.talon\"},{\"match\":\"\\\\\\\\(\",\"name\":\"punctuation.definition.parameters.begin.talon\"},{\"match\":\"\\\\\\\\)\",\"name\":\"punctuation.definition.parameters.end.talon\"},{\"match\":\"\\\\\\\\|\",\"name\":\"punctuation.separator.talon\"},{\"include\":\"#capture\"},{\"include\":\"#list\"}]}},\"end\":\"(?=^[^\\\\\\\\s#])\",\"patterns\":[{\"include\":\"#statement\"}]},\"statement\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#qstring-long\"},{\"include\":\"#action-key\"},{\"include\":\"#action\"},{\"include\":\"#qstring\"},{\"include\":\"#assignment\"}]},\"string-body\":{\"patterns\":[{\"match\":\"{{|}}\",\"name\":\"string.quoted.double.talon\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\|\\\\\\\\\\\\\\\\n|\\\\\\\\\\\\\\\\t|\\\\\\\\\\\\\\\\r|\\\\\\\\\\\\\\\\\\\\\"|\\\\\\\\\\\\\\\\'\",\"name\":\"constant.character.escape.python\"},{\"include\":\"#fstring\"}]},\"varname\":{\"captures\":{\"2\":{\"name\":\"constant.numeric.talon\",\"patterns\":[{\"match\":\"_\",\"name\":\"keyword.operator.talon\"}]}},\"match\":\"([a-zA-Z0-9._])(_(list|\\\\\\\\d+))?\",\"name\":\"variable.parameter.talon\"}},\"scopeName\":\"source.talon\",\"aliases\":[\"talon\"]}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/C1tVc3UG.js",
    "content": "import e from\"./BMYPR7BL.js\";import n from\"./cPjAOO0u.js\";import t from\"./BPhBrDlE.js\";import i from\"./ySlJ1b_l.js\";import r from\"./COK4E0Yg.js\";import\"./xI-RfyKK.js\";const a=Object.freeze(JSON.parse(`{\"displayName\":\"Perl\",\"name\":\"perl\",\"patterns\":[{\"include\":\"#line_comment\"},{\"begin\":\"^(?==[a-zA-Z]+)\",\"end\":\"^(=cut\\\\\\\\b.*$)\",\"endCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#pod\"}]}},\"name\":\"comment.block.documentation.perl\",\"patterns\":[{\"include\":\"#pod\"}]},{\"include\":\"#variable\"},{\"applyEndPatternLast\":1,\"begin\":\"\\\\\\\\b(?=qr\\\\\\\\s*[^\\\\\\\\s\\\\\\\\w])\",\"comment\":\"string.regexp.compile.perl\",\"end\":\"((([egimosxradlupcn]*)))(?=(\\\\\\\\s+\\\\\\\\S|\\\\\\\\s*[;\\\\\\\\,\\\\\\\\#\\\\\\\\{\\\\\\\\}\\\\\\\\)]|\\\\\\\\s*$))\",\"endCaptures\":{\"1\":{\"name\":\"string.regexp.compile.perl\"},\"2\":{\"name\":\"punctuation.definition.string.perl\"},\"3\":{\"name\":\"keyword.control.regexp-option.perl\"}},\"patterns\":[{\"begin\":\"(qr)\\\\\\\\s*\\\\\\\\{\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.string.perl\"},\"1\":{\"name\":\"support.function.perl\"}},\"end\":\"\\\\\\\\}\",\"name\":\"string.regexp.compile.nested_braces.perl\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"include\":\"#nested_braces_interpolated\"}]},{\"begin\":\"(qr)\\\\\\\\s*\\\\\\\\[\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.string.perl\"},\"1\":{\"name\":\"support.function.perl\"}},\"end\":\"\\\\\\\\]\",\"name\":\"string.regexp.compile.nested_brackets.perl\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"include\":\"#nested_brackets_interpolated\"}]},{\"begin\":\"(qr)\\\\\\\\s*<\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.string.perl\"},\"1\":{\"name\":\"support.function.perl\"}},\"end\":\">\",\"name\":\"string.regexp.compile.nested_ltgt.perl\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"include\":\"#nested_ltgt_interpolated\"}]},{\"begin\":\"(qr)\\\\\\\\s*\\\\\\\\(\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.string.perl\"},\"1\":{\"name\":\"support.function.perl\"}},\"end\":\"\\\\\\\\)\",\"name\":\"string.regexp.compile.nested_parens.perl\",\"patterns\":[{\"comment\":\"This is to prevent thinks like qr/foo$/ to treat $/ as a variable\",\"match\":\"\\\\\\\\$(?=[^\\\\\\\\s\\\\\\\\w\\\\\\\\\\\\\\\\'\\\\\\\\{\\\\\\\\[\\\\\\\\(\\\\\\\\<])\"},{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"include\":\"#nested_parens_interpolated\"}]},{\"begin\":\"(qr)\\\\\\\\s*'\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.string.perl\"},\"1\":{\"name\":\"support.function.perl\"}},\"end\":\"'\",\"name\":\"string.regexp.compile.single-quote.perl\",\"patterns\":[{\"include\":\"#escaped_char\"}]},{\"begin\":\"(qr)\\\\\\\\s*([^\\\\\\\\s\\\\\\\\w'\\\\\\\\{\\\\\\\\[\\\\\\\\(\\\\\\\\<])\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.string.perl\"},\"1\":{\"name\":\"support.function.perl\"}},\"end\":\"\\\\\\\\2\",\"name\":\"string.regexp.compile.simple-delimiter.perl\",\"patterns\":[{\"comment\":\"This is to prevent thinks like qr/foo$/ to treat $/ as a variable\",\"match\":\"\\\\\\\\$(?=[^\\\\\\\\s\\\\\\\\w'\\\\\\\\{\\\\\\\\[\\\\\\\\(\\\\\\\\<])\",\"name\":\"keyword.control.anchor.perl\"},{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"include\":\"#nested_parens_interpolated\"}]}]},{\"applyEndPatternLast\":1,\"begin\":\"(?<!\\\\\\\\{|\\\\\\\\+|\\\\\\\\-)\\\\\\\\b(?=m\\\\\\\\s*[^\\\\\\\\sa-zA-Z0-9])\",\"comment\":\"string.regexp.find-m.perl\",\"end\":\"((([egimosxradlupcn]*)))(?=(\\\\\\\\s+\\\\\\\\S|\\\\\\\\s*[;\\\\\\\\,\\\\\\\\#\\\\\\\\{\\\\\\\\}\\\\\\\\)]|\\\\\\\\s*$))\",\"endCaptures\":{\"1\":{\"name\":\"string.regexp.find-m.perl\"},\"2\":{\"name\":\"punctuation.definition.string.perl\"},\"3\":{\"name\":\"keyword.control.regexp-option.perl\"}},\"patterns\":[{\"begin\":\"(m)\\\\\\\\s*\\\\\\\\{\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.string.perl\"},\"1\":{\"name\":\"support.function.perl\"}},\"end\":\"\\\\\\\\}\",\"name\":\"string.regexp.find-m.nested_braces.perl\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"include\":\"#nested_braces_interpolated\"}]},{\"begin\":\"(m)\\\\\\\\s*\\\\\\\\[\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.string.perl\"},\"1\":{\"name\":\"support.function.perl\"}},\"end\":\"\\\\\\\\]\",\"name\":\"string.regexp.find-m.nested_brackets.perl\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"include\":\"#nested_brackets_interpolated\"}]},{\"begin\":\"(m)\\\\\\\\s*<\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.string.perl\"},\"1\":{\"name\":\"support.function.perl\"}},\"end\":\">\",\"name\":\"string.regexp.find-m.nested_ltgt.perl\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"include\":\"#nested_ltgt_interpolated\"}]},{\"begin\":\"(m)\\\\\\\\s*\\\\\\\\(\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.string.perl\"},\"1\":{\"name\":\"support.function.perl\"}},\"end\":\"\\\\\\\\)\",\"name\":\"string.regexp.find-m.nested_parens.perl\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"include\":\"#nested_parens_interpolated\"}]},{\"begin\":\"(m)\\\\\\\\s*'\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.string.perl\"},\"1\":{\"name\":\"support.function.perl\"}},\"end\":\"'\",\"name\":\"string.regexp.find-m.single-quote.perl\",\"patterns\":[{\"include\":\"#escaped_char\"}]},{\"begin\":\"\\\\\\\\G(?<!\\\\\\\\{|\\\\\\\\+|\\\\\\\\-)(m)(?!_)\\\\\\\\s*([^\\\\\\\\sa-zA-Z0-9'\\\\\\\\{\\\\\\\\[\\\\\\\\(\\\\\\\\<])\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.string.perl\"},\"1\":{\"name\":\"support.function.perl\"}},\"end\":\"\\\\\\\\2\",\"name\":\"string.regexp.find-m.simple-delimiter.perl\",\"patterns\":[{\"comment\":\"This is to prevent thinks like qr/foo$/ to treat $/ as a variable\",\"match\":\"\\\\\\\\$(?=[^\\\\\\\\sa-zA-Z0-9'\\\\\\\\{\\\\\\\\[\\\\\\\\(\\\\\\\\<])\",\"name\":\"keyword.control.anchor.perl\"},{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.character-class.begin.perl\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.character-class.end.perl\"}},\"name\":\"constant.other.character-class.set.perl\",\"patterns\":[{\"comment\":\"This is to prevent thinks like qr/foo$/ to treat $/ as a variable\",\"match\":\"\\\\\\\\$(?=[^\\\\\\\\s\\\\\\\\w'\\\\\\\\{\\\\\\\\[\\\\\\\\(\\\\\\\\<])\",\"name\":\"keyword.control.anchor.perl\"},{\"include\":\"#escaped_char\"}]},{\"include\":\"#nested_parens_interpolated\"}]}]},{\"applyEndPatternLast\":1,\"begin\":\"\\\\\\\\b(?=(?<!\\\\\\\\&)(s)(\\\\\\\\s+\\\\\\\\S|\\\\\\\\s*[;\\\\\\\\,\\\\\\\\{\\\\\\\\}\\\\\\\\(\\\\\\\\)\\\\\\\\[<]|$))\",\"comment\":\"string.regexp.replace.perl\",\"end\":\"((([egimosxradlupcn]*)))(?=(\\\\\\\\s+\\\\\\\\S|\\\\\\\\s*[;\\\\\\\\,\\\\\\\\{\\\\\\\\}\\\\\\\\)\\\\\\\\]>]|\\\\\\\\s*$))\",\"endCaptures\":{\"1\":{\"name\":\"string.regexp.replace.perl\"},\"2\":{\"name\":\"punctuation.definition.string.perl\"},\"3\":{\"name\":\"keyword.control.regexp-option.perl\"}},\"patterns\":[{\"begin\":\"(s)\\\\\\\\s*\\\\\\\\{\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.string.perl\"},\"1\":{\"name\":\"support.function.perl\"}},\"end\":\"\\\\\\\\}\",\"name\":\"string.regexp.nested_braces.perl\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#nested_braces\"}]},{\"begin\":\"(s)\\\\\\\\s*\\\\\\\\[\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.string.perl\"},\"1\":{\"name\":\"support.function.perl\"}},\"end\":\"\\\\\\\\]\",\"name\":\"string.regexp.nested_brackets.perl\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#nested_brackets\"}]},{\"begin\":\"(s)\\\\\\\\s*<\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.string.perl\"},\"1\":{\"name\":\"support.function.perl\"}},\"end\":\">\",\"name\":\"string.regexp.nested_ltgt.perl\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#nested_ltgt\"}]},{\"begin\":\"(s)\\\\\\\\s*\\\\\\\\(\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.string.perl\"},\"1\":{\"name\":\"support.function.perl\"}},\"end\":\"\\\\\\\\)\",\"name\":\"string.regexp.nested_parens.perl\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#nested_parens\"}]},{\"begin\":\"\\\\\\\\{\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.string.perl\"}},\"end\":\"\\\\\\\\}\",\"name\":\"string.regexp.format.nested_braces.perl\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"include\":\"#nested_braces_interpolated\"}]},{\"begin\":\"\\\\\\\\[\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.string.perl\"}},\"end\":\"\\\\\\\\]\",\"name\":\"string.regexp.format.nested_brackets.perl\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"include\":\"#nested_brackets_interpolated\"}]},{\"begin\":\"<\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.string.perl\"}},\"end\":\">\",\"name\":\"string.regexp.format.nested_ltgt.perl\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"include\":\"#nested_ltgt_interpolated\"}]},{\"begin\":\"\\\\\\\\(\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.string.perl\"}},\"end\":\"\\\\\\\\)\",\"name\":\"string.regexp.format.nested_parens.perl\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"include\":\"#nested_parens_interpolated\"}]},{\"begin\":\"'\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.string.perl\"}},\"end\":\"'\",\"name\":\"string.regexp.format.single_quote.perl\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\['\\\\\\\\\\\\\\\\]\",\"name\":\"constant.character.escape.perl\"}]},{\"begin\":\"([^\\\\\\\\s\\\\\\\\w\\\\\\\\[({<;])\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.string.perl\"}},\"end\":\"\\\\\\\\1\",\"name\":\"string.regexp.format.simple_delimiter.perl\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"}]},{\"match\":\"\\\\\\\\s+\"}]},{\"begin\":\"\\\\\\\\b(?=s([^\\\\\\\\sa-zA-Z0-9\\\\\\\\[({<]).*\\\\\\\\1([egimosxradlupcn]*)([\\\\\\\\}\\\\\\\\)\\\\\\\\;\\\\\\\\,]|\\\\\\\\s+))\",\"comment\":\"string.regexp.replaceXXX\",\"end\":\"((([egimosxradlupcn]*)))(?=([\\\\\\\\}\\\\\\\\)\\\\\\\\;\\\\\\\\,]|\\\\\\\\s+|\\\\\\\\s*$))\",\"endCaptures\":{\"1\":{\"name\":\"string.regexp.replace.perl\"},\"2\":{\"name\":\"punctuation.definition.string.perl\"},\"3\":{\"name\":\"keyword.control.regexp-option.perl\"}},\"patterns\":[{\"begin\":\"(s\\\\\\\\s*)([^\\\\\\\\sa-zA-Z0-9\\\\\\\\[({<])\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.string.perl\"},\"1\":{\"name\":\"support.function.perl\"}},\"end\":\"(?=\\\\\\\\2)\",\"name\":\"string.regexp.replaceXXX.simple_delimiter.perl\",\"patterns\":[{\"include\":\"#escaped_char\"}]},{\"begin\":\"'\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.string.perl\"}},\"end\":\"'\",\"name\":\"string.regexp.replaceXXX.format.single_quote.perl\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\['\\\\\\\\\\\\\\\\]\",\"name\":\"constant.character.escape.perl.perl\"}]},{\"begin\":\"([^\\\\\\\\sa-zA-Z0-9\\\\\\\\[({<])\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.string.perl\"}},\"end\":\"\\\\\\\\1\",\"name\":\"string.regexp.replaceXXX.format.simple_delimiter.perl\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"}]}]},{\"begin\":\"\\\\\\\\b(?=(?<!\\\\\\\\\\\\\\\\)s\\\\\\\\s*([^\\\\\\\\s\\\\\\\\w\\\\\\\\[({<>]))\",\"comment\":\"string.regexp.replace.extended\",\"end\":\"((([egimosradlupc]*x[egimosradlupc]*)))\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"string.regexp.replace.perl\"},\"2\":{\"name\":\"punctuation.definition.string.perl\"},\"3\":{\"name\":\"keyword.control.regexp-option.perl\"}},\"patterns\":[{\"begin\":\"(s)\\\\\\\\s*(.)\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.string.perl\"},\"1\":{\"name\":\"support.function.perl\"}},\"end\":\"(?=\\\\\\\\2)\",\"name\":\"string.regexp.replace.extended.simple_delimiter.perl\",\"patterns\":[{\"include\":\"#escaped_char\"}]},{\"begin\":\"'\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.string.perl\"}},\"end\":\"'(?=[egimosradlupc]*x[egimosradlupc]*)\\\\\\\\b\",\"name\":\"string.regexp.replace.extended.simple_delimiter.perl\",\"patterns\":[{\"include\":\"#escaped_char\"}]},{\"begin\":\"(.)\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.string.perl\"}},\"end\":\"\\\\\\\\1(?=[egimosradlupc]*x[egimosradlupc]*)\\\\\\\\b\",\"name\":\"string.regexp.replace.extended.simple_delimiter.perl\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"}]}]},{\"begin\":\"(?<=\\\\\\\\(|\\\\\\\\{|~|&|\\\\\\\\||if|unless|^)\\\\\\\\s*((\\\\\\\\/))\",\"beginCaptures\":{\"1\":{\"name\":\"string.regexp.find.perl\"},\"2\":{\"name\":\"punctuation.definition.string.perl\"}},\"contentName\":\"string.regexp.find.perl\",\"end\":\"((\\\\\\\\1([egimosxradlupcn]*)))(?=(\\\\\\\\s+\\\\\\\\S|\\\\\\\\s*[;\\\\\\\\,\\\\\\\\#\\\\\\\\{\\\\\\\\}\\\\\\\\)]|\\\\\\\\s*$))\",\"endCaptures\":{\"1\":{\"name\":\"string.regexp.find.perl\"},\"2\":{\"name\":\"punctuation.definition.string.perl\"},\"3\":{\"name\":\"keyword.control.regexp-option.perl\"}},\"patterns\":[{\"comment\":\"This is to prevent thinks like /foo$/ to treat $/ as a variable\",\"match\":\"\\\\\\\\$(?=\\\\\\\\/)\",\"name\":\"keyword.control.anchor.perl\"},{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"}]},{\"captures\":{\"1\":{\"name\":\"constant.other.key.perl\"}},\"match\":\"\\\\\\\\b(\\\\\\\\w+)\\\\\\\\s*(?==>)\"},{\"match\":\"(?<={)\\\\\\\\s*\\\\\\\\w+\\\\\\\\s*(?=})\",\"name\":\"constant.other.bareword.perl\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.perl\"},\"2\":{\"name\":\"entity.name.type.class.perl\"}},\"match\":\"^\\\\\\\\s*(package)\\\\\\\\s+([^\\\\\\\\s;]+)\",\"name\":\"meta.class.perl\"},{\"captures\":{\"1\":{\"name\":\"storage.type.sub.perl\"},\"2\":{\"name\":\"entity.name.function.perl\"},\"3\":{\"name\":\"storage.type.method.perl\"}},\"match\":\"\\\\\\\\b(sub)(?:\\\\\\\\s+([-a-zA-Z0-9_]+))?\\\\\\\\s*(?:\\\\\\\\([\\\\\\\\$\\\\\\\\@\\\\\\\\*;]*\\\\\\\\))?[^\\\\\\\\w\\\\\\\\{]\",\"name\":\"meta.function.perl\"},{\"captures\":{\"1\":{\"name\":\"entity.name.function.perl\"},\"2\":{\"name\":\"punctuation.definition.parameters.perl\"},\"3\":{\"name\":\"variable.parameter.function.perl\"}},\"match\":\"^\\\\\\\\s*(BEGIN|UNITCHECK|CHECK|INIT|END|DESTROY)\\\\\\\\b\",\"name\":\"meta.function.perl\"},{\"begin\":\"^(?=(\\\\\\\\t| {4}))\",\"end\":\"(?=[^\\\\\\\\t\\\\\\\\s])\",\"name\":\"meta.leading-tabs\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"meta.odd-tab\"},\"2\":{\"name\":\"meta.even-tab\"}},\"match\":\"(\\\\\\\\t| {4})(\\\\\\\\t| {4})?\"}]},{\"captures\":{\"1\":{\"name\":\"support.function.perl\"},\"2\":{\"name\":\"punctuation.definition.string.perl\"},\"5\":{\"name\":\"punctuation.definition.string.perl\"},\"8\":{\"name\":\"punctuation.definition.string.perl\"}},\"match\":\"\\\\\\\\b(tr|y)\\\\\\\\s*([^A-Za-z0-9\\\\\\\\s])(.*?)(?<!\\\\\\\\\\\\\\\\)(\\\\\\\\\\\\\\\\{2})*(\\\\\\\\2)(.*?)(?<!\\\\\\\\\\\\\\\\)(\\\\\\\\\\\\\\\\{2})*(\\\\\\\\2)\",\"name\":\"string.regexp.replace.perl\"},{\"match\":\"\\\\\\\\b(__FILE__|__LINE__|__PACKAGE__|__SUB__)\\\\\\\\b\",\"name\":\"constant.language.perl\"},{\"begin\":\"\\\\\\\\b(__DATA__|__END__)\\\\\\\\n?\",\"beginCaptures\":{\"1\":{\"name\":\"constant.language.perl\"}},\"contentName\":\"comment.block.documentation.perl\",\"end\":\"\\\\\\\\z\",\"patterns\":[{\"include\":\"#pod\"}]},{\"match\":\"(?<!->)\\\\\\\\b(continue|default|die|do|else|elsif|exit|for|foreach|given|goto|if|last|next|redo|return|select|unless|until|wait|when|while|switch|case|require|use|eval)\\\\\\\\b\",\"name\":\"keyword.control.perl\"},{\"match\":\"\\\\\\\\b(my|our|local)\\\\\\\\b\",\"name\":\"storage.modifier.perl\"},{\"match\":\"(?<!\\\\\\\\w)\\\\\\\\-[rwxoRWXOezsfdlpSbctugkTBMAC]\\\\\\\\b\",\"name\":\"keyword.operator.filetest.perl\"},{\"match\":\"\\\\\\\\b(and|or|xor|as|not)\\\\\\\\b\",\"name\":\"keyword.operator.logical.perl\"},{\"match\":\"(<=>|=>|->)\",\"name\":\"keyword.operator.comparison.perl\"},{\"include\":\"#heredoc\"},{\"begin\":\"\\\\\\\\bqq\\\\\\\\s*([^\\\\\\\\(\\\\\\\\{\\\\\\\\[\\\\\\\\<\\\\\\\\w\\\\\\\\s])\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.perl\"}},\"end\":\"\\\\\\\\1\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"string.quoted.other.qq.perl\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"}]},{\"begin\":\"\\\\\\\\bqx\\\\\\\\s*([^'\\\\\\\\(\\\\\\\\{\\\\\\\\[\\\\\\\\<\\\\\\\\w\\\\\\\\s])\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.perl\"}},\"end\":\"\\\\\\\\1\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"string.interpolated.qx.perl\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"}]},{\"begin\":\"\\\\\\\\bqx\\\\\\\\s*'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.perl\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"string.interpolated.qx.single-quote.perl\",\"patterns\":[{\"include\":\"#escaped_char\"}]},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.perl\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"string.quoted.double.perl\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"}]},{\"begin\":\"(?<!->)\\\\\\\\bqw?\\\\\\\\s*([^\\\\\\\\(\\\\\\\\{\\\\\\\\[\\\\\\\\<\\\\\\\\w\\\\\\\\s])\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.perl\"}},\"end\":\"\\\\\\\\1\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"string.quoted.other.q.perl\"},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.perl\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"string.quoted.single.perl\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\['\\\\\\\\\\\\\\\\]\",\"name\":\"constant.character.escape.perl\"}]},{\"begin\":\"\\`\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.perl\"}},\"end\":\"\\`\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"string.interpolated.perl\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"}]},{\"begin\":\"(?<!->)\\\\\\\\bqq\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.perl\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"string.quoted.other.qq-paren.perl\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#nested_parens_interpolated\"},{\"include\":\"#variable\"}]},{\"begin\":\"\\\\\\\\bqq\\\\\\\\s*\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.perl\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"string.quoted.other.qq-brace.perl\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#nested_braces_interpolated\"},{\"include\":\"#variable\"}]},{\"begin\":\"\\\\\\\\bqq\\\\\\\\s*\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.perl\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"string.quoted.other.qq-bracket.perl\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#nested_brackets_interpolated\"},{\"include\":\"#variable\"}]},{\"begin\":\"\\\\\\\\bqq\\\\\\\\s*\\\\\\\\<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.perl\"}},\"end\":\"\\\\\\\\>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"string.quoted.other.qq-ltgt.perl\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#nested_ltgt_interpolated\"},{\"include\":\"#variable\"}]},{\"begin\":\"(?<!->)\\\\\\\\bqx\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.perl\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"string.interpolated.qx-paren.perl\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#nested_parens_interpolated\"},{\"include\":\"#variable\"}]},{\"begin\":\"\\\\\\\\bqx\\\\\\\\s*\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.perl\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"string.interpolated.qx-brace.perl\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#nested_braces_interpolated\"},{\"include\":\"#variable\"}]},{\"begin\":\"\\\\\\\\bqx\\\\\\\\s*\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.perl\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"string.interpolated.qx-bracket.perl\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#nested_brackets_interpolated\"},{\"include\":\"#variable\"}]},{\"begin\":\"\\\\\\\\bqx\\\\\\\\s*\\\\\\\\<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.perl\"}},\"end\":\"\\\\\\\\>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"string.interpolated.qx-ltgt.perl\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#nested_ltgt_interpolated\"},{\"include\":\"#variable\"}]},{\"begin\":\"(?<!->)\\\\\\\\bqw?\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.perl\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"string.quoted.other.q-paren.perl\",\"patterns\":[{\"include\":\"#nested_parens\"}]},{\"begin\":\"\\\\\\\\bqw?\\\\\\\\s*\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.perl\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"string.quoted.other.q-brace.perl\",\"patterns\":[{\"include\":\"#nested_braces\"}]},{\"begin\":\"\\\\\\\\bqw?\\\\\\\\s*\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.perl\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"string.quoted.other.q-bracket.perl\",\"patterns\":[{\"include\":\"#nested_brackets\"}]},{\"begin\":\"\\\\\\\\bqw?\\\\\\\\s*\\\\\\\\<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.perl\"}},\"end\":\"\\\\\\\\>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"string.quoted.other.q-ltgt.perl\",\"patterns\":[{\"include\":\"#nested_ltgt\"}]},{\"begin\":\"^__\\\\\\\\w+__\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.perl\"}},\"end\":\"$\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"string.unquoted.program-block.perl\"},{\"begin\":\"\\\\\\\\b(format)\\\\\\\\s+(\\\\\\\\w+)\\\\\\\\s*=\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.perl\"},\"2\":{\"name\":\"entity.name.function.format.perl\"}},\"end\":\"^\\\\\\\\.\\\\\\\\s*$\",\"name\":\"meta.format.perl\",\"patterns\":[{\"include\":\"#line_comment\"},{\"include\":\"#variable\"}]},{\"captures\":{\"1\":{\"name\":\"support.function.perl\"},\"2\":{\"name\":\"entity.name.function.perl\"}},\"match\":\"\\\\\\\\b(x)\\\\\\\\s*(\\\\\\\\d+)\\\\\\\\b\"},{\"match\":\"\\\\\\\\b(ARGV|DATA|ENV|SIG|STDERR|STDIN|STDOUT|atan2|bind|binmode|bless|caller|chdir|chmod|chomp|chop|chown|chr|chroot|close|closedir|cmp|connect|cos|crypt|dbmclose|dbmopen|defined|delete|dump|each|endgrent|endhostent|endnetent|endprotoent|endpwent|endservent|eof|eq|eval|exec|exists|exp|fcntl|fileno|flock|fork|formline|ge|getc|getgrent|getgrgid|getgrnam|gethostbyaddr|gethostbyname|gethostent|getlogin|getnetbyaddr|getnetbyname|getnetent|getpeername|getpgrp|getppid|getpriority|getprotobyname|getprotobynumber|getprotoent|getpwent|getpwnam|getpwuid|getservbyname|getservbyport|getservent|getsockname|getsockopt|glob|gmtime|grep|gt|hex|import|index|int|ioctl|join|keys|kill|lc|lcfirst|le|length|link|listen|local|localtime|log|lstat|lt|m|map|mkdir|msgctl|msgget|msgrcv|msgsnd|ne|no|oct|open|opendir|ord|pack|pipe|pop|pos|print|printf|push|quotemeta|rand|read|readdir|readlink|recv|ref|rename|reset|reverse|rewinddir|rindex|rmdir|s|say|scalar|seek|seekdir|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|study|substr|symlink|syscall|sysopen|sysread|system|syswrite|tell|telldir|tie|tied|time|times|tr|truncate|uc|ucfirst|umask|undef|unlink|unpack|unshift|untie|utime|values|vec|waitpid|wantarray|warn|write|y)\\\\\\\\b\",\"name\":\"support.function.perl\"},{\"captures\":{\"1\":{\"name\":\"punctuation.section.scope.begin.perl\"},\"2\":{\"name\":\"punctuation.section.scope.end.perl\"}},\"comment\":\"Match empty brackets for ↩ snippet\",\"match\":\"(\\\\\\\\{)(\\\\\\\\})\"},{\"captures\":{\"1\":{\"name\":\"punctuation.section.scope.begin.perl\"},\"2\":{\"name\":\"punctuation.section.scope.end.perl\"}},\"comment\":\"Match empty parenthesis for ↩ snippet\",\"match\":\"(\\\\\\\\()(\\\\\\\\))\"}],\"repository\":{\"escaped_char\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\d+\",\"name\":\"constant.character.escape.perl\"},{\"match\":\"\\\\\\\\\\\\\\\\c[^\\\\\\\\s\\\\\\\\\\\\\\\\]\",\"name\":\"constant.character.escape.perl\"},{\"match\":\"\\\\\\\\\\\\\\\\g(?:\\\\\\\\{(?:\\\\\\\\w*|-\\\\\\\\d+)\\\\\\\\}|\\\\\\\\d+)\",\"name\":\"constant.character.escape.perl\"},{\"match\":\"\\\\\\\\\\\\\\\\k(?:\\\\\\\\{\\\\\\\\w*\\\\\\\\}|<\\\\\\\\w*>|'\\\\\\\\w*')\",\"name\":\"constant.character.escape.perl\"},{\"match\":\"\\\\\\\\\\\\\\\\N\\\\\\\\{[^\\\\\\\\}]*\\\\\\\\}\",\"name\":\"constant.character.escape.perl\"},{\"match\":\"\\\\\\\\\\\\\\\\o\\\\\\\\{\\\\\\\\d*\\\\\\\\}\",\"name\":\"constant.character.escape.perl\"},{\"match\":\"\\\\\\\\\\\\\\\\(?:p|P)(?:\\\\\\\\{\\\\\\\\w*\\\\\\\\}|P)\",\"name\":\"constant.character.escape.perl\"},{\"match\":\"\\\\\\\\\\\\\\\\x(?:[0-9a-zA-Z]{2}|\\\\\\\\{\\\\\\\\w*\\\\\\\\})?\",\"name\":\"constant.character.escape.perl\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.perl\"}]},\"heredoc\":{\"patterns\":[{\"begin\":\"((((<<(~)?) *')(HTML)(')))(.*)\\\\\\\\n?\",\"beginCaptures\":{\"1\":{\"name\":\"string.unquoted.heredoc.raw.perl\"},\"2\":{\"name\":\"punctuation.definition.string.begin.perl\"},\"3\":{\"name\":\"punctuation.definition.delimiter.begin.perl\"},\"7\":{\"name\":\"punctuation.definition.delimiter.end.perl\"},\"8\":{\"patterns\":[{\"include\":\"$self\"}]}},\"contentName\":\"string.unquoted.heredoc.raw.perl\",\"end\":\"^((?!\\\\\\\\5)\\\\\\\\s+)?((\\\\\\\\6))$\",\"endCaptures\":{\"2\":{\"name\":\"string.unquoted.heredoc.raw.perl\"},\"3\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"meta.embedded.block.html\",\"patterns\":[{\"begin\":\"^\",\"end\":\"\\\\\\\\n\",\"name\":\"text.html.basic\",\"patterns\":[{\"include\":\"text.html.basic\"}]}]},{\"begin\":\"((((<<(~)?) *')(XML)(')))(.*)\\\\\\\\n?\",\"beginCaptures\":{\"1\":{\"name\":\"string.unquoted.heredoc.raw.perl\"},\"2\":{\"name\":\"punctuation.definition.string.begin.perl\"},\"3\":{\"name\":\"punctuation.definition.delimiter.begin.perl\"},\"7\":{\"name\":\"punctuation.definition.delimiter.end.perl\"},\"8\":{\"patterns\":[{\"include\":\"$self\"}]}},\"contentName\":\"string.unquoted.heredoc.raw.perl\",\"end\":\"^((?!\\\\\\\\5)\\\\\\\\s+)?((\\\\\\\\6))$\",\"endCaptures\":{\"2\":{\"name\":\"string.unquoted.heredoc.raw.perl\"},\"3\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"meta.embedded.block.xml\",\"patterns\":[{\"begin\":\"^\",\"end\":\"\\\\\\\\n\",\"name\":\"text.xml\",\"patterns\":[{\"include\":\"text.xml\"}]}]},{\"begin\":\"((((<<(~)?) *')(CSS)(')))(.*)\\\\\\\\n?\",\"beginCaptures\":{\"1\":{\"name\":\"string.unquoted.heredoc.raw.perl\"},\"2\":{\"name\":\"punctuation.definition.string.begin.perl\"},\"3\":{\"name\":\"punctuation.definition.delimiter.begin.perl\"},\"7\":{\"name\":\"punctuation.definition.delimiter.end.perl\"},\"8\":{\"patterns\":[{\"include\":\"$self\"}]}},\"contentName\":\"string.unquoted.heredoc.raw.perl\",\"end\":\"^((?!\\\\\\\\5)\\\\\\\\s+)?((\\\\\\\\6))$\",\"endCaptures\":{\"2\":{\"name\":\"string.unquoted.heredoc.raw.perl\"},\"3\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"meta.embedded.block.css\",\"patterns\":[{\"begin\":\"^\",\"end\":\"\\\\\\\\n\",\"name\":\"source.css\",\"patterns\":[{\"include\":\"source.css\"}]}]},{\"begin\":\"((((<<(~)?) *')(JAVASCRIPT)(')))(.*)\\\\\\\\n?\",\"beginCaptures\":{\"1\":{\"name\":\"string.unquoted.heredoc.raw.perl\"},\"2\":{\"name\":\"punctuation.definition.string.begin.perl\"},\"3\":{\"name\":\"punctuation.definition.delimiter.begin.perl\"},\"7\":{\"name\":\"punctuation.definition.delimiter.end.perl\"},\"8\":{\"patterns\":[{\"include\":\"$self\"}]}},\"contentName\":\"string.unquoted.heredoc.raw.perl\",\"end\":\"^((?!\\\\\\\\5)\\\\\\\\s+)?((\\\\\\\\6))$\",\"endCaptures\":{\"2\":{\"name\":\"string.unquoted.heredoc.raw.perl\"},\"3\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"meta.embedded.block.js\",\"patterns\":[{\"begin\":\"^\",\"end\":\"\\\\\\\\n\",\"name\":\"source.js\",\"patterns\":[{\"include\":\"source.js\"}]}]},{\"begin\":\"((((<<(~)?) *')(SQL)(')))(.*)\\\\\\\\n?\",\"beginCaptures\":{\"1\":{\"name\":\"string.unquoted.heredoc.raw.perl\"},\"2\":{\"name\":\"punctuation.definition.string.begin.perl\"},\"3\":{\"name\":\"punctuation.definition.delimiter.begin.perl\"},\"7\":{\"name\":\"punctuation.definition.delimiter.end.perl\"},\"8\":{\"patterns\":[{\"include\":\"$self\"}]}},\"contentName\":\"string.unquoted.heredoc.raw.perl\",\"end\":\"^((?!\\\\\\\\5)\\\\\\\\s+)?((\\\\\\\\6))$\",\"endCaptures\":{\"2\":{\"name\":\"string.unquoted.heredoc.raw.perl\"},\"3\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"meta.embedded.block.sql\",\"patterns\":[{\"begin\":\"^\",\"end\":\"\\\\\\\\n\",\"name\":\"source.sql\",\"patterns\":[{\"include\":\"source.sql\"}]}]},{\"begin\":\"((((<<(~)?) *')(POSTSCRIPT)(')))(.*)\\\\\\\\n?\",\"beginCaptures\":{\"1\":{\"name\":\"string.unquoted.heredoc.raw.perl\"},\"2\":{\"name\":\"punctuation.definition.string.begin.perl\"},\"3\":{\"name\":\"punctuation.definition.delimiter.begin.perl\"},\"7\":{\"name\":\"punctuation.definition.delimiter.end.perl\"},\"8\":{\"patterns\":[{\"include\":\"$self\"}]}},\"contentName\":\"string.unquoted.heredoc.raw.perl\",\"end\":\"^((?!\\\\\\\\5)\\\\\\\\s+)?((\\\\\\\\6))$\",\"endCaptures\":{\"2\":{\"name\":\"string.unquoted.heredoc.raw.perl\"},\"3\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"meta.embedded.block.postscript\",\"patterns\":[{\"begin\":\"^\",\"end\":\"\\\\\\\\n\",\"name\":\"source.postscript\",\"patterns\":[{\"include\":\"source.postscript\"}]}]},{\"begin\":\"((((<<(~)?) *')([^']*)(')))(.*)\\\\\\\\n?\",\"beginCaptures\":{\"1\":{\"name\":\"string.unquoted.heredoc.raw.perl\"},\"2\":{\"name\":\"punctuation.definition.string.begin.perl\"},\"3\":{\"name\":\"punctuation.definition.delimiter.begin.perl\"},\"7\":{\"name\":\"punctuation.definition.delimiter.end.perl\"},\"8\":{\"patterns\":[{\"include\":\"$self\"}]}},\"contentName\":\"string.unquoted.heredoc.raw.perl\",\"end\":\"^((?!\\\\\\\\5)\\\\\\\\s+)?((\\\\\\\\6))$\",\"endCaptures\":{\"2\":{\"name\":\"string.unquoted.heredoc.raw.perl\"},\"3\":{\"name\":\"punctuation.definition.string.end.perl\"}}},{\"begin\":\"((((<<(~)?) *\\\\\\\\\\\\\\\\)((?![=\\\\\\\\d\\\\\\\\$\\\\\\\\( ])[^;,'\\\\\"\\`\\\\\\\\s\\\\\\\\)]*)()))(.*)\\\\\\\\n?\",\"beginCaptures\":{\"1\":{\"name\":\"string.unquoted.heredoc.raw.perl\"},\"2\":{\"name\":\"punctuation.definition.string.begin.perl\"},\"3\":{\"name\":\"punctuation.definition.delimiter.begin.perl\"},\"7\":{\"name\":\"punctuation.definition.delimiter.end.perl\"},\"8\":{\"patterns\":[{\"include\":\"$self\"}]}},\"contentName\":\"string.unquoted.heredoc.raw.perl\",\"end\":\"^((?!\\\\\\\\5)\\\\\\\\s+)?((\\\\\\\\6))$\",\"endCaptures\":{\"2\":{\"name\":\"string.unquoted.heredoc.raw.perl\"},\"3\":{\"name\":\"punctuation.definition.string.end.perl\"}}},{\"begin\":\"((((<<(~)?) *\\\\\")(HTML)(\\\\\")))(.*)\\\\\\\\n?\",\"beginCaptures\":{\"1\":{\"name\":\"string.unquoted.heredoc.interpolated.perl\"},\"2\":{\"name\":\"punctuation.definition.string.begin.perl\"},\"3\":{\"name\":\"punctuation.definition.delimiter.begin.perl\"},\"7\":{\"name\":\"punctuation.definition.delimiter.end.perl\"},\"8\":{\"patterns\":[{\"include\":\"$self\"}]}},\"contentName\":\"string.unquoted.heredoc.interpolated.perl\",\"end\":\"^((?!\\\\\\\\5)\\\\\\\\s+)?((\\\\\\\\6))$\",\"endCaptures\":{\"2\":{\"name\":\"string.unquoted.heredoc.interpolated.perl\"},\"3\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"meta.embedded.block.html\",\"patterns\":[{\"begin\":\"^\",\"end\":\"\\\\\\\\n\",\"name\":\"text.html.basic\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"include\":\"text.html.basic\"}]}]},{\"begin\":\"((((<<(~)?) *\\\\\")(XML)(\\\\\")))(.*)\\\\\\\\n?\",\"beginCaptures\":{\"1\":{\"name\":\"string.unquoted.heredoc.interpolated.perl\"},\"2\":{\"name\":\"punctuation.definition.string.begin.perl\"},\"3\":{\"name\":\"punctuation.definition.delimiter.begin.perl\"},\"7\":{\"name\":\"punctuation.definition.delimiter.end.perl\"},\"8\":{\"patterns\":[{\"include\":\"$self\"}]}},\"contentName\":\"string.unquoted.heredoc.interpolated.perl\",\"end\":\"^((?!\\\\\\\\5)\\\\\\\\s+)?((\\\\\\\\6))$\",\"endCaptures\":{\"2\":{\"name\":\"string.unquoted.heredoc.interpolated.perl\"},\"3\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"meta.embedded.block.xml\",\"patterns\":[{\"begin\":\"^\",\"end\":\"\\\\\\\\n\",\"name\":\"text.xml\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"include\":\"text.xml\"}]}]},{\"begin\":\"((((<<(~)?) *\\\\\")(CSS)(\\\\\")))(.*)\\\\\\\\n?\",\"beginCaptures\":{\"1\":{\"name\":\"string.unquoted.heredoc.interpolated.perl\"},\"2\":{\"name\":\"punctuation.definition.string.begin.perl\"},\"3\":{\"name\":\"punctuation.definition.delimiter.begin.perl\"},\"7\":{\"name\":\"punctuation.definition.delimiter.end.perl\"},\"8\":{\"patterns\":[{\"include\":\"$self\"}]}},\"contentName\":\"string.unquoted.heredoc.interpolated.perl\",\"end\":\"^((?!\\\\\\\\5)\\\\\\\\s+)?((\\\\\\\\6))$\",\"endCaptures\":{\"2\":{\"name\":\"string.unquoted.heredoc.interpolated.perl\"},\"3\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"meta.embedded.block.css\",\"patterns\":[{\"begin\":\"^\",\"end\":\"\\\\\\\\n\",\"name\":\"source.css\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"include\":\"source.css\"}]}]},{\"begin\":\"((((<<(~)?) *\\\\\")(JAVASCRIPT)(\\\\\")))(.*)\\\\\\\\n?\",\"beginCaptures\":{\"1\":{\"name\":\"string.unquoted.heredoc.interpolated.perl\"},\"2\":{\"name\":\"punctuation.definition.string.begin.perl\"},\"3\":{\"name\":\"punctuation.definition.delimiter.begin.perl\"},\"7\":{\"name\":\"punctuation.definition.delimiter.end.perl\"},\"8\":{\"patterns\":[{\"include\":\"$self\"}]}},\"contentName\":\"string.unquoted.heredoc.interpolated.perl\",\"end\":\"^((?!\\\\\\\\5)\\\\\\\\s+)?((\\\\\\\\6))$\",\"endCaptures\":{\"2\":{\"name\":\"string.unquoted.heredoc.interpolated.perl\"},\"3\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"meta.embedded.block.js\",\"patterns\":[{\"begin\":\"^\",\"end\":\"\\\\\\\\n\",\"name\":\"source.js\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"include\":\"source.js\"}]}]},{\"begin\":\"((((<<(~)?) *\\\\\")(SQL)(\\\\\")))(.*)\\\\\\\\n?\",\"beginCaptures\":{\"1\":{\"name\":\"string.unquoted.heredoc.interpolated.perl\"},\"2\":{\"name\":\"punctuation.definition.string.begin.perl\"},\"3\":{\"name\":\"punctuation.definition.delimiter.begin.perl\"},\"7\":{\"name\":\"punctuation.definition.delimiter.end.perl\"},\"8\":{\"patterns\":[{\"include\":\"$self\"}]}},\"contentName\":\"string.unquoted.heredoc.interpolated.perl\",\"end\":\"^((?!\\\\\\\\5)\\\\\\\\s+)?((\\\\\\\\6))$\",\"endCaptures\":{\"2\":{\"name\":\"string.unquoted.heredoc.interpolated.perl\"},\"3\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"meta.embedded.block.sql\",\"patterns\":[{\"begin\":\"^\",\"end\":\"\\\\\\\\n\",\"name\":\"source.sql\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"include\":\"source.sql\"}]}]},{\"begin\":\"((((<<(~)?) *\\\\\")(POSTSCRIPT)(\\\\\")))(.*)\\\\\\\\n?\",\"beginCaptures\":{\"1\":{\"name\":\"string.unquoted.heredoc.interpolated.perl\"},\"2\":{\"name\":\"punctuation.definition.string.begin.perl\"},\"3\":{\"name\":\"punctuation.definition.delimiter.begin.perl\"},\"7\":{\"name\":\"punctuation.definition.delimiter.end.perl\"},\"8\":{\"patterns\":[{\"include\":\"$self\"}]}},\"contentName\":\"string.unquoted.heredoc.interpolated.perl\",\"end\":\"^((?!\\\\\\\\5)\\\\\\\\s+)?((\\\\\\\\6))$\",\"endCaptures\":{\"2\":{\"name\":\"string.unquoted.heredoc.interpolated.perl\"},\"3\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"meta.embedded.block.postscript\",\"patterns\":[{\"begin\":\"^\",\"end\":\"\\\\\\\\n\",\"name\":\"source.postscript\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"include\":\"source.postscript\"}]}]},{\"begin\":\"((((<<(~)?) *\\\\\")([^\\\\\"]*)(\\\\\")))(.*)\\\\\\\\n?\",\"beginCaptures\":{\"1\":{\"name\":\"string.unquoted.heredoc.interpolated.perl\"},\"2\":{\"name\":\"punctuation.definition.string.begin.perl\"},\"3\":{\"name\":\"punctuation.definition.delimiter.begin.perl\"},\"7\":{\"name\":\"punctuation.definition.delimiter.end.perl\"},\"8\":{\"patterns\":[{\"include\":\"$self\"}]}},\"contentName\":\"string.unquoted.heredoc.interpolated.perl\",\"end\":\"^((?!\\\\\\\\5)\\\\\\\\s+)?((\\\\\\\\6))$\",\"endCaptures\":{\"2\":{\"name\":\"string.unquoted.heredoc.interpolated.perl\"},\"3\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"}]},{\"begin\":\"((((<<(~)?) *)(HTML)()))(.*)\\\\\\\\n?\",\"beginCaptures\":{\"1\":{\"name\":\"string.unquoted.heredoc.interpolated.perl\"},\"2\":{\"name\":\"punctuation.definition.string.begin.perl\"},\"3\":{\"name\":\"punctuation.definition.delimiter.begin.perl\"},\"7\":{\"name\":\"punctuation.definition.delimiter.end.perl\"},\"8\":{\"patterns\":[{\"include\":\"$self\"}]}},\"contentName\":\"string.unquoted.heredoc.interpolated.perl\",\"end\":\"^((?!\\\\\\\\5)\\\\\\\\s+)?((\\\\\\\\6))$\",\"endCaptures\":{\"2\":{\"name\":\"string.unquoted.heredoc.interpolated.perl\"},\"3\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"meta.embedded.block.html\",\"patterns\":[{\"begin\":\"^\",\"end\":\"\\\\\\\\n\",\"name\":\"text.html.basic\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"include\":\"text.html.basic\"}]}]},{\"begin\":\"((((<<(~)?) *)(XML)()))(.*)\\\\\\\\n?\",\"beginCaptures\":{\"1\":{\"name\":\"string.unquoted.heredoc.interpolated.perl\"},\"2\":{\"name\":\"punctuation.definition.string.begin.perl\"},\"3\":{\"name\":\"punctuation.definition.delimiter.begin.perl\"},\"7\":{\"name\":\"punctuation.definition.delimiter.end.perl\"},\"8\":{\"patterns\":[{\"include\":\"$self\"}]}},\"contentName\":\"string.unquoted.heredoc.interpolated.perl\",\"end\":\"^((?!\\\\\\\\5)\\\\\\\\s+)?((\\\\\\\\6))$\",\"endCaptures\":{\"2\":{\"name\":\"string.unquoted.heredoc.interpolated.perl\"},\"3\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"meta.embedded.block.xml\",\"patterns\":[{\"begin\":\"^\",\"end\":\"\\\\\\\\n\",\"name\":\"text.xml\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"include\":\"text.xml\"}]}]},{\"begin\":\"((((<<(~)?) *)(CSS)()))(.*)\\\\\\\\n?\",\"beginCaptures\":{\"1\":{\"name\":\"string.unquoted.heredoc.interpolated.perl\"},\"2\":{\"name\":\"punctuation.definition.string.begin.perl\"},\"3\":{\"name\":\"punctuation.definition.delimiter.begin.perl\"},\"7\":{\"name\":\"punctuation.definition.delimiter.end.perl\"},\"8\":{\"patterns\":[{\"include\":\"$self\"}]}},\"contentName\":\"string.unquoted.heredoc.interpolated.perl\",\"end\":\"^((?!\\\\\\\\5)\\\\\\\\s+)?((\\\\\\\\6))$\",\"endCaptures\":{\"2\":{\"name\":\"string.unquoted.heredoc.interpolated.perl\"},\"3\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"meta.embedded.block.css\",\"patterns\":[{\"begin\":\"^\",\"end\":\"\\\\\\\\n\",\"name\":\"source.css\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"include\":\"source.css\"}]}]},{\"begin\":\"((((<<(~)?) *)(JAVASCRIPT)()))(.*)\\\\\\\\n?\",\"beginCaptures\":{\"1\":{\"name\":\"string.unquoted.heredoc.interpolated.perl\"},\"2\":{\"name\":\"punctuation.definition.string.begin.perl\"},\"3\":{\"name\":\"punctuation.definition.delimiter.begin.perl\"},\"7\":{\"name\":\"punctuation.definition.delimiter.end.perl\"},\"8\":{\"patterns\":[{\"include\":\"$self\"}]}},\"contentName\":\"string.unquoted.heredoc.interpolated.perl\",\"end\":\"^((?!\\\\\\\\5)\\\\\\\\s+)?((\\\\\\\\6))$\",\"endCaptures\":{\"2\":{\"name\":\"string.unquoted.heredoc.interpolated.perl\"},\"3\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"meta.embedded.block.js\",\"patterns\":[{\"begin\":\"^\",\"end\":\"\\\\\\\\n\",\"name\":\"source.js\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"include\":\"source.js\"}]}]},{\"begin\":\"((((<<(~)?) *)(SQL)()))(.*)\\\\\\\\n?\",\"beginCaptures\":{\"1\":{\"name\":\"string.unquoted.heredoc.interpolated.perl\"},\"2\":{\"name\":\"punctuation.definition.string.begin.perl\"},\"3\":{\"name\":\"punctuation.definition.delimiter.begin.perl\"},\"7\":{\"name\":\"punctuation.definition.delimiter.end.perl\"},\"8\":{\"patterns\":[{\"include\":\"$self\"}]}},\"contentName\":\"string.unquoted.heredoc.interpolated.perl\",\"end\":\"^((?!\\\\\\\\5)\\\\\\\\s+)?((\\\\\\\\6))$\",\"endCaptures\":{\"2\":{\"name\":\"string.unquoted.heredoc.interpolated.perl\"},\"3\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"meta.embedded.block.sql\",\"patterns\":[{\"begin\":\"^\",\"end\":\"\\\\\\\\n\",\"name\":\"source.sql\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"include\":\"source.sql\"}]}]},{\"begin\":\"((((<<(~)?) *)(POSTSCRIPT)()))(.*)\\\\\\\\n?\",\"beginCaptures\":{\"1\":{\"name\":\"string.unquoted.heredoc.interpolated.perl\"},\"2\":{\"name\":\"punctuation.definition.string.begin.perl\"},\"3\":{\"name\":\"punctuation.definition.delimiter.begin.perl\"},\"7\":{\"name\":\"punctuation.definition.delimiter.end.perl\"},\"8\":{\"patterns\":[{\"include\":\"$self\"}]}},\"contentName\":\"string.unquoted.heredoc.interpolated.perl\",\"end\":\"^((?!\\\\\\\\5)\\\\\\\\s+)?((\\\\\\\\6))$\",\"endCaptures\":{\"2\":{\"name\":\"string.unquoted.heredoc.interpolated.perl\"},\"3\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"name\":\"meta.embedded.block.postscript\",\"patterns\":[{\"begin\":\"^\",\"end\":\"\\\\\\\\n\",\"name\":\"source.postscript\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"include\":\"source.postscript\"}]}]},{\"begin\":\"((((<<(~)?) *)((?![=\\\\\\\\d\\\\\\\\$\\\\\\\\( ])[^;,'\\\\\"\\`\\\\\\\\s\\\\\\\\)]*)()))(.*)\\\\\\\\n?\",\"beginCaptures\":{\"1\":{\"name\":\"string.unquoted.heredoc.interpolated.perl\"},\"2\":{\"name\":\"punctuation.definition.string.begin.perl\"},\"3\":{\"name\":\"punctuation.definition.delimiter.begin.perl\"},\"7\":{\"name\":\"punctuation.definition.delimiter.end.perl\"},\"8\":{\"patterns\":[{\"include\":\"$self\"}]}},\"contentName\":\"string.unquoted.heredoc.interpolated.perl\",\"end\":\"^((?!\\\\\\\\5)\\\\\\\\s+)?((\\\\\\\\6))$\",\"endCaptures\":{\"2\":{\"name\":\"string.unquoted.heredoc.interpolated.perl\"},\"3\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"}]},{\"begin\":\"((((<<(~)?) *\\`)([^\\`]*)(\\`)))(.*)\\\\\\\\n?\",\"beginCaptures\":{\"1\":{\"name\":\"string.unquoted.heredoc.interpolated.perl\"},\"2\":{\"name\":\"punctuation.definition.string.begin.perl\"},\"3\":{\"name\":\"punctuation.definition.delimiter.begin.perl\"},\"7\":{\"name\":\"punctuation.definition.delimiter.end.perl\"},\"8\":{\"patterns\":[{\"include\":\"$self\"}]}},\"contentName\":\"string.unquoted.heredoc.shell.perl\",\"end\":\"^((?!\\\\\\\\5)\\\\\\\\s+)?((\\\\\\\\6))$\",\"endCaptures\":{\"2\":{\"name\":\"string.unquoted.heredoc.interpolated.perl\"},\"3\":{\"name\":\"punctuation.definition.string.end.perl\"}},\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"}]}]},\"line_comment\":{\"patterns\":[{\"begin\":\"(^[ \\\\\\\\t]+)?(?=#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.perl\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.perl\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.number-sign.perl\"}]}]},\"nested_braces\":{\"begin\":\"\\\\\\\\{\",\"captures\":{\"1\":{\"name\":\"punctuation.section.scope.perl\"}},\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#nested_braces\"}]},\"nested_braces_interpolated\":{\"begin\":\"\\\\\\\\{\",\"captures\":{\"1\":{\"name\":\"punctuation.section.scope.perl\"}},\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"include\":\"#nested_braces_interpolated\"}]},\"nested_brackets\":{\"begin\":\"\\\\\\\\[\",\"captures\":{\"1\":{\"name\":\"punctuation.section.scope.perl\"}},\"end\":\"\\\\\\\\]\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#nested_brackets\"}]},\"nested_brackets_interpolated\":{\"begin\":\"\\\\\\\\[\",\"captures\":{\"1\":{\"name\":\"punctuation.section.scope.perl\"}},\"end\":\"\\\\\\\\]\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"include\":\"#nested_brackets_interpolated\"}]},\"nested_ltgt\":{\"begin\":\"<\",\"captures\":{\"1\":{\"name\":\"punctuation.section.scope.perl\"}},\"end\":\">\",\"patterns\":[{\"include\":\"#nested_ltgt\"}]},\"nested_ltgt_interpolated\":{\"begin\":\"<\",\"captures\":{\"1\":{\"name\":\"punctuation.section.scope.perl\"}},\"end\":\">\",\"patterns\":[{\"include\":\"#variable\"},{\"include\":\"#nested_ltgt_interpolated\"}]},\"nested_parens\":{\"begin\":\"\\\\\\\\(\",\"captures\":{\"1\":{\"name\":\"punctuation.section.scope.perl\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#nested_parens\"}]},\"nested_parens_interpolated\":{\"begin\":\"\\\\\\\\(\",\"captures\":{\"1\":{\"name\":\"punctuation.section.scope.perl\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"comment\":\"This is to prevent thinks like qr/foo$/ to treat $/ as a variable\",\"match\":\"\\\\\\\\$(?=[^\\\\\\\\s\\\\\\\\w'\\\\\\\\{\\\\\\\\[\\\\\\\\(\\\\\\\\<])\",\"name\":\"keyword.control.anchor.perl\"},{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"include\":\"#nested_parens_interpolated\"}]},\"pod\":{\"patterns\":[{\"match\":\"^=(pod|back|cut)\\\\\\\\b\",\"name\":\"storage.type.class.pod.perl\"},{\"begin\":\"^(=begin)\\\\\\\\s+(html)\\\\\\\\s*$\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.pod.perl\"},\"2\":{\"name\":\"variable.other.pod.perl\"}},\"contentName\":\"text.embedded.html.basic\",\"end\":\"^(=end)\\\\\\\\s+(html)|^(?==cut)\",\"endCaptures\":{\"1\":{\"name\":\"storage.type.class.pod.perl\"},\"2\":{\"name\":\"variable.other.pod.perl\"}},\"name\":\"meta.embedded.pod.perl\",\"patterns\":[{\"include\":\"text.html.basic\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.class.pod.perl\"},\"2\":{\"name\":\"variable.other.pod.perl\",\"patterns\":[{\"include\":\"#pod-formatting\"}]}},\"match\":\"^(=(?:head[1-4]|item|over|encoding|begin|end|for))\\\\\\\\b\\\\\\\\s*(.*)\"},{\"include\":\"#pod-formatting\"}]},\"pod-formatting\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"markup.italic.pod.perl\"},\"2\":{\"name\":\"markup.italic.pod.perl\"}},\"match\":\"I(?:<([^<>]+)>|<+(\\\\\\\\s+(?:(?<!\\\\\\\\s)>|[^>])+\\\\\\\\s+)>+)\",\"name\":\"entity.name.type.instance.pod.perl\"},{\"captures\":{\"1\":{\"name\":\"markup.bold.pod.perl\"},\"2\":{\"name\":\"markup.bold.pod.perl\"}},\"match\":\"B(?:<([^<>]+)>|<+(\\\\\\\\s+(?:(?<!\\\\\\\\s)>|[^>])+\\\\\\\\s+)>+)\",\"name\":\"entity.name.type.instance.pod.perl\"},{\"captures\":{\"1\":{\"name\":\"markup.raw.pod.perl\"},\"2\":{\"name\":\"markup.raw.pod.perl\"}},\"match\":\"C(?:<([^<>]+)>|<+(\\\\\\\\\\\\\\\\s+(?:(?<!\\\\\\\\\\\\\\\\s)>|[^>])+\\\\\\\\\\\\\\\\s+)>+)\",\"name\":\"entity.name.type.instance.pod.perl\"},{\"captures\":{\"1\":{\"name\":\"markup.underline.link.hyperlink.pod.perl\"}},\"match\":\"L<([^>]+)>\",\"name\":\"entity.name.type.instance.pod.perl\"},{\"match\":\"[EFSXZ]<[^>]*>\",\"name\":\"entity.name.type.instance.pod.perl\"}]},\"variable\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.perl\"}},\"match\":\"(\\\\\\\\$)&(?![A-Za-z0-9_])\",\"name\":\"variable.other.regexp.match.perl\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.perl\"}},\"match\":\"(\\\\\\\\$)\\`(?![A-Za-z0-9_])\",\"name\":\"variable.other.regexp.pre-match.perl\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.perl\"}},\"match\":\"(\\\\\\\\$)'(?![A-Za-z0-9_])\",\"name\":\"variable.other.regexp.post-match.perl\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.perl\"}},\"match\":\"(\\\\\\\\$)\\\\\\\\+(?![A-Za-z0-9_])\",\"name\":\"variable.other.regexp.last-paren-match.perl\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.perl\"}},\"match\":\"(\\\\\\\\$)\\\\\"(?![A-Za-z0-9_])\",\"name\":\"variable.other.readwrite.list-separator.perl\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.perl\"}},\"match\":\"(\\\\\\\\$)0(?![A-Za-z0-9_])\",\"name\":\"variable.other.predefined.program-name.perl\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.perl\"}},\"match\":\"(\\\\\\\\$)[_ab\\\\\\\\*\\\\\\\\.\\\\\\\\/\\\\\\\\|,\\\\\\\\\\\\\\\\;#%=\\\\\\\\-~^:?!\\\\\\\\$<>\\\\\\\\(\\\\\\\\)\\\\\\\\[\\\\\\\\]@](?![A-Za-z0-9_])\",\"name\":\"variable.other.predefined.perl\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.perl\"}},\"match\":\"(\\\\\\\\$)[0-9]+(?![A-Za-z0-9_])\",\"name\":\"variable.other.subpattern.perl\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.perl\"}},\"match\":\"([\\\\\\\\$\\\\\\\\@\\\\\\\\%](#)?)([a-zA-Zx7f-xff\\\\\\\\$]|::)([a-zA-Z0-9_x7f-xff\\\\\\\\$]|::)*\\\\\\\\b\",\"name\":\"variable.other.readwrite.global.perl\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.perl\"},\"2\":{\"name\":\"punctuation.definition.variable.perl\"}},\"match\":\"(\\\\\\\\$\\\\\\\\{)(?:[a-zA-Zx7f-xff\\\\\\\\$]|::)(?:[a-zA-Z0-9_x7f-xff\\\\\\\\$]|::)*(\\\\\\\\})\",\"name\":\"variable.other.readwrite.global.perl\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.perl\"}},\"match\":\"([\\\\\\\\$\\\\\\\\@\\\\\\\\%](#)?)[0-9_]\\\\\\\\b\",\"name\":\"variable.other.readwrite.global.special.perl\"}]}},\"scopeName\":\"source.perl\",\"embeddedLangs\":[\"html\",\"xml\",\"css\",\"javascript\",\"sql\"]}`)),u=[...e,...n,...t,...i,...r,a];export{u as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/C1w2a3ep.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Solidity\",\"fileTypes\":[\"sol\"],\"name\":\"solidity\",\"patterns\":[{\"include\":\"#natspec\"},{\"include\":\"#declaration-userType\"},{\"include\":\"#comment\"},{\"include\":\"#operator\"},{\"include\":\"#global\"},{\"include\":\"#control\"},{\"include\":\"#constant\"},{\"include\":\"#primitive\"},{\"include\":\"#type-primitive\"},{\"include\":\"#type-modifier-extended-scope\"},{\"include\":\"#declaration\"},{\"include\":\"#function-call\"},{\"include\":\"#assembly\"},{\"include\":\"#punctuation\"}],\"repository\":{\"assembly\":{\"patterns\":[{\"match\":\"\\\\\\\\b(assembly)\\\\\\\\b\",\"name\":\"keyword.control.assembly\"},{\"match\":\"\\\\\\\\b(let)\\\\\\\\b\",\"name\":\"storage.type.assembly\"}]},\"comment\":{\"patterns\":[{\"include\":\"#comment-line\"},{\"include\":\"#comment-block\"}]},\"comment-block\":{\"begin\":\"/\\\\\\\\*\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block\",\"patterns\":[{\"include\":\"#comment-todo\"}]},\"comment-line\":{\"begin\":\"(?<!tp:)//\",\"end\":\"$\",\"name\":\"comment.line\",\"patterns\":[{\"include\":\"#comment-todo\"}]},\"comment-todo\":{\"match\":\"(?i)\\\\\\\\b(FIXME|TODO|CHANGED|XXX|IDEA|HACK|NOTE|REVIEW|NB|BUG|QUESTION|COMBAK|TEMP|SUPPRESS|LINT|\\\\\\\\w+-disable|\\\\\\\\w+-suppress)\\\\\\\\b(?-i)\",\"name\":\"keyword.comment.todo\"},\"constant\":{\"patterns\":[{\"include\":\"#constant-boolean\"},{\"include\":\"#constant-time\"},{\"include\":\"#constant-currency\"}]},\"constant-boolean\":{\"match\":\"\\\\\\\\b(true|false)\\\\\\\\b\",\"name\":\"constant.language.boolean\"},\"constant-currency\":{\"match\":\"\\\\\\\\b(ether|wei|gwei|finney|szabo)\\\\\\\\b\",\"name\":\"constant.language.currency\"},\"constant-time\":{\"match\":\"\\\\\\\\b(seconds|minutes|hours|days|weeks|years)\\\\\\\\b\",\"name\":\"constant.language.time\"},\"control\":{\"patterns\":[{\"include\":\"#control-flow\"},{\"include\":\"#control-using\"},{\"include\":\"#control-import\"},{\"include\":\"#control-pragma\"},{\"include\":\"#control-underscore\"},{\"include\":\"#control-unchecked\"},{\"include\":\"#control-other\"}]},\"control-flow\":{\"patterns\":[{\"match\":\"\\\\\\\\b(if|else|for|while|do|break|continue|try|catch|finally|throw|return|global)\\\\\\\\b\",\"name\":\"keyword.control.flow\"},{\"begin\":\"\\\\\\\\b(returns)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.flow.return\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#declaration-function-parameters\"}]}]},\"control-import\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(import)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.import\"}},\"end\":\"(?=\\\\\\\\;)\",\"patterns\":[{\"begin\":\"((?=\\\\\\\\{))\",\"end\":\"((?=\\\\\\\\}))\",\"patterns\":[{\"match\":\"\\\\\\\\b(\\\\\\\\w+)\\\\\\\\b\",\"name\":\"entity.name.type.interface\"}]},{\"match\":\"\\\\\\\\b(from)\\\\\\\\b\",\"name\":\"keyword.control.import.from\"},{\"include\":\"#string\"},{\"include\":\"#punctuation\"}]},{\"match\":\"\\\\\\\\b(import)\\\\\\\\b\",\"name\":\"keyword.control.import\"}]},\"control-other\":{\"match\":\"\\\\\\\\b(new|delete|emit)\\\\\\\\b\",\"name\":\"keyword.control\"},\"control-pragma\":{\"captures\":{\"1\":{\"name\":\"keyword.control.pragma\"},\"2\":{\"name\":\"entity.name.tag.pragma\"},\"3\":{\"name\":\"constant.other.pragma\"}},\"match\":\"\\\\\\\\b(pragma)(?:\\\\\\\\s+([A-Za-z_]\\\\\\\\w+)\\\\\\\\s+([^\\\\\\\\s]+))?\\\\\\\\b\"},\"control-unchecked\":{\"match\":\"\\\\\\\\b(unchecked)\\\\\\\\b\",\"name\":\"keyword.control.unchecked\"},\"control-underscore\":{\"match\":\"\\\\\\\\b(_)\\\\\\\\b\",\"name\":\"constant.other.underscore\"},\"control-using\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.using\"},\"2\":{\"name\":\"entity.name.type.library\"},\"3\":{\"name\":\"keyword.control.for\"},\"4\":{\"name\":\"entity.name.type\"}},\"match\":\"\\\\\\\\b(using)\\\\\\\\b\\\\\\\\s+\\\\\\\\b([A-Za-z\\\\\\\\d_]+)\\\\\\\\b\\\\\\\\s+\\\\\\\\b(for)\\\\\\\\b\\\\\\\\s+\\\\\\\\b([A-Za-z\\\\\\\\d_]+)\"},{\"match\":\"\\\\\\\\b(using)\\\\\\\\b\",\"name\":\"keyword.control.using\"}]},\"declaration\":{\"patterns\":[{\"include\":\"#declaration-contract\"},{\"include\":\"#declaration-userType\"},{\"include\":\"#declaration-interface\"},{\"include\":\"#declaration-library\"},{\"include\":\"#declaration-function\"},{\"include\":\"#declaration-modifier\"},{\"include\":\"#declaration-constructor\"},{\"include\":\"#declaration-event\"},{\"include\":\"#declaration-storage\"},{\"include\":\"#declaration-error\"}]},\"declaration-constructor\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(constructor)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.constructor\"}},\"end\":\"(?=\\\\\\\\{)\",\"patterns\":[{\"begin\":\"\\\\\\\\G\\\\\\\\s*(?=\\\\\\\\()\",\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#declaration-function-parameters\"}]},{\"begin\":\"(?<=\\\\\\\\))\",\"end\":\"(?=\\\\\\\\{)\",\"patterns\":[{\"include\":\"#type-modifier-access\"},{\"include\":\"#function-call\"}]}]},{\"captures\":{\"1\":{\"name\":\"storage.type.constructor\"}},\"match\":\"\\\\\\\\b(constructor)\\\\\\\\b\"}]},\"declaration-contract\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(contract)\\\\\\\\b\\\\\\\\s+(\\\\\\\\w+)\\\\\\\\b\\\\\\\\s+\\\\\\\\b(is)\\\\\\\\b\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.contract\"},\"2\":{\"name\":\"entity.name.type.contract\"},\"3\":{\"name\":\"storage.modifier.is\"}},\"end\":\"(?=\\\\\\\\{)\",\"patterns\":[{\"match\":\"\\\\\\\\b(\\\\\\\\w+)\\\\\\\\b\",\"name\":\"entity.name.type.contract.extend\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.contract\"},\"2\":{\"name\":\"entity.name.type.contract\"}},\"match\":\"\\\\\\\\b(contract)(\\\\\\\\s+([A-Za-z_]\\\\\\\\w*))?\\\\\\\\b\"}]},\"declaration-enum\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(enum)\\\\\\\\s+(\\\\\\\\w+)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.enum\"},\"2\":{\"name\":\"entity.name.type.enum\"}},\"end\":\"(?=\\\\\\\\})\",\"patterns\":[{\"match\":\"\\\\\\\\b(\\\\\\\\w+)\\\\\\\\b\",\"name\":\"variable.other.enummember\"},{\"include\":\"#punctuation\"},{\"include\":\"#comment\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.enum\"},\"3\":{\"name\":\"entity.name.type.enum\"}},\"match\":\"\\\\\\\\b(enum)(\\\\\\\\s+([A-Za-z_]\\\\\\\\w*))?\\\\\\\\b\"}]},\"declaration-error\":{\"captures\":{\"1\":{\"name\":\"storage.type.error\"},\"3\":{\"name\":\"entity.name.type.error\"}},\"match\":\"\\\\\\\\b(error)(\\\\\\\\s+([A-Za-z_]\\\\\\\\w*))?\\\\\\\\b\"},\"declaration-event\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(event)\\\\\\\\b(?:\\\\\\\\s+(\\\\\\\\w+)\\\\\\\\b)?\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.event\"},\"2\":{\"name\":\"entity.name.type.event\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#type-primitive\"},{\"captures\":{\"1\":{\"name\":\"storage.type.modifier.indexed\"},\"2\":{\"name\":\"variable.parameter.event\"}},\"match\":\"\\\\\\\\b(?:(indexed)\\\\\\\\s)?(\\\\\\\\w+)(?:,\\\\\\\\s*|)\"},{\"include\":\"#punctuation\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.event\"},\"3\":{\"name\":\"entity.name.type.event\"}},\"match\":\"\\\\\\\\b(event)(\\\\\\\\s+([A-Za-z_]\\\\\\\\w*))?\\\\\\\\b\"}]},\"declaration-function\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(function)\\\\\\\\s+(\\\\\\\\w+)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function\"},\"2\":{\"name\":\"entity.name.function\"}},\"end\":\"(?=\\\\\\\\{|;)\",\"patterns\":[{\"include\":\"#natspec\"},{\"include\":\"#global\"},{\"include\":\"#declaration-function-parameters\"},{\"include\":\"#type-modifier-access\"},{\"include\":\"#type-modifier-payable\"},{\"include\":\"#type-modifier-immutable\"},{\"include\":\"#type-modifier-extended-scope\"},{\"include\":\"#control-flow\"},{\"include\":\"#function-call\"},{\"include\":\"#modifier-call\"},{\"include\":\"#punctuation\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.function\"},\"2\":{\"name\":\"entity.name.function\"}},\"match\":\"\\\\\\\\b(function)\\\\\\\\s+([A-Za-z_]\\\\\\\\w*)\\\\\\\\b\"}]},\"declaration-function-parameters\":{\"begin\":\"\\\\\\\\G\\\\\\\\s*(?=\\\\\\\\()\",\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#type-primitive\"},{\"include\":\"#type-modifier-extended-scope\"},{\"captures\":{\"1\":{\"name\":\"storage.type.struct\"}},\"match\":\"\\\\\\\\b([A-Z]\\\\\\\\w*)\\\\\\\\b\"},{\"include\":\"#variable\"},{\"include\":\"#punctuation\"},{\"include\":\"#comment\"}]},\"declaration-interface\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(interface)\\\\\\\\b\\\\\\\\s+(\\\\\\\\w+)\\\\\\\\b\\\\\\\\s+\\\\\\\\b(is)\\\\\\\\b\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.interface\"},\"2\":{\"name\":\"entity.name.type.interface\"},\"3\":{\"name\":\"storage.modifier.is\"}},\"end\":\"(?=\\\\\\\\{)\",\"patterns\":[{\"match\":\"\\\\\\\\b(\\\\\\\\w+)\\\\\\\\b\",\"name\":\"entity.name.type.interface.extend\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.interface\"},\"2\":{\"name\":\"entity.name.type.interface\"}},\"match\":\"\\\\\\\\b(interface)(\\\\\\\\s+([A-Za-z_]\\\\\\\\w*))?\\\\\\\\b\"}]},\"declaration-library\":{\"captures\":{\"1\":{\"name\":\"storage.type.library\"},\"3\":{\"name\":\"entity.name.type.library\"}},\"match\":\"\\\\\\\\b(library)(\\\\\\\\s+([A-Za-z_]\\\\\\\\w*))?\\\\\\\\b\"},\"declaration-modifier\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(modifier)\\\\\\\\b\\\\\\\\s*(\\\\\\\\w+)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.modifier\"},\"2\":{\"name\":\"entity.name.function.modifier\"}},\"end\":\"(?=\\\\\\\\{)\",\"patterns\":[{\"include\":\"#declaration-function-parameters\"},{\"begin\":\"(?<=\\\\\\\\))\",\"end\":\"(?=\\\\\\\\{)\",\"patterns\":[{\"include\":\"#declaration-function-parameters\"},{\"include\":\"#type-modifier-access\"},{\"include\":\"#type-modifier-payable\"},{\"include\":\"#type-modifier-immutable\"},{\"include\":\"#type-modifier-extended-scope\"},{\"include\":\"#function-call\"},{\"include\":\"#modifier-call\"},{\"include\":\"#control-flow\"}]}]},{\"captures\":{\"1\":{\"name\":\"storage.type.modifier\"},\"3\":{\"name\":\"entity.name.function\"}},\"match\":\"\\\\\\\\b(modifier)(\\\\\\\\s+([A-Za-z_]\\\\\\\\w*))?\\\\\\\\b\"}]},\"declaration-storage\":{\"patterns\":[{\"include\":\"#declaration-storage-mapping\"},{\"include\":\"#declaration-struct\"},{\"include\":\"#declaration-enum\"},{\"include\":\"#declaration-storage-field\"}]},\"declaration-storage-field\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#control\"},{\"include\":\"#type-primitive\"},{\"include\":\"#type-modifier-access\"},{\"include\":\"#type-modifier-immutable\"},{\"include\":\"#type-modifier-extend-scope\"},{\"include\":\"#type-modifier-payable\"},{\"include\":\"#type-modifier-constant\"},{\"include\":\"#primitive\"},{\"include\":\"#constant\"},{\"include\":\"#operator\"},{\"include\":\"#punctuation\"}]},\"declaration-storage-mapping\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(mapping)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.mapping\"}},\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#declaration-storage-mapping\"},{\"include\":\"#type-primitive\"},{\"include\":\"#punctuation\"},{\"include\":\"#operator\"}]},{\"match\":\"\\\\\\\\b(mapping)\\\\\\\\b\",\"name\":\"storage.type.mapping\"}]},\"declaration-struct\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.struct\"},\"3\":{\"name\":\"entity.name.type.struct\"}},\"match\":\"\\\\\\\\b(struct)(\\\\\\\\s+([A-Za-z_]\\\\\\\\w*))?\\\\\\\\b\"},{\"begin\":\"\\\\\\\\b(struct)\\\\\\\\b\\\\\\\\s*(\\\\\\\\w+)?\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.struct\"},\"2\":{\"name\":\"entity.name.type.struct\"}},\"end\":\"(?=\\\\\\\\})\",\"patterns\":[{\"include\":\"#type-primitive\"},{\"include\":\"#variable\"},{\"include\":\"#punctuation\"},{\"include\":\"#comment\"}]}]},\"declaration-userType\":{\"captures\":{\"1\":{\"name\":\"storage.type.userType\"},\"2\":{\"name\":\"entity.name.type.userType\"},\"3\":{\"name\":\"storage.modifier.is\"}},\"match\":\"\\\\\\\\b(type)\\\\\\\\b\\\\\\\\s+(\\\\\\\\w+)\\\\\\\\b\\\\\\\\s+\\\\\\\\b(is)\\\\\\\\b\"},\"function-call\":{\"captures\":{\"1\":{\"name\":\"entity.name.function\"},\"2\":{\"name\":\"punctuation.parameters.begin\"}},\"match\":\"\\\\\\\\b([A-Za-z_]\\\\\\\\w*)\\\\\\\\s*(\\\\\\\\()\"},\"global\":{\"patterns\":[{\"include\":\"#global-variables\"},{\"include\":\"#global-functions\"}]},\"global-functions\":{\"patterns\":[{\"match\":\"\\\\\\\\b(require|assert|revert)\\\\\\\\b\",\"name\":\"keyword.control.exceptions\"},{\"match\":\"\\\\\\\\b(selfdestruct|suicide)\\\\\\\\b\",\"name\":\"keyword.control.contract\"},{\"match\":\"\\\\\\\\b(addmod|mulmod|keccak256|sha256|sha3|ripemd160|ecrecover)\\\\\\\\b\",\"name\":\"support.function.math\"},{\"match\":\"\\\\\\\\b(unicode)\\\\\\\\b\",\"name\":\"support.function.string\"},{\"match\":\"\\\\\\\\b(blockhash|gasleft)\\\\\\\\b\",\"name\":\"variable.language.transaction\"},{\"match\":\"\\\\\\\\b(type)\\\\\\\\b\",\"name\":\"variable.language.type\"}]},\"global-variables\":{\"patterns\":[{\"match\":\"\\\\\\\\b(this)\\\\\\\\b\",\"name\":\"variable.language.this\"},{\"match\":\"\\\\\\\\b(super)\\\\\\\\b\",\"name\":\"variable.language.super\"},{\"match\":\"\\\\\\\\b(abi)\\\\\\\\b\",\"name\":\"variable.language.builtin.abi\"},{\"match\":\"\\\\\\\\b(msg\\\\\\\\.sender|msg|block|tx|now)\\\\\\\\b\",\"name\":\"variable.language.transaction\"},{\"match\":\"\\\\\\\\b(tx\\\\\\\\.origin|tx\\\\\\\\.gasprice|msg\\\\\\\\.data|msg\\\\\\\\.sig|msg\\\\\\\\.value)\\\\\\\\b\",\"name\":\"variable.language.transaction\"}]},\"modifier-call\":{\"patterns\":[{\"include\":\"#function-call\"},{\"match\":\"\\\\\\\\b(\\\\\\\\w+)\\\\\\\\b\",\"name\":\"entity.name.function.modifier\"}]},\"natspec\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\\\\\\\\*\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.documentation\",\"patterns\":[{\"include\":\"#natspec-tags\"}]},{\"begin\":\"///\",\"end\":\"$\",\"name\":\"comment.block.documentation\",\"patterns\":[{\"include\":\"#natspec-tags\"}]}]},\"natspec-tag-author\":{\"match\":\"(@author)\\\\\\\\b\",\"name\":\"storage.type.author.natspec\"},\"natspec-tag-custom\":{\"match\":\"(@custom:\\\\\\\\w*)\\\\\\\\b\",\"name\":\"storage.type.dev.natspec\"},\"natspec-tag-dev\":{\"match\":\"(@dev)\\\\\\\\b\",\"name\":\"storage.type.dev.natspec\"},\"natspec-tag-inheritdoc\":{\"match\":\"(@inheritdoc)\\\\\\\\b\",\"name\":\"storage.type.author.natspec\"},\"natspec-tag-notice\":{\"match\":\"(@notice)\\\\\\\\b\",\"name\":\"storage.type.dev.natspec\"},\"natspec-tag-param\":{\"captures\":{\"1\":{\"name\":\"storage.type.param.natspec\"},\"3\":{\"name\":\"variable.other.natspec\"}},\"match\":\"(@param)(\\\\\\\\s+([A-Za-z_]\\\\\\\\w*))?\\\\\\\\b\"},\"natspec-tag-return\":{\"captures\":{\"1\":{\"name\":\"storage.type.return.natspec\"},\"3\":{\"name\":\"variable.other.natspec\"}},\"match\":\"(@return)(\\\\\\\\s+([A-Za-z_]\\\\\\\\w*))?\\\\\\\\b\"},\"natspec-tag-title\":{\"match\":\"(@title)\\\\\\\\b\",\"name\":\"storage.type.title.natspec\"},\"natspec-tags\":{\"patterns\":[{\"include\":\"#comment-todo\"},{\"include\":\"#natspec-tag-title\"},{\"include\":\"#natspec-tag-author\"},{\"include\":\"#natspec-tag-notice\"},{\"include\":\"#natspec-tag-dev\"},{\"include\":\"#natspec-tag-param\"},{\"include\":\"#natspec-tag-return\"},{\"include\":\"#natspec-tag-custom\"},{\"include\":\"#natspec-tag-inheritdoc\"}]},\"number\":{\"patterns\":[{\"include\":\"#number-decimal\"},{\"include\":\"#number-hex\"},{\"include\":\"#number-scientific\"}]},\"number-decimal\":{\"match\":\"\\\\\\\\b([0-9_]+(\\\\\\\\.[0-9_]+)?)\\\\\\\\b\",\"name\":\"constant.numeric.decimal\"},\"number-hex\":{\"match\":\"\\\\\\\\b(0[xX][a-fA-F0-9]+)\\\\\\\\b\",\"name\":\"constant.numeric.hexadecimal\"},\"number-scientific\":{\"match\":\"\\\\\\\\b(?:0\\\\\\\\.(?:0[0-9]|[0-9][0-9_]?)|[0-9][0-9_]*(?:\\\\\\\\.\\\\\\\\d{1,2})?)(?:e[+-]?[0-9_]+)?\",\"name\":\"constant.numeric.scientific\"},\"operator\":{\"patterns\":[{\"include\":\"#operator-logic\"},{\"include\":\"#operator-mapping\"},{\"include\":\"#operator-arithmetic\"},{\"include\":\"#operator-binary\"},{\"include\":\"#operator-assignment\"}]},\"operator-arithmetic\":{\"match\":\"(\\\\\\\\+|\\\\\\\\-|\\\\\\\\/|\\\\\\\\*)\",\"name\":\"keyword.operator.arithmetic\"},\"operator-assignment\":{\"match\":\"(\\\\\\\\:?=)\",\"name\":\"keyword.operator.assignment\"},\"operator-binary\":{\"match\":\"(\\\\\\\\^|\\\\\\\\&|\\\\\\\\||<<|>>)\",\"name\":\"keyword.operator.binary\"},\"operator-logic\":{\"match\":\"(==|\\\\\\\\!=|<(?!<)|<=|>(?!>)|>=|\\\\\\\\&\\\\\\\\&|\\\\\\\\|\\\\\\\\||\\\\\\\\:(?!=)|\\\\\\\\?|\\\\\\\\!)\",\"name\":\"keyword.operator.logic\"},\"operator-mapping\":{\"match\":\"(=>)\",\"name\":\"keyword.operator.mapping\"},\"primitive\":{\"patterns\":[{\"include\":\"#number-decimal\"},{\"include\":\"#number-hex\"},{\"include\":\"#number-scientific\"},{\"include\":\"#string\"}]},\"punctuation\":{\"patterns\":[{\"match\":\";\",\"name\":\"punctuation.terminator.statement\"},{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.accessor\"},{\"match\":\",\",\"name\":\"punctuation.separator\"},{\"match\":\"\\\\\\\\{\",\"name\":\"punctuation.brace.curly.begin\"},{\"match\":\"\\\\\\\\}\",\"name\":\"punctuation.brace.curly.end\"},{\"match\":\"\\\\\\\\[\",\"name\":\"punctuation.brace.square.begin\"},{\"match\":\"\\\\\\\\]\",\"name\":\"punctuation.brace.square.end\"},{\"match\":\"\\\\\\\\(\",\"name\":\"punctuation.parameters.begin\"},{\"match\":\"\\\\\\\\)\",\"name\":\"punctuation.parameters.end\"}]},\"string\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\"(?:\\\\\\\\\\\\\\\\\\\\\"|[^\\\\\\\\\\\\\"])*\\\\\\\\\\\\\"\",\"name\":\"string.quoted.double\"},{\"match\":\"\\\\\\\\'(?:\\\\\\\\\\\\\\\\'|[^\\\\\\\\'])*\\\\\\\\'\",\"name\":\"string.quoted.single\"}]},\"type-modifier-access\":{\"match\":\"\\\\\\\\b(internal|external|private|public)\\\\\\\\b\",\"name\":\"storage.type.modifier.access\"},\"type-modifier-constant\":{\"match\":\"\\\\\\\\b(constant)\\\\\\\\b\",\"name\":\"storage.type.modifier.readonly\"},\"type-modifier-extended-scope\":{\"match\":\"\\\\\\\\b(pure|view|inherited|indexed|storage|memory|virtual|calldata|override|abstract)\\\\\\\\b\",\"name\":\"storage.type.modifier.extendedscope\"},\"type-modifier-immutable\":{\"match\":\"\\\\\\\\b(immutable)\\\\\\\\b\",\"name\":\"storage.type.modifier.readonly\"},\"type-modifier-payable\":{\"match\":\"\\\\\\\\b(nonpayable|payable)\\\\\\\\b\",\"name\":\"storage.type.modifier.payable\"},\"type-primitive\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(address|string\\\\\\\\d*|bytes\\\\\\\\d*|int\\\\\\\\d*|uint\\\\\\\\d*|bool|hash\\\\\\\\d*)\\\\\\\\b(?:\\\\\\\\[\\\\\\\\])(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.type.primitive\"}},\"end\":\"(\\\\\\\\))\",\"patterns\":[{\"include\":\"#primitive\"},{\"include\":\"#punctuation\"},{\"include\":\"#global\"},{\"include\":\"#variable\"}]},{\"match\":\"\\\\\\\\b(address|string\\\\\\\\d*|bytes\\\\\\\\d*|int\\\\\\\\d*|uint\\\\\\\\d*|bool|hash\\\\\\\\d*)\\\\\\\\b\",\"name\":\"support.type.primitive\"}]},\"variable\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.parameter.function\"}},\"match\":\"\\\\\\\\b(\\\\\\\\_\\\\\\\\w+)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"support.variable.property\"}},\"match\":\"(?:\\\\\\\\.)(\\\\\\\\w+)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"variable.parameter.other\"}},\"match\":\"\\\\\\\\b(\\\\\\\\w+)\\\\\\\\b\"}]}},\"scopeName\":\"source.solidity\"}`)),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/C30yJ1fx.js",
    "content": "import e from\"./BMYPR7BL.js\";import t from\"./COK4E0Yg.js\";import\"./ySlJ1b_l.js\";import\"./BPhBrDlE.js\";const n=Object.freeze(JSON.parse(`{\"displayName\":\"Hack\",\"fileTypes\":[\"hh\",\"php\",\"hack\"],\"foldingStartMarker\":\"(/\\\\\\\\*|\\\\\\\\{\\\\\\\\s*$|<<<HTML)\",\"foldingStopMarker\":\"(\\\\\\\\*/|^\\\\\\\\s*\\\\\\\\}|^HTML;)\",\"name\":\"hack\",\"patterns\":[{\"include\":\"text.html.basic\"},{\"include\":\"#language\"}],\"repository\":{\"attributes\":{\"patterns\":[{\"begin\":\"(<<)(?!<)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.attributes.php\"}},\"end\":\"(>>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.attributes.php\"}},\"name\":\"meta.attributes.php\",\"patterns\":[{\"include\":\"#comments\"},{\"match\":\"([A-Za-z_][A-Za-z0-9_]*)\",\"name\":\"entity.other.attribute-name.php\"},{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.begin.php\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.php\"}},\"patterns\":[{\"include\":\"#language\"}]}]}]},\"class-builtin\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.inheritance.php\"}},\"match\":\"(?i)(\\\\\\\\\\\\\\\\)?\\\\\\\\b(st(dClass|reamWrapper)|R(RD(Graph|Creator|Updater)|untimeException|e(sourceBundle|cursive(RegexIterator|Ca(chingIterator|llbackFilterIterator)|TreeIterator|Iterator(Iterator)?|DirectoryIterator|FilterIterator|ArrayIterator)|flect(ion(Method|Class|ZendExtension|Object|P(arameter|roperty)|Extension|Function(Abstract)?)?|or)|gexIterator)|angeException)|G(ender\\\\\\\\Gender|lobIterator|magick(Draw|Pixel)?)|X(sltProcessor|ML(Reader|Writer)|SLTProcessor)|M(ysqlndUh(Connection|PreparedStatement)|ongo(Re(sultException|gex)|Grid(fsFile|FS(Cursor|File)?)|BinData|C(o(de|llection)|ursor(Exception)?|lient)|Timestamp|I(nt(32|64)|d)|D(B(Ref)?|ate)|Pool|Log)?|u(tex|ltipleIterator)|e(ssageFormatter|mcache(d)?))|Bad(MethodCallException|FunctionCallException)|tidy(Node)?|S(tackable|impleXML(Iterator|Element)|oap(Server|Header|Client|Param|Var|Fault)|NMP|CA(_(SoapProxy|LocalProxy))?|p(hinxClient|oofchecker|l(M(inHeap|axHeap)|S(tack|ubject)|Heap|T(ype|empFileObject)|Ob(server|jectStorage)|DoublyLinkedList|PriorityQueue|Enum|Queue|Fi(le(Info|Object)|xedArray)))|e(ssionHandler(Interface)?|ekableIterator|rializable)|DO_(Model_(ReflectionDataObject|Type|Property)|Sequence|D(ata(Object|Factory)|AS_(Relational|XML(_Document)?|Setting|ChangeSummary|Data(Object|Factory)))|Exception|List)|wish(Result(s)?|Search)?|VM(Model)?|QLite(Result|3(Result|Stmt)?|Database|Unbuffered)|AM(Message|Connection))|H(ttp(Re(sponse|quest(Pool)?)|Message|InflateStream|DeflateStream|QueryString)|aru(Image|Outline|D(oc|estination)|Page|Encoder|Font|Annotation))|Yaf_(R(oute(_(Re(write|gex)|Map|S(tatic|imple|upervar)|Interface)|r)|e(sponse_Abstract|quest_(Simple|Http|Abstract)|gistry))|Session|Con(troller_Abstract|fig_(Simple|Ini|Abstract))|Dispatcher|Plugin_Abstract|Exception|View_(Simple|Interface)|Loader|A(ction_Abstract|pplication))|N(o(RewindIterator|rmalizer)|umberFormatter)|C(o(nd|untable|llator)|a(chingIterator|llbackFilterIterator))|T(hread|okyoTyrant(Table|Iterator|Query)?|ra(nsliterator|versable))|I(n(tlDateFormatter|validArgumentException|finiteIterator)|terator(Iterator|Aggregate)?|magick(Draw|Pixel(Iterator)?)?)|php_user_filter|ZipArchive|O(CI-(Collection|Lob)|ut(erIterator|Of(RangeException|BoundsException))|verflowException)|D(irectory(Iterator)?|omainException|OM(XPath|N(ode(list)?|amedNodeMap)|C(haracterData|omment|dataSection)|Text|Implementation|Document(Fragment)?|ProcessingInstruction|E(ntityReference|lement)|Attr)|ate(Time(Zone)?|Interval|Period))|Un(derflowException|expectedValueException)|JsonSerializable|finfo|P(har(Data|FileInfo)?|DO(Statement)?|arentIterator)|E(v(S(tat|ignal)|Ch(ild|eck)|Timer|I(o|dle)|P(eriodic|repare)|Embed|Fork|Watcher|Loop)?|rrorException|xception|mptyIterator)|V(8Js(Exception)?|arnish(Stat|Log|Admin))|KTaglib_(MPEG_(File|AudioProperties)|Tag|ID3v2_(Tag|Frame|AttachedPictureFrame))|QuickHash(StringIntHash|Int(S(tringHash|et)|Hash))|Fil(terIterator|esystemIterator)|mysqli(_(stmt|driver|warning|result))?|W(orker|eak(Map|ref))|L(imitIterator|o(cale|gicException)|ua(Closure)?|engthException|apack)|A(MQP(C(hannel|onnection)|E(nvelope|xchange)|Queue)|ppendIterator|PCIterator|rray(Iterator|Object|Access)))\\\\\\\\b\",\"name\":\"support.class.builtin.php\"}]},\"class-name\":{\"patterns\":[{\"begin\":\"(?i)(?=\\\\\\\\\\\\\\\\?[a-z_0-9]+\\\\\\\\\\\\\\\\)\",\"end\":\"(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\\\\\\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"support.class.php\"}},\"patterns\":[{\"include\":\"#namespace\"}]},{\"include\":\"#class-builtin\"},{\"begin\":\"(?=[\\\\\\\\\\\\\\\\a-zA-Z_])\",\"end\":\"(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\\\\\\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"support.class.php\"}},\"patterns\":[{\"include\":\"#namespace\"}]}]},\"comments\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\\\\\\\\*(?:#@\\\\\\\\+)?\\\\\\\\s*$\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.php\"}},\"comment\":\"This now only highlights a docblock if the first line contains only /**\\\\n- this is to stop highlighting everything as invalid when people do comment banners with /******** ...\\\\n- Now matches /**#@+ too - used for docblock templates:\\\\n  http://manual.phpdoc.org/HTMLframesConverter/default/phpDocumentor/tutorial_phpDocumentor.howto.pkg.html#basics.docblocktemplate\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.documentation.phpdoc.php\",\"patterns\":[{\"include\":\"#php_doc\"}]},{\"begin\":\"/\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.php\"}},\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.php\"},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=//)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.php\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.php\"}},\"end\":\"\\\\\\\\n|(?=\\\\\\\\?>)\",\"name\":\"comment.line.double-slash.php\"}]}]},\"constants\":{\"patterns\":[{\"begin\":\"(?xi)\\\\n(?=\\\\n  (\\\\n    (\\\\\\\\\\\\\\\\[a-z_][a-z_0-9]*\\\\\\\\\\\\\\\\[a-z_][a-z_0-9\\\\\\\\\\\\\\\\]*)\\\\n    |\\\\n    ([a-z_][a-z_0-9]*\\\\\\\\\\\\\\\\[a-z_][a-z_0-9\\\\\\\\\\\\\\\\]*)\\\\n  )\\\\n  [^a-z_0-9\\\\\\\\\\\\\\\\]\\\\n)\",\"end\":\"(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\\\\\\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"constant.other.php\"}},\"patterns\":[{\"include\":\"#namespace\"}]},{\"begin\":\"(?=\\\\\\\\\\\\\\\\?[a-zA-Z_\\\\\\\\x{7f}-\\\\\\\\x{ff}])\",\"end\":\"(?=[^\\\\\\\\\\\\\\\\a-zA-Z_\\\\\\\\x{7f}-\\\\\\\\x{ff}])\",\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(TRUE|FALSE|NULL|__(FILE|DIR|FUNCTION|CLASS|METHOD|LINE|NAMESPACE)__)\\\\\\\\b\",\"name\":\"constant.language.php\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.inheritance.php\"}},\"match\":\"(\\\\\\\\\\\\\\\\)?\\\\\\\\b(STD(IN|OUT|ERR)|ZEND_(THREAD_SAFE|DEBUG_BUILD)|DEFAULT_INCLUDE_PATH|P(HP_(R(OUND_HALF_(ODD|DOWN|UP|EVEN)|ELEASE_VERSION)|M(INOR_VERSION|A(XPATHLEN|JOR_VERSION))|BINDIR|S(HLIB_SUFFIX|YSCONFDIR|API)|CONFIG_FILE_(SCAN_DIR|PATH)|INT_(MAX|SIZE)|ZTS|O(S|UTPUT_HANDLER_(START|CONT|END))|D(EBUG|ATADIR)|URL_(SCHEME|HOST|USER|P(ORT|A(SS|TH))|QUERY|FRAGMENT)|PREFIX|E(XT(RA_VERSION|ENSION_DIR)|OL)|VERSION(_ID)?|WINDOWS_(NT_(SERVER|DOMAIN_CONTROLLER|WORKSTATION)|VERSION_(M(INOR|AJOR)|BUILD|S(UITEMASK|P_M(INOR|AJOR))|P(RODUCTTYPE|LATFORM)))|L(IBDIR|OCALSTATEDIR))|EAR_(INSTALL_DIR|EXTENSION_DIR))|E_(RECOVERABLE_ERROR|STRICT|NOTICE|CO(RE_(ERROR|WARNING)|MPILE_(ERROR|WARNING))|DEPRECATED|USER_(NOTICE|DEPRECATED|ERROR|WARNING)|PARSE|ERROR|WARNING|ALL))\\\\\\\\b\",\"name\":\"support.constant.core.php\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.inheritance.php\"}},\"match\":\"(\\\\\\\\\\\\\\\\)?\\\\\\\\b(RADIXCHAR|GROUPING|M(_(1_PI|SQRT(1_2|2|3|PI)|2_(SQRTPI|PI)|PI(_(2|4))?|E(ULER)?|L(N(10|2|PI)|OG(10E|2E)))|ON_(GROUPING|1(1|2|0)?|7|2|8|THOUSANDS_SEP|3|DECIMAL_POINT|9|4|5|6))|S(TR_PAD_(RIGHT|BOTH|LEFT)|ORT_(REGULAR|STRING|NUMERIC|DESC|LOCALE_STRING|ASC)|EEK_(SET|CUR|END))|H(TML_(SPECIALCHARS|ENTITIES)|ASH_HMAC)|YES(STR|EXPR)|N(_(S(IGN_POSN|EP_BY_SPACE)|CS_PRECEDES)|O(STR|EXPR)|EGATIVE_SIGN|AN)|C(R(YPT_(MD5|BLOWFISH|S(HA(256|512)|TD_DES|ALT_LENGTH)|EXT_DES)|NCYSTR|EDITS_(G(ROUP|ENERAL)|MODULES|SAPI|DOCS|QA|FULLPAGE|ALL))|HAR_MAX|O(NNECTION_(NORMAL|TIMEOUT|ABORTED)|DESET|UNT_(RECURSIVE|NORMAL))|URRENCY_SYMBOL|ASE_(UPPER|LOWER))|__COMPILER_HALT_OFFSET__|T(HOUS(EP|ANDS_SEP)|_FMT(_AMPM)?)|IN(T_(CURR_SYMBOL|FRAC_DIGITS)|I_(S(YSTEM|CANNER_(RAW|NORMAL))|USER|PERDIR|ALL)|F(O_(GENERAL|MODULES|C(REDITS|ONFIGURATION)|ENVIRONMENT|VARIABLES|LICENSE|ALL))?)|D(_(T_FMT|FMT)|IRECTORY_SEPARATOR|ECIMAL_POINT|A(Y_(1|7|2|3|4|5|6)|TE_(R(SS|FC(1(123|036)|2822|8(22|50)|3339))|COOKIE|ISO8601|W3C|ATOM)))|UPLOAD_ERR_(NO_(TMP_DIR|FILE)|CANT_WRITE|INI_SIZE|OK|PARTIAL|EXTENSION|FORM_SIZE)|P(M_STR|_(S(IGN_POSN|EP_BY_SPACE)|CS_PRECEDES)|OSITIVE_SIGN|ATH(_SEPARATOR|INFO_(BASENAME|DIRNAME|EXTENSION|FILENAME)))|E(RA(_(YEAR|T_FMT|D_(T_FMT|FMT)))?|XTR_(REFS|SKIP|IF_EXISTS|OVERWRITE|PREFIX_(SAME|I(NVALID|F_EXISTS)|ALL))|NT_(NOQUOTES|COMPAT|IGNORE|QUOTES))|FRAC_DIGITS|L(C_(M(ONETARY|ESSAGES)|NUMERIC|C(TYPE|OLLATE)|TIME|ALL)|O(G_(MAIL|SYSLOG|N(O(TICE|WAIT)|DELAY|EWS)|C(R(IT|ON)|ONS)|INFO|ODELAY|D(EBUG|AEMON)|U(SER|UCP)|P(ID|ERROR)|E(RR|MERG)|KERN|WARNING|L(OCAL(1|7|2|3|4|5|0|6)|PR)|A(UTH(PRIV)?|LERT))|CK_(SH|NB|UN|EX)))|A(M_STR|B(MON_(1(1|2|0)?|7|2|8|3|9|4|5|6)|DAY_(1|7|2|3|4|5|6))|SSERT_(BAIL|CALLBACK|QUIET_EVAL|WARNING|ACTIVE)|LT_DIGITS))\\\\\\\\b\",\"name\":\"support.constant.std.php\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.inheritance.php\"}},\"match\":\"(\\\\\\\\\\\\\\\\)?\\\\\\\\b(GLOB_(MARK|BRACE|NO(SORT|CHECK|ESCAPE)|ONLYDIR|ERR|AVAILABLE_FLAGS)|XML_(SAX_IMPL|HTML_DOCUMENT_NODE|N(OTATION_NODE|AMESPACE_DECL_NODE)|C(OMMENT_NODE|DATA_SECTION_NODE)|TEXT_NODE|OPTION_(SKIP_(TAGSTART|WHITE)|CASE_FOLDING|TARGET_ENCODING)|D(TD_NODE|OCUMENT_(NODE|TYPE_NODE|FRAG_NODE))|PI_NODE|E(RROR_(RECURSIVE_ENTITY_REF|MISPLACED_XML_PI|B(INARY_ENTITY_REF|AD_CHAR_REF)|SYNTAX|NO(NE|_(MEMORY|ELEMENTS))|TAG_MISMATCH|IN(CORRECT_ENCODING|VALID_TOKEN)|DUPLICATE_ATTRIBUTE|UN(CLOSED_(CDATA_SECTION|TOKEN)|DEFINED_ENTITY|KNOWN_ENCODING)|JUNK_AFTER_DOC_ELEMENT|PAR(TIAL_CHAR|AM_ENTITY_REF)|EXTERNAL_ENTITY_HANDLING|A(SYNC_ENTITY|TTRIBUTE_EXTERNAL_ENTITY_REF))|NTITY_(REF_NODE|NODE|DECL_NODE)|LEMENT_(NODE|DECL_NODE))|LOCAL_NAMESPACE|ATTRIBUTE_(N(MTOKEN(S)?|O(TATION|DE))|CDATA|ID(REF(S)?)?|DECL_NODE|EN(TITY|UMERATION)))|M(HASH_(RIPEMD(1(28|60)|256|320)|GOST|MD(2|4|5)|S(HA(1|2(24|56)|384|512)|NEFRU256)|HAVAL(1(28|92|60)|2(24|56))|CRC32(B)?|TIGER(1(28|60))?|WHIRLPOOL|ADLER32)|YSQL(_(BOTH|NUM|CLIENT_(SSL|COMPRESS|I(GNORE_SPACE|NTERACTIVE))|ASSOC)|I_(RE(PORT_(STRICT|INDEX|OFF|ERROR|ALL)|FRESH_(GRANT|MASTER|BACKUP_LOG|S(TATUS|LAVE)|HOSTS|T(HREADS|ABLES)|LOG)|AD_DEFAULT_(GROUP|FILE))|GROUP_FLAG|MULTIPLE_KEY_FLAG|B(INARY_FLAG|OTH|LOB_FLAG)|S(T(MT_ATTR_(CURSOR_TYPE|UPDATE_MAX_LENGTH|PREFETCH_ROWS)|ORE_RESULT)|E(RVER_QUERY_(NO_(GOOD_INDEX_USED|INDEX_USED)|WAS_SLOW)|T_(CHARSET_NAME|FLAG)))|N(O(_D(EFAULT_VALUE_FLAG|ATA)|T_NULL_FLAG)|UM(_FLAG)?)|C(URSOR_TYPE_(READ_ONLY|SCROLLABLE|NO_CURSOR|FOR_UPDATE)|LIENT_(SSL|NO_SCHEMA|COMPRESS|I(GNORE_SPACE|NTERACTIVE)|FOUND_ROWS))|T(YPE_(GEOMETRY|MEDIUM_BLOB|B(IT|LOB)|S(HORT|TRING|ET)|YEAR|N(ULL|EWD(ECIMAL|ATE))|CHAR|TI(ME(STAMP)?|NY(_BLOB)?)|INT(24|ERVAL)|D(OUBLE|ECIMAL|ATE(TIME)?)|ENUM|VAR_STRING|FLOAT|LONG(_BLOB|LONG)?)|IMESTAMP_FLAG)|INIT_COMMAND|ZEROFILL_FLAG|O(N_UPDATE_NOW_FLAG|PT_(NET_(READ_BUFFER_SIZE|CMD_BUFFER_SIZE)|CONNECT_TIMEOUT|INT_AND_FLOAT_NATIVE|LOCAL_INFILE))|D(EBUG_TRACE_ENABLED|ATA_TRUNCATED)|U(SE_RESULT|N(SIGNED_FLAG|IQUE_KEY_FLAG))|P(RI_KEY_FLAG|ART_KEY_FLAG)|ENUM_FLAG|A(S(SOC|YNC)|UTO_INCREMENT_FLAG)))|CRYPT_(R(C(2|6)|IJNDAEL_(1(28|92)|256)|AND)|GOST|XTEA|M(ODE_(STREAM|NOFB|C(BC|FB)|OFB|ECB)|ARS)|BLOWFISH(_COMPAT)?|S(ERPENT|KIPJACK|AFER(128|PLUS|64))|C(RYPT|AST_(128|256))|T(RIPLEDES|HREEWAY|WOFISH)|IDEA|3DES|DE(S|CRYPT|V_(RANDOM|URANDOM))|PANAMA|EN(CRYPT|IGNA)|WAKE|LOKI97|ARCFOUR(_IV)?))|S(TREAM_(REPORT_ERRORS|M(UST_SEEK|KDIR_RECURSIVE)|BUFFER_(NONE|FULL|LINE)|S(HUT_(RD(WR)?|WR)|OCK_(R(DM|AW)|S(TREAM|EQPACKET)|DGRAM)|ERVER_(BIND|LISTEN))|NOTIFY_(RE(SOLVE|DIRECTED)|MIME_TYPE_IS|SEVERITY_(INFO|ERR|WARN)|CO(MPLETED|NNECT)|PROGRESS|F(ILE_SIZE_IS|AILURE)|AUTH_RE(SULT|QUIRED))|C(RYPTO_METHOD_(SSLv(2(_(SERVER|CLIENT)|3_(SERVER|CLIENT))|3_(SERVER|CLIENT))|TLS_(SERVER|CLIENT))|LIENT_(CONNECT|PERSISTENT|ASYNC_CONNECT)|AST_(FOR_SELECT|AS_STREAM))|I(GNORE_URL|S_URL|PPROTO_(RAW|TCP|I(CMP|P)|UDP))|O(OB|PTION_(READ_(BUFFER|TIMEOUT)|BLOCKING|WRITE_BUFFER))|U(RL_STAT_(QUIET|LINK)|SE_PATH)|P(EEK|F_(INET(6)?|UNIX))|ENFORCE_SAFE_MODE|FILTER_(READ|WRITE|ALL))|UNFUNCS_RET_(STRING|TIMESTAMP|DOUBLE)|QLITE(_(R(OW|EADONLY)|MIS(MATCH|USE)|B(OTH|USY)|SCHEMA|N(O(MEM|T(FOUND|ADB)|LFS)|UM)|C(O(RRUPT|NSTRAINT)|ANTOPEN)|TOOBIG|I(NTER(RUPT|NAL)|OERR)|OK|DONE|P(ROTOCOL|ERM)|E(RROR|MPTY)|F(ORMAT|ULL)|LOCKED|A(BORT|SSOC|UTH))|3_(B(OTH|LOB)|NU(M|LL)|TEXT|INTEGER|OPEN_(READ(ONLY|WRITE)|CREATE)|FLOAT|ASSOC)))|CURL(M(SG_DONE|_(BAD_(HANDLE|EASY_HANDLE)|CALL_MULTI_PERFORM|INTERNAL_ERROR|O(UT_OF_MEMORY|K)))|SSH_AUTH_(HOST|NONE|DEFAULT|P(UBLICKEY|ASSWORD)|KEYBOARD)|CLOSEPOLICY_(SLOWEST|CALLBACK|OLDEST|LEAST_(RECENTLY_USED|TRAFFIC))|_(HTTP_VERSION_(1_(1|0)|NONE)|NETRC_(REQUIRED|IGNORED|OPTIONAL)|TIMECOND_(IF(MODSINCE|UNMODSINCE)|LASTMOD)|IPRESOLVE_(V(4|6)|WHATEVER)|VERSION_(SSL|IPV6|KERBEROS4|LIBZ))|INFO_(RE(DIRECT_(COUNT|TIME)|QUEST_SIZE)|S(SL_VERIFYRESULT|TARTTRANSFER_TIME|IZE_(DOWNLOAD|UPLOAD)|PEED_(DOWNLOAD|UPLOAD))|H(TTP_CODE|EADER_(SIZE|OUT))|NAMELOOKUP_TIME|C(ON(NECT_TIME|TENT_(TYPE|LENGTH_(DOWNLOAD|UPLOAD)))|ERTINFO)|TOTAL_TIME|PR(IVATE|ETRANSFER_TIME)|EFFECTIVE_URL|FILETIME)|OPT_(R(E(SUME_FROM|TURNTRANSFER|DIR_PROTOCOLS|FERER|AD(DATA|FUNCTION))|AN(GE|DOM_FILE))|MAX(REDIRS|CONNECTS)|B(INARYTRANSFER|UFFERSIZE)|S(S(H_(HOST_PUBLIC_KEY_MD5|P(RIVATE_KEYFILE|UBLIC_KEYFILE)|AUTH_TYPES)|L(CERT(TYPE|PASSWD)?|_(CIPHER_LIST|VERIFY(HOST|PEER))|ENGINE(_DEFAULT)?|VERSION|KEY(TYPE|PASSWD)?))|TDERR)|H(TTP(GET|HEADER|200ALIASES|_VERSION|PROXYTUNNEL|AUTH)|EADER(FUNCTION)?)|N(O(BODY|SIGNAL|PROGRESS)|ETRC)|C(RLF|O(NNECTTIMEOUT(_MS)?|OKIE(SESSION|JAR|FILE)?)|USTOMREQUEST|ERTINFO|LOSEPOLICY|A(INFO|PATH))|T(RANSFERTEXT|CP_NODELAY|IME(CONDITION|OUT(_MS)?|VALUE))|I(N(TERFACE|FILE(SIZE)?)|PRESOLVE)|DNS_(CACHE_TIMEOUT|USE_GLOBAL_CACHE)|U(RL|SER(PWD|AGENT)|NRESTRICTED_AUTH|PLOAD)|P(R(IVATE|O(GRESSFUNCTION|XY(TYPE|USERPWD|PORT|AUTH)?|TOCOLS))|O(RT|ST(REDIR|QUOTE|FIELDS)?)|UT)|E(GDSOCKET|NCODING)|VERBOSE|K(RB4LEVEL|EYPASSWD)|QUOTE|F(RESH_CONNECT|TP(SSLAUTH|_(S(SL|KIP_PASV_IP)|CREATE_MISSING_DIRS|USE_EP(RT|SV)|FILEMETHOD)|PORT|LISTONLY|APPEND)|ILE(TIME)?|O(RBID_REUSE|LLOWLOCATION)|AILONERROR)|WRITE(HEADER|FUNCTION)|LOW_SPEED_(TIME|LIMIT)|AUTOREFERER)|PRO(XY_(SOCKS(4|5)|HTTP)|TO_(S(CP|FTP)|HTTP(S)?|T(ELNET|FTP)|DICT|F(TP(S)?|ILE)|LDAP(S)?|ALL))|E_(RE(CV_ERROR|AD_ERROR)|GOT_NOTHING|MALFORMAT_USER|BAD_(C(ONTENT_ENCODING|ALLING_ORDER)|PASSWORD_ENTERED|FUNCTION_ARGUMENT)|S(S(H|L_(C(IPHER|ONNECT_ERROR|ERTPROBLEM|ACERT)|PEER_CERTIFICATE|ENGINE_(SETFAILED|NOTFOUND)))|HARE_IN_USE|END_ERROR)|HTTP_(RANGE_ERROR|NOT_FOUND|PO(RT_FAILED|ST_ERROR))|COULDNT_(RESOLVE_(HOST|PROXY)|CONNECT)|T(OO_MANY_REDIRECTS|ELNET_OPTION_SYNTAX)|O(BSOLETE|UT_OF_MEMORY|PERATION_TIMEOUTED|K)|U(RL_MALFORMAT(_USER)?|N(SUPPORTED_PROTOCOL|KNOWN_TELNET_OPTION))|PARTIAL_FILE|F(TP_(BAD_DOWNLOAD_RESUME|SSL_FAILED|C(OULDNT_(RETR_FILE|GET_SIZE|S(TOR_FILE|ET_(BINARY|ASCII))|USE_REST)|ANT_(RECONNECT|GET_HOST))|USER_PASSWORD_INCORRECT|PORT_FAILED|QUOTE_ERROR|W(RITE_ERROR|EIRD_(SERVER_REPLY|227_FORMAT|USER_REPLY|PAS(S_REPLY|V_REPLY)))|ACCESS_DENIED)|ILE(SIZE_EXCEEDED|_COULDNT_READ_FILE)|UNCTION_NOT_FOUND|AILED_INIT)|WRITE_ERROR|L(IBRARY_NOT_FOUND|DAP_(SEARCH_FAILED|CANNOT_BIND|INVALID_URL))|ABORTED_BY_CALLBACK)|VERSION_NOW|FTP(METHOD_(MULTICWD|SINGLECWD|NOCWD)|SSL_(NONE|CONTROL|TRY|ALL)|AUTH_(SSL|TLS|DEFAULT))|AUTH_(GSSNEGOTIATE|BASIC|NTLM|DIGEST|ANY(SAFE)?))|I(MAGETYPE_(GIF|XBM|BMP|SWF|COUNT|TIFF_(MM|II)|I(CO|FF)|UNKNOWN|J(B2|P(X|2|C|EG(2000)?))|P(SD|NG)|WBMP)|NPUT_(REQUEST|GET|SE(RVER|SSION)|COOKIE|POST|ENV)|CONV_(MIME_DECODE_(STRICT|CONTINUE_ON_ERROR)|IMPL|VERSION))|D(NS_(MX|S(RV|OA)|HINFO|N(S|APTR)|CNAME|TXT|PTR|A(NY|LL|AAA|6)?)|OM(STRING_SIZE_ERR|_(SYNTAX_ERR|HIERARCHY_REQUEST_ERR|N(O(_(MODIFICATION_ALLOWED_ERR|DATA_ALLOWED_ERR)|T_(SUPPORTED_ERR|FOUND_ERR))|AMESPACE_ERR)|IN(DEX_SIZE_ERR|USE_ATTRIBUTE_ERR|VALID_(MODIFICATION_ERR|STATE_ERR|CHARACTER_ERR|ACCESS_ERR))|PHP_ERR|VALIDATION_ERR|WRONG_DOCUMENT_ERR)))|JSON_(HEX_(TAG|QUOT|A(MP|POS))|NUMERIC_CHECK|ERROR_(S(YNTAX|TATE_MISMATCH)|NONE|CTRL_CHAR|DEPTH|UTF8)|FORCE_OBJECT)|P(REG_(RECURSION_LIMIT_ERROR|GREP_INVERT|BA(CKTRACK_LIMIT_ERROR|D_UTF8_(OFFSET_ERROR|ERROR))|S(PLIT_(NO_EMPTY|OFFSET_CAPTURE|DELIM_CAPTURE)|ET_ORDER)|NO_ERROR|INTERNAL_ERROR|OFFSET_CAPTURE|PATTERN_ORDER)|SFS_(PASS_ON|ERR_FATAL|F(EED_ME|LAG_(NORMAL|FLUSH_(CLOSE|INC))))|CRE_VERSION|OSIX_(R_OK|X_OK|S_IF(REG|BLK|SOCK|CHR|IFO)|F_OK|W_OK))|F(NM_(NOESCAPE|CASEFOLD|P(ERIOD|ATHNAME))|IL(TER_(REQUIRE_(SCALAR|ARRAY)|SANITIZE_(MAGIC_QUOTES|S(TRI(NG|PPED)|PECIAL_CHARS)|NUMBER_(INT|FLOAT)|URL|E(MAIL|NCODED)|FULL_SPECIAL_CHARS)|NULL_ON_FAILURE|CALLBACK|DEFAULT|UNSAFE_RAW|VALIDATE_(REGEXP|BOOLEAN|I(NT|P)|URL|EMAIL|FLOAT)|F(ORCE_ARRAY|LAG_(S(CHEME_REQUIRED|TRIP_(BACKTICK|HIGH|LOW))|HOST_REQUIRED|NO(NE|_(RES_RANGE|PRIV_RANGE|ENCODE_QUOTES))|IPV(4|6)|PATH_REQUIRED|E(MPTY_STRING_NULL|NCODE_(HIGH|LOW|AMP))|QUERY_REQUIRED|ALLOW_(SCIENTIFIC|HEX|THOUSAND|OCTAL|FRACTION))))|E(_(BINARY|SKIP_EMPTY_LINES|NO_DEFAULT_CONTEXT|TEXT|IGNORE_NEW_LINES|USE_INCLUDE_PATH|APPEND)|INFO_(RAW|MIME(_(TYPE|ENCODING))?|SYMLINK|NONE|CONTINUE|DEVICES|PRESERVE_ATIME)))|ORCE_(GZIP|DEFLATE))|LIBXML_(XINCLUDE|N(SCLEAN|O(XMLDECL|BLANKS|NET|CDATA|E(RROR|MPTYTAG|NT)|WARNING))|COMPACT|D(TD(VALID|LOAD|ATTR)|OTTED_VERSION)|PARSEHUGE|ERR_(NONE|ERROR|FATAL|WARNING)|VERSION|LOADED_VERSION))\\\\\\\\b\",\"name\":\"support.constant.ext.php\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.inheritance.php\"}},\"match\":\"(\\\\\\\\\\\\\\\\)?\\\\\\\\bT_(RE(TURN|QUIRE(_ONCE)?)|G(OTO|LOBAL)|XOR_EQUAL|M(INUS_EQUAL|OD_EQUAL|UL_EQUAL|ETHOD_C|L_COMMENT)|B(REAK|OOL(_CAST|EAN_(OR|AND))|AD_CHARACTER)|S(R(_EQUAL)?|T(RING(_(CAST|VARNAME))?|A(RT_HEREDOC|TIC))|WITCH|L(_EQUAL)?)|HALT_COMPILER|N(S_(SEPARATOR|C)|UM_STRING|EW|AMESPACE)|C(HARACTER|O(MMENT|N(ST(ANT_ENCAPSED_STRING)?|CAT_EQUAL|TINUE))|URLY_OPEN|L(O(SE_TAG|NE)|ASS(_C)?)|A(SE|TCH))|T(RY|HROW)|I(MPLEMENTS|S(SET|_(GREATER_OR_EQUAL|SMALLER_OR_EQUAL|NOT_(IDENTICAL|EQUAL)|IDENTICAL|EQUAL))|N(STANCEOF|C(LUDE(_ONCE)?)?|T(_CAST|ERFACE)|LINE_HTML)|F)|O(R_EQUAL|BJECT_(CAST|OPERATOR)|PEN_TAG(_WITH_ECHO)?|LD_FUNCTION)|D(NUMBER|I(R|V_EQUAL)|O(C_COMMENT|UBLE_(C(OLON|AST)|ARROW)|LLAR_OPEN_CURLY_BRACES)?|E(C(LARE)?|FAULT))|U(SE|NSET(_CAST)?)|P(R(I(NT|VATE)|OTECTED)|UBLIC|LUS_EQUAL|AAMAYIM_NEKUDOTAYIM)|E(X(TENDS|IT)|MPTY|N(CAPSED_AND_WHITESPACE|D(SWITCH|_HEREDOC|IF|DECLARE|FOR(EACH)?|WHILE))|CHO|VAL|LSE(IF)?)|VAR(IABLE)?|F(I(NAL|LE)|OR(EACH)?|UNC(_C|TION))|WHI(TESPACE|LE)|L(NUMBER|I(ST|NE)|OGICAL_(XOR|OR|AND))|A(RRAY(_CAST)?|BSTRACT|S|ND_EQUAL))\\\\\\\\b\",\"name\":\"support.constant.parser-token.php\"},{\"comment\":\"In PHP, any identifier which is not a variable is taken to be a constant.\\\\nHowever, if there is no constant defined with the given name then a notice\\\\nis generated and the constant is assumed to have the value of its name.\",\"match\":\"[a-zA-Z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*\",\"name\":\"constant.other.php\"}]}]},\"function-arguments\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#attributes\"},{\"include\":\"#type-annotation\"},{\"begin\":\"(?xi)((\\\\\\\\$+)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)  # The variable name\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.php\"},\"2\":{\"name\":\"punctuation.definition.variable.php\"}},\"end\":\"(?xi)\\\\n\\\\\\\\s*(?=,|\\\\\\\\)|$) # A closing parentheses (end of argument list) or a comma\",\"patterns\":[{\"begin\":\"(=)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.php\"}},\"end\":\"(?=,|\\\\\\\\))\",\"patterns\":[{\"include\":\"#language\"}]}]}]},\"function-call\":{\"patterns\":[{\"begin\":\"(?i)(?=\\\\\\\\\\\\\\\\?[a-z_0-9\\\\\\\\\\\\\\\\]+\\\\\\\\\\\\\\\\[a-z_][a-z0-9_]*\\\\\\\\s*\\\\\\\\()\",\"comment\":\"Functions in a user-defined namespace (overrides any built-ins)\",\"end\":\"(?=\\\\\\\\s*\\\\\\\\()\",\"patterns\":[{\"include\":\"#user-function-call\"}]},{\"match\":\"(?i)\\\\\\\\b(print|echo)\\\\\\\\b\",\"name\":\"support.function.construct.php\"},{\"begin\":\"(?i)(\\\\\\\\\\\\\\\\)?(?=\\\\\\\\b[a-z_][a-z_0-9]*\\\\\\\\s*\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.inheritance.php\"}},\"comment\":\"Root namespace function calls (built-in or user)\",\"end\":\"(?=\\\\\\\\s*\\\\\\\\()\",\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(isset|unset|e(val|mpty)|list)(?=\\\\\\\\s*\\\\\\\\()\",\"name\":\"support.function.construct.php\"},{\"include\":\"#support\"},{\"include\":\"#user-function-call\"}]}]},\"function-return-type\":{\"patterns\":[{\"begin\":\"(:)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.type.php\"}},\"end\":\"(?=[{;])\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#type-annotation\"},{\"include\":\"#class-name\"}]}]},\"generics\":{\"patterns\":[{\"begin\":\"(<)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.generics.php\"}},\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.generics.php\"}},\"name\":\"meta.generics.php\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#generics\"},{\"match\":\"([-+])?([A-Za-z_][A-Za-z0-9_]*)(?:\\\\\\\\s+(as|super)\\\\\\\\s+([A-Za-z_][A-Za-z0-9_]*))?\",\"name\":\"support.type.php\"},{\"include\":\"#type-annotation\"}]}]},\"heredoc\":{\"patterns\":[{\"begin\":\"<<<\\\\\\\\s*(\\\\\"?)([a-zA-Z_]+[a-zA-Z0-9_]*)(\\\\\\\\1)\\\\\\\\s*$\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.operator.heredoc.php\"}},\"end\":\"^(\\\\\\\\2)(?=;?$)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.heredoc.php\"}},\"name\":\"string.unquoted.heredoc.php\",\"patterns\":[{\"include\":\"#interpolation\"}]},{\"begin\":\"<<<\\\\\\\\s*('?)([a-zA-Z_]+[a-zA-Z0-9_]*)(\\\\\\\\1)\\\\\\\\s*$\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.operator.heredoc.php\"}},\"end\":\"^(\\\\\\\\2)(?=;?$)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.heredoc.php\"}},\"name\":\"string.unquoted.heredoc.nowdoc.php\"}]},\"implements\":{\"patterns\":[{\"begin\":\"(?i)(implements)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.implements.php\"}},\"end\":\"(?i)(?=[;{])\",\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\"(?i)(?=[a-z0-9_\\\\\\\\\\\\\\\\]+)\",\"contentName\":\"meta.other.inherited-class.php\",\"end\":\"(?i)(?:\\\\\\\\s*(?:,|(?=[^a-z0-9_\\\\\\\\\\\\\\\\\\\\\\\\s]))\\\\\\\\s*)\",\"patterns\":[{\"begin\":\"(?i)(?=\\\\\\\\\\\\\\\\?[a-z_0-9]+\\\\\\\\\\\\\\\\)\",\"end\":\"(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\\\\\\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"entity.other.inherited-class.php\"}},\"patterns\":[{\"include\":\"#namespace\"}]},{\"include\":\"#class-builtin\"},{\"include\":\"#namespace\"},{\"match\":\"(?i)[a-z_][a-z_0-9]*\",\"name\":\"entity.other.inherited-class.php\"}]}]}]},\"instantiation\":{\"begin\":\"(?i)(new)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.new.php\"}},\"end\":\"(?i)(?=[^$a-z0-9_\\\\\\\\\\\\\\\\])\",\"patterns\":[{\"match\":\"(parent|static|self)(?=[^a-z0-9_])\",\"name\":\"support.type.php\"},{\"include\":\"#class-name\"},{\"include\":\"#variable-name\"}]},\"interface\":{\"begin\":\"^(?i)\\\\\\\\s*(?:(public|internal)\\\\\\\\s+)?(interface)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.php\"},\"2\":{\"name\":\"storage.type.interface.php\"}},\"end\":\"(?=[;{])\",\"name\":\"meta.interface.php\",\"patterns\":[{\"include\":\"#comments\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.extends.php\"}},\"match\":\"\\\\\\\\b(extends)\\\\\\\\b\"},{\"include\":\"#generics\"},{\"include\":\"#namespace\"},{\"match\":\"(?i)[a-z0-9_]+\",\"name\":\"entity.name.type.class.php\"}]},\"interpolation\":{\"comment\":\"http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing\",\"patterns\":[{\"comment\":\"Interpolating octal values e.g. \\\\\\\\01 or \\\\\\\\07.\",\"match\":\"\\\\\\\\\\\\\\\\[0-7]{1,3}\",\"name\":\"constant.numeric.octal.php\"},{\"comment\":\"Interpolating hex values e.g. \\\\\\\\x1 or \\\\\\\\xFF.\",\"match\":\"\\\\\\\\\\\\\\\\x[0-9A-Fa-f]{1,2}\",\"name\":\"constant.numeric.hex.php\"},{\"comment\":\"Escaped characters in double-quoted strings e.g. \\\\\\\\n or \\\\\\\\t.\",\"match\":\"\\\\\\\\\\\\\\\\[nrt\\\\\\\\\\\\\\\\\\\\\\\\$\\\\\\\\\\\\\"]\",\"name\":\"constant.character.escape.php\"},{\"comment\":\"Interpolating expressions in double-quoted strings with {} e.g. {$x->y->z[0][1]}.\",\"match\":\"(\\\\\\\\{\\\\\\\\$.*?\\\\\\\\})\",\"name\":\"variable.other.php\"},{\"comment\":\"Interpolating simple variables, e.g. $x, $x->y, $x[z] but not $x->y->z.\",\"match\":\"(\\\\\\\\$[a-zA-Z_][a-zA-Z0-9_]*((->[a-zA-Z_][a-zA-Z0-9_]*)|(\\\\\\\\[[a-zA-Z0-9_]+\\\\\\\\]))?)\",\"name\":\"variable.other.php\"}]},\"invoke-call\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.php\"},\"2\":{\"name\":\"variable.other.php\"}},\"match\":\"(?i)(\\\\\\\\$+)([a-z_][a-z_0-9]*)(?=\\\\\\\\s*\\\\\\\\()\",\"name\":\"meta.function-call.invoke.php\"},\"language\":{\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\"(?=^\\\\\\\\s*<<)\",\"end\":\"(?<=>>)\",\"patterns\":[{\"include\":\"#attributes\"}]},{\"include\":\"#xhp\"},{\"include\":\"#interface\"},{\"begin\":\"(?xi)\\\\n^\\\\\\\\s*\\\\n(?:(module)\\\\\\\\s*)?(type|newtype)\\\\n\\\\\\\\s+\\\\n([a-z0-9_]+)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.php\"},\"2\":{\"name\":\"storage.type.typedecl.php\"},\"3\":{\"name\":\"entity.name.type.typedecl.php\"}},\"end\":\"(;)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.termination.expression.php\"}},\"name\":\"meta.typedecl.php\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#generics\"},{\"match\":\"(=)\",\"name\":\"keyword.operator.assignment.php\"},{\"include\":\"#type-annotation\"}]},{\"begin\":\"(?i)^\\\\\\\\s*(?:(public|internal)\\\\\\\\s+)?(enum)\\\\\\\\s+(class)\\\\\\\\s+([a-z0-9_]+)\\\\\\\\s*:?\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.php\"},\"2\":{\"name\":\"storage.modifier.php\"},\"3\":{\"name\":\"storage.type.class.enum.php\"},\"4\":{\"name\":\"entity.name.type.class.enum.php\"}},\"end\":\"(?=[{])\",\"name\":\"meta.class.enum.php\",\"patterns\":[{\"match\":\"\\\\\\\\b(extends)\\\\\\\\b\",\"name\":\"storage.modifier.extends.php\"},{\"include\":\"#type-annotation\"}]},{\"begin\":\"(?i)^\\\\\\\\s*(?:(public|internal)\\\\\\\\s+)?(enum)\\\\\\\\s+([a-z0-9_]+)\\\\\\\\s*:?\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.php\"},\"2\":{\"name\":\"storage.type.enum.php\"},\"3\":{\"name\":\"entity.name.type.enum.php\"}},\"end\":\"\\\\\\\\{\",\"name\":\"meta.enum.php\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#type-annotation\"}]},{\"begin\":\"(?i)^\\\\\\\\s*(?:(public|internal)\\\\\\\\s+)?(trait)\\\\\\\\s+([a-z0-9_]+)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.php\"},\"2\":{\"name\":\"storage.type.trait.php\"},\"3\":{\"name\":\"entity.name.type.class.php\"}},\"end\":\"(?=[{])\",\"name\":\"meta.trait.php\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#generics\"},{\"include\":\"#implements\"}]},{\"begin\":\"^\\\\\\\\s*(new)\\\\\\\\s+(module)\\\\\\\\s+([A-Za-z0-9_\\\\\\\\.]+)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.module.php\"},\"2\":{\"name\":\"storage.type.module.php\"},\"3\":{\"name\":\"entity.name.type.module.php\"}},\"end\":\"(?=[{])\",\"name\":\"meta.module.php\",\"patterns\":[{\"include\":\"#comments\"}]},{\"begin\":\"^\\\\\\\\s*(module)\\\\\\\\s+([A-Za-z0-9_\\\\\\\\.]+)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.module.php\"},\"2\":{\"name\":\"entity.name.type.module.php\"}},\"end\":\"$|(?=[\\\\\\\\s;])\",\"name\":\"meta.use.module.php\",\"patterns\":[{\"include\":\"#comments\"}]},{\"begin\":\"(?i)(?:^\\\\\\\\s*|\\\\\\\\s*)(namespace)\\\\\\\\b\\\\\\\\s+(?=([a-z0-9_\\\\\\\\\\\\\\\\]*\\\\\\\\s*($|[;{]|(\\\\\\\\/[\\\\\\\\/*])))|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.namespace.php\"}},\"contentName\":\"entity.name.type.namespace.php\",\"end\":\"(?i)(?=\\\\\\\\s*$|[^a-z0-9_\\\\\\\\\\\\\\\\])\",\"name\":\"meta.namespace.php\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\",\"name\":\"punctuation.separator.inheritance.php\"}]},{\"begin\":\"(?i)\\\\\\\\s*\\\\\\\\b(use)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.use.php\"}},\"end\":\"(?=;|(?:^\\\\\\\\s*$))\",\"name\":\"meta.use.php\",\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\"(?i)\\\\\\\\s*(?=[a-z_0-9\\\\\\\\\\\\\\\\])\",\"end\":\"(?xi)\\\\n(?:\\\\n  (?:\\\\\\\\s*(as)\\\\\\\\b\\\\\\\\s*([a-z_0-9]*)\\\\\\\\s*(?=,|;|$))|\\\\n  (?=,|;|$)\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.other.use-as.php\"},\"2\":{\"name\":\"support.other.namespace.use-as.php\"}},\"patterns\":[{\"include\":\"#class-builtin\"},{\"begin\":\"(?i)\\\\\\\\s*(?=[\\\\\\\\\\\\\\\\a-z_0-9])\",\"end\":\"$|(?=[\\\\\\\\s,;])\",\"name\":\"support.other.namespace.use.php\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\",\"name\":\"punctuation.separator.inheritance.php\"}]}]},{\"match\":\"\\\\\\\\s*,\\\\\\\\s*\"}]},{\"begin\":\"(?i)^\\\\\\\\s*((?:(?:final|abstract|public|internal)\\\\\\\\s+)*)(class)\\\\\\\\s+([a-z0-9_]+)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"match\":\"final|abstract|public|internal\",\"name\":\"storage.modifier.php\"}]},\"2\":{\"name\":\"storage.type.class.php\"},\"3\":{\"name\":\"entity.name.type.class.php\"}},\"end\":\"(?=[;{])\",\"name\":\"meta.class.php\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#generics\"},{\"include\":\"#implements\"},{\"begin\":\"(?i)(extends)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.extends.php\"}},\"contentName\":\"meta.other.inherited-class.php\",\"end\":\"(?i)(?=[^a-z_0-9\\\\\\\\\\\\\\\\])\",\"patterns\":[{\"begin\":\"(?i)(?=\\\\\\\\\\\\\\\\?[a-z_0-9]+\\\\\\\\\\\\\\\\)\",\"end\":\"(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\\\\\\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"entity.other.inherited-class.php\"}},\"patterns\":[{\"include\":\"#namespace\"}]},{\"include\":\"#class-builtin\"},{\"include\":\"#namespace\"},{\"match\":\"(?i)[a-z_][a-z_0-9]*\",\"name\":\"entity.other.inherited-class.php\"}]}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.php\"}},\"match\":\"\\\\\\\\s*\\\\\\\\b(await|break|c(ase|ontinue)|concurrent|default|do|else|for(each)?|if|return|switch|use|while)\\\\\\\\b\"},{\"begin\":\"(?i)\\\\\\\\b((?:require|include)(?:_once)?)\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.import.include.php\"}},\"end\":\"(?=\\\\\\\\s|;|$)\",\"name\":\"meta.include.php\",\"patterns\":[{\"include\":\"#language\"}]},{\"begin\":\"\\\\\\\\b(catch)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.exception.catch.php\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.bracket.round.php\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.bracket.round.php\"}},\"name\":\"meta.catch.php\",\"patterns\":[{\"include\":\"#namespace\"},{\"captures\":{\"1\":{\"name\":\"support.class.exception.php\"},\"2\":{\"patterns\":[{\"match\":\"(?i)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*\",\"name\":\"support.class.exception.php\"},{\"match\":\"\\\\\\\\|\",\"name\":\"punctuation.separator.delimiter.php\"}]},\"3\":{\"name\":\"variable.other.php\"},\"4\":{\"name\":\"punctuation.definition.variable.php\"}},\"match\":\"(?xi)\\\\n([a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)                 # Exception class\\\\n((?:\\\\\\\\s*\\\\\\\\|\\\\\\\\s*[a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)*) # Optional additional exception classes\\\\n\\\\\\\\s*\\\\n((\\\\\\\\$+)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)           # Variable\"}]},{\"match\":\"\\\\\\\\b(catch|try|throw|exception|finally)\\\\\\\\b\",\"name\":\"keyword.control.exception.php\"},{\"begin\":\"(?i)\\\\\\\\s*(?:(public|internal)\\\\\\\\s+)?(function)\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.php\"},\"2\":{\"name\":\"storage.type.function.php\"}},\"end\":\"\\\\\\\\{|\\\\\\\\)\",\"name\":\"meta.function.closure.php\",\"patterns\":[{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.begin.php\"}},\"contentName\":\"meta.function.arguments.php\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.php\"}},\"patterns\":[{\"include\":\"#function-arguments\"}]},{\"begin\":\"(?i)(use)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.function.use.php\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.php\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.php\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.modifier.reference.php\"},\"2\":{\"name\":\"variable.other.php\"},\"3\":{\"name\":\"punctuation.definition.variable.php\"}},\"match\":\"(?:\\\\\\\\s*(&))?\\\\\\\\s*((\\\\\\\\$+)[a-zA-Z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)\\\\\\\\s*(?=,|\\\\\\\\))\",\"name\":\"meta.function.closure.use.php\"}]}]},{\"begin\":\"\\\\\\\\s*((?:(?:final|abstract|public|private|protected|internal|static|async)\\\\\\\\s+)*)(function)(?:\\\\\\\\s+)(?:(__(?:call|construct|destruct|get|set|isset|unset|tostring|clone|set_state|sleep|wakeup|autoload|invoke|callStatic|dispose|disposeAsync)(?=[^a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]))|([a-zA-Z0-9_]+))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"match\":\"final|abstract|public|private|protected|internal|static|async\",\"name\":\"storage.modifier.php\"}]},\"2\":{\"name\":\"storage.type.function.php\"},\"3\":{\"name\":\"support.function.magic.php\"},\"4\":{\"name\":\"entity.name.function.php\"},\"5\":{\"name\":\"meta.function.generics.php\"}},\"end\":\"(?=[{;])\",\"name\":\"meta.function.php\",\"patterns\":[{\"include\":\"#generics\"},{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.begin.php\"}},\"contentName\":\"meta.function.arguments.php\",\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#function-arguments\"}]},{\"begin\":\"(\\\\\\\\))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.php\"}},\"end\":\"(?=[{;])\",\"patterns\":[{\"include\":\"#function-return-type\"}]}]},{\"include\":\"#invoke-call\"},{\"begin\":\"(?xi)\\\\n\\\\\\\\s*\\\\n  (?=\\\\n    [a-z_0-9$\\\\\\\\\\\\\\\\]+(::)\\\\n    (?:\\\\n      ([a-z_][a-z_0-9]*)\\\\\\\\s*\\\\\\\\(\\\\n      |\\\\n      ((\\\\\\\\$+)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)\\\\n      |\\\\n      ([a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)\\\\n    )?\\\\n  )\",\"end\":\"(::)(?:([A-Za-z_][A-Za-z_0-9]*)\\\\\\\\s*\\\\\\\\(|((\\\\\\\\$+)[a-zA-Z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)|([a-zA-Z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*))?\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.class.php\"},\"2\":{\"name\":\"meta.function-call.static.php\"},\"3\":{\"name\":\"variable.other.class.php\"},\"4\":{\"name\":\"punctuation.definition.variable.php\"},\"5\":{\"name\":\"constant.other.class.php\"}},\"patterns\":[{\"match\":\"(self|static|parent)\\\\\\\\b\",\"name\":\"support.type.php\"},{\"include\":\"#class-name\"},{\"include\":\"#variable-name\"}]},{\"include\":\"#variables\"},{\"include\":\"#strings\"},{\"captures\":{\"1\":{\"name\":\"support.function.construct.php\"},\"2\":{\"name\":\"punctuation.definition.array.begin.php\"},\"3\":{\"name\":\"punctuation.definition.array.end.php\"}},\"match\":\"(array)(\\\\\\\\()(\\\\\\\\))\",\"name\":\"meta.array.empty.php\"},{\"begin\":\"(array)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.construct.php\"},\"2\":{\"name\":\"punctuation.definition.array.begin.php\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.array.end.php\"}},\"name\":\"meta.array.php\",\"patterns\":[{\"include\":\"#language\"}]},{\"captures\":{\"1\":{\"name\":\"support.type.php\"}},\"match\":\"(?i)\\\\\\\\s*\\\\\\\\(\\\\\\\\s*(array|real|double|float|int(eger)?|bool(ean)?|string|object|binary|unset|arraykey|nonnull|dict|vec|keyset)\\\\\\\\s*\\\\\\\\)\"},{\"match\":\"(?i)\\\\\\\\b(array|real|double|float|int(eger)?|bool(ean)?|string|class|clone|var|function|interface|trait|parent|self|object|arraykey|nonnull|dict|vec|keyset)\\\\\\\\b\",\"name\":\"support.type.php\"},{\"match\":\"(?i)\\\\\\\\b(global|abstract|const|extends|implements|final|p(r(ivate|otected)|ublic)|internal|static)\\\\\\\\b\",\"name\":\"storage.modifier.php\"},{\"include\":\"#object\"},{\"match\":\";\",\"name\":\"punctuation.terminator.expression.php\"},{\"include\":\"#heredoc\"},{\"match\":\"\\\\\\\\.=?\",\"name\":\"keyword.operator.string.php\"},{\"match\":\"=>\",\"name\":\"keyword.operator.key.php\"},{\"match\":\"==>\",\"name\":\"keyword.operator.lambda.php\"},{\"match\":\"\\\\\\\\|>\",\"name\":\"keyword.operator.pipe.php\"},{\"match\":\"(!==|!=|===|==)\",\"name\":\"keyword.operator.comparison.php\"},{\"match\":\"=|\\\\\\\\+=|\\\\\\\\-=|\\\\\\\\*=|/=|%=|&=|\\\\\\\\|=|\\\\\\\\^=|<<=|>>=\",\"name\":\"keyword.operator.assignment.php\"},{\"match\":\"(<=|>=|<|>)\",\"name\":\"keyword.operator.comparison.php\"},{\"match\":\"(\\\\\\\\-\\\\\\\\-|\\\\\\\\+\\\\\\\\+)\",\"name\":\"keyword.operator.increment-decrement.php\"},{\"match\":\"(\\\\\\\\-|\\\\\\\\+|\\\\\\\\*|/|%)\",\"name\":\"keyword.operator.arithmetic.php\"},{\"match\":\"(!|&&|\\\\\\\\|\\\\\\\\|)\",\"name\":\"keyword.operator.logical.php\"},{\"begin\":\"(?i)\\\\\\\\b(as|is)\\\\\\\\b\\\\\\\\s+(?=[\\\\\\\\\\\\\\\\$a-z_])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.php\"}},\"end\":\"(?=[^\\\\\\\\\\\\\\\\$A-Za-z_0-9])\",\"patterns\":[{\"include\":\"#class-name\"},{\"include\":\"#variable-name\"}]},{\"match\":\"(?i)\\\\\\\\b(is|as)\\\\\\\\b\",\"name\":\"keyword.operator.type.php\"},{\"include\":\"#function-call\"},{\"match\":\"<<|>>|~|\\\\\\\\^|&|\\\\\\\\|\",\"name\":\"keyword.operator.bitwise.php\"},{\"include\":\"#numbers\"},{\"include\":\"#instantiation\"},{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.array.begin.php\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.array.end.php\"}},\"patterns\":[{\"include\":\"#language\"}]},{\"include\":\"#literal-collections\"},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.scope.begin.php\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.scope.end.php\"}},\"patterns\":[{\"include\":\"#language\"}]},{\"include\":\"#constants\"}]},\"literal-collections\":{\"patterns\":[{\"begin\":\"(Vector|ImmVector|Set|ImmSet|Map|ImmMap|Pair)\\\\\\\\s*({)\",\"beginCaptures\":{\"1\":{\"name\":\"support.class.php\"},\"2\":{\"name\":\"punctuation.section.array.begin.php\"}},\"end\":\"(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.array.end.php\"}},\"name\":\"meta.collection.literal.php\",\"patterns\":[{\"include\":\"#language\"}]}]},\"namespace\":{\"begin\":\"(?i)((namespace)|[a-z0-9_]+)?(\\\\\\\\\\\\\\\\)(?=.*?[^a-z_0-9\\\\\\\\\\\\\\\\])\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.type.namespace.php\"},\"3\":{\"name\":\"punctuation.separator.inheritance.php\"}},\"end\":\"(?i)(?=[a-z0-9_]*[^a-z0-9_\\\\\\\\\\\\\\\\])\",\"name\":\"support.other.namespace.php\",\"patterns\":[{\"match\":\"(?i)[a-z0-9_]+(?=\\\\\\\\\\\\\\\\)\",\"name\":\"entity.name.type.namespace.php\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.inheritance.php\"}},\"match\":\"(?i)(\\\\\\\\\\\\\\\\)\"}]},\"numbers\":{\"match\":\"\\\\\\\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\\\\\\\.?[0-9]*)|(\\\\\\\\.[0-9]+))((e|E)(\\\\\\\\+|-)?[0-9]+)?)\\\\\\\\b\",\"name\":\"constant.numeric.php\"},\"object\":{\"patterns\":[{\"begin\":\"(->)(\\\\\\\\$?\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.class.php\"},\"2\":{\"name\":\"punctuation.definition.variable.php\"}},\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.variable.php\"}},\"patterns\":[{\"include\":\"#language\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.operator.class.php\"},\"2\":{\"name\":\"meta.function-call.object.php\"},\"3\":{\"name\":\"variable.other.property.php\"},\"4\":{\"name\":\"punctuation.definition.variable.php\"}},\"match\":\"(->)(?:([A-Za-z_][A-Za-z_0-9]*)\\\\\\\\s*\\\\\\\\(|((\\\\\\\\$+)?[a-zA-Z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*))?\"}]},\"parameter-default-types\":{\"patterns\":[{\"include\":\"#strings\"},{\"include\":\"#numbers\"},{\"include\":\"#variables\"},{\"match\":\"=>\",\"name\":\"keyword.operator.key.php\"},{\"match\":\"=\",\"name\":\"keyword.operator.assignment.php\"},{\"include\":\"#instantiation\"},{\"begin\":\"(?xi)\\\\n\\\\\\\\s*\\\\n(?=\\\\n  [a-z_0-9\\\\\\\\\\\\\\\\]+(::)\\\\n  ([a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)?\\\\n)\",\"end\":\"(?i)(::)([a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)?\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.class.php\"},\"2\":{\"name\":\"constant.other.class.php\"}},\"patterns\":[{\"include\":\"#class-name\"}]},{\"include\":\"#constants\"}]},\"php_doc\":{\"patterns\":[{\"comment\":\"PHPDocumentor only recognises lines with an asterisk as the first non-whitespaces character\",\"match\":\"^(?!\\\\\\\\s*\\\\\\\\*).*$\\\\\\\\n?\",\"name\":\"invalid.illegal.missing-asterisk.phpdoc.php\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.phpdoc.php\"},\"3\":{\"name\":\"storage.modifier.php\"},\"4\":{\"name\":\"invalid.illegal.wrong-access-type.phpdoc.php\"}},\"match\":\"^\\\\\\\\s*\\\\\\\\*\\\\\\\\s*(@access)\\\\\\\\s+((public|private|protected|internal)|(.+))\\\\\\\\s*$\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.phpdoc.php\"},\"2\":{\"name\":\"markup.underline.link.php\"}},\"match\":\"(@xlink)\\\\\\\\s+(.+)\\\\\\\\s*$\"},{\"match\":\"\\\\\\\\@(a(bstract|uthor)|c(ategory|opyright)|example|global|internal|li(cense|nk)|pa(ckage|ram)|return|s(ee|ince|tatic|ubpackage)|t(hrows|odo)|v(ar|ersion)|uses|deprecated|final|ignore)\\\\\\\\b\",\"name\":\"keyword.other.phpdoc.php\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.phpdoc.php\"}},\"match\":\"\\\\\\\\{(@(link)).+?\\\\\\\\}\",\"name\":\"meta.tag.inline.phpdoc.php\"}]},\"regex-double-quoted\":{\"begin\":\"(?<=re)\\\\\"/(?=(\\\\\\\\\\\\\\\\.|[^\\\\\"/])++/[imsxeADSUXu]*\\\\\")\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.php\"}},\"end\":\"(/)([imsxeADSUXu]*)(\\\\\")\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.php\"}},\"name\":\"string.regexp.double-quoted.php\",\"patterns\":[{\"comment\":\"Escaped from the regexp – there can also be 2 backslashes (since 1 will escape the first)\",\"match\":\"(\\\\\\\\\\\\\\\\){1,2}[.$^\\\\\\\\[\\\\\\\\]{}]\",\"name\":\"constant.character.escape.regex.php\"},{\"include\":\"#interpolation\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.arbitrary-repetition.php\"},\"3\":{\"name\":\"punctuation.definition.arbitrary-repetition.php\"}},\"match\":\"(\\\\\\\\{)\\\\\\\\d+(,\\\\\\\\d+)?(\\\\\\\\})\",\"name\":\"string.regexp.arbitrary-repetition.php\"},{\"begin\":\"\\\\\\\\[(?:\\\\\\\\^?\\\\\\\\])?\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.character-class.php\"}},\"end\":\"\\\\\\\\]\",\"name\":\"string.regexp.character-class.php\",\"patterns\":[{\"include\":\"#interpolation\"}]},{\"match\":\"[$^+*]\",\"name\":\"keyword.operator.regexp.php\"}]},\"regex-single-quoted\":{\"begin\":\"(?<=re)'/(?=(\\\\\\\\\\\\\\\\.|[^'/])++/[imsxeADSUXu]*')\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.php\"}},\"end\":\"(/)([imsxeADSUXu]*)(')\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.php\"}},\"name\":\"string.regexp.single-quoted.php\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.arbitrary-repetition.php\"},\"3\":{\"name\":\"punctuation.definition.arbitrary-repetition.php\"}},\"match\":\"(\\\\\\\\{)\\\\\\\\d+(,\\\\\\\\d+)?(\\\\\\\\})\",\"name\":\"string.regexp.arbitrary-repetition.php\"},{\"comment\":\"Escaped from the regexp – there can also be 2 backslashes (since 1 will escape the first)\",\"match\":\"(\\\\\\\\\\\\\\\\){1,2}[.$^\\\\\\\\[\\\\\\\\]{}]\",\"name\":\"constant.character.escape.regex.php\"},{\"comment\":\"Escaped from the PHP string – there can also be 2 backslashes (since 1 will escape the first)\",\"match\":\"\\\\\\\\\\\\\\\\{1,2}[\\\\\\\\\\\\\\\\']\",\"name\":\"constant.character.escape.php\"},{\"begin\":\"\\\\\\\\[(?:\\\\\\\\^?\\\\\\\\])?\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.character-class.php\"}},\"end\":\"\\\\\\\\]\",\"name\":\"string.regexp.character-class.php\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\\\'\\\\\\\\[\\\\\\\\]]\",\"name\":\"constant.character.escape.php\"}]},{\"match\":\"[$^+*]\",\"name\":\"keyword.operator.regexp.php\"}]},\"sql-string-double-quoted\":{\"begin\":\"\\\\\"\\\\\\\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER)\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.php\"}},\"contentName\":\"source.sql.embedded.php\",\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.php\"}},\"name\":\"string.quoted.double.sql.php\",\"patterns\":[{\"comment\":\"Open parens cause the next escaped character to not be captured as an\\\\nescape character. Example: $x = \\\\\"SELECT (\\\\\")\\\\\";\",\"match\":\"\\\\\\\\(\",\"name\":\"punctuation.definition.parameters.begin.bracket.round.php\"},{\"match\":\"#(\\\\\\\\\\\\\\\\\\\\\"|[^\\\\\"])*(?=\\\\\"|$\\\\\\\\n?)\",\"name\":\"comment.line.number-sign.sql\"},{\"match\":\"--(\\\\\\\\\\\\\\\\\\\\\"|[^\\\\\"])*(?=\\\\\"|$\\\\\\\\n?)\",\"name\":\"comment.line.double-dash.sql\"},{\"match\":\"\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\"\\`']\",\"name\":\"constant.character.escape.php\"},{\"comment\":\"Unclosed strings must be captured to avoid them eating the remainder of the PHP script\\\\nSample case: $sql = \\\\\"SELECT * FROM bar WHERE foo = '\\\\\" . $variable . \\\\\"'\\\\\"\",\"match\":\"'(?=((\\\\\\\\\\\\\\\\')|[^'\\\\\"])*(\\\\\"|$))\",\"name\":\"string.quoted.single.unclosed.sql\"},{\"comment\":\"Unclosed strings must be captured to avoid them eating the remainder of the PHP script\\\\nSample case: $sql = \\\\\"SELECT * FROM bar WHERE foo = '\\\\\" . $variable . \\\\\"'\\\\\"\",\"match\":\"\\`(?=((\\\\\\\\\\\\\\\\\\`)|[^\\`\\\\\"])*(\\\\\"|$))\",\"name\":\"string.quoted.other.backtick.unclosed.sql\"},{\"begin\":\"'\",\"end\":\"'\",\"name\":\"string.quoted.single.sql\",\"patterns\":[{\"include\":\"#interpolation\"}]},{\"begin\":\"\\`\",\"end\":\"\\`\",\"name\":\"string.quoted.other.backtick.sql\",\"patterns\":[{\"include\":\"#interpolation\"}]},{\"include\":\"#interpolation\"},{\"include\":\"source.sql\"}]},\"sql-string-single-quoted\":{\"begin\":\"'\\\\\\\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER)\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.php\"}},\"contentName\":\"source.sql.embedded.php\",\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.php\"}},\"name\":\"string.quoted.single.sql.php\",\"patterns\":[{\"comment\":\"Open parens cause the next escaped character to not be captured as an\\\\nescape character. Example: $x = 'SELECT (')';\",\"match\":\"\\\\\\\\(\",\"name\":\"punctuation.definition.parameters.begin.bracket.round.php\"},{\"match\":\"#(\\\\\\\\\\\\\\\\'|[^'])*(?='|$\\\\\\\\n?)\",\"name\":\"comment.line.number-sign.sql\"},{\"match\":\"--(\\\\\\\\\\\\\\\\'|[^'])*(?='|$\\\\\\\\n?)\",\"name\":\"comment.line.double-dash.sql\"},{\"match\":\"\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\\\'\\`\\\\\"]\",\"name\":\"constant.character.escape.php\"},{\"comment\":\"Unclosed strings must be captured to avoid them eating the remainder of the PHP script\\\\nSample case: $sql = \\\\\"SELECT * FROM bar WHERE foo = '\\\\\" . $variable . \\\\\"'\\\\\"\",\"match\":\"\\`(?=((\\\\\\\\\\\\\\\\\\`)|[^\\`'])*('|$))\",\"name\":\"string.quoted.other.backtick.unclosed.sql\"},{\"comment\":\"Unclosed strings must be captured to avoid them eating the remainder of the PHP script\\\\nSample case: $sql = \\\\\"SELECT * FROM bar WHERE foo = '\\\\\" . $variable . \\\\\"'\\\\\"\",\"match\":\"\\\\\"(?=((\\\\\\\\\\\\\\\\\\\\\")|[^\\\\\"'])*('|$))\",\"name\":\"string.quoted.double.unclosed.sql\"},{\"include\":\"source.sql\"}]},\"string-double-quoted\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.php\"}},\"comment\":\"This contentName is just to allow the usage of “select scope” to select the string contents first, then the string with quotes\",\"contentName\":\"meta.string-contents.quoted.double.php\",\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.php\"}},\"name\":\"string.quoted.double.php\",\"patterns\":[{\"include\":\"#interpolation\"}]},\"string-single-quoted\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.php\"}},\"contentName\":\"meta.string-contents.quoted.single.php\",\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.php\"}},\"name\":\"string.quoted.single.php\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\\\']\",\"name\":\"constant.character.escape.php\"}]},\"strings\":{\"patterns\":[{\"include\":\"#regex-double-quoted\"},{\"include\":\"#sql-string-double-quoted\"},{\"include\":\"#string-double-quoted\"},{\"include\":\"#regex-single-quoted\"},{\"include\":\"#sql-string-single-quoted\"},{\"include\":\"#string-single-quoted\"}]},\"support\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\bapc_(s(tore|ma_info)|c(ompile_file|lear_cache|a(s|che_info))|inc|de(c|fine_constants|lete(_file)?)|exists|fetch|load_constants|add|bin_(dump(file)?|load(file)?))\\\\\\\\b\",\"name\":\"support.function.apc.php\"},{\"match\":\"(?i)\\\\\\\\b(s(huffle|izeof|ort)|n(ext|at(sort|casesort))|c(o(unt|mpact)|urrent)|in_array|u(sort|ksort|asort)|p(os|rev)|e(nd|ach|xtract)|k(sort|ey|rsort)|list|a(sort|r(sort|ray(_(s(hift|um|plice|earch|lice)|c(h(unk|ange_key_case)|o(unt_values|mbine))|intersect(_(u(key|assoc)|key|assoc))?|diff(_(u(key|assoc)|key|assoc))?|u(n(shift|ique)|intersect(_(uassoc|assoc))?|diff(_(uassoc|assoc))?)|p(op|ush|ad|roduct)|values|key(s|_exists)|f(il(ter|l(_keys)?)|lip)|walk(_recursive)?|r(e(duce|place(_recursive)?|verse)|and)|m(ultisort|erge(_recursive)?|ap)))?))|r(sort|eset|ange))\\\\\\\\b\",\"name\":\"support.function.array.php\"},{\"match\":\"(?i)\\\\\\\\b(s(how_source|ys_getloadavg|leep)|highlight_(string|file)|con(stant|nection_(status|timeout|aborted))|time_(sleep_until|nanosleep)|ignore_user_abort|d(ie|efine(d)?)|u(sleep|n(iqid|pack))|__halt_compiler|p(hp_(strip_whitespace|check_syntax)|ack)|e(val|xit)|get_browser)\\\\\\\\b\",\"name\":\"support.function.basic_functions.php\"},{\"match\":\"(?i)\\\\\\\\bbc(s(cale|ub|qrt)|comp|div|pow(mod)?|add|m(od|ul))\\\\\\\\b\",\"name\":\"support.function.bcmath.php\"},{\"match\":\"(?i)\\\\\\\\bbz(c(ompress|lose)|open|decompress|err(str|no|or)|flush|write|read)\\\\\\\\b\",\"name\":\"support.function.bz2.php\"},{\"match\":\"(?i)\\\\\\\\b(GregorianToJD|cal_(to_jd|info|days_in_month|from_jd)|unixtojd|jdto(unix|jewish)|easter_da(ys|te)|J(ulianToJD|ewishToJD|D(MonthName|To(Gregorian|Julian|French)|DayOfWeek))|FrenchToJD)\\\\\\\\b\",\"name\":\"support.function.calendar.php\"},{\"match\":\"(?i)\\\\\\\\b(c(lass_(exists|alias)|all_user_method(_array)?)|trait_exists|i(s_(subclass_of|a)|nterface_exists)|__autoload|property_exists|get_(c(lass(_(vars|methods))?|alled_class)|object_vars|declared_(classes|traits|interfaces)|parent_class)|method_exists)\\\\\\\\b\",\"name\":\"support.function.classobj.php\"},{\"match\":\"(?i)\\\\\\\\b(com_(set|create_guid|i(senum|nvoke)|pr(int_typeinfo|op(set|put|get))|event_sink|load(_typelib)?|addref|release|get(_active_object)?|message_pump)|variant_(s(ub|et(_type)?)|n(ot|eg)|c(a(st|t)|mp)|i(nt|div|mp)|or|d(iv|ate_(to_timestamp|from_timestamp))|pow|eqv|fix|a(nd|dd|bs)|round|get_type|xor|m(od|ul)))\\\\\\\\b\",\"name\":\"support.function.com.php\"},{\"match\":\"(?i)\\\\\\\\bctype_(space|cntrl|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit)\\\\\\\\b\",\"name\":\"support.function.ctype.php\"},{\"match\":\"(?i)\\\\\\\\bcurl_(setopt(_array)?|c(opy_handle|lose)|init|e(rr(no|or)|xec)|version|getinfo|multi_(select|close|in(it|fo_read)|exec|add_handle|remove_handle|getcontent))\\\\\\\\b\",\"name\":\"support.function.curl.php\"},{\"match\":\"(?i)\\\\\\\\b(str(totime|ptime|ftime)|checkdate|time(zone_(name_(from_abbr|get)|transitions_get|identifiers_list|o(pen|ffset_get)|version_get|location_get|abbreviations_list))?|idate|date(_(su(n(set|_info|rise)|b)|create(_from_format)?|time(stamp_(set|get)|zone_(set|get)|_set)|i(sodate_set|nterval_(create_from_date_string|format))|offset_get|d(iff|efault_timezone_(set|get)|ate_set)|parse(_from_format)?|format|add|get_last_errors|modify))?|localtime|g(et(timeofday|date)|m(strftime|date|mktime))|m(icrotime|ktime))\\\\\\\\b\",\"name\":\"support.function.datetime.php\"},{\"match\":\"(?i)\\\\\\\\bdba_(sync|handlers|nextkey|close|insert|op(timize|en)|delete|popen|exists|key_split|f(irstkey|etch)|list|replace)\\\\\\\\b\",\"name\":\"support.function.dba.php\"},{\"match\":\"(?i)\\\\\\\\bdbx_(sort|c(o(nnect|mpare)|lose)|e(scape_string|rror)|query|fetch_row)\\\\\\\\b\",\"name\":\"support.function.dbx.php\"},{\"match\":\"(?i)\\\\\\\\b(scandir|c(h(dir|root)|losedir)|opendir|dir|re(winddir|addir)|getcwd)\\\\\\\\b\",\"name\":\"support.function.dir.php\"},{\"match\":\"(?i)\\\\\\\\bdotnet_load\\\\\\\\b\",\"name\":\"support.function.dotnet.php\"},{\"match\":\"(?i)\\\\\\\\beio_(s(y(nc(_file_range|fs)?|mlink)|tat(vfs)?|e(ndfile|t_m(in_parallel|ax_(idle|p(oll_(time|reqs)|arallel)))|ek))|n(threads|op|pending|re(qs|ady))|c(h(own|mod)|ustom|lose|ancel)|truncate|init|open|dup2|u(nlink|time)|poll|event_loop|f(s(ync|tat(vfs)?)|ch(own|mod)|truncate|datasync|utime|allocate)|write|l(stat|ink)|r(e(name|a(d(dir|link|ahead)?|lpath))|mdir)|g(et_(event_stream|last_error)|rp(_(cancel|limit|add))?)|mk(nod|dir)|busy)\\\\\\\\b\",\"name\":\"support.function.eio.php\"},{\"match\":\"(?i)\\\\\\\\benchant_(dict_(s(tore_replacement|uggest)|check|is_in_session|describe|quick_check|add_to_(session|personal)|get_error)|broker_(set_ordering|init|d(ict_exists|escribe)|free(_dict)?|list_dicts|request_(dict|pwl_dict)|get_error))\\\\\\\\b\",\"name\":\"support.function.enchant.php\"},{\"match\":\"(?i)\\\\\\\\b(s(plit(i)?|ql_regcase)|ereg(i(_replace)?|_replace)?)\\\\\\\\b\",\"name\":\"support.function.ereg.php\"},{\"match\":\"(?i)\\\\\\\\b(set_e(rror_handler|xception_handler)|trigger_error|debug_(print_backtrace|backtrace)|user_error|error_(log|reporting|get_last)|restore_e(rror_handler|xception_handler))\\\\\\\\b\",\"name\":\"support.function.errorfunc.php\"},{\"match\":\"(?i)\\\\\\\\b(s(hell_exec|ystem)|p(assthru|roc_(nice|close|terminate|open|get_status))|e(scapeshell(cmd|arg)|xec))\\\\\\\\b\",\"name\":\"support.function.exec.php\"},{\"match\":\"(?i)\\\\\\\\b(exif_(t(humbnail|agname)|imagetype|read_data)|read_exif_data)\\\\\\\\b\",\"name\":\"support.function.exif.php\"},{\"match\":\"(?i)\\\\\\\\b(s(ymlink|tat|et_file_buffer)|c(h(own|grp|mod)|opy|learstatcache)|t(ouch|empnam|mpfile)|is_(dir|uploaded_file|executable|file|writ(eable|able)|link|readable)|d(i(sk(_(total_space|free_space)|freespace)|rname)|elete)|u(nlink|mask)|p(close|open|a(thinfo|rse_ini_(string|file)))|f(s(canf|tat|eek)|nmatch|close|t(ell|runcate)|ile(size|ctime|type|inode|owner|_(put_contents|exists|get_contents)|perms|atime|group|mtime)?|open|p(ut(s|csv)|assthru)|eof|flush|write|lock|read|get(s(s)?|c(sv)?))|l(stat|ch(own|grp)|ink(info)?)|r(e(name|wind|a(d(file|link)|lpath(_cache_(size|get))?))|mdir)|glob|m(ove_uploaded_file|kdir)|basename)\\\\\\\\b\",\"name\":\"support.function.file.php\"},{\"match\":\"(?i)\\\\\\\\b(finfo_(set_flags|close|open|file|buffer)|mime_content_type)\\\\\\\\b\",\"name\":\"support.function.fileinfo.php\"},{\"match\":\"(?i)\\\\\\\\bfilter_(has_var|i(nput(_array)?|d)|var(_array)?|list)\\\\\\\\b\",\"name\":\"support.function.filter.php\"},{\"match\":\"(?i)\\\\\\\\b(c(all_user_func(_array)?|reate_function)|unregister_tick_function|f(orward_static_call(_array)?|unc(tion_exists|_(num_args|get_arg(s)?)))|register_(shutdown_function|tick_function)|get_defined_functions)\\\\\\\\b\",\"name\":\"support.function.funchand.php\"},{\"match\":\"(?i)\\\\\\\\b(ngettext|textdomain|d(ngettext|c(ngettext|gettext)|gettext)|gettext|bind(textdomain|_textdomain_codeset))\\\\\\\\b\",\"name\":\"support.function.gettext.php\"},{\"match\":\"(?i)\\\\\\\\bgmp_(s(can(1|0)|trval|ign|ub|etbit|qrt(rem)?)|hamdist|ne(g|xtprime)|c(om|lrbit|mp)|testbit|in(tval|it|vert)|or|div(_(q(r)?|r)|exact)?|jacobi|p(o(pcount|w(m)?)|erfect_square|rob_prime)|fact|legendre|a(nd|dd|bs)|random|gcd(ext)?|xor|m(od|ul))\\\\\\\\b\",\"name\":\"support.function.gmp.php\"},{\"match\":\"(?i)\\\\\\\\bhash(_(hmac(_file)?|copy|init|update(_(stream|file))?|pbkdf2|fi(nal|le)|algos))?\\\\\\\\b\",\"name\":\"support.function.hash.php\"},{\"match\":\"(?i)\\\\\\\\b(http_(s(upport|end_(st(atus|ream)|content_(type|disposition)|data|file|last_modified))|head|negotiate_(c(harset|ontent_type)|language)|c(hunked_decode|ache_(etag|last_modified))|throttle|inflate|d(eflate|ate)|p(ost_(data|fields)|ut_(stream|data|file)|ersistent_handles_(c(ount|lean)|ident)|arse_(headers|cookie|params|message))|re(direct|quest(_(method_(name|unregister|exists|register)|body_encode))?)|get(_request_(headers|body(_stream)?))?|match_(etag|request_header|modified)|build_(str|cookie|url))|ob_(inflatehandler|deflatehandler|etaghandler))\\\\\\\\b\",\"name\":\"support.function.http.php\"},{\"match\":\"(?i)\\\\\\\\b(iconv(_(s(tr(pos|len|rpos)|ubstr|et_encoding)|get_encoding|mime_(decode(_headers)?|encode)))?|ob_iconv_handler)\\\\\\\\b\",\"name\":\"support.function.iconv.php\"},{\"match\":\"(?i)\\\\\\\\biis_(s(t(op_serv(ice|er)|art_serv(ice|er))|et_(s(cript_map|erver_rights)|dir_security|app_settings))|add_server|remove_server|get_(s(cript_map|erv(ice_state|er_(rights|by_(comment|path))))|dir_security))\\\\\\\\b\",\"name\":\"support.function.iisfunc.php\"},{\"match\":\"(?i)\\\\\\\\b(i(ptc(parse|embed)|mage(s(y|tring(up)?|et(style|t(hickness|ile)|pixel|brush)|avealpha|x)|c(har(up)?|o(nvolution|py(res(ized|ampled)|merge(gray)?)?|lor(s(total|et|forindex)|closest(hwb|alpha)?|transparent|deallocate|exact(alpha)?|a(t|llocate(alpha)?)|resolve(alpha)?|match))|reate(truecolor|from(string|jpeg|png|wbmp|g(if|d(2(part)?)?)|x(pm|bm)))?)|t(ypes|tf(text|bbox)|ruecolortopalette)|i(struecolor|nterlace)|2wbmp|d(estroy|ashedline)|jpeg|_type_to_(extension|mime_type)|p(s(slantfont|text|e(ncodefont|xtendfont)|freefont|loadfont|bbox)|ng|olygon|alettecopy)|ellipse|f(t(text|bbox)|il(ter|l(toborder|ed(polygon|ellipse|arc|rectangle))?)|ont(height|width))|wbmp|l(ine|oadfont|ayereffect)|a(ntialias|lphablending|rc)|r(otate|ectangle)|g(if|d(2)?|ammacorrect|rab(screen|window))|xbm))|jpeg2wbmp|png2wbmp|g(d_info|etimagesize(fromstring)?))\\\\\\\\b\",\"name\":\"support.function.image.php\"},{\"match\":\"(?i)\\\\\\\\b(s(ys_get_temp_dir|et_(time_limit|include_path|magic_quotes_runtime))|ini_(set|alter|restore|get(_all)?)|zend_(thread_id|version|logo_guid)|dl|p(hp(credits|info|_(sapi_name|ini_(scanned_files|loaded_file)|uname|logo_guid)|version)|utenv)|extension_loaded|version_compare|assert(_options)?|restore_include_path|g(c_(collect_cycles|disable|enable(d)?)|et(opt|_(c(urrent_user|fg_var)|include(d_files|_path)|defined_constants|extension_funcs|loaded_extensions|required_files|magic_quotes_(runtime|gpc))|env|lastmod|rusage|my(inode|uid|pid|gid)))|m(emory_get_(usage|peak_usage)|a(in|gic_quotes_runtime)))\\\\\\\\b\",\"name\":\"support.function.info.php\"},{\"match\":\"(?i)\\\\\\\\bibase_(se(t_event_handler|rv(ice_(detach|attach)|er_info))|n(um_(params|fields)|ame_result)|c(o(nnect|mmit(_ret)?)|lose)|trans|d(elete_user|rop_db|b_info)|p(connect|aram_info|repare)|e(rr(code|msg)|xecute)|query|f(ield_info|etch_(object|assoc|row)|ree_(event_handler|query|result))|wait_event|a(dd_user|ffected_rows)|r(ollback(_ret)?|estore)|gen_id|m(odify_user|aintain_db)|b(lob_(c(lose|ancel|reate)|i(nfo|mport)|open|echo|add|get)|ackup))\\\\\\\\b\",\"name\":\"support.function.interbase.php\"},{\"match\":\"(?i)\\\\\\\\b(n(ormalizer_(normalize|is_normalized)|umfmt_(set_(symbol|text_attribute|pattern|attribute)|create|parse(_currency)?|format(_currency)?|get_(symbol|text_attribute|pattern|error_(code|message)|locale|attribute)))|collator_(s(ort(_with_sort_keys)?|et_(strength|attribute))|c(ompare|reate)|asort|get_(s(trength|ort_key)|error_(code|message)|locale|attribute))|transliterator_(create(_(inverse|from_rules))?|transliterate|list_ids|get_error_(code|message))|i(ntl_(is_failure|error_name|get_error_(code|message))|dn_to_(u(nicode|tf8)|ascii))|datefmt_(set_(calendar|timezone(_id)?|pattern|lenient)|create|is_lenient|parse|format(_object)?|localtime|get_(calendar(_object)?|time(type|zone(_id)?)|datetype|pattern|error_(code|message)|locale))|locale_(set_default|compose|parse|filter_matches|lookup|accept_from_http|get_(script|d(isplay_(script|name|variant|language|region)|efault)|primary_language|keywords|all_variants|region))|resourcebundle_(c(ount|reate)|locales|get(_error_(code|message))?)|grapheme_(s(tr(str|i(str|pos)|pos|len|r(ipos|pos))|ubstr)|extract)|msgfmt_(set_pattern|create|parse(_message)?|format(_message)?|get_(pattern|error_(code|message)|locale)))\\\\\\\\b\",\"name\":\"support.function.intl.php\"},{\"match\":\"(?i)\\\\\\\\bjson_(decode|encode|last_error)\\\\\\\\b\",\"name\":\"support.function.json.php\"},{\"match\":\"(?i)\\\\\\\\bldap_(s(tart_tls|ort|e(t_(option|rebind_proc)|arch)|asl_bind)|next_(entry|attribute|reference)|c(o(n(nect|trol_paged_result(_response)?)|unt_entries|mpare)|lose)|t61_to_8859|d(n2ufn|elete)|8859_to_t61|unbind|parse_re(sult|ference)|e(rr(no|2str|or)|xplode_dn)|f(irst_(entry|attribute|reference)|ree_result)|list|add|re(name|ad)|get_(option|dn|entries|values(_len)?|attributes)|mod(ify|_(del|add|replace))|bind)\\\\\\\\b\",\"name\":\"support.function.ldap.php\"},{\"match\":\"(?i)\\\\\\\\blibxml_(set_(streams_context|external_entity_loader)|clear_errors|disable_entity_loader|use_internal_errors|get_(errors|last_error))\\\\\\\\b\",\"name\":\"support.function.libxml.php\"},{\"match\":\"(?i)\\\\\\\\b(ezmlm_hash|mail)\\\\\\\\b\",\"name\":\"support.function.mail.php\"},{\"match\":\"(?i)\\\\\\\\b(s(in(h)?|qrt|rand)|h(ypot|exdec)|c(os(h)?|eil)|tan(h)?|is_(nan|infinite|finite)|octdec|de(c(hex|oct|bin)|g2rad)|p(i|ow)|exp(m1)?|f(loor|mod)|l(cg_value|og(1(p|0))?)|a(sin(h)?|cos(h)?|tan(h|2)?|bs)|r(ound|a(nd|d2deg))|getrandmax|m(t_(srand|rand|getrandmax)|in|ax)|b(indec|ase_convert))\\\\\\\\b\",\"name\":\"support.function.math.php\"},{\"match\":\"(?i)\\\\\\\\bmb_(s(tr(str|cut|to(upper|lower)|i(str|pos|mwidth)|pos|width|len|r(chr|i(chr|pos)|pos))|ubst(itute_character|r(_count)?)|plit|end_mail)|http_(input|output)|c(heck_encoding|onvert_(case|encoding|variables|kana))|internal_encoding|output_handler|de(code_(numericentity|mimeheader)|tect_(order|encoding))|p(arse_str|referred_mime_name)|e(ncod(ing_aliases|e_(numericentity|mimeheader))|reg(i(_replace)?|_(search(_(setpos|init|pos|regs|get(pos|regs)))?|replace(_callback)?|match))?)|l(ist_encodings|anguage)|regex_(set_options|encoding)|get_info)\\\\\\\\b\",\"name\":\"support.function.mbstring.php\"},{\"match\":\"(?i)\\\\\\\\bm(crypt_(c(fb|reate_iv|bc)|ofb|decrypt|e(nc(_(self_test|is_block_(algorithm(_mode)?|mode)|get_(supported_key_sizes|iv_size|key_size|algorithms_name|modes_name|block_size))|rypt)|cb)|list_(algorithms|modes)|ge(neric(_(init|deinit|end))?|t_(cipher_name|iv_size|key_size|block_size))|module_(self_test|close|is_block_(algorithm(_mode)?|mode)|open|get_(supported_key_sizes|algo_(key_size|block_size))))|decrypt_generic)\\\\\\\\b\",\"name\":\"support.function.mcrypt.php\"},{\"match\":\"(?i)\\\\\\\\bmemcache_debug\\\\\\\\b\",\"name\":\"support.function.memcache.php\"},{\"match\":\"(?i)\\\\\\\\bmhash(_(count|keygen_s2k|get_(hash_name|block_size)))?\\\\\\\\b\",\"name\":\"support.function.mhash.php\"},{\"match\":\"(?i)\\\\\\\\bbson_(decode|encode)\\\\\\\\b\",\"name\":\"support.function.mongo.php\"},{\"match\":\"(?i)\\\\\\\\bmysql_(s(tat|e(t_charset|lect_db))|num_(fields|rows)|c(onnect|l(ient_encoding|ose)|reate_db)|t(hread_id|ablename)|in(sert_id|fo)|d(ata_seek|rop_db|b_(name|query))|unbuffered_query|p(connect|ing)|e(scape_string|rr(no|or))|query|f(ield_(seek|name|t(ype|able)|flags|len)|etch_(object|field|lengths|a(ssoc|rray)|row)|ree_result)|list_(tables|dbs|processes|fields)|affected_rows|re(sult|al_escape_string)|get_(server_info|host_info|client_info|proto_info))\\\\\\\\b\",\"name\":\"support.function.mysql.php\"},{\"match\":\"(?i)\\\\\\\\bmysqli_(s(sl_set|t(ore_result|at|mt_(s(tore_result|end_long_data)|next_result|close|init|data_seek|prepare|execute|f(etch|ree_result)|attr_(set|get)|res(ult_metadata|et)|get_(warnings|result)|more_results|bind_(param|result)))|e(nd_(query|long_data)|t_(charset|opt|local_infile_(handler|default))|lect_db)|lave_query)|next_result|c(ha(nge_user|racter_set_name)|o(nnect|mmit)|l(ient_encoding|ose))|thread_safe|init|options|d(isable_r(pl_parse|eads_from_master)|ump_debug_info|ebug|ata_seek)|use_result|p(ing|oll|aram_count|repare)|e(scape_string|nable_r(pl_parse|eads_from_master)|xecute|mbedded_server_(start|end))|kill|query|f(ield_seek|etch(_(object|field(s|_direct)?|a(ssoc|ll|rray)|row))?|ree_result)|autocommit|r(ollback|pl_(p(arse_enabled|robe)|query_type)|e(port|fresh|a(p_async_query|l_(connect|escape_string|query))))|get_(c(harset|onnection_stats|lient_(stats|info|version)|ache_stats)|warnings|metadata)|m(ore_results|ulti_query|aster_query)|bind_(param|result))\\\\\\\\b\",\"name\":\"support.function.mysqli.php\"},{\"match\":\"(?i)\\\\\\\\bmysqlnd_memcache_(set|get_config)\\\\\\\\b\",\"name\":\"support.function.mysqlnd-memcache.php\"},{\"match\":\"(?i)\\\\\\\\bmysqlnd_ms_(set_(user_pick_server|qos)|query_is_select|get_(stats|last_(used_connection|gtid))|match_wild)\\\\\\\\b\",\"name\":\"support.function.mysqlnd-ms.php\"},{\"match\":\"(?i)\\\\\\\\bmysqlnd_qc_(set_(storage_handler|cache_condition|is_select|user_handlers)|clear_cache|get_(normalized_query_trace_log|c(ore_stats|ache_info)|query_trace_log|available_handlers))\\\\\\\\b\",\"name\":\"support.function.mysqlnd-qc.php\"},{\"match\":\"(?i)\\\\\\\\bmysqlnd_uh_(set_(statement_proxy|connection_proxy)|convert_to_mysqlnd)\\\\\\\\b\",\"name\":\"support.function.mysqlnd-uh.php\"},{\"match\":\"(?i)\\\\\\\\b(s(yslog|ocket_(set_(timeout|blocking)|get_status)|et(cookie|rawcookie))|h(ttp_response_code|eader(s_(sent|list)|_re(gister_callback|move))?)|c(heckdnsrr|loselog)|i(net_(ntop|pton)|p2long)|openlog|d(ns_(check_record|get_(record|mx))|efine_syslog_variables)|pfsockopen|fsockopen|long2ip|get(servby(name|port)|host(name|by(name(l)?|addr))|protobyn(umber|ame)|mxrr))\\\\\\\\b\",\"name\":\"support.function.network.php\"},{\"match\":\"(?i)\\\\\\\\bnsapi_(virtual|re(sponse_headers|quest_headers))\\\\\\\\b\",\"name\":\"support.function.nsapi.php\"},{\"match\":\"(?i)\\\\\\\\b(deaggregate|aggregat(ion_info|e(_(info|properties(_by_(list|regexp))?|methods(_by_(list|regexp))?))?))\\\\\\\\b\",\"name\":\"support.function.objaggregation.php\"},{\"match\":\"(?i)\\\\\\\\boci(s(tatementtype|e(tprefetch|rverversion)|avelob(file)?)|n(umcols|ew(c(ollection|ursor)|descriptor)|logon)|c(o(l(umn(s(cale|ize)|name|type(raw)?|isnull|precision)|l(size|trim|a(ssign(elem)?|ppend)|getelem|max))|mmit)|loselob|ancel)|internaldebug|definebyname|_(s(tatement_type|e(t_(client_i(nfo|dentifier)|prefetch|edition|action|module_name)|rver_version))|n(um_(fields|rows)|ew_(c(o(nnect|llection)|ursor)|descriptor))|c(o(nnect|mmit)|l(ient_version|ose)|ancel)|internal_debug|define_by_name|p(connect|a(ssword_change|rse))|e(rror|xecute)|f(ield_(s(cale|ize)|name|type(_raw)?|is_null|precision)|etch(_(object|a(ssoc|ll|rray)|row))?|ree_(statement|descriptor))|lob_(copy|is_equal)|r(ollback|esult)|bind_(array_by_name|by_name))|p(logon|arse)|e(rror|xecute)|f(etch(statement|into)?|ree(statement|c(ollection|ursor)|desc))|write(temporarylob|lobtofile)|lo(adlob|go(n|ff))|r(o(wcount|llback)|esult)|bindbyname)\\\\\\\\b\",\"name\":\"support.function.oci8.php\"},{\"match\":\"(?i)\\\\\\\\bopenssl_(s(ign|eal)|c(sr_(sign|new|export(_to_file)?|get_(subject|public_key))|ipher_iv_length)|open|d(h_compute_key|igest|ecrypt)|p(ublic_(decrypt|encrypt)|k(cs(12_(export(_to_file)?|read)|7_(sign|decrypt|encrypt|verify))|ey_(new|export(_to_file)?|free|get_(details|p(ublic|rivate))))|rivate_(decrypt|encrypt))|e(ncrypt|rror_string)|verify|free_key|random_pseudo_bytes|get_(cipher_methods|p(ublickey|rivatekey)|md_methods)|x509_(check(_private_key|purpose)|parse|export(_to_file)?|free|read))\\\\\\\\b\",\"name\":\"support.function.openssl.php\"},{\"match\":\"(?i)\\\\\\\\b(o(utput_(add_rewrite_var|reset_rewrite_vars)|b_(start|clean|implicit_flush|end_(clean|flush)|flush|list_handlers|g(zhandler|et_(status|c(ontents|lean)|flush|le(ngth|vel)))))|flush)\\\\\\\\b\",\"name\":\"support.function.output.php\"},{\"match\":\"(?i)\\\\\\\\bpassword_(hash|needs_rehash|verify|get_info)\\\\\\\\b\",\"name\":\"support.function.password.php\"},{\"match\":\"(?i)\\\\\\\\bpcntl_(s(ig(nal(_dispatch)?|timedwait|procmask|waitinfo)|etpriority)|exec|fork|w(stopsig|termsig|if(s(topped|ignaled)|exited)|exitstatus|ait(pid)?)|alarm|getpriority)\\\\\\\\b\",\"name\":\"support.function.pcntl.php\"},{\"match\":\"(?i)\\\\\\\\bpg_(se(nd_(prepare|execute|query(_params)?)|t_(client_encoding|error_verbosity)|lect)|host|num_(fields|rows)|c(o(n(nect(ion_(status|reset|busy))?|vert)|py_(to|from))|l(ient_encoding|ose)|ancel_query)|t(ty|ra(nsaction_status|ce))|insert|options|d(elete|bname)|u(n(trace|escape_bytea)|pdate)|p(connect|ing|ort|ut_line|arameter_status|repare)|e(scape_(string|identifier|literal|bytea)|nd_copy|xecute)|version|query(_params)?|f(ield_(size|n(um|ame)|t(ype(_oid)?|able)|is_null|prtlen)|etch_(object|a(ssoc|ll(_columns)?|rray)|r(ow|esult))|ree_result)|l(o_(seek|c(lose|reate)|tell|import|open|unlink|export|write|read(_all)?)|ast_(notice|oid|error))|affected_rows|result_(s(tatus|eek)|error(_field)?)|get_(notify|pid|result)|meta_data)\\\\\\\\b\",\"name\":\"support.function.pgsql.php\"},{\"match\":\"(?i)\\\\\\\\b(virtual|apache_(setenv|note|child_terminate|lookup_uri|re(s(ponse_headers|et_timeout)|quest_headers)|get(_(version|modules)|env))|getallheaders)\\\\\\\\b\",\"name\":\"support.function.php_apache.php\"},{\"match\":\"(?i)\\\\\\\\bdom_import_simplexml\\\\\\\\b\",\"name\":\"support.function.php_dom.php\"},{\"match\":\"(?i)\\\\\\\\bftp_(s(sl_connect|ystype|i(te|ze)|et_option)|n(list|b_(continue|put|f(put|get)|get))|c(h(dir|mod)|onnect|dup|lose)|delete|p(ut|wd|asv)|exec|quit|f(put|get)|login|alloc|r(ename|aw(list)?|mdir)|get(_option)?|m(dtm|kdir))\\\\\\\\b\",\"name\":\"support.function.php_ftp.php\"},{\"match\":\"(?i)\\\\\\\\bimap_(s(can(mailbox)?|tatus|ort|ubscribe|e(t(_quota|flag_full|acl)|arch)|avebody)|header(s|info)?|num_(recent|msg)|c(heck|l(ose|earflag_full)|reate(mailbox)?)|t(hread|imeout)|open|delete(mailbox)?|8bit|u(n(subscribe|delete)|tf(7_(decode|encode)|8)|id)|ping|e(rrors|xpunge)|qprint|fetch(structure|header|text|_overview|mime|body)|l(sub|ist(s(can|ubscribed)|mailbox)?|ast_error)|a(ppend|lerts)|r(e(name(mailbox)?|open)|fc822_(parse_(headers|adrlist)|write_address))|g(c|et(subscribed|_quota(root)?|acl|mailboxes))|m(sgno|ime_header_decode|ail(_(co(py|mpose)|move)|boxmsginfo)?)|b(inary|ody(struct)?|ase64))\\\\\\\\b\",\"name\":\"support.function.php_imap.php\"},{\"match\":\"(?i)\\\\\\\\bmssql_(select_db|n(um_(fields|rows)|ext_result)|c(onnect|lose)|init|data_seek|pconnect|execute|query|f(ield_(seek|name|type|length)|etch_(object|field|a(ssoc|rray)|row|batch)|ree_(statement|result))|r(ows_affected|esult)|g(uid_string|et_last_message)|min_(error_severity|message_severity)|bind)\\\\\\\\b\",\"name\":\"support.function.php_mssql.php\"},{\"match\":\"(?i)\\\\\\\\bodbc_(s(tatistics|pecialcolumns|etoption)|n(um_(fields|rows)|ext_result)|c(o(nnect|lumn(s|privileges)|mmit)|ursor|lose(_all)?)|table(s|privileges)|d(o|ata_source)|p(connect|r(imarykeys|ocedure(s|columns)|epare))|e(rror(msg)?|xec(ute)?)|f(ield_(scale|n(um|ame)|type|precision|len)|oreignkeys|etch_(into|object|array|row)|ree_result)|longreadlen|autocommit|r(ollback|esult(_all)?)|gettypeinfo|binmode)\\\\\\\\b\",\"name\":\"support.function.php_odbc.php\"},{\"match\":\"(?i)\\\\\\\\bpreg_(split|quote|filter|last_error|replace(_callback)?|grep|match(_all)?)\\\\\\\\b\",\"name\":\"support.function.php_pcre.php\"},{\"match\":\"(?i)\\\\\\\\b(spl_(classes|object_hash|autoload(_(call|unregister|extensions|functions|register))?)|class_(implements|uses|parents)|iterator_(count|to_array|apply))\\\\\\\\b\",\"name\":\"support.function.php_spl.php\"},{\"match\":\"(?i)\\\\\\\\bzip_(close|open|entry_(name|c(ompress(ionmethod|edsize)|lose)|open|filesize|read)|read)\\\\\\\\b\",\"name\":\"support.function.php_zip.php\"},{\"match\":\"(?i)\\\\\\\\bposix_(s(trerror|et(sid|uid|pgid|e(uid|gid)|gid))|ctermid|t(tyname|imes)|i(satty|nitgroups)|uname|errno|kill|access|get(sid|cwd|uid|_last_error|p(id|pid|w(nam|uid)|g(id|rp))|e(uid|gid)|login|rlimit|g(id|r(nam|oups|gid)))|mk(nod|fifo))\\\\\\\\b\",\"name\":\"support.function.posix.php\"},{\"match\":\"(?i)\\\\\\\\bset(threadtitle|proctitle)\\\\\\\\b\",\"name\":\"support.function.proctitle.php\"},{\"match\":\"(?i)\\\\\\\\bpspell_(s(tore_replacement|uggest|ave_wordlist)|new(_(config|personal))?|c(heck|onfig_(save_repl|create|ignore|d(ict_dir|ata_dir)|personal|r(untogether|epl)|mode)|lear_session)|add_to_(session|personal))\\\\\\\\b\",\"name\":\"support.function.pspell.php\"},{\"match\":\"(?i)\\\\\\\\breadline(_(c(ompletion_function|lear_history|allback_(handler_(install|remove)|read_char))|info|on_new_line|write_history|list_history|add_history|re(display|ad_history)))?\\\\\\\\b\",\"name\":\"support.function.readline.php\"},{\"match\":\"(?i)\\\\\\\\brecode(_(string|file))?\\\\\\\\b\",\"name\":\"support.function.recode.php\"},{\"match\":\"(?i)\\\\\\\\brrd_(create|tune|info|update|error|version|f(irst|etch)|last(update)?|restore|graph|xport)\\\\\\\\b\",\"name\":\"support.function.rrd.php\"},{\"match\":\"(?i)\\\\\\\\b(s(hm_(has_var|detach|put_var|attach|remove(_var)?|get_var)|em_(acquire|re(lease|move)|get))|ftok|msg_(s(tat_queue|e(nd|t_queue))|queue_exists|re(ceive|move_queue)|get_queue))\\\\\\\\b\",\"name\":\"support.function.sem.php\"},{\"match\":\"(?i)\\\\\\\\bsession_(s(ta(tus|rt)|et_(save_handler|cookie_params)|ave_path)|name|c(ommit|ache_(expire|limiter))|i(s_registered|d)|de(stroy|code)|un(set|register)|encode|write_close|reg(ister(_shutdown)?|enerate_id)|get_cookie_params|module_name)\\\\\\\\b\",\"name\":\"support.function.session.php\"},{\"match\":\"(?i)\\\\\\\\bshmop_(size|close|open|delete|write|read)\\\\\\\\b\",\"name\":\"support.function.shmop.php\"},{\"match\":\"(?i)\\\\\\\\bsimplexml_(import_dom|load_(string|file))\\\\\\\\b\",\"name\":\"support.function.simplexml.php\"},{\"match\":\"(?i)\\\\\\\\bsnmp(set|2_(set|walk|real_walk|get(next)?)|_(set_(oid_(numeric_print|output_format)|enum_print|valueretrieval|quick_print)|read_mib|get_(valueretrieval|quick_print))|3_(set|walk|real_walk|get(next)?)|walk(oid)?|realwalk|get(next)?)\\\\\\\\b\",\"name\":\"support.function.snmp.php\"},{\"match\":\"(?i)\\\\\\\\b(is_soap_fault|use_soap_error_handler)\\\\\\\\b\",\"name\":\"support.function.soap.php\"},{\"match\":\"(?i)\\\\\\\\bsocket_(s(hutdown|trerror|e(nd(to)?|t_(nonblock|option|block)|lect))|c(onnect|l(ose|ear_error)|reate(_(pair|listen))?)|import_stream|write|l(isten|ast_error)|accept|re(cv(from)?|ad)|get(sockname|_option|peername)|bind)\\\\\\\\b\",\"name\":\"support.function.sockets.php\"},{\"match\":\"(?i)\\\\\\\\bsqlite_(s(ingle_query|eek)|has_(prev|more)|n(um_(fields|rows)|ext)|c(hanges|olumn|urrent|lose|reate_(function|aggregate))|open|u(nbuffered_query|df_(decode_binary|encode_binary))|p(open|rev)|e(scape_string|rror_string|xec)|valid|key|query|f(ield_name|etch_(s(tring|ingle)|column_types|object|a(ll|rray))|actory)|l(ib(encoding|version)|ast_(insert_rowid|error))|array_query|rewind|busy_timeout)\\\\\\\\b\",\"name\":\"support.function.sqlite.php\"},{\"match\":\"(?i)\\\\\\\\bsqlsrv_(se(nd_stream_data|rver_info)|has_rows|n(um_(fields|rows)|ext_result)|c(o(n(nect|figure)|mmit)|l(ient_info|ose)|ancel)|prepare|e(rrors|xecute)|query|f(ield_metadata|etch(_(object|array))?|ree_stmt)|ro(ws_affected|llback)|get_(config|field)|begin_transaction)\\\\\\\\b\",\"name\":\"support.function.sqlsrv.php\"},{\"match\":\"(?i)\\\\\\\\bstats_(s(ta(ndard_deviation|t_(noncentral_t|correlation|in(nerproduct|dependent_t)|p(owersum|ercentile|aired_t)|gennch|binomial_coef))|kew)|harmonic_mean|c(ovariance|df_(n(oncentral_(chisquare|f)|egative_binomial)|c(hisquare|auchy)|t|uniform|poisson|exponential|f|weibull|l(ogistic|aplace)|gamma|b(inomial|eta)))|den(s_(n(ormal|egative_binomial)|c(hisquare|auchy)|t|pmf_(hypergeometric|poisson|binomial)|exponential|f|weibull|l(ogistic|aplace)|gamma|beta)|_uniform)|variance|kurtosis|absolute_deviation|rand_(setall|phrase_to_seeds|ranf|ge(n_(no(ncen(tral_(t|f)|ral_chisquare)|rmal)|chisquare|t|i(nt|uniform|poisson|binomial(_negative)?)|exponential|f(uniform)?|gamma|beta)|t_seeds)))\\\\\\\\b\",\"name\":\"support.function.stats.php\"},{\"match\":\"(?i)\\\\\\\\bs(tream_(s(ocket_(s(hutdown|e(ndto|rver))|client|pair|enable_crypto|accept|recvfrom|get_name)|upports_lock|e(t_(chunk_size|timeout|write_buffer|read_buffer|blocking)|lect))|notification_callback|co(ntext_(set_(option|default|params)|create|get_(options|default|params))|py_to_stream)|is_local|encoding|filter_(prepend|append|re(gister|move))|wrapper_(unregister|re(store|gister))|re(solve_include_path|gister_wrapper)|get_(contents|transports|filters|wrappers|line|meta_data)|bucket_(new|prepend|append|make_writeable))|et_socket_blocking)\\\\\\\\b\",\"name\":\"support.function.streamsfuncs.php\"},{\"match\":\"(?i)\\\\\\\\b(s(scanf|ha1(_file)?|tr(s(tr|pn)|n(c(asecmp|mp)|atc(asecmp|mp))|c(spn|hr|oll|asecmp|mp)|t(o(upper|k|lower)|r)|i(str|p(slashes|cslashes|os|_tags))|_(s(huffle|plit)|ireplace|pad|word_count|r(ot13|ep(eat|lace))|getcsv)|p(os|brk)|len|r(chr|ipos|pos|ev))|imilar_text|oundex|ubstr(_(co(unt|mpare)|replace))?|printf|etlocale)|h(tml(specialchars(_decode)?|_entity_decode|entities)|e(x2bin|brev(c)?))|n(umber_format|l(2br|_langinfo))|c(h(op|unk_split|r)|o(nvert_(cyr_string|uu(decode|encode))|unt_chars)|r(ypt|c32))|trim|implode|ord|uc(first|words)|join|p(arse_str|rint(f)?)|e(cho|xplode)|v(sprintf|printf|fprintf)|quote(d_printable_(decode|encode)|meta)|fprintf|wordwrap|l(cfirst|trim|ocaleconv|evenshtein)|add(slashes|cslashes)|rtrim|get_html_translation_table|m(oney_format|d5(_file)?|etaphone)|bin2hex)\\\\\\\\b\",\"name\":\"support.function.string.php\"},{\"match\":\"(?i)\\\\\\\\bsybase_(se(t_message_handler|lect_db)|num_(fields|rows)|c(onnect|lose)|d(eadlock_retry_count|ata_seek)|unbuffered_query|pconnect|query|f(ield_seek|etch_(object|field|a(ssoc|rray)|row)|ree_result)|affected_rows|result|get_last_message|min_(server_severity|client_severity|error_severity|message_severity))\\\\\\\\b\",\"name\":\"support.function.sybase.php\"},{\"match\":\"(?i)\\\\\\\\b(taint|is_tainted|untaint)\\\\\\\\b\",\"name\":\"support.function.taint.php\"},{\"match\":\"(?i)\\\\\\\\b(tidy_(s(et(opt|_encoding)|ave_config)|c(onfig_count|lean_repair)|is_x(html|ml)|diagnose|parse_(string|file)|error_count|warning_count|load_config|access_count|re(set_config|pair_(string|file))|get(opt|_(status|h(tml(_ver)?|ead)|config|o(utput|pt_doc)|r(oot|elease)|body)))|ob_tidyhandler)\\\\\\\\b\",\"name\":\"support.function.tidy.php\"},{\"match\":\"(?i)\\\\\\\\btoken_(name|get_all)\\\\\\\\b\",\"name\":\"support.function.tokenizer.php\"},{\"match\":\"(?i)\\\\\\\\btrader_(s(t(och(f|rsi)?|ddev)|in(h)?|u(m|b)|et_(compat|unstable_period)|qrt|ar(ext)?|ma)|ht_(sine|trend(line|mode)|dcp(hase|eriod)|phasor)|natr|c(ci|o(s(h)?|rrel)|dl(s(ho(otingstar|rtline)|t(icksandwich|alledpattern)|pinningtop|eparatinglines)|h(i(kkake(mod)?|ghwave)|omingpigeon|a(ngingman|rami(cross)?|mmer))|c(o(ncealbabyswall|unterattack)|losingmarubozu)|t(hrusting|a(sukigap|kuri)|ristar)|i(n(neck|vertedhammer)|dentical3crows)|2crows|onneck|d(oji(star)?|arkcloudcover|ragonflydoji)|u(nique3river|psidegap2crows)|3(starsinsouth|inside|outside|whitesoldiers|linestrike|blackcrows)|piercing|e(ngulfing|vening(star|dojistar))|kicking(bylength)?|l(ongl(ine|eggeddoji)|adderbottom)|a(dvanceblock|bandonedbaby)|ri(sefall3methods|ckshawman)|g(apsidesidewhite|ravestonedoji)|xsidegap3methods|m(orning(star|dojistar)|a(t(hold|chinglow)|rubozu))|b(elthold|reakaway))|eil|mo)|t(sf|ypprice|3|ema|an(h)?|r(i(x|ma)|ange))|obv|d(iv|ema|x)|ultosc|p(po|lus_d(i|m))|e(rrno|xp|ma)|var|kama|floor|w(clprice|illr|ma)|l(n|inearreg(_(slope|intercept|angle))?|og10)|a(sin|cos|t(an|r)|d(osc|d|x(r)?)?|po|vgprice|roon(osc)?)|r(si|oc(p|r(100)?)?)|get_(compat|unstable_period)|m(i(n(index|us_d(i|m)|max(index)?)?|dp(oint|rice))|om|ult|edprice|fi|a(cd(ext|fix)?|vp|x(index)?|ma)?)|b(op|eta|bands))\\\\\\\\b\",\"name\":\"support.function.trader.php\"},{\"match\":\"(?i)\\\\\\\\b(http_build_query|url(decode|encode)|parse_url|rawurl(decode|encode)|get_(headers|meta_tags)|base64_(decode|encode))\\\\\\\\b\",\"name\":\"support.function.url.php\"},{\"match\":\"(?i)\\\\\\\\b(s(trval|e(ttype|rialize))|i(s(set|_(s(calar|tring)|nu(ll|meric)|callable|int(eger)?|object|double|float|long|array|re(source|al)|bool|arraykey|nonnull|dict|vec|keyset))|ntval|mport_request_variables)|d(oubleval|ebug_zval_dump)|unse(t|rialize)|print_r|empty|var_(dump|export)|floatval|get(type|_(defined_vars|resource_type))|boolval)\\\\\\\\b\",\"name\":\"support.function.var.php\"},{\"match\":\"(?i)\\\\\\\\bwddx_(serialize_va(lue|rs)|deserialize|packet_(start|end)|add_vars)\\\\\\\\b\",\"name\":\"support.function.wddx.php\"},{\"match\":\"(?i)\\\\\\\\bxhprof_(sample_(disable|enable)|disable|enable)\\\\\\\\b\",\"name\":\"support.function.xhprof.php\"},{\"match\":\"(?i)\\\\\\\\b(utf8_(decode|encode)|xml_(set_(start_namespace_decl_handler|notation_decl_handler|character_data_handler|object|default_handler|unparsed_entity_decl_handler|processing_instruction_handler|e(nd_namespace_decl_handler|lement_handler|xternal_entity_ref_handler))|parse(_into_struct|r_(set_option|create(_ns)?|free|get_option))?|error_string|get_(current_(column_number|line_number|byte_index)|error_code)))\\\\\\\\b\",\"name\":\"support.function.xml.php\"},{\"match\":\"(?i)\\\\\\\\bxmlrpc_(se(t_type|rver_(c(all_method|reate)|destroy|add_introspection_data|register_(introspection_callback|method)))|is_fault|decode(_request)?|parse_method_descriptions|encode(_request)?|get_type)\\\\\\\\b\",\"name\":\"support.function.xmlrpc.php\"},{\"match\":\"(?i)\\\\\\\\bxmlwriter_(s(tart_(c(omment|data)|d(td(_(e(ntity|lement)|attlist))?|ocument)|pi|element(_ns)?|attribute(_ns)?)|et_indent(_string)?)|text|o(utput_memory|pen_(uri|memory))|end_(c(omment|data)|d(td(_(e(ntity|lement)|attlist))?|ocument)|pi|element|attribute)|f(ull_end_element|lush)|write_(c(omment|data)|dtd(_(e(ntity|lement)|attlist))?|pi|element(_ns)?|attribute(_ns)?|raw))\\\\\\\\b\",\"name\":\"support.function.xmlwriter.php\"},{\"match\":\"(?i)\\\\\\\\bxslt_(set(opt|_(s(cheme_handler(s)?|ax_handler(s)?)|object|e(ncoding|rror_handler)|log|base))|create|process|err(no|or)|free|getopt|backend_(name|info|version))\\\\\\\\b\",\"name\":\"support.function.xslt.php\"},{\"match\":\"(?i)\\\\\\\\b(zlib_(decode|encode|get_coding_type)|readgzfile|gz(seek|c(ompress|lose)|tell|inflate|open|de(code|flate)|uncompress|p(uts|assthru)|e(ncode|of)|file|write|re(wind|ad)|get(s(s)?|c)))\\\\\\\\b\",\"name\":\"support.function.zlib.php\"},{\"match\":\"(?i)\\\\\\\\bis_int(eger)?\\\\\\\\b\",\"name\":\"support.function.alias.php\"}]},\"type-annotation\":{\"name\":\"support.type.php\",\"patterns\":[{\"match\":\"\\\\\\\\b(?:bool|int|float|string|resource|mixed|arraykey|nonnull|dict|vec|keyset)\\\\\\\\b\",\"name\":\"support.type.php\"},{\"begin\":\"([A-Za-z_][A-Za-z0-9_]*)<\",\"beginCaptures\":{\"1\":{\"name\":\"support.class.php\"}},\"end\":\">\",\"patterns\":[{\"include\":\"#type-annotation\"}]},{\"begin\":\"(shape\\\\\\\\()\",\"end\":\"((,|\\\\\\\\.\\\\\\\\.\\\\\\\\.)?\\\\\\\\s*\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.key.php\"}},\"name\":\"storage.type.shape.php\",\"patterns\":[{\"include\":\"#type-annotation\"},{\"include\":\"#strings\"},{\"include\":\"#constants\"}]},{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#type-annotation\"}]},{\"include\":\"#class-name\"},{\"include\":\"#comments\"}]},\"user-function-call\":{\"begin\":\"(?i)(?=[a-z_0-9\\\\\\\\\\\\\\\\]*[a-z_][a-z0-9_]*\\\\\\\\s*\\\\\\\\()\",\"end\":\"(?i)[a-z_][a-z_0-9]*(?=\\\\\\\\s*\\\\\\\\()\",\"endCaptures\":{\"0\":{\"name\":\"entity.name.function.php\"}},\"name\":\"meta.function-call.php\",\"patterns\":[{\"include\":\"#namespace\"}]},\"var_basic\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.php\"}},\"match\":\"(\\\\\\\\$+)[a-zA-Z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*?\\\\\\\\b\",\"name\":\"variable.other.php\"}]},\"var_global\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.php\"}},\"match\":\"(\\\\\\\\$)((_(COOKIE|FILES|GET|POST|REQUEST))|arg(v|c))\\\\\\\\b\",\"name\":\"variable.other.global.php\"},\"var_global_safer\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.php\"}},\"match\":\"(\\\\\\\\$)((GLOBALS|_(ENV|SERVER|SESSION)))\",\"name\":\"variable.other.global.safer.php\"},\"variable-name\":{\"patterns\":[{\"include\":\"#var_global\"},{\"include\":\"#var_global_safer\"},{\"captures\":{\"1\":{\"name\":\"variable.other.php\"},\"2\":{\"name\":\"punctuation.definition.variable.php\"},\"4\":{\"name\":\"keyword.operator.class.php\"},\"5\":{\"name\":\"variable.other.property.php\"},\"6\":{\"name\":\"punctuation.section.array.begin.php\"},\"7\":{\"name\":\"constant.numeric.index.php\"},\"8\":{\"name\":\"variable.other.index.php\"},\"9\":{\"name\":\"punctuation.definition.variable.php\"},\"10\":{\"name\":\"string.unquoted.index.php\"},\"11\":{\"name\":\"punctuation.section.array.end.php\"}},\"comment\":\"Simple syntax: $foo, $foo[0], $foo[$bar], $foo->bar\",\"match\":\"((\\\\\\\\$)(?<name>[a-zA-Z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*))(?:(->)(\\\\\\\\g<name>)|(\\\\\\\\[)(?:(\\\\\\\\d+)|((\\\\\\\\$)\\\\\\\\g<name>)|(\\\\\\\\w+))(\\\\\\\\]))?\"},{\"captures\":{\"1\":{\"name\":\"variable.other.php\"},\"2\":{\"name\":\"punctuation.definition.variable.php\"},\"4\":{\"name\":\"punctuation.definition.variable.php\"}},\"comment\":\"Simple syntax with braces: \\\\\"foo\\${bar}baz\\\\\"\",\"match\":\"((\\\\\\\\$\\\\\\\\{)(?<name>[a-zA-Z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)(\\\\\\\\}))\"}]},\"variables\":{\"patterns\":[{\"include\":\"#var_global\"},{\"include\":\"#var_global_safer\"},{\"include\":\"#var_basic\"},{\"begin\":\"(\\\\\\\\$\\\\\\\\{)(?=.*?\\\\\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.variable.php\"}},\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.variable.php\"}},\"patterns\":[{\"include\":\"#language\"}]}]},\"xhp\":{\"comment\":\"Avoid < operator expressions as best we can using Zertosh's regex\",\"patterns\":[{\"applyEndPatternLast\":1,\"begin\":\"(?<=\\\\\\\\(|\\\\\\\\{|\\\\\\\\[|,|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\?|:|=|=>|\\\\\\\\Wreturn|^return|^)\\\\\\\\s*(?=<[_\\\\\\\\p{L}])\",\"contentName\":\"source.xhp\",\"end\":\"(?=.)\",\"patterns\":[{\"include\":\"#xhp-tag-element-name\"}]}]},\"xhp-assignment\":{\"patterns\":[{\"comment\":\"look for attribute assignment\",\"match\":\"=(?=\\\\\\\\s*(?:'|\\\\\"|{|/\\\\\\\\*|<|//|\\\\\\\\n))\",\"name\":\"keyword.operator.assignment.xhp\"}]},\"xhp-attribute-name\":{\"patterns\":[{\"captures\":{\"0\":{\"name\":\"entity.other.attribute-name.xhp\"}},\"comment\":\"look for attribute name\",\"match\":\"(?<!\\\\\\\\S)([_\\\\\\\\p{L}](?:[\\\\\\\\p{L}\\\\\\\\p{Mn}\\\\\\\\p{Mc}\\\\\\\\p{Nd}\\\\\\\\p{Nl}\\\\\\\\p{Pc}-](?<!\\\\\\\\.\\\\\\\\.))*+)(?<!\\\\\\\\.)(?=//|/\\\\\\\\*|=|\\\\\\\\s|>|/>)\"}]},\"xhp-entities\":{\"patterns\":[{\"captures\":{\"0\":{\"name\":\"constant.character.entity.xhp\"},\"1\":{\"name\":\"punctuation.definition.entity.xhp\"},\"2\":{\"name\":\"entity.name.tag.html.xhp\"},\"3\":{\"name\":\"punctuation.definition.entity.xhp\"}},\"comment\":\"Embeded HTML entities &blah\",\"match\":\"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)\"},{\"comment\":\"Entity with & and invalid name\",\"match\":\"&\\\\\\\\S*;\",\"name\":\"invalid.illegal.bad-ampersand.xhp\"}]},\"xhp-evaluated-code\":{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.xhp\"}},\"contentName\":\"source.php.xhp\",\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.xhp\"}},\"name\":\"meta.embedded.expression.php\",\"patterns\":[{\"include\":\"#language\"}]},\"xhp-html-comments\":{\"begin\":\"<!--\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.html\"}},\"end\":\"--\\\\\\\\s*>\",\"name\":\"comment.block.html\",\"patterns\":[{\"match\":\"--(?!-*\\\\\\\\s*>)\",\"name\":\"invalid.illegal.bad-comments-or-CDATA.html\"}]},\"xhp-string-double-quoted\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.xhp\"}},\"end\":\"\\\\\"(?<!\\\\\\\\\\\\\\\\\\\\\")\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.xhp\"}},\"name\":\"string.quoted.double.php\",\"patterns\":[{\"include\":\"#xhp-entities\"}]},\"xhp-string-single-quoted\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.xhp\"}},\"end\":\"'(?<!\\\\\\\\\\\\\\\\')\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.xhp\"}},\"name\":\"string.quoted.single.php\",\"patterns\":[{\"include\":\"#xhp-entities\"}]},\"xhp-tag-attributes\":{\"patterns\":[{\"include\":\"#xhp-attribute-name\"},{\"include\":\"#xhp-assignment\"},{\"include\":\"#xhp-string-double-quoted\"},{\"include\":\"#xhp-string-single-quoted\"},{\"include\":\"#xhp-evaluated-code\"},{\"include\":\"#xhp-tag-element-name\"},{\"include\":\"#comments\"}]},\"xhp-tag-element-name\":{\"patterns\":[{\"begin\":\"\\\\\\\\s*(<)([_\\\\\\\\p{L}](?:[:\\\\\\\\p{L}\\\\\\\\p{Mn}\\\\\\\\p{Mc}\\\\\\\\p{Nd}\\\\\\\\p{Nl}\\\\\\\\p{Pc}-])*+)(?=[/>\\\\\\\\s])(?<![\\\\\\\\:])\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.xhp\"},\"2\":{\"name\":\"entity.name.tag.open.xhp\"}},\"comment\":\"Tags that end > are trapped in #xhp-tag-termination\",\"end\":\"\\\\\\\\s*(?<=</)(\\\\\\\\2)(>)|(/>)|((?<=</)[\\\\\\\\S ]*?)>\",\"endCaptures\":{\"1\":{\"name\":\"entity.name.tag.close.xhp\"},\"2\":{\"name\":\"punctuation.definition.tag.xhp\"},\"3\":{\"name\":\"punctuation.definition.tag.xhp\"},\"4\":{\"name\":\"invalid.illegal.termination.xhp\"}},\"patterns\":[{\"include\":\"#xhp-tag-termination\"},{\"include\":\"#xhp-html-comments\"},{\"include\":\"#xhp-tag-attributes\"}]}]},\"xhp-tag-termination\":{\"patterns\":[{\"begin\":\"(?<!--)(>)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.xhp\"},\"1\":{\"name\":\"XHPStartTagEnd\"}},\"comment\":\"uses non consuming search for </ in </tag>\",\"end\":\"(</)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.xhp\"},\"1\":{\"name\":\"XHPEndTagStart\"}},\"patterns\":[{\"include\":\"#xhp-evaluated-code\"},{\"include\":\"#xhp-entities\"},{\"include\":\"#xhp-html-comments\"},{\"include\":\"#xhp-tag-element-name\"}]}]}},\"scopeName\":\"source.hack\",\"embeddedLangs\":[\"html\",\"sql\"]}`)),o=[...e,...t,n];export{o as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/C39BiMTA.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.background\":\"#011627\",\"activityBar.border\":\"#011627\",\"activityBar.dropBackground\":\"#5f7e97\",\"activityBar.foreground\":\"#5f7e97\",\"activityBarBadge.background\":\"#44596b\",\"activityBarBadge.foreground\":\"#ffffff\",\"badge.background\":\"#5f7e97\",\"badge.foreground\":\"#ffffff\",\"breadcrumb.activeSelectionForeground\":\"#FFFFFF\",\"breadcrumb.focusForeground\":\"#ffffff\",\"breadcrumb.foreground\":\"#A599E9\",\"breadcrumbPicker.background\":\"#001122\",\"button.background\":\"#7e57c2cc\",\"button.foreground\":\"#ffffffcc\",\"button.hoverBackground\":\"#7e57c2\",\"contrastBorder\":\"#122d42\",\"debugExceptionWidget.background\":\"#011627\",\"debugExceptionWidget.border\":\"#5f7e97\",\"debugToolBar.background\":\"#011627\",\"diffEditor.insertedTextBackground\":\"#99b76d23\",\"diffEditor.removedTextBackground\":\"#ef535033\",\"dropdown.background\":\"#011627\",\"dropdown.border\":\"#5f7e97\",\"dropdown.foreground\":\"#ffffffcc\",\"editor.background\":\"#011627\",\"editor.findMatchBackground\":\"#5f7e9779\",\"editor.findMatchHighlightBackground\":\"#1085bb5d\",\"editor.findRangeHighlightBackground\":null,\"editor.foreground\":\"#d6deeb\",\"editor.hoverHighlightBackground\":\"#7e57c25a\",\"editor.inactiveSelectionBackground\":\"#7e57c25a\",\"editor.lineHighlightBackground\":\"#28707d29\",\"editor.lineHighlightBorder\":null,\"editor.rangeHighlightBackground\":\"#7e57c25a\",\"editor.selectionBackground\":\"#1d3b53\",\"editor.selectionHighlightBackground\":\"#5f7e9779\",\"editor.wordHighlightBackground\":\"#f6bbe533\",\"editor.wordHighlightStrongBackground\":\"#e2a2f433\",\"editorCodeLens.foreground\":\"#5e82ceb4\",\"editorCursor.foreground\":\"#80a4c2\",\"editorError.border\":null,\"editorError.foreground\":\"#EF5350\",\"editorGroup.border\":\"#011627\",\"editorGroup.dropBackground\":\"#7e57c273\",\"editorGroup.emptyBackground\":\"#011627\",\"editorGroupHeader.noTabsBackground\":\"#011627\",\"editorGroupHeader.tabsBackground\":\"#011627\",\"editorGroupHeader.tabsBorder\":\"#262A39\",\"editorGutter.addedBackground\":\"#9CCC65\",\"editorGutter.background\":\"#011627\",\"editorGutter.deletedBackground\":\"#EF5350\",\"editorGutter.modifiedBackground\":\"#e2b93d\",\"editorHoverWidget.background\":\"#011627\",\"editorHoverWidget.border\":\"#5f7e97\",\"editorIndentGuide.activeBackground\":\"#7E97AC\",\"editorIndentGuide.background\":\"#5e81ce52\",\"editorInlayHint.background\":\"#0000\",\"editorInlayHint.foreground\":\"#829D9D\",\"editorLineNumber.activeForeground\":\"#C5E4FD\",\"editorLineNumber.foreground\":\"#4b6479\",\"editorLink.activeForeground\":null,\"editorMarkerNavigation.background\":\"#0b2942\",\"editorMarkerNavigationError.background\":\"#EF5350\",\"editorMarkerNavigationWarning.background\":\"#FFCA28\",\"editorOverviewRuler.commonContentForeground\":\"#7e57c2\",\"editorOverviewRuler.currentContentForeground\":\"#7e57c2\",\"editorOverviewRuler.incomingContentForeground\":\"#7e57c2\",\"editorRuler.foreground\":\"#5e81ce52\",\"editorSuggestWidget.background\":\"#2C3043\",\"editorSuggestWidget.border\":\"#2B2F40\",\"editorSuggestWidget.foreground\":\"#d6deeb\",\"editorSuggestWidget.highlightForeground\":\"#ffffff\",\"editorSuggestWidget.selectedBackground\":\"#5f7e97\",\"editorWarning.border\":null,\"editorWarning.foreground\":\"#b39554\",\"editorWhitespace.foreground\":null,\"editorWidget.background\":\"#021320\",\"editorWidget.border\":\"#5f7e97\",\"errorForeground\":\"#EF5350\",\"extensionButton.prominentBackground\":\"#7e57c2cc\",\"extensionButton.prominentForeground\":\"#ffffffcc\",\"extensionButton.prominentHoverBackground\":\"#7e57c2\",\"focusBorder\":\"#122d42\",\"foreground\":\"#d6deeb\",\"gitDecoration.conflictingResourceForeground\":\"#ffeb95cc\",\"gitDecoration.deletedResourceForeground\":\"#EF535090\",\"gitDecoration.ignoredResourceForeground\":\"#395a75\",\"gitDecoration.modifiedResourceForeground\":\"#a2bffc\",\"gitDecoration.untrackedResourceForeground\":\"#c5e478ff\",\"input.background\":\"#0b253a\",\"input.border\":\"#5f7e97\",\"input.foreground\":\"#ffffffcc\",\"input.placeholderForeground\":\"#5f7e97\",\"inputOption.activeBorder\":\"#ffffffcc\",\"inputValidation.errorBackground\":\"#AB0300F2\",\"inputValidation.errorBorder\":\"#EF5350\",\"inputValidation.infoBackground\":\"#00589EF2\",\"inputValidation.infoBorder\":\"#64B5F6\",\"inputValidation.warningBackground\":\"#675700F2\",\"inputValidation.warningBorder\":\"#FFCA28\",\"list.activeSelectionBackground\":\"#234d708c\",\"list.activeSelectionForeground\":\"#ffffff\",\"list.dropBackground\":\"#011627\",\"list.focusBackground\":\"#010d18\",\"list.focusForeground\":\"#ffffff\",\"list.highlightForeground\":\"#ffffff\",\"list.hoverBackground\":\"#011627\",\"list.hoverForeground\":\"#ffffff\",\"list.inactiveSelectionBackground\":\"#0e293f\",\"list.inactiveSelectionForeground\":\"#5f7e97\",\"list.invalidItemForeground\":\"#975f94\",\"merge.border\":null,\"merge.currentContentBackground\":null,\"merge.currentHeaderBackground\":\"#5f7e97\",\"merge.incomingContentBackground\":null,\"merge.incomingHeaderBackground\":\"#7e57c25a\",\"meta.objectliteral.js\":\"#82AAFF\",\"notificationCenter.border\":\"#262a39\",\"notificationLink.foreground\":\"#80CBC4\",\"notificationToast.border\":\"#262a39\",\"notifications.background\":\"#01111d\",\"notifications.border\":\"#262a39\",\"notifications.foreground\":\"#ffffffcc\",\"panel.background\":\"#011627\",\"panel.border\":\"#5f7e97\",\"panelTitle.activeBorder\":\"#5f7e97\",\"panelTitle.activeForeground\":\"#ffffffcc\",\"panelTitle.inactiveForeground\":\"#d6deeb80\",\"peekView.border\":\"#5f7e97\",\"peekViewEditor.background\":\"#011627\",\"peekViewEditor.matchHighlightBackground\":\"#7e57c25a\",\"peekViewResult.background\":\"#011627\",\"peekViewResult.fileForeground\":\"#5f7e97\",\"peekViewResult.lineForeground\":\"#5f7e97\",\"peekViewResult.matchHighlightBackground\":\"#ffffffcc\",\"peekViewResult.selectionBackground\":\"#2E3250\",\"peekViewResult.selectionForeground\":\"#5f7e97\",\"peekViewTitle.background\":\"#011627\",\"peekViewTitleDescription.foreground\":\"#697098\",\"peekViewTitleLabel.foreground\":\"#5f7e97\",\"pickerGroup.border\":\"#011627\",\"pickerGroup.foreground\":\"#d1aaff\",\"progress.background\":\"#7e57c2\",\"punctuation.definition.generic.begin.html\":\"#ef5350f2\",\"scrollbar.shadow\":\"#010b14\",\"scrollbarSlider.activeBackground\":\"#084d8180\",\"scrollbarSlider.background\":\"#084d8180\",\"scrollbarSlider.hoverBackground\":\"#084d8180\",\"selection.background\":\"#4373c2\",\"sideBar.background\":\"#011627\",\"sideBar.border\":\"#011627\",\"sideBar.foreground\":\"#89a4bb\",\"sideBarSectionHeader.background\":\"#011627\",\"sideBarSectionHeader.foreground\":\"#5f7e97\",\"sideBarTitle.foreground\":\"#5f7e97\",\"source.elm\":\"#5f7e97\",\"statusBar.background\":\"#011627\",\"statusBar.border\":\"#262A39\",\"statusBar.debuggingBackground\":\"#202431\",\"statusBar.debuggingBorder\":\"#1F2330\",\"statusBar.debuggingForeground\":null,\"statusBar.foreground\":\"#5f7e97\",\"statusBar.noFolderBackground\":\"#011627\",\"statusBar.noFolderBorder\":\"#25293A\",\"statusBar.noFolderForeground\":null,\"statusBarItem.activeBackground\":\"#202431\",\"statusBarItem.hoverBackground\":\"#202431\",\"statusBarItem.prominentBackground\":\"#202431\",\"statusBarItem.prominentHoverBackground\":\"#202431\",\"string.quoted.single.js\":\"#ffffff\",\"tab.activeBackground\":\"#0b2942\",\"tab.activeBorder\":\"#262A39\",\"tab.activeForeground\":\"#d2dee7\",\"tab.border\":\"#272B3B\",\"tab.inactiveBackground\":\"#01111d\",\"tab.inactiveForeground\":\"#5f7e97\",\"tab.unfocusedActiveBorder\":\"#262A39\",\"tab.unfocusedActiveForeground\":\"#5f7e97\",\"tab.unfocusedInactiveForeground\":\"#5f7e97\",\"terminal.ansiBlack\":\"#011627\",\"terminal.ansiBlue\":\"#82AAFF\",\"terminal.ansiBrightBlack\":\"#575656\",\"terminal.ansiBrightBlue\":\"#82AAFF\",\"terminal.ansiBrightCyan\":\"#7fdbca\",\"terminal.ansiBrightGreen\":\"#22da6e\",\"terminal.ansiBrightMagenta\":\"#C792EA\",\"terminal.ansiBrightRed\":\"#EF5350\",\"terminal.ansiBrightWhite\":\"#ffffff\",\"terminal.ansiBrightYellow\":\"#ffeb95\",\"terminal.ansiCyan\":\"#21c7a8\",\"terminal.ansiGreen\":\"#22da6e\",\"terminal.ansiMagenta\":\"#C792EA\",\"terminal.ansiRed\":\"#EF5350\",\"terminal.ansiWhite\":\"#ffffff\",\"terminal.ansiYellow\":\"#c5e478\",\"terminal.selectionBackground\":\"#1b90dd4d\",\"terminalCursor.background\":\"#234d70\",\"textCodeBlock.background\":\"#4f4f4f\",\"titleBar.activeBackground\":\"#011627\",\"titleBar.activeForeground\":\"#eeefff\",\"titleBar.inactiveBackground\":\"#010e1a\",\"titleBar.inactiveForeground\":null,\"walkThrough.embeddedEditorBackground\":\"#011627\",\"welcomePage.buttonBackground\":\"#011627\",\"welcomePage.buttonHoverBackground\":\"#011627\",\"widget.shadow\":\"#011627\"},\"displayName\":\"Night Owl\",\"name\":\"night-owl\",\"semanticHighlighting\":false,\"tokenColors\":[{\"scope\":[\"markup.changed\",\"meta.diff.header.git\",\"meta.diff.header.from-file\",\"meta.diff.header.to-file\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#a2bffc\"}},{\"scope\":\"markup.deleted.diff\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#EF535090\"}},{\"scope\":\"markup.inserted.diff\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#c5e478ff\"}},{\"settings\":{\"background\":\"#011627\",\"foreground\":\"#d6deeb\"}},{\"scope\":[\"comment\",\"punctuation.definition.comment\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#637777\"}},{\"scope\":\"string\",\"settings\":{\"foreground\":\"#ecc48d\"}},{\"scope\":[\"string.quoted\",\"variable.other.readwrite.js\"],\"settings\":{\"foreground\":\"#ecc48d\"}},{\"scope\":\"support.constant.math\",\"settings\":{\"foreground\":\"#c5e478\"}},{\"scope\":[\"constant.numeric\",\"constant.character.numeric\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#F78C6C\"}},{\"scope\":[\"constant.language\",\"punctuation.definition.constant\",\"variable.other.constant\"],\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":[\"constant.character\",\"constant.other\"],\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":\"constant.character.escape\",\"settings\":{\"foreground\":\"#F78C6C\"}},{\"scope\":[\"string.regexp\",\"string.regexp keyword.other\"],\"settings\":{\"foreground\":\"#5ca7e4\"}},{\"scope\":\"meta.function punctuation.separator.comma\",\"settings\":{\"foreground\":\"#5f7e97\"}},{\"scope\":\"variable\",\"settings\":{\"foreground\":\"#c5e478\"}},{\"scope\":[\"punctuation.accessor\",\"keyword\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#c792ea\"}},{\"scope\":[\"storage\",\"meta.var.expr\",\"meta.class meta.method.declaration meta.var.expr storage.type.js\",\"storage.type.property.js\",\"storage.type.property.ts\",\"storage.type.property.tsx\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#c792ea\"}},{\"scope\":\"storage.type\",\"settings\":{\"foreground\":\"#c792ea\"}},{\"scope\":\"storage.type.function.arrow.js\",\"settings\":{\"fontStyle\":\"\"}},{\"scope\":[\"entity.name.class\",\"meta.class entity.name.type.class\"],\"settings\":{\"foreground\":\"#ffcb8b\"}},{\"scope\":\"entity.other.inherited-class\",\"settings\":{\"foreground\":\"#c5e478\"}},{\"scope\":\"entity.name.function\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#c792ea\"}},{\"scope\":[\"punctuation.definition.tag\",\"meta.tag\"],\"settings\":{\"foreground\":\"#7fdbca\"}},{\"scope\":[\"entity.name.tag\",\"meta.tag.other.html\",\"meta.tag.other.js\",\"meta.tag.other.tsx\",\"entity.name.tag.tsx\",\"entity.name.tag.js\",\"entity.name.tag\",\"meta.tag.js\",\"meta.tag.tsx\",\"meta.tag.html\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#caece6\"}},{\"scope\":\"entity.other.attribute-name\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#c5e478\"}},{\"scope\":\"entity.name.tag.custom\",\"settings\":{\"foreground\":\"#f78c6c\"}},{\"scope\":[\"support.function\",\"support.constant\"],\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":\"support.constant.meta.property-value\",\"settings\":{\"foreground\":\"#7fdbca\"}},{\"scope\":[\"support.type\",\"support.class\"],\"settings\":{\"foreground\":\"#c5e478\"}},{\"scope\":\"support.variable.dom\",\"settings\":{\"foreground\":\"#c5e478\"}},{\"scope\":\"invalid\",\"settings\":{\"background\":\"#ff2c83\",\"foreground\":\"#ffffff\"}},{\"scope\":\"invalid.deprecated\",\"settings\":{\"background\":\"#d3423e\",\"foreground\":\"#ffffff\"}},{\"scope\":\"keyword.operator\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#7fdbca\"}},{\"scope\":\"keyword.operator.relational\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#c792ea\"}},{\"scope\":\"keyword.operator.assignment\",\"settings\":{\"foreground\":\"#c792ea\"}},{\"scope\":\"keyword.operator.arithmetic\",\"settings\":{\"foreground\":\"#c792ea\"}},{\"scope\":\"keyword.operator.bitwise\",\"settings\":{\"foreground\":\"#c792ea\"}},{\"scope\":\"keyword.operator.increment\",\"settings\":{\"foreground\":\"#c792ea\"}},{\"scope\":\"keyword.operator.ternary\",\"settings\":{\"foreground\":\"#c792ea\"}},{\"scope\":\"comment.line.double-slash\",\"settings\":{\"foreground\":\"#637777\"}},{\"scope\":\"object\",\"settings\":{\"foreground\":\"#cdebf7\"}},{\"scope\":\"constant.language.null\",\"settings\":{\"foreground\":\"#ff5874\"}},{\"scope\":\"meta.brace\",\"settings\":{\"foreground\":\"#d6deeb\"}},{\"scope\":\"meta.delimiter.period\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#c792ea\"}},{\"scope\":\"punctuation.definition.string\",\"settings\":{\"foreground\":\"#d9f5dd\"}},{\"scope\":\"punctuation.definition.string.begin.markdown\",\"settings\":{\"foreground\":\"#ff5874\"}},{\"scope\":\"constant.language.boolean\",\"settings\":{\"foreground\":\"#ff5874\"}},{\"scope\":\"object.comma\",\"settings\":{\"foreground\":\"#ffffff\"}},{\"scope\":\"variable.parameter.function\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#7fdbca\"}},{\"scope\":[\"support.type.vendor.property-name\",\"support.constant.vendor.property-value\",\"support.type.property-name\",\"meta.property-list entity.name.tag\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#80CBC4\"}},{\"scope\":\"meta.property-list entity.name.tag.reference\",\"settings\":{\"foreground\":\"#57eaf1\"}},{\"scope\":\"constant.other.color.rgb-value punctuation.definition.constant\",\"settings\":{\"foreground\":\"#F78C6C\"}},{\"scope\":\"constant.other.color\",\"settings\":{\"foreground\":\"#FFEB95\"}},{\"scope\":\"keyword.other.unit\",\"settings\":{\"foreground\":\"#FFEB95\"}},{\"scope\":\"meta.selector\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#c792ea\"}},{\"scope\":\"entity.other.attribute-name.id\",\"settings\":{\"foreground\":\"#FAD430\"}},{\"scope\":\"meta.property-name\",\"settings\":{\"foreground\":\"#80CBC4\"}},{\"scope\":[\"entity.name.tag.doctype\",\"meta.tag.sgml.doctype\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#c792ea\"}},{\"scope\":\"punctuation.definition.parameters\",\"settings\":{\"foreground\":\"#d9f5dd\"}},{\"scope\":\"keyword.control.operator\",\"settings\":{\"foreground\":\"#7fdbca\"}},{\"scope\":\"keyword.operator.logical\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#c792ea\"}},{\"scope\":[\"variable.instance\",\"variable.other.instance\",\"variable.readwrite.instance\",\"variable.other.readwrite.instance\",\"variable.other.property\"],\"settings\":{\"foreground\":\"#baebe2\"}},{\"scope\":[\"variable.other.object.property\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#faf39f\"}},{\"scope\":[\"variable.other.object.js\"],\"settings\":{\"fontStyle\":\"\"}},{\"scope\":[\"entity.name.function\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#82AAFF\"}},{\"scope\":[\"variable.language.this.js\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#41eec6\"}},{\"scope\":[\"keyword.operator.comparison\",\"keyword.control.flow.js\",\"keyword.control.flow.ts\",\"keyword.control.flow.tsx\",\"keyword.control.ruby\",\"keyword.control.module.ruby\",\"keyword.control.class.ruby\",\"keyword.control.def.ruby\",\"keyword.control.loop.js\",\"keyword.control.loop.ts\",\"keyword.control.import.js\",\"keyword.control.import.ts\",\"keyword.control.import.tsx\",\"keyword.control.from.js\",\"keyword.control.from.ts\",\"keyword.control.from.tsx\",\"keyword.operator.instanceof.js\",\"keyword.operator.expression.instanceof.ts\",\"keyword.operator.expression.instanceof.tsx\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#c792ea\"}},{\"scope\":[\"keyword.control.conditional.js\",\"keyword.control.conditional.ts\",\"keyword.control.switch.js\",\"keyword.control.switch.ts\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#c792ea\"}},{\"scope\":[\"support.constant\",\"keyword.other.special-method\",\"keyword.other.new\",\"keyword.other.debugger\",\"keyword.control\"],\"settings\":{\"foreground\":\"#7fdbca\"}},{\"scope\":\"support.function\",\"settings\":{\"foreground\":\"#c5e478\"}},{\"scope\":\"invalid.broken\",\"settings\":{\"background\":\"#F78C6C\",\"foreground\":\"#020e14\"}},{\"scope\":\"invalid.unimplemented\",\"settings\":{\"background\":\"#8BD649\",\"foreground\":\"#ffffff\"}},{\"scope\":\"invalid.illegal\",\"settings\":{\"background\":\"#ec5f67\",\"foreground\":\"#ffffff\"}},{\"scope\":\"variable.language\",\"settings\":{\"foreground\":\"#7fdbca\"}},{\"scope\":\"support.variable.property\",\"settings\":{\"foreground\":\"#7fdbca\"}},{\"scope\":\"variable.function\",\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":\"variable.interpolation\",\"settings\":{\"foreground\":\"#ec5f67\"}},{\"scope\":\"meta.function-call\",\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":\"punctuation.section.embedded\",\"settings\":{\"foreground\":\"#d3423e\"}},{\"scope\":[\"punctuation.terminator.expression\",\"punctuation.definition.arguments\",\"punctuation.definition.array\",\"punctuation.section.array\",\"meta.array\"],\"settings\":{\"foreground\":\"#d6deeb\"}},{\"scope\":[\"punctuation.definition.list.begin\",\"punctuation.definition.list.end\",\"punctuation.separator.arguments\",\"punctuation.definition.list\"],\"settings\":{\"foreground\":\"#d9f5dd\"}},{\"scope\":\"string.template meta.template.expression\",\"settings\":{\"foreground\":\"#d3423e\"}},{\"scope\":\"string.template punctuation.definition.string\",\"settings\":{\"foreground\":\"#d6deeb\"}},{\"scope\":\"italic\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#c792ea\"}},{\"scope\":\"bold\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#c5e478\"}},{\"scope\":\"quote\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#697098\"}},{\"scope\":\"raw\",\"settings\":{\"foreground\":\"#80CBC4\"}},{\"scope\":\"variable.assignment.coffee\",\"settings\":{\"foreground\":\"#31e1eb\"}},{\"scope\":\"variable.parameter.function.coffee\",\"settings\":{\"foreground\":\"#d6deeb\"}},{\"scope\":\"variable.assignment.coffee\",\"settings\":{\"foreground\":\"#7fdbca\"}},{\"scope\":\"variable.other.readwrite.cs\",\"settings\":{\"foreground\":\"#d6deeb\"}},{\"scope\":[\"entity.name.type.class.cs\",\"storage.type.cs\"],\"settings\":{\"foreground\":\"#ffcb8b\"}},{\"scope\":\"entity.name.type.namespace.cs\",\"settings\":{\"foreground\":\"#B2CCD6\"}},{\"scope\":\"string.unquoted.preprocessor.message.cs\",\"settings\":{\"foreground\":\"#d6deeb\"}},{\"scope\":[\"punctuation.separator.hash.cs\",\"keyword.preprocessor.region.cs\",\"keyword.preprocessor.endregion.cs\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#ffcb8b\"}},{\"scope\":\"variable.other.object.cs\",\"settings\":{\"foreground\":\"#B2CCD6\"}},{\"scope\":\"entity.name.type.enum.cs\",\"settings\":{\"foreground\":\"#c5e478\"}},{\"scope\":[\"string.interpolated.single.dart\",\"string.interpolated.double.dart\"],\"settings\":{\"foreground\":\"#FFCB8B\"}},{\"scope\":\"support.class.dart\",\"settings\":{\"foreground\":\"#FFCB8B\"}},{\"scope\":[\"entity.name.tag.css\",\"entity.name.tag.less\",\"entity.name.tag.custom.css\",\"support.constant.property-value.css\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#ff6363\"}},{\"scope\":[\"entity.name.tag.wildcard.css\",\"entity.name.tag.wildcard.less\",\"entity.name.tag.wildcard.scss\",\"entity.name.tag.wildcard.sass\"],\"settings\":{\"foreground\":\"#7fdbca\"}},{\"scope\":\"keyword.other.unit.css\",\"settings\":{\"foreground\":\"#FFEB95\"}},{\"scope\":[\"meta.attribute-selector.css entity.other.attribute-name.attribute\",\"variable.other.readwrite.js\"],\"settings\":{\"foreground\":\"#F78C6C\"}},{\"scope\":[\"source.elixir support.type.elixir\",\"source.elixir meta.module.elixir entity.name.class.elixir\"],\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":\"source.elixir entity.name.function\",\"settings\":{\"foreground\":\"#c5e478\"}},{\"scope\":[\"source.elixir constant.other.symbol.elixir\",\"source.elixir constant.other.keywords.elixir\"],\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":\"source.elixir punctuation.definition.string\",\"settings\":{\"foreground\":\"#c5e478\"}},{\"scope\":[\"source.elixir variable.other.readwrite.module.elixir\",\"source.elixir variable.other.readwrite.module.elixir punctuation.definition.variable.elixir\"],\"settings\":{\"foreground\":\"#c5e478\"}},{\"scope\":\"source.elixir .punctuation.binary.elixir\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#c792ea\"}},{\"scope\":\"constant.keyword.clojure\",\"settings\":{\"foreground\":\"#7fdbca\"}},{\"scope\":\"source.go meta.function-call.go\",\"settings\":{\"foreground\":\"#DDDDDD\"}},{\"scope\":[\"source.go keyword.package.go\",\"source.go keyword.import.go\",\"source.go keyword.function.go\",\"source.go keyword.type.go\",\"source.go keyword.struct.go\",\"source.go keyword.interface.go\",\"source.go keyword.const.go\",\"source.go keyword.var.go\",\"source.go keyword.map.go\",\"source.go keyword.channel.go\",\"source.go keyword.control.go\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#c792ea\"}},{\"scope\":[\"source.go constant.language.go\",\"source.go constant.other.placeholder.go\"],\"settings\":{\"foreground\":\"#ff5874\"}},{\"scope\":[\"entity.name.function.preprocessor.cpp\",\"entity.scope.name.cpp\"],\"settings\":{\"foreground\":\"#7fdbcaff\"}},{\"scope\":[\"meta.namespace-block.cpp\"],\"settings\":{\"foreground\":\"#e0dec6\"}},{\"scope\":[\"storage.type.language.primitive.cpp\"],\"settings\":{\"foreground\":\"#ff5874\"}},{\"scope\":[\"meta.preprocessor.macro.cpp\"],\"settings\":{\"foreground\":\"#d6deeb\"}},{\"scope\":[\"variable.parameter\"],\"settings\":{\"foreground\":\"#ffcb8b\"}},{\"scope\":[\"variable.other.readwrite.powershell\"],\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":[\"support.function.powershell\"],\"settings\":{\"foreground\":\"#7fdbcaff\"}},{\"scope\":\"entity.other.attribute-name.id.html\",\"settings\":{\"foreground\":\"#c5e478\"}},{\"scope\":\"punctuation.definition.tag.html\",\"settings\":{\"foreground\":\"#6ae9f0\"}},{\"scope\":\"meta.tag.sgml.doctype.html\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#c792ea\"}},{\"scope\":\"meta.class entity.name.type.class.js\",\"settings\":{\"foreground\":\"#ffcb8b\"}},{\"scope\":\"meta.method.declaration storage.type.js\",\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":\"terminator.js\",\"settings\":{\"foreground\":\"#d6deeb\"}},{\"scope\":\"meta.js punctuation.definition.js\",\"settings\":{\"foreground\":\"#d6deeb\"}},{\"scope\":[\"entity.name.type.instance.jsdoc\",\"entity.name.type.instance.phpdoc\"],\"settings\":{\"foreground\":\"#5f7e97\"}},{\"scope\":[\"variable.other.jsdoc\",\"variable.other.phpdoc\"],\"settings\":{\"foreground\":\"#78ccf0\"}},{\"scope\":[\"variable.other.meta.import.js\",\"meta.import.js variable.other\",\"variable.other.meta.export.js\",\"meta.export.js variable.other\"],\"settings\":{\"foreground\":\"#d6deeb\"}},{\"scope\":\"variable.parameter.function.js\",\"settings\":{\"foreground\":\"#7986E7\"}},{\"scope\":[\"variable.other.object.js\",\"variable.other.object.jsx\",\"variable.object.property.js\",\"variable.object.property.jsx\"],\"settings\":{\"foreground\":\"#d6deeb\"}},{\"scope\":[\"variable.js\",\"variable.other.js\"],\"settings\":{\"foreground\":\"#d6deeb\"}},{\"scope\":[\"entity.name.type.js\",\"entity.name.type.module.js\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#ffcb8b\"}},{\"scope\":\"support.class.js\",\"settings\":{\"foreground\":\"#d6deeb\"}},{\"scope\":\"support.type.property-name.json\",\"settings\":{\"foreground\":\"#7fdbca\"}},{\"scope\":\"support.constant.json\",\"settings\":{\"foreground\":\"#c5e478\"}},{\"scope\":\"meta.structure.dictionary.value.json string.quoted.double\",\"settings\":{\"foreground\":\"#c789d6\"}},{\"scope\":\"string.quoted.double.json punctuation.definition.string.json\",\"settings\":{\"foreground\":\"#80CBC4\"}},{\"scope\":\"meta.structure.dictionary.json meta.structure.dictionary.value constant.language\",\"settings\":{\"foreground\":\"#ff5874\"}},{\"scope\":\"variable.other.object.js\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#7fdbca\"}},{\"scope\":[\"variable.other.ruby\"],\"settings\":{\"foreground\":\"#d6deeb\"}},{\"scope\":[\"entity.name.type.class.ruby\"],\"settings\":{\"foreground\":\"#ecc48d\"}},{\"scope\":\"constant.language.symbol.hashkey.ruby\",\"settings\":{\"foreground\":\"#7fdbca\"}},{\"scope\":\"constant.language.symbol.ruby\",\"settings\":{\"foreground\":\"#7fdbca\"}},{\"scope\":\"entity.name.tag.less\",\"settings\":{\"foreground\":\"#7fdbca\"}},{\"scope\":\"keyword.other.unit.css\",\"settings\":{\"foreground\":\"#FFEB95\"}},{\"scope\":\"meta.attribute-selector.less entity.other.attribute-name.attribute\",\"settings\":{\"foreground\":\"#F78C6C\"}},{\"scope\":[\"markup.heading\",\"markup.heading.setext.1\",\"markup.heading.setext.2\"],\"settings\":{\"foreground\":\"#82b1ff\"}},{\"scope\":\"markup.italic\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#c792ea\"}},{\"scope\":\"markup.bold\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#c5e478\"}},{\"scope\":\"markup.quote\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#697098\"}},{\"scope\":\"markup.inline.raw\",\"settings\":{\"foreground\":\"#80CBC4\"}},{\"scope\":[\"markup.underline.link\",\"markup.underline.link.image\"],\"settings\":{\"foreground\":\"#ff869a\"}},{\"scope\":[\"string.other.link.title.markdown\",\"string.other.link.description.markdown\"],\"settings\":{\"foreground\":\"#d6deeb\"}},{\"scope\":[\"punctuation.definition.string.markdown\",\"punctuation.definition.string.begin.markdown\",\"punctuation.definition.string.end.markdown\",\"meta.link.inline.markdown punctuation.definition.string\"],\"settings\":{\"foreground\":\"#82b1ff\"}},{\"scope\":[\"punctuation.definition.metadata.markdown\"],\"settings\":{\"foreground\":\"#7fdbca\"}},{\"scope\":[\"beginning.punctuation.definition.list.markdown\"],\"settings\":{\"foreground\":\"#82b1ff\"}},{\"scope\":\"markup.inline.raw.string.markdown\",\"settings\":{\"foreground\":\"#c5e478\"}},{\"scope\":[\"variable.other.php\",\"variable.other.property.php\"],\"settings\":{\"foreground\":\"#bec5d4\"}},{\"scope\":\"support.class.php\",\"settings\":{\"foreground\":\"#ffcb8b\"}},{\"scope\":\"meta.function-call.php punctuation\",\"settings\":{\"foreground\":\"#d6deeb\"}},{\"scope\":\"variable.other.global.php\",\"settings\":{\"foreground\":\"#c5e478\"}},{\"scope\":\"variable.other.global.php punctuation.definition.variable\",\"settings\":{\"foreground\":\"#c5e478\"}},{\"scope\":\"constant.language.python\",\"settings\":{\"foreground\":\"#ff5874\"}},{\"scope\":[\"variable.parameter.function.python\",\"meta.function-call.arguments.python\"],\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":[\"meta.function-call.python\",\"meta.function-call.generic.python\"],\"settings\":{\"foreground\":\"#B2CCD6\"}},{\"scope\":\"punctuation.python\",\"settings\":{\"foreground\":\"#d6deeb\"}},{\"scope\":\"entity.name.function.decorator.python\",\"settings\":{\"foreground\":\"#c5e478\"}},{\"scope\":\"source.python variable.language.special\",\"settings\":{\"foreground\":\"#8EACE3\"}},{\"scope\":\"keyword.control\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#c792ea\"}},{\"scope\":[\"variable.scss\",\"variable.sass\",\"variable.parameter.url.scss\",\"variable.parameter.url.sass\"],\"settings\":{\"foreground\":\"#c5e478\"}},{\"scope\":[\"source.css.scss meta.at-rule variable\",\"source.css.sass meta.at-rule variable\"],\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":[\"source.css.scss meta.at-rule variable\",\"source.css.sass meta.at-rule variable\"],\"settings\":{\"foreground\":\"#bec5d4\"}},{\"scope\":[\"meta.attribute-selector.scss entity.other.attribute-name.attribute\",\"meta.attribute-selector.sass entity.other.attribute-name.attribute\"],\"settings\":{\"foreground\":\"#F78C6C\"}},{\"scope\":[\"entity.name.tag.scss\",\"entity.name.tag.sass\"],\"settings\":{\"foreground\":\"#7fdbca\"}},{\"scope\":[\"keyword.other.unit.scss\",\"keyword.other.unit.sass\"],\"settings\":{\"foreground\":\"#FFEB95\"}},{\"scope\":[\"variable.other.readwrite.alias.ts\",\"variable.other.readwrite.alias.tsx\",\"variable.other.readwrite.ts\",\"variable.other.readwrite.tsx\",\"variable.other.object.ts\",\"variable.other.object.tsx\",\"variable.object.property.ts\",\"variable.object.property.tsx\",\"variable.other.ts\",\"variable.other.tsx\",\"variable.tsx\",\"variable.ts\"],\"settings\":{\"foreground\":\"#d6deeb\"}},{\"scope\":[\"entity.name.type.ts\",\"entity.name.type.tsx\"],\"settings\":{\"foreground\":\"#ffcb8b\"}},{\"scope\":[\"support.class.node.ts\",\"support.class.node.tsx\"],\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":[\"meta.type.parameters.ts entity.name.type\",\"meta.type.parameters.tsx entity.name.type\"],\"settings\":{\"foreground\":\"#5f7e97\"}},{\"scope\":[\"meta.import.ts punctuation.definition.block\",\"meta.import.tsx punctuation.definition.block\",\"meta.export.ts punctuation.definition.block\",\"meta.export.tsx punctuation.definition.block\"],\"settings\":{\"foreground\":\"#d6deeb\"}},{\"scope\":[\"meta.decorator punctuation.decorator.ts\",\"meta.decorator punctuation.decorator.tsx\"],\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":\"meta.tag.js meta.jsx.children.tsx\",\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":\"entity.name.tag.yaml\",\"settings\":{\"foreground\":\"#7fdbca\"}},{\"scope\":[\"variable.other.readwrite.js\",\"variable.parameter\"],\"settings\":{\"foreground\":\"#d7dbe0\"}},{\"scope\":[\"support.class.component.js\",\"support.class.component.tsx\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#f78c6c\"}},{\"scope\":[\"meta.jsx.children\",\"meta.jsx.children.js\",\"meta.jsx.children.tsx\"],\"settings\":{\"foreground\":\"#d6deeb\"}},{\"scope\":\"meta.class entity.name.type.class.tsx\",\"settings\":{\"foreground\":\"#ffcb8b\"}},{\"scope\":[\"entity.name.type.tsx\",\"entity.name.type.module.tsx\"],\"settings\":{\"foreground\":\"#ffcb8b\"}},{\"scope\":[\"meta.class.ts meta.var.expr.ts storage.type.ts\",\"meta.class.tsx meta.var.expr.tsx storage.type.tsx\"],\"settings\":{\"foreground\":\"#C792EA\"}},{\"scope\":[\"meta.method.declaration storage.type.ts\",\"meta.method.declaration storage.type.tsx\"],\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":\"markup.deleted\",\"settings\":{\"foreground\":\"#ff0000\"}},{\"scope\":\"markup.inserted\",\"settings\":{\"foreground\":\"#036A07\"}},{\"scope\":\"markup.underline\",\"settings\":{\"fontStyle\":\"underline\"}},{\"scope\":[\"meta.property-list.css meta.property-value.css variable.other.less\",\"meta.property-list.scss variable.scss\",\"meta.property-list.sass variable.sass\",\"meta.brace\",\"keyword.operator.operator\",\"keyword.operator.or.regexp\",\"keyword.operator.expression.in\",\"keyword.operator.relational\",\"keyword.operator.assignment\",\"keyword.operator.comparison\",\"keyword.operator.type\",\"keyword.operator\",\"keyword\",\"punctuation.definintion.string\",\"punctuation\",\"variable.other.readwrite.js\",\"storage.type\",\"source.css\",\"string.quoted\"],\"settings\":{\"fontStyle\":\"\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/C3FkfJm5.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Wolfram\",\"fileTypes\":[\"wl\",\"m\",\"wls\",\"wlt\",\"mt\"],\"name\":\"wolfram\",\"patterns\":[{\"include\":\"#main\"}],\"repository\":{\"association-group\":{\"begin\":\"<\\\\\\\\|\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.associations.begin.wolfram\"}},\"end\":\"\\\\\\\\|>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.associations.end.wolfram\"}},\"name\":\"meta.associations.wolfram\",\"patterns\":[{\"include\":\"#expressions\"}]},\"brace-group\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.braces.begin.wolfram\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.braces.end.wolfram\"}},\"name\":\"meta.braces.wolfram\",\"patterns\":[{\"include\":\"#expressions\"}]},\"bracket-group\":{\"begin\":\"::\\\\\\\\[|\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.brackets.begin.wolfram\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.brackets.end.wolfram\"}},\"name\":\"meta.brackets.wolfram\",\"patterns\":[{\"include\":\"#expressions\"}]},\"comments\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\\\\\\\\*\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.wolfram\"}},\"end\":\"\\\\\\\\*\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.wolfram\"}},\"name\":\"comment.block\",\"patterns\":[{\"include\":\"#comments\"}]},{\"match\":\"\\\\\\\\*\\\\\\\\)\",\"name\":\"invalid.illegal.stray-comment-end.wolfram\"}]},\"escaped_character_symbols\":{\"patterns\":[{\"match\":\"System`\\\\\\\\\\\\\\\\\\\\\\\\[(?:F(?:ormalA|ormalAlpha|ormalB|ormalBeta|ormalC|ormalCapitalA|ormalCapitalAlpha|ormalCapitalB|ormalCapitalBeta|ormalCapitalC|ormalCapitalChi|ormalCapitalD|ormalCapitalDelta|ormalCapitalDigamma|ormalCapitalE|ormalCapitalEpsilon|ormalCapitalEta|ormalCapitalF|ormalCapitalG|ormalCapitalGamma|ormalCapitalH|ormalCapitalI|ormalCapitalIota|ormalCapitalJ|ormalCapitalK|ormalCapitalKappa|ormalCapitalKoppa|ormalCapitalL|ormalCapitalLambda|ormalCapitalM|ormalCapitalMu|ormalCapitalN|ormalCapitalNu|ormalCapitalO|ormalCapitalOmega|ormalCapitalOmicron|ormalCapitalP|ormalCapitalPhi|ormalCapitalPi|ormalCapitalPsi|ormalCapitalQ|ormalCapitalR|ormalCapitalRho|ormalCapitalS|ormalCapitalSampi|ormalCapitalSigma|ormalCapitalStigma|ormalCapitalT|ormalCapitalTau|ormalCapitalTheta|ormalCapitalU|ormalCapitalUpsilon|ormalCapitalV|ormalCapitalW|ormalCapitalX|ormalCapitalXi|ormalCapitalY|ormalCapitalZ|ormalCapitalZeta|ormalChi|ormalCurlyCapitalUpsilon|ormalCurlyEpsilon|ormalCurlyKappa|ormalCurlyPhi|ormalCurlyPi|ormalCurlyRho|ormalCurlyTheta|ormalD|ormalDelta|ormalDigamma|ormalE|ormalEpsilon|ormalEta|ormalF|ormalFinalSigma|ormalG|ormalGamma|ormalH|ormalI|ormalIota|ormalJ|ormalK|ormalKappa|ormalKoppa|ormalL|ormalLambda|ormalM|ormalMu|ormalN|ormalNu|ormalO|ormalOmega|ormalOmicron|ormalP|ormalPhi|ormalPi|ormalPsi|ormalQ|ormalR|ormalRho|ormalS|ormalSampi|ormalScriptA|ormalScriptB|ormalScriptC|ormalScriptCapitalA|ormalScriptCapitalB|ormalScriptCapitalC|ormalScriptCapitalD|ormalScriptCapitalE|ormalScriptCapitalF|ormalScriptCapitalG|ormalScriptCapitalH|ormalScriptCapitalI|ormalScriptCapitalJ|ormalScriptCapitalK|ormalScriptCapitalL|ormalScriptCapitalM|ormalScriptCapitalN|ormalScriptCapitalO|ormalScriptCapitalP|ormalScriptCapitalQ|ormalScriptCapitalR|ormalScriptCapitalS|ormalScriptCapitalT|ormalScriptCapitalU|ormalScriptCapitalV|ormalScriptCapitalW|ormalScriptCapitalX|ormalScriptCapitalY|ormalScriptCapitalZ|ormalScriptD|ormalScriptE|ormalScriptF|ormalScriptG|ormalScriptH|ormalScriptI|ormalScriptJ|ormalScriptK|ormalScriptL|ormalScriptM|ormalScriptN|ormalScriptO|ormalScriptP|ormalScriptQ|ormalScriptR|ormalScriptS|ormalScriptT|ormalScriptU|ormalScriptV|ormalScriptW|ormalScriptX|ormalScriptY|ormalScriptZ|ormalSigma|ormalStigma|ormalT|ormalTau|ormalTheta|ormalU|ormalUpsilon|ormalV|ormalW|ormalX|ormalXi|ormalY|ormalZ|ormalZeta))\\\\\\\\](?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`\\\\\\\\\\\\\\\\\\\\\\\\[(?:S(?:ystemsModelDelay))\\\\\\\\](?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:F(?:ormalA|ormalAlpha|ormalB|ormalBeta|ormalC|ormalCapitalA|ormalCapitalAlpha|ormalCapitalB|ormalCapitalBeta|ormalCapitalC|ormalCapitalChi|ormalCapitalD|ormalCapitalDelta|ormalCapitalDigamma|ormalCapitalE|ormalCapitalEpsilon|ormalCapitalEta|ormalCapitalF|ormalCapitalG|ormalCapitalGamma|ormalCapitalH|ormalCapitalI|ormalCapitalIota|ormalCapitalJ|ormalCapitalK|ormalCapitalKappa|ormalCapitalKoppa|ormalCapitalL|ormalCapitalLambda|ormalCapitalM|ormalCapitalMu|ormalCapitalN|ormalCapitalNu|ormalCapitalO|ormalCapitalOmega|ormalCapitalOmicron|ormalCapitalP|ormalCapitalPhi|ormalCapitalPi|ormalCapitalPsi|ormalCapitalQ|ormalCapitalR|ormalCapitalRho|ormalCapitalS|ormalCapitalSampi|ormalCapitalSigma|ormalCapitalStigma|ormalCapitalT|ormalCapitalTau|ormalCapitalTheta|ormalCapitalU|ormalCapitalUpsilon|ormalCapitalV|ormalCapitalW|ormalCapitalX|ormalCapitalXi|ormalCapitalY|ormalCapitalZ|ormalCapitalZeta|ormalChi|ormalCurlyCapitalUpsilon|ormalCurlyEpsilon|ormalCurlyKappa|ormalCurlyPhi|ormalCurlyPi|ormalCurlyRho|ormalCurlyTheta|ormalD|ormalDelta|ormalDigamma|ormalE|ormalEpsilon|ormalEta|ormalF|ormalFinalSigma|ormalG|ormalGamma|ormalH|ormalI|ormalIota|ormalJ|ormalK|ormalKappa|ormalKoppa|ormalL|ormalLambda|ormalM|ormalMu|ormalN|ormalNu|ormalO|ormalOmega|ormalOmicron|ormalP|ormalPhi|ormalPi|ormalPsi|ormalQ|ormalR|ormalRho|ormalS|ormalSampi|ormalScriptA|ormalScriptB|ormalScriptC|ormalScriptCapitalA|ormalScriptCapitalB|ormalScriptCapitalC|ormalScriptCapitalD|ormalScriptCapitalE|ormalScriptCapitalF|ormalScriptCapitalG|ormalScriptCapitalH|ormalScriptCapitalI|ormalScriptCapitalJ|ormalScriptCapitalK|ormalScriptCapitalL|ormalScriptCapitalM|ormalScriptCapitalN|ormalScriptCapitalO|ormalScriptCapitalP|ormalScriptCapitalQ|ormalScriptCapitalR|ormalScriptCapitalS|ormalScriptCapitalT|ormalScriptCapitalU|ormalScriptCapitalV|ormalScriptCapitalW|ormalScriptCapitalX|ormalScriptCapitalY|ormalScriptCapitalZ|ormalScriptD|ormalScriptE|ormalScriptF|ormalScriptG|ormalScriptH|ormalScriptI|ormalScriptJ|ormalScriptK|ormalScriptL|ormalScriptM|ormalScriptN|ormalScriptO|ormalScriptP|ormalScriptQ|ormalScriptR|ormalScriptS|ormalScriptT|ormalScriptU|ormalScriptV|ormalScriptW|ormalScriptX|ormalScriptY|ormalScriptZ|ormalSigma|ormalStigma|ormalT|ormalTau|ormalTheta|ormalU|ormalUpsilon|ormalV|ormalW|ormalX|ormalXi|ormalY|ormalZ|ormalZeta))\\\\\\\\](?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:S(?:ystemsModelDelay))\\\\\\\\](?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:D(?:egree))\\\\\\\\](?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:E(?:xponentialE))\\\\\\\\](?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:I(?:maginaryI|maginaryJ|nfinity))\\\\\\\\](?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:P(?:i))\\\\\\\\](?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"}]},\"escaped_characters\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[!%&()*+/@^_` ]\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:A(?:kuz|ndy))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape.undocumented\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:C(?:ontinuedFractionK|url))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape.undocumented\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:D(?:ivergence|ivisionSlash))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape.undocumented\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:E(?:xpectationE))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape.undocumented\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:F(?:reeformPrompt))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape.undocumented\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:G(?:radient))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape.undocumented\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:L(?:aplacian))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape.undocumented\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:M(?:inus|oon))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape.undocumented\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:N(?:umberComma))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape.undocumented\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:P(?:ageBreakAbove|ageBreakBelow|robabilityPr))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape.undocumented\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:S(?:pooky|tepperDown|tepperLeft|tepperRight|tepperUp|un))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape.undocumented\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:U(?:nknownGlyph))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape.undocumented\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:V(?:illa))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape.undocumented\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:W(?:olframAlphaPrompt))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape.undocumented\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:C(?:OMPATIBILITYKanjiSpace|OMPATIBILITYNoBreak))\\\\\\\\]\",\"name\":\"invalid.illegal.unsupported\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:I(?:nlinePart))\\\\\\\\]\",\"name\":\"invalid.illegal.unsupported\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:A(?:Acute|Bar|Cup|DoubleDot|E|Grave|Hat|Ring|Tilde|leph|liasDelimiter|liasIndicator|lignmentMarker|lpha|ltKey|nd|ngle|ngstrom|pplication|quariusSign|riesSign|scendingEllipsis|utoLeftMatch|utoOperand|utoPlaceholder|utoRightMatch|utoSpace))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:B(?:ackslash|eamedEighthNote|eamedSixteenthNote|ecause|et|eta|lackBishop|lackKing|lackKnight|lackPawn|lackQueen|lackRook|reve|ullet))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:C(?:Acute|Cedilla|Hacek|ancerSign|ap|apitalAAcute|apitalABar|apitalACup|apitalADoubleDot|apitalAE|apitalAGrave|apitalAHat|apitalARing|apitalATilde|apitalAlpha|apitalBeta|apitalCAcute|apitalCCedilla|apitalCHacek|apitalChi|apitalDHacek|apitalDelta|apitalDifferentialD|apitalDigamma|apitalEAcute|apitalEBar|apitalECup|apitalEDoubleDot|apitalEGrave|apitalEHacek|apitalEHat|apitalEpsilon|apitalEta|apitalEth|apitalGamma|apitalIAcute|apitalICup|apitalIDoubleDot|apitalIGrave|apitalIHat|apitalIota|apitalKappa|apitalKoppa|apitalLSlash|apitalLambda|apitalMu|apitalNHacek|apitalNTilde|apitalNu|apitalOAcute|apitalODoubleAcute|apitalODoubleDot|apitalOE|apitalOGrave|apitalOHat|apitalOSlash|apitalOTilde|apitalOmega|apitalOmicron|apitalPhi|apitalPi|apitalPsi|apitalRHacek|apitalRho|apitalSHacek|apitalSampi|apitalSigma|apitalStigma|apitalTHacek|apitalTau|apitalTheta|apitalThorn|apitalUAcute|apitalUDoubleAcute|apitalUDoubleDot|apitalUGrave|apitalUHat|apitalURing|apitalUpsilon|apitalXi|apitalYAcute|apitalZHacek|apitalZeta|apricornSign|edilla|ent|enterDot|enterEllipsis|heckedBox|heckmark|heckmarkedBox|hi|ircleDot|ircleMinus|irclePlus|ircleTimes|lockwiseContourIntegral|loseCurlyDoubleQuote|loseCurlyQuote|loverLeaf|lubSuit|olon|ommandKey|onditioned|ongruent|onjugate|onjugateTranspose|onstantC|ontinuation|ontourIntegral|ontrolKey|oproduct|opyright|ounterClockwiseContourIntegral|ross|ubeRoot|up|upCap|urlyCapitalUpsilon|urlyEpsilon|urlyKappa|urlyPhi|urlyPi|urlyRho|urlyTheta|urrency))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:D(?:Hacek|agger|alet|ash|egree|el|eleteKey|elta|escendingEllipsis|iameter|iamond|iamondSuit|ifferenceDelta|ifferentialD|igamma|irectedEdge|iscreteRatio|iscreteShift|iscretionaryHyphen|iscretionaryLineSeparator|iscretionaryPageBreakAbove|iscretionaryPageBreakBelow|iscretionaryParagraphSeparator|istributed|ivide|ivides|otEqual|otlessI|otlessJ|ottedSquare|oubleContourIntegral|oubleDagger|oubleDot|oubleDownArrow|oubleLeftArrow|oubleLeftRightArrow|oubleLeftTee|oubleLongLeftArrow|oubleLongLeftRightArrow|oubleLongRightArrow|oublePrime|oubleRightArrow|oubleRightTee|oubleStruckA|oubleStruckB|oubleStruckC|oubleStruckCapitalA|oubleStruckCapitalB|oubleStruckCapitalC|oubleStruckCapitalD|oubleStruckCapitalE|oubleStruckCapitalF|oubleStruckCapitalG|oubleStruckCapitalH|oubleStruckCapitalI|oubleStruckCapitalJ|oubleStruckCapitalK|oubleStruckCapitalL|oubleStruckCapitalM|oubleStruckCapitalN|oubleStruckCapitalO|oubleStruckCapitalP|oubleStruckCapitalQ|oubleStruckCapitalR|oubleStruckCapitalS|oubleStruckCapitalT|oubleStruckCapitalU|oubleStruckCapitalV|oubleStruckCapitalW|oubleStruckCapitalX|oubleStruckCapitalY|oubleStruckCapitalZ|oubleStruckD|oubleStruckE|oubleStruckEight|oubleStruckF|oubleStruckFive|oubleStruckFour|oubleStruckG|oubleStruckH|oubleStruckI|oubleStruckJ|oubleStruckK|oubleStruckL|oubleStruckM|oubleStruckN|oubleStruckNine|oubleStruckO|oubleStruckOne|oubleStruckP|oubleStruckQ|oubleStruckR|oubleStruckS|oubleStruckSeven|oubleStruckSix|oubleStruckT|oubleStruckThree|oubleStruckTwo|oubleStruckU|oubleStruckV|oubleStruckW|oubleStruckX|oubleStruckY|oubleStruckZ|oubleStruckZero|oubleUpArrow|oubleUpDownArrow|oubleVerticalBar|oubledGamma|oubledPi|ownArrow|ownArrowBar|ownArrowUpArrow|ownBreve|ownExclamation|ownLeftRightVector|ownLeftTeeVector|ownLeftVector|ownLeftVectorBar|ownPointer|ownQuestion|ownRightTeeVector|ownRightVector|ownRightVectorBar|ownTee|ownTeeArrow))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:E(?:Acute|Bar|Cup|DoubleDot|Grave|Hacek|Hat|arth|ighthNote|lement|llipsis|mptyCircle|mptyDiamond|mptyDownTriangle|mptyRectangle|mptySet|mptySmallCircle|mptySmallSquare|mptySquare|mptyUpTriangle|mptyVerySmallSquare|nterKey|ntityEnd|ntityStart|psilon|qual|qualTilde|quilibrium|quivalent|rrorIndicator|scapeKey|ta|th|uro|xists|xponentialE))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:F(?:iLigature|illedCircle|illedDiamond|illedDownTriangle|illedLeftTriangle|illedRectangle|illedRightTriangle|illedSmallCircle|illedSmallSquare|illedSquare|illedUpTriangle|illedVerySmallSquare|inalSigma|irstPage|ivePointedStar|lLigature|lat|lorin|orAll|ormalA|ormalAlpha|ormalB|ormalBeta|ormalC|ormalCapitalA|ormalCapitalAlpha|ormalCapitalB|ormalCapitalBeta|ormalCapitalC|ormalCapitalChi|ormalCapitalD|ormalCapitalDelta|ormalCapitalDigamma|ormalCapitalE|ormalCapitalEpsilon|ormalCapitalEta|ormalCapitalF|ormalCapitalG|ormalCapitalGamma|ormalCapitalH|ormalCapitalI|ormalCapitalIota|ormalCapitalJ|ormalCapitalK|ormalCapitalKappa|ormalCapitalKoppa|ormalCapitalL|ormalCapitalLambda|ormalCapitalM|ormalCapitalMu|ormalCapitalN|ormalCapitalNu|ormalCapitalO|ormalCapitalOmega|ormalCapitalOmicron|ormalCapitalP|ormalCapitalPhi|ormalCapitalPi|ormalCapitalPsi|ormalCapitalQ|ormalCapitalR|ormalCapitalRho|ormalCapitalS|ormalCapitalSampi|ormalCapitalSigma|ormalCapitalStigma|ormalCapitalT|ormalCapitalTau|ormalCapitalTheta|ormalCapitalU|ormalCapitalUpsilon|ormalCapitalV|ormalCapitalW|ormalCapitalX|ormalCapitalXi|ormalCapitalY|ormalCapitalZ|ormalCapitalZeta|ormalChi|ormalCurlyCapitalUpsilon|ormalCurlyEpsilon|ormalCurlyKappa|ormalCurlyPhi|ormalCurlyPi|ormalCurlyRho|ormalCurlyTheta|ormalD|ormalDelta|ormalDigamma|ormalE|ormalEpsilon|ormalEta|ormalF|ormalFinalSigma|ormalG|ormalGamma|ormalH|ormalI|ormalIota|ormalJ|ormalK|ormalKappa|ormalKoppa|ormalL|ormalLambda|ormalM|ormalMu|ormalN|ormalNu|ormalO|ormalOmega|ormalOmicron|ormalP|ormalPhi|ormalPi|ormalPsi|ormalQ|ormalR|ormalRho|ormalS|ormalSampi|ormalScriptA|ormalScriptB|ormalScriptC|ormalScriptCapitalA|ormalScriptCapitalB|ormalScriptCapitalC|ormalScriptCapitalD|ormalScriptCapitalE|ormalScriptCapitalF|ormalScriptCapitalG|ormalScriptCapitalH|ormalScriptCapitalI|ormalScriptCapitalJ|ormalScriptCapitalK|ormalScriptCapitalL|ormalScriptCapitalM|ormalScriptCapitalN|ormalScriptCapitalO|ormalScriptCapitalP|ormalScriptCapitalQ|ormalScriptCapitalR|ormalScriptCapitalS|ormalScriptCapitalT|ormalScriptCapitalU|ormalScriptCapitalV|ormalScriptCapitalW|ormalScriptCapitalX|ormalScriptCapitalY|ormalScriptCapitalZ|ormalScriptD|ormalScriptE|ormalScriptF|ormalScriptG|ormalScriptH|ormalScriptI|ormalScriptJ|ormalScriptK|ormalScriptL|ormalScriptM|ormalScriptN|ormalScriptO|ormalScriptP|ormalScriptQ|ormalScriptR|ormalScriptS|ormalScriptT|ormalScriptU|ormalScriptV|ormalScriptW|ormalScriptX|ormalScriptY|ormalScriptZ|ormalSigma|ormalStigma|ormalT|ormalTau|ormalTheta|ormalU|ormalUpsilon|ormalV|ormalW|ormalX|ormalXi|ormalY|ormalZ|ormalZeta|reakedSmiley|unction))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:G(?:amma|eminiSign|imel|othicA|othicB|othicC|othicCapitalA|othicCapitalB|othicCapitalC|othicCapitalD|othicCapitalE|othicCapitalF|othicCapitalG|othicCapitalH|othicCapitalI|othicCapitalJ|othicCapitalK|othicCapitalL|othicCapitalM|othicCapitalN|othicCapitalO|othicCapitalP|othicCapitalQ|othicCapitalR|othicCapitalS|othicCapitalT|othicCapitalU|othicCapitalV|othicCapitalW|othicCapitalX|othicCapitalY|othicCapitalZ|othicD|othicE|othicEight|othicF|othicFive|othicFour|othicG|othicH|othicI|othicJ|othicK|othicL|othicM|othicN|othicNine|othicO|othicOne|othicP|othicQ|othicR|othicS|othicSeven|othicSix|othicT|othicThree|othicTwo|othicU|othicV|othicW|othicX|othicY|othicZ|othicZero|rayCircle|raySquare|reaterEqual|reaterEqualLess|reaterFullEqual|reaterGreater|reaterLess|reaterSlantEqual|reaterTilde))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:H(?:Bar|acek|appySmiley|eartSuit|ermitianConjugate|orizontalLine|umpDownHump|umpEqual|yphen))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:I(?:Acute|Cup|DoubleDot|Grave|Hat|maginaryI|maginaryJ|mplicitPlus|mplies|ndentingNewLine|nfinity|ntegral|ntersection|nvisibleApplication|nvisibleComma|nvisiblePostfixScriptBase|nvisiblePrefixScriptBase|nvisibleSpace|nvisibleTimes|ota))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:J(?:upiter))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:K(?:appa|ernelIcon|eyBar|oppa))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:L(?:Slash|ambda|astPage|eftAngleBracket|eftArrow|eftArrowBar|eftArrowRightArrow|eftAssociation|eftBracketingBar|eftCeiling|eftDoubleBracket|eftDoubleBracketingBar|eftDownTeeVector|eftDownVector|eftDownVectorBar|eftFloor|eftGuillemet|eftModified|eftPointer|eftRightArrow|eftRightVector|eftSkeleton|eftTee|eftTeeArrow|eftTeeVector|eftTriangle|eftTriangleBar|eftTriangleEqual|eftUpDownVector|eftUpTeeVector|eftUpVector|eftUpVectorBar|eftVector|eftVectorBar|eoSign|essEqual|essEqualGreater|essFullEqual|essGreater|essLess|essSlantEqual|essTilde|etterSpace|ibraSign|ightBulb|imit|ineSeparator|ongDash|ongEqual|ongLeftArrow|ongLeftRightArrow|ongRightArrow|owerLeftArrow|owerRightArrow))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:M(?:ars|athematicaIcon|axLimit|easuredAngle|ediumSpace|ercury|ho|icro|inLimit|inusPlus|od1Key|od2Key|u))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:N(?:Hacek|Tilde|and|atural|egativeMediumSpace|egativeThickSpace|egativeThinSpace|egativeVeryThinSpace|eptune|estedGreaterGreater|estedLessLess|eutralSmiley|ewLine|oBreak|onBreakingSpace|or|ot|otCongruent|otCupCap|otDoubleVerticalBar|otElement|otEqual|otEqualTilde|otExists|otGreater|otGreaterEqual|otGreaterFullEqual|otGreaterGreater|otGreaterLess|otGreaterSlantEqual|otGreaterTilde|otHumpDownHump|otHumpEqual|otLeftTriangle|otLeftTriangleBar|otLeftTriangleEqual|otLess|otLessEqual|otLessFullEqual|otLessGreater|otLessLess|otLessSlantEqual|otLessTilde|otNestedGreaterGreater|otNestedLessLess|otPrecedes|otPrecedesEqual|otPrecedesSlantEqual|otPrecedesTilde|otReverseElement|otRightTriangle|otRightTriangleBar|otRightTriangleEqual|otSquareSubset|otSquareSubsetEqual|otSquareSuperset|otSquareSupersetEqual|otSubset|otSubsetEqual|otSucceeds|otSucceedsEqual|otSucceedsSlantEqual|otSucceedsTilde|otSuperset|otSupersetEqual|otTilde|otTildeEqual|otTildeFullEqual|otTildeTilde|otVerticalBar|u|ull|umberSign))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:O(?:Acute|DoubleAcute|DoubleDot|E|Grave|Hat|Slash|Tilde|mega|micron|penCurlyDoubleQuote|penCurlyQuote|ptionKey|r|verBrace|verBracket|verParenthesis))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:P(?:aragraph|aragraphSeparator|artialD|ermutationProduct|erpendicular|hi|i|iecewise|iscesSign|laceholder|lusMinus|luto|recedes|recedesEqual|recedesSlantEqual|recedesTilde|rime|roduct|roportion|roportional|si))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:Q(?:uarterNote))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:R(?:Hacek|awAmpersand|awAt|awBackquote|awBackslash|awColon|awComma|awDash|awDollar|awDot|awDoubleQuote|awEqual|awEscape|awExclamation|awGreater|awLeftBrace|awLeftBracket|awLeftParenthesis|awLess|awNumberSign|awPercent|awPlus|awQuestion|awQuote|awReturn|awRightBrace|awRightBracket|awRightParenthesis|awSemicolon|awSlash|awSpace|awStar|awTab|awTilde|awUnderscore|awVerticalBar|awWedge|egisteredTrademark|eturnIndicator|eturnKey|everseDoublePrime|everseElement|everseEquilibrium|eversePrime|everseUpEquilibrium|ho|ightAngle|ightAngleBracket|ightArrow|ightArrowBar|ightArrowLeftArrow|ightAssociation|ightBracketingBar|ightCeiling|ightDoubleBracket|ightDoubleBracketingBar|ightDownTeeVector|ightDownVector|ightDownVectorBar|ightFloor|ightGuillemet|ightModified|ightPointer|ightSkeleton|ightTee|ightTeeArrow|ightTeeVector|ightTriangle|ightTriangleBar|ightTriangleEqual|ightUpDownVector|ightUpTeeVector|ightUpVector|ightUpVectorBar|ightVector|ightVectorBar|oundImplies|oundSpaceIndicator|ule|uleDelayed|upee))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:S(?:Hacek|Z|adSmiley|agittariusSign|ampi|aturn|corpioSign|criptA|criptB|criptC|criptCapitalA|criptCapitalB|criptCapitalC|criptCapitalD|criptCapitalE|criptCapitalF|criptCapitalG|criptCapitalH|criptCapitalI|criptCapitalJ|criptCapitalK|criptCapitalL|criptCapitalM|criptCapitalN|criptCapitalO|criptCapitalP|criptCapitalQ|criptCapitalR|criptCapitalS|criptCapitalT|criptCapitalU|criptCapitalV|criptCapitalW|criptCapitalX|criptCapitalY|criptCapitalZ|criptD|criptDotlessI|criptDotlessJ|criptE|criptEight|criptF|criptFive|criptFour|criptG|criptH|criptI|criptJ|criptK|criptL|criptM|criptN|criptNine|criptO|criptOne|criptP|criptQ|criptR|criptS|criptSeven|criptSix|criptT|criptThree|criptTwo|criptU|criptV|criptW|criptX|criptY|criptZ|criptZero|ection|electionPlaceholder|hah|harp|hiftKey|hortDownArrow|hortLeftArrow|hortRightArrow|hortUpArrow|igma|ixPointedStar|keletonIndicator|mallCircle|paceIndicator|paceKey|padeSuit|panFromAbove|panFromBoth|panFromLeft|phericalAngle|qrt|quare|quareIntersection|quareSubset|quareSubsetEqual|quareSuperset|quareSupersetEqual|quareUnion|tar|terling|tigma|ubset|ubsetEqual|ucceeds|ucceedsEqual|ucceedsSlantEqual|ucceedsTilde|uchThat|um|uperset|upersetEqual|ystemEnterKey|ystemsModelDelay))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:T(?:Hacek|abKey|au|aurusSign|ensorProduct|ensorWedge|herefore|heta|hickSpace|hinSpace|horn|ilde|ildeEqual|ildeFullEqual|ildeTilde|imes|rademark|ranspose|ripleDot|woWayRule))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:U(?:Acute|DoubleAcute|DoubleDot|Grave|Hat|Ring|nderBrace|nderBracket|nderParenthesis|ndirectedEdge|nion|nionPlus|pArrow|pArrowBar|pArrowDownArrow|pDownArrow|pEquilibrium|pPointer|pTee|pTeeArrow|pperLeftArrow|pperRightArrow|psilon|ranus))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:V(?:ectorGreater|ectorGreaterEqual|ectorLess|ectorLessEqual|ee|enus|erticalBar|erticalEllipsis|erticalLine|erticalSeparator|erticalTilde|eryThinSpace|irgoSign))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:W(?:arningSign|atchIcon|edge|eierstrassP|hiteBishop|hiteKing|hiteKnight|hitePawn|hiteQueen|hiteRook|olf|olframLanguageLogo|olframLanguageLogoCircle))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:X(?:i|nor|or))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:Y(?:Acute|DoubleDot|en))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:Z(?:Hacek|eta))\\\\\\\\]\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\[(?:[$[:alpha:]][$[:alnum:]]*)?\\\\\\\\]?\",\"name\":\"invalid.illegal.BadLongName\"},{\"match\":\"\\\\\\\\\\\\\\\\(?:[$[:alpha:]][$[:alnum:]]*)\\\\\\\\]\",\"name\":\"invalid.illegal.BadLongName\"},{\"match\":\"\\\\\\\\\\\\\\\\:\\\\\\\\h{4}\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\:\\\\\\\\h{1,3}\",\"name\":\"invalid.illegal\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\.\\\\\\\\h{2}\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\.\\\\\\\\h{1}\",\"name\":\"invalid.illegal\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\|0\\\\\\\\h{5}\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\|10\\\\\\\\h{4}\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\|\\\\\\\\h{1,6}\",\"name\":\"invalid.illegal\"},{\"match\":\"\\\\\\\\\\\\\\\\[0-7]{3}\",\"name\":\"donothighlight.constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\[0-7]{1,2}\",\"name\":\"invalid.illegal\"},{\"match\":\"\\\\\\\\\\\\\\\\$\",\"name\":\"donothighlight.constant.character.escape punctuation.separator.continuation\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"invalid.illegal\"}]},\"expressions\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#escaped_character_symbols\"},{\"include\":\"#escaped_characters\"},{\"include\":\"#out\"},{\"include\":\"#slot\"},{\"include\":\"#literals\"},{\"include\":\"#groups\"},{\"include\":\"#stringifying-operators\"},{\"include\":\"#operators\"},{\"include\":\"#pattern-operators\"},{\"include\":\"#symbols\"},{\"match\":\"(?:!|&|\\'|\\\\\\\\*|\\\\\\\\+|,|-|\\\\\\\\.|/|:|;|<|=|>|\\\\\\\\?|@|\\\\\\\\\\\\\\\\|\\\\\\\\^|\\\\\\\\||~)\",\"name\":\"invalid.illegal\"}]},\"groups\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\)\",\"name\":\"invalid.illegal.stray-linearsyntaxparens-end.wolfram\"},{\"match\":\"\\\\\\\\)\",\"name\":\"invalid.illegal.stray-parens-end.wolfram\"},{\"match\":\"\\\\\\\\[\\\\\\\\s+\\\\\\\\[\",\"name\":\"invalid.whitespace.Part.wolfram\"},{\"match\":\"\\\\\\\\]\\\\\\\\s+\\\\\\\\]\",\"name\":\"invalid.whitespace.Part.wolfram\"},{\"match\":\"\\\\\\\\]\\\\\\\\]\",\"name\":\"invalid.illegal.stray-parts-end.wolfram\"},{\"match\":\"\\\\\\\\]\",\"name\":\"invalid.illegal.stray-brackets-end.wolfram\"},{\"match\":\"\\\\\\\\}\",\"name\":\"invalid.illegal.stray-braces-end.wolfram\"},{\"match\":\"\\\\\\\\|>\",\"name\":\"invalid.illegal.stray-associations-end.wolfram\"},{\"include\":\"#linearsyntaxparen-group\"},{\"include\":\"#paren-group\"},{\"include\":\"#part-group\"},{\"include\":\"#bracket-group\"},{\"include\":\"#brace-group\"},{\"include\":\"#association-group\"}]},\"linearsyntaxparen-group\":{\"begin\":\"\\\\\\\\\\\\\\\\\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.linearsyntaxparens.begin.wolfram\"}},\"end\":\"\\\\\\\\\\\\\\\\\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.linearsyntaxparens.end.wolfram\"}},\"name\":\"meta.linearsyntaxparens.wolfram\",\"patterns\":[{\"include\":\"#expressions\"}]},\"literals\":{\"patterns\":[{\"include\":\"#numbers\"},{\"include\":\"#strings\"}]},\"main\":{\"patterns\":[{\"include\":\"#shebang\"},{\"include\":\"#simple-toplevel-definitions\"},{\"include\":\"#expressions\"}]},\"numbers\":{\"patterns\":[{\"match\":\"2\\\\\\\\^\\\\\\\\^(?:(?:0|1)+(?:\\\\\\\\.(?!\\\\\\\\.)(?:0|1)*)?+|\\\\\\\\.(?!\\\\\\\\.)(?:0|1)+)(?:``(?:(?:-|\\\\\\\\+)?+(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+)))(?:\\\\\\\\*\\\\\\\\^(?:-|\\\\\\\\+)?+\\\\\\\\d+)\",\"name\":\"constant.numeric.wolfram\"},{\"match\":\"2\\\\\\\\^\\\\\\\\^(?:(?:0|1)+(?:\\\\\\\\.(?!\\\\\\\\.)(?:0|1)*)?+|\\\\\\\\.(?!\\\\\\\\.)(?:0|1)+)(?:``(?:(?:-|\\\\\\\\+)?+(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+)))\\\\\\\\*\\\\\\\\^\",\"name\":\"invalid.illegal\"},{\"match\":\"2\\\\\\\\^\\\\\\\\^(?:(?:0|1)+(?:\\\\\\\\.(?!\\\\\\\\.)(?:0|1)*)?+|\\\\\\\\.(?!\\\\\\\\.)(?:0|1)+)(?:``(?:(?:-|\\\\\\\\+)?+(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+)))\",\"name\":\"constant.numeric.wolfram\"},{\"match\":\"2\\\\\\\\^\\\\\\\\^(?:(?:0|1)+(?:\\\\\\\\.(?!\\\\\\\\.)(?:0|1)*)?+|\\\\\\\\.(?!\\\\\\\\.)(?:0|1)+)``\",\"name\":\"invalid.illegal\"},{\"match\":\"2\\\\\\\\^\\\\\\\\^(?:(?:0|1)+(?:\\\\\\\\.(?!\\\\\\\\.)(?:0|1)*)?+|\\\\\\\\.(?!\\\\\\\\.)(?:0|1)+)(?:`(?:(?:-|\\\\\\\\+)?+(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+))?+)(?:\\\\\\\\*\\\\\\\\^(?:-|\\\\\\\\+)?+\\\\\\\\d+)\",\"name\":\"constant.numeric.wolfram\"},{\"match\":\"2\\\\\\\\^\\\\\\\\^(?:(?:0|1)+(?:\\\\\\\\.(?!\\\\\\\\.)(?:0|1)*)?+|\\\\\\\\.(?!\\\\\\\\.)(?:0|1)+)(?:`(?:(?:-|\\\\\\\\+)?+(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+))?+)\\\\\\\\*\\\\\\\\^\",\"name\":\"invalid.illegal\"},{\"match\":\"2\\\\\\\\^\\\\\\\\^(?:(?:0|1)+(?:\\\\\\\\.(?!\\\\\\\\.)(?:0|1)*)?+|\\\\\\\\.(?!\\\\\\\\.)(?:0|1)+)(?:`(?:(?:-|\\\\\\\\+)?+(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+))?+)\",\"name\":\"constant.numeric.wolfram\"},{\"match\":\"2\\\\\\\\^\\\\\\\\^(?:(?:0|1)+(?:\\\\\\\\.(?!\\\\\\\\.)(?:0|1)*)?+|\\\\\\\\.(?!\\\\\\\\.)(?:0|1)+)(?:\\\\\\\\*\\\\\\\\^(?:-|\\\\\\\\+)?+\\\\\\\\d+)\",\"name\":\"constant.numeric.wolfram\"},{\"match\":\"2\\\\\\\\^\\\\\\\\^(?:(?:0|1)+(?:\\\\\\\\.(?!\\\\\\\\.)(?:0|1)*)?+|\\\\\\\\.(?!\\\\\\\\.)(?:0|1)+)\\\\\\\\*\\\\\\\\^\",\"name\":\"invalid.illegal\"},{\"match\":\"2\\\\\\\\^\\\\\\\\^(?:(?:0|1)+(?:\\\\\\\\.(?!\\\\\\\\.)(?:0|1)*)?+|\\\\\\\\.(?!\\\\\\\\.)(?:0|1)+)\",\"name\":\"constant.numeric.wolfram\"},{\"match\":\"2\\\\\\\\^\\\\\\\\^\",\"name\":\"invalid.illegal\"},{\"match\":\"8\\\\\\\\^\\\\\\\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\\\\\\\.(?!\\\\\\\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\\\\\\\.(?!\\\\\\\\.)(?:0|1|2|3|4|5|6|7)+)(?:``(?:(?:-|\\\\\\\\+)?+(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+)))(?:\\\\\\\\*\\\\\\\\^(?:-|\\\\\\\\+)?+\\\\\\\\d+)\",\"name\":\"constant.numeric.wolfram\"},{\"match\":\"8\\\\\\\\^\\\\\\\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\\\\\\\.(?!\\\\\\\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\\\\\\\.(?!\\\\\\\\.)(?:0|1|2|3|4|5|6|7)+)(?:``(?:(?:-|\\\\\\\\+)?+(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+)))\\\\\\\\*\\\\\\\\^\",\"name\":\"invalid.illegal\"},{\"match\":\"8\\\\\\\\^\\\\\\\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\\\\\\\.(?!\\\\\\\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\\\\\\\.(?!\\\\\\\\.)(?:0|1|2|3|4|5|6|7)+)(?:``(?:(?:-|\\\\\\\\+)?+(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+)))\",\"name\":\"constant.numeric.wolfram\"},{\"match\":\"8\\\\\\\\^\\\\\\\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\\\\\\\.(?!\\\\\\\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\\\\\\\.(?!\\\\\\\\.)(?:0|1|2|3|4|5|6|7)+)``\",\"name\":\"invalid.illegal\"},{\"match\":\"8\\\\\\\\^\\\\\\\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\\\\\\\.(?!\\\\\\\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\\\\\\\.(?!\\\\\\\\.)(?:0|1|2|3|4|5|6|7)+)(?:`(?:(?:-|\\\\\\\\+)?+(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+))?+)(?:\\\\\\\\*\\\\\\\\^(?:-|\\\\\\\\+)?+\\\\\\\\d+)\",\"name\":\"constant.numeric.wolfram\"},{\"match\":\"8\\\\\\\\^\\\\\\\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\\\\\\\.(?!\\\\\\\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\\\\\\\.(?!\\\\\\\\.)(?:0|1|2|3|4|5|6|7)+)(?:`(?:(?:-|\\\\\\\\+)?+(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+))?+)\\\\\\\\*\\\\\\\\^\",\"name\":\"invalid.illegal\"},{\"match\":\"8\\\\\\\\^\\\\\\\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\\\\\\\.(?!\\\\\\\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\\\\\\\.(?!\\\\\\\\.)(?:0|1|2|3|4|5|6|7)+)(?:`(?:(?:-|\\\\\\\\+)?+(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+))?+)\",\"name\":\"constant.numeric.wolfram\"},{\"match\":\"8\\\\\\\\^\\\\\\\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\\\\\\\.(?!\\\\\\\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\\\\\\\.(?!\\\\\\\\.)(?:0|1|2|3|4|5|6|7)+)(?:\\\\\\\\*\\\\\\\\^(?:-|\\\\\\\\+)?+\\\\\\\\d+)\",\"name\":\"constant.numeric.wolfram\"},{\"match\":\"8\\\\\\\\^\\\\\\\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\\\\\\\.(?!\\\\\\\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\\\\\\\.(?!\\\\\\\\.)(?:0|1|2|3|4|5|6|7)+)\\\\\\\\*\\\\\\\\^\",\"name\":\"invalid.illegal\"},{\"match\":\"8\\\\\\\\^\\\\\\\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\\\\\\\.(?!\\\\\\\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\\\\\\\.(?!\\\\\\\\.)(?:0|1|2|3|4|5|6|7)+)\",\"name\":\"constant.numeric.wolfram\"},{\"match\":\"8\\\\\\\\^\\\\\\\\^\",\"name\":\"invalid.illegal\"},{\"match\":\"16\\\\\\\\^\\\\\\\\^(?:\\\\\\\\h+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\h*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\h+)(?:``(?:(?:-|\\\\\\\\+)?+(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+)))(?:\\\\\\\\*\\\\\\\\^(?:-|\\\\\\\\+)?+\\\\\\\\d+)\",\"name\":\"constant.numeric.wolfram\"},{\"match\":\"16\\\\\\\\^\\\\\\\\^(?:\\\\\\\\h+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\h*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\h+)(?:``(?:(?:-|\\\\\\\\+)?+(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+)))\\\\\\\\*\\\\\\\\^\",\"name\":\"invalid.illegal\"},{\"match\":\"16\\\\\\\\^\\\\\\\\^(?:\\\\\\\\h+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\h*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\h+)(?:``(?:(?:-|\\\\\\\\+)?+(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+)))\",\"name\":\"constant.numeric.wolfram\"},{\"match\":\"16\\\\\\\\^\\\\\\\\^(?:\\\\\\\\h+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\h*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\h+)``\",\"name\":\"invalid.illegal\"},{\"match\":\"16\\\\\\\\^\\\\\\\\^(?:\\\\\\\\h+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\h*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\h+)(?:`(?:(?:-|\\\\\\\\+)?+(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+))?+)(?:\\\\\\\\*\\\\\\\\^(?:-|\\\\\\\\+)?+\\\\\\\\d+)\",\"name\":\"constant.numeric.wolfram\"},{\"match\":\"16\\\\\\\\^\\\\\\\\^(?:\\\\\\\\h+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\h*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\h+)(?:`(?:(?:-|\\\\\\\\+)?+(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+))?+)\\\\\\\\*\\\\\\\\^\",\"name\":\"invalid.illegal\"},{\"match\":\"16\\\\\\\\^\\\\\\\\^(?:\\\\\\\\h+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\h*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\h+)(?:`(?:(?:-|\\\\\\\\+)?+(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+))?+)\",\"name\":\"constant.numeric.wolfram\"},{\"match\":\"16\\\\\\\\^\\\\\\\\^(?:\\\\\\\\h+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\h*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\h+)(?:\\\\\\\\*\\\\\\\\^(?:-|\\\\\\\\+)?+\\\\\\\\d+)\",\"name\":\"constant.numeric.wolfram\"},{\"match\":\"16\\\\\\\\^\\\\\\\\^(?:\\\\\\\\h+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\h*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\h+)\\\\\\\\*\\\\\\\\^\",\"name\":\"invalid.illegal\"},{\"match\":\"16\\\\\\\\^\\\\\\\\^(?:\\\\\\\\h+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\h*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\h+)\",\"name\":\"constant.numeric.wolfram\"},{\"match\":\"16\\\\\\\\^\\\\\\\\^\",\"name\":\"invalid.illegal\"},{\"match\":\"(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+)(?:``(?:(?:-|\\\\\\\\+)?+(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+)))(?:\\\\\\\\*\\\\\\\\^(?:-|\\\\\\\\+)?+\\\\\\\\d+)\",\"name\":\"constant.numeric.wolfram\"},{\"match\":\"(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+)(?:``(?:(?:-|\\\\\\\\+)?+(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+)))\\\\\\\\*\\\\\\\\^\",\"name\":\"invalid.illegal\"},{\"match\":\"(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+)(?:``(?:(?:-|\\\\\\\\+)?+(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+)))\",\"name\":\"constant.numeric.wolfram\"},{\"match\":\"(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+)``\",\"name\":\"invalid.illegal\"},{\"match\":\"(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+)(?:`(?:(?:-|\\\\\\\\+)?+(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+))?+)(?:\\\\\\\\*\\\\\\\\^(?:-|\\\\\\\\+)?+\\\\\\\\d+)\",\"name\":\"constant.numeric.wolfram\"},{\"match\":\"(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+)(?:`(?:(?:-|\\\\\\\\+)?+(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+))?+)\\\\\\\\*\\\\\\\\^\",\"name\":\"invalid.illegal\"},{\"match\":\"(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+)(?:`(?:(?:-|\\\\\\\\+)?+(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+))?+)\",\"name\":\"constant.numeric.wolfram\"},{\"match\":\"(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+)(?:\\\\\\\\*\\\\\\\\^(?:-|\\\\\\\\+)?+\\\\\\\\d+)\",\"name\":\"constant.numeric.wolfram\"},{\"match\":\"(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+)\\\\\\\\*\\\\\\\\^\",\"name\":\"invalid.illegal\"},{\"match\":\"(?:\\\\\\\\d+(?:\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d*)?+|\\\\\\\\.(?!\\\\\\\\.)\\\\\\\\d+)\",\"name\":\"constant.numeric.wolfram\"}]},\"operators\":{\"patterns\":[{\"match\":\"(?:\\\\\\\\^:=)\",\"name\":\"keyword.operator.assignment.UpSetDelayed.wolfram\"},{\"match\":\"(?:\\\\\\\\^:)\",\"name\":\"invalid.illegal\"},{\"match\":\"(?:===)\",\"name\":\"keyword.operator.SameQ.wolfram\"},{\"match\":\"(?:=!=|\\\\\\\\.\\\\\\\\.\\\\\\\\.|//\\\\\\\\.|@@@|<->|//@)\",\"name\":\"keyword.operator.wolfram\"},{\"match\":\"(?:\\\\\\\\|->)\",\"name\":\"keyword.operator.Function.wolfram\"},{\"match\":\"(?://=)\",\"name\":\"keyword.operator.assignment.ApplyTo.wolfram\"},{\"match\":\"(?:--|\\\\\\\\+\\\\\\\\+)\",\"name\":\"keyword.operator.arithmetic.wolfram\"},{\"match\":\"(?:\\\\\\\\|\\\\\\\\||&&)\",\"name\":\"keyword.operator.logical.wolfram\"},{\"match\":\"(?::=)\",\"name\":\"keyword.operator.assignment.SetDelayed.wolfram\"},{\"match\":\"(?:\\\\\\\\^=)\",\"name\":\"keyword.operator.assignment.UpSet.wolfram\"},{\"match\":\"(?:/=)\",\"name\":\"keyword.operator.assignment.DivideBy.wolfram\"},{\"match\":\"(?:\\\\\\\\+=)\",\"name\":\"keyword.operator.assignment.AddTo.wolfram\"},{\"match\":\"(?:=\\\\\\\\s+\\\\\\\\.(?![0-9]))\",\"name\":\"invalid.whitespace.Unset.wolfram\"},{\"match\":\"(?:=\\\\\\\\.(?![0-9]))\",\"name\":\"keyword.operator.assignment.Unset.wolfram\"},{\"match\":\"(?:\\\\\\\\*=)\",\"name\":\"keyword.operator.assignment.TimesBy.wolfram\"},{\"match\":\"(?:-=)\",\"name\":\"keyword.operator.assignment.SubtractFrom.wolfram\"},{\"match\":\"(?:/:)\",\"name\":\"keyword.operator.assignment.Tag.wolfram\"},{\"match\":\"(?:;;)$\",\"name\":\"invalid.endofline.Span.wolfram\"},{\"match\":\"(?:;;)\",\"name\":\"keyword.operator.Span.wolfram\"},{\"match\":\"(?:!=)\",\"name\":\"keyword.operator.Unequal.wolfram\"},{\"match\":\"(?:==)\",\"name\":\"keyword.operator.Equal.wolfram\"},{\"match\":\"(?:!!)\",\"name\":\"keyword.operator.BangBang.wolfram\"},{\"match\":\"(?:\\\\\\\\?\\\\\\\\?)\",\"name\":\"invalid.illegal.Information.wolfram\"},{\"match\":\"(?:<=|>=|\\\\\\\\.\\\\\\\\.|:>|<>|->|/@|/;|/\\\\\\\\.|//|/\\\\\\\\*|@@|@\\\\\\\\*|~~|\\\\\\\\*\\\\\\\\*)\",\"name\":\"keyword.operator.wolfram\"},{\"match\":\"(?:-|\\\\\\\\+|/|\\\\\\\\*)\",\"name\":\"keyword.operator.arithmetic.wolfram\"},{\"match\":\"(?:=)\",\"name\":\"keyword.operator.assignment.Set.wolfram\"},{\"match\":\"(?:<)\",\"name\":\"keyword.operator.Less.wolfram\"},{\"match\":\"(?:\\\\\\\\|)\",\"name\":\"keyword.operator.Alternatives.wolfram\"},{\"match\":\"(?:!)\",\"name\":\"keyword.operator.Bang.wolfram\"},{\"match\":\"(?:;)\",\"name\":\"keyword.operator.CompoundExpression.wolfram punctuation.terminator\"},{\"match\":\"(?:,)\",\"name\":\"keyword.operator.Comma.wolfram punctuation.separator\"},{\"match\":\"^(?:\\\\\\\\?)\",\"name\":\"invalid.startofline.Information.wolfram\"},{\"match\":\"(?:\\\\\\\\?)\",\"name\":\"keyword.operator.PatternTest.wolfram\"},{\"match\":\"(?:\\')\",\"name\":\"keyword.operator.Derivative.wolfram\"},{\"match\":\"(?:&)\",\"name\":\"keyword.operator.Function.wolfram\"},{\"match\":\"(?:>|\\\\\\\\^|\\\\\\\\.|:|@|~)\",\"name\":\"keyword.operator.wolfram\"}]},\"out\":{\"patterns\":[{\"match\":\"%\\\\\\\\d+\",\"name\":\"keyword.other.Out.wolfram\"},{\"match\":\"%+\",\"name\":\"keyword.other.Out.wolfram\"}]},\"paren-group\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.wolfram\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.wolfram\"}},\"name\":\"meta.parens.wolfram\",\"patterns\":[{\"include\":\"#expressions\"}]},\"part-group\":{\"begin\":\"\\\\\\\\[\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parts.begin.wolfram\"}},\"end\":\"\\\\\\\\]\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parts.end.wolfram\"}},\"name\":\"meta.parts.wolfram\",\"patterns\":[{\"include\":\"#expressions\"}]},\"pattern-operators\":{\"patterns\":[{\"match\":\"___\",\"name\":\"keyword.operator.BlankNullSequence.wolfram\"},{\"match\":\"__\",\"name\":\"keyword.operator.BlankSequence.wolfram\"},{\"match\":\"_\\\\\\\\.\",\"name\":\"keyword.operator.Optional.wolfram\"},{\"match\":\"_\",\"name\":\"keyword.operator.Blank.wolfram\"}]},\"shebang\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.wolfram\"}},\"match\":\"\\\\\\\\A(#!).*(?=$)\",\"name\":\"comment.line.shebang.wolfram\"},\"simple-toplevel-definitions\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"support.function.builtin.wolfram\"},\"2\":{\"name\":\"punctuation.section.brackets.begin.wolfram\"},\"3\":{\"name\":\"meta.function.wolfram entity.name.Context.wolfram\"},\"4\":{\"name\":\"meta.function.wolfram entity.name.function.wolfram\"},\"5\":{\"name\":\"punctuation.section.brackets.end.wolfram\"},\"6\":{\"name\":\"keyword.operator.assignment.wolfram\"}},\"match\":\"^\\\\\\\\s*(Attributes|Format|Options)\\\\\\\\s*(\\\\\\\\[)(`?(?:(?:[$[:alpha:]][$[:alnum:]]*)`)*)((?:[$[:alpha:]][$[:alnum:]]*))(\\\\\\\\])\\\\\\\\s*(:=|=(?!!|=|\\\\\\\\.))\"},{\"captures\":{\"1\":{\"name\":\"meta.function.wolfram entity.name.Context.wolfram\"},\"2\":{\"name\":\"meta.function.wolfram entity.name.function.wolfram\"}},\"match\":\"^\\\\\\\\s*(`?(?:(?:[$[:alpha:]][$[:alnum:]]*)`)*)((?:[$[:alpha:]][$[:alnum:]]*))(?=\\\\\\\\s*(\\\\\\\\[(?>[^\\\\\\\\[\\\\\\\\]]+|\\\\\\\\g<-1>)*\\\\\\\\])\\\\\\\\s*(?:/;.*)?(?::=|=(?!!|=|\\\\\\\\.)))\"},{\"captures\":{\"1\":{\"name\":\"meta.function.wolfram entity.name.Context.wolfram\"},\"2\":{\"name\":\"meta.function.wolfram entity.name.constant.wolfram\"}},\"match\":\"^\\\\\\\\s*(`?(?:(?:[$[:alpha:]][$[:alnum:]]*)`)*)((?:[$[:alpha:]][$[:alnum:]]*))(?=\\\\\\\\s*(?:/;.*)?(?::=|=(?!!|=|\\\\\\\\.)))\"}]},\"slot\":{\"patterns\":[{\"match\":\"#[[:alpha:]][[:alnum:]]*\",\"name\":\"keyword.other.Slot.wolfram\"},{\"match\":\"##\\\\\\\\d*\",\"name\":\"keyword.other.SlotSequence.wolfram\"},{\"match\":\"#\\\\\\\\d*\",\"name\":\"keyword.other.Slot.wolfram\"}]},\"string_escaped_characters\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[bfnrt\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\<>]\",\"name\":\"donothighlight.constant.character.escape\"},{\"include\":\"#escaped_characters\"}]},\"stringifying-operators\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.PutAppend.wolfram\"}},\"match\":\"(>>>)(?=\\\\\\\\s*\\\\\")\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.PutAppend.wolfram\"},\"2\":{\"name\":\"string.unquoted.wolfram\"}},\"match\":\"(>>>)\\\\\\\\s*(\\\\\\\\w+)\"},{\"match\":\">>>\",\"name\":\"invalid.illegal\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.MessageName.wolfram\"}},\"match\":\"(::)(?=\\\\\\\\s*\\\\\")\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.MessageName.wolfram\"},\"2\":{\"name\":\"string.unquoted.wolfram\"}},\"match\":\"(::)([[:alpha:]][[:alnum:]]*)\"},{\"match\":\"::\",\"name\":\"invalid.illegal\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.Get.wolfram\"}},\"match\":\"(<<)(?=\\\\\\\\s*\\\\\")\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.Get.wolfram\"},\"2\":{\"name\":\"string.unquoted.wolfram\"}},\"match\":\"(<<)\\\\\\\\s*([`[:alpha:]][`[:alnum:]]*)\"},{\"match\":\"<<\",\"name\":\"invalid.illegal\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.Put.wolfram\"}},\"match\":\"(>>)(?=\\\\\\\\s*\\\\\")\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.Put.wolfram\"},\"2\":{\"name\":\"string.unquoted.wolfram\"}},\"match\":\"(>>)\\\\\\\\s*(\\\\\\\\w*)\"},{\"match\":\">>\",\"name\":\"invalid.illegal\"}]},\"strings\":{\"patterns\":[{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end\"}},\"name\":\"string.quoted.double\",\"patterns\":[{\"include\":\"#string_escaped_characters\"}]}]},\"symbols\":{\"patterns\":[{\"match\":\"System`(?:A(?:ASTriangle|PIFunction|RCHProcess|RIMAProcess|RMAProcess|RProcess|SATriangle|belianGroup|bort|bortKernels|bortProtect|bs|bsArg|bsArgPlot|bsoluteCorrelation|bsoluteCorrelationFunction|bsoluteCurrentValue|bsoluteDashing|bsoluteFileName|bsoluteOptions|bsolutePointSize|bsoluteThickness|bsoluteTime|bsoluteTiming|ccountingForm|ccumulate|ccuracy|cousticAbsorbingValue|cousticImpedanceValue|cousticNormalVelocityValue|cousticPDEComponent|cousticPressureCondition|cousticRadiationValue|cousticSoundHardValue|cousticSoundSoftCondition|ctionMenu|ctivate|cyclicGraphQ|ddSides|ddTo|ddUsers|djacencyGraph|djacencyList|djacencyMatrix|djacentMeshCells|djugate|djustTimeSeriesForecast|djustmentBox|dministrativeDivisionData|ffineHalfSpace|ffineSpace|ffineStateSpaceModel|ffineTransform|irPressureData|irSoundAttenuation|irTemperatureData|ircraftData|irportData|iryAi|iryAiPrime|iryAiZero|iryBi|iryBiPrime|iryBiZero|lgebraicIntegerQ|lgebraicNumber|lgebraicNumberDenominator|lgebraicNumberNorm|lgebraicNumberPolynomial|lgebraicNumberTrace|lgebraicUnitQ|llTrue|lphaChannel|lphabet|lphabeticOrder|lphabeticSort|lternatingFactorial|lternatingGroup|lternatives|mbientLight|mbiguityList|natomyData|natomyPlot3D|natomyStyling|nd|ndersonDarlingTest|ngerJ|ngleBracket|nglePath|nglePath3D|ngleVector|ngularGauge|nimate|nimator|nnotate|nnotation|nnotationDelete|nnotationKeys|nnotationValue|nnuity|nnuityDue|nnulus|nomalyDetection|nomalyDetectorFunction|ntihermitian|ntihermitianMatrixQ|ntisymmetric|ntisymmetricMatrixQ|ntonyms|nyOrder|nySubset|nyTrue|part|partSquareFree|ppellF1|ppend|ppendTo|pply|pplySides|pplyTo|rcCos|rcCosh|rcCot|rcCoth|rcCsc|rcCsch|rcCurvature|rcLength|rcSec|rcSech|rcSin|rcSinDistribution|rcSinh|rcTan|rcTanh|rea|rg|rgMax|rgMin|rgumentsOptions|rithmeticGeometricMean|rray|rrayComponents|rrayDepth|rrayFilter|rrayFlatten|rrayMesh|rrayPad|rrayPlot|rrayPlot3D|rrayQ|rrayResample|rrayReshape|rrayRules|rrays|rrow|rrowheads|ssert|ssociateTo|ssociation|ssociationMap|ssociationQ|ssociationThread|ssuming|symptotic|symptoticDSolveValue|symptoticEqual|symptoticEquivalent|symptoticExpectation|symptoticGreater|symptoticGreaterEqual|symptoticIntegrate|symptoticLess|symptoticLessEqual|symptoticOutputTracker|symptoticProbability|symptoticProduct|symptoticRSolveValue|symptoticSolve|symptoticSum|tomQ|ttributes|udio|udioAmplify|udioBlockMap|udioCapture|udioChannelCombine|udioChannelMix|udioChannelSeparate|udioChannels|udioData|udioDelay|udioDelete|udioDistance|udioFade|udioFrequencyShift|udioGenerator|udioInsert|udioIntervals|udioJoin|udioLength|udioLocalMeasurements|udioLoudness|udioMeasurements|udioNormalize|udioOverlay|udioPad|udioPan|udioPartition|udioPitchShift|udioPlot|udioQ|udioReplace|udioResample|udioReverb|udioReverse|udioSampleRate|udioSpectralMap|udioSpectralTransformation|udioSplit|udioTimeStretch|udioTrim|udioType|ugmentedPolyhedron|ugmentedSymmetricPolynomial|uthenticationDialog|utoRefreshed|utoSubmitting|utocorrelationTest))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"System`(?:B(?:SplineBasis|SplineCurve|SplineFunction|SplineSurface|abyMonsterGroupB|ackslash|all|and|andpassFilter|andstopFilter|arChart|arChart3D|arLegend|arabasiAlbertGraphDistribution|arcodeImage|arcodeRecognize|aringhausHenzeTest|arlowProschanImportance|arnesG|artlettHannWindow|artlettWindow|aseDecode|aseEncode|aseForm|atesDistribution|attleLemarieWavelet|ecause|eckmannDistribution|eep|egin|eginDialogPacket|eginPackage|ellB|ellY|enfordDistribution|eniniDistribution|enktanderGibratDistribution|enktanderWeibullDistribution|ernoulliB|ernoulliDistribution|ernoulliGraphDistribution|ernoulliProcess|ernsteinBasis|esselFilterModel|esselI|esselJ|esselJZero|esselK|esselY|esselYZero|eta|etaBinomialDistribution|etaDistribution|etaNegativeBinomialDistribution|etaPrimeDistribution|etaRegularized|etween|etweennessCentrality|eveledPolyhedron|ezierCurve|ezierFunction|ilateralFilter|ilateralLaplaceTransform|ilateralZTransform|inCounts|inLists|inarize|inaryDeserialize|inaryDistance|inaryImageQ|inaryRead|inaryReadList|inarySerialize|inaryWrite|inomial|inomialDistribution|inomialProcess|inormalDistribution|iorthogonalSplineWavelet|ipartiteGraphQ|iquadraticFilterModel|irnbaumImportance|irnbaumSaundersDistribution|itAnd|itClear|itGet|itLength|itNot|itOr|itSet|itShiftLeft|itShiftRight|itXor|iweightLocation|iweightMidvariance|lackmanHarrisWindow|lackmanNuttallWindow|lackmanWindow|lank|lankNullSequence|lankSequence|lend|lock|lockMap|lockRandom|lomqvistBeta|lomqvistBetaTest|lur|lurring|odePlot|ohmanWindow|oole|ooleanConsecutiveFunction|ooleanConvert|ooleanCountingFunction|ooleanFunction|ooleanGraph|ooleanMaxterms|ooleanMinimize|ooleanMinterms|ooleanQ|ooleanRegion|ooleanTable|ooleanVariables|orderDimensions|orelTannerDistribution|ottomHatTransform|oundaryDiscretizeGraphics|oundaryDiscretizeRegion|oundaryMesh|oundaryMeshRegion|oundaryMeshRegionQ|oundedRegionQ|oundingRegion|oxData|oxMatrix|oxObject|oxWhiskerChart|racketingBar|rayCurtisDistance|readthFirstScan|reak|ridgeData|rightnessEqualize|roadcastStationData|rownForsytheTest|rownianBridgeProcess|ubbleChart|ubbleChart3D|uckyballGraph|uildingData|ulletGauge|usinessDayQ|utterflyGraph|utterworthFilterModel|utton|uttonBar|uttonBox|uttonNotebook|yteArray|yteArrayFormat|yteArrayFormatQ|yteArrayQ|yteArrayToString|yteCount))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"System`(?:C(?:|DF|DFDeploy|DFWavelet|Form|MYKColor|SGRegion|SGRegionQ|SGRegionTree|alendarConvert|alendarData|allPacket|allout|anberraDistance|ancel|ancelButton|andlestickChart|anonicalGraph|anonicalName|anonicalWarpingCorrespondence|anonicalWarpingDistance|anonicalizePolygon|anonicalizePolyhedron|anonicalizeRegion|antorMesh|antorStaircase|ap|apForm|apitalDifferentialD|apitalize|apsuleShape|aputoD|arlemanLinearize|arlsonRC|arlsonRD|arlsonRE|arlsonRF|arlsonRG|arlsonRJ|arlsonRK|arlsonRM|armichaelLambda|aseSensitive|ases|ashflow|asoratian|atalanNumber|atch|atenate|auchyDistribution|auchyMatrix|auchyWindow|ayleyGraph|eiling|ell|ellGroup|ellGroupData|ellObject|ellPrint|ells|ellularAutomaton|ensoredDistribution|ensoring|enterArray|enterDot|enteredInterval|entralFeature|entralMoment|entralMomentGeneratingFunction|epstrogram|epstrogramArray|epstrumArray|hampernowneNumber|hanVeseBinarize|haracterCounts|haracterName|haracterRange|haracteristicFunction|haracteristicPolynomial|haracters|hebyshev1FilterModel|hebyshev2FilterModel|hebyshevT|hebyshevU|heck|heckAbort|heckArguments|heckbox|heckboxBar|hemicalData|hessboardDistance|hiDistribution|hiSquareDistribution|hineseRemainder|hoiceButtons|hoiceDialog|holeskyDecomposition|hop|hromaticPolynomial|hromaticityPlot|hromaticityPlot3D|ircle|ircleDot|ircleMinus|irclePlus|irclePoints|ircleThrough|ircleTimes|irculantGraph|ircularArcThrough|ircularOrthogonalMatrixDistribution|ircularQuaternionMatrixDistribution|ircularRealMatrixDistribution|ircularSymplecticMatrixDistribution|ircularUnitaryMatrixDistribution|ircumsphere|ityData|lassifierFunction|lassifierMeasurements|lassifierMeasurementsObject|lassify|lear|learAll|learAttributes|learCookies|learPermissions|learSystemCache|lebschGordan|lickPane|lickToCopy|lip|lock|lockGauge|lose|loseKernels|losenessCentrality|losing|loudAccountData|loudConnect|loudDeploy|loudDirectory|loudDisconnect|loudEvaluate|loudExport|loudFunction|loudGet|loudImport|loudLoggingData|loudObject|loudObjects|loudPublish|loudPut|loudSave|loudShare|loudSubmit|loudSymbol|loudUnshare|lusterClassify|lusteringComponents|lusteringMeasurements|lusteringTree|oefficient|oefficientArrays|oefficientList|oefficientRules|oifletWavelet|ollect|ollinearPoints|olon|olorBalance|olorCombine|olorConvert|olorData|olorDataFunction|olorDetect|olorDistance|olorNegate|olorProfileData|olorQ|olorQuantize|olorReplace|olorSeparate|olorSetter|olorSlider|olorToneMapping|olorize|olorsNear|olumn|ometData|ommonName|ommonUnits|ommonest|ommonestFilter|ommunityGraphPlot|ompanyData|ompatibleUnitQ|ompile|ompiledFunction|omplement|ompleteGraph|ompleteGraphQ|ompleteIntegral|ompleteKaryTree|omplex|omplexArrayPlot|omplexContourPlot|omplexExpand|omplexListPlot|omplexPlot|omplexPlot3D|omplexRegionPlot|omplexStreamPlot|omplexVectorPlot|omponentMeasurements|omposeList|omposeSeries|ompositeQ|omposition|ompoundElement|ompoundExpression|ompoundPoissonDistribution|ompoundPoissonProcess|ompoundRenewalProcess|ompress|oncaveHullMesh|ondition|onditionalExpression|onditioned|one|onfirm|onfirmAssert|onfirmBy|onfirmMatch|onformAudio|onformImages|ongruent|onicGradientFilling|onicHullRegion|onicOptimization|onjugate|onjugateTranspose|onjunction|onnectLibraryCallbackFunction|onnectedComponents|onnectedGraphComponents|onnectedGraphQ|onnectedMeshComponents|onnesWindow|onoverTest|onservativeConvectionPDETerm|onstantArray|onstantImage|onstantRegionQ|onstellationData|onstruct|ontainsAll|ontainsAny|ontainsExactly|ontainsNone|ontainsOnly|ontext|ontextToFileName|ontexts|ontinue|ontinuedFraction|ontinuedFractionK|ontinuousMarkovProcess|ontinuousTask|ontinuousTimeModelQ|ontinuousWaveletData|ontinuousWaveletTransform|ontourDetect|ontourPlot|ontourPlot3D|ontraharmonicMean|ontrol|ontrolActive|ontrollabilityGramian|ontrollabilityMatrix|ontrollableDecomposition|ontrollableModelQ|ontrollerInformation|ontrollerManipulate|ontrollerState|onvectionPDETerm|onvergents|onvexHullMesh|onvexHullRegion|onvexOptimization|onvexPolygonQ|onvexPolyhedronQ|onvexRegionQ|onvolve|onwayGroupCo1|onwayGroupCo2|onwayGroupCo3|oordinateBoundingBox|oordinateBoundingBoxArray|oordinateBounds|oordinateBoundsArray|oordinateChartData|oordinateTransform|oordinateTransformData|oplanarPoints|oprimeQ|oproduct|opulaDistribution|opyDatabin|opyDirectory|opyFile|opyToClipboard|oreNilpotentDecomposition|ornerFilter|orrelation|orrelationDistance|orrelationFunction|orrelationTest|os|osIntegral|osh|oshIntegral|osineDistance|osineWindow|ot|oth|oulombF|oulombG|oulombH1|oulombH2|ount|ountDistinct|ountDistinctBy|ountRoots|ountryData|ounts|ountsBy|ovariance|ovarianceFunction|oxIngersollRossProcess|oxModel|oxModelFit|oxianDistribution|ramerVonMisesTest|reateArchive|reateDatabin|reateDialog|reateDirectory|reateDocument|reateFile|reateManagedLibraryExpression|reateNotebook|reatePacletArchive|reatePalette|reatePermissionsGroup|reateUUID|reateWindow|riticalSection|riticalityFailureImportance|riticalitySuccessImportance|ross|rossMatrix|rossingCount|rossingDetect|rossingPolygon|sc|sch|ube|ubeRoot|uboid|umulant|umulantGeneratingFunction|umulativeFeatureImpactPlot|up|upCap|url|urrencyConvert|urrentDate|urrentImage|urrentValue|urvatureFlowFilter|ycleGraph|ycleIndexPolynomial|ycles|yclicGroup|yclotomic|ylinder|ylindricalDecomposition|ylindricalDecompositionFunction))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"System`(?:D(?:|Eigensystem|Eigenvalues|GaussianWavelet|MSList|MSString|Solve|SolveValue|agumDistribution|amData|amerauLevenshteinDistance|arker|ashing|ataDistribution|atabin|atabinAdd|atabinUpload|atabins|ataset|ateBounds|ateDifference|ateHistogram|ateList|ateListLogPlot|ateListPlot|ateListStepPlot|ateObject|ateObjectQ|ateOverlapsQ|atePattern|atePlus|ateRange|ateScale|ateSelect|ateString|ateValue|ateWithinQ|ated|atedUnit|aubechiesWavelet|avisDistribution|awsonF|ayCount|ayHemisphere|ayMatchQ|ayName|ayNightTerminator|ayPlus|ayRange|ayRound|aylightQ|eBruijnGraph|eBruijnSequence|ecapitalize|ecimalForm|eclarePackage|ecompose|ecrement|ecrypt|edekindEta|eepSpaceProbeData|efault|efaultButton|efaultValues|efer|efineInputStreamMethod|efineOutputStreamMethod|efineResourceFunction|efinition|egreeCentrality|egreeGraphDistribution|el|elaunayMesh|elayed|elete|eleteAdjacentDuplicates|eleteAnomalies|eleteBorderComponents|eleteCases|eleteDirectory|eleteDuplicates|eleteDuplicatesBy|eleteFile|eleteMissing|eleteObject|eletePermissionsKey|eleteSmallComponents|eleteStopwords|elimitedSequence|endrogram|enominator|ensityHistogram|ensityPlot|ensityPlot3D|eploy|epth|epthFirstScan|erivative|erivativeFilter|erivativePDETerm|esignMatrix|et|eviceClose|eviceConfigure|eviceExecute|eviceExecuteAsynchronous|eviceObject|eviceOpen|eviceRead|eviceReadBuffer|eviceReadLatest|eviceReadList|eviceReadTimeSeries|eviceStreams|eviceWrite|eviceWriteBuffer|evices|iagonal|iagonalMatrix|iagonalMatrixQ|iagonalizableMatrixQ|ialog|ialogInput|ialogNotebook|ialogReturn|iamond|iamondMatrix|iceDissimilarity|ictionaryLookup|ictionaryWordQ|ifferenceDelta|ifferenceQuotient|ifferenceRoot|ifferenceRootReduce|ifferences|ifferentialD|ifferentialRoot|ifferentialRootReduce|ifferentiatorFilter|iffusionPDETerm|igitCount|igitQ|ihedralAngle|ihedralGroup|ilation|imensionReduce|imensionReducerFunction|imensionReduction|imensionalCombinations|imensionalMeshComponents|imensions|iracComb|iracDelta|irectedEdge|irectedGraph|irectedGraphQ|irectedInfinity|irectionalLight|irective|irectory|irectoryName|irectoryQ|irectoryStack|irichletBeta|irichletCharacter|irichletCondition|irichletConvolve|irichletDistribution|irichletEta|irichletL|irichletLambda|irichletTransform|irichletWindow|iscreteAsymptotic|iscreteChirpZTransform|iscreteConvolve|iscreteDelta|iscreteHadamardTransform|iscreteIndicator|iscreteInputOutputModel|iscreteLQEstimatorGains|iscreteLQRegulatorGains|iscreteLimit|iscreteLyapunovSolve|iscreteMarkovProcess|iscreteMaxLimit|iscreteMinLimit|iscretePlot|iscretePlot3D|iscreteRatio|iscreteRiccatiSolve|iscreteShift|iscreteTimeModelQ|iscreteUniformDistribution|iscreteWaveletData|iscreteWaveletPacketTransform|iscreteWaveletTransform|iscretizeGraphics|iscretizeRegion|iscriminant|isjointQ|isjunction|isk|iskMatrix|iskSegment|ispatch|isplayEndPacket|isplayForm|isplayPacket|istanceMatrix|istanceTransform|istribute|istributeDefinitions|istributed|istributionChart|istributionFitTest|istributionParameterAssumptions|istributionParameterQ|iv|ivide|ivideBy|ivideSides|ivisible|ivisorSigma|ivisorSum|ivisors|o|ocumentGenerator|ocumentGeneratorInformation|ocumentGenerators|ocumentNotebook|odecahedron|ominantColors|ominatorTreeGraph|ominatorVertexList|ot|otEqual|oubleBracketingBar|oubleDownArrow|oubleLeftArrow|oubleLeftRightArrow|oubleLeftTee|oubleLongLeftArrow|oubleLongLeftRightArrow|oubleLongRightArrow|oubleRightArrow|oubleRightTee|oubleUpArrow|oubleUpDownArrow|oubleVerticalBar|ownArrow|ownArrowBar|ownArrowUpArrow|ownLeftRightVector|ownLeftTeeVector|ownLeftVector|ownLeftVectorBar|ownRightTeeVector|ownRightVector|ownRightVectorBar|ownTee|ownTeeArrow|ownValues|ownsample|razinInverse|rop|ropShadowing|t|ualPlanarGraph|ualPolyhedron|ualSystemsModel|umpSave|uplicateFreeQ|uration|ynamic|ynamicGeoGraphics|ynamicModule|ynamicSetting|ynamicWrapper))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"System`(?:E(?:arthImpactData|arthquakeData|ccentricityCentrality|choEvaluation|choFunction|choLabel|dgeAdd|dgeBetweennessCentrality|dgeChromaticNumber|dgeConnectivity|dgeContract|dgeCount|dgeCoverQ|dgeCycleMatrix|dgeDelete|dgeDetect|dgeForm|dgeIndex|dgeList|dgeQ|dgeRules|dgeTaggedGraph|dgeTaggedGraphQ|dgeTags|dgeTransitiveGraphQ|dgeWeightedGraphQ|ditDistance|ffectiveInterest|igensystem|igenvalues|igenvectorCentrality|igenvectors|lement|lementData|liminate|llipsoid|llipticE|llipticExp|llipticExpPrime|llipticF|llipticFilterModel|llipticK|llipticLog|llipticNomeQ|llipticPi|llipticTheta|llipticThetaPrime|mbedCode|mbeddedHTML|mbeddedService|mitSound|mpiricalDistribution|mptyGraphQ|mptyRegion|nclose|ncode|ncrypt|ncryptedObject|nd|ndDialogPacket|ndPackage|ngineeringForm|nterExpressionPacket|nterTextPacket|ntity|ntityClass|ntityClassList|ntityCopies|ntityGroup|ntityInstance|ntityList|ntityPrefetch|ntityProperties|ntityProperty|ntityPropertyClass|ntityRegister|ntityStores|ntityTypeName|ntityUnregister|ntityValue|ntropy|ntropyFilter|nvironment|qual|qualTilde|qualTo|quilibrium|quirippleFilterKernel|quivalent|rf|rfc|rfi|rlangB|rlangC|rlangDistribution|rosion|rrorBox|stimatedBackground|stimatedDistribution|stimatedPointNormals|stimatedProcess|stimatorGains|stimatorRegulator|uclideanDistance|ulerAngles|ulerCharacteristic|ulerE|ulerMatrix|ulerPhi|ulerianGraphQ|valuate|valuatePacket|valuationBox|valuationCell|valuationData|valuationNotebook|valuationObject|venQ|ventData|ventHandler|ventSeries|xactBlackmanWindow|xactNumberQ|xampleData|xcept|xists|xoplanetData|xp|xpGammaDistribution|xpIntegralE|xpIntegralEi|xpToTrig|xpand|xpandAll|xpandDenominator|xpandFileName|xpandNumerator|xpectation|xponent|xponentialDistribution|xponentialGeneratingFunction|xponentialMovingAverage|xponentialPowerDistribution|xport|xportByteArray|xportForm|xportString|xpressionCell|xpressionGraph|xtendedGCD|xternalBundle|xtract|xtractArchive|xtractPacletArchive|xtremeValueDistribution))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"System`(?:F(?:ARIMAProcess|RatioDistribution|aceAlign|aceForm|acialFeatures|actor|actorInteger|actorList|actorSquareFree|actorSquareFreeList|actorTerms|actorTermsList|actorial|actorial2|actorialMoment|actorialMomentGeneratingFunction|actorialPower|ailure|ailureDistribution|ailureQ|areySequence|eatureImpactPlot|eatureNearest|eatureSpacePlot|eatureSpacePlot3D|eatureValueDependencyPlot|eatureValueImpactPlot|eedbackLinearize|etalGrowthData|ibonacci|ibonorial|ile|ileBaseName|ileByteCount|ileDate|ileExistsQ|ileExtension|ileFormat|ileFormatQ|ileHash|ileNameDepth|ileNameDrop|ileNameJoin|ileNameSetter|ileNameSplit|ileNameTake|ileNames|ilePrint|ileSize|ileSystemMap|ileSystemScan|ileTemplate|ileTemplateApply|ileType|illedCurve|illedTorus|illingTransform|ilterRules|inancialBond|inancialData|inancialDerivative|inancialIndicator|ind|indAnomalies|indArgMax|indArgMin|indClique|indClusters|indCookies|indCurvePath|indCycle|indDevices|indDistribution|indDistributionParameters|indDivisions|indEdgeColoring|indEdgeCover|indEdgeCut|indEdgeIndependentPaths|indEulerianCycle|indFaces|indFile|indFit|indFormula|indFundamentalCycles|indGeneratingFunction|indGeoLocation|indGeometricTransform|indGraphCommunities|indGraphIsomorphism|indGraphPartition|indHamiltonianCycle|indHamiltonianPath|indHiddenMarkovStates|indIndependentEdgeSet|indIndependentVertexSet|indInstance|indIntegerNullVector|indIsomorphicSubgraph|indKClan|indKClique|indKClub|indKPlex|indLibrary|indLinearRecurrence|indList|indMatchingColor|indMaxValue|indMaximum|indMaximumCut|indMaximumFlow|indMeshDefects|indMinValue|indMinimum|indMinimumCostFlow|indMinimumCut|indPath|indPeaks|indPermutation|indPlanarColoring|indPostmanTour|indProcessParameters|indRegionTransform|indRepeat|indRoot|indSequenceFunction|indShortestPath|indShortestTour|indSpanningTree|indSubgraphIsomorphism|indThreshold|indTransientRepeat|indVertexColoring|indVertexCover|indVertexCut|indVertexIndependentPaths|inishDynamic|initeAbelianGroupCount|initeGroupCount|initeGroupData|irst|irstCase|irstPassageTimeDistribution|irstPosition|ischerGroupFi22|ischerGroupFi23|ischerGroupFi24Prime|isherHypergeometricDistribution|isherRatioTest|isherZDistribution|it|ittedModel|ixedOrder|ixedPoint|ixedPointList|latShading|latTopWindow|latten|lattenAt|lightData|lipView|loor|lowPolynomial|old|oldList|oldPair|oldPairList|oldWhile|oldWhileList|or|orAll|ormBox|ormFunction|ormObject|ormPage|ormat|ormulaData|ormulaLookup|ortranForm|ourier|ourierCoefficient|ourierCosCoefficient|ourierCosSeries|ourierCosTransform|ourierDCT|ourierDCTFilter|ourierDCTMatrix|ourierDST|ourierDSTMatrix|ourierMatrix|ourierSequenceTransform|ourierSeries|ourierSinCoefficient|ourierSinSeries|ourierSinTransform|ourierTransform|ourierTrigSeries|oxH|ractionBox|ractionalBrownianMotionProcess|ractionalD|ractionalGaussianNoiseProcess|ractionalPart|rameBox|ramed|rechetDistribution|reeQ|renetSerretSystem|requencySamplingFilterKernel|resnelC|resnelF|resnelG|resnelS|robeniusNumber|robeniusSolve|romAbsoluteTime|romCharacterCode|romCoefficientRules|romContinuedFraction|romDMS|romDateString|romDigits|romEntity|romJulianDate|romLetterNumber|romPolarCoordinates|romRomanNumeral|romSphericalCoordinates|romUnixTime|rontEndExecute|rontEndToken|rontEndTokenExecute|ullDefinition|ullForm|ullGraphics|ullInformationOutputRegulator|ullRegion|ullSimplify|unction|unctionAnalytic|unctionBijective|unctionContinuous|unctionConvexity|unctionDiscontinuities|unctionDomain|unctionExpand|unctionInjective|unctionInterpolation|unctionMeromorphic|unctionMonotonicity|unctionPeriod|unctionRange|unctionSign|unctionSingularities|unctionSurjective|ussellVeselyImportance))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"System`(?:G(?:ARCHProcess|CD|aborFilter|aborMatrix|aborWavelet|ainMargins|ainPhaseMargins|alaxyData|amma|ammaDistribution|ammaRegularized|ather|atherBy|aussianFilter|aussianMatrix|aussianOrthogonalMatrixDistribution|aussianSymplecticMatrixDistribution|aussianUnitaryMatrixDistribution|aussianWindow|egenbauerC|eneralizedLinearModelFit|enerateAsymmetricKeyPair|enerateDocument|enerateHTTPResponse|enerateSymmetricKey|eneratingFunction|enericCylindricalDecomposition|enomeData|enomeLookup|eoAntipode|eoArea|eoBoundary|eoBoundingBox|eoBounds|eoBoundsRegion|eoBoundsRegionBoundary|eoBubbleChart|eoCircle|eoContourPlot|eoDensityPlot|eoDestination|eoDirection|eoDisk|eoDisplacement|eoDistance|eoDistanceList|eoElevationData|eoEntities|eoGraphPlot|eoGraphics|eoGridDirectionDifference|eoGridPosition|eoGridUnitArea|eoGridUnitDistance|eoGridVector|eoGroup|eoHemisphere|eoHemisphereBoundary|eoHistogram|eoIdentify|eoImage|eoLength|eoListPlot|eoMarker|eoNearest|eoPath|eoPolygon|eoPosition|eoPositionENU|eoPositionXYZ|eoProjectionData|eoRegionValuePlot|eoSmoothHistogram|eoStreamPlot|eoStyling|eoVariant|eoVector|eoVectorENU|eoVectorPlot|eoVectorXYZ|eoVisibleRegion|eoVisibleRegionBoundary|eoWithinQ|eodesicClosing|eodesicDilation|eodesicErosion|eodesicOpening|eodesicPolyhedron|eodesyData|eogravityModelData|eologicalPeriodData|eomagneticModelData|eometricBrownianMotionProcess|eometricDistribution|eometricMean|eometricMeanFilter|eometricOptimization|eometricTransformation|estureHandler|et|etEnvironment|lobalClusteringCoefficient|low|ompertzMakehamDistribution|oochShading|oodmanKruskalGamma|oodmanKruskalGammaTest|oto|ouraudShading|rad|radientFilter|radientFittedMesh|radientOrientationFilter|rammarApply|rammarRules|rammarToken|raph|raph3D|raphAssortativity|raphAutomorphismGroup|raphCenter|raphComplement|raphData|raphDensity|raphDiameter|raphDifference|raphDisjointUnion|raphDistance|raphDistanceMatrix|raphEmbedding|raphHub|raphIntersection|raphJoin|raphLinkEfficiency|raphPeriphery|raphPlot|raphPlot3D|raphPower|raphProduct|raphPropertyDistribution|raphQ|raphRadius|raphReciprocity|raphSum|raphUnion|raphics|raphics3D|raphicsColumn|raphicsComplex|raphicsGrid|raphicsGroup|raphicsRow|rayLevel|reater|reaterEqual|reaterEqualLess|reaterEqualThan|reaterFullEqual|reaterGreater|reaterLess|reaterSlantEqual|reaterThan|reaterTilde|reenFunction|rid|ridBox|ridGraph|roebnerBasis|roupBy|roupCentralizer|roupElementFromWord|roupElementPosition|roupElementQ|roupElementToWord|roupElements|roupGenerators|roupMultiplicationTable|roupOrbits|roupOrder|roupSetwiseStabilizer|roupStabilizer|roupStabilizerChain|roupings|rowCutComponents|udermannian|uidedFilter|umbelDistribution))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"System`(?:H(?:ITSCentrality|TTPErrorResponse|TTPRedirect|TTPRequest|TTPRequestData|TTPResponse|aarWavelet|adamardMatrix|alfLine|alfNormalDistribution|alfPlane|alfSpace|alftoneShading|amiltonianGraphQ|ammingDistance|ammingWindow|ankelH1|ankelH2|ankelMatrix|ankelTransform|annPoissonWindow|annWindow|aradaNortonGroupHN|araryGraph|armonicMean|armonicMeanFilter|armonicNumber|ash|atchFilling|atchShading|aversine|azardFunction|ead|eatFluxValue|eatInsulationValue|eatOutflowValue|eatRadiationValue|eatSymmetryValue|eatTemperatureCondition|eatTransferPDEComponent|eatTransferValue|eavisideLambda|eavisidePi|eavisideTheta|eldGroupHe|elmholtzPDEComponent|ermiteDecomposition|ermiteH|ermitian|ermitianMatrixQ|essenbergDecomposition|eunB|eunBPrime|eunC|eunCPrime|eunD|eunDPrime|eunG|eunGPrime|eunT|eunTPrime|exahedron|iddenMarkovProcess|ighlightGraph|ighlightImage|ighlightMesh|ighlighted|ighpassFilter|igmanSimsGroupHS|ilbertCurve|ilbertFilter|ilbertMatrix|istogram|istogram3D|istogramDistribution|istogramList|istogramTransform|istogramTransformInterpolation|istoricalPeriodData|itMissTransform|jorthDistribution|odgeDual|oeffdingD|oeffdingDTest|old|oldComplete|oldForm|oldPattern|orizontalGauge|ornerForm|ostLookup|otellingTSquareDistribution|oytDistribution|ue|umanGrowthData|umpDownHump|umpEqual|urwitzLerchPhi|urwitzZeta|yperbolicDistribution|ypercubeGraph|yperexponentialDistribution|yperfactorial|ypergeometric0F1|ypergeometric0F1Regularized|ypergeometric1F1|ypergeometric1F1Regularized|ypergeometric2F1|ypergeometric2F1Regularized|ypergeometricDistribution|ypergeometricPFQ|ypergeometricPFQRegularized|ypergeometricU|yperlink|yperplane|ypoexponentialDistribution|ypothesisTestData))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"System`(?:I(?:PAddress|conData|conize|cosahedron|dentity|dentityMatrix|f|fCompiled|gnoringInactive|m|mage|mage3D|mage3DProjection|mage3DSlices|mageAccumulate|mageAdd|mageAdjust|mageAlign|mageApply|mageApplyIndexed|mageAspectRatio|mageAssemble|mageCapture|mageChannels|mageClip|mageCollage|mageColorSpace|mageCompose|mageConvolve|mageCooccurrence|mageCorners|mageCorrelate|mageCorrespondingPoints|mageCrop|mageData|mageDeconvolve|mageDemosaic|mageDifference|mageDimensions|mageDisplacements|mageDistance|mageEffect|mageExposureCombine|mageFeatureTrack|mageFileApply|mageFileFilter|mageFileScan|mageFilter|mageFocusCombine|mageForestingComponents|mageForwardTransformation|mageHistogram|mageIdentify|mageInstanceQ|mageKeypoints|mageLevels|mageLines|mageMarker|mageMeasurements|mageMesh|mageMultiply|magePad|magePartition|magePeriodogram|magePerspectiveTransformation|mageQ|mageRecolor|mageReflect|mageResize|mageRestyle|mageRotate|mageSaliencyFilter|mageScaled|mageScan|mageSubtract|mageTake|mageTransformation|mageTrim|mageType|mageValue|mageValuePositions|mageVectorscopePlot|mageWaveformPlot|mplicitD|mplicitRegion|mplies|mport|mportByteArray|mportString|mprovementImportance|nactivate|nactive|ncidenceGraph|ncidenceList|ncidenceMatrix|ncrement|ndefiniteMatrixQ|ndependenceTest|ndependentEdgeSetQ|ndependentPhysicalQuantity|ndependentUnit|ndependentUnitDimension|ndependentVertexSetQ|ndexEdgeTaggedGraph|ndexGraph|ndexed|nexactNumberQ|nfiniteLine|nfiniteLineThrough|nfinitePlane|nfix|nflationAdjust|nformation|nhomogeneousPoissonProcess|nner|nnerPolygon|nnerPolyhedron|npaint|nput|nputField|nputForm|nputNamePacket|nputNotebook|nputPacket|nputStream|nputString|nputStringPacket|nsert|nsertLinebreaks|nset|nsphere|nstall|nstallService|ntegerDigits|ntegerExponent|ntegerLength|ntegerName|ntegerPart|ntegerPartitions|ntegerQ|ntegerReverse|ntegerString|ntegrate|nteractiveTradingChart|nternallyBalancedDecomposition|nterpolatingFunction|nterpolatingPolynomial|nterpolation|nterpretation|nterpretationBox|nterpreter|nterquartileRange|nterrupt|ntersectingQ|ntersection|nterval|ntervalIntersection|ntervalMemberQ|ntervalSlider|ntervalUnion|nverse|nverseBetaRegularized|nverseBilateralLaplaceTransform|nverseBilateralZTransform|nverseCDF|nverseChiSquareDistribution|nverseContinuousWaveletTransform|nverseDistanceTransform|nverseEllipticNomeQ|nverseErf|nverseErfc|nverseFourier|nverseFourierCosTransform|nverseFourierSequenceTransform|nverseFourierSinTransform|nverseFourierTransform|nverseFunction|nverseGammaDistribution|nverseGammaRegularized|nverseGaussianDistribution|nverseGudermannian|nverseHankelTransform|nverseHaversine|nverseJacobiCD|nverseJacobiCN|nverseJacobiCS|nverseJacobiDC|nverseJacobiDN|nverseJacobiDS|nverseJacobiNC|nverseJacobiND|nverseJacobiNS|nverseJacobiSC|nverseJacobiSD|nverseJacobiSN|nverseLaplaceTransform|nverseMellinTransform|nversePermutation|nverseRadon|nverseRadonTransform|nverseSeries|nverseShortTimeFourier|nverseSpectrogram|nverseSurvivalFunction|nverseTransformedRegion|nverseWaveletTransform|nverseWeierstrassP|nverseWishartMatrixDistribution|nverseZTransform|nvisible|rreduciblePolynomialQ|slandData|solatingInterval|somorphicGraphQ|somorphicSubgraphQ|sotopeData|tem|toProcess))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"System`(?:J(?:accardDissimilarity|acobiAmplitude|acobiCD|acobiCN|acobiCS|acobiDC|acobiDN|acobiDS|acobiEpsilon|acobiNC|acobiND|acobiNS|acobiP|acobiSC|acobiSD|acobiSN|acobiSymbol|acobiZN|acobiZeta|ankoGroupJ1|ankoGroupJ2|ankoGroupJ3|ankoGroupJ4|arqueBeraALMTest|ohnsonDistribution|oin|oinAcross|oinForm|oinedCurve|ordanDecomposition|ordanModelDecomposition|uliaSetBoettcher|uliaSetIterationCount|uliaSetPlot|uliaSetPoints|ulianDate))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"System`(?:K(?:CoreComponents|Distribution|EdgeConnectedComponents|EdgeConnectedGraphQ|VertexConnectedComponents|VertexConnectedGraphQ|agiChart|aiserBesselWindow|aiserWindow|almanEstimator|almanFilter|arhunenLoeveDecomposition|aryTree|atzCentrality|elvinBei|elvinBer|elvinKei|elvinKer|endallTau|endallTauTest|ernelMixtureDistribution|ernelObject|ernels|ey|eyComplement|eyDrop|eyDropFrom|eyExistsQ|eyFreeQ|eyIntersection|eyMap|eyMemberQ|eySelect|eySort|eySortBy|eyTake|eyUnion|eyValueMap|eyValuePattern|eys|illProcess|irchhoffGraph|irchhoffMatrix|leinInvariantJ|napsackSolve|nightTourGraph|notData|nownUnitQ|ochCurve|olmogorovSmirnovTest|roneckerDelta|roneckerModelDecomposition|roneckerProduct|roneckerSymbol|uiperTest|umaraswamyDistribution|urtosis|uwaharaFilter))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"System`(?:L(?:ABColor|CHColor|CM|QEstimatorGains|QGRegulator|QOutputRegulatorGains|QRegulatorGains|UDecomposition|UVColor|abel|abeled|aguerreL|akeData|ambdaComponents|ameC|ameCPrime|ameEigenvalueA|ameEigenvalueB|ameS|ameSPrime|aminaData|anczosWindow|andauDistribution|anguageData|anguageIdentify|aplaceDistribution|aplaceTransform|aplacian|aplacianFilter|aplacianGaussianFilter|aplacianPDETerm|ast|atitude|atitudeLongitude|atticeData|atticeReduce|aunchKernels|ayeredGraphPlot|ayeredGraphPlot3D|eafCount|eapVariant|eapYearQ|earnDistribution|earnedDistribution|eastSquares|eastSquaresFilterKernel|eftArrow|eftArrowBar|eftArrowRightArrow|eftDownTeeVector|eftDownVector|eftDownVectorBar|eftRightArrow|eftRightVector|eftTee|eftTeeArrow|eftTeeVector|eftTriangle|eftTriangleBar|eftTriangleEqual|eftUpDownVector|eftUpTeeVector|eftUpVector|eftUpVectorBar|eftVector|eftVectorBar|egended|egendreP|egendreQ|ength|engthWhile|erchPhi|ess|essEqual|essEqualGreater|essEqualThan|essFullEqual|essGreater|essLess|essSlantEqual|essThan|essTilde|etterCounts|etterNumber|etterQ|evel|eveneTest|eviCivitaTensor|evyDistribution|exicographicOrder|exicographicSort|ibraryDataType|ibraryFunction|ibraryFunctionError|ibraryFunctionInformation|ibraryFunctionLoad|ibraryFunctionUnload|ibraryLoad|ibraryUnload|iftingFilterData|iftingWaveletTransform|ighter|ikelihood|imit|indleyDistribution|ine|ineBreakChart|ineGraph|ineIntegralConvolutionPlot|ineLegend|inearFractionalOptimization|inearFractionalTransform|inearGradientFilling|inearGradientImage|inearModelFit|inearOptimization|inearRecurrence|inearSolve|inearSolveFunction|inearizingTransformationData|inkActivate|inkClose|inkConnect|inkCreate|inkInterrupt|inkLaunch|inkObject|inkPatterns|inkRankCentrality|inkRead|inkReadyQ|inkWrite|inks|iouvilleLambda|ist|istAnimate|istContourPlot|istContourPlot3D|istConvolve|istCorrelate|istCurvePathPlot|istDeconvolve|istDensityPlot|istDensityPlot3D|istFourierSequenceTransform|istInterpolation|istLineIntegralConvolutionPlot|istLinePlot|istLinePlot3D|istLogLinearPlot|istLogLogPlot|istLogPlot|istPicker|istPickerBox|istPlay|istPlot|istPlot3D|istPointPlot3D|istPolarPlot|istQ|istSliceContourPlot3D|istSliceDensityPlot3D|istSliceVectorPlot3D|istStepPlot|istStreamDensityPlot|istStreamPlot|istStreamPlot3D|istSurfacePlot3D|istVectorDensityPlot|istVectorDisplacementPlot|istVectorDisplacementPlot3D|istVectorPlot|istVectorPlot3D|istZTransform|ocalAdaptiveBinarize|ocalCache|ocalClusteringCoefficient|ocalEvaluate|ocalObject|ocalObjects|ocalSubmit|ocalSymbol|ocalTime|ocalTimeZone|ocationEquivalenceTest|ocationTest|ocator|ocatorPane|og|og10|og2|ogBarnesG|ogGamma|ogGammaDistribution|ogIntegral|ogLikelihood|ogLinearPlot|ogLogPlot|ogLogisticDistribution|ogMultinormalDistribution|ogNormalDistribution|ogPlot|ogRankTest|ogSeriesDistribution|ogicalExpand|ogisticDistribution|ogisticSigmoid|ogitModelFit|ongLeftArrow|ongLeftRightArrow|ongRightArrow|ongest|ongestCommonSequence|ongestCommonSequencePositions|ongestCommonSubsequence|ongestCommonSubsequencePositions|ongestOrderedSequence|ongitude|ookup|oopFreeGraphQ|owerCaseQ|owerLeftArrow|owerRightArrow|owerTriangularMatrix|owerTriangularMatrixQ|owerTriangularize|owpassFilter|ucasL|uccioSamiComponents|unarEclipse|yapunovSolve|yonsGroupLy))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"System`(?:M(?:AProcess|achineNumberQ|agnify|ailReceiverFunction|ajority|akeBoxes|akeExpression|anagedLibraryExpressionID|anagedLibraryExpressionQ|andelbrotSetBoettcher|andelbrotSetDistance|andelbrotSetIterationCount|andelbrotSetMemberQ|andelbrotSetPlot|angoldtLambda|anhattanDistance|anipulate|anipulator|annWhitneyTest|annedSpaceMissionData|antissaExponent|ap|apAll|apApply|apAt|apIndexed|apThread|archenkoPasturDistribution|arcumQ|ardiaCombinedTest|ardiaKurtosisTest|ardiaSkewnessTest|arginalDistribution|arkovProcessProperties|assConcentrationCondition|assFluxValue|assImpermeableBoundaryValue|assOutflowValue|assSymmetryValue|assTransferValue|assTransportPDEComponent|atchQ|atchingDissimilarity|aterialShading|athMLForm|athematicalFunctionData|athieuC|athieuCPrime|athieuCharacteristicA|athieuCharacteristicB|athieuCharacteristicExponent|athieuGroupM11|athieuGroupM12|athieuGroupM22|athieuGroupM23|athieuGroupM24|athieuS|athieuSPrime|atrices|atrixExp|atrixForm|atrixFunction|atrixLog|atrixNormalDistribution|atrixPlot|atrixPower|atrixPropertyDistribution|atrixQ|atrixRank|atrixTDistribution|ax|axDate|axDetect|axFilter|axLimit|axMemoryUsed|axStableDistribution|axValue|aximalBy|aximize|axwellDistribution|cLaughlinGroupMcL|ean|eanClusteringCoefficient|eanDegreeConnectivity|eanDeviation|eanFilter|eanGraphDistance|eanNeighborDegree|eanShift|eanShiftFilter|edian|edianDeviation|edianFilter|edicalTestData|eijerG|eijerGReduce|eixnerDistribution|ellinConvolve|ellinTransform|emberQ|emoryAvailable|emoryConstrained|emoryInUse|engerMesh|enuPacket|enuView|erge|ersennePrimeExponent|ersennePrimeExponentQ|eshCellCount|eshCellIndex|eshCells|eshConnectivityGraph|eshCoordinates|eshPrimitives|eshRegion|eshRegionQ|essage|essageDialog|essageList|essageName|essagePacket|essages|eteorShowerData|exicanHatWavelet|eyerWavelet|in|inDate|inDetect|inFilter|inLimit|inMax|inStableDistribution|inValue|ineralData|inimalBy|inimalPolynomial|inimalStateSpaceModel|inimize|inimumTimeIncrement|inkowskiQuestionMark|inorPlanetData|inors|inus|inusPlus|issing|issingQ|ittagLefflerE|ixedFractionParts|ixedGraphQ|ixedMagnitude|ixedRadix|ixedRadixQuantity|ixedUnit|ixtureDistribution|od|odelPredictiveController|odularInverse|odularLambda|odule|oebiusMu|oment|omentConvert|omentEvaluate|omentGeneratingFunction|omentOfInertia|onitor|onomialList|onsterGroupM|oonPhase|oonPosition|orletWavelet|orphologicalBinarize|orphologicalBranchPoints|orphologicalComponents|orphologicalEulerNumber|orphologicalGraph|orphologicalPerimeter|orphologicalTransform|ortalityData|ost|ountainData|ouseAnnotation|ouseAppearance|ousePosition|ouseover|ovieData|ovingAverage|ovingMap|ovingMedian|oyalDistribution|ulticolumn|ultigraphQ|ultinomial|ultinomialDistribution|ultinormalDistribution|ultiplicativeOrder|ultiplySides|ultivariateHypergeometricDistribution|ultivariatePoissonDistribution|ultivariateTDistribution))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"System`(?:N(?:|ArgMax|ArgMin|Cache|CaputoD|DEigensystem|DEigenvalues|DSolve|DSolveValue|Expectation|FractionalD|Integrate|MaxValue|Maximize|MinValue|Minimize|Probability|Product|Roots|Solve|SolveValues|Sum|akagamiDistribution|ameQ|ames|and|earest|earestFunction|earestMeshCells|earestNeighborGraph|earestTo|ebulaData|eedlemanWunschSimilarity|eeds|egative|egativeBinomialDistribution|egativeDefiniteMatrixQ|egativeMultinomialDistribution|egativeSemidefiniteMatrixQ|egativelyOrientedPoints|eighborhoodData|eighborhoodGraph|est|estGraph|estList|estWhile|estWhileList|estedGreaterGreater|estedLessLess|eumannValue|evilleThetaC|evilleThetaD|evilleThetaN|evilleThetaS|extCell|extDate|extPrime|icholsPlot|ightHemisphere|onCommutativeMultiply|onNegative|onPositive|oncentralBetaDistribution|oncentralChiSquareDistribution|oncentralFRatioDistribution|oncentralStudentTDistribution|ondimensionalizationTransform|oneTrue|onlinearModelFit|onlinearStateSpaceModel|onlocalMeansFilter|or|orlundB|orm|ormal|ormalDistribution|ormalMatrixQ|ormalize|ormalizedSquaredEuclideanDistance|ot|otCongruent|otCupCap|otDoubleVerticalBar|otElement|otEqualTilde|otExists|otGreater|otGreaterEqual|otGreaterFullEqual|otGreaterGreater|otGreaterLess|otGreaterSlantEqual|otGreaterTilde|otHumpDownHump|otHumpEqual|otLeftTriangle|otLeftTriangleBar|otLeftTriangleEqual|otLess|otLessEqual|otLessFullEqual|otLessGreater|otLessLess|otLessSlantEqual|otLessTilde|otNestedGreaterGreater|otNestedLessLess|otPrecedes|otPrecedesEqual|otPrecedesSlantEqual|otPrecedesTilde|otReverseElement|otRightTriangle|otRightTriangleBar|otRightTriangleEqual|otSquareSubset|otSquareSubsetEqual|otSquareSuperset|otSquareSupersetEqual|otSubset|otSubsetEqual|otSucceeds|otSucceedsEqual|otSucceedsSlantEqual|otSucceedsTilde|otSuperset|otSupersetEqual|otTilde|otTildeEqual|otTildeFullEqual|otTildeTilde|otVerticalBar|otebook|otebookApply|otebookClose|otebookDelete|otebookDirectory|otebookEvaluate|otebookFileName|otebookFind|otebookGet|otebookImport|otebookInformation|otebookLocate|otebookObject|otebookOpen|otebookPrint|otebookPut|otebookRead|otebookSave|otebookSelection|otebookTemplate|otebookWrite|otebooks|othing|uclearExplosionData|uclearReactorData|ullSpace|umberCompose|umberDecompose|umberDigit|umberExpand|umberFieldClassNumber|umberFieldDiscriminant|umberFieldFundamentalUnits|umberFieldIntegralBasis|umberFieldNormRepresentatives|umberFieldRegulator|umberFieldRootsOfUnity|umberFieldSignature|umberForm|umberLinePlot|umberQ|umerator|umeratorDenominator|umericQ|umericalOrder|umericalSort|uttallWindow|yquistPlot))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"System`(?:O(?:|NanGroupON|bservabilityGramian|bservabilityMatrix|bservableDecomposition|bservableModelQ|ceanData|ctahedron|ddQ|ff|ffset|n|nce|pacity|penAppend|penRead|penWrite|pener|penerView|pening|perate|ptimumFlowData|ptionValue|ptional|ptionalElement|ptions|ptionsPattern|r|rder|rderDistribution|rderedQ|rdering|rderingBy|rderlessPatternSequence|rnsteinUhlenbeckProcess|rthogonalMatrixQ|rthogonalize|uter|uterPolygon|uterPolyhedron|utputControllabilityMatrix|utputControllableModelQ|utputForm|utputNamePacket|utputResponse|utputStream|verBar|verDot|verHat|verTilde|verVector|verflow|verlay|verscript|verscriptBox|wenT|wnValues))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"System`(?:P(?:DF|ERTDistribution|IDTune|acletDataRebuild|acletDirectoryLoad|acletDirectoryUnload|acletDisable|acletEnable|acletFind|acletFindRemote|acletInstall|acletInstallSubmit|acletNewerQ|acletObject|acletSiteObject|acletSiteRegister|acletSiteUnregister|acletSiteUpdate|acletSites|acletUninstall|adLeft|adRight|addedForm|adeApproximant|ageRankCentrality|airedBarChart|airedHistogram|airedSmoothHistogram|airedTTest|airedZTest|aletteNotebook|alindromeQ|ane|aneSelector|anel|arabolicCylinderD|arallelArray|arallelAxisPlot|arallelCombine|arallelDo|arallelEvaluate|arallelKernels|arallelMap|arallelNeeds|arallelProduct|arallelSubmit|arallelSum|arallelTable|arallelTry|arallelepiped|arallelize|arallelogram|arameterMixtureDistribution|arametricConvexOptimization|arametricFunction|arametricNDSolve|arametricNDSolveValue|arametricPlot|arametricPlot3D|arametricRegion|arentBox|arentCell|arentDirectory|arentNotebook|aretoDistribution|aretoPickandsDistribution|arkData|art|artOfSpeech|artialCorrelationFunction|articleAcceleratorData|articleData|artition|artitionsP|artitionsQ|arzenWindow|ascalDistribution|aste|asteButton|athGraph|athGraphQ|attern|atternSequence|atternTest|aulWavelet|auliMatrix|ause|eakDetect|eanoCurve|earsonChiSquareTest|earsonCorrelationTest|earsonDistribution|ercentForm|erfectNumber|erfectNumberQ|erimeter|eriodicBoundaryCondition|eriodogram|eriodogramArray|ermanent|ermissionsGroup|ermissionsGroupMemberQ|ermissionsGroups|ermissionsKey|ermissionsKeys|ermutationCycles|ermutationCyclesQ|ermutationGroup|ermutationLength|ermutationList|ermutationListQ|ermutationMatrix|ermutationMax|ermutationMin|ermutationOrder|ermutationPower|ermutationProduct|ermutationReplace|ermutationSupport|ermutations|ermute|eronaMalikFilter|ersonData|etersenGraph|haseMargins|hongShading|hysicalSystemData|ick|ieChart|ieChart3D|iecewise|iecewiseExpand|illaiTrace|illaiTraceTest|ingTime|ixelValue|ixelValuePositions|laced|laceholder|lanarAngle|lanarFaceList|lanarGraph|lanarGraphQ|lanckRadiationLaw|laneCurveData|lanetData|lanetaryMoonData|lantData|lay|lot|lot3D|luralize|lus|lusMinus|ochhammer|oint|ointFigureChart|ointLegend|ointLight|ointSize|oissonConsulDistribution|oissonDistribution|oissonPDEComponent|oissonProcess|oissonWindow|olarPlot|olyGamma|olyLog|olyaAeppliDistribution|olygon|olygonAngle|olygonCoordinates|olygonDecomposition|olygonalNumber|olyhedron|olyhedronAngle|olyhedronCoordinates|olyhedronData|olyhedronDecomposition|olyhedronGenus|olynomialExpressionQ|olynomialExtendedGCD|olynomialGCD|olynomialLCM|olynomialMod|olynomialQ|olynomialQuotient|olynomialQuotientRemainder|olynomialReduce|olynomialRemainder|olynomialSumOfSquaresList|opupMenu|opupView|opupWindow|osition|ositionIndex|ositionLargest|ositionSmallest|ositive|ositiveDefiniteMatrixQ|ositiveSemidefiniteMatrixQ|ositivelyOrientedPoints|ossibleZeroQ|ostfix|ower|owerDistribution|owerExpand|owerMod|owerModList|owerRange|owerSpectralDensity|owerSymmetricPolynomial|owersRepresentations|reDecrement|reIncrement|recedenceForm|recedes|recedesEqual|recedesSlantEqual|recedesTilde|recision|redict|redictorFunction|redictorMeasurements|redictorMeasurementsObject|reemptProtect|refix|repend|rependTo|reviousCell|reviousDate|riceGraphDistribution|rime|rimeNu|rimeOmega|rimePi|rimePowerQ|rimeQ|rimeZetaP|rimitivePolynomialQ|rimitiveRoot|rimitiveRootList|rincipalComponents|rintTemporary|rintableASCIIQ|rintout3D|rism|rivateKey|robability|robabilityDistribution|robabilityPlot|robabilityScalePlot|robitModelFit|rocessConnection|rocessInformation|rocessObject|rocessParameterAssumptions|rocessParameterQ|rocessStatus|rocesses|roduct|roductDistribution|roductLog|rogressIndicator|rojection|roportion|roportional|rotect|roteinData|runing|seudoInverse|sychrometricPropertyData|ublicKey|ulsarData|ut|utAppend|yramid))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"System`(?:Q(?:Binomial|Factorial|Gamma|HypergeometricPFQ|Pochhammer|PolyGamma|RDecomposition|nDispersion|uadraticIrrationalQ|uadraticOptimization|uantile|uantilePlot|uantity|uantityArray|uantityDistribution|uantityForm|uantityMagnitude|uantityQ|uantityUnit|uantityVariable|uantityVariableCanonicalUnit|uantityVariableDimensions|uantityVariableIdentifier|uantityVariablePhysicalQuantity|uartileDeviation|uartileSkewness|uartiles|uery|ueueProperties|ueueingNetworkProcess|ueueingProcess|uiet|uietEcho|uotient|uotientRemainder))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"System`(?:R(?:GBColor|Solve|SolveValue|adialAxisPlot|adialGradientFilling|adialGradientImage|adialityCentrality|adicalBox|adioButton|adioButtonBar|adon|adonTransform|amanujanTau|amanujanTauL|amanujanTauTheta|amanujanTauZ|amp|andomChoice|andomColor|andomComplex|andomDate|andomEntity|andomFunction|andomGeneratorState|andomGeoPosition|andomGraph|andomImage|andomInteger|andomPermutation|andomPoint|andomPolygon|andomPolyhedron|andomPrime|andomReal|andomSample|andomTime|andomVariate|andomWalkProcess|andomWord|ange|angeFilter|ankedMax|ankedMin|arerProbability|aster|aster3D|asterize|ational|ationalExpressionQ|ationalize|atios|awBoxes|awData|ayleighDistribution|e|eIm|eImPlot|eactionPDETerm|ead|eadByteArray|eadLine|eadList|eadString|ealAbs|ealDigits|ealExponent|ealSign|eap|econstructionMesh|ectangle|ectangleChart|ectangleChart3D|ectangularRepeatingElement|ecurrenceFilter|ecurrenceTable|educe|efine|eflectionMatrix|eflectionTransform|efresh|egion|egionBinarize|egionBoundary|egionBounds|egionCentroid|egionCongruent|egionConvert|egionDifference|egionDilation|egionDimension|egionDisjoint|egionDistance|egionDistanceFunction|egionEmbeddingDimension|egionEqual|egionErosion|egionFit|egionImage|egionIntersection|egionMeasure|egionMember|egionMemberFunction|egionMoment|egionNearest|egionNearestFunction|egionPlot|egionPlot3D|egionProduct|egionQ|egionResize|egionSimilar|egionSymmetricDifference|egionUnion|egionWithin|egularExpression|egularPolygon|egularlySampledQ|elationGraph|eleaseHold|eliabilityDistribution|eliefImage|eliefPlot|emove|emoveAlphaChannel|emoveBackground|emoveDiacritics|emoveInputStreamMethod|emoveOutputStreamMethod|emoveUsers|enameDirectory|enameFile|enewalProcess|enkoChart|epairMesh|epeated|epeatedNull|epeatedTiming|epeatingElement|eplace|eplaceAll|eplaceAt|eplaceImageValue|eplaceList|eplacePart|eplacePixelValue|eplaceRepeated|esamplingAlgorithmData|escale|escalingTransform|esetDirectory|esidue|esidueSum|esolve|esourceData|esourceObject|esourceSearch|esponseForm|est|estricted|esultant|eturn|eturnExpressionPacket|eturnPacket|eturnTextPacket|everse|everseBiorthogonalSplineWavelet|everseElement|everseEquilibrium|everseGraph|everseSort|everseSortBy|everseUpEquilibrium|evolutionPlot3D|iccatiSolve|iceDistribution|idgeFilter|iemannR|iemannSiegelTheta|iemannSiegelZ|iemannXi|iffle|ightArrow|ightArrowBar|ightArrowLeftArrow|ightComposition|ightCosetRepresentative|ightDownTeeVector|ightDownVector|ightDownVectorBar|ightTee|ightTeeArrow|ightTeeVector|ightTriangle|ightTriangleBar|ightTriangleEqual|ightUpDownVector|ightUpTeeVector|ightUpVector|ightUpVectorBar|ightVector|ightVectorBar|iskAchievementImportance|iskReductionImportance|obustConvexOptimization|ogersTanimotoDissimilarity|ollPitchYawAngles|ollPitchYawMatrix|omanNumeral|oot|ootApproximant|ootIntervals|ootLocusPlot|ootMeanSquare|ootOfUnityQ|ootReduce|ootSum|oots|otate|otateLeft|otateRight|otationMatrix|otationTransform|ound|ow|owBox|owReduce|udinShapiro|udvalisGroupRu|ule|uleDelayed|ulePlot|un|unProcess|unThrough|ussellRaoDissimilarity))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"System`(?:S(?:ARIMAProcess|ARMAProcess|ASTriangle|SSTriangle|ameAs|ameQ|ampledSoundFunction|ampledSoundList|atelliteData|atisfiabilityCount|atisfiabilityInstances|atisfiableQ|ave|avitzkyGolayMatrix|awtoothWave|cale|caled|calingMatrix|calingTransform|can|cheduledTask|churDecomposition|cientificForm|corerGi|corerGiPrime|corerHi|corerHiPrime|ec|ech|echDistribution|econdOrderConeOptimization|ectorChart|ectorChart3D|eedRandom|elect|electComponents|electFirst|electedCells|electedNotebook|electionCreateCell|electionEvaluate|electionEvaluateCreateCell|electionMove|emanticImport|emanticImportString|emanticInterpretation|emialgebraicComponentInstances|emidefiniteOptimization|endMail|endMessage|equence|equenceAlignment|equenceCases|equenceCount|equenceFold|equenceFoldList|equencePosition|equenceReplace|equenceSplit|eries|eriesCoefficient|eriesData|erviceConnect|erviceDisconnect|erviceExecute|erviceObject|essionSubmit|essionTime|et|etAccuracy|etAlphaChannel|etAttributes|etCloudDirectory|etCookies|etDelayed|etDirectory|etEnvironment|etFileDate|etOptions|etPermissions|etPrecision|etSelectedNotebook|etSharedFunction|etSharedVariable|etStreamPosition|etSystemOptions|etUsers|etter|etterBar|etting|hallow|hannonWavelet|hapiroWilkTest|hare|harpen|hearingMatrix|hearingTransform|hellRegion|henCastanMatrix|hiftRegisterSequence|hiftedGompertzDistribution|hort|hortDownArrow|hortLeftArrow|hortRightArrow|hortTimeFourier|hortTimeFourierData|hortUpArrow|hortest|hortestPathFunction|how|iderealTime|iegelTheta|iegelTukeyTest|ierpinskiCurve|ierpinskiMesh|ign|ignTest|ignature|ignedRankTest|ignedRegionDistance|impleGraph|impleGraphQ|implePolygonQ|implePolyhedronQ|implex|implify|in|inIntegral|inc|inghMaddalaDistribution|ingularValueDecomposition|ingularValueList|ingularValuePlot|inh|inhIntegral|ixJSymbol|keleton|keletonTransform|kellamDistribution|kewNormalDistribution|kewness|kip|liceContourPlot3D|liceDensityPlot3D|liceDistribution|liceVectorPlot3D|lideView|lider|lider2D|liderBox|lot|lotSequence|mallCircle|mithDecomposition|mithDelayCompensator|mithWatermanSimilarity|moothDensityHistogram|moothHistogram|moothHistogram3D|moothKernelDistribution|nDispersion|ocketConnect|ocketListen|ocketListener|ocketObject|ocketOpen|ocketReadMessage|ocketReadyQ|ocketWaitAll|ocketWaitNext|ockets|okalSneathDissimilarity|olarEclipse|olarSystemFeatureData|olarTime|olidAngle|olidData|olidRegionQ|olve|olveAlways|olveValues|ort|ortBy|ound|oundNote|ourcePDETerm|ow|paceCurveData|pacer|pan|parseArray|parseArrayQ|patialGraphDistribution|patialMedian|peak|pearmanRankTest|pearmanRho|peciesData|pectralLineData|pectrogram|pectrogramArray|pecularity|peechSynthesize|pellingCorrectionList|phere|pherePoints|phericalBesselJ|phericalBesselY|phericalHankelH1|phericalHankelH2|phericalHarmonicY|phericalPlot3D|phericalShell|pheroidalEigenvalue|pheroidalJoiningFactor|pheroidalPS|pheroidalPSPrime|pheroidalQS|pheroidalQSPrime|pheroidalRadialFactor|pheroidalS1|pheroidalS1Prime|pheroidalS2|pheroidalS2Prime|plicedDistribution|plit|plitBy|pokenString|potLight|qrt|qrtBox|quare|quareFreeQ|quareIntersection|quareMatrixQ|quareRepeatingElement|quareSubset|quareSubsetEqual|quareSuperset|quareSupersetEqual|quareUnion|quareWave|quaredEuclideanDistance|quaresR|tableDistribution|tack|tackBegin|tackComplete|tackInhibit|tackedDateListPlot|tackedListPlot|tadiumShape|tandardAtmosphereData|tandardDeviation|tandardDeviationFilter|tandardForm|tandardOceanData|tandardize|tandbyDistribution|tar|tarClusterData|tarData|tarGraph|tartProcess|tateFeedbackGains|tateOutputEstimator|tateResponse|tateSpaceModel|tateSpaceTransform|tateTransformationLinearize|tationaryDistribution|tationaryWaveletPacketTransform|tationaryWaveletTransform|tatusArea|tatusCentrality|tieltjesGamma|tippleShading|tirlingS1|tirlingS2|toppingPowerData|tratonovichProcess|treamDensityPlot|treamPlot|treamPlot3D|treamPosition|treams|tringCases|tringContainsQ|tringCount|tringDelete|tringDrop|tringEndsQ|tringExpression|tringExtract|tringForm|tringFormat|tringFormatQ|tringFreeQ|tringInsert|tringJoin|tringLength|tringMatchQ|tringPadLeft|tringPadRight|tringPart|tringPartition|tringPosition|tringQ|tringRepeat|tringReplace|tringReplaceList|tringReplacePart|tringReverse|tringRiffle|tringRotateLeft|tringRotateRight|tringSkeleton|tringSplit|tringStartsQ|tringTake|tringTakeDrop|tringTemplate|tringToByteArray|tringToStream|tringTrim|tripBoxes|tructuralImportance|truveH|truveL|tudentTDistribution|tyle|tyleBox|tyleData|ubMinus|ubPlus|ubStar|ubValues|ubdivide|ubfactorial|ubgraph|ubresultantPolynomialRemainders|ubresultantPolynomials|ubresultants|ubscript|ubscriptBox|ubsequences|ubset|ubsetEqual|ubsetMap|ubsetQ|ubsets|ubstitutionSystem|ubsuperscript|ubsuperscriptBox|ubtract|ubtractFrom|ubtractSides|ucceeds|ucceedsEqual|ucceedsSlantEqual|ucceedsTilde|uccess|uchThat|um|umConvergence|unPosition|unrise|unset|uperDagger|uperMinus|uperPlus|uperStar|upernovaData|uperscript|uperscriptBox|uperset|upersetEqual|urd|urfaceArea|urfaceData|urvivalDistribution|urvivalFunction|urvivalModel|urvivalModelFit|uzukiDistribution|uzukiGroupSuz|watchLegend|witch|ymbol|ymbolName|ymletWavelet|ymmetric|ymmetricGroup|ymmetricKey|ymmetricMatrixQ|ymmetricPolynomial|ymmetricReduction|ymmetrize|ymmetrizedArray|ymmetrizedArrayRules|ymmetrizedDependentComponents|ymmetrizedIndependentComponents|ymmetrizedReplacePart|ynonyms|yntaxInformation|yntaxLength|yntaxPacket|yntaxQ|ystemDialogInput|ystemInformation|ystemOpen|ystemOptions|ystemProcessData|ystemProcesses|ystemsConnectionsModel|ystemsModelControllerData|ystemsModelDelay|ystemsModelDelayApproximate|ystemsModelDelete|ystemsModelDimensions|ystemsModelExtract|ystemsModelFeedbackConnect|ystemsModelLinearity|ystemsModelMerge|ystemsModelOrder|ystemsModelParallelConnect|ystemsModelSeriesConnect|ystemsModelStateFeedbackConnect|ystemsModelVectorRelativeOrders))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"System`(?:T(?:Test|abView|able|ableForm|agBox|agSet|agSetDelayed|agUnset|ake|akeDrop|akeLargest|akeLargestBy|akeList|akeSmallest|akeSmallestBy|akeWhile|ally|an|anh|askAbort|askExecute|askObject|askRemove|askResume|askSuspend|askWait|asks|autologyQ|eXForm|elegraphProcess|emplateApply|emplateBox|emplateExpression|emplateIf|emplateObject|emplateSequence|emplateSlot|emplateWith|emporalData|ensorContract|ensorDimensions|ensorExpand|ensorProduct|ensorRank|ensorReduce|ensorSymmetry|ensorTranspose|ensorWedge|erminatedEvaluation|estReport|estReportObject|estResultObject|etrahedron|ext|extCell|extData|extGrid|extPacket|extRecognize|extSentences|extString|extTranslation|extWords|exture|herefore|hermodynamicData|hermometerGauge|hickness|hinning|hompsonGroupTh|hread|hreeJSymbol|hreshold|hrough|hrow|hueMorse|humbnail|ideData|ilde|ildeEqual|ildeFullEqual|ildeTilde|imeConstrained|imeObject|imeObjectQ|imeRemaining|imeSeries|imeSeriesAggregate|imeSeriesForecast|imeSeriesInsert|imeSeriesInvertibility|imeSeriesMap|imeSeriesMapThread|imeSeriesModel|imeSeriesModelFit|imeSeriesResample|imeSeriesRescale|imeSeriesShift|imeSeriesThread|imeSeriesWindow|imeSystemConvert|imeUsed|imeValue|imeZoneConvert|imeZoneOffset|imelinePlot|imes|imesBy|iming|itsGroupT|oBoxes|oCharacterCode|oContinuousTimeModel|oDiscreteTimeModel|oEntity|oExpression|oInvertibleTimeSeries|oLowerCase|oNumberField|oPolarCoordinates|oRadicals|oRules|oSphericalCoordinates|oString|oUpperCase|oeplitzMatrix|ogether|oggler|ogglerBar|ooltip|oonShading|opHatTransform|opologicalSort|orus|orusGraph|otal|otalVariationFilter|ouchPosition|r|race|raceDialog|racePrint|raceScan|racyWidomDistribution|radingChart|raditionalForm|ransferFunctionCancel|ransferFunctionExpand|ransferFunctionFactor|ransferFunctionModel|ransferFunctionPoles|ransferFunctionTransform|ransferFunctionZeros|ransformationFunction|ransformationMatrix|ransformedDistribution|ransformedField|ransformedProcess|ransformedRegion|ransitiveClosureGraph|ransitiveReductionGraph|ranslate|ranslationTransform|ransliterate|ranspose|ravelDirections|ravelDirectionsData|ravelDistance|ravelDistanceList|ravelTime|reeForm|reeGraph|reeGraphQ|reePlot|riangle|riangleWave|riangularDistribution|riangulateMesh|rigExpand|rigFactor|rigFactorList|rigReduce|rigToExp|rigger|rimmedMean|rimmedVariance|ropicalStormData|rueQ|runcatedDistribution|runcatedPolyhedron|sallisQExponentialDistribution|sallisQGaussianDistribution|ube|ukeyLambdaDistribution|ukeyWindow|unnelData|uples|uranGraph|uringMachine|uttePolynomial|woWayRule|ypeHint))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"System`(?:U(?:RL|RLBuild|RLDecode|RLDispatcher|RLDownload|RLEncode|RLExecute|RLExpand|RLParse|RLQueryDecode|RLQueryEncode|RLRead|RLResponseTime|RLShorten|RLSubmit|nateQ|ncompress|nderBar|nderflow|nderoverscript|nderoverscriptBox|nderscript|nderscriptBox|nderseaFeatureData|ndirectedEdge|ndirectedGraph|ndirectedGraphQ|nequal|nequalTo|nevaluated|niformDistribution|niformGraphDistribution|niformPolyhedron|niformSumDistribution|ninstall|nion|nionPlus|nique|nitBox|nitConvert|nitDimensions|nitRootTest|nitSimplify|nitStep|nitTriangle|nitVector|nitaryMatrixQ|nitize|niverseModelData|niversityData|nixTime|nprotect|nsameQ|nset|nsetShared|ntil|pArrow|pArrowBar|pArrowDownArrow|pDownArrow|pEquilibrium|pSet|pSetDelayed|pTee|pTeeArrow|pTo|pValues|pdate|pperCaseQ|pperLeftArrow|pperRightArrow|pperTriangularMatrix|pperTriangularMatrixQ|pperTriangularize|psample|singFrontEnd))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"System`(?:V(?:alueQ|alues|ariables|ariance|arianceEquivalenceTest|arianceGammaDistribution|arianceTest|ectorAngle|ectorDensityPlot|ectorDisplacementPlot|ectorDisplacementPlot3D|ectorGreater|ectorGreaterEqual|ectorLess|ectorLessEqual|ectorPlot|ectorPlot3D|ectorQ|ectors|ee|erbatim|erificationTest|ertexAdd|ertexChromaticNumber|ertexComponent|ertexConnectivity|ertexContract|ertexCorrelationSimilarity|ertexCosineSimilarity|ertexCount|ertexCoverQ|ertexDegree|ertexDelete|ertexDiceSimilarity|ertexEccentricity|ertexInComponent|ertexInComponentGraph|ertexInDegree|ertexIndex|ertexJaccardSimilarity|ertexList|ertexOutComponent|ertexOutComponentGraph|ertexOutDegree|ertexQ|ertexReplace|ertexTransitiveGraphQ|ertexWeightedGraphQ|erticalBar|erticalGauge|erticalSeparator|erticalSlider|erticalTilde|oiceStyleData|oigtDistribution|olcanoData|olume|onMisesDistribution|oronoiMesh))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"System`(?:W(?:aitAll|aitNext|akebyDistribution|alleniusHypergeometricDistribution|aringYuleDistribution|arpingCorrespondence|arpingDistance|atershedComponents|atsonUSquareTest|attsStrogatzGraphDistribution|avePDEComponent|aveletBestBasis|aveletFilterCoefficients|aveletImagePlot|aveletListPlot|aveletMapIndexed|aveletMatrixPlot|aveletPhi|aveletPsi|aveletScalogram|aveletThreshold|eakStationarity|eaklyConnectedComponents|eaklyConnectedGraphComponents|eaklyConnectedGraphQ|eatherData|eatherForecastData|eberE|edge|eibullDistribution|eierstrassE1|eierstrassE2|eierstrassE3|eierstrassEta1|eierstrassEta2|eierstrassEta3|eierstrassHalfPeriodW1|eierstrassHalfPeriodW2|eierstrassHalfPeriodW3|eierstrassHalfPeriods|eierstrassInvariantG2|eierstrassInvariantG3|eierstrassInvariants|eierstrassP|eierstrassPPrime|eierstrassSigma|eierstrassZeta|eightedAdjacencyGraph|eightedAdjacencyMatrix|eightedData|eightedGraphQ|elchWindow|heelGraph|henEvent|hich|hile|hiteNoiseProcess|hittakerM|hittakerW|ienerFilter|ienerProcess|ignerD|ignerSemicircleDistribution|ikipediaData|ilksW|ilksWTest|indDirectionData|indSpeedData|indVectorData|indingCount|indingPolygon|insorizedMean|insorizedVariance|ishartMatrixDistribution|ith|olframAlpha|olframLanguageData|ordCloud|ordCount|ordCounts|ordData|ordDefinition|ordFrequency|ordFrequencyData|ordList|ordStem|ordTranslation|rite|riteLine|riteString|ronskian))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"System`(?:X(?:MLElement|MLObject|MLTemplate|YZColor|nor|or))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"System`(?:Y(?:uleDissimilarity))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"System`(?:Z(?:IPCodeData|Test|Transform|ernikeR|eroSymmetric|eta|etaZero|ipfDistribution))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"System`(?:A(?:cceptanceThreshold|ccuracyGoal|ctiveStyle|ddOnHelpPath|djustmentBoxOptions|lignment|lignmentPoint|llowGroupClose|llowInlineCells|llowLooseGrammar|llowReverseGroupClose|llowScriptLevelChange|llowVersionUpdate|llowedCloudExtraParameters|llowedCloudParameterExtensions|llowedDimensions|llowedFrequencyRange|llowedHeads|lternativeHypothesis|ltitudeMethod|mbiguityFunction|natomySkinStyle|nchoredSearch|nimationDirection|nimationRate|nimationRepetitions|nimationRunTime|nimationRunning|nimationTimeIndex|nnotationRules|ntialiasing|ppearance|ppearanceElements|ppearanceRules|spectRatio|ssociationFormat|ssumptions|synchronous|ttachedCell|udioChannelAssignment|udioEncoding|udioInputDevice|udioLabel|udioOutputDevice|uthentication|utoAction|utoCopy|utoDelete|utoGeneratedPackage|utoIndent|utoItalicWords|utoMultiplicationSymbol|utoOpenNotebooks|utoOpenPalettes|utoOperatorRenderings|utoRemove|utoScroll|utoSpacing|utoloadPath|utorunSequencing|xes|xesEdge|xesLabel|xesOrigin|xesStyle))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:B(?:ackground|arOrigin|arSpacing|aseStyle|aselinePosition|inaryFormat|ookmarks|ooleanStrings|oundaryStyle|oxBaselineShift|oxFormFormatTypes|oxFrame|oxMargins|oxRatios|oxStyle|oxed|ubbleScale|ubbleSizes|uttonBoxOptions|uttonData|uttonFunction|uttonMinHeight|uttonSource|yteOrdering))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:C(?:alendarType|alloutMarker|alloutStyle|aptureRunning|aseOrdering|elestialSystem|ellAutoOverwrite|ellBaseline|ellBracketOptions|ellChangeTimes|ellContext|ellDingbat|ellDingbatMargin|ellDynamicExpression|ellEditDuplicate|ellEpilog|ellEvaluationDuplicate|ellEvaluationFunction|ellEventActions|ellFrame|ellFrameColor|ellFrameLabelMargins|ellFrameLabels|ellFrameMargins|ellGrouping|ellGroupingRules|ellHorizontalScrolling|ellID|ellLabel|ellLabelAutoDelete|ellLabelMargins|ellLabelPositioning|ellLabelStyle|ellLabelTemplate|ellMargins|ellOpen|ellProlog|ellSize|ellTags|haracterEncoding|haracterEncodingsPath|hartBaseStyle|hartElementFunction|hartElements|hartLabels|hartLayout|hartLegends|hartStyle|lassPriors|lickToCopyEnabled|lipPlanes|lipPlanesStyle|lipRange|lippingStyle|losingAutoSave|loudBase|loudObjectNameFormat|loudObjectURLType|lusterDissimilarityFunction|odeAssistOptions|olorCoverage|olorFunction|olorFunctionBinning|olorFunctionScaling|olorRules|olorSelectorSettings|olorSpace|olumnAlignments|olumnLines|olumnSpacings|olumnWidths|olumnsEqual|ombinerFunction|ommonDefaultFormatTypes|ommunityBoundaryStyle|ommunityLabels|ommunityRegionStyle|ompilationOptions|ompilationTarget|ompiled|omplexityFunction|ompressionLevel|onfidenceLevel|onfidenceRange|onfidenceTransform|onfigurationPath|onstants|ontentPadding|ontentSelectable|ontentSize|ontinuousAction|ontourLabels|ontourShading|ontourStyle|ontours|ontrolPlacement|ontrolType|ontrollerLinking|ontrollerMethod|ontrollerPath|ontrolsRendering|onversionRules|ookieFunction|oordinatesToolOptions|opyFunction|opyable|ornerNeighbors|ounterAssignments|ounterFunction|ounterIncrements|ounterStyleMenuListing|ovarianceEstimatorFunction|reateCellID|reateIntermediateDirectories|riterionFunction|ubics|urveClosed))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:D(?:ataRange|ataReversed|atasetTheme|ateFormat|ateFunction|ateGranularity|ateReduction|ateTicksFormat|ayCountConvention|efaultDuplicateCellStyle|efaultDuration|efaultElement|efaultFontProperties|efaultFormatType|efaultInlineFormatType|efaultNaturalLanguage|efaultNewCellStyle|efaultNewInlineCellStyle|efaultNotebook|efaultOptions|efaultPrintPrecision|efaultStyleDefinitions|einitialization|eletable|eleteContents|eletionWarning|elimiterAutoMatching|elimiterFlashTime|elimiterMatching|elimiters|eliveryFunction|ependentVariables|eployed|escriptorStateSpace|iacriticalPositioning|ialogProlog|ialogSymbols|igitBlock|irectedEdges|irection|iscreteVariables|ispersionEstimatorFunction|isplayAllSteps|isplayFunction|istanceFunction|istributedContexts|ithering|ividers|ockedCell|ockedCells|ynamicEvaluationTimeout|ynamicModuleValues|ynamicUpdating))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:E(?:clipseType|dgeCapacity|dgeCost|dgeLabelStyle|dgeLabels|dgeShapeFunction|dgeStyle|dgeValueRange|dgeValueSizes|dgeWeight|ditCellTagsSettings|ditable|lidedForms|nabled|pilog|pilogFunction|scapeRadius|valuatable|valuationCompletionAction|valuationElements|valuationMonitor|valuator|valuatorNames|ventLabels|xcludePods|xcludedContexts|xcludedForms|xcludedLines|xcludedPhysicalQuantities|xclusions|xclusionsStyle|xponentFunction|xponentPosition|xponentStep|xponentialFamily|xportAutoReplacements|xpressionUUID|xtension|xtentElementFunction|xtentMarkers|xtentSize|xternalDataCharacterEncoding|xternalOptions|xternalTypeSignature))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:F(?:aceGrids|aceGridsStyle|ailureAction|eatureNames|eatureTypes|eedbackSector|eedbackSectorStyle|eedbackType|ieldCompletionFunction|ieldHint|ieldHintStyle|ieldMasked|ieldSize|ileNameDialogSettings|ileNameForms|illing|illingStyle|indSettings|itRegularization|ollowRedirects|ontColor|ontFamily|ontSize|ontSlant|ontSubstitutions|ontTracking|ontVariations|ontWeight|orceVersionInstall|ormBoxOptions|ormLayoutFunction|ormProtectionMethod|ormatType|ormatTypeAutoConvert|ourierParameters|ractionBoxOptions|ractionLine|rame|rameBoxOptions|rameLabel|rameMargins|rameRate|rameStyle|rameTicks|rameTicksStyle|rontEndEventActions|unctionSpace))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:G(?:apPenalty|augeFaceElementFunction|augeFaceStyle|augeFrameElementFunction|augeFrameSize|augeFrameStyle|augeLabels|augeMarkers|augeStyle|aussianIntegers|enerateConditions|eneratedCell|eneratedDocumentBinding|eneratedParameters|eneratedQuantityMagnitudes|eneratorDescription|eneratorHistoryLength|eneratorOutputType|eoArraySize|eoBackground|eoCenter|eoGridLines|eoGridLinesStyle|eoGridRange|eoGridRangePadding|eoLabels|eoLocation|eoModel|eoProjection|eoRange|eoRangePadding|eoResolution|eoScaleBar|eoServer|eoStylingImageFunction|eoZoomLevel|radient|raphHighlight|raphHighlightStyle|raphLayerStyle|raphLayers|raphLayout|ridCreationSettings|ridDefaultElement|ridFrame|ridFrameMargins|ridLines|ridLinesStyle|roupActionBase|roupPageBreakWithin))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:H(?:eaderAlignment|eaderBackground|eaderDisplayFunction|eaderLines|eaderSize|eaderStyle|eads|elpBrowserSettings|iddenItems|olidayCalendar|yperlinkAction|yphenation))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:I(?:conRules|gnoreCase|gnoreDiacritics|gnorePunctuation|mageCaptureFunction|mageFormattingWidth|mageLabels|mageLegends|mageMargins|magePadding|magePreviewFunction|mageRegion|mageResolution|mageSize|mageSizeAction|mageSizeMultipliers|magingDevice|mportAutoReplacements|mportOptions|ncludeConstantBasis|ncludeDefinitions|ncludeDirectories|ncludeFileExtension|ncludeGeneratorTasks|ncludeInflections|ncludeMetaInformation|ncludePods|ncludeQuantities|ncludeSingularSolutions|ncludeWindowTimes|ncludedContexts|ndeterminateThreshold|nflationMethod|nheritScope|nitialSeeding|nitialization|nitializationCell|nitializationCellEvaluation|nitializationCellWarning|nputAliases|nputAssumptions|nputAutoReplacements|nsertResults|nsertionFunction|nteractive|nterleaving|nterpolationOrder|nterpolationPoints|nterpretationBoxOptions|nterpretationFunction|ntervalMarkers|ntervalMarkersStyle|nverseFunctions|temAspectRatio|temDisplayFunction|temSize|temStyle))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:J(?:oined))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:K(?:eepExistingVersion|eyCollisionFunction|eypointStrength))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:L(?:abelStyle|abelVisibility|abelingFunction|abelingSize|anguage|anguageCategory|ayerSizeFunction|eaderSize|earningRate|egendAppearance|egendFunction|egendLabel|egendLayout|egendMargins|egendMarkerSize|egendMarkers|ighting|ightingAngle|imitsPositioning|imitsPositioningTokens|ineBreakWithin|ineIndent|ineIndentMaxFraction|ineIntegralConvolutionScale|ineSpacing|inearOffsetFunction|inebreakAdjustments|inkFunction|inkProtocol|istFormat|istPickerBoxOptions|ocalizeVariables|ocatorAutoCreate|ocatorRegion|ooping))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:M(?:agnification|ailAddressValidation|ailResponseFunction|ailSettings|asking|atchLocalNames|axCellMeasure|axColorDistance|axDuration|axExtraBandwidths|axExtraConditions|axFeatureDisplacement|axFeatures|axItems|axIterations|axMixtureKernels|axOverlapFraction|axPlotPoints|axRecursion|axStepFraction|axStepSize|axSteps|emoryConstraint|enuCommandKey|enuSortingValue|enuStyle|esh|eshCellHighlight|eshCellLabel|eshCellMarker|eshCellShapeFunction|eshCellStyle|eshFunctions|eshQualityGoal|eshRefinementFunction|eshShading|eshStyle|etaInformation|ethod|inColorDistance|inIntervalSize|inPointSeparation|issingBehavior|issingDataMethod|issingDataRules|issingString|issingStyle|odal|odulus|ultiaxisArrangement|ultiedgeStyle|ultilaunchWarning|ultilineFunction|ultiselection))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:N(?:icholsGridLines|ominalVariables|onConstants|ormFunction|ormalized|ormalsFunction|otebookAutoSave|otebookBrowseDirectory|otebookConvertSettings|otebookDynamicExpression|otebookEventActions|otebookPath|otebooksMenu|otificationFunction|ullRecords|ullWords|umberFormat|umberMarks|umberMultiplier|umberPadding|umberPoint|umberSeparator|umberSigns|yquistGridLines))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:O(?:pacityFunction|pacityFunctionScaling|peratingSystem|ptionInspectorSettings|utputAutoOverwrite|utputSizeLimit|verlaps|verscriptBoxOptions|verwriteTarget))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:P(?:IDDerivativeFilter|IDFeedforward|acletSite|adding|addingSize|ageBreakAbove|ageBreakBelow|ageBreakWithin|ageFooterLines|ageFooters|ageHeaderLines|ageHeaders|ageTheme|ageWidth|alettePath|aneled|aragraphIndent|aragraphSpacing|arallelization|arameterEstimator|artBehavior|artitionGranularity|assEventsDown|assEventsUp|asteBoxFormInlineCells|ath|erformanceGoal|ermissions|haseRange|laceholderReplace|layRange|lotLabel|lotLabels|lotLayout|lotLegends|lotMarkers|lotPoints|lotRange|lotRangeClipping|lotRangePadding|lotRegion|lotStyle|lotTheme|odStates|odWidth|olarAxes|olarAxesOrigin|olarGridLines|olarTicks|oleZeroMarkers|recisionGoal|referencesPath|reprocessingRules|reserveColor|reserveImageOptions|rincipalValue|rintAction|rintPrecision|rintingCopies|rintingOptions|rintingPageRange|rintingStartingPageNumber|rintingStyleEnvironment|rintout3DPreviewer|rivateCellOptions|rivateEvaluationOptions|rivateFontOptions|rivateNotebookOptions|rivatePaths|rocessDirectory|rocessEnvironment|rocessEstimator|rogressReporting|rolog|ropagateAborts))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:Q(?:uartics))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:R(?:adicalBoxOptions|andomSeeding|asterSize|eImLabels|eImStyle|ealBlockDiagonalForm|ecognitionPrior|ecordLists|ecordSeparators|eferenceLineStyle|efreshRate|egionBoundaryStyle|egionFillingStyle|egionFunction|egionSize|egularization|enderingOptions|equiredPhysicalQuantities|esampling|esamplingMethod|esolveContextAliases|estartInterval|eturnReceiptFunction|evolutionAxis|otateLabel|otationAction|oundingRadius|owAlignments|owLines|owMinHeight|owSpacings|owsEqual|ulerUnits|untimeAttributes|untimeOptions))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:S(?:ameTest|ampleDepth|ampleRate|amplingPeriod|aveConnection|aveDefinitions|aveable|caleDivisions|caleOrigin|calePadding|caleRangeStyle|caleRanges|calingFunctions|cientificNotationThreshold|creenStyleEnvironment|criptBaselineShifts|criptLevel|criptMinSize|criptSizeMultipliers|crollPosition|crollbars|crollingOptions|ectorOrigin|ectorSpacing|electable|elfLoopStyle|eriesTermGoal|haringList|howAutoSpellCheck|howAutoStyles|howCellBracket|howCellLabel|howCellTags|howClosedCellArea|howContents|howCursorTracker|howGroupOpener|howPageBreaks|howSelection|howShortBoxForm|howSpecialCharacters|howStringCharacters|hrinkingDelay|ignPadding|ignificanceLevel|imilarityRules|ingleLetterItalics|liderBoxOptions|ortedBy|oundVolume|pacings|panAdjustments|panCharacterRounding|panLineThickness|panMaxSize|panMinSize|panSymmetric|pecificityGoal|pellingCorrection|pellingDictionaries|pellingDictionariesPath|pellingOptions|phericalRegion|plineClosed|plineDegree|plineKnots|plineWeights|qrtBoxOptions|tabilityMargins|tabilityMarginsStyle|tandardized|tartingStepSize|tateSpaceRealization|tepMonitor|trataVariables|treamColorFunction|treamColorFunctionScaling|treamMarkers|treamPoints|treamScale|treamStyle|trictInequalities|tripOnInput|tripWrapperBoxes|tructuredSelection|tyleBoxAutoDelete|tyleDefinitions|tyleHints|tyleMenuListing|tyleNameDialogSettings|tyleSheetPath|ubscriptBoxOptions|ubsuperscriptBoxOptions|ubtitleEncoding|uperscriptBoxOptions|urdForm|ynchronousInitialization|ynchronousUpdating|yntaxForm|ystemHelpPath|ystemsModelLabels))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:T(?:abFilling|abSpacings|ableAlignments|ableDepth|ableDirections|ableHeadings|ableSpacing|agBoxOptions|aggingRules|argetFunctions|argetUnits|emplateBoxOptions|emporalRegularity|estID|extAlignment|extClipboardType|extJustification|extureCoordinateFunction|extureCoordinateScaling|icks|icksStyle|imeConstraint|imeDirection|imeFormat|imeGoal|imeSystem|imeZone|okenWords|olerance|ooltipDelay|ooltipStyle|otalWidth|ouchscreenAutoZoom|ouchscreenControlPlacement|raceAbove|raceBackward|raceDepth|raceForward|raceOff|raceOn|raceOriginal|rackedSymbols|rackingFunction|raditionalFunctionNotation|ransformationClass|ransformationFunctions|ransitionDirection|ransitionDuration|ransitionEffect|ranslationOptions|ravelMethod|rendStyle|rig))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:U(?:nderoverscriptBoxOptions|nderscriptBoxOptions|ndoOptions|ndoTrackedVariables|nitSystem|nityDimensions|nsavedVariables|pdateInterval|pdatePacletSites|tilityFunction))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:V(?:alidationLength|alidationSet|alueDimensions|arianceEstimatorFunction|ectorAspectRatio|ectorColorFunction|ectorColorFunctionScaling|ectorMarkers|ectorPoints|ectorRange|ectorScaling|ectorSizes|ectorStyle|erifyConvergence|erifySecurityCertificates|erifySolutions|erifyTestAssumptions|ersionedPreferences|ertexCapacity|ertexColors|ertexCoordinates|ertexDataCoordinates|ertexLabelStyle|ertexLabels|ertexNormals|ertexShape|ertexShapeFunction|ertexSize|ertexStyle|ertexTextureCoordinates|ertexWeight|ideoEncoding|iewAngle|iewCenter|iewMatrix|iewPoint|iewProjection|iewRange|iewVector|iewVertical|isible))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:W(?:aveletScale|eights|hitePoint|indowClickSelect|indowElements|indowFloating|indowFrame|indowFrameElements|indowMargins|indowOpacity|indowSize|indowStatusArea|indowTitle|indowToolbars|ordOrientation|ordSearch|ordSelectionFunction|ordSeparators|ordSpacings|orkingPrecision|rapAround))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:Z(?:eroTest|eroWidthTimes))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:A(?:bove|fter|lgebraics|ll|nonymous|utomatic|xis))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:B(?:ack|ackward|aseline|efore|elow|lack|lue|old|ooleans|ottom|oxes|rown|yte))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:C(?:atalan|ellStyle|enter|haracter|omplexInfinity|omplexes|onstant|yan))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:D(?:ashed|efaultAxesStyle|efaultBaseStyle|efaultBoxStyle|efaultFaceGridsStyle|efaultFieldHintStyle|efaultFrameStyle|efaultFrameTicksStyle|efaultGridLinesStyle|efaultLabelStyle|efaultMenuStyle|efaultTicksStyle|efaultTooltipStyle|egree|elimiter|igitCharacter|otDashed|otted))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:E(?:|ndOfBuffer|ndOfFile|ndOfLine|ndOfString|ulerGamma|xpression))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:F(?:alse|lat|ontProperties|orward|orwardBackward|riday|ront|rontEndDynamicExpression|ull))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:G(?:eneral|laisher|oldenAngle|oldenRatio|ray|reen))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:H(?:ere|exadecimalCharacter|oldAll|oldAllComplete|oldFirst|oldRest))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:I(?:|ndeterminate|nfinity|nherited|nteger|ntegers|talic))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:K(?:hinchin))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:L(?:arge|arger|eft|etterCharacter|ightBlue|ightBrown|ightCyan|ightGray|ightGreen|ightMagenta|ightOrange|ightPink|ightPurple|ightRed|ightYellow|istable|ocked))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:M(?:achinePrecision|agenta|anual|edium|eshCellCentroid|eshCellMeasure|eshCellQuality|onday))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:N(?:HoldAll|HoldFirst|HoldRest|egativeIntegers|egativeRationals|egativeReals|oWhitespace|onNegativeIntegers|onNegativeRationals|onNegativeReals|onPositiveIntegers|onPositiveRationals|onPositiveReals|one|ow|ull|umber|umberString|umericFunction))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:O(?:neIdentity|range|rderless))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:P(?:i|ink|lain|ositiveIntegers|ositiveRationals|ositiveReals|rimes|rotected|unctuationCharacter|urple))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:R(?:ationals|eadProtected|eal|eals|ecord|ed|ight))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:S(?:aturday|equenceHold|mall|maller|panFromAbove|panFromBoth|panFromLeft|tartOfLine|tartOfString|tring|truckthrough|tub|unday))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:T(?:emporary|hick|hin|hursday|iny|oday|omorrow|op|ransparent|rue|uesday))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:U(?:ndefined|nderlined))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:W(?:ednesday|hite|hitespace|hitespaceCharacter|ord|ordBoundary|ordCharacter))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:Y(?:ellow|esterday))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:\\\\\\\\$(?:Aborted|ActivationKey|AllowDataUpdates|AllowInternet|AssertFunction|Assumptions|AudioInputDevices|AudioOutputDevices|BaseDirectory|BasePacletsDirectory|BatchInput|BatchOutput|ByteOrdering|CacheBaseDirectory|Canceled|CharacterEncoding|CharacterEncodings|CloudAccountName|CloudBase|CloudConnected|CloudCreditsAvailable|CloudEvaluation|CloudExpressionBase|CloudObjectNameFormat|CloudObjectURLType|CloudRootDirectory|CloudSymbolBase|CloudUserID|CloudUserUUID|CloudVersion|CommandLine|CompilationTarget|Context|ContextAliases|ContextPath|ControlActiveSetting|Cookies|CreationDate|CurrentLink|CurrentTask|DateStringFormat|DefaultAudioInputDevice|DefaultAudioOutputDevice|DefaultFrontEnd|DefaultImagingDevice|DefaultKernels|DefaultLocalBase|DefaultLocalKernel|Display|DisplayFunction|DistributedContexts|DynamicEvaluation|Echo|EmbedCodeEnvironments|EmbeddableServices|Epilog|EvaluationCloudBase|EvaluationCloudObject|EvaluationEnvironment|ExportFormats|Failed|FontFamilies|FrontEnd|FrontEndSession|GeoLocation|GeoLocationCity|GeoLocationCountry|GeoLocationSource|HomeDirectory|IgnoreEOF|ImageFormattingWidth|ImageResolution|ImagingDevice|ImagingDevices|ImportFormats|InitialDirectory|Input|InputFileName|InputStreamMethods|Inspector|InstallationDirectory|InterpreterTypes|IterationLimit|KernelCount|KernelID|Language|LibraryPath|LicenseExpirationDate|LicenseID|LicenseServer|Linked|LocalBase|LocalSymbolBase|MachineAddresses|MachineDomains|MachineEpsilon|MachineID|MachineName|MachinePrecision|MachineType|MaxExtraPrecision|MaxMachineNumber|MaxNumber|MaxPiecewiseCases|MaxPrecision|MaxRootDegree|MessageGroups|MessageList|MessagePrePrint|Messages|MinMachineNumber|MinNumber|MinPrecision|MobilePhone|ModuleNumber|NetworkConnected|NewMessage|NewSymbol|NotebookInlineStorageLimit|Notebooks|NumberMarks|OperatingSystem|Output|OutputSizeLimit|OutputStreamMethods|Packages|ParentLink|ParentProcessID|PasswordFile|Path|PathnameSeparator|PerformanceGoal|Permissions|PlotTheme|Printout3DPreviewer|ProcessID|ProcessorCount|ProcessorType|ProgressReporting|RandomGeneratorState|RecursionLimit|ReleaseNumber|RequesterAddress|RequesterCloudUserID|RequesterCloudUserUUID|RequesterWolframID|RequesterWolframUUID|RootDirectory|ScriptCommandLine|ScriptInputString|Services|SessionID|SharedFunctions|SharedVariables|SoundDisplayFunction|SynchronousEvaluation|System|SystemCharacterEncoding|SystemID|SystemShell|SystemTimeZone|SystemWordLength|TemplatePath|TemporaryDirectory|TimeUnit|TimeZone|TimeZoneEntity|TimedOut|UnitSystem|Urgent|UserAgentString|UserBaseDirectory|UserBasePacletsDirectory|UserDocumentsDirectory|UserURLBase|Username|Version|VersionNumber|WolframDocumentsDirectory|WolframID|WolframUUID))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"System`(?:A(?:bortScheduledTask|ctive|lgebraicRules|lternateImage|natomyForm|nimationCycleOffset|nimationCycleRepetitions|nimationDisplayTime|spectRatioFixed|stronomicalData|synchronousTaskObject|synchronousTasks|udioDevice|udioLooping))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"System`(?:B(?:uttonEvaluator|uttonExpandable|uttonFrame|uttonMargins|uttonNote|uttonStyle))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"System`(?:C(?:DFInformation|hebyshevDistance|lassifierInformation|lipFill|olorOutput|olumnForm|ompose|onstantArrayLayer|onstantPlusLayer|onstantTimesLayer|onstrainedMax|onstrainedMin|ontourGraphics|ontourLines|onversionOptions|reateScheduledTask|reateTemporary|urry))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"System`(?:D(?:atabinRemove|ate|ebug|efaultColor|efaultFont|ensityGraphics|isplay|isplayString|otPlusLayer|ragAndDrop))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"System`(?:E(?:dgeLabeling|dgeRenderingFunction|valuateScheduledTask|xpectedValue))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"System`(?:F(?:actorComplete|ontForm|ormTheme|romDate|ullOptions))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"System`(?:G(?:raphStyle|raphicsArray|raphicsSpacing|ridBaseline))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"System`(?:H(?:TMLSave|eldPart|iddenSurface|omeDirectory))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"System`(?:I(?:mageRotated|nstanceNormalizationLayer))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"System`(?:L(?:UBackSubstitution|egendreType|ightSources|inearProgramming|inkOpen|iteral|ongestMatch))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"System`(?:M(?:eshRange|oleculeEquivalentQ))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"System`(?:N(?:etInformation|etSharedArray|extScheduledTaskTime|otebookCreate))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"System`(?:O(?:penTemporary))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"System`(?:P(?:IDData|ackingMethod|ersistentValue|ixelConstrained|lot3Matrix|lotDivision|lotJoined|olygonIntersections|redictorInformation|roperties|roperty|ropertyList|ropertyValue))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"System`(?:R(?:andom|asterArray|ecognitionThreshold|elease|emoteKernelObject|emoveAsynchronousTask|emoveProperty|emoveScheduledTask|enderAll|eplaceHeldPart|esetScheduledTask|esumePacket|unScheduledTask))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"System`(?:S(?:cheduledTaskActiveQ|cheduledTaskInformation|cheduledTaskObject|cheduledTasks|creenRectangle|electionAnimate|equenceAttentionLayer|equenceForm|etProperty|hading|hortestMatch|ingularValues|kinStyle|ocialMediaData|tartAsynchronousTask|tartScheduledTask|tateDimensions|topAsynchronousTask|topScheduledTask|tructuredArray|tyleForm|tylePrint|ubscripted|urfaceColor|urfaceGraphics|uspendPacket|ystemModelProgressReporting))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"System`(?:T(?:eXSave|extStyle|imeWarpingCorrespondence|imeWarpingDistance|oDate|oFileName|oHeldExpression))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"System`(?:U(?:RLFetch|RLFetchAsynchronous|RLSave|RLSaveAsynchronous))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"System`(?:V(?:ectorScale|ertexCoordinateRules|ertexLabeling|ertexRenderingFunction))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"System`(?:W(?:aitAsynchronousTask|indowMovable))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"System`(?:\\\\\\\\$(?:AsynchronousTask|ConfiguredKernels|DefaultFont|EntityStores|FormatType|HTTPCookies|InstallationDate|MachineDomain|ProductInformation|ProgramName|RandomState|ScheduledTask|SummaryBoxDataSizeLimit|TemporaryPrefix|TextStyle|TopDirectory|UserAddOnsDirectory))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"System`(?:A(?:ctionDelay|ctionMenuBox|ctionMenuBoxOptions|ctiveItem|lgebraicRulesData|lignmentMarker|llowAdultContent|llowChatServices|llowIncomplete|nalytic|nimatorBox|nimatorBoxOptions|nimatorElements|ppendCheck|rgumentCountQ|rrow3DBox|rrowBox|uthenticate|utoEvaluateEvents|utoIndentSpacings|utoMatch|utoNumberFormatting|utoQuoteCharacters|utoScaling|utoStyleOptions|utoStyleWords|utomaticImageSize|xis3DBox|xis3DBoxOptions|xisBox|xisBoxOptions))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"System`(?:B(?:SplineCurve3DBox|SplineCurve3DBoxOptions|SplineCurveBox|SplineCurveBoxOptions|SplineSurface3DBox|SplineSurface3DBoxOptions|ackFaceColor|ackFaceGlowColor|ackFaceOpacity|ackFaceSpecularColor|ackFaceSpecularExponent|ackFaceSurfaceAppearance|ackFaceTexture|ackgroundAppearance|ackgroundTasksSettings|acksubstitution|eveled|ezierCurve3DBox|ezierCurve3DBoxOptions|ezierCurveBox|ezierCurveBoxOptions|lankForm|ounds|ox|oxDimensions|oxForm|oxID|oxRotation|oxRotationPoint|ra|raKet|rowserCategory|uttonCell|uttonContents|uttonStyleMenuListing))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"System`(?:C(?:acheGraphics|achedValue|ardinalBSplineBasis|ellBoundingBox|ellContents|ellElementSpacings|ellElementsBoundingBox|ellFrameStyle|ellInsertionPointCell|ellTrayPosition|ellTrayWidgets|hangeOptions|hannelDatabin|hannelListenerWait|hannelPreSendFunction|hartElementData|hartElementDataFunction|heckAll|heckboxBox|heckboxBoxOptions|ircleBox|lipboardNotebook|lockwiseContourIntegral|losed|losingEvent|loudConnections|loudObjectInformation|loudObjectInformationData|loudUserID|oarse|oefficientDomain|olonForm|olorSetterBox|olorSetterBoxOptions|olumnBackgrounds|ompilerEnvironmentAppend|ompletionsListPacket|omponentwiseContextMenu|ompressedData|oneBox|onicHullRegion3DBox|onicHullRegion3DBoxOptions|onicHullRegionBox|onicHullRegionBoxOptions|onnect|ontentsBoundingBox|ontextMenu|ontinuation|ontourIntegral|ontourSmoothing|ontrolAlignment|ontrollerDuration|ontrollerInformationData|onvertToPostScript|onvertToPostScriptPacket|ookies|opyTag|ounterBox|ounterBoxOptions|ounterClockwiseContourIntegral|ounterEvaluator|ounterStyle|uboidBox|uboidBoxOptions|urlyDoubleQuote|urlyQuote|ylinderBox|ylinderBoxOptions))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"System`(?:D(?:OSTextFormat|ampingFactor|ataCompression|atasetDisplayPanel|ateDelimiters|ebugTag|ecimal|efault2DTool|efault3DTool|efaultAttachedCellStyle|efaultControlPlacement|efaultDockedCellStyle|efaultInputFormatType|efaultOutputFormatType|efaultStyle|efaultTextFormatType|efaultTextInlineFormatType|efaultValue|efineExternal|egreeLexicographic|egreeReverseLexicographic|eleteWithContents|elimitedArray|estroyAfterEvaluation|eviceOpenQ|ialogIndent|ialogLevel|ifferenceOrder|igitBlockMinimum|isableConsolePrintPacket|iskBox|iskBoxOptions|ispatchQ|isplayRules|isplayTemporary|istributionDomain|ivergence|ocumentGeneratorInformationData|omainRegistrationInformation|oubleContourIntegral|oublyInfinite|own|rawBackFaces|rawFrontFaces|rawHighlighted|ualLinearProgramming|umpGet|ynamicBox|ynamicBoxOptions|ynamicLocation|ynamicModuleBox|ynamicModuleBoxOptions|ynamicModuleParent|ynamicName|ynamicNamespace|ynamicReference|ynamicWrapperBox|ynamicWrapperBoxOptions))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"System`(?:E(?:ditButtonSettings|liminationOrder|llipticReducedHalfPeriods|mbeddingObject|mphasizeSyntaxErrors|mpty|nableConsolePrintPacket|ndAdd|ngineEnvironment|nter|qualColumns|qualRows|quatedTo|rrorBoxOptions|rrorNorm|rrorPacket|rrorsDialogSettings|valuated|valuationMode|valuationOrder|valuationRateLimit|ventEvaluator|ventHandlerTag|xactRootIsolation|xitDialog|xpectationE|xportPacket|xpressionPacket|xternalCall|xternalFunctionName))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"System`(?:F(?:EDisableConsolePrintPacket|EEnableConsolePrintPacket|ail|ileInformation|ileName|illForm|illedCurveBox|illedCurveBoxOptions|ine|itAll|lashSelection|ont|ontName|ontOpacity|ontPostScriptName|ontReencoding|ormatRules|ormatValues|rameInset|rameless|rontEndObject|rontEndResource|rontEndResourceString|rontEndStackSize|rontEndValueCache|rontEndVersion|rontFaceColor|rontFaceGlowColor|rontFaceOpacity|rontFaceSpecularColor|rontFaceSpecularExponent|rontFaceSurfaceAppearance|rontFaceTexture|ullAxes))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"System`(?:G(?:eneratedCellStyles|eneric|eometricTransformation3DBox|eometricTransformation3DBoxOptions|eometricTransformationBox|eometricTransformationBoxOptions|estureHandlerTag|etContext|etFileName|etLinebreakInformationPacket|lobalPreferences|lobalSession|raphLayerLabels|raphRoot|raphics3DBox|raphics3DBoxOptions|raphicsBaseline|raphicsBox|raphicsBoxOptions|raphicsComplex3DBox|raphicsComplex3DBoxOptions|raphicsComplexBox|raphicsComplexBoxOptions|raphicsContents|raphicsData|raphicsGridBox|raphicsGroup3DBox|raphicsGroup3DBoxOptions|raphicsGroupBox|raphicsGroupBoxOptions|raphicsGrouping|raphicsStyle|reekStyle|ridBoxAlignment|ridBoxBackground|ridBoxDividers|ridBoxFrame|ridBoxItemSize|ridBoxItemStyle|ridBoxOptions|ridBoxSpacings|ridElementStyleOptions|roupOpenerColor|roupOpenerInsideFrame|roupTogetherGrouping|roupTogetherNestedGrouping))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"System`(?:H(?:eadCompose|eaders|elpBrowserLookup|elpBrowserNotebook|elpViewerSettings|essian|exahedronBox|exahedronBoxOptions|ighlightString|omePage|orizontal|orizontalForm|orizontalScrollPosition|yperlinkCreationSettings|yphenationOptions))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"System`(?:I(?:conizedObject|gnoreSpellCheck|mageCache|mageCacheValid|mageEditMode|mageMarkers|mageOffset|mageRangeCache|mageSizeCache|mageSizeRaw|nactiveStyle|ncludeSingularTerm|ndent|ndentMaxFraction|ndentingNewlineSpacings|ndexCreationOptions|ndexTag|nequality|nexactNumbers|nformationData|nformationDataGrid|nlineCounterAssignments|nlineCounterIncrements|nlineRules|nputFieldBox|nputFieldBoxOptions|nputGrouping|nputSettings|nputToBoxFormPacket|nsertionPointObject|nset3DBox|nset3DBoxOptions|nsetBox|nsetBoxOptions|ntegral|nterlaced|nterpolationPrecision|nterpretTemplate|nterruptSettings|nto|nvisibleApplication|nvisibleTimes|temBox|temBoxOptions))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"System`(?:J(?:acobian|oinedCurveBox|oinedCurveBoxOptions))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"System`(?:K(?:|ernelExecute|et))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"System`(?:L(?:abeledSlider|ambertW|anguageOptions|aunch|ayoutInformation|exicographic|icenseID|ine3DBox|ine3DBoxOptions|ineBox|ineBoxOptions|ineBreak|ineWrapParts|inearFilter|inebreakSemicolonWeighting|inkConnectedQ|inkError|inkFlush|inkHost|inkMode|inkOptions|inkReadHeld|inkService|inkWriteHeld|istPickerBoxBackground|isten|iteralSearch|ocalizeDefinitions|ocatorBox|ocatorBoxOptions|ocatorCentering|ocatorPaneBox|ocatorPaneBoxOptions|ongEqual|ongForm|oopback))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"System`(?:M(?:achineID|achineName|acintoshSystemPageSetup|ainSolve|aintainDynamicCaches|akeRules|atchLocalNameQ|aterial|athMLText|athematicaNotation|axBend|axPoints|enu|enuAppearance|enuEvaluator|enuItem|enuList|ergeDifferences|essageObject|essageOptions|essagesNotebook|etaCharacters|ethodOptions|inRecursion|inSize|ode|odular|onomialOrder|ouseAppearanceTag|ouseButtons|ousePointerNote|ultiLetterItalics|ultiLetterStyle|ultiplicity|ultiscriptBoxOptions))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"System`(?:N(?:BernoulliB|ProductFactors|SumTerms|Values|amespaceBox|amespaceBoxOptions|estedScriptRules|etworkPacketRecordingDuring|ext|onAssociative|ormalGrouping|otebookDefault|otebookInterfaceObject))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"System`(?:O(?:LEData|bjectExistsQ|pen|penFunctionInspectorPacket|penSpecialOptions|penerBox|penerBoxOptions|ptionQ|ptionValueBox|ptionValueBoxOptions|ptionsPacket|utputFormData|utputGrouping|utputMathEditExpression|ver|verlayBox|verlayBoxOptions))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"System`(?:P(?:ackPaclet|ackage|acletDirectoryAdd|acletDirectoryRemove|acletInformation|acletObjectQ|acletUpdate|ageHeight|alettesMenuSettings|aneBox|aneBoxOptions|aneSelectorBox|aneSelectorBoxOptions|anelBox|anelBoxOptions|aperWidth|arameter|arameterVariables|arentConnect|arentForm|arentList|arenthesize|artialD|asteAutoQuoteCharacters|ausedTime|eriodicInterpolation|erpendicular|ickMode|ickedElements|ivoting|lotRangeClipPlanesStyle|oint3DBox|oint3DBoxOptions|ointBox|ointBoxOptions|olygon3DBox|olygon3DBoxOptions|olygonBox|olygonBoxOptions|olygonHoleScale|olygonScale|olyhedronBox|olyhedronBoxOptions|olynomialForm|olynomials|opupMenuBox|opupMenuBoxOptions|ostScript|recedence|redictionRoot|referencesSettings|revious|rimaryPlaceholder|rintForm|rismBox|rismBoxOptions|rivateFrontEndOptions|robabilityPr|rocessStateDomain|rocessTimeDomain|rogressIndicatorBox|rogressIndicatorBoxOptions|romptForm|yramidBox|yramidBoxOptions))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"System`(?:R(?:adioButtonBox|adioButtonBoxOptions|andomSeed|angeSpecification|aster3DBox|aster3DBoxOptions|asterBox|asterBoxOptions|ationalFunctions|awArray|awMedium|ebuildPacletData|ectangleBox|ecurringDigitsForm|eferenceMarkerStyle|eferenceMarkers|einstall|emoved|epeatedString|esourceAcquire|esourceSubmissionObject|eturnCreatesNewCell|eturnEntersInput|eturnInputFormPacket|otationBox|otationBoxOptions|oundImplies|owBackgrounds|owHeights|uleCondition|uleForm))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"System`(?:S(?:aveAutoDelete|caledMousePosition|cheduledTaskInformationData|criptForm|criptRules|ectionGrouping|electWithContents|election|electionCell|electionCellCreateCell|electionCellDefaultStyle|electionCellParentStyle|electionPlaceholder|elfLoops|erviceResponse|etOptionsPacket|etSecuredAuthenticationKey|etbacks|etterBox|etterBoxOptions|howAutoConvert|howCodeAssist|howControls|howGroupOpenCloseIcon|howInvisibleCharacters|howPredictiveInterface|howSyntaxStyles|hrinkWrapBoundingBox|ingleEvaluation|ingleLetterStyle|lider2DBox|lider2DBoxOptions|ocket|olveDelayed|oundAndGraphics|pace|paceForm|panningCharacters|phereBox|phereBoxOptions|tartupSound|tringBreak|tringByteCount|tripStyleOnPaste|trokeForm|tructuredArrayHeadQ|tyleKeyMapping|tyleNames|urfaceAppearance|yntax|ystemException|ystemGet|ystemInformationData|ystemStub|ystemTest))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"System`(?:T(?:ab|abViewBox|abViewBoxOptions|ableViewBox|ableViewBoxAlignment|ableViewBoxBackground|ableViewBoxHeaders|ableViewBoxItemSize|ableViewBoxItemStyle|ableViewBoxOptions|agBoxNote|agStyle|emplateEvaluate|emplateSlotSequence|emplateUnevaluated|emplateVerbatim|emporaryVariable|ensorQ|etrahedronBox|etrahedronBoxOptions|ext3DBox|ext3DBoxOptions|extBand|extBoundingBox|extBox|extForm|extLine|extParagraph|hisLink|itleGrouping|oColor|oggle|oggleFalse|ogglerBox|ogglerBoxOptions|ooBig|ooltipBox|ooltipBoxOptions|otalHeight|raceAction|raceInternal|raceLevel|rackCellChangeTimes|raditionalNotation|raditionalOrder|ransparentColor|rapEnterKey|rapSelection|ubeBSplineCurveBox|ubeBSplineCurveBoxOptions|ubeBezierCurveBox|ubeBezierCurveBoxOptions|ubeBox|ubeBoxOptions))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"System`(?:U(?:ntrackedVariables|p|seGraphicsRange|serDefinedWavelet|sing))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"System`(?:V(?:2Get|alueBox|alueBoxOptions|alueForm|aluesData|ectorGlyphData|erbose|ertical|erticalForm|iewPointSelectorSettings|iewPort|irtualGroupData|isibleCell))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"System`(?:W(?:aitUntil|ebPageMetaInformation|holeCellGroupOpener|indowPersistentStyles|indowSelected|indowWidth|olframAlphaDate|olframAlphaQuantity|olframAlphaResult|olframCloudSettings))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"System`(?:\\\\\\\\$(?:ActivationGroupID|ActivationUserRegistered|AddOnsDirectory|BoxForms|CloudConnection|CloudVersionNumber|CloudWolframEngineVersionNumber|ConditionHold|DefaultMailbox|DefaultPath|FinancialDataSource|GeoEntityTypes|GeoLocationPrecision|HTMLExportRules|HTTPRequest|LaunchDirectory|LicenseProcesses|LicenseSubprocesses|LicenseType|LinkSupported|LoadedFiles|MaxLicenseProcesses|MaxLicenseSubprocesses|MinorReleaseNumber|NetworkLicense|Off|OutputForms|PatchLevelID|PermissionsGroupBase|PipeSupported|PreferencesDirectory|PrintForms|PrintLiteral|RegisteredDeviceClasses|RegisteredUserName|SecuredAuthenticationKeyTokens|SetParentLink|SoundDisplay|SuppressInputFormHeads|SystemMemory|TraceOff|TraceOn|TracePattern|TracePostAction|TracePreAction|UserAgentLanguages|UserAgentMachine|UserAgentName|UserAgentOperatingSystem|UserAgentVersion|UserName))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"System`(?:A(?:ctiveClassification|ctiveClassificationObject|ctivePrediction|ctivePredictionObject|ddToSearchIndex|ggregatedEntityClass|ggregationLayer|ngleBisector|nimatedImage|nimationVideo|nomalyDetector|ppendLayer|pplication|pplyReaction|round|roundReplace|rrayReduce|sk|skAppend|skConfirm|skDisplay|skFunction|skState|skTemplateDisplay|skedQ|skedValue|ssessmentFunction|ssessmentResultObject|ssumeDeterministic|stroAngularSeparation|stroBackground|stroCenter|stroDistance|stroGraphics|stroGridLines|stroGridLinesStyle|stroPosition|stroProjection|stroRange|stroRangePadding|stroReferenceFrame|stroStyling|stroZoomLevel|tom|tomCoordinates|tomCount|tomDiagramCoordinates|tomLabelStyle|tomLabels|tomList|ttachCell|ttentionLayer|udioAnnotate|udioAnnotationLookup|udioIdentify|udioInstanceQ|udioPause|udioPlay|udioRecord|udioStop|udioStream|udioStreams|udioTrackApply|udioTrackSelection|utocomplete|utocompletionFunction|xiomaticTheory|xisLabel|xisObject|xisStyle))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"System`(?:B(?:asicRecurrentLayer|atchNormalizationLayer|atchSize|ayesianMaximization|ayesianMaximizationObject|ayesianMinimization|ayesianMinimizationObject|esagL|innedVariogramList|inomialPointProcess|ioSequence|ioSequenceBackTranslateList|ioSequenceComplement|ioSequenceInstances|ioSequenceModify|ioSequencePlot|ioSequenceQ|ioSequenceReverseComplement|ioSequenceTranscribe|ioSequenceTranslate|itRate|lockDiagonalMatrix|lockLowerTriangularMatrix|lockUpperTriangularMatrix|lockchainAddressData|lockchainBase|lockchainBlockData|lockchainContractValue|lockchainData|lockchainGet|lockchainKeyEncode|lockchainPut|lockchainTokenData|lockchainTransaction|lockchainTransactionData|lockchainTransactionSign|lockchainTransactionSubmit|ond|ondCount|ondLabelStyle|ondLabels|ondList|ondQ|uildCompiledComponent))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"System`(?:C(?:TCLossLayer|achePersistence|anvas|ast|ategoricalDistribution|atenateLayer|auchyPointProcess|hannelBase|hannelBrokerAction|hannelHistoryLength|hannelListen|hannelListener|hannelListeners|hannelObject|hannelReceiverFunction|hannelSend|hannelSubscribers|haracterNormalize|hemicalConvert|hemicalFormula|hemicalInstance|hemicalReaction|loudExpression|loudExpressions|loudRenderingMethod|ombinatorB|ombinatorC|ombinatorI|ombinatorK|ombinatorS|ombinatorW|ombinatorY|ombinedEntityClass|ompiledCodeFunction|ompiledComponent|ompiledExpressionDeclaration|ompiledLayer|ompilerCallback|ompilerEnvironment|ompilerEnvironmentAppendTo|ompilerEnvironmentObject|ompilerOptions|omplementedEntityClass|omputeUncertainty|onfirmQuiet|onformationMethod|onnectSystemModelComponents|onnectSystemModelController|onnectedMoleculeComponents|onnectedMoleculeQ|onnectionSettings|ontaining|ontentDetectorFunction|ontentFieldOptions|ontentLocationFunction|ontentObject|ontrastiveLossLayer|onvolutionLayer|reateChannel|reateCloudExpression|reateCompilerEnvironment|reateDataStructure|reateDataSystemModel|reateLicenseEntitlement|reateSearchIndex|reateSystemModel|reateTypeInstance|rossEntropyLossLayer|urrentNotebookImage|urrentScreenImage|urryApplied))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"System`(?:D(?:SolveChangeVariables|ataStructure|ataStructureQ|atabaseConnect|atabaseDisconnect|atabaseReference|atabinSubmit|ateInterval|eclareCompiledComponent|econvolutionLayer|ecryptFile|eleteChannel|eleteCloudExpression|eleteElements|eleteSearchIndex|erivedKey|iggleGatesPointProcess|iggleGrattonPointProcess|igitalSignature|isableFormatting|ocumentWeightingRules|otLayer|ownValuesFunction|ropoutLayer|ynamicImage))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"System`(?:E(?:choTiming|lementwiseLayer|mbeddedSQLEntityClass|mbeddedSQLExpression|mbeddingLayer|mptySpaceF|ncryptFile|ntityFunction|ntityStore|stimatedPointProcess|stimatedVariogramModel|valuationEnvironment|valuationPrivileges|xpirationDate|xpressionTree|xtendedEntityClass|xternalEvaluate|xternalFunction|xternalIdentifier|xternalObject|xternalSessionObject|xternalSessions|xternalStorageBase|xternalStorageDownload|xternalStorageGet|xternalStorageObject|xternalStoragePut|xternalStorageUpload|xternalValue|xtractLayer))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"System`(?:F(?:aceRecognize|eatureDistance|eatureExtract|eatureExtraction|eatureExtractor|eatureExtractorFunction|ileConvert|ileFormatProperties|ileNameToFormatList|ileSystemTree|ilteredEntityClass|indChannels|indEquationalProof|indExternalEvaluators|indGeometricConjectures|indImageText|indIsomers|indMoleculeSubstructure|indPointProcessParameters|indSystemModelEquilibrium|indTextualAnswer|lattenLayer|orAllType|ormControl|orwardCloudCredentials|oxHReduce|rameListVideo|romRawPointer|unctionCompile|unctionCompileExport|unctionCompileExportByteArray|unctionCompileExportLibrary|unctionCompileExportString|unctionDeclaration|unctionLayer|unctionPoles))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"System`(?:G(?:alleryView|atedRecurrentLayer|enerateDerivedKey|enerateDigitalSignature|enerateFileSignature|enerateSecuredAuthenticationKey|eneratedAssetFormat|eneratedAssetLocation|eoGraphValuePlot|eoOrientationData|eometricAssertion|eometricScene|eometricStep|eometricStylingRules|eometricTest|ibbsPointProcess|raphTree|ridVideo))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"System`(?:H(?:andlerFunctions|andlerFunctionsKeys|ardcorePointProcess|istogramPointDensity))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"System`(?:I(?:gnoreIsotopes|gnoreStereochemistry|mageAugmentationLayer|mageBoundingBoxes|mageCases|mageContainsQ|mageContents|mageGraphics|magePosition|magePyramid|magePyramidApply|mageStitch|mportedObject|ncludeAromaticBonds|ncludeHydrogens|ncludeRelatedTables|nertEvaluate|nertExpression|nfiniteFuture|nfinitePast|nhomogeneousPoissonPointProcess|nitialEvaluationHistory|nitializationObject|nitializationObjects|nitializationValue|nitialize|nputPorts|ntegrateChangeVariables|nterfaceSwitched|ntersectedEntityClass|nverseImagePyramid))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"System`(?:K(?:ernelConfiguration|ernelFunction))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"System`(?:L(?:earningRateMultipliers|ibraryFunctionDeclaration|icenseEntitlementObject|icenseEntitlements|icensingSettings|inearLayer|iteralType|oadCompiledComponent|ocalResponseNormalizationLayer|ongShortTermMemoryLayer|ossFunction))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"System`(?:M(?:IMETypeToFormatList|ailExecute|ailFolder|ailItem|ailSearch|ailServerConnect|ailServerConnection|aternPointProcess|axDisplayedChildren|axTrainingRounds|axWordGap|eanAbsoluteLossLayer|eanAround|eanPointDensity|eanSquaredLossLayer|ergingFunction|idpoint|issingValuePattern|issingValueSynthesis|olecule|oleculeAlign|oleculeContainsQ|oleculeDraw|oleculeFreeQ|oleculeGraph|oleculeMatchQ|oleculeMaximumCommonSubstructure|oleculeModify|oleculeName|oleculePattern|oleculePlot|oleculePlot3D|oleculeProperty|oleculeQ|oleculeRecognize|oleculeSubstructureCount|oleculeValue))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"System`(?:N(?:BodySimulation|BodySimulationData|earestNeighborG|estTree|etAppend|etArray|etArrayLayer|etBidirectionalOperator|etChain|etDecoder|etDelete|etDrop|etEncoder|etEvaluationMode|etExternalObject|etExtract|etFlatten|etFoldOperator|etGANOperator|etGraph|etInitialize|etInsert|etInsertSharedArrays|etJoin|etMapOperator|etMapThreadOperator|etMeasurements|etModel|etNestOperator|etPairEmbeddingOperator|etPort|etPortGradient|etPrepend|etRename|etReplace|etReplacePart|etStateObject|etTake|etTrain|etTrainResultsObject|etUnfold|etworkPacketCapture|etworkPacketRecording|etworkPacketTrace|eymanScottPointProcess|ominalScale|ormalizationLayer|umericArray|umericArrayQ|umericArrayType))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"System`(?:O(?:peratorApplied|rderingLayer|rdinalScale|utputPorts|verlayVideo))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"System`(?:P(?:acletSymbol|addingLayer|agination|airCorrelationG|arametricRampLayer|arentEdgeLabel|arentEdgeLabelFunction|arentEdgeLabelStyle|arentEdgeShapeFunction|arentEdgeStyle|arentEdgeStyleFunction|artLayer|artProtection|atternFilling|atternReaction|enttinenPointProcess|erpendicularBisector|ersistenceLocation|ersistenceTime|ersistentObject|ersistentObjects|ersistentSymbol|itchRecognize|laceholderLayer|laybackSettings|ointCountDistribution|ointDensity|ointDensityFunction|ointProcessEstimator|ointProcessFitTest|ointProcessParameterAssumptions|ointProcessParameterQ|ointStatisticFunction|ointValuePlot|oissonPointProcess|oolingLayer|rependLayer|roofObject|ublisherID))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"System`(?:Q(?:uestionGenerator|uestionInterface|uestionObject|uestionSelector))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"System`(?:R(?:andomArrayLayer|andomInstance|andomPointConfiguration|andomTree|eactionBalance|eactionBalancedQ|ecalibrationFunction|egisterExternalEvaluator|elationalDatabase|emoteAuthorizationCaching|emoteBatchJobAbort|emoteBatchJobObject|emoteBatchJobs|emoteBatchMapSubmit|emoteBatchSubmissionEnvironment|emoteBatchSubmit|emoteConnect|emoteConnectionObject|emoteEvaluate|emoteFile|emoteInputFiles|emoteProviderSettings|emoteRun|emoteRunProcess|emovalConditions|emoveAudioStream|emoveChannelListener|emoveChannelSubscribers|emoveVideoStream|eplicateLayer|eshapeLayer|esizeLayer|esourceFunction|esourceRegister|esourceRemove|esourceSubmit|esourceSystemBase|esourceSystemPath|esourceUpdate|esourceVersion|everseApplied|ipleyK|ipleyRassonRegion|ootTree|ulesTree))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"System`(?:S(?:ameTestProperties|ampledEntityClass|earchAdjustment|earchIndexObject|earchIndices|earchQueryString|earchResultObject|ecuredAuthenticationKey|ecuredAuthenticationKeys|ecurityCertificate|equenceIndicesLayer|equenceLastLayer|equenceMostLayer|equencePredict|equencePredictorFunction|equenceRestLayer|equenceReverseLayer|erviceRequest|erviceSubmit|etFileFormatProperties|etSystemModel|lideShowVideo|moothPointDensity|nippet|nippetsVideo|nubPolyhedron|oftmaxLayer|olidBoundaryLoadValue|olidDisplacementCondition|olidFixedCondition|olidMechanicsPDEComponent|olidMechanicsStrain|olidMechanicsStress|ortedEntityClass|ourceLink|patialBinnedPointData|patialBoundaryCorrection|patialEstimate|patialEstimatorFunction|patialJ|patialNoiseLevel|patialObservationRegionQ|patialPointData|patialPointSelect|patialRandomnessTest|patialTransformationLayer|patialTrendFunction|peakerMatchQ|peechCases|peechInterpreter|peechRecognize|plice|tartExternalSession|tartWebSession|tereochemistryElements|traussHardcorePointProcess|traussPointProcess|ubsetCases|ubsetCount|ubsetPosition|ubsetReplace|ubtitleTrackSelection|ummationLayer|ymmetricDifference|ynthesizeMissingValues|ystemCredential|ystemCredentialData|ystemCredentialKey|ystemCredentialKeys|ystemCredentialStoreObject|ystemInstall|ystemModel|ystemModelExamples|ystemModelLinearize|ystemModelMeasurements|ystemModelParametricSimulate|ystemModelPlot|ystemModelReliability|ystemModelSimulate|ystemModelSimulateSensitivity|ystemModelSimulationData|ystemModeler|ystemModels))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"System`(?:T(?:ableView|argetDevice|argetSystem|ernaryListPlot|ernaryPlotCorners|extCases|extContents|extElement|extPosition|extSearch|extSearchReport|extStructure|homasPointProcess|hreaded|hreadingLayer|ickDirection|ickLabelOrientation|ickLabelPositioning|ickLabels|ickLengths|ickPositions|oRawPointer|otalLayer|ourVideo|rainImageContentDetector|rainTextContentDetector|rainingProgressCheckpointing|rainingProgressFunction|rainingProgressMeasurements|rainingProgressReporting|rainingStoppingCriterion|rainingUpdateSchedule|ransposeLayer|ree|reeCases|reeChildren|reeCount|reeData|reeDelete|reeDepth|reeElementCoordinates|reeElementLabel|reeElementLabelFunction|reeElementLabelStyle|reeElementShape|reeElementShapeFunction|reeElementSize|reeElementSizeFunction|reeElementStyle|reeElementStyleFunction|reeExpression|reeExtract|reeFold|reeInsert|reeLayout|reeLeafCount|reeLeafQ|reeLeaves|reeLevel|reeMap|reeMapAt|reeOutline|reePosition|reeQ|reeReplacePart|reeRules|reeScan|reeSelect|reeSize|reeTraversalOrder|riangleCenter|riangleConstruct|riangleMeasurement|ypeDeclaration|ypeEvaluate|ypeOf|ypeSpecifier|yped))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"System`(?:U(?:RLDownloadSubmit|nconstrainedParameters|nionedEntityClass|niqueElements|nitVectorLayer|nlabeledTree|nmanageObject|nregisterExternalEvaluator|pdateSearchIndex|seEmbeddedLibrary))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"System`(?:V(?:alenceErrorHandling|alenceFilling|aluePreprocessingFunction|andermondeMatrix|arianceGammaPointProcess|ariogramFunction|ariogramModel|ectorAround|erifyDerivedKey|erifyDigitalSignature|erifyFileSignature|erifyInterpretation|ideo|ideoCapture|ideoCombine|ideoDelete|ideoExtractFrames|ideoFrameList|ideoFrameMap|ideoGenerator|ideoInsert|ideoIntervals|ideoJoin|ideoMap|ideoMapList|ideoMapTimeSeries|ideoPadding|ideoPause|ideoPlay|ideoQ|ideoRecord|ideoReplace|ideoScreenCapture|ideoSplit|ideoStop|ideoStream|ideoStreams|ideoTimeStretch|ideoTrackSelection|ideoTranscode|ideoTransparency|ideoTrim))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"System`(?:W(?:ebAudioSearch|ebColumn|ebElementObject|ebExecute|ebImage|ebImageSearch|ebItem|ebRow|ebSearch|ebSessionObject|ebSessions|ebWindowObject|ikidataData|ikidataSearch|ikipediaSearch|ithCleanup|ithLock))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"System`(?:Z(?:oomCenter|oomFactor))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"System`(?:\\\\\\\\$(?:AllowExternalChannelFunctions|AudioDecoders|AudioEncoders|BlockchainBase|ChannelBase|CompilerEnvironment|CookieStore|CryptographicEllipticCurveNames|CurrentWebSession|DataStructures|DefaultNetworkInterface|DefaultProxyRules|DefaultRemoteBatchSubmissionEnvironment|DefaultRemoteKernel|DefaultSystemCredentialStore|ExternalIdentifierTypes|ExternalStorageBase|GeneratedAssetLocation|IncomingMailSettings|Initialization|InitializationContexts|MaxDisplayedChildren|NetworkInterfaces|NoValue|PersistenceBase|PersistencePath|PreInitialization|PublisherID|ResourceSystemBase|ResourceSystemPath|SSHAuthentication|ServiceCreditsAvailable|SourceLink|SubtitleDecoders|SubtitleEncoders|SystemCredentialStore|TargetSystems|TestFileName|VideoDecoders|VideoEncoders|VoiceStyles))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"System`(?:E(?:cho|xit))(?![`$[:alnum:]])\",\"name\":\"invalid.session.wolfram\"},{\"match\":\"System`(?:I(?:n|nString))(?![`$[:alnum:]])\",\"name\":\"invalid.session.wolfram\"},{\"match\":\"System`(?:O(?:ut))(?![`$[:alnum:]])\",\"name\":\"invalid.session.wolfram\"},{\"match\":\"System`(?:P(?:rint))(?![`$[:alnum:]])\",\"name\":\"invalid.session.wolfram\"},{\"match\":\"System`(?:Q(?:uit))(?![`$[:alnum:]])\",\"name\":\"invalid.session.wolfram\"},{\"match\":\"System`(?:\\\\\\\\$(?:HistoryLength|Line|Post|Pre|PrePrint|PreRead|SyntaxHandler))(?![`$[:alnum:]])\",\"name\":\"invalid.session.wolfram\"},{\"match\":\"System`(?:[$[:alpha:]][$[:alnum:]]*)(?![`$[:alnum:]])\",\"name\":\"invalid.illegal.system.wolfram\"},{\"match\":\"(?:[$[:alpha:]][$[:alnum:]]*)(?:`(?:[$[:alpha:]][$[:alnum:]]*))+(?=\\\\\\\\s*(\\\\\\\\[(?!\\\\\\\\s*\\\\\\\\[)|@(?!@)))\",\"name\":\"variable.function.wolfram\"},{\"match\":\"(?:[$[:alpha:]][$[:alnum:]]*)(?:`(?:[$[:alpha:]][$[:alnum:]]*))+\",\"name\":\"symbol.unrecognized.wolfram\"},{\"match\":\"(?:[$[:alpha:]][$[:alnum:]]*)`\",\"name\":\"invalid.illegal.wolfram\"},{\"match\":\"(?:`(?:[$[:alpha:]][$[:alnum:]]*))+(?=\\\\\\\\s*(\\\\\\\\[(?!\\\\\\\\s*\\\\\\\\[)|@(?!@)))\",\"name\":\"variable.function.wolfram\"},{\"match\":\"(?:`(?:[$[:alpha:]][$[:alnum:]]*))+\",\"name\":\"symbol.unrecognized.wolfram\"},{\"match\":\"`\",\"name\":\"invalid.illegal.wolfram\"},{\"match\":\"(?:A(?:ASTriangle|PIFunction|RCHProcess|RIMAProcess|RMAProcess|RProcess|SATriangle|belianGroup|bort|bortKernels|bortProtect|bs|bsArg|bsArgPlot|bsoluteCorrelation|bsoluteCorrelationFunction|bsoluteCurrentValue|bsoluteDashing|bsoluteFileName|bsoluteOptions|bsolutePointSize|bsoluteThickness|bsoluteTime|bsoluteTiming|ccountingForm|ccumulate|ccuracy|cousticAbsorbingValue|cousticImpedanceValue|cousticNormalVelocityValue|cousticPDEComponent|cousticPressureCondition|cousticRadiationValue|cousticSoundHardValue|cousticSoundSoftCondition|ctionMenu|ctivate|cyclicGraphQ|ddSides|ddTo|ddUsers|djacencyGraph|djacencyList|djacencyMatrix|djacentMeshCells|djugate|djustTimeSeriesForecast|djustmentBox|dministrativeDivisionData|ffineHalfSpace|ffineSpace|ffineStateSpaceModel|ffineTransform|irPressureData|irSoundAttenuation|irTemperatureData|ircraftData|irportData|iryAi|iryAiPrime|iryAiZero|iryBi|iryBiPrime|iryBiZero|lgebraicIntegerQ|lgebraicNumber|lgebraicNumberDenominator|lgebraicNumberNorm|lgebraicNumberPolynomial|lgebraicNumberTrace|lgebraicUnitQ|llTrue|lphaChannel|lphabet|lphabeticOrder|lphabeticSort|lternatingFactorial|lternatingGroup|lternatives|mbientLight|mbiguityList|natomyData|natomyPlot3D|natomyStyling|nd|ndersonDarlingTest|ngerJ|ngleBracket|nglePath|nglePath3D|ngleVector|ngularGauge|nimate|nimator|nnotate|nnotation|nnotationDelete|nnotationKeys|nnotationValue|nnuity|nnuityDue|nnulus|nomalyDetection|nomalyDetectorFunction|ntihermitian|ntihermitianMatrixQ|ntisymmetric|ntisymmetricMatrixQ|ntonyms|nyOrder|nySubset|nyTrue|part|partSquareFree|ppellF1|ppend|ppendTo|pply|pplySides|pplyTo|rcCos|rcCosh|rcCot|rcCoth|rcCsc|rcCsch|rcCurvature|rcLength|rcSec|rcSech|rcSin|rcSinDistribution|rcSinh|rcTan|rcTanh|rea|rg|rgMax|rgMin|rgumentsOptions|rithmeticGeometricMean|rray|rrayComponents|rrayDepth|rrayFilter|rrayFlatten|rrayMesh|rrayPad|rrayPlot|rrayPlot3D|rrayQ|rrayResample|rrayReshape|rrayRules|rrays|rrow|rrowheads|ssert|ssociateTo|ssociation|ssociationMap|ssociationQ|ssociationThread|ssuming|symptotic|symptoticDSolveValue|symptoticEqual|symptoticEquivalent|symptoticExpectation|symptoticGreater|symptoticGreaterEqual|symptoticIntegrate|symptoticLess|symptoticLessEqual|symptoticOutputTracker|symptoticProbability|symptoticProduct|symptoticRSolveValue|symptoticSolve|symptoticSum|tomQ|ttributes|udio|udioAmplify|udioBlockMap|udioCapture|udioChannelCombine|udioChannelMix|udioChannelSeparate|udioChannels|udioData|udioDelay|udioDelete|udioDistance|udioFade|udioFrequencyShift|udioGenerator|udioInsert|udioIntervals|udioJoin|udioLength|udioLocalMeasurements|udioLoudness|udioMeasurements|udioNormalize|udioOverlay|udioPad|udioPan|udioPartition|udioPitchShift|udioPlot|udioQ|udioReplace|udioResample|udioReverb|udioReverse|udioSampleRate|udioSpectralMap|udioSpectralTransformation|udioSplit|udioTimeStretch|udioTrim|udioType|ugmentedPolyhedron|ugmentedSymmetricPolynomial|uthenticationDialog|utoRefreshed|utoSubmitting|utocorrelationTest))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"(?:B(?:SplineBasis|SplineCurve|SplineFunction|SplineSurface|abyMonsterGroupB|ackslash|all|and|andpassFilter|andstopFilter|arChart|arChart3D|arLegend|arabasiAlbertGraphDistribution|arcodeImage|arcodeRecognize|aringhausHenzeTest|arlowProschanImportance|arnesG|artlettHannWindow|artlettWindow|aseDecode|aseEncode|aseForm|atesDistribution|attleLemarieWavelet|ecause|eckmannDistribution|eep|egin|eginDialogPacket|eginPackage|ellB|ellY|enfordDistribution|eniniDistribution|enktanderGibratDistribution|enktanderWeibullDistribution|ernoulliB|ernoulliDistribution|ernoulliGraphDistribution|ernoulliProcess|ernsteinBasis|esselFilterModel|esselI|esselJ|esselJZero|esselK|esselY|esselYZero|eta|etaBinomialDistribution|etaDistribution|etaNegativeBinomialDistribution|etaPrimeDistribution|etaRegularized|etween|etweennessCentrality|eveledPolyhedron|ezierCurve|ezierFunction|ilateralFilter|ilateralLaplaceTransform|ilateralZTransform|inCounts|inLists|inarize|inaryDeserialize|inaryDistance|inaryImageQ|inaryRead|inaryReadList|inarySerialize|inaryWrite|inomial|inomialDistribution|inomialProcess|inormalDistribution|iorthogonalSplineWavelet|ipartiteGraphQ|iquadraticFilterModel|irnbaumImportance|irnbaumSaundersDistribution|itAnd|itClear|itGet|itLength|itNot|itOr|itSet|itShiftLeft|itShiftRight|itXor|iweightLocation|iweightMidvariance|lackmanHarrisWindow|lackmanNuttallWindow|lackmanWindow|lank|lankNullSequence|lankSequence|lend|lock|lockMap|lockRandom|lomqvistBeta|lomqvistBetaTest|lur|lurring|odePlot|ohmanWindow|oole|ooleanConsecutiveFunction|ooleanConvert|ooleanCountingFunction|ooleanFunction|ooleanGraph|ooleanMaxterms|ooleanMinimize|ooleanMinterms|ooleanQ|ooleanRegion|ooleanTable|ooleanVariables|orderDimensions|orelTannerDistribution|ottomHatTransform|oundaryDiscretizeGraphics|oundaryDiscretizeRegion|oundaryMesh|oundaryMeshRegion|oundaryMeshRegionQ|oundedRegionQ|oundingRegion|oxData|oxMatrix|oxObject|oxWhiskerChart|racketingBar|rayCurtisDistance|readthFirstScan|reak|ridgeData|rightnessEqualize|roadcastStationData|rownForsytheTest|rownianBridgeProcess|ubbleChart|ubbleChart3D|uckyballGraph|uildingData|ulletGauge|usinessDayQ|utterflyGraph|utterworthFilterModel|utton|uttonBar|uttonBox|uttonNotebook|yteArray|yteArrayFormat|yteArrayFormatQ|yteArrayQ|yteArrayToString|yteCount))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"(?:C(?:|DF|DFDeploy|DFWavelet|Form|MYKColor|SGRegion|SGRegionQ|SGRegionTree|alendarConvert|alendarData|allPacket|allout|anberraDistance|ancel|ancelButton|andlestickChart|anonicalGraph|anonicalName|anonicalWarpingCorrespondence|anonicalWarpingDistance|anonicalizePolygon|anonicalizePolyhedron|anonicalizeRegion|antorMesh|antorStaircase|ap|apForm|apitalDifferentialD|apitalize|apsuleShape|aputoD|arlemanLinearize|arlsonRC|arlsonRD|arlsonRE|arlsonRF|arlsonRG|arlsonRJ|arlsonRK|arlsonRM|armichaelLambda|aseSensitive|ases|ashflow|asoratian|atalanNumber|atch|atenate|auchyDistribution|auchyMatrix|auchyWindow|ayleyGraph|eiling|ell|ellGroup|ellGroupData|ellObject|ellPrint|ells|ellularAutomaton|ensoredDistribution|ensoring|enterArray|enterDot|enteredInterval|entralFeature|entralMoment|entralMomentGeneratingFunction|epstrogram|epstrogramArray|epstrumArray|hampernowneNumber|hanVeseBinarize|haracterCounts|haracterName|haracterRange|haracteristicFunction|haracteristicPolynomial|haracters|hebyshev1FilterModel|hebyshev2FilterModel|hebyshevT|hebyshevU|heck|heckAbort|heckArguments|heckbox|heckboxBar|hemicalData|hessboardDistance|hiDistribution|hiSquareDistribution|hineseRemainder|hoiceButtons|hoiceDialog|holeskyDecomposition|hop|hromaticPolynomial|hromaticityPlot|hromaticityPlot3D|ircle|ircleDot|ircleMinus|irclePlus|irclePoints|ircleThrough|ircleTimes|irculantGraph|ircularArcThrough|ircularOrthogonalMatrixDistribution|ircularQuaternionMatrixDistribution|ircularRealMatrixDistribution|ircularSymplecticMatrixDistribution|ircularUnitaryMatrixDistribution|ircumsphere|ityData|lassifierFunction|lassifierMeasurements|lassifierMeasurementsObject|lassify|lear|learAll|learAttributes|learCookies|learPermissions|learSystemCache|lebschGordan|lickPane|lickToCopy|lip|lock|lockGauge|lose|loseKernels|losenessCentrality|losing|loudAccountData|loudConnect|loudDeploy|loudDirectory|loudDisconnect|loudEvaluate|loudExport|loudFunction|loudGet|loudImport|loudLoggingData|loudObject|loudObjects|loudPublish|loudPut|loudSave|loudShare|loudSubmit|loudSymbol|loudUnshare|lusterClassify|lusteringComponents|lusteringMeasurements|lusteringTree|oefficient|oefficientArrays|oefficientList|oefficientRules|oifletWavelet|ollect|ollinearPoints|olon|olorBalance|olorCombine|olorConvert|olorData|olorDataFunction|olorDetect|olorDistance|olorNegate|olorProfileData|olorQ|olorQuantize|olorReplace|olorSeparate|olorSetter|olorSlider|olorToneMapping|olorize|olorsNear|olumn|ometData|ommonName|ommonUnits|ommonest|ommonestFilter|ommunityGraphPlot|ompanyData|ompatibleUnitQ|ompile|ompiledFunction|omplement|ompleteGraph|ompleteGraphQ|ompleteIntegral|ompleteKaryTree|omplex|omplexArrayPlot|omplexContourPlot|omplexExpand|omplexListPlot|omplexPlot|omplexPlot3D|omplexRegionPlot|omplexStreamPlot|omplexVectorPlot|omponentMeasurements|omposeList|omposeSeries|ompositeQ|omposition|ompoundElement|ompoundExpression|ompoundPoissonDistribution|ompoundPoissonProcess|ompoundRenewalProcess|ompress|oncaveHullMesh|ondition|onditionalExpression|onditioned|one|onfirm|onfirmAssert|onfirmBy|onfirmMatch|onformAudio|onformImages|ongruent|onicGradientFilling|onicHullRegion|onicOptimization|onjugate|onjugateTranspose|onjunction|onnectLibraryCallbackFunction|onnectedComponents|onnectedGraphComponents|onnectedGraphQ|onnectedMeshComponents|onnesWindow|onoverTest|onservativeConvectionPDETerm|onstantArray|onstantImage|onstantRegionQ|onstellationData|onstruct|ontainsAll|ontainsAny|ontainsExactly|ontainsNone|ontainsOnly|ontext|ontextToFileName|ontexts|ontinue|ontinuedFraction|ontinuedFractionK|ontinuousMarkovProcess|ontinuousTask|ontinuousTimeModelQ|ontinuousWaveletData|ontinuousWaveletTransform|ontourDetect|ontourPlot|ontourPlot3D|ontraharmonicMean|ontrol|ontrolActive|ontrollabilityGramian|ontrollabilityMatrix|ontrollableDecomposition|ontrollableModelQ|ontrollerInformation|ontrollerManipulate|ontrollerState|onvectionPDETerm|onvergents|onvexHullMesh|onvexHullRegion|onvexOptimization|onvexPolygonQ|onvexPolyhedronQ|onvexRegionQ|onvolve|onwayGroupCo1|onwayGroupCo2|onwayGroupCo3|oordinateBoundingBox|oordinateBoundingBoxArray|oordinateBounds|oordinateBoundsArray|oordinateChartData|oordinateTransform|oordinateTransformData|oplanarPoints|oprimeQ|oproduct|opulaDistribution|opyDatabin|opyDirectory|opyFile|opyToClipboard|oreNilpotentDecomposition|ornerFilter|orrelation|orrelationDistance|orrelationFunction|orrelationTest|os|osIntegral|osh|oshIntegral|osineDistance|osineWindow|ot|oth|oulombF|oulombG|oulombH1|oulombH2|ount|ountDistinct|ountDistinctBy|ountRoots|ountryData|ounts|ountsBy|ovariance|ovarianceFunction|oxIngersollRossProcess|oxModel|oxModelFit|oxianDistribution|ramerVonMisesTest|reateArchive|reateDatabin|reateDialog|reateDirectory|reateDocument|reateFile|reateManagedLibraryExpression|reateNotebook|reatePacletArchive|reatePalette|reatePermissionsGroup|reateUUID|reateWindow|riticalSection|riticalityFailureImportance|riticalitySuccessImportance|ross|rossMatrix|rossingCount|rossingDetect|rossingPolygon|sc|sch|ube|ubeRoot|uboid|umulant|umulantGeneratingFunction|umulativeFeatureImpactPlot|up|upCap|url|urrencyConvert|urrentDate|urrentImage|urrentValue|urvatureFlowFilter|ycleGraph|ycleIndexPolynomial|ycles|yclicGroup|yclotomic|ylinder|ylindricalDecomposition|ylindricalDecompositionFunction))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"(?:D(?:|Eigensystem|Eigenvalues|GaussianWavelet|MSList|MSString|Solve|SolveValue|agumDistribution|amData|amerauLevenshteinDistance|arker|ashing|ataDistribution|atabin|atabinAdd|atabinUpload|atabins|ataset|ateBounds|ateDifference|ateHistogram|ateList|ateListLogPlot|ateListPlot|ateListStepPlot|ateObject|ateObjectQ|ateOverlapsQ|atePattern|atePlus|ateRange|ateScale|ateSelect|ateString|ateValue|ateWithinQ|ated|atedUnit|aubechiesWavelet|avisDistribution|awsonF|ayCount|ayHemisphere|ayMatchQ|ayName|ayNightTerminator|ayPlus|ayRange|ayRound|aylightQ|eBruijnGraph|eBruijnSequence|ecapitalize|ecimalForm|eclarePackage|ecompose|ecrement|ecrypt|edekindEta|eepSpaceProbeData|efault|efaultButton|efaultValues|efer|efineInputStreamMethod|efineOutputStreamMethod|efineResourceFunction|efinition|egreeCentrality|egreeGraphDistribution|el|elaunayMesh|elayed|elete|eleteAdjacentDuplicates|eleteAnomalies|eleteBorderComponents|eleteCases|eleteDirectory|eleteDuplicates|eleteDuplicatesBy|eleteFile|eleteMissing|eleteObject|eletePermissionsKey|eleteSmallComponents|eleteStopwords|elimitedSequence|endrogram|enominator|ensityHistogram|ensityPlot|ensityPlot3D|eploy|epth|epthFirstScan|erivative|erivativeFilter|erivativePDETerm|esignMatrix|et|eviceClose|eviceConfigure|eviceExecute|eviceExecuteAsynchronous|eviceObject|eviceOpen|eviceRead|eviceReadBuffer|eviceReadLatest|eviceReadList|eviceReadTimeSeries|eviceStreams|eviceWrite|eviceWriteBuffer|evices|iagonal|iagonalMatrix|iagonalMatrixQ|iagonalizableMatrixQ|ialog|ialogInput|ialogNotebook|ialogReturn|iamond|iamondMatrix|iceDissimilarity|ictionaryLookup|ictionaryWordQ|ifferenceDelta|ifferenceQuotient|ifferenceRoot|ifferenceRootReduce|ifferences|ifferentialD|ifferentialRoot|ifferentialRootReduce|ifferentiatorFilter|iffusionPDETerm|igitCount|igitQ|ihedralAngle|ihedralGroup|ilation|imensionReduce|imensionReducerFunction|imensionReduction|imensionalCombinations|imensionalMeshComponents|imensions|iracComb|iracDelta|irectedEdge|irectedGraph|irectedGraphQ|irectedInfinity|irectionalLight|irective|irectory|irectoryName|irectoryQ|irectoryStack|irichletBeta|irichletCharacter|irichletCondition|irichletConvolve|irichletDistribution|irichletEta|irichletL|irichletLambda|irichletTransform|irichletWindow|iscreteAsymptotic|iscreteChirpZTransform|iscreteConvolve|iscreteDelta|iscreteHadamardTransform|iscreteIndicator|iscreteInputOutputModel|iscreteLQEstimatorGains|iscreteLQRegulatorGains|iscreteLimit|iscreteLyapunovSolve|iscreteMarkovProcess|iscreteMaxLimit|iscreteMinLimit|iscretePlot|iscretePlot3D|iscreteRatio|iscreteRiccatiSolve|iscreteShift|iscreteTimeModelQ|iscreteUniformDistribution|iscreteWaveletData|iscreteWaveletPacketTransform|iscreteWaveletTransform|iscretizeGraphics|iscretizeRegion|iscriminant|isjointQ|isjunction|isk|iskMatrix|iskSegment|ispatch|isplayEndPacket|isplayForm|isplayPacket|istanceMatrix|istanceTransform|istribute|istributeDefinitions|istributed|istributionChart|istributionFitTest|istributionParameterAssumptions|istributionParameterQ|iv|ivide|ivideBy|ivideSides|ivisible|ivisorSigma|ivisorSum|ivisors|o|ocumentGenerator|ocumentGeneratorInformation|ocumentGenerators|ocumentNotebook|odecahedron|ominantColors|ominatorTreeGraph|ominatorVertexList|ot|otEqual|oubleBracketingBar|oubleDownArrow|oubleLeftArrow|oubleLeftRightArrow|oubleLeftTee|oubleLongLeftArrow|oubleLongLeftRightArrow|oubleLongRightArrow|oubleRightArrow|oubleRightTee|oubleUpArrow|oubleUpDownArrow|oubleVerticalBar|ownArrow|ownArrowBar|ownArrowUpArrow|ownLeftRightVector|ownLeftTeeVector|ownLeftVector|ownLeftVectorBar|ownRightTeeVector|ownRightVector|ownRightVectorBar|ownTee|ownTeeArrow|ownValues|ownsample|razinInverse|rop|ropShadowing|t|ualPlanarGraph|ualPolyhedron|ualSystemsModel|umpSave|uplicateFreeQ|uration|ynamic|ynamicGeoGraphics|ynamicModule|ynamicSetting|ynamicWrapper))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"(?:E(?:arthImpactData|arthquakeData|ccentricityCentrality|choEvaluation|choFunction|choLabel|dgeAdd|dgeBetweennessCentrality|dgeChromaticNumber|dgeConnectivity|dgeContract|dgeCount|dgeCoverQ|dgeCycleMatrix|dgeDelete|dgeDetect|dgeForm|dgeIndex|dgeList|dgeQ|dgeRules|dgeTaggedGraph|dgeTaggedGraphQ|dgeTags|dgeTransitiveGraphQ|dgeWeightedGraphQ|ditDistance|ffectiveInterest|igensystem|igenvalues|igenvectorCentrality|igenvectors|lement|lementData|liminate|llipsoid|llipticE|llipticExp|llipticExpPrime|llipticF|llipticFilterModel|llipticK|llipticLog|llipticNomeQ|llipticPi|llipticTheta|llipticThetaPrime|mbedCode|mbeddedHTML|mbeddedService|mitSound|mpiricalDistribution|mptyGraphQ|mptyRegion|nclose|ncode|ncrypt|ncryptedObject|nd|ndDialogPacket|ndPackage|ngineeringForm|nterExpressionPacket|nterTextPacket|ntity|ntityClass|ntityClassList|ntityCopies|ntityGroup|ntityInstance|ntityList|ntityPrefetch|ntityProperties|ntityProperty|ntityPropertyClass|ntityRegister|ntityStores|ntityTypeName|ntityUnregister|ntityValue|ntropy|ntropyFilter|nvironment|qual|qualTilde|qualTo|quilibrium|quirippleFilterKernel|quivalent|rf|rfc|rfi|rlangB|rlangC|rlangDistribution|rosion|rrorBox|stimatedBackground|stimatedDistribution|stimatedPointNormals|stimatedProcess|stimatorGains|stimatorRegulator|uclideanDistance|ulerAngles|ulerCharacteristic|ulerE|ulerMatrix|ulerPhi|ulerianGraphQ|valuate|valuatePacket|valuationBox|valuationCell|valuationData|valuationNotebook|valuationObject|venQ|ventData|ventHandler|ventSeries|xactBlackmanWindow|xactNumberQ|xampleData|xcept|xists|xoplanetData|xp|xpGammaDistribution|xpIntegralE|xpIntegralEi|xpToTrig|xpand|xpandAll|xpandDenominator|xpandFileName|xpandNumerator|xpectation|xponent|xponentialDistribution|xponentialGeneratingFunction|xponentialMovingAverage|xponentialPowerDistribution|xport|xportByteArray|xportForm|xportString|xpressionCell|xpressionGraph|xtendedGCD|xternalBundle|xtract|xtractArchive|xtractPacletArchive|xtremeValueDistribution))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"(?:F(?:ARIMAProcess|RatioDistribution|aceAlign|aceForm|acialFeatures|actor|actorInteger|actorList|actorSquareFree|actorSquareFreeList|actorTerms|actorTermsList|actorial|actorial2|actorialMoment|actorialMomentGeneratingFunction|actorialPower|ailure|ailureDistribution|ailureQ|areySequence|eatureImpactPlot|eatureNearest|eatureSpacePlot|eatureSpacePlot3D|eatureValueDependencyPlot|eatureValueImpactPlot|eedbackLinearize|etalGrowthData|ibonacci|ibonorial|ile|ileBaseName|ileByteCount|ileDate|ileExistsQ|ileExtension|ileFormat|ileFormatQ|ileHash|ileNameDepth|ileNameDrop|ileNameJoin|ileNameSetter|ileNameSplit|ileNameTake|ileNames|ilePrint|ileSize|ileSystemMap|ileSystemScan|ileTemplate|ileTemplateApply|ileType|illedCurve|illedTorus|illingTransform|ilterRules|inancialBond|inancialData|inancialDerivative|inancialIndicator|ind|indAnomalies|indArgMax|indArgMin|indClique|indClusters|indCookies|indCurvePath|indCycle|indDevices|indDistribution|indDistributionParameters|indDivisions|indEdgeColoring|indEdgeCover|indEdgeCut|indEdgeIndependentPaths|indEulerianCycle|indFaces|indFile|indFit|indFormula|indFundamentalCycles|indGeneratingFunction|indGeoLocation|indGeometricTransform|indGraphCommunities|indGraphIsomorphism|indGraphPartition|indHamiltonianCycle|indHamiltonianPath|indHiddenMarkovStates|indIndependentEdgeSet|indIndependentVertexSet|indInstance|indIntegerNullVector|indIsomorphicSubgraph|indKClan|indKClique|indKClub|indKPlex|indLibrary|indLinearRecurrence|indList|indMatchingColor|indMaxValue|indMaximum|indMaximumCut|indMaximumFlow|indMeshDefects|indMinValue|indMinimum|indMinimumCostFlow|indMinimumCut|indPath|indPeaks|indPermutation|indPlanarColoring|indPostmanTour|indProcessParameters|indRegionTransform|indRepeat|indRoot|indSequenceFunction|indShortestPath|indShortestTour|indSpanningTree|indSubgraphIsomorphism|indThreshold|indTransientRepeat|indVertexColoring|indVertexCover|indVertexCut|indVertexIndependentPaths|inishDynamic|initeAbelianGroupCount|initeGroupCount|initeGroupData|irst|irstCase|irstPassageTimeDistribution|irstPosition|ischerGroupFi22|ischerGroupFi23|ischerGroupFi24Prime|isherHypergeometricDistribution|isherRatioTest|isherZDistribution|it|ittedModel|ixedOrder|ixedPoint|ixedPointList|latShading|latTopWindow|latten|lattenAt|lightData|lipView|loor|lowPolynomial|old|oldList|oldPair|oldPairList|oldWhile|oldWhileList|or|orAll|ormBox|ormFunction|ormObject|ormPage|ormat|ormulaData|ormulaLookup|ortranForm|ourier|ourierCoefficient|ourierCosCoefficient|ourierCosSeries|ourierCosTransform|ourierDCT|ourierDCTFilter|ourierDCTMatrix|ourierDST|ourierDSTMatrix|ourierMatrix|ourierSequenceTransform|ourierSeries|ourierSinCoefficient|ourierSinSeries|ourierSinTransform|ourierTransform|ourierTrigSeries|oxH|ractionBox|ractionalBrownianMotionProcess|ractionalD|ractionalGaussianNoiseProcess|ractionalPart|rameBox|ramed|rechetDistribution|reeQ|renetSerretSystem|requencySamplingFilterKernel|resnelC|resnelF|resnelG|resnelS|robeniusNumber|robeniusSolve|romAbsoluteTime|romCharacterCode|romCoefficientRules|romContinuedFraction|romDMS|romDateString|romDigits|romEntity|romJulianDate|romLetterNumber|romPolarCoordinates|romRomanNumeral|romSphericalCoordinates|romUnixTime|rontEndExecute|rontEndToken|rontEndTokenExecute|ullDefinition|ullForm|ullGraphics|ullInformationOutputRegulator|ullRegion|ullSimplify|unction|unctionAnalytic|unctionBijective|unctionContinuous|unctionConvexity|unctionDiscontinuities|unctionDomain|unctionExpand|unctionInjective|unctionInterpolation|unctionMeromorphic|unctionMonotonicity|unctionPeriod|unctionRange|unctionSign|unctionSingularities|unctionSurjective|ussellVeselyImportance))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"(?:G(?:ARCHProcess|CD|aborFilter|aborMatrix|aborWavelet|ainMargins|ainPhaseMargins|alaxyData|amma|ammaDistribution|ammaRegularized|ather|atherBy|aussianFilter|aussianMatrix|aussianOrthogonalMatrixDistribution|aussianSymplecticMatrixDistribution|aussianUnitaryMatrixDistribution|aussianWindow|egenbauerC|eneralizedLinearModelFit|enerateAsymmetricKeyPair|enerateDocument|enerateHTTPResponse|enerateSymmetricKey|eneratingFunction|enericCylindricalDecomposition|enomeData|enomeLookup|eoAntipode|eoArea|eoBoundary|eoBoundingBox|eoBounds|eoBoundsRegion|eoBoundsRegionBoundary|eoBubbleChart|eoCircle|eoContourPlot|eoDensityPlot|eoDestination|eoDirection|eoDisk|eoDisplacement|eoDistance|eoDistanceList|eoElevationData|eoEntities|eoGraphPlot|eoGraphics|eoGridDirectionDifference|eoGridPosition|eoGridUnitArea|eoGridUnitDistance|eoGridVector|eoGroup|eoHemisphere|eoHemisphereBoundary|eoHistogram|eoIdentify|eoImage|eoLength|eoListPlot|eoMarker|eoNearest|eoPath|eoPolygon|eoPosition|eoPositionENU|eoPositionXYZ|eoProjectionData|eoRegionValuePlot|eoSmoothHistogram|eoStreamPlot|eoStyling|eoVariant|eoVector|eoVectorENU|eoVectorPlot|eoVectorXYZ|eoVisibleRegion|eoVisibleRegionBoundary|eoWithinQ|eodesicClosing|eodesicDilation|eodesicErosion|eodesicOpening|eodesicPolyhedron|eodesyData|eogravityModelData|eologicalPeriodData|eomagneticModelData|eometricBrownianMotionProcess|eometricDistribution|eometricMean|eometricMeanFilter|eometricOptimization|eometricTransformation|estureHandler|et|etEnvironment|lobalClusteringCoefficient|low|ompertzMakehamDistribution|oochShading|oodmanKruskalGamma|oodmanKruskalGammaTest|oto|ouraudShading|rad|radientFilter|radientFittedMesh|radientOrientationFilter|rammarApply|rammarRules|rammarToken|raph|raph3D|raphAssortativity|raphAutomorphismGroup|raphCenter|raphComplement|raphData|raphDensity|raphDiameter|raphDifference|raphDisjointUnion|raphDistance|raphDistanceMatrix|raphEmbedding|raphHub|raphIntersection|raphJoin|raphLinkEfficiency|raphPeriphery|raphPlot|raphPlot3D|raphPower|raphProduct|raphPropertyDistribution|raphQ|raphRadius|raphReciprocity|raphSum|raphUnion|raphics|raphics3D|raphicsColumn|raphicsComplex|raphicsGrid|raphicsGroup|raphicsRow|rayLevel|reater|reaterEqual|reaterEqualLess|reaterEqualThan|reaterFullEqual|reaterGreater|reaterLess|reaterSlantEqual|reaterThan|reaterTilde|reenFunction|rid|ridBox|ridGraph|roebnerBasis|roupBy|roupCentralizer|roupElementFromWord|roupElementPosition|roupElementQ|roupElementToWord|roupElements|roupGenerators|roupMultiplicationTable|roupOrbits|roupOrder|roupSetwiseStabilizer|roupStabilizer|roupStabilizerChain|roupings|rowCutComponents|udermannian|uidedFilter|umbelDistribution))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"(?:H(?:ITSCentrality|TTPErrorResponse|TTPRedirect|TTPRequest|TTPRequestData|TTPResponse|aarWavelet|adamardMatrix|alfLine|alfNormalDistribution|alfPlane|alfSpace|alftoneShading|amiltonianGraphQ|ammingDistance|ammingWindow|ankelH1|ankelH2|ankelMatrix|ankelTransform|annPoissonWindow|annWindow|aradaNortonGroupHN|araryGraph|armonicMean|armonicMeanFilter|armonicNumber|ash|atchFilling|atchShading|aversine|azardFunction|ead|eatFluxValue|eatInsulationValue|eatOutflowValue|eatRadiationValue|eatSymmetryValue|eatTemperatureCondition|eatTransferPDEComponent|eatTransferValue|eavisideLambda|eavisidePi|eavisideTheta|eldGroupHe|elmholtzPDEComponent|ermiteDecomposition|ermiteH|ermitian|ermitianMatrixQ|essenbergDecomposition|eunB|eunBPrime|eunC|eunCPrime|eunD|eunDPrime|eunG|eunGPrime|eunT|eunTPrime|exahedron|iddenMarkovProcess|ighlightGraph|ighlightImage|ighlightMesh|ighlighted|ighpassFilter|igmanSimsGroupHS|ilbertCurve|ilbertFilter|ilbertMatrix|istogram|istogram3D|istogramDistribution|istogramList|istogramTransform|istogramTransformInterpolation|istoricalPeriodData|itMissTransform|jorthDistribution|odgeDual|oeffdingD|oeffdingDTest|old|oldComplete|oldForm|oldPattern|orizontalGauge|ornerForm|ostLookup|otellingTSquareDistribution|oytDistribution|ue|umanGrowthData|umpDownHump|umpEqual|urwitzLerchPhi|urwitzZeta|yperbolicDistribution|ypercubeGraph|yperexponentialDistribution|yperfactorial|ypergeometric0F1|ypergeometric0F1Regularized|ypergeometric1F1|ypergeometric1F1Regularized|ypergeometric2F1|ypergeometric2F1Regularized|ypergeometricDistribution|ypergeometricPFQ|ypergeometricPFQRegularized|ypergeometricU|yperlink|yperplane|ypoexponentialDistribution|ypothesisTestData))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"(?:I(?:PAddress|conData|conize|cosahedron|dentity|dentityMatrix|f|fCompiled|gnoringInactive|m|mage|mage3D|mage3DProjection|mage3DSlices|mageAccumulate|mageAdd|mageAdjust|mageAlign|mageApply|mageApplyIndexed|mageAspectRatio|mageAssemble|mageCapture|mageChannels|mageClip|mageCollage|mageColorSpace|mageCompose|mageConvolve|mageCooccurrence|mageCorners|mageCorrelate|mageCorrespondingPoints|mageCrop|mageData|mageDeconvolve|mageDemosaic|mageDifference|mageDimensions|mageDisplacements|mageDistance|mageEffect|mageExposureCombine|mageFeatureTrack|mageFileApply|mageFileFilter|mageFileScan|mageFilter|mageFocusCombine|mageForestingComponents|mageForwardTransformation|mageHistogram|mageIdentify|mageInstanceQ|mageKeypoints|mageLevels|mageLines|mageMarker|mageMeasurements|mageMesh|mageMultiply|magePad|magePartition|magePeriodogram|magePerspectiveTransformation|mageQ|mageRecolor|mageReflect|mageResize|mageRestyle|mageRotate|mageSaliencyFilter|mageScaled|mageScan|mageSubtract|mageTake|mageTransformation|mageTrim|mageType|mageValue|mageValuePositions|mageVectorscopePlot|mageWaveformPlot|mplicitD|mplicitRegion|mplies|mport|mportByteArray|mportString|mprovementImportance|nactivate|nactive|ncidenceGraph|ncidenceList|ncidenceMatrix|ncrement|ndefiniteMatrixQ|ndependenceTest|ndependentEdgeSetQ|ndependentPhysicalQuantity|ndependentUnit|ndependentUnitDimension|ndependentVertexSetQ|ndexEdgeTaggedGraph|ndexGraph|ndexed|nexactNumberQ|nfiniteLine|nfiniteLineThrough|nfinitePlane|nfix|nflationAdjust|nformation|nhomogeneousPoissonProcess|nner|nnerPolygon|nnerPolyhedron|npaint|nput|nputField|nputForm|nputNamePacket|nputNotebook|nputPacket|nputStream|nputString|nputStringPacket|nsert|nsertLinebreaks|nset|nsphere|nstall|nstallService|ntegerDigits|ntegerExponent|ntegerLength|ntegerName|ntegerPart|ntegerPartitions|ntegerQ|ntegerReverse|ntegerString|ntegrate|nteractiveTradingChart|nternallyBalancedDecomposition|nterpolatingFunction|nterpolatingPolynomial|nterpolation|nterpretation|nterpretationBox|nterpreter|nterquartileRange|nterrupt|ntersectingQ|ntersection|nterval|ntervalIntersection|ntervalMemberQ|ntervalSlider|ntervalUnion|nverse|nverseBetaRegularized|nverseBilateralLaplaceTransform|nverseBilateralZTransform|nverseCDF|nverseChiSquareDistribution|nverseContinuousWaveletTransform|nverseDistanceTransform|nverseEllipticNomeQ|nverseErf|nverseErfc|nverseFourier|nverseFourierCosTransform|nverseFourierSequenceTransform|nverseFourierSinTransform|nverseFourierTransform|nverseFunction|nverseGammaDistribution|nverseGammaRegularized|nverseGaussianDistribution|nverseGudermannian|nverseHankelTransform|nverseHaversine|nverseJacobiCD|nverseJacobiCN|nverseJacobiCS|nverseJacobiDC|nverseJacobiDN|nverseJacobiDS|nverseJacobiNC|nverseJacobiND|nverseJacobiNS|nverseJacobiSC|nverseJacobiSD|nverseJacobiSN|nverseLaplaceTransform|nverseMellinTransform|nversePermutation|nverseRadon|nverseRadonTransform|nverseSeries|nverseShortTimeFourier|nverseSpectrogram|nverseSurvivalFunction|nverseTransformedRegion|nverseWaveletTransform|nverseWeierstrassP|nverseWishartMatrixDistribution|nverseZTransform|nvisible|rreduciblePolynomialQ|slandData|solatingInterval|somorphicGraphQ|somorphicSubgraphQ|sotopeData|tem|toProcess))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"(?:J(?:accardDissimilarity|acobiAmplitude|acobiCD|acobiCN|acobiCS|acobiDC|acobiDN|acobiDS|acobiEpsilon|acobiNC|acobiND|acobiNS|acobiP|acobiSC|acobiSD|acobiSN|acobiSymbol|acobiZN|acobiZeta|ankoGroupJ1|ankoGroupJ2|ankoGroupJ3|ankoGroupJ4|arqueBeraALMTest|ohnsonDistribution|oin|oinAcross|oinForm|oinedCurve|ordanDecomposition|ordanModelDecomposition|uliaSetBoettcher|uliaSetIterationCount|uliaSetPlot|uliaSetPoints|ulianDate))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"(?:K(?:CoreComponents|Distribution|EdgeConnectedComponents|EdgeConnectedGraphQ|VertexConnectedComponents|VertexConnectedGraphQ|agiChart|aiserBesselWindow|aiserWindow|almanEstimator|almanFilter|arhunenLoeveDecomposition|aryTree|atzCentrality|elvinBei|elvinBer|elvinKei|elvinKer|endallTau|endallTauTest|ernelMixtureDistribution|ernelObject|ernels|ey|eyComplement|eyDrop|eyDropFrom|eyExistsQ|eyFreeQ|eyIntersection|eyMap|eyMemberQ|eySelect|eySort|eySortBy|eyTake|eyUnion|eyValueMap|eyValuePattern|eys|illProcess|irchhoffGraph|irchhoffMatrix|leinInvariantJ|napsackSolve|nightTourGraph|notData|nownUnitQ|ochCurve|olmogorovSmirnovTest|roneckerDelta|roneckerModelDecomposition|roneckerProduct|roneckerSymbol|uiperTest|umaraswamyDistribution|urtosis|uwaharaFilter))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"(?:L(?:ABColor|CHColor|CM|QEstimatorGains|QGRegulator|QOutputRegulatorGains|QRegulatorGains|UDecomposition|UVColor|abel|abeled|aguerreL|akeData|ambdaComponents|ameC|ameCPrime|ameEigenvalueA|ameEigenvalueB|ameS|ameSPrime|aminaData|anczosWindow|andauDistribution|anguageData|anguageIdentify|aplaceDistribution|aplaceTransform|aplacian|aplacianFilter|aplacianGaussianFilter|aplacianPDETerm|ast|atitude|atitudeLongitude|atticeData|atticeReduce|aunchKernels|ayeredGraphPlot|ayeredGraphPlot3D|eafCount|eapVariant|eapYearQ|earnDistribution|earnedDistribution|eastSquares|eastSquaresFilterKernel|eftArrow|eftArrowBar|eftArrowRightArrow|eftDownTeeVector|eftDownVector|eftDownVectorBar|eftRightArrow|eftRightVector|eftTee|eftTeeArrow|eftTeeVector|eftTriangle|eftTriangleBar|eftTriangleEqual|eftUpDownVector|eftUpTeeVector|eftUpVector|eftUpVectorBar|eftVector|eftVectorBar|egended|egendreP|egendreQ|ength|engthWhile|erchPhi|ess|essEqual|essEqualGreater|essEqualThan|essFullEqual|essGreater|essLess|essSlantEqual|essThan|essTilde|etterCounts|etterNumber|etterQ|evel|eveneTest|eviCivitaTensor|evyDistribution|exicographicOrder|exicographicSort|ibraryDataType|ibraryFunction|ibraryFunctionError|ibraryFunctionInformation|ibraryFunctionLoad|ibraryFunctionUnload|ibraryLoad|ibraryUnload|iftingFilterData|iftingWaveletTransform|ighter|ikelihood|imit|indleyDistribution|ine|ineBreakChart|ineGraph|ineIntegralConvolutionPlot|ineLegend|inearFractionalOptimization|inearFractionalTransform|inearGradientFilling|inearGradientImage|inearModelFit|inearOptimization|inearRecurrence|inearSolve|inearSolveFunction|inearizingTransformationData|inkActivate|inkClose|inkConnect|inkCreate|inkInterrupt|inkLaunch|inkObject|inkPatterns|inkRankCentrality|inkRead|inkReadyQ|inkWrite|inks|iouvilleLambda|ist|istAnimate|istContourPlot|istContourPlot3D|istConvolve|istCorrelate|istCurvePathPlot|istDeconvolve|istDensityPlot|istDensityPlot3D|istFourierSequenceTransform|istInterpolation|istLineIntegralConvolutionPlot|istLinePlot|istLinePlot3D|istLogLinearPlot|istLogLogPlot|istLogPlot|istPicker|istPickerBox|istPlay|istPlot|istPlot3D|istPointPlot3D|istPolarPlot|istQ|istSliceContourPlot3D|istSliceDensityPlot3D|istSliceVectorPlot3D|istStepPlot|istStreamDensityPlot|istStreamPlot|istStreamPlot3D|istSurfacePlot3D|istVectorDensityPlot|istVectorDisplacementPlot|istVectorDisplacementPlot3D|istVectorPlot|istVectorPlot3D|istZTransform|ocalAdaptiveBinarize|ocalCache|ocalClusteringCoefficient|ocalEvaluate|ocalObject|ocalObjects|ocalSubmit|ocalSymbol|ocalTime|ocalTimeZone|ocationEquivalenceTest|ocationTest|ocator|ocatorPane|og|og10|og2|ogBarnesG|ogGamma|ogGammaDistribution|ogIntegral|ogLikelihood|ogLinearPlot|ogLogPlot|ogLogisticDistribution|ogMultinormalDistribution|ogNormalDistribution|ogPlot|ogRankTest|ogSeriesDistribution|ogicalExpand|ogisticDistribution|ogisticSigmoid|ogitModelFit|ongLeftArrow|ongLeftRightArrow|ongRightArrow|ongest|ongestCommonSequence|ongestCommonSequencePositions|ongestCommonSubsequence|ongestCommonSubsequencePositions|ongestOrderedSequence|ongitude|ookup|oopFreeGraphQ|owerCaseQ|owerLeftArrow|owerRightArrow|owerTriangularMatrix|owerTriangularMatrixQ|owerTriangularize|owpassFilter|ucasL|uccioSamiComponents|unarEclipse|yapunovSolve|yonsGroupLy))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"(?:M(?:AProcess|achineNumberQ|agnify|ailReceiverFunction|ajority|akeBoxes|akeExpression|anagedLibraryExpressionID|anagedLibraryExpressionQ|andelbrotSetBoettcher|andelbrotSetDistance|andelbrotSetIterationCount|andelbrotSetMemberQ|andelbrotSetPlot|angoldtLambda|anhattanDistance|anipulate|anipulator|annWhitneyTest|annedSpaceMissionData|antissaExponent|ap|apAll|apApply|apAt|apIndexed|apThread|archenkoPasturDistribution|arcumQ|ardiaCombinedTest|ardiaKurtosisTest|ardiaSkewnessTest|arginalDistribution|arkovProcessProperties|assConcentrationCondition|assFluxValue|assImpermeableBoundaryValue|assOutflowValue|assSymmetryValue|assTransferValue|assTransportPDEComponent|atchQ|atchingDissimilarity|aterialShading|athMLForm|athematicalFunctionData|athieuC|athieuCPrime|athieuCharacteristicA|athieuCharacteristicB|athieuCharacteristicExponent|athieuGroupM11|athieuGroupM12|athieuGroupM22|athieuGroupM23|athieuGroupM24|athieuS|athieuSPrime|atrices|atrixExp|atrixForm|atrixFunction|atrixLog|atrixNormalDistribution|atrixPlot|atrixPower|atrixPropertyDistribution|atrixQ|atrixRank|atrixTDistribution|ax|axDate|axDetect|axFilter|axLimit|axMemoryUsed|axStableDistribution|axValue|aximalBy|aximize|axwellDistribution|cLaughlinGroupMcL|ean|eanClusteringCoefficient|eanDegreeConnectivity|eanDeviation|eanFilter|eanGraphDistance|eanNeighborDegree|eanShift|eanShiftFilter|edian|edianDeviation|edianFilter|edicalTestData|eijerG|eijerGReduce|eixnerDistribution|ellinConvolve|ellinTransform|emberQ|emoryAvailable|emoryConstrained|emoryInUse|engerMesh|enuPacket|enuView|erge|ersennePrimeExponent|ersennePrimeExponentQ|eshCellCount|eshCellIndex|eshCells|eshConnectivityGraph|eshCoordinates|eshPrimitives|eshRegion|eshRegionQ|essage|essageDialog|essageList|essageName|essagePacket|essages|eteorShowerData|exicanHatWavelet|eyerWavelet|in|inDate|inDetect|inFilter|inLimit|inMax|inStableDistribution|inValue|ineralData|inimalBy|inimalPolynomial|inimalStateSpaceModel|inimize|inimumTimeIncrement|inkowskiQuestionMark|inorPlanetData|inors|inus|inusPlus|issing|issingQ|ittagLefflerE|ixedFractionParts|ixedGraphQ|ixedMagnitude|ixedRadix|ixedRadixQuantity|ixedUnit|ixtureDistribution|od|odelPredictiveController|odularInverse|odularLambda|odule|oebiusMu|oment|omentConvert|omentEvaluate|omentGeneratingFunction|omentOfInertia|onitor|onomialList|onsterGroupM|oonPhase|oonPosition|orletWavelet|orphologicalBinarize|orphologicalBranchPoints|orphologicalComponents|orphologicalEulerNumber|orphologicalGraph|orphologicalPerimeter|orphologicalTransform|ortalityData|ost|ountainData|ouseAnnotation|ouseAppearance|ousePosition|ouseover|ovieData|ovingAverage|ovingMap|ovingMedian|oyalDistribution|ulticolumn|ultigraphQ|ultinomial|ultinomialDistribution|ultinormalDistribution|ultiplicativeOrder|ultiplySides|ultivariateHypergeometricDistribution|ultivariatePoissonDistribution|ultivariateTDistribution))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"(?:N(?:|ArgMax|ArgMin|Cache|CaputoD|DEigensystem|DEigenvalues|DSolve|DSolveValue|Expectation|FractionalD|Integrate|MaxValue|Maximize|MinValue|Minimize|Probability|Product|Roots|Solve|SolveValues|Sum|akagamiDistribution|ameQ|ames|and|earest|earestFunction|earestMeshCells|earestNeighborGraph|earestTo|ebulaData|eedlemanWunschSimilarity|eeds|egative|egativeBinomialDistribution|egativeDefiniteMatrixQ|egativeMultinomialDistribution|egativeSemidefiniteMatrixQ|egativelyOrientedPoints|eighborhoodData|eighborhoodGraph|est|estGraph|estList|estWhile|estWhileList|estedGreaterGreater|estedLessLess|eumannValue|evilleThetaC|evilleThetaD|evilleThetaN|evilleThetaS|extCell|extDate|extPrime|icholsPlot|ightHemisphere|onCommutativeMultiply|onNegative|onPositive|oncentralBetaDistribution|oncentralChiSquareDistribution|oncentralFRatioDistribution|oncentralStudentTDistribution|ondimensionalizationTransform|oneTrue|onlinearModelFit|onlinearStateSpaceModel|onlocalMeansFilter|or|orlundB|orm|ormal|ormalDistribution|ormalMatrixQ|ormalize|ormalizedSquaredEuclideanDistance|ot|otCongruent|otCupCap|otDoubleVerticalBar|otElement|otEqualTilde|otExists|otGreater|otGreaterEqual|otGreaterFullEqual|otGreaterGreater|otGreaterLess|otGreaterSlantEqual|otGreaterTilde|otHumpDownHump|otHumpEqual|otLeftTriangle|otLeftTriangleBar|otLeftTriangleEqual|otLess|otLessEqual|otLessFullEqual|otLessGreater|otLessLess|otLessSlantEqual|otLessTilde|otNestedGreaterGreater|otNestedLessLess|otPrecedes|otPrecedesEqual|otPrecedesSlantEqual|otPrecedesTilde|otReverseElement|otRightTriangle|otRightTriangleBar|otRightTriangleEqual|otSquareSubset|otSquareSubsetEqual|otSquareSuperset|otSquareSupersetEqual|otSubset|otSubsetEqual|otSucceeds|otSucceedsEqual|otSucceedsSlantEqual|otSucceedsTilde|otSuperset|otSupersetEqual|otTilde|otTildeEqual|otTildeFullEqual|otTildeTilde|otVerticalBar|otebook|otebookApply|otebookClose|otebookDelete|otebookDirectory|otebookEvaluate|otebookFileName|otebookFind|otebookGet|otebookImport|otebookInformation|otebookLocate|otebookObject|otebookOpen|otebookPrint|otebookPut|otebookRead|otebookSave|otebookSelection|otebookTemplate|otebookWrite|otebooks|othing|uclearExplosionData|uclearReactorData|ullSpace|umberCompose|umberDecompose|umberDigit|umberExpand|umberFieldClassNumber|umberFieldDiscriminant|umberFieldFundamentalUnits|umberFieldIntegralBasis|umberFieldNormRepresentatives|umberFieldRegulator|umberFieldRootsOfUnity|umberFieldSignature|umberForm|umberLinePlot|umberQ|umerator|umeratorDenominator|umericQ|umericalOrder|umericalSort|uttallWindow|yquistPlot))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"(?:O(?:|NanGroupON|bservabilityGramian|bservabilityMatrix|bservableDecomposition|bservableModelQ|ceanData|ctahedron|ddQ|ff|ffset|n|nce|pacity|penAppend|penRead|penWrite|pener|penerView|pening|perate|ptimumFlowData|ptionValue|ptional|ptionalElement|ptions|ptionsPattern|r|rder|rderDistribution|rderedQ|rdering|rderingBy|rderlessPatternSequence|rnsteinUhlenbeckProcess|rthogonalMatrixQ|rthogonalize|uter|uterPolygon|uterPolyhedron|utputControllabilityMatrix|utputControllableModelQ|utputForm|utputNamePacket|utputResponse|utputStream|verBar|verDot|verHat|verTilde|verVector|verflow|verlay|verscript|verscriptBox|wenT|wnValues))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"(?:P(?:DF|ERTDistribution|IDTune|acletDataRebuild|acletDirectoryLoad|acletDirectoryUnload|acletDisable|acletEnable|acletFind|acletFindRemote|acletInstall|acletInstallSubmit|acletNewerQ|acletObject|acletSiteObject|acletSiteRegister|acletSiteUnregister|acletSiteUpdate|acletSites|acletUninstall|adLeft|adRight|addedForm|adeApproximant|ageRankCentrality|airedBarChart|airedHistogram|airedSmoothHistogram|airedTTest|airedZTest|aletteNotebook|alindromeQ|ane|aneSelector|anel|arabolicCylinderD|arallelArray|arallelAxisPlot|arallelCombine|arallelDo|arallelEvaluate|arallelKernels|arallelMap|arallelNeeds|arallelProduct|arallelSubmit|arallelSum|arallelTable|arallelTry|arallelepiped|arallelize|arallelogram|arameterMixtureDistribution|arametricConvexOptimization|arametricFunction|arametricNDSolve|arametricNDSolveValue|arametricPlot|arametricPlot3D|arametricRegion|arentBox|arentCell|arentDirectory|arentNotebook|aretoDistribution|aretoPickandsDistribution|arkData|art|artOfSpeech|artialCorrelationFunction|articleAcceleratorData|articleData|artition|artitionsP|artitionsQ|arzenWindow|ascalDistribution|aste|asteButton|athGraph|athGraphQ|attern|atternSequence|atternTest|aulWavelet|auliMatrix|ause|eakDetect|eanoCurve|earsonChiSquareTest|earsonCorrelationTest|earsonDistribution|ercentForm|erfectNumber|erfectNumberQ|erimeter|eriodicBoundaryCondition|eriodogram|eriodogramArray|ermanent|ermissionsGroup|ermissionsGroupMemberQ|ermissionsGroups|ermissionsKey|ermissionsKeys|ermutationCycles|ermutationCyclesQ|ermutationGroup|ermutationLength|ermutationList|ermutationListQ|ermutationMatrix|ermutationMax|ermutationMin|ermutationOrder|ermutationPower|ermutationProduct|ermutationReplace|ermutationSupport|ermutations|ermute|eronaMalikFilter|ersonData|etersenGraph|haseMargins|hongShading|hysicalSystemData|ick|ieChart|ieChart3D|iecewise|iecewiseExpand|illaiTrace|illaiTraceTest|ingTime|ixelValue|ixelValuePositions|laced|laceholder|lanarAngle|lanarFaceList|lanarGraph|lanarGraphQ|lanckRadiationLaw|laneCurveData|lanetData|lanetaryMoonData|lantData|lay|lot|lot3D|luralize|lus|lusMinus|ochhammer|oint|ointFigureChart|ointLegend|ointLight|ointSize|oissonConsulDistribution|oissonDistribution|oissonPDEComponent|oissonProcess|oissonWindow|olarPlot|olyGamma|olyLog|olyaAeppliDistribution|olygon|olygonAngle|olygonCoordinates|olygonDecomposition|olygonalNumber|olyhedron|olyhedronAngle|olyhedronCoordinates|olyhedronData|olyhedronDecomposition|olyhedronGenus|olynomialExpressionQ|olynomialExtendedGCD|olynomialGCD|olynomialLCM|olynomialMod|olynomialQ|olynomialQuotient|olynomialQuotientRemainder|olynomialReduce|olynomialRemainder|olynomialSumOfSquaresList|opupMenu|opupView|opupWindow|osition|ositionIndex|ositionLargest|ositionSmallest|ositive|ositiveDefiniteMatrixQ|ositiveSemidefiniteMatrixQ|ositivelyOrientedPoints|ossibleZeroQ|ostfix|ower|owerDistribution|owerExpand|owerMod|owerModList|owerRange|owerSpectralDensity|owerSymmetricPolynomial|owersRepresentations|reDecrement|reIncrement|recedenceForm|recedes|recedesEqual|recedesSlantEqual|recedesTilde|recision|redict|redictorFunction|redictorMeasurements|redictorMeasurementsObject|reemptProtect|refix|repend|rependTo|reviousCell|reviousDate|riceGraphDistribution|rime|rimeNu|rimeOmega|rimePi|rimePowerQ|rimeQ|rimeZetaP|rimitivePolynomialQ|rimitiveRoot|rimitiveRootList|rincipalComponents|rintTemporary|rintableASCIIQ|rintout3D|rism|rivateKey|robability|robabilityDistribution|robabilityPlot|robabilityScalePlot|robitModelFit|rocessConnection|rocessInformation|rocessObject|rocessParameterAssumptions|rocessParameterQ|rocessStatus|rocesses|roduct|roductDistribution|roductLog|rogressIndicator|rojection|roportion|roportional|rotect|roteinData|runing|seudoInverse|sychrometricPropertyData|ublicKey|ulsarData|ut|utAppend|yramid))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"(?:Q(?:Binomial|Factorial|Gamma|HypergeometricPFQ|Pochhammer|PolyGamma|RDecomposition|nDispersion|uadraticIrrationalQ|uadraticOptimization|uantile|uantilePlot|uantity|uantityArray|uantityDistribution|uantityForm|uantityMagnitude|uantityQ|uantityUnit|uantityVariable|uantityVariableCanonicalUnit|uantityVariableDimensions|uantityVariableIdentifier|uantityVariablePhysicalQuantity|uartileDeviation|uartileSkewness|uartiles|uery|ueueProperties|ueueingNetworkProcess|ueueingProcess|uiet|uietEcho|uotient|uotientRemainder))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"(?:R(?:GBColor|Solve|SolveValue|adialAxisPlot|adialGradientFilling|adialGradientImage|adialityCentrality|adicalBox|adioButton|adioButtonBar|adon|adonTransform|amanujanTau|amanujanTauL|amanujanTauTheta|amanujanTauZ|amp|andomChoice|andomColor|andomComplex|andomDate|andomEntity|andomFunction|andomGeneratorState|andomGeoPosition|andomGraph|andomImage|andomInteger|andomPermutation|andomPoint|andomPolygon|andomPolyhedron|andomPrime|andomReal|andomSample|andomTime|andomVariate|andomWalkProcess|andomWord|ange|angeFilter|ankedMax|ankedMin|arerProbability|aster|aster3D|asterize|ational|ationalExpressionQ|ationalize|atios|awBoxes|awData|ayleighDistribution|e|eIm|eImPlot|eactionPDETerm|ead|eadByteArray|eadLine|eadList|eadString|ealAbs|ealDigits|ealExponent|ealSign|eap|econstructionMesh|ectangle|ectangleChart|ectangleChart3D|ectangularRepeatingElement|ecurrenceFilter|ecurrenceTable|educe|efine|eflectionMatrix|eflectionTransform|efresh|egion|egionBinarize|egionBoundary|egionBounds|egionCentroid|egionCongruent|egionConvert|egionDifference|egionDilation|egionDimension|egionDisjoint|egionDistance|egionDistanceFunction|egionEmbeddingDimension|egionEqual|egionErosion|egionFit|egionImage|egionIntersection|egionMeasure|egionMember|egionMemberFunction|egionMoment|egionNearest|egionNearestFunction|egionPlot|egionPlot3D|egionProduct|egionQ|egionResize|egionSimilar|egionSymmetricDifference|egionUnion|egionWithin|egularExpression|egularPolygon|egularlySampledQ|elationGraph|eleaseHold|eliabilityDistribution|eliefImage|eliefPlot|emove|emoveAlphaChannel|emoveBackground|emoveDiacritics|emoveInputStreamMethod|emoveOutputStreamMethod|emoveUsers|enameDirectory|enameFile|enewalProcess|enkoChart|epairMesh|epeated|epeatedNull|epeatedTiming|epeatingElement|eplace|eplaceAll|eplaceAt|eplaceImageValue|eplaceList|eplacePart|eplacePixelValue|eplaceRepeated|esamplingAlgorithmData|escale|escalingTransform|esetDirectory|esidue|esidueSum|esolve|esourceData|esourceObject|esourceSearch|esponseForm|est|estricted|esultant|eturn|eturnExpressionPacket|eturnPacket|eturnTextPacket|everse|everseBiorthogonalSplineWavelet|everseElement|everseEquilibrium|everseGraph|everseSort|everseSortBy|everseUpEquilibrium|evolutionPlot3D|iccatiSolve|iceDistribution|idgeFilter|iemannR|iemannSiegelTheta|iemannSiegelZ|iemannXi|iffle|ightArrow|ightArrowBar|ightArrowLeftArrow|ightComposition|ightCosetRepresentative|ightDownTeeVector|ightDownVector|ightDownVectorBar|ightTee|ightTeeArrow|ightTeeVector|ightTriangle|ightTriangleBar|ightTriangleEqual|ightUpDownVector|ightUpTeeVector|ightUpVector|ightUpVectorBar|ightVector|ightVectorBar|iskAchievementImportance|iskReductionImportance|obustConvexOptimization|ogersTanimotoDissimilarity|ollPitchYawAngles|ollPitchYawMatrix|omanNumeral|oot|ootApproximant|ootIntervals|ootLocusPlot|ootMeanSquare|ootOfUnityQ|ootReduce|ootSum|oots|otate|otateLeft|otateRight|otationMatrix|otationTransform|ound|ow|owBox|owReduce|udinShapiro|udvalisGroupRu|ule|uleDelayed|ulePlot|un|unProcess|unThrough|ussellRaoDissimilarity))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"(?:S(?:ARIMAProcess|ARMAProcess|ASTriangle|SSTriangle|ameAs|ameQ|ampledSoundFunction|ampledSoundList|atelliteData|atisfiabilityCount|atisfiabilityInstances|atisfiableQ|ave|avitzkyGolayMatrix|awtoothWave|cale|caled|calingMatrix|calingTransform|can|cheduledTask|churDecomposition|cientificForm|corerGi|corerGiPrime|corerHi|corerHiPrime|ec|ech|echDistribution|econdOrderConeOptimization|ectorChart|ectorChart3D|eedRandom|elect|electComponents|electFirst|electedCells|electedNotebook|electionCreateCell|electionEvaluate|electionEvaluateCreateCell|electionMove|emanticImport|emanticImportString|emanticInterpretation|emialgebraicComponentInstances|emidefiniteOptimization|endMail|endMessage|equence|equenceAlignment|equenceCases|equenceCount|equenceFold|equenceFoldList|equencePosition|equenceReplace|equenceSplit|eries|eriesCoefficient|eriesData|erviceConnect|erviceDisconnect|erviceExecute|erviceObject|essionSubmit|essionTime|et|etAccuracy|etAlphaChannel|etAttributes|etCloudDirectory|etCookies|etDelayed|etDirectory|etEnvironment|etFileDate|etOptions|etPermissions|etPrecision|etSelectedNotebook|etSharedFunction|etSharedVariable|etStreamPosition|etSystemOptions|etUsers|etter|etterBar|etting|hallow|hannonWavelet|hapiroWilkTest|hare|harpen|hearingMatrix|hearingTransform|hellRegion|henCastanMatrix|hiftRegisterSequence|hiftedGompertzDistribution|hort|hortDownArrow|hortLeftArrow|hortRightArrow|hortTimeFourier|hortTimeFourierData|hortUpArrow|hortest|hortestPathFunction|how|iderealTime|iegelTheta|iegelTukeyTest|ierpinskiCurve|ierpinskiMesh|ign|ignTest|ignature|ignedRankTest|ignedRegionDistance|impleGraph|impleGraphQ|implePolygonQ|implePolyhedronQ|implex|implify|in|inIntegral|inc|inghMaddalaDistribution|ingularValueDecomposition|ingularValueList|ingularValuePlot|inh|inhIntegral|ixJSymbol|keleton|keletonTransform|kellamDistribution|kewNormalDistribution|kewness|kip|liceContourPlot3D|liceDensityPlot3D|liceDistribution|liceVectorPlot3D|lideView|lider|lider2D|liderBox|lot|lotSequence|mallCircle|mithDecomposition|mithDelayCompensator|mithWatermanSimilarity|moothDensityHistogram|moothHistogram|moothHistogram3D|moothKernelDistribution|nDispersion|ocketConnect|ocketListen|ocketListener|ocketObject|ocketOpen|ocketReadMessage|ocketReadyQ|ocketWaitAll|ocketWaitNext|ockets|okalSneathDissimilarity|olarEclipse|olarSystemFeatureData|olarTime|olidAngle|olidData|olidRegionQ|olve|olveAlways|olveValues|ort|ortBy|ound|oundNote|ourcePDETerm|ow|paceCurveData|pacer|pan|parseArray|parseArrayQ|patialGraphDistribution|patialMedian|peak|pearmanRankTest|pearmanRho|peciesData|pectralLineData|pectrogram|pectrogramArray|pecularity|peechSynthesize|pellingCorrectionList|phere|pherePoints|phericalBesselJ|phericalBesselY|phericalHankelH1|phericalHankelH2|phericalHarmonicY|phericalPlot3D|phericalShell|pheroidalEigenvalue|pheroidalJoiningFactor|pheroidalPS|pheroidalPSPrime|pheroidalQS|pheroidalQSPrime|pheroidalRadialFactor|pheroidalS1|pheroidalS1Prime|pheroidalS2|pheroidalS2Prime|plicedDistribution|plit|plitBy|pokenString|potLight|qrt|qrtBox|quare|quareFreeQ|quareIntersection|quareMatrixQ|quareRepeatingElement|quareSubset|quareSubsetEqual|quareSuperset|quareSupersetEqual|quareUnion|quareWave|quaredEuclideanDistance|quaresR|tableDistribution|tack|tackBegin|tackComplete|tackInhibit|tackedDateListPlot|tackedListPlot|tadiumShape|tandardAtmosphereData|tandardDeviation|tandardDeviationFilter|tandardForm|tandardOceanData|tandardize|tandbyDistribution|tar|tarClusterData|tarData|tarGraph|tartProcess|tateFeedbackGains|tateOutputEstimator|tateResponse|tateSpaceModel|tateSpaceTransform|tateTransformationLinearize|tationaryDistribution|tationaryWaveletPacketTransform|tationaryWaveletTransform|tatusArea|tatusCentrality|tieltjesGamma|tippleShading|tirlingS1|tirlingS2|toppingPowerData|tratonovichProcess|treamDensityPlot|treamPlot|treamPlot3D|treamPosition|treams|tringCases|tringContainsQ|tringCount|tringDelete|tringDrop|tringEndsQ|tringExpression|tringExtract|tringForm|tringFormat|tringFormatQ|tringFreeQ|tringInsert|tringJoin|tringLength|tringMatchQ|tringPadLeft|tringPadRight|tringPart|tringPartition|tringPosition|tringQ|tringRepeat|tringReplace|tringReplaceList|tringReplacePart|tringReverse|tringRiffle|tringRotateLeft|tringRotateRight|tringSkeleton|tringSplit|tringStartsQ|tringTake|tringTakeDrop|tringTemplate|tringToByteArray|tringToStream|tringTrim|tripBoxes|tructuralImportance|truveH|truveL|tudentTDistribution|tyle|tyleBox|tyleData|ubMinus|ubPlus|ubStar|ubValues|ubdivide|ubfactorial|ubgraph|ubresultantPolynomialRemainders|ubresultantPolynomials|ubresultants|ubscript|ubscriptBox|ubsequences|ubset|ubsetEqual|ubsetMap|ubsetQ|ubsets|ubstitutionSystem|ubsuperscript|ubsuperscriptBox|ubtract|ubtractFrom|ubtractSides|ucceeds|ucceedsEqual|ucceedsSlantEqual|ucceedsTilde|uccess|uchThat|um|umConvergence|unPosition|unrise|unset|uperDagger|uperMinus|uperPlus|uperStar|upernovaData|uperscript|uperscriptBox|uperset|upersetEqual|urd|urfaceArea|urfaceData|urvivalDistribution|urvivalFunction|urvivalModel|urvivalModelFit|uzukiDistribution|uzukiGroupSuz|watchLegend|witch|ymbol|ymbolName|ymletWavelet|ymmetric|ymmetricGroup|ymmetricKey|ymmetricMatrixQ|ymmetricPolynomial|ymmetricReduction|ymmetrize|ymmetrizedArray|ymmetrizedArrayRules|ymmetrizedDependentComponents|ymmetrizedIndependentComponents|ymmetrizedReplacePart|ynonyms|yntaxInformation|yntaxLength|yntaxPacket|yntaxQ|ystemDialogInput|ystemInformation|ystemOpen|ystemOptions|ystemProcessData|ystemProcesses|ystemsConnectionsModel|ystemsModelControllerData|ystemsModelDelay|ystemsModelDelayApproximate|ystemsModelDelete|ystemsModelDimensions|ystemsModelExtract|ystemsModelFeedbackConnect|ystemsModelLinearity|ystemsModelMerge|ystemsModelOrder|ystemsModelParallelConnect|ystemsModelSeriesConnect|ystemsModelStateFeedbackConnect|ystemsModelVectorRelativeOrders))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"(?:T(?:Test|abView|able|ableForm|agBox|agSet|agSetDelayed|agUnset|ake|akeDrop|akeLargest|akeLargestBy|akeList|akeSmallest|akeSmallestBy|akeWhile|ally|an|anh|askAbort|askExecute|askObject|askRemove|askResume|askSuspend|askWait|asks|autologyQ|eXForm|elegraphProcess|emplateApply|emplateBox|emplateExpression|emplateIf|emplateObject|emplateSequence|emplateSlot|emplateWith|emporalData|ensorContract|ensorDimensions|ensorExpand|ensorProduct|ensorRank|ensorReduce|ensorSymmetry|ensorTranspose|ensorWedge|erminatedEvaluation|estReport|estReportObject|estResultObject|etrahedron|ext|extCell|extData|extGrid|extPacket|extRecognize|extSentences|extString|extTranslation|extWords|exture|herefore|hermodynamicData|hermometerGauge|hickness|hinning|hompsonGroupTh|hread|hreeJSymbol|hreshold|hrough|hrow|hueMorse|humbnail|ideData|ilde|ildeEqual|ildeFullEqual|ildeTilde|imeConstrained|imeObject|imeObjectQ|imeRemaining|imeSeries|imeSeriesAggregate|imeSeriesForecast|imeSeriesInsert|imeSeriesInvertibility|imeSeriesMap|imeSeriesMapThread|imeSeriesModel|imeSeriesModelFit|imeSeriesResample|imeSeriesRescale|imeSeriesShift|imeSeriesThread|imeSeriesWindow|imeSystemConvert|imeUsed|imeValue|imeZoneConvert|imeZoneOffset|imelinePlot|imes|imesBy|iming|itsGroupT|oBoxes|oCharacterCode|oContinuousTimeModel|oDiscreteTimeModel|oEntity|oExpression|oInvertibleTimeSeries|oLowerCase|oNumberField|oPolarCoordinates|oRadicals|oRules|oSphericalCoordinates|oString|oUpperCase|oeplitzMatrix|ogether|oggler|ogglerBar|ooltip|oonShading|opHatTransform|opologicalSort|orus|orusGraph|otal|otalVariationFilter|ouchPosition|r|race|raceDialog|racePrint|raceScan|racyWidomDistribution|radingChart|raditionalForm|ransferFunctionCancel|ransferFunctionExpand|ransferFunctionFactor|ransferFunctionModel|ransferFunctionPoles|ransferFunctionTransform|ransferFunctionZeros|ransformationFunction|ransformationMatrix|ransformedDistribution|ransformedField|ransformedProcess|ransformedRegion|ransitiveClosureGraph|ransitiveReductionGraph|ranslate|ranslationTransform|ransliterate|ranspose|ravelDirections|ravelDirectionsData|ravelDistance|ravelDistanceList|ravelTime|reeForm|reeGraph|reeGraphQ|reePlot|riangle|riangleWave|riangularDistribution|riangulateMesh|rigExpand|rigFactor|rigFactorList|rigReduce|rigToExp|rigger|rimmedMean|rimmedVariance|ropicalStormData|rueQ|runcatedDistribution|runcatedPolyhedron|sallisQExponentialDistribution|sallisQGaussianDistribution|ube|ukeyLambdaDistribution|ukeyWindow|unnelData|uples|uranGraph|uringMachine|uttePolynomial|woWayRule|ypeHint))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"(?:U(?:RL|RLBuild|RLDecode|RLDispatcher|RLDownload|RLEncode|RLExecute|RLExpand|RLParse|RLQueryDecode|RLQueryEncode|RLRead|RLResponseTime|RLShorten|RLSubmit|nateQ|ncompress|nderBar|nderflow|nderoverscript|nderoverscriptBox|nderscript|nderscriptBox|nderseaFeatureData|ndirectedEdge|ndirectedGraph|ndirectedGraphQ|nequal|nequalTo|nevaluated|niformDistribution|niformGraphDistribution|niformPolyhedron|niformSumDistribution|ninstall|nion|nionPlus|nique|nitBox|nitConvert|nitDimensions|nitRootTest|nitSimplify|nitStep|nitTriangle|nitVector|nitaryMatrixQ|nitize|niverseModelData|niversityData|nixTime|nprotect|nsameQ|nset|nsetShared|ntil|pArrow|pArrowBar|pArrowDownArrow|pDownArrow|pEquilibrium|pSet|pSetDelayed|pTee|pTeeArrow|pTo|pValues|pdate|pperCaseQ|pperLeftArrow|pperRightArrow|pperTriangularMatrix|pperTriangularMatrixQ|pperTriangularize|psample|singFrontEnd))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"(?:V(?:alueQ|alues|ariables|ariance|arianceEquivalenceTest|arianceGammaDistribution|arianceTest|ectorAngle|ectorDensityPlot|ectorDisplacementPlot|ectorDisplacementPlot3D|ectorGreater|ectorGreaterEqual|ectorLess|ectorLessEqual|ectorPlot|ectorPlot3D|ectorQ|ectors|ee|erbatim|erificationTest|ertexAdd|ertexChromaticNumber|ertexComponent|ertexConnectivity|ertexContract|ertexCorrelationSimilarity|ertexCosineSimilarity|ertexCount|ertexCoverQ|ertexDegree|ertexDelete|ertexDiceSimilarity|ertexEccentricity|ertexInComponent|ertexInComponentGraph|ertexInDegree|ertexIndex|ertexJaccardSimilarity|ertexList|ertexOutComponent|ertexOutComponentGraph|ertexOutDegree|ertexQ|ertexReplace|ertexTransitiveGraphQ|ertexWeightedGraphQ|erticalBar|erticalGauge|erticalSeparator|erticalSlider|erticalTilde|oiceStyleData|oigtDistribution|olcanoData|olume|onMisesDistribution|oronoiMesh))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"(?:W(?:aitAll|aitNext|akebyDistribution|alleniusHypergeometricDistribution|aringYuleDistribution|arpingCorrespondence|arpingDistance|atershedComponents|atsonUSquareTest|attsStrogatzGraphDistribution|avePDEComponent|aveletBestBasis|aveletFilterCoefficients|aveletImagePlot|aveletListPlot|aveletMapIndexed|aveletMatrixPlot|aveletPhi|aveletPsi|aveletScalogram|aveletThreshold|eakStationarity|eaklyConnectedComponents|eaklyConnectedGraphComponents|eaklyConnectedGraphQ|eatherData|eatherForecastData|eberE|edge|eibullDistribution|eierstrassE1|eierstrassE2|eierstrassE3|eierstrassEta1|eierstrassEta2|eierstrassEta3|eierstrassHalfPeriodW1|eierstrassHalfPeriodW2|eierstrassHalfPeriodW3|eierstrassHalfPeriods|eierstrassInvariantG2|eierstrassInvariantG3|eierstrassInvariants|eierstrassP|eierstrassPPrime|eierstrassSigma|eierstrassZeta|eightedAdjacencyGraph|eightedAdjacencyMatrix|eightedData|eightedGraphQ|elchWindow|heelGraph|henEvent|hich|hile|hiteNoiseProcess|hittakerM|hittakerW|ienerFilter|ienerProcess|ignerD|ignerSemicircleDistribution|ikipediaData|ilksW|ilksWTest|indDirectionData|indSpeedData|indVectorData|indingCount|indingPolygon|insorizedMean|insorizedVariance|ishartMatrixDistribution|ith|olframAlpha|olframLanguageData|ordCloud|ordCount|ordCounts|ordData|ordDefinition|ordFrequency|ordFrequencyData|ordList|ordStem|ordTranslation|rite|riteLine|riteString|ronskian))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"(?:X(?:MLElement|MLObject|MLTemplate|YZColor|nor|or))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"(?:Y(?:uleDissimilarity))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"(?:Z(?:IPCodeData|Test|Transform|ernikeR|eroSymmetric|eta|etaZero|ipfDistribution))(?![`$[:alnum:]])\",\"name\":\"support.function.builtin.wolfram\"},{\"match\":\"(?:A(?:cceptanceThreshold|ccuracyGoal|ctiveStyle|ddOnHelpPath|djustmentBoxOptions|lignment|lignmentPoint|llowGroupClose|llowInlineCells|llowLooseGrammar|llowReverseGroupClose|llowScriptLevelChange|llowVersionUpdate|llowedCloudExtraParameters|llowedCloudParameterExtensions|llowedDimensions|llowedFrequencyRange|llowedHeads|lternativeHypothesis|ltitudeMethod|mbiguityFunction|natomySkinStyle|nchoredSearch|nimationDirection|nimationRate|nimationRepetitions|nimationRunTime|nimationRunning|nimationTimeIndex|nnotationRules|ntialiasing|ppearance|ppearanceElements|ppearanceRules|spectRatio|ssociationFormat|ssumptions|synchronous|ttachedCell|udioChannelAssignment|udioEncoding|udioInputDevice|udioLabel|udioOutputDevice|uthentication|utoAction|utoCopy|utoDelete|utoGeneratedPackage|utoIndent|utoItalicWords|utoMultiplicationSymbol|utoOpenNotebooks|utoOpenPalettes|utoOperatorRenderings|utoRemove|utoScroll|utoSpacing|utoloadPath|utorunSequencing|xes|xesEdge|xesLabel|xesOrigin|xesStyle))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:B(?:ackground|arOrigin|arSpacing|aseStyle|aselinePosition|inaryFormat|ookmarks|ooleanStrings|oundaryStyle|oxBaselineShift|oxFormFormatTypes|oxFrame|oxMargins|oxRatios|oxStyle|oxed|ubbleScale|ubbleSizes|uttonBoxOptions|uttonData|uttonFunction|uttonMinHeight|uttonSource|yteOrdering))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:C(?:alendarType|alloutMarker|alloutStyle|aptureRunning|aseOrdering|elestialSystem|ellAutoOverwrite|ellBaseline|ellBracketOptions|ellChangeTimes|ellContext|ellDingbat|ellDingbatMargin|ellDynamicExpression|ellEditDuplicate|ellEpilog|ellEvaluationDuplicate|ellEvaluationFunction|ellEventActions|ellFrame|ellFrameColor|ellFrameLabelMargins|ellFrameLabels|ellFrameMargins|ellGrouping|ellGroupingRules|ellHorizontalScrolling|ellID|ellLabel|ellLabelAutoDelete|ellLabelMargins|ellLabelPositioning|ellLabelStyle|ellLabelTemplate|ellMargins|ellOpen|ellProlog|ellSize|ellTags|haracterEncoding|haracterEncodingsPath|hartBaseStyle|hartElementFunction|hartElements|hartLabels|hartLayout|hartLegends|hartStyle|lassPriors|lickToCopyEnabled|lipPlanes|lipPlanesStyle|lipRange|lippingStyle|losingAutoSave|loudBase|loudObjectNameFormat|loudObjectURLType|lusterDissimilarityFunction|odeAssistOptions|olorCoverage|olorFunction|olorFunctionBinning|olorFunctionScaling|olorRules|olorSelectorSettings|olorSpace|olumnAlignments|olumnLines|olumnSpacings|olumnWidths|olumnsEqual|ombinerFunction|ommonDefaultFormatTypes|ommunityBoundaryStyle|ommunityLabels|ommunityRegionStyle|ompilationOptions|ompilationTarget|ompiled|omplexityFunction|ompressionLevel|onfidenceLevel|onfidenceRange|onfidenceTransform|onfigurationPath|onstants|ontentPadding|ontentSelectable|ontentSize|ontinuousAction|ontourLabels|ontourShading|ontourStyle|ontours|ontrolPlacement|ontrolType|ontrollerLinking|ontrollerMethod|ontrollerPath|ontrolsRendering|onversionRules|ookieFunction|oordinatesToolOptions|opyFunction|opyable|ornerNeighbors|ounterAssignments|ounterFunction|ounterIncrements|ounterStyleMenuListing|ovarianceEstimatorFunction|reateCellID|reateIntermediateDirectories|riterionFunction|ubics|urveClosed))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:D(?:ataRange|ataReversed|atasetTheme|ateFormat|ateFunction|ateGranularity|ateReduction|ateTicksFormat|ayCountConvention|efaultDuplicateCellStyle|efaultDuration|efaultElement|efaultFontProperties|efaultFormatType|efaultInlineFormatType|efaultNaturalLanguage|efaultNewCellStyle|efaultNewInlineCellStyle|efaultNotebook|efaultOptions|efaultPrintPrecision|efaultStyleDefinitions|einitialization|eletable|eleteContents|eletionWarning|elimiterAutoMatching|elimiterFlashTime|elimiterMatching|elimiters|eliveryFunction|ependentVariables|eployed|escriptorStateSpace|iacriticalPositioning|ialogProlog|ialogSymbols|igitBlock|irectedEdges|irection|iscreteVariables|ispersionEstimatorFunction|isplayAllSteps|isplayFunction|istanceFunction|istributedContexts|ithering|ividers|ockedCell|ockedCells|ynamicEvaluationTimeout|ynamicModuleValues|ynamicUpdating))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:E(?:clipseType|dgeCapacity|dgeCost|dgeLabelStyle|dgeLabels|dgeShapeFunction|dgeStyle|dgeValueRange|dgeValueSizes|dgeWeight|ditCellTagsSettings|ditable|lidedForms|nabled|pilog|pilogFunction|scapeRadius|valuatable|valuationCompletionAction|valuationElements|valuationMonitor|valuator|valuatorNames|ventLabels|xcludePods|xcludedContexts|xcludedForms|xcludedLines|xcludedPhysicalQuantities|xclusions|xclusionsStyle|xponentFunction|xponentPosition|xponentStep|xponentialFamily|xportAutoReplacements|xpressionUUID|xtension|xtentElementFunction|xtentMarkers|xtentSize|xternalDataCharacterEncoding|xternalOptions|xternalTypeSignature))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:F(?:aceGrids|aceGridsStyle|ailureAction|eatureNames|eatureTypes|eedbackSector|eedbackSectorStyle|eedbackType|ieldCompletionFunction|ieldHint|ieldHintStyle|ieldMasked|ieldSize|ileNameDialogSettings|ileNameForms|illing|illingStyle|indSettings|itRegularization|ollowRedirects|ontColor|ontFamily|ontSize|ontSlant|ontSubstitutions|ontTracking|ontVariations|ontWeight|orceVersionInstall|ormBoxOptions|ormLayoutFunction|ormProtectionMethod|ormatType|ormatTypeAutoConvert|ourierParameters|ractionBoxOptions|ractionLine|rame|rameBoxOptions|rameLabel|rameMargins|rameRate|rameStyle|rameTicks|rameTicksStyle|rontEndEventActions|unctionSpace))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:G(?:apPenalty|augeFaceElementFunction|augeFaceStyle|augeFrameElementFunction|augeFrameSize|augeFrameStyle|augeLabels|augeMarkers|augeStyle|aussianIntegers|enerateConditions|eneratedCell|eneratedDocumentBinding|eneratedParameters|eneratedQuantityMagnitudes|eneratorDescription|eneratorHistoryLength|eneratorOutputType|eoArraySize|eoBackground|eoCenter|eoGridLines|eoGridLinesStyle|eoGridRange|eoGridRangePadding|eoLabels|eoLocation|eoModel|eoProjection|eoRange|eoRangePadding|eoResolution|eoScaleBar|eoServer|eoStylingImageFunction|eoZoomLevel|radient|raphHighlight|raphHighlightStyle|raphLayerStyle|raphLayers|raphLayout|ridCreationSettings|ridDefaultElement|ridFrame|ridFrameMargins|ridLines|ridLinesStyle|roupActionBase|roupPageBreakWithin))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:H(?:eaderAlignment|eaderBackground|eaderDisplayFunction|eaderLines|eaderSize|eaderStyle|eads|elpBrowserSettings|iddenItems|olidayCalendar|yperlinkAction|yphenation))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:I(?:conRules|gnoreCase|gnoreDiacritics|gnorePunctuation|mageCaptureFunction|mageFormattingWidth|mageLabels|mageLegends|mageMargins|magePadding|magePreviewFunction|mageRegion|mageResolution|mageSize|mageSizeAction|mageSizeMultipliers|magingDevice|mportAutoReplacements|mportOptions|ncludeConstantBasis|ncludeDefinitions|ncludeDirectories|ncludeFileExtension|ncludeGeneratorTasks|ncludeInflections|ncludeMetaInformation|ncludePods|ncludeQuantities|ncludeSingularSolutions|ncludeWindowTimes|ncludedContexts|ndeterminateThreshold|nflationMethod|nheritScope|nitialSeeding|nitialization|nitializationCell|nitializationCellEvaluation|nitializationCellWarning|nputAliases|nputAssumptions|nputAutoReplacements|nsertResults|nsertionFunction|nteractive|nterleaving|nterpolationOrder|nterpolationPoints|nterpretationBoxOptions|nterpretationFunction|ntervalMarkers|ntervalMarkersStyle|nverseFunctions|temAspectRatio|temDisplayFunction|temSize|temStyle))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:J(?:oined))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:K(?:eepExistingVersion|eyCollisionFunction|eypointStrength))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:L(?:abelStyle|abelVisibility|abelingFunction|abelingSize|anguage|anguageCategory|ayerSizeFunction|eaderSize|earningRate|egendAppearance|egendFunction|egendLabel|egendLayout|egendMargins|egendMarkerSize|egendMarkers|ighting|ightingAngle|imitsPositioning|imitsPositioningTokens|ineBreakWithin|ineIndent|ineIndentMaxFraction|ineIntegralConvolutionScale|ineSpacing|inearOffsetFunction|inebreakAdjustments|inkFunction|inkProtocol|istFormat|istPickerBoxOptions|ocalizeVariables|ocatorAutoCreate|ocatorRegion|ooping))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:M(?:agnification|ailAddressValidation|ailResponseFunction|ailSettings|asking|atchLocalNames|axCellMeasure|axColorDistance|axDuration|axExtraBandwidths|axExtraConditions|axFeatureDisplacement|axFeatures|axItems|axIterations|axMixtureKernels|axOverlapFraction|axPlotPoints|axRecursion|axStepFraction|axStepSize|axSteps|emoryConstraint|enuCommandKey|enuSortingValue|enuStyle|esh|eshCellHighlight|eshCellLabel|eshCellMarker|eshCellShapeFunction|eshCellStyle|eshFunctions|eshQualityGoal|eshRefinementFunction|eshShading|eshStyle|etaInformation|ethod|inColorDistance|inIntervalSize|inPointSeparation|issingBehavior|issingDataMethod|issingDataRules|issingString|issingStyle|odal|odulus|ultiaxisArrangement|ultiedgeStyle|ultilaunchWarning|ultilineFunction|ultiselection))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:N(?:icholsGridLines|ominalVariables|onConstants|ormFunction|ormalized|ormalsFunction|otebookAutoSave|otebookBrowseDirectory|otebookConvertSettings|otebookDynamicExpression|otebookEventActions|otebookPath|otebooksMenu|otificationFunction|ullRecords|ullWords|umberFormat|umberMarks|umberMultiplier|umberPadding|umberPoint|umberSeparator|umberSigns|yquistGridLines))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:O(?:pacityFunction|pacityFunctionScaling|peratingSystem|ptionInspectorSettings|utputAutoOverwrite|utputSizeLimit|verlaps|verscriptBoxOptions|verwriteTarget))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:P(?:IDDerivativeFilter|IDFeedforward|acletSite|adding|addingSize|ageBreakAbove|ageBreakBelow|ageBreakWithin|ageFooterLines|ageFooters|ageHeaderLines|ageHeaders|ageTheme|ageWidth|alettePath|aneled|aragraphIndent|aragraphSpacing|arallelization|arameterEstimator|artBehavior|artitionGranularity|assEventsDown|assEventsUp|asteBoxFormInlineCells|ath|erformanceGoal|ermissions|haseRange|laceholderReplace|layRange|lotLabel|lotLabels|lotLayout|lotLegends|lotMarkers|lotPoints|lotRange|lotRangeClipping|lotRangePadding|lotRegion|lotStyle|lotTheme|odStates|odWidth|olarAxes|olarAxesOrigin|olarGridLines|olarTicks|oleZeroMarkers|recisionGoal|referencesPath|reprocessingRules|reserveColor|reserveImageOptions|rincipalValue|rintAction|rintPrecision|rintingCopies|rintingOptions|rintingPageRange|rintingStartingPageNumber|rintingStyleEnvironment|rintout3DPreviewer|rivateCellOptions|rivateEvaluationOptions|rivateFontOptions|rivateNotebookOptions|rivatePaths|rocessDirectory|rocessEnvironment|rocessEstimator|rogressReporting|rolog|ropagateAborts))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:Q(?:uartics))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:R(?:adicalBoxOptions|andomSeeding|asterSize|eImLabels|eImStyle|ealBlockDiagonalForm|ecognitionPrior|ecordLists|ecordSeparators|eferenceLineStyle|efreshRate|egionBoundaryStyle|egionFillingStyle|egionFunction|egionSize|egularization|enderingOptions|equiredPhysicalQuantities|esampling|esamplingMethod|esolveContextAliases|estartInterval|eturnReceiptFunction|evolutionAxis|otateLabel|otationAction|oundingRadius|owAlignments|owLines|owMinHeight|owSpacings|owsEqual|ulerUnits|untimeAttributes|untimeOptions))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:S(?:ameTest|ampleDepth|ampleRate|amplingPeriod|aveConnection|aveDefinitions|aveable|caleDivisions|caleOrigin|calePadding|caleRangeStyle|caleRanges|calingFunctions|cientificNotationThreshold|creenStyleEnvironment|criptBaselineShifts|criptLevel|criptMinSize|criptSizeMultipliers|crollPosition|crollbars|crollingOptions|ectorOrigin|ectorSpacing|electable|elfLoopStyle|eriesTermGoal|haringList|howAutoSpellCheck|howAutoStyles|howCellBracket|howCellLabel|howCellTags|howClosedCellArea|howContents|howCursorTracker|howGroupOpener|howPageBreaks|howSelection|howShortBoxForm|howSpecialCharacters|howStringCharacters|hrinkingDelay|ignPadding|ignificanceLevel|imilarityRules|ingleLetterItalics|liderBoxOptions|ortedBy|oundVolume|pacings|panAdjustments|panCharacterRounding|panLineThickness|panMaxSize|panMinSize|panSymmetric|pecificityGoal|pellingCorrection|pellingDictionaries|pellingDictionariesPath|pellingOptions|phericalRegion|plineClosed|plineDegree|plineKnots|plineWeights|qrtBoxOptions|tabilityMargins|tabilityMarginsStyle|tandardized|tartingStepSize|tateSpaceRealization|tepMonitor|trataVariables|treamColorFunction|treamColorFunctionScaling|treamMarkers|treamPoints|treamScale|treamStyle|trictInequalities|tripOnInput|tripWrapperBoxes|tructuredSelection|tyleBoxAutoDelete|tyleDefinitions|tyleHints|tyleMenuListing|tyleNameDialogSettings|tyleSheetPath|ubscriptBoxOptions|ubsuperscriptBoxOptions|ubtitleEncoding|uperscriptBoxOptions|urdForm|ynchronousInitialization|ynchronousUpdating|yntaxForm|ystemHelpPath|ystemsModelLabels))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:T(?:abFilling|abSpacings|ableAlignments|ableDepth|ableDirections|ableHeadings|ableSpacing|agBoxOptions|aggingRules|argetFunctions|argetUnits|emplateBoxOptions|emporalRegularity|estID|extAlignment|extClipboardType|extJustification|extureCoordinateFunction|extureCoordinateScaling|icks|icksStyle|imeConstraint|imeDirection|imeFormat|imeGoal|imeSystem|imeZone|okenWords|olerance|ooltipDelay|ooltipStyle|otalWidth|ouchscreenAutoZoom|ouchscreenControlPlacement|raceAbove|raceBackward|raceDepth|raceForward|raceOff|raceOn|raceOriginal|rackedSymbols|rackingFunction|raditionalFunctionNotation|ransformationClass|ransformationFunctions|ransitionDirection|ransitionDuration|ransitionEffect|ranslationOptions|ravelMethod|rendStyle|rig))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:U(?:nderoverscriptBoxOptions|nderscriptBoxOptions|ndoOptions|ndoTrackedVariables|nitSystem|nityDimensions|nsavedVariables|pdateInterval|pdatePacletSites|tilityFunction))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:V(?:alidationLength|alidationSet|alueDimensions|arianceEstimatorFunction|ectorAspectRatio|ectorColorFunction|ectorColorFunctionScaling|ectorMarkers|ectorPoints|ectorRange|ectorScaling|ectorSizes|ectorStyle|erifyConvergence|erifySecurityCertificates|erifySolutions|erifyTestAssumptions|ersionedPreferences|ertexCapacity|ertexColors|ertexCoordinates|ertexDataCoordinates|ertexLabelStyle|ertexLabels|ertexNormals|ertexShape|ertexShapeFunction|ertexSize|ertexStyle|ertexTextureCoordinates|ertexWeight|ideoEncoding|iewAngle|iewCenter|iewMatrix|iewPoint|iewProjection|iewRange|iewVector|iewVertical|isible))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:W(?:aveletScale|eights|hitePoint|indowClickSelect|indowElements|indowFloating|indowFrame|indowFrameElements|indowMargins|indowOpacity|indowSize|indowStatusArea|indowTitle|indowToolbars|ordOrientation|ordSearch|ordSelectionFunction|ordSeparators|ordSpacings|orkingPrecision|rapAround))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:Z(?:eroTest|eroWidthTimes))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:A(?:bove|fter|lgebraics|ll|nonymous|utomatic|xis))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:B(?:ack|ackward|aseline|efore|elow|lack|lue|old|ooleans|ottom|oxes|rown|yte))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:C(?:atalan|ellStyle|enter|haracter|omplexInfinity|omplexes|onstant|yan))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:D(?:ashed|efaultAxesStyle|efaultBaseStyle|efaultBoxStyle|efaultFaceGridsStyle|efaultFieldHintStyle|efaultFrameStyle|efaultFrameTicksStyle|efaultGridLinesStyle|efaultLabelStyle|efaultMenuStyle|efaultTicksStyle|efaultTooltipStyle|egree|elimiter|igitCharacter|otDashed|otted))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:E(?:|ndOfBuffer|ndOfFile|ndOfLine|ndOfString|ulerGamma|xpression))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:F(?:alse|lat|ontProperties|orward|orwardBackward|riday|ront|rontEndDynamicExpression|ull))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:G(?:eneral|laisher|oldenAngle|oldenRatio|ray|reen))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:H(?:ere|exadecimalCharacter|oldAll|oldAllComplete|oldFirst|oldRest))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:I(?:|ndeterminate|nfinity|nherited|nteger|ntegers|talic))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:K(?:hinchin))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:L(?:arge|arger|eft|etterCharacter|ightBlue|ightBrown|ightCyan|ightGray|ightGreen|ightMagenta|ightOrange|ightPink|ightPurple|ightRed|ightYellow|istable|ocked))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:M(?:achinePrecision|agenta|anual|edium|eshCellCentroid|eshCellMeasure|eshCellQuality|onday))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:N(?:HoldAll|HoldFirst|HoldRest|egativeIntegers|egativeRationals|egativeReals|oWhitespace|onNegativeIntegers|onNegativeRationals|onNegativeReals|onPositiveIntegers|onPositiveRationals|onPositiveReals|one|ow|ull|umber|umberString|umericFunction))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:O(?:neIdentity|range|rderless))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:P(?:i|ink|lain|ositiveIntegers|ositiveRationals|ositiveReals|rimes|rotected|unctuationCharacter|urple))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:R(?:ationals|eadProtected|eal|eals|ecord|ed|ight))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:S(?:aturday|equenceHold|mall|maller|panFromAbove|panFromBoth|panFromLeft|tartOfLine|tartOfString|tring|truckthrough|tub|unday))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:T(?:emporary|hick|hin|hursday|iny|oday|omorrow|op|ransparent|rue|uesday))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:U(?:ndefined|nderlined))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:W(?:ednesday|hite|hitespace|hitespaceCharacter|ord|ordBoundary|ordCharacter))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:Y(?:ellow|esterday))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:\\\\\\\\$(?:Aborted|ActivationKey|AllowDataUpdates|AllowInternet|AssertFunction|Assumptions|AudioInputDevices|AudioOutputDevices|BaseDirectory|BasePacletsDirectory|BatchInput|BatchOutput|ByteOrdering|CacheBaseDirectory|Canceled|CharacterEncoding|CharacterEncodings|CloudAccountName|CloudBase|CloudConnected|CloudCreditsAvailable|CloudEvaluation|CloudExpressionBase|CloudObjectNameFormat|CloudObjectURLType|CloudRootDirectory|CloudSymbolBase|CloudUserID|CloudUserUUID|CloudVersion|CommandLine|CompilationTarget|Context|ContextAliases|ContextPath|ControlActiveSetting|Cookies|CreationDate|CurrentLink|CurrentTask|DateStringFormat|DefaultAudioInputDevice|DefaultAudioOutputDevice|DefaultFrontEnd|DefaultImagingDevice|DefaultKernels|DefaultLocalBase|DefaultLocalKernel|Display|DisplayFunction|DistributedContexts|DynamicEvaluation|Echo|EmbedCodeEnvironments|EmbeddableServices|Epilog|EvaluationCloudBase|EvaluationCloudObject|EvaluationEnvironment|ExportFormats|Failed|FontFamilies|FrontEnd|FrontEndSession|GeoLocation|GeoLocationCity|GeoLocationCountry|GeoLocationSource|HomeDirectory|IgnoreEOF|ImageFormattingWidth|ImageResolution|ImagingDevice|ImagingDevices|ImportFormats|InitialDirectory|Input|InputFileName|InputStreamMethods|Inspector|InstallationDirectory|InterpreterTypes|IterationLimit|KernelCount|KernelID|Language|LibraryPath|LicenseExpirationDate|LicenseID|LicenseServer|Linked|LocalBase|LocalSymbolBase|MachineAddresses|MachineDomains|MachineEpsilon|MachineID|MachineName|MachinePrecision|MachineType|MaxExtraPrecision|MaxMachineNumber|MaxNumber|MaxPiecewiseCases|MaxPrecision|MaxRootDegree|MessageGroups|MessageList|MessagePrePrint|Messages|MinMachineNumber|MinNumber|MinPrecision|MobilePhone|ModuleNumber|NetworkConnected|NewMessage|NewSymbol|NotebookInlineStorageLimit|Notebooks|NumberMarks|OperatingSystem|Output|OutputSizeLimit|OutputStreamMethods|Packages|ParentLink|ParentProcessID|PasswordFile|Path|PathnameSeparator|PerformanceGoal|Permissions|PlotTheme|Printout3DPreviewer|ProcessID|ProcessorCount|ProcessorType|ProgressReporting|RandomGeneratorState|RecursionLimit|ReleaseNumber|RequesterAddress|RequesterCloudUserID|RequesterCloudUserUUID|RequesterWolframID|RequesterWolframUUID|RootDirectory|ScriptCommandLine|ScriptInputString|Services|SessionID|SharedFunctions|SharedVariables|SoundDisplayFunction|SynchronousEvaluation|System|SystemCharacterEncoding|SystemID|SystemShell|SystemTimeZone|SystemWordLength|TemplatePath|TemporaryDirectory|TimeUnit|TimeZone|TimeZoneEntity|TimedOut|UnitSystem|Urgent|UserAgentString|UserBaseDirectory|UserBasePacletsDirectory|UserDocumentsDirectory|UserURLBase|Username|Version|VersionNumber|WolframDocumentsDirectory|WolframID|WolframUUID))(?![`$[:alnum:]])\",\"name\":\"constant.language.wolfram\"},{\"match\":\"(?:A(?:bortScheduledTask|ctive|lgebraicRules|lternateImage|natomyForm|nimationCycleOffset|nimationCycleRepetitions|nimationDisplayTime|spectRatioFixed|stronomicalData|synchronousTaskObject|synchronousTasks|udioDevice|udioLooping))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"(?:B(?:uttonEvaluator|uttonExpandable|uttonFrame|uttonMargins|uttonNote|uttonStyle))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"(?:C(?:DFInformation|hebyshevDistance|lassifierInformation|lipFill|olorOutput|olumnForm|ompose|onstantArrayLayer|onstantPlusLayer|onstantTimesLayer|onstrainedMax|onstrainedMin|ontourGraphics|ontourLines|onversionOptions|reateScheduledTask|reateTemporary|urry))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"(?:D(?:atabinRemove|ate|ebug|efaultColor|efaultFont|ensityGraphics|isplay|isplayString|otPlusLayer|ragAndDrop))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"(?:E(?:dgeLabeling|dgeRenderingFunction|valuateScheduledTask|xpectedValue))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"(?:F(?:actorComplete|ontForm|ormTheme|romDate|ullOptions))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"(?:G(?:raphStyle|raphicsArray|raphicsSpacing|ridBaseline))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"(?:H(?:TMLSave|eldPart|iddenSurface|omeDirectory))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"(?:I(?:mageRotated|nstanceNormalizationLayer))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"(?:L(?:UBackSubstitution|egendreType|ightSources|inearProgramming|inkOpen|iteral|ongestMatch))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"(?:M(?:eshRange|oleculeEquivalentQ))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"(?:N(?:etInformation|etSharedArray|extScheduledTaskTime|otebookCreate))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"(?:O(?:penTemporary))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"(?:P(?:IDData|ackingMethod|ersistentValue|ixelConstrained|lot3Matrix|lotDivision|lotJoined|olygonIntersections|redictorInformation|roperties|roperty|ropertyList|ropertyValue))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"(?:R(?:andom|asterArray|ecognitionThreshold|elease|emoteKernelObject|emoveAsynchronousTask|emoveProperty|emoveScheduledTask|enderAll|eplaceHeldPart|esetScheduledTask|esumePacket|unScheduledTask))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"(?:S(?:cheduledTaskActiveQ|cheduledTaskInformation|cheduledTaskObject|cheduledTasks|creenRectangle|electionAnimate|equenceAttentionLayer|equenceForm|etProperty|hading|hortestMatch|ingularValues|kinStyle|ocialMediaData|tartAsynchronousTask|tartScheduledTask|tateDimensions|topAsynchronousTask|topScheduledTask|tructuredArray|tyleForm|tylePrint|ubscripted|urfaceColor|urfaceGraphics|uspendPacket|ystemModelProgressReporting))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"(?:T(?:eXSave|extStyle|imeWarpingCorrespondence|imeWarpingDistance|oDate|oFileName|oHeldExpression))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"(?:U(?:RLFetch|RLFetchAsynchronous|RLSave|RLSaveAsynchronous))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"(?:V(?:ectorScale|ertexCoordinateRules|ertexLabeling|ertexRenderingFunction))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"(?:W(?:aitAsynchronousTask|indowMovable))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"(?:\\\\\\\\$(?:AsynchronousTask|ConfiguredKernels|DefaultFont|EntityStores|FormatType|HTTPCookies|InstallationDate|MachineDomain|ProductInformation|ProgramName|RandomState|ScheduledTask|SummaryBoxDataSizeLimit|TemporaryPrefix|TextStyle|TopDirectory|UserAddOnsDirectory))(?![`$[:alnum:]])\",\"name\":\"invalid.deprecated.wolfram\"},{\"match\":\"(?:A(?:ctionDelay|ctionMenuBox|ctionMenuBoxOptions|ctiveItem|lgebraicRulesData|lignmentMarker|llowAdultContent|llowChatServices|llowIncomplete|nalytic|nimatorBox|nimatorBoxOptions|nimatorElements|ppendCheck|rgumentCountQ|rrow3DBox|rrowBox|uthenticate|utoEvaluateEvents|utoIndentSpacings|utoMatch|utoNumberFormatting|utoQuoteCharacters|utoScaling|utoStyleOptions|utoStyleWords|utomaticImageSize|xis3DBox|xis3DBoxOptions|xisBox|xisBoxOptions))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"(?:B(?:SplineCurve3DBox|SplineCurve3DBoxOptions|SplineCurveBox|SplineCurveBoxOptions|SplineSurface3DBox|SplineSurface3DBoxOptions|ackFaceColor|ackFaceGlowColor|ackFaceOpacity|ackFaceSpecularColor|ackFaceSpecularExponent|ackFaceSurfaceAppearance|ackFaceTexture|ackgroundAppearance|ackgroundTasksSettings|acksubstitution|eveled|ezierCurve3DBox|ezierCurve3DBoxOptions|ezierCurveBox|ezierCurveBoxOptions|lankForm|ounds|ox|oxDimensions|oxForm|oxID|oxRotation|oxRotationPoint|ra|raKet|rowserCategory|uttonCell|uttonContents|uttonStyleMenuListing))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"(?:C(?:acheGraphics|achedValue|ardinalBSplineBasis|ellBoundingBox|ellContents|ellElementSpacings|ellElementsBoundingBox|ellFrameStyle|ellInsertionPointCell|ellTrayPosition|ellTrayWidgets|hangeOptions|hannelDatabin|hannelListenerWait|hannelPreSendFunction|hartElementData|hartElementDataFunction|heckAll|heckboxBox|heckboxBoxOptions|ircleBox|lipboardNotebook|lockwiseContourIntegral|losed|losingEvent|loudConnections|loudObjectInformation|loudObjectInformationData|loudUserID|oarse|oefficientDomain|olonForm|olorSetterBox|olorSetterBoxOptions|olumnBackgrounds|ompilerEnvironmentAppend|ompletionsListPacket|omponentwiseContextMenu|ompressedData|oneBox|onicHullRegion3DBox|onicHullRegion3DBoxOptions|onicHullRegionBox|onicHullRegionBoxOptions|onnect|ontentsBoundingBox|ontextMenu|ontinuation|ontourIntegral|ontourSmoothing|ontrolAlignment|ontrollerDuration|ontrollerInformationData|onvertToPostScript|onvertToPostScriptPacket|ookies|opyTag|ounterBox|ounterBoxOptions|ounterClockwiseContourIntegral|ounterEvaluator|ounterStyle|uboidBox|uboidBoxOptions|urlyDoubleQuote|urlyQuote|ylinderBox|ylinderBoxOptions))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"(?:D(?:OSTextFormat|ampingFactor|ataCompression|atasetDisplayPanel|ateDelimiters|ebugTag|ecimal|efault2DTool|efault3DTool|efaultAttachedCellStyle|efaultControlPlacement|efaultDockedCellStyle|efaultInputFormatType|efaultOutputFormatType|efaultStyle|efaultTextFormatType|efaultTextInlineFormatType|efaultValue|efineExternal|egreeLexicographic|egreeReverseLexicographic|eleteWithContents|elimitedArray|estroyAfterEvaluation|eviceOpenQ|ialogIndent|ialogLevel|ifferenceOrder|igitBlockMinimum|isableConsolePrintPacket|iskBox|iskBoxOptions|ispatchQ|isplayRules|isplayTemporary|istributionDomain|ivergence|ocumentGeneratorInformationData|omainRegistrationInformation|oubleContourIntegral|oublyInfinite|own|rawBackFaces|rawFrontFaces|rawHighlighted|ualLinearProgramming|umpGet|ynamicBox|ynamicBoxOptions|ynamicLocation|ynamicModuleBox|ynamicModuleBoxOptions|ynamicModuleParent|ynamicName|ynamicNamespace|ynamicReference|ynamicWrapperBox|ynamicWrapperBoxOptions))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"(?:E(?:ditButtonSettings|liminationOrder|llipticReducedHalfPeriods|mbeddingObject|mphasizeSyntaxErrors|mpty|nableConsolePrintPacket|ndAdd|ngineEnvironment|nter|qualColumns|qualRows|quatedTo|rrorBoxOptions|rrorNorm|rrorPacket|rrorsDialogSettings|valuated|valuationMode|valuationOrder|valuationRateLimit|ventEvaluator|ventHandlerTag|xactRootIsolation|xitDialog|xpectationE|xportPacket|xpressionPacket|xternalCall|xternalFunctionName))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"(?:F(?:EDisableConsolePrintPacket|EEnableConsolePrintPacket|ail|ileInformation|ileName|illForm|illedCurveBox|illedCurveBoxOptions|ine|itAll|lashSelection|ont|ontName|ontOpacity|ontPostScriptName|ontReencoding|ormatRules|ormatValues|rameInset|rameless|rontEndObject|rontEndResource|rontEndResourceString|rontEndStackSize|rontEndValueCache|rontEndVersion|rontFaceColor|rontFaceGlowColor|rontFaceOpacity|rontFaceSpecularColor|rontFaceSpecularExponent|rontFaceSurfaceAppearance|rontFaceTexture|ullAxes))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"(?:G(?:eneratedCellStyles|eneric|eometricTransformation3DBox|eometricTransformation3DBoxOptions|eometricTransformationBox|eometricTransformationBoxOptions|estureHandlerTag|etContext|etFileName|etLinebreakInformationPacket|lobalPreferences|lobalSession|raphLayerLabels|raphRoot|raphics3DBox|raphics3DBoxOptions|raphicsBaseline|raphicsBox|raphicsBoxOptions|raphicsComplex3DBox|raphicsComplex3DBoxOptions|raphicsComplexBox|raphicsComplexBoxOptions|raphicsContents|raphicsData|raphicsGridBox|raphicsGroup3DBox|raphicsGroup3DBoxOptions|raphicsGroupBox|raphicsGroupBoxOptions|raphicsGrouping|raphicsStyle|reekStyle|ridBoxAlignment|ridBoxBackground|ridBoxDividers|ridBoxFrame|ridBoxItemSize|ridBoxItemStyle|ridBoxOptions|ridBoxSpacings|ridElementStyleOptions|roupOpenerColor|roupOpenerInsideFrame|roupTogetherGrouping|roupTogetherNestedGrouping))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"(?:H(?:eadCompose|eaders|elpBrowserLookup|elpBrowserNotebook|elpViewerSettings|essian|exahedronBox|exahedronBoxOptions|ighlightString|omePage|orizontal|orizontalForm|orizontalScrollPosition|yperlinkCreationSettings|yphenationOptions))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"(?:I(?:conizedObject|gnoreSpellCheck|mageCache|mageCacheValid|mageEditMode|mageMarkers|mageOffset|mageRangeCache|mageSizeCache|mageSizeRaw|nactiveStyle|ncludeSingularTerm|ndent|ndentMaxFraction|ndentingNewlineSpacings|ndexCreationOptions|ndexTag|nequality|nexactNumbers|nformationData|nformationDataGrid|nlineCounterAssignments|nlineCounterIncrements|nlineRules|nputFieldBox|nputFieldBoxOptions|nputGrouping|nputSettings|nputToBoxFormPacket|nsertionPointObject|nset3DBox|nset3DBoxOptions|nsetBox|nsetBoxOptions|ntegral|nterlaced|nterpolationPrecision|nterpretTemplate|nterruptSettings|nto|nvisibleApplication|nvisibleTimes|temBox|temBoxOptions))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"(?:J(?:acobian|oinedCurveBox|oinedCurveBoxOptions))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"(?:K(?:|ernelExecute|et))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"(?:L(?:abeledSlider|ambertW|anguageOptions|aunch|ayoutInformation|exicographic|icenseID|ine3DBox|ine3DBoxOptions|ineBox|ineBoxOptions|ineBreak|ineWrapParts|inearFilter|inebreakSemicolonWeighting|inkConnectedQ|inkError|inkFlush|inkHost|inkMode|inkOptions|inkReadHeld|inkService|inkWriteHeld|istPickerBoxBackground|isten|iteralSearch|ocalizeDefinitions|ocatorBox|ocatorBoxOptions|ocatorCentering|ocatorPaneBox|ocatorPaneBoxOptions|ongEqual|ongForm|oopback))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"(?:M(?:achineID|achineName|acintoshSystemPageSetup|ainSolve|aintainDynamicCaches|akeRules|atchLocalNameQ|aterial|athMLText|athematicaNotation|axBend|axPoints|enu|enuAppearance|enuEvaluator|enuItem|enuList|ergeDifferences|essageObject|essageOptions|essagesNotebook|etaCharacters|ethodOptions|inRecursion|inSize|ode|odular|onomialOrder|ouseAppearanceTag|ouseButtons|ousePointerNote|ultiLetterItalics|ultiLetterStyle|ultiplicity|ultiscriptBoxOptions))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"(?:N(?:BernoulliB|ProductFactors|SumTerms|Values|amespaceBox|amespaceBoxOptions|estedScriptRules|etworkPacketRecordingDuring|ext|onAssociative|ormalGrouping|otebookDefault|otebookInterfaceObject))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"(?:O(?:LEData|bjectExistsQ|pen|penFunctionInspectorPacket|penSpecialOptions|penerBox|penerBoxOptions|ptionQ|ptionValueBox|ptionValueBoxOptions|ptionsPacket|utputFormData|utputGrouping|utputMathEditExpression|ver|verlayBox|verlayBoxOptions))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"(?:P(?:ackPaclet|ackage|acletDirectoryAdd|acletDirectoryRemove|acletInformation|acletObjectQ|acletUpdate|ageHeight|alettesMenuSettings|aneBox|aneBoxOptions|aneSelectorBox|aneSelectorBoxOptions|anelBox|anelBoxOptions|aperWidth|arameter|arameterVariables|arentConnect|arentForm|arentList|arenthesize|artialD|asteAutoQuoteCharacters|ausedTime|eriodicInterpolation|erpendicular|ickMode|ickedElements|ivoting|lotRangeClipPlanesStyle|oint3DBox|oint3DBoxOptions|ointBox|ointBoxOptions|olygon3DBox|olygon3DBoxOptions|olygonBox|olygonBoxOptions|olygonHoleScale|olygonScale|olyhedronBox|olyhedronBoxOptions|olynomialForm|olynomials|opupMenuBox|opupMenuBoxOptions|ostScript|recedence|redictionRoot|referencesSettings|revious|rimaryPlaceholder|rintForm|rismBox|rismBoxOptions|rivateFrontEndOptions|robabilityPr|rocessStateDomain|rocessTimeDomain|rogressIndicatorBox|rogressIndicatorBoxOptions|romptForm|yramidBox|yramidBoxOptions))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"(?:R(?:adioButtonBox|adioButtonBoxOptions|andomSeed|angeSpecification|aster3DBox|aster3DBoxOptions|asterBox|asterBoxOptions|ationalFunctions|awArray|awMedium|ebuildPacletData|ectangleBox|ecurringDigitsForm|eferenceMarkerStyle|eferenceMarkers|einstall|emoved|epeatedString|esourceAcquire|esourceSubmissionObject|eturnCreatesNewCell|eturnEntersInput|eturnInputFormPacket|otationBox|otationBoxOptions|oundImplies|owBackgrounds|owHeights|uleCondition|uleForm))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"(?:S(?:aveAutoDelete|caledMousePosition|cheduledTaskInformationData|criptForm|criptRules|ectionGrouping|electWithContents|election|electionCell|electionCellCreateCell|electionCellDefaultStyle|electionCellParentStyle|electionPlaceholder|elfLoops|erviceResponse|etOptionsPacket|etSecuredAuthenticationKey|etbacks|etterBox|etterBoxOptions|howAutoConvert|howCodeAssist|howControls|howGroupOpenCloseIcon|howInvisibleCharacters|howPredictiveInterface|howSyntaxStyles|hrinkWrapBoundingBox|ingleEvaluation|ingleLetterStyle|lider2DBox|lider2DBoxOptions|ocket|olveDelayed|oundAndGraphics|pace|paceForm|panningCharacters|phereBox|phereBoxOptions|tartupSound|tringBreak|tringByteCount|tripStyleOnPaste|trokeForm|tructuredArrayHeadQ|tyleKeyMapping|tyleNames|urfaceAppearance|yntax|ystemException|ystemGet|ystemInformationData|ystemStub|ystemTest))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"(?:T(?:ab|abViewBox|abViewBoxOptions|ableViewBox|ableViewBoxAlignment|ableViewBoxBackground|ableViewBoxHeaders|ableViewBoxItemSize|ableViewBoxItemStyle|ableViewBoxOptions|agBoxNote|agStyle|emplateEvaluate|emplateSlotSequence|emplateUnevaluated|emplateVerbatim|emporaryVariable|ensorQ|etrahedronBox|etrahedronBoxOptions|ext3DBox|ext3DBoxOptions|extBand|extBoundingBox|extBox|extForm|extLine|extParagraph|hisLink|itleGrouping|oColor|oggle|oggleFalse|ogglerBox|ogglerBoxOptions|ooBig|ooltipBox|ooltipBoxOptions|otalHeight|raceAction|raceInternal|raceLevel|rackCellChangeTimes|raditionalNotation|raditionalOrder|ransparentColor|rapEnterKey|rapSelection|ubeBSplineCurveBox|ubeBSplineCurveBoxOptions|ubeBezierCurveBox|ubeBezierCurveBoxOptions|ubeBox|ubeBoxOptions))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"(?:U(?:ntrackedVariables|p|seGraphicsRange|serDefinedWavelet|sing))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"(?:V(?:2Get|alueBox|alueBoxOptions|alueForm|aluesData|ectorGlyphData|erbose|ertical|erticalForm|iewPointSelectorSettings|iewPort|irtualGroupData|isibleCell))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"(?:W(?:aitUntil|ebPageMetaInformation|holeCellGroupOpener|indowPersistentStyles|indowSelected|indowWidth|olframAlphaDate|olframAlphaQuantity|olframAlphaResult|olframCloudSettings))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"(?:\\\\\\\\$(?:ActivationGroupID|ActivationUserRegistered|AddOnsDirectory|BoxForms|CloudConnection|CloudVersionNumber|CloudWolframEngineVersionNumber|ConditionHold|DefaultMailbox|DefaultPath|FinancialDataSource|GeoEntityTypes|GeoLocationPrecision|HTMLExportRules|HTTPRequest|LaunchDirectory|LicenseProcesses|LicenseSubprocesses|LicenseType|LinkSupported|LoadedFiles|MaxLicenseProcesses|MaxLicenseSubprocesses|MinorReleaseNumber|NetworkLicense|Off|OutputForms|PatchLevelID|PermissionsGroupBase|PipeSupported|PreferencesDirectory|PrintForms|PrintLiteral|RegisteredDeviceClasses|RegisteredUserName|SecuredAuthenticationKeyTokens|SetParentLink|SoundDisplay|SuppressInputFormHeads|SystemMemory|TraceOff|TraceOn|TracePattern|TracePostAction|TracePreAction|UserAgentLanguages|UserAgentMachine|UserAgentName|UserAgentOperatingSystem|UserAgentVersion|UserName))(?![`$[:alnum:]])\",\"name\":\"support.function.undocumented.wolfram\"},{\"match\":\"(?:A(?:ctiveClassification|ctiveClassificationObject|ctivePrediction|ctivePredictionObject|ddToSearchIndex|ggregatedEntityClass|ggregationLayer|ngleBisector|nimatedImage|nimationVideo|nomalyDetector|ppendLayer|pplication|pplyReaction|round|roundReplace|rrayReduce|sk|skAppend|skConfirm|skDisplay|skFunction|skState|skTemplateDisplay|skedQ|skedValue|ssessmentFunction|ssessmentResultObject|ssumeDeterministic|stroAngularSeparation|stroBackground|stroCenter|stroDistance|stroGraphics|stroGridLines|stroGridLinesStyle|stroPosition|stroProjection|stroRange|stroRangePadding|stroReferenceFrame|stroStyling|stroZoomLevel|tom|tomCoordinates|tomCount|tomDiagramCoordinates|tomLabelStyle|tomLabels|tomList|ttachCell|ttentionLayer|udioAnnotate|udioAnnotationLookup|udioIdentify|udioInstanceQ|udioPause|udioPlay|udioRecord|udioStop|udioStream|udioStreams|udioTrackApply|udioTrackSelection|utocomplete|utocompletionFunction|xiomaticTheory|xisLabel|xisObject|xisStyle))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"(?:B(?:asicRecurrentLayer|atchNormalizationLayer|atchSize|ayesianMaximization|ayesianMaximizationObject|ayesianMinimization|ayesianMinimizationObject|esagL|innedVariogramList|inomialPointProcess|ioSequence|ioSequenceBackTranslateList|ioSequenceComplement|ioSequenceInstances|ioSequenceModify|ioSequencePlot|ioSequenceQ|ioSequenceReverseComplement|ioSequenceTranscribe|ioSequenceTranslate|itRate|lockDiagonalMatrix|lockLowerTriangularMatrix|lockUpperTriangularMatrix|lockchainAddressData|lockchainBase|lockchainBlockData|lockchainContractValue|lockchainData|lockchainGet|lockchainKeyEncode|lockchainPut|lockchainTokenData|lockchainTransaction|lockchainTransactionData|lockchainTransactionSign|lockchainTransactionSubmit|ond|ondCount|ondLabelStyle|ondLabels|ondList|ondQ|uildCompiledComponent))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"(?:C(?:TCLossLayer|achePersistence|anvas|ast|ategoricalDistribution|atenateLayer|auchyPointProcess|hannelBase|hannelBrokerAction|hannelHistoryLength|hannelListen|hannelListener|hannelListeners|hannelObject|hannelReceiverFunction|hannelSend|hannelSubscribers|haracterNormalize|hemicalConvert|hemicalFormula|hemicalInstance|hemicalReaction|loudExpression|loudExpressions|loudRenderingMethod|ombinatorB|ombinatorC|ombinatorI|ombinatorK|ombinatorS|ombinatorW|ombinatorY|ombinedEntityClass|ompiledCodeFunction|ompiledComponent|ompiledExpressionDeclaration|ompiledLayer|ompilerCallback|ompilerEnvironment|ompilerEnvironmentAppendTo|ompilerEnvironmentObject|ompilerOptions|omplementedEntityClass|omputeUncertainty|onfirmQuiet|onformationMethod|onnectSystemModelComponents|onnectSystemModelController|onnectedMoleculeComponents|onnectedMoleculeQ|onnectionSettings|ontaining|ontentDetectorFunction|ontentFieldOptions|ontentLocationFunction|ontentObject|ontrastiveLossLayer|onvolutionLayer|reateChannel|reateCloudExpression|reateCompilerEnvironment|reateDataStructure|reateDataSystemModel|reateLicenseEntitlement|reateSearchIndex|reateSystemModel|reateTypeInstance|rossEntropyLossLayer|urrentNotebookImage|urrentScreenImage|urryApplied))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"(?:D(?:SolveChangeVariables|ataStructure|ataStructureQ|atabaseConnect|atabaseDisconnect|atabaseReference|atabinSubmit|ateInterval|eclareCompiledComponent|econvolutionLayer|ecryptFile|eleteChannel|eleteCloudExpression|eleteElements|eleteSearchIndex|erivedKey|iggleGatesPointProcess|iggleGrattonPointProcess|igitalSignature|isableFormatting|ocumentWeightingRules|otLayer|ownValuesFunction|ropoutLayer|ynamicImage))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"(?:E(?:choTiming|lementwiseLayer|mbeddedSQLEntityClass|mbeddedSQLExpression|mbeddingLayer|mptySpaceF|ncryptFile|ntityFunction|ntityStore|stimatedPointProcess|stimatedVariogramModel|valuationEnvironment|valuationPrivileges|xpirationDate|xpressionTree|xtendedEntityClass|xternalEvaluate|xternalFunction|xternalIdentifier|xternalObject|xternalSessionObject|xternalSessions|xternalStorageBase|xternalStorageDownload|xternalStorageGet|xternalStorageObject|xternalStoragePut|xternalStorageUpload|xternalValue|xtractLayer))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"(?:F(?:aceRecognize|eatureDistance|eatureExtract|eatureExtraction|eatureExtractor|eatureExtractorFunction|ileConvert|ileFormatProperties|ileNameToFormatList|ileSystemTree|ilteredEntityClass|indChannels|indEquationalProof|indExternalEvaluators|indGeometricConjectures|indImageText|indIsomers|indMoleculeSubstructure|indPointProcessParameters|indSystemModelEquilibrium|indTextualAnswer|lattenLayer|orAllType|ormControl|orwardCloudCredentials|oxHReduce|rameListVideo|romRawPointer|unctionCompile|unctionCompileExport|unctionCompileExportByteArray|unctionCompileExportLibrary|unctionCompileExportString|unctionDeclaration|unctionLayer|unctionPoles))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"(?:G(?:alleryView|atedRecurrentLayer|enerateDerivedKey|enerateDigitalSignature|enerateFileSignature|enerateSecuredAuthenticationKey|eneratedAssetFormat|eneratedAssetLocation|eoGraphValuePlot|eoOrientationData|eometricAssertion|eometricScene|eometricStep|eometricStylingRules|eometricTest|ibbsPointProcess|raphTree|ridVideo))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"(?:H(?:andlerFunctions|andlerFunctionsKeys|ardcorePointProcess|istogramPointDensity))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"(?:I(?:gnoreIsotopes|gnoreStereochemistry|mageAugmentationLayer|mageBoundingBoxes|mageCases|mageContainsQ|mageContents|mageGraphics|magePosition|magePyramid|magePyramidApply|mageStitch|mportedObject|ncludeAromaticBonds|ncludeHydrogens|ncludeRelatedTables|nertEvaluate|nertExpression|nfiniteFuture|nfinitePast|nhomogeneousPoissonPointProcess|nitialEvaluationHistory|nitializationObject|nitializationObjects|nitializationValue|nitialize|nputPorts|ntegrateChangeVariables|nterfaceSwitched|ntersectedEntityClass|nverseImagePyramid))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"(?:K(?:ernelConfiguration|ernelFunction))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"(?:L(?:earningRateMultipliers|ibraryFunctionDeclaration|icenseEntitlementObject|icenseEntitlements|icensingSettings|inearLayer|iteralType|oadCompiledComponent|ocalResponseNormalizationLayer|ongShortTermMemoryLayer|ossFunction))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"(?:M(?:IMETypeToFormatList|ailExecute|ailFolder|ailItem|ailSearch|ailServerConnect|ailServerConnection|aternPointProcess|axDisplayedChildren|axTrainingRounds|axWordGap|eanAbsoluteLossLayer|eanAround|eanPointDensity|eanSquaredLossLayer|ergingFunction|idpoint|issingValuePattern|issingValueSynthesis|olecule|oleculeAlign|oleculeContainsQ|oleculeDraw|oleculeFreeQ|oleculeGraph|oleculeMatchQ|oleculeMaximumCommonSubstructure|oleculeModify|oleculeName|oleculePattern|oleculePlot|oleculePlot3D|oleculeProperty|oleculeQ|oleculeRecognize|oleculeSubstructureCount|oleculeValue))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"(?:N(?:BodySimulation|BodySimulationData|earestNeighborG|estTree|etAppend|etArray|etArrayLayer|etBidirectionalOperator|etChain|etDecoder|etDelete|etDrop|etEncoder|etEvaluationMode|etExternalObject|etExtract|etFlatten|etFoldOperator|etGANOperator|etGraph|etInitialize|etInsert|etInsertSharedArrays|etJoin|etMapOperator|etMapThreadOperator|etMeasurements|etModel|etNestOperator|etPairEmbeddingOperator|etPort|etPortGradient|etPrepend|etRename|etReplace|etReplacePart|etStateObject|etTake|etTrain|etTrainResultsObject|etUnfold|etworkPacketCapture|etworkPacketRecording|etworkPacketTrace|eymanScottPointProcess|ominalScale|ormalizationLayer|umericArray|umericArrayQ|umericArrayType))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"(?:O(?:peratorApplied|rderingLayer|rdinalScale|utputPorts|verlayVideo))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"(?:P(?:acletSymbol|addingLayer|agination|airCorrelationG|arametricRampLayer|arentEdgeLabel|arentEdgeLabelFunction|arentEdgeLabelStyle|arentEdgeShapeFunction|arentEdgeStyle|arentEdgeStyleFunction|artLayer|artProtection|atternFilling|atternReaction|enttinenPointProcess|erpendicularBisector|ersistenceLocation|ersistenceTime|ersistentObject|ersistentObjects|ersistentSymbol|itchRecognize|laceholderLayer|laybackSettings|ointCountDistribution|ointDensity|ointDensityFunction|ointProcessEstimator|ointProcessFitTest|ointProcessParameterAssumptions|ointProcessParameterQ|ointStatisticFunction|ointValuePlot|oissonPointProcess|oolingLayer|rependLayer|roofObject|ublisherID))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"(?:Q(?:uestionGenerator|uestionInterface|uestionObject|uestionSelector))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"(?:R(?:andomArrayLayer|andomInstance|andomPointConfiguration|andomTree|eactionBalance|eactionBalancedQ|ecalibrationFunction|egisterExternalEvaluator|elationalDatabase|emoteAuthorizationCaching|emoteBatchJobAbort|emoteBatchJobObject|emoteBatchJobs|emoteBatchMapSubmit|emoteBatchSubmissionEnvironment|emoteBatchSubmit|emoteConnect|emoteConnectionObject|emoteEvaluate|emoteFile|emoteInputFiles|emoteProviderSettings|emoteRun|emoteRunProcess|emovalConditions|emoveAudioStream|emoveChannelListener|emoveChannelSubscribers|emoveVideoStream|eplicateLayer|eshapeLayer|esizeLayer|esourceFunction|esourceRegister|esourceRemove|esourceSubmit|esourceSystemBase|esourceSystemPath|esourceUpdate|esourceVersion|everseApplied|ipleyK|ipleyRassonRegion|ootTree|ulesTree))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"(?:S(?:ameTestProperties|ampledEntityClass|earchAdjustment|earchIndexObject|earchIndices|earchQueryString|earchResultObject|ecuredAuthenticationKey|ecuredAuthenticationKeys|ecurityCertificate|equenceIndicesLayer|equenceLastLayer|equenceMostLayer|equencePredict|equencePredictorFunction|equenceRestLayer|equenceReverseLayer|erviceRequest|erviceSubmit|etFileFormatProperties|etSystemModel|lideShowVideo|moothPointDensity|nippet|nippetsVideo|nubPolyhedron|oftmaxLayer|olidBoundaryLoadValue|olidDisplacementCondition|olidFixedCondition|olidMechanicsPDEComponent|olidMechanicsStrain|olidMechanicsStress|ortedEntityClass|ourceLink|patialBinnedPointData|patialBoundaryCorrection|patialEstimate|patialEstimatorFunction|patialJ|patialNoiseLevel|patialObservationRegionQ|patialPointData|patialPointSelect|patialRandomnessTest|patialTransformationLayer|patialTrendFunction|peakerMatchQ|peechCases|peechInterpreter|peechRecognize|plice|tartExternalSession|tartWebSession|tereochemistryElements|traussHardcorePointProcess|traussPointProcess|ubsetCases|ubsetCount|ubsetPosition|ubsetReplace|ubtitleTrackSelection|ummationLayer|ymmetricDifference|ynthesizeMissingValues|ystemCredential|ystemCredentialData|ystemCredentialKey|ystemCredentialKeys|ystemCredentialStoreObject|ystemInstall|ystemModel|ystemModelExamples|ystemModelLinearize|ystemModelMeasurements|ystemModelParametricSimulate|ystemModelPlot|ystemModelReliability|ystemModelSimulate|ystemModelSimulateSensitivity|ystemModelSimulationData|ystemModeler|ystemModels))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"(?:T(?:ableView|argetDevice|argetSystem|ernaryListPlot|ernaryPlotCorners|extCases|extContents|extElement|extPosition|extSearch|extSearchReport|extStructure|homasPointProcess|hreaded|hreadingLayer|ickDirection|ickLabelOrientation|ickLabelPositioning|ickLabels|ickLengths|ickPositions|oRawPointer|otalLayer|ourVideo|rainImageContentDetector|rainTextContentDetector|rainingProgressCheckpointing|rainingProgressFunction|rainingProgressMeasurements|rainingProgressReporting|rainingStoppingCriterion|rainingUpdateSchedule|ransposeLayer|ree|reeCases|reeChildren|reeCount|reeData|reeDelete|reeDepth|reeElementCoordinates|reeElementLabel|reeElementLabelFunction|reeElementLabelStyle|reeElementShape|reeElementShapeFunction|reeElementSize|reeElementSizeFunction|reeElementStyle|reeElementStyleFunction|reeExpression|reeExtract|reeFold|reeInsert|reeLayout|reeLeafCount|reeLeafQ|reeLeaves|reeLevel|reeMap|reeMapAt|reeOutline|reePosition|reeQ|reeReplacePart|reeRules|reeScan|reeSelect|reeSize|reeTraversalOrder|riangleCenter|riangleConstruct|riangleMeasurement|ypeDeclaration|ypeEvaluate|ypeOf|ypeSpecifier|yped))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"(?:U(?:RLDownloadSubmit|nconstrainedParameters|nionedEntityClass|niqueElements|nitVectorLayer|nlabeledTree|nmanageObject|nregisterExternalEvaluator|pdateSearchIndex|seEmbeddedLibrary))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"(?:V(?:alenceErrorHandling|alenceFilling|aluePreprocessingFunction|andermondeMatrix|arianceGammaPointProcess|ariogramFunction|ariogramModel|ectorAround|erifyDerivedKey|erifyDigitalSignature|erifyFileSignature|erifyInterpretation|ideo|ideoCapture|ideoCombine|ideoDelete|ideoExtractFrames|ideoFrameList|ideoFrameMap|ideoGenerator|ideoInsert|ideoIntervals|ideoJoin|ideoMap|ideoMapList|ideoMapTimeSeries|ideoPadding|ideoPause|ideoPlay|ideoQ|ideoRecord|ideoReplace|ideoScreenCapture|ideoSplit|ideoStop|ideoStream|ideoStreams|ideoTimeStretch|ideoTrackSelection|ideoTranscode|ideoTransparency|ideoTrim))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"(?:W(?:ebAudioSearch|ebColumn|ebElementObject|ebExecute|ebImage|ebImageSearch|ebItem|ebRow|ebSearch|ebSessionObject|ebSessions|ebWindowObject|ikidataData|ikidataSearch|ikipediaSearch|ithCleanup|ithLock))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"(?:Z(?:oomCenter|oomFactor))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"(?:\\\\\\\\$(?:AllowExternalChannelFunctions|AudioDecoders|AudioEncoders|BlockchainBase|ChannelBase|CompilerEnvironment|CookieStore|CryptographicEllipticCurveNames|CurrentWebSession|DataStructures|DefaultNetworkInterface|DefaultProxyRules|DefaultRemoteBatchSubmissionEnvironment|DefaultRemoteKernel|DefaultSystemCredentialStore|ExternalIdentifierTypes|ExternalStorageBase|GeneratedAssetLocation|IncomingMailSettings|Initialization|InitializationContexts|MaxDisplayedChildren|NetworkInterfaces|NoValue|PersistenceBase|PersistencePath|PreInitialization|PublisherID|ResourceSystemBase|ResourceSystemPath|SSHAuthentication|ServiceCreditsAvailable|SourceLink|SubtitleDecoders|SubtitleEncoders|SystemCredentialStore|TargetSystems|TestFileName|VideoDecoders|VideoEncoders|VoiceStyles))(?![`$[:alnum:]])\",\"name\":\"support.function.experimental.wolfram\"},{\"match\":\"(?:A(?:llFalse|nyFalse))(?![`$[:alnum:]])\",\"name\":\"invalid.bad.wolfram\"},{\"match\":\"(?:B(?:oolean))(?![`$[:alnum:]])\",\"name\":\"invalid.bad.wolfram\"},{\"match\":\"(?:C(?:loudbase|omplexQ))(?![`$[:alnum:]])\",\"name\":\"invalid.bad.wolfram\"},{\"match\":\"(?:D(?:ataSet))(?![`$[:alnum:]])\",\"name\":\"invalid.bad.wolfram\"},{\"match\":\"(?:E(?:xpandFilename|xportPacket))(?![`$[:alnum:]])\",\"name\":\"invalid.bad.wolfram\"},{\"match\":\"(?:F(?:ailed|alseQ))(?![`$[:alnum:]])\",\"name\":\"invalid.bad.wolfram\"},{\"match\":\"(?:I(?:nterpolationFunction|nterpolationPolynomial))(?![`$[:alnum:]])\",\"name\":\"invalid.bad.wolfram\"},{\"match\":\"(?:M(?:atch))(?![`$[:alnum:]])\",\"name\":\"invalid.bad.wolfram\"},{\"match\":\"(?:O(?:ptionPattern|ptionsQ))(?![`$[:alnum:]])\",\"name\":\"invalid.bad.wolfram\"},{\"match\":\"(?:R(?:ationalQ|ealQ))(?![`$[:alnum:]])\",\"name\":\"invalid.bad.wolfram\"},{\"match\":\"(?:S(?:tringMatch|ymbolQ))(?![`$[:alnum:]])\",\"name\":\"invalid.bad.wolfram\"},{\"match\":\"(?:U(?:nSameQ|rlExecute))(?![`$[:alnum:]])\",\"name\":\"invalid.bad.wolfram\"},{\"match\":\"(?:\\\\\\\\$(?:PathNameSeparator|RegisteredUsername))(?![`$[:alnum:]])\",\"name\":\"invalid.bad.wolfram\"},{\"match\":\"(?:E(?:cho|xit))(?![`$[:alnum:]])\",\"name\":\"invalid.session.wolfram\"},{\"match\":\"(?:I(?:n|nString))(?![`$[:alnum:]])\",\"name\":\"invalid.session.wolfram\"},{\"match\":\"(?:O(?:ut))(?![`$[:alnum:]])\",\"name\":\"invalid.session.wolfram\"},{\"match\":\"(?:P(?:rint))(?![`$[:alnum:]])\",\"name\":\"invalid.session.wolfram\"},{\"match\":\"(?:Q(?:uit))(?![`$[:alnum:]])\",\"name\":\"invalid.session.wolfram\"},{\"match\":\"(?:\\\\\\\\$(?:HistoryLength|Line|Post|Pre|PrePrint|PreRead|SyntaxHandler))(?![`$[:alnum:]])\",\"name\":\"invalid.session.wolfram\"},{\"match\":\"(?:[$[:alpha:]][$[:alnum:]]*)(?=\\\\\\\\s*(\\\\\\\\[(?!\\\\\\\\s*\\\\\\\\[)|@(?!@)))\",\"name\":\"variable.function.wolfram\"},{\"match\":\"(?:[$[:alpha:]][$[:alnum:]]*)\",\"name\":\"symbol.unrecognized.wolfram\"}]}},\"scopeName\":\"source.wolfram\",\"aliases\":[\"wl\"]}')),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/C3khCPGq.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.background\":\"#23262E\",\"activityBar.dropBackground\":\"#3a404e\",\"activityBar.foreground\":\"#BAAFC0\",\"activityBarBadge.background\":\"#00b0ff\",\"activityBarBadge.foreground\":\"#20232B\",\"badge.background\":\"#00b0ff\",\"badge.foreground\":\"#20232B\",\"button.background\":\"#00e8c5cc\",\"button.hoverBackground\":\"#07d4b6cc\",\"debugExceptionWidget.background\":\"#FF9F2E60\",\"debugExceptionWidget.border\":\"#FF9F2E60\",\"debugToolBar.background\":\"#20232A\",\"diffEditor.insertedTextBackground\":\"#29BF1220\",\"diffEditor.removedTextBackground\":\"#F21B3F20\",\"dropdown.background\":\"#2b303b\",\"dropdown.border\":\"#363c49\",\"editor.background\":\"#23262E\",\"editor.findMatchBackground\":\"#f39d1256\",\"editor.findMatchBorder\":\"#f39d12b6\",\"editor.findMatchHighlightBackground\":\"#59b8b377\",\"editor.foreground\":\"#D5CED9\",\"editor.hoverHighlightBackground\":\"#373941\",\"editor.lineHighlightBackground\":\"#2e323d\",\"editor.lineHighlightBorder\":\"#2e323d\",\"editor.rangeHighlightBackground\":\"#372F3C\",\"editor.selectionBackground\":\"#3D4352\",\"editor.selectionHighlightBackground\":\"#4F435580\",\"editor.wordHighlightBackground\":\"#4F4355\",\"editor.wordHighlightStrongBackground\":\"#db45a280\",\"editorBracketMatch.background\":\"#746f77\",\"editorBracketMatch.border\":\"#746f77\",\"editorCodeLens.foreground\":\"#746f77\",\"editorCursor.foreground\":\"#FFF\",\"editorError.foreground\":\"#FC644D\",\"editorGroup.background\":\"#23262E\",\"editorGroup.dropBackground\":\"#495061d7\",\"editorGroupHeader.tabsBackground\":\"#23262E\",\"editorGutter.addedBackground\":\"#9BC53DBB\",\"editorGutter.deletedBackground\":\"#FC644DBB\",\"editorGutter.modifiedBackground\":\"#5BC0EBBB\",\"editorHoverWidget.background\":\"#373941\",\"editorHoverWidget.border\":\"#00e8c5cc\",\"editorIndentGuide.activeBackground\":\"#585C66\",\"editorIndentGuide.background\":\"#333844\",\"editorLineNumber.foreground\":\"#746f77\",\"editorLink.activeForeground\":\"#3B79C7\",\"editorOverviewRuler.border\":\"#1B1D23\",\"editorRuler.foreground\":\"#4F4355\",\"editorSuggestWidget.background\":\"#20232A\",\"editorSuggestWidget.border\":\"#372F3C\",\"editorSuggestWidget.selectedBackground\":\"#373941\",\"editorWarning.foreground\":\"#FF9F2E\",\"editorWhitespace.foreground\":\"#333844\",\"editorWidget.background\":\"#20232A\",\"errorForeground\":\"#FC644D\",\"extensionButton.prominentBackground\":\"#07d4b6cc\",\"extensionButton.prominentHoverBackground\":\"#07d4b5b0\",\"focusBorder\":\"#746f77\",\"foreground\":\"#D5CED9\",\"gitDecoration.ignoredResourceForeground\":\"#555555\",\"input.background\":\"#2b303b\",\"input.placeholderForeground\":\"#746f77\",\"inputOption.activeBorder\":\"#C668BA\",\"inputValidation.errorBackground\":\"#D65343\",\"inputValidation.errorBorder\":\"#D65343\",\"inputValidation.infoBackground\":\"#3A6395\",\"inputValidation.infoBorder\":\"#3A6395\",\"inputValidation.warningBackground\":\"#DE9237\",\"inputValidation.warningBorder\":\"#DE9237\",\"list.activeSelectionBackground\":\"#23262E\",\"list.activeSelectionForeground\":\"#00e8c6\",\"list.dropBackground\":\"#3a404e\",\"list.focusBackground\":\"#282b35\",\"list.focusForeground\":\"#eee\",\"list.hoverBackground\":\"#23262E\",\"list.hoverForeground\":\"#eee\",\"list.inactiveSelectionBackground\":\"#23262E\",\"list.inactiveSelectionForeground\":\"#00e8c6\",\"merge.currentContentBackground\":\"#F9267240\",\"merge.currentHeaderBackground\":\"#F92672\",\"merge.incomingContentBackground\":\"#3B79C740\",\"merge.incomingHeaderBackground\":\"#3B79C7BB\",\"minimapSlider.activeBackground\":\"#60698060\",\"minimapSlider.background\":\"#58607460\",\"minimapSlider.hoverBackground\":\"#60698060\",\"notification.background\":\"#2d313b\",\"notification.buttonBackground\":\"#00e8c5cc\",\"notification.buttonHoverBackground\":\"#07d4b5b0\",\"notification.errorBackground\":\"#FC644D\",\"notification.infoBackground\":\"#00b0ff\",\"notification.warningBackground\":\"#FF9F2E\",\"panel.background\":\"#23262E\",\"panel.border\":\"#1B1D23\",\"panelTitle.activeBorder\":\"#23262E\",\"panelTitle.inactiveForeground\":\"#746f77\",\"peekView.border\":\"#23262E\",\"peekViewEditor.background\":\"#1A1C22\",\"peekViewEditor.matchHighlightBackground\":\"#FF9F2E60\",\"peekViewResult.background\":\"#1A1C22\",\"peekViewResult.matchHighlightBackground\":\"#FF9F2E60\",\"peekViewResult.selectionBackground\":\"#23262E\",\"peekViewTitle.background\":\"#1A1C22\",\"peekViewTitleDescription.foreground\":\"#746f77\",\"pickerGroup.border\":\"#4F4355\",\"pickerGroup.foreground\":\"#746f77\",\"progressBar.background\":\"#C668BA\",\"scrollbar.shadow\":\"#23262E\",\"scrollbarSlider.activeBackground\":\"#3A3F4CCC\",\"scrollbarSlider.background\":\"#3A3F4C77\",\"scrollbarSlider.hoverBackground\":\"#3A3F4CAA\",\"selection.background\":\"#746f77\",\"sideBar.background\":\"#23262E\",\"sideBar.foreground\":\"#999999\",\"sideBarSectionHeader.background\":\"#23262E\",\"sideBarTitle.foreground\":\"#00e8c6\",\"statusBar.background\":\"#23262E\",\"statusBar.debuggingBackground\":\"#FC644D\",\"statusBar.noFolderBackground\":\"#23262E\",\"statusBarItem.activeBackground\":\"#00e8c5cc\",\"statusBarItem.hoverBackground\":\"#07d4b5b0\",\"statusBarItem.prominentBackground\":\"#07d4b5b0\",\"statusBarItem.prominentHoverBackground\":\"#00e8c5cc\",\"tab.activeBackground\":\"#23262e\",\"tab.activeBorder\":\"#00e8c6\",\"tab.activeForeground\":\"#00e8c6\",\"tab.inactiveBackground\":\"#23262E\",\"tab.inactiveForeground\":\"#746f77\",\"terminal.ansiBlue\":\"#7cb7ff\",\"terminal.ansiBrightBlue\":\"#7cb7ff\",\"terminal.ansiBrightCyan\":\"#00e8c6\",\"terminal.ansiBrightGreen\":\"#96E072\",\"terminal.ansiBrightMagenta\":\"#ff00aa\",\"terminal.ansiBrightRed\":\"#ee5d43\",\"terminal.ansiBrightYellow\":\"#FFE66D\",\"terminal.ansiCyan\":\"#00e8c6\",\"terminal.ansiGreen\":\"#96E072\",\"terminal.ansiMagenta\":\"#ff00aa\",\"terminal.ansiRed\":\"#ee5d43\",\"terminal.ansiYellow\":\"#FFE66D\",\"terminalCursor.background\":\"#23262E\",\"terminalCursor.foreground\":\"#FFE66D\",\"titleBar.activeBackground\":\"#23262E\",\"walkThrough.embeddedEditorBackground\":\"#23262E\",\"widget.shadow\":\"#14151A\"},\"displayName\":\"Andromeeda\",\"name\":\"andromeeda\",\"tokenColors\":[{\"settings\":{\"background\":\"#23262E\",\"foreground\":\"#D5CED9\"}},{\"scope\":[\"comment\",\"markup.quote.markdown\",\"meta.diff\",\"meta.diff.header\"],\"settings\":{\"foreground\":\"#A0A1A7cc\"}},{\"scope\":[\"meta.template.expression.js\",\"constant.name.attribute.tag.jade\",\"punctuation.definition.metadata.markdown\",\"punctuation.definition.string.end.markdown\",\"punctuation.definition.string.begin.markdown\"],\"settings\":{\"foreground\":\"#D5CED9\"}},{\"scope\":[\"variable\",\"support.variable\",\"entity.name.tag.yaml\",\"constant.character.entity.html\",\"source.css entity.name.tag.reference\",\"beginning.punctuation.definition.list.markdown\",\"source.css entity.other.attribute-name.parent-selector\",\"meta.structure.dictionary.json support.type.property-name\"],\"settings\":{\"foreground\":\"#00e8c6\"}},{\"scope\":[\"markup.bold\",\"constant.numeric\",\"meta.group.regexp\",\"constant.other.php\",\"support.constant.ext.php\",\"constant.other.class.php\",\"support.constant.core.php\",\"fenced_code.block.language\",\"constant.other.caps.python\",\"entity.other.attribute-name\",\"support.type.exception.python\",\"source.css keyword.other.unit\",\"variable.other.object.property.js.jsx\",\"variable.other.object.js\"],\"settings\":{\"foreground\":\"#f39c12\"}},{\"scope\":[\"markup.list\",\"text.xml string\",\"entity.name.type\",\"support.function\",\"entity.other.attribute-name\",\"meta.at-rule.extend\",\"entity.name.function\",\"entity.other.inherited-class\",\"entity.other.keyframe-offset.css\",\"text.html.markdown string.quoted\",\"meta.function-call.generic.python\",\"meta.at-rule.extend support.constant\",\"entity.other.attribute-name.class.jade\",\"source.css entity.other.attribute-name\",\"text.xml punctuation.definition.string\"],\"settings\":{\"foreground\":\"#FFE66D\"}},{\"scope\":[\"markup.heading\",\"variable.language.this.js\",\"variable.language.special.self.python\"],\"settings\":{\"foreground\":\"#ff00aa\"}},{\"scope\":[\"punctuation.definition.interpolation\",\"punctuation.section.embedded.end.php\",\"punctuation.section.embedded.end.ruby\",\"punctuation.section.embedded.begin.php\",\"punctuation.section.embedded.begin.ruby\",\"punctuation.definition.template-expression\",\"entity.name.tag\"],\"settings\":{\"foreground\":\"#f92672\"}},{\"scope\":[\"storage\",\"keyword\",\"meta.link\",\"meta.image\",\"markup.italic\",\"source.js support.type\"],\"settings\":{\"foreground\":\"#c74ded\"}},{\"scope\":[\"string.regexp\",\"markup.changed\"],\"settings\":{\"foreground\":\"#7cb7ff\"}},{\"scope\":[\"constant\",\"support.class\",\"keyword.operator\",\"support.constant\",\"text.html.markdown string\",\"source.css support.function\",\"source.php support.function\",\"support.function.magic.python\",\"entity.other.attribute-name.id\",\"markup.deleted\"],\"settings\":{\"foreground\":\"#ee5d43\"}},{\"scope\":[\"string\",\"text.html.php string\",\"markup.inline.raw\",\"markup.inserted\",\"punctuation.definition.string\",\"punctuation.definition.markdown\",\"text.html meta.embedded source.js string\",\"text.html.php punctuation.definition.string\",\"text.html meta.embedded source.js punctuation.definition.string\",\"text.html punctuation.definition.string\",\"text.html string\"],\"settings\":{\"foreground\":\"#96E072\"}},{\"scope\":[\"entity.other.inherited-class\"],\"settings\":{\"fontStyle\":\"underline\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/C3mMm8J8.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"actionBar.toggledBackground\":\"#383a49\",\"activityBarBadge.background\":\"#007ACC\",\"checkbox.border\":\"#6B6B6B\",\"editor.background\":\"#1E1E1E\",\"editor.foreground\":\"#D4D4D4\",\"editor.inactiveSelectionBackground\":\"#3A3D41\",\"editor.selectionHighlightBackground\":\"#ADD6FF26\",\"editorIndentGuide.activeBackground1\":\"#707070\",\"editorIndentGuide.background1\":\"#404040\",\"input.placeholderForeground\":\"#A6A6A6\",\"list.activeSelectionIconForeground\":\"#FFF\",\"list.dropBackground\":\"#383B3D\",\"menu.background\":\"#252526\",\"menu.border\":\"#454545\",\"menu.foreground\":\"#CCCCCC\",\"menu.selectionBackground\":\"#0078d4\",\"menu.separatorBackground\":\"#454545\",\"ports.iconRunningProcessForeground\":\"#369432\",\"sideBarSectionHeader.background\":\"#0000\",\"sideBarSectionHeader.border\":\"#ccc3\",\"sideBarTitle.foreground\":\"#BBBBBB\",\"statusBarItem.remoteBackground\":\"#16825D\",\"statusBarItem.remoteForeground\":\"#FFF\",\"tab.lastPinnedBorder\":\"#ccc3\",\"tab.selectedBackground\":\"#222222\",\"tab.selectedForeground\":\"#ffffffa0\",\"terminal.inactiveSelectionBackground\":\"#3A3D41\",\"widget.border\":\"#303031\"},\"displayName\":\"Dark Plus\",\"name\":\"dark-plus\",\"semanticHighlighting\":true,\"semanticTokenColors\":{\"customLiteral\":\"#DCDCAA\",\"newOperator\":\"#C586C0\",\"numberLiteral\":\"#b5cea8\",\"stringLiteral\":\"#ce9178\"},\"tokenColors\":[{\"scope\":[\"meta.embedded\",\"source.groovy.embedded\",\"string meta.image.inline.markdown\",\"variable.legacy.builtin.python\"],\"settings\":{\"foreground\":\"#D4D4D4\"}},{\"scope\":\"emphasis\",\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":\"strong\",\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":\"header\",\"settings\":{\"foreground\":\"#000080\"}},{\"scope\":\"comment\",\"settings\":{\"foreground\":\"#6A9955\"}},{\"scope\":\"constant.language\",\"settings\":{\"foreground\":\"#569cd6\"}},{\"scope\":[\"constant.numeric\",\"variable.other.enummember\",\"keyword.operator.plus.exponent\",\"keyword.operator.minus.exponent\"],\"settings\":{\"foreground\":\"#b5cea8\"}},{\"scope\":\"constant.regexp\",\"settings\":{\"foreground\":\"#646695\"}},{\"scope\":\"entity.name.tag\",\"settings\":{\"foreground\":\"#569cd6\"}},{\"scope\":[\"entity.name.tag.css\",\"entity.name.tag.less\"],\"settings\":{\"foreground\":\"#d7ba7d\"}},{\"scope\":\"entity.other.attribute-name\",\"settings\":{\"foreground\":\"#9cdcfe\"}},{\"scope\":[\"entity.other.attribute-name.class.css\",\"source.css entity.other.attribute-name.class\",\"entity.other.attribute-name.id.css\",\"entity.other.attribute-name.parent-selector.css\",\"entity.other.attribute-name.parent.less\",\"source.css entity.other.attribute-name.pseudo-class\",\"entity.other.attribute-name.pseudo-element.css\",\"source.css.less entity.other.attribute-name.id\",\"entity.other.attribute-name.scss\"],\"settings\":{\"foreground\":\"#d7ba7d\"}},{\"scope\":\"invalid\",\"settings\":{\"foreground\":\"#f44747\"}},{\"scope\":\"markup.underline\",\"settings\":{\"fontStyle\":\"underline\"}},{\"scope\":\"markup.bold\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#569cd6\"}},{\"scope\":\"markup.heading\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#569cd6\"}},{\"scope\":\"markup.italic\",\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":\"markup.strikethrough\",\"settings\":{\"fontStyle\":\"strikethrough\"}},{\"scope\":\"markup.inserted\",\"settings\":{\"foreground\":\"#b5cea8\"}},{\"scope\":\"markup.deleted\",\"settings\":{\"foreground\":\"#ce9178\"}},{\"scope\":\"markup.changed\",\"settings\":{\"foreground\":\"#569cd6\"}},{\"scope\":\"punctuation.definition.quote.begin.markdown\",\"settings\":{\"foreground\":\"#6A9955\"}},{\"scope\":\"punctuation.definition.list.begin.markdown\",\"settings\":{\"foreground\":\"#6796e6\"}},{\"scope\":\"markup.inline.raw\",\"settings\":{\"foreground\":\"#ce9178\"}},{\"scope\":\"punctuation.definition.tag\",\"settings\":{\"foreground\":\"#808080\"}},{\"scope\":[\"meta.preprocessor\",\"entity.name.function.preprocessor\"],\"settings\":{\"foreground\":\"#569cd6\"}},{\"scope\":\"meta.preprocessor.string\",\"settings\":{\"foreground\":\"#ce9178\"}},{\"scope\":\"meta.preprocessor.numeric\",\"settings\":{\"foreground\":\"#b5cea8\"}},{\"scope\":\"meta.structure.dictionary.key.python\",\"settings\":{\"foreground\":\"#9cdcfe\"}},{\"scope\":\"meta.diff.header\",\"settings\":{\"foreground\":\"#569cd6\"}},{\"scope\":\"storage\",\"settings\":{\"foreground\":\"#569cd6\"}},{\"scope\":\"storage.type\",\"settings\":{\"foreground\":\"#569cd6\"}},{\"scope\":[\"storage.modifier\",\"keyword.operator.noexcept\"],\"settings\":{\"foreground\":\"#569cd6\"}},{\"scope\":[\"string\",\"meta.embedded.assembly\"],\"settings\":{\"foreground\":\"#ce9178\"}},{\"scope\":\"string.tag\",\"settings\":{\"foreground\":\"#ce9178\"}},{\"scope\":\"string.value\",\"settings\":{\"foreground\":\"#ce9178\"}},{\"scope\":\"string.regexp\",\"settings\":{\"foreground\":\"#d16969\"}},{\"scope\":[\"punctuation.definition.template-expression.begin\",\"punctuation.definition.template-expression.end\",\"punctuation.section.embedded\"],\"settings\":{\"foreground\":\"#569cd6\"}},{\"scope\":[\"meta.template.expression\"],\"settings\":{\"foreground\":\"#d4d4d4\"}},{\"scope\":[\"support.type.vendored.property-name\",\"support.type.property-name\",\"source.css variable\",\"source.coffee.embedded\"],\"settings\":{\"foreground\":\"#9cdcfe\"}},{\"scope\":\"keyword\",\"settings\":{\"foreground\":\"#569cd6\"}},{\"scope\":\"keyword.control\",\"settings\":{\"foreground\":\"#569cd6\"}},{\"scope\":\"keyword.operator\",\"settings\":{\"foreground\":\"#d4d4d4\"}},{\"scope\":[\"keyword.operator.new\",\"keyword.operator.expression\",\"keyword.operator.cast\",\"keyword.operator.sizeof\",\"keyword.operator.alignof\",\"keyword.operator.typeid\",\"keyword.operator.alignas\",\"keyword.operator.instanceof\",\"keyword.operator.logical.python\",\"keyword.operator.wordlike\"],\"settings\":{\"foreground\":\"#569cd6\"}},{\"scope\":\"keyword.other.unit\",\"settings\":{\"foreground\":\"#b5cea8\"}},{\"scope\":[\"punctuation.section.embedded.begin.php\",\"punctuation.section.embedded.end.php\"],\"settings\":{\"foreground\":\"#569cd6\"}},{\"scope\":\"support.function.git-rebase\",\"settings\":{\"foreground\":\"#9cdcfe\"}},{\"scope\":\"constant.sha.git-rebase\",\"settings\":{\"foreground\":\"#b5cea8\"}},{\"scope\":[\"storage.modifier.import.java\",\"variable.language.wildcard.java\",\"storage.modifier.package.java\"],\"settings\":{\"foreground\":\"#d4d4d4\"}},{\"scope\":\"variable.language\",\"settings\":{\"foreground\":\"#569cd6\"}},{\"scope\":[\"entity.name.function\",\"support.function\",\"support.constant.handlebars\",\"source.powershell variable.other.member\",\"entity.name.operator.custom-literal\"],\"settings\":{\"foreground\":\"#DCDCAA\"}},{\"scope\":[\"support.class\",\"support.type\",\"entity.name.type\",\"entity.name.namespace\",\"entity.other.attribute\",\"entity.name.scope-resolution\",\"entity.name.class\",\"storage.type.numeric.go\",\"storage.type.byte.go\",\"storage.type.boolean.go\",\"storage.type.string.go\",\"storage.type.uintptr.go\",\"storage.type.error.go\",\"storage.type.rune.go\",\"storage.type.cs\",\"storage.type.generic.cs\",\"storage.type.modifier.cs\",\"storage.type.variable.cs\",\"storage.type.annotation.java\",\"storage.type.generic.java\",\"storage.type.java\",\"storage.type.object.array.java\",\"storage.type.primitive.array.java\",\"storage.type.primitive.java\",\"storage.type.token.java\",\"storage.type.groovy\",\"storage.type.annotation.groovy\",\"storage.type.parameters.groovy\",\"storage.type.generic.groovy\",\"storage.type.object.array.groovy\",\"storage.type.primitive.array.groovy\",\"storage.type.primitive.groovy\"],\"settings\":{\"foreground\":\"#4EC9B0\"}},{\"scope\":[\"meta.type.cast.expr\",\"meta.type.new.expr\",\"support.constant.math\",\"support.constant.dom\",\"support.constant.json\",\"entity.other.inherited-class\",\"punctuation.separator.namespace.ruby\"],\"settings\":{\"foreground\":\"#4EC9B0\"}},{\"scope\":[\"keyword.control\",\"source.cpp keyword.operator.new\",\"keyword.operator.delete\",\"keyword.other.using\",\"keyword.other.directive.using\",\"keyword.other.operator\",\"entity.name.operator\"],\"settings\":{\"foreground\":\"#C586C0\"}},{\"scope\":[\"variable\",\"meta.definition.variable.name\",\"support.variable\",\"entity.name.variable\",\"constant.other.placeholder\"],\"settings\":{\"foreground\":\"#9CDCFE\"}},{\"scope\":[\"variable.other.constant\",\"variable.other.enummember\"],\"settings\":{\"foreground\":\"#4FC1FF\"}},{\"scope\":[\"meta.object-literal.key\"],\"settings\":{\"foreground\":\"#9CDCFE\"}},{\"scope\":[\"support.constant.property-value\",\"support.constant.font-name\",\"support.constant.media-type\",\"support.constant.media\",\"constant.other.color.rgb-value\",\"constant.other.rgb-value\",\"support.constant.color\"],\"settings\":{\"foreground\":\"#CE9178\"}},{\"scope\":[\"punctuation.definition.group.regexp\",\"punctuation.definition.group.assertion.regexp\",\"punctuation.definition.character-class.regexp\",\"punctuation.character.set.begin.regexp\",\"punctuation.character.set.end.regexp\",\"keyword.operator.negation.regexp\",\"support.other.parenthesis.regexp\"],\"settings\":{\"foreground\":\"#CE9178\"}},{\"scope\":[\"constant.character.character-class.regexp\",\"constant.other.character-class.set.regexp\",\"constant.other.character-class.regexp\",\"constant.character.set.regexp\"],\"settings\":{\"foreground\":\"#d16969\"}},{\"scope\":[\"keyword.operator.or.regexp\",\"keyword.control.anchor.regexp\"],\"settings\":{\"foreground\":\"#DCDCAA\"}},{\"scope\":\"keyword.operator.quantifier.regexp\",\"settings\":{\"foreground\":\"#d7ba7d\"}},{\"scope\":[\"constant.character\",\"constant.other.option\"],\"settings\":{\"foreground\":\"#569cd6\"}},{\"scope\":\"constant.character.escape\",\"settings\":{\"foreground\":\"#d7ba7d\"}},{\"scope\":\"entity.name.label\",\"settings\":{\"foreground\":\"#C8C8C8\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/C3t2pwGQ.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"C\",\"name\":\"c\",\"patterns\":[{\"include\":\"#preprocessor-rule-enabled\"},{\"include\":\"#preprocessor-rule-disabled\"},{\"include\":\"#preprocessor-rule-conditional\"},{\"include\":\"#predefined_macros\"},{\"include\":\"#comments\"},{\"include\":\"#switch_statement\"},{\"include\":\"#anon_pattern_1\"},{\"include\":\"#storage_types\"},{\"include\":\"#anon_pattern_2\"},{\"include\":\"#anon_pattern_3\"},{\"include\":\"#anon_pattern_4\"},{\"include\":\"#anon_pattern_5\"},{\"include\":\"#anon_pattern_6\"},{\"include\":\"#anon_pattern_7\"},{\"include\":\"#operators\"},{\"include\":\"#numbers\"},{\"include\":\"#strings\"},{\"include\":\"#anon_pattern_range_1\"},{\"include\":\"#anon_pattern_range_2\"},{\"include\":\"#anon_pattern_range_3\"},{\"include\":\"#pragma-mark\"},{\"include\":\"#anon_pattern_range_4\"},{\"include\":\"#anon_pattern_range_5\"},{\"include\":\"#anon_pattern_range_6\"},{\"include\":\"#anon_pattern_8\"},{\"include\":\"#anon_pattern_9\"},{\"include\":\"#anon_pattern_10\"},{\"include\":\"#anon_pattern_11\"},{\"include\":\"#anon_pattern_12\"},{\"include\":\"#anon_pattern_13\"},{\"include\":\"#block\"},{\"include\":\"#parens\"},{\"include\":\"#anon_pattern_range_7\"},{\"include\":\"#line_continuation_character\"},{\"include\":\"#anon_pattern_range_8\"},{\"include\":\"#anon_pattern_range_9\"},{\"include\":\"#anon_pattern_14\"},{\"include\":\"#anon_pattern_15\"}],\"repository\":{\"access-method\":{\"begin\":\"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\\\\\\\]\\\\\\\\)]))\\\\\\\\s*(?:(\\\\\\\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\\\\\\\s*(?:(?:\\\\\\\\.)|(?:->)))*)\\\\\\\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"variable.object.c\"},\"2\":{\"name\":\"punctuation.separator.dot-access.c\"},\"3\":{\"name\":\"punctuation.separator.pointer-access.c\"},\"4\":{\"patterns\":[{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.separator.dot-access.c\"},{\"match\":\"->\",\"name\":\"punctuation.separator.pointer-access.c\"},{\"match\":\"[a-zA-Z_][a-zA-Z_0-9]*\",\"name\":\"variable.object.c\"},{\"match\":\".+\",\"name\":\"everything.else.c\"}]},\"5\":{\"name\":\"entity.name.function.member.c\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.function.member.c\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.function.member.c\"}},\"name\":\"meta.function-call.member.c\",\"patterns\":[{\"include\":\"#function-call-innards\"}]},\"anon_pattern_1\":{\"match\":\"\\\\\\\\b(break|continue|do|else|for|goto|if|_Pragma|return|while)\\\\\\\\b\",\"name\":\"keyword.control.c\"},\"anon_pattern_10\":{\"match\":\"\\\\\\\\b(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t)\\\\\\\\b\",\"name\":\"support.type.stdint.c\"},\"anon_pattern_11\":{\"match\":\"\\\\\\\\b(noErr|kNilOptions|kInvalidID|kVariableLengthArray)\\\\\\\\b\",\"name\":\"support.constant.mac-classic.c\"},\"anon_pattern_12\":{\"match\":\"\\\\\\\\b(AbsoluteTime|Boolean|Byte|ByteCount|ByteOffset|BytePtr|CompTimeValue|ConstLogicalAddress|ConstStrFileNameParam|ConstStringPtr|Duration|Fixed|FixedPtr|Float32|Float32Point|Float64|Float80|Float96|FourCharCode|Fract|FractPtr|Handle|ItemCount|LogicalAddress|OptionBits|OSErr|OSStatus|OSType|OSTypePtr|PhysicalAddress|ProcessSerialNumber|ProcessSerialNumberPtr|ProcHandle|Ptr|ResType|ResTypePtr|ShortFixed|ShortFixedPtr|SignedByte|SInt16|SInt32|SInt64|SInt8|Size|StrFileName|StringHandle|StringPtr|TimeBase|TimeRecord|TimeScale|TimeValue|TimeValue64|UInt16|UInt32|UInt64|UInt8|UniChar|UniCharCount|UniCharCountPtr|UniCharPtr|UnicodeScalarValue|UniversalProcHandle|UniversalProcPtr|UnsignedFixed|UnsignedFixedPtr|UnsignedWide|UTF16Char|UTF32Char|UTF8Char)\\\\\\\\b\",\"name\":\"support.type.mac-classic.c\"},\"anon_pattern_13\":{\"match\":\"\\\\\\\\b([A-Za-z0-9_]+_t)\\\\\\\\b\",\"name\":\"support.type.posix-reserved.c\"},\"anon_pattern_14\":{\"match\":\";\",\"name\":\"punctuation.terminator.statement.c\"},\"anon_pattern_15\":{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.c\"},\"anon_pattern_2\":{\"match\":\"typedef\",\"name\":\"keyword.other.typedef.c\"},\"anon_pattern_3\":{\"match\":\"\\\\\\\\b(const|extern|register|restrict|static|volatile|inline)\\\\\\\\b\",\"name\":\"storage.modifier.c\"},\"anon_pattern_4\":{\"match\":\"\\\\\\\\bk[A-Z]\\\\\\\\w*\\\\\\\\b\",\"name\":\"constant.other.variable.mac-classic.c\"},\"anon_pattern_5\":{\"match\":\"\\\\\\\\bg[A-Z]\\\\\\\\w*\\\\\\\\b\",\"name\":\"variable.other.readwrite.global.mac-classic.c\"},\"anon_pattern_6\":{\"match\":\"\\\\\\\\bs[A-Z]\\\\\\\\w*\\\\\\\\b\",\"name\":\"variable.other.readwrite.static.mac-classic.c\"},\"anon_pattern_7\":{\"match\":\"\\\\\\\\b(NULL|true|false|TRUE|FALSE)\\\\\\\\b\",\"name\":\"constant.language.c\"},\"anon_pattern_8\":{\"match\":\"\\\\\\\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\\\\\\\b\",\"name\":\"support.type.sys-types.c\"},\"anon_pattern_9\":{\"match\":\"\\\\\\\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\\\\\\\b\",\"name\":\"support.type.pthread.c\"},\"anon_pattern_range_1\":{\"begin\":\"((?:(?:(?>\\\\\\\\s+)|(\\\\\\\\/\\\\\\\\*)((?>(?:[^\\\\\\\\*]|(?>\\\\\\\\*+)[^\\\\\\\\/])*)((?>\\\\\\\\*+)\\\\\\\\/)))+?|(?:(?:(?:(?:\\\\\\\\b|(?<=\\\\\\\\W))|(?=\\\\\\\\W))|\\\\\\\\A)|\\\\\\\\Z)))((#)\\\\\\\\s*define\\\\\\\\b)\\\\\\\\s+((?<!\\\\\\\\w)[a-zA-Z_]\\\\\\\\w*(?!\\\\\\\\w))(?:(\\\\\\\\()([^()\\\\\\\\\\\\\\\\]+)(\\\\\\\\)))?\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.c punctuation.definition.comment.begin.c\"},\"3\":{\"name\":\"comment.block.c\"},\"4\":{\"patterns\":[{\"match\":\"\\\\\\\\*\\\\\\\\/\",\"name\":\"comment.block.c punctuation.definition.comment.end.c\"},{\"match\":\"\\\\\\\\*\",\"name\":\"comment.block.c\"}]},\"5\":{\"name\":\"keyword.control.directive.define.c\"},\"6\":{\"name\":\"punctuation.definition.directive.c\"},\"7\":{\"name\":\"entity.name.function.preprocessor.c\"},\"8\":{\"name\":\"punctuation.definition.parameters.begin.c\"},\"9\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.parameter.preprocessor.c\"}},\"match\":\"(?<=[(,])\\\\\\\\s*((?<!\\\\\\\\w)[a-zA-Z_]\\\\\\\\w*(?!\\\\\\\\w))\\\\\\\\s*\"},{\"match\":\",\",\"name\":\"punctuation.separator.parameters.c\"},{\"match\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"name\":\"ellipses.c punctuation.vararg-ellipses.variable.parameter.preprocessor.c\"}]},\"10\":{\"name\":\"punctuation.definition.parameters.end.c\"}},\"end\":\"(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.macro.c\",\"patterns\":[{\"include\":\"#preprocessor-rule-define-line-contents\"}]},\"anon_pattern_range_2\":{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*(error|warning))\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.diagnostic.$3.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"end\":\"(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.diagnostic.c\",\"patterns\":[{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.c\"}},\"end\":\"\\\\\"|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.c\"}},\"name\":\"string.quoted.double.c\",\"patterns\":[{\"include\":\"#line_continuation_character\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.c\"}},\"end\":\"'|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.c\"}},\"name\":\"string.quoted.single.c\",\"patterns\":[{\"include\":\"#line_continuation_character\"}]},{\"begin\":\"[^'\\\\\"]\",\"end\":\"(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"name\":\"string.unquoted.single.c\",\"patterns\":[{\"include\":\"#line_continuation_character\"},{\"include\":\"#comments\"}]}]},\"anon_pattern_range_3\":{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*(include(?:_next)?|import))\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.$3.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"end\":\"(?=(?://|/\\\\\\\\*))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.include.c\",\"patterns\":[{\"include\":\"#line_continuation_character\"},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.c\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.c\"}},\"name\":\"string.quoted.double.include.c\"},{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.c\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.c\"}},\"name\":\"string.quoted.other.lt-gt.include.c\"}]},\"anon_pattern_range_4\":{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*line)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.line.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"end\":\"(?=(?://|/\\\\\\\\*))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.c\",\"patterns\":[{\"include\":\"#strings\"},{\"include\":\"#numbers\"},{\"include\":\"#line_continuation_character\"}]},\"anon_pattern_range_5\":{\"begin\":\"^\\\\\\\\s*(?:((#)\\\\\\\\s*undef))\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.undef.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"end\":\"(?=(?://|/\\\\\\\\*))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.c\",\"patterns\":[{\"match\":\"[a-zA-Z_$][\\\\\\\\w$]*\",\"name\":\"entity.name.function.preprocessor.c\"},{\"include\":\"#line_continuation_character\"}]},\"anon_pattern_range_6\":{\"begin\":\"^\\\\\\\\s*(?:((#)\\\\\\\\s*pragma))\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.pragma.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"end\":\"(?=(?://|/\\\\\\\\*))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.pragma.c\",\"patterns\":[{\"include\":\"#strings\"},{\"match\":\"[a-zA-Z_$][\\\\\\\\w\\\\\\\\-$]*\",\"name\":\"entity.other.attribute-name.pragma.preprocessor.c\"},{\"include\":\"#numbers\"},{\"include\":\"#line_continuation_character\"}]},\"anon_pattern_range_7\":{\"begin\":\"(?<!\\\\\\\\w)(?!\\\\\\\\s*(?:atomic_uint_least64_t|atomic_uint_least16_t|atomic_uint_least32_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_fast64_t|atomic_uint_fast32_t|atomic_int_least64_t|atomic_int_least32_t|pthread_rwlockattr_t|atomic_uint_fast16_t|pthread_mutexattr_t|atomic_int_fast16_t|atomic_uint_fast8_t|atomic_int_fast64_t|atomic_int_least8_t|atomic_int_fast32_t|atomic_int_fast8_t|pthread_condattr_t|pthread_rwlock_t|atomic_uintptr_t|atomic_ptrdiff_t|atomic_uintmax_t|atomic_intmax_t|atomic_char32_t|atomic_intptr_t|atomic_char16_t|pthread_mutex_t|pthread_cond_t|atomic_wchar_t|uint_least64_t|uint_least32_t|uint_least16_t|pthread_once_t|pthread_attr_t|uint_least8_t|int_least32_t|int_least16_t|pthread_key_t|uint_fast32_t|uint_fast64_t|uint_fast16_t|atomic_size_t|atomic_ushort|atomic_ullong|int_least64_t|atomic_ulong|int_least8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|memory_order|atomic_schar|atomic_uchar|atomic_short|atomic_llong|thread_local|atomic_bool|atomic_uint|atomic_long|int_fast8_t|suseconds_t|atomic_char|atomic_int|useconds_t|_Imaginary|uintmax_t|uintmax_t|in_addr_t|in_port_t|_Noreturn|blksize_t|pthread_t|uintptr_t|volatile|u_quad_t|blkcnt_t|intmax_t|intptr_t|_Complex|uint16_t|uint32_t|uint64_t|_Alignof|_Alignas|continue|unsigned|restrict|intmax_t|register|int64_t|qaddr_t|segsz_t|_Atomic|alignas|default|caddr_t|nlink_t|typedef|u_short|fixpt_t|clock_t|swblk_t|ssize_t|alignof|daddr_t|int16_t|int32_t|uint8_t|struct|mode_t|size_t|time_t|ushort|u_long|u_char|int8_t|double|signed|static|extern|inline|return|switch|xor_eq|and_eq|bitand|not_eq|sizeof|quad_t|uid_t|bitor|union|off_t|key_t|ino_t|compl|u_int|short|const|false|while|float|pid_t|break|_Bool|or_eq|div_t|dev_t|gid_t|id_t|long|case|goto|else|bool|auto|id_t|enum|uint|true|NULL|void|char|for|not|int|and|xor|do|or|if)\\\\\\\\s*\\\\\\\\()(?=[a-zA-Z_]\\\\\\\\w*\\\\\\\\s*\\\\\\\\()\",\"end\":\"(?!\\\\\\\\G)(?<=\\\\\\\\))\",\"name\":\"meta.function.c\",\"patterns\":[{\"include\":\"#function-innards\"}]},\"anon_pattern_range_8\":{\"begin\":\"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\\\\\\\]\\\\\\\\)]))?(\\\\\\\\[)(?!\\\\\\\\])\",\"beginCaptures\":{\"1\":{\"name\":\"variable.object.c\"},\"2\":{\"name\":\"punctuation.definition.begin.bracket.square.c\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.square.c\"}},\"name\":\"meta.bracket.square.access.c\",\"patterns\":[{\"include\":\"#function-call-innards\"}]},\"anon_pattern_range_9\":{\"match\":\"\\\\\\\\[\\\\\\\\s*\\\\\\\\]\",\"name\":\"storage.modifier.array.bracket.square.c\"},\"backslash_escapes\":{\"match\":\"\\\\\\\\\\\\\\\\(\\\\\\\\\\\\\\\\|[abefnprtv'\\\\\"?]|[0-3][0-7]{,2}|[4-7]\\\\\\\\d?|x[a-fA-F0-9]{,2}|u[a-fA-F0-9]{,4}|U[a-fA-F0-9]{,8})\",\"name\":\"constant.character.escape.c\"},\"block\":{\"patterns\":[{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.c\"}},\"end\":\"}|(?=\\\\\\\\s*#\\\\\\\\s*(?:elif|else|endif)\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.c\"}},\"name\":\"meta.block.c\",\"patterns\":[{\"include\":\"#block_innards\"}]}]},\"block_comment\":{\"patterns\":[{\"begin\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.begin.c\"}},\"end\":\"\\\\\\\\*\\\\\\\\/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.c\"}},\"name\":\"comment.block.c\"},{\"begin\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\*)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.begin.c\"}},\"end\":\"\\\\\\\\*\\\\\\\\/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.c\"}},\"name\":\"comment.block.c\"}]},\"block_innards\":{\"patterns\":[{\"include\":\"#preprocessor-rule-enabled-block\"},{\"include\":\"#preprocessor-rule-disabled-block\"},{\"include\":\"#preprocessor-rule-conditional-block\"},{\"include\":\"#method_access\"},{\"include\":\"#member_access\"},{\"include\":\"#c_function_call\"},{\"begin\":\"(?:(?:(?=\\\\\\\\s)(?<!else|new|return)(?<=\\\\\\\\w)\\\\\\\\s+(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)))((?:[A-Za-z_][A-Za-z0-9_]*+|::)++|(?:(?<=operator)(?:[-*&<>=+!]+|\\\\\\\\(\\\\\\\\)|\\\\\\\\[\\\\\\\\])))\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.c\"},\"2\":{\"name\":\"punctuation.section.parens.begin.bracket.round.initialization.c\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.initialization.c\"}},\"name\":\"meta.initialization.c\",\"patterns\":[{\"include\":\"#function-call-innards\"}]},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.c\"}},\"end\":\"}|(?=\\\\\\\\s*#\\\\\\\\s*(?:elif|else|endif)\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.c\"}},\"patterns\":[{\"include\":\"#block_innards\"}]},{\"include\":\"#parens-block\"},{\"include\":\"$self\"}]},\"c_conditional_context\":{\"patterns\":[{\"include\":\"$self\"},{\"include\":\"#block_innards\"}]},\"c_function_call\":{\"begin\":\"(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\\\\\\\s*\\\\\\\\()(?=(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\\\\\\\s*\\\\\\\\(|(?:(?<=operator)(?:[-*&<>=+!]+|\\\\\\\\(\\\\\\\\)|\\\\\\\\[\\\\\\\\]))\\\\\\\\s*\\\\\\\\()\",\"end\":\"(?<=\\\\\\\\))(?!\\\\\\\\w)\",\"name\":\"meta.function-call.c\",\"patterns\":[{\"include\":\"#function-call-innards\"}]},\"case_statement\":{\"begin\":\"((?>(?:(?:(?>(?<!\\\\\\\\s)\\\\\\\\s+)|(\\\\\\\\/\\\\\\\\*)((?>(?:[^\\\\\\\\*]|(?>\\\\\\\\*+)[^\\\\\\\\/])*)((?>\\\\\\\\*+)\\\\\\\\/)))+|(?:(?:(?:(?:\\\\\\\\b|(?<=\\\\\\\\W))|(?=\\\\\\\\W))|\\\\\\\\A)|\\\\\\\\Z))))((?<!\\\\\\\\w)case(?!\\\\\\\\w))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.c punctuation.definition.comment.begin.c\"},\"3\":{\"name\":\"comment.block.c\"},\"4\":{\"patterns\":[{\"match\":\"\\\\\\\\*\\\\\\\\/\",\"name\":\"comment.block.c punctuation.definition.comment.end.c\"},{\"match\":\"\\\\\\\\*\",\"name\":\"comment.block.c\"}]},\"5\":{\"name\":\"keyword.control.case.c\"}},\"end\":\"(:)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.colon.case.c\"}},\"name\":\"meta.conditional.case.c\",\"patterns\":[{\"include\":\"#evaluation_context\"},{\"include\":\"#c_conditional_context\"}]},\"comments\":{\"patterns\":[{\"patterns\":[{\"patterns\":[{\"begin\":\"(?:^)(?>\\\\\\\\s*)(\\\\\\\\/\\\\\\\\/[!\\\\\\\\/]+)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.documentation.c\"}},\"end\":\"(?<=\\\\\\\\n)(?<!\\\\\\\\\\\\\\\\\\\\\\\\n)\",\"name\":\"comment.line.double-slash.documentation.c\",\"patterns\":[{\"include\":\"#line_continuation_character\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:callergraph|callgraph|else|endif|f\\\\\\\\$|f\\\\\\\\[|f\\\\\\\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\\\\\\\$|\\\\\\\\#|<|>|%|\\\\\"|\\\\\\\\.|=|::|\\\\\\\\||\\\\\\\\-\\\\\\\\-|\\\\\\\\-\\\\\\\\-\\\\\\\\-)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.c\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.c\"},\"2\":{\"name\":\"markup.italic.doxygen.c\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:a|em|e))\\\\\\\\s+(\\\\\\\\S+)\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.c\"},\"2\":{\"name\":\"markup.bold.doxygen.c\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@]b)\\\\\\\\s+(\\\\\\\\S+)\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.c\"},\"2\":{\"name\":\"markup.inline.raw.string.c\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:c|p))\\\\\\\\s+(\\\\\\\\S+)\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.c\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.c\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.c\"},\"2\":{\"patterns\":[{\"match\":\"in|out\",\"name\":\"keyword.other.parameter.direction.$0.c\"}]},\"3\":{\"name\":\"variable.parameter.c\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@]param)(?:\\\\\\\\s*\\\\\\\\[((?:,?\\\\\\\\s*(?:in|out)\\\\\\\\s*)+)\\\\\\\\])?\\\\\\\\s+(\\\\\\\\b\\\\\\\\w+\\\\\\\\b)\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.c\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.c\"},{\"match\":\"(?:\\\\\\\\b[A-Z]+:|@[a-z_]+:)\",\"name\":\"storage.type.class.gtkdoc\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.begin.documentation.c\"},\"2\":{\"patterns\":[{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:callergraph|callgraph|else|endif|f\\\\\\\\$|f\\\\\\\\[|f\\\\\\\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\\\\\\\$|\\\\\\\\#|<|>|%|\\\\\"|\\\\\\\\.|=|::|\\\\\\\\||\\\\\\\\-\\\\\\\\-|\\\\\\\\-\\\\\\\\-\\\\\\\\-)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.c\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.c\"},\"2\":{\"name\":\"markup.italic.doxygen.c\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:a|em|e))\\\\\\\\s+(\\\\\\\\S+)\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.c\"},\"2\":{\"name\":\"markup.bold.doxygen.c\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@]b)\\\\\\\\s+(\\\\\\\\S+)\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.c\"},\"2\":{\"name\":\"markup.inline.raw.string.c\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:c|p))\\\\\\\\s+(\\\\\\\\S+)\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.c\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.c\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.c\"},\"2\":{\"patterns\":[{\"match\":\"in|out\",\"name\":\"keyword.other.parameter.direction.$0.c\"}]},\"3\":{\"name\":\"variable.parameter.c\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@]param)(?:\\\\\\\\s*\\\\\\\\[((?:,?\\\\\\\\s*(?:in|out)\\\\\\\\s*)+)\\\\\\\\])?\\\\\\\\s+(\\\\\\\\b\\\\\\\\w+\\\\\\\\b)\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.c\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.c\"},{\"match\":\"(?:\\\\\\\\b[A-Z]+:|@[a-z_]+:)\",\"name\":\"storage.type.class.gtkdoc\"}]},\"3\":{\"name\":\"punctuation.definition.comment.end.documentation.c\"}},\"match\":\"(\\\\\\\\/\\\\\\\\*[!*]+(?=\\\\\\\\s))(.+)([!*]*\\\\\\\\*\\\\\\\\/)\",\"name\":\"comment.block.documentation.c\"},{\"begin\":\"((?>\\\\\\\\s*)\\\\\\\\/\\\\\\\\*[!*]+(?:(?:\\\\\\\\n|$)|(?=\\\\\\\\s)))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.begin.documentation.c\"}},\"end\":\"([!*]*\\\\\\\\*\\\\\\\\/)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.end.documentation.c\"}},\"name\":\"comment.block.documentation.c\",\"patterns\":[{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:callergraph|callgraph|else|endif|f\\\\\\\\$|f\\\\\\\\[|f\\\\\\\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\\\\\\\$|\\\\\\\\#|<|>|%|\\\\\"|\\\\\\\\.|=|::|\\\\\\\\||\\\\\\\\-\\\\\\\\-|\\\\\\\\-\\\\\\\\-\\\\\\\\-)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.c\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.c\"},\"2\":{\"name\":\"markup.italic.doxygen.c\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:a|em|e))\\\\\\\\s+(\\\\\\\\S+)\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.c\"},\"2\":{\"name\":\"markup.bold.doxygen.c\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@]b)\\\\\\\\s+(\\\\\\\\S+)\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.c\"},\"2\":{\"name\":\"markup.inline.raw.string.c\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:c|p))\\\\\\\\s+(\\\\\\\\S+)\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.c\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.c\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.c\"},\"2\":{\"patterns\":[{\"match\":\"in|out\",\"name\":\"keyword.other.parameter.direction.$0.c\"}]},\"3\":{\"name\":\"variable.parameter.c\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@]param)(?:\\\\\\\\s*\\\\\\\\[((?:,?\\\\\\\\s*(?:in|out)\\\\\\\\s*)+)\\\\\\\\])?\\\\\\\\s+(\\\\\\\\b\\\\\\\\w+\\\\\\\\b)\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.c\"},{\"match\":\"(?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\\\\\\\b(?:\\\\\\\\{[^}]*\\\\\\\\})?\",\"name\":\"storage.type.class.doxygen.c\"},{\"match\":\"(?:\\\\\\\\b[A-Z]+:|@[a-z_]+:)\",\"name\":\"storage.type.class.gtkdoc\"}]},{\"captures\":{\"1\":{\"name\":\"meta.toc-list.banner.block.c\"}},\"match\":\"^\\\\\\\\/\\\\\\\\* =(\\\\\\\\s*.*?)\\\\\\\\s*= \\\\\\\\*\\\\\\\\/$\\\\\\\\n?\",\"name\":\"comment.block.banner.c\"},{\"begin\":\"(\\\\\\\\/\\\\\\\\*)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.begin.c\"}},\"end\":\"(\\\\\\\\*\\\\\\\\/)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.end.c\"}},\"name\":\"comment.block.c\"},{\"captures\":{\"1\":{\"name\":\"meta.toc-list.banner.line.c\"}},\"match\":\"^\\\\\\\\/\\\\\\\\/ =(\\\\\\\\s*.*?)\\\\\\\\s*=$\\\\\\\\n?\",\"name\":\"comment.line.banner.c\"},{\"begin\":\"((?:^[ \\\\\\\\t]+)?)(?=\\\\\\\\/\\\\\\\\/)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.c\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"(\\\\\\\\/\\\\\\\\/)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.c\"}},\"end\":\"(?=\\\\\\\\n)\",\"name\":\"comment.line.double-slash.c\",\"patterns\":[{\"include\":\"#line_continuation_character\"}]}]}]},{\"include\":\"#block_comment\"},{\"include\":\"#line_comment\"}]},{\"include\":\"#block_comment\"},{\"include\":\"#line_comment\"}]},\"default_statement\":{\"begin\":\"((?>(?:(?:(?>(?<!\\\\\\\\s)\\\\\\\\s+)|(\\\\\\\\/\\\\\\\\*)((?>(?:[^\\\\\\\\*]|(?>\\\\\\\\*+)[^\\\\\\\\/])*)((?>\\\\\\\\*+)\\\\\\\\/)))+|(?:(?:(?:(?:\\\\\\\\b|(?<=\\\\\\\\W))|(?=\\\\\\\\W))|\\\\\\\\A)|\\\\\\\\Z))))((?<!\\\\\\\\w)default(?!\\\\\\\\w))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.c punctuation.definition.comment.begin.c\"},\"3\":{\"name\":\"comment.block.c\"},\"4\":{\"patterns\":[{\"match\":\"\\\\\\\\*\\\\\\\\/\",\"name\":\"comment.block.c punctuation.definition.comment.end.c\"},{\"match\":\"\\\\\\\\*\",\"name\":\"comment.block.c\"}]},\"5\":{\"name\":\"keyword.control.default.c\"}},\"end\":\"(:)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.colon.case.default.c\"}},\"name\":\"meta.conditional.case.c\",\"patterns\":[{\"include\":\"#evaluation_context\"},{\"include\":\"#c_conditional_context\"}]},\"disabled\":{\"begin\":\"^\\\\\\\\s*#\\\\\\\\s*if(n?def)?\\\\\\\\b.*$\",\"end\":\"^\\\\\\\\s*#\\\\\\\\s*endif\\\\\\\\b\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},\"evaluation_context\":{\"patterns\":[{\"include\":\"#function-call-innards\"},{\"include\":\"$self\"}]},\"function-call-innards\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#storage_types\"},{\"include\":\"#method_access\"},{\"include\":\"#member_access\"},{\"include\":\"#operators\"},{\"begin\":\"(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\\\\\\\s*\\\\\\\\()((?:[A-Za-z_][A-Za-z0-9_]*+|::)++|(?:(?<=operator)(?:[-*&<>=+!]+|\\\\\\\\(\\\\\\\\)|\\\\\\\\[\\\\\\\\])))\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.c\"},\"2\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.c\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.c\"}},\"patterns\":[{\"include\":\"#function-call-innards\"}]},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.c\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.c\"}},\"patterns\":[{\"include\":\"#function-call-innards\"}]},{\"include\":\"#block_innards\"}]},\"function-innards\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#storage_types\"},{\"include\":\"#operators\"},{\"include\":\"#vararg_ellipses\"},{\"begin\":\"(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\\\\\\\s*\\\\\\\\()((?:[A-Za-z_][A-Za-z0-9_]*+|::)++|(?:(?<=operator)(?:[-*&<>=+!]+|\\\\\\\\(\\\\\\\\)|\\\\\\\\[\\\\\\\\])))\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.c\"},\"2\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.c\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.end.bracket.round.c\"}},\"name\":\"meta.function.definition.parameters.c\",\"patterns\":[{\"include\":\"#probably_a_parameter\"},{\"include\":\"#function-innards\"}]},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.c\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.c\"}},\"patterns\":[{\"include\":\"#function-innards\"}]},{\"include\":\"$self\"}]},\"inline_comment\":{\"patterns\":[{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.block.c punctuation.definition.comment.begin.c\"},\"2\":{\"name\":\"comment.block.c\"},\"3\":{\"patterns\":[{\"match\":\"\\\\\\\\*\\\\\\\\/\",\"name\":\"comment.block.c punctuation.definition.comment.end.c\"},{\"match\":\"\\\\\\\\*\",\"name\":\"comment.block.c\"}]}},\"match\":\"(\\\\\\\\/\\\\\\\\*)((?>(?:[^\\\\\\\\*]|(?>\\\\\\\\*+)[^\\\\\\\\/])*)((?>\\\\\\\\*+)\\\\\\\\/))\"},{\"captures\":{\"1\":{\"name\":\"comment.block.c punctuation.definition.comment.begin.c\"},\"2\":{\"name\":\"comment.block.c\"},\"3\":{\"patterns\":[{\"match\":\"\\\\\\\\*\\\\\\\\/\",\"name\":\"comment.block.c punctuation.definition.comment.end.c\"},{\"match\":\"\\\\\\\\*\",\"name\":\"comment.block.c\"}]}},\"match\":\"(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]|(?:\\\\\\\\*)++[^\\\\\\\\/])*+((?:\\\\\\\\*)++\\\\\\\\/))\"}]},{\"captures\":{\"1\":{\"name\":\"comment.block.c punctuation.definition.comment.begin.c\"},\"2\":{\"name\":\"comment.block.c\"},\"3\":{\"patterns\":[{\"match\":\"\\\\\\\\*\\\\\\\\/\",\"name\":\"comment.block.c punctuation.definition.comment.end.c\"},{\"match\":\"\\\\\\\\*\",\"name\":\"comment.block.c\"}]}},\"match\":\"(\\\\\\\\/\\\\\\\\*)((?:[^\\\\\\\\*]|(?:\\\\\\\\*)++[^\\\\\\\\/])*+((?:\\\\\\\\*)++\\\\\\\\/))\"}]},\"line_comment\":{\"patterns\":[{\"begin\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\/)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.c\"}},\"end\":\"(?<=\\\\\\\\n)(?<!\\\\\\\\\\\\\\\\\\\\\\\\n)\",\"endCaptures\":{},\"name\":\"comment.line.double-slash.c\",\"patterns\":[{\"include\":\"#line_continuation_character\"}]},{\"begin\":\"\\\\\\\\s*+(\\\\\\\\/\\\\\\\\/)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.c\"}},\"end\":\"(?<=\\\\\\\\n)(?<!\\\\\\\\\\\\\\\\\\\\\\\\n)\",\"endCaptures\":{},\"name\":\"comment.line.double-slash.c\",\"patterns\":[{\"include\":\"#line_continuation_character\"}]}]},\"line_continuation_character\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.character.escape.line-continuation.c\"}},\"match\":\"(\\\\\\\\\\\\\\\\)\\\\\\\\n\"}]},\"member_access\":{\"captures\":{\"1\":{\"name\":\"variable.other.object.access.c\"},\"2\":{\"name\":\"punctuation.separator.dot-access.c\"},\"3\":{\"name\":\"punctuation.separator.pointer-access.c\"},\"4\":{\"patterns\":[{\"include\":\"#member_access\"},{\"include\":\"#method_access\"},{\"captures\":{\"1\":{\"name\":\"variable.other.object.access.c\"},\"2\":{\"name\":\"punctuation.separator.dot-access.c\"},\"3\":{\"name\":\"punctuation.separator.pointer-access.c\"}},\"match\":\"((?:[a-zA-Z_]\\\\\\\\w*|(?<=\\\\\\\\]|\\\\\\\\)))\\\\\\\\s*)(?:((?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.))|((?:->\\\\\\\\*|->)))\"}]},\"5\":{\"name\":\"variable.other.member.c\"}},\"match\":\"((?:[a-zA-Z_]\\\\\\\\w*|(?<=\\\\\\\\]|\\\\\\\\)))\\\\\\\\s*)(?:((?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.))|((?:->\\\\\\\\*|->)))((?:[a-zA-Z_]\\\\\\\\w*\\\\\\\\s*(?:(?:(?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.))|(?:(?:->\\\\\\\\*|->)))\\\\\\\\s*)*)\\\\\\\\s*(\\\\\\\\b(?!(?:atomic_uint_least64_t|atomic_uint_least16_t|atomic_uint_least32_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_fast64_t|atomic_uint_fast32_t|atomic_int_least64_t|atomic_int_least32_t|pthread_rwlockattr_t|atomic_uint_fast16_t|pthread_mutexattr_t|atomic_int_fast16_t|atomic_uint_fast8_t|atomic_int_fast64_t|atomic_int_least8_t|atomic_int_fast32_t|atomic_int_fast8_t|pthread_condattr_t|atomic_uintptr_t|atomic_ptrdiff_t|pthread_rwlock_t|atomic_uintmax_t|pthread_mutex_t|atomic_intmax_t|atomic_intptr_t|atomic_char32_t|atomic_char16_t|pthread_attr_t|atomic_wchar_t|uint_least64_t|uint_least32_t|uint_least16_t|pthread_cond_t|pthread_once_t|uint_fast64_t|uint_fast16_t|atomic_size_t|uint_least8_t|int_least64_t|int_least32_t|int_least16_t|pthread_key_t|atomic_ullong|atomic_ushort|uint_fast32_t|atomic_schar|atomic_short|uint_fast8_t|int_fast64_t|int_fast32_t|int_fast16_t|atomic_ulong|atomic_llong|int_least8_t|atomic_uchar|memory_order|suseconds_t|int_fast8_t|atomic_bool|atomic_char|atomic_uint|atomic_long|atomic_int|useconds_t|_Imaginary|blksize_t|pthread_t|in_addr_t|uintptr_t|in_port_t|uintmax_t|uintmax_t|blkcnt_t|uint16_t|unsigned|_Complex|uint32_t|intptr_t|intmax_t|intmax_t|uint64_t|u_quad_t|int64_t|int32_t|ssize_t|caddr_t|clock_t|uint8_t|u_short|swblk_t|segsz_t|int16_t|fixpt_t|daddr_t|nlink_t|qaddr_t|size_t|time_t|mode_t|signed|quad_t|ushort|u_long|u_char|double|int8_t|ino_t|uid_t|pid_t|_Bool|float|dev_t|div_t|short|gid_t|off_t|u_int|key_t|id_t|uint|long|void|char|bool|id_t|int)\\\\\\\\b)[a-zA-Z_]\\\\\\\\w*\\\\\\\\b(?!\\\\\\\\())\"},\"method_access\":{\"begin\":\"((?:[a-zA-Z_]\\\\\\\\w*|(?<=\\\\\\\\]|\\\\\\\\)))\\\\\\\\s*)(?:((?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.))|((?:->\\\\\\\\*|->)))((?:[a-zA-Z_]\\\\\\\\w*\\\\\\\\s*(?:(?:(?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.))|(?:(?:->\\\\\\\\*|->)))\\\\\\\\s*)*)\\\\\\\\s*([a-zA-Z_]\\\\\\\\w*)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.object.access.c\"},\"2\":{\"name\":\"punctuation.separator.dot-access.c\"},\"3\":{\"name\":\"punctuation.separator.pointer-access.c\"},\"4\":{\"patterns\":[{\"include\":\"#member_access\"},{\"include\":\"#method_access\"},{\"captures\":{\"1\":{\"name\":\"variable.other.object.access.c\"},\"2\":{\"name\":\"punctuation.separator.dot-access.c\"},\"3\":{\"name\":\"punctuation.separator.pointer-access.c\"}},\"match\":\"((?:[a-zA-Z_]\\\\\\\\w*|(?<=\\\\\\\\]|\\\\\\\\)))\\\\\\\\s*)(?:((?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.))|((?:->\\\\\\\\*|->)))\"}]},\"5\":{\"name\":\"entity.name.function.member.c\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.function.member.c\"}},\"contentName\":\"meta.function-call.member.c\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.arguments.end.bracket.round.function.member.c\"}},\"patterns\":[{\"include\":\"#function-call-innards\"}]},\"numbers\":{\"captures\":{\"0\":{\"patterns\":[{\"begin\":\"(?=.)\",\"end\":\"$\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.hexadecimal.c\"},\"2\":{\"name\":\"constant.numeric.hexadecimal.c\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric\"},\"4\":{\"name\":\"constant.numeric.hexadecimal.c\"},\"5\":{\"name\":\"constant.numeric.hexadecimal.c\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric\"}]},\"6\":{\"name\":\"punctuation.separator.constant.numeric\"},\"8\":{\"name\":\"keyword.other.unit.exponent.hexadecimal.c\"},\"9\":{\"name\":\"keyword.operator.plus.exponent.hexadecimal.c\"},\"10\":{\"name\":\"keyword.operator.minus.exponent.hexadecimal.c\"},\"11\":{\"name\":\"constant.numeric.exponent.hexadecimal.c\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric\"}]},\"12\":{\"name\":\"keyword.other.unit.suffix.floating-point.c\"}},\"match\":\"(\\\\\\\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9a-fA-F])\\\\\\\\.|\\\\\\\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?<!')([pP])(\\\\\\\\+?)(\\\\\\\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?([lLfF](?!\\\\\\\\w))?$\"},{\"captures\":{\"2\":{\"name\":\"constant.numeric.decimal.c\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric\"},\"4\":{\"name\":\"constant.numeric.decimal.point.c\"},\"5\":{\"name\":\"constant.numeric.decimal.c\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric\"}]},\"6\":{\"name\":\"punctuation.separator.constant.numeric\"},\"8\":{\"name\":\"keyword.other.unit.exponent.decimal.c\"},\"9\":{\"name\":\"keyword.operator.plus.exponent.decimal.c\"},\"10\":{\"name\":\"keyword.operator.minus.exponent.decimal.c\"},\"11\":{\"name\":\"constant.numeric.exponent.decimal.c\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric\"}]},\"12\":{\"name\":\"keyword.other.unit.suffix.floating-point.c\"}},\"match\":\"(\\\\\\\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9])\\\\\\\\.|\\\\\\\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?<!')([eE])(\\\\\\\\+?)(\\\\\\\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?([lLfF](?!\\\\\\\\w))?$\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.binary.c\"},\"2\":{\"name\":\"constant.numeric.binary.c\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric\"},\"4\":{\"name\":\"keyword.other.unit.suffix.integer.c\"}},\"match\":\"(\\\\\\\\G0[bB])([01](?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\\\\\\\w))?$\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.octal.c\"},\"2\":{\"name\":\"constant.numeric.octal.c\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric\"},\"4\":{\"name\":\"keyword.other.unit.suffix.integer.c\"}},\"match\":\"(\\\\\\\\G0)((?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))+)((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\\\\\\\w))?$\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.hexadecimal.c\"},\"2\":{\"name\":\"constant.numeric.hexadecimal.c\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric\"},\"5\":{\"name\":\"keyword.other.unit.exponent.hexadecimal.c\"},\"6\":{\"name\":\"keyword.operator.plus.exponent.hexadecimal.c\"},\"7\":{\"name\":\"keyword.operator.minus.exponent.hexadecimal.c\"},\"8\":{\"name\":\"constant.numeric.exponent.hexadecimal.c\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric\"}]},\"9\":{\"name\":\"keyword.other.unit.suffix.integer.c\"}},\"match\":\"(\\\\\\\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?<!')([pP])(\\\\\\\\+?)(\\\\\\\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\\\\\\\w))?$\"},{\"captures\":{\"2\":{\"name\":\"constant.numeric.decimal.c\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric\"},\"5\":{\"name\":\"keyword.other.unit.exponent.decimal.c\"},\"6\":{\"name\":\"keyword.operator.plus.exponent.decimal.c\"},\"7\":{\"name\":\"keyword.operator.minus.exponent.decimal.c\"},\"8\":{\"name\":\"constant.numeric.exponent.decimal.c\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric\"}]},\"9\":{\"name\":\"keyword.other.unit.suffix.integer.c\"}},\"match\":\"(\\\\\\\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?<!')([eE])(\\\\\\\\+?)(\\\\\\\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\\\\\\\w))?$\"},{\"match\":\"(?:(?:[0-9a-zA-Z_\\\\\\\\.]|')|(?<=[eEpP])[+-])+\",\"name\":\"invalid.illegal.constant.numeric\"}]}]}},\"match\":\"(?<!\\\\\\\\w)\\\\\\\\.?\\\\\\\\d(?:(?:[0-9a-zA-Z_\\\\\\\\.]|')|(?<=[eEpP])[+-])*\"},\"operators\":{\"patterns\":[{\"match\":\"(?<![\\\\\\\\w$])(sizeof)(?![\\\\\\\\w$])\",\"name\":\"keyword.operator.sizeof.c\"},{\"match\":\"--\",\"name\":\"keyword.operator.decrement.c\"},{\"match\":\"\\\\\\\\+\\\\\\\\+\",\"name\":\"keyword.operator.increment.c\"},{\"match\":\"%=|\\\\\\\\+=|-=|\\\\\\\\*=|(?<!\\\\\\\\()/=\",\"name\":\"keyword.operator.assignment.compound.c\"},{\"match\":\"&=|\\\\\\\\^=|<<=|>>=|\\\\\\\\|=\",\"name\":\"keyword.operator.assignment.compound.bitwise.c\"},{\"match\":\"<<|>>\",\"name\":\"keyword.operator.bitwise.shift.c\"},{\"match\":\"!=|<=|>=|==|<|>\",\"name\":\"keyword.operator.comparison.c\"},{\"match\":\"&&|!|\\\\\\\\|\\\\\\\\|\",\"name\":\"keyword.operator.logical.c\"},{\"match\":\"&|\\\\\\\\||\\\\\\\\^|~\",\"name\":\"keyword.operator.c\"},{\"match\":\"=\",\"name\":\"keyword.operator.assignment.c\"},{\"match\":\"%|\\\\\\\\*|/|-|\\\\\\\\+\",\"name\":\"keyword.operator.c\"},{\"begin\":\"(\\\\\\\\?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.ternary.c\"}},\"end\":\"(:)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.ternary.c\"}},\"patterns\":[{\"include\":\"#function-call-innards\"},{\"include\":\"$self\"}]}]},\"parens\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.c\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.c\"}},\"name\":\"meta.parens.c\",\"patterns\":[{\"include\":\"$self\"}]},\"parens-block\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.c\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.c\"}},\"name\":\"meta.parens.block.c\",\"patterns\":[{\"include\":\"#block_innards\"},{\"match\":\"(?-mix:(?<!:):(?!:))\",\"name\":\"punctuation.range-based.c\"}]},\"pragma-mark\":{\"captures\":{\"1\":{\"name\":\"meta.preprocessor.pragma.c\"},\"2\":{\"name\":\"keyword.control.directive.pragma.pragma-mark.c\"},\"3\":{\"name\":\"punctuation.definition.directive.c\"},\"4\":{\"name\":\"entity.name.tag.pragma-mark.c\"}},\"match\":\"^\\\\\\\\s*(((#)\\\\\\\\s*pragma\\\\\\\\s+mark)\\\\\\\\s+(.*))\",\"name\":\"meta.section.c\"},\"predefined_macros\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.other.preprocessor.macro.predefined.$1.c\"}},\"match\":\"\\\\\\\\b(__cplusplus|__DATE__|__FILE__|__LINE__|__STDC__|__STDC_HOSTED__|__STDC_NO_COMPLEX__|__STDC_VERSION__|__STDCPP_THREADS__|__TIME__|NDEBUG|__OBJC__|__ASSEMBLER__|__ATOM__|__AVX__|__AVX2__|_CHAR_UNSIGNED|__CLR_VER|_CONTROL_FLOW_GUARD|__COUNTER__|__cplusplus_cli|__cplusplus_winrt|_CPPRTTI|_CPPUNWIND|_DEBUG|_DLL|__FUNCDNAME__|__FUNCSIG__|__FUNCTION__|_INTEGRAL_MAX_BITS|__INTELLISENSE__|_ISO_VOLATILE|_KERNEL_MODE|_M_AMD64|_M_ARM|_M_ARM_ARMV7VE|_M_ARM_FP|_M_ARM64|_M_CEE|_M_CEE_PURE|_M_CEE_SAFE|_M_FP_EXCEPT|_M_FP_FAST|_M_FP_PRECISE|_M_FP_STRICT|_M_IX86|_M_IX86_FP|_M_X64|_MANAGED|_MSC_BUILD|_MSC_EXTENSIONS|_MSC_FULL_VER|_MSC_VER|_MSVC_LANG|__MSVC_RUNTIME_CHECKS|_MT|_NATIVE_WCHAR_T_DEFINED|_OPENMP|_PREFAST|__TIMESTAMP__|_VC_NO_DEFAULTLIB|_WCHAR_T_DEFINED|_WIN32|_WIN64|_WINRT_DLL|_ATL_VER|_MFC_VER|__GFORTRAN__|__GNUC__|__GNUC_MINOR__|__GNUC_PATCHLEVEL__|__GNUG__|__STRICT_ANSI__|__BASE_FILE__|__INCLUDE_LEVEL__|__ELF__|__VERSION__|__OPTIMIZE__|__OPTIMIZE_SIZE__|__NO_INLINE__|__GNUC_STDC_INLINE__|__CHAR_UNSIGNED__|__WCHAR_UNSIGNED__|__REGISTER_PREFIX__|__REGISTER_PREFIX__|__SIZE_TYPE__|__PTRDIFF_TYPE__|__WCHAR_TYPE__|__WINT_TYPE__|__INTMAX_TYPE__|__UINTMAX_TYPE__|__SIG_ATOMIC_TYPE__|__INT8_TYPE__|__INT16_TYPE__|__INT32_TYPE__|__INT64_TYPE__|__UINT8_TYPE__|__UINT16_TYPE__|__UINT32_TYPE__|__UINT64_TYPE__|__INT_LEAST8_TYPE__|__INT_LEAST16_TYPE__|__INT_LEAST32_TYPE__|__INT_LEAST64_TYPE__|__UINT_LEAST8_TYPE__|__UINT_LEAST16_TYPE__|__UINT_LEAST32_TYPE__|__UINT_LEAST64_TYPE__|__INT_FAST8_TYPE__|__INT_FAST16_TYPE__|__INT_FAST32_TYPE__|__INT_FAST64_TYPE__|__UINT_FAST8_TYPE__|__UINT_FAST16_TYPE__|__UINT_FAST32_TYPE__|__UINT_FAST64_TYPE__|__INTPTR_TYPE__|__UINTPTR_TYPE__|__CHAR_BIT__|__SCHAR_MAX__|__WCHAR_MAX__|__SHRT_MAX__|__INT_MAX__|__LONG_MAX__|__LONG_LONG_MAX__|__WINT_MAX__|__SIZE_MAX__|__PTRDIFF_MAX__|__INTMAX_MAX__|__UINTMAX_MAX__|__SIG_ATOMIC_MAX__|__INT8_MAX__|__INT16_MAX__|__INT32_MAX__|__INT64_MAX__|__UINT8_MAX__|__UINT16_MAX__|__UINT32_MAX__|__UINT64_MAX__|__INT_LEAST8_MAX__|__INT_LEAST16_MAX__|__INT_LEAST32_MAX__|__INT_LEAST64_MAX__|__UINT_LEAST8_MAX__|__UINT_LEAST16_MAX__|__UINT_LEAST32_MAX__|__UINT_LEAST64_MAX__|__INT_FAST8_MAX__|__INT_FAST16_MAX__|__INT_FAST32_MAX__|__INT_FAST64_MAX__|__UINT_FAST8_MAX__|__UINT_FAST16_MAX__|__UINT_FAST32_MAX__|__UINT_FAST64_MAX__|__INTPTR_MAX__|__UINTPTR_MAX__|__WCHAR_MIN__|__WINT_MIN__|__SIG_ATOMIC_MIN__|__SCHAR_WIDTH__|__SHRT_WIDTH__|__INT_WIDTH__|__LONG_WIDTH__|__LONG_LONG_WIDTH__|__PTRDIFF_WIDTH__|__SIG_ATOMIC_WIDTH__|__SIZE_WIDTH__|__WCHAR_WIDTH__|__WINT_WIDTH__|__INT_LEAST8_WIDTH__|__INT_LEAST16_WIDTH__|__INT_LEAST32_WIDTH__|__INT_LEAST64_WIDTH__|__INT_FAST8_WIDTH__|__INT_FAST16_WIDTH__|__INT_FAST32_WIDTH__|__INT_FAST64_WIDTH__|__INTPTR_WIDTH__|__INTMAX_WIDTH__|__SIZEOF_INT__|__SIZEOF_LONG__|__SIZEOF_LONG_LONG__|__SIZEOF_SHORT__|__SIZEOF_POINTER__|__SIZEOF_FLOAT__|__SIZEOF_DOUBLE__|__SIZEOF_LONG_DOUBLE__|__SIZEOF_SIZE_T__|__SIZEOF_WCHAR_T__|__SIZEOF_WINT_T__|__SIZEOF_PTRDIFF_T__|__BYTE_ORDER__|__ORDER_LITTLE_ENDIAN__|__ORDER_BIG_ENDIAN__|__ORDER_PDP_ENDIAN__|__FLOAT_WORD_ORDER__|__DEPRECATED|__EXCEPTIONS|__GXX_RTTI|__USING_SJLJ_EXCEPTIONS__|__GXX_EXPERIMENTAL_CXX0X__|__GXX_WEAK__|__NEXT_RUNTIME__|__LP64__|_LP64|__SSP__|__SSP_ALL__|__SSP_STRONG__|__SSP_EXPLICIT__|__SANITIZE_ADDRESS__|__SANITIZE_THREAD__|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16|__HAVE_SPECULATION_SAFE_VALUE|__GCC_HAVE_DWARF2_CFI_ASM|__FP_FAST_FMA|__FP_FAST_FMAF|__FP_FAST_FMAL|__FP_FAST_FMAF16|__FP_FAST_FMAF32|__FP_FAST_FMAF64|__FP_FAST_FMAF128|__FP_FAST_FMAF32X|__FP_FAST_FMAF64X|__FP_FAST_FMAF128X|__GCC_IEC_559|__GCC_IEC_559_COMPLEX|__NO_MATH_ERRNO__|__has_builtin|__has_feature|__has_extension|__has_cpp_attribute|__has_c_attribute|__has_attribute|__has_declspec_attribute|__is_identifier|__has_include|__has_include_next|__has_warning|__BASE_FILE__|__FILE_NAME__|__clang__|__clang_major__|__clang_minor__|__clang_patchlevel__|__clang_version__|__fp16|_Float16)\\\\\\\\b\"},{\"match\":\"\\\\\\\\b__([A-Z_]+)__\\\\\\\\b\",\"name\":\"entity.name.other.preprocessor.macro.predefined.probably.$1.c\"}]},\"preprocessor-rule-conditional\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*if(?:n?def)?\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.c\"},\"1\":{\"name\":\"keyword.control.directive.conditional.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"end\":\"^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"meta.preprocessor.c\"},\"1\":{\"name\":\"keyword.control.directive.conditional.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.c\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#preprocessor-rule-enabled-elif\"},{\"include\":\"#preprocessor-rule-enabled-else\"},{\"include\":\"#preprocessor-rule-disabled-elif\"},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.conditional.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.c\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"$self\"}]},{\"captures\":{\"0\":{\"name\":\"invalid.illegal.stray-$1.c\"}},\"match\":\"^\\\\\\\\s*#\\\\\\\\s*(else|elif|endif)\\\\\\\\b\"}]},\"preprocessor-rule-conditional-block\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*if(?:n?def)?\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.c\"},\"1\":{\"name\":\"keyword.control.directive.conditional.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"end\":\"^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"meta.preprocessor.c\"},\"1\":{\"name\":\"keyword.control.directive.conditional.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.c\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#preprocessor-rule-enabled-elif-block\"},{\"include\":\"#preprocessor-rule-enabled-else-block\"},{\"include\":\"#preprocessor-rule-disabled-elif\"},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.conditional.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.c\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#block_innards\"}]},{\"captures\":{\"0\":{\"name\":\"invalid.illegal.stray-$1.c\"}},\"match\":\"^\\\\\\\\s*#\\\\\\\\s*(else|elif|endif)\\\\\\\\b\"}]},\"preprocessor-rule-conditional-line\":{\"patterns\":[{\"match\":\"(?:\\\\\\\\bdefined\\\\\\\\b\\\\\\\\s*$)|(?:\\\\\\\\bdefined\\\\\\\\b(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\s*(?:(?!defined\\\\\\\\b)[a-zA-Z_$][\\\\\\\\w$]*\\\\\\\\b)\\\\\\\\s*\\\\\\\\)*\\\\\\\\s*(?:\\\\\\\\n|//|/\\\\\\\\*|\\\\\\\\?|\\\\\\\\:|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n)))\",\"name\":\"keyword.control.directive.conditional.c\"},{\"match\":\"\\\\\\\\bdefined\\\\\\\\b\",\"name\":\"invalid.illegal.macro-name.c\"},{\"include\":\"#comments\"},{\"include\":\"#strings\"},{\"include\":\"#numbers\"},{\"begin\":\"\\\\\\\\?\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.ternary.c\"}},\"end\":\":\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.ternary.c\"}},\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#operators\"},{\"match\":\"\\\\\\\\b(NULL|true|false|TRUE|FALSE)\\\\\\\\b\",\"name\":\"constant.language.c\"},{\"match\":\"[a-zA-Z_$][\\\\\\\\w$]*\",\"name\":\"entity.name.function.preprocessor.c\"},{\"include\":\"#line_continuation_character\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.c\"}},\"end\":\"\\\\\\\\)|(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.c\"}},\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]}]},\"preprocessor-rule-define-line-blocks\":{\"patterns\":[{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.c\"}},\"end\":\"}|(?=\\\\\\\\s*#\\\\\\\\s*(?:elif|else|endif)\\\\\\\\b)|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.c\"}},\"patterns\":[{\"include\":\"#preprocessor-rule-define-line-blocks\"},{\"include\":\"#preprocessor-rule-define-line-contents\"}]},{\"include\":\"#preprocessor-rule-define-line-contents\"}]},\"preprocessor-rule-define-line-contents\":{\"patterns\":[{\"include\":\"#vararg_ellipses\"},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.c\"}},\"end\":\"}|(?=\\\\\\\\s*#\\\\\\\\s*(?:elif|else|endif)\\\\\\\\b)|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.c\"}},\"name\":\"meta.block.c\",\"patterns\":[{\"include\":\"#preprocessor-rule-define-line-blocks\"}]},{\"match\":\"\\\\\\\\(\",\"name\":\"punctuation.section.parens.begin.bracket.round.c\"},{\"match\":\"\\\\\\\\)\",\"name\":\"punctuation.section.parens.end.bracket.round.c\"},{\"begin\":\"(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\\\\\\\s*\\\\\\\\()(?=(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\\\\\\\s*\\\\\\\\(|(?:(?<=operator)(?:[-*&<>=+!]+|\\\\\\\\(\\\\\\\\)|\\\\\\\\[\\\\\\\\]))\\\\\\\\s*\\\\\\\\()\",\"end\":\"(?<=\\\\\\\\))(?!\\\\\\\\w)|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"name\":\"meta.function.c\",\"patterns\":[{\"include\":\"#preprocessor-rule-define-line-functions\"}]},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.c\"}},\"end\":\"\\\\\"|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.c\"}},\"name\":\"string.quoted.double.c\",\"patterns\":[{\"include\":\"#string_escaped_char\"},{\"include\":\"#string_placeholder\"},{\"include\":\"#line_continuation_character\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.c\"}},\"end\":\"'|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.c\"}},\"name\":\"string.quoted.single.c\",\"patterns\":[{\"include\":\"#string_escaped_char\"},{\"include\":\"#line_continuation_character\"}]},{\"include\":\"#method_access\"},{\"include\":\"#member_access\"},{\"include\":\"$self\"}]},\"preprocessor-rule-define-line-functions\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#storage_types\"},{\"include\":\"#vararg_ellipses\"},{\"include\":\"#method_access\"},{\"include\":\"#member_access\"},{\"include\":\"#operators\"},{\"begin\":\"(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\\\\\\\s*\\\\\\\\()((?:[A-Za-z_][A-Za-z0-9_]*+|::)++|(?:(?<=operator)(?:[-*&<>=+!]+|\\\\\\\\(\\\\\\\\)|\\\\\\\\[\\\\\\\\])))\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.c\"},\"2\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.c\"}},\"end\":\"(\\\\\\\\))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.arguments.end.bracket.round.c\"}},\"patterns\":[{\"include\":\"#preprocessor-rule-define-line-functions\"}]},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.c\"}},\"end\":\"(\\\\\\\\))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.parens.end.bracket.round.c\"}},\"patterns\":[{\"include\":\"#preprocessor-rule-define-line-functions\"}]},{\"include\":\"#preprocessor-rule-define-line-contents\"}]},\"preprocessor-rule-disabled\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*if\\\\\\\\b)(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\b0+\\\\\\\\b\\\\\\\\)*\\\\\\\\s*(?:$|//|/\\\\\\\\*))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.c\"},\"1\":{\"name\":\"keyword.control.directive.conditional.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"end\":\"^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"meta.preprocessor.c\"},\"1\":{\"name\":\"keyword.control.directive.conditional.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.c\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#comments\"},{\"include\":\"#preprocessor-rule-enabled-elif\"},{\"include\":\"#preprocessor-rule-enabled-else\"},{\"include\":\"#preprocessor-rule-disabled-elif\"},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.c\"},\"1\":{\"name\":\"keyword.control.directive.conditional.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:elif|else|endif)\\\\\\\\b))\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.c\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\n\",\"contentName\":\"comment.block.preprocessor.if-branch.c\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]}]}]},\"preprocessor-rule-disabled-block\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*if\\\\\\\\b)(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\b0+\\\\\\\\b\\\\\\\\)*\\\\\\\\s*(?:$|//|/\\\\\\\\*))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.c\"},\"1\":{\"name\":\"keyword.control.directive.conditional.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"end\":\"^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"meta.preprocessor.c\"},\"1\":{\"name\":\"keyword.control.directive.conditional.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.c\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#comments\"},{\"include\":\"#preprocessor-rule-enabled-elif-block\"},{\"include\":\"#preprocessor-rule-enabled-else-block\"},{\"include\":\"#preprocessor-rule-disabled-elif\"},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.c\"},\"1\":{\"name\":\"keyword.control.directive.conditional.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:elif|else|endif)\\\\\\\\b))\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.c\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#block_innards\"}]},{\"begin\":\"\\\\\\\\n\",\"contentName\":\"comment.block.preprocessor.if-branch.in-block.c\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]}]}]},\"preprocessor-rule-disabled-elif\":{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\b0+\\\\\\\\b\\\\\\\\)*\\\\\\\\s*(?:$|//|/\\\\\\\\*))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.c\"},\"1\":{\"name\":\"keyword.control.directive.conditional.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:elif|else|endif)\\\\\\\\b))\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.c\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#comments\"},{\"begin\":\"\\\\\\\\n\",\"contentName\":\"comment.block.preprocessor.elif-branch.c\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]}]},\"preprocessor-rule-enabled\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*if\\\\\\\\b)(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\b0*1\\\\\\\\b\\\\\\\\)*\\\\\\\\s*(?:$|//|/\\\\\\\\*))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.c\"},\"1\":{\"name\":\"keyword.control.directive.conditional.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"},\"3\":{\"name\":\"constant.numeric.preprocessor.c\"}},\"end\":\"^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"meta.preprocessor.c\"},\"1\":{\"name\":\"keyword.control.directive.conditional.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.c\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#comments\"},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*else\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.c\"},\"1\":{\"name\":\"keyword.control.directive.conditional.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"contentName\":\"comment.block.preprocessor.else-branch.c\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.c\"},\"1\":{\"name\":\"keyword.control.directive.conditional.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"contentName\":\"comment.block.preprocessor.if-branch.c\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"begin\":\"\\\\\\\\n\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"$self\"}]}]}]},\"preprocessor-rule-enabled-block\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*if\\\\\\\\b)(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\b0*1\\\\\\\\b\\\\\\\\)*\\\\\\\\s*(?:$|//|/\\\\\\\\*))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.c\"},\"1\":{\"name\":\"keyword.control.directive.conditional.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"end\":\"^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"meta.preprocessor.c\"},\"1\":{\"name\":\"keyword.control.directive.conditional.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.c\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#comments\"},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*else\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.c\"},\"1\":{\"name\":\"keyword.control.directive.conditional.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"contentName\":\"comment.block.preprocessor.else-branch.in-block.c\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.c\"},\"1\":{\"name\":\"keyword.control.directive.conditional.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"contentName\":\"comment.block.preprocessor.if-branch.in-block.c\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"begin\":\"\\\\\\\\n\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#block_innards\"}]}]}]},\"preprocessor-rule-enabled-elif\":{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\b0*1\\\\\\\\b\\\\\\\\)*\\\\\\\\s*(?:$|//|/\\\\\\\\*))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.c\"},\"1\":{\"name\":\"keyword.control.directive.conditional.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.c\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#comments\"},{\"begin\":\"\\\\\\\\n\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:endif)\\\\\\\\b))\",\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*(else)\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.c\"},\"1\":{\"name\":\"keyword.control.directive.conditional.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"contentName\":\"comment.block.preprocessor.elif-branch.c\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*(elif)\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.c\"},\"1\":{\"name\":\"keyword.control.directive.conditional.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"contentName\":\"comment.block.preprocessor.elif-branch.c\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"include\":\"$self\"}]}]},\"preprocessor-rule-enabled-elif-block\":{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\b0*1\\\\\\\\b\\\\\\\\)*\\\\\\\\s*(?:$|//|/\\\\\\\\*))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.c\"},\"1\":{\"name\":\"keyword.control.directive.conditional.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.c\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#comments\"},{\"begin\":\"\\\\\\\\n\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:endif)\\\\\\\\b))\",\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*(else)\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.c\"},\"1\":{\"name\":\"keyword.control.directive.conditional.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"contentName\":\"comment.block.preprocessor.elif-branch.in-block.c\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*(elif)\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.c\"},\"1\":{\"name\":\"keyword.control.directive.conditional.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"contentName\":\"comment.block.preprocessor.elif-branch.c\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"include\":\"#block_innards\"}]}]},\"preprocessor-rule-enabled-else\":{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*else\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.c\"},\"1\":{\"name\":\"keyword.control.directive.conditional.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"include\":\"$self\"}]},\"preprocessor-rule-enabled-else-block\":{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*else\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.c\"},\"1\":{\"name\":\"keyword.control.directive.conditional.c\"},\"2\":{\"name\":\"punctuation.definition.directive.c\"}},\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"include\":\"#block_innards\"}]},\"probably_a_parameter\":{\"captures\":{\"1\":{\"name\":\"variable.parameter.probably.c\"}},\"match\":\"(?<=(?:[a-zA-Z_0-9] |[&*>\\\\\\\\]\\\\\\\\)]))\\\\\\\\s*([a-zA-Z_]\\\\\\\\w*)\\\\\\\\s*(?=(?:\\\\\\\\[\\\\\\\\]\\\\\\\\s*)?(?:,|\\\\\\\\)))\"},\"static_assert\":{\"begin\":\"((?>(?:(?:(?>(?<!\\\\\\\\s)\\\\\\\\s+)|(\\\\\\\\/\\\\\\\\*)((?>(?:[^\\\\\\\\*]|(?>\\\\\\\\*+)[^\\\\\\\\/])*)((?>\\\\\\\\*+)\\\\\\\\/)))+|(?:(?:(?:(?:\\\\\\\\b|(?<=\\\\\\\\W))|(?=\\\\\\\\W))|\\\\\\\\A)|\\\\\\\\Z))))((?<!\\\\\\\\w)static_assert|_Static_assert(?!\\\\\\\\w))((?>(?:(?:(?>(?<!\\\\\\\\s)\\\\\\\\s+)|(\\\\\\\\/\\\\\\\\*)((?>(?:[^\\\\\\\\*]|(?>\\\\\\\\*+)[^\\\\\\\\/])*)((?>\\\\\\\\*+)\\\\\\\\/)))+|(?:(?:(?:(?:\\\\\\\\b|(?<=\\\\\\\\W))|(?=\\\\\\\\W))|\\\\\\\\A)|\\\\\\\\Z))))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.c punctuation.definition.comment.begin.c\"},\"3\":{\"name\":\"comment.block.c\"},\"4\":{\"patterns\":[{\"match\":\"\\\\\\\\*\\\\\\\\/\",\"name\":\"comment.block.c punctuation.definition.comment.end.c\"},{\"match\":\"\\\\\\\\*\",\"name\":\"comment.block.c\"}]},\"5\":{\"name\":\"keyword.other.static_assert.c\"},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"name\":\"comment.block.c punctuation.definition.comment.begin.c\"},\"8\":{\"name\":\"comment.block.c\"},\"9\":{\"patterns\":[{\"match\":\"\\\\\\\\*\\\\\\\\/\",\"name\":\"comment.block.c punctuation.definition.comment.end.c\"},{\"match\":\"\\\\\\\\*\",\"name\":\"comment.block.c\"}]},\"10\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.static_assert.c\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.arguments.end.bracket.round.static_assert.c\"}},\"patterns\":[{\"begin\":\"(,)\\\\\\\\s*(?=(?:L|u8|u|U\\\\\\\\s*\\\\\\\\\\\\\")?)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.delimiter.comma.c\"}},\"end\":\"(?=\\\\\\\\))\",\"name\":\"meta.static_assert.message.c\",\"patterns\":[{\"include\":\"#string_context\"}]},{\"include\":\"#evaluation_context\"}]},\"storage_types\":{\"patterns\":[{\"match\":\"(?-mix:(?<!\\\\\\\\w)(?:unsigned|signed|double|_Bool|short|float|long|void|char|bool|int)(?!\\\\\\\\w))\",\"name\":\"storage.type.built-in.primitive.c\"},{\"match\":\"(?-mix:(?<!\\\\\\\\w)(?:atomic_uint_least64_t|atomic_uint_least16_t|atomic_uint_least32_t|pthread_rwlockattr_t|atomic_uint_fast64_t|atomic_uint_fast32_t|atomic_uint_fast16_t|atomic_int_least64_t|atomic_int_least32_t|atomic_int_least16_t|atomic_uint_least8_t|atomic_uint_fast8_t|atomic_int_least8_t|atomic_int_fast16_t|pthread_mutexattr_t|atomic_int_fast32_t|atomic_int_fast64_t|atomic_int_fast8_t|pthread_condattr_t|atomic_ptrdiff_t|pthread_rwlock_t|atomic_uintptr_t|atomic_uintmax_t|atomic_intmax_t|atomic_intptr_t|atomic_char32_t|atomic_char16_t|pthread_mutex_t|pthread_cond_t|atomic_wchar_t|uint_least64_t|uint_least32_t|uint_least16_t|pthread_once_t|pthread_attr_t|int_least32_t|pthread_key_t|int_least16_t|int_least64_t|uint_least8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|atomic_ushort|atomic_ullong|atomic_size_t|int_fast16_t|int_fast64_t|uint_fast8_t|atomic_short|atomic_uchar|atomic_schar|int_least8_t|memory_order|atomic_llong|atomic_ulong|int_fast32_t|atomic_long|atomic_uint|atomic_char|int_fast8_t|suseconds_t|atomic_bool|atomic_int|_Imaginary|useconds_t|in_port_t|uintmax_t|uintmax_t|pthread_t|blksize_t|in_addr_t|uintptr_t|blkcnt_t|uint16_t|uint32_t|uint64_t|u_quad_t|_Complex|intptr_t|intmax_t|intmax_t|segsz_t|u_short|nlink_t|uint8_t|int64_t|int32_t|int16_t|fixpt_t|daddr_t|caddr_t|qaddr_t|ssize_t|clock_t|swblk_t|u_long|mode_t|int8_t|time_t|ushort|u_char|quad_t|size_t|pid_t|gid_t|uid_t|dev_t|div_t|off_t|u_int|key_t|ino_t|uint|id_t|id_t)(?!\\\\\\\\w))\",\"name\":\"storage.type.built-in.c\"},{\"match\":\"(?-mix:\\\\\\\\b(enum|struct|union)\\\\\\\\b)\",\"name\":\"storage.type.$1.c\"},{\"begin\":\"(\\\\\\\\b(?:__asm__|asm)\\\\\\\\b)\\\\\\\\s*((?:volatile)?)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.asm.c\"},\"2\":{\"name\":\"storage.modifier.c\"}},\"end\":\"(?!\\\\\\\\G)\",\"name\":\"meta.asm.c\",\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.c punctuation.definition.comment.begin.c\"},\"3\":{\"name\":\"comment.block.c\"},\"4\":{\"patterns\":[{\"match\":\"\\\\\\\\*\\\\\\\\/\",\"name\":\"comment.block.c punctuation.definition.comment.end.c\"},{\"match\":\"\\\\\\\\*\",\"name\":\"comment.block.c\"}]}},\"match\":\"(?:^)((?:(?:(?>\\\\\\\\s+)|(\\\\\\\\/\\\\\\\\*)((?>(?:[^\\\\\\\\*]|(?>\\\\\\\\*+)[^\\\\\\\\/])*)((?>\\\\\\\\*+)\\\\\\\\/)))+?|(?:(?:(?:(?:\\\\\\\\b|(?<=\\\\\\\\W))|(?=\\\\\\\\W))|\\\\\\\\A)|\\\\\\\\Z)))(?:\\\\\\\\n|$)\"},{\"include\":\"#comments\"},{\"begin\":\"(((?:(?:(?>\\\\\\\\s+)|(\\\\\\\\/\\\\\\\\*)((?>(?:[^\\\\\\\\*]|(?>\\\\\\\\*+)[^\\\\\\\\/])*)((?>\\\\\\\\*+)\\\\\\\\/)))+?|(?:(?:(?:(?:\\\\\\\\b|(?<=\\\\\\\\W))|(?=\\\\\\\\W))|\\\\\\\\A)|\\\\\\\\Z)))\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.parens.begin.bracket.round.assembly.c\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.c punctuation.definition.comment.begin.c\"},\"4\":{\"name\":\"comment.block.c\"},\"5\":{\"patterns\":[{\"match\":\"\\\\\\\\*\\\\\\\\/\",\"name\":\"comment.block.c punctuation.definition.comment.end.c\"},{\"match\":\"\\\\\\\\*\",\"name\":\"comment.block.c\"}]}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.parens.end.bracket.round.assembly.c\"}},\"patterns\":[{\"begin\":\"(R?)(\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"meta.encoding.c\"},\"2\":{\"name\":\"punctuation.definition.string.begin.assembly.c\"}},\"contentName\":\"meta.embedded.assembly.c\",\"end\":\"(\\\\\")\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.assembly.c\"}},\"name\":\"string.quoted.double.c\",\"patterns\":[{\"include\":\"source.asm\"},{\"include\":\"source.x86\"},{\"include\":\"source.x86_64\"},{\"include\":\"source.arm\"},{\"include\":\"#backslash_escapes\"},{\"include\":\"#string_escaped_char\"}]},{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.parens.begin.bracket.round.assembly.inner.c\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.parens.end.bracket.round.assembly.inner.c\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.c punctuation.definition.comment.begin.c\"},\"3\":{\"name\":\"comment.block.c\"},\"4\":{\"patterns\":[{\"match\":\"\\\\\\\\*\\\\\\\\/\",\"name\":\"comment.block.c punctuation.definition.comment.end.c\"},{\"match\":\"\\\\\\\\*\",\"name\":\"comment.block.c\"}]},\"5\":{\"name\":\"variable.other.asm.label.c\"},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"name\":\"comment.block.c punctuation.definition.comment.begin.c\"},\"8\":{\"name\":\"comment.block.c\"},\"9\":{\"patterns\":[{\"match\":\"\\\\\\\\*\\\\\\\\/\",\"name\":\"comment.block.c punctuation.definition.comment.end.c\"},{\"match\":\"\\\\\\\\*\",\"name\":\"comment.block.c\"}]}},\"match\":\"\\\\\\\\[((?:(?:(?>\\\\\\\\s+)|(\\\\\\\\/\\\\\\\\*)((?>(?:[^\\\\\\\\*]|(?>\\\\\\\\*+)[^\\\\\\\\/])*)((?>\\\\\\\\*+)\\\\\\\\/)))+?|(?:(?:(?:(?:\\\\\\\\b|(?<=\\\\\\\\W))|(?=\\\\\\\\W))|\\\\\\\\A)|\\\\\\\\Z)))([a-zA-Z_]\\\\\\\\w*)((?:(?:(?>\\\\\\\\s+)|(\\\\\\\\/\\\\\\\\*)((?>(?:[^\\\\\\\\*]|(?>\\\\\\\\*+)[^\\\\\\\\/])*)((?>\\\\\\\\*+)\\\\\\\\/)))+?|(?:(?:(?:(?:\\\\\\\\b|(?<=\\\\\\\\W))|(?=\\\\\\\\W))|\\\\\\\\A)|\\\\\\\\Z)))\\\\\\\\]\"},{\"match\":\":\",\"name\":\"punctuation.separator.delimiter.colon.assembly.c\"},{\"include\":\"#comments\"}]}]}]},\"string_escaped_char\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(\\\\\\\\\\\\\\\\|[abefnprtv'\\\\\"?]|[0-3]\\\\\\\\d{,2}|[4-7]\\\\\\\\d?|x[a-fA-F0-9]{,2}|u[a-fA-F0-9]{,4}|U[a-fA-F0-9]{,8})\",\"name\":\"constant.character.escape.c\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"invalid.illegal.unknown-escape.c\"}]},\"string_placeholder\":{\"patterns\":[{\"match\":\"%(\\\\\\\\d+\\\\\\\\$)?[#0\\\\\\\\- +']*[,;:_]?((-?\\\\\\\\d+)|\\\\\\\\*(-?\\\\\\\\d+\\\\\\\\$)?)?(\\\\\\\\.((-?\\\\\\\\d+)|\\\\\\\\*(-?\\\\\\\\d+\\\\\\\\$)?)?)?(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)?[diouxXDOUeEfFgGaACcSspn%]\",\"name\":\"constant.other.placeholder.c\"},{\"captures\":{\"1\":{\"name\":\"invalid.illegal.placeholder.c\"}},\"match\":\"(%)(?!\\\\\"\\\\\\\\s*(PRI|SCN))\"}]},\"strings\":{\"patterns\":[{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.c\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.c\"}},\"name\":\"string.quoted.double.c\",\"patterns\":[{\"include\":\"#string_escaped_char\"},{\"include\":\"#string_placeholder\"},{\"include\":\"#line_continuation_character\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.c\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.c\"}},\"name\":\"string.quoted.single.c\",\"patterns\":[{\"include\":\"#string_escaped_char\"},{\"include\":\"#line_continuation_character\"}]}]},\"switch_conditional_parentheses\":{\"begin\":\"((?>(?:(?:(?>(?<!\\\\\\\\s)\\\\\\\\s+)|(\\\\\\\\/\\\\\\\\*)((?>(?:[^\\\\\\\\*]|(?>\\\\\\\\*+)[^\\\\\\\\/])*)((?>\\\\\\\\*+)\\\\\\\\/)))+|(?:(?:(?:(?:\\\\\\\\b|(?<=\\\\\\\\W))|(?=\\\\\\\\W))|\\\\\\\\A)|\\\\\\\\Z))))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.c punctuation.definition.comment.begin.c\"},\"3\":{\"name\":\"comment.block.c\"},\"4\":{\"patterns\":[{\"match\":\"\\\\\\\\*\\\\\\\\/\",\"name\":\"comment.block.c punctuation.definition.comment.end.c\"},{\"match\":\"\\\\\\\\*\",\"name\":\"comment.block.c\"}]},\"5\":{\"name\":\"punctuation.section.parens.begin.bracket.round.conditional.switch.c\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.parens.end.bracket.round.conditional.switch.c\"}},\"name\":\"meta.conditional.switch.c\",\"patterns\":[{\"include\":\"#evaluation_context\"},{\"include\":\"#c_conditional_context\"}]},\"switch_statement\":{\"begin\":\"(((?>(?:(?:(?>(?<!\\\\\\\\s)\\\\\\\\s+)|(\\\\\\\\/\\\\\\\\*)((?>(?:[^\\\\\\\\*]|(?>\\\\\\\\*+)[^\\\\\\\\/])*)((?>\\\\\\\\*+)\\\\\\\\/)))+|(?:(?:(?:(?:\\\\\\\\b|(?<=\\\\\\\\W))|(?=\\\\\\\\W))|\\\\\\\\A)|\\\\\\\\Z))))((?<!\\\\\\\\w)switch(?!\\\\\\\\w)))\",\"beginCaptures\":{\"1\":{\"name\":\"meta.head.switch.c\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.c punctuation.definition.comment.begin.c\"},\"4\":{\"name\":\"comment.block.c\"},\"5\":{\"patterns\":[{\"match\":\"\\\\\\\\*\\\\\\\\/\",\"name\":\"comment.block.c punctuation.definition.comment.end.c\"},{\"match\":\"\\\\\\\\*\",\"name\":\"comment.block.c\"}]},\"6\":{\"name\":\"keyword.control.switch.c\"}},\"end\":\"(?:(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)|(?=[;>\\\\\\\\[\\\\\\\\]=]))\",\"name\":\"meta.block.switch.c\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"end\":\"((?:\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<|(?=;)))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.block.begin.bracket.curly.switch.c\"}},\"name\":\"meta.head.switch.c\",\"patterns\":[{\"include\":\"#switch_conditional_parentheses\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\\\\\{|<%|\\\\\\\\?\\\\\\\\?<)\",\"end\":\"(\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.block.end.bracket.curly.switch.c\"}},\"name\":\"meta.body.switch.c\",\"patterns\":[{\"include\":\"#default_statement\"},{\"include\":\"#case_statement\"},{\"include\":\"$self\"},{\"include\":\"#block_innards\"}]},{\"begin\":\"(?<=\\\\\\\\}|%>|\\\\\\\\?\\\\\\\\?>)[\\\\\\\\s\\\\\\\\n]*\",\"end\":\"[\\\\\\\\s\\\\\\\\n]*(?=;)\",\"name\":\"meta.tail.switch.c\",\"patterns\":[{\"include\":\"$self\"}]}]},\"vararg_ellipses\":{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\.\\\\\\\\.\\\\\\\\.(?!\\\\\\\\.)\",\"name\":\"punctuation.vararg-ellipses.c\"}},\"scopeName\":\"source.c\"}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/C4bX54si.js",
    "content": "import{d as n,C as a,g as i,j as t,G as l,R as o,Q as d}from\"./CU_MfyYc.js\";const c={class:\"w-full flex justify-between items-center\"},_=[\"textContent\"],g={class:\"whitespace-nowrap ml-2\"},k=n({__name:\"DividerWithButtons\",props:{title:{}},setup(s){return(e,r)=>(i(),a(\"div\",c,[t(\"span\",{class:\"pr-3 bg-gray-50 dark:bg-backdrop-dark text-lg font-semibold text-gray-900 dark:text-gray-200\",textContent:l(e.title)},null,8,_),r[0]||(r[0]=t(\"div\",{class:\"w-full flex items-center\",\"aria-hidden\":\"true\"},[t(\"div\",{class:\"w-full border-t-2 border-dashed border-gray-300 dark:border-gray-600\"})],-1)),t(\"span\",g,[o(e.$slots,\"default\")])]))}}),p={},f={class:\"grid grid-cols-1 gap-4 items-start lg:grid-cols-3 p-6\"},u={class:\"grid grid-cols-1 gap-4 lg:col-span-2 px-1\"},h={\"aria-labelledby\":\"section-1-title\"},b={class:\"rounded-lg\"},m={class:\"grid grid-cols-1 gap-4\"},x={\"aria-labelledby\":\"section-2-title\"};function y(s,e){return i(),a(\"div\",f,[t(\"div\",u,[t(\"section\",h,[t(\"div\",b,[o(s.$slots,\"left\")])])]),t(\"div\",m,[t(\"section\",x,[o(s.$slots,\"right\")])])])}const $=d(p,[[\"render\",y]]);export{$ as _,k as a};\n"
  },
  {
    "path": "jesse/static/_nuxt/C5Y8tDhP.js",
    "content": "import e from\"./Dj6nwHGl.js\";import t from\"./BPhBrDlE.js\";import n from\"./ySlJ1b_l.js\";import a from\"./BMYPR7BL.js\";const i=Object.freeze(JSON.parse(`{\"displayName\":\"Glimmer TS\",\"injections\":{\"L:source.gts -comment -(string -meta.embedded)\":{\"patterns\":[{\"include\":\"#main\"}]}},\"name\":\"glimmer-ts\",\"patterns\":[{\"include\":\"#main\"},{\"include\":\"source.ts\"}],\"repository\":{\"as-keyword\":{\"match\":\"\\\\\\\\s\\\\\\\\b(as)\\\\\\\\b(?=\\\\\\\\s\\\\\\\\|)\",\"name\":\"keyword.control\",\"patterns\":[]},\"as-params\":{\"begin\":\"(?<!\\\\\\\\|)(\\\\\\\\|)\",\"beginCaptures\":{\"1\":{\"name\":\"constant.other.symbol.begin.ember-handlebars\"}},\"end\":\"(\\\\\\\\|)(?!\\\\\\\\|)\",\"endCaptures\":{\"1\":{\"name\":\"constant.other.symbol.end.ember-handlebars\"}},\"name\":\"keyword.block-params.ember-handlebars\",\"patterns\":[{\"include\":\"#variable\"}]},\"attention\":{\"match\":\"@?(TODO|FIXME|CHANGED|XXX|IDEA|HACK|NOTE|REVIEW|NB|BUG|QUESTION|TEMP)\\\\\\\\b\",\"name\":\"storage.type.class.\\${1:/downcase}\",\"patterns\":[]},\"boolean\":{\"captures\":{\"0\":{\"name\":\"string.regexp\"},\"1\":{\"name\":\"string.regexp\"},\"2\":{\"name\":\"string.regexp\"}},\"match\":\"true|false|undefined|null\",\"patterns\":[]},\"component-tag\":{\"begin\":\"(<\\\\\\\\/?)(@|this.)?([a-zA-Z0-9-_\\\\\\\\$:\\\\\\\\.]+)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag\"},\"2\":{\"name\":\"support.function\",\"patterns\":[{\"match\":\"(@|this)\",\"name\":\"variable.language\"},{\"match\":\"(\\\\\\\\.)+\",\"name\":\"punctuation.definition.tag\"}]},\"3\":{\"name\":\"entity.name.type\",\"patterns\":[{\"include\":\"#glimmer-component-path\"},{\"match\":\"(@|:|\\\\\\\\$)\",\"name\":\"markup.bold\"}]}},\"end\":\"(\\\\\\\\/?)(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag\"},\"2\":{\"name\":\"punctuation.definition.tag\"}},\"name\":\"meta.tag.any.ember-handlebars\",\"patterns\":[{\"include\":\"#tag-like-content\"}]},\"digit\":{\"captures\":{\"0\":{\"name\":\"constant.numeric\"},\"1\":{\"name\":\"constant.numeric\"},\"2\":{\"name\":\"constant.numeric\"}},\"match\":\"\\\\\\\\d*(\\\\\\\\.)?\\\\\\\\d+\",\"patterns\":[]},\"entities\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.html.ember-handlebars\"},\"3\":{\"name\":\"punctuation.definition.entity.html.ember-handlebars\"}},\"match\":\"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)\",\"name\":\"constant.character.entity.html.ember-handlebars\"},{\"match\":\"&\",\"name\":\"invalid.illegal.bad-ampersand.html.ember-handlebars\"}]},\"glimmer-argument\":{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.ember-handlebars.argument\",\"patterns\":[{\"match\":\"(@)\",\"name\":\"markup.italic\"}]},\"2\":{\"name\":\"punctuation.separator.key-value.html.ember-handlebars\"}},\"match\":\"\\\\\\\\s(@[a-zA-Z0-9:_.-]+)(=)?\"},\"glimmer-as-stuff\":{\"patterns\":[{\"include\":\"#as-keyword\"},{\"include\":\"#as-params\"}]},\"glimmer-block\":{\"begin\":\"({{~?)(#|/)(([@\\\\\\\\$a-zA-Z0-9_/.-]+))\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag\"},\"2\":{\"name\":\"punctuation.definition.tag\"},\"3\":{\"name\":\"keyword.control\",\"patterns\":[{\"include\":\"#glimmer-component-path\"},{\"match\":\"(\\\\\\\\/)+\",\"name\":\"punctuation.definition.tag\"},{\"match\":\"(\\\\\\\\.)+\",\"name\":\"punctuation.definition.tag\"}]}},\"end\":\"(~?}})\",\"name\":\"entity.expression.ember-handlebars\",\"patterns\":[{\"include\":\"#glimmer-as-stuff\"},{\"include\":\"#glimmer-supexp-content\"}]},\"glimmer-bools\":{\"captures\":{\"0\":{\"name\":\"keyword.operator\"},\"1\":{\"name\":\"keyword.operator\"},\"2\":{\"name\":\"string.regexp\"},\"3\":{\"name\":\"string.regexp\"},\"4\":{\"name\":\"keyword.operator\"}},\"match\":\"({{~?)(true|false|null|undefined|\\\\\\\\d*(\\\\\\\\.)?\\\\\\\\d+)(~?}})\",\"name\":\"entity.expression.ember-handlebars\"},\"glimmer-comment-block\":{\"begin\":\"{{!--\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.block.comment.glimmer\"}},\"end\":\"--}}\",\"name\":\"comment.block.glimmer\",\"patterns\":[{\"include\":\"#script\"},{\"include\":\"#attention\"}]},\"glimmer-comment-inline\":{\"begin\":\"{{!\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.block.comment.glimmer\"}},\"end\":\"}}\",\"name\":\"comment.inline.glimmer\",\"patterns\":[{\"include\":\"#script\"},{\"include\":\"#attention\"}]},\"glimmer-component-path\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag\"}},\"match\":\"(::|_|\\\\\\\\$|\\\\\\\\.)\"},\"glimmer-control-expression\":{\"begin\":\"({{~?)(([-a-zA-Z_0-9/]+)\\\\\\\\s)\",\"captures\":{\"1\":{\"name\":\"keyword.operator\"},\"2\":{\"name\":\"keyword.operator\"},\"3\":{\"name\":\"keyword.control\"}},\"end\":\"(~?}})\",\"name\":\"entity.expression.ember-handlebars\",\"patterns\":[{\"include\":\"#glimmer-supexp-content\"}]},\"glimmer-else-block\":{\"captures\":{\"0\":{\"name\":\"punctuation.definition.tag\"},\"1\":{\"name\":\"punctuation.definition.tag\"},\"2\":{\"name\":\"keyword.control\"},\"3\":{\"name\":\"keyword.control\",\"patterns\":[{\"include\":\"#glimmer-subexp\"},{\"include\":\"#string-single-quoted-handlebars\"},{\"include\":\"#string-double-quoted-handlebars\"},{\"include\":\"#boolean\"},{\"include\":\"#digit\"},{\"include\":\"#param\"},{\"include\":\"#glimmer-parameter-name\"},{\"include\":\"#glimmer-parameter-value\"}]},\"4\":{\"name\":\"punctuation.definition.tag\"}},\"match\":\"({{~?)(else\\\\\\\\s[a-z]+\\\\\\\\s|else)([()@a-zA-Z0-9\\\\\\\\.\\\\\\\\s\\\\\\\\b]+)?(~?}})\",\"name\":\"entity.expression.ember-handlebars\"},\"glimmer-expression\":{\"begin\":\"({{~?)(([()\\\\\\\\s@a-zA-Z0-9_.-]+))\",\"captures\":{\"1\":{\"name\":\"keyword.operator\"},\"2\":{\"name\":\"keyword.operator\"},\"3\":{\"name\":\"support.function\",\"patterns\":[{\"match\":\"[(]+\",\"name\":\"string.regexp\"},{\"match\":\"[)]+\",\"name\":\"string.regexp\"},{\"match\":\"(\\\\\\\\.)+\",\"name\":\"punctuation.definition.tag\"},{\"include\":\"#glimmer-supexp-content\"}]}},\"end\":\"(~?}})\",\"name\":\"entity.expression.ember-handlebars\",\"patterns\":[{\"include\":\"#glimmer-supexp-content\"}]},\"glimmer-expression-property\":{\"begin\":\"({{~?)((@|this.)([a-zA-Z0-9_.-]+))\",\"captures\":{\"1\":{\"name\":\"keyword.operator\"},\"2\":{\"name\":\"keyword.operator\"},\"3\":{\"name\":\"support.function\",\"patterns\":[{\"match\":\"(@|this)\",\"name\":\"variable.language\"},{\"match\":\"(\\\\\\\\.)+\",\"name\":\"punctuation.definition.tag\"}]},\"4\":{\"name\":\"support.function\",\"patterns\":[{\"match\":\"(\\\\\\\\.)+\",\"name\":\"punctuation.definition.tag\"}]}},\"end\":\"(~?}})\",\"name\":\"entity.expression.ember-handlebars\",\"patterns\":[{\"include\":\"#glimmer-supexp-content\"}]},\"glimmer-parameter-name\":{\"captures\":{\"1\":{\"name\":\"variable.parameter.name.ember-handlebars\"},\"2\":{\"name\":\"punctuation.definition.expression.ember-handlebars\"}},\"match\":\"\\\\\\\\b([a-zA-Z0-9_-]+)(\\\\\\\\s?=)\",\"patterns\":[]},\"glimmer-parameter-value\":{\"captures\":{\"1\":{\"name\":\"support.function\",\"patterns\":[{\"match\":\"(\\\\\\\\.)+\",\"name\":\"punctuation.definition.tag\"}]}},\"match\":\"\\\\\\\\b([a-zA-Z0-9:_.-]+)\\\\\\\\b(?!=)\",\"patterns\":[]},\"glimmer-special-block\":{\"captures\":{\"0\":{\"name\":\"keyword.operator\"},\"1\":{\"name\":\"keyword.operator\"},\"2\":{\"name\":\"keyword.control\"},\"3\":{\"name\":\"keyword.operator\"}},\"match\":\"({{~?)(yield|outlet)(~?}})\",\"name\":\"entity.expression.ember-handlebars\"},\"glimmer-subexp\":{\"begin\":\"(\\\\\\\\()([@a-zA-Z0-9.-]+)\",\"captures\":{\"1\":{\"name\":\"keyword.other\"},\"2\":{\"name\":\"keyword.control\"}},\"end\":\"(\\\\\\\\))\",\"name\":\"entity.subexpression.ember-handlebars\",\"patterns\":[{\"include\":\"#glimmer-supexp-content\"}]},\"glimmer-supexp-content\":{\"patterns\":[{\"include\":\"#glimmer-subexp\"},{\"include\":\"#string-single-quoted-handlebars\"},{\"include\":\"#string-double-quoted-handlebars\"},{\"include\":\"#boolean\"},{\"include\":\"#digit\"},{\"include\":\"#param\"},{\"include\":\"#glimmer-parameter-name\"},{\"include\":\"#glimmer-parameter-value\"}]},\"glimmer-unescaped-expression\":{\"begin\":\"{{{\",\"captures\":{\"0\":{\"name\":\"keyword.operator\"}},\"end\":\"}}}\",\"name\":\"entity.unescaped.expression.ember-handlebars\",\"patterns\":[{\"include\":\"#string-single-quoted-handlebars\"},{\"include\":\"#string-double-quoted-handlebars\"},{\"include\":\"#glimmer-subexp\"},{\"include\":\"#param\"}]},\"html-attribute\":{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.ember-handlebars\",\"patterns\":[{\"match\":\"(\\\\\\\\.\\\\\\\\.\\\\\\\\.attributes)\",\"name\":\"markup.bold\"}]},\"2\":{\"name\":\"punctuation.separator.key-value.html.ember-handlebars\"}},\"match\":\"\\\\\\\\s([a-zA-Z0-9:_.-]+)(=)?\"},\"html-comment\":{\"begin\":\"<!--\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.html.ember-handlebars\"}},\"end\":\"--\\\\\\\\s*>\",\"name\":\"comment.block.html.ember-handlebars\",\"patterns\":[{\"include\":\"#attention\"},{\"match\":\"--\",\"name\":\"invalid.illegal.bad-comments-or-CDATA.html.ember-handlebars\"}]},\"html-tag\":{\"begin\":\"(<\\\\\\\\/?)([a-z0-9-]+)(?!\\\\\\\\.|:)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag\"},\"2\":{\"name\":\"entity.name.tag.html.ember-handlebars\"}},\"end\":\"(\\\\\\\\/?)(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag\"},\"2\":{\"name\":\"punctuation.definition.tag\"}},\"name\":\"meta.tag.any.ember-handlebars\",\"patterns\":[{\"include\":\"#tag-like-content\"}]},\"main\":{\"patterns\":[{\"begin\":\"\\\\\\\\s*(<)(template)\\\\\\\\s*(>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.other.html\"},\"3\":{\"name\":\"punctuation.definition.tag.html\"}},\"end\":\"(</)(template)(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.other.html\"},\"3\":{\"name\":\"punctuation.definition.tag.html\"}},\"name\":\"meta.js.embeddedTemplateWithoutArgs\",\"patterns\":[{\"include\":\"#style\"},{\"include\":\"#script\"},{\"include\":\"#glimmer-else-block\"},{\"include\":\"#glimmer-bools\"},{\"include\":\"#glimmer-special-block\"},{\"include\":\"#glimmer-unescaped-expression\"},{\"include\":\"#glimmer-comment-block\"},{\"include\":\"#glimmer-comment-inline\"},{\"include\":\"#glimmer-expression-property\"},{\"include\":\"#glimmer-control-expression\"},{\"include\":\"#glimmer-expression\"},{\"include\":\"#glimmer-block\"},{\"include\":\"#html-tag\"},{\"include\":\"#component-tag\"},{\"include\":\"#html-comment\"},{\"include\":\"#entities\"}]},{\"begin\":\"(<)(template)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.other.html\"}},\"end\":\"(</)(template)(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.other.html\"},\"3\":{\"name\":\"punctuation.definition.tag.html\"}},\"name\":\"meta.js.embeddedTemplateWithArgs\",\"patterns\":[{\"begin\":\"(?<=\\\\\\\\<template)\",\"end\":\"(?=\\\\\\\\>)\",\"patterns\":[{\"include\":\"#tag-like-content\"}]},{\"begin\":\"(>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.js\"}},\"contentName\":\"meta.html.embedded.block\",\"end\":\"(?=</template>)\",\"patterns\":[{\"include\":\"#style\"},{\"include\":\"#script\"},{\"include\":\"#glimmer-else-block\"},{\"include\":\"#glimmer-bools\"},{\"include\":\"#glimmer-special-block\"},{\"include\":\"#glimmer-unescaped-expression\"},{\"include\":\"#glimmer-comment-block\"},{\"include\":\"#glimmer-comment-inline\"},{\"include\":\"#glimmer-expression-property\"},{\"include\":\"#glimmer-control-expression\"},{\"include\":\"#glimmer-expression\"},{\"include\":\"#glimmer-block\"},{\"include\":\"#html-tag\"},{\"include\":\"#component-tag\"},{\"include\":\"#html-comment\"},{\"include\":\"#entities\"}]}]},{\"begin\":\"(\\\\\\\\b(?:\\\\\\\\w+\\\\\\\\.)*(?:hbs|html)\\\\\\\\s*)(\\`)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.tagged-template.js\"},\"2\":{\"name\":\"punctuation.definition.string.template.begin.js\"}},\"contentName\":\"meta.embedded.block.html\",\"end\":\"(\\`)\",\"endCaptures\":{\"0\":{\"name\":\"string.js\"},\"1\":{\"name\":\"punctuation.definition.string.template.end.js\"}},\"patterns\":[{\"include\":\"source.ts#template-substitution-element\"},{\"include\":\"#style\"},{\"include\":\"#script\"},{\"include\":\"#glimmer-else-block\"},{\"include\":\"#glimmer-bools\"},{\"include\":\"#glimmer-special-block\"},{\"include\":\"#glimmer-unescaped-expression\"},{\"include\":\"#glimmer-comment-block\"},{\"include\":\"#glimmer-comment-inline\"},{\"include\":\"#glimmer-expression-property\"},{\"include\":\"#glimmer-control-expression\"},{\"include\":\"#glimmer-expression\"},{\"include\":\"#glimmer-block\"},{\"include\":\"#html-tag\"},{\"include\":\"#component-tag\"},{\"include\":\"#html-comment\"},{\"include\":\"#entities\"}]},{\"begin\":\"((createTemplate|hbs|html))(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.ts\"},\"2\":{\"name\":\"meta.function-call.ts\"},\"3\":{\"name\":\"meta.brace.round.ts\"}},\"contentName\":\"meta.embedded.block.html\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"meta.brace.round.ts\"}},\"patterns\":[{\"begin\":\"((\\`|'|\\\\\"))\",\"beginCaptures\":{\"1\":{\"name\":\"string.template.ts\"},\"2\":{\"name\":\"punctuation.definition.string.template.begin.ts\"}},\"end\":\"((\\`|'|\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"string.template.ts\"},\"2\":{\"name\":\"punctuation.definition.string.template.end.ts\"}},\"patterns\":[{\"include\":\"#style\"},{\"include\":\"#script\"},{\"include\":\"#glimmer-else-block\"},{\"include\":\"#glimmer-bools\"},{\"include\":\"#glimmer-special-block\"},{\"include\":\"#glimmer-unescaped-expression\"},{\"include\":\"#glimmer-comment-block\"},{\"include\":\"#glimmer-comment-inline\"},{\"include\":\"#glimmer-expression-property\"},{\"include\":\"#glimmer-control-expression\"},{\"include\":\"#glimmer-expression\"},{\"include\":\"#glimmer-block\"},{\"include\":\"#html-tag\"},{\"include\":\"#component-tag\"},{\"include\":\"#html-comment\"},{\"include\":\"#entities\"}]}]},{\"begin\":\"((precompileTemplate)\\\\\\\\s*)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.ts\"},\"2\":{\"name\":\"meta.function-call.ts\"},\"3\":{\"name\":\"meta.brace.round.ts\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"meta.brace.round.ts\"}},\"patterns\":[{\"begin\":\"((\\`|'|\\\\\"))\",\"beginCaptures\":{\"1\":{\"name\":\"string.template.ts\"},\"2\":{\"name\":\"punctuation.definition.string.template.begin.ts\"}},\"contentName\":\"meta.embedded.block.html\",\"end\":\"((\\`|'|\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"string.template.ts\"},\"2\":{\"name\":\"punctuation.definition.string.template.end.ts\"}},\"patterns\":[{\"include\":\"#style\"},{\"include\":\"#script\"},{\"include\":\"#glimmer-else-block\"},{\"include\":\"#glimmer-bools\"},{\"include\":\"#glimmer-special-block\"},{\"include\":\"#glimmer-unescaped-expression\"},{\"include\":\"#glimmer-comment-block\"},{\"include\":\"#glimmer-comment-inline\"},{\"include\":\"#glimmer-expression-property\"},{\"include\":\"#glimmer-control-expression\"},{\"include\":\"#glimmer-expression\"},{\"include\":\"#glimmer-block\"},{\"include\":\"#html-tag\"},{\"include\":\"#component-tag\"},{\"include\":\"#html-comment\"},{\"include\":\"#entities\"}]},{\"include\":\"source.ts#object-literal\"},{\"include\":\"source.ts\"}]}]},\"param\":{\"captures\":{\"0\":{\"name\":\"support.function\",\"patterns\":[{\"match\":\"(@|this)\",\"name\":\"variable.language\"},{\"match\":\"(\\\\\\\\.)+\",\"name\":\"punctuation.definition.tag\"}]},\"1\":{\"name\":\"support.function\",\"patterns\":[{\"match\":\"(\\\\\\\\.)+\",\"name\":\"punctuation.definition.tag\"}]}},\"match\":\"(@|this.)([a-zA-Z0-9_.-]+)\",\"patterns\":[]},\"script\":{\"begin\":\"(^[ \\\\\\\\t]+)?(?=<(?i:script)\\\\\\\\b(?!-))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.embedded.leading.html\"}},\"end\":\"(?!\\\\\\\\G)([ \\\\\\\\t]*$\\\\\\\\n?)?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.embedded.trailing.html\"}},\"patterns\":[{\"begin\":\"(<)((?i:script))\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.script.start.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"}},\"end\":\"(/)((?i:script))(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.script.end.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.embedded.block.html\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(?=/)\",\"patterns\":[{\"begin\":\"(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.script.start.html\"},\"1\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"end\":\"((<))(?=/(?i:script))\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.script.end.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"source.js-ignored-vscode\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(?=</(?i:script))\",\"name\":\"source.js\",\"patterns\":[{\"begin\":\"(^[ \\\\\\\\t]+)?(?=//)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.js\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.js\"}},\"end\":\"(?=<\\/script)|\\\\\\\\n\",\"name\":\"comment.line.double-slash.js\"}]},{\"begin\":\"/\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.js\"}},\"end\":\"\\\\\\\\*/|(?=<\\/script)\",\"name\":\"comment.block.js\"},{\"include\":\"source.js\"}]}]},{\"begin\":\"(?ix:\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t(?=\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\ttype\\\\\\\\s*=\\\\\\\\s*\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t('|\\\\\"|)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\ttext/\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t(\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tx-handlebars\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t  | (x-(handlebars-)?|ng-)?template\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t  | html\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t[\\\\\\\\s\\\\\"'>]\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t)\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t)\",\"end\":\"((<))(?=/(?i:script))\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.script.end.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"text.html.basic\"}},\"patterns\":[{\"begin\":\"(?!\\\\\\\\G)\",\"end\":\"(?=</(?i:script))\",\"name\":\"text.html.basic\",\"patterns\":[{\"include\":\"text.html.basic\"}]}]},{\"begin\":\"(?=(?i:type))\",\"end\":\"(<)(?=/(?i:script))\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.script.end.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"}}},{\"include\":\"#string-double-quoted-html\"},{\"include\":\"#string-single-quoted-html\"},{\"include\":\"#glimmer-argument\"},{\"include\":\"#html-attribute\"}]}]}]},\"string-double-quoted-handlebars\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ember-handlebars\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ember-handlebars\"}},\"name\":\"string.quoted.double.ember-handlebars\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\\\\\"\",\"name\":\"constant.character.escape.ember-handlebars\"}]},\"string-double-quoted-html\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ember-handlebars\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ember-handlebars\"}},\"name\":\"string.quoted.double.html.ember-handlebars\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\\\\\"\",\"name\":\"constant.character.escape.ember-handlebars\"},{\"include\":\"#glimmer-bools\"},{\"include\":\"#glimmer-expression-property\"},{\"include\":\"#glimmer-control-expression\"},{\"include\":\"#glimmer-expression\"},{\"include\":\"#glimmer-block\"}]},\"string-single-quoted-handlebars\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ember-handlebars\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ember-handlebars\"}},\"name\":\"string.quoted.single.ember-handlebars\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\'\",\"name\":\"constant.character.escape.ember-handlebars\"}]},\"string-single-quoted-html\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ember-handlebars\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ember-handlebars\"}},\"name\":\"string.quoted.single.html.ember-handlebars\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\'\",\"name\":\"constant.character.escape.ember-handlebars\"},{\"include\":\"#glimmer-bools\"},{\"include\":\"#glimmer-expression-property\"},{\"include\":\"#glimmer-control-expression\"},{\"include\":\"#glimmer-expression\"},{\"include\":\"#glimmer-block\"}]},\"style\":{\"begin\":\"(^[ \\\\\\\\t]+)?(?=<(?i:style)\\\\\\\\b(?!-))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.embedded.leading.html\"}},\"end\":\"(?!\\\\\\\\G)([ \\\\\\\\t]*$\\\\\\\\n?)?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.embedded.trailing.html\"}},\"patterns\":[{\"begin\":\"(?i)(<)(style)(?=\\\\\\\\s|/?>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.style.start.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"}},\"end\":\"(?i)((<)/)(style)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.style.end.html\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"source.css-ignored-vscode\"},\"3\":{\"name\":\"entity.name.tag.html\"},\"4\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.embedded.block.html\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"end\":\"(>)\",\"name\":\"meta.tag.metadata.style.start.html\",\"patterns\":[{\"include\":\"#glimmer-argument\"},{\"include\":\"#html-attribute\"}]},{\"begin\":\"(?!\\\\\\\\G)\",\"end\":\"(?=</(?i:style))\",\"name\":\"source.css\",\"patterns\":[{\"include\":\"source.css\"}]}]}]},\"tag-like-content\":{\"patterns\":[{\"include\":\"#glimmer-bools\"},{\"include\":\"#glimmer-unescaped-expression\"},{\"include\":\"#glimmer-comment-block\"},{\"include\":\"#glimmer-comment-inline\"},{\"include\":\"#glimmer-expression-property\"},{\"include\":\"#boolean\"},{\"include\":\"#digit\"},{\"include\":\"#glimmer-control-expression\"},{\"include\":\"#glimmer-expression\"},{\"include\":\"#glimmer-block\"},{\"include\":\"#string-double-quoted-html\"},{\"include\":\"#string-single-quoted-html\"},{\"include\":\"#glimmer-as-stuff\"},{\"include\":\"#glimmer-argument\"},{\"include\":\"#html-attribute\"}]},\"variable\":{\"match\":\"\\\\\\\\b([a-zA-Z0-9-_]+)\\\\\\\\b\",\"name\":\"support.function\",\"patterns\":[]}},\"scopeName\":\"source.gts\",\"embeddedLangs\":[\"typescript\",\"css\",\"javascript\",\"html\"],\"aliases\":[\"gts\"]}`)),c=[...e,...t,...n,...a,i];export{c as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/C5wWYbrZ.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Haxe\",\"fileTypes\":[\"hx\",\"dump\"],\"name\":\"haxe\",\"patterns\":[{\"include\":\"#all\"}],\"repository\":{\"abstract\":{\"begin\":\"(?=abstract\\\\\\\\s+[A-Z])\",\"end\":\"(?<=\\\\\\\\})|(;)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.hx\"}},\"name\":\"meta.abstract.hx\",\"patterns\":[{\"include\":\"#abstract-name\"},{\"include\":\"#abstract-name-post\"},{\"include\":\"#abstract-block\"}]},\"abstract-block\":{\"begin\":\"(?<=\\\\\\\\{)\",\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.end.hx\"}},\"name\":\"meta.block.hx\",\"patterns\":[{\"include\":\"#method\"},{\"include\":\"#modifiers\"},{\"include\":\"#variable\"},{\"include\":\"#block\"},{\"include\":\"#block-contents\"}]},\"abstract-name\":{\"begin\":\"\\\\\\\\b(abstract)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.hx\"}},\"end\":\"([_A-Za-z]\\\\\\\\w*)\",\"endCaptures\":{\"1\":{\"name\":\"entity.name.type.class.hx\"}},\"patterns\":[{\"include\":\"#global\"}]},\"abstract-name-post\":{\"begin\":\"(?<=\\\\\\\\w)\",\"end\":\"([\\\\\\\\{;])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.begin.hx\"}},\"patterns\":[{\"include\":\"#global\"},{\"match\":\"\\\\\\\\b(from|to)\\\\\\\\b\",\"name\":\"keyword.other.hx\"},{\"include\":\"#type\"},{\"match\":\"[\\\\\\\\(\\\\\\\\)]\",\"name\":\"punctuation.definition.other.hx\"}]},\"accessor-method\":{\"patterns\":[{\"match\":\"\\\\\\\\b(get|set)_[_A-Za-z]\\\\\\\\w*\\\\\\\\b\",\"name\":\"entity.name.function.hx\"}]},\"all\":{\"patterns\":[{\"include\":\"#global\"},{\"include\":\"#package\"},{\"include\":\"#import\"},{\"include\":\"#using\"},{\"match\":\"\\\\\\\\b(final)\\\\\\\\b(?=\\\\\\\\s+(class|interface|extern|private)\\\\\\\\b)\",\"name\":\"storage.modifier.hx\"},{\"include\":\"#abstract\"},{\"include\":\"#class\"},{\"include\":\"#enum\"},{\"include\":\"#interface\"},{\"include\":\"#typedef\"},{\"include\":\"#block\"},{\"include\":\"#block-contents\"}]},\"array\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.array.begin.hx\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.array.end.hx\"}},\"name\":\"meta.array.literal.hx\",\"patterns\":[{\"include\":\"#block\"},{\"include\":\"#block-contents\"}]},\"arrow-function\":{\"begin\":\"(\\\\\\\\()(?=[^(]*?\\\\\\\\)\\\\\\\\s*->)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.begin.hx\"}},\"end\":\"(\\\\\\\\))\\\\\\\\s*(->)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.hx\"},\"2\":{\"name\":\"storage.type.function.arrow.hx\"}},\"name\":\"meta.method.arrow.hx\",\"patterns\":[{\"include\":\"#arrow-function-parameter\"}]},\"arrow-function-parameter\":{\"begin\":\"(?<=\\\\\\\\(|,)\",\"end\":\"(?=\\\\\\\\)|,)\",\"patterns\":[{\"include\":\"#parameter-name\"},{\"include\":\"#arrow-function-parameter-type-hint\"},{\"include\":\"#parameter-assign\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#global\"}]},\"arrow-function-parameter-type-hint\":{\"begin\":\":\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.type.annotation.hx\"}},\"end\":\"(?=\\\\\\\\)|,|=)\",\"patterns\":[{\"include\":\"#type\"}]},\"block\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.begin.hx\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.end.hx\"}},\"patterns\":[{\"include\":\"#block\"},{\"include\":\"#block-contents\"}]},\"block-contents\":{\"patterns\":[{\"include\":\"#global\"},{\"include\":\"#regex\"},{\"include\":\"#array\"},{\"include\":\"#constants\"},{\"include\":\"#strings\"},{\"include\":\"#metadata\"},{\"include\":\"#method\"},{\"include\":\"#variable\"},{\"include\":\"#modifiers\"},{\"include\":\"#new-expr\"},{\"include\":\"#for-loop\"},{\"include\":\"#keywords\"},{\"include\":\"#arrow-function\"},{\"include\":\"#method-call\"},{\"include\":\"#enum-constructor-call\"},{\"include\":\"#punctuation-braces\"},{\"include\":\"#macro-reification\"},{\"include\":\"#operators\"},{\"include\":\"#operator-assignment\"},{\"include\":\"#punctuation-terminator\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#punctuation-accessor\"},{\"include\":\"#identifiers\"}]},\"class\":{\"begin\":\"(?=class)\",\"end\":\"(?<=\\\\\\\\})|(;)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.hx\"}},\"name\":\"meta.class.hx\",\"patterns\":[{\"include\":\"#class-name\"},{\"include\":\"#class-name-post\"},{\"include\":\"#class-block\"}]},\"class-block\":{\"begin\":\"(?<=\\\\\\\\{)\",\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.end.hx\"}},\"name\":\"meta.block.hx\",\"patterns\":[{\"include\":\"#method\"},{\"include\":\"#modifiers\"},{\"include\":\"#variable\"},{\"include\":\"#block\"},{\"include\":\"#block-contents\"}]},\"class-name\":{\"begin\":\"\\\\\\\\b(class)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.hx\"}},\"end\":\"([_A-Za-z]\\\\\\\\w*)\",\"endCaptures\":{\"1\":{\"name\":\"entity.name.type.class.hx\"}},\"name\":\"meta.class.identifier.hx\",\"patterns\":[{\"include\":\"#global\"}]},\"class-name-post\":{\"begin\":\"(?<=\\\\\\\\w)\",\"end\":\"([\\\\\\\\{;])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.begin.hx\"}},\"patterns\":[{\"include\":\"#modifiers-inheritance\"},{\"include\":\"#type\"}]},\"comments\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\\\\\\\\*(?!/)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.hx\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.hx\"}},\"name\":\"comment.block.documentation.hx\",\"patterns\":[{\"include\":\"#javadoc-tags\"}]},{\"begin\":\"/\\\\\\\\*\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.hx\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.hx\"}},\"name\":\"comment.block.hx\",\"patterns\":[{\"include\":\"#javadoc-tags\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.hx\"}},\"match\":\"(//).*$\\\\\\\\n?\",\"name\":\"comment.line.double-slash.hx\"}]},\"conditional-compilation\":{\"patterns\":[{\"captures\":{\"0\":{\"name\":\"punctuation.definition.tag\"}},\"match\":\"((#(if|elseif))[\\\\\\\\s!]+([a-zA-Z_][a-zA-Z0-9_]*(\\\\\\\\.[a-zA-Z_][a-zA-Z0-9_]*)*)(?=\\\\\\\\s|/\\\\\\\\*|//))\"},{\"begin\":\"((#(if|elseif))[\\\\\\\\s!]*)(?=\\\\\\\\()\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag\"}},\"end\":\"(?<=\\\\\\\\)|\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag\"}},\"name\":\"punctuation.definition.tag\",\"patterns\":[{\"include\":\"#conditional-compilation-parens\"}]},{\"match\":\"(#(end|else|error|line))\",\"name\":\"punctuation.definition.tag\"},{\"match\":\"(#([a-zA-Z0-9_]*))\\\\\\\\s\",\"name\":\"punctuation.definition.tag\"}]},\"conditional-compilation-parens\":{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#conditional-compilation-parens\"}]},\"constant-name\":{\"match\":\"\\\\\\\\b([_A-Z][_A-Z0-9]*)\\\\\\\\b\",\"name\":\"variable.other.hx\"},\"constants\":{\"patterns\":[{\"match\":\"\\\\\\\\b(true|false|null)\\\\\\\\b\",\"name\":\"constant.language.hx\"},{\"captures\":{\"0\":{\"name\":\"constant.numeric.hex.hx\"},\"1\":{\"name\":\"constant.numeric.suffix.hx\"}},\"match\":\"\\\\\\\\b(?:0[xX][0-9a-fA-F][_0-9a-fA-F]*([iu][0-9][0-9_]*)?)\\\\\\\\b\"},{\"captures\":{\"0\":{\"name\":\"constant.numeric.bin.hx\"},\"1\":{\"name\":\"constant.numeric.suffix.hx\"}},\"match\":\"\\\\\\\\b(?:0[bB][01][_01]*([iu][0-9][0-9_]*)?)\\\\\\\\b\"},{\"captures\":{\"0\":{\"name\":\"constant.numeric.decimal.hx\"},\"1\":{\"name\":\"meta.delimiter.decimal.period.hx\"},\"2\":{\"name\":\"constant.numeric.suffix.hx\"},\"3\":{\"name\":\"meta.delimiter.decimal.period.hx\"},\"4\":{\"name\":\"constant.numeric.suffix.hx\"},\"5\":{\"name\":\"meta.delimiter.decimal.period.hx\"},\"6\":{\"name\":\"constant.numeric.suffix.hx\"},\"7\":{\"name\":\"constant.numeric.suffix.hx\"},\"8\":{\"name\":\"meta.delimiter.decimal.period.hx\"},\"9\":{\"name\":\"constant.numeric.suffix.hx\"},\"10\":{\"name\":\"meta.delimiter.decimal.period.hx\"},\"11\":{\"name\":\"constant.numeric.suffix.hx\"},\"12\":{\"name\":\"meta.delimiter.decimal.period.hx\"},\"13\":{\"name\":\"constant.numeric.suffix.hx\"},\"14\":{\"name\":\"constant.numeric.suffix.hx\"}},\"match\":\"(?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9_]+[eE][+-]?[0-9_]+([fiu][0-9][0-9_]*)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9_]+([fiu][0-9][0-9_]*)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9_]+([fiu][0-9][0-9_]*)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*([fiu][0-9][0-9_]*)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9_]+([fiu][0-9][0-9_]*)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(?!\\\\\\\\.)(?:\\\\\\\\B|([fiu][0-9][0-9_]*)\\\\\\\\b))|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*([fiu][0-9][0-9_]*)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*([fiu][0-9][0-9_]*)?\\\\\\\\b))(?!\\\\\\\\$)\"}]},\"enum\":{\"begin\":\"(?=enum\\\\\\\\s+[A-Z])\",\"end\":\"(?<=\\\\\\\\})|(;)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.hx\"}},\"name\":\"meta.enum.hx\",\"patterns\":[{\"include\":\"#enum-name\"},{\"include\":\"#enum-name-post\"},{\"include\":\"#enum-block\"}]},\"enum-block\":{\"begin\":\"(?<=\\\\\\\\{)\",\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.end.hx\"}},\"name\":\"meta.block.hx\",\"patterns\":[{\"include\":\"#global\"},{\"include\":\"#metadata\"},{\"include\":\"#parameters\"},{\"include\":\"#identifiers\"}]},\"enum-constructor-call\":{\"begin\":\"\\\\\\\\b(?<!\\\\\\\\.)((_*[a-z]\\\\\\\\w*\\\\\\\\.)*)(_*[A-Z]\\\\\\\\w*)(?:(\\\\\\\\.)(_*[A-Z]\\\\\\\\w*[a-z]\\\\\\\\w*))*\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.package.hx\"},\"3\":{\"name\":\"entity.name.type.hx\"},\"4\":{\"name\":\"support.package.hx\"},\"5\":{\"name\":\"entity.name.type.hx\"},\"6\":{\"name\":\"meta.brace.round.hx\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"meta.brace.round.hx\"}},\"patterns\":[{\"include\":\"#block\"},{\"include\":\"#block-contents\"}]},\"enum-name\":{\"begin\":\"\\\\\\\\b(enum)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.hx\"}},\"end\":\"([_A-Za-z]\\\\\\\\w*)\",\"endCaptures\":{\"1\":{\"name\":\"entity.name.type.class.hx\"}},\"patterns\":[{\"include\":\"#global\"}]},\"enum-name-post\":{\"begin\":\"(?<=\\\\\\\\w)\",\"end\":\"([\\\\\\\\{;])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.begin.hx\"}},\"patterns\":[{\"include\":\"#type\"}]},\"for-loop\":{\"begin\":\"\\\\\\\\b(for)\\\\\\\\b\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.flow-control.hx\"},\"2\":{\"name\":\"meta.brace.round.hx\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"meta.brace.round.hx\"}},\"patterns\":[{\"match\":\"\\\\\\\\b(in)\\\\\\\\b\",\"name\":\"keyword.other.in.hx\"},{\"include\":\"#block\"},{\"include\":\"#block-contents\"}]},\"function-type\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.begin.hx\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.hx\"}},\"patterns\":[{\"include\":\"#function-type-parameter\"}]},\"function-type-parameter\":{\"begin\":\"(?<=\\\\\\\\(|,)\",\"end\":\"(?=\\\\\\\\)|,)\",\"patterns\":[{\"include\":\"#global\"},{\"include\":\"#metadata\"},{\"include\":\"#operator-optional\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#function-type-parameter-name\"},{\"include\":\"#function-type-parameter-type-hint\"},{\"include\":\"#parameter-assign\"},{\"include\":\"#type\"},{\"include\":\"#global\"}]},\"function-type-parameter-name\":{\"captures\":{\"1\":{\"name\":\"variable.parameter.hx\"}},\"match\":\"([_a-zA-Z]\\\\\\\\w*)(?=\\\\\\\\s*:)\"},\"function-type-parameter-type-hint\":{\"begin\":\":\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.type.annotation.hx\"}},\"end\":\"(?=\\\\\\\\)|,|=)\",\"patterns\":[{\"include\":\"#type\"}]},\"global\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#conditional-compilation\"}]},\"identifier-name\":{\"match\":\"\\\\\\\\b([_A-Za-z]\\\\\\\\w*)\\\\\\\\b\",\"name\":\"variable.other.hx\"},\"identifiers\":{\"patterns\":[{\"include\":\"#constant-name\"},{\"include\":\"#type-name\"},{\"include\":\"#identifier-name\"}]},\"import\":{\"begin\":\"import\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.import.hx\"}},\"end\":\"$|(;)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.hx\"}},\"patterns\":[{\"include\":\"#type-path\"},{\"match\":\"\\\\\\\\b(as)\\\\\\\\b\",\"name\":\"keyword.control.as.hx\"},{\"match\":\"\\\\\\\\b(in)\\\\\\\\b\",\"name\":\"keyword.control.in.hx\"},{\"match\":\"\\\\\\\\*\",\"name\":\"constant.language.import-all.hx\"},{\"match\":\"\\\\\\\\b([_A-Za-z]\\\\\\\\w*)\\\\\\\\b(?=\\\\\\\\s*(as|in|$|(;)))\",\"name\":\"variable.other.hxt\"},{\"include\":\"#type-path-package-name\"}]},\"interface\":{\"begin\":\"(?=interface)\",\"end\":\"(?<=\\\\\\\\})|(;)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.hx\"}},\"name\":\"meta.interface.hx\",\"patterns\":[{\"include\":\"#interface-name\"},{\"include\":\"#interface-name-post\"},{\"include\":\"#interface-block\"}]},\"interface-block\":{\"begin\":\"(?<=\\\\\\\\{)\",\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.end.hx\"}},\"name\":\"meta.block.hx\",\"patterns\":[{\"include\":\"#method\"},{\"include\":\"#variable\"},{\"include\":\"#block\"},{\"include\":\"#block-contents\"}]},\"interface-name\":{\"begin\":\"\\\\\\\\b(interface)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.hx\"}},\"end\":\"([_A-Za-z]\\\\\\\\w*)\",\"endCaptures\":{\"1\":{\"name\":\"entity.name.type.class.hx\"}},\"patterns\":[{\"include\":\"#global\"}]},\"interface-name-post\":{\"begin\":\"(?<=\\\\\\\\w)\",\"end\":\"([\\\\\\\\{;])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.begin.hx\"}},\"patterns\":[{\"include\":\"#global\"},{\"include\":\"#modifiers-inheritance\"},{\"include\":\"#type\"}]},\"javadoc-tags\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.class.javadoc\"},\"2\":{\"name\":\"variable.other.javadoc\"}},\"match\":\"(@(?:param|exception|throws|event))\\\\\\\\s+([_A-Za-z]\\\\\\\\w*)\\\\\\\\s+\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.javadoc\"},\"2\":{\"name\":\"constant.numeric.javadoc\"}},\"match\":\"(@since)\\\\\\\\s+([\\\\\\\\w\\\\\\\\.-]+)\\\\\\\\s+\"},{\"captures\":{\"0\":{\"name\":\"storage.type.class.javadoc\"}},\"match\":\"@(param|exception|throws|deprecated|returns?|since|default|see|event)\"}]},\"keywords\":{\"patterns\":[{\"begin\":\"(?<=trace|$type|if|while|for|super)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"2\":{\"name\":\"meta.brace.round.hx\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.hx\"}},\"patterns\":[{\"include\":\"#block-contents\"}]},{\"begin\":\"(?<=catch)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"2\":{\"name\":\"meta.brace.round.hx\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.hx\"}},\"patterns\":[{\"include\":\"#block-contents\"},{\"include\":\"#type-check\"}]},{\"begin\":\"(?<=cast)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"2\":{\"name\":\"meta.brace.round.hx\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.hx\"}},\"patterns\":[{\"begin\":\"(?=,)\",\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#type\"}]},{\"include\":\"#block-contents\"}]},{\"match\":\"\\\\\\\\b(try|catch|throw)\\\\\\\\b\",\"name\":\"keyword.control.catch-exception.hx\"},{\"begin\":\"\\\\\\\\b(case|default)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.flow-control.hx\"}},\"end\":\":|(?=if)|$\",\"patterns\":[{\"include\":\"#global\"},{\"include\":\"#metadata\"},{\"captures\":{\"1\":{\"name\":\"storage.type.variable.hx\"},\"2\":{\"name\":\"variable.other.hx\"}},\"match\":\"\\\\\\\\b(var|final)\\\\\\\\b\\\\\\\\s*([_a-zA-Z]\\\\\\\\w*)\\\\\\\\b\"},{\"include\":\"#array\"},{\"include\":\"#constants\"},{\"include\":\"#strings\"},{\"match\":\"\\\\\\\\(\",\"name\":\"meta.brace.round.hx\"},{\"match\":\"\\\\\\\\)\",\"name\":\"meta.brace.round.hx\"},{\"include\":\"#macro-reification\"},{\"match\":\"=>\",\"name\":\"keyword.operator.extractor.hx\"},{\"include\":\"#operator-assignment\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#keywords\"},{\"include\":\"#method-call\"},{\"include\":\"#identifiers\"}]},{\"match\":\"\\\\\\\\b(if|else|return|do|while|for|break|continue|switch|case|default)\\\\\\\\b\",\"name\":\"keyword.control.flow-control.hx\"},{\"match\":\"\\\\\\\\b(cast|untyped)\\\\\\\\b\",\"name\":\"keyword.other.untyped.hx\"},{\"match\":\"\\\\\\\\btrace\\\\\\\\b\",\"name\":\"keyword.other.trace.hx\"},{\"match\":\"\\\\\\\\$type\\\\\\\\b\",\"name\":\"keyword.other.type.hx\"},{\"match\":\"\\\\\\\\__(global|this)__\\\\\\\\b\",\"name\":\"keyword.other.untyped-property.hx\"},{\"match\":\"\\\\\\\\b(this|super)\\\\\\\\b\",\"name\":\"variable.language.hx\"},{\"match\":\"\\\\\\\\bnew\\\\\\\\b\",\"name\":\"keyword.operator.new.hx\"},{\"match\":\"\\\\\\\\b(abstract|class|enum|interface|typedef)\\\\\\\\b\",\"name\":\"storage.type.hx\"},{\"match\":\"->\",\"name\":\"storage.type.function.arrow.hx\"},{\"include\":\"#modifiers\"},{\"include\":\"#modifiers-inheritance\"}]},\"keywords-accessor\":{\"match\":\"\\\\\\\\b(default|get|set|dynamic|never|null)\\\\\\\\b\",\"name\":\"storage.type.property.hx\"},\"macro-reification\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.reification.hx\"},\"2\":{\"name\":\"keyword.reification.hx\"}},\"match\":\"(\\\\\\\\$)([eabipv])\\\\\\\\{\"},{\"captures\":{\"2\":{\"name\":\"punctuation.definition.reification.hx\"},\"3\":{\"name\":\"variable.reification.hx\"}},\"match\":\"((\\\\\\\\$)([a-zA-Z]*))\"}]},\"metadata\":{\"patterns\":[{\"begin\":\"(@)(:(abi|abstract|access|allow|analyzer|annotation|arrayAccess|astSource|autoBuild|bind|bitmap|bridgeProperties|build|buildXml|bypassAccessor|callable|classCode|commutative|compilerGenerated|const|coreApi|coreType|cppFileCode|cppInclude|cppNamespaceCode|cs.assemblyMeta|cs.assemblyStrict|cs.using|dce|debug|decl|delegate|depend|deprecated|eager|enum|event|expose|extern|file|fileXml|final|fixed|flash.property|font|forward.new|forward.variance|forward|forwardStatics|from|functionCode|functionTailCode|generic|genericBuild|genericClassPerMethod|getter|hack|headerClassCode|headerCode|headerInclude|headerNamespaceCode|hlNative|hxGen|ifFeature|include|inheritDoc|inline|internal|isVar|java.native|javaCanonical|jsRequire|jvm.synthetic|keep|keepInit|keepSub|luaDotMethod|luaRequire|macro|markup|mergeBlock|multiReturn|multiType|native|nativeChildren|nativeGen|nativeProperty|nativeStaticExtension|noClosure|noCompletion|noDebug|noDoc|noImportGlobal|noPrivateAccess|noStack|noUsing|nonVirtual|notNull|nullSafety|objc|objcProtocol|op|optional|overload|persistent|phpClassConst|phpGlobal|phpMagic|phpNoConstructor|pos|private|privateAccess|property|protected|publicFields|pure|pythonImport|readOnly|remove|require|resolve|rtti|runtimeValue|scalar|selfCall|semantics|setter|sound|sourceFile|stackOnly|strict|struct|structAccess|structInit|suppressWarnings|templatedCall|throws|to|transient|transitive|unifyMinDynamic|unreflective|unsafe|using|void|volatile)\\\\\\\\b)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.metadata.hx\"},\"2\":{\"name\":\"storage.modifier.metadata.hx\"},\"3\":{\"name\":\"meta.brace.round.hx\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.hx\"}},\"patterns\":[{\"include\":\"#block-contents\"}]},{\"captures\":{\"2\":{\"name\":\"punctuation.metadata.hx\"},\"3\":{\"name\":\"storage.modifier.metadata.hx\"}},\"match\":\"((@)(:(abi|abstract|access|allow|analyzer|annotation|arrayAccess|astSource|autoBuild|bind|bitmap|bridgeProperties|build|buildXml|bypassAccessor|callable|classCode|commutative|compilerGenerated|const|coreApi|coreType|cppFileCode|cppInclude|cppNamespaceCode|cs.assemblyMeta|cs.assemblyStrict|cs.using|dce|debug|decl|delegate|depend|deprecated|eager|enum|event|expose|extern|file|fileXml|final|fixed|flash.property|font|forward.new|forward.variance|forward|forwardStatics|from|functionCode|functionTailCode|generic|genericBuild|genericClassPerMethod|getter|hack|headerClassCode|headerCode|headerInclude|headerNamespaceCode|hlNative|hxGen|ifFeature|include|inheritDoc|inline|internal|isVar|java.native|javaCanonical|jsRequire|jvm.synthetic|keep|keepInit|keepSub|luaDotMethod|luaRequire|macro|markup|mergeBlock|multiReturn|multiType|native|nativeChildren|nativeGen|nativeProperty|nativeStaticExtension|noClosure|noCompletion|noDebug|noDoc|noImportGlobal|noPrivateAccess|noStack|noUsing|nonVirtual|notNull|nullSafety|objc|objcProtocol|op|optional|overload|persistent|phpClassConst|phpGlobal|phpMagic|phpNoConstructor|pos|private|privateAccess|property|protected|publicFields|pure|pythonImport|readOnly|remove|require|resolve|rtti|runtimeValue|scalar|selfCall|semantics|setter|sound|sourceFile|stackOnly|strict|struct|structAccess|structInit|suppressWarnings|templatedCall|throws|to|transient|transitive|unifyMinDynamic|unreflective|unsafe|using|void|volatile)\\\\\\\\b))\"},{\"begin\":\"(@)(:?[a-zA-Z_]*)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.metadata.hx\"},\"2\":{\"name\":\"variable.metadata.hx\"},\"3\":{\"name\":\"meta.brace.round.hx\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.hx\"}},\"patterns\":[{\"include\":\"#block-contents\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.metadata.hx\"},\"2\":{\"name\":\"variable.metadata.hx\"},\"3\":{\"name\":\"variable.metadata.hx\"},\"4\":{\"name\":\"punctuation.accessor.hx\"},\"5\":{\"name\":\"variable.metadata.hx\"}},\"match\":\"(@)(:?)([a-zA-Z_]*(\\\\\\\\.))*([a-zA-Z_]*)?\"}]},\"method\":{\"begin\":\"(?=\\\\\\\\bfunction\\\\\\\\b)\",\"end\":\"(?<=[\\\\\\\\};])\",\"name\":\"meta.method.hx\",\"patterns\":[{\"include\":\"#macro-reification\"},{\"include\":\"#method-name\"},{\"include\":\"#method-name-post\"},{\"include\":\"#method-block\"}]},\"method-block\":{\"begin\":\"(?<=\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.begin.hx\"}},\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.end.hx\"}},\"name\":\"meta.method.block.hx\",\"patterns\":[{\"include\":\"#block\"},{\"include\":\"#block-contents\"}]},\"method-call\":{\"begin\":\"\\\\\\\\b(?:(__(?:addressOf|as|call|checked|cpp|cs|define_feature|delete|feature|field|fixed|foreach|forin|has_next|hkeys|in|int|is|java|js|keys|lock|lua|lua_table|new|php|physeq|prefix|ptr|resources|rethrow|set|setfield|sizeof|type|typeof|unprotect|unsafe|valueOf|var|vector|vmem_get|vmem_set|vmem_sign|instanceof|strict_eq|strict_neq)__)|([_a-z]\\\\\\\\w*))\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.untyped-function.hx\"},\"2\":{\"name\":\"entity.name.function.hx\"},\"3\":{\"name\":\"meta.brace.round.hx\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"meta.brace.round.hx\"}},\"patterns\":[{\"include\":\"#block\"},{\"include\":\"#block-contents\"}]},\"method-name\":{\"begin\":\"\\\\\\\\b(function)\\\\\\\\b\\\\\\\\s*\\\\\\\\b(?:(new)|([_A-Za-z]\\\\\\\\w*))?\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.hx\"},\"2\":{\"name\":\"storage.type.hx\"},\"3\":{\"name\":\"entity.name.function.hx\"}},\"end\":\"(?=$|\\\\\\\\()\",\"patterns\":[{\"include\":\"#macro-reification\"},{\"include\":\"#type-parameters\"}]},\"method-name-post\":{\"begin\":\"(?<=[\\\\\\\\w\\\\\\\\s>])\",\"end\":\"(\\\\\\\\{)|(;)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.begin.hx\"},\"2\":{\"name\":\"punctuation.terminator.hx\"}},\"patterns\":[{\"include\":\"#parameters\"},{\"include\":\"#method-return-type-hint\"},{\"include\":\"#block\"},{\"include\":\"#block-contents\"}]},\"method-return-type-hint\":{\"begin\":\"(?<=\\\\\\\\))\\\\\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.hx\"}},\"end\":\"(?=\\\\\\\\{|;|[a-z0-9])\",\"patterns\":[{\"include\":\"#type\"}]},\"modifiers\":{\"patterns\":[{\"match\":\"\\\\\\\\b(enum)\\\\\\\\b\",\"name\":\"storage.type.class\"},{\"match\":\"\\\\\\\\b(public|private|static|dynamic|inline|macro|extern|override|overload|abstract)\\\\\\\\b\",\"name\":\"storage.modifier.hx\"},{\"match\":\"\\\\\\\\b(final)\\\\\\\\b(?=\\\\\\\\s+(public|private|static|dynamic|inline|macro|extern|override|overload|abstract|function))\",\"name\":\"storage.modifier.hx\"}]},\"modifiers-inheritance\":{\"match\":\"\\\\\\\\b(implements|extends)\\\\\\\\b\",\"name\":\"storage.modifier.hx\"},\"new-expr\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(new)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.new.hx\"}},\"end\":\"(?=$|\\\\\\\\()\",\"name\":\"new.expr.hx\",\"patterns\":[{\"include\":\"#type\"}]},\"operator-assignment\":{\"match\":\"(=)\",\"name\":\"keyword.operator.assignment.hx\"},\"operator-optional\":{\"match\":\"(\\\\\\\\?)(?!\\\\\\\\s)\",\"name\":\"keyword.operator.optional.hx\"},\"operator-type-hint\":{\"match\":\"(:)\",\"name\":\"keyword.operator.type.annotation.hx\"},\"operators\":{\"patterns\":[{\"match\":\"(&&|\\\\\\\\|\\\\\\\\|)\",\"name\":\"keyword.operator.logical.hx\"},{\"match\":\"(~|&|\\\\\\\\||\\\\\\\\^|>>>|<<|>>)\",\"name\":\"keyword.operator.bitwise.hx\"},{\"match\":\"(==|!=|<=|>=|<|>)\",\"name\":\"keyword.operator.comparison.hx\"},{\"match\":\"(!)\",\"name\":\"keyword.operator.logical.hx\"},{\"match\":\"(\\\\\\\\-\\\\\\\\-|\\\\\\\\+\\\\\\\\+)\",\"name\":\"keyword.operator.increment-decrement.hx\"},{\"match\":\"(\\\\\\\\-|\\\\\\\\+|\\\\\\\\*|\\\\\\\\/|%)\",\"name\":\"keyword.operator.arithmetic.hx\"},{\"match\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"name\":\"keyword.operator.intiterator.hx\"},{\"match\":\"=>\",\"name\":\"keyword.operator.arrow.hx\"},{\"match\":\"\\\\\\\\?\\\\\\\\?\",\"name\":\"keyword.operator.nullcoalescing.hx\"},{\"match\":\"\\\\\\\\?\\\\\\\\.\",\"name\":\"keyword.operator.safenavigation.hx\"},{\"match\":\"\\\\\\\\bis\\\\\\\\b(?!\\\\\\\\()\",\"name\":\"keyword.other.hx\"},{\"begin\":\"\\\\\\\\?\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.ternary.hx\"}},\"end\":\":\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.ternary.hx\"}},\"patterns\":[{\"include\":\"#block-contents\"}]}]},\"package\":{\"begin\":\"package\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.package.hx\"}},\"end\":\"$|(;)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.hx\"}},\"patterns\":[{\"include\":\"#type-path\"},{\"include\":\"#type-path-package-name\"}]},\"parameter\":{\"begin\":\"(?<=\\\\\\\\(|,)\",\"end\":\"(?=\\\\\\\\)(?!\\\\\\\\s*->)|,)\",\"patterns\":[{\"include\":\"#parameter-name\"},{\"include\":\"#parameter-type-hint\"},{\"include\":\"#parameter-assign\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#global\"}]},\"parameter-assign\":{\"begin\":\"=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.assignment.hx\"}},\"end\":\"(?=\\\\\\\\)|,)\",\"patterns\":[{\"include\":\"#block\"},{\"include\":\"#block-contents\"}]},\"parameter-name\":{\"begin\":\"(?<=\\\\\\\\(|,)\",\"end\":\"([_a-zA-Z]\\\\\\\\w*)\",\"endCaptures\":{\"1\":{\"name\":\"variable.parameter.hx\"}},\"patterns\":[{\"include\":\"#global\"},{\"include\":\"#metadata\"},{\"include\":\"#operator-optional\"}]},\"parameter-type-hint\":{\"begin\":\":\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.type.annotation.hx\"}},\"end\":\"(?=\\\\\\\\)(?!\\\\\\\\s*->)|,|=)\",\"patterns\":[{\"include\":\"#type\"}]},\"parameters\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.begin.hx\"}},\"end\":\"\\\\\\\\s*(\\\\\\\\)(?!\\\\\\\\s*->))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.hx\"}},\"name\":\"meta.parameters.hx\",\"patterns\":[{\"include\":\"#parameter\"}]},\"punctuation-accessor\":{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.accessor.hx\"},\"punctuation-braces\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.hx\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.hx\"}},\"patterns\":[{\"include\":\"#keywords\"},{\"include\":\"#block\"},{\"include\":\"#block-contents\"},{\"include\":\"#type-check\"}]},\"punctuation-comma\":{\"match\":\",\",\"name\":\"punctuation.separator.comma.hx\"},\"punctuation-terminator\":{\"match\":\";\",\"name\":\"punctuation.terminator.hx\"},\"regex\":{\"begin\":\"(~/)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.hx\"}},\"end\":\"(/)([gimsu]*)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.hx\"},\"2\":{\"name\":\"keyword.other.hx\"}},\"name\":\"string.regexp.hx\",\"patterns\":[{\"include\":\"#regexp\"}]},\"regex-character-class\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[wWsSdDtrnvf]|\\\\\\\\.\",\"name\":\"constant.other.character-class.regexp\"},{\"match\":\"\\\\\\\\\\\\\\\\([0-7]{3}|x\\\\\\\\h\\\\\\\\h|u\\\\\\\\h\\\\\\\\h\\\\\\\\h\\\\\\\\h)\",\"name\":\"constant.character.numeric.regexp\"},{\"match\":\"\\\\\\\\\\\\\\\\c[A-Z]\",\"name\":\"constant.character.control.regexp\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.backslash.regexp\"}]},\"regexp\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[bB]|\\\\\\\\^|\\\\\\\\$\",\"name\":\"keyword.control.anchor.regexp\"},{\"match\":\"\\\\\\\\\\\\\\\\[1-9]\\\\\\\\d*\",\"name\":\"keyword.other.back-reference.regexp\"},{\"match\":\"[?+*]|\\\\\\\\{(\\\\\\\\d+,\\\\\\\\d+|\\\\\\\\d+,|,\\\\\\\\d+|\\\\\\\\d+)\\\\\\\\}\\\\\\\\??\",\"name\":\"keyword.operator.quantifier.regexp\"},{\"match\":\"\\\\\\\\|\",\"name\":\"keyword.operator.or.regexp\"},{\"begin\":\"(\\\\\\\\()((\\\\\\\\?=)|(\\\\\\\\?!))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.group.regexp\"},\"2\":{\"name\":\"punctuation.definition.group.assertion.regexp\"},\"3\":{\"name\":\"meta.assertion.look-ahead.regexp\"},\"4\":{\"name\":\"meta.assertion.negative-look-ahead.regexp\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.group.regexp\"}},\"name\":\"meta.group.assertion.regexp\",\"patterns\":[{\"include\":\"#regexp\"}]},{\"begin\":\"\\\\\\\\((\\\\\\\\?:)?\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.regexp\"},\"1\":{\"name\":\"punctuation.definition.group.capture.regexp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.regexp\"}},\"name\":\"meta.group.regexp\",\"patterns\":[{\"include\":\"#regexp\"}]},{\"begin\":\"(\\\\\\\\[)(\\\\\\\\^)?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.character-class.regexp\"},\"2\":{\"name\":\"keyword.operator.negation.regexp\"}},\"end\":\"(\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.character-class.regexp\"}},\"name\":\"constant.other.character-class.set.regexp\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.character.numeric.regexp\"},\"2\":{\"name\":\"constant.character.control.regexp\"},\"3\":{\"name\":\"constant.character.escape.backslash.regexp\"},\"4\":{\"name\":\"constant.character.numeric.regexp\"},\"5\":{\"name\":\"constant.character.control.regexp\"},\"6\":{\"name\":\"constant.character.escape.backslash.regexp\"}},\"match\":\"(?:.|(\\\\\\\\\\\\\\\\(?:[0-7]{3}|x\\\\\\\\h\\\\\\\\h|u\\\\\\\\h\\\\\\\\h\\\\\\\\h\\\\\\\\h))|(\\\\\\\\\\\\\\\\c[A-Z])|(\\\\\\\\\\\\\\\\.))\\\\\\\\-(?:[^\\\\\\\\]\\\\\\\\\\\\\\\\]|(\\\\\\\\\\\\\\\\(?:[0-7]{3}|x\\\\\\\\h\\\\\\\\h|u\\\\\\\\h\\\\\\\\h\\\\\\\\h\\\\\\\\h))|(\\\\\\\\\\\\\\\\c[A-Z])|(\\\\\\\\\\\\\\\\.))\",\"name\":\"constant.other.character-class.range.regexp\"},{\"include\":\"#regex-character-class\"}]},{\"include\":\"#regex-character-class\"}]},\"string-escape-sequences\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[0-3][0-9]{2}\",\"name\":\"constant.character.escape.hx\"},{\"match\":\"\\\\\\\\\\\\\\\\x[0-9A-Fa-f]{2}\",\"name\":\"constant.character.escape.hx\"},{\"match\":\"\\\\\\\\\\\\\\\\u[0-9]{4}\",\"name\":\"constant.character.escape.hx\"},{\"match\":\"\\\\\\\\\\\\\\\\u\\\\\\\\{[0-9A-Fa-f]{1,}\\\\\\\\}\",\"name\":\"constant.character.escape.hx\"},{\"match\":\"\\\\\\\\\\\\\\\\[nrt\\\\\"'\\\\\\\\\\\\\\\\]\",\"name\":\"constant.character.escape.hx\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"invalid.escape.sequence.hx\"}]},\"strings\":{\"patterns\":[{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.hx\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.hx\"}},\"name\":\"string.quoted.double.hx\",\"patterns\":[{\"include\":\"#string-escape-sequences\"}]},{\"begin\":\"(')\",\"beginCaptures\":{\"0\":{\"name\":\"string.quoted.single.hx\"},\"1\":{\"name\":\"punctuation.definition.string.begin.hx\"}},\"end\":\"(')\",\"endCaptures\":{\"0\":{\"name\":\"string.quoted.single.hx\"},\"1\":{\"name\":\"punctuation.definition.string.end.hx\"}},\"patterns\":[{\"begin\":\"\\\\\\\\$(?=\\\\\\\\$)\",\"beginCaptures\":{\"0\":{\"name\":\"constant.character.escape.hx\"}},\"end\":\"\\\\\\\\$\",\"endCaptures\":{\"0\":{\"name\":\"constant.character.escape.hx\"}},\"name\":\"string.quoted.single.hx\"},{\"include\":\"#string-escape-sequences\"},{\"begin\":\"(\\\\\\\\\\${)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.begin.hx\"}},\"end\":\"(})\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.end.hx\"}},\"patterns\":[{\"include\":\"#block-contents\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.block.begin.hx\"},\"2\":{\"name\":\"variable.other.hx\"}},\"match\":\"(\\\\\\\\$)([_a-zA-Z]\\\\\\\\w*)\"},{\"match\":\"\",\"name\":\"constant.character.escape.hx\"},{\"match\":\".\",\"name\":\"string.quoted.single.hx\"}]}]},\"type\":{\"patterns\":[{\"include\":\"#global\"},{\"include\":\"#macro-reification\"},{\"include\":\"#type-name\"},{\"include\":\"#type-parameters\"},{\"match\":\"->\",\"name\":\"keyword.operator.type.function.hx\"},{\"match\":\"&\",\"name\":\"keyword.operator.type.intersection.hx\"},{\"match\":\"\\\\\\\\?(?=\\\\\\\\s*[_A-Z])\",\"name\":\"keyword.operator.optional\"},{\"match\":\"\\\\\\\\?(?!\\\\\\\\s*[_A-Z])\",\"name\":\"punctuation.definition.tag\"},{\"begin\":\"(\\\\\\\\{)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.begin.hx\"}},\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#typedef-block\"}]},{\"include\":\"#function-type\"}]},\"type-check\":{\"begin\":\"(?<!macro)(?=:)\",\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#operator-type-hint\"},{\"include\":\"#type\"}]},\"type-name\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"support.class.builtin.hx\"},\"2\":{\"name\":\"support.package.hx\"},\"3\":{\"name\":\"entity.name.type.hx\"}},\"match\":\"\\\\\\\\b(Any|Array|ArrayAccess|Bool|Class|Date|DateTools|Dynamic|Enum|EnumValue|EReg|Float|IMap|Int|IntIterator|Iterable|Iterator|KeyValueIterator|KeyValueIterable|Lambda|List|ListIterator|ListNode|Map|Math|Null|Reflect|Single|Std|String|StringBuf|StringTools|Sys|Type|UInt|UnicodeString|ValueType|Void|Xml|XmlType)(?:(\\\\\\\\.)(_*[A-Z]\\\\\\\\w*[a-z]\\\\\\\\w*))*\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"support.package.hx\"},\"3\":{\"name\":\"entity.name.type.hx\"},\"4\":{\"name\":\"support.package.hx\"},\"5\":{\"name\":\"entity.name.type.hx\"}},\"match\":\"\\\\\\\\b(?<![^.]\\\\\\\\.)((_*[a-z]\\\\\\\\w*\\\\\\\\.)*)(_*[A-Z]\\\\\\\\w*)(?:(\\\\\\\\.)(_*[A-Z]\\\\\\\\w*[a-z]\\\\\\\\w*))*\\\\\\\\b\"}]},\"type-parameter-constraint-new\":{\"match\":\":\",\"name\":\"keyword.operator.type.annotation.hxt\"},\"type-parameter-constraint-old\":{\"begin\":\"(:)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.hx\"},\"2\":{\"name\":\"punctuation.definition.constraint.begin.hx\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.constraint.end.hx\"}},\"patterns\":[{\"include\":\"#type\"},{\"include\":\"#punctuation-comma\"}]},\"type-parameters\":{\"begin\":\"(<)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.typeparameters.begin.hx\"}},\"end\":\"(?=$)|(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.typeparameters.end.hx\"}},\"name\":\"meta.type-parameters.hx\",\"patterns\":[{\"include\":\"#type\"},{\"include\":\"#type-parameter-constraint-old\"},{\"include\":\"#type-parameter-constraint-new\"},{\"include\":\"#global\"},{\"include\":\"#regex\"},{\"include\":\"#array\"},{\"include\":\"#constants\"},{\"include\":\"#strings\"},{\"include\":\"#metadata\"},{\"include\":\"#punctuation-comma\"}]},\"type-path\":{\"patterns\":[{\"include\":\"#global\"},{\"include\":\"#punctuation-accessor\"},{\"include\":\"#type-path-type-name\"}]},\"type-path-package-name\":{\"match\":\"\\\\\\\\b([_A-Za-z]\\\\\\\\w*)\\\\\\\\b\",\"name\":\"support.package.hx\"},\"type-path-type-name\":{\"match\":\"\\\\\\\\b(_*[A-Z]\\\\\\\\w*)\\\\\\\\b\",\"name\":\"entity.name.type.hx\"},\"typedef\":{\"begin\":\"(?=typedef)\",\"end\":\"(?<=\\\\\\\\})|(;)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.hx\"}},\"name\":\"meta.typedef.hx\",\"patterns\":[{\"include\":\"#typedef-name\"},{\"include\":\"#typedef-name-post\"},{\"include\":\"#typedef-block\"}]},\"typedef-block\":{\"begin\":\"(?<=\\\\\\\\{)\",\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.end.hx\"}},\"name\":\"meta.block.hx\",\"patterns\":[{\"include\":\"#global\"},{\"include\":\"#metadata\"},{\"include\":\"#method\"},{\"include\":\"#variable\"},{\"include\":\"#modifiers\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#operator-optional\"},{\"include\":\"#typedef-extension\"},{\"include\":\"#typedef-simple-field-type-hint\"},{\"include\":\"#identifier-name\"},{\"include\":\"#strings\"}]},\"typedef-extension\":{\"begin\":\">\",\"end\":\",|$\",\"patterns\":[{\"include\":\"#type\"}]},\"typedef-name\":{\"begin\":\"\\\\\\\\b(typedef)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.hx\"}},\"end\":\"([_A-Za-z]\\\\\\\\w*)\",\"endCaptures\":{\"1\":{\"name\":\"entity.name.type.class.hx\"}},\"patterns\":[{\"include\":\"#global\"}]},\"typedef-name-post\":{\"begin\":\"(?<=\\\\\\\\w)\",\"end\":\"(\\\\\\\\{)|(?=;)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.begin.hx\"}},\"patterns\":[{\"include\":\"#global\"},{\"include\":\"#punctuation-brackets\"},{\"include\":\"#punctuation-separator\"},{\"include\":\"#operator-assignment\"},{\"include\":\"#type\"}]},\"typedef-simple-field-type-hint\":{\"begin\":\":\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.type.annotation.hx\"}},\"end\":\"(?=\\\\\\\\}|,|;)\",\"patterns\":[{\"include\":\"#type\"}]},\"using\":{\"begin\":\"using\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.using.hx\"}},\"end\":\"$|(;)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.hx\"}},\"patterns\":[{\"include\":\"#type-path\"},{\"include\":\"#type-path-package-name\"}]},\"variable\":{\"begin\":\"(?=\\\\\\\\b(var|final)\\\\\\\\b)\",\"end\":\"(?=$)|(;)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.hx\"}},\"patterns\":[{\"include\":\"#variable-name\"},{\"include\":\"#variable-name-next\"},{\"include\":\"#variable-assign\"},{\"include\":\"#variable-name-post\"}]},\"variable-accessors\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.begin.hx\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.hx\"}},\"name\":\"meta.parameters.hx\",\"patterns\":[{\"include\":\"#global\"},{\"include\":\"#keywords-accessor\"},{\"include\":\"#accessor-method\"},{\"include\":\"#punctuation-comma\"}]},\"variable-assign\":{\"begin\":\"=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.assignment.hx\"}},\"end\":\"(?=;|,)\",\"patterns\":[{\"include\":\"#block\"},{\"include\":\"#block-contents\"}]},\"variable-name\":{\"begin\":\"\\\\\\\\b(var|final)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.variable.hx\"}},\"end\":\"(?=$)|([_a-zA-Z]\\\\\\\\w*)\",\"endCaptures\":{\"1\":{\"name\":\"variable.other.hx\"}},\"patterns\":[{\"include\":\"#operator-optional\"}]},\"variable-name-next\":{\"begin\":\",\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.comma.hx\"}},\"end\":\"([_a-zA-Z]\\\\\\\\w*)\",\"endCaptures\":{\"1\":{\"name\":\"variable.other.hx\"}},\"patterns\":[{\"include\":\"#global\"}]},\"variable-name-post\":{\"begin\":\"(?<=\\\\\\\\w)\",\"end\":\"(?=;)|(?==)\",\"patterns\":[{\"include\":\"#variable-accessors\"},{\"include\":\"#variable-type-hint\"},{\"include\":\"#block-contents\"}]},\"variable-type-hint\":{\"begin\":\":\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.type.annotation.hx\"}},\"end\":\"(?=$|;|,|=)\",\"patterns\":[{\"include\":\"#type\"}]}},\"scopeName\":\"source.hx\"}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/C6794tGI.js",
    "content": "import{C as e,j as r,g as o}from\"./CU_MfyYc.js\";function i(t,n){return o(),e(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[r(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M8.25 15 12 18.75 15.75 15m-7.5-6L12 5.25 15.75 9\"})])}function s(t,n){return o(),e(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[r(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z\"})])}function c(t,n){return o(),e(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[r(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M12 4.5v15m7.5-7.5h-15\"})])}function d(t,n){return o(),e(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[r(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"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\"})])}export{c as a,s as b,d as c,i as r};\n"
  },
  {
    "path": "jesse/static/_nuxt/C6j12Q_x.js",
    "content": "const t=Object.freeze(JSON.parse(`{\"displayName\":\"WebAssembly\",\"name\":\"wasm\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#strings\"},{\"include\":\"#instructions\"},{\"include\":\"#types\"},{\"include\":\"#modules\"},{\"include\":\"#constants\"},{\"include\":\"#invalid\"}],\"repository\":{\"comments\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.wat\"}},\"comment\":\"Line comment\",\"match\":\"(;;).*$\",\"name\":\"comment.line.wat\"},{\"begin\":\"\\\\\\\\(;\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.wat\"}},\"comment\":\"Block comment\",\"end\":\";\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.wat\"}},\"name\":\"comment.block.wat\"}]},\"constants\":{\"patterns\":[{\"comment\":\"Fixed-width SIMD\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"support.type.wat\"}},\"comment\":\"Vector literal (i8x16) [simd]\",\"match\":\"\\\\\\\\b(i8x16)(?:\\\\\\\\s+0x[0-9a-fA-F]{1,2}){16}\\\\\\\\b\",\"name\":\"constant.numeric.vector.wat\"},{\"captures\":{\"1\":{\"name\":\"support.type.wat\"}},\"comment\":\"Vector literal (i16x8) [simd]\",\"match\":\"\\\\\\\\b(i16x8)(?:\\\\\\\\s+0x[0-9a-fA-F]{1,4}){8}\\\\\\\\b\",\"name\":\"constant.numeric.vector.wat\"},{\"captures\":{\"1\":{\"name\":\"support.type.wat\"}},\"comment\":\"Vector literal (i32x4) [simd]\",\"match\":\"\\\\\\\\b(i32x4)(?:\\\\\\\\s+0x[0-9a-fA-F]{1,8}){4}\\\\\\\\b\",\"name\":\"constant.numeric.vector.wat\"},{\"captures\":{\"1\":{\"name\":\"support.type.wat\"}},\"comment\":\"Vector literal (i64x2) [simd]\",\"match\":\"\\\\\\\\b(i64x2)(?:\\\\\\\\s+0x[0-9a-fA-F]{1,16}){2}\\\\\\\\b\",\"name\":\"constant.numeric.vector.wat\"}]},{\"comment\":\"MVP\",\"patterns\":[{\"comment\":\"Floating point literal\",\"match\":\"[+-]?\\\\\\\\b[0-9][0-9]*(?:\\\\\\\\.[0-9][0-9]*)?(?:[eE][+-]?[0-9]+)?\\\\\\\\b\",\"name\":\"constant.numeric.float.wat\"},{\"comment\":\"Floating point hexadecimal literal\",\"match\":\"[+-]?\\\\\\\\b0x([0-9a-fA-F]*\\\\\\\\.[0-9a-fA-F]+|[0-9a-fA-F]+\\\\\\\\.?)[Pp][+-]?[0-9]+\\\\\\\\b\",\"name\":\"constant.numeric.float.wat\"},{\"comment\":\"Floating point infinity\",\"match\":\"[+-]?\\\\\\\\binf\\\\\\\\b\",\"name\":\"constant.numeric.float.wat\"},{\"comment\":\"Floating point literal (NaN)\",\"match\":\"[+-]?\\\\\\\\bnan:0x[0-9a-fA-F][0-9a-fA-F]*\\\\\\\\b\",\"name\":\"constant.numeric.float.wat\"},{\"comment\":\"Integer literal\",\"match\":\"[+-]?\\\\\\\\b(?:0x[0-9a-fA-F][0-9a-fA-F]*|\\\\\\\\d[\\\\\\\\d]*)\\\\\\\\b\",\"name\":\"constant.numeric.integer.wat\"}]}]},\"instructions\":{\"patterns\":[{\"comment\":\"Non-trapping float-to-int conversions\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"support.class.wat\"}},\"comment\":\"Conversion instruction [nontrapping-float-to-int-conversions]\",\"match\":\"\\\\\\\\b(i32|i64)\\\\\\\\.trunc_sat_f(?:32|64)_[su]\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"}]},{\"comment\":\"Sign-extension operators\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"support.class.wat\"}},\"comment\":\"Numeric instruction (i32) [sign-extension-ops]\",\"match\":\"\\\\\\\\b(i32)\\\\\\\\.(?:extend(?:8|16)_s)\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"captures\":{\"1\":{\"name\":\"support.class.wat\"}},\"comment\":\"Numeric instruction (i64) [sign-extension-ops]\",\"match\":\"\\\\\\\\b(i64)\\\\\\\\.(?:extend(?:8|16|32)_s)\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"}]},{\"comment\":\"Bulk memory operations\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"support.class.wat\"}},\"comment\":\"Memory instruction [bulk-memory-operations]\",\"match\":\"\\\\\\\\b(memory)\\\\\\\\.(?:copy|fill|init|drop)\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"}]},{\"comment\":\"Fixed-width SIMD\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"support.class.wat\"}},\"comment\":\"Vector instruction (v128) [simd]\",\"match\":\"\\\\\\\\b(v128)\\\\\\\\.(?:const|and|or|xor|not|andnot|bitselect|load|store)\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"captures\":{\"1\":{\"name\":\"support.class.wat\"}},\"comment\":\"Vector instruction (i8x16) [simd]\",\"match\":\"\\\\\\\\b(i8x16)\\\\\\\\.(?:shuffle|swizzle|splat|replace_lane|add|sub|mul|neg|shl|shr_[su]|eq|ne|lt_[su]|le_[su]|gt_[su]|ge_[su]|min_[su]|max_[su]|any_true|all_true|extract_lane_[su]|add_saturate_[su]|sub_saturate_[su]|avgr_u|narrow_i16x8_[su])\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"captures\":{\"1\":{\"name\":\"support.class.wat\"}},\"comment\":\"Vector instruction (i16x8) [simd]\",\"match\":\"\\\\\\\\b(i16x8)\\\\\\\\.(?:splat|replace_lane|add|sub|mul|neg|shl|shr_[su]|eq|ne|lt_[su]|le_[su]|gt_[su]|ge_[su]|min_[su]|max_[su]|any_true|all_true|extract_lane_[su]|add_saturate_[su]|sub_saturate_[su]|avgr_u|load8x8_[su]|narrow_i32x4_[su]|widen_(low|high)_i8x16_[su])\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"captures\":{\"1\":{\"name\":\"support.class.wat\"}},\"comment\":\"Vector instruction (i32x4) [simd]\",\"match\":\"\\\\\\\\b(i32x4)\\\\\\\\.(?:splat|replace_lane|add|sub|mul|neg|shl|shr_[su]|eq|ne|lt_[su]|le_[su]|gt_[su]|ge_[su]|min_[su]|max_[su]|any_true|all_true|extract_lane|load16x4_[su]|trunc_sat_f32x4_[su]|widen_(low|high)_i16x8_[su])\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"captures\":{\"1\":{\"name\":\"support.class.wat\"}},\"comment\":\"Vector instruction (i64x2) [simd]\",\"match\":\"\\\\\\\\b(i64x2)\\\\\\\\.(?:splat|replace_lane|add|sub|mul|neg|shl|shr_[su]|extract_lane|load32x2_[su])\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"captures\":{\"1\":{\"name\":\"support.class.wat\"}},\"comment\":\"Vector instruction (f32x4) [simd]\",\"match\":\"\\\\\\\\b(f32x4)\\\\\\\\.(?:splat|replace_lane|add|sub|mul|neg|extract_lane|eq|ne|lt|le|gt|ge|abs|min|max|div|sqrt|convert_i32x4_[su])\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"captures\":{\"1\":{\"name\":\"support.class.wat\"}},\"comment\":\"Vector instruction (f64x2) [simd]\",\"match\":\"\\\\\\\\b(f64x2)\\\\\\\\.(?:splat|replace_lane|add|sub|mul|neg|extract_lane|eq|ne|lt|le|gt|ge|abs|min|max|div|sqrt)\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"captures\":{\"1\":{\"name\":\"support.class.wat\"}},\"comment\":\"Vector instruction (v8x16) [simd]\",\"match\":\"\\\\\\\\b(v8x16)\\\\\\\\.(?:load_splat|shuffle|swizzle)\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"captures\":{\"1\":{\"name\":\"support.class.wat\"}},\"comment\":\"Vector instruction (v16x8) [simd]\",\"match\":\"\\\\\\\\b(v16x8)\\\\\\\\.load_splat\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"captures\":{\"1\":{\"name\":\"support.class.wat\"}},\"comment\":\"Vector instruction (v32x4) [simd]\",\"match\":\"\\\\\\\\b(v32x4)\\\\\\\\.load_splat\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"captures\":{\"1\":{\"name\":\"support.class.wat\"}},\"comment\":\"Vector instruction (v64x2) [simd]\",\"match\":\"\\\\\\\\b(v64x2)\\\\\\\\.load_splat\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"}]},{\"comment\":\"Threads\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"support.class.wat\"},\"2\":{\"name\":\"support.class.wat\"},\"3\":{\"name\":\"support.class.wat\"},\"4\":{\"name\":\"support.class.wat\"}},\"comment\":\"Atomic instruction (i32) [threads]\",\"match\":\"\\\\\\\\b(i32)\\\\\\\\.(atomic)\\\\\\\\.(?:load(?:8_u|16_u)?|store(?:8|16)?|wait|(rmw)\\\\\\\\.(?:add|sub|and|or|xor|xchg|cmpxchg)|(rmw8|rmw16)\\\\\\\\.(?:add_u|sub_u|and_u|or_u|xor_u|xchg_u|cmpxchg_u))\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"captures\":{\"1\":{\"name\":\"support.class.wat\"},\"2\":{\"name\":\"support.class.wat\"},\"3\":{\"name\":\"support.class.wat\"},\"4\":{\"name\":\"support.class.wat\"}},\"comment\":\"Atomic instruction (i64) [threads]\",\"match\":\"\\\\\\\\b(i64)\\\\\\\\.(atomic)\\\\\\\\.(?:load(?:8_u|16_u|32_u)?|store(?:8|16|32)?|wait|(rmw)\\\\\\\\.(?:add|sub|and|or|xor|xchg|cmpxchg)|(rmw8|rmw16|rmw32)\\\\\\\\.(?:add_u|sub_u|and_u|or_u|xor_u|xchg_u|cmpxchg_u))\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"captures\":{\"1\":{\"name\":\"support.class.wat\"}},\"comment\":\"Atomic instruction [threads]\",\"match\":\"\\\\\\\\b(atomic)\\\\\\\\.(?:notify|fence)\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"comment\":\"Shared modifier [threads]\",\"match\":\"\\\\\\\\bshared\\\\\\\\b\",\"name\":\"storage.modifier.wat\"}]},{\"comment\":\"Reference types\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"support.class.wat\"}},\"comment\":\"Reference instruction [reference-types]\",\"match\":\"\\\\\\\\b(ref)\\\\\\\\.(?:null|is_null|func|extern)\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"captures\":{\"1\":{\"name\":\"support.class.wat\"}},\"comment\":\"Table instruction [reference-types]\",\"match\":\"\\\\\\\\b(table)\\\\\\\\.(?:get|size|grow|fill|init|copy)\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"comment\":\"Type name [reference-types]\",\"match\":\"\\\\\\\\b(?:externref|funcref|nullref)\\\\\\\\b\",\"name\":\"entity.name.type.wat\"}]},{\"comment\":\"Tail Call\",\"patterns\":[{\"comment\":\"Control instruction [tail-call]\",\"match\":\"\\\\\\\\breturn_call(?:_indirect)?\\\\\\\\b\",\"name\":\"keyword.control.wat\"}]},{\"comment\":\"Exception handling\",\"patterns\":[{\"comment\":\"Control instruction [exception-handling]\",\"match\":\"\\\\\\\\b(?:try|catch|throw|rethrow|br_on_exn)\\\\\\\\b\",\"name\":\"keyword.control.wat\"},{\"comment\":\"Module element [exception-handling]\",\"match\":\"(?<=\\\\\\\\()event\\\\\\\\b\",\"name\":\"storage.type.wat\"}]},{\"comment\":\"Binaryen extensions\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"support.class.wat\"}},\"comment\":\"Pseudo stack instruction [binaryen]\",\"match\":\"\\\\\\\\b(i32|i64|f32|f64|externref|funcref|nullref|exnref)\\\\\\\\.(?:push|pop)\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"}]},{\"comment\":\"MVP\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"support.class.type.wat\"}},\"comment\":\"Memory instruction (i32) [mvp]\",\"match\":\"\\\\\\\\b(i32)\\\\\\\\.(?:load|load(?:8|16)(?:_[su])?|store(?:8|16)?)\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"captures\":{\"1\":{\"name\":\"support.class.type.wat\"}},\"comment\":\"Memory instruction (i64) [mvp]\",\"match\":\"\\\\\\\\b(i64)\\\\\\\\.(?:load|load(?:8|16|32)(?:_[su])?|store(?:8|16|32)?)\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"captures\":{\"1\":{\"name\":\"support.class.type.wat\"}},\"comment\":\"Memory instruction (f32/f64) [mvp]\",\"match\":\"\\\\\\\\b(f32|f64)\\\\\\\\.(?:load|store)\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"captures\":{\"1\":{\"name\":\"support.class.memory.wat\"}},\"comment\":\"Memory instruction [mvp]\",\"match\":\"\\\\\\\\b(memory)\\\\\\\\.(?:size|grow)\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.wat\"}},\"comment\":\"Memory instruction attribute [mvp]\",\"match\":\"\\\\\\\\b(offset|align)=\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"support.class.local.wat\"}},\"comment\":\"Variable instruction (local) [mvp]\",\"match\":\"\\\\\\\\b(local)\\\\\\\\.(?:get|set|tee)\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"captures\":{\"1\":{\"name\":\"support.class.global.wat\"}},\"comment\":\"Variable instruction (global) [mvp]\",\"match\":\"\\\\\\\\b(global)\\\\\\\\.(?:get|set)\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"captures\":{\"1\":{\"name\":\"support.class.type.wat\"}},\"comment\":\"Numeric instruction (i32/i64) [mvp]\",\"match\":\"\\\\\\\\b(i32|i64)\\\\\\\\.(const|eqz|eq|ne|lt_[su]|gt_[su]|le_[su]|ge_[su]|clz|ctz|popcnt|add|sub|mul|div_[su]|rem_[su]|and|or|xor|shl|shr_[su]|rotl|rotr)\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"captures\":{\"1\":{\"name\":\"support.class.type.wat\"}},\"comment\":\"Numeric instruction (f32/f64) [mvp]\",\"match\":\"\\\\\\\\b(f32|f64)\\\\\\\\.(const|eq|ne|lt|gt|le|ge|abs|neg|ceil|floor|trunc|nearest|sqrt|add|sub|mul|div|min|max|copysign)\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"captures\":{\"1\":{\"name\":\"support.class.type.wat\"}},\"comment\":\"Conversion instruction (i32) [mvp]\",\"match\":\"\\\\\\\\b(i32)\\\\\\\\.(wrap_i64|trunc_(f32|f64)_[su]|reinterpret_f32)\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"captures\":{\"1\":{\"name\":\"support.class.type.wat\"}},\"comment\":\"Conversion instruction (i64) [mvp]\",\"match\":\"\\\\\\\\b(i64)\\\\\\\\.(extend_i32_[su]|trunc_f(32|64)_[su]|reinterpret_f64)\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"captures\":{\"1\":{\"name\":\"support.class.type.wat\"}},\"comment\":\"Conversion instruction (f32) [mvp]\",\"match\":\"\\\\\\\\b(f32)\\\\\\\\.(convert_i(32|64)_[su]|demote_f64|reinterpret_i32)\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"captures\":{\"1\":{\"name\":\"support.class.type.wat\"}},\"comment\":\"Conversion instruction (f64) [mvp]\",\"match\":\"\\\\\\\\b(f64)\\\\\\\\.(convert_i(32|64)_[su]|promote_f32|reinterpret_i64)\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"comment\":\"Control instruction [mvp]\",\"match\":\"\\\\\\\\b(?:unreachable|nop|block|loop|if|then|else|end|br|br_if|br_table|return|call|call_indirect)\\\\\\\\b\",\"name\":\"keyword.control.wat\"},{\"comment\":\"Parametric instruction [mvp]\",\"match\":\"\\\\\\\\b(?:drop|select)\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"}]},{\"comment\":\"GC Instructions\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"support.class.wat\"}},\"comment\":\"Reference Instructions [GC]\",\"match\":\"\\\\\\\\b(ref)\\\\\\\\.(?:eq|test|cast)\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"captures\":{\"1\":{\"name\":\"support.class.wat\"}},\"comment\":\"Struct Instructions [GC]\",\"match\":\"\\\\\\\\b(struct)\\\\\\\\.(?:new_canon|new_canon_default|get|get_s|get_u|set)\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"captures\":{\"1\":{\"name\":\"support.class.wat\"}},\"comment\":\"Array Instructions [GC]\",\"match\":\"\\\\\\\\b(array)\\\\\\\\.(?:new_canon|new_canon_default|get|get_s|get_u|set|len|new_canon_fixed|new_canon_data|new_canon_elem)\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"captures\":{\"1\":{\"name\":\"support.class.wat\"}},\"comment\":\"i31 Instructions [GC]\",\"match\":\"\\\\\\\\b(i31)\\\\\\\\.(?:new|get_s|get_u)\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"captures\":{\"1\":{\"name\":\"support.class.wat\"}},\"comment\":\"Branch Instructions [GC]\",\"match\":\"\\\\\\\\b(?:br_on_non_null|br_on_cast|br_on_cast_fail)\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"},{\"captures\":{\"1\":{\"name\":\"support.class.wat\"}},\"comment\":\"Reference Instructions [GC]\",\"match\":\"\\\\\\\\b(extern)\\\\\\\\.(?:internalize|externalize)\\\\\\\\b\",\"name\":\"keyword.operator.word.wat\"}]}]},\"invalid\":{\"patterns\":[{\"match\":\"[^\\\\\\\\s()]+\",\"name\":\"invalid.wat\"}]},\"modules\":{\"patterns\":[{\"comment\":\"Bulk memory operations\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.modifier.wat\"}},\"comment\":\"Passive modifier [bulk-memory-operations]\",\"match\":\"(?<=\\\\\\\\(data)\\\\\\\\s+(passive)\\\\\\\\b\"}]},{\"comment\":\"MVP\",\"patterns\":[{\"comment\":\"Module element [mvp]\",\"match\":\"(?<=\\\\\\\\()(?:module|import|export|memory|data|table|elem|start|func|type|param|result|global|local)\\\\\\\\b\",\"name\":\"storage.type.wat\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.wat\"}},\"comment\":\"Mutable global modifier [mvp]\",\"match\":\"(?<=\\\\\\\\()\\\\\\\\s*(mut)\\\\\\\\b\",\"name\":\"storage.modifier.wat\"},{\"captures\":{\"1\":{\"name\":\"entity.name.function.wat\"}},\"comment\":\"Function name [mvp]\",\"match\":\"(?<=\\\\\\\\(func|\\\\\\\\(start|call|return_call|ref\\\\\\\\.func)\\\\\\\\s+(\\\\\\\\$[0-9A-Za-z!#$%&'*+\\\\\\\\-./:<=>?@\\\\\\\\\\\\\\\\^_\\`|~]*)\"},{\"begin\":\"\\\\\\\\)\\\\\\\\s+(\\\\\\\\$[0-9A-Za-z!#$%&'*+\\\\\\\\-./:<=>?@\\\\\\\\\\\\\\\\^_\\`|~]*)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.wat\"}},\"comment\":\"Function name(s) (elem) [mvp]\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"match\":\"(?<=\\\\\\\\s)\\\\\\\\$[0-9A-Za-z!#$%&'*+\\\\\\\\-./:<=>?@\\\\\\\\\\\\\\\\^_\\`|~]*\",\"name\":\"entity.name.function.wat\"}]},{\"captures\":{\"1\":{\"name\":\"support.type.function.wat\"}},\"comment\":\"Function type [mvp]\",\"match\":\"(?<=\\\\\\\\(type)\\\\\\\\s+(\\\\\\\\$[0-9A-Za-z!#$%&'*+\\\\\\\\-./:<=>?@\\\\\\\\\\\\\\\\^_\\`|~]*)\"},{\"comment\":\"Variable name or branch label [mvp]\",\"match\":\"\\\\\\\\$[0-9A-Za-z!#$%&'*+\\\\\\\\-./:<=>?@\\\\\\\\\\\\\\\\^_\\`|~]*\\\\\\\\b\",\"name\":\"variable.other.wat\"}]}]},\"strings\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin\"}},\"comment\":\"String literal\",\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end\"}},\"name\":\"string.quoted.double.wat\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(n|t|\\\\\\\\\\\\\\\\|'|\\\\\"|[0-9a-fA-F]{2})\",\"name\":\"constant.character.escape.wat\"}]},\"types\":{\"patterns\":[{\"comment\":\"Fixed-width SIMD\",\"patterns\":[{\"comment\":\"Type name [simd]\",\"match\":\"\\\\\\\\bv128\\\\\\\\b(?!\\\\\\\\.)\",\"name\":\"entity.name.type.wat\"}]},{\"comment\":\"Reference types\",\"patterns\":[{\"comment\":\"Type name [reference-types]\",\"match\":\"\\\\\\\\b(?:externref|funcref|nullref)\\\\\\\\b(?!\\\\\\\\.)\",\"name\":\"entity.name.type.wat\"}]},{\"comment\":\"Exception handling\",\"patterns\":[{\"comment\":\"Type name [exception-handling]\",\"match\":\"\\\\\\\\bexnref\\\\\\\\b(?!\\\\\\\\.)\",\"name\":\"entity.name.type.wat\"}]},{\"comment\":\"MVP\",\"patterns\":[{\"comment\":\"Type name [mvp]\",\"match\":\"\\\\\\\\b(?:i32|i64|f32|f64)\\\\\\\\b(?!\\\\\\\\.)\",\"name\":\"entity.name.type.wat\"}]},{\"comment\":\"GC Types\",\"patterns\":[{\"comment\":\"Type name [GC]\",\"match\":\"\\\\\\\\b(?:i8|i16|ref|funcref|externref|anyref|eqref|i31ref|nullfuncref|nullexternref|structref|arrayref|nullref)\\\\\\\\b(?!\\\\\\\\.)\",\"name\":\"entity.name.type.wat\"}]},{\"comment\":\"GC Heap Types\",\"patterns\":[{\"comment\":\"Type name [GC]\",\"match\":\"\\\\\\\\b(?:type|func|extern|any|eq|nofunc|noextern|struct|array|none)\\\\\\\\b(?!\\\\\\\\.)\",\"name\":\"entity.name.type.wat\"}]},{\"comment\":\"GC Structured and sub Types\",\"patterns\":[{\"comment\":\"Type name [GC]\",\"match\":\"\\\\\\\\b(?:struct|array|sub|final|rec|field|mut)\\\\\\\\b(?!\\\\\\\\.)\",\"name\":\"entity.name.type.wat\"}]}]}},\"scopeName\":\"source.wat\"}`)),e=[t];export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/C75U4IDy.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var E={brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},S={defaultToken:\"\",tokenPostfix:\".redis\",ignoreCase:!0,brackets:[{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],keywords:[\"APPEND\",\"AUTH\",\"BGREWRITEAOF\",\"BGSAVE\",\"BITCOUNT\",\"BITFIELD\",\"BITOP\",\"BITPOS\",\"BLPOP\",\"BRPOP\",\"BRPOPLPUSH\",\"CLIENT\",\"KILL\",\"LIST\",\"GETNAME\",\"PAUSE\",\"REPLY\",\"SETNAME\",\"CLUSTER\",\"ADDSLOTS\",\"COUNT-FAILURE-REPORTS\",\"COUNTKEYSINSLOT\",\"DELSLOTS\",\"FAILOVER\",\"FORGET\",\"GETKEYSINSLOT\",\"INFO\",\"KEYSLOT\",\"MEET\",\"NODES\",\"REPLICATE\",\"RESET\",\"SAVECONFIG\",\"SET-CONFIG-EPOCH\",\"SETSLOT\",\"SLAVES\",\"SLOTS\",\"COMMAND\",\"COUNT\",\"GETKEYS\",\"CONFIG\",\"GET\",\"REWRITE\",\"SET\",\"RESETSTAT\",\"DBSIZE\",\"DEBUG\",\"OBJECT\",\"SEGFAULT\",\"DECR\",\"DECRBY\",\"DEL\",\"DISCARD\",\"DUMP\",\"ECHO\",\"EVAL\",\"EVALSHA\",\"EXEC\",\"EXISTS\",\"EXPIRE\",\"EXPIREAT\",\"FLUSHALL\",\"FLUSHDB\",\"GEOADD\",\"GEOHASH\",\"GEOPOS\",\"GEODIST\",\"GEORADIUS\",\"GEORADIUSBYMEMBER\",\"GETBIT\",\"GETRANGE\",\"GETSET\",\"HDEL\",\"HEXISTS\",\"HGET\",\"HGETALL\",\"HINCRBY\",\"HINCRBYFLOAT\",\"HKEYS\",\"HLEN\",\"HMGET\",\"HMSET\",\"HSET\",\"HSETNX\",\"HSTRLEN\",\"HVALS\",\"INCR\",\"INCRBY\",\"INCRBYFLOAT\",\"KEYS\",\"LASTSAVE\",\"LINDEX\",\"LINSERT\",\"LLEN\",\"LPOP\",\"LPUSH\",\"LPUSHX\",\"LRANGE\",\"LREM\",\"LSET\",\"LTRIM\",\"MGET\",\"MIGRATE\",\"MONITOR\",\"MOVE\",\"MSET\",\"MSETNX\",\"MULTI\",\"PERSIST\",\"PEXPIRE\",\"PEXPIREAT\",\"PFADD\",\"PFCOUNT\",\"PFMERGE\",\"PING\",\"PSETEX\",\"PSUBSCRIBE\",\"PUBSUB\",\"PTTL\",\"PUBLISH\",\"PUNSUBSCRIBE\",\"QUIT\",\"RANDOMKEY\",\"READONLY\",\"READWRITE\",\"RENAME\",\"RENAMENX\",\"RESTORE\",\"ROLE\",\"RPOP\",\"RPOPLPUSH\",\"RPUSH\",\"RPUSHX\",\"SADD\",\"SAVE\",\"SCARD\",\"SCRIPT\",\"FLUSH\",\"LOAD\",\"SDIFF\",\"SDIFFSTORE\",\"SELECT\",\"SETBIT\",\"SETEX\",\"SETNX\",\"SETRANGE\",\"SHUTDOWN\",\"SINTER\",\"SINTERSTORE\",\"SISMEMBER\",\"SLAVEOF\",\"SLOWLOG\",\"SMEMBERS\",\"SMOVE\",\"SORT\",\"SPOP\",\"SRANDMEMBER\",\"SREM\",\"STRLEN\",\"SUBSCRIBE\",\"SUNION\",\"SUNIONSTORE\",\"SWAPDB\",\"SYNC\",\"TIME\",\"TOUCH\",\"TTL\",\"TYPE\",\"UNSUBSCRIBE\",\"UNLINK\",\"UNWATCH\",\"WAIT\",\"WATCH\",\"ZADD\",\"ZCARD\",\"ZCOUNT\",\"ZINCRBY\",\"ZINTERSTORE\",\"ZLEXCOUNT\",\"ZRANGE\",\"ZRANGEBYLEX\",\"ZREVRANGEBYLEX\",\"ZRANGEBYSCORE\",\"ZRANK\",\"ZREM\",\"ZREMRANGEBYLEX\",\"ZREMRANGEBYRANK\",\"ZREMRANGEBYSCORE\",\"ZREVRANGE\",\"ZREVRANGEBYSCORE\",\"ZREVRANK\",\"ZSCORE\",\"ZUNIONSTORE\",\"SCAN\",\"SSCAN\",\"HSCAN\",\"ZSCAN\"],operators:[],builtinFunctions:[],builtinVariables:[],pseudoColumns:[],tokenizer:{root:[{include:\"@whitespace\"},{include:\"@pseudoColumns\"},{include:\"@numbers\"},{include:\"@strings\"},{include:\"@scopes\"},[/[;,.]/,\"delimiter\"],[/[()]/,\"@brackets\"],[/[\\w@#$]+/,{cases:{\"@keywords\":\"keyword\",\"@operators\":\"operator\",\"@builtinVariables\":\"predefined\",\"@builtinFunctions\":\"predefined\",\"@default\":\"identifier\"}}],[/[<>=!%&+\\-*/|~^]/,\"operator\"]],whitespace:[[/\\s+/,\"white\"]],pseudoColumns:[[/[$][A-Za-z_][\\w@#$]*/,{cases:{\"@pseudoColumns\":\"predefined\",\"@default\":\"identifier\"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,\"number\"],[/[$][+-]*\\d*(\\.\\d*)?/,\"number\"],[/((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][\\-+]?\\d+)?/,\"number\"]],strings:[[/'/,{token:\"string\",next:\"@string\"}],[/\"/,{token:\"string.double\",next:\"@stringDouble\"}]],string:[[/[^']+/,\"string\"],[/''/,\"string\"],[/'/,{token:\"string\",next:\"@pop\"}]],stringDouble:[[/[^\"]+/,\"string.double\"],[/\"\"/,\"string.double\"],[/\"/,{token:\"string.double\",next:\"@pop\"}]],scopes:[]}};export{E as conf,S as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/C7L56vO4.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"SystemVerilog\",\"fileTypes\":[\"v\",\"vh\",\"sv\",\"svh\"],\"name\":\"system-verilog\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#strings\"},{\"include\":\"#typedef-enum-struct-union\"},{\"include\":\"#typedef\"},{\"include\":\"#functions\"},{\"include\":\"#keywords\"},{\"include\":\"#tables\"},{\"include\":\"#function-task\"},{\"include\":\"#module-declaration\"},{\"include\":\"#class-declaration\"},{\"include\":\"#enum-struct-union\"},{\"include\":\"#sequence\"},{\"include\":\"#all-types\"},{\"include\":\"#module-parameters\"},{\"include\":\"#module-no-parameters\"},{\"include\":\"#port-net-parameter\"},{\"include\":\"#system-tf\"},{\"include\":\"#assertion\"},{\"include\":\"#bind-directive\"},{\"include\":\"#cast-operator\"},{\"include\":\"#storage-scope\"},{\"include\":\"#attributes\"},{\"include\":\"#imports\"},{\"include\":\"#operators\"},{\"include\":\"#constants\"},{\"include\":\"#identifiers\"},{\"include\":\"#selects\"}],\"repository\":{\"all-types\":{\"patterns\":[{\"include\":\"#built-ins\"},{\"include\":\"#modifiers\"}]},\"assertion\":{\"captures\":{\"1\":{\"name\":\"entity.name.goto-label.php\"},\"2\":{\"name\":\"keyword.operator.systemverilog\"},\"3\":{\"name\":\"keyword.sva.systemverilog\"}},\"match\":\"\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_$]*)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(:)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(assert|assume|cover|restrict)\\\\\\\\b\"},\"attributes\":{\"begin\":\"(?<!@[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]?)\\\\\\\\(\\\\\\\\*\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.attribute.rounds.begin\"}},\"end\":\"\\\\\\\\*\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.attribute.rounds.end\"}},\"name\":\"meta.attribute.systemverilog\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"},\"2\":{\"name\":\"keyword.operator.assignment.systemverilog\"}},\"match\":\"([a-zA-Z_][a-zA-Z0-9_$]*)(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(=)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*)?\"},{\"include\":\"#constants\"},{\"include\":\"#strings\"}]},\"base-grammar\":{\"patterns\":[{\"include\":\"#all-types\"},{\"include\":\"#comments\"},{\"include\":\"#operators\"},{\"include\":\"#constants\"},{\"include\":\"#strings\"},{\"captures\":{\"1\":{\"name\":\"storage.type.interface.systemverilog\"}},\"match\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_$]*)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+[a-zA-Z_][a-zA-Z0-9_,= \\\\\\\\t\\\\\\\\n]*\"},{\"include\":\"#storage-scope\"}]},\"bind-directive\":{\"captures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"},\"2\":{\"name\":\"entity.name.type.module.systemverilog\"}},\"match\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\b(bind)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+([a-zA-Z_][a-zA-Z0-9_$\\\\\\\\.]*)\\\\\\\\b\",\"name\":\"meta.definition.systemverilog\"},\"built-ins\":{\"patterns\":[{\"match\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\b(bit|logic|reg)\\\\\\\\b\",\"name\":\"storage.type.vector.systemverilog\"},{\"match\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\b(byte|shortint|int|longint|integer|time|genvar)\\\\\\\\b\",\"name\":\"storage.type.atom.systemverilog\"},{\"match\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\b(shortreal|real|realtime)\\\\\\\\b\",\"name\":\"storage.type.notint.systemverilog\"},{\"match\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\b(supply[01]|tri|triand|trior|trireg|tri[01]|uwire|wire|wand|wor)\\\\\\\\b\",\"name\":\"storage.type.net.systemverilog\"},{\"match\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\b(genvar|var|void|signed|unsigned|string|const|process)\\\\\\\\b\",\"name\":\"storage.type.built-in.systemverilog\"},{\"match\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\b(uvm_(?:root|transaction|component|monitor|driver|test|env|object|agent|sequence_base|sequence_item|sequence_state|sequencer|sequencer_base|sequence|component_registry|analysis_imp|analysis_port|analysis_export|config_db|active_passive_enum|phase|verbosity|tlm_analysis_fifo|tlm_fifo|report_server|objection|recorder|domain|reg_field|reg_block|reg|bitstream_t|radix_enum|printer|packer|comparer|scope_stack))\\\\\\\\b\",\"name\":\"storage.type.uvm.systemverilog\"}]},\"cast-operator\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#built-ins\"},{\"include\":\"#constants\"},{\"match\":\"[a-zA-Z_][a-zA-Z0-9_$]*\",\"name\":\"storage.type.user-defined.systemverilog\"}]},\"2\":{\"name\":\"keyword.operator.cast.systemverilog\"}},\"match\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*([0-9]+|[a-zA-Z_][a-zA-Z0-9_$]*)(\\')(?=\\\\\\\\()\",\"name\":\"meta.cast.systemverilog\"},\"class-declaration\":{\"begin\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\b(virtual[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+)?(class)(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+(static|automatic))?[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+([a-zA-Z_][a-zA-Z0-9_$:]*)(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+(extends|implements)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+([a-zA-Z_][a-zA-Z0-9_$:]*))?\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.systemverilog\"},\"2\":{\"name\":\"storage.type.class.systemverilog\"},\"3\":{\"name\":\"storage.modifier.systemverilog\"},\"4\":{\"name\":\"entity.name.type.class.systemverilog\"},\"5\":{\"name\":\"keyword.control.systemverilog\"},\"6\":{\"name\":\"entity.name.type.class.systemverilog\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.class.end.systemverilog\"}},\"name\":\"meta.class.systemverilog\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"},\"2\":{\"name\":\"entity.name.type.class.systemverilog\"},\"3\":{\"name\":\"entity.name.type.class.systemverilog\"}},\"match\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+\\\\\\\\b(extends|implements)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+([a-zA-Z_][a-zA-Z0-9_$:]*)(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*,[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*([a-zA-Z_][a-zA-Z0-9_$:]*))*\"},{\"captures\":{\"1\":{\"name\":\"storage.type.userdefined.systemverilog\"},\"2\":{\"name\":\"keyword.operator.param.systemverilog\"}},\"match\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_$]*)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(#)\\\\\\\\(\",\"name\":\"meta.typedef.class.systemverilog\"},{\"include\":\"#port-net-parameter\"},{\"include\":\"#base-grammar\"},{\"include\":\"#module-binding\"},{\"include\":\"#identifiers\"}]},\"comments\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.systemverilog\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.systemverilog\"}},\"name\":\"comment.block.systemverilog\",\"patterns\":[{\"include\":\"#fixme-todo\"}]},{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.systemverilog\"}},\"end\":\"$\\\\\\\\n?\",\"name\":\"comment.line.double-slash.systemverilog\",\"patterns\":[{\"include\":\"#fixme-todo\"}]}]},\"compiler-directives\":{\"name\":\"meta.preprocessor.systemverilog\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.directive.systemverilog\"},\"2\":{\"name\":\"string.regexp.systemverilog\"}},\"match\":\"(`)(else|endif|endcelldefine|celldefine|nounconnected_drive|resetall|undefineall|end_keywords|__FILE__|__LINE__)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.directive.systemverilog\"},\"2\":{\"name\":\"string.regexp.systemverilog\"},\"3\":{\"name\":\"variable.other.constant.preprocessor.systemverilog\"}},\"match\":\"(`)(ifdef|ifndef|elsif|define|undef|pragma)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+([a-zA-Z_][a-zA-Z0-9_$]*)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.directive.systemverilog\"},\"2\":{\"name\":\"string.regexp.systemverilog\"}},\"match\":\"(`)(include|timescale|default_nettype|unconnected_drive|line|begin_keywords)\\\\\\\\b\"},{\"begin\":\"(`)(protected)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.directive.systemverilog\"},\"2\":{\"name\":\"string.regexp.systemverilog\"}},\"end\":\"(`)(endprotected)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.directive.systemverilog\"},\"2\":{\"name\":\"string.regexp.systemverilog\"}},\"name\":\"meta.crypto.systemverilog\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.directive.systemverilog\"},\"2\":{\"name\":\"variable.other.constant.preprocessor.systemverilog\"}},\"match\":\"(`)([a-zA-Z_][a-zA-Z0-9_$]*)\\\\\\\\b\"}]},\"constants\":{\"patterns\":[{\"match\":\"(\\\\\\\\b[1-9][0-9_]*)?\\'([sS]?[bB][ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*[0-1xXzZ?][0-1_xXzZ?]*|[sS]?[oO][ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*[0-7xXzZ?][0-7_xXzZ?]*|[sS]?[dD][ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*[0-9xXzZ?][0-9_xXzZ?]*|[sS]?[hH][ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*[0-9a-fA-FxXzZ?][0-9a-fA-F_xXzZ?]*)((e|E)(\\\\\\\\+|-)?[0-9]+)?(?!\\'|\\\\\\\\w)\",\"name\":\"constant.numeric.systemverilog\"},{\"match\":\"\\'[01xXzZ]\",\"name\":\"constant.numeric.bit.systemverilog\"},{\"match\":\"\\\\\\\\b(?:\\\\\\\\d[\\\\\\\\d_\\\\\\\\.]*(?<!\\\\\\\\.)(?:e|E)(?:\\\\\\\\+|-)?[0-9]+)\\\\\\\\b\",\"name\":\"constant.numeric.exp.systemverilog\"},{\"match\":\"\\\\\\\\b(?:\\\\\\\\d[\\\\\\\\d_\\\\\\\\.]*(?!(?:[\\\\\\\\d\\\\\\\\.]|[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(?:e|E|fs|ps|ns|us|ms|s))))\\\\\\\\b\",\"name\":\"constant.numeric.decimal.systemverilog\"},{\"match\":\"\\\\\\\\b(?:\\\\\\\\d[\\\\\\\\d\\\\\\\\.]*[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(?:fs|ps|ns|us|ms|s))\\\\\\\\b\",\"name\":\"constant.numeric.time.systemverilog\"},{\"include\":\"#compiler-directives\"},{\"match\":\"\\\\\\\\b(?:this|super|null)\\\\\\\\b\",\"name\":\"constant.language.systemverilog\"},{\"match\":\"\\\\\\\\b([A-Z][A-Z0-9_]*)\\\\\\\\b\",\"name\":\"constant.other.net.systemverilog\"},{\"match\":\"\\\\\\\\b(?<!\\\\\\\\.)([A-Z0-9_]+)(?!\\\\\\\\.)\\\\\\\\b\",\"name\":\"constant.numeric.parameter.uppercase.systemverilog\"},{\"match\":\"\\\\\\\\.\\\\\\\\*\",\"name\":\"keyword.operator.quantifier.regexp\"}]},\"enum-struct-union\":{\"begin\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\b(enum|struct|union(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+tagged)?|class|interface[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+class)(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+(?!packed|signed|unsigned)([a-zA-Z_][a-zA-Z0-9_$]*)?(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(\\\\\\\\[[a-zA-Z0-9_:$\\\\\\\\.\\\\\\\\-\\\\\\\\+\\\\\\\\*/%`\\' \\\\\\\\t\\\\\\\\r\\\\\\\\n\\\\\\\\[\\\\\\\\]\\\\\\\\(\\\\\\\\)]*\\\\\\\\])?))?(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+(packed))?(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+(signed|unsigned))?(?=[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(?:{|$))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"},\"2\":{\"patterns\":[{\"include\":\"#built-ins\"}]},\"3\":{\"patterns\":[{\"include\":\"#selects\"}]},\"4\":{\"name\":\"storage.modifier.systemverilog\"},\"5\":{\"name\":\"storage.modifier.systemverilog\"}},\"end\":\"(?<=})[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*([a-zA-Z_][a-zA-Z0-9_$]*|(?<=^|[ \\\\\\\\t\\\\\\\\r\\\\\\\\n])\\\\\\\\\\\\\\\\[!-~]+(?=$|[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]))(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(\\\\\\\\[[a-zA-Z0-9_:$\\\\\\\\.\\\\\\\\-\\\\\\\\+\\\\\\\\*/%`\\' \\\\\\\\t\\\\\\\\r\\\\\\\\n\\\\\\\\[\\\\\\\\]\\\\\\\\(\\\\\\\\)]*\\\\\\\\])?)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*[,;]\",\"endCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#identifiers\"}]},\"2\":{\"patterns\":[{\"include\":\"#selects\"}]}},\"name\":\"meta.enum-struct-union.systemverilog\",\"patterns\":[{\"include\":\"#keywords\"},{\"include\":\"#base-grammar\"},{\"include\":\"#identifiers\"}]},\"fixme-todo\":{\"patterns\":[{\"match\":\"(?i:fixme)\",\"name\":\"invalid.broken.fixme.systemverilog\"},{\"match\":\"(?i:todo)\",\"name\":\"invalid.unimplemented.todo.systemverilog\"}]},\"function-task\":{\"begin\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(?:\\\\\\\\b(virtual)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+)?(?:\\\\\\\\b(function|task)\\\\\\\\b)(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+\\\\\\\\b(static|automatic)\\\\\\\\b)?\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.systemverilog\"},\"2\":{\"name\":\"storage.type.function.systemverilog\"},\"3\":{\"name\":\"storage.modifier.systemverilog\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.function.end.systemverilog\"}},\"name\":\"meta.function.systemverilog\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"support.type.scope.systemverilog\"},\"2\":{\"name\":\"keyword.operator.scope.systemverilog\"},\"3\":{\"patterns\":[{\"include\":\"#built-ins\"},{\"match\":\"[a-zA-Z_][a-zA-Z0-9_$]*\",\"name\":\"storage.type.user-defined.systemverilog\"}]},\"4\":{\"patterns\":[{\"include\":\"#modifiers\"}]},\"5\":{\"patterns\":[{\"include\":\"#selects\"}]},\"6\":{\"name\":\"entity.name.function.systemverilog\"}},\"match\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(?:\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_$]*)(::))?([a-zA-Z_][a-zA-Z0-9_$]*\\\\\\\\b[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+)?(?:\\\\\\\\b(signed|unsigned)\\\\\\\\b[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*)?(?:(\\\\\\\\[[a-zA-Z0-9_:$\\\\\\\\.\\\\\\\\-\\\\\\\\+\\\\\\\\*/%`\\' \\\\\\\\t\\\\\\\\r\\\\\\\\n\\\\\\\\[\\\\\\\\]\\\\\\\\(\\\\\\\\)]*\\\\\\\\])[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*)?(?:\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_$]*)\\\\\\\\b[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*)(?=\\\\\\\\(|;)\"},{\"include\":\"#keywords\"},{\"include\":\"#port-net-parameter\"},{\"include\":\"#base-grammar\"},{\"include\":\"#identifiers\"}]},\"functions\":{\"match\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\b(?!while|for|if|iff|else|case|casex|casez)([a-zA-Z_][a-zA-Z0-9_$]*)(?=[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\()\",\"name\":\"entity.name.function.systemverilog\"},\"identifiers\":{\"patterns\":[{\"match\":\"\\\\\\\\b[a-zA-Z_][a-zA-Z0-9_$]*\\\\\\\\b\",\"name\":\"variable.other.identifier.systemverilog\"},{\"match\":\"(?<=^|[ \\\\\\\\t\\\\\\\\r\\\\\\\\n])\\\\\\\\\\\\\\\\[!-~]+(?=$|[ \\\\\\\\t\\\\\\\\r\\\\\\\\n])\",\"name\":\"string.regexp.identifier.systemverilog\"}]},\"imports\":{\"captures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"},\"2\":{\"name\":\"support.type.scope.systemverilog\"},\"3\":{\"name\":\"keyword.operator.scope.systemverilog\"},\"4\":{\"patterns\":[{\"include\":\"#operators\"},{\"include\":\"#identifiers\"}]}},\"match\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\b(import|export)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+([a-zA-Z_][a-zA-Z0-9_$]*|\\\\\\\\*)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(::)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*([a-zA-Z_][a-zA-Z0-9_$]*|\\\\\\\\*)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(,|;)\",\"name\":\"meta.import.systemverilog\"},\"keywords\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.systemverilog\"}},\"match\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\b(edge|negedge|posedge|cell|config|defparam|design|disable|endgenerate|endspecify|event|generate|ifnone|incdir|instance|liblist|library|noshowcancelled|pulsestyle_onevent|pulsestyle_ondetect|scalared|showcancelled|specify|specparam|use|vectored)\\\\\\\\b\"},{\"include\":\"#sv-control\"},{\"include\":\"#sv-control-begin\"},{\"include\":\"#sv-control-end\"},{\"include\":\"#sv-definition\"},{\"include\":\"#sv-cover-cross\"},{\"include\":\"#sv-std\"},{\"include\":\"#sv-option\"},{\"include\":\"#sv-local\"},{\"include\":\"#sv-rand\"}]},\"modifiers\":{\"match\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\b(?:(?:un)?signed|packed|small|medium|large|supply[01]|strong[01]|pull[01]|weak[01]|highz[01])\\\\\\\\b\",\"name\":\"storage.modifier.systemverilog\"},\"module-binding\":{\"begin\":\"\\\\\\\\.([a-zA-Z_][a-zA-Z0-9_$]*)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\(\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.port.systemverilog\"}},\"end\":\"\\\\\\\\),?\",\"name\":\"meta.port.binding.systemverilog\",\"patterns\":[{\"include\":\"#constants\"},{\"include\":\"#comments\"},{\"include\":\"#operators\"},{\"include\":\"#strings\"},{\"include\":\"#constants\"},{\"include\":\"#storage-scope\"},{\"include\":\"#cast-operator\"},{\"include\":\"#system-tf\"},{\"match\":\"\\\\\\\\bvirtual\\\\\\\\b\",\"name\":\"storage.modifier.systemverilog\"},{\"include\":\"#identifiers\"}]},\"module-declaration\":{\"begin\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\b((?:macro)?module|interface|program|package|modport)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+(?:(static|automatic)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+)?([a-zA-Z_][a-zA-Z0-9_$]*)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"},\"2\":{\"name\":\"storage.modifier.systemverilog\"},\"3\":{\"name\":\"entity.name.type.module.systemverilog\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.module.end.systemverilog\"}},\"name\":\"meta.module.systemverilog\",\"patterns\":[{\"include\":\"#parameters\"},{\"include\":\"#port-net-parameter\"},{\"include\":\"#imports\"},{\"include\":\"#base-grammar\"},{\"include\":\"#system-tf\"},{\"include\":\"#identifiers\"}]},\"module-no-parameters\":{\"begin\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\b(?:(bind|pullup|pulldown)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+(?:([a-zA-Z_][a-zA-Z0-9_$\\\\\\\\.]*)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+)?)?((?:\\\\\\\\b(?:and|nand|or|nor|xor|xnor|buf|not|bufif[01]|notif[01]|r?[npc]mos|r?tran|r?tranif[01])\\\\\\\\b|[a-zA-Z_][a-zA-Z0-9_$]*))[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+(?!intersect|and|or|throughout|within)([a-zA-Z_][a-zA-Z0-9_$]*)(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(\\\\\\\\[[a-zA-Z0-9_:$\\\\\\\\.\\\\\\\\-\\\\\\\\+\\\\\\\\*/%`\\' \\\\\\\\t\\\\\\\\r\\\\\\\\n\\\\\\\\[\\\\\\\\]\\\\\\\\(\\\\\\\\)]*\\\\\\\\])?)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(?=\\\\\\\\(|$)(?!;)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"},\"2\":{\"name\":\"entity.name.type.module.systemverilog\"},\"3\":{\"name\":\"entity.name.type.module.systemverilog\"},\"4\":{\"name\":\"variable.other.module.systemverilog\"},\"5\":{\"patterns\":[{\"include\":\"#selects\"}]}},\"end\":\"\\\\\\\\)(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(;))?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.module.instantiation.end.systemverilog\"}},\"name\":\"meta.module.no_parameters.systemverilog\",\"patterns\":[{\"include\":\"#module-binding\"},{\"include\":\"#comments\"},{\"include\":\"#operators\"},{\"include\":\"#constants\"},{\"include\":\"#strings\"},{\"include\":\"#port-net-parameter\"},{\"match\":\"\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_$]*)\\\\\\\\b(?=[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(\\\\\\\\(|$))\",\"name\":\"variable.other.module.systemverilog\"},{\"include\":\"#identifiers\"}]},\"module-parameters\":{\"begin\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\b(?:(bind)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+([a-zA-Z_][a-zA-Z0-9_$\\\\\\\\.]*)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+)?([a-zA-Z_][a-zA-Z0-9_$]*)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+(?!intersect|and|or|throughout|within)(?=#[^#])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"},\"2\":{\"name\":\"entity.name.type.module.systemverilog\"},\"3\":{\"name\":\"entity.name.type.module.systemverilog\"}},\"end\":\"\\\\\\\\)(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(;))?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.module.instantiation.end.systemverilog\"}},\"name\":\"meta.module.parameters.systemverilog\",\"patterns\":[{\"match\":\"\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_$]*)\\\\\\\\b(?=[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\()\",\"name\":\"variable.other.module.systemverilog\"},{\"include\":\"#module-binding\"},{\"include\":\"#parameters\"},{\"include\":\"#comments\"},{\"include\":\"#operators\"},{\"include\":\"#constants\"},{\"include\":\"#strings\"},{\"include\":\"#port-net-parameter\"},{\"match\":\"\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_$]*)\\\\\\\\b(?=[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*$)\",\"name\":\"variable.other.module.systemverilog\"},{\"include\":\"#identifiers\"}]},\"operators\":{\"patterns\":[{\"match\":\"\\\\\\\\b(?:dist|inside|with|intersect|and|or|throughout|within|first_match)\\\\\\\\b|:=|:/|\\\\\\\\|->|\\\\\\\\|=>|->>|\\\\\\\\*>|#-#|#=#|&&&\",\"name\":\"keyword.operator.logical.systemverilog\"},{\"match\":\"@|##|#|->|<->\",\"name\":\"keyword.operator.channel.systemverilog\"},{\"match\":\"\\\\\\\\+=|-=|/=|\\\\\\\\*=|%=|&=|\\\\\\\\|=|\\\\\\\\^=|>>>=|>>=|<<<=|<<=|<=|=\",\"name\":\"keyword.operator.assignment.systemverilog\"},{\"match\":\"\\\\\\\\+\\\\\\\\+\",\"name\":\"keyword.operator.increment.systemverilog\"},{\"match\":\"--\",\"name\":\"keyword.operator.decrement.systemverilog\"},{\"match\":\"\\\\\\\\+|-|\\\\\\\\*\\\\\\\\*|\\\\\\\\*|/|%\",\"name\":\"keyword.operator.arithmetic.systemverilog\"},{\"match\":\"!|&&|\\\\\\\\|\\\\\\\\|\",\"name\":\"keyword.operator.logical.systemverilog\"},{\"match\":\"<<<|<<|>>>|>>\",\"name\":\"keyword.operator.bitwise.shift.systemverilog\"},{\"match\":\"~&|~\\\\\\\\||~|\\\\\\\\^~|~\\\\\\\\^|&|\\\\\\\\||\\\\\\\\^|{|\\'{|}|:|\\\\\\\\?\",\"name\":\"keyword.operator.bitwise.systemverilog\"},{\"match\":\"<=|<|>=|>|==\\\\\\\\?|!=\\\\\\\\?|===|!==|==|!=\",\"name\":\"keyword.operator.comparison.systemverilog\"}]},\"parameters\":{\"begin\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(#)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.channel.systemverilog\"},\"2\":{\"name\":\"punctuation.section.parameters.begin\"}},\"end\":\"(\\\\\\\\))[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(?=;|\\\\\\\\(|[a-zA-Z_]|\\\\\\\\\\\\\\\\|$)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.parameters.end\"}},\"name\":\"meta.parameters.systemverilog\",\"patterns\":[{\"include\":\"#port-net-parameter\"},{\"include\":\"#comments\"},{\"include\":\"#constants\"},{\"include\":\"#operators\"},{\"include\":\"#strings\"},{\"include\":\"#system-tf\"},{\"include\":\"#functions\"},{\"match\":\"\\\\\\\\bvirtual\\\\\\\\b\",\"name\":\"storage.modifier.systemverilog\"},{\"include\":\"#module-binding\"}]},\"port-net-parameter\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"support.type.direction.systemverilog\"},\"2\":{\"name\":\"storage.type.net.systemverilog\"},\"3\":{\"name\":\"support.type.scope.systemverilog\"},\"4\":{\"name\":\"keyword.operator.scope.systemverilog\"},\"5\":{\"patterns\":[{\"include\":\"#built-ins\"},{\"match\":\"[a-zA-Z_][a-zA-Z0-9_$]*\",\"name\":\"storage.type.user-defined.systemverilog\"}]},\"6\":{\"patterns\":[{\"include\":\"#modifiers\"}]},\"7\":{\"patterns\":[{\"include\":\"#selects\"}]},\"8\":{\"patterns\":[{\"include\":\"#constants\"},{\"include\":\"#identifiers\"}]},\"9\":{\"patterns\":[{\"include\":\"#selects\"}]}},\"match\":\",?[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(?:\\\\\\\\b(output|input|inout|ref)\\\\\\\\b[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*)?(?:\\\\\\\\b(localparam|parameter|var|supply[01]|tri|triand|trior|trireg|tri[01]|uwire|wire|wand|wor)\\\\\\\\b[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*)?(?:\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_$]*)(::))?(?:([a-zA-Z_][a-zA-Z0-9_$]*)\\\\\\\\b[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*)?(?:\\\\\\\\b(signed|unsigned)\\\\\\\\b[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*)?(?:(\\\\\\\\[[a-zA-Z0-9_:$\\\\\\\\.\\\\\\\\-\\\\\\\\+\\\\\\\\*/%`\\' \\\\\\\\t\\\\\\\\r\\\\\\\\n\\\\\\\\[\\\\\\\\]\\\\\\\\(\\\\\\\\)]*\\\\\\\\])[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*)?(?<!(?<!#)[:&|=+\\\\\\\\-*/%?><^!~\\\\\\\\(][ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*)\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_$]*)\\\\\\\\b[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(\\\\\\\\[[a-zA-Z0-9_:$\\\\\\\\.\\\\\\\\-\\\\\\\\+\\\\\\\\*/%`\\' \\\\\\\\t\\\\\\\\r\\\\\\\\n\\\\\\\\[\\\\\\\\]\\\\\\\\(\\\\\\\\)]*\\\\\\\\])?[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(?=,|;|=|\\\\\\\\)|/|$)\",\"name\":\"meta.port-net-parameter.declaration.systemverilog\"}]},\"selects\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.slice.brackets.begin\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.slice.brackets.end\"}},\"name\":\"meta.brackets.select.systemverilog\",\"patterns\":[{\"match\":\"\\\\\\\\$(?![a-z])\",\"name\":\"constant.language.systemverilog\"},{\"include\":\"#system-tf\"},{\"include\":\"#constants\"},{\"include\":\"#operators\"},{\"include\":\"#cast-operator\"},{\"include\":\"#storage-scope\"},{\"match\":\"[a-zA-Z_][a-zA-Z0-9_$]*\",\"name\":\"variable.other.identifier.systemverilog\"}]},\"sequence\":{\"captures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"},\"2\":{\"name\":\"entity.name.function.systemverilog\"}},\"match\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\b(sequence)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+([a-zA-Z_][a-zA-Z0-9_$]*)\\\\\\\\b\",\"name\":\"meta.sequence.systemverilog\"},\"storage-scope\":{\"captures\":{\"1\":{\"name\":\"support.type.scope.systemverilog\"},\"2\":{\"name\":\"keyword.operator.scope.systemverilog\"}},\"match\":\"\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_$]*)(::)\",\"name\":\"meta.scope.systemverilog\"},\"strings\":{\"patterns\":[{\"begin\":\"`?\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.systemverilog\"}},\"end\":\"\\\\\"`?\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.systemverilog\"}},\"name\":\"string.quoted.double.systemverilog\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(?:[nt\\\\\\\\\\\\\\\\\\\\\"vfa]|[0-7]{3}|x[0-9a-fA-F]{2})\",\"name\":\"constant.character.escape.systemverilog\"},{\"match\":\"%(\\\\\\\\d+\\\\\\\\$)?[\\'\\\\\\\\-+0 #]*[,;:_]?((-?\\\\\\\\d+)|\\\\\\\\*(-?\\\\\\\\d+\\\\\\\\$)?)?(\\\\\\\\.((-?\\\\\\\\d+)|\\\\\\\\*(-?\\\\\\\\d+\\\\\\\\$)?)?)?(hh|h|ll|l|j|z|t|L)?[xXhHdDoObBcClLvVmMpPsStTuUzZeEfFgG%]\",\"name\":\"constant.character.format.placeholder.systemverilog\"},{\"match\":\"%\",\"name\":\"invalid.illegal.placeholder.systemverilog\"},{\"include\":\"#fixme-todo\"}]},{\"begin\":\"(?<=include)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(<)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.systemverilog\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.systemverilog\"}},\"name\":\"string.quoted.other.lt-gt.include.systemverilog\"}]},\"sv-control\":{\"captures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"}},\"match\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\b(initial|always|always_comb|always_ff|always_latch|final|assign|deassign|force|release|wait|forever|repeat|alias|while|for|if|iff|else|case|casex|casez|default|endcase|return|break|continue|do|foreach|clocking|coverpoint|property|bins|binsof|illegal_bins|ignore_bins|randcase|matches|solve|before|expect|cross|ref|srandom|struct|chandle|tagged|extern|throughout|timeprecision|timeunit|priority|type|union|wait_order|triggered|randsequence|context|pure|wildcard|new|forkjoin|unique|unique0|priority)\\\\\\\\b\"},\"sv-control-begin\":{\"captures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"},\"2\":{\"name\":\"punctuation.definition.label.systemverilog\"},\"3\":{\"name\":\"entity.name.section.systemverilog\"}},\"match\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\b(begin|fork)\\\\\\\\b(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(:)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*([a-zA-Z_][a-zA-Z0-9_$]*))?\",\"name\":\"meta.item.begin.systemverilog\"},\"sv-control-end\":{\"captures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"},\"2\":{\"name\":\"punctuation.definition.label.systemverilog\"},\"3\":{\"name\":\"entity.name.section.systemverilog\"}},\"match\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\b(end|endmodule|endinterface|endprogram|endchecker|endclass|endpackage|endconfig|endfunction|endtask|endproperty|endsequence|endgroup|endprimitive|endclocking|endgenerate|join|join_any|join_none)\\\\\\\\b(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(:)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*([a-zA-Z_][a-zA-Z0-9_$]*))?\",\"name\":\"meta.item.end.systemverilog\"},\"sv-cover-cross\":{\"captures\":{\"2\":{\"name\":\"entity.name.type.class.systemverilog\"},\"3\":{\"name\":\"keyword.operator.other.systemverilog\"},\"4\":{\"name\":\"keyword.control.systemverilog\"}},\"match\":\"(([a-zA-Z_][a-zA-Z0-9_$]*)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(:))?[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(coverpoint|cross)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+([a-zA-Z_][a-zA-Z0-9_$]*)\",\"name\":\"meta.definition.systemverilog\"},\"sv-definition\":{\"captures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"},\"2\":{\"name\":\"entity.name.type.class.systemverilog\"}},\"match\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\b(primitive|package|constraint|interface|covergroup|program)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_$]*)\\\\\\\\b\",\"name\":\"meta.definition.systemverilog\"},\"sv-local\":{\"captures\":{\"1\":{\"name\":\"keyword.other.systemverilog\"}},\"match\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\b(const|static|protected|virtual|localparam|parameter|local)\\\\\\\\b\"},\"sv-option\":{\"captures\":{\"1\":{\"name\":\"keyword.cover.systemverilog\"}},\"match\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\b(option)\\\\\\\\.\"},\"sv-rand\":{\"match\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\b(?:rand|randc)\\\\\\\\b\",\"name\":\"storage.type.rand.systemverilog\"},\"sv-std\":{\"match\":\"\\\\\\\\b(std)\\\\\\\\b::\",\"name\":\"support.class.systemverilog\"},\"system-tf\":{\"match\":\"\\\\\\\\$[a-zA-Z0-9_$][a-zA-Z0-9_$]*\\\\\\\\b\",\"name\":\"support.function.systemverilog\"},\"tables\":{\"begin\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\b(table)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.table.systemverilog.begin\"}},\"end\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\b(endtable)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.table.systemverilog.end\"}},\"name\":\"meta.table.systemverilog\",\"patterns\":[{\"include\":\"#comments\"},{\"match\":\"\\\\\\\\b[01xXbBrRfFpPnN]\\\\\\\\b\",\"name\":\"constant.language.systemverilog\"},{\"match\":\"[-*?]\",\"name\":\"constant.language.systemverilog\"},{\"captures\":{\"1\":{\"name\":\"constant.language.systemverilog\"}},\"match\":\"\\\\\\\\(([01xX?]{2})\\\\\\\\)\"},{\"match\":\":\",\"name\":\"punctuation.definition.label.systemverilog\"},{\"include\":\"#operators\"},{\"include\":\"#constants\"},{\"include\":\"#strings\"},{\"include\":\"#identifiers\"}]},\"typedef\":{\"begin\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\b(?:(typedef)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+)(?:([a-zA-Z_][a-zA-Z0-9_$]*)(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+\\\\\\\\b(signed|unsigned)\\\\\\\\b)?(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(\\\\\\\\[[a-zA-Z0-9_:$\\\\\\\\.\\\\\\\\-\\\\\\\\+\\\\\\\\*/%`\\' \\\\\\\\t\\\\\\\\r\\\\\\\\n\\\\\\\\[\\\\\\\\]\\\\\\\\(\\\\\\\\)]*\\\\\\\\])?))?(?=[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*[a-zA-Z_\\\\\\\\\\\\\\\\])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"},\"2\":{\"patterns\":[{\"include\":\"#built-ins\"},{\"match\":\"\\\\\\\\bvirtual\\\\\\\\b\",\"name\":\"storage.modifier.systemverilog\"}]},\"3\":{\"patterns\":[{\"include\":\"#modifiers\"}]},\"4\":{\"patterns\":[{\"include\":\"#selects\"}]}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.typedef.end.systemverilog\"}},\"name\":\"meta.typedef.systemverilog\",\"patterns\":[{\"include\":\"#identifiers\"},{\"include\":\"#selects\"}]},\"typedef-enum-struct-union\":{\"begin\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*\\\\\\\\b(typedef)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+(enum|struct|union(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+tagged)?|class|interface[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+class)(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+(?!packed|signed|unsigned)([a-zA-Z_][a-zA-Z0-9_$]*)?(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(\\\\\\\\[[a-zA-Z0-9_:$\\\\\\\\.\\\\\\\\-\\\\\\\\+\\\\\\\\*/%`\\' \\\\\\\\t\\\\\\\\r\\\\\\\\n\\\\\\\\[\\\\\\\\]\\\\\\\\(\\\\\\\\)]*\\\\\\\\])?))?(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+(packed))?(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+(signed|unsigned))?(?=[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(?:{|$))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"},\"2\":{\"name\":\"keyword.control.systemverilog\"},\"3\":{\"patterns\":[{\"include\":\"#built-ins\"}]},\"4\":{\"patterns\":[{\"include\":\"#selects\"}]},\"5\":{\"name\":\"storage.modifier.systemverilog\"},\"6\":{\"name\":\"storage.modifier.systemverilog\"}},\"end\":\"(?<=})[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*([a-zA-Z_][a-zA-Z0-9_$]*|(?<=^|[ \\\\\\\\t\\\\\\\\r\\\\\\\\n])\\\\\\\\\\\\\\\\[!-~]+(?=$|[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]))(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*(\\\\\\\\[[a-zA-Z0-9_:$\\\\\\\\.\\\\\\\\-\\\\\\\\+\\\\\\\\*/%`\\' \\\\\\\\t\\\\\\\\r\\\\\\\\n\\\\\\\\[\\\\\\\\]\\\\\\\\(\\\\\\\\)]*\\\\\\\\])?)[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]*[,;]\",\"endCaptures\":{\"1\":{\"name\":\"storage.type.systemverilog\"},\"2\":{\"patterns\":[{\"include\":\"#selects\"}]}},\"name\":\"meta.typedef-enum-struct-union.systemverilog\",\"patterns\":[{\"include\":\"#port-net-parameter\"},{\"include\":\"#keywords\"},{\"include\":\"#base-grammar\"},{\"include\":\"#identifiers\"}]}},\"scopeName\":\"source.systemverilog\"}')),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/C7gG9l05.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Common Lisp\",\"fileTypes\":[\"lisp\",\"lsp\",\"l\",\"cl\",\"asd\",\"asdf\"],\"foldingStartMarker\":\"\\\\\\\\(\",\"foldingStopMarker\":\"\\\\\\\\)\",\"name\":\"common-lisp\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#block-comment\"},{\"include\":\"#string\"},{\"include\":\"#escape\"},{\"include\":\"#constant\"},{\"include\":\"#lambda-list\"},{\"include\":\"#function\"},{\"include\":\"#style-guide\"},{\"include\":\"#def-name\"},{\"include\":\"#macro\"},{\"include\":\"#symbol\"},{\"include\":\"#special-operator\"},{\"include\":\"#declaration\"},{\"include\":\"#type\"},{\"include\":\"#class\"},{\"include\":\"#condition-type\"},{\"include\":\"#package\"},{\"include\":\"#variable\"},{\"include\":\"#punctuation\"}],\"repository\":{\"block-comment\":{\"begin\":\"\\\\\\\\#\\\\\\\\|\",\"contentName\":\"comment.block.commonlisp\",\"end\":\"\\\\\\\\|\\\\\\\\#\",\"name\":\"comment\",\"patterns\":[{\"include\":\"#block-comment\",\"name\":\"comment\"}]},\"class\":{\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\() # preceded by space or (\\\\n(?:two-way-stream|synonym-stream|symbol|structure-object|structure-class|string-stream|stream|standard-object|standard-method|\\\\nstandard-generic-function|standard-class|sequence|restart|real|readtable|ratio|random-state|package|number|method|integer|hash-table|\\\\ngeneric-function|file-stream|echo-stream|concatenated-stream|class|built-in-class|broadcast-stream|bit-vector|array)\\\\n(?=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\)))  # followed by space, ( or )\",\"name\":\"support.class.commonlisp\"},\"comment\":{\"begin\":\"(^[ \\\\\\\\t]+)?(?=;)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.commonlisp\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\";\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.commonlisp\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.semicolon.commonlisp\"}]},\"condition-type\":{\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\() # preceded by space or (\\\\n(?:warning|undefined-function|unbound-variable|unbound-slot|type-error|style-warning|stream-error|storage-condition|simple-warning|\\\\nsimple-type-error|simple-error|simple-condition|serious-condition|reader-error|program-error|print-not-readable|parse-error|package-error|\\\\nfloating-point-underflow|floating-point-overflow|floating-point-invalid-operation|floating-point-inexact|file-error|error|end-of-file|\\\\ndivision-by-zero|control-error|condition|cell-error|arithmetic-error)\\\\n(?=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\)))  # followed by space, ( or )\",\"name\":\"support.type.exception.commonlisp\"},\"constant\":{\"patterns\":[{\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\(|,@|,\\\\\\\\.|,) # preceded by space , ( or `,`|`,@`|`,.`\\\\n(?:t|single-float-negative-epsilon|single-float-epsilon|short-float-negative-epsilon|short-float-epsilon|pi|\\\\nnil|multiple-values-limit|most-positive-single-float|most-positive-short-float|most-positive-long-float|\\\\nmost-positive-fixnum|most-positive-double-float|most-negative-single-float|most-negative-short-float|\\\\nmost-negative-long-float|most-negative-fixnum|most-negative-double-float|long-float-negative-epsilon|\\\\nlong-float-epsilon|least-positive-single-float|least-positive-short-float|least-positive-normalized-single-float|\\\\nleast-positive-normalized-short-float|least-positive-normalized-long-float|least-positive-normalized-double-float|\\\\nleast-positive-long-float|least-positive-double-float|least-negative-single-float|least-negative-short-float|\\\\nleast-negative-normalized-single-float|least-negative-normalized-short-float|least-negative-normalized-long-float|\\\\nleast-negative-normalized-double-float|least-negative-long-float|least-negative-double-float|lambda-parameters-limit|\\\\nlambda-list-keywords|internal-time-units-per-second|double-float-negative-epsilon|double-float-epsilon|char-code-limit|\\\\ncall-arguments-limit|boole-xor|boole-set|boole-orc2|boole-orc1|boole-nor|boole-nand|boole-ior|boole-eqv|boole-clr|\\\\nboole-c2|boole-c1|boole-andc2|boole-andc1|boole-and|boole-2|boole-1|array-total-size-limit|array-rank-limit|array-dimension-limit)\\\\n(?=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\))) # followed by space, ( or )\",\"name\":\"constant.language.commonlisp\"},{\"match\":\"(?<=^|\\\\\\\\s|\\\\\\\\(|,@|,\\\\\\\\.|,)([+-]?[0-9]+(?:\\\\\\\\/[0-9]+)*|[-+]?[0-9]*\\\\\\\\.?[0-9]+([eE][-+]?[0-9]+)?|(\\\\\\\\#b|\\\\\\\\#B)[01\\\\\\\\/+-]+|(\\\\\\\\#o|\\\\\\\\#O)[0-7\\\\\\\\/+-]+|(\\\\\\\\#x|\\\\\\\\#X)[0-9a-fA-F\\\\\\\\/+-]+|(\\\\\\\\#[0-9]+[rR]?)[0-9a-zA-Z\\\\\\\\/+-]+)(?=(\\\\\\\\s|\\\\\\\\)))\",\"name\":\"constant.numeric.commonlisp\"},{\"match\":\"(?xi)\\\\n(?<=\\\\\\\\s) # preceded by space\\\\n(\\\\\\\\.)\\\\n(?=\\\\\\\\s)\",\"name\":\"variable.other.constant.dot.commonlisp\"},{\"match\":\"(?<=^|\\\\\\\\s|\\\\\\\\(|,@|,\\\\\\\\.|,)([+-]?[0-9]*\\\\\\\\.[0-9]*((e|s|f|d|l|E|S|F|D|L)[+-]?[0-9]+)?|[+-]?[0-9]+(\\\\\\\\.[0-9]*)?(e|s|f|d|l|E|S|F|D|L)[+-]?[0-9]+)(?=(\\\\\\\\s|\\\\\\\\)))\",\"name\":\"constant.numeric.commonlisp\"}]},\"declaration\":{\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\() # preceded by space or (\\\\n(?:type|speed|special|space|safety|optimize|notinline|inline|ignore|ignorable|ftype|dynamic-extent|declaration|debug|compilation-speed)\\\\n(?=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\)))  # followed by space, ( or )\",\"name\":\"storage.type.function.declaration.commonlisp\"},\"def-name\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.function.defname.commonlisp\"},\"3\":{\"name\":\"storage.type.function.defname.commonlisp\"},\"4\":{\"name\":\"variable.other.constant.defname.commonlisp\"},\"6\":{\"patterns\":[{\"include\":\"#package\"},{\"match\":\"\\\\\\\\S+?\",\"name\":\"entity.name.function.commonlisp\"}]},\"7\":{\"name\":\"variable.other.constant.defname.commonlisp\"},\"9\":{\"patterns\":[{\"include\":\"#package\"},{\"match\":\"\\\\\\\\S+?\",\"name\":\"entity.name.function.commonlisp\"}]}},\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\()                     # preceded by (\\\\n(defun|defsetf|defmethod|defmacro|define-symbol-macro|define-setf-expander|\\\\ndefine-modify-macro|define-method-combination|define-compiler-macro|defgeneric)  #1 keywords\\\\n\\\\\\\\s+\\\\n(   \\\\\\\\(\\\\\\\\s*\\\\n        ([#:A-Za-z0-9\\\\\\\\+\\\\\\\\-\\\\\\\\*\\\\\\\\/\\\\\\\\@\\\\\\\\$\\\\\\\\%\\\\\\\\^\\\\\\\\&\\\\\\\\_\\\\\\\\=\\\\\\\\<\\\\\\\\>\\\\\\\\~\\\\\\\\!\\\\\\\\?\\\\\\\\[\\\\\\\\]\\\\\\\\{\\\\\\\\}\\\\\\\\.]+) #3\\\\n    \\\\\\\\s*\\\\n        ((,@|,\\\\\\\\.|,)?) #4\\\\n        ([#:A-Za-z0-9\\\\\\\\+\\\\\\\\-\\\\\\\\*\\\\\\\\/\\\\\\\\@\\\\\\\\$\\\\\\\\%\\\\\\\\^\\\\\\\\&\\\\\\\\_\\\\\\\\=\\\\\\\\<\\\\\\\\>\\\\\\\\~\\\\\\\\!\\\\\\\\?\\\\\\\\[\\\\\\\\]\\\\\\\\{\\\\\\\\}\\\\\\\\.]+?)      #6 (<3>something+ <6>name)\\\\n    |\\\\n        ((,@|,\\\\\\\\.|,)?) #7\\\\n        ([#:A-Za-z0-9\\\\\\\\+\\\\\\\\-\\\\\\\\*\\\\\\\\/\\\\\\\\@\\\\\\\\$\\\\\\\\%\\\\\\\\^\\\\\\\\&\\\\\\\\_\\\\\\\\=\\\\\\\\<\\\\\\\\>\\\\\\\\~\\\\\\\\!\\\\\\\\?\\\\\\\\[\\\\\\\\]\\\\\\\\{\\\\\\\\}\\\\\\\\.]+?)      #9 name\\\\n) #2\\\\n(?=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\)))\"},{\"captures\":{\"1\":{\"name\":\"storage.type.function.defname.commonlisp\"},\"2\":{\"name\":\"entity.name.type.commonlisp\"}},\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\()\\\\n(deftype|defpackage|define-condition|defclass)              # keywords\\\\n\\\\\\\\s+\\\\n([#:A-Za-z0-9\\\\\\\\+\\\\\\\\-\\\\\\\\*\\\\\\\\/\\\\\\\\@\\\\\\\\$\\\\\\\\%\\\\\\\\^\\\\\\\\&\\\\\\\\_\\\\\\\\=\\\\\\\\<\\\\\\\\>\\\\\\\\~\\\\\\\\!\\\\\\\\?\\\\\\\\[\\\\\\\\]\\\\\\\\{\\\\\\\\}\\\\\\\\.]+?)                   # name\\\\n(?=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\)))\"},{\"captures\":{\"1\":{\"name\":\"storage.type.function.defname.commonlisp\"},\"2\":{\"patterns\":[{\"include\":\"#package\"},{\"match\":\"\\\\\\\\S+?\",\"name\":\"variable.other.constant.defname.commonlisp\"}]}},\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\()\\\\n(defconstant)         # keywords\\\\n\\\\\\\\s+\\\\n([#:A-Za-z0-9\\\\\\\\+\\\\\\\\-\\\\\\\\*\\\\\\\\/\\\\\\\\@\\\\\\\\$\\\\\\\\%\\\\\\\\^\\\\\\\\&\\\\\\\\_\\\\\\\\=\\\\\\\\<\\\\\\\\>\\\\\\\\~\\\\\\\\!\\\\\\\\?\\\\\\\\[\\\\\\\\]\\\\\\\\{\\\\\\\\}\\\\\\\\.]+?)                # name\\\\n(?=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\)))\"},{\"captures\":{\"1\":{\"name\":\"storage.type.function.defname.commonlisp\"}},\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\()\\\\n(defvar|defparameter) # keywords\\\\n\\\\\\\\s+\\\\n(?=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\)))\"},{\"captures\":{\"1\":{\"name\":\"storage.type.function.defname.commonlisp\"},\"2\":{\"name\":\"entity.name.type.commonlisp\"}},\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\()\\\\n(defstruct)         # keywords\\\\n\\\\\\\\s+\\\\\\\\(?\\\\\\\\s*\\\\n([#:A-Za-z0-9\\\\\\\\+\\\\\\\\-\\\\\\\\*\\\\\\\\/\\\\\\\\@\\\\\\\\$\\\\\\\\%\\\\\\\\^\\\\\\\\&\\\\\\\\_\\\\\\\\=\\\\\\\\<\\\\\\\\>\\\\\\\\~\\\\\\\\!\\\\\\\\?\\\\\\\\[\\\\\\\\]\\\\\\\\{\\\\\\\\}\\\\\\\\.]+?)              # name\\\\n(?=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\)))\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.commonlisp\"},\"2\":{\"patterns\":[{\"include\":\"#package\"},{\"match\":\"\\\\\\\\S+?\",\"name\":\"entity.name.function.commonlisp\"}]}},\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\()\\\\n(macrolet|labels|flet)        # keywords\\\\n\\\\\\\\s+\\\\\\\\(\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\n([#:A-Za-z0-9\\\\\\\\+\\\\\\\\-\\\\\\\\*\\\\\\\\/\\\\\\\\@\\\\\\\\$\\\\\\\\%\\\\\\\\^\\\\\\\\&\\\\\\\\_\\\\\\\\=\\\\\\\\<\\\\\\\\>\\\\\\\\~\\\\\\\\!\\\\\\\\?\\\\\\\\[\\\\\\\\]\\\\\\\\{\\\\\\\\}\\\\\\\\.]+?)                        # name\\\\n(?=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\)))\"}]},\"escape\":{\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\() # preceded by space or (\\\\n(?:\\\\\\\\#\\\\\\\\\\\\\\\\\\\\\\\\S+?)\\\\n(?=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\)))  # followed by space, ( or )\",\"name\":\"constant.character.escape.commonlisp\"},\"function\":{\"patterns\":[{\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\(|\\\\\\\\#\\') # preceded by space or (\\\\n(?:values|third|tenth|symbol-value|symbol-plist|symbol-function|svref|subseq|sixth|seventh|second|schar|sbit|row-major-aref|\\\\n   rest|readtable-case|nth|ninth|mask-field|macro-function|logical-pathname-translations|ldb|gethash|getf|get|fourth|first|\\\\n   find-class|fill-pointer|fifth|fdefinition|elt|eighth|compiler-macro-function|char|cdr|cddr|cdddr|cddddr|cdddar|cddar|cddadr|\\\\n   cddaar|cdar|cdadr|cdaddr|cdadar|cdaar|cdaadr|cdaaar|car|cadr|caddr|cadddr|caddar|cadar|cadadr|cadaar|caar|caadr|caaddr|caadar|\\\\n   caaar|caaadr|caaaar|bit|aref)\\\\n(?=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\)))  # followed by space, ( or )\",\"name\":\"support.function.accessor.commonlisp\"},{\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\(|\\\\\\\\#\\') # preceded by space or (\\\\n(?:yes-or-no-p|y-or-n-p|write-sequence|write-char|write-byte|warn|vector-pop|use-value|use-package|unuse-package|union|unintern|\\\\nunexport|terpri|tailp|substitute-if-not|substitute-if|substitute|subst-if-not|subst-if|subst|sublis|string-upcase|string-downcase|\\\\nstring-capitalize|store-value|sleep|signal|shadowing-import|shadow|set-syntax-from-char|set-macro-character|set-exclusive-or|\\\\nset-dispatch-macro-character|set-difference|set|rplacd|rplaca|room|reverse|revappend|require|replace|remprop|remove-if-not|remove-if|\\\\nremove-duplicates|remove|remhash|read-sequence|read-byte|random|provide|pprint-tabular|pprint-newline|pprint-linear|pprint-fill|\\\\nnunion|nsubstitute-if-not|nsubstitute-if|nsubstitute|nsubst-if-not|nsubst-if|nsubst|nsublis|nstring-upcase|nstring-downcase|nstring-capitalize|\\\\nnset-exclusive-or|nset-difference|nreverse|nreconc|nintersection|nconc|muffle-warning|method-combination-error|maphash|makunbound|ldiff|\\\\ninvoke-restart-interactively|invoke-restart|invoke-debugger|invalid-method-error|intersection|inspect|import|get-output-stream-string|\\\\nget-macro-character|get-dispatch-macro-character|gentemp|gensym|fresh-line|fill|file-position|export|describe|delete-if-not|delete-if|\\\\ndelete-duplicates|delete|continue|clrhash|close|clear-input|break|abort)\\\\n(?=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\))) # followed by space, ( or )\",\"name\":\"support.function.f.sideeffects.commonlisp\"},{\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\(|\\\\\\\\#\\') # preceded by space or (\\\\n(?:zerop|write-to-string|write-string|write-line|write|wild-pathname-p|vectorp|vector-push-extend|vector-push|vector|values-list|\\\\nuser-homedir-pathname|upper-case-p|upgraded-complex-part-type|upgraded-array-element-type|unread-char|unbound-slot-instance|typep|type-of|\\\\ntype-error-expected-type|type-error-datum|two-way-stream-output-stream|two-way-stream-input-stream|truncate|truename|tree-equal|translate-pathname|\\\\ntranslate-logical-pathname|tanh|tan|synonym-stream-symbol|symbolp|symbol-package|symbol-name|sxhash|subtypep|subsetp|stringp|string>=|string>|\\\\nstring=|string<=|string<|string\\\\\\\\/=|string-trim|string-right-trim|string-not-lessp|string-not-greaterp|string-not-equal|string-lessp|\\\\nstring-left-trim|string-greaterp|string-equal|string|streamp|stream-external-format|stream-error-stream|stream-element-type|standard-char-p|\\\\nstable-sort|sqrt|special-operator-p|sort|some|software-version|software-type|slot-value|slot-makunbound|slot-exists-p|slot-boundp|sinh|sin|\\\\nsimple-vector-p|simple-string-p|simple-condition-format-control|simple-condition-format-arguments|simple-bit-vector-p|signum|short-site-name|\\\\nset-pprint-dispatch|search|scale-float|round|restart-name|rename-package|rename-file|rem|reduce|realpart|realp|readtablep|\\\\nread-preserving-whitespace|read-line|read-from-string|read-delimited-list|read-char-no-hang|read-char|read|rationalp|rationalize|\\\\nrational|rassoc-if-not|rassoc-if|rassoc|random-state-p|proclaim|probe-file|print-not-readable-object|print|princ-to-string|princ|\\\\nprin1-to-string|prin1|pprint-tab|pprint-indent|pprint-dispatch|pprint|position-if-not|position-if|position|plusp|phase|peek-char|pathnamep|\\\\npathname-version|pathname-type|pathname-name|pathname-match-p|pathname-host|pathname-directory|pathname-device|pathname|parse-namestring|\\\\nparse-integer|pairlis|packagep|package-used-by-list|package-use-list|package-shadowing-symbols|package-nicknames|package-name|package-error-package|\\\\noutput-stream-p|open-stream-p|open|oddp|numerator|numberp|null|nthcdr|notevery|notany|not|next-method-p|nbutlast|namestring|name-char|mod|mismatch|\\\\nminusp|min|merge-pathnames|merge|member-if-not|member-if|member|max|maplist|mapl|mapcon|mapcar|mapcan|mapc|map-into|map|make-two-way-stream|\\\\nmake-synonym-stream|make-symbol|make-string-output-stream|make-string-input-stream|make-string|make-sequence|make-random-state|make-pathname|\\\\nmake-package|make-load-form-saving-slots|make-list|make-hash-table|make-echo-stream|make-dispatch-macro-character|make-condition|\\\\nmake-concatenated-stream|make-broadcast-stream|make-array|macroexpand-1|macroexpand|machine-version|machine-type|machine-instance|lower-case-p|\\\\nlong-site-name|logxor|logtest|logorc2|logorc1|lognot|lognor|lognand|logior|logical-pathname|logeqv|logcount|logbitp|logandc2|logandc1|logand|\\\\nlog|load-logical-pathname-translations|load|listp|listen|list-length|list-all-packages|list\\\\\\\\*|list|lisp-implementation-version|\\\\nlisp-implementation-type|length|ldb-test|lcm|last|keywordp|isqrt|intern|interactive-stream-p|integerp|integer-length|integer-decode-float|\\\\ninput-stream-p|imagpart|identity|host-namestring|hash-table-test|hash-table-size|hash-table-rehash-threshold|hash-table-rehash-size|hash-table-p|\\\\nhash-table-count|graphic-char-p|get-universal-time|get-setf-expansion|get-properties|get-internal-run-time|get-internal-real-time|\\\\nget-decoded-time|gcd|functionp|function-lambda-expression|funcall|ftruncate|fround|format|force-output|fmakunbound|floor|floatp|float-sign|\\\\nfloat-radix|float-precision|float-digits|float|finish-output|find-symbol|find-restart|find-package|find-if-not|find-if|find-all-symbols|find|\\\\nfile-write-date|file-string-length|file-namestring|file-length|file-error-pathname|file-author|ffloor|fceiling|fboundp|expt|exp|every|evenp|\\\\neval|equalp|equal|eql|eq|ensure-generic-function|ensure-directories-exist|enough-namestring|endp|encode-universal-time|ed|echo-stream-output-stream|\\\\necho-stream-input-stream|dribble|dpb|disassemble|directory-namestring|directory|digit-char-p|digit-char|deposit-field|denominator|delete-package|\\\\ndelete-file|decode-universal-time|decode-float|count-if-not|count-if|count|cosh|cos|copy-tree|copy-symbol|copy-structure|copy-seq|copy-readtable|\\\\ncopy-pprint-dispatch|copy-list|copy-alist|constantp|constantly|consp|cons|conjugate|concatenated-stream-streams|concatenate|compute-restarts|\\\\ncomplexp|complex|complement|compiled-function-p|compile-file-pathname|compile-file|compile|coerce|code-char|clear-output|class-of|cis|characterp|\\\\ncharacter|char>=|char>|char=|char<=|char<|char\\\\\\\\/=|char-upcase|char-not-lessp|char-not-greaterp|char-not-equal|char-name|char-lessp|char-int|\\\\nchar-greaterp|char-equal|char-downcase|char-code|cerror|cell-error-name|ceiling|call-next-method|byte-size|byte-position|byte|butlast|\\\\nbroadcast-stream-streams|boundp|both-case-p|boole|bit-xor|bit-vector-p|bit-orc2|bit-orc1|bit-not|bit-nor|bit-nand|bit-ior|bit-eqv|bit-andc2|\\\\nbit-andc1|bit-and|atom|atanh|atan|assoc-if-not|assoc-if|assoc|asinh|asin|ash|arrayp|array-total-size|array-row-major-index|array-rank|\\\\narray-in-bounds-p|array-has-fill-pointer-p|array-element-type|array-displacement|array-dimensions|array-dimension|arithmetic-error-operation|\\\\narithmetic-error-operands|apropos-list|apropos|apply|append|alphanumericp|alpha-char-p|adjustable-array-p|adjust-array|adjoin|acosh|acos|acons|\\\\nabs|>=|>|=|<=|<|1-|1\\\\\\\\+|\\\\\\\\/=|\\\\\\\\/|-|\\\\\\\\+|\\\\\\\\*)\\\\n(?=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\))) # followed by space, ( or )\",\"name\":\"support.function.f.sideeffects.commonlisp\"},{\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\(|\\\\\\\\#\\') # preceded by space or (\\\\n(?:variable|update-instance-for-redefined-class|update-instance-for-different-class|structure|slot-unbound|slot-missing|shared-initialize|\\\\nremove-method|print-object|no-next-method|no-applicable-method|method-qualifiers|make-load-form|make-instances-obsolete|make-instance|\\\\ninitialize-instance|function-keywords|find-method|documentation|describe-object|compute-applicable-methods|compiler-macro|class-name|\\\\nchange-class|allocate-instance|add-method)\\\\n(?=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\)))  # followed by space, ( or )\",\"name\":\"support.function.sgf.nosideeffects.commonlisp\"},{\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\(|\\\\\\\\#\\') # preceded by space or (\\\\n(?:reinitialize-instance)\\\\n(?=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\)))  # followed by space, ( or )\",\"name\":\"support.function.sgf.sideeffects.commonlisp\"},{\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\(|\\\\\\\\#\\') # preceded by space or (\\\\n(?:satisfies)\\\\n(?=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\)))  # followed by space, ( or )\",\"name\":\"support.function.typespecifier.commonlisp\"}]},\"lambda-list\":{\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\() # preceded by space or (\\\\n(?:&[#:A-Za-z0-9\\\\\\\\+\\\\\\\\-\\\\\\\\*\\\\\\\\/\\\\\\\\@\\\\\\\\$\\\\\\\\%\\\\\\\\^\\\\\\\\&\\\\\\\\_\\\\\\\\=\\\\\\\\<\\\\\\\\>\\\\\\\\~\\\\\\\\!\\\\\\\\?\\\\\\\\[\\\\\\\\]\\\\\\\\{\\\\\\\\}\\\\\\\\.]+?|&whole|&rest|&optional|&key|&environment|&body|&aux|&allow-other-keys)\\\\n(?=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\))) # followed by space, ( or )\",\"name\":\"keyword.other.lambdalist.commonlisp\"},\"macro\":{\"patterns\":[{\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\() # preceded by space or (\\\\n(?:with-standard-io-syntax|with-slots|with-simple-restart|with-package-iterator|with-hash-table-iterator|with-condition-restarts|\\\\nwith-compilation-unit|with-accessors|when|unless|typecase|time|step|shiftf|setf|rotatef|return|restart-case|restart-bind|psetf|prog2|prog1|\\\\nprog\\\\\\\\*|prog|print-unreadable-object|pprint-logical-block|pprint-exit-if-list-exhausted|or|nth-value|multiple-value-setq|multiple-value-list|\\\\nmultiple-value-bind|make-method|loop|lambda|ignore-errors|handler-case|handler-bind|formatter|etypecase|dotimes|dolist|do-symbols|do-external-symbols|\\\\ndo-all-symbols|do\\\\\\\\*|do|destructuring-bind|defun|deftype|defstruct|defsetf|defpackage|defmethod|defmacro|define-symbol-macro|define-setf-expander|\\\\ndefine-condition|define-compiler-macro|defgeneric|defconstant|defclass|declaim|ctypecase|cond|call-method|assert|and)\\\\n(?=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\)))  # followed by space, ( or )\",\"name\":\"storage.type.function.m.nosideeffects.commonlisp\"},{\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\() # preceded by space or (\\\\n(?:with-output-to-string|with-open-stream|with-open-file|with-input-from-string|untrace|trace|remf|pushnew|push|psetq|pprint-pop|pop|\\\\notherwise|loop-finish|incf|in-package|ecase|defvar|defparameter|define-modify-macro|define-method-combination|decf|check-type|ccase|case)\\\\n(?=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\)))  # followed by space, ( or )\",\"name\":\"storage.type.function.m.sideeffects.commonlisp\"},{\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\() # preceded by space or (\\\\n(?:setq)\\\\n(?=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\)))  # followed by space, ( or )\",\"name\":\"storage.type.function.specialform.commonlisp\"}]},\"package\":{\"patterns\":[{\"captures\":{\"2\":{\"name\":\"support.type.package.commonlisp\"},\"3\":{\"name\":\"support.type.package.commonlisp\"}},\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\(|,@|,\\\\\\\\.|,) # preceded by space , ( or `,`|`,@`|`,.`\\\\n(\\\\n  ([A-Za-z0-9\\\\\\\\+\\\\\\\\-\\\\\\\\*\\\\\\\\/\\\\\\\\@\\\\\\\\$\\\\\\\\%\\\\\\\\^\\\\\\\\&\\\\\\\\_\\\\\\\\=\\\\\\\\<\\\\\\\\>\\\\\\\\~\\\\\\\\!\\\\\\\\?\\\\\\\\[\\\\\\\\]\\\\\\\\{\\\\\\\\}\\\\\\\\.]+?)  #2\\\\n  | \\\\n  (\\\\\\\\#) #3\\\\n)\\\\n(?=\\\\\\\\:\\\\\\\\:|\\\\\\\\:)\"}]},\"punctuation\":{\"patterns\":[{\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\(|,@|,\\\\\\\\.|,) # preceded by space , ( or `,`|`,@`|`,.`\\\\n(\\'|`)\\\\n(?=\\\\\\\\S)\",\"name\":\"variable.other.constant.singlequote.commonlisp\"},{\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\(|,@|,\\\\\\\\.|,) # preceded by space , ( or `,`|`,@`|`,.`\\\\n(?:\\\\\\\\:[#:A-Za-z0-9\\\\\\\\+\\\\\\\\-\\\\\\\\*\\\\\\\\/\\\\\\\\@\\\\\\\\$\\\\\\\\%\\\\\\\\^\\\\\\\\&\\\\\\\\_\\\\\\\\=\\\\\\\\<\\\\\\\\>\\\\\\\\~\\\\\\\\!\\\\\\\\?\\\\\\\\[\\\\\\\\]\\\\\\\\{\\\\\\\\}\\\\\\\\.]+?)\\\\n(?=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\)))       # followed by space, ( or )\",\"name\":\"entity.name.variable.commonlisp\"},{\"captures\":{\"1\":{\"name\":\"variable.other.constant.sharpsign.commonlisp\"},\"2\":{\"name\":\"constant.numeric.commonlisp\"}},\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\(|,@|,\\\\\\\\.|,) # preceded by space , ( or `,`|`,@`|`,.`\\\\n(\\\\\\\\#)([0-9]*)\\\\n(?=\\\\\\\\()\"},{\"captures\":{\"1\":{\"name\":\"variable.other.constant.sharpsign.commonlisp\"},\"2\":{\"name\":\"constant.numeric.commonlisp\"},\"3\":{\"name\":\"variable.other.constant.sharpsign.commonlisp\"}},\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\(|,@|,\\\\\\\\.|,) # preceded by space , ( or `,`|`,@`|`,.`\\\\n(\\\\\\\\#)\\\\n([0-9]*)\\\\n(\\\\\\\\*)\\\\n(?=0|1)\"},{\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\(|,@|,\\\\\\\\.|,) # preceded by space , ( or `,`|`,@`|`,.`\\\\n(\\\\\\\\#\\\\\\\\*|\\\\\\\\#0\\\\\\\\*)\\\\n(?=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\)))       # followed by space, ( or )\",\"name\":\"variable.other.constant.sharpsign.commonlisp\"},{\"captures\":{\"1\":{\"name\":\"variable.other.constant.sharpsign.commonlisp\"},\"2\":{\"name\":\"constant.numeric.commonlisp\"},\"3\":{\"name\":\"variable.other.constant.sharpsign.commonlisp\"}},\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\(|,@|,\\\\\\\\.|,) # preceded by space , ( or `,`|`,@`|`,.`\\\\n(\\\\\\\\#)\\\\n([0-9]+)\\\\n(a|A)\\\\n(?=.)\"},{\"captures\":{\"1\":{\"name\":\"variable.other.constant.sharpsign.commonlisp\"},\"2\":{\"name\":\"constant.numeric.commonlisp\"},\"3\":{\"name\":\"variable.other.constant.sharpsign.commonlisp\"}},\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\(|,@|,\\\\\\\\.|,) # preceded by space , ( or `,`|`,@`|`,.`\\\\n(\\\\\\\\#)\\\\n([0-9]+)\\\\n(=)\\\\n(?=.)\"},{\"captures\":{\"1\":{\"name\":\"variable.other.constant.sharpsign.commonlisp\"},\"2\":{\"name\":\"constant.numeric.commonlisp\"},\"3\":{\"name\":\"variable.other.constant.sharpsign.commonlisp\"}},\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\(|,@|,\\\\\\\\.|,) # preceded by space , ( or `,`|`,@`|`,.`\\\\n(\\\\\\\\#)\\\\n([0-9]+)\\\\n(\\\\\\\\#)\\\\n(?=.)\"},{\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\(|,@|,\\\\\\\\.|,) # preceded by space , ( or `,`|`,@`|`,.`\\\\n(\\\\\\\\#(\\\\\\\\+|-))\\\\n(?=\\\\\\\\S)\",\"name\":\"variable.other.constant.sharpsign.commonlisp\"},{\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\(|,@|,\\\\\\\\.|,) # preceded by space , ( or `,`|`,@`|`,.`\\\\n(\\\\\\\\#(\\'|,|\\\\\\\\.|c|C|s|S|p|P))\\\\n(?=\\\\\\\\S)\",\"name\":\"variable.other.constant.sharpsign.commonlisp\"},{\"captures\":{\"1\":{\"name\":\"support.type.package.commonlisp\"}},\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\(|,@|,\\\\\\\\.|,) # preceded by space , ( or `,`|`,@`|`,.`\\\\n(\\\\\\\\#)\\\\n(:)\\\\n(?=\\\\\\\\S)\"},{\"captures\":{\"2\":{\"name\":\"variable.other.constant.backquote.commonlisp\"},\"3\":{\"name\":\"variable.other.constant.backquote.commonlisp\"},\"4\":{\"name\":\"variable.other.constant.backquote.commonlisp\"},\"5\":{\"name\":\"variable.other.constant.backquote.commonlisp\"}},\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\() # preceded by space or (\\\\n(\\\\n    (`\\\\\\\\#) #2\\\\n    |\\\\n    (`)(,@|,\\\\\\\\.|,)? #3, #4\\\\n    |\\\\n    (,@|,\\\\\\\\.|,) #5\\\\n)\\\\n(?=\\\\\\\\S)\"}]},\"special-operator\":{\"captures\":{\"2\":{\"name\":\"keyword.control.commonlisp\"}},\"match\":\"(?xi)\\\\n(\\\\\\\\(\\\\\\\\s*) # preceded by (\\\\n(unwind-protect|throw|the|tagbody|symbol-macrolet|return-from|quote|progv|progn|multiple-value-prog1|multiple-value-call|\\\\nmacrolet|locally|load-time-value|let\\\\\\\\*|let|labels|if|go|function|flet|eval-when|catch|block)\\\\n(?=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\)))  # followed by space, ( or )\"},\"string\":{\"begin\":\"(\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.commonlisp\"}},\"end\":\"(\\\\\")\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.commonlisp\"}},\"name\":\"string.quoted.double.commonlisp\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.commonlisp\"},{\"captures\":{\"1\":{\"name\":\"storage.type.function.formattedstring.commonlisp\"},\"2\":{\"name\":\"variable.other.constant.formattedstring.commonlisp\"},\"8\":{\"name\":\"storage.type.function.formattedstring.commonlisp\"},\"10\":{\"name\":\"storage.type.function.formattedstring.commonlisp\"}},\"match\":\"(?xi)\\\\n\\\\n(~) #1 tilde\\\\n(\\\\n    (\\\\n        (([+-]?[0-9]+)|(\\'.)|V|\\\\\\\\#)*?\\\\n        (,)?\\\\n    )\\\\n*?) #2 prefix parameters, signed decimal numbers|single char, separated by commas\\\\n(\\\\n    (:@|@:|:|@)\\\\n?) #8 modifiers\\\\n(\\\\\\\\(|\\\\\\\\)|\\\\\\\\[|\\\\\\\\]|;|{|}|<|>|\\\\\\\\^) #10 control structures\"},{\"captures\":{\"1\":{\"name\":\"entity.name.variable.commonlisp\"},\"2\":{\"name\":\"variable.other.constant.formattedstring.commonlisp\"},\"8\":{\"name\":\"entity.name.variable.commonlisp\"},\"10\":{\"name\":\"entity.name.variable.commonlisp\"}},\"match\":\"(?xi)\\\\n\\\\n(~) #1 tilde\\\\n(\\\\n    (\\\\n        (([+-]?[0-9]+)|(\\'.)|V|\\\\\\\\#)*?\\\\n        (,)?\\\\n    )\\\\n*?) #2 prefix parameters, signed decimal numbers|single char, separated by commas\\\\n(\\\\n    (:@|@:|:|@)\\\\n?) #8 modifiers\\\\n(A|S|D|B|O|X|R|P|C|F|E|G|\\\\\\\\$|%|\\\\\\\\&|\\\\\\\\||~|T|\\\\\\\\*|\\\\\\\\?|_|W|I) #10 directives\"},{\"captures\":{\"1\":{\"name\":\"entity.name.variable.commonlisp\"},\"2\":{\"name\":\"variable.other.constant.formattedstring.commonlisp\"},\"8\":{\"name\":\"entity.name.variable.commonlisp\"},\"10\":{\"name\":\"entity.name.variable.commonlisp\"},\"11\":{\"name\":\"entity.name.variable.commonlisp\"},\"12\":{\"name\":\"entity.name.variable.commonlisp\"}},\"match\":\"(?xi)\\\\n\\\\n(~) #1 tilde\\\\n(\\\\n    (\\\\n        (([+-]?[0-9]+)|(\\'.)|V|\\\\\\\\#)*?\\\\n        (,)?\\\\n    )\\\\n*?) #2 prefix parameters, signed decimal numbers|single char, separated by commas\\\\n(\\\\n    (:@|@:|:|@)\\\\n?) #8 modifiers\\\\n(\\\\\\\\/) #10\\\\n([#:A-Za-z0-9\\\\\\\\+\\\\\\\\-\\\\\\\\*\\\\\\\\/\\\\\\\\@\\\\\\\\$\\\\\\\\%\\\\\\\\^\\\\\\\\&\\\\\\\\_\\\\\\\\=\\\\\\\\<\\\\\\\\>\\\\\\\\~\\\\\\\\!\\\\\\\\?\\\\\\\\[\\\\\\\\]\\\\\\\\{\\\\\\\\}\\\\\\\\.]+?) #11 call function\\\\n(\\\\\\\\/) #12\"},{\"match\":\"(~\\\\\\\\n)\",\"name\":\"variable.other.constant.formattedstring.commonlisp\"}]},\"style-guide\":{\"patterns\":[{\"captures\":{\"3\":{\"name\":\"source.commonlisp\"}},\"match\":\"(?xi)\\\\n(?<=^\\'|\\\\\\\\s\\'|\\\\\\\\(\\'|,@\\'|,\\\\\\\\.\\'|,\\')\\\\n(\\\\\\\\S+?)\\\\n(\\\\\\\\:\\\\\\\\:|\\\\\\\\:)\\\\n((\\\\\\\\+[^\\\\\\\\s\\\\\\\\+]+\\\\\\\\+)|(\\\\\\\\*[^\\\\\\\\s\\\\\\\\*]+\\\\\\\\*))\\\\n(?=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\)))\"},{\"match\":\"(?xi)\\\\n(?<=\\\\\\\\S:|^|\\\\\\\\s|\\\\\\\\(|,@|,\\\\\\\\.|,) # preceded by space , ( or `,`|`,@`|`,.`\\\\n(\\\\\\\\+[^\\\\\\\\s\\\\\\\\+]+\\\\\\\\+)\\\\n(?=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\)))  # followed by space, ( or )\",\"name\":\"variable.other.constant.earmuffsplus.commonlisp\"},{\"match\":\"(?xi)\\\\n(?<=\\\\\\\\S:|^|\\\\\\\\s|\\\\\\\\(|,@|,\\\\\\\\.|,) # preceded by space , ( or `,`|`,@`|`,.`\\\\n(\\\\\\\\*[^\\\\\\\\s\\\\\\\\*]+\\\\\\\\*)\\\\n(?=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\)))  # followed by space, ( or )\",\"name\":\"string.regexp.earmuffsasterisk.commonlisp\"}]},\"symbol\":{\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\() # preceded by space or (\\\\n(?:method-combination|declare)\\\\n(?=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\)))  # followed by space, ( or )\",\"name\":\"storage.type.function.symbol.commonlisp\"},\"type\":{\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\() # preceded by space or (\\\\n(?:unsigned-byte|standard-char|standard|single-float|simple-vector|simple-string|simple-bit-vector|simple-base-string|simple-array|\\\\nsigned-byte|short-float|long-float|keyword|fixnum|extended-char|double-float|compiled-function|boolean|bignum|base-string|base-char)\\\\n(?=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\)))  # followed by space, ( or )\",\"name\":\"support.type.t.commonlisp\"},\"variable\":{\"patterns\":[{\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\(|,@|,\\\\\\\\.|,) # preceded by space , ( or `,`|`,@`|`,.`\\\\n(?:\\\\\\\\*trace-output\\\\\\\\*|\\\\\\\\*terminal-io\\\\\\\\*|\\\\\\\\*standard-output\\\\\\\\*|\\\\\\\\*standard-input\\\\\\\\*|\\\\\\\\*readtable\\\\\\\\*|\\\\\\\\*read-suppress\\\\\\\\*|\\\\\\\\*read-eval\\\\\\\\*|\\\\n\\\\\\\\*read-default-float-format\\\\\\\\*|\\\\\\\\*read-base\\\\\\\\*|\\\\\\\\*random-state\\\\\\\\*|\\\\\\\\*query-io\\\\\\\\*|\\\\\\\\*print-right-margin\\\\\\\\*|\\\\\\\\*print-readably\\\\\\\\*|\\\\\\\\*print-radix\\\\\\\\*|\\\\\\\\*print-pretty\\\\\\\\*|\\\\n\\\\\\\\*print-pprint-dispatch\\\\\\\\*|\\\\\\\\*print-miser-width\\\\\\\\*|\\\\\\\\*print-lines\\\\\\\\*|\\\\\\\\*print-level\\\\\\\\*|\\\\\\\\*print-length\\\\\\\\*|\\\\\\\\*print-gensym\\\\\\\\*|\\\\\\\\*print-escape\\\\\\\\*|\\\\\\\\*print-circle\\\\\\\\*|\\\\n\\\\\\\\*print-case\\\\\\\\*|\\\\\\\\*print-base\\\\\\\\*|\\\\\\\\*print-array\\\\\\\\*|\\\\\\\\*package\\\\\\\\*|\\\\\\\\*modules\\\\\\\\*|\\\\\\\\*macroexpand-hook\\\\\\\\*|\\\\\\\\*load-verbose\\\\\\\\*|\\\\\\\\*load-truename\\\\\\\\*|\\\\\\\\*load-print\\\\\\\\*|\\\\n\\\\\\\\*load-pathname\\\\\\\\*|\\\\\\\\*gensym-counter\\\\\\\\*|\\\\\\\\*features\\\\\\\\*|\\\\\\\\*error-output\\\\\\\\*|\\\\\\\\*default-pathname-defaults\\\\\\\\*|\\\\\\\\*debugger-hook\\\\\\\\*|\\\\\\\\*debug-io\\\\\\\\*|\\\\\\\\*compile-verbose\\\\\\\\*|\\\\n\\\\\\\\*compile-print\\\\\\\\*|\\\\\\\\*compile-file-truename\\\\\\\\*|\\\\\\\\*compile-file-pathname\\\\\\\\*|\\\\\\\\*break-on-signals\\\\\\\\*)\\\\n(?=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\)))  # followed by space, ( or )\",\"name\":\"string.regexp.earmuffsasterisk.commonlisp\"},{\"match\":\"(?xi)\\\\n(?<=^|\\\\\\\\s|\\\\\\\\(|,@|,\\\\\\\\.|,) # preceded by space , ( or `,`|`,@`|`,.`\\\\n(?:\\\\\\\\*\\\\\\\\*\\\\\\\\*|\\\\\\\\*\\\\\\\\*|\\\\\\\\+\\\\\\\\+\\\\\\\\+|\\\\\\\\+\\\\\\\\+|\\\\\\\\/\\\\\\\\/\\\\\\\\/|\\\\\\\\/\\\\\\\\/)\\\\n(?=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\)))  # followed by space, ( or )\",\"name\":\"variable.other.repl.commonlisp\"}]}},\"scopeName\":\"source.commonlisp\",\"aliases\":[\"lisp\"]}')),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/C8M2exoo.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBorder\":\"#93b259d0\",\"activityBar.activeFocusBorder\":\"#93b259\",\"activityBar.background\":\"#fdf6e3\",\"activityBar.border\":\"#fdf6e3\",\"activityBar.dropBackground\":\"#fdf6e3\",\"activityBar.foreground\":\"#5c6a72\",\"activityBar.inactiveForeground\":\"#939f91\",\"activityBarBadge.background\":\"#93b259\",\"activityBarBadge.foreground\":\"#fdf6e3\",\"badge.background\":\"#93b259\",\"badge.foreground\":\"#fdf6e3\",\"breadcrumb.activeSelectionForeground\":\"#5c6a72\",\"breadcrumb.focusForeground\":\"#5c6a72\",\"breadcrumb.foreground\":\"#939f91\",\"button.background\":\"#93b259\",\"button.foreground\":\"#fdf6e3\",\"button.hoverBackground\":\"#93b259d0\",\"button.secondaryBackground\":\"#efebd4\",\"button.secondaryForeground\":\"#5c6a72\",\"button.secondaryHoverBackground\":\"#e6e2cc\",\"charts.blue\":\"#3a94c5\",\"charts.foreground\":\"#5c6a72\",\"charts.green\":\"#8da101\",\"charts.orange\":\"#f57d26\",\"charts.purple\":\"#df69ba\",\"charts.red\":\"#f85552\",\"charts.yellow\":\"#dfa000\",\"checkbox.background\":\"#fdf6e3\",\"checkbox.border\":\"#e0dcc7\",\"checkbox.foreground\":\"#f57d26\",\"debugConsole.errorForeground\":\"#f85552\",\"debugConsole.infoForeground\":\"#8da101\",\"debugConsole.sourceForeground\":\"#df69ba\",\"debugConsole.warningForeground\":\"#dfa000\",\"debugConsoleInputIcon.foreground\":\"#35a77c\",\"debugIcon.breakpointCurrentStackframeForeground\":\"#3a94c5\",\"debugIcon.breakpointDisabledForeground\":\"#f1706f\",\"debugIcon.breakpointForeground\":\"#f85552\",\"debugIcon.breakpointStackframeForeground\":\"#f85552\",\"debugIcon.breakpointUnverifiedForeground\":\"#879686\",\"debugIcon.continueForeground\":\"#3a94c5\",\"debugIcon.disconnectForeground\":\"#df69ba\",\"debugIcon.pauseForeground\":\"#dfa000\",\"debugIcon.restartForeground\":\"#35a77c\",\"debugIcon.startForeground\":\"#35a77c\",\"debugIcon.stepBackForeground\":\"#3a94c5\",\"debugIcon.stepIntoForeground\":\"#3a94c5\",\"debugIcon.stepOutForeground\":\"#3a94c5\",\"debugIcon.stepOverForeground\":\"#3a94c5\",\"debugIcon.stopForeground\":\"#f85552\",\"debugTokenExpression.boolean\":\"#df69ba\",\"debugTokenExpression.error\":\"#f85552\",\"debugTokenExpression.name\":\"#3a94c5\",\"debugTokenExpression.number\":\"#df69ba\",\"debugTokenExpression.string\":\"#dfa000\",\"debugTokenExpression.value\":\"#8da101\",\"debugToolBar.background\":\"#fdf6e3\",\"descriptionForeground\":\"#939f91\",\"diffEditor.diagonalFill\":\"#e0dcc7\",\"diffEditor.insertedTextBackground\":\"#6ec39830\",\"diffEditor.removedTextBackground\":\"#f1706f30\",\"dropdown.background\":\"#fdf6e3\",\"dropdown.border\":\"#e0dcc7\",\"dropdown.foreground\":\"#879686\",\"editor.background\":\"#fdf6e3\",\"editor.findMatchBackground\":\"#f3945940\",\"editor.findMatchHighlightBackground\":\"#a4bb4a40\",\"editor.findRangeHighlightBackground\":\"#e6e2cc50\",\"editor.foldBackground\":\"#e0dcc780\",\"editor.foreground\":\"#5c6a72\",\"editor.hoverHighlightBackground\":\"#e6e2cc90\",\"editor.inactiveSelectionBackground\":\"#e6e2cc50\",\"editor.lineHighlightBackground\":\"#efebd470\",\"editor.lineHighlightBorder\":\"#e0dcc700\",\"editor.rangeHighlightBackground\":\"#efebd480\",\"editor.selectionBackground\":\"#e6e2cca0\",\"editor.selectionHighlightBackground\":\"#e6e2cc50\",\"editor.snippetFinalTabstopHighlightBackground\":\"#a4bb4a40\",\"editor.snippetFinalTabstopHighlightBorder\":\"#fdf6e3\",\"editor.snippetTabstopHighlightBackground\":\"#efebd4\",\"editor.symbolHighlightBackground\":\"#6cb3c640\",\"editor.wordHighlightBackground\":\"#e6e2cc48\",\"editor.wordHighlightStrongBackground\":\"#e6e2cc90\",\"editorBracketHighlight.foreground1\":\"#f85552\",\"editorBracketHighlight.foreground2\":\"#dfa000\",\"editorBracketHighlight.foreground3\":\"#8da101\",\"editorBracketHighlight.foreground4\":\"#3a94c5\",\"editorBracketHighlight.foreground5\":\"#f57d26\",\"editorBracketHighlight.foreground6\":\"#df69ba\",\"editorBracketHighlight.unexpectedBracket.foreground\":\"#939f91\",\"editorBracketMatch.background\":\"#e0dcc7\",\"editorBracketMatch.border\":\"#fdf6e300\",\"editorCodeLens.foreground\":\"#a4ad9ea0\",\"editorCursor.foreground\":\"#5c6a72\",\"editorError.background\":\"#f1706f00\",\"editorError.foreground\":\"#f1706f\",\"editorGhostText.background\":\"#fdf6e300\",\"editorGhostText.foreground\":\"#a4ad9ea0\",\"editorGroup.border\":\"#efebd4\",\"editorGroup.dropBackground\":\"#e0dcc760\",\"editorGroupHeader.noTabsBackground\":\"#fdf6e3\",\"editorGroupHeader.tabsBackground\":\"#fdf6e3\",\"editorGutter.addedBackground\":\"#a4bb4aa0\",\"editorGutter.background\":\"#fdf6e300\",\"editorGutter.commentRangeForeground\":\"#a4ad9e\",\"editorGutter.deletedBackground\":\"#f1706fa0\",\"editorGutter.modifiedBackground\":\"#6cb3c6a0\",\"editorHint.foreground\":\"#e092be\",\"editorHoverWidget.background\":\"#f4f0d9\",\"editorHoverWidget.border\":\"#e6e2cc\",\"editorIndentGuide.activeBackground\":\"#87968650\",\"editorIndentGuide.background\":\"#87968620\",\"editorInfo.background\":\"#6cb3c600\",\"editorInfo.foreground\":\"#6cb3c6\",\"editorInlayHint.background\":\"#fdf6e300\",\"editorInlayHint.foreground\":\"#a4ad9ea0\",\"editorInlayHint.parameterBackground\":\"#fdf6e300\",\"editorInlayHint.parameterForeground\":\"#a4ad9ea0\",\"editorInlayHint.typeBackground\":\"#fdf6e300\",\"editorInlayHint.typeForeground\":\"#a4ad9ea0\",\"editorLightBulb.foreground\":\"#dfa000\",\"editorLightBulbAutoFix.foreground\":\"#35a77c\",\"editorLineNumber.activeForeground\":\"#879686e0\",\"editorLineNumber.foreground\":\"#a4ad9ea0\",\"editorLink.activeForeground\":\"#8da101\",\"editorMarkerNavigation.background\":\"#f4f0d9\",\"editorMarkerNavigationError.background\":\"#f1706f80\",\"editorMarkerNavigationInfo.background\":\"#6cb3c680\",\"editorMarkerNavigationWarning.background\":\"#e4b64980\",\"editorOverviewRuler.addedForeground\":\"#a4bb4aa0\",\"editorOverviewRuler.border\":\"#fdf6e300\",\"editorOverviewRuler.commonContentForeground\":\"#939f91\",\"editorOverviewRuler.currentContentForeground\":\"#6cb3c6\",\"editorOverviewRuler.deletedForeground\":\"#f1706fa0\",\"editorOverviewRuler.errorForeground\":\"#f85552\",\"editorOverviewRuler.findMatchForeground\":\"#6ec398\",\"editorOverviewRuler.incomingContentForeground\":\"#6ec398\",\"editorOverviewRuler.infoForeground\":\"#df69ba\",\"editorOverviewRuler.modifiedForeground\":\"#6cb3c6a0\",\"editorOverviewRuler.rangeHighlightForeground\":\"#6ec398\",\"editorOverviewRuler.selectionHighlightForeground\":\"#6ec398\",\"editorOverviewRuler.warningForeground\":\"#dfa000\",\"editorOverviewRuler.wordHighlightForeground\":\"#e0dcc7\",\"editorOverviewRuler.wordHighlightStrongForeground\":\"#e0dcc7\",\"editorRuler.foreground\":\"#e6e2cca0\",\"editorSuggestWidget.background\":\"#efebd4\",\"editorSuggestWidget.border\":\"#efebd4\",\"editorSuggestWidget.foreground\":\"#5c6a72\",\"editorSuggestWidget.highlightForeground\":\"#8da101\",\"editorSuggestWidget.selectedBackground\":\"#e6e2cc\",\"editorUnnecessaryCode.border\":\"#fdf6e3\",\"editorUnnecessaryCode.opacity\":\"#00000080\",\"editorWarning.background\":\"#e4b64900\",\"editorWarning.foreground\":\"#e4b649\",\"editorWhitespace.foreground\":\"#e6e2cc\",\"editorWidget.background\":\"#fdf6e3\",\"editorWidget.border\":\"#e0dcc7\",\"editorWidget.foreground\":\"#5c6a72\",\"errorForeground\":\"#f85552\",\"extensionBadge.remoteBackground\":\"#93b259\",\"extensionBadge.remoteForeground\":\"#fdf6e3\",\"extensionButton.prominentBackground\":\"#93b259\",\"extensionButton.prominentForeground\":\"#fdf6e3\",\"extensionButton.prominentHoverBackground\":\"#93b259d0\",\"extensionIcon.preReleaseForeground\":\"#f57d26\",\"extensionIcon.starForeground\":\"#35a77c\",\"extensionIcon.verifiedForeground\":\"#8da101\",\"focusBorder\":\"#fdf6e300\",\"foreground\":\"#879686\",\"gitDecoration.addedResourceForeground\":\"#8da101a0\",\"gitDecoration.conflictingResourceForeground\":\"#df69baa0\",\"gitDecoration.deletedResourceForeground\":\"#f85552a0\",\"gitDecoration.ignoredResourceForeground\":\"#e0dcc7\",\"gitDecoration.modifiedResourceForeground\":\"#3a94c5a0\",\"gitDecoration.stageDeletedResourceForeground\":\"#35a77ca0\",\"gitDecoration.stageModifiedResourceForeground\":\"#35a77ca0\",\"gitDecoration.submoduleResourceForeground\":\"#f57d26a0\",\"gitDecoration.untrackedResourceForeground\":\"#dfa000a0\",\"gitlens.closedPullRequestIconColor\":\"#f85552\",\"gitlens.decorations.addedForegroundColor\":\"#8da101\",\"gitlens.decorations.branchAheadForegroundColor\":\"#35a77c\",\"gitlens.decorations.branchBehindForegroundColor\":\"#f57d26\",\"gitlens.decorations.branchDivergedForegroundColor\":\"#dfa000\",\"gitlens.decorations.branchMissingUpstreamForegroundColor\":\"#f85552\",\"gitlens.decorations.branchUnpublishedForegroundColor\":\"#3a94c5\",\"gitlens.decorations.branchUpToDateForegroundColor\":\"#5c6a72\",\"gitlens.decorations.copiedForegroundColor\":\"#df69ba\",\"gitlens.decorations.deletedForegroundColor\":\"#f85552\",\"gitlens.decorations.ignoredForegroundColor\":\"#879686\",\"gitlens.decorations.modifiedForegroundColor\":\"#3a94c5\",\"gitlens.decorations.renamedForegroundColor\":\"#df69ba\",\"gitlens.decorations.untrackedForegroundColor\":\"#dfa000\",\"gitlens.gutterBackgroundColor\":\"#fdf6e3\",\"gitlens.gutterForegroundColor\":\"#5c6a72\",\"gitlens.gutterUncommittedForegroundColor\":\"#3a94c5\",\"gitlens.lineHighlightBackgroundColor\":\"#f4f0d9\",\"gitlens.lineHighlightOverviewRulerColor\":\"#93b259\",\"gitlens.mergedPullRequestIconColor\":\"#df69ba\",\"gitlens.openPullRequestIconColor\":\"#35a77c\",\"gitlens.trailingLineForegroundColor\":\"#939f91\",\"gitlens.unpublishedCommitIconColor\":\"#dfa000\",\"gitlens.unpulledChangesIconColor\":\"#f57d26\",\"gitlens.unpushlishedChangesIconColor\":\"#3a94c5\",\"icon.foreground\":\"#35a77c\",\"imagePreview.border\":\"#fdf6e3\",\"input.background\":\"#fdf6e300\",\"input.border\":\"#e0dcc7\",\"input.foreground\":\"#5c6a72\",\"input.placeholderForeground\":\"#a4ad9e\",\"inputOption.activeBorder\":\"#35a77c\",\"inputValidation.errorBackground\":\"#f1706f\",\"inputValidation.errorBorder\":\"#f85552\",\"inputValidation.errorForeground\":\"#5c6a72\",\"inputValidation.infoBackground\":\"#6cb3c6\",\"inputValidation.infoBorder\":\"#3a94c5\",\"inputValidation.infoForeground\":\"#5c6a72\",\"inputValidation.warningBackground\":\"#e4b649\",\"inputValidation.warningBorder\":\"#dfa000\",\"inputValidation.warningForeground\":\"#5c6a72\",\"issues.closed\":\"#f85552\",\"issues.open\":\"#35a77c\",\"keybindingLabel.background\":\"#fdf6e300\",\"keybindingLabel.border\":\"#f4f0d9\",\"keybindingLabel.bottomBorder\":\"#efebd4\",\"keybindingLabel.foreground\":\"#5c6a72\",\"keybindingTable.headerBackground\":\"#efebd4\",\"keybindingTable.rowsBackground\":\"#f4f0d9\",\"list.activeSelectionBackground\":\"#e6e2cc80\",\"list.activeSelectionForeground\":\"#5c6a72\",\"list.dropBackground\":\"#f4f0d980\",\"list.errorForeground\":\"#f85552\",\"list.focusBackground\":\"#e6e2cc80\",\"list.focusForeground\":\"#5c6a72\",\"list.highlightForeground\":\"#8da101\",\"list.hoverBackground\":\"#fdf6e300\",\"list.hoverForeground\":\"#5c6a72\",\"list.inactiveFocusBackground\":\"#e6e2cc60\",\"list.inactiveSelectionBackground\":\"#e6e2cc80\",\"list.inactiveSelectionForeground\":\"#879686\",\"list.invalidItemForeground\":\"#f1706f\",\"list.warningForeground\":\"#dfa000\",\"menu.background\":\"#fdf6e3\",\"menu.foreground\":\"#879686\",\"menu.selectionBackground\":\"#f4f0d9\",\"menu.selectionForeground\":\"#5c6a72\",\"menubar.selectionBackground\":\"#fdf6e3\",\"menubar.selectionBorder\":\"#fdf6e3\",\"merge.border\":\"#fdf6e300\",\"merge.currentContentBackground\":\"#6cb3c640\",\"merge.currentHeaderBackground\":\"#6cb3c680\",\"merge.incomingContentBackground\":\"#6ec39840\",\"merge.incomingHeaderBackground\":\"#6ec39880\",\"minimap.errorHighlight\":\"#f1706f80\",\"minimap.findMatchHighlight\":\"#6ec39860\",\"minimap.selectionHighlight\":\"#e0dcc7f0\",\"minimap.warningHighlight\":\"#e4b64980\",\"minimapGutter.addedBackground\":\"#a4bb4aa0\",\"minimapGutter.deletedBackground\":\"#f1706fa0\",\"minimapGutter.modifiedBackground\":\"#6cb3c6a0\",\"notebook.cellBorderColor\":\"#e0dcc7\",\"notebook.cellHoverBackground\":\"#fdf6e3\",\"notebook.cellStatusBarItemHoverBackground\":\"#f4f0d9\",\"notebook.cellToolbarSeparator\":\"#e0dcc7\",\"notebook.focusedCellBackground\":\"#fdf6e3\",\"notebook.focusedCellBorder\":\"#e0dcc7\",\"notebook.focusedEditorBorder\":\"#e0dcc7\",\"notebook.focusedRowBorder\":\"#e0dcc7\",\"notebook.inactiveFocusedCellBorder\":\"#e0dcc7\",\"notebook.outputContainerBackgroundColor\":\"#f4f0d9\",\"notebook.selectedCellBorder\":\"#e0dcc7\",\"notebookStatusErrorIcon.foreground\":\"#f85552\",\"notebookStatusRunningIcon.foreground\":\"#3a94c5\",\"notebookStatusSuccessIcon.foreground\":\"#8da101\",\"notificationCenterHeader.background\":\"#efebd4\",\"notificationCenterHeader.foreground\":\"#5c6a72\",\"notificationLink.foreground\":\"#8da101\",\"notifications.background\":\"#fdf6e3\",\"notifications.foreground\":\"#5c6a72\",\"notificationsErrorIcon.foreground\":\"#f85552\",\"notificationsInfoIcon.foreground\":\"#3a94c5\",\"notificationsWarningIcon.foreground\":\"#dfa000\",\"panel.background\":\"#fdf6e3\",\"panel.border\":\"#fdf6e3\",\"panelInput.border\":\"#e0dcc7\",\"panelSection.border\":\"#efebd4\",\"panelSectionHeader.background\":\"#fdf6e3\",\"panelTitle.activeBorder\":\"#93b259d0\",\"panelTitle.activeForeground\":\"#5c6a72\",\"panelTitle.inactiveForeground\":\"#939f91\",\"peekView.border\":\"#e6e2cc\",\"peekViewEditor.background\":\"#f4f0d9\",\"peekViewEditor.matchHighlightBackground\":\"#e4b64950\",\"peekViewEditorGutter.background\":\"#f4f0d9\",\"peekViewResult.background\":\"#f4f0d9\",\"peekViewResult.fileForeground\":\"#5c6a72\",\"peekViewResult.lineForeground\":\"#879686\",\"peekViewResult.matchHighlightBackground\":\"#e4b64950\",\"peekViewResult.selectionBackground\":\"#6ec39850\",\"peekViewResult.selectionForeground\":\"#5c6a72\",\"peekViewTitle.background\":\"#e6e2cc\",\"peekViewTitleDescription.foreground\":\"#5c6a72\",\"peekViewTitleLabel.foreground\":\"#8da101\",\"pickerGroup.border\":\"#93b2591a\",\"pickerGroup.foreground\":\"#5c6a72\",\"ports.iconRunningProcessForeground\":\"#f57d26\",\"problemsErrorIcon.foreground\":\"#f85552\",\"problemsInfoIcon.foreground\":\"#3a94c5\",\"problemsWarningIcon.foreground\":\"#dfa000\",\"progressBar.background\":\"#93b259\",\"quickInputTitle.background\":\"#f4f0d9\",\"rust_analyzer.inlayHints.background\":\"#fdf6e300\",\"rust_analyzer.inlayHints.foreground\":\"#a4ad9ea0\",\"rust_analyzer.syntaxTreeBorder\":\"#f85552\",\"sash.hoverBorder\":\"#e6e2cc\",\"scrollbar.shadow\":\"#3c474d20\",\"scrollbarSlider.activeBackground\":\"#879686\",\"scrollbarSlider.background\":\"#e0dcc780\",\"scrollbarSlider.hoverBackground\":\"#e0dcc7\",\"selection.background\":\"#e6e2ccc0\",\"settings.checkboxBackground\":\"#fdf6e3\",\"settings.checkboxBorder\":\"#e0dcc7\",\"settings.checkboxForeground\":\"#f57d26\",\"settings.dropdownBackground\":\"#fdf6e3\",\"settings.dropdownBorder\":\"#e0dcc7\",\"settings.dropdownForeground\":\"#35a77c\",\"settings.focusedRowBackground\":\"#f4f0d9\",\"settings.headerForeground\":\"#879686\",\"settings.modifiedItemIndicator\":\"#a4ad9e\",\"settings.numberInputBackground\":\"#fdf6e3\",\"settings.numberInputBorder\":\"#e0dcc7\",\"settings.numberInputForeground\":\"#df69ba\",\"settings.rowHoverBackground\":\"#f4f0d9\",\"settings.textInputBackground\":\"#fdf6e3\",\"settings.textInputBorder\":\"#e0dcc7\",\"settings.textInputForeground\":\"#3a94c5\",\"sideBar.background\":\"#fdf6e3\",\"sideBar.foreground\":\"#939f91\",\"sideBarSectionHeader.background\":\"#fdf6e300\",\"sideBarSectionHeader.foreground\":\"#879686\",\"sideBarTitle.foreground\":\"#879686\",\"statusBar.background\":\"#fdf6e3\",\"statusBar.border\":\"#fdf6e3\",\"statusBar.debuggingBackground\":\"#fdf6e3\",\"statusBar.debuggingForeground\":\"#f57d26\",\"statusBar.foreground\":\"#879686\",\"statusBar.noFolderBackground\":\"#fdf6e3\",\"statusBar.noFolderBorder\":\"#fdf6e3\",\"statusBar.noFolderForeground\":\"#879686\",\"statusBarItem.activeBackground\":\"#e6e2cc70\",\"statusBarItem.errorBackground\":\"#fdf6e3\",\"statusBarItem.errorForeground\":\"#f85552\",\"statusBarItem.hoverBackground\":\"#e6e2cca0\",\"statusBarItem.prominentBackground\":\"#fdf6e3\",\"statusBarItem.prominentForeground\":\"#5c6a72\",\"statusBarItem.prominentHoverBackground\":\"#e6e2cca0\",\"statusBarItem.remoteBackground\":\"#fdf6e3\",\"statusBarItem.remoteForeground\":\"#879686\",\"statusBarItem.warningBackground\":\"#fdf6e3\",\"statusBarItem.warningForeground\":\"#dfa000\",\"symbolIcon.arrayForeground\":\"#3a94c5\",\"symbolIcon.booleanForeground\":\"#df69ba\",\"symbolIcon.classForeground\":\"#dfa000\",\"symbolIcon.colorForeground\":\"#5c6a72\",\"symbolIcon.constantForeground\":\"#35a77c\",\"symbolIcon.constructorForeground\":\"#df69ba\",\"symbolIcon.enumeratorForeground\":\"#df69ba\",\"symbolIcon.enumeratorMemberForeground\":\"#35a77c\",\"symbolIcon.eventForeground\":\"#dfa000\",\"symbolIcon.fieldForeground\":\"#5c6a72\",\"symbolIcon.fileForeground\":\"#5c6a72\",\"symbolIcon.folderForeground\":\"#5c6a72\",\"symbolIcon.functionForeground\":\"#8da101\",\"symbolIcon.interfaceForeground\":\"#dfa000\",\"symbolIcon.keyForeground\":\"#8da101\",\"symbolIcon.keywordForeground\":\"#f85552\",\"symbolIcon.methodForeground\":\"#8da101\",\"symbolIcon.moduleForeground\":\"#df69ba\",\"symbolIcon.namespaceForeground\":\"#df69ba\",\"symbolIcon.nullForeground\":\"#35a77c\",\"symbolIcon.numberForeground\":\"#df69ba\",\"symbolIcon.objectForeground\":\"#df69ba\",\"symbolIcon.operatorForeground\":\"#f57d26\",\"symbolIcon.packageForeground\":\"#df69ba\",\"symbolIcon.propertyForeground\":\"#35a77c\",\"symbolIcon.referenceForeground\":\"#3a94c5\",\"symbolIcon.snippetForeground\":\"#5c6a72\",\"symbolIcon.stringForeground\":\"#8da101\",\"symbolIcon.structForeground\":\"#dfa000\",\"symbolIcon.textForeground\":\"#5c6a72\",\"symbolIcon.typeParameterForeground\":\"#35a77c\",\"symbolIcon.unitForeground\":\"#5c6a72\",\"symbolIcon.variableForeground\":\"#3a94c5\",\"tab.activeBackground\":\"#fdf6e3\",\"tab.activeBorder\":\"#93b259d0\",\"tab.activeForeground\":\"#5c6a72\",\"tab.border\":\"#fdf6e3\",\"tab.hoverBackground\":\"#fdf6e3\",\"tab.hoverForeground\":\"#5c6a72\",\"tab.inactiveBackground\":\"#fdf6e3\",\"tab.inactiveForeground\":\"#a4ad9e\",\"tab.lastPinnedBorder\":\"#93b259d0\",\"tab.unfocusedActiveBorder\":\"#939f91\",\"tab.unfocusedActiveForeground\":\"#879686\",\"tab.unfocusedHoverForeground\":\"#5c6a72\",\"tab.unfocusedInactiveForeground\":\"#a4ad9e\",\"terminal.ansiBlack\":\"#5c6a72\",\"terminal.ansiBlue\":\"#3a94c5\",\"terminal.ansiBrightBlack\":\"#5c6a72\",\"terminal.ansiBrightBlue\":\"#3a94c5\",\"terminal.ansiBrightCyan\":\"#35a77c\",\"terminal.ansiBrightGreen\":\"#8da101\",\"terminal.ansiBrightMagenta\":\"#df69ba\",\"terminal.ansiBrightRed\":\"#f85552\",\"terminal.ansiBrightWhite\":\"#f4f0d9\",\"terminal.ansiBrightYellow\":\"#dfa000\",\"terminal.ansiCyan\":\"#35a77c\",\"terminal.ansiGreen\":\"#8da101\",\"terminal.ansiMagenta\":\"#df69ba\",\"terminal.ansiRed\":\"#f85552\",\"terminal.ansiWhite\":\"#939f91\",\"terminal.ansiYellow\":\"#dfa000\",\"terminal.foreground\":\"#5c6a72\",\"terminalCursor.foreground\":\"#5c6a72\",\"testing.iconErrored\":\"#f85552\",\"testing.iconFailed\":\"#f85552\",\"testing.iconPassed\":\"#35a77c\",\"testing.iconQueued\":\"#3a94c5\",\"testing.iconSkipped\":\"#df69ba\",\"testing.iconUnset\":\"#dfa000\",\"testing.runAction\":\"#35a77c\",\"textBlockQuote.background\":\"#f4f0d9\",\"textBlockQuote.border\":\"#e6e2cc\",\"textCodeBlock.background\":\"#f4f0d9\",\"textLink.activeForeground\":\"#8da101c0\",\"textLink.foreground\":\"#8da101\",\"textPreformat.foreground\":\"#dfa000\",\"titleBar.activeBackground\":\"#fdf6e3\",\"titleBar.activeForeground\":\"#879686\",\"titleBar.border\":\"#fdf6e3\",\"titleBar.inactiveBackground\":\"#fdf6e3\",\"titleBar.inactiveForeground\":\"#a4ad9e\",\"toolbar.hoverBackground\":\"#f4f0d9\",\"tree.indentGuidesStroke\":\"#a4ad9e\",\"walkThrough.embeddedEditorBackground\":\"#f4f0d9\",\"welcomePage.buttonBackground\":\"#f4f0d9\",\"welcomePage.buttonHoverBackground\":\"#f4f0d9a0\",\"welcomePage.progress.foreground\":\"#8da101\",\"welcomePage.tileHoverBackground\":\"#f4f0d9\",\"widget.shadow\":\"#3c474d20\"},\"displayName\":\"Everforest Light\",\"name\":\"everforest-light\",\"semanticHighlighting\":true,\"semanticTokenColors\":{\"class:python\":\"#35a77c\",\"class:typescript\":\"#35a77c\",\"class:typescriptreact\":\"#35a77c\",\"enum:typescript\":\"#df69ba\",\"enum:typescriptreact\":\"#df69ba\",\"enumMember:typescript\":\"#3a94c5\",\"enumMember:typescriptreact\":\"#3a94c5\",\"interface:typescript\":\"#35a77c\",\"interface:typescriptreact\":\"#35a77c\",\"intrinsic:python\":\"#df69ba\",\"macro:rust\":\"#35a77c\",\"memberOperatorOverload\":\"#f57d26\",\"module:python\":\"#3a94c5\",\"namespace:rust\":\"#df69ba\",\"namespace:typescript\":\"#df69ba\",\"namespace:typescriptreact\":\"#df69ba\",\"operatorOverload\":\"#f57d26\",\"property.defaultLibrary:javascript\":\"#df69ba\",\"property.defaultLibrary:javascriptreact\":\"#df69ba\",\"property.defaultLibrary:typescript\":\"#df69ba\",\"property.defaultLibrary:typescriptreact\":\"#df69ba\",\"selfKeyword:rust\":\"#df69ba\",\"variable.defaultLibrary:javascript\":\"#df69ba\",\"variable.defaultLibrary:javascriptreact\":\"#df69ba\",\"variable.defaultLibrary:typescript\":\"#df69ba\",\"variable.defaultLibrary:typescriptreact\":\"#df69ba\"},\"tokenColors\":[{\"scope\":\"keyword, storage.type.function, storage.type.class, storage.type.enum, storage.type.interface, storage.type.property, keyword.operator.new, keyword.operator.expression, keyword.operator.new, keyword.operator.delete, storage.type.extends\",\"settings\":{\"foreground\":\"#f85552\"}},{\"scope\":\"keyword.other.debugger\",\"settings\":{\"foreground\":\"#f85552\"}},{\"scope\":\"storage, modifier, keyword.var, entity.name.tag, keyword.control.case, keyword.control.switch\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"keyword.operator\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"string, punctuation.definition.string.end, punctuation.definition.string.begin, punctuation.definition.string.template.begin, punctuation.definition.string.template.end\",\"settings\":{\"foreground\":\"#dfa000\"}},{\"scope\":\"entity.other.attribute-name\",\"settings\":{\"foreground\":\"#dfa000\"}},{\"scope\":\"constant.character.escape, punctuation.quasi.element, punctuation.definition.template-expression, punctuation.section.embedded, storage.type.format, constant.other.placeholder, constant.other.placeholder, variable.interpolation\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"entity.name.function, support.function, meta.function, meta.function-call, meta.definition.method\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"keyword.control.at-rule, keyword.control.import, keyword.control.export, storage.type.namespace, punctuation.decorator, keyword.control.directive, keyword.preprocessor, punctuation.definition.preprocessor, punctuation.definition.directive, keyword.other.import, keyword.other.package, entity.name.type.namespace, entity.name.scope-resolution, keyword.other.using, keyword.package, keyword.import, keyword.map\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"storage.type.annotation\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"entity.name.label, constant.other.label\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"support.module, support.node, support.other.module, support.type.object.module, entity.name.type.module, entity.name.type.class.module, keyword.control.module\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"storage.type, support.type, entity.name.type, keyword.type\",\"settings\":{\"foreground\":\"#3a94c5\"}},{\"scope\":\"entity.name.type.class, support.class, entity.name.class, entity.other.inherited-class, storage.class\",\"settings\":{\"foreground\":\"#3a94c5\"}},{\"scope\":\"constant.numeric\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"constant.language.boolean\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"entity.name.function.preprocessor\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"variable.language.this, variable.language.self, variable.language.super, keyword.other.this, variable.language.special, constant.language.null, constant.language.undefined, constant.language.nan\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"constant.language, support.constant\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"variable, support.variable, meta.definition.variable\",\"settings\":{\"foreground\":\"#5c6a72\"}},{\"scope\":\"variable.object.property, support.variable.property, variable.other.property, variable.other.object.property, variable.other.enummember, variable.other.member, meta.object-literal.key\",\"settings\":{\"foreground\":\"#5c6a72\"}},{\"scope\":\"punctuation, meta.brace, meta.delimiter, meta.bracket\",\"settings\":{\"foreground\":\"#5c6a72\"}},{\"scope\":\"heading.1.markdown, markup.heading.setext.1.markdown\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#f85552\"}},{\"scope\":\"heading.2.markdown, markup.heading.setext.2.markdown\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#f57d26\"}},{\"scope\":\"heading.3.markdown\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#dfa000\"}},{\"scope\":\"heading.4.markdown\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#8da101\"}},{\"scope\":\"heading.5.markdown\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#3a94c5\"}},{\"scope\":\"heading.6.markdown\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#df69ba\"}},{\"scope\":\"punctuation.definition.heading.markdown\",\"settings\":{\"fontStyle\":\"regular\",\"foreground\":\"#939f91\"}},{\"scope\":\"string.other.link.title.markdown, constant.other.reference.link.markdown, string.other.link.description.markdown\",\"settings\":{\"fontStyle\":\"regular\",\"foreground\":\"#df69ba\"}},{\"scope\":\"markup.underline.link.image.markdown, markup.underline.link.markdown\",\"settings\":{\"fontStyle\":\"underline\",\"foreground\":\"#8da101\"}},{\"scope\":\"punctuation.definition.string.begin.markdown, punctuation.definition.string.end.markdown, punctuation.definition.italic.markdown, punctuation.definition.quote.begin.markdown, punctuation.definition.metadata.markdown, punctuation.separator.key-value.markdown, punctuation.definition.constant.markdown\",\"settings\":{\"foreground\":\"#939f91\"}},{\"scope\":\"punctuation.definition.bold.markdown\",\"settings\":{\"fontStyle\":\"regular\",\"foreground\":\"#939f91\"}},{\"scope\":\"meta.separator.markdown, punctuation.definition.constant.begin.markdown, punctuation.definition.constant.end.markdown\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#939f91\"}},{\"scope\":\"markup.italic\",\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":\"markup.bold\",\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":\"markup.bold markup.italic, markup.italic markup.bold\",\"settings\":{\"fontStyle\":\"italic bold\"}},{\"scope\":\"punctuation.definition.markdown, punctuation.definition.raw.markdown\",\"settings\":{\"foreground\":\"#dfa000\"}},{\"scope\":\"fenced_code.block.language\",\"settings\":{\"foreground\":\"#dfa000\"}},{\"scope\":\"markup.fenced_code.block.markdown, markup.inline.raw.string.markdown\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"punctuation.definition.list.begin.markdown\",\"settings\":{\"foreground\":\"#f85552\"}},{\"scope\":\"punctuation.definition.heading.restructuredtext\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#f57d26\"}},{\"scope\":\"punctuation.definition.field.restructuredtext, punctuation.separator.key-value.restructuredtext, punctuation.definition.directive.restructuredtext, punctuation.definition.constant.restructuredtext, punctuation.definition.italic.restructuredtext, punctuation.definition.table.restructuredtext\",\"settings\":{\"foreground\":\"#939f91\"}},{\"scope\":\"punctuation.definition.bold.restructuredtext\",\"settings\":{\"fontStyle\":\"regular\",\"foreground\":\"#939f91\"}},{\"scope\":\"entity.name.tag.restructuredtext, punctuation.definition.link.restructuredtext, punctuation.definition.raw.restructuredtext, punctuation.section.raw.restructuredtext\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"constant.other.footnote.link.restructuredtext\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"support.directive.restructuredtext\",\"settings\":{\"foreground\":\"#f85552\"}},{\"scope\":\"entity.name.directive.restructuredtext, markup.raw.restructuredtext, markup.raw.inner.restructuredtext, string.other.link.title.restructuredtext\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"punctuation.definition.function.latex, punctuation.definition.function.tex, punctuation.definition.keyword.latex, constant.character.newline.tex, punctuation.definition.keyword.tex\",\"settings\":{\"foreground\":\"#939f91\"}},{\"scope\":\"support.function.be.latex\",\"settings\":{\"foreground\":\"#f85552\"}},{\"scope\":\"support.function.section.latex, keyword.control.table.cell.latex, keyword.control.table.newline.latex\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"support.class.latex, variable.parameter.latex, variable.parameter.function.latex, variable.parameter.definition.label.latex, constant.other.reference.label.latex\",\"settings\":{\"foreground\":\"#dfa000\"}},{\"scope\":\"keyword.control.preamble.latex\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"punctuation.separator.namespace.xml\",\"settings\":{\"foreground\":\"#939f91\"}},{\"scope\":\"entity.name.tag.html, entity.name.tag.xml, entity.name.tag.localname.xml\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"entity.other.attribute-name.html, entity.other.attribute-name.xml, entity.other.attribute-name.localname.xml\",\"settings\":{\"foreground\":\"#dfa000\"}},{\"scope\":\"string.quoted.double.html, string.quoted.single.html, punctuation.definition.string.begin.html, punctuation.definition.string.end.html, punctuation.separator.key-value.html, punctuation.definition.string.begin.xml, punctuation.definition.string.end.xml, string.quoted.double.xml, string.quoted.single.xml, punctuation.definition.tag.begin.html, punctuation.definition.tag.end.html, punctuation.definition.tag.xml, meta.tag.xml, meta.tag.preprocessor.xml, meta.tag.other.html, meta.tag.block.any.html, meta.tag.inline.any.html\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"variable.language.documentroot.xml, meta.tag.sgml.doctype.xml\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"storage.type.proto\",\"settings\":{\"foreground\":\"#dfa000\"}},{\"scope\":\"string.quoted.double.proto.syntax, string.quoted.single.proto.syntax, string.quoted.double.proto, string.quoted.single.proto\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"entity.name.class.proto, entity.name.class.message.proto\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"punctuation.definition.entity.css, punctuation.separator.key-value.css, punctuation.terminator.rule.css, punctuation.separator.list.comma.css\",\"settings\":{\"foreground\":\"#939f91\"}},{\"scope\":\"entity.other.attribute-name.class.css\",\"settings\":{\"foreground\":\"#f85552\"}},{\"scope\":\"keyword.other.unit\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"entity.other.attribute-name.pseudo-class.css, entity.other.attribute-name.pseudo-element.css\",\"settings\":{\"foreground\":\"#dfa000\"}},{\"scope\":\"string.quoted.single.css, string.quoted.double.css, support.constant.property-value.css, meta.property-value.css, punctuation.definition.string.begin.css, punctuation.definition.string.end.css, constant.numeric.css, support.constant.font-name.css, variable.parameter.keyframe-list.css\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"support.type.property-name.css\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"support.type.vendored.property-name.css\",\"settings\":{\"foreground\":\"#3a94c5\"}},{\"scope\":\"entity.name.tag.css, entity.other.keyframe-offset.css, punctuation.definition.keyword.css, keyword.control.at-rule.keyframes.css, meta.selector.css\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"punctuation.definition.entity.scss, punctuation.separator.key-value.scss, punctuation.terminator.rule.scss, punctuation.separator.list.comma.scss\",\"settings\":{\"foreground\":\"#939f91\"}},{\"scope\":\"keyword.control.at-rule.keyframes.scss\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"punctuation.definition.interpolation.begin.bracket.curly.scss, punctuation.definition.interpolation.end.bracket.curly.scss\",\"settings\":{\"foreground\":\"#dfa000\"}},{\"scope\":\"punctuation.definition.string.begin.scss, punctuation.definition.string.end.scss, string.quoted.double.scss, string.quoted.single.scss, constant.character.css.sass, meta.property-value.scss\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"keyword.control.at-rule.include.scss, keyword.control.at-rule.use.scss, keyword.control.at-rule.mixin.scss, keyword.control.at-rule.extend.scss, keyword.control.at-rule.import.scss\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"meta.function.stylus\",\"settings\":{\"foreground\":\"#5c6a72\"}},{\"scope\":\"entity.name.function.stylus\",\"settings\":{\"foreground\":\"#dfa000\"}},{\"scope\":\"string.unquoted.js\",\"settings\":{\"foreground\":\"#5c6a72\"}},{\"scope\":\"punctuation.accessor.js, punctuation.separator.key-value.js, punctuation.separator.label.js, keyword.operator.accessor.js\",\"settings\":{\"foreground\":\"#939f91\"}},{\"scope\":\"punctuation.definition.block.tag.jsdoc\",\"settings\":{\"foreground\":\"#f85552\"}},{\"scope\":\"storage.type.js, storage.type.function.arrow.js\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"JSXNested\",\"settings\":{\"foreground\":\"#5c6a72\"}},{\"scope\":\"punctuation.definition.tag.jsx, entity.other.attribute-name.jsx, punctuation.definition.tag.begin.js.jsx, punctuation.definition.tag.end.js.jsx, entity.other.attribute-name.js.jsx\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"entity.name.type.module.ts\",\"settings\":{\"foreground\":\"#5c6a72\"}},{\"scope\":\"keyword.operator.type.annotation.ts, punctuation.accessor.ts, punctuation.separator.key-value.ts\",\"settings\":{\"foreground\":\"#939f91\"}},{\"scope\":\"punctuation.definition.tag.directive.ts, entity.other.attribute-name.directive.ts\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"entity.name.type.ts, entity.name.type.interface.ts, entity.other.inherited-class.ts, entity.name.type.alias.ts, entity.name.type.class.ts, entity.name.type.enum.ts\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"storage.type.ts, storage.type.function.arrow.ts, storage.type.type.ts\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"entity.name.type.module.ts\",\"settings\":{\"foreground\":\"#3a94c5\"}},{\"scope\":\"keyword.control.import.ts, keyword.control.export.ts, storage.type.namespace.ts\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"entity.name.type.module.tsx\",\"settings\":{\"foreground\":\"#5c6a72\"}},{\"scope\":\"keyword.operator.type.annotation.tsx, punctuation.accessor.tsx, punctuation.separator.key-value.tsx\",\"settings\":{\"foreground\":\"#939f91\"}},{\"scope\":\"punctuation.definition.tag.directive.tsx, entity.other.attribute-name.directive.tsx, punctuation.definition.tag.begin.tsx, punctuation.definition.tag.end.tsx, entity.other.attribute-name.tsx\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"entity.name.type.tsx, entity.name.type.interface.tsx, entity.other.inherited-class.tsx, entity.name.type.alias.tsx, entity.name.type.class.tsx, entity.name.type.enum.tsx\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"entity.name.type.module.tsx\",\"settings\":{\"foreground\":\"#3a94c5\"}},{\"scope\":\"keyword.control.import.tsx, keyword.control.export.tsx, storage.type.namespace.tsx\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"storage.type.tsx, storage.type.function.arrow.tsx, storage.type.type.tsx, support.class.component.tsx\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"storage.type.function.coffee\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"meta.type-signature.purescript\",\"settings\":{\"foreground\":\"#5c6a72\"}},{\"scope\":\"keyword.other.double-colon.purescript, keyword.other.arrow.purescript, keyword.other.big-arrow.purescript\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"entity.name.function.purescript\",\"settings\":{\"foreground\":\"#dfa000\"}},{\"scope\":\"string.quoted.single.purescript, string.quoted.double.purescript, punctuation.definition.string.begin.purescript, punctuation.definition.string.end.purescript, string.quoted.triple.purescript, entity.name.type.purescript\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"support.other.module.purescript\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"punctuation.dot.dart\",\"settings\":{\"foreground\":\"#939f91\"}},{\"scope\":\"storage.type.primitive.dart\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"support.class.dart\",\"settings\":{\"foreground\":\"#dfa000\"}},{\"scope\":\"entity.name.function.dart, string.interpolated.single.dart, string.interpolated.double.dart\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"variable.language.dart\",\"settings\":{\"foreground\":\"#3a94c5\"}},{\"scope\":\"keyword.other.import.dart, storage.type.annotation.dart\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"entity.other.attribute-name.class.pug\",\"settings\":{\"foreground\":\"#f85552\"}},{\"scope\":\"storage.type.function.pug\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"entity.other.attribute-name.tag.pug\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"entity.name.tag.pug, storage.type.import.include.pug\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"meta.function-call.c, storage.modifier.array.bracket.square.c, meta.function.definition.parameters.c\",\"settings\":{\"foreground\":\"#5c6a72\"}},{\"scope\":\"punctuation.separator.dot-access.c, constant.character.escape.line-continuation.c\",\"settings\":{\"foreground\":\"#939f91\"}},{\"scope\":\"keyword.control.directive.include.c, punctuation.definition.directive.c, keyword.control.directive.pragma.c, keyword.control.directive.line.c, keyword.control.directive.define.c, keyword.control.directive.conditional.c, keyword.control.directive.diagnostic.error.c, keyword.control.directive.undef.c, keyword.control.directive.conditional.ifdef.c, keyword.control.directive.endif.c, keyword.control.directive.conditional.ifndef.c, keyword.control.directive.conditional.if.c, keyword.control.directive.else.c\",\"settings\":{\"foreground\":\"#f85552\"}},{\"scope\":\"punctuation.separator.pointer-access.c\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"variable.other.member.c\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"meta.function-call.cpp, storage.modifier.array.bracket.square.cpp, meta.function.definition.parameters.cpp, meta.body.function.definition.cpp\",\"settings\":{\"foreground\":\"#5c6a72\"}},{\"scope\":\"punctuation.separator.dot-access.cpp, constant.character.escape.line-continuation.cpp\",\"settings\":{\"foreground\":\"#939f91\"}},{\"scope\":\"keyword.control.directive.include.cpp, punctuation.definition.directive.cpp, keyword.control.directive.pragma.cpp, keyword.control.directive.line.cpp, keyword.control.directive.define.cpp, keyword.control.directive.conditional.cpp, keyword.control.directive.diagnostic.error.cpp, keyword.control.directive.undef.cpp, keyword.control.directive.conditional.ifdef.cpp, keyword.control.directive.endif.cpp, keyword.control.directive.conditional.ifndef.cpp, keyword.control.directive.conditional.if.cpp, keyword.control.directive.else.cpp, storage.type.namespace.definition.cpp, keyword.other.using.directive.cpp, storage.type.struct.cpp\",\"settings\":{\"foreground\":\"#f85552\"}},{\"scope\":\"punctuation.separator.pointer-access.cpp, punctuation.section.angle-brackets.begin.template.call.cpp, punctuation.section.angle-brackets.end.template.call.cpp\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"variable.other.member.cpp\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"keyword.other.using.cs\",\"settings\":{\"foreground\":\"#f85552\"}},{\"scope\":\"keyword.type.cs, constant.character.escape.cs, punctuation.definition.interpolation.begin.cs, punctuation.definition.interpolation.end.cs\",\"settings\":{\"foreground\":\"#dfa000\"}},{\"scope\":\"string.quoted.double.cs, string.quoted.single.cs, punctuation.definition.string.begin.cs, punctuation.definition.string.end.cs\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"variable.other.object.property.cs\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"entity.name.type.namespace.cs\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"keyword.symbol.fsharp, constant.language.unit.fsharp\",\"settings\":{\"foreground\":\"#5c6a72\"}},{\"scope\":\"keyword.format.specifier.fsharp, entity.name.type.fsharp\",\"settings\":{\"foreground\":\"#dfa000\"}},{\"scope\":\"string.quoted.double.fsharp, string.quoted.single.fsharp, punctuation.definition.string.begin.fsharp, punctuation.definition.string.end.fsharp\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"entity.name.section.fsharp\",\"settings\":{\"foreground\":\"#3a94c5\"}},{\"scope\":\"support.function.attribute.fsharp\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"punctuation.separator.java, punctuation.separator.period.java\",\"settings\":{\"foreground\":\"#939f91\"}},{\"scope\":\"keyword.other.import.java, keyword.other.package.java\",\"settings\":{\"foreground\":\"#f85552\"}},{\"scope\":\"storage.type.function.arrow.java, keyword.control.ternary.java\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"variable.other.property.java\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"variable.language.wildcard.java, storage.modifier.import.java, storage.type.annotation.java, punctuation.definition.annotation.java, storage.modifier.package.java, entity.name.type.module.java\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"keyword.other.import.kotlin\",\"settings\":{\"foreground\":\"#f85552\"}},{\"scope\":\"storage.type.kotlin\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"constant.language.kotlin\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"entity.name.package.kotlin, storage.type.annotation.kotlin\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"entity.name.package.scala\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"constant.language.scala\",\"settings\":{\"foreground\":\"#3a94c5\"}},{\"scope\":\"entity.name.import.scala\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"string.quoted.double.scala, string.quoted.single.scala, punctuation.definition.string.begin.scala, punctuation.definition.string.end.scala, string.quoted.double.interpolated.scala, string.quoted.single.interpolated.scala, string.quoted.triple.scala\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"entity.name.class, entity.other.inherited-class.scala\",\"settings\":{\"foreground\":\"#dfa000\"}},{\"scope\":\"keyword.declaration.stable.scala, keyword.other.arrow.scala\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"keyword.other.import.scala\",\"settings\":{\"foreground\":\"#f85552\"}},{\"scope\":\"keyword.operator.navigation.groovy, meta.method.body.java, meta.definition.method.groovy, meta.definition.method.signature.java\",\"settings\":{\"foreground\":\"#5c6a72\"}},{\"scope\":\"punctuation.separator.groovy\",\"settings\":{\"foreground\":\"#939f91\"}},{\"scope\":\"keyword.other.import.groovy, keyword.other.package.groovy, keyword.other.import.static.groovy\",\"settings\":{\"foreground\":\"#f85552\"}},{\"scope\":\"storage.type.def.groovy\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"variable.other.interpolated.groovy, meta.method.groovy\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"storage.modifier.import.groovy, storage.modifier.package.groovy\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"storage.type.annotation.groovy\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"keyword.type.go\",\"settings\":{\"foreground\":\"#f85552\"}},{\"scope\":\"entity.name.package.go\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"keyword.import.go, keyword.package.go\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"entity.name.type.mod.rust\",\"settings\":{\"foreground\":\"#5c6a72\"}},{\"scope\":\"keyword.operator.path.rust, keyword.operator.member-access.rust\",\"settings\":{\"foreground\":\"#939f91\"}},{\"scope\":\"storage.type.rust\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"support.constant.core.rust\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"meta.attribute.rust, variable.language.rust, storage.type.module.rust\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"meta.function-call.swift, support.function.any-method.swift\",\"settings\":{\"foreground\":\"#5c6a72\"}},{\"scope\":\"support.variable.swift\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"keyword.operator.class.php\",\"settings\":{\"foreground\":\"#5c6a72\"}},{\"scope\":\"storage.type.trait.php\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"constant.language.php, support.other.namespace.php\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"storage.type.modifier.access.control.public.cpp, storage.type.modifier.access.control.private.cpp\",\"settings\":{\"foreground\":\"#3a94c5\"}},{\"scope\":\"keyword.control.import.include.php, storage.type.php\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"meta.function-call.arguments.python\",\"settings\":{\"foreground\":\"#5c6a72\"}},{\"scope\":\"punctuation.definition.decorator.python, punctuation.separator.period.python\",\"settings\":{\"foreground\":\"#939f91\"}},{\"scope\":\"constant.language.python\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"keyword.control.import.python, keyword.control.import.from.python\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"constant.language.lua\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"entity.name.class.lua\",\"settings\":{\"foreground\":\"#3a94c5\"}},{\"scope\":\"meta.function.method.with-arguments.ruby\",\"settings\":{\"foreground\":\"#5c6a72\"}},{\"scope\":\"punctuation.separator.method.ruby\",\"settings\":{\"foreground\":\"#939f91\"}},{\"scope\":\"keyword.control.pseudo-method.ruby, storage.type.variable.ruby\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"keyword.other.special-method.ruby\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"keyword.control.module.ruby, punctuation.definition.constant.ruby\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"string.regexp.character-class.ruby,string.regexp.interpolated.ruby,punctuation.definition.character-class.ruby,string.regexp.group.ruby, punctuation.section.regexp.ruby, punctuation.definition.group.ruby\",\"settings\":{\"foreground\":\"#dfa000\"}},{\"scope\":\"variable.other.constant.ruby\",\"settings\":{\"foreground\":\"#3a94c5\"}},{\"scope\":\"keyword.other.arrow.haskell, keyword.other.big-arrow.haskell, keyword.other.double-colon.haskell\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"storage.type.haskell\",\"settings\":{\"foreground\":\"#dfa000\"}},{\"scope\":\"constant.other.haskell, string.quoted.double.haskell, string.quoted.single.haskell, punctuation.definition.string.begin.haskell, punctuation.definition.string.end.haskell\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"entity.name.function.haskell\",\"settings\":{\"foreground\":\"#3a94c5\"}},{\"scope\":\"entity.name.namespace, meta.preprocessor.haskell\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"keyword.control.import.julia, keyword.control.export.julia\",\"settings\":{\"foreground\":\"#f85552\"}},{\"scope\":\"keyword.storage.modifier.julia\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"constant.language.julia\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"support.function.macro.julia\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"keyword.other.period.elm\",\"settings\":{\"foreground\":\"#5c6a72\"}},{\"scope\":\"storage.type.elm\",\"settings\":{\"foreground\":\"#dfa000\"}},{\"scope\":\"keyword.other.r\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"entity.name.function.r, variable.function.r\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"constant.language.r\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"entity.namespace.r\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"punctuation.separator.module-function.erlang, punctuation.section.directive.begin.erlang\",\"settings\":{\"foreground\":\"#939f91\"}},{\"scope\":\"keyword.control.directive.erlang, keyword.control.directive.define.erlang\",\"settings\":{\"foreground\":\"#f85552\"}},{\"scope\":\"entity.name.type.class.module.erlang\",\"settings\":{\"foreground\":\"#dfa000\"}},{\"scope\":\"string.quoted.double.erlang, string.quoted.single.erlang, punctuation.definition.string.begin.erlang, punctuation.definition.string.end.erlang\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"keyword.control.directive.export.erlang, keyword.control.directive.module.erlang, keyword.control.directive.import.erlang, keyword.control.directive.behaviour.erlang\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"variable.other.readwrite.module.elixir, punctuation.definition.variable.elixir\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"constant.language.elixir\",\"settings\":{\"foreground\":\"#3a94c5\"}},{\"scope\":\"keyword.control.module.elixir\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"entity.name.type.value-signature.ocaml\",\"settings\":{\"foreground\":\"#5c6a72\"}},{\"scope\":\"keyword.other.ocaml\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"constant.language.variant.ocaml\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"storage.type.sub.perl, storage.type.declare.routine.perl\",\"settings\":{\"foreground\":\"#f85552\"}},{\"scope\":\"meta.function.lisp\",\"settings\":{\"foreground\":\"#5c6a72\"}},{\"scope\":\"storage.type.function-type.lisp\",\"settings\":{\"foreground\":\"#f85552\"}},{\"scope\":\"keyword.constant.lisp\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"entity.name.function.lisp\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"constant.keyword.clojure, support.variable.clojure, meta.definition.variable.clojure\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"entity.global.clojure\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"entity.name.function.clojure\",\"settings\":{\"foreground\":\"#3a94c5\"}},{\"scope\":\"meta.scope.if-block.shell, meta.scope.group.shell\",\"settings\":{\"foreground\":\"#5c6a72\"}},{\"scope\":\"support.function.builtin.shell, entity.name.function.shell\",\"settings\":{\"foreground\":\"#dfa000\"}},{\"scope\":\"string.quoted.double.shell, string.quoted.single.shell, punctuation.definition.string.begin.shell, punctuation.definition.string.end.shell, string.unquoted.heredoc.shell\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"keyword.control.heredoc-token.shell, variable.other.normal.shell, punctuation.definition.variable.shell, variable.other.special.shell, variable.other.positional.shell, variable.other.bracket.shell\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"support.function.builtin.fish\",\"settings\":{\"foreground\":\"#f85552\"}},{\"scope\":\"support.function.unix.fish\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"variable.other.normal.fish, punctuation.definition.variable.fish, variable.other.fixed.fish, variable.other.special.fish\",\"settings\":{\"foreground\":\"#3a94c5\"}},{\"scope\":\"string.quoted.double.fish, punctuation.definition.string.end.fish, punctuation.definition.string.begin.fish, string.quoted.single.fish\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"constant.character.escape.single.fish\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"punctuation.definition.variable.powershell\",\"settings\":{\"foreground\":\"#939f91\"}},{\"scope\":\"entity.name.function.powershell, support.function.attribute.powershell, support.function.powershell\",\"settings\":{\"foreground\":\"#dfa000\"}},{\"scope\":\"string.quoted.single.powershell, string.quoted.double.powershell, punctuation.definition.string.begin.powershell, punctuation.definition.string.end.powershell, string.quoted.double.heredoc.powershell\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"variable.other.member.powershell\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"string.unquoted.alias.graphql\",\"settings\":{\"foreground\":\"#5c6a72\"}},{\"scope\":\"keyword.type.graphql\",\"settings\":{\"foreground\":\"#f85552\"}},{\"scope\":\"entity.name.fragment.graphql\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"entity.name.function.target.makefile\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"variable.other.makefile\",\"settings\":{\"foreground\":\"#dfa000\"}},{\"scope\":\"meta.scope.prerequisites.makefile\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"string.source.cmake\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"entity.source.cmake\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"storage.source.cmake\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"punctuation.definition.map.viml\",\"settings\":{\"foreground\":\"#939f91\"}},{\"scope\":\"storage.type.map.viml\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"constant.character.map.viml, constant.character.map.key.viml\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"constant.character.map.special.viml\",\"settings\":{\"foreground\":\"#3a94c5\"}},{\"scope\":\"constant.language.tmux, constant.numeric.tmux\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"entity.name.function.package-manager.dockerfile\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"keyword.operator.flag.dockerfile\",\"settings\":{\"foreground\":\"#dfa000\"}},{\"scope\":\"string.quoted.double.dockerfile, string.quoted.single.dockerfile\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"constant.character.escape.dockerfile\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"entity.name.type.base-image.dockerfile, entity.name.image.dockerfile\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"punctuation.definition.separator.diff\",\"settings\":{\"foreground\":\"#939f91\"}},{\"scope\":\"markup.deleted.diff, punctuation.definition.deleted.diff\",\"settings\":{\"foreground\":\"#f85552\"}},{\"scope\":\"meta.diff.range.context, punctuation.definition.range.diff\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"meta.diff.header.from-file\",\"settings\":{\"foreground\":\"#dfa000\"}},{\"scope\":\"markup.inserted.diff, punctuation.definition.inserted.diff\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"markup.changed.diff, punctuation.definition.changed.diff\",\"settings\":{\"foreground\":\"#3a94c5\"}},{\"scope\":\"punctuation.definition.from-file.diff\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"entity.name.section.group-title.ini, punctuation.definition.entity.ini\",\"settings\":{\"foreground\":\"#f85552\"}},{\"scope\":\"punctuation.separator.key-value.ini\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"string.quoted.double.ini, string.quoted.single.ini, punctuation.definition.string.begin.ini, punctuation.definition.string.end.ini\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"keyword.other.definition.ini\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"support.function.aggregate.sql\",\"settings\":{\"foreground\":\"#dfa000\"}},{\"scope\":\"string.quoted.single.sql, punctuation.definition.string.end.sql, punctuation.definition.string.begin.sql, string.quoted.double.sql\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"support.type.graphql\",\"settings\":{\"foreground\":\"#dfa000\"}},{\"scope\":\"variable.parameter.graphql\",\"settings\":{\"foreground\":\"#3a94c5\"}},{\"scope\":\"constant.character.enum.graphql\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"punctuation.support.type.property-name.begin.json, punctuation.support.type.property-name.end.json, punctuation.separator.dictionary.key-value.json, punctuation.definition.string.begin.json, punctuation.definition.string.end.json, punctuation.separator.dictionary.pair.json, punctuation.separator.array.json\",\"settings\":{\"foreground\":\"#939f91\"}},{\"scope\":\"support.type.property-name.json\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"string.quoted.double.json\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"punctuation.separator.key-value.mapping.yaml\",\"settings\":{\"foreground\":\"#939f91\"}},{\"scope\":\"string.unquoted.plain.out.yaml, string.quoted.single.yaml, string.quoted.double.yaml, punctuation.definition.string.begin.yaml, punctuation.definition.string.end.yaml, string.unquoted.plain.in.yaml, string.unquoted.block.yaml\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"punctuation.definition.anchor.yaml, punctuation.definition.block.sequence.item.yaml\",\"settings\":{\"foreground\":\"#35a77c\"}},{\"scope\":\"keyword.key.toml\",\"settings\":{\"foreground\":\"#f57d26\"}},{\"scope\":\"string.quoted.single.basic.line.toml, string.quoted.single.literal.line.toml, punctuation.definition.keyValuePair.toml\",\"settings\":{\"foreground\":\"#8da101\"}},{\"scope\":\"constant.other.boolean.toml\",\"settings\":{\"foreground\":\"#3a94c5\"}},{\"scope\":\"entity.other.attribute-name.table.toml, punctuation.definition.table.toml, entity.other.attribute-name.table.array.toml, punctuation.definition.table.array.toml\",\"settings\":{\"foreground\":\"#df69ba\"}},{\"scope\":\"comment, string.comment, punctuation.definition.comment\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#939f91\"}}],\"type\":\"light\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/C8lEn-DE.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"QML Directory\",\"name\":\"qmldir\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#keywords\"},{\"include\":\"#version\"},{\"include\":\"#names\"}],\"repository\":{\"comment\":{\"patterns\":[{\"begin\":\"#\",\"end\":\"$\",\"name\":\"comment.line.number-sign.qmldir\"}]},\"file-name\":{\"patterns\":[{\"match\":\"\\\\\\\\b\\\\\\\\w+\\\\\\\\.(qmltypes|qml|js)\\\\\\\\b\",\"name\":\"string.unquoted.qmldir\"}]},\"identifier\":{\"patterns\":[{\"match\":\"\\\\\\\\b\\\\\\\\w+\\\\\\\\b\",\"name\":\"variable.parameter.qmldir\"}]},\"keywords\":{\"patterns\":[{\"match\":\"\\\\\\\\b(module|singleton|internal|plugin|classname|typeinfo|depends|designersupported)\\\\\\\\b\",\"name\":\"keyword.other.qmldir\"}]},\"module-name\":{\"patterns\":[{\"match\":\"\\\\\\\\b[A-Z]\\\\\\\\w*\\\\\\\\b\",\"name\":\"entity.name.type.qmldir\"}]},\"names\":{\"patterns\":[{\"include\":\"#file-name\"},{\"include\":\"#module-name\"},{\"include\":\"#identifier\"}]},\"version\":{\"patterns\":[{\"match\":\"\\\\\\\\b\\\\\\\\d+\\\\\\\\.\\\\\\\\d+\\\\\\\\b\",\"name\":\"constant.numeric.qml\"}]}},\"scopeName\":\"source.qmldir\"}')),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/C9L3yaDO.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"[\",close:\"]\"},{open:\"{\",close:\"}\"},{open:\"(\",close:\")\"},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]},{open:'\"',close:'\"',notIn:[\"string\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],folding:{markers:{start:new RegExp(\"^\\\\s*#pragma\\\\s+region\\\\b\"),end:new RegExp(\"^\\\\s*#pragma\\\\s+endregion\\\\b\")}}},n={defaultToken:\"\",tokenPostfix:\".cpp\",brackets:[{token:\"delimiter.curly\",open:\"{\",close:\"}\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"},{token:\"delimiter.square\",open:\"[\",close:\"]\"},{token:\"delimiter.angle\",open:\"<\",close:\">\"}],keywords:[\"abstract\",\"amp\",\"array\",\"auto\",\"bool\",\"break\",\"case\",\"catch\",\"char\",\"class\",\"const\",\"constexpr\",\"const_cast\",\"continue\",\"cpu\",\"decltype\",\"default\",\"delegate\",\"delete\",\"do\",\"double\",\"dynamic_cast\",\"each\",\"else\",\"enum\",\"event\",\"explicit\",\"export\",\"extern\",\"false\",\"final\",\"finally\",\"float\",\"for\",\"friend\",\"gcnew\",\"generic\",\"goto\",\"if\",\"in\",\"initonly\",\"inline\",\"int\",\"interface\",\"interior_ptr\",\"internal\",\"literal\",\"long\",\"mutable\",\"namespace\",\"new\",\"noexcept\",\"nullptr\",\"__nullptr\",\"operator\",\"override\",\"partial\",\"pascal\",\"pin_ptr\",\"private\",\"property\",\"protected\",\"public\",\"ref\",\"register\",\"reinterpret_cast\",\"restrict\",\"return\",\"safe_cast\",\"sealed\",\"short\",\"signed\",\"sizeof\",\"static\",\"static_assert\",\"static_cast\",\"struct\",\"switch\",\"template\",\"this\",\"thread_local\",\"throw\",\"tile_static\",\"true\",\"try\",\"typedef\",\"typeid\",\"typename\",\"union\",\"unsigned\",\"using\",\"virtual\",\"void\",\"volatile\",\"wchar_t\",\"where\",\"while\",\"_asm\",\"_based\",\"_cdecl\",\"_declspec\",\"_fastcall\",\"_if_exists\",\"_if_not_exists\",\"_inline\",\"_multiple_inheritance\",\"_pascal\",\"_single_inheritance\",\"_stdcall\",\"_virtual_inheritance\",\"_w64\",\"__abstract\",\"__alignof\",\"__asm\",\"__assume\",\"__based\",\"__box\",\"__builtin_alignof\",\"__cdecl\",\"__clrcall\",\"__declspec\",\"__delegate\",\"__event\",\"__except\",\"__fastcall\",\"__finally\",\"__forceinline\",\"__gc\",\"__hook\",\"__identifier\",\"__if_exists\",\"__if_not_exists\",\"__inline\",\"__int128\",\"__int16\",\"__int32\",\"__int64\",\"__int8\",\"__interface\",\"__leave\",\"__m128\",\"__m128d\",\"__m128i\",\"__m256\",\"__m256d\",\"__m256i\",\"__m512\",\"__m512d\",\"__m512i\",\"__m64\",\"__multiple_inheritance\",\"__newslot\",\"__nogc\",\"__noop\",\"__nounwind\",\"__novtordisp\",\"__pascal\",\"__pin\",\"__pragma\",\"__property\",\"__ptr32\",\"__ptr64\",\"__raise\",\"__restrict\",\"__resume\",\"__sealed\",\"__single_inheritance\",\"__stdcall\",\"__super\",\"__thiscall\",\"__try\",\"__try_cast\",\"__typeof\",\"__unaligned\",\"__unhook\",\"__uuidof\",\"__value\",\"__virtual_inheritance\",\"__w64\",\"__wchar_t\"],operators:[\"=\",\">\",\"<\",\"!\",\"~\",\"?\",\":\",\"==\",\"<=\",\">=\",\"!=\",\"&&\",\"||\",\"++\",\"--\",\"+\",\"-\",\"*\",\"/\",\"&\",\"|\",\"^\",\"%\",\"<<\",\">>\",\"+=\",\"-=\",\"*=\",\"/=\",\"&=\",\"|=\",\"^=\",\"%=\",\"<<=\",\">>=\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[0abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,integersuffix:/([uU](ll|LL|l|L)|(ll|LL|l|L)?[uU]?)/,floatsuffix:/[fFlL]?/,encoding:/u|u8|U|L/,tokenizer:{root:[[/@encoding?R\\\"(?:([^ ()\\\\\\t]*))\\(/,{token:\"string.raw.begin\",next:\"@raw.$1\"}],[/[a-zA-Z_]\\w*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],[/^\\s*#\\s*include/,{token:\"keyword.directive.include\",next:\"@include\"}],[/^\\s*#\\s*\\w+/,\"keyword.directive\"],{include:\"@whitespace\"},[/\\[\\s*\\[/,{token:\"annotation\",next:\"@annotation\"}],[/[{}()<>\\[\\]]/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/\\d*\\d+[eE]([\\-+]?\\d+)?(@floatsuffix)/,\"number.float\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?(@floatsuffix)/,\"number.float\"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,\"number.hex\"],[/0[0-7']*[0-7](@integersuffix)/,\"number.octal\"],[/0[bB][0-1']*[0-1](@integersuffix)/,\"number.binary\"],[/\\d[\\d']*\\d(@integersuffix)/,\"number\"],[/\\d(@integersuffix)/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",\"@string\"],[/'[^\\\\']'/,\"string\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",\"string\"]],[/'/,\"string.invalid\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\/\\*\\*(?!\\/)/,\"comment.doc\",\"@doccomment\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*\\\\$/,\"comment\",\"@linecomment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],linecomment:[[/.*[^\\\\]$/,\"comment\",\"@pop\"],[/[^]+/,\"comment\"]],doccomment:[[/[^\\/*]+/,\"comment.doc\"],[/\\*\\//,\"comment.doc\",\"@pop\"],[/[\\/*]/,\"comment.doc\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string\",\"@pop\"]],raw:[[/[^)]+/,\"string.raw\"],[/\\)$S2\\\"/,{token:\"string.raw.end\",next:\"@pop\"}],[/\\)/,\"string.raw\"]],annotation:[{include:\"@whitespace\"},[/using|alignas/,\"keyword\"],[/[a-zA-Z0-9_]+/,\"annotation\"],[/[,:]/,\"delimiter\"],[/[()]/,\"@brackets\"],[/\\]\\s*\\]/,{token:\"annotation\",next:\"@pop\"}]],include:[[/(\\s*)(<)([^<>]*)(>)/,[\"\",\"keyword.directive.include.begin\",\"string.include.identifier\",{token:\"keyword.directive.include.end\",next:\"@pop\"}]],[/(\\s*)(\")([^\"]*)(\")/,[\"\",\"keyword.directive.include.begin\",\"string.include.identifier\",{token:\"keyword.directive.include.end\",next:\"@pop\"}]]]}};export{e as conf,n as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/CAQ2eGtk.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"V\",\"fileTypes\":[\".v\",\".vh\",\".vsh\",\".vv\",\"v.mod\"],\"name\":\"v\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#function-decl\"},{\"include\":\"#as-is\"},{\"include\":\"#attributes\"},{\"include\":\"#assignment\"},{\"include\":\"#module-decl\"},{\"include\":\"#import-decl\"},{\"include\":\"#hash-decl\"},{\"include\":\"#brackets\"},{\"include\":\"#builtin-fix\"},{\"include\":\"#escaped-fix\"},{\"include\":\"#operators\"},{\"include\":\"#function-limited-overload-decl\"},{\"include\":\"#function-extend-decl\"},{\"include\":\"#function-exist\"},{\"include\":\"#generic\"},{\"include\":\"#constants\"},{\"include\":\"#type\"},{\"include\":\"#enum\"},{\"include\":\"#interface\"},{\"include\":\"#struct\"},{\"include\":\"#keywords\"},{\"include\":\"#storage\"},{\"include\":\"#numbers\"},{\"include\":\"#strings\"},{\"include\":\"#types\"},{\"include\":\"#punctuations\"},{\"include\":\"#variable-assign\"},{\"include\":\"#function-decl\"}],\"repository\":{\"as-is\":{\"begin\":\"\\\\\\\\s+(as|is)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.$1.v\"}},\"end\":\"([\\\\\\\\w.]*)\",\"endCaptures\":{\"1\":{\"name\":\"entity.name.alias.v\"}}},\"assignment\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#operators\"}]}},\"match\":\"\\\\\\\\s+((?:\\\\\\\\:|\\\\\\\\+|\\\\\\\\-|\\\\\\\\*|/|\\\\\\\\%|\\\\\\\\&|\\\\\\\\||\\\\\\\\^)?=)\\\\\\\\s+\",\"name\":\"meta.definition.variable.v\"},\"attributes\":{\"captures\":{\"1\":{\"name\":\"meta.function.attribute.v\"},\"2\":{\"name\":\"punctuation.definition.begin.bracket.square.v\"},\"3\":{\"name\":\"storage.modifier.attribute.v\"},\"4\":{\"name\":\"punctuation.definition.end.bracket.square.v\"}},\"match\":\"^\\\\\\\\s*((\\\\\\\\[)(deprecated|unsafe|console|heap|manualfree|typedef|live|inline|flag|ref_only|direct_array_access|callconv)(\\\\\\\\]))\",\"name\":\"meta.definition.attribute.v\"},\"brackets\":{\"patterns\":[{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.bracket.curly.begin.v\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.bracket.curly.end.v\"}},\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.bracket.round.begin.v\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.bracket.round.end.v\"}},\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.bracket.square.begin.v\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.bracket.square.end.v\"}},\"patterns\":[{\"include\":\"$self\"}]}]},\"builtin-fix\":{\"patterns\":[{\"patterns\":[{\"match\":\"(const)(?=\\\\\\\\s*\\\\\\\\()\",\"name\":\"storage.modifier.v\"},{\"match\":\"\\\\\\\\b(fn|type|enum|struct|union|interface|map|assert|sizeof|typeof|__offsetof)\\\\\\\\b(?=\\\\\\\\s*\\\\\\\\()\",\"name\":\"keyword.$1.v\"}]},{\"patterns\":[{\"match\":\"(\\\\\\\\$if|\\\\\\\\$else)(?=\\\\\\\\s*\\\\\\\\()\",\"name\":\"keyword.control.v\"},{\"match\":\"\\\\\\\\b(as|in|is|or|break|continue|default|unsafe|match|if|else|for|go|spawn|goto|defer|return|shared|select|rlock|lock|atomic|asm)\\\\\\\\b(?=\\\\\\\\s*\\\\\\\\()\",\"name\":\"keyword.control.v\"}]},{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.numeric.v\"}},\"match\":\"(?<!.)(i?(?:8|16|nt|64|128)|u?(?:16|32|64|128)|f?(?:32|64))(?=\\\\\\\\s*\\\\\\\\()\",\"name\":\"meta.expr.numeric.cast.v\"},{\"captures\":{\"1\":{\"name\":\"storage.type.$1.v\"}},\"match\":\"(bool|byte|byteptr|charptr|voidptr|string|rune|size_t|[ui]size)(?=\\\\\\\\s*\\\\\\\\()\",\"name\":\"meta.expr.bool.cast.v\"}]}]},\"comments\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.v\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.v\"}},\"name\":\"comment.block.documentation.v\",\"patterns\":[{\"include\":\"#comments\"}]},{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.v\"}},\"end\":\"$\",\"name\":\"comment.line.double-slash.v\"}]},\"constants\":{\"match\":\"\\\\\\\\b(true|false|none)\\\\\\\\b\",\"name\":\"constant.language.v\"},\"enum\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.$1.v\"},\"2\":{\"name\":\"storage.type.enum.v\"},\"3\":{\"name\":\"entity.name.enum.v\"}},\"match\":\"^\\\\\\\\s*(?:(pub)?\\\\\\\\s+)?(enum)\\\\\\\\s+(?:\\\\\\\\w+\\\\\\\\.)?(\\\\\\\\w*)\",\"name\":\"meta.definition.enum.v\"},\"function-decl\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.v\"},\"2\":{\"name\":\"keyword.fn.v\"},\"3\":{\"name\":\"entity.name.function.v\"},\"4\":{\"patterns\":[{\"include\":\"#generic\"}]}},\"match\":\"^(\\\\\\\\bpub\\\\\\\\b\\\\\\\\s+)?(\\\\\\\\bfn\\\\\\\\b)\\\\\\\\s+(?:\\\\\\\\([^\\\\\\\\)]+\\\\\\\\)\\\\\\\\s+)?(?:(?:C\\\\\\\\.)?)(\\\\\\\\w+)\\\\\\\\s*((?<=[\\\\\\\\w\\\\\\\\s+])(\\\\\\\\<)(\\\\\\\\w+)(\\\\\\\\>))?\",\"name\":\"meta.definition.function.v\"},\"function-exist\":{\"captures\":{\"0\":{\"name\":\"meta.function.call.v\"},\"1\":{\"patterns\":[{\"include\":\"#illegal-name\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.function.v\"}]},\"2\":{\"patterns\":[{\"include\":\"#generic\"}]}},\"match\":\"(\\\\\\\\w+)((?<=[\\\\\\\\w\\\\\\\\s+])(\\\\\\\\<)(\\\\\\\\w+)(\\\\\\\\>))?(?=\\\\\\\\s*\\\\\\\\()\",\"name\":\"meta.support.function.v\"},\"function-extend-decl\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.v\"},\"2\":{\"name\":\"keyword.fn.v\"},\"3\":{\"name\":\"punctuation.definition.bracket.round.begin.v\"},\"4\":{\"patterns\":[{\"include\":\"#brackets\"},{\"include\":\"#storage\"},{\"include\":\"#generic\"},{\"include\":\"#types\"},{\"include\":\"#punctuation\"}]},\"5\":{\"name\":\"punctuation.definition.bracket.round.end.v\"},\"6\":{\"patterns\":[{\"include\":\"#illegal-name\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.function.v\"}]},\"7\":{\"patterns\":[{\"include\":\"#generic\"}]}},\"match\":\"^\\\\\\\\s*(pub)?\\\\\\\\s*(fn)\\\\\\\\s*(\\\\\\\\()([^\\\\\\\\)]*)(\\\\\\\\))\\\\\\\\s*(?:(?:C\\\\\\\\.)?)(\\\\\\\\w+)\\\\\\\\s*((?<=[\\\\\\\\w\\\\\\\\s+])(\\\\\\\\<)(\\\\\\\\w+)(\\\\\\\\>))?\",\"name\":\"meta.definition.function.v\"},\"function-limited-overload-decl\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.v\"},\"2\":{\"name\":\"keyword.fn.v\"},\"3\":{\"name\":\"punctuation.definition.bracket.round.begin.v\"},\"4\":{\"patterns\":[{\"include\":\"#brackets\"},{\"include\":\"#storage\"},{\"include\":\"#generic\"},{\"include\":\"#types\"},{\"include\":\"#punctuation\"}]},\"5\":{\"name\":\"punctuation.definition.bracket.round.end.v\"},\"6\":{\"patterns\":[{\"include\":\"#operators\"}]},\"7\":{\"name\":\"punctuation.definition.bracket.round.begin.v\"},\"8\":{\"patterns\":[{\"include\":\"#brackets\"},{\"include\":\"#storage\"},{\"include\":\"#generic\"},{\"include\":\"#types\"},{\"include\":\"#punctuation\"}]},\"9\":{\"name\":\"punctuation.definition.bracket.round.end.v\"},\"10\":{\"patterns\":[{\"include\":\"#illegal-name\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.function.v\"}]}},\"match\":\"^\\\\\\\\s*(pub)?\\\\\\\\s*(fn)\\\\\\\\s*(\\\\\\\\()([^\\\\\\\\)]*)(\\\\\\\\))\\\\\\\\s*([\\\\\\\\+\\\\\\\\-\\\\\\\\*\\\\\\\\/])?\\\\\\\\s*(\\\\\\\\()([^\\\\\\\\)]*)(\\\\\\\\))\\\\\\\\s*(?:(?:C\\\\\\\\.)?)(\\\\\\\\w+)\",\"name\":\"meta.definition.function.v\"},\"generic\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.bracket.angle.begin.v\"},\"2\":{\"patterns\":[{\"include\":\"#illegal-name\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.generic.v\"}]},\"3\":{\"name\":\"punctuation.definition.bracket.angle.end.v\"}},\"match\":\"(?<=[\\\\\\\\w\\\\\\\\s+])(\\\\\\\\<)(\\\\\\\\w+)(\\\\\\\\>)\",\"name\":\"meta.definition.generic.v\"}]},\"hash-decl\":{\"begin\":\"^\\\\\\\\s*(#)\",\"end\":\"$\",\"name\":\"markup.bold.v\"},\"illegal-name\":{\"match\":\"\\\\\\\\d\\\\\\\\w+\",\"name\":\"invalid.illegal.v\"},\"import-decl\":{\"begin\":\"^\\\\\\\\s*(import)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.import.v\"}},\"end\":\"([\\\\\\\\w.]+)\",\"endCaptures\":{\"1\":{\"name\":\"entity.name.import.v\"}},\"name\":\"meta.import.v\"},\"interface\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.$1.v\"},\"2\":{\"name\":\"keyword.interface.v\"},\"3\":{\"patterns\":[{\"include\":\"#illegal-name\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.interface.v\"}]}},\"match\":\"^\\\\\\\\s*(?:(pub)?\\\\\\\\s+)?(interface)\\\\\\\\s+(\\\\\\\\w*)\",\"name\":\"meta.definition.interface.v\"},\"keywords\":{\"patterns\":[{\"match\":\"(\\\\\\\\$if|\\\\\\\\$else)\",\"name\":\"keyword.control.v\"},{\"match\":\"(?<!@)\\\\\\\\b(as|it|is|in|or|break|continue|default|unsafe|match|if|else|for|go|spawn|goto|defer|return|shared|select|rlock|lock|atomic|asm)\\\\\\\\b\",\"name\":\"keyword.control.v\"},{\"match\":\"(?<!@)\\\\\\\\b(fn|type|typeof|enum|struct|interface|map|assert|sizeof|__offsetof)\\\\\\\\b\",\"name\":\"keyword.$1.v\"}]},\"module-decl\":{\"begin\":\"^\\\\\\\\s*(module)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.module.v\"}},\"end\":\"([\\\\\\\\w.]+)\",\"endCaptures\":{\"1\":{\"name\":\"entity.name.module.v\"}},\"name\":\"meta.module.v\"},\"numbers\":{\"patterns\":[{\"match\":\"([0-9]+(_?))+(\\\\\\\\.)([0-9]+[eE][-+]?[0-9]+)\",\"name\":\"constant.numeric.exponential.v\"},{\"match\":\"([0-9]+(_?))+(\\\\\\\\.)([0-9]+)\",\"name\":\"constant.numeric.float.v\"},{\"match\":\"(?:0b)(?:(?:[0-1]+)(?:_?))+\",\"name\":\"constant.numeric.binary.v\"},{\"match\":\"(?:0o)(?:(?:[0-7]+)(?:_?))+\",\"name\":\"constant.numeric.octal.v\"},{\"match\":\"(?:0x)(?:(?:[0-9a-fA-F]+)(?:_?))+\",\"name\":\"constant.numeric.hex.v\"},{\"match\":\"(?:(?:[0-9]+)(?:[_]?))+\",\"name\":\"constant.numeric.integer.v\"}]},\"operators\":{\"patterns\":[{\"match\":\"(\\\\\\\\+|\\\\\\\\-|\\\\\\\\*|\\\\\\\\/|\\\\\\\\%|\\\\\\\\+\\\\\\\\+|\\\\\\\\-\\\\\\\\-|\\\\\\\\>\\\\\\\\>|\\\\\\\\<\\\\\\\\<)\",\"name\":\"keyword.operator.arithmetic.v\"},{\"match\":\"(\\\\\\\\=\\\\\\\\=|\\\\\\\\!\\\\\\\\=|\\\\\\\\>|\\\\\\\\<|\\\\\\\\>\\\\\\\\=|\\\\\\\\<\\\\\\\\=)\",\"name\":\"keyword.operator.relation.v\"},{\"match\":\"(\\\\\\\\:\\\\\\\\=|\\\\\\\\=|\\\\\\\\+\\\\\\\\=|\\\\\\\\-\\\\\\\\=|\\\\\\\\*\\\\\\\\=|\\\\\\\\/\\\\\\\\=|\\\\\\\\%\\\\\\\\=|\\\\\\\\&\\\\\\\\=|\\\\\\\\|\\\\\\\\=|\\\\\\\\^\\\\\\\\=|\\\\\\\\~\\\\\\\\=|\\\\\\\\&\\\\\\\\&\\\\\\\\=|\\\\\\\\|\\\\\\\\|\\\\\\\\=|\\\\\\\\>\\\\\\\\>\\\\\\\\=|\\\\\\\\<\\\\\\\\<\\\\\\\\=)\",\"name\":\"keyword.operator.assignment.v\"},{\"match\":\"(\\\\\\\\&|\\\\\\\\||\\\\\\\\^|\\\\\\\\~|<(?!<)|>(?!>))\",\"name\":\"keyword.operator.bitwise.v\"},{\"match\":\"(\\\\\\\\&\\\\\\\\&|\\\\\\\\|\\\\\\\\||\\\\\\\\!)\",\"name\":\"keyword.operator.logical.v\"},{\"match\":\"\\\\\\\\?\",\"name\":\"keyword.operator.optional.v\"}]},\"punctuation\":{\"patterns\":[{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.delimiter.period.dot.v\"},{\"match\":\",\",\"name\":\"punctuation.delimiter.comma.v\"},{\"match\":\":\",\"name\":\"punctuation.separator.key-value.colon.v\"},{\"match\":\";\",\"name\":\"punctuation.definition.other.semicolon.v\"},{\"match\":\"\\\\\\\\?\",\"name\":\"punctuation.definition.other.questionmark.v\"},{\"match\":\"#\",\"name\":\"punctuation.hash.v\"}]},\"punctuations\":{\"patterns\":[{\"match\":\"(?:\\\\\\\\.)\",\"name\":\"punctuation.accessor.v\"},{\"match\":\"(?:,)\",\"name\":\"punctuation.separator.comma.v\"}]},\"storage\":{\"match\":\"\\\\\\\\b(const|mut|pub)\\\\\\\\b\",\"name\":\"storage.modifier.v\"},\"string-escaped-char\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\([0-7]{3}|[\\\\\\\\$abfnrtv\\\\\\\\\\\\\\\\'\\\\\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})\",\"name\":\"constant.character.escape.v\"},{\"match\":\"\\\\\\\\\\\\\\\\[^0-7\\\\\\\\$xuUabfnrtv\\\\\\\\'\\\\\"]\",\"name\":\"invalid.illegal.unknown-escape.v\"}]},\"string-interpolation\":{\"captures\":{\"1\":{\"patterns\":[{\"match\":\"\\\\\\\\$\\\\\\\\d[\\\\\\\\.\\\\\\\\w]+\",\"name\":\"invalid.illegal.v\"},{\"match\":\"\\\\\\\\$([\\\\\\\\.\\\\\\\\w]+|\\\\\\\\{.*?\\\\\\\\})\",\"name\":\"variable.other.interpolated.v\"}]}},\"match\":\"(\\\\\\\\$([\\\\\\\\w.]+|\\\\\\\\{.*?\\\\\\\\}))\",\"name\":\"meta.string.interpolation.v\"},\"string-placeholder\":{\"match\":\"%(\\\\\\\\[\\\\\\\\d+\\\\\\\\])?([\\\\\\\\+#\\\\\\\\-0\\\\\\\\x20]{,2}((\\\\\\\\d+|\\\\\\\\*)?(\\\\\\\\.?(\\\\\\\\d+|\\\\\\\\*|(\\\\\\\\[\\\\\\\\d+\\\\\\\\])\\\\\\\\*?)?(\\\\\\\\[\\\\\\\\d+\\\\\\\\])?)?))?[vT%tbcdoqxXUbeEfFgGsp]\",\"name\":\"constant.other.placeholder.v\"},\"strings\":{\"patterns\":[{\"begin\":\"\\`\",\"end\":\"\\`\",\"name\":\"string.quoted.rune.v\",\"patterns\":[{\"include\":\"#string-escaped-char\"},{\"include\":\"#string-interpolation\"},{\"include\":\"#string-placeholder\"}]},{\"begin\":\"(r)'\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.v\"}},\"end\":\"'\",\"name\":\"string.quoted.raw.v\",\"patterns\":[{\"include\":\"#string-interpolation\"},{\"include\":\"#string-placeholder\"}]},{\"begin\":\"(r)\\\\\"\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.v\"}},\"end\":\"\\\\\"\",\"name\":\"string.quoted.raw.v\",\"patterns\":[{\"include\":\"#string-interpolation\"},{\"include\":\"#string-placeholder\"}]},{\"begin\":\"(c?)'\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.v\"}},\"end\":\"'\",\"name\":\"string.quoted.v\",\"patterns\":[{\"include\":\"#string-escaped-char\"},{\"include\":\"#string-interpolation\"},{\"include\":\"#string-placeholder\"}]},{\"begin\":\"(c?)\\\\\"\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.v\"}},\"end\":\"\\\\\"\",\"name\":\"string.quoted.v\",\"patterns\":[{\"include\":\"#string-escaped-char\"},{\"include\":\"#string-interpolation\"},{\"include\":\"#string-placeholder\"}]}]},\"struct\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*(?:(mut|pub(?:\\\\\\\\s+mut)?|__global)\\\\\\\\s+)?(struct|union)\\\\\\\\s+([\\\\\\\\w.]+)\\\\\\\\s*|({)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.$1.v\"},\"2\":{\"name\":\"storage.type.struct.v\"},\"3\":{\"name\":\"entity.name.type.v\"},\"4\":{\"name\":\"punctuation.definition.bracket.curly.begin.v\"}},\"end\":\"\\\\\\\\s*|(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.bracket.curly.end.v\"}},\"name\":\"meta.definition.struct.v\",\"patterns\":[{\"include\":\"#struct-access-modifier\"},{\"captures\":{\"1\":{\"name\":\"variable.other.property.v\"},\"2\":{\"patterns\":[{\"include\":\"#numbers\"},{\"include\":\"#brackets\"},{\"include\":\"#types\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"storage.type.other.v\"}]},\"3\":{\"name\":\"keyword.operator.assignment.v\"},\"4\":{\"patterns\":[{\"include\":\"$self\"}]}},\"match\":\"\\\\\\\\b(\\\\\\\\w+)\\\\\\\\s+([\\\\\\\\w\\\\\\\\[\\\\\\\\]\\\\\\\\*&.]+)(?:\\\\\\\\s*(=)\\\\\\\\s*((?:.(?=$|//|/\\\\\\\\*))*+))?\"},{\"include\":\"#types\"},{\"include\":\"$self\"}]},{\"captures\":{\"1\":{\"name\":\"storage.modifier.$1.v\"},\"2\":{\"name\":\"storage.type.struct.v\"},\"3\":{\"name\":\"entity.name.struct.v\"}},\"match\":\"^\\\\\\\\s*(?:(mut|pub(?:\\\\\\\\s+mut)?|__global))\\\\\\\\s+?(struct)\\\\\\\\s+(?:\\\\\\\\s+([\\\\\\\\w.]+))?\",\"name\":\"meta.definition.struct.v\"}]},\"struct-access-modifier\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.$1.v\"},\"2\":{\"name\":\"punctuation.separator.struct.key-value.v\"}},\"match\":\"(?<=\\\\\\\\s|^)(mut|pub(?:\\\\\\\\s+mut)?|__global)(:|\\\\\\\\b)\"},\"type\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.$1.v\"},\"2\":{\"name\":\"storage.type.type.v\"},\"3\":{\"patterns\":[{\"include\":\"#illegal-name\"},{\"include\":\"#types\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.type.v\"}]},\"4\":{\"patterns\":[{\"include\":\"#illegal-name\"},{\"include\":\"#types\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.type.v\"}]}},\"match\":\"^\\\\\\\\s*(?:(pub)?\\\\\\\\s+)?(type)\\\\\\\\s+(\\\\\\\\w*)\\\\\\\\s+(?:\\\\\\\\w+\\\\\\\\.+)?(\\\\\\\\w*)\",\"name\":\"meta.definition.type.v\"},\"types\":{\"patterns\":[{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(i(8|16|nt|64|128)|u(8|16|32|64|128)|f(32|64))\\\\\\\\b\",\"name\":\"storage.type.numeric.v\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(bool|byte|byteptr|charptr|voidptr|string|ustring|rune)\\\\\\\\b\",\"name\":\"storage.type.$1.v\"}]},\"variable-assign\":{\"captures\":{\"0\":{\"patterns\":[{\"match\":\"[a-zA-Z_]\\\\\\\\w*\",\"name\":\"variable.other.assignment.v\"},{\"include\":\"#punctuation\"}]}},\"match\":\"[a-zA-Z_]\\\\\\\\w*(?:,\\\\\\\\s*[a-zA-Z_]\\\\\\\\w*)*(?=\\\\\\\\s*(?:=|:=))\"}},\"scopeName\":\"source.v\"}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CB0Krxn9.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"WGSL\",\"name\":\"wgsl\",\"patterns\":[{\"include\":\"#line_comments\"},{\"include\":\"#block_comments\"},{\"include\":\"#keywords\"},{\"include\":\"#attributes\"},{\"include\":\"#functions\"},{\"include\":\"#function_calls\"},{\"include\":\"#constants\"},{\"include\":\"#types\"},{\"include\":\"#variables\"},{\"include\":\"#punctuation\"}],\"repository\":{\"attributes\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.attribute.at\"},\"2\":{\"name\":\"entity.name.attribute.wgsl\"}},\"comment\":\"attribute declaration\",\"match\":\"(@)([A-Za-z_]+)\",\"name\":\"meta.attribute.wgsl\"}]},\"block_comments\":{\"patterns\":[{\"comment\":\"empty block comments\",\"match\":\"/\\\\\\\\*\\\\\\\\*/\",\"name\":\"comment.block.wgsl\"},{\"begin\":\"/\\\\\\\\*\\\\\\\\*\",\"comment\":\"block documentation comments\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.documentation.wgsl\",\"patterns\":[{\"include\":\"#block_comments\"}]},{\"begin\":\"/\\\\\\\\*(?!\\\\\\\\*)\",\"comment\":\"block comments\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.wgsl\",\"patterns\":[{\"include\":\"#block_comments\"}]}]},\"constants\":{\"patterns\":[{\"comment\":\"decimal float literal\",\"match\":\"(-?\\\\\\\\b[0-9][0-9]*\\\\\\\\.[0-9][0-9]*)([eE][+-]?[0-9]+)?\\\\\\\\b\",\"name\":\"constant.numeric.float.wgsl\"},{\"comment\":\"int literal\",\"match\":\"-?\\\\\\\\b0x[0-9a-fA-F]+\\\\\\\\b|\\\\\\\\b0\\\\\\\\b|-?\\\\\\\\b[1-9][0-9]*\\\\\\\\b\",\"name\":\"constant.numeric.decimal.wgsl\"},{\"comment\":\"uint literal\",\"match\":\"\\\\\\\\b0x[0-9a-fA-F]+u\\\\\\\\b|\\\\\\\\b0u\\\\\\\\b|\\\\\\\\b[1-9][0-9]*u\\\\\\\\b\",\"name\":\"constant.numeric.decimal.wgsl\"},{\"comment\":\"boolean constant\",\"match\":\"\\\\\\\\b(true|false)\\\\\\\\b\",\"name\":\"constant.language.boolean.wgsl\"}]},\"function_calls\":{\"patterns\":[{\"begin\":\"([A-Za-z0-9_]+)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.wgsl\"},\"2\":{\"name\":\"punctuation.brackets.round.wgsl\"}},\"comment\":\"function/method calls\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.brackets.round.wgsl\"}},\"name\":\"meta.function.call.wgsl\",\"patterns\":[{\"include\":\"#line_comments\"},{\"include\":\"#block_comments\"},{\"include\":\"#keywords\"},{\"include\":\"#attributes\"},{\"include\":\"#function_calls\"},{\"include\":\"#constants\"},{\"include\":\"#types\"},{\"include\":\"#variables\"},{\"include\":\"#punctuation\"}]}]},\"functions\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(fn)\\\\\\\\s+([A-Za-z0-9_]+)((\\\\\\\\()|(<))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.fn.wgsl\"},\"2\":{\"name\":\"entity.name.function.wgsl\"},\"4\":{\"name\":\"punctuation.brackets.round.wgsl\"}},\"comment\":\"function definition\",\"end\":\"\\\\\\\\{\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.brackets.curly.wgsl\"}},\"name\":\"meta.function.definition.wgsl\",\"patterns\":[{\"include\":\"#line_comments\"},{\"include\":\"#block_comments\"},{\"include\":\"#keywords\"},{\"include\":\"#attributes\"},{\"include\":\"#function_calls\"},{\"include\":\"#constants\"},{\"include\":\"#types\"},{\"include\":\"#variables\"},{\"include\":\"#punctuation\"}]}]},\"keywords\":{\"patterns\":[{\"comment\":\"other keywords\",\"match\":\"\\\\\\\\b(bitcast|block|break|case|continue|continuing|default|discard|else|elseif|enable|fallthrough|for|function|if|loop|private|read|read_write|return|storage|switch|uniform|while|workgroup|write)\\\\\\\\b\",\"name\":\"keyword.control.wgsl\"},{\"comment\":\"reserved keywords\",\"match\":\"\\\\\\\\b(asm|const|do|enum|handle|mat|premerge|regardless|typedef|unless|using|vec|void)\\\\\\\\b\",\"name\":\"keyword.control.wgsl\"},{\"comment\":\"storage keywords\",\"match\":\"\\\\\\\\b(let|var)\\\\\\\\b\",\"name\":\"keyword.other.wgsl storage.type.wgsl\"},{\"comment\":\"type keyword\",\"match\":\"\\\\\\\\b(type)\\\\\\\\b\",\"name\":\"keyword.declaration.type.wgsl storage.type.wgsl\"},{\"comment\":\"enum keyword\",\"match\":\"\\\\\\\\b(enum)\\\\\\\\b\",\"name\":\"keyword.declaration.enum.wgsl storage.type.wgsl\"},{\"comment\":\"struct keyword\",\"match\":\"\\\\\\\\b(struct)\\\\\\\\b\",\"name\":\"keyword.declaration.struct.wgsl storage.type.wgsl\"},{\"comment\":\"fn\",\"match\":\"\\\\\\\\bfn\\\\\\\\b\",\"name\":\"keyword.other.fn.wgsl\"},{\"comment\":\"logical operators\",\"match\":\"(\\\\\\\\^|\\\\\\\\||\\\\\\\\|\\\\\\\\||&&|<<|>>|!)(?!=)\",\"name\":\"keyword.operator.logical.wgsl\"},{\"comment\":\"logical AND, borrow references\",\"match\":\"&(?![&=])\",\"name\":\"keyword.operator.borrow.and.wgsl\"},{\"comment\":\"assignment operators\",\"match\":\"(\\\\\\\\+=|-=|\\\\\\\\*=|/=|%=|\\\\\\\\^=|&=|\\\\\\\\|=|<<=|>>=)\",\"name\":\"keyword.operator.assignment.wgsl\"},{\"comment\":\"single equal\",\"match\":\"(?<![<>])=(?!=|>)\",\"name\":\"keyword.operator.assignment.equal.wgsl\"},{\"comment\":\"comparison operators\",\"match\":\"(=(=)?(?!>)|!=|<=|(?<!=)>=)\",\"name\":\"keyword.operator.comparison.wgsl\"},{\"comment\":\"math operators\",\"match\":\"(([+%]|(\\\\\\\\*(?!\\\\\\\\w)))(?!=))|(-(?!>))|(/(?!/))\",\"name\":\"keyword.operator.math.wgsl\"},{\"comment\":\"dot access\",\"match\":\"\\\\\\\\.(?!\\\\\\\\.)\",\"name\":\"keyword.operator.access.dot.wgsl\"},{\"comment\":\"dashrocket, skinny arrow\",\"match\":\"->\",\"name\":\"keyword.operator.arrow.skinny.wgsl\"}]},\"line_comments\":{\"comment\":\"single line comment\",\"match\":\"\\\\\\\\s*//.*\",\"name\":\"comment.line.double-slash.wgsl\"},\"punctuation\":{\"patterns\":[{\"comment\":\"comma\",\"match\":\",\",\"name\":\"punctuation.comma.wgsl\"},{\"comment\":\"curly braces\",\"match\":\"[{}]\",\"name\":\"punctuation.brackets.curly.wgsl\"},{\"comment\":\"parentheses, round brackets\",\"match\":\"[()]\",\"name\":\"punctuation.brackets.round.wgsl\"},{\"comment\":\"semicolon\",\"match\":\";\",\"name\":\"punctuation.semi.wgsl\"},{\"comment\":\"square brackets\",\"match\":\"[\\\\\\\\[\\\\\\\\]]\",\"name\":\"punctuation.brackets.square.wgsl\"},{\"comment\":\"angle brackets\",\"match\":\"(?<![=-])[<>]\",\"name\":\"punctuation.brackets.angle.wgsl\"}]},\"types\":{\"comment\":\"types\",\"name\":\"storage.type.wgsl\",\"patterns\":[{\"comment\":\"scalar Types\",\"match\":\"\\\\\\\\b(bool|i32|u32|f32)\\\\\\\\b\",\"name\":\"storage.type.wgsl\"},{\"comment\":\"reserved scalar Types\",\"match\":\"\\\\\\\\b(i64|u64|f64)\\\\\\\\b\",\"name\":\"storage.type.wgsl\"},{\"comment\":\"vector type aliasses\",\"match\":\"\\\\\\\\b(vec2i|vec3i|vec4i|vec2u|vec3u|vec4u|vec2f|vec3f|vec4f|vec2h|vec3h|vec4h)\\\\\\\\b\",\"name\":\"storage.type.wgsl\"},{\"comment\":\"matrix type aliasses\",\"match\":\"\\\\\\\\b(mat2x2f|mat2x3f|mat2x4f|mat3x2f|mat3x3f|mat3x4f|mat4x2f|mat4x3f|mat4x4f|mat2x2h|mat2x3h|mat2x4h|mat3x2h|mat3x3h|mat3x4h|mat4x2h|mat4x3h|mat4x4h)\\\\\\\\b\",\"name\":\"storage.type.wgsl\"},{\"comment\":\"vector/matrix types\",\"match\":\"\\\\\\\\b(vec[2-4]|mat[2-4]x[2-4])\\\\\\\\b\",\"name\":\"storage.type.wgsl\"},{\"comment\":\"atomic types\",\"match\":\"\\\\\\\\b(atomic)\\\\\\\\b\",\"name\":\"storage.type.wgsl\"},{\"comment\":\"array types\",\"match\":\"\\\\\\\\b(array)\\\\\\\\b\",\"name\":\"storage.type.wgsl\"},{\"comment\":\"Custom type\",\"match\":\"\\\\\\\\b([A-Z][A-Za-z0-9]*)\\\\\\\\b\",\"name\":\"entity.name.type.wgsl\"}]},\"variables\":{\"patterns\":[{\"comment\":\"variables\",\"match\":\"\\\\\\\\b(?<!(?<!\\\\\\\\.)\\\\\\\\.)(?:r#(?!(crate|[Ss]elf|super)))?[a-z0-9_]+\\\\\\\\b\",\"name\":\"variable.other.wgsl\"}]}},\"scopeName\":\"source.wgsl\"}')),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CB2ApiWb.js",
    "content": "const n=Object.freeze(JSON.parse(`{\"displayName\":\"TOML\",\"fileTypes\":[\"toml\"],\"name\":\"toml\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#groups\"},{\"include\":\"#key_pair\"},{\"include\":\"#invalid\"}],\"repository\":{\"comments\":{\"begin\":\"(^[ \\\\\\\\t]+)?(?=#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.toml\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.toml\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.number-sign.toml\"}]},\"groups\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.section.begin.toml\"},\"2\":{\"patterns\":[{\"match\":\"[^\\\\\\\\s.]+\",\"name\":\"entity.name.section.toml\"}]},\"3\":{\"name\":\"punctuation.definition.section.begin.toml\"}},\"match\":\"^\\\\\\\\s*(\\\\\\\\[)([^\\\\\\\\[\\\\\\\\]]*)(\\\\\\\\])\",\"name\":\"meta.group.toml\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.section.begin.toml\"},\"2\":{\"patterns\":[{\"match\":\"[^\\\\\\\\s.]+\",\"name\":\"entity.name.section.toml\"}]},\"3\":{\"name\":\"punctuation.definition.section.begin.toml\"}},\"match\":\"^\\\\\\\\s*(\\\\\\\\[\\\\\\\\[)([^\\\\\\\\[\\\\\\\\]]*)(\\\\\\\\]\\\\\\\\])\",\"name\":\"meta.group.double.toml\"}]},\"invalid\":{\"match\":\"\\\\\\\\S+(\\\\\\\\s*(?=\\\\\\\\S))?\",\"name\":\"invalid.illegal.not-allowed-here.toml\"},\"key_pair\":{\"patterns\":[{\"begin\":\"([A-Za-z0-9_-]+)\\\\\\\\s*(=)\\\\\\\\s*\",\"captures\":{\"1\":{\"name\":\"variable.other.key.toml\"},\"2\":{\"name\":\"punctuation.separator.key-value.toml\"}},\"end\":\"(?<=\\\\\\\\S)(?<!=)|$\",\"patterns\":[{\"include\":\"#primatives\"}]},{\"begin\":\"((\\\\\")(.*?)(\\\\\"))\\\\\\\\s*(=)\\\\\\\\s*\",\"captures\":{\"1\":{\"name\":\"variable.other.key.toml\"},\"2\":{\"name\":\"punctuation.definition.variable.begin.toml\"},\"3\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\([btnfr\\\\\"\\\\\\\\\\\\\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})\",\"name\":\"constant.character.escape.toml\"},{\"match\":\"\\\\\\\\\\\\\\\\[^btnfr\\\\\"\\\\\\\\\\\\\\\\]\",\"name\":\"invalid.illegal.escape.toml\"},{\"match\":\"\\\\\"\",\"name\":\"invalid.illegal.not-allowed-here.toml\"}]},\"4\":{\"name\":\"punctuation.definition.variable.end.toml\"},\"5\":{\"name\":\"punctuation.separator.key-value.toml\"}},\"end\":\"(?<=\\\\\\\\S)(?<!=)|$\",\"patterns\":[{\"include\":\"#primatives\"}]},{\"begin\":\"((')([^']*)('))\\\\\\\\s*(=)\\\\\\\\s*\",\"captures\":{\"1\":{\"name\":\"variable.other.key.toml\"},\"2\":{\"name\":\"punctuation.definition.variable.begin.toml\"},\"4\":{\"name\":\"punctuation.definition.variable.end.toml\"},\"5\":{\"name\":\"punctuation.separator.key-value.toml\"}},\"end\":\"(?<=\\\\\\\\S)(?<!=)|$\",\"patterns\":[{\"include\":\"#primatives\"}]},{\"begin\":\"(((?:[A-Za-z0-9_-]+|\\\\\"(?:[^\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\"|'[^']*')(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*|(?=\\\\\\\\s*=))){2,})\\\\\\\\s*(=)\\\\\\\\s*\",\"captures\":{\"1\":{\"name\":\"variable.other.key.toml\",\"patterns\":[{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.separator.variable.toml\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.begin.toml\"},\"2\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\([btnfr\\\\\"\\\\\\\\\\\\\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})\",\"name\":\"constant.character.escape.toml\"},{\"match\":\"\\\\\\\\\\\\\\\\[^btnfr\\\\\"\\\\\\\\\\\\\\\\]\",\"name\":\"invalid.illegal.escape.toml\"}]},\"3\":{\"name\":\"punctuation.definition.variable.end.toml\"}},\"match\":\"(\\\\\")((?:[^\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*)(\\\\\")\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.begin.toml\"},\"2\":{\"name\":\"punctuation.definition.variable.end.toml\"}},\"match\":\"(')[^']*(')\"}]},\"3\":{\"name\":\"punctuation.separator.key-value.toml\"}},\"comment\":\"Dotted key\",\"end\":\"(?<=\\\\\\\\S)(?<!=)|$\",\"patterns\":[{\"include\":\"#primatives\"}]}]},\"primatives\":{\"patterns\":[{\"begin\":\"\\\\\\\\G\\\\\"\\\\\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.toml\"}},\"end\":\"\\\\\"{3,5}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.toml\"}},\"name\":\"string.quoted.triple.double.toml\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\([btnfr\\\\\"\\\\\\\\\\\\\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})\",\"name\":\"constant.character.escape.toml\"},{\"match\":\"\\\\\\\\\\\\\\\\[^btnfr\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\n]\",\"name\":\"invalid.illegal.escape.toml\"}]},{\"begin\":\"\\\\\\\\G\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.toml\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.toml\"}},\"name\":\"string.quoted.double.toml\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\([btnfr\\\\\"\\\\\\\\\\\\\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})\",\"name\":\"constant.character.escape.toml\"},{\"match\":\"\\\\\\\\\\\\\\\\[^btnfr\\\\\"\\\\\\\\\\\\\\\\]\",\"name\":\"invalid.illegal.escape.toml\"}]},{\"begin\":\"\\\\\\\\G'''\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.toml\"}},\"end\":\"'{3,5}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.toml\"}},\"name\":\"string.quoted.triple.single.toml\"},{\"begin\":\"\\\\\\\\G'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.toml\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.toml\"}},\"name\":\"string.quoted.single.toml\"},{\"match\":\"\\\\\\\\G[0-9]{4}-(0[1-9]|1[012])-(?!00|3[2-9])[0-3][0-9]([Tt ](?!2[5-9])[0-2][0-9]:[0-5][0-9]:(?!6[1-9])[0-6][0-9](\\\\\\\\.[0-9]+)?(Z|[+-](?!2[5-9])[0-2][0-9]:[0-5][0-9])?)?\",\"name\":\"constant.other.date.toml\"},{\"match\":\"\\\\\\\\G(?!2[5-9])[0-2][0-9]:[0-5][0-9]:(?!6[1-9])[0-6][0-9](\\\\\\\\.[0-9]+)?\",\"name\":\"constant.other.time.toml\"},{\"match\":\"\\\\\\\\G(true|false)\",\"name\":\"constant.language.boolean.toml\"},{\"match\":\"\\\\\\\\G0x\\\\\\\\h(\\\\\\\\h|_\\\\\\\\h)*\",\"name\":\"constant.numeric.hex.toml\"},{\"match\":\"\\\\\\\\G0o[0-7]([0-7]|_[0-7])*\",\"name\":\"constant.numeric.octal.toml\"},{\"match\":\"\\\\\\\\G0b[01]([01]|_[01])*\",\"name\":\"constant.numeric.binary.toml\"},{\"match\":\"\\\\\\\\G[+-]?(inf|nan)\",\"name\":\"constant.numeric.toml\"},{\"match\":\"\\\\\\\\G([+-]?(0|([1-9](([0-9]|_[0-9])+)?)))(?=[.eE])(\\\\\\\\.([0-9](([0-9]|_[0-9])+)?))?([eE]([+-]?[0-9](([0-9]|_[0-9])+)?))?\",\"name\":\"constant.numeric.float.toml\"},{\"match\":\"\\\\\\\\G([+-]?(0|([1-9](([0-9]|_[0-9])+)?)))\",\"name\":\"constant.numeric.integer.toml\"},{\"begin\":\"\\\\\\\\G\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.array.begin.toml\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.array.end.toml\"}},\"name\":\"meta.array.toml\",\"patterns\":[{\"begin\":\"(?=[\\\\\"'']|[+-]?[0-9]|[+-]?(inf|nan)|true|false|\\\\\\\\[|\\\\\\\\{)\",\"end\":\",|(?=])\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.separator.array.toml\"}},\"patterns\":[{\"include\":\"#primatives\"},{\"include\":\"#comments\"},{\"include\":\"#invalid\"}]},{\"include\":\"#comments\"},{\"include\":\"#invalid\"}]},{\"begin\":\"\\\\\\\\G\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.inline-table.begin.toml\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.inline-table.end.toml\"}},\"name\":\"meta.inline-table.toml\",\"patterns\":[{\"begin\":\"(?=\\\\\\\\S)\",\"end\":\",|(?=})\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.separator.inline-table.toml\"}},\"patterns\":[{\"include\":\"#key_pair\"}]},{\"include\":\"#comments\"}]}]}},\"scopeName\":\"source.toml\"}`)),e=[n];export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CCBS_C5_.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"//\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]},{open:\"{\",close:\"}\",notIn:[\"string\",\"comment\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\"]}],folding:{offSide:!0}},t={defaultToken:\"\",tokenPostfix:\".pug\",ignoreCase:!0,brackets:[{token:\"delimiter.curly\",open:\"{\",close:\"}\"},{token:\"delimiter.array\",open:\"[\",close:\"]\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"}],keywords:[\"append\",\"block\",\"case\",\"default\",\"doctype\",\"each\",\"else\",\"extends\",\"for\",\"if\",\"in\",\"include\",\"mixin\",\"typeof\",\"unless\",\"var\",\"when\"],tags:[\"a\",\"abbr\",\"acronym\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"base\",\"basefont\",\"bdi\",\"bdo\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"center\",\"cite\",\"code\",\"col\",\"colgroup\",\"command\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"div\",\"dl\",\"dt\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"font\",\"footer\",\"form\",\"frame\",\"frameset\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"keygen\",\"kbd\",\"label\",\"li\",\"link\",\"map\",\"mark\",\"menu\",\"meta\",\"meter\",\"nav\",\"noframes\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"pre\",\"progress\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"script\",\"section\",\"select\",\"small\",\"source\",\"span\",\"strike\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"title\",\"tr\",\"tracks\",\"tt\",\"u\",\"ul\",\"video\",\"wbr\"],symbols:/[\\+\\-\\*\\%\\&\\|\\!\\=\\/\\.\\,\\:]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^(\\s*)([a-zA-Z_-][\\w-]*)/,{cases:{\"$2@tags\":{cases:{\"@eos\":[\"\",\"tag\"],\"@default\":[\"\",{token:\"tag\",next:\"@tag.$1\"}]}},\"$2@keywords\":[\"\",{token:\"keyword.$2\"}],\"@default\":[\"\",\"\"]}}],[/^(\\s*)(#[a-zA-Z_-][\\w-]*)/,{cases:{\"@eos\":[\"\",\"tag.id\"],\"@default\":[\"\",{token:\"tag.id\",next:\"@tag.$1\"}]}}],[/^(\\s*)(\\.[a-zA-Z_-][\\w-]*)/,{cases:{\"@eos\":[\"\",\"tag.class\"],\"@default\":[\"\",{token:\"tag.class\",next:\"@tag.$1\"}]}}],[/^(\\s*)(\\|.*)$/,\"\"],{include:\"@whitespace\"},[/[a-zA-Z_$][\\w$]*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"\"}}],[/[{}()\\[\\]]/,\"@brackets\"],[/@symbols/,\"delimiter\"],[/\\d+\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/\\d+/,\"number\"],[/\"/,\"string\",'@string.\"'],[/'/,\"string\",\"@string.'\"]],tag:[[/(\\.)(\\s*$)/,[{token:\"delimiter\",next:\"@blockText.$S2.\"},\"\"]],[/\\s+/,{token:\"\",next:\"@simpleText\"}],[/#[a-zA-Z_-][\\w-]*/,{cases:{\"@eos\":{token:\"tag.id\",next:\"@pop\"},\"@default\":\"tag.id\"}}],[/\\.[a-zA-Z_-][\\w-]*/,{cases:{\"@eos\":{token:\"tag.class\",next:\"@pop\"},\"@default\":\"tag.class\"}}],[/\\(/,{token:\"delimiter.parenthesis\",next:\"@attributeList\"}]],simpleText:[[/[^#]+$/,{token:\"\",next:\"@popall\"}],[/[^#]+/,{token:\"\"}],[/(#{)([^}]*)(})/,{cases:{\"@eos\":[\"interpolation.delimiter\",\"interpolation\",{token:\"interpolation.delimiter\",next:\"@popall\"}],\"@default\":[\"interpolation.delimiter\",\"interpolation\",\"interpolation.delimiter\"]}}],[/#$/,{token:\"\",next:\"@popall\"}],[/#/,\"\"]],attributeList:[[/\\s+/,\"\"],[/(\\w+)(\\s*=\\s*)(\"|')/,[\"attribute.name\",\"delimiter\",{token:\"attribute.value\",next:\"@value.$3\"}]],[/\\w+/,\"attribute.name\"],[/,/,{cases:{\"@eos\":{token:\"attribute.delimiter\",next:\"@popall\"},\"@default\":\"attribute.delimiter\"}}],[/\\)$/,{token:\"delimiter.parenthesis\",next:\"@popall\"}],[/\\)/,{token:\"delimiter.parenthesis\",next:\"@pop\"}]],whitespace:[[/^(\\s*)(\\/\\/.*)$/,{token:\"comment\",next:\"@blockText.$1.comment\"}],[/[ \\t\\r\\n]+/,\"\"],[/<!--/,{token:\"comment\",next:\"@comment\"}]],blockText:[[/^\\s+.*$/,{cases:{\"($S2\\\\s+.*$)\":{token:\"$S3\"},\"@default\":{token:\"@rematch\",next:\"@popall\"}}}],[/./,{token:\"@rematch\",next:\"@popall\"}]],comment:[[/[^<\\-]+/,\"comment.content\"],[/-->/,{token:\"comment\",next:\"@pop\"}],[/<!--/,\"comment.content.invalid\"],[/[<\\-]/,\"comment.content\"]],string:[[/[^\\\\\"'#]+/,{cases:{\"@eos\":{token:\"string\",next:\"@popall\"},\"@default\":\"string\"}}],[/@escapes/,{cases:{\"@eos\":{token:\"string.escape\",next:\"@popall\"},\"@default\":\"string.escape\"}}],[/\\\\./,{cases:{\"@eos\":{token:\"string.escape.invalid\",next:\"@popall\"},\"@default\":\"string.escape.invalid\"}}],[/(#{)([^}]*)(})/,[\"interpolation.delimiter\",\"interpolation\",\"interpolation.delimiter\"]],[/#/,\"string\"],[/[\"']/,{cases:{\"$#==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":{token:\"string\"}}}]],value:[[/[^\\\\\"']+/,{cases:{\"@eos\":{token:\"attribute.value\",next:\"@popall\"},\"@default\":\"attribute.value\"}}],[/\\\\./,{cases:{\"@eos\":{token:\"attribute.value\",next:\"@popall\"},\"@default\":\"attribute.value\"}}],[/[\"']/,{cases:{\"$#==$S2\":{token:\"attribute.value\",next:\"@pop\"},\"@default\":{token:\"attribute.value\"}}}]]}};export{e as conf,t as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/CD20-hSi.js",
    "content": "import{d as O,m as x,u as U,r as c,a as $,c as k,w as p,n as z,o as B,S as L,s as S,h as j,e as I,f as u,_ as K,g as R,i as l,j as o,k as q,l as A,p as H,q as W,t as F,z as G}from\"./CU_MfyYc.js\";import{_ as J}from\"./DK27pemE.js\";const P=H(J),Q={class:\"flex items-center justify-between\"},X={class:\"space-y-4\"},Y={class:\"flex justify-end gap-3\"},te=O({__name:\"OptimizationNotesModal\",props:x({sessionId:{},initialTitle:{},initialDescription:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:x([\"saved\"],[\"update:modelValue\"]),setup(y,{emit:b}){const n=y,V=b,i=U(y,\"modelValue\"),s=c(n.initialTitle||\"\"),d=c(n.initialDescription||\"\"),v=c(!1),m=c(),h=$(),g=k(()=>h.value===\"light\"?\"vs-light\":\"vs-dark\"),C={automaticLayout:!0,minimap:{enabled:!1},fontSize:15,lineHeight:21,wordWrap:\"on\"},w=k(()=>s.value!==(n.initialTitle||\"\")||d.value!==(n.initialDescription||\"\"));p(g,t=>{var e,r;(r=(e=m.value)==null?void 0:e.$editor)==null||r.updateOptions({theme:t})}),p(()=>n.initialTitle,t=>{s.value=t||\"\"}),p(()=>n.initialDescription,t=>{d.value=t||\"\"}),p(i,async t=>{t?(await z(),setTimeout(()=>{var e;(e=m.value)!=null&&e.$editor&&(m.value.$editor.updateOptions({theme:g.value}),m.value.$editor.addCommand(2051,()=>{_()}))},100),window.addEventListener(\"keydown\",f)):window.removeEventListener(\"keydown\",f)}),B(()=>{window.removeEventListener(\"keydown\",f)});function f(t){(t.metaKey||t.ctrlKey)&&t.key===\"Enter\"&&(t.preventDefault(),_())}async function _(){if(w.value){v.value=!0;try{await L().updateSessionNotes(n.sessionId,s.value,d.value),S(\"success\",\"Notes saved successfully\"),V(\"saved\",{title:s.value,description:d.value}),i.value=!1}catch(t){j(t)}finally{v.value=!1}}}return(t,e)=>{const r=F,T=q,E=P,N=A,D=G,M=K;return R(),I(M,{modelValue:i.value,\"onUpdate:modelValue\":e[4]||(e[4]=a=>i.value=a),ui:{width:\"sm:max-w-3xl\"}},{default:u(()=>[l(D,null,{header:u(()=>[o(\"div\",Q,[e[5]||(e[5]=o(\"h3\",{class:\"text-lg font-semibold\"},\"Add Title & Notes\",-1)),l(r,{color:\"gray\",variant:\"ghost\",icon:\"i-heroicons-x-mark\",size:\"sm\",onClick:e[0]||(e[0]=a=>i.value=!1)})])]),footer:u(()=>[o(\"div\",Y,[l(r,{color:\"gray\",variant:\"ghost\",label:\"Cancel\",onClick:e[3]||(e[3]=a=>i.value=!1)}),l(r,{color:\"primary\",label:\"Save\",icon:\"i-heroicons-check\",disabled:!w.value,loading:v.value,onClick:_},null,8,[\"disabled\",\"loading\"])])]),default:u(()=>[o(\"div\",X,[o(\"div\",null,[e[6]||(e[6]=o(\"label\",{class:\"block text-sm font-medium mb-2\"},\"Title\",-1)),l(T,{modelValue:s.value,\"onUpdate:modelValue\":e[1]||(e[1]=a=>s.value=a),placeholder:\"Enter a title for this optimization\",maxlength:\"255\",size:\"lg\"},null,8,[\"modelValue\"])]),o(\"div\",null,[e[8]||(e[8]=o(\"label\",{class:\"block text-sm font-medium mb-2\"},\"Description\",-1)),l(N,null,{default:u(()=>[l(E,{ref_key:\"descriptionEditorRef\",ref:m,modelValue:d.value,\"onUpdate:modelValue\":e[2]||(e[2]=a=>d.value=a),lang:\"markdown\",options:C,class:\"border border-gray-200 dark:border-gray-800 rounded\",style:{height:\"400px\"}},{default:u(()=>e[7]||(e[7]=[W(\" Loading editor... \")])),_:1},8,[\"modelValue\"])]),_:1})])])]),_:1})]),_:1},8,[\"modelValue\"])}}});export{te as _};\n"
  },
  {
    "path": "jesse/static/_nuxt/CD_QflpE.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBackground\":\"#00000000\",\"activityBar.activeBorder\":\"#00000000\",\"activityBar.activeFocusBorder\":\"#00000000\",\"activityBar.background\":\"#232634\",\"activityBar.border\":\"#00000000\",\"activityBar.dropBorder\":\"#ca9ee633\",\"activityBar.foreground\":\"#ca9ee6\",\"activityBar.inactiveForeground\":\"#737994\",\"activityBarBadge.background\":\"#ca9ee6\",\"activityBarBadge.foreground\":\"#232634\",\"activityBarTop.activeBorder\":\"#00000000\",\"activityBarTop.dropBorder\":\"#ca9ee633\",\"activityBarTop.foreground\":\"#ca9ee6\",\"activityBarTop.inactiveForeground\":\"#737994\",\"badge.background\":\"#51576d\",\"badge.foreground\":\"#c6d0f5\",\"banner.background\":\"#51576d\",\"banner.foreground\":\"#c6d0f5\",\"banner.iconForeground\":\"#c6d0f5\",\"breadcrumb.activeSelectionForeground\":\"#ca9ee6\",\"breadcrumb.background\":\"#303446\",\"breadcrumb.focusForeground\":\"#ca9ee6\",\"breadcrumb.foreground\":\"#c6d0f5cc\",\"breadcrumbPicker.background\":\"#292c3c\",\"button.background\":\"#ca9ee6\",\"button.border\":\"#00000000\",\"button.foreground\":\"#232634\",\"button.hoverBackground\":\"#d9baed\",\"button.secondaryBackground\":\"#626880\",\"button.secondaryBorder\":\"#ca9ee6\",\"button.secondaryForeground\":\"#c6d0f5\",\"button.secondaryHoverBackground\":\"#727993\",\"button.separator\":\"#00000000\",\"charts.blue\":\"#8caaee\",\"charts.foreground\":\"#c6d0f5\",\"charts.green\":\"#a6d189\",\"charts.lines\":\"#b5bfe2\",\"charts.orange\":\"#ef9f76\",\"charts.purple\":\"#ca9ee6\",\"charts.red\":\"#e78284\",\"charts.yellow\":\"#e5c890\",\"checkbox.background\":\"#51576d\",\"checkbox.border\":\"#00000000\",\"checkbox.foreground\":\"#ca9ee6\",\"commandCenter.activeBackground\":\"#62688033\",\"commandCenter.activeBorder\":\"#ca9ee6\",\"commandCenter.activeForeground\":\"#ca9ee6\",\"commandCenter.background\":\"#292c3c\",\"commandCenter.border\":\"#00000000\",\"commandCenter.foreground\":\"#b5bfe2\",\"commandCenter.inactiveBorder\":\"#00000000\",\"commandCenter.inactiveForeground\":\"#b5bfe2\",\"debugConsole.errorForeground\":\"#e78284\",\"debugConsole.infoForeground\":\"#8caaee\",\"debugConsole.sourceForeground\":\"#f2d5cf\",\"debugConsole.warningForeground\":\"#ef9f76\",\"debugConsoleInputIcon.foreground\":\"#c6d0f5\",\"debugExceptionWidget.background\":\"#232634\",\"debugExceptionWidget.border\":\"#ca9ee6\",\"debugIcon.breakpointCurrentStackframeForeground\":\"#626880\",\"debugIcon.breakpointDisabledForeground\":\"#e7828499\",\"debugIcon.breakpointForeground\":\"#e78284\",\"debugIcon.breakpointStackframeForeground\":\"#626880\",\"debugIcon.breakpointUnverifiedForeground\":\"#a57582\",\"debugIcon.continueForeground\":\"#a6d189\",\"debugIcon.disconnectForeground\":\"#626880\",\"debugIcon.pauseForeground\":\"#8caaee\",\"debugIcon.restartForeground\":\"#81c8be\",\"debugIcon.startForeground\":\"#a6d189\",\"debugIcon.stepBackForeground\":\"#626880\",\"debugIcon.stepIntoForeground\":\"#c6d0f5\",\"debugIcon.stepOutForeground\":\"#c6d0f5\",\"debugIcon.stepOverForeground\":\"#ca9ee6\",\"debugIcon.stopForeground\":\"#e78284\",\"debugTokenExpression.boolean\":\"#ca9ee6\",\"debugTokenExpression.error\":\"#e78284\",\"debugTokenExpression.number\":\"#ef9f76\",\"debugTokenExpression.string\":\"#a6d189\",\"debugToolBar.background\":\"#232634\",\"debugToolBar.border\":\"#00000000\",\"descriptionForeground\":\"#c6d0f5\",\"diffEditor.border\":\"#626880\",\"diffEditor.diagonalFill\":\"#62688099\",\"diffEditor.insertedLineBackground\":\"#a6d18926\",\"diffEditor.insertedTextBackground\":\"#a6d1891a\",\"diffEditor.removedLineBackground\":\"#e7828426\",\"diffEditor.removedTextBackground\":\"#e782841a\",\"diffEditorOverview.insertedForeground\":\"#a6d189cc\",\"diffEditorOverview.removedForeground\":\"#e78284cc\",\"disabledForeground\":\"#a5adce\",\"dropdown.background\":\"#292c3c\",\"dropdown.border\":\"#ca9ee6\",\"dropdown.foreground\":\"#c6d0f5\",\"dropdown.listBackground\":\"#626880\",\"editor.background\":\"#303446\",\"editor.findMatchBackground\":\"#674b59\",\"editor.findMatchBorder\":\"#e7828433\",\"editor.findMatchHighlightBackground\":\"#506373\",\"editor.findMatchHighlightBorder\":\"#99d1db33\",\"editor.findRangeHighlightBackground\":\"#506373\",\"editor.findRangeHighlightBorder\":\"#99d1db33\",\"editor.focusedStackFrameHighlightBackground\":\"#a6d18926\",\"editor.foldBackground\":\"#99d1db40\",\"editor.foreground\":\"#c6d0f5\",\"editor.hoverHighlightBackground\":\"#99d1db40\",\"editor.lineHighlightBackground\":\"#c6d0f512\",\"editor.lineHighlightBorder\":\"#00000000\",\"editor.rangeHighlightBackground\":\"#99d1db40\",\"editor.rangeHighlightBorder\":\"#00000000\",\"editor.selectionBackground\":\"#949cbb40\",\"editor.selectionHighlightBackground\":\"#949cbb33\",\"editor.selectionHighlightBorder\":\"#949cbb33\",\"editor.stackFrameHighlightBackground\":\"#e5c89026\",\"editor.wordHighlightBackground\":\"#949cbb33\",\"editor.wordHighlightStrongBackground\":\"#8caaee33\",\"editorBracketHighlight.foreground1\":\"#e78284\",\"editorBracketHighlight.foreground2\":\"#ef9f76\",\"editorBracketHighlight.foreground3\":\"#e5c890\",\"editorBracketHighlight.foreground4\":\"#a6d189\",\"editorBracketHighlight.foreground5\":\"#85c1dc\",\"editorBracketHighlight.foreground6\":\"#ca9ee6\",\"editorBracketHighlight.unexpectedBracket.foreground\":\"#ea999c\",\"editorBracketMatch.background\":\"#949cbb1a\",\"editorBracketMatch.border\":\"#949cbb\",\"editorCodeLens.foreground\":\"#838ba7\",\"editorCursor.background\":\"#303446\",\"editorCursor.foreground\":\"#f2d5cf\",\"editorError.background\":\"#00000000\",\"editorError.border\":\"#00000000\",\"editorError.foreground\":\"#e78284\",\"editorGroup.border\":\"#626880\",\"editorGroup.dropBackground\":\"#ca9ee633\",\"editorGroup.emptyBackground\":\"#303446\",\"editorGroupHeader.tabsBackground\":\"#232634\",\"editorGutter.addedBackground\":\"#a6d189\",\"editorGutter.background\":\"#303446\",\"editorGutter.commentGlyphForeground\":\"#ca9ee6\",\"editorGutter.commentRangeForeground\":\"#414559\",\"editorGutter.deletedBackground\":\"#e78284\",\"editorGutter.foldingControlForeground\":\"#949cbb\",\"editorGutter.modifiedBackground\":\"#e5c890\",\"editorHoverWidget.background\":\"#292c3c\",\"editorHoverWidget.border\":\"#626880\",\"editorHoverWidget.foreground\":\"#c6d0f5\",\"editorIndentGuide.activeBackground\":\"#626880\",\"editorIndentGuide.background\":\"#51576d\",\"editorInfo.background\":\"#00000000\",\"editorInfo.border\":\"#00000000\",\"editorInfo.foreground\":\"#8caaee\",\"editorInlayHint.background\":\"#292c3cbf\",\"editorInlayHint.foreground\":\"#626880\",\"editorInlayHint.parameterBackground\":\"#292c3cbf\",\"editorInlayHint.parameterForeground\":\"#a5adce\",\"editorInlayHint.typeBackground\":\"#292c3cbf\",\"editorInlayHint.typeForeground\":\"#b5bfe2\",\"editorLightBulb.foreground\":\"#e5c890\",\"editorLineNumber.activeForeground\":\"#ca9ee6\",\"editorLineNumber.foreground\":\"#838ba7\",\"editorLink.activeForeground\":\"#ca9ee6\",\"editorMarkerNavigation.background\":\"#292c3c\",\"editorMarkerNavigationError.background\":\"#e78284\",\"editorMarkerNavigationInfo.background\":\"#8caaee\",\"editorMarkerNavigationWarning.background\":\"#ef9f76\",\"editorOverviewRuler.background\":\"#292c3c\",\"editorOverviewRuler.border\":\"#c6d0f512\",\"editorOverviewRuler.modifiedForeground\":\"#e5c890\",\"editorRuler.foreground\":\"#626880\",\"editorStickyScrollHover.background\":\"#414559\",\"editorSuggestWidget.background\":\"#292c3c\",\"editorSuggestWidget.border\":\"#626880\",\"editorSuggestWidget.foreground\":\"#c6d0f5\",\"editorSuggestWidget.highlightForeground\":\"#ca9ee6\",\"editorSuggestWidget.selectedBackground\":\"#414559\",\"editorWarning.background\":\"#00000000\",\"editorWarning.border\":\"#00000000\",\"editorWarning.foreground\":\"#ef9f76\",\"editorWhitespace.foreground\":\"#949cbb66\",\"editorWidget.background\":\"#292c3c\",\"editorWidget.foreground\":\"#c6d0f5\",\"editorWidget.resizeBorder\":\"#626880\",\"errorForeground\":\"#e78284\",\"errorLens.errorBackground\":\"#e7828426\",\"errorLens.errorBackgroundLight\":\"#e7828426\",\"errorLens.errorForeground\":\"#e78284\",\"errorLens.errorForegroundLight\":\"#e78284\",\"errorLens.errorMessageBackground\":\"#e7828426\",\"errorLens.hintBackground\":\"#a6d18926\",\"errorLens.hintBackgroundLight\":\"#a6d18926\",\"errorLens.hintForeground\":\"#a6d189\",\"errorLens.hintForegroundLight\":\"#a6d189\",\"errorLens.hintMessageBackground\":\"#a6d18926\",\"errorLens.infoBackground\":\"#8caaee26\",\"errorLens.infoBackgroundLight\":\"#8caaee26\",\"errorLens.infoForeground\":\"#8caaee\",\"errorLens.infoForegroundLight\":\"#8caaee\",\"errorLens.infoMessageBackground\":\"#8caaee26\",\"errorLens.statusBarErrorForeground\":\"#e78284\",\"errorLens.statusBarHintForeground\":\"#a6d189\",\"errorLens.statusBarIconErrorForeground\":\"#e78284\",\"errorLens.statusBarIconWarningForeground\":\"#ef9f76\",\"errorLens.statusBarInfoForeground\":\"#8caaee\",\"errorLens.statusBarWarningForeground\":\"#ef9f76\",\"errorLens.warningBackground\":\"#ef9f7626\",\"errorLens.warningBackgroundLight\":\"#ef9f7626\",\"errorLens.warningForeground\":\"#ef9f76\",\"errorLens.warningForegroundLight\":\"#ef9f76\",\"errorLens.warningMessageBackground\":\"#ef9f7626\",\"extensionBadge.remoteBackground\":\"#8caaee\",\"extensionBadge.remoteForeground\":\"#232634\",\"extensionButton.prominentBackground\":\"#ca9ee6\",\"extensionButton.prominentForeground\":\"#232634\",\"extensionButton.prominentHoverBackground\":\"#d9baed\",\"extensionButton.separator\":\"#303446\",\"extensionIcon.preReleaseForeground\":\"#626880\",\"extensionIcon.sponsorForeground\":\"#f4b8e4\",\"extensionIcon.starForeground\":\"#e5c890\",\"extensionIcon.verifiedForeground\":\"#a6d189\",\"focusBorder\":\"#ca9ee6\",\"foreground\":\"#c6d0f5\",\"gitDecoration.addedResourceForeground\":\"#a6d189\",\"gitDecoration.conflictingResourceForeground\":\"#ca9ee6\",\"gitDecoration.deletedResourceForeground\":\"#e78284\",\"gitDecoration.ignoredResourceForeground\":\"#737994\",\"gitDecoration.modifiedResourceForeground\":\"#e5c890\",\"gitDecoration.stageDeletedResourceForeground\":\"#e78284\",\"gitDecoration.stageModifiedResourceForeground\":\"#e5c890\",\"gitDecoration.submoduleResourceForeground\":\"#8caaee\",\"gitDecoration.untrackedResourceForeground\":\"#a6d189\",\"gitlens.closedAutolinkedIssueIconColor\":\"#ca9ee6\",\"gitlens.closedPullRequestIconColor\":\"#e78284\",\"gitlens.decorations.branchAheadForegroundColor\":\"#a6d189\",\"gitlens.decorations.branchBehindForegroundColor\":\"#ef9f76\",\"gitlens.decorations.branchDivergedForegroundColor\":\"#e5c890\",\"gitlens.decorations.branchMissingUpstreamForegroundColor\":\"#ef9f76\",\"gitlens.decorations.branchUnpublishedForegroundColor\":\"#a6d189\",\"gitlens.decorations.statusMergingOrRebasingConflictForegroundColor\":\"#ea999c\",\"gitlens.decorations.statusMergingOrRebasingForegroundColor\":\"#e5c890\",\"gitlens.decorations.workspaceCurrentForegroundColor\":\"#ca9ee6\",\"gitlens.decorations.workspaceRepoMissingForegroundColor\":\"#a5adce\",\"gitlens.decorations.workspaceRepoOpenForegroundColor\":\"#ca9ee6\",\"gitlens.decorations.worktreeHasUncommittedChangesForegroundColor\":\"#ef9f76\",\"gitlens.decorations.worktreeMissingForegroundColor\":\"#ea999c\",\"gitlens.graphChangesColumnAddedColor\":\"#a6d189\",\"gitlens.graphChangesColumnDeletedColor\":\"#e78284\",\"gitlens.graphLane10Color\":\"#f4b8e4\",\"gitlens.graphLane1Color\":\"#ca9ee6\",\"gitlens.graphLane2Color\":\"#e5c890\",\"gitlens.graphLane3Color\":\"#8caaee\",\"gitlens.graphLane4Color\":\"#eebebe\",\"gitlens.graphLane5Color\":\"#a6d189\",\"gitlens.graphLane6Color\":\"#babbf1\",\"gitlens.graphLane7Color\":\"#f2d5cf\",\"gitlens.graphLane8Color\":\"#e78284\",\"gitlens.graphLane9Color\":\"#81c8be\",\"gitlens.graphMinimapMarkerHeadColor\":\"#a6d189\",\"gitlens.graphMinimapMarkerHighlightsColor\":\"#e5c890\",\"gitlens.graphMinimapMarkerLocalBranchesColor\":\"#8caaee\",\"gitlens.graphMinimapMarkerRemoteBranchesColor\":\"#769aeb\",\"gitlens.graphMinimapMarkerStashesColor\":\"#ca9ee6\",\"gitlens.graphMinimapMarkerTagsColor\":\"#eebebe\",\"gitlens.graphMinimapMarkerUpstreamColor\":\"#98ca77\",\"gitlens.graphScrollMarkerHeadColor\":\"#a6d189\",\"gitlens.graphScrollMarkerHighlightsColor\":\"#e5c890\",\"gitlens.graphScrollMarkerLocalBranchesColor\":\"#8caaee\",\"gitlens.graphScrollMarkerRemoteBranchesColor\":\"#769aeb\",\"gitlens.graphScrollMarkerStashesColor\":\"#ca9ee6\",\"gitlens.graphScrollMarkerTagsColor\":\"#eebebe\",\"gitlens.graphScrollMarkerUpstreamColor\":\"#98ca77\",\"gitlens.gutterBackgroundColor\":\"#4145594d\",\"gitlens.gutterForegroundColor\":\"#c6d0f5\",\"gitlens.gutterUncommittedForegroundColor\":\"#ca9ee6\",\"gitlens.lineHighlightBackgroundColor\":\"#ca9ee626\",\"gitlens.lineHighlightOverviewRulerColor\":\"#ca9ee6cc\",\"gitlens.mergedPullRequestIconColor\":\"#ca9ee6\",\"gitlens.openAutolinkedIssueIconColor\":\"#a6d189\",\"gitlens.openPullRequestIconColor\":\"#a6d189\",\"gitlens.trailingLineBackgroundColor\":\"#00000000\",\"gitlens.trailingLineForegroundColor\":\"#c6d0f54d\",\"gitlens.unpublishedChangesIconColor\":\"#a6d189\",\"gitlens.unpublishedCommitIconColor\":\"#a6d189\",\"gitlens.unpulledChangesIconColor\":\"#ef9f76\",\"icon.foreground\":\"#ca9ee6\",\"input.background\":\"#414559\",\"input.border\":\"#00000000\",\"input.foreground\":\"#c6d0f5\",\"input.placeholderForeground\":\"#c6d0f573\",\"inputOption.activeBackground\":\"#626880\",\"inputOption.activeBorder\":\"#ca9ee6\",\"inputOption.activeForeground\":\"#c6d0f5\",\"inputValidation.errorBackground\":\"#e78284\",\"inputValidation.errorBorder\":\"#23263433\",\"inputValidation.errorForeground\":\"#232634\",\"inputValidation.infoBackground\":\"#8caaee\",\"inputValidation.infoBorder\":\"#23263433\",\"inputValidation.infoForeground\":\"#232634\",\"inputValidation.warningBackground\":\"#ef9f76\",\"inputValidation.warningBorder\":\"#23263433\",\"inputValidation.warningForeground\":\"#232634\",\"issues.closed\":\"#ca9ee6\",\"issues.newIssueDecoration\":\"#f2d5cf\",\"issues.open\":\"#a6d189\",\"list.activeSelectionBackground\":\"#414559\",\"list.activeSelectionForeground\":\"#c6d0f5\",\"list.dropBackground\":\"#ca9ee633\",\"list.focusAndSelectionBackground\":\"#51576d\",\"list.focusBackground\":\"#414559\",\"list.focusForeground\":\"#c6d0f5\",\"list.focusOutline\":\"#00000000\",\"list.highlightForeground\":\"#ca9ee6\",\"list.hoverBackground\":\"#41455980\",\"list.hoverForeground\":\"#c6d0f5\",\"list.inactiveSelectionBackground\":\"#414559\",\"list.inactiveSelectionForeground\":\"#c6d0f5\",\"list.warningForeground\":\"#ef9f76\",\"listFilterWidget.background\":\"#51576d\",\"listFilterWidget.noMatchesOutline\":\"#e78284\",\"listFilterWidget.outline\":\"#00000000\",\"menu.background\":\"#303446\",\"menu.border\":\"#30344680\",\"menu.foreground\":\"#c6d0f5\",\"menu.selectionBackground\":\"#626880\",\"menu.selectionBorder\":\"#00000000\",\"menu.selectionForeground\":\"#c6d0f5\",\"menu.separatorBackground\":\"#626880\",\"menubar.selectionBackground\":\"#51576d\",\"menubar.selectionForeground\":\"#c6d0f5\",\"merge.commonContentBackground\":\"#51576d\",\"merge.commonHeaderBackground\":\"#626880\",\"merge.currentContentBackground\":\"#a6d18933\",\"merge.currentHeaderBackground\":\"#a6d18966\",\"merge.incomingContentBackground\":\"#8caaee33\",\"merge.incomingHeaderBackground\":\"#8caaee66\",\"minimap.background\":\"#292c3c80\",\"minimap.errorHighlight\":\"#e78284bf\",\"minimap.findMatchHighlight\":\"#99d1db4d\",\"minimap.selectionHighlight\":\"#626880bf\",\"minimap.selectionOccurrenceHighlight\":\"#626880bf\",\"minimap.warningHighlight\":\"#ef9f76bf\",\"minimapGutter.addedBackground\":\"#a6d189bf\",\"minimapGutter.deletedBackground\":\"#e78284bf\",\"minimapGutter.modifiedBackground\":\"#e5c890bf\",\"minimapSlider.activeBackground\":\"#ca9ee699\",\"minimapSlider.background\":\"#ca9ee633\",\"minimapSlider.hoverBackground\":\"#ca9ee666\",\"notificationCenter.border\":\"#ca9ee6\",\"notificationCenterHeader.background\":\"#292c3c\",\"notificationCenterHeader.foreground\":\"#c6d0f5\",\"notificationLink.foreground\":\"#8caaee\",\"notificationToast.border\":\"#ca9ee6\",\"notifications.background\":\"#292c3c\",\"notifications.border\":\"#ca9ee6\",\"notifications.foreground\":\"#c6d0f5\",\"notificationsErrorIcon.foreground\":\"#e78284\",\"notificationsInfoIcon.foreground\":\"#8caaee\",\"notificationsWarningIcon.foreground\":\"#ef9f76\",\"panel.background\":\"#303446\",\"panel.border\":\"#626880\",\"panelSection.border\":\"#626880\",\"panelSection.dropBackground\":\"#ca9ee633\",\"panelTitle.activeBorder\":\"#ca9ee6\",\"panelTitle.activeForeground\":\"#c6d0f5\",\"panelTitle.inactiveForeground\":\"#a5adce\",\"peekView.border\":\"#ca9ee6\",\"peekViewEditor.background\":\"#292c3c\",\"peekViewEditor.matchHighlightBackground\":\"#99d1db4d\",\"peekViewEditor.matchHighlightBorder\":\"#00000000\",\"peekViewEditorGutter.background\":\"#292c3c\",\"peekViewResult.background\":\"#292c3c\",\"peekViewResult.fileForeground\":\"#c6d0f5\",\"peekViewResult.lineForeground\":\"#c6d0f5\",\"peekViewResult.matchHighlightBackground\":\"#99d1db4d\",\"peekViewResult.selectionBackground\":\"#414559\",\"peekViewResult.selectionForeground\":\"#c6d0f5\",\"peekViewTitle.background\":\"#303446\",\"peekViewTitleDescription.foreground\":\"#b5bfe2b3\",\"peekViewTitleLabel.foreground\":\"#c6d0f5\",\"pickerGroup.border\":\"#ca9ee6\",\"pickerGroup.foreground\":\"#ca9ee6\",\"problemsErrorIcon.foreground\":\"#e78284\",\"problemsInfoIcon.foreground\":\"#8caaee\",\"problemsWarningIcon.foreground\":\"#ef9f76\",\"progressBar.background\":\"#ca9ee6\",\"pullRequests.closed\":\"#e78284\",\"pullRequests.draft\":\"#949cbb\",\"pullRequests.merged\":\"#ca9ee6\",\"pullRequests.notification\":\"#c6d0f5\",\"pullRequests.open\":\"#a6d189\",\"sash.hoverBorder\":\"#ca9ee6\",\"scrollbar.shadow\":\"#232634\",\"scrollbarSlider.activeBackground\":\"#41455966\",\"scrollbarSlider.background\":\"#62688080\",\"scrollbarSlider.hoverBackground\":\"#737994\",\"selection.background\":\"#ca9ee666\",\"settings.dropdownBackground\":\"#51576d\",\"settings.dropdownListBorder\":\"#00000000\",\"settings.focusedRowBackground\":\"#62688033\",\"settings.headerForeground\":\"#c6d0f5\",\"settings.modifiedItemIndicator\":\"#ca9ee6\",\"settings.numberInputBackground\":\"#51576d\",\"settings.numberInputBorder\":\"#00000000\",\"settings.textInputBackground\":\"#51576d\",\"settings.textInputBorder\":\"#00000000\",\"sideBar.background\":\"#292c3c\",\"sideBar.border\":\"#00000000\",\"sideBar.dropBackground\":\"#ca9ee633\",\"sideBar.foreground\":\"#c6d0f5\",\"sideBarSectionHeader.background\":\"#292c3c\",\"sideBarSectionHeader.foreground\":\"#c6d0f5\",\"sideBarTitle.foreground\":\"#ca9ee6\",\"statusBar.background\":\"#232634\",\"statusBar.border\":\"#00000000\",\"statusBar.debuggingBackground\":\"#ef9f76\",\"statusBar.debuggingBorder\":\"#00000000\",\"statusBar.debuggingForeground\":\"#232634\",\"statusBar.foreground\":\"#c6d0f5\",\"statusBar.noFolderBackground\":\"#232634\",\"statusBar.noFolderBorder\":\"#00000000\",\"statusBar.noFolderForeground\":\"#c6d0f5\",\"statusBarItem.activeBackground\":\"#62688066\",\"statusBarItem.errorBackground\":\"#00000000\",\"statusBarItem.errorForeground\":\"#e78284\",\"statusBarItem.hoverBackground\":\"#62688033\",\"statusBarItem.prominentBackground\":\"#00000000\",\"statusBarItem.prominentForeground\":\"#ca9ee6\",\"statusBarItem.prominentHoverBackground\":\"#62688033\",\"statusBarItem.remoteBackground\":\"#8caaee\",\"statusBarItem.remoteForeground\":\"#232634\",\"statusBarItem.warningBackground\":\"#00000000\",\"statusBarItem.warningForeground\":\"#ef9f76\",\"symbolIcon.arrayForeground\":\"#ef9f76\",\"symbolIcon.booleanForeground\":\"#ca9ee6\",\"symbolIcon.classForeground\":\"#e5c890\",\"symbolIcon.colorForeground\":\"#f4b8e4\",\"symbolIcon.constantForeground\":\"#ef9f76\",\"symbolIcon.constructorForeground\":\"#babbf1\",\"symbolIcon.enumeratorForeground\":\"#e5c890\",\"symbolIcon.enumeratorMemberForeground\":\"#e5c890\",\"symbolIcon.eventForeground\":\"#f4b8e4\",\"symbolIcon.fieldForeground\":\"#c6d0f5\",\"symbolIcon.fileForeground\":\"#ca9ee6\",\"symbolIcon.folderForeground\":\"#ca9ee6\",\"symbolIcon.functionForeground\":\"#8caaee\",\"symbolIcon.interfaceForeground\":\"#e5c890\",\"symbolIcon.keyForeground\":\"#81c8be\",\"symbolIcon.keywordForeground\":\"#ca9ee6\",\"symbolIcon.methodForeground\":\"#8caaee\",\"symbolIcon.moduleForeground\":\"#c6d0f5\",\"symbolIcon.namespaceForeground\":\"#e5c890\",\"symbolIcon.nullForeground\":\"#ea999c\",\"symbolIcon.numberForeground\":\"#ef9f76\",\"symbolIcon.objectForeground\":\"#e5c890\",\"symbolIcon.operatorForeground\":\"#81c8be\",\"symbolIcon.packageForeground\":\"#eebebe\",\"symbolIcon.propertyForeground\":\"#ea999c\",\"symbolIcon.referenceForeground\":\"#e5c890\",\"symbolIcon.snippetForeground\":\"#eebebe\",\"symbolIcon.stringForeground\":\"#a6d189\",\"symbolIcon.structForeground\":\"#81c8be\",\"symbolIcon.textForeground\":\"#c6d0f5\",\"symbolIcon.typeParameterForeground\":\"#ea999c\",\"symbolIcon.unitForeground\":\"#c6d0f5\",\"symbolIcon.variableForeground\":\"#c6d0f5\",\"tab.activeBackground\":\"#303446\",\"tab.activeBorder\":\"#00000000\",\"tab.activeBorderTop\":\"#ca9ee6\",\"tab.activeForeground\":\"#ca9ee6\",\"tab.activeModifiedBorder\":\"#e5c890\",\"tab.border\":\"#292c3c\",\"tab.hoverBackground\":\"#3a3f55\",\"tab.hoverBorder\":\"#00000000\",\"tab.hoverForeground\":\"#ca9ee6\",\"tab.inactiveBackground\":\"#292c3c\",\"tab.inactiveForeground\":\"#737994\",\"tab.inactiveModifiedBorder\":\"#e5c8904d\",\"tab.lastPinnedBorder\":\"#ca9ee6\",\"tab.unfocusedActiveBackground\":\"#292c3c\",\"tab.unfocusedActiveBorder\":\"#00000000\",\"tab.unfocusedActiveBorderTop\":\"#ca9ee64d\",\"tab.unfocusedInactiveBackground\":\"#1f212d\",\"table.headerBackground\":\"#414559\",\"table.headerForeground\":\"#c6d0f5\",\"terminal.ansiBlack\":\"#51576d\",\"terminal.ansiBlue\":\"#8caaee\",\"terminal.ansiBrightBlack\":\"#626880\",\"terminal.ansiBrightBlue\":\"#7b9ef0\",\"terminal.ansiBrightCyan\":\"#5abfb5\",\"terminal.ansiBrightGreen\":\"#8ec772\",\"terminal.ansiBrightMagenta\":\"#f2a4db\",\"terminal.ansiBrightRed\":\"#e67172\",\"terminal.ansiBrightWhite\":\"#b5bfe2\",\"terminal.ansiBrightYellow\":\"#d9ba73\",\"terminal.ansiCyan\":\"#81c8be\",\"terminal.ansiGreen\":\"#a6d189\",\"terminal.ansiMagenta\":\"#f4b8e4\",\"terminal.ansiRed\":\"#e78284\",\"terminal.ansiWhite\":\"#a5adce\",\"terminal.ansiYellow\":\"#e5c890\",\"terminal.border\":\"#626880\",\"terminal.dropBackground\":\"#ca9ee633\",\"terminal.foreground\":\"#c6d0f5\",\"terminal.inactiveSelectionBackground\":\"#62688080\",\"terminal.selectionBackground\":\"#626880\",\"terminal.tab.activeBorder\":\"#ca9ee6\",\"terminalCommandDecoration.defaultBackground\":\"#626880\",\"terminalCommandDecoration.errorBackground\":\"#e78284\",\"terminalCommandDecoration.successBackground\":\"#a6d189\",\"terminalCursor.background\":\"#303446\",\"terminalCursor.foreground\":\"#f2d5cf\",\"textBlockQuote.background\":\"#292c3c\",\"textBlockQuote.border\":\"#232634\",\"textCodeBlock.background\":\"#303446\",\"textLink.activeForeground\":\"#99d1db\",\"textLink.foreground\":\"#8caaee\",\"textPreformat.foreground\":\"#c6d0f5\",\"textSeparator.foreground\":\"#ca9ee6\",\"titleBar.activeBackground\":\"#232634\",\"titleBar.activeForeground\":\"#c6d0f5\",\"titleBar.border\":\"#00000000\",\"titleBar.inactiveBackground\":\"#232634\",\"titleBar.inactiveForeground\":\"#c6d0f580\",\"tree.inactiveIndentGuidesStroke\":\"#51576d\",\"tree.indentGuidesStroke\":\"#949cbb\",\"walkThrough.embeddedEditorBackground\":\"#3034464d\",\"welcomePage.progress.background\":\"#232634\",\"welcomePage.progress.foreground\":\"#ca9ee6\",\"welcomePage.tileBackground\":\"#292c3c\",\"widget.shadow\":\"#292c3c80\",\"window.activeBorder\":\"#00000000\",\"window.inactiveBorder\":\"#00000000\"},\"displayName\":\"Catppuccin Frappé\",\"name\":\"catppuccin-frappe\",\"semanticHighlighting\":true,\"semanticTokenColors\":{\"boolean\":{\"foreground\":\"#ef9f76\"},\"builtinAttribute.attribute.library:rust\":{\"foreground\":\"#8caaee\"},\"class.builtin:python\":{\"foreground\":\"#ca9ee6\"},\"class:python\":{\"foreground\":\"#e5c890\"},\"constant.builtin.readonly:nix\":{\"foreground\":\"#ca9ee6\"},\"enumMember\":{\"foreground\":\"#81c8be\"},\"function.decorator:python\":{\"foreground\":\"#ef9f76\"},\"generic.attribute:rust\":{\"foreground\":\"#c6d0f5\"},\"heading\":{\"foreground\":\"#e78284\"},\"number\":{\"foreground\":\"#ef9f76\"},\"pol\":{\"foreground\":\"#eebebe\"},\"property.readonly:javascript\":{\"foreground\":\"#c6d0f5\"},\"property.readonly:javascriptreact\":{\"foreground\":\"#c6d0f5\"},\"property.readonly:typescript\":{\"foreground\":\"#c6d0f5\"},\"property.readonly:typescriptreact\":{\"foreground\":\"#c6d0f5\"},\"selfKeyword\":{\"foreground\":\"#e78284\"},\"text.emph\":{\"fontStyle\":\"italic\",\"foreground\":\"#e78284\"},\"text.math\":{\"foreground\":\"#eebebe\"},\"text.strong\":{\"fontStyle\":\"bold\",\"foreground\":\"#e78284\"},\"tomlArrayKey\":{\"fontStyle\":\"\",\"foreground\":\"#8caaee\"},\"tomlTableKey\":{\"fontStyle\":\"\",\"foreground\":\"#8caaee\"},\"type.defaultLibrary:go\":{\"foreground\":\"#ca9ee6\"},\"variable.defaultLibrary\":{\"foreground\":\"#ea999c\"},\"variable.readonly.defaultLibrary:go\":{\"foreground\":\"#ca9ee6\"},\"variable.readonly:javascript\":{\"foreground\":\"#c6d0f5\"},\"variable.readonly:javascriptreact\":{\"foreground\":\"#c6d0f5\"},\"variable.readonly:scala\":{\"foreground\":\"#c6d0f5\"},\"variable.readonly:typescript\":{\"foreground\":\"#c6d0f5\"},\"variable.readonly:typescriptreact\":{\"foreground\":\"#c6d0f5\"},\"variable.typeHint:python\":{\"foreground\":\"#e5c890\"}},\"tokenColors\":[{\"scope\":[\"text\",\"source\",\"variable.other.readwrite\",\"punctuation.definition.variable\"],\"settings\":{\"foreground\":\"#c6d0f5\"}},{\"scope\":\"punctuation\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#949cbb\"}},{\"scope\":[\"comment\",\"punctuation.definition.comment\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#737994\"}},{\"scope\":[\"string\",\"punctuation.definition.string\"],\"settings\":{\"foreground\":\"#a6d189\"}},{\"scope\":\"constant.character.escape\",\"settings\":{\"foreground\":\"#f4b8e4\"}},{\"scope\":[\"constant.numeric\",\"variable.other.constant\",\"entity.name.constant\",\"constant.language.boolean\",\"constant.language.false\",\"constant.language.true\",\"keyword.other.unit.user-defined\",\"keyword.other.unit.suffix.floating-point\"],\"settings\":{\"foreground\":\"#ef9f76\"}},{\"scope\":[\"keyword\",\"keyword.operator.word\",\"keyword.operator.new\",\"variable.language.super\",\"support.type.primitive\",\"storage.type\",\"storage.modifier\",\"punctuation.definition.keyword\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#ca9ee6\"}},{\"scope\":\"entity.name.tag.documentation\",\"settings\":{\"foreground\":\"#ca9ee6\"}},{\"scope\":[\"keyword.operator\",\"punctuation.accessor\",\"punctuation.definition.generic\",\"meta.function.closure punctuation.section.parameters\",\"punctuation.definition.tag\",\"punctuation.separator.key-value\"],\"settings\":{\"foreground\":\"#81c8be\"}},{\"scope\":[\"entity.name.function\",\"meta.function-call.method\",\"support.function\",\"support.function.misc\",\"variable.function\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#8caaee\"}},{\"scope\":[\"entity.name.class\",\"entity.other.inherited-class\",\"support.class\",\"meta.function-call.constructor\",\"entity.name.struct\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#e5c890\"}},{\"scope\":\"entity.name.enum\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#e5c890\"}},{\"scope\":[\"meta.enum variable.other.readwrite\",\"variable.other.enummember\"],\"settings\":{\"foreground\":\"#81c8be\"}},{\"scope\":\"meta.property.object\",\"settings\":{\"foreground\":\"#81c8be\"}},{\"scope\":[\"meta.type\",\"meta.type-alias\",\"support.type\",\"entity.name.type\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#e5c890\"}},{\"scope\":[\"meta.annotation variable.function\",\"meta.annotation variable.annotation.function\",\"meta.annotation punctuation.definition.annotation\",\"meta.decorator\",\"punctuation.decorator\"],\"settings\":{\"foreground\":\"#ef9f76\"}},{\"scope\":[\"variable.parameter\",\"meta.function.parameters\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#ea999c\"}},{\"scope\":[\"constant.language\",\"support.function.builtin\"],\"settings\":{\"foreground\":\"#e78284\"}},{\"scope\":\"entity.other.attribute-name.documentation\",\"settings\":{\"foreground\":\"#e78284\"}},{\"scope\":[\"keyword.control.directive\",\"punctuation.definition.directive\"],\"settings\":{\"foreground\":\"#e5c890\"}},{\"scope\":\"punctuation.definition.typeparameters\",\"settings\":{\"foreground\":\"#99d1db\"}},{\"scope\":\"entity.name.namespace\",\"settings\":{\"foreground\":\"#e5c890\"}},{\"scope\":\"support.type.property-name.css\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#8caaee\"}},{\"scope\":[\"variable.language.this\",\"variable.language.this punctuation.definition.variable\"],\"settings\":{\"foreground\":\"#e78284\"}},{\"scope\":\"variable.object.property\",\"settings\":{\"foreground\":\"#c6d0f5\"}},{\"scope\":[\"string.template variable\",\"string variable\"],\"settings\":{\"foreground\":\"#c6d0f5\"}},{\"scope\":\"keyword.operator.new\",\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":\"storage.modifier.specifier.extern.cpp\",\"settings\":{\"foreground\":\"#ca9ee6\"}},{\"scope\":[\"entity.name.scope-resolution.template.call.cpp\",\"entity.name.scope-resolution.parameter.cpp\",\"entity.name.scope-resolution.cpp\",\"entity.name.scope-resolution.function.definition.cpp\"],\"settings\":{\"foreground\":\"#e5c890\"}},{\"scope\":\"storage.type.class.doxygen\",\"settings\":{\"fontStyle\":\"\"}},{\"scope\":[\"storage.modifier.reference.cpp\"],\"settings\":{\"foreground\":\"#81c8be\"}},{\"scope\":\"meta.interpolation.cs\",\"settings\":{\"foreground\":\"#c6d0f5\"}},{\"scope\":\"comment.block.documentation.cs\",\"settings\":{\"foreground\":\"#c6d0f5\"}},{\"scope\":[\"source.css entity.other.attribute-name.class.css\",\"entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css\"],\"settings\":{\"foreground\":\"#e5c890\"}},{\"scope\":\"punctuation.separator.operator.css\",\"settings\":{\"foreground\":\"#81c8be\"}},{\"scope\":\"source.css entity.other.attribute-name.pseudo-class\",\"settings\":{\"foreground\":\"#81c8be\"}},{\"scope\":\"source.css constant.other.unicode-range\",\"settings\":{\"foreground\":\"#ef9f76\"}},{\"scope\":\"source.css variable.parameter.url\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#a6d189\"}},{\"scope\":[\"support.type.vendored.property-name\"],\"settings\":{\"foreground\":\"#99d1db\"}},{\"scope\":[\"source.css meta.property-value variable\",\"source.css meta.property-value variable.other.less\",\"source.css meta.property-value variable.other.less punctuation.definition.variable.less\",\"meta.definition.variable.scss\"],\"settings\":{\"foreground\":\"#ea999c\"}},{\"scope\":[\"source.css meta.property-list variable\",\"meta.property-list variable.other.less\",\"meta.property-list variable.other.less punctuation.definition.variable.less\"],\"settings\":{\"foreground\":\"#8caaee\"}},{\"scope\":\"keyword.other.unit.percentage.css\",\"settings\":{\"foreground\":\"#ef9f76\"}},{\"scope\":\"source.css meta.attribute-selector\",\"settings\":{\"foreground\":\"#a6d189\"}},{\"scope\":[\"keyword.other.definition.ini\",\"punctuation.support.type.property-name.json\",\"support.type.property-name.json\",\"punctuation.support.type.property-name.toml\",\"support.type.property-name.toml\",\"entity.name.tag.yaml\",\"punctuation.support.type.property-name.yaml\",\"support.type.property-name.yaml\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#8caaee\"}},{\"scope\":[\"constant.language.json\",\"constant.language.yaml\"],\"settings\":{\"foreground\":\"#ef9f76\"}},{\"scope\":[\"entity.name.type.anchor.yaml\",\"variable.other.alias.yaml\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#e5c890\"}},{\"scope\":[\"support.type.property-name.table\",\"entity.name.section.group-title.ini\"],\"settings\":{\"foreground\":\"#e5c890\"}},{\"scope\":\"constant.other.time.datetime.offset.toml\",\"settings\":{\"foreground\":\"#f4b8e4\"}},{\"scope\":[\"punctuation.definition.anchor.yaml\",\"punctuation.definition.alias.yaml\"],\"settings\":{\"foreground\":\"#f4b8e4\"}},{\"scope\":\"entity.other.document.begin.yaml\",\"settings\":{\"foreground\":\"#f4b8e4\"}},{\"scope\":\"markup.changed.diff\",\"settings\":{\"foreground\":\"#ef9f76\"}},{\"scope\":[\"meta.diff.header.from-file\",\"meta.diff.header.to-file\",\"punctuation.definition.from-file.diff\",\"punctuation.definition.to-file.diff\"],\"settings\":{\"foreground\":\"#8caaee\"}},{\"scope\":\"markup.inserted.diff\",\"settings\":{\"foreground\":\"#a6d189\"}},{\"scope\":\"markup.deleted.diff\",\"settings\":{\"foreground\":\"#e78284\"}},{\"scope\":[\"variable.other.env\"],\"settings\":{\"foreground\":\"#8caaee\"}},{\"scope\":[\"string.quoted variable.other.env\"],\"settings\":{\"foreground\":\"#c6d0f5\"}},{\"scope\":\"support.function.builtin.gdscript\",\"settings\":{\"foreground\":\"#8caaee\"}},{\"scope\":\"constant.language.gdscript\",\"settings\":{\"foreground\":\"#ef9f76\"}},{\"scope\":\"comment meta.annotation.go\",\"settings\":{\"foreground\":\"#ea999c\"}},{\"scope\":\"comment meta.annotation.parameters.go\",\"settings\":{\"foreground\":\"#ef9f76\"}},{\"scope\":\"constant.language.go\",\"settings\":{\"foreground\":\"#ef9f76\"}},{\"scope\":\"variable.graphql\",\"settings\":{\"foreground\":\"#c6d0f5\"}},{\"scope\":\"string.unquoted.alias.graphql\",\"settings\":{\"foreground\":\"#eebebe\"}},{\"scope\":\"constant.character.enum.graphql\",\"settings\":{\"foreground\":\"#81c8be\"}},{\"scope\":\"meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql\",\"settings\":{\"foreground\":\"#eebebe\"}},{\"scope\":[\"keyword.other.doctype\",\"meta.tag.sgml.doctype punctuation.definition.tag\",\"meta.tag.metadata.doctype entity.name.tag\",\"meta.tag.metadata.doctype punctuation.definition.tag\"],\"settings\":{\"foreground\":\"#ca9ee6\"}},{\"scope\":[\"entity.name.tag\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#8caaee\"}},{\"scope\":[\"text.html constant.character.entity\",\"text.html constant.character.entity punctuation\",\"constant.character.entity.xml\",\"constant.character.entity.xml punctuation\",\"constant.character.entity.js.jsx\",\"constant.charactger.entity.js.jsx punctuation\",\"constant.character.entity.tsx\",\"constant.character.entity.tsx punctuation\"],\"settings\":{\"foreground\":\"#e78284\"}},{\"scope\":[\"entity.other.attribute-name\"],\"settings\":{\"foreground\":\"#e5c890\"}},{\"scope\":[\"support.class.component\",\"support.class.component.jsx\",\"support.class.component.tsx\",\"support.class.component.vue\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#f4b8e4\"}},{\"scope\":[\"punctuation.definition.annotation\",\"storage.type.annotation\"],\"settings\":{\"foreground\":\"#ef9f76\"}},{\"scope\":\"constant.other.enum.java\",\"settings\":{\"foreground\":\"#81c8be\"}},{\"scope\":\"storage.modifier.import.java\",\"settings\":{\"foreground\":\"#c6d0f5\"}},{\"scope\":\"comment.block.javadoc.java keyword.other.documentation.javadoc.java\",\"settings\":{\"fontStyle\":\"\"}},{\"scope\":\"meta.export variable.other.readwrite.js\",\"settings\":{\"foreground\":\"#ea999c\"}},{\"scope\":[\"variable.other.constant.js\",\"variable.other.constant.ts\",\"variable.other.property.js\",\"variable.other.property.ts\"],\"settings\":{\"foreground\":\"#c6d0f5\"}},{\"scope\":[\"variable.other.jsdoc\",\"comment.block.documentation variable.other\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#ea999c\"}},{\"scope\":\"storage.type.class.jsdoc\",\"settings\":{\"fontStyle\":\"\"}},{\"scope\":\"support.type.object.console.js\",\"settings\":{\"foreground\":\"#c6d0f5\"}},{\"scope\":[\"support.constant.node\",\"support.type.object.module.js\"],\"settings\":{\"foreground\":\"#ca9ee6\"}},{\"scope\":\"storage.modifier.implements\",\"settings\":{\"foreground\":\"#ca9ee6\"}},{\"scope\":[\"constant.language.null.js\",\"constant.language.null.ts\",\"constant.language.undefined.js\",\"constant.language.undefined.ts\",\"support.type.builtin.ts\"],\"settings\":{\"foreground\":\"#ca9ee6\"}},{\"scope\":\"variable.parameter.generic\",\"settings\":{\"foreground\":\"#e5c890\"}},{\"scope\":[\"keyword.declaration.function.arrow.js\",\"storage.type.function.arrow.ts\"],\"settings\":{\"foreground\":\"#81c8be\"}},{\"scope\":\"punctuation.decorator.ts\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#8caaee\"}},{\"scope\":[\"keyword.operator.expression.in.js\",\"keyword.operator.expression.in.ts\",\"keyword.operator.expression.infer.ts\",\"keyword.operator.expression.instanceof.js\",\"keyword.operator.expression.instanceof.ts\",\"keyword.operator.expression.is\",\"keyword.operator.expression.keyof.ts\",\"keyword.operator.expression.of.js\",\"keyword.operator.expression.of.ts\",\"keyword.operator.expression.typeof.ts\"],\"settings\":{\"foreground\":\"#ca9ee6\"}},{\"scope\":\"support.function.macro.julia\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#81c8be\"}},{\"scope\":\"constant.language.julia\",\"settings\":{\"foreground\":\"#ef9f76\"}},{\"scope\":\"constant.other.symbol.julia\",\"settings\":{\"foreground\":\"#ea999c\"}},{\"scope\":\"text.tex keyword.control.preamble\",\"settings\":{\"foreground\":\"#81c8be\"}},{\"scope\":\"text.tex support.function.be\",\"settings\":{\"foreground\":\"#99d1db\"}},{\"scope\":\"constant.other.general.math.tex\",\"settings\":{\"foreground\":\"#eebebe\"}},{\"scope\":\"variable.language.liquid\",\"settings\":{\"foreground\":\"#f4b8e4\"}},{\"scope\":\"comment.line.double-dash.documentation.lua storage.type.annotation.lua\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#ca9ee6\"}},{\"scope\":[\"comment.line.double-dash.documentation.lua entity.name.variable.lua\",\"comment.line.double-dash.documentation.lua variable.lua\"],\"settings\":{\"foreground\":\"#c6d0f5\"}},{\"scope\":[\"heading.1.markdown punctuation.definition.heading.markdown\",\"heading.1.markdown\",\"heading.1.quarto punctuation.definition.heading.quarto\",\"heading.1.quarto\",\"markup.heading.atx.1.mdx\",\"markup.heading.atx.1.mdx punctuation.definition.heading.mdx\",\"markup.heading.setext.1.markdown\",\"markup.heading.heading-0.asciidoc\"],\"settings\":{\"foreground\":\"#e78284\"}},{\"scope\":[\"heading.2.markdown punctuation.definition.heading.markdown\",\"heading.2.markdown\",\"heading.2.quarto punctuation.definition.heading.quarto\",\"heading.2.quarto\",\"markup.heading.atx.2.mdx\",\"markup.heading.atx.2.mdx punctuation.definition.heading.mdx\",\"markup.heading.setext.2.markdown\",\"markup.heading.heading-1.asciidoc\"],\"settings\":{\"foreground\":\"#ef9f76\"}},{\"scope\":[\"heading.3.markdown punctuation.definition.heading.markdown\",\"heading.3.markdown\",\"heading.3.quarto punctuation.definition.heading.quarto\",\"heading.3.quarto\",\"markup.heading.atx.3.mdx\",\"markup.heading.atx.3.mdx punctuation.definition.heading.mdx\",\"markup.heading.heading-2.asciidoc\"],\"settings\":{\"foreground\":\"#e5c890\"}},{\"scope\":[\"heading.4.markdown punctuation.definition.heading.markdown\",\"heading.4.markdown\",\"heading.4.quarto punctuation.definition.heading.quarto\",\"heading.4.quarto\",\"markup.heading.atx.4.mdx\",\"markup.heading.atx.4.mdx punctuation.definition.heading.mdx\",\"markup.heading.heading-3.asciidoc\"],\"settings\":{\"foreground\":\"#a6d189\"}},{\"scope\":[\"heading.5.markdown punctuation.definition.heading.markdown\",\"heading.5.markdown\",\"heading.5.quarto punctuation.definition.heading.quarto\",\"heading.5.quarto\",\"markup.heading.atx.5.mdx\",\"markup.heading.atx.5.mdx punctuation.definition.heading.mdx\",\"markup.heading.heading-4.asciidoc\"],\"settings\":{\"foreground\":\"#8caaee\"}},{\"scope\":[\"heading.6.markdown punctuation.definition.heading.markdown\",\"heading.6.markdown\",\"heading.6.quarto punctuation.definition.heading.quarto\",\"heading.6.quarto\",\"markup.heading.atx.6.mdx\",\"markup.heading.atx.6.mdx punctuation.definition.heading.mdx\",\"markup.heading.heading-5.asciidoc\"],\"settings\":{\"foreground\":\"#ca9ee6\"}},{\"scope\":\"markup.bold\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#e78284\"}},{\"scope\":\"markup.italic\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#e78284\"}},{\"scope\":\"markup.strikethrough\",\"settings\":{\"fontStyle\":\"strikethrough\",\"foreground\":\"#a5adce\"}},{\"scope\":[\"punctuation.definition.link\",\"markup.underline.link\"],\"settings\":{\"foreground\":\"#8caaee\"}},{\"scope\":[\"text.html.markdown punctuation.definition.link.title\",\"text.html.quarto punctuation.definition.link.title\",\"string.other.link.title.markdown\",\"string.other.link.title.quarto\",\"markup.link\",\"punctuation.definition.constant.markdown\",\"punctuation.definition.constant.quarto\",\"constant.other.reference.link.markdown\",\"constant.other.reference.link.quarto\",\"markup.substitution.attribute-reference\"],\"settings\":{\"foreground\":\"#babbf1\"}},{\"scope\":[\"punctuation.definition.raw.markdown\",\"punctuation.definition.raw.quarto\",\"markup.inline.raw.string.markdown\",\"markup.inline.raw.string.quarto\",\"markup.raw.block.markdown\",\"markup.raw.block.quarto\"],\"settings\":{\"foreground\":\"#a6d189\"}},{\"scope\":\"fenced_code.block.language\",\"settings\":{\"foreground\":\"#99d1db\"}},{\"scope\":[\"markup.fenced_code.block punctuation.definition\",\"markup.raw support.asciidoc\"],\"settings\":{\"foreground\":\"#949cbb\"}},{\"scope\":[\"markup.quote\",\"punctuation.definition.quote.begin\"],\"settings\":{\"foreground\":\"#f4b8e4\"}},{\"scope\":\"meta.separator.markdown\",\"settings\":{\"foreground\":\"#81c8be\"}},{\"scope\":[\"punctuation.definition.list.begin.markdown\",\"punctuation.definition.list.begin.quarto\",\"markup.list.bullet\"],\"settings\":{\"foreground\":\"#81c8be\"}},{\"scope\":\"markup.heading.quarto\",\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":[\"entity.other.attribute-name.multipart.nix\",\"entity.other.attribute-name.single.nix\"],\"settings\":{\"foreground\":\"#8caaee\"}},{\"scope\":\"variable.parameter.name.nix\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#c6d0f5\"}},{\"scope\":\"meta.embedded variable.parameter.name.nix\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#babbf1\"}},{\"scope\":\"string.unquoted.path.nix\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#f4b8e4\"}},{\"scope\":[\"support.attribute.builtin\",\"meta.attribute.php\"],\"settings\":{\"foreground\":\"#e5c890\"}},{\"scope\":\"meta.function.parameters.php punctuation.definition.variable.php\",\"settings\":{\"foreground\":\"#ea999c\"}},{\"scope\":\"constant.language.php\",\"settings\":{\"foreground\":\"#ca9ee6\"}},{\"scope\":\"text.html.php support.function\",\"settings\":{\"foreground\":\"#99d1db\"}},{\"scope\":\"keyword.other.phpdoc.php\",\"settings\":{\"fontStyle\":\"\"}},{\"scope\":[\"support.variable.magic.python\",\"meta.function-call.arguments.python\"],\"settings\":{\"foreground\":\"#c6d0f5\"}},{\"scope\":[\"support.function.magic.python\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#99d1db\"}},{\"scope\":[\"variable.parameter.function.language.special.self.python\",\"variable.language.special.self.python\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#e78284\"}},{\"scope\":[\"keyword.control.flow.python\",\"keyword.operator.logical.python\"],\"settings\":{\"foreground\":\"#ca9ee6\"}},{\"scope\":\"storage.type.function.python\",\"settings\":{\"foreground\":\"#ca9ee6\"}},{\"scope\":[\"support.token.decorator.python\",\"meta.function.decorator.identifier.python\"],\"settings\":{\"foreground\":\"#99d1db\"}},{\"scope\":[\"meta.function-call.python\"],\"settings\":{\"foreground\":\"#8caaee\"}},{\"scope\":[\"entity.name.function.decorator.python\",\"punctuation.definition.decorator.python\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#ef9f76\"}},{\"scope\":\"constant.character.format.placeholder.other.python\",\"settings\":{\"foreground\":\"#f4b8e4\"}},{\"scope\":[\"support.type.exception.python\",\"support.function.builtin.python\"],\"settings\":{\"foreground\":\"#ef9f76\"}},{\"scope\":[\"support.type.python\"],\"settings\":{\"foreground\":\"#ef9f76\"}},{\"scope\":\"constant.language.python\",\"settings\":{\"foreground\":\"#ca9ee6\"}},{\"scope\":[\"meta.indexed-name.python\",\"meta.item-access.python\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#ea999c\"}},{\"scope\":\"storage.type.string.python\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#a6d189\"}},{\"scope\":\"meta.function.parameters.python\",\"settings\":{\"fontStyle\":\"\"}},{\"scope\":[\"string.regexp punctuation.definition.string.begin\",\"string.regexp punctuation.definition.string.end\"],\"settings\":{\"foreground\":\"#f4b8e4\"}},{\"scope\":\"keyword.control.anchor.regexp\",\"settings\":{\"foreground\":\"#ca9ee6\"}},{\"scope\":\"string.regexp.ts\",\"settings\":{\"foreground\":\"#c6d0f5\"}},{\"scope\":[\"punctuation.definition.group.regexp\",\"keyword.other.back-reference.regexp\"],\"settings\":{\"foreground\":\"#a6d189\"}},{\"scope\":\"punctuation.definition.character-class.regexp\",\"settings\":{\"foreground\":\"#e5c890\"}},{\"scope\":\"constant.other.character-class.regexp\",\"settings\":{\"foreground\":\"#f4b8e4\"}},{\"scope\":\"constant.other.character-class.range.regexp\",\"settings\":{\"foreground\":\"#f2d5cf\"}},{\"scope\":\"keyword.operator.quantifier.regexp\",\"settings\":{\"foreground\":\"#81c8be\"}},{\"scope\":\"constant.character.numeric.regexp\",\"settings\":{\"foreground\":\"#ef9f76\"}},{\"scope\":[\"punctuation.definition.group.no-capture.regexp\",\"meta.assertion.look-ahead.regexp\",\"meta.assertion.negative-look-ahead.regexp\"],\"settings\":{\"foreground\":\"#8caaee\"}},{\"scope\":[\"meta.annotation.rust\",\"meta.annotation.rust punctuation\",\"meta.attribute.rust\",\"punctuation.definition.attribute.rust\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#e5c890\"}},{\"scope\":[\"meta.attribute.rust string.quoted.double.rust\",\"meta.attribute.rust string.quoted.single.char.rust\"],\"settings\":{\"fontStyle\":\"\"}},{\"scope\":[\"entity.name.function.macro.rules.rust\",\"storage.type.module.rust\",\"storage.modifier.rust\",\"storage.type.struct.rust\",\"storage.type.enum.rust\",\"storage.type.trait.rust\",\"storage.type.union.rust\",\"storage.type.impl.rust\",\"storage.type.rust\",\"storage.type.function.rust\",\"storage.type.type.rust\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#ca9ee6\"}},{\"scope\":\"entity.name.type.numeric.rust\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#ca9ee6\"}},{\"scope\":\"meta.generic.rust\",\"settings\":{\"foreground\":\"#ef9f76\"}},{\"scope\":\"entity.name.impl.rust\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#e5c890\"}},{\"scope\":\"entity.name.module.rust\",\"settings\":{\"foreground\":\"#ef9f76\"}},{\"scope\":\"entity.name.trait.rust\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#e5c890\"}},{\"scope\":\"storage.type.source.rust\",\"settings\":{\"foreground\":\"#e5c890\"}},{\"scope\":\"entity.name.union.rust\",\"settings\":{\"foreground\":\"#e5c890\"}},{\"scope\":\"meta.enum.rust storage.type.source.rust\",\"settings\":{\"foreground\":\"#81c8be\"}},{\"scope\":[\"support.macro.rust\",\"meta.macro.rust support.function.rust\",\"entity.name.function.macro.rust\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#8caaee\"}},{\"scope\":[\"storage.modifier.lifetime.rust\",\"entity.name.type.lifetime\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#8caaee\"}},{\"scope\":\"string.quoted.double.rust constant.other.placeholder.rust\",\"settings\":{\"foreground\":\"#f4b8e4\"}},{\"scope\":\"meta.function.return-type.rust meta.generic.rust storage.type.rust\",\"settings\":{\"foreground\":\"#c6d0f5\"}},{\"scope\":\"meta.function.call.rust\",\"settings\":{\"foreground\":\"#8caaee\"}},{\"scope\":\"punctuation.brackets.angle.rust\",\"settings\":{\"foreground\":\"#99d1db\"}},{\"scope\":\"constant.other.caps.rust\",\"settings\":{\"foreground\":\"#ef9f76\"}},{\"scope\":[\"meta.function.definition.rust variable.other.rust\"],\"settings\":{\"foreground\":\"#ea999c\"}},{\"scope\":\"meta.function.call.rust variable.other.rust\",\"settings\":{\"foreground\":\"#c6d0f5\"}},{\"scope\":\"variable.language.self.rust\",\"settings\":{\"foreground\":\"#e78284\"}},{\"scope\":[\"variable.other.metavariable.name.rust\",\"meta.macro.metavariable.rust keyword.operator.macro.dollar.rust\"],\"settings\":{\"foreground\":\"#f4b8e4\"}},{\"scope\":[\"comment.line.shebang\",\"comment.line.shebang punctuation.definition.comment\",\"comment.line.shebang\",\"punctuation.definition.comment.shebang.shell\",\"meta.shebang.shell\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#f4b8e4\"}},{\"scope\":\"comment.line.shebang constant.language\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#81c8be\"}},{\"scope\":[\"meta.function-call.arguments.shell punctuation.definition.variable.shell\",\"meta.function-call.arguments.shell punctuation.section.interpolation\",\"meta.function-call.arguments.shell punctuation.definition.variable.shell\",\"meta.function-call.arguments.shell punctuation.section.interpolation\"],\"settings\":{\"foreground\":\"#e78284\"}},{\"scope\":\"meta.string meta.interpolation.parameter.shell variable.other.readwrite\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#ef9f76\"}},{\"scope\":[\"source.shell punctuation.section.interpolation\",\"punctuation.definition.evaluation.backticks.shell\"],\"settings\":{\"foreground\":\"#81c8be\"}},{\"scope\":\"entity.name.tag.heredoc.shell\",\"settings\":{\"foreground\":\"#ca9ee6\"}},{\"scope\":\"string.quoted.double.shell variable.other.normal.shell\",\"settings\":{\"foreground\":\"#c6d0f5\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CG6Dc4jp.js",
    "content": "var Q=Uint8Array.from(atob(\"AGFzbQEAAAABoQEWYAJ/fwF/YAF/AX9gA39/fwF/YAR/f39/AX9gAX8AYAV/f39/fwF/YAN/f38AYAJ/fwBgBn9/f39/fwF/YAd/f39/f39/AX9gAAF/YAl/f39/f39/f38Bf2AIf39/f39/f38Bf2AAAGAEf39/fwBgA39+fwF+YAZ/fH9/f38Bf2AAAXxgBn9/f39/fwBgAnx/AXxgAn5/AX9gBX9/f39/AAJ1BANlbnYVZW1zY3JpcHRlbl9tZW1jcHlfYmlnAAYDZW52EmVtc2NyaXB0ZW5fZ2V0X25vdwARFndhc2lfc25hcHNob3RfcHJldmlldzEIZmRfd3JpdGUAAwNlbnYWZW1zY3JpcHRlbl9yZXNpemVfaGVhcAABA9MB0QENBAABAAECAgsCAAIEBAACAQEAAQMCAwkCBgUDBQgCAwwMAwkJAwgDAQIFAwMEAQUHCwgCAgsABQUBAgQCBgIAAQACBAIABwMHBgcAAwACAAICAAQBAgcAAgUCAAEBBgYABgQACAUICQsJDAAAAAAAAAACAgIDAAIDAgADAQABAAACBQICAAESAQEEAgIGAgUDAQUAAgEBAAoBAAEAAwMCAAACBgIOAgEPAQEBChMCBQkGAQ4UFRAHAwIBAAEECggCAQgIBwcNAQQABwABCgQBBQQFAXABMzMFBwEBgAKAgAIGDgJ/AUHQj9MCC38BQQALB5QCDwZtZW1vcnkCABFfX3dhc21fY2FsbF9jdG9ycwAEGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBABBfX2Vycm5vX2xvY2F0aW9uALABB29tYWxsb2MAwAEFb2ZyZWUAwQEQZ2V0TGFzdE9uaWdFcnJvcgDCARFjcmVhdGVPbmlnU2Nhbm5lcgDEAQ9mcmVlT25pZ1NjYW5uZXIAxQEYZmluZE5leHRPbmlnU2Nhbm5lck1hdGNoAMYBG2ZpbmROZXh0T25pZ1NjYW5uZXJNYXRjaERiZwDHAQlzdGFja1NhdmUA0QEMc3RhY2tSZXN0b3JlANIBCnN0YWNrQWxsb2MA0wEMZHluQ2FsbF9qaWppANQBCVIBAEEBCzIFCgsPHC9vcHRxcnN1ugG7Ab0BBgcICYABfoEBggGDAX97fIUBmwF9hAFvnAFvnQGeAZ8BoAGhAZIBogGYAZcBowGkAaUBqwGqAawBCuGICtEBFgBB/MsSQYzLEjYCAEG0yxJBKjYCAAsDAAELZgEDf0EBIQICQCAAKAIEIgMgACgCACIAayIEIAEoAgQgASgCACIBa0cNACAAIANJBEAgACAEaiEDA0AgAC0AACABLQAAayICDQIgAUEBaiEBIABBAWoiACADRw0ACwtBACECCyACC+cBAQZ/AkAgACgCACIBIAAoAgQiAE8NACAAIAFrIgJBB3EhAwJAIAFBf3MgAGpBB0kEQEEAIQIgASEADAELIAJBeHEhBkEAIQIDQCABLQAHIAEtAAYgAS0ABSABLQAEIAEtAAMgAS0AAiABLQABIAEtAAAgAkHlB2xqQeUHbGpB5QdsakHlB2xqQeUHbGpB5QdsakHlB2xqQeUHbGohAiABQQhqIgAhASAFQQhqIgUgBkcNAAsLIANFDQADQCAALQAAIAJB5QdsaiECIABBAWohACAEQQFqIgQgA0cNAAsLIAJBBXYgAmoLgAEBA39BASECAkAgACgCACABKAIARw0AIAAoAgQgASgCBEcNACAAKAIMIgMgACgCCCIAayIEIAEoAgwgASgCCCIBa0cNACAAIANJBEAgACAEaiEDA0AgAC0AACABLQAAayICDQIgAUEBaiEBIABBAWoiACADRw0ACwtBACECCyACC/MBAQd/AkAgACgCCCIBIAAoAgwiA08NACADIAFrIgJBB3EhBAJAIAFBf3MgA2pBB0kEQEEAIQIgASEDDAELIAJBeHEhB0EAIQIDQCABLQAHIAEtAAYgAS0ABSABLQAEIAEtAAMgAS0AAiABLQABIAEtAAAgAkHlB2xqQeUHbGpB5QdsakHlB2xqQeUHbGpB5QdsakHlB2xqQeUHbGohAiABQQhqIgMhASAGQQhqIgYgB0cNAAsLIARFDQADQCADLQAAIAJB5QdsaiECIANBAWohAyAFQQFqIgUgBEcNAAsLIAAvAQAgACgCBCACQQV2IAJqamoLJQAgASgCABDMASABKAIUIgIEQCACEMwBCyAAEMwBIAEQzAFBAgtqAQJ/AkAgASgCCCIAQQJOBEAgASgCFCEDQQAhAANAIAMgAEECdGoiBCACIAQoAgBBAnRqKAIANgIAIABBAWoiACABKAIISA0ACwwBCyAAQQFHDQAgASACIAEoAhBBAnRqKAIANgIQC0EAC/0JAQd/IwBBEGsiDiQAQZh+IQkCQCAFQQRLDQAgB0EASA0AIAUgB0gNACADQQNxRQ0AIARFDQAgBQRAIAUgB2shDANAIAYgCkECdGooAgAiC0UNAgJAIAogDE4EQCALQRBLDQRBASALdEGWgARxDQEMBAsgC0EBa0EFSQ0AIAtBEGtBAUsNAwsgCkEBaiIKIAVHDQALCyAAIAEgAhANRQRAQZx+IQkMAQsjAEEgayIJJABB5L8SKAIAIQwgDkEMaiIPQQA2AgACQCACIAFrIg1BAEwEQEGcfiELDAELIAlBADYCDAJAAkAgDARAIAkgAjYCHCAJIAE2AhggCUEANgIUIAkgADYCECAMIAlBEGogCUEMahCPASEKAkAgAEGUvRJGDQAgCg0AIAAtAExBAXFFDQAgCSACNgIcIAkgATYCGCAJQQA2AhQgCUGUvRI2AhAgDCAJQRBqIAlBDGoQjwEaCyAJKAIMIgpFDQEgCigCCCELDAILQYSYERCMASIMRQRAQXshCwwDC0HkvxIgDDYCAAtBeyELQQwQywEiCkUNASAKIAAgASACEHYiATYCACABRQRAIAoQzAEMAgtBEBDLASICRQ0BIAIgATYCCCACQQA2AgQgAiAANgIAIAIgASANajYCDCAMIAIgChCQASILBEAgAhDMASALQQBIDQILQei/EkHovxIoAgBBAWoiCzYCACAKIA02AgQgCiALNgIICyAPIAo2AgALIAlBIGokAAJAIAsiAUEASA0AQeC/EigCACIJRQRAAn9B4L8SQQA2AgBBDBDLASICBH9B+AUQywEiCUUEQCACEMwBQXsMAgsgAiAJNgIIIAJCgICAgKABNwIAQeC/EiACNgIAQQAFQXsLCyIJDQJB4L8SKAIAIQkLIAkoAgAiCiABTARAA0AgCSgCCCELIAkoAgQiAiAKTAR/IAsgAkGYAWwQzQEiC0UEQEF7IQkMBQsgCSALNgIIIAkgAkEBdDYCBCAJKAIABSAKC0HMAGwgC2pBAEHMABCoARogCSAJKAIAIgtBAWoiCjYCACABIAtKDQALCyAJKAIIIgwgAUHMAGxqIgogBzYCFCAKIAU2AhAgCkEANgIMIAogBDYCCCAKIAM2AgRBACEJIApBADYCACAKIA4oAgwoAgA2AkgCQCAFRQ0AIAVBA3EhBCAFQQFrQQNPBEAgBUF8cSECIAwgAUHMAGxqQRhqIQtBACEDA0AgCyAJQQJ0IgpqIAYgCmooAgA2AgAgCyAKQQRyIg1qIAYgDWooAgA2AgAgCyAKQQhyIg1qIAYgDWooAgA2AgAgCyAKQQxyIgpqIAYgCmooAgA2AgAgCUEEaiEJIANBBGoiAyACRw0ACwsgBEUNAEEAIQogDCABQcwAbGohAwNAIAMgCUECdCILaiAGIAtqKAIANgIYIAlBAWohCSAKQQFqIgogBEcNAAsLIAdBAEwNAEFiIQkgCEUNASAFIAdrIQlBACEKIAwgAUHMAGxqIQYDQAJAIAYgCUECdGooAhhBBEYEQCAAIAggCkEDdGoiBygCACAHKAIEEHYiC0UEQEF7IQkMBQsgBiAJQQN0aiIDIAs2AiggAyALIAcoAgQgBygCAGtqNgIsDAELIAYgCUEDdGogCCAKQQN0aikCADcCKAsgCkEBaiEKIAlBAWoiCSAFSA0ACwsgASEJCyAOQRBqJAAgCQtoAQR/AkAgASACTw0AIAEhAwNAIAMgAiAAKAIUEQAAIgVBX3FBwQBrQRpPBEAgBUEwa0EKSSIGIAEgA0ZxDQIgBUHfAEYgBnJFDQILIAMgACgCABEBACADaiIDIAJJDQALQQEhBAsgBAs3AQF/AkAgAUEATA0AIAAoAoQDIgBFDQAgACgCDCABSA0AIAAoAhQgAUHcAGxqQdwAayECCyACCwkAIAAQzAFBAgsQACAABEAgABARIAAQzAELC7cCAQJ/AkAgAEUNAAJAAkACQAJAAkACQAJAAkAgACgCAA4JAAIIBAUDBgEBCAsgACgCMEUNByAAKAIMIgFFDQcgASAAQRhqRw0GDAcLIAAoAgwiAQRAIAEQESABEMwBCyAAKAIQIgBFDQYDQCAAKAIQIQEgACgCDCICBEAgAhARIAIQzAELIAAQzAEgASIADQALDAYLIAAoAjAiAUUNBSABKAIAIgBFDQQgABDMAQwECyAAKAIMIgEEQCABEBEgARDMAQsgACgCEEEDRw0EIAAoAhQiAQRAIAEQESABEMwBCyAAKAIYIgFFDQQgARARDAMLIAAoAigiAUUNAwwCCyAAKAIMIgFFDQIgARARDAELIAAoAgwiAQRAIAEQESABEMwBCyAAKAIgIgFFDQEgARARCyABEMwBCwvlAgIFfwF+IABBADYCAEF6IQMCQCABKAIAIgJBCEsNAEEBIAJ0QccDcUUNAEEBQTgQzwEiAkUEQEF7DwsgAiABKQIAIgc3AgAgAiABKQIwNwIwIAIgASkCKDcCKCACIAEpAiA3AiAgAkEYaiIDIAEpAhg3AgAgAiABKQIQNwIQIAIgASkCCDcCCAJAAkACQAJAIAenDgIAAQILIAEoAhAhBCABKAIMIQEgAkEANgIwIAIgAzYCECACIAM2AgwgAkEANgIUIAIgASAEEBMiA0UNAQwCCyABKAIwIgRFDQAgAkEMEMsBIgE2AjBBeyEDIAFFDQECQCAEKAIIIgZBAEwEQCABQQA2AgBBACEGDAELIAEgBhDLASIFNgIAIAUNACABEMwBIAJBADYCMAwCCyABIAY2AgggASAEKAIEIgM2AgQgBSAEKAIAIAMQpgEaCyAAIAI2AgBBAA8LIAIQESACEMwBCyADC4QCAQV/IAIgAWsiAkEASgRAAkACQCAAKAIQIAAoAgwiBWsiBCACaiIDQRhIIAAoAjAiBkEATHFFBEAgBiADQRBqIgdOBEAgBCAFaiABIAIQpgEgAmpBADoAAAwDCyAAQRhqIAVGBEAgA0ERahDLASIDRQRAQXsPCyAEQQBMDQIgAyAFIAQQpgEgBGpBADoAAAwCCyADQRFqIQMCfyAFBEAgBSADEM0BDAELIAMQywELIgMNAUF7DwsgBCAFaiABIAIQpgEgAmpBADoAAAwBCyADIARqIAEgAhCmASACakEAOgAAIAAgBzYCMCAAIAM2AgwLIAAgACgCDCAEaiACajYCEAtBAAsnAQF/QQFBOBDPASIBBEAgAUEANgIQIAEgADYCDCABQQc2AgALIAELJwEBf0EBQTgQzwEiAQRAIAFBADYCECABIAA2AgwgAUEINgIACyABCz0BAn9BAUE4EM8BIgIEQCACIAJBGGoiAzYCECACIAM2AgwgAiAAIAEQE0UEQCACDwsgAhARIAIQzAELQQALvAUBBX8gACgCECECIAAoAgwhAQJ/AkAgACgCGARAAkACQCACDgIAAQMLQQFBfyAAKAIUIgNBf0YbQQAgA0EBRxsMAwsgACgCFEF/Rw0BQQIMAgsCQAJAIAIOAgABAgtBA0EEQX8gACgCFCIDQX9GGyADQQFGGwwCCyAAKAIUQX9HDQBBBQwBC0F/CyEFIAEoAhAhAwJAAkACQAJAAkACfyABKAIYBEACQAJAIAMOAgABBAtBAUF/IAEoAhQiBEF/RhtBACAEQQFHGwwCCyABKAIUQX9HDQJBAgwBCwJAAkAgAw4CAAEDC0EDQQRBfyABKAIUIgRBf0YbIARBAUYbDAELIAEoAhRBf0cNAUEFCyEEIAVBAEgNACAEQQBODQELIAIgACgCFEcNAyADIAEoAhRHDQNBACEEAkAgAkUNACADRQ0AQX8gAiADbEH/////ByADbSACTBshBAsgBCICQQBODQFBt34PCwJAAkACQAJAAkACQCAEQRhsQYAIaiAFQQJ0aigCAEEBaw4GAAECAwQFCAsgACABKQIANwIAIAAgASkCMDcCMCAAIAEpAig3AiggACABKQIgNwIgIAAgASkCGDcCGCAAIAEpAhA3AhAgACABKQIINwIIDAYLIAEoAgwhAiAAQQE2AhggAEKAgICAcDcCECAAIAI2AgwMBQsgASgCDCECIABBATYCGCAAQoGAgIBwNwIQIAAgAjYCDAwECyABKAIMIQIgAEEANgIYIABCgICAgHA3AhAgACACNgIMDAMLIAEoAgwhAiAAQQA2AhggAEKAgICAEDcCECAAIAI2AgwMAgsgAEEANgIYIABCgICAgBA3AhAgAUEBNgIYIAFCgYCAgHA3AhBBAA8LIAAgAjYCECAAIAI2AhQgACABKAIMNgIMCyABQQA2AgwgARARIAEQzAELQQALsQEBBX8gAEEANgIAQQFBOBDPASIFRQRAQXsPCyAFQQE2AgAgAkEASgRAIAVBMGohBwNAAkACQCABKAIMQQFMBEAgAyAGQQJ0aiIEKAIAIAEoAhgRAQBBAUYNAQsgByADIAZBAnRqKAIAIgQgBBAZGgwBCyAFIAQoAgAiBEEDdkH8////AXFqQRBqIgggCCgCAEEBIAR0cjYCAAsgBkEBaiIGIAJHDQALCyAAIAU2AgBBAAvDBwEJfyABIAIgASACSRshCgJAAkAgACgCACIDRQRAIABBDBDLASIDNgIAQXshBSADRQ0CIANBFBDLASIINgIAIAhFBEAgAxDMASAAQQA2AgBBew8LIANBFDYCCCAIQQA2AAAgA0EENgIEIAhBBGohBkEAIQAMAQsgAygCACIIQQRqIQZBACEAIAgoAgAiCUEATA0AIAkhBANAIAAgBGoiBUEBdSIHQQFqIAAgCiAGIAVBAnRBBHJqKAIASyIFGyIAIAQgByAFGyIESA0ACwsgCSAJIAAgASACIAEgAksbIgtBf0YbIgRKBEAgC0EBaiEBIAkhBQNAIAQgBCAFaiIHQQF1IgJBAWogASAGIAdB/v///wNxQQJ0aigCAEkiBxsiBCACIAUgBxsiBUgNAAsLQbN+IQUgAEEBaiIHIARrIgIgCWoiAUGQzgBLDQAgAkEBRwRAIAsgCCAEQQN0aigCACIFIAUgC0kbIQsgCiAGIABBA3RqKAIAIgUgBSAKSxshCgsCQCAEIAdGDQAgBCAJTw0AIAdBA3RBBHIhBiAEQQN0QQRyIQcgAkEASgRAAkAgCSAEa0EDdCICIAZqIgUgAygCCCIETQ0AA0AgBEEBdCIEIAVJDQALIAMgBDYCCCADIAggBBDNASIINgIAIAgNAEF7DwsgBiAIaiAHIAhqIAIQpwEgBSADKAIETQ0BIAMgBTYCBAwBCyAGIAhqIAcgCGogAygCBCAHaxCnASADIAMoAgQgBiAHa2o2AgQLIABBA3QiB0EMaiEFIAMoAggiBiEEA0AgBCIAQQF0IQQgACAFSQ0ACyAAIAZHBEAgAyADKAIAIAAQzQEiBDYCACAERQRAQXsPCyADIAA2AgggACEGCwJAIAdBCGoiBCAGSwRAA0AgBkEBdCIGIARJDQALIAMgBjYCCCADIAMoAgAgBhDNASIANgIAIAANAUF7DwsgAygCACEACyAAIAdBBHJqIAo2AAAgBCADKAIESwRAIAMgBDYCBAsCQCAFIAMoAggiAEsEQANAIABBAXQiACAFSQ0ACyADIAA2AgggAyADKAIAIAAQzQEiADYCACAADQFBew8LIAMoAgAhAAsgACAEaiALNgAAIAUgAygCBEsEQCADIAU2AgQLAkAgAygCCCIAQQRJBEADQCAAQQJJIQQgAEEBdCIFIQAgBA0ACyADIAU2AgggAyADKAIAIAUQzQEiADYCACAADQFBew8LIAMoAgAhAAsgACABNgAAQQAhBSADKAIEQQNLDQAgA0EENgIECyAFC5ouAQl/IwBBMGsiBSQAIAMoAgwhCCADKAIIIQcgBSABKAIAIgY2AiQCQAJAAkACQCAAKAIEBEAgACgCDCEMQQEhCyAGIQQCQAJAA0ACQAJAAkAgAiAESwRAIAQgAiAHKAIUEQAAIQogBCAHKAIAEQEAIARqIQkgCkEKRg0DIApBIEYNAyAKQf0ARg0BCyAFIAQ2AiwgBUEsaiACIAcgBUEoaiAMEB4iCw0BQQAhCyAFKAIsIQkLIAUgCTYCJCAJIQYLIAsOAgIDCAsgCSIEIAJJDQALQfB8IQsMBgsgAEEENgIAIAAgBSgCKDYCFAwCCyAAQQA2AgQLIAIgBk0NAiAIQQZqIQoCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAA0AgACAGNgIQIABBADYCDCAAQQM2AgAgBiACIAcoAhQRAAAhBCAGIAcoAgARAQAgBmohBgJAIAQgCCgCEEcNACAKLQAAQRBxDQAgBSAGNgIkQZh/IQsgAiAGTQ0TIAAgBjYCECAGIAIgBygCFBEAACEJIAUgBiAHKAIAEQEAIAZqIgo2AiRBASEEIABBATYCCCAAIAk2AhQCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAlBJ2sOVh8FBgABLi4uLicmJiYmJiYmJiYuLg0uDgIuGgouEi4uHRQuLhUuLhcYLSwWEC4lLggZDBsuLi4uLh4uCS4RLi4rEy4uKi4uLiAtLi4PLiQuByELHAMELgsgCC0AAEEIcUUNPgw6CyAILQAAQSBxRQ09DDgLQQAhBiAILQAAQYABcUUNPAw5CyAILQABQQJxRQ07IAVBJGogAiAAIAMQHyILQQBIDT4gCw4DOTs1OwsgCC0AAUEIcUUNOiAAQQ02AgAMOgsgCC0AAUEgcUUNOSAAQQ42AgAMOQsgCC0AAUEgcUUNOCAAQQ82AgAMOAsgCC0AAkEEcUUNNyAAQgw3AhQgAEEGNgIADDcLIAgtAAJBBHFFDTYgAEKMgICAEDcCFCAAQQY2AgAMNgsgCC0AAkEQcUUNNSAAQYAINgIUIABBCTYCAAw1CyAILQACQRBxRQ00IABBgBA2AhQgAEEJNgIADDQLIAgtAANBBHFFDTMgAEGAgAQ2AhQgAEEJNgIADDMLIAgtAANBBHFFDTIgAEGAgAg2AhQgAEEJNgIADDILIAgtAAJBCHFFDTEgAEGAIDYCFCAAQQk2AgAMMQsgCC0AAkEIcUUNMCAAQYDAADYCFCAAQQk2AgAMMAsgCC0AAkEgcUUNLyAAQgk3AhQgAEEGNgIADC8LIAgtAAJBIHFFDS4gAEKJgICAEDcCFCAAQQY2AgAMLgsgCC0AAkHAAHFFDS0gAEIENwIUIABBBjYCAAwtCyAILQACQcAAcUUNLCAAQoSAgIAQNwIUIABBBjYCAAwsCyAILQAGQQhxRQ0rIABCCzcCFCAAQQY2AgAMKwsgCC0ABkEIcUUNKiAAQouAgIAQNwIUIABBBjYCAAwqCyAILQAGQcAAcUUNKSAAQRM2AgAMKQsgCC0ABkGAAXFFDSggAEEUNgIADCgLIAgtAAdBAXFFDScgAEEVNgIADCcLIAgtAAdBAXFFDSYgAEEWNgIADCYLIAgtAAdBBHFFDSUgAEEXNgIADCULIAgtAAFBwABxRQ0kDB0LIAgtAAlBEHENGyAILQABQcAAcUUNIyAAQYACNgIUIABBCTYCAAwjC0GrfiELIAgtAAlBEHENJSAILQABQcAAcUUNIgwaCyAILQABQYABcUUNISAAQcAANgIUIABBCTYCAAwhCyAILQAFQYABcQ0ZDCALIAgtAAVBgAFxDRcMHwsgAiAKTQ0eIAogAiAHKAIUEQAAQfsARw0eIAgoAgBBAE4NHiAFIAogBygCABEBACAKajYCJCAFQSRqIAJBCyAHIAVBKGoQICILQQBIDSFBCCEGIAUoAiQiBCACTw0BIAQgAiAHKAIUEQAAQf8ASw0BIAcoAjAhCUGsfiELIAQgAiAHKAIUEQAAQQQgCREAAEUNAQwhCyACIApNDR0gCiACIAcoAhQRAAAhBiAIKAIAIQQgBkH7AEcNASAEQYCAgIAEcUUNASAFIAogBygCABEBACAKajYCJCAFQSRqIAJBAEEIIAcgBUEoahAhIgtBAEgNIEEQIQYgBSgCJCIEIAJPDQAgBCACIAcoAhQRAABB/wBLDQAgBygCMCEJQax+IQsgBCACIAcoAhQRAABBCyAJEQAADSALIAAgBjYCDCAKIAcoAgARAQAgCmogBEkEQEHwfCELIAIgBE0NIAJAIAQgAiAHKAIUEQAAQf0ARgRAIAUgBCAHKAIAEQEAIARqNgIkDAELIAAoAgwhCEEAIQNBACEMIwBBEGsiCiQAAkACQCACIgYgBE0NAANAIAQgBiAHKAIUEQAAIQkgBCAHKAIAEQEAIQICQAJAAkAgCUEKRg0AIAlBIEYNACAJQf0ARw0BIAMhBAwFCwJAIAIgBGoiAiAGTw0AA0AgAiIEIAYgBygCFBEAACEJIAQgBygCABEBACECIAlBIEcgCUEKR3ENASACIARqIgIgBkkNAAsLIAlBCkYNAyAJQSBGDQMMAQsgDEUNACAIQRBGBEAgCUH/AEsNA0GsfiEEIAlBCyAHKAIwEQAARQ0DDAQLIAhBCEcNAiAJQf8ASw0CIAlBBCAHKAIwEQAARQ0CQax+IQQgCUE4Tw0CDAMLIAlB/QBGBEAgAyEEDAMLIAogBDYCDCAKQQxqIAYgByAKQQhqIAgQHiIEDQJBASEMIANBAWohAyAKKAIMIgQgBkkNAAsLQfB8IQQLIApBEGokACAEQQBIBEAgBCELDCILIARFDSEgAEEBNgIECyAAQQQ2AgAgACAFKAIoNgIUDB0LIAUgCjYCJAwcCyAEQYCAgIACcUUNGyAFQSRqIAJBAEECIAcgBUEoahAhIgtBAEgNHiAFLQAoIQQgBSgCJCECIABBEDYCDCAAQQE2AgAgACAEQQAgAiAKRxs6ABQMGwsgAiAKTQ0aQQQhBCAILQAFQcAAcUUNGgwRCyACIApNDRlBCCEEIAgtAAlBEHENEAwZCyAFIAY2AiQCQCAFQSRqIAIgBxAiIgRB6AdLDQAgCC0AAkEBcUUNACADKAI0IgogBEggBEEKT3ENACAILQAIQSBxBEBBsH4hCyAEIApKDR0gBEEDdCADKAKAASICIANBQGsgAhtqKAIARQ0dCyAAQQE2AhQgAEEHNgIAIABCADcCICAAIAQ2AhgMGQsgCUF+cUE4RgRAIAUgBiAHKAIAEQEAIAZqNgIkDBkLIAUgBjYCJCAILQADQRBxRQ0CIAYhCgwBCyAILQADQRBxRQ0XCyAFQSRqIAJBAkEDIAlBMEYbIAcgBUEoahAgQQBIBEBBuH4hCwwaCyAFLQAoIQQgBSgCJCECIABBCDYCDCAAQQE2AgAgACAEQQAgAiAKRxs6ABQMFgsgBSAGIAcoAgARAQAgBmo2AiQMFQsgAiAKTQ0UIAgtAAVBAXFFDRQgCiACIAcoAhQRAAAhBCAFIAogBygCABEBACAKaiIMNgIkQQAhByAEQTxGDQogBEEnRg0KIAUgCjYCJAwUCyACIApNDRMgCC0ABUECcUUNEyAKIAIgBygCFBEAACEEIAUgCiAHKAIAEQEAIApqIgw2AiRBACEHIARBPEYNCCAEQSdGDQggBSAKNgIkDBMLIAgtAARBAXFFDRIgAEERNgIADBILIAIgCk0NESAKIAIgBygCFBEAAEH7AEcNESAILQAGQQFxRQ0RIAUgCiAHKAIAEQEAIApqIgQ2AiQgACAJQdAARjYCGCAAQRI2AgAgAiAETQ0RIAgtAAZBAnFFDREgBCACIAcoAhQRAAAhAiAFIAQgBygCABEBACAEajYCJCACQd4ARgRAIAAgACgCGEU2AhgMEgsgBSAENgIkDBELIAUgBjYCJCAFQSRqIAIgAyAFQSxqECMiC0UEQCAFKAIsIAMoAggoAhgRAQAiBEEfdSAEcSELCyALQQBIDRMgBSgCLCIEIAAoAhRHBEAgACAENgIUIABBBDYCAAwRCyAFIAAoAhAiBCAHKAIAEQEAIARqNgIkDBALIABBADYCCCAAIAQ2AhQCQAJAAkACQAJAIARFDQACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAIKAIAIglBAXFFDQAgBCAIKAIURg0BIAQgCCgCGEYNBCAEIAgoAhxGDQggBCAIKAIgRg0GIAQgCCgCJEcNACAFIAY2AiQgAEEMNgIADCcLAkAgBEEJaw50EhITEhITExMTExMTExMTExMTExMTExMSExMRDhMTEwsMAwUTEwATExMTExMTExMTExMTExMTBxMTExMTExMTExMTExMTExMTExMTExMTExMTEw8TEA0TExMTExMTExMTExMTExMTExMTExMTExMTExMTCQoTCyAFIAY2AiQgCUECcQ0BDCYLIAUgBjYCJAsgAEEFNgIADCQLIAUgBjYCJCAJQQRxDR8MIwsgBSAGNgIkDB4LIAUgBjYCJCAJQRBxDRwMIQsgBSAGNgIkDBsLIAUgBjYCJCAJQcAAcUUNHwwTCyAFIAY2AiQMEgsgBSAGNgIkIAlBgAJxRQ0dIAVBJGogAiAAIAMQHyILQQBIDSACQCALDgMcHgAeCyAILQAJQQJxRQ0bDBwLIAUgBjYCJCAJQYAIcUUNHCAAQQ02AgAMHAsCQCACIAZNDQAgBiACIAcoAhQRAABBP0cNACAILQAEQQJxRQ0AAkAgAiAGIAcoAgARAQAgBmoiBEsEQCAEIAIgBygCFBEAACIJQSNGBEAgBCACIAcoAhQRAAAaIAQgBygCABEBACAEaiIGIAJPDQwDQCAGIAIgBygCFBEAACEEIAYgBygCABEBACAGaiEGAkAgCCgCECAERgRAIAIgBk0NASAGIAIgBygCFBEAABogBiAHKAIAEQEAIAZqIQYMAQsgBEEpRg0QCyACIAZLDQALIAUgBjYCJAwNCyAFIAQ2AiQgCC0AB0EIcQRAAkACQAJAAkAgCUEmaw4IAAICAgIDAgMBCyAFIAQgBygCABEBACAEaiIGNgIkQSggBUEkaiACIAVBBGogAyAFQSxqIAVBABAkIgtBAEgNJSAAQQg2AgAgACAGNgIUIABCADcCHCAFKAIEIQkMFAsgCUHSAEYNEQsgCUEEIAcoAjARAABFDQMLQSggBUEkaiACIAVBBGogAyAFQSxqIAVBARAkIgtBAEgNIkGpfiELAkACQAJAIAUoAgAOAyUBAAELIAMoAjQhAgJAAn8gBSgCLCIHQQBKBEAgAkH/////B3MgB0kNAiACIAdqDAELIAIgB2pBAWoLIgJBAE4NAgsgAyAFKAIENgIoIAMgBDYCJEGmfiELDCQLIAUoAiwhAgsgACAENgIUIABBCDYCACAAIAI2AhwgAEEBNgIgIAUoAgQhCSAGIQQMEQsgCUHQAEcNASADKAIMKAIEQQBODQFBin8hCyAEIAcoAgARAQAgBGoiBCACTw0hIAQgAiAHKAIUEQAAIQkgBSAEIAcoAgARAQAgBGoiDDYCJEEBIQdBKCEEIAlBPWsOAhQTAgsgBSAENgIkCyAFIAY2AiQMDwsgBSAGNgIkDA4LIAUgBjYCJCAJQYAgcUUNGiAAQQ82AgAMGgsgBSAGNgIkIAlBgICABHFFDRkgAEEJNgIAIABBEEEgIAMoAgBBCHEbNgIUDBkLIAUgBjYCJCAJQYCAgARxRQ0YIABBCTYCACAAQYACQYAEIAMoAgBBCHEbNgIUDBgLIAUgBjYCJCAJQYCACHFFDRcgAEEQNgIADBcLIAUgBjYCJCABKAIAIAMoAhxNDRYjAEGQAmsiAiQAAkBB7JcRKAIAQQFGDQAgAygCDC0AC0EBcUUNACADKAIgIQQgAygCHCEGIAMoAgghAyACQd8JNgIAIAJBEGogAyAGIARB1AwgAhCLASACQRBqQeyXESgCABEEAAsgAkGQAmokAAwWCyADLQAAQQJxRQ0BA0AgAiAGTQ0FIAYgAiAHKAIUEQAAIQQgBiAHKAIAEQEAIAZqIQYgBEEAIAcoAjARAABFDQALDAQLIAMtAABBAnENAwsgBSAGNgIkDBMLIAUgBDYCJAtBin8hCwwUCyACIAZNDREMAQsLIABBCDYCACAAIAQ2AhQgAEKAgICAEDcCHCAFIAQgBygCABEBACAEaiIJNgIkQYl/IQsgAiAJTQ0RIAkgAiAHKAIUEQAAQSlHDRELIAAgCTYCGCAFIAQ2AiQLIAgtAAFBEHFFDQwgAEEONgIADAwLQQEhBEEAIQYMCAtBACEGIAQgBUEkaiACIAVBDGogAyAFQRBqIAVBCGpBARAkIgtBAEgNDUEAIQQCQCAFKAIIIgJFDQBBpn4hCyAHDQ5BASEGIAUoAhAhBCACQQJHDQAgAygCNCECAkACfyAEQQBKBEAgAkH/////B3MgBEkNAiACIARqDAELIAIgBGpBAWoLIgRBAE4NAQsgAyAFKAIMNgIoIAMgDDYCJAwOCyAAIAw2AhQgAEEINgIAIAAgBDYCHCAAIAY2AiAgACAFKAIMNgIYDAoLIAVBADYCIAJAIAQgBUEkaiACIAVBIGogAyAFQRhqIABBKGogBUEUahAlIgtBAUYEQCAAQQE2AiQMAQsgAEEANgIkIAtBAEgNDQsgBSgCFCICBEBBsH4hCyAHDQ0CfyAFKAIYIgQgAkECRw0AGkGwfiAEIAMoAjQiAmogAkH/////B3MgBEkbIARBAEoNABogAiAEakEBagsiBEEATA0NIAgtAAhBIHEEQCAEIAMoAjRKDQ4gBEEDdCADKAKAASICIANBQGsgAhtqKAIARQ0OCyAAQQc2AgAgAEEBNgIUIABBADYCICAAIAQ2AhgMCgsgAyAMIAUoAiAgBUEcahAmIgdBAEwEQEGnfiELDA0LIAgtAAhBIHEEQCADQUBrIQggAygCNCEJQQAhBCAFKAIcIQoDQEGwfiELIAogBEECdGooAgAiAiAJSg0OIAJBA3QgAygCgAEiBiAIIAYbaigCAEUNDiAEQQFqIgQgB0cNAAsLIABBBzYCACAAQQE2AiAgB0EBRgRAIABBATYCFCAAIAUoAhwoAgA2AhgMCgsgACAHNgIUIAAgBSgCHDYCHAwJCyAFQSRqIAIgBCAEIAcgBUEoahAhIgtBAEgNCyAFKAIoIQQgBSgCJCECIABBEDYCDCAAQQQ2AgAgACAEQQAgAiAKRxs2AhQMCAsgAEGAATYCFCAAQQk2AgAMBwsgAEEQNgIUIABBCTYCAAwGCyAILQAJQQJxRQ0DDAQLQX8hBEEBIQYMAQtBfyEEQQAhBgsgACAGNgIUIABBCjYCACAAQQA2AiAgACAENgIYCyAFKAIkIgQgAk8NACAEIAIgBygCFBEAAEE/Rw0AIAgtAANBAnFFDQAgACgCIA0AIAQgAiAHKAIUEQAAGiAFIAQgBygCABEBACAEajYCJCAAQgA3AhwMAQsgAEEBNgIcIAUoAiQiBCACTw0AIAQgAiAHKAIUEQAAQStHDQACQCAIKAIEIgZBEHEEQCAAKAIAQQtHDQELIAZBIHFFDQEgACgCAEELRw0BCyAAKAIgDQAgBCACIAcoAhQRAAAaIAUgBCAHKAIAEQEAIARqNgIkIABBATYCIAsgASAFKAIkNgIAIAAoAgAhCwwCCyAFIAY2AiQLQQAhCyAAQQA2AgALIAVBMGokACALC7YDAQV/IwBBEGsiCSQAIABBADYCACAFIAUoApwBQQFqIgc2ApwBQXAhCAJAIAdB+JcRKAIASw0AIAUoAgAhCyAJQQxqIAEgAiADIAQgBSAGECciCEEASARAIAkoAgwiBUUNASAFEBEgBRDMAQwBCwJAAkACQAJAAkAgAiAIRgRAIAAgCSgCDDYCACACIQgMAQsgCSgCDCEHIAhBDUcNAUEBQTgQzwEiBkUNBCAGQQA2AhAgBiAHNgIMIAZBCDYCACAAIAY2AgADQCABIAMgBCAFEBoiCEEASA0GIAlBDGogASACIAMgBCAFQQAQJyEIIAkoAgwhCiAIQQBIBEAgChAQDAcLQQFBOBDPASIHRQ0EIAdBADYCECAHIAo2AgwgB0EINgIAIAYgBzYCECAHIQYgCEENRg0ACyABKAIAIAJHDQILIAUgCzYCACAFIAUoApwBQQFrNgKcAQwECyAHRQ0AIAcQESAHEMwBC0GLf0F1IAJBD0YbIQgMAgsgBkEANgIQIAoQECAAKAIAEBBBeyEIDAELIABBADYCAEF7IQggB0UNACAHEBEgBxDMAQsgCUEQaiQAIAgLIQAgAigCFCABQdwAbGpB3ABrIgEgASgCAEEBcjYCAEEACxAAIAAgAjYCKCAAIAE2AiQL+AIBBn9B8HwhCQJAAkACQAJAIARBCGsOCQEDAwMDAwMDAAMLIAAoAgAiBCABTw0CA0ACQCAEIAEgAigCFBEAACEFIAQgAigCABEBACEKIAVB/wBLDQAgBUELIAIoAjARAABFDQBBUCEIIAcgBUEEIAIoAjARAAAEfyAIBUFJQal/IAVBCiACKAIwEQAAGwsgBWoiBUF/c0EEdksEQEG4fg8LIAUgB0EEdGohByAEIApqIgQgAU8NAyAGQQdJIQUgBkEBaiEGIAUNAQwDCwsgBg0BDAILIAAoAgAiBCABTw0BA0ACQCAEIAEgAigCFBEAACEFIAQgAigCABEBACEIIAVB/wBLDQAgBUEEIAIoAjARAABFDQAgBUE3Sw0AIAdBLyAFa0EDdksEQEG4fg8LIAdBA3QgBWpBMGshByAEIAhqIgQgAU8NAiAGQQpJIQUgBkEBaiEGIAUNAQwCCwsgBkUNAQsgAyAHNgIAIAAgBDYCAEEAIQkLIAkLsQUBDH8gAygCDCgCCEEIcSELIAEgACgCACIETQRAQQFBnH8gCxsPCyADKAIIIgkhBQJAAkAgC0UEQEGcfyEHIAQgASAJKAIUEQAAIgVBKGtBAkkNASAFQfwARg0BIAMoAgghBQsDQAJAIAQgASAFKAIUEQAAIQcgBCAFKAIAEQEAIQYgB0H/AEsNACAHQQQgBSgCMBEAAEUNACAIQa+AgIB4IAdrQQptSgRAQbd+DwsgCEEKbCAHakEwayEIIAQgBmoiBCABSQ0BCwtBt34hByAIQaCNBksNACAEIAAoAgAiBUciDkUEQEEAIQggAygCDC0ACEEQcUUNAgsgASAETQ0BIAQgASAJKAIUEQAAIQYgBCAJKAIAEQEAIQoCQCAGQSxGBEBBACEGIAQgCmoiDCEEIAEgDEsEQCADKAIIIQogDCEEA0ACQCAEIAEgCigCFBEAACEFIAQgCigCABEBACEPIAVB/wBLDQAgBUEEIAooAjARAABFDQBBr4CAgHggBWtBCm0gBkgNBSAGQQpsIAVqQTBrIQYgBCAPaiIEIAFJDQELCyAGQaCNBksNAwsgBkF/IAQgDEciBxshBiAHDQEgDg0BDAMLQQIhDSAIIQYgBCAFRg0CCyABIARNDQEgBCABIAkoAhQRAAAhByAEIAkoAgARAQAgBGohBCADKAIMIgUtAAFBAnEEQCAHIAUoAhBHDQIgASAETQ0CIAQgASAJKAIUEQAAIQcgBCAJKAIAEQEAIARqIQQLIAdB/QBHDQFBACEFAkACQCAGQX9GDQAgBiAITg0AQbZ+IQdBASEFIAghASADKAIMLQAEQSBxDQIMAQsgBiEBIAghBgsgAiAGNgIUIAJBCzYCACACIAE2AhggAiAFNgIgIAAgBDYCACANIQcLIAcPC0EBQYV/IAsbC6oBAQV/AkAgASAAKAIAIgVNDQAgAkEATA0AA0AgBSABIAMoAhQRAAAhBiAFIAMoAgARAQAhCSAGQf8ASw0BIAZBBCADKAIwEQAARQ0BIAZBN0sNASAHQS8gBmtBA3ZLBEBBuH4PCyAIQQFqIQggB0EDdCAGakEwayEHIAUgCWoiBSABTw0BIAIgCEoNAAsLIAhBAE4EfyAEIAc2AgAgACAFNgIAQQAFQfB8CwvVAQEGfwJAIAEgACgCACIJTQRADAELIANBAEwEQAwBCwNAIAkgASAEKAIUEQAAIQYgCSAEKAIAEQEAIQogBkH/AEsNASAGQQsgBCgCMBEAAEUNAUFQIQsgCCAGQQQgBCgCMBEAAAR/IAsFQUlBqX8gBkEKIAQoAjARAAAbCyAGaiIGQX9zQQR2SwRAQbh+DwsgB0EBaiEHIAYgCEEEdGohCCAJIApqIgkgAU8NASADIAdKDQALC0HwfCEGIAIgB0wEfyAFIAg2AgAgACAJNgIAQQAFIAYLC34BBH8CQCAAKAIAIgQgAU8NAANAIAQgASACKAIUEQAAIQUgBCACKAIAEQEAIQYgBUH/AEsNASAFQQQgAigCMBEAAEUNASADQa+AgIB4IAVrQQptSgRAQX8PCyADQQpsIAVqQTBrIQMgBCAGaiIEIAFJDQALCyAAIAQ2AgAgAwudBQEGfyMAQRBrIgYkAEGYfyEFAkAgACgCACIEIAFPDQAgBCABIAIoAggiBygCFBEAACEFIAYgBCAHKAIAEQEAIARqIgQ2AggCQAJAAkACQAJAAkACQAJAIAVBwwBrDgsDAQEBAQEBAQEBAgALIAVB4wBGDQMLIAIoAgwhCAwECyACKAIMIggtAAVBEHFFDQNBl38hBSABIARNDQUgBCABIAcoAhQRAAAhCCAEIAcoAgARAQAhCUGUfyEFIAhBLUcNBUGXfyEFIAQgCWoiBCABTw0FIAYgBCABIAcoAhQRAAAiBTYCDCAGIAQgBygCABEBACAEajYCCCACKAIMKAIQIAVGBH8gBkEIaiABIAIgBkEMahAjIgVBAEgNBiAGKAIMBSAFC0H/AHFBgAFyIQQMBAsgAigCDCIILQAFQQhxRQ0CQZZ/IQUgASAETQ0EIAQgASAHKAIUEQAAIQggBCAHKAIAEQEAIQlBk38hBSAIQS1HDQQgBCAJaiEEDAELIAIoAgwiCC0AA0EIcUUNAQtBln8hBSABIARNDQIgBiAEIAEgBygCFBEAACIFNgIMIAYgBCAHKAIAEQEAIARqNgIIQf8AIQQgBUE/Rg0BIAIoAgwoAhAgBUYEfyAGQQhqIAEgAiAGQQxqECMiBUEASA0DIAYoAgwFIAULQZ8BcSEEDAELAkAgCC0AA0EEcUUNAEEKIQQCQAJAAkACQAJAAkACQCAFQeEAaw4WAwQHBwUCBwcHBwcHBwgHBwcBBwAHBgcLQQkhBAwHC0ENIQQMBgtBDCEEDAULQQchBAwEC0EIIQQMAwtBGyEEDAILQQshBCAILQAFQSBxDQELIAUhBAsgACAGKAIINgIAIAMgBDYCAEEAIQULIAZBEGokACAFC4sGAQd/IAEoAgAhCiAEKAIIIQkgBUEANgIAQT4hCwJAAkACQAJAIABBJ2sOFgABAgICAgICAgICAgICAgICAgICAgMCC0EnIQsMAgtBKSELDAELQQAhCwsgBkEANgIAQap+IQwCQCACIApNDQAgCiACIAkoAhQRAAAhCCAKIAkoAgARAQAhACAIIAtGDQAgACAKaiEAAkACQAJAAkACQCAIQf8ASw0AIAhBBCAJKAIwEQAARQ0AQQEhDkGpfiEMQQEhDSAHQQFHDQMMAQsCQAJAAkAgCEEraw4DAgEAAQtBqX4hDCAHQQFHDQRBfyENQQIhDiAAIQoMAgtBASENIAhBDCAJKAIwEQAADQJBqH4hDAwDC0EBIQ1BqX4hDEECIQ4gACEKIAdBAUcNAgsgBiAONgIACwJAIAAgAk8EQCACIQcMAQsDQCAAIgcgAiAJKAIUEQAAIQggACAJKAIAEQEAIABqIQAgCCALRg0BIAhBKUYNAQJAIAYoAgAEQCAIQf8ATQRAIAhBBCAJKAIwEQAADQILIAhBDCAJKAIwEQAAGiAGQQA2AgAMAQsgCEEMIAkoAjARAAAaCyAAIAJJDQALC0GpfiEMIAggC0cNASAGKAIABEACQAJAIAcgCk0EQCAFQQA2AgAMAQtBACEIA0ACQCAKIAcgCSgCFBEAACECIAogCSgCABEBACELIAJB/wBLDQAgAkEEIAkoAjARAABFDQAgCEGvgICAeCACa0EKbUoEQCAFQX82AgBBuH4PCyAIQQpsIAJqQTBrIQggCiALaiIKIAdJDQELCyAFIAg2AgAgCEEASARAQbh+DwsgCA0BC0EAIQggBigCAEECRg0DCyAFIAggDWw2AgALIAMgBzYCACABIAA2AgBBAA8LAkAgACACTwRAIAIhCAwBCwNAIAAiCCACIAkoAhQRAAAhCiAIIAkoAgARAQAgCGohACAKIAtGDQEgCkEpRg0BIAAgAkkNAAsLIAggAiAAIAJJGyEHCyABKAIAIQkgBCAHNgIoIAQgCTYCJAsgDAuMCAELfyMAQRBrIhAkACAEKAIIIQsgASgCACEMIAVBADYCACAHQQA2AgBBPiENAkACQAJAAkAgAEEnaw4WAAECAgICAgICAgICAgICAgICAgICAwILQSchDQwCC0EpIQ0MAQtBACENC0GqfiEKAkAgAiAMTQ0AIAEoAgAhACAMIAIgCygCFBEAACEIIAwgCygCABEBACEJIAggDUYNACAJIAxqIQkCQAJAAn8CQCAIQf8ASw0AIAhBBCALKAIwEQAARQ0AQQEhDyAHQQE2AgBBAAwBCwJAAkACQCAIQStrDgMBAgACCyAHQQI2AgBBfyERDAMLIAdBAjYCAEEBIREMAgtBAEGofiAIQQwgCygCMBEAABsLIQpBASERDAELIAkhAEEAIQoLAkAgAiAJTQRAIAIhDAwBCwNAIAkiDCACIAsoAhQRAAAhCCAJIAsoAgARAQAgCWohCQJAAkAgCCANRgRAIA0hCAwBCyAIQSlrIg5BBEsNAUEBIA50QRVxRQ0BCyAKQal+IA8bIAogBygCABshCgwCCwJAIAcoAgAEQAJAIAhB/wBLDQAgCEEEIAsoAjARAABFDQAgD0EBaiEPDAILIAdBADYCAEGpfiEKDAELIApBqH4gCEEMIAsoAjARAAAbIQoLIAIgCUsNAAsLQQAhDgJ/AkAgCg0AIAggDUYEQEEAIQoMAQsCQAJAIAhBK2sOAwABAAELIAIgCU0EQEGofiEKDAILIAkgAiALKAIUEQAAIQ8gCSALKAIAEQEAIAlqIRIgD0H/AEsEQCASIQkMAQsgD0EEIAsoAjARAABFBEAgEiEJDAELIBAgCTYCDCAQQQxqIAIgCxAiIglBAEgEQEG4fiEKDAQLIAZBACAJayAJIAhBLUYbNgIAQQEhDiAQKAIMIgkgAk8NACAJIAIgCygCFBEAACEIIAkgCygCABEBACAJaiEJQQAhCiAIIA1GDQELQQAMAQtBAQshCANAIAhFBEBBqX4hCiACIQxBASEIDAELAkAgCkUEQCAHKAIABEACQAJAIAAgDE8EQCAFQQA2AgAMAQtBACEIA0ACQCAAIAwgCygCFBEAACECIAAgCygCABEBACENIAJB/wBLDQAgAkEEIAsoAjARAABFDQAgCEGvgICAeCACa0EKbUoEQCAFQX82AgBBuH4hCgwJCyAIQQpsIAJqQTBrIQggACANaiIAIAxJDQELCyAFIAg2AgAgCEEASARAQbh+IQoMBwsgCA0BCyAHKAIAQQJGBEAgDCECDAQLQQAhCAsgBSAIIBFsNgIACyADIAw2AgAgASAJNgIAIA5BAEchCgwDCyABKAIAIQIgBCAMNgIoIAQgAjYCJAwCC0EAIQgMAAsACyAQQRBqJAAgCguaAQECfyMAQRBrIgQkACAAKAIsKAJUIQUgBEEANgIEAkACQCAFBEAgBCACNgIMIAQgATYCCCAFIARBCGogBEEEahCPARogBCgCBCIFDQELIAAgAjYCKCAAIAE2AiRBp34hAAwBCwJAAkAgBSgCCCIADgICAAELIAMgBUEQajYCAEEBIQAMAQsgAyAFKAIUNgIACyAEQRBqJAAgAAukAwEDfyMAQRBrIgkkACAAQQA2AgAgBSAFKAKcAUEBaiIHNgKcAUFwIQgCQCAHQfiXESgCAEsNACAJQQxqIAEgAiADIAQgBSAGECgiCEEASARAIAkoAgwiB0UNASAHEBEgBxDMAQwBCwJAAkACQAJAAkACQCAIRQ0AIAIgCEYNACAIQQ1HDQELIAAgCSgCDDYCAAwBCyAJKAIMIQdBAUE4EM8BIgZFDQIgBkEANgIQIAYgBzYCDCAGQQc2AgAgACAGNgIAA0AgAiAIRg0BIAhBDUYNASAJQQxqIAEgAiADIAQgBUEAECghCCAJKAIMIQcgCEEASARAIAcQEAwGCwJAIAcoAgBBB0YEQCAGIAc2AhADQCAHIgYoAhAiBw0ACyAJIAY2AgwMAQtBAUE4EM8BIgBFDQMgAEEANgIQIAAgBzYCDCAAQQc2AgAgBiAANgIQIAAhBgsgCA0AC0EAIQgLIAUgBSgCnAFBAWs2ApwBDAMLIAZBADYCEAwBCyAAQQA2AgAgBw0AQXshCAwBCyAHEBEgBxDMAUF7IQgLIAlBEGokACAIC7phARF/IwBBwAJrIgwkACAAQQA2AgACQAJAAkAgASgCACIHIAJGDQAgBUFAayETIAVBDGohEQJ/AkADQCAFKAKcASEWQXUhCAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBw4YJxMoEhALDgkIBwYGCicAEQwPDQUEAwIBKAsgDCADKAIAIgc2AjggBSgCCCEKIABBADYCAEGLfyEIIAQgB00NJyAFKAIAIQkgByAEIAooAhQRAAAiCEEqRg0VIAhBP0cNFiARKAIALQAEQQJxRQ0WIAQgByAKKAIAEQEAIAdqIghNBEBBin8hCAwoCyAIIAQgCigCFBEAACELIAwgCCAKKAIAEQEAIAhqIgc2AjhBiX8hCAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkAgC0Ehaw5eATU1NTU1Awg1NTU1DTU1NTU1NTU1NTU1NS01BAACNQk1NQoMNTU1NQo1NQo1NTULNTUMNTU1DDU1NTU1NTU1NQ01NTU1NTU1DTU1NQ01NTU1NQ01NTU1DQw1BzU1BjULQQFBOBDPASIIBEAgCEF/NgIYIAhBATYCECAIQQY2AgALIAAgCDYCAAwrC0EBQTgQzwEiCARAIAhBfzYCGCAIQQI2AhAgCEEGNgIACyAAIAg2AgAMKgtBAUE4EM8BIggEQCAIQQA2AjQgCEECNgIQIAhBBTYCAAsgACAINgIADCkLIBEoAgAtAARBgAFxRQ0xQScMAQtBi38hCCAEIAdNDTAgByAEIAooAhQRAAAhCCAMIAcgCigCABEBACAHajYCOAJAIAhBIUcEQCAIQT1HDQFBAUE4EM8BIggEQCAIQX82AhggCEEENgIQIAhBBjYCAAsgACAINgIADCkLQQFBOBDPASIIBEAgCEF/NgIYIAhBCDYCECAIQQY2AgALIAAgCDYCAAwoC0GJfyEIIBEoAgAtAARBgAFxRQ0wIAwgBzYCOEE8CyEJQQAhCiAHIQ4MIwsgESgCAC0AB0ECcUUNLkGKfyEIIAQgB00NLgJAIAcgBCAKKAIUEQAAQfwARyIJDQAgDCAHIAooAgARAQAgB2oiBzYCOCAEIAdNDS8gByAEIAooAhQRAABBKUcNACAMIAcgCigCABEBACAHajYCOCMAQRBrIgokACAAQQA2AgAgBSAFKAKMASIHQQFqNgKMAUF7IQsCQEEBQTgQzwEiCEUNACAIIAc2AhggCEEKNgIAIAhCgYCAgCA3AgwgCkEBQTgQzwEiDjYCCAJAAkACQAJAIA5FBEBBACEHDAELIA4gBzYCGCAOQQo2AgAgDkKCgICAIDcCDCAKQQFBOBDPASIHNgIMIAdFBEBBACEHDAILIAdBCjYCAEEHQQIgCkEIahAtIglFDQEgCiAJNgIMIApBAUE4EM8BIg42AgggDkUEQCAJIQcMAQsgDkEANgIYIA5CioCAgICAgIABNwIAIA5CgoCAgNAANwIMIAkhB0EIQQIgCkEIahAtIglFDQEgCSAJKAIEQYCAIHI2AgQgCiAJNgIMIAogCDYCCCAJIQcgCCEOQQdBAiAKQQhqEC0iCEUNAiAAIAg2AgBBACELDAQLQQAhDgsgCBARIAgQzAEgDkUNAQsgDhARIA4QzAELIAdFDQAgBxARIAcQzAELIApBEGokACALIggNJEEAIQcMKAsgASAMQThqIAQgBRAaIghBAEgNLiAMQSxqIAFBDyAMQThqIAQgBUEBEBshCCAMKAIsIQogCEEASARAIAoQEAwvC0EAIQcCQCAJBEAgCiEOQQAhCUEAIQgMAQtBASEIQQAhCSAKKAIAQQhHBEAgCiEODAELIAooAhAiC0UEQCAKIQ4MAQsgCigCDCEOIApCADcCDCAKEBEgChDMAUEAIQggCygCEARAIAshCQwBCyALKAIMIQkgC0EANgIMIAsQESALEMwBCyAFIQtBACEPQQAhFyMAQTBrIhAkACAQQRBqIgpCADcDACAQQQA2AhggCiAJNgIAIBBCADcDCCAQQgA3AwAgECAOIhI2AhQCQAJAAkACQAJAAkAgCA0AAkAgCUUEQEEBQTgQzwEiCkUEQEF7IQkMBgsgCkL/////HzcCFCAKQQQ2AgBBAUE4EM8BIg5FBEBBeyEJDAULIA5BfzYCDCAOQoKAgICAgIAgNwIADAELAkACQCAJIgooAgBBBGsOAgEAAwsgCSgCEEECRw0CQQEhFyAJKAIMIgooAgBBBEcNAgsgCigCGEUNAQJAAkAgCigCDCIOKAIADgIAAQMLIA4oAgwiFCAOKAIQTw0CA0AgDyIVQQFqIQ8gFCALKAIIKAIAEQEAIBRqIhQgDigCEEkNAAsgFQ0CCyAJIApHBEAgCUEANgIMIAkQESAJEMwBCyAKQQA2AgwLIABBADYCACAQIBI2AiwgECAONgIoIBBBADYCJCAKKAIUIRQgCigCECEPIAsgCygCjAEiCEEBajYCjAEgEEEBQTgQzwEiCTYCIAJAAkAgCUUEQEF7IQkMAQsgCSAINgIYIAlBCjYCACAJQoGAgIAgNwIMAkAgEEEgakEEciAIIBIgDiAPIBQgF0EAIAsQOSIJDQAgEEEANgIsIBBBAUE4EM8BIgs2AihBeyEJIAtFDQAgCyAINgIYIAtBCjYCACALQoKAgIAgNwIMQQdBAyAQQSBqEC0iC0UNACAAIAs2AgBBACEJDAILIBAoAiAiC0UNACALEBEgCxDMAQsgECgCJCILBEAgCxARIAsQzAELIBAoAigiCwRAIAsQESALEMwBCyAQKAIsIgtFDQAgCxARIAsQzAELIAoQESAKEMwBIAkNAUEAIQkMBQsgCyALKAKMASIKQQFqIhQ2AowBIBBBAUE4EM8BIgk2AgAgCUUEQEF7IQkMBAsgCSAKNgIYIAlBCjYCACAJQoGAgIAgNwIMIAsgCkECajYCjAEgEEEBQTgQzwEiCTYCBCAJRQRAQXshCQwDCyAJIBQ2AhggCUEKNgIAIAlCgYCAgBA3AgxBAUE4EM8BIglFBEBBeyEJDAMLIAlBfzYCDCAJQoKAgICAgIAgNwIAIBAgCTYCDCAQQQhyIAogEiAJQQBBf0EBIAggCxA5IgkNAiAQQQA2AhQgEEEBQTgQzwEiCTYCDCAJRQRAQXshCQwDCyAJIBQ2AhggCUEKNgIAIAlCgoCAgBA3AgwCfyAIBEBBB0EEIBAQLQwBCyMAQRBrIg4kACAQQRhqIhVBADYCACAQQRRqIhRBADYCACALIAsoAowBIglBAWo2AowBQXshEgJAQQFBOBDPASIPRQ0AIA8gCTYCGCAPQQo2AgAgD0KBgICAIDcCDCAOQQFBOBDPASILNgIIAkACQCALRQRAQQAhCQwBCyALIAk2AhggC0EKNgIAIAtCgoCAgCA3AgwgDkEBQTgQzwEiCTYCDCAJRQRAQQAhCQwCCyAJQQo2AgBBB0ECIA5BCGoQLSIIRQ0BIA4gCDYCDCAOQQFBOBDPASILNgIIIAtFBEAgCCEJDAELIAsgCjYCGCALQQo2AgAgC0KCgICAIDcCDCAIIQlBCEECIA5BCGoQLSIKRQ0BIBQgDzYCACAVIAo2AgBBACESDAILQQAhCwsgDxARIA8QzAEgCwRAIAsQESALEMwBCyAJRQ0AIAkQESAJEMwBCyAOQRBqJAAgEiIJDQNBB0EHIBAQLQshC0F7IQkgC0UNAiAAIAs2AgBBACEJDAQLIBBBADYCECAOIQoLIAoQESAKEMwBCyAQKAIAIgtFDQAgCxARIAsQzAELIBAoAgQiCwRAIAsQESALEMwBCyAQKAIIIgsEQCALEBEgCxDMAQsgECgCDCILBEAgCxARIAsQzAELIBAoAhAiCwRAIAsQESALEMwBCyAQKAIUIgsEQCALEBEgCxDMAQsgECgCGCILRQ0AIAsQESALEMwBCyAQQTBqJAAgCSIIRQ0nDCMLIBEoAgAtAAdBEHFFDS0gACAMQThqIAQgBRApIggNIkEAIQcMJgsgESgCAC0ABkEgcUUNLEGKfyEIIAQgB00NISAHIAQgCigCFBEAACEJIAwgByAKKAIAEQEAIAdqIg42AjggBCAOTQ0hAkACQAJAAkAgCUH/AE0EQCAJQQQgCigCMBEAAA0BIAlBLUYNAQsgCUEnaw4ZACAgAgAgICAgICAgICAgICAgICAgACAgASALAkAgCUEnRiILBEAgCSEIDAELIAkiCEE8Rg0AIAwgBzYCOEEoIQggByEOCyAMQQA2AiQgCCAMQThqIAQgDEEkaiAFIAxBIGogDEEoaiAMQRxqECUiCEEASARAIAsgCUE8RnMNJQwgCyAIQQFGIRUCQAJAAkACQAJAIAwoAhwOAwMBAAELIAUoAjQhCCAMKAIgIgdBAEoEQCAMQbB+IAcgCGogCEH/////B3MgB0kbIgc2AiAMAgsgDCAHIAhqQQFqIgc2AiAMAQsgDCgCICEHC0GwfiEIIAdBAEwNJiARKAIALQAIQSBxBEAgByAFKAI0Sg0nIAdBA3QgBSgCgAEiDiATIA4baigCAEUNJwtBASAMQSBqQQAgFSAMKAIoIAUQKiIHRQ0BIAcgBygCBEGAgAhyNgIEDAELIAUgDiAMKAIkIAxBGGoQJiIPQQBMBEBBp34hCAwmCyAMKAIYIRIgESgCAC0ACEEgcQRAIAUoAjQhEEEAIQcDQEGwfiEIIBIgB0ECdGooAgAiDiAQSg0nIA5BA3QgBSgCgAEiCyATIAsbaigCAEUNJyAHQQFqIgcgD0cNAAsLIA8gEkEBIBUgDCgCKCAFECoiB0UNACAHIAcoAgRBgIAIcjYCBAsgDCAHNgIsIAlBPEcgCUEnR3FFBEAgDCgCOCIIIARPDSIgCCAEIAooAhQRAAAhCSAMIAggCigCABEBACAIajYCOCAJQSlHDSILQQAhDgwgCyARKAIALQAHQRBxRQ0eIA4gBCAKKAIUEQAAQfsARw0eIA4gBCAKKAIUEQAAGiAMIA4gCigCABEBACAOajYCOCAMQSxqIAxBOGogBCAFECkiCA0jDAELIBEoAgAtAAdBIHFFDR0gDEEsaiAMQThqIAQgBRArIggNIgtBASEODB0LIBEoAgAoAgQiCUGACHFFDSsgCUGAAXEEQCAHIAQgCigCFBEAACEJIAwgByAKKAIAEQEAIAdqIg42AjhBASEKIAlBJ0YNICAJQTxGDSAgDCAHNgI4C0EBQTgQzwEiCEUEQCAAQQA2AgBBeyEIDCwLIAhBBTYCACAIQv////8fNwIYIAAgCDYCACAMIAUQLCIINgJAIAhBAEgNKyAIQR9LBEBBon4hCAwsCyAAKAIAIAg2AhQgBSAFKAIQQQEgCHRyNgIQDCELIBEoAgAtAAlBIHENAgwqCyARKAIAKAIEQQBODQBBin8hCCAEIAdNDSkgByAEIAooAhQRAAAhCyAMIAcgCigCABEBACAHaiIONgI4QTwhCUEAIQpBiX8hCCALQTxGDR0MKQsgESgCAC0AB0HAAHENAAwoC0EAIQ9BACESA0BBASEOQYl/IQgCQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCALQSlrDlEPPj4+FT4+Pj4+Pj4+Pj4+PhA+Pj4+Pj4+PgwGPj4+Pg0+Pg4+Pj4IPj4HPj4+BT4+Pj4+Pj4+Pgo+Pj4+Pj4+AT4+PgM+Pj4+PgI+Pj4+AAk+CyAPRQ0QIAlBfXEhCQwUCyAPBEAgCUF+cSEJDBQLIAlBAXIMEAsgESgCAC0ABEEEcUUNOyAPRQ0BIAlBe3EhCQwSCyARKAIAKAIEIghBBHEEQCAJQXdxIA9FDQ8aIAlBCHIhCQwSCyAIQYiAgIAEcUUEQEGJfyEIDDsLIA9FDQAgCUF7cSEJDBELIAlBBHIMDQsgESgCAC0AB0HAAHFFDTggDwRAIAlB//97cSEJDBALIAlBgIAEcgwMCyARKAIALQAHQcAAcUUNNyAPBEAgCUH//3dxIQkMDwsgCUGAgAhyDAsLIBEoAgAtAAdBwABxRQ02IA8EQCAJQf//b3EhCQwOCyAJQYCAEHIMCgsgESgCAC0AB0HAAHFFDTUgD0UNAiAJQf//X3EhCQwMCyAPQQFGDTQgESgCACgCBEGAgICABHFFDTQgBCAHTQRAQYp/IQgMNQsgByAEIAooAhQRAABB+wBHDTQgByAEIAooAhQRAAAaIAQgByAKKAIAEQEAIAdqIgdNBEBBin8hCAw1CyAHIAQgCigCFBEAACEOIAcgCigCABEBACELAkACQAJAIA5B5wBrDhEANzc3Nzc3Nzc3Nzc3Nzc3ATcLQYCAwAAhDiAKLQBMQQJxDQEMNgtBgICAASEOIAotAExBAnENAAw1CyAEIAcgC2oiCE0EQEGKfyEIDDULIAggBCAKKAIUEQAAIQcgCCAKKAIAEQEAIQsgB0H9AEcEQEGJfyEIDDULIAggC2ohByAOIAlB//+/fnFyDAgLIBEoAgAtAAlBEHFFDTMgD0UNACAJQf//X3EhCQwKCyAJQYCAIHIMBgsgESgCAC0ACUEgcUUNMSAPQQFGBEBBiH8hCAwyCyAJQYABciEJDAcLIBEoAgAtAAlBIHFFDTAgD0EBRgRAQYh/IQgMMQsgCUGAgAJyIQkMBgsgESgCAC0ACUEgcUUNLyAPQQFGBEBBiH8hCAwwCyAJQRByIQkMBQsgDCAHNgI4QQFBOBDPASIKRQRAIABBADYCAEF7IQgMLwsgCiAJNgIUIApBATYCECAKQQU2AgAgACAKNgIAQQIhByASQQFHDScMAwsgDCAHNgI4IAUoAgAhByAFIAk2AgAgASAMQThqIAQgBRAaIghBAEgNLSAMQTxqIAFBDyAMQThqIAQgBUEAEBshCCAFIAc2AgAgCEEASARAIAwoAjwQEAwuC0EBQTgQzwEiCkUEQCAAQQA2AgBBeyEIDC4LIAogCTYCFCAKQQE2AhAgCkEFNgIAIAAgCjYCACAKIAwoAjw2AgxBACEHIBJBAUYNAiADIAwoAjg2AgAMKQsgCUECcgshCUEAIQ4MAgsgBSgCoAEiDkECcQRAQYh/IQgMKwsgBSAOQQJyNgKgASAKIAooAgRBgICAgAFyNgIEAkAgCUGAAXFFDQAgBSgCLCIKIAooAkhBgAFyNgJIIAlBgANxQYADRw0AQe18IQgMKwsgCUGAgAJxBEAgBSgCLCIKIAooAkhBgIACcjYCSCAKIAooAlBB/v+//3txQQFyNgJQCyAJQRBxRQ0jIAUoAiwiCiAKKAJIQRByNgJIDCMLQQAhDkEBIRILIAQgB00EQEGKfyEIDCkFIAcgBCAKKAIUEQAAIQsgByAKKAIAEQEAIAdqIQcgDiEPDAELAAsACyAFKAIAIQ0CQAJAQQFBOBDPASIHRQ0AIAdBfzYCGCAHQYCACDYCECAHQQY2AgAgDUGAgIABcQRAIAdBgICABDYCBAsgDCAHNgJAAkACQEEBQTgQzwEiDUUEQEEAIQ0MAQsgDUF/NgIMIA1CgoCAgICAgCA3AgAgDCANNgJEQQdBAiAMQUBrEC0iAkUNAEEBQTgQzwEiDUUEQEEAIQ0gAiEHDAELIA1BATYCGCANQoCAgIBwNwIQIA1ChICAgICAEDcCACANIAI2AgwgDCANNgJEQQFBOBDPASIHRQ0BIAdBfzYCDCAHQoKAgICAgIAgNwIAIAwgBzYCQEEHQQIgDEFAaxAtIgJFDQBBAUE4EM8BIgcNA0EAIQ0gAiEHCyAHEBEgBxDMASANRQ0BCyANEBEgDRDMAQtBeyEIDCcLQQAhDSAHQQA2AjQgB0ECNgIQIAdBBTYCACAHIAI2AgwgACAHNgIADCILQQFBOBDPASIHRQRAQXshCAwmCyAHQX82AgwgB0KCgICAgICAIDcCACAAIAc2AgAMIQtBAUE4EM8BIgdFBEBBeyEIDCULIAdBfzYCDCAHQQI2AgAgACAHNgIADCALQQ0gDEFAayAFKAIIKAIcEQAAIgdBAEgEQCAHIQgMJAtBCiAMQUBrIAdqIgogBSgCCCgCHBEAACICQQBIBEAgAiEIDCQLQXshCEEBQTgQzwEiDUUNIyANIA1BGGoiCTYCECANIAk2AgwCQCANIAxBQGsgAiAKahATDQAgDSANKAIUQQFyNgIUQQFBOBDPASICRQ0AIAJBATYCAAJAAkAgB0EBRgRAIAJBgPgANgIQDAELIAJBMGpBCkENEBkNAQsgBSgCCC0ATEECcQRAIAJBMGoiB0GFAUGFARAZDQEgB0GowABBqcAAEBkNAQtBAUE4EM8BIgdFDQAgB0EFNgIAIAdCAzcCECAHIA02AgwgByACNgIYIAAgBzYCAEEAIQ0MIQsgAhARIAIQzAELIA0QESANEMwBDCMLIAUgBSgCjAEiDUEBajYCjAEgAEEBQTgQzwEiBzYCACAHRQRAQXshCAwjCyAHIA02AhggB0EKNgIAIAdBATYCDCAFIAUoAogBQQFqNgKIAUEAIQ0MHgsgESgCACgCCCIHQQFxRQ0LQY9/IQggB0ECcQ0hQQFBOBDPASIHRQRAIABBADYCAEF7IQgMIgsgByAHQRhqIg02AhAgByANNgIMIAAgBzYCAEEAIQ0MHQsgBSgCACECIAEoAhQhDUEBQTgQzwEiBwRAIAdBfzYCGCAHIA02AhAgB0EGNgIAAkAgAkGAgCRxRQRAQQAhCgwBC0EBIQogDUGACEYNACANQYAQRg0AIA1BgCBGDQAgDUGAwABGIQoLIAcgCjYCHAJAIA1BgIAIRyANQYCABEdxDQAgAkGAgIABcUUNACAHQYCAgAQ2AgQLIAAgBzYCAEEAIQ0MHQsgAEEANgIAQXshCAwgCyABKAIgIQogASgCGCEJIAEoAhwhAiABKAIUIQ5BAUE4EM8BIgdFBEAgAEEANgIAQXshCAwgCyAHIAk2AhwgByAONgIYIAcgCjYCECAHQQk2AgAgB0EBNgIgIAcgAjYCFCAAIAc2AgAgBSAFKAIwQQFqNgIwIAINGyABKAIgRQ0bIAUgBSgCoAFBAXI2AqABDBsLAn8gASgCFCIHQQJOBEAgASgCHAwBCyABQRhqCyENIAAgByANIAEoAiAgASgCJCABKAIoIAUQKiIHNgIAQQAhDSAHDRpBeyEIDB4LIAUoAgAhDUEBQTgQzwEiBwRAIAdBfzYCDCAHQQI2AgAgDUEEcQRAIAdBgICAAjYCBAsgACAHNgIAQQFBOBDPASINRQRAQXshCAwfCyANQQE2AhggDUKAgICAcDcCECANQQQ2AgAgDSAHNgIMIAAgDTYCAEEAIQ0MGgsgAEEANgIAQXshCAwdCyAFKAIAIQ1BAUE4EM8BIgcEQCAHQX82AgwgB0ECNgIAIA1BBHEEQCAHQYCAgAI2AgQLIAAgBzYCAEEAIQ0MGQsgAEEANgIAQXshCAwcCyAAIAEgAyAEIAUQLiIIDRsgBS0AAEEBcUUNFyAAKAIAIQggDCAMQcgAajYCTCAMQQA2AkggDCAINgJEIAwgBTYCQCAFKAIEQQYgDEFAayAFKAIIKAIkEQIAIQggDCgCSCEHIAgEQCAHEBAMHAsgBwRAIAAoAgAhAkEBQTgQzwEiDUUEQCAHEBEgBxDMAUF7IQgMHQsgDSAHNgIQIA0gAjYCDCANQQg2AgAgACANNgIAC0EAIQ0MFwsgBSgCCCENIAMoAgAiCSEHA0BBi38hCCAEIAdNDRsgByAEIA0oAhQRAAAhAiAHIA0oAgARAQAgB2ohCgJAAkAgAkH7AGsOAx0dAQALIAohByACQShrQQJPDQEMHAsLIA0gCSAHIA0oAiwRAgAiCEEASARAIAMoAgAhACAFIAc2AiggBSAANgIkDBsLIAMgCjYCAEEBQTgQzwEiB0UEQCAAQQA2AgBBeyEIDBsLIAdBATYCACAAIAc2AgBBACENIAcgCEEAIAUQMCIIDRogASgCGEUNFiAHIAcoAgxBAXI2AgwMFgsCQAJAIAEoAhRBBGsOCQEbGxsbARsBABsLIAEoAhghBiAFKAIAIQdBAUE4EM8BIgIEQCACIAY2AhAgAkEMNgIMIAJBAjYCAEEBIQYCQCAHQYCAIHENACAHQYCAJHENAEEAIQYLIAIgBjYCFAsgACACIgc2AgAgBw0WQXshCAwaC0EBQTgQzwEiB0UEQCAAQQA2AgBBeyEIDBoLIAdBATYCACAAIAc2AgAgByABKAIUQQAgBRAwIggEQCAAKAIAEBAgAEEANgIADBoLIAEoAhhFDRUgByAHKAIMQQFyNgIMDBULAkACQCADKAIAIg4gBE8NACAFKAIIIQIgBSgCDCgCECEJIA4hBwNAAkAgByINIAQgAigCFBEAACEKIAcgAigCABEBACAHaiEHAkAgCSAKRw0AIAQgB00NACAHIAQgAigCFBEAAEHFAEYNAQsgBCAHSw0BDAILCyAHIAIoAgARAQAhAiANRQ0AIAIgB2ohCQwBCyAEIgkhDQsgBSgCACEKQQAhAgJAQQFBOBDPASIHRQ0AIAcgB0EYaiILNgIQIAcgCzYCDCAHIA4gDRATRQRAIAchAgwBCyAHEBEgBxDMAQsCQCAKQQFxBEAgAiACKAIEQYCAgAFyNgIEIAAgAjYCAAwBCyAAIAI2AgAgAg0AQXshCAwZCyADIAk2AgBBACENDBQLIAEoAhQgBSgCCCgCGBEBACIIQQBIDRcgASgCFCAMQUBrIAUoAggoAhwRAAAhCiAFKAIAIQ1BACECAkBBAUE4EM8BIgdFDQAgByAHQRhqIgk2AhAgByAJNgIMIAcgDEFAayAMQUBrIApqEBNFBEAgByECDAELIAcQESAHEMwBCyANQQFxBEAgAiACKAIEQYCAgAFyNgIEIAAgAjYCAEEAIQ0MFAsgACACNgIAQQAhDSACDRNBeyEIDBcLQYx/IQggESgCAC0ACEEEcUUNFiABKAIIDQELIAUoAgAhDSADKAIAIQIgASgCECEKQQAhBwJAQQFBOBDPASIIRQ0AIAggCEEYaiIJNgIQIAggCTYCDCAIIAogAhATRQRAIAghBwwBCyAIEBEgCBDMAQsgDUEBcQRAIAcgBygCBEGAgIABcjYCBCAAIAc2AgAMAgsgACAHNgIAIAcNAUF7IQgMFQsgBSgCACENIAwgAS0AFDoAQEEAIQgCQEEBQTgQzwEiB0UNACAHIAdBGGoiAjYCECAHIAI2AgwgByAMQUBrIAxBwQBqEBNFBEAgByEIDAELIAcQESAHEMwBCwJAAkAgDUEBcQRAIAggCCgCBEGAgIABcjYCBAwBCyAIRQ0BCyAIIAgoAhRBAXI2AhQLIAhCADcAKCAIQgA3ACEgCEIANwAZIAAgCDYCACAMQcEAaiENQQEhBwNAAkACQCAHIAUoAggiCCgCDEgNACAAKAIAKAIMIAgoAgARAQAgB0cNACABIAMgBCAFEBohCCAAKAIAIgcoAgwgBygCECAFKAIIKAJIEQAADQFB8HwhCAwXCyABIAMgBCAFEBoiCEEASA0WIAhBAUcEQEGyfiEIDBcLIAAoAgAhCCAMIAEtABQ6AEAgB0EBaiEHIAggDEFAayANEBMiCEEATg0BDBYLCyAAKAIAIgcgBygCFEF+cTYCFEEAIQ0MAQsDQCABIAMgBCAFEBoiCEEASA0UIAhBA0cEQEEAIQ0MAgsgACgCACABKAIQIAMoAgAQEyIIQQBODQALDBMLQQEMDwsgESgCAC0AB0EgcUUNACAMIAcgCigCABEBACAHajYCOCAAIAxBOGogBCAFECsiCA0GQQAhBwwKCyAFLQAAQYABcQ0IQQFBOBDPASIHRQRAIABBADYCAEF7IQgMEQsgB0EFNgIAIAdC/////x83AhggACAHNgIAAkAgBSgCNCIKQfSXESgCACIISA0AIAhFDQBBrn4hCAwRCyAKQQFqIQgCQCAKQQdOBEAgCCAFKAI8IglIBEAgBSAINgI0IAwgCDYCQAwCCwJ/IAUoAoABIgdFBEBBgAEQywEiB0UEQEF7IQgMFQsgByATKQIANwIAIAcgEykCODcCOCAHIBMpAjA3AjAgByATKQIoNwIoIAcgEykCIDcCICAHIBMpAhg3AhggByATKQIQNwIQIAcgEykCCDcCCEEQDAELIAcgCUEEdBDNASIHRQRAQXshCAwUCyAFKAI0IgpBAWohCCAJQQF0CyEJIAggCUgEQCAKQQN0IAdqQQhqQQAgCSAKQX9zakEDdBCoARoLIAUgCTYCPCAFIAc2AoABCyAFIAg2AjQgDCAINgJAIAhBAEgNESAAKAIAIQcLIAcgCDYCFAwGCyAMIAc2AjggASAMQThqIAQgBRAaIghBAEgNBEEBIQ4gDEEsaiABQQ8gDEE4aiAEIAVBABAbIghBAE4NACAMKAIsEBAMBAtBeyEIIAwoAiwiB0UNAyAMKAI4IgkgBEkNAQsgBxAQQYp/IQgMAgsCQAJAAkAgCSAEIAooAhQRAABBKUYEQCAORQ0BIAcQESAHEMwBQaB+IQgMBQsgCSAEIAooAhQRAAAiDkH8AEYEQCAJIAQgCigCFBEAABogDCAJIAooAgARAQAgCWo2AjgLIAEgDEE4aiAEIAUQGiIIQQBIBEAgBxARIAcQzAEMBQsgDEE8aiABQQ8gDEE4aiAEIAVBARAbIghBAEgEQCAHEBEgBxDMASAMKAI8EBAMBQtBACEJIAwoAjwhCgJAIA5B/ABGBEAgCiEODAELQQAhDiAKKAIAQQhHBEAgCiEJDAELIAooAgwhCQJAIAooAhAiCygCEARAIAshDgwBCyALKAIMIQ4gCxAxCyAKEDELQQFBOBDPASIKDQEgAEEANgIAIAcQESAHEMwBIAkQECAOEBBBeyEIDAQLIAkgBCAKKAIUEQAAGiAMIAkgCigCABEBACAJajYCOAwBCyAKQQM2AhAgCkEFNgIAIAogCTYCFCAKIAc2AgwgCiAONgIYIAohBwsgACAHNgIAQQAhBwwFCyAJIAxBOGogBCAMQTRqIAUgDEFAayAMQTBqQQAQJCIIQQBIDQsgBRAsIgdBAEgEQCAHIQgMDAsgB0EfSyAKcQRAQaJ+IQgMDAsgBSgCLCEVIAwoAjQhCyAFIQkjAEEQayISJAACQCALIA5rIhBBAEwEQEGqfiEJDAELIBUoAlQhDyASQQA2AgQCQAJAAkACQAJAIA8EQCASIAs2AgwgEiAONgIIIA8gEkEIaiASQQRqEI8BGiASKAIEIghFDQEgCCgCCCIPQQBMDQIgCSgCDC0ACUEBcQ0DIAkgCzYCKCAJIA42AiRBpX4hCQwGC0H8lxEQjAEiD0UEQEF7IQkMBgsgFSAPNgJUC0F7IQlBGBDLASIIRQ0EIAggFSgCRCAOIAsQdiIONgIAIA5FBEAgCBDMAQwFC0EIEMsBIgtFDQQgCyAONgIAIAsgDiAQajYCBCAPIAsgCBCQASIJBEAgCxDMASAJQQBIDQULIAhBADYCFCAIIBA2AgQgCEIBNwIIIAggBzYCEAwDCyAIIA9BAWoiDjYCCCAPDQEgCCAHNgIQDAILIAggD0EBaiIONgIIIA5BAkcNACAIQSAQywEiDjYCFCAORQRAQXshCQwDCyAIQQg2AgwgCCgCECELIA4gBzYCBCAOIAs2AgAMAQsgCCgCFCELIAgoAgwiCSAPTARAIAggCyAJQQN0EM0BIgs2AhQgC0UEQEF7IQkMAwsgCCAJQQF0NgIMIAgoAgghDgsgDkECdCALakEEayAHNgIAC0EAIQkLIBJBEGokACAJIggNAEEBQTgQzwEiCEUEQCAAQQA2AgBBeyEIDAwLIAhChYCAgIDAADcCACAIQv////8fNwIYIAAgCDYCACAIIAc2AhQgB0EgSSAKcQRAIAUgBSgCEEEBIAd0cjYCEAsgBSAFKAI4QQFqNgI4DAELIAgiB0EATg0EDAoLIAAoAgAhCAsgCEUEQEF7IQgMCQsgASAMQThqIAQgBRAaIghBAEgNCCAMQTxqIAFBDyAMQThqIAQgBUEAEBshCCAMKAI8IQcgCEEASARAIAcQEAwJCyAAKAIAIAc2AgxBACEHIAAoAgAiCigCAEEFRw0BIAooAhANASAKKAIUIgkgBSgCNEoEQEF1IQgMCQsgCUEDdCAFKAKAASIOIBMgDhtqIAo2AgAMAQsgASAMQThqIAQgBRAaIghBAEgNB0EBIQcgACABQQ8gDEE4aiAEIAVBABAbIghBAEgNBwsgAyAMKAI4NgIACyAHQQJHBEAgB0EBRw0CIAZFBEBBASENDAMLIAAoAgAhDUEBQTgQzwEiB0UEQCAAQQA2AgAgDRAQQXshCAwHCyAHIA02AgwgB0EHNgIAIAAgBzYCAEECIQ0MAgsgESgCAC0ACUEEcQRAIAUgACgCACgCFDYCACABIAMgBCAFEBoiCEEASA0GIAAoAgAiCARAIAgQESAIEMwBCyAAQQA2AgAgASgCACIHIAJGDQQMAQsLIAUoAgAhByAFIAAoAgAoAhQ2AgAgASADIAQgBRAaIghBAEgNBCAMQUBrIAEgAiADIAQgBUEAEBshCCAFIAc2AgAgDCgCQCEFIAhBAEgEQCAFEBAMBQsgACgCACAFNgIMIAEoAgAhCAwEC0EACyEHA0AgB0UEQCABIAMgBCAFEBoiCEEASA0EQQEhBwwBCyAIQX5xQQpHDQMgACgCABAyBEBBjn8hCAwECyAWQQFqIhZB+JcRKAIASwRAQXAhCAwECyABKAIYIQIgASgCFCEKQQFBOBDPASIHRQRAQXshCAwECyAHQQE2AhggByACNgIUIAcgCjYCECAHQQQ2AgAgCEELRgRAIAdBgIABNgIECyAHIAEoAhw2AhggACgCACEIAkAgDUECRwRAIAghAgwBCyAIKAIMIQIgCEEANgIMIAgQESAIEMwBIABBADYCACAHKAIQIQoLQQEhCAJAIApBAUYEQCAHKAIUQQFGDQELQQAhCAJAAkACQAJAIAIiCSgCAA4FAAMDAwEDCyANDQIgAigCDCINIAIoAhBPDQIgDSAFKAIIKAIAEQEAIAIoAhAiDSACKAIMIgprTg0CIAogDU8NAiAFKAIIIAogDRB4Ig1FDQIgAigCDCANTw0CIAIoAhAhCkEBQTgQzwEiCUUEQCACIQkMAwsgCSAJQRhqIg42AhAgCSAONgIMIAkgDSAKEBNFDQEgCRARIAkQzAEgAiEJDAILAkACQCAHKAIYIg4EQAJAAkAgCg4CAAEDC0EBQX8gBygCFCIIQX9GG0EAIAhBAUcbIQ0MAwtBAiENIAcoAhRBf0cNAQwCCwJAAkAgCg4CAAECC0EDQQRBfyAHKAIUIghBf0YbIAhBAUYbIQ0MAgtBBSENIAcoAhRBf0YNAQtBfyENCyACKAIQIQgCQAJAAkAgAigCGARAAkAgCA4CAAIEC0EBQX8gAigCFCIIQX9GG0EAIAhBAUcbIQkMAgsCQAJAIAgOAgABBAtBA0EEQX8gAigCFCIIQX9GGyAIQQFGGyEJDAILQQUhCSACKAIUQX9HDQIMAQtBAiEJIAIoAhRBf0cNAQsCQCAJQQBIIggNACANQQBIDQAgESgCAC0AC0ECcUUNAQJAAkACQCAJQRhsQYAIaiANQQJ0aigCACIIDgIEAAELQfCXESgCAEEBRg0DIAxBQGsgBSgCCCAFKAIcIAUoAiBB/RVBABCLAQwBC0HwlxEoAgBBAUYNAiAFKAIgIQ4gBSgCHCELIAUoAgghDyAMIAhBAnRB8JkRaigCADYCCCAMIA1BAnRB0JkRaigCADYCBCAMIAlBAnRB0JkRaigCADYCACAMQUBrIA8gCyAOQboWIAwQiwELIAxBQGtB8JcRKAIAEQQADAELIAgNACANQQBODQBBACEIIAlBAWtBAUsEQCACIQkMAwsgBygCFEECSARAIAIhCQwDCyAORQRAIAIhCQwDCyAHIApBASAKGzYCFCACIQkMAgsgByACNgIMIAcQFyIIQQBODQIgBxARIAcQzAEgAEEANgIADAYLIAIgDTYCECAJIAIoAhQ2AhQgCSACKAIENgIEQQIhCAsgByAJNgIMCwJAIAEoAiBFBEAgByEKDAELQQFBOBDPASIKRQRAIAcQESAHEMwBQXshCAwFCyAKQQA2AjQgCkECNgIQIApBBTYCACAKIAc2AgwLQQAhDQJAAkACQAJAAkAgCA4DAAECAwsgACAKNgIADAILIAoQESAKEMwBIAAgAjYCAAwBCyAAKAIAIQdBAUE4EM8BIgJFBEAgAEEANgIADAILIAJBADYCECACIAc2AgwgAkEHNgIAIAAgAjYCAEEBQTgQzwEiB0UEQCACQQA2AhAMAgsgB0EANgIQIAcgCjYCDCAHQQc2AgAgACgCACAHNgIQIAdBDGohAAtBACEHDAELCyAKEBEgChDMAUF7IQgMAgsgAiEHC0EBQTgQzwEiCEUEQCAAQQA2AgBBeyEIDAELIAggCEEYaiIFNgIQIAggBTYCDCAAIAg2AgAgByEICyAMQcACaiQAIAgL1wYBCn8jAEEQayIMJABBnX4hCAJAIAEoAgAiCiACTw0AIAMoAgghBQNAIAIgCk0NASAKIAIgBSgCFBEAAEH7AEcEQCAKIQsDQCALIAIgBSgCFBEAACEHIAsgBSgCABEBACALaiEEAkAgB0H9AEcNACAGIQcgBgRAA0AgAiAETQ0GIAQgAiAFKAIUEQAAIQkgBCAFKAIAEQEAIARqIQQgCUH9AEcNAiAHQQFKIQkgB0EBayEHIAkNAAsLQYp/IQggAiAETQ0EIAQgAiAFKAIUEQAAIQcgBCAFKAIAEQEAIARqIQkCfyAHQdsARwRAQQAhBCAJDAELIAIgCU0NBSAJIQYDQAJAIAYiBCACIAUoAhQRAAAhByAEIAUoAgARAQAgBGohBiAHQd0ARg0AIAIgBksNAQsLQYp/QZl+IAUgCSAEEA0iBxshCCAHRQ0FIAIgBk0NBSAGIAIgBSgCFBEAACEHIAkhDSAGIAUoAgARAQAgBmoLIQZBASEJAkACQAJAAkACQCAHQTxrDh0BBAIEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQLQQMhCUGKfyEIIAIgBksNAgwIC0ECIQlBin8hCCACIAZLDQEMBwtBin8hCCACIAZNDQYLIAYgAiAFKAIUEQAAIQcgBiAFKAIAEQEAIAZqIQYLQZ1+IQggB0EpRw0EIAMgDEEMahA6IggNBCADKAIsED0iAkUEQEF7IQgMBQsgAigCAEUEQCADKAIsIAMoAhwgAygCIBA+IggNBQsgBCANRwRAIAMgAygCLCANIAQgDCgCDBA7IggNBQsgBSAKIAsQdiICRQRAQXshCAwFCwJAIAwoAgwiBUEATA0AIAMoAiwoAoQDIgRFDQAgBCgCDCAFSA0AIAQoAhQiB0UNACAAQQFBOBDPASIENgIAIARFDQAgBEF/NgIYIARBCjYCACAEIAU2AhQgBEIDNwIMIAcgBUEBa0HcAGxqIgUgAjYCJCAFQX82AgwgBSAJNgIIQQAhCCAFQQA2AgQgBSACIAsgCmtqNgIoIAEgBjYCAAwFCyACEMwBQXshCAwECyAEIgsgAkkNAAsMAgsgBkEBaiEGIAogBSgCABEBACAKaiIKIAJJDQALCyAMQRBqJAAgCAu0AgEDf0EBQTgQzwEiBkUEQEEADwsgBiAANgIMIAZBAzYCACACBH8gBkGAgAI2AgRBgIACBUEACyEHIAUtAABBAXEEQCAGIAdBgICAAXIiBzYCBAsgAwRAIAYgBDYCLCAGIAdBgMAAciIHNgIECwJAIABBAEwNACAFQUBrIQggBSgCNCEEQQAhAwNAAkACQCABIANBAnRqKAIAIgIgBEoNACACQQN0IAUoAoABIgIgCCACG2ooAgANACAGIAdBwAByNgIEDAELIANBAWoiAyAARw0BCwsgAEEGTARAIABBAEwNASAGQRBqIAEgAEECdBCmARoMAQsgAEECdCICEMsBIgNFBEAgBhARIAYQzAFBAA8LIAYgAzYCKCADIAEgAhCmARoLIAUgBSgChAFBAWo2AoQBIAYL6RMBHX8jAEHQAGsiDSQAAkAgAiABKAIAIg5NBEBBnX4hBwwBCyADKAIIIQUgDiEPA0BBin8hByAPIgkgAk8NASAJIAIgBSgCFBEAACEGIAkgBSgCABEBACAJaiEPAkAgBkEpRg0AIAZB+wBGDQAgBkHbAEcNAQsLIAkgDk0EQEGcfiEHDAELIA4hCgNAAkAgCiAJIAUoAhQRAAAiBEFfcUHBAGtBGkkNACAEQTBrQQpJIgggCiAORnEEQEGcfiEHDAMLIARB3wBGIAhyDQBBnH4hBwwCCyAKIAUoAgARAQAgCmoiCiAJSQ0AC0EAIQoCQCAGQdsARwRAIA8hEEEAIQ8MAQsgAiAPTQ0BIA8hBANAAkAgBCIKIAIgBSgCFBEAACEGIAQgBSgCABEBACAEaiEEIAZB3QBGDQAgAiAESw0BCwsgCiAPTQRAQZl+IQcMAgsgDyEGA0ACQCAGIAogBSgCFBEAACIIQV9xQcEAa0EaSQ0AIAhBMGtBCkkiCyAGIA9GcQRAQZl+IQcMBAsgCEHfAEYgC3INAEGZfiEHDAMLIAYgBSgCABEBACAGaiIGIApJDQALIAIgBE0NASAEIAIgBSgCFBEAACEGIAQgBSgCABEBACAEaiEQCwJAAkAgBkH7AEYEQCACIBBNDQMgAygCCCELIBAhBgNAQQAhB0EAIQggAiAGTQRAQZ1+IQcMBQsCQANAIAYgAiALKAIUEQAAIQQgBiALKAIAEQEAIAZqIQYCfwJAIAcEQCAEQSxGDQEgBEHcAEYNASAEQf0ARg0BIAhBAWohCAwBC0EBIARB3ABGDQEaIARBLEYNAyAEQf0ARg0DCyAIQQFqIQhBAAshByACIAZLDQALQZ1+IQcMBQsgBEH9AEcEQCAMIAhBAEdqIgxBBEkNAQsLQZ1+IQcgBEH9AEcNA0EAIQQgAiAGSwRAIAYgAiAFKAIUEQAAIQQLIA0gEDYCDCAFIARBKUcgDiAJIA1ByABqEDwiBw0DQeC/EigCACgCCCANKAJIIglBzABsaiIGKAIQIg5BAEoEQCANQTBqIAZBGGogDkECdBCmARoLIA1BMGohGSANQRBqIRcgAyEEQQAhCCMAQZABayITJABBnX4hCwJAIA1BDGoiHSgCACIGIAJPDQAgBCgCCCEUAkACQAJAA0BBnX4hCyACIAZNDQEgE0EQaiEVIAYhBEEAIRZBACEQQQAhDEEAIRIDQAJAIAQgAiAUKAIUEQAAIREgBCAUKAIAEQEAIARqIQcCQAJAIAwEQCARQSxGDQEgEUHcAEYNASARQf0ARg0BIBJBAWohEiAQIQQMAQtBASEMIBFB3ABGBEAgBCEQDAILIBFBLEYNAiARQf0ARg0CCyAHIARrIhEgFmoiFkGAAUoEQEGYfiELDAYLIBUgBCAREKYBGiASQQFqIRJBACEMCyATQRBqIBZqIRUgByIEIAJJDQEMBAsLIBIEQAJAIA5BAEgNACAIIA5IDQBBmH4hCwwECwJAIBkgCEECdGoiFigCACIMQQFxRQ0AAkAgFiASQQBKBH8gE0EMaiEeQQAhC0EAIRpBmH4hGwJAIBUgE0EQaiIYTQ0AQQEhHANAIBggFSAUKAIUEQAAIQwgGCAUKAIAEQEAIR8CQCAMQTBrIiBBCU0EQCALQa+AgIB4IAxrQQpuSg0DICAgC0EKbGohCwwBCyAaDQICQCAMQStrDgMBAwADC0F/IRwLQQEhGiAYIB9qIhggFUkNAAsgHiALIBxsNgIAQQAhGwsgG0UNASAWKAIABSAMC0F+cSIMNgIAIAwNAUGYfiELDAULIBcgCEEDdGogEygCDDYCAEEBIQwgFkEBNgIAC0F1IQsCQAJAAkACQCAMQR93DgkHAAEDBwMDAwIDCyASQQFHBEBBmH4hCwwHCyAXIAhBA3RqIBNBEGogFSAUKAIUEQAANgIADAILIBQgE0EQaiAVEHYiDEUEQEF7IQsMBgsgFyAIQQN0aiISIAwgBCAGa2o2AgQgEiAMNgIADAELQZl+IQsgEA0EIBQgBiAEEA1FDQQgFyAIQQN0aiIMIAQ2AgQgDCAGNgIACyAIQQFqIQgLIBFB/QBHBEAgByEGIAhBBEgNAQsLIBFB/QBGDQILQZ1+IQsLIAhBAEwNAUEAIQQDQAJAIBkgBEECdGooAgBBBEcNACAXIARBA3RqKAIAIgdFDQAgBxDMAQsgBEEBaiIEIAhHDQALDAELIB0gBzYCACAIIQsLIBNBkAFqJAAgCyIEQQBIBEAgBCEHDAQLQYp/IQcgDSgCDCIIIAJPDQIgCCACIAUoAhQRAAAhBiAIIAUoAgARAQAgCGohEAwBC0EAIQQgBUEAIA4gCSANQcgAahA8IgcNAkHgvxIoAgAoAgggDSgCSCIJQcwAbGoiBSgCECIOQQBMDQAgDUEwaiAFQRhqIA5BAnQQpgEaC0EAIQJB4L8SKAIAIQUCQCAJQQBIDQAgBSgCACAJTA0AIAUoAgggCUHMAGxqKAIEIQILQZh+IQcgBCAOSg0AIAQgDiAFKAIIIAlBzABsaigCFGtIDQBBnX4hByAGQSlHDQAgAyANQcwAahA6IgcNAEF7IQcgAygCLBA9IgVFDQACQCAFKAIADQAgAygCLCADKAIcIAMoAiAQPiIFRQ0AIAUhBwwBCwJAIAogD0YEQCANKAJMIQUMAQsgAyADKAIsIA8gCiANKAJMIgUQOyIKRQ0AIAohBwwBCyAFQQBMDQAgAygCLCgChAMiCkUNACAKKAIMIAVIDQAgCigCFCIKRQ0AQQFBOBDPASIPRQ0AIA8gCTYCGCAPQQo2AgAgDyAFNgIUIA9Cg4CAgBA3AgwgCiAFQQFrIgZB3ABsaiIFIAk2AgwgBSACNgIIIAVBATYCBEEAIQICQCAJQQBOBEAgCUHgvxIoAgAiBSgCAE4EQCAKIAZB3ABsakIANwIYDAILIAogBkHcAGxqIgIgCUHMAGwiByAFKAIIaiIIKAIANgIYIAIgCCgCCDYCHCAFKAIIIAdqKAIMIQIMAQsgBUIANwIYCyAKIAZB3ABsaiIKIA42AiQgCiACNgIgIAogBDYCKCAOQQBKBEBB4L8SKAIAIQZBACEFIAlBzABsIQIDQCAKIAVBAnQiCWogDUEwaiAJaigCADYCLCAKIAVBA3RqIAQgBUoEfyANQRBqIAVBA3RqBSAGKAIIIAJqIAVBA3RqQShqCykCADcCPCAFQQFqIgUgDkcNAAsLIAAgDzYCACABIBA2AgBBACEHDAELIARFDQBBACEJA0ACQCANQTBqIAlBAnRqKAIAQQRHDQAgDUEQaiAJQQN0aigCACIFRQ0AIAUQzAELIAlBAWoiCSAERw0ACwsgDUHQAGokACAHC5UCAQR/AkAgACgCNCIEQfSXESgCACIBTgRAQa5+IQIgAQ0BCyAEQQFqIQICQCAEQQdIDQAgACgCPCIDIAJKDQACfyAAKAKAASIBRQRAQYABEMsBIgFFBEBBew8LIAEgACkCQDcCACABIAApAng3AjggASAAKQJwNwIwIAEgACkCaDcCKCABIAApAmA3AiAgASAAKQJYNwIYIAEgACkCUDcCECABIAApAkg3AghBEAwBCyABIANBBHQQzQEiAUUEQEF7DwsgACgCNCIEQQFqIQIgA0EBdAshAyACIANIBEAgBEEDdCABakEIakEAIAMgBEF/c2pBA3QQqAEaCyAAIAM2AjwgACABNgKAAQsgACACNgI0CyACC4EBAQJ/AkAgAUEATA0AQQFBOBDPASEDAkAgAUEBRgRAIANFDQIgAyAANgIAIAMgAigCADYCDAwBCyADRQ0BIAAgAUEBayACQQRqEC0iAUUEQCADEBEgAxDMAUEADwsgAyAANgIAIAIoAgAhBCADIAE2AhAgAyAENgIMCyADIQQLIAQLqyUBEn8jAEHQA2siByQAIABBADYCACAEIAQoApwBQQFqIgU2ApwBQXAhBgJAIAVB+JcRKAIASw0AIAdBAzYCSEECIQUCQCABIAIgAyAEQQMQMyIGQQJHIgtFBEBBASESIAEoAhRB3gBHDQEgASgCCA0BIAEgAiADIARBAxAzIQYLIAZBAEgNASAGQRhHBEAgCyESIAYhBQwBC0GafyEGIAIoAgAiBSAEKAIgIghPDQEgBCgCCCEKA0ACQCAJBH9BAAUgBSAIIAooAhQRAAAhCSAFIAooAgARAQAhEiAJQd0ARg0BIAUgEmohBSAJIAQoAgwoAhBGCyEJIAUgCEkNAQwDCwsCQEHslxEoAgBBAUYNACAEKAIMKAIIQYCAgAlxQYCAgAlHDQAgBCgCICEGIAQoAhwhCSAEKAIIIQggB0HfCTYCMCAHQZABaiAIIAkgBkGlDyAHQTBqEIsBIAdBkAFqQeyXESgCABEEAAtBAiEFIAFBAjYCACALIRILQQFBOBDPASIKRQRAIABBADYCAEF7IQYMAQsgCkEBNgIAIAAgCjYCACAHQQA2AkQgByACKAIANgKIASAHQZcBaiEVA0AgBSEJA0ACQEGZfyEFQXUhBgJAAkAgASAHQYgBaiADIAQCfwJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgCQ4dGAAVGgEaAxoaGhoaGhoaGhoaBBoaGhoaCQUCBwYaCwJAIAQoAggiBigCCCIJQQFGDQAgASgCDCIIRQ0AIAcgAS0AFDoAkAFBASEFIAcoAogBIQsCQAJAAkAgCUECTgRAAkADQCABIAdBiAFqIAMgBEECEDMiBkEASA0gQQEhCSAGQQFHDQEgASgCDCAIRw0BIAdBkAFqIAVqIAEtABQ6AAAgBUEBaiIFIAQoAggoAghIDQALQQAhCQsgBSAEKAIIIgYoAgxODQFBsn4hBgweC0EAIQkgBigCDEEBTA0BQbJ+IQYMHQsgBUEGSw0BCyAHQZABaiAFakEAIAVBB3MQqAEaCyAHQZABaiAGKAIAEQEAIgggBUoEQEGyfiEGDBsLAkAgBSAISgR/IAcgCzYCiAFBACEJQQEhBSAIQQJIDQEDQCABIAdBiAFqIAMgBEECEDMiBkEASA0dIAVBAWoiBSAIRw0ACyAIBSAFC0EBRg0AIAdBkAFqIBUgBCgCCCgCFBEAACEGQQEhCEECDBcLIActAJABIQYMFAsgAS0AFCEGQQAhCQwTCyABKAIUIQZBACEJQQEhCAwRCyAEKAIIIQZBACEJAkAgBygCiAEiBSADTw0AIAUgAyAGKAIUEQAAQd4ARw0AIAUgBigCABEBACAFaiEFQQEhCQtBACEQIAMgBSILSwRAA0AgEEEBaiEQIAsgBigCABEBACALaiILIANJDQALCwJAIBBBB0gNACAGIAUgA0GHEEEFEIYBRQRAQZCYESEIDA8LIAYgBSADQecQQQUQhgFFBEBBnJgRIQgMDwsgBiAFIANB2RFBBRCGAUUEQEGomBEhCAwPCyAGIAUgA0GgEkEFEIYBRQRAQbSYESEIDA8LIAYgBSADQa4SQQUQhgFFBEBBwJgRIQgMDwsgBiAFIANB4RJBBRCGAUUEQEHMmBEhCAwPCyAGIAUgA0GQE0EFEIYBRQRAQdiYESEIDA8LIAYgBSADQagTQQUQhgFFBEBB5JgRIQgMDwsgBiAFIANB0xNBBRCGAUUEQEHwmBEhCAwPCyAGIAUgA0GqFEEFEIYBRQRAQfyYESEIDA8LIAYgBSADQbAUQQUQhgFFBEBBiJkRIQgMDwsgBiAFIANB9xRBBhCGAUUEQEGUmREhCAwPCyAGIAUgA0GoFUEFEIYBRQRAQaCZESEIDA8LIAYgBSADQcgVQQQQhgENAEGsmREhCAwOC0EAIQkDQCADIAVNDQ8CQCAFIAMgBigCFBEAACIIQTpGDQAgCEHdAEYNECAFIAYoAgARAQAhCCAJQRRGDRAgBSAIaiIFIANPDRAgBSADIAYoAhQRAAAiCEE6Rg0AIAhB3QBGDRAgCUECaiEJIAUgBigCABEBACAFaiEFDAELCyAFIAYoAgARAQAgBWoiBSADTw0OIAUgAyAGKAIUEQAAIQkgBSAGKAIAEQEAGiAJQd0ARw0OQYd/IQYMFwsgCiABKAIUIAEoAhggBBAwIgUNFAwOCyAEKAIIIQkgBygCiAEiDSEFA0BBi38hBiADIAVNDRYgBSADIAkoAhQRAAAhCCAFIAkoAgARAQAgBWohCwJAAkAgCEH7AGsOAxgYAQALIAshBSAIQShrQQJPDQEMFwsLIAkgDSAFIAkoAiwRAgAiBkEASARAIAQgBTYCKCAEIA02AiQMFgsgByALNgKIASAKIAYgASgCGCAEEDAiBUUNDQwTCwJAAkACQAJAIAcoAkgOBAACAwEDCyABIAdBiAFqIAMgBEEBEDMiBUEASA0VQQEhCUEAIQhBLSEGAkACQCAFQRhrDgQSAQEAAQsgBEG6DhA0DBELIAcoAkRBA0cNBUGQfyEGDBcLIAEoAhQhBiABIAdBiAFqIAMgBEEAEDMiBUEASA0UQQEhCUEAIQggFkUgBUEZR3END0HslxEoAgBBAUYNDyAEKAIMKAIIQYCAgAlxQYCAgAlHDQ8gBCgCICELIAQoAhwhDSAEKAIIIQ8gB0G6DjYCECAHQZABaiAPIA0gC0GlDyAHQRBqEIsBIAdBkAFqQeyXESgCABEEAAwPC0HslxEoAgBBAUYNECAEKAIMKAIIQYCAgAlxQYCAgAlHDRAgBCgCICEGIAQoAhwhCSAEKAIIIQggB0G6DjYCICAHQZABaiAIIAkgBkGlDyAHQSBqEIsBIAdBkAFqQeyXESgCABEEAAwQCyABIAdBiAFqIAMgBEEAEDMiBUEASA0SQQEhCUEAIQhBLSEGAkACQCAFQRhrDgQPAQEAAQsgBEG6DhA0DA4LIAQoAgwtAApBgAFxRQRAQZB/IQYMFQsgBEG6DhA0DA0LIAcoAkhFBEAgCiAHQYwBakEAIAdBzABqQQAgBygCRCAHQcQAaiAHQcgAaiAEEDUiBg0UCyAHQQI2AkggB0FAayABIAdBiAFqIAMgBBAuIQYgBygCQCEJIAYEQCAJRQ0UIAkQESAJEMwBDBQLIAlBEGohBiAJKAIMQQFxIQ0gCkEQaiIOIQUgCigCDEEBcSILBEAgByAKKAIQQX9zNgKQASAHIAooAhRBf3M2ApQBIAcgCigCGEF/czYCmAEgByAKKAIcQX9zNgKcASAHIAooAiBBf3M2AqABIAcgCigCJEF/czYCpAEgByAKKAIoQX9zNgKoASAHIAooAixBf3M2AqwBIAdBkAFqIQULIAYoAgAhCCANBEAgByAJKAIUQX9zNgKkAyAHIAkoAhhBf3M2AqgDIAcgCSgCHEF/czYCrAMgByAJKAIgQX9zNgKwAyAHIAkoAiRBf3M2ArQDIAcgCSgCKEF/czYCuAMgByAJKAIsQX9zNgK8AyAIQX9zIQggB0GgA2ohBgsgBCgCCCEPIAkoAjAhESAKKAIwIRMgBSAFKAIAIAhyIgg2AgAgBSAFKAIEIAYoAgRyNgIEIAUgBSgCCCAGKAIIcjYCCCAFIAUoAgwgBigCDHI2AgwgBSAFKAIQIAYoAhByNgIQIAUgBSgCFCAGKAIUcjYCFCAFIAUoAhggBigCGHI2AhggBSAFKAIcIAYoAhxyNgIcIAUgDkcEQCAKIAg2AhAgCiAFKAIENgIUIAogBSgCCDYCGCAKIAUoAgw2AhwgCiAFKAIQNgIgIAogBSgCFDYCJCAKIAUoAhg2AiggCiAFKAIcNgIsCyALBEAgCiAKKAIQQX9zNgIQIApBFGoiBSAFKAIAQX9zNgIAIApBGGoiBSAFKAIAQX9zNgIAIApBHGoiBSAFKAIAQX9zNgIAIApBIGoiBSAFKAIAQX9zNgIAIApBJGoiBSAFKAIAQX9zNgIAIApBKGoiBSAFKAIAQX9zNgIAIApBLGoiBSAFKAIAQX9zNgIAC0EAIQYgDygCCEEBRg0HAkACQAJAIAtFDQAgDUUNACAHQQA2AswDIBNFBEAgCkEANgIwDAsLIBFFDQEgEygCACIFKAIAIhRFDQEgBUEEaiEQIBEoAgAiBUEEaiEOIAUoAgAhD0EAIREDQAJAIA9FDQAgECARQQN0aiIFKAIAIQsgBSgCBCEIQQAhBQNAIA4gBUEDdGoiBigCACINIAhLDQEgCyAGKAIEIgZNBEAgB0HMA2ogCyANIAsgDUsbIAggBiAGIAhLGxAZIgYNDQsgBUEBaiIFIA9HDQALCyARQQFqIhEgFEcNAAsMBgsgDyATIAsgESANIAdBzANqEDYiBg0BIAtFDQEgDyAHKALMAyIFIAdBnANqEDciBgRAIAVFDQogBSgCACIIBEAgCBDMAQsgBRDMAQwKCyAFBEAgBSgCACIGBEAgBhDMAQsgBRDMAQsgByAHKAKcAzYCzAMMBQsgCkEANgIwDAULIAZFDQMMBwsgBygCSEUEQCAKIAdBjAFqQQAgB0HMAGpBACAHKAJEIAdBxABqIAdByABqIAQQNSIFDRELIAdBAzYCSAJ/IAxFBEAgCiEMIAdB0ABqDAELIAwgCiAEKAIIEDgiBQ0RIAooAjAiBQRAIAUoAgAiBgRAIAYQzAELIAUQzAELIAoLIgZCADcCDCAGQgA3AiwgBkIANwIkIAZCADcCHCAGQgA3AhRBASEWIAYhCkEDDA8LIAdBATYCSAwQCyAHKAJIRQRAIAogB0GMAWpBACAHQcwAakEAIAcoAkQgB0HEAGogB0HIAGogBBA1IgYNEQsCQCAMRQRAIAohDAwBCyAMIAogBCgCCBA4IgYNESAKKAIwIgAEQCAAKAIAIgEEQCABEMwBCyAAEMwBCwsgDCAMKAIMQX5xIBJBAXNyNgIMAkAgEg0AIAQoAgwtAApBEHFFDQACQCAMKAIwDQAgDCgCEA0AIAwoAhQNACAMKAIYDQAgDCgCHA0AIAwoAiANACAMKAIkDQAgDCgCKA0AIAwoAixFDQELQQpBACAEKAIIKAIwEQAARQ0AQQogBCgCCCgCGBEBAEEBRgRAIAwgDCgCEEGACHI2AhAMAQsgDEEwakEKQQoQGRoLIAIgBygCiAE2AgAgBCAEKAKcAUEBazYCnAFBACEGDBMLIAogBygCzAM2AjAgE0UNAQsgEygCACIFBEAgBRDMAQsgExDMAQtBACEGCyAJRQ0BCyAJEBEgCRDMAQsgBg0KQQIMBwtBACEUAkAgCC4BCCIOQQBMDQAgDkEBayEQIA5BA3EiCwRAA0AgDkEBayEOIAUgBigCABEBACAFaiEFIBRBAWoiFCALRw0ACwsgEEEDSQ0AA0AgBSAGKAIAEQEAIAVqIgUgBigCABEBACAFaiIFIAYoAgARAQAgBWoiBSAGKAIAEQEAIAVqIQUgDkEFayEUIA5BBGshDiAUQX5JDQALCyAGIAVBACADIAVPGyINIANB6RVBAhCGAQRAQYd/IQYMCgsgCiAIKAIEIAkgBBAwIgVFBEAgByANIAYoAgARAQAgDWoiBSAGKAIAEQEAIAVqNgKIAQwCCyAFQQBIDQcgBUEBRw0BCwJAQeyXESgCAEEBRg0AIAQoAgwoAghBgICACXFBgICACUcNACAEKAIgIQYgBCgCHCEJIAQoAgghCCAHQckNNgIAIAdBkAFqIAggCSAGQaUPIAcQiwEgB0GQAWpB7JcRKAIAEQQACyAHIAEoAhA2AogBIAEoAhQhBkEAIQhBACEJDAELQZJ/IQUCQAJAIAcoAkgOAgAHAQsCQAJAIAcoAkRBAWsOAgEAAgsgCkEwaiAHKAKMASIFIAUQGSIFQQBODQEMBwsgCiAHKAKMASIFQQN2Qfz///8BcWpBEGoiBiAGKAIAQQEgBXRyNgIACyAHQQM2AkQgB0EANgJIQQAMBAsgBiAEKAIIKAIYEQEAIgVBAEgEQCAHKAJIQQFHDQUgBkGAAkkNBSAEKAIMKAIIQYCAgCBxRQ0FIAQoAggoAghBAUYNBQtBAUECIAVBAUYbDAILQQEhCEEBDAELIAEoAhQgBCgCCCgCGBEBACIFQQBIDQIgASgCFCEGQQAhCEEAIQlBAUECIAVBAUYbCyEFIAogB0GMAWogBiAHQcwAaiAIIAUgB0HEAGogB0HIAGogBBA1IgUNASAJDQIgBygCSAsQMyIFQQBODQQLIAUhBgwBCyABKAIAIQkMAQsLCyAKIAAoAgBGDQAgCigCMCIERQ0AIAQoAgAiBQRAIAUQzAELIAQQzAELIAdB0ANqJAAgBguaBwELfyMAQSBrIgYkACADKAIEIQQgAygCACgCCCEHAkACQAJAAkACfwJAAkACQCACQQFGBEAgByAAIAQQVCEAIAQoAgxBAXEhBQJAIAAEQEEAIQAgBUUNAQwKC0EAIQAgBUUNCQsgBygCDEEBTARAIAEoAgAgBygCGBEBAEEBRg0CCyAEQTBqIAEoAgAiBCAEEBkaDAcLIAcgACAEEFRFDQYgBC0ADEEBcQ0GIAJBAEwEQAwDCwNAQQAhBAJAAkACQAJAIActAExBAnFFDQAgASAJQQJ0aiIKEJoBIgRBAEgNAEEBQTgQzwEiBUUNBiAFQQE2AgAgBEECdCIEQYCcEWooAgQiC0EASgRAIAVBMGohDCAEQYicEWohDUEAIQADQCANIABBAnRqKAIAIQQCQAJAIAcoAgxBAUwEQCAEIAcoAhgRAQBBAUYNAQsgDCAEIAQQGRoMAQsgBSAEQQN2Qfz///8BcWpBEGoiDiAOKAIAQQEgBHRyNgIACyAAQQFqIgAgC0cNAAsLIAcoAgxBAUwEQCAKKAIAIAcoAhgRAQBBAUYNAgsgBUEwaiAKKAIAIgQgBBAZGgwCCyABIAlBAnRqKAIAIAZBGWogBygCHBEAACEAAkAgCARAIAhBAnQgBmooAggiBSgCAEUNAQtBAUE4EM8BIgVFDQYgBSAFQRhqIgs2AhAgBSALNgIMIAUgBkEZaiAGQRlqIABqEBMEQCAFEBEgBRDMAQwHCyAFQRRBBCAEG2oiACAAKAIAQQJBgICAASAEG3I2AgAMAgsgBSAGQRlqIAZBGWogAGoQE0EASA0FDAILIAUgCigCACIEQQN2Qfz///8BcWpBEGoiACAAKAIAQQEgBHRyNgIACyAGQQxqIAhBAnRqIAU2AgAgCEEBaiEICyAJQQFqIgkgAkcNAAsgCEEBRw0CIAYoAgwMAwsgBCABKAIAIgBBA3ZB/P///wFxakEQaiIEIAQoAgBBASAAdHI2AgAMBQsgCEEATA0CQQAhBANAIAZBDGogBEECdGooAgAiAARAIAAQESAAEMwBCyAEQQFqIgQgCEcNAAsMAgtBByAIIAZBDGoQLQshAEEBQTgQzwEiBARAIARBADYCECAEIAA2AgwgBEEINgIACyADKAIMIAQ2AgAgAygCDCgCACIEDQEgAEUNACAAEBEgABDMAQtBeyEADAILIAMgBEEQajYCDAtBACEACyAGQSBqJAAgAAuYFAEKfyMAQRBrIgokACADKAIIIQUCQCABQQBIDQAgAUENTQRAQQEhByADLQACQQhxDQELQYCAJCEEQQAhBwJAAkACQCABQQRrDgkAAwMDAwEDAwIDC0GAgCghBAwBC0GAgDAhBAsgAygCACAEcUEARyEHCwJAAkACQAJAAkACQCABIApBCGogCkEMaiAFKAI0EQIAIgZBAmoOAwEFAAULIAooAgwiASgCACEIIAooAgghBSAHRQRAAkACQCACBEBBACEDAkAgCEEASgRAQQAhAgNAIAEgAkEDdGpBBGoiBigCACADSwRAIAMgBSADIAVLGyEHA0AgAyAHRg0EIAAgA0EDdkH8////AXFqQRBqIgQgBCgCAEEBIAN0cjYCACADQQFqIgMgBigCAEkNAAsLIAJBA3QgAWooAghBAWohAyACQQFqIgIgCEcNAAsLIAMgBU8NACADQQFqIQQgBSADa0EBcQRAIAAgA0EDdkH8////AXFqQRBqIgYgBigCAEEBIAN0cjYCACAEIQMLIAQgBUYNACAAQRBqIQQDQCAEIANBA3ZB/P///wFxaiIGIAYoAgBBASADdHI2AgAgBCADQQFqIgZBA3ZB/P///wFxaiIHIAcoAgBBASAGdHI2AgAgA0ECaiIDIAVHDQALCyAIQQBMDQIgAEEwaiEHQQAhAwwBC0EAIQZBACEHIAhBAEwNBQNAAkAgASAHQQN0aiIEQQRqIgsoAgAiAyAEQQhqIgIoAgAiBEsNACADIAUgAyAFSxshCSADIAVJBH8DQCAAIANBA3ZB/P///wFxakEQaiIEIAQoAgBBASADdHI2AgAgAyACKAIAIgRPDQIgA0EBaiIDIAlHDQALIAsoAgAFIAMLIAlPDQcgAEEwaiAJIAQQGSIGDQkgB0EBaiEHDAcLIAdBAWoiByAIRw0ACwwHCwNAIAEgA0EDdGooAgQiBCAFSwRAIAcgBSAEQQFrEBkiBg0ICyADQQN0IAFqKAIIQQFqIgVFDQYgA0EBaiIDIAhHDQALCyAAQTBqIAVBfxAZIgYNBQwECwJAAkAgAgRAQQAhAyAIQQBKBEBBACECA0AgASACQQN0aigCBCIGQf8ASw0DIAMgBkkEQCADIAUgAyAFSxshBwNAIAMgB0YNBiAAIANBA3ZB/P///wFxakEQaiIEIAQoAgBBASADdHI2AgAgA0EBaiIDIAZHDQALC0H/ACACQQN0IAFqKAIIIgMgA0H/AE8bQQFqIQMgAkEBaiICIAhHDQALCyADIAVPDQIgA0EBaiEEIAUgA2tBAXEEQCAAIANBA3ZB/P///wFxakEQaiIGIAYoAgBBASADdHI2AgAgBCEDCyAEIAVGDQIgAEEQaiEEA0AgBCADQQN2Qfz///8BcWoiBiAGKAIAQQEgA3RyNgIAIAQgA0EBaiIGQQN2Qfz///8BcWoiByAHKAIAQQEgBnRyNgIAIANBAmoiAyAFRw0ACwwCC0EAIQZBACEEIAhBAEwNAwNAIAEgBEEDdGoiB0EEaiIMKAIAIgMgB0EIaiIJKAIAIgJNBEAgAyAFIAMgBUsbIQtBgAEgAyADQYABTRshDQNAIAMgDUYNCCADIAtGBEAgCyAMKAIATQ0HIABBMGogC0H/ACACIAJB/wBPGxAZIgYNCiAEQQFqIQQMBwsgACADQQN2Qfz///8BcWpBEGoiByAHKAIAQQEgA3RyNgIAIAMgCSgCACICSSEHIANBAWohAyAHDQALCyAEQQFqIgQgCEcNAAsMBgsgAyAFTw0AIANBAWohBCAFIANrQQFxBEAgACADQQN2Qfz///8BcWpBEGoiBiAGKAIAQQEgA3RyNgIAIAQhAwsgBCAFRg0AIABBEGohBANAIAQgA0EDdkH8////AXFqIgYgBigCAEEBIAN0cjYCACAEIANBAWoiBkEDdkH8////AXFqIgcgBygCAEEBIAZ0cjYCACADQQJqIgMgBUcNAAsLAkAgCEEATA0AIABBMGohB0EAIQMDQCABIANBA3RqKAIEIgRB/wBLDQEgBCAFSwRAIAcgBSAEQQFrEBkiBg0HC0H/ACADQQN0IAFqKAIIIgUgBUH/AE8bQQFqIQUgA0EBaiIDIAhHDQALCyAAQTBqIAVBfxAZIgYNBAwDC0F1IQYgAUEOSw0DQf8AQYACIAcbIQQgBSgCCCEJAkACQEEBIAF0IgNB3t4BcUUEQCADQaAhcUUNBkEAIQMgAg0BIAlBAUYhBgNAAkAgBkUEQCADIAUoAhgRAQBBAUcNAQsgAyABIAUoAjARAABFDQAgACADQQN2Qfz///8BcWpBEGoiCCAIKAIAQQEgA3RyNgIACyADQQFqIgMgBEcNAAsgByAJQQFGcg0FIAUoAghBAUYNBSAAQTBqIAUoAgxBAkhBB3RBfxAZIgZFDQUMBgtBACEDIAJFBEAgCUEBRiEGA0ACQCAGRQRAIAMgBSgCGBEBAEEBRw0BCyADIAEgBSgCMBEAAEUNACAAIANBA3ZB/P///wFxakEQaiIIIAgoAgBBASADdHI2AgALIANBAWoiAyAERw0ACwwFCyAJQQFGIQYDQAJAIAZFBEAgAyAFKAIYEQEAQQFHDQELIAMgASAFKAIwEQAADQAgACADQQN2Qfz///8BcWpBEGoiCCAIKAIAQQEgA3RyNgIACyAEIANBAWoiA0cNAAsMAQsgCUEBRiEGA0ACQCAGRQRAIAMgBSgCGBEBAEEBRw0BCyADIAEgBSgCMBEAAA0AIAAgA0EDdkH8////AXFqQRBqIgggCCgCAEEBIAN0cjYCAAsgA0EBaiIDIARHDQALIAdFDQNB/wEgBCAEQf8BTRshBEH/ACEDIAlBAUYhBgNAAkAgBkUEQCADIAUoAhgRAQBBAUcNAQsgACADQQN2Qfz///8BcWpBEGoiASABKAIAQQEgA3RyNgIACyADIARHIQEgA0EBaiEDIAENAAsgByAJQQFHcUUNAyAFKAIIQQFGDQMgAEEwaiAFKAIMQQJIQQd0QX8QGSIGDQQMAwsgBwRAQf8BIAQgBEH/AU0bIQRB/wAhAyAJQQFGIQYDQAJAIAZFBEAgAyAFKAIYEQEAQQFHDQELIAAgA0EDdkH8////AXFqQRBqIgEgASgCAEEBIAN0cjYCAAsgAyAERyEBIANBAWohAyABDQALCyAJQQFGDQIgBSgCCEEBRg0CIABBMGogBSgCDEECSEEHdEF/EBkiBg0DDAILIAQgCE4NASAAQTBqIQADQCABIARBA3RqKAIEIgNB/wBLDQIgACADQf8AIARBA3QgAWooAggiBSAFQf8ATxsQGSIGDQMgCCAEQQFqIgRHDQALDAELIAcgCE4NACAAQTBqIQUDQCAFIAEgB0EDdGoiAygCBCADKAIIEBkiBg0CIAdBAWoiByAIRw0ACwtBACEGCyAKQRBqJAAgBgsSACAAQgA3AgwgABARIAAQzAELWwEBf0EBIQECQAJAAkACQCAAKAIAQQZrDgUDAAECAwILA0BBACEBIAAoAgwQMkUNAyAAKAIQIgANAAsMAgsDQCAAKAIMEDINAiAAKAIQIgANAAsLQQAhAQsgAQurFAEJfyMAQRBrIgYkACAGIAEoAgAiCzYCCCADKAIMIQwgAygCCCEHAkACQCAAKAIEBEAgACgCDCENIAshBQJAAkACQANAAkACQCACIAVNDQAgBSACIAcoAhQRAAAhCSAFIAcoAgARAQAgBWohCEECIQoCQCAJQSBrDg4CAQEBAQEBAQEBAQEBBQALIAlBCkYNASAJQf0ARg0DCyAGIAU2AgAgBiACIAcgBkEMaiANEB4iCg0EQQAhCiAGKAIAIQgMAwsgCCIFIAJJDQALQfB8IQoMBQtBASEKCyAGIAg2AgggCCELCwJAAkACQCAKDgMBAgAFCyAAQRk2AgAMAwsgAEEENgIAIAAgBigCDDYCFAwCCyAAQQA2AgQLIAIgC00EQEEAIQogAEEANgIADAILIAsgAiAHKAIUEQAAIQUgBiALIAcoAgARAQAgC2oiCDYCCCAAIAU2AhQgAEECNgIAIABCADcCCAJAIAVBLUcEQCAFQd0ARw0BIABBGDYCAAwCCyAAQRk2AgAMAQsCQCAMKAIQIAVGBEAgDC0ACkEgcUUNAkGYfyEKIAIgCE0NAyAIIAIgBygCFBEAACEFIAYgCCAHKAIAEQEAIAhqIgk2AgggACAFNgIUIABBATYCCAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBUEwaw5JDw8PDw8PDw8QEBAQEBAQEBAQEBADEBAQBxAQEBAQEBAIEBAFEA4QARAQEBAQEBAQEBAQEAIQEBAGEBAQEBAQCQgQEAQQDRAAChALIABCDDcCFCAAQQY2AgAMEgsgAEKMgICAEDcCFCAAQQY2AgAMEQsgAEIENwIUIABBBjYCAAwQCyAAQoSAgIAQNwIUIABBBjYCAAwPCyAAQgk3AhQgAEEGNgIADA4LIABCiYCAgBA3AhQgAEEGNgIADA0LIAwtAAZBCHFFDQwgAEILNwIUIABBBjYCAAwMCyAMLQAGQQhxRQ0LIABCi4CAgBA3AhQgAEEGNgIADAsLIAIgCU0NCiAJIAIgBygCFBEAAEH7AEcNCiAMLQAGQQFxRQ0KIAYgCSAHKAIAEQEAIAlqIgg2AgggACAFQdAARjYCGCAAQRI2AgAgAiAITQ0KIAwtAAZBAnFFDQogCCACIAcoAhQRAAAhBSAGIAggBygCABEBACAIajYCCCAFQd4ARgRAIAAgACgCGEU2AhgMCwsgBiAINgIIDAoLIAIgCU0NCSAJIAIgBygCFBEAAEH7AEcNCSAMKAIAQQBODQkgBiAJIAcoAgARAQAgCWo2AgggBkEIaiACQQsgByAGQQxqECAiCkEASA0KQQghCCAGKAIIIgUgAk8NASAFIAIgBygCFBEAACILQf8ASw0BQax+IQogC0EEIAcoAjARAABFDQEMCgsgAiAJTQ0IIAkgAiAHKAIUEQAAIQggDCgCACEFIAhB+wBHDQEgBUGAgICABHFFDQEgBiAJIAcoAgARAQAgCWo2AgggBkEIaiACQQBBCCAHIAZBDGoQISIKQQBIDQlBECEIIAYoAggiBSACTw0AIAUgAiAHKAIUEQAAIgtB/wBLDQBBrH4hCiALQQsgBygCMBEAAA0JCyAAIAg2AgwgCSAHKAIAEQEAIAlqIAVJBEBB8HwhCiACIAVNDQkCQCAFIAIgBygCFBEAAEH9AEYEQCAGIAUgBygCABEBACAFajYCCAwBCyAAKAIMIQwgBEEBRyEIQQAhCUEAIQ0jAEEQayILJAACQAJAAkAgAiIDIAVNDQADQCAFIAMgBygCFBEAACEEIAUgBygCABEBACAFaiECAkACQAJAAkACQAJAIARBIGsODgECAgICAgICAgICAgIEAAsgBEEKRg0AIARB/QBHDQEMBwsCQCACIANPDQADQCACIgUgAyAHKAIUEQAAIQQgBSAHKAIAEQEAIAVqIQIgBEEgRyAEQQpHcQ0BIAIgA0kNAAsLIARBCkYNBSAEQSBGDQUMAQsgCUUNACAMQRBGBEAgBEH/AEsNBUGsfiEFIARBCyAHKAIwEQAARQ0FDAcLIAxBCEcNBCAEQf8ASw0EIARBBCAHKAIwEQAARQ0EQax+IQUgBEE4Tw0EDAYLIARBLUcNAQsgCEEBRw0CQQAhCUECIQggAiIFIANJDQEMAgsgBEH9AEYNAiALIAU2AgwgC0EMaiADIAcgC0EIaiAMEB4iBQ0DIAhBAkchCEEBIQkgDUEBaiENIAsoAgwiBSADSQ0ACwtB8HwhBQwBC0HwfCANIAhBAkYbIQULIAtBEGokACAFQQBIBEAgBSEKDAsLIAVFDQogAEEBNgIECyAAQQQ2AgAgACAGKAIMNgIUDAgLIAYgCTYCCAwHCyAFQYCAgIACcUUNBiAGQQhqIAJBAEECIAcgBkEMahAhIgpBAEgNByAGLQAMIQUgBigCCCECIABBEDYCDCAAQQE2AgAgACAFQQAgAiAJRxs6ABQMBgsgAiAJTQ0FQQQhBSAMLQAFQcAAcUUNBQwECyACIAlNDQRBCCEFIAwtAAlBEHENAwwECyAMLQADQRBxRQ0DIAYgCDYCCCAGQQhqIAJBAyAHIAZBDGoQICIKQQBIDQRBuH4hCiAGKAIMIgVB/wFLDQQgBigCCCECIABBCDYCDCAAQQE2AgAgACAFQQAgAiAIRxs6ABQMAwsgBiAINgIIIAZBCGogAiADIAYQIyIKRQRAIAYoAgAgAygCCCgCGBEBACIFQR91IAVxIQoLIApBAEgNAyAGKAIAIgUgACgCFEYNAiAAQQQ2AgAgACAFNgIUDAILIAVBJkcEQCAFQdsARw0CAkAgDC0AA0EBcUUNACACIAhNDQAgCCACIAcoAhQRAABBOkcNACAGQrqAgIDQCzcDACAAIAg2AhAgBiAIIAcoAgARAQAgCGoiBTYCCAJ/QQAhBCACIAVLBH8DQAJAIAICfyAEBEBBACEEIAUgBygCABEBACAFagwBCyAFIAIgBygCFBEAACEEIAUgBygCABEBACAFaiELIAYoAgAgBEYEQAJAIAIgC00NACALIAIgBygCFBEAACAGKAIERw0AIAsgBygCABEBABpBAQwGC0EAIQQgBSAHKAIAEQEAIAVqDAELIAUgAiAHKAIUEQAAIgVB3QBGDQEgBSAMKAIQRiEEIAsLIgVLDQELC0EABUEACwsEQCAAQRo2AgAMBAsgBiAINgIICyAMLQAEQcAAcQRAIABBHDYCAAwDCyADQckNEDQMAgsgDC0ABEHAAHFFDQEgAiAITQ0BIAggAiAHKAIUEQAAQSZHDQEgBiAIIAcoAgARAQAgCGo2AgggAEEbNgIADAELIAZBCGogAiAFIAUgByAGQQxqECEiCkEASA0BIAYoAgwhBSAGKAIIIQIgAEEQNgIMIABBBDYCACAAIAVBACACIAlHGzYCFAsgASAGKAIINgIAIAAoAgAhCgsgBkEQaiQAIAoLgQEBA38jAEGQAmsiAiQAAkBB7JcRKAIAQQFGDQAgACgCDCgCCEGAgIAJcUGAgIAJRw0AIAAoAiAhAyAAKAIcIQQgACgCCCEAIAIgATYCACACQRBqIAAgBCADQQAiAUGlD2ogAhCLASACQRBqIAFB7JcRaigCABEEAAsgAkGQAmokAAuoBAEEfwJAAkACQAJAAkAgBygCAA4EAAECAgMLAkACQCAGKAIAQQFrDgIAAQQLQfB8IQogASgCACIJQf8BSw0EIAAgCUEDdkH8////AXFqQRBqIgcgBygCAEEBIAl0cjYCAAwDCyAAQTBqIAEoAgAiCSAJEBkiCkEATg0CDAMLAkAgBSAGKAIARgRAIAEoAgAhCSAFQQFGBEBB8HwhCiACIAlyQf8BSw0FIAIgCUkEQEG1fiEKIAgoAgwtAApBwABxDQMMBgsgAEEQaiEAA0AgACAJQQN2Qfz///8BcWoiCiAKKAIAQQEgCXRyNgIAIAIgCUwNAyAJQf8BSCEKIAlBAWohCSAKDQALDAILIAIgCUkEQEG1fiEKIAgoAgwtAApBwABxDQIMBQsgAEEwaiAJIAIQGSIKQQBODQEMBAsgAiABKAIAIglJBEBBtX4hCiAIKAIMLQAKQcAAcQ0BDAQLAkAgCUH/ASACIAJB/wFPGyILSg0AIAlB/wFKDQAgAEEQaiEMA0ACQCAMIAlBA3ZB/P///wFxaiIKIAooAgBBASAJdHI2AgAgCSALTg0AIAlB/wFIIQogCUEBaiEJIAoNAQsLIAEoAgAhCQsgAiAJSQRAQbV+IQogCCgCDC0ACkHAAHENAQwECyAAQTBqIAkgAhAZIgpBAEgNAwsgB0ECNgIADAELIAdBADYCAAsgAyAENgIAIAEgAjYCACAGIAU2AgBBACEKCyAKC+wDAQJ/IAVBADYCAAJAAkAgASADckUEQCACIARyRQ0BIAUgACgCDEECSEEHdEF/EBkPCyADQQAgARtFBEAgAiAEIAMbBEAgBSAAKAIMQQJIQQd0QX8QGQ8LIAMgASADGyEBIAQgAiADG0UEQCAFQQwQywEiAzYCAEF7IQYgA0UNAkEAIQYgASgCCCICQQBMBEAgA0EANgIAQQAhAgwECyADIAIQywEiBjYCACAGDQMgAxDMASAFQQA2AgBBew8LIAAgASAFEDcPCwJAAkACQCACRQRAIAEoAgAiBkEEaiEHIAYoAgAhAiAEBEAgAyEBDAILIAVBDBDLASIBNgIAQXshBiABRQ0EQQAhBiADKAIIIgRBAEwEQCABQQA2AgBBACEEDAMLIAEgBBDLASIGNgIAIAYNAiABEMwBIAVBADYCAEF7DwsgAygCACIDQQRqIQcgAygCACECIAQNAgsgACABIAUQNyIGDQIMAQsgASAENgIIIAEgAygCBCIENgIEIAYgAygCACAEEKYBGgsgAkUEQEEADwtBACEDA0AgBSAHIANBA3RqIgYoAgAgBigCBBAZIgYNASADQQFqIgMgAkcNAAtBAA8LIAYPCyADIAI2AgggAyABKAIEIgU2AgQgBiABKAIAIAUQpgEaQQAL9QEBBH8gAkEANgIAAkAgAUUNACABKAIAIgEoAgAiBUEATA0AIAFBBGohBiAAKAIMQQJIQQd0IQRBACEBAkADQCAGIAFBA3RqIgMoAgQhAAJAIAQgAygCAEEBayIDSw0AIAIgBCADEBkiA0UNACACKAIAIgFFDQIgASgCACIABEAgABDMAQsgARDMASADDwtBACEDIABBf0YNASAAQQFqIQQgAUEBaiIBIAVHDQALIAIgAEEBakF/EBkiAUUNACACKAIAIgAEQCAAKAIAIgQEQCAEEMwBCyAAEMwBCyABIQMLIAMPCyACIAAoAgxBAkhBB3RBfxAZC6sMAQ1/IwBB4ABrIgUkACABQRBqIQQgASgCDEEBcSEHIABBEGoiCSEDIAAoAgxBAXEiCwRAIAUgACgCEEF/czYCMCAFIAAoAhRBf3M2AjQgBSAAKAIYQX9zNgI4IAUgACgCHEF/czYCPCAFIAAoAiBBf3M2AkAgBSAAKAIkQX9zNgJEIAUgACgCKEF/czYCSCAFIAAoAixBf3M2AkwgBUEwaiEDCyAEKAIAIQYgBwRAIAUgBkF/cyIGNgIQIAUgASgCFEF/czYCFCAFIAEoAhhBf3M2AhggBSABKAIcQX9zNgIcIAUgASgCIEF/czYCICAFIAEoAiRBf3M2AiQgBSABKAIoQX9zNgIoIAUgASgCLEF/czYCLCAFQRBqIQQLIAEoAjAhASAAKAIwIQggAyADKAIAIAZxIgY2AgAgAyADKAIEIAQoAgRxNgIEIAMgAygCCCAEKAIIcTYCCCADIAMoAgwgBCgCDHE2AgwgAyADKAIQIAQoAhBxNgIQIAMgAygCFCAEKAIUcTYCFCADIAMoAhggBCgCGHE2AhggAyADKAIcIAQoAhxxNgIcIAMgCUcEQCAAIAY2AhAgACADKAIENgIUIAAgAygCCDYCGCAAIAMoAgw2AhwgACADKAIQNgIgIAAgAygCFDYCJCAAIAMoAhg2AiggACADKAIcNgIsCyALBEAgACAAKAIQQX9zNgIQIABBFGoiAyADKAIAQX9zNgIAIABBGGoiAyADKAIAQX9zNgIAIABBHGoiAyADKAIAQX9zNgIAIABBIGoiAyADKAIAQX9zNgIAIABBJGoiAyADKAIAQX9zNgIAIABBKGoiAyADKAIAQX9zNgIAIABBLGoiAyADKAIAQX9zNgIACwJAAkAgAigCCEEBRg0AAkACQAJAAkACQAJAAkACQCALQQAgBxtFBEAgBUEANgJcIAhFBEAgC0UNBCABRQ0EIAVBDBDLASIENgJcQXshAyAERQ0LQQAhBiABKAIIIgdBAEwEQCAEQQA2AgBBACEHDAYLIAQgBxDLASIGNgIAIAYNBSAEEMwBDAsLIAFFBEAgB0UNBCAFQQwQywEiBDYCXEF7IQMgBEUNC0EAIQEgCCgCCCIGQQBMBEAgBEEANgIAQQAhBgwECyAEIAYQywEiATYCACABDQMgBBDMAQwLCyABKAIAIgNBBGohDCADKAIAIQoCfyALBEAgBw0HIAgoAgAiA0EEaiEJIAohDSAMIQ4gAygCAAwBCyAIKAIAIgNBBGohDiADKAIAIQ0gB0UNAiAMIQkgCgshDyANRQ0DQQAhCiAPQQBMIQwDQCAOIApBA3RqIgQoAgAhAyAEKAIEIQdBACEEAkAgDA0AA0AgCSAEQQN0aiIGKAIEIQECQAJAAkAgAyAGKAIAIgZLBEAgASADTw0BDAMLIAYgB0sEQCAGIQMMAgsgBkEBayEGIAEgB08EQCAGIQcMAgsgAyAGSw0AIAVB3ABqIAMgBhAZIgMNEAsgAUEBaiEDCyADIAdLDQILIARBAWoiBCAPRw0ACwsgAyAHTQRAIAVB3ABqIAMgBxAZIgMNDAsgCkEBaiIKIA1HDQALDAMLIAIgCEEAIAFBACAFQdwAahA2IgMNCQwFCyANRQRAIABBADYCMAwGC0EAIQkDQAJAIApFDQAgDiAJQQN0aiIDKAIAIQYgAygCBCEBQQAhBANAIAwgBEEDdGoiAygCACIHIAFLDQEgBiADKAIEIgNNBEAgBUHcAGogBiAHIAYgB0sbIAEgAyABIANJGxAZIgMNDAsgBEEBaiIEIApHDQALCyAJQQFqIgkgDUcNAAsMAQsgBCAGNgIIIAQgCCgCBCIDNgIEIAEgCCgCACADEKYBGgsgC0UNAgwBCyAEIAc2AgggBCABKAIEIgM2AgQgBiABKAIAIAMQpgEaCyACIAUoAlwiBCAFQQxqEDciAwRAIARFDQUgBCgCACIABEAgABDMAQsgBBDMAQwFCyAEBEAgBCgCACIDBEAgAxDMAQsgBBDMAQsgBSAFKAIMNgJcCyAAIAUoAlw2AjAgCEUNAiAIKAIAIgNFDQELIAMQzAELIAgQzAELQQAhAwsgBUHgAGokACADC5kFAQR/IwBBEGsiCSQAIAlCADcDACAJQgA3AwggCSACNgIEIAggCCgCjAEiC0EBajYCjAEgCUEBQTgQzwEiCjYCAAJAAkAgCkUEQEEAIQggAyELDAELIAogCzYCGCAKQQo2AgAgCkKBgICAEDcCDCAJQQFBOBDPASIINgIIAkAgCEUEQEEAIQggAyELDAELIAggCzYCGCAIQQo2AgAgCEKCgICAMDcCDCAHBEAgCEGAgIAINgIECyAJQQFBOBDPASILNgIMIAtFBEBBACELDAELIAtBCjYCAEEHQQQgCRAtIgxFDQAgCSADNgIEIAkgDDYCACAJQgA3AwhBACELQQhBAiAJEC0iCkUEQEEAIQggAyECIAwhCgwBC0EBQTgQzwEiDEUEQEEAIQggAyECDAELIAxBATYCGCAMIAU2AhQgDCAENgIQIAxBBDYCACAMIAo2AgwgCSAMNgIAAkAgBkUEQCAMIQoMAQtBAUE4EM8BIgpFBEBBACEIIAMhAiAMIQoMAgsgCkEANgI0IApBAjYCECAKQQU2AgAgCiAMNgIMIAkgCjYCAAsgCUEBQTgQzwEiAzYCBCADRQRAQQAhCEEAIQIMAQsgAyABNgIYIANBCjYCACADQoKAgIAgNwIMIAlBAUE4EM8BIgg2AgggCEUEQEEAIQggAyECDAELIAhBCjYCAEEHQQIgCUEEchAtIgJFBEAgAyECDAELIAlBADYCCCAJIAI2AgRBACEIQQhBAiAJEC0iA0UNACAHBEAgAyADKAIEQYCAIHI2AgQLIAAgAzYCAAwCCyAKEBEgChDMAQsgAgRAIAIQESACEMwBCyAIBEAgCBARIAgQzAELQXshCCALRQ0AIAsQESALEMwBCyAJQRBqJAAgCAvEAQEFf0F7IQUCQCAAKAIsED0iAEUNAAJAIAAoAhQiAkUEQEGUAhDLASICRQ0CIABBAzYCECAAIAI2AhRBASEEDAELIAAoAgwiA0EBaiEEIAMgACgCECIGSA0AIAIgBkG4AWwQzQEiAkUNASAAIAI2AhQgACAGQQF0NgIQCyACIANB3ABsaiICQgA3AhBBACEFIAJBADYCCCACQgA3AgAgAkIANwIYIAJCADcCICACQQA2AiggACAENgIMIAEgBDYCAAsgBQu8AgEEfyMAQRBrIgYkAEF7IQgCQCABED0iBUUNACAFKAIIRQRAQfyXERCMASIHRQ0BIAUgBzYCCAsgARA9IgVFDQACQCADIAJrQQBMBEBBmX4hBwwBCyAFKAIIIQUgBkF/NgIEAkAgBUUNACAGIAM2AgwgBiACNgIIIAUgBkEIaiAGQQRqEI8BGiAGKAIEQQBIDQAgACADNgIoIAAgAjYCJEGlfiEHDAELAkBBCBDLASIARQRAQXshBQwBCyAAIAM2AgQgACACNgIAQQAhByAFIAAgBBCQASIFRQ0BIAAQzAEgBUEATg0BCyAFIQcLIARBAEwNACABKAKEAyIBRQ0AIAEoAgwgBEgNACABKAIUIgFFDQAgBEHcAGwgAWpB3ABrIgEgAzYCFCABIAI2AhAgByEICyAGQRBqJAAgCAuqAgEFfyMAQSBrIgUkAEGcfiEHAkAgAiADTw0AIAIhBgNAIAYgAyAAKAIUEQAAIglBX3FBwQBrQRpPBEAgCUEwa0EKSSIIIAIgBkZxDQIgCUHfAEYgCHJFDQILIAYgACgCABEBACAGaiIGIANJDQALIAVBADYCDEHkvxIoAgAiBkUEQEGbfiEHDAELIAUgAzYCHCAFIAI2AhggBSABNgIUIAUgADYCECAGIAVBEGogBUEMahCPASEIAkAgAEGUvRJGDQAgCA0AIAAtAExBAXFFDQAgBSADNgIcIAUgAjYCGCAFIAE2AhQgBUGUvRI2AhAgBiAFQRBqIAVBDGoQjwEaCyAFKAIMIgZFBEBBm34hBwwBCyAEIAYoAgg2AgBBACEHCyAFQSBqJAAgBws9AQF/IAAoAoQDIgFFBEBBGBDLASIBRQRAQQAPCyABQgA3AgAgAUIANwIQIAFCADcCCCAAIAE2AoQDCyABC2UBAX8gACgChAMiA0UEQEEYEMsBIgNFBEBBew8LIANCADcCACADQgA3AhAgA0IANwIIIAAgAzYChAMLIAAoAkQgASACEHYiAEUEQEF7DwsgAyAANgIAIAMgACACIAFrajYCBEEAC6YFAQh/IAAEQCAAKAIAIgIEQCAAKAIMIgNBAEoEf0EAIQIDQCAAKAIAIQECQAJAAn8CQAJAAkACQAJAAkAgACgCBCACQQJ0aigCAEEHaw4sAQgICAEBAAIDBAIDBAgICAgICAgICAgICAgICAgICAgICAgICAgFBQUFBQUICyABIAJBFGxqKAIEIgEgACgCFEkNBiAAKAIYIAFNDQYMBwsgASACQRRsaigCBCIBIAAoAhRJDQUgACgCGCABTQ0FDAYLIAEgAkEUbGpBBGoMAwsgASACQRRsakEEagwCCyABIAJBFGxqIgEoAgQQzAEgAUEIagwBCyABIAJBFGxqIgEoAghBAUYNAiABQQRqCygCACEBCyABEMwBIAAoAgwhAwsgAkEBaiICIANIDQALIAAoAgAFIAILEMwBIAAoAgQQzAEgAEEANgIQIABCADcCCCAAQgA3AgALIAAoAhQiAgRAIAIQzAEgAEIANwIUCyAAKAJwIgIEQCACEMwBCyAAKAJAIgIEQCACEMwBCyAAKAKEAyICBEAgAigCACIBBEAgARDMAQsgAigCCCIBBEAgAUEEQQAQkQEgARCOAQsgAigCFCIBBEAgAigCDCEGIAEEQCAGQQBKBEADQCABIAVB3ABsaiIDQSRqIQQCQCADKAIEQQFGBEBBACEDIAQoAgQiB0EATA0BA0ACQCAEIANBAnRqKAIIQQRHDQAgBCADQQN0aigCGCIIRQ0AIAgQzAEgBCgCBCEHCyADQQFqIgMgB0gNAAsMAQsgBCgCACIDRQ0AIAMQzAELIAVBAWoiBSAGRw0ACwsgARDMAQsLIAIQzAEgAEEANgKEAwsCQCAAKAJUIgFFDQAgAUECQQAQkQEgACgCVCIBRQ0AIAEQjgELIABBADYCVAsLoBgBC38jAEHQA2siBSQAIAIoAgghByABQQA6AFggAUIANwJQIAFCADcCSCABQgA3AkAgAUIANwJwIAFCADcCeCABQgA3AoABIAFBADoAiAEgAUGgAWpBAEGUAhCoASEGIAFBADoAKCABQgA3AiAgAUIANwIYIAFBEGoiA0IANwIAIAFCADcCCCABQgA3AgAgAyACKAIANgIAIAEgAigCBDYCFCABIAIoAgA2AnAgASACKAIENgJ0IAEgAigCADYCoAEgASACKAIENgKkAQJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAIgMoAgAOCwIKCQcFBAgAAQYLAwsgBSACKAIQNgIQIAUgAikCCDcDCCAFIAIpAgA3AwADQCAAKAIMIAVBGGogBRBAIgQNCyAFQX9Bf0F/IAUoAhgiAyAFKAIAIgJqIANBf0YbIAJBf0YbIAIgA0F/c0sbNgIAIAVBf0F/QX8gBSgCHCIDIAUoAgQiAmogA0F/RhsgAkF/RhsgAiADQX9zSxs2AgQgByABIAVBGGoQYiAAKAIQIgANAAsMCgsDQCADKAIMIAVBGGogAhBAIgQNCgJAIAAgA0YEQCABIAVBGGpBtAMQpgEaDAELIAEgBUEYaiACEGMLIAMoAhAiAw0AC0EAIQQMCQsgACgCECIGIAAoAgwiA2shCgJAIAMgBkkEQANAIAMgBygCABEBACIIIARqQRlOBEAgASAENgIkDAMLAkAgAyAGTw0AQQAhAiAIQQBMDQADQCABIARqIAMtAAA6ACggBEEBaiEEIANBAWohAyACQQFqIgIgCE4NASADIAZJDQALCyADIAZJIARBF0xxDQALIAEgBDYCJCADIAZJDQELIAFBATYCIAsCQCAKQQBMDQAgASAAKAIMLQAAIgNqQbQBaiIELQAADQAgBEEBOgAAAn9BBCADQRh0QRh1IgRBAEgNABogBEUEQEEUIAcoAgxBAUoNARoLIANBAXRBgBtqLgEACyEEIAFBsAFqIgMgAygCACAEajYCAAsgASAKNgIEIAEgCjYCAEEAIQQMCAtBeiEEDAcLAkACQAJAIAAoAhAOBAEAAAIJCyAAKAIMIAEgAhBAIQQMCAsgACAAKAI0IgNBAWo2AjQgA0EFTgRAQQAhAyAAKAIEIgJBAXEEQCAAKAIkIQMLQX8hBCABIAJBAnEEfyAAKAIoBSAECzYCBCABIAM2AgBBACEEDAgLIAAoAgwgASACEEAhBCABKAIIIgZBgIADcUUEQCABLQANQcABcUUNCAsgAigCECgCGCEDAkAgACgCFCICQQFrQR5NBEAgAyACdkEBcQ0BDAkLIANBAXFFDQgLIAEgBkH//3xxNgIIDAcLIAAoAhhFDQYgBSACKAIQNgIQIAUgAikCCDcDCCAFIAIpAgA3AwAgACgCDCAFQRhqIAUQQCIEDQYgBUF/QX9BfyAFKAIYIgMgBSgCACIEaiADQX9GGyAEQX9GGyAEIANBf3NLGzYCACAFQX9Bf0F/IAUoAhwiAyAFKAIEIgRqIANBf0YbIARBf0YbIAQgA0F/c0sbNgIEIAcgASAFQRhqEGICQCAAKAIUIgNFDQAgAyAFQRhqIAUQQA0AIAcgASAFQRhqEGILIAAoAhggBUEYaiACEEAiBA0GIAEgBUEYaiACEGNBACEEDAYLIAAoAhRFBEAgAUIANwIADAYLIAAoAgwgBUEYaiACEEAiBA0FAkAgACgCECIDQQBMBEAgACgCFCEGDAELIAEgBUEYakG0AxCmASEJAkACQCAFKAI8QQBMDQAgBSgCOCIIRQ0AQQIhBgJAIAAoAhAiA0ECSA0AQQIhCyAJKAIkIgRBF0oEQAwBCyAFQUBrIQwDQCAMIAUoAjwiBmohCiAMIQNBACENIAZBAEoEQANAIAMgBygCABEBACIIIARqQRhKIg1FBEACQCAIQQBMDQBBACEGIAMgCk8NAANAIAQgCWogAy0AADoAKCAEQQFqIQQgA0EBaiEDIAZBAWoiBiAITg0BIAMgCkkNAAsLIAMgCkkNAQsLIAUoAjghCAsgCSAENgIkIAkgCEEAIAMgCkYbIgM2AiAgCSAJNQIYIAUoAjQgCSgCHEECcXJBACADG61CIIaENwIYIA0EQCAAKAIQIQMgCyEGDAILIAtBAWohBiALIAAoAhAiA04NASAGIQsgBEEYSA0ACwsgAyAGTA0BIAlBADYCIAwBCyAAKAIQIQMLIAAoAhQiBiADRwRAIAlBADYCUCAJQQA2AiALIANBAkgNACAJQQA2AlALAkACQAJAIAZBAWoOAgACAQsCQCACKAIEDQAgACgCDCIDKAIAQQJHDQAgAygCDEF/Rw0AIAAoAhhFDQAgASABKAIIQYCAAkGAgAEgAygCBEGAgIACcRtyNgIIC0F/QQAgBSgCHBshBiAAKAIQIQMMAQtBfyAFKAIcIgQgBmxBfyAGbiAETRshBgtBACEEQQAhAiADBEBBfyAFKAIYIgIgA2xBfyADbiACTRshAgsgASAGNgIEIAEgAjYCAAwFCyAALQAEQcAAcQRAIAFCgICAgHA3AgAMBQsgACgCDCABIAIQQCEEDAQLIAAtAAZBAnEEQAwECyAAIAIoAhAQXyEDIAEgACACKAIQEGQ2AgQgASADNgIADAMLAkACfwJAAkAgACgCECIDQT9MBEAgA0EBayIIQR9LBEAMCAtBASAIdEGKgIKAeHENASAIDQcgACgCDCAFQRhqIAIQQCIEDQcgBSgCPEEATA0CIAVBKGoMAwsgA0H/AUwEQCADQcAARg0BIANBgAFGDQEMBwsgA0GABEYNACADQYACRg0ADAYLIAFBCGohBAJAAkAgA0H/AUwEQCADQQJGDQEgA0GAAUYNAQwCCyADQYAERg0AIANBgAJHDQELIAFBDGohBAsgBCADNgIAQQAhBAwFCyAFKAJsQQBMDQEgBUHYAGoLIQMgAUHwAGoiBCADKQIANwIAIAQgAykCKDcCKCAEIAMpAiA3AiAgBCADKQIYNwIYIAQgAykCEDcCECAEIAMpAgg3AggLQQAhBCABQQA2AoABIAUoAsgBQQBMDQIgBiAFQbgBakGUAhCmARoMAgtBASEEAkACQCAHKAIIIghBAUYEQCAAKAIMQQxHDQJBgAFBgAIgACgCFCIKGyECQQAhAyAAKAIQDQEDQAJAIANBDCAHKAIwEQAARQ0AIAEgA0H/AXEiBGpBtAFqIgYtAAANACAGQQE6AAAgAQJ/QQQgA0EYdEEYdUEASA0AGiAERQRAQRQgBygCDEEBSg0BGgsgBEEBdEGAG2ouAQALIAEoArABajYCsAELQQEhBCADQQFqIgMgAkcNAAsMAgsgBygCDCEEDAELA0ACQCADQQwgBygCMBEAAA0AIAEgA0H/AXEiBGpBtAFqIgYtAAANACAGQQE6AAAgAQJ/QQQgA0EYdEEYdUEASA0AGiAERQRAQRQgBygCDEEBSg0BGgsgBEEBdEGAG2ouAQALIAEoArABajYCsAELIANBAWoiAyACRw0ACyAKRQRAQQEhBAwBC0H/ASACIAJB/wFNGyEGQYABIQMDQCABIANB/wFxIgRqQbQBaiICLQAARQRAIAJBAToAACABAn9BBCADQRh0QRh1QQBIDQAaIARFBEBBFCAHKAIMQQFKDQEaCyAEQQF0QYAbai4BAAsgASgCsAFqNgKwAQtBASEEIAMgBkYhAiADQQFqIQMgAkUNAAsLIAEgCDYCBCABIAQ2AgBBACEEDAELAkACQCAAKAIwDQAgAC0ADEEBcQ0AQQAhAiAALQAQQQFxRQ0BIAFBAToAtAEgAUEUQQUgBygCDEEBShsiAjYCsAEMAQsgASAHKQIIQiCJNwIADAELQQEhAwNAIAAoAgxBAXEhBAJAAkAgACADQQN2Qfz///8BcWooAhAgA3ZBAXEEQCAERQ0BDAILIARFDQELIAEgA2pBtAFqIgQtAAANACAEQQE6AAAgAQJ/QQQgA0EYdEEYdUEASA0AGiADQf8BcUUEQEEUIAcoAgxBAUoNARoLIANBAXRBgBtqLgEACyACaiICNgKwAQsgA0EBaiIDQYACRw0ACyABQoGAgIAQNwIAQQAhBAsgBUHQA2okACAEC6wDAQZ/AkAgAigCFCIERQ0AAkAgASgCFCIDRQ0AAkAgA0ECSg0AIARBAkoNAEEEIQYCf0EEIAEtABgiB0EYdEEYdSIIQQBIDQAaIAhFBEBBFCAAKAIMQQFKDQEaCyAHQQF0QYAbai4BAAshBQJAIAItABgiB0EYdEEYdSIIQQBIDQAgCEUEQEEUIQYgACgCDEEBSg0BCyAHQQF0QYAbai4BACEGCyAFQQVqIAUgBEEBShshBCAGQQVqIAYgA0EBShshAwsgBEEATA0BIANBAEwNACADQQF0IQZBACEDAn9BACABKAIEIgVBf0YNABpBASAFIAEoAgBrIgVB4wBLDQAaIAVBAXRBsBlqLgEACyEAIARBAXQhBSAAIAZsIQQCQCACKAIEIgBBf0YNAEEBIQMgACACKAIAayIAQeMASw0AIABBAXRBsBlqLgEAIQMLIAMgBWwiAyAESg0AIAMgBEgNASACKAIAIAEoAgBPDQELIAEgAikCADcCACABIAIpAig3AiggASACKQIgNwIgIAEgAikCGDcCGCABIAIpAhA3AhAgASACKQIINwIICwv/fQEOfyABQQRqIQsgAUEQaiEHIAFBDGohBSABQQhqIQ0CQAJAA0ACQEEAIQQCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAiAygCAA4LAgMEBQcICQABBgoTCwNAIAAoAgwgASACEEIiBA0TIAAoAhAiAA0ACwwTCwNAIAMoAgwgARBPIAZqIgRBAmohBiADKAIQIgMNAAsgBSgCACAEaiEKA0AgACgCDCABEE8hAyAAKAIQBEAgAC0ABiEIAkAgBSgCACIEIAcoAgAiBkkNACAGRQ0AIAZBAXQiCUEATARAQXUPC0F7IQQgASgCACAGQShsEM0BIgxFDRQgASAMNgIAIAEoAgQgBkEDdBDNASIGRQ0UIAsgBjYCACAHIAk2AgAgBSgCACEECyABIARBAWo2AgwgASABKAIAIARBFGxqIgQ2AgggBEEANgIQIARCADcCCCAEQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE8QTsgCEEIcRs2AgAgASgCCCADQQJqNgIECyAAKAIMIAEgAhBCIgQNEiAAKAIQRQRAQQAPCyAFKAIAIgYhBAJAIAYgBygCACIDSQ0AIAYhBCADRQ0AIANBAXQiCEEATARAQXUPC0F7IQQgASgCACADQShsEM0BIglFDRMgASAJNgIAIAEoAgQgA0EDdBDNASIDRQ0TIAsgAzYCACAHIAg2AgAgBSgCACEECyABIARBAWo2AgwgASABKAIAIARBFGxqIgM2AghBACEEIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBOjYCACABKAIIIAogBms2AgQgACgCECIADQALDBELIAAtABRBAXEEQCAAKAIQIgMgACgCDCIATQ0RIABBASADIABrIAEQUA8LIAAoAhAiBiAAKAIMIgJNDRBBASEHIAYgAiACIAEoAkQiCCgCABEBACIFaiIASwRAA0ACQCAFIAAgCCgCABEBACIDRgRAIAdBAWohBwwBCyACIAUgByABEFAhBCAAIQJBASEHIAMhBSAEDRMLIAAgA2oiACAGSQ0ACwsgAiAFIAcgARBQDwsgACgCMEUEQCAALQAMIQICQCAFKAIAIgQgBygCACIDSQ0AIANFDQAgA0EBdCIGQQBMBEBBdQ8LQXshBCABKAIAIANBKGwQzQEiCEUNESABIAg2AgAgASgCBCADQQN0EM0BIgNFDREgCyADNgIAIAcgBjYCACAFKAIAIQQLIAEgBEEBajYCDCABIAEoAgAgBEEUbGoiBDYCCCAEQQA2AhAgBEIANwIIIARCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQRFBDiACQQFxGzYCAEEgEMsBIQQgASgCCCAENgIEIAEoAggoAgQiAUUEQEF7DwsgASAAKQIQNwIAIAEgACkCKDcCGCABIAApAiA3AhAgASAAKQIYNwIIQQAPCwJAIAEoAkQoAgxBAUwEQCAAKAIQDQEgACgCFA0BIAAoAhgNASAAKAIcDQEgACgCIA0BIAAoAiQNASAAKAIoDQEgACgCLA0BCyAALQAMIQICQCAFKAIAIgQgBygCACIDSQ0AIANFDQAgA0EBdCIGQQBMBEBBdQ8LQXshBCABKAIAIANBKGwQzQEiCEUNESABIAg2AgAgASgCBCADQQN0EM0BIgNFDREgCyADNgIAIAcgBjYCACAFKAIAIQQLIAEgBEEBajYCDCABIAEoAgAgBEEUbGoiBDYCCCAEQQA2AhAgBEIANwIIIARCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQRJBDyACQQFxGzYCACAAKAIwIgEoAgQiABDLASIERQRAQXsPCyAEIAEoAgAgABCmASEBIA0oAgAgATYCBEEADwsgAC0ADCECAkAgBSgCACIEIAcoAgAiA0kNACADRQ0AIANBAXQiBkEATARAQXUPC0F7IQQgASgCACADQShsEM0BIghFDRAgASAINgIAIAEoAgQgA0EDdBDNASIDRQ0QIAsgAzYCACAHIAY2AgAgBSgCACEECyABIARBAWo2AgwgASABKAIAIARBFGxqIgQ2AgggBEEANgIQIARCADcCCCAEQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akETQRAgAkEBcRs2AgBBIBDLASEEIAEoAgggBDYCCEF7IQQgASgCCCgCCCIBRQ0PIAEgAEEQaiIDKQIANwIAIAEgAykCGDcCGCABIAMpAhA3AhAgASADKQIINwIIIAAoAjAiASgCBCIAEMsBIgNFDQ8gAyABKAIAIAAQpgEhASANKAIAIAE2AgRBAA8LQXohBAJAAkAgACgCDEEBag4OABAQEBAQEBAQEBAQEAEQCyAALQAGIQICQCAFKAIAIgAgBygCACIDSQ0AIANFDQAgA0EBdCIAQQBMBEBBdQ8LQXshBCABKAIAIANBKGwQzQEiBkUNECABIAY2AgAgASgCBCADQQN0EM0BIgNFDRAgCyADNgIAIAcgADYCACAFKAIAIQALIAEgAEEBajYCDCABIAEoAgAgAEEUbGoiADYCCCAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQRVBFCACQcAAcRs2AgBBAA8LIAAoAhAhAyAAKAIUIQYCQCAFKAIAIgAgBygCACICSQ0AIAJFDQAgAkEBdCIAQQBMBEBBdQ8LQXshBCABKAIAIAJBKGwQzQEiCEUNDyABIAg2AgAgASgCBCACQQN0EM0BIgJFDQ8gCyACNgIAIAcgADYCACAFKAIAIQALIAEgAEEBajYCDCABIAEoAgAgAEEUbGoiADYCCCAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQR1BGyADG0EcQRogAxsgBhs2AgBBAA8LIAAoAgQiBEGAwABxIQMCQCAEQYCACHEEQCAHKAIAIQIgBSgCACEEIAMEQAJAIAIgBEsNACACRQ0AIAJBAXQiA0EATARAQXUPC0F7IQQgASgCACACQShsEM0BIgZFDREgASAGNgIAIAEoAgQgAkEDdBDNASICRQ0RIAsgAjYCACAHIAM2AgAgBSgCACEECyABIARBAWo2AgwgASABKAIAIARBFGxqIgQ2AgggBEEANgIQIARCADcCCCAEQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akEyNgIAIAEoAgggACgCLDYCDAwCCwJAIAIgBEsNACACRQ0AIAJBAXQiA0EATARAQXUPC0F7IQQgASgCACACQShsEM0BIgZFDRAgASAGNgIAIAEoAgQgAkEDdBDNASICRQ0QIAsgAjYCACAHIAM2AgAgBSgCACEECyABIARBAWo2AgwgASABKAIAIARBFGxqIgQ2AgggBEEANgIQIARCADcCCCAEQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akExNgIADAELIAMEQCABQTBBLyAEQYCAgAFxGxBRIgQNDyANKAIAIAAoAiw2AgwMAQsgACgCDEEBRgRAIAAoAhAhACAEQYCAgAFxBEAgAUEsEFEiBA0QIA0oAgAgADYCBEEADwsCQAJAAkAgAEEBaw4CAAECCyABQSkQUQ8LIAFBKhBRDwsgAUErEFEiBA0PIA0oAgAgADYCBEEADwsgAUEuQS0gBEGAgIABcRsQUSIEDQ4LIA0oAgAgACgCDCIDNgIIIANBAUYEQCANKAIAIAAoAhA2AgRBAA8LIANBAnQQywEiBUUEQEF7DwsgDSgCACAFNgIEQQAhBCADQQBMDQ0gACgCKCIBIABBEGogARshBCADQQNxIQYCQCADQQFrQQNJBEBBACEBDAELIANBfHEhCEEAIQFBACECA0AgBSABQQJ0IgBqIANBAnQgBGoiB0EEaygCADYCACAFIABBBHJqIAdBCGsoAgA2AgAgBSAAQQhyaiAHQQxrKAIANgIAIAUgAEEMcmogBCADQQRrIgNBAnRqKAIANgIAIAFBBGohASACQQRqIgIgCEcNAAsLIAZFDQ5BACEAA0AgBSABQQJ0aiAEIANBAWsiA0ECdGooAgA2AgAgAUEBaiEBIABBAWoiACAGRw0ACwwOCwJAIAUoAgAiBCAHKAIAIgNJDQAgA0UNACADQQF0IgZBAEwEQEF1DwtBeyEEIAEoAgAgA0EobBDNASIIRQ0NIAEgCDYCACABKAIEIANBA3QQzQEiA0UNDSALIAM2AgAgByAGNgIAIAUoAgAhBAsgASAEQQFqNgIMIAEgASgCACAEQRRsaiIENgIIIARBADYCECAEQgA3AgggBEIANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpB0AA2AgAgASgCCEEANgIEIAEoAgAhAyABKAIIIQUgACgCDCEHIAIoApgBIgEoAgghACABKAIAIgQgASgCBCICTgRAIAAgAkEEdBDNASIARQRAQXsPCyABIAA2AgggASACQQF0NgIEIAEoAgAhBAsgACAEQQN0aiIAIAc2AgQgACAFIANrQQRqNgIAIAEgBEEBajYCAEEADwsgACgCHCEMIAAoAhQhBCAAKAIMIAEQTyIDQQBIBEAgAw8LIANFDQwgAEEMaiEIAkACQAJAAkACQAJAAkACQAJAIAAoAhgiCkUNACAAKAIUQX9HDQAgCCgCACIJKAIAQQJHDQAgCSgCDEF/Rw0AIAAoAhAiDkECSA0BQX8gDm4hDyADIA5sQQpLDQAgAyAPSQ0CCyAEQX9HDQUgACgCECIJQQJIDQNBfyAJbiEEIAMgCWxBCksNBiADIARPDQYgA0ECaiADIAwbIQYgAEEYaiEHDAQLIA5BAUcNAQtBACEDA0AgCSABIAIQQiIEDRIgA0EBaiIDIA5HDQALIAgoAgAhCQsgCSgCBEGAgIACcSEEIAAoAiQEQCABQRlBGCAEGxBRIgQNESANKAIAIAAoAiQoAgwtAAA6AARBAA8LIAFBF0EWIAQbEFEPCyADQQJqIAMgDBshBiAAQRhqIQcCQCAJQQFHDQAgA0ELSQ0AIAFBOhBRIgQNECANKAIAQQI2AgQMDgsgCUEATA0NCyAIKAIAIQVBACEDA0AgBSABIAIQQiIEDQ8gCSADQQFqIgNHDQALDAwLIAAoAhQiCUUNCiAKRQ0BIAlBAUcEQEF/IAluIQRBwQAhCiAJIANBAWoiBmxBCksNCiAEIAZNDQoLQQAhBiAAKAIQIgpBAEoEQCAAKAIMIQADQCAAIAEgAhBCIgQNDyAGQQFqIgYgCkcNAAsLIAkgCmsiDEEATARAQQAPCyADQQFqIQlBACEDA0BBACEGIAkEQEG3fiEEIAwgA2siAEH/////ByAJbU4NDyAAIAlsIgZBAEgNDwsCQCAFKAIAIgAgBygCACIKSQ0AIApFDQAgCkEBdCIAQQBMBEBBdQ8LQXshBCABKAIAIApBKGwQzQEiDkUNDyABIA42AgAgASgCBCAKQQN0EM0BIgpFDQ8gCyAKNgIAIAcgADYCACAFKAIAIQALIAEgAEEBajYCDCABIAEoAgAgAEEUbGoiADYCCCAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQTs2AgAgASgCCCAGNgIEIAgoAgAgASACEEIiBA0OQQAhBCAMIANBAWoiA0cNAAsMDQsgACgCFCIJRQ0JIApFDQBBwQAhCgwIC0HCACEKIAlBAUcNByAAKAIQDQcCQCAFKAIAIgAgBygCACIKSQ0AIApFDQAgCkEBdCIAQQBMBEBBdQ8LQXshBCABKAIAIApBKGwQzQEiCUUNDCABIAk2AgAgASgCBCAKQQN0EM0BIgpFDQwgCyAKNgIAIAcgADYCACAFKAIAIQALIAEgAEEBajYCDCABIAEoAgAgAEEUbGoiADYCCCAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQTs2AgAgASgCCEECNgIEAkAgASgCDCIAIAEoAhAiCkkNACAKRQ0AIApBAXQiAEEATARAQXUPC0F7IQQgASgCACAKQShsEM0BIglFDQwgASAJNgIAIAEoAgQgCkEDdBDNASIKRQ0MIAsgCjYCACAHIAA2AgAgBSgCACEACyABIABBAWo2AgwgASABKAIAIABBFGxqIgA2AgggAEEANgIQIABCADcCCCAAQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE6NgIAIAEoAgggA0EBajYCBCAIKAIAIQAMCgsCQAJAAkACQCAAKAIQDgQAAQIDDgsgAC0ABEGAAXEEQAJAIAUoAgAiBCAHKAIAIgNJDQAgA0UNACADQQF0IgZBAEwEQEF1DwtBeyEEIAEoAgAgA0EobBDNASIIRQ0PIAEgCDYCACABKAIEIANBA3QQzQEiA0UNDyALIAM2AgAgByAGNgIAIAUoAgAhBAsgASAEQQFqNgIMIAEgASgCACAEQRRsaiIENgIIIARBADYCECAEQgA3AgggBEIANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpB0AA2AgAgACABKAIMQQFqIgQ2AhggACAAKAIEQYACcjYCBCABKAIIIAQ2AgQgACgCFCEGIAAoAgwgARBPIQggASgCECEDIAEoAgwhBCAGRQRAAkAgAyAESw0AIANFDQAgA0EBdCIGQQBMBEBBdQ8LQXshBCABKAIAIANBKGwQzQEiCkUNECABIAo2AgAgASgCBCADQQN0EM0BIgNFDRAgCyADNgIAIAcgBjYCACAFKAIAIQQLIAEgBEEBajYCDCABIAEoAgAgBEEUbGoiBDYCCCAEQQA2AhAgBEIANwIIIARCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQTo2AgAgASgCCCAIQQJqNgIEIAAoAgwgASACEEIiBEUNCgwPCwJAIAMgBEsNACADRQ0AIANBAXQiBkEATARAQXUPC0F7IQQgASgCACADQShsEM0BIgpFDQ8gASAKNgIAIAEoAgQgA0EDdBDNASIDRQ0PIAsgAzYCACAHIAY2AgAgBSgCACEECyABIARBAWo2AgwgASABKAIAIARBFGxqIgQ2AgggBEEANgIQIARCADcCCCAEQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE6NgIAIAEoAgggCEEEajYCBAsgASgCMCEEAkAgACgCFCIDQQFrQR5NBEAgBCADdkEBcQ0BDAcLIARBAXFFDQYLQTQhAyAFKAIAIgQgBygCACIGSQ0HIAZFDQcgBkEBdCIIQQBMBEBBdQ8LQXshBCABKAIAIAZBKGwQzQEiA0UNDSABIAM2AgBBNCEDIAEoAgQgBkEDdBDNASIGDQYMDQsgACgCDCEADAsLIAAtAARBIHEEQEEAIQMgACgCDCIHKAIMIQAgBygCECIFQQBKBH8DQCAAIAEgAhBCIgQNDiADQQFqIgMgBUcNAAsgBygCDAUgAAsgARBPIgBBAEgEQCAADwsgAUE7EFEiBA0MIAEoAgggAEEDajYCBCAHKAIMIAEgAhBCIgQNDCABQT0QUSIEDQwgAUE6EFEiBA0MIA0oAgBBfiAAazYCBEEADwsgAiACKAKMASIDQQFqNgKMASABQc0AEFEiBA0LIAEoAgggAzYCBCABKAIIQQA2AgggACgCDCABIAIQQiIEDQsgAUHMABBRIgQNCyANKAIAIAM2AgQgDSgCAEEANgIIQQAPCyAAKAIYIQggACgCFCEDIAAoAgwhCSACIAIoAowBIgpBAWo2AowBAkAgBSgCACIAIAcoAgAiDEkNACAMRQ0AIAxBAXQiAEEATARAQXUPC0F7IQQgASgCACAMQShsEM0BIg5FDQsgASAONgIAIAEoAgQgDEEDdBDNASIMRQ0LIAsgDDYCACAHIAA2AgAgBSgCACEACyABIABBAWo2AgwgASABKAIAIABBFGxqIgA2AgggAEEANgIQIABCADcCCCAAQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHNADYCACABKAIIIAo2AgQgASgCCEEANgIIIAkgARBPIg9BAEgEQCAPDwsCQCADRQRAQQAhDAwBCyADIAEQTyIMIQQgDEEASA0LCwJAIAUoAgAiACAHKAIAIg5JDQAgDkUNACAOQQF0IgBBAEwEQEF1DwtBeyEEIAEoAgAgDkEobBDNASIQRQ0LIAEgEDYCACABKAIEIA5BA3QQzQEiDkUNCyALIA42AgAgByAANgIAIAUoAgAhAAsgASAAQQFqNgIMIAEgASgCACAAQRRsaiIANgIIIABBADYCECAAQgA3AgggAEIANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBOzYCACABKAIIIAwgD2pBA2o2AgQgCSABIAIQQiIEDQoCQCAFKAIAIgAgBygCACIJSQ0AIAlFDQAgCUEBdCIAQQBMBEBBdQ8LQXshBCABKAIAIAlBKGwQzQEiDEUNCyABIAw2AgAgASgCBCAJQQN0EM0BIglFDQsgCyAJNgIAIAcgADYCACAFKAIAIQALIAEgAEEBajYCDCABIAEoAgAgAEEUbGoiADYCCCAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQcwANgIAIAEoAgggCjYCBCABKAIIQQA2AgggAwRAIAMgASACEEIiBA0LCwJAIAhFBEBBACEDDAELIAggARBPIgMhBCADQQBIDQsLAkAgBSgCACIAIAcoAgAiCUkNACAJRQ0AIAlBAXQiAEEATARAQXUPC0F7IQQgASgCACAJQShsEM0BIgxFDQsgASAMNgIAIAEoAgQgCUEDdBDNASIJRQ0LIAsgCTYCACAHIAA2AgAgBSgCACEACyABIABBAWo2AgwgASABKAIAIABBFGxqIgA2AgggAEEANgIQIABCADcCCCAAQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE6NgIAIAEoAgggA0ECajYCBAJAIAEoAgwiACABKAIQIgNJDQAgA0UNACADQQF0IgBBAEwEQEF1DwtBeyEEIAEoAgAgA0EobBDNASIJRQ0LIAEgCTYCACABKAIEIANBA3QQzQEiA0UNCyALIAM2AgAgByAANgIAIAUoAgAhAAsgASAAQQFqNgIMIAEgASgCACAAQRRsaiIANgIIQQAhBCAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQcwANgIAIAEoAgggCjYCBCABKAIIQQA2AgggCCIADQkMCgtBeiEEAkACQAJAAkAgAQJ/AkACQAJAAkACQAJAIAAoAhAiA0H/AUwEQCADQQFrDkAICRUKFRUVCxUVFRUVFRUBFRUVFRUVFRUVFRUVFRUVAxUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUFAgsgA0H/H0wEQCADQf8HTARAIANBgAJGDQUgA0GABEcNFiABQSYQUQ8LQR4gA0GACEYNBxogA0GAEEcNFUEfDAcLIANB//8DTARAIANBgCBGDQYgA0GAwABHDRVBIQwHCyADQYCABEcgA0GAgAhHcQ0UIAFBIhBRIgQNFCANKAIAIAAoAgRBF3ZBAXE2AgQgDSgCACAAKAIQQYCACEY2AghBAA8LIAFBIxBRDwsgA0GAAUcNEiABQSQQUQ8LIAFBJRBRDwsgAUEnEFEPCyABQSgQUSIEDQ8gDSgCAEEANgIEQQAPC0EgCxBRIgQNDSANKAIAIAAoAhw2AgRBAA8LIAIgAigCjAEiA0EBajYCjAEgAUHNABBRIgQNDCABKAIIIAM2AgQgASgCCEEBNgIIIAAoAgwgASACEEIiBA0MIAFBzAAQUSIEDQwgDSgCACADNgIEIA0oAgBBATYCCEEADwsgACgCDCABEE8iA0EASARAIAMPCyACIAIoAowBIgVBAWo2AowBIAFBOxBRIgQNCyABKAIIIANBBWo2AgQgAUHNABBRIgQNCyABKAIIIAU2AgQgASgCCEEANgIIIAAoAgwgASACEEIiBA0LIAFBPhBRIgAhBCAADQsgASgCCCAFNgIEIAFBPRBRIgAhBCAADQsgAUE5EFEPCyMAQRBrIgkkAAJAIAAoAhQgACgCGEYEQCACIAIoAowBIgdBAWo2AowBAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBkEATARAQXUhAwwDC0F7IQMgASgCACAEQShsEM0BIgVFDQIgASAFNgIAIAEoAgQgBEEDdBDNASIERQ0CIAEgBjYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHNADYCACABKAIIIAc2AgQgASgCCEEANgIIAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBkEATARAQXUhAwwDC0F7IQMgASgCACAEQShsEM0BIgVFDQIgASAFNgIAIAEoAgQgBEEDdBDNASIERQ0CIAEgBjYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHKADYCACABKAIIIAAoAhQ2AgQgASgCCEEANgIIIAEoAghBATYCDCAAKAIMIAEgAhBCIgMNAQJAIAEoAgwiACABKAIQIgJJDQAgAkUNACACQQF0IgBBAEwEQEF1IQMMAwtBeyEDIAEoAgAgAkEobBDNASIERQ0CIAEgBDYCACABKAIEIAJBA3QQzQEiAkUNAiABIAA2AhAgASACNgIEIAEoAgwhAAsgASAAQQFqNgIMIAEgASgCACAAQRRsaiIANgIIQQAhAyAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQcwANgIAIAEoAgggBzYCBCABKAIIQQA2AggMAQsgACgCICIDBEAgAyABIAkgAkEAEF0iA0EASA0BAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiB0EATARAQXUhAwwDC0F7IQMgASgCACAEQShsEM0BIgZFDQIgASAGNgIAIAEoAgQgBEEDdBDNASIERQ0CIAEgBzYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHJADYCACABKAIIQQAgCSgCAGs2AgQgACgCICABIAIQQiIDDQELIAIgAigCjAEiB0EBajYCjAECQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIGQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiBUUNASABIAU2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAGNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQc4ANgIAIAEoAghBAjYCBCABKAIIIAc2AggCQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIGQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiBUUNASABIAU2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAGNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQc8ANgIAIAEoAghBBDYCBCACIAIoAowBIgZBAWo2AowBAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwCC0F7IQMgASgCACAEQShsEM0BIghFDQEgASAINgIAIAEoAgQgBEEDdBDNASIERQ0BIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHNADYCACABKAIIIAY2AgQgASgCCEEANgIIAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwCC0F7IQMgASgCACAEQShsEM0BIghFDQEgASAINgIAIAEoAgQgBEEDdBDNASIERQ0BIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE7NgIAIAEoAghBAjYCBAJAIAEoAgwiAyABKAIQIgRJDQAgBEUNACAEQQF0IgVBAEwEQEF1IQMMAgtBeyEDIAEoAgAgBEEobBDNASIIRQ0BIAEgCDYCACABKAIEIARBA3QQzQEiBEUNASABIAU2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBOjYCACABKAIIQQM2AgQCQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIFQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiCEUNASABIAg2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAFNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQc8ANgIAIAEoAghBAjYCBCABKAIIIAc2AgggASgCCEEANgIMAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwCC0F7IQMgASgCACAEQShsEM0BIghFDQEgASAINgIAIAEoAgQgBEEDdBDNASIERQ0BIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE5NgIAIAFBygAQUSIDDQAgACgCGCEDIAEoAgggACgCFCIENgIEIAEoAghBfyADIARrIANBf0YbNgIIIAEoAghBAjYCDCABQcsAEFEiAw0AIAAoAgwgASACEEIiAw0AIAFBKBBRIgMNACABKAIIQQE2AgQgAUHMABBRIgMNACABKAIIIAY2AgQgASgCCEEANgIIIAFBzwAQUSIDDQAgASgCCEECNgIEIAEoAgggBzYCCCABKAIIQQE2AgxBACEDCyAJQRBqJAAgAw8LIwBBEGsiCiQAIAAoAgwgARBPIQggACgCGCEGIAAoAhQhBSACIAIoAowBIgdBAWo2AowBIAEoAhAhBCABKAIMIQMCQCAFIAZGBEACQCADIARJDQAgBEUNACAEQQF0IgZBAEwEQEF1IQMMAwtBeyEDIAEoAgAgBEEobBDNASIFRQ0CIAEgBTYCACABKAIEIARBA3QQzQEiBEUNAiABIAY2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBzQA2AgAgASgCCCAHNgIEIAEoAghBADYCCAJAIAEoAgwiAyABKAIQIgRJDQAgBEUNACAEQQF0IgZBAEwEQEF1IQMMAwtBeyEDIAEoAgAgBEEobBDNASIFRQ0CIAEgBTYCACABKAIEIARBA3QQzQEiBEUNAiABIAY2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBOzYCACABKAIIIAhBBGo2AgQCQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIGQQBMBEBBdSEDDAMLQXshAyABKAIAIARBKGwQzQEiBUUNAiABIAU2AgAgASgCBCAEQQN0EM0BIgRFDQIgASAGNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQcoANgIAIAEoAgggACgCFDYCBCABKAIIQQA2AgggASgCCEEBNgIMIAAoAgwgASACEEIiAw0BAkAgASgCDCIAIAEoAhAiAkkNACACRQ0AIAJBAXQiAEEATARAQXUhAwwDC0F7IQMgASgCACACQShsEM0BIgRFDQIgASAENgIAIAEoAgQgAkEDdBDNASICRQ0CIAEgADYCECABIAI2AgQgASgCDCEACyABIABBAWo2AgwgASABKAIAIABBFGxqIgA2AgggAEEANgIQIABCADcCCCAAQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE+NgIAIAEoAgggBzYCBAJAIAEoAgwiACABKAIQIgJJDQAgAkUNACACQQF0IgBBAEwEQEF1IQMMAwtBeyEDIAEoAgAgAkEobBDNASIERQ0CIAEgBDYCACABKAIEIAJBA3QQzQEiAkUNAiABIAA2AhAgASACNgIEIAEoAgwhAAsgASAAQQFqNgIMIAEgASgCACAAQRRsaiIANgIIIABBADYCECAAQgA3AgggAEIANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBOTYCAAJAIAEoAgwiACABKAIQIgJJDQAgAkUNACACQQF0IgBBAEwEQEF1IQMMAwtBeyEDIAEoAgAgAkEobBDNASIERQ0CIAEgBDYCACABKAIEIAJBA3QQzQEiAkUNAiABIAA2AhAgASACNgIEIAEoAgwhAAsgASAAQQFqNgIMIAEgASgCACAAQRRsaiIANgIIQQAhAyAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQT02AgAMAQsCQCADIARJDQAgBEUNACAEQQF0IgZBAEwEQEF1IQMMAgtBeyEDIAEoAgAgBEEobBDNASIFRQ0BIAEgBTYCACABKAIEIARBA3QQzQEiBEUNASABIAY2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBzgA2AgAgASgCCEECNgIEIAEoAgggBzYCCAJAIAEoAgwiAyABKAIQIgRJDQAgBEUNACAEQQF0IgZBAEwEQEF1IQMMAgtBeyEDIAEoAgAgBEEobBDNASIFRQ0BIAEgBTYCACABKAIEIARBA3QQzQEiBEUNASABIAY2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBzwA2AgAgASgCCEEENgIEIAIgAigCjAEiBkEBajYCjAECQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIFQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiCUUNASABIAk2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAFNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQc0ANgIAIAEoAgggBjYCBCABKAIIQQA2AggCQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIFQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiCUUNASABIAk2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAFNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQTs2AgAgASgCCCAIQQhqNgIEIAAoAiAiAwRAIAMgARBPIQMgASgCCCIEIAMgBCgCBGpBAWo2AgQgACgCICABIAogAkEAEF0iA0EASA0BAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwDC0F7IQMgASgCACAEQShsEM0BIghFDQIgASAINgIAIAEoAgQgBEEDdBDNASIERQ0CIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHJADYCACABKAIIQQAgCigCAGs2AgQgACgCICABIAIQQiIDDQELAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwCC0F7IQMgASgCACAEQShsEM0BIghFDQEgASAINgIAIAEoAgQgBEEDdBDNASIERQ0BIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHKADYCACAAKAIYIQMgASgCCCAAKAIUIgQ2AgQgASgCCEF/IAMgBGsgA0F/Rhs2AgggASgCCEECNgIMAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwCC0F7IQMgASgCACAEQShsEM0BIghFDQEgASAINgIAIAEoAgQgBEEDdBDNASIERQ0BIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHLADYCACAAKAIMIAEgAhBCIgMNACABQSgQUSIDDQAgASgCCEEBNgIEIAFBPhBRIgMNACABKAIIIAY2AgQgAUHPABBRIgMNACABKAIIQQI2AgQgASgCCCAHNgIIIAEoAghBADYCDCABQT0QUSIDDQAgAUE5EFEiAw0AIAFBzwAQUSIDDQAgASgCCEECNgIEIAEoAgggBzYCCCABKAIIQQA2AgwgAUE9EFEiAw0AIAFBPRBRIQMLIApBEGokACADDwsCQAJAAkACQCAAKAIMDgQAAQIDDAsCQCAFKAIAIgAgBygCACIDSQ0AIANFDQAgA0EBdCIAQQBMBEBBdQ8LIAEoAgAgA0EobBDNASIERQRAQXsPCyABIAQ2AgBBeyEEIAEoAgQgA0EDdBDNASIDRQ0MIAsgAzYCACAHIAA2AgAgBSgCACEACyABIABBAWo2AgwgASABKAIAIABBFGxqIgA2AgggAEEANgIQIABCADcCCCAAQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE5NgIAQQAPCwJAIAUoAgAiBCAHKAIAIgNJDQAgA0UNACADQQF0IgJBAEwEQEF1DwsgASgCACADQShsEM0BIgRFBEBBew8LIAEgBDYCAEF7IQQgASgCBCADQQN0EM0BIgNFDQsgCyADNgIAIAcgAjYCACAFKAIAIQQLIAEgBEEBajYCDCABIAEoAgAgBEEUbGoiBDYCCCAEQQA2AhAgBEIANwIIIARCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQc4ANgIAIAEoAgggACgCEDYCBCABKAIIIAAoAhg2AghBAA8LAkAgBSgCACIEIAcoAgAiA0kNACADRQ0AIANBAXQiAkEATARAQXUPCyABKAIAIANBKGwQzQEiBEUEQEF7DwsgASAENgIAQXshBCABKAIEIANBA3QQzQEiA0UNCiALIAM2AgAgByACNgIAIAUoAgAhBAsgASAEQQFqNgIMIAEgASgCACAEQRRsaiIENgIIIARBADYCECAEQgA3AgggBEIANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBzwA2AgAgASgCCCAAKAIQNgIEIAEoAgggACgCGDYCCCABKAIIQQA2AgxBAA8LQXohBCAAKAIQIgJBAUsNCCAHKAIAIQMgBSgCACEEIAJBAUYEQAJAIAMgBEsNACADRQ0AIANBAXQiAkEATARAQXUPCyABKAIAIANBKGwQzQEiBEUEQEF7DwsgASAENgIAQXshBCABKAIEIANBA3QQzQEiA0UNCiALIAM2AgAgByACNgIAIAUoAgAhBAsgASAEQQFqNgIMIAEgASgCACAEQRRsaiIENgIIIARBADYCECAEQgA3AgggBEIANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpB0wA2AgAgASgCCCAAKAIYNgIIIAEoAgggACgCFDYCBEEADwsCQCADIARLDQAgA0UNACADQQF0IgJBAEwEQEF1DwsgASgCACADQShsEM0BIgRFBEBBew8LIAEgBDYCAEF7IQQgASgCBCADQQN0EM0BIgNFDQkgCyADNgIAIAcgAjYCACAFKAIAIQQLIAEgBEEBajYCDCABIAEoAgAgBEEUbGoiAzYCCEEAIQQgA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHSADYCACABKAIIIAAoAhQ2AgQMCAtBMyEDIAUoAgAiBCAHKAIAIgZJDQEgBkUNASAGQQF0IghBAEwEQEF1DwtBeyEEIAEoAgAgBkEobBDNASIDRQ0HIAEgAzYCAEEzIQMgASgCBCAGQQN0EM0BIgZFDQcLIAsgBjYCACAHIAg2AgAgBSgCACEECyABIARBAWo2AgwgASABKAIAIARBFGxqIgQ2AgggBEEANgIQIARCADcCCCAEQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0aiADNgIAIAEoAgggACgCFDYCBCAAKAIMIAEgAhBCIgQNBSABKAI0IQQCQAJAAkACQCAAKAIUIgNBAWtBHk0EQCAEIAN2QQFxDQEMAgsgBEEBcUUNAQtBNkE1IAAtAARBwABxGyECIAUoAgAiBCAHKAIAIgNJDQIgA0UNAiADQQF0IgZBAEwEQEF1DwtBeyEEIAEoAgAgA0EobBDNASIIRQ0IIAEgCDYCACABKAIEIANBA3QQzQEiAw0BDAgLQThBNyAALQAEQcAAcRshAiAFKAIAIgQgBygCACIDSQ0BIANFDQEgA0EBdCIGQQBMBEBBdQ8LQXshBCABKAIAIANBKGwQzQEiCEUNByABIAg2AgAgASgCBCADQQN0EM0BIgNFDQcLIAsgAzYCACAHIAY2AgAgBSgCACEECyABIARBAWo2AgwgASABKAIAIARBFGxqIgM2AghBACEEIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGogAjYCACABKAIIIAAoAhQ2AgQgAC0ABEGAAXFFDQULIAFB0QAQUQ8LIAEgASgCICIGQQFqNgIgAkAgASgCDCIEIAEoAhAiCEkNACAIRQ0AIAhBAXQiCUEATARAQXUPC0F7IQQgASgCACAIQShsEM0BIg5FDQQgASAONgIAIAEoAgQgCEEDdBDNASIIRQ0EIAsgCDYCACAHIAk2AgAgBSgCACEECyABIARBAWo2AgwgASABKAIAIARBFGxqIgQ2AgggBEEANgIQIARCADcCCCAEQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0aiAKNgIAIAEoAgggBjYCBCABKAIIIANBAmogAyAMG0ECajYCCCABKAIMIQggACgCFCEEIAAoAhAhCgJAIAEoAjwiA0UEQEEwEMsBIgNFBEBBew8LIAFBBDYCPCABIAM2AkAMAQsgAyAGTARAIAEoAkAgA0EEaiIJQQxsEM0BIgNFBEBBew8LIAEgCTYCPCABIAM2AkAMAQsgASgCQCEDCyADIAZBDGxqIgMgCDYCCCADQf////8HIAQgBEF/Rhs2AgQgAyAKNgIAIAAgASACEFIiBA0DIAAoAhghAgJAIAUoAgAiACAHKAIAIgNJDQAgA0UNACADQQF0IgBBAEwEQEF1DwtBeyEEIAEoAgAgA0EobBDNASIIRQ0EIAEgCDYCACABKAIEIANBA3QQzQEiA0UNBCALIAM2AgAgByAANgIAIAUoAgAhAAsgASAAQQFqNgIMIAEgASgCACAAQRRsaiIANgIIIABBADYCECAAQgA3AgggAEIANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBwwBBxAAgAhs2AgAgASgCCCAGNgIEQQAPCyAAKAIoRQ0DAkAgBSgCACIAIAcoAgAiCkkNACAKRQ0AIApBAXQiAEEATARAQXUPC0F7IQQgASgCACAKQShsEM0BIglFDQMgASAJNgIAIAEoAgQgCkEDdBDNASIKRQ0DIAsgCjYCACAHIAA2AgAgBSgCACEACyABIABBAWo2AgwgASABKAIAIABBFGxqIgA2AgggAEEANgIQIABCADcCCCAAQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE6NgIAIAEoAgggA0EBajYCBCAIKAIAIQAMAQsLIAcoAgAEQAJAIAAoAiAEQCABQT8QUSIEDQMgASgCCCAGQQJqNgIEIAEoAgggACgCICgCDC0AADoACAwBCyAAKAIkBEAgAUHAABBRIgQNAyABKAIIIAZBAmo2AgQgASgCCCAAKAIkKAIMLQAAOgAIDAELIAFBOxBRIgQNAiABKAIIIAZBAmo2AgQLIAAgASACEFIiBA0BIAFBOhBRIgQNASANKAIAIAZBf3M2AgRBAA8LIAFBOhBRIgQNACABKAIIIAZBAWo2AgQgACABIAIQUiIEDQAgAUE7EFEiBA0AIA0oAgBBACAGazYCBEEADwsgBA8LQQALswMBBH8CQAJAAkACQAJAAkACQAJAIAAoAgAOCQQGBgYAAgMBBQYLIAAoAgwgARBDIQIMBQsDQCAAIgQoAhAhAAJAAkAgBCgCDCIDKAIARQRAIAJFDQEgAygCFCACKAIURw0BIAMoAgQgAigCBEcNASACIAMoAgwgAygCEBATIgMNCSAEIAUoAhBGBEAgBSAEKAIQNgIQIARBADYCEAsgBBAQDAILAkAgAkUNACACKAIMIAIoAhAgASgCSBEAAA0AQfB8DwsgAyABEEMiAw0IQQAhAiAEIQUgAA0CDAcLIAQhBSADIQILIAANAAsgAigCECEAIAIoAgwhBEEAIQIgBCAAIAEoAkgRAAANBEHwfA8LIAAoAgwgARBDIgMNBCAAKAIQQQNHBEAMBAsgACgCFCICBEAgAiABEEMiAw0FCyAAKAIYIgBFBEBBACECDAQLQQAhAiAAIAEQQyIDDQQMAwsgACgCDCIARQ0CIAAgARBDIQIMAgsgACgCDCAAKAIQIAEoAkgRAAANAUHwfA8LA0AgACgCDCABEEMiAg0BIAAoAhAiAA0AC0EAIQILIAIhAwsgAwvFAQECfwJAAkACQAJAAkACQAJAIAAoAgBBA2sOBgQAAwIBAQULIAAoAgwQRCEBDAQLA0AgACgCDBBEIgENBCAAKAIQIgANAAtBACEBDAMLIAAoAgwiAEUNAiAAEEQhAQwCCyAAKAIMEEQiAg0CIAAoAhBBA0cEQAwCCyAAKAIUIgEEQCABEEQiAg0DCyAAKAIYIgBFBEBBACEBDAILQQAhASAAEEQiAkUNAQwCC0GvfiECIAAtAAVBgAFxRQ0BCyABIQILIAILlAIBBH8CQAJAA0ACQAJAAkACQAJAIAAoAgBBA2sOBgQCAwEAAAcLA0AgACgCDCABEEUiAg0HIAAoAhAiAA0ACwwFCyAAKAIQQQ9KDQULIAAoAgwhAAwCCyAAKAIMIAEQRSECIAAoAhBBA0cNAyACDQMgACgCFCICBEAgAiABEEUiAg0EC0EAIQIgACgCGCIADQEMAwsLIAAoAgxBAEwNASABKAKAASICIAFBQGsgAhshBCAAKAIoIgIgAEEQaiACGyEFQQAhAgNAIAUgAkECdGooAgAiAyABKAI0SgRAQbB+DwsgBCADQQN0aigCACIDIAMoAgRBgIAEcjYCBCACQQFqIgIgACgCDEgNAAsLQQAhAgsgAgvHBQEGfyMAQRBrIgYkAANAIAJBEHEhBANAQQAhAwJAAkACQAJAAkACQAJAAkAgACgCAEEEaw4GAQMCAAAEBgsDQCAAKAIMIAEgAhBGIgMNBiAAKAIQIgANAAsMBAsgAiACQRByIAAoAhQbIQIgACgCDCEADAcLIAAoAhBBD0oNAwwECwJAAkAgACgCEA4EAAUFAQULIARFDQQgACAAKAIEQYAQcjYCBCAAQRxqIgMgAygCAEEBazYCACAAKAIMIQAMBQsgACgCDCABIAIQRiIDDQIgACgCFCIDBEAgAyABIAIQRiIDDQMLQQAhAyAAKAIYIgANBAwCCyAEBEAgACAAKAIEQYAQcjYCBCAAIAAoAiBBAWs2AiALIAEoAoABIQICQCAAKAIQBEAgACgCFCEEAkAgASgCOEEATA0AIAEoAgwtAAhBgAFxRQ0AQa9+IQMgAS0AAUEBcUUNBAsgBCABKAI0TA0BQaZ+IQMgASAAKAIYIAAoAhwQHQwDCyABKAIsIQMgACgCGCEIIAAoAhwhBSAGQQxqIQcjAEEQayIEJAAgAygCVCEDIARBADYCBAJAIANFBEBBp34hAwwBCyAEIAU2AgwgBCAINgIIIAMgBEEIaiAEQQRqEI8BGiAEKAIEIgVFBEBBp34hAwwBCwJAAkAgBSgCCCIDDgICAAELIAcgBUEQajYCAEEBIQMMAQsgByAFKAIUNgIACyAEQRBqJAACQAJAIAMiBEEATARAQad+IQMMAQtBpH4hAyAEQQFGDQELIAEgACgCGCAAKAIcEB0MAwsgACAGKAIMKAIAIgQ2AhQLIAAgBEEDdCACIAFBQGsgAhtqKAIAIgM2AgwgA0UEQEGnfiEDIAEgACgCGCAAKAIcEB0MAgsgAyADKAIEQYCAgCByNgIEC0EAIQMLIAZBEGokACADDwsgACgCDCEADAALAAsAC6cBAQF/A0ACQAJAAkACQAJAAkACQCAAKAIAQQRrDgYBAwIAAAQFCwNAIAAoAgwQRyAAKAIQIgANAAsMBAsgACgCFEUNAwwECyAAKAIQQRBIDQMMAgsgAC0ABUEIcUUEQCAAKAIMEEcLIAAoAhBBA0cNASAAKAIUIgEEQCABEEcLIAAoAhgiAA0DDAELIAAtAAVBCHENACAAEFcLDwsgACgCDCEADAALAAuRAwEDfwJAA0ACQCAAKAIAIgRBBkcEQAJAAkAgBEEEaw4FAQMFAAAFCwNAQQEhBCAAKAIMIAEgAhBIIgNBAUcEQCAFIQQgA0EASA0GCyAEIQUgBCEDIAAoAhAiAA0ACwwECyAAKAIMIAEgAhBIIQMgACgCFA0DIANBAUcNAyAAQQE2AihBAQ8LIAAoAhBBD0oNAiAAKAIMIQAMAQsLIAAoAgQhBAJAIAAoAhANAEEBIQMgBEGAAXFFBEBBACEDIAJBAXFFDQELIARBwABxDQAgACAEQQhyNgIEAkAgACgCDBBYRQ0AIAAgACgCBEHAAHI2AgRBASEEIAEgACgCFCIFQR9MBH8gBUUNAUEBIAV0BSAECyABKAIUcjYCFAsgACAAKAIEQXdxIgQ2AgQLQQEgAyAAKAIMIAFBASACIARBwABxGyIEEEhBAUYbIQMgACgCEEEDRw0AIAAoAhQiBQRAQQEgAyAFIAEgBBBIQQFGGyEDCyAAKAIYIgBFDQBBASADIAAgASAEEEhBAUYbIQMLIAML4wEBAX8DQEEAIQICQAJAAkACQAJAIAAoAgBBBGsOBQQCAQAAAwsDQCAAKAIMIAEQSSICDQMgACgCECIADQALQQAPCyAAKAIQQQ9MDQJBAA8LAkACQCAAKAIQDgQAAwMBAwsgACgCBCICQcABcUHAAUcNAiAAIAJBCHI2AgQgACgCDCABQQEQWSICQQBIDQEgAkEGcQRAQaN+DwsgACAAKAIEQXdxNgIEDAILIAAoAhQiAgRAIAIgARBJIgINAQsgACgCGCICRQ0BIAIgARBJIgJFDQELIAIPCyAAKAIMIQAMAAsAC/UCAQF/A0ACQAJAAkACQAJAAkACQCAAKAIAQQRrDgYEAwUBAAIGCyABQQFyIQELA0AgACgCDCABEEogACgCECIADQALDAQLIAFBgAJxBEAgACAAKAIEQYCAgMAAcjYCBAsgAUEEcQRAIAAgACgCBEGACHI2AgQLIAAgARBaDwsCQAJAAkAgACgCEA4EAAEBAgULIABBIGoiAiABQSByIAEgACgCHEEBShsiASACKAIAcjYCAAsgACgCDCEADAQLIAAoAgwgAUEBciIBEEogACgCFCICBEAgAiABEEoLIAAoAhgiAA0DDAILIAFBBHIiAiACIAEgACgCFCICQQFKGyACQX9GGyIBIAFBCHIgACgCECACRhsiAUGAAnEEQCAAIAAoAgRBgICAwAByNgIECyAAKAIMIQAMAgsCQAJAIAAoAhBBAWsOCAEAAgECAgIAAgsgAUGCAnIhASAAKAIMIQAMAgsgAUGAAnIhASAAKAIMIQAMAQsLC547ARN/IwBB0AJrIgYkAAJAAkACQAJAAkADQAJAAkACQAJAAkACQAJAAkAgACgCAA4JCg0NCQMBAgALDQsDQCAAIgkoAgwgASACIAMQSyEAAkACQCAFRQ0AIAANACAJKAIMIQtBACEAA0AgBSgCACIEQQVHBEAgBEEERw0DIAUoAhhFDQMgBSgCFEF/Rw0DIAshBAJAIAANAAJAA0ACQAJAAkACQAJAAkAgBCgCAA4IAQgICAIDBAAICyAEKAIMIQQMBQsgBCgCDCIHIAQoAhBPDQYgBC0ABkEgcUUNBSAELQAUQQFxDQUMBgsgBCgCEEEATA0FIAQoAiAiAA0CIAQoAgwhBAwDCyAEKAIQQQNLDQQgBCgCDCEEDAILIAQoAhBBAUcNAyAEKAIMIQQMAQsLIAAoAgwhByAAIQQLIActAABFDQAgBSAENgIkCyAFKAIQQQFKDQMCQAJAIAUoAgwiACgCACIEDgMAAQEFCyAAKAIQIAAoAgxGDQQLA0AgACEHAkACQAJAAkACQAJAAkAgBA4IAAUECwECAwYLCyAAKAIQIAAoAgxLDQQMCgsgACgCEEEATA0JIAAoAiAiBw0DDAQLIAAoAhBBA00NAwwICyAAKAIQQQFGDQIMBwsgACgCDEF/Rg0GCyALQQAQWyIARQ0FAn8gASENIAAoAgAhCAJAAkADQCAHIQQgACEHIAghCkEAIQACQAJAIAQoAgAiCA4DAwEABAtBACAEKAIMIhFBf0YNBBpBACAHKAIMIhRBf0YNBBogBCEAIApBAkkNAUEAIApBAkcNBBoCQCARIBRHDQAgBygCECAEKAIQRg0AQQEhACAHKAIUIAQoAhRGDQQLQQAMBAsgBCEAIApFDQALQQAhAAJAAkAgCkEBaw4CAQADC0EAIAcoAgxBDEcNAxogBCgCMCEAIAcoAhBFBEBBACAADQQaQQAhACAELQAMQQFxDQNBgAFBgAIgBygCFBshCEEAIQcDQAJAIAQgB0EDdkH8////AXFqKAIQIAd2QQFxRQ0AIAdBDCANKAJEKAIwEQAARQ0AQQAMBgtBASEAIAdBAWoiByAIRw0ACwwDC0EAIAANAxpBACEAIAQtAAxBAXENAkGAAUGAAiAHKAIUIggbIQBBACEHA0ACQCAHQQwgDSgCRCgCMBEAAA0AIAQgB0EDdkH8////AXFqKAIQIAd2QQFxRQ0AQQAMBQsgB0EBaiIHIABHDQALQQEgCEUNAxpB/wEgACAAQf8BTRshCkGAASEHA0AgBCAHQQN2Qfz///8BcWooAhAgB3ZBAXFFBEBBASEAIAcgCkYhCCAHQQFqIQcgCEUNAQwECwtBAAwDCyAEKAIMIg1BAXEhEQNAAkACQEEBIAB0IgogBCAAQQV2QQJ0IghqKAIQcQRAIBFFDQEMAgsgEUUNAQsgBygCDEEBcSEUIAcgCGooAhAgCnEEQCAUDQFBAAwFCyAURQ0AQQAMBAsgAEEBaiIAQYACRw0ACyAEKAIwRQRAQQEhACANQQFxRQ0CCyAHKAIwRQRAQQEhACAHLQAMQQFxRQ0CC0EADAILQQAgBCgCECIIIAQoAgwiBEYNARoCQAJAAkAgCg4DAgEAAwsgBygCDEEMRw0CIA0oAkQhACAHKAIURQRAIAAoAjAhCiAEIAggACgCFBEAAEEMIAoRAAAhBCAHKAIQIQAgBA0DIABFDAQLIAAgBCAIEIcBIQQgBygCECEAIAQNAiAARQwDCyAEIAQgDSgCRCIAKAIIaiAAKAIUEQAAIRFBASEAAkACQAJAIA0oAkQiBCgCDEEBSg0AIBEgBCgCGBEBACIEQQBIDQQgEUH/AUsNACAEQQJJDQELIAcoAjAiBEUEQEEAIQ0MAgsgBCgCACIAQQRqIRRBACENQQAhBCAAKAIAIgsEQCALIQADQCAAIARqIghBAXYiCkEBaiAEIBQgCEECdEEEcmooAgAgEUkiCBsiBCAAIAogCBsiAEkNAAsLIAQgC08NASAUIARBA3RqKAIAIBFNIQ0MAQsgByARQQN2Qfz///8BcWooAhAgEXZBAXEhDQsgDSAHKAIMQQFxc0EBcwwCCyAIIARrIgggBygCECAHKAIMIgdrIgogCCAKSBsiCkEATA0AQQAhCANAQQEgBy0AACAELQAARw0CGiAEQQFqIQQgB0EBaiEHIAhBAWoiCCAKRw0ACwsgAAtFDQVBAUE4EM8BIgAEQCAAQQI2AhAgAEEFNgIAIABBADYCNAsgAEUEQEF7IQUMFAsgACAAKAIEQSByNgIEIwBBQGoiD0E4aiIMIAUiBEEwaiIOKQIANwMAIA9BMGoiESAEQShqIhApAgA3AwAgD0EoaiIUIARBIGoiEikCADcDACAPQSBqIgggBEEYaiIVKQIANwMAIA9BGGoiCiAEQRBqIhYpAgA3AwAgD0EQaiINIARBCGoiCykCADcDACAPIAQpAgA3AwggDiAAQTBqIgcpAgA3AgAgECAAQShqIg4pAgA3AgAgEiAAQSBqIhApAgA3AgAgFSAAQRhqIhIpAgA3AgAgFiAAQRBqIhUpAgA3AgAgCyAAQQhqIhYpAgA3AgAgBCAAKQIANwIAIAcgDCkDADcCACAOIBEpAwA3AgAgECAUKQMANwIAIBIgCCkDADcCACAVIAopAwA3AgAgFiANKQMANwIAIAAgDykDCDcCAAJAIAQoAgANACAEKAIwDQAgBCgCDCEPIAQgBEEYaiIMNgIMIAQgDCAEKAIQIA9rajYCEAsCQCAAKAIADQAgACgCMA0AIAAoAgwhBCAAIABBGGoiDzYCDCAAIA8gACgCECAEa2o2AhALIAUgADYCDAwFCyAAKAIMIgAoAgAhBAwACwALIAUoAhANAkEBIAAgBS0ABEGAAXEbIQAgBSgCDCEFDAALAAsgACEFIAANDgsgCSgCDCEFIAkoAhAiAA0ACwwLCyAAKAIQDgQEBQMCCwsCQAJAAkAgACgCECIEQQFrDggAAQ0CDQ0NAg0LIAJBwAByIQIgACgCDCEADAcLIAJBwgByIQIgACgCDCEADAYLIAZBADYCkAIgACgCDCAEQQhGIAZBkAJqEFxBAEoEQEGGfyEFDAsLIAAoAgwiByABIAJBAnIgAiAAKAIQQQhGG0GAAXIgAxBLIgUNCgJAAkACQAJAIAciCyIEKAIAQQRrDgUCAwMBAAMLA0ACQAJAAkAgCygCDCIEKAIAQQRrDgQAAgIBAgsgBCgCDCgCAEEDSw0BIAQgBCgCEDYCFAwBCwNAIAQoAgwiBSgCAEEERw0BIAUoAgwoAgBBA0sNASAFIAUoAhAiCTYCFCAJDQEgBCgCECIEDQALQQEhBQwPCyALKAIQIgsNAAsMAgsDQCAEKAIMIgUoAgBBBEcNAiAFKAIMKAIAQQNLDQIgBSAFKAIQIgk2AhQgCQ0CQQEhBSAEKAIQIgQNAAsMDAsgBygCDCgCAEEDSw0AIAcgBygCEDYCFAsgByABIAYgA0EAEF0iBUEASA0KIAYoAgQiCUGAgARrQf//e0kEQEGGfyEFDAsLIAYoAgAiBEH//wNLBEBBhn8hBQwLCwJAIAQNACAGKAIIRQ0AIAYoApACDQAgACgCEEEIRgRAIAAQESAAQQA2AgwgAEEKNgIAQQAhBQwMCyAAEBEgAEEANgIUIABBADYCACAAQQA2AjAgACAAQRhqIgE2AhAgACABNgIMQQAhBQwLCwJAIAVBAUcNACADKAIMKAIIIgVBwABxBEAjAEFAaiIPJAAgACIFQRBqIgwoAgAhFCAAKAIMIhMoAgwhDiAPQThqIhAgAEEwaiISKQIANwMAIA9BMGoiCSAAQShqIhUpAgA3AwAgD0EoaiIIIABBIGoiFikCADcDACAPQSBqIgogAEEYaiIRKQIANwMAIA9BGGoiDSAMKQIANwMAIA9BEGoiCyAAQQhqIgcpAgA3AwAgDyAAKQIANwMIIBIgE0EwaiIEKQIANwIAIBUgE0EoaiISKQIANwIAIBYgE0EgaiIVKQIANwIAIBEgE0EYaiIWKQIANwIAIAwgE0EQaiIRKQIANwIAIAcgE0EIaiIMKQIANwIAIAAgEykCADcCACAEIBApAwA3AgAgEiAJKQMANwIAIBUgCCkDADcCACAWIAopAwA3AgAgESANKQMANwIAIAwgCykDADcCACATIA8pAwg3AgACQCAAKAIADQAgBSgCMA0AIAUoAgwhDCAFIAVBGGoiEDYCDCAFIBAgBSgCECAMa2o2AhALAkAgEygCAA0AIBMoAjANACATIBMgEygCECATKAIMa2pBGGo2AhALIAUgEzYCDCATIA42AgwCQCAFKAIQIgwEQANAIA9BCGogExASIg4NAiAPKAIIIg5FBEBBeyEODAMLIA4gDCgCDDYCDCAMIA42AgwgDCgCECIMDQALC0EAIQ4gFEEIRw0AA0AgBUEHNgIAIAUoAhAiBQ0ACwsgD0FAayQAIA4iBQ0MIAAgASACIAMQSyEFDAwLIAVBgBBxDQBBhn8hBQwLCyAEIAlHBEBBhn8hBSADKAIMLQAJQQhxRQ0LCyAAKAIgDQkgACAJNgIYIAAgBDYCFCAHIAZBzAJqQQAQXkEBRw0JIABBIGogBigCzAIQEiIFRQ0JDAoLIAJBwAFxBEAgACAAKAIEQYCAgMAAcjYCBAsgAkEEcQRAIAAgACgCBEGACHI2AgQLIAJBIHEEQCAAIAAoAgRBgCByNgIECyAAKAIMIQQCQCAAKAIUIgVBf0cgBUEATHENACAEIAMQXw0AIAAgBBBgNgIcCyAEIAEgAkEEciIJIAkgAiAAKAIUIgVBAUobIAVBf0YbIgIgAkEIciAAKAIQIAVGGyADEEsiBQ0JAkAgBCgCAA0AIAAoAhAiAkF/Rg0AIAJBAmtB4gBLDQAgAiAAKAIURw0AIAQoAhAgBCgCDGsgAmxB5ABKDQAgAEIANwIAIABBMGoiAUIANwIAIABCADcCKCAAQgA3AiAgAEEYaiIFQgA3AgAgAEEQaiIJQgA3AgAgAEIANwIIIAAgBCgCBDYCBCAEKAIUIQtBACEDIAFBADYCACAJIAU2AgAgACAFNgIMIAAgCzYCFANAQXohBSAAKAIEIAQoAgRHDQsgACgCFCAEKAIURw0LIAAgBCgCDCAEKAIQEBMiBQ0LIANBAWoiAyACRw0ACyAEEBAMCQtBACEFIAAoAhhFDQkgACgCHA0JIAQoAgBBBEYEQCAEKAIgIgJFDQogACACNgIgIARBADYCIAwKCyAAIAAoAgxBARBbNgIgDAkLIAAoAgwgASACQQFyIgIgAxBLIgUNCCAAKAIUIgUEQCAFIAEgAiADEEsiBQ0JC0EAIQUgACgCGCIADQMMCAsgACgCDCIEIAEgAiADEEshBSAEKAIAQQRHDQcgBCgCFEF/Rw0HIAQoAhBBAUoNByAEKAIYRQ0HAkACQCAEKAIMIgIoAgAOAwABAQkLIAIoAhAgAigCDEYNCAsgACAAKAIEQSByNgIEDAcLAkAgACgCICACciICQStxRQRAIAAtAARBwABxRQ0BCyADIAAoAhQiBEEfTAR/IARFDQFBASAEdAVBAQsgAygCFHI2AhQLIAAoAgwhAAwBCwsgASgCSCEEIAEgACgCFDYCSCAAKAIMIAEgAiADEEshBSABIAQ2AkgMBAsgACgCDCIBQQBMDQIgACgCKCIFIABBEGogBRshCSADKAI0IQtBACEFA0AgCyAJIAVBAnRqIgQoAgAiAEgEQEGwfiEFDAULAkAgAyAAQR9MBH8gAEUNAUEBIAB0BUEBCyADKAIYcjYCGAsCQCADIAQoAgAiAkEfTAR/IAJFDQFBASACdAVBAQsgAygCFHI2AhQLIAVBAWoiBSABRw0ACwwCCyAAKAIEIgRBgICAAXFFDQIgACgCFCIDQQFxDQIgA0ECcQ0CIAAgBEH///9+cTYCBCAAKAIMIgwgACgCECIWTw0CIAEoAkQhEiAGQQA2AowCIAJBgAFxIRECQAJAA0AgASgCUCAMIBYgBiASKAIoEQMAIgpBAEgEQCAKIQUMAgsgDCASKAIAEQEAIQQgFgJ/IApFBEAgBiAGKAKMAiICNgKQAiAWIAQgDGoiBSAFIBZLGyEDAkACQCAIBEAgCCgCFEUNAQtBeyEFIAwgAxAWIgRFDQUgBEEANgIUIAQQFCEJAn8gAkUEQCAGQZACaiAJDQEaDAcLIAlFDQYDQCACIgUoAhAiAg0ACyAFQRBqCyAJNgIAIAYoApACIQIgBCEIDAELIAggDCADEBMiBQ0ECyAGIAI2AowCIAMMAQsCQAJAAkACQAJAAkAgEUUEQCAKQQNxIRBBfyECQQAhDkEAIQVBACEEIApBAWtBA0kiFEUEQCAKQXxxIRVBACENA0AgBiAFQQNyQRRsaigCACIDIAYgBUECckEUbGooAgAiCSAGIAVBAXJBFGxqKAIAIgsgBiAFQRRsaigCACIHIAQgBCAHSRsiBCAEIAtJGyIEIAQgCUkbIgQgAyAESxshBCADIAkgCyAHIAIgAiAHSxsiAiACIAtLGyICIAIgCUsbIgIgAiADSxshAiAFQQRqIQUgDUEEaiINIBVHDQALCyAQBEADQCAGIAVBFGxqKAIAIgMgBCADIARLGyEEIAMgAiACIANLGyECIAVBAWohBSAOQQFqIg4gEEcNAAsLIAIgBEYNAUF1IQUMCQsgBCAMaiEJAkACQCAEIAYoAgBHBEAgASgCUCAMIAkgBiASKAIoEQMAIgpBAEgEQCAKIQUMDAsgCkUNAQtBACEFA0AgBCAGIAVBFGxqIgIoAgBGBEAgAigCBEEBRg0DCyAFQQFqIgUgCkcNAAsLIAYgBigCjAIiAjYCkAICQCAIBEAgCCgCFEUNAQtBeyEFIAwgCRAWIgRFDQogBEEANgIUIAQQFCEDAkAgAkUEQCAGQZACaiECIANFDQwMAQsgA0UNCwNAIAIiBSgCECICDQALIAVBEGohAgsgAiADNgIAIAYoApACIQIgBCEIDAcLIAggDCAJEBMiBQ0JDAYLIAYgDCAJIBIoAhQRAAA2ApACQQAhBUEBIQMDQAJAIAYgBUEUbGoiAigCACAERw0AIAIoAgRBAUcNACAGQZACaiADQQJ0aiACKAIINgIAIANBAWohAwsgBUEBaiIFIApHDQALIAZBzAJqIBIgAyAGQZACahAYIgUNCCAGKAKMAiECIAYoAswCEBQhBCACRQRAIARFDQIgBiAENgKMAgwFCyAERQ0CA0AgAiIFKAIQIgINAAsgBSAENgIQDAQLIAIgDGohDkEAIQUCQAJAAkADQCAGIAVBFGxqKAIEQQFGBEAgCiAFQQFqIgVHDQEMAgsLQXshBSAMIA4QFiICRQ0KQQAhByAGIAIQFSILNgLMAiALIQ0gCw0BIAIQEAwKCyAGIAwgDiASKAIUEQAANgKQAkEAIQJBACEFIBRFBEAgCkF8cSELQQAhBANAIAZBkAJqIAVBAXIiA0ECdGogBiAFQRRsaigCCDYCACAGQZACaiAFQQJyIglBAnRqIAYgA0EUbGooAgg2AgAgBkGQAmogBUEDciIDQQJ0aiAGIAlBFGxqKAIINgIAIAZBkAJqIAVBBGoiBUECdGogBiADQRRsaigCCDYCACAEQQRqIgQgC0cNAAsLIBAEQANAIAVBFGwhBCAGQZACaiAFQQFqIgVBAnRqIAQgBmooAgg2AgAgAkEBaiICIBBHDQALCyAGQcwCaiASIApBAWogBkGQAmoQGCIFDQkgBigCzAIhCwwBCwNAIAYgB0EUbGoiBSgCBCEDQQBBABAWIgRFBEBBeyEFIAsQEAwKC0EAIQICQCADQQBMDQAgBUEIaiEJA0ACQCAJIAJBAnRqKAIAIAZBkAJqIBIoAhwRAAAiBUEASA0AIAQgBkGQAmogBkGQAmogBWoQEyIFDQAgAyACQQFqIgJHDQEMAgsLIAQQECALEBAMCgsgBBAVIgVFBEAgBBAQIAsQEEF7IQUMCgsgDSAFNgIQIAUhDSAHQQFqIgcgCkcNAAsLIAYoAowCIQUgCxAUIQQCfyAFRQRAIAZBjAJqIAQNARoMBAsgBEUNAwNAIAUiAigCECIFDQALIAJBEGoLIAQ2AgBBACEIIA4MBQsgBigCzAIQEEF7IQUMCgsgBigCzAIQEEF7IQUMBgsgBigCzAIQEEF7IQUMBAtBACEIIAkMAQsgBiACNgKMAiAJCyIMSw0ACyAGKAKMAiIDBEBBASEFIAMhAgNAIAUiBEEBaiEFIAIoAhAiAg0ACwJAIARBAUYEQCADKAIMIQUgBkHAAmoiAiAAQTBqIgQpAgA3AwAgBkG4AmoiASAAQShqIgkpAgA3AwAgBkGwAmoiCyAAQSBqIgcpAgA3AwAgBkGoAmoiCiAAQRhqIg4pAgA3AwAgBkGgAmoiDSAAQRBqIhApAgA3AwAgBkGYAmoiDCAAQQhqIhUpAgA3AwAgBiAAKQIANwOQAiAEIAVBMGoiEikCADcCACAJIAVBKGoiBCkCADcCACAHIAVBIGoiCSkCADcCACAOIAVBGGoiBykCADcCACAQIAVBEGoiDikCADcCACAVIAVBCGoiECkCADcCACAAIAUpAgA3AgAgEiACKQMANwIAIAQgASkDADcCACAJIAspAwA3AgAgByAKKQMANwIAIA4gDSkDADcCACAQIAwpAwA3AgAgBSAGKQOQAjcCAAJAIAAoAgANACAAKAIwDQAgACgCDCECIAAgAEEYaiIENgIMIAAgBCAAKAIQIAJrajYCEAsgBSgCAA0BIAUoAjANASAFKAIMIQAgBSAFQRhqIgI2AgwgBSACIAUoAhAgAGtqNgIQIAMQEAwGCyAGQcACaiIFIABBMGoiAikCADcDACAGQbgCaiIEIABBKGoiASkCADcDACAGQbACaiIJIABBIGoiCykCADcDACAGQagCaiIHIABBGGoiCikCADcDACAGQaACaiIOIABBEGoiDSkCADcDACAGQZgCaiIQIABBCGoiDCkCADcDACAGIAApAgA3A5ACIAIgA0EwaiIVKQIANwIAIAEgA0EoaiICKQIANwIAIAsgA0EgaiIBKQIANwIAIAogA0EYaiILKQIANwIAIA0gA0EQaiIKKQIANwIAIAwgA0EIaiINKQIANwIAIAAgAykCADcCACAVIAUpAwA3AgAgAiAEKQMANwIAIAEgCSkDADcCACALIAcpAwA3AgAgCiAOKQMANwIAIA0gECkDADcCACADIAYpA5ACNwIAAkAgACgCAA0AIAAoAjANACAAKAIMIQUgACAAQRhqIgI2AgwgACACIAAoAhAgBWtqNgIQCyADKAIADQAgAygCMA0AIAMoAgwhBSADIANBGGoiADYCDCADIAAgAygCECAFa2o2AhALIAMQEAwECyAGQcACaiIFIABBMGoiAikCADcDACAGQbgCaiIEIABBKGoiAykCADcDACAGQbACaiIBIABBIGoiCSkCADcDACAGQagCaiILIABBGGoiBykCADcDACAGQaACaiIKIABBEGoiDikCADcDACAGQZgCaiINIABBCGoiECkCADcDACAGIAApAgA3A5ACIAIgCEEwaiIMKQIANwIAIAMgCEEoaiICKQIANwIAIAkgCEEgaiIDKQIANwIAIAcgCEEYaiIJKQIANwIAIA4gCEEQaiIHKQIANwIAIBAgCEEIaiIOKQIANwIAIAAgCCkCADcCACAMIAUpAwA3AgAgAiAEKQMANwIAIAMgASkDADcCACAJIAspAwA3AgAgByAKKQMANwIAIA4gDSkDADcCACAIIAYpA5ACNwIAAkAgACgCAA0AIAAoAjANACAAKAIMIQUgACAAQRhqIgI2AgwgACACIAAoAhAgBWtqNgIQCwJAIAgoAgANACAIKAIwDQAgCCgCDCEFIAggCEEYaiIANgIMIAggACAIKAIQIAVrajYCEAsgCBAQDAMLIAYoAowCIgINACAIRQ0DIAgQEAwDCyACEBAMAgsgAkEBciECA0AgACgCDCABIAIgAxBLIgUNAiAAKAIQIgANAAsLQQAhBQsgBkHQAmokACAFC5QBAQF/A0ACQCAAIgIgATYCCAJAAkACQAJAIAIoAgBBBGsOBQIDAQAABAsDQCACKAIMIAIQTCACKAIQIgINAAsMAwsgAigCEEEPSg0CCyACKAIMIQAgAiEBDAILIAIoAgwiAQRAIAEgAhBMCyACKAIQQQNHDQAgAigCFCIBBEAgASACEEwLIAIhASACKAIYIgANAQsLC/UBAQF/A0ACQCAAKAIAIgNBBUcEQAJAAkACQCADQQRrDgUCBAEAAAQLA0AgACgCDCABIAIQTSAAKAIQIgANAAsMAwsgACgCECIDQQ9KDQICQAJAIANBAWsOBAABAQABC0EAIQELIAAoAgwhAAwDCyAAIAEgACgCHBshASAAKAIMIQAMAgsgACgCDCIDBEAgAyABIAIQTQsgACgCECIDQQNHBEAgAw0BIAFFDQEgACgCBEGAgARxRQ0BIAAoAhRBA3QgAigCgAEiAyACQUBrIAMbaiABNgIEDwsgACgCFCIDBEAgAyABIAIQTQsgACgCGCIADQELCwvVAgEHfwJAA0ACQAJAAkACQAJAIAAoAgBBA2sOBgQCAwEAAAYLA0AgACgCDCABEE4gACgCECIADQALDAULIAAoAhBBD0oNBAsgACgCDCEADAILIAAoAgwiAgRAIAIgARBOCyAAKAIQQQNHDQIgACgCFCICBEAgAiABEE4LIAAoAhgiAA0BDAILCyAAKAIMIgVBAEwNACAAKAIoIgIgAEEQaiACGyEHIAEoAoABIgIgAUFAayACGyEGA0AgACEBAkAgBiAHIANBAnRqIggoAgAiBEEDdGooAgQiAkUNAANAIAEoAggiAQRAIAEgAkcNAQwCCwsCQCAEQR9KDQAgBEUNACACIAIoAixBASAEdHI2AiwLIAIgAigCBEGAgMAAcjYCBCAGIAgoAgBBA3RqKAIAIgEgASgCBEGAgMAAcjYCBCAAKAIMIQULIANBAWoiAyAFSA0ACwsLvQoBBn9BASEDQXohBAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCAA4LAgkJCQMEBQABCQYKCwNAIAAoAgwgARBPIgRBAEgNCiAEIAZqIgYhAyAAKAIQIgANAAsMCAsDQCAFIgRBAWohBSAAKAIMIAEQTyACaiECIAAoAhAiAA0ACyACIARBAXRqIQMMBwsgAC0AFEEBcQRAIAAoAhAgACgCDEshAwwHC0EAIQMgACgCDCICIAAoAhBPDQZBASEDIAIgAiABKAJEIgYoAgARAQAiAWoiAiAAKAIQTw0GQQAhBANAIAQgAiAGKAIAEQEAIgUgAUdqIQQgBSIBIAJqIgIgACgCEEkNAAsgBEEBaiEDDAYLIAAoAhwhBSAAKAIUIQRBACEDIAAoAgwgARBPIgJBAEgEQCACIQMMBgsgAkUNBQJAIAAoAhgiBkUNACAAKAIUQX9HDQAgACgCDCIBKAIAQQJHDQAgASgCDEF/Rw0AAkAgACgCECIBQQFMBEAgASACbCEBDAELQX8gAW4hAyABIAJsIgFBCksNASACIANPDQELIAFBAWohAwwGCyACQQJqIgMgAiAFGyEBAkACQAJAIARBf0YEQAJAIAAoAhAiBUEBTARAIAIgBWwhBAwBC0F/IAVuIQcgAiAFbCIEQQpLDQIgAiAHTw0CCyABQQEgBCACQQpLGyAEIAVBAUYbakECaiEDDAkLIAAoAhQiBUUNByAGRQ0BIAJBAWohBCAFQQFHBEBBfyAFbiEDIAQgBWxBCksNAyADIARNDQMLIAUgACgCECIAayAEbCAAIAJsaiEDDAgLIAAoAhQiBUUNBiAGDQELIAVBAUcNACAAKAIQRQ0GCyABQQJqIQMMBQsgACgCDCECIAAoAhAiBUEBRgRAIAIgARBPIQMMBQtBACEDQQAhBAJAAkACQCACBH8gAiABEE8iBEEASARAIAQhAwwJCyAAKAIQBSAFCw4EAAcBAgcLIAAoAgRBgAFxIQICQCAAKAIUIgANACACRQ0AIARBA2ohAwwHCyACBEAgASgCNCECAkAgAEEBa0EeTQRAIAIgAHZBAXENAQwHCyACQQFxRQ0GCyAEQQVqIQMMBwsgBEECaiEDDAYLIAAtAARBIHEEQEEAIQIgACgCDCIFKAIMIAEQTyIAQQBIBEAgACEDDAcLAkAgAEUNACAFKAIQIgVFDQBBt34hA0H/////ByAAbiAFTA0HIAAgBWwiAkEASA0HCyAAIAJqQQNqIQMMBgsgBEECaiEDDAULIAAoAhghBSAAKAIUIQIgACgCDCABEE8iA0EASA0EIANBA2ohACACBH8gAiABEE8iA0EASA0FIAAgA2oFIAALQQJqIQMgBUUNBCADQQAgBSABEE8iAEEAThsgAGohAwwECwJAIAAoAgwiAkUEQEEAIQIMAQsgAiABEE8iAiEDIAJBAEgNBAtBASEDAkACQAJAAkAgACgCEEEBaw4IAAEHAgcHBwMHCyACQQJqIQMMBgsgAkEFaiEDDAULIAAoAhQgACgCGEYEQCACQQNqIQMMBQsgACgCICIARQRAIAJBDGohAwwFCyAAIAEQTyIDQQBIDQQgAiADakENaiEDDAQLIAAoAhQgACgCGEYEQCACQQZqIQMMBAsgACgCICIARQRAIAJBDmohAwwECyAAIAEQTyIDQQBIDQMgAiADakEPaiEDDAMLIAAoAgxBA0cNAkF6QQEgACgCEEEBSxshAwwCCyAEQQVqIQMMAQsgAkEBakEAIAAoAigbIQMLIAMhBAsgBAu1AwEFf0EMIQUCQAJAAkACQCABQQFrDgMAAQMCC0EHIAJBAWogAkEBa0EFTxshBQwCC0ELIAJBB2ogAkEBa0EDTxshBQwBC0ENIQULAkACQCADKAIMIgQgAygCECIGSQ0AIAZFDQAgBkEBdCIEQQBMBEBBdQ8LQXshByADKAIAIAZBKGwQzQEiCEUNASADIAg2AgAgAygCBCAGQQN0EM0BIgZFDQEgAyAENgIQIAMgBjYCBCADKAIMIQQLIAMgBEEBajYCDCADIAMoAgAgBEEUbGoiBDYCCEEAIQcgBEEANgIQIARCADcCCCAEQgA3AgAgAygCBCADKAIIIAMoAgBrQRRtQQJ0aiAFNgIAIAAgASACbCIGaiEEAkACQAJAIAVBB2sOBwECAgIBAQACCyADKAJEIAAgBBB2IgVFBEBBew8LIAMoAgggATYCDCADKAIIIAI2AgggAygCCCAFNgIEQQAPCyADKAJEIAAgBBB2IgVFBEBBew8LIAMoAgggAjYCCCADKAIIIAU2AgRBAA8LIAMoAggiBUIANwIEIAVCADcCDCADKAIIQQRqIAAgBhCmARoLIAcLxwEBBH8CQAJAIAAoAgwiAiAAKAIQIgNJDQAgA0UNACADQQF0IgJBAEwEQEF1DwtBeyEEIAAoAgAgA0EobBDNASIFRQ0BIAAgBTYCACAAKAIEIANBA3QQzQEiA0UNASAAIAI2AhAgACADNgIEIAAoAgwhAgsgACACQQFqNgIMIAAgACgCACACQRRsaiICNgIIQQAhBCACQQA2AhAgAkIANwIIIAJCADcCACAAKAIEIAAoAgggACgCAGtBFG1BAnRqIAE2AgALIAQL2AgBB38gACgCDCEEIAAoAhwiBUUEQCAEIAEgAhBCDwsgASgCJCEHAkACQCABKAIMIgMgASgCECIGSQ0AIAZFDQAgBkEBdCIIQQBMBEBBdQ8LQXshAyABKAIAIAZBKGwQzQEiCUUNASABIAk2AgAgASgCBCAGQQN0EM0BIgZFDQEgASAINgIQIAEgBjYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQcUANgIAIAEoAgggASgCJDYCBCABIAEoAiRBAWo2AiQgBCABIAIQQiIDDQAgBUUNAAJAAkACQAJAIAVBAWsOAwABAgMLAkAgASgCDCIAIAEoAhAiAkkNACACRQ0AIAJBAXQiAEEATARAQXUPC0F7IQMgASgCACACQShsEM0BIgRFDQQgASAENgIAIAEoAgQgAkEDdBDNASICRQ0EIAEgADYCECABIAI2AgQgASgCDCEACyABIABBAWo2AgwgASABKAIAIABBFGxqIgA2AgggAEEANgIQIABCADcCCCAAQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHGADYCAAwCCwJAIAAtAAZBEHFFDQAgACgCLEUNAAJAIAEoAgwiAyABKAIQIgJJDQAgAkUNACACQQF0IgRBAEwEQEF1DwtBeyEDIAEoAgAgAkEobBDNASIFRQ0EIAEgBTYCACABKAIEIAJBA3QQzQEiAkUNBCABIAQ2AhAgASACNgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBxwA2AgAgASgCCCAAKAIsNgIIDAILAkAgASgCDCIAIAEoAhAiAkkNACACRQ0AIAJBAXQiAEEATARAQXUPC0F7IQMgASgCACACQShsEM0BIgRFDQMgASAENgIAIAEoAgQgAkEDdBDNASICRQ0DIAEgADYCECABIAI2AgQgASgCDCEACyABIABBAWo2AgwgASABKAIAIABBFGxqIgA2AgggAEEANgIQIABCADcCCCAAQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHGADYCAAwBCwJAIAEoAgwiAyABKAIQIgJJDQAgAkUNACACQQF0IgRBAEwEQEF1DwtBeyEDIAEoAgAgAkEobBDNASIFRQ0CIAEgBTYCACABKAIEIAJBA3QQzQEiAkUNAiABIAQ2AhAgASACNgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpByAA2AgAgASgCCCAAKAIsNgIICyABKAIIIAc2AgRBACEDCyADC2gBBn8gAEEEaiEEIAAoAgAiBQRAIAUhAANAIAAgAmoiA0EBdiIHQQFqIAIgBCADQQJ0QQRyaigCACABSSIDGyICIAAgByADGyIASQ0ACwsgAiAFSQR/IAQgAkEDdGooAgAgAU0FIAYLC9wBAQZ/An8CQAJAAkAgACgCDEEBSg0AQQAgASAAKAIYEQEAIgBBAEgNAxogAUH/AUsNACAAQQJJDQELIAIoAjAiAEUEQAwCCyAAKAIAIgNBBGohBkEAIQAgAygCACIHBEAgByEDA0AgACADaiIFQQF2IghBAWogACAGIAVBAnRBBHJqKAIAIAFJIgUbIgAgAyAIIAUbIgNJDQALCyAAIAdPDQEgBiAAQQN0aigCACABTSEEDAELIAIgAUEDdkH8////AXFqKAIQIAF2QQFxIQQLIAIoAgxBAXEgBHMLC/oCAQJ/AkACQAJAAkACQAJAIAAoAgAiAygCAEEEaw4FAQIDAAAECwNAIANBDGogASACEFUiAEEASA0FIAMoAhAiAw0ACwwDCyADQQxqIgQgASACEFUiAEEASA0DIABBAUcNAiAEKAIAKAIAQQRHDQIgAxAXDwsCQAJAAkAgAygCEA4EAAICAQILIAMtAAVBAnEEQCACIAIoAgBBAWoiADYCACABIAMoAhRBAnRqIAA2AgAgAyACKAIANgIUIANBDGogASACEFUiAEEATg0EDAULIAAgAygCDDYCACADQQA2AgwgAxAQQQEgACABIAIQVSIDIANBAE4bDwsgA0EMaiABIAIQVSIAQQBIDQMgAygCFARAIANBFGogASACEFUiAEEASA0ECyADQRhqIgMoAgBFDQIgAyABIAIQVSIAQQBIDQMMAgsgA0EMaiABIAIQVSIAQQBIDQIMAQsgAygCDEUNACADQQxqIAEgAhBVIgBBAEgNAQtBAA8LIAALwgMBCH8DQAJAAkACQAJAAkACQCAAKAIAQQNrDgYDAQIEAAAFCwNAIAAoAgwgARBWIgINBSAAKAIQIgANAAtBAA8LIAAoAgwhAAwECwJAIAAoAgwgARBWIgMNACAAKAIQQQNHBEBBAA8LIAAoAhQiAgRAIAIgARBWIgMNAQsgACgCGCIARQRAQQAPC0EAIQIgACABEFYiA0UNAwsgAw8LQa9+IQIgAC0ABUGAAXFFDQFBACECAkAgACgCDCIEQQBMDQAgACgCKCICIABBEGogAhshAyAEQQFxIQcCQCAEQQFGBEBBACEEQQAhAgwBCyAEQX5xIQhBACEEQQAhAgNAIAEgAyAEQQJ0IgVqKAIAQQJ0aigCACIJQQBKBEAgAyACQQJ0aiAJNgIAIAJBAWohAgsgASADIAVBBHJqKAIAQQJ0aigCACIFQQBKBEAgAyACQQJ0aiAFNgIAIAJBAWohAgsgBEECaiEEIAZBAmoiBiAIRw0ACwsgB0UNACABIAMgBEECdGooAgBBAnRqKAIAIgFBAEwNACADIAJBAnRqIAE2AgAgAkEBaiECCyAAIAI2AgxBAA8LIAAoAgwiAA0BCwsgAguRAgECfwNAAkACQAJAAkACQAJAAkAgACgCAEEEaw4GBgIBAAADBQsDQCAAKAIMEFcgACgCECIADQALDAQLIAAoAhBBEE4NAwwECwJAAkAgACgCEA4EAAUFAQULIAAoAgQiAUEIcQ0DIABBBGohAiAAIAFBCHI2AgQgACgCDCEADAILIAAoAgwQVyAAKAIUIgIEQCACEFcLIAAoAhgiAA0EDAILIAAoAgQiAUEIcQ0BIABBBGohAiAAIAFBCHI2AgQgACAAKAIgQQFqNgIgIAAoAgwiACAAKAIEQYABcjYCBCAAQRxqIgEgASgCAEEBajYCAAsgABBXIAIgAigCAEF3cTYCAAsPCyAAKAIMIQAMAAsAC5cCAQN/A0BBACEBAkACQAJAAkACQAJAAkAgACgCAEEEaw4GBgMBAAACBAsDQCAAKAIMEFggAXIhASAAKAIQIgANAAsMAwsgACgCEEEPSg0CDAQLIAAoAgwQWCICRQ0BIAAoAgwtAARBCHFFBEAgAiADcg8LIAAgACgCBEHAAHI2AgQgAiADcg8LAkAgACgCEA4EAAMDAgMLIAAoAgQiAkEQcQ0AQQEhASACQQhxDQAgACACQRByNgIEIAAoAgwQWCEBIAAgACgCBEFvcTYCBAsgASADcg8LIAAoAhQiAQR/IAEQWAVBAAshASAAKAIYIgIEfyACEFggAXIFIAELIANyIQMgACgCDCEADAELIAAoAgwhAAwACwAL7QMBA38DQEECIQMCQAJAAkACQAJAAkACQCAAKAIAQQRrDgYCBAMAAQYFCwNAIAAoAgwgASACEFkiA0GEgICAeHEEQCADDwsgAgR/IAAoAgwgARBfRQVBAAshAiADIARyIQQgACgCECIADQALDAQLA0AgACgCDCABIAIQWSIFQYSAgIB4cQRAIAUPCyADIAVxIQMgBUEBcSAEciEEIAAoAhAiAA0ACyADIARyDwsgACgCFEUNAiAAKAIMIAEgAhBZIgRBgoCAgHhxQQJHDQIgBCAEQX1xIAAoAhAbDwsgACgCEEEPSg0BDAILAkACQCAAKAIQDgQAAwMBAwsgACgCBCIDQRBxDQEgA0EIcQRAQQdBAyACGyEEDAILIAAgA0EQcjYCBCAAKAIMIAEgAhBZIQQgACAAKAIEQW9xNgIEIAQPCyAAKAIMIAEgAhBZIgRBhICAgHhxDQAgACgCFCIDBH8CQCACRQRADAELQQAgAiAAKAIMIAEQXxshBSAAKAIUIQMLIAMgASAFEFkiA0GEgICAeHEEQCADDwsgAyAEcgUgBAshAyAAKAIYIgAEQCAAIAEgAhBZIgRBhICAgHhxDQEgBEEBcSADciIAIABBfXEgBEECcRsPCyADQX1xDwsgBA8LIAAoAgwhAAwACwALvQMBA38DQCABQQRxIQMgAUGAAnEhBANAAkACQAJAAkACQAJAAkACQCAAKAIAQQRrDgYCBAMBAAYFCyABQQFyIQELA0AgACgCDCABEFogACgCECIADQALDAMLIAFBBHIiAyADIAEgACgCFCICQQFKGyACQX9GGyIBIAFBCHIgACgCECACRhsiAUGAAnEEQCAAIAAoAgRBgICAwAByNgIECyAAKAIMIQAMBgsCQAJAIAAoAhBBAWsOCAEAAwEDAwMAAwsgAUGCAnIhASAAKAIMIQAMBgsgAUGAAnIhASAAKAIMIQAMBQsCQAJAIAAoAhAOBAAEBAEECyAAKAIEIgJBCHEEQCABIAAoAiAiAkF/c3FFDQIgACABIAJyNgIgDAQLIAAgAkEIcjYCBCAAQSBqIgIgAigCACABcjYCACAAKAIMIAEQWiAAIAAoAgRBd3E2AgQPCyAAKAIMIAFBAXIiARBaIAAoAhQiAgRAIAIgARBaCyAAKAIYIgANBAsPCyAEBEAgACAAKAIEQYCAgMAAcjYCBAsgA0UNACAAIAAoAgRBgAhyNgIEIAAoAgwhAAwBCyAAKAIMIQAMAAsACwALyAEBAX8DQAJAQQAhAgJAAkACQAJAAkACQAJAAkAgACgCAA4IAwEACAUGBwIICyABDQcgACgCDEF/Rw0DDAcLIAFFDQIMBgsgACgCDCEADAYLIAAoAhAgACgCDE0NBCABRQ0AIAAtAAZBIHFFDQAgAC0AFEEBcUUNBAsgACECDAMLIAAoAhBBAEwNAiAAKAIgIgINAiAAKAIMIQAMAwsgACgCEEEDSw0BIAAoAgwhAAwCCyAAKAIQQQFHDQAgACgCDCEADAELCyACC/cCAQR/IAAoAgAiBEEKSwRAQQEPCyABQQJ0IgVBAEGgGWpqIQYgA0GoGWogBWohBQNAAkACQAJAAkACfwJAAkACQAJAIARBBGsOBwECAwAABgUHCwNAIAAoAgwgASACEFwEQEEBDwsgACgCECIADQALQQAPCyAAKAIMIQAMBgtBASEDIAYoAgAgACgCEHZBAXFFDQQgACgCDCABIAIQXA0EIAAoAhAiBEEDRwRAIAQEQEEADwsgACgCBEGAgYQgcUUEQEEADwsgAkEBNgIAQQAPCyAAKAIUIgQEQCAEIAEgAhBcDQULIAAoAhgMAQsgBSgCACAAKAIQcUUEQEEBDwsgACgCDAshAEEAIQMgAA0DDAILQQEhAyAALQAHQQFxDQEgACgCDEEBRwRAQQAPCyAAKAIQBEBBAA8LIAJBATYCAEEADwsgAC0ABEHAAHEEQCACQQE2AgBBAA8LIAAoAgwQYSEDCyADDwsgACgCACIEQQpNDQALQQELiQ8BCH8jAEEgayIGJAAgBEEBaiEHQXUhBQJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCAA4LAgUFCAMGCQABBAcKC0EBIQQDQCAAKAIMIAEgBkEQaiADIAcQXSIFQQBIDQoCQCAEQQFxBEAgAiAGKQMQNwIAIAIgBigCGDYCCAwBCyACQX9Bf0F/IAYoAhAiBCACKAIAIgpqIARBf0YbIApBf0YbIAogBEF/c0sbNgIAIAJBf0F/QX8gBigCFCIEIAIoAgQiCmogBEF/RhsgCkF/RhsgCiAEQX9zSxs2AgQgAiAGKAIYBH8gAigCCEEARwVBAAs2AggLQQAhBCAAKAIQIgANAAsMCQsgACgCDCABIAIgAyAHEF0iBUEASA0IAkAgACgCECIKRQRAIAIoAgQhCSACKAIAIQhBASELDAELQQEhCwNAIAooAgwgASAGQRBqIAMgBxBdIgVBAEgNCiAGKAIQIgAgBigCFCIFRyEJAkACQCAAIAIoAgAiCEkEQCACIAA2AgAgBigCGCEMDAELIAAgCEcNAUEBIQwgBigCGEUNAQsgAiAMNgIIIAAhCAtBACALIAkbIQsgAEF/RiEAIAUgAigCBCIJSwRAIAIgBTYCBCAFIQkLQQAgCyAAGyELIAooAhAiCg0ACwsgCEF/RwRAQQAhBSAIIAlGDQkLIARFIAtBAUZxIQUMCAsgACgCDCEHAkAgAC0ABkEgcUUNACAALQAUQQFxDQBBhn8hBSADLQAEQQFxRQ0IC0EAIQVBACEDIAAoAhAgB0sEQANAQX8gA0EBaiADQX9GGyEDIAcgASgCRCgCABEBACAHaiIHIAAoAhBJDQALCyACQQE2AgggAiADNgIEIAIgAzYCAAwHCyAAKAIQIgUgACgCFEYEQCAFRQRAIAJBATYCCCACQgA3AgBBACEFDAgLIAAoAgwgASACIAMgBxBdIgVBAEgNByAAKAIQIgBFBEAgAkEANgIAIAJBADYCBAwICyACQX8gAigCACIBIABsQX8gAG4iAyABTRs2AgAgAkF/IAIoAgQiAiAAbCACIANPGzYCBAwHCyAAKAIMIAEgAiADIAcQXSIFQQBIDQYgACgCFCEBIAIgACgCECIABH9BfyACKAIAIgMgAGxBfyAAbiADTRsFQQALNgIAIAIgAUEBakECTwR/QX8gAigCBCIAIAFsQX8gAW4gAE0bBSABCzYCBAwGCyAALQAEQcAAcQRAQQAhBSACQQA2AgggAkKAgICAcDcCAAwGCyAAKAIMIAEgAiADIAcQXSEFDAULIAJBATYCCCACQoGAgIAQNwIAQQAhBQwECwJAAkACQCAAKAIQDgQAAQECBgsCQCAAKAIEIgVBBHEEQCACIAApAiw3AgBBACEFDAELIAVBCHEEQCACQoCAgIBwNwIAQQAhBQwBCyAAIAVBCHI2AgQgACgCDCABIAIgAyAHEF0hBSAAIAAoAgRBd3EiATYCBCAFQQBIDQYgACACKAIANgIsIAIoAgQhAyAAIAFBBHI2AgQgACADNgIwIAIoAghFDQAgACABQYSAgBByNgIECyACQQA2AggMBQsgACgCDCABIAIgAyAHEF0hBQwECyAAKAIMIAEgAiADIAcQXSIFQQBIDQMgACgCFCIEBEAgBCABIAZBEGogAyAHEF0iBUEASA0EIAJBf0F/QX8gBkEQaiIEKAIAIgggAigCACIJaiAIQX9GGyAJQX9GGyAJIAhBf3NLGzYCACACQX9Bf0F/IAQoAgQiCCACKAIEIglqIAhBf0YbIAlBf0YbIAkgCEF/c0sbNgIEAkAgBCgCCEUEQCACQQA2AggMAQsgAiACKAIIQQBHNgIICwsCfyAAKAIYIgAEQCAAIAEgBiADIAcQXSIFQQBIDQUgBigCAAwBCyAGQoCAgIAQNwIEQQALIQACQAJAIAAgAigCACIBSQRAIAIgADYCACAGKAIIIQAMAQsgACABRw0BQQEhACAGKAIIRQ0BCyACIAA2AggLIAYoAgQiACACKAIETQ0DIAIgADYCBAwDCyACQQE2AgggAkIANwIAQQAhBQwCCyAAKAIEIgRBgIAIcQ0AIARBwABxBEBBACEFIAJBADYCACAEQYDAAHEEQCACQv////8PNwIEDAMLIAJCADcCBAwCCyADKAKAASIFIANBQGsgBRsiCSAAKAIoIgUgAEEQaiAFGyIMKAIAQQN0aigCACABIAIgAyAHEF0iBUEASA0BAkAgAigCACIEQX9HBEAgBCACKAIERg0BCyACQQA2AggLIAAoAgxBAkgNAUEBIQgDQCAJIAwgCEECdGooAgBBA3RqKAIAIAEgBkEQaiADIAcQXSIFQQBIDQIgBigCECIEQX9HIAYoAhQiCiAERnFFBEAgBkEANgIYCwJAAkAgBCACKAIAIgtJBEAgAiAENgIAIAYoAhghBAwBCyAEIAtHDQFBASEEIAYoAhhFDQELIAIgBDYCCAsgCiACKAIESwRAIAIgCjYCBAsgCEEBaiIIIAAoAgxIDQALDAELQQAhBSACQQA2AgggAkIANwIACyAGQSBqJAAgBQv5AQECfwJAIAJBDkoNAANAIAJBAWohAkEAIQMCQAJAAkACQAJAAkACQAJAIAAoAgAOCwIGAQkDBAUACQcFCQsgACgCECIDRQ0GIAMgASACEF4iA0UNBgwEC0F/IQMgACgCDEF/Rg0DDAQLIAAoAhAgACgCDE0NAiAALQAGQSBxRQ0DQX8hAyAALQAUQQFxDQMMAgsgACgCEA0DDAULIAAoAhANAkF/IQMgACgCBCIEQQhxDQAgACAEQQhyNgIEIAAoAgwgASACEF4hAyAAIAAoAgRBd3E2AgQLIAMPCyABIAA2AgBBAQ8LIAAoAgwhACACQQ9HDQALC0F/C8UEAQV/AkACQANAIAAhAwJAAkACQAJAAkACQAJAAkAgACgCAA4LBAUFAAYHCgIDAQkKCyAAKAIEIgNBgIAIcQ0JIANBwABxDQkgASgCgAEiAiABQUBrIAIbIgUgACgCKCICIABBEGogAhsiBigCAEEDdGooAgAgARBfIQIgACgCDEECSA0JQQEhAwNAIAIgBSAGIANBAnRqKAIAQQN0aigCACABEF8iBCACIARJGyECIANBAWoiAyAAKAIMSA0ACwwJCyAAKAIMIgAtAARBAXFFDQYgACgCJA8LA0BBf0F/QX8gACgCDCABEF8iAyACaiADQX9GGyACQX9GGyACIANBf3NLGyECIAAoAhAiAA0ACwwHCwNAIAMoAgwgARBfIgQgAiAEIAIgBEkbIAAgA0YbIQIgAygCECIDDQALDAYLIAAoAhAgACgCDGsPCyABKAIIKAIMDwsgACgCEEEATA0DIAAoAgwgARBfIQMgACgCECIARQ0DQX8gACADbEF/IABuIANNGw8LAkAgACgCECIDQQFrQQJPBEACQCADDgQABQUCBQsgACgCBCIDQQFxBEAgACgCJA8LIANBCHENBCAAIANBCHI2AgQgACAAKAIMIAEQXyICNgIkIAAgACgCBEF2cUEBcjYCBCACDwsgACgCDCEADAELCyAAKAIMIAEQXyECIAAoAhQiAwRAIAMgARBfIAJqIQILIAAoAhgiAAR/IAAgARBfBUEACyIAIAIgACACSRsPC0EAQX8gACgCDBshAgsgAgvfAQECfwNAQQEhAQJAAkACQAJAAkACQCAAKAIAQQRrDgYCAwQAAAEECwNAIAAoAgwQYCICIAEgASACSBshASAAKAIQIgANAAsMAwsgAC0ABEHAAHFFDQNBAw8LIAAoAhRFDQEMAgsgACgCECICQQFrQQJJDQECQAJAIAIOBAECAgACCyAAKAIMEGAhASAAKAIUIgIEQCACEGAiAiABIAEgAkgbIQELIAAoAhgiAEUNASAAEGAiACABIAAgAUobDwtBA0ECIAAtAARBwABxGyEBCyABDwsgACgCDCEADAALAAvzAQECfwJ/AkACQAJAAkACQAJAIAAoAgBBBGsOBwECAwAABQQFCwNAIAAoAgwQYQRAQQEhAQwGCyAAKAIQIgANAAsMBAsgACgCDBBhIQEMAwsgACgCEEUEQEEAIAAoAgQiAUEIcQ0EGiAAIAFBCHI2AgQgACgCDBBhIQEgACAAKAIEQXdxNgIEDAMLQQEhASAAKAIMEGENAiAAKAIQQQNHBEBBACEBDAMLIAAoAhQiAgRAIAIQYQ0DC0EAIQEgACgCGCIARQ0CIAAQYSEBDAILIAAoAgwiAEUNASAAEGEhAQwBC0EBIAAtAAdBAXENARoLIAELC+4IAQd/IAEoAgghAyACKAIEIQQgASgCBCIGRQRAIAIoAgggA3IhAwsgASADrSACKAIMIAEoAgwiBUECcSAFIAQbciIFrUIghoQ3AggCQCACKAIkIgRBAEwNACAGDQAgAkEYaiIGIAYoAgAgA3KtIAIoAhwgBUECcSAFIAIoAgQbcq1CIIaENwIACwJAIAIoArABQQBMDQAgASgCBA0AIAIoAqQBDQAgAkGoAWoiAyADKAIAIAEoAghyNgIACyABKAJQIQUgASgCICEDIAIoAgQEQCABQQA2AiAgAUEANgJQCyACQRBqIQggAUFAayEJAkAgBEEATA0AAn8gAwRAIAJBKGoiAyAEaiEHIAEoAiQhBANAIAMgACgCABEBACIGIARqQRhMBEACQCAGQQBMDQBBACEFIAMgB08NAANAIAEgBGogAy0AADoAKCAEQQFqIQQgA0EBaiEDIAVBAWoiBSAGTg0BIAMgB0kNAAsLIAMgB0kNAQsLIAEgBDYCJEEAIQQgAyAHRgRAIAIoAiAhBAsgASAENgIgIAFBHGohBSABQRhqDAELIAVFDQEgAkEoaiIDIARqIQcgASgCVCEEA0AgAyAAKAIAEQEAIgYgBGpBGEwEQAJAIAZBAEwNAEEAIQUgAyAHTw0AA0AgASAEaiADLQAAOgBYIARBAWohBCADQQFqIQMgBUEBaiIFIAZODQEgAyAHSQ0ACwsgAyAHSQ0BCwsgASAENgJUQQAhBCADIAdGBEAgAigCICEECyABIAQ2AlAgAUHMAGohBSABQcgAagsiAyADNQIAIAIoAhwgBSgCAEECcXJBACAEG61CIIaENwIAIAhBADoAGCAIQgA3AhAgCEIANwIIIAhCADcCAAsgACAJIAgQQSAAIAkgAkFAaxBBIAFB8ABqIQMCQCABKAKEAUEASgRAIAIoAgRFDQEgASgCdEUEQCAAIAFBEGogAxBBDAILIAAgCSADEEEMAQsgAigChAFBAEwNACADIAIpAnA3AgAgAyACKQKYATcCKCADIAIpApABNwIgIAMgAikCiAE3AhggAyACKQKAATcCECADIAIpAng3AggLAkAgAigCsAEiA0UNACABQaABaiEEIAJBoAFqIQUCQCABKAKwASIGRQ0AQYCAAiAGbSEGQYCAAiADbSIDQQBMDQEgBkEATA0AQQAhBwJ/QQAgASgCpAEiCEF/Rg0AGkEBIAggBCgCAGsiCEHjAEsNABogCEEBdEGwGWouAQALIAZsIQYCQCACKAKkASIAQX9GDQBBASEHIAAgBSgCAGsiAEHjAEsNACAAQQF0QbAZai4BACEHCyADIAdsIgMgBkoNACADIAZIDQEgBSgCACAEKAIATw0BCyAEIAVBlAIQpgEaCyABQX9Bf0F/IAIoAgAiAyABKAIAIgRqIANBf0YbIARBf0YbIAQgA0F/c0sbNgIAIAFBf0F/QX8gAigCBCIDIAEoAgQiBGogA0F/RhsgBEF/RhsgBCADQX9zSxs2AgQLvwMBA38gACAAKAIIIAEoAghxNgIIIABBDGoiAyADKAIAIAEoAgxxNgIAIABBEGogAUEQaiACEGUgAEFAayABQUBrIAIQZSAAQfAAaiABQfAAaiACEGUCQCAAKAKwAUUNACAAQaABaiEDAkAgASgCsAEEQCAAKAKkASIFIAEoAqABIgRPDQELIANBAEGUAhCoARoMAQsgAigCCCECIAQgAygCAEkEQCADIAQ2AgALIAEoAqQBIgMgBUsEQCAAIAM2AqQBCwJ/AkAgAS0AtAEEQCAAQQE6ALQBDAELIAAtALQBDQBBAAwBC0EUQQUgAigCDEEBShsLIQRBASECA0AgACACakG0AWohAwJAAkAgASACai0AtAEEQCADQQE6AAAMAQsgAy0AAEUNAQtBBCEDIAJB/wBNBH8gAkEBdEGAG2ouAQAFIAMLIARqIQQLIAJBAWoiAkGAAkcNAAsgACAENgKwASAAQagBaiICIAIoAgAgASgCqAFxNgIAIABBrAFqIgIgAigCACABKAKsAXE2AgALIAEoAgAiAiAAKAIASQRAIAAgAjYCAAsgASgCBCICIAAoAgRLBEAgACACNgIECwvZBAEFfwNAQQAhAgJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCAA4KAgMDBAYHCQABBQkLA0BBf0F/QX8gACgCDCABEGQiAyACaiADQX9GGyACQX9GGyACIANBf3NLGyICIQMgACgCECIADQALDAgLA0AgAiAAKAIMIAEQZCIDIAIgA0sbIgIhAyAAKAIQIgANAAsMBwsgACgCECAAKAIMaw8LIAEoAggoAggPCyAAKAIEIgJBgIAIcQ0EIAJBwABxBEAgAkESdEEfdQ8LIAAoAgxBAEwNBCABKAKAASICIAFBQGsgAhshBCAAKAIoIgIgAEEQaiACGyEFQQAhAgNAIAMgBCAFIAJBAnRqKAIAQQN0aigCACABEGQiBiADIAZLGyEDIAJBAWoiAiAAKAIMSA0ACwwECyAALQAEQcAAcUUNBEF/DwsgACgCFEUNASAAKAIMIAEQZCICRQ0BAkAgACgCFCIDQQFqDgIDAgALQX8gAiADbEF/IANuIAJNGw8LIAAoAhAiAkEBa0ECSQ0CAkACQCACDgQAAwMBAwsgACgCBCICQQJxBEAgACgCKA8LQX8hAyACQQhxDQIgACACQQhyNgIEIAAgACgCDCABEGQiAjYCKCAAIAAoAgRBdXFBAnI2AgQgAg8LIAAoAgwgARBkIQIgACgCFCIDBEBBf0F/QX8gAyABEGQiAyACaiADQX9GGyACQX9GGyACIANBf3NLGyECCyAAKAIYIgAEfyAAIAEQZAVBAAsiACACIAAgAksbDwtBACEDCyADDwsgACgCDCEADAALAAu8AgEFfwJAIAEoAhRFDQAgACgCFCIERQ0AIAAoAgAgASgCAEcNACAAKAIEIAEoAgRHDQACQCAEQQBMBEAMAQsgAEEYaiEGA0AgAyABKAIUTg0BIAAgA2otABggASADai0AGEcNAUEBIQQgAyAGaiACKAIIKAIAEQEAIgVBAUoEQANAIAAgAyAEaiIHai0AGCABIAdqLQAYRw0DIARBAWoiBCAFRw0ACwsgAyAFaiIDIAAoAhRIDQALCwJ/AkAgASgCEEUNACADIAEoAhRIDQAgAyAAKAIUSA0AIAAoAhBFDAELIABBADYCEEEBCyEEIAAgAzYCFCAAIAAoAgggASgCCHE2AgggAEEMaiIAQQAgACgCACABKAIMcSAEGzYCAA8LIABCADcCACAAQQA6ABggAEIANwIQIABCADcCCAuaAgEGfyAAKAIQIgJBAEoEQANAIAAoAhQgAUECdGooAgAiAwRAIAMQZiAAKAIQIQILIAFBAWoiASACSA0ACwsCQCAAKAIMIgJBAEwNACACQQNxIQRBACEDQQAhASACQQFrQQNPBEAgAkF8cSEGA0AgAUECdCICIAAoAhRqQQA2AgAgACgCFCACQQRyakEANgIAIAAoAhQgAkEIcmpBADYCACAAKAIUIAJBDHJqQQA2AgAgAUEEaiEBIAVBBGoiBSAGRw0ACwsgBEUNAANAIAAoAhQgAUECdGpBADYCACABQQFqIQEgA0EBaiIDIARHDQALCyAAQX82AgggAEEANgIQIABCfzcCACAAKAIUIgEEQCABEMwBCyAAEMwBC54BAQN/IAAgATYCBEEKIAEgAUEKTBshAQJAAkAgACgCACIDRQRAIAAgAUECdCICEMsBIgM2AgggACACEMsBIgQ2AgxBeyECIANFDQIgBA0BDAILIAEgA0wNASAAIAAoAgggAUECdCICEM0BNgIIIAAgACgCDCACEM0BIgM2AgxBeyECIANFDQEgACgCCEUNAQsgACABNgIAQQAhAgsgAguBlQEBJn8jAEHgAWsiCCEHIAgkACAAKAIAIQYCQCAFRQRAIAAoAgwiCkUEQEEAIQgMAgsgCkEDcSELIAAoAgQhDEEAIQgCQCAKQQFrQQNJBEBBACEKDAELIApBfHEhGEEAIQoDQCAGIAwgCkECdCITaigCAEECdEGAHWooAgA2AgAgBiAMIBNBBHJqKAIAQQJ0QYAdaigCADYCFCAGIAwgE0EIcmooAgBBAnRBgB1qKAIANgIoIAYgDCATQQxyaigCAEECdEGAHWooAgA2AjwgCkEEaiEKIAZB0ABqIQYgEkEEaiISIBhHDQALCyALRQ0BA0AgBiAMIApBAnRqKAIAQQJ0QYAdaigCADYCACAKQQFqIQogBkEUaiEGIAlBAWoiCSALRw0ACwwBCyAAKAJQIR0gACgCRCEOIAUoAgghDSAFKAIoIgogCigCGEEBajYCGCAFKAIcIR4gBSgCICIKBEAgCiAFKAIkayIKIB4gCiAeSRshHgsgACgCHCEWIAAoAjghJgJAIAUoAgAiEgRAIAdBADYCmAEgByASNgKUASAHIBIgBSgCEEECdGoiCjYCjAEgByAKNgKQASAHIAogBSgCBEEUbGo2AogBDAELIAUoAhAiCkECdCIJQYAZaiEMIApBM04EQCAHQQA2ApgBIAcgDBDLASISNgKUASASRQRAQXshCAwDCyAHIAkgEmoiCjYCjAEgByAKNgKQASAHIApBgBlqNgKIAQwBCyAHQQE2ApgBIAggDEEPakFwcWsiEiQAIAcgCSASaiIKNgKQASAHIBI2ApQBIAcgCjYCjAEgByAKQYAZajYCiAELIBIgFkECdGpBBGohE0EBIQggFkEASgRAIBZBA3EhCyAWQQFrQQNPBEAgFkF8cSEYQQAhDANAIBMgCEECdCIKakF/NgIAIAogEmpBfzYCACATIApBBGoiCWpBfzYCACAJIBJqQX82AgAgEyAKQQhqIglqQX82AgAgCSASakF/NgIAIBMgCkEMaiIKakF/NgIAIAogEmpBfzYCACAIQQRqIQggDEEEaiIMIBhHDQALCyALBEBBACEKA0AgEyAIQQJ0IgxqQX82AgAgDCASakF/NgIAIAhBAWohCCAKQQFqIgogC0cNAAsLIAcoAowBIQoLIApBAzYCACAKQaCaETYCCCAHIApBFGo2AowBIA1BgICAEHEhJyANQRBxISIgDUEgcSEoIA1BgICAAnEhKSANQYAEcSEjIA1BgIiABHEhKiANQYCAgARxISQgDUGACHEhISANQYCAgAhxIStBfyEbIAdBvwFqISVBACEYIAQiCSEgIAMhFAJAA0BBASEKQQAhDCAbIQgCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBiILKAIAQQJrDlMBAgMEBQYHCAkKCwwNDg8SExQZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6O15dXFpZWFdWVVRTUlFQT05NTEtKSUhHRkVEQUBiZAALAkAgBCAJRw0AIChFDQAgBCEJQX8hGwxiCyAJIARrIgYgGyAGIBtKGyEQAkAgBiAbTA0AICJFDQAgBSgCLCIQIAZIBEAgBSAENgIwIAUgBjYCLCAbIAYgAyAJSxshEAwBCyADIAlLDWIgBSgCMCAERw1iCwJAIAUoAgwiEUUNACARKAIIIg0gCSAgIAkgIEkbIiAgAWsiDzYCACARKAIMIgsgCSABayIXNgIAQQEhBiAWQQBKBEAgBygCkAEhGwNAQX8hCAJ/IBMgBkECdCIMaiIKKAIAQX9HBEAgDCASaiEIIA0gBkECdGpBAUEBIAZ0IAZBIE8bIgwgACgCMHEEfyAbIAgoAgBBFGxqQQhqBSAICygCACABazYCACAAKAI0IAxxBH8gGyAKKAIAQRRsakEIagUgCgsoAgAgAWshCCALDAELIAsgDGpBfzYCACANCyAGQQJ0aiAINgIAIAYgFkchCCAGQQFqIQYgCA0ACwsgACgCLEUNAAJAIBEoAhAiBkUEQEEYEMsBIggEQCAIQgA3AhAgCEL/////DzcCCCAIQn83AgALIBEgCDYCECAIIgYNAUF7IQgMZwsgBigCECIKQQBKBEBBACEIA0AgBigCFCAIQQJ0aigCACIMBEAgDBBmIAYoAhAhCgsgCEEBaiIIIApIDQALCwJAIAYoAgwiCkEATA0AIApBA3EhDUEAIQxBACEIIApBAWtBA08EQCAKQXxxIRtBACELA0AgCEECdCIKIAYoAhRqQQA2AgAgBigCFCAKQQRyakEANgIAIAYoAhQgCkEIcmpBADYCACAGKAIUIApBDHJqQQA2AgAgCEEEaiEIIAtBBGoiCyAbRw0ACwsgDUUNAANAIAYoAhQgCEECdGpBADYCACAIQQFqIQggDEEBaiIMIA1HDQALCyAGQX82AgggBkEANgIQIAZCfzcCACARKAIQIQgLIAYgFzYCCCAGIA82AgQgBkEANgIAIAcgBygCkAE2AoQBIAggB0GEAWogBygCjAEgASAAEGkiCEEASA1kCyAnRQRAIBAhCAxkC0HwvxIoAgAiBkUEQCAQIQgMZAsgASACIAQgESAFKAIoKAIMIAYRBQAiCEEASA1jIBBBfyAiGyEbDGELIBQgCWtBAEwNYCALLQAEIAktAABHDWAgC0EUaiEGIAlBAWohCQxhCyAUIAlrQQJIDV8gCy0ABCAJLQAARw1fIAstAAUgCS0AAUYNOSAJQQFqIQkMXwsgFCAJa0EDSA1eIAstAAQgCS0AAEcNXiALLQAFIAktAAFHBEAgCUEBaiEJDF8LIAstAAYgCS0AAkcEQCAJQQJqIQkMXwsgC0EUaiEGIAlBA2ohCQxfCyAUIAlrQQRIDV0gCy0ABCAJLQAARw1dIAstAAUgCS0AAUcEQCAJQQFqIQkMXgsgCy0ABiAJLQACRwRAIAlBAmohCQxeCyALLQAHIAktAANHBEAgCUEDaiEJDF4LIAtBFGohBiAJQQRqIQkMXgsgFCAJa0EFSA1cIAstAAQgCS0AAEcNXCALLQAFIAktAAFHBEAgCUEBaiEJDF0LIAstAAYgCS0AAkcEQCAJQQJqIQkMXQsgCy0AByAJLQADRwRAIAlBA2ohCQxdCyALLQAIIAktAARHBEAgCUEEaiEJDF0LIAtBFGohBiAJQQVqIQkMXQsgCygCCCIGIBQgCWtKDVsgCygCBCEIAkADQCAGQQBMDQEgBkEBayEGIAktAAAhCiAILQAAIQwgCUEBaiINIQkgCEEBaiEIIAogDEYNAAsgDSEJDFwLIAtBFGohBgxcCyAUIAlrQQJIDVogCy0ABCAJLQAARw1aIAstAAUgCS0AAUcEQCAJQQFqIQkMWwsgC0EUaiEGIAlBAmohCQxbCyAUIAlrQQRIDVkgCy0ABCAJLQAARw1ZIAstAAUgCS0AAUcEQCAJQQFqIQkMWgsgCy0ABiAJLQACRwRAIAlBAmohCQxaCyALLQAHIAktAANHBEAgCUEDaiEJDFoLIAtBFGohBiAJQQRqIQkMWgsgFCAJa0EGSA1YIAstAAQgCS0AAEcNWCALLQAFIAktAAFHBEAgCUEBaiEJDFkLIAstAAYgCS0AAkcEQCAJQQJqIQkMWQsgCy0AByAJLQADRwRAIAlBA2ohCQxZCyALLQAIIAktAARHBEAgCUEEaiEJDFkLIAstAAkgCS0ABUcEQCAJQQVqIQkMWQsgC0EUaiEGIAlBBmohCQxZCyALKAIIIghBAXQiBiAUIAlrSg1XIAhBAEoEQCAGIAlqIQwgCygCBCEGA0AgBi0AACAJLQAARw1ZIAYtAAEgCS0AAUcNNiAJQQJqIQkgBkECaiEGIAhBAUshCiAIQQFrIQggCg0ACyAMIQkLIAtBFGohBgxYCyALKAIIIghBA2wiBiAUIAlrSg1WIAhBAEoEQCAGIAlqIQwgCygCBCEGA0AgBi0AACAJLQAARw1YIAYtAAEgCS0AAUcNMyAGLQACIAktAAJHDTQgCUEDaiEJIAZBA2ohBiAIQQFLIQogCEEBayEIIAoNAAsgDCEJCyALQRRqIQYMVwsgCygCCCALKAIMbCIGIBQgCWtKDVUgBkEASgRAIAYgCWohDCALKAIEIQgDQCAILQAAIAktAABHDVcgCUEBaiEJIAhBAWohCCAGQQFKIQogBkEBayEGIAoNAAsgDCEJCyALQRRqIQYMVgsgFCAJa0EATA1UIAsoAgQgCS0AACIGQQN2QRxxaigCACAGdkEBcUUNVCAJIA4oAgARAQBBAUcNVCALQRRqIQYgCUEBaiEJDFULIBQgCWsiBkEATA1TIAkgDigCABEBAEEBRg1TDAELIBQgCWsiBkEATA1SIAkgDigCABEBAEEBRg0BCyAGIAkgDigCABEBACIISA1RIAkgCCAJaiIIIA4oAhQRAAAhBiALKAIEIAYQU0UEQCAIIQkMUgsgC0EUaiEGIAghCQxSCyALKAIIIAktAAAiBkEDdkEccWooAgAgBnZBAXFFDVAgC0EUaiEGIAlBAWohCQxRCyAUIAlrQQBMDU8gCygCBCAJLQAAIgZBA3ZBHHFqKAIAIAZ2QQFxDU8gC0EUaiEGIAkgDigCABEBACAJaiEJDFALIBQgCWsiBkEATA1OIAkgDigCABEBAEEBRw0BIAlBAWohCAwCCyAUIAlrIgZBAEwNTSAJIA4oAgARAQBBAUYNAwsgAiEIIAkgDigCABEBACIKIAZKDQAgCSAJIApqIgggDigCFBEAACEGIAsoAgQgBhBTDQELIAtBFGohBiAIIQkMTAsgCCEJDEoLIAsoAgggCS0AACIGQQN2QRxxaigCACAGdkEBcQ1JIAtBFGohBiAJQQFqIQkMSgsgFCAJayIGQQBMDUggBiAJIA4oAgARAQAiCEgNSCAJIAIgDigCEBEAAA1IIAtBFGohBiAIIAlqIQkMSQsgFCAJayIGQQBMDUcgBiAJIA4oAgARAQAiCEgNRyALQRRqIQYgCCAJaiEJDEgLIAtBFGohBiAJIBRPDUcDQCAHKAKIASAHKAKMASIIa0ETTARAIAdBmAFqIAdBlAFqIAdBkAFqIAdBiAFqIAdBjAFqIAUQaiIIDUsgBygClAEiEiAWQQJ0akEEaiETIAcoAowBIQgLIAggBjYCCCAIQQM2AgAgCCAJNgIMIAcgCEEUajYCjAEgCSAOKAIAEQEAIgggFCAJa0oNRyAJIAIgDigCEBEAAA1HIAggCWoiCSAUSQ0ACwxHCyALQRRqIQYgCSAUTw1GA0AgBygCiAEgBygCjAEiCGtBE0wEQCAHQZgBaiAHQZQBaiAHQZABaiAHQYgBaiAHQYwBaiAFEGoiCA1KIAcoApQBIhIgFkECdGpBBGohEyAHKAKMASEICyAIIAY2AgggCEEDNgIAIAggCTYCDCAHIAhBFGo2AowBQQEhCCAJIA4oAgARAQAiCkECTgRAIAoiCCAUIAlrSg1HCyAIIAlqIgkgFEkNAAsMRgsgC0EUaiEGIAkgFE8NRSALLQAEIQoDQCAJLQAAIApB/wFxRgRAIAcoAogBIAcoAowBIghrQRNMBEAgB0GYAWogB0GUAWogB0GQAWogB0GIAWogB0GMAWogBRBqIggNSiAHKAKUASISIBZBAnRqQQRqIRMgBygCjAEhCAsgCCAGNgIIIAhBAzYCACAIIAk2AgwgByAIQRRqNgKMAQsgCSAOKAIAEQEAIgggFCAJa0oNRSAJIAIgDigCEBEAAA1FIAggCWoiCSAUSQ0ACwxFCyALQRRqIQYgCSAUTw1EIAstAAQhDANAIAktAAAgDEH/AXFGBEAgBygCiAEgBygCjAEiCGtBE0wEQCAHQZgBaiAHQZQBaiAHQZABaiAHQYgBaiAHQYwBaiAFEGoiCA1JIAcoApQBIhIgFkECdGpBBGohEyAHKAKMASEICyAIIAY2AgggCEEDNgIAIAggCTYCDCAHIAhBFGo2AowBC0EBIQggCSAOKAIAEQEAIgpBAk4EQCAKIgggFCAJa0oNRQsgCCAJaiIJIBRJDQALDEQLIBQgCWtBAEwNQiAOKAIwIQYgCSACIA4oAhQRAABBDCAGEQAARQ1CIAtBFGohBiAJIA4oAgARAQAgCWohCQxDCyAUIAlrQQBMDUEgDiAJIAIQhwFFDUEgC0EUaiEGIAkgDigCABEBACAJaiEJDEILIBQgCWtBAEwNQCAOKAIwIQYgCSACIA4oAhQRAABBDCAGEQAADUAgC0EUaiEGIAkgDigCABEBACAJaiEJDEELIBQgCWtBAEwNPyAOIAkgAhCHAQ0/IAtBFGohBiAJIA4oAgARAQAgCWohCQxACyALKAIEIQYCQCABIAlGBEAgFCABa0EATARAIAEhCQxBCyAGRQRAIA4oAjAhBiABIAIgDigCFBEAAEEMIAYRAAANAiABIQkMQQsgDiABIAIQhwENASABIQkMQAsgDiABIAkQeCEIIAIgCUYEQCAGRQRAIA4oAjAhBiAIIAIgDigCFBEAAEEMIAYRAAANAiACIQkMQQsgDiAIIAIQhwENASACIQkMQAsCfyAGRQRAIA4oAjAhBiAJIAIgDigCFBEAAEEMIAYRAAAhBiAOKAIwIQogCCACIA4oAhQRAABBDCAKEQAADAELIA4gCSACEIcBIQYgDiAIIAIQhwELIAZGDT8LIAtBFGohBgw/CyALKAIEIQYCQCABIAlGBEAgASAUTw0BIAZFBEAgDigCMCEGIAEgAiAOKAIUEQAAQQwgBhEAAEUNAiABIQkMQAsgDiABIAIQhwFFDQEgASEJDD8LIA4gASAJEHghCCACIAlGBEAgBkUEQCAOKAIwIQYgCCACIA4oAhQRAABBDCAGEQAARQ0CIAIhCQxACyAOIAggAhCHAUUNASACIQkMPwsCfyAGRQRAIA4oAjAhBiAJIAIgDigCFBEAAEEMIAYRAAAhBiAOKAIwIQogCCACIA4oAhQRAABBDCAKEQAADAELIA4gCSACEIcBIQYgDiAIIAIQhwELIAZHDT4LIAtBFGohBgw+CyAJIBRPDTwCQAJAAkAgCygCBEUEQCAOKAIwIQYgCSACIA4oAhQRAABBDCAGEQAARQ1AIAEgCUYNASAOIAEgCRB4IQYgDigCMCEIIAYgAiAOKAIUEQAAQQwgCBEAAEUNAwxACyAOIAkgAhCHAUUNPyABIAlHDQELIAtBFGohBgw/CyAOIA4gASAJEHggAhCHAQ09CyALQRRqIQYMPQsgASAJRgRAIAEhCQw8CyALKAIEIQYgDiABIAkQeCEIAkAgBkUEQCAOKAIwIQYgCCACIA4oAhQRAABBDCAGEQAARQ09IAIgCUYNASAOKAIwIQYgCSACIA4oAhQRAABBDCAGEQAARQ0BDD0LIA4gCCACEIcBRQ08IAIgCUYNACAOIAkgAhCHAQ08CyALQRRqIQYMPAsgDiABIAkQeCEGQXMhCAJ/AkACQCALKAIEDgIAAT8LAn9BASEPAkACQCABIAkiCEYNACACIAhGDQAgBkUEQCAOIAEgCBB4IgZFDQELIAYgAiAOKAIUEQAAIQwgCCACIA4oAhQRAAAhDSAOLQBMQQJxRQ0BQcsKIQ9BACEIA0AgCCAPakEBdiIQQQFqIAggEEEMbEHAmAFqKAIEIAxJIgobIgggDyAQIAobIg9JDQALQQAhDwJ/QQAgCEHKCksNABpBACAIQQxsIghBwJgBaigCACAMSw0AGiAIQcCYAWooAggLIQxBywohCANAIAggD2pBAXYiEEEBaiAPIBBBDGxBwJgBaigCBCANSSIKGyIPIAggECAKGyIISQ0AC0EAIQgCQCAPQcoKSw0AIA9BDGwiD0HAmAFqKAIAIA1LDQAgD0HAmAFqKAIIIQgLAkAgCCAMckUNAEEAIQ8gDEEBRiAIQQJGcQ0BIAxBAWtBA0kNACAIQQFrQQNJDQACQCAMQQ1JDQAgCEENSQ0AIAxBDUYgCEEQR3ENAgJAAkAgDEEOaw4EAAEBAAELIAhBfnFBEEYNAwsgCEEQRw0BIAxBD2tBAk8NAQwCCyAIQQhNQQBBASAIdEGQA3EbDQECQAJAIAxBBWsOBAMBAQABC0HA6gcgDRBTRQ0BA0AgDiABIAYQeCIGRQ0CQcsKIQhBACEPQcDqByAGIAIgDigCFBEAACINEFMNAwNAIAggD2pBAXYiEEEBaiAPIBBBDGxBwJgBaigCBCANSSIKGyIPIAggECAKGyIISQ0ACyAPQcoKSw0CIA9BDGwiCEHAmAFqKAIAIA1LDQIgCEHAmAFqKAIIQQRGDQALDAELIAxBBkcNACAIQQZHDQAgDiABIAYQeCIGRQ0BA0BBywohEEEAIQggBiACIA4oAhQRAAAhDANAIAggEGpBAXYiCkEBaiAIIApBDGxBwJgBaigCBCAMSSINGyIIIBAgCiANGyIQSQ0ACwJAIAhBygpLDQAgCEEMbCIIQcCYAWooAgAgDEsNACAIQcCYAWooAghBBkcNACAPQQFqIQ8gDiABIAYQeCIGDQELCyAPQQFxIQhBACEPIAhFDQELQQEhDwsgDwwBCyAMQQ1HIA1BCkdyCwwBCyMAQRBrIhAkAAJAIAEgCUYNACACIAlGDQAgBkUEQCAOIAEgCRB4IgZFDQELIAYgAiAOKAIUEQAAIQ9BhwghCEEAIQogCSACIA4oAhQRAAAhDQNAIAggCmpBAXYiFUEBaiAKIBVBDGxB4DdqKAIEIA9JIgwbIgogCCAVIAwbIghJDQALQQAhCAJ/QQAgCkGGCEsNABpBACAKQQxsIgpB4DdqKAIAIA9LDQAaIApB4DdqKAIICyEPQYcIIQoDQCAIIApqQQF2IhVBAWogCCAVQQxsQeA3aigCBCANSSIMGyIIIAogFSAMGyIKSQ0AC0EAIRUCQCAIQYYISw0AIAhBDGwiCkHgN2ooAgAgDUsNACAKQeA3aigCCCEVCwJAIA8gFXJFDQACQCAPQQJHDQAgFUEJRw0AQQAhCgwCC0EBIQogD0ENTUEAQQEgD3RBhMQAcRsNASAVQQ1NQQBBASAVdEGExABxGw0BAkAgD0ESRgRAQcDqByANEFNFDQFBACEKDAMLIA9BEUcNACAVQRFHDQBBACEKDAILAkAgFUESSw0AQQEgFXRB0IAQcUUNAEEAIQoMAgsCQCAPQRJLDQBBASAPdEHQgBBxRQ0AIA4gASAGEHgiCkUNAANAIAoiBiACIA4oAhQRAAAQlQEiD0ESSw0BQQEgD3RB0IAQcUUNASAOIAEgBhB4IgoNAAsLAkACQAJAAkAgD0EQSw0AQQEgD3QiCkGAqARxRQRAIApBggFxRQ0BIBVBEEsNAUEBIBV0IgpBgKgEcUUEQCAKQYIBcUUNAkEAIQoMBwsgDiAJIAIgEEEMaiAQQQhqEJYBQQFHDQFBACEKIBAoAghBAWsOBwYBAQEBAQYBCwJAIBVBAWsOBwACAgICAgACCyAOIAEgBhB4IgpFDQIDQCAKIgYgAiAOKAIUEQAAEJUBIghBEksNAUEBIAh0QdCAEHFFBEBBASAIdEGCAXFFDQJBACEKDAcLIA4gASAGEHgiCg0AC0EAIQogCEEBaw4HBQAAAAAABQALIA9BB0YEQEEAIQoCQCAVQQNrDg4AAgICAgICAgICAgICBgILIA4gCSACIBBBDGogEEEIahCWAUEBRw0EIBAoAghBB0cNBAwFCyAPQQNHDQAgFUEHRw0AIA4gASAGEHgiCEUEQEEAIQxBACEIDAMLA0BBACEKAkAgCCIGIAIgDigCFBEAABCVASIMQQRrDg8AAgAGAgICAgICAgICAgACCyAOIAEgBhB4IggNAAsgDEEHRg0ECyAVQQ5HDQAgD0EQSw0AQQEgD3QiCkGCgQFxBEBBACEKDAQLIApBgLAEcUUNACAOIAEgBhB4IghFDQADQEEAIQoCQCAIIgYgAiAOKAIUEQAAEJUBIgxBBGtBH3cOCAAAAgICBQIAAgsgDiABIAYQeCIIDQALIAxBDkcNAAwDCyAPQQ5GBEBBACEIQQEhDCAVQRBLDQFBASAVdCINQYCwBHFFBEBBACEKIA1BggFxRQ0CDAQLIA4gCSACIBBBDGogEEEIahCWAUEBRw0BQQAhCiAQKAIIQQ5HDQEMAwsgD0EIRiEIQQAhDCAPQQhHDQBBACEKIBVBCEYNAgsCQCAPQQVHIgogD0EBRiAIciAMckF/cyAPQQdHcXENACAVQQVHDQBBACEKDAILIApFBEAgFUEOSw0BQQAhCkEBIBV0QYKDAXFFDQEMAgsgD0EPRw0AIBVBD0cNAEEAIQogDiABIAYQeCIIRQ0BQQAhFQNAIAggAiAOKAIUEQAAEJUBQQ9GBEAgFUEBaiEVIA4gASAIEHgiCA0BCwsgFUEBcUUNAQtBASEKCyAQQRBqJAAgCgsiBkUgBiALKAIIG0UNOiALQRRqIQYMOwsgASAJRw05ICMNOSApDTkgC0EUaiEGIAEhCQw6CyACIAlHDTggIQ04ICQNOCALQRRqIQYgAiEJDDkLIAEgCUYEQCAjBEAgASEJDDkLIAtBFGohBiABIQkMOQsgAiAJRgRAIAIhCQw4CyAOIAEgCRB4IAIgDigCEBEAAEUNNyALQRRqIQYMOAsgAiAJRgRAICEEQCACIQkMOAsgC0EUaiEGIAIhCQw4CyAJIAIgDigCEBEAAEUNNiALQRRqIQYMNwsgAiAJRgRAICoEQCACIQkMNwsgC0EUaiEGIAIhCQw3CyAJIAIgDigCEBEAAEUNNSAJIA4oAgARAQAgCWogAkcNNSAhDTUgJA01IAtBFGohBgw2CwJAAkACQCALKAIEDgIAAQILIAkgBSgCFEcNNiArRQ0BDDYLIAkgFEcNNQsgC0EUaiEGDDULIAsoAgQhCiAHKAKIASAHKAKMASIGa0ETTARAIAdBmAFqIAdBlAFqIAdBkAFqIAdBiAFqIAdBjAFqIAUQaiIIDTcgBygClAEiEiAWQQJ0akEEaiETIAcoAowBIQYLIAYgCTYCCCAGIAo2AgQgBkEQNgIAIAYgEiAKQQJ0IghqIgooAgA2AgwgBiAIIBNqIggoAgA2AhAgCiAGIAcoApABa0EUbTYCACAIQX82AgAgByAHKAKMAUEUajYCjAEgC0EUaiEGDDQLIBIgCygCBEECdGogCTYCACALQRRqIQYMMwsgCygCBCEKIAcoAogBIAcoAowBIgZrQRNMBEAgB0GYAWogB0GUAWogB0GQAWogB0GIAWogB0GMAWogBRBqIggNNSAHKAKUASISIBZBAnRqQQRqIRMgBygCjAEhBgsgBiAJNgIIIAYgCjYCBCAGQbCAAjYCACAGIBIgCkECdCIIaigCADYCDCAGIAggE2oiCCgCADYCECAIIAYgBygCkAFrQRRtNgIAIAcgBygCjAFBFGo2AowBIAtBFGohBgwyCyATIAsoAgRBAnRqIAk2AgAgC0EUaiEGDDELIAsoAgQhESAHKAKMASIQIQYCQCAQIAcoApABIg1NDQADQAJAIAYiCEEUayIGKAIAIgpBgIACcQRAIAwgCEEQaygCACARRmohDAwBCyAKQRBHDQAgCEEQaygCACARRw0AIAxFDQIgDEEBayEMCyAGIA1LDQALCyAHIAY2AoQBIAYgDWtBFG0hBiAHKAKIASAQa0ETTARAIAdBmAFqIAdBlAFqIAdBkAFqIAdBiAFqIAdBjAFqIAUQaiIIDTMgBygClAEiEiAWQQJ0akEEaiETIAcoAowBIRAgBygCkAEhDQsgECAJNgIIIBAgETYCBCAQQbCAAjYCACAQIBIgEUECdCIIaiIKKAIANgIMIBAgCCATaiIIKAIANgIQIAggECANa0EUbTYCACAHIAcoAowBQRRqNgKMASAKIAY2AgAgC0EUaiEGDDALIBMgCygCBCIRQQJ0aiAJNgIAAkAgBygCjAEiBiAHKAKQASINTQ0AA0ACQCAGIghBFGsiBigCACIKQYCAAnEEQCAMIAhBEGsoAgAgEUZqIQwMAQsgCkEQRw0AIAhBEGsoAgAgEUcNACAMRQ0CIAxBAWshDAsgBiANSw0ACwsgByAGNgKEASAAKAIwIQgCQAJAAkAgEUEfTARAIAggEXZBAXENAgwBCyAIQQFxDQELIBIgEUECdGogBigCCDYCAAwBCyASIBFBAnRqIAYgDWtBFG02AgALIAcoAogBIAcoAowBIgZrQRNMBEAgB0GYAWogB0GUAWogB0GQAWogB0GIAWogB0GMAWogBRBqIggNMiAHKAKUASISIBZBAnRqQQRqIRMgBygCjAEhBgsgBiARNgIEIAZBgIICNgIAIAcgBkEUajYCjAEgC0EUaiEGDC8LQQIhCgwBCyALKAIEIQoLIBMgCkECdCIGaiIIKAIAIgxBf0YNKyAGIBJqIgYoAgAiDUF/Rg0rIAAoAjAhEQJ/IApBH0wEQCAHKAKQASIQIA1BFGxqQQhqIAYgEUEBIAp0IgpxGyEGIAAoAjQgCnEMAQsgBygCkAEiECANQRRsakEIaiAGIBFBAXEbIQYgACgCNEEBcQshCgJAIBAgDEEUbGpBCGogCCAKGygCACAGKAIAIghrIgZFDQAgFCAJayAGSA0sA0AgBkEATA0BIAZBAWshBiAILQAAIQogCS0AACEMIAlBAWoiDSEJIAhBAWohCCAKIAxGDQALIA0hCQwsCyALQRRqIQYMLAsgEyALKAIEIghBAnQiBmoiCigCACIMQX9GDSogBiASaiIGKAIAIg1Bf0YNKiAAKAIwIRECfyAIQR9MBEAgBygCkAEiECANQRRsakEIaiAGIBFBASAIdCIIcRshBiAAKAI0IAhxDAELIAcoApABIhAgDUEUbGpBCGogBiARQQFxGyEGIAAoAjRBAXELIQggECAMQRRsakEIaiAKIAgbKAIAIgggBigCACIGRwRAIAggBmsiCCAUIAlrSg0rIAcgBjYC3AEgByAJNgKcAQJAIAhBAEwEQCAJIQgMAQsgBiAIaiERIAggCWohDQNAIB0gB0HcAWogESAHQcABaiAOKAIgEQMAIgYgHSAHQZwBaiANIAdBoAFqIA4oAiARAwBHDS0gBkEASgRAIAYgJWohDCAHQaABaiEIIAdBwAFqIQYDQCAGLQAAIAgtAABHDS8gCEEBaiEIIAYgDEchCiAGQQFqIQYgCg0ACwsgBygC3AEhBiANIAcoApwBIghLBEAgBiARTw0CDAELCyAGIBFJDSwLIAghCQsgC0EUaiEGDCsLIAsoAggiEEEATARAQQAhEQwpCyALQQRqIQ8gFCAJayEVQQAhESAHKAKQASEXA0AgDyEGAkAgEyAQQQFHBH8gDygCACARQQJ0agUgBgsoAgAiCEECdCIGaiIKKAIAIgxBf0YNACAGIBJqIgYoAgAiDUF/Rg0AIAAoAjAhGiAXIAxBFGxqQQhqIAoCfyAIQR9MBEAgFyANQRRsakEIaiAGIBpBASAIdCIIcRshBiAAKAI0IAhxDAELIBcgDUEUbGpBCGogBiAaQQFxGyEGIAAoAjRBAXELGygCACAGKAIAIgprIgZFDSogCSEIIAYgFUoNAANAIAZBAEwEQCAIIQkMLAsgBkEBayEGIAotAAAhDCAILQAAIQ0gCEEBaiEIIApBAWohCiAMIA1GDQALCyARQQFqIhEgEEcNAAsMKQsgCygCCCIRQQBMBEBBACENDCYLIAtBBGohECAUIAlrIRVBACENIAcoApABIRoDQCAQIQYCQCATIBFBAUcEfyAQKAIAIA1BAnRqBSAGCygCACIIQQJ0IgZqIgooAgAiDEF/Rg0AIAYgEmoiBigCACIPQX9GDQAgACgCMCEXIBogDEEUbGpBCGogCgJ/IAhBH0wEQCAaIA9BFGxqQQhqIAYgF0EBIAh0IghxGyEGIAAoAjQgCHEMAQsgGiAPQRRsakEIaiAGIBdBAXEbIQYgACgCNEEBcQsbKAIAIgggBigCACIGRg0nIAggBmsiCCAVSg0AIAcgBjYC3AEgByAJNgKcASAIQQBMDScgBiAIaiEXIAggCWohDwNAIB0gB0HcAWogFyAHQcABaiAOKAIgEQMAIgYgHSAHQZwBaiAPIAdBoAFqIA4oAiARAwBHDQEgBkEASgRAIAYgJWohDCAHQaABaiEIIAdBwAFqIQYDQCAGLQAAIAgtAABHDQMgCEEBaiEIIAYgDEchCiAGQQFqIQYgCg0ACwsgBygC3AEhBiAPIAcoApwBIghLBEAgBiAXTw0qDAELCyAGIBdPDSgLIA1BAWoiDSARRw0ACwwoC0EBIQwLIAtBBGohDyALKAIIIhBBAUcEQCAPKAIAIQ8LIAcoAowBIgZBFGsiCCAHKAKQASIaSQ0mIAsoAgwhFUEAIRFBACEKA0AgCiENIAYhFwJAAkAgCCIGKAIAIghBkApHBEAgCEGQCEcNASARQQFrIREMAgsgEUEBaiERDAELIBEgFUcNAAJ/AkACfwJAIAhBsIACRwRAIAhBEEcNA0EAIQggEEEATA0DIBdBEGsoAgAhCgNAIAogDyAIQQJ0aigCAEcEQCAQIAhBAWoiCEcNAQwFCwtBACEKIBUhESANRQ0FIA0gF0EMaygCACIGayIIIAIgCWtKDS0gByAJNgLAASAMRQ0BIAkhCANAIAggBiANTw0DGiAILQAAIQogBi0AACEMIAhBAWohCCAGQQFqIQYgCiAMRg0ACwwtC0EAIQggEEEATA0CIBdBEGsoAgAhCgNAIAogDyAIQQJ0aigCAEcEQCAQIAhBAWoiCEcNAQwECwsgF0EMaygCAAwDCyAAKAJEIRUgHSEKQQAhDyMAQdAAayIZJAAgGSAGNgJMIBkgB0HAAWoiDSgCACIcNgIMAkACQCAGIAYgCGoiEU8NACAIIBxqIRcgGUEvaiEMA0AgCiAZQcwAaiARIBlBMGogFSgCIBEDACIGIAogGUEMaiAXIBlBEGogFSgCIBEDAEcNAiAGQQBKBEAgBiAMaiEQIBlBEGohHCAZQTBqIQYDQCAGLQAAIBwtAABHDQQgHEEBaiEcIAYgEEchCCAGQQFqIQYgCA0ACwsgGSgCTCEGIBcgGSgCDCIcSwRAIAYgEU8NAgwBCwsgBiARSQ0BCyANIBw2AgBBASEPCyAZQdAAaiQAIA9FDSsgBygCwAELIQkgC0EUaiEGDCsLIA0LIQogFSERCyAGQRRrIgggGk8NAAsMJgsgC0EUaiEGIAlBAmohCQwmCyAJQQFqIQkMJAsgCUECaiEJDCMLIAlBAWohCQwiCyAAIAsoAgQiChAOKAIIIQhBfyEMQQAhDSAFKAIoKAIQDAELIAAgCygCBCIKEA4hBiALKAIIIQwgBigCCCEIQQEhDSAAIQZBACEQAkAgCkEATA0AIAYoAoQDIgZFDQAgBigCDCAKSA0AIAYoAhQiBkUNACAKQdwAbCAGakFAaigCACEQCyAQCyIGRQ0AIAhBAXFFDQAgByAfNgJsIAcgCTYCaCAHIBQ2AmQgByAENgJgIAcgAjYCXCAHIAE2AlggByAANgJUIAcgCjYCUCAHIAw2AkwgByAHKAKQATYCdCAHIBM2AoABIAcgEjYCfCAHIAcoAowBNgJ4IAdBATYCSCAHIAU2AnACQCAHQcgAaiAFKAIoKAIMIAYRAAAiEQ4CASAAC0FiIBEgEUEAShshCAwhCwJAIAhBAnFFDQAgDQRAIAZFDQEgBygCiAEgBygCjAEiCGtBE0wEQCAHQZgBaiAHQZQBaiAHQZABaiAHQYgBaiAHQYwBaiAFEGoiCA0kIAcoApQBIhIgFkECdGpBBGohEyAHKAKMASEICyAIIAo2AgggCCAMNgIEIAhB8AA2AgAgCCAGNgIMIAcgCEEUajYCjAEMAQsgBSgCKCgCFCIMRQ0AIAcoAogBIAcoAowBIgZrQRNMBEAgB0GYAWogB0GUAWogB0GQAWogB0GIAWogB0GMAWogBRBqIggNIyAHKAKUASISIBZBAnRqQQRqIRMgBygCjAEhBgsgBiAKNgIIIAZC8ICAgHA3AgAgBiAMNgIMIAcgBkEUajYCjAELIAtBFGohBgwfC0EBIRECQAJAAkACQAJAAkACQCALKAIEDgYAAQIDBAUGCyAHKAKMASIIIAcoApABIgpNDQUDQAJAIAhBFGsiBigCAEGADEcNACAIQQxrKAIADQAgCEEIaygCACEgDAcLIAYhCCAGIApLDQALDAULIAcoAowBIgYgBygCkAEiDU0NBCALKAIIIREDQAJAAkAgBiIKQRRrIgYoAgAiCEGQCEcEQCAIQZAKRg0BIAhBgAxHDQIgCkEMaygCAEEBRw0CIApBEGsoAgAgEUcNAiAMDQIgCkEIaygCACEJDAgLIAxBAWshDAwBCyAMQQFqIQwLIAYgDUsNAAsMBAtBAiERCyAHKAKMASIGIAcoApABIg1NDQIgCygCCCEQA0ACQAJAIAYiCkEUayIGKAIAIghBkAhHBEAgCEGQCkYNASAIQYAMRw0CIApBDGsoAgAgEUcNAiAKQRBrKAIAIBBHDQIgDA0CIApBCGsoAgAhFCALKAIMRQ0GIAZBADYCAAwGCyAMQQFrIQwMAQsgDEEBaiEMCyAGIA1LDQALDAILIAkhFAwBCyADIRQLIAtBFGohBgweCyALKAIIIQYCQAJAAkACQCALKAIEDgMAAQIDCyAHKAKIASAHKAKMASIIa0ETTARAIAdBmAFqIAdBlAFqIAdBkAFqIAdBiAFqIAdBjAFqIAUQaiIIDSMgBygClAEiEiAWQQJ0akEEaiETIAcoAowBIQgLIAhBADYCCCAIIAY2AgQgCEGADDYCACAIIAk2AgwgByAIQRRqNgKMAQwCCyAHKAKIASAHKAKMASIIa0ETTARAIAdBmAFqIAdBlAFqIAdBkAFqIAdBiAFqIAdBjAFqIAUQaiIIDSIgBygClAEiEiAWQQJ0akEEaiETIAcoAowBIQgLIAhBATYCCCAIIAY2AgQgCEGADDYCACAIIAk2AgwgByAIQRRqNgKMAQwBCyAHKAKIASAHKAKMASIIa0ETTARAIAdBmAFqIAdBlAFqIAdBkAFqIAdBiAFqIAdBjAFqIAUQaiIIDSEgBygClAEiEiAWQQJ0akEEaiETIAcoAowBIQgLIAhBAjYCCCAIIAY2AgQgCEGADDYCACAIIBQ2AgwgByAIQRRqNgKMAQsgC0EUaiEGDB0LIAcoAogBIAcoAowBIgZrIQggCygCBCEKAkAgCygCCARAIAhBE0wEQCAHQZgBaiAHQZQBaiAHQZABaiAHQYgBaiAHQYwBaiAFEGoiCA0hIAcoApQBIhIgFkECdGpBBGohEyAHKAKMASEGCyAGIAo2AgQgBkGEDjYCACAGIAk2AgwMAQsgCEETTARAIAdBmAFqIAdBlAFqIAdBkAFqIAdBiAFqIAdBjAFqIAUQaiIIDSAgBygClAEiEiAWQQJ0akEEaiETIAcoAowBIQYLIAYgCjYCBCAGQYQONgIACyAHIAZBFGo2AowBIAtBFGohBgwcCyALKAIEIQwgBygCjAEhBgNAIAYiCkEUayIGKAIAIghBjiBxRQ0AIAhBhA5GBEAgCkEQaygCACAMRw0BIAcgBjYChAEgBkEANgIAIAsoAggEQCAKQQhrKAIAIQkLIAtBFGohBgwdBSAGQQA2AgAMAQsACwALIAcoAowBKAIEIQYgDiABIAlBARB5IglFBEBBACEJDBoLQX8gBkEBayAGQX9GGyIKBEAgBygCiAEgBygCjAEiBmtBE0wEQCAHQZgBaiAHQZQBaiAHQZABaiAHQYgBaiAHQYwBaiAFEGoiCA0eIAcoApQBIhIgFkECdGpBBGohEyAHKAKMASEGCyAGIAs2AgggBiAKNgIEIAZBAzYCACAGIAk2AgwgByAGQRRqNgKMAQsgC0EUaiEGDBoLAkAgCygCBCIGRQ0AIA4gASAJIAYQeSIJDQBBACEJDBkLIAsoAggEQCAHKAKIASAHKAKMASIGa0ETTARAIAdBmAFqIAdBlAFqIAdBkAFqIAdBiAFqIAdBjAFqIAUQaiIIDR0gBygClAEiEiAWQQJ0akEEaiETIAcoAowBIQYLIAZBAzYCACALKAIIIQggBiAJNgIMIAYgC0EUajYCCCAGIAg2AgQgByAGQRRqNgKMASALIAsoAgxBFGxqIQYMGgsgC0EUaiEGDBkLAkAgCygCBCIGQQBOBEAgBkUNAQNAIAkgDigCABEBACAJaiIJIAJLDRogAiAJRgRAIAIhCSAGQQFGDQMMGwsgBkEBSiEIIAZBAWshBiAIDQALDAELIA4gASAJQQAgBmsQeSIJDQBBACEJDBgLIAtBFGohBgwYCyAHKAKMASILIQYDQCAGIgpBFGsiBigCACIIQZAKRwRAIAhBkAhHDQEgDEUEQCAKQQxrKAIAIQYgBygCiAEgC2tBFEgEQCAHQZgBaiAHQZQBaiAHQZABaiAHQYgBaiAHQYwBaiAFEGoiCA0dIAcoApQBIhIgFkECdGpBBGohEyAHKAKMASELCyALQZAKNgIAIAcgC0EUajYCjAEgGEEBayEYDBoLIAxBAWshDAwBBSAMQQFqIQwMAQsACwALIBhBlJoRKAIARg0VAkBB/L8SKAIAIgZFDQAgBSAFKAI0QQFqIgg2AjQgBiAITw0AQW0hCAwYCyALKAIEIQogBygCiAEgBygCjAEiBmtBE0wEQCAHQZgBaiAHQZQBaiAHQZABaiAHQYgBaiAHQYwBaiAFEGoiCA0ZIAcoApQBIhIgFkECdGpBBGohEyAHKAKMASEGCyAYQQFqIRggBiALQRRqNgIIIAZBkAg2AgAgByAGQRRqNgKMASAAKAIAIApBFGxqIQYMFgsgCygCBCEMIAcoAowBIg0hBgNAAkACQCAGIgpBFGsiBigCACIIQZAKRgRAQX8hCgwBCyAIQcAARw0CIApBEGsoAgAgDEcNAiAKQQxrKAIAIQYgBygCiAEgDWtBFEgEQCAHQZgBaiAHQZQBaiAHQZABaiAHQYgBaiAHQYwBaiAFEGoiCA0bIAcoApQBIhIgFkECdGpBBGohEyAHKAKMASENCyANIAZBAWoiBjYCCCANIAw2AgQgDUHAADYCACAHIA1BFGoiCDYCjAEgBiAAKAJAIgogDEEMbGoiDSgCBEcNASALQRRqIQYMGAsDQCAGQRRrIgYoAgAiCEGQCkYEQCAKQQFrIQoMAQsgCEGQCEcNACAKQQFqIgoNAAsMAQsLIA0oAgAgBkwEQCAHKAKIASAIa0ETTARAIAdBmAFqIAdBlAFqIAdBkAFqIAdBiAFqIAdBjAFqIAUQaiIIDRkgBygClAEiEiAWQQJ0akEEaiETIAAoAkAhCiAHKAKMASEICyAIQQM2AgAgCiAMQQxsaigCCCEGIAggCTYCDCAIIAY2AgggByAIQRRqNgKMASALQRRqIQYMFgsgCiAMQQxsaigCCCEGDBULIAsoAgQhDCAHKAKMASINIQYCfwNAAkACQCAGIgpBFGsiBigCACIIQZAKRgRAQX8hCgwBCyAIQcAARw0CIApBEGsoAgAgDEcNAiAKQQxrKAIAQQFqIgogACgCQCIIIAxBDGxqIgYoAgRIDQEgC0EUagwDCwNAIAZBFGsiBigCACIIQZAKRgRAIApBAWshCgwBCyAIQZAIRw0AIApBAWoiCg0ACwwBCwsgBigCACAKTARAIAcoAogBIA1rQRNMBEAgB0GYAWogB0GUAWogB0GQAWogB0GIAWogB0GMAWogBRBqIggNGSAHKAKUASISIBZBAnRqQQRqIRMgBygCjAEhDQsgDSALQRRqNgIIIA1BAzYCACANIAk2AgwgByANQRRqIg02AowBIAAoAkAgDEEMbGooAggMAQsgCCAMQQxsaigCCAshBiAHKAKIASANa0ETTARAIAdBmAFqIAdBlAFqIAdBkAFqIAdBiAFqIAdBjAFqIAUQaiIIDRcgBygClAEiEiAWQQJ0akEEaiETIAcoAowBIQ0LIA0gCjYCCCANIAw2AgQgDUHAADYCACAHIA1BFGo2AowBDBQLIAsoAgghDCALKAIEIQogBygCiAEgBygCjAEiBmtBE0wEQCAHQZgBaiAHQZQBaiAHQZABaiAHQYgBaiAHQYwBaiAFEGoiCA0WIAcoApQBIhIgFkECdGpBBGohEyAHKAKMASEGCyAGQQA2AgggBiAKNgIEIAZBwAA2AgAgByAGQRRqIgY2AowBIAAoAkAgCkEMbGooAgBFBEAgBygCiAEgBmtBE0wEQCAHQZgBaiAHQZQBaiAHQZABaiAHQYgBaiAHQYwBaiAFEGoiCA0XIAcoApQBIhIgFkECdGpBBGohEyAHKAKMASEGCyAGQQM2AgAgBiAJNgIMIAYgC0EUajYCCCAHIAZBFGo2AowBIAsgDEEUbGohBgwUCyALQRRqIQYMEwsgCygCCCEMIAsoAgQhCiAHKAKIASAHKAKMASIGa0ETTARAIAdBmAFqIAdBlAFqIAdBkAFqIAdBiAFqIAdBjAFqIAUQaiIIDRUgBygClAEiEiAWQQJ0akEEaiETIAcoAowBIQYLIAZBADYCCCAGIAo2AgQgBkHAADYCACAHIAZBFGoiBjYCjAEgACgCQCAKQQxsaigCAEUEQCAHKAKIASAGa0ETTARAIAdBmAFqIAdBlAFqIAdBkAFqIAdBiAFqIAdBjAFqIAUQaiIIDRYgBygClAEiEiAWQQJ0akEEaiETIAcoAowBIQYLIAZBAzYCACAGIAk2AgwgBiALIAxBFGxqNgIIIAcgBkEUajYCjAELIAtBFGohBgwSCwJAIAkgFE8NACALLQAIIAktAABHDQAgCygCBCEKIAcoAogBIAcoAowBIgZrQRNMBEAgB0GYAWogB0GUAWogB0GQAWogB0GIAWogB0GMAWogBRBqIggNFSAHKAKUASISIBZBAnRqQQRqIRMgBygCjAEhBgsgBkEDNgIAIAYgCTYCDCAGIAsgCkEUbGo2AgggByAGQRRqNgKMAQsgC0EUaiEGDBELIAsoAgQhBgJAIAkgFE8NACALLQAIIAktAABHDQAgBygCiAEgBygCjAEiCGtBE0wEQCAHQZgBaiAHQZQBaiAHQZABaiAHQYgBaiAHQYwBaiAFEGoiCA0UIAcoApQBIhIgFkECdGpBBGohEyAHKAKMASEICyAIQQM2AgAgCCAJNgIMIAggCyAGQRRsajYCCCAHIAhBFGo2AowBIAtBFGohBgwRCyALIAZBFGxqIQYMEAsDQCAHIAcoAowBIghBFGsiBjYCjAEgBigCACIGQRRxRQ0AIAZBjwpMBEAgBkEQRgRAIBIgCEEUayIGKAIEQQJ0aiAGKAIMNgIAIBMgBygCjAEiBigCBEECdGogBigCEDYCAAwCCyAGQZAIRw0BIBhBAWshGAwBCyAGQZAKRwRAIAZBsIACRwRAIAZBhA5HDQIgCEEQaygCACALKAIERw0CIAtBFGohBgwSCyASIAhBFGsiBigCBEECdGogBigCDDYCACATIAcoAowBIgYoAgRBAnRqIAYoAhA2AgAMAQUgGEEBaiEYDAELAAsACyAHIAcoAowBQRRrNgKMASALQRRqIQYMDgsgCygCBCEKIAcoAogBIAcoAowBIgZrQRNMBEAgB0GYAWogB0GUAWogB0GQAWogB0GIAWogB0GMAWogBRBqIggNECAHKAKUASISIBZBAnRqQQRqIRMgBygCjAEhBgsgBkEBNgIAIAYgCTYCDCAGIAsgCkEUbGo2AgggByAGQRRqNgKMASALQRRqIQYMDQsgCygCBCEKIAcoAogBIAcoAowBIgZrQRNMBEAgB0GYAWogB0GUAWogB0GQAWogB0GIAWogB0GMAWogBRBqIggNDyAHKAKUASISIBZBAnRqQQRqIRMgBygCjAEhBgsgBkEDNgIAIAYgCTYCDCAGIAsgCkEUbGo2AgggByAGQRRqNgKMASALQRRqIQYMDAsgCyALKAIEQRRsaiEGDAsLIAsoAgQhDEEAIQ0gBygCjAEiECEGA0ACQCAGIghBFGsiBigCACIKQYDgAEcEQCAKQYCgAUcNAiAIQRBrKAIAIAxGIQoMAQsgCEEQaygCACAMRw0BQX8hCiANDQACQCAIQQxrKAIAIAlHDQAgCygCCCIXRQ0FIAYgEE8NBUEAIREgBygCkAEhFSAQIQoDQAJAAkAgCiIGQRRrIgooAgAiDUGA4ABHBEAgDUGAoAFGDQEgDUGwgAJHDQIgEQ0CQQAhESAGQRBrKAIAIg9BH0oNAkEBIA90IhogF3FFDQIgCCENIAggCkkEQANAAkAgDSgCAEEQRw0AIA0oAgQgD0cNACANKAIQIg9Bf0YNBwJAAkAgFSAPQRRsaigCCCIcIAZBDGsoAgAiD0cEQCAVIAZBCGsoAgBBFGxqKAIIIRkMAQsgFSAGQQhrKAIAQRRsaigCCCIZIBUgDSgCDEEUbGooAghGDQELIA8gGUcNCCAVIA0oAgxBFGxqKAIIIBxHDQgLIBcgGkF/c3EiF0UNDAwFCyANQRRqIg0gCkkNAAsLIBdFDQkMAgsgESAGQRBrKAIAIAxGaiERDAELIBEgBkEQaygCACAMRmshEQsgBiAISw0ACwwFCyAHKAKIASAQa0ETTARAIAdBmAFqIAdBlAFqIAdBkAFqIAdBiAFqIAdBjAFqIAUQaiIIDQ8gBygClAEiEiAWQQJ0akEEaiETIAcoAowBIRALIAtBFGohBiAQIAw2AgQgEEGAoAE2AgAgByAQQRRqNgKMAQwMCyAKIA1qIQ0MAAsACyALKAIEIQogBygCjAEiDCEGA0AgBiIIQRRrIgYoAgBBgOAARw0AIAhBEGsoAgAgCkcNAAsCQCAIQQxrKAIAIAlHDQAgBiAMTw0CIAsoAgghECAHKAKQASEXA0ACQCAMIg1BFGsiDCgCAEGwgAJHDQAgDUEQaygCACIRQR9KDQBBASARdCIPIBBxRQ0AIAYhCgJAIAggDU8NAANAAkAgCigCAEEQRw0AIAooAgQgEUcNACAKKAIQIhFBf0YNBQJAAkAgFyARQRRsaigCCCIVIA1BDGsoAgAiEUcEQCAXIA1BCGsoAgBBFGxqKAIIIRoMAQsgFyANQQhrKAIAQRRsaigCCCIaIBcgCigCDEEUbGooAghGDQELIBEgGkcNBiAXIAooAgxBFGxqKAIIIBVHDQYLIBAgD0F/c3EhEAwCCyAKQRRqIgogDEkNAAsLIBBFDQQLIAggDUkNAAsMAgsgC0EUaiEGDAkLIAsoAgQhCiAHKAKMASEGA0AgBiIIQRRrIgYoAgBBgOAARw0AIAhBEGsoAgAgCkcNAAsgC0EUaiEGIAhBDGsoAgAgCUcNCAsgC0EoaiEGDAcLIAsoAgQhCiAHKAKIASAHKAKMASIGa0ETTARAIAdBmAFqIAdBlAFqIAdBkAFqIAdBiAFqIAdBjAFqIAUQaiIIDQkgBygClAEiEiAWQQJ0akEEaiETIAcoAowBIQYLIAYgCTYCCCAGIAo2AgQgBkGA4AA2AgAgByAGQRRqNgKMASALQRRqIQYMBgsgC0EEaiEKIAsoAggiDEEBRwRAIAooAgAhCgsgBygCjAEiCEEUayIGIAcoApABIhFJDQQgCygCDCEPQQAhDQNAAkAgCCEQAkAgBiIIKAIAIgZBkApHBEAgBkGQCEYEQCANQQFrIQ0MAgsgDSAPRw0BIAZBsIACRw0BQQAhBiAPIQ0gDEEATA0BIBBBEGsoAgAhDQNAIAogBkECdGooAgAgDUYNAyAGQQFqIgYgDEcNAAsgDyENDAELIA1BAWohDQsgCEEUayIGIBFPDQEMBgsLIAtBFGohBgwFCyALQQRqIQwCQAJAIAsoAggiCkEBRwRAIApBAEwNASAMKAIAIQwLQQAhBgNAIBMgDCAGQQJ0aigCAEECdCIIaigCAEF/RwRAIAggEmooAgBBf0cNAwsgBkEBaiIGIApHDQALDAULQQAhBgsgBiAKRg0DIAtBFGohBgwECyAJIQgLIA0gEUYEQCAIIQkMAgsgC0EUaiEGIAghCQwCCyAQIBFGDQAgC0EUaiEGDAELAkACQAJAAkAgJg4CAQACCyAHIAcoAowBIgpBFGsiBjYCjAEgBigCACIIQQFxDQIDQCAHIAhBEEYEfyASIApBFGsiBigCBEECdGogBigCDDYCACATIAcoAowBIgYoAgRBAnRqIAYoAhA2AgAgBygCjAEFIAYLIgpBFGsiBjYCjAEgBigCACIIQQFxRQ0ACwwCCyAHKAKMASEGA0AgBkEUayIGLQAAQQFxRQ0ACyAHIAY2AowBDAELIAcgBygCjAEiCkEUayIGNgKMASAGKAIAIghBAXENAANAAkAgCEEQcUUNAAJAIAhBjwhMBEAgCEEQRg0BIAhB8ABHDQIgB0ECNgIIIAcgCkEUayIIKAIENgIMIAgoAgghCiAHIB82AiwgByAJNgIoIAcgFDYCJCAHIAQ2AiAgByACNgIcIAcgATYCGCAHIAA2AhQgByAKNgIQIAcgEzYCQCAHIBI2AjwgByAGNgI4IAcgBygCkAE2AjQgByAFNgIwIAdBCGogBSgCKCgCDCAIKAIMEQAAIgZBAkkNAkFiIAYgBkEAShshCAwGCyAIQZAIRwRAIAhBkApHBEAgCEGwgAJHDQMgEiAKQRRrIgYoAgRBAnRqIAYoAgw2AgAgEyAHKAKMASIGKAIEQQJ0aiAGKAIQNgIADAMLIBhBAWohGAwCCyAYQQFrIRgMAQsgEiAKQRRrIgYoAgRBAnRqIAYoAgw2AgAgEyAHKAKMASIGKAIEQQJ0aiAGKAIQNgIACyAHIAcoAowBIgpBFGsiBjYCjAEgBigCACIIQQFxRQ0ACwsgBigCDCEJIAYoAgghBiAfQQFqIh8gHk0NAAtBb0FuIB8gBSgCHEsbIQgLIAUoAiAEQCAFIAUoAiQgH2o2AiQLIAUgBygCiAEgBygCkAFrIgZBFG02AgQgBygCmAEEQCAFIAUoAhBBAnQgBmoiChDLASIGNgIAIAZFBEBBeyEIDAILIAYgBygClAEgChCmARoMAQsgBSAHKAKUATYCAAsgB0HgAWokACAIC/kDAQd/QQEhBgJAIAEoAgAiByACTw0AA0ACQCAHKAIAIgVBsIACRwRAIAVBEEcNASAHKAIEIgVBH0oNASAEKAIsIAV2QQFxRQ0BQXshBkEYEMsBIghFDQMgCEIANwIMIAhBADYCFCAIQn83AgQgCCAFNgIAIAggBygCCCADazYCBCAAKAIQIgUgACgCDCIKTgRAIAACfyAAKAIUIgVFBEBBCCEJQSAQywEMAQsgCkEBdCEJIAUgCkEDdBDNAQsiBTYCFCAFRQ0EAkAgCSAAKAIMIgVMDQAgCSAFQX9zaiELQQAhBiAJIAVrQQNxIgoEQANAIAAoAhQgBUECdGpBADYCACAFQQFqIQUgBkEBaiIGIApHDQALCyALQQNJDQADQCAFQQJ0IgYgACgCFGpBADYCACAGIAAoAhRqQQA2AgQgBiAAKAIUakEANgIIIAYgACgCFGpBADYCDCAFQQRqIgUgCUcNAAsLIAAgCTYCDCAAKAIQIQULIAAoAhQgBUECdGogCDYCACAAIAVBAWo2AhAgASAHQRRqNgIAIAggASACIAMgBBBpIgYNAyAIIAEoAgAiBygCCCADazYCCAwBCyAHKAIEIAAoAgBHDQAgACAHKAIIIANrNgIIIAEgBzYCAEEAIQYMAgsgB0EUaiIHIAJJDQALQQEPCyAGC4oDAQl/IAUoAhBBAnQiBiADKAIAIAIoAgAiDWsiDGohCCAMQRRtIglBKGwgBmohBiAJQQF0IQogBCgCACEOIAEoAgAhBwJ/AkACQAJAIAAoAgAEQCAGEMsBIgYNAiAFIAk2AgQgACgCAEUNASAFIAgQywEiAjYCAEF7IAJFDQQaIAIgByAIEKYBGkF7DwsCQCAFKAIYIgtFDQAgCiALTQ0AIAshCiAJIAtHDQAgBSAJNgIEIAAoAgAEQCAFIAgQywEiAjYCACACRQRAQXsPCyACIAcgCBCmARpBcQ8LIAUgBzYCAEFxDwsgByAGEM0BIgYNAiAFIAk2AgQgACgCAEUNACAFIAUoAhBBAnQgDGoiABDLASICNgIAQXsgAkUNAxogAiAHIAAQpgEaQXsPCyAFIAc2AgBBew8LIAYgByAIEKYBGiAAQQA2AgALIAEgBjYCACACIAYgBSgCEEECdGoiBTYCACAEIAUgDiANa0EUbUEUbGo2AgAgAyACKAIAIApBFGxqNgIAQQALC+4HAQ5/IAMhBwJAAkAgACgC/AIiCUUNACACIANrIAlNDQEgAyAJaiEIIAAoAkQoAghBAUYEQCAIIQcMAQsgCUEATA0AA0AgByAAKAJEKAIAEQEAIAdqIgcgCEkNAAsLIAIgBGshEiAAQfgAaiETA0ACQAJAAkACQAJAAkAgACgCWEEBaw4EAAECAwULIAQgACgCcCIMIAAoAnQiCmsgAmpBAWoiCCAEIAhJGyINIAdNDQYgACgCRCEOA0AgByEJIActAAAgDCIILQAARgRAA0AgCiAIQQFqIghLBEAgCS0AASEPIAlBAWohCSAPIAgtAABGDQELCyAIIApGDQYLIAcgDigCABEBACAHaiIHIA1JDQALDAYLIAAoAvgCIQoCfyASIAAoAnQiCSAAKAJwIg9rIghIBEAgAiAIIAIgB2tMDQEaQQAPCyAEIAhqCyEMIAcgCGpBAWsiByAMTw0FIA8gCWtBAWohESAJQQFrIg0tAAAhDgNAIA0hCCAHIQkgBy0AACAOQf8BcUYEQANAIAggD0YNBSAJQQFrIgktAAAgCEEBayIILQAARg0ACwsgAiAHayAKTA0GIAAgByAKai0AAGotAHgiCCAMIAdrTg0GIAcgCGohBwwACwALIAIgACgCdEEBayIMIAAoAnAiD2siDmsgBCAOIBJKGyINIAdNDQQgACgC+AIhESAAKAJEIRQDQCAHIA5qIgohCSAKLQAAIAwiCC0AAEYEQANAIAggD0YNBSAJQQFrIgktAAAgCEEBayIILQAARg0ACwsgCiARaiIIIAJPDQUgByAAIAgtAABqLQB4aiIIIA1PDQUgFCAHIAgQdyIHIA1JDQALDAQLIAQgB00NAyAAKAJEIQgDQCATIActAABqLQAADQIgByAIKAIAEQEAIAdqIgcgBEkNAAsMAwsgByARaiEHCyAHRQ0BIAQgB00NAQJAIAAoAvwCIAcgA2tLDQACQCAAKAJsIghBgARHBEAgCEEgRw0BIAEgB0YEQCABIQcMAgsgACgCRCAQIAEgEBsgBxB4IAIgACgCRCgCEBEAAEUNAgwBCyACIAdGBEAgAiEHDAELIAcgAiAAKAJEKAIQEQAARQ0BCwJAAkACQAJAAkAgACgCgAMiCEEBag4CAAECCyAHIAFrIQkMAgsgBSAHNgIAIAchAQwCCyAIIAcgAWsiCUsEQCAFIAE2AgAMAQsgBSAHIAhrIgg2AgAgAyAITw0AIAUgACgCRCADIAgQdzYCAAsgCSAAKAL8AiIISQ0AIAcgCGshAQsgBiABNgIAQQEhCwwCCyAHIRAgByAAKAJEKAIAEQEAIAdqIQcMAAsACyALC4ARAQZ/IwBBQGoiCyQAIAAoAoQDIQkgCEEANgIYAkACQCAJRQ0AIAkoAgwiCkUNAAJAIAgoAiAiDCAKTgRAIAgoAhwhCgwBCyAKQQZ0IQoCfyAIKAIcIgwEQCAMIAoQzQEMAQsgChDLAQsiCkUEQEF7IQoMAwsgCCAKNgIcIAggCSgCDCIMNgIgCyAKQQAgDEEGdBCoARoLQWIhCiAHQYAQcQ0AAkAgBkUNACAGIAAoAhxBAWoQZyIKDQEgBigCBEEASgRAIAYoAgghDCAGKAIMIQ1BACEJA0AgDSAJQQJ0IgpqQX82AgAgCiAMakF/NgIAIAlBAWoiCSAGKAIESA0ACwsgBigCECIJRQ0AIAkQZiAGQQA2AhALQX8hCiACIANJDQAgASADSw0AAkAgB0GAIHFFDQAgASACIAAoAkQoAkgRAAANAEHwfCEKDAELAkACQAJAAkACQAJAAkACQAJAIAEgAk8NACAAKAJgIglFDQAgCUHAAHENAyAJQRBxBEAgAyAETw0CIAEgA0cNCiADQQFqIQQgAyEJDAULIAIhDCAJQYABcQ0CIAlBgAJxBEAgACgCRCABIAJBARB5IgkgAiAJIAIgACgCRCgCEBEAACINGyEMIAEgCUkgAyAJTXENAyANRQ0DIAMhCQwFCyADIARPBEAgAyEJDAULIAlBgIACcQ0DIAMhCQwECyADIQkgASACRw0DIAAoAlwNCCALQQA2AgggACgCSCEKIAtBnA0iATYCHCALIAY2AhQgCyAHIApyNgIQIAsgCCgCADYCICALIAgoAgQ2AiQgCCgCCCEJIAtBADYCPCALQQA2AiwgCyAJNgIoIAsgCDYCMCALQX82AjQgCyAAKAIcQQF0QQJqNgIYIABBnA1BnA1BnA1BnA0gC0EIahBoIgpBf0YNBCAKQQBIDQdBnA0hCQwGCyABIARJIQwgASEEIAEhCSAMDQcMAgsgAiABayIOIAAoAmQiDUkNBiAAKAJoIQkgAyAESQRAAkAgCSAMIANrTwRAIAMhCQwBCyAMIAlrIgkgAk8NACAAKAJEIAEgCRB3IQkgACgCZCENCyANIAIgBGtBAWpLBEAgDkEBaiANSQ0IIAIgDWtBAWohBAsgBCAJTw0CDAcLIAwgCWsgBCAMIARrIAlLGyIEIA0gAiADIglrSwRAIAEgAiANayAAKAJEKAI4EQAAIQkLIAlNDQEMBgsgAyADIARJaiEEIAMhCQsgC0EANgIIIAAoAkghCiALIAM2AhwgCyAGNgIUIAsgByAKcjYCECALIAgoAgA2AiAgCyAIKAIENgIkIAgoAgghCiALQQA2AjwgC0EANgIsIAsgCjYCKCALQX82AjQgCyAINgIwIAsgACgCHEEBdEECajYCGCAEIAlLBEACQCAAKAJYRQ0AAkACQAJAAkACQCAAKAKAAyIKQQFqDgIDAAELIAQhDCAAKAJcIAIgCWtMDQEMBgsgACgCXCACIAlrSg0FIAIgBCAKaiACIARrIApJGyEMIApBf0YNAgsDQCAAIAEgAiAJIAwgC0EEaiALEGtFDQUgCygCBCIKIAkgCSAKSRsiCSALKAIAIghNBEADQCAAIAEgAiAFIAkgC0EIahBoIgpBf0cEQCAKQQBIDQsMCgsgCSAAKAJEKAIAEQEAIAlqIgkgCE0NAAsLIAQgCUsNAAsMBAsgAiEMIAAoAlwgAiAJa0oNAwsgACABIAIgCSAMIAtBBGogCxBrRQ0CIAAoAmBBhoABcUGAgAFHDQADQCAAIAEgAiAFIAkgC0EIahBoIgpBf0cNBCAJIAAoAkQoAgARAQAgCWohCgJAIAkgAiAAKAJEKAIQEQAABEAgCiEJDAELIAoiCSAETw0AA0AgCiAAKAJEKAIAEQEAIApqIQkgCiACIAAoAkQoAhARAAANASAJIQogBCAJSw0ACwsgBCAJSw0ACwwCCwNAIAAgASACIAUgCSALQQhqEGgiCkF/RwRAIApBAEgNBgwFCyAJIAAoAkQoAgARAQAgCWoiCSAESQ0ACyAEIAlHDQEgACABIAIgBSAEIAtBCGoQaCIKQX9GDQEgBCEJIApBAEgNBAwDCyABIARLDQAgAiADSwRAIAMgACgCRCgCABEBACADaiEDCyAAKAJYBEAgAiAEayIKIAAoAlxIDQEgAiEMIAIgBEsEQCABIAQgACgCRCgCOBEAACEMCyAEIAAoAvwCIghqIAIgCCAKSRshDSAAKAKAA0F/RwRAA0AgACABIAICfyAAKAKAAyIKIAIgCWtJBEAgCSAKagwBCyAAKAJEIAEgAhB4CyANIAwgC0EEaiALEG5BAEwNAyALKAIAIgogCSAJIApLGyIJQQBHIQoCQCAJRQ0AIAkgCygCBCIISQ0AA0AgACABIAIgAyAJIAtBCGoQaCIKQX9HBEAgCkEATg0IDAkLIAAoAkQgASAJEHgiCUEARyEKIAlFDQEgCCAJTQ0ACwsgCkUNAyAEIAlNDQAMAwsACyAAIAEgAiAAKAJEIAEgAhB4IA0gDCALQQRqIAsQbkEATA0BCwNAIAAgASACIAMgCSALQQhqEGgiCkF/RwRAIApBAEgNBQwECyAAKAJEIAEgCRB4IglFDQEgBCAJTQ0ACwtBfyEKIAAtAEhBEHFFDQIgCygCNEEASA0CIAsoAjghCQwBCyAKQQBIDQELIAsoAggiAARAIAAQzAELIAkgAWshCgwBCyALKAIIIgkEQCAJEMwBCyAGRQ0AIAAoAkhBIHFFDQBBACEAIAYoAgRBAEoEQCAGKAIIIQEgBigCDCECA0AgAiAAQQJ0IgNqQX82AgAgASADakF/NgIAIABBAWoiACAGKAIESA0ACwsgBigCECIABEAgABBmIAZBADYCEAsLIAtBQGskACAKC6YBAQJ/IwBBMGsiByQAIAdBADYCFCAHQQA2AiggB0IANwMgIAdBAEH0vxJqKAIANgIIIAcgCEGQmhFqKAIANgIMIAcgCEH4vxJqKAIANgIQIAcgCEGAwBJqKAIANgIYIAcgCEGEwBJqKAIANgIcIAAgASACIAMgBCAEIAIgAyAESRsgBSAGIAdBCGoQbCEIIAcoAiQiBARAIAQQzAELIAdBMGokACAIC+cDAQh/IABB+ABqIQ4CQAJAA0ACQAJAAkACQCAAKAJYQQFrDgQAAAABAgsgACgCRCEMIAMgAiAAKAJwIg8gACgCdCINa2oiCE8EQCAFIAggDCgCOBEAACEDCyADRQ0FIAMgBEkNBQNAIAMhCSADLQAAIA8iCC0AAEYEQANAIA0gCEEBaiIISwRAIAktAAEhCyAJQQFqIQkgCyAILQAARg0BCwsgCCANRg0DCyAMIAUgAxB4IgNFDQYgAyAETw0ACwwFCyADRQ0EIAMgBEkNBCAAKAJEIQgDQCAOIAMtAABqLQAADQIgCCAFIAMQeCIDRQ0FIAMgBE8NAAsMBAsgAw0AQQAPCyADIQggACgCbCIJQYAERwRAIAlBIEcNAiABIAhGBEAgASEIDAMLIAAoAkQgASAIEHgiA0UNAiADIAIgACgCRCgCEBEAAEUNAQwCCyACIAhGBEAgAiEIDAILIAggAiAAKAJEKAIQEQAADQEgACgCRCAFIAgQeCIDDQALQQAPC0EBIQogACgCgAMiCUF/Rg0AIAYgASAIIAlrIAggAWsiCyAJSRs2AgACQCAAKAL8AiIJRQRAIAghAQwBCyAJIAtLDQAgCCAJayEBCyAHIAE2AgAgByAAKAJEIAUgARB3NgIACyAKCwQAQQELBABBfwtcAEFiIQECQCAAKAIMIAAoAggQDiIARQ0AIAAoAgRBAUcNAEGafiEBIAAoAjwiAEEATg0AQZp+IAAgAEHfAWoiAEEITQR/IABBAnRBtDJqKAIABUEACxshAQsgAQtzAQF/IAAoAigoAigiAigCHCAAKAIIQQZ0akFAaiIBKAIAIAIoAhhHBEAgAUIANwIAIAFCADcCOCABQgA3AjAgAUIANwIoIAFCADcCICABQgA3AhggAUIANwIQIAFCADcCCCABIAIoAhg2AgALIAAgARBzC/ACAgd/AX4gACgCDCAAKAIIEA4iAUUEQEFiDwsgASgCBEEBRwRAQWIPC0GYfiECAkAgASgCPCIDQTxrIgFBHEsNAEEBIAF0QYWAgIABcUUNACAAKAIIIgFBAEwEQEFiDwsgACgCKCgCKCIFKAIcIgYgAUEBayIHQQZ0aiICQQhqIggpAgAiCadBACACKAIEGyEBIAJBBGohAiAJQoCAgIBwgyEJQQIhBAJAIAAoAgBBAkYEQCADQdgARwRAIANBPEcNAiABQQFqIQEMAgsgAUEBayEBDAELIAEgA0E8R2ohAUEBIQQLIAJBATYCACAIIAkgAa2ENwIAIAYgB0EGdGogBSgCGDYCAEFiIQIgACgCCCIBQQBMDQAgACgCKCgCKCIAKAIcIAFBBnRqQUBqIgEgBEEMbGoiAkEEaiIDKAIAIQQgA0EBNgIAIAJBCGoiAiACKQIAQgF8QgEgBBs+AgAgASAAKAIYNgIAQQAhAgsgAguUBQIEfwF+IAAoAigoAigiBCgCHCAAKAIIIgJBBnRqQUBqIgEoAgAgBCgCGEcEQCABQgA3AgAgAUIANwI4IAFCADcCMCABQgA3AiggAUIANwIgIAFCADcCGCABQgA3AhAgAUIANwIIIAEgBCgCGDYCACAAKAIIIQILQWIhBAJAIAJBAEwNACAAKAIoKAIoIgMoAhwgAkEBa0EGdGoiASgCACADKAIYRwRAIAFCADcCACABQgA3AjggAUIANwIwIAFCADcCKCABQgA3AiAgAUIANwIYIAFCADcCECABQgA3AgggASADKAIYNgIAIAAoAgghAgsgASgCBCEDIAEpAgghBiAAKAIMIAIQDiIBRQ0AIAEoAgRBAUcNACABKAI8IQIgASgCLEEQRgRAIAJBAEwNASAAKAIoKAIoIgUoAhwgAkEBa0EGdGoiASgCACAFKAIYRwRAIAFCADcCACABQgA3AjggAUIANwIwIAFCADcCKCABQgA3AiAgAUIANwIYIAFCADcCECABQgA3AgggASAFKAIYNgIACyABKAIIQQAgASgCBBshAgsgACgCDCAAKAIIEA4iAUUNACABKAIEQQFHDQBBmH4hBCABKAJEIgFBPGsiBUEcSw0AQQEgBXRBhYCAgAFxRQ0AIAanQQAgAxshAwJAIAAoAgBBAkYEQCABQdgARwRAIAFBPEcNAkEBIQQgAiADTA0DIANBAWohAwwCCyADQQFrIQMMAQsgAUE8Rg0AQQEhBCACIANMDQEgA0EBaiEDC0FiIQQgACgCCCIBQQBMDQAgAUEGdCAAKAIoKAIoIgEoAhxqQUBqIgBBATYCBCAAIAOtIAZCgICAgHCDhDcCCCAAIAEoAhg2AgBBACEECyAEC4kHAQd/QWIhAwJAIAAoAgwiByAAKAIIEA4iAUUNACABKAIEQQFHDQAgASgCPCEEIAEoAixBEEYEQCAEQQBMDQEgACgCKCgCKCICKAIcIARBAWtBBnRqIgEoAgAgAigCGEcEQCABQgA3AgAgAUIANwI4IAFCADcCMCABQgA3AiggAUIANwIgIAFCADcCGCABQgA3AhAgAUIANwIIIAEgAigCGDYCAAsgASgCCEEAIAEoAgQbIQQLIAAoAgwgACgCCBAOIgFFDQAgASgCBEEBRw0AIAEoAkwhAiABKAI0QRBGBEAgAkEATA0BIAAoAigoAigiBSgCHCACQQFrQQZ0aiIBKAIAIAUoAhhHBEAgAUIANwIAIAFCADcCOCABQgA3AjAgAUIANwIoIAFCADcCICABQgA3AhggAUIANwIQIAFCADcCCCABIAUoAhg2AgALIAEoAghBACABKAIEGyECCyAAKAIIIgFBAEwNACAAKAIoKAIoIgUoAhwiBiABQQFrIghBBnRqIgEoAgAgBSgCGEcEQCABQgA3AgAgAUIANwI4IAFCADcCMCABQgA3AiggAUIANwIgIAFCADcCGCABQgA3AhAgAUIANwIIIAEgBSgCGDYCAAsCQCABKAIERQRAIAAoAgwgACgCCBAOIgFFDQIgASgCBEEBRw0CIAEoAkQiAyABKAJIIgUgBygCRCgCFBEAACEIQQAhBiAFIAMgBygCRCgCABEBACADaiIBSwRAIAEgBSAHKAJEKAIUEQAAIQZBmH4hAyABIAcoAkQoAgARAQAgAWogBUcNAwtBmH4hAwJ/AkACQAJAAkAgCEEhaw4eAQcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHAgADBwtBACAGQT1GDQMaDAYLQQEgBkE9Rg0CGgwFC0EEIAZBPUYNARogBg0EQQIMAQtBBSAGQT1GDQAaIAYNA0EDCyEBQWIhAyAAKAIIIgdBAEwNAiAAKAIoKAIoIgMoAhwgB0EGdGpBQGoiAEEBNgIEIAAgBTYCDCAAIAE2AgggACADKAIYNgIADAELIAYgCEEGdGooAgghAQtBACEAAkACQAJAAkACQAJAAkAgAQ4GAAECAwQFBgsgAiAERiEADAULIAIgBEchAAwECyACIARKIQAMAwsgAiAESCEADAILIAIgBE4hAAwBCyACIARMIQALIABBAXMhAwsgAws/AQF/AkAgACgCDCIAIAIgAWsiA2oQywEiAkUNACACIAEgAxCmASEBIABBAEwNACABIANqQQAgABCoARoLIAILJgAgAiABIAIgACgCOBEAACIBSwR/IAEgACgCABEBACABagUgAQsLHgEBfyABIAJJBH8gASACQQFrIAAoAjgRAAAFIAMLCzsAAkAgAkUNAANAIANBAEwEQCACDwsgASACTw0BIANBAWshAyABIAJBAWsgACgCOBEAACICDQALC0EAC2gBBH8gASECA0ACQCACLQAADQAgACgCDCIDQQFHBEAgAiEEIANBAkgNAQNAIAQtAAENAiAEQQFqIQQgA0ECSiEFIANBAWshAyAFDQALCyACIAFrDwsgAiAAKAIAEQEAIAJqIQIMAAsAC3UBBH8jAEEQayIAJAACQANAIAAgBEEDdEHQJWoiAygCBCIFNgIMIAMoAgAiBiAAQQxqQQEgAiABEQMAIgMNASAAIAY2AgwgBSAAQQxqQQEgAiABEQMAIgMNASAEQQFqIgRBGkcNAAtBACEDCyAAQRBqJAAgAwtOAEEgIQACfyABLQAAIgJBwQBrQf8BcUEaTwRAQWAhAEEAIAJB4QBrQf8BcUEZSw0BGgsgA0KBgICAEDcCACADIAAgAS0AAGo2AghBAQsLBABBfgscAAJ/IAAgAUkEQEEBIAAtAABBCkYNARoLQQALCyUAIAMgASgCAC0AAEHQH2otAAA6AAAgASABKAIAQQFqNgIAQQELBABBAQsHACAALQAACw4AQQFB8HwgAEGAAkkbCwsAIAEgADoAAEEBCwQAIAELzgEBBn8gASACSQRAIAEhAwNAIAVBAWohBSADIAAoAgARAQAgA2oiAyACSQ0ACwtBAEHAmhFqIQMgBEHHCWohBANAAkAgBSADIgYuAQgiB0cNACAFIQggASEDAkAgB0EATA0AA0AgAiADSwRAIAMgAiAAKAIUEQAAIAQtAABHDQMgBEEBaiEEIAMgACgCABEBACADaiEDIAhBAUshByAIQQFrIQggBw0BDAILCyAELQAADQELIAYoAgQPCyAGQQxqIQMgBigCDCIEDQALQaF+C2gBAX8CQCAEQQBKBEADQCABIAJPBEAgAy0AAA8LIAEgAiAAKAIUEQAAIQUgAy0AACAFayIFDQIgA0EBaiEDIAEgACgCABEBACABaiEBIARBAUshBSAEQQFrIQQgBQ0ACwtBACEFCyAFCy4BAX8gASACIAAoAhQRAAAiAEH/AE0EfyAAQQF0QdAhai8BAEEMdkEBcQUgAwsLPgEDfwJAIAJBAEwNAANAIAAgA0ECdCIFaigCACABIAVqKAIARgRAIAIgA0EBaiIDRw0BDAILC0F/IQQLIAQLJwEBfyAAIAFBA20iAkECdGooAgBBECABIAJBA2xrQQN0a3ZB/wFxC7YIAQF/Qc0JIQECQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB9ANqDvQDTU5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTkxOTktKMzZOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTklIR0ZFRENCQUA/Pj08Ozo5ODc1NE4yMTAvLi0sKyopKE5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk4nJiUkIyIhIB8eHRwbGhkYThcWFRQTEhFOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk4QTk5OTk5ODw4NTgcGBQQDDAsKCU5OTk4IAk4BAE9OC0GzDA8LQbMNDwtBjQ4PC0GEDw8LQfAPDwtByRAPC0G+EQ8LQf8RDwtBwBIPC0HnEg8LQZYTDwtBuhMPC0HkEw8LQf4TDwtBvBQPC0GEFQ8LQZcVDwtBrhUPC0HNFQ8LQewVDwtBnhYPC0HyFg8LQYoXDwtBoBcPC0G5Fw8LQdUXDwtB9BcPC0GYGA8LQbsYDwtB7BgPC0GgJw8LQcUnDwtB3CcPC0H4Jw8LQZ8oDwtBtCgPC0HLKA8LQeAoDwtB+ygPC0GaKQ8LQb0pDwtBzCkPC0HsKQ8LQZgqDwtBsioPC0HlKg8LQZIrDwtBsisPC0HJKw8LQeUrDwtBliwPC0GoLA8LQcAsDwtB2SwPC0HsLA8LQYUtDwtBmS0PC0GxLQ8LQdEtDwtB7y0PC0GOLg8LQaouDwtBzi4PC0HlLg8LQZEvDwtBti8PC0HNLw8LQeovDwtBkTAPC0GpMA8LQb4wDwtB1TAPC0HqMA8LQYMxDwtBlzEPC0G6MQ8LQdkxDwtB8jEPC0GNMiEBCyABC8UJAQV/IwBBIGsiByQAIAcgBTYCFCAAQYACIAQgBRC8ASADIAJrQQJ0akEEakGAAkgEQCAAEK0BIABqQbrAvAE2AABBlL0SIAAQeiAAaiEAIAIgA0kEQCAHQRlqIQoDQAJAIAIgASgCABEBAEEBRwRAIAIgASgCABEBACEFAkAgASgCDEEBRwRAIAVBAEoNAQwDCyAFQQBMDQIgBUEBayEIQQAhBiAFQQdxIgQEQANAIAAgAi0AADoAACAAQQFqIQAgAkEBaiECIAVBAWshBSAGQQFqIgYgBEcNAAsLIAhBB0kNAgNAIAAgAi0AADoAACAAIAItAAE6AAEgACACLQACOgACIAAgAi0AAzoAAyAAIAItAAQ6AAQgACACLQAFOgAFIAAgAi0ABjoABiAAIAItAAc6AAcgAEEIaiEAIAJBCGohAiAFQQlrIQYgBUEIayEFIAZBfkkNAAsMAgsDQCAFIQggByACLQAANgIQIAdBGmpBBUGrMiAHQRBqEKkBAkBBlL0SIAdBGmoQeiIJQQBMDQAgB0EaaiEFIAlBB3EiBARAQQAhBgNAIAAgBS0AADoAACAAQQFqIQAgBUEBaiEFIAZBAWoiBiAERw0ACwsgCUEBa0EHSQ0AIAkgCmohBANAIAAgBS0AADoAACAAIAUtAAE6AAEgACAFLQACOgACIAAgBS0AAzoAAyAAIAUtAAQ6AAQgACAFLQAFOgAFIAAgBS0ABjoABiAAIAUtAAc6AAcgAEEIaiEAIAVBB2ohBiAFQQhqIQUgBCAGRw0ACwsgAkEBaiECIAhBAWshBSAIQQJODQALDAELAn8gAi0AACIFQS9HBEAgBUHcAEYEQCAAQdwAOgAAIABBAWohACACQQFqIgIgASgCABEBACIFQQBMDQMgBUEBayEIQQAhBiAFQQdxIgQEQANAIAAgAi0AADoAACAAQQFqIQAgAkEBaiECIAVBAWshBSAGQQFqIgYgBEcNAAsLIAhBB0kNAwNAIAAgAi0AADoAACAAIAItAAE6AAEgACACLQACOgACIAAgAi0AAzoAAyAAIAItAAQ6AAQgACACLQAFOgAFIAAgAi0ABjoABiAAIAItAAc6AAcgAEEIaiEAIAJBCGohAiAFQQlrIQYgBUEIayEFIAZBfkkNAAsMAwtBASEGIAAgBUEHIAEoAjARAAANARogACACLQAAQQkgASgCMBEAAA0BGiAHIAItAAA2AgAgB0EaakEFQasyIAcQqQEgAkEBaiECQZS9EiAHQRpqEHoiCEEATA0CIAhBAWshCSAHQRpqIQUgCEEHcSIEBEBBACEGA0AgACAFLQAAOgAAIABBAWohACAFQQFqIQUgBkEBaiIGIARHDQALCyAJQQdJDQIgCCAKaiEEA0AgACAFLQAAOgAAIAAgBS0AAToAASAAIAUtAAI6AAIgACAFLQADOgADIAAgBS0ABDoABCAAIAUtAAU6AAUgACAFLQAGOgAGIAAgBS0ABzoAByAAQQhqIQAgBUEHaiEGIAVBCGohBSAEIAZHDQALDAILIABB3AA6AABBAiEGIABBAWoLIAItAAA6AAAgACAGaiEAIAJBAWohAgsgAiADSQ0ACwsgAEEvOwAACyAHQSBqJAALTwECfwJAQQUQjQEiAkEATA0AQRAQywEiAUUNACABQQA2AgggASAANgIAIAEgAjYCBCABIAJBBBDPASICNgIMIAIEQCABDwsgARDMAQtBAAuAAwEBfwJAIABBB0wNAEEBIQEgAEEQSQ0AQQIhASAAQSBJDQBBAyEBIABBwABJDQBBBCEBIABBgAFJDQBBBSEBIABBgAJJDQBBBiEBIABBgARJDQBBByEBIABBgAhJDQBBCCEBIABBgBBJDQBBCSEBIABBgCBJDQBBCiEBIABBgMAASQ0AQQshASAAQYCAAUkNAEEMIQEgAEGAgAJJDQBBDSEBIABBgIAESQ0AQQ4hASAAQYCACEkNAEEPIQEgAEGAgBBJDQBBECEBIABBgIAgSQ0AQREhASAAQYCAwABJDQBBEiEBIABBgICAAUkNAEETIQEgAEGAgIACSQ0AQRQhASAAQYCAgARJDQBBFSEBIABBgICACEkNAEEWIQEgAEGAgIAQSQ0AQRchASAAQYCAgCBJDQBBGCEBIABBgICAwABJDQBBGSEBIABBgICAgAFJDQBBGiEBIABBgICAgAJJDQBBGyEBIABBgICAgARJDQBBfw8LIAFBAnRB4DJqKAIAC14BA38gACgCBCIBQQBKBEADQCAAKAIMIAJBAnRqKAIAIgMEQANAIAMoAgwhASADEMwBIAEhAyABDQALIAAoAgQhAQsgAkEBaiICIAFIDQALCyAAKAIMEMwBIAAQzAEL4AEBBX8gASAAKAIAKAIEEQEAIQUCQCAAKAIMIAUgACgCBHBBAnRqKAIAIgRFDQACQAJAIAQoAgAgBUcNACABIAQoAgQiA0YEQCAEIQMMAgsgASADIAAoAgAoAgARAAANACAEIQMMAQsgBCgCDCIDRQ0BIARBDGohBANAAkAgBSADKAIARgRAIAMoAgQiBiABRg0DIAEgBiAAKAIAKAIAEQAAIQYgBCgCACEDIAZFDQELIANBDGohBCADKAIMIgMNAQwDCwsgA0UNAQtBASEHIAJFDQAgAiADKAIINgIACyAHC9MDAQl/IAEgACgCACgCBBEBACEGAkACQAJAIAAoAgwgBiAAKAIEcCIFQQJ0aigCACIERQ0AIAYgBCgCAEYEQCAEKAIEIgMgAUYNAiABIAMgACgCACgCABEAAEUNAgsgBCgCDCIDRQ0AIARBDGohBANAAkAgBiADKAIARgRAIAMoAgQiByABRg0FIAEgByAAKAIAKAIAEQAAIQcgBCgCACEDIAdFDQELIANBDGohBCADKAIMIgMNAQwCCwsgAw0CCyAAKAIIIAAoAgQiCG1BBk4EQAJAIAhBAWoQjQEiBUEATARAIAghBQwBCyAFQQQQzwEiCkUEQCAIIQUMAQsgACgCDCELIAhBAEoEQANAIAsgCUECdGooAgAiAwRAA0AgAygCDCEEIAMgCiADKAIAIAVwQQJ0aiIHKAIANgIMIAcgAzYCACAEIgMNAAsLIAlBAWoiCSAIRw0ACwsgCxDMASAAIAo2AgwgACAFNgIECyAGIAVwIQULQRAQywEiA0UEQEF7DwsgAyACNgIIIAMgATYCBCADIAY2AgAgAyAAKAIMIAVBAnRqIgQoAgA2AgwgBCADNgIAIAAgACgCCEEBajYCCEEADwsgBCEDCyADIAI2AghBAQvtAQEFfyAAKAIEIgNBAEoEQANAAkBBACEFIAZBAnQiByAAKAIMaigCACIEBEADQCAEIQMCQAJAAkACQCAEKAIEIAQoAgggAiABEQIADgQBBgIAAwsgBiAAKAIETg0FIAAoAgwgB2ooAgAiA0UNBQNAIAMgBEYNASADKAIMIgMNAAsMBQsgBCgCDCEDIAQhBQwBCyAEKAIMIQMCfyAFRQRAIAAoAgwgB2oMAQsgBUEMagsgAzYCACAEKAIMIQMgBBDMASAAIAAoAghBAWs2AggLIAMiBA0ACyAAKAIEIQMLIAZBAWoiBiADSA0BCwsLC48DAQp/AkAgAEEAQfcgIAEgAhCTASIDDQAgAEH3IEH6ICABIAIQkwEiAw0AQQAhAyAAQYCAgIAEcUUNAEEAQYUCIAEgAhCUASIDDQBBhQJBiQIgASACEJQBIgMNACMAQRBrIgQkAEGgqBIiB0EMaiEIQbCoEiEJQQEhAAJ/A0AgAEEBcyEMAkADQEEBIQpBACEDIAgoAgAiBUEATA0BA0AgBCAJIANBAnRqKAIAIgA2AgwCQAJAIAAgB0EDIAIgAREDACILDQBBACEAIANFDQEDQCAEIAkgAEECdGooAgA2AgggBCgCDCAEQQhqQQEgAiABEQMAIgsNASAEKAIIIARBDGpBASACIAERAwAiCw0BIAMgAEEBaiIARw0ACwwBCyAKIAxyQQFxRQ0CIAtBACAKGwwFCyADQQFqIgMgBUghCiADIAVHDQALCyAIKAIAIQULIAUgBmpBBGoiBkECdEGgqBJqIgdBEGohCSAHQQxqIQggBkHIAEgiAA0AC0EACyEAIARBEGokACAAIQMLIAMLygIBBn8jAEEQayIFJAACQAJAIAEgAk4NACAAQQFxIQgDQCAFIAFBAnQiAEGAnBFqIgYoAgAiBzYCDCAHQYABTyAIcQ0BIAEgAEGEnBFqIgooAgAiAUEASgR/IAZBCGohCUEAIQcDQCAFIAkgB0ECdGooAgAiADYCCAJAIABB/wBLIAhxDQAgBSgCDCAFQQhqQQEgBCADEQMAIgYNBSAFKAIIIAVBDGpBASAEIAMRAwAiBg0FQQAhACAHRQ0AA0AgBSAJIABBAnRqKAIAIgY2AgQgBkH/AEsgCHFFBEAgBSgCCCAFQQRqQQEgBCADEQMAIgYNByAFKAIEIAVBCGpBASAEIAMRAwAiBg0HCyAAQQFqIgAgB0cNAAsLIAdBAWoiByABRw0ACyAKKAIABSABC2pBAmoiASACSA0ACwtBACEGCyAFQRBqJAAgBgutAgEKfyMAQRBrIgUkAAJ/QQAgACABTg0AGiAAIAFIIQQDQCAEQQFzIQ0gAEECdEHwnxJqIgpBDGohCyAKQQhqIQwCQANAQQEhCEEAIQYgDCgCACIHQQBMDQEDQCAFIAsgBkECdGooAgAiBDYCDAJAAkAgBCAKQQIgAyACEQMAIgkNAEEAIQQgBkUNAQNAIAUgCyAEQQJ0aigCADYCCCAFKAIMIAVBCGpBASADIAIRAwAiCQ0BIAUoAgggBUEMakEBIAMgAhEDACIJDQEgBiAEQQFqIgRHDQALDAELIAggDXJBAXFFDQIgCUEAIAgbDAULIAZBAWoiBiAHSCEIIAYgB0cNAAsLIAwoAgAhBwsgACAHakEDaiIAIAFIIgQNAAtBAAshBCAFQRBqJAAgBAtqAQR/QYcIIQIDQCABIAJqQQF2IgNBAWogASADQQxsQeA3aigCBCAASSIEGyIBIAIgAyAEGyICSQ0AC0EAIQICQCABQYYISw0AIAFBDGwiAUHgN2ooAgAgAEsNACABQeA3aigCCCECCyACC84BAQV/IAIgASAAKAIAEQEAIAFqIgZLBH8CQANAQYcIIQVBACEBIAYgAiAAKAIUEQAAIQcDQCABIAVqQQF2IghBAWogASAIQQxsQeA3aigCBCAHSSIJGyIBIAUgCCAJGyIFSQ0AC0EAIQUgAUGGCEsNASABQQxsIgFB4DdqKAIAIAdLDQEgAUHgN2ooAggiBUESSw0BQQEgBXRB0IAQcUUNASAGIAAoAgARAQAgBmoiBiACSQ0AC0EADwsgAyAHNgIAIAQgBTYCAEEBBSAFCwtrAAJAIABB/wFLDQAgAUEOSw0AIABBAXRB4DNqLwEAIAF2QQFxDwsCfyABQdUETwRAQXogAUHVBGsiAUGwwRIoAgBODQEaIAFBA3RBwMESaigCBCAAEFMPCyABQQJ0QcCqEmooAgAgABBTCwu7BQEIfyMAQdAAayIDJAACQCABIAJJBEADQEGhfiEIIAEgAiAAKAIUEQAAIgVB/wBLDQICQAJAAkAgBUEgaw4OAgEBAQEBAQEBAQEBAQIACyAFQd8ARg0BCyADQRBqIARqIAU6AAAgBEE7Sg0DIARBAWohBAsgASAAKAIAEQEAIAFqIgEgAkkNAAsLIANBEGogBGoiAUEAOgAAAkBBtMESKAIAIgVFDQAgA0EANgIMIwBBEGsiACQAIAAgATYCDCAAIANBEGo2AgggBSAAQQhqIANBDGoQjwEaIABBEGokACADKAIMIgFFDQAgASgCACEIDAELQaF+IQggBEEBayIBQSxLDQAgBCEGIAQhCSAEIQcgBCEAIAQhAiAEIQUCQAJAAkACQAJAAkACQCABDg8GBQQEAwICAgICAgEBAQEACyAEIAMtAB9BAXRBgNsPai8BAGohBgsgBiADLQAbQQF0QYDbD2ovAQBqIQkLIAkgAy0AFUEBdEGA2w9qLwEAaiEHCyAHIAMtABRBAXRBgNsPai8BAGohAAsgACADLQASQQF0QYDbD2ovAQBqIQILIAIgAy0AEUEBdEGA2w9qLwEAaiEFCyADQRBqIAFqLQAAQQF0QYDbD2ovAQAgBSADLQAQIgBBAXRBgNsPai8BBGpqIgZBoDBLDQAgBkECdEHwzQ1qLgEAIgFBAEgNACABQf//A3FB9I4PaiIKLQAAIABzQd8BcQ0AIANBEGohBSAKIQIgBCEBAkADQCABRQ0BIAItAABB8O8Pai0AACEAIAUtAAAiCUHw7w9qLQAAIQcgCQRAIAFBAWshASACQQFqIQIgBUEBaiEFIAdB/wFxIABB/wFxRg0BCwsgB0H/AXEgAEH/AXFHDQELIAQgCmotAAANACAGQQJ0QfDNDWouAQIhCAsgA0HQAGokACAIC6QBAQN/IwBBEGsiASQAIAEgADYCDCABQQxqQQIQiQEhAwJAQZDfDyIAIAFBDGpBARCJAUH/AXFBAXRqLwECIANB/wFxQQF0IABqLwFGaiAAIAFBDGpBABCJAUH/AXFBAXRqLwEAaiIAQZsPSw0AIAEoAgwgAEEDdCIAQfDxD2oiAigCAEYEQCAAQfDxD2ouAQRBAE4NAQtBACECCyABQRBqJAAgAguPAQEDfyAAQQIQiQEhA0F/IQICQEHg4w8iASAAQQEQiQFB/wFxQQF0ai8BACADQf8BcUEBdCABai8BBmogASAAQQAQiQFB/wFxQQF0ai8BAGoiAUHMDksNACABQQF0QdDrEGouAQAiAUEATgRAIAAgAUH//wNxIgJBAnRBgJwRakEBEIgBRQ0BC0F/IQILIAILIgEBfyAAQf8ATQR/IABBAXRB0CFqLwEAIAF2QQFxBSACCwuOAwEDfyMAQTBrIgEkAAJAQZS9EiICQZENIgAgAiAAEHogAGpBAUEHQQBBAEEAQQAQDCIAQQBIDQBBlL0SQcsNIgAgAiAAEHogAGpBAUEIQQBBAEEAQQAQDCIAQQBIDQAgAUHYADYCACABQpGAgIAgNwMgQZS9EkG2DiIAIAIgABB6IABqQQNBCUECIAFBIGpBASABEAwiAEEASA0AIAFBfTYCACABQQE2AiBBlL0SQc0PIgAgAiAAEHogAGpBAUEKQQEgAUEgakEBIAEQDCIAQQBIDQAgAUE+NgIAIAFBAjYCIEGUvRJBnBAiACACIAAQeiAAakEDQQtBASABQSBqQQEgARAMIgBBAEgNACABQT42AgAgAUECNgIgQZS9EkHtECIAIAIgABB6IABqQQNBDEEBIAFBIGpBASABEAwiAEEASA0AIAFBETYCKCABQpGAgIDAADcDIEGUvRJB3xEiACACIAAQeiAAakEBQQ1BAyABQSBqQQBBABAMIgBBH3UgAHEhAAsgAUEwaiQAIAALEgAgAC0AAEECdEGQihFqKAIAC9YBAQR/AkAgAC0AACICQQJ0QZCKEWooAgAiAyABIABrIgEgASADShsiAUECSA0AIAFBAmshBEF/QQcgAWt0QX9zIAJxIQIgAUEBayIBQQNxIgUEQEEAIQMDQCAALQABQT9xIAJBBnRyIQIgAUEBayEBIABBAWohACADQQFqIgMgBUcNAAsLIARBA0kNAANAIAAtAARBP3EgAC0AAkE/cSACQQx0IAAtAAFBP3FBBnRyckEMdCAALQADQT9xQQZ0cnIhAiAAQQRqIQAgAUEEayIBDQALCyACCzUAAn9BASAAQYABSQ0AGkECIABBgBBJDQAaQQMgAEGAgARJDQAaQQRB8HwgAEGAgIABSRsLC8QBAQF/IABB/wBNBEAgASAAOgAAQQEPCwJ/An8gAEH/D00EQCABIABBBnZBwAFyOgAAIAFBAWoMAQsgAEH//wNNBEAgASAAQQx2QeABcjoAACABIABBBnZBP3FBgAFyOgABIAFBAmoMAQtB73wgAEH///8ASw0BGiABIABBEnZB8AFyOgAAIAEgAEEGdkE/cUGAAXI6AAIgASAAQQx2QT9xQYABcjoAASABQQNqCyICIABBP3FBgAFyOgAAIAIgAWtBAWoLC/IDAQN/IAEoAgAsAAAiBUEATgRAIAMgBUH/AXFB0B9qLQAAOgAAIAEgASgCAEEBajYCAEEBDwsCfyABKAIAIgQgAkGAvhIoAgARAAAhAiABIARB7L0SKAIAEQEAIgUgASgCAGo2AgACQAJAIABBAXEiBiACQf8AS3ENACACEJkBIgBFDQBB8J8SIQJB8HwhAQJAAkACQCAALwEGQQFrDgMAAgEECyAALgEEQQJ0QYCcEWooAgAiAUH/AEsgBnENAiABIANBiL4SKAIAEQAADAQLQaCoEiECCyACIAAuAQRBAnRqIQVBACEBQQAhBANAIAUgBEECdGooAgAgA0GIvhIoAgARAAAiAiABaiEBIAIgA2ohAyAEQQFqIgQgAC4BBkgNAAsMAQsCQCAFQQBMDQAgBUEHcSECIAVBAWtBB08EQCAFQXhxIQBBACEBA0AgAyAELQAAOgAAIAMgBC0AAToAASADIAQtAAI6AAIgAyAELQADOgADIAMgBC0ABDoABCADIAQtAAU6AAUgAyAELQAGOgAGIAMgBC0ABzoAByADQQhqIQMgBEEIaiEEIAFBCGoiASAARw0ACwsgAkUNAEEAIQEDQCADIAQtAAA6AAAgA0EBaiEDIARBAWohBCABQQFqIgEgAkcNAAsLIAUhAQsgAQsL7h4BEH8gAyEKQQAhAyMAQdAAayIFJAACQCAAIgZBAXEiCCABIAJBgL4SKAIAEQAAIgxB/wBLcQ0AIAFB7L0SKAIAEQEAIQAgBSAMNgIIIAUCfyAMIAwQmQEiB0UNABogDCAHLwEGQQFHDQAaIAcuAQRBAnRBgJwRaigCAAs2AhQCQCAGQYCAgIAEcSINRQ0AIAAgAWoiASACTw0AIAUgASACQYC+EigCABEAACIONgIMIAFB7L0SKAIAEQEAIQkCQCAOIgsQmQEiBkUNACAGLwEGQQFHDQAgBi4BBEECdEGAnBFqKAIAIQsLIAAgCWohBiAFIAs2AhgCQCABIAlqIgEgAk8NACAFIAEgAkGAvhIoAgARAAAiCzYCECABQey9EigCABEBACEBAkAgCyIDEJkBIgJFDQAgAi8BBkEBRw0AIAIuAQRBAnRBgJwRaigCACEDCyAFIAM2AhxBACEDIAVBFGoiCUEIEIkBIQICQCAJQQUQiQFB/wFxQfDpD2otAAAgAkH/AXFB8OkPai0AAGogCUECEIkBQf8BcUHw6Q9qLQAAaiICQQ1NBEAgCSACQQF0QfCJEWouAQAiAkECdEGgqBJqQQMQiAFFDQELQX8hAgsgAkEASA0AIAEgBmohCUEBIRAgAkECdCIHQaCoEmooAgwiBkEASgRAIAZBAXEhDSAHQbCoEmohBCAGQQFHBEAgBkF+cSEBQQAhAANAIAogA0EUbGoiAkEBNgIEIAIgCTYCACACIAQgA0ECdGooAgA2AgggCiADQQFyIghBFGxqIgJBATYCBCACIAk2AgAgAiAEIAhBAnRqKAIANgIIIANBAmohAyAAQQJqIgAgAUcNAAsLIA0EQCAKIANBFGxqIgJBATYCBCACIAk2AgAgAiAEIANBAnRqKAIANgIICyAGIQMLIAUgB0GgqBJqIgIoAgA2AiAgBUEgahCaASIEQQBOBEAgBEECdCIAQYCcEWooAgQiBEEASgRAIAVBIGpBBHIgAEGInBFqIARBAnQQpgEaCyAEQQFqIRALIAUgAigCBDYCMEEBIQhBASEPIAVBMGoQmgEiBEEATgRAIARBAnQiAEGAnBFqKAIEIgRBAEoEQCAFQTRqIABBiJwRaiAEQQJ0EKYBGgsgBEEBaiEPCyAFIAIoAgg2AkAgBUFAaxCaASICQQBOBEAgAkECdCIEQYCcEWooAgQiAkEASgRAIAVBxABqIARBiJwRaiACQQJ0EKYBGgsgAkEBaiEICyAQQQBMBEAgAyEEDAMLIA9BAEwhESADIQQDQCARRQRAIAVBIGogEkECdGohE0EAIQ0DQCAIQQBKBEAgEygCACIHIAxGIA1BAnQgBWooAjAiASAORnEhBkEAIQIDQCABIQACQCAGBEAgDiEAIAJBAnQgBWpBQGsoAgAgC0YNAQsgCiAEQRRsaiIDIAc2AgggA0EDNgIEIAMgCTYCACADIAA2AgwgAyACQQJ0IAVqQUBrKAIANgIQIARBAWohBAsgAkEBaiICIAhHDQALCyANQQFqIg0gD0cNAAsLIBJBAWoiEiAQRw0ACwwCCyAFQRRqIgJBBRCJASEBAkAgAkECEIkBQf8BcUHw5w9qLQAAIAFB/wFxQfDnD2otAABqIgFBOk0EQCACIAFBAXRB8IgRai4BACIBQQJ0QfCfEmpBAhCIAUUNAQtBfyEBCyABIgJBAEgNAEEBIQkgAkECdCILQfCfEmooAggiB0EASgRAIAdBAXEhDSALQfyfEmohBCAHQQFHBEAgB0F+cSEBQQAhAANAIAogA0EUbGoiAkEBNgIEIAIgBjYCACACIAQgA0ECdGooAgA2AgggCiADQQFyIghBFGxqIgJBATYCBCACIAY2AgAgAiAEIAhBAnRqKAIANgIIIANBAmohAyAAQQJqIgAgAUcNAAsLIA0EQCAKIANBFGxqIgJBATYCBCACIAY2AgAgAiAEIANBAnRqKAIANgIICyAHIQMLIAUgC0HwnxJqIgIoAgA2AiAgBUEgahCaASIEQQBOBEAgBEECdCIAQYCcEWooAgQiBEEASgRAIAVBIGpBBHIgAEGInBFqIARBAnQQpgEaCyAEQQFqIQkLIAUgAigCBDYCMCAFQTBqEJoBIgJBAEgEf0EBBSACQQJ0IgRBgJwRaigCBCICQQBKBEAgBUE0aiAEQYicEWogAkECdBCmARoLIAJBAWoLIQEgCUEATARAIAMhBAwCC0EAIQcgAUEATCELIAMhBANAIAtFBEAgBUEgaiAHQQJ0aigCACEIQQAhAwNAIAggDEYgDiADQQJ0IAVqKAIwIgJGcUUEQCAKIARBFGxqIgAgCDYCCCAAQQI2AgQgACAGNgIAIAAgAjYCDCAEQQFqIQQLIANBAWoiAyABRw0ACwsgB0EBaiIHIAlHDQALDAELAkACQAJAAkAgBwRAIAcvAQYiA0EBRgRAIAcuAQQhAwJ/IAgEQEEAIANBAnRBgJwRaigCAEH/AEsNARoLIApBATYCBCAKIAA2AgAgCiADQQJ0QYCcEWooAgA2AghBAQshBCADQQJ0IgNBgJwRaigCBCIGQQBMDQYgA0GInBFqIQdBACEDA0ACQCAHIANBAnRqKAIAIgIgDEYNACAIRSACQYABSXJFDQAgCiAEQRRsaiIBIAI2AgggAUEBNgIEIAEgADYCACAEQQFqIQQLIANBAWoiAyAGRw0ACwwGCyANRQ0FIAcuAQQhCyADQQJGBEBBASEPIAtBAnRB8J8SaigCCCIDQQBMDQUgA0EBcSENIAtBAnRB/J8SaiECIANBAUYEQEEAIQMMBQsgA0F+cSEOQQAhA0EAIQgDQCAMIAIgA0ECdCIBaigCACIGRwRAIAogBEEUbGoiCSAGNgIIIAlBATYCBCAJIAA2AgAgBEEBaiEECyAMIAIgAUEEcmooAgAiAUcEQCAKIARBFGxqIgYgATYCCCAGQQE2AgQgBiAANgIAIARBAWohBAsgA0ECaiEDIA4gCEECaiIIRw0ACwwEC0EBIREgC0ECdEGgqBJqKAIMIgNBAEwNAiADQQFxIQ0gC0ECdEGwqBJqIQIgA0EBRgRAQQAhAwwCCyADQX5xIQ5BACEDQQAhCANAIAwgAiADQQJ0IgFqKAIAIgZHBEAgCiAEQRRsaiIJIAY2AgggCUEBNgIEIAkgADYCACAEQQFqIQQLIAwgAiABQQRyaigCACIBRwRAIAogBEEUbGoiBiABNgIIIAZBATYCBCAGIAA2AgAgBEEBaiEECyADQQJqIQMgDiAIQQJqIghHDQALDAELIAVBCGoQmgEiA0EASA0EIANBAnQiAkGAnBFqKAIEIgNBAEwNBCADQQFxIQsgAkGInBFqIQECQCADQQFGBEBBACEDDAELIANBfnEhDkEAIQNBACEGA0AgCEEAIAEgA0ECdCIHaigCACICQf8ASxtFBEAgCiAEQRRsaiIJIAI2AgggCUEBNgIEIAkgADYCACAEQQFqIQQLIAhBACABIAdBBHJqKAIAIgJB/wBLG0UEQCAKIARBFGxqIgcgAjYCCCAHQQE2AgQgByAANgIAIARBAWohBAsgA0ECaiEDIAZBAmoiBiAORw0ACwsgC0UNBCAIQQAgASADQQJ0aigCACIDQf8ASxsNBCAKIARBFGxqIgIgAzYCCCACQQE2AgQgAiAANgIAIARBAWohBAwECyANRQ0AIAIgA0ECdGooAgAiAyAMRg0AIAogBEEUbGoiAiADNgIIIAJBATYCBCACIAA2AgAgBEEBaiEECyAFIAtBAnRBoKgSaigCADYCICAFQSBqEJoBIgNBAE4EQCADQQJ0QYCcEWooAgQiAkEASgRAIAVBIGpBBHIgA0ECdEGInBFqIAJBAnQQpgEaCyACQQFqIRELIAUgBy4BBEECdEGgqBJqKAIENgIwQQEhDEEBIQ8gBUEwahCaASIDQQBOBEAgA0ECdCICQYCcEWooAgQiA0EASgRAIAVBNGogAkGInBFqIANBAnQQpgEaCyADQQFqIQ8LIAUgBy4BBEECdEGgqBJqKAIINgJAIAVBQGsQmgEiA0EATgRAIANBAnRBgJwRaigCBCICQQBKBEAgBUHEAGogA0ECdEGInBFqIAJBAnQQpgEaCyACQQFqIQwLIBFBAEwNAiAMQX5xIQsgDEEBcSESA0AgD0EASgRAIAVBIGogEEECdGohE0EAIQ0DQAJAIAxBAEwNACANQQJ0IAVqKAIwIQggEygCACEBQQAhAkEAIQYgDEEBRwRAA0AgCiAEQRRsaiIDIAE2AgggA0EDNgIEIAMgADYCACADIAg2AgwgBUFAayIHIAJBAnQiCWooAgAhDiADIAA2AhQgAyAONgIQIAMgATYCHCADIAg2AiAgA0EDNgIYIAMgByAJQQRyaigCADYCJCACQQJqIQIgBEECaiEEIAZBAmoiBiALRw0ACwsgEkUNACAKIARBFGxqIgMgATYCCCADQQM2AgQgAyAANgIAIAMgCDYCDCADIAJBAnQgBWpBQGsoAgA2AhAgBEEBaiEECyANQQFqIg0gD0cNAAsLIBBBAWoiECARRw0ACwwCCyANRQ0AIAIgA0ECdGooAgAiAyAMRg0AIAogBEEUbGoiAiADNgIIIAJBATYCBCACIAA2AgAgBEEBaiEECyAFIAtBAnRB8J8SaigCADYCICAFQSBqEJoBIgNBAE4EQCADQQJ0QYCcEWooAgQiAkEASgRAIAVBIGpBBHIgA0ECdEGInBFqIAJBAnQQpgEaCyACQQFqIQ8LIAUgBy4BBEECdEHwnxJqKAIENgIwIAVBMGoQmgEiA0EASAR/QQEFIANBAnQiAkGAnBFqKAIEIgNBAEoEQCAFQTRqIAJBiJwRaiADQQJ0EKYBGgsgA0EBagshDSAPQQBMDQAgDUF+cSEOIA1BAXEhDEEAIQsDQAJAIA1BAEwNACAFQSBqIAtBAnRqKAIAIQhBACECQQAhASANQQFHBEADQCAKIARBFGxqIgMgCDYCCCADQQI2AgQgAyAANgIAIAVBMGoiBiACQQJ0IgdqKAIAIQkgAyAANgIUIAMgCTYCDCADIAg2AhwgA0ECNgIYIAMgBiAHQQRyaigCADYCICACQQJqIQIgBEECaiEEIAFBAmoiASAORw0ACwsgDEUNACAKIARBFGxqIgMgCDYCCCADQQI2AgQgAyAANgIAIAMgAkECdCAFaigCMDYCDCAEQQFqIQQLIAtBAWoiCyAPRw0ACwsgBUHQAGokACAEC04AIAFBgAE2AgACfyACAn8gAEHVBE8EQEF6IABB1QRrIgBBsMESKAIATg0CGiAAQQN0QcTBEmoMAQsgAEECdEHAqhJqCygCADYCAEEACwszAQF/IAAgAU8EQCABDwsDQCAAIAEiAkkEQCACQQFrIQEgAi0AAEFAcUGAAUYNAQsLIAILoQEBBH9BASEEAkAgACABTw0AA0BBACEEIAAtAAAiAkHAAXFBgAFGDQEgAEEBaiEDAkAgAkHAAWtBNEsEQCADIQAMAQsgAEECIAJBAnRBkIoRaigCACICIAJBAkwbIgVqIQBBASECA0AgASADRg0DIAMtAABBwAFxQYABRw0DIANBAWohAyACQQFqIgIgBUcNAAsLIAAgAUkNAAtBASEECyAEC4AEAQN/IAJBgARPBEAgACABIAIQACAADwsgACACaiEDAkAgACABc0EDcUUEQAJAIABBA3FFBEAgACECDAELIAJFBEAgACECDAELIAAhAgNAIAIgAS0AADoAACABQQFqIQEgAkEBaiICQQNxRQ0BIAIgA0kNAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAvoAgECfwJAIAAgAUYNACABIAAgAmoiA2tBACACQQF0a00EQCAAIAEgAhCmARoPCyAAIAFzQQNxIQQCQAJAIAAgAUkEQCAEBEAgACEDDAMLIABBA3FFBEAgACEDDAILIAAhAwNAIAJFDQQgAyABLQAAOgAAIAFBAWohASACQQFrIQIgA0EBaiIDQQNxDQALDAELAkAgBA0AIANBA3EEQANAIAJFDQUgACACQQFrIgJqIgMgASACai0AADoAACADQQNxDQALCyACQQNNDQADQCAAIAJBBGsiAmogASACaigCADYCACACQQNLDQALCyACRQ0CA0AgACACQQFrIgJqIAEgAmotAAA6AAAgAg0ACwwCCyACQQNNDQADQCADIAEoAgA2AgAgAUEEaiEBIANBBGohAyACQQRrIgJBA0sNAAsLIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQQFrIgINAAsLC/ICAgJ/AX4CQCACRQ0AIAAgAToAACAAIAJqIgNBAWsgAToAACACQQNJDQAgACABOgACIAAgAToAASADQQNrIAE6AAAgA0ECayABOgAAIAJBB0kNACAAIAE6AAMgA0EEayABOgAAIAJBCUkNACAAQQAgAGtBA3EiBGoiAyABQf8BcUGBgoQIbCIBNgIAIAMgAiAEa0F8cSIEaiICQQRrIAE2AgAgBEEJSQ0AIAMgATYCCCADIAE2AgQgAkEIayABNgIAIAJBDGsgATYCACAEQRlJDQAgAyABNgIYIAMgATYCFCADIAE2AhAgAyABNgIMIAJBEGsgATYCACACQRRrIAE2AgAgAkEYayABNgIAIAJBHGsgATYCACAEIANBBHFBGHIiBGsiAkEgSQ0AIAGtQoGAgIAQfiEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkEgayICQR9LDQALCyAACycBAX8jAEEQayIEJAAgBCADNgIMIAAgASACIAMQvAEaIARBEGokAAvbAgEHfyMAQSBrIgMkACADIAAoAhwiBDYCECAAKAIUIQUgAyACNgIcIAMgATYCGCADIAUgBGsiATYCFCABIAJqIQYgA0EQaiEEQQIhBwJ/AkACQAJAIAAoAjwgA0EQakECIANBDGoQAhC+AQRAIAQhBQwBCwNAIAYgAygCDCIBRg0CIAFBAEgEQCAEIQUMBAsgBCABIAQoAgQiCEsiCUEDdGoiBSABIAhBACAJG2siCCAFKAIAajYCACAEQQxBBCAJG2oiBCAEKAIAIAhrNgIAIAYgAWshBiAAKAI8IAUiBCAHIAlrIgcgA0EMahACEL4BRQ0ACwsgBkF/Rw0BCyAAIAAoAiwiATYCHCAAIAE2AhQgACABIAAoAjBqNgIQIAIMAQsgAEEANgIcIABCADcDECAAIAAoAgBBIHI2AgBBACAHQQJGDQAaIAIgBSgCBGsLIQEgA0EgaiQAIAELBABBAAsEAEIAC2kBA38CQCAAIgFBA3EEQANAIAEtAABFDQIgAUEBaiIBQQNxDQALCwNAIAEiAkEEaiEBIAIoAgAiA0F/cyADQYGChAhrcUGAgYKEeHFFDQALA0AgAiIBQQFqIQIgAS0AAA0ACwsgASAAawtZAQF/IAAgACgCSCIBQQFrIAFyNgJIIAAoAgAiAUEIcQRAIAAgAUEgcjYCAEF/DwsgAEIANwIEIAAgACgCLCIBNgIcIAAgATYCFCAAIAEgACgCMGo2AhBBAAsKACAAQTBrQQpJCwYAQejKEgt/AgF/AX4gAL0iA0I0iKdB/w9xIgJB/w9HBHwgAkUEQCABIABEAAAAAAAAAABhBH9BAAUgAEQAAAAAAADwQ6IgARCxASEAIAEoAgBBQGoLNgIAIAAPCyABIAJB/gdrNgIAIANC/////////4eAf4NCgICAgICAgPA/hL8FIAALC8IBAQN/AkAgASACKAIQIgMEfyADBSACEK4BDQEgAigCEAsgAigCFCIFa0sEQCACIAAgASACKAIkEQIADwsCQCACKAJQQQBIBEBBACEDDAELIAEhBANAIAQiA0UEQEEAIQMMAgsgACADQQFrIgRqLQAAQQpHDQALIAIgACADIAIoAiQRAgAiBCADSQ0BIAAgA2ohACABIANrIQEgAigCFCEFCyAFIAAgARCmARogAiACKAIUIAFqNgIUIAEgA2ohBAsgBAvgAgEEfyMAQdABayIFJAAgBSACNgLMASAFQaABakEAQSgQqAEaIAUgBSgCzAE2AsgBAkBBACABIAVByAFqIAVB0ABqIAVBoAFqIAMgBBC0AUEASARAQX8hBAwBC0EBIAYgACgCTEEAThshBiAAKAIAIQcgACgCSEEATARAIAAgB0FfcTYCAAsCfwJAAkAgACgCMEUEQCAAQdAANgIwIABBADYCHCAAQgA3AxAgACgCLCEIIAAgBTYCLAwBCyAAKAIQDQELQX8gABCuAQ0BGgsgACABIAVByAFqIAVB0ABqIAVBoAFqIAMgBBC0AQshAiAHQSBxIQQgCARAIABBAEEAIAAoAiQRAgAaIABBADYCMCAAIAg2AiwgAEEANgIcIAAoAhQhAyAAQgA3AxAgAkF/IAMbIQILIAAgACgCACIDIARyNgIAQX8gAiADQSBxGyEEIAZFDQALIAVB0AFqJAAgBAumFAISfwF+IwBB0ABrIggkACAIIAE2AkwgCEE3aiEYIAhBOGohEwJAAkACQAJAA0AgASEOIAcgEEH/////B3NKDQEgByAQaiEQAkACQAJAIA4iBy0AACIPBEADQAJAAkAgD0H/AXEiD0UEQCAHIQEMAQsgD0ElRw0BIAchDwNAIA8tAAFBJUcEQCAPIQEMAgsgB0EBaiEHIA8tAAIhCSAPQQJqIgEhDyAJQSVGDQALCyAHIA5rIgcgEEH/////B3MiD0oNByAABEAgACAOIAcQtQELIAcNBiAIIAE2AkwgAUEBaiEHQX8hEQJAIAEsAAEQrwFFDQAgAS0AAkEkRw0AIAFBA2ohByABLAABQTBrIRFBASEUCyAIIAc2AkxBACELAkAgBywAACIKQSBrIgFBH0sEQCAHIQkMAQsgByEJQQEgAXQiAUGJ0QRxRQ0AA0AgCCAHQQFqIgk2AkwgASALciELIAcsAAEiCkEgayIBQSBPDQEgCSEHQQEgAXQiAUGJ0QRxDQALCwJAIApBKkYEQAJ/AkAgCSwAARCvAUUNACAJLQACQSRHDQAgCSwAAUECdCAEakHAAWtBCjYCACAJQQNqIQpBASEUIAksAAFBA3QgA2pBgANrKAIADAELIBQNBiAJQQFqIQogAEUEQCAIIAo2AkxBACEUQQAhEgwDCyACIAIoAgAiB0EEajYCAEEAIRQgBygCAAshEiAIIAo2AkwgEkEATg0BQQAgEmshEiALQYDAAHIhCwwBCyAIQcwAahC2ASISQQBIDQggCCgCTCEKC0EAIQdBfyEMAn8gCi0AAEEuRwRAIAohAUEADAELIAotAAFBKkYEQAJ/AkAgCiwAAhCvAUUNACAKLQADQSRHDQAgCiwAAkECdCAEakHAAWtBCjYCACAKQQRqIQEgCiwAAkEDdCADakGAA2soAgAMAQsgFA0GIApBAmohAUEAIABFDQAaIAIgAigCACIJQQRqNgIAIAkoAgALIQwgCCABNgJMIAxBf3NBH3YMAQsgCCAKQQFqNgJMIAhBzABqELYBIQwgCCgCTCEBQQELIRYDQCAHIQlBHCENIAEiCiwAACIHQfsAa0FGSQ0JIApBAWohASAHIAlBOmxqQc+REWotAAAiB0EBa0EISQ0ACyAIIAE2AkwCQAJAIAdBG0cEQCAHRQ0LIBFBAE4EQCAEIBFBAnRqIAc2AgAgCCADIBFBA3RqKQMANwNADAILIABFDQggCEFAayAHIAIgBhC3AQwCCyARQQBODQoLQQAhByAARQ0HCyALQf//e3EiFSALIAtBgMAAcRshC0EAIRFBvQkhFyATIQ0CQAJAAkACfwJAAkACQAJAAn8CQAJAAkACQAJAAkACQCAKLAAAIgdBX3EgByAHQQ9xQQNGGyAHIAkbIgdB2ABrDiEEFBQUFBQUFBQOFA8GDg4OFAYUFBQUAgUDFBQJFAEUFAQACwJAIAdBwQBrDgcOFAsUDg4OAAsgB0HTAEYNCQwTCyAIKQNAIRlBvQkMBQtBACEHAkACQAJAAkACQAJAAkAgCUH/AXEOCAABAgMEGgUGGgsgCCgCQCAQNgIADBkLIAgoAkAgEDYCAAwYCyAIKAJAIBCsNwMADBcLIAgoAkAgEDsBAAwWCyAIKAJAIBA6AAAMFQsgCCgCQCAQNgIADBQLIAgoAkAgEKw3AwAMEwtBCCAMIAxBCE0bIQwgC0EIciELQfgAIQcLIBMhDiAHQSBxIQkgCCkDQCIZQgBSBEADQCAOQQFrIg4gGadBD3FB4JURai0AACAJcjoAACAZQg9WIRUgGUIEiCEZIBUNAAsLIAgpA0BQDQMgC0EIcUUNAyAHQQR2Qb0JaiEXQQIhEQwDCyATIQcgCCkDQCIZQgBSBEADQCAHQQFrIgcgGadBB3FBMHI6AAAgGUIHViEOIBlCA4ghGSAODQALCyAHIQ4gC0EIcUUNAiAMIBMgDmsiB0EBaiAHIAxIGyEMDAILIAgpA0AiGUIAUwRAIAhCACAZfSIZNwNAQQEhEUG9CQwBCyALQYAQcQRAQQEhEUG+CQwBC0G/CUG9CSALQQFxIhEbCyEXIBkgExC4ASEOCyAWQQAgDEEASBsNDiALQf//e3EgCyAWGyELAkAgCCkDQCIZQgBSDQAgDA0AIBMiDiENQQAhDAwMCyAMIBlQIBMgDmtqIgcgByAMSBshDAwLCwJ/Qf////8HIAwgDEH/////B08bIgkiCkEARyELAkACQAJAIAgoAkAiB0GWDSAHGyIOIgciDUEDcUUNACAKRQ0AA0AgDS0AAEUNAiAKQQFrIgpBAEchCyANQQFqIg1BA3FFDQEgCg0ACwsgC0UNAQJAIA0tAABFDQAgCkEESQ0AA0AgDSgCACILQX9zIAtBgYKECGtxQYCBgoR4cQ0CIA1BBGohDSAKQQRrIgpBA0sNAAsLIApFDQELA0AgDSANLQAARQ0CGiANQQFqIQ0gCkEBayIKDQALC0EACyINIAdrIAkgDRsiByAOaiENIAxBAE4EQCAVIQsgByEMDAsLIBUhCyAHIQwgDS0AAA0NDAoLIAwEQCAIKAJADAILQQAhByAAQSAgEkEAIAsQuQEMAgsgCEEANgIMIAggCCkDQD4CCCAIIAhBCGo2AkBBfyEMIAhBCGoLIQ9BACEHAkADQCAPKAIAIglFDQECQCAIQQRqIAkQvwEiCUEASCIODQAgCSAMIAdrSw0AIA9BBGohDyAMIAcgCWoiB0sNAQwCCwsgDg0NC0E9IQ0gB0EASA0LIABBICASIAcgCxC5ASAHRQRAQQAhBwwBC0EAIQkgCCgCQCEPA0AgDygCACIORQ0BIAhBBGogDhC/ASIOIAlqIgkgB0sNASAAIAhBBGogDhC1ASAPQQRqIQ8gByAJSw0ACwsgAEEgIBIgByALQYDAAHMQuQEgEiAHIAcgEkgbIQcMCAsgFkEAIAxBAEgbDQhBPSENIAAgCCsDQCASIAwgCyAHIAUREAAiB0EATg0HDAkLIAggCCkDQDwAN0EBIQwgGCEOIBUhCwwECyAHLQABIQ8gB0EBaiEHDAALAAsgAA0HIBRFDQJBASEHA0AgBCAHQQJ0aigCACIPBEAgAyAHQQN0aiAPIAIgBhC3AUEBIRAgB0EBaiIHQQpHDQEMCQsLQQEhECAHQQpPDQcDQCAEIAdBAnRqKAIADQEgB0EBaiIHQQpHDQALDAcLQRwhDQwECyAMIA0gDmsiCiAKIAxIGyIMIBFB/////wdzSg0CQT0hDSASIAwgEWoiCSAJIBJIGyIHIA9KDQMgAEEgIAcgCSALELkBIAAgFyARELUBIABBMCAHIAkgC0GAgARzELkBIABBMCAMIApBABC5ASAAIA4gChC1ASAAQSAgByAJIAtBgMAAcxC5AQwBCwtBACEQDAMLQT0hDQtB6MoSIA02AgALQX8hEAsgCEHQAGokACAQCxgAIAAtAABBIHFFBEAgASACIAAQsgEaCwttAQN/IAAoAgAsAAAQrwFFBEBBAA8LA0AgACgCACEDQX8hASACQcyZs+YATQRAQX8gAywAAEEwayIBIAJBCmwiAmogASACQf////8Hc0obIQELIAAgA0EBajYCACABIQIgAywAARCvAQ0ACyABC7YEAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAFBCWsOEgABAgUDBAYHCAkKCwwNDg8QERILIAIgAigCACIBQQRqNgIAIAAgASgCADYCAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASsDADkDAA8LIAAgAiADEQcACwuDAQIDfwF+AkAgAEKAgICAEFQEQCAAIQUMAQsDQCABQQFrIgEgACAAQgqAIgVCCn59p0EwcjoAACAAQv////+fAVYhAiAFIQAgAg0ACwsgBaciAgRAA0AgAUEBayIBIAIgAkEKbiIDQQpsa0EwcjoAACACQQlLIQQgAyECIAQNAAsLIAELcgEBfyMAQYACayIFJAACQCACIANMDQAgBEGAwARxDQAgBSABQf8BcSACIANrIgNBgAIgA0GAAkkiAhsQqAEaIAJFBEADQCAAIAVBgAIQtQEgA0GAAmsiA0H/AUsNAAsLIAAgBSADELUBCyAFQYACaiQAC8kYAxJ/AXwCfiMAQbAEayIKJAAgCkEANgIsAkAgAb0iGUIAUwRAQQEhEUH6DSETIAGaIgG9IRkMAQsgBEGAEHEEQEEBIRFB/Q0hEwwBC0GADkH7DSAEQQFxIhEbIRMgEUUhFwsCQCAZQoCAgICAgID4/wCDQoCAgICAgID4/wBRBEAgAEEgIAIgEUEDaiIGIARB//97cRC5ASAAIBMgERC1ASAAQeMQQeMRIAVBIHEiBxtBoQ9BohAgBxsgASABYhtBAxC1ASAAQSAgAiAGIARBgMAAcxC5ASAGIAIgAiAGSBshCQwBCyAKQRBqIRICQAJ/AkAgASAKQSxqELEBIgEgAaAiAUQAAAAAAAAAAGIEQCAKIAooAiwiBkEBazYCLCAFQSByIhVB4QBHDQEMAwsgBUEgciIVQeEARg0CIAooAiwhFEEGIAMgA0EASBsMAQsgCiAGQR1rIhQ2AiwgAUQAAAAAAACwQaIhAUEGIAMgA0EASBsLIQwgCkEwakGgAkEAIBRBAE4baiIPIQcDQCAHAn8gAUQAAAAAAADwQWMgAUQAAAAAAAAAAGZxBEAgAasMAQtBAAsiBjYCACAHQQRqIQcgASAGuKFEAAAAAGXNzUGiIgFEAAAAAAAAAABiDQALAkAgFEEATARAIBQhAyAHIQYgDyEIDAELIA8hCCAUIQMDQEEdIAMgA0EdThshAwJAIAdBBGsiBiAISQ0AIAOtIRpCACEZA0AgBiAZQv////8PgyAGNQIAIBqGfCIZIBlCgJTr3AOAIhlCgJTr3AN+fT4CACAGQQRrIgYgCE8NAAsgGaciBkUNACAIQQRrIgggBjYCAAsDQCAIIAciBkkEQCAGQQRrIgcoAgBFDQELCyAKIAooAiwgA2siAzYCLCAGIQcgA0EASg0ACwsgA0EASARAIAxBGWpBCW5BAWohECAVQeYARiEWA0BBCUEAIANrIgcgB0EJThshCwJAIAYgCE0EQCAIKAIAIQcMAQtBgJTr3AMgC3YhDUF/IAt0QX9zIQ5BACEDIAghBwNAIAcgBygCACIJIAt2IANqNgIAIAkgDnEgDWwhAyAHQQRqIgcgBkkNAAsgCCgCACEHIANFDQAgBiADNgIAIAZBBGohBgsgCiAKKAIsIAtqIgM2AiwgDyAIIAdFQQJ0aiIIIBYbIgcgEEECdGogBiAGIAdrQQJ1IBBKGyEGIANBAEgNAAsLQQAhAwJAIAYgCE0NACAPIAhrQQJ1QQlsIQNBCiEHIAgoAgAiCUEKSQ0AA0AgA0EBaiEDIAkgB0EKbCIHTw0ACwsgDCADQQAgFUHmAEcbayAVQecARiAMQQBHcWsiByAGIA9rQQJ1QQlsQQlrSARAQQRBpAIgFEEASBsgCmogB0GAyABqIglBCW0iDUECdGpB0B9rIQtBCiEHIAkgDUEJbGsiCUEHTARAA0AgB0EKbCEHIAlBAWoiCUEIRw0ACwsCQCALKAIAIgkgCSAHbiIQIAdsayINRSALQQRqIg4gBkZxDQACQCAQQQFxRQRARAAAAAAAAEBDIQEgB0GAlOvcA0cNASAIIAtPDQEgC0EEay0AAEEBcUUNAQtEAQAAAAAAQEMhAQtEAAAAAAAA4D9EAAAAAAAA8D9EAAAAAAAA+D8gBiAORhtEAAAAAAAA+D8gDSAHQQF2Ig5GGyANIA5JGyEYAkAgFw0AIBMtAABBLUcNACAYmiEYIAGaIQELIAsgCSANayIJNgIAIAEgGKAgAWENACALIAcgCWoiBzYCACAHQYCU69wDTwRAA0AgC0EANgIAIAggC0EEayILSwRAIAhBBGsiCEEANgIACyALIAsoAgBBAWoiBzYCACAHQf+T69wDSw0ACwsgDyAIa0ECdUEJbCEDQQohByAIKAIAIglBCkkNAANAIANBAWohAyAJIAdBCmwiB08NAAsLIAtBBGoiByAGIAYgB0sbIQYLA0AgBiIHIAhNIglFBEAgB0EEayIGKAIARQ0BCwsCQCAVQecARwRAIARBCHEhCwwBCyADQX9zQX8gDEEBIAwbIgYgA0ogA0F7SnEiCxsgBmohDEF/QX4gCxsgBWohBSAEQQhxIgsNAEF3IQYCQCAJDQAgB0EEaygCACILRQ0AQQohCUEAIQYgC0EKcA0AA0AgBiINQQFqIQYgCyAJQQpsIglwRQ0ACyANQX9zIQYLIAcgD2tBAnVBCWwhCSAFQV9xQcYARgRAQQAhCyAMIAYgCWpBCWsiBkEAIAZBAEobIgYgBiAMShshDAwBC0EAIQsgDCADIAlqIAZqQQlrIgZBACAGQQBKGyIGIAYgDEobIQwLQX8hCSAMQf3///8HQf7///8HIAsgDHIiDRtKDQEgDCANQQBHakEBaiEOAkAgBUFfcSIWQcYARgRAIAMgDkH/////B3NKDQMgA0EAIANBAEobIQYMAQsgEiADIANBH3UiBnMgBmutIBIQuAEiBmtBAUwEQANAIAZBAWsiBkEwOgAAIBIgBmtBAkgNAAsLIAZBAmsiECAFOgAAIAZBAWtBLUErIANBAEgbOgAAIBIgEGsiBiAOQf////8Hc0oNAgsgBiAOaiIGIBFB/////wdzSg0BIABBICACIAYgEWoiDiAEELkBIAAgEyARELUBIABBMCACIA4gBEGAgARzELkBAkACQAJAIBZBxgBGBEAgCkEQakEIciELIApBEGpBCXIhAyAPIAggCCAPSxsiCSEIA0AgCDUCACADELgBIQYCQCAIIAlHBEAgBiAKQRBqTQ0BA0AgBkEBayIGQTA6AAAgBiAKQRBqSw0ACwwBCyADIAZHDQAgCkEwOgAYIAshBgsgACAGIAMgBmsQtQEgCEEEaiIIIA9NDQALIA0EQCAAQawSQQEQtQELIAcgCE0NASAMQQBMDQEDQCAINQIAIAMQuAEiBiAKQRBqSwRAA0AgBkEBayIGQTA6AAAgBiAKQRBqSw0ACwsgACAGQQkgDCAMQQlOGxC1ASAMQQlrIQYgCEEEaiIIIAdPDQMgDEEJSiEJIAYhDCAJDQALDAILAkAgDEEASA0AIAcgCEEEaiAHIAhLGyENIApBEGpBCHIhDyAKQRBqQQlyIQMgCCEHA0AgAyAHNQIAIAMQuAEiBkYEQCAKQTA6ABggDyEGCwJAIAcgCEcEQCAGIApBEGpNDQEDQCAGQQFrIgZBMDoAACAGIApBEGpLDQALDAELIAAgBkEBELUBIAZBAWohBiALIAxyRQ0AIABBrBJBARC1AQsgACAGIAwgAyAGayIJIAkgDEobELUBIAwgCWshDCAHQQRqIgcgDU8NASAMQQBODQALCyAAQTAgDEESakESQQAQuQEgACAQIBIgEGsQtQEMAgsgDCEGCyAAQTAgBkEJakEJQQAQuQELIABBICACIA4gBEGAwABzELkBIA4gAiACIA5IGyEJDAELIBMgBUEadEEfdUEJcWohDgJAIANBC0sNAEEMIANrIQZEAAAAAAAAMEAhGANAIBhEAAAAAAAAMECiIRggBkEBayIGDQALIA4tAABBLUYEQCAYIAGaIBihoJohAQwBCyABIBigIBihIQELIBIgCigCLCIGIAZBH3UiBnMgBmutIBIQuAEiBkYEQCAKQTA6AA8gCkEPaiEGCyARQQJyIQsgBUEgcSEIIAooAiwhByAGQQJrIg0gBUEPajoAACAGQQFrQS1BKyAHQQBIGzoAACAEQQhxIQkgCkEQaiEHA0AgByIGAn8gAZlEAAAAAAAA4EFjBEAgAaoMAQtBgICAgHgLIgdB4JURai0AACAIcjoAACABIAe3oUQAAAAAAAAwQKIhAQJAIAZBAWoiByAKQRBqa0EBRw0AAkAgCQ0AIANBAEoNACABRAAAAAAAAAAAYQ0BCyAGQS46AAEgBkECaiEHCyABRAAAAAAAAAAAYg0AC0F/IQlB/f///wcgCyASIA1rIhBqIgZrIANIDQAgAEEgIAICfwJAIANFDQAgByAKQRBqayIIQQJrIANODQAgA0ECagwBCyAHIApBEGprIggLIgcgBmoiBiAEELkBIAAgDiALELUBIABBMCACIAYgBEGAgARzELkBIAAgCkEQaiAIELUBIABBMCAHIAhrQQBBABC5ASAAIA0gEBC1ASAAQSAgAiAGIARBgMAAcxC5ASAGIAIgAiAGSBshCQsgCkGwBGokACAJC40FAgZ+An8gASABKAIAQQdqQXhxIgFBEGo2AgAgACABKQMAIQQgASkDCCEFIwBBIGsiACQAAkAgBUL///////////8AgyIDQoCAgICAgMCAPH0gA0KAgICAgIDA/8MAfVQEQCAFQgSGIARCPIiEIQMgBEL//////////w+DIgRCgYCAgICAgIAIWgRAIANCgYCAgICAgIDAAHwhAgwCCyADQoCAgICAgICAQH0hAiAEQoCAgICAgICACFINASACIANCAYN8IQIMAQsgBFAgA0KAgICAgIDA//8AVCADQoCAgICAgMD//wBRG0UEQCAFQgSGIARCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiADQv///////7//wwBWDQBCACECIANCMIinIgFBkfcASQ0AIABBEGohCSAEIQIgBUL///////8/g0KAgICAgIDAAIQiAyEGAkAgAUGB9wBrIghBwABxBEAgAiAIQUBqrYYhBkIAIQIMAQsgCEUNACAGIAitIgeGIAJBwAAgCGutiIQhBiACIAeGIQILIAkgAjcDACAJIAY3AwgCQEGB+AAgAWsiAUHAAHEEQCADIAFBQGqtiCEEQgAhAwwBCyABRQ0AIANBwAAgAWuthiAEIAGtIgKIhCEEIAMgAoghAwsgACAENwMAIAAgAzcDCCAAKQMIQgSGIAApAwAiA0I8iIQhAiAAKQMQIAApAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIABBIGokACACIAVCgICAgICAgICAf4OEvzkDAAugAQECfyMAQaABayIEJABBfyEFIAQgAUEBa0EAIAEbNgKUASAEIAAgBEGeAWogARsiADYCkAEgBEEAQZABEKgBIgRBfzYCTCAEQRA2AiQgBEF/NgJQIAQgBEGfAWo2AiwgBCAEQZABajYCVAJAIAFBAEgEQEHoyhJBPTYCAAwBCyAAQQA6AAAgBCACIANBDkEPELMBIQULIARBoAFqJAAgBQurAQEEfyAAKAJUIgMoAgQiBSAAKAIUIAAoAhwiBmsiBCAEIAVLGyIEBEAgAygCACAGIAQQpgEaIAMgAygCACAEajYCACADIAMoAgQgBGsiBTYCBAsgAygCACEEIAUgAiACIAVLGyIFBEAgBCABIAUQpgEaIAMgAygCACAFaiIENgIAIAMgAygCBCAFazYCBAsgBEEAOgAAIAAgACgCLCIDNgIcIAAgAzYCFCACCxYAIABFBEBBAA8LQejKEiAANgIAQX8LogIAIABFBEBBAA8LAn8CQCAABH8gAUH/AE0NAQJAQfzLEigCACgCAEUEQCABQYB/cUGAvwNGDQNB6MoSQRk2AgAMAQsgAUH/D00EQCAAIAFBP3FBgAFyOgABIAAgAUEGdkHAAXI6AABBAgwECyABQYBAcUGAwANHIAFBgLADT3FFBEAgACABQT9xQYABcjoAAiAAIAFBDHZB4AFyOgAAIAAgAUEGdkE/cUGAAXI6AAFBAwwECyABQYCABGtB//8/TQRAIAAgAUE/cUGAAXI6AAMgACABQRJ2QfABcjoAACAAIAFBBnZBP3FBgAFyOgACIAAgAUEMdkE/cUGAAXI6AAFBBAwEC0HoyhJBGTYCAAtBfwVBAQsMAQsgACABOgAAQQELCwcAIAAQywELBwAgABDMAQu9BQEJfyMAQRBrIggkACAIQZjMEjYCAEGUzBIoAgAhByMAQYABayIBJAAgASAINgJcAkAgB0GhfkcgB0HcAWpBBk9xRQRAIAEgASgCXCICQQRqNgJcAn9BACACKAIAIgAoAgQiAkUNABogACgCCCEEIAAoAgAiBigCDEECTgRAA0ACQCACIARPDQACfyACIAQgBigCFBEAACIAQYABTwRAAkAgAEGAgARJDQAgA0ERSg0AIAEgAEEYdjYCMCABQeAAaiADaiIFQQVBqzIgAUEwahCpASABIABBEHZB/wFxNgIgIAVBBGpBA0GmMiABQSBqEKkBIAEgAEEIdkH/AXE2AhAgBUEGakEDQaYyIAFBEGoQqQEgASAAQf8BcTYCACAFQQhqQQNBpjIgARCpASADQQpqDAILIANBFUoNAiABIABBCHZB/wFxNgJQIAFB4ABqIANqIgVBBUGrMiABQdAAahCpASABIABB/wFxNgJAIAVBBGpBA0GmMiABQUBrEKkBIANBBmoMAQsgAUHgAGogA2ogADoAACADQQFqCyEDIAIgBigCABEBACACaiECIANBG0gNAQsLIAIgBEkMAQsgAUHgAGogAkEbIAQgAmsiACAAQRtOGyIDEKYBGiAAQRtKCyEFIAcQigEhAkGwzBIhAANAAkACQCACLQAAIgRBJUcEQCAERQ0BDAILIAJBAWohBiACLQABIgRB7gBHBEAgBiECDAILIAAgAUHgAGogAxCmASADaiEAIAUEQCAAQaIyLwAAOwAAIABBpDItAAA6AAIgAEEDaiEACyAGQQFqIQIMAgsgAEEAOgAADAMLIAAgBDoAACAAQQFqIQAgAkEBaiECDAALAAtBlL0SIAcQigEiABB6IQJBsMwSIAAgAhCmASACakEAOgAACyABQYABaiQAIAhBEGokAEGwzBIL4wEBAX8CQAJAAkACfyAALQAQBEBBACEBIABBDGogACgCCCACIAIgA2oiBiACIARqIAYgACgCDCAFEG1BAE4NARpBACEGDAMLAkAgACgCFCABRw0AIAAoAhwgBUcNACAAKAIYIARKDQAgAC0AIEUEQEEADwsgACgCDCIGKAIIKAIAIARODQQLIAAgBTYCHCAAIAQ2AhggACABNgIUQQAhASAAKAIIIAIgAiADaiIGIAIgBGogBiAAKAIMIAUQbUEASA0BIABBDGoLKAIAIQZBASEBDAELQQAhBgsgACABOgAgCyAGC7gzARp/IwBBEGsiGCQAIAJBAnQiChDLASEbIAoQywEhGSACQQBKBEADQCAbIA1BAnQiCmogACAKaigCACEVIAEgCmooAgAhE0EAIQVBACEWQQAhFCMAQRBrIhokAEGUzBICf0HolxEoAgAhCCAaQQxqIhdBAUGIAxDPASIDNgIAQXsgA0UNABogEyAVaiEGQYyaESgCACEJAkACQAJAAkBB7L8SLQAARQRAQYjAEi0AAEUEQEGIwBJBAToAAAtB7L8SQQE6AABBaSEQAkACQEG4vhItAABBAXFFDQBB1L0SKAIAIgdFDQACQEGMwBIoAgAiBEEATA0AA0AgBUEDdEGQwBJqKAIAQZS9EkcEQCAFQQFqIgUgBEcNAQwCCwsgBUEDdEGQwBJqKAIEDQELIAcRCgAiBA0BQYzAEigCACIEQQBKBEBBACEFA0AgBUEDdEGQwBJqKAIAQZS9EkYEQCAFQQN0QZDAEmpBATYCBAwDCyAFQQFqIgUgBEcNAAsgBEESSg0BC0GMwBIgBEEBajYCACAEQQN0QZDAEmoiBUEBNgIEIAVBlL0SNgIACwJAQay+EigCACIHRQ0AAkBBjMASKAIAIgRBAEwNAEEAIQUDQCAFQQN0QZDAEmooAgBB7L0SRwRAIAVBAWoiBSAERw0BDAILC0EAIQQgBUEDdEGQwBJqKAIEDQILIAcRCgAiBA0BQYzAEigCACIHQQBKBEBBACEFA0AgBUEDdEGQwBJqKAIAQey9EkYEQCAFQQN0QZDAEmpBATYCBAwDCyAFQQFqIgUgB0cNAAtBACEEIAdBEkoNAgtBjMASIAdBAWo2AgAgB0EDdEGQwBJqIgVBATYCBCAFQey9EjYCAAtBACEECyAEDQFB7JcRKAIAIhBBAUcEQEGQCSAQEQQACwsMAQsgFygCABDMAQwBCyAIKAIMIQVBACEQIANBADYChAMgA0EANgJwIAMgCDYCTCADQey9EjYCRCADQgA3AlQgA0EANgIQIANCADcCCCADQQA2AgAgAyAFQYACciIINgJIIAMgCUH+/7//e3FBAXIgCSAIQYCAAnEbNgJQIBcoAgAhBCAVIQUgBiEDIwBBkAVrIggkACAIQQA2AhAgCEIANwMIAkACQAJAAkAgBCgCEEUEQCAEKAIAQaABEM0BIglFDQEgBCAJNgIAIAQoAgRBIBDNASIJRQ0BIARBCDYCECAEQQA2AgggBCAJNgIECyAEQQA2AgwgCEG8AWohEiAIQQhqIQwjAEEQayIJJAAgCUEANgIMIAQoAkQhC0GczBJBADYCAEGYzBIgCzYCACAJQQxqIREgCEEYaiIHIQYjAEFAaiILJAAgBEIANwIUIARCADcCPCAEQgA3AhwgBEEANgIkIAQoAlQiDwRAIA9BAkEAEJEBCyAGQgA3AiQgBkEANgIYIAZCADcCECAGQTBqQQBB9AAQqAEaIAYgBCgCSDYCACAGIAQoAlA2AgQgBiAEKAJENgIIIAQoAkwhDyAGIAQ2AiwgBiADNgIgIAYgBTYCHCAGIA82AgwgEUEANgIAAkAgBSADIAYoAggoAkgRAABFBEBB8HwhBQwBCyALIAU2AgwgC0EANgIUIAtBEGogC0EMaiADIAYQGiIFQQBIDQAgESALQRBqQQAgC0EMaiADIAZBABAbIgNBAEgEQCADQR91IANxIQUMAQsCQCAGLQCgAUEBcUUEQCAGKAI0IQUMAQsgESgCACEFQQFBOBDPASIDRQRAQXshBQwCCyADQQU2AgAgAyAFNgIMIANC/////x83AhggBigCNCIFQQBIBEAgAxARIAMQzAFBdSEFDAILIAYoAoABIg8gBkFAayAPGyADNgIAIBEgAzYCAAsgBCAFNgIcQQAhBSAEKAKEAyIORQ0AIA4oAgwiA0EATA0AIA4oAggiBgRAIAZBBSAOEJEBIA4oAgwiA0EATA0BCwNAAkAgDigCFCAWQdwAbGoiBigCBEEBRw0AIAYoAiQiBUEATA0AIAZBJGohA0EAIQYDQCADIAZBAnRqKAIIQRBGBEACQAJAIAQoAoQDIgVFDQAgBSgCCCIFRQ0AIAMgBkEDdGoiEUEYaiIcKAIAIQ8gCyARKAIcNgIUIAsgDzYCECAFIAtBEGogC0E8ahCPAQ0BC0GZfiEFDAULIAsoAjwiBUEASA0EIBwgBTYCACADKAIAIQULIAZBAWoiBiAFSA0ACyAOKAIMIQMLQQAhBSAWQQFqIhYgA0gNAAsLIAtBQGskAAJAAkAgBSIGDQACQCAHLQCgAUECcUUNAEEAIQUgCUEMaiEDQYh/IQYDQCADKAIAIgMoAgAiC0EHRwRAIAtBBUcNAyADKAIQQQFHDQMgAy0AB0EQcUUNAyAFQQFHDQIgAygCDA0DBUEBIAUgAygCEBshBSADQQxqIQMMAQsLCyAJKAIMIAQoAkQQQyIGDQACQCAHKAI4IgNBAEwNACAHKAIMLQAIQYABcUUNACAELQBJQQFxDQACfyAHKAI0IANHBEAgCUEMaiEGIAQhBSMAQRBrIgMhFiADJAAgAyAHKAI0IgtBAnQiDkETakFwcWsiDyQAIAtBAEoEQCAPQQRqQQAgDhCoARoLIBZBADYCDAJAIAYgDyAWQQxqEFUiA0EASA0AIAYoAgAgDxBWIgMNACAHKAI0Ig5BAEoEQCAHQUBrIRFBASELQQEhAwNAIA8gA0ECdGooAgBBAEoEQCAHKAKAASIGIBEgBhsiBiALQQN0aiAGIANBA3RqKQIANwIAIAcoAjQhDiALQQFqIQsLIAMgDkghBiADQQFqIQMgBg0ACwsgBygCECERQQAhDiAHQQA2AhBBASEDA0ACQCARIAN2IgZBAXFFDQAgDyADQQJ0aigCACILQR9KDQAgByAOQQEgC3RyIg42AhALIANBAWoiC0EgRwRAAkAgBkECcUUNACAPIAtBAnRqKAIAIgZBH0oNACAHIA5BASAGdHIiDjYCEAsgA0ECaiEDDAELCyAHIAcoAjgiAzYCNCAFIAM2AhwgBSgCVCIFBEAgBUEDIA8QkQELQQAhAwsgFkEQaiQAIAMMAQsgCSgCDBBECyIGDQELIAkoAgwgBxBFIgYNAAJAIAQgBygCMCIDQQBKBH8gA0EDdBDLASIFRQRAQXshBgwDCyAMIAU2AgggDCADNgIEIAxBADYCACAHIAw2ApgBIAkoAgwgB0EAEEYiBg0BIAkoAgwQRyAJKAIMIAdBABBIIgZBAEgNASAJKAIMIAcQSSIGDQEgCSgCDEEAEEogBygCMAUgAws2AiggCSgCDCAEQQAgBxBLIgYNACAHKAKEAQRAIAkoAgxBABBMIAkoAgxBACAHEE0gCSgCDCAHEE4LQQAhBiAJKAIMIQMMAgsgBygCMEEATA0AIAwoAggiA0UNACADEMwBCyAHKAIkIgMEQEGczBIgAzYCAEGgzBIgBygCKDYCAAsgCSgCDBAQQQAhAyAHKAKAASIFRQ0AIAUQzAELIBIgAzYCACAJQRBqJAAgBiIDDQMgBCAIKAIoIgU2AiwgBCAFIAgoAiwiB3IiAzYCMCAEKAKEAyIJBEAgCSgCDA0DCyAIKAIwIQkgA0EBcUUNASAFIAlyIQMMAgtBeyEDIAQoAkQhBEGczBJBADYCAEGYzBIgBDYCAAwCCyAHIAlxIAVyIQMLIARBADYC+AIgBEEANgJ0IAQgAzYCNCAEQgA3AlggBEIANwJgIARCADcCaCAEKAJwIgMEQCADEMwBIARBADYCcAsgCCgCvAEhDiAIIAQoAkQ2AsgBIAggBCgCUDYCzAEgCEIANwPAASAIIAhBGGo2AtABAkACQAJ/AkACQAJAIA4gCEHYAWogCEHAAWoQQCIDRQRAIARB1IABQdSAAyAIKALgASIFQQZxGyAFcSAIKALkASIDQYIDcXI2AmAgA0GAA3EEQCAEIAgoAtgBNgJkIAQgCCgC3AE2AmgLIAgoAvwBQQBMBEAgCCgCrAJBAEwNAgsgBCgCRCIHIAhB6AFqIAhBmAJqEEECQCAIKAKIAyIFQQBMBEAgCCgC/AEhAwwBC0HIASAFbiEJIAgoAvwBIQMgBUHIAUsNACADQTxsIgxBAEwNA0EAIQUCf0EAIAgoAuwBIhJBf0YNABpBASASIAgoAugBayISQeMASw0AGiASQQF0QbAZai4BAAsgDGwhBgJAIAgoAvwCIgxBf0YNAEEBIQUgDCAIKAL4AmsiDEHjAEsNACAMQQF0QbAZai4BACEFCyAFIAlsIgUgBkoNAyAFIAZIDQAgCCgC+AIgCCgC6AFJDQMLAkAgA0UEQEEAIQNBASEJDAELIAQgAxDLASIFNgJwQQAhCSAFRQRAQXshAwwBCyAEIAUgCEGAAmogAxCmASIFIANqIgM2AnRBASEGIAUgAyAHKAI8EQAAIQ8CQCAIKAL8ASIDQQFMBEAgA0EBRw0BIA9FDQELIAQoAnQhCyAEKAJwIQcgBCgCRCIRKAJMQQJ2QQdxIgVBB0YEQCAHIQMDQCADIAMgESgCABEBACIFaiIDIAtJDQALIAVBAUYhBQtBdSEDIAUgCyAHa2oiBkH+AUoNASAEIAU2AvgCIARB+ABqIAZBgAIQqAEhEiAHIAtJBEAgBSALakEBayEMA0BBACEDAkAgCyAHayAHIBEoAgARAQAiBSAFIAdqIAtLGyIGQQBMDQADQCAMIAMgB2oiBWsiCUEATA0BIBIgBS0AAGogCToAACADQQFqIgMgBkgNAAsLIAYgB2oiByALSQ0ACwtBAkEDIA8bIQYLIAQgBjYCWCAEIAgoAugBIgU2AvwCIAQgCCgC7AE2AoADQQAhA0EBIQkgBUF/Rg0AIAQgBSAEKAJ0aiAEKAJwazYCXAsgBCAIKAL0AUGABHEgBCgCbCAIKALwAUEgcXJyNgJsIAkNBQsgCCgCSEEATA0FIAgoAhAiBEUNBSAEEMwBDAULIAgoAogDQQBMDQELIARB+ABqIAhBjANqQYACEKYBGiAEQQQ2AlggBCAIKAL4AiIDNgL8AiAEIAgoAvwCNgKAAyADQX9HBEAgBCAEKAJEKAIMIANqNgJcCyAEKAJsIAgoAoADQSBxciEFIAgoAoQDIQMgBEHsAGoMAQsgBCAEKAJsIAVBIHFyIgU2AmwgCCgC3AENASAEQewAagsgBSADQYAEcXI2AgALIAgoApgBIgMEQCADEMwBIAhBADYCmAELAkACQAJAIA4gBCAIQRhqEEIiA0UEQCAIKAKgAUEASgRAAkAgBCgCDCIDIAQoAhAiBUkNACAFRQ0AIAVBAXQiCUEATARAQXUhAwwHC0F7IQMgBCgCACAFQShsEM0BIgdFDQYgBCAHNgIAIAQoAgQgBUEDdBDNASIFRQ0GIAQgCTYCECAEIAU2AgQgBCgCDCEDCyAEIANBAWo2AgwgBCAEKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgBCgCBCAEKAIIIAQoAgBrQRRtQQJ0akHPADYCACAEKAIIQQA2AgQgBCgCCEEANgIIIAQoAghBADYCDAsCQCAEKAIMIgMgBCgCECIFSQ0AIAVFDQAgBUEBdCIJQQBMBEBBdSEDDAYLQXshAyAEKAIAIAVBKGwQzQEiB0UNBSAEIAc2AgAgBCgCBCAFQQN0EM0BIgVFDQUgBCAJNgIQIAQgBTYCBCAEKAIMIQMLIAQgA0EBajYCDCAEIAQoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACAEKAIEIAQoAgggBCgCAGtBFG1BAnRqQQE2AgAgCCgCSEEASgRAAn9BACEFIAhBCGoiDCgCACILQQBKBEAgDCgCCCEDA0ACQCADIAVBA3RqIgcoAgQiCSgCBCIGQYACcUUEQCAGQYABcUUNAUF1DAQLIAQoAgAgBygCAGogCSgCGDYCACAMKAIAIQsLIAVBAWoiBSALSA0ACwtBAAshAyAIKAIQIgUEQCAFEMwBCyADDQULAn9BACEHAkAgBCgCDCIDIAQoAhBGDQBBdSADQQBMDQEaQXshByAEKAIAIANBFGwQzQEiBUUNACAEIAU2AgAgBCgCBCADQQJ0EM0BIgVFDQAgBCADNgIQIAQgBTYCBEEAIQcgBCAEKAIMIgUEfyAEKAIAIAVBFGxqQRRrBUEACzYCCAsgBwsiAw0EIAQoAiBBAEoEQEEAIQMDQCAEKAJAIANBDGxqIgUgBCgCACAFKAIIQRRsajYCCCADQQFqIgMgBCgCIEgNAAsLAkAgBCgCNA0AIAQoAoQDIgMEQCADKAIMDQEgCCgCSEEASg0BDAMLIAgoAkhBAEwNAgsgBEECNgI4DAILIAgoAkhBAEwNAiAIKAIQIgVFDQIgBRDMAQwCCyAEKAIwBEAgBEEBNgI4DAELIARBADYCOAsCf0EAIQdBACEGAkAgBCgCACIMRQ0AIAQoAgwiCUEATA0AIAQoAgQhBQNAAkACQAJAAkAgBSAHQQJ0aigCAEEHaw4HAQMDAwECAAMLIAwgB0EUbGoiAygCCCADKAIMbCAGaiEGDAILIAwgB0EUbGooAghBAXQgBmohBgwBCyAMIAdBFGxqKAIIQQNsIAZqIQYLIAdBAWoiByAJRw0ACyAGQQBKBEBBeyAGEMsBIgNFDQIaQQAhByADIQUDQCAEKAIAIQkCQCAFAn8CQAJAAkACQAJAIAQoAgQgB0ECdGooAgBBB2sOBwAGBgYBAgMGCyAJIAdBFGxqKAIIIQwMAwsgCSAHQRRsaigCCEEBdCEMDAILIAkgB0EUbGooAghBA2whDAwBCyAJIAdBFGxqIgkoAgggCSgCDGwhDCAJQQRqDAELIAkgB0EUbGpBBGoLIgkoAgAgDBCmASEFIAkoAgAQzAEgCSAFNgIAIAUgDGohBQsgB0EBaiIHIAQoAgxIDQALIAQgAzYCFCAEIAMgBmo2AhgLC0EACyIDDQFBACEDCyAOEBBBACELQQAhEgJAIAQoAgwiBUUNACAFQQNxIQYgBCgCBCEHIAQoAgAhBAJAIAVBAWtBA0kEQEEAIQUMAQsgBUF8cSEMQQAhBQNAIAQgByAFQQJ0IglqKAIAQQJ0QYAdaigCADYCACAEIAcgCUEEcmooAgBBAnRBgB1qKAIANgIUIAQgByAJQQhyaigCAEECdEGAHWooAgA2AiggBCAHIAlBDHJqKAIAQQJ0QYAdaigCADYCPCAFQQRqIQUgBEHQAGohBCALQQRqIgsgDEcNAAsLIAZFDQADQCAEIAcgBUECdGooAgBBAnRBgB1qKAIANgIAIAVBAWohBSAEQRRqIQQgEkEBaiISIAZHDQALCwwBCyAIKAI8IgQEQEGczBIgBDYCAEGgzBIgCCgCQDYCAAsgDhAQIAgoApgBIgRFDQAgBBDMAQsgCEGQBWokACADRQ0BIBcoAgAiCARAIAgQPyAIEMwBCyADIRALIBdBADYCAAsgEAsiAzYCACADRQRAQSQQywEiFCATNgIEIBQgExDLASIDNgIAIAMgFSATEKYBGiAUIBooAgw2AghBFBDLASIQBEAgEEIANwIAIBBBADYCECAQQgA3AggLIBQgEDYCDEEBIQVBACEDAkAgE0EATARAQQAhBQwBCwNAIAMiEEEBaiEDAkAgECAVai0AAEHcAEcNACADIBNODQAgAyAVai0AAEHHAEYNAgsgAyATSCEFIAMgE0cNAAsLIBRCADcCFCAUIAU6ABAgFEIANwAZCyAaQRBqJAAgFCIDNgIAIAogGWogAygCCDYCACANQQFqIg0gAkcNAAsLIAIhASAZIQAgGEEMaiIVQQA2AgACQAJAQSQQywEiCgR/QQogASABQQpMGyIFQQN0EMsBIgRFDQEgCiAFNgIIQQAhBSAKQQA2AgQgCiAENgIAIAFBAEoEQANAAn9BYiEDAkAgACAFQQJ0aigCACINLQBIQRBxDQAgCigCBCIGBEAgDSgCRCAKKAIMRw0BCyAKKAIIIgMgBkwEQEF7IAooAgAgA0EEdBDNASIGRQ0CGiAKIAY2AgAgCiADQQF0NgIIC0F7QRQQywEiA0UNARogA0IANwIAIANBADYCECADQgA3AgggCigCACAKKAIEIgZBA3RqIhAgAzYCBCAQIA02AgAgCiAGQQFqNgIEAkAgBkUEQCAKIA0oAkQ2AgwgCiANKAJgIgM2AhAgCiANKAJkNgIUIAogDSgCaDYCGCAKIA0oAlgEfyANKAKAA0F/RwVBAAs2AhwgA0EOdkEBcSENDAELIA0oAmAiBiAKKAIQcSIDBEAgDSgCZCEQIAogCigCGCIHIA0oAmgiBCAEIAdJGzYCGCAKIAooAhQiByAQIAcgEEkbNgIUCyAKIAM2AhACQCANKAJYBEAgDSgCgANBf0cNAQsgCkEANgIcC0EBIQ1BACEDIAZBgIABcUUNAQsgCiANNgIgQQAhAwsgAwsEQCAKKAIEIgBBAEoEQEEAIQEDQCAKKAIAIAFBA3RqKAIEIgUEQCAFKAIAQQBKBEAgBSgCCCIABEAgABDMAQsgBSgCDCIABEAgABDMAQsgBUEANgIACyAFKAIQIgAEQCAAEGYLIAUQzAEgCigCBCEACyABQQFqIgEgAEgNAAsLIAooAgAQzAEMBAsgBUEBaiIFIAFIDQALCyAVIAo2AgBBAAVBewsaDAELIAoQzAELIBkQzAFBDBDLASEKIBgoAgwhDSAKIAI2AgggCiAbNgIEIAogDTYCACAYQRBqJAAgCgu/AgEEfyAAKAIIQQBKBEADQCAAKAIEIANBAnRqKAIAIgQoAgAQzAEgBCgCDCIBBEAgASgCAEEASgRAIAEoAggiAgRAIAIQzAELIAEoAgwiAgRAIAIQzAELIAFBADYCAAsgASgCECICBEAgAhBmIAFBADYCEAsgARDMAQsgBBDMASADQQFqIgMgACgCCEgNAAsLIAAoAgQQzAFBACEEIAAoAgAiAygCBEEASgRAA0AgAygCACAEQQN0aiIBKAIEIQIgASgCACIBBEAgARA/IAEQzAELIAIEQCACKAIAQQBKBEAgAigCCCIBBEAgARDMAQsgAigCDCIBBEAgARDMAQsgAkEANgIACyACKAIQIgEEQCABEGYLIAIQzAELIARBAWoiBCADKAIESA0ACwsgAygCABDMASADEMwBIAAQzAFBAAvKHQETfyMAQRBrIhUkACAVQQA2AgwgBUEWdEGAgIAOcSEQAkACQCADQegHTgRAIAAoAghBAEwNAkEAIQUDQAJAIAAoAgQgBUECdGooAgAgASACIAMgBCAQEMMBIgZFDQAgBigCBEEATA0AIAUgESAMRSAGKAIIKAIAIhQgE0hyIggbIREgBiAMIAgbIQwgBCAURg0DIBQgEyAIGyETCyAFQQFqIgUgACgCCEgNAAsgDA0BQQAhEwwCCwJ/IAIgA2ohBUEAIQNBeyAAKAIAIgsoAgQiAUEobBDLASIRRQ0AGiACIARqIQogFUEMaiEWIBEgAUECdGohFAJAIAFBAEwNACABQQFxIQdBhMASKAIAIQRBgMASKAIAIQZB+L8SKAIAIQxBkJoRKAIAIQhB9L8SKAIAIQkgAUEBRwRAIAFBfnEhDQNAIBQgA0EkbGoiAUEANgIgIAFCADcCGCABIAQ2AhQgASAGNgIQIAFBADYCDCABIAw2AgggASAINgIEIAEgCTYCACARIANBAnRqIAE2AgAgFCADQQFyIg5BJGxqIgFBADYCICABQgA3AhggASAENgIUIAEgBjYCECABQQA2AgwgASAMNgIIIAEgCDYCBCABIAk2AgAgESAOQQJ0aiABNgIAIANBAmohAyAPQQJqIg8gDUcNAAsLIAdFDQAgFCADQSRsaiIBQQA2AiAgAUIANwIYIAEgBDYCFCABIAY2AhAgAUEANgIMIAEgDDYCCCABIAg2AgQgASAJNgIAIBEgA0ECdGogATYCAAsCfyACIQMgCiEBIAUhDCARIQlBACEOQX8gCygCBCIGRQ0AGkFiIQoCQCAQQYCQgBBxDQAgCygCDCESIAZBAEoEQANAIAsoAgAgDkEDdGoiBigCBCEHIAYoAgAiCigChAMhBiAJIA5BAnRqKAIAIghBADYCGAJAIAZFDQAgBigCDCINRQ0AAkAgCCgCICIPIA1OBEAgCCgCHCENDAELIA1BBnQhDUF7An8gCCgCHCIPBEAgDyANEM0BDAELIA0QywELIg1FDQUaIAggDTYCHCAIIAYoAgwiDzYCIAsgDUEAIA9BBnQQqAEaCwJAIAdFDQAgByAKKAIcQQFqEGciCg0DIAcoAgRBAEoEQCAHKAIIIQogBygCDCENQQAhBgNAIA0gBkECdCIIakF/NgIAIAggCmpBfzYCACAGQQFqIgYgBygCBEgNAAsLIAcoAhAiBkUNACAGEGYgB0EANgIQCyAOQQFqIg4gCygCBEgNAAsLQX8gASAFSw0BGkF/IAEgA0kNARogAyAFTyIGRQRAQWIhCiABIAxLDQELAkAgEEGAIHFFDQAgAyAFIBIoAkgRAAANAEHwfAwCCwJAAkACQAJAAkACQAJAAkACQCAGDQAgCygCECIGRQ0AIAZBwABxDQQgBkEQcQRAQX8hCiABIANHDQogAUEBaiEEIAEhAgwGCyAFIQggBkGAAXENAyAGQYACcUUNASASIAMgBUEBEHkiBiAFIAYgBSASKAIQEQAAIgcbIQggAyAGSSABIAZNcQ0DIAwhBCABIQIgB0UNAwwFCyAMIQQgASECIAMgBUcNBEF7IAsoAgQiDkE4bBDLASIPRQ0JGiAOQQBMBEBBfyEKDAYLIAsoAgAhAUEAIQgDQCABIAhBA3RqIgcoAgAhCiAPIAhBOGxqIgZBADYCACAGIAooAkggEHI2AgggBygCBCEHIAYgBTYCFCAGIAc2AgwgBiAJIAhBAnRqKAIAIgcoAgA2AhggBiAHKAIENgIcIAcoAgghDSAGQQA2AjQgBkEANgIkIAYgDTYCICAGQX82AiwgBiAHNgIoIAYgCigCHEEBdEECajYCECAIQQFqIgggDkcNAAsMAQsgDCEEIAEhAiAGQYCAAnENAgwDC0EAIQogDkEATARAQX8hCgwECwJAA0AgCygCACAKQQN0aigCACIGKAJcRQRAIAYgBSAFIAUgBSAPIApBOGxqEGgiBkF/Rw0CIAsoAgQhDgsgCkEBaiIKIA5IDQALQX8hCgwECyAGQQBIBEAgBiEKDAQLIBZBADYCAAwEC0F/IAsoAhQiBiAFIANrSw0GGgJAIAsoAhgiByAIIAFrTwRAIAEhAgwBCyAIIAdrIgIgBU8NACASIAMgAhB3IQIgCygCFCEGC0F/IQogAiAFIAZrQQFqIAwgBSAMa0EBaiAGSRsiBE0NAQwFCyABQQFqIQQgASECC0F7IAsoAgQiDkE4bBDLASIPRQ0EGiAOQQBKBEAgCygCACESQQAhCANAIA8gCEE4bGoiBkEANgIAIAYgEiAIQQN0aiIHKAIAIgooAkggEHI2AgggBygCBCEHIAYgATYCFCAGIAc2AgwgBiAJIAhBAnRqKAIAIgcoAgA2AhggBiAHKAIENgIcIAcoAgghDSAGQQA2AjQgBkEANgIkIAYgDTYCICAGQX82AiwgBiAHNgIoIAYgCigCHEEBdEECajYCECAIQQFqIgggDkcNAAsLIAMhECAFIQFBACEFIwBBEGsiBiQAIAsoAgwhFwJAIAsoAgQiCEEEdBDLASIHRQRAQXshAwwBCyAIQQBKBEAgASAEayENA0AgCygCACAFQQN0aigCACEJIAcgBUEEdGoiA0EANgIAAkAgCSgCWARAIAkoAoADIgpBf0cEQCAJIBAgASACIAQgCmogASAKIA1JGyIKIAZBDGogBkEIahBrRQ0CIANBATYCACADIAYoAgw2AgQgBigCCCEJIAMgCjYCDCADIAk2AggMAgsgCSAQIAEgAiABIAZBDGogBkEIahBrRQ0BCyADQQI2AgAgAyAENgIIIAMgAjYCBAsgBUEBaiIFIAhHDQALCwJAAkACQAJAIAQgAmtB9QNIDQAgCygCHEUNACAIQQBMIg4NAiAIQX5xIQ0gCEEBcSESIAhBAEohGANAQQAhCUEAIQUDQAJAIAcgBUEEdGoiAygCAEUNACACIAMoAgRJDQACQCADKAIIIAJNBEAgCygCACAFQQN0aigCACAQIAEgAiADKAIMIAZBDGogBkEIahBrRQ0BIAMgBigCDCIKNgIEIAMgBigCCDYCCCACIApJDQILIAsoAgAgBUEDdGooAgAgECABIAwgAiAPIAVBOGxqEGgiA0F/RwRAIANBAEgNBgwICyAJQQFqIQkMAQsgA0EANgIACyAFQQFqIgUgCEcNAAsgAiAETw0DAkAgCUUEQCAODQVBACEFIAQhAkEAIQMgCEEBRwRAA0AgByAFQQR0aiIJKAIAQQFGBEAgCSgCBCIJIAIgAiAJSxshAgsgByAFQQFyQQR0aiIJKAIAQQFGBEAgCSgCBCIJIAIgAiAJSxshAgsgBUECaiEFIANBAmoiAyANRw0ACwsCQCASRQ0AIAcgBUEEdGoiBSgCAEEBRw0AIAUoAgQiBSACIAIgBUsbIQILIAYgAjYCDCACIARHDQEMBQsgAiAXKAIAEQEAIAJqIQILIBgNAAsMAgsgCEEATCENQQEhCQNAIA1FBEBBACEFA0ACQAJAAkACQCAHIAVBBHRqIgMoAgAOAgMAAQsgAiADKAIESQ0CIAIgAygCCEkNACALKAIAIAVBA3RqKAIAIBAgASACIAMoAgwgBkEMaiAGQQhqEGtFDQEgAyAGKAIMIgo2AgQgAyAGKAIINgIIIAIgCkkNAgtBACALKAIAIAVBA3RqKAIAIgMtAGFBwABxIAkbDQEgAyAQIAEgDCACIA8gBUE4bGoQaCIDQX9GDQEgA0EATg0HDAULIANBADYCAAsgBUEBaiIFIAhHDQALCyACIARPDQIgCygCIARAIAIgASALKAIMKAIQEQAAIQkLIAIgFygCABEBACACaiECDAALAAsgBxDMAQwCCyAHEMwBQX8hAwwBCyAHEMwBIBYgAiAQazYCACAFIQMLIAZBEGokACADIgpBAE4NAQsgCygCBEEASgRAQQAhCQNAAkAgD0UNACAPIAlBOGxqKAIAIgZFDQAgBhDMAQsCQCALKAIAIAlBA3RqIgYoAgAtAEhBIHFFDQAgBigCBCIHRQ0AIAcoAgRBAEoEQCAHKAIIIQ0gBygCDCEOQQAhBgNAIA4gBkECdCIIakF/NgIAIAggDWpBfzYCACAGQQFqIgYgBygCBEgNAAsLIAcoAhAiBkUNACAGEGYgB0EANgIQCyAJQQFqIgkgCygCBEgNAAsLIA8NAQwCCyALKAIEQQBKBEBBACEJA0ACQCAPRQ0AIA8gCUE4bGooAgAiBkUNACAGEMwBCwJAIAsoAgAgCUEDdGoiBigCAC0ASEEgcUUNACAGKAIEIgdFDQAgBygCBEEASgRAIAcoAgghDSAHKAIMIQ5BACEGA0AgDiAGQQJ0IghqQX82AgAgCCANakF/NgIAIAZBAWoiBiAHKAIESA0ACwsgBygCECIGRQ0AIAYQZiAHQQA2AhALIAlBAWoiCSALKAIESA0ACwsgD0UNAQsgDxDMAQsgCgshDCALKAIEIgNBAEoEQEEAIQEDQCAUIAFBJGxqIgQoAhwiBgRAIAYQzAEgBEEANgIcIAsoAgQhAwsgAUEBaiIBIANIDQALCyAREMwBIAwLIgZBAEgNASAAKAIAIQBBACEBAkAgBkEASA0AIAAoAgQgBkwNACAAKAIAIAZBA3RqKAIEIQELIAEiDEUNASAMKAIEIgBB6AdKDQFBACEFQZTNEiAANgIAQZDNEiAGNgIAQZDNEiETIAwoAgRBAEwNASAMKAIMIQQgDCgCCCEDA0AgBUEDdCIGQZjNEmogAyAFQQJ0IgBqKAIANgIAIAZBnM0SaiAAIARqKAIANgIAIAVBAWoiBSAMKAIESA0ACwwBC0EAIRMgDCgCBCIGQegHSg0AQQAhBUGUzRIgBjYCAEGQzRIgETYCAEGQzRIhEyAMKAIEQQBMDQAgDCgCDCEEIAwoAgghAwNAIAVBA3QiBkGYzRJqIAMgBUECdCIAaigCADYCACAGQZzNEmogACAEaigCADYCACAFQQFqIgUgDCgCBEgNAAsLIBVBEGokACATC8MDAgh/AXwjAEFAaiIGJAAgBiACNgI0IAYgAzYCMEGQlhEgBkEwahDIAQJAIAAoAghBAEwEQBDKAQwBCyAFQRZ0QYCAgA5xIQ1BACEFAkACQANAIAYgBUECdCIHIAAoAgRqKAIAKQIAQiCJNwMgQc6WESAGQSBqEMgBEAEhDiAAKAIEIAdqKAIAIAEgAiADIAQgDRDDASEHEAEgDqEhDgJAAkAgB0UNACAHKAIEQQBMDQAgBiAHKAIIKAIAIgo2AhggBiAOOQMQQYqXESAGQRBqEMkBIAUgCyAIRSAJIApKciIMGyELIAcgCCAMGyEIIAQgCkYNAyAKIAkgDBshCQwBCyAGIA45AwBB8JURIAYQyQELIAVBAWoiBSAAKAIISA0ACxDKASAIDQFBACEJDAILEMoBC0EAIQkgCCgCBCIHQegHSg0AQQAhBUGUzRIgBzYCAEGQzRIgCzYCAEGQzRIhCSAIKAIEQQBMDQAgCCgCDCEKIAgoAgghBANAIAVBA3QiB0GYzRJqIAQgBUECdCIAaigCADYCACAHQZzNEmogACAKaigCADYCACAFQQFqIgUgCCgCBEgNAAsLIAZBQGskACAJCysBAX8jAEEQayICJAAgAiABNgIMQci+EiAAIAFBAEEAELMBGiACQRBqJAALKwEBfyMAQRBrIgIkACACIAE2AgxByL4SIAAgAUEOQQAQswEaIAJBEGokAAueAgECf0GUvxIoAgAaAkBBf0EAAn9B6JYREK0BIgACf0GUvxIoAgBBAEgEQEHolhEgAEHIvhIQsgEMAQtB6JYRIABByL4SELIBCyIBIABGDQAaIAELIABHG0EASA0AAkBBmL8SKAIAQQpGDQBB3L4SKAIAIgBB2L4SKAIARg0AQdy+EiAAQQFqNgIAIABBCjoAAAwBCyMAQRBrIgAkACAAQQo6AA8CQAJAQdi+EigCACIBBH8gAQVByL4SEK4BDQJB2L4SKAIAC0HcvhIoAgAiAUYNAEGYvxIoAgBBCkYNAEHcvhIgAUEBajYCACABQQo6AAAMAQtByL4SIABBD2pBAUHsvhIoAgARAgBBAUcNACAALQAPGgsgAEEQaiQACwugLgELfyMAQRBrIgskAAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEH0AU0EQEHYixMoAgAiBkEQIABBC2pBeHEgAEELSRsiBEEDdiIBdiIAQQNxBEACQCAAQX9zQQFxIAFqIgJBA3QiAUGAjBNqIgAgAUGIjBNqKAIAIgEoAggiBEYEQEHYixMgBkF+IAJ3cTYCAAwBCyAEIAA2AgwgACAENgIICyABQQhqIQAgASACQQN0IgJBA3I2AgQgASACaiIBIAEoAgRBAXI2AgQMDAsgBEHgixMoAgAiCE0NASAABEACQCAAIAF0QQIgAXQiAEEAIABrcnEiAEEBayAAQX9zcSIAIABBDHZBEHEiAHYiAUEFdkEIcSICIAByIAEgAnYiAEECdkEEcSIBciAAIAF2IgBBAXZBAnEiAXIgACABdiIAQQF2QQFxIgFyIAAgAXZqIgFBA3QiAEGAjBNqIgIgAEGIjBNqKAIAIgAoAggiA0YEQEHYixMgBkF+IAF3cSIGNgIADAELIAMgAjYCDCACIAM2AggLIAAgBEEDcjYCBCAAIARqIgMgAUEDdCIBIARrIgJBAXI2AgQgACABaiACNgIAIAgEQCAIQXhxQYCME2ohBEHsixMoAgAhAQJ/IAZBASAIQQN2dCIFcUUEQEHYixMgBSAGcjYCACAEDAELIAQoAggLIQUgBCABNgIIIAUgATYCDCABIAQ2AgwgASAFNgIICyAAQQhqIQBB7IsTIAM2AgBB4IsTIAI2AgAMDAtB3IsTKAIAIglFDQEgCUEBayAJQX9zcSIAIABBDHZBEHEiAHYiAUEFdkEIcSICIAByIAEgAnYiAEECdkEEcSIBciAAIAF2IgBBAXZBAnEiAXIgACABdiIAQQF2QQFxIgFyIAAgAXZqQQJ0QYiOE2ooAgAiAygCBEF4cSAEayEBIAMhAgNAAkAgAigCECIARQRAIAIoAhQiAEUNAQsgACgCBEF4cSAEayICIAEgASACSyICGyEBIAAgAyACGyEDIAAhAgwBCwsgAygCGCEKIAMgAygCDCIFRwRAIAMoAggiAEHoixMoAgBJGiAAIAU2AgwgBSAANgIIDAsLIANBFGoiAigCACIARQRAIAMoAhAiAEUNAyADQRBqIQILA0AgAiEHIAAiBUEUaiICKAIAIgANACAFQRBqIQIgBSgCECIADQALIAdBADYCAAwKC0F/IQQgAEG/f0sNACAAQQtqIgBBeHEhBEHcixMoAgAiCEUNAAJ/QQAgBEGAAkkNABpBHyAEQf///wdLDQAaIABBCHYiACAAQYD+P2pBEHZBCHEiAHQiASABQYDgH2pBEHZBBHEiAXQiAiACQYCAD2pBEHZBAnEiAnRBD3YgACABciACcmsiAEEBdCAEIABBFWp2QQFxckEcagshB0EAIARrIQECQAJAAkAgB0ECdEGIjhNqKAIAIgJFBEBBACEADAELQQAhACAEQRkgB0EBdmtBACAHQR9HG3QhAwNAAkAgAigCBEF4cSAEayIGIAFPDQAgAiEFIAYiAQ0AQQAhASACIQAMAwsgACACKAIUIgYgBiACIANBHXZBBHFqKAIQIgJGGyAAIAYbIQAgA0EBdCEDIAINAAsLIAAgBXJFBEBBACEFQQIgB3QiAEEAIABrciAIcSIARQ0DIABBAWsgAEF/c3EiACAAQQx2QRBxIgB2IgJBBXZBCHEiAyAAciACIAN2IgBBAnZBBHEiAnIgACACdiIAQQF2QQJxIgJyIAAgAnYiAEEBdkEBcSICciAAIAJ2akECdEGIjhNqKAIAIQALIABFDQELA0AgACgCBEF4cSAEayIGIAFJIQMgBiABIAMbIQEgACAFIAMbIQUgACgCECICBH8gAgUgACgCFAsiAA0ACwsgBUUNACABQeCLEygCACAEa08NACAFKAIYIQcgBSAFKAIMIgNHBEAgBSgCCCIAQeiLEygCAEkaIAAgAzYCDCADIAA2AggMCQsgBUEUaiICKAIAIgBFBEAgBSgCECIARQ0DIAVBEGohAgsDQCACIQYgACIDQRRqIgIoAgAiAA0AIANBEGohAiADKAIQIgANAAsgBkEANgIADAgLIARB4IsTKAIAIgBNBEBB7IsTKAIAIQECQCAAIARrIgJBEE8EQEHgixMgAjYCAEHsixMgASAEaiIDNgIAIAMgAkEBcjYCBCAAIAFqIAI2AgAgASAEQQNyNgIEDAELQeyLE0EANgIAQeCLE0EANgIAIAEgAEEDcjYCBCAAIAFqIgAgACgCBEEBcjYCBAsgAUEIaiEADAoLIARB5IsTKAIAIgNJBEBB5IsTIAMgBGsiATYCAEHwixNB8IsTKAIAIgAgBGoiAjYCACACIAFBAXI2AgQgACAEQQNyNgIEIABBCGohAAwKC0EAIQAgBEEvaiIIAn9BsI8TKAIABEBBuI8TKAIADAELQbyPE0J/NwIAQbSPE0KAoICAgIAENwIAQbCPEyALQQxqQXBxQdiq1aoFczYCAEHEjxNBADYCAEGUjxNBADYCAEGAIAsiAWoiBkEAIAFrIgdxIgUgBE0NCUGQjxMoAgAiAQRAQYiPEygCACICIAVqIgkgAk0NCiABIAlJDQoLQZSPEy0AAEEEcQ0EAkACQEHwixMoAgAiAQRAQZiPEyEAA0AgASAAKAIAIgJPBEAgAiAAKAIEaiABSw0DCyAAKAIIIgANAAsLQQAQ0AEiA0F/Rg0FIAUhBkG0jxMoAgAiAEEBayIBIANxBEAgBSADayABIANqQQAgAGtxaiEGCyAEIAZPDQUgBkH+////B0sNBUGQjxMoAgAiAARAQYiPEygCACIBIAZqIgIgAU0NBiAAIAJJDQYLIAYQ0AEiACADRw0BDAcLIAYgA2sgB3EiBkH+////B0sNBCAGENABIgMgACgCACAAKAIEakYNAyADIQALAkAgAEF/Rg0AIARBMGogBk0NAEG4jxMoAgAiASAIIAZrakEAIAFrcSIBQf7///8HSwRAIAAhAwwHCyABENABQX9HBEAgASAGaiEGIAAhAwwHC0EAIAZrENABGgwECyAAIQMgAEF/Rw0FDAMLQQAhBQwHC0EAIQMMBQsgA0F/Rw0CC0GUjxNBlI8TKAIAQQRyNgIACyAFQf7///8HSw0BIAUQ0AEhA0EAENABIQAgA0F/Rg0BIABBf0YNASAAIANNDQEgACADayIGIARBKGpNDQELQYiPE0GIjxMoAgAgBmoiADYCAEGMjxMoAgAgAEkEQEGMjxMgADYCAAsCQAJAAkBB8IsTKAIAIgEEQEGYjxMhAANAIAMgACgCACICIAAoAgQiBWpGDQIgACgCCCIADQALDAILQeiLEygCACIAQQAgACADTRtFBEBB6IsTIAM2AgALQQAhAEGcjxMgBjYCAEGYjxMgAzYCAEH4ixNBfzYCAEH8ixNBsI8TKAIANgIAQaSPE0EANgIAA0AgAEEDdCIBQYiME2ogAUGAjBNqIgI2AgAgAUGMjBNqIAI2AgAgAEEBaiIAQSBHDQALQeSLEyAGQShrIgBBeCADa0EHcUEAIANBCGpBB3EbIgFrIgI2AgBB8IsTIAEgA2oiATYCACABIAJBAXI2AgQgACADakEoNgIEQfSLE0HAjxMoAgA2AgAMAgsgAC0ADEEIcQ0AIAEgAkkNACABIANPDQAgACAFIAZqNgIEQfCLEyABQXggAWtBB3FBACABQQhqQQdxGyIAaiICNgIAQeSLE0HkixMoAgAgBmoiAyAAayIANgIAIAIgAEEBcjYCBCABIANqQSg2AgRB9IsTQcCPEygCADYCAAwBC0HoixMoAgAgA0sEQEHoixMgAzYCAAsgAyAGaiECQZiPEyEAAkACQAJAAkACQAJAA0AgAiAAKAIARwRAIAAoAggiAA0BDAILCyAALQAMQQhxRQ0BC0GYjxMhAANAIAEgACgCACICTwRAIAIgACgCBGoiAiABSw0DCyAAKAIIIQAMAAsACyAAIAM2AgAgACAAKAIEIAZqNgIEIANBeCADa0EHcUEAIANBCGpBB3EbaiIHIARBA3I2AgQgAkF4IAJrQQdxQQAgAkEIakEHcRtqIgYgBCAHaiIEayEAIAEgBkYEQEHwixMgBDYCAEHkixNB5IsTKAIAIABqIgA2AgAgBCAAQQFyNgIEDAMLQeyLEygCACAGRgRAQeyLEyAENgIAQeCLE0HgixMoAgAgAGoiADYCACAEIABBAXI2AgQgACAEaiAANgIADAMLIAYoAgQiAUEDcUEBRgRAIAFBeHEhCAJAIAFB/wFNBEAgBigCCCICIAFBA3YiBUEDdEGAjBNqRhogAiAGKAIMIgFGBEBB2IsTQdiLEygCAEF+IAV3cTYCAAwCCyACIAE2AgwgASACNgIIDAELIAYoAhghCQJAIAYgBigCDCIDRwRAIAYoAggiASADNgIMIAMgATYCCAwBCwJAIAZBFGoiASgCACICDQAgBkEQaiIBKAIAIgINAEEAIQMMAQsDQCABIQUgAiIDQRRqIgEoAgAiAg0AIANBEGohASADKAIQIgINAAsgBUEANgIACyAJRQ0AAkAgBigCHCICQQJ0QYiOE2oiASgCACAGRgRAIAEgAzYCACADDQFB3IsTQdyLEygCAEF+IAJ3cTYCAAwCCyAJQRBBFCAJKAIQIAZGG2ogAzYCACADRQ0BCyADIAk2AhggBigCECIBBEAgAyABNgIQIAEgAzYCGAsgBigCFCIBRQ0AIAMgATYCFCABIAM2AhgLIAYgCGoiBigCBCEBIAAgCGohAAsgBiABQX5xNgIEIAQgAEEBcjYCBCAAIARqIAA2AgAgAEH/AU0EQCAAQXhxQYCME2ohAQJ/QdiLEygCACICQQEgAEEDdnQiAHFFBEBB2IsTIAAgAnI2AgAgAQwBCyABKAIICyEAIAEgBDYCCCAAIAQ2AgwgBCABNgIMIAQgADYCCAwDC0EfIQEgAEH///8HTQRAIABBCHYiASABQYD+P2pBEHZBCHEiAXQiAiACQYDgH2pBEHZBBHEiAnQiAyADQYCAD2pBEHZBAnEiA3RBD3YgASACciADcmsiAUEBdCAAIAFBFWp2QQFxckEcaiEBCyAEIAE2AhwgBEIANwIQIAFBAnRBiI4TaiECAkBB3IsTKAIAIgNBASABdCIFcUUEQEHcixMgAyAFcjYCACACIAQ2AgAgBCACNgIYDAELIABBGSABQQF2a0EAIAFBH0cbdCEBIAIoAgAhAwNAIAMiAigCBEF4cSAARg0DIAFBHXYhAyABQQF0IQEgAiADQQRxakEQaiIFKAIAIgMNAAsgBSAENgIAIAQgAjYCGAsgBCAENgIMIAQgBDYCCAwCC0HkixMgBkEoayIAQXggA2tBB3FBACADQQhqQQdxGyIFayIHNgIAQfCLEyADIAVqIgU2AgAgBSAHQQFyNgIEIAAgA2pBKDYCBEH0ixNBwI8TKAIANgIAIAEgAkEnIAJrQQdxQQAgAkEna0EHcRtqQS9rIgAgACABQRBqSRsiBUEbNgIEIAVBoI8TKQIANwIQIAVBmI8TKQIANwIIQaCPEyAFQQhqNgIAQZyPEyAGNgIAQZiPEyADNgIAQaSPE0EANgIAIAVBGGohAANAIABBBzYCBCAAQQhqIQMgAEEEaiEAIAIgA0sNAAsgASAFRg0DIAUgBSgCBEF+cTYCBCABIAUgAWsiA0EBcjYCBCAFIAM2AgAgA0H/AU0EQCADQXhxQYCME2ohAAJ/QdiLEygCACICQQEgA0EDdnQiA3FFBEBB2IsTIAIgA3I2AgAgAAwBCyAAKAIICyECIAAgATYCCCACIAE2AgwgASAANgIMIAEgAjYCCAwEC0EfIQAgA0H///8HTQRAIANBCHYiACAAQYD+P2pBEHZBCHEiAHQiAiACQYDgH2pBEHZBBHEiAnQiBSAFQYCAD2pBEHZBAnEiBXRBD3YgACACciAFcmsiAEEBdCADIABBFWp2QQFxckEcaiEACyABIAA2AhwgAUIANwIQIABBAnRBiI4TaiECAkBB3IsTKAIAIgVBASAAdCIGcUUEQEHcixMgBSAGcjYCACACIAE2AgAgASACNgIYDAELIANBGSAAQQF2a0EAIABBH0cbdCEAIAIoAgAhBQNAIAUiAigCBEF4cSADRg0EIABBHXYhBSAAQQF0IQAgAiAFQQRxakEQaiIGKAIAIgUNAAsgBiABNgIAIAEgAjYCGAsgASABNgIMIAEgATYCCAwDCyACKAIIIgAgBDYCDCACIAQ2AgggBEEANgIYIAQgAjYCDCAEIAA2AggLIAdBCGohAAwFCyACKAIIIgAgATYCDCACIAE2AgggAUEANgIYIAEgAjYCDCABIAA2AggLQeSLEygCACIAIARNDQBB5IsTIAAgBGsiATYCAEHwixNB8IsTKAIAIgAgBGoiAjYCACACIAFBAXI2AgQgACAEQQNyNgIEIABBCGohAAwDC0HoyhJBMDYCAEEAIQAMAgsCQCAHRQ0AAkAgBSgCHCICQQJ0QYiOE2oiACgCACAFRgRAIAAgAzYCACADDQFB3IsTIAhBfiACd3EiCDYCAAwCCyAHQRBBFCAHKAIQIAVGG2ogAzYCACADRQ0BCyADIAc2AhggBSgCECIABEAgAyAANgIQIAAgAzYCGAsgBSgCFCIARQ0AIAMgADYCFCAAIAM2AhgLAkAgAUEPTQRAIAUgASAEaiIAQQNyNgIEIAAgBWoiACAAKAIEQQFyNgIEDAELIAUgBEEDcjYCBCAEIAVqIgMgAUEBcjYCBCABIANqIAE2AgAgAUH/AU0EQCABQXhxQYCME2ohAAJ/QdiLEygCACICQQEgAUEDdnQiAXFFBEBB2IsTIAEgAnI2AgAgAAwBCyAAKAIICyEBIAAgAzYCCCABIAM2AgwgAyAANgIMIAMgATYCCAwBC0EfIQAgAUH///8HTQRAIAFBCHYiACAAQYD+P2pBEHZBCHEiAHQiAiACQYDgH2pBEHZBBHEiAnQiBCAEQYCAD2pBEHZBAnEiBHRBD3YgACACciAEcmsiAEEBdCABIABBFWp2QQFxckEcaiEACyADIAA2AhwgA0IANwIQIABBAnRBiI4TaiECAkACQCAIQQEgAHQiBHFFBEBB3IsTIAQgCHI2AgAgAiADNgIAIAMgAjYCGAwBCyABQRkgAEEBdmtBACAAQR9HG3QhACACKAIAIQQDQCAEIgIoAgRBeHEgAUYNAiAAQR12IQQgAEEBdCEAIAIgBEEEcWpBEGoiBigCACIEDQALIAYgAzYCACADIAI2AhgLIAMgAzYCDCADIAM2AggMAQsgAigCCCIAIAM2AgwgAiADNgIIIANBADYCGCADIAI2AgwgAyAANgIICyAFQQhqIQAMAQsCQCAKRQ0AAkAgAygCHCICQQJ0QYiOE2oiACgCACADRgRAIAAgBTYCACAFDQFB3IsTIAlBfiACd3E2AgAMAgsgCkEQQRQgCigCECADRhtqIAU2AgAgBUUNAQsgBSAKNgIYIAMoAhAiAARAIAUgADYCECAAIAU2AhgLIAMoAhQiAEUNACAFIAA2AhQgACAFNgIYCwJAIAFBD00EQCADIAEgBGoiAEEDcjYCBCAAIANqIgAgACgCBEEBcjYCBAwBCyADIARBA3I2AgQgAyAEaiICIAFBAXI2AgQgASACaiABNgIAIAgEQCAIQXhxQYCME2ohBEHsixMoAgAhAAJ/QQEgCEEDdnQiBSAGcUUEQEHYixMgBSAGcjYCACAEDAELIAQoAggLIQUgBCAANgIIIAUgADYCDCAAIAQ2AgwgACAFNgIIC0HsixMgAjYCAEHgixMgATYCAAsgA0EIaiEACyALQRBqJAAgAAvKDAEHfwJAIABFDQAgAEEIayICIABBBGsoAgAiAUF4cSIAaiEFAkAgAUEBcQ0AIAFBA3FFDQEgAiACKAIAIgFrIgJB6IsTKAIASQ0BIAAgAWohAEHsixMoAgAgAkcEQCABQf8BTQRAIAIoAggiBCABQQN2IgdBA3RBgIwTakYaIAQgAigCDCIBRgRAQdiLE0HYixMoAgBBfiAHd3E2AgAMAwsgBCABNgIMIAEgBDYCCAwCCyACKAIYIQYCQCACIAIoAgwiA0cEQCACKAIIIgEgAzYCDCADIAE2AggMAQsCQCACQRRqIgEoAgAiBA0AIAJBEGoiASgCACIEDQBBACEDDAELA0AgASEHIAQiA0EUaiIBKAIAIgQNACADQRBqIQEgAygCECIEDQALIAdBADYCAAsgBkUNAQJAIAIoAhwiBEECdEGIjhNqIgEoAgAgAkYEQCABIAM2AgAgAw0BQdyLE0HcixMoAgBBfiAEd3E2AgAMAwsgBkEQQRQgBigCECACRhtqIAM2AgAgA0UNAgsgAyAGNgIYIAIoAhAiAQRAIAMgATYCECABIAM2AhgLIAIoAhQiAUUNASADIAE2AhQgASADNgIYDAELIAUoAgQiAUEDcUEDRw0AQeCLEyAANgIAIAUgAUF+cTYCBCACIABBAXI2AgQgACACaiAANgIADwsgAiAFTw0AIAUoAgQiAUEBcUUNAAJAIAFBAnFFBEBB8IsTKAIAIAVGBEBB8IsTIAI2AgBB5IsTQeSLEygCACAAaiIANgIAIAIgAEEBcjYCBCACQeyLEygCAEcNA0HgixNBADYCAEHsixNBADYCAA8LQeyLEygCACAFRgRAQeyLEyACNgIAQeCLE0HgixMoAgAgAGoiADYCACACIABBAXI2AgQgACACaiAANgIADwsgAUF4cSAAaiEAAkAgAUH/AU0EQCAFKAIIIgQgAUEDdiIHQQN0QYCME2pGGiAEIAUoAgwiAUYEQEHYixNB2IsTKAIAQX4gB3dxNgIADAILIAQgATYCDCABIAQ2AggMAQsgBSgCGCEGAkAgBSAFKAIMIgNHBEAgBSgCCCIBQeiLEygCAEkaIAEgAzYCDCADIAE2AggMAQsCQCAFQRRqIgEoAgAiBA0AIAVBEGoiASgCACIEDQBBACEDDAELA0AgASEHIAQiA0EUaiIBKAIAIgQNACADQRBqIQEgAygCECIEDQALIAdBADYCAAsgBkUNAAJAIAUoAhwiBEECdEGIjhNqIgEoAgAgBUYEQCABIAM2AgAgAw0BQdyLE0HcixMoAgBBfiAEd3E2AgAMAgsgBkEQQRQgBigCECAFRhtqIAM2AgAgA0UNAQsgAyAGNgIYIAUoAhAiAQRAIAMgATYCECABIAM2AhgLIAUoAhQiAUUNACADIAE2AhQgASADNgIYCyACIABBAXI2AgQgACACaiAANgIAIAJB7IsTKAIARw0BQeCLEyAANgIADwsgBSABQX5xNgIEIAIgAEEBcjYCBCAAIAJqIAA2AgALIABB/wFNBEAgAEF4cUGAjBNqIQECf0HYixMoAgAiBEEBIABBA3Z0IgBxRQRAQdiLEyAAIARyNgIAIAEMAQsgASgCCAshACABIAI2AgggACACNgIMIAIgATYCDCACIAA2AggPC0EfIQEgAEH///8HTQRAIABBCHYiASABQYD+P2pBEHZBCHEiAXQiBCAEQYDgH2pBEHZBBHEiBHQiAyADQYCAD2pBEHZBAnEiA3RBD3YgASAEciADcmsiAUEBdCAAIAFBFWp2QQFxckEcaiEBCyACIAE2AhwgAkIANwIQIAFBAnRBiI4TaiEEAkACQAJAQdyLEygCACIDQQEgAXQiBXFFBEBB3IsTIAMgBXI2AgAgBCACNgIAIAIgBDYCGAwBCyAAQRkgAUEBdmtBACABQR9HG3QhASAEKAIAIQMDQCADIgQoAgRBeHEgAEYNAiABQR12IQMgAUEBdCEBIAQgA0EEcWpBEGoiBSgCACIDDQALIAUgAjYCACACIAQ2AhgLIAIgAjYCDCACIAI2AggMAQsgBCgCCCIAIAI2AgwgBCACNgIIIAJBADYCGCACIAQ2AgwgAiAANgIIC0H4ixNB+IsTKAIAQQFrIgJBfyACGzYCAAsLoAgBC38gAEUEQCABEMsBDwsgAUFATwRAQejKEkEwNgIAQQAPCwJ/QRAgAUELakF4cSABQQtJGyEDIABBCGsiBSgCBCIIQXhxIQICQCAIQQNxRQRAQQAgA0GAAkkNAhogA0EEaiACTQRAIAUhBCACIANrQbiPEygCAEEBdE0NAgtBAAwCCyACIAVqIQcCQCACIANPBEAgAiADayICQRBJDQEgBSAIQQFxIANyQQJyNgIEIAMgBWoiAyACQQNyNgIEIAcgBygCBEEBcjYCBCADIAIQzgEMAQtB8IsTKAIAIAdGBEBB5IsTKAIAIAJqIgIgA00NAiAFIAhBAXEgA3JBAnI2AgQgAyAFaiIIIAIgA2siA0EBcjYCBEHkixMgAzYCAEHwixMgCDYCAAwBC0HsixMoAgAgB0YEQEHgixMoAgAgAmoiAiADSQ0CAkAgAiADayIEQRBPBEAgBSAIQQFxIANyQQJyNgIEIAMgBWoiAyAEQQFyNgIEIAIgBWoiAiAENgIAIAIgAigCBEF+cTYCBAwBCyAFIAhBAXEgAnJBAnI2AgQgAiAFaiIDIAMoAgRBAXI2AgRBACEEQQAhAwtB7IsTIAM2AgBB4IsTIAQ2AgAMAQsgBygCBCIGQQJxDQEgBkF4cSACaiIJIANJDQEgCSADayELAkAgBkH/AU0EQCAHKAIIIgIgBkEDdiIMQQN0QYCME2pGGiACIAcoAgwiBEYEQEHYixNB2IsTKAIAQX4gDHdxNgIADAILIAIgBDYCDCAEIAI2AggMAQsgBygCGCEKAkAgByAHKAIMIgZHBEAgBygCCCICQeiLEygCAEkaIAIgBjYCDCAGIAI2AggMAQsCQCAHQRRqIgIoAgAiBA0AIAdBEGoiAigCACIEDQBBACEGDAELA0AgAiEMIAQiBkEUaiICKAIAIgQNACAGQRBqIQIgBigCECIEDQALIAxBADYCAAsgCkUNAAJAIAcoAhwiBEECdEGIjhNqIgIoAgAgB0YEQCACIAY2AgAgBg0BQdyLE0HcixMoAgBBfiAEd3E2AgAMAgsgCkEQQRQgCigCECAHRhtqIAY2AgAgBkUNAQsgBiAKNgIYIAcoAhAiAgRAIAYgAjYCECACIAY2AhgLIAcoAhQiAkUNACAGIAI2AhQgAiAGNgIYCyALQQ9NBEAgBSAIQQFxIAlyQQJyNgIEIAUgCWoiAyADKAIEQQFyNgIEDAELIAUgCEEBcSADckECcjYCBCADIAVqIgMgC0EDcjYCBCAFIAlqIgIgAigCBEEBcjYCBCADIAsQzgELIAUhBAsgBAsiBARAIARBCGoPCyABEMsBIgRFBEBBAA8LIAQgAEF8QXggAEEEaygCACIFQQNxGyAFQXhxaiIFIAEgASAFSxsQpgEaIAAQzAEgBAuJDAEGfyAAIAFqIQUCQAJAIAAoAgQiAkEBcQ0AIAJBA3FFDQEgACgCACICIAFqIQECQCAAIAJrIgBB7IsTKAIARwRAIAJB/wFNBEAgACgCCCIEIAJBA3YiB0EDdEGAjBNqRhogACgCDCICIARHDQJB2IsTQdiLEygCAEF+IAd3cTYCAAwDCyAAKAIYIQYCQCAAIAAoAgwiA0cEQCAAKAIIIgJB6IsTKAIASRogAiADNgIMIAMgAjYCCAwBCwJAIABBFGoiAigCACIEDQAgAEEQaiICKAIAIgQNAEEAIQMMAQsDQCACIQcgBCIDQRRqIgIoAgAiBA0AIANBEGohAiADKAIQIgQNAAsgB0EANgIACyAGRQ0CAkAgACgCHCIEQQJ0QYiOE2oiAigCACAARgRAIAIgAzYCACADDQFB3IsTQdyLEygCAEF+IAR3cTYCAAwECyAGQRBBFCAGKAIQIABGG2ogAzYCACADRQ0DCyADIAY2AhggACgCECICBEAgAyACNgIQIAIgAzYCGAsgACgCFCICRQ0CIAMgAjYCFCACIAM2AhgMAgsgBSgCBCICQQNxQQNHDQFB4IsTIAE2AgAgBSACQX5xNgIEIAAgAUEBcjYCBCAFIAE2AgAPCyAEIAI2AgwgAiAENgIICwJAIAUoAgQiAkECcUUEQEHwixMoAgAgBUYEQEHwixMgADYCAEHkixNB5IsTKAIAIAFqIgE2AgAgACABQQFyNgIEIABB7IsTKAIARw0DQeCLE0EANgIAQeyLE0EANgIADwtB7IsTKAIAIAVGBEBB7IsTIAA2AgBB4IsTQeCLEygCACABaiIBNgIAIAAgAUEBcjYCBCAAIAFqIAE2AgAPCyACQXhxIAFqIQECQCACQf8BTQRAIAUoAggiBCACQQN2IgdBA3RBgIwTakYaIAQgBSgCDCICRgRAQdiLE0HYixMoAgBBfiAHd3E2AgAMAgsgBCACNgIMIAIgBDYCCAwBCyAFKAIYIQYCQCAFIAUoAgwiA0cEQCAFKAIIIgJB6IsTKAIASRogAiADNgIMIAMgAjYCCAwBCwJAIAVBFGoiBCgCACICDQAgBUEQaiIEKAIAIgINAEEAIQMMAQsDQCAEIQcgAiIDQRRqIgQoAgAiAg0AIANBEGohBCADKAIQIgINAAsgB0EANgIACyAGRQ0AAkAgBSgCHCIEQQJ0QYiOE2oiAigCACAFRgRAIAIgAzYCACADDQFB3IsTQdyLEygCAEF+IAR3cTYCAAwCCyAGQRBBFCAGKAIQIAVGG2ogAzYCACADRQ0BCyADIAY2AhggBSgCECICBEAgAyACNgIQIAIgAzYCGAsgBSgCFCICRQ0AIAMgAjYCFCACIAM2AhgLIAAgAUEBcjYCBCAAIAFqIAE2AgAgAEHsixMoAgBHDQFB4IsTIAE2AgAPCyAFIAJBfnE2AgQgACABQQFyNgIEIAAgAWogATYCAAsgAUH/AU0EQCABQXhxQYCME2ohAgJ/QdiLEygCACIEQQEgAUEDdnQiAXFFBEBB2IsTIAEgBHI2AgAgAgwBCyACKAIICyEBIAIgADYCCCABIAA2AgwgACACNgIMIAAgATYCCA8LQR8hAiABQf///wdNBEAgAUEIdiICIAJBgP4/akEQdkEIcSICdCIEIARBgOAfakEQdkEEcSIEdCIDIANBgIAPakEQdkECcSIDdEEPdiACIARyIANyayICQQF0IAEgAkEVanZBAXFyQRxqIQILIAAgAjYCHCAAQgA3AhAgAkECdEGIjhNqIQQCQAJAQdyLEygCACIDQQEgAnQiBXFFBEBB3IsTIAMgBXI2AgAgBCAANgIAIAAgBDYCGAwBCyABQRkgAkEBdmtBACACQR9HG3QhAiAEKAIAIQMDQCADIgQoAgRBeHEgAUYNAiACQR12IQMgAkEBdCECIAQgA0EEcWpBEGoiBSgCACIDDQALIAUgADYCACAAIAQ2AhgLIAAgADYCDCAAIAA2AggPCyAEKAIIIgEgADYCDCAEIAA2AgggAEEANgIYIAAgBDYCDCAAIAE2AggLC1wCAX8BfgJAAn9BACAARQ0AGiAArSABrX4iA6ciAiAAIAFyQYCABEkNABpBfyACIANCIIinGwsiAhDLASIARQ0AIABBBGstAABBA3FFDQAgAEEAIAIQqAEaCyAAC1IBAn9B2L8SKAIAIgEgAEEHakF4cSICaiEAAkAgAkEAIAAgAU0bDQAgAD8AQRB0SwRAIAAQA0UNAQtB2L8SIAA2AgAgAQ8LQejKEkEwNgIAQX8LBAAjAAsGACAAJAALEAAjACAAa0FwcSIAJAAgAAsiAQF+IAEgAq0gA61CIIaEIAQgABEPACIFQiCIpyQBIAWnCwvFrRKnAQBBgAgL9xIBAAAAAgAAAAIAAAAFAAAABAAAAAAAAAABAAAAAQAAAAEAAAAGAAAABgAAAAEAAAACAAAAAgAAAAEAAAAAAAAABgAAAAEAAAABAAAABAAAAAQAAAABAAAABAAAAAQAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAgAAAAMAAAAEAAAABAAAAAEAAABZb3UgZGlkbid0IGNhbGwgb25pZ19pbml0aWFsaXplKCkgZXhwbGljaXRseQAtKyAgIDBYMHgAQWxudW0AbWlzbWF0Y2gAJWQuJWQuJWQAXQBFVUMtVFcAU2hpZnRfSklTAEVVQy1LUgBLT0k4LVIARVVDLUpQAE1PTgBVUy1BU0NJSQBVVEYtMTZMRQBVVEYtMzJMRQBVVEYtMTZCRQBVVEYtMzJCRQBJU08tODg1OS05AFVURi04AElTTy04ODU5LTgASVNPLTg4NTktNwBJU08tODg1OS0xNgBJU08tODg1OS02AEJpZzUASVNPLTg4NTktMTUASVNPLTg4NTktNQBJU08tODg1OS0xNABJU08tODg1OS00AElTTy04ODU5LTEzAElTTy04ODU5LTMASVNPLTg4NTktMgBDUDEyNTEASVNPLTg4NTktMTEASVNPLTg4NTktMQBHQjE4MDMwAElTTy04ODU5LTEwAE9uaWd1cnVtYSAlZC4lZC4lZCA6IENvcHlyaWdodCAoQykgMjAwMi0yMDE4IEsuS29zYWtvAG5vIHN1cHBvcnQgaW4gdGhpcyBjb25maWd1cmF0aW9uAHJlZ3VsYXIgZXhwcmVzc2lvbiBoYXMgJyVzJyB3aXRob3V0IGVzY2FwZQBXb3JkAEFscGhhAEVVQy1DTgBGQUlMAChudWxsKQAARgBBAEkATAAAAEYAQQBJAEwAAAAAYWJvcnQAQmxhbmsAIyVkAEFscGhhAFsATUlTTUFUQ0gAAE0ASQBTAE0AQQBUAEMASAAAAE0ASQBTAE0AQQBUAEMASAAAAAAtMFgrMFggMFgtMHgrMHggMHgAZmFpbCB0byBtZW1vcnkgYWxsb2NhdGlvbgBDbnRybABIaXJhZ2FuYQBNQVgALQBPTklHLU1PTklUT1I6ICUtNHMgJXMgYXQ6ICVkIFslZCAtICVkXSBsZW46ICVkCgAATQBBAFgAAABNAEEAWAAAAABEaWdpdABtYXRjaC1zdGFjayBsaW1pdCBvdmVyAEFsbnVtAGluZgBjaGFyYWN0ZXIgY2xhc3MgaGFzICclcycgd2l0aG91dCBlc2NhcGUARVJST1IAPT4AAEUAUgBSAE8AUgAAAEUAUgBSAE8AUgAAAABwYXJzZSBkZXB0aCBsaW1pdCBvdmVyAGFsbnVtAEdyYXBoAEthdGFrYW5hAENPVU5UAElORgA8PQAAQwBPAFUATgBUAAAAQwBPAFUATgBUAAAAAExvd2VyAHJldHJ5LWxpbWl0LWluLW1hdGNoIG92ZXIAbmFuAGFscGhhAFRPVEFMX0NPVU5UAEFTQ0lJAABUAE8AVABBAEwAXwBDAE8AVQBOAFQAAABUAE8AVABBAEwAXwBDAE8AVQBOAFQAAAAAUHJpbnQAWERpZ2l0AHJldHJ5LWxpbWl0LWluLXNlYXJjaCBvdmVyAGJsYW5rAENNUABOQU4AAEMATQBQAAAAQwBNAFAAAAAAUHVuY3QAc3ViZXhwLWNhbGwtbGltaXQtaW4tc2VhcmNoIG92ZXIAY250cmwAQ250cmwALgBkaWdpdABCbGFuawBTcGFjZQB1bmRlZmluZWQgdHlwZSAoYnVnKQBQdW5jdABVcHBlcgBncmFwaABpbnRlcm5hbCBwYXJzZXIgZXJyb3IgKGJ1ZykAUHJpbnQAWERpZ2l0AGxvd2VyAHN0YWNrIGVycm9yIChidWcpAHByaW50AFVwcGVyAEFTQ0lJAHVuZGVmaW5lZCBieXRlY29kZSAoYnVnKQBwdW5jdABTcGFjZQBXb3JkAHVuZXhwZWN0ZWQgYnl0ZWNvZGUgKGJ1ZykAZGVmYXVsdCBtdWx0aWJ5dGUtZW5jb2RpbmcgaXMgbm90IHNldABMb3dlcgBzcGFjZQB1cHBlcgBHcmFwaABjYW4ndCBjb252ZXJ0IHRvIHdpZGUtY2hhciBvbiBzcGVjaWZpZWQgbXVsdGlieXRlLWVuY29kaW5nAHhkaWdpdABEaWdpdABmYWlsIHRvIGluaXRpYWxpemUAaW52YWxpZCBhcmd1bWVudABhc2NpaQBlbmQgcGF0dGVybiBhdCBsZWZ0IGJyYWNlAHdvcmQAZW5kIHBhdHRlcm4gYXQgbGVmdCBicmFja2V0ADpdAGVtcHR5IGNoYXItY2xhc3MAcmVkdW5kYW50IG5lc3RlZCByZXBlYXQgb3BlcmF0b3IAcHJlbWF0dXJlIGVuZCBvZiBjaGFyLWNsYXNzAG5lc3RlZCByZXBlYXQgb3BlcmF0b3IgJXMgYW5kICVzIHdhcyByZXBsYWNlZCB3aXRoICclcycAZW5kIHBhdHRlcm4gYXQgZXNjYXBlAD8AZW5kIHBhdHRlcm4gYXQgbWV0YQAqAGVuZCBwYXR0ZXJuIGF0IGNvbnRyb2wAKwBpbnZhbGlkIG1ldGEtY29kZSBzeW50YXgAPz8AaW52YWxpZCBjb250cm9sLWNvZGUgc3ludGF4ACo/AGNoYXItY2xhc3MgdmFsdWUgYXQgZW5kIG9mIHJhbmdlACs/AGNoYXItY2xhc3MgdmFsdWUgYXQgc3RhcnQgb2YgcmFuZ2UAdW5tYXRjaGVkIHJhbmdlIHNwZWNpZmllciBpbiBjaGFyLWNsYXNzACsgYW5kID8/AHRhcmdldCBvZiByZXBlYXQgb3BlcmF0b3IgaXMgbm90IHNwZWNpZmllZAArPyBhbmQgPwAPAAAADgAAAHQ+AwB8PgMA6AP0AU0B+gDIAKcAjwB9AG8AZABbAFMATQBHAEMAPwA7ADgANQAyADAALQArACoAKAAmACUAJAAiACEAIAAfAB4AHQAdABwAGwAaABoAGQAYABgAFwAXABYAFgAVABUAFAAUABQAEwATABMAEgASABIAEQARABEAEAAQABAAEAAPAA8ADwAPAA4ADgAOAA4ADgAOAA0ADQANAA0ADQANAAwADAAMAAwADAAMAAsACwALAAsACwALAAsACwALAAoACgAKAAoACgBBgBsL0AgFAAEAAQABAAEAAQABAAEAAQAKAAoAAQABAAoAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEADAAEAAcABAAEAAQABAAEAAQABQAFAAUABQAFAAUABQAGAAYABgAGAAYABgAGAAYABgAGAAUABQAFAAUABQAFAAUABgAGAAYABgAHAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAUABgAFAAUABQAFAAYABgAGAAYABwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAFAAUABQAFAAEAVAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAjAAAAJAAAACUAAAAmAAAAJwAAACgAAAAxAAAALwAAADAAAAAyAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAKgAAACkAAAArAAAALQAAACwAAAAuAAAAUwAAAD0AAAA+AAAAPwAAAEAAAABBAAAAQgAAAEMAAABEAAAARQAAAEYAAABHAAAAOQAAADoAAAA7AAAAPAAAAEoAAABLAAAATAAAAE0AAABOAAAATwAAAFAAAABIAAAASQAAAFIAAABRAAAAAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/whACEAIQAhACEAIQAhACEAIQAxCCUIIQghCCEIIQAhACEAIQAhACEAIQAhACEAIQAhACEAIQAhACEAIQAhACECEQqBBoEGgQaBBoEGgQaBBoEGgQaBBoEGgQaBBoEGgQbB4sHiweLB4sHiweLB4sHiweLB4oEGgQaBBoEGgQaBBoEGifKJ8onyifKJ8onyidKJ0onSidKJ0onSidKJ0onSidKJ0onSidKJ0onSidKJ0onSidKJ0oEGgQaBBoEGgUaBB4njieOJ44njieOJ44nDicOJw4nDicOJw4nDicOJw4nDicOJw4nDicOJw4nDicOJw4nDicKBBoEGgQaBBCEAAQdAlC+UMQQAAAGEAAABCAAAAYgAAAEMAAABjAAAARAAAAGQAAABFAAAAZQAAAEYAAABmAAAARwAAAGcAAABIAAAAaAAAAEkAAABpAAAASgAAAGoAAABLAAAAawAAAEwAAABsAAAATQAAAG0AAABOAAAAbgAAAE8AAABvAAAAUAAAAHAAAABRAAAAcQAAAFIAAAByAAAAUwAAAHMAAABUAAAAdAAAAFUAAAB1AAAAVgAAAHYAAABXAAAAdwAAAFgAAAB4AAAAWQAAAHkAAABaAAAAegAAAHRhcmdldCBvZiByZXBlYXQgb3BlcmF0b3IgaXMgaW52YWxpZABuZXN0ZWQgcmVwZWF0IG9wZXJhdG9yAHVubWF0Y2hlZCBjbG9zZSBwYXJlbnRoZXNpcwBlbmQgcGF0dGVybiB3aXRoIHVubWF0Y2hlZCBwYXJlbnRoZXNpcwBlbmQgcGF0dGVybiBpbiBncm91cAB1bmRlZmluZWQgZ3JvdXAgb3B0aW9uAGludmFsaWQgZ3JvdXAgb3B0aW9uAGludmFsaWQgUE9TSVggYnJhY2tldCB0eXBlAGludmFsaWQgcGF0dGVybiBpbiBsb29rLWJlaGluZABpbnZhbGlkIHJlcGVhdCByYW5nZSB7bG93ZXIsdXBwZXJ9AHRvbyBiaWcgbnVtYmVyAHRvbyBiaWcgbnVtYmVyIGZvciByZXBlYXQgcmFuZ2UAdXBwZXIgaXMgc21hbGxlciB0aGFuIGxvd2VyIGluIHJlcGVhdCByYW5nZQBlbXB0eSByYW5nZSBpbiBjaGFyIGNsYXNzAG1pc21hdGNoIG11bHRpYnl0ZSBjb2RlIGxlbmd0aCBpbiBjaGFyLWNsYXNzIHJhbmdlAHRvbyBtYW55IG11bHRpYnl0ZSBjb2RlIHJhbmdlcyBhcmUgc3BlY2lmaWVkAHRvbyBzaG9ydCBtdWx0aWJ5dGUgY29kZSBzdHJpbmcAdG9vIGJpZyBiYWNrcmVmIG51bWJlcgBpbnZhbGlkIGJhY2tyZWYgbnVtYmVyL25hbWUAbnVtYmVyZWQgYmFja3JlZi9jYWxsIGlzIG5vdCBhbGxvd2VkLiAodXNlIG5hbWUpAHRvbyBtYW55IGNhcHR1cmVzAHRvbyBiaWcgd2lkZS1jaGFyIHZhbHVlAHRvbyBsb25nIHdpZGUtY2hhciB2YWx1ZQB1bmRlZmluZWQgb3BlcmF0b3IAaW52YWxpZCBjb2RlIHBvaW50IHZhbHVlAGdyb3VwIG5hbWUgaXMgZW1wdHkAaW52YWxpZCBncm91cCBuYW1lIDwlbj4AaW52YWxpZCBjaGFyIGluIGdyb3VwIG5hbWUgPCVuPgB1bmRlZmluZWQgbmFtZSA8JW4+IHJlZmVyZW5jZQB1bmRlZmluZWQgZ3JvdXAgPCVuPiByZWZlcmVuY2UAbXVsdGlwbGV4IGRlZmluZWQgbmFtZSA8JW4+AG11bHRpcGxleCBkZWZpbml0aW9uIG5hbWUgPCVuPiBjYWxsAG5ldmVyIGVuZGluZyByZWN1cnNpb24AZ3JvdXAgbnVtYmVyIGlzIHRvbyBiaWcgZm9yIGNhcHR1cmUgaGlzdG9yeQBpbnZhbGlkIGNoYXJhY3RlciBwcm9wZXJ0eSBuYW1lIHslbn0AaW52YWxpZCBpZi1lbHNlIHN5bnRheABpbnZhbGlkIGFic2VudCBncm91cCBwYXR0ZXJuAGludmFsaWQgYWJzZW50IGdyb3VwIGdlbmVyYXRvciBwYXR0ZXJuAGludmFsaWQgY2FsbG91dCBwYXR0ZXJuAGludmFsaWQgY2FsbG91dCBuYW1lAHVuZGVmaW5lZCBjYWxsb3V0IG5hbWUAaW52YWxpZCBjYWxsb3V0IGJvZHkAaW52YWxpZCBjYWxsb3V0IHRhZyBuYW1lAGludmFsaWQgY2FsbG91dCBhcmcAbm90IHN1cHBvcnRlZCBlbmNvZGluZyBjb21iaW5hdGlvbgBpbnZhbGlkIGNvbWJpbmF0aW9uIG9mIG9wdGlvbnMAdmVyeSBpbmVmZmljaWVudCBwYXR0ZXJuAGxpYnJhcnkgaXMgbm90IGluaXRpYWxpemVkAHVuZGVmaW5lZCBlcnJvciBjb2RlAC4uLgAlMDJ4AFx4JTAyeAAAAAEAQcAyCxUBAAAAAQAAAAEAAAABAAAAAQAAAAEAQeAyC3ALAAAAEwAAACUAAABDAAAAgwAAABsBAAAJAgAACQQAAAUIAAADEAAAGyAAACtAAAADgAAALQABAB0AAgADAAQAFQAIAAcAEAARACAADwBAAAkAgAArAAABIwAAAg8AAAQdAAAIAwAAEAsAACBVAABAAEHgMwvRZAhACEAIQAhACEAIQAhACEAIQIxCiUKIQohCiEIIQAhACEAIQAhACEAIQAhACEAIQAhACEAIQAhACEAIQAhACECEQqBBoEGgQaBBoEGgQaBBoEGgQaBBoEGgQaBBoEGgQbB4sHiweLB4sHiweLB4sHiweLB4oEGgQaBBoEGgQaBBoEGifKJ8onyifKJ8onyidKJ0onSidKJ0onSidKJ0onSidKJ0onSidKJ0onSidKJ0onSidKJ0oEGgQaBBoEGgUaBB4njieOJ44njieOJ44nDicOJw4nDicOJw4nDicOJw4nDicOJw4nDicOJw4nDicOJw4nDicKBBoEGgQaBBCEAIAAgACAAIAAgAiAIIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAhAKgAaAAoACgAKAAoACgAKAAoADiMKABoACoAKAAoACgAKAAoBCgEKAA4jCgAKABoACgEOIwoAGgEKAQoBCgAaI0ojSiNKI0ojSiNKI0ojSiNKI0ojSiNKI0ojSiNKI0ojSiNKI0ojSiNKI0ojSgAKI0ojSiNKI0ojSiNKI04jDiMOIw4jDiMOIw4jDiMOIw4jDiMOIw4jDiMOIw4jDiMOIw4jDiMOIw4jDiMOIwoADiMOIw4jDiMOIw4jDiMOIwCgAAAAoAAAAJAAAACwAAAAwAAAANAAAADQAAAA0AAAACAAAAIAAAACAAAAARAAAAIgAAACIAAAADAAAAJwAAACcAAAAQAAAALAAAACwAAAALAAAALgAAAC4AAAAMAAAAMAAAADkAAAAOAAAAOgAAADoAAAAKAAAAOwAAADsAAAALAAAAQQAAAFoAAAABAAAAXwAAAF8AAAAFAAAAYQAAAHoAAAABAAAAhQAAAIUAAAANAAAAqgAAAKoAAAABAAAArQAAAK0AAAAGAAAAtQAAALUAAAABAAAAtwAAALcAAAAKAAAAugAAALoAAAABAAAAwAAAANYAAAABAAAA2AAAAPYAAAABAAAA+AAAANcCAAABAAAA3gIAAP8CAAABAAAAAAMAAG8DAAAEAAAAcAMAAHQDAAABAAAAdgMAAHcDAAABAAAAegMAAH0DAAABAAAAfgMAAH4DAAALAAAAfwMAAH8DAAABAAAAhgMAAIYDAAABAAAAhwMAAIcDAAAKAAAAiAMAAIoDAAABAAAAjAMAAIwDAAABAAAAjgMAAKEDAAABAAAAowMAAPUDAAABAAAA9wMAAIEEAAABAAAAgwQAAIkEAAAEAAAAigQAAC8FAAABAAAAMQUAAFYFAAABAAAAWQUAAFwFAAABAAAAXgUAAF4FAAABAAAAXwUAAF8FAAAKAAAAYAUAAIgFAAABAAAAiQUAAIkFAAALAAAAigUAAIoFAAABAAAAkQUAAL0FAAAEAAAAvwUAAL8FAAAEAAAAwQUAAMIFAAAEAAAAxAUAAMUFAAAEAAAAxwUAAMcFAAAEAAAA0AUAAOoFAAAHAAAA7wUAAPIFAAAHAAAA8wUAAPMFAAABAAAA9AUAAPQFAAAKAAAAAAYAAAUGAAAGAAAADAYAAA0GAAALAAAAEAYAABoGAAAEAAAAHAYAABwGAAAGAAAAIAYAAEoGAAABAAAASwYAAF8GAAAEAAAAYAYAAGkGAAAOAAAAawYAAGsGAAAOAAAAbAYAAGwGAAALAAAAbgYAAG8GAAABAAAAcAYAAHAGAAAEAAAAcQYAANMGAAABAAAA1QYAANUGAAABAAAA1gYAANwGAAAEAAAA3QYAAN0GAAAGAAAA3wYAAOQGAAAEAAAA5QYAAOYGAAABAAAA5wYAAOgGAAAEAAAA6gYAAO0GAAAEAAAA7gYAAO8GAAABAAAA8AYAAPkGAAAOAAAA+gYAAPwGAAABAAAA/wYAAP8GAAABAAAADwcAAA8HAAAGAAAAEAcAABAHAAABAAAAEQcAABEHAAAEAAAAEgcAAC8HAAABAAAAMAcAAEoHAAAEAAAATQcAAKUHAAABAAAApgcAALAHAAAEAAAAsQcAALEHAAABAAAAwAcAAMkHAAAOAAAAygcAAOoHAAABAAAA6wcAAPMHAAAEAAAA9AcAAPUHAAABAAAA+AcAAPgHAAALAAAA+gcAAPoHAAABAAAA/QcAAP0HAAAEAAAAAAgAABUIAAABAAAAFggAABkIAAAEAAAAGggAABoIAAABAAAAGwgAACMIAAAEAAAAJAgAACQIAAABAAAAJQgAACcIAAAEAAAAKAgAACgIAAABAAAAKQgAAC0IAAAEAAAAQAgAAFgIAAABAAAAWQgAAFsIAAAEAAAAYAgAAGoIAAABAAAAcAgAAIcIAAABAAAAiQgAAI4IAAABAAAAkAgAAJEIAAAGAAAAmAgAAJ8IAAAEAAAAoAgAAMkIAAABAAAAyggAAOEIAAAEAAAA4ggAAOIIAAAGAAAA4wgAAAMJAAAEAAAABAkAADkJAAABAAAAOgkAADwJAAAEAAAAPQkAAD0JAAABAAAAPgkAAE8JAAAEAAAAUAkAAFAJAAABAAAAUQkAAFcJAAAEAAAAWAkAAGEJAAABAAAAYgkAAGMJAAAEAAAAZgkAAG8JAAAOAAAAcQkAAIAJAAABAAAAgQkAAIMJAAAEAAAAhQkAAIwJAAABAAAAjwkAAJAJAAABAAAAkwkAAKgJAAABAAAAqgkAALAJAAABAAAAsgkAALIJAAABAAAAtgkAALkJAAABAAAAvAkAALwJAAAEAAAAvQkAAL0JAAABAAAAvgkAAMQJAAAEAAAAxwkAAMgJAAAEAAAAywkAAM0JAAAEAAAAzgkAAM4JAAABAAAA1wkAANcJAAAEAAAA3AkAAN0JAAABAAAA3wkAAOEJAAABAAAA4gkAAOMJAAAEAAAA5gkAAO8JAAAOAAAA8AkAAPEJAAABAAAA/AkAAPwJAAABAAAA/gkAAP4JAAAEAAAAAQoAAAMKAAAEAAAABQoAAAoKAAABAAAADwoAABAKAAABAAAAEwoAACgKAAABAAAAKgoAADAKAAABAAAAMgoAADMKAAABAAAANQoAADYKAAABAAAAOAoAADkKAAABAAAAPAoAADwKAAAEAAAAPgoAAEIKAAAEAAAARwoAAEgKAAAEAAAASwoAAE0KAAAEAAAAUQoAAFEKAAAEAAAAWQoAAFwKAAABAAAAXgoAAF4KAAABAAAAZgoAAG8KAAAOAAAAcAoAAHEKAAAEAAAAcgoAAHQKAAABAAAAdQoAAHUKAAAEAAAAgQoAAIMKAAAEAAAAhQoAAI0KAAABAAAAjwoAAJEKAAABAAAAkwoAAKgKAAABAAAAqgoAALAKAAABAAAAsgoAALMKAAABAAAAtQoAALkKAAABAAAAvAoAALwKAAAEAAAAvQoAAL0KAAABAAAAvgoAAMUKAAAEAAAAxwoAAMkKAAAEAAAAywoAAM0KAAAEAAAA0AoAANAKAAABAAAA4AoAAOEKAAABAAAA4goAAOMKAAAEAAAA5goAAO8KAAAOAAAA+QoAAPkKAAABAAAA+goAAP8KAAAEAAAAAQsAAAMLAAAEAAAABQsAAAwLAAABAAAADwsAABALAAABAAAAEwsAACgLAAABAAAAKgsAADALAAABAAAAMgsAADMLAAABAAAANQsAADkLAAABAAAAPAsAADwLAAAEAAAAPQsAAD0LAAABAAAAPgsAAEQLAAAEAAAARwsAAEgLAAAEAAAASwsAAE0LAAAEAAAAVQsAAFcLAAAEAAAAXAsAAF0LAAABAAAAXwsAAGELAAABAAAAYgsAAGMLAAAEAAAAZgsAAG8LAAAOAAAAcQsAAHELAAABAAAAggsAAIILAAAEAAAAgwsAAIMLAAABAAAAhQsAAIoLAAABAAAAjgsAAJALAAABAAAAkgsAAJULAAABAAAAmQsAAJoLAAABAAAAnAsAAJwLAAABAAAAngsAAJ8LAAABAAAAowsAAKQLAAABAAAAqAsAAKoLAAABAAAArgsAALkLAAABAAAAvgsAAMILAAAEAAAAxgsAAMgLAAAEAAAAygsAAM0LAAAEAAAA0AsAANALAAABAAAA1wsAANcLAAAEAAAA5gsAAO8LAAAOAAAAAAwAAAQMAAAEAAAABQwAAAwMAAABAAAADgwAABAMAAABAAAAEgwAACgMAAABAAAAKgwAADkMAAABAAAAPAwAADwMAAAEAAAAPQwAAD0MAAABAAAAPgwAAEQMAAAEAAAARgwAAEgMAAAEAAAASgwAAE0MAAAEAAAAVQwAAFYMAAAEAAAAWAwAAFoMAAABAAAAXQwAAF0MAAABAAAAYAwAAGEMAAABAAAAYgwAAGMMAAAEAAAAZgwAAG8MAAAOAAAAgAwAAIAMAAABAAAAgQwAAIMMAAAEAAAAhQwAAIwMAAABAAAAjgwAAJAMAAABAAAAkgwAAKgMAAABAAAAqgwAALMMAAABAAAAtQwAALkMAAABAAAAvAwAALwMAAAEAAAAvQwAAL0MAAABAAAAvgwAAMQMAAAEAAAAxgwAAMgMAAAEAAAAygwAAM0MAAAEAAAA1QwAANYMAAAEAAAA3QwAAN4MAAABAAAA4AwAAOEMAAABAAAA4gwAAOMMAAAEAAAA5gwAAO8MAAAOAAAA8QwAAPIMAAABAAAAAA0AAAMNAAAEAAAABA0AAAwNAAABAAAADg0AABANAAABAAAAEg0AADoNAAABAAAAOw0AADwNAAAEAAAAPQ0AAD0NAAABAAAAPg0AAEQNAAAEAAAARg0AAEgNAAAEAAAASg0AAE0NAAAEAAAATg0AAE4NAAABAAAAVA0AAFYNAAABAAAAVw0AAFcNAAAEAAAAXw0AAGENAAABAAAAYg0AAGMNAAAEAAAAZg0AAG8NAAAOAAAAeg0AAH8NAAABAAAAgQ0AAIMNAAAEAAAAhQ0AAJYNAAABAAAAmg0AALENAAABAAAAsw0AALsNAAABAAAAvQ0AAL0NAAABAAAAwA0AAMYNAAABAAAAyg0AAMoNAAAEAAAAzw0AANQNAAAEAAAA1g0AANYNAAAEAAAA2A0AAN8NAAAEAAAA5g0AAO8NAAAOAAAA8g0AAPMNAAAEAAAAMQ4AADEOAAAEAAAANA4AADoOAAAEAAAARw4AAE4OAAAEAAAAUA4AAFkOAAAOAAAAsQ4AALEOAAAEAAAAtA4AALwOAAAEAAAAyA4AAM0OAAAEAAAA0A4AANkOAAAOAAAAAA8AAAAPAAABAAAAGA8AABkPAAAEAAAAIA8AACkPAAAOAAAANQ8AADUPAAAEAAAANw8AADcPAAAEAAAAOQ8AADkPAAAEAAAAPg8AAD8PAAAEAAAAQA8AAEcPAAABAAAASQ8AAGwPAAABAAAAcQ8AAIQPAAAEAAAAhg8AAIcPAAAEAAAAiA8AAIwPAAABAAAAjQ8AAJcPAAAEAAAAmQ8AALwPAAAEAAAAxg8AAMYPAAAEAAAAKxAAAD4QAAAEAAAAQBAAAEkQAAAOAAAAVhAAAFkQAAAEAAAAXhAAAGAQAAAEAAAAYhAAAGQQAAAEAAAAZxAAAG0QAAAEAAAAcRAAAHQQAAAEAAAAghAAAI0QAAAEAAAAjxAAAI8QAAAEAAAAkBAAAJkQAAAOAAAAmhAAAJ0QAAAEAAAAoBAAAMUQAAABAAAAxxAAAMcQAAABAAAAzRAAAM0QAAABAAAA0BAAAPoQAAABAAAA/BAAAEgSAAABAAAAShIAAE0SAAABAAAAUBIAAFYSAAABAAAAWBIAAFgSAAABAAAAWhIAAF0SAAABAAAAYBIAAIgSAAABAAAAihIAAI0SAAABAAAAkBIAALASAAABAAAAshIAALUSAAABAAAAuBIAAL4SAAABAAAAwBIAAMASAAABAAAAwhIAAMUSAAABAAAAyBIAANYSAAABAAAA2BIAABATAAABAAAAEhMAABUTAAABAAAAGBMAAFoTAAABAAAAXRMAAF8TAAAEAAAAgBMAAI8TAAABAAAAoBMAAPUTAAABAAAA+BMAAP0TAAABAAAAARQAAGwWAAABAAAAbxYAAH8WAAABAAAAgBYAAIAWAAARAAAAgRYAAJoWAAABAAAAoBYAAOoWAAABAAAA7hYAAPgWAAABAAAAABcAABEXAAABAAAAEhcAABUXAAAEAAAAHxcAADEXAAABAAAAMhcAADQXAAAEAAAAQBcAAFEXAAABAAAAUhcAAFMXAAAEAAAAYBcAAGwXAAABAAAAbhcAAHAXAAABAAAAchcAAHMXAAAEAAAAtBcAANMXAAAEAAAA3RcAAN0XAAAEAAAA4BcAAOkXAAAOAAAACxgAAA0YAAAEAAAADhgAAA4YAAAGAAAADxgAAA8YAAAEAAAAEBgAABkYAAAOAAAAIBgAAHgYAAABAAAAgBgAAIQYAAABAAAAhRgAAIYYAAAEAAAAhxgAAKgYAAABAAAAqRgAAKkYAAAEAAAAqhgAAKoYAAABAAAAsBgAAPUYAAABAAAAABkAAB4ZAAABAAAAIBkAACsZAAAEAAAAMBkAADsZAAAEAAAARhkAAE8ZAAAOAAAA0BkAANkZAAAOAAAAABoAABYaAAABAAAAFxoAABsaAAAEAAAAVRoAAF4aAAAEAAAAYBoAAHwaAAAEAAAAfxoAAH8aAAAEAAAAgBoAAIkaAAAOAAAAkBoAAJkaAAAOAAAAsBoAAM4aAAAEAAAAABsAAAQbAAAEAAAABRsAADMbAAABAAAANBsAAEQbAAAEAAAARRsAAEwbAAABAAAAUBsAAFkbAAAOAAAAaxsAAHMbAAAEAAAAgBsAAIIbAAAEAAAAgxsAAKAbAAABAAAAoRsAAK0bAAAEAAAArhsAAK8bAAABAAAAsBsAALkbAAAOAAAAuhsAAOUbAAABAAAA5hsAAPMbAAAEAAAAABwAACMcAAABAAAAJBwAADccAAAEAAAAQBwAAEkcAAAOAAAATRwAAE8cAAABAAAAUBwAAFkcAAAOAAAAWhwAAH0cAAABAAAAgBwAAIgcAAABAAAAkBwAALocAAABAAAAvRwAAL8cAAABAAAA0BwAANIcAAAEAAAA1BwAAOgcAAAEAAAA6RwAAOwcAAABAAAA7RwAAO0cAAAEAAAA7hwAAPMcAAABAAAA9BwAAPQcAAAEAAAA9RwAAPYcAAABAAAA9xwAAPkcAAAEAAAA+hwAAPocAAABAAAAAB0AAL8dAAABAAAAwB0AAP8dAAAEAAAAAB4AABUfAAABAAAAGB8AAB0fAAABAAAAIB8AAEUfAAABAAAASB8AAE0fAAABAAAAUB8AAFcfAAABAAAAWR8AAFkfAAABAAAAWx8AAFsfAAABAAAAXR8AAF0fAAABAAAAXx8AAH0fAAABAAAAgB8AALQfAAABAAAAth8AALwfAAABAAAAvh8AAL4fAAABAAAAwh8AAMQfAAABAAAAxh8AAMwfAAABAAAA0B8AANMfAAABAAAA1h8AANsfAAABAAAA4B8AAOwfAAABAAAA8h8AAPQfAAABAAAA9h8AAPwfAAABAAAAACAAAAYgAAARAAAACCAAAAogAAARAAAADCAAAAwgAAAEAAAADSAAAA0gAAASAAAADiAAAA8gAAAGAAAAGCAAABkgAAAMAAAAJCAAACQgAAAMAAAAJyAAACcgAAAKAAAAKCAAACkgAAANAAAAKiAAAC4gAAAGAAAALyAAAC8gAAAFAAAAPyAAAEAgAAAFAAAARCAAAEQgAAALAAAAVCAAAFQgAAAFAAAAXyAAAF8gAAARAAAAYCAAAGQgAAAGAAAAZiAAAG8gAAAGAAAAcSAAAHEgAAABAAAAfyAAAH8gAAABAAAAkCAAAJwgAAABAAAA0CAAAPAgAAAEAAAAAiEAAAIhAAABAAAAByEAAAchAAABAAAACiEAABMhAAABAAAAFSEAABUhAAABAAAAGSEAAB0hAAABAAAAJCEAACQhAAABAAAAJiEAACYhAAABAAAAKCEAACghAAABAAAAKiEAAC0hAAABAAAALyEAADkhAAABAAAAPCEAAD8hAAABAAAARSEAAEkhAAABAAAATiEAAE4hAAABAAAAYCEAAIghAAABAAAAtiQAAOkkAAABAAAAACwAAOQsAAABAAAA6ywAAO4sAAABAAAA7ywAAPEsAAAEAAAA8iwAAPMsAAABAAAAAC0AACUtAAABAAAAJy0AACctAAABAAAALS0AAC0tAAABAAAAMC0AAGctAAABAAAAby0AAG8tAAABAAAAfy0AAH8tAAAEAAAAgC0AAJYtAAABAAAAoC0AAKYtAAABAAAAqC0AAK4tAAABAAAAsC0AALYtAAABAAAAuC0AAL4tAAABAAAAwC0AAMYtAAABAAAAyC0AAM4tAAABAAAA0C0AANYtAAABAAAA2C0AAN4tAAABAAAA4C0AAP8tAAAEAAAALy4AAC8uAAABAAAAADAAAAAwAAARAAAABTAAAAUwAAABAAAAKjAAAC8wAAAEAAAAMTAAADUwAAAIAAAAOzAAADwwAAABAAAAmTAAAJowAAAEAAAAmzAAAJwwAAAIAAAAoDAAAPowAAAIAAAA/DAAAP8wAAAIAAAABTEAAC8xAAABAAAAMTEAAI4xAAABAAAAoDEAAL8xAAABAAAA8DEAAP8xAAAIAAAA0DIAAP4yAAAIAAAAADMAAFczAAAIAAAAAKAAAIykAAABAAAA0KQAAP2kAAABAAAAAKUAAAymAAABAAAAEKYAAB+mAAABAAAAIKYAACmmAAAOAAAAKqYAACumAAABAAAAQKYAAG6mAAABAAAAb6YAAHKmAAAEAAAAdKYAAH2mAAAEAAAAf6YAAJ2mAAABAAAAnqYAAJ+mAAAEAAAAoKYAAO+mAAABAAAA8KYAAPGmAAAEAAAACKcAAMqnAAABAAAA0KcAANGnAAABAAAA06cAANOnAAABAAAA1acAANmnAAABAAAA8qcAAAGoAAABAAAAAqgAAAKoAAAEAAAAA6gAAAWoAAABAAAABqgAAAaoAAAEAAAAB6gAAAqoAAABAAAAC6gAAAuoAAAEAAAADKgAACKoAAABAAAAI6gAACeoAAAEAAAALKgAACyoAAAEAAAAQKgAAHOoAAABAAAAgKgAAIGoAAAEAAAAgqgAALOoAAABAAAAtKgAAMWoAAAEAAAA0KgAANmoAAAOAAAA4KgAAPGoAAAEAAAA8qgAAPeoAAABAAAA+6gAAPuoAAABAAAA/agAAP6oAAABAAAA/6gAAP+oAAAEAAAAAKkAAAmpAAAOAAAACqkAACWpAAABAAAAJqkAAC2pAAAEAAAAMKkAAEapAAABAAAAR6kAAFOpAAAEAAAAYKkAAHypAAABAAAAgKkAAIOpAAAEAAAAhKkAALKpAAABAAAAs6kAAMCpAAAEAAAAz6kAAM+pAAABAAAA0KkAANmpAAAOAAAA5akAAOWpAAAEAAAA8KkAAPmpAAAOAAAAAKoAACiqAAABAAAAKaoAADaqAAAEAAAAQKoAAEKqAAABAAAAQ6oAAEOqAAAEAAAARKoAAEuqAAABAAAATKoAAE2qAAAEAAAAUKoAAFmqAAAOAAAAe6oAAH2qAAAEAAAAsKoAALCqAAAEAAAAsqoAALSqAAAEAAAAt6oAALiqAAAEAAAAvqoAAL+qAAAEAAAAwaoAAMGqAAAEAAAA4KoAAOqqAAABAAAA66oAAO+qAAAEAAAA8qoAAPSqAAABAAAA9aoAAPaqAAAEAAAAAasAAAarAAABAAAACasAAA6rAAABAAAAEasAABarAAABAAAAIKsAACarAAABAAAAKKsAAC6rAAABAAAAMKsAAGmrAAABAAAAcKsAAOKrAAABAAAA46sAAOqrAAAEAAAA7KsAAO2rAAAEAAAA8KsAAPmrAAAOAAAAAKwAAKPXAAABAAAAsNcAAMbXAAABAAAAy9cAAPvXAAABAAAAAPsAAAb7AAABAAAAE/sAABf7AAABAAAAHfsAAB37AAAHAAAAHvsAAB77AAAEAAAAH/sAACj7AAAHAAAAKvsAADb7AAAHAAAAOPsAADz7AAAHAAAAPvsAAD77AAAHAAAAQPsAAEH7AAAHAAAAQ/sAAET7AAAHAAAARvsAAE/7AAAHAAAAUPsAALH7AAABAAAA0/sAAD39AAABAAAAUP0AAI/9AAABAAAAkv0AAMf9AAABAAAA8P0AAPv9AAABAAAAAP4AAA/+AAAEAAAAEP4AABD+AAALAAAAE/4AABP+AAAKAAAAFP4AABT+AAALAAAAIP4AAC/+AAAEAAAAM/4AADT+AAAFAAAATf4AAE/+AAAFAAAAUP4AAFD+AAALAAAAUv4AAFL+AAAMAAAAVP4AAFT+AAALAAAAVf4AAFX+AAAKAAAAcP4AAHT+AAABAAAAdv4AAPz+AAABAAAA//4AAP/+AAAGAAAAB/8AAAf/AAAMAAAADP8AAAz/AAALAAAADv8AAA7/AAAMAAAAEP8AABn/AAAOAAAAGv8AABr/AAAKAAAAG/8AABv/AAALAAAAIf8AADr/AAABAAAAP/8AAD//AAAFAAAAQf8AAFr/AAABAAAAZv8AAJ3/AAAIAAAAnv8AAJ//AAAEAAAAoP8AAL7/AAABAAAAwv8AAMf/AAABAAAAyv8AAM//AAABAAAA0v8AANf/AAABAAAA2v8AANz/AAABAAAA+f8AAPv/AAAGAAAAAAABAAsAAQABAAAADQABACYAAQABAAAAKAABADoAAQABAAAAPAABAD0AAQABAAAAPwABAE0AAQABAAAAUAABAF0AAQABAAAAgAABAPoAAQABAAAAQAEBAHQBAQABAAAA/QEBAP0BAQAEAAAAgAIBAJwCAQABAAAAoAIBANACAQABAAAA4AIBAOACAQAEAAAAAAMBAB8DAQABAAAALQMBAEoDAQABAAAAUAMBAHUDAQABAAAAdgMBAHoDAQAEAAAAgAMBAJ0DAQABAAAAoAMBAMMDAQABAAAAyAMBAM8DAQABAAAA0QMBANUDAQABAAAAAAQBAJ0EAQABAAAAoAQBAKkEAQAOAAAAsAQBANMEAQABAAAA2AQBAPsEAQABAAAAAAUBACcFAQABAAAAMAUBAGMFAQABAAAAcAUBAHoFAQABAAAAfAUBAIoFAQABAAAAjAUBAJIFAQABAAAAlAUBAJUFAQABAAAAlwUBAKEFAQABAAAAowUBALEFAQABAAAAswUBALkFAQABAAAAuwUBALwFAQABAAAAAAYBADYHAQABAAAAQAcBAFUHAQABAAAAYAcBAGcHAQABAAAAgAcBAIUHAQABAAAAhwcBALAHAQABAAAAsgcBALoHAQABAAAAAAgBAAUIAQABAAAACAgBAAgIAQABAAAACggBADUIAQABAAAANwgBADgIAQABAAAAPAgBADwIAQABAAAAPwgBAFUIAQABAAAAYAgBAHYIAQABAAAAgAgBAJ4IAQABAAAA4AgBAPIIAQABAAAA9AgBAPUIAQABAAAAAAkBABUJAQABAAAAIAkBADkJAQABAAAAgAkBALcJAQABAAAAvgkBAL8JAQABAAAAAAoBAAAKAQABAAAAAQoBAAMKAQAEAAAABQoBAAYKAQAEAAAADAoBAA8KAQAEAAAAEAoBABMKAQABAAAAFQoBABcKAQABAAAAGQoBADUKAQABAAAAOAoBADoKAQAEAAAAPwoBAD8KAQAEAAAAYAoBAHwKAQABAAAAgAoBAJwKAQABAAAAwAoBAMcKAQABAAAAyQoBAOQKAQABAAAA5QoBAOYKAQAEAAAAAAsBADULAQABAAAAQAsBAFULAQABAAAAYAsBAHILAQABAAAAgAsBAJELAQABAAAAAAwBAEgMAQABAAAAgAwBALIMAQABAAAAwAwBAPIMAQABAAAAAA0BACMNAQABAAAAJA0BACcNAQAEAAAAMA0BADkNAQAOAAAAgA4BAKkOAQABAAAAqw4BAKwOAQAEAAAAsA4BALEOAQABAAAAAA8BABwPAQABAAAAJw8BACcPAQABAAAAMA8BAEUPAQABAAAARg8BAFAPAQAEAAAAcA8BAIEPAQABAAAAgg8BAIUPAQAEAAAAsA8BAMQPAQABAAAA4A8BAPYPAQABAAAAABABAAIQAQAEAAAAAxABADcQAQABAAAAOBABAEYQAQAEAAAAZhABAG8QAQAOAAAAcBABAHAQAQAEAAAAcRABAHIQAQABAAAAcxABAHQQAQAEAAAAdRABAHUQAQABAAAAfxABAIIQAQAEAAAAgxABAK8QAQABAAAAsBABALoQAQAEAAAAvRABAL0QAQAGAAAAwhABAMIQAQAEAAAAzRABAM0QAQAGAAAA0BABAOgQAQABAAAA8BABAPkQAQAOAAAAABEBAAIRAQAEAAAAAxEBACYRAQABAAAAJxEBADQRAQAEAAAANhEBAD8RAQAOAAAARBEBAEQRAQABAAAARREBAEYRAQAEAAAARxEBAEcRAQABAAAAUBEBAHIRAQABAAAAcxEBAHMRAQAEAAAAdhEBAHYRAQABAAAAgBEBAIIRAQAEAAAAgxEBALIRAQABAAAAsxEBAMARAQAEAAAAwREBAMQRAQABAAAAyREBAMwRAQAEAAAAzhEBAM8RAQAEAAAA0BEBANkRAQAOAAAA2hEBANoRAQABAAAA3BEBANwRAQABAAAAABIBABESAQABAAAAExIBACsSAQABAAAALBIBADcSAQAEAAAAPhIBAD4SAQAEAAAAgBIBAIYSAQABAAAAiBIBAIgSAQABAAAAihIBAI0SAQABAAAAjxIBAJ0SAQABAAAAnxIBAKgSAQABAAAAsBIBAN4SAQABAAAA3xIBAOoSAQAEAAAA8BIBAPkSAQAOAAAAABMBAAMTAQAEAAAABRMBAAwTAQABAAAADxMBABATAQABAAAAExMBACgTAQABAAAAKhMBADATAQABAAAAMhMBADMTAQABAAAANRMBADkTAQABAAAAOxMBADwTAQAEAAAAPRMBAD0TAQABAAAAPhMBAEQTAQAEAAAARxMBAEgTAQAEAAAASxMBAE0TAQAEAAAAUBMBAFATAQABAAAAVxMBAFcTAQAEAAAAXRMBAGETAQABAAAAYhMBAGMTAQAEAAAAZhMBAGwTAQAEAAAAcBMBAHQTAQAEAAAAABQBADQUAQABAAAANRQBAEYUAQAEAAAARxQBAEoUAQABAAAAUBQBAFkUAQAOAAAAXhQBAF4UAQAEAAAAXxQBAGEUAQABAAAAgBQBAK8UAQABAAAAsBQBAMMUAQAEAAAAxBQBAMUUAQABAAAAxxQBAMcUAQABAAAA0BQBANkUAQAOAAAAgBUBAK4VAQABAAAArxUBALUVAQAEAAAAuBUBAMAVAQAEAAAA2BUBANsVAQABAAAA3BUBAN0VAQAEAAAAABYBAC8WAQABAAAAMBYBAEAWAQAEAAAARBYBAEQWAQABAAAAUBYBAFkWAQAOAAAAgBYBAKoWAQABAAAAqxYBALcWAQAEAAAAuBYBALgWAQABAAAAwBYBAMkWAQAOAAAAHRcBACsXAQAEAAAAMBcBADkXAQAOAAAAABgBACsYAQABAAAALBgBADoYAQAEAAAAoBgBAN8YAQABAAAA4BgBAOkYAQAOAAAA/xgBAAYZAQABAAAACRkBAAkZAQABAAAADBkBABMZAQABAAAAFRkBABYZAQABAAAAGBkBAC8ZAQABAAAAMBkBADUZAQAEAAAANxkBADgZAQAEAAAAOxkBAD4ZAQAEAAAAPxkBAD8ZAQABAAAAQBkBAEAZAQAEAAAAQRkBAEEZAQABAAAAQhkBAEMZAQAEAAAAUBkBAFkZAQAOAAAAoBkBAKcZAQABAAAAqhkBANAZAQABAAAA0RkBANcZAQAEAAAA2hkBAOAZAQAEAAAA4RkBAOEZAQABAAAA4xkBAOMZAQABAAAA5BkBAOQZAQAEAAAAABoBAAAaAQABAAAAARoBAAoaAQAEAAAACxoBADIaAQABAAAAMxoBADkaAQAEAAAAOhoBADoaAQABAAAAOxoBAD4aAQAEAAAARxoBAEcaAQAEAAAAUBoBAFAaAQABAAAAURoBAFsaAQAEAAAAXBoBAIkaAQABAAAAihoBAJkaAQAEAAAAnRoBAJ0aAQABAAAAsBoBAPgaAQABAAAAABwBAAgcAQABAAAAChwBAC4cAQABAAAALxwBADYcAQAEAAAAOBwBAD8cAQAEAAAAQBwBAEAcAQABAAAAUBwBAFkcAQAOAAAAchwBAI8cAQABAAAAkhwBAKccAQAEAAAAqRwBALYcAQAEAAAAAB0BAAYdAQABAAAACB0BAAkdAQABAAAACx0BADAdAQABAAAAMR0BADYdAQAEAAAAOh0BADodAQAEAAAAPB0BAD0dAQAEAAAAPx0BAEUdAQAEAAAARh0BAEYdAQABAAAARx0BAEcdAQAEAAAAUB0BAFkdAQAOAAAAYB0BAGUdAQABAAAAZx0BAGgdAQABAAAAah0BAIkdAQABAAAAih0BAI4dAQAEAAAAkB0BAJEdAQAEAAAAkx0BAJcdAQAEAAAAmB0BAJgdAQABAAAAoB0BAKkdAQAOAAAA4B4BAPIeAQABAAAA8x4BAPYeAQAEAAAAsB8BALAfAQABAAAAACABAJkjAQABAAAAACQBAG4kAQABAAAAgCQBAEMlAQABAAAAkC8BAPAvAQABAAAAADABAC40AQABAAAAMDQBADg0AQAGAAAAAEQBAEZGAQABAAAAAGgBADhqAQABAAAAQGoBAF5qAQABAAAAYGoBAGlqAQAOAAAAcGoBAL5qAQABAAAAwGoBAMlqAQAOAAAA0GoBAO1qAQABAAAA8GoBAPRqAQAEAAAAAGsBAC9rAQABAAAAMGsBADZrAQAEAAAAQGsBAENrAQABAAAAUGsBAFlrAQAOAAAAY2sBAHdrAQABAAAAfWsBAI9rAQABAAAAQG4BAH9uAQABAAAAAG8BAEpvAQABAAAAT28BAE9vAQAEAAAAUG8BAFBvAQABAAAAUW8BAIdvAQAEAAAAj28BAJJvAQAEAAAAk28BAJ9vAQABAAAA4G8BAOFvAQABAAAA428BAONvAQABAAAA5G8BAORvAQAEAAAA8G8BAPFvAQAEAAAA8K8BAPOvAQAIAAAA9a8BAPuvAQAIAAAA/a8BAP6vAQAIAAAAALABAACwAQAIAAAAILEBACKxAQAIAAAAZLEBAGexAQAIAAAAALwBAGq8AQABAAAAcLwBAHy8AQABAAAAgLwBAIi8AQABAAAAkLwBAJm8AQABAAAAnbwBAJ68AQAEAAAAoLwBAKO8AQAGAAAAAM8BAC3PAQAEAAAAMM8BAEbPAQAEAAAAZdEBAGnRAQAEAAAAbdEBAHLRAQAEAAAAc9EBAHrRAQAGAAAAe9EBAILRAQAEAAAAhdEBAIvRAQAEAAAAqtEBAK3RAQAEAAAAQtIBAETSAQAEAAAAANQBAFTUAQABAAAAVtQBAJzUAQABAAAAntQBAJ/UAQABAAAAotQBAKLUAQABAAAApdQBAKbUAQABAAAAqdQBAKzUAQABAAAArtQBALnUAQABAAAAu9QBALvUAQABAAAAvdQBAMPUAQABAAAAxdQBAAXVAQABAAAAB9UBAArVAQABAAAADdUBABTVAQABAAAAFtUBABzVAQABAAAAHtUBADnVAQABAAAAO9UBAD7VAQABAAAAQNUBAETVAQABAAAARtUBAEbVAQABAAAAStUBAFDVAQABAAAAUtUBAKXWAQABAAAAqNYBAMDWAQABAAAAwtYBANrWAQABAAAA3NYBAPrWAQABAAAA/NYBABTXAQABAAAAFtcBADTXAQABAAAANtcBAE7XAQABAAAAUNcBAG7XAQABAAAAcNcBAIjXAQABAAAAitcBAKjXAQABAAAAqtcBAMLXAQABAAAAxNcBAMvXAQABAAAAztcBAP/XAQAOAAAAANoBADbaAQAEAAAAO9oBAGzaAQAEAAAAddoBAHXaAQAEAAAAhNoBAITaAQAEAAAAm9oBAJ/aAQAEAAAAodoBAK/aAQAEAAAAAN8BAB7fAQABAAAAAOABAAbgAQAEAAAACOABABjgAQAEAAAAG+ABACHgAQAEAAAAI+ABACTgAQAEAAAAJuABACrgAQAEAAAAAOEBACzhAQABAAAAMOEBADbhAQAEAAAAN+EBAD3hAQABAAAAQOEBAEnhAQAOAAAATuEBAE7hAQABAAAAkOIBAK3iAQABAAAAruIBAK7iAQAEAAAAwOIBAOviAQABAAAA7OIBAO/iAQAEAAAA8OIBAPniAQAOAAAA4OcBAObnAQABAAAA6OcBAOvnAQABAAAA7ecBAO7nAQABAAAA8OcBAP7nAQABAAAAAOgBAMToAQABAAAA0OgBANboAQAEAAAAAOkBAEPpAQABAAAAROkBAErpAQAEAAAAS+kBAEvpAQABAAAAUOkBAFnpAQAOAAAAAO4BAAPuAQABAAAABe4BAB/uAQABAAAAIe4BACLuAQABAAAAJO4BACTuAQABAAAAJ+4BACfuAQABAAAAKe4BADLuAQABAAAANO4BADfuAQABAAAAOe4BADnuAQABAAAAO+4BADvuAQABAAAAQu4BAELuAQABAAAAR+4BAEfuAQABAAAASe4BAEnuAQABAAAAS+4BAEvuAQABAAAATe4BAE/uAQABAAAAUe4BAFLuAQABAAAAVO4BAFTuAQABAAAAV+4BAFfuAQABAAAAWe4BAFnuAQABAAAAW+4BAFvuAQABAAAAXe4BAF3uAQABAAAAX+4BAF/uAQABAAAAYe4BAGLuAQABAAAAZO4BAGTuAQABAAAAZ+4BAGruAQABAAAAbO4BAHLuAQABAAAAdO4BAHfuAQABAAAAee4BAHzuAQABAAAAfu4BAH7uAQABAAAAgO4BAInuAQABAAAAi+4BAJvuAQABAAAAoe4BAKPuAQABAAAApe4BAKnuAQABAAAAq+4BALvuAQABAAAAMPEBAEnxAQABAAAAUPEBAGnxAQABAAAAcPEBAInxAQABAAAA5vEBAP/xAQAPAAAA+/MBAP/zAQAEAAAA8PsBAPn7AQAOAAAAAQAOAAEADgAGAAAAIAAOAH8ADgAEAAAAAAEOAO8BDgAEAEHEmAELn6wBCQAAAAMAAAAKAAAACgAAAAIAAAALAAAADAAAAAMAAAANAAAADQAAAAEAAAAOAAAAHwAAAAMAAAB/AAAAnwAAAAMAAACtAAAArQAAAAMAAAAAAwAAbwMAAAQAAACDBAAAiQQAAAQAAACRBQAAvQUAAAQAAAC/BQAAvwUAAAQAAADBBQAAwgUAAAQAAADEBQAAxQUAAAQAAADHBQAAxwUAAAQAAAAABgAABQYAAAUAAAAQBgAAGgYAAAQAAAAcBgAAHAYAAAMAAABLBgAAXwYAAAQAAABwBgAAcAYAAAQAAADWBgAA3AYAAAQAAADdBgAA3QYAAAUAAADfBgAA5AYAAAQAAADnBgAA6AYAAAQAAADqBgAA7QYAAAQAAAAPBwAADwcAAAUAAAARBwAAEQcAAAQAAAAwBwAASgcAAAQAAACmBwAAsAcAAAQAAADrBwAA8wcAAAQAAAD9BwAA/QcAAAQAAAAWCAAAGQgAAAQAAAAbCAAAIwgAAAQAAAAlCAAAJwgAAAQAAAApCAAALQgAAAQAAABZCAAAWwgAAAQAAACQCAAAkQgAAAUAAACYCAAAnwgAAAQAAADKCAAA4QgAAAQAAADiCAAA4ggAAAUAAADjCAAAAgkAAAQAAAADCQAAAwkAAAcAAAA6CQAAOgkAAAQAAAA7CQAAOwkAAAcAAAA8CQAAPAkAAAQAAAA+CQAAQAkAAAcAAABBCQAASAkAAAQAAABJCQAATAkAAAcAAABNCQAATQkAAAQAAABOCQAATwkAAAcAAABRCQAAVwkAAAQAAABiCQAAYwkAAAQAAACBCQAAgQkAAAQAAACCCQAAgwkAAAcAAAC8CQAAvAkAAAQAAAC+CQAAvgkAAAQAAAC/CQAAwAkAAAcAAADBCQAAxAkAAAQAAADHCQAAyAkAAAcAAADLCQAAzAkAAAcAAADNCQAAzQkAAAQAAADXCQAA1wkAAAQAAADiCQAA4wkAAAQAAAD+CQAA/gkAAAQAAAABCgAAAgoAAAQAAAADCgAAAwoAAAcAAAA8CgAAPAoAAAQAAAA+CgAAQAoAAAcAAABBCgAAQgoAAAQAAABHCgAASAoAAAQAAABLCgAATQoAAAQAAABRCgAAUQoAAAQAAABwCgAAcQoAAAQAAAB1CgAAdQoAAAQAAACBCgAAggoAAAQAAACDCgAAgwoAAAcAAAC8CgAAvAoAAAQAAAC+CgAAwAoAAAcAAADBCgAAxQoAAAQAAADHCgAAyAoAAAQAAADJCgAAyQoAAAcAAADLCgAAzAoAAAcAAADNCgAAzQoAAAQAAADiCgAA4woAAAQAAAD6CgAA/woAAAQAAAABCwAAAQsAAAQAAAACCwAAAwsAAAcAAAA8CwAAPAsAAAQAAAA+CwAAPwsAAAQAAABACwAAQAsAAAcAAABBCwAARAsAAAQAAABHCwAASAsAAAcAAABLCwAATAsAAAcAAABNCwAATQsAAAQAAABVCwAAVwsAAAQAAABiCwAAYwsAAAQAAACCCwAAggsAAAQAAAC+CwAAvgsAAAQAAAC/CwAAvwsAAAcAAADACwAAwAsAAAQAAADBCwAAwgsAAAcAAADGCwAAyAsAAAcAAADKCwAAzAsAAAcAAADNCwAAzQsAAAQAAADXCwAA1wsAAAQAAAAADAAAAAwAAAQAAAABDAAAAwwAAAcAAAAEDAAABAwAAAQAAAA8DAAAPAwAAAQAAAA+DAAAQAwAAAQAAABBDAAARAwAAAcAAABGDAAASAwAAAQAAABKDAAATQwAAAQAAABVDAAAVgwAAAQAAABiDAAAYwwAAAQAAACBDAAAgQwAAAQAAACCDAAAgwwAAAcAAAC8DAAAvAwAAAQAAAC+DAAAvgwAAAcAAAC/DAAAvwwAAAQAAADADAAAwQwAAAcAAADCDAAAwgwAAAQAAADDDAAAxAwAAAcAAADGDAAAxgwAAAQAAADHDAAAyAwAAAcAAADKDAAAywwAAAcAAADMDAAAzQwAAAQAAADVDAAA1gwAAAQAAADiDAAA4wwAAAQAAAAADQAAAQ0AAAQAAAACDQAAAw0AAAcAAAA7DQAAPA0AAAQAAAA+DQAAPg0AAAQAAAA/DQAAQA0AAAcAAABBDQAARA0AAAQAAABGDQAASA0AAAcAAABKDQAATA0AAAcAAABNDQAATQ0AAAQAAABODQAATg0AAAUAAABXDQAAVw0AAAQAAABiDQAAYw0AAAQAAACBDQAAgQ0AAAQAAACCDQAAgw0AAAcAAADKDQAAyg0AAAQAAADPDQAAzw0AAAQAAADQDQAA0Q0AAAcAAADSDQAA1A0AAAQAAADWDQAA1g0AAAQAAADYDQAA3g0AAAcAAADfDQAA3w0AAAQAAADyDQAA8w0AAAcAAAAxDgAAMQ4AAAQAAAAzDgAAMw4AAAcAAAA0DgAAOg4AAAQAAABHDgAATg4AAAQAAACxDgAAsQ4AAAQAAACzDgAAsw4AAAcAAAC0DgAAvA4AAAQAAADIDgAAzQ4AAAQAAAAYDwAAGQ8AAAQAAAA1DwAANQ8AAAQAAAA3DwAANw8AAAQAAAA5DwAAOQ8AAAQAAAA+DwAAPw8AAAcAAABxDwAAfg8AAAQAAAB/DwAAfw8AAAcAAACADwAAhA8AAAQAAACGDwAAhw8AAAQAAACNDwAAlw8AAAQAAACZDwAAvA8AAAQAAADGDwAAxg8AAAQAAAAtEAAAMBAAAAQAAAAxEAAAMRAAAAcAAAAyEAAANxAAAAQAAAA5EAAAOhAAAAQAAAA7EAAAPBAAAAcAAAA9EAAAPhAAAAQAAABWEAAAVxAAAAcAAABYEAAAWRAAAAQAAABeEAAAYBAAAAQAAABxEAAAdBAAAAQAAACCEAAAghAAAAQAAACEEAAAhBAAAAcAAACFEAAAhhAAAAQAAACNEAAAjRAAAAQAAACdEAAAnRAAAAQAAAAAEQAAXxEAAA0AAABgEQAApxEAABEAAACoEQAA/xEAABAAAABdEwAAXxMAAAQAAAASFwAAFBcAAAQAAAAVFwAAFRcAAAcAAAAyFwAAMxcAAAQAAAA0FwAANBcAAAcAAABSFwAAUxcAAAQAAAByFwAAcxcAAAQAAAC0FwAAtRcAAAQAAAC2FwAAthcAAAcAAAC3FwAAvRcAAAQAAAC+FwAAxRcAAAcAAADGFwAAxhcAAAQAAADHFwAAyBcAAAcAAADJFwAA0xcAAAQAAADdFwAA3RcAAAQAAAALGAAADRgAAAQAAAAOGAAADhgAAAMAAAAPGAAADxgAAAQAAACFGAAAhhgAAAQAAACpGAAAqRgAAAQAAAAgGQAAIhkAAAQAAAAjGQAAJhkAAAcAAAAnGQAAKBkAAAQAAAApGQAAKxkAAAcAAAAwGQAAMRkAAAcAAAAyGQAAMhkAAAQAAAAzGQAAOBkAAAcAAAA5GQAAOxkAAAQAAAAXGgAAGBoAAAQAAAAZGgAAGhoAAAcAAAAbGgAAGxoAAAQAAABVGgAAVRoAAAcAAABWGgAAVhoAAAQAAABXGgAAVxoAAAcAAABYGgAAXhoAAAQAAABgGgAAYBoAAAQAAABiGgAAYhoAAAQAAABlGgAAbBoAAAQAAABtGgAAchoAAAcAAABzGgAAfBoAAAQAAAB/GgAAfxoAAAQAAACwGgAAzhoAAAQAAAAAGwAAAxsAAAQAAAAEGwAABBsAAAcAAAA0GwAAOhsAAAQAAAA7GwAAOxsAAAcAAAA8GwAAPBsAAAQAAAA9GwAAQRsAAAcAAABCGwAAQhsAAAQAAABDGwAARBsAAAcAAABrGwAAcxsAAAQAAACAGwAAgRsAAAQAAACCGwAAghsAAAcAAAChGwAAoRsAAAcAAACiGwAApRsAAAQAAACmGwAApxsAAAcAAACoGwAAqRsAAAQAAACqGwAAqhsAAAcAAACrGwAArRsAAAQAAADmGwAA5hsAAAQAAADnGwAA5xsAAAcAAADoGwAA6RsAAAQAAADqGwAA7BsAAAcAAADtGwAA7RsAAAQAAADuGwAA7hsAAAcAAADvGwAA8RsAAAQAAADyGwAA8xsAAAcAAAAkHAAAKxwAAAcAAAAsHAAAMxwAAAQAAAA0HAAANRwAAAcAAAA2HAAANxwAAAQAAADQHAAA0hwAAAQAAADUHAAA4BwAAAQAAADhHAAA4RwAAAcAAADiHAAA6BwAAAQAAADtHAAA7RwAAAQAAAD0HAAA9BwAAAQAAAD3HAAA9xwAAAcAAAD4HAAA+RwAAAQAAADAHQAA/x0AAAQAAAALIAAACyAAAAMAAAAMIAAADCAAAAQAAAANIAAADSAAAAgAAAAOIAAADyAAAAMAAAAoIAAALiAAAAMAAABgIAAAbyAAAAMAAADQIAAA8CAAAAQAAADvLAAA8SwAAAQAAAB/LQAAfy0AAAQAAADgLQAA/y0AAAQAAAAqMAAALzAAAAQAAACZMAAAmjAAAAQAAABvpgAAcqYAAAQAAAB0pgAAfaYAAAQAAACepgAAn6YAAAQAAADwpgAA8aYAAAQAAAACqAAAAqgAAAQAAAAGqAAABqgAAAQAAAALqAAAC6gAAAQAAAAjqAAAJKgAAAcAAAAlqAAAJqgAAAQAAAAnqAAAJ6gAAAcAAAAsqAAALKgAAAQAAACAqAAAgagAAAcAAAC0qAAAw6gAAAcAAADEqAAAxagAAAQAAADgqAAA8agAAAQAAAD/qAAA/6gAAAQAAAAmqQAALakAAAQAAABHqQAAUakAAAQAAABSqQAAU6kAAAcAAABgqQAAfKkAAA0AAACAqQAAgqkAAAQAAACDqQAAg6kAAAcAAACzqQAAs6kAAAQAAAC0qQAAtakAAAcAAAC2qQAAuakAAAQAAAC6qQAAu6kAAAcAAAC8qQAAvakAAAQAAAC+qQAAwKkAAAcAAADlqQAA5akAAAQAAAApqgAALqoAAAQAAAAvqgAAMKoAAAcAAAAxqgAAMqoAAAQAAAAzqgAANKoAAAcAAAA1qgAANqoAAAQAAABDqgAAQ6oAAAQAAABMqgAATKoAAAQAAABNqgAATaoAAAcAAAB8qgAAfKoAAAQAAACwqgAAsKoAAAQAAACyqgAAtKoAAAQAAAC3qgAAuKoAAAQAAAC+qgAAv6oAAAQAAADBqgAAwaoAAAQAAADrqgAA66oAAAcAAADsqgAA7aoAAAQAAADuqgAA76oAAAcAAAD1qgAA9aoAAAcAAAD2qgAA9qoAAAQAAADjqwAA5KsAAAcAAADlqwAA5asAAAQAAADmqwAA56sAAAcAAADoqwAA6KsAAAQAAADpqwAA6qsAAAcAAADsqwAA7KsAAAcAAADtqwAA7asAAAQAAAAArAAAAKwAAA4AAAABrAAAG6wAAA8AAAAcrAAAHKwAAA4AAAAdrAAAN6wAAA8AAAA4rAAAOKwAAA4AAAA5rAAAU6wAAA8AAABUrAAAVKwAAA4AAABVrAAAb6wAAA8AAABwrAAAcKwAAA4AAABxrAAAi6wAAA8AAACMrAAAjKwAAA4AAACNrAAAp6wAAA8AAACorAAAqKwAAA4AAACprAAAw6wAAA8AAADErAAAxKwAAA4AAADFrAAA36wAAA8AAADgrAAA4KwAAA4AAADhrAAA+6wAAA8AAAD8rAAA/KwAAA4AAAD9rAAAF60AAA8AAAAYrQAAGK0AAA4AAAAZrQAAM60AAA8AAAA0rQAANK0AAA4AAAA1rQAAT60AAA8AAABQrQAAUK0AAA4AAABRrQAAa60AAA8AAABsrQAAbK0AAA4AAABtrQAAh60AAA8AAACIrQAAiK0AAA4AAACJrQAAo60AAA8AAACkrQAApK0AAA4AAAClrQAAv60AAA8AAADArQAAwK0AAA4AAADBrQAA260AAA8AAADcrQAA3K0AAA4AAADdrQAA960AAA8AAAD4rQAA+K0AAA4AAAD5rQAAE64AAA8AAAAUrgAAFK4AAA4AAAAVrgAAL64AAA8AAAAwrgAAMK4AAA4AAAAxrgAAS64AAA8AAABMrgAATK4AAA4AAABNrgAAZ64AAA8AAABorgAAaK4AAA4AAABprgAAg64AAA8AAACErgAAhK4AAA4AAACFrgAAn64AAA8AAACgrgAAoK4AAA4AAAChrgAAu64AAA8AAAC8rgAAvK4AAA4AAAC9rgAA164AAA8AAADYrgAA2K4AAA4AAADZrgAA864AAA8AAAD0rgAA9K4AAA4AAAD1rgAAD68AAA8AAAAQrwAAEK8AAA4AAAARrwAAK68AAA8AAAAsrwAALK8AAA4AAAAtrwAAR68AAA8AAABIrwAASK8AAA4AAABJrwAAY68AAA8AAABkrwAAZK8AAA4AAABlrwAAf68AAA8AAACArwAAgK8AAA4AAACBrwAAm68AAA8AAACcrwAAnK8AAA4AAACdrwAAt68AAA8AAAC4rwAAuK8AAA4AAAC5rwAA068AAA8AAADUrwAA1K8AAA4AAADVrwAA768AAA8AAADwrwAA8K8AAA4AAADxrwAAC7AAAA8AAAAMsAAADLAAAA4AAAANsAAAJ7AAAA8AAAAosAAAKLAAAA4AAAApsAAAQ7AAAA8AAABEsAAARLAAAA4AAABFsAAAX7AAAA8AAABgsAAAYLAAAA4AAABhsAAAe7AAAA8AAAB8sAAAfLAAAA4AAAB9sAAAl7AAAA8AAACYsAAAmLAAAA4AAACZsAAAs7AAAA8AAAC0sAAAtLAAAA4AAAC1sAAAz7AAAA8AAADQsAAA0LAAAA4AAADRsAAA67AAAA8AAADssAAA7LAAAA4AAADtsAAAB7EAAA8AAAAIsQAACLEAAA4AAAAJsQAAI7EAAA8AAAAksQAAJLEAAA4AAAAlsQAAP7EAAA8AAABAsQAAQLEAAA4AAABBsQAAW7EAAA8AAABcsQAAXLEAAA4AAABdsQAAd7EAAA8AAAB4sQAAeLEAAA4AAAB5sQAAk7EAAA8AAACUsQAAlLEAAA4AAACVsQAAr7EAAA8AAACwsQAAsLEAAA4AAACxsQAAy7EAAA8AAADMsQAAzLEAAA4AAADNsQAA57EAAA8AAADosQAA6LEAAA4AAADpsQAAA7IAAA8AAAAEsgAABLIAAA4AAAAFsgAAH7IAAA8AAAAgsgAAILIAAA4AAAAhsgAAO7IAAA8AAAA8sgAAPLIAAA4AAAA9sgAAV7IAAA8AAABYsgAAWLIAAA4AAABZsgAAc7IAAA8AAAB0sgAAdLIAAA4AAAB1sgAAj7IAAA8AAACQsgAAkLIAAA4AAACRsgAAq7IAAA8AAACssgAArLIAAA4AAACtsgAAx7IAAA8AAADIsgAAyLIAAA4AAADJsgAA47IAAA8AAADksgAA5LIAAA4AAADlsgAA/7IAAA8AAAAAswAAALMAAA4AAAABswAAG7MAAA8AAAAcswAAHLMAAA4AAAAdswAAN7MAAA8AAAA4swAAOLMAAA4AAAA5swAAU7MAAA8AAABUswAAVLMAAA4AAABVswAAb7MAAA8AAABwswAAcLMAAA4AAABxswAAi7MAAA8AAACMswAAjLMAAA4AAACNswAAp7MAAA8AAACoswAAqLMAAA4AAACpswAAw7MAAA8AAADEswAAxLMAAA4AAADFswAA37MAAA8AAADgswAA4LMAAA4AAADhswAA+7MAAA8AAAD8swAA/LMAAA4AAAD9swAAF7QAAA8AAAAYtAAAGLQAAA4AAAAZtAAAM7QAAA8AAAA0tAAANLQAAA4AAAA1tAAAT7QAAA8AAABQtAAAULQAAA4AAABRtAAAa7QAAA8AAABstAAAbLQAAA4AAABttAAAh7QAAA8AAACItAAAiLQAAA4AAACJtAAAo7QAAA8AAACktAAApLQAAA4AAACltAAAv7QAAA8AAADAtAAAwLQAAA4AAADBtAAA27QAAA8AAADctAAA3LQAAA4AAADdtAAA97QAAA8AAAD4tAAA+LQAAA4AAAD5tAAAE7UAAA8AAAAUtQAAFLUAAA4AAAAVtQAAL7UAAA8AAAAwtQAAMLUAAA4AAAAxtQAAS7UAAA8AAABMtQAATLUAAA4AAABNtQAAZ7UAAA8AAABotQAAaLUAAA4AAABptQAAg7UAAA8AAACEtQAAhLUAAA4AAACFtQAAn7UAAA8AAACgtQAAoLUAAA4AAAChtQAAu7UAAA8AAAC8tQAAvLUAAA4AAAC9tQAA17UAAA8AAADYtQAA2LUAAA4AAADZtQAA87UAAA8AAAD0tQAA9LUAAA4AAAD1tQAAD7YAAA8AAAAQtgAAELYAAA4AAAARtgAAK7YAAA8AAAAstgAALLYAAA4AAAAttgAAR7YAAA8AAABItgAASLYAAA4AAABJtgAAY7YAAA8AAABktgAAZLYAAA4AAABltgAAf7YAAA8AAACAtgAAgLYAAA4AAACBtgAAm7YAAA8AAACctgAAnLYAAA4AAACdtgAAt7YAAA8AAAC4tgAAuLYAAA4AAAC5tgAA07YAAA8AAADUtgAA1LYAAA4AAADVtgAA77YAAA8AAADwtgAA8LYAAA4AAADxtgAAC7cAAA8AAAAMtwAADLcAAA4AAAANtwAAJ7cAAA8AAAAotwAAKLcAAA4AAAAptwAAQ7cAAA8AAABEtwAARLcAAA4AAABFtwAAX7cAAA8AAABgtwAAYLcAAA4AAABhtwAAe7cAAA8AAAB8twAAfLcAAA4AAAB9twAAl7cAAA8AAACYtwAAmLcAAA4AAACZtwAAs7cAAA8AAAC0twAAtLcAAA4AAAC1twAAz7cAAA8AAADQtwAA0LcAAA4AAADRtwAA67cAAA8AAADstwAA7LcAAA4AAADttwAAB7gAAA8AAAAIuAAACLgAAA4AAAAJuAAAI7gAAA8AAAAkuAAAJLgAAA4AAAAluAAAP7gAAA8AAABAuAAAQLgAAA4AAABBuAAAW7gAAA8AAABcuAAAXLgAAA4AAABduAAAd7gAAA8AAAB4uAAAeLgAAA4AAAB5uAAAk7gAAA8AAACUuAAAlLgAAA4AAACVuAAAr7gAAA8AAACwuAAAsLgAAA4AAACxuAAAy7gAAA8AAADMuAAAzLgAAA4AAADNuAAA57gAAA8AAADouAAA6LgAAA4AAADpuAAAA7kAAA8AAAAEuQAABLkAAA4AAAAFuQAAH7kAAA8AAAAguQAAILkAAA4AAAAhuQAAO7kAAA8AAAA8uQAAPLkAAA4AAAA9uQAAV7kAAA8AAABYuQAAWLkAAA4AAABZuQAAc7kAAA8AAAB0uQAAdLkAAA4AAAB1uQAAj7kAAA8AAACQuQAAkLkAAA4AAACRuQAAq7kAAA8AAACsuQAArLkAAA4AAACtuQAAx7kAAA8AAADIuQAAyLkAAA4AAADJuQAA47kAAA8AAADkuQAA5LkAAA4AAADluQAA/7kAAA8AAAAAugAAALoAAA4AAAABugAAG7oAAA8AAAAcugAAHLoAAA4AAAAdugAAN7oAAA8AAAA4ugAAOLoAAA4AAAA5ugAAU7oAAA8AAABUugAAVLoAAA4AAABVugAAb7oAAA8AAABwugAAcLoAAA4AAABxugAAi7oAAA8AAACMugAAjLoAAA4AAACNugAAp7oAAA8AAACougAAqLoAAA4AAACpugAAw7oAAA8AAADEugAAxLoAAA4AAADFugAA37oAAA8AAADgugAA4LoAAA4AAADhugAA+7oAAA8AAAD8ugAA/LoAAA4AAAD9ugAAF7sAAA8AAAAYuwAAGLsAAA4AAAAZuwAAM7sAAA8AAAA0uwAANLsAAA4AAAA1uwAAT7sAAA8AAABQuwAAULsAAA4AAABRuwAAa7sAAA8AAABsuwAAbLsAAA4AAABtuwAAh7sAAA8AAACIuwAAiLsAAA4AAACJuwAAo7sAAA8AAACkuwAApLsAAA4AAACluwAAv7sAAA8AAADAuwAAwLsAAA4AAADBuwAA27sAAA8AAADcuwAA3LsAAA4AAADduwAA97sAAA8AAAD4uwAA+LsAAA4AAAD5uwAAE7wAAA8AAAAUvAAAFLwAAA4AAAAVvAAAL7wAAA8AAAAwvAAAMLwAAA4AAAAxvAAAS7wAAA8AAABMvAAATLwAAA4AAABNvAAAZ7wAAA8AAABovAAAaLwAAA4AAABpvAAAg7wAAA8AAACEvAAAhLwAAA4AAACFvAAAn7wAAA8AAACgvAAAoLwAAA4AAAChvAAAu7wAAA8AAAC8vAAAvLwAAA4AAAC9vAAA17wAAA8AAADYvAAA2LwAAA4AAADZvAAA87wAAA8AAAD0vAAA9LwAAA4AAAD1vAAAD70AAA8AAAAQvQAAEL0AAA4AAAARvQAAK70AAA8AAAAsvQAALL0AAA4AAAAtvQAAR70AAA8AAABIvQAASL0AAA4AAABJvQAAY70AAA8AAABkvQAAZL0AAA4AAABlvQAAf70AAA8AAACAvQAAgL0AAA4AAACBvQAAm70AAA8AAACcvQAAnL0AAA4AAACdvQAAt70AAA8AAAC4vQAAuL0AAA4AAAC5vQAA070AAA8AAADUvQAA1L0AAA4AAADVvQAA770AAA8AAADwvQAA8L0AAA4AAADxvQAAC74AAA8AAAAMvgAADL4AAA4AAAANvgAAJ74AAA8AAAAovgAAKL4AAA4AAAApvgAAQ74AAA8AAABEvgAARL4AAA4AAABFvgAAX74AAA8AAABgvgAAYL4AAA4AAABhvgAAe74AAA8AAAB8vgAAfL4AAA4AAAB9vgAAl74AAA8AAACYvgAAmL4AAA4AAACZvgAAs74AAA8AAAC0vgAAtL4AAA4AAAC1vgAAz74AAA8AAADQvgAA0L4AAA4AAADRvgAA674AAA8AAADsvgAA7L4AAA4AAADtvgAAB78AAA8AAAAIvwAACL8AAA4AAAAJvwAAI78AAA8AAAAkvwAAJL8AAA4AAAAlvwAAP78AAA8AAABAvwAAQL8AAA4AAABBvwAAW78AAA8AAABcvwAAXL8AAA4AAABdvwAAd78AAA8AAAB4vwAAeL8AAA4AAAB5vwAAk78AAA8AAACUvwAAlL8AAA4AAACVvwAAr78AAA8AAACwvwAAsL8AAA4AAACxvwAAy78AAA8AAADMvwAAzL8AAA4AAADNvwAA578AAA8AAADovwAA6L8AAA4AAADpvwAAA8AAAA8AAAAEwAAABMAAAA4AAAAFwAAAH8AAAA8AAAAgwAAAIMAAAA4AAAAhwAAAO8AAAA8AAAA8wAAAPMAAAA4AAAA9wAAAV8AAAA8AAABYwAAAWMAAAA4AAABZwAAAc8AAAA8AAAB0wAAAdMAAAA4AAAB1wAAAj8AAAA8AAACQwAAAkMAAAA4AAACRwAAAq8AAAA8AAACswAAArMAAAA4AAACtwAAAx8AAAA8AAADIwAAAyMAAAA4AAADJwAAA48AAAA8AAADkwAAA5MAAAA4AAADlwAAA/8AAAA8AAAAAwQAAAMEAAA4AAAABwQAAG8EAAA8AAAAcwQAAHMEAAA4AAAAdwQAAN8EAAA8AAAA4wQAAOMEAAA4AAAA5wQAAU8EAAA8AAABUwQAAVMEAAA4AAABVwQAAb8EAAA8AAABwwQAAcMEAAA4AAABxwQAAi8EAAA8AAACMwQAAjMEAAA4AAACNwQAAp8EAAA8AAACowQAAqMEAAA4AAACpwQAAw8EAAA8AAADEwQAAxMEAAA4AAADFwQAA38EAAA8AAADgwQAA4MEAAA4AAADhwQAA+8EAAA8AAAD8wQAA/MEAAA4AAAD9wQAAF8IAAA8AAAAYwgAAGMIAAA4AAAAZwgAAM8IAAA8AAAA0wgAANMIAAA4AAAA1wgAAT8IAAA8AAABQwgAAUMIAAA4AAABRwgAAa8IAAA8AAABswgAAbMIAAA4AAABtwgAAh8IAAA8AAACIwgAAiMIAAA4AAACJwgAAo8IAAA8AAACkwgAApMIAAA4AAAClwgAAv8IAAA8AAADAwgAAwMIAAA4AAADBwgAA28IAAA8AAADcwgAA3MIAAA4AAADdwgAA98IAAA8AAAD4wgAA+MIAAA4AAAD5wgAAE8MAAA8AAAAUwwAAFMMAAA4AAAAVwwAAL8MAAA8AAAAwwwAAMMMAAA4AAAAxwwAAS8MAAA8AAABMwwAATMMAAA4AAABNwwAAZ8MAAA8AAABowwAAaMMAAA4AAABpwwAAg8MAAA8AAACEwwAAhMMAAA4AAACFwwAAn8MAAA8AAACgwwAAoMMAAA4AAAChwwAAu8MAAA8AAAC8wwAAvMMAAA4AAAC9wwAA18MAAA8AAADYwwAA2MMAAA4AAADZwwAA88MAAA8AAAD0wwAA9MMAAA4AAAD1wwAAD8QAAA8AAAAQxAAAEMQAAA4AAAARxAAAK8QAAA8AAAAsxAAALMQAAA4AAAAtxAAAR8QAAA8AAABIxAAASMQAAA4AAABJxAAAY8QAAA8AAABkxAAAZMQAAA4AAABlxAAAf8QAAA8AAACAxAAAgMQAAA4AAACBxAAAm8QAAA8AAACcxAAAnMQAAA4AAACdxAAAt8QAAA8AAAC4xAAAuMQAAA4AAAC5xAAA08QAAA8AAADUxAAA1MQAAA4AAADVxAAA78QAAA8AAADwxAAA8MQAAA4AAADxxAAAC8UAAA8AAAAMxQAADMUAAA4AAAANxQAAJ8UAAA8AAAAoxQAAKMUAAA4AAAApxQAAQ8UAAA8AAABExQAARMUAAA4AAABFxQAAX8UAAA8AAABgxQAAYMUAAA4AAABhxQAAe8UAAA8AAAB8xQAAfMUAAA4AAAB9xQAAl8UAAA8AAACYxQAAmMUAAA4AAACZxQAAs8UAAA8AAAC0xQAAtMUAAA4AAAC1xQAAz8UAAA8AAADQxQAA0MUAAA4AAADRxQAA68UAAA8AAADsxQAA7MUAAA4AAADtxQAAB8YAAA8AAAAIxgAACMYAAA4AAAAJxgAAI8YAAA8AAAAkxgAAJMYAAA4AAAAlxgAAP8YAAA8AAABAxgAAQMYAAA4AAABBxgAAW8YAAA8AAABcxgAAXMYAAA4AAABdxgAAd8YAAA8AAAB4xgAAeMYAAA4AAAB5xgAAk8YAAA8AAACUxgAAlMYAAA4AAACVxgAAr8YAAA8AAACwxgAAsMYAAA4AAACxxgAAy8YAAA8AAADMxgAAzMYAAA4AAADNxgAA58YAAA8AAADoxgAA6MYAAA4AAADpxgAAA8cAAA8AAAAExwAABMcAAA4AAAAFxwAAH8cAAA8AAAAgxwAAIMcAAA4AAAAhxwAAO8cAAA8AAAA8xwAAPMcAAA4AAAA9xwAAV8cAAA8AAABYxwAAWMcAAA4AAABZxwAAc8cAAA8AAAB0xwAAdMcAAA4AAAB1xwAAj8cAAA8AAACQxwAAkMcAAA4AAACRxwAAq8cAAA8AAACsxwAArMcAAA4AAACtxwAAx8cAAA8AAADIxwAAyMcAAA4AAADJxwAA48cAAA8AAADkxwAA5McAAA4AAADlxwAA/8cAAA8AAAAAyAAAAMgAAA4AAAAByAAAG8gAAA8AAAAcyAAAHMgAAA4AAAAdyAAAN8gAAA8AAAA4yAAAOMgAAA4AAAA5yAAAU8gAAA8AAABUyAAAVMgAAA4AAABVyAAAb8gAAA8AAABwyAAAcMgAAA4AAABxyAAAi8gAAA8AAACMyAAAjMgAAA4AAACNyAAAp8gAAA8AAACoyAAAqMgAAA4AAACpyAAAw8gAAA8AAADEyAAAxMgAAA4AAADFyAAA38gAAA8AAADgyAAA4MgAAA4AAADhyAAA+8gAAA8AAAD8yAAA/MgAAA4AAAD9yAAAF8kAAA8AAAAYyQAAGMkAAA4AAAAZyQAAM8kAAA8AAAA0yQAANMkAAA4AAAA1yQAAT8kAAA8AAABQyQAAUMkAAA4AAABRyQAAa8kAAA8AAABsyQAAbMkAAA4AAABtyQAAh8kAAA8AAACIyQAAiMkAAA4AAACJyQAAo8kAAA8AAACkyQAApMkAAA4AAAClyQAAv8kAAA8AAADAyQAAwMkAAA4AAADByQAA28kAAA8AAADcyQAA3MkAAA4AAADdyQAA98kAAA8AAAD4yQAA+MkAAA4AAAD5yQAAE8oAAA8AAAAUygAAFMoAAA4AAAAVygAAL8oAAA8AAAAwygAAMMoAAA4AAAAxygAAS8oAAA8AAABMygAATMoAAA4AAABNygAAZ8oAAA8AAABoygAAaMoAAA4AAABpygAAg8oAAA8AAACEygAAhMoAAA4AAACFygAAn8oAAA8AAACgygAAoMoAAA4AAAChygAAu8oAAA8AAAC8ygAAvMoAAA4AAAC9ygAA18oAAA8AAADYygAA2MoAAA4AAADZygAA88oAAA8AAAD0ygAA9MoAAA4AAAD1ygAAD8sAAA8AAAAQywAAEMsAAA4AAAARywAAK8sAAA8AAAAsywAALMsAAA4AAAAtywAAR8sAAA8AAABIywAASMsAAA4AAABJywAAY8sAAA8AAABkywAAZMsAAA4AAABlywAAf8sAAA8AAACAywAAgMsAAA4AAACBywAAm8sAAA8AAACcywAAnMsAAA4AAACdywAAt8sAAA8AAAC4ywAAuMsAAA4AAAC5ywAA08sAAA8AAADUywAA1MsAAA4AAADVywAA78sAAA8AAADwywAA8MsAAA4AAADxywAAC8wAAA8AAAAMzAAADMwAAA4AAAANzAAAJ8wAAA8AAAAozAAAKMwAAA4AAAApzAAAQ8wAAA8AAABEzAAARMwAAA4AAABFzAAAX8wAAA8AAABgzAAAYMwAAA4AAABhzAAAe8wAAA8AAAB8zAAAfMwAAA4AAAB9zAAAl8wAAA8AAACYzAAAmMwAAA4AAACZzAAAs8wAAA8AAAC0zAAAtMwAAA4AAAC1zAAAz8wAAA8AAADQzAAA0MwAAA4AAADRzAAA68wAAA8AAADszAAA7MwAAA4AAADtzAAAB80AAA8AAAAIzQAACM0AAA4AAAAJzQAAI80AAA8AAAAkzQAAJM0AAA4AAAAlzQAAP80AAA8AAABAzQAAQM0AAA4AAABBzQAAW80AAA8AAABczQAAXM0AAA4AAABdzQAAd80AAA8AAAB4zQAAeM0AAA4AAAB5zQAAk80AAA8AAACUzQAAlM0AAA4AAACVzQAAr80AAA8AAACwzQAAsM0AAA4AAACxzQAAy80AAA8AAADMzQAAzM0AAA4AAADNzQAA580AAA8AAADozQAA6M0AAA4AAADpzQAAA84AAA8AAAAEzgAABM4AAA4AAAAFzgAAH84AAA8AAAAgzgAAIM4AAA4AAAAhzgAAO84AAA8AAAA8zgAAPM4AAA4AAAA9zgAAV84AAA8AAABYzgAAWM4AAA4AAABZzgAAc84AAA8AAAB0zgAAdM4AAA4AAAB1zgAAj84AAA8AAACQzgAAkM4AAA4AAACRzgAAq84AAA8AAACszgAArM4AAA4AAACtzgAAx84AAA8AAADIzgAAyM4AAA4AAADJzgAA484AAA8AAADkzgAA5M4AAA4AAADlzgAA/84AAA8AAAAAzwAAAM8AAA4AAAABzwAAG88AAA8AAAAczwAAHM8AAA4AAAAdzwAAN88AAA8AAAA4zwAAOM8AAA4AAAA5zwAAU88AAA8AAABUzwAAVM8AAA4AAABVzwAAb88AAA8AAABwzwAAcM8AAA4AAABxzwAAi88AAA8AAACMzwAAjM8AAA4AAACNzwAAp88AAA8AAACozwAAqM8AAA4AAACpzwAAw88AAA8AAADEzwAAxM8AAA4AAADFzwAA388AAA8AAADgzwAA4M8AAA4AAADhzwAA+88AAA8AAAD8zwAA/M8AAA4AAAD9zwAAF9AAAA8AAAAY0AAAGNAAAA4AAAAZ0AAAM9AAAA8AAAA00AAANNAAAA4AAAA10AAAT9AAAA8AAABQ0AAAUNAAAA4AAABR0AAAa9AAAA8AAABs0AAAbNAAAA4AAABt0AAAh9AAAA8AAACI0AAAiNAAAA4AAACJ0AAAo9AAAA8AAACk0AAApNAAAA4AAACl0AAAv9AAAA8AAADA0AAAwNAAAA4AAADB0AAA29AAAA8AAADc0AAA3NAAAA4AAADd0AAA99AAAA8AAAD40AAA+NAAAA4AAAD50AAAE9EAAA8AAAAU0QAAFNEAAA4AAAAV0QAAL9EAAA8AAAAw0QAAMNEAAA4AAAAx0QAAS9EAAA8AAABM0QAATNEAAA4AAABN0QAAZ9EAAA8AAABo0QAAaNEAAA4AAABp0QAAg9EAAA8AAACE0QAAhNEAAA4AAACF0QAAn9EAAA8AAACg0QAAoNEAAA4AAACh0QAAu9EAAA8AAAC80QAAvNEAAA4AAAC90QAA19EAAA8AAADY0QAA2NEAAA4AAADZ0QAA89EAAA8AAAD00QAA9NEAAA4AAAD10QAAD9IAAA8AAAAQ0gAAENIAAA4AAAAR0gAAK9IAAA8AAAAs0gAALNIAAA4AAAAt0gAAR9IAAA8AAABI0gAASNIAAA4AAABJ0gAAY9IAAA8AAABk0gAAZNIAAA4AAABl0gAAf9IAAA8AAACA0gAAgNIAAA4AAACB0gAAm9IAAA8AAACc0gAAnNIAAA4AAACd0gAAt9IAAA8AAAC40gAAuNIAAA4AAAC50gAA09IAAA8AAADU0gAA1NIAAA4AAADV0gAA79IAAA8AAADw0gAA8NIAAA4AAADx0gAAC9MAAA8AAAAM0wAADNMAAA4AAAAN0wAAJ9MAAA8AAAAo0wAAKNMAAA4AAAAp0wAAQ9MAAA8AAABE0wAARNMAAA4AAABF0wAAX9MAAA8AAABg0wAAYNMAAA4AAABh0wAAe9MAAA8AAAB80wAAfNMAAA4AAAB90wAAl9MAAA8AAACY0wAAmNMAAA4AAACZ0wAAs9MAAA8AAAC00wAAtNMAAA4AAAC10wAAz9MAAA8AAADQ0wAA0NMAAA4AAADR0wAA69MAAA8AAADs0wAA7NMAAA4AAADt0wAAB9QAAA8AAAAI1AAACNQAAA4AAAAJ1AAAI9QAAA8AAAAk1AAAJNQAAA4AAAAl1AAAP9QAAA8AAABA1AAAQNQAAA4AAABB1AAAW9QAAA8AAABc1AAAXNQAAA4AAABd1AAAd9QAAA8AAAB41AAAeNQAAA4AAAB51AAAk9QAAA8AAACU1AAAlNQAAA4AAACV1AAAr9QAAA8AAACw1AAAsNQAAA4AAACx1AAAy9QAAA8AAADM1AAAzNQAAA4AAADN1AAA59QAAA8AAADo1AAA6NQAAA4AAADp1AAAA9UAAA8AAAAE1QAABNUAAA4AAAAF1QAAH9UAAA8AAAAg1QAAINUAAA4AAAAh1QAAO9UAAA8AAAA81QAAPNUAAA4AAAA91QAAV9UAAA8AAABY1QAAWNUAAA4AAABZ1QAAc9UAAA8AAAB01QAAdNUAAA4AAAB11QAAj9UAAA8AAACQ1QAAkNUAAA4AAACR1QAAq9UAAA8AAACs1QAArNUAAA4AAACt1QAAx9UAAA8AAADI1QAAyNUAAA4AAADJ1QAA49UAAA8AAADk1QAA5NUAAA4AAADl1QAA/9UAAA8AAAAA1gAAANYAAA4AAAAB1gAAG9YAAA8AAAAc1gAAHNYAAA4AAAAd1gAAN9YAAA8AAAA41gAAONYAAA4AAAA51gAAU9YAAA8AAABU1gAAVNYAAA4AAABV1gAAb9YAAA8AAABw1gAAcNYAAA4AAABx1gAAi9YAAA8AAACM1gAAjNYAAA4AAACN1gAAp9YAAA8AAACo1gAAqNYAAA4AAACp1gAAw9YAAA8AAADE1gAAxNYAAA4AAADF1gAA39YAAA8AAADg1gAA4NYAAA4AAADh1gAA+9YAAA8AAAD81gAA/NYAAA4AAAD91gAAF9cAAA8AAAAY1wAAGNcAAA4AAAAZ1wAAM9cAAA8AAAA01wAANNcAAA4AAAA11wAAT9cAAA8AAABQ1wAAUNcAAA4AAABR1wAAa9cAAA8AAABs1wAAbNcAAA4AAABt1wAAh9cAAA8AAACI1wAAiNcAAA4AAACJ1wAAo9cAAA8AAACw1wAAxtcAABEAAADL1wAA+9cAABAAAAAe+wAAHvsAAAQAAAAA/gAAD/4AAAQAAAAg/gAAL/4AAAQAAAD//gAA//4AAAMAAACe/wAAn/8AAAQAAADw/wAA+/8AAAMAAAD9AQEA/QEBAAQAAADgAgEA4AIBAAQAAAB2AwEAegMBAAQAAAABCgEAAwoBAAQAAAAFCgEABgoBAAQAAAAMCgEADwoBAAQAAAA4CgEAOgoBAAQAAAA/CgEAPwoBAAQAAADlCgEA5goBAAQAAAAkDQEAJw0BAAQAAACrDgEArA4BAAQAAABGDwEAUA8BAAQAAACCDwEAhQ8BAAQAAAAAEAEAABABAAcAAAABEAEAARABAAQAAAACEAEAAhABAAcAAAA4EAEARhABAAQAAABwEAEAcBABAAQAAABzEAEAdBABAAQAAAB/EAEAgRABAAQAAACCEAEAghABAAcAAACwEAEAshABAAcAAACzEAEAthABAAQAAAC3EAEAuBABAAcAAAC5EAEAuhABAAQAAAC9EAEAvRABAAUAAADCEAEAwhABAAQAAADNEAEAzRABAAUAAAAAEQEAAhEBAAQAAAAnEQEAKxEBAAQAAAAsEQEALBEBAAcAAAAtEQEANBEBAAQAAABFEQEARhEBAAcAAABzEQEAcxEBAAQAAACAEQEAgREBAAQAAACCEQEAghEBAAcAAACzEQEAtREBAAcAAAC2EQEAvhEBAAQAAAC/EQEAwBEBAAcAAADCEQEAwxEBAAUAAADJEQEAzBEBAAQAAADOEQEAzhEBAAcAAADPEQEAzxEBAAQAAAAsEgEALhIBAAcAAAAvEgEAMRIBAAQAAAAyEgEAMxIBAAcAAAA0EgEANBIBAAQAAAA1EgEANRIBAAcAAAA2EgEANxIBAAQAAAA+EgEAPhIBAAQAAADfEgEA3xIBAAQAAADgEgEA4hIBAAcAAADjEgEA6hIBAAQAAAAAEwEAARMBAAQAAAACEwEAAxMBAAcAAAA7EwEAPBMBAAQAAAA+EwEAPhMBAAQAAAA/EwEAPxMBAAcAAABAEwEAQBMBAAQAAABBEwEARBMBAAcAAABHEwEASBMBAAcAAABLEwEATRMBAAcAAABXEwEAVxMBAAQAAABiEwEAYxMBAAcAAABmEwEAbBMBAAQAAABwEwEAdBMBAAQAAAA1FAEANxQBAAcAAAA4FAEAPxQBAAQAAABAFAEAQRQBAAcAAABCFAEARBQBAAQAAABFFAEARRQBAAcAAABGFAEARhQBAAQAAABeFAEAXhQBAAQAAACwFAEAsBQBAAQAAACxFAEAshQBAAcAAACzFAEAuBQBAAQAAAC5FAEAuRQBAAcAAAC6FAEAuhQBAAQAAAC7FAEAvBQBAAcAAAC9FAEAvRQBAAQAAAC+FAEAvhQBAAcAAAC/FAEAwBQBAAQAAADBFAEAwRQBAAcAAADCFAEAwxQBAAQAAACvFQEArxUBAAQAAACwFQEAsRUBAAcAAACyFQEAtRUBAAQAAAC4FQEAuxUBAAcAAAC8FQEAvRUBAAQAAAC+FQEAvhUBAAcAAAC/FQEAwBUBAAQAAADcFQEA3RUBAAQAAAAwFgEAMhYBAAcAAAAzFgEAOhYBAAQAAAA7FgEAPBYBAAcAAAA9FgEAPRYBAAQAAAA+FgEAPhYBAAcAAAA/FgEAQBYBAAQAAACrFgEAqxYBAAQAAACsFgEArBYBAAcAAACtFgEArRYBAAQAAACuFgEArxYBAAcAAACwFgEAtRYBAAQAAAC2FgEAthYBAAcAAAC3FgEAtxYBAAQAAAAdFwEAHxcBAAQAAAAiFwEAJRcBAAQAAAAmFwEAJhcBAAcAAAAnFwEAKxcBAAQAAAAsGAEALhgBAAcAAAAvGAEANxgBAAQAAAA4GAEAOBgBAAcAAAA5GAEAOhgBAAQAAAAwGQEAMBkBAAQAAAAxGQEANRkBAAcAAAA3GQEAOBkBAAcAAAA7GQEAPBkBAAQAAAA9GQEAPRkBAAcAAAA+GQEAPhkBAAQAAAA/GQEAPxkBAAUAAABAGQEAQBkBAAcAAABBGQEAQRkBAAUAAABCGQEAQhkBAAcAAABDGQEAQxkBAAQAAADRGQEA0xkBAAcAAADUGQEA1xkBAAQAAADaGQEA2xkBAAQAAADcGQEA3xkBAAcAAADgGQEA4BkBAAQAAADkGQEA5BkBAAcAAAABGgEAChoBAAQAAAAzGgEAOBoBAAQAAAA5GgEAORoBAAcAAAA6GgEAOhoBAAUAAAA7GgEAPhoBAAQAAABHGgEARxoBAAQAAABRGgEAVhoBAAQAAABXGgEAWBoBAAcAAABZGgEAWxoBAAQAAACEGgEAiRoBAAUAAACKGgEAlhoBAAQAAACXGgEAlxoBAAcAAACYGgEAmRoBAAQAAAAvHAEALxwBAAcAAAAwHAEANhwBAAQAAAA4HAEAPRwBAAQAAAA+HAEAPhwBAAcAAAA/HAEAPxwBAAQAAACSHAEApxwBAAQAAACpHAEAqRwBAAcAAACqHAEAsBwBAAQAAACxHAEAsRwBAAcAAACyHAEAsxwBAAQAAAC0HAEAtBwBAAcAAAC1HAEAthwBAAQAAAAxHQEANh0BAAQAAAA6HQEAOh0BAAQAAAA8HQEAPR0BAAQAAAA/HQEARR0BAAQAAABGHQEARh0BAAUAAABHHQEARx0BAAQAAACKHQEAjh0BAAcAAACQHQEAkR0BAAQAAACTHQEAlB0BAAcAAACVHQEAlR0BAAQAAACWHQEAlh0BAAcAAACXHQEAlx0BAAQAAADzHgEA9B4BAAQAAAD1HgEA9h4BAAcAAAAwNAEAODQBAAMAAADwagEA9GoBAAQAAAAwawEANmsBAAQAAABPbwEAT28BAAQAAABRbwEAh28BAAcAAACPbwEAkm8BAAQAAADkbwEA5G8BAAQAAADwbwEA8W8BAAcAAACdvAEAnrwBAAQAAACgvAEAo7wBAAMAAAAAzwEALc8BAAQAAAAwzwEARs8BAAQAAABl0QEAZdEBAAQAAABm0QEAZtEBAAcAAABn0QEAadEBAAQAAABt0QEAbdEBAAcAAABu0QEActEBAAQAAABz0QEAetEBAAMAAAB70QEAgtEBAAQAAACF0QEAi9EBAAQAAACq0QEArdEBAAQAAABC0gEARNIBAAQAAAAA2gEANtoBAAQAAAA72gEAbNoBAAQAAAB12gEAddoBAAQAAACE2gEAhNoBAAQAAACb2gEAn9oBAAQAAACh2gEAr9oBAAQAAAAA4AEABuABAAQAAAAI4AEAGOABAAQAAAAb4AEAIeABAAQAAAAj4AEAJOABAAQAAAAm4AEAKuABAAQAAAAw4QEANuEBAAQAAACu4gEAruIBAAQAAADs4gEA7+IBAAQAAADQ6AEA1ugBAAQAAABE6QEASukBAAQAAADm8QEA//EBAAYAAAD78wEA//MBAAQAAAAAAA4AHwAOAAMAAAAgAA4AfwAOAAQAAACAAA4A/wAOAAMAAAAAAQ4A7wEOAAQAAADwAQ4A/w8OAAMAAAABAAAACgAAAAoAAADSAgAAQQAAAFoAAABhAAAAegAAAKoAAACqAAAAtQAAALUAAAC6AAAAugAAAMAAAADWAAAA2AAAAPYAAAD4AAAAwQIAAMYCAADRAgAA4AIAAOQCAADsAgAA7AIAAO4CAADuAgAARQMAAEUDAABwAwAAdAMAAHYDAAB3AwAAegMAAH0DAAB/AwAAfwMAAIYDAACGAwAAiAMAAIoDAACMAwAAjAMAAI4DAAChAwAAowMAAPUDAAD3AwAAgQQAAIoEAAAvBQAAMQUAAFYFAABZBQAAWQUAAGAFAACIBQAAsAUAAL0FAAC/BQAAvwUAAMEFAADCBQAAxAUAAMUFAADHBQAAxwUAANAFAADqBQAA7wUAAPIFAAAQBgAAGgYAACAGAABXBgAAWQYAAF8GAABuBgAA0wYAANUGAADcBgAA4QYAAOgGAADtBgAA7wYAAPoGAAD8BgAA/wYAAP8GAAAQBwAAPwcAAE0HAACxBwAAygcAAOoHAAD0BwAA9QcAAPoHAAD6BwAAAAgAABcIAAAaCAAALAgAAEAIAABYCAAAYAgAAGoIAABwCAAAhwgAAIkIAACOCAAAoAgAAMkIAADUCAAA3wgAAOMIAADpCAAA8AgAADsJAAA9CQAATAkAAE4JAABQCQAAVQkAAGMJAABxCQAAgwkAAIUJAACMCQAAjwkAAJAJAACTCQAAqAkAAKoJAACwCQAAsgkAALIJAAC2CQAAuQkAAL0JAADECQAAxwkAAMgJAADLCQAAzAkAAM4JAADOCQAA1wkAANcJAADcCQAA3QkAAN8JAADjCQAA8AkAAPEJAAD8CQAA/AkAAAEKAAADCgAABQoAAAoKAAAPCgAAEAoAABMKAAAoCgAAKgoAADAKAAAyCgAAMwoAADUKAAA2CgAAOAoAADkKAAA+CgAAQgoAAEcKAABICgAASwoAAEwKAABRCgAAUQoAAFkKAABcCgAAXgoAAF4KAABwCgAAdQoAAIEKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvQoAAMUKAADHCgAAyQoAAMsKAADMCgAA0AoAANAKAADgCgAA4woAAPkKAAD8CgAAAQsAAAMLAAAFCwAADAsAAA8LAAAQCwAAEwsAACgLAAAqCwAAMAsAADILAAAzCwAANQsAADkLAAA9CwAARAsAAEcLAABICwAASwsAAEwLAABWCwAAVwsAAFwLAABdCwAAXwsAAGMLAABxCwAAcQsAAIILAACDCwAAhQsAAIoLAACOCwAAkAsAAJILAACVCwAAmQsAAJoLAACcCwAAnAsAAJ4LAACfCwAAowsAAKQLAACoCwAAqgsAAK4LAAC5CwAAvgsAAMILAADGCwAAyAsAAMoLAADMCwAA0AsAANALAADXCwAA1wsAAAAMAAADDAAABQwAAAwMAAAODAAAEAwAABIMAAAoDAAAKgwAADkMAAA9DAAARAwAAEYMAABIDAAASgwAAEwMAABVDAAAVgwAAFgMAABaDAAAXQwAAF0MAABgDAAAYwwAAIAMAACDDAAAhQwAAIwMAACODAAAkAwAAJIMAACoDAAAqgwAALMMAAC1DAAAuQwAAL0MAADEDAAAxgwAAMgMAADKDAAAzAwAANUMAADWDAAA3QwAAN4MAADgDAAA4wwAAPEMAADyDAAAAA0AAAwNAAAODQAAEA0AABINAAA6DQAAPQ0AAEQNAABGDQAASA0AAEoNAABMDQAATg0AAE4NAABUDQAAVw0AAF8NAABjDQAAeg0AAH8NAACBDQAAgw0AAIUNAACWDQAAmg0AALENAACzDQAAuw0AAL0NAAC9DQAAwA0AAMYNAADPDQAA1A0AANYNAADWDQAA2A0AAN8NAADyDQAA8w0AAAEOAAA6DgAAQA4AAEYOAABNDgAATQ4AAIEOAACCDgAAhA4AAIQOAACGDgAAig4AAIwOAACjDgAApQ4AAKUOAACnDgAAuQ4AALsOAAC9DgAAwA4AAMQOAADGDgAAxg4AAM0OAADNDgAA3A4AAN8OAAAADwAAAA8AAEAPAABHDwAASQ8AAGwPAABxDwAAgQ8AAIgPAACXDwAAmQ8AALwPAAAAEAAANhAAADgQAAA4EAAAOxAAAD8QAABQEAAAjxAAAJoQAACdEAAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAA0BAAAPoQAAD8EAAASBIAAEoSAABNEgAAUBIAAFYSAABYEgAAWBIAAFoSAABdEgAAYBIAAIgSAACKEgAAjRIAAJASAACwEgAAshIAALUSAAC4EgAAvhIAAMASAADAEgAAwhIAAMUSAADIEgAA1hIAANgSAAAQEwAAEhMAABUTAAAYEwAAWhMAAIATAACPEwAAoBMAAPUTAAD4EwAA/RMAAAEUAABsFgAAbxYAAH8WAACBFgAAmhYAAKAWAADqFgAA7hYAAPgWAAAAFwAAExcAAB8XAAAzFwAAQBcAAFMXAABgFwAAbBcAAG4XAABwFwAAchcAAHMXAACAFwAAsxcAALYXAADIFwAA1xcAANcXAADcFwAA3BcAACAYAAB4GAAAgBgAAKoYAACwGAAA9RgAAAAZAAAeGQAAIBkAACsZAAAwGQAAOBkAAFAZAABtGQAAcBkAAHQZAACAGQAAqxkAALAZAADJGQAAABoAABsaAAAgGgAAXhoAAGEaAAB0GgAApxoAAKcaAAC/GgAAwBoAAMwaAADOGgAAABsAADMbAAA1GwAAQxsAAEUbAABMGwAAgBsAAKkbAACsGwAArxsAALobAADlGwAA5xsAAPEbAAAAHAAANhwAAE0cAABPHAAAWhwAAH0cAACAHAAAiBwAAJAcAAC6HAAAvRwAAL8cAADpHAAA7BwAAO4cAADzHAAA9RwAAPYcAAD6HAAA+hwAAAAdAAC/HQAA5x0AAPQdAAAAHgAAFR8AABgfAAAdHwAAIB8AAEUfAABIHwAATR8AAFAfAABXHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAH0fAACAHwAAtB8AALYfAAC8HwAAvh8AAL4fAADCHwAAxB8AAMYfAADMHwAA0B8AANMfAADWHwAA2x8AAOAfAADsHwAA8h8AAPQfAAD2HwAA/B8AAHEgAABxIAAAfyAAAH8gAACQIAAAnCAAAAIhAAACIQAAByEAAAchAAAKIQAAEyEAABUhAAAVIQAAGSEAAB0hAAAkIQAAJCEAACYhAAAmIQAAKCEAACghAAAqIQAALSEAAC8hAAA5IQAAPCEAAD8hAABFIQAASSEAAE4hAABOIQAAYCEAAIghAAC2JAAA6SQAAAAsAADkLAAA6ywAAO4sAADyLAAA8ywAAAAtAAAlLQAAJy0AACctAAAtLQAALS0AADAtAABnLQAAby0AAG8tAACALQAAli0AAKAtAACmLQAAqC0AAK4tAACwLQAAti0AALgtAAC+LQAAwC0AAMYtAADILQAAzi0AANAtAADWLQAA2C0AAN4tAADgLQAA/y0AAC8uAAAvLgAABTAAAAcwAAAhMAAAKTAAADEwAAA1MAAAODAAADwwAABBMAAAljAAAJ0wAACfMAAAoTAAAPowAAD8MAAA/zAAAAUxAAAvMQAAMTEAAI4xAACgMQAAvzEAAPAxAAD/MQAAADQAAL9NAAAATgAAjKQAANCkAAD9pAAAAKUAAAymAAAQpgAAH6YAACqmAAArpgAAQKYAAG6mAAB0pgAAe6YAAH+mAADvpgAAF6cAAB+nAAAipwAAiKcAAIunAADKpwAA0KcAANGnAADTpwAA06cAANWnAADZpwAA8qcAAAWoAAAHqAAAJ6gAAECoAABzqAAAgKgAAMOoAADFqAAAxagAAPKoAAD3qAAA+6gAAPuoAAD9qAAA/6gAAAqpAAAqqQAAMKkAAFKpAABgqQAAfKkAAICpAACyqQAAtKkAAL+pAADPqQAAz6kAAOCpAADvqQAA+qkAAP6pAAAAqgAANqoAAECqAABNqgAAYKoAAHaqAAB6qgAAvqoAAMCqAADAqgAAwqoAAMKqAADbqgAA3aoAAOCqAADvqgAA8qoAAPWqAAABqwAABqsAAAmrAAAOqwAAEasAABarAAAgqwAAJqsAACirAAAuqwAAMKsAAFqrAABcqwAAaasAAHCrAADqqwAAAKwAAKPXAACw1wAAxtcAAMvXAAD71wAAAPkAAG36AABw+gAA2foAAAD7AAAG+wAAE/sAABf7AAAd+wAAKPsAACr7AAA2+wAAOPsAADz7AAA++wAAPvsAAED7AABB+wAAQ/sAAET7AABG+wAAsfsAANP7AAA9/QAAUP0AAI/9AACS/QAAx/0AAPD9AAD7/QAAcP4AAHT+AAB2/gAA/P4AACH/AAA6/wAAQf8AAFr/AABm/wAAvv8AAML/AADH/wAAyv8AAM//AADS/wAA1/8AANr/AADc/wAAAAABAAsAAQANAAEAJgABACgAAQA6AAEAPAABAD0AAQA/AAEATQABAFAAAQBdAAEAgAABAPoAAQBAAQEAdAEBAIACAQCcAgEAoAIBANACAQAAAwEAHwMBAC0DAQBKAwEAUAMBAHoDAQCAAwEAnQMBAKADAQDDAwEAyAMBAM8DAQDRAwEA1QMBAAAEAQCdBAEAsAQBANMEAQDYBAEA+wQBAAAFAQAnBQEAMAUBAGMFAQBwBQEAegUBAHwFAQCKBQEAjAUBAJIFAQCUBQEAlQUBAJcFAQChBQEAowUBALEFAQCzBQEAuQUBALsFAQC8BQEAAAYBADYHAQBABwEAVQcBAGAHAQBnBwEAgAcBAIUHAQCHBwEAsAcBALIHAQC6BwEAAAgBAAUIAQAICAEACAgBAAoIAQA1CAEANwgBADgIAQA8CAEAPAgBAD8IAQBVCAEAYAgBAHYIAQCACAEAnggBAOAIAQDyCAEA9AgBAPUIAQAACQEAFQkBACAJAQA5CQEAgAkBALcJAQC+CQEAvwkBAAAKAQADCgEABQoBAAYKAQAMCgEAEwoBABUKAQAXCgEAGQoBADUKAQBgCgEAfAoBAIAKAQCcCgEAwAoBAMcKAQDJCgEA5AoBAAALAQA1CwEAQAsBAFULAQBgCwEAcgsBAIALAQCRCwEAAAwBAEgMAQCADAEAsgwBAMAMAQDyDAEAAA0BACcNAQCADgEAqQ4BAKsOAQCsDgEAsA4BALEOAQAADwEAHA8BACcPAQAnDwEAMA8BAEUPAQBwDwEAgQ8BALAPAQDEDwEA4A8BAPYPAQAAEAEARRABAHEQAQB1EAEAghABALgQAQDCEAEAwhABANAQAQDoEAEAABEBADIRAQBEEQEARxEBAFARAQByEQEAdhEBAHYRAQCAEQEAvxEBAMERAQDEEQEAzhEBAM8RAQDaEQEA2hEBANwRAQDcEQEAABIBABESAQATEgEANBIBADcSAQA3EgEAPhIBAD4SAQCAEgEAhhIBAIgSAQCIEgEAihIBAI0SAQCPEgEAnRIBAJ8SAQCoEgEAsBIBAOgSAQAAEwEAAxMBAAUTAQAMEwEADxMBABATAQATEwEAKBMBACoTAQAwEwEAMhMBADMTAQA1EwEAORMBAD0TAQBEEwEARxMBAEgTAQBLEwEATBMBAFATAQBQEwEAVxMBAFcTAQBdEwEAYxMBAAAUAQBBFAEAQxQBAEUUAQBHFAEAShQBAF8UAQBhFAEAgBQBAMEUAQDEFAEAxRQBAMcUAQDHFAEAgBUBALUVAQC4FQEAvhUBANgVAQDdFQEAABYBAD4WAQBAFgEAQBYBAEQWAQBEFgEAgBYBALUWAQC4FgEAuBYBAAAXAQAaFwEAHRcBACoXAQBAFwEARhcBAAAYAQA4GAEAoBgBAN8YAQD/GAEABhkBAAkZAQAJGQEADBkBABMZAQAVGQEAFhkBABgZAQA1GQEANxkBADgZAQA7GQEAPBkBAD8ZAQBCGQEAoBkBAKcZAQCqGQEA1xkBANoZAQDfGQEA4RkBAOEZAQDjGQEA5BkBAAAaAQAyGgEANRoBAD4aAQBQGgEAlxoBAJ0aAQCdGgEAsBoBAPgaAQAAHAEACBwBAAocAQA2HAEAOBwBAD4cAQBAHAEAQBwBAHIcAQCPHAEAkhwBAKccAQCpHAEAthwBAAAdAQAGHQEACB0BAAkdAQALHQEANh0BADodAQA6HQEAPB0BAD0dAQA/HQEAQR0BAEMdAQBDHQEARh0BAEcdAQBgHQEAZR0BAGcdAQBoHQEAah0BAI4dAQCQHQEAkR0BAJMdAQCWHQEAmB0BAJgdAQDgHgEA9h4BALAfAQCwHwEAACABAJkjAQAAJAEAbiQBAIAkAQBDJQEAkC8BAPAvAQAAMAEALjQBAABEAQBGRgEAAGgBADhqAQBAagEAXmoBAHBqAQC+agEA0GoBAO1qAQAAawEAL2sBAEBrAQBDawEAY2sBAHdrAQB9awEAj2sBAEBuAQB/bgEAAG8BAEpvAQBPbwEAh28BAI9vAQCfbwEA4G8BAOFvAQDjbwEA428BAPBvAQDxbwEAAHABAPeHAQAAiAEA1YwBAACNAQAIjQEA8K8BAPOvAQD1rwEA+68BAP2vAQD+rwEAALABACKxAQBQsQEAUrEBAGSxAQBnsQEAcLEBAPuyAQAAvAEAarwBAHC8AQB8vAEAgLwBAIi8AQCQvAEAmbwBAJ68AQCevAEAANQBAFTUAQBW1AEAnNQBAJ7UAQCf1AEAotQBAKLUAQCl1AEAptQBAKnUAQCs1AEArtQBALnUAQC71AEAu9QBAL3UAQDD1AEAxdQBAAXVAQAH1QEACtUBAA3VAQAU1QEAFtUBABzVAQAe1QEAOdUBADvVAQA+1QEAQNUBAETVAQBG1QEARtUBAErVAQBQ1QEAUtUBAKXWAQCo1gEAwNYBAMLWAQDa1gEA3NYBAPrWAQD81gEAFNcBABbXAQA01wEANtcBAE7XAQBQ1wEAbtcBAHDXAQCI1wEAitcBAKjXAQCq1wEAwtcBAMTXAQDL1wEAAN8BAB7fAQAA4AEABuABAAjgAQAY4AEAG+ABACHgAQAj4AEAJOABACbgAQAq4AEAAOEBACzhAQA34QEAPeEBAE7hAQBO4QEAkOIBAK3iAQDA4gEA6+IBAODnAQDm5wEA6OcBAOvnAQDt5wEA7ucBAPDnAQD+5wEAAOgBAMToAQAA6QEAQ+kBAEfpAQBH6QEAS+kBAEvpAQAA7gEAA+4BAAXuAQAf7gEAIe4BACLuAQAk7gEAJO4BACfuAQAn7gEAKe4BADLuAQA07gEAN+4BADnuAQA57gEAO+4BADvuAQBC7gEAQu4BAEfuAQBH7gEASe4BAEnuAQBL7gEAS+4BAE3uAQBP7gEAUe4BAFLuAQBU7gEAVO4BAFfuAQBX7gEAWe4BAFnuAQBb7gEAW+4BAF3uAQBd7gEAX+4BAF/uAQBh7gEAYu4BAGTuAQBk7gEAZ+4BAGruAQBs7gEAcu4BAHTuAQB37gEAee4BAHzuAQB+7gEAfu4BAIDuAQCJ7gEAi+4BAJvuAQCh7gEAo+4BAKXuAQCp7gEAq+4BALvuAQAw8QEASfEBAFDxAQBp8QEAcPEBAInxAQAAAAIA36YCAACnAgA4twIAQLcCAB24AgAguAIAoc4CALDOAgDg6wIAAPgCAB36AgAAAAMAShMDAEHwxAILQggAAAAJAAAACQAAACAAAAAgAAAAoAAAAKAAAACAFgAAgBYAAAAgAAAKIAAALyAAAC8gAABfIAAAXyAAAAAwAAAAMABBwMUCCxECAAAAAAAAAB8AAAB/AAAAnwBB4MUCC/MDPgAAADAAAAA5AAAAYAYAAGkGAADwBgAA+QYAAMAHAADJBwAAZgkAAG8JAADmCQAA7wkAAGYKAABvCgAA5goAAO8KAABmCwAAbwsAAOYLAADvCwAAZgwAAG8MAADmDAAA7wwAAGYNAABvDQAA5g0AAO8NAABQDgAAWQ4AANAOAADZDgAAIA8AACkPAABAEAAASRAAAJAQAACZEAAA4BcAAOkXAAAQGAAAGRgAAEYZAABPGQAA0BkAANkZAACAGgAAiRoAAJAaAACZGgAAUBsAAFkbAACwGwAAuRsAAEAcAABJHAAAUBwAAFkcAAAgpgAAKaYAANCoAADZqAAAAKkAAAmpAADQqQAA2akAAPCpAAD5qQAAUKoAAFmqAADwqwAA+asAABD/AAAZ/wAAoAQBAKkEAQAwDQEAOQ0BAGYQAQBvEAEA8BABAPkQAQA2EQEAPxEBANARAQDZEQEA8BIBAPkSAQBQFAEAWRQBANAUAQDZFAEAUBYBAFkWAQDAFgEAyRYBADAXAQA5FwEA4BgBAOkYAQBQGQEAWRkBAFAcAQBZHAEAUB0BAFkdAQCgHQEAqR0BAGBqAQBpagEAwGoBAMlqAQBQawEAWWsBAM7XAQD/1wEAQOEBAEnhAQDw4gEA+eIBAFDpAQBZ6QEA8PsBAPn7AQBB4MkCC+NVvwIAACEAAAB+AAAAoQAAAHcDAAB6AwAAfwMAAIQDAACKAwAAjAMAAIwDAACOAwAAoQMAAKMDAAAvBQAAMQUAAFYFAABZBQAAigUAAI0FAACPBQAAkQUAAMcFAADQBQAA6gUAAO8FAAD0BQAAAAYAAA0HAAAPBwAASgcAAE0HAACxBwAAwAcAAPoHAAD9BwAALQgAADAIAAA+CAAAQAgAAFsIAABeCAAAXggAAGAIAABqCAAAcAgAAI4IAACQCAAAkQgAAJgIAACDCQAAhQkAAIwJAACPCQAAkAkAAJMJAACoCQAAqgkAALAJAACyCQAAsgkAALYJAAC5CQAAvAkAAMQJAADHCQAAyAkAAMsJAADOCQAA1wkAANcJAADcCQAA3QkAAN8JAADjCQAA5gkAAP4JAAABCgAAAwoAAAUKAAAKCgAADwoAABAKAAATCgAAKAoAACoKAAAwCgAAMgoAADMKAAA1CgAANgoAADgKAAA5CgAAPAoAADwKAAA+CgAAQgoAAEcKAABICgAASwoAAE0KAABRCgAAUQoAAFkKAABcCgAAXgoAAF4KAABmCgAAdgoAAIEKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvAoAAMUKAADHCgAAyQoAAMsKAADNCgAA0AoAANAKAADgCgAA4woAAOYKAADxCgAA+QoAAP8KAAABCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAADwLAABECwAARwsAAEgLAABLCwAATQsAAFULAABXCwAAXAsAAF0LAABfCwAAYwsAAGYLAAB3CwAAggsAAIMLAACFCwAAigsAAI4LAACQCwAAkgsAAJULAACZCwAAmgsAAJwLAACcCwAAngsAAJ8LAACjCwAApAsAAKgLAACqCwAArgsAALkLAAC+CwAAwgsAAMYLAADICwAAygsAAM0LAADQCwAA0AsAANcLAADXCwAA5gsAAPoLAAAADAAADAwAAA4MAAAQDAAAEgwAACgMAAAqDAAAOQwAADwMAABEDAAARgwAAEgMAABKDAAATQwAAFUMAABWDAAAWAwAAFoMAABdDAAAXQwAAGAMAABjDAAAZgwAAG8MAAB3DAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvAwAAMQMAADGDAAAyAwAAMoMAADNDAAA1QwAANYMAADdDAAA3gwAAOAMAADjDAAA5gwAAO8MAADxDAAA8gwAAAANAAAMDQAADg0AABANAAASDQAARA0AAEYNAABIDQAASg0AAE8NAABUDQAAYw0AAGYNAAB/DQAAgQ0AAIMNAACFDQAAlg0AAJoNAACxDQAAsw0AALsNAAC9DQAAvQ0AAMANAADGDQAAyg0AAMoNAADPDQAA1A0AANYNAADWDQAA2A0AAN8NAADmDQAA7w0AAPINAAD0DQAAAQ4AADoOAAA/DgAAWw4AAIEOAACCDgAAhA4AAIQOAACGDgAAig4AAIwOAACjDgAApQ4AAKUOAACnDgAAvQ4AAMAOAADEDgAAxg4AAMYOAADIDgAAzQ4AANAOAADZDgAA3A4AAN8OAAAADwAARw8AAEkPAABsDwAAcQ8AAJcPAACZDwAAvA8AAL4PAADMDwAAzg8AANoPAAAAEAAAxRAAAMcQAADHEAAAzRAAAM0QAADQEAAASBIAAEoSAABNEgAAUBIAAFYSAABYEgAAWBIAAFoSAABdEgAAYBIAAIgSAACKEgAAjRIAAJASAACwEgAAshIAALUSAAC4EgAAvhIAAMASAADAEgAAwhIAAMUSAADIEgAA1hIAANgSAAAQEwAAEhMAABUTAAAYEwAAWhMAAF0TAAB8EwAAgBMAAJkTAACgEwAA9RMAAPgTAAD9EwAAABQAAH8WAACBFgAAnBYAAKAWAAD4FgAAABcAABUXAAAfFwAANhcAAEAXAABTFwAAYBcAAGwXAABuFwAAcBcAAHIXAABzFwAAgBcAAN0XAADgFwAA6RcAAPAXAAD5FwAAABgAABkYAAAgGAAAeBgAAIAYAACqGAAAsBgAAPUYAAAAGQAAHhkAACAZAAArGQAAMBkAADsZAABAGQAAQBkAAEQZAABtGQAAcBkAAHQZAACAGQAAqxkAALAZAADJGQAA0BkAANoZAADeGQAAGxoAAB4aAABeGgAAYBoAAHwaAAB/GgAAiRoAAJAaAACZGgAAoBoAAK0aAACwGgAAzhoAAAAbAABMGwAAUBsAAH4bAACAGwAA8xsAAPwbAAA3HAAAOxwAAEkcAABNHAAAiBwAAJAcAAC6HAAAvRwAAMccAADQHAAA+hwAAAAdAAAVHwAAGB8AAB0fAAAgHwAARR8AAEgfAABNHwAAUB8AAFcfAABZHwAAWR8AAFsfAABbHwAAXR8AAF0fAABfHwAAfR8AAIAfAAC0HwAAth8AAMQfAADGHwAA0x8AANYfAADbHwAA3R8AAO8fAADyHwAA9B8AAPYfAAD+HwAACyAAACcgAAAqIAAALiAAADAgAABeIAAAYCAAAGQgAABmIAAAcSAAAHQgAACOIAAAkCAAAJwgAACgIAAAwCAAANAgAADwIAAAACEAAIshAACQIQAAJiQAAEAkAABKJAAAYCQAAHMrAAB2KwAAlSsAAJcrAADzLAAA+SwAACUtAAAnLQAAJy0AAC0tAAAtLQAAMC0AAGctAABvLQAAcC0AAH8tAACWLQAAoC0AAKYtAACoLQAAri0AALAtAAC2LQAAuC0AAL4tAADALQAAxi0AAMgtAADOLQAA0C0AANYtAADYLQAA3i0AAOAtAABdLgAAgC4AAJkuAACbLgAA8y4AAAAvAADVLwAA8C8AAPsvAAABMAAAPzAAAEEwAACWMAAAmTAAAP8wAAAFMQAALzEAADExAACOMQAAkDEAAOMxAADwMQAAHjIAACAyAACMpAAAkKQAAMakAADQpAAAK6YAAECmAAD3pgAAAKcAAMqnAADQpwAA0acAANOnAADTpwAA1acAANmnAADypwAALKgAADCoAAA5qAAAQKgAAHeoAACAqAAAxagAAM6oAADZqAAA4KgAAFOpAABfqQAAfKkAAICpAADNqQAAz6kAANmpAADeqQAA/qkAAACqAAA2qgAAQKoAAE2qAABQqgAAWaoAAFyqAADCqgAA26oAAPaqAAABqwAABqsAAAmrAAAOqwAAEasAABarAAAgqwAAJqsAACirAAAuqwAAMKsAAGurAABwqwAA7asAAPCrAAD5qwAAAKwAAKPXAACw1wAAxtcAAMvXAAD71wAAAOAAAG36AABw+gAA2foAAAD7AAAG+wAAE/sAABf7AAAd+wAANvsAADj7AAA8+wAAPvsAAD77AABA+wAAQfsAAEP7AABE+wAARvsAAML7AADT+wAAj/0AAJL9AADH/QAAz/0AAM/9AADw/QAAGf4AACD+AABS/gAAVP4AAGb+AABo/gAAa/4AAHD+AAB0/gAAdv4AAPz+AAD//gAA//4AAAH/AAC+/wAAwv8AAMf/AADK/wAAz/8AANL/AADX/wAA2v8AANz/AADg/wAA5v8AAOj/AADu/wAA+f8AAP3/AAAAAAEACwABAA0AAQAmAAEAKAABADoAAQA8AAEAPQABAD8AAQBNAAEAUAABAF0AAQCAAAEA+gABAAABAQACAQEABwEBADMBAQA3AQEAjgEBAJABAQCcAQEAoAEBAKABAQDQAQEA/QEBAIACAQCcAgEAoAIBANACAQDgAgEA+wIBAAADAQAjAwEALQMBAEoDAQBQAwEAegMBAIADAQCdAwEAnwMBAMMDAQDIAwEA1QMBAAAEAQCdBAEAoAQBAKkEAQCwBAEA0wQBANgEAQD7BAEAAAUBACcFAQAwBQEAYwUBAG8FAQB6BQEAfAUBAIoFAQCMBQEAkgUBAJQFAQCVBQEAlwUBAKEFAQCjBQEAsQUBALMFAQC5BQEAuwUBALwFAQAABgEANgcBAEAHAQBVBwEAYAcBAGcHAQCABwEAhQcBAIcHAQCwBwEAsgcBALoHAQAACAEABQgBAAgIAQAICAEACggBADUIAQA3CAEAOAgBADwIAQA8CAEAPwgBAFUIAQBXCAEAnggBAKcIAQCvCAEA4AgBAPIIAQD0CAEA9QgBAPsIAQAbCQEAHwkBADkJAQA/CQEAPwkBAIAJAQC3CQEAvAkBAM8JAQDSCQEAAwoBAAUKAQAGCgEADAoBABMKAQAVCgEAFwoBABkKAQA1CgEAOAoBADoKAQA/CgEASAoBAFAKAQBYCgEAYAoBAJ8KAQDACgEA5goBAOsKAQD2CgEAAAsBADULAQA5CwEAVQsBAFgLAQByCwEAeAsBAJELAQCZCwEAnAsBAKkLAQCvCwEAAAwBAEgMAQCADAEAsgwBAMAMAQDyDAEA+gwBACcNAQAwDQEAOQ0BAGAOAQB+DgEAgA4BAKkOAQCrDgEArQ4BALAOAQCxDgEAAA8BACcPAQAwDwEAWQ8BAHAPAQCJDwEAsA8BAMsPAQDgDwEA9g8BAAAQAQBNEAEAUhABAHUQAQB/EAEAwhABAM0QAQDNEAEA0BABAOgQAQDwEAEA+RABAAARAQA0EQEANhEBAEcRAQBQEQEAdhEBAIARAQDfEQEA4REBAPQRAQAAEgEAERIBABMSAQA+EgEAgBIBAIYSAQCIEgEAiBIBAIoSAQCNEgEAjxIBAJ0SAQCfEgEAqRIBALASAQDqEgEA8BIBAPkSAQAAEwEAAxMBAAUTAQAMEwEADxMBABATAQATEwEAKBMBACoTAQAwEwEAMhMBADMTAQA1EwEAORMBADsTAQBEEwEARxMBAEgTAQBLEwEATRMBAFATAQBQEwEAVxMBAFcTAQBdEwEAYxMBAGYTAQBsEwEAcBMBAHQTAQAAFAEAWxQBAF0UAQBhFAEAgBQBAMcUAQDQFAEA2RQBAIAVAQC1FQEAuBUBAN0VAQAAFgEARBYBAFAWAQBZFgEAYBYBAGwWAQCAFgEAuRYBAMAWAQDJFgEAABcBABoXAQAdFwEAKxcBADAXAQBGFwEAABgBADsYAQCgGAEA8hgBAP8YAQAGGQEACRkBAAkZAQAMGQEAExkBABUZAQAWGQEAGBkBADUZAQA3GQEAOBkBADsZAQBGGQEAUBkBAFkZAQCgGQEApxkBAKoZAQDXGQEA2hkBAOQZAQAAGgEARxoBAFAaAQCiGgEAsBoBAPgaAQAAHAEACBwBAAocAQA2HAEAOBwBAEUcAQBQHAEAbBwBAHAcAQCPHAEAkhwBAKccAQCpHAEAthwBAAAdAQAGHQEACB0BAAkdAQALHQEANh0BADodAQA6HQEAPB0BAD0dAQA/HQEARx0BAFAdAQBZHQEAYB0BAGUdAQBnHQEAaB0BAGodAQCOHQEAkB0BAJEdAQCTHQEAmB0BAKAdAQCpHQEA4B4BAPgeAQCwHwEAsB8BAMAfAQDxHwEA/x8BAJkjAQAAJAEAbiQBAHAkAQB0JAEAgCQBAEMlAQCQLwEA8i8BAAAwAQAuNAEAMDQBADg0AQAARAEARkYBAABoAQA4agEAQGoBAF5qAQBgagEAaWoBAG5qAQC+agEAwGoBAMlqAQDQagEA7WoBAPBqAQD1agEAAGsBAEVrAQBQawEAWWsBAFtrAQBhawEAY2sBAHdrAQB9awEAj2sBAEBuAQCabgEAAG8BAEpvAQBPbwEAh28BAI9vAQCfbwEA4G8BAORvAQDwbwEA8W8BAABwAQD3hwEAAIgBANWMAQAAjQEACI0BAPCvAQDzrwEA9a8BAPuvAQD9rwEA/q8BAACwAQAisQEAULEBAFKxAQBksQEAZ7EBAHCxAQD7sgEAALwBAGq8AQBwvAEAfLwBAIC8AQCIvAEAkLwBAJm8AQCcvAEAo7wBAADPAQAtzwEAMM8BAEbPAQBQzwEAw88BAADQAQD10AEAANEBACbRAQAp0QEA6tEBAADSAQBF0gEA4NIBAPPSAQAA0wEAVtMBAGDTAQB40wEAANQBAFTUAQBW1AEAnNQBAJ7UAQCf1AEAotQBAKLUAQCl1AEAptQBAKnUAQCs1AEArtQBALnUAQC71AEAu9QBAL3UAQDD1AEAxdQBAAXVAQAH1QEACtUBAA3VAQAU1QEAFtUBABzVAQAe1QEAOdUBADvVAQA+1QEAQNUBAETVAQBG1QEARtUBAErVAQBQ1QEAUtUBAKXWAQCo1gEAy9cBAM7XAQCL2gEAm9oBAJ/aAQCh2gEAr9oBAADfAQAe3wEAAOABAAbgAQAI4AEAGOABABvgAQAh4AEAI+ABACTgAQAm4AEAKuABAADhAQAs4QEAMOEBAD3hAQBA4QEASeEBAE7hAQBP4QEAkOIBAK7iAQDA4gEA+eIBAP/iAQD/4gEA4OcBAObnAQDo5wEA6+cBAO3nAQDu5wEA8OcBAP7nAQAA6AEAxOgBAMfoAQDW6AEAAOkBAEvpAQBQ6QEAWekBAF7pAQBf6QEAcewBALTsAQAB7QEAPe0BAADuAQAD7gEABe4BAB/uAQAh7gEAIu4BACTuAQAk7gEAJ+4BACfuAQAp7gEAMu4BADTuAQA37gEAOe4BADnuAQA77gEAO+4BAELuAQBC7gEAR+4BAEfuAQBJ7gEASe4BAEvuAQBL7gEATe4BAE/uAQBR7gEAUu4BAFTuAQBU7gEAV+4BAFfuAQBZ7gEAWe4BAFvuAQBb7gEAXe4BAF3uAQBf7gEAX+4BAGHuAQBi7gEAZO4BAGTuAQBn7gEAau4BAGzuAQBy7gEAdO4BAHfuAQB57gEAfO4BAH7uAQB+7gEAgO4BAInuAQCL7gEAm+4BAKHuAQCj7gEApe4BAKnuAQCr7gEAu+4BAPDuAQDx7gEAAPABACvwAQAw8AEAk/ABAKDwAQCu8AEAsfABAL/wAQDB8AEAz/ABANHwAQD18AEAAPEBAK3xAQDm8QEAAvIBABDyAQA78gEAQPIBAEjyAQBQ8gEAUfIBAGDyAQBl8gEAAPMBANf2AQDd9gEA7PYBAPD2AQD89gEAAPcBAHP3AQCA9wEA2PcBAOD3AQDr9wEA8PcBAPD3AQAA+AEAC/gBABD4AQBH+AEAUPgBAFn4AQBg+AEAh/gBAJD4AQCt+AEAsPgBALH4AQAA+QEAU/oBAGD6AQBt+gEAcPoBAHT6AQB4+gEAfPoBAID6AQCG+gEAkPoBAKz6AQCw+gEAuvoBAMD6AQDF+gEA0PoBANn6AQDg+gEA5/oBAPD6AQD2+gEAAPsBAJL7AQCU+wEAyvsBAPD7AQD5+wEAAAACAN+mAgAApwIAOLcCAEC3AgAduAIAILgCAKHOAgCwzgIA4OsCAAD4AgAd+gIAAAADAEoTAwABAA4AAQAOACAADgB/AA4AAAEOAO8BDgAAAA8A/f8PAAAAEAD9/xAAAAAAAJwCAABhAAAAegAAAKoAAACqAAAAtQAAALUAAAC6AAAAugAAAN8AAAD2AAAA+AAAAP8AAAABAQAAAQEAAAMBAAADAQAABQEAAAUBAAAHAQAABwEAAAkBAAAJAQAACwEAAAsBAAANAQAADQEAAA8BAAAPAQAAEQEAABEBAAATAQAAEwEAABUBAAAVAQAAFwEAABcBAAAZAQAAGQEAABsBAAAbAQAAHQEAAB0BAAAfAQAAHwEAACEBAAAhAQAAIwEAACMBAAAlAQAAJQEAACcBAAAnAQAAKQEAACkBAAArAQAAKwEAAC0BAAAtAQAALwEAAC8BAAAxAQAAMQEAADMBAAAzAQAANQEAADUBAAA3AQAAOAEAADoBAAA6AQAAPAEAADwBAAA+AQAAPgEAAEABAABAAQAAQgEAAEIBAABEAQAARAEAAEYBAABGAQAASAEAAEkBAABLAQAASwEAAE0BAABNAQAATwEAAE8BAABRAQAAUQEAAFMBAABTAQAAVQEAAFUBAABXAQAAVwEAAFkBAABZAQAAWwEAAFsBAABdAQAAXQEAAF8BAABfAQAAYQEAAGEBAABjAQAAYwEAAGUBAABlAQAAZwEAAGcBAABpAQAAaQEAAGsBAABrAQAAbQEAAG0BAABvAQAAbwEAAHEBAABxAQAAcwEAAHMBAAB1AQAAdQEAAHcBAAB3AQAAegEAAHoBAAB8AQAAfAEAAH4BAACAAQAAgwEAAIMBAACFAQAAhQEAAIgBAACIAQAAjAEAAI0BAACSAQAAkgEAAJUBAACVAQAAmQEAAJsBAACeAQAAngEAAKEBAAChAQAAowEAAKMBAAClAQAApQEAAKgBAACoAQAAqgEAAKsBAACtAQAArQEAALABAACwAQAAtAEAALQBAAC2AQAAtgEAALkBAAC6AQAAvQEAAL8BAADGAQAAxgEAAMkBAADJAQAAzAEAAMwBAADOAQAAzgEAANABAADQAQAA0gEAANIBAADUAQAA1AEAANYBAADWAQAA2AEAANgBAADaAQAA2gEAANwBAADdAQAA3wEAAN8BAADhAQAA4QEAAOMBAADjAQAA5QEAAOUBAADnAQAA5wEAAOkBAADpAQAA6wEAAOsBAADtAQAA7QEAAO8BAADwAQAA8wEAAPMBAAD1AQAA9QEAAPkBAAD5AQAA+wEAAPsBAAD9AQAA/QEAAP8BAAD/AQAAAQIAAAECAAADAgAAAwIAAAUCAAAFAgAABwIAAAcCAAAJAgAACQIAAAsCAAALAgAADQIAAA0CAAAPAgAADwIAABECAAARAgAAEwIAABMCAAAVAgAAFQIAABcCAAAXAgAAGQIAABkCAAAbAgAAGwIAAB0CAAAdAgAAHwIAAB8CAAAhAgAAIQIAACMCAAAjAgAAJQIAACUCAAAnAgAAJwIAACkCAAApAgAAKwIAACsCAAAtAgAALQIAAC8CAAAvAgAAMQIAADECAAAzAgAAOQIAADwCAAA8AgAAPwIAAEACAABCAgAAQgIAAEcCAABHAgAASQIAAEkCAABLAgAASwIAAE0CAABNAgAATwIAAJMCAACVAgAAuAIAAMACAADBAgAA4AIAAOQCAABFAwAARQMAAHEDAABxAwAAcwMAAHMDAAB3AwAAdwMAAHoDAAB9AwAAkAMAAJADAACsAwAAzgMAANADAADRAwAA1QMAANcDAADZAwAA2QMAANsDAADbAwAA3QMAAN0DAADfAwAA3wMAAOEDAADhAwAA4wMAAOMDAADlAwAA5QMAAOcDAADnAwAA6QMAAOkDAADrAwAA6wMAAO0DAADtAwAA7wMAAPMDAAD1AwAA9QMAAPgDAAD4AwAA+wMAAPwDAAAwBAAAXwQAAGEEAABhBAAAYwQAAGMEAABlBAAAZQQAAGcEAABnBAAAaQQAAGkEAABrBAAAawQAAG0EAABtBAAAbwQAAG8EAABxBAAAcQQAAHMEAABzBAAAdQQAAHUEAAB3BAAAdwQAAHkEAAB5BAAAewQAAHsEAAB9BAAAfQQAAH8EAAB/BAAAgQQAAIEEAACLBAAAiwQAAI0EAACNBAAAjwQAAI8EAACRBAAAkQQAAJMEAACTBAAAlQQAAJUEAACXBAAAlwQAAJkEAACZBAAAmwQAAJsEAACdBAAAnQQAAJ8EAACfBAAAoQQAAKEEAACjBAAAowQAAKUEAAClBAAApwQAAKcEAACpBAAAqQQAAKsEAACrBAAArQQAAK0EAACvBAAArwQAALEEAACxBAAAswQAALMEAAC1BAAAtQQAALcEAAC3BAAAuQQAALkEAAC7BAAAuwQAAL0EAAC9BAAAvwQAAL8EAADCBAAAwgQAAMQEAADEBAAAxgQAAMYEAADIBAAAyAQAAMoEAADKBAAAzAQAAMwEAADOBAAAzwQAANEEAADRBAAA0wQAANMEAADVBAAA1QQAANcEAADXBAAA2QQAANkEAADbBAAA2wQAAN0EAADdBAAA3wQAAN8EAADhBAAA4QQAAOMEAADjBAAA5QQAAOUEAADnBAAA5wQAAOkEAADpBAAA6wQAAOsEAADtBAAA7QQAAO8EAADvBAAA8QQAAPEEAADzBAAA8wQAAPUEAAD1BAAA9wQAAPcEAAD5BAAA+QQAAPsEAAD7BAAA/QQAAP0EAAD/BAAA/wQAAAEFAAABBQAAAwUAAAMFAAAFBQAABQUAAAcFAAAHBQAACQUAAAkFAAALBQAACwUAAA0FAAANBQAADwUAAA8FAAARBQAAEQUAABMFAAATBQAAFQUAABUFAAAXBQAAFwUAABkFAAAZBQAAGwUAABsFAAAdBQAAHQUAAB8FAAAfBQAAIQUAACEFAAAjBQAAIwUAACUFAAAlBQAAJwUAACcFAAApBQAAKQUAACsFAAArBQAALQUAAC0FAAAvBQAALwUAAGAFAACIBQAA0BAAAPoQAAD9EAAA/xAAAPgTAAD9EwAAgBwAAIgcAAAAHQAAvx0AAAEeAAABHgAAAx4AAAMeAAAFHgAABR4AAAceAAAHHgAACR4AAAkeAAALHgAACx4AAA0eAAANHgAADx4AAA8eAAARHgAAER4AABMeAAATHgAAFR4AABUeAAAXHgAAFx4AABkeAAAZHgAAGx4AABseAAAdHgAAHR4AAB8eAAAfHgAAIR4AACEeAAAjHgAAIx4AACUeAAAlHgAAJx4AACceAAApHgAAKR4AACseAAArHgAALR4AAC0eAAAvHgAALx4AADEeAAAxHgAAMx4AADMeAAA1HgAANR4AADceAAA3HgAAOR4AADkeAAA7HgAAOx4AAD0eAAA9HgAAPx4AAD8eAABBHgAAQR4AAEMeAABDHgAARR4AAEUeAABHHgAARx4AAEkeAABJHgAASx4AAEseAABNHgAATR4AAE8eAABPHgAAUR4AAFEeAABTHgAAUx4AAFUeAABVHgAAVx4AAFceAABZHgAAWR4AAFseAABbHgAAXR4AAF0eAABfHgAAXx4AAGEeAABhHgAAYx4AAGMeAABlHgAAZR4AAGceAABnHgAAaR4AAGkeAABrHgAAax4AAG0eAABtHgAAbx4AAG8eAABxHgAAcR4AAHMeAABzHgAAdR4AAHUeAAB3HgAAdx4AAHkeAAB5HgAAex4AAHseAAB9HgAAfR4AAH8eAAB/HgAAgR4AAIEeAACDHgAAgx4AAIUeAACFHgAAhx4AAIceAACJHgAAiR4AAIseAACLHgAAjR4AAI0eAACPHgAAjx4AAJEeAACRHgAAkx4AAJMeAACVHgAAnR4AAJ8eAACfHgAAoR4AAKEeAACjHgAAox4AAKUeAAClHgAApx4AAKceAACpHgAAqR4AAKseAACrHgAArR4AAK0eAACvHgAArx4AALEeAACxHgAAsx4AALMeAAC1HgAAtR4AALceAAC3HgAAuR4AALkeAAC7HgAAux4AAL0eAAC9HgAAvx4AAL8eAADBHgAAwR4AAMMeAADDHgAAxR4AAMUeAADHHgAAxx4AAMkeAADJHgAAyx4AAMseAADNHgAAzR4AAM8eAADPHgAA0R4AANEeAADTHgAA0x4AANUeAADVHgAA1x4AANceAADZHgAA2R4AANseAADbHgAA3R4AAN0eAADfHgAA3x4AAOEeAADhHgAA4x4AAOMeAADlHgAA5R4AAOceAADnHgAA6R4AAOkeAADrHgAA6x4AAO0eAADtHgAA7x4AAO8eAADxHgAA8R4AAPMeAADzHgAA9R4AAPUeAAD3HgAA9x4AAPkeAAD5HgAA+x4AAPseAAD9HgAA/R4AAP8eAAAHHwAAEB8AABUfAAAgHwAAJx8AADAfAAA3HwAAQB8AAEUfAABQHwAAVx8AAGAfAABnHwAAcB8AAH0fAACAHwAAhx8AAJAfAACXHwAAoB8AAKcfAACwHwAAtB8AALYfAAC3HwAAvh8AAL4fAADCHwAAxB8AAMYfAADHHwAA0B8AANMfAADWHwAA1x8AAOAfAADnHwAA8h8AAPQfAAD2HwAA9x8AAHEgAABxIAAAfyAAAH8gAACQIAAAnCAAAAohAAAKIQAADiEAAA8hAAATIQAAEyEAAC8hAAAvIQAANCEAADQhAAA5IQAAOSEAADwhAAA9IQAARiEAAEkhAABOIQAATiEAAHAhAAB/IQAAhCEAAIQhAADQJAAA6SQAADAsAABfLAAAYSwAAGEsAABlLAAAZiwAAGgsAABoLAAAaiwAAGosAABsLAAAbCwAAHEsAABxLAAAcywAAHQsAAB2LAAAfSwAAIEsAACBLAAAgywAAIMsAACFLAAAhSwAAIcsAACHLAAAiSwAAIksAACLLAAAiywAAI0sAACNLAAAjywAAI8sAACRLAAAkSwAAJMsAACTLAAAlSwAAJUsAACXLAAAlywAAJksAACZLAAAmywAAJssAACdLAAAnSwAAJ8sAACfLAAAoSwAAKEsAACjLAAAoywAAKUsAAClLAAApywAAKcsAACpLAAAqSwAAKssAACrLAAArSwAAK0sAACvLAAArywAALEsAACxLAAAsywAALMsAAC1LAAAtSwAALcsAAC3LAAAuSwAALksAAC7LAAAuywAAL0sAAC9LAAAvywAAL8sAADBLAAAwSwAAMMsAADDLAAAxSwAAMUsAADHLAAAxywAAMksAADJLAAAyywAAMssAADNLAAAzSwAAM8sAADPLAAA0SwAANEsAADTLAAA0ywAANUsAADVLAAA1ywAANcsAADZLAAA2SwAANssAADbLAAA3SwAAN0sAADfLAAA3ywAAOEsAADhLAAA4ywAAOQsAADsLAAA7CwAAO4sAADuLAAA8ywAAPMsAAAALQAAJS0AACctAAAnLQAALS0AAC0tAABBpgAAQaYAAEOmAABDpgAARaYAAEWmAABHpgAAR6YAAEmmAABJpgAAS6YAAEumAABNpgAATaYAAE+mAABPpgAAUaYAAFGmAABTpgAAU6YAAFWmAABVpgAAV6YAAFemAABZpgAAWaYAAFumAABbpgAAXaYAAF2mAABfpgAAX6YAAGGmAABhpgAAY6YAAGOmAABlpgAAZaYAAGemAABnpgAAaaYAAGmmAABrpgAAa6YAAG2mAABtpgAAgaYAAIGmAACDpgAAg6YAAIWmAACFpgAAh6YAAIemAACJpgAAiaYAAIumAACLpgAAjaYAAI2mAACPpgAAj6YAAJGmAACRpgAAk6YAAJOmAACVpgAAlaYAAJemAACXpgAAmaYAAJmmAACbpgAAnaYAACOnAAAjpwAAJacAACWnAAAnpwAAJ6cAACmnAAAppwAAK6cAACunAAAtpwAALacAAC+nAAAxpwAAM6cAADOnAAA1pwAANacAADenAAA3pwAAOacAADmnAAA7pwAAO6cAAD2nAAA9pwAAP6cAAD+nAABBpwAAQacAAEOnAABDpwAARacAAEWnAABHpwAAR6cAAEmnAABJpwAAS6cAAEunAABNpwAATacAAE+nAABPpwAAUacAAFGnAABTpwAAU6cAAFWnAABVpwAAV6cAAFenAABZpwAAWacAAFunAABbpwAAXacAAF2nAABfpwAAX6cAAGGnAABhpwAAY6cAAGOnAABlpwAAZacAAGenAABnpwAAaacAAGmnAABrpwAAa6cAAG2nAABtpwAAb6cAAHinAAB6pwAAeqcAAHynAAB8pwAAf6cAAH+nAACBpwAAgacAAIOnAACDpwAAhacAAIWnAACHpwAAh6cAAIynAACMpwAAjqcAAI6nAACRpwAAkacAAJOnAACVpwAAl6cAAJenAACZpwAAmacAAJunAACbpwAAnacAAJ2nAACfpwAAn6cAAKGnAAChpwAAo6cAAKOnAAClpwAApacAAKenAACnpwAAqacAAKmnAACvpwAAr6cAALWnAAC1pwAAt6cAALenAAC5pwAAuacAALunAAC7pwAAvacAAL2nAAC/pwAAv6cAAMGnAADBpwAAw6cAAMOnAADIpwAAyKcAAMqnAADKpwAA0acAANGnAADTpwAA06cAANWnAADVpwAA16cAANenAADZpwAA2acAAPanAAD2pwAA+KcAAPqnAAAwqwAAWqsAAFyrAABoqwAAcKsAAL+rAAAA+wAABvsAABP7AAAX+wAAQf8AAFr/AAAoBAEATwQBANgEAQD7BAEAlwUBAKEFAQCjBQEAsQUBALMFAQC5BQEAuwUBALwFAQCABwEAgAcBAIMHAQCFBwEAhwcBALAHAQCyBwEAugcBAMAMAQDyDAEAwBgBAN8YAQBgbgEAf24BABrUAQAz1AEATtQBAFTUAQBW1AEAZ9QBAILUAQCb1AEAttQBALnUAQC71AEAu9QBAL3UAQDD1AEAxdQBAM/UAQDq1AEAA9UBAB7VAQA31QEAUtUBAGvVAQCG1QEAn9UBALrVAQDT1QEA7tUBAAfWAQAi1gEAO9YBAFbWAQBv1gEAitYBAKXWAQDC1gEA2tYBANzWAQDh1gEA/NYBABTXAQAW1wEAG9cBADbXAQBO1wEAUNcBAFXXAQBw1wEAiNcBAIrXAQCP1wEAqtcBAMLXAQDE1wEAydcBAMvXAQDL1wEAAN8BAAnfAQAL3wEAHt8BACLpAQBD6QEAQdCfAwvjK7wCAAAgAAAAfgAAAKAAAAB3AwAAegMAAH8DAACEAwAAigMAAIwDAACMAwAAjgMAAKEDAACjAwAALwUAADEFAABWBQAAWQUAAIoFAACNBQAAjwUAAJEFAADHBQAA0AUAAOoFAADvBQAA9AUAAAAGAAANBwAADwcAAEoHAABNBwAAsQcAAMAHAAD6BwAA/QcAAC0IAAAwCAAAPggAAEAIAABbCAAAXggAAF4IAABgCAAAaggAAHAIAACOCAAAkAgAAJEIAACYCAAAgwkAAIUJAACMCQAAjwkAAJAJAACTCQAAqAkAAKoJAACwCQAAsgkAALIJAAC2CQAAuQkAALwJAADECQAAxwkAAMgJAADLCQAAzgkAANcJAADXCQAA3AkAAN0JAADfCQAA4wkAAOYJAAD+CQAAAQoAAAMKAAAFCgAACgoAAA8KAAAQCgAAEwoAACgKAAAqCgAAMAoAADIKAAAzCgAANQoAADYKAAA4CgAAOQoAADwKAAA8CgAAPgoAAEIKAABHCgAASAoAAEsKAABNCgAAUQoAAFEKAABZCgAAXAoAAF4KAABeCgAAZgoAAHYKAACBCgAAgwoAAIUKAACNCgAAjwoAAJEKAACTCgAAqAoAAKoKAACwCgAAsgoAALMKAAC1CgAAuQoAALwKAADFCgAAxwoAAMkKAADLCgAAzQoAANAKAADQCgAA4AoAAOMKAADmCgAA8QoAAPkKAAD/CgAAAQsAAAMLAAAFCwAADAsAAA8LAAAQCwAAEwsAACgLAAAqCwAAMAsAADILAAAzCwAANQsAADkLAAA8CwAARAsAAEcLAABICwAASwsAAE0LAABVCwAAVwsAAFwLAABdCwAAXwsAAGMLAABmCwAAdwsAAIILAACDCwAAhQsAAIoLAACOCwAAkAsAAJILAACVCwAAmQsAAJoLAACcCwAAnAsAAJ4LAACfCwAAowsAAKQLAACoCwAAqgsAAK4LAAC5CwAAvgsAAMILAADGCwAAyAsAAMoLAADNCwAA0AsAANALAADXCwAA1wsAAOYLAAD6CwAAAAwAAAwMAAAODAAAEAwAABIMAAAoDAAAKgwAADkMAAA8DAAARAwAAEYMAABIDAAASgwAAE0MAABVDAAAVgwAAFgMAABaDAAAXQwAAF0MAABgDAAAYwwAAGYMAABvDAAAdwwAAIwMAACODAAAkAwAAJIMAACoDAAAqgwAALMMAAC1DAAAuQwAALwMAADEDAAAxgwAAMgMAADKDAAAzQwAANUMAADWDAAA3QwAAN4MAADgDAAA4wwAAOYMAADvDAAA8QwAAPIMAAAADQAADA0AAA4NAAAQDQAAEg0AAEQNAABGDQAASA0AAEoNAABPDQAAVA0AAGMNAABmDQAAfw0AAIENAACDDQAAhQ0AAJYNAACaDQAAsQ0AALMNAAC7DQAAvQ0AAL0NAADADQAAxg0AAMoNAADKDQAAzw0AANQNAADWDQAA1g0AANgNAADfDQAA5g0AAO8NAADyDQAA9A0AAAEOAAA6DgAAPw4AAFsOAACBDgAAgg4AAIQOAACEDgAAhg4AAIoOAACMDgAAow4AAKUOAAClDgAApw4AAL0OAADADgAAxA4AAMYOAADGDgAAyA4AAM0OAADQDgAA2Q4AANwOAADfDgAAAA8AAEcPAABJDwAAbA8AAHEPAACXDwAAmQ8AALwPAAC+DwAAzA8AAM4PAADaDwAAABAAAMUQAADHEAAAxxAAAM0QAADNEAAA0BAAAEgSAABKEgAATRIAAFASAABWEgAAWBIAAFgSAABaEgAAXRIAAGASAACIEgAAihIAAI0SAACQEgAAsBIAALISAAC1EgAAuBIAAL4SAADAEgAAwBIAAMISAADFEgAAyBIAANYSAADYEgAAEBMAABITAAAVEwAAGBMAAFoTAABdEwAAfBMAAIATAACZEwAAoBMAAPUTAAD4EwAA/RMAAAAUAACcFgAAoBYAAPgWAAAAFwAAFRcAAB8XAAA2FwAAQBcAAFMXAABgFwAAbBcAAG4XAABwFwAAchcAAHMXAACAFwAA3RcAAOAXAADpFwAA8BcAAPkXAAAAGAAAGRgAACAYAAB4GAAAgBgAAKoYAACwGAAA9RgAAAAZAAAeGQAAIBkAACsZAAAwGQAAOxkAAEAZAABAGQAARBkAAG0ZAABwGQAAdBkAAIAZAACrGQAAsBkAAMkZAADQGQAA2hkAAN4ZAAAbGgAAHhoAAF4aAABgGgAAfBoAAH8aAACJGgAAkBoAAJkaAACgGgAArRoAALAaAADOGgAAABsAAEwbAABQGwAAfhsAAIAbAADzGwAA/BsAADccAAA7HAAASRwAAE0cAACIHAAAkBwAALocAAC9HAAAxxwAANAcAAD6HAAAAB0AABUfAAAYHwAAHR8AACAfAABFHwAASB8AAE0fAABQHwAAVx8AAFkfAABZHwAAWx8AAFsfAABdHwAAXR8AAF8fAAB9HwAAgB8AALQfAAC2HwAAxB8AAMYfAADTHwAA1h8AANsfAADdHwAA7x8AAPIfAAD0HwAA9h8AAP4fAAAAIAAAJyAAACogAABkIAAAZiAAAHEgAAB0IAAAjiAAAJAgAACcIAAAoCAAAMAgAADQIAAA8CAAAAAhAACLIQAAkCEAACYkAABAJAAASiQAAGAkAABzKwAAdisAAJUrAACXKwAA8ywAAPksAAAlLQAAJy0AACctAAAtLQAALS0AADAtAABnLQAAby0AAHAtAAB/LQAAli0AAKAtAACmLQAAqC0AAK4tAACwLQAAti0AALgtAAC+LQAAwC0AAMYtAADILQAAzi0AANAtAADWLQAA2C0AAN4tAADgLQAAXS4AAIAuAACZLgAAmy4AAPMuAAAALwAA1S8AAPAvAAD7LwAAADAAAD8wAABBMAAAljAAAJkwAAD/MAAABTEAAC8xAAAxMQAAjjEAAJAxAADjMQAA8DEAAB4yAAAgMgAAjKQAAJCkAADGpAAA0KQAACumAABApgAA96YAAACnAADKpwAA0KcAANGnAADTpwAA06cAANWnAADZpwAA8qcAACyoAAAwqAAAOagAAECoAAB3qAAAgKgAAMWoAADOqAAA2agAAOCoAABTqQAAX6kAAHypAACAqQAAzakAAM+pAADZqQAA3qkAAP6pAAAAqgAANqoAAECqAABNqgAAUKoAAFmqAABcqgAAwqoAANuqAAD2qgAAAasAAAarAAAJqwAADqsAABGrAAAWqwAAIKsAACarAAAoqwAALqsAADCrAABrqwAAcKsAAO2rAADwqwAA+asAAACsAACj1wAAsNcAAMbXAADL1wAA+9cAAADgAABt+gAAcPoAANn6AAAA+wAABvsAABP7AAAX+wAAHfsAADb7AAA4+wAAPPsAAD77AAA++wAAQPsAAEH7AABD+wAARPsAAEb7AADC+wAA0/sAAI/9AACS/QAAx/0AAM/9AADP/QAA8P0AABn+AAAg/gAAUv4AAFT+AABm/gAAaP4AAGv+AABw/gAAdP4AAHb+AAD8/gAA//4AAP/+AAAB/wAAvv8AAML/AADH/wAAyv8AAM//AADS/wAA1/8AANr/AADc/wAA4P8AAOb/AADo/wAA7v8AAPn/AAD9/wAAAAABAAsAAQANAAEAJgABACgAAQA6AAEAPAABAD0AAQA/AAEATQABAFAAAQBdAAEAgAABAPoAAQAAAQEAAgEBAAcBAQAzAQEANwEBAI4BAQCQAQEAnAEBAKABAQCgAQEA0AEBAP0BAQCAAgEAnAIBAKACAQDQAgEA4AIBAPsCAQAAAwEAIwMBAC0DAQBKAwEAUAMBAHoDAQCAAwEAnQMBAJ8DAQDDAwEAyAMBANUDAQAABAEAnQQBAKAEAQCpBAEAsAQBANMEAQDYBAEA+wQBAAAFAQAnBQEAMAUBAGMFAQBvBQEAegUBAHwFAQCKBQEAjAUBAJIFAQCUBQEAlQUBAJcFAQChBQEAowUBALEFAQCzBQEAuQUBALsFAQC8BQEAAAYBADYHAQBABwEAVQcBAGAHAQBnBwEAgAcBAIUHAQCHBwEAsAcBALIHAQC6BwEAAAgBAAUIAQAICAEACAgBAAoIAQA1CAEANwgBADgIAQA8CAEAPAgBAD8IAQBVCAEAVwgBAJ4IAQCnCAEArwgBAOAIAQDyCAEA9AgBAPUIAQD7CAEAGwkBAB8JAQA5CQEAPwkBAD8JAQCACQEAtwkBALwJAQDPCQEA0gkBAAMKAQAFCgEABgoBAAwKAQATCgEAFQoBABcKAQAZCgEANQoBADgKAQA6CgEAPwoBAEgKAQBQCgEAWAoBAGAKAQCfCgEAwAoBAOYKAQDrCgEA9goBAAALAQA1CwEAOQsBAFULAQBYCwEAcgsBAHgLAQCRCwEAmQsBAJwLAQCpCwEArwsBAAAMAQBIDAEAgAwBALIMAQDADAEA8gwBAPoMAQAnDQEAMA0BADkNAQBgDgEAfg4BAIAOAQCpDgEAqw4BAK0OAQCwDgEAsQ4BAAAPAQAnDwEAMA8BAFkPAQBwDwEAiQ8BALAPAQDLDwEA4A8BAPYPAQAAEAEATRABAFIQAQB1EAEAfxABAMIQAQDNEAEAzRABANAQAQDoEAEA8BABAPkQAQAAEQEANBEBADYRAQBHEQEAUBEBAHYRAQCAEQEA3xEBAOERAQD0EQEAABIBABESAQATEgEAPhIBAIASAQCGEgEAiBIBAIgSAQCKEgEAjRIBAI8SAQCdEgEAnxIBAKkSAQCwEgEA6hIBAPASAQD5EgEAABMBAAMTAQAFEwEADBMBAA8TAQAQEwEAExMBACgTAQAqEwEAMBMBADITAQAzEwEANRMBADkTAQA7EwEARBMBAEcTAQBIEwEASxMBAE0TAQBQEwEAUBMBAFcTAQBXEwEAXRMBAGMTAQBmEwEAbBMBAHATAQB0EwEAABQBAFsUAQBdFAEAYRQBAIAUAQDHFAEA0BQBANkUAQCAFQEAtRUBALgVAQDdFQEAABYBAEQWAQBQFgEAWRYBAGAWAQBsFgEAgBYBALkWAQDAFgEAyRYBAAAXAQAaFwEAHRcBACsXAQAwFwEARhcBAAAYAQA7GAEAoBgBAPIYAQD/GAEABhkBAAkZAQAJGQEADBkBABMZAQAVGQEAFhkBABgZAQA1GQEANxkBADgZAQA7GQEARhkBAFAZAQBZGQEAoBkBAKcZAQCqGQEA1xkBANoZAQDkGQEAABoBAEcaAQBQGgEAohoBALAaAQD4GgEAABwBAAgcAQAKHAEANhwBADgcAQBFHAEAUBwBAGwcAQBwHAEAjxwBAJIcAQCnHAEAqRwBALYcAQAAHQEABh0BAAgdAQAJHQEACx0BADYdAQA6HQEAOh0BADwdAQA9HQEAPx0BAEcdAQBQHQEAWR0BAGAdAQBlHQEAZx0BAGgdAQBqHQEAjh0BAJAdAQCRHQEAkx0BAJgdAQCgHQEAqR0BAOAeAQD4HgEAsB8BALAfAQDAHwEA8R8BAP8fAQCZIwEAACQBAG4kAQBwJAEAdCQBAIAkAQBDJQEAkC8BAPIvAQAAMAEALjQBADA0AQA4NAEAAEQBAEZGAQAAaAEAOGoBAEBqAQBeagEAYGoBAGlqAQBuagEAvmoBAMBqAQDJagEA0GoBAO1qAQDwagEA9WoBAABrAQBFawEAUGsBAFlrAQBbawEAYWsBAGNrAQB3awEAfWsBAI9rAQBAbgEAmm4BAABvAQBKbwEAT28BAIdvAQCPbwEAn28BAOBvAQDkbwEA8G8BAPFvAQAAcAEA94cBAACIAQDVjAEAAI0BAAiNAQDwrwEA868BAPWvAQD7rwEA/a8BAP6vAQAAsAEAIrEBAFCxAQBSsQEAZLEBAGexAQBwsQEA+7IBAAC8AQBqvAEAcLwBAHy8AQCAvAEAiLwBAJC8AQCZvAEAnLwBAKO8AQAAzwEALc8BADDPAQBGzwEAUM8BAMPPAQAA0AEA9dABAADRAQAm0QEAKdEBAOrRAQAA0gEARdIBAODSAQDz0gEAANMBAFbTAQBg0wEAeNMBAADUAQBU1AEAVtQBAJzUAQCe1AEAn9QBAKLUAQCi1AEApdQBAKbUAQCp1AEArNQBAK7UAQC51AEAu9QBALvUAQC91AEAw9QBAMXUAQAF1QEAB9UBAArVAQAN1QEAFNUBABbVAQAc1QEAHtUBADnVAQA71QEAPtUBAEDVAQBE1QEARtUBAEbVAQBK1QEAUNUBAFLVAQCl1gEAqNYBAMvXAQDO1wEAi9oBAJvaAQCf2gEAodoBAK/aAQAA3wEAHt8BAADgAQAG4AEACOABABjgAQAb4AEAIeABACPgAQAk4AEAJuABACrgAQAA4QEALOEBADDhAQA94QEAQOEBAEnhAQBO4QEAT+EBAJDiAQCu4gEAwOIBAPniAQD/4gEA/+IBAODnAQDm5wEA6OcBAOvnAQDt5wEA7ucBAPDnAQD+5wEAAOgBAMToAQDH6AEA1ugBAADpAQBL6QEAUOkBAFnpAQBe6QEAX+kBAHHsAQC07AEAAe0BAD3tAQAA7gEAA+4BAAXuAQAf7gEAIe4BACLuAQAk7gEAJO4BACfuAQAn7gEAKe4BADLuAQA07gEAN+4BADnuAQA57gEAO+4BADvuAQBC7gEAQu4BAEfuAQBH7gEASe4BAEnuAQBL7gEAS+4BAE3uAQBP7gEAUe4BAFLuAQBU7gEAVO4BAFfuAQBX7gEAWe4BAFnuAQBb7gEAW+4BAF3uAQBd7gEAX+4BAF/uAQBh7gEAYu4BAGTuAQBk7gEAZ+4BAGruAQBs7gEAcu4BAHTuAQB37gEAee4BAHzuAQB+7gEAfu4BAIDuAQCJ7gEAi+4BAJvuAQCh7gEAo+4BAKXuAQCp7gEAq+4BALvuAQDw7gEA8e4BAADwAQAr8AEAMPABAJPwAQCg8AEArvABALHwAQC/8AEAwfABAM/wAQDR8AEA9fABAADxAQCt8QEA5vEBAALyAQAQ8gEAO/IBAEDyAQBI8gEAUPIBAFHyAQBg8gEAZfIBAADzAQDX9gEA3fYBAOz2AQDw9gEA/PYBAAD3AQBz9wEAgPcBANj3AQDg9wEA6/cBAPD3AQDw9wEAAPgBAAv4AQAQ+AEAR/gBAFD4AQBZ+AEAYPgBAIf4AQCQ+AEArfgBALD4AQCx+AEAAPkBAFP6AQBg+gEAbfoBAHD6AQB0+gEAePoBAHz6AQCA+gEAhvoBAJD6AQCs+gEAsPoBALr6AQDA+gEAxfoBAND6AQDZ+gEA4PoBAOf6AQDw+gEA9voBAAD7AQCS+wEAlPsBAMr7AQDw+wEA+fsBAAAAAgDfpgIAAKcCADi3AgBAtwIAHbgCACC4AgChzgIAsM4CAODrAgAA+AIAHfoCAAAAAwBKEwMAAQAOAAEADgAgAA4AfwAOAAABDgDvAQ4AAAAPAP3/DwAAABAA/f8QAEHAywMLwgy9AAAAIQAAACMAAAAlAAAAKgAAACwAAAAvAAAAOgAAADsAAAA/AAAAQAAAAFsAAABdAAAAXwAAAF8AAAB7AAAAewAAAH0AAAB9AAAAoQAAAKEAAACnAAAApwAAAKsAAACrAAAAtgAAALcAAAC7AAAAuwAAAL8AAAC/AAAAfgMAAH4DAACHAwAAhwMAAFoFAABfBQAAiQUAAIoFAAC+BQAAvgUAAMAFAADABQAAwwUAAMMFAADGBQAAxgUAAPMFAAD0BQAACQYAAAoGAAAMBgAADQYAABsGAAAbBgAAHQYAAB8GAABqBgAAbQYAANQGAADUBgAAAAcAAA0HAAD3BwAA+QcAADAIAAA+CAAAXggAAF4IAABkCQAAZQkAAHAJAABwCQAA/QkAAP0JAAB2CgAAdgoAAPAKAADwCgAAdwwAAHcMAACEDAAAhAwAAPQNAAD0DQAATw4AAE8OAABaDgAAWw4AAAQPAAASDwAAFA8AABQPAAA6DwAAPQ8AAIUPAACFDwAA0A8AANQPAADZDwAA2g8AAEoQAABPEAAA+xAAAPsQAABgEwAAaBMAAAAUAAAAFAAAbhYAAG4WAACbFgAAnBYAAOsWAADtFgAANRcAADYXAADUFwAA1hcAANgXAADaFwAAABgAAAoYAABEGQAARRkAAB4aAAAfGgAAoBoAAKYaAACoGgAArRoAAFobAABgGwAAfRsAAH4bAAD8GwAA/xsAADscAAA/HAAAfhwAAH8cAADAHAAAxxwAANMcAADTHAAAECAAACcgAAAwIAAAQyAAAEUgAABRIAAAUyAAAF4gAAB9IAAAfiAAAI0gAACOIAAACCMAAAsjAAApIwAAKiMAAGgnAAB1JwAAxScAAMYnAADmJwAA7ycAAIMpAACYKQAA2CkAANspAAD8KQAA/SkAAPksAAD8LAAA/iwAAP8sAABwLQAAcC0AAAAuAAAuLgAAMC4AAE8uAABSLgAAXS4AAAEwAAADMAAACDAAABEwAAAUMAAAHzAAADAwAAAwMAAAPTAAAD0wAACgMAAAoDAAAPswAAD7MAAA/qQAAP+kAAANpgAAD6YAAHOmAABzpgAAfqYAAH6mAADypgAA96YAAHSoAAB3qAAAzqgAAM+oAAD4qAAA+qgAAPyoAAD8qAAALqkAAC+pAABfqQAAX6kAAMGpAADNqQAA3qkAAN+pAABcqgAAX6oAAN6qAADfqgAA8KoAAPGqAADrqwAA66sAAD79AAA//QAAEP4AABn+AAAw/gAAUv4AAFT+AABh/gAAY/4AAGP+AABo/gAAaP4AAGr+AABr/gAAAf8AAAP/AAAF/wAACv8AAAz/AAAP/wAAGv8AABv/AAAf/wAAIP8AADv/AAA9/wAAP/8AAD//AABb/wAAW/8AAF3/AABd/wAAX/8AAGX/AAAAAQEAAgEBAJ8DAQCfAwEA0AMBANADAQBvBQEAbwUBAFcIAQBXCAEAHwkBAB8JAQA/CQEAPwkBAFAKAQBYCgEAfwoBAH8KAQDwCgEA9goBADkLAQA/CwEAmQsBAJwLAQCtDgEArQ4BAFUPAQBZDwEAhg8BAIkPAQBHEAEATRABALsQAQC8EAEAvhABAMEQAQBAEQEAQxEBAHQRAQB1EQEAxREBAMgRAQDNEQEAzREBANsRAQDbEQEA3REBAN8RAQA4EgEAPRIBAKkSAQCpEgEASxQBAE8UAQBaFAEAWxQBAF0UAQBdFAEAxhQBAMYUAQDBFQEA1xUBAEEWAQBDFgEAYBYBAGwWAQC5FgEAuRYBADwXAQA+FwEAOxgBADsYAQBEGQEARhkBAOIZAQDiGQEAPxoBAEYaAQCaGgEAnBoBAJ4aAQCiGgEAQRwBAEUcAQBwHAEAcRwBAPceAQD4HgEA/x8BAP8fAQBwJAEAdCQBAPEvAQDyLwEAbmoBAG9qAQD1agEA9WoBADdrAQA7awEARGsBAERrAQCXbgEAmm4BAOJvAQDibwEAn7wBAJ+8AQCH2gEAi9oBAF7pAQBf6QEAAAAAAAoAAAAJAAAADQAAACAAAAAgAAAAhQAAAIUAAACgAAAAoAAAAIAWAACAFgAAACAAAAogAAAoIAAAKSAAAC8gAAAvIAAAXyAAAF8gAAAAMAAAADAAQZDYAwuzWIsCAABBAAAAWgAAAMAAAADWAAAA2AAAAN4AAAAAAQAAAAEAAAIBAAACAQAABAEAAAQBAAAGAQAABgEAAAgBAAAIAQAACgEAAAoBAAAMAQAADAEAAA4BAAAOAQAAEAEAABABAAASAQAAEgEAABQBAAAUAQAAFgEAABYBAAAYAQAAGAEAABoBAAAaAQAAHAEAABwBAAAeAQAAHgEAACABAAAgAQAAIgEAACIBAAAkAQAAJAEAACYBAAAmAQAAKAEAACgBAAAqAQAAKgEAACwBAAAsAQAALgEAAC4BAAAwAQAAMAEAADIBAAAyAQAANAEAADQBAAA2AQAANgEAADkBAAA5AQAAOwEAADsBAAA9AQAAPQEAAD8BAAA/AQAAQQEAAEEBAABDAQAAQwEAAEUBAABFAQAARwEAAEcBAABKAQAASgEAAEwBAABMAQAATgEAAE4BAABQAQAAUAEAAFIBAABSAQAAVAEAAFQBAABWAQAAVgEAAFgBAABYAQAAWgEAAFoBAABcAQAAXAEAAF4BAABeAQAAYAEAAGABAABiAQAAYgEAAGQBAABkAQAAZgEAAGYBAABoAQAAaAEAAGoBAABqAQAAbAEAAGwBAABuAQAAbgEAAHABAABwAQAAcgEAAHIBAAB0AQAAdAEAAHYBAAB2AQAAeAEAAHkBAAB7AQAAewEAAH0BAAB9AQAAgQEAAIIBAACEAQAAhAEAAIYBAACHAQAAiQEAAIsBAACOAQAAkQEAAJMBAACUAQAAlgEAAJgBAACcAQAAnQEAAJ8BAACgAQAAogEAAKIBAACkAQAApAEAAKYBAACnAQAAqQEAAKkBAACsAQAArAEAAK4BAACvAQAAsQEAALMBAAC1AQAAtQEAALcBAAC4AQAAvAEAALwBAADEAQAAxAEAAMcBAADHAQAAygEAAMoBAADNAQAAzQEAAM8BAADPAQAA0QEAANEBAADTAQAA0wEAANUBAADVAQAA1wEAANcBAADZAQAA2QEAANsBAADbAQAA3gEAAN4BAADgAQAA4AEAAOIBAADiAQAA5AEAAOQBAADmAQAA5gEAAOgBAADoAQAA6gEAAOoBAADsAQAA7AEAAO4BAADuAQAA8QEAAPEBAAD0AQAA9AEAAPYBAAD4AQAA+gEAAPoBAAD8AQAA/AEAAP4BAAD+AQAAAAIAAAACAAACAgAAAgIAAAQCAAAEAgAABgIAAAYCAAAIAgAACAIAAAoCAAAKAgAADAIAAAwCAAAOAgAADgIAABACAAAQAgAAEgIAABICAAAUAgAAFAIAABYCAAAWAgAAGAIAABgCAAAaAgAAGgIAABwCAAAcAgAAHgIAAB4CAAAgAgAAIAIAACICAAAiAgAAJAIAACQCAAAmAgAAJgIAACgCAAAoAgAAKgIAACoCAAAsAgAALAIAAC4CAAAuAgAAMAIAADACAAAyAgAAMgIAADoCAAA7AgAAPQIAAD4CAABBAgAAQQIAAEMCAABGAgAASAIAAEgCAABKAgAASgIAAEwCAABMAgAATgIAAE4CAABwAwAAcAMAAHIDAAByAwAAdgMAAHYDAAB/AwAAfwMAAIYDAACGAwAAiAMAAIoDAACMAwAAjAMAAI4DAACPAwAAkQMAAKEDAACjAwAAqwMAAM8DAADPAwAA0gMAANQDAADYAwAA2AMAANoDAADaAwAA3AMAANwDAADeAwAA3gMAAOADAADgAwAA4gMAAOIDAADkAwAA5AMAAOYDAADmAwAA6AMAAOgDAADqAwAA6gMAAOwDAADsAwAA7gMAAO4DAAD0AwAA9AMAAPcDAAD3AwAA+QMAAPoDAAD9AwAALwQAAGAEAABgBAAAYgQAAGIEAABkBAAAZAQAAGYEAABmBAAAaAQAAGgEAABqBAAAagQAAGwEAABsBAAAbgQAAG4EAABwBAAAcAQAAHIEAAByBAAAdAQAAHQEAAB2BAAAdgQAAHgEAAB4BAAAegQAAHoEAAB8BAAAfAQAAH4EAAB+BAAAgAQAAIAEAACKBAAAigQAAIwEAACMBAAAjgQAAI4EAACQBAAAkAQAAJIEAACSBAAAlAQAAJQEAACWBAAAlgQAAJgEAACYBAAAmgQAAJoEAACcBAAAnAQAAJ4EAACeBAAAoAQAAKAEAACiBAAAogQAAKQEAACkBAAApgQAAKYEAACoBAAAqAQAAKoEAACqBAAArAQAAKwEAACuBAAArgQAALAEAACwBAAAsgQAALIEAAC0BAAAtAQAALYEAAC2BAAAuAQAALgEAAC6BAAAugQAALwEAAC8BAAAvgQAAL4EAADABAAAwQQAAMMEAADDBAAAxQQAAMUEAADHBAAAxwQAAMkEAADJBAAAywQAAMsEAADNBAAAzQQAANAEAADQBAAA0gQAANIEAADUBAAA1AQAANYEAADWBAAA2AQAANgEAADaBAAA2gQAANwEAADcBAAA3gQAAN4EAADgBAAA4AQAAOIEAADiBAAA5AQAAOQEAADmBAAA5gQAAOgEAADoBAAA6gQAAOoEAADsBAAA7AQAAO4EAADuBAAA8AQAAPAEAADyBAAA8gQAAPQEAAD0BAAA9gQAAPYEAAD4BAAA+AQAAPoEAAD6BAAA/AQAAPwEAAD+BAAA/gQAAAAFAAAABQAAAgUAAAIFAAAEBQAABAUAAAYFAAAGBQAACAUAAAgFAAAKBQAACgUAAAwFAAAMBQAADgUAAA4FAAAQBQAAEAUAABIFAAASBQAAFAUAABQFAAAWBQAAFgUAABgFAAAYBQAAGgUAABoFAAAcBQAAHAUAAB4FAAAeBQAAIAUAACAFAAAiBQAAIgUAACQFAAAkBQAAJgUAACYFAAAoBQAAKAUAACoFAAAqBQAALAUAACwFAAAuBQAALgUAADEFAABWBQAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAAoBMAAPUTAACQHAAAuhwAAL0cAAC/HAAAAB4AAAAeAAACHgAAAh4AAAQeAAAEHgAABh4AAAYeAAAIHgAACB4AAAoeAAAKHgAADB4AAAweAAAOHgAADh4AABAeAAAQHgAAEh4AABIeAAAUHgAAFB4AABYeAAAWHgAAGB4AABgeAAAaHgAAGh4AABweAAAcHgAAHh4AAB4eAAAgHgAAIB4AACIeAAAiHgAAJB4AACQeAAAmHgAAJh4AACgeAAAoHgAAKh4AACoeAAAsHgAALB4AAC4eAAAuHgAAMB4AADAeAAAyHgAAMh4AADQeAAA0HgAANh4AADYeAAA4HgAAOB4AADoeAAA6HgAAPB4AADweAAA+HgAAPh4AAEAeAABAHgAAQh4AAEIeAABEHgAARB4AAEYeAABGHgAASB4AAEgeAABKHgAASh4AAEweAABMHgAATh4AAE4eAABQHgAAUB4AAFIeAABSHgAAVB4AAFQeAABWHgAAVh4AAFgeAABYHgAAWh4AAFoeAABcHgAAXB4AAF4eAABeHgAAYB4AAGAeAABiHgAAYh4AAGQeAABkHgAAZh4AAGYeAABoHgAAaB4AAGoeAABqHgAAbB4AAGweAABuHgAAbh4AAHAeAABwHgAAch4AAHIeAAB0HgAAdB4AAHYeAAB2HgAAeB4AAHgeAAB6HgAAeh4AAHweAAB8HgAAfh4AAH4eAACAHgAAgB4AAIIeAACCHgAAhB4AAIQeAACGHgAAhh4AAIgeAACIHgAAih4AAIoeAACMHgAAjB4AAI4eAACOHgAAkB4AAJAeAACSHgAAkh4AAJQeAACUHgAAnh4AAJ4eAACgHgAAoB4AAKIeAACiHgAApB4AAKQeAACmHgAAph4AAKgeAACoHgAAqh4AAKoeAACsHgAArB4AAK4eAACuHgAAsB4AALAeAACyHgAAsh4AALQeAAC0HgAAth4AALYeAAC4HgAAuB4AALoeAAC6HgAAvB4AALweAAC+HgAAvh4AAMAeAADAHgAAwh4AAMIeAADEHgAAxB4AAMYeAADGHgAAyB4AAMgeAADKHgAAyh4AAMweAADMHgAAzh4AAM4eAADQHgAA0B4AANIeAADSHgAA1B4AANQeAADWHgAA1h4AANgeAADYHgAA2h4AANoeAADcHgAA3B4AAN4eAADeHgAA4B4AAOAeAADiHgAA4h4AAOQeAADkHgAA5h4AAOYeAADoHgAA6B4AAOoeAADqHgAA7B4AAOweAADuHgAA7h4AAPAeAADwHgAA8h4AAPIeAAD0HgAA9B4AAPYeAAD2HgAA+B4AAPgeAAD6HgAA+h4AAPweAAD8HgAA/h4AAP4eAAAIHwAADx8AABgfAAAdHwAAKB8AAC8fAAA4HwAAPx8AAEgfAABNHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAF8fAABoHwAAbx8AALgfAAC7HwAAyB8AAMsfAADYHwAA2x8AAOgfAADsHwAA+B8AAPsfAAACIQAAAiEAAAchAAAHIQAACyEAAA0hAAAQIQAAEiEAABUhAAAVIQAAGSEAAB0hAAAkIQAAJCEAACYhAAAmIQAAKCEAACghAAAqIQAALSEAADAhAAAzIQAAPiEAAD8hAABFIQAARSEAAGAhAABvIQAAgyEAAIMhAAC2JAAAzyQAAAAsAAAvLAAAYCwAAGAsAABiLAAAZCwAAGcsAABnLAAAaSwAAGksAABrLAAAaywAAG0sAABwLAAAciwAAHIsAAB1LAAAdSwAAH4sAACALAAAgiwAAIIsAACELAAAhCwAAIYsAACGLAAAiCwAAIgsAACKLAAAiiwAAIwsAACMLAAAjiwAAI4sAACQLAAAkCwAAJIsAACSLAAAlCwAAJQsAACWLAAAliwAAJgsAACYLAAAmiwAAJosAACcLAAAnCwAAJ4sAACeLAAAoCwAAKAsAACiLAAAoiwAAKQsAACkLAAApiwAAKYsAACoLAAAqCwAAKosAACqLAAArCwAAKwsAACuLAAAriwAALAsAACwLAAAsiwAALIsAAC0LAAAtCwAALYsAAC2LAAAuCwAALgsAAC6LAAAuiwAALwsAAC8LAAAviwAAL4sAADALAAAwCwAAMIsAADCLAAAxCwAAMQsAADGLAAAxiwAAMgsAADILAAAyiwAAMosAADMLAAAzCwAAM4sAADOLAAA0CwAANAsAADSLAAA0iwAANQsAADULAAA1iwAANYsAADYLAAA2CwAANosAADaLAAA3CwAANwsAADeLAAA3iwAAOAsAADgLAAA4iwAAOIsAADrLAAA6ywAAO0sAADtLAAA8iwAAPIsAABApgAAQKYAAEKmAABCpgAARKYAAESmAABGpgAARqYAAEimAABIpgAASqYAAEqmAABMpgAATKYAAE6mAABOpgAAUKYAAFCmAABSpgAAUqYAAFSmAABUpgAAVqYAAFamAABYpgAAWKYAAFqmAABapgAAXKYAAFymAABepgAAXqYAAGCmAABgpgAAYqYAAGKmAABkpgAAZKYAAGamAABmpgAAaKYAAGimAABqpgAAaqYAAGymAABspgAAgKYAAICmAACCpgAAgqYAAISmAACEpgAAhqYAAIamAACIpgAAiKYAAIqmAACKpgAAjKYAAIymAACOpgAAjqYAAJCmAACQpgAAkqYAAJKmAACUpgAAlKYAAJamAACWpgAAmKYAAJimAACapgAAmqYAACKnAAAipwAAJKcAACSnAAAmpwAAJqcAACinAAAopwAAKqcAACqnAAAspwAALKcAAC6nAAAupwAAMqcAADKnAAA0pwAANKcAADanAAA2pwAAOKcAADinAAA6pwAAOqcAADynAAA8pwAAPqcAAD6nAABApwAAQKcAAEKnAABCpwAARKcAAESnAABGpwAARqcAAEinAABIpwAASqcAAEqnAABMpwAATKcAAE6nAABOpwAAUKcAAFCnAABSpwAAUqcAAFSnAABUpwAAVqcAAFanAABYpwAAWKcAAFqnAABapwAAXKcAAFynAABepwAAXqcAAGCnAABgpwAAYqcAAGKnAABkpwAAZKcAAGanAABmpwAAaKcAAGinAABqpwAAaqcAAGynAABspwAAbqcAAG6nAAB5pwAAeacAAHunAAB7pwAAfacAAH6nAACApwAAgKcAAIKnAACCpwAAhKcAAISnAACGpwAAhqcAAIunAACLpwAAjacAAI2nAACQpwAAkKcAAJKnAACSpwAAlqcAAJanAACYpwAAmKcAAJqnAACapwAAnKcAAJynAACepwAAnqcAAKCnAACgpwAAoqcAAKKnAACkpwAApKcAAKanAACmpwAAqKcAAKinAACqpwAArqcAALCnAAC0pwAAtqcAALanAAC4pwAAuKcAALqnAAC6pwAAvKcAALynAAC+pwAAvqcAAMCnAADApwAAwqcAAMKnAADEpwAAx6cAAMmnAADJpwAA0KcAANCnAADWpwAA1qcAANinAADYpwAA9acAAPWnAAAh/wAAOv8AAAAEAQAnBAEAsAQBANMEAQBwBQEAegUBAHwFAQCKBQEAjAUBAJIFAQCUBQEAlQUBAIAMAQCyDAEAoBgBAL8YAQBAbgEAX24BAADUAQAZ1AEANNQBAE3UAQBo1AEAgdQBAJzUAQCc1AEAntQBAJ/UAQCi1AEAotQBAKXUAQCm1AEAqdQBAKzUAQCu1AEAtdQBANDUAQDp1AEABNUBAAXVAQAH1QEACtUBAA3VAQAU1QEAFtUBABzVAQA41QEAOdUBADvVAQA+1QEAQNUBAETVAQBG1QEARtUBAErVAQBQ1QEAbNUBAIXVAQCg1QEAudUBANTVAQDt1QEACNYBACHWAQA81gEAVdYBAHDWAQCJ1gEAqNYBAMDWAQDi1gEA+tYBABzXAQA01wEAVtcBAG7XAQCQ1wEAqNcBAMrXAQDK1wEAAOkBACHpAQAw8QEASfEBAFDxAQBp8QEAcPEBAInxAQAAAAAAAwAAADAAAAA5AAAAQQAAAEYAAABhAAAAZgAAAAAAAAD2AgAAMAAAADkAAABBAAAAWgAAAF8AAABfAAAAYQAAAHoAAACqAAAAqgAAALUAAAC1AAAAugAAALoAAADAAAAA1gAAANgAAAD2AAAA+AAAAMECAADGAgAA0QIAAOACAADkAgAA7AIAAOwCAADuAgAA7gIAAAADAAB0AwAAdgMAAHcDAAB6AwAAfQMAAH8DAAB/AwAAhgMAAIYDAACIAwAAigMAAIwDAACMAwAAjgMAAKEDAACjAwAA9QMAAPcDAACBBAAAgwQAAC8FAAAxBQAAVgUAAFkFAABZBQAAYAUAAIgFAACRBQAAvQUAAL8FAAC/BQAAwQUAAMIFAADEBQAAxQUAAMcFAADHBQAA0AUAAOoFAADvBQAA8gUAABAGAAAaBgAAIAYAAGkGAABuBgAA0wYAANUGAADcBgAA3wYAAOgGAADqBgAA/AYAAP8GAAD/BgAAEAcAAEoHAABNBwAAsQcAAMAHAAD1BwAA+gcAAPoHAAD9BwAA/QcAAAAIAAAtCAAAQAgAAFsIAABgCAAAaggAAHAIAACHCAAAiQgAAI4IAACYCAAA4QgAAOMIAABjCQAAZgkAAG8JAABxCQAAgwkAAIUJAACMCQAAjwkAAJAJAACTCQAAqAkAAKoJAACwCQAAsgkAALIJAAC2CQAAuQkAALwJAADECQAAxwkAAMgJAADLCQAAzgkAANcJAADXCQAA3AkAAN0JAADfCQAA4wkAAOYJAADxCQAA/AkAAPwJAAD+CQAA/gkAAAEKAAADCgAABQoAAAoKAAAPCgAAEAoAABMKAAAoCgAAKgoAADAKAAAyCgAAMwoAADUKAAA2CgAAOAoAADkKAAA8CgAAPAoAAD4KAABCCgAARwoAAEgKAABLCgAATQoAAFEKAABRCgAAWQoAAFwKAABeCgAAXgoAAGYKAAB1CgAAgQoAAIMKAACFCgAAjQoAAI8KAACRCgAAkwoAAKgKAACqCgAAsAoAALIKAACzCgAAtQoAALkKAAC8CgAAxQoAAMcKAADJCgAAywoAAM0KAADQCgAA0AoAAOAKAADjCgAA5goAAO8KAAD5CgAA/woAAAELAAADCwAABQsAAAwLAAAPCwAAEAsAABMLAAAoCwAAKgsAADALAAAyCwAAMwsAADULAAA5CwAAPAsAAEQLAABHCwAASAsAAEsLAABNCwAAVQsAAFcLAABcCwAAXQsAAF8LAABjCwAAZgsAAG8LAABxCwAAcQsAAIILAACDCwAAhQsAAIoLAACOCwAAkAsAAJILAACVCwAAmQsAAJoLAACcCwAAnAsAAJ4LAACfCwAAowsAAKQLAACoCwAAqgsAAK4LAAC5CwAAvgsAAMILAADGCwAAyAsAAMoLAADNCwAA0AsAANALAADXCwAA1wsAAOYLAADvCwAAAAwAAAwMAAAODAAAEAwAABIMAAAoDAAAKgwAADkMAAA8DAAARAwAAEYMAABIDAAASgwAAE0MAABVDAAAVgwAAFgMAABaDAAAXQwAAF0MAABgDAAAYwwAAGYMAABvDAAAgAwAAIMMAACFDAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvAwAAMQMAADGDAAAyAwAAMoMAADNDAAA1QwAANYMAADdDAAA3gwAAOAMAADjDAAA5gwAAO8MAADxDAAA8gwAAAANAAAMDQAADg0AABANAAASDQAARA0AAEYNAABIDQAASg0AAE4NAABUDQAAVw0AAF8NAABjDQAAZg0AAG8NAAB6DQAAfw0AAIENAACDDQAAhQ0AAJYNAACaDQAAsQ0AALMNAAC7DQAAvQ0AAL0NAADADQAAxg0AAMoNAADKDQAAzw0AANQNAADWDQAA1g0AANgNAADfDQAA5g0AAO8NAADyDQAA8w0AAAEOAAA6DgAAQA4AAE4OAABQDgAAWQ4AAIEOAACCDgAAhA4AAIQOAACGDgAAig4AAIwOAACjDgAApQ4AAKUOAACnDgAAvQ4AAMAOAADEDgAAxg4AAMYOAADIDgAAzQ4AANAOAADZDgAA3A4AAN8OAAAADwAAAA8AABgPAAAZDwAAIA8AACkPAAA1DwAANQ8AADcPAAA3DwAAOQ8AADkPAAA+DwAARw8AAEkPAABsDwAAcQ8AAIQPAACGDwAAlw8AAJkPAAC8DwAAxg8AAMYPAAAAEAAASRAAAFAQAACdEAAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAA0BAAAPoQAAD8EAAASBIAAEoSAABNEgAAUBIAAFYSAABYEgAAWBIAAFoSAABdEgAAYBIAAIgSAACKEgAAjRIAAJASAACwEgAAshIAALUSAAC4EgAAvhIAAMASAADAEgAAwhIAAMUSAADIEgAA1hIAANgSAAAQEwAAEhMAABUTAAAYEwAAWhMAAF0TAABfEwAAgBMAAI8TAACgEwAA9RMAAPgTAAD9EwAAARQAAGwWAABvFgAAfxYAAIEWAACaFgAAoBYAAOoWAADuFgAA+BYAAAAXAAAVFwAAHxcAADQXAABAFwAAUxcAAGAXAABsFwAAbhcAAHAXAAByFwAAcxcAAIAXAADTFwAA1xcAANcXAADcFwAA3RcAAOAXAADpFwAACxgAAA0YAAAPGAAAGRgAACAYAAB4GAAAgBgAAKoYAACwGAAA9RgAAAAZAAAeGQAAIBkAACsZAAAwGQAAOxkAAEYZAABtGQAAcBkAAHQZAACAGQAAqxkAALAZAADJGQAA0BkAANkZAAAAGgAAGxoAACAaAABeGgAAYBoAAHwaAAB/GgAAiRoAAJAaAACZGgAApxoAAKcaAACwGgAAzhoAAAAbAABMGwAAUBsAAFkbAABrGwAAcxsAAIAbAADzGwAAABwAADccAABAHAAASRwAAE0cAAB9HAAAgBwAAIgcAACQHAAAuhwAAL0cAAC/HAAA0BwAANIcAADUHAAA+hwAAAAdAAAVHwAAGB8AAB0fAAAgHwAARR8AAEgfAABNHwAAUB8AAFcfAABZHwAAWR8AAFsfAABbHwAAXR8AAF0fAABfHwAAfR8AAIAfAAC0HwAAth8AALwfAAC+HwAAvh8AAMIfAADEHwAAxh8AAMwfAADQHwAA0x8AANYfAADbHwAA4B8AAOwfAADyHwAA9B8AAPYfAAD8HwAAPyAAAEAgAABUIAAAVCAAAHEgAABxIAAAfyAAAH8gAACQIAAAnCAAANAgAADwIAAAAiEAAAIhAAAHIQAAByEAAAohAAATIQAAFSEAABUhAAAZIQAAHSEAACQhAAAkIQAAJiEAACYhAAAoIQAAKCEAACohAAAtIQAALyEAADkhAAA8IQAAPyEAAEUhAABJIQAATiEAAE4hAABgIQAAiCEAALYkAADpJAAAACwAAOQsAADrLAAA8ywAAAAtAAAlLQAAJy0AACctAAAtLQAALS0AADAtAABnLQAAby0AAG8tAAB/LQAAli0AAKAtAACmLQAAqC0AAK4tAACwLQAAti0AALgtAAC+LQAAwC0AAMYtAADILQAAzi0AANAtAADWLQAA2C0AAN4tAADgLQAA/y0AAC8uAAAvLgAABTAAAAcwAAAhMAAALzAAADEwAAA1MAAAODAAADwwAABBMAAAljAAAJkwAACaMAAAnTAAAJ8wAAChMAAA+jAAAPwwAAD/MAAABTEAAC8xAAAxMQAAjjEAAKAxAAC/MQAA8DEAAP8xAAAANAAAv00AAABOAACMpAAA0KQAAP2kAAAApQAADKYAABCmAAArpgAAQKYAAHKmAAB0pgAAfaYAAH+mAADxpgAAF6cAAB+nAAAipwAAiKcAAIunAADKpwAA0KcAANGnAADTpwAA06cAANWnAADZpwAA8qcAACeoAAAsqAAALKgAAECoAABzqAAAgKgAAMWoAADQqAAA2agAAOCoAAD3qAAA+6gAAPuoAAD9qAAALakAADCpAABTqQAAYKkAAHypAACAqQAAwKkAAM+pAADZqQAA4KkAAP6pAAAAqgAANqoAAECqAABNqgAAUKoAAFmqAABgqgAAdqoAAHqqAADCqgAA26oAAN2qAADgqgAA76oAAPKqAAD2qgAAAasAAAarAAAJqwAADqsAABGrAAAWqwAAIKsAACarAAAoqwAALqsAADCrAABaqwAAXKsAAGmrAABwqwAA6qsAAOyrAADtqwAA8KsAAPmrAAAArAAAo9cAALDXAADG1wAAy9cAAPvXAAAA+QAAbfoAAHD6AADZ+gAAAPsAAAb7AAAT+wAAF/sAAB37AAAo+wAAKvsAADb7AAA4+wAAPPsAAD77AAA++wAAQPsAAEH7AABD+wAARPsAAEb7AACx+wAA0/sAAD39AABQ/QAAj/0AAJL9AADH/QAA8P0AAPv9AAAA/gAAD/4AACD+AAAv/gAAM/4AADT+AABN/gAAT/4AAHD+AAB0/gAAdv4AAPz+AAAQ/wAAGf8AACH/AAA6/wAAP/8AAD//AABB/wAAWv8AAGb/AAC+/wAAwv8AAMf/AADK/wAAz/8AANL/AADX/wAA2v8AANz/AAAAAAEACwABAA0AAQAmAAEAKAABADoAAQA8AAEAPQABAD8AAQBNAAEAUAABAF0AAQCAAAEA+gABAEABAQB0AQEA/QEBAP0BAQCAAgEAnAIBAKACAQDQAgEA4AIBAOACAQAAAwEAHwMBAC0DAQBKAwEAUAMBAHoDAQCAAwEAnQMBAKADAQDDAwEAyAMBAM8DAQDRAwEA1QMBAAAEAQCdBAEAoAQBAKkEAQCwBAEA0wQBANgEAQD7BAEAAAUBACcFAQAwBQEAYwUBAHAFAQB6BQEAfAUBAIoFAQCMBQEAkgUBAJQFAQCVBQEAlwUBAKEFAQCjBQEAsQUBALMFAQC5BQEAuwUBALwFAQAABgEANgcBAEAHAQBVBwEAYAcBAGcHAQCABwEAhQcBAIcHAQCwBwEAsgcBALoHAQAACAEABQgBAAgIAQAICAEACggBADUIAQA3CAEAOAgBADwIAQA8CAEAPwgBAFUIAQBgCAEAdggBAIAIAQCeCAEA4AgBAPIIAQD0CAEA9QgBAAAJAQAVCQEAIAkBADkJAQCACQEAtwkBAL4JAQC/CQEAAAoBAAMKAQAFCgEABgoBAAwKAQATCgEAFQoBABcKAQAZCgEANQoBADgKAQA6CgEAPwoBAD8KAQBgCgEAfAoBAIAKAQCcCgEAwAoBAMcKAQDJCgEA5goBAAALAQA1CwEAQAsBAFULAQBgCwEAcgsBAIALAQCRCwEAAAwBAEgMAQCADAEAsgwBAMAMAQDyDAEAAA0BACcNAQAwDQEAOQ0BAIAOAQCpDgEAqw4BAKwOAQCwDgEAsQ4BAAAPAQAcDwEAJw8BACcPAQAwDwEAUA8BAHAPAQCFDwEAsA8BAMQPAQDgDwEA9g8BAAAQAQBGEAEAZhABAHUQAQB/EAEAuhABAMIQAQDCEAEA0BABAOgQAQDwEAEA+RABAAARAQA0EQEANhEBAD8RAQBEEQEARxEBAFARAQBzEQEAdhEBAHYRAQCAEQEAxBEBAMkRAQDMEQEAzhEBANoRAQDcEQEA3BEBAAASAQAREgEAExIBADcSAQA+EgEAPhIBAIASAQCGEgEAiBIBAIgSAQCKEgEAjRIBAI8SAQCdEgEAnxIBAKgSAQCwEgEA6hIBAPASAQD5EgEAABMBAAMTAQAFEwEADBMBAA8TAQAQEwEAExMBACgTAQAqEwEAMBMBADITAQAzEwEANRMBADkTAQA7EwEARBMBAEcTAQBIEwEASxMBAE0TAQBQEwEAUBMBAFcTAQBXEwEAXRMBAGMTAQBmEwEAbBMBAHATAQB0EwEAABQBAEoUAQBQFAEAWRQBAF4UAQBhFAEAgBQBAMUUAQDHFAEAxxQBANAUAQDZFAEAgBUBALUVAQC4FQEAwBUBANgVAQDdFQEAABYBAEAWAQBEFgEARBYBAFAWAQBZFgEAgBYBALgWAQDAFgEAyRYBAAAXAQAaFwEAHRcBACsXAQAwFwEAORcBAEAXAQBGFwEAABgBADoYAQCgGAEA6RgBAP8YAQAGGQEACRkBAAkZAQAMGQEAExkBABUZAQAWGQEAGBkBADUZAQA3GQEAOBkBADsZAQBDGQEAUBkBAFkZAQCgGQEApxkBAKoZAQDXGQEA2hkBAOEZAQDjGQEA5BkBAAAaAQA+GgEARxoBAEcaAQBQGgEAmRoBAJ0aAQCdGgEAsBoBAPgaAQAAHAEACBwBAAocAQA2HAEAOBwBAEAcAQBQHAEAWRwBAHIcAQCPHAEAkhwBAKccAQCpHAEAthwBAAAdAQAGHQEACB0BAAkdAQALHQEANh0BADodAQA6HQEAPB0BAD0dAQA/HQEARx0BAFAdAQBZHQEAYB0BAGUdAQBnHQEAaB0BAGodAQCOHQEAkB0BAJEdAQCTHQEAmB0BAKAdAQCpHQEA4B4BAPYeAQCwHwEAsB8BAAAgAQCZIwEAACQBAG4kAQCAJAEAQyUBAJAvAQDwLwEAADABAC40AQAARAEARkYBAABoAQA4agEAQGoBAF5qAQBgagEAaWoBAHBqAQC+agEAwGoBAMlqAQDQagEA7WoBAPBqAQD0agEAAGsBADZrAQBAawEAQ2sBAFBrAQBZawEAY2sBAHdrAQB9awEAj2sBAEBuAQB/bgEAAG8BAEpvAQBPbwEAh28BAI9vAQCfbwEA4G8BAOFvAQDjbwEA5G8BAPBvAQDxbwEAAHABAPeHAQAAiAEA1YwBAACNAQAIjQEA8K8BAPOvAQD1rwEA+68BAP2vAQD+rwEAALABACKxAQBQsQEAUrEBAGSxAQBnsQEAcLEBAPuyAQAAvAEAarwBAHC8AQB8vAEAgLwBAIi8AQCQvAEAmbwBAJ28AQCevAEAAM8BAC3PAQAwzwEARs8BAGXRAQBp0QEAbdEBAHLRAQB70QEAgtEBAIXRAQCL0QEAqtEBAK3RAQBC0gEARNIBAADUAQBU1AEAVtQBAJzUAQCe1AEAn9QBAKLUAQCi1AEApdQBAKbUAQCp1AEArNQBAK7UAQC51AEAu9QBALvUAQC91AEAw9QBAMXUAQAF1QEAB9UBAArVAQAN1QEAFNUBABbVAQAc1QEAHtUBADnVAQA71QEAPtUBAEDVAQBE1QEARtUBAEbVAQBK1QEAUNUBAFLVAQCl1gEAqNYBAMDWAQDC1gEA2tYBANzWAQD61gEA/NYBABTXAQAW1wEANNcBADbXAQBO1wEAUNcBAG7XAQBw1wEAiNcBAIrXAQCo1wEAqtcBAMLXAQDE1wEAy9cBAM7XAQD/1wEAANoBADbaAQA72gEAbNoBAHXaAQB12gEAhNoBAITaAQCb2gEAn9oBAKHaAQCv2gEAAN8BAB7fAQAA4AEABuABAAjgAQAY4AEAG+ABACHgAQAj4AEAJOABACbgAQAq4AEAAOEBACzhAQAw4QEAPeEBAEDhAQBJ4QEATuEBAE7hAQCQ4gEAruIBAMDiAQD54gEA4OcBAObnAQDo5wEA6+cBAO3nAQDu5wEA8OcBAP7nAQAA6AEAxOgBANDoAQDW6AEAAOkBAEvpAQBQ6QEAWekBAADuAQAD7gEABe4BAB/uAQAh7gEAIu4BACTuAQAk7gEAJ+4BACfuAQAp7gEAMu4BADTuAQA37gEAOe4BADnuAQA77gEAO+4BAELuAQBC7gEAR+4BAEfuAQBJ7gEASe4BAEvuAQBL7gEATe4BAE/uAQBR7gEAUu4BAFTuAQBU7gEAV+4BAFfuAQBZ7gEAWe4BAFvuAQBb7gEAXe4BAF3uAQBf7gEAX+4BAGHuAQBi7gEAZO4BAGTuAQBn7gEAau4BAGzuAQBy7gEAdO4BAHfuAQB57gEAfO4BAH7uAQB+7gEAgO4BAInuAQCL7gEAm+4BAKHuAQCj7gEApe4BAKnuAQCr7gEAu+4BADDxAQBJ8QEAUPEBAGnxAQBw8QEAifEBAPD7AQD5+wEAAAACAN+mAgAApwIAOLcCAEC3AgAduAIAILgCAKHOAgCwzgIA4OsCAAD4AgAd+gIAAAADAEoTAwAAAQ4A7wEOAEHQsAQLozD4AgAAMAAAADkAAABBAAAAWgAAAGEAAAB6AAAAqgAAAKoAAAC1AAAAtQAAALoAAAC6AAAAwAAAANYAAADYAAAA9gAAAPgAAADBAgAAxgIAANECAADgAgAA5AIAAOwCAADsAgAA7gIAAO4CAABFAwAARQMAAHADAAB0AwAAdgMAAHcDAAB6AwAAfQMAAH8DAAB/AwAAhgMAAIYDAACIAwAAigMAAIwDAACMAwAAjgMAAKEDAACjAwAA9QMAAPcDAACBBAAAigQAAC8FAAAxBQAAVgUAAFkFAABZBQAAYAUAAIgFAACwBQAAvQUAAL8FAAC/BQAAwQUAAMIFAADEBQAAxQUAAMcFAADHBQAA0AUAAOoFAADvBQAA8gUAABAGAAAaBgAAIAYAAFcGAABZBgAAaQYAAG4GAADTBgAA1QYAANwGAADhBgAA6AYAAO0GAAD8BgAA/wYAAP8GAAAQBwAAPwcAAE0HAACxBwAAwAcAAOoHAAD0BwAA9QcAAPoHAAD6BwAAAAgAABcIAAAaCAAALAgAAEAIAABYCAAAYAgAAGoIAABwCAAAhwgAAIkIAACOCAAAoAgAAMkIAADUCAAA3wgAAOMIAADpCAAA8AgAADsJAAA9CQAATAkAAE4JAABQCQAAVQkAAGMJAABmCQAAbwkAAHEJAACDCQAAhQkAAIwJAACPCQAAkAkAAJMJAACoCQAAqgkAALAJAACyCQAAsgkAALYJAAC5CQAAvQkAAMQJAADHCQAAyAkAAMsJAADMCQAAzgkAAM4JAADXCQAA1wkAANwJAADdCQAA3wkAAOMJAADmCQAA8QkAAPwJAAD8CQAAAQoAAAMKAAAFCgAACgoAAA8KAAAQCgAAEwoAACgKAAAqCgAAMAoAADIKAAAzCgAANQoAADYKAAA4CgAAOQoAAD4KAABCCgAARwoAAEgKAABLCgAATAoAAFEKAABRCgAAWQoAAFwKAABeCgAAXgoAAGYKAAB1CgAAgQoAAIMKAACFCgAAjQoAAI8KAACRCgAAkwoAAKgKAACqCgAAsAoAALIKAACzCgAAtQoAALkKAAC9CgAAxQoAAMcKAADJCgAAywoAAMwKAADQCgAA0AoAAOAKAADjCgAA5goAAO8KAAD5CgAA/AoAAAELAAADCwAABQsAAAwLAAAPCwAAEAsAABMLAAAoCwAAKgsAADALAAAyCwAAMwsAADULAAA5CwAAPQsAAEQLAABHCwAASAsAAEsLAABMCwAAVgsAAFcLAABcCwAAXQsAAF8LAABjCwAAZgsAAG8LAABxCwAAcQsAAIILAACDCwAAhQsAAIoLAACOCwAAkAsAAJILAACVCwAAmQsAAJoLAACcCwAAnAsAAJ4LAACfCwAAowsAAKQLAACoCwAAqgsAAK4LAAC5CwAAvgsAAMILAADGCwAAyAsAAMoLAADMCwAA0AsAANALAADXCwAA1wsAAOYLAADvCwAAAAwAAAMMAAAFDAAADAwAAA4MAAAQDAAAEgwAACgMAAAqDAAAOQwAAD0MAABEDAAARgwAAEgMAABKDAAATAwAAFUMAABWDAAAWAwAAFoMAABdDAAAXQwAAGAMAABjDAAAZgwAAG8MAACADAAAgwwAAIUMAACMDAAAjgwAAJAMAACSDAAAqAwAAKoMAACzDAAAtQwAALkMAAC9DAAAxAwAAMYMAADIDAAAygwAAMwMAADVDAAA1gwAAN0MAADeDAAA4AwAAOMMAADmDAAA7wwAAPEMAADyDAAAAA0AAAwNAAAODQAAEA0AABINAAA6DQAAPQ0AAEQNAABGDQAASA0AAEoNAABMDQAATg0AAE4NAABUDQAAVw0AAF8NAABjDQAAZg0AAG8NAAB6DQAAfw0AAIENAACDDQAAhQ0AAJYNAACaDQAAsQ0AALMNAAC7DQAAvQ0AAL0NAADADQAAxg0AAM8NAADUDQAA1g0AANYNAADYDQAA3w0AAOYNAADvDQAA8g0AAPMNAAABDgAAOg4AAEAOAABGDgAATQ4AAE0OAABQDgAAWQ4AAIEOAACCDgAAhA4AAIQOAACGDgAAig4AAIwOAACjDgAApQ4AAKUOAACnDgAAuQ4AALsOAAC9DgAAwA4AAMQOAADGDgAAxg4AAM0OAADNDgAA0A4AANkOAADcDgAA3w4AAAAPAAAADwAAIA8AACkPAABADwAARw8AAEkPAABsDwAAcQ8AAIEPAACIDwAAlw8AAJkPAAC8DwAAABAAADYQAAA4EAAAOBAAADsQAABJEAAAUBAAAJ0QAACgEAAAxRAAAMcQAADHEAAAzRAAAM0QAADQEAAA+hAAAPwQAABIEgAAShIAAE0SAABQEgAAVhIAAFgSAABYEgAAWhIAAF0SAABgEgAAiBIAAIoSAACNEgAAkBIAALASAACyEgAAtRIAALgSAAC+EgAAwBIAAMASAADCEgAAxRIAAMgSAADWEgAA2BIAABATAAASEwAAFRMAABgTAABaEwAAgBMAAI8TAACgEwAA9RMAAPgTAAD9EwAAARQAAGwWAABvFgAAfxYAAIEWAACaFgAAoBYAAOoWAADuFgAA+BYAAAAXAAATFwAAHxcAADMXAABAFwAAUxcAAGAXAABsFwAAbhcAAHAXAAByFwAAcxcAAIAXAACzFwAAthcAAMgXAADXFwAA1xcAANwXAADcFwAA4BcAAOkXAAAQGAAAGRgAACAYAAB4GAAAgBgAAKoYAACwGAAA9RgAAAAZAAAeGQAAIBkAACsZAAAwGQAAOBkAAEYZAABtGQAAcBkAAHQZAACAGQAAqxkAALAZAADJGQAA0BkAANkZAAAAGgAAGxoAACAaAABeGgAAYRoAAHQaAACAGgAAiRoAAJAaAACZGgAApxoAAKcaAAC/GgAAwBoAAMwaAADOGgAAABsAADMbAAA1GwAAQxsAAEUbAABMGwAAUBsAAFkbAACAGwAAqRsAAKwbAADlGwAA5xsAAPEbAAAAHAAANhwAAEAcAABJHAAATRwAAH0cAACAHAAAiBwAAJAcAAC6HAAAvRwAAL8cAADpHAAA7BwAAO4cAADzHAAA9RwAAPYcAAD6HAAA+hwAAAAdAAC/HQAA5x0AAPQdAAAAHgAAFR8AABgfAAAdHwAAIB8AAEUfAABIHwAATR8AAFAfAABXHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAH0fAACAHwAAtB8AALYfAAC8HwAAvh8AAL4fAADCHwAAxB8AAMYfAADMHwAA0B8AANMfAADWHwAA2x8AAOAfAADsHwAA8h8AAPQfAAD2HwAA/B8AAHEgAABxIAAAfyAAAH8gAACQIAAAnCAAAAIhAAACIQAAByEAAAchAAAKIQAAEyEAABUhAAAVIQAAGSEAAB0hAAAkIQAAJCEAACYhAAAmIQAAKCEAACghAAAqIQAALSEAAC8hAAA5IQAAPCEAAD8hAABFIQAASSEAAE4hAABOIQAAYCEAAIghAAC2JAAA6SQAAAAsAADkLAAA6ywAAO4sAADyLAAA8ywAAAAtAAAlLQAAJy0AACctAAAtLQAALS0AADAtAABnLQAAby0AAG8tAACALQAAli0AAKAtAACmLQAAqC0AAK4tAACwLQAAti0AALgtAAC+LQAAwC0AAMYtAADILQAAzi0AANAtAADWLQAA2C0AAN4tAADgLQAA/y0AAC8uAAAvLgAABTAAAAcwAAAhMAAAKTAAADEwAAA1MAAAODAAADwwAABBMAAAljAAAJ0wAACfMAAAoTAAAPowAAD8MAAA/zAAAAUxAAAvMQAAMTEAAI4xAACgMQAAvzEAAPAxAAD/MQAAADQAAL9NAAAATgAAjKQAANCkAAD9pAAAAKUAAAymAAAQpgAAK6YAAECmAABupgAAdKYAAHumAAB/pgAA76YAABenAAAfpwAAIqcAAIinAACLpwAAyqcAANCnAADRpwAA06cAANOnAADVpwAA2acAAPKnAAAFqAAAB6gAACeoAABAqAAAc6gAAICoAADDqAAAxagAAMWoAADQqAAA2agAAPKoAAD3qAAA+6gAAPuoAAD9qAAAKqkAADCpAABSqQAAYKkAAHypAACAqQAAsqkAALSpAAC/qQAAz6kAANmpAADgqQAA/qkAAACqAAA2qgAAQKoAAE2qAABQqgAAWaoAAGCqAAB2qgAAeqoAAL6qAADAqgAAwKoAAMKqAADCqgAA26oAAN2qAADgqgAA76oAAPKqAAD1qgAAAasAAAarAAAJqwAADqsAABGrAAAWqwAAIKsAACarAAAoqwAALqsAADCrAABaqwAAXKsAAGmrAABwqwAA6qsAAPCrAAD5qwAAAKwAAKPXAACw1wAAxtcAAMvXAAD71wAAAPkAAG36AABw+gAA2foAAAD7AAAG+wAAE/sAABf7AAAd+wAAKPsAACr7AAA2+wAAOPsAADz7AAA++wAAPvsAAED7AABB+wAAQ/sAAET7AABG+wAAsfsAANP7AAA9/QAAUP0AAI/9AACS/QAAx/0AAPD9AAD7/QAAcP4AAHT+AAB2/gAA/P4AABD/AAAZ/wAAIf8AADr/AABB/wAAWv8AAGb/AAC+/wAAwv8AAMf/AADK/wAAz/8AANL/AADX/wAA2v8AANz/AAAAAAEACwABAA0AAQAmAAEAKAABADoAAQA8AAEAPQABAD8AAQBNAAEAUAABAF0AAQCAAAEA+gABAEABAQB0AQEAgAIBAJwCAQCgAgEA0AIBAAADAQAfAwEALQMBAEoDAQBQAwEAegMBAIADAQCdAwEAoAMBAMMDAQDIAwEAzwMBANEDAQDVAwEAAAQBAJ0EAQCgBAEAqQQBALAEAQDTBAEA2AQBAPsEAQAABQEAJwUBADAFAQBjBQEAcAUBAHoFAQB8BQEAigUBAIwFAQCSBQEAlAUBAJUFAQCXBQEAoQUBAKMFAQCxBQEAswUBALkFAQC7BQEAvAUBAAAGAQA2BwEAQAcBAFUHAQBgBwEAZwcBAIAHAQCFBwEAhwcBALAHAQCyBwEAugcBAAAIAQAFCAEACAgBAAgIAQAKCAEANQgBADcIAQA4CAEAPAgBADwIAQA/CAEAVQgBAGAIAQB2CAEAgAgBAJ4IAQDgCAEA8ggBAPQIAQD1CAEAAAkBABUJAQAgCQEAOQkBAIAJAQC3CQEAvgkBAL8JAQAACgEAAwoBAAUKAQAGCgEADAoBABMKAQAVCgEAFwoBABkKAQA1CgEAYAoBAHwKAQCACgEAnAoBAMAKAQDHCgEAyQoBAOQKAQAACwEANQsBAEALAQBVCwEAYAsBAHILAQCACwEAkQsBAAAMAQBIDAEAgAwBALIMAQDADAEA8gwBAAANAQAnDQEAMA0BADkNAQCADgEAqQ4BAKsOAQCsDgEAsA4BALEOAQAADwEAHA8BACcPAQAnDwEAMA8BAEUPAQBwDwEAgQ8BALAPAQDEDwEA4A8BAPYPAQAAEAEARRABAGYQAQBvEAEAcRABAHUQAQCCEAEAuBABAMIQAQDCEAEA0BABAOgQAQDwEAEA+RABAAARAQAyEQEANhEBAD8RAQBEEQEARxEBAFARAQByEQEAdhEBAHYRAQCAEQEAvxEBAMERAQDEEQEAzhEBANoRAQDcEQEA3BEBAAASAQAREgEAExIBADQSAQA3EgEANxIBAD4SAQA+EgEAgBIBAIYSAQCIEgEAiBIBAIoSAQCNEgEAjxIBAJ0SAQCfEgEAqBIBALASAQDoEgEA8BIBAPkSAQAAEwEAAxMBAAUTAQAMEwEADxMBABATAQATEwEAKBMBACoTAQAwEwEAMhMBADMTAQA1EwEAORMBAD0TAQBEEwEARxMBAEgTAQBLEwEATBMBAFATAQBQEwEAVxMBAFcTAQBdEwEAYxMBAAAUAQBBFAEAQxQBAEUUAQBHFAEAShQBAFAUAQBZFAEAXxQBAGEUAQCAFAEAwRQBAMQUAQDFFAEAxxQBAMcUAQDQFAEA2RQBAIAVAQC1FQEAuBUBAL4VAQDYFQEA3RUBAAAWAQA+FgEAQBYBAEAWAQBEFgEARBYBAFAWAQBZFgEAgBYBALUWAQC4FgEAuBYBAMAWAQDJFgEAABcBABoXAQAdFwEAKhcBADAXAQA5FwEAQBcBAEYXAQAAGAEAOBgBAKAYAQDpGAEA/xgBAAYZAQAJGQEACRkBAAwZAQATGQEAFRkBABYZAQAYGQEANRkBADcZAQA4GQEAOxkBADwZAQA/GQEAQhkBAFAZAQBZGQEAoBkBAKcZAQCqGQEA1xkBANoZAQDfGQEA4RkBAOEZAQDjGQEA5BkBAAAaAQAyGgEANRoBAD4aAQBQGgEAlxoBAJ0aAQCdGgEAsBoBAPgaAQAAHAEACBwBAAocAQA2HAEAOBwBAD4cAQBAHAEAQBwBAFAcAQBZHAEAchwBAI8cAQCSHAEApxwBAKkcAQC2HAEAAB0BAAYdAQAIHQEACR0BAAsdAQA2HQEAOh0BADodAQA8HQEAPR0BAD8dAQBBHQEAQx0BAEMdAQBGHQEARx0BAFAdAQBZHQEAYB0BAGUdAQBnHQEAaB0BAGodAQCOHQEAkB0BAJEdAQCTHQEAlh0BAJgdAQCYHQEAoB0BAKkdAQDgHgEA9h4BALAfAQCwHwEAACABAJkjAQAAJAEAbiQBAIAkAQBDJQEAkC8BAPAvAQAAMAEALjQBAABEAQBGRgEAAGgBADhqAQBAagEAXmoBAGBqAQBpagEAcGoBAL5qAQDAagEAyWoBANBqAQDtagEAAGsBAC9rAQBAawEAQ2sBAFBrAQBZawEAY2sBAHdrAQB9awEAj2sBAEBuAQB/bgEAAG8BAEpvAQBPbwEAh28BAI9vAQCfbwEA4G8BAOFvAQDjbwEA428BAPBvAQDxbwEAAHABAPeHAQAAiAEA1YwBAACNAQAIjQEA8K8BAPOvAQD1rwEA+68BAP2vAQD+rwEAALABACKxAQBQsQEAUrEBAGSxAQBnsQEAcLEBAPuyAQAAvAEAarwBAHC8AQB8vAEAgLwBAIi8AQCQvAEAmbwBAJ68AQCevAEAANQBAFTUAQBW1AEAnNQBAJ7UAQCf1AEAotQBAKLUAQCl1AEAptQBAKnUAQCs1AEArtQBALnUAQC71AEAu9QBAL3UAQDD1AEAxdQBAAXVAQAH1QEACtUBAA3VAQAU1QEAFtUBABzVAQAe1QEAOdUBADvVAQA+1QEAQNUBAETVAQBG1QEARtUBAErVAQBQ1QEAUtUBAKXWAQCo1gEAwNYBAMLWAQDa1gEA3NYBAPrWAQD81gEAFNcBABbXAQA01wEANtcBAE7XAQBQ1wEAbtcBAHDXAQCI1wEAitcBAKjXAQCq1wEAwtcBAMTXAQDL1wEAztcBAP/XAQAA3wEAHt8BAADgAQAG4AEACOABABjgAQAb4AEAIeABACPgAQAk4AEAJuABACrgAQAA4QEALOEBADfhAQA94QEAQOEBAEnhAQBO4QEATuEBAJDiAQCt4gEAwOIBAOviAQDw4gEA+eIBAODnAQDm5wEA6OcBAOvnAQDt5wEA7ucBAPDnAQD+5wEAAOgBAMToAQAA6QEAQ+kBAEfpAQBH6QEAS+kBAEvpAQBQ6QEAWekBAADuAQAD7gEABe4BAB/uAQAh7gEAIu4BACTuAQAk7gEAJ+4BACfuAQAp7gEAMu4BADTuAQA37gEAOe4BADnuAQA77gEAO+4BAELuAQBC7gEAR+4BAEfuAQBJ7gEASe4BAEvuAQBL7gEATe4BAE/uAQBR7gEAUu4BAFTuAQBU7gEAV+4BAFfuAQBZ7gEAWe4BAFvuAQBb7gEAXe4BAF3uAQBf7gEAX+4BAGHuAQBi7gEAZO4BAGTuAQBn7gEAau4BAGzuAQBy7gEAdO4BAHfuAQB57gEAfO4BAH7uAQB+7gEAgO4BAInuAQCL7gEAm+4BAKHuAQCj7gEApe4BAKnuAQCr7gEAu+4BADDxAQBJ8QEAUPEBAGnxAQBw8QEAifEBAPD7AQD5+wEAAAACAN+mAgAApwIAOLcCAEC3AgAduAIAILgCAKHOAgCwzgIA4OsCAAD4AgAd+gIAAAADAEoTAwABAAAAAAAAAH8AAAADAAAAAOkBAEvpAQBQ6QEAWekBAF7pAQBf6QEAAAAAAAMAAAAAFwEAGhcBAB0XAQArFwEAMBcBAEYXAQABAAAAAEQBAEZGAQABAAAAAAAAAP//EABBgOEEC/IDOQAAAAAGAAAEBgAABgYAAAsGAAANBgAAGgYAABwGAAAeBgAAIAYAAD8GAABBBgAASgYAAFYGAABvBgAAcQYAANwGAADeBgAA/wYAAFAHAAB/BwAAcAgAAI4IAACQCAAAkQgAAJgIAADhCAAA4wgAAP8IAABQ+wAAwvsAANP7AAA9/QAAQP0AAI/9AACS/QAAx/0AAM/9AADP/QAA8P0AAP/9AABw/gAAdP4AAHb+AAD8/gAAYA4BAH4OAQAA7gEAA+4BAAXuAQAf7gEAIe4BACLuAQAk7gEAJO4BACfuAQAn7gEAKe4BADLuAQA07gEAN+4BADnuAQA57gEAO+4BADvuAQBC7gEAQu4BAEfuAQBH7gEASe4BAEnuAQBL7gEAS+4BAE3uAQBP7gEAUe4BAFLuAQBU7gEAVO4BAFfuAQBX7gEAWe4BAFnuAQBb7gEAW+4BAF3uAQBd7gEAX+4BAF/uAQBh7gEAYu4BAGTuAQBk7gEAZ+4BAGruAQBs7gEAcu4BAHTuAQB37gEAee4BAHzuAQB+7gEAfu4BAIDuAQCJ7gEAi+4BAJvuAQCh7gEAo+4BAKXuAQCp7gEAq+4BALvuAQDw7gEA8e4BAAAAAAAEAAAAMQUAAFYFAABZBQAAigUAAI0FAACPBQAAE/sAABf7AEGA5QQL0yu6AgAAAAAAAHcDAAB6AwAAfwMAAIQDAACKAwAAjAMAAIwDAACOAwAAoQMAAKMDAAAvBQAAMQUAAFYFAABZBQAAigUAAI0FAACPBQAAkQUAAMcFAADQBQAA6gUAAO8FAAD0BQAAAAYAAA0HAAAPBwAASgcAAE0HAACxBwAAwAcAAPoHAAD9BwAALQgAADAIAAA+CAAAQAgAAFsIAABeCAAAXggAAGAIAABqCAAAcAgAAI4IAACQCAAAkQgAAJgIAACDCQAAhQkAAIwJAACPCQAAkAkAAJMJAACoCQAAqgkAALAJAACyCQAAsgkAALYJAAC5CQAAvAkAAMQJAADHCQAAyAkAAMsJAADOCQAA1wkAANcJAADcCQAA3QkAAN8JAADjCQAA5gkAAP4JAAABCgAAAwoAAAUKAAAKCgAADwoAABAKAAATCgAAKAoAACoKAAAwCgAAMgoAADMKAAA1CgAANgoAADgKAAA5CgAAPAoAADwKAAA+CgAAQgoAAEcKAABICgAASwoAAE0KAABRCgAAUQoAAFkKAABcCgAAXgoAAF4KAABmCgAAdgoAAIEKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvAoAAMUKAADHCgAAyQoAAMsKAADNCgAA0AoAANAKAADgCgAA4woAAOYKAADxCgAA+QoAAP8KAAABCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAADwLAABECwAARwsAAEgLAABLCwAATQsAAFULAABXCwAAXAsAAF0LAABfCwAAYwsAAGYLAAB3CwAAggsAAIMLAACFCwAAigsAAI4LAACQCwAAkgsAAJULAACZCwAAmgsAAJwLAACcCwAAngsAAJ8LAACjCwAApAsAAKgLAACqCwAArgsAALkLAAC+CwAAwgsAAMYLAADICwAAygsAAM0LAADQCwAA0AsAANcLAADXCwAA5gsAAPoLAAAADAAADAwAAA4MAAAQDAAAEgwAACgMAAAqDAAAOQwAADwMAABEDAAARgwAAEgMAABKDAAATQwAAFUMAABWDAAAWAwAAFoMAABdDAAAXQwAAGAMAABjDAAAZgwAAG8MAAB3DAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvAwAAMQMAADGDAAAyAwAAMoMAADNDAAA1QwAANYMAADdDAAA3gwAAOAMAADjDAAA5gwAAO8MAADxDAAA8gwAAAANAAAMDQAADg0AABANAAASDQAARA0AAEYNAABIDQAASg0AAE8NAABUDQAAYw0AAGYNAAB/DQAAgQ0AAIMNAACFDQAAlg0AAJoNAACxDQAAsw0AALsNAAC9DQAAvQ0AAMANAADGDQAAyg0AAMoNAADPDQAA1A0AANYNAADWDQAA2A0AAN8NAADmDQAA7w0AAPINAAD0DQAAAQ4AADoOAAA/DgAAWw4AAIEOAACCDgAAhA4AAIQOAACGDgAAig4AAIwOAACjDgAApQ4AAKUOAACnDgAAvQ4AAMAOAADEDgAAxg4AAMYOAADIDgAAzQ4AANAOAADZDgAA3A4AAN8OAAAADwAARw8AAEkPAABsDwAAcQ8AAJcPAACZDwAAvA8AAL4PAADMDwAAzg8AANoPAAAAEAAAxRAAAMcQAADHEAAAzRAAAM0QAADQEAAASBIAAEoSAABNEgAAUBIAAFYSAABYEgAAWBIAAFoSAABdEgAAYBIAAIgSAACKEgAAjRIAAJASAACwEgAAshIAALUSAAC4EgAAvhIAAMASAADAEgAAwhIAAMUSAADIEgAA1hIAANgSAAAQEwAAEhMAABUTAAAYEwAAWhMAAF0TAAB8EwAAgBMAAJkTAACgEwAA9RMAAPgTAAD9EwAAABQAAJwWAACgFgAA+BYAAAAXAAAVFwAAHxcAADYXAABAFwAAUxcAAGAXAABsFwAAbhcAAHAXAAByFwAAcxcAAIAXAADdFwAA4BcAAOkXAADwFwAA+RcAAAAYAAAZGAAAIBgAAHgYAACAGAAAqhgAALAYAAD1GAAAABkAAB4ZAAAgGQAAKxkAADAZAAA7GQAAQBkAAEAZAABEGQAAbRkAAHAZAAB0GQAAgBkAAKsZAACwGQAAyRkAANAZAADaGQAA3hkAABsaAAAeGgAAXhoAAGAaAAB8GgAAfxoAAIkaAACQGgAAmRoAAKAaAACtGgAAsBoAAM4aAAAAGwAATBsAAFAbAAB+GwAAgBsAAPMbAAD8GwAANxwAADscAABJHAAATRwAAIgcAACQHAAAuhwAAL0cAADHHAAA0BwAAPocAAAAHQAAFR8AABgfAAAdHwAAIB8AAEUfAABIHwAATR8AAFAfAABXHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAH0fAACAHwAAtB8AALYfAADEHwAAxh8AANMfAADWHwAA2x8AAN0fAADvHwAA8h8AAPQfAAD2HwAA/h8AAAAgAABkIAAAZiAAAHEgAAB0IAAAjiAAAJAgAACcIAAAoCAAAMAgAADQIAAA8CAAAAAhAACLIQAAkCEAACYkAABAJAAASiQAAGAkAABzKwAAdisAAJUrAACXKwAA8ywAAPksAAAlLQAAJy0AACctAAAtLQAALS0AADAtAABnLQAAby0AAHAtAAB/LQAAli0AAKAtAACmLQAAqC0AAK4tAACwLQAAti0AALgtAAC+LQAAwC0AAMYtAADILQAAzi0AANAtAADWLQAA2C0AAN4tAADgLQAAXS4AAIAuAACZLgAAmy4AAPMuAAAALwAA1S8AAPAvAAD7LwAAADAAAD8wAABBMAAAljAAAJkwAAD/MAAABTEAAC8xAAAxMQAAjjEAAJAxAADjMQAA8DEAAB4yAAAgMgAAjKQAAJCkAADGpAAA0KQAACumAABApgAA96YAAACnAADKpwAA0KcAANGnAADTpwAA06cAANWnAADZpwAA8qcAACyoAAAwqAAAOagAAECoAAB3qAAAgKgAAMWoAADOqAAA2agAAOCoAABTqQAAX6kAAHypAACAqQAAzakAAM+pAADZqQAA3qkAAP6pAAAAqgAANqoAAECqAABNqgAAUKoAAFmqAABcqgAAwqoAANuqAAD2qgAAAasAAAarAAAJqwAADqsAABGrAAAWqwAAIKsAACarAAAoqwAALqsAADCrAABrqwAAcKsAAO2rAADwqwAA+asAAACsAACj1wAAsNcAAMbXAADL1wAA+9cAAADYAABt+gAAcPoAANn6AAAA+wAABvsAABP7AAAX+wAAHfsAADb7AAA4+wAAPPsAAD77AAA++wAAQPsAAEH7AABD+wAARPsAAEb7AADC+wAA0/sAAI/9AACS/QAAx/0AAM/9AADP/QAA8P0AABn+AAAg/gAAUv4AAFT+AABm/gAAaP4AAGv+AABw/gAAdP4AAHb+AAD8/gAA//4AAP/+AAAB/wAAvv8AAML/AADH/wAAyv8AAM//AADS/wAA1/8AANr/AADc/wAA4P8AAOb/AADo/wAA7v8AAPn/AAD9/wAAAAABAAsAAQANAAEAJgABACgAAQA6AAEAPAABAD0AAQA/AAEATQABAFAAAQBdAAEAgAABAPoAAQAAAQEAAgEBAAcBAQAzAQEANwEBAI4BAQCQAQEAnAEBAKABAQCgAQEA0AEBAP0BAQCAAgEAnAIBAKACAQDQAgEA4AIBAPsCAQAAAwEAIwMBAC0DAQBKAwEAUAMBAHoDAQCAAwEAnQMBAJ8DAQDDAwEAyAMBANUDAQAABAEAnQQBAKAEAQCpBAEAsAQBANMEAQDYBAEA+wQBAAAFAQAnBQEAMAUBAGMFAQBvBQEAegUBAHwFAQCKBQEAjAUBAJIFAQCUBQEAlQUBAJcFAQChBQEAowUBALEFAQCzBQEAuQUBALsFAQC8BQEAAAYBADYHAQBABwEAVQcBAGAHAQBnBwEAgAcBAIUHAQCHBwEAsAcBALIHAQC6BwEAAAgBAAUIAQAICAEACAgBAAoIAQA1CAEANwgBADgIAQA8CAEAPAgBAD8IAQBVCAEAVwgBAJ4IAQCnCAEArwgBAOAIAQDyCAEA9AgBAPUIAQD7CAEAGwkBAB8JAQA5CQEAPwkBAD8JAQCACQEAtwkBALwJAQDPCQEA0gkBAAMKAQAFCgEABgoBAAwKAQATCgEAFQoBABcKAQAZCgEANQoBADgKAQA6CgEAPwoBAEgKAQBQCgEAWAoBAGAKAQCfCgEAwAoBAOYKAQDrCgEA9goBAAALAQA1CwEAOQsBAFULAQBYCwEAcgsBAHgLAQCRCwEAmQsBAJwLAQCpCwEArwsBAAAMAQBIDAEAgAwBALIMAQDADAEA8gwBAPoMAQAnDQEAMA0BADkNAQBgDgEAfg4BAIAOAQCpDgEAqw4BAK0OAQCwDgEAsQ4BAAAPAQAnDwEAMA8BAFkPAQBwDwEAiQ8BALAPAQDLDwEA4A8BAPYPAQAAEAEATRABAFIQAQB1EAEAfxABAMIQAQDNEAEAzRABANAQAQDoEAEA8BABAPkQAQAAEQEANBEBADYRAQBHEQEAUBEBAHYRAQCAEQEA3xEBAOERAQD0EQEAABIBABESAQATEgEAPhIBAIASAQCGEgEAiBIBAIgSAQCKEgEAjRIBAI8SAQCdEgEAnxIBAKkSAQCwEgEA6hIBAPASAQD5EgEAABMBAAMTAQAFEwEADBMBAA8TAQAQEwEAExMBACgTAQAqEwEAMBMBADITAQAzEwEANRMBADkTAQA7EwEARBMBAEcTAQBIEwEASxMBAE0TAQBQEwEAUBMBAFcTAQBXEwEAXRMBAGMTAQBmEwEAbBMBAHATAQB0EwEAABQBAFsUAQBdFAEAYRQBAIAUAQDHFAEA0BQBANkUAQCAFQEAtRUBALgVAQDdFQEAABYBAEQWAQBQFgEAWRYBAGAWAQBsFgEAgBYBALkWAQDAFgEAyRYBAAAXAQAaFwEAHRcBACsXAQAwFwEARhcBAAAYAQA7GAEAoBgBAPIYAQD/GAEABhkBAAkZAQAJGQEADBkBABMZAQAVGQEAFhkBABgZAQA1GQEANxkBADgZAQA7GQEARhkBAFAZAQBZGQEAoBkBAKcZAQCqGQEA1xkBANoZAQDkGQEAABoBAEcaAQBQGgEAohoBALAaAQD4GgEAABwBAAgcAQAKHAEANhwBADgcAQBFHAEAUBwBAGwcAQBwHAEAjxwBAJIcAQCnHAEAqRwBALYcAQAAHQEABh0BAAgdAQAJHQEACx0BADYdAQA6HQEAOh0BADwdAQA9HQEAPx0BAEcdAQBQHQEAWR0BAGAdAQBlHQEAZx0BAGgdAQBqHQEAjh0BAJAdAQCRHQEAkx0BAJgdAQCgHQEAqR0BAOAeAQD4HgEAsB8BALAfAQDAHwEA8R8BAP8fAQCZIwEAACQBAG4kAQBwJAEAdCQBAIAkAQBDJQEAkC8BAPIvAQAAMAEALjQBADA0AQA4NAEAAEQBAEZGAQAAaAEAOGoBAEBqAQBeagEAYGoBAGlqAQBuagEAvmoBAMBqAQDJagEA0GoBAO1qAQDwagEA9WoBAABrAQBFawEAUGsBAFlrAQBbawEAYWsBAGNrAQB3awEAfWsBAI9rAQBAbgEAmm4BAABvAQBKbwEAT28BAIdvAQCPbwEAn28BAOBvAQDkbwEA8G8BAPFvAQAAcAEA94cBAACIAQDVjAEAAI0BAAiNAQDwrwEA868BAPWvAQD7rwEA/a8BAP6vAQAAsAEAIrEBAFCxAQBSsQEAZLEBAGexAQBwsQEA+7IBAAC8AQBqvAEAcLwBAHy8AQCAvAEAiLwBAJC8AQCZvAEAnLwBAKO8AQAAzwEALc8BADDPAQBGzwEAUM8BAMPPAQAA0AEA9dABAADRAQAm0QEAKdEBAOrRAQAA0gEARdIBAODSAQDz0gEAANMBAFbTAQBg0wEAeNMBAADUAQBU1AEAVtQBAJzUAQCe1AEAn9QBAKLUAQCi1AEApdQBAKbUAQCp1AEArNQBAK7UAQC51AEAu9QBALvUAQC91AEAw9QBAMXUAQAF1QEAB9UBAArVAQAN1QEAFNUBABbVAQAc1QEAHtUBADnVAQA71QEAPtUBAEDVAQBE1QEARtUBAEbVAQBK1QEAUNUBAFLVAQCl1gEAqNYBAMvXAQDO1wEAi9oBAJvaAQCf2gEAodoBAK/aAQAA3wEAHt8BAADgAQAG4AEACOABABjgAQAb4AEAIeABACPgAQAk4AEAJuABACrgAQAA4QEALOEBADDhAQA94QEAQOEBAEnhAQBO4QEAT+EBAJDiAQCu4gEAwOIBAPniAQD/4gEA/+IBAODnAQDm5wEA6OcBAOvnAQDt5wEA7ucBAPDnAQD+5wEAAOgBAMToAQDH6AEA1ugBAADpAQBL6QEAUOkBAFnpAQBe6QEAX+kBAHHsAQC07AEAAe0BAD3tAQAA7gEAA+4BAAXuAQAf7gEAIe4BACLuAQAk7gEAJO4BACfuAQAn7gEAKe4BADLuAQA07gEAN+4BADnuAQA57gEAO+4BADvuAQBC7gEAQu4BAEfuAQBH7gEASe4BAEnuAQBL7gEAS+4BAE3uAQBP7gEAUe4BAFLuAQBU7gEAVO4BAFfuAQBX7gEAWe4BAFnuAQBb7gEAW+4BAF3uAQBd7gEAX+4BAF/uAQBh7gEAYu4BAGTuAQBk7gEAZ+4BAGruAQBs7gEAcu4BAHTuAQB37gEAee4BAHzuAQB+7gEAfu4BAIDuAQCJ7gEAi+4BAJvuAQCh7gEAo+4BAKXuAQCp7gEAq+4BALvuAQDw7gEA8e4BAADwAQAr8AEAMPABAJPwAQCg8AEArvABALHwAQC/8AEAwfABAM/wAQDR8AEA9fABAADxAQCt8QEA5vEBAALyAQAQ8gEAO/IBAEDyAQBI8gEAUPIBAFHyAQBg8gEAZfIBAADzAQDX9gEA3fYBAOz2AQDw9gEA/PYBAAD3AQBz9wEAgPcBANj3AQDg9wEA6/cBAPD3AQDw9wEAAPgBAAv4AQAQ+AEAR/gBAFD4AQBZ+AEAYPgBAIf4AQCQ+AEArfgBALD4AQCx+AEAAPkBAFP6AQBg+gEAbfoBAHD6AQB0+gEAePoBAHz6AQCA+gEAhvoBAJD6AQCs+gEAsPoBALr6AQDA+gEAxfoBAND6AQDZ+gEA4PoBAOf6AQDw+gEA9voBAAD7AQCS+wEAlPsBAMr7AQDw+wEA+fsBAAAAAgDfpgIAAKcCADi3AgBAtwIAHbgCACC4AgChzgIAsM4CAODrAgAA+AIAHfoCAAAAAwBKEwMAAQAOAAEADgAgAA4AfwAOAAABDgDvAQ4AAAAPAP3/DwAAABAA/f8QAEHgkAULEwIAAAAACwEANQsBADkLAQA/CwEAQYCRBQsSAgAAAAAbAABMGwAAUBsAAH4bAEGgkQULEwIAAACgpgAA96YAAABoAQA4agEAQcCRBQsTAgAAANBqAQDtagEA8GoBAPVqAQBB4JEFCxICAAAAwBsAAPMbAAD8GwAA/xsAQYCSBQtyDgAAAIAJAACDCQAAhQkAAIwJAACPCQAAkAkAAJMJAACoCQAAqgkAALAJAACyCQAAsgkAALYJAAC5CQAAvAkAAMQJAADHCQAAyAkAAMsJAADOCQAA1wkAANcJAADcCQAA3QkAAN8JAADjCQAA5gkAAP4JAEGAkwULIwQAAAAAHAEACBwBAAocAQA2HAEAOBwBAEUcAQBQHAEAbBwBAEGwkwULIgQAAAAcBgAAHAYAAA4gAAAPIAAAKiAAAC4gAABmIAAAaSAAQeCTBQtGAwAAAOoCAADrAgAABTEAAC8xAACgMQAAvzEAAAAAAAADAAAAABABAE0QAQBSEAEAdRABAH8QAQB/EAEAAQAAAAAoAAD/KABBsJQFC7csAgAAAAAaAAAbGgAAHhoAAB8aAAABAAAAQBcAAFMXAAC9AgAAAAAAAB8AAAB/AAAAnwAAAK0AAACtAAAAeAMAAHkDAACAAwAAgwMAAIsDAACLAwAAjQMAAI0DAACiAwAAogMAADAFAAAwBQAAVwUAAFgFAACLBQAAjAUAAJAFAACQBQAAyAUAAM8FAADrBQAA7gUAAPUFAAAFBgAAHAYAABwGAADdBgAA3QYAAA4HAAAPBwAASwcAAEwHAACyBwAAvwcAAPsHAAD8BwAALggAAC8IAAA/CAAAPwgAAFwIAABdCAAAXwgAAF8IAABrCAAAbwgAAI8IAACXCAAA4ggAAOIIAACECQAAhAkAAI0JAACOCQAAkQkAAJIJAACpCQAAqQkAALEJAACxCQAAswkAALUJAAC6CQAAuwkAAMUJAADGCQAAyQkAAMoJAADPCQAA1gkAANgJAADbCQAA3gkAAN4JAADkCQAA5QkAAP8JAAAACgAABAoAAAQKAAALCgAADgoAABEKAAASCgAAKQoAACkKAAAxCgAAMQoAADQKAAA0CgAANwoAADcKAAA6CgAAOwoAAD0KAAA9CgAAQwoAAEYKAABJCgAASgoAAE4KAABQCgAAUgoAAFgKAABdCgAAXQoAAF8KAABlCgAAdwoAAIAKAACECgAAhAoAAI4KAACOCgAAkgoAAJIKAACpCgAAqQoAALEKAACxCgAAtAoAALQKAAC6CgAAuwoAAMYKAADGCgAAygoAAMoKAADOCgAAzwoAANEKAADfCgAA5AoAAOUKAADyCgAA+AoAAAALAAAACwAABAsAAAQLAAANCwAADgsAABELAAASCwAAKQsAACkLAAAxCwAAMQsAADQLAAA0CwAAOgsAADsLAABFCwAARgsAAEkLAABKCwAATgsAAFQLAABYCwAAWwsAAF4LAABeCwAAZAsAAGULAAB4CwAAgQsAAIQLAACECwAAiwsAAI0LAACRCwAAkQsAAJYLAACYCwAAmwsAAJsLAACdCwAAnQsAAKALAACiCwAApQsAAKcLAACrCwAArQsAALoLAAC9CwAAwwsAAMULAADJCwAAyQsAAM4LAADPCwAA0QsAANYLAADYCwAA5QsAAPsLAAD/CwAADQwAAA0MAAARDAAAEQwAACkMAAApDAAAOgwAADsMAABFDAAARQwAAEkMAABJDAAATgwAAFQMAABXDAAAVwwAAFsMAABcDAAAXgwAAF8MAABkDAAAZQwAAHAMAAB2DAAAjQwAAI0MAACRDAAAkQwAAKkMAACpDAAAtAwAALQMAAC6DAAAuwwAAMUMAADFDAAAyQwAAMkMAADODAAA1AwAANcMAADcDAAA3wwAAN8MAADkDAAA5QwAAPAMAADwDAAA8wwAAP8MAAANDQAADQ0AABENAAARDQAARQ0AAEUNAABJDQAASQ0AAFANAABTDQAAZA0AAGUNAACADQAAgA0AAIQNAACEDQAAlw0AAJkNAACyDQAAsg0AALwNAAC8DQAAvg0AAL8NAADHDQAAyQ0AAMsNAADODQAA1Q0AANUNAADXDQAA1w0AAOANAADlDQAA8A0AAPENAAD1DQAAAA4AADsOAAA+DgAAXA4AAIAOAACDDgAAgw4AAIUOAACFDgAAiw4AAIsOAACkDgAApA4AAKYOAACmDgAAvg4AAL8OAADFDgAAxQ4AAMcOAADHDgAAzg4AAM8OAADaDgAA2w4AAOAOAAD/DgAASA8AAEgPAABtDwAAcA8AAJgPAACYDwAAvQ8AAL0PAADNDwAAzQ8AANsPAAD/DwAAxhAAAMYQAADIEAAAzBAAAM4QAADPEAAASRIAAEkSAABOEgAATxIAAFcSAABXEgAAWRIAAFkSAABeEgAAXxIAAIkSAACJEgAAjhIAAI8SAACxEgAAsRIAALYSAAC3EgAAvxIAAL8SAADBEgAAwRIAAMYSAADHEgAA1xIAANcSAAAREwAAERMAABYTAAAXEwAAWxMAAFwTAAB9EwAAfxMAAJoTAACfEwAA9hMAAPcTAAD+EwAA/xMAAJ0WAACfFgAA+RYAAP8WAAAWFwAAHhcAADcXAAA/FwAAVBcAAF8XAABtFwAAbRcAAHEXAABxFwAAdBcAAH8XAADeFwAA3xcAAOoXAADvFwAA+hcAAP8XAAAOGAAADhgAABoYAAAfGAAAeRgAAH8YAACrGAAArxgAAPYYAAD/GAAAHxkAAB8ZAAAsGQAALxkAADwZAAA/GQAAQRkAAEMZAABuGQAAbxkAAHUZAAB/GQAArBkAAK8ZAADKGQAAzxkAANsZAADdGQAAHBoAAB0aAABfGgAAXxoAAH0aAAB+GgAAihoAAI8aAACaGgAAnxoAAK4aAACvGgAAzxoAAP8aAABNGwAATxsAAH8bAAB/GwAA9BsAAPsbAAA4HAAAOhwAAEocAABMHAAAiRwAAI8cAAC7HAAAvBwAAMgcAADPHAAA+xwAAP8cAAAWHwAAFx8AAB4fAAAfHwAARh8AAEcfAABOHwAATx8AAFgfAABYHwAAWh8AAFofAABcHwAAXB8AAF4fAABeHwAAfh8AAH8fAAC1HwAAtR8AAMUfAADFHwAA1B8AANUfAADcHwAA3B8AAPAfAADxHwAA9R8AAPUfAAD/HwAA/x8AAAsgAAAPIAAAKiAAAC4gAABgIAAAbyAAAHIgAABzIAAAjyAAAI8gAACdIAAAnyAAAMEgAADPIAAA8SAAAP8gAACMIQAAjyEAACckAAA/JAAASyQAAF8kAAB0KwAAdSsAAJYrAACWKwAA9CwAAPgsAAAmLQAAJi0AACgtAAAsLQAALi0AAC8tAABoLQAAbi0AAHEtAAB+LQAAly0AAJ8tAACnLQAApy0AAK8tAACvLQAAty0AALctAAC/LQAAvy0AAMctAADHLQAAzy0AAM8tAADXLQAA1y0AAN8tAADfLQAAXi4AAH8uAACaLgAAmi4AAPQuAAD/LgAA1i8AAO8vAAD8LwAA/y8AAEAwAABAMAAAlzAAAJgwAAAAMQAABDEAADAxAAAwMQAAjzEAAI8xAADkMQAA7zEAAB8yAAAfMgAAjaQAAI+kAADHpAAAz6QAACymAAA/pgAA+KYAAP+mAADLpwAAz6cAANKnAADSpwAA1KcAANSnAADapwAA8acAAC2oAAAvqAAAOqgAAD+oAAB4qAAAf6gAAMaoAADNqAAA2qgAAN+oAABUqQAAXqkAAH2pAAB/qQAAzqkAAM6pAADaqQAA3akAAP+pAAD/qQAAN6oAAD+qAABOqgAAT6oAAFqqAABbqgAAw6oAANqqAAD3qgAAAKsAAAerAAAIqwAAD6sAABCrAAAXqwAAH6sAACerAAAnqwAAL6sAAC+rAABsqwAAb6sAAO6rAADvqwAA+qsAAP+rAACk1wAAr9cAAMfXAADK1wAA/NcAAP/4AABu+gAAb/oAANr6AAD/+gAAB/sAABL7AAAY+wAAHPsAADf7AAA3+wAAPfsAAD37AAA/+wAAP/sAAEL7AABC+wAARfsAAEX7AADD+wAA0vsAAJD9AACR/QAAyP0AAM79AADQ/QAA7/0AABr+AAAf/gAAU/4AAFP+AABn/gAAZ/4AAGz+AABv/gAAdf4AAHX+AAD9/gAAAP8AAL//AADB/wAAyP8AAMn/AADQ/wAA0f8AANj/AADZ/wAA3f8AAN//AADn/wAA5/8AAO//AAD7/wAA/v8AAP//AAAMAAEADAABACcAAQAnAAEAOwABADsAAQA+AAEAPgABAE4AAQBPAAEAXgABAH8AAQD7AAEA/wABAAMBAQAGAQEANAEBADYBAQCPAQEAjwEBAJ0BAQCfAQEAoQEBAM8BAQD+AQEAfwIBAJ0CAQCfAgEA0QIBAN8CAQD8AgEA/wIBACQDAQAsAwEASwMBAE8DAQB7AwEAfwMBAJ4DAQCeAwEAxAMBAMcDAQDWAwEA/wMBAJ4EAQCfBAEAqgQBAK8EAQDUBAEA1wQBAPwEAQD/BAEAKAUBAC8FAQBkBQEAbgUBAHsFAQB7BQEAiwUBAIsFAQCTBQEAkwUBAJYFAQCWBQEAogUBAKIFAQCyBQEAsgUBALoFAQC6BQEAvQUBAP8FAQA3BwEAPwcBAFYHAQBfBwEAaAcBAH8HAQCGBwEAhgcBALEHAQCxBwEAuwcBAP8HAQAGCAEABwgBAAkIAQAJCAEANggBADYIAQA5CAEAOwgBAD0IAQA+CAEAVggBAFYIAQCfCAEApggBALAIAQDfCAEA8wgBAPMIAQD2CAEA+ggBABwJAQAeCQEAOgkBAD4JAQBACQEAfwkBALgJAQC7CQEA0AkBANEJAQAECgEABAoBAAcKAQALCgEAFAoBABQKAQAYCgEAGAoBADYKAQA3CgEAOwoBAD4KAQBJCgEATwoBAFkKAQBfCgEAoAoBAL8KAQDnCgEA6goBAPcKAQD/CgEANgsBADgLAQBWCwEAVwsBAHMLAQB3CwEAkgsBAJgLAQCdCwEAqAsBALALAQD/CwEASQwBAH8MAQCzDAEAvwwBAPMMAQD5DAEAKA0BAC8NAQA6DQEAXw4BAH8OAQB/DgEAqg4BAKoOAQCuDgEArw4BALIOAQD/DgEAKA8BAC8PAQBaDwEAbw8BAIoPAQCvDwEAzA8BAN8PAQD3DwEA/w8BAE4QAQBREAEAdhABAH4QAQC9EAEAvRABAMMQAQDPEAEA6RABAO8QAQD6EAEA/xABADURAQA1EQEASBEBAE8RAQB3EQEAfxEBAOARAQDgEQEA9REBAP8RAQASEgEAEhIBAD8SAQB/EgEAhxIBAIcSAQCJEgEAiRIBAI4SAQCOEgEAnhIBAJ4SAQCqEgEArxIBAOsSAQDvEgEA+hIBAP8SAQAEEwEABBMBAA0TAQAOEwEAERMBABITAQApEwEAKRMBADETAQAxEwEANBMBADQTAQA6EwEAOhMBAEUTAQBGEwEASRMBAEoTAQBOEwEATxMBAFETAQBWEwEAWBMBAFwTAQBkEwEAZRMBAG0TAQBvEwEAdRMBAP8TAQBcFAEAXBQBAGIUAQB/FAEAyBQBAM8UAQDaFAEAfxUBALYVAQC3FQEA3hUBAP8VAQBFFgEATxYBAFoWAQBfFgEAbRYBAH8WAQC6FgEAvxYBAMoWAQD/FgEAGxcBABwXAQAsFwEALxcBAEcXAQD/FwEAPBgBAJ8YAQDzGAEA/hgBAAcZAQAIGQEAChkBAAsZAQAUGQEAFBkBABcZAQAXGQEANhkBADYZAQA5GQEAOhkBAEcZAQBPGQEAWhkBAJ8ZAQCoGQEAqRkBANgZAQDZGQEA5RkBAP8ZAQBIGgEATxoBAKMaAQCvGgEA+RoBAP8bAQAJHAEACRwBADccAQA3HAEARhwBAE8cAQBtHAEAbxwBAJAcAQCRHAEAqBwBAKgcAQC3HAEA/xwBAAcdAQAHHQEACh0BAAodAQA3HQEAOR0BADsdAQA7HQEAPh0BAD4dAQBIHQEATx0BAFodAQBfHQEAZh0BAGYdAQBpHQEAaR0BAI8dAQCPHQEAkh0BAJIdAQCZHQEAnx0BAKodAQDfHgEA+R4BAK8fAQCxHwEAvx8BAPIfAQD+HwEAmiMBAP8jAQBvJAEAbyQBAHUkAQB/JAEARCUBAI8vAQDzLwEA/y8BAC80AQD/QwEAR0YBAP9nAQA5agEAP2oBAF9qAQBfagEAamoBAG1qAQC/agEAv2oBAMpqAQDPagEA7moBAO9qAQD2agEA/2oBAEZrAQBPawEAWmsBAFprAQBiawEAYmsBAHhrAQB8awEAkGsBAD9uAQCbbgEA/24BAEtvAQBObwEAiG8BAI5vAQCgbwEA328BAOVvAQDvbwEA8m8BAP9vAQD4hwEA/4cBANaMAQD/jAEACY0BAO+vAQD0rwEA9K8BAPyvAQD8rwEA/68BAP+vAQAjsQEAT7EBAFOxAQBjsQEAaLEBAG+xAQD8sgEA/7sBAGu8AQBvvAEAfbwBAH+8AQCJvAEAj7wBAJq8AQCbvAEAoLwBAP/OAQAuzwEAL88BAEfPAQBPzwEAxM8BAP/PAQD20AEA/9ABACfRAQAo0QEAc9EBAHrRAQDr0QEA/9EBAEbSAQDf0gEA9NIBAP/SAQBX0wEAX9MBAHnTAQD/0wEAVdQBAFXUAQCd1AEAndQBAKDUAQCh1AEAo9QBAKTUAQCn1AEAqNQBAK3UAQCt1AEAutQBALrUAQC81AEAvNQBAMTUAQDE1AEABtUBAAbVAQAL1QEADNUBABXVAQAV1QEAHdUBAB3VAQA61QEAOtUBAD/VAQA/1QEARdUBAEXVAQBH1QEASdUBAFHVAQBR1QEAptYBAKfWAQDM1wEAzdcBAIzaAQCa2gEAoNoBAKDaAQCw2gEA/94BAB/fAQD/3wEAB+ABAAfgAQAZ4AEAGuABACLgAQAi4AEAJeABACXgAQAr4AEA/+ABAC3hAQAv4QEAPuEBAD/hAQBK4QEATeEBAFDhAQCP4gEAr+IBAL/iAQD64gEA/uIBAADjAQDf5wEA5+cBAOfnAQDs5wEA7OcBAO/nAQDv5wEA/+cBAP/nAQDF6AEAxugBANfoAQD/6AEATOkBAE/pAQBa6QEAXekBAGDpAQBw7AEAtewBAADtAQA+7QEA/+0BAATuAQAE7gEAIO4BACDuAQAj7gEAI+4BACXuAQAm7gEAKO4BACjuAQAz7gEAM+4BADjuAQA47gEAOu4BADruAQA87gEAQe4BAEPuAQBG7gEASO4BAEjuAQBK7gEASu4BAEzuAQBM7gEAUO4BAFDuAQBT7gEAU+4BAFXuAQBW7gEAWO4BAFjuAQBa7gEAWu4BAFzuAQBc7gEAXu4BAF7uAQBg7gEAYO4BAGPuAQBj7gEAZe4BAGbuAQBr7gEAa+4BAHPuAQBz7gEAeO4BAHjuAQB97gEAfe4BAH/uAQB/7gEAiu4BAIruAQCc7gEAoO4BAKTuAQCk7gEAqu4BAKruAQC87gEA7+4BAPLuAQD/7wEALPABAC/wAQCU8AEAn/ABAK/wAQCw8AEAwPABAMDwAQDQ8AEA0PABAPbwAQD/8AEArvEBAOXxAQAD8gEAD/IBADzyAQA/8gEASfIBAE/yAQBS8gEAX/IBAGbyAQD/8gEA2PYBANz2AQDt9gEA7/YBAP32AQD/9gEAdPcBAH/3AQDZ9wEA3/cBAOz3AQDv9wEA8fcBAP/3AQAM+AEAD/gBAEj4AQBP+AEAWvgBAF/4AQCI+AEAj/gBAK74AQCv+AEAsvgBAP/4AQBU+gEAX/oBAG76AQBv+gEAdfoBAHf6AQB9+gEAf/oBAIf6AQCP+gEArfoBAK/6AQC7+gEAv/oBAMb6AQDP+gEA2voBAN/6AQDo+gEA7/oBAPf6AQD/+gEAk/sBAJP7AQDL+wEA7/sBAPr7AQD//wEA4KYCAP+mAgA5twIAP7cCAB64AgAfuAIAos4CAK/OAgDh6wIA//cCAB76AgD//wIASxMDAP8ADgDwAQ4A//8QAAAAAAADAAAAABQAAH8WAACwGAAA9RgAALAaAQC/GgEAAQAAAKACAQDQAgEAQfDABQvTJKsBAAAnAAAAJwAAAC4AAAAuAAAAOgAAADoAAABeAAAAXgAAAGAAAABgAAAAqAAAAKgAAACtAAAArQAAAK8AAACvAAAAtAAAALQAAAC3AAAAuAAAALACAABvAwAAdAMAAHUDAAB6AwAAegMAAIQDAACFAwAAhwMAAIcDAACDBAAAiQQAAFkFAABZBQAAXwUAAF8FAACRBQAAvQUAAL8FAAC/BQAAwQUAAMIFAADEBQAAxQUAAMcFAADHBQAA9AUAAPQFAAAABgAABQYAABAGAAAaBgAAHAYAABwGAABABgAAQAYAAEsGAABfBgAAcAYAAHAGAADWBgAA3QYAAN8GAADoBgAA6gYAAO0GAAAPBwAADwcAABEHAAARBwAAMAcAAEoHAACmBwAAsAcAAOsHAAD1BwAA+gcAAPoHAAD9BwAA/QcAABYIAAAtCAAAWQgAAFsIAACICAAAiAgAAJAIAACRCAAAmAgAAJ8IAADJCAAAAgkAADoJAAA6CQAAPAkAADwJAABBCQAASAkAAE0JAABNCQAAUQkAAFcJAABiCQAAYwkAAHEJAABxCQAAgQkAAIEJAAC8CQAAvAkAAMEJAADECQAAzQkAAM0JAADiCQAA4wkAAP4JAAD+CQAAAQoAAAIKAAA8CgAAPAoAAEEKAABCCgAARwoAAEgKAABLCgAATQoAAFEKAABRCgAAcAoAAHEKAAB1CgAAdQoAAIEKAACCCgAAvAoAALwKAADBCgAAxQoAAMcKAADICgAAzQoAAM0KAADiCgAA4woAAPoKAAD/CgAAAQsAAAELAAA8CwAAPAsAAD8LAAA/CwAAQQsAAEQLAABNCwAATQsAAFULAABWCwAAYgsAAGMLAACCCwAAggsAAMALAADACwAAzQsAAM0LAAAADAAAAAwAAAQMAAAEDAAAPAwAADwMAAA+DAAAQAwAAEYMAABIDAAASgwAAE0MAABVDAAAVgwAAGIMAABjDAAAgQwAAIEMAAC8DAAAvAwAAL8MAAC/DAAAxgwAAMYMAADMDAAAzQwAAOIMAADjDAAAAA0AAAENAAA7DQAAPA0AAEENAABEDQAATQ0AAE0NAABiDQAAYw0AAIENAACBDQAAyg0AAMoNAADSDQAA1A0AANYNAADWDQAAMQ4AADEOAAA0DgAAOg4AAEYOAABODgAAsQ4AALEOAAC0DgAAvA4AAMYOAADGDgAAyA4AAM0OAAAYDwAAGQ8AADUPAAA1DwAANw8AADcPAAA5DwAAOQ8AAHEPAAB+DwAAgA8AAIQPAACGDwAAhw8AAI0PAACXDwAAmQ8AALwPAADGDwAAxg8AAC0QAAAwEAAAMhAAADcQAAA5EAAAOhAAAD0QAAA+EAAAWBAAAFkQAABeEAAAYBAAAHEQAAB0EAAAghAAAIIQAACFEAAAhhAAAI0QAACNEAAAnRAAAJ0QAAD8EAAA/BAAAF0TAABfEwAAEhcAABQXAAAyFwAAMxcAAFIXAABTFwAAchcAAHMXAAC0FwAAtRcAALcXAAC9FwAAxhcAAMYXAADJFwAA0xcAANcXAADXFwAA3RcAAN0XAAALGAAADxgAAEMYAABDGAAAhRgAAIYYAACpGAAAqRgAACAZAAAiGQAAJxkAACgZAAAyGQAAMhkAADkZAAA7GQAAFxoAABgaAAAbGgAAGxoAAFYaAABWGgAAWBoAAF4aAABgGgAAYBoAAGIaAABiGgAAZRoAAGwaAABzGgAAfBoAAH8aAAB/GgAApxoAAKcaAACwGgAAzhoAAAAbAAADGwAANBsAADQbAAA2GwAAOhsAADwbAAA8GwAAQhsAAEIbAABrGwAAcxsAAIAbAACBGwAAohsAAKUbAACoGwAAqRsAAKsbAACtGwAA5hsAAOYbAADoGwAA6RsAAO0bAADtGwAA7xsAAPEbAAAsHAAAMxwAADYcAAA3HAAAeBwAAH0cAADQHAAA0hwAANQcAADgHAAA4hwAAOgcAADtHAAA7RwAAPQcAAD0HAAA+BwAAPkcAAAsHQAAah0AAHgdAAB4HQAAmx0AAP8dAAC9HwAAvR8AAL8fAADBHwAAzR8AAM8fAADdHwAA3x8AAO0fAADvHwAA/R8AAP4fAAALIAAADyAAABggAAAZIAAAJCAAACQgAAAnIAAAJyAAACogAAAuIAAAYCAAAGQgAABmIAAAbyAAAHEgAABxIAAAfyAAAH8gAACQIAAAnCAAANAgAADwIAAAfCwAAH0sAADvLAAA8SwAAG8tAABvLQAAfy0AAH8tAADgLQAA/y0AAC8uAAAvLgAABTAAAAUwAAAqMAAALTAAADEwAAA1MAAAOzAAADswAACZMAAAnjAAAPwwAAD+MAAAFaAAABWgAAD4pAAA/aQAAAymAAAMpgAAb6YAAHKmAAB0pgAAfaYAAH+mAAB/pgAAnKYAAJ+mAADwpgAA8aYAAACnAAAhpwAAcKcAAHCnAACIpwAAiqcAAPKnAAD0pwAA+KcAAPmnAAACqAAAAqgAAAaoAAAGqAAAC6gAAAuoAAAlqAAAJqgAACyoAAAsqAAAxKgAAMWoAADgqAAA8agAAP+oAAD/qAAAJqkAAC2pAABHqQAAUakAAICpAACCqQAAs6kAALOpAAC2qQAAuakAALypAAC9qQAAz6kAAM+pAADlqQAA5qkAACmqAAAuqgAAMaoAADKqAAA1qgAANqoAAEOqAABDqgAATKoAAEyqAABwqgAAcKoAAHyqAAB8qgAAsKoAALCqAACyqgAAtKoAALeqAAC4qgAAvqoAAL+qAADBqgAAwaoAAN2qAADdqgAA7KoAAO2qAADzqgAA9KoAAPaqAAD2qgAAW6sAAF+rAABpqwAAa6sAAOWrAADlqwAA6KsAAOirAADtqwAA7asAAB77AAAe+wAAsvsAAML7AAAA/gAAD/4AABP+AAAT/gAAIP4AAC/+AABS/gAAUv4AAFX+AABV/gAA//4AAP/+AAAH/wAAB/8AAA7/AAAO/wAAGv8AABr/AAA+/wAAPv8AAED/AABA/wAAcP8AAHD/AACe/wAAn/8AAOP/AADj/wAA+f8AAPv/AAD9AQEA/QEBAOACAQDgAgEAdgMBAHoDAQCABwEAhQcBAIcHAQCwBwEAsgcBALoHAQABCgEAAwoBAAUKAQAGCgEADAoBAA8KAQA4CgEAOgoBAD8KAQA/CgEA5QoBAOYKAQAkDQEAJw0BAKsOAQCsDgEARg8BAFAPAQCCDwEAhQ8BAAEQAQABEAEAOBABAEYQAQBwEAEAcBABAHMQAQB0EAEAfxABAIEQAQCzEAEAthABALkQAQC6EAEAvRABAL0QAQDCEAEAwhABAM0QAQDNEAEAABEBAAIRAQAnEQEAKxEBAC0RAQA0EQEAcxEBAHMRAQCAEQEAgREBALYRAQC+EQEAyREBAMwRAQDPEQEAzxEBAC8SAQAxEgEANBIBADQSAQA2EgEANxIBAD4SAQA+EgEA3xIBAN8SAQDjEgEA6hIBAAATAQABEwEAOxMBADwTAQBAEwEAQBMBAGYTAQBsEwEAcBMBAHQTAQA4FAEAPxQBAEIUAQBEFAEARhQBAEYUAQBeFAEAXhQBALMUAQC4FAEAuhQBALoUAQC/FAEAwBQBAMIUAQDDFAEAshUBALUVAQC8FQEAvRUBAL8VAQDAFQEA3BUBAN0VAQAzFgEAOhYBAD0WAQA9FgEAPxYBAEAWAQCrFgEAqxYBAK0WAQCtFgEAsBYBALUWAQC3FgEAtxYBAB0XAQAfFwEAIhcBACUXAQAnFwEAKxcBAC8YAQA3GAEAORgBADoYAQA7GQEAPBkBAD4ZAQA+GQEAQxkBAEMZAQDUGQEA1xkBANoZAQDbGQEA4BkBAOAZAQABGgEAChoBADMaAQA4GgEAOxoBAD4aAQBHGgEARxoBAFEaAQBWGgEAWRoBAFsaAQCKGgEAlhoBAJgaAQCZGgEAMBwBADYcAQA4HAEAPRwBAD8cAQA/HAEAkhwBAKccAQCqHAEAsBwBALIcAQCzHAEAtRwBALYcAQAxHQEANh0BADodAQA6HQEAPB0BAD0dAQA/HQEARR0BAEcdAQBHHQEAkB0BAJEdAQCVHQEAlR0BAJcdAQCXHQEA8x4BAPQeAQAwNAEAODQBAPBqAQD0agEAMGsBADZrAQBAawEAQ2sBAE9vAQBPbwEAj28BAJ9vAQDgbwEA4W8BAONvAQDkbwEA8K8BAPOvAQD1rwEA+68BAP2vAQD+rwEAnbwBAJ68AQCgvAEAo7wBAADPAQAtzwEAMM8BAEbPAQBn0QEAadEBAHPRAQCC0QEAhdEBAIvRAQCq0QEArdEBAELSAQBE0gEAANoBADbaAQA72gEAbNoBAHXaAQB12gEAhNoBAITaAQCb2gEAn9oBAKHaAQCv2gEAAOABAAbgAQAI4AEAGOABABvgAQAh4AEAI+ABACTgAQAm4AEAKuABADDhAQA94QEAruIBAK7iAQDs4gEA7+IBANDoAQDW6AEAROkBAEvpAQD78wEA//MBAAEADgABAA4AIAAOAH8ADgAAAQ4A7wEOAAAAAACbAAAAQQAAAFoAAABhAAAAegAAAKoAAACqAAAAtQAAALUAAAC6AAAAugAAAMAAAADWAAAA2AAAAPYAAAD4AAAAugEAALwBAAC/AQAAxAEAAJMCAACVAgAAuAIAAMACAADBAgAA4AIAAOQCAABFAwAARQMAAHADAABzAwAAdgMAAHcDAAB6AwAAfQMAAH8DAAB/AwAAhgMAAIYDAACIAwAAigMAAIwDAACMAwAAjgMAAKEDAACjAwAA9QMAAPcDAACBBAAAigQAAC8FAAAxBQAAVgUAAGAFAACIBQAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAA0BAAAPoQAAD9EAAA/xAAAKATAAD1EwAA+BMAAP0TAACAHAAAiBwAAJAcAAC6HAAAvRwAAL8cAAAAHQAAvx0AAAAeAAAVHwAAGB8AAB0fAAAgHwAARR8AAEgfAABNHwAAUB8AAFcfAABZHwAAWR8AAFsfAABbHwAAXR8AAF0fAABfHwAAfR8AAIAfAAC0HwAAth8AALwfAAC+HwAAvh8AAMIfAADEHwAAxh8AAMwfAADQHwAA0x8AANYfAADbHwAA4B8AAOwfAADyHwAA9B8AAPYfAAD8HwAAcSAAAHEgAAB/IAAAfyAAAJAgAACcIAAAAiEAAAIhAAAHIQAAByEAAAohAAATIQAAFSEAABUhAAAZIQAAHSEAACQhAAAkIQAAJiEAACYhAAAoIQAAKCEAACohAAAtIQAALyEAADQhAAA5IQAAOSEAADwhAAA/IQAARSEAAEkhAABOIQAATiEAAGAhAAB/IQAAgyEAAIQhAAC2JAAA6SQAAAAsAADkLAAA6ywAAO4sAADyLAAA8ywAAAAtAAAlLQAAJy0AACctAAAtLQAALS0AAECmAABtpgAAgKYAAJ2mAAAipwAAh6cAAIunAACOpwAAkKcAAMqnAADQpwAA0acAANOnAADTpwAA1acAANmnAAD1pwAA9qcAAPinAAD6pwAAMKsAAFqrAABcqwAAaKsAAHCrAAC/qwAAAPsAAAb7AAAT+wAAF/sAACH/AAA6/wAAQf8AAFr/AAAABAEATwQBALAEAQDTBAEA2AQBAPsEAQBwBQEAegUBAHwFAQCKBQEAjAUBAJIFAQCUBQEAlQUBAJcFAQChBQEAowUBALEFAQCzBQEAuQUBALsFAQC8BQEAgAcBAIAHAQCDBwEAhQcBAIcHAQCwBwEAsgcBALoHAQCADAEAsgwBAMAMAQDyDAEAoBgBAN8YAQBAbgEAf24BAADUAQBU1AEAVtQBAJzUAQCe1AEAn9QBAKLUAQCi1AEApdQBAKbUAQCp1AEArNQBAK7UAQC51AEAu9QBALvUAQC91AEAw9QBAMXUAQAF1QEAB9UBAArVAQAN1QEAFNUBABbVAQAc1QEAHtUBADnVAQA71QEAPtUBAEDVAQBE1QEARtUBAEbVAQBK1QEAUNUBAFLVAQCl1gEAqNYBAMDWAQDC1gEA2tYBANzWAQD61gEA/NYBABTXAQAW1wEANNcBADbXAQBO1wEAUNcBAG7XAQBw1wEAiNcBAIrXAQCo1wEAqtcBAMLXAQDE1wEAy9cBAADfAQAJ3wEAC98BAB7fAQAA6QEAQ+kBADDxAQBJ8QEAUPEBAGnxAQBw8QEAifEBAAAAAAACAAAAMAUBAGMFAQBvBQEAbwUBAEHQ5QULwwEVAAAArQAAAK0AAAAABgAABQYAABwGAAAcBgAA3QYAAN0GAAAPBwAADwcAAJAIAACRCAAA4ggAAOIIAAAOGAAADhgAAAsgAAAPIAAAKiAAAC4gAABgIAAAZCAAAGYgAABvIAAA//4AAP/+AAD5/wAA+/8AAL0QAQC9EAEAzRABAM0QAQAwNAEAODQBAKC8AQCjvAEAc9EBAHrRAQABAA4AAQAOACAADgB/AA4AAAAAAAIAAAAAEQEANBEBADYRAQBHEQEAQaDnBQsiBAAAAACqAAA2qgAAQKoAAE2qAABQqgAAWaoAAFyqAABfqgBB0OcFC/MmbgIAAEEAAABaAAAAtQAAALUAAADAAAAA1gAAANgAAADfAAAAAAEAAAABAAACAQAAAgEAAAQBAAAEAQAABgEAAAYBAAAIAQAACAEAAAoBAAAKAQAADAEAAAwBAAAOAQAADgEAABABAAAQAQAAEgEAABIBAAAUAQAAFAEAABYBAAAWAQAAGAEAABgBAAAaAQAAGgEAABwBAAAcAQAAHgEAAB4BAAAgAQAAIAEAACIBAAAiAQAAJAEAACQBAAAmAQAAJgEAACgBAAAoAQAAKgEAACoBAAAsAQAALAEAAC4BAAAuAQAAMAEAADABAAAyAQAAMgEAADQBAAA0AQAANgEAADYBAAA5AQAAOQEAADsBAAA7AQAAPQEAAD0BAAA/AQAAPwEAAEEBAABBAQAAQwEAAEMBAABFAQAARQEAAEcBAABHAQAASQEAAEoBAABMAQAATAEAAE4BAABOAQAAUAEAAFABAABSAQAAUgEAAFQBAABUAQAAVgEAAFYBAABYAQAAWAEAAFoBAABaAQAAXAEAAFwBAABeAQAAXgEAAGABAABgAQAAYgEAAGIBAABkAQAAZAEAAGYBAABmAQAAaAEAAGgBAABqAQAAagEAAGwBAABsAQAAbgEAAG4BAABwAQAAcAEAAHIBAAByAQAAdAEAAHQBAAB2AQAAdgEAAHgBAAB5AQAAewEAAHsBAAB9AQAAfQEAAH8BAAB/AQAAgQEAAIIBAACEAQAAhAEAAIYBAACHAQAAiQEAAIsBAACOAQAAkQEAAJMBAACUAQAAlgEAAJgBAACcAQAAnQEAAJ8BAACgAQAAogEAAKIBAACkAQAApAEAAKYBAACnAQAAqQEAAKkBAACsAQAArAEAAK4BAACvAQAAsQEAALMBAAC1AQAAtQEAALcBAAC4AQAAvAEAALwBAADEAQAAxQEAAMcBAADIAQAAygEAAMsBAADNAQAAzQEAAM8BAADPAQAA0QEAANEBAADTAQAA0wEAANUBAADVAQAA1wEAANcBAADZAQAA2QEAANsBAADbAQAA3gEAAN4BAADgAQAA4AEAAOIBAADiAQAA5AEAAOQBAADmAQAA5gEAAOgBAADoAQAA6gEAAOoBAADsAQAA7AEAAO4BAADuAQAA8QEAAPIBAAD0AQAA9AEAAPYBAAD4AQAA+gEAAPoBAAD8AQAA/AEAAP4BAAD+AQAAAAIAAAACAAACAgAAAgIAAAQCAAAEAgAABgIAAAYCAAAIAgAACAIAAAoCAAAKAgAADAIAAAwCAAAOAgAADgIAABACAAAQAgAAEgIAABICAAAUAgAAFAIAABYCAAAWAgAAGAIAABgCAAAaAgAAGgIAABwCAAAcAgAAHgIAAB4CAAAgAgAAIAIAACICAAAiAgAAJAIAACQCAAAmAgAAJgIAACgCAAAoAgAAKgIAACoCAAAsAgAALAIAAC4CAAAuAgAAMAIAADACAAAyAgAAMgIAADoCAAA7AgAAPQIAAD4CAABBAgAAQQIAAEMCAABGAgAASAIAAEgCAABKAgAASgIAAEwCAABMAgAATgIAAE4CAABFAwAARQMAAHADAABwAwAAcgMAAHIDAAB2AwAAdgMAAH8DAAB/AwAAhgMAAIYDAACIAwAAigMAAIwDAACMAwAAjgMAAI8DAACRAwAAoQMAAKMDAACrAwAAwgMAAMIDAADPAwAA0QMAANUDAADWAwAA2AMAANgDAADaAwAA2gMAANwDAADcAwAA3gMAAN4DAADgAwAA4AMAAOIDAADiAwAA5AMAAOQDAADmAwAA5gMAAOgDAADoAwAA6gMAAOoDAADsAwAA7AMAAO4DAADuAwAA8AMAAPEDAAD0AwAA9QMAAPcDAAD3AwAA+QMAAPoDAAD9AwAALwQAAGAEAABgBAAAYgQAAGIEAABkBAAAZAQAAGYEAABmBAAAaAQAAGgEAABqBAAAagQAAGwEAABsBAAAbgQAAG4EAABwBAAAcAQAAHIEAAByBAAAdAQAAHQEAAB2BAAAdgQAAHgEAAB4BAAAegQAAHoEAAB8BAAAfAQAAH4EAAB+BAAAgAQAAIAEAACKBAAAigQAAIwEAACMBAAAjgQAAI4EAACQBAAAkAQAAJIEAACSBAAAlAQAAJQEAACWBAAAlgQAAJgEAACYBAAAmgQAAJoEAACcBAAAnAQAAJ4EAACeBAAAoAQAAKAEAACiBAAAogQAAKQEAACkBAAApgQAAKYEAACoBAAAqAQAAKoEAACqBAAArAQAAKwEAACuBAAArgQAALAEAACwBAAAsgQAALIEAAC0BAAAtAQAALYEAAC2BAAAuAQAALgEAAC6BAAAugQAALwEAAC8BAAAvgQAAL4EAADABAAAwQQAAMMEAADDBAAAxQQAAMUEAADHBAAAxwQAAMkEAADJBAAAywQAAMsEAADNBAAAzQQAANAEAADQBAAA0gQAANIEAADUBAAA1AQAANYEAADWBAAA2AQAANgEAADaBAAA2gQAANwEAADcBAAA3gQAAN4EAADgBAAA4AQAAOIEAADiBAAA5AQAAOQEAADmBAAA5gQAAOgEAADoBAAA6gQAAOoEAADsBAAA7AQAAO4EAADuBAAA8AQAAPAEAADyBAAA8gQAAPQEAAD0BAAA9gQAAPYEAAD4BAAA+AQAAPoEAAD6BAAA/AQAAPwEAAD+BAAA/gQAAAAFAAAABQAAAgUAAAIFAAAEBQAABAUAAAYFAAAGBQAACAUAAAgFAAAKBQAACgUAAAwFAAAMBQAADgUAAA4FAAAQBQAAEAUAABIFAAASBQAAFAUAABQFAAAWBQAAFgUAABgFAAAYBQAAGgUAABoFAAAcBQAAHAUAAB4FAAAeBQAAIAUAACAFAAAiBQAAIgUAACQFAAAkBQAAJgUAACYFAAAoBQAAKAUAACoFAAAqBQAALAUAACwFAAAuBQAALgUAADEFAABWBQAAhwUAAIcFAACgEAAAxRAAAMcQAADHEAAAzRAAAM0QAAD4EwAA/RMAAIAcAACIHAAAkBwAALocAAC9HAAAvxwAAAAeAAAAHgAAAh4AAAIeAAAEHgAABB4AAAYeAAAGHgAACB4AAAgeAAAKHgAACh4AAAweAAAMHgAADh4AAA4eAAAQHgAAEB4AABIeAAASHgAAFB4AABQeAAAWHgAAFh4AABgeAAAYHgAAGh4AABoeAAAcHgAAHB4AAB4eAAAeHgAAIB4AACAeAAAiHgAAIh4AACQeAAAkHgAAJh4AACYeAAAoHgAAKB4AACoeAAAqHgAALB4AACweAAAuHgAALh4AADAeAAAwHgAAMh4AADIeAAA0HgAANB4AADYeAAA2HgAAOB4AADgeAAA6HgAAOh4AADweAAA8HgAAPh4AAD4eAABAHgAAQB4AAEIeAABCHgAARB4AAEQeAABGHgAARh4AAEgeAABIHgAASh4AAEoeAABMHgAATB4AAE4eAABOHgAAUB4AAFAeAABSHgAAUh4AAFQeAABUHgAAVh4AAFYeAABYHgAAWB4AAFoeAABaHgAAXB4AAFweAABeHgAAXh4AAGAeAABgHgAAYh4AAGIeAABkHgAAZB4AAGYeAABmHgAAaB4AAGgeAABqHgAAah4AAGweAABsHgAAbh4AAG4eAABwHgAAcB4AAHIeAAByHgAAdB4AAHQeAAB2HgAAdh4AAHgeAAB4HgAAeh4AAHoeAAB8HgAAfB4AAH4eAAB+HgAAgB4AAIAeAACCHgAAgh4AAIQeAACEHgAAhh4AAIYeAACIHgAAiB4AAIoeAACKHgAAjB4AAIweAACOHgAAjh4AAJAeAACQHgAAkh4AAJIeAACUHgAAlB4AAJoeAACbHgAAnh4AAJ4eAACgHgAAoB4AAKIeAACiHgAApB4AAKQeAACmHgAAph4AAKgeAACoHgAAqh4AAKoeAACsHgAArB4AAK4eAACuHgAAsB4AALAeAACyHgAAsh4AALQeAAC0HgAAth4AALYeAAC4HgAAuB4AALoeAAC6HgAAvB4AALweAAC+HgAAvh4AAMAeAADAHgAAwh4AAMIeAADEHgAAxB4AAMYeAADGHgAAyB4AAMgeAADKHgAAyh4AAMweAADMHgAAzh4AAM4eAADQHgAA0B4AANIeAADSHgAA1B4AANQeAADWHgAA1h4AANgeAADYHgAA2h4AANoeAADcHgAA3B4AAN4eAADeHgAA4B4AAOAeAADiHgAA4h4AAOQeAADkHgAA5h4AAOYeAADoHgAA6B4AAOoeAADqHgAA7B4AAOweAADuHgAA7h4AAPAeAADwHgAA8h4AAPIeAAD0HgAA9B4AAPYeAAD2HgAA+B4AAPgeAAD6HgAA+h4AAPweAAD8HgAA/h4AAP4eAAAIHwAADx8AABgfAAAdHwAAKB8AAC8fAAA4HwAAPx8AAEgfAABNHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAF8fAABoHwAAbx8AAIAfAACvHwAAsh8AALQfAAC3HwAAvB8AAMIfAADEHwAAxx8AAMwfAADYHwAA2x8AAOgfAADsHwAA8h8AAPQfAAD3HwAA/B8AACYhAAAmIQAAKiEAACshAAAyIQAAMiEAAGAhAABvIQAAgyEAAIMhAAC2JAAAzyQAAAAsAAAvLAAAYCwAAGAsAABiLAAAZCwAAGcsAABnLAAAaSwAAGksAABrLAAAaywAAG0sAABwLAAAciwAAHIsAAB1LAAAdSwAAH4sAACALAAAgiwAAIIsAACELAAAhCwAAIYsAACGLAAAiCwAAIgsAACKLAAAiiwAAIwsAACMLAAAjiwAAI4sAACQLAAAkCwAAJIsAACSLAAAlCwAAJQsAACWLAAAliwAAJgsAACYLAAAmiwAAJosAACcLAAAnCwAAJ4sAACeLAAAoCwAAKAsAACiLAAAoiwAAKQsAACkLAAApiwAAKYsAACoLAAAqCwAAKosAACqLAAArCwAAKwsAACuLAAAriwAALAsAACwLAAAsiwAALIsAAC0LAAAtCwAALYsAAC2LAAAuCwAALgsAAC6LAAAuiwAALwsAAC8LAAAviwAAL4sAADALAAAwCwAAMIsAADCLAAAxCwAAMQsAADGLAAAxiwAAMgsAADILAAAyiwAAMosAADMLAAAzCwAAM4sAADOLAAA0CwAANAsAADSLAAA0iwAANQsAADULAAA1iwAANYsAADYLAAA2CwAANosAADaLAAA3CwAANwsAADeLAAA3iwAAOAsAADgLAAA4iwAAOIsAADrLAAA6ywAAO0sAADtLAAA8iwAAPIsAABApgAAQKYAAEKmAABCpgAARKYAAESmAABGpgAARqYAAEimAABIpgAASqYAAEqmAABMpgAATKYAAE6mAABOpgAAUKYAAFCmAABSpgAAUqYAAFSmAABUpgAAVqYAAFamAABYpgAAWKYAAFqmAABapgAAXKYAAFymAABepgAAXqYAAGCmAABgpgAAYqYAAGKmAABkpgAAZKYAAGamAABmpgAAaKYAAGimAABqpgAAaqYAAGymAABspgAAgKYAAICmAACCpgAAgqYAAISmAACEpgAAhqYAAIamAACIpgAAiKYAAIqmAACKpgAAjKYAAIymAACOpgAAjqYAAJCmAACQpgAAkqYAAJKmAACUpgAAlKYAAJamAACWpgAAmKYAAJimAACapgAAmqYAACKnAAAipwAAJKcAACSnAAAmpwAAJqcAACinAAAopwAAKqcAACqnAAAspwAALKcAAC6nAAAupwAAMqcAADKnAAA0pwAANKcAADanAAA2pwAAOKcAADinAAA6pwAAOqcAADynAAA8pwAAPqcAAD6nAABApwAAQKcAAEKnAABCpwAARKcAAESnAABGpwAARqcAAEinAABIpwAASqcAAEqnAABMpwAATKcAAE6nAABOpwAAUKcAAFCnAABSpwAAUqcAAFSnAABUpwAAVqcAAFanAABYpwAAWKcAAFqnAABapwAAXKcAAFynAABepwAAXqcAAGCnAABgpwAAYqcAAGKnAABkpwAAZKcAAGanAABmpwAAaKcAAGinAABqpwAAaqcAAGynAABspwAAbqcAAG6nAAB5pwAAeacAAHunAAB7pwAAfacAAH6nAACApwAAgKcAAIKnAACCpwAAhKcAAISnAACGpwAAhqcAAIunAACLpwAAjacAAI2nAACQpwAAkKcAAJKnAACSpwAAlqcAAJanAACYpwAAmKcAAJqnAACapwAAnKcAAJynAACepwAAnqcAAKCnAACgpwAAoqcAAKKnAACkpwAApKcAAKanAACmpwAAqKcAAKinAACqpwAArqcAALCnAAC0pwAAtqcAALanAAC4pwAAuKcAALqnAAC6pwAAvKcAALynAAC+pwAAvqcAAMCnAADApwAAwqcAAMKnAADEpwAAx6cAAMmnAADJpwAA0KcAANCnAADWpwAA1qcAANinAADYpwAA9acAAPWnAABwqwAAv6sAAAD7AAAG+wAAE/sAABf7AAAh/wAAOv8AAAAEAQAnBAEAsAQBANMEAQBwBQEAegUBAHwFAQCKBQEAjAUBAJIFAQCUBQEAlQUBAIAMAQCyDAEAoBgBAL8YAQBAbgEAX24BAADpAQAh6QEAQdCOBgvDVYMAAABBAAAAWgAAAGEAAAB6AAAAtQAAALUAAADAAAAA1gAAANgAAAD2AAAA+AAAADcBAAA5AQAAjAEAAI4BAACaAQAAnAEAAKkBAACsAQAAuQEAALwBAAC9AQAAvwEAAL8BAADEAQAAIAIAACICAAAzAgAAOgIAAFQCAABWAgAAVwIAAFkCAABZAgAAWwIAAFwCAABgAgAAYQIAAGMCAABjAgAAZQIAAGYCAABoAgAAbAIAAG8CAABvAgAAcQIAAHICAAB1AgAAdQIAAH0CAAB9AgAAgAIAAIACAACCAgAAgwIAAIcCAACMAgAAkgIAAJICAACdAgAAngIAAEUDAABFAwAAcAMAAHMDAAB2AwAAdwMAAHsDAAB9AwAAfwMAAH8DAACGAwAAhgMAAIgDAACKAwAAjAMAAIwDAACOAwAAoQMAAKMDAADRAwAA1QMAAPUDAAD3AwAA+wMAAP0DAACBBAAAigQAAC8FAAAxBQAAVgUAAGEFAACHBQAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAA0BAAAPoQAAD9EAAA/xAAAKATAAD1EwAA+BMAAP0TAACAHAAAiBwAAJAcAAC6HAAAvRwAAL8cAAB5HQAAeR0AAH0dAAB9HQAAjh0AAI4dAAAAHgAAmx4AAJ4eAACeHgAAoB4AABUfAAAYHwAAHR8AACAfAABFHwAASB8AAE0fAABQHwAAVx8AAFkfAABZHwAAWx8AAFsfAABdHwAAXR8AAF8fAAB9HwAAgB8AALQfAAC2HwAAvB8AAL4fAAC+HwAAwh8AAMQfAADGHwAAzB8AANAfAADTHwAA1h8AANsfAADgHwAA7B8AAPIfAAD0HwAA9h8AAPwfAAAmIQAAJiEAACohAAArIQAAMiEAADIhAABOIQAATiEAAGAhAAB/IQAAgyEAAIQhAAC2JAAA6SQAAAAsAABwLAAAciwAAHMsAAB1LAAAdiwAAH4sAADjLAAA6ywAAO4sAADyLAAA8ywAAAAtAAAlLQAAJy0AACctAAAtLQAALS0AAECmAABtpgAAgKYAAJumAAAipwAAL6cAADKnAABvpwAAeacAAIenAACLpwAAjacAAJCnAACUpwAAlqcAAK6nAACwpwAAyqcAANCnAADRpwAA1qcAANmnAAD1pwAA9qcAAFOrAABTqwAAcKsAAL+rAAAA+wAABvsAABP7AAAX+wAAIf8AADr/AABB/wAAWv8AAAAEAQBPBAEAsAQBANMEAQDYBAEA+wQBAHAFAQB6BQEAfAUBAIoFAQCMBQEAkgUBAJQFAQCVBQEAlwUBAKEFAQCjBQEAsQUBALMFAQC5BQEAuwUBALwFAQCADAEAsgwBAMAMAQDyDAEAoBgBAN8YAQBAbgEAf24BAADpAQBD6QEAAAAAAGECAABBAAAAWgAAAMAAAADWAAAA2AAAAN4AAAAAAQAAAAEAAAIBAAACAQAABAEAAAQBAAAGAQAABgEAAAgBAAAIAQAACgEAAAoBAAAMAQAADAEAAA4BAAAOAQAAEAEAABABAAASAQAAEgEAABQBAAAUAQAAFgEAABYBAAAYAQAAGAEAABoBAAAaAQAAHAEAABwBAAAeAQAAHgEAACABAAAgAQAAIgEAACIBAAAkAQAAJAEAACYBAAAmAQAAKAEAACgBAAAqAQAAKgEAACwBAAAsAQAALgEAAC4BAAAwAQAAMAEAADIBAAAyAQAANAEAADQBAAA2AQAANgEAADkBAAA5AQAAOwEAADsBAAA9AQAAPQEAAD8BAAA/AQAAQQEAAEEBAABDAQAAQwEAAEUBAABFAQAARwEAAEcBAABKAQAASgEAAEwBAABMAQAATgEAAE4BAABQAQAAUAEAAFIBAABSAQAAVAEAAFQBAABWAQAAVgEAAFgBAABYAQAAWgEAAFoBAABcAQAAXAEAAF4BAABeAQAAYAEAAGABAABiAQAAYgEAAGQBAABkAQAAZgEAAGYBAABoAQAAaAEAAGoBAABqAQAAbAEAAGwBAABuAQAAbgEAAHABAABwAQAAcgEAAHIBAAB0AQAAdAEAAHYBAAB2AQAAeAEAAHkBAAB7AQAAewEAAH0BAAB9AQAAgQEAAIIBAACEAQAAhAEAAIYBAACHAQAAiQEAAIsBAACOAQAAkQEAAJMBAACUAQAAlgEAAJgBAACcAQAAnQEAAJ8BAACgAQAAogEAAKIBAACkAQAApAEAAKYBAACnAQAAqQEAAKkBAACsAQAArAEAAK4BAACvAQAAsQEAALMBAAC1AQAAtQEAALcBAAC4AQAAvAEAALwBAADEAQAAxQEAAMcBAADIAQAAygEAAMsBAADNAQAAzQEAAM8BAADPAQAA0QEAANEBAADTAQAA0wEAANUBAADVAQAA1wEAANcBAADZAQAA2QEAANsBAADbAQAA3gEAAN4BAADgAQAA4AEAAOIBAADiAQAA5AEAAOQBAADmAQAA5gEAAOgBAADoAQAA6gEAAOoBAADsAQAA7AEAAO4BAADuAQAA8QEAAPIBAAD0AQAA9AEAAPYBAAD4AQAA+gEAAPoBAAD8AQAA/AEAAP4BAAD+AQAAAAIAAAACAAACAgAAAgIAAAQCAAAEAgAABgIAAAYCAAAIAgAACAIAAAoCAAAKAgAADAIAAAwCAAAOAgAADgIAABACAAAQAgAAEgIAABICAAAUAgAAFAIAABYCAAAWAgAAGAIAABgCAAAaAgAAGgIAABwCAAAcAgAAHgIAAB4CAAAgAgAAIAIAACICAAAiAgAAJAIAACQCAAAmAgAAJgIAACgCAAAoAgAAKgIAACoCAAAsAgAALAIAAC4CAAAuAgAAMAIAADACAAAyAgAAMgIAADoCAAA7AgAAPQIAAD4CAABBAgAAQQIAAEMCAABGAgAASAIAAEgCAABKAgAASgIAAEwCAABMAgAATgIAAE4CAABwAwAAcAMAAHIDAAByAwAAdgMAAHYDAAB/AwAAfwMAAIYDAACGAwAAiAMAAIoDAACMAwAAjAMAAI4DAACPAwAAkQMAAKEDAACjAwAAqwMAAM8DAADPAwAA2AMAANgDAADaAwAA2gMAANwDAADcAwAA3gMAAN4DAADgAwAA4AMAAOIDAADiAwAA5AMAAOQDAADmAwAA5gMAAOgDAADoAwAA6gMAAOoDAADsAwAA7AMAAO4DAADuAwAA9AMAAPQDAAD3AwAA9wMAAPkDAAD6AwAA/QMAAC8EAABgBAAAYAQAAGIEAABiBAAAZAQAAGQEAABmBAAAZgQAAGgEAABoBAAAagQAAGoEAABsBAAAbAQAAG4EAABuBAAAcAQAAHAEAAByBAAAcgQAAHQEAAB0BAAAdgQAAHYEAAB4BAAAeAQAAHoEAAB6BAAAfAQAAHwEAAB+BAAAfgQAAIAEAACABAAAigQAAIoEAACMBAAAjAQAAI4EAACOBAAAkAQAAJAEAACSBAAAkgQAAJQEAACUBAAAlgQAAJYEAACYBAAAmAQAAJoEAACaBAAAnAQAAJwEAACeBAAAngQAAKAEAACgBAAAogQAAKIEAACkBAAApAQAAKYEAACmBAAAqAQAAKgEAACqBAAAqgQAAKwEAACsBAAArgQAAK4EAACwBAAAsAQAALIEAACyBAAAtAQAALQEAAC2BAAAtgQAALgEAAC4BAAAugQAALoEAAC8BAAAvAQAAL4EAAC+BAAAwAQAAMEEAADDBAAAwwQAAMUEAADFBAAAxwQAAMcEAADJBAAAyQQAAMsEAADLBAAAzQQAAM0EAADQBAAA0AQAANIEAADSBAAA1AQAANQEAADWBAAA1gQAANgEAADYBAAA2gQAANoEAADcBAAA3AQAAN4EAADeBAAA4AQAAOAEAADiBAAA4gQAAOQEAADkBAAA5gQAAOYEAADoBAAA6AQAAOoEAADqBAAA7AQAAOwEAADuBAAA7gQAAPAEAADwBAAA8gQAAPIEAAD0BAAA9AQAAPYEAAD2BAAA+AQAAPgEAAD6BAAA+gQAAPwEAAD8BAAA/gQAAP4EAAAABQAAAAUAAAIFAAACBQAABAUAAAQFAAAGBQAABgUAAAgFAAAIBQAACgUAAAoFAAAMBQAADAUAAA4FAAAOBQAAEAUAABAFAAASBQAAEgUAABQFAAAUBQAAFgUAABYFAAAYBQAAGAUAABoFAAAaBQAAHAUAABwFAAAeBQAAHgUAACAFAAAgBQAAIgUAACIFAAAkBQAAJAUAACYFAAAmBQAAKAUAACgFAAAqBQAAKgUAACwFAAAsBQAALgUAAC4FAAAxBQAAVgUAAKAQAADFEAAAxxAAAMcQAADNEAAAzRAAAKATAAD1EwAAkBwAALocAAC9HAAAvxwAAAAeAAAAHgAAAh4AAAIeAAAEHgAABB4AAAYeAAAGHgAACB4AAAgeAAAKHgAACh4AAAweAAAMHgAADh4AAA4eAAAQHgAAEB4AABIeAAASHgAAFB4AABQeAAAWHgAAFh4AABgeAAAYHgAAGh4AABoeAAAcHgAAHB4AAB4eAAAeHgAAIB4AACAeAAAiHgAAIh4AACQeAAAkHgAAJh4AACYeAAAoHgAAKB4AACoeAAAqHgAALB4AACweAAAuHgAALh4AADAeAAAwHgAAMh4AADIeAAA0HgAANB4AADYeAAA2HgAAOB4AADgeAAA6HgAAOh4AADweAAA8HgAAPh4AAD4eAABAHgAAQB4AAEIeAABCHgAARB4AAEQeAABGHgAARh4AAEgeAABIHgAASh4AAEoeAABMHgAATB4AAE4eAABOHgAAUB4AAFAeAABSHgAAUh4AAFQeAABUHgAAVh4AAFYeAABYHgAAWB4AAFoeAABaHgAAXB4AAFweAABeHgAAXh4AAGAeAABgHgAAYh4AAGIeAABkHgAAZB4AAGYeAABmHgAAaB4AAGgeAABqHgAAah4AAGweAABsHgAAbh4AAG4eAABwHgAAcB4AAHIeAAByHgAAdB4AAHQeAAB2HgAAdh4AAHgeAAB4HgAAeh4AAHoeAAB8HgAAfB4AAH4eAAB+HgAAgB4AAIAeAACCHgAAgh4AAIQeAACEHgAAhh4AAIYeAACIHgAAiB4AAIoeAACKHgAAjB4AAIweAACOHgAAjh4AAJAeAACQHgAAkh4AAJIeAACUHgAAlB4AAJ4eAACeHgAAoB4AAKAeAACiHgAAoh4AAKQeAACkHgAAph4AAKYeAACoHgAAqB4AAKoeAACqHgAArB4AAKweAACuHgAArh4AALAeAACwHgAAsh4AALIeAAC0HgAAtB4AALYeAAC2HgAAuB4AALgeAAC6HgAAuh4AALweAAC8HgAAvh4AAL4eAADAHgAAwB4AAMIeAADCHgAAxB4AAMQeAADGHgAAxh4AAMgeAADIHgAAyh4AAMoeAADMHgAAzB4AAM4eAADOHgAA0B4AANAeAADSHgAA0h4AANQeAADUHgAA1h4AANYeAADYHgAA2B4AANoeAADaHgAA3B4AANweAADeHgAA3h4AAOAeAADgHgAA4h4AAOIeAADkHgAA5B4AAOYeAADmHgAA6B4AAOgeAADqHgAA6h4AAOweAADsHgAA7h4AAO4eAADwHgAA8B4AAPIeAADyHgAA9B4AAPQeAAD2HgAA9h4AAPgeAAD4HgAA+h4AAPoeAAD8HgAA/B4AAP4eAAD+HgAACB8AAA8fAAAYHwAAHR8AACgfAAAvHwAAOB8AAD8fAABIHwAATR8AAFkfAABZHwAAWx8AAFsfAABdHwAAXR8AAF8fAABfHwAAaB8AAG8fAACIHwAAjx8AAJgfAACfHwAAqB8AAK8fAAC4HwAAvB8AAMgfAADMHwAA2B8AANsfAADoHwAA7B8AAPgfAAD8HwAAJiEAACYhAAAqIQAAKyEAADIhAAAyIQAAYCEAAG8hAACDIQAAgyEAALYkAADPJAAAACwAAC8sAABgLAAAYCwAAGIsAABkLAAAZywAAGcsAABpLAAAaSwAAGssAABrLAAAbSwAAHAsAAByLAAAciwAAHUsAAB1LAAAfiwAAIAsAACCLAAAgiwAAIQsAACELAAAhiwAAIYsAACILAAAiCwAAIosAACKLAAAjCwAAIwsAACOLAAAjiwAAJAsAACQLAAAkiwAAJIsAACULAAAlCwAAJYsAACWLAAAmCwAAJgsAACaLAAAmiwAAJwsAACcLAAAniwAAJ4sAACgLAAAoCwAAKIsAACiLAAApCwAAKQsAACmLAAApiwAAKgsAACoLAAAqiwAAKosAACsLAAArCwAAK4sAACuLAAAsCwAALAsAACyLAAAsiwAALQsAAC0LAAAtiwAALYsAAC4LAAAuCwAALosAAC6LAAAvCwAALwsAAC+LAAAviwAAMAsAADALAAAwiwAAMIsAADELAAAxCwAAMYsAADGLAAAyCwAAMgsAADKLAAAyiwAAMwsAADMLAAAziwAAM4sAADQLAAA0CwAANIsAADSLAAA1CwAANQsAADWLAAA1iwAANgsAADYLAAA2iwAANosAADcLAAA3CwAAN4sAADeLAAA4CwAAOAsAADiLAAA4iwAAOssAADrLAAA7SwAAO0sAADyLAAA8iwAAECmAABApgAAQqYAAEKmAABEpgAARKYAAEamAABGpgAASKYAAEimAABKpgAASqYAAEymAABMpgAATqYAAE6mAABQpgAAUKYAAFKmAABSpgAAVKYAAFSmAABWpgAAVqYAAFimAABYpgAAWqYAAFqmAABcpgAAXKYAAF6mAABepgAAYKYAAGCmAABipgAAYqYAAGSmAABkpgAAZqYAAGamAABopgAAaKYAAGqmAABqpgAAbKYAAGymAACApgAAgKYAAIKmAACCpgAAhKYAAISmAACGpgAAhqYAAIimAACIpgAAiqYAAIqmAACMpgAAjKYAAI6mAACOpgAAkKYAAJCmAACSpgAAkqYAAJSmAACUpgAAlqYAAJamAACYpgAAmKYAAJqmAACapgAAIqcAACKnAAAkpwAAJKcAACanAAAmpwAAKKcAACinAAAqpwAAKqcAACynAAAspwAALqcAAC6nAAAypwAAMqcAADSnAAA0pwAANqcAADanAAA4pwAAOKcAADqnAAA6pwAAPKcAADynAAA+pwAAPqcAAECnAABApwAAQqcAAEKnAABEpwAARKcAAEanAABGpwAASKcAAEinAABKpwAASqcAAEynAABMpwAATqcAAE6nAABQpwAAUKcAAFKnAABSpwAAVKcAAFSnAABWpwAAVqcAAFinAABYpwAAWqcAAFqnAABcpwAAXKcAAF6nAABepwAAYKcAAGCnAABipwAAYqcAAGSnAABkpwAAZqcAAGanAABopwAAaKcAAGqnAABqpwAAbKcAAGynAABupwAAbqcAAHmnAAB5pwAAe6cAAHunAAB9pwAAfqcAAICnAACApwAAgqcAAIKnAACEpwAAhKcAAIanAACGpwAAi6cAAIunAACNpwAAjacAAJCnAACQpwAAkqcAAJKnAACWpwAAlqcAAJinAACYpwAAmqcAAJqnAACcpwAAnKcAAJ6nAACepwAAoKcAAKCnAACipwAAoqcAAKSnAACkpwAApqcAAKanAACopwAAqKcAAKqnAACupwAAsKcAALSnAAC2pwAAtqcAALinAAC4pwAAuqcAALqnAAC8pwAAvKcAAL6nAAC+pwAAwKcAAMCnAADCpwAAwqcAAMSnAADHpwAAyacAAMmnAADQpwAA0KcAANanAADWpwAA2KcAANinAAD1pwAA9acAACH/AAA6/wAAAAQBACcEAQCwBAEA0wQBAHAFAQB6BQEAfAUBAIoFAQCMBQEAkgUBAJQFAQCVBQEAgAwBALIMAQCgGAEAvxgBAEBuAQBfbgEAAOkBACHpAQAAAAAAcgIAAGEAAAB6AAAAtQAAALUAAADfAAAA9gAAAPgAAAD/AAAAAQEAAAEBAAADAQAAAwEAAAUBAAAFAQAABwEAAAcBAAAJAQAACQEAAAsBAAALAQAADQEAAA0BAAAPAQAADwEAABEBAAARAQAAEwEAABMBAAAVAQAAFQEAABcBAAAXAQAAGQEAABkBAAAbAQAAGwEAAB0BAAAdAQAAHwEAAB8BAAAhAQAAIQEAACMBAAAjAQAAJQEAACUBAAAnAQAAJwEAACkBAAApAQAAKwEAACsBAAAtAQAALQEAAC8BAAAvAQAAMQEAADEBAAAzAQAAMwEAADUBAAA1AQAANwEAADcBAAA6AQAAOgEAADwBAAA8AQAAPgEAAD4BAABAAQAAQAEAAEIBAABCAQAARAEAAEQBAABGAQAARgEAAEgBAABJAQAASwEAAEsBAABNAQAATQEAAE8BAABPAQAAUQEAAFEBAABTAQAAUwEAAFUBAABVAQAAVwEAAFcBAABZAQAAWQEAAFsBAABbAQAAXQEAAF0BAABfAQAAXwEAAGEBAABhAQAAYwEAAGMBAABlAQAAZQEAAGcBAABnAQAAaQEAAGkBAABrAQAAawEAAG0BAABtAQAAbwEAAG8BAABxAQAAcQEAAHMBAABzAQAAdQEAAHUBAAB3AQAAdwEAAHoBAAB6AQAAfAEAAHwBAAB+AQAAgAEAAIMBAACDAQAAhQEAAIUBAACIAQAAiAEAAIwBAACMAQAAkgEAAJIBAACVAQAAlQEAAJkBAACaAQAAngEAAJ4BAAChAQAAoQEAAKMBAACjAQAApQEAAKUBAACoAQAAqAEAAK0BAACtAQAAsAEAALABAAC0AQAAtAEAALYBAAC2AQAAuQEAALkBAAC9AQAAvQEAAL8BAAC/AQAAxAEAAMQBAADGAQAAxwEAAMkBAADKAQAAzAEAAMwBAADOAQAAzgEAANABAADQAQAA0gEAANIBAADUAQAA1AEAANYBAADWAQAA2AEAANgBAADaAQAA2gEAANwBAADdAQAA3wEAAN8BAADhAQAA4QEAAOMBAADjAQAA5QEAAOUBAADnAQAA5wEAAOkBAADpAQAA6wEAAOsBAADtAQAA7QEAAO8BAADxAQAA8wEAAPMBAAD1AQAA9QEAAPkBAAD5AQAA+wEAAPsBAAD9AQAA/QEAAP8BAAD/AQAAAQIAAAECAAADAgAAAwIAAAUCAAAFAgAABwIAAAcCAAAJAgAACQIAAAsCAAALAgAADQIAAA0CAAAPAgAADwIAABECAAARAgAAEwIAABMCAAAVAgAAFQIAABcCAAAXAgAAGQIAABkCAAAbAgAAGwIAAB0CAAAdAgAAHwIAAB8CAAAjAgAAIwIAACUCAAAlAgAAJwIAACcCAAApAgAAKQIAACsCAAArAgAALQIAAC0CAAAvAgAALwIAADECAAAxAgAAMwIAADMCAAA8AgAAPAIAAD8CAABAAgAAQgIAAEICAABHAgAARwIAAEkCAABJAgAASwIAAEsCAABNAgAATQIAAE8CAABUAgAAVgIAAFcCAABZAgAAWQIAAFsCAABcAgAAYAIAAGECAABjAgAAYwIAAGUCAABmAgAAaAIAAGwCAABvAgAAbwIAAHECAAByAgAAdQIAAHUCAAB9AgAAfQIAAIACAACAAgAAggIAAIMCAACHAgAAjAIAAJICAACSAgAAnQIAAJ4CAABFAwAARQMAAHEDAABxAwAAcwMAAHMDAAB3AwAAdwMAAHsDAAB9AwAAkAMAAJADAACsAwAAzgMAANADAADRAwAA1QMAANcDAADZAwAA2QMAANsDAADbAwAA3QMAAN0DAADfAwAA3wMAAOEDAADhAwAA4wMAAOMDAADlAwAA5QMAAOcDAADnAwAA6QMAAOkDAADrAwAA6wMAAO0DAADtAwAA7wMAAPMDAAD1AwAA9QMAAPgDAAD4AwAA+wMAAPsDAAAwBAAAXwQAAGEEAABhBAAAYwQAAGMEAABlBAAAZQQAAGcEAABnBAAAaQQAAGkEAABrBAAAawQAAG0EAABtBAAAbwQAAG8EAABxBAAAcQQAAHMEAABzBAAAdQQAAHUEAAB3BAAAdwQAAHkEAAB5BAAAewQAAHsEAAB9BAAAfQQAAH8EAAB/BAAAgQQAAIEEAACLBAAAiwQAAI0EAACNBAAAjwQAAI8EAACRBAAAkQQAAJMEAACTBAAAlQQAAJUEAACXBAAAlwQAAJkEAACZBAAAmwQAAJsEAACdBAAAnQQAAJ8EAACfBAAAoQQAAKEEAACjBAAAowQAAKUEAAClBAAApwQAAKcEAACpBAAAqQQAAKsEAACrBAAArQQAAK0EAACvBAAArwQAALEEAACxBAAAswQAALMEAAC1BAAAtQQAALcEAAC3BAAAuQQAALkEAAC7BAAAuwQAAL0EAAC9BAAAvwQAAL8EAADCBAAAwgQAAMQEAADEBAAAxgQAAMYEAADIBAAAyAQAAMoEAADKBAAAzAQAAMwEAADOBAAAzwQAANEEAADRBAAA0wQAANMEAADVBAAA1QQAANcEAADXBAAA2QQAANkEAADbBAAA2wQAAN0EAADdBAAA3wQAAN8EAADhBAAA4QQAAOMEAADjBAAA5QQAAOUEAADnBAAA5wQAAOkEAADpBAAA6wQAAOsEAADtBAAA7QQAAO8EAADvBAAA8QQAAPEEAADzBAAA8wQAAPUEAAD1BAAA9wQAAPcEAAD5BAAA+QQAAPsEAAD7BAAA/QQAAP0EAAD/BAAA/wQAAAEFAAABBQAAAwUAAAMFAAAFBQAABQUAAAcFAAAHBQAACQUAAAkFAAALBQAACwUAAA0FAAANBQAADwUAAA8FAAARBQAAEQUAABMFAAATBQAAFQUAABUFAAAXBQAAFwUAABkFAAAZBQAAGwUAABsFAAAdBQAAHQUAAB8FAAAfBQAAIQUAACEFAAAjBQAAIwUAACUFAAAlBQAAJwUAACcFAAApBQAAKQUAACsFAAArBQAALQUAAC0FAAAvBQAALwUAAGEFAACHBQAA+BMAAP0TAACAHAAAiBwAAHkdAAB5HQAAfR0AAH0dAACOHQAAjh0AAAEeAAABHgAAAx4AAAMeAAAFHgAABR4AAAceAAAHHgAACR4AAAkeAAALHgAACx4AAA0eAAANHgAADx4AAA8eAAARHgAAER4AABMeAAATHgAAFR4AABUeAAAXHgAAFx4AABkeAAAZHgAAGx4AABseAAAdHgAAHR4AAB8eAAAfHgAAIR4AACEeAAAjHgAAIx4AACUeAAAlHgAAJx4AACceAAApHgAAKR4AACseAAArHgAALR4AAC0eAAAvHgAALx4AADEeAAAxHgAAMx4AADMeAAA1HgAANR4AADceAAA3HgAAOR4AADkeAAA7HgAAOx4AAD0eAAA9HgAAPx4AAD8eAABBHgAAQR4AAEMeAABDHgAARR4AAEUeAABHHgAARx4AAEkeAABJHgAASx4AAEseAABNHgAATR4AAE8eAABPHgAAUR4AAFEeAABTHgAAUx4AAFUeAABVHgAAVx4AAFceAABZHgAAWR4AAFseAABbHgAAXR4AAF0eAABfHgAAXx4AAGEeAABhHgAAYx4AAGMeAABlHgAAZR4AAGceAABnHgAAaR4AAGkeAABrHgAAax4AAG0eAABtHgAAbx4AAG8eAABxHgAAcR4AAHMeAABzHgAAdR4AAHUeAAB3HgAAdx4AAHkeAAB5HgAAex4AAHseAAB9HgAAfR4AAH8eAAB/HgAAgR4AAIEeAACDHgAAgx4AAIUeAACFHgAAhx4AAIceAACJHgAAiR4AAIseAACLHgAAjR4AAI0eAACPHgAAjx4AAJEeAACRHgAAkx4AAJMeAACVHgAAmx4AAKEeAAChHgAAox4AAKMeAAClHgAApR4AAKceAACnHgAAqR4AAKkeAACrHgAAqx4AAK0eAACtHgAArx4AAK8eAACxHgAAsR4AALMeAACzHgAAtR4AALUeAAC3HgAAtx4AALkeAAC5HgAAux4AALseAAC9HgAAvR4AAL8eAAC/HgAAwR4AAMEeAADDHgAAwx4AAMUeAADFHgAAxx4AAMceAADJHgAAyR4AAMseAADLHgAAzR4AAM0eAADPHgAAzx4AANEeAADRHgAA0x4AANMeAADVHgAA1R4AANceAADXHgAA2R4AANkeAADbHgAA2x4AAN0eAADdHgAA3x4AAN8eAADhHgAA4R4AAOMeAADjHgAA5R4AAOUeAADnHgAA5x4AAOkeAADpHgAA6x4AAOseAADtHgAA7R4AAO8eAADvHgAA8R4AAPEeAADzHgAA8x4AAPUeAAD1HgAA9x4AAPceAAD5HgAA+R4AAPseAAD7HgAA/R4AAP0eAAD/HgAABx8AABAfAAAVHwAAIB8AACcfAAAwHwAANx8AAEAfAABFHwAAUB8AAFcfAABgHwAAZx8AAHAfAAB9HwAAgB8AAIcfAACQHwAAlx8AAKAfAACnHwAAsB8AALQfAAC2HwAAtx8AAL4fAAC+HwAAwh8AAMQfAADGHwAAxx8AANAfAADTHwAA1h8AANcfAADgHwAA5x8AAPIfAAD0HwAA9h8AAPcfAABOIQAATiEAAHAhAAB/IQAAhCEAAIQhAADQJAAA6SQAADAsAABfLAAAYSwAAGEsAABlLAAAZiwAAGgsAABoLAAAaiwAAGosAABsLAAAbCwAAHMsAABzLAAAdiwAAHYsAACBLAAAgSwAAIMsAACDLAAAhSwAAIUsAACHLAAAhywAAIksAACJLAAAiywAAIssAACNLAAAjSwAAI8sAACPLAAAkSwAAJEsAACTLAAAkywAAJUsAACVLAAAlywAAJcsAACZLAAAmSwAAJssAACbLAAAnSwAAJ0sAACfLAAAnywAAKEsAAChLAAAoywAAKMsAAClLAAApSwAAKcsAACnLAAAqSwAAKksAACrLAAAqywAAK0sAACtLAAArywAAK8sAACxLAAAsSwAALMsAACzLAAAtSwAALUsAAC3LAAAtywAALksAAC5LAAAuywAALssAAC9LAAAvSwAAL8sAAC/LAAAwSwAAMEsAADDLAAAwywAAMUsAADFLAAAxywAAMcsAADJLAAAySwAAMssAADLLAAAzSwAAM0sAADPLAAAzywAANEsAADRLAAA0ywAANMsAADVLAAA1SwAANcsAADXLAAA2SwAANksAADbLAAA2ywAAN0sAADdLAAA3ywAAN8sAADhLAAA4SwAAOMsAADjLAAA7CwAAOwsAADuLAAA7iwAAPMsAADzLAAAAC0AACUtAAAnLQAAJy0AAC0tAAAtLQAAQaYAAEGmAABDpgAAQ6YAAEWmAABFpgAAR6YAAEemAABJpgAASaYAAEumAABLpgAATaYAAE2mAABPpgAAT6YAAFGmAABRpgAAU6YAAFOmAABVpgAAVaYAAFemAABXpgAAWaYAAFmmAABbpgAAW6YAAF2mAABdpgAAX6YAAF+mAABhpgAAYaYAAGOmAABjpgAAZaYAAGWmAABnpgAAZ6YAAGmmAABppgAAa6YAAGumAABtpgAAbaYAAIGmAACBpgAAg6YAAIOmAACFpgAAhaYAAIemAACHpgAAiaYAAImmAACLpgAAi6YAAI2mAACNpgAAj6YAAI+mAACRpgAAkaYAAJOmAACTpgAAlaYAAJWmAACXpgAAl6YAAJmmAACZpgAAm6YAAJumAAAjpwAAI6cAACWnAAAlpwAAJ6cAACenAAAppwAAKacAACunAAArpwAALacAAC2nAAAvpwAAL6cAADOnAAAzpwAANacAADWnAAA3pwAAN6cAADmnAAA5pwAAO6cAADunAAA9pwAAPacAAD+nAAA/pwAAQacAAEGnAABDpwAAQ6cAAEWnAABFpwAAR6cAAEenAABJpwAASacAAEunAABLpwAATacAAE2nAABPpwAAT6cAAFGnAABRpwAAU6cAAFOnAABVpwAAVacAAFenAABXpwAAWacAAFmnAABbpwAAW6cAAF2nAABdpwAAX6cAAF+nAABhpwAAYacAAGOnAABjpwAAZacAAGWnAABnpwAAZ6cAAGmnAABppwAAa6cAAGunAABtpwAAbacAAG+nAABvpwAAeqcAAHqnAAB8pwAAfKcAAH+nAAB/pwAAgacAAIGnAACDpwAAg6cAAIWnAACFpwAAh6cAAIenAACMpwAAjKcAAJGnAACRpwAAk6cAAJSnAACXpwAAl6cAAJmnAACZpwAAm6cAAJunAACdpwAAnacAAJ+nAACfpwAAoacAAKGnAACjpwAAo6cAAKWnAAClpwAAp6cAAKenAACppwAAqacAALWnAAC1pwAAt6cAALenAAC5pwAAuacAALunAAC7pwAAvacAAL2nAAC/pwAAv6cAAMGnAADBpwAAw6cAAMOnAADIpwAAyKcAAMqnAADKpwAA0acAANGnAADXpwAA16cAANmnAADZpwAA9qcAAPanAABTqwAAU6sAAHCrAAC/qwAAAPsAAAb7AAAT+wAAF/sAAEH/AABa/wAAKAQBAE8EAQDYBAEA+wQBAJcFAQChBQEAowUBALEFAQCzBQEAuQUBALsFAQC8BQEAwAwBAPIMAQDAGAEA3xgBAGBuAQB/bgEAIukBAEPpAQBBoOQGC8cncwIAAGEAAAB6AAAAtQAAALUAAADfAAAA9gAAAPgAAAD/AAAAAQEAAAEBAAADAQAAAwEAAAUBAAAFAQAABwEAAAcBAAAJAQAACQEAAAsBAAALAQAADQEAAA0BAAAPAQAADwEAABEBAAARAQAAEwEAABMBAAAVAQAAFQEAABcBAAAXAQAAGQEAABkBAAAbAQAAGwEAAB0BAAAdAQAAHwEAAB8BAAAhAQAAIQEAACMBAAAjAQAAJQEAACUBAAAnAQAAJwEAACkBAAApAQAAKwEAACsBAAAtAQAALQEAAC8BAAAvAQAAMQEAADEBAAAzAQAAMwEAADUBAAA1AQAANwEAADcBAAA6AQAAOgEAADwBAAA8AQAAPgEAAD4BAABAAQAAQAEAAEIBAABCAQAARAEAAEQBAABGAQAARgEAAEgBAABJAQAASwEAAEsBAABNAQAATQEAAE8BAABPAQAAUQEAAFEBAABTAQAAUwEAAFUBAABVAQAAVwEAAFcBAABZAQAAWQEAAFsBAABbAQAAXQEAAF0BAABfAQAAXwEAAGEBAABhAQAAYwEAAGMBAABlAQAAZQEAAGcBAABnAQAAaQEAAGkBAABrAQAAawEAAG0BAABtAQAAbwEAAG8BAABxAQAAcQEAAHMBAABzAQAAdQEAAHUBAAB3AQAAdwEAAHoBAAB6AQAAfAEAAHwBAAB+AQAAgAEAAIMBAACDAQAAhQEAAIUBAACIAQAAiAEAAIwBAACMAQAAkgEAAJIBAACVAQAAlQEAAJkBAACaAQAAngEAAJ4BAAChAQAAoQEAAKMBAACjAQAApQEAAKUBAACoAQAAqAEAAK0BAACtAQAAsAEAALABAAC0AQAAtAEAALYBAAC2AQAAuQEAALkBAAC9AQAAvQEAAL8BAAC/AQAAxQEAAMYBAADIAQAAyQEAAMsBAADMAQAAzgEAAM4BAADQAQAA0AEAANIBAADSAQAA1AEAANQBAADWAQAA1gEAANgBAADYAQAA2gEAANoBAADcAQAA3QEAAN8BAADfAQAA4QEAAOEBAADjAQAA4wEAAOUBAADlAQAA5wEAAOcBAADpAQAA6QEAAOsBAADrAQAA7QEAAO0BAADvAQAA8AEAAPIBAADzAQAA9QEAAPUBAAD5AQAA+QEAAPsBAAD7AQAA/QEAAP0BAAD/AQAA/wEAAAECAAABAgAAAwIAAAMCAAAFAgAABQIAAAcCAAAHAgAACQIAAAkCAAALAgAACwIAAA0CAAANAgAADwIAAA8CAAARAgAAEQIAABMCAAATAgAAFQIAABUCAAAXAgAAFwIAABkCAAAZAgAAGwIAABsCAAAdAgAAHQIAAB8CAAAfAgAAIwIAACMCAAAlAgAAJQIAACcCAAAnAgAAKQIAACkCAAArAgAAKwIAAC0CAAAtAgAALwIAAC8CAAAxAgAAMQIAADMCAAAzAgAAPAIAADwCAAA/AgAAQAIAAEICAABCAgAARwIAAEcCAABJAgAASQIAAEsCAABLAgAATQIAAE0CAABPAgAAVAIAAFYCAABXAgAAWQIAAFkCAABbAgAAXAIAAGACAABhAgAAYwIAAGMCAABlAgAAZgIAAGgCAABsAgAAbwIAAG8CAABxAgAAcgIAAHUCAAB1AgAAfQIAAH0CAACAAgAAgAIAAIICAACDAgAAhwIAAIwCAACSAgAAkgIAAJ0CAACeAgAARQMAAEUDAABxAwAAcQMAAHMDAABzAwAAdwMAAHcDAAB7AwAAfQMAAJADAACQAwAArAMAAM4DAADQAwAA0QMAANUDAADXAwAA2QMAANkDAADbAwAA2wMAAN0DAADdAwAA3wMAAN8DAADhAwAA4QMAAOMDAADjAwAA5QMAAOUDAADnAwAA5wMAAOkDAADpAwAA6wMAAOsDAADtAwAA7QMAAO8DAADzAwAA9QMAAPUDAAD4AwAA+AMAAPsDAAD7AwAAMAQAAF8EAABhBAAAYQQAAGMEAABjBAAAZQQAAGUEAABnBAAAZwQAAGkEAABpBAAAawQAAGsEAABtBAAAbQQAAG8EAABvBAAAcQQAAHEEAABzBAAAcwQAAHUEAAB1BAAAdwQAAHcEAAB5BAAAeQQAAHsEAAB7BAAAfQQAAH0EAAB/BAAAfwQAAIEEAACBBAAAiwQAAIsEAACNBAAAjQQAAI8EAACPBAAAkQQAAJEEAACTBAAAkwQAAJUEAACVBAAAlwQAAJcEAACZBAAAmQQAAJsEAACbBAAAnQQAAJ0EAACfBAAAnwQAAKEEAAChBAAAowQAAKMEAAClBAAApQQAAKcEAACnBAAAqQQAAKkEAACrBAAAqwQAAK0EAACtBAAArwQAAK8EAACxBAAAsQQAALMEAACzBAAAtQQAALUEAAC3BAAAtwQAALkEAAC5BAAAuwQAALsEAAC9BAAAvQQAAL8EAAC/BAAAwgQAAMIEAADEBAAAxAQAAMYEAADGBAAAyAQAAMgEAADKBAAAygQAAMwEAADMBAAAzgQAAM8EAADRBAAA0QQAANMEAADTBAAA1QQAANUEAADXBAAA1wQAANkEAADZBAAA2wQAANsEAADdBAAA3QQAAN8EAADfBAAA4QQAAOEEAADjBAAA4wQAAOUEAADlBAAA5wQAAOcEAADpBAAA6QQAAOsEAADrBAAA7QQAAO0EAADvBAAA7wQAAPEEAADxBAAA8wQAAPMEAAD1BAAA9QQAAPcEAAD3BAAA+QQAAPkEAAD7BAAA+wQAAP0EAAD9BAAA/wQAAP8EAAABBQAAAQUAAAMFAAADBQAABQUAAAUFAAAHBQAABwUAAAkFAAAJBQAACwUAAAsFAAANBQAADQUAAA8FAAAPBQAAEQUAABEFAAATBQAAEwUAABUFAAAVBQAAFwUAABcFAAAZBQAAGQUAABsFAAAbBQAAHQUAAB0FAAAfBQAAHwUAACEFAAAhBQAAIwUAACMFAAAlBQAAJQUAACcFAAAnBQAAKQUAACkFAAArBQAAKwUAAC0FAAAtBQAALwUAAC8FAABhBQAAhwUAANAQAAD6EAAA/RAAAP8QAAD4EwAA/RMAAIAcAACIHAAAeR0AAHkdAAB9HQAAfR0AAI4dAACOHQAAAR4AAAEeAAADHgAAAx4AAAUeAAAFHgAABx4AAAceAAAJHgAACR4AAAseAAALHgAADR4AAA0eAAAPHgAADx4AABEeAAARHgAAEx4AABMeAAAVHgAAFR4AABceAAAXHgAAGR4AABkeAAAbHgAAGx4AAB0eAAAdHgAAHx4AAB8eAAAhHgAAIR4AACMeAAAjHgAAJR4AACUeAAAnHgAAJx4AACkeAAApHgAAKx4AACseAAAtHgAALR4AAC8eAAAvHgAAMR4AADEeAAAzHgAAMx4AADUeAAA1HgAANx4AADceAAA5HgAAOR4AADseAAA7HgAAPR4AAD0eAAA/HgAAPx4AAEEeAABBHgAAQx4AAEMeAABFHgAARR4AAEceAABHHgAASR4AAEkeAABLHgAASx4AAE0eAABNHgAATx4AAE8eAABRHgAAUR4AAFMeAABTHgAAVR4AAFUeAABXHgAAVx4AAFkeAABZHgAAWx4AAFseAABdHgAAXR4AAF8eAABfHgAAYR4AAGEeAABjHgAAYx4AAGUeAABlHgAAZx4AAGceAABpHgAAaR4AAGseAABrHgAAbR4AAG0eAABvHgAAbx4AAHEeAABxHgAAcx4AAHMeAAB1HgAAdR4AAHceAAB3HgAAeR4AAHkeAAB7HgAAex4AAH0eAAB9HgAAfx4AAH8eAACBHgAAgR4AAIMeAACDHgAAhR4AAIUeAACHHgAAhx4AAIkeAACJHgAAix4AAIseAACNHgAAjR4AAI8eAACPHgAAkR4AAJEeAACTHgAAkx4AAJUeAACbHgAAoR4AAKEeAACjHgAAox4AAKUeAAClHgAApx4AAKceAACpHgAAqR4AAKseAACrHgAArR4AAK0eAACvHgAArx4AALEeAACxHgAAsx4AALMeAAC1HgAAtR4AALceAAC3HgAAuR4AALkeAAC7HgAAux4AAL0eAAC9HgAAvx4AAL8eAADBHgAAwR4AAMMeAADDHgAAxR4AAMUeAADHHgAAxx4AAMkeAADJHgAAyx4AAMseAADNHgAAzR4AAM8eAADPHgAA0R4AANEeAADTHgAA0x4AANUeAADVHgAA1x4AANceAADZHgAA2R4AANseAADbHgAA3R4AAN0eAADfHgAA3x4AAOEeAADhHgAA4x4AAOMeAADlHgAA5R4AAOceAADnHgAA6R4AAOkeAADrHgAA6x4AAO0eAADtHgAA7x4AAO8eAADxHgAA8R4AAPMeAADzHgAA9R4AAPUeAAD3HgAA9x4AAPkeAAD5HgAA+x4AAPseAAD9HgAA/R4AAP8eAAAHHwAAEB8AABUfAAAgHwAAJx8AADAfAAA3HwAAQB8AAEUfAABQHwAAVx8AAGAfAABnHwAAcB8AAH0fAACAHwAAtB8AALYfAAC3HwAAvB8AALwfAAC+HwAAvh8AAMIfAADEHwAAxh8AAMcfAADMHwAAzB8AANAfAADTHwAA1h8AANcfAADgHwAA5x8AAPIfAAD0HwAA9h8AAPcfAAD8HwAA/B8AAE4hAABOIQAAcCEAAH8hAACEIQAAhCEAANAkAADpJAAAMCwAAF8sAABhLAAAYSwAAGUsAABmLAAAaCwAAGgsAABqLAAAaiwAAGwsAABsLAAAcywAAHMsAAB2LAAAdiwAAIEsAACBLAAAgywAAIMsAACFLAAAhSwAAIcsAACHLAAAiSwAAIksAACLLAAAiywAAI0sAACNLAAAjywAAI8sAACRLAAAkSwAAJMsAACTLAAAlSwAAJUsAACXLAAAlywAAJksAACZLAAAmywAAJssAACdLAAAnSwAAJ8sAACfLAAAoSwAAKEsAACjLAAAoywAAKUsAAClLAAApywAAKcsAACpLAAAqSwAAKssAACrLAAArSwAAK0sAACvLAAArywAALEsAACxLAAAsywAALMsAAC1LAAAtSwAALcsAAC3LAAAuSwAALksAAC7LAAAuywAAL0sAAC9LAAAvywAAL8sAADBLAAAwSwAAMMsAADDLAAAxSwAAMUsAADHLAAAxywAAMksAADJLAAAyywAAMssAADNLAAAzSwAAM8sAADPLAAA0SwAANEsAADTLAAA0ywAANUsAADVLAAA1ywAANcsAADZLAAA2SwAANssAADbLAAA3SwAAN0sAADfLAAA3ywAAOEsAADhLAAA4ywAAOMsAADsLAAA7CwAAO4sAADuLAAA8ywAAPMsAAAALQAAJS0AACctAAAnLQAALS0AAC0tAABBpgAAQaYAAEOmAABDpgAARaYAAEWmAABHpgAAR6YAAEmmAABJpgAAS6YAAEumAABNpgAATaYAAE+mAABPpgAAUaYAAFGmAABTpgAAU6YAAFWmAABVpgAAV6YAAFemAABZpgAAWaYAAFumAABbpgAAXaYAAF2mAABfpgAAX6YAAGGmAABhpgAAY6YAAGOmAABlpgAAZaYAAGemAABnpgAAaaYAAGmmAABrpgAAa6YAAG2mAABtpgAAgaYAAIGmAACDpgAAg6YAAIWmAACFpgAAh6YAAIemAACJpgAAiaYAAIumAACLpgAAjaYAAI2mAACPpgAAj6YAAJGmAACRpgAAk6YAAJOmAACVpgAAlaYAAJemAACXpgAAmaYAAJmmAACbpgAAm6YAACOnAAAjpwAAJacAACWnAAAnpwAAJ6cAACmnAAAppwAAK6cAACunAAAtpwAALacAAC+nAAAvpwAAM6cAADOnAAA1pwAANacAADenAAA3pwAAOacAADmnAAA7pwAAO6cAAD2nAAA9pwAAP6cAAD+nAABBpwAAQacAAEOnAABDpwAARacAAEWnAABHpwAAR6cAAEmnAABJpwAAS6cAAEunAABNpwAATacAAE+nAABPpwAAUacAAFGnAABTpwAAU6cAAFWnAABVpwAAV6cAAFenAABZpwAAWacAAFunAABbpwAAXacAAF2nAABfpwAAX6cAAGGnAABhpwAAY6cAAGOnAABlpwAAZacAAGenAABnpwAAaacAAGmnAABrpwAAa6cAAG2nAABtpwAAb6cAAG+nAAB6pwAAeqcAAHynAAB8pwAAf6cAAH+nAACBpwAAgacAAIOnAACDpwAAhacAAIWnAACHpwAAh6cAAIynAACMpwAAkacAAJGnAACTpwAAlKcAAJenAACXpwAAmacAAJmnAACbpwAAm6cAAJ2nAACdpwAAn6cAAJ+nAAChpwAAoacAAKOnAACjpwAApacAAKWnAACnpwAAp6cAAKmnAACppwAAtacAALWnAAC3pwAAt6cAALmnAAC5pwAAu6cAALunAAC9pwAAvacAAL+nAAC/pwAAwacAAMGnAADDpwAAw6cAAMinAADIpwAAyqcAAMqnAADRpwAA0acAANenAADXpwAA2acAANmnAAD2pwAA9qcAAFOrAABTqwAAcKsAAL+rAAAA+wAABvsAABP7AAAX+wAAQf8AAFr/AAAoBAEATwQBANgEAQD7BAEAlwUBAKEFAQCjBQEAsQUBALMFAQC5BQEAuwUBALwFAQDADAEA8gwBAMAYAQDfGAEAYG4BAH9uAQAi6QEAQ+kBAAAAAAADAAAAoBMAAPUTAAD4EwAA/RMAAHCrAAC/qwAAAQAAALAPAQDLDwEAQfCLBwvTK7oCAAB4AwAAeQMAAIADAACDAwAAiwMAAIsDAACNAwAAjQMAAKIDAACiAwAAMAUAADAFAABXBQAAWAUAAIsFAACMBQAAkAUAAJAFAADIBQAAzwUAAOsFAADuBQAA9QUAAP8FAAAOBwAADgcAAEsHAABMBwAAsgcAAL8HAAD7BwAA/AcAAC4IAAAvCAAAPwgAAD8IAABcCAAAXQgAAF8IAABfCAAAawgAAG8IAACPCAAAjwgAAJIIAACXCAAAhAkAAIQJAACNCQAAjgkAAJEJAACSCQAAqQkAAKkJAACxCQAAsQkAALMJAAC1CQAAugkAALsJAADFCQAAxgkAAMkJAADKCQAAzwkAANYJAADYCQAA2wkAAN4JAADeCQAA5AkAAOUJAAD/CQAAAAoAAAQKAAAECgAACwoAAA4KAAARCgAAEgoAACkKAAApCgAAMQoAADEKAAA0CgAANAoAADcKAAA3CgAAOgoAADsKAAA9CgAAPQoAAEMKAABGCgAASQoAAEoKAABOCgAAUAoAAFIKAABYCgAAXQoAAF0KAABfCgAAZQoAAHcKAACACgAAhAoAAIQKAACOCgAAjgoAAJIKAACSCgAAqQoAAKkKAACxCgAAsQoAALQKAAC0CgAAugoAALsKAADGCgAAxgoAAMoKAADKCgAAzgoAAM8KAADRCgAA3woAAOQKAADlCgAA8goAAPgKAAAACwAAAAsAAAQLAAAECwAADQsAAA4LAAARCwAAEgsAACkLAAApCwAAMQsAADELAAA0CwAANAsAADoLAAA7CwAARQsAAEYLAABJCwAASgsAAE4LAABUCwAAWAsAAFsLAABeCwAAXgsAAGQLAABlCwAAeAsAAIELAACECwAAhAsAAIsLAACNCwAAkQsAAJELAACWCwAAmAsAAJsLAACbCwAAnQsAAJ0LAACgCwAAogsAAKULAACnCwAAqwsAAK0LAAC6CwAAvQsAAMMLAADFCwAAyQsAAMkLAADOCwAAzwsAANELAADWCwAA2AsAAOULAAD7CwAA/wsAAA0MAAANDAAAEQwAABEMAAApDAAAKQwAADoMAAA7DAAARQwAAEUMAABJDAAASQwAAE4MAABUDAAAVwwAAFcMAABbDAAAXAwAAF4MAABfDAAAZAwAAGUMAABwDAAAdgwAAI0MAACNDAAAkQwAAJEMAACpDAAAqQwAALQMAAC0DAAAugwAALsMAADFDAAAxQwAAMkMAADJDAAAzgwAANQMAADXDAAA3AwAAN8MAADfDAAA5AwAAOUMAADwDAAA8AwAAPMMAAD/DAAADQ0AAA0NAAARDQAAEQ0AAEUNAABFDQAASQ0AAEkNAABQDQAAUw0AAGQNAABlDQAAgA0AAIANAACEDQAAhA0AAJcNAACZDQAAsg0AALINAAC8DQAAvA0AAL4NAAC/DQAAxw0AAMkNAADLDQAAzg0AANUNAADVDQAA1w0AANcNAADgDQAA5Q0AAPANAADxDQAA9Q0AAAAOAAA7DgAAPg4AAFwOAACADgAAgw4AAIMOAACFDgAAhQ4AAIsOAACLDgAApA4AAKQOAACmDgAApg4AAL4OAAC/DgAAxQ4AAMUOAADHDgAAxw4AAM4OAADPDgAA2g4AANsOAADgDgAA/w4AAEgPAABIDwAAbQ8AAHAPAACYDwAAmA8AAL0PAAC9DwAAzQ8AAM0PAADbDwAA/w8AAMYQAADGEAAAyBAAAMwQAADOEAAAzxAAAEkSAABJEgAAThIAAE8SAABXEgAAVxIAAFkSAABZEgAAXhIAAF8SAACJEgAAiRIAAI4SAACPEgAAsRIAALESAAC2EgAAtxIAAL8SAAC/EgAAwRIAAMESAADGEgAAxxIAANcSAADXEgAAERMAABETAAAWEwAAFxMAAFsTAABcEwAAfRMAAH8TAACaEwAAnxMAAPYTAAD3EwAA/hMAAP8TAACdFgAAnxYAAPkWAAD/FgAAFhcAAB4XAAA3FwAAPxcAAFQXAABfFwAAbRcAAG0XAABxFwAAcRcAAHQXAAB/FwAA3hcAAN8XAADqFwAA7xcAAPoXAAD/FwAAGhgAAB8YAAB5GAAAfxgAAKsYAACvGAAA9hgAAP8YAAAfGQAAHxkAACwZAAAvGQAAPBkAAD8ZAABBGQAAQxkAAG4ZAABvGQAAdRkAAH8ZAACsGQAArxkAAMoZAADPGQAA2xkAAN0ZAAAcGgAAHRoAAF8aAABfGgAAfRoAAH4aAACKGgAAjxoAAJoaAACfGgAArhoAAK8aAADPGgAA/xoAAE0bAABPGwAAfxsAAH8bAAD0GwAA+xsAADgcAAA6HAAAShwAAEwcAACJHAAAjxwAALscAAC8HAAAyBwAAM8cAAD7HAAA/xwAABYfAAAXHwAAHh8AAB8fAABGHwAARx8AAE4fAABPHwAAWB8AAFgfAABaHwAAWh8AAFwfAABcHwAAXh8AAF4fAAB+HwAAfx8AALUfAAC1HwAAxR8AAMUfAADUHwAA1R8AANwfAADcHwAA8B8AAPEfAAD1HwAA9R8AAP8fAAD/HwAAZSAAAGUgAAByIAAAcyAAAI8gAACPIAAAnSAAAJ8gAADBIAAAzyAAAPEgAAD/IAAAjCEAAI8hAAAnJAAAPyQAAEskAABfJAAAdCsAAHUrAACWKwAAlisAAPQsAAD4LAAAJi0AACYtAAAoLQAALC0AAC4tAAAvLQAAaC0AAG4tAABxLQAAfi0AAJctAACfLQAApy0AAKctAACvLQAAry0AALctAAC3LQAAvy0AAL8tAADHLQAAxy0AAM8tAADPLQAA1y0AANctAADfLQAA3y0AAF4uAAB/LgAAmi4AAJouAAD0LgAA/y4AANYvAADvLwAA/C8AAP8vAABAMAAAQDAAAJcwAACYMAAAADEAAAQxAAAwMQAAMDEAAI8xAACPMQAA5DEAAO8xAAAfMgAAHzIAAI2kAACPpAAAx6QAAM+kAAAspgAAP6YAAPimAAD/pgAAy6cAAM+nAADSpwAA0qcAANSnAADUpwAA2qcAAPGnAAAtqAAAL6gAADqoAAA/qAAAeKgAAH+oAADGqAAAzagAANqoAADfqAAAVKkAAF6pAAB9qQAAf6kAAM6pAADOqQAA2qkAAN2pAAD/qQAA/6kAADeqAAA/qgAATqoAAE+qAABaqgAAW6oAAMOqAADaqgAA96oAAACrAAAHqwAACKsAAA+rAAAQqwAAF6sAAB+rAAAnqwAAJ6sAAC+rAAAvqwAAbKsAAG+rAADuqwAA76sAAPqrAAD/qwAApNcAAK/XAADH1wAAytcAAPzXAAD/1wAAbvoAAG/6AADa+gAA//oAAAf7AAAS+wAAGPsAABz7AAA3+wAAN/sAAD37AAA9+wAAP/sAAD/7AABC+wAAQvsAAEX7AABF+wAAw/sAANL7AACQ/QAAkf0AAMj9AADO/QAA0P0AAO/9AAAa/gAAH/4AAFP+AABT/gAAZ/4AAGf+AABs/gAAb/4AAHX+AAB1/gAA/f4AAP7+AAAA/wAAAP8AAL//AADB/wAAyP8AAMn/AADQ/wAA0f8AANj/AADZ/wAA3f8AAN//AADn/wAA5/8AAO//AAD4/wAA/v8AAP//AAAMAAEADAABACcAAQAnAAEAOwABADsAAQA+AAEAPgABAE4AAQBPAAEAXgABAH8AAQD7AAEA/wABAAMBAQAGAQEANAEBADYBAQCPAQEAjwEBAJ0BAQCfAQEAoQEBAM8BAQD+AQEAfwIBAJ0CAQCfAgEA0QIBAN8CAQD8AgEA/wIBACQDAQAsAwEASwMBAE8DAQB7AwEAfwMBAJ4DAQCeAwEAxAMBAMcDAQDWAwEA/wMBAJ4EAQCfBAEAqgQBAK8EAQDUBAEA1wQBAPwEAQD/BAEAKAUBAC8FAQBkBQEAbgUBAHsFAQB7BQEAiwUBAIsFAQCTBQEAkwUBAJYFAQCWBQEAogUBAKIFAQCyBQEAsgUBALoFAQC6BQEAvQUBAP8FAQA3BwEAPwcBAFYHAQBfBwEAaAcBAH8HAQCGBwEAhgcBALEHAQCxBwEAuwcBAP8HAQAGCAEABwgBAAkIAQAJCAEANggBADYIAQA5CAEAOwgBAD0IAQA+CAEAVggBAFYIAQCfCAEApggBALAIAQDfCAEA8wgBAPMIAQD2CAEA+ggBABwJAQAeCQEAOgkBAD4JAQBACQEAfwkBALgJAQC7CQEA0AkBANEJAQAECgEABAoBAAcKAQALCgEAFAoBABQKAQAYCgEAGAoBADYKAQA3CgEAOwoBAD4KAQBJCgEATwoBAFkKAQBfCgEAoAoBAL8KAQDnCgEA6goBAPcKAQD/CgEANgsBADgLAQBWCwEAVwsBAHMLAQB3CwEAkgsBAJgLAQCdCwEAqAsBALALAQD/CwEASQwBAH8MAQCzDAEAvwwBAPMMAQD5DAEAKA0BAC8NAQA6DQEAXw4BAH8OAQB/DgEAqg4BAKoOAQCuDgEArw4BALIOAQD/DgEAKA8BAC8PAQBaDwEAbw8BAIoPAQCvDwEAzA8BAN8PAQD3DwEA/w8BAE4QAQBREAEAdhABAH4QAQDDEAEAzBABAM4QAQDPEAEA6RABAO8QAQD6EAEA/xABADURAQA1EQEASBEBAE8RAQB3EQEAfxEBAOARAQDgEQEA9REBAP8RAQASEgEAEhIBAD8SAQB/EgEAhxIBAIcSAQCJEgEAiRIBAI4SAQCOEgEAnhIBAJ4SAQCqEgEArxIBAOsSAQDvEgEA+hIBAP8SAQAEEwEABBMBAA0TAQAOEwEAERMBABITAQApEwEAKRMBADETAQAxEwEANBMBADQTAQA6EwEAOhMBAEUTAQBGEwEASRMBAEoTAQBOEwEATxMBAFETAQBWEwEAWBMBAFwTAQBkEwEAZRMBAG0TAQBvEwEAdRMBAP8TAQBcFAEAXBQBAGIUAQB/FAEAyBQBAM8UAQDaFAEAfxUBALYVAQC3FQEA3hUBAP8VAQBFFgEATxYBAFoWAQBfFgEAbRYBAH8WAQC6FgEAvxYBAMoWAQD/FgEAGxcBABwXAQAsFwEALxcBAEcXAQD/FwEAPBgBAJ8YAQDzGAEA/hgBAAcZAQAIGQEAChkBAAsZAQAUGQEAFBkBABcZAQAXGQEANhkBADYZAQA5GQEAOhkBAEcZAQBPGQEAWhkBAJ8ZAQCoGQEAqRkBANgZAQDZGQEA5RkBAP8ZAQBIGgEATxoBAKMaAQCvGgEA+RoBAP8bAQAJHAEACRwBADccAQA3HAEARhwBAE8cAQBtHAEAbxwBAJAcAQCRHAEAqBwBAKgcAQC3HAEA/xwBAAcdAQAHHQEACh0BAAodAQA3HQEAOR0BADsdAQA7HQEAPh0BAD4dAQBIHQEATx0BAFodAQBfHQEAZh0BAGYdAQBpHQEAaR0BAI8dAQCPHQEAkh0BAJIdAQCZHQEAnx0BAKodAQDfHgEA+R4BAK8fAQCxHwEAvx8BAPIfAQD+HwEAmiMBAP8jAQBvJAEAbyQBAHUkAQB/JAEARCUBAI8vAQDzLwEA/y8BAC80AQAvNAEAOTQBAP9DAQBHRgEA/2cBADlqAQA/agEAX2oBAF9qAQBqagEAbWoBAL9qAQC/agEAymoBAM9qAQDuagEA72oBAPZqAQD/agEARmsBAE9rAQBaawEAWmsBAGJrAQBiawEAeGsBAHxrAQCQawEAP24BAJtuAQD/bgEAS28BAE5vAQCIbwEAjm8BAKBvAQDfbwEA5W8BAO9vAQDybwEA/28BAPiHAQD/hwEA1owBAP+MAQAJjQEA768BAPSvAQD0rwEA/K8BAPyvAQD/rwEA/68BACOxAQBPsQEAU7EBAGOxAQBosQEAb7EBAPyyAQD/uwEAa7wBAG+8AQB9vAEAf7wBAIm8AQCPvAEAmrwBAJu8AQCkvAEA/84BAC7PAQAvzwEAR88BAE/PAQDEzwEA/88BAPbQAQD/0AEAJ9EBACjRAQDr0QEA/9EBAEbSAQDf0gEA9NIBAP/SAQBX0wEAX9MBAHnTAQD/0wEAVdQBAFXUAQCd1AEAndQBAKDUAQCh1AEAo9QBAKTUAQCn1AEAqNQBAK3UAQCt1AEAutQBALrUAQC81AEAvNQBAMTUAQDE1AEABtUBAAbVAQAL1QEADNUBABXVAQAV1QEAHdUBAB3VAQA61QEAOtUBAD/VAQA/1QEARdUBAEXVAQBH1QEASdUBAFHVAQBR1QEAptYBAKfWAQDM1wEAzdcBAIzaAQCa2gEAoNoBAKDaAQCw2gEA/94BAB/fAQD/3wEAB+ABAAfgAQAZ4AEAGuABACLgAQAi4AEAJeABACXgAQAr4AEA/+ABAC3hAQAv4QEAPuEBAD/hAQBK4QEATeEBAFDhAQCP4gEAr+IBAL/iAQD64gEA/uIBAADjAQDf5wEA5+cBAOfnAQDs5wEA7OcBAO/nAQDv5wEA/+cBAP/nAQDF6AEAxugBANfoAQD/6AEATOkBAE/pAQBa6QEAXekBAGDpAQBw7AEAtewBAADtAQA+7QEA/+0BAATuAQAE7gEAIO4BACDuAQAj7gEAI+4BACXuAQAm7gEAKO4BACjuAQAz7gEAM+4BADjuAQA47gEAOu4BADruAQA87gEAQe4BAEPuAQBG7gEASO4BAEjuAQBK7gEASu4BAEzuAQBM7gEAUO4BAFDuAQBT7gEAU+4BAFXuAQBW7gEAWO4BAFjuAQBa7gEAWu4BAFzuAQBc7gEAXu4BAF7uAQBg7gEAYO4BAGPuAQBj7gEAZe4BAGbuAQBr7gEAa+4BAHPuAQBz7gEAeO4BAHjuAQB97gEAfe4BAH/uAQB/7gEAiu4BAIruAQCc7gEAoO4BAKTuAQCk7gEAqu4BAKruAQC87gEA7+4BAPLuAQD/7wEALPABAC/wAQCU8AEAn/ABAK/wAQCw8AEAwPABAMDwAQDQ8AEA0PABAPbwAQD/8AEArvEBAOXxAQAD8gEAD/IBADzyAQA/8gEASfIBAE/yAQBS8gEAX/IBAGbyAQD/8gEA2PYBANz2AQDt9gEA7/YBAP32AQD/9gEAdPcBAH/3AQDZ9wEA3/cBAOz3AQDv9wEA8fcBAP/3AQAM+AEAD/gBAEj4AQBP+AEAWvgBAF/4AQCI+AEAj/gBAK74AQCv+AEAsvgBAP/4AQBU+gEAX/oBAG76AQBv+gEAdfoBAHf6AQB9+gEAf/oBAIf6AQCP+gEArfoBAK/6AQC7+gEAv/oBAMb6AQDP+gEA2voBAN/6AQDo+gEA7/oBAPf6AQD/+gEAk/sBAJP7AQDL+wEA7/sBAPr7AQD//wEA4KYCAP+mAgA5twIAP7cCAB64AgAfuAIAos4CAK/OAgDh6wIA//cCAB76AgD//wIASxMDAAAADgACAA4AHwAOAIAADgD/AA4A8AEOAP//DgD+/w8A//8PAP7/EAD//xAAQdC3BwuTCwMAAAAA4AAA//gAAAAADwD9/w8AAAAQAP3/EAAAAAAArgAAAAAAAABAAAAAWwAAAGAAAAB7AAAAqQAAAKsAAAC5AAAAuwAAAL8AAADXAAAA1wAAAPcAAAD3AAAAuQIAAN8CAADlAgAA6QIAAOwCAAD/AgAAdAMAAHQDAAB+AwAAfgMAAIUDAACFAwAAhwMAAIcDAAAFBgAABQYAAAwGAAAMBgAAGwYAABsGAAAfBgAAHwYAAEAGAABABgAA3QYAAN0GAADiCAAA4ggAAGQJAABlCQAAPw4AAD8OAADVDwAA2A8AAPsQAAD7EAAA6xYAAO0WAAA1FwAANhcAAAIYAAADGAAABRgAAAUYAADTHAAA0xwAAOEcAADhHAAA6RwAAOwcAADuHAAA8xwAAPUcAAD3HAAA+hwAAPocAAAAIAAACyAAAA4gAABkIAAAZiAAAHAgAAB0IAAAfiAAAIAgAACOIAAAoCAAAMAgAAAAIQAAJSEAACchAAApIQAALCEAADEhAAAzIQAATSEAAE8hAABfIQAAiSEAAIshAACQIQAAJiQAAEAkAABKJAAAYCQAAP8nAAAAKQAAcysAAHYrAACVKwAAlysAAP8rAAAALgAAXS4AAPAvAAD7LwAAADAAAAQwAAAGMAAABjAAAAgwAAAgMAAAMDAAADcwAAA8MAAAPzAAAJswAACcMAAAoDAAAKAwAAD7MAAA/DAAAJAxAACfMQAAwDEAAOMxAAAgMgAAXzIAAH8yAADPMgAA/zIAAP8yAABYMwAA/zMAAMBNAAD/TQAAAKcAACGnAACIpwAAiqcAADCoAAA5qAAALqkAAC6pAADPqQAAz6kAAFurAABbqwAAaqsAAGurAAA+/QAAP/0AABD+AAAZ/gAAMP4AAFL+AABU/gAAZv4AAGj+AABr/gAA//4AAP/+AAAB/wAAIP8AADv/AABA/wAAW/8AAGX/AABw/wAAcP8AAJ7/AACf/wAA4P8AAOb/AADo/wAA7v8AAPn/AAD9/wAAAAEBAAIBAQAHAQEAMwEBADcBAQA/AQEAkAEBAJwBAQDQAQEA/AEBAOECAQD7AgEAoLwBAKO8AQBQzwEAw88BAADQAQD10AEAANEBACbRAQAp0QEAZtEBAGrRAQB60QEAg9EBAITRAQCM0QEAqdEBAK7RAQDq0QEA4NIBAPPSAQAA0wEAVtMBAGDTAQB40wEAANQBAFTUAQBW1AEAnNQBAJ7UAQCf1AEAotQBAKLUAQCl1AEAptQBAKnUAQCs1AEArtQBALnUAQC71AEAu9QBAL3UAQDD1AEAxdQBAAXVAQAH1QEACtUBAA3VAQAU1QEAFtUBABzVAQAe1QEAOdUBADvVAQA+1QEAQNUBAETVAQBG1QEARtUBAErVAQBQ1QEAUtUBAKXWAQCo1gEAy9cBAM7XAQD/1wEAcewBALTsAQAB7QEAPe0BAADwAQAr8AEAMPABAJPwAQCg8AEArvABALHwAQC/8AEAwfABAM/wAQDR8AEA9fABAADxAQCt8QEA5vEBAP/xAQAB8gEAAvIBABDyAQA78gEAQPIBAEjyAQBQ8gEAUfIBAGDyAQBl8gEAAPMBANf2AQDd9gEA7PYBAPD2AQD89gEAAPcBAHP3AQCA9wEA2PcBAOD3AQDr9wEA8PcBAPD3AQAA+AEAC/gBABD4AQBH+AEAUPgBAFn4AQBg+AEAh/gBAJD4AQCt+AEAsPgBALH4AQAA+QEAU/oBAGD6AQBt+gEAcPoBAHT6AQB4+gEAfPoBAID6AQCG+gEAkPoBAKz6AQCw+gEAuvoBAMD6AQDF+gEA0PoBANn6AQDg+gEA5/oBAPD6AQD2+gEAAPsBAJL7AQCU+wEAyvsBAPD7AQD5+wEAAQAOAAEADgAgAA4AfwAOAEHwwgcLJgMAAADiAwAA7wMAAIAsAADzLAAA+SwAAP8sAAABAAAAANgAAP/fAEGgwwcLIwQAAAAAIAEAmSMBAAAkAQBuJAEAcCQBAHQkAQCAJAEAQyUBAEHQwwcLggEGAAAAAAgBAAUIAQAICAEACAgBAAoIAQA1CAEANwgBADgIAQA8CAEAPAgBAD8IAQA/CAEAAQAAAJAvAQDyLwEACAAAAAAEAACEBAAAhwQAAC8FAACAHAAAiBwAACsdAAArHQAAeB0AAHgdAADgLQAA/y0AAECmAACfpgAALv4AAC/+AEHgxAcLwgMXAAAALQAAAC0AAACKBQAAigUAAL4FAAC+BQAAABQAAAAUAAAGGAAABhgAABAgAAAVIAAAUyAAAFMgAAB7IAAAeyAAAIsgAACLIAAAEiIAABIiAAAXLgAAFy4AABouAAAaLgAAOi4AADsuAABALgAAQC4AAF0uAABdLgAAHDAAABwwAAAwMAAAMDAAAKAwAACgMAAAMf4AADL+AABY/gAAWP4AAGP+AABj/gAADf8AAA3/AACtDgEArQ4BAAAAAAARAAAArQAAAK0AAABPAwAATwMAABwGAAAcBgAAXxEAAGARAAC0FwAAtRcAAAsYAAAPGAAACyAAAA8gAAAqIAAALiAAAGAgAABvIAAAZDEAAGQxAAAA/gAAD/4AAP/+AAD//gAAoP8AAKD/AADw/wAA+P8AAKC8AQCjvAEAc9EBAHrRAQAAAA4A/w8OAAAAAAAIAAAASQEAAEkBAABzBgAAcwYAAHcPAAB3DwAAeQ8AAHkPAACjFwAApBcAAGogAABvIAAAKSMAACojAAABAA4AAQAOAAEAAAAABAEATwQBAAQAAAAACQAAUAkAAFUJAABjCQAAZgkAAH8JAADgqAAA/6gAQbDIBwuDDMAAAABeAAAAXgAAAGAAAABgAAAAqAAAAKgAAACvAAAArwAAALQAAAC0AAAAtwAAALgAAACwAgAATgMAAFADAABXAwAAXQMAAGIDAAB0AwAAdQMAAHoDAAB6AwAAhAMAAIUDAACDBAAAhwQAAFkFAABZBQAAkQUAAKEFAACjBQAAvQUAAL8FAAC/BQAAwQUAAMIFAADEBQAAxAUAAEsGAABSBgAAVwYAAFgGAADfBgAA4AYAAOUGAADmBgAA6gYAAOwGAAAwBwAASgcAAKYHAACwBwAA6wcAAPUHAAAYCAAAGQgAAJgIAACfCAAAyQgAANIIAADjCAAA/ggAADwJAAA8CQAATQkAAE0JAABRCQAAVAkAAHEJAABxCQAAvAkAALwJAADNCQAAzQkAADwKAAA8CgAATQoAAE0KAAC8CgAAvAoAAM0KAADNCgAA/QoAAP8KAAA8CwAAPAsAAE0LAABNCwAAVQsAAFULAADNCwAAzQsAADwMAAA8DAAATQwAAE0MAAC8DAAAvAwAAM0MAADNDAAAOw0AADwNAABNDQAATQ0AAMoNAADKDQAARw4AAEwOAABODgAATg4AALoOAAC6DgAAyA4AAMwOAAAYDwAAGQ8AADUPAAA1DwAANw8AADcPAAA5DwAAOQ8AAD4PAAA/DwAAgg8AAIQPAACGDwAAhw8AAMYPAADGDwAANxAAADcQAAA5EAAAOhAAAGMQAABkEAAAaRAAAG0QAACHEAAAjRAAAI8QAACPEAAAmhAAAJsQAABdEwAAXxMAABQXAAAVFwAAyRcAANMXAADdFwAA3RcAADkZAAA7GQAAdRoAAHwaAAB/GgAAfxoAALAaAAC+GgAAwRoAAMsaAAA0GwAANBsAAEQbAABEGwAAaxsAAHMbAACqGwAAqxsAADYcAAA3HAAAeBwAAH0cAADQHAAA6BwAAO0cAADtHAAA9BwAAPQcAAD3HAAA+RwAACwdAABqHQAAxB0AAM8dAAD1HQAA/x0AAL0fAAC9HwAAvx8AAMEfAADNHwAAzx8AAN0fAADfHwAA7R8AAO8fAAD9HwAA/h8AAO8sAADxLAAALy4AAC8uAAAqMAAALzAAAJkwAACcMAAA/DAAAPwwAABvpgAAb6YAAHymAAB9pgAAf6YAAH+mAACcpgAAnaYAAPCmAADxpgAAAKcAACGnAACIpwAAiqcAAPinAAD5pwAAxKgAAMSoAADgqAAA8agAACupAAAuqQAAU6kAAFOpAACzqQAAs6kAAMCpAADAqQAA5akAAOWpAAB7qgAAfaoAAL+qAADCqgAA9qoAAPaqAABbqwAAX6sAAGmrAABrqwAA7KsAAO2rAAAe+wAAHvsAACD+AAAv/gAAPv8AAD7/AABA/wAAQP8AAHD/AABw/wAAnv8AAJ//AADj/wAA4/8AAOACAQDgAgEAgAcBAIUHAQCHBwEAsAcBALIHAQC6BwEA5QoBAOYKAQAiDQEAJw0BAEYPAQBQDwEAgg8BAIUPAQBGEAEARhABAHAQAQBwEAEAuRABALoQAQAzEQEANBEBAHMRAQBzEQEAwBEBAMARAQDKEQEAzBEBADUSAQA2EgEA6RIBAOoSAQA8EwEAPBMBAE0TAQBNEwEAZhMBAGwTAQBwEwEAdBMBAEIUAQBCFAEARhQBAEYUAQDCFAEAwxQBAL8VAQDAFQEAPxYBAD8WAQC2FgEAtxYBACsXAQArFwEAORgBADoYAQA9GQEAPhkBAEMZAQBDGQEA4BkBAOAZAQA0GgEANBoBAEcaAQBHGgEAmRoBAJkaAQA/HAEAPxwBAEIdAQBCHQEARB0BAEUdAQCXHQEAlx0BAPBqAQD0agEAMGsBADZrAQCPbwEAn28BAPBvAQDxbwEA8K8BAPOvAQD1rwEA+68BAP2vAQD+rwEAAM8BAC3PAQAwzwEARs8BAGfRAQBp0QEAbdEBAHLRAQB70QEAgtEBAIXRAQCL0QEAqtEBAK3RAQAw4QEANuEBAK7iAQCu4gEA7OIBAO/iAQDQ6AEA1ugBAETpAQBG6QEASOkBAErpAQBBwNQHC6MOCAAAAAAZAQAGGQEACRkBAAkZAQAMGQEAExkBABUZAQAWGQEAGBkBADUZAQA3GQEAOBkBADsZAQBGGQEAUBkBAFkZAQABAAAAABgBADsYAQAFAAAAALwBAGq8AQBwvAEAfLwBAIC8AQCIvAEAkLwBAJm8AQCcvAEAn7wBAAAAAAACAAAAADABAC40AQAwNAEAODQBAAEAAAAABQEAJwUBAAEAAADgDwEA9g8BAAAAAACZAAAAIwAAACMAAAAqAAAAKgAAADAAAAA5AAAAqQAAAKkAAACuAAAArgAAADwgAAA8IAAASSAAAEkgAAAiIQAAIiEAADkhAAA5IQAAlCEAAJkhAACpIQAAqiEAABojAAAbIwAAKCMAACgjAADPIwAAzyMAAOkjAADzIwAA+CMAAPojAADCJAAAwiQAAKolAACrJQAAtiUAALYlAADAJQAAwCUAAPslAAD+JQAAACYAAAQmAAAOJgAADiYAABEmAAARJgAAFCYAABUmAAAYJgAAGCYAAB0mAAAdJgAAICYAACAmAAAiJgAAIyYAACYmAAAmJgAAKiYAAComAAAuJgAALyYAADgmAAA6JgAAQCYAAEAmAABCJgAAQiYAAEgmAABTJgAAXyYAAGAmAABjJgAAYyYAAGUmAABmJgAAaCYAAGgmAAB7JgAAeyYAAH4mAAB/JgAAkiYAAJcmAACZJgAAmSYAAJsmAACcJgAAoCYAAKEmAACnJgAApyYAAKomAACrJgAAsCYAALEmAAC9JgAAviYAAMQmAADFJgAAyCYAAMgmAADOJgAAzyYAANEmAADRJgAA0yYAANQmAADpJgAA6iYAAPAmAAD1JgAA9yYAAPomAAD9JgAA/SYAAAInAAACJwAABScAAAUnAAAIJwAADScAAA8nAAAPJwAAEicAABInAAAUJwAAFCcAABYnAAAWJwAAHScAAB0nAAAhJwAAIScAACgnAAAoJwAAMycAADQnAABEJwAARCcAAEcnAABHJwAATCcAAEwnAABOJwAATicAAFMnAABVJwAAVycAAFcnAABjJwAAZCcAAJUnAACXJwAAoScAAKEnAACwJwAAsCcAAL8nAAC/JwAANCkAADUpAAAFKwAABysAABsrAAAcKwAAUCsAAFArAABVKwAAVSsAADAwAAAwMAAAPTAAAD0wAACXMgAAlzIAAJkyAACZMgAABPABAATwAQDP8AEAz/ABAHDxAQBx8QEAfvEBAH/xAQCO8QEAjvEBAJHxAQCa8QEA5vEBAP/xAQAB8gEAAvIBABryAQAa8gEAL/IBAC/yAQAy8gEAOvIBAFDyAQBR8gEAAPMBACHzAQAk8wEAk/MBAJbzAQCX8wEAmfMBAJvzAQCe8wEA8PMBAPPzAQD18wEA9/MBAP30AQD/9AEAPfUBAEn1AQBO9QEAUPUBAGf1AQBv9QEAcPUBAHP1AQB69QEAh/UBAIf1AQCK9QEAjfUBAJD1AQCQ9QEAlfUBAJb1AQCk9QEApfUBAKj1AQCo9QEAsfUBALL1AQC89QEAvPUBAML1AQDE9QEA0fUBANP1AQDc9QEA3vUBAOH1AQDh9QEA4/UBAOP1AQDo9QEA6PUBAO/1AQDv9QEA8/UBAPP1AQD69QEAT/YBAID2AQDF9gEAy/YBANL2AQDV9gEA1/YBAN32AQDl9gEA6fYBAOn2AQDr9gEA7PYBAPD2AQDw9gEA8/YBAPz2AQDg9wEA6/cBAPD3AQDw9wEADPkBADr5AQA8+QEARfkBAEf5AQD/+QEAcPoBAHT6AQB4+gEAfPoBAID6AQCG+gEAkPoBAKz6AQCw+gEAuvoBAMD6AQDF+gEA0PoBANn6AQDg+gEA5/oBAPD6AQD2+gEAAAAAAAoAAAAjAAAAIwAAACoAAAAqAAAAMAAAADkAAAANIAAADSAAAOMgAADjIAAAD/4AAA/+AADm8QEA//EBAPvzAQD/8wEAsPkBALP5AQAgAA4AfwAOAAEAAAD78wEA//MBACgAAAAdJgAAHSYAAPkmAAD5JgAACicAAA0nAACF8wEAhfMBAMLzAQDE8wEAx/MBAMfzAQDK8wEAzPMBAEL0AQBD9AEARvQBAFD0AQBm9AEAePQBAHz0AQB89AEAgfQBAIP0AQCF9AEAh/QBAI/0AQCP9AEAkfQBAJH0AQCq9AEAqvQBAHT1AQB19QEAevUBAHr1AQCQ9QEAkPUBAJX1AQCW9QEARfYBAEf2AQBL9gEAT/YBAKP2AQCj9gEAtPYBALb2AQDA9gEAwPYBAMz2AQDM9gEADPkBAAz5AQAP+QEAD/kBABj5AQAf+QEAJvkBACb5AQAw+QEAOfkBADz5AQA++QEAd/kBAHf5AQC1+QEAtvkBALj5AQC5+QEAu/kBALv5AQDN+QEAz/kBANH5AQDd+QEAw/oBAMX6AQDw+gEA9voBAEHw4gcLwwdTAAAAGiMAABsjAADpIwAA7CMAAPAjAADwIwAA8yMAAPMjAAD9JQAA/iUAABQmAAAVJgAASCYAAFMmAAB/JgAAfyYAAJMmAACTJgAAoSYAAKEmAACqJgAAqyYAAL0mAAC+JgAAxCYAAMUmAADOJgAAziYAANQmAADUJgAA6iYAAOomAADyJgAA8yYAAPUmAAD1JgAA+iYAAPomAAD9JgAA/SYAAAUnAAAFJwAACicAAAsnAAAoJwAAKCcAAEwnAABMJwAATicAAE4nAABTJwAAVScAAFcnAABXJwAAlScAAJcnAACwJwAAsCcAAL8nAAC/JwAAGysAABwrAABQKwAAUCsAAFUrAABVKwAABPABAATwAQDP8AEAz/ABAI7xAQCO8QEAkfEBAJrxAQDm8QEA//EBAAHyAQAB8gEAGvIBABryAQAv8gEAL/IBADLyAQA28gEAOPIBADryAQBQ8gEAUfIBAADzAQAg8wEALfMBADXzAQA38wEAfPMBAH7zAQCT8wEAoPMBAMrzAQDP8wEA0/MBAODzAQDw8wEA9PMBAPTzAQD48wEAPvQBAED0AQBA9AEAQvQBAPz0AQD/9AEAPfUBAEv1AQBO9QEAUPUBAGf1AQB69QEAevUBAJX1AQCW9QEApPUBAKT1AQD79QEAT/YBAID2AQDF9gEAzPYBAMz2AQDQ9gEA0vYBANX2AQDX9gEA3fYBAN/2AQDr9gEA7PYBAPT2AQD89gEA4PcBAOv3AQDw9wEA8PcBAAz5AQA6+QEAPPkBAEX5AQBH+QEA//kBAHD6AQB0+gEAePoBAHz6AQCA+gEAhvoBAJD6AQCs+gEAsPoBALr6AQDA+gEAxfoBAND6AQDZ+gEA4PoBAOf6AQDw+gEA9voBAAAAAAAkAAAAABIAAEgSAABKEgAATRIAAFASAABWEgAAWBIAAFgSAABaEgAAXRIAAGASAACIEgAAihIAAI0SAACQEgAAsBIAALISAAC1EgAAuBIAAL4SAADAEgAAwBIAAMISAADFEgAAyBIAANYSAADYEgAAEBMAABITAAAVEwAAGBMAAFoTAABdEwAAfBMAAIATAACZEwAAgC0AAJYtAACgLQAApi0AAKgtAACuLQAAsC0AALYtAAC4LQAAvi0AAMAtAADGLQAAyC0AAM4tAADQLQAA1i0AANgtAADeLQAAAasAAAarAAAJqwAADqsAABGrAAAWqwAAIKsAACarAAAoqwAALqsAAODnAQDm5wEA6OcBAOvnAQDt5wEA7ucBAPDnAQD+5wEAQcDqBwvzBE4AAACpAAAAqQAAAK4AAACuAAAAPCAAADwgAABJIAAASSAAACIhAAAiIQAAOSEAADkhAACUIQAAmSEAAKkhAACqIQAAGiMAABsjAAAoIwAAKCMAAIgjAACIIwAAzyMAAM8jAADpIwAA8yMAAPgjAAD6IwAAwiQAAMIkAACqJQAAqyUAALYlAAC2JQAAwCUAAMAlAAD7JQAA/iUAAAAmAAAFJgAAByYAABImAAAUJgAAhSYAAJAmAAAFJwAACCcAABInAAAUJwAAFCcAABYnAAAWJwAAHScAAB0nAAAhJwAAIScAACgnAAAoJwAAMycAADQnAABEJwAARCcAAEcnAABHJwAATCcAAEwnAABOJwAATicAAFMnAABVJwAAVycAAFcnAABjJwAAZycAAJUnAACXJwAAoScAAKEnAACwJwAAsCcAAL8nAAC/JwAANCkAADUpAAAFKwAABysAABsrAAAcKwAAUCsAAFArAABVKwAAVSsAADAwAAAwMAAAPTAAAD0wAACXMgAAlzIAAJkyAACZMgAAAPABAP/wAQAN8QEAD/EBAC/xAQAv8QEAbPEBAHHxAQB+8QEAf/EBAI7xAQCO8QEAkfEBAJrxAQCt8QEA5fEBAAHyAQAP8gEAGvIBABryAQAv8gEAL/IBADLyAQA68gEAPPIBAD/yAQBJ8gEA+vMBAAD0AQA99QEARvUBAE/2AQCA9gEA//YBAHT3AQB/9wEA1fcBAP/3AQAM+AEAD/gBAEj4AQBP+AEAWvgBAF/4AQCI+AEAj/gBAK74AQD/+AEADPkBADr5AQA8+QEARfkBAEf5AQD/+gEAAPwBAP3/AQBBwO8HC+ICIQAAALcAAAC3AAAA0AIAANECAABABgAAQAYAAPoHAAD6BwAAVQsAAFULAABGDgAARg4AAMYOAADGDgAAChgAAAoYAABDGAAAQxgAAKcaAACnGgAANhwAADYcAAB7HAAAexwAAAUwAAAFMAAAMTAAADUwAACdMAAAnjAAAPwwAAD+MAAAFaAAABWgAAAMpgAADKYAAM+pAADPqQAA5qkAAOapAABwqgAAcKoAAN2qAADdqgAA86oAAPSqAABw/wAAcP8AAIEHAQCCBwEAXRMBAF0TAQDGFQEAyBUBAJgaAQCYGgEAQmsBAENrAQDgbwEA4W8BAONvAQDjbwEAPOEBAD3hAQBE6QEARukBAAAAAAAKAAAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAA0BAAAPoQAAD8EAAA/xAAAJAcAAC6HAAAvRwAAL8cAAAALQAAJS0AACctAAAnLQAALS0AAC0tAEGw8gcLo1MGAAAAACwAAF8sAAAA4AEABuABAAjgAQAY4AEAG+ABACHgAQAj4AEAJOABACbgAQAq4AEAAQAAADADAQBKAwEADwAAAAATAQADEwEABRMBAAwTAQAPEwEAEBMBABMTAQAoEwEAKhMBADATAQAyEwEAMxMBADUTAQA5EwEAPBMBAEQTAQBHEwEASBMBAEsTAQBNEwEAUBMBAFATAQBXEwEAVxMBAF0TAQBjEwEAZhMBAGwTAQBwEwEAdBMBAAAAAABdAwAAIAAAAH4AAACgAAAArAAAAK4AAAD/AgAAcAMAAHcDAAB6AwAAfwMAAIQDAACKAwAAjAMAAIwDAACOAwAAoQMAAKMDAACCBAAAigQAAC8FAAAxBQAAVgUAAFkFAACKBQAAjQUAAI8FAAC+BQAAvgUAAMAFAADABQAAwwUAAMMFAADGBQAAxgUAANAFAADqBQAA7wUAAPQFAAAGBgAADwYAABsGAAAbBgAAHQYAAEoGAABgBgAAbwYAAHEGAADVBgAA3gYAAN4GAADlBgAA5gYAAOkGAADpBgAA7gYAAA0HAAAQBwAAEAcAABIHAAAvBwAATQcAAKUHAACxBwAAsQcAAMAHAADqBwAA9AcAAPoHAAD+BwAAFQgAABoIAAAaCAAAJAgAACQIAAAoCAAAKAgAADAIAAA+CAAAQAgAAFgIAABeCAAAXggAAGAIAABqCAAAcAgAAI4IAACgCAAAyQgAAAMJAAA5CQAAOwkAADsJAAA9CQAAQAkAAEkJAABMCQAATgkAAFAJAABYCQAAYQkAAGQJAACACQAAggkAAIMJAACFCQAAjAkAAI8JAACQCQAAkwkAAKgJAACqCQAAsAkAALIJAACyCQAAtgkAALkJAAC9CQAAvQkAAL8JAADACQAAxwkAAMgJAADLCQAAzAkAAM4JAADOCQAA3AkAAN0JAADfCQAA4QkAAOYJAAD9CQAAAwoAAAMKAAAFCgAACgoAAA8KAAAQCgAAEwoAACgKAAAqCgAAMAoAADIKAAAzCgAANQoAADYKAAA4CgAAOQoAAD4KAABACgAAWQoAAFwKAABeCgAAXgoAAGYKAABvCgAAcgoAAHQKAAB2CgAAdgoAAIMKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvQoAAMAKAADJCgAAyQoAAMsKAADMCgAA0AoAANAKAADgCgAA4QoAAOYKAADxCgAA+QoAAPkKAAACCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAAD0LAAA9CwAAQAsAAEALAABHCwAASAsAAEsLAABMCwAAXAsAAF0LAABfCwAAYQsAAGYLAAB3CwAAgwsAAIMLAACFCwAAigsAAI4LAACQCwAAkgsAAJULAACZCwAAmgsAAJwLAACcCwAAngsAAJ8LAACjCwAApAsAAKgLAACqCwAArgsAALkLAAC/CwAAvwsAAMELAADCCwAAxgsAAMgLAADKCwAAzAsAANALAADQCwAA5gsAAPoLAAABDAAAAwwAAAUMAAAMDAAADgwAABAMAAASDAAAKAwAACoMAAA5DAAAPQwAAD0MAABBDAAARAwAAFgMAABaDAAAXQwAAF0MAABgDAAAYQwAAGYMAABvDAAAdwwAAIAMAACCDAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvQwAAL4MAADADAAAwQwAAMMMAADEDAAAxwwAAMgMAADKDAAAywwAAN0MAADeDAAA4AwAAOEMAADmDAAA7wwAAPEMAADyDAAAAg0AAAwNAAAODQAAEA0AABINAAA6DQAAPQ0AAD0NAAA/DQAAQA0AAEYNAABIDQAASg0AAEwNAABODQAATw0AAFQNAABWDQAAWA0AAGENAABmDQAAfw0AAIINAACDDQAAhQ0AAJYNAACaDQAAsQ0AALMNAAC7DQAAvQ0AAL0NAADADQAAxg0AANANAADRDQAA2A0AAN4NAADmDQAA7w0AAPINAAD0DQAAAQ4AADAOAAAyDgAAMw4AAD8OAABGDgAATw4AAFsOAACBDgAAgg4AAIQOAACEDgAAhg4AAIoOAACMDgAAow4AAKUOAAClDgAApw4AALAOAACyDgAAsw4AAL0OAAC9DgAAwA4AAMQOAADGDgAAxg4AANAOAADZDgAA3A4AAN8OAAAADwAAFw8AABoPAAA0DwAANg8AADYPAAA4DwAAOA8AADoPAABHDwAASQ8AAGwPAAB/DwAAfw8AAIUPAACFDwAAiA8AAIwPAAC+DwAAxQ8AAMcPAADMDwAAzg8AANoPAAAAEAAALBAAADEQAAAxEAAAOBAAADgQAAA7EAAAPBAAAD8QAABXEAAAWhAAAF0QAABhEAAAcBAAAHUQAACBEAAAgxAAAIQQAACHEAAAjBAAAI4QAACcEAAAnhAAAMUQAADHEAAAxxAAAM0QAADNEAAA0BAAAEgSAABKEgAATRIAAFASAABWEgAAWBIAAFgSAABaEgAAXRIAAGASAACIEgAAihIAAI0SAACQEgAAsBIAALISAAC1EgAAuBIAAL4SAADAEgAAwBIAAMISAADFEgAAyBIAANYSAADYEgAAEBMAABITAAAVEwAAGBMAAFoTAABgEwAAfBMAAIATAACZEwAAoBMAAPUTAAD4EwAA/RMAAAAUAACcFgAAoBYAAPgWAAAAFwAAERcAABUXAAAVFwAAHxcAADEXAAA0FwAANhcAAEAXAABRFwAAYBcAAGwXAABuFwAAcBcAAIAXAACzFwAAthcAALYXAAC+FwAAxRcAAMcXAADIFwAA1BcAANwXAADgFwAA6RcAAPAXAAD5FwAAABgAAAoYAAAQGAAAGRgAACAYAAB4GAAAgBgAAIQYAACHGAAAqBgAAKoYAACqGAAAsBgAAPUYAAAAGQAAHhkAACMZAAAmGQAAKRkAACsZAAAwGQAAMRkAADMZAAA4GQAAQBkAAEAZAABEGQAAbRkAAHAZAAB0GQAAgBkAAKsZAACwGQAAyRkAANAZAADaGQAA3hkAABYaAAAZGgAAGhoAAB4aAABVGgAAVxoAAFcaAABhGgAAYRoAAGMaAABkGgAAbRoAAHIaAACAGgAAiRoAAJAaAACZGgAAoBoAAK0aAAAEGwAAMxsAADsbAAA7GwAAPRsAAEEbAABDGwAATBsAAFAbAABqGwAAdBsAAH4bAACCGwAAoRsAAKYbAACnGwAAqhsAAKobAACuGwAA5RsAAOcbAADnGwAA6hsAAOwbAADuGwAA7hsAAPIbAADzGwAA/BsAACscAAA0HAAANRwAADscAABJHAAATRwAAIgcAACQHAAAuhwAAL0cAADHHAAA0xwAANMcAADhHAAA4RwAAOkcAADsHAAA7hwAAPMcAAD1HAAA9xwAAPocAAD6HAAAAB0AAL8dAAAAHgAAFR8AABgfAAAdHwAAIB8AAEUfAABIHwAATR8AAFAfAABXHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAH0fAACAHwAAtB8AALYfAADEHwAAxh8AANMfAADWHwAA2x8AAN0fAADvHwAA8h8AAPQfAAD2HwAA/h8AAAAgAAAKIAAAECAAACcgAAAvIAAAXyAAAHAgAABxIAAAdCAAAI4gAACQIAAAnCAAAKAgAADAIAAAACEAAIshAACQIQAAJiQAAEAkAABKJAAAYCQAAHMrAAB2KwAAlSsAAJcrAADuLAAA8iwAAPMsAAD5LAAAJS0AACctAAAnLQAALS0AAC0tAAAwLQAAZy0AAG8tAABwLQAAgC0AAJYtAACgLQAApi0AAKgtAACuLQAAsC0AALYtAAC4LQAAvi0AAMAtAADGLQAAyC0AAM4tAADQLQAA1i0AANgtAADeLQAAAC4AAF0uAACALgAAmS4AAJsuAADzLgAAAC8AANUvAADwLwAA+y8AAAAwAAApMAAAMDAAAD8wAABBMAAAljAAAJswAAD/MAAABTEAAC8xAAAxMQAAjjEAAJAxAADjMQAA8DEAAB4yAAAgMgAAjKQAAJCkAADGpAAA0KQAACumAABApgAAbqYAAHOmAABzpgAAfqYAAJ2mAACgpgAA76YAAPKmAAD3pgAAAKcAAMqnAADQpwAA0acAANOnAADTpwAA1acAANmnAADypwAAAagAAAOoAAAFqAAAB6gAAAqoAAAMqAAAJKgAACeoAAArqAAAMKgAADmoAABAqAAAd6gAAICoAADDqAAAzqgAANmoAADyqAAA/qgAAACpAAAlqQAALqkAAEapAABSqQAAU6kAAF+pAAB8qQAAg6kAALKpAAC0qQAAtakAALqpAAC7qQAAvqkAAM2pAADPqQAA2akAAN6pAADkqQAA5qkAAP6pAAAAqgAAKKoAAC+qAAAwqgAAM6oAADSqAABAqgAAQqoAAESqAABLqgAATaoAAE2qAABQqgAAWaoAAFyqAAB7qgAAfaoAAK+qAACxqgAAsaoAALWqAAC2qgAAuaoAAL2qAADAqgAAwKoAAMKqAADCqgAA26oAAOuqAADuqgAA9aoAAAGrAAAGqwAACasAAA6rAAARqwAAFqsAACCrAAAmqwAAKKsAAC6rAAAwqwAAa6sAAHCrAADkqwAA5qsAAOerAADpqwAA7KsAAPCrAAD5qwAAAKwAAKPXAACw1wAAxtcAAMvXAAD71wAAAPkAAG36AABw+gAA2foAAAD7AAAG+wAAE/sAABf7AAAd+wAAHfsAAB/7AAA2+wAAOPsAADz7AAA++wAAPvsAAED7AABB+wAAQ/sAAET7AABG+wAAwvsAANP7AACP/QAAkv0AAMf9AADP/QAAz/0AAPD9AAD//QAAEP4AABn+AAAw/gAAUv4AAFT+AABm/gAAaP4AAGv+AABw/gAAdP4AAHb+AAD8/gAAAf8AAJ3/AACg/wAAvv8AAML/AADH/wAAyv8AAM//AADS/wAA1/8AANr/AADc/wAA4P8AAOb/AADo/wAA7v8AAPz/AAD9/wAAAAABAAsAAQANAAEAJgABACgAAQA6AAEAPAABAD0AAQA/AAEATQABAFAAAQBdAAEAgAABAPoAAQAAAQEAAgEBAAcBAQAzAQEANwEBAI4BAQCQAQEAnAEBAKABAQCgAQEA0AEBAPwBAQCAAgEAnAIBAKACAQDQAgEA4QIBAPsCAQAAAwEAIwMBAC0DAQBKAwEAUAMBAHUDAQCAAwEAnQMBAJ8DAQDDAwEAyAMBANUDAQAABAEAnQQBAKAEAQCpBAEAsAQBANMEAQDYBAEA+wQBAAAFAQAnBQEAMAUBAGMFAQBvBQEAegUBAHwFAQCKBQEAjAUBAJIFAQCUBQEAlQUBAJcFAQChBQEAowUBALEFAQCzBQEAuQUBALsFAQC8BQEAAAYBADYHAQBABwEAVQcBAGAHAQBnBwEAgAcBAIUHAQCHBwEAsAcBALIHAQC6BwEAAAgBAAUIAQAICAEACAgBAAoIAQA1CAEANwgBADgIAQA8CAEAPAgBAD8IAQBVCAEAVwgBAJ4IAQCnCAEArwgBAOAIAQDyCAEA9AgBAPUIAQD7CAEAGwkBAB8JAQA5CQEAPwkBAD8JAQCACQEAtwkBALwJAQDPCQEA0gkBAAAKAQAQCgEAEwoBABUKAQAXCgEAGQoBADUKAQBACgEASAoBAFAKAQBYCgEAYAoBAJ8KAQDACgEA5AoBAOsKAQD2CgEAAAsBADULAQA5CwEAVQsBAFgLAQByCwEAeAsBAJELAQCZCwEAnAsBAKkLAQCvCwEAAAwBAEgMAQCADAEAsgwBAMAMAQDyDAEA+gwBACMNAQAwDQEAOQ0BAGAOAQB+DgEAgA4BAKkOAQCtDgEArQ4BALAOAQCxDgEAAA8BACcPAQAwDwEARQ8BAFEPAQBZDwEAcA8BAIEPAQCGDwEAiQ8BALAPAQDLDwEA4A8BAPYPAQAAEAEAABABAAIQAQA3EAEARxABAE0QAQBSEAEAbxABAHEQAQByEAEAdRABAHUQAQCCEAEAshABALcQAQC4EAEAuxABALwQAQC+EAEAwRABANAQAQDoEAEA8BABAPkQAQADEQEAJhEBACwRAQAsEQEANhEBAEcRAQBQEQEAchEBAHQRAQB2EQEAghEBALURAQC/EQEAyBEBAM0RAQDOEQEA0BEBAN8RAQDhEQEA9BEBAAASAQAREgEAExIBAC4SAQAyEgEAMxIBADUSAQA1EgEAOBIBAD0SAQCAEgEAhhIBAIgSAQCIEgEAihIBAI0SAQCPEgEAnRIBAJ8SAQCpEgEAsBIBAN4SAQDgEgEA4hIBAPASAQD5EgEAAhMBAAMTAQAFEwEADBMBAA8TAQAQEwEAExMBACgTAQAqEwEAMBMBADITAQAzEwEANRMBADkTAQA9EwEAPRMBAD8TAQA/EwEAQRMBAEQTAQBHEwEASBMBAEsTAQBNEwEAUBMBAFATAQBdEwEAYxMBAAAUAQA3FAEAQBQBAEEUAQBFFAEARRQBAEcUAQBbFAEAXRQBAF0UAQBfFAEAYRQBAIAUAQCvFAEAsRQBALIUAQC5FAEAuRQBALsUAQC8FAEAvhQBAL4UAQDBFAEAwRQBAMQUAQDHFAEA0BQBANkUAQCAFQEArhUBALAVAQCxFQEAuBUBALsVAQC+FQEAvhUBAMEVAQDbFQEAABYBADIWAQA7FgEAPBYBAD4WAQA+FgEAQRYBAEQWAQBQFgEAWRYBAGAWAQBsFgEAgBYBAKoWAQCsFgEArBYBAK4WAQCvFgEAthYBALYWAQC4FgEAuRYBAMAWAQDJFgEAABcBABoXAQAgFwEAIRcBACYXAQAmFwEAMBcBAEYXAQAAGAEALhgBADgYAQA4GAEAOxgBADsYAQCgGAEA8hgBAP8YAQAGGQEACRkBAAkZAQAMGQEAExkBABUZAQAWGQEAGBkBAC8ZAQAxGQEANRkBADcZAQA4GQEAPRkBAD0ZAQA/GQEAQhkBAEQZAQBGGQEAUBkBAFkZAQCgGQEApxkBAKoZAQDTGQEA3BkBAN8ZAQDhGQEA5BkBAAAaAQAAGgEACxoBADIaAQA5GgEAOhoBAD8aAQBGGgEAUBoBAFAaAQBXGgEAWBoBAFwaAQCJGgEAlxoBAJcaAQCaGgEAohoBALAaAQD4GgEAABwBAAgcAQAKHAEALxwBAD4cAQA+HAEAQBwBAEUcAQBQHAEAbBwBAHAcAQCPHAEAqRwBAKkcAQCxHAEAsRwBALQcAQC0HAEAAB0BAAYdAQAIHQEACR0BAAsdAQAwHQEARh0BAEYdAQBQHQEAWR0BAGAdAQBlHQEAZx0BAGgdAQBqHQEAjh0BAJMdAQCUHQEAlh0BAJYdAQCYHQEAmB0BAKAdAQCpHQEA4B4BAPIeAQD1HgEA+B4BALAfAQCwHwEAwB8BAPEfAQD/HwEAmSMBAAAkAQBuJAEAcCQBAHQkAQCAJAEAQyUBAJAvAQDyLwEAADABAC40AQAARAEARkYBAABoAQA4agEAQGoBAF5qAQBgagEAaWoBAG5qAQC+agEAwGoBAMlqAQDQagEA7WoBAPVqAQD1agEAAGsBAC9rAQA3awEARWsBAFBrAQBZawEAW2sBAGFrAQBjawEAd2sBAH1rAQCPawEAQG4BAJpuAQAAbwEASm8BAFBvAQCHbwEAk28BAJ9vAQDgbwEA428BAPBvAQDxbwEAAHABAPeHAQAAiAEA1YwBAACNAQAIjQEA8K8BAPOvAQD1rwEA+68BAP2vAQD+rwEAALABACKxAQBQsQEAUrEBAGSxAQBnsQEAcLEBAPuyAQAAvAEAarwBAHC8AQB8vAEAgLwBAIi8AQCQvAEAmbwBAJy8AQCcvAEAn7wBAJ+8AQBQzwEAw88BAADQAQD10AEAANEBACbRAQAp0QEAZNEBAGbRAQBm0QEAatEBAG3RAQCD0QEAhNEBAIzRAQCp0QEArtEBAOrRAQAA0gEAQdIBAEXSAQBF0gEA4NIBAPPSAQAA0wEAVtMBAGDTAQB40wEAANQBAFTUAQBW1AEAnNQBAJ7UAQCf1AEAotQBAKLUAQCl1AEAptQBAKnUAQCs1AEArtQBALnUAQC71AEAu9QBAL3UAQDD1AEAxdQBAAXVAQAH1QEACtUBAA3VAQAU1QEAFtUBABzVAQAe1QEAOdUBADvVAQA+1QEAQNUBAETVAQBG1QEARtUBAErVAQBQ1QEAUtUBAKXWAQCo1gEAy9cBAM7XAQD/2QEAN9oBADraAQBt2gEAdNoBAHbaAQCD2gEAhdoBAIvaAQAA3wEAHt8BAADhAQAs4QEAN+EBAD3hAQBA4QEASeEBAE7hAQBP4QEAkOIBAK3iAQDA4gEA6+IBAPDiAQD54gEA/+IBAP/iAQDg5wEA5ucBAOjnAQDr5wEA7ecBAO7nAQDw5wEA/ucBAADoAQDE6AEAx+gBAM/oAQAA6QEAQ+kBAEvpAQBL6QEAUOkBAFnpAQBe6QEAX+kBAHHsAQC07AEAAe0BAD3tAQAA7gEAA+4BAAXuAQAf7gEAIe4BACLuAQAk7gEAJO4BACfuAQAn7gEAKe4BADLuAQA07gEAN+4BADnuAQA57gEAO+4BADvuAQBC7gEAQu4BAEfuAQBH7gEASe4BAEnuAQBL7gEAS+4BAE3uAQBP7gEAUe4BAFLuAQBU7gEAVO4BAFfuAQBX7gEAWe4BAFnuAQBb7gEAW+4BAF3uAQBd7gEAX+4BAF/uAQBh7gEAYu4BAGTuAQBk7gEAZ+4BAGruAQBs7gEAcu4BAHTuAQB37gEAee4BAHzuAQB+7gEAfu4BAIDuAQCJ7gEAi+4BAJvuAQCh7gEAo+4BAKXuAQCp7gEAq+4BALvuAQDw7gEA8e4BAADwAQAr8AEAMPABAJPwAQCg8AEArvABALHwAQC/8AEAwfABAM/wAQDR8AEA9fABAADxAQCt8QEA5vEBAALyAQAQ8gEAO/IBAEDyAQBI8gEAUPIBAFHyAQBg8gEAZfIBAADzAQDX9gEA3fYBAOz2AQDw9gEA/PYBAAD3AQBz9wEAgPcBANj3AQDg9wEA6/cBAPD3AQDw9wEAAPgBAAv4AQAQ+AEAR/gBAFD4AQBZ+AEAYPgBAIf4AQCQ+AEArfgBALD4AQCx+AEAAPkBAFP6AQBg+gEAbfoBAHD6AQB0+gEAePoBAHz6AQCA+gEAhvoBAJD6AQCs+gEAsPoBALr6AQDA+gEAxfoBAND6AQDZ+gEA4PoBAOf6AQDw+gEA9voBAAD7AQCS+wEAlPsBAMr7AQDw+wEA+fsBAAAAAgDfpgIAAKcCADi3AgBAtwIAHbgCACC4AgChzgIAsM4CAODrAgAA+AIAHfoCAAAAAwBKEwMAAAAAAGEBAAAAAwAAbwMAAIMEAACJBAAAkQUAAL0FAAC/BQAAvwUAAMEFAADCBQAAxAUAAMUFAADHBQAAxwUAABAGAAAaBgAASwYAAF8GAABwBgAAcAYAANYGAADcBgAA3wYAAOQGAADnBgAA6AYAAOoGAADtBgAAEQcAABEHAAAwBwAASgcAAKYHAACwBwAA6wcAAPMHAAD9BwAA/QcAABYIAAAZCAAAGwgAACMIAAAlCAAAJwgAACkIAAAtCAAAWQgAAFsIAACYCAAAnwgAAMoIAADhCAAA4wgAAAIJAAA6CQAAOgkAADwJAAA8CQAAQQkAAEgJAABNCQAATQkAAFEJAABXCQAAYgkAAGMJAACBCQAAgQkAALwJAAC8CQAAvgkAAL4JAADBCQAAxAkAAM0JAADNCQAA1wkAANcJAADiCQAA4wkAAP4JAAD+CQAAAQoAAAIKAAA8CgAAPAoAAEEKAABCCgAARwoAAEgKAABLCgAATQoAAFEKAABRCgAAcAoAAHEKAAB1CgAAdQoAAIEKAACCCgAAvAoAALwKAADBCgAAxQoAAMcKAADICgAAzQoAAM0KAADiCgAA4woAAPoKAAD/CgAAAQsAAAELAAA8CwAAPAsAAD4LAAA/CwAAQQsAAEQLAABNCwAATQsAAFULAABXCwAAYgsAAGMLAACCCwAAggsAAL4LAAC+CwAAwAsAAMALAADNCwAAzQsAANcLAADXCwAAAAwAAAAMAAAEDAAABAwAADwMAAA8DAAAPgwAAEAMAABGDAAASAwAAEoMAABNDAAAVQwAAFYMAABiDAAAYwwAAIEMAACBDAAAvAwAALwMAAC/DAAAvwwAAMIMAADCDAAAxgwAAMYMAADMDAAAzQwAANUMAADWDAAA4gwAAOMMAAAADQAAAQ0AADsNAAA8DQAAPg0AAD4NAABBDQAARA0AAE0NAABNDQAAVw0AAFcNAABiDQAAYw0AAIENAACBDQAAyg0AAMoNAADPDQAAzw0AANINAADUDQAA1g0AANYNAADfDQAA3w0AADEOAAAxDgAANA4AADoOAABHDgAATg4AALEOAACxDgAAtA4AALwOAADIDgAAzQ4AABgPAAAZDwAANQ8AADUPAAA3DwAANw8AADkPAAA5DwAAcQ8AAH4PAACADwAAhA8AAIYPAACHDwAAjQ8AAJcPAACZDwAAvA8AAMYPAADGDwAALRAAADAQAAAyEAAANxAAADkQAAA6EAAAPRAAAD4QAABYEAAAWRAAAF4QAABgEAAAcRAAAHQQAACCEAAAghAAAIUQAACGEAAAjRAAAI0QAACdEAAAnRAAAF0TAABfEwAAEhcAABQXAAAyFwAAMxcAAFIXAABTFwAAchcAAHMXAAC0FwAAtRcAALcXAAC9FwAAxhcAAMYXAADJFwAA0xcAAN0XAADdFwAACxgAAA0YAAAPGAAADxgAAIUYAACGGAAAqRgAAKkYAAAgGQAAIhkAACcZAAAoGQAAMhkAADIZAAA5GQAAOxkAABcaAAAYGgAAGxoAABsaAABWGgAAVhoAAFgaAABeGgAAYBoAAGAaAABiGgAAYhoAAGUaAABsGgAAcxoAAHwaAAB/GgAAfxoAALAaAADOGgAAABsAAAMbAAA0GwAAOhsAADwbAAA8GwAAQhsAAEIbAABrGwAAcxsAAIAbAACBGwAAohsAAKUbAACoGwAAqRsAAKsbAACtGwAA5hsAAOYbAADoGwAA6RsAAO0bAADtGwAA7xsAAPEbAAAsHAAAMxwAADYcAAA3HAAA0BwAANIcAADUHAAA4BwAAOIcAADoHAAA7RwAAO0cAAD0HAAA9BwAAPgcAAD5HAAAwB0AAP8dAAAMIAAADCAAANAgAADwIAAA7ywAAPEsAAB/LQAAfy0AAOAtAAD/LQAAKjAAAC8wAACZMAAAmjAAAG+mAABypgAAdKYAAH2mAACepgAAn6YAAPCmAADxpgAAAqgAAAKoAAAGqAAABqgAAAuoAAALqAAAJagAACaoAAAsqAAALKgAAMSoAADFqAAA4KgAAPGoAAD/qAAA/6gAACapAAAtqQAAR6kAAFGpAACAqQAAgqkAALOpAACzqQAAtqkAALmpAAC8qQAAvakAAOWpAADlqQAAKaoAAC6qAAAxqgAAMqoAADWqAAA2qgAAQ6oAAEOqAABMqgAATKoAAHyqAAB8qgAAsKoAALCqAACyqgAAtKoAALeqAAC4qgAAvqoAAL+qAADBqgAAwaoAAOyqAADtqgAA9qoAAPaqAADlqwAA5asAAOirAADoqwAA7asAAO2rAAAe+wAAHvsAAAD+AAAP/gAAIP4AAC/+AACe/wAAn/8AAP0BAQD9AQEA4AIBAOACAQB2AwEAegMBAAEKAQADCgEABQoBAAYKAQAMCgEADwoBADgKAQA6CgEAPwoBAD8KAQDlCgEA5goBACQNAQAnDQEAqw4BAKwOAQBGDwEAUA8BAIIPAQCFDwEAARABAAEQAQA4EAEARhABAHAQAQBwEAEAcxABAHQQAQB/EAEAgRABALMQAQC2EAEAuRABALoQAQDCEAEAwhABAAARAQACEQEAJxEBACsRAQAtEQEANBEBAHMRAQBzEQEAgBEBAIERAQC2EQEAvhEBAMkRAQDMEQEAzxEBAM8RAQAvEgEAMRIBADQSAQA0EgEANhIBADcSAQA+EgEAPhIBAN8SAQDfEgEA4xIBAOoSAQAAEwEAARMBADsTAQA8EwEAPhMBAD4TAQBAEwEAQBMBAFcTAQBXEwEAZhMBAGwTAQBwEwEAdBMBADgUAQA/FAEAQhQBAEQUAQBGFAEARhQBAF4UAQBeFAEAsBQBALAUAQCzFAEAuBQBALoUAQC6FAEAvRQBAL0UAQC/FAEAwBQBAMIUAQDDFAEArxUBAK8VAQCyFQEAtRUBALwVAQC9FQEAvxUBAMAVAQDcFQEA3RUBADMWAQA6FgEAPRYBAD0WAQA/FgEAQBYBAKsWAQCrFgEArRYBAK0WAQCwFgEAtRYBALcWAQC3FgEAHRcBAB8XAQAiFwEAJRcBACcXAQArFwEALxgBADcYAQA5GAEAOhgBADAZAQAwGQEAOxkBADwZAQA+GQEAPhkBAEMZAQBDGQEA1BkBANcZAQDaGQEA2xkBAOAZAQDgGQEAARoBAAoaAQAzGgEAOBoBADsaAQA+GgEARxoBAEcaAQBRGgEAVhoBAFkaAQBbGgEAihoBAJYaAQCYGgEAmRoBADAcAQA2HAEAOBwBAD0cAQA/HAEAPxwBAJIcAQCnHAEAqhwBALAcAQCyHAEAsxwBALUcAQC2HAEAMR0BADYdAQA6HQEAOh0BADwdAQA9HQEAPx0BAEUdAQBHHQEARx0BAJAdAQCRHQEAlR0BAJUdAQCXHQEAlx0BAPMeAQD0HgEA8GoBAPRqAQAwawEANmsBAE9vAQBPbwEAj28BAJJvAQDkbwEA5G8BAJ28AQCevAEAAM8BAC3PAQAwzwEARs8BAGXRAQBl0QEAZ9EBAGnRAQBu0QEActEBAHvRAQCC0QEAhdEBAIvRAQCq0QEArdEBAELSAQBE0gEAANoBADbaAQA72gEAbNoBAHXaAQB12gEAhNoBAITaAQCb2gEAn9oBAKHaAQCv2gEAAOABAAbgAQAI4AEAGOABABvgAQAh4AEAI+ABACTgAQAm4AEAKuABADDhAQA24QEAruIBAK7iAQDs4gEA7+IBANDoAQDW6AEAROkBAErpAQAgAA4AfwAOAAABDgDvAQ4AAAAAADcAAABNCQAATQkAAM0JAADNCQAATQoAAE0KAADNCgAAzQoAAE0LAABNCwAAzQsAAM0LAABNDAAATQwAAM0MAADNDAAAOw0AADwNAABNDQAATQ0AAMoNAADKDQAAOg4AADoOAAC6DgAAug4AAIQPAACEDwAAORAAADoQAAAUFwAAFRcAADQXAAA0FwAA0hcAANIXAABgGgAAYBoAAEQbAABEGwAAqhsAAKsbAADyGwAA8xsAAH8tAAB/LQAABqgAAAaoAAAsqAAALKgAAMSoAADEqAAAU6kAAFOpAADAqQAAwKkAAPaqAAD2qgAA7asAAO2rAAA/CgEAPwoBAEYQAQBGEAEAcBABAHAQAQB/EAEAfxABALkQAQC5EAEAMxEBADQRAQDAEQEAwBEBADUSAQA1EgEA6hIBAOoSAQBNEwEATRMBAEIUAQBCFAEAwhQBAMIUAQC/FQEAvxUBAD8WAQA/FgEAthYBALYWAQArFwEAKxcBADkYAQA5GAEAPRkBAD4ZAQDgGQEA4BkBADQaAQA0GgEARxoBAEcaAQCZGgEAmRoBAD8cAQA/HAEARB0BAEUdAQCXHQEAlx0BAAAAAAAkAAAAcAMAAHMDAAB1AwAAdwMAAHoDAAB9AwAAfwMAAH8DAACEAwAAhAMAAIYDAACGAwAAiAMAAIoDAACMAwAAjAMAAI4DAAChAwAAowMAAOEDAADwAwAA/wMAACYdAAAqHQAAXR0AAGEdAABmHQAAah0AAL8dAAC/HQAAAB8AABUfAAAYHwAAHR8AACAfAABFHwAASB8AAE0fAABQHwAAVx8AAFkfAABZHwAAWx8AAFsfAABdHwAAXR8AAF8fAAB9HwAAgB8AALQfAAC2HwAAxB8AAMYfAADTHwAA1h8AANsfAADdHwAA7x8AAPIfAAD0HwAA9h8AAP4fAAAmIQAAJiEAAGWrAABlqwAAQAEBAI4BAQCgAQEAoAEBAADSAQBF0gEAQeDFCAtyDgAAAIEKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvAoAAMUKAADHCgAAyQoAAMsKAADNCgAA0AoAANAKAADgCgAA4woAAOYKAADxCgAA+QoAAP8KAEHgxggLMwYAAABgHQEAZR0BAGcdAQBoHQEAah0BAI4dAQCQHQEAkR0BAJMdAQCYHQEAoB0BAKkdAQBBoMcIC4IBEAAAAAEKAAADCgAABQoAAAoKAAAPCgAAEAoAABMKAAAoCgAAKgoAADAKAAAyCgAAMwoAADUKAAA2CgAAOAoAADkKAAA8CgAAPAoAAD4KAABCCgAARwoAAEgKAABLCgAATQoAAFEKAABRCgAAWQoAAFwKAABeCgAAXgoAAGYKAAB2CgBBsMgIC6MBFAAAAIAuAACZLgAAmy4AAPMuAAAALwAA1S8AAAUwAAAFMAAABzAAAAcwAAAhMAAAKTAAADgwAAA7MAAAADQAAL9NAAAATgAA/58AAAD5AABt+gAAcPoAANn6AADibwEA428BAPBvAQDxbwEAAAACAN+mAgAApwIAOLcCAEC3AgAduAIAILgCAKHOAgCwzgIA4OsCAAD4AgAd+gIAAAADAEoTAwBB4MkIC3IOAAAAABEAAP8RAAAuMAAALzAAADExAACOMQAAADIAAB4yAABgMgAAfjIAAGCpAAB8qQAAAKwAAKPXAACw1wAAxtcAAMvXAAD71wAAoP8AAL7/AADC/wAAx/8AAMr/AADP/wAA0v8AANf/AADa/wAA3P8AQeDKCAvCAQIAAAAADQEAJw0BADANAQA5DQEAAQAAACAXAAA0FwAAAwAAAOAIAQDyCAEA9AgBAPUIAQD7CAEA/wgBAAAAAAAJAAAAkQUAAMcFAADQBQAA6gUAAO8FAAD0BQAAHfsAADb7AAA4+wAAPPsAAD77AAA++wAAQPsAAEH7AABD+wAARPsAAEb7AABP+wAAAAAAAAYAAAAwAAAAOQAAAEEAAABGAAAAYQAAAGYAAAAQ/wAAGf8AACH/AAAm/wAAQf8AAEb/AEGwzAgLQgUAAABBMAAAljAAAJ0wAACfMAAAAbABAB+xAQBQsQEAUrEBAADyAQAA8gEAAQAAAKGkAADzpAAAAQAAAJ+CAADxggBBgM0IC1IKAAAALQAAAC0AAACtAAAArQAAAIoFAACKBQAABhgAAAYYAAAQIAAAESAAABcuAAAXLgAA+zAAAPswAABj/gAAY/4AAA3/AAAN/wAAZf8AAGX/AEHgzQgLwy8CAAAA8C8AAPEvAAD0LwAA+y8AAAEAAADyLwAA8y8AAPQCAAAwAAAAOQAAAEEAAABaAAAAXwAAAF8AAABhAAAAegAAAKoAAACqAAAAtQAAALUAAAC3AAAAtwAAALoAAAC6AAAAwAAAANYAAADYAAAA9gAAAPgAAADBAgAAxgIAANECAADgAgAA5AIAAOwCAADsAgAA7gIAAO4CAAAAAwAAdAMAAHYDAAB3AwAAegMAAH0DAAB/AwAAfwMAAIYDAACKAwAAjAMAAIwDAACOAwAAoQMAAKMDAAD1AwAA9wMAAIEEAACDBAAAhwQAAIoEAAAvBQAAMQUAAFYFAABZBQAAWQUAAGAFAACIBQAAkQUAAL0FAAC/BQAAvwUAAMEFAADCBQAAxAUAAMUFAADHBQAAxwUAANAFAADqBQAA7wUAAPIFAAAQBgAAGgYAACAGAABpBgAAbgYAANMGAADVBgAA3AYAAN8GAADoBgAA6gYAAPwGAAD/BgAA/wYAABAHAABKBwAATQcAALEHAADABwAA9QcAAPoHAAD6BwAA/QcAAP0HAAAACAAALQgAAEAIAABbCAAAYAgAAGoIAABwCAAAhwgAAIkIAACOCAAAmAgAAOEIAADjCAAAYwkAAGYJAABvCQAAcQkAAIMJAACFCQAAjAkAAI8JAACQCQAAkwkAAKgJAACqCQAAsAkAALIJAACyCQAAtgkAALkJAAC8CQAAxAkAAMcJAADICQAAywkAAM4JAADXCQAA1wkAANwJAADdCQAA3wkAAOMJAADmCQAA8QkAAPwJAAD8CQAA/gkAAP4JAAABCgAAAwoAAAUKAAAKCgAADwoAABAKAAATCgAAKAoAACoKAAAwCgAAMgoAADMKAAA1CgAANgoAADgKAAA5CgAAPAoAADwKAAA+CgAAQgoAAEcKAABICgAASwoAAE0KAABRCgAAUQoAAFkKAABcCgAAXgoAAF4KAABmCgAAdQoAAIEKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvAoAAMUKAADHCgAAyQoAAMsKAADNCgAA0AoAANAKAADgCgAA4woAAOYKAADvCgAA+QoAAP8KAAABCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAADwLAABECwAARwsAAEgLAABLCwAATQsAAFULAABXCwAAXAsAAF0LAABfCwAAYwsAAGYLAABvCwAAcQsAAHELAACCCwAAgwsAAIULAACKCwAAjgsAAJALAACSCwAAlQsAAJkLAACaCwAAnAsAAJwLAACeCwAAnwsAAKMLAACkCwAAqAsAAKoLAACuCwAAuQsAAL4LAADCCwAAxgsAAMgLAADKCwAAzQsAANALAADQCwAA1wsAANcLAADmCwAA7wsAAAAMAAAMDAAADgwAABAMAAASDAAAKAwAACoMAAA5DAAAPAwAAEQMAABGDAAASAwAAEoMAABNDAAAVQwAAFYMAABYDAAAWgwAAF0MAABdDAAAYAwAAGMMAABmDAAAbwwAAIAMAACDDAAAhQwAAIwMAACODAAAkAwAAJIMAACoDAAAqgwAALMMAAC1DAAAuQwAALwMAADEDAAAxgwAAMgMAADKDAAAzQwAANUMAADWDAAA3QwAAN4MAADgDAAA4wwAAOYMAADvDAAA8QwAAPIMAAAADQAADA0AAA4NAAAQDQAAEg0AAEQNAABGDQAASA0AAEoNAABODQAAVA0AAFcNAABfDQAAYw0AAGYNAABvDQAAeg0AAH8NAACBDQAAgw0AAIUNAACWDQAAmg0AALENAACzDQAAuw0AAL0NAAC9DQAAwA0AAMYNAADKDQAAyg0AAM8NAADUDQAA1g0AANYNAADYDQAA3w0AAOYNAADvDQAA8g0AAPMNAAABDgAAOg4AAEAOAABODgAAUA4AAFkOAACBDgAAgg4AAIQOAACEDgAAhg4AAIoOAACMDgAAow4AAKUOAAClDgAApw4AAL0OAADADgAAxA4AAMYOAADGDgAAyA4AAM0OAADQDgAA2Q4AANwOAADfDgAAAA8AAAAPAAAYDwAAGQ8AACAPAAApDwAANQ8AADUPAAA3DwAANw8AADkPAAA5DwAAPg8AAEcPAABJDwAAbA8AAHEPAACEDwAAhg8AAJcPAACZDwAAvA8AAMYPAADGDwAAABAAAEkQAABQEAAAnRAAAKAQAADFEAAAxxAAAMcQAADNEAAAzRAAANAQAAD6EAAA/BAAAEgSAABKEgAATRIAAFASAABWEgAAWBIAAFgSAABaEgAAXRIAAGASAACIEgAAihIAAI0SAACQEgAAsBIAALISAAC1EgAAuBIAAL4SAADAEgAAwBIAAMISAADFEgAAyBIAANYSAADYEgAAEBMAABITAAAVEwAAGBMAAFoTAABdEwAAXxMAAGkTAABxEwAAgBMAAI8TAACgEwAA9RMAAPgTAAD9EwAAARQAAGwWAABvFgAAfxYAAIEWAACaFgAAoBYAAOoWAADuFgAA+BYAAAAXAAAVFwAAHxcAADQXAABAFwAAUxcAAGAXAABsFwAAbhcAAHAXAAByFwAAcxcAAIAXAADTFwAA1xcAANcXAADcFwAA3RcAAOAXAADpFwAACxgAAA0YAAAPGAAAGRgAACAYAAB4GAAAgBgAAKoYAACwGAAA9RgAAAAZAAAeGQAAIBkAACsZAAAwGQAAOxkAAEYZAABtGQAAcBkAAHQZAACAGQAAqxkAALAZAADJGQAA0BkAANoZAAAAGgAAGxoAACAaAABeGgAAYBoAAHwaAAB/GgAAiRoAAJAaAACZGgAApxoAAKcaAACwGgAAvRoAAL8aAADOGgAAABsAAEwbAABQGwAAWRsAAGsbAABzGwAAgBsAAPMbAAAAHAAANxwAAEAcAABJHAAATRwAAH0cAACAHAAAiBwAAJAcAAC6HAAAvRwAAL8cAADQHAAA0hwAANQcAAD6HAAAAB0AABUfAAAYHwAAHR8AACAfAABFHwAASB8AAE0fAABQHwAAVx8AAFkfAABZHwAAWx8AAFsfAABdHwAAXR8AAF8fAAB9HwAAgB8AALQfAAC2HwAAvB8AAL4fAAC+HwAAwh8AAMQfAADGHwAAzB8AANAfAADTHwAA1h8AANsfAADgHwAA7B8AAPIfAAD0HwAA9h8AAPwfAAA/IAAAQCAAAFQgAABUIAAAcSAAAHEgAAB/IAAAfyAAAJAgAACcIAAA0CAAANwgAADhIAAA4SAAAOUgAADwIAAAAiEAAAIhAAAHIQAAByEAAAohAAATIQAAFSEAABUhAAAYIQAAHSEAACQhAAAkIQAAJiEAACYhAAAoIQAAKCEAACohAAA5IQAAPCEAAD8hAABFIQAASSEAAE4hAABOIQAAYCEAAIghAAAALAAA5CwAAOssAADzLAAAAC0AACUtAAAnLQAAJy0AAC0tAAAtLQAAMC0AAGctAABvLQAAby0AAH8tAACWLQAAoC0AAKYtAACoLQAAri0AALAtAAC2LQAAuC0AAL4tAADALQAAxi0AAMgtAADOLQAA0C0AANYtAADYLQAA3i0AAOAtAAD/LQAABTAAAAcwAAAhMAAALzAAADEwAAA1MAAAODAAADwwAABBMAAAljAAAJkwAACfMAAAoTAAAPowAAD8MAAA/zAAAAUxAAAvMQAAMTEAAI4xAACgMQAAvzEAAPAxAAD/MQAAADQAAL9NAAAATgAAjKQAANCkAAD9pAAAAKUAAAymAAAQpgAAK6YAAECmAABvpgAAdKYAAH2mAAB/pgAA8aYAABenAAAfpwAAIqcAAIinAACLpwAAyqcAANCnAADRpwAA06cAANOnAADVpwAA2acAAPKnAAAnqAAALKgAACyoAABAqAAAc6gAAICoAADFqAAA0KgAANmoAADgqAAA96gAAPuoAAD7qAAA/agAAC2pAAAwqQAAU6kAAGCpAAB8qQAAgKkAAMCpAADPqQAA2akAAOCpAAD+qQAAAKoAADaqAABAqgAATaoAAFCqAABZqgAAYKoAAHaqAAB6qgAAwqoAANuqAADdqgAA4KoAAO+qAADyqgAA9qoAAAGrAAAGqwAACasAAA6rAAARqwAAFqsAACCrAAAmqwAAKKsAAC6rAAAwqwAAWqsAAFyrAABpqwAAcKsAAOqrAADsqwAA7asAAPCrAAD5qwAAAKwAAKPXAACw1wAAxtcAAMvXAAD71wAAAPkAAG36AABw+gAA2foAAAD7AAAG+wAAE/sAABf7AAAd+wAAKPsAACr7AAA2+wAAOPsAADz7AAA++wAAPvsAAED7AABB+wAAQ/sAAET7AABG+wAAsfsAANP7AAA9/QAAUP0AAI/9AACS/QAAx/0AAPD9AAD7/QAAAP4AAA/+AAAg/gAAL/4AADP+AAA0/gAATf4AAE/+AABw/gAAdP4AAHb+AAD8/gAAEP8AABn/AAAh/wAAOv8AAD//AAA//wAAQf8AAFr/AABm/wAAvv8AAML/AADH/wAAyv8AAM//AADS/wAA1/8AANr/AADc/wAAAAABAAsAAQANAAEAJgABACgAAQA6AAEAPAABAD0AAQA/AAEATQABAFAAAQBdAAEAgAABAPoAAQBAAQEAdAEBAP0BAQD9AQEAgAIBAJwCAQCgAgEA0AIBAOACAQDgAgEAAAMBAB8DAQAtAwEASgMBAFADAQB6AwEAgAMBAJ0DAQCgAwEAwwMBAMgDAQDPAwEA0QMBANUDAQAABAEAnQQBAKAEAQCpBAEAsAQBANMEAQDYBAEA+wQBAAAFAQAnBQEAMAUBAGMFAQBwBQEAegUBAHwFAQCKBQEAjAUBAJIFAQCUBQEAlQUBAJcFAQChBQEAowUBALEFAQCzBQEAuQUBALsFAQC8BQEAAAYBADYHAQBABwEAVQcBAGAHAQBnBwEAgAcBAIUHAQCHBwEAsAcBALIHAQC6BwEAAAgBAAUIAQAICAEACAgBAAoIAQA1CAEANwgBADgIAQA8CAEAPAgBAD8IAQBVCAEAYAgBAHYIAQCACAEAnggBAOAIAQDyCAEA9AgBAPUIAQAACQEAFQkBACAJAQA5CQEAgAkBALcJAQC+CQEAvwkBAAAKAQADCgEABQoBAAYKAQAMCgEAEwoBABUKAQAXCgEAGQoBADUKAQA4CgEAOgoBAD8KAQA/CgEAYAoBAHwKAQCACgEAnAoBAMAKAQDHCgEAyQoBAOYKAQAACwEANQsBAEALAQBVCwEAYAsBAHILAQCACwEAkQsBAAAMAQBIDAEAgAwBALIMAQDADAEA8gwBAAANAQAnDQEAMA0BADkNAQCADgEAqQ4BAKsOAQCsDgEAsA4BALEOAQAADwEAHA8BACcPAQAnDwEAMA8BAFAPAQBwDwEAhQ8BALAPAQDEDwEA4A8BAPYPAQAAEAEARhABAGYQAQB1EAEAfxABALoQAQDCEAEAwhABANAQAQDoEAEA8BABAPkQAQAAEQEANBEBADYRAQA/EQEARBEBAEcRAQBQEQEAcxEBAHYRAQB2EQEAgBEBAMQRAQDJEQEAzBEBAM4RAQDaEQEA3BEBANwRAQAAEgEAERIBABMSAQA3EgEAPhIBAD4SAQCAEgEAhhIBAIgSAQCIEgEAihIBAI0SAQCPEgEAnRIBAJ8SAQCoEgEAsBIBAOoSAQDwEgEA+RIBAAATAQADEwEABRMBAAwTAQAPEwEAEBMBABMTAQAoEwEAKhMBADATAQAyEwEAMxMBADUTAQA5EwEAOxMBAEQTAQBHEwEASBMBAEsTAQBNEwEAUBMBAFATAQBXEwEAVxMBAF0TAQBjEwEAZhMBAGwTAQBwEwEAdBMBAAAUAQBKFAEAUBQBAFkUAQBeFAEAYRQBAIAUAQDFFAEAxxQBAMcUAQDQFAEA2RQBAIAVAQC1FQEAuBUBAMAVAQDYFQEA3RUBAAAWAQBAFgEARBYBAEQWAQBQFgEAWRYBAIAWAQC4FgEAwBYBAMkWAQAAFwEAGhcBAB0XAQArFwEAMBcBADkXAQBAFwEARhcBAAAYAQA6GAEAoBgBAOkYAQD/GAEABhkBAAkZAQAJGQEADBkBABMZAQAVGQEAFhkBABgZAQA1GQEANxkBADgZAQA7GQEAQxkBAFAZAQBZGQEAoBkBAKcZAQCqGQEA1xkBANoZAQDhGQEA4xkBAOQZAQAAGgEAPhoBAEcaAQBHGgEAUBoBAJkaAQCdGgEAnRoBALAaAQD4GgEAABwBAAgcAQAKHAEANhwBADgcAQBAHAEAUBwBAFkcAQByHAEAjxwBAJIcAQCnHAEAqRwBALYcAQAAHQEABh0BAAgdAQAJHQEACx0BADYdAQA6HQEAOh0BADwdAQA9HQEAPx0BAEcdAQBQHQEAWR0BAGAdAQBlHQEAZx0BAGgdAQBqHQEAjh0BAJAdAQCRHQEAkx0BAJgdAQCgHQEAqR0BAOAeAQD2HgEAsB8BALAfAQAAIAEAmSMBAAAkAQBuJAEAgCQBAEMlAQCQLwEA8C8BAAAwAQAuNAEAAEQBAEZGAQAAaAEAOGoBAEBqAQBeagEAYGoBAGlqAQBwagEAvmoBAMBqAQDJagEA0GoBAO1qAQDwagEA9GoBAABrAQA2awEAQGsBAENrAQBQawEAWWsBAGNrAQB3awEAfWsBAI9rAQBAbgEAf24BAABvAQBKbwEAT28BAIdvAQCPbwEAn28BAOBvAQDhbwEA428BAORvAQDwbwEA8W8BAABwAQD3hwEAAIgBANWMAQAAjQEACI0BAPCvAQDzrwEA9a8BAPuvAQD9rwEA/q8BAACwAQAisQEAULEBAFKxAQBksQEAZ7EBAHCxAQD7sgEAALwBAGq8AQBwvAEAfLwBAIC8AQCIvAEAkLwBAJm8AQCdvAEAnrwBAADPAQAtzwEAMM8BAEbPAQBl0QEAadEBAG3RAQBy0QEAe9EBAILRAQCF0QEAi9EBAKrRAQCt0QEAQtIBAETSAQAA1AEAVNQBAFbUAQCc1AEAntQBAJ/UAQCi1AEAotQBAKXUAQCm1AEAqdQBAKzUAQCu1AEAudQBALvUAQC71AEAvdQBAMPUAQDF1AEABdUBAAfVAQAK1QEADdUBABTVAQAW1QEAHNUBAB7VAQA51QEAO9UBAD7VAQBA1QEARNUBAEbVAQBG1QEAStUBAFDVAQBS1QEApdYBAKjWAQDA1gEAwtYBANrWAQDc1gEA+tYBAPzWAQAU1wEAFtcBADTXAQA21wEATtcBAFDXAQBu1wEAcNcBAIjXAQCK1wEAqNcBAKrXAQDC1wEAxNcBAMvXAQDO1wEA/9cBAADaAQA22gEAO9oBAGzaAQB12gEAddoBAITaAQCE2gEAm9oBAJ/aAQCh2gEAr9oBAADfAQAe3wEAAOABAAbgAQAI4AEAGOABABvgAQAh4AEAI+ABACTgAQAm4AEAKuABAADhAQAs4QEAMOEBAD3hAQBA4QEASeEBAE7hAQBO4QEAkOIBAK7iAQDA4gEA+eIBAODnAQDm5wEA6OcBAOvnAQDt5wEA7ucBAPDnAQD+5wEAAOgBAMToAQDQ6AEA1ugBAADpAQBL6QEAUOkBAFnpAQAA7gEAA+4BAAXuAQAf7gEAIe4BACLuAQAk7gEAJO4BACfuAQAn7gEAKe4BADLuAQA07gEAN+4BADnuAQA57gEAO+4BADvuAQBC7gEAQu4BAEfuAQBH7gEASe4BAEnuAQBL7gEAS+4BAE3uAQBP7gEAUe4BAFLuAQBU7gEAVO4BAFfuAQBX7gEAWe4BAFnuAQBb7gEAW+4BAF3uAQBd7gEAX+4BAF/uAQBh7gEAYu4BAGTuAQBk7gEAZ+4BAGruAQBs7gEAcu4BAHTuAQB37gEAee4BAHzuAQB+7gEAfu4BAIDuAQCJ7gEAi+4BAJvuAQCh7gEAo+4BAKXuAQCp7gEAq+4BALvuAQDw+wEA+fsBAAAAAgDfpgIAAKcCADi3AgBAtwIAHbgCACC4AgChzgIAsM4CAODrAgAA+AIAHfoCAAAAAwBKEwMAAAEOAO8BDgBBsP0IC8MoiAIAAEEAAABaAAAAYQAAAHoAAACqAAAAqgAAALUAAAC1AAAAugAAALoAAADAAAAA1gAAANgAAAD2AAAA+AAAAMECAADGAgAA0QIAAOACAADkAgAA7AIAAOwCAADuAgAA7gIAAHADAAB0AwAAdgMAAHcDAAB6AwAAfQMAAH8DAAB/AwAAhgMAAIYDAACIAwAAigMAAIwDAACMAwAAjgMAAKEDAACjAwAA9QMAAPcDAACBBAAAigQAAC8FAAAxBQAAVgUAAFkFAABZBQAAYAUAAIgFAADQBQAA6gUAAO8FAADyBQAAIAYAAEoGAABuBgAAbwYAAHEGAADTBgAA1QYAANUGAADlBgAA5gYAAO4GAADvBgAA+gYAAPwGAAD/BgAA/wYAABAHAAAQBwAAEgcAAC8HAABNBwAApQcAALEHAACxBwAAygcAAOoHAAD0BwAA9QcAAPoHAAD6BwAAAAgAABUIAAAaCAAAGggAACQIAAAkCAAAKAgAACgIAABACAAAWAgAAGAIAABqCAAAcAgAAIcIAACJCAAAjggAAKAIAADJCAAABAkAADkJAAA9CQAAPQkAAFAJAABQCQAAWAkAAGEJAABxCQAAgAkAAIUJAACMCQAAjwkAAJAJAACTCQAAqAkAAKoJAACwCQAAsgkAALIJAAC2CQAAuQkAAL0JAAC9CQAAzgkAAM4JAADcCQAA3QkAAN8JAADhCQAA8AkAAPEJAAD8CQAA/AkAAAUKAAAKCgAADwoAABAKAAATCgAAKAoAACoKAAAwCgAAMgoAADMKAAA1CgAANgoAADgKAAA5CgAAWQoAAFwKAABeCgAAXgoAAHIKAAB0CgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvQoAAL0KAADQCgAA0AoAAOAKAADhCgAA+QoAAPkKAAAFCwAADAsAAA8LAAAQCwAAEwsAACgLAAAqCwAAMAsAADILAAAzCwAANQsAADkLAAA9CwAAPQsAAFwLAABdCwAAXwsAAGELAABxCwAAcQsAAIMLAACDCwAAhQsAAIoLAACOCwAAkAsAAJILAACVCwAAmQsAAJoLAACcCwAAnAsAAJ4LAACfCwAAowsAAKQLAACoCwAAqgsAAK4LAAC5CwAA0AsAANALAAAFDAAADAwAAA4MAAAQDAAAEgwAACgMAAAqDAAAOQwAAD0MAAA9DAAAWAwAAFoMAABdDAAAXQwAAGAMAABhDAAAgAwAAIAMAACFDAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvQwAAL0MAADdDAAA3gwAAOAMAADhDAAA8QwAAPIMAAAEDQAADA0AAA4NAAAQDQAAEg0AADoNAAA9DQAAPQ0AAE4NAABODQAAVA0AAFYNAABfDQAAYQ0AAHoNAAB/DQAAhQ0AAJYNAACaDQAAsQ0AALMNAAC7DQAAvQ0AAL0NAADADQAAxg0AAAEOAAAwDgAAMg4AADMOAABADgAARg4AAIEOAACCDgAAhA4AAIQOAACGDgAAig4AAIwOAACjDgAApQ4AAKUOAACnDgAAsA4AALIOAACzDgAAvQ4AAL0OAADADgAAxA4AAMYOAADGDgAA3A4AAN8OAAAADwAAAA8AAEAPAABHDwAASQ8AAGwPAACIDwAAjA8AAAAQAAAqEAAAPxAAAD8QAABQEAAAVRAAAFoQAABdEAAAYRAAAGEQAABlEAAAZhAAAG4QAABwEAAAdRAAAIEQAACOEAAAjhAAAKAQAADFEAAAxxAAAMcQAADNEAAAzRAAANAQAAD6EAAA/BAAAEgSAABKEgAATRIAAFASAABWEgAAWBIAAFgSAABaEgAAXRIAAGASAACIEgAAihIAAI0SAACQEgAAsBIAALISAAC1EgAAuBIAAL4SAADAEgAAwBIAAMISAADFEgAAyBIAANYSAADYEgAAEBMAABITAAAVEwAAGBMAAFoTAACAEwAAjxMAAKATAAD1EwAA+BMAAP0TAAABFAAAbBYAAG8WAAB/FgAAgRYAAJoWAACgFgAA6hYAAO4WAAD4FgAAABcAABEXAAAfFwAAMRcAAEAXAABRFwAAYBcAAGwXAABuFwAAcBcAAIAXAACzFwAA1xcAANcXAADcFwAA3BcAACAYAAB4GAAAgBgAAKgYAACqGAAAqhgAALAYAAD1GAAAABkAAB4ZAABQGQAAbRkAAHAZAAB0GQAAgBkAAKsZAACwGQAAyRkAAAAaAAAWGgAAIBoAAFQaAACnGgAApxoAAAUbAAAzGwAARRsAAEwbAACDGwAAoBsAAK4bAACvGwAAuhsAAOUbAAAAHAAAIxwAAE0cAABPHAAAWhwAAH0cAACAHAAAiBwAAJAcAAC6HAAAvRwAAL8cAADpHAAA7BwAAO4cAADzHAAA9RwAAPYcAAD6HAAA+hwAAAAdAAC/HQAAAB4AABUfAAAYHwAAHR8AACAfAABFHwAASB8AAE0fAABQHwAAVx8AAFkfAABZHwAAWx8AAFsfAABdHwAAXR8AAF8fAAB9HwAAgB8AALQfAAC2HwAAvB8AAL4fAAC+HwAAwh8AAMQfAADGHwAAzB8AANAfAADTHwAA1h8AANsfAADgHwAA7B8AAPIfAAD0HwAA9h8AAPwfAABxIAAAcSAAAH8gAAB/IAAAkCAAAJwgAAACIQAAAiEAAAchAAAHIQAACiEAABMhAAAVIQAAFSEAABghAAAdIQAAJCEAACQhAAAmIQAAJiEAACghAAAoIQAAKiEAADkhAAA8IQAAPyEAAEUhAABJIQAATiEAAE4hAABgIQAAiCEAAAAsAADkLAAA6ywAAO4sAADyLAAA8ywAAAAtAAAlLQAAJy0AACctAAAtLQAALS0AADAtAABnLQAAby0AAG8tAACALQAAli0AAKAtAACmLQAAqC0AAK4tAACwLQAAti0AALgtAAC+LQAAwC0AAMYtAADILQAAzi0AANAtAADWLQAA2C0AAN4tAAAFMAAABzAAACEwAAApMAAAMTAAADUwAAA4MAAAPDAAAEEwAACWMAAAmzAAAJ8wAAChMAAA+jAAAPwwAAD/MAAABTEAAC8xAAAxMQAAjjEAAKAxAAC/MQAA8DEAAP8xAAAANAAAv00AAABOAACMpAAA0KQAAP2kAAAApQAADKYAABCmAAAfpgAAKqYAACumAABApgAAbqYAAH+mAACdpgAAoKYAAO+mAAAXpwAAH6cAACKnAACIpwAAi6cAAMqnAADQpwAA0acAANOnAADTpwAA1acAANmnAADypwAAAagAAAOoAAAFqAAAB6gAAAqoAAAMqAAAIqgAAECoAABzqAAAgqgAALOoAADyqAAA96gAAPuoAAD7qAAA/agAAP6oAAAKqQAAJakAADCpAABGqQAAYKkAAHypAACEqQAAsqkAAM+pAADPqQAA4KkAAOSpAADmqQAA76kAAPqpAAD+qQAAAKoAACiqAABAqgAAQqoAAESqAABLqgAAYKoAAHaqAAB6qgAAeqoAAH6qAACvqgAAsaoAALGqAAC1qgAAtqoAALmqAAC9qgAAwKoAAMCqAADCqgAAwqoAANuqAADdqgAA4KoAAOqqAADyqgAA9KoAAAGrAAAGqwAACasAAA6rAAARqwAAFqsAACCrAAAmqwAAKKsAAC6rAAAwqwAAWqsAAFyrAABpqwAAcKsAAOKrAAAArAAAo9cAALDXAADG1wAAy9cAAPvXAAAA+QAAbfoAAHD6AADZ+gAAAPsAAAb7AAAT+wAAF/sAAB37AAAd+wAAH/sAACj7AAAq+wAANvsAADj7AAA8+wAAPvsAAD77AABA+wAAQfsAAEP7AABE+wAARvsAALH7AADT+wAAPf0AAFD9AACP/QAAkv0AAMf9AADw/QAA+/0AAHD+AAB0/gAAdv4AAPz+AAAh/wAAOv8AAEH/AABa/wAAZv8AAL7/AADC/wAAx/8AAMr/AADP/wAA0v8AANf/AADa/wAA3P8AAAAAAQALAAEADQABACYAAQAoAAEAOgABADwAAQA9AAEAPwABAE0AAQBQAAEAXQABAIAAAQD6AAEAQAEBAHQBAQCAAgEAnAIBAKACAQDQAgEAAAMBAB8DAQAtAwEASgMBAFADAQB1AwEAgAMBAJ0DAQCgAwEAwwMBAMgDAQDPAwEA0QMBANUDAQAABAEAnQQBALAEAQDTBAEA2AQBAPsEAQAABQEAJwUBADAFAQBjBQEAcAUBAHoFAQB8BQEAigUBAIwFAQCSBQEAlAUBAJUFAQCXBQEAoQUBAKMFAQCxBQEAswUBALkFAQC7BQEAvAUBAAAGAQA2BwEAQAcBAFUHAQBgBwEAZwcBAIAHAQCFBwEAhwcBALAHAQCyBwEAugcBAAAIAQAFCAEACAgBAAgIAQAKCAEANQgBADcIAQA4CAEAPAgBADwIAQA/CAEAVQgBAGAIAQB2CAEAgAgBAJ4IAQDgCAEA8ggBAPQIAQD1CAEAAAkBABUJAQAgCQEAOQkBAIAJAQC3CQEAvgkBAL8JAQAACgEAAAoBABAKAQATCgEAFQoBABcKAQAZCgEANQoBAGAKAQB8CgEAgAoBAJwKAQDACgEAxwoBAMkKAQDkCgEAAAsBADULAQBACwEAVQsBAGALAQByCwEAgAsBAJELAQAADAEASAwBAIAMAQCyDAEAwAwBAPIMAQAADQEAIw0BAIAOAQCpDgEAsA4BALEOAQAADwEAHA8BACcPAQAnDwEAMA8BAEUPAQBwDwEAgQ8BALAPAQDEDwEA4A8BAPYPAQADEAEANxABAHEQAQByEAEAdRABAHUQAQCDEAEArxABANAQAQDoEAEAAxEBACYRAQBEEQEARBEBAEcRAQBHEQEAUBEBAHIRAQB2EQEAdhEBAIMRAQCyEQEAwREBAMQRAQDaEQEA2hEBANwRAQDcEQEAABIBABESAQATEgEAKxIBAIASAQCGEgEAiBIBAIgSAQCKEgEAjRIBAI8SAQCdEgEAnxIBAKgSAQCwEgEA3hIBAAUTAQAMEwEADxMBABATAQATEwEAKBMBACoTAQAwEwEAMhMBADMTAQA1EwEAORMBAD0TAQA9EwEAUBMBAFATAQBdEwEAYRMBAAAUAQA0FAEARxQBAEoUAQBfFAEAYRQBAIAUAQCvFAEAxBQBAMUUAQDHFAEAxxQBAIAVAQCuFQEA2BUBANsVAQAAFgEALxYBAEQWAQBEFgEAgBYBAKoWAQC4FgEAuBYBAAAXAQAaFwEAQBcBAEYXAQAAGAEAKxgBAKAYAQDfGAEA/xgBAAYZAQAJGQEACRkBAAwZAQATGQEAFRkBABYZAQAYGQEALxkBAD8ZAQA/GQEAQRkBAEEZAQCgGQEApxkBAKoZAQDQGQEA4RkBAOEZAQDjGQEA4xkBAAAaAQAAGgEACxoBADIaAQA6GgEAOhoBAFAaAQBQGgEAXBoBAIkaAQCdGgEAnRoBALAaAQD4GgEAABwBAAgcAQAKHAEALhwBAEAcAQBAHAEAchwBAI8cAQAAHQEABh0BAAgdAQAJHQEACx0BADAdAQBGHQEARh0BAGAdAQBlHQEAZx0BAGgdAQBqHQEAiR0BAJgdAQCYHQEA4B4BAPIeAQCwHwEAsB8BAAAgAQCZIwEAACQBAG4kAQCAJAEAQyUBAJAvAQDwLwEAADABAC40AQAARAEARkYBAABoAQA4agEAQGoBAF5qAQBwagEAvmoBANBqAQDtagEAAGsBAC9rAQBAawEAQ2sBAGNrAQB3awEAfWsBAI9rAQBAbgEAf24BAABvAQBKbwEAUG8BAFBvAQCTbwEAn28BAOBvAQDhbwEA428BAONvAQAAcAEA94cBAACIAQDVjAEAAI0BAAiNAQDwrwEA868BAPWvAQD7rwEA/a8BAP6vAQAAsAEAIrEBAFCxAQBSsQEAZLEBAGexAQBwsQEA+7IBAAC8AQBqvAEAcLwBAHy8AQCAvAEAiLwBAJC8AQCZvAEAANQBAFTUAQBW1AEAnNQBAJ7UAQCf1AEAotQBAKLUAQCl1AEAptQBAKnUAQCs1AEArtQBALnUAQC71AEAu9QBAL3UAQDD1AEAxdQBAAXVAQAH1QEACtUBAA3VAQAU1QEAFtUBABzVAQAe1QEAOdUBADvVAQA+1QEAQNUBAETVAQBG1QEARtUBAErVAQBQ1QEAUtUBAKXWAQCo1gEAwNYBAMLWAQDa1gEA3NYBAPrWAQD81gEAFNcBABbXAQA01wEANtcBAE7XAQBQ1wEAbtcBAHDXAQCI1wEAitcBAKjXAQCq1wEAwtcBAMTXAQDL1wEAAN8BAB7fAQAA4QEALOEBADfhAQA94QEATuEBAE7hAQCQ4gEAreIBAMDiAQDr4gEA4OcBAObnAQDo5wEA6+cBAO3nAQDu5wEA8OcBAP7nAQAA6AEAxOgBAADpAQBD6QEAS+kBAEvpAQAA7gEAA+4BAAXuAQAf7gEAIe4BACLuAQAk7gEAJO4BACfuAQAn7gEAKe4BADLuAQA07gEAN+4BADnuAQA57gEAO+4BADvuAQBC7gEAQu4BAEfuAQBH7gEASe4BAEnuAQBL7gEAS+4BAE3uAQBP7gEAUe4BAFLuAQBU7gEAVO4BAFfuAQBX7gEAWe4BAFnuAQBb7gEAW+4BAF3uAQBd7gEAX+4BAF/uAQBh7gEAYu4BAGTuAQBk7gEAZ+4BAGruAQBs7gEAcu4BAHTuAQB37gEAee4BAHzuAQB+7gEAfu4BAIDuAQCJ7gEAi+4BAJvuAQCh7gEAo+4BAKXuAQCp7gEAq+4BALvuAQAAAAIA36YCAACnAgA4twIAQLcCAB24AgAguAIAoc4CALDOAgDg6wIAAPgCAB36AgAAAAMAShMDAEGApgkLswETAAAABjAAAAcwAAAhMAAAKTAAADgwAAA6MAAAADQAAL9NAAAATgAA/58AAAD5AABt+gAAcPoAANn6AADkbwEA5G8BAABwAQD3hwEAAIgBANWMAQAAjQEACI0BAHCxAQD7sgEAAAACAN+mAgAApwIAOLcCAEC3AgAduAIAILgCAKHOAgCwzgIA4OsCAAD4AgAd+gIAAAADAEoTAwAAAAAAAgAAAEAIAQBVCAEAVwgBAF8IAQBBwKcJC4MCHQAAAAADAABvAwAAhQQAAIYEAABLBgAAVQYAAHAGAABwBgAAUQkAAFQJAACwGgAAzhoAANAcAADSHAAA1BwAAOAcAADiHAAA6BwAAO0cAADtHAAA9BwAAPQcAAD4HAAA+RwAAMAdAAD/HQAADCAAAA0gAADQIAAA8CAAACowAAAtMAAAmTAAAJowAAAA/gAAD/4AACD+AAAt/gAA/QEBAP0BAQDgAgEA4AIBADsTAQA7EwEAAM8BAC3PAQAwzwEARs8BAGfRAQBp0QEAe9EBAILRAQCF0QEAi9EBAKrRAQCt0QEAAAEOAO8BDgAAAAAAAgAAAGALAQByCwEAeAsBAH8LAQBB0KkJCxMCAAAAQAsBAFULAQBYCwEAXwsBAEHwqQkLJgMAAACAqQAAzakAANCpAADZqQAA3qkAAN+pAAABAAAADCAAAA0gAEGgqgkLEwIAAACAEAEAwhABAM0QAQDNEAEAQcCqCQuiAg0AAACADAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvAwAAMQMAADGDAAAyAwAAMoMAADNDAAA1QwAANYMAADdDAAA3gwAAOAMAADjDAAA5gwAAO8MAADxDAAA8gwAAAAAAAANAAAAoTAAAPowAAD9MAAA/zAAAPAxAAD/MQAA0DIAAP4yAAAAMwAAVzMAAGb/AABv/wAAcf8AAJ3/AADwrwEA868BAPWvAQD7rwEA/a8BAP6vAQAAsAEAALABACCxAQAisQEAZLEBAGexAQAAAAAAAwAAAKGlAAD2pQAApqoAAK+qAACxqgAA3aoAAAAAAAAEAAAApgAAAK8AAACxAAAA3QAAAECDAAB+gwAAgIMAAJaDAEHwrAkLEgIAAAAAqQAALakAAC+pAAAvqQBBkK0JC0MIAAAAAAoBAAMKAQAFCgEABgoBAAwKAQATCgEAFQoBABcKAQAZCgEANQoBADgKAQA6CgEAPwoBAEgKAQBQCgEAWAoBAEHgrQkLEwIAAADkbwEA5G8BAACLAQDVjAEAQYCuCQsiBAAAAIAXAADdFwAA4BcAAOkXAADwFwAA+RcAAOAZAAD/GQBBsK4JCxMCAAAAABIBABESAQATEgEAPhIBAEHQrgkLEwIAAACwEgEA6hIBAPASAQD5EgEAQfCuCQvDKIgCAABBAAAAWgAAAGEAAAB6AAAAqgAAAKoAAAC1AAAAtQAAALoAAAC6AAAAwAAAANYAAADYAAAA9gAAAPgAAADBAgAAxgIAANECAADgAgAA5AIAAOwCAADsAgAA7gIAAO4CAABwAwAAdAMAAHYDAAB3AwAAegMAAH0DAAB/AwAAfwMAAIYDAACGAwAAiAMAAIoDAACMAwAAjAMAAI4DAAChAwAAowMAAPUDAAD3AwAAgQQAAIoEAAAvBQAAMQUAAFYFAABZBQAAWQUAAGAFAACIBQAA0AUAAOoFAADvBQAA8gUAACAGAABKBgAAbgYAAG8GAABxBgAA0wYAANUGAADVBgAA5QYAAOYGAADuBgAA7wYAAPoGAAD8BgAA/wYAAP8GAAAQBwAAEAcAABIHAAAvBwAATQcAAKUHAACxBwAAsQcAAMoHAADqBwAA9AcAAPUHAAD6BwAA+gcAAAAIAAAVCAAAGggAABoIAAAkCAAAJAgAACgIAAAoCAAAQAgAAFgIAABgCAAAaggAAHAIAACHCAAAiQgAAI4IAACgCAAAyQgAAAQJAAA5CQAAPQkAAD0JAABQCQAAUAkAAFgJAABhCQAAcQkAAIAJAACFCQAAjAkAAI8JAACQCQAAkwkAAKgJAACqCQAAsAkAALIJAACyCQAAtgkAALkJAAC9CQAAvQkAAM4JAADOCQAA3AkAAN0JAADfCQAA4QkAAPAJAADxCQAA/AkAAPwJAAAFCgAACgoAAA8KAAAQCgAAEwoAACgKAAAqCgAAMAoAADIKAAAzCgAANQoAADYKAAA4CgAAOQoAAFkKAABcCgAAXgoAAF4KAAByCgAAdAoAAIUKAACNCgAAjwoAAJEKAACTCgAAqAoAAKoKAACwCgAAsgoAALMKAAC1CgAAuQoAAL0KAAC9CgAA0AoAANAKAADgCgAA4QoAAPkKAAD5CgAABQsAAAwLAAAPCwAAEAsAABMLAAAoCwAAKgsAADALAAAyCwAAMwsAADULAAA5CwAAPQsAAD0LAABcCwAAXQsAAF8LAABhCwAAcQsAAHELAACDCwAAgwsAAIULAACKCwAAjgsAAJALAACSCwAAlQsAAJkLAACaCwAAnAsAAJwLAACeCwAAnwsAAKMLAACkCwAAqAsAAKoLAACuCwAAuQsAANALAADQCwAABQwAAAwMAAAODAAAEAwAABIMAAAoDAAAKgwAADkMAAA9DAAAPQwAAFgMAABaDAAAXQwAAF0MAABgDAAAYQwAAIAMAACADAAAhQwAAIwMAACODAAAkAwAAJIMAACoDAAAqgwAALMMAAC1DAAAuQwAAL0MAAC9DAAA3QwAAN4MAADgDAAA4QwAAPEMAADyDAAABA0AAAwNAAAODQAAEA0AABINAAA6DQAAPQ0AAD0NAABODQAATg0AAFQNAABWDQAAXw0AAGENAAB6DQAAfw0AAIUNAACWDQAAmg0AALENAACzDQAAuw0AAL0NAAC9DQAAwA0AAMYNAAABDgAAMA4AADIOAAAzDgAAQA4AAEYOAACBDgAAgg4AAIQOAACEDgAAhg4AAIoOAACMDgAAow4AAKUOAAClDgAApw4AALAOAACyDgAAsw4AAL0OAAC9DgAAwA4AAMQOAADGDgAAxg4AANwOAADfDgAAAA8AAAAPAABADwAARw8AAEkPAABsDwAAiA8AAIwPAAAAEAAAKhAAAD8QAAA/EAAAUBAAAFUQAABaEAAAXRAAAGEQAABhEAAAZRAAAGYQAABuEAAAcBAAAHUQAACBEAAAjhAAAI4QAACgEAAAxRAAAMcQAADHEAAAzRAAAM0QAADQEAAA+hAAAPwQAABIEgAAShIAAE0SAABQEgAAVhIAAFgSAABYEgAAWhIAAF0SAABgEgAAiBIAAIoSAACNEgAAkBIAALASAACyEgAAtRIAALgSAAC+EgAAwBIAAMASAADCEgAAxRIAAMgSAADWEgAA2BIAABATAAASEwAAFRMAABgTAABaEwAAgBMAAI8TAACgEwAA9RMAAPgTAAD9EwAAARQAAGwWAABvFgAAfxYAAIEWAACaFgAAoBYAAOoWAADxFgAA+BYAAAAXAAARFwAAHxcAADEXAABAFwAAURcAAGAXAABsFwAAbhcAAHAXAACAFwAAsxcAANcXAADXFwAA3BcAANwXAAAgGAAAeBgAAIAYAACEGAAAhxgAAKgYAACqGAAAqhgAALAYAAD1GAAAABkAAB4ZAABQGQAAbRkAAHAZAAB0GQAAgBkAAKsZAACwGQAAyRkAAAAaAAAWGgAAIBoAAFQaAACnGgAApxoAAAUbAAAzGwAARRsAAEwbAACDGwAAoBsAAK4bAACvGwAAuhsAAOUbAAAAHAAAIxwAAE0cAABPHAAAWhwAAH0cAACAHAAAiBwAAJAcAAC6HAAAvRwAAL8cAADpHAAA7BwAAO4cAADzHAAA9RwAAPYcAAD6HAAA+hwAAAAdAAC/HQAAAB4AABUfAAAYHwAAHR8AACAfAABFHwAASB8AAE0fAABQHwAAVx8AAFkfAABZHwAAWx8AAFsfAABdHwAAXR8AAF8fAAB9HwAAgB8AALQfAAC2HwAAvB8AAL4fAAC+HwAAwh8AAMQfAADGHwAAzB8AANAfAADTHwAA1h8AANsfAADgHwAA7B8AAPIfAAD0HwAA9h8AAPwfAABxIAAAcSAAAH8gAAB/IAAAkCAAAJwgAAACIQAAAiEAAAchAAAHIQAACiEAABMhAAAVIQAAFSEAABkhAAAdIQAAJCEAACQhAAAmIQAAJiEAACghAAAoIQAAKiEAAC0hAAAvIQAAOSEAADwhAAA/IQAARSEAAEkhAABOIQAATiEAAIMhAACEIQAAACwAAOQsAADrLAAA7iwAAPIsAADzLAAAAC0AACUtAAAnLQAAJy0AAC0tAAAtLQAAMC0AAGctAABvLQAAby0AAIAtAACWLQAAoC0AAKYtAACoLQAAri0AALAtAAC2LQAAuC0AAL4tAADALQAAxi0AAMgtAADOLQAA0C0AANYtAADYLQAA3i0AAC8uAAAvLgAABTAAAAYwAAAxMAAANTAAADswAAA8MAAAQTAAAJYwAACdMAAAnzAAAKEwAAD6MAAA/DAAAP8wAAAFMQAALzEAADExAACOMQAAoDEAAL8xAADwMQAA/zEAAAA0AAC/TQAAAE4AAIykAADQpAAA/aQAAAClAAAMpgAAEKYAAB+mAAAqpgAAK6YAAECmAABupgAAf6YAAJ2mAACgpgAA5aYAABenAAAfpwAAIqcAAIinAACLpwAAyqcAANCnAADRpwAA06cAANOnAADVpwAA2acAAPKnAAABqAAAA6gAAAWoAAAHqAAACqgAAAyoAAAiqAAAQKgAAHOoAACCqAAAs6gAAPKoAAD3qAAA+6gAAPuoAAD9qAAA/qgAAAqpAAAlqQAAMKkAAEapAABgqQAAfKkAAISpAACyqQAAz6kAAM+pAADgqQAA5KkAAOapAADvqQAA+qkAAP6pAAAAqgAAKKoAAECqAABCqgAARKoAAEuqAABgqgAAdqoAAHqqAAB6qgAAfqoAAK+qAACxqgAAsaoAALWqAAC2qgAAuaoAAL2qAADAqgAAwKoAAMKqAADCqgAA26oAAN2qAADgqgAA6qoAAPKqAAD0qgAAAasAAAarAAAJqwAADqsAABGrAAAWqwAAIKsAACarAAAoqwAALqsAADCrAABaqwAAXKsAAGmrAABwqwAA4qsAAACsAACj1wAAsNcAAMbXAADL1wAA+9cAAAD5AABt+gAAcPoAANn6AAAA+wAABvsAABP7AAAX+wAAHfsAAB37AAAf+wAAKPsAACr7AAA2+wAAOPsAADz7AAA++wAAPvsAAED7AABB+wAAQ/sAAET7AABG+wAAsfsAANP7AAA9/QAAUP0AAI/9AACS/QAAx/0AAPD9AAD7/QAAcP4AAHT+AAB2/gAA/P4AACH/AAA6/wAAQf8AAFr/AABm/wAAvv8AAML/AADH/wAAyv8AAM//AADS/wAA1/8AANr/AADc/wAAAAABAAsAAQANAAEAJgABACgAAQA6AAEAPAABAD0AAQA/AAEATQABAFAAAQBdAAEAgAABAPoAAQCAAgEAnAIBAKACAQDQAgEAAAMBAB8DAQAtAwEAQAMBAEIDAQBJAwEAUAMBAHUDAQCAAwEAnQMBAKADAQDDAwEAyAMBAM8DAQAABAEAnQQBALAEAQDTBAEA2AQBAPsEAQAABQEAJwUBADAFAQBjBQEAcAUBAHoFAQB8BQEAigUBAIwFAQCSBQEAlAUBAJUFAQCXBQEAoQUBAKMFAQCxBQEAswUBALkFAQC7BQEAvAUBAAAGAQA2BwEAQAcBAFUHAQBgBwEAZwcBAIAHAQCFBwEAhwcBALAHAQCyBwEAugcBAAAIAQAFCAEACAgBAAgIAQAKCAEANQgBADcIAQA4CAEAPAgBADwIAQA/CAEAVQgBAGAIAQB2CAEAgAgBAJ4IAQDgCAEA8ggBAPQIAQD1CAEAAAkBABUJAQAgCQEAOQkBAIAJAQC3CQEAvgkBAL8JAQAACgEAAAoBABAKAQATCgEAFQoBABcKAQAZCgEANQoBAGAKAQB8CgEAgAoBAJwKAQDACgEAxwoBAMkKAQDkCgEAAAsBADULAQBACwEAVQsBAGALAQByCwEAgAsBAJELAQAADAEASAwBAIAMAQCyDAEAwAwBAPIMAQAADQEAIw0BAIAOAQCpDgEAsA4BALEOAQAADwEAHA8BACcPAQAnDwEAMA8BAEUPAQBwDwEAgQ8BALAPAQDEDwEA4A8BAPYPAQADEAEANxABAHEQAQByEAEAdRABAHUQAQCDEAEArxABANAQAQDoEAEAAxEBACYRAQBEEQEARBEBAEcRAQBHEQEAUBEBAHIRAQB2EQEAdhEBAIMRAQCyEQEAwREBAMQRAQDaEQEA2hEBANwRAQDcEQEAABIBABESAQATEgEAKxIBAIASAQCGEgEAiBIBAIgSAQCKEgEAjRIBAI8SAQCdEgEAnxIBAKgSAQCwEgEA3hIBAAUTAQAMEwEADxMBABATAQATEwEAKBMBACoTAQAwEwEAMhMBADMTAQA1EwEAORMBAD0TAQA9EwEAUBMBAFATAQBdEwEAYRMBAAAUAQA0FAEARxQBAEoUAQBfFAEAYRQBAIAUAQCvFAEAxBQBAMUUAQDHFAEAxxQBAIAVAQCuFQEA2BUBANsVAQAAFgEALxYBAEQWAQBEFgEAgBYBAKoWAQC4FgEAuBYBAAAXAQAaFwEAQBcBAEYXAQAAGAEAKxgBAKAYAQDfGAEA/xgBAAYZAQAJGQEACRkBAAwZAQATGQEAFRkBABYZAQAYGQEALxkBAD8ZAQA/GQEAQRkBAEEZAQCgGQEApxkBAKoZAQDQGQEA4RkBAOEZAQDjGQEA4xkBAAAaAQAAGgEACxoBADIaAQA6GgEAOhoBAFAaAQBQGgEAXBoBAIkaAQCdGgEAnRoBALAaAQD4GgEAABwBAAgcAQAKHAEALhwBAEAcAQBAHAEAchwBAI8cAQAAHQEABh0BAAgdAQAJHQEACx0BADAdAQBGHQEARh0BAGAdAQBlHQEAZx0BAGgdAQBqHQEAiR0BAJgdAQCYHQEA4B4BAPIeAQCwHwEAsB8BAAAgAQCZIwEAgCQBAEMlAQCQLwEA8C8BAAAwAQAuNAEAAEQBAEZGAQAAaAEAOGoBAEBqAQBeagEAcGoBAL5qAQDQagEA7WoBAABrAQAvawEAQGsBAENrAQBjawEAd2sBAH1rAQCPawEAQG4BAH9uAQAAbwEASm8BAFBvAQBQbwEAk28BAJ9vAQDgbwEA4W8BAONvAQDjbwEAAHABAPeHAQAAiAEA1YwBAACNAQAIjQEA8K8BAPOvAQD1rwEA+68BAP2vAQD+rwEAALABACKxAQBQsQEAUrEBAGSxAQBnsQEAcLEBAPuyAQAAvAEAarwBAHC8AQB8vAEAgLwBAIi8AQCQvAEAmbwBAADUAQBU1AEAVtQBAJzUAQCe1AEAn9QBAKLUAQCi1AEApdQBAKbUAQCp1AEArNQBAK7UAQC51AEAu9QBALvUAQC91AEAw9QBAMXUAQAF1QEAB9UBAArVAQAN1QEAFNUBABbVAQAc1QEAHtUBADnVAQA71QEAPtUBAEDVAQBE1QEARtUBAEbVAQBK1QEAUNUBAFLVAQCl1gEAqNYBAMDWAQDC1gEA2tYBANzWAQD61gEA/NYBABTXAQAW1wEANNcBADbXAQBO1wEAUNcBAG7XAQBw1wEAiNcBAIrXAQCo1wEAqtcBAMLXAQDE1wEAy9cBAADfAQAe3wEAAOEBACzhAQA34QEAPeEBAE7hAQBO4QEAkOIBAK3iAQDA4gEA6+IBAODnAQDm5wEA6OcBAOvnAQDt5wEA7ucBAPDnAQD+5wEAAOgBAMToAQAA6QEAQ+kBAEvpAQBL6QEAAO4BAAPuAQAF7gEAH+4BACHuAQAi7gEAJO4BACTuAQAn7gEAJ+4BACnuAQAy7gEANO4BADfuAQA57gEAOe4BADvuAQA77gEAQu4BAELuAQBH7gEAR+4BAEnuAQBJ7gEAS+4BAEvuAQBN7gEAT+4BAFHuAQBS7gEAVO4BAFTuAQBX7gEAV+4BAFnuAQBZ7gEAW+4BAFvuAQBd7gEAXe4BAF/uAQBf7gEAYe4BAGLuAQBk7gEAZO4BAGfuAQBq7gEAbO4BAHLuAQB07gEAd+4BAHnuAQB87gEAfu4BAH7uAQCA7gEAie4BAIvuAQCb7gEAoe4BAKPuAQCl7gEAqe4BAKvuAQC77gEAAAACAN+mAgAApwIAOLcCAEC3AgAduAIAILgCAKHOAgCwzgIA4OsCAAD4AgAd+gIAAAADAEoTAwBBwNcJC/MIjgAAAEEAAABaAAAAYQAAAHoAAAC1AAAAtQAAAMAAAADWAAAA2AAAAPYAAAD4AAAAugEAALwBAAC/AQAAxAEAAJMCAACVAgAArwIAAHADAABzAwAAdgMAAHcDAAB7AwAAfQMAAH8DAAB/AwAAhgMAAIYDAACIAwAAigMAAIwDAACMAwAAjgMAAKEDAACjAwAA9QMAAPcDAACBBAAAigQAAC8FAAAxBQAAVgUAAGAFAACIBQAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAA0BAAAPoQAAD9EAAA/xAAAKATAAD1EwAA+BMAAP0TAACAHAAAiBwAAJAcAAC6HAAAvRwAAL8cAAAAHQAAKx0AAGsdAAB3HQAAeR0AAJodAAAAHgAAFR8AABgfAAAdHwAAIB8AAEUfAABIHwAATR8AAFAfAABXHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAH0fAACAHwAAtB8AALYfAAC8HwAAvh8AAL4fAADCHwAAxB8AAMYfAADMHwAA0B8AANMfAADWHwAA2x8AAOAfAADsHwAA8h8AAPQfAAD2HwAA/B8AAAIhAAACIQAAByEAAAchAAAKIQAAEyEAABUhAAAVIQAAGSEAAB0hAAAkIQAAJCEAACYhAAAmIQAAKCEAACghAAAqIQAALSEAAC8hAAA0IQAAOSEAADkhAAA8IQAAPyEAAEUhAABJIQAATiEAAE4hAACDIQAAhCEAAAAsAAB7LAAAfiwAAOQsAADrLAAA7iwAAPIsAADzLAAAAC0AACUtAAAnLQAAJy0AAC0tAAAtLQAAQKYAAG2mAACApgAAm6YAACKnAABvpwAAcacAAIenAACLpwAAjqcAAJCnAADKpwAA0KcAANGnAADTpwAA06cAANWnAADZpwAA9acAAPanAAD6pwAA+qcAADCrAABaqwAAYKsAAGirAABwqwAAv6sAAAD7AAAG+wAAE/sAABf7AAAh/wAAOv8AAEH/AABa/wAAAAQBAE8EAQCwBAEA0wQBANgEAQD7BAEAcAUBAHoFAQB8BQEAigUBAIwFAQCSBQEAlAUBAJUFAQCXBQEAoQUBAKMFAQCxBQEAswUBALkFAQC7BQEAvAUBAIAMAQCyDAEAwAwBAPIMAQCgGAEA3xgBAEBuAQB/bgEAANQBAFTUAQBW1AEAnNQBAJ7UAQCf1AEAotQBAKLUAQCl1AEAptQBAKnUAQCs1AEArtQBALnUAQC71AEAu9QBAL3UAQDD1AEAxdQBAAXVAQAH1QEACtUBAA3VAQAU1QEAFtUBABzVAQAe1QEAOdUBADvVAQA+1QEAQNUBAETVAQBG1QEARtUBAErVAQBQ1QEAUtUBAKXWAQCo1gEAwNYBAMLWAQDa1gEA3NYBAPrWAQD81gEAFNcBABbXAQA01wEANtcBAE7XAQBQ1wEAbtcBAHDXAQCI1wEAitcBAKjXAQCq1wEAwtcBAMTXAQDL1wEAAN8BAAnfAQAL3wEAHt8BAADpAQBD6QEAQcDgCQuTAwsAAACBDgAAgg4AAIQOAACEDgAAhg4AAIoOAACMDgAAow4AAKUOAAClDgAApw4AAL0OAADADgAAxA4AAMYOAADGDgAAyA4AAM0OAADQDgAA2Q4AANwOAADfDgAAAAAAACYAAABBAAAAWgAAAGEAAAB6AAAAqgAAAKoAAAC6AAAAugAAAMAAAADWAAAA2AAAAPYAAAD4AAAAuAIAAOACAADkAgAAAB0AACUdAAAsHQAAXB0AAGIdAABlHQAAax0AAHcdAAB5HQAAvh0AAAAeAAD/HgAAcSAAAHEgAAB/IAAAfyAAAJAgAACcIAAAKiEAACshAAAyIQAAMiEAAE4hAABOIQAAYCEAAIghAABgLAAAfywAACKnAACHpwAAi6cAAMqnAADQpwAA0acAANOnAADTpwAA1acAANmnAADypwAA/6cAADCrAABaqwAAXKsAAGSrAABmqwAAaasAAAD7AAAG+wAAIf8AADr/AABB/wAAWv8AAIAHAQCFBwEAhwcBALAHAQCyBwEAugcBAADfAQAe3wEAQeDjCQvDAQMAAAAAHAAANxwAADscAABJHAAATRwAAE8cAAAAAAAABQAAAAAZAAAeGQAAIBkAACsZAAAwGQAAOxkAAEAZAABAGQAARBkAAE8ZAAAAAAAAAwAAAAAGAQA2BwEAQAcBAFUHAQBgBwEAZwcBAAAAAAAHAAAAAAABAAsAAQANAAEAJgABACgAAQA6AAEAPAABAD0AAQA/AAEATQABAFAAAQBdAAEAgAABAPoAAQAAAAAAAgAAANCkAAD/pAAAsB8BALAfAQBBsOUJC4JOkQIAAGEAAAB6AAAAtQAAALUAAADfAAAA9gAAAPgAAAD/AAAAAQEAAAEBAAADAQAAAwEAAAUBAAAFAQAABwEAAAcBAAAJAQAACQEAAAsBAAALAQAADQEAAA0BAAAPAQAADwEAABEBAAARAQAAEwEAABMBAAAVAQAAFQEAABcBAAAXAQAAGQEAABkBAAAbAQAAGwEAAB0BAAAdAQAAHwEAAB8BAAAhAQAAIQEAACMBAAAjAQAAJQEAACUBAAAnAQAAJwEAACkBAAApAQAAKwEAACsBAAAtAQAALQEAAC8BAAAvAQAAMQEAADEBAAAzAQAAMwEAADUBAAA1AQAANwEAADgBAAA6AQAAOgEAADwBAAA8AQAAPgEAAD4BAABAAQAAQAEAAEIBAABCAQAARAEAAEQBAABGAQAARgEAAEgBAABJAQAASwEAAEsBAABNAQAATQEAAE8BAABPAQAAUQEAAFEBAABTAQAAUwEAAFUBAABVAQAAVwEAAFcBAABZAQAAWQEAAFsBAABbAQAAXQEAAF0BAABfAQAAXwEAAGEBAABhAQAAYwEAAGMBAABlAQAAZQEAAGcBAABnAQAAaQEAAGkBAABrAQAAawEAAG0BAABtAQAAbwEAAG8BAABxAQAAcQEAAHMBAABzAQAAdQEAAHUBAAB3AQAAdwEAAHoBAAB6AQAAfAEAAHwBAAB+AQAAgAEAAIMBAACDAQAAhQEAAIUBAACIAQAAiAEAAIwBAACNAQAAkgEAAJIBAACVAQAAlQEAAJkBAACbAQAAngEAAJ4BAAChAQAAoQEAAKMBAACjAQAApQEAAKUBAACoAQAAqAEAAKoBAACrAQAArQEAAK0BAACwAQAAsAEAALQBAAC0AQAAtgEAALYBAAC5AQAAugEAAL0BAAC/AQAAxgEAAMYBAADJAQAAyQEAAMwBAADMAQAAzgEAAM4BAADQAQAA0AEAANIBAADSAQAA1AEAANQBAADWAQAA1gEAANgBAADYAQAA2gEAANoBAADcAQAA3QEAAN8BAADfAQAA4QEAAOEBAADjAQAA4wEAAOUBAADlAQAA5wEAAOcBAADpAQAA6QEAAOsBAADrAQAA7QEAAO0BAADvAQAA8AEAAPMBAADzAQAA9QEAAPUBAAD5AQAA+QEAAPsBAAD7AQAA/QEAAP0BAAD/AQAA/wEAAAECAAABAgAAAwIAAAMCAAAFAgAABQIAAAcCAAAHAgAACQIAAAkCAAALAgAACwIAAA0CAAANAgAADwIAAA8CAAARAgAAEQIAABMCAAATAgAAFQIAABUCAAAXAgAAFwIAABkCAAAZAgAAGwIAABsCAAAdAgAAHQIAAB8CAAAfAgAAIQIAACECAAAjAgAAIwIAACUCAAAlAgAAJwIAACcCAAApAgAAKQIAACsCAAArAgAALQIAAC0CAAAvAgAALwIAADECAAAxAgAAMwIAADkCAAA8AgAAPAIAAD8CAABAAgAAQgIAAEICAABHAgAARwIAAEkCAABJAgAASwIAAEsCAABNAgAATQIAAE8CAACTAgAAlQIAAK8CAABxAwAAcQMAAHMDAABzAwAAdwMAAHcDAAB7AwAAfQMAAJADAACQAwAArAMAAM4DAADQAwAA0QMAANUDAADXAwAA2QMAANkDAADbAwAA2wMAAN0DAADdAwAA3wMAAN8DAADhAwAA4QMAAOMDAADjAwAA5QMAAOUDAADnAwAA5wMAAOkDAADpAwAA6wMAAOsDAADtAwAA7QMAAO8DAADzAwAA9QMAAPUDAAD4AwAA+AMAAPsDAAD8AwAAMAQAAF8EAABhBAAAYQQAAGMEAABjBAAAZQQAAGUEAABnBAAAZwQAAGkEAABpBAAAawQAAGsEAABtBAAAbQQAAG8EAABvBAAAcQQAAHEEAABzBAAAcwQAAHUEAAB1BAAAdwQAAHcEAAB5BAAAeQQAAHsEAAB7BAAAfQQAAH0EAAB/BAAAfwQAAIEEAACBBAAAiwQAAIsEAACNBAAAjQQAAI8EAACPBAAAkQQAAJEEAACTBAAAkwQAAJUEAACVBAAAlwQAAJcEAACZBAAAmQQAAJsEAACbBAAAnQQAAJ0EAACfBAAAnwQAAKEEAAChBAAAowQAAKMEAAClBAAApQQAAKcEAACnBAAAqQQAAKkEAACrBAAAqwQAAK0EAACtBAAArwQAAK8EAACxBAAAsQQAALMEAACzBAAAtQQAALUEAAC3BAAAtwQAALkEAAC5BAAAuwQAALsEAAC9BAAAvQQAAL8EAAC/BAAAwgQAAMIEAADEBAAAxAQAAMYEAADGBAAAyAQAAMgEAADKBAAAygQAAMwEAADMBAAAzgQAAM8EAADRBAAA0QQAANMEAADTBAAA1QQAANUEAADXBAAA1wQAANkEAADZBAAA2wQAANsEAADdBAAA3QQAAN8EAADfBAAA4QQAAOEEAADjBAAA4wQAAOUEAADlBAAA5wQAAOcEAADpBAAA6QQAAOsEAADrBAAA7QQAAO0EAADvBAAA7wQAAPEEAADxBAAA8wQAAPMEAAD1BAAA9QQAAPcEAAD3BAAA+QQAAPkEAAD7BAAA+wQAAP0EAAD9BAAA/wQAAP8EAAABBQAAAQUAAAMFAAADBQAABQUAAAUFAAAHBQAABwUAAAkFAAAJBQAACwUAAAsFAAANBQAADQUAAA8FAAAPBQAAEQUAABEFAAATBQAAEwUAABUFAAAVBQAAFwUAABcFAAAZBQAAGQUAABsFAAAbBQAAHQUAAB0FAAAfBQAAHwUAACEFAAAhBQAAIwUAACMFAAAlBQAAJQUAACcFAAAnBQAAKQUAACkFAAArBQAAKwUAAC0FAAAtBQAALwUAAC8FAABgBQAAiAUAANAQAAD6EAAA/RAAAP8QAAD4EwAA/RMAAIAcAACIHAAAAB0AACsdAABrHQAAdx0AAHkdAACaHQAAAR4AAAEeAAADHgAAAx4AAAUeAAAFHgAABx4AAAceAAAJHgAACR4AAAseAAALHgAADR4AAA0eAAAPHgAADx4AABEeAAARHgAAEx4AABMeAAAVHgAAFR4AABceAAAXHgAAGR4AABkeAAAbHgAAGx4AAB0eAAAdHgAAHx4AAB8eAAAhHgAAIR4AACMeAAAjHgAAJR4AACUeAAAnHgAAJx4AACkeAAApHgAAKx4AACseAAAtHgAALR4AAC8eAAAvHgAAMR4AADEeAAAzHgAAMx4AADUeAAA1HgAANx4AADceAAA5HgAAOR4AADseAAA7HgAAPR4AAD0eAAA/HgAAPx4AAEEeAABBHgAAQx4AAEMeAABFHgAARR4AAEceAABHHgAASR4AAEkeAABLHgAASx4AAE0eAABNHgAATx4AAE8eAABRHgAAUR4AAFMeAABTHgAAVR4AAFUeAABXHgAAVx4AAFkeAABZHgAAWx4AAFseAABdHgAAXR4AAF8eAABfHgAAYR4AAGEeAABjHgAAYx4AAGUeAABlHgAAZx4AAGceAABpHgAAaR4AAGseAABrHgAAbR4AAG0eAABvHgAAbx4AAHEeAABxHgAAcx4AAHMeAAB1HgAAdR4AAHceAAB3HgAAeR4AAHkeAAB7HgAAex4AAH0eAAB9HgAAfx4AAH8eAACBHgAAgR4AAIMeAACDHgAAhR4AAIUeAACHHgAAhx4AAIkeAACJHgAAix4AAIseAACNHgAAjR4AAI8eAACPHgAAkR4AAJEeAACTHgAAkx4AAJUeAACdHgAAnx4AAJ8eAAChHgAAoR4AAKMeAACjHgAApR4AAKUeAACnHgAApx4AAKkeAACpHgAAqx4AAKseAACtHgAArR4AAK8eAACvHgAAsR4AALEeAACzHgAAsx4AALUeAAC1HgAAtx4AALceAAC5HgAAuR4AALseAAC7HgAAvR4AAL0eAAC/HgAAvx4AAMEeAADBHgAAwx4AAMMeAADFHgAAxR4AAMceAADHHgAAyR4AAMkeAADLHgAAyx4AAM0eAADNHgAAzx4AAM8eAADRHgAA0R4AANMeAADTHgAA1R4AANUeAADXHgAA1x4AANkeAADZHgAA2x4AANseAADdHgAA3R4AAN8eAADfHgAA4R4AAOEeAADjHgAA4x4AAOUeAADlHgAA5x4AAOceAADpHgAA6R4AAOseAADrHgAA7R4AAO0eAADvHgAA7x4AAPEeAADxHgAA8x4AAPMeAAD1HgAA9R4AAPceAAD3HgAA+R4AAPkeAAD7HgAA+x4AAP0eAAD9HgAA/x4AAAcfAAAQHwAAFR8AACAfAAAnHwAAMB8AADcfAABAHwAARR8AAFAfAABXHwAAYB8AAGcfAABwHwAAfR8AAIAfAACHHwAAkB8AAJcfAACgHwAApx8AALAfAAC0HwAAth8AALcfAAC+HwAAvh8AAMIfAADEHwAAxh8AAMcfAADQHwAA0x8AANYfAADXHwAA4B8AAOcfAADyHwAA9B8AAPYfAAD3HwAACiEAAAohAAAOIQAADyEAABMhAAATIQAALyEAAC8hAAA0IQAANCEAADkhAAA5IQAAPCEAAD0hAABGIQAASSEAAE4hAABOIQAAhCEAAIQhAAAwLAAAXywAAGEsAABhLAAAZSwAAGYsAABoLAAAaCwAAGosAABqLAAAbCwAAGwsAABxLAAAcSwAAHMsAAB0LAAAdiwAAHssAACBLAAAgSwAAIMsAACDLAAAhSwAAIUsAACHLAAAhywAAIksAACJLAAAiywAAIssAACNLAAAjSwAAI8sAACPLAAAkSwAAJEsAACTLAAAkywAAJUsAACVLAAAlywAAJcsAACZLAAAmSwAAJssAACbLAAAnSwAAJ0sAACfLAAAnywAAKEsAAChLAAAoywAAKMsAAClLAAApSwAAKcsAACnLAAAqSwAAKksAACrLAAAqywAAK0sAACtLAAArywAAK8sAACxLAAAsSwAALMsAACzLAAAtSwAALUsAAC3LAAAtywAALksAAC5LAAAuywAALssAAC9LAAAvSwAAL8sAAC/LAAAwSwAAMEsAADDLAAAwywAAMUsAADFLAAAxywAAMcsAADJLAAAySwAAMssAADLLAAAzSwAAM0sAADPLAAAzywAANEsAADRLAAA0ywAANMsAADVLAAA1SwAANcsAADXLAAA2SwAANksAADbLAAA2ywAAN0sAADdLAAA3ywAAN8sAADhLAAA4SwAAOMsAADkLAAA7CwAAOwsAADuLAAA7iwAAPMsAADzLAAAAC0AACUtAAAnLQAAJy0AAC0tAAAtLQAAQaYAAEGmAABDpgAAQ6YAAEWmAABFpgAAR6YAAEemAABJpgAASaYAAEumAABLpgAATaYAAE2mAABPpgAAT6YAAFGmAABRpgAAU6YAAFOmAABVpgAAVaYAAFemAABXpgAAWaYAAFmmAABbpgAAW6YAAF2mAABdpgAAX6YAAF+mAABhpgAAYaYAAGOmAABjpgAAZaYAAGWmAABnpgAAZ6YAAGmmAABppgAAa6YAAGumAABtpgAAbaYAAIGmAACBpgAAg6YAAIOmAACFpgAAhaYAAIemAACHpgAAiaYAAImmAACLpgAAi6YAAI2mAACNpgAAj6YAAI+mAACRpgAAkaYAAJOmAACTpgAAlaYAAJWmAACXpgAAl6YAAJmmAACZpgAAm6YAAJumAAAjpwAAI6cAACWnAAAlpwAAJ6cAACenAAAppwAAKacAACunAAArpwAALacAAC2nAAAvpwAAMacAADOnAAAzpwAANacAADWnAAA3pwAAN6cAADmnAAA5pwAAO6cAADunAAA9pwAAPacAAD+nAAA/pwAAQacAAEGnAABDpwAAQ6cAAEWnAABFpwAAR6cAAEenAABJpwAASacAAEunAABLpwAATacAAE2nAABPpwAAT6cAAFGnAABRpwAAU6cAAFOnAABVpwAAVacAAFenAABXpwAAWacAAFmnAABbpwAAW6cAAF2nAABdpwAAX6cAAF+nAABhpwAAYacAAGOnAABjpwAAZacAAGWnAABnpwAAZ6cAAGmnAABppwAAa6cAAGunAABtpwAAbacAAG+nAABvpwAAcacAAHinAAB6pwAAeqcAAHynAAB8pwAAf6cAAH+nAACBpwAAgacAAIOnAACDpwAAhacAAIWnAACHpwAAh6cAAIynAACMpwAAjqcAAI6nAACRpwAAkacAAJOnAACVpwAAl6cAAJenAACZpwAAmacAAJunAACbpwAAnacAAJ2nAACfpwAAn6cAAKGnAAChpwAAo6cAAKOnAAClpwAApacAAKenAACnpwAAqacAAKmnAACvpwAAr6cAALWnAAC1pwAAt6cAALenAAC5pwAAuacAALunAAC7pwAAvacAAL2nAAC/pwAAv6cAAMGnAADBpwAAw6cAAMOnAADIpwAAyKcAAMqnAADKpwAA0acAANGnAADTpwAA06cAANWnAADVpwAA16cAANenAADZpwAA2acAAPanAAD2pwAA+qcAAPqnAAAwqwAAWqsAAGCrAABoqwAAcKsAAL+rAAAA+wAABvsAABP7AAAX+wAAQf8AAFr/AAAoBAEATwQBANgEAQD7BAEAlwUBAKEFAQCjBQEAsQUBALMFAQC5BQEAuwUBALwFAQDADAEA8gwBAMAYAQDfGAEAYG4BAH9uAQAa1AEAM9QBAE7UAQBU1AEAVtQBAGfUAQCC1AEAm9QBALbUAQC51AEAu9QBALvUAQC91AEAw9QBAMXUAQDP1AEA6tQBAAPVAQAe1QEAN9UBAFLVAQBr1QEAhtUBAJ/VAQC61QEA09UBAO7VAQAH1gEAItYBADvWAQBW1gEAb9YBAIrWAQCl1gEAwtYBANrWAQDc1gEA4dYBAPzWAQAU1wEAFtcBABvXAQA21wEATtcBAFDXAQBV1wEAcNcBAIjXAQCK1wEAj9cBAKrXAQDC1wEAxNcBAMnXAQDL1wEAy9cBAADfAQAJ3wEAC98BAB7fAQAi6QEAQ+kBAAAAAABFAAAAsAIAAMECAADGAgAA0QIAAOACAADkAgAA7AIAAOwCAADuAgAA7gIAAHQDAAB0AwAAegMAAHoDAABZBQAAWQUAAEAGAABABgAA5QYAAOYGAAD0BwAA9QcAAPoHAAD6BwAAGggAABoIAAAkCAAAJAgAACgIAAAoCAAAyQgAAMkIAABxCQAAcQkAAEYOAABGDgAAxg4AAMYOAAD8EAAA/BAAANcXAADXFwAAQxgAAEMYAACnGgAApxoAAHgcAAB9HAAALB0AAGodAAB4HQAAeB0AAJsdAAC/HQAAcSAAAHEgAAB/IAAAfyAAAJAgAACcIAAAfCwAAH0sAABvLQAAby0AAC8uAAAvLgAABTAAAAUwAAAxMAAANTAAADswAAA7MAAAnTAAAJ4wAAD8MAAA/jAAABWgAAAVoAAA+KQAAP2kAAAMpgAADKYAAH+mAAB/pgAAnKYAAJ2mAAAXpwAAH6cAAHCnAABwpwAAiKcAAIinAADypwAA9KcAAPinAAD5pwAAz6kAAM+pAADmqQAA5qkAAHCqAABwqgAA3aoAAN2qAADzqgAA9KoAAFyrAABfqwAAaasAAGmrAABw/wAAcP8AAJ7/AACf/wAAgAcBAIUHAQCHBwEAsAcBALIHAQC6BwEAQGsBAENrAQCTbwEAn28BAOBvAQDhbwEA428BAONvAQDwrwEA868BAPWvAQD7rwEA/a8BAP6vAQA34QEAPeEBAEvpAQBL6QEAAAAAAPUBAACqAAAAqgAAALoAAAC6AAAAuwEAALsBAADAAQAAwwEAAJQCAACUAgAA0AUAAOoFAADvBQAA8gUAACAGAAA/BgAAQQYAAEoGAABuBgAAbwYAAHEGAADTBgAA1QYAANUGAADuBgAA7wYAAPoGAAD8BgAA/wYAAP8GAAAQBwAAEAcAABIHAAAvBwAATQcAAKUHAACxBwAAsQcAAMoHAADqBwAAAAgAABUIAABACAAAWAgAAGAIAABqCAAAcAgAAIcIAACJCAAAjggAAKAIAADICAAABAkAADkJAAA9CQAAPQkAAFAJAABQCQAAWAkAAGEJAAByCQAAgAkAAIUJAACMCQAAjwkAAJAJAACTCQAAqAkAAKoJAACwCQAAsgkAALIJAAC2CQAAuQkAAL0JAAC9CQAAzgkAAM4JAADcCQAA3QkAAN8JAADhCQAA8AkAAPEJAAD8CQAA/AkAAAUKAAAKCgAADwoAABAKAAATCgAAKAoAACoKAAAwCgAAMgoAADMKAAA1CgAANgoAADgKAAA5CgAAWQoAAFwKAABeCgAAXgoAAHIKAAB0CgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvQoAAL0KAADQCgAA0AoAAOAKAADhCgAA+QoAAPkKAAAFCwAADAsAAA8LAAAQCwAAEwsAACgLAAAqCwAAMAsAADILAAAzCwAANQsAADkLAAA9CwAAPQsAAFwLAABdCwAAXwsAAGELAABxCwAAcQsAAIMLAACDCwAAhQsAAIoLAACOCwAAkAsAAJILAACVCwAAmQsAAJoLAACcCwAAnAsAAJ4LAACfCwAAowsAAKQLAACoCwAAqgsAAK4LAAC5CwAA0AsAANALAAAFDAAADAwAAA4MAAAQDAAAEgwAACgMAAAqDAAAOQwAAD0MAAA9DAAAWAwAAFoMAABdDAAAXQwAAGAMAABhDAAAgAwAAIAMAACFDAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvQwAAL0MAADdDAAA3gwAAOAMAADhDAAA8QwAAPIMAAAEDQAADA0AAA4NAAAQDQAAEg0AADoNAAA9DQAAPQ0AAE4NAABODQAAVA0AAFYNAABfDQAAYQ0AAHoNAAB/DQAAhQ0AAJYNAACaDQAAsQ0AALMNAAC7DQAAvQ0AAL0NAADADQAAxg0AAAEOAAAwDgAAMg4AADMOAABADgAARQ4AAIEOAACCDgAAhA4AAIQOAACGDgAAig4AAIwOAACjDgAApQ4AAKUOAACnDgAAsA4AALIOAACzDgAAvQ4AAL0OAADADgAAxA4AANwOAADfDgAAAA8AAAAPAABADwAARw8AAEkPAABsDwAAiA8AAIwPAAAAEAAAKhAAAD8QAAA/EAAAUBAAAFUQAABaEAAAXRAAAGEQAABhEAAAZRAAAGYQAABuEAAAcBAAAHUQAACBEAAAjhAAAI4QAAAAEQAASBIAAEoSAABNEgAAUBIAAFYSAABYEgAAWBIAAFoSAABdEgAAYBIAAIgSAACKEgAAjRIAAJASAACwEgAAshIAALUSAAC4EgAAvhIAAMASAADAEgAAwhIAAMUSAADIEgAA1hIAANgSAAAQEwAAEhMAABUTAAAYEwAAWhMAAIATAACPEwAAARQAAGwWAABvFgAAfxYAAIEWAACaFgAAoBYAAOoWAADxFgAA+BYAAAAXAAARFwAAHxcAADEXAABAFwAAURcAAGAXAABsFwAAbhcAAHAXAACAFwAAsxcAANwXAADcFwAAIBgAAEIYAABEGAAAeBgAAIAYAACEGAAAhxgAAKgYAACqGAAAqhgAALAYAAD1GAAAABkAAB4ZAABQGQAAbRkAAHAZAAB0GQAAgBkAAKsZAACwGQAAyRkAAAAaAAAWGgAAIBoAAFQaAAAFGwAAMxsAAEUbAABMGwAAgxsAAKAbAACuGwAArxsAALobAADlGwAAABwAACMcAABNHAAATxwAAFocAAB3HAAA6RwAAOwcAADuHAAA8xwAAPUcAAD2HAAA+hwAAPocAAA1IQAAOCEAADAtAABnLQAAgC0AAJYtAACgLQAApi0AAKgtAACuLQAAsC0AALYtAAC4LQAAvi0AAMAtAADGLQAAyC0AAM4tAADQLQAA1i0AANgtAADeLQAABjAAAAYwAAA8MAAAPDAAAEEwAACWMAAAnzAAAJ8wAAChMAAA+jAAAP8wAAD/MAAABTEAAC8xAAAxMQAAjjEAAKAxAAC/MQAA8DEAAP8xAAAANAAAv00AAABOAAAUoAAAFqAAAIykAADQpAAA96QAAAClAAALpgAAEKYAAB+mAAAqpgAAK6YAAG6mAABupgAAoKYAAOWmAACPpwAAj6cAAPenAAD3pwAA+6cAAAGoAAADqAAABagAAAeoAAAKqAAADKgAACKoAABAqAAAc6gAAIKoAACzqAAA8qgAAPeoAAD7qAAA+6gAAP2oAAD+qAAACqkAACWpAAAwqQAARqkAAGCpAAB8qQAAhKkAALKpAADgqQAA5KkAAOepAADvqQAA+qkAAP6pAAAAqgAAKKoAAECqAABCqgAARKoAAEuqAABgqgAAb6oAAHGqAAB2qgAAeqoAAHqqAAB+qgAAr6oAALGqAACxqgAAtaoAALaqAAC5qgAAvaoAAMCqAADAqgAAwqoAAMKqAADbqgAA3KoAAOCqAADqqgAA8qoAAPKqAAABqwAABqsAAAmrAAAOqwAAEasAABarAAAgqwAAJqsAACirAAAuqwAAwKsAAOKrAAAArAAAo9cAALDXAADG1wAAy9cAAPvXAAAA+QAAbfoAAHD6AADZ+gAAHfsAAB37AAAf+wAAKPsAACr7AAA2+wAAOPsAADz7AAA++wAAPvsAAED7AABB+wAAQ/sAAET7AABG+wAAsfsAANP7AAA9/QAAUP0AAI/9AACS/QAAx/0AAPD9AAD7/QAAcP4AAHT+AAB2/gAA/P4AAGb/AABv/wAAcf8AAJ3/AACg/wAAvv8AAML/AADH/wAAyv8AAM//AADS/wAA1/8AANr/AADc/wAAAAABAAsAAQANAAEAJgABACgAAQA6AAEAPAABAD0AAQA/AAEATQABAFAAAQBdAAEAgAABAPoAAQCAAgEAnAIBAKACAQDQAgEAAAMBAB8DAQAtAwEAQAMBAEIDAQBJAwEAUAMBAHUDAQCAAwEAnQMBAKADAQDDAwEAyAMBAM8DAQBQBAEAnQQBAAAFAQAnBQEAMAUBAGMFAQAABgEANgcBAEAHAQBVBwEAYAcBAGcHAQAACAEABQgBAAgIAQAICAEACggBADUIAQA3CAEAOAgBADwIAQA8CAEAPwgBAFUIAQBgCAEAdggBAIAIAQCeCAEA4AgBAPIIAQD0CAEA9QgBAAAJAQAVCQEAIAkBADkJAQCACQEAtwkBAL4JAQC/CQEAAAoBAAAKAQAQCgEAEwoBABUKAQAXCgEAGQoBADUKAQBgCgEAfAoBAIAKAQCcCgEAwAoBAMcKAQDJCgEA5AoBAAALAQA1CwEAQAsBAFULAQBgCwEAcgsBAIALAQCRCwEAAAwBAEgMAQAADQEAIw0BAIAOAQCpDgEAsA4BALEOAQAADwEAHA8BACcPAQAnDwEAMA8BAEUPAQBwDwEAgQ8BALAPAQDEDwEA4A8BAPYPAQADEAEANxABAHEQAQByEAEAdRABAHUQAQCDEAEArxABANAQAQDoEAEAAxEBACYRAQBEEQEARBEBAEcRAQBHEQEAUBEBAHIRAQB2EQEAdhEBAIMRAQCyEQEAwREBAMQRAQDaEQEA2hEBANwRAQDcEQEAABIBABESAQATEgEAKxIBAIASAQCGEgEAiBIBAIgSAQCKEgEAjRIBAI8SAQCdEgEAnxIBAKgSAQCwEgEA3hIBAAUTAQAMEwEADxMBABATAQATEwEAKBMBACoTAQAwEwEAMhMBADMTAQA1EwEAORMBAD0TAQA9EwEAUBMBAFATAQBdEwEAYRMBAAAUAQA0FAEARxQBAEoUAQBfFAEAYRQBAIAUAQCvFAEAxBQBAMUUAQDHFAEAxxQBAIAVAQCuFQEA2BUBANsVAQAAFgEALxYBAEQWAQBEFgEAgBYBAKoWAQC4FgEAuBYBAAAXAQAaFwEAQBcBAEYXAQAAGAEAKxgBAP8YAQAGGQEACRkBAAkZAQAMGQEAExkBABUZAQAWGQEAGBkBAC8ZAQA/GQEAPxkBAEEZAQBBGQEAoBkBAKcZAQCqGQEA0BkBAOEZAQDhGQEA4xkBAOMZAQAAGgEAABoBAAsaAQAyGgEAOhoBADoaAQBQGgEAUBoBAFwaAQCJGgEAnRoBAJ0aAQCwGgEA+BoBAAAcAQAIHAEAChwBAC4cAQBAHAEAQBwBAHIcAQCPHAEAAB0BAAYdAQAIHQEACR0BAAsdAQAwHQEARh0BAEYdAQBgHQEAZR0BAGcdAQBoHQEAah0BAIkdAQCYHQEAmB0BAOAeAQDyHgEAsB8BALAfAQAAIAEAmSMBAIAkAQBDJQEAkC8BAPAvAQAAMAEALjQBAABEAQBGRgEAAGgBADhqAQBAagEAXmoBAHBqAQC+agEA0GoBAO1qAQAAawEAL2sBAGNrAQB3awEAfWsBAI9rAQAAbwEASm8BAFBvAQBQbwEAAHABAPeHAQAAiAEA1YwBAACNAQAIjQEAALABACKxAQBQsQEAUrEBAGSxAQBnsQEAcLEBAPuyAQAAvAEAarwBAHC8AQB8vAEAgLwBAIi8AQCQvAEAmbwBAArfAQAK3wEAAOEBACzhAQBO4QEATuEBAJDiAQCt4gEAwOIBAOviAQDg5wEA5ucBAOjnAQDr5wEA7ecBAO7nAQDw5wEA/ucBAADoAQDE6AEAAO4BAAPuAQAF7gEAH+4BACHuAQAi7gEAJO4BACTuAQAn7gEAJ+4BACnuAQAy7gEANO4BADfuAQA57gEAOe4BADvuAQA77gEAQu4BAELuAQBH7gEAR+4BAEnuAQBJ7gEAS+4BAEvuAQBN7gEAT+4BAFHuAQBS7gEAVO4BAFTuAQBX7gEAV+4BAFnuAQBZ7gEAW+4BAFvuAQBd7gEAXe4BAF/uAQBf7gEAYe4BAGLuAQBk7gEAZO4BAGfuAQBq7gEAbO4BAHLuAQB07gEAd+4BAHnuAQB87gEAfu4BAH7uAQCA7gEAie4BAIvuAQCb7gEAoe4BAKPuAQCl7gEAqe4BAKvuAQC77gEAAAACAN+mAgAApwIAOLcCAEC3AgAduAIAILgCAKHOAgCwzgIA4OsCAAD4AgAd+gIAAAADAEoTAwAAAAAABwAAAEAOAABEDgAAwA4AAMQOAAC1GQAAtxkAALoZAAC6GQAAtaoAALaqAAC5qgAAuaoAALuqAAC8qgAAAAAAAAoAAADFAQAAxQEAAMgBAADIAQAAywEAAMsBAADyAQAA8gEAAIgfAACPHwAAmB8AAJ8fAACoHwAArx8AALwfAAC8HwAAzB8AAMwfAAD8HwAA/B8AQcCzCgvTKIYCAABBAAAAWgAAAMAAAADWAAAA2AAAAN4AAAAAAQAAAAEAAAIBAAACAQAABAEAAAQBAAAGAQAABgEAAAgBAAAIAQAACgEAAAoBAAAMAQAADAEAAA4BAAAOAQAAEAEAABABAAASAQAAEgEAABQBAAAUAQAAFgEAABYBAAAYAQAAGAEAABoBAAAaAQAAHAEAABwBAAAeAQAAHgEAACABAAAgAQAAIgEAACIBAAAkAQAAJAEAACYBAAAmAQAAKAEAACgBAAAqAQAAKgEAACwBAAAsAQAALgEAAC4BAAAwAQAAMAEAADIBAAAyAQAANAEAADQBAAA2AQAANgEAADkBAAA5AQAAOwEAADsBAAA9AQAAPQEAAD8BAAA/AQAAQQEAAEEBAABDAQAAQwEAAEUBAABFAQAARwEAAEcBAABKAQAASgEAAEwBAABMAQAATgEAAE4BAABQAQAAUAEAAFIBAABSAQAAVAEAAFQBAABWAQAAVgEAAFgBAABYAQAAWgEAAFoBAABcAQAAXAEAAF4BAABeAQAAYAEAAGABAABiAQAAYgEAAGQBAABkAQAAZgEAAGYBAABoAQAAaAEAAGoBAABqAQAAbAEAAGwBAABuAQAAbgEAAHABAABwAQAAcgEAAHIBAAB0AQAAdAEAAHYBAAB2AQAAeAEAAHkBAAB7AQAAewEAAH0BAAB9AQAAgQEAAIIBAACEAQAAhAEAAIYBAACHAQAAiQEAAIsBAACOAQAAkQEAAJMBAACUAQAAlgEAAJgBAACcAQAAnQEAAJ8BAACgAQAAogEAAKIBAACkAQAApAEAAKYBAACnAQAAqQEAAKkBAACsAQAArAEAAK4BAACvAQAAsQEAALMBAAC1AQAAtQEAALcBAAC4AQAAvAEAALwBAADEAQAAxAEAAMcBAADHAQAAygEAAMoBAADNAQAAzQEAAM8BAADPAQAA0QEAANEBAADTAQAA0wEAANUBAADVAQAA1wEAANcBAADZAQAA2QEAANsBAADbAQAA3gEAAN4BAADgAQAA4AEAAOIBAADiAQAA5AEAAOQBAADmAQAA5gEAAOgBAADoAQAA6gEAAOoBAADsAQAA7AEAAO4BAADuAQAA8QEAAPEBAAD0AQAA9AEAAPYBAAD4AQAA+gEAAPoBAAD8AQAA/AEAAP4BAAD+AQAAAAIAAAACAAACAgAAAgIAAAQCAAAEAgAABgIAAAYCAAAIAgAACAIAAAoCAAAKAgAADAIAAAwCAAAOAgAADgIAABACAAAQAgAAEgIAABICAAAUAgAAFAIAABYCAAAWAgAAGAIAABgCAAAaAgAAGgIAABwCAAAcAgAAHgIAAB4CAAAgAgAAIAIAACICAAAiAgAAJAIAACQCAAAmAgAAJgIAACgCAAAoAgAAKgIAACoCAAAsAgAALAIAAC4CAAAuAgAAMAIAADACAAAyAgAAMgIAADoCAAA7AgAAPQIAAD4CAABBAgAAQQIAAEMCAABGAgAASAIAAEgCAABKAgAASgIAAEwCAABMAgAATgIAAE4CAABwAwAAcAMAAHIDAAByAwAAdgMAAHYDAAB/AwAAfwMAAIYDAACGAwAAiAMAAIoDAACMAwAAjAMAAI4DAACPAwAAkQMAAKEDAACjAwAAqwMAAM8DAADPAwAA0gMAANQDAADYAwAA2AMAANoDAADaAwAA3AMAANwDAADeAwAA3gMAAOADAADgAwAA4gMAAOIDAADkAwAA5AMAAOYDAADmAwAA6AMAAOgDAADqAwAA6gMAAOwDAADsAwAA7gMAAO4DAAD0AwAA9AMAAPcDAAD3AwAA+QMAAPoDAAD9AwAALwQAAGAEAABgBAAAYgQAAGIEAABkBAAAZAQAAGYEAABmBAAAaAQAAGgEAABqBAAAagQAAGwEAABsBAAAbgQAAG4EAABwBAAAcAQAAHIEAAByBAAAdAQAAHQEAAB2BAAAdgQAAHgEAAB4BAAAegQAAHoEAAB8BAAAfAQAAH4EAAB+BAAAgAQAAIAEAACKBAAAigQAAIwEAACMBAAAjgQAAI4EAACQBAAAkAQAAJIEAACSBAAAlAQAAJQEAACWBAAAlgQAAJgEAACYBAAAmgQAAJoEAACcBAAAnAQAAJ4EAACeBAAAoAQAAKAEAACiBAAAogQAAKQEAACkBAAApgQAAKYEAACoBAAAqAQAAKoEAACqBAAArAQAAKwEAACuBAAArgQAALAEAACwBAAAsgQAALIEAAC0BAAAtAQAALYEAAC2BAAAuAQAALgEAAC6BAAAugQAALwEAAC8BAAAvgQAAL4EAADABAAAwQQAAMMEAADDBAAAxQQAAMUEAADHBAAAxwQAAMkEAADJBAAAywQAAMsEAADNBAAAzQQAANAEAADQBAAA0gQAANIEAADUBAAA1AQAANYEAADWBAAA2AQAANgEAADaBAAA2gQAANwEAADcBAAA3gQAAN4EAADgBAAA4AQAAOIEAADiBAAA5AQAAOQEAADmBAAA5gQAAOgEAADoBAAA6gQAAOoEAADsBAAA7AQAAO4EAADuBAAA8AQAAPAEAADyBAAA8gQAAPQEAAD0BAAA9gQAAPYEAAD4BAAA+AQAAPoEAAD6BAAA/AQAAPwEAAD+BAAA/gQAAAAFAAAABQAAAgUAAAIFAAAEBQAABAUAAAYFAAAGBQAACAUAAAgFAAAKBQAACgUAAAwFAAAMBQAADgUAAA4FAAAQBQAAEAUAABIFAAASBQAAFAUAABQFAAAWBQAAFgUAABgFAAAYBQAAGgUAABoFAAAcBQAAHAUAAB4FAAAeBQAAIAUAACAFAAAiBQAAIgUAACQFAAAkBQAAJgUAACYFAAAoBQAAKAUAACoFAAAqBQAALAUAACwFAAAuBQAALgUAADEFAABWBQAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAAoBMAAPUTAACQHAAAuhwAAL0cAAC/HAAAAB4AAAAeAAACHgAAAh4AAAQeAAAEHgAABh4AAAYeAAAIHgAACB4AAAoeAAAKHgAADB4AAAweAAAOHgAADh4AABAeAAAQHgAAEh4AABIeAAAUHgAAFB4AABYeAAAWHgAAGB4AABgeAAAaHgAAGh4AABweAAAcHgAAHh4AAB4eAAAgHgAAIB4AACIeAAAiHgAAJB4AACQeAAAmHgAAJh4AACgeAAAoHgAAKh4AACoeAAAsHgAALB4AAC4eAAAuHgAAMB4AADAeAAAyHgAAMh4AADQeAAA0HgAANh4AADYeAAA4HgAAOB4AADoeAAA6HgAAPB4AADweAAA+HgAAPh4AAEAeAABAHgAAQh4AAEIeAABEHgAARB4AAEYeAABGHgAASB4AAEgeAABKHgAASh4AAEweAABMHgAATh4AAE4eAABQHgAAUB4AAFIeAABSHgAAVB4AAFQeAABWHgAAVh4AAFgeAABYHgAAWh4AAFoeAABcHgAAXB4AAF4eAABeHgAAYB4AAGAeAABiHgAAYh4AAGQeAABkHgAAZh4AAGYeAABoHgAAaB4AAGoeAABqHgAAbB4AAGweAABuHgAAbh4AAHAeAABwHgAAch4AAHIeAAB0HgAAdB4AAHYeAAB2HgAAeB4AAHgeAAB6HgAAeh4AAHweAAB8HgAAfh4AAH4eAACAHgAAgB4AAIIeAACCHgAAhB4AAIQeAACGHgAAhh4AAIgeAACIHgAAih4AAIoeAACMHgAAjB4AAI4eAACOHgAAkB4AAJAeAACSHgAAkh4AAJQeAACUHgAAnh4AAJ4eAACgHgAAoB4AAKIeAACiHgAApB4AAKQeAACmHgAAph4AAKgeAACoHgAAqh4AAKoeAACsHgAArB4AAK4eAACuHgAAsB4AALAeAACyHgAAsh4AALQeAAC0HgAAth4AALYeAAC4HgAAuB4AALoeAAC6HgAAvB4AALweAAC+HgAAvh4AAMAeAADAHgAAwh4AAMIeAADEHgAAxB4AAMYeAADGHgAAyB4AAMgeAADKHgAAyh4AAMweAADMHgAAzh4AAM4eAADQHgAA0B4AANIeAADSHgAA1B4AANQeAADWHgAA1h4AANgeAADYHgAA2h4AANoeAADcHgAA3B4AAN4eAADeHgAA4B4AAOAeAADiHgAA4h4AAOQeAADkHgAA5h4AAOYeAADoHgAA6B4AAOoeAADqHgAA7B4AAOweAADuHgAA7h4AAPAeAADwHgAA8h4AAPIeAAD0HgAA9B4AAPYeAAD2HgAA+B4AAPgeAAD6HgAA+h4AAPweAAD8HgAA/h4AAP4eAAAIHwAADx8AABgfAAAdHwAAKB8AAC8fAAA4HwAAPx8AAEgfAABNHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAF8fAABoHwAAbx8AALgfAAC7HwAAyB8AAMsfAADYHwAA2x8AAOgfAADsHwAA+B8AAPsfAAACIQAAAiEAAAchAAAHIQAACyEAAA0hAAAQIQAAEiEAABUhAAAVIQAAGSEAAB0hAAAkIQAAJCEAACYhAAAmIQAAKCEAACghAAAqIQAALSEAADAhAAAzIQAAPiEAAD8hAABFIQAARSEAAIMhAACDIQAAACwAAC8sAABgLAAAYCwAAGIsAABkLAAAZywAAGcsAABpLAAAaSwAAGssAABrLAAAbSwAAHAsAAByLAAAciwAAHUsAAB1LAAAfiwAAIAsAACCLAAAgiwAAIQsAACELAAAhiwAAIYsAACILAAAiCwAAIosAACKLAAAjCwAAIwsAACOLAAAjiwAAJAsAACQLAAAkiwAAJIsAACULAAAlCwAAJYsAACWLAAAmCwAAJgsAACaLAAAmiwAAJwsAACcLAAAniwAAJ4sAACgLAAAoCwAAKIsAACiLAAApCwAAKQsAACmLAAApiwAAKgsAACoLAAAqiwAAKosAACsLAAArCwAAK4sAACuLAAAsCwAALAsAACyLAAAsiwAALQsAAC0LAAAtiwAALYsAAC4LAAAuCwAALosAAC6LAAAvCwAALwsAAC+LAAAviwAAMAsAADALAAAwiwAAMIsAADELAAAxCwAAMYsAADGLAAAyCwAAMgsAADKLAAAyiwAAMwsAADMLAAAziwAAM4sAADQLAAA0CwAANIsAADSLAAA1CwAANQsAADWLAAA1iwAANgsAADYLAAA2iwAANosAADcLAAA3CwAAN4sAADeLAAA4CwAAOAsAADiLAAA4iwAAOssAADrLAAA7SwAAO0sAADyLAAA8iwAAECmAABApgAAQqYAAEKmAABEpgAARKYAAEamAABGpgAASKYAAEimAABKpgAASqYAAEymAABMpgAATqYAAE6mAABQpgAAUKYAAFKmAABSpgAAVKYAAFSmAABWpgAAVqYAAFimAABYpgAAWqYAAFqmAABcpgAAXKYAAF6mAABepgAAYKYAAGCmAABipgAAYqYAAGSmAABkpgAAZqYAAGamAABopgAAaKYAAGqmAABqpgAAbKYAAGymAACApgAAgKYAAIKmAACCpgAAhKYAAISmAACGpgAAhqYAAIimAACIpgAAiqYAAIqmAACMpgAAjKYAAI6mAACOpgAAkKYAAJCmAACSpgAAkqYAAJSmAACUpgAAlqYAAJamAACYpgAAmKYAAJqmAACapgAAIqcAACKnAAAkpwAAJKcAACanAAAmpwAAKKcAACinAAAqpwAAKqcAACynAAAspwAALqcAAC6nAAAypwAAMqcAADSnAAA0pwAANqcAADanAAA4pwAAOKcAADqnAAA6pwAAPKcAADynAAA+pwAAPqcAAECnAABApwAAQqcAAEKnAABEpwAARKcAAEanAABGpwAASKcAAEinAABKpwAASqcAAEynAABMpwAATqcAAE6nAABQpwAAUKcAAFKnAABSpwAAVKcAAFSnAABWpwAAVqcAAFinAABYpwAAWqcAAFqnAABcpwAAXKcAAF6nAABepwAAYKcAAGCnAABipwAAYqcAAGSnAABkpwAAZqcAAGanAABopwAAaKcAAGqnAABqpwAAbKcAAGynAABupwAAbqcAAHmnAAB5pwAAe6cAAHunAAB9pwAAfqcAAICnAACApwAAgqcAAIKnAACEpwAAhKcAAIanAACGpwAAi6cAAIunAACNpwAAjacAAJCnAACQpwAAkqcAAJKnAACWpwAAlqcAAJinAACYpwAAmqcAAJqnAACcpwAAnKcAAJ6nAACepwAAoKcAAKCnAACipwAAoqcAAKSnAACkpwAApqcAAKanAACopwAAqKcAAKqnAACupwAAsKcAALSnAAC2pwAAtqcAALinAAC4pwAAuqcAALqnAAC8pwAAvKcAAL6nAAC+pwAAwKcAAMCnAADCpwAAwqcAAMSnAADHpwAAyacAAMmnAADQpwAA0KcAANanAADWpwAA2KcAANinAAD1pwAA9acAACH/AAA6/wAAAAQBACcEAQCwBAEA0wQBAHAFAQB6BQEAfAUBAIoFAQCMBQEAkgUBAJQFAQCVBQEAgAwBALIMAQCgGAEAvxgBAEBuAQBfbgEAANQBABnUAQA01AEATdQBAGjUAQCB1AEAnNQBAJzUAQCe1AEAn9QBAKLUAQCi1AEApdQBAKbUAQCp1AEArNQBAK7UAQC11AEA0NQBAOnUAQAE1QEABdUBAAfVAQAK1QEADdUBABTVAQAW1QEAHNUBADjVAQA51QEAO9UBAD7VAQBA1QEARNUBAEbVAQBG1QEAStUBAFDVAQBs1QEAhdUBAKDVAQC51QEA1NUBAO3VAQAI1gEAIdYBADzWAQBV1gEAcNYBAInWAQCo1gEAwNYBAOLWAQD61gEAHNcBADTXAQBW1wEAbtcBAJDXAQCo1wEAytcBAMrXAQAA6QEAIekBAAEAAACAAgEAnAIBAAIAAAAgCQEAOQkBAD8JAQA/CQEAQaDcCgvzEisBAAAAAwAAbwMAAIMEAACJBAAAkQUAAL0FAAC/BQAAvwUAAMEFAADCBQAAxAUAAMUFAADHBQAAxwUAABAGAAAaBgAASwYAAF8GAABwBgAAcAYAANYGAADcBgAA3wYAAOQGAADnBgAA6AYAAOoGAADtBgAAEQcAABEHAAAwBwAASgcAAKYHAACwBwAA6wcAAPMHAAD9BwAA/QcAABYIAAAZCAAAGwgAACMIAAAlCAAAJwgAACkIAAAtCAAAWQgAAFsIAACYCAAAnwgAAMoIAADhCAAA4wgAAAMJAAA6CQAAPAkAAD4JAABPCQAAUQkAAFcJAABiCQAAYwkAAIEJAACDCQAAvAkAALwJAAC+CQAAxAkAAMcJAADICQAAywkAAM0JAADXCQAA1wkAAOIJAADjCQAA/gkAAP4JAAABCgAAAwoAADwKAAA8CgAAPgoAAEIKAABHCgAASAoAAEsKAABNCgAAUQoAAFEKAABwCgAAcQoAAHUKAAB1CgAAgQoAAIMKAAC8CgAAvAoAAL4KAADFCgAAxwoAAMkKAADLCgAAzQoAAOIKAADjCgAA+goAAP8KAAABCwAAAwsAADwLAAA8CwAAPgsAAEQLAABHCwAASAsAAEsLAABNCwAAVQsAAFcLAABiCwAAYwsAAIILAACCCwAAvgsAAMILAADGCwAAyAsAAMoLAADNCwAA1wsAANcLAAAADAAABAwAADwMAAA8DAAAPgwAAEQMAABGDAAASAwAAEoMAABNDAAAVQwAAFYMAABiDAAAYwwAAIEMAACDDAAAvAwAALwMAAC+DAAAxAwAAMYMAADIDAAAygwAAM0MAADVDAAA1gwAAOIMAADjDAAAAA0AAAMNAAA7DQAAPA0AAD4NAABEDQAARg0AAEgNAABKDQAATQ0AAFcNAABXDQAAYg0AAGMNAACBDQAAgw0AAMoNAADKDQAAzw0AANQNAADWDQAA1g0AANgNAADfDQAA8g0AAPMNAAAxDgAAMQ4AADQOAAA6DgAARw4AAE4OAACxDgAAsQ4AALQOAAC8DgAAyA4AAM0OAAAYDwAAGQ8AADUPAAA1DwAANw8AADcPAAA5DwAAOQ8AAD4PAAA/DwAAcQ8AAIQPAACGDwAAhw8AAI0PAACXDwAAmQ8AALwPAADGDwAAxg8AACsQAAA+EAAAVhAAAFkQAABeEAAAYBAAAGIQAABkEAAAZxAAAG0QAABxEAAAdBAAAIIQAACNEAAAjxAAAI8QAACaEAAAnRAAAF0TAABfEwAAEhcAABUXAAAyFwAANBcAAFIXAABTFwAAchcAAHMXAAC0FwAA0xcAAN0XAADdFwAACxgAAA0YAAAPGAAADxgAAIUYAACGGAAAqRgAAKkYAAAgGQAAKxkAADAZAAA7GQAAFxoAABsaAABVGgAAXhoAAGAaAAB8GgAAfxoAAH8aAACwGgAAzhoAAAAbAAAEGwAANBsAAEQbAABrGwAAcxsAAIAbAACCGwAAoRsAAK0bAADmGwAA8xsAACQcAAA3HAAA0BwAANIcAADUHAAA6BwAAO0cAADtHAAA9BwAAPQcAAD3HAAA+RwAAMAdAAD/HQAA0CAAAPAgAADvLAAA8SwAAH8tAAB/LQAA4C0AAP8tAAAqMAAALzAAAJkwAACaMAAAb6YAAHKmAAB0pgAAfaYAAJ6mAACfpgAA8KYAAPGmAAACqAAAAqgAAAaoAAAGqAAAC6gAAAuoAAAjqAAAJ6gAACyoAAAsqAAAgKgAAIGoAAC0qAAAxagAAOCoAADxqAAA/6gAAP+oAAAmqQAALakAAEepAABTqQAAgKkAAIOpAACzqQAAwKkAAOWpAADlqQAAKaoAADaqAABDqgAAQ6oAAEyqAABNqgAAe6oAAH2qAACwqgAAsKoAALKqAAC0qgAAt6oAALiqAAC+qgAAv6oAAMGqAADBqgAA66oAAO+qAAD1qgAA9qoAAOOrAADqqwAA7KsAAO2rAAAe+wAAHvsAAAD+AAAP/gAAIP4AAC/+AAD9AQEA/QEBAOACAQDgAgEAdgMBAHoDAQABCgEAAwoBAAUKAQAGCgEADAoBAA8KAQA4CgEAOgoBAD8KAQA/CgEA5QoBAOYKAQAkDQEAJw0BAKsOAQCsDgEARg8BAFAPAQCCDwEAhQ8BAAAQAQACEAEAOBABAEYQAQBwEAEAcBABAHMQAQB0EAEAfxABAIIQAQCwEAEAuhABAMIQAQDCEAEAABEBAAIRAQAnEQEANBEBAEURAQBGEQEAcxEBAHMRAQCAEQEAghEBALMRAQDAEQEAyREBAMwRAQDOEQEAzxEBACwSAQA3EgEAPhIBAD4SAQDfEgEA6hIBAAATAQADEwEAOxMBADwTAQA+EwEARBMBAEcTAQBIEwEASxMBAE0TAQBXEwEAVxMBAGITAQBjEwEAZhMBAGwTAQBwEwEAdBMBADUUAQBGFAEAXhQBAF4UAQCwFAEAwxQBAK8VAQC1FQEAuBUBAMAVAQDcFQEA3RUBADAWAQBAFgEAqxYBALcWAQAdFwEAKxcBACwYAQA6GAEAMBkBADUZAQA3GQEAOBkBADsZAQA+GQEAQBkBAEAZAQBCGQEAQxkBANEZAQDXGQEA2hkBAOAZAQDkGQEA5BkBAAEaAQAKGgEAMxoBADkaAQA7GgEAPhoBAEcaAQBHGgEAURoBAFsaAQCKGgEAmRoBAC8cAQA2HAEAOBwBAD8cAQCSHAEApxwBAKkcAQC2HAEAMR0BADYdAQA6HQEAOh0BADwdAQA9HQEAPx0BAEUdAQBHHQEARx0BAIodAQCOHQEAkB0BAJEdAQCTHQEAlx0BAPMeAQD2HgEA8GoBAPRqAQAwawEANmsBAE9vAQBPbwEAUW8BAIdvAQCPbwEAkm8BAORvAQDkbwEA8G8BAPFvAQCdvAEAnrwBAADPAQAtzwEAMM8BAEbPAQBl0QEAadEBAG3RAQBy0QEAe9EBAILRAQCF0QEAi9EBAKrRAQCt0QEAQtIBAETSAQAA2gEANtoBADvaAQBs2gEAddoBAHXaAQCE2gEAhNoBAJvaAQCf2gEAodoBAK/aAQAA4AEABuABAAjgAQAY4AEAG+ABACHgAQAj4AEAJOABACbgAQAq4AEAMOEBADbhAQCu4gEAruIBAOziAQDv4gEA0OgBANboAQBE6QEASukBAAABDgDvAQ4AAQAAAFARAQB2EQEAAQAAAOAeAQD4HgEAQaDvCgtSBwAAAAANAAAMDQAADg0AABANAAASDQAARA0AAEYNAABIDQAASg0AAE8NAABUDQAAYw0AAGYNAAB/DQAAAAAAAAIAAABACAAAWwgAAF4IAABeCABBgPAKCxMCAAAAwAoBAOYKAQDrCgEA9goBAEGg8AoLswkDAAAAcBwBAI8cAQCSHAEApxwBAKkcAQC2HAEAAAAAAAcAAAAAHQEABh0BAAgdAQAJHQEACx0BADYdAQA6HQEAOh0BADwdAQA9HQEAPx0BAEcdAQBQHQEAWR0BAAAAAACKAAAAKwAAACsAAAA8AAAAPgAAAF4AAABeAAAAfAAAAHwAAAB+AAAAfgAAAKwAAACsAAAAsQAAALEAAADXAAAA1wAAAPcAAAD3AAAA0AMAANIDAADVAwAA1QMAAPADAADxAwAA9AMAAPYDAAAGBgAACAYAABYgAAAWIAAAMiAAADQgAABAIAAAQCAAAEQgAABEIAAAUiAAAFIgAABhIAAAZCAAAHogAAB+IAAAiiAAAI4gAADQIAAA3CAAAOEgAADhIAAA5SAAAOYgAADrIAAA7yAAAAIhAAACIQAAByEAAAchAAAKIQAAEyEAABUhAAAVIQAAGCEAAB0hAAAkIQAAJCEAACghAAApIQAALCEAAC0hAAAvIQAAMSEAADMhAAA4IQAAPCEAAEkhAABLIQAASyEAAJAhAACnIQAAqSEAAK4hAACwIQAAsSEAALYhAAC3IQAAvCEAANshAADdIQAA3SEAAOQhAADlIQAA9CEAAP8iAAAIIwAACyMAACAjAAAhIwAAfCMAAHwjAACbIwAAtSMAALcjAAC3IwAA0CMAANAjAADcIwAA4iMAAKAlAAChJQAAriUAALclAAC8JQAAwSUAAMYlAADHJQAAyiUAAMslAADPJQAA0yUAAOIlAADiJQAA5CUAAOQlAADnJQAA7CUAAPglAAD/JQAABSYAAAYmAABAJgAAQCYAAEImAABCJgAAYCYAAGMmAABtJgAAbyYAAMAnAAD/JwAAACkAAP8qAAAwKwAARCsAAEcrAABMKwAAKfsAACn7AABh/gAAZv4AAGj+AABo/gAAC/8AAAv/AAAc/wAAHv8AADz/AAA8/wAAPv8AAD7/AABc/wAAXP8AAF7/AABe/wAA4v8AAOL/AADp/wAA7P8AAADUAQBU1AEAVtQBAJzUAQCe1AEAn9QBAKLUAQCi1AEApdQBAKbUAQCp1AEArNQBAK7UAQC51AEAu9QBALvUAQC91AEAw9QBAMXUAQAF1QEAB9UBAArVAQAN1QEAFNUBABbVAQAc1QEAHtUBADnVAQA71QEAPtUBAEDVAQBE1QEARtUBAEbVAQBK1QEAUNUBAFLVAQCl1gEAqNYBAMvXAQDO1wEA/9cBAADuAQAD7gEABe4BAB/uAQAh7gEAIu4BACTuAQAk7gEAJ+4BACfuAQAp7gEAMu4BADTuAQA37gEAOe4BADnuAQA77gEAO+4BAELuAQBC7gEAR+4BAEfuAQBJ7gEASe4BAEvuAQBL7gEATe4BAE/uAQBR7gEAUu4BAFTuAQBU7gEAV+4BAFfuAQBZ7gEAWe4BAFvuAQBb7gEAXe4BAF3uAQBf7gEAX+4BAGHuAQBi7gEAZO4BAGTuAQBn7gEAau4BAGzuAQBy7gEAdO4BAHfuAQB57gEAfO4BAH7uAQB+7gEAgO4BAInuAQCL7gEAm+4BAKHuAQCj7gEApe4BAKnuAQCr7gEAu+4BAPDuAQDx7gEAQeD5CgvHC7EAAAADCQAAAwkAADsJAAA7CQAAPgkAAEAJAABJCQAATAkAAE4JAABPCQAAggkAAIMJAAC+CQAAwAkAAMcJAADICQAAywkAAMwJAADXCQAA1wkAAAMKAAADCgAAPgoAAEAKAACDCgAAgwoAAL4KAADACgAAyQoAAMkKAADLCgAAzAoAAAILAAADCwAAPgsAAD4LAABACwAAQAsAAEcLAABICwAASwsAAEwLAABXCwAAVwsAAL4LAAC/CwAAwQsAAMILAADGCwAAyAsAAMoLAADMCwAA1wsAANcLAAABDAAAAwwAAEEMAABEDAAAggwAAIMMAAC+DAAAvgwAAMAMAADEDAAAxwwAAMgMAADKDAAAywwAANUMAADWDAAAAg0AAAMNAAA+DQAAQA0AAEYNAABIDQAASg0AAEwNAABXDQAAVw0AAIINAACDDQAAzw0AANENAADYDQAA3w0AAPINAADzDQAAPg8AAD8PAAB/DwAAfw8AACsQAAAsEAAAMRAAADEQAAA4EAAAOBAAADsQAAA8EAAAVhAAAFcQAABiEAAAZBAAAGcQAABtEAAAgxAAAIQQAACHEAAAjBAAAI8QAACPEAAAmhAAAJwQAAAVFwAAFRcAADQXAAA0FwAAthcAALYXAAC+FwAAxRcAAMcXAADIFwAAIxkAACYZAAApGQAAKxkAADAZAAAxGQAAMxkAADgZAAAZGgAAGhoAAFUaAABVGgAAVxoAAFcaAABhGgAAYRoAAGMaAABkGgAAbRoAAHIaAAAEGwAABBsAADUbAAA1GwAAOxsAADsbAAA9GwAAQRsAAEMbAABEGwAAghsAAIIbAAChGwAAoRsAAKYbAACnGwAAqhsAAKobAADnGwAA5xsAAOobAADsGwAA7hsAAO4bAADyGwAA8xsAACQcAAArHAAANBwAADUcAADhHAAA4RwAAPccAAD3HAAALjAAAC8wAAAjqAAAJKgAACeoAAAnqAAAgKgAAIGoAAC0qAAAw6gAAFKpAABTqQAAg6kAAIOpAAC0qQAAtakAALqpAAC7qQAAvqkAAMCpAAAvqgAAMKoAADOqAAA0qgAATaoAAE2qAAB7qgAAe6oAAH2qAAB9qgAA66oAAOuqAADuqgAA76oAAPWqAAD1qgAA46sAAOSrAADmqwAA56sAAOmrAADqqwAA7KsAAOyrAAAAEAEAABABAAIQAQACEAEAghABAIIQAQCwEAEAshABALcQAQC4EAEALBEBACwRAQBFEQEARhEBAIIRAQCCEQEAsxEBALURAQC/EQEAwBEBAM4RAQDOEQEALBIBAC4SAQAyEgEAMxIBADUSAQA1EgEA4BIBAOISAQACEwEAAxMBAD4TAQA/EwEAQRMBAEQTAQBHEwEASBMBAEsTAQBNEwEAVxMBAFcTAQBiEwEAYxMBADUUAQA3FAEAQBQBAEEUAQBFFAEARRQBALAUAQCyFAEAuRQBALkUAQC7FAEAvhQBAMEUAQDBFAEArxUBALEVAQC4FQEAuxUBAL4VAQC+FQEAMBYBADIWAQA7FgEAPBYBAD4WAQA+FgEArBYBAKwWAQCuFgEArxYBALYWAQC2FgEAIBcBACEXAQAmFwEAJhcBACwYAQAuGAEAOBgBADgYAQAwGQEANRkBADcZAQA4GQEAPRkBAD0ZAQBAGQEAQBkBAEIZAQBCGQEA0RkBANMZAQDcGQEA3xkBAOQZAQDkGQEAORoBADkaAQBXGgEAWBoBAJcaAQCXGgEALxwBAC8cAQA+HAEAPhwBAKkcAQCpHAEAsRwBALEcAQC0HAEAtBwBAIodAQCOHQEAkx0BAJQdAQCWHQEAlh0BAPUeAQD2HgEAUW8BAIdvAQDwbwEA8W8BAGXRAQBm0QEAbdEBAHLRAQAAAAAABQAAAIgEAACJBAAAvhoAAL4aAADdIAAA4CAAAOIgAADkIAAAcKYAAHKmAAABAAAAQG4BAJpuAQBBsIULCzMDAAAA4KoAAPaqAADAqwAA7asAAPCrAAD5qwAAAAAAAAIAAAAA6AEAxOgBAMfoAQDW6AEAQfCFCwsnAwAAAKAJAQC3CQEAvAkBAM8JAQDSCQEA/wkBAAEAAACACQEAnwkBAEGghgsLoxUDAAAAAG8BAEpvAQBPbwEAh28BAI9vAQCfbwEAAAAAAFABAAAAAwAAbwMAAIMEAACHBAAAkQUAAL0FAAC/BQAAvwUAAMEFAADCBQAAxAUAAMUFAADHBQAAxwUAABAGAAAaBgAASwYAAF8GAABwBgAAcAYAANYGAADcBgAA3wYAAOQGAADnBgAA6AYAAOoGAADtBgAAEQcAABEHAAAwBwAASgcAAKYHAACwBwAA6wcAAPMHAAD9BwAA/QcAABYIAAAZCAAAGwgAACMIAAAlCAAAJwgAACkIAAAtCAAAWQgAAFsIAACYCAAAnwgAAMoIAADhCAAA4wgAAAIJAAA6CQAAOgkAADwJAAA8CQAAQQkAAEgJAABNCQAATQkAAFEJAABXCQAAYgkAAGMJAACBCQAAgQkAALwJAAC8CQAAwQkAAMQJAADNCQAAzQkAAOIJAADjCQAA/gkAAP4JAAABCgAAAgoAADwKAAA8CgAAQQoAAEIKAABHCgAASAoAAEsKAABNCgAAUQoAAFEKAABwCgAAcQoAAHUKAAB1CgAAgQoAAIIKAAC8CgAAvAoAAMEKAADFCgAAxwoAAMgKAADNCgAAzQoAAOIKAADjCgAA+goAAP8KAAABCwAAAQsAADwLAAA8CwAAPwsAAD8LAABBCwAARAsAAE0LAABNCwAAVQsAAFYLAABiCwAAYwsAAIILAACCCwAAwAsAAMALAADNCwAAzQsAAAAMAAAADAAABAwAAAQMAAA8DAAAPAwAAD4MAABADAAARgwAAEgMAABKDAAATQwAAFUMAABWDAAAYgwAAGMMAACBDAAAgQwAALwMAAC8DAAAvwwAAL8MAADGDAAAxgwAAMwMAADNDAAA4gwAAOMMAAAADQAAAQ0AADsNAAA8DQAAQQ0AAEQNAABNDQAATQ0AAGINAABjDQAAgQ0AAIENAADKDQAAyg0AANINAADUDQAA1g0AANYNAAAxDgAAMQ4AADQOAAA6DgAARw4AAE4OAACxDgAAsQ4AALQOAAC8DgAAyA4AAM0OAAAYDwAAGQ8AADUPAAA1DwAANw8AADcPAAA5DwAAOQ8AAHEPAAB+DwAAgA8AAIQPAACGDwAAhw8AAI0PAACXDwAAmQ8AALwPAADGDwAAxg8AAC0QAAAwEAAAMhAAADcQAAA5EAAAOhAAAD0QAAA+EAAAWBAAAFkQAABeEAAAYBAAAHEQAAB0EAAAghAAAIIQAACFEAAAhhAAAI0QAACNEAAAnRAAAJ0QAABdEwAAXxMAABIXAAAUFwAAMhcAADMXAABSFwAAUxcAAHIXAABzFwAAtBcAALUXAAC3FwAAvRcAAMYXAADGFwAAyRcAANMXAADdFwAA3RcAAAsYAAANGAAADxgAAA8YAACFGAAAhhgAAKkYAACpGAAAIBkAACIZAAAnGQAAKBkAADIZAAAyGQAAORkAADsZAAAXGgAAGBoAABsaAAAbGgAAVhoAAFYaAABYGgAAXhoAAGAaAABgGgAAYhoAAGIaAABlGgAAbBoAAHMaAAB8GgAAfxoAAH8aAACwGgAAvRoAAL8aAADOGgAAABsAAAMbAAA0GwAANBsAADYbAAA6GwAAPBsAADwbAABCGwAAQhsAAGsbAABzGwAAgBsAAIEbAACiGwAApRsAAKgbAACpGwAAqxsAAK0bAADmGwAA5hsAAOgbAADpGwAA7RsAAO0bAADvGwAA8RsAACwcAAAzHAAANhwAADccAADQHAAA0hwAANQcAADgHAAA4hwAAOgcAADtHAAA7RwAAPQcAAD0HAAA+BwAAPkcAADAHQAA/x0AANAgAADcIAAA4SAAAOEgAADlIAAA8CAAAO8sAADxLAAAfy0AAH8tAADgLQAA/y0AACowAAAtMAAAmTAAAJowAABvpgAAb6YAAHSmAAB9pgAAnqYAAJ+mAADwpgAA8aYAAAKoAAACqAAABqgAAAaoAAALqAAAC6gAACWoAAAmqAAALKgAACyoAADEqAAAxagAAOCoAADxqAAA/6gAAP+oAAAmqQAALakAAEepAABRqQAAgKkAAIKpAACzqQAAs6kAALapAAC5qQAAvKkAAL2pAADlqQAA5akAACmqAAAuqgAAMaoAADKqAAA1qgAANqoAAEOqAABDqgAATKoAAEyqAAB8qgAAfKoAALCqAACwqgAAsqoAALSqAAC3qgAAuKoAAL6qAAC/qgAAwaoAAMGqAADsqgAA7aoAAPaqAAD2qgAA5asAAOWrAADoqwAA6KsAAO2rAADtqwAAHvsAAB77AAAA/gAAD/4AACD+AAAv/gAA/QEBAP0BAQDgAgEA4AIBAHYDAQB6AwEAAQoBAAMKAQAFCgEABgoBAAwKAQAPCgEAOAoBADoKAQA/CgEAPwoBAOUKAQDmCgEAJA0BACcNAQCrDgEArA4BAEYPAQBQDwEAgg8BAIUPAQABEAEAARABADgQAQBGEAEAcBABAHAQAQBzEAEAdBABAH8QAQCBEAEAsxABALYQAQC5EAEAuhABAMIQAQDCEAEAABEBAAIRAQAnEQEAKxEBAC0RAQA0EQEAcxEBAHMRAQCAEQEAgREBALYRAQC+EQEAyREBAMwRAQDPEQEAzxEBAC8SAQAxEgEANBIBADQSAQA2EgEANxIBAD4SAQA+EgEA3xIBAN8SAQDjEgEA6hIBAAATAQABEwEAOxMBADwTAQBAEwEAQBMBAGYTAQBsEwEAcBMBAHQTAQA4FAEAPxQBAEIUAQBEFAEARhQBAEYUAQBeFAEAXhQBALMUAQC4FAEAuhQBALoUAQC/FAEAwBQBAMIUAQDDFAEAshUBALUVAQC8FQEAvRUBAL8VAQDAFQEA3BUBAN0VAQAzFgEAOhYBAD0WAQA9FgEAPxYBAEAWAQCrFgEAqxYBAK0WAQCtFgEAsBYBALUWAQC3FgEAtxYBAB0XAQAfFwEAIhcBACUXAQAnFwEAKxcBAC8YAQA3GAEAORgBADoYAQA7GQEAPBkBAD4ZAQA+GQEAQxkBAEMZAQDUGQEA1xkBANoZAQDbGQEA4BkBAOAZAQABGgEAChoBADMaAQA4GgEAOxoBAD4aAQBHGgEARxoBAFEaAQBWGgEAWRoBAFsaAQCKGgEAlhoBAJgaAQCZGgEAMBwBADYcAQA4HAEAPRwBAD8cAQA/HAEAkhwBAKccAQCqHAEAsBwBALIcAQCzHAEAtRwBALYcAQAxHQEANh0BADodAQA6HQEAPB0BAD0dAQA/HQEARR0BAEcdAQBHHQEAkB0BAJEdAQCVHQEAlR0BAJcdAQCXHQEA8x4BAPQeAQDwagEA9GoBADBrAQA2awEAT28BAE9vAQCPbwEAkm8BAORvAQDkbwEAnbwBAJ68AQAAzwEALc8BADDPAQBGzwEAZ9EBAGnRAQB70QEAgtEBAIXRAQCL0QEAqtEBAK3RAQBC0gEARNIBAADaAQA22gEAO9oBAGzaAQB12gEAddoBAITaAQCE2gEAm9oBAJ/aAQCh2gEAr9oBAADgAQAG4AEACOABABjgAQAb4AEAIeABACPgAQAk4AEAJuABACrgAQAw4QEANuEBAK7iAQCu4gEA7OIBAO/iAQDQ6AEA1ugBAETpAQBK6QEAAAEOAO8BDgBB0JsLCxMCAAAAABYBAEQWAQBQFgEAWRYBAEHwmwsLMwYAAAAAGAAAARgAAAQYAAAEGAAABhgAABkYAAAgGAAAeBgAAIAYAACqGAAAYBYBAGwWAQBBsJwLC6MJAwAAAEBqAQBeagEAYGoBAGlqAQBuagEAb2oBAAAAAAAFAAAAgBIBAIYSAQCIEgEAiBIBAIoSAQCNEgEAjxIBAJ0SAQCfEgEAqRIBAAAAAAADAAAAABAAAJ8QAADgqQAA/qkAAGCqAAB/qgAAAAAAAIYAAAAwAAAAOQAAALIAAACzAAAAuQAAALkAAAC8AAAAvgAAAGAGAABpBgAA8AYAAPkGAADABwAAyQcAAGYJAABvCQAA5gkAAO8JAAD0CQAA+QkAAGYKAABvCgAA5goAAO8KAABmCwAAbwsAAHILAAB3CwAA5gsAAPILAABmDAAAbwwAAHgMAAB+DAAA5gwAAO8MAABYDQAAXg0AAGYNAAB4DQAA5g0AAO8NAABQDgAAWQ4AANAOAADZDgAAIA8AADMPAABAEAAASRAAAJAQAACZEAAAaRMAAHwTAADuFgAA8BYAAOAXAADpFwAA8BcAAPkXAAAQGAAAGRgAAEYZAABPGQAA0BkAANoZAACAGgAAiRoAAJAaAACZGgAAUBsAAFkbAACwGwAAuRsAAEAcAABJHAAAUBwAAFkcAABwIAAAcCAAAHQgAAB5IAAAgCAAAIkgAABQIQAAgiEAAIUhAACJIQAAYCQAAJskAADqJAAA/yQAAHYnAACTJwAA/SwAAP0sAAAHMAAABzAAACEwAAApMAAAODAAADowAACSMQAAlTEAACAyAAApMgAASDIAAE8yAABRMgAAXzIAAIAyAACJMgAAsTIAAL8yAAAgpgAAKaYAAOamAADvpgAAMKgAADWoAADQqAAA2agAAACpAAAJqQAA0KkAANmpAADwqQAA+akAAFCqAABZqgAA8KsAAPmrAAAQ/wAAGf8AAAcBAQAzAQEAQAEBAHgBAQCKAQEAiwEBAOECAQD7AgEAIAMBACMDAQBBAwEAQQMBAEoDAQBKAwEA0QMBANUDAQCgBAEAqQQBAFgIAQBfCAEAeQgBAH8IAQCnCAEArwgBAPsIAQD/CAEAFgkBABsJAQC8CQEAvQkBAMAJAQDPCQEA0gkBAP8JAQBACgEASAoBAH0KAQB+CgEAnQoBAJ8KAQDrCgEA7woBAFgLAQBfCwEAeAsBAH8LAQCpCwEArwsBAPoMAQD/DAEAMA0BADkNAQBgDgEAfg4BAB0PAQAmDwEAUQ8BAFQPAQDFDwEAyw8BAFIQAQBvEAEA8BABAPkQAQA2EQEAPxEBANARAQDZEQEA4REBAPQRAQDwEgEA+RIBAFAUAQBZFAEA0BQBANkUAQBQFgEAWRYBAMAWAQDJFgEAMBcBADsXAQDgGAEA8hgBAFAZAQBZGQEAUBwBAGwcAQBQHQEAWR0BAKAdAQCpHQEAwB8BANQfAQAAJAEAbiQBAGBqAQBpagEAwGoBAMlqAQBQawEAWWsBAFtrAQBhawEAgG4BAJZuAQDg0gEA89IBAGDTAQB40wEAztcBAP/XAQBA4QEASeEBAPDiAQD54gEAx+gBAM/oAQBQ6QEAWekBAHHsAQCr7AEArewBAK/sAQCx7AEAtOwBAAHtAQAt7QEAL+0BAD3tAQAA8QEADPEBAPD7AQD5+wEAQeClCwsTAgAAAIAIAQCeCAEApwgBAK8IAQBBgKYLC0IDAAAAoBkBAKcZAQCqGQEA1xkBANoZAQDkGQEAAAAAAAQAAACAGQAAqxkAALAZAADJGQAA0BkAANoZAADeGQAA3xkAQdCmCwsTAgAAAAAUAQBbFAEAXRQBAGEUAQBB8KYLCxICAAAAwAcAAPoHAAD9BwAA/wcAQZCnCwtjDAAAAO4WAADwFgAAYCEAAIIhAACFIQAAiCEAAAcwAAAHMAAAITAAACkwAAA4MAAAOjAAAOamAADvpgAAQAEBAHQBAQBBAwEAQQMBAEoDAQBKAwEA0QMBANUDAQAAJAEAbiQBAEGAqAsL0wVHAAAAsgAAALMAAAC5AAAAuQAAALwAAAC+AAAA9AkAAPkJAAByCwAAdwsAAPALAADyCwAAeAwAAH4MAABYDQAAXg0AAHANAAB4DQAAKg8AADMPAABpEwAAfBMAAPAXAAD5FwAA2hkAANoZAABwIAAAcCAAAHQgAAB5IAAAgCAAAIkgAABQIQAAXyEAAIkhAACJIQAAYCQAAJskAADqJAAA/yQAAHYnAACTJwAA/SwAAP0sAACSMQAAlTEAACAyAAApMgAASDIAAE8yAABRMgAAXzIAAIAyAACJMgAAsTIAAL8yAAAwqAAANagAAAcBAQAzAQEAdQEBAHgBAQCKAQEAiwEBAOECAQD7AgEAIAMBACMDAQBYCAEAXwgBAHkIAQB/CAEApwgBAK8IAQD7CAEA/wgBABYJAQAbCQEAvAkBAL0JAQDACQEAzwkBANIJAQD/CQEAQAoBAEgKAQB9CgEAfgoBAJ0KAQCfCgEA6woBAO8KAQBYCwEAXwsBAHgLAQB/CwEAqQsBAK8LAQD6DAEA/wwBAGAOAQB+DgEAHQ8BACYPAQBRDwEAVA8BAMUPAQDLDwEAUhABAGUQAQDhEQEA9BEBADoXAQA7FwEA6hgBAPIYAQBaHAEAbBwBAMAfAQDUHwEAW2sBAGFrAQCAbgEAlm4BAODSAQDz0gEAYNMBAHjTAQDH6AEAz+gBAHHsAQCr7AEArewBAK/sAQCx7AEAtOwBAAHtAQAt7QEAL+0BAD3tAQAA8QEADPEBAAAAAAASAAAA0P0AAO/9AAD+/wAA//8AAP7/AQD//wEA/v8CAP//AgD+/wMA//8DAP7/BAD//wQA/v8FAP//BQD+/wYA//8GAP7/BwD//wcA/v8IAP//CAD+/wkA//8JAP7/CgD//woA/v8LAP//CwD+/wwA//8MAP7/DQD//w0A/v8OAP//DgD+/w8A//8PAP7/EAD//xAAQeCtCwsTAgAAAOFvAQDhbwEAcLEBAPuyAQBBgK4LC9MBBAAAAADhAQAs4QEAMOEBAD3hAQBA4QEASeEBAE7hAQBP4QEAAQAAAIAWAACcFgAAAQAAAFAcAAB/HAAAAAAAAAMAAACADAEAsgwBAMAMAQDyDAEA+gwBAP8MAQAAAAAAAgAAAAADAQAjAwEALQMBAC8DAQABAAAAgAoBAJ8KAQABAAAAUAMBAHoDAQAAAAAAAgAAAKADAQDDAwEAyAMBANUDAQABAAAAAA8BACcPAQABAAAAYAoBAH8KAQABAAAAAAwBAEgMAQABAAAAcA8BAIkPAQBB4K8LC3IOAAAAAQsAAAMLAAAFCwAADAsAAA8LAAAQCwAAEwsAACgLAAAqCwAAMAsAADILAAAzCwAANQsAADkLAAA8CwAARAsAAEcLAABICwAASwsAAE0LAABVCwAAVwsAAFwLAABdCwAAXwsAAGMLAABmCwAAdwsAQeCwCwsTAgAAALAEAQDTBAEA2AQBAPsEAQBBgLELCxMCAAAAgAQBAJ0EAQCgBAEAqQQBAEGgsQsLohHpAAAARQMAAEUDAACwBQAAvQUAAL8FAAC/BQAAwQUAAMIFAADEBQAAxQUAAMcFAADHBQAAEAYAABoGAABLBgAAVwYAAFkGAABfBgAAcAYAAHAGAADWBgAA3AYAAOEGAADkBgAA5wYAAOgGAADtBgAA7QYAABEHAAARBwAAMAcAAD8HAACmBwAAsAcAABYIAAAXCAAAGwgAACMIAAAlCAAAJwgAACkIAAAsCAAA1AgAAN8IAADjCAAA6QgAAPAIAAADCQAAOgkAADsJAAA+CQAATAkAAE4JAABPCQAAVQkAAFcJAABiCQAAYwkAAIEJAACDCQAAvgkAAMQJAADHCQAAyAkAAMsJAADMCQAA1wkAANcJAADiCQAA4wkAAAEKAAADCgAAPgoAAEIKAABHCgAASAoAAEsKAABMCgAAUQoAAFEKAABwCgAAcQoAAHUKAAB1CgAAgQoAAIMKAAC+CgAAxQoAAMcKAADJCgAAywoAAMwKAADiCgAA4woAAPoKAAD8CgAAAQsAAAMLAAA+CwAARAsAAEcLAABICwAASwsAAEwLAABWCwAAVwsAAGILAABjCwAAggsAAIILAAC+CwAAwgsAAMYLAADICwAAygsAAMwLAADXCwAA1wsAAAAMAAADDAAAPgwAAEQMAABGDAAASAwAAEoMAABMDAAAVQwAAFYMAABiDAAAYwwAAIEMAACDDAAAvgwAAMQMAADGDAAAyAwAAMoMAADMDAAA1QwAANYMAADiDAAA4wwAAAANAAADDQAAPg0AAEQNAABGDQAASA0AAEoNAABMDQAAVw0AAFcNAABiDQAAYw0AAIENAACDDQAAzw0AANQNAADWDQAA1g0AANgNAADfDQAA8g0AAPMNAAAxDgAAMQ4AADQOAAA6DgAATQ4AAE0OAACxDgAAsQ4AALQOAAC5DgAAuw4AALwOAADNDgAAzQ4AAHEPAACBDwAAjQ8AAJcPAACZDwAAvA8AACsQAAA2EAAAOBAAADgQAAA7EAAAPhAAAFYQAABZEAAAXhAAAGAQAABiEAAAZBAAAGcQAABtEAAAcRAAAHQQAACCEAAAjRAAAI8QAACPEAAAmhAAAJ0QAAASFwAAExcAADIXAAAzFwAAUhcAAFMXAAByFwAAcxcAALYXAADIFwAAhRgAAIYYAACpGAAAqRgAACAZAAArGQAAMBkAADgZAAAXGgAAGxoAAFUaAABeGgAAYRoAAHQaAAC/GgAAwBoAAMwaAADOGgAAABsAAAQbAAA1GwAAQxsAAIAbAACCGwAAoRsAAKkbAACsGwAArRsAAOcbAADxGwAAJBwAADYcAADnHQAA9B0AALYkAADpJAAA4C0AAP8tAAB0pgAAe6YAAJ6mAACfpgAAAqgAAAKoAAALqAAAC6gAACOoAAAnqAAAgKgAAIGoAAC0qAAAw6gAAMWoAADFqAAA/6gAAP+oAAAmqQAAKqkAAEepAABSqQAAgKkAAIOpAAC0qQAAv6kAAOWpAADlqQAAKaoAADaqAABDqgAAQ6oAAEyqAABNqgAAe6oAAH2qAACwqgAAsKoAALKqAAC0qgAAt6oAALiqAAC+qgAAvqoAAOuqAADvqgAA9aoAAPWqAADjqwAA6qsAAB77AAAe+wAAdgMBAHoDAQABCgEAAwoBAAUKAQAGCgEADAoBAA8KAQAkDQEAJw0BAKsOAQCsDgEAABABAAIQAQA4EAEARRABAHMQAQB0EAEAghABAIIQAQCwEAEAuBABAMIQAQDCEAEAABEBAAIRAQAnEQEAMhEBAEURAQBGEQEAgBEBAIIRAQCzEQEAvxEBAM4RAQDPEQEALBIBADQSAQA3EgEANxIBAD4SAQA+EgEA3xIBAOgSAQAAEwEAAxMBAD4TAQBEEwEARxMBAEgTAQBLEwEATBMBAFcTAQBXEwEAYhMBAGMTAQA1FAEAQRQBAEMUAQBFFAEAsBQBAMEUAQCvFQEAtRUBALgVAQC+FQEA3BUBAN0VAQAwFgEAPhYBAEAWAQBAFgEAqxYBALUWAQAdFwEAKhcBACwYAQA4GAEAMBkBADUZAQA3GQEAOBkBADsZAQA8GQEAQBkBAEAZAQBCGQEAQhkBANEZAQDXGQEA2hkBAN8ZAQDkGQEA5BkBAAEaAQAKGgEANRoBADkaAQA7GgEAPhoBAFEaAQBbGgEAihoBAJcaAQAvHAEANhwBADgcAQA+HAEAkhwBAKccAQCpHAEAthwBADEdAQA2HQEAOh0BADodAQA8HQEAPR0BAD8dAQBBHQEAQx0BAEMdAQBHHQEARx0BAIodAQCOHQEAkB0BAJEdAQCTHQEAlh0BAPMeAQD2HgEAT28BAE9vAQBRbwEAh28BAI9vAQCSbwEA8G8BAPFvAQCevAEAnrwBAADgAQAG4AEACOABABjgAQAb4AEAIeABACPgAQAk4AEAJuABACrgAQBH6QEAR+kBADDxAQBJ8QEAUPEBAGnxAQBw8QEAifEBAAAAAAALAAAATwMAAE8DAABfEQAAYBEAALQXAAC1FwAAZSAAAGUgAABkMQAAZDEAAKD/AACg/wAA8P8AAPj/AAAAAA4AAAAOAAIADgAfAA4AgAAOAP8ADgDwAQ4A/w8OAAAAAAAZAAAAvgkAAL4JAADXCQAA1wkAAD4LAAA+CwAAVwsAAFcLAAC+CwAAvgsAANcLAADXCwAAwgwAAMIMAADVDAAA1gwAAD4NAAA+DQAAVw0AAFcNAADPDQAAzw0AAN8NAADfDQAANRsAADUbAAAMIAAADCAAAC4wAAAvMAAAnv8AAJ//AAA+EwEAPhMBAFcTAQBXEwEAsBQBALAUAQC9FAEAvRQBAK8VAQCvFQEAMBkBADAZAQBl0QEAZdEBAG7RAQBy0QEAIAAOAH8ADgAAAAAABAAAALcAAAC3AAAAhwMAAIcDAABpEwAAcRMAANoZAADaGQBB0MILCyIEAAAAhRgAAIYYAAAYIQAAGCEAAC4hAAAuIQAAmzAAAJwwAEGAwwsLwwEYAAAAqgAAAKoAAAC6AAAAugAAALACAAC4AgAAwAIAAMECAADgAgAA5AIAAEUDAABFAwAAegMAAHoDAAAsHQAAah0AAHgdAAB4HQAAmx0AAL8dAABxIAAAcSAAAH8gAAB/IAAAkCAAAJwgAABwIQAAfyEAANAkAADpJAAAfCwAAH0sAACcpgAAnaYAAHCnAABwpwAA+KcAAPmnAABcqwAAX6sAAIAHAQCABwEAgwcBAIUHAQCHBwEAsAcBALIHAQC6BwEAQdDECwuzCIYAAABeAAAAXgAAANADAADSAwAA1QMAANUDAADwAwAA8QMAAPQDAAD1AwAAFiAAABYgAAAyIAAANCAAAEAgAABAIAAAYSAAAGQgAAB9IAAAfiAAAI0gAACOIAAA0CAAANwgAADhIAAA4SAAAOUgAADmIAAA6yAAAO8gAAACIQAAAiEAAAchAAAHIQAACiEAABMhAAAVIQAAFSEAABkhAAAdIQAAJCEAACQhAAAoIQAAKSEAACwhAAAtIQAALyEAADEhAAAzIQAAOCEAADwhAAA/IQAARSEAAEkhAACVIQAAmSEAAJwhAACfIQAAoSEAAKIhAACkIQAApSEAAKchAACnIQAAqSEAAK0hAACwIQAAsSEAALYhAAC3IQAAvCEAAM0hAADQIQAA0SEAANMhAADTIQAA1SEAANshAADdIQAA3SEAAOQhAADlIQAACCMAAAsjAAC0IwAAtSMAALcjAAC3IwAA0CMAANAjAADiIwAA4iMAAKAlAAChJQAAriUAALYlAAC8JQAAwCUAAMYlAADHJQAAyiUAAMslAADPJQAA0yUAAOIlAADiJQAA5CUAAOQlAADnJQAA7CUAAAUmAAAGJgAAQCYAAEAmAABCJgAAQiYAAGAmAABjJgAAbSYAAG4mAADFJwAAxicAAOYnAADvJwAAgykAAJgpAADYKQAA2ykAAPwpAAD9KQAAYf4AAGH+AABj/gAAY/4AAGj+AABo/gAAPP8AADz/AAA+/wAAPv8AAADUAQBU1AEAVtQBAJzUAQCe1AEAn9QBAKLUAQCi1AEApdQBAKbUAQCp1AEArNQBAK7UAQC51AEAu9QBALvUAQC91AEAw9QBAMXUAQAF1QEAB9UBAArVAQAN1QEAFNUBABbVAQAc1QEAHtUBADnVAQA71QEAPtUBAEDVAQBE1QEARtUBAEbVAQBK1QEAUNUBAFLVAQCl1gEAqNYBAMDWAQDC1gEA2tYBANzWAQD61gEA/NYBABTXAQAW1wEANNcBADbXAQBO1wEAUNcBAG7XAQBw1wEAiNcBAIrXAQCo1wEAqtcBAMLXAQDE1wEAy9cBAM7XAQD/1wEAAO4BAAPuAQAF7gEAH+4BACHuAQAi7gEAJO4BACTuAQAn7gEAJ+4BACnuAQAy7gEANO4BADfuAQA57gEAOe4BADvuAQA77gEAQu4BAELuAQBH7gEAR+4BAEnuAQBJ7gEAS+4BAEvuAQBN7gEAT+4BAFHuAQBS7gEAVO4BAFTuAQBX7gEAV+4BAFnuAQBZ7gEAW+4BAFvuAQBd7gEAXe4BAF/uAQBf7gEAYe4BAGLuAQBk7gEAZO4BAGfuAQBq7gEAbO4BAHLuAQB07gEAd+4BAHnuAQB87gEAfu4BAH7uAQCA7gEAie4BAIvuAQCb7gEAoe4BAKPuAQCl7gEAqe4BAKvuAQC77gEAQZDNCwtnBQAAAGAhAABvIQAAtiQAAM8kAAAw8QEASfEBAFDxAQBp8QEAcPEBAInxAQAAAAAABQAAAABrAQBFawEAUGsBAFlrAQBbawEAYWsBAGNrAQB3awEAfWsBAI9rAQABAAAAYAgBAH8IAQBBgM4LC+IBHAAAACEAAAAvAAAAOgAAAEAAAABbAAAAXgAAAGAAAABgAAAAewAAAH4AAAChAAAApwAAAKkAAACpAAAAqwAAAKwAAACuAAAArgAAALAAAACxAAAAtgAAALYAAAC7AAAAuwAAAL8AAAC/AAAA1wAAANcAAAD3AAAA9wAAABAgAAAnIAAAMCAAAD4gAABBIAAAUyAAAFUgAABeIAAAkCEAAF8kAAAAJQAAdScAAJQnAAD/KwAAAC4AAH8uAAABMAAAAzAAAAgwAAAgMAAAMDAAADAwAAA+/QAAP/0AAEX+AABG/gBB8M8LCzcFAAAACQAAAA0AAAAgAAAAIAAAAIUAAACFAAAADiAAAA8gAAAoIAAAKSAAAAEAAADAGgEA+BoBAEGw0AsLMgYAAABfAAAAXwAAAD8gAABAIAAAVCAAAFQgAAAz/gAANP4AAE3+AABP/gAAP/8AAD//AEHw0AsLggYTAAAALQAAAC0AAACKBQAAigUAAL4FAAC+BQAAABQAAAAUAAAGGAAABhgAABAgAAAVIAAAFy4AABcuAAAaLgAAGi4AADouAAA7LgAAQC4AAEAuAABdLgAAXS4AABwwAAAcMAAAMDAAADAwAACgMAAAoDAAADH+AAAy/gAAWP4AAFj+AABj/gAAY/4AAA3/AAAN/wAArQ4BAK0OAQAAAAAATAAAACkAAAApAAAAXQAAAF0AAAB9AAAAfQAAADsPAAA7DwAAPQ8AAD0PAACcFgAAnBYAAEYgAABGIAAAfiAAAH4gAACOIAAAjiAAAAkjAAAJIwAACyMAAAsjAAAqIwAAKiMAAGknAABpJwAAaycAAGsnAABtJwAAbScAAG8nAABvJwAAcScAAHEnAABzJwAAcycAAHUnAAB1JwAAxicAAMYnAADnJwAA5ycAAOknAADpJwAA6ycAAOsnAADtJwAA7ScAAO8nAADvJwAAhCkAAIQpAACGKQAAhikAAIgpAACIKQAAiikAAIopAACMKQAAjCkAAI4pAACOKQAAkCkAAJApAACSKQAAkikAAJQpAACUKQAAlikAAJYpAACYKQAAmCkAANkpAADZKQAA2ykAANspAAD9KQAA/SkAACMuAAAjLgAAJS4AACUuAAAnLgAAJy4AACkuAAApLgAAVi4AAFYuAABYLgAAWC4AAFouAABaLgAAXC4AAFwuAAAJMAAACTAAAAswAAALMAAADTAAAA0wAAAPMAAADzAAABEwAAARMAAAFTAAABUwAAAXMAAAFzAAABkwAAAZMAAAGzAAABswAAAeMAAAHzAAAD79AAA+/QAAGP4AABj+AAA2/gAANv4AADj+AAA4/gAAOv4AADr+AAA8/gAAPP4AAD7+AAA+/gAAQP4AAED+AABC/gAAQv4AAET+AABE/gAASP4AAEj+AABa/gAAWv4AAFz+AABc/gAAXv4AAF7+AAAJ/wAACf8AAD3/AAA9/wAAXf8AAF3/AABg/wAAYP8AAGP/AABj/wBBgNcLC3MKAAAAuwAAALsAAAAZIAAAGSAAAB0gAAAdIAAAOiAAADogAAADLgAAAy4AAAUuAAAFLgAACi4AAAouAAANLgAADS4AAB0uAAAdLgAAIS4AACEuAAABAAAAQKgAAHeoAAACAAAAAAkBABsJAQAfCQEAHwkBAEGA2AsLpxMLAAAAqwAAAKsAAAAYIAAAGCAAABsgAAAcIAAAHyAAAB8gAAA5IAAAOSAAAAIuAAACLgAABC4AAAQuAAAJLgAACS4AAAwuAAAMLgAAHC4AABwuAAAgLgAAIC4AAAAAAAC5AAAAIQAAACMAAAAlAAAAJwAAACoAAAAqAAAALAAAACwAAAAuAAAALwAAADoAAAA7AAAAPwAAAEAAAABcAAAAXAAAAKEAAAChAAAApwAAAKcAAAC2AAAAtwAAAL8AAAC/AAAAfgMAAH4DAACHAwAAhwMAAFoFAABfBQAAiQUAAIkFAADABQAAwAUAAMMFAADDBQAAxgUAAMYFAADzBQAA9AUAAAkGAAAKBgAADAYAAA0GAAAbBgAAGwYAAB0GAAAfBgAAagYAAG0GAADUBgAA1AYAAAAHAAANBwAA9wcAAPkHAAAwCAAAPggAAF4IAABeCAAAZAkAAGUJAABwCQAAcAkAAP0JAAD9CQAAdgoAAHYKAADwCgAA8AoAAHcMAAB3DAAAhAwAAIQMAAD0DQAA9A0AAE8OAABPDgAAWg4AAFsOAAAEDwAAEg8AABQPAAAUDwAAhQ8AAIUPAADQDwAA1A8AANkPAADaDwAAShAAAE8QAAD7EAAA+xAAAGATAABoEwAAbhYAAG4WAADrFgAA7RYAADUXAAA2FwAA1BcAANYXAADYFwAA2hcAAAAYAAAFGAAABxgAAAoYAABEGQAARRkAAB4aAAAfGgAAoBoAAKYaAACoGgAArRoAAFobAABgGwAAfRsAAH4bAAD8GwAA/xsAADscAAA/HAAAfhwAAH8cAADAHAAAxxwAANMcAADTHAAAFiAAABcgAAAgIAAAJyAAADAgAAA4IAAAOyAAAD4gAABBIAAAQyAAAEcgAABRIAAAUyAAAFMgAABVIAAAXiAAAPksAAD8LAAA/iwAAP8sAABwLQAAcC0AAAAuAAABLgAABi4AAAguAAALLgAACy4AAA4uAAAWLgAAGC4AABkuAAAbLgAAGy4AAB4uAAAfLgAAKi4AAC4uAAAwLgAAOS4AADwuAAA/LgAAQS4AAEEuAABDLgAATy4AAFIuAABULgAAATAAAAMwAAA9MAAAPTAAAPswAAD7MAAA/qQAAP+kAAANpgAAD6YAAHOmAABzpgAAfqYAAH6mAADypgAA96YAAHSoAAB3qAAAzqgAAM+oAAD4qAAA+qgAAPyoAAD8qAAALqkAAC+pAABfqQAAX6kAAMGpAADNqQAA3qkAAN+pAABcqgAAX6oAAN6qAADfqgAA8KoAAPGqAADrqwAA66sAABD+AAAW/gAAGf4AABn+AAAw/gAAMP4AAEX+AABG/gAASf4AAEz+AABQ/gAAUv4AAFT+AABX/gAAX/4AAGH+AABo/gAAaP4AAGr+AABr/gAAAf8AAAP/AAAF/wAAB/8AAAr/AAAK/wAADP8AAAz/AAAO/wAAD/8AABr/AAAb/wAAH/8AACD/AAA8/wAAPP8AAGH/AABh/wAAZP8AAGX/AAAAAQEAAgEBAJ8DAQCfAwEA0AMBANADAQBvBQEAbwUBAFcIAQBXCAEAHwkBAB8JAQA/CQEAPwkBAFAKAQBYCgEAfwoBAH8KAQDwCgEA9goBADkLAQA/CwEAmQsBAJwLAQBVDwEAWQ8BAIYPAQCJDwEARxABAE0QAQC7EAEAvBABAL4QAQDBEAEAQBEBAEMRAQB0EQEAdREBAMURAQDIEQEAzREBAM0RAQDbEQEA2xEBAN0RAQDfEQEAOBIBAD0SAQCpEgEAqRIBAEsUAQBPFAEAWhQBAFsUAQBdFAEAXRQBAMYUAQDGFAEAwRUBANcVAQBBFgEAQxYBAGAWAQBsFgEAuRYBALkWAQA8FwEAPhcBADsYAQA7GAEARBkBAEYZAQDiGQEA4hkBAD8aAQBGGgEAmhoBAJwaAQCeGgEAohoBAEEcAQBFHAEAcBwBAHEcAQD3HgEA+B4BAP8fAQD/HwEAcCQBAHQkAQDxLwEA8i8BAG5qAQBvagEA9WoBAPVqAQA3awEAO2sBAERrAQBEawEAl24BAJpuAQDibwEA4m8BAJ+8AQCfvAEAh9oBAIvaAQBe6QEAX+kBAAAAAAAHAAAAAAYAAAUGAADdBgAA3QYAAA8HAAAPBwAAkAgAAJEIAADiCAAA4ggAAL0QAQC9EAEAzRABAM0QAQAAAAAATwAAACgAAAAoAAAAWwAAAFsAAAB7AAAAewAAADoPAAA6DwAAPA8AADwPAACbFgAAmxYAABogAAAaIAAAHiAAAB4gAABFIAAARSAAAH0gAAB9IAAAjSAAAI0gAAAIIwAACCMAAAojAAAKIwAAKSMAACkjAABoJwAAaCcAAGonAABqJwAAbCcAAGwnAABuJwAAbicAAHAnAABwJwAAcicAAHInAAB0JwAAdCcAAMUnAADFJwAA5icAAOYnAADoJwAA6CcAAOonAADqJwAA7CcAAOwnAADuJwAA7icAAIMpAACDKQAAhSkAAIUpAACHKQAAhykAAIkpAACJKQAAiykAAIspAACNKQAAjSkAAI8pAACPKQAAkSkAAJEpAACTKQAAkykAAJUpAACVKQAAlykAAJcpAADYKQAA2CkAANopAADaKQAA/CkAAPwpAAAiLgAAIi4AACQuAAAkLgAAJi4AACYuAAAoLgAAKC4AAEIuAABCLgAAVS4AAFUuAABXLgAAVy4AAFkuAABZLgAAWy4AAFsuAAAIMAAACDAAAAowAAAKMAAADDAAAAwwAAAOMAAADjAAABAwAAAQMAAAFDAAABQwAAAWMAAAFjAAABgwAAAYMAAAGjAAABowAAAdMAAAHTAAAD/9AAA//QAAF/4AABf+AAA1/gAANf4AADf+AAA3/gAAOf4AADn+AAA7/gAAO/4AAD3+AAA9/gAAP/4AAD/+AABB/gAAQf4AAEP+AABD/gAAR/4AAEf+AABZ/gAAWf4AAFv+AABb/gAAXf4AAF3+AAAI/wAACP8AADv/AAA7/wAAW/8AAFv/AABf/wAAX/8AAGL/AABi/wAAAAAAAAMAAACACwEAkQsBAJkLAQCcCwEAqQsBAK8LAQAAAAAADQAAACIAAAAiAAAAJwAAACcAAACrAAAAqwAAALsAAAC7AAAAGCAAAB8gAAA5IAAAOiAAAEIuAABCLgAADDAAAA8wAAAdMAAAHzAAAEH+AABE/gAAAv8AAAL/AAAH/wAAB/8AAGL/AABj/wAAAAAAAAMAAACALgAAmS4AAJsuAADzLgAAAC8AANUvAAABAAAA5vEBAP/xAQBBsOsLCxICAAAAMKkAAFOpAABfqQAAX6kAQdDrCwsSAgAAAKAWAADqFgAA7hYAAPgWAEHw6wsL0w7qAAAAJAAAACQAAAArAAAAKwAAADwAAAA+AAAAXgAAAF4AAABgAAAAYAAAAHwAAAB8AAAAfgAAAH4AAACiAAAApgAAAKgAAACpAAAArAAAAKwAAACuAAAAsQAAALQAAAC0AAAAuAAAALgAAADXAAAA1wAAAPcAAAD3AAAAwgIAAMUCAADSAgAA3wIAAOUCAADrAgAA7QIAAO0CAADvAgAA/wIAAHUDAAB1AwAAhAMAAIUDAAD2AwAA9gMAAIIEAACCBAAAjQUAAI8FAAAGBgAACAYAAAsGAAALBgAADgYAAA8GAADeBgAA3gYAAOkGAADpBgAA/QYAAP4GAAD2BwAA9gcAAP4HAAD/BwAAiAgAAIgIAADyCQAA8wkAAPoJAAD7CQAA8QoAAPEKAABwCwAAcAsAAPMLAAD6CwAAfwwAAH8MAABPDQAATw0AAHkNAAB5DQAAPw4AAD8OAAABDwAAAw8AABMPAAATDwAAFQ8AABcPAAAaDwAAHw8AADQPAAA0DwAANg8AADYPAAA4DwAAOA8AAL4PAADFDwAAxw8AAMwPAADODwAAzw8AANUPAADYDwAAnhAAAJ8QAACQEwAAmRMAAG0WAABtFgAA2xcAANsXAABAGQAAQBkAAN4ZAAD/GQAAYRsAAGobAAB0GwAAfBsAAL0fAAC9HwAAvx8AAMEfAADNHwAAzx8AAN0fAADfHwAA7R8AAO8fAAD9HwAA/h8AAEQgAABEIAAAUiAAAFIgAAB6IAAAfCAAAIogAACMIAAAoCAAAMAgAAAAIQAAASEAAAMhAAAGIQAACCEAAAkhAAAUIQAAFCEAABYhAAAYIQAAHiEAACMhAAAlIQAAJSEAACchAAAnIQAAKSEAACkhAAAuIQAALiEAADohAAA7IQAAQCEAAEQhAABKIQAATSEAAE8hAABPIQAAiiEAAIshAACQIQAAByMAAAwjAAAoIwAAKyMAACYkAABAJAAASiQAAJwkAADpJAAAACUAAGcnAACUJwAAxCcAAMcnAADlJwAA8CcAAIIpAACZKQAA1ykAANwpAAD7KQAA/ikAAHMrAAB2KwAAlSsAAJcrAAD/KwAA5SwAAOosAABQLgAAUS4AAIAuAACZLgAAmy4AAPMuAAAALwAA1S8AAPAvAAD7LwAABDAAAAQwAAASMAAAEzAAACAwAAAgMAAANjAAADcwAAA+MAAAPzAAAJswAACcMAAAkDEAAJExAACWMQAAnzEAAMAxAADjMQAAADIAAB4yAAAqMgAARzIAAFAyAABQMgAAYDIAAH8yAACKMgAAsDIAAMAyAAD/MwAAwE0AAP9NAACQpAAAxqQAAACnAAAWpwAAIKcAACGnAACJpwAAiqcAACioAAArqAAANqgAADmoAAB3qgAAeaoAAFurAABbqwAAaqsAAGurAAAp+wAAKfsAALL7AADC+wAAQP0AAE/9AADP/QAAz/0AAPz9AAD//QAAYv4AAGL+AABk/gAAZv4AAGn+AABp/gAABP8AAAT/AAAL/wAAC/8AABz/AAAe/wAAPv8AAD7/AABA/wAAQP8AAFz/AABc/wAAXv8AAF7/AADg/wAA5v8AAOj/AADu/wAA/P8AAP3/AAA3AQEAPwEBAHkBAQCJAQEAjAEBAI4BAQCQAQEAnAEBAKABAQCgAQEA0AEBAPwBAQB3CAEAeAgBAMgKAQDICgEAPxcBAD8XAQDVHwEA8R8BADxrAQA/awEARWsBAEVrAQCcvAEAnLwBAFDPAQDDzwEAANABAPXQAQAA0QEAJtEBACnRAQBk0QEAatEBAGzRAQCD0QEAhNEBAIzRAQCp0QEArtEBAOrRAQAA0gEAQdIBAEXSAQBF0gEAANMBAFbTAQDB1gEAwdYBANvWAQDb1gEA+9YBAPvWAQAV1wEAFdcBADXXAQA11wEAT9cBAE/XAQBv1wEAb9cBAInXAQCJ1wEAqdcBAKnXAQDD1wEAw9cBAADYAQD/2QEAN9oBADraAQBt2gEAdNoBAHbaAQCD2gEAhdoBAIbaAQBP4QEAT+EBAP/iAQD/4gEArOwBAKzsAQCw7AEAsOwBAC7tAQAu7QEA8O4BAPHuAQAA8AEAK/ABADDwAQCT8AEAoPABAK7wAQCx8AEAv/ABAMHwAQDP8AEA0fABAPXwAQAN8QEArfEBAObxAQAC8gEAEPIBADvyAQBA8gEASPIBAFDyAQBR8gEAYPIBAGXyAQAA8wEA1/YBAN32AQDs9gEA8PYBAPz2AQAA9wEAc/cBAID3AQDY9wEA4PcBAOv3AQDw9wEA8PcBAAD4AQAL+AEAEPgBAEf4AQBQ+AEAWfgBAGD4AQCH+AEAkPgBAK34AQCw+AEAsfgBAAD5AQBT+gEAYPoBAG36AQBw+gEAdPoBAHj6AQB8+gEAgPoBAIb6AQCQ+gEArPoBALD6AQC6+gEAwPoBAMX6AQDQ+gEA2foBAOD6AQDn+gEA8PoBAPb6AQAA+wEAkvsBAJT7AQDK+wEAQdD6CwsSAgAAAAAIAAAtCAAAMAgAAD4IAEHw+gsLEgIAAACAqAAAxagAAM6oAADZqABBkPsLC8MGFQAAACQAAAAkAAAAogAAAKUAAACPBQAAjwUAAAsGAAALBgAA/gcAAP8HAADyCQAA8wkAAPsJAAD7CQAA8QoAAPEKAAD5CwAA+QsAAD8OAAA/DgAA2xcAANsXAACgIAAAwCAAADioAAA4qAAA/P0AAPz9AABp/gAAaf4AAAT/AAAE/wAA4P8AAOH/AADl/wAA5v8AAN0fAQDgHwEA/+IBAP/iAQCw7AEAsOwBAAAAAABPAAAAIQAAACEAAAAuAAAALgAAAD8AAAA/AAAAiQUAAIkFAAAdBgAAHwYAANQGAADUBgAAAAcAAAIHAAD5BwAA+QcAADcIAAA3CAAAOQgAADkIAAA9CAAAPggAAGQJAABlCQAAShAAAEsQAABiEwAAYhMAAGcTAABoEwAAbhYAAG4WAAA1FwAANhcAAAMYAAADGAAACRgAAAkYAABEGQAARRkAAKgaAACrGgAAWhsAAFsbAABeGwAAXxsAAH0bAAB+GwAAOxwAADwcAAB+HAAAfxwAADwgAAA9IAAARyAAAEkgAAAuLgAALi4AADwuAAA8LgAAUy4AAFQuAAACMAAAAjAAAP+kAAD/pAAADqYAAA+mAADzpgAA86YAAPemAAD3pgAAdqgAAHeoAADOqAAAz6gAAC+pAAAvqQAAyKkAAMmpAABdqgAAX6oAAPCqAADxqgAA66sAAOurAABS/gAAUv4AAFb+AABX/gAAAf8AAAH/AAAO/wAADv8AAB//AAAf/wAAYf8AAGH/AABWCgEAVwoBAFUPAQBZDwEAhg8BAIkPAQBHEAEASBABAL4QAQDBEAEAQREBAEMRAQDFEQEAxhEBAM0RAQDNEQEA3hEBAN8RAQA4EgEAORIBADsSAQA8EgEAqRIBAKkSAQBLFAEATBQBAMIVAQDDFQEAyRUBANcVAQBBFgEAQhYBADwXAQA+FwEARBkBAEQZAQBGGQEARhkBAEIaAQBDGgEAmxoBAJwaAQBBHAEAQhwBAPceAQD4HgEAbmoBAG9qAQD1agEA9WoBADdrAQA4awEARGsBAERrAQCYbgEAmG4BAJ+8AQCfvAEAiNoBAIjaAQABAAAAgBEBAN8RAQABAAAAUAQBAH8EAQBB4IEMCxMCAAAAgBUBALUVAQC4FQEA3RUBAEGAggwLkwcDAAAAANgBAIvaAQCb2gEAn9oBAKHaAQCv2gEAAAAAAA0AAACBDQAAgw0AAIUNAACWDQAAmg0AALENAACzDQAAuw0AAL0NAAC9DQAAwA0AAMYNAADKDQAAyg0AAM8NAADUDQAA1g0AANYNAADYDQAA3w0AAOYNAADvDQAA8g0AAPQNAADhEQEA9BEBAAAAAAAfAAAAXgAAAF4AAABgAAAAYAAAAKgAAACoAAAArwAAAK8AAAC0AAAAtAAAALgAAAC4AAAAwgIAAMUCAADSAgAA3wIAAOUCAADrAgAA7QIAAO0CAADvAgAA/wIAAHUDAAB1AwAAhAMAAIUDAACICAAAiAgAAL0fAAC9HwAAvx8AAMEfAADNHwAAzx8AAN0fAADfHwAA7R8AAO8fAAD9HwAA/h8AAJswAACcMAAAAKcAABanAAAgpwAAIacAAImnAACKpwAAW6sAAFurAABqqwAAa6sAALL7AADC+wAAPv8AAD7/AABA/wAAQP8AAOP/AADj/wAA+/MBAP/zAQAAAAAAQAAAACsAAAArAAAAPAAAAD4AAAB8AAAAfAAAAH4AAAB+AAAArAAAAKwAAACxAAAAsQAAANcAAADXAAAA9wAAAPcAAAD2AwAA9gMAAAYGAAAIBgAARCAAAEQgAABSIAAAUiAAAHogAAB8IAAAiiAAAIwgAAAYIQAAGCEAAEAhAABEIQAASyEAAEshAACQIQAAlCEAAJohAACbIQAAoCEAAKAhAACjIQAAoyEAAKYhAACmIQAAriEAAK4hAADOIQAAzyEAANIhAADSIQAA1CEAANQhAAD0IQAA/yIAACAjAAAhIwAAfCMAAHwjAACbIwAAsyMAANwjAADhIwAAtyUAALclAADBJQAAwSUAAPglAAD/JQAAbyYAAG8mAADAJwAAxCcAAMcnAADlJwAA8CcAAP8nAAAAKQAAgikAAJkpAADXKQAA3CkAAPspAAD+KQAA/yoAADArAABEKwAARysAAEwrAAAp+wAAKfsAAGL+AABi/gAAZP4AAGb+AAAL/wAAC/8AABz/AAAe/wAAXP8AAFz/AABe/wAAXv8AAOL/AADi/wAA6f8AAOz/AADB1gEAwdYBANvWAQDb1gEA+9YBAPvWAQAV1wEAFdcBADXXAQA11wEAT9cBAE/XAQBv1wEAb9cBAInXAQCJ1wEAqdcBAKnXAQDD1wEAw9cBAPDuAQDx7gEAQaCJDAvTC7oAAACmAAAApgAAAKkAAACpAAAArgAAAK4AAACwAAAAsAAAAIIEAACCBAAAjQUAAI4FAAAOBgAADwYAAN4GAADeBgAA6QYAAOkGAAD9BgAA/gYAAPYHAAD2BwAA+gkAAPoJAABwCwAAcAsAAPMLAAD4CwAA+gsAAPoLAAB/DAAAfwwAAE8NAABPDQAAeQ0AAHkNAAABDwAAAw8AABMPAAATDwAAFQ8AABcPAAAaDwAAHw8AADQPAAA0DwAANg8AADYPAAA4DwAAOA8AAL4PAADFDwAAxw8AAMwPAADODwAAzw8AANUPAADYDwAAnhAAAJ8QAACQEwAAmRMAAG0WAABtFgAAQBkAAEAZAADeGQAA/xkAAGEbAABqGwAAdBsAAHwbAAAAIQAAASEAAAMhAAAGIQAACCEAAAkhAAAUIQAAFCEAABYhAAAXIQAAHiEAACMhAAAlIQAAJSEAACchAAAnIQAAKSEAACkhAAAuIQAALiEAADohAAA7IQAASiEAAEohAABMIQAATSEAAE8hAABPIQAAiiEAAIshAACVIQAAmSEAAJwhAACfIQAAoSEAAKIhAACkIQAApSEAAKchAACtIQAAryEAAM0hAADQIQAA0SEAANMhAADTIQAA1SEAAPMhAAAAIwAAByMAAAwjAAAfIwAAIiMAACgjAAArIwAAeyMAAH0jAACaIwAAtCMAANsjAADiIwAAJiQAAEAkAABKJAAAnCQAAOkkAAAAJQAAtiUAALglAADAJQAAwiUAAPclAAAAJgAAbiYAAHAmAABnJwAAlCcAAL8nAAAAKAAA/ygAAAArAAAvKwAARSsAAEYrAABNKwAAcysAAHYrAACVKwAAlysAAP8rAADlLAAA6iwAAFAuAABRLgAAgC4AAJkuAACbLgAA8y4AAAAvAADVLwAA8C8AAPsvAAAEMAAABDAAABIwAAATMAAAIDAAACAwAAA2MAAANzAAAD4wAAA/MAAAkDEAAJExAACWMQAAnzEAAMAxAADjMQAAADIAAB4yAAAqMgAARzIAAFAyAABQMgAAYDIAAH8yAACKMgAAsDIAAMAyAAD/MwAAwE0AAP9NAACQpAAAxqQAACioAAArqAAANqgAADeoAAA5qAAAOagAAHeqAAB5qgAAQP0AAE/9AADP/QAAz/0AAP39AAD//QAA5P8AAOT/AADo/wAA6P8AAO3/AADu/wAA/P8AAP3/AAA3AQEAPwEBAHkBAQCJAQEAjAEBAI4BAQCQAQEAnAEBAKABAQCgAQEA0AEBAPwBAQB3CAEAeAgBAMgKAQDICgEAPxcBAD8XAQDVHwEA3B8BAOEfAQDxHwEAPGsBAD9rAQBFawEARWsBAJy8AQCcvAEAUM8BAMPPAQAA0AEA9dABAADRAQAm0QEAKdEBAGTRAQBq0QEAbNEBAIPRAQCE0QEAjNEBAKnRAQCu0QEA6tEBAADSAQBB0gEARdIBAEXSAQAA0wEAVtMBAADYAQD/2QEAN9oBADraAQBt2gEAdNoBAHbaAQCD2gEAhdoBAIbaAQBP4QEAT+EBAKzsAQCs7AEALu0BAC7tAQAA8AEAK/ABADDwAQCT8AEAoPABAK7wAQCx8AEAv/ABAMHwAQDP8AEA0fABAPXwAQAN8QEArfEBAObxAQAC8gEAEPIBADvyAQBA8gEASPIBAFDyAQBR8gEAYPIBAGXyAQAA8wEA+vMBAAD0AQDX9gEA3fYBAOz2AQDw9gEA/PYBAAD3AQBz9wEAgPcBANj3AQDg9wEA6/cBAPD3AQDw9wEAAPgBAAv4AQAQ+AEAR/gBAFD4AQBZ+AEAYPgBAIf4AQCQ+AEArfgBALD4AQCx+AEAAPkBAFP6AQBg+gEAbfoBAHD6AQB0+gEAePoBAHz6AQCA+gEAhvoBAJD6AQCs+gEAsPoBALr6AQDA+gEAxfoBAND6AQDZ+gEA4PoBAOf6AQDw+gEA9voBAAD7AQCS+wEAlPsBAMr7AQBBgJUMC/ICIAAAAGkAAABqAAAALwEAAC8BAABJAgAASQIAAGgCAABoAgAAnQIAAJ0CAACyAgAAsgIAAPMDAADzAwAAVgQAAFYEAABYBAAAWAQAAGIdAABiHQAAlh0AAJYdAACkHQAApB0AAKgdAACoHQAALR4AAC0eAADLHgAAyx4AAHEgAABxIAAASCEAAEkhAAB8LAAAfCwAACLUAQAj1AEAVtQBAFfUAQCK1AEAi9QBAL7UAQC/1AEA8tQBAPPUAQAm1QEAJ9UBAFrVAQBb1QEAjtUBAI/VAQDC1QEAw9UBAPbVAQD31QEAKtYBACvWAQBe1gEAX9YBAJLWAQCT1gEAGt8BABrfAQABAAAAMA8BAFkPAQACAAAA0BABAOgQAQDwEAEA+RABAAEAAABQGgEAohoBAAIAAACAGwAAvxsAAMAcAADHHAAAAQAAAACoAAAsqAAABAAAAAAHAAANBwAADwcAAEoHAABNBwAATwcAAGAIAABqCABBgJgMCxICAAAAABcAABUXAAAfFwAAHxcAQaCYDAsyAwAAAGAXAABsFwAAbhcAAHAXAAByFwAAcxcAAAAAAAACAAAAUBkAAG0ZAABwGQAAdBkAQeCYDAtCBQAAACAaAABeGgAAYBoAAHwaAAB/GgAAiRoAAJAaAACZGgAAoBoAAK0aAAAAAAAAAgAAAICqAADCqgAA26oAAN+qAEGwmQwLEwIAAACAFgEAuRYBAMAWAQDJFgEAQdCZDAuTARIAAACCCwAAgwsAAIULAACKCwAAjgsAAJALAACSCwAAlQsAAJkLAACaCwAAnAsAAJwLAACeCwAAnwsAAKMLAACkCwAAqAsAAKoLAACuCwAAuQsAAL4LAADCCwAAxgsAAMgLAADKCwAAzQsAANALAADQCwAA1wsAANcLAADmCwAA+gsAAMAfAQDxHwEA/x8BAP8fAQBB8JoMCxMCAAAAcGoBAL5qAQDAagEAyWoBAEGQmwwLIwQAAADgbwEA4G8BAABwAQD3hwEAAIgBAP+KAQAAjQEACI0BAEHAmwwL1gcNAAAAAAwAAAwMAAAODAAAEAwAABIMAAAoDAAAKgwAADkMAAA8DAAARAwAAEYMAABIDAAASgwAAE0MAABVDAAAVgwAAFgMAABaDAAAXQwAAF0MAABgDAAAYwwAAGYMAABvDAAAdwwAAH8MAAAAAAAAawAAACEAAAAhAAAALAAAACwAAAAuAAAALgAAADoAAAA7AAAAPwAAAD8AAAB+AwAAfgMAAIcDAACHAwAAiQUAAIkFAADDBQAAwwUAAAwGAAAMBgAAGwYAABsGAAAdBgAAHwYAANQGAADUBgAAAAcAAAoHAAAMBwAADAcAAPgHAAD5BwAAMAgAAD4IAABeCAAAXggAAGQJAABlCQAAWg4AAFsOAAAIDwAACA8AAA0PAAASDwAAShAAAEsQAABhEwAAaBMAAG4WAABuFgAA6xYAAO0WAAA1FwAANhcAANQXAADWFwAA2hcAANoXAAACGAAABRgAAAgYAAAJGAAARBkAAEUZAACoGgAAqxoAAFobAABbGwAAXRsAAF8bAAB9GwAAfhsAADscAAA/HAAAfhwAAH8cAAA8IAAAPSAAAEcgAABJIAAALi4AAC4uAAA8LgAAPC4AAEEuAABBLgAATC4AAEwuAABOLgAATy4AAFMuAABULgAAATAAAAIwAAD+pAAA/6QAAA2mAAAPpgAA86YAAPemAAB2qAAAd6gAAM6oAADPqAAAL6kAAC+pAADHqQAAyakAAF2qAABfqgAA36oAAN+qAADwqgAA8aoAAOurAADrqwAAUP4AAFL+AABU/gAAV/4AAAH/AAAB/wAADP8AAAz/AAAO/wAADv8AABr/AAAb/wAAH/8AAB//AABh/wAAYf8AAGT/AABk/wAAnwMBAJ8DAQDQAwEA0AMBAFcIAQBXCAEAHwkBAB8JAQBWCgEAVwoBAPAKAQD1CgEAOgsBAD8LAQCZCwEAnAsBAFUPAQBZDwEAhg8BAIkPAQBHEAEATRABAL4QAQDBEAEAQREBAEMRAQDFEQEAxhEBAM0RAQDNEQEA3hEBAN8RAQA4EgEAPBIBAKkSAQCpEgEASxQBAE0UAQBaFAEAWxQBAMIVAQDFFQEAyRUBANcVAQBBFgEAQhYBADwXAQA+FwEARBkBAEQZAQBGGQEARhkBAEIaAQBDGgEAmxoBAJwaAQChGgEAohoBAEEcAQBDHAEAcRwBAHEcAQD3HgEA+B4BAHAkAQB0JAEAbmoBAG9qAQD1agEA9WoBADdrAQA5awEARGsBAERrAQCXbgEAmG4BAJ+8AQCfvAEAh9oBAIraAQABAAAAgAcAALEHAEGgowwLEgIAAAABDgAAOg4AAEAOAABbDgBBwKMMC5MBBwAAAAAPAABHDwAASQ8AAGwPAABxDwAAlw8AAJkPAAC8DwAAvg8AAMwPAADODwAA1A8AANkPAADaDwAAAAAAAAMAAAAwLQAAZy0AAG8tAABwLQAAfy0AAH8tAAAAAAAAAgAAAIAUAQDHFAEA0BQBANkUAQABAAAAkOIBAK7iAQACAAAAgAMBAJ0DAQCfAwEAnwMBAEHgpAwL8ywPAAAAADQAAL9NAAAATgAA/58AAA76AAAP+gAAEfoAABH6AAAT+gAAFPoAAB/6AAAf+gAAIfoAACH6AAAj+gAAJPoAACf6AAAp+gAAAAACAN+mAgAApwIAOLcCAEC3AgAduAIAILgCAKHOAgCwzgIA4OsCAAAAAwBKEwMAAAAAALgCAAB4AwAAeQMAAIADAACDAwAAiwMAAIsDAACNAwAAjQMAAKIDAACiAwAAMAUAADAFAABXBQAAWAUAAIsFAACMBQAAkAUAAJAFAADIBQAAzwUAAOsFAADuBQAA9QUAAP8FAAAOBwAADgcAAEsHAABMBwAAsgcAAL8HAAD7BwAA/AcAAC4IAAAvCAAAPwgAAD8IAABcCAAAXQgAAF8IAABfCAAAawgAAG8IAACPCAAAjwgAAJIIAACXCAAAhAkAAIQJAACNCQAAjgkAAJEJAACSCQAAqQkAAKkJAACxCQAAsQkAALMJAAC1CQAAugkAALsJAADFCQAAxgkAAMkJAADKCQAAzwkAANYJAADYCQAA2wkAAN4JAADeCQAA5AkAAOUJAAD/CQAAAAoAAAQKAAAECgAACwoAAA4KAAARCgAAEgoAACkKAAApCgAAMQoAADEKAAA0CgAANAoAADcKAAA3CgAAOgoAADsKAAA9CgAAPQoAAEMKAABGCgAASQoAAEoKAABOCgAAUAoAAFIKAABYCgAAXQoAAF0KAABfCgAAZQoAAHcKAACACgAAhAoAAIQKAACOCgAAjgoAAJIKAACSCgAAqQoAAKkKAACxCgAAsQoAALQKAAC0CgAAugoAALsKAADGCgAAxgoAAMoKAADKCgAAzgoAAM8KAADRCgAA3woAAOQKAADlCgAA8goAAPgKAAAACwAAAAsAAAQLAAAECwAADQsAAA4LAAARCwAAEgsAACkLAAApCwAAMQsAADELAAA0CwAANAsAADoLAAA7CwAARQsAAEYLAABJCwAASgsAAE4LAABUCwAAWAsAAFsLAABeCwAAXgsAAGQLAABlCwAAeAsAAIELAACECwAAhAsAAIsLAACNCwAAkQsAAJELAACWCwAAmAsAAJsLAACbCwAAnQsAAJ0LAACgCwAAogsAAKULAACnCwAAqwsAAK0LAAC6CwAAvQsAAMMLAADFCwAAyQsAAMkLAADOCwAAzwsAANELAADWCwAA2AsAAOULAAD7CwAA/wsAAA0MAAANDAAAEQwAABEMAAApDAAAKQwAADoMAAA7DAAARQwAAEUMAABJDAAASQwAAE4MAABUDAAAVwwAAFcMAABbDAAAXAwAAF4MAABfDAAAZAwAAGUMAABwDAAAdgwAAI0MAACNDAAAkQwAAJEMAACpDAAAqQwAALQMAAC0DAAAugwAALsMAADFDAAAxQwAAMkMAADJDAAAzgwAANQMAADXDAAA3AwAAN8MAADfDAAA5AwAAOUMAADwDAAA8AwAAPMMAAD/DAAADQ0AAA0NAAARDQAAEQ0AAEUNAABFDQAASQ0AAEkNAABQDQAAUw0AAGQNAABlDQAAgA0AAIANAACEDQAAhA0AAJcNAACZDQAAsg0AALINAAC8DQAAvA0AAL4NAAC/DQAAxw0AAMkNAADLDQAAzg0AANUNAADVDQAA1w0AANcNAADgDQAA5Q0AAPANAADxDQAA9Q0AAAAOAAA7DgAAPg4AAFwOAACADgAAgw4AAIMOAACFDgAAhQ4AAIsOAACLDgAApA4AAKQOAACmDgAApg4AAL4OAAC/DgAAxQ4AAMUOAADHDgAAxw4AAM4OAADPDgAA2g4AANsOAADgDgAA/w4AAEgPAABIDwAAbQ8AAHAPAACYDwAAmA8AAL0PAAC9DwAAzQ8AAM0PAADbDwAA/w8AAMYQAADGEAAAyBAAAMwQAADOEAAAzxAAAEkSAABJEgAAThIAAE8SAABXEgAAVxIAAFkSAABZEgAAXhIAAF8SAACJEgAAiRIAAI4SAACPEgAAsRIAALESAAC2EgAAtxIAAL8SAAC/EgAAwRIAAMESAADGEgAAxxIAANcSAADXEgAAERMAABETAAAWEwAAFxMAAFsTAABcEwAAfRMAAH8TAACaEwAAnxMAAPYTAAD3EwAA/hMAAP8TAACdFgAAnxYAAPkWAAD/FgAAFhcAAB4XAAA3FwAAPxcAAFQXAABfFwAAbRcAAG0XAABxFwAAcRcAAHQXAAB/FwAA3hcAAN8XAADqFwAA7xcAAPoXAAD/FwAAGhgAAB8YAAB5GAAAfxgAAKsYAACvGAAA9hgAAP8YAAAfGQAAHxkAACwZAAAvGQAAPBkAAD8ZAABBGQAAQxkAAG4ZAABvGQAAdRkAAH8ZAACsGQAArxkAAMoZAADPGQAA2xkAAN0ZAAAcGgAAHRoAAF8aAABfGgAAfRoAAH4aAACKGgAAjxoAAJoaAACfGgAArhoAAK8aAADPGgAA/xoAAE0bAABPGwAAfxsAAH8bAAD0GwAA+xsAADgcAAA6HAAAShwAAEwcAACJHAAAjxwAALscAAC8HAAAyBwAAM8cAAD7HAAA/xwAABYfAAAXHwAAHh8AAB8fAABGHwAARx8AAE4fAABPHwAAWB8AAFgfAABaHwAAWh8AAFwfAABcHwAAXh8AAF4fAAB+HwAAfx8AALUfAAC1HwAAxR8AAMUfAADUHwAA1R8AANwfAADcHwAA8B8AAPEfAAD1HwAA9R8AAP8fAAD/HwAAZSAAAGUgAAByIAAAcyAAAI8gAACPIAAAnSAAAJ8gAADBIAAAzyAAAPEgAAD/IAAAjCEAAI8hAAAnJAAAPyQAAEskAABfJAAAdCsAAHUrAACWKwAAlisAAPQsAAD4LAAAJi0AACYtAAAoLQAALC0AAC4tAAAvLQAAaC0AAG4tAABxLQAAfi0AAJctAACfLQAApy0AAKctAACvLQAAry0AALctAAC3LQAAvy0AAL8tAADHLQAAxy0AAM8tAADPLQAA1y0AANctAADfLQAA3y0AAF4uAAB/LgAAmi4AAJouAAD0LgAA/y4AANYvAADvLwAA/C8AAP8vAABAMAAAQDAAAJcwAACYMAAAADEAAAQxAAAwMQAAMDEAAI8xAACPMQAA5DEAAO8xAAAfMgAAHzIAAI2kAACPpAAAx6QAAM+kAAAspgAAP6YAAPimAAD/pgAAy6cAAM+nAADSpwAA0qcAANSnAADUpwAA2qcAAPGnAAAtqAAAL6gAADqoAAA/qAAAeKgAAH+oAADGqAAAzagAANqoAADfqAAAVKkAAF6pAAB9qQAAf6kAAM6pAADOqQAA2qkAAN2pAAD/qQAA/6kAADeqAAA/qgAATqoAAE+qAABaqgAAW6oAAMOqAADaqgAA96oAAACrAAAHqwAACKsAAA+rAAAQqwAAF6sAAB+rAAAnqwAAJ6sAAC+rAAAvqwAAbKsAAG+rAADuqwAA76sAAPqrAAD/qwAApNcAAK/XAADH1wAAytcAAPzXAAD/+AAAbvoAAG/6AADa+gAA//oAAAf7AAAS+wAAGPsAABz7AAA3+wAAN/sAAD37AAA9+wAAP/sAAD/7AABC+wAAQvsAAEX7AABF+wAAw/sAANL7AACQ/QAAkf0AAMj9AADO/QAA0P0AAO/9AAAa/gAAH/4AAFP+AABT/gAAZ/4AAGf+AABs/gAAb/4AAHX+AAB1/gAA/f4AAP7+AAAA/wAAAP8AAL//AADB/wAAyP8AAMn/AADQ/wAA0f8AANj/AADZ/wAA3f8AAN//AADn/wAA5/8AAO//AAD4/wAA/v8AAP//AAAMAAEADAABACcAAQAnAAEAOwABADsAAQA+AAEAPgABAE4AAQBPAAEAXgABAH8AAQD7AAEA/wABAAMBAQAGAQEANAEBADYBAQCPAQEAjwEBAJ0BAQCfAQEAoQEBAM8BAQD+AQEAfwIBAJ0CAQCfAgEA0QIBAN8CAQD8AgEA/wIBACQDAQAsAwEASwMBAE8DAQB7AwEAfwMBAJ4DAQCeAwEAxAMBAMcDAQDWAwEA/wMBAJ4EAQCfBAEAqgQBAK8EAQDUBAEA1wQBAPwEAQD/BAEAKAUBAC8FAQBkBQEAbgUBAHsFAQB7BQEAiwUBAIsFAQCTBQEAkwUBAJYFAQCWBQEAogUBAKIFAQCyBQEAsgUBALoFAQC6BQEAvQUBAP8FAQA3BwEAPwcBAFYHAQBfBwEAaAcBAH8HAQCGBwEAhgcBALEHAQCxBwEAuwcBAP8HAQAGCAEABwgBAAkIAQAJCAEANggBADYIAQA5CAEAOwgBAD0IAQA+CAEAVggBAFYIAQCfCAEApggBALAIAQDfCAEA8wgBAPMIAQD2CAEA+ggBABwJAQAeCQEAOgkBAD4JAQBACQEAfwkBALgJAQC7CQEA0AkBANEJAQAECgEABAoBAAcKAQALCgEAFAoBABQKAQAYCgEAGAoBADYKAQA3CgEAOwoBAD4KAQBJCgEATwoBAFkKAQBfCgEAoAoBAL8KAQDnCgEA6goBAPcKAQD/CgEANgsBADgLAQBWCwEAVwsBAHMLAQB3CwEAkgsBAJgLAQCdCwEAqAsBALALAQD/CwEASQwBAH8MAQCzDAEAvwwBAPMMAQD5DAEAKA0BAC8NAQA6DQEAXw4BAH8OAQB/DgEAqg4BAKoOAQCuDgEArw4BALIOAQD/DgEAKA8BAC8PAQBaDwEAbw8BAIoPAQCvDwEAzA8BAN8PAQD3DwEA/w8BAE4QAQBREAEAdhABAH4QAQDDEAEAzBABAM4QAQDPEAEA6RABAO8QAQD6EAEA/xABADURAQA1EQEASBEBAE8RAQB3EQEAfxEBAOARAQDgEQEA9REBAP8RAQASEgEAEhIBAD8SAQB/EgEAhxIBAIcSAQCJEgEAiRIBAI4SAQCOEgEAnhIBAJ4SAQCqEgEArxIBAOsSAQDvEgEA+hIBAP8SAQAEEwEABBMBAA0TAQAOEwEAERMBABITAQApEwEAKRMBADETAQAxEwEANBMBADQTAQA6EwEAOhMBAEUTAQBGEwEASRMBAEoTAQBOEwEATxMBAFETAQBWEwEAWBMBAFwTAQBkEwEAZRMBAG0TAQBvEwEAdRMBAP8TAQBcFAEAXBQBAGIUAQB/FAEAyBQBAM8UAQDaFAEAfxUBALYVAQC3FQEA3hUBAP8VAQBFFgEATxYBAFoWAQBfFgEAbRYBAH8WAQC6FgEAvxYBAMoWAQD/FgEAGxcBABwXAQAsFwEALxcBAEcXAQD/FwEAPBgBAJ8YAQDzGAEA/hgBAAcZAQAIGQEAChkBAAsZAQAUGQEAFBkBABcZAQAXGQEANhkBADYZAQA5GQEAOhkBAEcZAQBPGQEAWhkBAJ8ZAQCoGQEAqRkBANgZAQDZGQEA5RkBAP8ZAQBIGgEATxoBAKMaAQCvGgEA+RoBAP8bAQAJHAEACRwBADccAQA3HAEARhwBAE8cAQBtHAEAbxwBAJAcAQCRHAEAqBwBAKgcAQC3HAEA/xwBAAcdAQAHHQEACh0BAAodAQA3HQEAOR0BADsdAQA7HQEAPh0BAD4dAQBIHQEATx0BAFodAQBfHQEAZh0BAGYdAQBpHQEAaR0BAI8dAQCPHQEAkh0BAJIdAQCZHQEAnx0BAKodAQDfHgEA+R4BAK8fAQCxHwEAvx8BAPIfAQD+HwEAmiMBAP8jAQBvJAEAbyQBAHUkAQB/JAEARCUBAI8vAQDzLwEA/y8BAC80AQAvNAEAOTQBAP9DAQBHRgEA/2cBADlqAQA/agEAX2oBAF9qAQBqagEAbWoBAL9qAQC/agEAymoBAM9qAQDuagEA72oBAPZqAQD/agEARmsBAE9rAQBaawEAWmsBAGJrAQBiawEAeGsBAHxrAQCQawEAP24BAJtuAQD/bgEAS28BAE5vAQCIbwEAjm8BAKBvAQDfbwEA5W8BAO9vAQDybwEA/28BAPiHAQD/hwEA1owBAP+MAQAJjQEA768BAPSvAQD0rwEA/K8BAPyvAQD/rwEA/68BACOxAQBPsQEAU7EBAGOxAQBosQEAb7EBAPyyAQD/uwEAa7wBAG+8AQB9vAEAf7wBAIm8AQCPvAEAmrwBAJu8AQCkvAEA/84BAC7PAQAvzwEAR88BAE/PAQDEzwEA/88BAPbQAQD/0AEAJ9EBACjRAQDr0QEA/9EBAEbSAQDf0gEA9NIBAP/SAQBX0wEAX9MBAHnTAQD/0wEAVdQBAFXUAQCd1AEAndQBAKDUAQCh1AEAo9QBAKTUAQCn1AEAqNQBAK3UAQCt1AEAutQBALrUAQC81AEAvNQBAMTUAQDE1AEABtUBAAbVAQAL1QEADNUBABXVAQAV1QEAHdUBAB3VAQA61QEAOtUBAD/VAQA/1QEARdUBAEXVAQBH1QEASdUBAFHVAQBR1QEAptYBAKfWAQDM1wEAzdcBAIzaAQCa2gEAoNoBAKDaAQCw2gEA/94BAB/fAQD/3wEAB+ABAAfgAQAZ4AEAGuABACLgAQAi4AEAJeABACXgAQAr4AEA/+ABAC3hAQAv4QEAPuEBAD/hAQBK4QEATeEBAFDhAQCP4gEAr+IBAL/iAQD64gEA/uIBAADjAQDf5wEA5+cBAOfnAQDs5wEA7OcBAO/nAQDv5wEA/+cBAP/nAQDF6AEAxugBANfoAQD/6AEATOkBAE/pAQBa6QEAXekBAGDpAQBw7AEAtewBAADtAQA+7QEA/+0BAATuAQAE7gEAIO4BACDuAQAj7gEAI+4BACXuAQAm7gEAKO4BACjuAQAz7gEAM+4BADjuAQA47gEAOu4BADruAQA87gEAQe4BAEPuAQBG7gEASO4BAEjuAQBK7gEASu4BAEzuAQBM7gEAUO4BAFDuAQBT7gEAU+4BAFXuAQBW7gEAWO4BAFjuAQBa7gEAWu4BAFzuAQBc7gEAXu4BAF7uAQBg7gEAYO4BAGPuAQBj7gEAZe4BAGbuAQBr7gEAa+4BAHPuAQBz7gEAeO4BAHjuAQB97gEAfe4BAH/uAQB/7gEAiu4BAIruAQCc7gEAoO4BAKTuAQCk7gEAqu4BAKruAQC87gEA7+4BAPLuAQD/7wEALPABAC/wAQCU8AEAn/ABAK/wAQCw8AEAwPABAMDwAQDQ8AEA0PABAPbwAQD/8AEArvEBAOXxAQAD8gEAD/IBADzyAQA/8gEASfIBAE/yAQBS8gEAX/IBAGbyAQD/8gEA2PYBANz2AQDt9gEA7/YBAP32AQD/9gEAdPcBAH/3AQDZ9wEA3/cBAOz3AQDv9wEA8fcBAP/3AQAM+AEAD/gBAEj4AQBP+AEAWvgBAF/4AQCI+AEAj/gBAK74AQCv+AEAsvgBAP/4AQBU+gEAX/oBAG76AQBv+gEAdfoBAHf6AQB9+gEAf/oBAIf6AQCP+gEArfoBAK/6AQC7+gEAv/oBAMb6AQDP+gEA2voBAN/6AQDo+gEA7/oBAPf6AQD/+gEAk/sBAJP7AQDL+wEA7/sBAPr7AQD//wEA4KYCAP+mAgA5twIAP7cCAB64AgAfuAIAos4CAK/OAgDh6wIA//cCAB76AgD//wIASxMDAAAADgACAA4AHwAOAIAADgD/AA4A8AEOAP//EAABAAAAAKUAACumAAAEAAAACxgAAA0YAAAPGAAADxgAAAD+AAAP/gAAAAEOAO8BDgBB4NEMC0MIAAAAcAUBAHoFAQB8BQEAigUBAIwFAQCSBQEAlAUBAJUFAQCXBQEAoQUBAKMFAQCxBQEAswUBALkFAQC7BQEAvAUBAEGw0gwLEwIAAADA4gEA+eIBAP/iAQD/4gEAQdDSDAsTAgAAAKAYAQDyGAEA/xgBAP8YAQBB8NIMC5JZ+wIAADAAAAA5AAAAQQAAAFoAAABfAAAAXwAAAGEAAAB6AAAAqgAAAKoAAAC1AAAAtQAAALcAAAC3AAAAugAAALoAAADAAAAA1gAAANgAAAD2AAAA+AAAAMECAADGAgAA0QIAAOACAADkAgAA7AIAAOwCAADuAgAA7gIAAAADAAB0AwAAdgMAAHcDAAB7AwAAfQMAAH8DAAB/AwAAhgMAAIoDAACMAwAAjAMAAI4DAAChAwAAowMAAPUDAAD3AwAAgQQAAIMEAACHBAAAigQAAC8FAAAxBQAAVgUAAFkFAABZBQAAYAUAAIgFAACRBQAAvQUAAL8FAAC/BQAAwQUAAMIFAADEBQAAxQUAAMcFAADHBQAA0AUAAOoFAADvBQAA8gUAABAGAAAaBgAAIAYAAGkGAABuBgAA0wYAANUGAADcBgAA3wYAAOgGAADqBgAA/AYAAP8GAAD/BgAAEAcAAEoHAABNBwAAsQcAAMAHAAD1BwAA+gcAAPoHAAD9BwAA/QcAAAAIAAAtCAAAQAgAAFsIAABgCAAAaggAAHAIAACHCAAAiQgAAI4IAACYCAAA4QgAAOMIAABjCQAAZgkAAG8JAABxCQAAgwkAAIUJAACMCQAAjwkAAJAJAACTCQAAqAkAAKoJAACwCQAAsgkAALIJAAC2CQAAuQkAALwJAADECQAAxwkAAMgJAADLCQAAzgkAANcJAADXCQAA3AkAAN0JAADfCQAA4wkAAOYJAADxCQAA/AkAAPwJAAD+CQAA/gkAAAEKAAADCgAABQoAAAoKAAAPCgAAEAoAABMKAAAoCgAAKgoAADAKAAAyCgAAMwoAADUKAAA2CgAAOAoAADkKAAA8CgAAPAoAAD4KAABCCgAARwoAAEgKAABLCgAATQoAAFEKAABRCgAAWQoAAFwKAABeCgAAXgoAAGYKAAB1CgAAgQoAAIMKAACFCgAAjQoAAI8KAACRCgAAkwoAAKgKAACqCgAAsAoAALIKAACzCgAAtQoAALkKAAC8CgAAxQoAAMcKAADJCgAAywoAAM0KAADQCgAA0AoAAOAKAADjCgAA5goAAO8KAAD5CgAA/woAAAELAAADCwAABQsAAAwLAAAPCwAAEAsAABMLAAAoCwAAKgsAADALAAAyCwAAMwsAADULAAA5CwAAPAsAAEQLAABHCwAASAsAAEsLAABNCwAAVQsAAFcLAABcCwAAXQsAAF8LAABjCwAAZgsAAG8LAABxCwAAcQsAAIILAACDCwAAhQsAAIoLAACOCwAAkAsAAJILAACVCwAAmQsAAJoLAACcCwAAnAsAAJ4LAACfCwAAowsAAKQLAACoCwAAqgsAAK4LAAC5CwAAvgsAAMILAADGCwAAyAsAAMoLAADNCwAA0AsAANALAADXCwAA1wsAAOYLAADvCwAAAAwAAAwMAAAODAAAEAwAABIMAAAoDAAAKgwAADkMAAA8DAAARAwAAEYMAABIDAAASgwAAE0MAABVDAAAVgwAAFgMAABaDAAAXQwAAF0MAABgDAAAYwwAAGYMAABvDAAAgAwAAIMMAACFDAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvAwAAMQMAADGDAAAyAwAAMoMAADNDAAA1QwAANYMAADdDAAA3gwAAOAMAADjDAAA5gwAAO8MAADxDAAA8gwAAAANAAAMDQAADg0AABANAAASDQAARA0AAEYNAABIDQAASg0AAE4NAABUDQAAVw0AAF8NAABjDQAAZg0AAG8NAAB6DQAAfw0AAIENAACDDQAAhQ0AAJYNAACaDQAAsQ0AALMNAAC7DQAAvQ0AAL0NAADADQAAxg0AAMoNAADKDQAAzw0AANQNAADWDQAA1g0AANgNAADfDQAA5g0AAO8NAADyDQAA8w0AAAEOAAA6DgAAQA4AAE4OAABQDgAAWQ4AAIEOAACCDgAAhA4AAIQOAACGDgAAig4AAIwOAACjDgAApQ4AAKUOAACnDgAAvQ4AAMAOAADEDgAAxg4AAMYOAADIDgAAzQ4AANAOAADZDgAA3A4AAN8OAAAADwAAAA8AABgPAAAZDwAAIA8AACkPAAA1DwAANQ8AADcPAAA3DwAAOQ8AADkPAAA+DwAARw8AAEkPAABsDwAAcQ8AAIQPAACGDwAAlw8AAJkPAAC8DwAAxg8AAMYPAAAAEAAASRAAAFAQAACdEAAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAA0BAAAPoQAAD8EAAASBIAAEoSAABNEgAAUBIAAFYSAABYEgAAWBIAAFoSAABdEgAAYBIAAIgSAACKEgAAjRIAAJASAACwEgAAshIAALUSAAC4EgAAvhIAAMASAADAEgAAwhIAAMUSAADIEgAA1hIAANgSAAAQEwAAEhMAABUTAAAYEwAAWhMAAF0TAABfEwAAaRMAAHETAACAEwAAjxMAAKATAAD1EwAA+BMAAP0TAAABFAAAbBYAAG8WAAB/FgAAgRYAAJoWAACgFgAA6hYAAO4WAAD4FgAAABcAABUXAAAfFwAANBcAAEAXAABTFwAAYBcAAGwXAABuFwAAcBcAAHIXAABzFwAAgBcAANMXAADXFwAA1xcAANwXAADdFwAA4BcAAOkXAAALGAAADRgAAA8YAAAZGAAAIBgAAHgYAACAGAAAqhgAALAYAAD1GAAAABkAAB4ZAAAgGQAAKxkAADAZAAA7GQAARhkAAG0ZAABwGQAAdBkAAIAZAACrGQAAsBkAAMkZAADQGQAA2hkAAAAaAAAbGgAAIBoAAF4aAABgGgAAfBoAAH8aAACJGgAAkBoAAJkaAACnGgAApxoAALAaAAC9GgAAvxoAAM4aAAAAGwAATBsAAFAbAABZGwAAaxsAAHMbAACAGwAA8xsAAAAcAAA3HAAAQBwAAEkcAABNHAAAfRwAAIAcAACIHAAAkBwAALocAAC9HAAAvxwAANAcAADSHAAA1BwAAPocAAAAHQAAFR8AABgfAAAdHwAAIB8AAEUfAABIHwAATR8AAFAfAABXHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAH0fAACAHwAAtB8AALYfAAC8HwAAvh8AAL4fAADCHwAAxB8AAMYfAADMHwAA0B8AANMfAADWHwAA2x8AAOAfAADsHwAA8h8AAPQfAAD2HwAA/B8AAD8gAABAIAAAVCAAAFQgAABxIAAAcSAAAH8gAAB/IAAAkCAAAJwgAADQIAAA3CAAAOEgAADhIAAA5SAAAPAgAAACIQAAAiEAAAchAAAHIQAACiEAABMhAAAVIQAAFSEAABghAAAdIQAAJCEAACQhAAAmIQAAJiEAACghAAAoIQAAKiEAADkhAAA8IQAAPyEAAEUhAABJIQAATiEAAE4hAABgIQAAiCEAAAAsAADkLAAA6ywAAPMsAAAALQAAJS0AACctAAAnLQAALS0AAC0tAAAwLQAAZy0AAG8tAABvLQAAfy0AAJYtAACgLQAApi0AAKgtAACuLQAAsC0AALYtAAC4LQAAvi0AAMAtAADGLQAAyC0AAM4tAADQLQAA1i0AANgtAADeLQAA4C0AAP8tAAAFMAAABzAAACEwAAAvMAAAMTAAADUwAAA4MAAAPDAAAEEwAACWMAAAmTAAAJowAACdMAAAnzAAAKEwAAD6MAAA/DAAAP8wAAAFMQAALzEAADExAACOMQAAoDEAAL8xAADwMQAA/zEAAAA0AAC/TQAAAE4AAIykAADQpAAA/aQAAAClAAAMpgAAEKYAACumAABApgAAb6YAAHSmAAB9pgAAf6YAAPGmAAAXpwAAH6cAACKnAACIpwAAi6cAAMqnAADQpwAA0acAANOnAADTpwAA1acAANmnAADypwAAJ6gAACyoAAAsqAAAQKgAAHOoAACAqAAAxagAANCoAADZqAAA4KgAAPeoAAD7qAAA+6gAAP2oAAAtqQAAMKkAAFOpAABgqQAAfKkAAICpAADAqQAAz6kAANmpAADgqQAA/qkAAACqAAA2qgAAQKoAAE2qAABQqgAAWaoAAGCqAAB2qgAAeqoAAMKqAADbqgAA3aoAAOCqAADvqgAA8qoAAPaqAAABqwAABqsAAAmrAAAOqwAAEasAABarAAAgqwAAJqsAACirAAAuqwAAMKsAAFqrAABcqwAAaasAAHCrAADqqwAA7KsAAO2rAADwqwAA+asAAACsAACj1wAAsNcAAMbXAADL1wAA+9cAAAD5AABt+gAAcPoAANn6AAAA+wAABvsAABP7AAAX+wAAHfsAACj7AAAq+wAANvsAADj7AAA8+wAAPvsAAD77AABA+wAAQfsAAEP7AABE+wAARvsAALH7AADT+wAAXfwAAGT8AAA9/QAAUP0AAI/9AACS/QAAx/0AAPD9AAD5/QAAAP4AAA/+AAAg/gAAL/4AADP+AAA0/gAATf4AAE/+AABx/gAAcf4AAHP+AABz/gAAd/4AAHf+AAB5/gAAef4AAHv+AAB7/gAAff4AAH3+AAB//gAA/P4AABD/AAAZ/wAAIf8AADr/AAA//wAAP/8AAEH/AABa/wAAZv8AAL7/AADC/wAAx/8AAMr/AADP/wAA0v8AANf/AADa/wAA3P8AAAAAAQALAAEADQABACYAAQAoAAEAOgABADwAAQA9AAEAPwABAE0AAQBQAAEAXQABAIAAAQD6AAEAQAEBAHQBAQD9AQEA/QEBAIACAQCcAgEAoAIBANACAQDgAgEA4AIBAAADAQAfAwEALQMBAEoDAQBQAwEAegMBAIADAQCdAwEAoAMBAMMDAQDIAwEAzwMBANEDAQDVAwEAAAQBAJ0EAQCgBAEAqQQBALAEAQDTBAEA2AQBAPsEAQAABQEAJwUBADAFAQBjBQEAcAUBAHoFAQB8BQEAigUBAIwFAQCSBQEAlAUBAJUFAQCXBQEAoQUBAKMFAQCxBQEAswUBALkFAQC7BQEAvAUBAAAGAQA2BwEAQAcBAFUHAQBgBwEAZwcBAIAHAQCFBwEAhwcBALAHAQCyBwEAugcBAAAIAQAFCAEACAgBAAgIAQAKCAEANQgBADcIAQA4CAEAPAgBADwIAQA/CAEAVQgBAGAIAQB2CAEAgAgBAJ4IAQDgCAEA8ggBAPQIAQD1CAEAAAkBABUJAQAgCQEAOQkBAIAJAQC3CQEAvgkBAL8JAQAACgEAAwoBAAUKAQAGCgEADAoBABMKAQAVCgEAFwoBABkKAQA1CgEAOAoBADoKAQA/CgEAPwoBAGAKAQB8CgEAgAoBAJwKAQDACgEAxwoBAMkKAQDmCgEAAAsBADULAQBACwEAVQsBAGALAQByCwEAgAsBAJELAQAADAEASAwBAIAMAQCyDAEAwAwBAPIMAQAADQEAJw0BADANAQA5DQEAgA4BAKkOAQCrDgEArA4BALAOAQCxDgEAAA8BABwPAQAnDwEAJw8BADAPAQBQDwEAcA8BAIUPAQCwDwEAxA8BAOAPAQD2DwEAABABAEYQAQBmEAEAdRABAH8QAQC6EAEAwhABAMIQAQDQEAEA6BABAPAQAQD5EAEAABEBADQRAQA2EQEAPxEBAEQRAQBHEQEAUBEBAHMRAQB2EQEAdhEBAIARAQDEEQEAyREBAMwRAQDOEQEA2hEBANwRAQDcEQEAABIBABESAQATEgEANxIBAD4SAQA+EgEAgBIBAIYSAQCIEgEAiBIBAIoSAQCNEgEAjxIBAJ0SAQCfEgEAqBIBALASAQDqEgEA8BIBAPkSAQAAEwEAAxMBAAUTAQAMEwEADxMBABATAQATEwEAKBMBACoTAQAwEwEAMhMBADMTAQA1EwEAORMBADsTAQBEEwEARxMBAEgTAQBLEwEATRMBAFATAQBQEwEAVxMBAFcTAQBdEwEAYxMBAGYTAQBsEwEAcBMBAHQTAQAAFAEAShQBAFAUAQBZFAEAXhQBAGEUAQCAFAEAxRQBAMcUAQDHFAEA0BQBANkUAQCAFQEAtRUBALgVAQDAFQEA2BUBAN0VAQAAFgEAQBYBAEQWAQBEFgEAUBYBAFkWAQCAFgEAuBYBAMAWAQDJFgEAABcBABoXAQAdFwEAKxcBADAXAQA5FwEAQBcBAEYXAQAAGAEAOhgBAKAYAQDpGAEA/xgBAAYZAQAJGQEACRkBAAwZAQATGQEAFRkBABYZAQAYGQEANRkBADcZAQA4GQEAOxkBAEMZAQBQGQEAWRkBAKAZAQCnGQEAqhkBANcZAQDaGQEA4RkBAOMZAQDkGQEAABoBAD4aAQBHGgEARxoBAFAaAQCZGgEAnRoBAJ0aAQCwGgEA+BoBAAAcAQAIHAEAChwBADYcAQA4HAEAQBwBAFAcAQBZHAEAchwBAI8cAQCSHAEApxwBAKkcAQC2HAEAAB0BAAYdAQAIHQEACR0BAAsdAQA2HQEAOh0BADodAQA8HQEAPR0BAD8dAQBHHQEAUB0BAFkdAQBgHQEAZR0BAGcdAQBoHQEAah0BAI4dAQCQHQEAkR0BAJMdAQCYHQEAoB0BAKkdAQDgHgEA9h4BALAfAQCwHwEAACABAJkjAQAAJAEAbiQBAIAkAQBDJQEAkC8BAPAvAQAAMAEALjQBAABEAQBGRgEAAGgBADhqAQBAagEAXmoBAGBqAQBpagEAcGoBAL5qAQDAagEAyWoBANBqAQDtagEA8GoBAPRqAQAAawEANmsBAEBrAQBDawEAUGsBAFlrAQBjawEAd2sBAH1rAQCPawEAQG4BAH9uAQAAbwEASm8BAE9vAQCHbwEAj28BAJ9vAQDgbwEA4W8BAONvAQDkbwEA8G8BAPFvAQAAcAEA94cBAACIAQDVjAEAAI0BAAiNAQDwrwEA868BAPWvAQD7rwEA/a8BAP6vAQAAsAEAIrEBAFCxAQBSsQEAZLEBAGexAQBwsQEA+7IBAAC8AQBqvAEAcLwBAHy8AQCAvAEAiLwBAJC8AQCZvAEAnbwBAJ68AQAAzwEALc8BADDPAQBGzwEAZdEBAGnRAQBt0QEActEBAHvRAQCC0QEAhdEBAIvRAQCq0QEArdEBAELSAQBE0gEAANQBAFTUAQBW1AEAnNQBAJ7UAQCf1AEAotQBAKLUAQCl1AEAptQBAKnUAQCs1AEArtQBALnUAQC71AEAu9QBAL3UAQDD1AEAxdQBAAXVAQAH1QEACtUBAA3VAQAU1QEAFtUBABzVAQAe1QEAOdUBADvVAQA+1QEAQNUBAETVAQBG1QEARtUBAErVAQBQ1QEAUtUBAKXWAQCo1gEAwNYBAMLWAQDa1gEA3NYBAPrWAQD81gEAFNcBABbXAQA01wEANtcBAE7XAQBQ1wEAbtcBAHDXAQCI1wEAitcBAKjXAQCq1wEAwtcBAMTXAQDL1wEAztcBAP/XAQAA2gEANtoBADvaAQBs2gEAddoBAHXaAQCE2gEAhNoBAJvaAQCf2gEAodoBAK/aAQAA3wEAHt8BAADgAQAG4AEACOABABjgAQAb4AEAIeABACPgAQAk4AEAJuABACrgAQAA4QEALOEBADDhAQA94QEAQOEBAEnhAQBO4QEATuEBAJDiAQCu4gEAwOIBAPniAQDg5wEA5ucBAOjnAQDr5wEA7ecBAO7nAQDw5wEA/ucBAADoAQDE6AEA0OgBANboAQAA6QEAS+kBAFDpAQBZ6QEAAO4BAAPuAQAF7gEAH+4BACHuAQAi7gEAJO4BACTuAQAn7gEAJ+4BACnuAQAy7gEANO4BADfuAQA57gEAOe4BADvuAQA77gEAQu4BAELuAQBH7gEAR+4BAEnuAQBJ7gEAS+4BAEvuAQBN7gEAT+4BAFHuAQBS7gEAVO4BAFTuAQBX7gEAV+4BAFnuAQBZ7gEAW+4BAFvuAQBd7gEAXe4BAF/uAQBf7gEAYe4BAGLuAQBk7gEAZO4BAGfuAQBq7gEAbO4BAHLuAQB07gEAd+4BAHnuAQB87gEAfu4BAH7uAQCA7gEAie4BAIvuAQCb7gEAoe4BAKPuAQCl7gEAqe4BAKvuAQC77gEA8PsBAPn7AQAAAAIA36YCAACnAgA4twIAQLcCAB24AgAguAIAoc4CALDOAgDg6wIAAPgCAB36AgAAAAMAShMDAAABDgDvAQ4AAAAAAI8CAABBAAAAWgAAAGEAAAB6AAAAqgAAAKoAAAC1AAAAtQAAALoAAAC6AAAAwAAAANYAAADYAAAA9gAAAPgAAADBAgAAxgIAANECAADgAgAA5AIAAOwCAADsAgAA7gIAAO4CAABwAwAAdAMAAHYDAAB3AwAAewMAAH0DAAB/AwAAfwMAAIYDAACGAwAAiAMAAIoDAACMAwAAjAMAAI4DAAChAwAAowMAAPUDAAD3AwAAgQQAAIoEAAAvBQAAMQUAAFYFAABZBQAAWQUAAGAFAACIBQAA0AUAAOoFAADvBQAA8gUAACAGAABKBgAAbgYAAG8GAABxBgAA0wYAANUGAADVBgAA5QYAAOYGAADuBgAA7wYAAPoGAAD8BgAA/wYAAP8GAAAQBwAAEAcAABIHAAAvBwAATQcAAKUHAACxBwAAsQcAAMoHAADqBwAA9AcAAPUHAAD6BwAA+gcAAAAIAAAVCAAAGggAABoIAAAkCAAAJAgAACgIAAAoCAAAQAgAAFgIAABgCAAAaggAAHAIAACHCAAAiQgAAI4IAACgCAAAyQgAAAQJAAA5CQAAPQkAAD0JAABQCQAAUAkAAFgJAABhCQAAcQkAAIAJAACFCQAAjAkAAI8JAACQCQAAkwkAAKgJAACqCQAAsAkAALIJAACyCQAAtgkAALkJAAC9CQAAvQkAAM4JAADOCQAA3AkAAN0JAADfCQAA4QkAAPAJAADxCQAA/AkAAPwJAAAFCgAACgoAAA8KAAAQCgAAEwoAACgKAAAqCgAAMAoAADIKAAAzCgAANQoAADYKAAA4CgAAOQoAAFkKAABcCgAAXgoAAF4KAAByCgAAdAoAAIUKAACNCgAAjwoAAJEKAACTCgAAqAoAAKoKAACwCgAAsgoAALMKAAC1CgAAuQoAAL0KAAC9CgAA0AoAANAKAADgCgAA4QoAAPkKAAD5CgAABQsAAAwLAAAPCwAAEAsAABMLAAAoCwAAKgsAADALAAAyCwAAMwsAADULAAA5CwAAPQsAAD0LAABcCwAAXQsAAF8LAABhCwAAcQsAAHELAACDCwAAgwsAAIULAACKCwAAjgsAAJALAACSCwAAlQsAAJkLAACaCwAAnAsAAJwLAACeCwAAnwsAAKMLAACkCwAAqAsAAKoLAACuCwAAuQsAANALAADQCwAABQwAAAwMAAAODAAAEAwAABIMAAAoDAAAKgwAADkMAAA9DAAAPQwAAFgMAABaDAAAXQwAAF0MAABgDAAAYQwAAIAMAACADAAAhQwAAIwMAACODAAAkAwAAJIMAACoDAAAqgwAALMMAAC1DAAAuQwAAL0MAAC9DAAA3QwAAN4MAADgDAAA4QwAAPEMAADyDAAABA0AAAwNAAAODQAAEA0AABINAAA6DQAAPQ0AAD0NAABODQAATg0AAFQNAABWDQAAXw0AAGENAAB6DQAAfw0AAIUNAACWDQAAmg0AALENAACzDQAAuw0AAL0NAAC9DQAAwA0AAMYNAAABDgAAMA4AADIOAAAyDgAAQA4AAEYOAACBDgAAgg4AAIQOAACEDgAAhg4AAIoOAACMDgAAow4AAKUOAAClDgAApw4AALAOAACyDgAAsg4AAL0OAAC9DgAAwA4AAMQOAADGDgAAxg4AANwOAADfDgAAAA8AAAAPAABADwAARw8AAEkPAABsDwAAiA8AAIwPAAAAEAAAKhAAAD8QAAA/EAAAUBAAAFUQAABaEAAAXRAAAGEQAABhEAAAZRAAAGYQAABuEAAAcBAAAHUQAACBEAAAjhAAAI4QAACgEAAAxRAAAMcQAADHEAAAzRAAAM0QAADQEAAA+hAAAPwQAABIEgAAShIAAE0SAABQEgAAVhIAAFgSAABYEgAAWhIAAF0SAABgEgAAiBIAAIoSAACNEgAAkBIAALASAACyEgAAtRIAALgSAAC+EgAAwBIAAMASAADCEgAAxRIAAMgSAADWEgAA2BIAABATAAASEwAAFRMAABgTAABaEwAAgBMAAI8TAACgEwAA9RMAAPgTAAD9EwAAARQAAGwWAABvFgAAfxYAAIEWAACaFgAAoBYAAOoWAADuFgAA+BYAAAAXAAARFwAAHxcAADEXAABAFwAAURcAAGAXAABsFwAAbhcAAHAXAACAFwAAsxcAANcXAADXFwAA3BcAANwXAAAgGAAAeBgAAIAYAACoGAAAqhgAAKoYAACwGAAA9RgAAAAZAAAeGQAAUBkAAG0ZAABwGQAAdBkAAIAZAACrGQAAsBkAAMkZAAAAGgAAFhoAACAaAABUGgAApxoAAKcaAAAFGwAAMxsAAEUbAABMGwAAgxsAAKAbAACuGwAArxsAALobAADlGwAAABwAACMcAABNHAAATxwAAFocAAB9HAAAgBwAAIgcAACQHAAAuhwAAL0cAAC/HAAA6RwAAOwcAADuHAAA8xwAAPUcAAD2HAAA+hwAAPocAAAAHQAAvx0AAAAeAAAVHwAAGB8AAB0fAAAgHwAARR8AAEgfAABNHwAAUB8AAFcfAABZHwAAWR8AAFsfAABbHwAAXR8AAF0fAABfHwAAfR8AAIAfAAC0HwAAth8AALwfAAC+HwAAvh8AAMIfAADEHwAAxh8AAMwfAADQHwAA0x8AANYfAADbHwAA4B8AAOwfAADyHwAA9B8AAPYfAAD8HwAAcSAAAHEgAAB/IAAAfyAAAJAgAACcIAAAAiEAAAIhAAAHIQAAByEAAAohAAATIQAAFSEAABUhAAAYIQAAHSEAACQhAAAkIQAAJiEAACYhAAAoIQAAKCEAACohAAA5IQAAPCEAAD8hAABFIQAASSEAAE4hAABOIQAAYCEAAIghAAAALAAA5CwAAOssAADuLAAA8iwAAPMsAAAALQAAJS0AACctAAAnLQAALS0AAC0tAAAwLQAAZy0AAG8tAABvLQAAgC0AAJYtAACgLQAApi0AAKgtAACuLQAAsC0AALYtAAC4LQAAvi0AAMAtAADGLQAAyC0AAM4tAADQLQAA1i0AANgtAADeLQAABTAAAAcwAAAhMAAAKTAAADEwAAA1MAAAODAAADwwAABBMAAAljAAAJ0wAACfMAAAoTAAAPowAAD8MAAA/zAAAAUxAAAvMQAAMTEAAI4xAACgMQAAvzEAAPAxAAD/MQAAADQAAL9NAAAATgAAjKQAANCkAAD9pAAAAKUAAAymAAAQpgAAH6YAACqmAAArpgAAQKYAAG6mAAB/pgAAnaYAAKCmAADvpgAAF6cAAB+nAAAipwAAiKcAAIunAADKpwAA0KcAANGnAADTpwAA06cAANWnAADZpwAA8qcAAAGoAAADqAAABagAAAeoAAAKqAAADKgAACKoAABAqAAAc6gAAIKoAACzqAAA8qgAAPeoAAD7qAAA+6gAAP2oAAD+qAAACqkAACWpAAAwqQAARqkAAGCpAAB8qQAAhKkAALKpAADPqQAAz6kAAOCpAADkqQAA5qkAAO+pAAD6qQAA/qkAAACqAAAoqgAAQKoAAEKqAABEqgAAS6oAAGCqAAB2qgAAeqoAAHqqAAB+qgAAr6oAALGqAACxqgAAtaoAALaqAAC5qgAAvaoAAMCqAADAqgAAwqoAAMKqAADbqgAA3aoAAOCqAADqqgAA8qoAAPSqAAABqwAABqsAAAmrAAAOqwAAEasAABarAAAgqwAAJqsAACirAAAuqwAAMKsAAFqrAABcqwAAaasAAHCrAADiqwAAAKwAAKPXAACw1wAAxtcAAMvXAAD71wAAAPkAAG36AABw+gAA2foAAAD7AAAG+wAAE/sAABf7AAAd+wAAHfsAAB/7AAAo+wAAKvsAADb7AAA4+wAAPPsAAD77AAA++wAAQPsAAEH7AABD+wAARPsAAEb7AACx+wAA0/sAAF38AABk/AAAPf0AAFD9AACP/QAAkv0AAMf9AADw/QAA+f0AAHH+AABx/gAAc/4AAHP+AAB3/gAAd/4AAHn+AAB5/gAAe/4AAHv+AAB9/gAAff4AAH/+AAD8/gAAIf8AADr/AABB/wAAWv8AAGb/AACd/wAAoP8AAL7/AADC/wAAx/8AAMr/AADP/wAA0v8AANf/AADa/wAA3P8AAAAAAQALAAEADQABACYAAQAoAAEAOgABADwAAQA9AAEAPwABAE0AAQBQAAEAXQABAIAAAQD6AAEAQAEBAHQBAQCAAgEAnAIBAKACAQDQAgEAAAMBAB8DAQAtAwEASgMBAFADAQB1AwEAgAMBAJ0DAQCgAwEAwwMBAMgDAQDPAwEA0QMBANUDAQAABAEAnQQBALAEAQDTBAEA2AQBAPsEAQAABQEAJwUBADAFAQBjBQEAcAUBAHoFAQB8BQEAigUBAIwFAQCSBQEAlAUBAJUFAQCXBQEAoQUBAKMFAQCxBQEAswUBALkFAQC7BQEAvAUBAAAGAQA2BwEAQAcBAFUHAQBgBwEAZwcBAIAHAQCFBwEAhwcBALAHAQCyBwEAugcBAAAIAQAFCAEACAgBAAgIAQAKCAEANQgBADcIAQA4CAEAPAgBADwIAQA/CAEAVQgBAGAIAQB2CAEAgAgBAJ4IAQDgCAEA8ggBAPQIAQD1CAEAAAkBABUJAQAgCQEAOQkBAIAJAQC3CQEAvgkBAL8JAQAACgEAAAoBABAKAQATCgEAFQoBABcKAQAZCgEANQoBAGAKAQB8CgEAgAoBAJwKAQDACgEAxwoBAMkKAQDkCgEAAAsBADULAQBACwEAVQsBAGALAQByCwEAgAsBAJELAQAADAEASAwBAIAMAQCyDAEAwAwBAPIMAQAADQEAIw0BAIAOAQCpDgEAsA4BALEOAQAADwEAHA8BACcPAQAnDwEAMA8BAEUPAQBwDwEAgQ8BALAPAQDEDwEA4A8BAPYPAQADEAEANxABAHEQAQByEAEAdRABAHUQAQCDEAEArxABANAQAQDoEAEAAxEBACYRAQBEEQEARBEBAEcRAQBHEQEAUBEBAHIRAQB2EQEAdhEBAIMRAQCyEQEAwREBAMQRAQDaEQEA2hEBANwRAQDcEQEAABIBABESAQATEgEAKxIBAIASAQCGEgEAiBIBAIgSAQCKEgEAjRIBAI8SAQCdEgEAnxIBAKgSAQCwEgEA3hIBAAUTAQAMEwEADxMBABATAQATEwEAKBMBACoTAQAwEwEAMhMBADMTAQA1EwEAORMBAD0TAQA9EwEAUBMBAFATAQBdEwEAYRMBAAAUAQA0FAEARxQBAEoUAQBfFAEAYRQBAIAUAQCvFAEAxBQBAMUUAQDHFAEAxxQBAIAVAQCuFQEA2BUBANsVAQAAFgEALxYBAEQWAQBEFgEAgBYBAKoWAQC4FgEAuBYBAAAXAQAaFwEAQBcBAEYXAQAAGAEAKxgBAKAYAQDfGAEA/xgBAAYZAQAJGQEACRkBAAwZAQATGQEAFRkBABYZAQAYGQEALxkBAD8ZAQA/GQEAQRkBAEEZAQCgGQEApxkBAKoZAQDQGQEA4RkBAOEZAQDjGQEA4xkBAAAaAQAAGgEACxoBADIaAQA6GgEAOhoBAFAaAQBQGgEAXBoBAIkaAQCdGgEAnRoBALAaAQD4GgEAABwBAAgcAQAKHAEALhwBAEAcAQBAHAEAchwBAI8cAQAAHQEABh0BAAgdAQAJHQEACx0BADAdAQBGHQEARh0BAGAdAQBlHQEAZx0BAGgdAQBqHQEAiR0BAJgdAQCYHQEA4B4BAPIeAQCwHwEAsB8BAAAgAQCZIwEAACQBAG4kAQCAJAEAQyUBAJAvAQDwLwEAADABAC40AQAARAEARkYBAABoAQA4agEAQGoBAF5qAQBwagEAvmoBANBqAQDtagEAAGsBAC9rAQBAawEAQ2sBAGNrAQB3awEAfWsBAI9rAQBAbgEAf24BAABvAQBKbwEAUG8BAFBvAQCTbwEAn28BAOBvAQDhbwEA428BAONvAQAAcAEA94cBAACIAQDVjAEAAI0BAAiNAQDwrwEA868BAPWvAQD7rwEA/a8BAP6vAQAAsAEAIrEBAFCxAQBSsQEAZLEBAGexAQBwsQEA+7IBAAC8AQBqvAEAcLwBAHy8AQCAvAEAiLwBAJC8AQCZvAEAANQBAFTUAQBW1AEAnNQBAJ7UAQCf1AEAotQBAKLUAQCl1AEAptQBAKnUAQCs1AEArtQBALnUAQC71AEAu9QBAL3UAQDD1AEAxdQBAAXVAQAH1QEACtUBAA3VAQAU1QEAFtUBABzVAQAe1QEAOdUBADvVAQA+1QEAQNUBAETVAQBG1QEARtUBAErVAQBQ1QEAUtUBAKXWAQCo1gEAwNYBAMLWAQDa1gEA3NYBAPrWAQD81gEAFNcBABbXAQA01wEANtcBAE7XAQBQ1wEAbtcBAHDXAQCI1wEAitcBAKjXAQCq1wEAwtcBAMTXAQDL1wEAAN8BAB7fAQAA4QEALOEBADfhAQA94QEATuEBAE7hAQCQ4gEAreIBAMDiAQDr4gEA4OcBAObnAQDo5wEA6+cBAO3nAQDu5wEA8OcBAP7nAQAA6AEAxOgBAADpAQBD6QEAS+kBAEvpAQAA7gEAA+4BAAXuAQAf7gEAIe4BACLuAQAk7gEAJO4BACfuAQAn7gEAKe4BADLuAQA07gEAN+4BADnuAQA57gEAO+4BADvuAQBC7gEAQu4BAEfuAQBH7gEASe4BAEnuAQBL7gEAS+4BAE3uAQBP7gEAUe4BAFLuAQBU7gEAVO4BAFfuAQBX7gEAWe4BAFnuAQBb7gEAW+4BAF3uAQBd7gEAX+4BAF/uAQBh7gEAYu4BAGTuAQBk7gEAZ+4BAGruAQBs7gEAcu4BAHTuAQB37gEAee4BAHzuAQB+7gEAfu4BAIDuAQCJ7gEAi+4BAJvuAQCh7gEAo+4BAKXuAQCp7gEAq+4BALvuAQAAAAIA36YCAACnAgA4twIAQLcCAB24AgAguAIAoc4CALDOAgDg6wIAAPgCAB36AgAAAAMAShMDAAAAAAADAAAAgA4BAKkOAQCrDgEArQ4BALAOAQCxDgEAAAAAAAIAAAAAoAAAjKQAAJCkAADGpABBkKwNC2YIAAAAIAAAACAAAACgAAAAoAAAAIAWAACAFgAAACAAAAogAAAoIAAAKSAAAC8gAAAvIAAAXyAAAF8gAAAAMAAAADAAAAEAAAAAGgEARxoBAAEAAAAoIAAAKCAAAAEAAAApIAAAKSAAQYCtDQvDHQcAAAAgAAAAIAAAAKAAAACgAAAAgBYAAIAWAAAAIAAACiAAAC8gAAAvIAAAXyAAAF8gAAAAMAAAADAAAAEAAACAAAAA/wAAAAEAAAAAAQAAfwEAAAEAAACAAQAATwIAAAEAAABQAgAArwIAAAEAAACwAgAA/wIAAAEAAAAAAwAAbwMAAAEAAABwAwAA/wMAAAEAAAAABAAA/wQAAAEAAAAABQAALwUAAAEAAAAwBQAAjwUAAAEAAACQBQAA/wUAAAEAAAAABgAA/wYAAAEAAAAABwAATwcAAAEAAABQBwAAfwcAAAEAAACABwAAvwcAAAEAAADABwAA/wcAAAEAAAAACAAAPwgAAAEAAABACAAAXwgAAAEAAABgCAAAbwgAAAEAAABwCAAAnwgAAAEAAACgCAAA/wgAAAEAAAAACQAAfwkAAAEAAACACQAA/wkAAAEAAAAACgAAfwoAAAEAAACACgAA/woAAAEAAAAACwAAfwsAAAEAAACACwAA/wsAAAEAAAAADAAAfwwAAAEAAACADAAA/wwAAAEAAAAADQAAfw0AAAEAAACADQAA/w0AAAEAAAAADgAAfw4AAAEAAACADgAA/w4AAAEAAAAADwAA/w8AAAEAAAAAEAAAnxAAAAEAAACgEAAA/xAAAAEAAAAAEQAA/xEAAAEAAAAAEgAAfxMAAAEAAACAEwAAnxMAAAEAAACgEwAA/xMAAAEAAAAAFAAAfxYAAAEAAACAFgAAnxYAAAEAAACgFgAA/xYAAAEAAAAAFwAAHxcAAAEAAAAgFwAAPxcAAAEAAABAFwAAXxcAAAEAAABgFwAAfxcAAAEAAACAFwAA/xcAAAEAAAAAGAAArxgAAAEAAACwGAAA/xgAAAEAAAAAGQAATxkAAAEAAABQGQAAfxkAAAEAAACAGQAA3xkAAAEAAADgGQAA/xkAAAEAAAAAGgAAHxoAAAEAAAAgGgAArxoAAAEAAACwGgAA/xoAAAEAAAAAGwAAfxsAAAEAAACAGwAAvxsAAAEAAADAGwAA/xsAAAEAAAAAHAAATxwAAAEAAACAHAAAjxwAAAEAAACQHAAAvxwAAAEAAADAHAAAzxwAAAEAAADQHAAA/xwAAAEAAAAAHQAAfx0AAAEAAACAHQAAvx0AAAEAAADAHQAA/x0AAAEAAAAAHgAA/x4AAAEAAAAAHwAA/x8AAAEAAAAAIAAAbyAAAAEAAABwIAAAnyAAAAEAAACgIAAAzyAAAAEAAADQIAAA/yAAAAEAAAAAIQAATyEAAAEAAABQIQAAjyEAAAEAAACQIQAA/yEAAAEAAAAAIgAA/yIAAAEAAAAAIwAA/yMAAAEAAAAAJAAAPyQAAAEAAABAJAAAXyQAAAEAAABgJAAA/yQAAAEAAAAAJQAAfyUAAAEAAACAJQAAnyUAAAEAAACgJQAA/yUAAAEAAAAAJgAA/yYAAAEAAAAAJwAAvycAAAEAAADAJwAA7ycAAAEAAADwJwAA/ycAAAEAAAAAKQAAfykAAAEAAACAKQAA/ykAAAEAAAAAKgAA/yoAAAEAAAAAKwAA/ysAAAEAAAAALAAAXywAAAEAAABgLAAAfywAAAEAAACALAAA/ywAAAEAAAAALQAALy0AAAEAAAAwLQAAfy0AAAEAAACALQAA3y0AAAEAAADgLQAA/y0AAAEAAAAALgAAfy4AAAEAAACALgAA/y4AAAEAAAAALwAA3y8AAAEAAADwLwAA/y8AAAEAAAAAMAAAPzAAAAEAAABAMAAAnzAAAAEAAACgMAAA/zAAAAEAAAAAMQAALzEAAAEAAAAwMQAAjzEAAAEAAACQMQAAnzEAAAEAAACgMQAAvzEAAAEAAADAMQAA7zEAAAEAAADwMQAA/zEAAAEAAAAAMgAA/zIAAAEAAAAAMwAA/zMAAAEAAAAANAAAv00AAAEAAADATQAA/00AAAEAAAAATgAA/58AAAEAAAAAoAAAj6QAAAEAAACQpAAAz6QAAAEAAADQpAAA/6QAAAEAAAAApQAAP6YAAAEAAABApgAAn6YAAAEAAACgpgAA/6YAAAEAAAAApwAAH6cAAAEAAAAgpwAA/6cAAAEAAAAAqAAAL6gAAAEAAAAwqAAAP6gAAAEAAABAqAAAf6gAAAEAAACAqAAA36gAAAEAAADgqAAA/6gAAAEAAAAAqQAAL6kAAAEAAAAwqQAAX6kAAAEAAABgqQAAf6kAAAEAAACAqQAA36kAAAEAAADgqQAA/6kAAAEAAAAAqgAAX6oAAAEAAABgqgAAf6oAAAEAAACAqgAA36oAAAEAAADgqgAA/6oAAAEAAAAAqwAAL6sAAAEAAAAwqwAAb6sAAAEAAABwqwAAv6sAAAEAAADAqwAA/6sAAAEAAAAArAAAr9cAAAEAAACw1wAA/9cAAAEAAAAA2AAAf9sAAAEAAACA2wAA/9sAAAEAAAAA3AAA/98AAAEAAAAA4AAA//gAAAEAAAAA+QAA//oAAAEAAAAA+wAAT/sAAAEAAABQ+wAA//0AAAEAAAAA/gAAD/4AAAEAAAAQ/gAAH/4AAAEAAAAg/gAAL/4AAAEAAAAw/gAAT/4AAAEAAABQ/gAAb/4AAAEAAABw/gAA//4AAAEAAAAA/wAA7/8AAAEAAADw/wAA//8AAAEAAAAAAAEAfwABAAEAAACAAAEA/wABAAEAAAAAAQEAPwEBAAEAAABAAQEAjwEBAAEAAACQAQEAzwEBAAEAAADQAQEA/wEBAAEAAACAAgEAnwIBAAEAAACgAgEA3wIBAAEAAADgAgEA/wIBAAEAAAAAAwEALwMBAAEAAAAwAwEATwMBAAEAAABQAwEAfwMBAAEAAACAAwEAnwMBAAEAAACgAwEA3wMBAAEAAACABAEArwQBAAEAAACwBAEA/wQBAAEAAAAABQEALwUBAAEAAAAwBQEAbwUBAAEAAABwBQEAvwUBAAEAAAAABgEAfwcBAAEAAACABwEAvwcBAAEAAAAACAEAPwgBAAEAAABACAEAXwgBAAEAAACACAEArwgBAAEAAADgCAEA/wgBAAEAAAAACQEAHwkBAAEAAAAgCQEAPwkBAAEAAACgCQEA/wkBAAEAAAAACgEAXwoBAAEAAADACgEA/woBAAEAAAAACwEAPwsBAAEAAABACwEAXwsBAAEAAABgCwEAfwsBAAEAAACACwEArwsBAAEAAAAADAEATwwBAAEAAACADAEA/wwBAAEAAAAADQEAPw0BAAEAAABgDgEAfw4BAAEAAACADgEAvw4BAAEAAAAADwEALw8BAAEAAAAwDwEAbw8BAAEAAABwDwEArw8BAAEAAACwDwEA3w8BAAEAAADgDwEA/w8BAAEAAAAAEAEAfxABAAEAAACAEAEAzxABAAEAAADQEAEA/xABAAEAAAAAEQEATxEBAAEAAABQEQEAfxEBAAEAAADgEQEA/xEBAAEAAAAAEgEATxIBAAEAAACAEgEArxIBAAEAAACwEgEA/xIBAAEAAAAAEwEAfxMBAAEAAAAAFAEAfxQBAAEAAACAFAEA3xQBAAEAAACAFQEA/xUBAAEAAAAAFgEAXxYBAAEAAABgFgEAfxYBAAEAAACAFgEAzxYBAAEAAAAAFwEATxcBAAEAAAAAGAEATxgBAAEAAACgGAEA/xgBAAEAAAAAGQEAXxkBAAEAAACgGQEA/xkBAAEAAAAAGgEATxoBAAEAAABQGgEArxoBAAEAAACwGgEAvxoBAAEAAADAGgEA/xoBAAEAAAAAHAEAbxwBAAEAAABwHAEAvxwBAAEAAAAAHQEAXx0BAAEAAABgHQEArx0BAAEAAADgHgEA/x4BAAEAAACwHwEAvx8BAAEAAADAHwEA/x8BAAEAAAAAIAEA/yMBAAEAAAAAJAEAfyQBAAEAAACAJAEATyUBAAEAAACQLwEA/y8BAAEAAAAAMAEALzQBAAEAAAAwNAEAPzQBAAEAAAAARAEAf0YBAAEAAAAAaAEAP2oBAAEAAABAagEAb2oBAAEAAABwagEAz2oBAAEAAADQagEA/2oBAAEAAAAAawEAj2sBAAEAAABAbgEAn24BAAEAAAAAbwEAn28BAAEAAADgbwEA/28BAAEAAAAAcAEA/4cBAAEAAAAAiAEA/4oBAAEAAAAAiwEA/4wBAAEAAAAAjQEAf40BAAEAAADwrwEA/68BAAEAAAAAsAEA/7ABAAEAAAAAsQEAL7EBAAEAAAAwsQEAb7EBAAEAAABwsQEA/7IBAAEAAAAAvAEAn7wBAAEAAACgvAEAr7wBAAEAAAAAzwEAz88BAAEAAAAA0AEA/9ABAAEAAAAA0QEA/9EBAAEAAAAA0gEAT9IBAAEAAADg0gEA/9IBAAEAAAAA0wEAX9MBAAEAAABg0wEAf9MBAAEAAAAA1AEA/9cBAAEAAAAA2AEAr9oBAAEAAAAA3wEA/98BAAEAAAAA4AEAL+ABAAEAAAAA4QEAT+EBAAEAAACQ4gEAv+IBAAEAAADA4gEA/+IBAAEAAADg5wEA/+cBAAEAAAAA6AEA3+gBAAEAAAAA6QEAX+kBAAEAAABw7AEAv+wBAAEAAAAA7QEAT+0BAAEAAAAA7gEA/+4BAAEAAAAA8AEAL/ABAAEAAAAw8AEAn/ABAAEAAACg8AEA//ABAAEAAAAA8QEA//EBAAEAAAAA8gEA//IBAAEAAAAA8wEA//UBAAEAAAAA9gEAT/YBAAEAAABQ9gEAf/YBAAEAAACA9gEA//YBAAEAAAAA9wEAf/cBAAEAAACA9wEA//cBAAEAAAAA+AEA//gBAAEAAAAA+QEA//kBAAEAAAAA+gEAb/oBAAEAAABw+gEA//oBAAEAAAAA+wEA//sBAAEAAAAAAAIA36YCAAEAAAAApwIAP7cCAAEAAABAtwIAH7gCAAEAAAAguAIAr84CAAEAAACwzgIA7+sCAAEAAAAA+AIAH/oCAAEAAAAAAAMATxMDAAEAAAAAAA4AfwAOAAEAAAAAAQ4A7wEOAAEAAAAAAA8A//8PAAEAAAAAABAA//8QAEHQyg0LtJQCMwAAAOAvAADvLwAAAAIBAH8CAQDgAwEA/wMBAMAFAQD/BQEAwAcBAP8HAQCwCAEA3wgBAEAJAQB/CQEAoAoBAL8KAQCwCwEA/wsBAFAMAQB/DAEAQA0BAF8OAQDADgEA/w4BAFASAQB/EgEAgBMBAP8TAQDgFAEAfxUBANAWAQD/FgEAUBcBAP8XAQBQGAEAnxgBAGAZAQCfGQEAABsBAP8bAQDAHAEA/xwBALAdAQDfHgEAAB8BAK8fAQBQJQEAjy8BAEA0AQD/QwEAgEYBAP9nAQCQawEAP24BAKBuAQD/bgEAoG8BAN9vAQCAjQEA768BAACzAQD/uwEAsLwBAP/OAQDQzwEA/88BAFDSAQDf0gEAgNMBAP/TAQCw2gEA/94BADDgAQD/4AEAUOEBAI/iAQAA4wEA3+cBAODoAQD/6AEAYOkBAG/sAQDA7AEA/+wBAFDtAQD/7QEAAO8BAP/vAQAA/AEA//8BAOCmAgD/pgIA8OsCAP/3AgAg+gIA//8CAFATAwD//w0AgAAOAP8ADgDwAQ4A//8OAAAAAAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAAADzAP//AAD//wAA//8AAP//AAD//wAA//8AAAUAgQAKAA8B//8AAAwADgH//wAA//8AAP//AAAPAJ4A//8AAP//AAASADYAFQCPABoADgEfAJIA//8AAP//AAD//wAAJAAxAS4AKAD//wAAMQCGADQAfQA4AH0A//8AAD0AAwH//wAAQgCdAEcADQH//wAA//8AAP//AAD//wAA//8AAP//AABMACQB//8AAFIANwD//wAA//8AAFUAlwD//wAA//8AAP//AABYAIcA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAXABWAP//AABhANIA//8AAP//AAD//wAAZACBAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABsAI0A//8AAHEAJwB2ACcA//8AAP//AAB9ANMAgACaAP//AAD//wAAjQBaAP//AACSAM4A//8AAP//AACVAJkA//8AAKEA2AGuAFMAswBaAP//AAD//wAA//8AALkAoQC9AKEA//8AAMIAdADHAJwA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADMAI0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAzgCUANMALQD//wAA//8AAP//AAD//wAA2ADIAf//AAD//wAA4gDbAf//AAD//wAA//8AAO8AHgH//wAA//8AAP//AAD//wAA+gATAgABGAL//wAA//8AAP//AAAHASUA//8AAP//AAD//wAA//8AAP//AAD//wAACQHtAf//AAD//wAAEgE4AP//AAD//wAAGQGRAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AACEBNwH//wAA//8AAP//AAD//wAAKwEIAv//AAD//wAA//8AAP//AAA1AW0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AADoBGQL//wAA//8AAP//AABdAUQB//8AAP//AABlASYA//8AAGoB1AD//wAAhQGFAIgBkwD//wAA//8AAP//AAD//wAA//8AAP//AACNAcwAogE/AaoBvwH//wAAswHcAf//AAC9AY0AywEMAv//AAD//wAA//8AAP//AADsAZsA//8AAP//AAD//wAA//8AAP//AADxAegB/gG1AAMC+wEKAhgB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AABoCPAH//wAA//8AAP//AAD//wAA//8AACUC7wH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAALwKPAP//AAD//wAA//8AADcCYgH//wAA//8AAP//AAD//wAAQAJ8AP//AABDApQA//8AAP//AAD//wAAUAILAv//AAD//wAA//8AAP//AAD//wAA//8AAFwClgD//wAA//8AAF8CKwD//wAA//8AAP//AABiAgACdAIRAf//AAD//wAA//8AAIICFgD//wAA//8AAIcC1wCNAmwA//8AAP//AACSAiUB//8AAP//AAD//wAA//8AAP//AAD//wAAngIWAP//AACnAgUCsQIGAv//AADAAjkA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADFAswA//8AAP//AAD//wAA//8AAMgCbwDeAn4A//8AAP//AAD//wAA4wJ+AP//AADpAtkA//8AAP//AADsAiMB//8AAP//AAD//wAA//8AAP//AAD//wAA9QJKAf//AAD//wAABAOBAQ8DHAEaAzQB//8AACEDnwH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAKAPrAf//AAD//wAA//8AADEDEwE0A5kA//8AAP//AAD//wAA//8AAP//AAD//wAAOQPSAP//AAD//wAA//8AAEwDOgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABPAyEB//8AAFgD1AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAXAP6Af//AAD//wAA//8AAP//AABkA9UA//8AAP//AABnA5EA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGwDIAL//wAA//8AAP//AAD//wAAfAOaAIEDnwD//wAAhgN0AP//AACPA2sA//8AAJQDbwD//wAA//8AAP//AACZAw0B//8AAP//AACgA34B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAwwMLAc8DIgD//wAA//8AAP//AAD//wAA1AMOAP//AADaAzcA//8AAP//AADlAxUA//8AAP//AADsA6AB/wPjAf//AAD//wAA//8AABQEewD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAGwT/Af//AAD//wAA//8AAP//AAD//wAAKQSmAf//AAD//wAA//8AAP//AAD//wAA//8AADcE2gH//wAA//8AAEkEswFhBHMA//8AAP//AABmBHMAbgStAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAiwR7AP//AACNBPgB//8AAP//AAD//wAAlAS3Af//AAD//wAA//8AAP//AAD//wAA//8AAJ8EQQK4BDQCxwSrAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA1AQXAuIECwHnBEYC//8AAP//AAD//wAA//8AAP//AAD2BD8C//8AAP//AAD//wAA//8AAP//AAACBc0B//8AAP//AAD//wAA//8AAP//AAAMBTUB//8AAP//AAASBSEA//8AABkFwQH//wAA//8AAP//AAD//wAA//8AAP//AAAlBW0B//8AAP//AABJBaAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFMFDAFYBdYA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAZwVZAP//AAD//wAA//8AAP//AABuBXcA//8AAP//AAD//wAAcwVPAX8F5QH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAjAVVAJMFvAH//wAA//8AAP//AACkBZsA//8AAP//AAC0BXUA//8AAP//AAC5BSsA//8AAP//AADBBcoA0wU1Av//AAD//wAA//8AAP//AAD//wAA2wXmAP//AADeBYkA//8AAP//AAD//wAA//8AAOEFJgH//wAA//8AAP//AAD//wAA//8AAOsFlgEEBk4C//8AACsG6AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAC4GaQAyBtkB//8AAP//AAD//wAA//8AAP//AAD//wAARAbIAP//AABJBr4B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFIGMQL//wAA//8AAP//AAD//wAA//8AAFkGZwD//wAAawYfAnwGhgH//wAA//8AAIkG6wCOBhoA//8AAP//AAD//wAAlAZmAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AALIGOgL//wAA//8AAP//AADABhwAxQZYAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADLBhwA//8AANEGygD//wAA//8AAP//AAD//wAA//8AAP//AADXBjIB//8AAOMGkwH//wAA//8AAP//AAD//wAA//8AAP//AAD5BiECDgcbAP//AAD//wAA//8AAP//AAD//wAA//8AABMHagD//wAA//8AABcHBwD//wAA//8AAB0HuQH//wAA//8AADAHTAE6BycC//8AAP//AAD//wAA//8AAP//AABLByUC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGUH3QD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGoHlQH//wAAeAf1AX8H3QD//wAA//8AAP//AACJB9wA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACLB3EAkQdlAf//AAD//wAAoweDAKgHywCtB2sB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAMQHKALiB3MB//8AAAII5wD//wAA//8AAAUIPgL//wAAKgjEAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA1CM0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AADgIswD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAD0IDQD//wAA//8AAP//AAD//wAA//8AAP//AABDCG0A//8AAEgI/QH//wAA//8AAP//AABVCBYB//8AAP//AAD//wAA//8AAP//AABmCJgBcwhIAf//AAB7COAB//8AAIcIaQD//wAA//8AAP//AAD//wAA//8AAJII4gH//wAA//8AAKMI3wD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAApghoAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKsIpAG8CAYA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADCCBkA//8AAMcIgAH//wAA//8AAP//AADSCMsB5gjGAf//AAD//wAA8AgCAP//AAD//wAA9ggZAQ8JNAD//wAA//8AAP//AAAYCdUB//8AACEJ0QD//wAA//8AACwJNAD//wAAMQkdADkJkwD//wAA//8AAEEJMgL//wAA//8AAP//AAD//wAA//8AAEoJWQD//wAA//8AAFcJGQBgCWoA//8AAP//AAD//wAAaAkvAf//AABwCfIB//8AAP//AAD//wAA//8AAP//AAB6CS4A//8AAH8JLQD//wAAhglyAI0J7gGYCVcA//8AAP//AAD//wAA//8AAKUJPgH//wAA//8AAP//AACtCSkA//8AAP//AACzCaIB//8AAP//AADLCXkA0gm7Af//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADoCdsA7Ql2AP//AAD//wAA//8AAP//AADyCZIA/QmIAAcKJgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AABoKUgEkCp0A//8AAP//AAApCjoB//8AAP//AAD//wAANAp6AP//AAD//wAA//8AAP//AAA5CjAA//8AAD4KDQL//wAA//8AAFcKhAD//wAA//8AAP//AABaChEB//8AAP//AABdCjMB//8AAP//AAD//wAA//8AAP//AABnCvMB//8AAP//AABzCgwB//8AAP//AAD//wAA//8AAHwKCwD//wAAgwofAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAiQo1AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACUCvcB//8AAP//AAD//wAAngorAv//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAtAoRALkKNQD//wAA//8AAP//AAD//wAA//8AAL4KeADDCucB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAM8K9AH//wAA2QoaAP//AADeCm4A//8AAP//AADzClwA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD4CqAA//8AAP//AAD//wAA//8AAP0KdQEOC0kB//8AAP//AAD//wAA//8AAP//AAD//wAAGgsQAB8LyQH//wAA//8AAP//AAD//wAA//8AACcLXAE8C1MA//8AAEULdgBQC+UA//8AAP//AAD//wAA//8AAFgLeAD//wAA//8AAP//AAD//wAA//8AAF4L4AD//wAAZAt8AP//AAD//wAAcAuiAP//AAD//wAAeAtcAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAhQuVAP//AACKCx0B//8AAP//AACfCzgB//8AAKoLVQD//wAA//8AAP//AAD//wAA//8AAP//AACvC6UBxAtUAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAzwvXAN0LAgH//wAA4wuKAf//AAAEDHEAEAzbAP//AAD//wAA//8AAP//AAD//wAA//8AABYMRQH//wAA//8AAP//AAD//wAA//8AAP//AAAiDEsA//8AACgMTAJJDFYA//8AAP//AAD//wAA//8AAP//AABRDPYB//8AAFsM0wH//wAA//8AAP//AAD//wAA//8AAP//AABkDBAA//8AAP//AAD//wAAagyKAP//AABtDBwC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAIEMcgD//wAAhgwsAf//AACRDO0A//8AAP//AAD//wAA//8AAP//AAD//wAAmwzhAf//AAD//wAA//8AAP//AACqDPUAsAwKAsIMuwDIDJABzgwhAP//AAD//wAA//8AANMMZAH//wAA7AwFAfAMBQH//wAA//8AAPUM3gD//wAA//8AAP//AAD//wAA//8AAP//AAD6DF0A//8AAP8M8gD//wAA//8AAP//AAAFDW0A//8AAA8NywD//wAA//8AABkNEAEeDQgA//8AACQNggD//wAA//8AAP//AAD//wAAKQ1dADIN9QD//wAA//8AAP//AAD//wAANw3SAf//AAD//wAA//8AAP//AABDDYQB//8AAEwNhwBiDQQC//8AAG4NSgL//wAA//8AAI8NWACeDcoB//8AAP//AACoDewB//8AAP//AAC2DV4A//8AAP//AAD//wAA//8AALoNXgC/DYAA//8AAP//AADFDTYA//8AANAN2AD//wAA//8AANgNYQD//wAA3Q2EAP//AAD//wAA//8AAP//AAD//wAA//8AAO0NAwD//wAA8w2MAf//AAD//wAACg6CAP//AAD//wAA//8AAP//AAD//wAAEg4RAv//AAApDmEA//8AAP//AAD//wAA//8AADEO8QE6DloBVA5nAf//AABsDhMA//8AAP//AACBDqQA//8AAIMOTQD//wAA//8AAJEO6QD//wAA//8AAP//AAD//wAAlA5lAP//AAD//wAA//8AAJkO4wD//wAA//8AAP//AAD//wAA//8AAP//AACeDoAA//8AAKMOHgD//wAAqA5uAP//AACtDqYA//8AAP//AAC5DqwAvA7eAP//AADHDhQC0A4yANQOHgD//wAA//8AAN4OGwHvDqoA8w6qAPgO+gD//wAA//8AAP0OvAADD7YA//8AAAgP9wD//wAADQ/3ABQPmgH//wAA//8AAB4PxgD//wAA//8AACAPLgH//wAAKA/kATEPIAE6D9QB//8AAP//AABHD8cBUQ8fAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAXQ89Av//AAB9DwkB//8AAIIPogD//wAA//8AAIcP1gGdD+UA//8AAP//AACiD+IA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKoPfQH//wAA//8AAP//AAD//wAA//8AALsPlwD//wAAyQ8VAM4P8AH//wAA//8AAOYPIgD//wAA7g9BAf//AAD4D70A//8AAP//AAD9Dx0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAAhAUAQ8QrwH//wAA//8AACoQPQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAALxDZAP//AAD//wAA//8AAEEQPAJiEE4A//8AAHQQWwH//wAA//8AAP//AAD//wAA//8AAIQQfwCJEPwBkRAsAP//AAD//wAA//8AAP//AACYEIsAnRCLAP//AAD//wAApBBEAP//AACoEL0B//8AAP//AAD//wAAtxBAAP//AAD//wAAuhBFAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAL8QAwHHEFcA//8AAM4QowD//wAA//8AANMQowD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AANsQSwL//wAA/BBNAP//AAD//wAA//8AAP//AAABEWoB//8AABMRDgL//wAAIRFVAf//AAD//wAA//8AADcRAAH//wAA//8AADwRVABBEfQA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEkRDwBXEb8A//8AAFsRxgD//wAA//8AAP//AABnEQYB//8AAP//AAD//wAAahHtAG8RAQJ5EdAB//8AAP//AAD//wAA//8AAP//AAD//wAAixFQAZMRlAH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKQRIgL//wAA//8AAKwRNgH//wAA//8AAP//AAC2EasB//8AAP//AAD//wAA//8AAMYRYgDNEWkB//8AAP//AAD//wAA//8AAP//AAD//wAA3RHmAecRbAH//wAA//8AAPIR6QH//wAA//8AAPwRKgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAJEkwA//8AAP//AAD//wAAGBKHAf//AAD//wAA//8AAP//AAA1EmsAQRI5AP//AABIEmEB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFYSYgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFsSiQH//wAA//8AAG4SHgL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAfhLJAIwSGACUEikB//8AAP//AAD//wAAphLqAP//AAD//wAArhK3ALMSGgL//wAAvBI5AMESBQD//wAA//8AAP//AAD//wAAxxLBAP//AAD//wAAzBImAv//AAD//wAA5hLdAf4SRAD//wAACBPeAf//AAD//wAA//8AAP//AAAfEykC//8AAP//AAAvE54B//8AAP//AAD//wAA//8AAP//AABCE1ACSRNwAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAE4TPAD//wAAUxOmAP//AAD//wAA//8AAP//AAD//wAAWBPJAF8T8gD//wAAZBPCAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGkT4AD//wAAehNsAP//AAD//wAA//8AAIoT+gCeE4wAoxOMAP//AACqEyAA//8AAP//AAD//wAArxNwAP//AAC4EzEA//8AALwTQwLWE8UB//8AAP//AADjE0AC//8AAP//AAD//wAA//8AAPgTbwH//wAAChSwAR8UKAD//wAA//8AAP//AAAtFI4B//8AAP//AAD//wAA//8AAP//AAD//wAAOhRUAkQUsQH//wAA//8AAP//AAD//wAAVBQ7Af//AAD//wAA//8AAP//AABpFOEA//8AAP//AAD//wAA//8AAHEUTgH//wAAfBRWAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAI4UDACTFHEB//8AALcU9gD//wAAvBSxAMEUZwD//wAA//8AAP//AADGFMMA//8AAP//AAD//wAAzRSnANsUGAD//wAA4BR6Af//AAD//wAA//8AAP//AAD0FLEA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAPwU4QD//wAA//8AAAEVKgL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAFhWhASAVAQH//wAA//8AACUVfwH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABAFSAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEkVjwH//wAA//8AAP//AABQFcMB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFwV4wBkFRAB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAB0FRcA//8AAP//AAD//wAAfRWYAP//AACCFc4AkxW4AJgV6wD//wAA//8AAP//AACkFVECwxU5AdAVmADcFdAA4RUJAv//AAD//wAA8hV2AfsVJwH//wAA//8AAP//AAD//wAADhacAf//AAD//wAAJBY+AP//AAD//wAA//8AAP//AAD//wAA//8AACkWJAL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEMWUwH//wAA//8AAFcWWwD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFwWMwD//wAAYBZbAP//AAD//wAA//8AAGkWlgD//wAA//8AAHUWAQB7FpAA//8AAIAW0QH//wAA//8AAIwWkAD//wAA//8AAP//AAD//wAAlhYJAP//AAD//wAAnBZRAf//AAD//wAA//8AAKUWyAD//wAA//8AAP//AAD//wAArxbsAP//AAD//wAA//8AAP//AAD//wAA//8AALQWnAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADIFjsA//8AAM0WMAH//wAA//8AANYWmQH//wAA6xbXAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD9FkIAAhf7AP//AAD//wAA//8AAP//AAAHF/sADhcjABMX/AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAGBfqAP//AAAdF4kA//8AAP//AAD//wAALRcsAv//AAD//wAA//8AAE8XuQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFQXKgD//wAA//8AAP//AABmF5IB//8AAG4XQgD//wAA//8AAHYXdwGLFyMA//8AAJQXDwH//wAA//8AAP//AAD//wAA//8AAJ4XtAH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAshf/AP//AAD//wAA//8AALcX6gH//wAA//8AAP//AADAF6cA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAMMX0QD//wAA//8AAP//AAD//wAA//8AAP//AADIF6kA//8AAP//AAD//wAA//8AAM0XGgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAOkXjgDuF18B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AABQYtgD//wAAHxiOAP//AAAoGPMA//8AAP//AAD//wAAMBioADoYAAD//wAA//8AAEIY7wD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABHGPkB//8AAP//AAD//wAAXRgCAv//AAD//wAAixjiAP//AAD//wAA//8AAP//AAD//wAAkBgkAJUYBwGeGKQA//8AAP//AAD//wAApRgtArkYBgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAyxhQAP//AADQGH8A//8AAP//AAD//wAA1xj/AP//AAD//wAA3xhgAP//AAD//wAA//8AAP//AAD//wAA//8AAOQYDwD//wAA//8AAP//AAD//wAA//8AAP//AADpGMAB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP4YCAH//wAA//8AAP//AAD//wAABRlPAv//AAD//wAA//8AAP//AAAmGXkA//8AAP//AAD//wAA//8AAP//AAD//wAAKxk7AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA1GSMC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEAZAQFJGUcC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGoZtQD//wAA//8AAP//AAD//wAAdBlZAf//AAD//wAA//8AAP//AAD//wAA//8AAJoZegD//wAA//8AAP//AAD//wAApBn4AKkZ7wD//wAA//8AALAZ8QD//wAA//8AAP//AAD//wAAuRmFAP//AAD//wAA//8AAP//AAD//wAAyBleAf//AADaGTAC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADxGfYA//8AAP//AAD//wAA//8AAPcZqAD//wAA/BnCAf//AAD//wAA//8AAAUaPQEqGggB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAALxpNAVMasABYGvkAXRpoAP//AAD//wAA//8AAP//AABwGisBehqrAP//AAD//wAA//8AAP//AAB9GjoA//8AAP//AAD//wAA//8AAP//AAD//wAAhxpOAP//AAD//wAAjRpfAJIaSwH//wAA//8AAP//AAD//wAA//8AAJ0a5wCoGswB//8AAP//AACzGgcB//8AAP//AAD//wAAuBp8Af//AAD//wAA//8AAP//AAD//wAA0BotAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA2xp0AegaBwL//wAA//8AAP//AAD3GtAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP8aLwAEG60AChvBABobCgH//wAA//8AAP//AAD//wAA//8AAP//AAAlG7gBOBvkAP//AAD//wAA//8AAD0bJQD//wAA//8AAP//AAD//wAA//8AAEMbZQD//wAATBuXAVYbrABiG5sB//8AAP//AAD//wAA//8AAP//AABrG7wAcBtJAv//AAD//wAA//8AAP//AAD//wAAkRtAAZsbFQL//wAA//8AAP//AAD//wAA//8AAKYb+AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAK0bxwCyG4gB//8AAP//AAD//wAA//8AAP//AAD//wAA0BvfAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAN8bRwH//wAA//8AAOcbQgH//wAA//8AAP//AAD//wAA//8AAO8bowEDHO4A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAAgcPwD//wAADRwJAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAYHL4AHxyzAP//AAD//wAA//8AACkcNwL//wAA//8AAP//AAD//wAA//8AAD8cEwH//wAAThwVAf//AAD//wAA//8AAP//AABhHL4A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAHEcMAD//wAAhxy6Af//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAlxxGAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADEHCQA//8AAP//AAD//wAAyhydAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADVHD4A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADeHEYA//8AAOQcrQD//wAA//8AAP//AAD//wAA//8AAP//AAD6HKcB//8AAP//AAD//wAADB0bAP//AAAVHWAB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AACkdsgE+HTgC//8AAP//AAD//wAA//8AAP//AABkHbsA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAaR2sAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAB6HTIAkB1GAP//AAD//wAA//8AAP//AAD//wAAlR1jAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAJodQwH//wAA//8AAP//AAD//wAA//8AAP//AAClHXgB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAsB2CAf//AAD//wAA//8AAP//AAD//wAA//8AALsdtADAHdoA//8AAP//AADFHa4B4x1NAv//AAAEHkgC//8AAP//AAD//wAA//8AACAesgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAALR7PAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA+HgMCSh7fAf//AAD//wAA//8AAP//AAD//wAAWx4SAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAF4e1gD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGMetQH//wAA//8AAP//AAD//wAA//8AAP//AAB+Hp4A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAI0eQwD//wAA//8AAP//AAD//wAA//8AAP//AACSHvQAlx6vAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACcHkMA//8AAP//AAD//wAA//8AAP//AACnHncA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAC5HnUA//8AAP//AAD//wAA//8AAMEeEgL//wAA0x7uAP//AAD//wAA3x79AP//AAD//wAA//8AAOQeTwD//wAA6h79AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA8h5JAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD3Hr0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/Hv4B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAAwfuQD//wAA//8AAP//AAD//wAA//8AABYfMQD//wAA//8AAP//AAD//wAALB89ADgfeQH//wAA//8AAP//AAD//wAASx9PAP//AAD//wAAXR8UAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAYR/DAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAcB+6AHUfHwF+H+kA//8AAIkfYwH//wAA//8AAKEfQgK1HzkCxB9fAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADLH1IA//8AAP//AADPH8QA1R8bAv//AAD//wAA//8AAOgfhgD//wAA//8AAPQfpQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA+R+lAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAAMgrgAIIBIB//8AAP//AAD//wAA//8AAP//AAAbICgB//8AAP//AAD//wAA//8AAP//AAAtIC4C//8AAP//AAD//wAA//8AAP//AAA+IDMA//8AAP//AAD//wAA//8AAFQgsgBZIDsCaCAiAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAeyCLAf//AAD//wAA//8AAJMgVwH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKggxQC3IMIA//8AAP//AAD//wAA//8AAMQgSQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAMwgSgD//wAA//8AAP//AADRICwA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA1CA2Av//AAD//wAA6CDoAP//AAD//wAA//8AAP//AAD0IFIA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD9IFEA//8AAP//AAD//wAA//8AAP//AAAFIQoB//8AAP//AAD//wAADCHPAP//AAAPIUoA//8AAP//AAD//wAA//8AAP//AAAXIR0C//8AACohPAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAyIdwA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAOSGRAf//AABNIV0B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABpIY0B//8AAP//AAD//wAA//8AAP//AAD//wAAdyFYAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACWIbcA//8AAP//AAChIVQB//8AAP//AAD//wAA//8AAP//AAD//wAAtCETAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAuSEEAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAvyGoAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AANUhqgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAPAhFgL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA/iGwAP//AAD//wAA//8AAP//AAD//wAA//8AAAQibgH//wAA//8AABoixQD//wAA//8AACEiKgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AACYixAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AADAirgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AADYi7AA+IhcB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAE8iEgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABaIkQC//8AAP//AABwInIB//8AAP//AAD//wAAlCK/AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAsyJBAP//AAD//wAAviK0AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAziLPAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA4SJRAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD2IgIB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAHI8cA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAEyNFAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAB4j5AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAKiPxAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAvI/4A//8AAP//AAA4IwoA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAD4jtgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAWyMEAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGUjUAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABuI+YA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAfSPTAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACOI9oA//8AAJUjMwL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAqSP+AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAK4jZAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AALIjewH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAzCPwAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADRI84B//8AAP//AAD//wAA//8AAOIj8AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADqI2AA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAPkjTAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP8jLwL//wAA//8AAP//AAD//wAA//8AABYkZAD//wAAHyQvAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA1JM0A//8AAP//AAD//wAA//8AAP//AABFJLgAVSRHAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAWiQPAv//AABwJPkA//8AAP//AAD//wAAdySKAP//AAD//wAA//8AAP//AAD//wAA//8AAIckEAL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACqJGYA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACxJGMA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AALgkqQH//wAA//8AAMkkOAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAM4kwAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADVJMAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAOkkQQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAO0kcAH//wAA//8AAAMlQAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAdJYMB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA3JboA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEElUgL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABgJYUB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABzJUUC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACXJa8A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKwl1QD//wAA//8AAP//AAD//wAA//8AAP//AAC8JUgA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADBJUcA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAMolaAH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA1yVIAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAOslUwJsYW5hAGxpbmEAegB5aQBtbgBjbgBtYWthAHlpaWkAbWFuaQBpbmthbm5hZGEAY2kAbG8AbGFvAGxhb28Aenp6egBtaWFvAHllemkAaW5ua28AY28AbWUAbG9lAGdyYW4AcGkAbGluZWFyYQBtYXJrAGNhcmkAY2FyaWFuAHBvAG1lbmRla2lrYWt1aQBncmVrAHBlAG1lZXRlaW1heWVrAGlua2hhcm9zaHRoaQBnZW9yAGdyZWVrAG1ybwBtcm9vAGthbmEAbWVybwBtAGdvbm0AY2FrbQBpbm9zbWFueWEAaW5tYW5pY2hhZWFuAGluYXJtZW5pYW4AaW5tcm8AaW5taWFvAGMAaW5jaGFrbWEAY29tbW9uAG1hbmRhaWMAaW5teWFubWFyAGlubWFrYXNhcgBxYWFpAGluaWRlb2dyYXBoaWNzeW1ib2xzYW5kcHVuY3R1YXRpb24AaW5raG1lcgBjYW5zAHByZXBlbmRlZGNvbmNhdGVuYXRpb25tYXJrAGxtAG1hcmMAY29ubmVjdG9ycHVuY3R1YXRpb24AaW5ydW5pYwBpbmNhcmlhbgBpbmF2ZXN0YW4AY29tYmluaW5nbWFyawBpbmN1bmVpZm9ybW51bWJlcnNhbmRwdW5jdHVhdGlvbgBtZXJjAGluY2hvcmFzbWlhbgBwZXJtAGluYWhvbQBpbmlwYWV4dGVuc2lvbnMAaW5jaGVyb2tlZQBpbnNoYXJhZGEAbWFrYXNhcgBpbmFycm93cwBsYwBtYXNhcmFtZ29uZGkAaW5jdW5laWZvcm0AbWMAY2MAaW56YW5hYmF6YXJzcXVhcmUAbGluZXNlcGFyYXRvcgBhcm1uAHFtYXJrAGFybWkAaW5zYW1hcml0YW4AYXJtZW5pYW4AaW5tYXJjaGVuAGlubWFzYXJhbWdvbmRpAHFhYWMAcGMAaW5zY3JpcHRpb25hbHBhcnRoaWFuAGxhdG4AbGF0aW4AcmkAaW50aGFhbmEAaW5raG1lcnN5bWJvbHMAaW5rYXRha2FuYQBpbmN5cmlsbGljAGludGhhaQBpbmNoYW0AaW5rYWl0aGkAenMAbXRlaQBpbml0aWFscHVuY3R1YXRpb24AY3MAaW5zeXJpYWMAcGNtAGludGFrcmkAcHMAbWFuZABpbmthbmFleHRlbmRlZGEAbWVuZABtb2RpAGthdGFrYW5hAGlkZW8AcHJ0aQB5ZXppZGkAaW5pZGVvZ3JhcGhpY2Rlc2NyaXB0aW9uY2hhcmFjdGVycwB4aWRjb250aW51ZQBicmFpAGFzY2lpAHByaXZhdGV1c2UAYXJhYmljAGlubXlhbm1hcmV4dGVuZGVkYQBpbnJ1bWludW1lcmFsc3ltYm9scwBsZXR0ZXIAaW5uYW5kaW5hZ2FyaQBpbm1lZXRlaW1heWVrAGlub2xkbm9ydGhhcmFiaWFuAGluY2prY29tcGF0aWJpbGl0eWZvcm1zAGtuZGEAa2FubmFkYQBpbmNqa2NvbXBhdGliaWxpdHlpZGVvZ3JhcGhzAGwAaW5tb2RpAGluc3BlY2lhbHMAaW50cmFuc3BvcnRhbmRtYXBzeW1ib2xzAGlubWVuZGVraWtha3VpAGxldHRlcm51bWJlcgBpbm1lZGVmYWlkcmluAHhpZGMAaW5jaGVzc3N5bWJvbHMAaW5lbW90aWNvbnMAaW5saW5lYXJhAGlubGFvAGJyYWhtaQBpbm9sZGl0YWxpYwBpbm1pc2NlbGxhbmVvdXNtYXRoZW1hdGljYWxzeW1ib2xzYQBtb25nb2xpYW4AeGlkcwBwc2FsdGVycGFobGF2aQBncmxpbmsAa2l0cwBpbnN1bmRhbmVzZQBpbm9sZHNvZ2RpYW4AZ290aGljAGluYW5jaWVudHN5bWJvbHMAbWVyb2l0aWNjdXJzaXZlAGthbGkAY29udHJvbABwYXR0ZXJud2hpdGVzcGFjZQBpbmFkbGFtAHNrAGx0AGlubWFuZGFpYwBpbmNvbW1vbmluZGljbnVtYmVyZm9ybXMAaW5jamtjb21wYXRpYmlsaXR5aWRlb2dyYXBoc3N1cHBsZW1lbnQAc28AaWRjAGlub2xkc291dGhhcmFiaWFuAHBhbG0AaW5seWNpYW4AaW50b3RvAGlkc2JpbmFyeW9wZXJhdG9yAGlua2FuYXN1cHBsZW1lbnQAaW5jamtzdHJva2VzAHNvcmEAYmFtdW0AaW5vcHRpY2FsY2hhcmFjdGVycmVjb2duaXRpb24AaW5kb21pbm90aWxlcwBiYXRrAGdyZXh0AGJhdGFrAHBhdHdzAGlubWFsYXlhbGFtAGlubW9kaWZpZXJ0b25lbGV0dGVycwBpbnNtYWxsa2FuYWV4dGVuc2lvbgBiYXNzAGlkcwBwcmludABpbmxpbmVhcmJpZGVvZ3JhbXMAaW50YWl0aGFtAGlubXVzaWNhbHN5bWJvbHMAaW56bmFtZW5ueW11c2ljYWxub3RhdGlvbgBzYW1yAGluc3lsb3RpbmFncmkAaW5uZXdhAHNhbWFyaXRhbgBzAGpvaW5jAGluY29udHJvbHBpY3R1cmVzAGxpc3UAcGF1YwBpbm1pc2NlbGxhbmVvdXNzeW1ib2xzAGluYW5jaWVudGdyZWVrbXVzaWNhbG5vdGF0aW9uAGlubWlzY2VsbGFuZW91c3N5bWJvbHNhbmRhcnJvd3MAc20AaW5taXNjZWxsYW5lb3Vzc3ltYm9sc2FuZHBpY3RvZ3JhcGhzAGludWdhcml0aWMAcGQAaXRhbABhbG51bQB6aW5oAGlud2FyYW5nY2l0aQBpbmxhdGluZXh0ZW5kZWRhAGluc2F1cmFzaHRyYQBpbnRhaWxlAGlub2xkdHVya2ljAGlkY29udGludWUAaW5oYW5pZmlyb2hpbmd5YQBzYwBpZHN0AGlubGF0aW5leHRlbmRlZGUAbG93ZXIAYmFsaQBpbmhpcmFnYW5hAGluY2F1Y2FzaWFuYWxiYW5pYW4AaW5kZXNlcmV0AGJsYW5rAGluc3BhY2luZ21vZGlmaWVybGV0dGVycwBjaGVyb2tlZQBpbmx5ZGlhbgBwaG9lbmljaWFuAGNoZXIAYmVuZ2FsaQBtYXJjaGVuAGlud2FuY2hvAGdyYXBoZW1lbGluawBiYWxpbmVzZQBpZHN0YXJ0AGludGFtaWwAaW5tdWx0YW5pAGNoYW0AY2hha21hAGthaXRoaQBpbm1haGFqYW5pAGdyYXBoZW1lYmFzZQBpbm9naGFtAGNhc2VkAGlubWVldGVpbWF5ZWtleHRlbnNpb25zAGtob2praQBpbmFuY2llbnRncmVla251bWJlcnMAcnVucgBraGFyAG1hbmljaGFlYW4AbG93ZXJjYXNlAGNhbmFkaWFuYWJvcmlnaW5hbABpbm9sY2hpa2kAcGxyZABpbmV0aGlvcGljAHNpbmQAY3djbQBpbmVhcmx5ZHluYXN0aWNjdW5laWZvcm0AbGwAemwAaW5zaW5oYWxhAGlua2h1ZGF3YWRpAHhpZHN0YXJ0AHhkaWdpdABiaWRpYwBjaG9yYXNtaWFuAGluc2lkZGhhbQBpbmNvdW50aW5ncm9kbnVtZXJhbHMAYWhvbQBjaHJzAGtobXIAaW5vbGR1eWdodXIAaW5ncmFudGhhAGJhbXUAaW5zY3JpcHRpb25hbHBhaGxhdmkAZ29uZwBtb25nAGlubGF0aW5leHRlbmRlZGMAaW5uZXd0YWlsdWUAYWRsbQBpbm9zYWdlAGluZ2VuZXJhbHB1bmN0dWF0aW9uAGdlb3JnaWFuAGtoYXJvc2h0aGkAc2luaGFsYQBraG1lcgBzdGVybQBjYXNlZGxldHRlcgBtdWx0YW5pAGd1bmphbGFnb25kaQBtYXRoAGluY3lyaWxsaWNzdXBwbGVtZW50AGluZ2VvcmdpYW4AZ290aABpbmNoZXJva2Vlc3VwcGxlbWVudABnbGFnb2xpdGljAHF1b3RhdGlvbm1hcmsAdWlkZW8AaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmEAam9pbmNvbnRyb2wAcnVuaWMAaW5tb25nb2xpYW4AZW1vamkAaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmUAZ3JhbnRoYQBpbnRpcmh1dGEAaW5oYXRyYW4AYWRsYW0AbHUAaW5raGl0YW5zbWFsbHNjcmlwdABrdGhpAGluZ3VybXVraGkAc3VuZGFuZXNlAGlub2xkaHVuZ2FyaWFuAHRha3JpAGludGFtaWxzdXBwbGVtZW50AG9yaXlhAGludmFpAGJyYWgAaW5taXNjZWxsYW5lb3VzdGVjaG5pY2FsAHZhaQB2YWlpAHNhdXIAZ3VydQB0YWlsZQBpbmhlcml0ZWQAcGF1Y2luaGF1AHphbmIAcHVuY3QAbGluYgBndXJtdWtoaQB0YWtyAGlubmFiYXRhZWFuAGlua2FuYnVuAGxvZ2ljYWxvcmRlcmV4Y2VwdGlvbgBpbmJoYWlrc3VraQBpbmNqa3VuaWZpZWRpZGVvZ3JhcGhzZXh0ZW5zaW9uYwBncmFwaGVtZWV4dGVuZABpbmVsYmFzYW4AaW5zb3Jhc29tcGVuZwBoYW4AaGFuaQBsaW1idQB1bmFzc2lnbmVkAHJhZGljYWwAaGFubwBsb3dlcmNhc2VsZXR0ZXIAY250cmwAaW5jamt1bmlmaWVkaWRlb2dyYXBocwBsaW5lYXJiAGluYW5hdG9saWFuaGllcm9nbHlwaHMAaGFudW5vbwBpbmtob2praQBpbmxhdGluZXh0ZW5kZWRhZGRpdGlvbmFsAGluZW5jbG9zZWRhbHBoYW51bWVyaWNzAGFuYXRvbGlhbmhpZXJvZ2x5cGhzAG4AZW1vamltb2RpZmllcgBzZABoaXJhAHNpZGQAbGltYgBiaGtzAHBobGkAbmFuZGluYWdhcmkAbm8Ac2F1cmFzaHRyYQBpbnRhbmdzYQBjd3QAYmhhaWtzdWtpAGluZ3JlZWthbmRjb3B0aWMAbmtvAG5rb28AdGVybQBvc2FnZQB4cGVvAHRuc2EAdGFuZ3NhAGlua2F5YWhsaQBwAGlub3JpeWEAaW55ZXppZGkAaW5hcmFiaWMAaW5waG9lbmljaWFuAGluc2hhdmlhbgBiaWRpY29udHJvbABpbmVuY2xvc2VkaWRlb2dyYXBoaWNzdXBwbGVtZW50AHdhcmEAbXVsdABpbm1lcm9pdGljaGllcm9nbHlwaHMAc2luaABzaGF2aWFuAGlua2FuZ3hpcmFkaWNhbHMAZW5jbG9zaW5nbWFyawBhcmFiAGluc2luaGFsYWFyY2hhaWNudW1iZXJzAGJyYWlsbGUAaW5oYW51bm9vAG9zbWEAYmVuZwBpbmJhc2ljbGF0aW4AaW5hcmFiaWNwcmVzZW50YXRpb25mb3Jtc2EAY3BtbgByZWdpb25hbGluZGljYXRvcgBpbmVuY2xvc2VkYWxwaGFudW1lcmljc3VwcGxlbWVudABlbW9qaW1vZGlmaWVyYmFzZQBpbmdyZWVrZXh0ZW5kZWQAbGVwYwBpbmRvZ3JhAGZvcm1hdABseWNpAGx5Y2lhbgBkaWEAaW5waGFpc3Rvc2Rpc2MAZGkAZGlhawB1bmtub3duAGdyYmFzZQBteW1yAG15YW5tYXIAaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmQAZW1vZABpbmdlb21ldHJpY3NoYXBlcwBpbmN5cHJvbWlub2FuAGluc3VuZGFuZXNlc3VwcGxlbWVudAB0b3RvAGdsYWcAdGFpdmlldABhc2NpaWhleGRpZ2l0AG9kaQBwdW5jdHVhdGlvbgB2cwBzdW5kAGluc295b21ibwBpbmltcGVyaWFsYXJhbWFpYwBpbmJhdGFrAGlubGF0aW5leHRlbmRlZGQAaW5udXNodQBpbnRpYmV0YW4AaW5sb3dzdXJyb2dhdGVzAGhhdHJhbgBpbmJsb2NrZWxlbWVudHMAaW5zb2dkaWFuAGluZGluZ2JhdHMAaW5lbHltYWljAGluZGV2YW5hZ2FyaQBlbW9qaWNvbXBvbmVudABpbmthdGFrYW5hcGhvbmV0aWNleHRlbnNpb25zAGlkZW9ncmFwaGljAGNvcHRpYwBpbm51bWJlcmZvcm1zAGhhdHIAaW5jamtjb21wYXRpYmlsaXR5AGlua2FuYWV4dGVuZGVkYgBwYXR0ZXJuc3ludGF4AGF2ZXN0YW4AaW5hcmFiaWNleHRlbmRlZGEAc29nZGlhbgBzb2dvAGludGFuZ3V0AGNvcHQAZ3JhcGgAb2lkYwBpbmJ5emFudGluZW11c2ljYWxzeW1ib2xzAGluaW5zY3JpcHRpb25hbHBhcnRoaWFuAGRpYWNyaXRpYwBpbmluc2NyaXB0aW9uYWxwYWhsYXZpAGlubWF5YW5udW1lcmFscwBpbm15YW5tYXJleHRlbmRlZGIAaW50YWdzAGphdmEAY3BydABuYW5kAHBhdHN5bgB0YWxlAG9pZHMAc2VudGVuY2V0ZXJtaW5hbABpbXBlcmlhbGFyYW1haWMAdGVybWluYWxwdW5jdHVhdGlvbgBseWRpAGx5ZGlhbgBib3BvAGphdmFuZXNlAGN3bABpbmdlb21ldHJpY3NoYXBlc2V4dGVuZGVkAGlub2xkcGVyc2lhbgBpbm9ybmFtZW50YWxkaW5nYmF0cwBpbmJyYWlsbGVwYXR0ZXJucwBpbnZhcmlhdGlvbnNlbGVjdG9ycwBjYXNlaWdub3JhYmxlAGlueWlyYWRpY2FscwBpbm5vYmxvY2sAaW52ZXJ0aWNhbGZvcm1zAGluZXRoaW9waWNzdXBwbGVtZW50AHNoYXJhZGEAaW5iYWxpbmVzZQBpbnZlZGljZXh0ZW5zaW9ucwB3b3JkAGlubWlzY2VsbGFuZW91c21hdGhlbWF0aWNhbHN5bWJvbHNiAHRhbWwAb2xjawBpZHNiAG9sb3dlcgBkZWNpbWFsbnVtYmVyAGF2c3QAaW5jeXJpbGxpY2V4dGVuZGVkYQBvbGNoaWtpAHNocmQAaW50YWl4dWFuamluZ3N5bWJvbHMAaW50YWl2aWV0AHVnYXIAaW5jamtzeW1ib2xzYW5kcHVuY3R1YXRpb24AYm9wb21vZm8AaW5saXN1AGlub2xkcGVybWljAHNpZGRoYW0AemFuYWJhemFyc3F1YXJlAGFzc2lnbmVkAG1lZGYAY2xvc2VwdW5jdHVhdGlvbgBzYXJiAHNvcmFzb21wZW5nAGludmFyaWF0aW9uc2VsZWN0b3Jzc3VwcGxlbWVudABpbmhhbmd1bGphbW8AbWVkZWZhaWRyaW4AcGhhZwBpbmxpc3VzdXBwbGVtZW50AGluY29wdGljAGluc3lyaWFjc3VwcGxlbWVudABpbmhhbmd1bGphbW9leHRlbmRlZGEAY3lybABpbnNob3J0aGFuZGZvcm1hdGNvbnRyb2xzAGluY3lyaWxsaWNleHRlbmRlZGMAZ3VqcgBjd3UAZ3VqYXJhdGkAc3BhY2luZ21hcmsAYWxwaGEAbWx5bQBpbnBhbG15cmVuZQBtYWxheWFsYW0Ac3BhY2UAaW5sZXBjaGEAcGFsbXlyZW5lAHNveW8AbWVyb2l0aWNoaWVyb2dseXBocwB4c3V4AGludGVsdWd1AGluZGV2YW5hZ2FyaWV4dGVuZGVkAGlubWVyb2l0aWNjdXJzaXZlAGRzcnQAdGhhYQB0aGFhbmEAYnVnaQB0aGFpAHNvZ2QAdGl0bGVjYXNlbGV0dGVyAGlubWF0aGVtYXRpY2FsYWxwaGFudW1lcmljc3ltYm9scwBvcmtoAGNhdWNhc2lhbmFsYmFuaWFuAGluYmFtdW0AZGVzZXJldABpbmdlb3JnaWFuc3VwcGxlbWVudABidWdpbmVzZQBzZXBhcmF0b3IAaW5zbWFsbGZvcm12YXJpYW50cwB0aXJoAGluYnJhaG1pAG5kAHBobngAbmV3YQBpbmNvbWJpbmluZ2RpYWNyaXRpY2FsbWFya3MAbWFoagBpbmNvbWJpbmluZ2RpYWNyaXRpY2FsbWFya3Nmb3JzeW1ib2xzAG9sZHBlcnNpYW4AbWFoYWphbmkAdGFpdGhhbQBuZXd0YWlsdWUAbmV3bGluZQBzeXJjAGlubW9uZ29saWFuc3VwcGxlbWVudABpbnVuaWZpZWRjYW5hZGlhbmFib3JpZ2luYWxzeWxsYWJpY3NleHRlbmRlZGEAc2hhdwBidWhkAHZpdGhrdXFpAG51bWJlcgBpbnN1dHRvbnNpZ253cml0aW5nAHZhcmlhdGlvbnNlbGVjdG9yAGV0aGkAbGVwY2hhAHRpcmh1dGEAcm9oZwBhaGV4AGluY29wdGljZXBhY3RudW1iZXJzAHdhbmNobwBpbmNqa3VuaWZpZWRpZGVvZ3JhcGhzZXh0ZW5zaW9uZwBraG9qAGN1bmVpZm9ybQBpbmR1cGxveWFuAHVnYXJpdGljAGluc3ltYm9sc2FuZHBpY3RvZ3JhcGhzZXh0ZW5kZWRhAG9sZHBlcm1pYwBpbmNvbWJpbmluZ2RpYWNyaXRpY2FsbWFya3NzdXBwbGVtZW50AGtodWRhd2FkaQB0YW5nAHN5cmlhYwB0YWdiYW53YQBtb2RpZmllcmxldHRlcgBpbmN1cnJlbmN5c3ltYm9scwBpbm55aWFrZW5ncHVhY2h1ZWhtb25nAHRhbWlsAHRhbHUAaW5nb3RoaWMAaW51bmlmaWVkY2FuYWRpYW5hYm9yaWdpbmFsc3lsbGFiaWNzAHdjaG8AaW5jb21iaW5pbmdkaWFjcml0aWNhbG1hcmtzZXh0ZW5kZWQAb2dhbQB0ZWx1AGlkc3RyaW5hcnlvcGVyYXRvcgBpbmJlbmdhbGkAbmwAc3Vycm9nYXRlAGViYXNlAGhhbmcAaW5idWdpbmVzZQBtYXRoc3ltYm9sAGludml0aGt1cWkAdml0aABpbmNqa3JhZGljYWxzc3VwcGxlbWVudABpbmd1amFyYXRpAGluZ2xhZ29saXRpYwBpbmd1bmphbGFnb25kaQBwaGFnc3BhAGN3Y2YAbmNoYXIAb3RoZXJpZGNvbnRpbnVlAHdoaXRlc3BhY2UAaW5saW5lYXJic3lsbGFiYXJ5AHNnbncAb3RoZXIAaGlyYWdhbmEAaW5waGFnc3BhAG90aGVybnVtYmVyAGlucmVqYW5nAG9zZ2UAaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmIAaW50YWdhbG9nAGluYmFzc2F2YWgAdGFuZ3V0AGhtbmcAaW5lbmNsb3NlZGNqa2xldHRlcnNhbmRtb250aHMAY3VycmVuY3lzeW1ib2wAaW5saW1idQBpbmJ1aGlkAGluZXRoaW9waWNleHRlbmRlZGEAc3lsbwBkYXNoAHdhcmFuZ2NpdGkAb2FscGhhAG9sZGl0YWxpYwBpbm90dG9tYW5zaXlhcW51bWJlcnMAc3BhY2VzZXBhcmF0b3IAaW5sYXRpbjFzdXBwbGVtZW50AG90aGVyYWxwaGFiZXRpYwBjaGFuZ2Vzd2hlbmNhc2VtYXBwZWQAaW5hZWdlYW5udW1iZXJzAGludW5pZmllZGNhbmFkaWFuYWJvcmlnaW5hbHN5bGxhYmljc2V4dGVuZGVkAGJ1aGlkAGluamF2YW5lc2UAY3lyaWxsaWMAZG9ncmEAbm9uY2hhcmFjdGVyY29kZXBvaW50AGluaGFuZ3Vsc3lsbGFibGVzAGJhc3NhdmFoAGlubGV0dGVybGlrZXN5bWJvbHMAaW5jb21iaW5pbmdoYWxmbWFya3MAaW5hcmFiaWNtYXRoZW1hdGljYWxhbHBoYWJldGljc3ltYm9scwBvcnlhAGlucHJpdmF0ZXVzZWFyZWEAY2hhbmdlc3doZW50aXRsZWNhc2VkAGRvZ3IAaGVicgBpbnRhZ2JhbndhAGludGlmaW5hZ2gAaW5ib3BvbW9mbwBuYXJiAHJqbmcAaW5hbHBoYWJldGljcHJlc2VudGF0aW9uZm9ybXMAaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmYAaW5zeW1ib2xzZm9ybGVnYWN5Y29tcHV0aW5nAG9sZGh1bmdhcmlhbgBmaW5hbHB1bmN0dWF0aW9uAGlucGF1Y2luaGF1AGlucHNhbHRlcnBhaGxhdmkAenAAcGhscABpbmFyYWJpY3ByZXNlbnRhdGlvbmZvcm1zYgBub25zcGFjaW5nbWFyawBkZXZhAHRhdnQAaG1ucABkZXZhbmFnYXJpAGtoaXRhbnNtYWxsc2NyaXB0AGtheWFobGkAaW5iYW11bXN1cHBsZW1lbnQAc3lsb3RpbmFncmkAdGlidABlcHJlcwB0aWJldGFuAGVsYmEAb3NtYW55YQBpbmRpdmVzYWt1cnUAb2xkdHVya2ljAGNoYW5nZXN3aGVubG93ZXJjYXNlZABjeXByb21pbm9hbgBpbmV0aGlvcGljZXh0ZW5kZWQAZW1vamlwcmVzZW50YXRpb24AYW55AG90aGVybG93ZXJjYXNlAG91Z3IAaW5oZWJyZXcAc29mdGRvdHRlZABpbm1hdGhlbWF0aWNhbG9wZXJhdG9ycwBpbmFsY2hlbWljYWxzeW1ib2xzAGlubWFoam9uZ3RpbGVzAGhhbmd1bABleHQAb21hdGgAaW50YW5ndXRjb21wb25lbnRzAG90aGVybGV0dGVyAG5iYXQAbmFiYXRhZWFuAG5zaHUAcGFyYWdyYXBoc2VwYXJhdG9yAGluYXJhYmljZXh0ZW5kZWRiAGlubGF0aW5leHRlbmRlZGcAY2hhbmdlc3doZW51cHBlcmNhc2VkAGh1bmcAaW5wbGF5aW5nY2FyZHMAaW5hcmFiaWNzdXBwbGVtZW50AGlueWlqaW5naGV4YWdyYW1zeW1ib2xzAGlucGhvbmV0aWNleHRlbnNpb25zAG90aGVydXBwZXJjYXNlAG90aGVyaWRzdGFydABlbGJhc2FuAGVseW0AY2YAaW5pbmRpY3NpeWFxbnVtYmVycwBvdGhlcnN5bWJvbABleHRlbmRlcgBleHRwaWN0AHdzcGFjZQBwZgBlbHltYWljAGludGFuZ3V0c3VwcGxlbWVudABjeXByaW90AHN5bWJvbABpbmN5cmlsbGljZXh0ZW5kZWRiAGluc3VwZXJzY3JpcHRzYW5kc3Vic2NyaXB0cwBpbnlpc3lsbGFibGVzAGlucGhvbmV0aWNleHRlbnNpb25zc3VwcGxlbWVudABvbGRzb2dkaWFuAGluZ2VvcmdpYW5leHRlbmRlZABobHV3AGRpZ2l0AGluaGFuZ3VsamFtb2V4dGVuZGVkYgBpbmhpZ2hwcml2YXRldXNlc3Vycm9nYXRlcwBpbnBhaGF3aGhtb25nAG9naGFtAGluc3VwcGxlbWVudGFsYXJyb3dzYQBvdXBwZXIAYWdoYgBvdGhlcm1hdGgAbnVzaHUAc295b21ibwBpbmxhdGluZXh0ZW5kZWRiAGFscGhhYmV0aWMAaW5zdXBwbGVtZW50YWxhcnJvd3NjAGluc3VwcGxlbWVudGFsbWF0aGVtYXRpY2Fsb3BlcmF0b3JzAG90aGVyZGVmYXVsdGlnbm9yYWJsZWNvZGVwb2ludABkZXByZWNhdGVkAG9sZG5vcnRoYXJhYmlhbgBpbmN5cHJpb3RzeWxsYWJhcnkAZXh0ZW5kZWRwaWN0b2dyYXBoaWMAdW5pZmllZGlkZW9ncmFwaABwYWhhd2hobW9uZwBkaXZlc2FrdXJ1AHNpZ253cml0aW5nAHRhZ2IAdGlmaW5hZ2gAdXBwZXIAaW5oYWxmd2lkdGhhbmRmdWxsd2lkdGhmb3JtcwB1cHBlcmNhc2UAZXRoaW9waWMAbW9kaWZpZXJzeW1ib2wAb3RoZXJwdW5jdHVhdGlvbgByZWphbmcAaW5ldGhpb3BpY2V4dGVuZGVkYgB0Zm5nAGhleABpbnN1cHBsZW1lbnRhbHB1bmN0dWF0aW9uAHRnbGcAaW5sYXRpbmV4dGVuZGVkZgB0YWdhbG9nAGhhbmlmaXJvaGluZ3lhAGVjb21wAGluZ2xhZ29saXRpY3N1cHBsZW1lbnQAaGV4ZGlnaXQAY2hhbmdlc3doZW5jYXNlZm9sZGVkAGRhc2hwdW5jdHVhdGlvbgBvbGRzb3V0aGFyYWJpYW4AZHVwbABpbmVneXB0aWFuaGllcm9nbHlwaHMAdGVsdWd1AHVwcGVyY2FzZWxldHRlcgBpbmVneXB0aWFuaGllcm9nbHlwaGZvcm1hdGNvbnRyb2xzAGh5cGhlbgBoZWJyZXcAaW5oaWdoc3Vycm9nYXRlcwB6eXl5AG9ncmV4dABvdGhlcmdyYXBoZW1lZXh0ZW5kAGRlcABpbnN1cHBsZW1lbnRhbGFycm93c2IAZGVmYXVsdGlnbm9yYWJsZWNvZGVwb2ludABpbmhhbmd1bGNvbXBhdGliaWxpdHlqYW1vAG9sZHV5Z2h1cgBpbnN1cHBsZW1lbnRhcnlwcml2YXRldXNlYXJlYWEAaW5ib3BvbW9mb2V4dGVuZGVkAGluc3VwcGxlbWVudGFsc3ltYm9sc2FuZHBpY3RvZ3JhcGhzAG55aWFrZW5ncHVhY2h1ZWhtb25nAG9wZW5wdW5jdHVhdGlvbgBlZ3lwAGR1cGxveWFuAGluYm94ZHJhd2luZwBlZ3lwdGlhbmhpZXJvZ2x5cGhzAGluc3VwcGxlbWVudGFyeXByaXZhdGV1c2VhcmVhYgAAACEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRgAADoFiACQARMAOQZfBGADBwBhBQgAEAJnAAMAEACWBeYEOAC1AEYBfQINBRoDIQWpBQoABAAHACEYIRghGCEYAAA6BYgAkAETADkGXwRgAwcAYQUIABACZwADABAAlgXmBDgAtQBGAX0CDQUaAyEFqQUKAAQABwAhGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGCEYIRghGABBkN8PC8UECQAHAAQAwwCSAAEAMAGcB5wHnAecB5wHnAcLAJwHnAecB00AnAecB0kAnAecB5wHnAdSAJwHnAecBwgAnAcCAAMAnAdPAEwCLwYUASgGRgIlBj4CcAY4AiAGAAAYBjICDgYpAgQGlgNtBpAD/wUPAvwFAQLCBSMC7gUYAucF+AHUBSEDTAbpAn8FkgJqBosCZwZcAj0GgQJiBlQC3gV7AlsGbQJTBoUEGgKqBBIC1wV8AZMFUwDNBYoDIgXbAYkBgQCFBZwDnwWzBUsFBwWVBDgEbgReAUQDJwXuAUMGGAAjBLoC3AWwA8cFoAObBYMD2gRaAxcARwUbAT8FuAG7BS8BtwXVAKIEzQCLBPMAeAS/ADoFyABnBP4DYgRNA0cEpQEzBMIALASjASMEzwCyBSQB4gQ/AKwFmgRDBmUCPwMBANQCMgWqATEFngEgBRAABQBbARcE5gEGAI8BowXaAbMBhAFwAiEA8AI3ARgFJQERBdwAxQLKAA0FeQEEBVAB+gTQAe8EWwAPBHkACwRRAAIERwAxA6QA2gKaAL0CbwCUAWUA9wOHAK8CMwChAnAB8QMKAWACPgDbA/4A8AP2AOMEuADfBJoC9QTIAdUEvwHtA+YDHAHZA9gEugPOBMIEuARgBcQErwDxBSwDkgAFA/kC0AOPAMgDYwEGAigAmQWDAH8E+wDuAJwHdwNpAJAFnAeMBV8AgQVLAHkFwQBvBRcAQQScB8MDVAB1BQ4AaAU1AD8G5QA3BgQBYgUtADAGIwEYAz8AQeDjDwuGBAQAAgAPAHwAAQAJACUFoAMdBYwDGgX4AFsA9QDFBdgAYwCrAMIFGgAVBXUD9QQ7A5AApwDBBXoAvQXpAgAAGwCxBSAApwXDAYMAmwELAwMAAAPPAJ0CzwEFAF8ABgTGAPsClQD7A6MF8wOgBT8CXwXzAiQA6AI3BBMFmAUIBUoElASPBY0D6AMsAtQCIQHCAMkChwW8AlQFrwLZBRgCswUQAnIC/QGTA+YBYwOvAcIClgJoAMYBMgOCAk4A4APPAAAFZgDuBLUCQQDlACoBjwAtAOIEnAF8BZIBZwUZAGAEeAIrAmYCWAVRAR0ARwFOBUkC2wTbAUgF8gBnA74D2gAHAywCxQQjA1UEpwDJA/AA0QSuAEkFggCeBXcArgQGANIFBwDIBU0HPAVfAD0BAAA5BU0HuwNCAKIAsgATATkAhQIMAaMCcwGzAx0AEQAGAKkDWgHDBJAEuwR7ACoFVgRgA8MDhwTkAioDZQJnBLUFhAOYAVcDWAJcAtMATAO4AEkDuQBBA7oBNgN8BSMDDgVTBFAELARCBB8DCwEqBCcEZgHXASYE7QECAR8EVAIZBDcC1AOsAB4DmwAaA+cAFgOIAAgETAATA1UAIQR8ABsEdACnAcoAGgS8ABwFigEYBH0B8QN3AbME3ALkA24BqAG5AVkBOgAyARIEfAMkAiMA6AT5AIIBAEHw5w8L9aEBOjk4NzY1NBAyOw87GTs7Ozs7OwM7Ozs7Ozs7Ozs7OzsxMC8uLSwrKjs7Ozs7Ozs7OxU7Ozs7Ozs7Ozs7Ozs7Ozs7Ajs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7KBQnJiUOBSQUBxkiHSAQOx87OwIBOxkPOw47Oxw7Ajs7Ows7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Oxg7Fjs7Czs7Ozs7BzsAOzsQOwE7OxA7OzsPOzs7Bjs7OzsAOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OwYDDg4ODg4OAQ4ODg4ODg4ODg4ADg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgAODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgQODgUODgQODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgoODg4ODgkOAQ4ODg4ODg4ODg4OAA4ODggODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg44ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OAADChk4OB4AODgAFDg4OA84OBQ4HjgAADg4ODg4ODg4Dzg4ODg4GTgKODg4OAU4ADgAOAU4OBQ4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgAAwoZODgeADg4ABQ4ODgPODgUOB44AAA4ODg4ODg4OA84ODg4OBk4Cjg4ODgFOAA4ADgFODgUODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v////////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAACgQBAIkNAQAKLAAALgoBAAoEAAAFBAEACh4AAFoHAQAKHwAAwwgBAAoBAAC6AAEAfQEAAF8BAQB9pwAAQgcBAH2rAABnBgEAhR8AAJoAAgCJHwAAhgACAIkBAABrAgEAhasAAH8GAQCJqwAAiwYBAIUcAAC6AwEAhQwBAMcOAQCJDAEA0w4BAIQsAAC+CgEA8x8AAGAAAgCEHgAAEggBAIQfAACVAAIAhAEAAGgBAQCEpwAAwAwBAISrAAB8BgEA7SwAAFELAQCEHAAAugMBAIQMAQDEDgEATB4AAL0HAQBMHwAAIwkBAEwBAAAXAQEATKcAAHsMAQBXAAAAQQABAEwAAAAfAAEAhKYAABsMAQCQLAAA0AoBAJAEAABUBAEAkB4AACQIAQCQHwAAqQACAJABAAB0AgEAkKcAAMkMAQCQqwAAoAYBAEymAADiCwEAkBwAALYFAQCQDAEA6A4BANsfAABiCQEA2wEAAMIBAQBXbgEA9g8BAExuAQDVDwEA2wAAAJwAAQD7HwAAdAkBAJCmAAAtDAEAsgQBAOkNAQCyLAAAAwsBALIEAACHBAEAsh4AAEgIAQCyHwAA+QACALIBAAC8AgEAsqcAAMUCAQCyqwAABgcBAPWnAAAXDQEAshwAABwGAQCyDAEATg8BALgEAQD7DQEAuCwAAAwLAQC4BAAAkAQBALgeAABRCAEAuB8AAHcJAQC4AQAAmAEBALinAAD2DAEAuKsAABgHAQB3qwAAVQYBALgcAAAuBgEApiwAAPEKAQCmBAAAdQQBAKYeAAA2CAEAph8AAO8AAgCmAQAApwIBAKanAADqDAEApqsAAOIGAQDpHwAAhgkBAKYcAAD4BQEApgwBACoPAQCkLAAA7goBAKQEAAByBAEApB4AADMIAQCkHwAA5QACAKQBAACGAQEApKcAAOcMAQCkqwAA3AYBAPEBAADjAQEApBwAAPIFAQCkDAEAJA8BAKAsAADoCgEAoAQAAGwEAQCgHgAALQgBAKAfAADRAAIAoAEAAIABAQCgpwAA4QwBAKCrAADQBgEA5x8AAC8AAwCgHAAA5gUBAKAMAQAYDwEAriwAAP0KAQCuBAAAgQQBAK4eAABCCAEArh8AAO8AAgCuAQAAswIBAK6nAACPAgEArqsAAPoGAQDjHwAAKQADAK4cAAAQBgEArgwBAEIPAQCsLAAA+goBAKwEAAB+BAEArB4AAD8IAQCsHwAA5QACAKwBAACMAQEArKcAAH0CAQCsqwAA9AYBAPsTAAA5BwEArBwAAAoGAQCsDAEAPA8BAKIsAADrCgEAogQAAG8EAQCiHgAAMAgBAKIfAADbAAIAogEAAIMBAQCipwAA5AwBAKKrAADWBgEAshAAAI0LAQCiHAAA7AUBAKIMAQAeDwEAshgBAIcPAQA9HwAADgkBAD0BAAACAQEAsAQBAOMNAQCwLAAAAAsBALAEAACEBAEAsB4AAEUIAQDdAAAAogABALgQAACfCwEAsKcAAMgCAQCwqwAAAAcBALgYAQCZDwEAsBwAABYGAQCwDAEASA8BANMEAQBMDgEA1x8AAB8AAwDXAQAAvAEBAKYQAABpCwEA0x8AABkAAwDTAQAAtgEBAKYYAQBjDwEAiQMAAOMCAQDTAAAAhwABAKosAAD3CgEAqgQAAHsEAQCqHgAAPAgBAKofAADbAAIApBAAAGMLAQCqpwAAhgIBAKqrAADuBgEApBgBAF0PAQCqHAAABAYBAKoMAQA2DwEAqCwAAPQKAQCoBAAAeAQBAKgeAAA5CAEAqB8AANEAAgCgEAAAVwsBAKinAADtDAEAqKsAAOgGAQCgGAEAUQ8BAKgcAAD+BQEAqAwBADAPAQDQBAEAQw4BANAsAAAwCwEA0AQAALQEAQDQHgAAdQgBAK4QAACBCwEAkAMAABkAAwDQpwAADg0BAK4YAQB7DwEA0AAAAH4AAQC+BAEADQ4BAL4sAAAVCwEAvgQAAJkEAQC+HgAAWggBAL4fAAAFAwEArBAAAHsLAQC+pwAA/wwBAL6rAAAqBwEArBgBAHUPAQC+HAAAOgYBAOssAABOCwEAbywAAFwCAQAKAgAABQIBAOsfAABuCQEAbx8AAEoJAQCiEAAAXQsBAPUDAAD2AgEAZywAAKkKAQCiGAEAVw8BAJgsAADcCgEAmAQAAGAEAQCYHgAAJgACAJgfAACpAAIAmAEAAHcBAQCYpwAA1QwBAJirAAC4BgEA/wMAANoCAQCYHAAAzgUBAJgMAQAADwEAsBAAAIcLAQBzqwAASQYBADf/AABfDQEAsBgBAIEPAQBfHwAAMgkBAKYDAAAwAwEAmKYAADkMAQBMAgAAVgIBAJYsAADZCgEAlgQAAF0EAQCWHgAAEAACAJYfAADHAAIAlgEAAIwCAQCWpwAA0gwBAJarAACyBgEApAMAACoDAQCWHAAAyAUBAJYMAQD6DgEA8QMAACIDAQCqEAAAdQsBAPcfAABDAAMA9wEAAJ4BAQCqGAEAbw8BAF9uAQAOEAEAlqYAADYMAQCgAwAAHgMBAOAsAABICwEA4AQAAMwEAQDgHgAAjQgBAKgQAABvCwEA4AEAAMsBAQBjLAAARQcBAKgYAQBpDwEAvAQBAAcOAQC8LAAAEgsBALwEAACWBAEAvB4AAFcIAQC8HwAAPgACALwBAACbAQEAvKcAAPwMAQC8qwAAJAcBALoEAQABDgEAuiwAAA8LAQC6BAAAkwQBALoeAABUCAEAuh8AAE0JAQDfAAAAGAACALqnAAD5DAEAuqsAAB4HAQC+EAAAsQsBALocAAA0BgEA+R8AAGgJAQC+GAEAqw8BALYEAQD1DQEAtiwAAAkLAQC2BAAAjQQBALYeAABOCAEAth8AADoAAgBlIQAAngkBALanAADzDAEAtqsAABIHAQBvIQAAvAkBALYcAAAoBgEAAgQBAHENAQACLAAAFgoBAAIEAADtAwEAAh4AAE4HAQBnIQAApAkBAAIBAACuAAEAsAMAACkAAwAK6QEALxABAMcEAQAoDgEAYSEAAJIJAQDHBAAApQQBAFkfAAApCQEAxx8AAA8AAwDHAQAApQEBAMenAAAIDQEAWQAAAEcAAQDHAAAAYwABAHUsAAC1CgEAlCwAANYKAQCUBAAAWgQBAJQeAAAqCAEAlB8AAL0AAgCUAQAAgAIBAHWrAABPBgEAlKsAAKwGAQCqAwAAPgMBAJQcAADCBQEAlAwBAPQOAQB9BQEAcw4BAAoFAAALBQEAWW4BAPwPAQBdHwAALwkBAIUFAQCLDgEAiQUBAJcOAQCUpgAAMwwBAKgDAAA3AwEAkiwAANMKAQCSBAAAVwQBAJIeAAAnCAEAkh8AALMAAgD///////8AAJKnAADMDAEAkqsAAKYGAQCEBQEAiA4BAJIcAAC8BQEAkgwBAO4OAQDQAwAA7AIBAGMhAACYCQEAvBAAAKsLAQA9AgAAegEBAF1uAQAIEAEAvBgBAKUPAQCSpgAAMAwBAEwFAACVBQEA////////AAD///////8AALoQAAClCwEA////////AAD5EwAAMwcBALoYAQCfDwEAkAUBAKkOAQCcLAAA4goBAJwEAABmBAEAuCQAAMgJAQCcHwAAvQACAJwBAACYAgEAnKcAANsMAQCcqwAAxAYBALYQAACZCwEAnBwAANoFAQCcDAEADA8BALYYAQCTDwEAhiwAAMEKAQCYAwAAAAMBAIYeAAAVCAEAhh8AAJ8AAgCGAQAAaAIBAIanAADDDAEAhqsAAIIGAQBHAQAAEQEBAIYcAADUAwEAhgwBAMoOAQBHAAAAEgABANkfAACACQEA2QEAAL8BAQD///////8AAMcQAADJCwEA2QAAAJYAAQCGpgAAHgwBAP0TAAA/BwEAdwUBAGQOAQCWAwAA+gIBALQEAQDvDQEAtCwAAAYLAQC0BAAAigQBALQeAABLCAEAtB8AADIAAgBHbgEAxg8BALSnAADwDAEAtKsAAAwHAQD3AwAAegMBALQcAAAiBgEAmiwAAN8KAQCaBAAAYwQBAJoeAAAAAAIAmh8AALMAAgD///////8AAJqnAADYDAEAmqsAAL4GAQDgAwAAXAMBAJocAADUBQEAmgwBAAYPAQA3BQAAVgUBAI4sAADNCgEAjgQAAFEEAQCOHgAAIQgBAI4fAACfAAIAjgEAAMUBAQCapgAAPAwBAI6rAACaBgEAPB4AAKUHAQA8HwAACwkBAI4MAQDiDgEAPKcAAGMMAQCKLAAAxwoBAIoEAABLBAEAih4AABsIAQCKHwAAiwACAIoBAABuAgEAjqYAACoMAQCKqwAAjgYBAPkDAAB0AwEArR8AAOoAAgCKDAEA1g4BAK2nAACVAgEArasAAPcGAQD///////8AAK0cAAANBgEArQwBAD8PAQCCLAAAuwoBAIqmAAAkDAEAgh4AAA8IAQCCHwAAiwACAIIBAABlAQEAgqcAAL0MAQCCqwAAdgYBAG0sAABfAgEAghwAAKwDAQCCDAEAvg4BAG0fAABECQEAcasAAEMGAQCALAAAuAoBAIAEAABIBAEAgB4AAAwIAQCAHwAAgQACAIKmAAAYDAEAgKcAALoMAQCAqwAAcAYBAD0FAABoBQEAgBwAAIYDAQCADAEAuA4BAP///////wAA/QMAANQCAQCNHwAAmgACAJQDAADzAgEAjacAAIMCAQCNqwAAlwYBAICmAAAVDAEAWx8AACwJAQCNDAEA3w4BALQQAACTCwEAxAQBAB8OAQDELAAAHgsBALQYAQCNDwEAxB4AAGMIAQDEHwAANgACAMQBAAChAQEAxKcAAM8MAQD///////8AAMQAAABZAAEAwgQBABkOAQDCLAAAGwsBAJIDAADsAgEAwh4AAGAIAQDCHwAA/QACAL4kAADaCQEAwqcAAAUNAQBbbgEAAhABAMIAAABTAAEAniwAAOUKAQCeBAAAaQQBAJ4eAAAYAAIAnh8AAMcAAgD///////8AAJ6nAADeDAEAnqsAAMoGAQACAgAA+QEBAJ4cAADgBQEAngwBABIPAQCMLAAAygoBAIwEAABOBAEAjB4AAB4IAQCMHwAAlQACADsfAAAICQEAOwEAAP8AAQCMqwAAlAYBAK0QAAB+CwEAnAMAABEDAQCMDAEA3A4BAK0YAQB4DwEA////////AACILAAAxAoBAP///////wAAiB4AABgIAQCIHwAAgQACAIymAAAnDAEA////////AACIqwAAiAYBAIYDAADdAgEAiBwAAN4LAQCIDAEA0A4BAEoeAAC6BwEASh8AAB0JAQBKAQAAFAEBAEqnAAB4DAEAbSEAALYJAQBKAAAAGAABAIimAAAhDAEAHAQBAL8NAQAcLAAAZAoBABwEAACmAwEAHB4AAHUHAQAcHwAA4QgBABwBAADVAAEAcwUBAFgOAQBKpgAA3gsBADX/AABZDQEAFgQBAK0NAQAWLAAAUgoBABYEAACUAwEAFh4AAGwHAQBKbgEAzw8BABYBAADMAAEA2iwAAD8LAQDaBAAAwwQBANoeAACECAEA2h8AAF8JAQC8JAAA1AkBAJoDAAAKAwEAxBAAAMMLAQDaAAAAmQABABQEAQCnDQEAFCwAAEwKAQAUBAAAjQMBABQeAABpBwEAuiQAAM4JAQAUAQAAyQABAP///////wAAwhAAAL0LAQCOAwAARwMBABoEAQC5DQEAGiwAAF4KAQAaBAAAoAMBABoeAAByBwEAGh8AANsIAQAaAQAA0gABAP///////wAAtiQAAMIJAQD///////8AAP///////wAAigMAAOYCAQAYBAEAsw0BABgsAABYCgEAGAQAAJoDAQAYHgAAbwcBABgfAADVCAEAGAEAAM8AAQAOBAEAlQ0BAA4sAAA6CgEADgQAABEEAQAOHgAAYAcBAA4fAADPCAEADgEAAMAAAQAC6QEAFxABAP///////wAAxyQAAPUJAQAMBAEAjw0BAAwsAAA0CgEADAQAAAsEAQAMHgAAXQcBAAwfAADJCAEADAEAAL0AAQAIBAEAgw0BAAgsAAAoCgEACAQAAP8DAQAIHgAAVwcBAAgfAAC9CAEACAEAALcAAQAGBAEAfQ0BAAYsAAAiCgEABgQAAPkDAQAGHgAAVAcBAP///////wAABgEAALQAAQD///////8AAAIFAAD/BAEABAQBAHcNAQAELAAAHAoBAAQEAADzAwEABB4AAFEHAQD///////8AAAQBAACxAAEAAAQBAGsNAQAALAAAEAoBAAAEAADnAwEAAB4AAEsHAQD///////8AAAABAACrAAEA////////AAB1BQEAXg4BAJQFAQCyDgEAKiwAAI4KAQAqBAAA1AMBACoeAACKBwEAKh8AAO0IAQAqAQAA6gABACqnAABLDAEAwgMAACYDAQAmBAEA3Q0BACYsAACCCgEAJgQAAMgDAQAmHgAAhAcBALcEAQD4DQEAJgEAAOQAAQAmpwAARQwBAJ4DAAAYAwEAtx8AAAoAAwC3AQAAwgIBAJIFAQCvDgEAt6sAABUHAQD///////8AALccAAArBgEAewEAAFwBAQB7pwAAtAwBAHurAABhBgEAjAMAAEQDAQAuLAAAmgoBAC4EAADhAwEALh4AAJAHAQAuHwAA+QgBAC4BAADwAAEALqcAAFEMAQCPHwAApAACAI8BAABxAgEA////////AACPqwAAnQYBAAL7AAAMAAIAiAMAAOACAQCPDAEA5Q4BAP///////wAALCwAAJQKAQAsBAAA2wMBACweAACNBwEALB8AAPMIAQAsAQAA7QABACynAABODAEAKCwAAIgKAQAoBAAAzgMBACgeAACHBwEAKB8AAOcIAQAoAQAA5wABACinAABIDAEA////////AAD///////8AAIYFAQCODgEAJAQBANcNAQAkLAAAfAoBACQEAADCAwEAJB4AAIEHAQBHBQAAhgUBACQBAADhAAEAJKcAAEIMAQAiBAEA0Q0BACIsAAB2CgEAIgQAALoDAQAiHgAAfgcBADP/AABTDQEAIgEAAN4AAQAipwAAPwwBANoDAABTAwEAwAQBABMOAQDALAAAGAsBAMAEAACxBAEAwB4AAF0IAQAx/wAATQ0BADsCAABBAgEAwKcAAAINAQCzBAEA7A0BAMAAAABNAAEA////////AAAqIQAAGwABALMfAAA+AAIAswEAAJIBAQCzpwAAGg0BALOrAAAJBwEA////////AACzHAAAHwYBAP///////wAAJiEAADoDAQA1BQAAUAUBALcQAACcCwEAsQQBAOYNAQD///////8AALcYAQCWDwEASgIAAFMCAQCOBQEAow4BALEBAAC5AgEAsacAALACAQCxqwAAAwcBAP///////wAAsRwAABkGAQCxDAEASw8BADwFAABlBQEA////////AAAcAgAAIAIBAE4eAADABwEAigUBAJoOAQBOAQAAGgEBAE6nAAB+DAEAqx8AAOAAAgBOAAAAJQABAKunAAB3AgEAq6sAAPEGAQAWAgAAFwIBAKscAAAHBgEAqwwBADkPAQCXHgAAIgACAJcfAADMAAIAlwEAAIkCAQBOpgAA5QsBAJerAAC1BgEAggUBAIIOAQCXHAAAywUBAJcMAQD9DgEA////////AABObgEA2w8BAHEFAQBSDgEAFAIAABQCAQDEJAAA7AkBAH4sAABEAgEAfgQAAEUEAQB+HgAACQgBACr/AAA4DQEAgAUBAHwOAQB+pwAAtwwBAH6rAABqBgEAGgIAAB0CAQDCJAAA5gkBAKkfAADWAAIAqQEAAK0CAQAm/wAALA0BAKmrAADrBgEAjQUBAKAOAQCpHAAAAQYBAKkMAQAzDwEA////////AAD///////8AABgCAAAaAgEAwBAAALcLAQAgBAEAyw0BACAsAABwCgEAIAQAALMDAQAgHgAAewcBAA4CAAALAgEAIAEAANsAAQCzEAAAkAsBAP///////wAALv8AAEQNAQCzGAEAig8BAP///////wAAkR8AAK4AAgCRAQAAcQEBAAwCAAAIAgEAkasAAKMGAQD///////8AAJEcAAC5BQEAkQwBAOsOAQD///////8AAAgCAAACAgEAsRAAAIoLAQDVAQAAuQEBACz/AAA+DQEAsRgBAIQPAQDVAAAAjQABAAYCAAD/AQEAjwMAAEoDAQD///////8AACj/AAAyDQEA1CwAADYLAQDUBAAAugQBANQeAAB7CAEAjAUBAJ0OAQAEAgAA/AEBAKsQAAB4CwEAOwUAAGIFAQDUAAAAigABAKsYAQByDwEAJP8AACYNAQAAAgAA9gEBAP///////wAA////////AAAc6QEAZRABAP///////wAAiAUBAJQOAQAi/wAAIA0BAP///////wAAKgIAADICAQD///////8AAP4EAAD5BAEA/h4AALoIAQAW6QEAUxABAP4BAADzAQEA////////AABKBQAAjwUBACYCAAAsAgEAHgQBAMUNAQAeLAAAagoBAB4EAACsAwEAHh4AAHgHAQD///////8AAB4BAADYAAEA////////AACpEAAAcgsBABwFAAAmBQEAFOkBAE0QAQCpGAEAbA8BANIEAQBJDgEA0iwAADMLAQDSBAAAtwQBANIeAAB4CAEA0h8AABQAAwAuAgAAOAIBABYFAAAdBQEAGukBAF8QAQDSAAAAhAABAKcfAAD0AAIApwEAAIkBAQD///////8AAKerAADlBgEA////////AACnHAAA+wUBAKcMAQAtDwEA////////AAD///////8AABjpAQBZEAEALAIAADUCAQAUBQAAGgUBAHwEAABCBAEAfB4AAAYIAQAzBQAASgUBAA7pAQA7EAEAKAIAAC8CAQB8qwAAZAYBAEgeAAC3BwEASB8AABcJAQAaBQAAIwUBAEinAAB1DAEAMQUAAEQFAQBIAAAAFQABAAzpAQA1EAEAaywAAK8KAQAkAgAAKQIBAKsDAABBAwEAax8AAD4JAQD///////8AAAjpAQApEAEAGAUAACAFAQBIpgAA2wsBACICAAAmAgEA////////AACXAwAA/QIBAAbpAQAjEAEADgUAABEFAQBIbgEAyQ8BAP///////wAAVh4AAMwHAQBWHwAAPgADAFYBAAAmAQEAVqcAAIoMAQAE6QEAHRABAFYAAAA+AAEADAUAAA4FAQD///////8AABb7AAB9AAIA////////AAAA6QEAERABAP///////wAACAUAAAgFAQD///////8AAFamAADxCwEA////////AACpAwAAOgMBAP///////wAABgUAAAUFAQD///////8AAFZuAQDzDwEA////////AAAU+wAAbQACAP///////wAAtyQAAMUJAQD///////8AAAQFAAACBQEA4iwAAEsLAQDiBAAAzwQBAOIeAACQCAEA4h8AACQAAwDiAQAAzgEBAAAFAAD8BAEATgIAAFkCAQCnEAAAbAsBAP///////wAA////////AACnGAEAZg8BAJEDAADpAgEA////////AAAqBQAAOwUBAFQeAADJBwEAVB8AADkAAwBUAQAAIwEBAFSnAACHDAEA////////AABUAAAAOAABANUDAAAwAwEAJgUAADUFAQA5HwAAAgkBADkBAAD8AAEAEgQBAKENAQASLAAARgoBABIEAACGAwEAEh4AAGYHAQBUpgAA7gsBABIBAADGAAEAEAQBAJsNAQAQLAAAQAoBABAEAACAAwEAEB4AAGMHAQBUbgEA7Q8BABABAADDAAEA////////AABrIQAAsAkBAC4FAABBBQEAjwUBAKYOAQA/HwAAFAkBAD8BAAAFAQEABvsAAB0AAgBSHgAAxgcBAFIfAAA0AAMAUgEAACABAQBSpwAAhAwBAP///////wAAUgAAADEAAQD///////8AAAT7AAAFAAMA/gMAANcCAQAsBQAAPgUBACACAAB9AQEA////////AADAJAAA4AkBAAD7AAAEAAIAUqYAAOsLAQAoBQAAOAUBAFAeAADDBwEAUB8AAFQAAgBQAQAAHQEBAFCnAACBDAEAUm4BAOcPAQBQAAAAKwABAP///////wAAygQBADEOAQDKLAAAJwsBACQFAAAyBQEAyh4AAGwIAQDKHwAAWQkBAMoBAACpAQEA////////AABQpgAA6AsBAMoAAABsAAEAIgUAAC8FAQCnAwAANAMBAPAEAADkBAEA8B4AAKUIAQBQbgEA4Q8BAPABAAAUAAIA2CwAADwLAQDYBAAAwAQBANgeAACBCAEA2B8AAH0JAQD///////8AANinAAAUDQEA////////AADYAAAAkwABANYsAAA5CwEA1gQAAL0EAQDWHgAAfggBANYfAABMAAIA////////AADWpwAAEQ0BAP///////wAA1gAAAJAAAQDIBAEAKw4BAMgsAAAkCwEAuQQBAP4NAQDIHgAAaQgBAMgfAABTCQEAyAEAAKUBAQC5HwAAegkBAP///////wAAyAAAAGYAAQC5qwAAGwcBAP///////wAAuRwAADEGAQAeAgAAIwIBAMYEAQAlDgEAxiwAACELAQD///////8AAMYeAABmCAEAxh8AAEMAAgBOBQAAmwUBAManAABIBwEAxQQBACIOAQDGAAAAYAABAMUEAACiBAEAuwQBAAQOAQC1BAEA8g0BAMUBAAChAQEAxacAAKoCAQC7HwAAUAkBAMUAAABcAAEAtQEAAJUBAQC7qwAAIQcBALWrAAAPBwEAtQAAABEDAQC1HAAAJQYBAK8fAAD0AAIArwEAAI8BAQD///////8AAK+rAAD9BgEAaSwAAKwKAQCvHAAAEwYBAK8MAQBFDwEAaR8AADgJAQB+BQEAdg4BACDpAQBxEAEA////////AAClHwAA6gACAP///////wAASAIAAFACAQClqwAA3wYBAOIDAABfAwEApRwAAPUFAQClDAEAJw8BAP///////wAAOf8AAGUNAQCjHwAA4AACAP///////wAA////////AACjqwAA2QYBAKEfAADWAAIAoxwAAO8FAQCjDAEAIQ8BAKGrAADTBgEA////////AAChHAAA6QUBAKEMAQAbDwEAIAUAACwFAQCHHwAApAACAIcBAABrAQEA////////AACHqwAAhQYBAJEFAQCsDgEAhxwAABoEAQCHDAEAzQ4BAP///////wAA////////AAByLAAAsgoBAHIEAAAzBAEAch4AAPcHAQBNHwAAJgkBAHIBAABQAQEAuRAAAKILAQByqwAARgYBAE0AAAAiAAEAuRgBAJwPAQBwLAAAYgIBAHAEAAAwBAEAcB4AAPQHAQD///////8AAHABAABNAQEA////////AABwqwAAQAYBAG4sAACbAgEAbgQAAC0EAQBuHgAA8QcBAG4fAABHCQEAbgEAAEoBAQBupwAArgwBAE1uAQDYDwEAxRAAAMYLAQAe6QEAaxABAEUBAAAOAQEAuxAAAKgLAQC1EAAAlgsBAEUAAAAMAAEAuxgBAKIPAQC1GAEAkA8BAO4EAADhBAEA7h4AAKIIAQCvEAAAhAsBAO4BAADgAQEA////////AACvGAEAfg8BAGwEAAAqBAEAbB4AAO4HAQBsHwAAQQkBAGwBAABHAQEAbKcAAKsMAQBpIQAAqgkBAEVuAQDADwEApRAAAGYLAQD///////8AAB4FAAApBQEApRgBAGAPAQASAgAAEQIBAP///////wAA8AMAAAoDAQD///////8AAGymAAASDAEAoxAAAGALAQAQAgAADgIBANgDAABQAwEAoxgBAFoPAQChEAAAWgsBAP///////wAA////////AAChGAEAVA8BAP///////wAA////////AADWAwAAHgMBAGoEAAAnBAEAah4AAOsHAQBqHwAAOwkBAGoBAABEAQEAaqcAAKgMAQBoBAAAJAQBAGgeAADoBwEAaB8AADUJAQBoAQAAQQEBAGinAAClDAEAfAUBAHAOAQD///////8AAP///////wAARh4AALQHAQD///////8AAGqmAAAPDAEARqcAAHIMAQBIBQAAiQUBAEYAAAAPAAEA////////AABopgAADAwBAGQsAACkAgEAZAQAAB4EAQBkHgAA4gcBAP///////wAAZAEAADsBAQBkpwAAnwwBAEamAADYCwEA3iwAAEULAQDeBAAAyQQBAN4eAACKCAEAbiEAALkJAQDeAQAAyAEBAEZuAQDDDwEA////////AADeAAAApQABADAeAACTBwEAZKYAAAYMAQAwAQAABQECAFYFAACzBQEAYiwAAJICAQBiBAAAGgQBAGIeAADfBwEA////////AABiAQAAOAEBAGKnAACcDAEA////////AAD///////8AAP///////wAApQMAAC0DAQD///////8AAGwhAACzCQEARB4AALEHAQD///////8AAP///////wAARKcAAG8MAQBipgAAAwwBAEQAAAAJAAEAowMAACYDAQB5AQAAWQEBAHmnAACxDAEAeasAAFsGAQChAwAAIgMBAGAsAACgCgEAYAQAABcEAQBgHgAA2wcBAESmAADVCwEAYAEAADUBAQBgpwAAmQwBAP///////wAA////////AAAS6QEARxABAERuAQC9DwEAMh4AAJYHAQD///////8AADIBAADzAAEAMqcAAFQMAQAQ6QEAQRABAGohAACtCQEAYKYAAAAMAQBUBQAArQUBAP///////wAAcgMAAM4CAQBoIQAApwkBAM0EAQA6DgEA////////AADNBAAArgQBADkFAABcBQEA////////AADNAQAArQEBAP///////wAAcAMAAMsCAQDNAAAAdQABABIFAAAXBQEAzAQBADcOAQDMLAAAKgsBAM8EAQBADgEAzB4AAG8IAQDMHwAARwACABAFAAAUBQEAZCEAAJsJAQDPAQAAsAEBAMwAAAByAAEARQMAAAUDAQDPAAAAewABAD8FAABuBQEAywQBADQOAQDKJAAA/gkBAMsEAACrBAEAUgUAAKcFAQDLHwAAXAkBAMsBAACpAQEA7gMAAHEDAQDDBAEAHA4BAMsAAABvAAEAwwQAAJ8EAQDJBAEALg4BAMMfAABHAAIAyQQAAKgEAQBiIQAAlQkBAMkfAABWCQEAwwAAAFYAAQDJpwAACw0BAL8EAQAQDgEAyQAAAGkAAQBQBQAAoQUBAFUAAAA7AAEAvQQBAAoOAQB2BAAAOQQBAHYeAAD9BwEAv6sAAC0HAQB2AQAAVgEBAL8cAAA9BgEAdqsAAFIGAQC9qwAAJwcBAP///////wAAvRwAADcGAQD///////8AAMgkAAD4CQEA////////AAC5JAAAywkBAFVuAQDwDwEAYCEAAI8JAQCfHwAAzAACAJ8BAAChAgEAwQQBABYOAQCfqwAAzQYBAMEEAACcBAEAnxwAAOMFAQCfDAEAFQ8BADIhAACMCQEAxiQAAPIJAQBFAgAAvwIBAMEAAABQAAEAnR8AAMIAAgCdAQAAngIBAP///////wAAnasAAMcGAQDFJAAA7wkBAJ0cAADdBQEAnQwBAA8PAQC7JAAA0QkBAM0QAADMCwEAmx4AANsHAQCbHwAAuAACADD/AABKDQEA////////AACbqwAAwQYBAEMBAAALAQEAmxwAANcFAQCbDAEACQ8BAEMAAAAGAAEAmR4AACoAAgCZHwAArgACAN4DAABZAwEA////////AACZqwAAuwYBAJUfAADCAAIAmRwAANEFAQCZDAEAAw8BAJWrAACvBgEA////////AACVHAAAxQUBAJUMAQD3DgEAkx8AALgAAgCTAQAAegIBAENuAQC6DwEAk6sAAKkGAQD///////8AAJMcAAC/BQEAkwwBAPEOAQDDEAAAwAsBAIMfAACQAAIAOh4AAKIHAQA6HwAABQkBAIOrAAB5BgEAOqcAAGAMAQCDHAAAtgMBAIMMAQDBDgEASR8AABoJAQBJAQAALgACAL8QAAC0CwEAMv8AAFANAQBJAAAAdxABAL8YAQCuDwEAvRAAAK4LAQBGAgAATQIBAH8sAABHAgEAvRgBAKgPAQCBHwAAhgACAIEBAABlAgEAfwEAADQAAQCBqwAAcwYBAH+rAABtBgEAgRwAAI0DAQCBDAEAuw4BAGYEAAAhBAEAZh4AAOUHAQBJbgEAzA8BAGYBAAA+AQEAZqcAAKIMAQD///////8AAFoeAADSBwEAwRAAALoLAQBaAQAALAEBAFqnAACQDAEAhwUBAJEOAQBaAAAASgABAIcFAABpAAIAMAIAADsCAQBYHgAAzwcBAGamAAAJDAEAWAEAACkBAQBYpwAAjQwBAEIeAACuBwEAWAAAAEQAAQBapgAA9wsBAEKnAABsDAEAcgUBAFUOAQBCAAAAAwABAE0FAACYBQEA////////AABabgEA/w8BAM8DAABNAwEAWKYAAPQLAQBEAgAAtgIBAP///////wAAcAUBAE8OAQBCpgAA0gsBAP///////wAAWG4BAPkPAQD///////8AAM4EAQA9DgEAziwAAC0LAQBCbgEAtw8BAM4eAAByCAEA+gQAAPMEAQD6HgAAtAgBAPofAABxCQEA+gEAAO0BAQDOAAAAeAABAEUFAACABQEA9AQAAOoEAQD0HgAAqwgBAPQfAABlAAIA9AEAAOcBAQAyAgAAPgIBAP///////wAAgyEAAL8JAQDsBAAA3gQBAOweAACfCAEA7B8AAIkJAQDsAQAA3QEBAHYDAADRAgEA8iwAAFQLAQDyBAAA5wQBAPIeAACoCAEA8h8AAAEBAgDyAQAA4wEBAOoEAADbBAEA6h4AAJwIAQDqHwAAawkBAOoBAADaAQEAIQQBAM4NAQAhLAAAcwoBACEEAAC2AwEAnwMAABsDAQDoBAAA2AQBAOgeAACZCAEA6B8AAIMJAQDoAQAA1wEBAP///////wAAPh4AAKgHAQA+HwAAEQkBAGYhAAChCQEAPqcAAGYMAQD///////8AAJ0DAAAVAwEA5gQAANUEAQDmHgAAlggBAOYfAABYAAIA5gEAANQBAQDkBAAA0gQBAOQeAACTCAEA5B8AAFAAAgDkAQAA0QEBADYeAACcBwEAmwMAAA4DAQA2AQAA+QABADanAABaDAEA3CwAAEILAQDcBAAAxgQBANweAACHCAEA////////AAD///////8AAEYFAACDBQEAmQMAAAUDAQDcAAAAnwABAEAeAACrBwEAUwAAADQAAQCVAwAA9gIBAECnAABpDAEAOv8AAGgNAQCLHwAAkAACAIsBAABuAQEAi6cAAMYMAQCLqwAAkQYBAJMDAADwAgEA+hMAADYHAQCLDAEA2Q4BAHgEAAA8BAEAeB4AAAAIAQBApgAAzwsBAHgBAACoAAEAU24BAOoPAQB4qwAAWAYBAHQEAAA2BAEAdB4AAPoHAQBAbgEAsQ8BAHQBAABTAQEAQQEAAAgBAQB0qwAATAYBAF4eAADYBwEAQQAAAAAAAQBeAQAAMgEBAF6nAACWDAEAXB4AANUHAQD///////8AAFwBAAAvAQEAXKcAAJMMAQAXBAEAsA0BABcsAABVCgEAFwQAAJcDAQB/AwAAdwMBAEQFAAB9BQEA////////AABepgAA/QsBAHkFAQBqDgEAQW4BALQPAQBDAgAAYgEBAFymAAD6CwEAzSQAAAcKAQBebgEACxABAFEAAAAuAAEAOB4AAJ8HAQA4HwAA/wgBAFxuAQAFEAEAOKcAAF0MAQAdBAEAwg0BAB0sAABnCgEAHQQAAKkDAQDMJAAABAoBAB0fAADkCAEAzyQAAA0KAQA0HgAAmQcBADIFAABHBQEANAEAAPYAAQA0pwAAVwwBAFFuAQDkDwEAKywAAJEKAQArBAAA2AMBAP///////wAAKx8AAPAIAQDLJAAAAQoBAE8AAAAoAAEA////////AAA6AgAAowoBABsEAQC8DQEAGywAAGEKAQAbBAAAowMBAMMkAADpCQEAGx8AAN4IAQD///////8AAMkkAAD7CQEAGQQBALYNAQAZLAAAWwoBABkEAACdAwEA0QQBAEYOAQAZHwAA2AgBAE9uAQDeDwEAvyQAAN0JAQD6AwAAfQMBANEBAACzAQEA////////AAC9JAAA1wkBANEAAACBAAEA////////AAD0AwAAAAMBABUEAQCqDQEAFSwAAE8KAQAVBAAAkQMBABMEAQCkDQEAEywAAEkKAQATBAAAigMBAOwDAABuAwEAIf8AAB0NAQAPBAEAmA0BAA8sAAA9CgEADwQAABQEAQD///////8AAA8fAADSCAEA////////AADBJAAA4wkBAFUFAACwBQEA6gMAAGsDAQD///////8AAA0EAQCSDQEADSwAADcKAQANBAAADgQBAHYFAQBhDgEADR8AAMwIAQD///////8AAOgDAABoAwEA////////AAD///////8AADb/AABcDQEACwQBAIwNAQALLAAAMQoBAAsEAAAIBAEA////////AAALHwAAxggBAP///////wAA////////AADmAwAAZQMBAAkEAQCGDQEACSwAACsKAQAJBAAAAgQBAOQDAABiAwEACR8AAMAIAQAFBAEAeg0BAAUsAAAfCgEABQQAAPYDAQADBAEAdA0BAAMsAAAZCgEAAwQAAPADAQD///////8AANwDAABWAwEA////////AAArIQAAXAABAAEEAQBuDQEAASwAABMKAQABBAAA6gMBAPwEAAD2BAEA/B4AALcIAQD8HwAAYAACAPwBAADwAQEA////////AAD///////8AAEMFAAB6BQEA+AQAAPAEAQD4HgAAsQgBAPgfAABlCQEA+AEAAOoBAQAnBAEA4A0BACcsAACFCgEAJwQAAMsDAQCVBQEAtQ4BAPYEAADtBAEA9h4AAK4IAQD2HwAAXAACAPYBAAB0AQEAegQAAD8EAQB6HgAAAwgBAEsfAAAgCQEA////////AAA+AgAApgoBAHqrAABeBgEASwAAABsAAQAfBAEAyA0BAB8sAABtCgEAHwQAALADAQCDBQEAhQ4BAP///////wAAOP8AAGINAQD///////8AADoFAABfBQEALywAAJ0KAQAvBAAA5AMBAP///////wAALx8AAPwIAQBJBQAAjAUBAP///////wAAS24BANIPAQA0/wAAVg0BAC0sAACXCgEALQQAAN4DAQD///////8AAC0fAAD2CAEAgQUBAH8OAQB/BQEAeQ4BACv/AAA7DQEAKSwAAIsKAQApBAAA0QMBAP///////wAAKR8AAOoIAQAlBAEA2g0BACUsAAB/CgEAJQQAAMUDAQAjBAEA1A0BACMsAAB5CgEAIwQAAL8DAQARBAEAng0BABEsAABDCgEAEQQAAIMDAQAHBAEAgA0BAAcsAAAlCgEABwQAAPwDAQD///////8AAP///////wAAziQAAAoKAQD///////8AAEECAABKAgEA////////AAD///////8AAPwTAAA8BwEA////////AABCBQAAdwUBAP///////wAA////////AAD///////8AAP///////wAA+BMAADAHAQD///////8AAP///////wAA0QMAAAADAQD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAh6QEAdBABAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAD4FAABrBQEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAn/wAALw0BAP///////wAA////////AAA2BQAAUwUBAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAAUwUAAKoFAQD///////8AAP///////wAA////////AABABQAAcQUBAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAC//AABHDQEA////////AAD///////8AAP///////wAAeAUBAGcOAQD///////8AABfpAQBWEAEA////////AAAt/wAAQQ0BAP///////wAAdAUBAFsOAQD///////8AAP///////wAAQQUAAHQFAQD///////8AACn/AAA1DQEA////////AAD///////8AAP///////wAA////////AAAl/wAAKQ0BAP///////wAA////////AAAj/wAAIw0BAB3pAQBoEAEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAFEFAACkBQEA////////AAD///////8AAP///////wAA////////AAD///////8AADgFAABZBQEA////////AAD///////8AAP///////wAAG+kBAGIQAQD///////8AAP///////wAA////////AAD///////8AAP///////wAANAUAAE0FAQAZ6QEAXBABAP///////wAA////////AAD///////8AAE8FAACeBQEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAAFekBAFAQAQD///////8AAP///////wAAE+kBAEoQAQD///////8AAP///////wAA////////AAD///////8AAA/pAQA+EAEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAAF/sAAHUAAgD///////8AAP///////wAADekBADgQAQD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAL6QEAMhABAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAACekBACwQAQD///////8AAP///////wAA////////AAD///////8AAAXpAQAgEAEA////////AAD///////8AAAPpAQAaEAEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAAAekBABQQAQD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAV+wAAcQACAP///////wAA////////AAAT+wAAeQACAP///////wAA////////AAD///////8AAB/pAQBuEAEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAB6BQEAbQ4BAP///////wAASwUAAJIFAQD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AABHpAQBEEAEABfsAAB0AAgD///////8AAAfpAQAmEAEAA/sAAAAAAwD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAB+wAACAACAP//////////cgdLB9IAqwBuDYcHzwznAG4BIwX8BEgMxgxzDjgFHQL2ATAIbwSDAS8CvwLrCuQMcA7rBycERAHACBsA8wioDEwGMQBiBZUNwwiUA3cFnwCSAiIKDwxJBp4C4gceBDsB0g8MAKMKnwznD9UIUAVGBlMJQA6uCO0EgwKVCQYMEQleDtsHFwQ1AcAPAACgCpkMRAlSDkQF+A2KCMkEyAEFBH0CRQsADI4K/g2NCMwEywG0D1AASAtXBzgJtwBxDagLWgtxAcMLXQcIBb0A/QYRBF0L+QMCApoKDgWCCsICAweGCWgNCAIKDpMI0gTRAWsCXACHC6sLBA6QCM8EzgGxC1YASwuFDnsHawHbALkC8g2HCMYExQFcDSwFQgsPB4kJaQezAskACQB9DV4GCQe9CE0FGgXmDYEIwAQrBuoIFAI8CxQN9wZgBHcBFQ+9D9wK1QxVDkEJ5Ah+CL0EGw/jBacFOQsRDTkMegHrBqoCswXpBVgOcgsWDpkI2ATXAbUOaQC/DX4LwgMLAXcN5QZMClkDEA6WCNUE1AEnD2MA7wkLBFwDlAaaBpQKIQ8bB/UF9QmfC64PVwtcASMJdwLvBbQMDw+6C5UFFQcmDewNhAjDBAMA+QjdBT8LjgZHBZYLYgMFEAAIPAQDD3EJRwABCl8DrQWzCYwFtw+lANEF+wk7CfEGdQi0BFYD/Q6ZCzALDg38D4EL6QmoBGgJfQHLBb8JCw2qCWQOYwQzD6gPUAPfCtgMWw7IAtMGgAndCQEGvA2uB78DLQ88DL4GSQpsDE0DnA/fBxoEOAH7BQYA1wmcDEMO0gtKBREDGAOTAHsLaAOAApYPAwwgCScIVwQNCgkPug/TCswMIw0+CWUD9wczBFAB1wU0ALIKBwowDAoDegX0BzAETQF1Cy4A1wJvCz0O//90BesOOgaQAOoPFw2bAnkOVglTA9YOuQVvCJgJ5A///+MJKgtQCTQOqAjnBOMBkgmHAFQLUgaiDygOogjhBOABag57ACIOnwjeBN0BxwZ1ALoI+QTzAcUJqAA+AzkHHA6cCNsE2gFABm8A//+EDy0H6AckBEEBLgZ3ECcHpQxvD5UBXAXlByEEPgGmDhIAjAKiDAwMIQdWBQ0ONw4XEMwPJhBgAIoACQx6A8YH8AMgAYIGxg95CoQM7QhKCToOqwjqBOcBKAaNAGUC3w7rCxIHPAfOAv/////MB/wDJgFNECwJhQqKDMsCaw3//0UPHwZTDT8HoAZuAj8P8QuuBK0BEwb9BzkEVgHnCEEADQYyCUcDOQ+GBT0GwwfqAx0BXw13A3MKgQwHBv//sAH//8oG9g9xA3gPXwJiCegL//9uA70LpAngDcAH5AMaASoPKQltCn4MKRD//2sD0AZ9CU0N+AUiBlkC///lC9oNvQfeAxcBuA76AmcKewzUDboH2AMUAf//JQZhCngMVgJHDeILtwtMDrQI8wTtAVMCnADeCwQKtg2rB7YDXwElAOIOQwppDEENawWbBR4Dewi6BP//NRA7DTYLzwuMDZYHigPzANsPCxAZClQM6A4aCVEP+gc2BFMBuQk7AD4CHQ22Bd8GgAVKA3gItwT//9ECoQIzCwgJ//9RCJAEmAGsDvAPDAv2DK8OXAl7D/EHLQRKAZ4JKAAvEK4M///ZBm4FwgndDYgG4QMdEJgCiwZqCu4HKgRHAYEPIgDeD6sMdgb//2gFzwcCBCkB//9mBIsKjQwSDOIK2wxhDv/////YD/cOcQKMCfQLxQJEDckH9gMjAf//xQV/CocMhAf//+QAfQP/////RQxpBGUNNQXuC+UK3gxnDv//LALxDs4NtwfRAy8J/////1sKdQz//78F/AhZDdEJyA20B8sDUAL//9sLVQpyDPMDegKQD3QQfArCDbEHxQNNArEP2AtPCm8MNQloAjUNuQ0AA7oDCAHLCQUDRgrVCy4OpQjkBP//Lw2BAOwCig9KAiYJVg2PAZgNnAeXA/kAlw4pDSUKWgwdCUgH//+SDZkHkQP2ADMHIA0fClcMeg2NB8kL7QBwBncJgQdODOEAFAk+Bf//QgwGCEIEMgU1An4H///eAA4JKQKYBT8M+w3//y8F7w2kAk0AwgHpDSYC9gi/AeMNCBBpCLwBpQF0CWAIJAtiAfAItgkbCwUNRQiEBKEFAAeDCQAL9AaaDqcC/wPuBksPXQiICugGuwb//xgLAg2pBv//GQYREFoImQSeAXMGegkVC/8MpQtXCJYEmwFUCJMEEgv8DKMGDwv5DLIO//9iDeEITgiNBP//zAudBgkL8wypDsYLPwh+BIwBlwbtA/oKkQaODnYKWQHAC0oAGA+xDP//DA+PBYUGYgIGDyMQ///mBQAP0w7aBWcGSQ7BDtQF/w///5kAzgVrCdoCSwiKBFANrQn//wYL8AyjDrANqAewA7sO2wj//z0KZgznA///8gn//3AK5gmTCzoDRALgCX8GJgP//9oJXAL//6UP///pAs8Inw8zCHIEhgGZD2wP7grnDHYOWg8iAy0IbASAAUoN///oCuEMbQ7JCF0EGwMDCD8E2QrSDE8OTwZUDxUD//+SBQ4DDwiRDmUBNgxDBrsKvQz//24QqgX9Ao0LAhC5Af//rQJuCRgMQgfgAmoGsAk0BtIHCAQsATEORBCRCpAMsw2EALMDBQFpC///QAriBnQCJQ73C4YNkweDA3gAUQtHAhMK//+ADZAH///wADYHYwv2AlEMOwIXCUEFdA2KB/UN6gD//zgCKgdLDP//Agk7Bf//Rg6xCPAE6gEyApYAHw7//xMOBw62AXIATgtmAFkAAQ6zAfoG/////1MAcgixBKsEqQFsCC0LZgj6Dv//Jwv//yELJAfcBhgHDAebDcgFmgPWBtQCBgcoCk4P///jAs0GxAYgEKUEwQb//7UGHAYIDacNQg+mA/8A/////zQK//+iBKEBYwgQBgwISATUCR4LQQK4CroMuAaLDqQF//90AxIPkw///x8ArwoVDEgIhwRlBbIG4AUDC68GnQ6VAmQGPA/0DjAPJA8xBv//1Q/uDnEQHg8KBsIF/gXyBeUO3A55BrwF2Q7sBc0O//9CCIEE/////+wJ/QpQEJQO////////iQGqDaUHqQOrD38OShA3CmMM0A7OCQoK/gn//zIQbQbICUQD+AkaEEEDjQ80A8oOWAb//8cOhw8bCEsEFBD//ysOxwp+D3UP//9+AHIP//9mDzkIeAS8AjcDJAz0Cu0Mgg42CHUECQhFBP//8QrqDHwOtwwwAzAHngUtA2kPEgjdAmgB//9bBr4KwAz/////sAX//w4QVQZjDz4AtQpgDxsM8AKDBbwJDwCmCrcI9gTwAVMFogD//9gHFAQyAYYC8w+dCpYMZgdfCcYA///DD///oQn//0cJFwX9C9UHDgQvAeYCEQKXCpMMpA2iB6MD/////0gPMQpgDJ8E3gj6C54NnwedA2MHFgbDACsKXQxUBxkOtABRBxQFsQBsAP////8FBQ4CTgcCBa4ArAb/ATwIewT8Af///wT3CtgIiA5oEP//+QHSCB4H///MCCoIWgR0ASQIVATWCv//xgjQCskM//9hBv//////////FQgzDDcGRAAtDMEKwwz//4kFOADLDZALzgMRAX0FsAJYCh4M//8rAP//jw35D40DcQX//2UJHArtD///xA6nCVkJ//8YAKwK//+bCeEPXwX/////TQmKCzYPjwIyDY8JbAsLCf//ZgucBM8PBAYVAKkK/////2ALWQXFDf//yAMOASoDiQJSCmsQrQ3//6wDAgH//8kPOgr//6YGoQ0+EKAD/AD//10PLgoYCIkNOBCGA4MNxAqAAxYK//94BxAK2AAsDSwQ//+2Av//IQwpBXUH1w3VANsD//8jApIBZAr//yYFBQmgDm8H/wjPACACbAdgB8wAwABaByAFugAhCFEEHQURBRoCzQoLBXwGFwILAh4ITgQFAr4OPg3KCtENKgzUA///UxD//14K//////////8nDP////////////////////////////9fEEUH/////////////////////////////zgN////////////////////////tAv///////9XD/////////////+uC/////////////////////////////+iC////////5wLhAv/////eAv////////////////////////////////zAv//////////////////YhD/////////////Gg3//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1wQ//////////////////////////9WEP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0cQ/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////2UQ/////////////////////1kQ//////////////////9BEP////87EAAAAAAAAGUA/QBMAB0AGADvAGAARwBcAEMABAA+AAgAOgDqAG0ApABYAFQAUADWAAAANgAFATIAaQB5AH0AAQEqACYA+QAuAHUADABxAPQA5QDgANsA0QAQAMwAxwDCAL0AuACzAK4AqQAUACIAnwCaAJUAkACLAIYAgQBB8IkRC+EIPgAvAB8AOQApABkANAAkABQAQwAPAAoABQAAAAAAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAEAAAABAAAAAQAAAAEAAAABAAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAGQAKABkZGQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAAZABEKGRkZAwoHAAEACQsYAAAJBgsAAAsABhkAAAAZGRkAQeGSEQshDgAAAAAAAAAAGQAKDRkZGQANAAACAAkOAAAACQAOAAAOAEGbkxELAQwAQaeTEQsVEwAAAAATAAAAAAkMAAAAAAAMAAAMAEHVkxELARAAQeGTEQsVDwAAAAQPAAAAAAkQAAAAAAAQAAAQAEGPlBELARIAQZuUEQseEQAAAAARAAAAAAkSAAAAAAASAAASAAAaAAAAGhoaAEHSlBELDhoAAAAaGhoAAAAAAAAJAEGDlRELARQAQY+VEQsVFwAAAAAXAAAAAAkUAAAAAAAUAAAUAEG9lRELARYAQcmVEQvsARUAAAAAFQAAAAAJFgAAAAAAFgAAFgAAMDEyMzQ1Njc4OUFCQ0RFRnwtIGRpZCBub3QgbWF0Y2ggYWZ0ZXIgJS4zZiBtcwoACn5+fn5+fn5+fn5+fn5+fn5+fn5+CkVudGVyaW5nIGZpbmROZXh0T25pZ1NjYW5uZXJNYXRjaDolLipzCgAtIHNlYXJjaE9uaWdSZWdFeHA6ICUuKnMKAExlYXZpbmcgZmluZE5leHRPbmlnU2Nhbm5lck1hdGNoCgB8LSBtYXRjaGVkIGFmdGVyICUuM2YgbXMgYXQgYnl0ZSBvZmZzZXQgJWQKAEHAlxELEVbV9//Se+t32yughwAAAABcAEHolxEL2AHASwQAAQAAAAEAAAD/fwAAABAAABEAAAASAAAAEwAAABQAAAAAAAAABwgAAA0AAAAFAAAAZwgAAAEAAAAFAAAA2QgAAAIAAAAFAAAAIAkAAAMAAAAFAAAALgkAAAQAAAAFAAAAYQkAAAUAAAAFAAAAkAkAAAYAAAAFAAAAqAkAAAcAAAAFAAAA0wkAAAgAAAAFAAAAKgoAAAkAAAAFAAAAMAoAAAoAAAAFAAAAdwoAAAsAAAAGAAAAqAoAAA4AAAAFAAAAyAoAAAwAAAAEAAAAAAAAAP////8AQdCZEQsWiAsAAJ4LAAC3CwAA0gsAAPELAAAVDABB8JkRCyU6DAAAOgwAAJ4LAADxCwAA0gsAAGMMAACXDAAAAAAAQICWmAAUAEGgmhELAVQAQcCaEQuwAccEAAANAAAABQAAAIQGAAABAAAABQAAALkGAAACAAAABQAAACcHAAADAAAABQAAAH4HAAAEAAAABQAAAA0IAAAFAAAABQAAAEMIAAAGAAAABQAAALEIAAAHAAAABQAAAPkIAAAIAAAABQAAADoJAAAJAAAABQAAAFsJAAAKAAAABQAAAIkJAAALAAAABgAAALQJAAAOAAAABQAAAN8JAAAMAAAABAAAAAAAAAD/////AEGAnBEL5YMBYQAAAAEAAABBAAAAYgAAAAEAAABCAAAAYwAAAAEAAABDAAAAZAAAAAEAAABEAAAAZQAAAAEAAABFAAAAZgAAAAEAAABGAAAAZwAAAAEAAABHAAAAaAAAAAEAAABIAAAAagAAAAEAAABKAAAAawAAAAIAAABLAAAAKiEAAGwAAAABAAAATAAAAG0AAAABAAAATQAAAG4AAAABAAAATgAAAG8AAAABAAAATwAAAHAAAAABAAAAUAAAAHEAAAABAAAAUQAAAHIAAAABAAAAUgAAAHMAAAACAAAAUwAAAH8BAAB0AAAAAQAAAFQAAAB1AAAAAQAAAFUAAAB2AAAAAQAAAFYAAAB3AAAAAQAAAFcAAAB4AAAAAQAAAFgAAAB5AAAAAQAAAFkAAAB6AAAAAQAAAFoAAADgAAAAAQAAAMAAAADhAAAAAQAAAMEAAADiAAAAAQAAAMIAAADjAAAAAQAAAMMAAADkAAAAAQAAAMQAAADlAAAAAgAAAMUAAAArIQAA5gAAAAEAAADGAAAA5wAAAAEAAADHAAAA6AAAAAEAAADIAAAA6QAAAAEAAADJAAAA6gAAAAEAAADKAAAA6wAAAAEAAADLAAAA7AAAAAEAAADMAAAA7QAAAAEAAADNAAAA7gAAAAEAAADOAAAA7wAAAAEAAADPAAAA8AAAAAEAAADQAAAA8QAAAAEAAADRAAAA8gAAAAEAAADSAAAA8wAAAAEAAADTAAAA9AAAAAEAAADUAAAA9QAAAAEAAADVAAAA9gAAAAEAAADWAAAA+AAAAAEAAADYAAAA+QAAAAEAAADZAAAA+gAAAAEAAADaAAAA+wAAAAEAAADbAAAA/AAAAAEAAADcAAAA/QAAAAEAAADdAAAA/gAAAAEAAADeAAAA/wAAAAEAAAB4AQAAAQEAAAEAAAAAAQAAAwEAAAEAAAACAQAABQEAAAEAAAAEAQAABwEAAAEAAAAGAQAACQEAAAEAAAAIAQAACwEAAAEAAAAKAQAADQEAAAEAAAAMAQAADwEAAAEAAAAOAQAAEQEAAAEAAAAQAQAAEwEAAAEAAAASAQAAFQEAAAEAAAAUAQAAFwEAAAEAAAAWAQAAGQEAAAEAAAAYAQAAGwEAAAEAAAAaAQAAHQEAAAEAAAAcAQAAHwEAAAEAAAAeAQAAIQEAAAEAAAAgAQAAIwEAAAEAAAAiAQAAJQEAAAEAAAAkAQAAJwEAAAEAAAAmAQAAKQEAAAEAAAAoAQAAKwEAAAEAAAAqAQAALQEAAAEAAAAsAQAALwEAAAEAAAAuAQAAMwEAAAEAAAAyAQAANQEAAAEAAAA0AQAANwEAAAEAAAA2AQAAOgEAAAEAAAA5AQAAPAEAAAEAAAA7AQAAPgEAAAEAAAA9AQAAQAEAAAEAAAA/AQAAQgEAAAEAAABBAQAARAEAAAEAAABDAQAARgEAAAEAAABFAQAASAEAAAEAAABHAQAASwEAAAEAAABKAQAATQEAAAEAAABMAQAATwEAAAEAAABOAQAAUQEAAAEAAABQAQAAUwEAAAEAAABSAQAAVQEAAAEAAABUAQAAVwEAAAEAAABWAQAAWQEAAAEAAABYAQAAWwEAAAEAAABaAQAAXQEAAAEAAABcAQAAXwEAAAEAAABeAQAAYQEAAAEAAABgAQAAYwEAAAEAAABiAQAAZQEAAAEAAABkAQAAZwEAAAEAAABmAQAAaQEAAAEAAABoAQAAawEAAAEAAABqAQAAbQEAAAEAAABsAQAAbwEAAAEAAABuAQAAcQEAAAEAAABwAQAAcwEAAAEAAAByAQAAdQEAAAEAAAB0AQAAdwEAAAEAAAB2AQAAegEAAAEAAAB5AQAAfAEAAAEAAAB7AQAAfgEAAAEAAAB9AQAAgAEAAAEAAABDAgAAgwEAAAEAAACCAQAAhQEAAAEAAACEAQAAiAEAAAEAAACHAQAAjAEAAAEAAACLAQAAkgEAAAEAAACRAQAAlQEAAAEAAAD2AQAAmQEAAAEAAACYAQAAmgEAAAEAAAA9AgAAngEAAAEAAAAgAgAAoQEAAAEAAACgAQAAowEAAAEAAACiAQAApQEAAAEAAACkAQAAqAEAAAEAAACnAQAArQEAAAEAAACsAQAAsAEAAAEAAACvAQAAtAEAAAEAAACzAQAAtgEAAAEAAAC1AQAAuQEAAAEAAAC4AQAAvQEAAAEAAAC8AQAAvwEAAAEAAAD3AQAAxgEAAAIAAADEAQAAxQEAAMkBAAACAAAAxwEAAMgBAADMAQAAAgAAAMoBAADLAQAAzgEAAAEAAADNAQAA0AEAAAEAAADPAQAA0gEAAAEAAADRAQAA1AEAAAEAAADTAQAA1gEAAAEAAADVAQAA2AEAAAEAAADXAQAA2gEAAAEAAADZAQAA3AEAAAEAAADbAQAA3QEAAAEAAACOAQAA3wEAAAEAAADeAQAA4QEAAAEAAADgAQAA4wEAAAEAAADiAQAA5QEAAAEAAADkAQAA5wEAAAEAAADmAQAA6QEAAAEAAADoAQAA6wEAAAEAAADqAQAA7QEAAAEAAADsAQAA7wEAAAEAAADuAQAA8wEAAAIAAADxAQAA8gEAAPUBAAABAAAA9AEAAPkBAAABAAAA+AEAAPsBAAABAAAA+gEAAP0BAAABAAAA/AEAAP8BAAABAAAA/gEAAAECAAABAAAAAAIAAAMCAAABAAAAAgIAAAUCAAABAAAABAIAAAcCAAABAAAABgIAAAkCAAABAAAACAIAAAsCAAABAAAACgIAAA0CAAABAAAADAIAAA8CAAABAAAADgIAABECAAABAAAAEAIAABMCAAABAAAAEgIAABUCAAABAAAAFAIAABcCAAABAAAAFgIAABkCAAABAAAAGAIAABsCAAABAAAAGgIAAB0CAAABAAAAHAIAAB8CAAABAAAAHgIAACMCAAABAAAAIgIAACUCAAABAAAAJAIAACcCAAABAAAAJgIAACkCAAABAAAAKAIAACsCAAABAAAAKgIAAC0CAAABAAAALAIAAC8CAAABAAAALgIAADECAAABAAAAMAIAADMCAAABAAAAMgIAADwCAAABAAAAOwIAAD8CAAABAAAAfiwAAEACAAABAAAAfywAAEICAAABAAAAQQIAAEcCAAABAAAARgIAAEkCAAABAAAASAIAAEsCAAABAAAASgIAAE0CAAABAAAATAIAAE8CAAABAAAATgIAAFACAAABAAAAbywAAFECAAABAAAAbSwAAFICAAABAAAAcCwAAFMCAAABAAAAgQEAAFQCAAABAAAAhgEAAFYCAAABAAAAiQEAAFcCAAABAAAAigEAAFkCAAABAAAAjwEAAFsCAAABAAAAkAEAAFwCAAABAAAAq6cAAGACAAABAAAAkwEAAGECAAABAAAArKcAAGMCAAABAAAAlAEAAGUCAAABAAAAjacAAGYCAAABAAAAqqcAAGgCAAABAAAAlwEAAGkCAAABAAAAlgEAAGoCAAABAAAArqcAAGsCAAABAAAAYiwAAGwCAAABAAAAracAAG8CAAABAAAAnAEAAHECAAABAAAAbiwAAHICAAABAAAAnQEAAHUCAAABAAAAnwEAAH0CAAABAAAAZCwAAIACAAABAAAApgEAAIICAAABAAAAxacAAIMCAAABAAAAqQEAAIcCAAABAAAAsacAAIgCAAABAAAArgEAAIkCAAABAAAARAIAAIoCAAABAAAAsQEAAIsCAAABAAAAsgEAAIwCAAABAAAARQIAAJICAAABAAAAtwEAAJ0CAAABAAAAsqcAAJ4CAAABAAAAsKcAAHEDAAABAAAAcAMAAHMDAAABAAAAcgMAAHcDAAABAAAAdgMAAHsDAAABAAAA/QMAAHwDAAABAAAA/gMAAH0DAAABAAAA/wMAAKwDAAABAAAAhgMAAK0DAAABAAAAiAMAAK4DAAABAAAAiQMAAK8DAAABAAAAigMAALEDAAABAAAAkQMAALIDAAACAAAAkgMAANADAACzAwAAAQAAAJMDAAC0AwAAAQAAAJQDAAC1AwAAAgAAAJUDAAD1AwAAtgMAAAEAAACWAwAAtwMAAAEAAACXAwAAuAMAAAMAAACYAwAA0QMAAPQDAAC5AwAAAwAAAEUDAACZAwAAvh8AALoDAAACAAAAmgMAAPADAAC7AwAAAQAAAJsDAAC8AwAAAgAAALUAAACcAwAAvQMAAAEAAACdAwAAvgMAAAEAAACeAwAAvwMAAAEAAACfAwAAwAMAAAIAAACgAwAA1gMAAMEDAAACAAAAoQMAAPEDAADDAwAAAgAAAKMDAADCAwAAxAMAAAEAAACkAwAAxQMAAAEAAAClAwAAxgMAAAIAAACmAwAA1QMAAMcDAAABAAAApwMAAMgDAAABAAAAqAMAAMkDAAACAAAAqQMAACYhAADKAwAAAQAAAKoDAADLAwAAAQAAAKsDAADMAwAAAQAAAIwDAADNAwAAAQAAAI4DAADOAwAAAQAAAI8DAADXAwAAAQAAAM8DAADZAwAAAQAAANgDAADbAwAAAQAAANoDAADdAwAAAQAAANwDAADfAwAAAQAAAN4DAADhAwAAAQAAAOADAADjAwAAAQAAAOIDAADlAwAAAQAAAOQDAADnAwAAAQAAAOYDAADpAwAAAQAAAOgDAADrAwAAAQAAAOoDAADtAwAAAQAAAOwDAADvAwAAAQAAAO4DAADyAwAAAQAAAPkDAADzAwAAAQAAAH8DAAD4AwAAAQAAAPcDAAD7AwAAAQAAAPoDAAAwBAAAAQAAABAEAAAxBAAAAQAAABEEAAAyBAAAAgAAABIEAACAHAAAMwQAAAEAAAATBAAANAQAAAIAAAAUBAAAgRwAADUEAAABAAAAFQQAADYEAAABAAAAFgQAADcEAAABAAAAFwQAADgEAAABAAAAGAQAADkEAAABAAAAGQQAADoEAAABAAAAGgQAADsEAAABAAAAGwQAADwEAAABAAAAHAQAAD0EAAABAAAAHQQAAD4EAAACAAAAHgQAAIIcAAA/BAAAAQAAAB8EAABABAAAAQAAACAEAABBBAAAAgAAACEEAACDHAAAQgQAAAMAAAAiBAAAhBwAAIUcAABDBAAAAQAAACMEAABEBAAAAQAAACQEAABFBAAAAQAAACUEAABGBAAAAQAAACYEAABHBAAAAQAAACcEAABIBAAAAQAAACgEAABJBAAAAQAAACkEAABKBAAAAgAAACoEAACGHAAASwQAAAEAAAArBAAATAQAAAEAAAAsBAAATQQAAAEAAAAtBAAATgQAAAEAAAAuBAAATwQAAAEAAAAvBAAAUAQAAAEAAAAABAAAUQQAAAEAAAABBAAAUgQAAAEAAAACBAAAUwQAAAEAAAADBAAAVAQAAAEAAAAEBAAAVQQAAAEAAAAFBAAAVgQAAAEAAAAGBAAAVwQAAAEAAAAHBAAAWAQAAAEAAAAIBAAAWQQAAAEAAAAJBAAAWgQAAAEAAAAKBAAAWwQAAAEAAAALBAAAXAQAAAEAAAAMBAAAXQQAAAEAAAANBAAAXgQAAAEAAAAOBAAAXwQAAAEAAAAPBAAAYQQAAAEAAABgBAAAYwQAAAIAAABiBAAAhxwAAGUEAAABAAAAZAQAAGcEAAABAAAAZgQAAGkEAAABAAAAaAQAAGsEAAABAAAAagQAAG0EAAABAAAAbAQAAG8EAAABAAAAbgQAAHEEAAABAAAAcAQAAHMEAAABAAAAcgQAAHUEAAABAAAAdAQAAHcEAAABAAAAdgQAAHkEAAABAAAAeAQAAHsEAAABAAAAegQAAH0EAAABAAAAfAQAAH8EAAABAAAAfgQAAIEEAAABAAAAgAQAAIsEAAABAAAAigQAAI0EAAABAAAAjAQAAI8EAAABAAAAjgQAAJEEAAABAAAAkAQAAJMEAAABAAAAkgQAAJUEAAABAAAAlAQAAJcEAAABAAAAlgQAAJkEAAABAAAAmAQAAJsEAAABAAAAmgQAAJ0EAAABAAAAnAQAAJ8EAAABAAAAngQAAKEEAAABAAAAoAQAAKMEAAABAAAAogQAAKUEAAABAAAApAQAAKcEAAABAAAApgQAAKkEAAABAAAAqAQAAKsEAAABAAAAqgQAAK0EAAABAAAArAQAAK8EAAABAAAArgQAALEEAAABAAAAsAQAALMEAAABAAAAsgQAALUEAAABAAAAtAQAALcEAAABAAAAtgQAALkEAAABAAAAuAQAALsEAAABAAAAugQAAL0EAAABAAAAvAQAAL8EAAABAAAAvgQAAMIEAAABAAAAwQQAAMQEAAABAAAAwwQAAMYEAAABAAAAxQQAAMgEAAABAAAAxwQAAMoEAAABAAAAyQQAAMwEAAABAAAAywQAAM4EAAABAAAAzQQAAM8EAAABAAAAwAQAANEEAAABAAAA0AQAANMEAAABAAAA0gQAANUEAAABAAAA1AQAANcEAAABAAAA1gQAANkEAAABAAAA2AQAANsEAAABAAAA2gQAAN0EAAABAAAA3AQAAN8EAAABAAAA3gQAAOEEAAABAAAA4AQAAOMEAAABAAAA4gQAAOUEAAABAAAA5AQAAOcEAAABAAAA5gQAAOkEAAABAAAA6AQAAOsEAAABAAAA6gQAAO0EAAABAAAA7AQAAO8EAAABAAAA7gQAAPEEAAABAAAA8AQAAPMEAAABAAAA8gQAAPUEAAABAAAA9AQAAPcEAAABAAAA9gQAAPkEAAABAAAA+AQAAPsEAAABAAAA+gQAAP0EAAABAAAA/AQAAP8EAAABAAAA/gQAAAEFAAABAAAAAAUAAAMFAAABAAAAAgUAAAUFAAABAAAABAUAAAcFAAABAAAABgUAAAkFAAABAAAACAUAAAsFAAABAAAACgUAAA0FAAABAAAADAUAAA8FAAABAAAADgUAABEFAAABAAAAEAUAABMFAAABAAAAEgUAABUFAAABAAAAFAUAABcFAAABAAAAFgUAABkFAAABAAAAGAUAABsFAAABAAAAGgUAAB0FAAABAAAAHAUAAB8FAAABAAAAHgUAACEFAAABAAAAIAUAACMFAAABAAAAIgUAACUFAAABAAAAJAUAACcFAAABAAAAJgUAACkFAAABAAAAKAUAACsFAAABAAAAKgUAAC0FAAABAAAALAUAAC8FAAABAAAALgUAAGEFAAABAAAAMQUAAGIFAAABAAAAMgUAAGMFAAABAAAAMwUAAGQFAAABAAAANAUAAGUFAAABAAAANQUAAGYFAAABAAAANgUAAGcFAAABAAAANwUAAGgFAAABAAAAOAUAAGkFAAABAAAAOQUAAGoFAAABAAAAOgUAAGsFAAABAAAAOwUAAGwFAAABAAAAPAUAAG0FAAABAAAAPQUAAG4FAAABAAAAPgUAAG8FAAABAAAAPwUAAHAFAAABAAAAQAUAAHEFAAABAAAAQQUAAHIFAAABAAAAQgUAAHMFAAABAAAAQwUAAHQFAAABAAAARAUAAHUFAAABAAAARQUAAHYFAAABAAAARgUAAHcFAAABAAAARwUAAHgFAAABAAAASAUAAHkFAAABAAAASQUAAHoFAAABAAAASgUAAHsFAAABAAAASwUAAHwFAAABAAAATAUAAH0FAAABAAAATQUAAH4FAAABAAAATgUAAH8FAAABAAAATwUAAIAFAAABAAAAUAUAAIEFAAABAAAAUQUAAIIFAAABAAAAUgUAAIMFAAABAAAAUwUAAIQFAAABAAAAVAUAAIUFAAABAAAAVQUAAIYFAAABAAAAVgUAANAQAAABAAAAkBwAANEQAAABAAAAkRwAANIQAAABAAAAkhwAANMQAAABAAAAkxwAANQQAAABAAAAlBwAANUQAAABAAAAlRwAANYQAAABAAAAlhwAANcQAAABAAAAlxwAANgQAAABAAAAmBwAANkQAAABAAAAmRwAANoQAAABAAAAmhwAANsQAAABAAAAmxwAANwQAAABAAAAnBwAAN0QAAABAAAAnRwAAN4QAAABAAAAnhwAAN8QAAABAAAAnxwAAOAQAAABAAAAoBwAAOEQAAABAAAAoRwAAOIQAAABAAAAohwAAOMQAAABAAAAoxwAAOQQAAABAAAApBwAAOUQAAABAAAApRwAAOYQAAABAAAAphwAAOcQAAABAAAApxwAAOgQAAABAAAAqBwAAOkQAAABAAAAqRwAAOoQAAABAAAAqhwAAOsQAAABAAAAqxwAAOwQAAABAAAArBwAAO0QAAABAAAArRwAAO4QAAABAAAArhwAAO8QAAABAAAArxwAAPAQAAABAAAAsBwAAPEQAAABAAAAsRwAAPIQAAABAAAAshwAAPMQAAABAAAAsxwAAPQQAAABAAAAtBwAAPUQAAABAAAAtRwAAPYQAAABAAAAthwAAPcQAAABAAAAtxwAAPgQAAABAAAAuBwAAPkQAAABAAAAuRwAAPoQAAABAAAAuhwAAP0QAAABAAAAvRwAAP4QAAABAAAAvhwAAP8QAAABAAAAvxwAAKATAAABAAAAcKsAAKETAAABAAAAcasAAKITAAABAAAAcqsAAKMTAAABAAAAc6sAAKQTAAABAAAAdKsAAKUTAAABAAAAdasAAKYTAAABAAAAdqsAAKcTAAABAAAAd6sAAKgTAAABAAAAeKsAAKkTAAABAAAAeasAAKoTAAABAAAAeqsAAKsTAAABAAAAe6sAAKwTAAABAAAAfKsAAK0TAAABAAAAfasAAK4TAAABAAAAfqsAAK8TAAABAAAAf6sAALATAAABAAAAgKsAALETAAABAAAAgasAALITAAABAAAAgqsAALMTAAABAAAAg6sAALQTAAABAAAAhKsAALUTAAABAAAAhasAALYTAAABAAAAhqsAALcTAAABAAAAh6sAALgTAAABAAAAiKsAALkTAAABAAAAiasAALoTAAABAAAAiqsAALsTAAABAAAAi6sAALwTAAABAAAAjKsAAL0TAAABAAAAjasAAL4TAAABAAAAjqsAAL8TAAABAAAAj6sAAMATAAABAAAAkKsAAMETAAABAAAAkasAAMITAAABAAAAkqsAAMMTAAABAAAAk6sAAMQTAAABAAAAlKsAAMUTAAABAAAAlasAAMYTAAABAAAAlqsAAMcTAAABAAAAl6sAAMgTAAABAAAAmKsAAMkTAAABAAAAmasAAMoTAAABAAAAmqsAAMsTAAABAAAAm6sAAMwTAAABAAAAnKsAAM0TAAABAAAAnasAAM4TAAABAAAAnqsAAM8TAAABAAAAn6sAANATAAABAAAAoKsAANETAAABAAAAoasAANITAAABAAAAoqsAANMTAAABAAAAo6sAANQTAAABAAAApKsAANUTAAABAAAApasAANYTAAABAAAApqsAANcTAAABAAAAp6sAANgTAAABAAAAqKsAANkTAAABAAAAqasAANoTAAABAAAAqqsAANsTAAABAAAAq6sAANwTAAABAAAArKsAAN0TAAABAAAArasAAN4TAAABAAAArqsAAN8TAAABAAAAr6sAAOATAAABAAAAsKsAAOETAAABAAAAsasAAOITAAABAAAAsqsAAOMTAAABAAAAs6sAAOQTAAABAAAAtKsAAOUTAAABAAAAtasAAOYTAAABAAAAtqsAAOcTAAABAAAAt6sAAOgTAAABAAAAuKsAAOkTAAABAAAAuasAAOoTAAABAAAAuqsAAOsTAAABAAAAu6sAAOwTAAABAAAAvKsAAO0TAAABAAAAvasAAO4TAAABAAAAvqsAAO8TAAABAAAAv6sAAPATAAABAAAA+BMAAPETAAABAAAA+RMAAPITAAABAAAA+hMAAPMTAAABAAAA+xMAAPQTAAABAAAA/BMAAPUTAAABAAAA/RMAAHkdAAABAAAAfacAAH0dAAABAAAAYywAAI4dAAABAAAAxqcAAAEeAAABAAAAAB4AAAMeAAABAAAAAh4AAAUeAAABAAAABB4AAAceAAABAAAABh4AAAkeAAABAAAACB4AAAseAAABAAAACh4AAA0eAAABAAAADB4AAA8eAAABAAAADh4AABEeAAABAAAAEB4AABMeAAABAAAAEh4AABUeAAABAAAAFB4AABceAAABAAAAFh4AABkeAAABAAAAGB4AABseAAABAAAAGh4AAB0eAAABAAAAHB4AAB8eAAABAAAAHh4AACEeAAABAAAAIB4AACMeAAABAAAAIh4AACUeAAABAAAAJB4AACceAAABAAAAJh4AACkeAAABAAAAKB4AACseAAABAAAAKh4AAC0eAAABAAAALB4AAC8eAAABAAAALh4AADEeAAABAAAAMB4AADMeAAABAAAAMh4AADUeAAABAAAANB4AADceAAABAAAANh4AADkeAAABAAAAOB4AADseAAABAAAAOh4AAD0eAAABAAAAPB4AAD8eAAABAAAAPh4AAEEeAAABAAAAQB4AAEMeAAABAAAAQh4AAEUeAAABAAAARB4AAEceAAABAAAARh4AAEkeAAABAAAASB4AAEseAAABAAAASh4AAE0eAAABAAAATB4AAE8eAAABAAAATh4AAFEeAAABAAAAUB4AAFMeAAABAAAAUh4AAFUeAAABAAAAVB4AAFceAAABAAAAVh4AAFkeAAABAAAAWB4AAFseAAABAAAAWh4AAF0eAAABAAAAXB4AAF8eAAABAAAAXh4AAGEeAAACAAAAYB4AAJseAABjHgAAAQAAAGIeAABlHgAAAQAAAGQeAABnHgAAAQAAAGYeAABpHgAAAQAAAGgeAABrHgAAAQAAAGoeAABtHgAAAQAAAGweAABvHgAAAQAAAG4eAABxHgAAAQAAAHAeAABzHgAAAQAAAHIeAAB1HgAAAQAAAHQeAAB3HgAAAQAAAHYeAAB5HgAAAQAAAHgeAAB7HgAAAQAAAHoeAAB9HgAAAQAAAHweAAB/HgAAAQAAAH4eAACBHgAAAQAAAIAeAACDHgAAAQAAAIIeAACFHgAAAQAAAIQeAACHHgAAAQAAAIYeAACJHgAAAQAAAIgeAACLHgAAAQAAAIoeAACNHgAAAQAAAIweAACPHgAAAQAAAI4eAACRHgAAAQAAAJAeAACTHgAAAQAAAJIeAACVHgAAAQAAAJQeAAChHgAAAQAAAKAeAACjHgAAAQAAAKIeAAClHgAAAQAAAKQeAACnHgAAAQAAAKYeAACpHgAAAQAAAKgeAACrHgAAAQAAAKoeAACtHgAAAQAAAKweAACvHgAAAQAAAK4eAACxHgAAAQAAALAeAACzHgAAAQAAALIeAAC1HgAAAQAAALQeAAC3HgAAAQAAALYeAAC5HgAAAQAAALgeAAC7HgAAAQAAALoeAAC9HgAAAQAAALweAAC/HgAAAQAAAL4eAADBHgAAAQAAAMAeAADDHgAAAQAAAMIeAADFHgAAAQAAAMQeAADHHgAAAQAAAMYeAADJHgAAAQAAAMgeAADLHgAAAQAAAMoeAADNHgAAAQAAAMweAADPHgAAAQAAAM4eAADRHgAAAQAAANAeAADTHgAAAQAAANIeAADVHgAAAQAAANQeAADXHgAAAQAAANYeAADZHgAAAQAAANgeAADbHgAAAQAAANoeAADdHgAAAQAAANweAADfHgAAAQAAAN4eAADhHgAAAQAAAOAeAADjHgAAAQAAAOIeAADlHgAAAQAAAOQeAADnHgAAAQAAAOYeAADpHgAAAQAAAOgeAADrHgAAAQAAAOoeAADtHgAAAQAAAOweAADvHgAAAQAAAO4eAADxHgAAAQAAAPAeAADzHgAAAQAAAPIeAAD1HgAAAQAAAPQeAAD3HgAAAQAAAPYeAAD5HgAAAQAAAPgeAAD7HgAAAQAAAPoeAAD9HgAAAQAAAPweAAD/HgAAAQAAAP4eAAAAHwAAAQAAAAgfAAABHwAAAQAAAAkfAAACHwAAAQAAAAofAAADHwAAAQAAAAsfAAAEHwAAAQAAAAwfAAAFHwAAAQAAAA0fAAAGHwAAAQAAAA4fAAAHHwAAAQAAAA8fAAAQHwAAAQAAABgfAAARHwAAAQAAABkfAAASHwAAAQAAABofAAATHwAAAQAAABsfAAAUHwAAAQAAABwfAAAVHwAAAQAAAB0fAAAgHwAAAQAAACgfAAAhHwAAAQAAACkfAAAiHwAAAQAAACofAAAjHwAAAQAAACsfAAAkHwAAAQAAACwfAAAlHwAAAQAAAC0fAAAmHwAAAQAAAC4fAAAnHwAAAQAAAC8fAAAwHwAAAQAAADgfAAAxHwAAAQAAADkfAAAyHwAAAQAAADofAAAzHwAAAQAAADsfAAA0HwAAAQAAADwfAAA1HwAAAQAAAD0fAAA2HwAAAQAAAD4fAAA3HwAAAQAAAD8fAABAHwAAAQAAAEgfAABBHwAAAQAAAEkfAABCHwAAAQAAAEofAABDHwAAAQAAAEsfAABEHwAAAQAAAEwfAABFHwAAAQAAAE0fAABRHwAAAQAAAFkfAABTHwAAAQAAAFsfAABVHwAAAQAAAF0fAABXHwAAAQAAAF8fAABgHwAAAQAAAGgfAABhHwAAAQAAAGkfAABiHwAAAQAAAGofAABjHwAAAQAAAGsfAABkHwAAAQAAAGwfAABlHwAAAQAAAG0fAABmHwAAAQAAAG4fAABnHwAAAQAAAG8fAABwHwAAAQAAALofAABxHwAAAQAAALsfAAByHwAAAQAAAMgfAABzHwAAAQAAAMkfAAB0HwAAAQAAAMofAAB1HwAAAQAAAMsfAAB2HwAAAQAAANofAAB3HwAAAQAAANsfAAB4HwAAAQAAAPgfAAB5HwAAAQAAAPkfAAB6HwAAAQAAAOofAAB7HwAAAQAAAOsfAAB8HwAAAQAAAPofAAB9HwAAAQAAAPsfAACwHwAAAQAAALgfAACxHwAAAQAAALkfAADQHwAAAQAAANgfAADRHwAAAQAAANkfAADgHwAAAQAAAOgfAADhHwAAAQAAAOkfAADlHwAAAQAAAOwfAABOIQAAAQAAADIhAABwIQAAAQAAAGAhAABxIQAAAQAAAGEhAAByIQAAAQAAAGIhAABzIQAAAQAAAGMhAAB0IQAAAQAAAGQhAAB1IQAAAQAAAGUhAAB2IQAAAQAAAGYhAAB3IQAAAQAAAGchAAB4IQAAAQAAAGghAAB5IQAAAQAAAGkhAAB6IQAAAQAAAGohAAB7IQAAAQAAAGshAAB8IQAAAQAAAGwhAAB9IQAAAQAAAG0hAAB+IQAAAQAAAG4hAAB/IQAAAQAAAG8hAACEIQAAAQAAAIMhAADQJAAAAQAAALYkAADRJAAAAQAAALckAADSJAAAAQAAALgkAADTJAAAAQAAALkkAADUJAAAAQAAALokAADVJAAAAQAAALskAADWJAAAAQAAALwkAADXJAAAAQAAAL0kAADYJAAAAQAAAL4kAADZJAAAAQAAAL8kAADaJAAAAQAAAMAkAADbJAAAAQAAAMEkAADcJAAAAQAAAMIkAADdJAAAAQAAAMMkAADeJAAAAQAAAMQkAADfJAAAAQAAAMUkAADgJAAAAQAAAMYkAADhJAAAAQAAAMckAADiJAAAAQAAAMgkAADjJAAAAQAAAMkkAADkJAAAAQAAAMokAADlJAAAAQAAAMskAADmJAAAAQAAAMwkAADnJAAAAQAAAM0kAADoJAAAAQAAAM4kAADpJAAAAQAAAM8kAAAwLAAAAQAAAAAsAAAxLAAAAQAAAAEsAAAyLAAAAQAAAAIsAAAzLAAAAQAAAAMsAAA0LAAAAQAAAAQsAAA1LAAAAQAAAAUsAAA2LAAAAQAAAAYsAAA3LAAAAQAAAAcsAAA4LAAAAQAAAAgsAAA5LAAAAQAAAAksAAA6LAAAAQAAAAosAAA7LAAAAQAAAAssAAA8LAAAAQAAAAwsAAA9LAAAAQAAAA0sAAA+LAAAAQAAAA4sAAA/LAAAAQAAAA8sAABALAAAAQAAABAsAABBLAAAAQAAABEsAABCLAAAAQAAABIsAABDLAAAAQAAABMsAABELAAAAQAAABQsAABFLAAAAQAAABUsAABGLAAAAQAAABYsAABHLAAAAQAAABcsAABILAAAAQAAABgsAABJLAAAAQAAABksAABKLAAAAQAAABosAABLLAAAAQAAABssAABMLAAAAQAAABwsAABNLAAAAQAAAB0sAABOLAAAAQAAAB4sAABPLAAAAQAAAB8sAABQLAAAAQAAACAsAABRLAAAAQAAACEsAABSLAAAAQAAACIsAABTLAAAAQAAACMsAABULAAAAQAAACQsAABVLAAAAQAAACUsAABWLAAAAQAAACYsAABXLAAAAQAAACcsAABYLAAAAQAAACgsAABZLAAAAQAAACksAABaLAAAAQAAACosAABbLAAAAQAAACssAABcLAAAAQAAACwsAABdLAAAAQAAAC0sAABeLAAAAQAAAC4sAABfLAAAAQAAAC8sAABhLAAAAQAAAGAsAABlLAAAAQAAADoCAABmLAAAAQAAAD4CAABoLAAAAQAAAGcsAABqLAAAAQAAAGksAABsLAAAAQAAAGssAABzLAAAAQAAAHIsAAB2LAAAAQAAAHUsAACBLAAAAQAAAIAsAACDLAAAAQAAAIIsAACFLAAAAQAAAIQsAACHLAAAAQAAAIYsAACJLAAAAQAAAIgsAACLLAAAAQAAAIosAACNLAAAAQAAAIwsAACPLAAAAQAAAI4sAACRLAAAAQAAAJAsAACTLAAAAQAAAJIsAACVLAAAAQAAAJQsAACXLAAAAQAAAJYsAACZLAAAAQAAAJgsAACbLAAAAQAAAJosAACdLAAAAQAAAJwsAACfLAAAAQAAAJ4sAAChLAAAAQAAAKAsAACjLAAAAQAAAKIsAAClLAAAAQAAAKQsAACnLAAAAQAAAKYsAACpLAAAAQAAAKgsAACrLAAAAQAAAKosAACtLAAAAQAAAKwsAACvLAAAAQAAAK4sAACxLAAAAQAAALAsAACzLAAAAQAAALIsAAC1LAAAAQAAALQsAAC3LAAAAQAAALYsAAC5LAAAAQAAALgsAAC7LAAAAQAAALosAAC9LAAAAQAAALwsAAC/LAAAAQAAAL4sAADBLAAAAQAAAMAsAADDLAAAAQAAAMIsAADFLAAAAQAAAMQsAADHLAAAAQAAAMYsAADJLAAAAQAAAMgsAADLLAAAAQAAAMosAADNLAAAAQAAAMwsAADPLAAAAQAAAM4sAADRLAAAAQAAANAsAADTLAAAAQAAANIsAADVLAAAAQAAANQsAADXLAAAAQAAANYsAADZLAAAAQAAANgsAADbLAAAAQAAANosAADdLAAAAQAAANwsAADfLAAAAQAAAN4sAADhLAAAAQAAAOAsAADjLAAAAQAAAOIsAADsLAAAAQAAAOssAADuLAAAAQAAAO0sAADzLAAAAQAAAPIsAAAALQAAAQAAAKAQAAABLQAAAQAAAKEQAAACLQAAAQAAAKIQAAADLQAAAQAAAKMQAAAELQAAAQAAAKQQAAAFLQAAAQAAAKUQAAAGLQAAAQAAAKYQAAAHLQAAAQAAAKcQAAAILQAAAQAAAKgQAAAJLQAAAQAAAKkQAAAKLQAAAQAAAKoQAAALLQAAAQAAAKsQAAAMLQAAAQAAAKwQAAANLQAAAQAAAK0QAAAOLQAAAQAAAK4QAAAPLQAAAQAAAK8QAAAQLQAAAQAAALAQAAARLQAAAQAAALEQAAASLQAAAQAAALIQAAATLQAAAQAAALMQAAAULQAAAQAAALQQAAAVLQAAAQAAALUQAAAWLQAAAQAAALYQAAAXLQAAAQAAALcQAAAYLQAAAQAAALgQAAAZLQAAAQAAALkQAAAaLQAAAQAAALoQAAAbLQAAAQAAALsQAAAcLQAAAQAAALwQAAAdLQAAAQAAAL0QAAAeLQAAAQAAAL4QAAAfLQAAAQAAAL8QAAAgLQAAAQAAAMAQAAAhLQAAAQAAAMEQAAAiLQAAAQAAAMIQAAAjLQAAAQAAAMMQAAAkLQAAAQAAAMQQAAAlLQAAAQAAAMUQAAAnLQAAAQAAAMcQAAAtLQAAAQAAAM0QAABBpgAAAQAAAECmAABDpgAAAQAAAEKmAABFpgAAAQAAAESmAABHpgAAAQAAAEamAABJpgAAAQAAAEimAABLpgAAAgAAAIgcAABKpgAATaYAAAEAAABMpgAAT6YAAAEAAABOpgAAUaYAAAEAAABQpgAAU6YAAAEAAABSpgAAVaYAAAEAAABUpgAAV6YAAAEAAABWpgAAWaYAAAEAAABYpgAAW6YAAAEAAABapgAAXaYAAAEAAABcpgAAX6YAAAEAAABepgAAYaYAAAEAAABgpgAAY6YAAAEAAABipgAAZaYAAAEAAABkpgAAZ6YAAAEAAABmpgAAaaYAAAEAAABopgAAa6YAAAEAAABqpgAAbaYAAAEAAABspgAAgaYAAAEAAACApgAAg6YAAAEAAACCpgAAhaYAAAEAAACEpgAAh6YAAAEAAACGpgAAiaYAAAEAAACIpgAAi6YAAAEAAACKpgAAjaYAAAEAAACMpgAAj6YAAAEAAACOpgAAkaYAAAEAAACQpgAAk6YAAAEAAACSpgAAlaYAAAEAAACUpgAAl6YAAAEAAACWpgAAmaYAAAEAAACYpgAAm6YAAAEAAACapgAAI6cAAAEAAAAipwAAJacAAAEAAAAkpwAAJ6cAAAEAAAAmpwAAKacAAAEAAAAopwAAK6cAAAEAAAAqpwAALacAAAEAAAAspwAAL6cAAAEAAAAupwAAM6cAAAEAAAAypwAANacAAAEAAAA0pwAAN6cAAAEAAAA2pwAAOacAAAEAAAA4pwAAO6cAAAEAAAA6pwAAPacAAAEAAAA8pwAAP6cAAAEAAAA+pwAAQacAAAEAAABApwAAQ6cAAAEAAABCpwAARacAAAEAAABEpwAAR6cAAAEAAABGpwAASacAAAEAAABIpwAAS6cAAAEAAABKpwAATacAAAEAAABMpwAAT6cAAAEAAABOpwAAUacAAAEAAABQpwAAU6cAAAEAAABSpwAAVacAAAEAAABUpwAAV6cAAAEAAABWpwAAWacAAAEAAABYpwAAW6cAAAEAAABapwAAXacAAAEAAABcpwAAX6cAAAEAAABepwAAYacAAAEAAABgpwAAY6cAAAEAAABipwAAZacAAAEAAABkpwAAZ6cAAAEAAABmpwAAaacAAAEAAABopwAAa6cAAAEAAABqpwAAbacAAAEAAABspwAAb6cAAAEAAABupwAAeqcAAAEAAAB5pwAAfKcAAAEAAAB7pwAAf6cAAAEAAAB+pwAAgacAAAEAAACApwAAg6cAAAEAAACCpwAAhacAAAEAAACEpwAAh6cAAAEAAACGpwAAjKcAAAEAAACLpwAAkacAAAEAAACQpwAAk6cAAAEAAACSpwAAlKcAAAEAAADEpwAAl6cAAAEAAACWpwAAmacAAAEAAACYpwAAm6cAAAEAAACapwAAnacAAAEAAACcpwAAn6cAAAEAAACepwAAoacAAAEAAACgpwAAo6cAAAEAAACipwAApacAAAEAAACkpwAAp6cAAAEAAACmpwAAqacAAAEAAACopwAAtacAAAEAAAC0pwAAt6cAAAEAAAC2pwAAuacAAAEAAAC4pwAAu6cAAAEAAAC6pwAAvacAAAEAAAC8pwAAv6cAAAEAAAC+pwAAwacAAAEAAADApwAAw6cAAAEAAADCpwAAyKcAAAEAAADHpwAAyqcAAAEAAADJpwAA0acAAAEAAADQpwAA16cAAAEAAADWpwAA2acAAAEAAADYpwAA9qcAAAEAAAD1pwAAU6sAAAEAAACzpwAAQf8AAAEAAAAh/wAAQv8AAAEAAAAi/wAAQ/8AAAEAAAAj/wAARP8AAAEAAAAk/wAARf8AAAEAAAAl/wAARv8AAAEAAAAm/wAAR/8AAAEAAAAn/wAASP8AAAEAAAAo/wAASf8AAAEAAAAp/wAASv8AAAEAAAAq/wAAS/8AAAEAAAAr/wAATP8AAAEAAAAs/wAATf8AAAEAAAAt/wAATv8AAAEAAAAu/wAAT/8AAAEAAAAv/wAAUP8AAAEAAAAw/wAAUf8AAAEAAAAx/wAAUv8AAAEAAAAy/wAAU/8AAAEAAAAz/wAAVP8AAAEAAAA0/wAAVf8AAAEAAAA1/wAAVv8AAAEAAAA2/wAAV/8AAAEAAAA3/wAAWP8AAAEAAAA4/wAAWf8AAAEAAAA5/wAAWv8AAAEAAAA6/wAAKAQBAAEAAAAABAEAKQQBAAEAAAABBAEAKgQBAAEAAAACBAEAKwQBAAEAAAADBAEALAQBAAEAAAAEBAEALQQBAAEAAAAFBAEALgQBAAEAAAAGBAEALwQBAAEAAAAHBAEAMAQBAAEAAAAIBAEAMQQBAAEAAAAJBAEAMgQBAAEAAAAKBAEAMwQBAAEAAAALBAEANAQBAAEAAAAMBAEANQQBAAEAAAANBAEANgQBAAEAAAAOBAEANwQBAAEAAAAPBAEAOAQBAAEAAAAQBAEAOQQBAAEAAAARBAEAOgQBAAEAAAASBAEAOwQBAAEAAAATBAEAPAQBAAEAAAAUBAEAPQQBAAEAAAAVBAEAPgQBAAEAAAAWBAEAPwQBAAEAAAAXBAEAQAQBAAEAAAAYBAEAQQQBAAEAAAAZBAEAQgQBAAEAAAAaBAEAQwQBAAEAAAAbBAEARAQBAAEAAAAcBAEARQQBAAEAAAAdBAEARgQBAAEAAAAeBAEARwQBAAEAAAAfBAEASAQBAAEAAAAgBAEASQQBAAEAAAAhBAEASgQBAAEAAAAiBAEASwQBAAEAAAAjBAEATAQBAAEAAAAkBAEATQQBAAEAAAAlBAEATgQBAAEAAAAmBAEATwQBAAEAAAAnBAEA2AQBAAEAAACwBAEA2QQBAAEAAACxBAEA2gQBAAEAAACyBAEA2wQBAAEAAACzBAEA3AQBAAEAAAC0BAEA3QQBAAEAAAC1BAEA3gQBAAEAAAC2BAEA3wQBAAEAAAC3BAEA4AQBAAEAAAC4BAEA4QQBAAEAAAC5BAEA4gQBAAEAAAC6BAEA4wQBAAEAAAC7BAEA5AQBAAEAAAC8BAEA5QQBAAEAAAC9BAEA5gQBAAEAAAC+BAEA5wQBAAEAAAC/BAEA6AQBAAEAAADABAEA6QQBAAEAAADBBAEA6gQBAAEAAADCBAEA6wQBAAEAAADDBAEA7AQBAAEAAADEBAEA7QQBAAEAAADFBAEA7gQBAAEAAADGBAEA7wQBAAEAAADHBAEA8AQBAAEAAADIBAEA8QQBAAEAAADJBAEA8gQBAAEAAADKBAEA8wQBAAEAAADLBAEA9AQBAAEAAADMBAEA9QQBAAEAAADNBAEA9gQBAAEAAADOBAEA9wQBAAEAAADPBAEA+AQBAAEAAADQBAEA+QQBAAEAAADRBAEA+gQBAAEAAADSBAEA+wQBAAEAAADTBAEAlwUBAAEAAABwBQEAmAUBAAEAAABxBQEAmQUBAAEAAAByBQEAmgUBAAEAAABzBQEAmwUBAAEAAAB0BQEAnAUBAAEAAAB1BQEAnQUBAAEAAAB2BQEAngUBAAEAAAB3BQEAnwUBAAEAAAB4BQEAoAUBAAEAAAB5BQEAoQUBAAEAAAB6BQEAowUBAAEAAAB8BQEApAUBAAEAAAB9BQEApQUBAAEAAAB+BQEApgUBAAEAAAB/BQEApwUBAAEAAACABQEAqAUBAAEAAACBBQEAqQUBAAEAAACCBQEAqgUBAAEAAACDBQEAqwUBAAEAAACEBQEArAUBAAEAAACFBQEArQUBAAEAAACGBQEArgUBAAEAAACHBQEArwUBAAEAAACIBQEAsAUBAAEAAACJBQEAsQUBAAEAAACKBQEAswUBAAEAAACMBQEAtAUBAAEAAACNBQEAtQUBAAEAAACOBQEAtgUBAAEAAACPBQEAtwUBAAEAAACQBQEAuAUBAAEAAACRBQEAuQUBAAEAAACSBQEAuwUBAAEAAACUBQEAvAUBAAEAAACVBQEAwAwBAAEAAACADAEAwQwBAAEAAACBDAEAwgwBAAEAAACCDAEAwwwBAAEAAACDDAEAxAwBAAEAAACEDAEAxQwBAAEAAACFDAEAxgwBAAEAAACGDAEAxwwBAAEAAACHDAEAyAwBAAEAAACIDAEAyQwBAAEAAACJDAEAygwBAAEAAACKDAEAywwBAAEAAACLDAEAzAwBAAEAAACMDAEAzQwBAAEAAACNDAEAzgwBAAEAAACODAEAzwwBAAEAAACPDAEA0AwBAAEAAACQDAEA0QwBAAEAAACRDAEA0gwBAAEAAACSDAEA0wwBAAEAAACTDAEA1AwBAAEAAACUDAEA1QwBAAEAAACVDAEA1gwBAAEAAACWDAEA1wwBAAEAAACXDAEA2AwBAAEAAACYDAEA2QwBAAEAAACZDAEA2gwBAAEAAACaDAEA2wwBAAEAAACbDAEA3AwBAAEAAACcDAEA3QwBAAEAAACdDAEA3gwBAAEAAACeDAEA3wwBAAEAAACfDAEA4AwBAAEAAACgDAEA4QwBAAEAAAChDAEA4gwBAAEAAACiDAEA4wwBAAEAAACjDAEA5AwBAAEAAACkDAEA5QwBAAEAAAClDAEA5gwBAAEAAACmDAEA5wwBAAEAAACnDAEA6AwBAAEAAACoDAEA6QwBAAEAAACpDAEA6gwBAAEAAACqDAEA6wwBAAEAAACrDAEA7AwBAAEAAACsDAEA7QwBAAEAAACtDAEA7gwBAAEAAACuDAEA7wwBAAEAAACvDAEA8AwBAAEAAACwDAEA8QwBAAEAAACxDAEA8gwBAAEAAACyDAEAwBgBAAEAAACgGAEAwRgBAAEAAAChGAEAwhgBAAEAAACiGAEAwxgBAAEAAACjGAEAxBgBAAEAAACkGAEAxRgBAAEAAAClGAEAxhgBAAEAAACmGAEAxxgBAAEAAACnGAEAyBgBAAEAAACoGAEAyRgBAAEAAACpGAEAyhgBAAEAAACqGAEAyxgBAAEAAACrGAEAzBgBAAEAAACsGAEAzRgBAAEAAACtGAEAzhgBAAEAAACuGAEAzxgBAAEAAACvGAEA0BgBAAEAAACwGAEA0RgBAAEAAACxGAEA0hgBAAEAAACyGAEA0xgBAAEAAACzGAEA1BgBAAEAAAC0GAEA1RgBAAEAAAC1GAEA1hgBAAEAAAC2GAEA1xgBAAEAAAC3GAEA2BgBAAEAAAC4GAEA2RgBAAEAAAC5GAEA2hgBAAEAAAC6GAEA2xgBAAEAAAC7GAEA3BgBAAEAAAC8GAEA3RgBAAEAAAC9GAEA3hgBAAEAAAC+GAEA3xgBAAEAAAC/GAEAYG4BAAEAAABAbgEAYW4BAAEAAABBbgEAYm4BAAEAAABCbgEAY24BAAEAAABDbgEAZG4BAAEAAABEbgEAZW4BAAEAAABFbgEAZm4BAAEAAABGbgEAZ24BAAEAAABHbgEAaG4BAAEAAABIbgEAaW4BAAEAAABJbgEAam4BAAEAAABKbgEAa24BAAEAAABLbgEAbG4BAAEAAABMbgEAbW4BAAEAAABNbgEAbm4BAAEAAABObgEAb24BAAEAAABPbgEAcG4BAAEAAABQbgEAcW4BAAEAAABRbgEAcm4BAAEAAABSbgEAc24BAAEAAABTbgEAdG4BAAEAAABUbgEAdW4BAAEAAABVbgEAdm4BAAEAAABWbgEAd24BAAEAAABXbgEAeG4BAAEAAABYbgEAeW4BAAEAAABZbgEAem4BAAEAAABabgEAe24BAAEAAABbbgEAfG4BAAEAAABcbgEAfW4BAAEAAABdbgEAfm4BAAEAAABebgEAf24BAAEAAABfbgEAIukBAAEAAAAA6QEAI+kBAAEAAAAB6QEAJOkBAAEAAAAC6QEAJekBAAEAAAAD6QEAJukBAAEAAAAE6QEAJ+kBAAEAAAAF6QEAKOkBAAEAAAAG6QEAKekBAAEAAAAH6QEAKukBAAEAAAAI6QEAK+kBAAEAAAAJ6QEALOkBAAEAAAAK6QEALekBAAEAAAAL6QEALukBAAEAAAAM6QEAL+kBAAEAAAAN6QEAMOkBAAEAAAAO6QEAMekBAAEAAAAP6QEAMukBAAEAAAAQ6QEAM+kBAAEAAAAR6QEANOkBAAEAAAAS6QEANekBAAEAAAAT6QEANukBAAEAAAAU6QEAN+kBAAEAAAAV6QEAOOkBAAEAAAAW6QEAOekBAAEAAAAX6QEAOukBAAEAAAAY6QEAO+kBAAEAAAAZ6QEAPOkBAAEAAAAa6QEAPekBAAEAAAAb6QEAPukBAAEAAAAc6QEAP+kBAAEAAAAd6QEAQOkBAAEAAAAe6QEAQekBAAEAAAAf6QEAQukBAAEAAAAg6QEAQ+kBAAEAAAAh6QEAaQAAAAEAAABJAEHwnxILoghhAAAAvgIAAAEAAACaHgAAZgAAAGYAAAABAAAAAPsAAGYAAABpAAAAAQAAAAH7AABmAAAAbAAAAAEAAAAC+wAAaAAAADEDAAABAAAAlh4AAGoAAAAMAwAAAQAAAPABAABzAAAAcwAAAAIAAADfAAAAnh4AAHMAAAB0AAAAAgAAAAX7AAAG+wAAdAAAAAgDAAABAAAAlx4AAHcAAAAKAwAAAQAAAJgeAAB5AAAACgMAAAEAAACZHgAAvAIAAG4AAAABAAAASQEAAKwDAAC5AwAAAQAAALQfAACuAwAAuQMAAAEAAADEHwAAsQMAAEIDAAABAAAAth8AALEDAAC5AwAAAgAAALMfAAC8HwAAtwMAAEIDAAABAAAAxh8AALcDAAC5AwAAAgAAAMMfAADMHwAAuQMAAEIDAAABAAAA1h8AAMEDAAATAwAAAQAAAOQfAADFAwAAEwMAAAEAAABQHwAAxQMAAEIDAAABAAAA5h8AAMkDAABCAwAAAQAAAPYfAADJAwAAuQMAAAIAAADzHwAA/B8AAM4DAAC5AwAAAQAAAPQfAABlBQAAggUAAAEAAACHBQAAdAUAAGUFAAABAAAAFPsAAHQFAABrBQAAAQAAABX7AAB0BQAAbQUAAAEAAAAX+wAAdAUAAHYFAAABAAAAE/sAAH4FAAB2BQAAAQAAABb7AAAAHwAAuQMAAAIAAACAHwAAiB8AAAEfAAC5AwAAAgAAAIEfAACJHwAAAh8AALkDAAACAAAAgh8AAIofAAADHwAAuQMAAAIAAACDHwAAix8AAAQfAAC5AwAAAgAAAIQfAACMHwAABR8AALkDAAACAAAAhR8AAI0fAAAGHwAAuQMAAAIAAACGHwAAjh8AAAcfAAC5AwAAAgAAAIcfAACPHwAAIB8AALkDAAACAAAAkB8AAJgfAAAhHwAAuQMAAAIAAACRHwAAmR8AACIfAAC5AwAAAgAAAJIfAACaHwAAIx8AALkDAAACAAAAkx8AAJsfAAAkHwAAuQMAAAIAAACUHwAAnB8AACUfAAC5AwAAAgAAAJUfAACdHwAAJh8AALkDAAACAAAAlh8AAJ4fAAAnHwAAuQMAAAIAAACXHwAAnx8AAGAfAAC5AwAAAgAAAKAfAACoHwAAYR8AALkDAAACAAAAoR8AAKkfAABiHwAAuQMAAAIAAACiHwAAqh8AAGMfAAC5AwAAAgAAAKMfAACrHwAAZB8AALkDAAACAAAApB8AAKwfAABlHwAAuQMAAAIAAAClHwAArR8AAGYfAAC5AwAAAgAAAKYfAACuHwAAZx8AALkDAAACAAAApx8AAK8fAABwHwAAuQMAAAEAAACyHwAAdB8AALkDAAABAAAAwh8AAHwfAAC5AwAAAQAAAPIfAABpAAAABwMAAAEAAAAwAQBBoKgSC8EVZgAAAGYAAABpAAAAAQAAAAP7AABmAAAAZgAAAGwAAAABAAAABPsAALEDAABCAwAAuQMAAAEAAAC3HwAAtwMAAEIDAAC5AwAAAQAAAMcfAAC5AwAACAMAAAADAAABAAAA0h8AALkDAAAIAwAAAQMAAAIAAACQAwAA0x8AALkDAAAIAwAAQgMAAAEAAADXHwAAxQMAAAgDAAAAAwAAAQAAAOIfAADFAwAACAMAAAEDAAACAAAAsAMAAOMfAADFAwAACAMAAEIDAAABAAAA5x8AAMUDAAATAwAAAAMAAAEAAABSHwAAxQMAABMDAAABAwAAAQAAAFQfAADFAwAAEwMAAEIDAAABAAAAVh8AAMkDAABCAwAAuQMAAAEAAAD3HwAAxIsAANCLAABwogAAwKIAAOCiAADgpAAA4LoAANDPAADA5QAAsOsAABDsAABwAAEAkAABAFAYAQAUMAEAcAABACAwAQBAMAEA0IsAAFwwAQBoMAEAgDABAFAyAQCAMgEAYEgBAIBIAQCgSAEAwEgBAOBIAQAASQEAgEkBALBJAQDgSQEAAEoBABxKAQAwSgEAREoBAFBKAQBAYAEAXGABAHBgAQDQbQEAsHIBAMCiAADQcgEAgHMBAKBzAQDQcwEAUIcBAHCLAQCAngEAILIBAMDFAQDcxQEA8MUBANDbAQDw2wEAcOEBAIzhAQCg4QEA0OEBAATiAQAQ4gEAYOIBACDjAQCw4wEA9OMBAADkAQAw5AEAQOoBAITqAQCQ6gEAwOoBANTqAQDg6gEA8OoBAMDvAQAU8AEAIPABAHDxAQAQ9AEAQPUBAMD3AQDQ+AEAMPkBAGT5AQBw+QEA8PkBAOAUAgDwHwIAsCECAOAiAgBgIwIAoCMCADAkAgDgJAIAYCUCAHQlAgCAJQIAoCUCAPAlAgAwJgIAgCYCAOAmAgD0JgIAACcCALA+AgAAUwIAoFMCAMBTAgCwVAIA0FQCAPBUAgAMVQIAIFUCAEBVAgCwVQIAcFYCAJBWAgDgVgIAAFcCADBXAgBQVwIAcFcCAMBrAgBAcAIAoHACAOBxAgAAcgIAMHICAFByAgCQcgIAsHICAECHAgBwiQIAIJkCAOC6AABgmQIAwJkCAPStAgAArgIAIK4CAHy3AgCItwIAoLcCAOC3AgAAuAIAILgCAEC4AgCAuAIA4LwCAHDCAgCcwgIAsMICANDCAgDwwgIADMMCACDDAgBAwwIA0M0CAPDNAgAwzgIAUM4CAIDOAgCgzgIA4NICAADTAgDgogAAINMCAFDTAgBw0wIAkNMCAADUAgBA1gIA4NYCAADXAgAk1wIAMNcCAEDXAgBg1wIAdNcCAIDXAgCQ1wIApNcCALDXAgC81wIAyNcCAODXAgBg2AIAgNgCAKDYAgDw3wIAUOACACDhAgBQ4QIAgOECAFDiAgCQ5gIAwOUAAMDmAgDs5gIAAOcCAPDnAgAc6AIAMOgCAHDoAgAQ6QIAgOsCANTrAgDg6wIAAOwCAGDsAgAw8gIAcPICAPD0AgAQ9QIAgPUCAJz1AgCw9QIA0PUCAPD1AgBQ/QIAcP0CAJD9AgBA/gIAvAADAMgAAwDgAAMAAAEDACABAwCQAQMAkAIDAKAEAwCACgMAhAsDAJALAwCkCwMAsAsDAMQLAwDQCwMAAAwDACAMAwBADAMAYAwDAJAMAwCwDAMA0AwDAHANAwCQDQMAwA0DADAOAwCMEQMAoBEDAMARAwAAEgMAIBIDADQSAwBAEgMAYBIDAOASAwAQ7AAApCgDALAoAwDgKAMAMCkDAFApAwCw6wAAcCkDAFBBAwDQVQMA8FUDABBWAwBUVgMAYFYDAGxWAwCAVgMAFDABALxWAwDIVgMA1FYDAOBWAwDsVgMA+FYDAARXAwAQVwMAHFcDAChXAwA0VwMAQFcDAExXAwBYVwMAZFcDAHBXAwB8VwMAiFcDAJRXAwCgVwMArFcDALhXAwDEVwMA0FcDANxXAwDoVwMA9FcDAABYAwAMWAMAGFgDACRYAwAwWAMAPFgDAEhYAwBUWAMAYFgDAGxYAwB4WAMAhFgDAJBYAwCcWAMAqFgDALRYAwDAWAMAzFgDANhYAwDkWAMA8FgDAPxYAwAIWQMAFFkDACBZAwAsWQMAOFkDAERZAwBQWQMAXFkDAGhZAwB0WQMAgFkDAIxZAwAw1wIAmFkDAKRZAwCwWQMAvFkDAMhZAwDUWQMA4FkDAOxZAwD4WQMABFoDABBaAwAcWgMAKFoDADRaAwBAWgMATFoDAFhaAwBkWgMAcFoDAHxaAwCIWgMAlFoDAKBaAwCsWgMAuFoDAMRaAwDQWgMA3FoDABxKAQDoWgMA9FoDAABbAwAMWwMAGFsDACRbAwAwWwMAPFsDAEhbAwBUWwMAYFsDAGxbAwB4WwMAhFsDAJBbAwCcWwMAqFsDALRbAwDAWwMAzFsDANhbAwDkWwMA8FsDAPxbAwAIXAMAFFwDACBcAwAsXAMAOFwDAERcAwBQXAMAXFwDAGhcAwB0XAMAgFwDAIxcAwCYXAMApFwDALBcAwC8XAMAyFwDANRcAwDgXAMA7FwDAPhcAwAEXQMAEF0DABxdAwAoXQMANF0DAEBdAwBMXQMAWF0DAGRdAwBwXQMAfF0DAIhdAwCUXQMAoF0DAKxdAwC4XQMAxF0DANBdAwDcXQMA6F0DAPRdAwAAXgMADF4DABheAwAkXgMAMF4DADxeAwBIXgMAVF4DAGBeAwBsXgMAeF4DAIReAwCQXgMAnF4DAKheAwC0XgMAwF4DAMxeAwDYXgMA5F4DAPTjAQDIAAMA8F4DAPxeAwAIXwMAFF8DACBfAwAsXwMAOF8DAERfAwBQXwMA7OYCAFxfAwBoXwMAdF8DAIBfAwAMwwIAjF8DAJhfAwCw1wIAdNcCAKRfAwCwXwMAvF8DAMhfAwDUXwMA4F8DAOxfAwD4XwMABGADABBgAwAcYAMAKGADADRgAwBAYAMATGADAFhgAwBkYAMAcGADAHxgAwCIYAMAvAADAJRgAwCgYAMArGADALhgAwDEYAMA0GADANxgAwDoYAMA9GADAABhAwAMYQMAGGEDACRhAwAwYQMAPGEDAEhhAwBUYQMAYGEDAGxhAwB4YQMAhGEDAJBhAwCcYQMAqGEDALRhAwDAYQMAzGEDANhhAwDkYQMA8GEDAPxhAwAIYgMAFGIDACBiAwAsYgMAOGIDAERiAwBQYgMAXGIDAGhiAwB0YgMAgGIDAIxiAwCYYgMApGIDALBiAwC8YgMAyGIDANRiAwDgYgMA7GIDAPhiAwAEYwMAEGMDABxjAwAoYwMANGMDAEBjAwBMYwMAWGMDAGRjAwBwYwMAfGMDAIhjAwCUYwMAoGMDAKxjAwC4YwMAxGMDANBjAwDcYwMA6GMDAPRjAwAAZAMADGQDABhkAwAkZAMAMGQDADxkAwBIZAMAVGQDAGBkAwBsZAMAeGQDAIRkAwCQZAMAnGQDAKhkAwC0ZAMAwGQDAMxkAwDYZAMA5GQDAPBkAwD8ZAMACGUDABRlAwAgZQMALGUDADhlAwBQZQMAFQAAAAsFAAABAAAAAQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAAAAAAIwAAAAUAQey9Egs9JAAAAEMFAAAEAAAAAQAAABYAAAAlAAAAJgAAACcAAAAoAAAAKQAAACoAAAArAAAALAAAAC0AAAAuAAAAIQBBtL4SCwUvAAAAHwBByL4SCwEFAEHUvhILATAAQey+EgsOMQAAADIAAABooQQAAAQAQYS/EgsBAQBBlL8SCwX/////CgBB2L8SCwPQx1Q=\"),A=>A.charCodeAt(0));const g=Q,E=async A=>WebAssembly.instantiate(g,A).then(B=>B.instance.exports);export{E as default,E as getWasmInstance,g as wasmBinary};\n"
  },
  {
    "path": "jesse/static/_nuxt/CGVVOGHx.js",
    "content": "import a from\"./BMYPR7BL.js\";import e from\"./cPjAOO0u.js\";import n from\"./BPhBrDlE.js\";import t from\"./ySlJ1b_l.js\";import r from\"./BQoSv7ci.js\";import\"./xI-RfyKK.js\";const o=Object.freeze(JSON.parse(`{\"displayName\":\"APL\",\"fileTypes\":[\"apl\",\"apla\",\"aplc\",\"aplf\",\"apli\",\"apln\",\"aplo\",\"dyalog\",\"dyapp\",\"mipage\"],\"firstLineMatch\":\"[⌶-⍺]|^\\\\\\\\#!.*(?:\\\\\\\\s|\\\\\\\\/|(?<=!)\\\\\\\\b)(?:gnu[-._]?apl|aplx?|dyalog)(?:$|\\\\\\\\s)|(?i:-\\\\\\\\*-(?:\\\\\\\\s*(?=[^:;\\\\\\\\s]+\\\\\\\\s*-\\\\\\\\*-)|(?:.*?[;\\\\\\\\s]|(?<=-\\\\\\\\*-))mode\\\\\\\\s*:\\\\\\\\s*)apl(?=[\\\\\\\\s;]|(?<![-*])-\\\\\\\\*-).*?-\\\\\\\\*-|(?:(?:\\\\\\\\s|^)vi(?:m[<=>]?\\\\\\\\d+|m)?|\\\\\\\\sex)(?=:(?=\\\\\\\\s*set?\\\\\\\\s[^\\\\\\\\n:]+:)|:(?!\\\\\\\\s*set?\\\\\\\\s))(?:(?:\\\\\\\\s|\\\\\\\\s*:\\\\\\\\s*)\\\\\\\\w*(?:\\\\\\\\s*=(?:[^\\\\\\\\n\\\\\\\\\\\\\\\\\\\\\\\\s]|\\\\\\\\\\\\\\\\.)*)?)*[\\\\\\\\s:](?:filetype|ft|syntax)\\\\\\\\s*=apl(?=\\\\\\\\s|:|$))\",\"foldingStartMarker\":\"{\",\"foldingStopMarker\":\"}\",\"name\":\"apl\",\"patterns\":[{\"match\":\"\\\\\\\\A#!.*$\",\"name\":\"comment.line.shebang.apl\"},{\"include\":\"#heredocs\"},{\"include\":\"#main\"},{\"begin\":\"^\\\\\\\\s*((\\\\\\\\))OFF|(\\\\\\\\])NEXTFILE)\\\\\\\\b(.*)$\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.command.eof.apl\"},\"2\":{\"name\":\"punctuation.definition.command.apl\"},\"3\":{\"name\":\"punctuation.definition.command.apl\"},\"4\":{\"patterns\":[{\"include\":\"#comment\"}]}},\"contentName\":\"text.embedded.apl\",\"end\":\"(?=N)A\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.round.bracket.begin.apl\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.round.bracket.end.apl\"}},\"name\":\"meta.round.bracketed.group.apl\",\"patterns\":[{\"include\":\"#main\"}]},{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.square.bracket.begin.apl\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.square.bracket.end.apl\"}},\"name\":\"meta.square.bracketed.group.apl\",\"patterns\":[{\"include\":\"#main\"}]},{\"begin\":\"^\\\\\\\\s*((\\\\\\\\))\\\\\\\\S+)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.command.apl\"},\"2\":{\"name\":\"punctuation.definition.command.apl\"}},\"end\":\"$\",\"name\":\"meta.system.command.apl\",\"patterns\":[{\"include\":\"#command-arguments\"},{\"include\":\"#command-switches\"},{\"include\":\"#main\"}]},{\"begin\":\"^\\\\\\\\s*((\\\\\\\\])\\\\\\\\S+)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.command.apl\"},\"2\":{\"name\":\"punctuation.definition.command.apl\"}},\"end\":\"$\",\"name\":\"meta.user.command.apl\",\"patterns\":[{\"include\":\"#command-arguments\"},{\"include\":\"#command-switches\"},{\"include\":\"#main\"}]}],\"repository\":{\"class\":{\"patterns\":[{\"begin\":\"(?<=\\\\\\\\s|^)((:)Class)\\\\\\\\s+('[^']*'?|[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ][A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*)\\\\\\\\s*((:)\\\\\\\\s*(?:('[^']*'?|[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ][A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*)\\\\\\\\s*)?)?(.*?)$\",\"beginCaptures\":{\"0\":{\"name\":\"meta.class.apl\"},\"1\":{\"name\":\"keyword.control.class.apl\"},\"2\":{\"name\":\"punctuation.definition.class.apl\"},\"3\":{\"name\":\"entity.name.type.class.apl\",\"patterns\":[{\"include\":\"#strings\"}]},\"4\":{\"name\":\"entity.other.inherited-class.apl\"},\"5\":{\"name\":\"punctuation.separator.inheritance.apl\"},\"6\":{\"patterns\":[{\"include\":\"#strings\"}]},\"7\":{\"name\":\"entity.other.class.interfaces.apl\",\"patterns\":[{\"include\":\"#csv\"}]}},\"end\":\"(?<=\\\\\\\\s|^)((:)EndClass)(?=\\\\\\\\b)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.class.apl\"},\"2\":{\"name\":\"punctuation.definition.class.apl\"}},\"patterns\":[{\"begin\":\"(?<=\\\\\\\\s|^)(:)Field(?=\\\\\\\\s)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.field.apl\"},\"1\":{\"name\":\"punctuation.definition.field.apl\"}},\"end\":\"\\\\\\\\s*(←.*)?(?:$|(?=⍝))\",\"endCaptures\":{\"0\":{\"name\":\"entity.other.initial-value.apl\"},\"1\":{\"patterns\":[{\"include\":\"#main\"}]}},\"name\":\"meta.field.apl\",\"patterns\":[{\"match\":\"(?<=\\\\\\\\s|^)Public(?=\\\\\\\\s|$)\",\"name\":\"storage.modifier.access.public.apl\"},{\"match\":\"(?<=\\\\\\\\s|^)Private(?=\\\\\\\\s|$)\",\"name\":\"storage.modifier.access.private.apl\"},{\"match\":\"(?<=\\\\\\\\s|^)Shared(?=\\\\\\\\s|$)\",\"name\":\"storage.modifier.shared.apl\"},{\"match\":\"(?<=\\\\\\\\s|^)Instance(?=\\\\\\\\s|$)\",\"name\":\"storage.modifier.instance.apl\"},{\"match\":\"(?<=\\\\\\\\s|^)ReadOnly(?=\\\\\\\\s|$)\",\"name\":\"storage.modifier.readonly.apl\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#strings\"}]}},\"match\":\"('[^']*'?|[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ][A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*)\",\"name\":\"entity.name.type.apl\"}]},{\"include\":\"$self\"}]}]},\"command-arguments\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(?=\\\\\\\\S)\",\"end\":\"\\\\\\\\b(?=\\\\\\\\s)\",\"name\":\"variable.parameter.argument.apl\",\"patterns\":[{\"include\":\"#main\"}]}]},\"command-switches\":{\"patterns\":[{\"begin\":\"(?<=\\\\\\\\s)(-)([A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ][A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*)(=)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.delimiter.switch.apl\"},\"2\":{\"name\":\"entity.name.switch.apl\"},\"3\":{\"name\":\"punctuation.assignment.switch.apl\"}},\"end\":\"\\\\\\\\b(?=\\\\\\\\s)\",\"name\":\"variable.parameter.switch.apl\",\"patterns\":[{\"include\":\"#main\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.delimiter.switch.apl\"},\"2\":{\"name\":\"entity.name.switch.apl\"}},\"match\":\"(?<=\\\\\\\\s)(-)([A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ][A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*)(?!=)\",\"name\":\"variable.parameter.switch.apl\"}]},\"comment\":{\"patterns\":[{\"begin\":\"⍝\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.apl\"}},\"end\":\"$\",\"name\":\"comment.line.apl\"}]},\"csv\":{\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.separator.apl\"},{\"include\":\"$self\"}]},\"definition\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*?(∇)(?:\\\\\\\\s*(?:([A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ][A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*)|\\\\\\\\s*((\\\\\\\\{)(?:\\\\\\\\s*[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ][A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\\\\\\\\s*)*(\\\\\\\\})|(\\\\\\\\()(?:\\\\\\\\s*[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ][A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\\\\\\\\s*)*(\\\\\\\\))|(\\\\\\\\(\\\\\\\\s*\\\\\\\\{)(?:\\\\\\\\s*[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ][A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\\\\\\\\s*)*(\\\\\\\\}\\\\\\\\s*\\\\\\\\))|(\\\\\\\\{\\\\\\\\s*\\\\\\\\()(?:\\\\\\\\s*[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ][A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\\\\\\\\s*)*(\\\\\\\\)\\\\\\\\s*\\\\\\\\}))\\\\\\\\s*)\\\\\\\\s*(←))?\\\\\\\\s*(?:(?:([A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ][A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*)\\\\\\\\s*((\\\\\\\\[)\\\\\\\\s*(?:\\\\\\\\s*[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ][A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\\\\\\\\s*(.*?)|([^\\\\\\\\]]*))\\\\\\\\s*(\\\\\\\\]))?\\\\\\\\s*?((?<=\\\\\\\\s|\\\\\\\\])[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ][A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*|(\\\\\\\\()(?:\\\\\\\\s*[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ][A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\\\\\\\\s*)*(\\\\\\\\)))\\\\\\\\s*(?=;|$))|(?:([A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ][A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\\\\\\\\s+)|((\\\\\\\\{)(?:\\\\\\\\s*[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ][A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\\\\\\\\s*)*(\\\\\\\\})|(\\\\\\\\(\\\\\\\\s*\\\\\\\\{)(?:\\\\\\\\s*[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ][A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\\\\\\\\s*)*(\\\\\\\\}\\\\\\\\s*\\\\\\\\))|(\\\\\\\\{\\\\\\\\s*\\\\\\\\()(?:\\\\\\\\s*[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ][A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\\\\\\\\s*)*(\\\\\\\\)\\\\\\\\s*\\\\\\\\})))?\\\\\\\\s*(?:([A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ][A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*)\\\\\\\\s*((\\\\\\\\[)\\\\\\\\s*(?:\\\\\\\\s*[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ][A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\\\\\\\\s*(.*?)|([^\\\\\\\\]]*))\\\\\\\\s*(\\\\\\\\]))?|((\\\\\\\\()(\\\\\\\\s*[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ][A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*)?\\\\\\\\s*([A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ][A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*)\\\\\\\\s*?((\\\\\\\\[)\\\\\\\\s*(?:\\\\\\\\s*[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ][A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\\\\\\\\s*(.*?)|([^\\\\\\\\]]*))\\\\\\\\s*(\\\\\\\\]))?\\\\\\\\s*([A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ][A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\\\\\\\\s*)?(\\\\\\\\))))\\\\\\\\s*((?<=\\\\\\\\s|\\\\\\\\])[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ][A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*|\\\\\\\\s*(\\\\\\\\()(?:\\\\\\\\s*[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ][A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\\\\\\\\s*)*(\\\\\\\\)))?)\\\\\\\\s*([^;]+)?(((?>\\\\\\\\s*;(?:\\\\\\\\s*[⎕A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ][A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\\\\\\\\s*)+)+)|([^⍝]+))?\\\\\\\\s*(⍝.*)?$\",\"beginCaptures\":{\"0\":{\"name\":\"entity.function.definition.apl\"},\"1\":{\"name\":\"keyword.operator.nabla.apl\"},\"2\":{\"name\":\"entity.function.return-value.apl\"},\"3\":{\"name\":\"entity.function.return-value.shy.apl\"},\"4\":{\"name\":\"punctuation.definition.return-value.begin.apl\"},\"5\":{\"name\":\"punctuation.definition.return-value.end.apl\"},\"6\":{\"name\":\"punctuation.definition.return-value.begin.apl\"},\"7\":{\"name\":\"punctuation.definition.return-value.end.apl\"},\"8\":{\"name\":\"punctuation.definition.return-value.begin.apl\"},\"9\":{\"name\":\"punctuation.definition.return-value.end.apl\"},\"10\":{\"name\":\"punctuation.definition.return-value.begin.apl\"},\"11\":{\"name\":\"punctuation.definition.return-value.end.apl\"},\"12\":{\"name\":\"keyword.operator.assignment.apl\"},\"13\":{\"name\":\"entity.function.name.apl\",\"patterns\":[{\"include\":\"#embolden\"}]},\"14\":{\"name\":\"entity.function.axis.apl\"},\"15\":{\"name\":\"punctuation.definition.axis.begin.apl\"},\"16\":{\"name\":\"invalid.illegal.extra-characters.apl\"},\"17\":{\"name\":\"invalid.illegal.apl\"},\"18\":{\"name\":\"punctuation.definition.axis.end.apl\"},\"19\":{\"name\":\"entity.function.arguments.right.apl\"},\"20\":{\"name\":\"punctuation.definition.arguments.begin.apl\"},\"21\":{\"name\":\"punctuation.definition.arguments.end.apl\"},\"22\":{\"name\":\"entity.function.arguments.left.apl\"},\"23\":{\"name\":\"entity.function.arguments.left.optional.apl\"},\"24\":{\"name\":\"punctuation.definition.arguments.begin.apl\"},\"25\":{\"name\":\"punctuation.definition.arguments.end.apl\"},\"26\":{\"name\":\"punctuation.definition.arguments.begin.apl\"},\"27\":{\"name\":\"punctuation.definition.arguments.end.apl\"},\"28\":{\"name\":\"punctuation.definition.arguments.begin.apl\"},\"29\":{\"name\":\"punctuation.definition.arguments.end.apl\"},\"30\":{\"name\":\"entity.function.name.apl\",\"patterns\":[{\"include\":\"#embolden\"}]},\"31\":{\"name\":\"entity.function.axis.apl\"},\"32\":{\"name\":\"punctuation.definition.axis.begin.apl\"},\"33\":{\"name\":\"invalid.illegal.extra-characters.apl\"},\"34\":{\"name\":\"invalid.illegal.apl\"},\"35\":{\"name\":\"punctuation.definition.axis.end.apl\"},\"36\":{\"name\":\"entity.function.operands.apl\"},\"37\":{\"name\":\"punctuation.definition.operands.begin.apl\"},\"38\":{\"name\":\"entity.function.operands.left.apl\"},\"39\":{\"name\":\"entity.function.name.apl\",\"patterns\":[{\"include\":\"#embolden\"}]},\"40\":{\"name\":\"entity.function.axis.apl\"},\"41\":{\"name\":\"punctuation.definition.axis.begin.apl\"},\"42\":{\"name\":\"invalid.illegal.extra-characters.apl\"},\"43\":{\"name\":\"invalid.illegal.apl\"},\"44\":{\"name\":\"punctuation.definition.axis.end.apl\"},\"45\":{\"name\":\"entity.function.operands.right.apl\"},\"46\":{\"name\":\"punctuation.definition.operands.end.apl\"},\"47\":{\"name\":\"entity.function.arguments.right.apl\"},\"48\":{\"name\":\"punctuation.definition.arguments.begin.apl\"},\"49\":{\"name\":\"punctuation.definition.arguments.end.apl\"},\"50\":{\"name\":\"invalid.illegal.arguments.right.apl\"},\"51\":{\"name\":\"entity.function.local-variables.apl\"},\"52\":{\"patterns\":[{\"match\":\";\",\"name\":\"punctuation.separator.apl\"}]},\"53\":{\"name\":\"invalid.illegal.local-variables.apl\"},\"54\":{\"name\":\"comment.line.apl\"}},\"end\":\"^\\\\\\\\s*?(?:(∇)|(⍫))\\\\\\\\s*?(⍝.*?)?$\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.nabla.apl\"},\"2\":{\"name\":\"keyword.operator.lock.apl\"},\"3\":{\"name\":\"comment.line.apl\"}},\"name\":\"meta.function.apl\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"entity.function.local-variables.apl\"},\"1\":{\"patterns\":[{\"match\":\";\",\"name\":\"punctuation.separator.apl\"}]}},\"match\":\"^\\\\\\\\s*((?>;(?:\\\\\\\\s*[⎕A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ][A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\\\\\\\\s*)+)+)\",\"name\":\"entity.function.definition.apl\"},{\"include\":\"$self\"}]}]},\"embedded-apl\":{\"patterns\":[{\"begin\":\"(?i)(<(\\\\\\\\?|%)(?:apl(?=\\\\\\\\s+)|=))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.embedded.begin.apl\"}},\"end\":\"(?<=\\\\\\\\s)(\\\\\\\\2>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.embedded.end.apl\"}},\"name\":\"meta.embedded.block.apl\",\"patterns\":[{\"include\":\"#main\"}]}]},\"embolden\":{\"patterns\":[{\"match\":\".+\",\"name\":\"markup.bold.identifier.apl\"}]},\"heredocs\":{\"patterns\":[{\"begin\":\"^.*?⎕INP\\\\\\\\s+('|\\\\\")((?i).*?HTML?.*?|END-OF-⎕INP)\\\\\\\\1.*$\",\"beginCaptures\":{\"0\":{\"patterns\":[{\"include\":\"#main\"}]}},\"contentName\":\"text.embedded.html.basic\",\"end\":\"^.*?\\\\\\\\2.*?$\",\"endCaptures\":{\"0\":{\"name\":\"constant.other.apl\"}},\"name\":\"meta.heredoc.apl\",\"patterns\":[{\"include\":\"text.html.basic\"},{\"include\":\"#embedded-apl\"}]},{\"begin\":\"^.*?⎕INP\\\\\\\\s+('|\\\\\")((?i).*?(?:XML|XSLT|SVG|RSS).*?)\\\\\\\\1.*$\",\"beginCaptures\":{\"0\":{\"patterns\":[{\"include\":\"#main\"}]}},\"contentName\":\"text.embedded.xml\",\"end\":\"^.*?\\\\\\\\2.*?$\",\"endCaptures\":{\"0\":{\"name\":\"constant.other.apl\"}},\"name\":\"meta.heredoc.apl\",\"patterns\":[{\"include\":\"text.xml\"},{\"include\":\"#embedded-apl\"}]},{\"begin\":\"^.*?⎕INP\\\\\\\\s+('|\\\\\")((?i).*?(?:CSS|stylesheet).*?)\\\\\\\\1.*$\",\"beginCaptures\":{\"0\":{\"patterns\":[{\"include\":\"#main\"}]}},\"contentName\":\"source.embedded.css\",\"end\":\"^.*?\\\\\\\\2.*?$\",\"endCaptures\":{\"0\":{\"name\":\"constant.other.apl\"}},\"name\":\"meta.heredoc.apl\",\"patterns\":[{\"include\":\"source.css\"},{\"include\":\"#embedded-apl\"}]},{\"begin\":\"^.*?⎕INP\\\\\\\\s+('|\\\\\")((?i).*?(?:JS(?!ON)|(?:ECMA|J|Java).?Script).*?)\\\\\\\\1.*$\",\"beginCaptures\":{\"0\":{\"patterns\":[{\"include\":\"#main\"}]}},\"contentName\":\"source.embedded.js\",\"end\":\"^.*?\\\\\\\\2.*?$\",\"endCaptures\":{\"0\":{\"name\":\"constant.other.apl\"}},\"name\":\"meta.heredoc.apl\",\"patterns\":[{\"include\":\"source.js\"},{\"include\":\"#embedded-apl\"}]},{\"begin\":\"^.*?⎕INP\\\\\\\\s+('|\\\\\")((?i).*?(?:JSON).*?)\\\\\\\\1.*$\",\"beginCaptures\":{\"0\":{\"patterns\":[{\"include\":\"#main\"}]}},\"contentName\":\"source.embedded.json\",\"end\":\"^.*?\\\\\\\\2.*?$\",\"endCaptures\":{\"0\":{\"name\":\"constant.other.apl\"}},\"name\":\"meta.heredoc.apl\",\"patterns\":[{\"include\":\"source.json\"},{\"include\":\"#embedded-apl\"}]},{\"begin\":\"^.*?⎕INP\\\\\\\\s+('|\\\\\")(?i)((?:Raw|Plain)?\\\\\\\\s*Te?xt)\\\\\\\\1.*$\",\"beginCaptures\":{\"0\":{\"patterns\":[{\"include\":\"#main\"}]}},\"contentName\":\"text.embedded.plain\",\"end\":\"^.*?\\\\\\\\2.*?$\",\"endCaptures\":{\"0\":{\"name\":\"constant.other.apl\"}},\"name\":\"meta.heredoc.apl\",\"patterns\":[{\"include\":\"#embedded-apl\"}]},{\"begin\":\"^.*?⎕INP\\\\\\\\s+('|\\\\\")(.*?)\\\\\\\\1.*$\",\"beginCaptures\":{\"0\":{\"patterns\":[{\"include\":\"#main\"}]}},\"end\":\"^.*?\\\\\\\\2.*?$\",\"endCaptures\":{\"0\":{\"name\":\"constant.other.apl\"}},\"name\":\"meta.heredoc.apl\",\"patterns\":[{\"include\":\"$self\"}]}]},\"label\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.label.name.apl\"},\"2\":{\"name\":\"punctuation.definition.label.end.apl\"}},\"match\":\"^\\\\\\\\s*([A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ][A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*)(:)\",\"name\":\"meta.label.apl\"}]},\"lambda\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.lambda.begin.apl\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.lambda.end.apl\"}},\"name\":\"meta.lambda.function.apl\",\"patterns\":[{\"include\":\"#main\"},{\"include\":\"#lambda-variables\"}]},\"lambda-variables\":{\"patterns\":[{\"match\":\"⍺⍺\",\"name\":\"constant.language.lambda.operands.left.apl\"},{\"match\":\"⍵⍵\",\"name\":\"constant.language.lambda.operands.right.apl\"},{\"match\":\"[⍺⍶]\",\"name\":\"constant.language.lambda.arguments.left.apl\"},{\"match\":\"[⍵⍹]\",\"name\":\"constant.language.lambda.arguments.right.apl\"},{\"match\":\"χ\",\"name\":\"constant.language.lambda.arguments.axis.apl\"},{\"match\":\"∇∇\",\"name\":\"constant.language.lambda.operands.self.operator.apl\"},{\"match\":\"∇\",\"name\":\"constant.language.lambda.operands.self.function.apl\"},{\"match\":\"λ\",\"name\":\"constant.language.lambda.symbol.apl\"}]},\"main\":{\"patterns\":[{\"include\":\"#class\"},{\"include\":\"#definition\"},{\"include\":\"#comment\"},{\"include\":\"#label\"},{\"include\":\"#sck\"},{\"include\":\"#strings\"},{\"include\":\"#number\"},{\"include\":\"#lambda\"},{\"include\":\"#sysvars\"},{\"include\":\"#symbols\"},{\"include\":\"#name\"}]},\"name\":{\"patterns\":[{\"match\":\"[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ][A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\",\"name\":\"variable.other.readwrite.apl\"}]},\"number\":{\"patterns\":[{\"match\":\"¯?[0-9][¯0-9A-Za-z]*(?:\\\\\\\\.[¯0-9Ee][¯0-9A-Za-z]*)*|¯?\\\\\\\\.[0-9Ee][¯0-9A-Za-z]*\",\"name\":\"constant.numeric.apl\"}]},\"sck\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.sck.begin.apl\"}},\"match\":\"(?<=\\\\\\\\s|^)(:)[A-Za-z]+\",\"name\":\"keyword.control.sck.apl\"}]},\"strings\":{\"patterns\":[{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.apl\"}},\"end\":\"'|$\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.apl\"}},\"name\":\"string.quoted.single.apl\",\"patterns\":[{\"match\":\"[^']*[^'\\\\\\\\n\\\\\\\\r\\\\\\\\\\\\\\\\]$\",\"name\":\"invalid.illegal.string.apl\"}]},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.apl\"}},\"end\":\"\\\\\"|$\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.apl\"}},\"name\":\"string.quoted.double.apl\",\"patterns\":[{\"match\":\"[^\\\\\"]*[^\\\\\"\\\\\\\\n\\\\\\\\r\\\\\\\\\\\\\\\\]$\",\"name\":\"invalid.illegal.string.apl\"}]}]},\"symbols\":{\"patterns\":[{\"match\":\"(?<=\\\\\\\\s)←(?=\\\\\\\\s|$)\",\"name\":\"keyword.spaced.operator.assignment.apl\"},{\"match\":\"(?<=\\\\\\\\s)→(?=\\\\\\\\s|$)\",\"name\":\"keyword.spaced.control.goto.apl\"},{\"match\":\"(?<=\\\\\\\\s)≡(?=\\\\\\\\s|$)\",\"name\":\"keyword.spaced.operator.identical.apl\"},{\"match\":\"(?<=\\\\\\\\s)≢(?=\\\\\\\\s|$)\",\"name\":\"keyword.spaced.operator.not-identical.apl\"},{\"match\":\"\\\\\\\\+\",\"name\":\"keyword.operator.plus.apl\"},{\"match\":\"[-−]\",\"name\":\"keyword.operator.minus.apl\"},{\"match\":\"×\",\"name\":\"keyword.operator.times.apl\"},{\"match\":\"÷\",\"name\":\"keyword.operator.divide.apl\"},{\"match\":\"⌊\",\"name\":\"keyword.operator.floor.apl\"},{\"match\":\"⌈\",\"name\":\"keyword.operator.ceiling.apl\"},{\"match\":\"[∣|]\",\"name\":\"keyword.operator.absolute.apl\"},{\"match\":\"[⋆*]\",\"name\":\"keyword.operator.exponent.apl\"},{\"match\":\"⍟\",\"name\":\"keyword.operator.logarithm.apl\"},{\"match\":\"○\",\"name\":\"keyword.operator.circle.apl\"},{\"match\":\"!\",\"name\":\"keyword.operator.factorial.apl\"},{\"match\":\"∧\",\"name\":\"keyword.operator.and.apl\"},{\"match\":\"∨\",\"name\":\"keyword.operator.or.apl\"},{\"match\":\"⍲\",\"name\":\"keyword.operator.nand.apl\"},{\"match\":\"⍱\",\"name\":\"keyword.operator.nor.apl\"},{\"match\":\"<\",\"name\":\"keyword.operator.less.apl\"},{\"match\":\"≤\",\"name\":\"keyword.operator.less-or-equal.apl\"},{\"match\":\"=\",\"name\":\"keyword.operator.equal.apl\"},{\"match\":\"≥\",\"name\":\"keyword.operator.greater-or-equal.apl\"},{\"match\":\">\",\"name\":\"keyword.operator.greater.apl\"},{\"match\":\"≠\",\"name\":\"keyword.operator.not-equal.apl\"},{\"match\":\"[∼~]\",\"name\":\"keyword.operator.tilde.apl\"},{\"match\":\"\\\\\\\\?\",\"name\":\"keyword.operator.random.apl\"},{\"match\":\"[∊∈]\",\"name\":\"keyword.operator.member-of.apl\"},{\"match\":\"⍷\",\"name\":\"keyword.operator.find.apl\"},{\"match\":\",\",\"name\":\"keyword.operator.comma.apl\"},{\"match\":\"⍪\",\"name\":\"keyword.operator.comma-bar.apl\"},{\"match\":\"⌷\",\"name\":\"keyword.operator.squad.apl\"},{\"match\":\"⍳\",\"name\":\"keyword.operator.iota.apl\"},{\"match\":\"⍴\",\"name\":\"keyword.operator.rho.apl\"},{\"match\":\"↑\",\"name\":\"keyword.operator.take.apl\"},{\"match\":\"↓\",\"name\":\"keyword.operator.drop.apl\"},{\"match\":\"⊣\",\"name\":\"keyword.operator.left.apl\"},{\"match\":\"⊢\",\"name\":\"keyword.operator.right.apl\"},{\"match\":\"⊤\",\"name\":\"keyword.operator.encode.apl\"},{\"match\":\"⊥\",\"name\":\"keyword.operator.decode.apl\"},{\"match\":\"\\\\\\\\/\",\"name\":\"keyword.operator.slash.apl\"},{\"match\":\"⌿\",\"name\":\"keyword.operator.slash-bar.apl\"},{\"match\":\"\\\\\\\\x5C\",\"name\":\"keyword.operator.backslash.apl\"},{\"match\":\"⍀\",\"name\":\"keyword.operator.backslash-bar.apl\"},{\"match\":\"⌽\",\"name\":\"keyword.operator.rotate-last.apl\"},{\"match\":\"⊖\",\"name\":\"keyword.operator.rotate-first.apl\"},{\"match\":\"⍉\",\"name\":\"keyword.operator.transpose.apl\"},{\"match\":\"⍋\",\"name\":\"keyword.operator.grade-up.apl\"},{\"match\":\"⍒\",\"name\":\"keyword.operator.grade-down.apl\"},{\"match\":\"⌹\",\"name\":\"keyword.operator.quad-divide.apl\"},{\"match\":\"≡\",\"name\":\"keyword.operator.identical.apl\"},{\"match\":\"≢\",\"name\":\"keyword.operator.not-identical.apl\"},{\"match\":\"⊂\",\"name\":\"keyword.operator.enclose.apl\"},{\"match\":\"⊃\",\"name\":\"keyword.operator.pick.apl\"},{\"match\":\"∩\",\"name\":\"keyword.operator.intersection.apl\"},{\"match\":\"∪\",\"name\":\"keyword.operator.union.apl\"},{\"match\":\"⍎\",\"name\":\"keyword.operator.hydrant.apl\"},{\"match\":\"⍕\",\"name\":\"keyword.operator.thorn.apl\"},{\"match\":\"⊆\",\"name\":\"keyword.operator.underbar-shoe-left.apl\"},{\"match\":\"⍸\",\"name\":\"keyword.operator.underbar-iota.apl\"},{\"match\":\"¨\",\"name\":\"keyword.operator.each.apl\"},{\"match\":\"⍤\",\"name\":\"keyword.operator.rank.apl\"},{\"match\":\"⌸\",\"name\":\"keyword.operator.quad-equal.apl\"},{\"match\":\"⍨\",\"name\":\"keyword.operator.commute.apl\"},{\"match\":\"⍣\",\"name\":\"keyword.operator.power.apl\"},{\"match\":\"\\\\\\\\.\",\"name\":\"keyword.operator.dot.apl\"},{\"match\":\"∘\",\"name\":\"keyword.operator.jot.apl\"},{\"match\":\"⍠\",\"name\":\"keyword.operator.quad-colon.apl\"},{\"match\":\"&\",\"name\":\"keyword.operator.ampersand.apl\"},{\"match\":\"⌶\",\"name\":\"keyword.operator.i-beam.apl\"},{\"match\":\"⌺\",\"name\":\"keyword.operator.quad-diamond.apl\"},{\"match\":\"@\",\"name\":\"keyword.operator.at.apl\"},{\"match\":\"◊\",\"name\":\"keyword.operator.lozenge.apl\"},{\"match\":\";\",\"name\":\"keyword.operator.semicolon.apl\"},{\"match\":\"¯\",\"name\":\"keyword.operator.high-minus.apl\"},{\"match\":\"←\",\"name\":\"keyword.operator.assignment.apl\"},{\"match\":\"→\",\"name\":\"keyword.control.goto.apl\"},{\"match\":\"⍬\",\"name\":\"constant.language.zilde.apl\"},{\"match\":\"⋄\",\"name\":\"keyword.operator.diamond.apl\"},{\"match\":\"⍫\",\"name\":\"keyword.operator.lock.apl\"},{\"match\":\"⎕\",\"name\":\"keyword.operator.quad.apl\"},{\"match\":\"##\",\"name\":\"constant.language.namespace.parent.apl\"},{\"match\":\"#\",\"name\":\"constant.language.namespace.root.apl\"},{\"match\":\"⌻\",\"name\":\"keyword.operator.quad-jot.apl\"},{\"match\":\"⌼\",\"name\":\"keyword.operator.quad-circle.apl\"},{\"match\":\"⌾\",\"name\":\"keyword.operator.circle-jot.apl\"},{\"match\":\"⍁\",\"name\":\"keyword.operator.quad-slash.apl\"},{\"match\":\"⍂\",\"name\":\"keyword.operator.quad-backslash.apl\"},{\"match\":\"⍃\",\"name\":\"keyword.operator.quad-less.apl\"},{\"match\":\"⍄\",\"name\":\"keyword.operator.greater.apl\"},{\"match\":\"⍅\",\"name\":\"keyword.operator.vane-left.apl\"},{\"match\":\"⍆\",\"name\":\"keyword.operator.vane-right.apl\"},{\"match\":\"⍇\",\"name\":\"keyword.operator.quad-arrow-left.apl\"},{\"match\":\"⍈\",\"name\":\"keyword.operator.quad-arrow-right.apl\"},{\"match\":\"⍊\",\"name\":\"keyword.operator.tack-down.apl\"},{\"match\":\"⍌\",\"name\":\"keyword.operator.quad-caret-down.apl\"},{\"match\":\"⍍\",\"name\":\"keyword.operator.quad-del-up.apl\"},{\"match\":\"⍏\",\"name\":\"keyword.operator.vane-up.apl\"},{\"match\":\"⍐\",\"name\":\"keyword.operator.quad-arrow-up.apl\"},{\"match\":\"⍑\",\"name\":\"keyword.operator.tack-up.apl\"},{\"match\":\"⍓\",\"name\":\"keyword.operator.quad-caret-up.apl\"},{\"match\":\"⍔\",\"name\":\"keyword.operator.quad-del-down.apl\"},{\"match\":\"⍖\",\"name\":\"keyword.operator.vane-down.apl\"},{\"match\":\"⍗\",\"name\":\"keyword.operator.quad-arrow-down.apl\"},{\"match\":\"⍘\",\"name\":\"keyword.operator.underbar-quote.apl\"},{\"match\":\"⍚\",\"name\":\"keyword.operator.underbar-diamond.apl\"},{\"match\":\"⍛\",\"name\":\"keyword.operator.underbar-jot.apl\"},{\"match\":\"⍜\",\"name\":\"keyword.operator.underbar-circle.apl\"},{\"match\":\"⍞\",\"name\":\"keyword.operator.quad-quote.apl\"},{\"match\":\"⍡\",\"name\":\"keyword.operator.dotted-tack-up.apl\"},{\"match\":\"⍢\",\"name\":\"keyword.operator.dotted-del.apl\"},{\"match\":\"⍥\",\"name\":\"keyword.operator.dotted-circle.apl\"},{\"match\":\"⍦\",\"name\":\"keyword.operator.stile-shoe-up.apl\"},{\"match\":\"⍧\",\"name\":\"keyword.operator.stile-shoe-left.apl\"},{\"match\":\"⍩\",\"name\":\"keyword.operator.dotted-greater.apl\"},{\"match\":\"⍭\",\"name\":\"keyword.operator.stile-tilde.apl\"},{\"match\":\"⍮\",\"name\":\"keyword.operator.underbar-semicolon.apl\"},{\"match\":\"⍯\",\"name\":\"keyword.operator.quad-not-equal.apl\"},{\"match\":\"⍰\",\"name\":\"keyword.operator.quad-question.apl\"}]},\"sysvars\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.quad.apl\"},\"2\":{\"name\":\"punctuation.definition.quad-quote.apl\"}},\"match\":\"(?:(⎕)|(⍞))[A-Za-z]*\",\"name\":\"support.system.variable.apl\"}]}},\"scopeName\":\"source.apl\",\"embeddedLangs\":[\"html\",\"xml\",\"css\",\"javascript\",\"json\"]}`)),c=[...a,...e,...n,...t,...r,o];export{c as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CJaU5se_.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Verilog\",\"fileTypes\":[\"v\",\"vh\"],\"name\":\"verilog\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#module_pattern\"},{\"include\":\"#keywords\"},{\"include\":\"#constants\"},{\"include\":\"#strings\"},{\"include\":\"#operators\"}],\"repository\":{\"comments\":{\"patterns\":[{\"begin\":\"(^[ \\\\\\\\t]+)?(?=//)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.verilog\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.verilog\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.double-slash.verilog\"}]},{\"begin\":\"/\\\\\\\\*\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.c-style.verilog\"}]},\"constants\":{\"patterns\":[{\"match\":\"`(?!(celldefine|endcelldefine|default_nettype|define|undef|ifdef|ifndef|else|endif|include|resetall|timescale|unconnected_drive|nounconnected_drive))[a-z_A-Z][a-zA-Z0-9_$]*\",\"name\":\"variable.other.constant.verilog\"},{\"match\":\"[0-9]*\\'[bBoOdDhH][a-fA-F0-9_xXzZ]+\\\\\\\\b\",\"name\":\"constant.numeric.sized_integer.verilog\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.integer.verilog\"},\"2\":{\"name\":\"punctuation.separator.range.verilog\"},\"3\":{\"name\":\"constant.numeric.integer.verilog\"}},\"match\":\"\\\\\\\\b(\\\\\\\\d+)(:)(\\\\\\\\d+)\\\\\\\\b\",\"name\":\"meta.block.numeric.range.verilog\"},{\"match\":\"\\\\\\\\b\\\\\\\\d[\\\\\\\\d_]*(?i:e\\\\\\\\d+)?\\\\\\\\b\",\"name\":\"constant.numeric.integer.verilog\"},{\"match\":\"\\\\\\\\b\\\\\\\\d+\\\\\\\\.\\\\\\\\d+(?i:e\\\\\\\\d+)?\\\\\\\\b\",\"name\":\"constant.numeric.real.verilog\"},{\"match\":\"#\\\\\\\\d+\",\"name\":\"constant.numeric.delay.verilog\"},{\"match\":\"\\\\\\\\b[01xXzZ]+\\\\\\\\b\",\"name\":\"constant.numeric.logic.verilog\"}]},\"instantiation_patterns\":{\"patterns\":[{\"include\":\"#keywords\"},{\"begin\":\"^\\\\\\\\s*(?!always|and|assign|output|input|inout|wire|module)([a-zA-Z][a-zA-Z0-9_]*)\\\\\\\\s+([a-zA-Z][a-zA-Z0-9_]*)(?<!begin|if)\\\\\\\\s*(?=\\\\\\\\(|$)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.module.reference.verilog\"},\"2\":{\"name\":\"entity.name.tag.module.identifier.verilog\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.expression.verilog\"}},\"name\":\"meta.block.instantiation.parameterless.verilog\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#constants\"},{\"include\":\"#strings\"}]},{\"begin\":\"^\\\\\\\\s*([a-zA-Z][a-zA-Z0-9_]*)\\\\\\\\s*(#)(?=\\\\\\\\s*\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.module.reference.verilog\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.expression.verilog\"}},\"name\":\"meta.block.instantiation.with.parameters.verilog\",\"patterns\":[{\"include\":\"#parenthetical_list\"},{\"match\":\"[a-zA-Z][a-zA-Z0-9_]*\",\"name\":\"entity.name.tag.module.identifier.verilog\"}]}]},\"keywords\":{\"patterns\":[{\"match\":\"\\\\\\\\b(always|and|assign|attribute|begin|buf|bufif0|bufif1|case[xz]?|cmos|deassign|default|defparam|disable|edge|else|end(attribute|case|function|generate|module|primitive|specify|table|task)?|event|for|force|forever|fork|function|generate|genvar|highz(01)|if(none)?|initial|inout|input|integer|join|localparam|medium|module|large|macromodule|nand|negedge|nmos|nor|not|notif(01)|or|output|parameter|pmos|posedge|primitive|pull0|pull1|pulldown|pullup|rcmos|real|realtime|reg|release|repeat|rnmos|rpmos|rtran|rtranif(01)|scalared|signed|small|specify|specparam|strength|strong0|strong1|supply0|supply1|table|task|time|tran|tranif(01)|tri(01)?|tri(and|or|reg)|unsigned|vectored|wait|wand|weak(01)|while|wire|wor|xnor|xor)\\\\\\\\b\",\"name\":\"keyword.other.verilog\"},{\"match\":\"^\\\\\\\\s*`((cell)?define|default_(decay_time|nettype|trireg_strength)|delay_mode_(path|unit|zero)|ifdef|ifndef|include|end(if|celldefine)|else|(no)?unconnected_drive|resetall|timescale|undef)\\\\\\\\b\",\"name\":\"keyword.other.compiler.directive.verilog\"},{\"match\":\"\\\\\\\\$(f(open|close)|readmem(b|h)|timeformat|printtimescale|stop|finish|(s|real)?time|realtobits|bitstoreal|rtoi|itor|(f)?(display|write(h|b)))\\\\\\\\b\",\"name\":\"support.function.system.console.tasks.verilog\"},{\"match\":\"\\\\\\\\$(random|dist_(chi_square|erlang|exponential|normal|poisson|t|uniform))\\\\\\\\b\",\"name\":\"support.function.system.random_number.tasks.verilog\"},{\"match\":\"\\\\\\\\$((a)?sync\\\\\\\\$((n)?and|(n)or)\\\\\\\\$(array|plane))\\\\\\\\b\",\"name\":\"support.function.system.pld_modeling.tasks.verilog\"},{\"match\":\"\\\\\\\\$(q_(initialize|add|remove|full|exam))\\\\\\\\b\",\"name\":\"support.function.system.stochastic.tasks.verilog\"},{\"match\":\"\\\\\\\\$(hold|nochange|period|recovery|setup(hold)?|skew|width)\\\\\\\\b\",\"name\":\"support.function.system.timing.tasks.verilog\"},{\"match\":\"\\\\\\\\$(dump(file|vars|off|on|all|limit|flush))\\\\\\\\b\",\"name\":\"support.function.system.vcd.tasks.verilog\"},{\"match\":\"\\\\\\\\$(countdrivers|list|input|scope|showscopes|(no)?(key|log)|reset(_count|_value)?|(inc)?save|restart|showvars|getpattern|sreadmem(b|h)|scale)\",\"name\":\"support.function.non-standard.tasks.verilog\"}]},\"module_pattern\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(module)\\\\\\\\s+([a-zA-Z][a-zA-Z0-9_]*)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.module.verilog\"},\"2\":{\"name\":\"entity.name.type.module.verilog\"}},\"end\":\"\\\\\\\\bendmodule\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"storage.type.module.verilog\"}},\"name\":\"meta.block.module.verilog\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#keywords\"},{\"include\":\"#constants\"},{\"include\":\"#strings\"},{\"include\":\"#instantiation_patterns\"},{\"include\":\"#operators\"}]}]},\"operators\":{\"patterns\":[{\"match\":\"\\\\\\\\+|-|\\\\\\\\*|/|%|(<|>)=?|(!|=)?==?|!|&&?|\\\\\\\\|\\\\\\\\|?|\\\\\\\\^?~|~\\\\\\\\^?\",\"name\":\"keyword.operator.verilog\"}]},\"parenthetical_list\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.list.verilog\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.list.verilog\"}},\"name\":\"meta.block.parenthetical_list.verilog\",\"patterns\":[{\"include\":\"#parenthetical_list\"},{\"include\":\"#comments\"},{\"include\":\"#keywords\"},{\"include\":\"#constants\"},{\"include\":\"#strings\"}]}]},\"strings\":{\"patterns\":[{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.verilog\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.verilog\"}]}]}},\"scopeName\":\"source.verilog\"}')),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CKg9tqCS.js",
    "content": "import e from\"./BgYniUM_.js\";const t=Object.freeze(JSON.parse('{\"displayName\":\"Git Commit Message\",\"name\":\"git-commit\",\"patterns\":[{\"begin\":\"(?=^diff\\\\\\\\ \\\\\\\\-\\\\\\\\-git)\",\"comment\":\"diff presented at the end of the commit message when using commit -v.\",\"contentName\":\"source.diff\",\"end\":\"\\\\\\\\z\",\"name\":\"meta.embedded.diff.git-commit\",\"patterns\":[{\"include\":\"source.diff\"}]},{\"begin\":\"^(?!#)\",\"comment\":\"User supplied message\",\"end\":\"^(?=#)\",\"name\":\"meta.scope.message.git-commit\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"invalid.deprecated.line-too-long.git-commit\"},\"2\":{\"name\":\"invalid.illegal.line-too-long.git-commit\"}},\"comment\":\"Mark > 50 lines as deprecated, > 72 as illegal\",\"match\":\"\\\\\\\\G.{0,50}(.{0,22}(.*))$\",\"name\":\"meta.scope.subject.git-commit\"}]},{\"begin\":\"^(?=#)\",\"comment\":\"Git supplied metadata in a number of lines starting with #\",\"contentName\":\"comment.line.number-sign.git-commit\",\"end\":\"^(?!#)\",\"name\":\"meta.scope.metadata.git-commit\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"markup.changed.git-commit\"}},\"match\":\"^#\\\\\\\\t((modified|renamed):.*)$\"},{\"captures\":{\"1\":{\"name\":\"markup.inserted.git-commit\"}},\"match\":\"^#\\\\\\\\t(new file:.*)$\"},{\"captures\":{\"1\":{\"name\":\"markup.deleted.git-commit\"}},\"match\":\"^#\\\\\\\\t(deleted.*)$\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.file-type.git-commit\"},\"2\":{\"name\":\"string.unquoted.filename.git-commit\"}},\"comment\":\"Fallback for non-English git commit template\",\"match\":\"^#\\\\\\\\t([^:]+): *(.*)$\"}]}],\"scopeName\":\"text.git-commit\",\"embeddedLangs\":[\"diff\"]}')),i=[...e,t];export{i as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CM8KxXT1.js",
    "content": "const n=Object.freeze(JSON.parse(`{\"displayName\":\"Gnuplot\",\"fileTypes\":[\"gp\",\"plt\",\"plot\",\"gnuplot\"],\"name\":\"gnuplot\",\"patterns\":[{\"match\":\"(\\\\\\\\\\\\\\\\(?!\\\\\\\\n).*)\",\"name\":\"invalid.illegal.backslash.gnuplot\"},{\"match\":\"(;)\",\"name\":\"punctuation.separator.statement.gnuplot\"},{\"include\":\"#LineComment\"},{\"include\":\"#DataBlock\"},{\"include\":\"#MacroExpansion\"},{\"include\":\"#VariableDecl\"},{\"include\":\"#ArrayDecl\"},{\"include\":\"#FunctionDecl\"},{\"include\":\"#ShellCommand\"},{\"include\":\"#Command\"}],\"repository\":{\"ArrayDecl\":{\"begin\":\"\\\\\\\\b(?:(array)\\\\\\\\s+([A-Za-z_]\\\\\\\\w*)?)\",\"beginCaptures\":{\"1\":{\"name\":\"support.type.array.gnuplot\"},\"2\":{\"name\":\"entity.name.variable.gnuplot\",\"patterns\":[{\"include\":\"#InvalidVariableDecl\"},{\"include\":\"#BuiltinVariable\"}]}},\"end\":\"(?=(;|#|\\\\\\\\\\\\\\\\(?!\\\\\\\\n)|(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n$))\",\"name\":\"meta.variable.gnuplot\",\"patterns\":[{\"include\":\"#Expression\"}]},\"BuiltinFunction\":{\"patterns\":[{\"match\":\"\\\\\\\\b(?:defined)\\\\\\\\b\",\"name\":\"invalid.deprecated.function.gnuplot\"},{\"match\":\"\\\\\\\\b(?:abs|acos|acosh|airy|arg|asin|asinh|atan|atan2|atanh|EllipticK|EllipticE|EllipticPi|besj0|besj1|besy0|besy1|ceil|cos|cosh|erf|erfc|exp|expint|floor|gamma|ibeta|inverf|igamma|imag|invnorm|int|lambertw|lgamma|log|log10|norm|rand|real|sgn|sin|sinh|sqrt|tan|tanh|voigt|cerf|cdawson|faddeeva|erfi|VP)\\\\\\\\b\",\"name\":\"support.function.math.gnuplot\"},{\"match\":\"\\\\\\\\b(?:gprintf|sprintf|strlen|strstrt|substr|strftime|strptime|system|word|words)\\\\\\\\b\",\"name\":\"support.function.string.gnuplot\"},{\"match\":\"\\\\\\\\b(?:column|columnhead|exists|hsv2rgb|stringcolumn|timecolumn|tm_hour|tm_mday|tm_min|tm_mon|tm_sec|tm_wday|tm_yday|tm_year|time|valid|value)\\\\\\\\b\",\"name\":\"support.function.other.gnuplot\"}]},\"BuiltinOperator\":{\"patterns\":[{\"match\":\"(&&|\\\\\\\\|\\\\\\\\|)\",\"name\":\"keyword.operator.logical.gnuplot\"},{\"match\":\"(<<|>>|&|\\\\\\\\||\\\\\\\\^)\",\"name\":\"keyword.operator.bitwise.gnuplot\"},{\"match\":\"(==|!=|<=|<|>=|>)\",\"name\":\"keyword.operator.comparison.gnuplot\"},{\"match\":\"(=)\",\"name\":\"keyword.operator.assignment.gnuplot\"},{\"match\":\"(\\\\\\\\+|-|~|!)\",\"name\":\"keyword.operator.arithmetic.gnuplot\"},{\"match\":\"(\\\\\\\\*\\\\\\\\*|\\\\\\\\+|-|\\\\\\\\*|/|%)\",\"name\":\"keyword.operator.arithmetic.gnuplot\"},{\"captures\":{\"2\":{\"name\":\"keyword.operator.word.gnuplot\"}},\"match\":\"(\\\\\\\\.|\\\\\\\\b(eq|ne)\\\\\\\\b)\",\"name\":\"keyword.operator.strings.gnuplot\"}]},\"BuiltinVariable\":{\"patterns\":[{\"match\":\"\\\\\\\\b(?:FIT_LIMIT|FIT_MAXITER|FIT_START_LAMBDA|FIT_LAMBDA_FACTOR|FIT_SKIP|FIT_INDEX)\\\\\\\\b\",\"name\":\"invalid.deprecated.variable.gnuplot\"},{\"match\":\"\\\\\\\\b(GPVAL_\\\\\\\\w*|MOUSE_\\\\\\\\w*)\\\\\\\\b\",\"name\":\"support.constant.gnuplot\"},{\"match\":\"\\\\\\\\b(ARG[0-9C]|GPFUN_\\\\\\\\w*|FIT_\\\\\\\\w*|STATS_\\\\\\\\w*|pi|NaN)\\\\\\\\b\",\"name\":\"support.variable.gnuplot\"}]},\"ColumnIndexLiteral\":{\"match\":\"([$][0-9]+)\\\\\\\\b\",\"name\":\"support.constant.columnindex.gnuplot\"},\"Command\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(?:update)\\\\\\\\b\",\"end\":\"(?=(;|#|\\\\\\\\\\\\\\\\(?!\\\\\\\\n)|(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n$))\",\"name\":\"invalid.deprecated.command.gnuplot\"},{\"begin\":\"\\\\\\\\b(?:break|clear|continue|pwd|refresh|replot|reread|shell)\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.command.gnuplot\"}},\"end\":\"(?=(;|#|\\\\\\\\\\\\\\\\(?!\\\\\\\\n)|(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n$))\",\"patterns\":[{\"include\":\"#InvalidWord\"}]},{\"begin\":\"\\\\\\\\b(?:cd|call|eval|exit|help|history|load|lower|pause|print|printerr|quit|raise|save|stats|system|test|toggle)\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.command.gnuplot\"}},\"end\":\"(?=(;|#|\\\\\\\\\\\\\\\\(?!\\\\\\\\n)|(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n$))\",\"patterns\":[{\"include\":\"#Expression\"}]},{\"begin\":\"\\\\\\\\b(import)\\\\\\\\s(.+)\\\\\\\\s(from)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.import.gnuplot\"},\"2\":{\"patterns\":[{\"include\":\"#FunctionDecl\"}]},\"3\":{\"name\":\"keyword.control.import.gnuplot\"}},\"end\":\"(?=(;|#|\\\\\\\\\\\\\\\\(?!\\\\\\\\n)|(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n$))\",\"patterns\":[{\"include\":\"#SingleQuotedStringLiteral\"},{\"include\":\"#DoubleQuotedStringLiteral\"},{\"include\":\"#InvalidWord\"}]},{\"begin\":\"\\\\\\\\b(reset)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.command.gnuplot\"}},\"end\":\"(?=(;|#|\\\\\\\\\\\\\\\\(?!\\\\\\\\n)|(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n$))\",\"patterns\":[{\"match\":\"\\\\\\\\b(bind|error(state)?|session)\\\\\\\\b\",\"name\":\"support.class.reset.gnuplot\"},{\"include\":\"#InvalidWord\"}]},{\"begin\":\"\\\\\\\\b(undefine)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.command.gnuplot\"}},\"end\":\"(?=(;|#|\\\\\\\\\\\\\\\\(?!\\\\\\\\n)|(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n$))\",\"patterns\":[{\"include\":\"#BuiltinVariable\"},{\"include\":\"#BuiltinFunction\"},{\"match\":\"(?<=\\\\\\\\s)([$]?[A-Za-z_]\\\\\\\\w*\\\\\\\\*?)(?=\\\\\\\\s)\",\"name\":\"source.gnuplot\"},{\"include\":\"#InvalidWord\"}]},{\"begin\":\"\\\\\\\\b(if|while)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.conditional.gnuplot\"}},\"end\":\"(?=(\\\\\\\\{|#|\\\\\\\\\\\\\\\\(?!\\\\\\\\n)|(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n$))\",\"patterns\":[{\"include\":\"#Expression\"}]},{\"begin\":\"\\\\\\\\b(else)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.conditional.gnuplot\"}},\"end\":\"(?=(\\\\\\\\{|#|\\\\\\\\\\\\\\\\(?!\\\\\\\\n)|(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n$))\"},{\"begin\":\"\\\\\\\\b(do)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.flow.gnuplot\"}},\"end\":\"(?=(\\\\\\\\{|#|\\\\\\\\\\\\\\\\(?!\\\\\\\\n)|(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n$))\",\"patterns\":[{\"include\":\"#ForIterationExpr\"}]},{\"begin\":\"\\\\\\\\b(set)(?=\\\\\\\\s+pm3d)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.command.gnuplot\"}},\"end\":\"(?=(;|#|\\\\\\\\\\\\\\\\(?!\\\\\\\\n)|(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n$))\",\"patterns\":[{\"match\":\"\\\\\\\\b(hidden3d|map|transparent|solid)\\\\\\\\b\",\"name\":\"invalid.deprecated.options.gnuplot\"},{\"include\":\"#SetUnsetOptions\"},{\"include\":\"#ForIterationExpr\"},{\"include\":\"#Expression\"}]},{\"begin\":\"\\\\\\\\b((un)?set)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.command.gnuplot\"}},\"end\":\"(?=(;|#|\\\\\\\\\\\\\\\\(?!\\\\\\\\n)|(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n$))\",\"patterns\":[{\"include\":\"#SetUnsetOptions\"},{\"include\":\"#ForIterationExpr\"},{\"include\":\"#Expression\"}]},{\"begin\":\"\\\\\\\\b(show)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.command.gnuplot\"}},\"end\":\"(?=(;|#|\\\\\\\\\\\\\\\\(?!\\\\\\\\n)|(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n$))\",\"patterns\":[{\"include\":\"#ExtraShowOptions\"},{\"include\":\"#SetUnsetOptions\"},{\"include\":\"#Expression\"}]},{\"begin\":\"\\\\\\\\b(fit|(s)?plot)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.command.gnuplot\"}},\"end\":\"(?=(;|#|\\\\\\\\\\\\\\\\(?!\\\\\\\\n)|(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n$))\",\"patterns\":[{\"include\":\"#ColumnIndexLiteral\"},{\"include\":\"#PlotModifiers\"},{\"include\":\"#ForIterationExpr\"},{\"include\":\"#Expression\"}]}]},\"DataBlock\":{\"begin\":\"(?:([$][A-Za-z_]\\\\\\\\w*)\\\\\\\\s*(<<)\\\\\\\\s*([A-Za-z_]\\\\\\\\w*)\\\\\\\\s*(?=(\\\\\\\\#|$)))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#SpecialVariable\"}]},\"3\":{\"name\":\"constant.language.datablock.gnuplot\"}},\"end\":\"^(\\\\\\\\3)\\\\\\\\b(.*)\",\"endCaptures\":{\"1\":{\"name\":\"constant.language.datablock.gnuplot\"},\"2\":{\"name\":\"invalid.illegal.datablock.gnuplot\"}},\"name\":\"meta.datablock.gnuplot\",\"patterns\":[{\"include\":\"#LineComment\"},{\"include\":\"#NumberLiteral\"},{\"include\":\"#DoubleQuotedStringLiteral\"}]},\"DeprecatedScriptArgsLiteral\":{\"match\":\"([$][0-9#])\",\"name\":\"invalid.illegal.scriptargs.gnuplot\"},\"DoubleQuotedStringLiteral\":{\"begin\":\"(\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.gnuplot\"}},\"end\":\"((\\\\\")|(?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n$))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.gnuplot\"}},\"name\":\"string.quoted.double.gnuplot\",\"patterns\":[{\"include\":\"#EscapedChar\"},{\"include\":\"#RGBColorSpec\"},{\"include\":\"#DeprecatedScriptArgsLiteral\"},{\"include\":\"#InterpolatedStringLiteral\"}]},\"EscapedChar\":{\"match\":\"(\\\\\\\\\\\\\\\\.)\",\"name\":\"constant.character.escape.gnuplot\"},\"Expression\":{\"patterns\":[{\"include\":\"#Literal\"},{\"include\":\"#SpecialVariable\"},{\"include\":\"#BuiltinVariable\"},{\"include\":\"#BuiltinOperator\"},{\"include\":\"#TernaryExpr\"},{\"include\":\"#FunctionCallExpr\"},{\"include\":\"#SummationExpr\"}]},\"ExtraShowOptions\":{\"match\":\"\\\\\\\\b(?:all|bind|colornames|functions|plot|variables|version)\\\\\\\\b\",\"name\":\"support.class.options.gnuplot\"},\"ForIterationExpr\":{\"begin\":\"\\\\\\\\b(?:(for)\\\\\\\\s*(\\\\\\\\[)\\\\\\\\s*(?:([A-Za-z_]\\\\\\\\w*)\\\\\\\\s+(in)\\\\\\\\b)?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.flow.gnuplot\"},\"2\":{\"patterns\":[{\"include\":\"#RangeSeparators\"}]},\"3\":{\"name\":\"variable.other.iterator.gnuplot\"},\"4\":{\"name\":\"keyword.control.flow.gnuplot\"}},\"end\":\"((\\\\\\\\])|(?=(#|\\\\\\\\\\\\\\\\(?!\\\\\\\\n)|(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n$)))\",\"endCaptures\":{\"2\":{\"patterns\":[{\"include\":\"#RangeSeparators\"}]}},\"patterns\":[{\"include\":\"#Expression\"},{\"include\":\"#RangeSeparators\"}]},\"FunctionCallExpr\":{\"begin\":\"\\\\\\\\b([A-Za-z_]\\\\\\\\w*)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"variable.function.gnuplot\",\"patterns\":[{\"include\":\"#BuiltinFunction\"}]},\"2\":{\"name\":\"punctuation.definition.arguments.begin.gnuplot\"}},\"end\":\"((\\\\\\\\))|(?=(#|\\\\\\\\\\\\\\\\(?!\\\\\\\\n)|(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n$)))\",\"endCaptures\":{\"2\":{\"name\":\"punctuation.definition.arguments.end.gnuplot\"}},\"name\":\"meta.function-call.gnuplot\",\"patterns\":[{\"include\":\"#Expression\"}]},\"FunctionDecl\":{\"begin\":\"\\\\\\\\b(?:([A-Za-z_]\\\\\\\\w*)\\\\\\\\s*((\\\\\\\\()\\\\\\\\s*([A-Za-z_]\\\\\\\\w*)\\\\\\\\s*(?:(,)\\\\\\\\s*([A-Za-z_]\\\\\\\\w*)\\\\\\\\s*)*(\\\\\\\\))))\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.gnuplot\",\"patterns\":[{\"include\":\"#BuiltinFunction\"}]},\"2\":{\"name\":\"meta.function.parameters.gnuplot\"},\"3\":{\"name\":\"punctuation.definition.parameters.begin.gnuplot\"},\"4\":{\"name\":\"variable.parameter.function.language.gnuplot\"},\"5\":{\"name\":\"punctuation.separator.parameters.gnuplot\"},\"6\":{\"name\":\"variable.parameter.function.language.gnuplot\"},\"7\":{\"name\":\"punctuation.definition.parameters.end.gnuplot\"}},\"end\":\"(?=(;|#|\\\\\\\\\\\\\\\\(?!\\\\\\\\n)|(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n$))\",\"name\":\"meta.function.gnuplot\",\"patterns\":[{\"include\":\"#Expression\"}]},\"InterpolatedStringLiteral\":{\"begin\":\"(\\`)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.gnuplot\"}},\"end\":\"((\\`)|(?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n$))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.gnuplot\"}},\"name\":\"string.interpolated.gnuplot\",\"patterns\":[{\"include\":\"#EscapedChar\"}]},\"InvalidVariableDecl\":{\"match\":\"\\\\\\\\b(GPVAL_\\\\\\\\w*|MOUSE_\\\\\\\\w*)\\\\\\\\b\",\"name\":\"invalid.illegal.variable.gnuplot\"},\"InvalidWord\":{\"match\":\"([^;#\\\\\\\\\\\\\\\\[:space:]]+)\",\"name\":\"invalid.illegal.gnuplot\"},\"LineComment\":{\"begin\":\"(#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.begin.gnuplot\"}},\"end\":\"(?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n$)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.gnuplot\"}},\"name\":\"comment.line.number-sign.gnuplot\"},\"Literal\":{\"patterns\":[{\"include\":\"#NumberLiteral\"},{\"include\":\"#DeprecatedScriptArgsLiteral\"},{\"include\":\"#SingleQuotedStringLiteral\"},{\"include\":\"#DoubleQuotedStringLiteral\"},{\"include\":\"#InterpolatedStringLiteral\"}]},\"MacroExpansion\":{\"begin\":\"([@][A-Za-z_]\\\\\\\\w*)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#SpecialVariable\"}]}},\"end\":\"(?=(;|#|\\\\\\\\\\\\\\\\(?!\\\\\\\\n)|(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n$))\",\"patterns\":[{\"include\":\"#Expression\"}]},\"NumberLiteral\":{\"patterns\":[{\"match\":\"(?:(((\\\\\\\\b[0-9]+)|(?<!\\\\\\\\d)))([.][0-9]+)([Ee][+-]?[0-9]+)?)(cm|in)?\\\\\\\\b\",\"name\":\"constant.numeric.float.gnuplot\"},{\"match\":\"(?:(\\\\\\\\b[0-9]+)((([Ee][+-]?[0-9]+\\\\\\\\b))|([.]([Ee][+-]?[0-9]+\\\\\\\\b)?)))(cm\\\\\\\\b|in\\\\\\\\b)?\",\"name\":\"constant.numeric.float.gnuplot\"},{\"match\":\"\\\\\\\\b(0[Xx][0-9a-fA-F]+)(cm|in)?\\\\\\\\b\",\"name\":\"constant.numeric.hex.gnuplot\"},{\"match\":\"\\\\\\\\b(0+)(cm|in)?\\\\\\\\b\",\"name\":\"constant.numeric.dec.gnuplot\"},{\"match\":\"\\\\\\\\b(0[0-7]+)(cm|in)?\\\\\\\\b\",\"name\":\"constant.numeric.oct.gnuplot\"},{\"match\":\"\\\\\\\\b(0[0-9]+)(cm|in)?\\\\\\\\b\",\"name\":\"invalid.illegal.oct.gnuplot\"},{\"match\":\"\\\\\\\\b([0-9]+)(cm|in)?\\\\\\\\b\",\"name\":\"constant.numeric.dec.gnuplot\"}]},\"PlotModifiers\":{\"patterns\":[{\"match\":\"\\\\\\\\b(thru)\\\\\\\\b\",\"name\":\"invalid.deprecated.plot.gnuplot\"},{\"match\":\"\\\\\\\\b(?:in(dex)?|every|us(ing)?|wi(th)?|via)\\\\\\\\b\",\"name\":\"storage.type.plot.gnuplot\"},{\"match\":\"\\\\\\\\b(newhist(ogram)?)\\\\\\\\b\",\"name\":\"storage.type.plot.gnuplot\"}]},\"RGBColorSpec\":{\"match\":\"\\\\\\\\G(0x|#)(([0-9a-fA-F]{6})|([0-9a-fA-F]{8}))\\\\\\\\b\",\"name\":\"constant.other.placeholder.gnuplot\"},\"RangeSeparators\":{\"patterns\":[{\"match\":\"(\\\\\\\\[)\",\"name\":\"punctuation.section.brackets.begin.gnuplot\"},{\"match\":\"(:)\",\"name\":\"punctuation.separator.range.gnuplot\"},{\"match\":\"(\\\\\\\\])\",\"name\":\"punctuation.section.brackets.end.gnuplot\"}]},\"SetUnsetOptions\":{\"patterns\":[{\"match\":\"\\\\\\\\G\\\\\\\\s*\\\\\\\\b(?:clabel|data|function|historysize|macros|ticslevel|ticscale|(style\\\\\\\\s+increment\\\\\\\\s+\\\\\\\\w+))\\\\\\\\b\",\"name\":\"invalid.deprecated.options.gnuplot\"},{\"match\":\"\\\\\\\\G\\\\\\\\s*\\\\\\\\b(?:angles|arrow|autoscale|border|boxwidth|clip|cntr(label|param)|color(box|sequence)?|contour|(dash|line)type|datafile|decimal(sign)?|dgrid3d|dummy|encoding|(error)?bars|fit|fontpath|format|grid|hidden3d|history|(iso)?samples|jitter|key|label|link|loadpath|locale|logscale|mapping|[lrtb]margin|margins|micro|minus(sign)?|mono(chrome)?|mouse|multiplot|nonlinear|object|offsets|origin|output|parametric|(p|r)axis|pm3d|palette|pointintervalbox|pointsize|polar|print|psdir|size|style|surface|table|terminal|termoption|theta|tics|timestamp|timefmt|title|view|xyplane|zero|(no)?(m)?(x|x2|y|y2|z|cb|r|t)tics|(x|x2|y|y2|z|cb)data|(x|x2|y|y2|z|cb|r)label|(x|x2|y|y2|z|cb)dtics|(x|x2|y|y2|z|cb)mtics|(x|x2|y|y2|z|cb|[rtuv])range|(x|x2|y|y2|z)?zeroaxis)\\\\\\\\b\",\"name\":\"support.class.options.gnuplot\"}]},\"ShellCommand\":{\"begin\":\"(!)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.shell.gnuplot\"}},\"end\":\"(?=(#|\\\\\\\\\\\\\\\\(?!\\\\\\\\n)|(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n$))\",\"patterns\":[{\"match\":\"([^#]|\\\\\\\\\\\\\\\\(?=\\\\\\\\n))\",\"name\":\"string.unquoted\"}]},\"SingleQuotedStringLiteral\":{\"begin\":\"(')\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.gnuplot\"}},\"end\":\"((')(?!')|(?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n$))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.gnuplot\"}},\"name\":\"string.quoted.single.gnuplot\",\"patterns\":[{\"include\":\"#RGBColorSpec\"},{\"match\":\"('')\",\"name\":\"constant.character.escape.gnuplot\"}]},\"SpecialVariable\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.language.wildcard.gnuplot\"}},\"match\":\"(?<=[\\\\\\\\[:=])\\\\\\\\s*(\\\\\\\\*)\\\\\\\\s*(?=[:\\\\\\\\]])\"},{\"captures\":{\"2\":{\"name\":\"punctuation.definition.variable.gnuplot\"}},\"match\":\"(([@$])[A-Za-z_]\\\\\\\\w*)\\\\\\\\b\",\"name\":\"constant.language.special.gnuplot\"}]},\"SummationExpr\":{\"begin\":\"\\\\\\\\b(sum)\\\\\\\\s*(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.sum.gnuplot\"},\"2\":{\"patterns\":[{\"include\":\"#RangeSeparators\"}]}},\"end\":\"((\\\\\\\\])|(?=(#|\\\\\\\\\\\\\\\\(?!\\\\\\\\n)|(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n$)))\",\"endCaptures\":{\"2\":{\"patterns\":[{\"include\":\"#RangeSeparators\"}]}},\"patterns\":[{\"include\":\"#Expression\"},{\"include\":\"#RangeSeparators\"}]},\"TernaryExpr\":{\"begin\":\"(?<!\\\\\\\\?)(\\\\\\\\?)(?!\\\\\\\\?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.ternary.gnuplot\"}},\"end\":\"((?<!:)(:)(?!:)|(?=(#|\\\\\\\\\\\\\\\\(?!\\\\\\\\n)|(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n$)))\",\"endCaptures\":{\"2\":{\"name\":\"keyword.operator.ternary.gnuplot\"}},\"patterns\":[{\"include\":\"#Expression\"}]},\"VariableDecl\":{\"begin\":\"\\\\\\\\b(?:([A-Za-z_]\\\\\\\\w*)\\\\\\\\s*(?:(\\\\\\\\[)\\\\\\\\s*(.*)\\\\\\\\s*(\\\\\\\\])\\\\\\\\s*)?(?=(=)(?!\\\\\\\\s*=)))\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.variable.gnuplot\",\"patterns\":[{\"include\":\"#InvalidVariableDecl\"},{\"include\":\"#BuiltinVariable\"}]},\"3\":{\"patterns\":[{\"include\":\"#Expression\"}]}},\"end\":\"(?=(;|#|\\\\\\\\\\\\\\\\(?!\\\\\\\\n)|(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n$))\",\"name\":\"meta.variable.gnuplot\",\"patterns\":[{\"include\":\"#Expression\"}]}},\"scopeName\":\"source.gnuplot\"}`)),e=[n];export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CMt9yHYq.js",
    "content": "import n from\"./BMYPR7BL.js\";const a=Object.freeze(JSON.parse(`{\"injectionSelector\":\"L:text.html -comment\",\"name\":\"angular-expression\",\"patterns\":[{\"include\":\"#ngExpression\"}],\"repository\":{\"arrayLiteral\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.square.ts\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.square.ts\"}},\"name\":\"meta.array.literal.ts\",\"patterns\":[{\"include\":\"#ngExpression\"},{\"include\":\"#punctuationComma\"}]},\"booleanLiteral\":{\"patterns\":[{\"match\":\"(?<!\\\\\\\\.|\\\\\\\\$)\\\\\\\\btrue\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.language.boolean.true.ts\"},{\"match\":\"(?<!\\\\\\\\.|\\\\\\\\$)\\\\\\\\bfalse\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.language.boolean.false.ts\"}]},\"expressionOperator\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.logical.ts\"},\"2\":{\"name\":\"entity.name.function.pipe.ng\"}},\"match\":\"((?<!\\\\\\\\|)\\\\\\\\|(?!\\\\\\\\|))\\\\\\\\s?([a-zA-Z0-9\\\\\\\\-\\\\\\\\_\\\\\\\\$]*)\"},{\"match\":\"(?<!\\\\\\\\.|\\\\\\\\$)\\\\\\\\b(let)\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"storage.type.ts\"},{\"match\":\"(?<!\\\\\\\\.|\\\\\\\\$)\\\\\\\\b(await)\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"keyword.control.flow.ts\"},{\"match\":\"(?<!\\\\\\\\.|\\\\\\\\$)\\\\\\\\bdelete\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"keyword.operator.expression.delete.ts\"},{\"match\":\"(?<!\\\\\\\\.|\\\\\\\\$)\\\\\\\\bin\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"keyword.operator.expression.in.ts\"},{\"match\":\"(?<!\\\\\\\\.|\\\\\\\\$)\\\\\\\\bof\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"keyword.operator.expression.of.ts\"},{\"match\":\"(?<!\\\\\\\\.|\\\\\\\\$)\\\\\\\\bif\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"keyword.control.if.ts\"},{\"match\":\"(?<!\\\\\\\\.|\\\\\\\\$)\\\\\\\\belse\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"keyword.control.else.ts\"},{\"match\":\"(?<!\\\\\\\\.|\\\\\\\\$)\\\\\\\\bthen\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"keyword.control.then.ts\"},{\"match\":\"(?<!\\\\\\\\.|\\\\\\\\$)\\\\\\\\binstanceof\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"keyword.operator.expression.instanceof.ts\"},{\"match\":\"(?<!\\\\\\\\.|\\\\\\\\$)\\\\\\\\bnew\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"keyword.operator.new.ts\"},{\"match\":\"(?<!\\\\\\\\.|\\\\\\\\$)\\\\\\\\bvoid\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"keyword.operator.expression.void.ts\"},{\"begin\":\"(?<!\\\\\\\\.|\\\\\\\\$)\\\\\\\\bas\\\\\\\\b(?!\\\\\\\\$)\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.as.ts\"}},\"end\":\"(?=$|\\\\\"|'|[;,:})\\\\\\\\]])\",\"patterns\":[{\"include\":\"#type\"}]},{\"match\":\"\\\\\\\\*=|(?<!\\\\\\\\()\\\\\\\\/=|%=|\\\\\\\\+=|\\\\\\\\-=\",\"name\":\"keyword.operator.assignment.compound.ts\"},{\"match\":\"\\\\\\\\&=|\\\\\\\\^=|<<=|>>=|>>>=|\\\\\\\\|=\",\"name\":\"keyword.operator.assignment.compound.bitwise.ts\"},{\"match\":\"<<|>>>|>>\",\"name\":\"keyword.operator.bitwise.shift.ts\"},{\"match\":\"===|!==|==|!=\",\"name\":\"keyword.operator.comparison.ts\"},{\"match\":\"<=|>=|<>|<|>\",\"name\":\"keyword.operator.relational.ts\"},{\"match\":\"\\\\\\\\!|&&|\\\\\\\\?\\\\\\\\?|\\\\\\\\|\\\\\\\\|\",\"name\":\"keyword.operator.logical.ts\"},{\"match\":\"\\\\\\\\&|~|\\\\\\\\^|\\\\\\\\|\",\"name\":\"keyword.operator.bitwise.ts\"},{\"match\":\"\\\\\\\\=\",\"name\":\"keyword.operator.assignment.ts\"},{\"match\":\"--\",\"name\":\"keyword.operator.decrement.ts\"},{\"match\":\"\\\\\\\\+\\\\\\\\+\",\"name\":\"keyword.operator.increment.ts\"},{\"match\":\"\\\\\\\\%|\\\\\\\\*|\\\\\\\\/|-|\\\\\\\\+\",\"name\":\"keyword.operator.arithmetic.ts\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.arithmetic.ts\"}},\"match\":\"(?<=[_$[:alnum:]])\\\\\\\\s*(\\\\\\\\/)(?![\\\\\\\\/*])\"},{\"include\":\"#typeofOperator\"}]},\"functionCall\":{\"begin\":\"(?=(\\\\\\\\??\\\\\\\\.\\\\\\\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+>\\\\\\\\s*)?\\\\\\\\()\",\"end\":\"(?<=\\\\\\\\))(?!(\\\\\\\\??\\\\\\\\.\\\\\\\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+>\\\\\\\\s*)?\\\\\\\\()\",\"patterns\":[{\"match\":\"\\\\\\\\?\",\"name\":\"punctuation.accessor.ts\"},{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.accessor.ts\"},{\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"name\":\"entity.name.function.ts\"},{\"begin\":\"\\\\\\\\<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.begin.ts\"}},\"end\":\"\\\\\\\\>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.end.ts\"}},\"name\":\"meta.type.parameters.ts\",\"patterns\":[{\"include\":\"#type\"},{\"include\":\"#punctuationComma\"}]},{\"include\":\"#parenExpression\"}]},\"functionParameters\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.begin.ts\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.ts\"}},\"name\":\"meta.parameters.ts\",\"patterns\":[{\"include\":\"#decorator\"},{\"include\":\"#parameterName\"},{\"include\":\"#variableInitializer\"},{\"match\":\",\",\"name\":\"punctuation.separator.parameter.ts\"}]},\"identifiers\":{\"patterns\":[{\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)(?=\\\\\\\\s*\\\\\\\\.\\\\\\\\s*prototype\\\\\\\\b(?!\\\\\\\\$))\",\"name\":\"support.class.ts\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.ts\"},\"2\":{\"name\":\"constant.other.object.property.ts\"},\"3\":{\"name\":\"variable.other.object.property.ts\"}},\"match\":\"([?!]?\\\\\\\\.)\\\\\\\\s*(?:([[:upper:]][_$[:digit:][:upper:]]*)|([_$[:alpha:]][_$[:alnum:]]*))(?=\\\\\\\\s*\\\\\\\\.\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.ts\"},\"2\":{\"name\":\"entity.name.function.ts\"}},\"match\":\"(?:([?!]?\\\\\\\\.)\\\\\\\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\\\\\\\s*=\\\\\\\\s*((async\\\\\\\\s+)|(function\\\\\\\\s*[(<])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)|((<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+>\\\\\\\\s*)?\\\\\\\\(([^()]|\\\\\\\\([^()]*\\\\\\\\))*\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*(.)*)?\\\\\\\\s*=>)))\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.ts\"},\"2\":{\"name\":\"constant.other.property.ts\"}},\"match\":\"([?!]?\\\\\\\\.)\\\\\\\\s*([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.ts\"},\"2\":{\"name\":\"variable.other.property.ts\"}},\"match\":\"([?!]?\\\\\\\\.)\\\\\\\\s*([_$[:alpha:]][_$[:alnum:]]*)\"},{\"captures\":{\"1\":{\"name\":\"constant.other.object.ts\"},\"2\":{\"name\":\"variable.other.object.ts\"}},\"match\":\"(?:([[:upper:]][_$[:digit:][:upper:]]*)|([_$[:alpha:]][_$[:alnum:]]*))(?=\\\\\\\\s*\\\\\\\\.\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*)\"},{\"match\":\"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])\",\"name\":\"constant.character.other\"},{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"variable.other.readwrite.ts\"}]},\"literal\":{\"name\":\"literal.ts\",\"patterns\":[{\"include\":\"#numericLiteral\"},{\"include\":\"#booleanLiteral\"},{\"include\":\"#nullLiteral\"},{\"include\":\"#undefinedLiteral\"},{\"include\":\"#numericConstantLiteral\"},{\"include\":\"#arrayLiteral\"},{\"include\":\"#thisLiteral\"}]},\"ngExpression\":{\"name\":\"meta.expression.ng\",\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#literal\"},{\"include\":\"#ternaryExpression\"},{\"include\":\"#expressionOperator\"},{\"include\":\"#functionCall\"},{\"include\":\"#identifiers\"},{\"include\":\"#parenExpression\"},{\"include\":\"#punctuationComma\"},{\"include\":\"#punctuationAccessor\"}]},\"nullLiteral\":{\"match\":\"(?<!\\\\\\\\.|\\\\\\\\$)\\\\\\\\bnull\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.language.null.ts\"},\"numericConstantLiteral\":{\"patterns\":[{\"match\":\"(?<!\\\\\\\\.|\\\\\\\\$)\\\\\\\\bNaN\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.language.nan.ts\"},{\"match\":\"(?<!\\\\\\\\.|\\\\\\\\$)\\\\\\\\bInfinity\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.language.infinity.ts\"}]},\"numericLiteral\":{\"patterns\":[{\"match\":\"\\\\\\\\b(?<!\\\\\\\\$)0(x|X)[0-9a-fA-F]+\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.numeric.hex.ts\"},{\"match\":\"\\\\\\\\b(?<!\\\\\\\\$)0(b|B)[01]+\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.numeric.binary.ts\"},{\"match\":\"\\\\\\\\\\\\\\\\b(?<!\\\\\\\\$)0(o|O)?[0-7]+\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.numeric.octal.ts\"},{\"captures\":{\"0\":{\"name\":\"constant.numeric.decimal.ts\"},\"1\":{\"name\":\"meta.delimiter.decimal.period.ts\"},\"2\":{\"name\":\"meta.delimiter.decimal.period.ts\"},\"3\":{\"name\":\"meta.delimiter.decimal.period.ts\"},\"4\":{\"name\":\"meta.delimiter.decimal.period.ts\"},\"5\":{\"name\":\"meta.delimiter.decimal.period.ts\"},\"6\":{\"name\":\"meta.delimiter.decimal.period.ts\"}},\"match\":\"(?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9]+(\\\\\\\\.)[0-9]+[eE][+-]?[0-9]+\\\\\\\\b)|#1.1E+3(?:\\\\\\\\b[0-9]+(\\\\\\\\.)[eE][+-]?[0-9]+\\\\\\\\b)|#1.E+3(?:\\\\\\\\B(\\\\\\\\.)[0-9]+[eE][+-]?[0-9]+\\\\\\\\b)|#.1E+3(?:\\\\\\\\b[0-9]+[eE][+-]?[0-9]+\\\\\\\\b)|#1E+3(?:\\\\\\\\b[0-9]+(\\\\\\\\.)[0-9]+\\\\\\\\b)|#1.1(?:\\\\\\\\b[0-9]+(\\\\\\\\.)\\\\\\\\B)|#1.(?:\\\\\\\\B(\\\\\\\\.)[0-9]+\\\\\\\\b)|#.1(?:\\\\\\\\b[0-9]+\\\\\\\\b(?!\\\\\\\\.))#1)(?!\\\\\\\\$)\"}]},\"parameterName\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.modifier.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"keyword.operator.rest.ts\"},\"4\":{\"name\":\"entity.name.function.ts\"},\"5\":{\"name\":\"keyword.operator.optional.ts\"}},\"match\":\"(?:\\\\\\\\s*\\\\\\\\b(readonly)\\\\\\\\s+)?(?:\\\\\\\\s*\\\\\\\\b(public|private|protected)\\\\\\\\s+)?(\\\\\\\\.\\\\\\\\.\\\\\\\\.)?\\\\\\\\s*(?<!=|:)([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(\\\\\\\\??)(?=\\\\\\\\s*(=\\\\\\\\s*((async\\\\\\\\s+)|(function\\\\\\\\s*[(<])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)|((<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+>\\\\\\\\s*)?\\\\\\\\(([^()]|\\\\\\\\([^()]*\\\\\\\\))*\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*(.)*)?\\\\\\\\s*=>)))|(:\\\\\\\\s*((<)|([(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>))))))))\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"keyword.operator.rest.ts\"},\"4\":{\"name\":\"variable.parameter.ts\"},\"5\":{\"name\":\"keyword.operator.optional.ts\"}},\"match\":\"(?:\\\\\\\\s*\\\\\\\\b(readonly)\\\\\\\\s+)?(?:\\\\\\\\s*\\\\\\\\b(public|private|protected)\\\\\\\\s+)?(\\\\\\\\.\\\\\\\\.\\\\\\\\.)?\\\\\\\\s*(?<!=|:)([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(\\\\\\\\??)\"}]},\"parenExpression\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"patterns\":[{\"include\":\"#ngExpression\"},{\"include\":\"#punctuationComma\"}]},\"punctuationAccessor\":{\"match\":\"\\\\\\\\?\\\\\\\\.|\\\\\\\\!\\\\\\\\.|\\\\\\\\.\",\"name\":\"punctuation.accessor.ts\"},\"punctuationComma\":{\"match\":\",\",\"name\":\"punctuation.separator.comma.ts\"},\"punctuationSemicolon\":{\"match\":\";\",\"name\":\"punctuation.terminator.statement.ts\"},\"qstringDouble\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ts\"}},\"end\":\"(\\\\\")|((?:[^\\\\\\\\\\\\\\\\\\\\\\\\n])$)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.ts\"},\"2\":{\"name\":\"invalid.illegal.newline.ts\"}},\"name\":\"string.quoted.double.ts\",\"patterns\":[{\"include\":\"#stringCharacterEscape\"}]},\"qstringSingle\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ts\"}},\"end\":\"(\\\\\\\\')|((?:[^\\\\\\\\\\\\\\\\\\\\\\\\n])$)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.ts\"},\"2\":{\"name\":\"invalid.illegal.newline.ts\"}},\"name\":\"string.quoted.single.ts\",\"patterns\":[{\"include\":\"#stringCharacterEscape\"}]},\"string\":{\"patterns\":[{\"include\":\"#qstringSingle\"},{\"include\":\"#qstringDouble\"}]},\"stringCharacterEscape\":{\"match\":\"\\\\\\\\\\\\\\\\(x\\\\\\\\h{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)\",\"name\":\"constant.character.escape.ts\"},\"ternaryExpression\":{\"begin\":\"(?!\\\\\\\\?\\\\\\\\.\\\\\\\\s*[^[:digit:]])(\\\\\\\\?)(?!\\\\\\\\?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.ternary.ts\"}},\"end\":\"\\\\\\\\s*(:)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.ternary.ts\"}},\"patterns\":[{\"include\":\"#ngExpression\"}]},\"thisLiteral\":{\"match\":\"(?<!\\\\\\\\.|\\\\\\\\$)\\\\\\\\bthis\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"variable.language.this.ts\"},\"type\":{\"name\":\"meta.type.ts\",\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#numericLiteral\"},{\"include\":\"#typeBuiltinLiterals\"},{\"include\":\"#typeTuple\"},{\"include\":\"#typeObject\"},{\"include\":\"#typeOperators\"},{\"include\":\"#typeFnTypeParameters\"},{\"include\":\"#typeParenOrFunctionParameters\"},{\"include\":\"#typeName\"}]},\"typeAnnotation\":{\"begin\":\":\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.type.annotation.ts\"}},\"end\":\"(?=$|[,);\\\\\\\\}\\\\\\\\]]|\\\\\\\\/\\\\\\\\/|\\\\\")|(?==[^>])|(?<=[\\\\\\\\}>\\\\\\\\]\\\\\\\\)]|[_$[:alpha:]])\\\\\\\\s*(?=\\\\\\\\{)\",\"name\":\"meta.type.annotation.ts\",\"patterns\":[{\"include\":\"#type\"}]},\"typeBuiltinLiterals\":{\"match\":\"(?<!\\\\\\\\.|\\\\\\\\$)\\\\\\\\b(this|true|false|undefined|null)\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"support.type.builtin.ts\"},\"typeFnTypeParameters\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.new.ts\"}},\"match\":\"(?<!\\\\\\\\.|\\\\\\\\$)\\\\\\\\b(new)\\\\\\\\b(?=\\\\\\\\s*\\\\\\\\<)\",\"name\":\"meta.type.constructor.ts\"},{\"begin\":\"(?<!\\\\\\\\.|\\\\\\\\$)\\\\\\\\b(new)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.new.ts\"}},\"end\":\"(?<=\\\\\\\\))\",\"name\":\"meta.type.constructor.ts\",\"patterns\":[{\"include\":\"#functionParameters\"}]},{\"begin\":\"(?<=\\\\\\\\>)\\\\\\\\s*(?=\\\\\\\\()\",\"end\":\"(?<=\\\\\\\\))\",\"include\":\"#typeofOperator\",\"name\":\"meta.type.function.ts\",\"patterns\":[{\"include\":\"#functionParameters\"}]},{\"begin\":\"((?=[(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>))))))\",\"end\":\"(?<=\\\\\\\\))\",\"name\":\"meta.type.function.ts\",\"patterns\":[{\"include\":\"#functionParameters\"}]}]},\"typeName\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.type.module.ts\"},\"2\":{\"name\":\"punctuation.accessor.ts\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*([?!]?\\\\\\\\.)\"},{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"entity.name.type.ts\"}]},\"typeObject\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"name\":\"meta.object.type.ts\",\"patterns\":[{\"include\":\"#typeObjectMembers\"}]},\"typeObjectMembers\":{\"patterns\":[{\"include\":\"#typeAnnotation\"},{\"include\":\"#punctuationComma\"},{\"include\":\"#punctuationSemicolon\"}]},\"typeOperators\":{\"patterns\":[{\"include\":\"#typeofOperator\"},{\"match\":\"[&|]\",\"name\":\"keyword.operator.type.ts\"},{\"match\":\"(?<!\\\\\\\\.|\\\\\\\\$)\\\\\\\\bkeyof\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"keyword.operator.expression.keyof.ts\"}]},\"typeParenOrFunctionParameters\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"name\":\"meta.type.paren.cover.ts\",\"patterns\":[{\"include\":\"#type\"},{\"include\":\"#functionParameters\"}]},\"typeTuple\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.square.ts\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.square.ts\"}},\"name\":\"meta.type.tuple.ts\",\"patterns\":[{\"include\":\"#type\"},{\"include\":\"#punctuationComma\"}]},\"typeofOperator\":{\"match\":\"(?<!\\\\\\\\.|\\\\\\\\$)\\\\\\\\btypeof\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"keyword.operator.expression.typeof.ts\"},\"undefinedLiteral\":{\"match\":\"(?<!\\\\\\\\.|\\\\\\\\$)\\\\\\\\bundefined\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.language.undefined.ts\"},\"variableInitializer\":{\"begin\":\"(?<!=|!)(=)(?!=)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.ts\"}},\"end\":\"(?=$|[,);}\\\\\\\\]])\",\"patterns\":[{\"include\":\"#ngExpression\"}]}},\"scopeName\":\"expression.ng\"}`)),e=[a],r=Object.freeze(JSON.parse('{\"injectTo\":[\"text.html.derivative\",\"text.html.derivative.ng\",\"source.ts.ng\"],\"injectionSelector\":\"L:text.html -comment -expression.ng -meta.tag -source.css -source.js\",\"name\":\"angular-let-declaration\",\"patterns\":[{\"include\":\"#letDeclaration\"}],\"repository\":{\"letDeclaration\":{\"begin\":\"(@let)\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(=)?\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.ng\"},\"2\":{\"name\":\"meta.definition.variable.ng\"},\"3\":{\"name\":\"keyword.operator.assignment.ng\"}},\"contentName\":\"meta.definition.variable.ng\",\"end\":\"(?<=;)\",\"patterns\":[{\"include\":\"#letInitializer\"}]},\"letInitializer\":{\"begin\":\"\\\\\\\\s*\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.assignment.ng\"}},\"contentName\":\"meta.definition.variable.initializer.ng\",\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.statement.ng\"}},\"patterns\":[{\"include\":\"expression.ng\"}]}},\"scopeName\":\"template.let.ng\",\"embeddedLangs\":[\"angular-expression\"]}')),s=[...e,r],i=Object.freeze(JSON.parse('{\"injectTo\":[\"text.html.derivative\",\"text.html.derivative.ng\",\"source.ts.ng\"],\"injectionSelector\":\"L:text.html -comment\",\"name\":\"angular-template\",\"patterns\":[{\"include\":\"#interpolation\"}],\"repository\":{\"interpolation\":{\"begin\":\"{{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"contentName\":\"expression.ng\",\"end\":\"}}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"patterns\":[{\"include\":\"expression.ng\"}]}},\"scopeName\":\"template.ng\",\"embeddedLangs\":[\"angular-expression\"]}')),t=[...e,i],o=Object.freeze(JSON.parse('{\"injectTo\":[\"text.html.derivative\",\"text.html.derivative.ng\",\"source.ts.ng\"],\"injectionSelector\":\"L:text.html -comment -expression.ng -meta.tag -source.css -source.js\",\"name\":\"angular-template-blocks\",\"patterns\":[{\"include\":\"#block\"}],\"repository\":{\"block\":{\"begin\":\"(@)(if|else if|else|defer|placeholder|loading|error|switch|case|default|for|empty)(?:\\\\\\\\s*)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.control.block.kind.ng\"}},\"end\":\"(?<=\\\\\\\\})\",\"name\":\"control.block.ng\",\"patterns\":[{\"include\":\"#blockExpression\"},{\"include\":\"#blockBody\"}]},\"blockBody\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"contentName\":\"control.block.body.ng\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"patterns\":[{\"include\":\"text.html.derivative.ng\"},{\"include\":\"template.ng\"}]},\"blockExpression\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"contentName\":\"control.block.expression.ng\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"patterns\":[{\"include\":\"expression.ng\"}]},\"transition\":{\"match\":\"@\",\"name\":\"keyword.control.block.transition.ng\"}},\"scopeName\":\"template.blocks.ng\",\"embeddedLangs\":[\"angular-expression\",\"angular-template\"]}')),m=[...e,...t,o],c=Object.freeze(JSON.parse('{\"displayName\":\"Angular HTML\",\"injections\":{\"R:text.html - (comment.block, text.html meta.embedded, meta.tag.*.*.html, meta.tag.*.*.*.html, meta.tag.*.*.*.*.html)\":{\"comment\":\"Uses R: to ensure this matches after any other injections.\",\"patterns\":[{\"match\":\"<\",\"name\":\"invalid.illegal.bad-angle-bracket.html\"}]}},\"name\":\"angular-html\",\"patterns\":[{\"include\":\"text.html.basic#core-minus-invalid\"},{\"begin\":\"(</?)(\\\\\\\\w[^\\\\\\\\s>]*)(?<!/)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"}},\"end\":\"((?: ?/)?>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.other.unrecognized.html.derivative\",\"patterns\":[{\"include\":\"text.html.basic#attribute\"}]}],\"scopeName\":\"text.html.derivative.ng\",\"embeddedLangs\":[\"html\",\"angular-expression\",\"angular-let-declaration\",\"angular-template\",\"angular-template-blocks\"]}')),p=[...n,...e,...s,...t,...m,c],u=Object.freeze(Object.defineProperty({__proto__:null,default:p},Symbol.toStringTag,{value:\"Module\"}));export{p as a,t as b,e as c,s as d,m as e,u as f};\n"
  },
  {
    "path": "jesse/static/_nuxt/COJ4H7py.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Apex\",\"fileTypes\":[\"apex\",\"cls\",\"trigger\"],\"name\":\"apex\",\"patterns\":[{\"include\":\"#javadoc-comment\"},{\"include\":\"#comment\"},{\"include\":\"#directives\"},{\"include\":\"#declarations\"},{\"include\":\"#script-top-level\"}],\"repository\":{\"annotation-declaration\":{\"begin\":\"([@][_[:alpha:]]+)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.annotation.apex\"}},\"end\":\"(?<=\\\\\\\\)|$)\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.apex\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.apex\"}},\"patterns\":[{\"include\":\"#expression\"}]},{\"include\":\"#statement\"}]},\"argument-list\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.apex\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.apex\"}},\"patterns\":[{\"include\":\"#named-argument\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"array-creation-expression\":{\"begin\":\"\\\\\\\\b(new)\\\\\\\\b\\\\\\\\s*(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*)(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*)*))?\\\\\\\\s*(?=\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.new.apex\"},\"2\":{\"patterns\":[{\"include\":\"#support-type\"},{\"include\":\"#type\"}]}},\"end\":\"(?<=\\\\\\\\])\",\"patterns\":[{\"include\":\"#bracketed-argument-list\"}]},\"block\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.apex\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.apex\"}},\"patterns\":[{\"include\":\"#statement\"}]},\"boolean-literal\":{\"patterns\":[{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\btrue\\\\\\\\b\",\"name\":\"constant.language.boolean.true.apex\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\bfalse\\\\\\\\b\",\"name\":\"constant.language.boolean.false.apex\"}]},\"bracketed-argument-list\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.squarebracket.open.apex\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.squarebracket.close.apex\"}},\"patterns\":[{\"include\":\"#soql-query-expression\"},{\"include\":\"#named-argument\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"break-or-continue-statement\":{\"captures\":{\"1\":{\"name\":\"keyword.control.flow.break.apex\"},\"2\":{\"name\":\"keyword.control.flow.continue.apex\"}},\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(?:(break)|(continue))\\\\\\\\b\"},\"cast-expression\":{\"captures\":{\"1\":{\"name\":\"punctuation.parenthesis.open.apex\"},\"2\":{\"patterns\":[{\"include\":\"#support-type\"},{\"include\":\"#type\"}]},\"6\":{\"name\":\"punctuation.parenthesis.close.apex\"}},\"match\":\"(\\\\\\\\()\\\\\\\\s*(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*)(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*)*))\\\\\\\\s*(\\\\\\\\))(?=\\\\\\\\s*@?[_[:alnum:]\\\\\\\\(])\"},\"catch-clause\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(catch)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.try.catch.apex\"}},\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.apex\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.apex\"}},\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#support-type\"},{\"include\":\"#type\"}]},\"5\":{\"name\":\"entity.name.variable.local.apex\"}},\"match\":\"(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*)(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*)*))\\\\\\\\s*(?:(\\\\\\\\g<identifier>)\\\\\\\\b)?\"}]},{\"include\":\"#comment\"},{\"include\":\"#block\"}]},\"class-declaration\":{\"begin\":\"(?=\\\\\\\\bclass\\\\\\\\b)\",\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"begin\":\"\\\\\\\\b(class)\\\\\\\\b\\\\\\\\s+(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.class.apex\"},\"2\":{\"name\":\"entity.name.type.class.apex\"}},\"end\":\"(?=\\\\\\\\{)\",\"patterns\":[{\"include\":\"#javadoc-comment\"},{\"include\":\"#comment\"},{\"include\":\"#type-parameter-list\"},{\"include\":\"#extends-class\"},{\"include\":\"#implements-class\"}]},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.apex\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.apex\"}},\"patterns\":[{\"include\":\"#class-or-trigger-members\"}]},{\"include\":\"#javadoc-comment\"},{\"include\":\"#comment\"}]},\"class-or-trigger-members\":{\"patterns\":[{\"include\":\"#javadoc-comment\"},{\"include\":\"#comment\"},{\"include\":\"#storage-modifier\"},{\"include\":\"#sharing-modifier\"},{\"include\":\"#type-declarations\"},{\"include\":\"#field-declaration\"},{\"include\":\"#property-declaration\"},{\"include\":\"#indexer-declaration\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#constructor-declaration\"},{\"include\":\"#method-declaration\"},{\"include\":\"#punctuation-semicolon\"}]},\"colon-expression\":{\"match\":\":\",\"name\":\"keyword.operator.conditional.colon.apex\"},\"comment\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*(\\\\\\\\*)?\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.apex\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.apex\"}},\"name\":\"comment.block.apex\"},{\"begin\":\"(^\\\\\\\\s+)?(?=//)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.apex\"}},\"end\":\"(?=$)\",\"patterns\":[{\"begin\":\"(?<!/)///(?!/)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.apex\"}},\"end\":\"(?=$)\",\"name\":\"comment.block.documentation.apex\",\"patterns\":[{\"include\":\"#xml-doc-comment\"}]},{\"begin\":\"(?<!/)//(?:(?!/)|(?=//))\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.apex\"}},\"end\":\"(?=$)\",\"name\":\"comment.line.double-slash.apex\"}]}]},\"conditional-operator\":{\"begin\":\"(?<!\\\\\\\\?)\\\\\\\\?(?!\\\\\\\\?|\\\\\\\\.|\\\\\\\\[)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.conditional.question-mark.apex\"}},\"end\":\":\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.conditional.colon.apex\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"constructor-declaration\":{\"begin\":\"(?=@?[_[:alpha:]][_[:alnum:]]*\\\\\\\\s*\\\\\\\\()\",\"end\":\"(?<=\\\\\\\\})|(?=;)\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.function.apex\"}},\"match\":\"(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\b\"},{\"begin\":\"(:)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.colon.apex\"}},\"end\":\"(?=\\\\\\\\{|=>)\",\"patterns\":[{\"include\":\"#constructor-initializer\"}]},{\"include\":\"#parenthesized-parameter-list\"},{\"include\":\"#comment\"},{\"include\":\"#expression-body\"},{\"include\":\"#block\"}]},\"constructor-initializer\":{\"begin\":\"\\\\\\\\b(?:(this))\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.this.apex\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"include\":\"#argument-list\"}]},\"date-literal-with-params\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.query.date.apex\"}},\"match\":\"\\\\\\\\b((LAST_N_DAYS|NEXT_N_DAYS|NEXT_N_WEEKS|LAST_N_WEEKS|NEXT_N_MONTHS|LAST_N_MONTHS|NEXT_N_QUARTERS|LAST_N_QUARTERS|NEXT_N_YEARS|LAST_N_YEARS|NEXT_N_FISCAL_QUARTERS|LAST_N_FISCAL_QUARTERS|NEXT_N_FISCAL_YEARS|LAST_N_FISCAL_YEARS)\\\\\\\\s*\\\\\\\\:\\\\\\\\d+)\\\\\\\\b\"},\"date-literals\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.query.date.apex\"}},\"match\":\"\\\\\\\\b(YESTERDAY|TODAY|TOMORROW|LAST_WEEK|THIS_WEEK|NEXT_WEEK|LAST_MONTH|THIS_MONTH|NEXT_MONTH|LAST_90_DAYS|NEXT_90_DAYS|THIS_QUARTER|LAST_QUARTER|NEXT_QUARTER|THIS_YEAR|LAST_YEAR|NEXT_YEAR|THIS_FISCAL_QUARTER|LAST_FISCAL_QUARTER|NEXT_FISCAL_QUARTER|THIS_FISCAL_YEAR|LAST_FISCAL_YEAR|NEXT_FISCAL_YEAR)\\\\\\\\b\\\\\\\\s*\"},\"declarations\":{\"patterns\":[{\"include\":\"#type-declarations\"},{\"include\":\"#punctuation-semicolon\"}]},\"directives\":{\"patterns\":[{\"include\":\"#punctuation-semicolon\"}]},\"do-statement\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(do)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.loop.do.apex\"}},\"end\":\"(?=;|})\",\"patterns\":[{\"include\":\"#statement\"}]},\"element-access-expression\":{\"begin\":\"(?:(\\\\\\\\??\\\\\\\\.)\\\\\\\\s*)?(?:(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*)?(?:(\\\\\\\\?)\\\\\\\\s*)?(?=\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#punctuation-accessor\"},{\"include\":\"#operator-safe-navigation\"}]},\"2\":{\"name\":\"variable.other.object.property.apex\"},\"3\":{\"name\":\"keyword.operator.null-conditional.apex\"}},\"end\":\"(?<=\\\\\\\\])(?!\\\\\\\\s*\\\\\\\\[)\",\"patterns\":[{\"include\":\"#bracketed-argument-list\"}]},\"else-part\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(else)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.conditional.else.apex\"}},\"end\":\"(?<=\\\\\\\\})|(?=;)\",\"patterns\":[{\"include\":\"#statement\"}]},\"enum-declaration\":{\"begin\":\"(?=\\\\\\\\benum\\\\\\\\b)\",\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"begin\":\"(?=enum)\",\"end\":\"(?=\\\\\\\\{)\",\"patterns\":[{\"include\":\"#javadoc-comment\"},{\"include\":\"#comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.enum.apex\"},\"2\":{\"name\":\"entity.name.type.enum.apex\"}},\"match\":\"(enum)\\\\\\\\s+(@?[_[:alpha:]][_[:alnum:]]*)\"}]},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.apex\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.apex\"}},\"patterns\":[{\"include\":\"#javadoc-comment\"},{\"include\":\"#comment\"},{\"include\":\"#punctuation-comma\"},{\"begin\":\"@?[_[:alpha:]][_[:alnum:]]*\",\"beginCaptures\":{\"0\":{\"name\":\"entity.name.variable.enum-member.apex\"}},\"end\":\"(?=(,|\\\\\\\\}))\",\"patterns\":[{\"include\":\"#javadoc-comment\"},{\"include\":\"#comment\"},{\"include\":\"#variable-initializer\"}]}]},{\"include\":\"#javadoc-comment\"},{\"include\":\"#comment\"}]},\"expression\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#merge-expression\"},{\"include\":\"#support-expression\"},{\"include\":\"#throw-expression\"},{\"include\":\"#this-expression\"},{\"include\":\"#trigger-context-declaration\"},{\"include\":\"#conditional-operator\"},{\"include\":\"#expression-operators\"},{\"include\":\"#soql-query-expression\"},{\"include\":\"#object-creation-expression\"},{\"include\":\"#array-creation-expression\"},{\"include\":\"#invocation-expression\"},{\"include\":\"#member-access-expression\"},{\"include\":\"#element-access-expression\"},{\"include\":\"#cast-expression\"},{\"include\":\"#literal\"},{\"include\":\"#parenthesized-expression\"},{\"include\":\"#initializer-expression\"},{\"include\":\"#identifier\"}]},\"expression-body\":{\"begin\":\"=>\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.arrow.apex\"}},\"end\":\"(?=[,\\\\\\\\);}])\",\"patterns\":[{\"include\":\"#expression\"}]},\"expression-operators\":{\"patterns\":[{\"match\":\"\\\\\\\\*=|/=|%=|\\\\\\\\+=|-=\",\"name\":\"keyword.operator.assignment.compound.apex\"},{\"match\":\"\\\\\\\\&=|\\\\\\\\^=|<<=|>>=|\\\\\\\\|=\",\"name\":\"keyword.operator.assignment.compound.bitwise.apex\"},{\"match\":\"<<|>>\",\"name\":\"keyword.operator.bitwise.shift.apex\"},{\"match\":\"==|!=\",\"name\":\"keyword.operator.comparison.apex\"},{\"match\":\"<=|>=|<|>\",\"name\":\"keyword.operator.relational.apex\"},{\"match\":\"\\\\\\\\!|&&|\\\\\\\\|\\\\\\\\|\",\"name\":\"keyword.operator.logical.apex\"},{\"match\":\"\\\\\\\\&|~|\\\\\\\\^|\\\\\\\\|\",\"name\":\"keyword.operator.bitwise.apex\"},{\"match\":\"\\\\\\\\=\",\"name\":\"keyword.operator.assignment.apex\"},{\"match\":\"--\",\"name\":\"keyword.operator.decrement.apex\"},{\"match\":\"\\\\\\\\+\\\\\\\\+\",\"name\":\"keyword.operator.increment.apex\"},{\"match\":\"%|\\\\\\\\*|/|-|\\\\\\\\+\",\"name\":\"keyword.operator.arithmetic.apex\"}]},\"extends-class\":{\"begin\":\"(extends)\\\\\\\\b\\\\\\\\s+([_[:alpha:]][_[:alnum:]]*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.extends.apex\"},\"2\":{\"name\":\"entity.name.type.extends.apex\"}},\"end\":\"(?={|implements)\"},\"field-declaration\":{\"begin\":\"(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*)(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*)*))\\\\\\\\s+(\\\\\\\\g<identifier>)\\\\\\\\s*(?!=>|==)(?=,|;|=|$)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#support-type\"},{\"include\":\"#type\"}]},\"5\":{\"name\":\"entity.name.variable.field.apex\"}},\"end\":\"(?=;)\",\"patterns\":[{\"match\":\"@?[_[:alpha:]][_[:alnum:]]*\",\"name\":\"entity.name.variable.field.apex\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#comment\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#class-or-trigger-members\"}]},\"finally-clause\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(finally)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.try.finally.apex\"}},\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#block\"}]},\"for-apex-syntax\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#support-type\"},{\"include\":\"#type\"}]},\"2\":{\"name\":\"entity.name.variable.local.apex\"},\"3\":{\"name\":\"keyword.operator.iterator.colon.apex\"}},\"match\":\"([_.[:alpha:]][_.[:alnum:]]+)\\\\\\\\s+([_.[:alpha:]][_.[:alnum:]]*)\\\\\\\\s*(\\\\\\\\:)\"},\"for-statement\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(for)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.loop.for.apex\"}},\"end\":\"(?<=\\\\\\\\})|(?=;)\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.apex\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.apex\"}},\"patterns\":[{\"include\":\"#for-apex-syntax\"},{\"include\":\"#local-variable-declaration\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#punctuation-semicolon\"},{\"include\":\"#colon-expression\"}]},{\"include\":\"#statement\"}]},\"from-clause\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.query.from.apex\"},\"2\":{\"name\":\"storage.type.apex\"}},\"match\":\"(FROM)\\\\\\\\b\\\\\\\\s*([_\\\\\\\\.[:alnum:]]+\\\\\\\\b)?\"},\"goto-statement\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(goto)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.goto.apex\"}},\"end\":\"(?=;)\",\"patterns\":[{\"begin\":\"\\\\\\\\b(case)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.case.apex\"}},\"end\":\"(?=;)\",\"patterns\":[{\"include\":\"#expression\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.default.apex\"}},\"match\":\"\\\\\\\\b(default)\\\\\\\\b\"},{\"match\":\"@?[_[:alpha:]][_[:alnum:]]*\",\"name\":\"entity.name.label.apex\"}]},\"identifier\":{\"match\":\"@?[_[:alpha:]][_[:alnum:]]*\",\"name\":\"variable.other.readwrite.apex\"},\"if-statement\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(if)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.conditional.if.apex\"}},\"end\":\"(?<=\\\\\\\\})|(?=;)\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.apex\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.apex\"}},\"patterns\":[{\"include\":\"#expression\"}]},{\"include\":\"#statement\"}]},\"implements-class\":{\"begin\":\"(implements)\\\\\\\\b\\\\\\\\s+([_[:alpha:]][_[:alnum:]]*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.implements.apex\"},\"2\":{\"name\":\"entity.name.type.implements.apex\"}},\"end\":\"(?={|extends)\"},\"indexer-declaration\":{\"begin\":\"(?<return_type>(?<type_name>(?:(?:ref\\\\\\\\s+)?(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*)(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*)*))\\\\\\\\s+)(?<interface_name>\\\\\\\\g<type_name>\\\\\\\\s*\\\\\\\\.\\\\\\\\s*)?(?<indexer_name>this)\\\\\\\\s*(?=\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#type\"}]},\"6\":{\"patterns\":[{\"include\":\"#type\"},{\"include\":\"#punctuation-accessor\"}]},\"7\":{\"name\":\"keyword.other.this.apex\"}},\"end\":\"(?<=\\\\\\\\})|(?=;)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#property-accessors\"},{\"include\":\"#expression-body\"},{\"include\":\"#variable-initializer\"}]},\"initializer-expression\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.apex\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.apex\"}},\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"interface-declaration\":{\"begin\":\"(?=\\\\\\\\binterface\\\\\\\\b)\",\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"begin\":\"(interface)\\\\\\\\b\\\\\\\\s+(@?[_[:alpha:]][_[:alnum:]]*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.interface.apex\"},\"2\":{\"name\":\"entity.name.type.interface.apex\"}},\"end\":\"(?=\\\\\\\\{)\",\"patterns\":[{\"include\":\"#javadoc-comment\"},{\"include\":\"#comment\"},{\"include\":\"#type-parameter-list\"},{\"include\":\"#extends-class\"}]},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.apex\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.apex\"}},\"patterns\":[{\"include\":\"#interface-members\"}]},{\"include\":\"#javadoc-comment\"},{\"include\":\"#comment\"}]},\"interface-members\":{\"patterns\":[{\"include\":\"#javadoc-comment\"},{\"include\":\"#comment\"},{\"include\":\"#property-declaration\"},{\"include\":\"#indexer-declaration\"},{\"include\":\"#method-declaration\"},{\"include\":\"#punctuation-semicolon\"}]},\"invocation-expression\":{\"begin\":\"(?:(\\\\\\\\??\\\\\\\\.)\\\\\\\\s*)?(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*(?<type_args>\\\\\\\\s*<([^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#punctuation-accessor\"},{\"include\":\"#operator-safe-navigation\"}]},\"2\":{\"name\":\"entity.name.function.apex\"},\"3\":{\"patterns\":[{\"include\":\"#type-arguments\"}]}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"include\":\"#argument-list\"}]},\"javadoc-comment\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*(/\\\\\\\\*\\\\\\\\*)(?!/)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.apex\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.apex\"}},\"name\":\"comment.block.javadoc.apex\",\"patterns\":[{\"match\":\"@(deprecated|author|return|see|serial|since|version|usage|name|link)\\\\\\\\b\",\"name\":\"keyword.other.documentation.javadoc.apex\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.documentation.javadoc.apex\"},\"2\":{\"name\":\"entity.name.variable.parameter.apex\"}},\"match\":\"(@param)\\\\\\\\s+(\\\\\\\\S+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.documentation.javadoc.apex\"},\"2\":{\"name\":\"entity.name.type.class.apex\"}},\"match\":\"(@(?:exception|throws))\\\\\\\\s+(\\\\\\\\S+)\"},{\"captures\":{\"1\":{\"name\":\"string.quoted.single.apex\"}},\"match\":\"(\\`([^\\`]+?)\\`)\"}]}]},\"literal\":{\"patterns\":[{\"include\":\"#boolean-literal\"},{\"include\":\"#null-literal\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#string-literal\"}]},\"local-constant-declaration\":{\"begin\":\"(?<const_keyword>\\\\\\\\b(?:const)\\\\\\\\b)\\\\\\\\s*(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*)(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*)*))\\\\\\\\s+(\\\\\\\\g<identifier>)\\\\\\\\s*(?=,|;|=)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.apex\"},\"2\":{\"patterns\":[{\"include\":\"#type\"}]},\"6\":{\"name\":\"entity.name.variable.local.apex\"}},\"end\":\"(?=;)\",\"patterns\":[{\"match\":\"@?[_[:alpha:]][_[:alnum:]]*\",\"name\":\"entity.name.variable.local.apex\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#comment\"},{\"include\":\"#variable-initializer\"}]},\"local-declaration\":{\"patterns\":[{\"include\":\"#local-constant-declaration\"},{\"include\":\"#local-variable-declaration\"}]},\"local-variable-declaration\":{\"begin\":\"(?:(?:(\\\\\\\\bref)\\\\\\\\s+)?(\\\\\\\\bvar\\\\\\\\b)|(?<type_name>(?:(?:ref\\\\\\\\s+)?(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*)(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*)*)))\\\\\\\\s+(\\\\\\\\g<identifier>)\\\\\\\\s*(?=,|;|=|\\\\\\\\))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.apex\"},\"2\":{\"name\":\"keyword.other.var.apex\"},\"3\":{\"patterns\":[{\"include\":\"#support-type\"},{\"include\":\"#type\"}]},\"7\":{\"name\":\"entity.name.variable.local.apex\"}},\"end\":\"(?=;|\\\\\\\\))\",\"patterns\":[{\"match\":\"@?[_[:alpha:]][_[:alnum:]]*\",\"name\":\"entity.name.variable.local.apex\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#comment\"},{\"include\":\"#variable-initializer\"}]},\"member-access-expression\":{\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#punctuation-accessor\"},{\"include\":\"#operator-safe-navigation\"}]},\"2\":{\"name\":\"variable.other.object.property.apex\"}},\"match\":\"(\\\\\\\\??\\\\\\\\.)\\\\\\\\s*(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*(?![_[:alnum:]]|\\\\\\\\(|(\\\\\\\\?)?\\\\\\\\[|<)\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#punctuation-accessor\"},{\"include\":\"#operator-safe-navigation\"}]},\"2\":{\"name\":\"variable.other.object.apex\"},\"3\":{\"patterns\":[{\"include\":\"#type-arguments\"}]}},\"match\":\"(\\\\\\\\??\\\\\\\\.)?\\\\\\\\s*(@?[_[:alpha:]][_[:alnum:]]*)(?<type_params>\\\\\\\\s*<([^<>]|\\\\\\\\g<type_params>)+>\\\\\\\\s*)(?=(\\\\\\\\s*\\\\\\\\?)?\\\\\\\\s*\\\\\\\\.\\\\\\\\s*@?[_[:alpha:]][_[:alnum:]]*)\"},{\"captures\":{\"1\":{\"name\":\"variable.other.object.apex\"}},\"match\":\"(@?[_[:alpha:]][_[:alnum:]]*)(?=(\\\\\\\\s*\\\\\\\\?)?\\\\\\\\s*\\\\\\\\.\\\\\\\\s*@?[_[:alpha:]][_[:alnum:]]*)\"}]},\"merge-expression\":{\"begin\":\"(merge)\\\\\\\\b\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.apex\"}},\"end\":\"(?<=\\\\\\\\;)\",\"patterns\":[{\"include\":\"#object-creation-expression\"},{\"include\":\"#merge-type-statement\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-semicolon\"}]},\"merge-type-statement\":{\"captures\":{\"1\":{\"name\":\"variable.other.readwrite.apex\"},\"2\":{\"name\":\"variable.other.readwrite.apex\"},\"3\":{\"name\":\"punctuation.terminator.statement.apex\"}},\"match\":\"([_[:alpha:]]*)\\\\\\\\b\\\\\\\\s+([_[:alpha:]]*)\\\\\\\\b\\\\\\\\s*(\\\\\\\\;)\"},\"method-declaration\":{\"begin\":\"(?<return_type>(?<type_name>(?:(?:ref\\\\\\\\s+)?(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*)(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*)*))\\\\\\\\s+)(?<interface_name>\\\\\\\\g<type_name>\\\\\\\\s*\\\\\\\\.\\\\\\\\s*)?(\\\\\\\\g<identifier>)\\\\\\\\s*(<([^<>]+)>)?\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#support-type\"},{\"include\":\"#type\"}]},\"6\":{\"patterns\":[{\"include\":\"#type\"},{\"include\":\"#punctuation-accessor\"}]},\"7\":{\"patterns\":[{\"include\":\"#support-type\"},{\"include\":\"#method-name-custom\"}]},\"8\":{\"patterns\":[{\"include\":\"#type-parameter-list\"}]}},\"end\":\"(?<=\\\\\\\\})|(?=;)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#parenthesized-parameter-list\"},{\"include\":\"#expression-body\"},{\"include\":\"#block\"}]},\"method-name-custom\":{\"match\":\"@?[_[:alpha:]][_[:alnum:]]*\",\"name\":\"entity.name.function.apex\"},\"named-argument\":{\"begin\":\"(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.variable.parameter.apex\"},\"2\":{\"name\":\"punctuation.separator.colon.apex\"}},\"end\":\"(?=(,|\\\\\\\\)|\\\\\\\\]))\",\"patterns\":[{\"include\":\"#expression\"}]},\"null-literal\":{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\bnull\\\\\\\\b\",\"name\":\"constant.language.null.apex\"},\"numeric-literal\":{\"patterns\":[{\"match\":\"\\\\\\\\b(\\\\\\\\d{4}\\\\\\\\-\\\\\\\\d{2}\\\\\\\\-\\\\\\\\d{2}T\\\\\\\\d{2}\\\\\\\\:\\\\\\\\d{2}\\\\\\\\:\\\\\\\\d{2}(\\\\\\\\.\\\\\\\\d{1,3})?(\\\\\\\\-|\\\\\\\\+)\\\\\\\\d{2}\\\\\\\\:\\\\\\\\d{2})\\\\\\\\b\",\"name\":\"constant.numeric.datetime.apex\"},{\"match\":\"\\\\\\\\b(\\\\\\\\d{4}\\\\\\\\-\\\\\\\\d{2}\\\\\\\\-\\\\\\\\d{2}T\\\\\\\\d{2}\\\\\\\\:\\\\\\\\d{2}\\\\\\\\:\\\\\\\\d{2}(\\\\\\\\.\\\\\\\\d{1,3})?(Z)?)\\\\\\\\b\",\"name\":\"constant.numeric.datetime.apex\"},{\"match\":\"\\\\\\\\b(\\\\\\\\d{4}\\\\\\\\-\\\\\\\\d{2}\\\\\\\\-\\\\\\\\d{2})\\\\\\\\b\",\"name\":\"constant.numeric.date.apex\"},{\"match\":\"\\\\\\\\b0(x|X)[0-9a-fA-F_]+(U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?\\\\\\\\b\",\"name\":\"constant.numeric.hex.apex\"},{\"match\":\"\\\\\\\\b0(b|B)[01_]+(U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?\\\\\\\\b\",\"name\":\"constant.numeric.binary.apex\"},{\"match\":\"\\\\\\\\b([0-9_]+)?\\\\\\\\.[0-9_]+((e|E)[0-9]+)?(F|f|D|d|M|m)?\\\\\\\\b\",\"name\":\"constant.numeric.decimal.apex\"},{\"match\":\"\\\\\\\\b[0-9_]+(e|E)[0-9_]+(F|f|D|d|M|m)?\\\\\\\\b\",\"name\":\"constant.numeric.decimal.apex\"},{\"match\":\"\\\\\\\\b[0-9_]+(F|f|D|d|M|m)\\\\\\\\b\",\"name\":\"constant.numeric.decimal.apex\"},{\"match\":\"\\\\\\\\b[0-9_]+(U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?\\\\\\\\b\",\"name\":\"constant.numeric.decimal.apex\"}]},\"object-creation-expression\":{\"patterns\":[{\"include\":\"#object-creation-expression-with-parameters\"},{\"include\":\"#object-creation-expression-with-no-parameters\"},{\"include\":\"#punctuation-comma\"}]},\"object-creation-expression-with-no-parameters\":{\"captures\":{\"1\":{\"name\":\"support.function.apex\"},\"2\":{\"name\":\"keyword.control.new.apex\"},\"3\":{\"patterns\":[{\"include\":\"#support-type\"},{\"include\":\"#type\"}]}},\"match\":\"(delete|insert|undelete|update|upsert)?\\\\\\\\s*(new)\\\\\\\\s+(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*)(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*)*))\\\\\\\\s*(?=\\\\\\\\{|$)\"},\"object-creation-expression-with-parameters\":{\"begin\":\"(delete|insert|undelete|update|upsert)?\\\\\\\\s*(new)\\\\\\\\s+(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*)(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*)*))\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.apex\"},\"2\":{\"name\":\"keyword.control.new.apex\"},\"3\":{\"patterns\":[{\"include\":\"#support-type\"},{\"include\":\"#type\"}]}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"include\":\"#argument-list\"}]},\"operator-assignment\":{\"match\":\"(?<!=|!)(=)(?!=)\",\"name\":\"keyword.operator.assignment.apex\"},\"operator-safe-navigation\":{\"match\":\"\\\\\\\\?\\\\\\\\.\",\"name\":\"keyword.operator.safe-navigation.apex\"},\"orderby-clause\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.query.orderby.apex\"}},\"match\":\"\\\\\\\\b(ORDER BY)\\\\\\\\b\\\\\\\\s*\",\"patterns\":[{\"include\":\"#ordering-direction\"},{\"include\":\"#ordering-nulls\"}]},\"ordering-direction\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.query.ascending.apex\"},\"2\":{\"name\":\"keyword.operator.query.descending.apex\"}},\"match\":\"\\\\\\\\b(?:(ASC)|(DESC))\\\\\\\\b\"},\"ordering-nulls\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.query.nullsfirst.apex\"},\"2\":{\"name\":\"keyword.operator.query.nullslast.apex\"}},\"match\":\"\\\\\\\\b(?:(NULLS FIRST)|(NULLS LAST))\\\\\\\\b\"},\"parameter\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.apex\"},\"2\":{\"patterns\":[{\"include\":\"#support-type\"},{\"include\":\"#type\"}]},\"6\":{\"name\":\"entity.name.variable.parameter.apex\"}},\"match\":\"(?:(?:\\\\\\\\b(this)\\\\\\\\b)\\\\\\\\s+)?(?<type_name>(?:(?:ref\\\\\\\\s+)?(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*)(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*)*))\\\\\\\\s+(\\\\\\\\g<identifier>)\"},\"parenthesized-expression\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.apex\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.apex\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"parenthesized-parameter-list\":{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.apex\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.apex\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#parameter\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#variable-initializer\"}]},\"property-accessors\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.apex\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.apex\"}},\"patterns\":[{\"match\":\"\\\\\\\\b(private|protected)\\\\\\\\b\",\"name\":\"storage.modifier.apex\"},{\"match\":\"\\\\\\\\b(get)\\\\\\\\b\",\"name\":\"keyword.other.get.apex\"},{\"match\":\"\\\\\\\\b(set)\\\\\\\\b\",\"name\":\"keyword.other.set.apex\"},{\"include\":\"#comment\"},{\"include\":\"#expression-body\"},{\"include\":\"#block\"},{\"include\":\"#punctuation-semicolon\"}]},\"property-declaration\":{\"begin\":\"(?!.*\\\\\\\\b(?:class|interface|enum)\\\\\\\\b)\\\\\\\\s*(?<return_type>(?<type_name>(?:(?:ref\\\\\\\\s+)?(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*)(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*)*))\\\\\\\\s+)(?<interface_name>\\\\\\\\g<type_name>\\\\\\\\s*\\\\\\\\.\\\\\\\\s*)?(?<property_name>\\\\\\\\g<identifier>)\\\\\\\\s*(?=\\\\\\\\{|=>|$)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#type\"}]},\"6\":{\"patterns\":[{\"include\":\"#type\"},{\"include\":\"#punctuation-accessor\"}]},\"7\":{\"name\":\"entity.name.variable.property.apex\"}},\"end\":\"(?<=\\\\\\\\})|(?=;)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#property-accessors\"},{\"include\":\"#expression-body\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#class-or-trigger-members\"}]},\"punctuation-accessor\":{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.accessor.apex\"},\"punctuation-comma\":{\"match\":\",\",\"name\":\"punctuation.separator.comma.apex\"},\"punctuation-semicolon\":{\"match\":\";\",\"name\":\"punctuation.terminator.statement.apex\"},\"query-operators\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.query.apex\"}},\"match\":\"\\\\\\\\b(ABOVE|AND|AT|FOR REFERENCE|FOR UPDATE|FOR VIEW|GROUP BY|HAVING|IN|LIKE|LIMIT|NOT IN|NOT|OFFSET|OR|TYPEOF|UPDATE TRACKING|UPDATE VIEWSTAT|WITH DATA CATEGORY|WITH)\\\\\\\\b\\\\\\\\s*\"},\"return-statement\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(return)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.flow.return.apex\"}},\"end\":\"(?=;)\",\"patterns\":[{\"include\":\"#expression\"}]},\"script-top-level\":{\"patterns\":[{\"include\":\"#method-declaration\"},{\"include\":\"#statement\"},{\"include\":\"#punctuation-semicolon\"}]},\"sharing-modifier\":{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(with sharing|without sharing|inherited sharing)\\\\\\\\b\",\"name\":\"sharing.modifier.apex\"},\"soql-colon-method-statement\":{\"begin\":\"(:?\\\\\\\\.)?([_[:alpha:]][_[:alnum:]]*)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.accessor.apex\"},\"2\":{\"name\":\"entity.name.function.apex\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.apex\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.apex\"}},\"patterns\":[{\"include\":\"#expression\"}]},{\"include\":\"#statement\"}]},\"soql-colon-vars\":{\"begin\":\"(\\\\\\\\:)\\\\\\\\s*\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.conditional.colon.apex\"}},\"end\":\"(?![_[:alnum:]]|\\\\\\\\(|(\\\\\\\\?)?\\\\\\\\[|<)\",\"patterns\":[{\"include\":\"#trigger-context-declaration\"},{\"captures\":{\"1\":{\"name\":\"variable.other.object.apex\"},\"2\":{\"patterns\":[{\"include\":\"#punctuation-accessor\"},{\"include\":\"#operator-safe-navigation\"}]}},\"match\":\"([_[:alpha:]][_[:alnum:]]*)(\\\\\\\\??\\\\\\\\.)\"},{\"include\":\"#soql-colon-method-statement\"},{\"match\":\"[_[:alpha:]][_[:alnum:]]*\",\"name\":\"entity.name.variable.local.apex\"}]},\"soql-functions\":{\"begin\":\"\\\\\\\\b(AVG|CALENDAR_MONTH|CALENDAR_QUARTER|CALENDAR_YEAR|convertCurrency|convertTimezone|COUNT|COUNT_DISTINCT|DAY_IN_MONTH|DAY_IN_WEEK|DAY_IN_YEAR|DAY_ONLY|toLabel|INCLUDES|EXCLUDES|FISCAL_MONTH|FISCAL_QUARTER|FISCAL_YEAR|FORMAT|GROUPING|GROUP BY CUBE|GROUP BY ROLLUP|HOUR_IN_DAY|MAX|MIN|SUM|WEEK_IN_MONTH|WEEK_IN_YEAR)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.query.apex\"},\"2\":{\"name\":\"punctuation.parenthesis.open.apex\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.apex\"}},\"patterns\":[{\"include\":\"#literal\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#soql-functions\"},{\"match\":\"[_.[:alpha:]][_.[:alnum:]]*\",\"name\":\"keyword.query.field.apex\"}]},\"soql-group-clauses\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.apex\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.apex\"}},\"patterns\":[{\"include\":\"#soql-query-expression\"},{\"include\":\"#soql-colon-vars\"},{\"include\":\"#soql-group-clauses\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#operator-assignment\"},{\"include\":\"#literal\"},{\"include\":\"#query-operators\"},{\"include\":\"#date-literals\"},{\"include\":\"#date-literal-with-params\"},{\"include\":\"#using-scope\"},{\"match\":\"[_.[:alpha:]][_.[:alnum:]]*\",\"name\":\"keyword.query.field.apex\"}]},\"soql-query-body\":{\"patterns\":[{\"include\":\"#trigger-context-declaration\"},{\"include\":\"#soql-colon-vars\"},{\"include\":\"#soql-functions\"},{\"include\":\"#from-clause\"},{\"include\":\"#where-clause\"},{\"include\":\"#query-operators\"},{\"include\":\"#date-literals\"},{\"include\":\"#date-literal-with-params\"},{\"include\":\"#using-scope\"},{\"include\":\"#soql-group-clauses\"},{\"include\":\"#orderby-clause\"},{\"include\":\"#ordering-direction\"},{\"include\":\"#ordering-nulls\"}]},\"soql-query-expression\":{\"begin\":\"\\\\\\\\b(SELECT)\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.query.select.apex\"}},\"end\":\"(?=;)|(?=\\\\\\\\])|(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#soql-query-body\"},{\"include\":\"#comment\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#operator-assignment\"},{\"include\":\"#parenthesized-expression\"},{\"include\":\"#expression-operators\"},{\"include\":\"#literal\"},{\"captures\":{\"1\":{\"name\":\"keyword.query.field.apex\"},\"2\":{\"name\":\"punctuation.separator.comma.apex\"}},\"match\":\"([_.[:alpha:]][_.[:alnum:]]*)\\\\\\\\s*(\\\\\\\\,)?\"}]},\"statement\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#while-statement\"},{\"include\":\"#do-statement\"},{\"include\":\"#for-statement\"},{\"include\":\"#switch-statement\"},{\"include\":\"#when-else-statement\"},{\"include\":\"#when-sobject-statement\"},{\"include\":\"#when-statement\"},{\"include\":\"#when-multiple-statement\"},{\"include\":\"#if-statement\"},{\"include\":\"#else-part\"},{\"include\":\"#goto-statement\"},{\"include\":\"#return-statement\"},{\"include\":\"#break-or-continue-statement\"},{\"include\":\"#throw-statement\"},{\"include\":\"#try-statement\"},{\"include\":\"#soql-query-expression\"},{\"include\":\"#local-declaration\"},{\"include\":\"#block\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-semicolon\"}]},\"storage-modifier\":{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(new|public|protected|private|abstract|virtual|override|global|static|final|transient)\\\\\\\\b\",\"name\":\"storage.modifier.apex\"},\"string-character-escape\":{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.apex\"},\"string-literal\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.apex\"}},\"end\":\"(\\\\\\\\')|((?:[^\\\\\\\\\\\\\\\\\\\\\\\\n])$)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.apex\"},\"2\":{\"name\":\"invalid.illegal.newline.apex\"}},\"name\":\"string.quoted.single.apex\",\"patterns\":[{\"include\":\"#string-character-escape\"}]},\"support-arguments\":{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.begin.apex\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.end.apex\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#support-type\"},{\"include\":\"#punctuation-comma\"}]},\"support-class\":{\"captures\":{\"1\":{\"name\":\"support.class.apex\"}},\"match\":\"\\\\\\\\b(ApexPages|Database|DMLException|Exception|PageReference|Savepoint|SchedulableContext|Schema|SObject|System|Test)\\\\\\\\b\"},\"support-expression\":{\"begin\":\"(ApexPages|Database|DMLException|Exception|PageReference|Savepoint|SchedulableContext|Schema|SObject|System|Test)(?=\\\\\\\\.|\\\\\\\\s)\",\"beginCaptures\":{\"1\":{\"name\":\"support.class.apex\"}},\"end\":\"(?<=\\\\\\\\)|$)|(?=\\\\\\\\})|(?=;)|(?=\\\\\\\\)|(?=\\\\\\\\]))|(?=\\\\\\\\,)\",\"patterns\":[{\"include\":\"#support-type\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.apex\"},\"2\":{\"name\":\"support.function.apex\"}},\"match\":\"(?:(\\\\\\\\.))([[:alpha:]]*)(?=\\\\\\\\()\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.apex\"},\"2\":{\"name\":\"support.type.apex\"}},\"match\":\"(?:(\\\\\\\\.))([[:alpha:]]+)\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.apex\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.apex\"}},\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},{\"include\":\"#comment\"},{\"include\":\"#statement\"}]},\"support-functions\":{\"captures\":{\"1\":{\"name\":\"support.function.apex\"}},\"match\":\"\\\\\\\\b(delete|execute|finish|insert|start|undelete|update|upsert)\\\\\\\\b\"},\"support-name\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.apex\"},\"2\":{\"name\":\"support.function.apex\"}},\"match\":\"(\\\\\\\\.)\\\\\\\\s*([[:alpha:]]*)(?=\\\\\\\\()\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.apex\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.apex\"}},\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.apex\"},\"2\":{\"name\":\"support.type.apex\"}},\"match\":\"(\\\\\\\\.)\\\\\\\\s*([_[:alpha:]]*)\"}]},\"support-type\":{\"name\":\"support.apex\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#support-class\"},{\"include\":\"#support-functions\"},{\"include\":\"#support-name\"}]},\"switch-statement\":{\"begin\":\"(switch)\\\\\\\\b\\\\\\\\s+(on)\\\\\\\\b\\\\\\\\s+(?:([_.?\\\\\\\\'\\\\\\\\(\\\\\\\\)[:alnum:]]+)\\\\\\\\s*)?(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.switch.apex\"},\"2\":{\"name\":\"keyword.control.switch.on.apex\"},\"3\":{\"patterns\":[{\"include\":\"#statement\"},{\"include\":\"#parenthesized-expression\"}]},\"4\":{\"name\":\"punctuation.curlybrace.open.apex\"}},\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.apex\"}},\"patterns\":[{\"include\":\"#when-string\"},{\"include\":\"#when-else-statement\"},{\"include\":\"#when-sobject-statement\"},{\"include\":\"#when-statement\"},{\"include\":\"#when-multiple-statement\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#punctuation-semicolon\"}]},\"this-expression\":{\"captures\":{\"1\":{\"name\":\"keyword.other.this.apex\"}},\"match\":\"\\\\\\\\b(?:(this))\\\\\\\\b\"},\"throw-expression\":{\"captures\":{\"1\":{\"name\":\"keyword.control.flow.throw.apex\"}},\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(throw)\\\\\\\\b\"},\"throw-statement\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(throw)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.flow.throw.apex\"}},\"end\":\"(?=;)\",\"patterns\":[{\"include\":\"#expression\"}]},\"trigger-context-declaration\":{\"begin\":\"\\\\\\\\b(?:(Trigger))\\\\\\\\b(\\\\\\\\.)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"support.class.trigger.apex\"},\"2\":{\"name\":\"punctuation.accessor.apex\"}},\"end\":\"(?=\\\\\\\\})|(?=;)|(?=\\\\\\\\)|(?=\\\\\\\\]))\",\"patterns\":[{\"match\":\"\\\\\\\\b(isExecuting|isInsert|isUpdate|isDelete|isBefore|isAfter|isUndelete|new|newMap|old|oldMap|size)\\\\\\\\b\",\"name\":\"support.type.trigger.apex\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#punctuation-accessor\"},{\"include\":\"#operator-safe-navigation\"}]},\"2\":{\"name\":\"support.function.trigger.apex\"}},\"match\":\"(?:(\\\\\\\\??\\\\\\\\.))([[:alpha:]]+)(?=\\\\\\\\()\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.apex\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.apex\"}},\"patterns\":[{\"include\":\"#trigger-type-statement\"},{\"include\":\"#javadoc-comment\"},{\"include\":\"#comment\"},{\"include\":\"#expression\"}]},{\"include\":\"#expression\"}]},\"trigger-declaration\":{\"begin\":\"(?=\\\\\\\\btrigger\\\\\\\\b)\",\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"begin\":\"\\\\\\\\b(trigger)\\\\\\\\b\\\\\\\\s+(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\b(on)\\\\\\\\b\\\\\\\\s+([_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.trigger.apex\"},\"2\":{\"name\":\"entity.name.type.trigger.apex\"},\"3\":{\"name\":\"keyword.operator.trigger.on.apex\"},\"4\":{\"name\":\"storage.type.apex\"}},\"end\":\"(?=\\\\\\\\{)\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.apex\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.apex\"}},\"patterns\":[{\"include\":\"#trigger-type-statement\"},{\"include\":\"#trigger-operator-statement\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#expression\"}]},{\"include\":\"#javadoc-comment\"},{\"include\":\"#comment\"},{\"include\":\"#type-parameter-list\"}]},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.apex\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.apex\"}},\"patterns\":[{\"include\":\"#statement\"},{\"include\":\"#class-or-trigger-members\"}]},{\"include\":\"#javadoc-comment\"},{\"include\":\"#comment\"}]},\"trigger-operator-statement\":{\"match\":\"\\\\\\\\b(insert|update|delete|merge|upsert|undelete)\\\\\\\\b\",\"name\":\"keyword.operator.trigger.apex\"},\"trigger-type-statement\":{\"captures\":{\"1\":{\"name\":\"keyword.control.trigger.before.apex\"},\"2\":{\"name\":\"keyword.control.trigger.after.apex\"}},\"match\":\"\\\\\\\\b(?:(before)|(after))\\\\\\\\b\"},\"try-block\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(try)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.try.apex\"}},\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#block\"}]},\"try-statement\":{\"patterns\":[{\"include\":\"#try-block\"},{\"include\":\"#catch-clause\"},{\"include\":\"#finally-clause\"}]},\"type\":{\"name\":\"meta.type.apex\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-builtin\"},{\"include\":\"#type-name\"},{\"include\":\"#type-arguments\"},{\"include\":\"#type-array-suffix\"},{\"include\":\"#type-nullable-suffix\"}]},\"type-arguments\":{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.begin.apex\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.end.apex\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#support-type\"},{\"include\":\"#type\"},{\"include\":\"#punctuation-comma\"}]},\"type-array-suffix\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.squarebracket.open.apex\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.squarebracket.close.apex\"}},\"patterns\":[{\"include\":\"#punctuation-comma\"}]},\"type-builtin\":{\"captures\":{\"1\":{\"name\":\"keyword.type.apex\"}},\"match\":\"\\\\\\\\b(Blob|Boolean|byte|Date|Datetime|Decimal|Double|ID|Integer|Long|Object|String|Time|void)\\\\\\\\b\"},\"type-declarations\":{\"patterns\":[{\"include\":\"#javadoc-comment\"},{\"include\":\"#comment\"},{\"include\":\"#annotation-declaration\"},{\"include\":\"#storage-modifier\"},{\"include\":\"#sharing-modifier\"},{\"include\":\"#class-declaration\"},{\"include\":\"#enum-declaration\"},{\"include\":\"#interface-declaration\"},{\"include\":\"#trigger-declaration\"},{\"include\":\"#punctuation-semicolon\"}]},\"type-name\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.apex\"},\"2\":{\"name\":\"punctuation.accessor.apex\"}},\"match\":\"(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*(\\\\\\\\.)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.apex\"},\"2\":{\"name\":\"storage.type.apex\"}},\"match\":\"(\\\\\\\\.)\\\\\\\\s*(@?[_[:alpha:]][_[:alnum:]]*)\"},{\"match\":\"@?[_[:alpha:]][_[:alnum:]]*\",\"name\":\"storage.type.apex\"}]},\"type-nullable-suffix\":{\"captures\":{\"0\":{\"name\":\"punctuation.separator.question-mark.apex\"}},\"match\":\"\\\\\\\\?\"},\"type-parameter-list\":{\"begin\":\"\\\\\\\\<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.begin.apex\"}},\"end\":\"\\\\\\\\>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.end.apex\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.type.type-parameter.apex\"}},\"match\":\"(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\b\"},{\"include\":\"#comment\"},{\"include\":\"#punctuation-comma\"}]},\"using-scope\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.query.using.apex\"}},\"match\":\"((USING SCOPE)\\\\\\\\b\\\\\\\\s*(Delegated|Everything|Mine|My_Territory|My_Team_Territory|Team))\\\\\\\\b\\\\\\\\s*\"},\"variable-initializer\":{\"begin\":\"(?<!=|!)(=)(?!=|>)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.apex\"}},\"end\":\"(?=[,\\\\\\\\)\\\\\\\\];}])\",\"patterns\":[{\"include\":\"#expression\"}]},\"when-else-statement\":{\"begin\":\"(when)\\\\\\\\b\\\\\\\\s+(else)\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.switch.when.apex\"},\"2\":{\"name\":\"keyword.control.switch.else.apex\"}},\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#block\"},{\"include\":\"#expression\"}]},\"when-multiple-statement\":{\"begin\":\"(when)\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.switch.when.apex\"}},\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#block\"},{\"include\":\"#expression\"}]},\"when-sobject-statement\":{\"begin\":\"(when)\\\\\\\\b\\\\\\\\s+([_[:alnum:]]+)\\\\\\\\s+([_[:alnum:]]+)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.switch.when.apex\"},\"2\":{\"name\":\"storage.type.apex\"},\"3\":{\"name\":\"entity.name.variable.local.apex\"}},\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#block\"},{\"include\":\"#expression\"}]},\"when-statement\":{\"begin\":\"(when)\\\\\\\\b\\\\\\\\s+([\\\\\\\\'_\\\\\\\\-[:alnum:]]+)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.switch.when.apex\"},\"2\":{\"patterns\":[{\"include\":\"#expression\"}]}},\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#block\"},{\"include\":\"#expression\"}]},\"when-string\":{\"begin\":\"(when)(\\\\\\\\b\\\\\\\\s*)((\\\\\\\\')[_.\\\\\\\\,\\\\\\\\'\\\\\\\\s*[:alnum:]]+)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.switch.when.apex\"},\"2\":{\"name\":\"punctuation.whitespace.apex\"},\"3\":{\"patterns\":[{\"include\":\"#when-string-statement\"},{\"include\":\"#punctuation-comma\"}]}},\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#block\"},{\"include\":\"#expression\"}]},\"when-string-statement\":{\"patterns\":[{\"begin\":\"\\\\\\\\'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.apex\"}},\"end\":\"\\\\\\\\'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.apex\"}},\"name\":\"string.quoted.single.apex\"}]},\"where-clause\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.query.where.apex\"}},\"match\":\"\\\\\\\\b(WHERE)\\\\\\\\b\\\\\\\\s*\"},\"while-statement\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(while)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.loop.while.apex\"}},\"end\":\"(?<=\\\\\\\\})|(?=;)\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.apex\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.apex\"}},\"patterns\":[{\"include\":\"#expression\"}]},{\"include\":\"#statement\"}]},\"xml-attribute\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.apex\"},\"2\":{\"name\":\"entity.other.attribute-name.namespace.apex\"},\"3\":{\"name\":\"punctuation.separator.colon.apex\"},\"4\":{\"name\":\"entity.other.attribute-name.localname.apex\"},\"5\":{\"name\":\"punctuation.separator.equals.apex\"}},\"match\":\"(?:^|\\\\\\\\s+)((?:([-_[:alnum:]]+)(:))?([-_[:alnum:]]+))(=)\"},{\"include\":\"#xml-string\"}]},\"xml-cdata\":{\"begin\":\"<!\\\\\\\\[CDATA\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.apex\"}},\"end\":\"\\\\\\\\]\\\\\\\\]>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.apex\"}},\"name\":\"string.unquoted.cdata.apex\"},\"xml-character-entity\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.constant.apex\"},\"3\":{\"name\":\"punctuation.definition.constant.apex\"}},\"match\":\"(&)((?:[[:alpha:]:_][[:alnum:]:_.-]*)|(?:\\\\\\\\#[[:digit:]]+)|(?:\\\\\\\\#x[[:xdigit:]]+))(;)\",\"name\":\"constant.character.entity.apex\"},{\"match\":\"&\",\"name\":\"invalid.illegal.bad-ampersand.apex\"}]},\"xml-comment\":{\"begin\":\"<!--\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.apex\"}},\"end\":\"-->\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.apex\"}},\"name\":\"comment.block.apex\"},\"xml-doc-comment\":{\"patterns\":[{\"include\":\"#xml-comment\"},{\"include\":\"#xml-character-entity\"},{\"include\":\"#xml-cdata\"},{\"include\":\"#xml-tag\"}]},\"xml-string\":{\"patterns\":[{\"begin\":\"\\\\\\\\'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.apex\"}},\"end\":\"\\\\\\\\'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.apex\"}},\"name\":\"string.quoted.single.apex\",\"patterns\":[{\"include\":\"#xml-character-entity\"}]},{\"begin\":\"\\\\\\\\\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.stringdoublequote.begin.apex\"}},\"end\":\"\\\\\\\\\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.stringdoublequote.end.apex\"}},\"name\":\"string.quoted.double.apex\",\"patterns\":[{\"include\":\"#xml-character-entity\"}]}]},\"xml-tag\":{\"begin\":\"(</?)((?:([-_[:alnum:]]+)(:))?([-_[:alnum:]]+))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.apex\"},\"2\":{\"name\":\"entity.name.tag.apex\"},\"3\":{\"name\":\"entity.name.tag.namespace.apex\"},\"4\":{\"name\":\"punctuation.separator.colon.apex\"},\"5\":{\"name\":\"entity.name.tag.localname.apex\"}},\"end\":\"(/?>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.apex\"}},\"name\":\"meta.tag.apex\",\"patterns\":[{\"include\":\"#xml-attribute\"}]}},\"scopeName\":\"source.apex\"}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/COK4E0Yg.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"SQL\",\"name\":\"sql\",\"patterns\":[{\"match\":\"((?<!@)@)\\\\\\\\b(\\\\\\\\w+)\\\\\\\\b\",\"name\":\"text.variable\"},{\"match\":\"(\\\\\\\\[)[^\\\\\\\\]]*(\\\\\\\\])\",\"name\":\"text.bracketed\"},{\"include\":\"#comments\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.create.sql\"},\"2\":{\"name\":\"keyword.other.sql\"},\"5\":{\"name\":\"entity.name.function.sql\"}},\"match\":\"(?i:^\\\\\\\\s*(create(?:\\\\\\\\s+or\\\\\\\\s+replace)?)\\\\\\\\s+(aggregate|conversion|database|domain|function|group|(unique\\\\\\\\s+)?index|language|operator class|operator|rule|schema|sequence|table|tablespace|trigger|type|user|view)\\\\\\\\s+)([\\'\\\\\"`]?)(\\\\\\\\w+)\\\\\\\\4\",\"name\":\"meta.create.sql\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.create.sql\"},\"2\":{\"name\":\"keyword.other.sql\"}},\"match\":\"(?i:^\\\\\\\\s*(drop)\\\\\\\\s+(aggregate|conversion|database|domain|function|group|index|language|operator class|operator|rule|schema|sequence|table|tablespace|trigger|type|user|view))\",\"name\":\"meta.drop.sql\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.create.sql\"},\"2\":{\"name\":\"keyword.other.table.sql\"},\"3\":{\"name\":\"entity.name.function.sql\"},\"4\":{\"name\":\"keyword.other.cascade.sql\"}},\"match\":\"(?i:\\\\\\\\s*(drop)\\\\\\\\s+(table)\\\\\\\\s+(\\\\\\\\w+)(\\\\\\\\s+cascade)?\\\\\\\\b)\",\"name\":\"meta.drop.sql\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.create.sql\"},\"2\":{\"name\":\"keyword.other.table.sql\"}},\"match\":\"(?i:^\\\\\\\\s*(alter)\\\\\\\\s+(aggregate|conversion|database|domain|function|group|index|language|operator class|operator|proc(edure)?|rule|schema|sequence|table|tablespace|trigger|type|user|view)\\\\\\\\s+)\",\"name\":\"meta.alter.sql\"},{\"captures\":{\"1\":{\"name\":\"storage.type.sql\"},\"2\":{\"name\":\"storage.type.sql\"},\"3\":{\"name\":\"constant.numeric.sql\"},\"4\":{\"name\":\"storage.type.sql\"},\"5\":{\"name\":\"constant.numeric.sql\"},\"6\":{\"name\":\"storage.type.sql\"},\"7\":{\"name\":\"constant.numeric.sql\"},\"8\":{\"name\":\"constant.numeric.sql\"},\"9\":{\"name\":\"storage.type.sql\"},\"10\":{\"name\":\"constant.numeric.sql\"},\"11\":{\"name\":\"storage.type.sql\"},\"12\":{\"name\":\"storage.type.sql\"},\"13\":{\"name\":\"storage.type.sql\"},\"14\":{\"name\":\"constant.numeric.sql\"},\"15\":{\"name\":\"storage.type.sql\"}},\"match\":\"(?xi)\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t# normal stuff, capture 1\\\\n\\\\t\\\\t\\\\t\\\\t \\\\\\\\b(bigint|bigserial|bit|boolean|box|bytea|cidr|circle|date|double\\\\\\\\sprecision|inet|int|integer|line|lseg|macaddr|money|oid|path|point|polygon|real|serial|smallint|sysdate|text)\\\\\\\\b\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t# numeric suffix, capture 2 + 3i\\\\n\\\\t\\\\t\\\\t\\\\t|\\\\\\\\b(bit\\\\\\\\svarying|character\\\\\\\\s(?:varying)?|tinyint|var\\\\\\\\schar|float|interval)\\\\\\\\((\\\\\\\\d+)\\\\\\\\)\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t# optional numeric suffix, capture 4 + 5i\\\\n\\\\t\\\\t\\\\t\\\\t|\\\\\\\\b(char|number|varchar\\\\\\\\d?)\\\\\\\\b(?:\\\\\\\\((\\\\\\\\d+)\\\\\\\\))?\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t# special case, capture 6 + 7i + 8i\\\\n\\\\t\\\\t\\\\t\\\\t|\\\\\\\\b(numeric|decimal)\\\\\\\\b(?:\\\\\\\\((\\\\\\\\d+),(\\\\\\\\d+)\\\\\\\\))?\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t# special case, captures 9, 10i, 11\\\\n\\\\t\\\\t\\\\t\\\\t|\\\\\\\\b(times?)\\\\\\\\b(?:\\\\\\\\((\\\\\\\\d+)\\\\\\\\))?(\\\\\\\\swith(?:out)?\\\\\\\\stime\\\\\\\\szone\\\\\\\\b)?\\\\n\\\\n\\\\t\\\\t\\\\t\\\\t# special case, captures 12, 13, 14i, 15\\\\n\\\\t\\\\t\\\\t\\\\t|\\\\\\\\b(timestamp)(?:(s|tz))?\\\\\\\\b(?:\\\\\\\\((\\\\\\\\d+)\\\\\\\\))?(\\\\\\\\s(with|without)\\\\\\\\stime\\\\\\\\szone\\\\\\\\b)?\\\\n\\\\n\\\\t\\\\t\\\\t\"},{\"match\":\"(?i:\\\\\\\\b((?:primary|foreign)\\\\\\\\s+key|references|on\\\\\\\\sdelete(\\\\\\\\s+cascade)?|nocheck|check|constraint|collate|default)\\\\\\\\b)\",\"name\":\"storage.modifier.sql\"},{\"match\":\"\\\\\\\\b\\\\\\\\d+\\\\\\\\b\",\"name\":\"constant.numeric.sql\"},{\"match\":\"(?i:\\\\\\\\b(select(\\\\\\\\s+(all|distinct))?|insert\\\\\\\\s+(ignore\\\\\\\\s+)?into|update|delete|from|set|where|group\\\\\\\\s+by|or|like|and|union(\\\\\\\\s+all)?|having|order\\\\\\\\s+by|limit|cross\\\\\\\\s+join|join|straight_join|(inner|(left|right|full)(\\\\\\\\s+outer)?)\\\\\\\\s+join|natural(\\\\\\\\s+(inner|(left|right|full)(\\\\\\\\s+outer)?))?\\\\\\\\s+join)\\\\\\\\b)\",\"name\":\"keyword.other.DML.sql\"},{\"match\":\"(?i:\\\\\\\\b(on|off|((is\\\\\\\\s+)?not\\\\\\\\s+)?null)\\\\\\\\b)\",\"name\":\"keyword.other.DDL.create.II.sql\"},{\"match\":\"(?i:\\\\\\\\bvalues\\\\\\\\b)\",\"name\":\"keyword.other.DML.II.sql\"},{\"match\":\"(?i:\\\\\\\\b(begin(\\\\\\\\s+work)?|start\\\\\\\\s+transaction|commit(\\\\\\\\s+work)?|rollback(\\\\\\\\s+work)?)\\\\\\\\b)\",\"name\":\"keyword.other.LUW.sql\"},{\"match\":\"(?i:\\\\\\\\b(grant(\\\\\\\\swith\\\\\\\\sgrant\\\\\\\\soption)?|revoke)\\\\\\\\b)\",\"name\":\"keyword.other.authorization.sql\"},{\"match\":\"(?i:\\\\\\\\bin\\\\\\\\b)\",\"name\":\"keyword.other.data-integrity.sql\"},{\"match\":\"(?i:^\\\\\\\\s*(comment\\\\\\\\s+on\\\\\\\\s+(table|column|aggregate|constraint|database|domain|function|index|operator|rule|schema|sequence|trigger|type|view))\\\\\\\\s+.*?\\\\\\\\s+(is)\\\\\\\\s+)\",\"name\":\"keyword.other.object-comments.sql\"},{\"match\":\"(?i)\\\\\\\\bAS\\\\\\\\b\",\"name\":\"keyword.other.alias.sql\"},{\"match\":\"(?i)\\\\\\\\b(DESC|ASC)\\\\\\\\b\",\"name\":\"keyword.other.order.sql\"},{\"match\":\"\\\\\\\\*\",\"name\":\"keyword.operator.star.sql\"},{\"match\":\"[!<>]?=|<>|<|>\",\"name\":\"keyword.operator.comparison.sql\"},{\"match\":\"-|\\\\\\\\+|/\",\"name\":\"keyword.operator.math.sql\"},{\"match\":\"\\\\\\\\|\\\\\\\\|\",\"name\":\"keyword.operator.concatenator.sql\"},{\"captures\":{\"1\":{\"name\":\"support.function.aggregate.sql\"}},\"match\":\"(?i)\\\\\\\\b(approx_count_distinct|approx_percentile_cont|approx_percentile_disc|avg|checksum_agg|count|count_big|group|grouping|grouping_id|max|min|sum|stdev|stdevp|var|varp)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\"},{\"captures\":{\"1\":{\"name\":\"support.function.analytic.sql\"}},\"match\":\"(?i)\\\\\\\\b(cume_dist|first_value|lag|last_value|lead|percent_rank|percentile_cont|percentile_disc)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\"},{\"captures\":{\"1\":{\"name\":\"support.function.bitmanipulation.sql\"}},\"match\":\"(?i)\\\\\\\\b(bit_count|get_bit|left_shift|right_shift|set_bit)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\"},{\"captures\":{\"1\":{\"name\":\"support.function.conversion.sql\"}},\"match\":\"(?i)\\\\\\\\b(cast|convert|parse|try_cast|try_convert|try_parse)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\"},{\"captures\":{\"1\":{\"name\":\"support.function.collation.sql\"}},\"match\":\"(?i)\\\\\\\\b(collationproperty|tertiary_weights)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\"},{\"captures\":{\"1\":{\"name\":\"support.function.cryptographic.sql\"}},\"match\":\"(?i)\\\\\\\\b(asymkey_id|asymkeyproperty|certproperty|cert_id|crypt_gen_random|decryptbyasymkey|decryptbycert|decryptbykey|decryptbykeyautoasymkey|decryptbykeyautocert|decryptbypassphrase|encryptbyasymkey|encryptbycert|encryptbykey|encryptbypassphrase|hashbytes|is_objectsigned|key_guid|key_id|key_name|signbyasymkey|signbycert|symkeyproperty|verifysignedbycert|verifysignedbyasymkey)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\"},{\"captures\":{\"1\":{\"name\":\"support.function.cursor.sql\"}},\"match\":\"(?i)\\\\\\\\b(cursor_status)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\"},{\"captures\":{\"1\":{\"name\":\"support.function.datetime.sql\"}},\"match\":\"(?i)\\\\\\\\b(sysdatetime|sysdatetimeoffset|sysutcdatetime|current_time(stamp)?|getdate|getutcdate|datename|datepart|day|month|year|datefromparts|datetime2fromparts|datetimefromparts|datetimeoffsetfromparts|smalldatetimefromparts|timefromparts|datediff|dateadd|datetrunc|eomonth|switchoffset|todatetimeoffset|isdate|date_bucket)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\"},{\"captures\":{\"1\":{\"name\":\"support.function.datatype.sql\"}},\"match\":\"(?i)\\\\\\\\b(datalength|ident_current|ident_incr|ident_seed|identity|sql_variant_property)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\"},{\"captures\":{\"1\":{\"name\":\"support.function.expression.sql\"}},\"match\":\"(?i)\\\\\\\\b(coalesce|nullif)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\"},{\"captures\":{\"1\":{\"name\":\"support.function.globalvar.sql\"}},\"match\":\"(?<!@)@@(?i)\\\\\\\\b(cursor_rows|connections|cpu_busy|datefirst|dbts|error|fetch_status|identity|idle|io_busy|langid|language|lock_timeout|max_connections|max_precision|nestlevel|options|packet_errors|pack_received|pack_sent|procid|remserver|rowcount|servername|servicename|spid|textsize|timeticks|total_errors|total_read|total_write|trancount|version)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\"},{\"captures\":{\"1\":{\"name\":\"support.function.json.sql\"}},\"match\":\"(?i)\\\\\\\\b(json|isjson|json_object|json_array|json_value|json_query|json_modify|json_path_exists)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\"},{\"captures\":{\"1\":{\"name\":\"support.function.logical.sql\"}},\"match\":\"(?i)\\\\\\\\b(choose|iif|greatest|least)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\"},{\"captures\":{\"1\":{\"name\":\"support.function.mathematical.sql\"}},\"match\":\"(?i)\\\\\\\\b(abs|acos|asin|atan|atn2|ceiling|cos|cot|degrees|exp|floor|log|log10|pi|power|radians|rand|round|sign|sin|sqrt|square|tan)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\"},{\"captures\":{\"1\":{\"name\":\"support.function.metadata.sql\"}},\"match\":\"(?i)\\\\\\\\b(app_name|applock_mode|applock_test|assemblyproperty|col_length|col_name|columnproperty|database_principal_id|databasepropertyex|db_id|db_name|file_id|file_idex|file_name|filegroup_id|filegroup_name|filegroupproperty|fileproperty|fulltextcatalogproperty|fulltextserviceproperty|index_col|indexkey_property|indexproperty|object_definition|object_id|object_name|object_schema_name|objectproperty|objectpropertyex|original_db_name|parsename|schema_id|schema_name|scope_identity|serverproperty|stats_date|type_id|type_name|typeproperty)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\"},{\"captures\":{\"1\":{\"name\":\"support.function.ranking.sql\"}},\"match\":\"(?i)\\\\\\\\b(rank|dense_rank|ntile|row_number)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\"},{\"captures\":{\"1\":{\"name\":\"support.function.rowset.sql\"}},\"match\":\"(?i)\\\\\\\\b(generate_series|opendatasource|openjson|openrowset|openquery|openxml|predict|string_split)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\"},{\"captures\":{\"1\":{\"name\":\"support.function.security.sql\"}},\"match\":\"(?i)\\\\\\\\b(certencoded|certprivatekey|current_user|database_principal_id|has_perms_by_name|is_member|is_rolemember|is_srvrolemember|original_login|permissions|pwdcompare|pwdencrypt|schema_id|schema_name|session_user|suser_id|suser_sid|suser_sname|system_user|suser_name|user_id|user_name)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\"},{\"captures\":{\"1\":{\"name\":\"support.function.string.sql\"}},\"match\":\"(?i)\\\\\\\\b(ascii|char|charindex|concat|difference|format|left|len|lower|ltrim|nchar|nodes|patindex|quotename|replace|replicate|reverse|right|rtrim|soundex|space|str|string_agg|string_escape|string_split|stuff|substring|translate|trim|unicode|upper)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\"},{\"captures\":{\"1\":{\"name\":\"support.function.system.sql\"}},\"match\":\"(?i)\\\\\\\\b(binary_checksum|checksum|compress|connectionproperty|context_info|current_request_id|current_transaction_id|decompress|error_line|error_message|error_number|error_procedure|error_severity|error_state|formatmessage|get_filestream_transaction_context|getansinull|host_id|host_name|isnull|isnumeric|min_active_rowversion|newid|newsequentialid|rowcount_big|session_context|session_id|xact_state)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\"},{\"captures\":{\"1\":{\"name\":\"support.function.textimage.sql\"}},\"match\":\"(?i)\\\\\\\\b(patindex|textptr|textvalid)\\\\\\\\b\\\\\\\\s*\\\\\\\\(\"},{\"captures\":{\"1\":{\"name\":\"constant.other.database-name.sql\"},\"2\":{\"name\":\"constant.other.table-name.sql\"}},\"match\":\"(\\\\\\\\w+?)\\\\\\\\.(\\\\\\\\w+)\"},{\"include\":\"#strings\"},{\"include\":\"#regexps\"},{\"match\":\"\\\\\\\\b(?i)(abort|abort_after_wait|absent|absolute|accent_sensitivity|acceptable_cursopt|acp|action|activation|add|address|admin|aes_128|aes_192|aes_256|affinity|after|aggregate|algorithm|all_constraints|all_errormsgs|all_indexes|all_levels|all_results|allow_connections|allow_dup_row|allow_encrypted_value_modifications|allow_page_locks|allow_row_locks|allow_snapshot_isolation|alter|altercolumn|always|anonymous|ansi_defaults|ansi_null_default|ansi_null_dflt_off|ansi_null_dflt_on|ansi_nulls|ansi_padding|ansi_warnings|appdomain|append|application|apply|arithabort|arithignore|array|assembly|asymmetric|asynchronous_commit|at|atan2|atomic|attach|attach_force_rebuild_log|attach_rebuild_log|audit|auth_realm|authentication|auto|auto_cleanup|auto_close|auto_create_statistics|auto_drop|auto_shrink|auto_update_statistics|auto_update_statistics_async|automated_backup_preference|automatic|autopilot|availability|availability_mode|backup|backup_priority|base64|basic|batches|batchsize|before|between|bigint|binary|binding|bit|block|blockers|blocksize|bmk|both|break|broker|broker_instance|bucket_count|buffer|buffercount|bulk_logged|by|call|caller|card|case|catalog|catch|cert|certificate|change_retention|change_tracking|change_tracking_context|changes|char|character|character_set|check_expiration|check_policy|checkconstraints|checkindex|checkpoint|checksum|cleanup_policy|clear|clear_port|close|clustered|codepage|collection|column_encryption_key|column_master_key|columnstore|columnstore_archive|colv_80_to_100|colv_100_to_80|commit_differential_base|committed|compatibility_level|compress_all_row_groups|compression|compression_delay|concat_null_yields_null|concatenate|configuration|connect|connection|containment|continue|continue_after_error|contract|contract_name|control|conversation|conversation_group_id|conversation_handle|copy|copy_only|count_rows|counter|create(\\\\\\\\\\\\\\\\s+or\\\\\\\\\\\\\\\\s+alter)?|credential|cross|cryptographic|cryptographic_provider|cube|cursor|cursor_close_on_commit|cursor_default|data|data_compression|data_flush_interval_seconds|data_mirroring|data_purity|data_source|database|database_name|database_snapshot|datafiletype|date_correlation_optimization|date|datefirst|dateformat|date_format|datetime|datetime2|datetimeoffset|day(s)?|db_chaining|dbid|dbidexec|dbo_only|deadlock_priority|deallocate|dec|decimal|declare|decrypt|decrypt_a|decryption|default_database|default_fulltext_language|default_language|default_logon_domain|default_schema|definition|delay|delayed_durability|delimitedtext|density_vector|dependent|des|description|desired_state|desx|differential|digest|disable|disable_broker|disable_def_cnst_chk|disabled|disk|distinct|distributed|distribution|drop|drop_existing|dts_buffers|dump|durability|dynamic|edition|elements|else|emergency|empty|enable|enable_broker|enabled|encoding|encrypted|encrypted_value|encryption|encryption_type|end|endpoint|endpoint_url|enhancedintegrity|entry|error_broker_conversations|errorfile|estimateonly|event|except|exec|executable|execute|exists|expand|expiredate|expiry_date|explicit|external|external_access|failover|failover_mode|failure_condition_level|fast|fast_forward|fastfirstrow|federated_service_account|fetch|field_terminator|fieldterminator|file|filelistonly|filegroup|filegrowth|filename|filestream|filestream_log|filestream_on|filetable|file_format|filter|first_row|fips_flagger|fire_triggers|first|firstrow|float|flush_interval_seconds|fmtonly|following|for|force|force_failover_allow_data_loss|force_service_allow_data_loss|forced|forceplan|formatfile|format_options|format_type|formsof|forward_only|free_cursors|free_exec_context|fullscan|fulltext|fulltextall|fulltextkey|function|generated|get|geography|geometry|global|go|goto|governor|guid|hadoop|hardening|hash|hashed|header_limit|headeronly|health_check_timeout|hidden|hierarchyid|histogram|histogram_steps|hits_cursors|hits_exec_context|hour(s)?|http|identity|identity_value|if|ifnull|ignore|ignore_constraints|ignore_dup_key|ignore_dup_row|ignore_triggers|image|immediate|implicit_transactions|include|include_null_values|incremental|index|inflectional|init|initiator|insensitive|insert|instead|int|integer|integrated|intersect|intermediate|interval_length_minutes|into|inuse_cursors|inuse_exec_context|io|is|isabout|iso_week|isolation|job_tracker_location|json|keep|keep_nulls|keep_replication|keepdefaults|keepfixed|keepidentity|keepnulls|kerberos|key|key_path|key_source|key_store_provider_name|keyset|kill|kilobytes_per_batch|labelonly|langid|language|last|lastrow|leading|legacy_cardinality_estimation|length|level|lifetime|lineage_80_to_100|lineage_100_to_80|listener_ip|listener_port|load|loadhistory|lob_compaction|local|local_service_name|locate|location|lock_escalation|lock_timeout|lockres|log|login|login_type|loop|manual|mark_in_use_for_removal|masked|master|match|matched|max_queue_readers|max_duration|max_outstanding_io_per_volume|maxdop|maxerrors|maxlength|maxtransfersize|max_plans_per_query|max_storage_size_mb|mediadescription|medianame|mediapassword|memogroup|memory_optimized|merge|message|message_forward_size|message_forwarding|microsecond|millisecond|minute(s)?|mirror_address|misses_cursors|misses_exec_context|mixed|modify|money|month|move|multi_user|must_change|name|namespace|nanosecond|native|native_compilation|nchar|ncharacter|nested_triggers|never|new_account|new_broker|newname|next|no|no_browsetable|no_checksum|no_compression|no_infomsgs|no_triggers|no_truncate|nocount|noexec|noexpand|noformat|noinit|nolock|nonatomic|nonclustered|nondurable|none|norecompute|norecovery|noreset|norewind|noskip|not|notification|nounload|now|nowait|ntext|ntlm|nulls|numeric|numeric_roundabort|nvarchar|object|objid|oem|offline|old_account|online|operation_mode|open|openjson|optimistic|option|orc|out|outer|output|over|override|owner|ownership|pad_index|page|page_checksum|page_verify|pagecount|paglock|param|parameter_sniffing|parameter_type_expansion|parameterization|parquet|parseonly|partial|partition|partner|password|path|pause|percentage|permission_set|persisted|period|physical_only|plan_forcing_mode|policy|pool|population|ports|preceding|precision|predicate|presume_abort|primary|primary_role|print|prior|priority |priority_level|private|proc(edure)?|procedure_name|profile|provider|quarter|query_capture_mode|query_governor_cost_limit|query_optimizer_hotfixes|query_store|queue|quoted_identifier|raiserror|range|raw|rcfile|rc2|rc4|rc4_128|rdbms|read_committed_snapshot|read|read_only|read_write|readcommitted|readcommittedlock|readonly|readpast|readuncommitted|readwrite|real|rebuild|receive|recmodel_70backcomp|recompile|reconfigure|recovery|recursive|recursive_triggers|redo_queue|reject_sample_value|reject_type|reject_value|relative|remote|remote_data_archive|remote_proc_transactions|remote_service_name|remove|removed_cursors|removed_exec_context|reorganize|repeat|repeatable|repeatableread|replace|replica|replicated|replnick_100_to_80|replnickarray_80_to_100|replnickarray_100_to_80|required|required_cursopt|resample|reset|resource|resource_manager_location|respect|restart|restore|restricted_user|resume|retaindays|retention|return|revert|rewind|rewindonly|returns|robust|role|rollup|root|round_robin|route|row|rowdump|rowguidcol|rowlock|row_terminator|rows|rows_per_batch|rowsets_only|rowterminator|rowversion|rsa_1024|rsa_2048|rsa_3072|rsa_4096|rsa_512|safe|safety|sample|save|scalar|schema|schemabinding|scoped|scroll|scroll_locks|sddl|second|secexpr|seconds|secondary|secondary_only|secondary_role|secret|security|securityaudit|selective|self|send|sent|sequence|serde_method|serializable|server|service|service_broker|service_name|service_objective|session_timeout|session|sessions|seterror|setopts|sets|shard_map_manager|shard_map_name|sharded|shared_memory|shortest_path|show_statistics|showplan_all|showplan_text|showplan_xml|showplan_xml_with_recompile|shrinkdb|shutdown|sid|signature|simple|single_blob|single_clob|single_nclob|single_user|singleton|site|size|size_based_cleanup_mode|skip|smalldatetime|smallint|smallmoney|snapshot|snapshot_import|snapshotrestorephase|soap|softnuma|sort_in_tempdb|sorted_data|sorted_data_reorg|spatial|sql|sql_bigint|sql_binary|sql_bit|sql_char|sql_date|sql_decimal|sql_double|sql_float|sql_guid|sql_handle|sql_longvarbinary|sql_longvarchar|sql_numeric|sql_real|sql_smallint|sql_time|sql_timestamp|sql_tinyint|sql_tsi_day|sql_tsi_frac_second|sql_tsi_hour|sql_tsi_minute|sql_tsi_month|sql_tsi_quarter|sql_tsi_second|sql_tsi_week|sql_tsi_year|sql_type_date|sql_type_time|sql_type_timestamp|sql_varbinary|sql_varchar|sql_variant|sql_wchar|sql_wlongvarchar|ssl|ssl_port|standard|standby|start|start_date|started|stat_header|state|statement|static|statistics|statistics_incremental|statistics_norecompute|statistics_only|statman|stats|stats_stream|status|stop|stop_on_error|stopat|stopatmark|stopbeforemark|stoplist|stopped|string_delimiter|subject|supplemental_logging|supported|suspend|symmetric|synchronous_commit|synonym|sysname|system|system_time|system_versioning|table|tableresults|tablock|tablockx|take|tape|target|target_index|target_partition|target_recovery_time|tcp|temporal_history_retention|text|textimage_on|then|thesaurus|throw|time|timeout|timestamp|tinyint|to|top|torn_page_detection|track_columns_updated|trailing|tran|transaction|transfer|transform_noise_words|triple_des|triple_des_3key|truncate|trustworthy|try|tsql|two_digit_year_cutoff|type|type_desc|type_warning|tzoffset|uid|unbounded|uncommitted|unique|uniqueidentifier|unlimited|unload|unlock|unsafe|updlock|url|use|useplan|useroptions|use_type_default|using|utcdatetime|valid_xml|validation|value|values|varbinary|varchar|verbose|verifyonly|version|view_metadata|virtual_device|visiblity|wait_at_low_priority|waitfor|webmethod|week|weekday|weight|well_formed_xml|when|while|widechar|widechar_ansi|widenative|window|windows|with|within|within group|witness|without|without_array_wrapper|workload|wsdl|xact_abort|xlock|xml|xmlschema|xquery|xsinil|year|zone)\\\\\\\\b\",\"name\":\"keyword.other.sql\"},{\"captures\":{\"1\":{\"name\":\"punctuation.section.scope.begin.sql\"},\"2\":{\"name\":\"punctuation.section.scope.end.sql\"}},\"comment\":\"Allow for special ↩ behavior\",\"match\":\"(\\\\\\\\()(\\\\\\\\))\",\"name\":\"meta.block.sql\"}],\"repository\":{\"comment-block\":{\"begin\":\"/\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.sql\"}},\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block\",\"patterns\":[{\"include\":\"#comment-block\"}]},\"comments\":{\"patterns\":[{\"begin\":\"(^[ \\\\\\\\t]+)?(?=--)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.sql\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"--\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.sql\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.double-dash.sql\"}]},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.sql\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[]},{\"include\":\"#comment-block\"}]},\"regexps\":{\"patterns\":[{\"begin\":\"/(?=\\\\\\\\S.*/)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.sql\"}},\"end\":\"/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.sql\"}},\"name\":\"string.regexp.sql\",\"patterns\":[{\"include\":\"#string_interpolation\"},{\"match\":\"\\\\\\\\\\\\\\\\/\",\"name\":\"constant.character.escape.slash.sql\"}]},{\"begin\":\"%r\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.sql\"}},\"comment\":\"We should probably handle nested bracket pairs!?! -- Allan\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.sql\"}},\"name\":\"string.regexp.modr.sql\",\"patterns\":[{\"include\":\"#string_interpolation\"}]}]},\"string_escape\":{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.sql\"},\"string_interpolation\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.sql\"},\"3\":{\"name\":\"punctuation.definition.string.end.sql\"}},\"match\":\"(#\\\\\\\\{)([^\\\\\\\\}]*)(\\\\\\\\})\",\"name\":\"string.interpolated.sql\"},\"strings\":{\"patterns\":[{\"captures\":{\"2\":{\"name\":\"punctuation.definition.string.begin.sql\"},\"3\":{\"name\":\"punctuation.definition.string.end.sql\"}},\"comment\":\"this is faster than the next begin/end rule since sub-pattern will match till end-of-line and SQL files tend to have very long lines.\",\"match\":\"(N)?(\\')[^\\']*(\\')\",\"name\":\"string.quoted.single.sql\"},{\"begin\":\"\\'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.sql\"}},\"end\":\"\\'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.sql\"}},\"name\":\"string.quoted.single.sql\",\"patterns\":[{\"include\":\"#string_escape\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.sql\"},\"2\":{\"name\":\"punctuation.definition.string.end.sql\"}},\"comment\":\"this is faster than the next begin/end rule since sub-pattern will match till end-of-line and SQL files tend to have very long lines.\",\"match\":\"(`)[^`\\\\\\\\\\\\\\\\]*(`)\",\"name\":\"string.quoted.other.backtick.sql\"},{\"begin\":\"`\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.sql\"}},\"end\":\"`\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.sql\"}},\"name\":\"string.quoted.other.backtick.sql\",\"patterns\":[{\"include\":\"#string_escape\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.sql\"},\"2\":{\"name\":\"punctuation.definition.string.end.sql\"}},\"comment\":\"this is faster than the next begin/end rule since sub-pattern will match till end-of-line and SQL files tend to have very long lines.\",\"match\":\"(\\\\\")[^\\\\\"#]*(\\\\\")\",\"name\":\"string.quoted.double.sql\"},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.sql\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.sql\"}},\"name\":\"string.quoted.double.sql\",\"patterns\":[{\"include\":\"#string_interpolation\"}]},{\"begin\":\"%\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.sql\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.sql\"}},\"name\":\"string.other.quoted.brackets.sql\",\"patterns\":[{\"include\":\"#string_interpolation\"}]}]}},\"scopeName\":\"source.sql\"}')),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/COcR7UxN.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Dockerfile\",\"name\":\"docker\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.special-method.dockerfile\"},\"2\":{\"name\":\"keyword.other.special-method.dockerfile\"}},\"match\":\"^\\\\\\\\s*\\\\\\\\b(?i:(FROM))\\\\\\\\b.*?\\\\\\\\b(?i:(AS))\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.dockerfile\"},\"2\":{\"name\":\"keyword.other.special-method.dockerfile\"}},\"match\":\"^\\\\\\\\s*(?i:(ONBUILD)\\\\\\\\s+)?(?i:(ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR))\\\\\\\\s\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.dockerfile\"},\"2\":{\"name\":\"keyword.other.special-method.dockerfile\"}},\"match\":\"^\\\\\\\\s*(?i:(ONBUILD)\\\\\\\\s+)?(?i:(CMD|ENTRYPOINT))\\\\\\\\s\"},{\"include\":\"#string-character-escape\"},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.dockerfile\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.dockerfile\"}},\"name\":\"string.quoted.double.dockerfile\",\"patterns\":[{\"include\":\"#string-character-escape\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.dockerfile\"}},\"end\":\"'\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.dockerfile\"}},\"name\":\"string.quoted.single.dockerfile\",\"patterns\":[{\"include\":\"#string-character-escape\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.dockerfile\"},\"2\":{\"name\":\"comment.line.number-sign.dockerfile\"},\"3\":{\"name\":\"punctuation.definition.comment.dockerfile\"}},\"comment\":\"comment.line\",\"match\":\"^(\\\\\\\\s*)((#).*$\\\\\\\\n?)\"}],\"repository\":{\"string-character-escape\":{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escaped.dockerfile\"}},\"scopeName\":\"source.dockerfile\",\"aliases\":[\"dockerfile\"]}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/COyJrUc7.js",
    "content": "import e from\"./C3t2pwGQ.js\";const r=Object.freeze(JSON.parse('{\"displayName\":\"GLSL\",\"fileTypes\":[\"vs\",\"fs\",\"gs\",\"vsh\",\"fsh\",\"gsh\",\"vshader\",\"fshader\",\"gshader\",\"vert\",\"frag\",\"geom\",\"f.glsl\",\"v.glsl\",\"g.glsl\"],\"foldingStartMarker\":\"/\\\\\\\\*\\\\\\\\*|\\\\\\\\{\\\\\\\\s*$\",\"foldingStopMarker\":\"\\\\\\\\*\\\\\\\\*/|^\\\\\\\\s*\\\\\\\\}\",\"name\":\"glsl\",\"patterns\":[{\"match\":\"\\\\\\\\b(break|case|continue|default|discard|do|else|for|if|return|switch|while)\\\\\\\\b\",\"name\":\"keyword.control.glsl\"},{\"match\":\"\\\\\\\\b(void|bool|int|uint|float|vec2|vec3|vec4|bvec2|bvec3|bvec4|ivec2|ivec2|ivec3|uvec2|uvec2|uvec3|mat2|mat3|mat4|mat2x2|mat2x3|mat2x4|mat3x2|mat3x3|mat3x4|mat4x2|mat4x3|mat4x4|sampler[1|2|3]D|samplerCube|sampler2DRect|sampler[1|2]DShadow|sampler2DRectShadow|sampler[1|2]DArray|sampler[1|2]DArrayShadow|samplerBuffer|sampler2DMS|sampler2DMSArray|struct|isampler[1|2|3]D|isamplerCube|isampler2DRect|isampler[1|2]DArray|isamplerBuffer|isampler2DMS|isampler2DMSArray|usampler[1|2|3]D|usamplerCube|usampler2DRect|usampler[1|2]DArray|usamplerBuffer|usampler2DMS|usampler2DMSArray)\\\\\\\\b\",\"name\":\"storage.type.glsl\"},{\"match\":\"\\\\\\\\b(attribute|centroid|const|flat|in|inout|invariant|noperspective|out|smooth|uniform|varying)\\\\\\\\b\",\"name\":\"storage.modifier.glsl\"},{\"match\":\"\\\\\\\\b(gl_BackColor|gl_BackLightModelProduct|gl_BackLightProduct|gl_BackMaterial|gl_BackSecondaryColor|gl_ClipDistance|gl_ClipPlane|gl_ClipVertex|gl_Color|gl_DepthRange|gl_DepthRangeParameters|gl_EyePlaneQ|gl_EyePlaneR|gl_EyePlaneS|gl_EyePlaneT|gl_Fog|gl_FogCoord|gl_FogFragCoord|gl_FogParameters|gl_FragColor|gl_FragCoord|gl_FragDat|gl_FragDept|gl_FrontColor|gl_FrontFacing|gl_FrontLightModelProduct|gl_FrontLightProduct|gl_FrontMaterial|gl_FrontSecondaryColor|gl_InstanceID|gl_Layer|gl_LightModel|gl_LightModelParameters|gl_LightModelProducts|gl_LightProducts|gl_LightSource|gl_LightSourceParameters|gl_MaterialParameters|gl_ModelViewMatrix|gl_ModelViewMatrixInverse|gl_ModelViewMatrixInverseTranspose|gl_ModelViewMatrixTranspose|gl_ModelViewProjectionMatrix|gl_ModelViewProjectionMatrixInverse|gl_ModelViewProjectionMatrixInverseTranspose|gl_ModelViewProjectionMatrixTranspose|gl_MultiTexCoord[0-7]|gl_Normal|gl_NormalMatrix|gl_NormalScale|gl_ObjectPlaneQ|gl_ObjectPlaneR|gl_ObjectPlaneS|gl_ObjectPlaneT|gl_Point|gl_PointCoord|gl_PointParameters|gl_PointSize|gl_Position|gl_PrimitiveIDIn|gl_ProjectionMatrix|gl_ProjectionMatrixInverse|gl_ProjectionMatrixInverseTranspose|gl_ProjectionMatrixTranspose|gl_SecondaryColor|gl_TexCoord|gl_TextureEnvColor|gl_TextureMatrix|gl_TextureMatrixInverse|gl_TextureMatrixInverseTranspose|gl_TextureMatrixTranspose|gl_Vertex|gl_VertexIDh)\\\\\\\\b\",\"name\":\"support.variable.glsl\"},{\"match\":\"\\\\\\\\b(gl_MaxClipPlanes|gl_MaxCombinedTextureImageUnits|gl_MaxDrawBuffers|gl_MaxFragmentUniformComponents|gl_MaxLights|gl_MaxTextureCoords|gl_MaxTextureImageUnits|gl_MaxTextureUnits|gl_MaxVaryingFloats|gl_MaxVertexAttribs|gl_MaxVertexTextureImageUnits|gl_MaxVertexUniformComponents)\\\\\\\\b\",\"name\":\"support.constant.glsl\"},{\"match\":\"\\\\\\\\b(abs|acos|all|any|asin|atan|ceil|clamp|cos|cross|degrees|dFdx|dFdy|distance|dot|equal|exp|exp2|faceforward|floor|fract|ftransform|fwidth|greaterThan|greaterThanEqual|inversesqrt|length|lessThan|lessThanEqual|log|log2|matrixCompMult|max|min|mix|mod|noise[1-4]|normalize|not|notEqual|outerProduct|pow|radians|reflect|refract|shadow1D|shadow1DLod|shadow1DProj|shadow1DProjLod|shadow2D|shadow2DLod|shadow2DProj|shadow2DProjLod|sign|sin|smoothstep|sqrt|step|tan|texture1D|texture1DLod|texture1DProj|texture1DProjLod|texture2D|texture2DLod|texture2DProj|texture2DProjLod|texture3D|texture3DLod|texture3DProj|texture3DProjLod|textureCube|textureCubeLod|transpose)\\\\\\\\b\",\"name\":\"support.function.glsl\"},{\"match\":\"\\\\\\\\b(asm|double|enum|extern|goto|inline|long|short|sizeof|static|typedef|union|unsigned|volatile)\\\\\\\\b\",\"name\":\"invalid.illegal.glsl\"},{\"include\":\"source.c\"}],\"scopeName\":\"source.glsl\",\"embeddedLangs\":[\"c\"]}')),t=[...e,r];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CP8nbYEq.js",
    "content": "import{_ as G}from\"./DMpbkAFi.js\";import{C as m,j as t,g as u,d as M,m as N,u as I,r as S,E as V,x as s,G as B,H as _,i as l,F as j,O as z,aO as U,b as J,c as A,K as p,w as R,aK as K,f as v,t as H,v as L,e as T}from\"./CU_MfyYc.js\";import{u as P}from\"./Cwg39VG_.js\";import{a as O}from\"./C6794tGI.js\";function q(b,r){return u(),m(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[t(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"m19.5 8.25-7.5 7.5-7.5-7.5\"})])}const Q={class:\"relative\"},W=[\"onClick\"],X={class:\"w-full text-sm text-left\"},Y={key:0},Z=M({__name:\"MultipleSelect\",props:N({options:{type:Array,required:!0},animate:{type:Boolean,default:!1}},{modelValue:{type:Array,default:[]},modelModifiers:{}}),emits:[\"update:modelValue\"],setup(b){const r=I(b,\"modelValue\"),$=b,i=S(!1);function w(c){return r.value.some(n=>n.key===c.key)}function C(c){const n=r.value.findIndex(f=>f.key===c.key);n===-1?r.value.push(c):r.value.splice(n,1)}return(c,n)=>(u(),m(\"div\",Q,[s(i)?(u(),m(\"div\",{key:0,class:\"fixed inset-0 w-screen z-10\",onClick:n[0]||(n[0]=f=>i.value=!s(i))})):V(\"\",!0),t(\"button\",{class:_([\"relative min-w-40 xl:min-w-52 w-full bg-white dark:bg-gray-800 flex justify-between items-center px-2 py-0.5 rounded-md border-[2px] border-gray-300 dark:border-gray-900\",s(i)?\"z-20\":\"\"]),onClick:n[1]||(n[1]=f=>i.value=!s(i))},[t(\"div\",null,B(r.value.length)+\" selected \",1),t(\"div\",{class:_([\"transition-all duration-200\",s(i)?\"-rotate-180\":\"rotate-0\"])},[l(s(q),{class:\"h-3 w-3 text-gray-400 dark:text-gray-600\"})],2)],2),t(\"div\",{class:_([\"absolute w-full max-h-60 overflow-y-scroll top-9 bg-white dark:bg-gray-800 right-0 rounded-md border-[2px] border-gray-300 dark:border-gray-900 z-20 p-0.5\",b.animate?s(i)?\"transition-all h-60 opacity-100\":\"transition-all h-0 opacity-0 pointer-events-none\":s(i)?\"h-60\":\"h-0 opacity-0\"])},[(u(!0),m(j,null,z($.options,f=>(u(),m(\"button\",{key:f.key,class:\"w-full flex justify-between items-center hover:bg-gray-100 hover:dark:bg-gray-800 p-1 rounded-md\",onClick:F=>C(f)},[t(\"div\",X,B(f.label),1),w(f)?(u(),m(\"div\",Y,[l(s(U),{class:\"h-4 w-4 text-gray-600 dark:text-gray-400\"})])):V(\"\",!0)],8,W))),128))],2)]))}}),ee={class:\"relative\"},te=[\"onClick\"],re={class:\"w-full text-sm text-left\"},se={key:0},oe=M({__name:\"SingleSelect\",props:N({options:{type:Array,required:!0},animate:{type:Boolean,default:!1}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:[\"update:modelValue\"],setup(b){const r=I(b,\"modelValue\"),$=b,i=S(!1);function w(C){r.value=C}return(C,c)=>(u(),m(\"div\",ee,[s(i)?(u(),m(\"div\",{key:0,class:\"fixed inset-0 w-screen z-10\",onClick:c[0]||(c[0]=n=>i.value=!s(i))})):V(\"\",!0),t(\"button\",{class:_([\"relative min-w-40 xl:min-w-52 w-full bg-white dark:bg-gray-800 flex justify-between items-center px-2 py-0.5 rounded-md border-[2px] border-gray-300 dark:border-gray-900\",s(i)?\"z-20\":\"\"]),onClick:c[1]||(c[1]=n=>i.value=!s(i))},[t(\"div\",null,B(r.value.label),1),t(\"div\",{class:_([\"transition-all duration-200\",s(i)?\"-rotate-180\":\"rotate-0\"])},[l(s(q),{class:\"h-3 w-3 text-gray-400 dark:text-gray-600\"})],2)],2),t(\"div\",{class:_([\"absolute w-full max-h-60 overflow-y-scroll top-9 bg-white dark:bg-gray-800 right-0 rounded-md border-[2px] border-gray-300 dark:border-gray-900 z-20 p-0.5\",b.animate?s(i)?\"transition-all h-60 opacity-100\":\"transition-all h-0 opacity-0 pointer-events-none\":s(i)?\"h-60\":\"h-0 opacity-0\"])},[(u(!0),m(j,null,z($.options,n=>(u(),m(\"button\",{key:n.key,class:\"w-full flex justify-between items-center hover:bg-gray-100 hover:dark:bg-gray-800 p-1 rounded-md\",onClick:f=>w(n)},[t(\"div\",re,B(n.label),1),n.key==r.value.key?(u(),m(\"div\",se,[l(s(U),{class:\"h-4 w-4 text-gray-600 dark:text-gray-400\"})])):V(\"\",!0)],8,te))),128))],2)]))}}),ae={class:\"w-full\"},ne={class:\"mt-4 md:mt-8 p-3 md:p-4\"},le={class:\"space-y-4 lg:space-y-0 lg:flex justify-center items-center mb-4\"},ie={class:\"space-y-4 md:space-y-0 md:flex justify-center items-center lg:mb-0\"},de={class:\"flex items-center\"},ue={class:\"flex items-center md:ml-4\"},ce={class:\"lg:ml-4\"},me={class:\"flex flex-wrap gap-2 items-center\"},pe={class:\"overflow-x-auto -mx-3 md:mx-0\"},fe={class:\"flex min-w-max\"},ge={class:\"flex flex-col border-r-2 dark:border-gray-900 font-bold flex-shrink-0\"},ye={class:\"text-center\"},be={class:\"flex overflow-x-auto\"},ke={class:\"px-2 md:px-4 flex items-center justify-center border-b border-t-2 dark:border-gray-900 h-16 md:h-20 bg-white dark:bg-backdrop-dark gap-1\"},xe={class:\"text-xs md:text-sm text-gray-700 dark:text-gray-300 truncate\"},Ce=M({__name:\"benchmark\",setup(b){P({title:\"Benchmark\"});const r=J(),$=K(),i=A(()=>r.tabs),w=S(r.benchmarkColumns),C=S(r.benchmarkSorts);r.benchmarkFilters.length===0&&r.setBenchmarkFilters(w.value);const c=S(JSON.parse(JSON.stringify(r.benchmarkFilters)));Object.keys(r.benchmarkSelectedSort).length==0&&r.setBenchmarkSort(C.value[0]);const n=S(r.benchmarkSelectedSort),f=A(()=>{var g,x,h;const k=r.tabs,o=[];for(const y in k){const d=k[y],e={id:d.id,strategy:((g=d.form.routes[0])==null?void 0:g.strategy)??\"\",start_date:d.form.start_date,finish_date:d.form.finish_date,fast_mode:d.form.fast_mode,exchange:d.form.exchange,symbol:((x=d.form.routes[0])==null?void 0:x.symbol)??\"\",timeframe:((h=d.form.routes[0])==null?void 0:h.timeframe)??\"\"},a=d.results.metrics;Object.keys(a).length>0&&(e.total_closed_trades=a.total,e.net_profit=p.round(a.net_profit,1),e.net_profit_percentage=`${p.round(a.net_profit_percentage,1)} %`,e.total_paid_fees=p.round(a.fee,1),e.max_drawdown=`${p.round(a.max_drawdown,1)} %`,e.annual_return=`${p.round(a.annual_return,1)} %`,e.expectancy=`${p.round(a.expectancy_percentage,1)} %`,e.ratio_avg_win_loss=p.round(a.ratio_avg_win_loss,1),e.win_rate=`${p.round(a.win_rate*100,1)} %`,e.longs_percentage=`${p.round(a.longs_percentage,1)} %`,e.shorts_percentage=`${p.round(a.shorts_percentage,1)} %`,e.average_holding_hours=p.round(a.average_holding_period/3600,1),e.sharpe_ratio=p.round(a.sharpe_ratio,1),e.sortino_ratio=p.round(a.sortino_ratio,1),e.calmar_ratio=p.round(a.calmar_ratio,1),e.omega_ratio=p.round(a.omega_ratio,1)),d.results.executing&&!d.results.exception.error?(e.progress=`${d.results.progressbar.current}%`,e.status=\"running\"):d.results.exception.error&&d.results.executing?(e.progress=\"❌\",e.status=\"error\"):Object.keys(a).length===0?e.status=\"\":(e.progress=\"✅\",e.status=\"finished\"),o.push(e)}return o}),F=A(()=>n.value.key===\"none\"?f.value:[...f.value].sort((k,o)=>{const g=n.value.key,x=parseFloat(k[g])||null,h=parseFloat(o[g])||null;return x===null&&h===null?0:x===null?1:h===null||x>h?-1:x<h?1:0}));function D(){c.value.sort((k,o)=>w.value.findIndex(g=>g.key===k.key)-w.value.findIndex(g=>g.key===o.key)),r.setBenchmarkFilters(c.value)}return R(c,D,{deep:!0}),R(n,k=>{r.setBenchmarkSort(k)},{deep:!0}),(k,o)=>{const g=G,x=Z,h=oe,y=H,d=L;return u(),m(j,null,[t(\"div\",ae,[l(g,{\"current-tab\":null,tabs:i.value,onClose:o[0]||(o[0]=e=>s(r).closeTab(e,s($).path))},null,8,[\"tabs\"])]),t(\"div\",ne,[t(\"div\",le,[t(\"div\",ie,[t(\"div\",de,[o[4]||(o[4]=t(\"div\",{class:\"font-bold whitespace-nowrap mr-3 text-sm md:text-base\"},\"Filter by:\",-1)),l(x,{modelValue:c.value,\"onUpdate:modelValue\":o[1]||(o[1]=e=>c.value=e),options:w.value},null,8,[\"modelValue\",\"options\"])]),t(\"div\",ue,[o[5]||(o[5]=t(\"div\",{class:\"font-bold whitespace-nowrap mr-3 text-sm md:text-base\"},\"Sort by:\",-1)),l(h,{modelValue:n.value,\"onUpdate:modelValue\":o[2]||(o[2]=e=>n.value=e),options:C.value},null,8,[\"modelValue\",\"options\"])])]),t(\"div\",ce,[o[10]||(o[10]=t(\"div\",{class:\"font-bold mb-3 text-sm md:text-base lg:hidden\"},\"Actions:\",-1)),t(\"div\",me,[o[9]||(o[9]=t(\"div\",{class:\"hidden lg:block font-bold mr-2\"},\"Actions:\",-1)),l(y,{icon:\"i-heroicons-arrow-path\",size:\"sm\",class:\"flex-1 sm:flex-none\",onClick:s(r).rerunAll},{default:v(()=>o[6]||(o[6]=[t(\"span\",{class:\"hidden sm:inline\"},\"Rerun All\",-1),t(\"span\",{class:\"sm:hidden\"},\"Rerun\",-1)])),_:1},8,[\"onClick\"]),l(y,{icon:\"i-heroicons-arrow-path\",color:\"rose\",size:\"sm\",class:\"flex-1 sm:flex-none\",onClick:s(r).rerunFailed},{default:v(()=>o[7]||(o[7]=[t(\"span\",{class:\"hidden sm:inline\"},\"Rerun Failed Only\",-1),t(\"span\",{class:\"sm:hidden\"},\"Failed\",-1)])),_:1},8,[\"onClick\"]),l(y,{icon:\"i-heroicons-stop\",color:\"gray\",size:\"sm\",class:\"flex-1 sm:flex-none\",onClick:s(r).cancelAllRunning},{default:v(()=>o[8]||(o[8]=[t(\"span\",{class:\"hidden sm:inline\"},\"Cancel All\",-1),t(\"span\",{class:\"sm:hidden\"},\"Cancel\",-1)])),_:1},8,[\"onClick\"])])])]),t(\"div\",pe,[t(\"div\",fe,[t(\"div\",ge,[o[11]||(o[11]=t(\"div\",{class:\"border-b-2 dark:border-gray-900 h-16 md:h-20\"},null,-1)),(u(!0),m(j,null,z(c.value,(e,a)=>(u(),m(\"div\",{key:e.key,class:_([\"text-xs md:text-sm uppercase border-b border-l dark:border-gray-900 min-w-[10rem] md:min-w-[13rem] min-h-[3.5rem] md:min-h-[4rem] flex items-center justify-center px-2\",a%2===0?\"bg-gray-50 dark:bg-gray-800\":\"bg-white dark:bg-backdrop-dark\"])},[t(\"span\",ye,B(e.label),1)],2))),128))]),t(\"div\",be,[(u(!0),m(j,null,z(F.value,e=>(u(),m(\"div\",{key:e.id,class:\"flex flex-col border-r dark:border-gray-900 flex-shrink-0\"},[t(\"div\",ke,[l(d,{text:\"Rerun\",\"open-delay\":500,popper:{arrow:!0}},{default:v(()=>[l(y,{size:\"xs\",class:\"md:mr-2\",variant:\"ghost\",icon:\"i-heroicons-arrow-path\",disabled:e.status===\"running\",onClick:a=>s(r).rerun(e.id)},null,8,[\"disabled\",\"onClick\"])]),_:2},1024),l(d,{text:\"Go to backtest page\",\"open-delay\":500,popper:{arrow:!0}},{default:v(()=>[l(y,{to:`/backtest/${e.id}`,size:\"xs\",class:\"md:mr-2\",variant:\"ghost\",color:\"gray\",icon:\"i-heroicons-arrow-top-right-on-square\"},null,8,[\"to\"])]),_:2},1024),l(d,{text:\"Duplicate\",\"open-delay\":500,popper:{arrow:!0}},{default:v(()=>[l(y,{size:\"xs\",class:\"md:mr-2\",variant:\"ghost\",icon:\"i-heroicons-document-duplicate\",color:\"blue\",onClick:a=>s(r).duplicateTab(e.id)},null,8,[\"onClick\"])]),_:2},1024),e.status===\"running\"?(u(),T(d,{key:0,text:\"Cancel\",\"open-delay\":500,popper:{arrow:!0}},{default:v(()=>[l(y,{size:\"xs\",variant:\"ghost\",icon:\"i-heroicons-stop\",color:\"gray\",onClick:a=>s(r).cancel(e.id)},null,8,[\"onClick\"])]),_:2},1024)):(u(),T(d,{key:1,text:\"Close tab\",\"open-delay\":500,popper:{arrow:!0}},{default:v(()=>[l(y,{size:\"xs\",variant:\"ghost\",icon:\"i-heroicons-trash\",color:\"red\",disabled:Object.keys(F.value).length==1,onClick:a=>s(r).closeTab(e.id,s($).path)},null,8,[\"disabled\",\"onClick\"])]),_:2},1024))]),(u(!0),m(j,null,z(c.value,(a,E)=>(u(),m(\"div\",{key:a.key,class:_([\"border-b dark:border-gray-900 min-w-[6rem] text-center min-h-[3.5rem] md:min-h-[4rem] w-[10em] md:w-[13em]\",e.status===\"running\"?\"animate-pulse\":\"\"])},[t(\"div\",{class:_([\"px-2 md:px-4 py-3 md:py-4 w-full h-full truncate flex items-center justify-center\",E%2===0?\"bg-gray-50 dark:bg-gray-800\":\"bg-white dark:bg-backdrop-dark\"])},[t(\"span\",xe,B(e[a.key]||\"-\"),1)],2)],2))),128))]))),128)),l(d,{text:\"Add New Tab\",\"open-delay\":500,popper:{arrow:!0}},{default:v(()=>[t(\"button\",{class:\"w-16 md:w-20 h-full px-2 md:px-4 flex flex-col justify-between items-center border-dashed border-2 dark:border-gray-900 bg-white hover:bg-gray-50 dark:bg-backdrop-dark hover:dark:bg-gray-800 py-8 md:py-10 flex-shrink-0\",onClick:o[3]||(o[3]=e=>s(r).addTab())},[l(s(O),{class:\"h-5 w-5 md:h-6 md:w-6 text-gray-400 dark:text-gray-100\"}),l(s(O),{class:\"h-5 w-5 md:h-6 md:w-6 text-gray-400 dark:text-gray-100\"}),l(s(O),{class:\"h-5 w-5 md:h-6 md:w-6 text-gray-400 dark:text-gray-100\"})])]),_:1})])])])])],64)}}});export{Ce as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CQ0soPOq.js",
    "content": "import e from\"./BMYPR7BL.js\";import t from\"./COK4E0Yg.js\";import n from\"./BPhBrDlE.js\";import a from\"./C3t2pwGQ.js\";import r from\"./ySlJ1b_l.js\";import i from\"./atvbtKCR.js\";const s=Object.freeze(JSON.parse(`{\"displayName\":\"Crystal\",\"fileTypes\":[\"cr\"],\"firstLineMatch\":\"^#!/.*\\\\\\\\bcrystal\",\"foldingStartMarker\":\"^(\\\\\\\\s*+(annotation|module|class|struct|union|enum|def(?!.*\\\\\\\\bend\\\\\\\\s*$)|unless|if|case|begin|for|while|until|^=begin|(\\\\\"(\\\\\\\\\\\\\\\\.|[^\\\\\"])*+\\\\\"|'(\\\\\\\\\\\\\\\\.|[^'])*+'|[^#\\\\\"'])*(\\\\\\\\s(do|begin|case)|(?<!\\\\\\\\$)[-+=&|*/~%^<>~]\\\\\\\\s*+(if|unless)))\\\\\\\\b(?![^;]*+;.*?\\\\\\\\bend\\\\\\\\b)|(\\\\\"(\\\\\\\\\\\\\\\\.|[^\\\\\"])*+\\\\\"|'(\\\\\\\\\\\\\\\\.|[^'])*+'|[^#\\\\\"'])*(\\\\\\\\{(?![^}]*+\\\\\\\\})|\\\\\\\\[(?![^\\\\\\\\]]*+\\\\\\\\]))).*$|[#].*?\\\\\\\\(fold\\\\\\\\)\\\\\\\\s*+$\",\"foldingStopMarker\":\"((^|;)\\\\\\\\s*+end\\\\\\\\s*+([#].*)?$|(^|;)\\\\\\\\s*+end\\\\\\\\..*$|^\\\\\\\\s*+[}\\\\\\\\]],?\\\\\\\\s*+([#].*)?$|[#].*?\\\\\\\\(end\\\\\\\\)\\\\\\\\s*+$|^=end)\",\"name\":\"crystal\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.class.crystal\"},\"2\":{\"name\":\"keyword.control.class.crystal\"},\"3\":{\"name\":\"entity.name.type.class.crystal\"},\"5\":{\"name\":\"punctuation.separator.crystal\"},\"6\":{\"name\":\"support.class.other.type-param.crystal\"},\"7\":{\"name\":\"entity.other.inherited-class.crystal\"},\"8\":{\"name\":\"punctuation.separator.crystal\"},\"9\":{\"name\":\"punctuation.separator.crystal\"},\"10\":{\"name\":\"support.class.other.type-param.crystal\"},\"11\":{\"name\":\"punctuation.definition.variable.crystal\"}},\"match\":\"^\\\\\\\\s*(abstract)?\\\\\\\\s*(class|struct|union|annotation|enum)\\\\\\\\s+(([.A-Z_:\\\\\\\\x{80}-\\\\\\\\x{10FFFF}][.\\\\\\\\w:\\\\\\\\x{80}-\\\\\\\\x{10FFFF}]*(\\\\\\\\(([,\\\\\\\\s.a-zA-Z0-9_:\\\\\\\\x{80}-\\\\\\\\x{10FFFF}]+)\\\\\\\\))?(\\\\\\\\s*(<)\\\\\\\\s*[.:A-Z\\\\\\\\x{80}-\\\\\\\\x{10FFFF}][.:\\\\\\\\w\\\\\\\\x{80}-\\\\\\\\x{10FFFF}]*(\\\\\\\\(([.a-zA-Z0-9_:]+\\\\\\\\s,)\\\\\\\\))?)?)|((<<)\\\\\\\\s*[.A-Z0-9_:\\\\\\\\x{80}-\\\\\\\\x{10FFFF}]+))\",\"name\":\"meta.class.crystal\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.module.crystal\"},\"2\":{\"name\":\"entity.name.type.module.crystal\"},\"3\":{\"name\":\"entity.other.inherited-class.module.first.crystal\"},\"4\":{\"name\":\"punctuation.separator.inheritance.crystal\"},\"5\":{\"name\":\"entity.other.inherited-class.module.second.crystal\"},\"6\":{\"name\":\"punctuation.separator.inheritance.crystal\"},\"7\":{\"name\":\"entity.other.inherited-class.module.third.crystal\"},\"8\":{\"name\":\"punctuation.separator.inheritance.crystal\"}},\"match\":\"^\\\\\\\\s*(module)\\\\\\\\s+(([A-Z\\\\\\\\x{80}-\\\\\\\\x{10FFFF}][\\\\\\\\w\\\\\\\\x{80}-\\\\\\\\x{10FFFF}]*(::))?([A-Z\\\\\\\\x{80}-\\\\\\\\x{10FFFF}][\\\\\\\\w\\\\\\\\x{80}-\\\\\\\\x{10FFFF}]*(::))?([A-Z\\\\\\\\x{80}-\\\\\\\\x{10FFFF}][\\\\\\\\w\\\\\\\\x{80}-\\\\\\\\x{10FFFF}]*(::))*[A-Z\\\\\\\\x{80}-\\\\\\\\x{10FFFF}][\\\\\\\\w\\\\\\\\x{80}-\\\\\\\\x{10FFFF}]*)\",\"name\":\"meta.module.crystal\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.lib.crystal\"},\"2\":{\"name\":\"entity.name.type.lib.crystal\"},\"3\":{\"name\":\"entity.other.inherited-class.lib.first.crystal\"},\"4\":{\"name\":\"punctuation.separator.inheritance.crystal\"},\"5\":{\"name\":\"entity.other.inherited-class.lib.second.crystal\"},\"6\":{\"name\":\"punctuation.separator.inheritance.crystal\"},\"7\":{\"name\":\"entity.other.inherited-class.lib.third.crystal\"},\"8\":{\"name\":\"punctuation.separator.inheritance.crystal\"}},\"match\":\"^\\\\\\\\s*(lib)\\\\\\\\s+(([A-Z]\\\\\\\\w*(::))?([A-Z]\\\\\\\\w*(::))?([A-Z]\\\\\\\\w*(::))*[A-Z]\\\\\\\\w*)\",\"name\":\"meta.lib.crystal\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.lib.type.crystal\"},\"2\":{\"name\":\"entity.name.lib.type.crystal\"},\"3\":{\"name\":\"keyword.control.lib.crystal\"},\"4\":{\"name\":\"entity.name.lib.type.value.crystal\"}},\"comment\":\"type in lib\",\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(type)\\\\\\\\s+([A-Z]\\\\\\\\w+)\\\\\\\\s*(=)\\\\\\\\s*(.+)\",\"name\":\"meta.lib.type.crystal\"},{\"comment\":\"everything being a reserved word, not a value, and needing a 'end' is a..\",\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(fun|begin|case|class|else|elsif|end|ensure|enum|for|if|macro|module|rescue|struct|then|union|unless|until|when|while)\\\\\\\\b(?![?!:])\",\"name\":\"keyword.control.crystal\"},{\"comment\":\"everything being a reserved word, not a value, and not needing a 'end' is a..\",\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(abstract|alias|asm|break|extend|in|include|next|of|private|protected|struct|return|select|super|with|yield)\\\\\\\\b(?![?!:])\",\"name\":\"keyword.control.primary.crystal\"},{\"comment\":\"everything being a spec keyword, not a value, and needing a block is a..\",\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(describe|context|it|expect_raises)\\\\\\\\b(?![?!:])\",\"name\":\"keyword.control.crystal\"},{\"comment\":\"contextual smart pair support for block parameters\",\"match\":\"(?<!\\\\\\\\.)\\\\\\\\bdo\\\\\\\\b\\\\\\\\s*\",\"name\":\"keyword.control.start-block.crystal\"},{\"comment\":\"contextual smart pair support\",\"match\":\"(?<=\\\\\\\\{)(\\\\\\\\s+)\",\"name\":\"meta.syntax.crystal.start-block\"},{\"comment\":\"Just as above but being not a logical operation\",\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(pointerof|typeof|sizeof|instance_sizeof|offsetof|previous_def|forall|out|uninitialized)\\\\\\\\b(?![?!:])|\\\\\\\\.(is_a\\\\\\\\?|nil\\\\\\\\?|responds_to\\\\\\\\?|as\\\\\\\\?|as\\\\b)\",\"name\":\"keyword.control.pseudo-method.crystal\"},{\"match\":\"\\\\\\\\bnil\\\\\\\\b(?![?!:])\",\"name\":\"constant.language.nil.crystal\"},{\"match\":\"\\\\\\\\b(true|false)\\\\\\\\b(?![?!:])\",\"name\":\"constant.language.boolean.crystal\"},{\"match\":\"\\\\\\\\b(__(DIR|FILE|LINE|END_LINE)__)\\\\\\\\b(?![?!:])\",\"name\":\"variable.language.crystal\"},{\"match\":\"\\\\\\\\b(self)\\\\\\\\b(?![?!:])\",\"name\":\"variable.language.self.crystal\"},{\"comment\":\"https://crystal-lang.org/api/0.36.1/Object.html#macro-summary\",\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(((class_)?((getter|property)\\\\\\\\b[!?]?|setter\\\\\\\\b))|(def_(clone|equals|equals_and_hash|hash)|delegate|forward_missing_to)\\\\\\\\b)(?![?!:])\",\"name\":\"support.function.kernel.crystal\"},{\"begin\":\"\\\\\\\\b(require)\\\\\\\\b\",\"captures\":{\"1\":{\"name\":\"keyword.other.special-method.crystal\"}},\"end\":\"$|(?=#)\",\"name\":\"meta.require.crystal\",\"patterns\":[{\"include\":\"$self\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.crystal\"}},\"match\":\"(@)[a-zA-Z_\\\\\\\\x{80}-\\\\\\\\x{10FFFF}][\\\\\\\\w\\\\\\\\x{80}-\\\\\\\\x{10FFFF}]*[?!=]?\",\"name\":\"variable.other.readwrite.instance.crystal\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.crystal\"}},\"match\":\"(@@)[a-zA-Z_\\\\\\\\x{80}-\\\\\\\\x{10FFFF}][\\\\\\\\w\\\\\\\\x{80}-\\\\\\\\x{10FFFF}]*[?!=]?\",\"name\":\"variable.other.readwrite.class.crystal\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.crystal\"}},\"match\":\"(\\\\\\\\$)[a-zA-Z_]\\\\\\\\w*\",\"name\":\"variable.other.readwrite.global.crystal\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.crystal\"}},\"match\":\"(?!%[Qxrqwi]?[\\\\\\\\(\\\\\\\\[\\\\\\\\{\\\\\\\\<\\\\\\\\|])%([a-zA-Z_]\\\\\\\\w*\\\\\\\\.)*[a-zA-Z_]\\\\\\\\w*\",\"name\":\"variable.other.readwrite.fresh.crystal\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.crystal\"}},\"match\":\"(\\\\\\\\$)(!|@|&|\\`|'|\\\\\\\\+|\\\\\\\\d+|~|=|/|\\\\\\\\\\\\\\\\|,|;|\\\\\\\\.|<|>|_|\\\\\\\\*|\\\\\\\\$|\\\\\\\\?|:|\\\\\"|-[0adFiIlpv])\",\"name\":\"variable.other.readwrite.global.pre-defined.crystal\"},{\"begin\":\"\\\\\\\\b(ENV)\\\\\\\\[\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.constant.crystal\"}},\"end\":\"\\\\\\\\]\",\"name\":\"meta.environment-variable.crystal\",\"patterns\":[{\"include\":\"$self\"}]},{\"comment\":\"Literals name of Crystal\",\"match\":\"\\\\\\\\b[A-Z\\\\\\\\x{80}-\\\\\\\\x{10FFFF}][\\\\\\\\w\\\\\\\\x{80}-\\\\\\\\x{10FFFF}]*\",\"name\":\"support.class.crystal\"},{\"comment\":\"Fetch from https://crystal-lang.org/api/0.36.1/toplevel.html\",\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(abort|at_exit|caller|exit|gets|loop|main|p|pp|print|printf|puts|raise|rand|read_line|sleep|spawn|sprintf|system|debugger|record|spawn)\\\\\\\\b(?![?!:])\",\"name\":\"support.function.kernel.crystal\"},{\"comment\":\"Constant name in any where\",\"match\":\"\\\\\\\\b[_A-Z]+\\\\\\\\b\",\"name\":\"variable.other.constant.crystal\"},{\"begin\":\"(?=def\\\\\\\\b)(?<=^|\\\\\\\\s)(def)\\\\\\\\s+((?>[a-zA-Z_]\\\\\\\\w*(?>\\\\\\\\.|::))?(?>[a-zA-Z_]\\\\\\\\w*(?>[?!]|=(?!>))?|\\\\\\\\^|===?|!=|>[>=]?|<=>|<[<=]?|[%&\\`/\\\\\\\\|]|\\\\\\\\*\\\\\\\\*?|=?~|[-+]@?|\\\\\\\\[][?=]?|\\\\\\\\[]=?))\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.def.crystal\"},\"2\":{\"name\":\"entity.name.function.crystal\"},\"3\":{\"name\":\"punctuation.definition.parameters.crystal\"}},\"comment\":\"The method pattern comes from the symbol pattern. See there for an explanation.\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.crystal\"}},\"name\":\"meta.function.method.with-arguments.crystal\",\"patterns\":[{\"begin\":\"(?![\\\\\\\\s,)])\",\"end\":\"(?=,|\\\\\\\\)\\\\\\\\s*)\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.variable.crystal\"},\"2\":{\"name\":\"constant.other.symbol.hashkey.parameter.function.crystal\"},\"3\":{\"name\":\"punctuation.definition.constant.hashkey.crystal\"},\"4\":{\"name\":\"variable.parameter.function.crystal\"}},\"match\":\"\\\\\\\\G([&*]?)(?:([_a-zA-Z]\\\\\\\\w*(:))|([_a-zA-Z]\\\\\\\\w*))\"},{\"include\":\"$self\"}]}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.def.crystal\"},\"3\":{\"name\":\"entity.name.function.crystal\"}},\"comment\":\" the optional name is just to catch the def also without a method-name\",\"match\":\"(?=def\\\\\\\\b)(?<=^|\\\\\\\\s)(def)\\\\\\\\b(\\\\\\\\s+((?>[a-zA-Z_]\\\\\\\\w*(?>\\\\\\\\.|::))?(?>[a-zA-Z_]\\\\\\\\w*(?>[?!]|=(?!>))?|\\\\\\\\^|===?|!=|>[>=]?|<=>|<[<=]?|[%&\\`/\\\\\\\\|]|\\\\\\\\*\\\\\\\\*?|=?~|[-+]@?|\\\\\\\\[][?=]?|\\\\\\\\[]=?)))?\",\"name\":\"meta.function.method.without-arguments.crystal\"},{\"comment\":\"Floating point literal (fraction)\",\"match\":\"\\\\\\\\b[0-9][0-9_]*\\\\\\\\.[0-9][0-9_]*([eE][+-]?[0-9_]+)?(f32|f64)?\\\\\\\\b\",\"name\":\"constant.numeric.float.crystal\"},{\"comment\":\"Floating point literal (exponent)\",\"match\":\"\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.[0-9][0-9_]*)?[eE][+-]?[0-9_]+(f32|f64)?\\\\\\\\b\",\"name\":\"constant.numeric.float.crystal\"},{\"comment\":\"Floating point literal (typed)\",\"match\":\"\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.[0-9][0-9_]*)?([eE][+-]?[0-9_]+)?(f32|f64)\\\\\\\\b\",\"name\":\"constant.numeric.float.crystal\"},{\"comment\":\"Integer literal (decimal)\",\"match\":\"\\\\\\\\b(?!0[0-9])[0-9][0-9_]*([ui](8|16|32|64|128))?\\\\\\\\b\",\"name\":\"constant.numeric.integer.decimal.crystal\"},{\"comment\":\"Integer literal (hexadecimal)\",\"match\":\"\\\\\\\\b0x[a-fA-F0-9_]+([ui](8|16|32|64|128))?\\\\\\\\b\",\"name\":\"constant.numeric.integer.hexadecimal.crystal\"},{\"comment\":\"Integer literal (octal)\",\"match\":\"\\\\\\\\b0o[0-7_]+([ui](8|16|32|64|128))?\\\\\\\\b\",\"name\":\"constant.numeric.integer.octal.crystal\"},{\"comment\":\"Integer literal (binary)\",\"match\":\"\\\\\\\\b0b[01_]+([ui](8|16|32|64|128))?\\\\\\\\b\",\"name\":\"constant.numeric.integer.binary.crystal\"},{\"begin\":\":'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.symbol.begin.crystal\"}},\"comment\":\"symbol literal with '' delimiter\",\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.symbol.end.crystal\"}},\"name\":\"constant.other.symbol.crystal\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\['\\\\\\\\\\\\\\\\]\",\"name\":\"constant.character.escape.crystal\"}]},{\"begin\":\":\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.symbol.begin.crystal\"}},\"comment\":\"symbol literal with \\\\\"\\\\\" delimiter\",\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.symbol.end.crystal\"}},\"name\":\"constant.other.symbol.interpolated.crystal\",\"patterns\":[{\"include\":\"#interpolated_crystal\"},{\"include\":\"#escaped_char\"}]},{\"comment\":\"Needs higher precedence than regular expressions.\",\"match\":\"(?<!\\\\\\\\()/=\",\"name\":\"keyword.operator.assignment.augmented.crystal\"},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"string literal with '' delimiter\",\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.quoted.single.crystal\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\'|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\"name\":\"constant.character.escape.crystal\"}]},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"string literal with interpolation and \\\\\"\\\\\" delimiter\",\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.quoted.double.interpolated.crystal\",\"patterns\":[{\"include\":\"#interpolated_crystal\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"\\`\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"execute string (allows for interpolation)\",\"end\":\"\\`\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.interpolated.crystal\",\"patterns\":[{\"include\":\"#interpolated_crystal\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"%x\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"execute string (allow for interpolation)\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.interpolated.crystal\",\"patterns\":[{\"include\":\"#interpolated_crystal\"},{\"include\":\"#escaped_char\"},{\"include\":\"#nest_curly_i\"}]},{\"begin\":\"%x\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"execute string (allow for interpolation)\",\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.interpolated.crystal\",\"patterns\":[{\"include\":\"#interpolated_crystal\"},{\"include\":\"#escaped_char\"},{\"include\":\"#nest_brackets_i\"}]},{\"begin\":\"%x\\\\\\\\<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"execute string (allow for interpolation)\",\"end\":\"\\\\\\\\>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.interpolated.crystal\",\"patterns\":[{\"include\":\"#interpolated_crystal\"},{\"include\":\"#escaped_char\"},{\"include\":\"#nest_ltgt_i\"}]},{\"begin\":\"%x\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"execute string (allow for interpolation)\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.interpolated.crystal\",\"patterns\":[{\"include\":\"#interpolated_crystal\"},{\"include\":\"#escaped_char\"},{\"include\":\"#nest_parens_i\"}]},{\"begin\":\"%x\\\\\\\\|\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"execute string (allow for interpolation)\",\"end\":\"\\\\\\\\|\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.interpolated.crystal\",\"patterns\":[{\"include\":\"#interpolated_crystal\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"(?:^|(?<=[=>~(?:\\\\\\\\[,|&;]|[\\\\\\\\s;]if\\\\\\\\s|[\\\\\\\\s;]elsif\\\\\\\\s|[\\\\\\\\s;]while\\\\\\\\s|[\\\\\\\\s;]unless\\\\\\\\s|[\\\\\\\\s;]when\\\\\\\\s|[\\\\\\\\s;]assert_match\\\\\\\\s|[\\\\\\\\s;]or\\\\\\\\s|[\\\\\\\\s;]and\\\\\\\\s|[\\\\\\\\s;]not\\\\\\\\s|[\\\\\\\\s.]index\\\\\\\\s|[\\\\\\\\s.]scan\\\\\\\\s|[\\\\\\\\s.]sub\\\\\\\\s|[\\\\\\\\s.]sub!\\\\\\\\s|[\\\\\\\\s.]gsub\\\\\\\\s|[\\\\\\\\s.]gsub!\\\\\\\\s|[\\\\\\\\s.]match\\\\\\\\s)|(?<=^when\\\\\\\\s|^if\\\\\\\\s|^elsif\\\\\\\\s|^while\\\\\\\\s|^unless\\\\\\\\s))\\\\\\\\s*((/))(?![*+{}?])\",\"captures\":{\"1\":{\"name\":\"string.regexp.classic.crystal\"},\"2\":{\"name\":\"punctuation.definition.string.crystal\"}},\"comment\":\"regular expressions (normal) we only start a regexp if the character before it (excluding whitespace) is what we think is before a regexp\",\"contentName\":\"string.regexp.classic.crystal\",\"end\":\"((/[imsx]*))\",\"patterns\":[{\"include\":\"#regex_sub\"}]},{\"begin\":\"%r\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"regular expressions (literal)\",\"end\":\"\\\\\\\\}[imsx]*\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.regexp.mod-r.crystal\",\"patterns\":[{\"include\":\"#regex_sub\"},{\"include\":\"#nest_curly_r\"}]},{\"begin\":\"%r\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"regular expressions (literal)\",\"end\":\"\\\\\\\\][imsx]*\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.regexp.mod-r.crystal\",\"patterns\":[{\"include\":\"#regex_sub\"},{\"include\":\"#nest_brackets_r\"}]},{\"begin\":\"%r\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"regular expressions (literal)\",\"end\":\"\\\\\\\\)[imsx]*\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.regexp.mod-r.crystal\",\"patterns\":[{\"include\":\"#regex_sub\"},{\"include\":\"#nest_parens_r\"}]},{\"begin\":\"%r\\\\\\\\<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"regular expressions (literal)\",\"end\":\"\\\\\\\\>[imsx]*\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.regexp.mod-r.crystal\",\"patterns\":[{\"include\":\"#regex_sub\"},{\"include\":\"#nest_ltgt_r\"}]},{\"begin\":\"%r\\\\\\\\|\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"regular expressions (literal)\",\"end\":\"\\\\\\\\|[imsx]*\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.regexp.mod-r.crystal\",\"patterns\":[{\"include\":\"#regex_sub\"}]},{\"begin\":\"%Q?\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"literal capable of interpolation ()\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.quoted.other.literal.upper.crystal\",\"patterns\":[{\"include\":\"#interpolated_crystal\"},{\"include\":\"#escaped_char\"},{\"include\":\"#nest_parens_i\"}]},{\"begin\":\"%Q?\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"literal capable of interpolation []\",\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.quoted.other.literal.upper.crystal\",\"patterns\":[{\"include\":\"#interpolated_crystal\"},{\"include\":\"#escaped_char\"},{\"include\":\"#nest_brackets_i\"}]},{\"begin\":\"%Q?\\\\\\\\<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"literal capable of interpolation <>\",\"end\":\"\\\\\\\\>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.quoted.other.literal.upper.crystal\",\"patterns\":[{\"include\":\"#interpolated_crystal\"},{\"include\":\"#escaped_char\"},{\"include\":\"#nest_ltgt_i\"}]},{\"begin\":\"%Q?\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"literal capable of interpolation -- {}\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.quoted.double.crystal.mod\",\"patterns\":[{\"include\":\"#interpolated_crystal\"},{\"include\":\"#escaped_char\"},{\"include\":\"#nest_curly_i\"}]},{\"begin\":\"%Q\\\\\\\\|\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"literal capable of interpolation -- ||\",\"end\":\"\\\\\\\\|\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.quoted.other.literal.upper.crystal\",\"patterns\":[{\"include\":\"#interpolated_crystal\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"%[qwi]\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"literal incapable of interpolation -- ()\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.quoted.other.literal.lower.crystal\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\)|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\"name\":\"constant.character.escape.crystal\"},{\"include\":\"#nest_parens\"}]},{\"begin\":\"%[qwi]\\\\\\\\<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"literal incapable of interpolation -- <>\",\"end\":\"\\\\\\\\>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.quoted.other.literal.lower.crystal\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\>|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\"name\":\"constant.character.escape.crystal\"},{\"include\":\"#nest_ltgt\"}]},{\"begin\":\"%[qwi]\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"literal incapable of interpolation -- []\",\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.quoted.other.literal.lower.crystal\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\"name\":\"constant.character.escape.crystal\"},{\"include\":\"#nest_brackets\"}]},{\"begin\":\"%[qwi]\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"literal incapable of interpolation -- {}\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.quoted.other.literal.lower.crystal\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\}|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\"name\":\"constant.character.escape.crystal\"},{\"include\":\"#nest_curly\"}]},{\"begin\":\"%[qwi]\\\\\\\\|\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"literal incapable of interpolation -- ||\",\"end\":\"\\\\\\\\|\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.quoted.other.literal.lower.crystal\",\"patterns\":[{\"comment\":\"Cant be named because its not necessarily an escape.\",\"match\":\"\\\\\\\\\\\\\\\\.\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.constant.crystal\"}},\"comment\":\"symbols\",\"match\":\"(?<!:)(:)(?>[a-zA-Z_\\\\\\\\x{80}-\\\\\\\\x{10FFFF}][\\\\\\\\w\\\\\\\\x{80}-\\\\\\\\x{10FFFF}]*(?>[?!]|=(?![>=]))?|===?|>[>=]?|<[<=]?|<=>|[%&\\`/\\\\\\\\|]|\\\\\\\\*\\\\\\\\*?|=?~|[-+]@?|\\\\\\\\[\\\\\\\\][?=]?|@@?[a-zA-Z_\\\\\\\\x{80}-\\\\\\\\x{10FFFF}][\\\\\\\\w\\\\\\\\x{80}-\\\\\\\\x{10FFFF}]*)\",\"name\":\"constant.other.symbol.crystal\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.constant.crystal\"}},\"comment\":\"symbols\",\"match\":\"(?>[a-zA-Z_\\\\\\\\x{80}-\\\\\\\\x{10FFFF}][\\\\\\\\w\\\\\\\\x{80}-\\\\\\\\x{10FFFF}]*(?>[?!])?)(:)(?!:)\",\"name\":\"constant.other.symbol.crystal.19syntax\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.crystal\"}},\"match\":\"(?:^[ \\\\\\\\t]+)?(#).*$\\\\\\\\n?\",\"name\":\"comment.line.number-sign.crystal\"},{\"match\":\"(?<!}})\\\\\\\\b_([\\\\\\\\w]+[?!]?)\\\\\\\\b(?!\\\\\\\\()\",\"name\":\"comment.unused.crystal\"},{\"begin\":\"(?><<-('?)((?:[_\\\\\\\\w]+_|)HTML)\\\\\\\\b\\\\\\\\1)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"heredoc with embedded HTML and indented terminator\",\"contentName\":\"text.html.embedded.crystal\",\"end\":\"\\\\\\\\s*\\\\\\\\2\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.unquoted.embedded.html.crystal\",\"patterns\":[{\"include\":\"#heredoc\"},{\"include\":\"text.html.basic\"},{\"include\":\"#interpolated_crystal\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"(?><<-('?)((?:[_\\\\\\\\w]+_|)SQL)\\\\\\\\b\\\\\\\\1)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"heredoc with embedded SQL and indented terminator\",\"contentName\":\"text.sql.embedded.crystal\",\"end\":\"\\\\\\\\s*\\\\\\\\2\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.unquoted.embedded.sql.crystal\",\"patterns\":[{\"include\":\"#heredoc\"},{\"include\":\"source.sql\"},{\"include\":\"#interpolated_crystal\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"(?><<-('?)((?:[_\\\\\\\\w]+_|)CSS)\\\\\\\\b\\\\\\\\1)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"heredoc with embedded css and intented terminator\",\"contentName\":\"text.css.embedded.crystal\",\"end\":\"\\\\\\\\s*\\\\\\\\2\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.unquoted.embedded.css.crystal\",\"patterns\":[{\"include\":\"#heredoc\"},{\"include\":\"source.css\"},{\"include\":\"#interpolated_crystal\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"(?><<-('?)((?:[_\\\\\\\\w]+_|)CPP)\\\\\\\\b\\\\\\\\1)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"heredoc with embedded c++ and intented terminator\",\"contentName\":\"text.c++.embedded.crystal\",\"end\":\"\\\\\\\\s*\\\\\\\\2\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.unquoted.embedded.cplusplus.crystal\",\"patterns\":[{\"include\":\"#heredoc\"},{\"include\":\"source.c++\"},{\"include\":\"#interpolated_crystal\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"(?><<-('?)((?:[_\\\\\\\\w]+_|)C)\\\\\\\\b\\\\\\\\1)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"heredoc with embedded c++ and intented terminator\",\"contentName\":\"text.c.embedded.crystal\",\"end\":\"\\\\\\\\s*\\\\\\\\2\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.unquoted.embedded.c.crystal\",\"patterns\":[{\"include\":\"#heredoc\"},{\"include\":\"source.c\"},{\"include\":\"#interpolated_crystal\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"(?><<-('?)((?:[_\\\\\\\\w]+_|)(?:JS|JAVASCRIPT))\\\\\\\\b\\\\\\\\1)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"heredoc with embedded javascript and intented terminator\",\"contentName\":\"text.js.embedded.crystal\",\"end\":\"\\\\\\\\s*\\\\\\\\2\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.unquoted.embedded.js.crystal\",\"patterns\":[{\"include\":\"#heredoc\"},{\"include\":\"source.js\"},{\"include\":\"#interpolated_crystal\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"(?><<-('?)((?:[_\\\\\\\\w]+_|)JQUERY)\\\\\\\\b\\\\\\\\1)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"heredoc with embedded javascript and intented terminator\",\"contentName\":\"text.js.jquery.embedded.crystal\",\"end\":\"\\\\\\\\s*\\\\\\\\2\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.unquoted.embedded.js.jquery.crystal\",\"patterns\":[{\"include\":\"#heredoc\"},{\"include\":\"source.js.jquery\"},{\"include\":\"#interpolated_crystal\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"(?><<-('?)((?:[_\\\\\\\\w]+_|)(?:SH|SHELL))\\\\\\\\b\\\\\\\\1)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"heredoc with embedded shell and intented terminator\",\"contentName\":\"text.shell.embedded.crystal\",\"end\":\"\\\\\\\\s*\\\\\\\\2\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.unquoted.embedded.shell.crystal\",\"patterns\":[{\"include\":\"#heredoc\"},{\"include\":\"source.shell\"},{\"include\":\"#interpolated_crystal\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"(?><<-('?)((?:[_\\\\\\\\w]+_|)CRYSTAL)\\\\\\\\b\\\\\\\\1)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"heredoc with embedded crystal and intented terminator\",\"contentName\":\"text.crystal.embedded.crystal\",\"end\":\"\\\\\\\\s*\\\\\\\\2\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.unquoted.embedded.crystal.crystal\",\"patterns\":[{\"include\":\"#heredoc\"},{\"include\":\"source.crystal\"},{\"include\":\"#interpolated_crystal\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"(?><<-'(\\\\\\\\w+)')\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"heredoc with indented terminator\",\"end\":\"\\\\\\\\s*\\\\\\\\1\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.unquoted.heredoc.crystal\",\"patterns\":[{\"include\":\"#heredoc\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"(?><<-(\\\\\\\\w+)\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.crystal\"}},\"comment\":\"heredoc with indented terminator\",\"end\":\"\\\\\\\\s*\\\\\\\\1\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.crystal\"}},\"name\":\"string.unquoted.heredoc.crystal\",\"patterns\":[{\"include\":\"#heredoc\"},{\"include\":\"#interpolated_crystal\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"(?<={|{\\\\\\\\s|[^A-Za-z0-9_]do|^do|[^A-Za-z0-9_]do\\\\\\\\s|^do\\\\\\\\s)(\\\\\\\\|)\",\"captures\":{\"1\":{\"name\":\"punctuation.separator.variable.crystal\"}},\"end\":\"(?<!\\\\\\\\|)(\\\\\\\\|)(?!\\\\\\\\|)\",\"patterns\":[{\"include\":\"source.crystal\"},{\"match\":\"[_a-zA-Z][_a-zA-Z0-9]*\",\"name\":\"variable.other.block.crystal\"},{\"match\":\",\",\"name\":\"punctuation.separator.variable.crystal\"}]},{\"match\":\"=>\",\"name\":\"punctuation.separator.key-value\"},{\"match\":\"->\",\"name\":\"support.function.kernel.crystal\"},{\"match\":\"<<=|%=|&{1,2}=|\\\\\\\\*=|\\\\\\\\*\\\\\\\\*=|\\\\\\\\+=|-=|\\\\\\\\^=|\\\\\\\\|{1,2}=|<<\",\"name\":\"keyword.operator.assignment.augmented.crystal\"},{\"match\":\"<=>|<(?!<|=)|>(?!<|=|>)|<=|>=|===|==|=~|!=|!~|(?<=[ \\\\\\\\t])\\\\\\\\?\",\"name\":\"keyword.operator.comparison.crystal\"},{\"match\":\"(?<=^|[ \\\\\\\\t])!|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\^\",\"name\":\"keyword.operator.logical.crystal\"},{\"match\":\"(\\\\\\\\{\\\\\\\\%|\\\\\\\\%\\\\\\\\}|\\\\\\\\{\\\\\\\\{|\\\\\\\\}\\\\\\\\})\",\"name\":\"keyword.operator.macro.crystal\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.method.crystal\"}},\"comment\":\"Safe navigation operator\",\"match\":\"(&\\\\\\\\.)\\\\\\\\s*(?![A-Z])\"},{\"match\":\"(%|&|\\\\\\\\*\\\\\\\\*|\\\\\\\\*|\\\\\\\\+|\\\\\\\\-|/)\",\"name\":\"keyword.operator.arithmetic.crystal\"},{\"match\":\"=\",\"name\":\"keyword.operator.assignment.crystal\"},{\"match\":\"\\\\\\\\||~|>>\",\"name\":\"keyword.operator.other.crystal\"},{\"match\":\":\",\"name\":\"punctuation.separator.other.crystal\"},{\"match\":\"\\\\\\\\;\",\"name\":\"punctuation.separator.statement.crystal\"},{\"match\":\",\",\"name\":\"punctuation.separator.object.crystal\"},{\"match\":\"\\\\\\\\.|::\",\"name\":\"punctuation.separator.method.crystal\"},{\"match\":\"\\\\\\\\{|\\\\\\\\}\",\"name\":\"punctuation.section.scope.crystal\"},{\"match\":\"\\\\\\\\[|\\\\\\\\]\",\"name\":\"punctuation.section.array.crystal\"},{\"match\":\"\\\\\\\\(|\\\\\\\\)\",\"name\":\"punctuation.section.function.crystal\"},{\"begin\":\"(?=[a-zA-Z0-9_!?]+\\\\\\\\()\",\"end\":\"(?<=\\\\\\\\))\",\"name\":\"meta.function-call.crystal\",\"patterns\":[{\"match\":\"([a-zA-Z0-9_!?]+)(?=\\\\\\\\()\",\"name\":\"entity.name.function.crystal\"},{\"include\":\"$self\"}]},{\"comment\":\"This is kindof experimental. There really is no way to perfectly match all regular variables, but you can pretty well assume that any normal word in certain curcumstances that havnt already been scoped as something else are probably variables, and the advantages beat the potential errors\",\"match\":\"((?<=\\\\\\\\W)\\\\\\\\b|^)\\\\\\\\w+\\\\\\\\b(?=\\\\\\\\s*([\\\\\\\\]\\\\\\\\)\\\\\\\\}\\\\\\\\=\\\\\\\\+\\\\\\\\-\\\\\\\\*\\\\\\\\/\\\\\\\\^\\\\\\\\$\\\\\\\\,\\\\\\\\.]|<\\\\\\\\s|<<[\\\\\\\\s|\\\\\\\\.]))\",\"name\":\"variable.other.crystal\"}],\"repository\":{\"escaped_char\":{\"comment\":\"https://crystal-lang.org/reference/syntax_and_semantics/literals/string.html\",\"match\":\"\\\\\\\\\\\\\\\\(?:[0-7]{1,3}|x[a-fA-F0-9]{2}|u[a-fA-F0-9]{4}|u\\\\\\\\{[a-fA-F0-9 ]+\\\\\\\\}|.)\",\"name\":\"constant.character.escape.crystal\"},\"heredoc\":{\"begin\":\"^<<-?\\\\\\\\w+\",\"end\":\"$\",\"patterns\":[{\"include\":\"$self\"}]},\"interpolated_crystal\":{\"patterns\":[{\"begin\":\"#\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.crystal\"}},\"contentName\":\"source.crystal\",\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.crystal\"},\"1\":{\"name\":\"source.crystal\"}},\"name\":\"meta.embedded.line.crystal\",\"patterns\":[{\"include\":\"#nest_curly_and_self\"},{\"include\":\"$self\"}],\"repository\":{\"nest_curly_and_self\":{\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"captures\":{\"0\":{\"name\":\"punctuation.section.scope.crystal\"}},\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"#nest_curly_and_self\"}]},{\"include\":\"$self\"}]}}},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.crystal\"}},\"match\":\"(#@)[a-zA-Z_]\\\\\\\\w*\",\"name\":\"variable.other.readwrite.instance.crystal\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.crystal\"}},\"match\":\"(#@@)[a-zA-Z_]\\\\\\\\w*\",\"name\":\"variable.other.readwrite.class.crystal\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.crystal\"}},\"match\":\"(#\\\\\\\\$)[a-zA-Z_]\\\\\\\\w*\",\"name\":\"variable.other.readwrite.global.crystal\"}]},\"nest_brackets\":{\"begin\":\"\\\\\\\\[\",\"captures\":{\"0\":{\"name\":\"punctuation.section.scope.crystal\"}},\"end\":\"\\\\\\\\]\",\"patterns\":[{\"include\":\"#nest_brackets\"}]},\"nest_brackets_i\":{\"begin\":\"\\\\\\\\[\",\"captures\":{\"0\":{\"name\":\"punctuation.section.scope.crystal\"}},\"end\":\"\\\\\\\\]\",\"patterns\":[{\"include\":\"#interpolated_crystal\"},{\"include\":\"#escaped_char\"},{\"include\":\"#nest_brackets_i\"}]},\"nest_brackets_r\":{\"begin\":\"\\\\\\\\[\",\"captures\":{\"0\":{\"name\":\"punctuation.section.scope.crystal\"}},\"end\":\"\\\\\\\\]\",\"patterns\":[{\"include\":\"#regex_sub\"},{\"include\":\"#nest_brackets_r\"}]},\"nest_curly\":{\"begin\":\"\\\\\\\\{\",\"captures\":{\"0\":{\"name\":\"punctuation.section.scope.crystal\"}},\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"#nest_curly\"}]},\"nest_curly_and_self\":{\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"captures\":{\"0\":{\"name\":\"punctuation.section.scope.crystal\"}},\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"#nest_curly_and_self\"}]},{\"include\":\"$self\"}]},\"nest_curly_i\":{\"begin\":\"\\\\\\\\{\",\"captures\":{\"0\":{\"name\":\"punctuation.section.scope.crystal\"}},\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"#interpolated_crystal\"},{\"include\":\"#escaped_char\"},{\"include\":\"#nest_curly_i\"}]},\"nest_curly_r\":{\"begin\":\"\\\\\\\\{\",\"captures\":{\"0\":{\"name\":\"punctuation.section.scope.crystal\"}},\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"#regex_sub\"},{\"include\":\"#nest_curly_r\"}]},\"nest_ltgt\":{\"begin\":\"\\\\\\\\<\",\"captures\":{\"0\":{\"name\":\"punctuation.section.scope.crystal\"}},\"end\":\"\\\\\\\\>\",\"patterns\":[{\"include\":\"#nest_ltgt\"}]},\"nest_ltgt_i\":{\"begin\":\"\\\\\\\\<\",\"captures\":{\"0\":{\"name\":\"punctuation.section.scope.crystal\"}},\"end\":\"\\\\\\\\>\",\"patterns\":[{\"include\":\"#interpolated_crystal\"},{\"include\":\"#escaped_char\"},{\"include\":\"#nest_ltgt_i\"}]},\"nest_ltgt_r\":{\"begin\":\"\\\\\\\\<\",\"captures\":{\"0\":{\"name\":\"punctuation.section.scope.crystal\"}},\"end\":\"\\\\\\\\>\",\"patterns\":[{\"include\":\"#regex_sub\"},{\"include\":\"#nest_ltgt_r\"}]},\"nest_parens\":{\"begin\":\"\\\\\\\\(\",\"captures\":{\"0\":{\"name\":\"punctuation.section.scope.crystal\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#nest_parens\"}]},\"nest_parens_i\":{\"begin\":\"\\\\\\\\(\",\"captures\":{\"0\":{\"name\":\"punctuation.section.scope.crystal\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#interpolated_crystal\"},{\"include\":\"#escaped_char\"},{\"include\":\"#nest_parens_i\"}]},\"nest_parens_r\":{\"begin\":\"\\\\\\\\(\",\"captures\":{\"0\":{\"name\":\"punctuation.section.scope.crystal\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#regex_sub\"},{\"include\":\"#nest_parens_r\"}]},\"regex_sub\":{\"patterns\":[{\"include\":\"#interpolated_crystal\"},{\"include\":\"#escaped_char\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.arbitrary-repetition.crystal\"},\"3\":{\"name\":\"punctuation.definition.arbitrary-repetition.crystal\"}},\"match\":\"({)\\\\\\\\d+(,\\\\\\\\d+)?(})\",\"name\":\"string.regexp.arbitrary-repetition.crystal\"},{\"begin\":\"\\\\\\\\[(?:\\\\\\\\^?])?\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.character-class.crystal\"}},\"end\":\"]\",\"name\":\"string.regexp.character-class.crystal\",\"patterns\":[{\"include\":\"#escaped_char\"}]},{\"begin\":\"\\\\\\\\(\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.group.crystal\"}},\"end\":\"\\\\\\\\)\",\"name\":\"string.regexp.group.crystal\",\"patterns\":[{\"include\":\"#regex_sub\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.crystal\"}},\"comment\":\"We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.\",\"match\":\"(?<=^|\\\\\\\\s)(#)\\\\\\\\s[[a-zA-Z0-9,. \\\\\\\\t?!-][^\\\\\\\\x{00}-\\\\\\\\x{7F}]]*$\",\"name\":\"comment.line.number-sign.crystal\"}]}},\"scopeName\":\"source.crystal\",\"embeddedLangs\":[\"html\",\"sql\",\"css\",\"c\",\"javascript\",\"shellscript\"]}`)),p=[...e,...t,...n,...a,...r,...i,s];export{p as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CQjiPCtT.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Tasl\",\"fileTypes\":[\"tasl\"],\"name\":\"tasl\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#namespace\"},{\"include\":\"#type\"},{\"include\":\"#class\"},{\"include\":\"#edge\"}],\"repository\":{\"class\":{\"begin\":\"(?:^\\\\\\\\s*)(class)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.tasl.class\"}},\"end\":\"$\",\"patterns\":[{\"include\":\"#key\"},{\"include\":\"#export\"},{\"include\":\"#expression\"}]},\"comment\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.tasl\"}},\"match\":\"(#).*$\",\"name\":\"comment.line.number-sign.tasl\"},\"component\":{\"begin\":\"->\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.tasl.component\"}},\"end\":\"$\",\"patterns\":[{\"include\":\"#expression\"}]},\"coproduct\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.tasl.coproduct\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.tasl.coproduct\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#term\"},{\"include\":\"#option\"}]},\"datatype\":{\"match\":\"[a-zA-Z][a-zA-Z0-9]*:(?:[A-Za-z0-9\\\\\\\\-._~!$&'()*+,;=:@/?]|%[0-9A-Fa-f]{2})+\",\"name\":\"string.regexp\"},\"edge\":{\"begin\":\"(?:^\\\\\\\\s*)(edge)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.tasl.edge\"}},\"end\":\"$\",\"patterns\":[{\"include\":\"#key\"},{\"include\":\"#export\"},{\"match\":\"=/\",\"name\":\"punctuation.separator.tasl.edge.source\"},{\"match\":\"/=>\",\"name\":\"punctuation.separator.tasl.edge.target\"},{\"match\":\"=>\",\"name\":\"punctuation.separator.tasl.edge\"},{\"include\":\"#expression\"}]},\"export\":{\"match\":\"::\",\"name\":\"keyword.operator.tasl.export\"},\"expression\":{\"patterns\":[{\"include\":\"#literal\"},{\"include\":\"#uri\"},{\"include\":\"#product\"},{\"include\":\"#coproduct\"},{\"include\":\"#reference\"},{\"include\":\"#optional\"},{\"include\":\"#identifier\"}]},\"identifier\":{\"captures\":{\"1\":{\"name\":\"variable\"}},\"match\":\"([a-zA-Z][a-zA-Z0-9]*)\\\\\\\\b\"},\"key\":{\"match\":\"[a-zA-Z][a-zA-Z0-9]*:(?:[A-Za-z0-9\\\\\\\\-._~!$&'()*+,;=:@/?]|%[0-9A-Fa-f]{2})+\",\"name\":\"markup.bold entity.name.class\"},\"literal\":{\"patterns\":[{\"include\":\"#datatype\"}]},\"namespace\":{\"captures\":{\"1\":{\"name\":\"keyword.control.tasl.namespace\"},\"2\":{\"patterns\":[{\"include\":\"#namespaceURI\"},{\"match\":\"[a-zA-Z][a-zA-Z0-9]*\\\\\\\\b\",\"name\":\"entity.name\"}]}},\"match\":\"(?:^\\\\\\\\s*)(namespace)\\\\\\\\b(.*)\"},\"namespaceURI\":{\"match\":\"[a-z]+:[a-zA-Z0-9-._~:\\\\\\\\/?#\\\\\\\\[\\\\\\\\]@!$&'()*+,;%=]+\",\"name\":\"markup.underline.link\"},\"option\":{\"begin\":\"<-\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.tasl.option\"}},\"end\":\"$\",\"patterns\":[{\"include\":\"#expression\"}]},\"optional\":{\"begin\":\"\\\\\\\\?\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator\"}},\"end\":\"$\",\"patterns\":[{\"include\":\"#expression\"}]},\"product\":{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.tasl.product\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.tasl.product\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#term\"},{\"include\":\"#component\"}]},\"reference\":{\"captures\":{\"1\":{\"name\":\"markup.bold keyword.operator\"},\"2\":{\"patterns\":[{\"include\":\"#key\"}]}},\"match\":\"(\\\\\\\\*)\\\\\\\\s*(.*)\"},\"term\":{\"match\":\"[a-zA-Z][a-zA-Z0-9]*:(?:[A-Za-z0-9\\\\\\\\-._~!$&'()*+,;=:@/?]|%[0-9A-Fa-f]{2})+\",\"name\":\"entity.other.tasl.key\"},\"type\":{\"begin\":\"(?:^\\\\\\\\s*)(type)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.tasl.type\"}},\"end\":\"$\",\"patterns\":[{\"include\":\"#expression\"}]},\"uri\":{\"match\":\"<>\",\"name\":\"variable.other.constant\"}},\"scopeName\":\"source.tasl\"}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CRzUWN8h.js",
    "content": "import{Q as a,C as o,g as t,j as s,R as c}from\"./CU_MfyYc.js\";const n={},r={class:\"py-10 mx-auto\"},l={class:\"mx-auto max-w-7xl px-2 md:px-8\"},_={class:\"max-w-[600px] mx-auto\"};function d(e,m){return t(),o(\"div\",r,[s(\"main\",null,[s(\"div\",l,[s(\"div\",_,[c(e.$slots,\"default\")])])])])}const x=a(n,[[\"render\",d]]);export{x as S};\n"
  },
  {
    "path": "jesse/static/_nuxt/CS3Unz2-.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBorder\":\"#a6accd\",\"activityBar.background\":\"#1b1e28\",\"activityBar.dropBorder\":\"#a6accd\",\"activityBar.foreground\":\"#a6accd\",\"activityBar.inactiveForeground\":\"#a6accd66\",\"activityBarBadge.background\":\"#303340\",\"activityBarBadge.foreground\":\"#e4f0fb\",\"badge.background\":\"#303340\",\"badge.foreground\":\"#e4f0fb\",\"breadcrumb.activeSelectionForeground\":\"#e4f0fb\",\"breadcrumb.background\":\"#00000000\",\"breadcrumb.focusForeground\":\"#e4f0fb\",\"breadcrumb.foreground\":\"#767c9dcc\",\"breadcrumbPicker.background\":\"#1b1e28\",\"button.background\":\"#303340\",\"button.foreground\":\"#ffffff\",\"button.hoverBackground\":\"#50647750\",\"button.secondaryBackground\":\"#a6accd\",\"button.secondaryForeground\":\"#ffffff\",\"button.secondaryHoverBackground\":\"#a6accd\",\"charts.blue\":\"#ADD7FF\",\"charts.foreground\":\"#a6accd\",\"charts.green\":\"#5DE4c7\",\"charts.lines\":\"#a6accd80\",\"charts.orange\":\"#89ddff\",\"charts.purple\":\"#f087bd\",\"charts.red\":\"#d0679d\",\"charts.yellow\":\"#fffac2\",\"checkbox.background\":\"#1b1e28\",\"checkbox.border\":\"#ffffff10\",\"checkbox.foreground\":\"#e4f0fb\",\"debugConsole.errorForeground\":\"#d0679d\",\"debugConsole.infoForeground\":\"#ADD7FF\",\"debugConsole.sourceForeground\":\"#a6accd\",\"debugConsole.warningForeground\":\"#fffac2\",\"debugConsoleInputIcon.foreground\":\"#a6accd\",\"debugExceptionWidget.background\":\"#d0679d\",\"debugExceptionWidget.border\":\"#d0679d\",\"debugIcon.breakpointCurrentStackframeForeground\":\"#fffac2\",\"debugIcon.breakpointDisabledForeground\":\"#7390AA\",\"debugIcon.breakpointForeground\":\"#d0679d\",\"debugIcon.breakpointStackframeForeground\":\"#5fb3a1\",\"debugIcon.breakpointUnverifiedForeground\":\"#7390AA\",\"debugIcon.continueForeground\":\"#ADD7FF\",\"debugIcon.disconnectForeground\":\"#d0679d\",\"debugIcon.pauseForeground\":\"#ADD7FF\",\"debugIcon.restartForeground\":\"#5fb3a1\",\"debugIcon.startForeground\":\"#5fb3a1\",\"debugIcon.stepBackForeground\":\"#ADD7FF\",\"debugIcon.stepIntoForeground\":\"#ADD7FF\",\"debugIcon.stepOutForeground\":\"#ADD7FF\",\"debugIcon.stepOverForeground\":\"#ADD7FF\",\"debugIcon.stopForeground\":\"#d0679d\",\"debugTokenExpression.boolean\":\"#89ddff\",\"debugTokenExpression.error\":\"#d0679d\",\"debugTokenExpression.name\":\"#e4f0fb\",\"debugTokenExpression.number\":\"#5fb3a1\",\"debugTokenExpression.string\":\"#89ddff\",\"debugTokenExpression.value\":\"#a6accd99\",\"debugToolBar.background\":\"#303340\",\"debugView.exceptionLabelBackground\":\"#d0679d\",\"debugView.exceptionLabelForeground\":\"#e4f0fb\",\"debugView.stateLabelBackground\":\"#303340\",\"debugView.stateLabelForeground\":\"#a6accd\",\"debugView.valueChangedHighlight\":\"#89ddff\",\"descriptionForeground\":\"#a6accdb3\",\"diffEditor.diagonalFill\":\"#a6accd33\",\"diffEditor.insertedTextBackground\":\"#50647715\",\"diffEditor.removedTextBackground\":\"#d0679d20\",\"dropdown.background\":\"#1b1e28\",\"dropdown.border\":\"#ffffff10\",\"dropdown.foreground\":\"#e4f0fb\",\"editor.background\":\"#1b1e28\",\"editor.findMatchBackground\":\"#ADD7FF40\",\"editor.findMatchBorder\":\"#ADD7FF\",\"editor.findMatchHighlightBackground\":\"#ADD7FF40\",\"editor.findRangeHighlightBackground\":\"#ADD7FF40\",\"editor.focusedStackFrameHighlightBackground\":\"#7abd7a4d\",\"editor.foldBackground\":\"#717cb40b\",\"editor.foreground\":\"#a6accd\",\"editor.hoverHighlightBackground\":\"#264f7840\",\"editor.inactiveSelectionBackground\":\"#717cb425\",\"editor.lineHighlightBackground\":\"#717cb425\",\"editor.lineHighlightBorder\":\"#00000000\",\"editor.linkedEditingBackground\":\"#d0679d4d\",\"editor.rangeHighlightBackground\":\"#ffffff0b\",\"editor.selectionBackground\":\"#717cb425\",\"editor.selectionHighlightBackground\":\"#00000000\",\"editor.selectionHighlightBorder\":\"#ADD7FF80\",\"editor.snippetFinalTabstopHighlightBorder\":\"#525252\",\"editor.snippetTabstopHighlightBackground\":\"#7c7c7c4d\",\"editor.stackFrameHighlightBackground\":\"#ffff0033\",\"editor.symbolHighlightBackground\":\"#89ddff60\",\"editor.wordHighlightBackground\":\"#ADD7FF20\",\"editor.wordHighlightStrongBackground\":\"#ADD7FF40\",\"editorBracketMatch.background\":\"#00000000\",\"editorBracketMatch.border\":\"#e4f0fb40\",\"editorCodeLens.foreground\":\"#a6accd\",\"editorCursor.foreground\":\"#a6accd\",\"editorError.foreground\":\"#d0679d\",\"editorGroup.border\":\"#00000030\",\"editorGroup.dropBackground\":\"#7390AA80\",\"editorGroupHeader.noTabsBackground\":\"#1b1e28\",\"editorGroupHeader.tabsBackground\":\"#1b1e28\",\"editorGutter.addedBackground\":\"#5fb3a140\",\"editorGutter.background\":\"#1b1e28\",\"editorGutter.commentRangeForeground\":\"#a6accd\",\"editorGutter.deletedBackground\":\"#d0679d40\",\"editorGutter.foldingControlForeground\":\"#a6accd\",\"editorGutter.modifiedBackground\":\"#ADD7FF20\",\"editorHint.foreground\":\"#7390AAb3\",\"editorHoverWidget.background\":\"#1b1e28\",\"editorHoverWidget.border\":\"#ffffff10\",\"editorHoverWidget.foreground\":\"#a6accd\",\"editorHoverWidget.statusBarBackground\":\"#202430\",\"editorIndentGuide.activeBackground\":\"#e3e4e229\",\"editorIndentGuide.background\":\"#303340\",\"editorInfo.foreground\":\"#ADD7FF\",\"editorInlineHint.background\":\"#a6accd\",\"editorInlineHint.foreground\":\"#1b1e28\",\"editorLightBulb.foreground\":\"#fffac2\",\"editorLightBulbAutoFix.foreground\":\"#ADD7FF\",\"editorLineNumber.activeForeground\":\"#a6accd\",\"editorLineNumber.foreground\":\"#767c9d50\",\"editorLink.activeForeground\":\"#ADD7FF\",\"editorMarkerNavigation.background\":\"#2d2d30\",\"editorMarkerNavigationError.background\":\"#d0679d\",\"editorMarkerNavigationInfo.background\":\"#ADD7FF\",\"editorMarkerNavigationWarning.background\":\"#fffac2\",\"editorOverviewRuler.addedForeground\":\"#5fb3a199\",\"editorOverviewRuler.border\":\"#00000000\",\"editorOverviewRuler.bracketMatchForeground\":\"#a0a0a0\",\"editorOverviewRuler.commonContentForeground\":\"#a6accd66\",\"editorOverviewRuler.currentContentForeground\":\"#5fb3a180\",\"editorOverviewRuler.deletedForeground\":\"#d0679d99\",\"editorOverviewRuler.errorForeground\":\"#d0679db3\",\"editorOverviewRuler.findMatchForeground\":\"#e4f0fb20\",\"editorOverviewRuler.incomingContentForeground\":\"#89ddff80\",\"editorOverviewRuler.infoForeground\":\"#ADD7FF\",\"editorOverviewRuler.modifiedForeground\":\"#89ddff99\",\"editorOverviewRuler.rangeHighlightForeground\":\"#89ddff99\",\"editorOverviewRuler.selectionHighlightForeground\":\"#a0a0a0cc\",\"editorOverviewRuler.warningForeground\":\"#fffac2\",\"editorOverviewRuler.wordHighlightForeground\":\"#a0a0a0cc\",\"editorOverviewRuler.wordHighlightStrongForeground\":\"#89ddffcc\",\"editorPane.background\":\"#1b1e28\",\"editorRuler.foreground\":\"#e4f0fb10\",\"editorSuggestWidget.background\":\"#1b1e28\",\"editorSuggestWidget.border\":\"#ffffff10\",\"editorSuggestWidget.foreground\":\"#a6accd\",\"editorSuggestWidget.highlightForeground\":\"#5DE4c7\",\"editorSuggestWidget.selectedBackground\":\"#00000050\",\"editorUnnecessaryCode.opacity\":\"#000000aa\",\"editorWarning.foreground\":\"#fffac2\",\"editorWhitespace.foreground\":\"#303340\",\"editorWidget.background\":\"#1b1e28\",\"editorWidget.border\":\"#a6accd\",\"editorWidget.foreground\":\"#a6accd\",\"errorForeground\":\"#d0679d\",\"extensionBadge.remoteBackground\":\"#303340\",\"extensionBadge.remoteForeground\":\"#e4f0fb\",\"extensionButton.prominentBackground\":\"#30334090\",\"extensionButton.prominentForeground\":\"#ffffff\",\"extensionButton.prominentHoverBackground\":\"#303340\",\"extensionIcon.starForeground\":\"#fffac2\",\"focusBorder\":\"#00000000\",\"foreground\":\"#a6accd\",\"gitDecoration.addedResourceForeground\":\"#5fb3a1\",\"gitDecoration.conflictingResourceForeground\":\"#d0679d\",\"gitDecoration.deletedResourceForeground\":\"#d0679d\",\"gitDecoration.ignoredResourceForeground\":\"#767c9d70\",\"gitDecoration.modifiedResourceForeground\":\"#ADD7FF\",\"gitDecoration.renamedResourceForeground\":\"#5DE4c7\",\"gitDecoration.stageDeletedResourceForeground\":\"#d0679d\",\"gitDecoration.stageModifiedResourceForeground\":\"#ADD7FF\",\"gitDecoration.submoduleResourceForeground\":\"#89ddff\",\"gitDecoration.untrackedResourceForeground\":\"#5DE4c7\",\"icon.foreground\":\"#a6accd\",\"imagePreview.border\":\"#303340\",\"input.background\":\"#ffffff05\",\"input.border\":\"#ffffff10\",\"input.foreground\":\"#e4f0fb\",\"input.placeholderForeground\":\"#a6accd60\",\"inputOption.activeBackground\":\"#00000000\",\"inputOption.activeBorder\":\"#00000000\",\"inputOption.activeForeground\":\"#ffffff\",\"inputValidation.errorBackground\":\"#1b1e28\",\"inputValidation.errorBorder\":\"#d0679d\",\"inputValidation.errorForeground\":\"#d0679d\",\"inputValidation.infoBackground\":\"#506477\",\"inputValidation.infoBorder\":\"#89ddff\",\"inputValidation.warningBackground\":\"#506477\",\"inputValidation.warningBorder\":\"#fffac2\",\"list.activeSelectionBackground\":\"#30334080\",\"list.activeSelectionForeground\":\"#e4f0fb\",\"list.deemphasizedForeground\":\"#767c9d\",\"list.dropBackground\":\"#506477\",\"list.errorForeground\":\"#d0679d\",\"list.filterMatchBackground\":\"#89ddff60\",\"list.focusBackground\":\"#30334080\",\"list.focusForeground\":\"#a6accd\",\"list.focusOutline\":\"#00000000\",\"list.highlightForeground\":\"#5fb3a1\",\"list.hoverBackground\":\"#30334080\",\"list.hoverForeground\":\"#e4f0fb\",\"list.inactiveSelectionBackground\":\"#30334080\",\"list.inactiveSelectionForeground\":\"#e4f0fb\",\"list.invalidItemForeground\":\"#fffac2\",\"list.warningForeground\":\"#fffac2\",\"listFilterWidget.background\":\"#303340\",\"listFilterWidget.noMatchesOutline\":\"#d0679d\",\"listFilterWidget.outline\":\"#00000000\",\"menu.background\":\"#1b1e28\",\"menu.foreground\":\"#e4f0fb\",\"menu.selectionBackground\":\"#303340\",\"menu.selectionForeground\":\"#7390AA\",\"menu.separatorBackground\":\"#767c9d\",\"menubar.selectionBackground\":\"#717cb425\",\"menubar.selectionForeground\":\"#a6accd\",\"merge.commonContentBackground\":\"#a6accd29\",\"merge.commonHeaderBackground\":\"#a6accd66\",\"merge.currentContentBackground\":\"#5fb3a133\",\"merge.currentHeaderBackground\":\"#5fb3a180\",\"merge.incomingContentBackground\":\"#89ddff33\",\"merge.incomingHeaderBackground\":\"#89ddff80\",\"minimap.errorHighlight\":\"#d0679d\",\"minimap.findMatchHighlight\":\"#ADD7FF\",\"minimap.selectionHighlight\":\"#e4f0fb40\",\"minimap.warningHighlight\":\"#fffac2\",\"minimapGutter.addedBackground\":\"#5fb3a180\",\"minimapGutter.deletedBackground\":\"#d0679d80\",\"minimapGutter.modifiedBackground\":\"#ADD7FF80\",\"minimapSlider.activeBackground\":\"#a6accd30\",\"minimapSlider.background\":\"#a6accd20\",\"minimapSlider.hoverBackground\":\"#a6accd30\",\"notebook.cellBorderColor\":\"#1b1e28\",\"notebook.cellInsertionIndicator\":\"#00000000\",\"notebook.cellStatusBarItemHoverBackground\":\"#ffffff26\",\"notebook.cellToolbarSeparator\":\"#303340\",\"notebook.focusedCellBorder\":\"#00000000\",\"notebook.focusedEditorBorder\":\"#00000000\",\"notebook.focusedRowBorder\":\"#00000000\",\"notebook.inactiveFocusedCellBorder\":\"#00000000\",\"notebook.outputContainerBackgroundColor\":\"#1b1e28\",\"notebook.rowHoverBackground\":\"#30334000\",\"notebook.selectedCellBackground\":\"#303340\",\"notebook.selectedCellBorder\":\"#1b1e28\",\"notebook.symbolHighlightBackground\":\"#ffffff0b\",\"notebookScrollbarSlider.activeBackground\":\"#a6accd25\",\"notebookScrollbarSlider.background\":\"#00000050\",\"notebookScrollbarSlider.hoverBackground\":\"#a6accd25\",\"notebookStatusErrorIcon.foreground\":\"#d0679d\",\"notebookStatusRunningIcon.foreground\":\"#a6accd\",\"notebookStatusSuccessIcon.foreground\":\"#5fb3a1\",\"notificationCenterHeader.background\":\"#303340\",\"notificationLink.foreground\":\"#ADD7FF\",\"notifications.background\":\"#1b1e28\",\"notifications.border\":\"#303340\",\"notifications.foreground\":\"#e4f0fb\",\"notificationsErrorIcon.foreground\":\"#d0679d\",\"notificationsInfoIcon.foreground\":\"#ADD7FF\",\"notificationsWarningIcon.foreground\":\"#fffac2\",\"panel.background\":\"#1b1e28\",\"panel.border\":\"#00000030\",\"panel.dropBorder\":\"#a6accd\",\"panelSection.border\":\"#1b1e28\",\"panelSection.dropBackground\":\"#7390AA80\",\"panelSectionHeader.background\":\"#303340\",\"panelTitle.activeBorder\":\"#a6accd\",\"panelTitle.activeForeground\":\"#a6accd\",\"panelTitle.inactiveForeground\":\"#a6accd99\",\"peekView.border\":\"#00000030\",\"peekViewEditor.background\":\"#a6accd05\",\"peekViewEditor.matchHighlightBackground\":\"#303340\",\"peekViewEditorGutter.background\":\"#a6accd05\",\"peekViewResult.background\":\"#a6accd05\",\"peekViewResult.fileForeground\":\"#ffffff\",\"peekViewResult.lineForeground\":\"#a6accd\",\"peekViewResult.matchHighlightBackground\":\"#303340\",\"peekViewResult.selectionBackground\":\"#717cb425\",\"peekViewResult.selectionForeground\":\"#ffffff\",\"peekViewTitle.background\":\"#a6accd05\",\"peekViewTitleDescription.foreground\":\"#a6accd60\",\"peekViewTitleLabel.foreground\":\"#ffffff\",\"pickerGroup.border\":\"#a6accd\",\"pickerGroup.foreground\":\"#89ddff\",\"problemsErrorIcon.foreground\":\"#d0679d\",\"problemsInfoIcon.foreground\":\"#ADD7FF\",\"problemsWarningIcon.foreground\":\"#fffac2\",\"progressBar.background\":\"#89ddff\",\"quickInput.background\":\"#1b1e28\",\"quickInput.foreground\":\"#a6accd\",\"quickInputList.focusBackground\":\"#a6accd10\",\"quickInputTitle.background\":\"#ffffff1b\",\"sash.hoverBorder\":\"#00000000\",\"scm.providerBorder\":\"#e4f0fb10\",\"scrollbar.shadow\":\"#00000000\",\"scrollbarSlider.activeBackground\":\"#a6accd25\",\"scrollbarSlider.background\":\"#00000080\",\"scrollbarSlider.hoverBackground\":\"#a6accd25\",\"searchEditor.findMatchBackground\":\"#ADD7FF50\",\"searchEditor.textInputBorder\":\"#ffffff10\",\"selection.background\":\"#a6accd\",\"settings.checkboxBackground\":\"#1b1e28\",\"settings.checkboxBorder\":\"#ffffff10\",\"settings.checkboxForeground\":\"#e4f0fb\",\"settings.dropdownBackground\":\"#1b1e28\",\"settings.dropdownBorder\":\"#ffffff10\",\"settings.dropdownForeground\":\"#e4f0fb\",\"settings.dropdownListBorder\":\"#e4f0fb10\",\"settings.focusedRowBackground\":\"#00000000\",\"settings.headerForeground\":\"#e4f0fb\",\"settings.modifiedItemIndicator\":\"#ADD7FF\",\"settings.numberInputBackground\":\"#ffffff05\",\"settings.numberInputBorder\":\"#ffffff10\",\"settings.numberInputForeground\":\"#e4f0fb\",\"settings.textInputBackground\":\"#ffffff05\",\"settings.textInputBorder\":\"#ffffff10\",\"settings.textInputForeground\":\"#e4f0fb\",\"sideBar.background\":\"#1b1e28\",\"sideBar.dropBackground\":\"#7390AA80\",\"sideBar.foreground\":\"#767c9d\",\"sideBarSectionHeader.background\":\"#1b1e28\",\"sideBarSectionHeader.foreground\":\"#a6accd\",\"sideBarTitle.foreground\":\"#a6accd\",\"statusBar.background\":\"#1b1e28\",\"statusBar.debuggingBackground\":\"#303340\",\"statusBar.debuggingForeground\":\"#ffffff\",\"statusBar.foreground\":\"#a6accd\",\"statusBar.noFolderBackground\":\"#1b1e28\",\"statusBar.noFolderForeground\":\"#a6accd\",\"statusBarItem.activeBackground\":\"#ffffff2e\",\"statusBarItem.errorBackground\":\"#d0679d\",\"statusBarItem.errorForeground\":\"#ffffff\",\"statusBarItem.hoverBackground\":\"#ffffff1f\",\"statusBarItem.prominentBackground\":\"#00000080\",\"statusBarItem.prominentForeground\":\"#a6accd\",\"statusBarItem.prominentHoverBackground\":\"#0000004d\",\"statusBarItem.remoteBackground\":\"#303340\",\"statusBarItem.remoteForeground\":\"#e4f0fb\",\"symbolIcon.arrayForeground\":\"#a6accd\",\"symbolIcon.booleanForeground\":\"#a6accd\",\"symbolIcon.classForeground\":\"#fffac2\",\"symbolIcon.colorForeground\":\"#a6accd\",\"symbolIcon.constantForeground\":\"#a6accd\",\"symbolIcon.constructorForeground\":\"#f087bd\",\"symbolIcon.enumeratorForeground\":\"#fffac2\",\"symbolIcon.enumeratorMemberForeground\":\"#ADD7FF\",\"symbolIcon.eventForeground\":\"#fffac2\",\"symbolIcon.fieldForeground\":\"#ADD7FF\",\"symbolIcon.fileForeground\":\"#a6accd\",\"symbolIcon.folderForeground\":\"#a6accd\",\"symbolIcon.functionForeground\":\"#f087bd\",\"symbolIcon.interfaceForeground\":\"#ADD7FF\",\"symbolIcon.keyForeground\":\"#a6accd\",\"symbolIcon.keywordForeground\":\"#a6accd\",\"symbolIcon.methodForeground\":\"#f087bd\",\"symbolIcon.moduleForeground\":\"#a6accd\",\"symbolIcon.namespaceForeground\":\"#a6accd\",\"symbolIcon.nullForeground\":\"#a6accd\",\"symbolIcon.numberForeground\":\"#a6accd\",\"symbolIcon.objectForeground\":\"#a6accd\",\"symbolIcon.operatorForeground\":\"#a6accd\",\"symbolIcon.packageForeground\":\"#a6accd\",\"symbolIcon.propertyForeground\":\"#a6accd\",\"symbolIcon.referenceForeground\":\"#a6accd\",\"symbolIcon.snippetForeground\":\"#a6accd\",\"symbolIcon.stringForeground\":\"#a6accd\",\"symbolIcon.structForeground\":\"#a6accd\",\"symbolIcon.textForeground\":\"#a6accd\",\"symbolIcon.typeParameterForeground\":\"#a6accd\",\"symbolIcon.unitForeground\":\"#a6accd\",\"symbolIcon.variableForeground\":\"#ADD7FF\",\"tab.activeBackground\":\"#30334080\",\"tab.activeForeground\":\"#e4f0fb\",\"tab.activeModifiedBorder\":\"#ADD7FF\",\"tab.border\":\"#00000000\",\"tab.inactiveBackground\":\"#1b1e28\",\"tab.inactiveForeground\":\"#767c9d\",\"tab.inactiveModifiedBorder\":\"#ADD7FF80\",\"tab.lastPinnedBorder\":\"#00000000\",\"tab.unfocusedActiveBackground\":\"#1b1e28\",\"tab.unfocusedActiveForeground\":\"#a6accd\",\"tab.unfocusedActiveModifiedBorder\":\"#ADD7FF40\",\"tab.unfocusedInactiveBackground\":\"#1b1e28\",\"tab.unfocusedInactiveForeground\":\"#a6accd80\",\"tab.unfocusedInactiveModifiedBorder\":\"#ADD7FF40\",\"terminal.ansiBlack\":\"#1b1e28\",\"terminal.ansiBlue\":\"#89ddff\",\"terminal.ansiBrightBlack\":\"#a6accd\",\"terminal.ansiBrightBlue\":\"#ADD7FF\",\"terminal.ansiBrightCyan\":\"#ADD7FF\",\"terminal.ansiBrightGreen\":\"#5DE4c7\",\"terminal.ansiBrightMagenta\":\"#f087bd\",\"terminal.ansiBrightRed\":\"#d0679d\",\"terminal.ansiBrightWhite\":\"#ffffff\",\"terminal.ansiBrightYellow\":\"#fffac2\",\"terminal.ansiCyan\":\"#89ddff\",\"terminal.ansiGreen\":\"#5DE4c7\",\"terminal.ansiMagenta\":\"#f087bd\",\"terminal.ansiRed\":\"#d0679d\",\"terminal.ansiWhite\":\"#ffffff\",\"terminal.ansiYellow\":\"#fffac2\",\"terminal.border\":\"#00000000\",\"terminal.foreground\":\"#a6accd\",\"terminal.selectionBackground\":\"#717cb425\",\"terminalCommandDecoration.defaultBackground\":\"#767c9d\",\"terminalCommandDecoration.errorBackground\":\"#d0679d\",\"terminalCommandDecoration.successBackground\":\"#5DE4c7\",\"testing.iconErrored\":\"#d0679d\",\"testing.iconFailed\":\"#d0679d\",\"testing.iconPassed\":\"#5DE4c7\",\"testing.iconQueued\":\"#fffac2\",\"testing.iconSkipped\":\"#7390AA\",\"testing.iconUnset\":\"#7390AA\",\"testing.message.error.decorationForeground\":\"#d0679d\",\"testing.message.error.lineBackground\":\"#d0679d33\",\"testing.message.hint.decorationForeground\":\"#7390AAb3\",\"testing.message.info.decorationForeground\":\"#ADD7FF\",\"testing.message.info.lineBackground\":\"#89ddff33\",\"testing.message.warning.decorationForeground\":\"#fffac2\",\"testing.message.warning.lineBackground\":\"#fffac233\",\"testing.peekBorder\":\"#d0679d\",\"testing.runAction\":\"#5DE4c7\",\"textBlockQuote.background\":\"#7390AA1a\",\"textBlockQuote.border\":\"#89ddff80\",\"textCodeBlock.background\":\"#00000050\",\"textLink.activeForeground\":\"#ADD7FF\",\"textLink.foreground\":\"#ADD7FF\",\"textPreformat.foreground\":\"#e4f0fb\",\"textSeparator.foreground\":\"#ffffff2e\",\"titleBar.activeBackground\":\"#1b1e28\",\"titleBar.activeForeground\":\"#a6accd\",\"titleBar.inactiveBackground\":\"#1b1e28\",\"titleBar.inactiveForeground\":\"#767c9d\",\"tree.indentGuidesStroke\":\"#303340\",\"tree.tableColumnsBorder\":\"#a6accd20\",\"welcomePage.progress.background\":\"#ffffff05\",\"welcomePage.progress.foreground\":\"#5fb3a1\",\"welcomePage.tileBackground\":\"#1b1e28\",\"welcomePage.tileHoverBackground\":\"#303340\",\"widget.shadow\":\"#00000030\"},\"displayName\":\"Poimandres\",\"name\":\"poimandres\",\"tokenColors\":[{\"scope\":[\"comment\",\"punctuation.definition.comment\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#767c9dB0\"}},{\"scope\":\"meta.parameters comment.block\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#a6accd\"}},{\"scope\":[\"variable.other.constant.object\",\"variable.other.readwrite.alias\",\"meta.import variable.other.readwrite\"],\"settings\":{\"foreground\":\"#ADD7FF\"}},{\"scope\":[\"variable.other\",\"support.type.object\"],\"settings\":{\"foreground\":\"#e4f0fb\"}},{\"scope\":[\"variable.other.object.property\",\"variable.other.property\",\"support.variable.property\"],\"settings\":{\"foreground\":\"#e4f0fb\"}},{\"scope\":[\"entity.name.function.method\",\"string.unquoted\",\"meta.object.member\"],\"settings\":{\"foreground\":\"#ADD7FF\"}},{\"scope\":[\"variable - meta.import\",\"constant.other.placeholder\",\"meta.object-literal.key-meta.object.member\"],\"settings\":{\"foreground\":\"#e4f0fb\"}},{\"scope\":[\"keyword.control.flow\"],\"settings\":{\"foreground\":\"#5DE4c7c0\"}},{\"scope\":[\"keyword.operator.new\",\"keyword.control.new\"],\"settings\":{\"foreground\":\"#5DE4c7\"}},{\"scope\":[\"variable.language.this\",\"storage.modifier.async\",\"storage.modifier\",\"variable.language.super\"],\"settings\":{\"foreground\":\"#5DE4c7\"}},{\"scope\":[\"support.class.error\",\"keyword.control.trycatch\",\"keyword.operator.expression.delete\",\"keyword.operator.expression.void\",\"keyword.operator.void\",\"keyword.operator.delete\",\"constant.language.null\",\"constant.language.boolean.false\",\"constant.language.undefined\"],\"settings\":{\"foreground\":\"#d0679d\"}},{\"scope\":[\"variable.parameter\",\"variable.other.readwrite.js\",\"meta.definition.variable variable.other.constant\",\"meta.definition.variable variable.other.readwrite\"],\"settings\":{\"foreground\":\"#e4f0fb\"}},{\"scope\":[\"constant.other.color\"],\"settings\":{\"foreground\":\"#ffffff\"}},{\"scope\":[\"invalid\",\"invalid.illegal\"],\"settings\":{\"foreground\":\"#d0679d\"}},{\"scope\":[\"invalid.deprecated\"],\"settings\":{\"foreground\":\"#d0679d\"}},{\"scope\":[\"keyword.control\",\"keyword\"],\"settings\":{\"foreground\":\"#a6accd\"}},{\"scope\":[\"keyword.operator\",\"storage.type\"],\"settings\":{\"foreground\":\"#91B4D5\"}},{\"scope\":[\"keyword.control.module\",\"keyword.control.import\",\"keyword.control.export\",\"keyword.control.default\",\"meta.import\",\"meta.export\"],\"settings\":{\"foreground\":\"#5DE4c7\"}},{\"scope\":[\"Keyword\",\"Storage\"],\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":[\"keyword-meta.export\"],\"settings\":{\"foreground\":\"#ADD7FF\"}},{\"scope\":[\"meta.brace\",\"punctuation\",\"keyword.operator.existential\"],\"settings\":{\"foreground\":\"#a6accd\"}},{\"scope\":[\"constant.other.color\",\"meta.tag\",\"punctuation.definition.tag\",\"punctuation.separator.inheritance.php\",\"punctuation.definition.tag.html\",\"punctuation.definition.tag.begin.html\",\"punctuation.definition.tag.end.html\",\"punctuation.section.embedded\",\"keyword.other.template\",\"keyword.other.substitution\",\"meta.objectliteral\"],\"settings\":{\"foreground\":\"#e4f0fb\"}},{\"scope\":[\"support.class.component\"],\"settings\":{\"foreground\":\"#5DE4c7\"}},{\"scope\":[\"entity.name.tag\",\"entity.name.tag\",\"meta.tag.sgml\",\"markup.deleted.git_gutter\"],\"settings\":{\"foreground\":\"#5DE4c7\"}},{\"scope\":\"variable.function, source meta.function-call entity.name.function, source meta.function-call entity.name.function, source meta.method-call entity.name.function, meta.class meta.group.braces.curly meta.function-call variable.function, meta.class meta.field.declaration meta.function-call entity.name.function, variable.function.constructor, meta.block meta.var.expr meta.function-call entity.name.function, support.function.console, meta.function-call support.function, meta.property.class variable.other.class, punctuation.definition.entity.css\",\"settings\":{\"foreground\":\"#e4f0fbd0\"}},{\"scope\":\"entity.name.function, meta.class entity.name.class, meta.class entity.name.type.class, meta.class meta.function-call variable.function, keyword.other.important\",\"settings\":{\"foreground\":\"#ADD7FF\"}},{\"scope\":[\"source.cpp meta.block variable.other\"],\"settings\":{\"foreground\":\"#ADD7FF\"}},{\"scope\":[\"support.other.variable\",\"string.other.link\"],\"settings\":{\"foreground\":\"#5DE4c7\"}},{\"scope\":[\"constant.numeric\",\"support.constant\",\"constant.character\",\"constant.escape\",\"keyword.other.unit\",\"keyword.other\",\"string\",\"constant.language\",\"constant.other.symbol\",\"constant.other.key\",\"markup.heading\",\"markup.inserted.git_gutter\",\"meta.group.braces.curly constant.other.object.key.js string.unquoted.label.js\",\"text.html.derivative\"],\"settings\":{\"foreground\":\"#5DE4c7\"}},{\"scope\":[\"entity.other.inherited-class\"],\"settings\":{\"foreground\":\"#ADD7FF\"}},{\"scope\":[\"meta.type.declaration\"],\"settings\":{\"foreground\":\"#ADD7FF\"}},{\"scope\":[\"entity.name.type.alias\"],\"settings\":{\"foreground\":\"#a6accd\"}},{\"scope\":[\"keyword.control.as\",\"entity.name.type\",\"support.type\"],\"settings\":{\"foreground\":\"#a6accdC0\"}},{\"scope\":[\"entity.name\",\"support.orther.namespace.use.php\",\"meta.use.php\",\"support.other.namespace.php\",\"markup.changed.git_gutter\",\"support.type.sys-types\"],\"settings\":{\"foreground\":\"#91B4D5\"}},{\"scope\":[\"support.class\",\"support.constant\",\"variable.other.constant.object\"],\"settings\":{\"foreground\":\"#ADD7FF\"}},{\"scope\":[\"source.css support.type.property-name\",\"source.sass support.type.property-name\",\"source.scss support.type.property-name\",\"source.less support.type.property-name\",\"source.stylus support.type.property-name\",\"source.postcss support.type.property-name\"],\"settings\":{\"foreground\":\"#ADD7FF\"}},{\"scope\":[\"entity.name.module.js\",\"variable.import.parameter.js\",\"variable.other.class.js\"],\"settings\":{\"foreground\":\"#e4f0fb\"}},{\"scope\":[\"variable.language\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#ADD7FF\"}},{\"scope\":[\"entity.name.method.js\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#91B4D5\"}},{\"scope\":[\"meta.class-method.js entity.name.function.js\",\"variable.function.constructor\"],\"settings\":{\"foreground\":\"#91B4D5\"}},{\"scope\":[\"entity.other.attribute-name\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#91B4D5\"}},{\"scope\":[\"text.html.basic entity.other.attribute-name.html\",\"text.html.basic entity.other.attribute-name\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#5fb3a1\"}},{\"scope\":[\"entity.other.attribute-name.class\"],\"settings\":{\"foreground\":\"#5fb3a1\"}},{\"scope\":[\"source.sass keyword.control\"],\"settings\":{\"foreground\":\"#42675A\"}},{\"scope\":[\"markup.inserted\"],\"settings\":{\"foreground\":\"#ADD7FF\"}},{\"scope\":[\"markup.deleted\"],\"settings\":{\"foreground\":\"#506477\"}},{\"scope\":[\"markup.changed\"],\"settings\":{\"foreground\":\"#91B4D5\"}},{\"scope\":[\"string.regexp\"],\"settings\":{\"foreground\":\"#5fb3a1\"}},{\"scope\":[\"constant.character.escape\"],\"settings\":{\"foreground\":\"#5fb3a1\"}},{\"scope\":[\"*url*\",\"*link*\",\"*uri*\"],\"settings\":{\"fontStyle\":\"underline\",\"foreground\":\"#ADD7FF\"}},{\"scope\":[\"tag.decorator.js entity.name.tag.js\",\"tag.decorator.js punctuation.definition.tag.js\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#42675A\"}},{\"scope\":[\"source.js constant.other.object.key.js string.unquoted.label.js\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#5fb3a1\"}},{\"scope\":[\"source.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#e4f0fb\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#ADD7FF\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#91B4D5\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#7390AA\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#e4f0fb\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#ADD7FF\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#91B4D5\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#7390AA\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#e4f0fb\"}},{\"scope\":[\"text.html.markdown\",\"punctuation.definition.list_item.markdown\"],\"settings\":{\"foreground\":\"#e4f0fb\"}},{\"scope\":[\"text.html.markdown markup.inline.raw.markdown\"],\"settings\":{\"foreground\":\"#ADD7FF\"}},{\"scope\":[\"text.html.markdown markup.inline.raw.markdown punctuation.definition.raw.markdown\"],\"settings\":{\"foreground\":\"#91B4D5\"}},{\"scope\":[\"markdown.heading\",\"markup.heading | markup.heading entity.name\",\"markup.heading.markdown punctuation.definition.heading.markdown\"],\"settings\":{\"foreground\":\"#e4f0fb\"}},{\"scope\":[\"markup.italic\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#7390AA\"}},{\"scope\":[\"markup.bold\",\"markup.bold string\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#7390AA\"}},{\"scope\":[\"markup.bold markup.italic\",\"markup.italic markup.bold\",\"markup.quote markup.bold\",\"markup.bold markup.italic string\",\"markup.italic markup.bold string\",\"markup.quote markup.bold string\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#7390AA\"}},{\"scope\":[\"markup.underline\"],\"settings\":{\"fontStyle\":\"underline\",\"foreground\":\"#7390AA\"}},{\"scope\":[\"markup.strike\"],\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":[\"markup.quote punctuation.definition.blockquote.markdown\"],\"settings\":{\"foreground\":\"#5DE4c7\"}},{\"scope\":[\"markup.quote\"],\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":[\"string.other.link.title.markdown\"],\"settings\":{\"foreground\":\"#ADD7FF\"}},{\"scope\":[\"string.other.link.description.title.markdown\"],\"settings\":{\"foreground\":\"#ADD7FF\"}},{\"scope\":[\"constant.other.reference.link.markdown\"],\"settings\":{\"foreground\":\"#ADD7FF\"}},{\"scope\":[\"markup.raw.block\"],\"settings\":{\"foreground\":\"#ADD7FF\"}},{\"scope\":[\"markup.raw.block.fenced.markdown\"],\"settings\":{\"foreground\":\"#50647750\"}},{\"scope\":[\"punctuation.definition.fenced.markdown\"],\"settings\":{\"foreground\":\"#50647750\"}},{\"scope\":[\"markup.raw.block.fenced.markdown\",\"variable.language.fenced.markdown\",\"punctuation.section.class.end\"],\"settings\":{\"foreground\":\"#91B4D5\"}},{\"scope\":[\"variable.language.fenced.markdown\"],\"settings\":{\"foreground\":\"#91B4D5\"}},{\"scope\":[\"meta.separator\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#7390AA\"}},{\"scope\":[\"markup.table\"],\"settings\":{\"foreground\":\"#ADD7FF\"}},{\"scope\":\"token.info-token\",\"settings\":{\"foreground\":\"#89ddff\"}},{\"scope\":\"token.warn-token\",\"settings\":{\"foreground\":\"#fffac2\"}},{\"scope\":\"token.error-token\",\"settings\":{\"foreground\":\"#d0679d\"}},{\"scope\":\"token.debug-token\",\"settings\":{\"foreground\":\"#e4f0fb\"}},{\"scope\":[\"entity.name.section.markdown\",\"markup.heading.setext.1.markdown\",\"markup.heading.setext.2.markdown\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#e4f0fb\"}},{\"scope\":\"meta.paragraph.markdown\",\"settings\":{\"foreground\":\"#e4f0fbd0\"}},{\"scope\":[\"punctuation.definition.from-file.diff\",\"meta.diff.header.from-file\"],\"settings\":{\"foreground\":\"#506477\"}},{\"scope\":\"markup.inline.raw.string.markdown\",\"settings\":{\"foreground\":\"#7390AA\"}},{\"scope\":\"meta.separator.markdown\",\"settings\":{\"foreground\":\"#767c9d\"}},{\"scope\":\"markup.bold.markdown\",\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":\"markup.italic.markdown\",\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":[\"beginning.punctuation.definition.list.markdown\",\"punctuation.definition.list.begin.markdown\",\"markup.list.unnumbered.markdown\"],\"settings\":{\"foreground\":\"#ADD7FF\"}},{\"scope\":[\"string.other.link.description.title.markdown punctuation.definition.string.markdown\",\"meta.link.inline.markdown string.other.link.description.title.markdown\",\"string.other.link.description.title.markdown punctuation.definition.string.begin.markdown\",\"string.other.link.description.title.markdown punctuation.definition.string.end.markdown\",\"meta.image.inline.markdown string.other.link.description.title.markdown\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#ADD7FF\"}},{\"scope\":[\"meta.link.inline.markdown string.other.link.title.markdown\",\"meta.link.reference.markdown string.other.link.title.markdown\",\"meta.link.reference.def.markdown markup.underline.link.markdown\"],\"settings\":{\"fontStyle\":\"underline\",\"foreground\":\"#ADD7FF\"}},{\"scope\":[\"markup.underline.link.markdown\",\"string.other.link.description.title.markdown\"],\"settings\":{\"foreground\":\"#5DE4c7\"}},{\"scope\":[\"fenced_code.block.language\",\"markup.inline.raw.markdown\"],\"settings\":{\"foreground\":\"#ADD7FF\"}},{\"scope\":[\"punctuation.definition.markdown\",\"punctuation.definition.raw.markdown\",\"punctuation.definition.heading.markdown\",\"punctuation.definition.bold.markdown\",\"punctuation.definition.italic.markdown\"],\"settings\":{\"foreground\":\"#ADD7FF\"}},{\"scope\":[\"source.ignore\",\"log.error\",\"log.exception\"],\"settings\":{\"foreground\":\"#d0679d\"}},{\"scope\":[\"log.verbose\"],\"settings\":{\"foreground\":\"#a6accd\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CSHBycmS.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"PowerQuery\",\"fileTypes\":[\"pq\",\"pqm\"],\"name\":\"powerquery\",\"patterns\":[{\"include\":\"#Noise\"},{\"include\":\"#LiteralExpression\"},{\"include\":\"#Keywords\"},{\"include\":\"#ImplicitVariable\"},{\"include\":\"#IntrinsicVariable\"},{\"include\":\"#Operators\"},{\"include\":\"#DotOperators\"},{\"include\":\"#TypeName\"},{\"include\":\"#RecordExpression\"},{\"include\":\"#Punctuation\"},{\"include\":\"#QuotedIdentifier\"},{\"include\":\"#Identifier\"}],\"repository\":{\"BlockComment\":{\"begin\":\"/\\\\\\\\*\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.powerquery\"},\"DecimalNumber\":{\"match\":\"(?<![\\\\\\\\d\\\\\\\\w])(\\\\\\\\d*\\\\\\\\.\\\\\\\\d+)\\\\\\\\b\",\"name\":\"constant.numeric.decimal.powerquery\"},\"DotOperators\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.ellipsis.powerquery\"},\"2\":{\"name\":\"keyword.operator.list.powerquery\"}},\"match\":\"(?<!\\\\\\\\.)(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(\\\\\\\\.\\\\\\\\.))(?!\\\\\\\\.)\"},\"EscapeSequence\":{\"begin\":\"#\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.escapesequence.begin.powerquery\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.escapesequence.end.powerquery\"}},\"name\":\"constant.character.escapesequence.powerquery\",\"patterns\":[{\"match\":\"(#|\\\\\\\\h{4}|\\\\\\\\h{8}|cr|lf|tab)(?:,(#|\\\\\\\\h{4}|\\\\\\\\h{8}|cr|lf|tab))*\"},{\"match\":\"[^\\\\\\\\)]\",\"name\":\"invalid.illegal.escapesequence.powerquery\"}]},\"FloatNumber\":{\"match\":\"(\\\\\\\\d*\\\\\\\\.)?\\\\\\\\d+(e|E)(\\\\\\\\+|-)?\\\\\\\\d+\",\"name\":\"constant.numeric.float.powerquery\"},\"HexNumber\":{\"match\":\"0(x|X)\\\\\\\\h+\",\"name\":\"constant.numeric.integer.hexadecimal.powerquery\"},\"Identifier\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.inclusiveidentifier.powerquery\"},\"2\":{\"name\":\"entity.name.powerquery\"}},\"match\":\"(?:(?<![\\\\\\\\._\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Nd}\\\\\\\\p{Pc}\\\\\\\\p{Mn}\\\\\\\\p{Mc}\\\\\\\\p{Cf}])(@?)([_\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}][_\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Nd}\\\\\\\\p{Pc}\\\\\\\\p{Mn}\\\\\\\\p{Mc}\\\\\\\\p{Cf}]*(?:\\\\\\\\.[_\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}][_\\\\\\\\p{Lu}\\\\\\\\p{Ll}\\\\\\\\p{Lt}\\\\\\\\p{Lm}\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Nd}\\\\\\\\p{Pc}\\\\\\\\p{Mn}\\\\\\\\p{Mc}\\\\\\\\p{Cf}])*)\\\\\\\\b)\"},\"ImplicitVariable\":{\"match\":\"\\\\\\\\b_\\\\\\\\b\",\"name\":\"keyword.operator.implicitvariable.powerquery\"},\"InclusiveIdentifier\":{\"captures\":{\"0\":{\"name\":\"inclusiveidentifier.powerquery\"}},\"match\":\"@\"},\"IntNumber\":{\"captures\":{\"1\":{\"name\":\"constant.numeric.integer.powerquery\"}},\"match\":\"\\\\\\\\b(\\\\\\\\d+)\\\\\\\\b\"},\"IntrinsicVariable\":{\"captures\":{\"1\":{\"name\":\"constant.language.intrinsicvariable.powerquery\"}},\"match\":\"(?<![\\\\\\\\d\\\\\\\\w])(#sections|#shared)\\\\\\\\b\"},\"Keywords\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.word.logical.powerquery\"},\"2\":{\"name\":\"keyword.control.conditional.powerquery\"},\"3\":{\"name\":\"keyword.control.exception.powerquery\"},\"4\":{\"name\":\"keyword.other.powerquery\"},\"5\":{\"name\":\"keyword.powerquery\"}},\"match\":\"\\\\\\\\b(?:(and|or|not)|(if|then|else)|(try|otherwise)|(as|each|in|is|let|meta|type|error)|(section|shared))\\\\\\\\b\"},\"LineComment\":{\"match\":\"//.*\",\"name\":\"comment.line.double-slash.powerquery\"},\"LiteralExpression\":{\"patterns\":[{\"include\":\"#String\"},{\"include\":\"#NumericConstant\"},{\"include\":\"#LogicalConstant\"},{\"include\":\"#NullConstant\"},{\"include\":\"#FloatNumber\"},{\"include\":\"#DecimalNumber\"},{\"include\":\"#HexNumber\"},{\"include\":\"#IntNumber\"}]},\"LogicalConstant\":{\"match\":\"\\\\\\\\b(true|false)\\\\\\\\b\",\"name\":\"constant.language.logical.powerquery\"},\"Noise\":{\"patterns\":[{\"include\":\"#BlockComment\"},{\"include\":\"#LineComment\"},{\"include\":\"#Whitespace\"}]},\"NullConstant\":{\"match\":\"\\\\\\\\b(null)\\\\\\\\b\",\"name\":\"constant.language.null.powerquery\"},\"NumericConstant\":{\"captures\":{\"1\":{\"name\":\"constant.language.numeric.float.powerquery\"}},\"match\":\"(?<![\\\\\\\\d\\\\\\\\w])(#infinity|#nan)\\\\\\\\b\"},\"Operators\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.function.powerquery\"},\"2\":{\"name\":\"keyword.operator.assignment-or-comparison.powerquery\"},\"3\":{\"name\":\"keyword.operator.comparison.powerquery\"},\"4\":{\"name\":\"keyword.operator.combination.powerquery\"},\"5\":{\"name\":\"keyword.operator.arithmetic.powerquery\"},\"6\":{\"name\":\"keyword.operator.sectionaccess.powerquery\"},\"7\":{\"name\":\"keyword.operator.optional.powerquery\"}},\"match\":\"(=>)|(=)|(<>|<|>|<=|>=)|(&)|(\\\\\\\\+|-|\\\\\\\\*|\\\\\\\\/)|(!)|(\\\\\\\\?)\"},\"Punctuation\":{\"captures\":{\"1\":{\"name\":\"punctuation.separator.powerquery\"},\"2\":{\"name\":\"punctuation.section.parens.begin.powerquery\"},\"3\":{\"name\":\"punctuation.section.parens.end.powerquery\"},\"4\":{\"name\":\"punctuation.section.braces.begin.powerquery\"},\"5\":{\"name\":\"punctuation.section.braces.end.powerquery\"}},\"match\":\"(,)|(\\\\\\\\()|(\\\\\\\\))|({)|(})\"},\"QuotedIdentifier\":{\"begin\":\"#\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.quotedidentifier.begin.powerquery\"}},\"end\":\"\\\\\"(?!\\\\\")\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.quotedidentifier.end.powerquery\"}},\"name\":\"entity.name.powerquery\",\"patterns\":[{\"match\":\"\\\\\"\\\\\"\",\"name\":\"constant.character.escape.quote.powerquery\"},{\"include\":\"#EscapeSequence\"}]},\"RecordExpression\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.brackets.begin.powerquery\"}},\"contentName\":\"meta.recordexpression.powerquery\",\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.brackets.end.powerquery\"}},\"patterns\":[{\"include\":\"$self\"}]},\"String\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.powerquery\"}},\"end\":\"\\\\\"(?!\\\\\")\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.powerquery\"}},\"name\":\"string.quoted.double.powerquery\",\"patterns\":[{\"match\":\"\\\\\"\\\\\"\",\"name\":\"constant.character.escape.quote.powerquery\"},{\"include\":\"#EscapeSequence\"}]},\"TypeName\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.powerquery\"},\"2\":{\"name\":\"storage.type.powerquery\"}},\"match\":\"\\\\\\\\b(?:(optional|nullable)|(action|any|anynonnull|binary|date|datetime|datetimezone|duration|function|list|logical|none|null|number|record|table|text|type))\\\\\\\\b\"},\"Whitespace\":{\"match\":\"\\\\\\\\s+\"}},\"scopeName\":\"source.powerquery\"}')),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CSp6iqVD.js",
    "content": "import e from\"./e4jU7D2d.js\";import n from\"./BEhvmC7f.js\";import c from\"./DhUJRlN_.js\";import a from\"./ySlJ1b_l.js\";import o from\"./atvbtKCR.js\";import t from\"./CVw76BM1.js\";import r from\"./DbXoA79R.js\";import l from\"./CYFUjXW1.js\";import\"./BMYPR7BL.js\";import\"./BPhBrDlE.js\";import\"./DWJ3fJO_.js\";import\"./COyJrUc7.js\";import\"./C3t2pwGQ.js\";import\"./COK4E0Yg.js\";import\"./m4gc_qpA.js\";import\"./cPjAOO0u.js\";import\"./xI-RfyKK.js\";import\"./DjHMNizO.js\";import\"./Dj6nwHGl.js\";import\"./BAng5TT0.js\";import\"./B6W0miNI.js\";import\"./Dbxjm_CC.js\";const s=Object.freeze(JSON.parse('{\"displayName\":\"reStructuredText\",\"name\":\"rst\",\"patterns\":[{\"include\":\"#body\"}],\"repository\":{\"anchor\":{\"match\":\"^\\\\\\\\.{2}\\\\\\\\s+(_[^:]+:)\\\\\\\\s*\",\"name\":\"entity.name.tag.anchor\"},\"block\":{\"begin\":\"^(\\\\\\\\s*)(\\\\\\\\.{2}\\\\\\\\s+\\\\\\\\S+::)(.*)\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.control\"},\"3\":{\"name\":\"variable\"}},\"end\":\"^(?!\\\\\\\\1\\\\\\\\s|\\\\\\\\s*$)\",\"patterns\":[{\"include\":\"#block-param\"},{\"include\":\"#body\"}]},\"block-comment\":{\"begin\":\"^(\\\\\\\\s*)\\\\\\\\.{2}(\\\\\\\\s+|$)\",\"end\":\"^(?=\\\\\\\\S)|^\\\\\\\\s*$\",\"name\":\"comment.block\",\"patterns\":[{\"begin\":\"^\\\\\\\\s{3,}(?=\\\\\\\\S)\",\"name\":\"comment.block\",\"while\":\"^\\\\\\\\s{3}.*|^\\\\\\\\s*$\"}]},\"block-param\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control\"},\"2\":{\"name\":\"variable.parameter\"}},\"match\":\"(:param\\\\\\\\s+(.+?):)(?:\\\\\\\\s|$)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control\"},\"2\":{\"patterns\":[{\"match\":\"\\\\\\\\b(0x[a-fA-F\\\\\\\\d]+|\\\\\\\\d+)\\\\\\\\b\",\"name\":\"constant.numeric\"},{\"include\":\"#inline-markup\"}]}},\"match\":\"(:.+?:)(?:$|\\\\\\\\s+(.*))\"}]},\"blocks\":{\"patterns\":[{\"include\":\"#domains\"},{\"include\":\"#doctest\"},{\"include\":\"#code-block-cpp\"},{\"include\":\"#code-block-py\"},{\"include\":\"#code-block-console\"},{\"include\":\"#code-block-javascript\"},{\"include\":\"#code-block-yaml\"},{\"include\":\"#code-block-cmake\"},{\"include\":\"#code-block-kconfig\"},{\"include\":\"#code-block-ruby\"},{\"include\":\"#code-block-dts\"},{\"include\":\"#code-block\"},{\"include\":\"#doctest-block\"},{\"include\":\"#raw-html\"},{\"include\":\"#block\"},{\"include\":\"#literal-block\"},{\"include\":\"#block-comment\"}]},\"body\":{\"patterns\":[{\"include\":\"#title\"},{\"include\":\"#inline-markup\"},{\"include\":\"#anchor\"},{\"include\":\"#line-block\"},{\"include\":\"#replace-include\"},{\"include\":\"#footnote\"},{\"include\":\"#substitution\"},{\"include\":\"#blocks\"},{\"include\":\"#table\"},{\"include\":\"#simple-table\"},{\"include\":\"#options-list\"}]},\"bold\":{\"begin\":\"(?<=[\\\\\\\\s\\\\\"\\'(\\\\\\\\[{<]|^)\\\\\\\\*{2}[^\\\\\\\\s*]\",\"end\":\"\\\\\\\\*{2}|^\\\\\\\\s*$\",\"name\":\"markup.bold\"},\"citation\":{\"applyEndPatternLast\":0,\"begin\":\"(?<=[\\\\\\\\s\\\\\"\\'(\\\\\\\\[{<]|^)`[^\\\\\\\\s`]\",\"end\":\"`_{,2}|^\\\\\\\\s*$\",\"name\":\"entity.name.tag\"},\"code-block\":{\"begin\":\"^(\\\\\\\\s*)(\\\\\\\\.{2}\\\\\\\\s+(code|code-block)::)\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.control\"}},\"patterns\":[{\"include\":\"#block-param\"}],\"while\":\"^\\\\\\\\1(?=\\\\\\\\s)|^\\\\\\\\s*$\"},\"code-block-cmake\":{\"begin\":\"^(\\\\\\\\s*)(\\\\\\\\.{2}\\\\\\\\s+(code|code-block)::)\\\\\\\\s*(cmake)\\\\\\\\s*$\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.control\"},\"4\":{\"name\":\"variable.parameter.codeblock.cmake\"}},\"patterns\":[{\"include\":\"#block-param\"},{\"include\":\"source.cmake\"}],\"while\":\"^\\\\\\\\1(?=\\\\\\\\s)|^\\\\\\\\s*$\"},\"code-block-console\":{\"begin\":\"^(\\\\\\\\s*)(\\\\\\\\.{2}\\\\\\\\s+(code|code-block)::)\\\\\\\\s*(console|shell|bash)\\\\\\\\s*$\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.control\"},\"4\":{\"name\":\"variable.parameter.codeblock.console\"}},\"patterns\":[{\"include\":\"#block-param\"},{\"include\":\"source.shell\"}],\"while\":\"^\\\\\\\\1(?=\\\\\\\\s)|^\\\\\\\\s*$\"},\"code-block-cpp\":{\"begin\":\"^(\\\\\\\\s*)(\\\\\\\\.{2}\\\\\\\\s+(code|code-block)::)\\\\\\\\s*(c|c\\\\\\\\+\\\\\\\\+|cpp|C|C\\\\\\\\+\\\\\\\\+|CPP|Cpp)\\\\\\\\s*$\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.control\"},\"4\":{\"name\":\"variable.parameter.codeblock.cpp\"}},\"patterns\":[{\"include\":\"#block-param\"},{\"include\":\"source.cpp\"}],\"while\":\"^\\\\\\\\1(?=\\\\\\\\s)|^\\\\\\\\s*$\"},\"code-block-dts\":{\"begin\":\"^(\\\\\\\\s*)(\\\\\\\\.{2}\\\\\\\\s+(code|code-block)::)\\\\\\\\s*(dts|DTS|devicetree)\\\\\\\\s*$\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.control\"},\"4\":{\"name\":\"variable.parameter.codeblock.dts\"}},\"patterns\":[{\"include\":\"#block-param\"},{\"include\":\"source.dts\"}],\"while\":\"^\\\\\\\\1(?=\\\\\\\\s)|^\\\\\\\\s*$\"},\"code-block-javascript\":{\"begin\":\"^(\\\\\\\\s*)(\\\\\\\\.{2}\\\\\\\\s+(code|code-block)::)\\\\\\\\s*(javascript)\\\\\\\\s*$\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.control\"},\"4\":{\"name\":\"variable.parameter.codeblock.js\"}},\"patterns\":[{\"include\":\"#block-param\"},{\"include\":\"source.js\"}],\"while\":\"^\\\\\\\\1(?=\\\\\\\\s)|^\\\\\\\\s*$\"},\"code-block-kconfig\":{\"begin\":\"^(\\\\\\\\s*)(\\\\\\\\.{2}\\\\\\\\s+(code|code-block)::)\\\\\\\\s*([kK]config)\\\\\\\\s*$\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.control\"},\"4\":{\"name\":\"variable.parameter.codeblock.kconfig\"}},\"patterns\":[{\"include\":\"#block-param\"},{\"include\":\"source.kconfig\"}],\"while\":\"^\\\\\\\\1(?=\\\\\\\\s)|^\\\\\\\\s*$\"},\"code-block-py\":{\"begin\":\"^(\\\\\\\\s*)(\\\\\\\\.{2}\\\\\\\\s+(code|code-block)::)\\\\\\\\s*(python)\\\\\\\\s*$\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.control\"},\"4\":{\"name\":\"variable.parameter.codeblock.py\"}},\"patterns\":[{\"include\":\"#block-param\"},{\"include\":\"source.python\"}],\"while\":\"^\\\\\\\\1(?=\\\\\\\\s)|^\\\\\\\\s*$\"},\"code-block-ruby\":{\"begin\":\"^(\\\\\\\\s*)(\\\\\\\\.{2}\\\\\\\\s+(code|code-block)::)\\\\\\\\s*(ruby)\\\\\\\\s*$\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.control\"},\"4\":{\"name\":\"variable.parameter.codeblock.ruby\"}},\"patterns\":[{\"include\":\"#block-param\"},{\"include\":\"source.ruby\"}],\"while\":\"^\\\\\\\\1(?=\\\\\\\\s)|^\\\\\\\\s*$\"},\"code-block-yaml\":{\"begin\":\"^(\\\\\\\\s*)(\\\\\\\\.{2}\\\\\\\\s+(code|code-block)::)\\\\\\\\s*(ya?ml)\\\\\\\\s*$\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.control\"},\"4\":{\"name\":\"variable.parameter.codeblock.yaml\"}},\"patterns\":[{\"include\":\"#block-param\"},{\"include\":\"source.yaml\"}],\"while\":\"^\\\\\\\\1(?=\\\\\\\\s)|^\\\\\\\\s*$\"},\"doctest\":{\"begin\":\"^(>>>)\\\\\\\\s*(.*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control\"},\"2\":{\"patterns\":[{\"include\":\"source.python\"}]}},\"end\":\"^\\\\\\\\s*$\"},\"doctest-block\":{\"begin\":\"^(\\\\\\\\s*)(\\\\\\\\.{2}\\\\\\\\s+doctest::)\\\\\\\\s*$\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.control\"}},\"patterns\":[{\"include\":\"#block-param\"},{\"include\":\"source.python\"}],\"while\":\"^\\\\\\\\1(?=\\\\\\\\s)|^\\\\\\\\s*$\"},\"domain-auto\":{\"begin\":\"^(\\\\\\\\s*)(\\\\\\\\.{2}\\\\\\\\s+auto(?:class|module|exception|function|decorator|data|method|attribute|property)::)\\\\\\\\s*(.*)\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.control.py\"},\"3\":{\"patterns\":[{\"include\":\"source.python\"}]}},\"patterns\":[{\"include\":\"#block-param\"},{\"include\":\"#body\"}],\"while\":\"^\\\\\\\\1(?=\\\\\\\\s)|^\\\\\\\\s*$\"},\"domain-cpp\":{\"begin\":\"^(\\\\\\\\s*)(\\\\\\\\.{2}\\\\\\\\s+(?:cpp|c):(?:class|struct|function|member|var|type|enum|enum-struct|enum-class|enumerator|union|concept)::)\\\\\\\\s*(?:(@\\\\\\\\w+)|(.*))\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.control\"},\"3\":{\"name\":\"entity.name.tag\"},\"4\":{\"patterns\":[{\"include\":\"source.cpp\"}]}},\"patterns\":[{\"include\":\"#block-param\"},{\"include\":\"#body\"}],\"while\":\"^\\\\\\\\1(?=\\\\\\\\s)|^\\\\\\\\s*$\"},\"domain-js\":{\"begin\":\"^(\\\\\\\\s*)(\\\\\\\\.{2}\\\\\\\\s+js:\\\\\\\\w+::)\\\\\\\\s*(.*)\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.control\"},\"3\":{\"patterns\":[{\"include\":\"source.js\"}]}},\"end\":\"^(?!\\\\\\\\1[ \\\\\\\\t]|$)\",\"patterns\":[{\"include\":\"#block-param\"},{\"include\":\"#body\"}]},\"domain-py\":{\"begin\":\"^(\\\\\\\\s*)(\\\\\\\\.{2}\\\\\\\\s+py:(?:module|function|data|exception|class|attribute|property|method|staticmethod|classmethod|decorator|decoratormethod)::)\\\\\\\\s*(.*)\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.control\"},\"3\":{\"patterns\":[{\"include\":\"source.python\"}]}},\"patterns\":[{\"include\":\"#block-param\"},{\"include\":\"#body\"}],\"while\":\"^\\\\\\\\1(?=\\\\\\\\s)|^\\\\\\\\s*$\"},\"domains\":{\"patterns\":[{\"include\":\"#domain-cpp\"},{\"include\":\"#domain-py\"},{\"include\":\"#domain-auto\"},{\"include\":\"#domain-js\"}]},\"escaped\":{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape\"},\"footnote\":{\"match\":\"^\\\\\\\\s*\\\\\\\\.{2}\\\\\\\\s+\\\\\\\\[(?:[\\\\\\\\w\\\\\\\\.-]+|[#*]|#\\\\\\\\w+)\\\\\\\\]\\\\\\\\s+\",\"name\":\"entity.name.tag\"},\"footnote-ref\":{\"match\":\"\\\\\\\\[(?:[\\\\\\\\w\\\\\\\\.-]+|[#*])\\\\\\\\]_\",\"name\":\"entity.name.tag\"},\"ignore\":{\"patterns\":[{\"match\":\"\\'[`*]+\\'\"},{\"match\":\"<[`*]+>\"},{\"match\":\"{[`*]+}\"},{\"match\":\"\\\\\\\\([`*]+\\\\\\\\)\"},{\"match\":\"\\\\\\\\[[`*]+\\\\\\\\]\"},{\"match\":\"\\\\\"[`*]+\\\\\"\"}]},\"inline-markup\":{\"patterns\":[{\"include\":\"#escaped\"},{\"include\":\"#ignore\"},{\"include\":\"#ref\"},{\"include\":\"#literal\"},{\"include\":\"#monospaced\"},{\"include\":\"#citation\"},{\"include\":\"#bold\"},{\"include\":\"#italic\"},{\"include\":\"#list\"},{\"include\":\"#macro\"},{\"include\":\"#reference\"},{\"include\":\"#footnote-ref\"}]},\"italic\":{\"begin\":\"(?<=[\\\\\\\\s\\\\\"\\'(\\\\\\\\[{<]|^)\\\\\\\\*[^\\\\\\\\s*]\",\"end\":\"\\\\\\\\*|^\\\\\\\\s*$\",\"name\":\"markup.italic\"},\"line-block\":{\"match\":\"^\\\\\\\\|\\\\\\\\s+\",\"name\":\"keyword.control\"},\"list\":{\"match\":\"^\\\\\\\\s*(\\\\\\\\d+\\\\\\\\.|\\\\\\\\* -|[a-zA-Z#]\\\\\\\\.|[iIvVxXmMcC]+\\\\\\\\.|\\\\\\\\(\\\\\\\\d+\\\\\\\\)|\\\\\\\\d+\\\\\\\\)|[*+-])\\\\\\\\s+\",\"name\":\"keyword.control\"},\"literal\":{\"captures\":{\"1\":{\"name\":\"keyword.control\"},\"2\":{\"name\":\"entity.name.tag\"}},\"match\":\"(:\\\\\\\\S+:)(`.*?`\\\\\\\\\\\\\\\\?)\"},\"literal-block\":{\"begin\":\"^(\\\\\\\\s*)(.*)(::)\\\\\\\\s*$\",\"beginCaptures\":{\"2\":{\"patterns\":[{\"include\":\"#inline-markup\"}]},\"3\":{\"name\":\"keyword.control\"}},\"while\":\"^\\\\\\\\1(?=\\\\\\\\s)|^\\\\\\\\s*$\"},\"macro\":{\"match\":\"\\\\\\\\|[^\\\\\\\\|]+\\\\\\\\|\",\"name\":\"entity.name.tag\"},\"monospaced\":{\"begin\":\"(?<=[\\\\\\\\s\\\\\"\\'(\\\\\\\\[{<]|^)``[^\\\\\\\\s`]\",\"end\":\"``|^\\\\\\\\s*$\",\"name\":\"string.interpolated\"},\"options-list\":{\"match\":\"(?:(?:^|,\\\\\\\\s+)(?:[-+]\\\\\\\\w|--?[a-zA-Z][\\\\\\\\w-]+|/\\\\\\\\w+)(?:[ =](?:\\\\\\\\w+|<[^<>]+?>))?)+(?=  |\\\\\\\\t|$)\",\"name\":\"variable.parameter\"},\"raw-html\":{\"begin\":\"^(\\\\\\\\s*)(\\\\\\\\.{2}\\\\\\\\s+raw\\\\\\\\s*::)\\\\\\\\s+(html)\\\\\\\\s*$\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.control\"},\"3\":{\"name\":\"variable.parameter.html\"}},\"patterns\":[{\"include\":\"#block-param\"},{\"include\":\"text.html.derivative\"}],\"while\":\"^\\\\\\\\1(?=\\\\\\\\s)|^\\\\\\\\s*$\"},\"ref\":{\"begin\":\"(:ref:)`\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control\"}},\"end\":\"`|^\\\\\\\\s*$\",\"name\":\"entity.name.tag\",\"patterns\":[{\"match\":\"<.*?>\",\"name\":\"markup.underline.link\"}]},\"reference\":{\"match\":\"[\\\\\\\\w-]*[a-zA-Z\\\\\\\\d-]__?\\\\\\\\b\",\"name\":\"entity.name.tag\"},\"replace-include\":{\"captures\":{\"1\":{\"name\":\"keyword.control\"},\"2\":{\"name\":\"entity.name.tag\"},\"3\":{\"name\":\"keyword.control\"}},\"match\":\"^\\\\\\\\s*(\\\\\\\\.{2})\\\\\\\\s+(\\\\\\\\|[^\\\\\\\\|]+\\\\\\\\|)\\\\\\\\s+(replace::)\"},\"simple-table\":{\"match\":\"^[=\\\\\\\\s]+$\",\"name\":\"keyword.control.table\"},\"substitution\":{\"match\":\"^\\\\\\\\.{2}\\\\\\\\s*\\\\\\\\|([^|]+)\\\\\\\\|\",\"name\":\"entity.name.tag\"},\"table\":{\"begin\":\"^\\\\\\\\s*\\\\\\\\+[=+-]+\\\\\\\\+\\\\\\\\s*$\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.table\"}},\"end\":\"^(?![+|])\",\"patterns\":[{\"match\":\"[=+|-]\",\"name\":\"keyword.control.table\"}]},\"title\":{\"match\":\"^(\\\\\\\\*{3,}|#{3,}|\\\\\\\\={3,}|~{3,}|\\\\\\\\+{3,}|-{3,}|`{3,}|\\\\\\\\^{3,}|:{3,}|\\\\\"{3,}|_{3,}|\\'{3,})$\",\"name\":\"markup.heading\"}},\"scopeName\":\"source.rst\",\"embeddedLangs\":[\"html-derivative\",\"cpp\",\"python\",\"javascript\",\"shellscript\",\"yaml\",\"cmake\",\"ruby\"]}')),P=[...e,...n,...c,...a,...o,...t,...r,...l,s];export{P as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CTNlIIiR.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\",notIn:[\"string\"]},{open:\"[\",close:\"]\",notIn:[\"string\"]},{open:\"(\",close:\")\",notIn:[\"string\"]},{open:'\"',close:'\"',notIn:[\"string\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]}],folding:{markers:{start:new RegExp(\"^\\\\s*(#|//)region\\\\b\"),end:new RegExp(\"^\\\\s*(#|//)endregion\\\\b\")}}},t={defaultToken:\"\",tokenPostfix:\"\",tokenizer:{root:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.root\"}],[/<!DOCTYPE/,\"metatag.html\",\"@doctype\"],[/<!--/,\"comment.html\",\"@comment\"],[/(<)(\\w+)(\\/>)/,[\"delimiter.html\",\"tag.html\",\"delimiter.html\"]],[/(<)(script)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@script\"}]],[/(<)(style)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@style\"}]],[/(<)([:\\w]+)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@otherTag\"}]],[/(<\\/)(\\w+)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@otherTag\"}]],[/</,\"delimiter.html\"],[/[^<]+/]],doctype:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.comment\"}],[/[^>]+/,\"metatag.content.html\"],[/>/,\"metatag.html\",\"@pop\"]],comment:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.comment\"}],[/-->/,\"comment.html\",\"@pop\"],[/[^-]+/,\"comment.content.html\"],[/./,\"comment.content.html\"]],otherTag:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.otherTag\"}],[/\\/?>/,\"delimiter.html\",\"@pop\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/]],script:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.script\"}],[/type/,\"attribute.name\",\"@scriptAfterType\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.text/javascript\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/(<\\/)(script\\s*)(>)/,[\"delimiter.html\",\"tag.html\",{token:\"delimiter.html\",next:\"@pop\"}]]],scriptAfterType:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.scriptAfterType\"}],[/=/,\"delimiter\",\"@scriptAfterTypeEquals\"],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.text/javascript\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptAfterTypeEquals:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.scriptAfterTypeEquals\"}],[/\"([^\"]*)\"/,{token:\"attribute.value\",switchTo:\"@scriptWithCustomType.$1\"}],[/'([^']*)'/,{token:\"attribute.value\",switchTo:\"@scriptWithCustomType.$1\"}],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.text/javascript\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptWithCustomType:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.scriptWithCustomType.$S2\"}],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.$S2\",nextEmbedded:\"$S2\"}],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptEmbedded:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInEmbeddedState.scriptEmbedded.$S2\",nextEmbedded:\"@pop\"}],[/<\\/script/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}]],style:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.style\"}],[/type/,\"attribute.name\",\"@styleAfterType\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.text/css\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/(<\\/)(style\\s*)(>)/,[\"delimiter.html\",\"tag.html\",{token:\"delimiter.html\",next:\"@pop\"}]]],styleAfterType:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.styleAfterType\"}],[/=/,\"delimiter\",\"@styleAfterTypeEquals\"],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.text/css\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleAfterTypeEquals:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.styleAfterTypeEquals\"}],[/\"([^\"]*)\"/,{token:\"attribute.value\",switchTo:\"@styleWithCustomType.$1\"}],[/'([^']*)'/,{token:\"attribute.value\",switchTo:\"@styleWithCustomType.$1\"}],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.text/css\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleWithCustomType:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInSimpleState.styleWithCustomType.$S2\"}],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.$S2\",nextEmbedded:\"$S2\"}],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleEmbedded:[[/<\\?((php)|=)?/,{token:\"@rematch\",switchTo:\"@phpInEmbeddedState.styleEmbedded.$S2\",nextEmbedded:\"@pop\"}],[/<\\/style/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}]],phpInSimpleState:[[/<\\?((php)|=)?/,\"metatag.php\"],[/\\?>/,{token:\"metatag.php\",switchTo:\"@$S2.$S3\"}],{include:\"phpRoot\"}],phpInEmbeddedState:[[/<\\?((php)|=)?/,\"metatag.php\"],[/\\?>/,{token:\"metatag.php\",switchTo:\"@$S2.$S3\",nextEmbedded:\"$S3\"}],{include:\"phpRoot\"}],phpRoot:[[/[a-zA-Z_]\\w*/,{cases:{\"@phpKeywords\":{token:\"keyword.php\"},\"@phpCompileTimeConstants\":{token:\"constant.php\"},\"@default\":\"identifier.php\"}}],[/[$a-zA-Z_]\\w*/,{cases:{\"@phpPreDefinedVariables\":{token:\"variable.predefined.php\"},\"@default\":\"variable.php\"}}],[/[{}]/,\"delimiter.bracket.php\"],[/[\\[\\]]/,\"delimiter.array.php\"],[/[()]/,\"delimiter.parenthesis.php\"],[/[ \\t\\r\\n]+/],[/(#|\\/\\/)$/,\"comment.php\"],[/(#|\\/\\/)/,\"comment.php\",\"@phpLineComment\"],[/\\/\\*/,\"comment.php\",\"@phpComment\"],[/\"/,\"string.php\",\"@phpDoubleQuoteString\"],[/'/,\"string.php\",\"@phpSingleQuoteString\"],[/[\\+\\-\\*\\%\\&\\|\\^\\~\\!\\=\\<\\>\\/\\?\\;\\:\\.\\,\\@]/,\"delimiter.php\"],[/\\d*\\d+[eE]([\\-+]?\\d+)?/,\"number.float.php\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float.php\"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,\"number.hex.php\"],[/0[0-7']*[0-7]/,\"number.octal.php\"],[/0[bB][0-1']*[0-1]/,\"number.binary.php\"],[/\\d[\\d']*/,\"number.php\"],[/\\d/,\"number.php\"]],phpComment:[[/\\*\\//,\"comment.php\",\"@pop\"],[/[^*]+/,\"comment.php\"],[/./,\"comment.php\"]],phpLineComment:[[/\\?>/,{token:\"@rematch\",next:\"@pop\"}],[/.$/,\"comment.php\",\"@pop\"],[/[^?]+$/,\"comment.php\",\"@pop\"],[/[^?]+/,\"comment.php\"],[/./,\"comment.php\"]],phpDoubleQuoteString:[[/[^\\\\\"]+/,\"string.php\"],[/@escapes/,\"string.escape.php\"],[/\\\\./,\"string.escape.invalid.php\"],[/\"/,\"string.php\",\"@pop\"]],phpSingleQuoteString:[[/[^\\\\']+/,\"string.php\"],[/@escapes/,\"string.escape.php\"],[/\\\\./,\"string.escape.invalid.php\"],[/'/,\"string.php\",\"@pop\"]]},phpKeywords:[\"abstract\",\"and\",\"array\",\"as\",\"break\",\"callable\",\"case\",\"catch\",\"cfunction\",\"class\",\"clone\",\"const\",\"continue\",\"declare\",\"default\",\"do\",\"else\",\"elseif\",\"enddeclare\",\"endfor\",\"endforeach\",\"endif\",\"endswitch\",\"endwhile\",\"extends\",\"false\",\"final\",\"for\",\"foreach\",\"function\",\"global\",\"goto\",\"if\",\"implements\",\"interface\",\"instanceof\",\"insteadof\",\"namespace\",\"new\",\"null\",\"object\",\"old_function\",\"or\",\"private\",\"protected\",\"public\",\"resource\",\"static\",\"switch\",\"throw\",\"trait\",\"try\",\"true\",\"use\",\"var\",\"while\",\"xor\",\"die\",\"echo\",\"empty\",\"exit\",\"eval\",\"include\",\"include_once\",\"isset\",\"list\",\"require\",\"require_once\",\"return\",\"print\",\"unset\",\"yield\",\"__construct\"],phpCompileTimeConstants:[\"__CLASS__\",\"__DIR__\",\"__FILE__\",\"__LINE__\",\"__NAMESPACE__\",\"__METHOD__\",\"__FUNCTION__\",\"__TRAIT__\"],phpPreDefinedVariables:[\"$GLOBALS\",\"$_SERVER\",\"$_GET\",\"$_POST\",\"$_FILES\",\"$_REQUEST\",\"$_SESSION\",\"$_ENV\",\"$_COOKIE\",\"$php_errormsg\",\"$HTTP_RAW_POST_DATA\",\"$http_response_header\",\"$argc\",\"$argv\"],escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/};export{e as conf,t as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/CTRr51gU.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.background\":\"#f6f6f6\",\"activityBar.foreground\":\"#9E9E9E\",\"activityBarBadge.background\":\"#616161\",\"badge.background\":\"#E0E0E0\",\"badge.foreground\":\"#616161\",\"button.background\":\"#757575\",\"button.hoverBackground\":\"#616161\",\"debugIcon.breakpointCurrentStackframeForeground\":\"#1976D2\",\"debugIcon.breakpointDisabledForeground\":\"#848484\",\"debugIcon.breakpointForeground\":\"#D32F2F\",\"debugIcon.breakpointStackframeForeground\":\"#1976D2\",\"debugIcon.continueForeground\":\"#6f42c1\",\"debugIcon.disconnectForeground\":\"#6f42c1\",\"debugIcon.pauseForeground\":\"#6f42c1\",\"debugIcon.restartForeground\":\"#1976D2\",\"debugIcon.startForeground\":\"#1976D2\",\"debugIcon.stepBackForeground\":\"#6f42c1\",\"debugIcon.stepIntoForeground\":\"#6f42c1\",\"debugIcon.stepOutForeground\":\"#6f42c1\",\"debugIcon.stepOverForeground\":\"#6f42c1\",\"debugIcon.stopForeground\":\"#1976D2\",\"diffEditor.insertedTextBackground\":\"#b7e7a44b\",\"diffEditor.removedTextBackground\":\"#e597af52\",\"editor.background\":\"#ffffff\",\"editor.foreground\":\"#212121\",\"editor.lineHighlightBorder\":\"#f2f2f2\",\"editorBracketMatch.background\":\"#E7F3FF\",\"editorBracketMatch.border\":\"#c8e1ff\",\"editorGroupHeader.tabsBackground\":\"#f6f6f6\",\"editorGroupHeader.tabsBorder\":\"#fff\",\"editorIndentGuide.background\":\"#EEE\",\"editorLineNumber.activeForeground\":\"#757575\",\"editorLineNumber.foreground\":\"#CCC\",\"editorSuggestWidget.background\":\"#F3F3F3\",\"extensionButton.prominentBackground\":\"#000000AA\",\"extensionButton.prominentHoverBackground\":\"#000000BB\",\"focusBorder\":\"#D0D0D0\",\"foreground\":\"#757575\",\"gitDecoration.ignoredResourceForeground\":\"#AAAAAA\",\"input.border\":\"#E9E9E9\",\"inputOption.activeBackground\":\"#EDEDED\",\"list.activeSelectionBackground\":\"#EEE\",\"list.activeSelectionForeground\":\"#212121\",\"list.focusBackground\":\"#ddd\",\"list.focusForeground\":\"#212121\",\"list.highlightForeground\":\"#212121\",\"list.inactiveSelectionBackground\":\"#E0E0E0\",\"list.inactiveSelectionForeground\":\"#212121\",\"panel.background\":\"#fff\",\"panel.border\":\"#f4f4f4\",\"panelTitle.activeBorder\":\"#fff\",\"panelTitle.inactiveForeground\":\"#BDBDBD\",\"peekView.border\":\"#E0E0E0\",\"peekViewEditor.background\":\"#f8f8f8\",\"pickerGroup.foreground\":\"#000\",\"progressBar.background\":\"#000\",\"scrollbar.shadow\":\"#FFF\",\"sideBar.background\":\"#f6f6f6\",\"sideBar.border\":\"#f6f6f6\",\"sideBarSectionHeader.background\":\"#EEE\",\"sideBarTitle.foreground\":\"#999\",\"statusBar.background\":\"#f6f6f6\",\"statusBar.border\":\"#f6f6f6\",\"statusBar.debuggingBackground\":\"#f6f6f6\",\"statusBar.foreground\":\"#7E7E7E\",\"statusBar.noFolderBackground\":\"#f6f6f6\",\"statusBarItem.prominentBackground\":\"#0000001a\",\"statusBarItem.remoteBackground\":\"#f6f6f600\",\"statusBarItem.remoteForeground\":\"#7E7E7E\",\"symbolIcon.classForeground\":\"#dd8500\",\"symbolIcon.constructorForeground\":\"#6f42c1\",\"symbolIcon.enumeratorForeground\":\"#dd8500\",\"symbolIcon.enumeratorMemberForeground\":\"#1976D2\",\"symbolIcon.eventForeground\":\"#dd8500\",\"symbolIcon.fieldForeground\":\"#1976D2\",\"symbolIcon.functionForeground\":\"#6f42c1\",\"symbolIcon.interfaceForeground\":\"#1976D2\",\"symbolIcon.methodForeground\":\"#6f42c1\",\"symbolIcon.variableForeground\":\"#1976D2\",\"tab.activeBorder\":\"#FFF\",\"tab.activeForeground\":\"#424242\",\"tab.border\":\"#f6f6f6\",\"tab.inactiveBackground\":\"#f6f6f6\",\"tab.inactiveForeground\":\"#BDBDBD\",\"tab.unfocusedActiveBorder\":\"#fff\",\"terminal.ansiBlack\":\"#333\",\"terminal.ansiBlue\":\"#e0e0e0\",\"terminal.ansiBrightBlack\":\"#a1a1a1\",\"terminal.ansiBrightBlue\":\"#6871ff\",\"terminal.ansiBrightCyan\":\"#57d9ad\",\"terminal.ansiBrightGreen\":\"#a3d900\",\"terminal.ansiBrightMagenta\":\"#a37acc\",\"terminal.ansiBrightRed\":\"#d6656a\",\"terminal.ansiBrightWhite\":\"#7E7E7E\",\"terminal.ansiBrightYellow\":\"#e7c547\",\"terminal.ansiCyan\":\"#4dbf99\",\"terminal.ansiGreen\":\"#77cc00\",\"terminal.ansiMagenta\":\"#9966cc\",\"terminal.ansiRed\":\"#D32F2F\",\"terminal.ansiWhite\":\"#c7c7c7\",\"terminal.ansiYellow\":\"#f29718\",\"terminal.background\":\"#fff\",\"textLink.activeForeground\":\"#000\",\"textLink.foreground\":\"#000\",\"titleBar.activeBackground\":\"#f6f6f6\",\"titleBar.border\":\"#FFFFFF00\",\"titleBar.inactiveBackground\":\"#f6f6f6\"},\"displayName\":\"Min Light\",\"name\":\"min-light\",\"tokenColors\":[{\"settings\":{\"foreground\":\"#24292eff\"}},{\"scope\":[\"keyword.operator.accessor\",\"meta.group.braces.round.function.arguments\",\"meta.template.expression\",\"markup.fenced_code meta.embedded.block\"],\"settings\":{\"foreground\":\"#24292eff\"}},{\"scope\":\"emphasis\",\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":[\"strong\",\"markup.heading.markdown\",\"markup.bold.markdown\"],\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":[\"markup.italic.markdown\"],\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":\"meta.link.inline.markdown\",\"settings\":{\"fontStyle\":\"underline\",\"foreground\":\"#1976D2\"}},{\"scope\":[\"string\",\"markup.fenced_code\",\"markup.inline\"],\"settings\":{\"foreground\":\"#2b5581\"}},{\"scope\":[\"comment\",\"string.quoted.docstring.multi\"],\"settings\":{\"foreground\":\"#c2c3c5\"}},{\"scope\":[\"constant.numeric\",\"constant.language\",\"constant.other.placeholder\",\"constant.character.format.placeholder\",\"variable.language.this\",\"variable.other.object\",\"variable.other.class\",\"variable.other.constant\",\"meta.property-name\",\"meta.property-value\",\"support\"],\"settings\":{\"foreground\":\"#1976D2\"}},{\"scope\":[\"keyword\",\"storage.modifier\",\"storage.type\",\"storage.control.clojure\",\"entity.name.function.clojure\",\"entity.name.tag.yaml\",\"support.function.node\",\"support.type.property-name.json\",\"punctuation.separator.key-value\",\"punctuation.definition.template-expression\"],\"settings\":{\"foreground\":\"#D32F2F\"}},{\"scope\":\"variable.parameter.function\",\"settings\":{\"foreground\":\"#FF9800\"}},{\"scope\":[\"support.function\",\"entity.name.type\",\"entity.other.inherited-class\",\"meta.function-call\",\"meta.instance.constructor\",\"entity.other.attribute-name\",\"entity.name.function\",\"constant.keyword.clojure\"],\"settings\":{\"foreground\":\"#6f42c1\"}},{\"scope\":[\"entity.name.tag\",\"string.quoted\",\"string.regexp\",\"string.interpolated\",\"string.template\",\"string.unquoted.plain.out.yaml\",\"keyword.other.template\"],\"settings\":{\"foreground\":\"#22863a\"}},{\"scope\":\"token.info-token\",\"settings\":{\"foreground\":\"#316bcd\"}},{\"scope\":\"token.warn-token\",\"settings\":{\"foreground\":\"#cd9731\"}},{\"scope\":\"token.error-token\",\"settings\":{\"foreground\":\"#cd3131\"}},{\"scope\":\"token.debug-token\",\"settings\":{\"foreground\":\"#800080\"}},{\"scope\":[\"strong\",\"markup.heading.markdown\",\"markup.bold.markdown\"],\"settings\":{\"foreground\":\"#6f42c1\"}},{\"scope\":[\"punctuation.definition.arguments\",\"punctuation.definition.dict\",\"punctuation.separator\",\"meta.function-call.arguments\"],\"settings\":{\"foreground\":\"#212121\"}},{\"scope\":[\"markup.underline.link\",\"punctuation.definition.metadata.markdown\"],\"settings\":{\"foreground\":\"#22863a\"}},{\"scope\":[\"beginning.punctuation.definition.list.markdown\"],\"settings\":{\"foreground\":\"#6f42c1\"}},{\"scope\":[\"punctuation.definition.string.begin.markdown\",\"punctuation.definition.string.end.markdown\",\"string.other.link.title.markdown\",\"string.other.link.description.markdown\"],\"settings\":{\"foreground\":\"#d32f2f\"}}],\"type\":\"light\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CUKaiP0K.js",
    "content": "import{d as G,r as u,c as B,J as ce,C as x,i as s,f as m,x as n,D as $,g as y,j as t,v as de,t as J,G as T,E as N,a6 as ue,a4 as me,P as _e,B as pe,w as O,a7 as fe,a8 as F,h as D,e as ve,F as ye,O as he,k as ge,a9 as xe,aa as be,_ as we,ab as ke,I as Se,s as E}from\"./CU_MfyYc.js\";import{_ as Ce}from\"./CvhZxjKo.js\";import{_ as $e}from\"./Cw4FHd9N.js\";import{_ as Me}from\"./BuljS_lV.js\";import{_ as Ve}from\"./BfYIQCg8.js\";import{u as Ue}from\"./Cwg39VG_.js\";import\"./DP9I38t9.js\";import\"./DK27pemE.js\";const Te={class:\"bg-white dark:bg-gray-800/50 border border-gray-200 dark:border-gray-700 rounded-lg overflow-hidden shadow-sm\"},De={class:\"flex flex-col\"},Ne={class:\"text-sm font-medium text-gray-900 dark:text-white\"},je={class:\"text-xs text-gray-500 dark:text-gray-400\"},Re={class:\"flex flex-col\"},qe={class:\"text-sm text-gray-700 dark:text-gray-300\"},ze={class:\"text-xs text-gray-500 dark:text-gray-400\"},Pe={class:\"flex justify-center gap-1 text-lg\"},Fe={key:0},Ae={key:1},Be={key:2,class:\"text-gray-400 text-sm\"},Le={class:\"flex justify-center\"},He={class:\"text-sm\"},Oe={class:\"flex justify-center\"},Ee={class:\"text-sm text-gray-500 dark:text-gray-400\"},Ie={class:\"flex items-center justify-end gap-1\"},Ge=G({__name:\"MonteCarloSessionsTable\",props:{sessions:{}},emits:[\"notes\",\"load\",\"delete\"],setup(I){const S=I,M=u({column:\"updated_at\",direction:\"desc\"}),L=[{key:\"strategy\",label:\"Strategy\"},{key:\"session\",label:\"Session\"},{key:\"simulation_types\",label:\"Types\",class:\"text-center\"},{key:\"num_scenarios\",label:\"Scenarios\",class:\"text-center\"},{key:\"status\",label:\"Status\",class:\"text-center\"},{key:\"updated_at\",label:\"Date\",sortable:!0},{key:\"actions\",label:\"\",class:\"w-32 text-right\"}],_=B(()=>S.sessions.map(o=>{var h,C,g,d,b,a,p,U,w,k,f,v,R,q,z,P;return{id:o.id,title:o.title,strategy:(d=(g=(C=(h=o.state)==null?void 0:h.form)==null?void 0:C.routes)==null?void 0:g[0])==null?void 0:d.strategy,exchange:(a=(b=o.state)==null?void 0:b.form)==null?void 0:a.exchange,symbol:(k=(w=(U=(p=o.state)==null?void 0:p.form)==null?void 0:U.routes)==null?void 0:w[0])==null?void 0:k.symbol,timeframe:(q=(R=(v=(f=o.state)==null?void 0:f.form)==null?void 0:v.routes)==null?void 0:R[0])==null?void 0:q.timeframe,has_trades:o.has_trades,has_candles:o.has_candles,num_scenarios:(P=(z=o.state)==null?void 0:z.form)==null?void 0:P.num_scenarios,status:o.status,updated_at:ce.timestampToReadableDateTime(o.updated_at),rawSession:o}}));function V(o){switch(o==null?void 0:o.toLowerCase()){case\"running\":return\"blue\";case\"finished\":return\"green\";case\"stopped\":return\"red\";case\"terminated\":return\"yellow\";default:return\"gray\"}}return(o,h)=>{const C=$e,g=J,d=de,b=Me;return y(),x(\"div\",Te,[s(b,{sort:n(M),\"onUpdate:sort\":h[0]||(h[0]=a=>$(M)?M.value=a:null),rows:n(_),columns:L,class:\"w-full\",ui:{td:{base:\"whitespace-nowrap\"},th:{base:\"whitespace-nowrap\"}}},{\"strategy-data\":m(({row:a})=>[t(\"div\",De,[t(\"span\",Ne,T(a.title||a.strategy||\"Unknown Strategy\"),1),t(\"span\",je,T(a.exchange||\"Unknown Exchange\"),1)])]),\"session-data\":m(({row:a})=>[t(\"div\",Re,[t(\"span\",qe,T(a.symbol||\"N/A\"),1),t(\"span\",ze,T(a.timeframe||\"N/A\"),1)])]),\"simulation_types-data\":m(({row:a})=>[t(\"div\",Pe,[a.has_trades?(y(),x(\"span\",Fe,\"🔀\")):N(\"\",!0),a.has_candles?(y(),x(\"span\",Ae,\"📈\")):N(\"\",!0),!a.has_trades&&!a.has_candles?(y(),x(\"span\",Be,\"-\")):N(\"\",!0)])]),\"num_scenarios-data\":m(({row:a})=>[t(\"div\",Le,[t(\"span\",He,T(a.num_scenarios),1)])]),\"status-data\":m(({row:a})=>[t(\"div\",Oe,[s(C,{color:V(a.status),label:a.status,variant:\"soft\",size:\"xs\"},null,8,[\"color\",\"label\"])])]),\"updated_at-data\":m(({row:a})=>[t(\"span\",Ee,T(a.updated_at),1)]),\"actions-data\":m(({row:a})=>[t(\"div\",Ie,[s(d,{text:\"Add Note\"},{default:m(()=>[s(g,{size:\"xs\",variant:\"ghost\",color:\"gray\",icon:\"i-heroicons-pencil-square\",onClick:p=>o.$emit(\"notes\",a.rawSession)},null,8,[\"onClick\"])]),_:2},1024),s(d,{text:\"Load Session\"},{default:m(()=>[s(g,{size:\"xs\",variant:\"ghost\",color:\"gray\",icon:\"i-heroicons-arrow-right\",onClick:p=>o.$emit(\"load\",a.id)},null,8,[\"onClick\"])]),_:2},1024),s(d,{text:\"Delete\"},{default:m(()=>[s(g,{size:\"xs\",variant:\"ghost\",color:\"red\",icon:\"i-heroicons-trash\",onClick:p=>o.$emit(\"delete\",a.id)},null,8,[\"onClick\"])]),_:2},1024)])]),_:1},8,[\"sort\",\"rows\"])])}}}),Je={class:\"container mx-auto px-4 pt-16 pb-6 max-w-7xl\"},We={class:\"mb-6 flex flex-col gap-4 md:flex-row md:items-center md:justify-between\"},Ke={class:\"flex items-center gap-3\"},Qe={class:\"flex flex-col gap-3 sm:flex-row sm:items-center\"},Xe={key:0,class:\"space-y-4\"},Ye={class:\"bg-white dark:bg-gray-800 shadow rounded-lg overflow-hidden\"},Ze={class:\"divide-y divide-gray-200 dark:divide-gray-700\"},et={class:\"hidden md:grid md:grid-cols-12 gap-4 items-center\"},tt={class:\"col-span-3\"},st={class:\"col-span-2\"},at={class:\"col-span-2 text-center\"},lt={class:\"col-span-2 text-center\"},ot={class:\"col-span-2\"},nt={class:\"col-span-1 flex justify-end gap-2\"},it={class:\"md:hidden space-y-3\"},rt={class:\"flex items-start justify-between\"},ct={class:\"flex-1\"},dt={class:\"flex items-center justify-between\"},ut={class:\"flex items-center justify-between\"},mt={class:\"flex gap-1\"},_t={key:1,class:\"space-y-4\"},pt={key:0,class:\"flex justify-center\"},ft={key:2,class:\"bg-white dark:bg-gray-800 shadow rounded-lg p-12 text-center\"},vt={class:\"p-6\"},yt={class:\"mb-6\"},ht={class:\"flex justify-end gap-3\"},A=50,Mt=G({__name:\"history\",setup(I){Ue({title:\"Monte Carlo History - Jesse\"});const S=ue(),M=me(),L=_e(),_=u([]),V=u(!1),o=u(null),h=u(!1),C=u(!1),g=u(!0),d=u(0),b=u(!1),a=u(null),p=u(!1),U=u(!1),w=u(30),k=B({get:()=>S.query.title||\"\",set:l=>{const e={...S.query};l?e.title=l:delete e.title,M.push({query:e})}}),f=B({get:()=>S.query.status||\"all\",set:l=>{const e={...S.query};l===\"all\"?delete e.status:e.status=l,M.push({query:e})}}),v=B({get:()=>S.query.dateRange||\"all_time\",set:l=>{const e={...S.query};l===\"all_time\"?delete e.dateRange:e.dateRange=l,M.push({query:e})}}),R=[{label:\"All Statuses\",value:\"all\"},{label:\"Running\",value:\"running\"},{label:\"Finished\",value:\"finished\"},{label:\"Stopped\",value:\"stopped\"},{label:\"Terminated\",value:\"terminated\"}],q=[{label:\"All Time\",value:\"all_time\"},{label:\"Last 7 Days\",value:\"7_days\"},{label:\"Last 30 Days\",value:\"30_days\"},{label:\"Last 90 Days\",value:\"90_days\"}],z=[{label:\"1 day\",value:1},{label:\"7 days\",value:7},{label:\"30 days\",value:30},{label:\"3 months\",value:90},{label:\"6 months\",value:180},{label:\"1 year\",value:365},{label:\"2 years\",value:730},{label:\"All existing sessions\",value:-1}];pe(()=>{setTimeout(()=>{j()},20)});const P=fe(()=>{d.value=0,j()},300);O(k,()=>{P()}),O(f,()=>{d.value=0,j()}),O(v,()=>{d.value=0,j()});async function j(){var l;h.value=!0;try{const r=(await F(\"/monte-carlo/sessions\",{limit:A,offset:0,title_search:k.value||null,status_filter:f.value===\"all\"?null:f.value,date_filter:v.value===\"all_time\"?null:v.value},!0)).data.value;_.value=(r==null?void 0:r.sessions)||[],d.value=_.value.length,g.value=((l=r==null?void 0:r.sessions)==null?void 0:l.length)===A}catch(e){D(e)}finally{h.value=!1}}async function W(){C.value=!0;try{const e=(await F(\"/monte-carlo/sessions\",{limit:A,offset:d.value,title_search:k.value||null,status_filter:f.value===\"all\"?null:f.value,date_filter:v.value===\"all_time\"?null:v.value},!0)).data.value,r=(e==null?void 0:e.sessions)||[];_.value=[..._.value,...r],d.value+=r.length,g.value=r.length===A}catch(l){D(l)}finally{C.value=!1}}async function K(l){await Se(`/monte-carlo/${l}`)}function Q(l){o.value=l,V.value=!0}async function X(){o.value&&(await Y(o.value),_.value=_.value.filter(l=>l.id!==o.value),d.value-=1),V.value=!1,o.value=null}async function Y(l){if(l===L.form.id){E(\"error\",\"Cannot delete the current session.\");return}try{const e=await F(`/monte-carlo/sessions/${l}/remove`,{},!0);if(e.error.value){D(e.error.value);return}E(\"success\",\"Session deleted successfully\")}catch(e){D(e)}}function Z(l){a.value=l,b.value=!0}async function ee(){U.value=!0;try{const l=await F(\"/monte-carlo/purge-sessions\",{days_old:w.value===-1?null:w.value},!0);if(l.error.value){D(l.error.value);return}const e=l.data.value;E(\"success\",`Successfully purged ${e.deleted_count} session(s)`),p.value=!1,d.value=0,await j()}catch(l){D(l)}finally{U.value=!1}}function te(){p.value=!1,w.value=30}function se(l){if(a.value){const e=_.value.find(r=>r.id===a.value.id);e&&(e.title=l.title,e.description=l.description,a.value.title=l.title,a.value.description=l.description)}}return(l,e)=>{const r=J,ae=ge,H=xe,i=Ce,le=Ge,oe=be,ne=Ve,ie=ke,re=we;return y(),x(\"div\",null,[t(\"div\",Je,[t(\"div\",We,[t(\"div\",Ke,[e[9]||(e[9]=t(\"h1\",{class:\"text-xl md:text-2xl font-bold text-gray-900 dark:text-white\"},\" Monte Carlo History \",-1)),s(r,{icon:\"i-heroicons-trash\",color:\"red\",variant:\"soft\",size:\"sm\",label:\"Purge\",onClick:e[0]||(e[0]=c=>p.value=!0)})]),t(\"div\",Qe,[s(ae,{modelValue:n(k),\"onUpdate:modelValue\":e[1]||(e[1]=c=>$(k)?k.value=c:null),placeholder:\"Search by title...\",icon:\"i-heroicons-magnifying-glass\",size:\"sm\",class:\"w-full sm:w-64\"},null,8,[\"modelValue\"]),s(H,{modelValue:n(f),\"onUpdate:modelValue\":e[2]||(e[2]=c=>$(f)?f.value=c:null),options:R,size:\"sm\",class:\"w-full sm:w-40\"},null,8,[\"modelValue\"]),s(H,{modelValue:n(v),\"onUpdate:modelValue\":e[3]||(e[3]=c=>$(v)?v.value=c:null),options:q,size:\"sm\",class:\"w-full sm:w-40\"},null,8,[\"modelValue\"])])]),n(h)?(y(),x(\"div\",Xe,[t(\"div\",Ye,[t(\"div\",Ze,[(y(),x(ye,null,he(5,c=>t(\"div\",{key:c,class:\"p-4\"},[t(\"div\",et,[t(\"div\",tt,[s(i,{class:\"h-4 w-full mb-2\"}),s(i,{class:\"h-3 w-2/3\"})]),t(\"div\",st,[s(i,{class:\"h-4 w-full mb-2\"}),s(i,{class:\"h-3 w-2/3\"})]),t(\"div\",at,[s(i,{class:\"h-4 w-16 mx-auto\"})]),t(\"div\",lt,[s(i,{class:\"h-6 w-20 mx-auto\"})]),t(\"div\",ot,[s(i,{class:\"h-4 w-full\"})]),t(\"div\",nt,[s(i,{class:\"h-8 w-8\"}),s(i,{class:\"h-8 w-8\"}),s(i,{class:\"h-8 w-8\"})])]),t(\"div\",it,[t(\"div\",rt,[t(\"div\",ct,[s(i,{class:\"h-4 w-3/4 mb-2\"}),s(i,{class:\"h-3 w-1/2\"})]),s(i,{class:\"h-6 w-16 ml-2\"})]),t(\"div\",dt,[s(i,{class:\"h-4 w-24\"}),s(i,{class:\"h-4 w-16\"})]),t(\"div\",ut,[s(i,{class:\"h-3 w-32\"}),t(\"div\",mt,[s(i,{class:\"h-8 w-8\"}),s(i,{class:\"h-8 w-8\"}),s(i,{class:\"h-8 w-8\"})])])])])),64))])])])):n(_).length?(y(),x(\"div\",_t,[s(le,{sessions:n(_),onNotes:Z,onLoad:K,onDelete:Q},null,8,[\"sessions\"]),n(g)?(y(),x(\"div\",pt,[s(r,{label:\"Load More\",variant:\"soft\",color:\"gray\",loading:n(C),onClick:W},null,8,[\"loading\"])])):N(\"\",!0)])):!n(h)&&n(_).length===0?(y(),x(\"div\",ft,e[10]||(e[10]=[t(\"div\",{class:\"text-gray-400 dark:text-gray-500\"},[t(\"i\",{class:\"i-heroicons-clock h-12 w-12 mx-auto mb-4\"}),t(\"p\",{class:\"text-lg\"},\"No Monte Carlo history found\"),t(\"p\",{class:\"text-sm mt-2\"},\"Run a Monte Carlo simulation or change filters to see items in your history\")],-1)]))):N(\"\",!0),s(oe,{modelValue:n(V),\"onUpdate:modelValue\":e[4]||(e[4]=c=>$(V)?V.value=c:null),title:\"Delete Monte Carlo Session\",description:\"Are you sure you want to delete this Monte Carlo session? This action cannot be undone.\",type:\"info\"},{default:m(()=>[s(r,{variant:\"solid\",color:\"red\",block:\"\",class:\"sm:w-auto\",label:\"Delete\",onClick:X})]),_:1},8,[\"modelValue\"]),n(a)?(y(),ve(ne,{key:3,modelValue:n(b),\"onUpdate:modelValue\":e[5]||(e[5]=c=>$(b)?b.value=c:null),\"session-id\":n(a).id,\"initial-title\":n(a).title,\"initial-description\":n(a).description,\"initial-strategy-codes\":n(a).strategy_codes,onSaved:e[6]||(e[6]=c=>se({title:\"\",description:\"\"}))},null,8,[\"modelValue\",\"session-id\",\"initial-title\",\"initial-description\",\"initial-strategy-codes\"])):N(\"\",!0),s(re,{modelValue:n(p),\"onUpdate:modelValue\":e[8]||(e[8]=c=>$(p)?p.value=c:null)},{default:m(()=>[t(\"div\",vt,[e[13]||(e[13]=t(\"h3\",{class:\"text-lg font-semibold text-gray-900 dark:text-white mb-4\"},\" Purge Monte Carlo Sessions \",-1)),t(\"div\",yt,[e[11]||(e[11]=t(\"div\",{class:\"bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-4 mb-4\"},[t(\"div\",{class:\"flex items-start gap-3\"},[t(\"i\",{class:\"i-heroicons-exclamation-triangle text-red-600 dark:text-red-400 text-xl flex-shrink-0 mt-0.5\"}),t(\"div\",{class:\"text-sm text-red-800 dark:text-red-200\"},[t(\"p\",{class:\"font-semibold mb-1\"},\" Warning: This action is permanent! \"),t(\"p\",null,\"Deleted sessions cannot be recovered. Please select carefully.\")])])],-1)),s(ie,{label:\"Delete sessions older than:\",class:\"mb-4\"},{default:m(()=>[s(H,{modelValue:n(w),\"onUpdate:modelValue\":e[7]||(e[7]=c=>$(w)?w.value=c:null),options:z,size:\"md\"},null,8,[\"modelValue\"])]),_:1}),e[12]||(e[12]=t(\"p\",{class:\"text-sm text-gray-600 dark:text-gray-400\"},\" This will permanently delete all Monte Carlo sessions that match your criteria. \",-1))]),t(\"div\",ht,[s(r,{color:\"gray\",variant:\"ghost\",label:\"Cancel\",onClick:te}),s(r,{color:\"red\",label:\"Purge Sessions\",loading:n(U),onClick:ee},null,8,[\"loading\"])])])]),_:1},8,[\"modelValue\"])])])}}});export{Mt as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CU_MfyYc.js",
    "content": "const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[\"./E1yjnBiT.js\",\"./DMpbkAFi.js\",\"./C6794tGI.js\",\"./BacktestTabs.CTcEQ1jl.css\",\"./D35nYK_C.js\",\"./BW0IIeyO.js\",\"./CircleProgressbar.Bqs-YaMH.css\",\"./D-1_drer.js\",\"./DZb6Dd70.js\",\"./C4bX54si.js\",\"./CqvT4tPC.js\",\"./CYcD1Eih.js\",\"./s0YP2YF7.js\",\"./9VOnL4Iz.js\",\"./CvhZxjKo.js\",\"./Cw4FHd9N.js\",\"./wLBHnxd4.js\",\"./DK27pemE.js\",\"./BS9OwPT8.js\",\"./Cwg39VG_.js\",\"./X3S5orim.js\",\"./CP8nbYEq.js\",\"./DyLYGjHh.js\",\"./BuljS_lV.js\",\"./DP9I38t9.js\",\"./Progress.CWZn3LuJ.css\",\"./DGRk4fvy.js\",\"./rKxcFsZi.js\",\"./Bad53t6V.js\",\"./CRzUWN8h.js\",\"./rUbGlJbN.js\",\"./BJ5jdafP.js\",\"./Dr_JbmT0.js\",\"./LiveTabs.15UVtLVQ.css\",\"./Bt5ljtES.js\",\"./RFJ54-KY.js\",\"./Bk9BmIv8.js\",\"./DnWQm4Tq.js\",\"./_FEXNRsZ.js\",\"./BwHcMc3Y.js\",\"./DPg46dy1.js\",\"./O-0jUIAi.js\",\"./CvkRSmvA.js\",\"./zIqOaAtZ.js\",\"./qXRMwz9A.js\",\"./DMFWKIsW.js\",\"./BfYIQCg8.js\",\"./CViTd9PT.js\",\"./_id_.PO5SUJPO.css\",\"./CUKaiP0K.js\",\"./dUAF8qyF.js\",\"./index.dzGxyoTu.css\",\"./Du3IqvzK.js\",\"./BMl_rFTw.js\",\"./CD20-hSi.js\",\"./_id_.CZ9YoXDN.css\",\"./DmtRXgke.js\",\"./BFk92hFI.js\",\"./BaOuBgqt.js\",\"./BKENxkRn.js\",\"./StrategiesSidebar.BLGw1dq7.css\",\"./B1vp6HhI.js\",\"./index.lQPmb1y9.css\",\"./DaasEFj5.js\",\"./IconCSS.RN4HczVp.css\",\"./DXXGBMMv.js\",\"./DmDlXweU.js\",\"./DQ5Sj-RJ.js\",\"./error-404.DZraUJun.css\",\"./CfBo882q.js\",\"./error-500.XmAVHPl_.css\"])))=>i.map(i=>d[i]);\nvar Rye=Object.defineProperty;var Mye=(n,e,t)=>e in n?Rye(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var np=(n,e,t)=>Mye(n,typeof e!=\"symbol\"?e+\"\":e,t);/**\n* @vue/shared v3.5.12\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**//*! #__NO_SIDE_EFFECTS__ */function Pye(n){const e=Object.create(null);for(const t of n.split(\",\"))e[t]=1;return t=>t in e}const Oye={},Fye=()=>{},Bye=Object.assign,Wye=(n,e)=>{const t=n.indexOf(e);t>-1&&n.splice(t,1)},Hye=Object.prototype.hasOwnProperty,QN=(n,e)=>Hye.call(n,e),dg=Array.isArray,KS=n=>BR(n)===\"[object Map]\",Vye=n=>BR(n)===\"[object Set]\",Ux=n=>typeof n==\"function\",zye=n=>typeof n==\"string\",Yk=n=>typeof n==\"symbol\",kw=n=>n!==null&&typeof n==\"object\",$ye=Object.prototype.toString,BR=n=>$ye.call(n),Uye=n=>BR(n).slice(8,-1),jye=n=>BR(n)===\"[object Object]\",jH=n=>zye(n)&&n!==\"NaN\"&&n[0]!==\"-\"&&\"\"+parseInt(n,10)===n,am=(n,e)=>!Object.is(n,e),Kye=(n,e,t,i=!1)=>{Object.defineProperty(n,e,{configurable:!0,enumerable:!1,writable:i,value:t})};/**\n* @vue/reactivity v3.5.12\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/let ya;class Zne{constructor(e=!1){this.detached=e,this._active=!0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=ya,!e&&ya&&(this.index=(ya.scopes||(ya.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,t;if(this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].pause();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let e,t;if(this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].resume();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].resume()}}run(e){if(this._active){const t=ya;try{return ya=this,e()}finally{ya=t}}}on(){ya=this}off(){ya=this.parent}stop(e){if(this._active){let t,i;for(t=0,i=this.effects.length;t<i;t++)this.effects[t].stop();for(t=0,i=this.cleanups.length;t<i;t++)this.cleanups[t]();if(this.scopes)for(t=0,i=this.scopes.length;t<i;t++)this.scopes[t].stop(!0);if(!this.detached&&this.parent&&!e){const s=this.parent.scopes.pop();s&&s!==this&&(this.parent.scopes[this.index]=s,s.index=this.index)}this.parent=void 0,this._active=!1}}}function KH(n){return new Zne(n)}function r_(){return ya}function vC(n,e=!1){ya&&ya.cleanups.push(n)}let ys;const K4=new WeakSet;class Yne{constructor(e){this.fn=e,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,ya&&ya.active&&ya.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,K4.has(this)&&(K4.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||Qne(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,pG(this),Jne(this);const e=ys,t=Ud;ys=this,Ud=!0;try{return this.fn()}finally{ese(this),ys=e,Ud=t,this.flags&=-3}}stop(){if(this.flags&1){for(let e=this.deps;e;e=e.nextDep)ZH(e);this.deps=this.depsTail=void 0,pG(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?K4.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){e8(this)&&this.run()}get dirty(){return e8(this)}}let Xne=0,qS,GS;function Qne(n,e=!1){if(n.flags|=8,e){n.next=GS,GS=n;return}n.next=qS,qS=n}function qH(){Xne++}function GH(){if(--Xne>0)return;if(GS){let e=GS;for(GS=void 0;e;){const t=e.next;e.next=void 0,e.flags&=-9,e=t}}let n;for(;qS;){let e=qS;for(qS=void 0;e;){const t=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(i){n||(n=i)}e=t}}if(n)throw n}function Jne(n){for(let e=n.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function ese(n){let e,t=n.depsTail,i=t;for(;i;){const s=i.prevDep;i.version===-1?(i===t&&(t=s),ZH(i),qye(i)):e=i,i.dep.activeLink=i.prevActiveLink,i.prevActiveLink=void 0,i=s}n.deps=e,n.depsTail=t}function e8(n){for(let e=n.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(tse(e.dep.computed)||e.dep.version!==e.version))return!0;return!!n._dirty}function tse(n){if(n.flags&4&&!(n.flags&16)||(n.flags&=-17,n.globalVersion===jx))return;n.globalVersion=jx;const e=n.dep;if(n.flags|=2,e.version>0&&!n.isSSR&&n.deps&&!e8(n)){n.flags&=-3;return}const t=ys,i=Ud;ys=n,Ud=!0;try{Jne(n);const s=n.fn(n._value);(e.version===0||am(s,n._value))&&(n._value=s,e.version++)}catch(s){throw e.version++,s}finally{ys=t,Ud=i,ese(n),n.flags&=-3}}function ZH(n,e=!1){const{dep:t,prevSub:i,nextSub:s}=n;if(i&&(i.nextSub=s,n.prevSub=void 0),s&&(s.prevSub=i,n.nextSub=void 0),t.subs===n&&(t.subs=i,!i&&t.computed)){t.computed.flags&=-5;for(let o=t.computed.deps;o;o=o.nextDep)ZH(o,!0)}!e&&!--t.sc&&t.map&&t.map.delete(t.key)}function qye(n){const{prevDep:e,nextDep:t}=n;e&&(e.nextDep=t,n.prevDep=void 0),t&&(t.prevDep=e,n.nextDep=void 0)}let Ud=!0;const ise=[];function a_(){ise.push(Ud),Ud=!1}function l_(){const n=ise.pop();Ud=n===void 0?!0:n}function pG(n){const{cleanup:e}=n;if(n.cleanup=void 0,e){const t=ys;ys=void 0;try{e()}finally{ys=t}}}let jx=0,Gye=class{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}};class WR{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0}track(e){if(!ys||!Ud||ys===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==ys)t=this.activeLink=new Gye(ys,this),ys.deps?(t.prevDep=ys.depsTail,ys.depsTail.nextDep=t,ys.depsTail=t):ys.deps=ys.depsTail=t,nse(t);else if(t.version===-1&&(t.version=this.version,t.nextDep)){const i=t.nextDep;i.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=i),t.prevDep=ys.depsTail,t.nextDep=void 0,ys.depsTail.nextDep=t,ys.depsTail=t,ys.deps===t&&(ys.deps=i)}return t}trigger(e){this.version++,jx++,this.notify(e)}notify(e){qH();try{for(let t=this.subs;t;t=t.prevSub)t.sub.notify()&&t.sub.dep.notify()}finally{GH()}}}function nse(n){if(n.dep.sc++,n.sub.flags&4){const e=n.dep.computed;if(e&&!n.dep.subs){e.flags|=20;for(let i=e.deps;i;i=i.nextDep)nse(i)}const t=n.dep.subs;t!==n&&(n.prevSub=t,t&&(t.nextSub=n)),n.dep.subs=n}}const JN=new WeakMap,Bv=Symbol(\"\"),t8=Symbol(\"\"),Kx=Symbol(\"\");function ea(n,e,t){if(Ud&&ys){let i=JN.get(n);i||JN.set(n,i=new Map);let s=i.get(t);s||(i.set(t,s=new WR),s.map=i,s.key=t),s.track()}}function Ff(n,e,t,i,s,o){const r=JN.get(n);if(!r){jx++;return}const a=l=>{l&&l.trigger()};if(qH(),e===\"clear\")r.forEach(a);else{const l=dg(n),c=l&&jH(t);if(l&&t===\"length\"){const d=Number(i);r.forEach((u,h)=>{(h===\"length\"||h===Kx||!Yk(h)&&h>=d)&&a(u)})}else switch((t!==void 0||r.has(void 0))&&a(r.get(t)),c&&a(r.get(Kx)),e){case\"add\":l?c&&a(r.get(\"length\")):(a(r.get(Bv)),KS(n)&&a(r.get(t8)));break;case\"delete\":l||(a(r.get(Bv)),KS(n)&&a(r.get(t8)));break;case\"set\":KS(n)&&a(r.get(Bv));break}}GH()}function Zye(n,e){const t=JN.get(n);return t&&t.get(e)}function Db(n){const e=zi(n);return e===n?e:(ea(e,\"iterate\",Kx),Xc(n)?e:e.map(ta))}function HR(n){return ea(n=zi(n),\"iterate\",Kx),n}const Yye={__proto__:null,[Symbol.iterator](){return q4(this,Symbol.iterator,ta)},concat(...n){return Db(this).concat(...n.map(e=>dg(e)?Db(e):e))},entries(){return q4(this,\"entries\",n=>(n[1]=ta(n[1]),n))},every(n,e){return af(this,\"every\",n,e,void 0,arguments)},filter(n,e){return af(this,\"filter\",n,e,t=>t.map(ta),arguments)},find(n,e){return af(this,\"find\",n,e,ta,arguments)},findIndex(n,e){return af(this,\"findIndex\",n,e,void 0,arguments)},findLast(n,e){return af(this,\"findLast\",n,e,ta,arguments)},findLastIndex(n,e){return af(this,\"findLastIndex\",n,e,void 0,arguments)},forEach(n,e){return af(this,\"forEach\",n,e,void 0,arguments)},includes(...n){return G4(this,\"includes\",n)},indexOf(...n){return G4(this,\"indexOf\",n)},join(n){return Db(this).join(n)},lastIndexOf(...n){return G4(this,\"lastIndexOf\",n)},map(n,e){return af(this,\"map\",n,e,void 0,arguments)},pop(){return yy(this,\"pop\")},push(...n){return yy(this,\"push\",n)},reduce(n,...e){return mG(this,\"reduce\",n,e)},reduceRight(n,...e){return mG(this,\"reduceRight\",n,e)},shift(){return yy(this,\"shift\")},some(n,e){return af(this,\"some\",n,e,void 0,arguments)},splice(...n){return yy(this,\"splice\",n)},toReversed(){return Db(this).toReversed()},toSorted(n){return Db(this).toSorted(n)},toSpliced(...n){return Db(this).toSpliced(...n)},unshift(...n){return yy(this,\"unshift\",n)},values(){return q4(this,\"values\",ta)}};function q4(n,e,t){const i=HR(n),s=i[e]();return i!==n&&!Xc(n)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.value&&(o.value=t(o.value)),o}),s}const Xye=Array.prototype;function af(n,e,t,i,s,o){const r=HR(n),a=r!==n&&!Xc(n),l=r[e];if(l!==Xye[e]){const u=l.apply(n,o);return a?ta(u):u}let c=t;r!==n&&(a?c=function(u,h){return t.call(this,ta(u),h,n)}:t.length>2&&(c=function(u,h){return t.call(this,u,h,n)}));const d=l.call(r,c,i);return a&&s?s(d):d}function mG(n,e,t,i){const s=HR(n);let o=t;return s!==n&&(Xc(n)?t.length>3&&(o=function(r,a,l){return t.call(this,r,a,l,n)}):o=function(r,a,l){return t.call(this,r,ta(a),l,n)}),s[e](o,...i)}function G4(n,e,t){const i=zi(n);ea(i,\"iterate\",Kx);const s=i[e](...t);return(s===-1||s===!1)&&JH(t[0])?(t[0]=zi(t[0]),i[e](...t)):s}function yy(n,e,t=[]){a_(),qH();const i=zi(n)[e].apply(n,t);return GH(),l_(),i}const Qye=Pye(\"__proto__,__v_isRef,__isVue\"),sse=new Set(Object.getOwnPropertyNames(Symbol).filter(n=>n!==\"arguments\"&&n!==\"caller\").map(n=>Symbol[n]).filter(Yk));function Jye(n){Yk(n)||(n=String(n));const e=zi(this);return ea(e,\"has\",n),e.hasOwnProperty(n)}class ose{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,i){const s=this._isReadonly,o=this._isShallow;if(t===\"__v_isReactive\")return!s;if(t===\"__v_isReadonly\")return s;if(t===\"__v_isShallow\")return o;if(t===\"__v_raw\")return i===(s?o?cSe:cse:o?lse:ase).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(i)?e:void 0;const r=dg(e);if(!s){let l;if(r&&(l=Yye[t]))return l;if(t===\"hasOwnProperty\")return Jye}const a=Reflect.get(e,t,Cn(e)?e:i);return(Yk(t)?sse.has(t):Qye(t))||(s||ea(e,\"get\",t),o)?a:Cn(a)?r&&jH(t)?a:a.value:kw(a)?s?XH(a):Ba(a):a}}class rse extends ose{constructor(e=!1){super(!1,e)}set(e,t,i,s){let o=e[t];if(!this._isShallow){const l=Dm(o);if(!Xc(i)&&!Dm(i)&&(o=zi(o),i=zi(i)),!dg(e)&&Cn(o)&&!Cn(i))return l?!1:(o.value=i,!0)}const r=dg(e)&&jH(t)?Number(t)<e.length:QN(e,t),a=Reflect.set(e,t,i,Cn(e)?e:s);return e===zi(s)&&(r?am(i,o)&&Ff(e,\"set\",t,i):Ff(e,\"add\",t,i)),a}deleteProperty(e,t){const i=QN(e,t);e[t];const s=Reflect.deleteProperty(e,t);return s&&i&&Ff(e,\"delete\",t,void 0),s}has(e,t){const i=Reflect.has(e,t);return(!Yk(t)||!sse.has(t))&&ea(e,\"has\",t),i}ownKeys(e){return ea(e,\"iterate\",dg(e)?\"length\":Bv),Reflect.ownKeys(e)}}class eSe extends ose{constructor(e=!1){super(!0,e)}set(e,t){return!0}deleteProperty(e,t){return!0}}const tSe=new rse,iSe=new eSe,nSe=new rse(!0);const i8=n=>n,oE=n=>Reflect.getPrototypeOf(n);function sSe(n,e,t){return function(...i){const s=this.__v_raw,o=zi(s),r=KS(o),a=n===\"entries\"||n===Symbol.iterator&&r,l=n===\"keys\"&&r,c=s[n](...i),d=t?i8:e?n8:ta;return!e&&ea(o,\"iterate\",l?t8:Bv),{next(){const{value:u,done:h}=c.next();return h?{value:u,done:h}:{value:a?[d(u[0]),d(u[1])]:d(u),done:h}},[Symbol.iterator](){return this}}}}function rE(n){return function(...e){return n===\"delete\"?!1:n===\"clear\"?void 0:this}}function oSe(n,e){const t={get(s){const o=this.__v_raw,r=zi(o),a=zi(s);n||(am(s,a)&&ea(r,\"get\",s),ea(r,\"get\",a));const{has:l}=oE(r),c=e?i8:n?n8:ta;if(l.call(r,s))return c(o.get(s));if(l.call(r,a))return c(o.get(a));o!==r&&o.get(s)},get size(){const s=this.__v_raw;return!n&&ea(zi(s),\"iterate\",Bv),Reflect.get(s,\"size\",s)},has(s){const o=this.__v_raw,r=zi(o),a=zi(s);return n||(am(s,a)&&ea(r,\"has\",s),ea(r,\"has\",a)),s===a?o.has(s):o.has(s)||o.has(a)},forEach(s,o){const r=this,a=r.__v_raw,l=zi(a),c=e?i8:n?n8:ta;return!n&&ea(l,\"iterate\",Bv),a.forEach((d,u)=>s.call(o,c(d),c(u),r))}};return Bye(t,n?{add:rE(\"add\"),set:rE(\"set\"),delete:rE(\"delete\"),clear:rE(\"clear\")}:{add(s){!e&&!Xc(s)&&!Dm(s)&&(s=zi(s));const o=zi(this);return oE(o).has.call(o,s)||(o.add(s),Ff(o,\"add\",s,s)),this},set(s,o){!e&&!Xc(o)&&!Dm(o)&&(o=zi(o));const r=zi(this),{has:a,get:l}=oE(r);let c=a.call(r,s);c||(s=zi(s),c=a.call(r,s));const d=l.call(r,s);return r.set(s,o),c?am(o,d)&&Ff(r,\"set\",s,o):Ff(r,\"add\",s,o),this},delete(s){const o=zi(this),{has:r,get:a}=oE(o);let l=r.call(o,s);l||(s=zi(s),l=r.call(o,s)),a&&a.call(o,s);const c=o.delete(s);return l&&Ff(o,\"delete\",s,void 0),c},clear(){const s=zi(this),o=s.size!==0,r=s.clear();return o&&Ff(s,\"clear\",void 0,void 0),r}}),[\"keys\",\"values\",\"entries\",Symbol.iterator].forEach(s=>{t[s]=sSe(s,n,e)}),t}function YH(n,e){const t=oSe(n,e);return(i,s,o)=>s===\"__v_isReactive\"?!n:s===\"__v_isReadonly\"?n:s===\"__v_raw\"?i:Reflect.get(QN(t,s)&&s in i?t:i,s,o)}const rSe={get:YH(!1,!1)},aSe={get:YH(!1,!0)},lSe={get:YH(!0,!1)};const ase=new WeakMap,lse=new WeakMap,cse=new WeakMap,cSe=new WeakMap;function dSe(n){switch(n){case\"Object\":case\"Array\":return 1;case\"Map\":case\"Set\":case\"WeakMap\":case\"WeakSet\":return 2;default:return 0}}function uSe(n){return n.__v_skip||!Object.isExtensible(n)?0:dSe(Uye(n))}function Ba(n){return Dm(n)?n:QH(n,!1,tSe,rSe,ase)}function Kf(n){return QH(n,!1,nSe,aSe,lse)}function XH(n){return QH(n,!0,iSe,lSe,cse)}function QH(n,e,t,i,s){if(!kw(n)||n.__v_raw&&!(e&&n.__v_isReactive))return n;const o=s.get(n);if(o)return o;const r=uSe(n);if(r===0)return n;const a=new Proxy(n,r===2?i:t);return s.set(n,a),a}function ug(n){return Dm(n)?ug(n.__v_raw):!!(n&&n.__v_isReactive)}function Dm(n){return!!(n&&n.__v_isReadonly)}function Xc(n){return!!(n&&n.__v_isShallow)}function JH(n){return n?!!n.__v_raw:!1}function zi(n){const e=n&&n.__v_raw;return e?zi(e):n}function eV(n){return!QN(n,\"__v_skip\")&&Object.isExtensible(n)&&Kye(n,\"__v_skip\",!0),n}const ta=n=>kw(n)?Ba(n):n,n8=n=>kw(n)?XH(n):n;function Cn(n){return n?n.__v_isRef===!0:!1}function Ue(n){return dse(n,!1)}function Sg(n){return dse(n,!0)}function dse(n,e){return Cn(n)?n:new hSe(n,e)}class hSe{constructor(e,t){this.dep=new WR,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:zi(e),this._value=t?e:ta(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){const t=this._rawValue,i=this.__v_isShallow||Xc(e)||Dm(e);e=i?e:zi(e),am(e,t)&&(this._rawValue=e,this._value=i?e:ta(e),this.dep.trigger())}}function Imt(n){n.dep&&n.dep.trigger()}function j(n){return Cn(n)?n.value:n}function Z4(n){return Ux(n)?n():j(n)}const fSe={get:(n,e,t)=>e===\"__v_raw\"?n:j(Reflect.get(n,e,t)),set:(n,e,t,i)=>{const s=n[e];return Cn(s)&&!Cn(t)?(s.value=t,!0):Reflect.set(n,e,t,i)}};function use(n){return ug(n)?n:new Proxy(n,fSe)}class gSe{constructor(e){this.__v_isRef=!0,this._value=void 0;const t=this.dep=new WR,{get:i,set:s}=e(t.track.bind(t),t.trigger.bind(t));this._get=i,this._set=s}get value(){return this._value=this._get()}set value(e){this._set(e)}}function hse(n){return new gSe(n)}function pSe(n){const e=dg(n)?new Array(n.length):{};for(const t in n)e[t]=fse(n,t);return e}class mSe{constructor(e,t,i){this._object=e,this._key=t,this._defaultValue=i,this.__v_isRef=!0,this._value=void 0}get value(){const e=this._object[this._key];return this._value=e===void 0?this._defaultValue:e}set value(e){this._object[this._key]=e}get dep(){return Zye(zi(this._object),this._key)}}class _Se{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Ps(n,e,t){return Cn(n)?n:Ux(n)?new _Se(n):kw(n)&&arguments.length>1?fse(n,e,t):Ue(n)}function fse(n,e,t){const i=n[e];return Cn(i)?i:new mSe(n,e,t)}class vSe{constructor(e,t,i){this.fn=e,this.setter=t,this._value=void 0,this.dep=new WR(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=jx-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=i}notify(){if(this.flags|=16,!(this.flags&8)&&ys!==this)return Qne(this,!0),!0}get value(){const e=this.dep.track();return tse(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function bSe(n,e,t=!1){let i,s;return Ux(n)?i=n:(i=n.get,s=n.set),new vSe(i,s,t)}const aE={},e2=new WeakMap;let ev;function CSe(n,e=!1,t=ev){if(t){let i=e2.get(t);i||e2.set(t,i=[]),i.push(n)}}function wSe(n,e,t=Oye){const{immediate:i,deep:s,once:o,scheduler:r,augmentJob:a,call:l}=t,c=S=>s?S:Xc(S)||s===!1||s===0?Bf(S,1):Bf(S);let d,u,h,f,g=!1,p=!1;if(Cn(n)?(u=()=>n.value,g=Xc(n)):ug(n)?(u=()=>c(n),g=!0):dg(n)?(p=!0,g=n.some(S=>ug(S)||Xc(S)),u=()=>n.map(S=>{if(Cn(S))return S.value;if(ug(S))return c(S);if(Ux(S))return l?l(S,2):S()})):Ux(n)?e?u=l?()=>l(n,2):n:u=()=>{if(h){a_();try{h()}finally{l_()}}const S=ev;ev=d;try{return l?l(n,3,[f]):n(f)}finally{ev=S}}:u=Fye,e&&s){const S=u,x=s===!0?1/0:s;u=()=>Bf(S(),x)}const _=r_(),b=()=>{d.stop(),_&&Wye(_.effects,d)};if(o&&e){const S=e;e=(...x)=>{S(...x),b()}}let w=p?new Array(n.length).fill(aE):aE;const y=S=>{if(!(!(d.flags&1)||!d.dirty&&!S))if(e){const x=d.run();if(s||g||(p?x.some((k,D)=>am(k,w[D])):am(x,w))){h&&h();const k=ev;ev=d;try{const D=[x,w===aE?void 0:p&&w[0]===aE?[]:w,f];l?l(e,3,D):e(...D),w=x}finally{ev=k}}}else d.run()};return a&&a(y),d=new Yne(u),d.scheduler=r?()=>r(y,!1):y,f=S=>CSe(S,!1,d),h=d.onStop=()=>{const S=e2.get(d);if(S){if(l)l(S,4);else for(const x of S)x();e2.delete(d)}},e?i?y(!0):w=d.run():r?r(y.bind(null,!0),!0):d.run(),b.pause=d.pause.bind(d),b.resume=d.resume.bind(d),b.stop=b,b}function Bf(n,e=1/0,t){if(e<=0||!kw(n)||n.__v_skip||(t=t||new Set,t.has(n)))return n;if(t.add(n),e--,Cn(n))Bf(n.value,e,t);else if(dg(n))for(let i=0;i<n.length;i++)Bf(n[i],e,t);else if(Vye(n)||KS(n))n.forEach(i=>{Bf(i,e,t)});else if(jye(n)){for(const i in n)Bf(n[i],e,t);for(const i of Object.getOwnPropertySymbols(n))Object.prototype.propertyIsEnumerable.call(n,i)&&Bf(n[i],e,t)}return n}/**\n* @vue/shared v3.5.12\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**//*! #__NO_SIDE_EFFECTS__ */function ySe(n){const e=Object.create(null);for(const t of n.split(\",\"))e[t]=1;return t=>t in e}const Gn={},F1=[],hg=()=>{},SSe=()=>!1,VR=n=>n.charCodeAt(0)===111&&n.charCodeAt(1)===110&&(n.charCodeAt(2)>122||n.charCodeAt(2)<97),gse=n=>n.startsWith(\"onUpdate:\"),Ra=Object.assign,pse=(n,e)=>{const t=n.indexOf(e);t>-1&&n.splice(t,1)},xSe=Object.prototype.hasOwnProperty,Ss=(n,e)=>xSe.call(n,e),Zi=Array.isArray,LSe=n=>zR(n)===\"[object Map]\",kSe=n=>zR(n)===\"[object Set]\",DSe=n=>zR(n)===\"[object RegExp]\",Fi=n=>typeof n==\"function\",Yo=n=>typeof n==\"string\",tV=n=>typeof n==\"symbol\",Xo=n=>n!==null&&typeof n==\"object\",iV=n=>(Xo(n)||Fi(n))&&Fi(n.then)&&Fi(n.catch),mse=Object.prototype.toString,zR=n=>mse.call(n),ISe=n=>zR(n)===\"[object Object]\",B1=ySe(\",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"),$R=n=>{const e=Object.create(null);return t=>e[t]||(e[t]=n(t))},ESe=/-(\\w)/g,id=$R(n=>n.replace(ESe,(e,t)=>t?t.toUpperCase():\"\")),TSe=/\\B([A-Z])/g,Dw=$R(n=>n.replace(TSe,\"-$1\").toLowerCase()),nV=$R(n=>n.charAt(0).toUpperCase()+n.slice(1)),Y4=$R(n=>n?`on${nV(n)}`:\"\"),Ib=(n,e)=>!Object.is(n,e),ZS=(n,...e)=>{for(let t=0;t<n.length;t++)n[t](...e)},NSe=(n,e,t,i=!1)=>{Object.defineProperty(n,e,{configurable:!0,enumerable:!1,writable:i,value:t})},ASe=n=>{const e=parseFloat(n);return isNaN(e)?n:e},RSe=n=>{const e=Yo(n)?Number(n):NaN;return isNaN(e)?n:e};let _G;const UR=()=>_G||(_G=typeof globalThis<\"u\"?globalThis:typeof self<\"u\"?self:typeof window<\"u\"?window:typeof global<\"u\"?global:{});function Im(n){if(Zi(n)){const e={};for(let t=0;t<n.length;t++){const i=n[t],s=Yo(i)?FSe(i):Im(i);if(s)for(const o in s)e[o]=s[o]}return e}else if(Yo(n)||Xo(n))return n}const MSe=/;(?![^(]*\\))/g,PSe=/:([^]+)/,OSe=/\\/\\*[^]*?\\*\\//g;function FSe(n){const e={};return n.replace(OSe,\"\").split(MSe).forEach(t=>{if(t){const i=t.split(PSe);i.length>1&&(e[i[0].trim()]=i[1].trim())}}),e}function st(n){let e=\"\";if(Yo(n))e=n;else if(Zi(n))for(let t=0;t<n.length;t++){const i=st(n[t]);i&&(e+=i+\" \")}else if(Xo(n))for(const t in n)n[t]&&(e+=t+\" \");return e.trim()}function Ef(n){if(!n)return null;let{class:e,style:t}=n;return e&&!Yo(e)&&(n.class=st(e)),t&&(n.style=Im(t)),n}const _se=n=>!!(n&&n.__v_isRef===!0),Ni=n=>Yo(n)?n:n==null?\"\":Zi(n)||Xo(n)&&(n.toString===mse||!Fi(n.toString))?_se(n)?Ni(n.value):JSON.stringify(n,vse,2):String(n),vse=(n,e)=>_se(e)?vse(n,e.value):LSe(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((t,[i,s],o)=>(t[X4(i,o)+\" =>\"]=s,t),{})}:kSe(e)?{[`Set(${e.size})`]:[...e.values()].map(t=>X4(t))}:tV(e)?X4(e):Xo(e)&&!Zi(e)&&!ISe(e)?String(e):e,X4=(n,e=\"\")=>{var t;return tV(n)?`Symbol(${(t=n.description)!=null?t:e})`:n};/**\n* @vue/runtime-core v3.5.12\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/function Xk(n,e,t,i){try{return i?n(...i):n()}catch(s){Iw(s,e,t)}}function Jd(n,e,t,i){if(Fi(n)){const s=Xk(n,e,t,i);return s&&iV(s)&&s.catch(o=>{Iw(o,e,t)}),s}if(Zi(n)){const s=[];for(let o=0;o<n.length;o++)s.push(Jd(n[o],e,t,i));return s}}function Iw(n,e,t,i=!0){const s=e?e.vnode:null,{errorHandler:o,throwUnhandledErrorInProduction:r}=e&&e.appContext.config||Gn;if(e){let a=e.parent;const l=e.proxy,c=`https://vuejs.org/error-reference/#runtime-${t}`;for(;a;){const d=a.ec;if(d){for(let u=0;u<d.length;u++)if(d[u](n,l,c)===!1)return}a=a.parent}if(o){a_(),Xk(o,null,10,[n,l,c]),l_();return}}BSe(n,t,s,i,r)}function BSe(n,e,t,i=!0,s=!1){if(s)throw n;console.error(n)}const La=[];let Hu=-1;const W1=[];let Sp=null,e1=0;const bse=Promise.resolve();let t2=null;function Go(n){const e=t2||bse;return n?e.then(this?n.bind(this):n):e}function WSe(n){let e=Hu+1,t=La.length;for(;e<t;){const i=e+t>>>1,s=La[i],o=qx(s);o<n||o===n&&s.flags&2?e=i+1:t=i}return e}function sV(n){if(!(n.flags&1)){const e=qx(n),t=La[La.length-1];!t||!(n.flags&2)&&e>=qx(t)?La.push(n):La.splice(WSe(e),0,n),n.flags|=1,Cse()}}function Cse(){t2||(t2=bse.then(wse))}function s8(n){Zi(n)?W1.push(...n):Sp&&n.id===-1?Sp.splice(e1+1,0,n):n.flags&1||(W1.push(n),n.flags|=1),Cse()}function vG(n,e,t=Hu+1){for(;t<La.length;t++){const i=La[t];if(i&&i.flags&2){if(n&&i.id!==n.uid)continue;La.splice(t,1),t--,i.flags&4&&(i.flags&=-2),i(),i.flags&4||(i.flags&=-2)}}}function i2(n){if(W1.length){const e=[...new Set(W1)].sort((t,i)=>qx(t)-qx(i));if(W1.length=0,Sp){Sp.push(...e);return}for(Sp=e,e1=0;e1<Sp.length;e1++){const t=Sp[e1];t.flags&4&&(t.flags&=-2),t.flags&8||t(),t.flags&=-2}Sp=null,e1=0}}const qx=n=>n.id==null?n.flags&2?-1:1/0:n.id;function wse(n){try{for(Hu=0;Hu<La.length;Hu++){const e=La[Hu];e&&!(e.flags&8)&&(e.flags&4&&(e.flags&=-2),Xk(e,e.i,e.i?15:14),e.flags&4||(e.flags&=-2))}}finally{for(;Hu<La.length;Hu++){const e=La[Hu];e&&(e.flags&=-2)}Hu=-1,La.length=0,i2(),t2=null,(La.length||W1.length)&&wse()}}let qo=null,yse=null;function n2(n){const e=qo;return qo=n,yse=n&&n.type.__scopeId||null,e}function Be(n,e=qo,t){if(!e||n._n)return n;const i=(...s)=>{i._d&&NG(-1);const o=n2(e);let r;try{r=n(...s)}finally{n2(o),i._d&&NG(1)}return r};return i._n=!0,i._c=!0,i._d=!0,i}function HSe(n,e){if(qo===null)return n;const t=qR(qo),i=n.dirs||(n.dirs=[]);for(let s=0;s<e.length;s++){let[o,r,a,l=Gn]=e[s];o&&(Fi(o)&&(o={mounted:o,updated:o}),o.deep&&Bf(r),i.push({dir:o,instance:t,value:r,oldValue:void 0,arg:a,modifiers:l}))}return n}function $u(n,e,t,i){const s=n.dirs,o=e&&e.dirs;for(let r=0;r<s.length;r++){const a=s[r];o&&(a.oldValue=o[r].value);let l=a.dir[i];l&&(a_(),Jd(l,t,8,[n.el,a,n,e]),l_())}}const Sse=Symbol(\"_vte\"),xse=n=>n.__isTeleport,YS=n=>n&&(n.disabled||n.disabled===\"\"),VSe=n=>n&&(n.defer||n.defer===\"\"),bG=n=>typeof SVGElement<\"u\"&&n instanceof SVGElement,CG=n=>typeof MathMLElement==\"function\"&&n instanceof MathMLElement,o8=(n,e)=>{const t=n&&n.to;return Yo(t)?e?e(t):null:t},zSe={name:\"Teleport\",__isTeleport:!0,process(n,e,t,i,s,o,r,a,l,c){const{mc:d,pc:u,pbc:h,o:{insert:f,querySelector:g,createText:p,createComment:_}}=c,b=YS(e.props);let{shapeFlag:w,children:y,dynamicChildren:S}=e;if(n==null){const x=e.el=p(\"\"),k=e.anchor=p(\"\");f(x,t,i),f(k,t,i);const D=(N,P)=>{w&16&&(s&&s.isCE&&(s.ce._teleportTarget=N),d(y,N,P,s,o,r,a,l))},I=()=>{const N=e.target=o8(e.props,g),P=kse(N,e,p,f);N&&(r!==\"svg\"&&bG(N)?r=\"svg\":r!==\"mathml\"&&CG(N)&&(r=\"mathml\"),b||(D(N,P),tN(e,!1)))};b&&(D(t,k),tN(e,!0)),VSe(e.props)?ar(I,o):I()}else{e.el=n.el,e.targetStart=n.targetStart;const x=e.anchor=n.anchor,k=e.target=n.target,D=e.targetAnchor=n.targetAnchor,I=YS(n.props),N=I?t:k,P=I?x:D;if(r===\"svg\"||bG(k)?r=\"svg\":(r===\"mathml\"||CG(k))&&(r=\"mathml\"),S?(h(n.dynamicChildren,S,N,s,o,r,a),dV(n,e,!0)):l||u(n,e,N,P,s,o,r,a,!1),b)I?e.props&&n.props&&e.props.to!==n.props.to&&(e.props.to=n.props.to):lE(e,t,x,c,1);else if((e.props&&e.props.to)!==(n.props&&n.props.to)){const O=e.target=o8(e.props,g);O&&lE(e,O,null,c,0)}else I&&lE(e,k,D,c,1);tN(e,b)}},remove(n,e,t,{um:i,o:{remove:s}},o){const{shapeFlag:r,children:a,anchor:l,targetStart:c,targetAnchor:d,target:u,props:h}=n;if(u&&(s(c),s(d)),o&&s(l),r&16){const f=o||!YS(h);for(let g=0;g<a.length;g++){const p=a[g];i(p,e,t,f,!!p.dynamicChildren)}}},move:lE,hydrate:$Se};function lE(n,e,t,{o:{insert:i},m:s},o=2){o===0&&i(n.targetAnchor,e,t);const{el:r,anchor:a,shapeFlag:l,children:c,props:d}=n,u=o===2;if(u&&i(r,e,t),(!u||YS(d))&&l&16)for(let h=0;h<c.length;h++)s(c[h],e,t,2);u&&i(a,e,t)}function $Se(n,e,t,i,s,o,{o:{nextSibling:r,parentNode:a,querySelector:l,insert:c,createText:d}},u){const h=e.target=o8(e.props,l);if(h){const f=YS(e.props),g=h._lpa||h.firstChild;if(e.shapeFlag&16)if(f)e.anchor=u(r(n),e,a(n),t,i,s,o),e.targetStart=g,e.targetAnchor=g&&r(g);else{e.anchor=r(n);let p=g;for(;p;){if(p&&p.nodeType===8){if(p.data===\"teleport start anchor\")e.targetStart=p;else if(p.data===\"teleport anchor\"){e.targetAnchor=p,h._lpa=e.targetAnchor&&r(e.targetAnchor);break}}p=r(p)}e.targetAnchor||kse(h,e,d,c),u(g&&r(g),e,h,t,i,s,o)}tN(e,f)}return e.anchor&&r(e.anchor)}const Lse=zSe;function tN(n,e){const t=n.ctx;if(t&&t.ut){let i,s;for(e?(i=n.el,s=n.anchor):(i=n.targetStart,s=n.targetAnchor);i&&i!==s;)i.nodeType===1&&i.setAttribute(\"data-v-owner\",t.uid),i=i.nextSibling;t.ut()}}function kse(n,e,t,i){const s=e.targetStart=t(\"\"),o=e.targetAnchor=t(\"\");return s[Sse]=o,n&&(i(s,n),i(o,n)),o}const xp=Symbol(\"_leaveCb\"),cE=Symbol(\"_enterCb\");function USe(){const n={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return cn(()=>{n.isMounted=!0}),Jk(()=>{n.isUnmounting=!0}),n}const Ac=[Function,Array],Dse={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Ac,onEnter:Ac,onAfterEnter:Ac,onEnterCancelled:Ac,onBeforeLeave:Ac,onLeave:Ac,onAfterLeave:Ac,onLeaveCancelled:Ac,onBeforeAppear:Ac,onAppear:Ac,onAfterAppear:Ac,onAppearCancelled:Ac},Ise=n=>{const e=n.subTree;return e.component?Ise(e.component):e},jSe={name:\"BaseTransition\",props:Dse,setup(n,{slots:e}){const t=pc(),i=USe();return()=>{const s=e.default&&Nse(e.default(),!0);if(!s||!s.length)return;const o=Ese(s),r=zi(n),{mode:a}=r;if(i.isLeaving)return Q4(o);const l=wG(o);if(!l)return Q4(o);let c=r8(l,r,i,t,h=>c=h);l.type!==Uo&&bC(l,c);const d=t.subTree,u=d&&wG(d);if(u&&u.type!==Uo&&!Od(l,u)&&Ise(t).type!==Uo){const h=r8(u,r,i,t);if(bC(u,h),a===\"out-in\"&&l.type!==Uo)return i.isLeaving=!0,h.afterLeave=()=>{i.isLeaving=!1,t.job.flags&8||t.update(),delete h.afterLeave},Q4(o);a===\"in-out\"&&l.type!==Uo&&(h.delayLeave=(f,g,p)=>{const _=Tse(i,u);_[String(u.key)]=u,f[xp]=()=>{g(),f[xp]=void 0,delete c.delayedLeave},c.delayedLeave=p})}return o}}};function Ese(n){let e=n[0];if(n.length>1){for(const t of n)if(t.type!==Uo){e=t;break}}return e}const KSe=jSe;function Tse(n,e){const{leavingVNodes:t}=n;let i=t.get(e.type);return i||(i=Object.create(null),t.set(e.type,i)),i}function r8(n,e,t,i,s){const{appear:o,mode:r,persisted:a=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:d,onEnterCancelled:u,onBeforeLeave:h,onLeave:f,onAfterLeave:g,onLeaveCancelled:p,onBeforeAppear:_,onAppear:b,onAfterAppear:w,onAppearCancelled:y}=e,S=String(n.key),x=Tse(t,n),k=(N,P)=>{N&&Jd(N,i,9,P)},D=(N,P)=>{const O=P[1];k(N,P),Zi(N)?N.every(M=>M.length<=1)&&O():N.length<=1&&O()},I={mode:r,persisted:a,beforeEnter(N){let P=l;if(!t.isMounted)if(o)P=_||l;else return;N[xp]&&N[xp](!0);const O=x[S];O&&Od(n,O)&&O.el[xp]&&O.el[xp](),k(P,[N])},enter(N){let P=c,O=d,M=u;if(!t.isMounted)if(o)P=b||c,O=w||d,M=y||u;else return;let z=!1;const K=N[cE]=ae=>{z||(z=!0,ae?k(M,[N]):k(O,[N]),I.delayedLeave&&I.delayedLeave(),N[cE]=void 0)};P?D(P,[N,K]):K()},leave(N,P){const O=String(n.key);if(N[cE]&&N[cE](!0),t.isUnmounting)return P();k(h,[N]);let M=!1;const z=N[xp]=K=>{M||(M=!0,P(),K?k(p,[N]):k(g,[N]),N[xp]=void 0,x[O]===n&&delete x[O])};x[O]=n,f?D(f,[N,z]):z()},clone(N){const P=r8(N,e,t,i,s);return s&&s(P),P}};return I}function Q4(n){if(Qk(n))return n=nd(n),n.children=null,n}function wG(n){if(!Qk(n))return xse(n.type)&&n.children?Ese(n.children):n;const{shapeFlag:e,children:t}=n;if(t){if(e&16)return t[0];if(e&32&&Fi(t.default))return t.default()}}function bC(n,e){n.shapeFlag&6&&n.component?(n.transition=e,bC(n.component.subTree,e)):n.shapeFlag&128?(n.ssContent.transition=e.clone(n.ssContent),n.ssFallback.transition=e.clone(n.ssFallback)):n.transition=e}function Nse(n,e=!1,t){let i=[],s=0;for(let o=0;o<n.length;o++){let r=n[o];const a=t==null?r.key:String(t)+String(r.key!=null?r.key:o);r.type===Bi?(r.patchFlag&128&&s++,i=i.concat(Nse(r.children,e,a))):(e||r.type!==Uo)&&i.push(a!=null?nd(r,{key:a}):r)}if(s>1)for(let o=0;o<i.length;o++)i[o].patchFlag=-2;return i}/*! #__NO_SIDE_EFFECTS__ */function kt(n,e){return Fi(n)?Ra({name:n.name},e,{setup:n}):n}function j0(){const n=pc();return n?(n.appContext.config.idPrefix||\"v\")+\"-\"+n.ids[0]+n.ids[1]++:\"\"}function oV(n){n.ids=[n.ids[0]+n.ids[2]+++\"-\",0,0]}function s2(n,e,t,i,s=!1){if(Zi(n)){n.forEach((g,p)=>s2(g,e&&(Zi(e)?e[p]:e),t,i,s));return}if(lm(i)&&!s)return;const o=i.shapeFlag&4?qR(i.component):i.el,r=s?null:o,{i:a,r:l}=n,c=e&&e.r,d=a.refs===Gn?a.refs={}:a.refs,u=a.setupState,h=zi(u),f=u===Gn?()=>!1:g=>Ss(h,g);if(c!=null&&c!==l&&(Yo(c)?(d[c]=null,f(c)&&(u[c]=null)):Cn(c)&&(c.value=null)),Fi(l))Xk(l,a,12,[r,d]);else{const g=Yo(l),p=Cn(l);if(g||p){const _=()=>{if(n.f){const b=g?f(l)?u[l]:d[l]:l.value;s?Zi(b)&&pse(b,o):Zi(b)?b.includes(o)||b.push(o):g?(d[l]=[o],f(l)&&(u[l]=d[l])):(l.value=[o],n.k&&(d[n.k]=l.value))}else g?(d[l]=r,f(l)&&(u[l]=r)):p&&(l.value=r,n.k&&(d[n.k]=r))};r?(_.id=-1,ar(_,t)):_()}}}let yG=!1;const Eb=()=>{yG||(console.error(\"Hydration completed but contains mismatches.\"),yG=!0)},qSe=n=>n.namespaceURI.includes(\"svg\")&&n.tagName!==\"foreignObject\",GSe=n=>n.namespaceURI.includes(\"MathML\"),dE=n=>{if(n.nodeType===1){if(qSe(n))return\"svg\";if(GSe(n))return\"mathml\"}},c1=n=>n.nodeType===8;function ZSe(n){const{mt:e,p:t,o:{patchProp:i,createText:s,nextSibling:o,parentNode:r,remove:a,insert:l,createComment:c}}=n,d=(y,S)=>{if(!S.hasChildNodes()){t(null,y,S),i2(),S._vnode=y;return}u(S.firstChild,y,null,null,null),i2(),S._vnode=y},u=(y,S,x,k,D,I=!1)=>{I=I||!!S.dynamicChildren;const N=c1(y)&&y.data===\"[\",P=()=>p(y,S,x,k,D,N),{type:O,ref:M,shapeFlag:z,patchFlag:K}=S;let ae=y.nodeType;S.el=y,K===-2&&(I=!1,S.dynamicChildren=null);let se=null;switch(O){case Hv:ae!==3?S.children===\"\"?(l(S.el=s(\"\"),r(y),y),se=y):se=P():(y.data!==S.children&&(Eb(),y.data=S.children),se=o(y));break;case Uo:w(y)?(se=o(y),b(S.el=y.content.firstChild,y,x)):ae!==8||N?se=P():se=o(y);break;case V1:if(N&&(y=o(y),ae=y.nodeType),ae===1||ae===3){se=y;const he=!S.children.length;for(let me=0;me<S.staticCount;me++)he&&(S.children+=se.nodeType===1?se.outerHTML:se.data),me===S.staticCount-1&&(S.anchor=se),se=o(se);return N?o(se):se}else P();break;case Bi:N?se=g(y,S,x,k,D,I):se=P();break;default:if(z&1)(ae!==1||S.type.toLowerCase()!==y.tagName.toLowerCase())&&!w(y)?se=P():se=h(y,S,x,k,D,I);else if(z&6){S.slotScopeIds=D;const he=r(y);if(N?se=_(y):c1(y)&&y.data===\"teleport start\"?se=_(y,y.data,\"teleport end\"):se=o(y),e(S,he,null,x,k,dE(he),I),lm(S)){let me;N?(me=te(Bi),me.anchor=se?se.previousSibling:he.lastChild):me=y.nodeType===3?at(\"\"):te(\"div\"),me.el=y,S.component.subTree=me}}else z&64?ae!==8?se=P():se=S.type.hydrate(y,S,x,k,D,I,n,f):z&128&&(se=S.type.hydrate(y,S,x,k,dE(r(y)),D,I,n,u))}return M!=null&&s2(M,null,k,S),se},h=(y,S,x,k,D,I)=>{I=I||!!S.dynamicChildren;const{type:N,props:P,patchFlag:O,shapeFlag:M,dirs:z,transition:K}=S,ae=N===\"input\"||N===\"option\";if(ae||O!==-1){z&&$u(S,null,x,\"created\");let se=!1;if(w(y)){se=Jse(null,K)&&x&&x.vnode.props&&x.vnode.props.appear;const me=y.content.firstChild;se&&K.beforeEnter(me),b(me,y,x),S.el=y=me}if(M&16&&!(P&&(P.innerHTML||P.textContent))){let me=f(y.firstChild,S,y,x,k,D,I);for(;me;){uE(y,1)||Eb();const De=me;me=me.nextSibling,a(De)}}else if(M&8){let me=S.children;me[0]===`\n`&&(y.tagName===\"PRE\"||y.tagName===\"TEXTAREA\")&&(me=me.slice(1)),y.textContent!==me&&(uE(y,0)||Eb(),y.textContent=S.children)}if(P){if(ae||!I||O&48){const me=y.tagName.includes(\"-\");for(const De in P)(ae&&(De.endsWith(\"value\")||De===\"indeterminate\")||VR(De)&&!B1(De)||De[0]===\".\"||me)&&i(y,De,null,P[De],void 0,x)}else if(P.onClick)i(y,\"onClick\",null,P.onClick,void 0,x);else if(O&4&&ug(P.style))for(const me in P.style)P.style[me]}let he;(he=P&&P.onVnodeBeforeMount)&&el(he,x,S),z&&$u(S,null,x,\"beforeMount\"),((he=P&&P.onVnodeMounted)||z||se)&&ooe(()=>{he&&el(he,x,S),se&&K.enter(y),z&&$u(S,null,x,\"mounted\")},k)}return y.nextSibling},f=(y,S,x,k,D,I,N)=>{N=N||!!S.dynamicChildren;const P=S.children,O=P.length;for(let M=0;M<O;M++){const z=N?P[M]:P[M]=$l(P[M]),K=z.type===Hv;y?(K&&!N&&M+1<O&&$l(P[M+1]).type===Hv&&(l(s(y.data.slice(z.children.length)),x,o(y)),y.data=z.children),y=u(y,z,k,D,I,N)):K&&!z.children?l(z.el=s(\"\"),x):(uE(x,1)||Eb(),t(null,z,x,null,k,D,dE(x),I))}return y},g=(y,S,x,k,D,I)=>{const{slotScopeIds:N}=S;N&&(D=D?D.concat(N):N);const P=r(y),O=f(o(y),S,P,x,k,D,I);return O&&c1(O)&&O.data===\"]\"?o(S.anchor=O):(Eb(),l(S.anchor=c(\"]\"),P,O),O)},p=(y,S,x,k,D,I)=>{if(uE(y.parentElement,1)||Eb(),S.el=null,I){const O=_(y);for(;;){const M=o(y);if(M&&M!==O)a(M);else break}}const N=o(y),P=r(y);return a(y),t(null,S,P,N,x,k,dE(P),D),N},_=(y,S=\"[\",x=\"]\")=>{let k=0;for(;y;)if(y=o(y),y&&c1(y)&&(y.data===S&&k++,y.data===x)){if(k===0)return o(y);k--}return y},b=(y,S,x)=>{const k=S.parentNode;k&&k.replaceChild(y,S);let D=x;for(;D;)D.vnode.el===S&&(D.vnode.el=D.subTree.el=y),D=D.parent},w=y=>y.nodeType===1&&y.tagName===\"TEMPLATE\";return[d,u]}const SG=\"data-allow-mismatch\",YSe={0:\"text\",1:\"children\",2:\"class\",3:\"style\",4:\"attribute\"};function uE(n,e){if(e===0||e===1)for(;n&&!n.hasAttribute(SG);)n=n.parentElement;const t=n&&n.getAttribute(SG);if(t==null)return!1;if(t===\"\")return!0;{const i=t.split(\",\");return e===0&&i.includes(\"children\")?!0:t.split(\",\").includes(YSe[e])}}UR().requestIdleCallback;UR().cancelIdleCallback;function XSe(n,e){if(c1(n)&&n.data===\"[\"){let t=1,i=n.nextSibling;for(;i;){if(i.nodeType===1){if(e(i)===!1)break}else if(c1(i))if(i.data===\"]\"){if(--t===0)break}else i.data===\"[\"&&t++;i=i.nextSibling}}else e(n)}const lm=n=>!!n.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function o2(n){Fi(n)&&(n={loader:n});const{loader:e,loadingComponent:t,errorComponent:i,delay:s=200,hydrate:o,timeout:r,suspensible:a=!0,onError:l}=n;let c=null,d,u=0;const h=()=>(u++,c=null,f()),f=()=>{let g;return c||(g=c=e().catch(p=>{if(p=p instanceof Error?p:new Error(String(p)),l)return new Promise((_,b)=>{l(p,()=>_(h()),()=>b(p),u+1)});throw p}).then(p=>g!==c&&c?c:(p&&(p.__esModule||p[Symbol.toStringTag]===\"Module\")&&(p=p.default),d=p,p)))};return kt({name:\"AsyncComponentWrapper\",__asyncLoader:f,__asyncHydrate(g,p,_){const b=o?()=>{const w=o(_,y=>XSe(g,y));w&&(p.bum||(p.bum=[])).push(w)}:_;d?b():f().then(()=>!p.isUnmounted&&b())},get __asyncResolved(){return d},setup(){const g=jo;if(oV(g),d)return()=>J4(d,g);const p=y=>{c=null,Iw(y,g,13,!i)};if(a&&g.suspense||wC)return f().then(y=>()=>J4(y,g)).catch(y=>(p(y),()=>i?te(i,{error:y}):null));const _=Ue(!1),b=Ue(),w=Ue(!!s);return s&&setTimeout(()=>{w.value=!1},s),r!=null&&setTimeout(()=>{if(!_.value&&!b.value){const y=new Error(`Async component timed out after ${r}ms.`);p(y),b.value=y}},r),f().then(()=>{_.value=!0,g.parent&&Qk(g.parent.vnode)&&g.parent.update()}).catch(y=>{p(y),b.value=y}),()=>{if(_.value&&d)return J4(d,g);if(b.value&&i)return te(i,{error:b.value});if(t&&!w.value)return te(t)}}})}function J4(n,e){const{ref:t,props:i,children:s,ce:o}=e.vnode,r=te(n,i,s);return r.ref=t,r.ce=o,delete e.vnode.ce,r}const Qk=n=>n.type.__isKeepAlive,QSe={name:\"KeepAlive\",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(n,{slots:e}){const t=pc(),i=t.ctx;if(!i.renderer)return()=>{const w=e.default&&e.default();return w&&w.length===1?w[0]:w};const s=new Map,o=new Set;let r=null;const a=t.suspense,{renderer:{p:l,m:c,um:d,o:{createElement:u}}}=i,h=u(\"div\");i.activate=(w,y,S,x,k)=>{const D=w.component;c(w,y,S,0,a),l(D.vnode,w,y,S,D,a,x,w.slotScopeIds,k),ar(()=>{D.isDeactivated=!1,D.a&&ZS(D.a);const I=w.props&&w.props.onVnodeMounted;I&&el(I,D.parent,w)},a)},i.deactivate=w=>{const y=w.component;l2(y.m),l2(y.a),c(w,h,null,1,a),ar(()=>{y.da&&ZS(y.da);const S=w.props&&w.props.onVnodeUnmounted;S&&el(S,y.parent,w),y.isDeactivated=!0},a)};function f(w){eF(w),d(w,t,a,!0)}function g(w){s.forEach((y,S)=>{const x=p8(y.type);x&&!w(x)&&p(S)})}function p(w){const y=s.get(w);y&&(!r||!Od(y,r))?f(y):r&&eF(r),s.delete(w),o.delete(w)}Dn(()=>[n.include,n.exclude],([w,y])=>{w&&g(S=>fS(w,S)),y&&g(S=>!fS(y,S))},{flush:\"post\",deep:!0});let _=null;const b=()=>{_!=null&&(c2(t.subTree.type)?ar(()=>{s.set(_,hE(t.subTree))},t.subTree.suspense):s.set(_,hE(t.subTree)))};return cn(b),Mse(b),Jk(()=>{s.forEach(w=>{const{subTree:y,suspense:S}=t,x=hE(y);if(w.type===x.type&&w.key===x.key){eF(x);const k=x.component.da;k&&ar(k,S);return}f(w)})}),()=>{if(_=null,!e.default)return r=null;const w=e.default(),y=w[0];if(w.length>1)return r=null,w;if(!n0(y)||!(y.shapeFlag&4)&&!(y.shapeFlag&128))return r=null,y;let S=hE(y);if(S.type===Uo)return r=null,S;const x=S.type,k=p8(lm(S)?S.type.__asyncResolved||{}:x),{include:D,exclude:I,max:N}=n;if(D&&(!k||!fS(D,k))||I&&k&&fS(I,k))return S.shapeFlag&=-257,r=S,y;const P=S.key==null?x:S.key,O=s.get(P);return S.el&&(S=nd(S),y.shapeFlag&128&&(y.ssContent=S)),_=P,O?(S.el=O.el,S.component=O.component,S.transition&&bC(S,S.transition),S.shapeFlag|=512,o.delete(P),o.add(P)):(o.add(P),N&&o.size>parseInt(N,10)&&p(o.values().next().value)),S.shapeFlag|=256,r=S,c2(y.type)?y:S}}},JSe=QSe;function fS(n,e){return Zi(n)?n.some(t=>fS(t,e)):Yo(n)?n.split(\",\").includes(e):DSe(n)?(n.lastIndex=0,n.test(e)):!1}function rV(n,e){Ase(n,\"a\",e)}function aV(n,e){Ase(n,\"da\",e)}function Ase(n,e,t=jo){const i=n.__wdc||(n.__wdc=()=>{let s=t;for(;s;){if(s.isDeactivated)return;s=s.parent}return n()});if(jR(e,i,t),t){let s=t.parent;for(;s&&s.parent;)Qk(s.parent.vnode)&&exe(i,e,t,s),s=s.parent}}function exe(n,e,t,i){const s=jR(e,n,i,!0);uo(()=>{pse(i[e],s)},t)}function eF(n){n.shapeFlag&=-257,n.shapeFlag&=-513}function hE(n){return n.shapeFlag&128?n.ssContent:n}function jR(n,e,t=jo,i=!1){if(t){const s=t[n]||(t[n]=[]),o=e.__weh||(e.__weh=(...r)=>{a_();const a=s0(t),l=Jd(e,t,n,r);return a(),l_(),l});return i?s.unshift(o):s.push(o),o}}const Fg=n=>(e,t=jo)=>{(!wC||n===\"sp\")&&jR(n,(...i)=>e(...i),t)},Rse=Fg(\"bm\"),cn=Fg(\"m\"),txe=Fg(\"bu\"),Mse=Fg(\"u\"),Jk=Fg(\"bum\"),uo=Fg(\"um\"),ixe=Fg(\"sp\"),nxe=Fg(\"rtg\"),sxe=Fg(\"rtc\");function Pse(n,e=jo){jR(\"ec\",n,e)}const Ose=\"components\";function jc(n,e){return Bse(Ose,n,!0,e)||n}const Fse=Symbol.for(\"v-ndc\");function Em(n){return Yo(n)?Bse(Ose,n,!1)||n:n||Fse}function Bse(n,e,t=!0,i=!1){const s=qo||jo;if(s){const o=s.type;{const a=p8(o,!1);if(a&&(a===e||a===id(e)||a===nV(id(e))))return o}const r=xG(s[n]||o[n],e)||xG(s.appContext[n],e);return!r&&i?o:r}}function xG(n,e){return n&&(n[e]||n[id(e)]||n[nV(id(e))])}function Ma(n,e,t,i){let s;const o=t,r=Zi(n);if(r||Yo(n)){const a=r&&ug(n);let l=!1;a&&(l=!Xc(n),n=HR(n)),s=new Array(n.length);for(let c=0,d=n.length;c<d;c++)s[c]=e(l?ta(n[c]):n[c],c,void 0,o)}else if(typeof n==\"number\"){s=new Array(n);for(let a=0;a<n;a++)s[a]=e(a+1,a,void 0,o)}else if(Xo(n))if(n[Symbol.iterator])s=Array.from(n,(a,l)=>e(a,l,void 0,o));else{const a=Object.keys(n);s=new Array(a.length);for(let l=0,c=a.length;l<c;l++){const d=a[l];s[l]=e(n[d],d,l,o)}}else s=[];return s}function oxe(n,e){for(let t=0;t<e.length;t++){const i=e[t];if(Zi(i))for(let s=0;s<i.length;s++)n[i[s].name]=i[s].fn;else i&&(n[i.name]=i.key?(...s)=>{const o=i.fn(...s);return o&&(o.key=i.key),o}:i.fn)}return n}function en(n,e,t={},i,s){if(qo.ce||qo.parent&&lm(qo.parent)&&qo.parent.ce)return e!==\"default\"&&(t.name=e),fe(),jt(Bi,null,[te(\"slot\",t,i&&i())],64);let o=n[e];o&&o._c&&(o._d=!1),fe();const r=o&&Wse(o(t)),a=t.key||r&&r.key,l=jt(Bi,{key:(a&&!tV(a)?a:`_${e}`)+(!r&&i?\"_fb\":\"\")},r||(i?i():[]),r&&n._===1?64:-2);return!s&&l.scopeId&&(l.slotScopeIds=[l.scopeId+\"-s\"]),o&&o._c&&(o._d=!0),l}function Wse(n){return n.some(e=>n0(e)?!(e.type===Uo||e.type===Bi&&!Wse(e.children)):!0)?n:null}const a8=n=>n?coe(n)?qR(n):a8(n.parent):null,XS=Ra(Object.create(null),{$:n=>n,$el:n=>n.vnode.el,$data:n=>n.data,$props:n=>n.props,$attrs:n=>n.attrs,$slots:n=>n.slots,$refs:n=>n.refs,$parent:n=>a8(n.parent),$root:n=>a8(n.root),$host:n=>n.ce,$emit:n=>n.emit,$options:n=>Vse(n),$forceUpdate:n=>n.f||(n.f=()=>{sV(n.update)}),$nextTick:n=>n.n||(n.n=Go.bind(n.proxy)),$watch:n=>Txe.bind(n)}),tF=(n,e)=>n!==Gn&&!n.__isScriptSetup&&Ss(n,e),rxe={get({_:n},e){if(e===\"__v_skip\")return!0;const{ctx:t,setupState:i,data:s,props:o,accessCache:r,type:a,appContext:l}=n;let c;if(e[0]!==\"$\"){const f=r[e];if(f!==void 0)switch(f){case 1:return i[e];case 2:return s[e];case 4:return t[e];case 3:return o[e]}else{if(tF(i,e))return r[e]=1,i[e];if(s!==Gn&&Ss(s,e))return r[e]=2,s[e];if((c=n.propsOptions[0])&&Ss(c,e))return r[e]=3,o[e];if(t!==Gn&&Ss(t,e))return r[e]=4,t[e];l8&&(r[e]=0)}}const d=XS[e];let u,h;if(d)return e===\"$attrs\"&&ea(n.attrs,\"get\",\"\"),d(n);if((u=a.__cssModules)&&(u=u[e]))return u;if(t!==Gn&&Ss(t,e))return r[e]=4,t[e];if(h=l.config.globalProperties,Ss(h,e))return h[e]},set({_:n},e,t){const{data:i,setupState:s,ctx:o}=n;return tF(s,e)?(s[e]=t,!0):i!==Gn&&Ss(i,e)?(i[e]=t,!0):Ss(n.props,e)||e[0]===\"$\"&&e.slice(1)in n?!1:(o[e]=t,!0)},has({_:{data:n,setupState:e,accessCache:t,ctx:i,appContext:s,propsOptions:o}},r){let a;return!!t[r]||n!==Gn&&Ss(n,r)||tF(e,r)||(a=o[0])&&Ss(a,r)||Ss(i,r)||Ss(XS,r)||Ss(s.config.globalProperties,r)},defineProperty(n,e,t){return t.get!=null?n._.accessCache[e]=0:Ss(t,\"value\")&&this.set(n,e,t.value,null),Reflect.defineProperty(n,e,t)}};function axe(){return lxe().attrs}function lxe(){const n=pc();return n.setupContext||(n.setupContext=uoe(n))}function r2(n){return Zi(n)?n.reduce((e,t)=>(e[t]=null,e),{}):n}function eD(n,e){return!n||!e?n||e:Zi(n)&&Zi(e)?n.concat(e):Ra({},r2(n),r2(e))}function cxe(n){const e=pc();let t=n();return f8(),iV(t)&&(t=t.catch(i=>{throw s0(e),i})),[t,()=>s0(e)]}let l8=!0;function dxe(n){const e=Vse(n),t=n.proxy,i=n.ctx;l8=!1,e.beforeCreate&&LG(e.beforeCreate,n,\"bc\");const{data:s,computed:o,methods:r,watch:a,provide:l,inject:c,created:d,beforeMount:u,mounted:h,beforeUpdate:f,updated:g,activated:p,deactivated:_,beforeDestroy:b,beforeUnmount:w,destroyed:y,unmounted:S,render:x,renderTracked:k,renderTriggered:D,errorCaptured:I,serverPrefetch:N,expose:P,inheritAttrs:O,components:M,directives:z,filters:K}=e;if(c&&uxe(c,i,null),r)for(const he in r){const me=r[he];Fi(me)&&(i[he]=me.bind(t))}if(s){const he=s.call(t,t);Xo(he)&&(n.data=Ba(he))}if(l8=!0,o)for(const he in o){const me=o[he],De=Fi(me)?me.bind(t,t):Fi(me.get)?me.get.bind(t,t):hg,lt=!Fi(me)&&Fi(me.set)?me.set.bind(t):hg,We=ue({get:De,set:lt});Object.defineProperty(i,he,{enumerable:!0,configurable:!0,get:()=>We.value,set:Ve=>We.value=Ve})}if(a)for(const he in a)Hse(a[he],i,t,he);if(l){const he=Fi(l)?l.call(t):l;Reflect.ownKeys(he).forEach(me=>{os(me,he[me])})}d&&LG(d,n,\"c\");function se(he,me){Zi(me)?me.forEach(De=>he(De.bind(t))):me&&he(me.bind(t))}if(se(Rse,u),se(cn,h),se(txe,f),se(Mse,g),se(rV,p),se(aV,_),se(Pse,I),se(sxe,k),se(nxe,D),se(Jk,w),se(uo,S),se(ixe,N),Zi(P))if(P.length){const he=n.exposed||(n.exposed={});P.forEach(me=>{Object.defineProperty(he,me,{get:()=>t[me],set:De=>t[me]=De})})}else n.exposed||(n.exposed={});x&&n.render===hg&&(n.render=x),O!=null&&(n.inheritAttrs=O),M&&(n.components=M),z&&(n.directives=z),N&&oV(n)}function uxe(n,e,t=hg){Zi(n)&&(n=c8(n));for(const i in n){const s=n[i];let o;Xo(s)?\"default\"in s?o=Ui(s.from||i,s.default,!0):o=Ui(s.from||i):o=Ui(s),Cn(o)?Object.defineProperty(e,i,{enumerable:!0,configurable:!0,get:()=>o.value,set:r=>o.value=r}):e[i]=o}}function LG(n,e,t){Jd(Zi(n)?n.map(i=>i.bind(e.proxy)):n.bind(e.proxy),e,t)}function Hse(n,e,t,i){let s=i.includes(\".\")?toe(t,i):()=>t[i];if(Yo(n)){const o=e[n];Fi(o)&&Dn(s,o)}else if(Fi(n))Dn(s,n.bind(t));else if(Xo(n))if(Zi(n))n.forEach(o=>Hse(o,e,t,i));else{const o=Fi(n.handler)?n.handler.bind(t):e[n.handler];Fi(o)&&Dn(s,o,n)}}function Vse(n){const e=n.type,{mixins:t,extends:i}=e,{mixins:s,optionsCache:o,config:{optionMergeStrategies:r}}=n.appContext,a=o.get(e);let l;return a?l=a:!s.length&&!t&&!i?l=e:(l={},s.length&&s.forEach(c=>a2(l,c,r,!0)),a2(l,e,r)),Xo(e)&&o.set(e,l),l}function a2(n,e,t,i=!1){const{mixins:s,extends:o}=e;o&&a2(n,o,t,!0),s&&s.forEach(r=>a2(n,r,t,!0));for(const r in e)if(!(i&&r===\"expose\")){const a=hxe[r]||t&&t[r];n[r]=a?a(n[r],e[r]):e[r]}return n}const hxe={data:kG,props:DG,emits:DG,methods:gS,computed:gS,beforeCreate:Ca,created:Ca,beforeMount:Ca,mounted:Ca,beforeUpdate:Ca,updated:Ca,beforeDestroy:Ca,beforeUnmount:Ca,destroyed:Ca,unmounted:Ca,activated:Ca,deactivated:Ca,errorCaptured:Ca,serverPrefetch:Ca,components:gS,directives:gS,watch:gxe,provide:kG,inject:fxe};function kG(n,e){return e?n?function(){return Ra(Fi(n)?n.call(this,this):n,Fi(e)?e.call(this,this):e)}:e:n}function fxe(n,e){return gS(c8(n),c8(e))}function c8(n){if(Zi(n)){const e={};for(let t=0;t<n.length;t++)e[n[t]]=n[t];return e}return n}function Ca(n,e){return n?[...new Set([].concat(n,e))]:e}function gS(n,e){return n?Ra(Object.create(null),n,e):e}function DG(n,e){return n?Zi(n)&&Zi(e)?[...new Set([...n,...e])]:Ra(Object.create(null),r2(n),r2(e??{})):e}function gxe(n,e){if(!n)return e;if(!e)return n;const t=Ra(Object.create(null),n);for(const i in e)t[i]=Ca(n[i],e[i]);return t}function zse(){return{app:null,config:{isNativeTag:SSe,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let pxe=0;function mxe(n,e){return function(i,s=null){Fi(i)||(i=Ra({},i)),s!=null&&!Xo(s)&&(s=null);const o=zse(),r=new WeakSet,a=[];let l=!1;const c=o.app={_uid:pxe++,_component:i,_props:s,_container:null,_context:o,_instance:null,version:hoe,get config(){return o.config},set config(d){},use(d,...u){return r.has(d)||(d&&Fi(d.install)?(r.add(d),d.install(c,...u)):Fi(d)&&(r.add(d),d(c,...u))),c},mixin(d){return o.mixins.includes(d)||o.mixins.push(d),c},component(d,u){return u?(o.components[d]=u,c):o.components[d]},directive(d,u){return u?(o.directives[d]=u,c):o.directives[d]},mount(d,u,h){if(!l){const f=c._ceVNode||te(i,s);return f.appContext=o,h===!0?h=\"svg\":h===!1&&(h=void 0),u&&e?e(f,d):n(f,d,h),l=!0,c._container=d,d.__vue_app__=c,qR(f.component)}},onUnmount(d){a.push(d)},unmount(){l&&(Jd(a,c._instance,16),n(null,c._container),delete c._container.__vue_app__)},provide(d,u){return o.provides[d]=u,c},runWithContext(d){const u=Wv;Wv=c;try{return d()}finally{Wv=u}}};return c}}let Wv=null;function os(n,e){if(jo){let t=jo.provides;const i=jo.parent&&jo.parent.provides;i===t&&(t=jo.provides=Object.create(i)),t[n]=e}}function Ui(n,e,t=!1){const i=jo||qo;if(i||Wv){const s=Wv?Wv._context.provides:i?i.parent==null?i.vnode.appContext&&i.vnode.appContext.provides:i.parent.provides:void 0;if(s&&n in s)return s[n];if(arguments.length>1)return t&&Fi(e)?e.call(i&&i.proxy):e}}function lV(){return!!(jo||qo||Wv)}const $se={},Use=()=>Object.create($se),jse=n=>Object.getPrototypeOf(n)===$se;function _xe(n,e,t,i=!1){const s={},o=Use();n.propsDefaults=Object.create(null),Kse(n,e,s,o);for(const r in n.propsOptions[0])r in s||(s[r]=void 0);t?n.props=i?s:Kf(s):n.type.props?n.props=s:n.props=o,n.attrs=o}function vxe(n,e,t,i){const{props:s,attrs:o,vnode:{patchFlag:r}}=n,a=zi(s),[l]=n.propsOptions;let c=!1;if((i||r>0)&&!(r&16)){if(r&8){const d=n.vnode.dynamicProps;for(let u=0;u<d.length;u++){let h=d[u];if(KR(n.emitsOptions,h))continue;const f=e[h];if(l)if(Ss(o,h))f!==o[h]&&(o[h]=f,c=!0);else{const g=id(h);s[g]=d8(l,a,g,f,n,!1)}else f!==o[h]&&(o[h]=f,c=!0)}}}else{Kse(n,e,s,o)&&(c=!0);let d;for(const u in a)(!e||!Ss(e,u)&&((d=Dw(u))===u||!Ss(e,d)))&&(l?t&&(t[u]!==void 0||t[d]!==void 0)&&(s[u]=d8(l,a,u,void 0,n,!0)):delete s[u]);if(o!==a)for(const u in o)(!e||!Ss(e,u))&&(delete o[u],c=!0)}c&&Ff(n.attrs,\"set\",\"\")}function Kse(n,e,t,i){const[s,o]=n.propsOptions;let r=!1,a;if(e)for(let l in e){if(B1(l))continue;const c=e[l];let d;s&&Ss(s,d=id(l))?!o||!o.includes(d)?t[d]=c:(a||(a={}))[d]=c:KR(n.emitsOptions,l)||(!(l in i)||c!==i[l])&&(i[l]=c,r=!0)}if(o){const l=zi(t),c=a||Gn;for(let d=0;d<o.length;d++){const u=o[d];t[u]=d8(s,l,u,c[u],n,!Ss(c,u))}}return r}function d8(n,e,t,i,s,o){const r=n[t];if(r!=null){const a=Ss(r,\"default\");if(a&&i===void 0){const l=r.default;if(r.type!==Function&&!r.skipFactory&&Fi(l)){const{propsDefaults:c}=s;if(t in c)i=c[t];else{const d=s0(s);i=c[t]=l.call(null,e),d()}}else i=l;s.ce&&s.ce._setProp(t,i)}r[0]&&(o&&!a?i=!1:r[1]&&(i===\"\"||i===Dw(t))&&(i=!0))}return i}const bxe=new WeakMap;function qse(n,e,t=!1){const i=t?bxe:e.propsCache,s=i.get(n);if(s)return s;const o=n.props,r={},a=[];let l=!1;if(!Fi(n)){const d=u=>{l=!0;const[h,f]=qse(u,e,!0);Ra(r,h),f&&a.push(...f)};!t&&e.mixins.length&&e.mixins.forEach(d),n.extends&&d(n.extends),n.mixins&&n.mixins.forEach(d)}if(!o&&!l)return Xo(n)&&i.set(n,F1),F1;if(Zi(o))for(let d=0;d<o.length;d++){const u=id(o[d]);IG(u)&&(r[u]=Gn)}else if(o)for(const d in o){const u=id(d);if(IG(u)){const h=o[d],f=r[u]=Zi(h)||Fi(h)?{type:h}:Ra({},h),g=f.type;let p=!1,_=!0;if(Zi(g))for(let b=0;b<g.length;++b){const w=g[b],y=Fi(w)&&w.name;if(y===\"Boolean\"){p=!0;break}else y===\"String\"&&(_=!1)}else p=Fi(g)&&g.name===\"Boolean\";f[0]=p,f[1]=_,(p||Ss(f,\"default\"))&&a.push(u)}}const c=[r,a];return Xo(n)&&i.set(n,c),c}function IG(n){return n[0]!==\"$\"&&!B1(n)}const Gse=n=>n[0]===\"_\"||n===\"$stable\",cV=n=>Zi(n)?n.map($l):[$l(n)],Cxe=(n,e,t)=>{if(e._n)return e;const i=Be((...s)=>cV(e(...s)),t);return i._c=!1,i},Zse=(n,e,t)=>{const i=n._ctx;for(const s in n){if(Gse(s))continue;const o=n[s];if(Fi(o))e[s]=Cxe(s,o,i);else if(o!=null){const r=cV(o);e[s]=()=>r}}},Yse=(n,e)=>{const t=cV(e);n.slots.default=()=>t},Xse=(n,e,t)=>{for(const i in e)(t||i!==\"_\")&&(n[i]=e[i])},wxe=(n,e,t)=>{const i=n.slots=Use();if(n.vnode.shapeFlag&32){const s=e._;s?(Xse(i,e,t),t&&NSe(i,\"_\",s,!0)):Zse(e,i)}else e&&Yse(n,e)},yxe=(n,e,t)=>{const{vnode:i,slots:s}=n;let o=!0,r=Gn;if(i.shapeFlag&32){const a=e._;a?t&&a===1?o=!1:Xse(s,e,t):(o=!e.$stable,Zse(e,s)),r=e}else e&&(Yse(n,e),r={default:1});if(o)for(const a in s)!Gse(a)&&r[a]==null&&delete s[a]},ar=ooe;function Sxe(n){return Qse(n)}function xxe(n){return Qse(n,ZSe)}function Qse(n,e){const t=UR();t.__VUE__=!0;const{insert:i,remove:s,patchProp:o,createElement:r,createText:a,createComment:l,setText:c,setElementText:d,parentNode:u,nextSibling:h,setScopeId:f=hg,insertStaticContent:g}=n,p=(J,ie,ye,ze=null,Oe=null,et=null,vt=void 0,re=null,Q=!!ie.dynamicChildren)=>{if(J===ie)return;J&&!Od(J,ie)&&(ze=Se(J),Ve(J,Oe,et,!0),J=null),ie.patchFlag===-2&&(Q=!1,ie.dynamicChildren=null);const{type:Z,ref:B,shapeFlag:H}=ie;switch(Z){case Hv:_(J,ie,ye,ze);break;case Uo:b(J,ie,ye,ze);break;case V1:J==null&&w(ie,ye,ze,vt);break;case Bi:M(J,ie,ye,ze,Oe,et,vt,re,Q);break;default:H&1?x(J,ie,ye,ze,Oe,et,vt,re,Q):H&6?z(J,ie,ye,ze,Oe,et,vt,re,Q):(H&64||H&128)&&Z.process(J,ie,ye,ze,Oe,et,vt,re,Q,mt)}B!=null&&Oe&&s2(B,J&&J.ref,et,ie||J,!ie)},_=(J,ie,ye,ze)=>{if(J==null)i(ie.el=a(ie.children),ye,ze);else{const Oe=ie.el=J.el;ie.children!==J.children&&c(Oe,ie.children)}},b=(J,ie,ye,ze)=>{J==null?i(ie.el=l(ie.children||\"\"),ye,ze):ie.el=J.el},w=(J,ie,ye,ze)=>{[J.el,J.anchor]=g(J.children,ie,ye,ze,J.el,J.anchor)},y=({el:J,anchor:ie},ye,ze)=>{let Oe;for(;J&&J!==ie;)Oe=h(J),i(J,ye,ze),J=Oe;i(ie,ye,ze)},S=({el:J,anchor:ie})=>{let ye;for(;J&&J!==ie;)ye=h(J),s(J),J=ye;s(ie)},x=(J,ie,ye,ze,Oe,et,vt,re,Q)=>{ie.type===\"svg\"?vt=\"svg\":ie.type===\"math\"&&(vt=\"mathml\"),J==null?k(ie,ye,ze,Oe,et,vt,re,Q):N(J,ie,Oe,et,vt,re,Q)},k=(J,ie,ye,ze,Oe,et,vt,re)=>{let Q,Z;const{props:B,shapeFlag:H,transition:Y,dirs:G}=J;if(Q=J.el=r(J.type,et,B&&B.is,B),H&8?d(Q,J.children):H&16&&I(J.children,Q,null,ze,Oe,iF(J,et),vt,re),G&&$u(J,null,ze,\"created\"),D(Q,J,J.scopeId,vt,ze),B){for(const Ie in B)Ie!==\"value\"&&!B1(Ie)&&o(Q,Ie,null,B[Ie],et,ze);\"value\"in B&&o(Q,\"value\",null,B.value,et),(Z=B.onVnodeBeforeMount)&&el(Z,ze,J)}G&&$u(J,null,ze,\"beforeMount\");const ge=Jse(Oe,Y);ge&&Y.beforeEnter(Q),i(Q,ie,ye),((Z=B&&B.onVnodeMounted)||ge||G)&&ar(()=>{Z&&el(Z,ze,J),ge&&Y.enter(Q),G&&$u(J,null,ze,\"mounted\")},Oe)},D=(J,ie,ye,ze,Oe)=>{if(ye&&f(J,ye),ze)for(let et=0;et<ze.length;et++)f(J,ze[et]);if(Oe){let et=Oe.subTree;if(ie===et||c2(et.type)&&(et.ssContent===ie||et.ssFallback===ie)){const vt=Oe.vnode;D(J,vt,vt.scopeId,vt.slotScopeIds,Oe.parent)}}},I=(J,ie,ye,ze,Oe,et,vt,re,Q=0)=>{for(let Z=Q;Z<J.length;Z++){const B=J[Z]=re?Lp(J[Z]):$l(J[Z]);p(null,B,ie,ye,ze,Oe,et,vt,re)}},N=(J,ie,ye,ze,Oe,et,vt)=>{const re=ie.el=J.el;let{patchFlag:Q,dynamicChildren:Z,dirs:B}=ie;Q|=J.patchFlag&16;const H=J.props||Gn,Y=ie.props||Gn;let G;if(ye&&O_(ye,!1),(G=Y.onVnodeBeforeUpdate)&&el(G,ye,ie,J),B&&$u(ie,J,ye,\"beforeUpdate\"),ye&&O_(ye,!0),(H.innerHTML&&Y.innerHTML==null||H.textContent&&Y.textContent==null)&&d(re,\"\"),Z?P(J.dynamicChildren,Z,re,ye,ze,iF(ie,Oe),et):vt||me(J,ie,re,null,ye,ze,iF(ie,Oe),et,!1),Q>0){if(Q&16)O(re,H,Y,ye,Oe);else if(Q&2&&H.class!==Y.class&&o(re,\"class\",null,Y.class,Oe),Q&4&&o(re,\"style\",H.style,Y.style,Oe),Q&8){const ge=ie.dynamicProps;for(let Ie=0;Ie<ge.length;Ie++){const qe=ge[Ie],ot=H[qe],bt=Y[qe];(bt!==ot||qe===\"value\")&&o(re,qe,ot,bt,Oe,ye)}}Q&1&&J.children!==ie.children&&d(re,ie.children)}else!vt&&Z==null&&O(re,H,Y,ye,Oe);((G=Y.onVnodeUpdated)||B)&&ar(()=>{G&&el(G,ye,ie,J),B&&$u(ie,J,ye,\"updated\")},ze)},P=(J,ie,ye,ze,Oe,et,vt)=>{for(let re=0;re<ie.length;re++){const Q=J[re],Z=ie[re],B=Q.el&&(Q.type===Bi||!Od(Q,Z)||Q.shapeFlag&70)?u(Q.el):ye;p(Q,Z,B,null,ze,Oe,et,vt,!0)}},O=(J,ie,ye,ze,Oe)=>{if(ie!==ye){if(ie!==Gn)for(const et in ie)!B1(et)&&!(et in ye)&&o(J,et,ie[et],null,Oe,ze);for(const et in ye){if(B1(et))continue;const vt=ye[et],re=ie[et];vt!==re&&et!==\"value\"&&o(J,et,re,vt,Oe,ze)}\"value\"in ye&&o(J,\"value\",ie.value,ye.value,Oe)}},M=(J,ie,ye,ze,Oe,et,vt,re,Q)=>{const Z=ie.el=J?J.el:a(\"\"),B=ie.anchor=J?J.anchor:a(\"\");let{patchFlag:H,dynamicChildren:Y,slotScopeIds:G}=ie;G&&(re=re?re.concat(G):G),J==null?(i(Z,ye,ze),i(B,ye,ze),I(ie.children||[],ye,B,Oe,et,vt,re,Q)):H>0&&H&64&&Y&&J.dynamicChildren?(P(J.dynamicChildren,Y,ye,Oe,et,vt,re),(ie.key!=null||Oe&&ie===Oe.subTree)&&dV(J,ie,!0)):me(J,ie,ye,B,Oe,et,vt,re,Q)},z=(J,ie,ye,ze,Oe,et,vt,re,Q)=>{ie.slotScopeIds=re,J==null?ie.shapeFlag&512?Oe.ctx.activate(ie,ye,ze,vt,Q):K(ie,ye,ze,Oe,et,vt,Q):ae(J,ie,Q)},K=(J,ie,ye,ze,Oe,et,vt)=>{const re=J.component=jxe(J,ze,Oe);if(Qk(J)&&(re.ctx.renderer=mt),Kxe(re,!1,vt),re.asyncDep){if(Oe&&Oe.registerDep(re,se,vt),!J.el){const Q=re.subTree=te(Uo);b(null,Q,ie,ye)}}else se(re,J,ie,ye,Oe,et,vt)},ae=(J,ie,ye)=>{const ze=ie.component=J.component;if(Pxe(J,ie,ye))if(ze.asyncDep&&!ze.asyncResolved){he(ze,ie,ye);return}else ze.next=ie,ze.update();else ie.el=J.el,ze.vnode=ie},se=(J,ie,ye,ze,Oe,et,vt)=>{const re=()=>{if(J.isMounted){let{next:H,bu:Y,u:G,parent:ge,vnode:Ie}=J;{const si=eoe(J);if(si){H&&(H.el=Ie.el,he(J,H,vt)),si.asyncDep.then(()=>{J.isUnmounted||re()});return}}let qe=H,ot;O_(J,!1),H?(H.el=Ie.el,he(J,H,vt)):H=Ie,Y&&ZS(Y),(ot=H.props&&H.props.onVnodeBeforeUpdate)&&el(ot,ge,H,Ie),O_(J,!0);const bt=nF(J),xt=J.subTree;J.subTree=bt,p(xt,bt,u(xt.el),Se(xt),J,Oe,et),H.el=bt.el,qe===null&&uV(J,bt.el),G&&ar(G,Oe),(ot=H.props&&H.props.onVnodeUpdated)&&ar(()=>el(ot,ge,H,Ie),Oe)}else{let H;const{el:Y,props:G}=ie,{bm:ge,m:Ie,parent:qe,root:ot,type:bt}=J,xt=lm(ie);if(O_(J,!1),ge&&ZS(ge),!xt&&(H=G&&G.onVnodeBeforeMount)&&el(H,qe,ie),O_(J,!0),Y&&Ii){const si=()=>{J.subTree=nF(J),Ii(Y,J.subTree,J,Oe,null)};xt&&bt.__asyncHydrate?bt.__asyncHydrate(Y,J,si):si()}else{ot.ce&&ot.ce._injectChildStyle(bt);const si=J.subTree=nF(J);p(null,si,ye,ze,J,Oe,et),ie.el=si.el}if(Ie&&ar(Ie,Oe),!xt&&(H=G&&G.onVnodeMounted)){const si=ie;ar(()=>el(H,qe,si),Oe)}(ie.shapeFlag&256||qe&&lm(qe.vnode)&&qe.vnode.shapeFlag&256)&&J.a&&ar(J.a,Oe),J.isMounted=!0,ie=ye=ze=null}};J.scope.on();const Q=J.effect=new Yne(re);J.scope.off();const Z=J.update=Q.run.bind(Q),B=J.job=Q.runIfDirty.bind(Q);B.i=J,B.id=J.uid,Q.scheduler=()=>sV(B),O_(J,!0),Z()},he=(J,ie,ye)=>{ie.component=J;const ze=J.vnode.props;J.vnode=ie,J.next=null,vxe(J,ie.props,ze,ye),yxe(J,ie.children,ye),a_(),vG(J),l_()},me=(J,ie,ye,ze,Oe,et,vt,re,Q=!1)=>{const Z=J&&J.children,B=J?J.shapeFlag:0,H=ie.children,{patchFlag:Y,shapeFlag:G}=ie;if(Y>0){if(Y&128){lt(Z,H,ye,ze,Oe,et,vt,re,Q);return}else if(Y&256){De(Z,H,ye,ze,Oe,et,vt,re,Q);return}}G&8?(B&16&&ni(Z,Oe,et),H!==Z&&d(ye,H)):B&16?G&16?lt(Z,H,ye,ze,Oe,et,vt,re,Q):ni(Z,Oe,et,!0):(B&8&&d(ye,\"\"),G&16&&I(H,ye,ze,Oe,et,vt,re,Q))},De=(J,ie,ye,ze,Oe,et,vt,re,Q)=>{J=J||F1,ie=ie||F1;const Z=J.length,B=ie.length,H=Math.min(Z,B);let Y;for(Y=0;Y<H;Y++){const G=ie[Y]=Q?Lp(ie[Y]):$l(ie[Y]);p(J[Y],G,ye,null,Oe,et,vt,re,Q)}Z>B?ni(J,Oe,et,!0,!1,H):I(ie,ye,ze,Oe,et,vt,re,Q,H)},lt=(J,ie,ye,ze,Oe,et,vt,re,Q)=>{let Z=0;const B=ie.length;let H=J.length-1,Y=B-1;for(;Z<=H&&Z<=Y;){const G=J[Z],ge=ie[Z]=Q?Lp(ie[Z]):$l(ie[Z]);if(Od(G,ge))p(G,ge,ye,null,Oe,et,vt,re,Q);else break;Z++}for(;Z<=H&&Z<=Y;){const G=J[H],ge=ie[Y]=Q?Lp(ie[Y]):$l(ie[Y]);if(Od(G,ge))p(G,ge,ye,null,Oe,et,vt,re,Q);else break;H--,Y--}if(Z>H){if(Z<=Y){const G=Y+1,ge=G<B?ie[G].el:ze;for(;Z<=Y;)p(null,ie[Z]=Q?Lp(ie[Z]):$l(ie[Z]),ye,ge,Oe,et,vt,re,Q),Z++}}else if(Z>Y)for(;Z<=H;)Ve(J[Z],Oe,et,!0),Z++;else{const G=Z,ge=Z,Ie=new Map;for(Z=ge;Z<=Y;Z++){const Si=ie[Z]=Q?Lp(ie[Z]):$l(ie[Z]);Si.key!=null&&Ie.set(Si.key,Z)}let qe,ot=0;const bt=Y-ge+1;let xt=!1,si=0;const Ci=new Array(bt);for(Z=0;Z<bt;Z++)Ci[Z]=0;for(Z=G;Z<=H;Z++){const Si=J[Z];if(ot>=bt){Ve(Si,Oe,et,!0);continue}let Ai;if(Si.key!=null)Ai=Ie.get(Si.key);else for(qe=ge;qe<=Y;qe++)if(Ci[qe-ge]===0&&Od(Si,ie[qe])){Ai=qe;break}Ai===void 0?Ve(Si,Oe,et,!0):(Ci[Ai-ge]=Z+1,Ai>=si?si=Ai:xt=!0,p(Si,ie[Ai],ye,null,Oe,et,vt,re,Q),ot++)}const Dt=xt?Lxe(Ci):F1;for(qe=Dt.length-1,Z=bt-1;Z>=0;Z--){const Si=ge+Z,Ai=ie[Si],mr=Si+1<B?ie[Si+1].el:ze;Ci[Z]===0?p(null,Ai,ye,mr,Oe,et,vt,re,Q):xt&&(qe<0||Z!==Dt[qe]?We(Ai,ye,mr,2):qe--)}}},We=(J,ie,ye,ze,Oe=null)=>{const{el:et,type:vt,transition:re,children:Q,shapeFlag:Z}=J;if(Z&6){We(J.component.subTree,ie,ye,ze);return}if(Z&128){J.suspense.move(ie,ye,ze);return}if(Z&64){vt.move(J,ie,ye,mt);return}if(vt===Bi){i(et,ie,ye);for(let H=0;H<Q.length;H++)We(Q[H],ie,ye,ze);i(J.anchor,ie,ye);return}if(vt===V1){y(J,ie,ye);return}if(ze!==2&&Z&1&&re)if(ze===0)re.beforeEnter(et),i(et,ie,ye),ar(()=>re.enter(et),Oe);else{const{leave:H,delayLeave:Y,afterLeave:G}=re,ge=()=>i(et,ie,ye),Ie=()=>{H(et,()=>{ge(),G&&G()})};Y?Y(et,ge,Ie):Ie()}else i(et,ie,ye)},Ve=(J,ie,ye,ze=!1,Oe=!1)=>{const{type:et,props:vt,ref:re,children:Q,dynamicChildren:Z,shapeFlag:B,patchFlag:H,dirs:Y,cacheIndex:G}=J;if(H===-2&&(Oe=!1),re!=null&&s2(re,null,ye,J,!0),G!=null&&(ie.renderCache[G]=void 0),B&256){ie.ctx.deactivate(J);return}const ge=B&1&&Y,Ie=!lm(J);let qe;if(Ie&&(qe=vt&&vt.onVnodeBeforeUnmount)&&el(qe,ie,J),B&6)Oi(J.component,ye,ze);else{if(B&128){J.suspense.unmount(ye,ze);return}ge&&$u(J,null,ie,\"beforeUnmount\"),B&64?J.type.remove(J,ie,ye,mt,ze):Z&&!Z.hasOnce&&(et!==Bi||H>0&&H&64)?ni(Z,ie,ye,!1,!0):(et===Bi&&H&384||!Oe&&B&16)&&ni(Q,ie,ye),ze&&Me(J)}(Ie&&(qe=vt&&vt.onVnodeUnmounted)||ge)&&ar(()=>{qe&&el(qe,ie,J),ge&&$u(J,null,ie,\"unmounted\")},ye)},Me=J=>{const{type:ie,el:ye,anchor:ze,transition:Oe}=J;if(ie===Bi){Zt(ye,ze);return}if(ie===V1){S(J);return}const et=()=>{s(ye),Oe&&!Oe.persisted&&Oe.afterLeave&&Oe.afterLeave()};if(J.shapeFlag&1&&Oe&&!Oe.persisted){const{leave:vt,delayLeave:re}=Oe,Q=()=>vt(ye,et);re?re(J.el,et,Q):Q()}else et()},Zt=(J,ie)=>{let ye;for(;J!==ie;)ye=h(J),s(J),J=ye;s(ie)},Oi=(J,ie,ye)=>{const{bum:ze,scope:Oe,job:et,subTree:vt,um:re,m:Q,a:Z}=J;l2(Q),l2(Z),ze&&ZS(ze),Oe.stop(),et&&(et.flags|=8,Ve(vt,J,ie,ye)),re&&ar(re,ie),ar(()=>{J.isUnmounted=!0},ie),ie&&ie.pendingBranch&&!ie.isUnmounted&&J.asyncDep&&!J.asyncResolved&&J.suspenseId===ie.pendingId&&(ie.deps--,ie.deps===0&&ie.resolve())},ni=(J,ie,ye,ze=!1,Oe=!1,et=0)=>{for(let vt=et;vt<J.length;vt++)Ve(J[vt],ie,ye,ze,Oe)},Se=J=>{if(J.shapeFlag&6)return Se(J.component.subTree);if(J.shapeFlag&128)return J.suspense.next();const ie=h(J.anchor||J.el),ye=ie&&ie[Sse];return ye?h(ye):ie};let Qe=!1;const nt=(J,ie,ye)=>{J==null?ie._vnode&&Ve(ie._vnode,null,null,!0):p(ie._vnode||null,J,ie,null,null,null,ye),ie._vnode=J,Qe||(Qe=!0,vG(),i2(),Qe=!1)},mt={p,um:Ve,m:We,r:Me,mt:K,mc:I,pc:me,pbc:P,n:Se,o:n};let Je,Ii;return e&&([Je,Ii]=e(mt)),{render:nt,hydrate:Je,createApp:mxe(nt,Je)}}function iF({type:n,props:e},t){return t===\"svg\"&&n===\"foreignObject\"||t===\"mathml\"&&n===\"annotation-xml\"&&e&&e.encoding&&e.encoding.includes(\"html\")?void 0:t}function O_({effect:n,job:e},t){t?(n.flags|=32,e.flags|=4):(n.flags&=-33,e.flags&=-5)}function Jse(n,e){return(!n||n&&!n.pendingBranch)&&e&&!e.persisted}function dV(n,e,t=!1){const i=n.children,s=e.children;if(Zi(i)&&Zi(s))for(let o=0;o<i.length;o++){const r=i[o];let a=s[o];a.shapeFlag&1&&!a.dynamicChildren&&((a.patchFlag<=0||a.patchFlag===32)&&(a=s[o]=Lp(s[o]),a.el=r.el),!t&&a.patchFlag!==-2&&dV(r,a)),a.type===Hv&&(a.el=r.el)}}function Lxe(n){const e=n.slice(),t=[0];let i,s,o,r,a;const l=n.length;for(i=0;i<l;i++){const c=n[i];if(c!==0){if(s=t[t.length-1],n[s]<c){e[i]=s,t.push(i);continue}for(o=0,r=t.length-1;o<r;)a=o+r>>1,n[t[a]]<c?o=a+1:r=a;c<n[t[o]]&&(o>0&&(e[i]=t[o-1]),t[o]=i)}}for(o=t.length,r=t[o-1];o-- >0;)t[o]=r,r=e[r];return t}function eoe(n){const e=n.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:eoe(e)}function l2(n){if(n)for(let e=0;e<n.length;e++)n[e].flags|=8}const kxe=Symbol.for(\"v-scx\"),Dxe=()=>Ui(kxe);function Qo(n,e){return tD(n,null,e)}function Ixe(n,e){return tD(n,null,{flush:\"post\"})}function Exe(n,e){return tD(n,null,{flush:\"sync\"})}function Dn(n,e,t){return tD(n,e,t)}function tD(n,e,t=Gn){const{immediate:i,deep:s,flush:o,once:r}=t,a=Ra({},t),l=e&&i||!e&&o!==\"post\";let c;if(wC){if(o===\"sync\"){const f=Dxe();c=f.__watcherHandles||(f.__watcherHandles=[])}else if(!l){const f=()=>{};return f.stop=hg,f.resume=hg,f.pause=hg,f}}const d=jo;a.call=(f,g,p)=>Jd(f,d,g,p);let u=!1;o===\"post\"?a.scheduler=f=>{ar(f,d&&d.suspense)}:o!==\"sync\"&&(u=!0,a.scheduler=(f,g)=>{g?f():sV(f)}),a.augmentJob=f=>{e&&(f.flags|=4),u&&(f.flags|=2,d&&(f.id=d.uid,f.i=d))};const h=wSe(n,e,a);return wC&&(c?c.push(h):l&&h()),h}function Txe(n,e,t){const i=this.proxy,s=Yo(n)?n.includes(\".\")?toe(i,n):()=>i[n]:n.bind(i,i);let o;Fi(e)?o=e:(o=e.handler,t=e);const r=s0(this),a=tD(s,o.bind(i),t);return r(),a}function toe(n,e){const t=e.split(\".\");return()=>{let i=n;for(let s=0;s<t.length&&i;s++)i=i[t[s]];return i}}function c_(n,e,t=Gn){const i=pc(),s=id(e),o=Dw(e),r=ioe(n,s),a=hse((l,c)=>{let d,u=Gn,h;return Exe(()=>{const f=n[s];Ib(d,f)&&(d=f,c())}),{get(){return l(),t.get?t.get(d):d},set(f){const g=t.set?t.set(f):f;if(!Ib(g,d)&&!(u!==Gn&&Ib(f,u)))return;const p=i.vnode.props;p&&(e in p||s in p||o in p)&&(`onUpdate:${e}`in p||`onUpdate:${s}`in p||`onUpdate:${o}`in p)||(d=f,c()),i.emit(`update:${e}`,g),Ib(f,g)&&Ib(f,u)&&!Ib(g,h)&&c(),u=f,h=g}}});return a[Symbol.iterator]=()=>{let l=0;return{next(){return l<2?{value:l++?r||Gn:a,done:!1}:{done:!0}}}},a}const ioe=(n,e)=>e===\"modelValue\"||e===\"model-value\"?n.modelModifiers:n[`${e}Modifiers`]||n[`${id(e)}Modifiers`]||n[`${Dw(e)}Modifiers`];function Nxe(n,e,...t){if(n.isUnmounted)return;const i=n.vnode.props||Gn;let s=t;const o=e.startsWith(\"update:\"),r=o&&ioe(i,e.slice(7));r&&(r.trim&&(s=t.map(d=>Yo(d)?d.trim():d)),r.number&&(s=t.map(ASe)));let a,l=i[a=Y4(e)]||i[a=Y4(id(e))];!l&&o&&(l=i[a=Y4(Dw(e))]),l&&Jd(l,n,6,s);const c=i[a+\"Once\"];if(c){if(!n.emitted)n.emitted={};else if(n.emitted[a])return;n.emitted[a]=!0,Jd(c,n,6,s)}}function noe(n,e,t=!1){const i=e.emitsCache,s=i.get(n);if(s!==void 0)return s;const o=n.emits;let r={},a=!1;if(!Fi(n)){const l=c=>{const d=noe(c,e,!0);d&&(a=!0,Ra(r,d))};!t&&e.mixins.length&&e.mixins.forEach(l),n.extends&&l(n.extends),n.mixins&&n.mixins.forEach(l)}return!o&&!a?(Xo(n)&&i.set(n,null),null):(Zi(o)?o.forEach(l=>r[l]=null):Ra(r,o),Xo(n)&&i.set(n,r),r)}function KR(n,e){return!n||!VR(e)?!1:(e=e.slice(2).replace(/Once$/,\"\"),Ss(n,e[0].toLowerCase()+e.slice(1))||Ss(n,Dw(e))||Ss(n,e))}function nF(n){const{type:e,vnode:t,proxy:i,withProxy:s,propsOptions:[o],slots:r,attrs:a,emit:l,render:c,renderCache:d,props:u,data:h,setupState:f,ctx:g,inheritAttrs:p}=n,_=n2(n);let b,w;try{if(t.shapeFlag&4){const S=s||i,x=S;b=$l(c.call(x,S,d,u,f,h,g)),w=a}else{const S=e;b=$l(S.length>1?S(u,{attrs:a,slots:r,emit:l}):S(u,null)),w=e.props?a:Rxe(a)}}catch(S){QS.length=0,Iw(S,n,1),b=te(Uo)}let y=b;if(w&&p!==!1){const S=Object.keys(w),{shapeFlag:x}=y;S.length&&x&7&&(o&&S.some(gse)&&(w=Mxe(w,o)),y=nd(y,w,!1,!0))}return t.dirs&&(y=nd(y,null,!1,!0),y.dirs=y.dirs?y.dirs.concat(t.dirs):t.dirs),t.transition&&bC(y,t.transition),b=y,n2(_),b}function Axe(n,e=!0){let t;for(let i=0;i<n.length;i++){const s=n[i];if(n0(s)){if(s.type!==Uo||s.children===\"v-if\"){if(t)return;t=s}}else return}return t}const Rxe=n=>{let e;for(const t in n)(t===\"class\"||t===\"style\"||VR(t))&&((e||(e={}))[t]=n[t]);return e},Mxe=(n,e)=>{const t={};for(const i in n)(!gse(i)||!(i.slice(9)in e))&&(t[i]=n[i]);return t};function Pxe(n,e,t){const{props:i,children:s,component:o}=n,{props:r,children:a,patchFlag:l}=e,c=o.emitsOptions;if(e.dirs||e.transition)return!0;if(t&&l>=0){if(l&1024)return!0;if(l&16)return i?EG(i,r,c):!!r;if(l&8){const d=e.dynamicProps;for(let u=0;u<d.length;u++){const h=d[u];if(r[h]!==i[h]&&!KR(c,h))return!0}}}else return(s||a)&&(!a||!a.$stable)?!0:i===r?!1:i?r?EG(i,r,c):!0:!!r;return!1}function EG(n,e,t){const i=Object.keys(e);if(i.length!==Object.keys(n).length)return!0;for(let s=0;s<i.length;s++){const o=i[s];if(e[o]!==n[o]&&!KR(t,o))return!0}return!1}function uV({vnode:n,parent:e},t){for(;e;){const i=e.subTree;if(i.suspense&&i.suspense.activeBranch===n&&(i.el=n.el),i===n)(n=e.vnode).el=t,e=e.parent;else break}}const c2=n=>n.__isSuspense;let u8=0;const Oxe={name:\"Suspense\",__isSuspense:!0,process(n,e,t,i,s,o,r,a,l,c){if(n==null)Fxe(e,t,i,s,o,r,a,l,c);else{if(o&&o.deps>0&&!n.suspense.isInFallback){e.suspense=n.suspense,e.suspense.vnode=e,e.el=n.el;return}Bxe(n,e,t,i,s,r,a,l,c)}},hydrate:Wxe,normalize:Hxe},hV=Oxe;function Gx(n,e){const t=n.props&&n.props[e];Fi(t)&&t()}function Fxe(n,e,t,i,s,o,r,a,l){const{p:c,o:{createElement:d}}=l,u=d(\"div\"),h=n.suspense=soe(n,s,i,e,u,t,o,r,a,l);c(null,h.pendingBranch=n.ssContent,u,null,i,h,o,r),h.deps>0?(Gx(n,\"onPending\"),Gx(n,\"onFallback\"),c(null,n.ssFallback,e,t,i,null,o,r),H1(h,n.ssFallback)):h.resolve(!1,!0)}function Bxe(n,e,t,i,s,o,r,a,{p:l,um:c,o:{createElement:d}}){const u=e.suspense=n.suspense;u.vnode=e,e.el=n.el;const h=e.ssContent,f=e.ssFallback,{activeBranch:g,pendingBranch:p,isInFallback:_,isHydrating:b}=u;if(p)u.pendingBranch=h,Od(h,p)?(l(p,h,u.hiddenContainer,null,s,u,o,r,a),u.deps<=0?u.resolve():_&&(b||(l(g,f,t,i,s,null,o,r,a),H1(u,f)))):(u.pendingId=u8++,b?(u.isHydrating=!1,u.activeBranch=p):c(p,s,u),u.deps=0,u.effects.length=0,u.hiddenContainer=d(\"div\"),_?(l(null,h,u.hiddenContainer,null,s,u,o,r,a),u.deps<=0?u.resolve():(l(g,f,t,i,s,null,o,r,a),H1(u,f))):g&&Od(h,g)?(l(g,h,t,i,s,u,o,r,a),u.resolve(!0)):(l(null,h,u.hiddenContainer,null,s,u,o,r,a),u.deps<=0&&u.resolve()));else if(g&&Od(h,g))l(g,h,t,i,s,u,o,r,a),H1(u,h);else if(Gx(e,\"onPending\"),u.pendingBranch=h,h.shapeFlag&512?u.pendingId=h.component.suspenseId:u.pendingId=u8++,l(null,h,u.hiddenContainer,null,s,u,o,r,a),u.deps<=0)u.resolve();else{const{timeout:w,pendingId:y}=u;w>0?setTimeout(()=>{u.pendingId===y&&u.fallback(f)},w):w===0&&u.fallback(f)}}function soe(n,e,t,i,s,o,r,a,l,c,d=!1){const{p:u,m:h,um:f,n:g,o:{parentNode:p,remove:_}}=c;let b;const w=Vxe(n);w&&e&&e.pendingBranch&&(b=e.pendingId,e.deps++);const y=n.props?RSe(n.props.timeout):void 0,S=o,x={vnode:n,parent:e,parentComponent:t,namespace:r,container:i,hiddenContainer:s,deps:0,pendingId:u8++,timeout:typeof y==\"number\"?y:-1,activeBranch:null,pendingBranch:null,isInFallback:!d,isHydrating:d,isUnmounted:!1,effects:[],resolve(k=!1,D=!1){const{vnode:I,activeBranch:N,pendingBranch:P,pendingId:O,effects:M,parentComponent:z,container:K}=x;let ae=!1;x.isHydrating?x.isHydrating=!1:k||(ae=N&&P.transition&&P.transition.mode===\"out-in\",ae&&(N.transition.afterLeave=()=>{O===x.pendingId&&(h(P,K,o===S?g(N):o,0),s8(M))}),N&&(p(N.el)===K&&(o=g(N)),f(N,z,x,!0)),ae||h(P,K,o,0)),H1(x,P),x.pendingBranch=null,x.isInFallback=!1;let se=x.parent,he=!1;for(;se;){if(se.pendingBranch){se.effects.push(...M),he=!0;break}se=se.parent}!he&&!ae&&s8(M),x.effects=[],w&&e&&e.pendingBranch&&b===e.pendingId&&(e.deps--,e.deps===0&&!D&&e.resolve()),Gx(I,\"onResolve\")},fallback(k){if(!x.pendingBranch)return;const{vnode:D,activeBranch:I,parentComponent:N,container:P,namespace:O}=x;Gx(D,\"onFallback\");const M=g(I),z=()=>{x.isInFallback&&(u(null,k,P,M,N,null,O,a,l),H1(x,k))},K=k.transition&&k.transition.mode===\"out-in\";K&&(I.transition.afterLeave=z),x.isInFallback=!0,f(I,N,null,!0),K||z()},move(k,D,I){x.activeBranch&&h(x.activeBranch,k,D,I),x.container=k},next(){return x.activeBranch&&g(x.activeBranch)},registerDep(k,D,I){const N=!!x.pendingBranch;N&&x.deps++;const P=k.vnode.el;k.asyncDep.catch(O=>{Iw(O,k,0)}).then(O=>{if(k.isUnmounted||x.isUnmounted||x.pendingId!==k.suspenseId)return;k.asyncResolved=!0;const{vnode:M}=k;g8(k,O),P&&(M.el=P);const z=!P&&k.subTree.el;D(k,M,p(P||k.subTree.el),P?null:g(k.subTree),x,r,I),z&&_(z),uV(k,M.el),N&&--x.deps===0&&x.resolve()})},unmount(k,D){x.isUnmounted=!0,x.activeBranch&&f(x.activeBranch,t,k,D),x.pendingBranch&&f(x.pendingBranch,t,k,D)}};return x}function Wxe(n,e,t,i,s,o,r,a,l){const c=e.suspense=soe(e,i,t,n.parentNode,document.createElement(\"div\"),null,s,o,r,a,!0),d=l(n,c.pendingBranch=e.ssContent,t,c,o,r);return c.deps===0&&c.resolve(!1,!0),d}function Hxe(n){const{shapeFlag:e,children:t}=n,i=e&32;n.ssContent=TG(i?t.default:t),n.ssFallback=i?TG(t.fallback):te(Uo)}function TG(n){let e;if(Fi(n)){const t=CC&&n._c;t&&(n._d=!1,fe()),n=n(),t&&(n._d=!0,e=fl,roe())}return Zi(n)&&(n=Axe(n)),n=$l(n),e&&!n.dynamicChildren&&(n.dynamicChildren=e.filter(t=>t!==n)),n}function ooe(n,e){e&&e.pendingBranch?Zi(n)?e.effects.push(...n):e.effects.push(n):s8(n)}function H1(n,e){n.activeBranch=e;const{vnode:t,parentComponent:i}=n;let s=e.el;for(;!s&&e.component;)e=e.component.subTree,s=e.el;t.el=s,i&&i.subTree===t&&(i.vnode.el=s,uV(i,s))}function Vxe(n){const e=n.props&&n.props.suspensible;return e!=null&&e!==!1}const Bi=Symbol.for(\"v-fgt\"),Hv=Symbol.for(\"v-txt\"),Uo=Symbol.for(\"v-cmt\"),V1=Symbol.for(\"v-stc\"),QS=[];let fl=null;function fe(n=!1){QS.push(fl=n?null:[])}function roe(){QS.pop(),fl=QS[QS.length-1]||null}let CC=1;function NG(n){CC+=n,n<0&&fl&&(fl.hasOnce=!0)}function aoe(n){return n.dynamicChildren=CC>0?fl||F1:null,roe(),CC>0&&fl&&fl.push(n),n}function Re(n,e,t,i,s,o){return aoe(q(n,e,t,i,s,o,!0))}function jt(n,e,t,i,s){return aoe(te(n,e,t,i,s,!0))}function n0(n){return n?n.__v_isVNode===!0:!1}function Od(n,e){return n.type===e.type&&n.key===e.key}const loe=({key:n})=>n??null,iN=({ref:n,ref_key:e,ref_for:t})=>(typeof n==\"number\"&&(n=\"\"+n),n!=null?Yo(n)||Cn(n)||Fi(n)?{i:qo,r:n,k:e,f:!!t}:n:null);function q(n,e=null,t=null,i=0,s=null,o=n===Bi?0:1,r=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:n,props:e,key:e&&loe(e),ref:e&&iN(e),scopeId:yse,slotScopeIds:null,children:t,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:i,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:qo};return a?(fV(l,t),o&128&&n.normalize(l)):t&&(l.shapeFlag|=Yo(t)?8:16),CC>0&&!r&&fl&&(l.patchFlag>0||o&6)&&l.patchFlag!==32&&fl.push(l),l}const te=zxe;function zxe(n,e=null,t=null,i=0,s=null,o=!1){if((!n||n===Fse)&&(n=Uo),n0(n)){const a=nd(n,e,!0);return t&&fV(a,t),CC>0&&!o&&fl&&(a.shapeFlag&6?fl[fl.indexOf(n)]=a:fl.push(a)),a.patchFlag=-2,a}if(Zxe(n)&&(n=n.__vccOpts),e){e=Zx(e);let{class:a,style:l}=e;a&&!Yo(a)&&(e.class=st(a)),Xo(l)&&(JH(l)&&!Zi(l)&&(l=Ra({},l)),e.style=Im(l))}const r=Yo(n)?1:c2(n)?128:xse(n)?64:Xo(n)?4:Fi(n)?2:0;return q(n,e,t,i,s,r,o,!0)}function Zx(n){return n?JH(n)||jse(n)?Ra({},n):n:null}function nd(n,e,t=!1,i=!1){const{props:s,ref:o,patchFlag:r,children:a,transition:l}=n,c=e?an(s||{},e):s,d={__v_isVNode:!0,__v_skip:!0,type:n.type,props:c,key:c&&loe(c),ref:e&&e.ref?t&&o?Zi(o)?o.concat(iN(e)):[o,iN(e)]:iN(e):o,scopeId:n.scopeId,slotScopeIds:n.slotScopeIds,children:a,target:n.target,targetStart:n.targetStart,targetAnchor:n.targetAnchor,staticCount:n.staticCount,shapeFlag:n.shapeFlag,patchFlag:e&&n.type!==Bi?r===-1?16:r|16:r,dynamicProps:n.dynamicProps,dynamicChildren:n.dynamicChildren,appContext:n.appContext,dirs:n.dirs,transition:l,component:n.component,suspense:n.suspense,ssContent:n.ssContent&&nd(n.ssContent),ssFallback:n.ssFallback&&nd(n.ssFallback),el:n.el,anchor:n.anchor,ctx:n.ctx,ce:n.ce};return l&&i&&bC(d,l.clone(d)),d}function at(n=\" \",e=0){return te(Hv,null,n,e)}function z1(n,e){const t=te(V1,null,n);return t.staticCount=e,t}function Bt(n=\"\",e=!1){return e?(fe(),jt(Uo,null,n)):te(Uo,null,n)}function $l(n){return n==null||typeof n==\"boolean\"?te(Uo):Zi(n)?te(Bi,null,n.slice()):n0(n)?Lp(n):te(Hv,null,String(n))}function Lp(n){return n.el===null&&n.patchFlag!==-1||n.memo?n:nd(n)}function fV(n,e){let t=0;const{shapeFlag:i}=n;if(e==null)e=null;else if(Zi(e))t=16;else if(typeof e==\"object\")if(i&65){const s=e.default;s&&(s._c&&(s._d=!1),fV(n,s()),s._c&&(s._d=!0));return}else{t=32;const s=e._;!s&&!jse(e)?e._ctx=qo:s===3&&qo&&(qo.slots._===1?e._=1:(e._=2,n.patchFlag|=1024))}else Fi(e)?(e={default:e,_ctx:qo},t=32):(e=String(e),i&64?(t=16,e=[at(e)]):t=8);n.children=e,n.shapeFlag|=t}function an(...n){const e={};for(let t=0;t<n.length;t++){const i=n[t];for(const s in i)if(s===\"class\")e.class!==i.class&&(e.class=st([e.class,i.class]));else if(s===\"style\")e.style=Im([e.style,i.style]);else if(VR(s)){const o=e[s],r=i[s];r&&o!==r&&!(Zi(o)&&o.includes(r))&&(e[s]=o?[].concat(o,r):r)}else s!==\"\"&&(e[s]=i[s])}return e}function el(n,e,t,i=null){Jd(n,e,7,[t,i])}const $xe=zse();let Uxe=0;function jxe(n,e,t){const i=n.type,s=(e?e.appContext:n.appContext)||$xe,o={uid:Uxe++,vnode:n,type:i,parent:e,appContext:s,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new Zne(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:e?e.provides:Object.create(s.provides),ids:e?e.ids:[\"\",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:qse(i,s),emitsOptions:noe(i,s),emit:null,emitted:null,propsDefaults:Gn,inheritAttrs:i.inheritAttrs,ctx:Gn,data:Gn,props:Gn,attrs:Gn,slots:Gn,refs:Gn,setupState:Gn,setupContext:null,suspense:t,suspenseId:t?t.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return o.ctx={_:o},o.root=e?e.root:o,o.emit=Nxe.bind(null,o),n.ce&&n.ce(o),o}let jo=null;const pc=()=>jo||qo;let d2,h8;{const n=UR(),e=(t,i)=>{let s;return(s=n[t])||(s=n[t]=[]),s.push(i),o=>{s.length>1?s.forEach(r=>r(o)):s[0](o)}};d2=e(\"__VUE_INSTANCE_SETTERS__\",t=>jo=t),h8=e(\"__VUE_SSR_SETTERS__\",t=>wC=t)}const s0=n=>{const e=jo;return d2(n),n.scope.on(),()=>{n.scope.off(),d2(e)}},f8=()=>{jo&&jo.scope.off(),d2(null)};function coe(n){return n.vnode.shapeFlag&4}let wC=!1;function Kxe(n,e=!1,t=!1){e&&h8(e);const{props:i,children:s}=n.vnode,o=coe(n);_xe(n,i,o,e),wxe(n,s,t);const r=o?qxe(n,e):void 0;return e&&h8(!1),r}function qxe(n,e){const t=n.type;n.accessCache=Object.create(null),n.proxy=new Proxy(n.ctx,rxe);const{setup:i}=t;if(i){a_();const s=n.setupContext=i.length>1?uoe(n):null,o=s0(n),r=Xk(i,n,0,[n.props,s]),a=iV(r);if(l_(),o(),(a||n.sp)&&!lm(n)&&oV(n),a){if(r.then(f8,f8),e)return r.then(l=>{g8(n,l)}).catch(l=>{Iw(l,n,0)});n.asyncDep=r}else g8(n,r)}else doe(n)}function g8(n,e,t){Fi(e)?n.type.__ssrInlineRender?n.ssrRender=e:n.render=e:Xo(e)&&(n.setupState=use(e)),doe(n)}function doe(n,e,t){const i=n.type;n.render||(n.render=i.render||hg);{const s=s0(n);a_();try{dxe(n)}finally{l_(),s()}}}const Gxe={get(n,e){return ea(n,\"get\",\"\"),n[e]}};function uoe(n){const e=t=>{n.exposed=t||{}};return{attrs:new Proxy(n.attrs,Gxe),slots:n.slots,emit:n.emit,expose:e}}function qR(n){return n.exposed?n.exposeProxy||(n.exposeProxy=new Proxy(use(eV(n.exposed)),{get(e,t){if(t in e)return e[t];if(t in XS)return XS[t](n)},has(e,t){return t in e||t in XS}})):n.proxy}function p8(n,e=!0){return Fi(n)?n.displayName||n.name:n.name||e&&n.__name}function Zxe(n){return Fi(n)&&\"__vccOpts\"in n}const ue=(n,e)=>bSe(n,e,wC);function $i(n,e,t){const i=arguments.length;return i===2?Xo(e)&&!Zi(e)?n0(e)?te(n,null,[e]):te(n,e):te(n,null,e):(i>3?t=Array.prototype.slice.call(arguments,2):i===3&&n0(t)&&(t=[t]),te(n,e,t))}const hoe=\"3.5.12\";/**\n* @vue/shared v3.5.12\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**//*! #__NO_SIDE_EFFECTS__ */function Yxe(n){const e=Object.create(null);for(const t of n.split(\",\"))e[t]=1;return t=>t in e}const Xxe=n=>n.charCodeAt(0)===111&&n.charCodeAt(1)===110&&(n.charCodeAt(2)>122||n.charCodeAt(2)<97),Qxe=n=>n.startsWith(\"onUpdate:\"),gV=Object.assign,xh=Array.isArray,GR=n=>goe(n)===\"[object Set]\",AG=n=>goe(n)===\"[object Date]\",foe=n=>typeof n==\"function\",yC=n=>typeof n==\"string\",m8=n=>typeof n==\"symbol\",_8=n=>n!==null&&typeof n==\"object\",Jxe=Object.prototype.toString,goe=n=>Jxe.call(n),pV=n=>{const e=Object.create(null);return t=>e[t]||(e[t]=n(t))},eLe=/-(\\w)/g,tLe=pV(n=>n.replace(eLe,(e,t)=>t?t.toUpperCase():\"\")),iLe=/\\B([A-Z])/g,mV=pV(n=>n.replace(iLe,\"-$1\").toLowerCase()),nLe=pV(n=>n.charAt(0).toUpperCase()+n.slice(1)),sLe=(n,...e)=>{for(let t=0;t<n.length;t++)n[t](...e)},v8=n=>{const e=parseFloat(n);return isNaN(e)?n:e},oLe=n=>{const e=yC(n)?Number(n):NaN;return isNaN(e)?n:e},rLe=\"itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly\",aLe=Yxe(rLe);function poe(n){return!!n||n===\"\"}function lLe(n,e){if(n.length!==e.length)return!1;let t=!0;for(let i=0;t&&i<n.length;i++)t=iD(n[i],e[i]);return t}function iD(n,e){if(n===e)return!0;let t=AG(n),i=AG(e);if(t||i)return t&&i?n.getTime()===e.getTime():!1;if(t=m8(n),i=m8(e),t||i)return n===e;if(t=xh(n),i=xh(e),t||i)return t&&i?lLe(n,e):!1;if(t=_8(n),i=_8(e),t||i){if(!t||!i)return!1;const s=Object.keys(n).length,o=Object.keys(e).length;if(s!==o)return!1;for(const r in n){const a=n.hasOwnProperty(r),l=e.hasOwnProperty(r);if(a&&!l||!a&&l||!iD(n[r],e[r]))return!1}}return String(n)===String(e)}function _V(n,e){return n.findIndex(t=>iD(t,e))}/**\n* @vue/runtime-dom v3.5.12\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/let b8;const RG=typeof window<\"u\"&&window.trustedTypes;if(RG)try{b8=RG.createPolicy(\"vue\",{createHTML:n=>n})}catch{}const moe=b8?n=>b8.createHTML(n):n=>n,cLe=\"http://www.w3.org/2000/svg\",dLe=\"http://www.w3.org/1998/Math/MathML\",xf=typeof document<\"u\"?document:null,MG=xf&&xf.createElement(\"template\"),uLe={insert:(n,e,t)=>{e.insertBefore(n,t||null)},remove:n=>{const e=n.parentNode;e&&e.removeChild(n)},createElement:(n,e,t,i)=>{const s=e===\"svg\"?xf.createElementNS(cLe,n):e===\"mathml\"?xf.createElementNS(dLe,n):t?xf.createElement(n,{is:t}):xf.createElement(n);return n===\"select\"&&i&&i.multiple!=null&&s.setAttribute(\"multiple\",i.multiple),s},createText:n=>xf.createTextNode(n),createComment:n=>xf.createComment(n),setText:(n,e)=>{n.nodeValue=e},setElementText:(n,e)=>{n.textContent=e},parentNode:n=>n.parentNode,nextSibling:n=>n.nextSibling,querySelector:n=>xf.querySelector(n),setScopeId(n,e){n.setAttribute(e,\"\")},insertStaticContent(n,e,t,i,s,o){const r=t?t.previousSibling:e.lastChild;if(s&&(s===o||s.nextSibling))for(;e.insertBefore(s.cloneNode(!0),t),!(s===o||!(s=s.nextSibling)););else{MG.innerHTML=moe(i===\"svg\"?`<svg>${n}</svg>`:i===\"mathml\"?`<math>${n}</math>`:n);const a=MG.content;if(i===\"svg\"||i===\"mathml\"){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}e.insertBefore(a,t)}return[r?r.nextSibling:e.firstChild,t?t.previousSibling:e.lastChild]}},sp=\"transition\",Sy=\"animation\",Yx=Symbol(\"_vtc\"),_oe={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},hLe=gV({},Dse,_oe),fLe=n=>(n.displayName=\"Transition\",n.props=hLe,n),o0=fLe((n,{slots:e})=>$i(KSe,gLe(n),e)),F_=(n,e=[])=>{xh(n)?n.forEach(t=>t(...e)):n&&n(...e)},PG=n=>n?xh(n)?n.some(e=>e.length>1):n.length>1:!1;function gLe(n){const e={};for(const M in n)M in _oe||(e[M]=n[M]);if(n.css===!1)return e;const{name:t=\"v\",type:i,duration:s,enterFromClass:o=`${t}-enter-from`,enterActiveClass:r=`${t}-enter-active`,enterToClass:a=`${t}-enter-to`,appearFromClass:l=o,appearActiveClass:c=r,appearToClass:d=a,leaveFromClass:u=`${t}-leave-from`,leaveActiveClass:h=`${t}-leave-active`,leaveToClass:f=`${t}-leave-to`}=n,g=pLe(s),p=g&&g[0],_=g&&g[1],{onBeforeEnter:b,onEnter:w,onEnterCancelled:y,onLeave:S,onLeaveCancelled:x,onBeforeAppear:k=b,onAppear:D=w,onAppearCancelled:I=y}=e,N=(M,z,K)=>{B_(M,z?d:a),B_(M,z?c:r),K&&K()},P=(M,z)=>{M._isLeaving=!1,B_(M,u),B_(M,f),B_(M,h),z&&z()},O=M=>(z,K)=>{const ae=M?D:w,se=()=>N(z,M,K);F_(ae,[z,se]),OG(()=>{B_(z,M?l:o),op(z,M?d:a),PG(ae)||FG(z,i,p,se)})};return gV(e,{onBeforeEnter(M){F_(b,[M]),op(M,o),op(M,r)},onBeforeAppear(M){F_(k,[M]),op(M,l),op(M,c)},onEnter:O(!1),onAppear:O(!0),onLeave(M,z){M._isLeaving=!0;const K=()=>P(M,z);op(M,u),op(M,h),vLe(),OG(()=>{M._isLeaving&&(B_(M,u),op(M,f),PG(S)||FG(M,i,_,K))}),F_(S,[M,K])},onEnterCancelled(M){N(M,!1),F_(y,[M])},onAppearCancelled(M){N(M,!0),F_(I,[M])},onLeaveCancelled(M){P(M),F_(x,[M])}})}function pLe(n){if(n==null)return null;if(_8(n))return[sF(n.enter),sF(n.leave)];{const e=sF(n);return[e,e]}}function sF(n){return oLe(n)}function op(n,e){e.split(/\\s+/).forEach(t=>t&&n.classList.add(t)),(n[Yx]||(n[Yx]=new Set)).add(e)}function B_(n,e){e.split(/\\s+/).forEach(i=>i&&n.classList.remove(i));const t=n[Yx];t&&(t.delete(e),t.size||(n[Yx]=void 0))}function OG(n){requestAnimationFrame(()=>{requestAnimationFrame(n)})}let mLe=0;function FG(n,e,t,i){const s=n._endId=++mLe,o=()=>{s===n._endId&&i()};if(t!=null)return setTimeout(o,t);const{type:r,timeout:a,propCount:l}=_Le(n,e);if(!r)return i();const c=r+\"end\";let d=0;const u=()=>{n.removeEventListener(c,h),o()},h=f=>{f.target===n&&++d>=l&&u()};setTimeout(()=>{d<l&&u()},a+1),n.addEventListener(c,h)}function _Le(n,e){const t=window.getComputedStyle(n),i=g=>(t[g]||\"\").split(\", \"),s=i(`${sp}Delay`),o=i(`${sp}Duration`),r=BG(s,o),a=i(`${Sy}Delay`),l=i(`${Sy}Duration`),c=BG(a,l);let d=null,u=0,h=0;e===sp?r>0&&(d=sp,u=r,h=o.length):e===Sy?c>0&&(d=Sy,u=c,h=l.length):(u=Math.max(r,c),d=u>0?r>c?sp:Sy:null,h=d?d===sp?o.length:l.length:0);const f=d===sp&&/\\b(transform|all)(,|$)/.test(i(`${sp}Property`).toString());return{type:d,timeout:u,propCount:h,hasTransform:f}}function BG(n,e){for(;n.length<e.length;)n=n.concat(n);return Math.max(...e.map((t,i)=>WG(t)+WG(n[i])))}function WG(n){return n===\"auto\"?0:Number(n.slice(0,-1).replace(\",\",\".\"))*1e3}function vLe(){return document.body.offsetHeight}function bLe(n,e,t){const i=n[Yx];i&&(e=(e?[e,...i]:[...i]).join(\" \")),e==null?n.removeAttribute(\"class\"):t?n.setAttribute(\"class\",e):n.className=e}const u2=Symbol(\"_vod\"),voe=Symbol(\"_vsh\"),Emt={beforeMount(n,{value:e},{transition:t}){n[u2]=n.style.display===\"none\"?\"\":n.style.display,t&&e?t.beforeEnter(n):xy(n,e)},mounted(n,{value:e},{transition:t}){t&&e&&t.enter(n)},updated(n,{value:e,oldValue:t},{transition:i}){!e!=!t&&(i?e?(i.beforeEnter(n),xy(n,!0),i.enter(n)):i.leave(n,()=>{xy(n,!1)}):xy(n,e))},beforeUnmount(n,{value:e}){xy(n,e)}};function xy(n,e){n.style.display=e?n[u2]:\"none\",n[voe]=!e}const boe=Symbol(\"\");function Tmt(n){const e=pc();if(!e)return;const t=e.ut=(s=n(e.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner=\"${e.uid}\"]`)).forEach(o=>h2(o,s))},i=()=>{const s=n(e.proxy);e.ce?h2(e.ce,s):C8(e.subTree,s),t(s)};Rse(()=>{Ixe(i)}),cn(()=>{const s=new MutationObserver(i);s.observe(e.subTree.el.parentNode,{childList:!0}),uo(()=>s.disconnect())})}function C8(n,e){if(n.shapeFlag&128){const t=n.suspense;n=t.activeBranch,t.pendingBranch&&!t.isHydrating&&t.effects.push(()=>{C8(t.activeBranch,e)})}for(;n.component;)n=n.component.subTree;if(n.shapeFlag&1&&n.el)h2(n.el,e);else if(n.type===Bi)n.children.forEach(t=>C8(t,e));else if(n.type===V1){let{el:t,anchor:i}=n;for(;t&&(h2(t,e),t!==i);)t=t.nextSibling}}function h2(n,e){if(n.nodeType===1){const t=n.style;let i=\"\";for(const s in e)t.setProperty(`--${s}`,e[s]),i+=`--${s}: ${e[s]};`;t[boe]=i}}const CLe=/(^|;)\\s*display\\s*:/;function wLe(n,e,t){const i=n.style,s=yC(t);let o=!1;if(t&&!s){if(e)if(yC(e))for(const r of e.split(\";\")){const a=r.slice(0,r.indexOf(\":\")).trim();t[a]==null&&nN(i,a,\"\")}else for(const r in e)t[r]==null&&nN(i,r,\"\");for(const r in t)r===\"display\"&&(o=!0),nN(i,r,t[r])}else if(s){if(e!==t){const r=i[boe];r&&(t+=\";\"+r),i.cssText=t,o=CLe.test(t)}}else e&&n.removeAttribute(\"style\");u2 in n&&(n[u2]=o?i.display:\"\",n[voe]&&(i.display=\"none\"))}const HG=/\\s*!important$/;function nN(n,e,t){if(xh(t))t.forEach(i=>nN(n,e,i));else if(t==null&&(t=\"\"),e.startsWith(\"--\"))n.setProperty(e,t);else{const i=yLe(n,e);HG.test(t)?n.setProperty(mV(i),t.replace(HG,\"\"),\"important\"):n[i]=t}}const VG=[\"Webkit\",\"Moz\",\"ms\"],oF={};function yLe(n,e){const t=oF[e];if(t)return t;let i=id(e);if(i!==\"filter\"&&i in n)return oF[e]=i;i=nLe(i);for(let s=0;s<VG.length;s++){const o=VG[s]+i;if(o in n)return oF[e]=o}return e}const zG=\"http://www.w3.org/1999/xlink\";function $G(n,e,t,i,s,o=aLe(e)){i&&e.startsWith(\"xlink:\")?t==null?n.removeAttributeNS(zG,e.slice(6,e.length)):n.setAttributeNS(zG,e,t):t==null||o&&!poe(t)?n.removeAttribute(e):n.setAttribute(e,o?\"\":m8(t)?String(t):t)}function UG(n,e,t,i,s){if(e===\"innerHTML\"||e===\"textContent\"){t!=null&&(n[e]=e===\"innerHTML\"?moe(t):t);return}const o=n.tagName;if(e===\"value\"&&o!==\"PROGRESS\"&&!o.includes(\"-\")){const a=o===\"OPTION\"?n.getAttribute(\"value\")||\"\":n.value,l=t==null?n.type===\"checkbox\"?\"on\":\"\":String(t);(a!==l||!(\"_value\"in n))&&(n.value=l),t==null&&n.removeAttribute(e),n._value=t;return}let r=!1;if(t===\"\"||t==null){const a=typeof n[e];a===\"boolean\"?t=poe(t):t==null&&a===\"string\"?(t=\"\",r=!0):a===\"number\"&&(t=0,r=!0)}try{n[e]=t}catch{}r&&n.removeAttribute(s||e)}function Tp(n,e,t,i){n.addEventListener(e,t,i)}function SLe(n,e,t,i){n.removeEventListener(e,t,i)}const jG=Symbol(\"_vei\");function xLe(n,e,t,i,s=null){const o=n[jG]||(n[jG]={}),r=o[e];if(i&&r)r.value=i;else{const[a,l]=LLe(e);if(i){const c=o[e]=ILe(i,s);Tp(n,a,c,l)}else r&&(SLe(n,a,r,l),o[e]=void 0)}}const KG=/(?:Once|Passive|Capture)$/;function LLe(n){let e;if(KG.test(n)){e={};let i;for(;i=n.match(KG);)n=n.slice(0,n.length-i[0].length),e[i[0].toLowerCase()]=!0}return[n[2]===\":\"?n.slice(3):mV(n.slice(2)),e]}let rF=0;const kLe=Promise.resolve(),DLe=()=>rF||(kLe.then(()=>rF=0),rF=Date.now());function ILe(n,e){const t=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=t.attached)return;Jd(ELe(i,t.value),e,5,[i])};return t.value=n,t.attached=DLe(),t}function ELe(n,e){if(xh(e)){const t=n.stopImmediatePropagation;return n.stopImmediatePropagation=()=>{t.call(n),n._stopped=!0},e.map(i=>s=>!s._stopped&&i&&i(s))}else return e}const qG=n=>n.charCodeAt(0)===111&&n.charCodeAt(1)===110&&n.charCodeAt(2)>96&&n.charCodeAt(2)<123,TLe=(n,e,t,i,s,o)=>{const r=s===\"svg\";e===\"class\"?bLe(n,i,r):e===\"style\"?wLe(n,t,i):Xxe(e)?Qxe(e)||xLe(n,e,t,i,o):(e[0]===\".\"?(e=e.slice(1),!0):e[0]===\"^\"?(e=e.slice(1),!1):NLe(n,e,i,r))?(UG(n,e,i),!n.tagName.includes(\"-\")&&(e===\"value\"||e===\"checked\"||e===\"selected\")&&$G(n,e,i,r,o,e!==\"value\")):n._isVueCE&&(/[A-Z]/.test(e)||!yC(i))?UG(n,tLe(e),i,o,e):(e===\"true-value\"?n._trueValue=i:e===\"false-value\"&&(n._falseValue=i),$G(n,e,i,r))};function NLe(n,e,t,i){if(i)return!!(e===\"innerHTML\"||e===\"textContent\"||e in n&&qG(e)&&foe(t));if(e===\"spellcheck\"||e===\"draggable\"||e===\"translate\"||e===\"form\"||e===\"list\"&&n.tagName===\"INPUT\"||e===\"type\"&&n.tagName===\"TEXTAREA\")return!1;if(e===\"width\"||e===\"height\"){const s=n.tagName;if(s===\"IMG\"||s===\"VIDEO\"||s===\"CANVAS\"||s===\"SOURCE\")return!1}return qG(e)&&yC(t)?!1:e in n}const SC=n=>{const e=n.props[\"onUpdate:modelValue\"]||!1;return xh(e)?t=>sLe(e,t):e};function ALe(n){n.target.composing=!0}function GG(n){const e=n.target;e.composing&&(e.composing=!1,e.dispatchEvent(new Event(\"input\")))}const fg=Symbol(\"_assign\"),Nmt={created(n,{modifiers:{lazy:e,trim:t,number:i}},s){n[fg]=SC(s);const o=i||s.props&&s.props.type===\"number\";Tp(n,e?\"change\":\"input\",r=>{if(r.target.composing)return;let a=n.value;t&&(a=a.trim()),o&&(a=v8(a)),n[fg](a)}),t&&Tp(n,\"change\",()=>{n.value=n.value.trim()}),e||(Tp(n,\"compositionstart\",ALe),Tp(n,\"compositionend\",GG),Tp(n,\"change\",GG))},mounted(n,{value:e}){n.value=e??\"\"},beforeUpdate(n,{value:e,oldValue:t,modifiers:{lazy:i,trim:s,number:o}},r){if(n[fg]=SC(r),n.composing)return;const a=(o||n.type===\"number\")&&!/^0\\d/.test(n.value)?v8(n.value):n.value,l=e??\"\";a!==l&&(document.activeElement===n&&n.type!==\"range\"&&(i&&e===t||s&&n.value.trim()===l)||(n.value=l))}},RLe={deep:!0,created(n,e,t){n[fg]=SC(t),Tp(n,\"change\",()=>{const i=n._modelValue,s=Xx(n),o=n.checked,r=n[fg];if(xh(i)){const a=_V(i,s),l=a!==-1;if(o&&!l)r(i.concat(s));else if(!o&&l){const c=[...i];c.splice(a,1),r(c)}}else if(GR(i)){const a=new Set(i);o?a.add(s):a.delete(s),r(a)}else r(Coe(n,o))})},mounted:ZG,beforeUpdate(n,e,t){n[fg]=SC(t),ZG(n,e,t)}};function ZG(n,{value:e,oldValue:t},i){n._modelValue=e;let s;if(xh(e))s=_V(e,i.props.value)>-1;else if(GR(e))s=e.has(i.props.value);else{if(e===t)return;s=iD(e,Coe(n,!0))}n.checked!==s&&(n.checked=s)}const Amt={deep:!0,created(n,{value:e,modifiers:{number:t}},i){const s=GR(e);Tp(n,\"change\",()=>{const o=Array.prototype.filter.call(n.options,r=>r.selected).map(r=>t?v8(Xx(r)):Xx(r));n[fg](n.multiple?s?new Set(o):o:o[0]),n._assigning=!0,Go(()=>{n._assigning=!1})}),n[fg]=SC(i)},mounted(n,{value:e}){YG(n,e)},beforeUpdate(n,e,t){n[fg]=SC(t)},updated(n,{value:e}){n._assigning||YG(n,e)}};function YG(n,e){const t=n.multiple,i=xh(e);if(!(t&&!i&&!GR(e))){for(let s=0,o=n.options.length;s<o;s++){const r=n.options[s],a=Xx(r);if(t)if(i){const l=typeof a;l===\"string\"||l===\"number\"?r.selected=e.some(c=>String(c)===String(a)):r.selected=_V(e,a)>-1}else r.selected=e.has(a);else if(iD(Xx(r),e)){n.selectedIndex!==s&&(n.selectedIndex=s);return}}!t&&n.selectedIndex!==-1&&(n.selectedIndex=-1)}}function Xx(n){return\"_value\"in n?n._value:n.value}function Coe(n,e){const t=e?\"_trueValue\":\"_falseValue\";return t in n?n[t]:e}const MLe=[\"ctrl\",\"shift\",\"alt\",\"meta\"],PLe={stop:n=>n.stopPropagation(),prevent:n=>n.preventDefault(),self:n=>n.target!==n.currentTarget,ctrl:n=>!n.ctrlKey,shift:n=>!n.shiftKey,alt:n=>!n.altKey,meta:n=>!n.metaKey,left:n=>\"button\"in n&&n.button!==0,middle:n=>\"button\"in n&&n.button!==1,right:n=>\"button\"in n&&n.button!==2,exact:(n,e)=>MLe.some(t=>n[`${t}Key`]&&!e.includes(t))},sN=(n,e)=>{const t=n._withMods||(n._withMods={}),i=e.join(\".\");return t[i]||(t[i]=(s,...o)=>{for(let r=0;r<e.length;r++){const a=PLe[e[r]];if(a&&a(s,e))return}return n(s,...o)})},OLe={esc:\"escape\",space:\" \",up:\"arrow-up\",left:\"arrow-left\",right:\"arrow-right\",down:\"arrow-down\",delete:\"backspace\"},Rmt=(n,e)=>{const t=n._withKeys||(n._withKeys={}),i=e.join(\".\");return t[i]||(t[i]=s=>{if(!(\"key\"in s))return;const o=mV(s.key);if(e.some(r=>r===o||OLe[r]===o))return n(s)})},woe=gV({patchProp:TLe},uLe);let JS,XG=!1;function FLe(){return JS||(JS=Sxe(woe))}function BLe(){return JS=XG?JS:xxe(woe),XG=!0,JS}const WLe=(...n)=>{const e=FLe().createApp(...n),{mount:t}=e;return e.mount=i=>{const s=Soe(i);if(!s)return;const o=e._component;!foe(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent=\"\");const r=t(s,!1,yoe(s));return s instanceof Element&&(s.removeAttribute(\"v-cloak\"),s.setAttribute(\"data-v-app\",\"\")),r},e},HLe=(...n)=>{const e=BLe().createApp(...n),{mount:t}=e;return e.mount=i=>{const s=Soe(i);if(s)return t(s,!0,yoe(s))},e};function yoe(n){if(n instanceof SVGElement)return\"svg\";if(typeof MathMLElement==\"function\"&&n instanceof MathMLElement)return\"mathml\"}function Soe(n){return yC(n)?document.querySelector(n):n}const VLe=/\"(?:_|\\\\u0{2}5[Ff]){2}(?:p|\\\\u0{2}70)(?:r|\\\\u0{2}72)(?:o|\\\\u0{2}6[Ff])(?:t|\\\\u0{2}74)(?:o|\\\\u0{2}6[Ff])(?:_|\\\\u0{2}5[Ff]){2}\"\\s*:/,zLe=/\"(?:c|\\\\u0063)(?:o|\\\\u006[Ff])(?:n|\\\\u006[Ee])(?:s|\\\\u0073)(?:t|\\\\u0074)(?:r|\\\\u0072)(?:u|\\\\u0075)(?:c|\\\\u0063)(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:r|\\\\u0072)\"\\s*:/,$Le=/^\\s*[\"[{]|^\\s*-?\\d{1,16}(\\.\\d{1,17})?([Ee][+-]?\\d+)?\\s*$/;function ULe(n,e){if(n===\"__proto__\"||n===\"constructor\"&&e&&typeof e==\"object\"&&\"prototype\"in e){jLe(n);return}return e}function jLe(n){console.warn(`[destr] Dropping \"${n}\" key to prevent prototype pollution.`)}function xC(n,e={}){if(typeof n!=\"string\")return n;if(n[0]==='\"'&&n[n.length-1]==='\"'&&n.indexOf(\"\\\\\")===-1)return n.slice(1,-1);const t=n.trim();if(t.length<=9)switch(t.toLowerCase()){case\"true\":return!0;case\"false\":return!1;case\"undefined\":return;case\"null\":return null;case\"nan\":return Number.NaN;case\"infinity\":return Number.POSITIVE_INFINITY;case\"-infinity\":return Number.NEGATIVE_INFINITY}if(!$Le.test(n)){if(e.strict)throw new SyntaxError(\"[destr] Invalid JSON\");return n}try{if(VLe.test(n)||zLe.test(n)){if(e.strict)throw new Error(\"[destr] Possible prototype pollution\");return JSON.parse(n,ULe)}return JSON.parse(n)}catch(i){if(e.strict)throw i;return n}}const KLe=/#/g,qLe=/&/g,GLe=/\\//g,ZLe=/=/g,vV=/\\+/g,YLe=/%5e/gi,XLe=/%60/gi,QLe=/%7c/gi,JLe=/%20/gi;function eke(n){return encodeURI(\"\"+n).replace(QLe,\"|\")}function w8(n){return eke(typeof n==\"string\"?n:JSON.stringify(n)).replace(vV,\"%2B\").replace(JLe,\"+\").replace(KLe,\"%23\").replace(qLe,\"%26\").replace(XLe,\"`\").replace(YLe,\"^\").replace(GLe,\"%2F\")}function aF(n){return w8(n).replace(ZLe,\"%3D\")}function f2(n=\"\"){try{return decodeURIComponent(\"\"+n)}catch{return\"\"+n}}function tke(n){return f2(n.replace(vV,\" \"))}function ike(n){return f2(n.replace(vV,\" \"))}function xoe(n=\"\"){const e=Object.create(null);n[0]===\"?\"&&(n=n.slice(1));for(const t of n.split(\"&\")){const i=t.match(/([^=]+)=?(.*)/)||[];if(i.length<2)continue;const s=tke(i[1]);if(s===\"__proto__\"||s===\"constructor\")continue;const o=ike(i[2]||\"\");e[s]===void 0?e[s]=o:Array.isArray(e[s])?e[s].push(o):e[s]=[e[s],o]}return e}function nke(n,e){return(typeof e==\"number\"||typeof e==\"boolean\")&&(e=String(e)),e?Array.isArray(e)?e.map(t=>`${aF(n)}=${w8(t)}`).join(\"&\"):`${aF(n)}=${w8(e)}`:aF(n)}function ske(n){return Object.keys(n).filter(e=>n[e]!==void 0).map(e=>nke(e,n[e])).filter(Boolean).join(\"&\")}const oke=/^[\\s\\w\\0+.-]{2,}:([/\\\\]{1,2})/,rke=/^[\\s\\w\\0+.-]{2,}:([/\\\\]{2})?/,ake=/^([/\\\\]\\s*){2,}[^/\\\\]/,lke=/^[\\s\\0]*(blob|data|javascript|vbscript):$/i,cke=/\\/$|\\/\\?|\\/#/,dke=/^\\.?\\//;function K0(n,e={}){return typeof e==\"boolean\"&&(e={acceptRelative:e}),e.strict?oke.test(n):rke.test(n)||(e.acceptRelative?ake.test(n):!1)}function uke(n){return!!n&&lke.test(n)}function y8(n=\"\",e){return e?cke.test(n):n.endsWith(\"/\")}function bV(n=\"\",e){if(!e)return(y8(n)?n.slice(0,-1):n)||\"/\";if(!y8(n,!0))return n||\"/\";let t=n,i=\"\";const s=n.indexOf(\"#\");s!==-1&&(t=n.slice(0,s),i=n.slice(s));const[o,...r]=t.split(\"?\");return((o.endsWith(\"/\")?o.slice(0,-1):o)||\"/\")+(r.length>0?`?${r.join(\"?\")}`:\"\")+i}function g2(n=\"\",e){if(!e)return n.endsWith(\"/\")?n:n+\"/\";if(y8(n,!0))return n||\"/\";let t=n,i=\"\";const s=n.indexOf(\"#\");if(s!==-1&&(t=n.slice(0,s),i=n.slice(s),!t))return i;const[o,...r]=t.split(\"?\");return o+\"/\"+(r.length>0?`?${r.join(\"?\")}`:\"\")+i}function hke(n=\"\"){return n.startsWith(\"/\")}function QG(n=\"\"){return hke(n)?n:\"/\"+n}function fke(n,e){if(koe(e)||K0(n))return n;const t=bV(e);return n.startsWith(t)?n:CV(t,n)}function JG(n,e){if(koe(e))return n;const t=bV(e);if(!n.startsWith(t))return n;const i=n.slice(t.length);return i[0]===\"/\"?i:\"/\"+i}function Loe(n,e){const t=mke(n),i={...xoe(t.search),...e};return t.search=ske(i),_ke(t)}function koe(n){return!n||n===\"/\"}function gke(n){return n&&n!==\"/\"}function CV(n,...e){let t=n||\"\";for(const i of e.filter(s=>gke(s)))if(t){const s=i.replace(dke,\"\");t=g2(t)+s}else t=i;return t}function Doe(...n){var r,a,l,c;const e=/\\/(?!\\/)/,t=n.filter(Boolean),i=[];let s=0;for(const d of t)if(!(!d||d===\"/\")){for(const[u,h]of d.split(e).entries())if(!(!h||h===\".\")){if(h===\"..\"){if(i.length===1&&K0(i[0]))continue;i.pop(),s--;continue}if(u===1&&((r=i[i.length-1])!=null&&r.endsWith(\":/\"))){i[i.length-1]+=\"/\"+h;continue}i.push(h),s++}}let o=i.join(\"/\");return s>=0?(a=t[0])!=null&&a.startsWith(\"/\")&&!o.startsWith(\"/\")?o=\"/\"+o:(l=t[0])!=null&&l.startsWith(\"./\")&&!o.startsWith(\"./\")&&(o=\"./\"+o):o=\"../\".repeat(-1*s)+o,(c=t[t.length-1])!=null&&c.endsWith(\"/\")&&!o.endsWith(\"/\")&&(o+=\"/\"),o}function pke(n,e,t={}){return t.trailingSlash||(n=g2(n),e=g2(e)),t.leadingSlash||(n=QG(n),e=QG(e)),t.encoding||(n=f2(n),e=f2(e)),n===e}const Ioe=Symbol.for(\"ufo:protocolRelative\");function mke(n=\"\",e){const t=n.match(/^[\\s\\0]*(blob:|data:|javascript:|vbscript:)(.*)/i);if(t){const[,u,h=\"\"]=t;return{protocol:u.toLowerCase(),pathname:h,href:u+h,auth:\"\",host:\"\",search:\"\",hash:\"\"}}if(!K0(n,{acceptRelative:!0}))return eZ(n);const[,i=\"\",s,o=\"\"]=n.replace(/\\\\/g,\"/\").match(/^[\\s\\0]*([\\w+.-]{2,}:)?\\/\\/([^/@]+@)?(.*)/)||[];let[,r=\"\",a=\"\"]=o.match(/([^#/?]*)(.*)?/)||[];i===\"file:\"&&(a=a.replace(/\\/(?=[A-Za-z]:)/,\"\"));const{pathname:l,search:c,hash:d}=eZ(a);return{protocol:i.toLowerCase(),auth:s?s.slice(0,Math.max(0,s.length-1)):\"\",host:r,pathname:l,search:c,hash:d,[Ioe]:!i}}function eZ(n=\"\"){const[e=\"\",t=\"\",i=\"\"]=(n.match(/([^#?]*)(\\?[^#]*)?(#.*)?/)||[]).splice(1);return{pathname:e,search:t,hash:i}}function _ke(n){const e=n.pathname||\"\",t=n.search?(n.search.startsWith(\"?\")?\"\":\"?\")+n.search:\"\",i=n.hash||\"\",s=n.auth?n.auth+\"@\":\"\",o=n.host||\"\";return(n.protocol||n[Ioe]?(n.protocol||\"\")+\"//\":\"\")+s+o+e+t+i}class vke extends Error{constructor(e,t){super(e,t),this.name=\"FetchError\",t!=null&&t.cause&&!this.cause&&(this.cause=t.cause)}}function bke(n){var l,c,d,u,h;const e=((l=n.error)==null?void 0:l.message)||((c=n.error)==null?void 0:c.toString())||\"\",t=((d=n.request)==null?void 0:d.method)||((u=n.options)==null?void 0:u.method)||\"GET\",i=((h=n.request)==null?void 0:h.url)||String(n.request)||\"/\",s=`[${t}] ${JSON.stringify(i)}`,o=n.response?`${n.response.status} ${n.response.statusText}`:\"<no response>\",r=`${s}: ${o}${e?` ${e}`:\"\"}`,a=new vke(r,n.error?{cause:n.error}:void 0);for(const f of[\"request\",\"options\",\"response\"])Object.defineProperty(a,f,{get(){return n[f]}});for(const[f,g]of[[\"data\",\"_data\"],[\"status\",\"status\"],[\"statusCode\",\"status\"],[\"statusText\",\"statusText\"],[\"statusMessage\",\"statusText\"]])Object.defineProperty(a,f,{get(){return n.response&&n.response[g]}});return a}const Cke=new Set(Object.freeze([\"PATCH\",\"POST\",\"PUT\",\"DELETE\"]));function tZ(n=\"GET\"){return Cke.has(n.toUpperCase())}function wke(n){if(n===void 0)return!1;const e=typeof n;return e===\"string\"||e===\"number\"||e===\"boolean\"||e===null?!0:e!==\"object\"?!1:Array.isArray(n)?!0:n.buffer?!1:n.constructor&&n.constructor.name===\"Object\"||typeof n.toJSON==\"function\"}const yke=new Set([\"image/svg\",\"application/xml\",\"application/xhtml\",\"application/html\"]),Ske=/^application\\/(?:[\\w!#$%&*.^`~-]*\\+)?json(;.+)?$/i;function xke(n=\"\"){if(!n)return\"json\";const e=n.split(\";\").shift()||\"\";return Ske.test(e)?\"json\":yke.has(e)||e.startsWith(\"text/\")?\"text\":\"blob\"}function Lke(n,e,t,i){const s=kke((e==null?void 0:e.headers)??(n==null?void 0:n.headers),t==null?void 0:t.headers,i);let o;return(t!=null&&t.query||t!=null&&t.params||e!=null&&e.params||e!=null&&e.query)&&(o={...t==null?void 0:t.params,...t==null?void 0:t.query,...e==null?void 0:e.params,...e==null?void 0:e.query}),{...t,...e,query:o,params:o,headers:s}}function kke(n,e,t){if(!e)return new t(n);const i=new t(e);if(n)for(const[s,o]of Symbol.iterator in n||Array.isArray(n)?n:new t(n))i.set(s,o);return i}async function fE(n,e){if(e)if(Array.isArray(e))for(const t of e)await t(n);else await e(n)}const Dke=new Set([408,409,425,429,500,502,503,504]),Ike=new Set([101,204,205,304]);function Eoe(n={}){const{fetch:e=globalThis.fetch,Headers:t=globalThis.Headers,AbortController:i=globalThis.AbortController}=n;async function s(a){const l=a.error&&a.error.name===\"AbortError\"&&!a.options.timeout||!1;if(a.options.retry!==!1&&!l){let d;typeof a.options.retry==\"number\"?d=a.options.retry:d=tZ(a.options.method)?0:1;const u=a.response&&a.response.status||500;if(d>0&&(Array.isArray(a.options.retryStatusCodes)?a.options.retryStatusCodes.includes(u):Dke.has(u))){const h=typeof a.options.retryDelay==\"function\"?a.options.retryDelay(a):a.options.retryDelay||0;return h>0&&await new Promise(f=>setTimeout(f,h)),o(a.request,{...a.options,retry:d-1})}}const c=bke(a);throw Error.captureStackTrace&&Error.captureStackTrace(c,o),c}const o=async function(l,c={}){const d={request:l,options:Lke(l,c,n.defaults,t),response:void 0,error:void 0};d.options.method&&(d.options.method=d.options.method.toUpperCase()),d.options.onRequest&&await fE(d,d.options.onRequest),typeof d.request==\"string\"&&(d.options.baseURL&&(d.request=fke(d.request,d.options.baseURL)),d.options.query&&(d.request=Loe(d.request,d.options.query),delete d.options.query),\"query\"in d.options&&delete d.options.query,\"params\"in d.options&&delete d.options.params),d.options.body&&tZ(d.options.method)&&(wke(d.options.body)?(d.options.body=typeof d.options.body==\"string\"?d.options.body:JSON.stringify(d.options.body),d.options.headers=new t(d.options.headers||{}),d.options.headers.has(\"content-type\")||d.options.headers.set(\"content-type\",\"application/json\"),d.options.headers.has(\"accept\")||d.options.headers.set(\"accept\",\"application/json\")):(\"pipeTo\"in d.options.body&&typeof d.options.body.pipeTo==\"function\"||typeof d.options.body.pipe==\"function\")&&(\"duplex\"in d.options||(d.options.duplex=\"half\")));let u;if(!d.options.signal&&d.options.timeout){const f=new i;u=setTimeout(()=>{const g=new Error(\"[TimeoutError]: The operation was aborted due to timeout\");g.name=\"TimeoutError\",g.code=23,f.abort(g)},d.options.timeout),d.options.signal=f.signal}try{d.response=await e(d.request,d.options)}catch(f){return d.error=f,d.options.onRequestError&&await fE(d,d.options.onRequestError),await s(d)}finally{u&&clearTimeout(u)}if((d.response.body||d.response._bodyInit)&&!Ike.has(d.response.status)&&d.options.method!==\"HEAD\"){const f=(d.options.parseResponse?\"json\":d.options.responseType)||xke(d.response.headers.get(\"content-type\")||\"\");switch(f){case\"json\":{const g=await d.response.text(),p=d.options.parseResponse||xC;d.response._data=p(g);break}case\"stream\":{d.response._data=d.response.body||d.response._bodyInit;break}default:d.response._data=await d.response[f]()}}return d.options.onResponse&&await fE(d,d.options.onResponse),!d.options.ignoreResponseError&&d.response.status>=400&&d.response.status<600?(d.options.onResponseError&&await fE(d,d.options.onResponseError),await s(d)):d.response},r=async function(l,c){return(await o(l,c))._data};return r.raw=o,r.native=(...a)=>e(...a),r.create=(a={},l={})=>Eoe({...n,...l,defaults:{...n.defaults,...l.defaults,...a}}),r}const p2=function(){if(typeof globalThis<\"u\")return globalThis;if(typeof self<\"u\")return self;if(typeof window<\"u\")return window;if(typeof global<\"u\")return global;throw new Error(\"unable to locate global object\")}(),Eke=p2.fetch?(...n)=>p2.fetch(...n):()=>Promise.reject(new Error(\"[ofetch] global.fetch is not supported!\")),Tke=p2.Headers,Nke=p2.AbortController,Ake=Eoe({fetch:Eke,Headers:Tke,AbortController:Nke}),Rke=Ake,Mke=()=>{var n;return((n=window==null?void 0:window.__NUXT__)==null?void 0:n.config)||{}},m2=Mke().app,Pke=()=>m2.baseURL,Oke=()=>m2.buildAssetsDir,Fke=(...n)=>Doe(Toe(),Oke(),...n),Toe=(...n)=>{const e=m2.cdnURL||m2.baseURL;return n.length?Doe(e,...n):e};globalThis.__buildAssetsURL=Fke,globalThis.__publicAssetsURL=Toe;globalThis.$fetch||(globalThis.$fetch=Rke.create({baseURL:Pke()}));function S8(n,e={},t){for(const i in n){const s=n[i],o=t?`${t}:${i}`:i;typeof s==\"object\"&&s!==null?S8(s,e,o):typeof s==\"function\"&&(e[o]=s)}return e}const Bke={run:n=>n()},Wke=()=>Bke,Noe=typeof console.createTask<\"u\"?console.createTask:Wke;function Hke(n,e){const t=e.shift(),i=Noe(t);return n.reduce((s,o)=>s.then(()=>i.run(()=>o(...e))),Promise.resolve())}function Vke(n,e){const t=e.shift(),i=Noe(t);return Promise.all(n.map(s=>i.run(()=>s(...e))))}function lF(n,e){for(const t of[...n])t(e)}class zke{constructor(){this._hooks={},this._before=void 0,this._after=void 0,this._deprecatedMessages=void 0,this._deprecatedHooks={},this.hook=this.hook.bind(this),this.callHook=this.callHook.bind(this),this.callHookWith=this.callHookWith.bind(this)}hook(e,t,i={}){if(!e||typeof t!=\"function\")return()=>{};const s=e;let o;for(;this._deprecatedHooks[e];)o=this._deprecatedHooks[e],e=o.to;if(o&&!i.allowDeprecated){let r=o.message;r||(r=`${s} hook has been deprecated`+(o.to?`, please use ${o.to}`:\"\")),this._deprecatedMessages||(this._deprecatedMessages=new Set),this._deprecatedMessages.has(r)||(console.warn(r),this._deprecatedMessages.add(r))}if(!t.name)try{Object.defineProperty(t,\"name\",{get:()=>\"_\"+e.replace(/\\W+/g,\"_\")+\"_hook_cb\",configurable:!0})}catch{}return this._hooks[e]=this._hooks[e]||[],this._hooks[e].push(t),()=>{t&&(this.removeHook(e,t),t=void 0)}}hookOnce(e,t){let i,s=(...o)=>(typeof i==\"function\"&&i(),i=void 0,s=void 0,t(...o));return i=this.hook(e,s),i}removeHook(e,t){if(this._hooks[e]){const i=this._hooks[e].indexOf(t);i!==-1&&this._hooks[e].splice(i,1),this._hooks[e].length===0&&delete this._hooks[e]}}deprecateHook(e,t){this._deprecatedHooks[e]=typeof t==\"string\"?{to:t}:t;const i=this._hooks[e]||[];delete this._hooks[e];for(const s of i)this.hook(e,s)}deprecateHooks(e){Object.assign(this._deprecatedHooks,e);for(const t in e)this.deprecateHook(t,e[t])}addHooks(e){const t=S8(e),i=Object.keys(t).map(s=>this.hook(s,t[s]));return()=>{for(const s of i.splice(0,i.length))s()}}removeHooks(e){const t=S8(e);for(const i in t)this.removeHook(i,t[i])}removeAllHooks(){for(const e in this._hooks)delete this._hooks[e]}callHook(e,...t){return t.unshift(e),this.callHookWith(Hke,e,...t)}callHookParallel(e,...t){return t.unshift(e),this.callHookWith(Vke,e,...t)}callHookWith(e,t,...i){const s=this._before||this._after?{name:t,args:i,context:{}}:void 0;this._before&&lF(this._before,s);const o=e(t in this._hooks?[...this._hooks[t]]:[],i);return o instanceof Promise?o.finally(()=>{this._after&&s&&lF(this._after,s)}):(this._after&&s&&lF(this._after,s),o)}beforeEach(e){return this._before=this._before||[],this._before.push(e),()=>{if(this._before!==void 0){const t=this._before.indexOf(e);t!==-1&&this._before.splice(t,1)}}}afterEach(e){return this._after=this._after||[],this._after.push(e),()=>{if(this._after!==void 0){const t=this._after.indexOf(e);t!==-1&&this._after.splice(t,1)}}}}function Aoe(){return new zke}function $ke(n={}){let e,t=!1;const i=r=>{if(e&&e!==r)throw new Error(\"Context conflict\")};let s;if(n.asyncContext){const r=n.AsyncLocalStorage||globalThis.AsyncLocalStorage;r?s=new r:console.warn(\"[unctx] `AsyncLocalStorage` is not provided.\")}const o=()=>{if(s){const r=s.getStore();if(r!==void 0)return r}return e};return{use:()=>{const r=o();if(r===void 0)throw new Error(\"Context is not available\");return r},tryUse:()=>o(),set:(r,a)=>{a||i(r),e=r,t=!0},unset:()=>{e=void 0,t=!1},call:(r,a)=>{i(r),e=r;try{return s?s.run(r,a):a()}finally{t||(e=void 0)}},async callAsync(r,a){e=r;const l=()=>{e=r},c=()=>e===r?l:void 0;x8.add(c);try{const d=s?s.run(r,a):a();return t||(e=void 0),await d}finally{x8.delete(c)}}}}function Uke(n={}){const e={};return{get(t,i={}){return e[t]||(e[t]=$ke({...n,...i})),e[t]}}}const _2=typeof globalThis<\"u\"?globalThis:typeof self<\"u\"?self:typeof global<\"u\"?global:typeof window<\"u\"?window:{},iZ=\"__unctx__\",jke=_2[iZ]||(_2[iZ]=Uke()),Kke=(n,e={})=>jke.get(n,e),nZ=\"__unctx_async_handlers__\",x8=_2[nZ]||(_2[nZ]=new Set);function Vv(n){const e=[];for(const s of x8){const o=s();o&&e.push(o)}const t=()=>{for(const s of e)s()};let i=n();return i&&typeof i==\"object\"&&\"catch\"in i&&(i=i.catch(s=>{throw t(),s})),[i,t]}const qke=!1,L8=!1,Gke=!1,Zke={componentName:\"NuxtLink\",prefetch:!0,prefetchOn:{visibility:!0}},Yke=null,Xke=\"#__nuxt\",Roe=\"nuxt-app\",Qke=\"vite:preloadError\";function Moe(n=Roe){return Kke(n,{asyncContext:!1})}const Jke=\"__nuxt_plugin\";function eDe(n){var s;let e=0;const t={_id:n.id||Roe||\"nuxt-app\",_scope:KH(),provide:void 0,globalName:\"nuxt\",versions:{get nuxt(){return\"3.13.2\"},get vue(){return t.vueApp.version}},payload:Kf({...((s=n.ssrContext)==null?void 0:s.payload)||{},data:Kf({}),state:Ba({}),once:new Set,_errors:Kf({})}),static:{data:{}},runWithContext(o){return t._scope.active&&!r_()?t._scope.run(()=>sZ(t,o)):sZ(t,o)},isHydrating:!0,deferHydration(){if(!t.isHydrating)return()=>{};e++;let o=!1;return()=>{if(!o&&(o=!0,e--,e===0))return t.isHydrating=!1,t.callHook(\"app:suspense:resolve\")}},_asyncDataPromises:{},_asyncData:Kf({}),_payloadRevivers:{},...n};{const o=window.__NUXT__;if(o)for(const r in o)switch(r){case\"data\":case\"state\":case\"_errors\":Object.assign(t.payload[r],o[r]);break;default:t.payload[r]=o[r]}}t.hooks=Aoe(),t.hook=t.hooks.hook,t.callHook=t.hooks.callHook,t.provide=(o,r)=>{const a=\"$\"+o;gE(t,a,r),gE(t.vueApp.config.globalProperties,a,r)},gE(t.vueApp,\"$nuxt\",t),gE(t.vueApp.config.globalProperties,\"$nuxt\",t);{window.addEventListener(Qke,r=>{t.callHook(\"app:chunkError\",{error:r.payload}),(t.isHydrating||r.payload.message.includes(\"Unable to preload CSS\"))&&r.preventDefault()}),window.useNuxtApp=window.useNuxtApp||In;const o=t.hook(\"app:error\",(...r)=>{console.error(\"[nuxt] error caught during app initialization\",...r)});t.hook(\"app:mounted\",o)}const i=t.payload.config;return t.provide(\"config\",i),t}function tDe(n,e){e.hooks&&n.hooks.addHooks(e.hooks)}async function iDe(n,e){if(typeof e==\"function\"){const{provide:t}=await n.runWithContext(()=>e(n))||{};if(t&&typeof t==\"object\")for(const i in t)n.provide(i,t[i])}}async function nDe(n,e){const t=[],i=[],s=[],o=[];let r=0;async function a(l){var d;const c=((d=l.dependsOn)==null?void 0:d.filter(u=>e.some(h=>h._name===u)&&!t.includes(u)))??[];if(c.length>0)i.push([new Set(c),l]);else{const u=iDe(n,l).then(async()=>{l._name&&(t.push(l._name),await Promise.all(i.map(async([h,f])=>{h.has(l._name)&&(h.delete(l._name),h.size===0&&(r++,await a(f)))})))});l.parallel?s.push(u.catch(h=>o.push(h))):await u}}for(const l of e)tDe(n,l);for(const l of e)await a(l);if(await Promise.all(s),r)for(let l=0;l<r;l++)await Promise.all(s);if(o.length)throw o[0]}function ua(n){if(typeof n==\"function\")return n;const e=n._name||n.name;return delete n.name,Object.assign(n.setup||(()=>{}),n,{[Jke]:!0,_name:e})}function sZ(n,e,t){const i=()=>e();return Moe(n._id).set(n),n.vueApp.runWithContext(i)}function sDe(n){var t;let e;return lV()&&(e=(t=pc())==null?void 0:t.appContext.app.$nuxt),e=e||Moe(n).tryUse(),e||null}function In(n){const e=sDe(n);if(!e)throw new Error(\"[nuxt] instance unavailable\");return e}function Tm(n){return In().$config}function gE(n,e,t){Object.defineProperty(n,e,{get:()=>t})}function oDe(n,e){if(typeof n!=\"string\")throw new TypeError(\"argument str must be a string\");const t={},i=e||{},s=i.decode||rDe;let o=0;for(;o<n.length;){const r=n.indexOf(\"=\",o);if(r===-1)break;let a=n.indexOf(\";\",o);if(a===-1)a=n.length;else if(a<r){o=n.lastIndexOf(\";\",r-1)+1;continue}const l=n.slice(o,r).trim();if(i!=null&&i.filter&&!(i!=null&&i.filter(l))){o=a+1;continue}if(t[l]===void 0){let c=n.slice(r+1,a).trim();c.codePointAt(0)===34&&(c=c.slice(1,-1)),t[l]=aDe(c,s)}o=a+1}return t}function rDe(n){return n.includes(\"%\")?decodeURIComponent(n):n}function aDe(n,e){try{return e(n)}catch{return n}}const pE=/^[\\u0009\\u0020-\\u007E\\u0080-\\u00FF]+$/;function oZ(n,e,t){const i=t||{},s=i.encode||encodeURIComponent;if(typeof s!=\"function\")throw new TypeError(\"option encode is invalid\");if(!pE.test(n))throw new TypeError(\"argument name is invalid\");const o=s(e);if(o&&!pE.test(o))throw new TypeError(\"argument val is invalid\");let r=n+\"=\"+o;if(i.maxAge!==void 0&&i.maxAge!==null){const a=i.maxAge-0;if(Number.isNaN(a)||!Number.isFinite(a))throw new TypeError(\"option maxAge is invalid\");r+=\"; Max-Age=\"+Math.floor(a)}if(i.domain){if(!pE.test(i.domain))throw new TypeError(\"option domain is invalid\");r+=\"; Domain=\"+i.domain}if(i.path){if(!pE.test(i.path))throw new TypeError(\"option path is invalid\");r+=\"; Path=\"+i.path}if(i.expires){if(!lDe(i.expires)||Number.isNaN(i.expires.valueOf()))throw new TypeError(\"option expires is invalid\");r+=\"; Expires=\"+i.expires.toUTCString()}if(i.httpOnly&&(r+=\"; HttpOnly\"),i.secure&&(r+=\"; Secure\"),i.priority)switch(typeof i.priority==\"string\"?i.priority.toLowerCase():i.priority){case\"low\":{r+=\"; Priority=Low\";break}case\"medium\":{r+=\"; Priority=Medium\";break}case\"high\":{r+=\"; Priority=High\";break}default:throw new TypeError(\"option priority is invalid\")}if(i.sameSite)switch(typeof i.sameSite==\"string\"?i.sameSite.toLowerCase():i.sameSite){case!0:{r+=\"; SameSite=Strict\";break}case\"lax\":{r+=\"; SameSite=Lax\";break}case\"strict\":{r+=\"; SameSite=Strict\";break}case\"none\":{r+=\"; SameSite=None\";break}default:throw new TypeError(\"option sameSite is invalid\")}return i.partitioned&&(r+=\"; Partitioned\"),r}function lDe(n){return Object.prototype.toString.call(n)===\"[object Date]\"||n instanceof Date}function cF(n){if(n===null||typeof n!=\"object\")return!1;const e=Object.getPrototypeOf(n);return e!==null&&e!==Object.prototype&&Object.getPrototypeOf(e)!==null||Symbol.iterator in n?!1:Symbol.toStringTag in n?Object.prototype.toString.call(n)===\"[object Module]\":!0}function k8(n,e,t=\".\",i){if(!cF(e))return k8(n,{},t,i);const s=Object.assign({},e);for(const o in n){if(o===\"__proto__\"||o===\"constructor\")continue;const r=n[o];r!=null&&(i&&i(s,o,r,t)||(Array.isArray(r)&&Array.isArray(s[o])?s[o]=[...r,...s[o]]:cF(r)&&cF(s[o])?s[o]=k8(r,s[o],(t?`${t}.`:\"\")+o.toString(),i):s[o]=r))}return s}function wV(n){return(...e)=>e.reduce((t,i)=>k8(t,i,\"\",n),{})}const nD=wV(),cDe=wV((n,e,t)=>{if(n[e]!==void 0&&typeof t==\"function\")return n[e]=t(n[e]),!0});function dDe(n,e){try{return e in n}catch{return!1}}class D8 extends Error{constructor(t,i={}){super(t,i);np(this,\"statusCode\",500);np(this,\"fatal\",!1);np(this,\"unhandled\",!1);np(this,\"statusMessage\");np(this,\"data\");np(this,\"cause\");i.cause&&!this.cause&&(this.cause=i.cause)}toJSON(){const t={message:this.message,statusCode:E8(this.statusCode,500)};return this.statusMessage&&(t.statusMessage=Poe(this.statusMessage)),this.data!==void 0&&(t.data=this.data),t}}np(D8,\"__h3_error__\",!0);function I8(n){if(typeof n==\"string\")return new D8(n);if(uDe(n))return n;const e=new D8(n.message??n.statusMessage??\"\",{cause:n.cause||n});if(dDe(n,\"stack\"))try{Object.defineProperty(e,\"stack\",{get(){return n.stack}})}catch{try{e.stack=n.stack}catch{}}if(n.data&&(e.data=n.data),n.statusCode?e.statusCode=E8(n.statusCode,e.statusCode):n.status&&(e.statusCode=E8(n.status,e.statusCode)),n.statusMessage?e.statusMessage=n.statusMessage:n.statusText&&(e.statusMessage=n.statusText),e.statusMessage){const t=e.statusMessage;Poe(e.statusMessage)!==t&&console.warn(\"[h3] Please prefer using `message` for longer error messages instead of `statusMessage`. In the future, `statusMessage` will be sanitized by default.\")}return n.fatal!==void 0&&(e.fatal=n.fatal),n.unhandled!==void 0&&(e.unhandled=n.unhandled),e}function uDe(n){var e;return((e=n==null?void 0:n.constructor)==null?void 0:e.__h3_error__)===!0}const hDe=/[^\\u0009\\u0020-\\u007E]/g;function Poe(n=\"\"){return n.replace(hDe,\"\")}function E8(n,e=200){return!n||(typeof n==\"string\"&&(n=Number.parseInt(n,10)),n<100||n>999)?e:n}const Ooe=Symbol(\"layout-meta\"),nl=Symbol(\"route\"),Fr=()=>{var n;return(n=In())==null?void 0:n.$router},ZR=()=>lV()?Ui(nl,In()._route):In()._route;function Mmt(n){return n}const fDe=()=>{try{if(In()._processingMiddleware)return!0}catch{return!1}return!1},Vs=(n,e)=>{n||(n=\"/\");const t=typeof n==\"string\"?n:\"path\"in n?T8(n):Fr().resolve(n).href;if(e!=null&&e.open){const{target:l=\"_blank\",windowFeatures:c={}}=e.open,d=Object.entries(c).filter(([u,h])=>h!==void 0).map(([u,h])=>`${u.toLowerCase()}=${h}`).join(\", \");return open(t,l,d),Promise.resolve()}const i=K0(t,{acceptRelative:!0}),s=(e==null?void 0:e.external)||i;if(s){if(!(e!=null&&e.external))throw new Error(\"Navigating to an external URL is not allowed by default. Use `navigateTo(url, { external: true })`.\");const{protocol:l}=new URL(t,window.location.href);if(l&&uke(l))throw new Error(`Cannot navigate to a URL with '${l}' protocol.`)}const o=fDe();if(!s&&o)return n;const r=Fr(),a=In();return s?(a._scope.stop(),e!=null&&e.replace?location.replace(t):location.href=t,o?a.isHydrating?new Promise(()=>{}):!1:Promise.resolve()):e!=null&&e.replace?r.replace(n):r.push(n)};function T8(n){return Loe(n.path||\"\",n.query||{})+(n.hash||\"\")}const Foe=\"__nuxt_error\",YR=()=>Ps(In().payload,\"error\"),d1=n=>{const e=XR(n);try{const t=In(),i=YR();t.hooks.callHook(\"app:error\",e),i.value=i.value||e}catch{throw e}return e},gDe=async(n={})=>{const e=In(),t=YR();e.callHook(\"app:error:cleared\",n),n.redirect&&await Fr().replace(n.redirect),t.value=Yke},pDe=n=>!!n&&typeof n==\"object\"&&Foe in n,XR=n=>{const e=I8(n);return Object.defineProperty(e,Foe,{value:!0,configurable:!1,writable:!1}),e};function mDe(n){const e=vDe(n),t=new ArrayBuffer(e.length),i=new DataView(t);for(let s=0;s<t.byteLength;s++)i.setUint8(s,e.charCodeAt(s));return t}const _De=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";function vDe(n){n.length%4===0&&(n=n.replace(/==?$/,\"\"));let e=\"\",t=0,i=0;for(let s=0;s<n.length;s++)t<<=6,t|=_De.indexOf(n[s]),i+=6,i===24&&(e+=String.fromCharCode((t&16711680)>>16),e+=String.fromCharCode((t&65280)>>8),e+=String.fromCharCode(t&255),t=i=0);return i===12?(t>>=4,e+=String.fromCharCode(t)):i===18&&(t>>=2,e+=String.fromCharCode((t&65280)>>8),e+=String.fromCharCode(t&255)),e}const bDe=-1,CDe=-2,wDe=-3,yDe=-4,SDe=-5,xDe=-6;function LDe(n,e){return kDe(JSON.parse(n),e)}function kDe(n,e){if(typeof n==\"number\")return s(n,!0);if(!Array.isArray(n)||n.length===0)throw new Error(\"Invalid input\");const t=n,i=Array(t.length);function s(o,r=!1){if(o===bDe)return;if(o===wDe)return NaN;if(o===yDe)return 1/0;if(o===SDe)return-1/0;if(o===xDe)return-0;if(r||typeof o!=\"number\")throw new Error(\"Invalid input\");if(o in i)return i[o];const a=t[o];if(!a||typeof a!=\"object\")i[o]=a;else if(Array.isArray(a))if(typeof a[0]==\"string\"){const l=a[0],c=e==null?void 0:e[l];if(c)return i[o]=c(s(a[1]));switch(l){case\"Date\":i[o]=new Date(a[1]);break;case\"Set\":const d=new Set;i[o]=d;for(let f=1;f<a.length;f+=1)d.add(s(a[f]));break;case\"Map\":const u=new Map;i[o]=u;for(let f=1;f<a.length;f+=2)u.set(s(a[f]),s(a[f+1]));break;case\"RegExp\":i[o]=new RegExp(a[1],a[2]);break;case\"Object\":i[o]=Object(a[1]);break;case\"BigInt\":i[o]=BigInt(a[1]);break;case\"null\":const h=Object.create(null);i[o]=h;for(let f=1;f<a.length;f+=2)h[a[f]]=s(a[f+1]);break;case\"Int8Array\":case\"Uint8Array\":case\"Uint8ClampedArray\":case\"Int16Array\":case\"Uint16Array\":case\"Int32Array\":case\"Uint32Array\":case\"Float32Array\":case\"Float64Array\":case\"BigInt64Array\":case\"BigUint64Array\":{const f=globalThis[l],g=new f(s(a[1]));i[o]=a[2]!==void 0?g.subarray(a[2],a[3]):g;break}case\"ArrayBuffer\":{const f=a[1],g=mDe(f);i[o]=g;break}case\"Temporal.Duration\":case\"Temporal.Instant\":case\"Temporal.PlainDate\":case\"Temporal.PlainTime\":case\"Temporal.PlainDateTime\":case\"Temporal.PlainMonthDay\":case\"Temporal.PlainYearMonth\":case\"Temporal.ZonedDateTime\":{const f=l.slice(9);i[o]=Temporal[f].from(a[1]);break}case\"URL\":{const f=new URL(a[1]);i[o]=f;break}case\"URLSearchParams\":{const f=new URLSearchParams(a[1]);i[o]=f;break}default:throw new Error(`Unknown type ${l}`)}}else{const l=new Array(a.length);i[o]=l;for(let c=0;c<a.length;c+=1){const d=a[c];d!==CDe&&(l[c]=s(d))}}else{const l={};i[o]=l;for(const c in a){if(c===\"__proto__\")throw new Error(\"Cannot parse an object with a `__proto__` property\");const d=a[c];l[c]=s(d)}}return i[o]}return s(0)}function Boe(n,e){const t=[],i=e.resolveKeyData||(o=>o.key),s=e.resolveValueData||(o=>o.value);for(const[o,r]of Object.entries(n))t.push(...(Array.isArray(r)?r:[r]).map(a=>{const l={key:o,value:a},c=s(l);return typeof c==\"object\"?Boe(c,e):Array.isArray(c)?c:{[typeof e.key==\"function\"?e.key(l):e.key]:i(l),[typeof e.value==\"function\"?e.value(l):e.value]:c}}).flat());return t}function Woe(n,e){return Object.entries(n).map(([t,i])=>{if(typeof i==\"object\"&&(i=Woe(i,e)),e.resolve){const s=e.resolve({key:t,value:i});if(typeof s<\"u\")return s}return typeof i==\"number\"&&(i=i.toString()),typeof i==\"string\"&&e.wrapValue&&(i=i.replace(new RegExp(e.wrapValue,\"g\"),`\\\\${e.wrapValue}`),i=`${e.wrapValue}${i}${e.wrapValue}`),`${t}${e.keyValueSeparator||\"\"}${i}`}).join(e.entrySeparator||\"\")}const DDe=new Set([\"title\",\"titleTemplate\",\"script\",\"style\",\"noscript\"]),oN=new Set([\"base\",\"meta\",\"link\",\"style\",\"script\",\"noscript\"]),IDe=new Set([\"title\",\"titleTemplate\",\"templateParams\",\"base\",\"htmlAttrs\",\"bodyAttrs\",\"meta\",\"link\",\"style\",\"script\",\"noscript\"]),EDe=new Set([\"base\",\"title\",\"titleTemplate\",\"bodyAttrs\",\"htmlAttrs\",\"templateParams\"]),Hoe=new Set([\"tagPosition\",\"tagPriority\",\"tagDuplicateStrategy\",\"children\",\"innerHTML\",\"textContent\",\"processTemplateParams\"]),TDe=typeof window<\"u\";function v2(n){let e=9;for(let t=0;t<n.length;)e=Math.imul(e^n.charCodeAt(t++),9**9);return((e^e>>>9)+65536).toString(16).substring(1,8).toLowerCase()}function N8(n){if(n._h)return n._h;if(n._d)return v2(n._d);let e=`${n.tag}:${n.textContent||n.innerHTML||\"\"}:`;for(const t in n.props)e+=`${t}:${String(n.props[t])},`;return v2(e)}const _a=n=>({keyValue:n,metaKey:\"property\"}),dF=n=>({keyValue:n}),yV={appleItunesApp:{unpack:{entrySeparator:\", \",resolve({key:n,value:e}){return`${qf(n)}=${e}`}}},articleExpirationTime:_a(\"article:expiration_time\"),articleModifiedTime:_a(\"article:modified_time\"),articlePublishedTime:_a(\"article:published_time\"),bookReleaseDate:_a(\"book:release_date\"),charset:{metaKey:\"charset\"},contentSecurityPolicy:{unpack:{entrySeparator:\"; \",resolve({key:n,value:e}){return`${qf(n)} ${e}`}},metaKey:\"http-equiv\"},contentType:{metaKey:\"http-equiv\"},defaultStyle:{metaKey:\"http-equiv\"},fbAppId:_a(\"fb:app_id\"),msapplicationConfig:dF(\"msapplication-Config\"),msapplicationTileColor:dF(\"msapplication-TileColor\"),msapplicationTileImage:dF(\"msapplication-TileImage\"),ogAudioSecureUrl:_a(\"og:audio:secure_url\"),ogAudioUrl:_a(\"og:audio\"),ogImageSecureUrl:_a(\"og:image:secure_url\"),ogImageUrl:_a(\"og:image\"),ogSiteName:_a(\"og:site_name\"),ogVideoSecureUrl:_a(\"og:video:secure_url\"),ogVideoUrl:_a(\"og:video\"),profileFirstName:_a(\"profile:first_name\"),profileLastName:_a(\"profile:last_name\"),profileUsername:_a(\"profile:username\"),refresh:{metaKey:\"http-equiv\",unpack:{entrySeparator:\";\",resolve({key:n,value:e}){if(n===\"seconds\")return`${e}`}}},robots:{unpack:{entrySeparator:\", \",resolve({key:n,value:e}){return typeof e==\"boolean\"?`${qf(n)}`:`${qf(n)}:${e}`}}},xUaCompatible:{metaKey:\"http-equiv\"}},Voe=new Set([\"og\",\"book\",\"article\",\"profile\"]);function zoe(n){var i;const e=qf(n),t=e.indexOf(\":\");return Voe.has(e.substring(0,t))?\"property\":((i=yV[n])==null?void 0:i.metaKey)||\"name\"}function NDe(n){var e;return((e=yV[n])==null?void 0:e.keyValue)||qf(n)}function qf(n){const e=n.replace(/([A-Z])/g,\"-$1\").toLowerCase(),t=e.indexOf(\"-\"),i=e.substring(0,t);return i===\"twitter\"||Voe.has(i)?n.replace(/([A-Z])/g,\":$1\").toLowerCase():e}function A8(n){if(Array.isArray(n))return n.map(t=>A8(t));if(typeof n!=\"object\"||Array.isArray(n))return n;const e={};for(const t in n)Object.prototype.hasOwnProperty.call(n,t)&&(e[qf(t)]=A8(n[t]));return e}function ADe(n,e){const t=yV[e];return e===\"refresh\"?`${n.seconds};url=${n.url}`:Woe(A8(n),{keyValueSeparator:\"=\",entrySeparator:\", \",resolve({value:i,key:s}){if(i===null)return\"\";if(typeof i==\"boolean\")return`${s}`},...t==null?void 0:t.unpack})}const $oe=new Set([\"og:image\",\"og:video\",\"og:audio\",\"twitter:image\"]);function Uoe(n){const e={};for(const t in n){if(!Object.prototype.hasOwnProperty.call(n,t))continue;const i=n[t];String(i)!==\"false\"&&t&&(e[t]=i)}return e}function rZ(n,e){const t=Uoe(e),i=qf(n),s=zoe(i);if($oe.has(i)){const o={};for(const r in t)Object.prototype.hasOwnProperty.call(t,r)&&(o[`${n}${r===\"url\"?\"\":`${r[0].toUpperCase()}${r.slice(1)}`}`]=t[r]);return joe(o).sort((r,a)=>{var l,c;return(((l=r[s])==null?void 0:l.length)||0)-(((c=a[s])==null?void 0:c.length)||0)})}return[{[s]:i,...t}]}function joe(n){const e=[],t={};for(const s in n){if(!Object.prototype.hasOwnProperty.call(n,s))continue;const o=n[s];if(!Array.isArray(o)){if(typeof o==\"object\"&&o){if($oe.has(qf(s))){e.push(...rZ(s,o));continue}t[s]=Uoe(o)}else t[s]=o;continue}for(const r of o)e.push(...typeof r==\"string\"?joe({[s]:r}):rZ(s,r))}const i=Boe(t,{key({key:s}){return zoe(s)},value({key:s}){return s===\"charset\"?\"charset\":\"content\"},resolveKeyData({key:s}){return NDe(s)},resolveValueData({value:s,key:o}){return s===null?\"_null\":typeof s==\"object\"?ADe(s,o):typeof s==\"number\"?s.toString():s}});return[...e,...i].map(s=>(s.content===\"_null\"&&(s.content=null),s))}function RDe(n,e){return n instanceof Promise?n.then(e):e(n)}function R8(n,e,t,i){const s=i||qoe(typeof e==\"object\"&&typeof e!=\"function\"&&!(e instanceof Promise)?{...e}:{[n===\"script\"||n===\"noscript\"||n===\"style\"?\"innerHTML\":\"textContent\"]:e},n===\"templateParams\"||n===\"titleTemplate\");if(s instanceof Promise)return s.then(r=>R8(n,e,t,r));const o={tag:n,props:s};for(const r of Hoe){const a=o.props[r]!==void 0?o.props[r]:t[r];a!==void 0&&((!(r===\"innerHTML\"||r===\"textContent\"||r===\"children\")||DDe.has(o.tag))&&(o[r===\"children\"?\"innerHTML\":r]=a),delete o.props[r])}return o.props.body&&(o.tagPosition=\"bodyClose\",delete o.props.body),o.tag===\"script\"&&typeof o.innerHTML==\"object\"&&(o.innerHTML=JSON.stringify(o.innerHTML),o.props.type=o.props.type||\"application/json\"),Array.isArray(o.props.content)?o.props.content.map(r=>({...o,props:{...o.props,content:r}})):o}function MDe(n,e){var i;const t=n===\"class\"?\" \":\";\";return e&&typeof e==\"object\"&&!Array.isArray(e)&&(e=Object.entries(e).filter(([,s])=>s).map(([s,o])=>n===\"style\"?`${s}:${o}`:s)),(i=String(Array.isArray(e)?e.join(t):e))==null?void 0:i.split(t).filter(s=>!!s.trim()).join(t)}function Koe(n,e,t,i){for(let s=i;s<t.length;s+=1){const o=t[s];if(o===\"class\"||o===\"style\"){n[o]=MDe(o,n[o]);continue}if(n[o]instanceof Promise)return n[o].then(r=>(n[o]=r,Koe(n,e,t,s)));if(!e&&!Hoe.has(o)){const r=String(n[o]),a=o.startsWith(\"data-\");r===\"true\"||r===\"\"?n[o]=a?\"true\":!0:n[o]||(a&&r===\"false\"?n[o]=\"false\":delete n[o])}}}function qoe(n,e=!1){const t=Koe(n,e,Object.keys(n),0);return t instanceof Promise?t.then(()=>n):n}const PDe=10;function Goe(n,e,t){for(let i=t;i<e.length;i+=1){const s=e[i];if(s instanceof Promise)return s.then(o=>(e[i]=o,Goe(n,e,i)));Array.isArray(s)?n.push(...s):n.push(s)}}function ODe(n){const e=[],t=n.resolvedInput;for(const s in t){if(!Object.prototype.hasOwnProperty.call(t,s))continue;const o=t[s];if(!(o===void 0||!IDe.has(s))){if(Array.isArray(o)){for(const r of o)e.push(R8(s,r,n));continue}e.push(R8(s,o,n))}}if(e.length===0)return[];const i=[];return RDe(Goe(i,e,0),()=>i.map((s,o)=>(s._e=n._i,n.mode&&(s._m=n.mode),s._p=(n._i<<PDe)+o,s)))}const aZ=new Set([\"onload\",\"onerror\",\"onabort\",\"onprogress\",\"onloadstart\"]),lZ={base:-10,title:10},cZ={critical:-80,high:-10,low:20};function b2(n){const e=n.tagPriority;if(typeof e==\"number\")return e;let t=100;return n.tag===\"meta\"?n.props[\"http-equiv\"]===\"content-security-policy\"?t=-30:n.props.charset?t=-20:n.props.name===\"viewport\"&&(t=-15):n.tag===\"link\"&&n.props.rel===\"preconnect\"?t=20:n.tag in lZ&&(t=lZ[n.tag]),e&&e in cZ?t+cZ[e]:t}const FDe=[{prefix:\"before:\",offset:-1},{prefix:\"after:\",offset:1}],BDe=[\"name\",\"property\",\"http-equiv\"];function Zoe(n){const{props:e,tag:t}=n;if(EDe.has(t))return t;if(t===\"link\"&&e.rel===\"canonical\")return\"canonical\";if(e.charset)return\"charset\";if(e.id)return`${t}:id:${e.id}`;for(const i of BDe)if(e[i]!==void 0)return`${t}:${i}:${e[i]}`;return!1}const kp=\"%separator\";function WDe(n,e,t=!1){var s;let i;if(e===\"s\"||e===\"pageTitle\")i=n.pageTitle;else if(e.includes(\".\")){const o=e.indexOf(\".\");i=(s=n[e.substring(0,o)])==null?void 0:s[e.substring(o+1)]}else i=n[e];if(i!==void 0)return t?(i||\"\").replace(/\"/g,'\\\\\"'):i||\"\"}const HDe=new RegExp(`${kp}(?:\\\\s*${kp})*`,\"g\");function mE(n,e,t,i=!1){if(typeof n!=\"string\"||!n.includes(\"%\"))return n;let s=n;try{s=decodeURI(n)}catch{}const o=s.match(/%\\w+(?:\\.\\w+)?/g);if(!o)return n;const r=n.includes(kp);return n=n.replace(/%\\w+(?:\\.\\w+)?/g,a=>{if(a===kp||!o.includes(a))return a;const l=WDe(e,a.slice(1),i);return l!==void 0?l:a}).trim(),r&&(n.endsWith(kp)&&(n=n.slice(0,-kp.length)),n.startsWith(kp)&&(n=n.slice(kp.length)),n=n.replace(HDe,t).trim()),n}function dZ(n,e){return n==null?e||null:typeof n==\"function\"?n(e):n}async function Yoe(n,e={}){const t=e.document||n.resolvedOptions.document;if(!t||!n.dirty)return;const i={shouldRender:!0,tags:[]};if(await n.hooks.callHook(\"dom:beforeRender\",i),!!i.shouldRender)return n._domUpdatePromise||(n._domUpdatePromise=new Promise(async s=>{var u;const o=(await n.resolveTags()).map(h=>({tag:h,id:oN.has(h.tag)?N8(h):h.tag,shouldRender:!0}));let r=n._dom;if(!r){r={elMap:{htmlAttrs:t.documentElement,bodyAttrs:t.body}};const h=new Set;for(const f of[\"body\",\"head\"]){const g=(u=t[f])==null?void 0:u.children;for(const p of g){const _=p.tagName.toLowerCase();if(!oN.has(_))continue;const b={tag:_,props:await qoe(p.getAttributeNames().reduce((x,k)=>({...x,[k]:p.getAttribute(k)}),{})),innerHTML:p.innerHTML},w=Zoe(b);let y=w,S=1;for(;y&&h.has(y);)y=`${w}:${S++}`;y&&(b._d=y,h.add(y)),r.elMap[p.getAttribute(\"data-hid\")||N8(b)]=p}}}r.pendingSideEffects={...r.sideEffects},r.sideEffects={};function a(h,f,g){const p=`${h}:${f}`;r.sideEffects[p]=g,delete r.pendingSideEffects[p]}function l({id:h,$el:f,tag:g}){const p=g.tag.endsWith(\"Attrs\");if(r.elMap[h]=f,p||(g.textContent&&g.textContent!==f.textContent&&(f.textContent=g.textContent),g.innerHTML&&g.innerHTML!==f.innerHTML&&(f.innerHTML=g.innerHTML),a(h,\"el\",()=>{var _;(_=r.elMap[h])==null||_.remove(),delete r.elMap[h]})),g._eventHandlers)for(const _ in g._eventHandlers)Object.prototype.hasOwnProperty.call(g._eventHandlers,_)&&f.getAttribute(`data-${_}`)!==\"\"&&((g.tag===\"bodyAttrs\"?t.defaultView:f).addEventListener(_.substring(2),g._eventHandlers[_].bind(f)),f.setAttribute(`data-${_}`,\"\"));for(const _ in g.props){if(!Object.prototype.hasOwnProperty.call(g.props,_))continue;const b=g.props[_],w=`attr:${_}`;if(_===\"class\"){if(!b)continue;for(const y of b.split(\" \"))p&&a(h,`${w}:${y}`,()=>f.classList.remove(y)),!f.classList.contains(y)&&f.classList.add(y)}else if(_===\"style\"){if(!b)continue;for(const y of b.split(\";\")){const S=y.indexOf(\":\"),x=y.substring(0,S).trim(),k=y.substring(S+1).trim();a(h,`${w}:${x}`,()=>{f.style.removeProperty(x)}),f.style.setProperty(x,k)}}else f.getAttribute(_)!==b&&f.setAttribute(_,b===!0?\"\":String(b)),p&&a(h,w,()=>f.removeAttribute(_))}}const c=[],d={bodyClose:void 0,bodyOpen:void 0,head:void 0};for(const h of o){const{tag:f,shouldRender:g,id:p}=h;if(g){if(f.tag===\"title\"){t.title=f.textContent;continue}h.$el=h.$el||r.elMap[p],h.$el?l(h):oN.has(f.tag)&&c.push(h)}}for(const h of c){const f=h.tag.tagPosition||\"head\";h.$el=t.createElement(h.tag.tag),l(h),d[f]=d[f]||t.createDocumentFragment(),d[f].appendChild(h.$el)}for(const h of o)await n.hooks.callHook(\"dom:renderTag\",h,t,a);d.head&&t.head.appendChild(d.head),d.bodyOpen&&t.body.insertBefore(d.bodyOpen,t.body.firstChild),d.bodyClose&&t.body.appendChild(d.bodyClose);for(const h in r.pendingSideEffects)r.pendingSideEffects[h]();n._dom=r,await n.hooks.callHook(\"dom:rendered\",{renders:o}),s()}).finally(()=>{n._domUpdatePromise=void 0,n.dirty=!1})),n._domUpdatePromise}function VDe(n,e={}){const t=e.delayFn||(i=>setTimeout(i,10));return n._domDebouncedUpdatePromise=n._domDebouncedUpdatePromise||new Promise(i=>t(()=>Yoe(n,e).then(()=>{delete n._domDebouncedUpdatePromise,i()})))}function zDe(n){return e=>{var i,s;const t=((s=(i=e.resolvedOptions.document)==null?void 0:i.head.querySelector('script[id=\"unhead:payload\"]'))==null?void 0:s.innerHTML)||!1;return t&&e.push(JSON.parse(t)),{mode:\"client\",hooks:{\"entries:updated\":o=>{VDe(o,n)}}}}}const $De=new Set([\"templateParams\",\"htmlAttrs\",\"bodyAttrs\"]),UDe={hooks:{\"tag:normalise\":({tag:n})=>{n.props.hid&&(n.key=n.props.hid,delete n.props.hid),n.props.vmid&&(n.key=n.props.vmid,delete n.props.vmid),n.props.key&&(n.key=n.props.key,delete n.props.key);const e=Zoe(n);e&&!e.startsWith(\"meta:og:\")&&!e.startsWith(\"meta:twitter:\")&&delete n.key;const t=e||(n.key?`${n.tag}:${n.key}`:!1);t&&(n._d=t)},\"tags:resolve\":n=>{const e=Object.create(null);for(const i of n.tags){const s=(i.key?`${i.tag}:${i.key}`:i._d)||N8(i),o=e[s];if(o){let a=i==null?void 0:i.tagDuplicateStrategy;if(!a&&$De.has(i.tag)&&(a=\"merge\"),a===\"merge\"){const l=o.props;l.style&&i.props.style&&(l.style[l.style.length-1]!==\";\"&&(l.style+=\";\"),i.props.style=`${l.style} ${i.props.style}`),l.class&&i.props.class?i.props.class=`${l.class} ${i.props.class}`:l.class&&(i.props.class=l.class),e[s].props={...l,...i.props};continue}else if(i._e===o._e){o._duped=o._duped||[],i._d=`${o._d}:${o._duped.length+1}`,o._duped.push(i);continue}else if(b2(i)>b2(o))continue}if(!(i.innerHTML||i.textContent||Object.keys(i.props).length!==0)&&oN.has(i.tag)){delete e[s];continue}e[s]=i}const t=[];for(const i in e){const s=e[i],o=s._duped;t.push(s),o&&(delete s._duped,t.push(...o))}n.tags=t,n.tags=n.tags.filter(i=>!(i.tag===\"meta\"&&(i.props.name||i.props.property)&&!i.props.content))}}},jDe=new Set([\"script\",\"link\",\"bodyAttrs\"]),KDe=n=>({hooks:{\"tags:resolve\":e=>{for(const t of e.tags){if(!jDe.has(t.tag))continue;const i=t.props;for(const s in i){if(s[0]!==\"o\"||s[1]!==\"n\"||!Object.prototype.hasOwnProperty.call(i,s))continue;const o=i[s];typeof o==\"function\"&&(n.ssr&&aZ.has(s)?i[s]=`this.dataset.${s}fired = true`:delete i[s],t._eventHandlers=t._eventHandlers||{},t._eventHandlers[s]=o)}n.ssr&&t._eventHandlers&&(t.props.src||t.props.href)&&(t.key=t.key||v2(t.props.src||t.props.href))}},\"dom:renderTag\":({$el:e,tag:t})=>{var s,o;const i=e==null?void 0:e.dataset;if(i)for(const r in i){if(!r.endsWith(\"fired\"))continue;const a=r.slice(0,-5);aZ.has(a)&&((o=(s=t._eventHandlers)==null?void 0:s[a])==null||o.call(e,new Event(a.substring(2))))}}}}),qDe=new Set([\"link\",\"style\",\"script\",\"noscript\"]),GDe={hooks:{\"tag:normalise\":({tag:n})=>{n.key&&qDe.has(n.tag)&&(n.props[\"data-hid\"]=n._h=v2(n.key))}}},ZDe={mode:\"server\",hooks:{\"tags:beforeResolve\":n=>{const e={};let t=!1;for(const i of n.tags)i._m!==\"server\"||i.tag!==\"titleTemplate\"&&i.tag!==\"templateParams\"&&i.tag!==\"title\"||(e[i.tag]=i.tag===\"title\"||i.tag===\"titleTemplate\"?i.textContent:i.props,t=!0);t&&n.tags.push({tag:\"script\",innerHTML:JSON.stringify(e),props:{id:\"unhead:payload\",type:\"application/json\"}})}}},YDe={hooks:{\"tags:resolve\":n=>{var e;for(const t of n.tags)if(typeof t.tagPriority==\"string\")for(const{prefix:i,offset:s}of FDe){if(!t.tagPriority.startsWith(i))continue;const o=t.tagPriority.substring(i.length),r=(e=n.tags.find(a=>a._d===o))==null?void 0:e._p;if(r!==void 0){t._p=r+s;break}}n.tags.sort((t,i)=>{const s=b2(t),o=b2(i);return s<o?-1:s>o?1:t._p-i._p})}}},XDe={meta:\"content\",link:\"href\",htmlAttrs:\"lang\"},QDe=[\"innerHTML\",\"textContent\"],JDe=n=>({hooks:{\"tags:resolve\":e=>{var r;const{tags:t}=e;let i;for(let a=0;a<t.length;a+=1)t[a].tag===\"templateParams\"&&(i=e.tags.splice(a,1)[0].props,a-=1);const s=i||{},o=s.separator||\"|\";delete s.separator,s.pageTitle=mE(s.pageTitle||((r=t.find(a=>a.tag===\"title\"))==null?void 0:r.textContent)||\"\",s,o);for(const a of t){if(a.processTemplateParams===!1)continue;const l=XDe[a.tag];if(l&&typeof a.props[l]==\"string\")a.props[l]=mE(a.props[l],s,o);else if(a.processTemplateParams||a.tag===\"titleTemplate\"||a.tag===\"title\")for(const c of QDe)typeof a[c]==\"string\"&&(a[c]=mE(a[c],s,o,a.tag===\"script\"&&a.props.type.endsWith(\"json\")))}n._templateParams=s,n._separator=o},\"tags:afterResolve\":({tags:e})=>{let t;for(let i=0;i<e.length;i+=1){const s=e[i];s.tag===\"title\"&&s.processTemplateParams!==!1&&(t=s)}t!=null&&t.textContent&&(t.textContent=mE(t.textContent,n._templateParams,n._separator))}}}),eIe={hooks:{\"tags:resolve\":n=>{const{tags:e}=n;let t,i;for(let s=0;s<e.length;s+=1){const o=e[s];o.tag===\"title\"?t=o:o.tag===\"titleTemplate\"&&(i=o)}if(i&&t){const s=dZ(i.textContent,t.textContent);s!==null?t.textContent=s||t.textContent:n.tags.splice(n.tags.indexOf(t),1)}else if(i){const s=dZ(i.textContent);s!==null&&(i.textContent=s,i.tag=\"title\",i=void 0)}i&&n.tags.splice(n.tags.indexOf(i),1)}}},tIe={hooks:{\"tags:afterResolve\":n=>{for(const e of n.tags)typeof e.innerHTML==\"string\"&&(e.innerHTML&&(e.props.type===\"application/ld+json\"||e.props.type===\"application/json\")?e.innerHTML=e.innerHTML.replace(/</g,\"\\\\u003C\"):e.innerHTML=e.innerHTML.replace(new RegExp(`</${e.tag}`,\"g\"),`<\\\\/${e.tag}`))}}};let Xoe;function iIe(n={}){const e=nIe(n);return e.use(zDe()),Xoe=e}function uZ(n,e){return!n||n===\"server\"&&e||n===\"client\"&&!e}function nIe(n={}){const e=Aoe();e.addHooks(n.hooks||{}),n.document=n.document||(TDe?document:void 0);const t=!n.document,i=()=>{a.dirty=!0,e.callHook(\"entries:updated\",a)};let s=0,o=[];const r=[],a={plugins:r,dirty:!1,resolvedOptions:n,hooks:e,headEntries(){return o},use(l){const c=typeof l==\"function\"?l(a):l;(!c.key||!r.some(d=>d.key===c.key))&&(r.push(c),uZ(c.mode,t)&&e.addHooks(c.hooks||{}))},push(l,c){c==null||delete c.head;const d={_i:s++,input:l,...c};return uZ(d.mode,t)&&(o.push(d),i()),{dispose(){o=o.filter(u=>u._i!==d._i),i()},patch(u){for(const h of o)h._i===d._i&&(h.input=d.input=u);i()}}},async resolveTags(){const l={tags:[],entries:[...o]};await e.callHook(\"entries:resolve\",l);for(const c of l.entries){const d=c.resolvedInput||c.input;if(c.resolvedInput=await(c.transform?c.transform(d):d),c.resolvedInput)for(const u of await ODe(c)){const h={tag:u,entry:c,resolvedOptions:a.resolvedOptions};await e.callHook(\"tag:normalise\",h),l.tags.push(h.tag)}}return await e.callHook(\"tags:beforeResolve\",l),await e.callHook(\"tags:resolve\",l),await e.callHook(\"tags:afterResolve\",l),l.tags},ssr:t};return[UDe,ZDe,KDe,GDe,YDe,JDe,eIe,tIe,...(n==null?void 0:n.plugins)||[]].forEach(l=>a.use(l)),a.hooks.callHook(\"init\",a),a}function sIe(){return Xoe}const oIe=hoe[0]===\"3\";function rIe(n){return typeof n==\"function\"?n():j(n)}function C2(n){if(n instanceof Promise||n instanceof Date||n instanceof RegExp)return n;const e=rIe(n);if(!n||!e)return e;if(Array.isArray(e))return e.map(t=>C2(t));if(typeof e==\"object\"){const t={};for(const i in e)if(Object.prototype.hasOwnProperty.call(e,i)){if(i===\"titleTemplate\"||i[0]===\"o\"&&i[1]===\"n\"){t[i]=j(e[i]);continue}t[i]=C2(e[i])}return t}return e}const aIe={hooks:{\"entries:resolve\":n=>{for(const e of n.entries)e.resolvedInput=C2(e.input)}}},Qoe=\"usehead\";function lIe(n){return{install(t){oIe&&(t.config.globalProperties.$unhead=n,t.config.globalProperties.$head=n,t.provide(Qoe,n))}}.install}function cIe(n={}){n.domDelayFn=n.domDelayFn||(t=>Go(()=>setTimeout(()=>t(),0)));const e=iIe(n);return e.use(aIe),e.install=lIe(e),e}const M8=typeof globalThis<\"u\"?globalThis:typeof window<\"u\"?window:typeof global<\"u\"?global:typeof self<\"u\"?self:{},P8=\"__unhead_injection_handler__\";function dIe(n){M8[P8]=n}function uIe(){return P8 in M8?M8[P8]():Ui(Qoe)||sIe()}function hIe(n,e={}){const t=e.head||uIe();if(t)return t.ssr?t.push(n,e):fIe(t,n,e)}function fIe(n,e,t={}){const i=Ue(!1),s=Ue({});Qo(()=>{s.value=i.value?{}:C2(e)});const o=n.push(s.value,t);return Dn(s,a=>{o.patch(a)}),pc()&&(Jk(()=>{o.dispose()}),aV(()=>{i.value=!0}),rV(()=>{i.value=!1})),o}async function gIe(n){return null}let W_=null;async function pIe(){var i;if(W_)return W_;const n=document.getElementById(\"__NUXT_DATA__\");if(!n)return{};const e=await mIe(n.textContent||\"\"),t=n.dataset.src?await gIe(n.dataset.src):void 0;return W_={...e,...t,...window.__NUXT__},(i=W_.config)!=null&&i.public&&(W_.config.public=Ba(W_.config.public)),W_}async function mIe(n){return await LDe(n,In()._payloadRevivers)}function _Ie(n,e){In()._payloadRevivers[n]=e}const hZ={NuxtError:n=>XR(n),EmptyShallowRef:n=>Sg(n===\"_\"?void 0:n===\"0n\"?BigInt(0):xC(n)),EmptyRef:n=>Ue(n===\"_\"?void 0:n===\"0n\"?BigInt(0):xC(n)),ShallowRef:n=>Sg(n),ShallowReactive:n=>Kf(n),Ref:n=>Ue(n),Reactive:n=>Ba(n)},vIe=ua({name:\"nuxt:revive-payload:client\",order:-30,async setup(n){let e,t;for(const i in hZ)_Ie(i,hZ[i]);Object.assign(n.payload,([e,t]=Vv(()=>n.runWithContext(pIe)),e=await e,t(),e)),window.__NUXT__=n.payload}}),bIe=[],CIe=ua({name:\"nuxt:head\",enforce:\"pre\",setup(n){const e=cIe({plugins:bIe});dIe(()=>In().vueApp._context.provides.usehead),n.vueApp.use(e);{let t=!0;const i=async()=>{t=!1,await Yoe(e)};e.hooks.hook(\"dom:beforeRender\",s=>{s.shouldRender=!t}),n.hooks.hook(\"page:start\",()=>{t=!0}),n.hooks.hook(\"page:finish\",()=>{n.isHydrating||i()}),n.hooks.hook(\"app:error\",i),n.hooks.hook(\"app:suspense:resolve\",i)}}});/*!\n  * vue-router v4.2.5\n  * (c) 2023 Eduardo San Martin Morote\n  * @license MIT\n  */const t1=typeof window<\"u\";function wIe(n){return n.__esModule||n[Symbol.toStringTag]===\"Module\"}const is=Object.assign;function uF(n,e){const t={};for(const i in e){const s=e[i];t[i]=eu(s)?s.map(n):n(s)}return t}const ex=()=>{},eu=Array.isArray,yIe=/\\/$/,SIe=n=>n.replace(yIe,\"\");function hF(n,e,t=\"/\"){let i,s={},o=\"\",r=\"\";const a=e.indexOf(\"#\");let l=e.indexOf(\"?\");return a<l&&a>=0&&(l=-1),l>-1&&(i=e.slice(0,l),o=e.slice(l+1,a>-1?a:e.length),s=n(o)),a>-1&&(i=i||e.slice(0,a),r=e.slice(a,e.length)),i=DIe(i??e,t),{fullPath:i+(o&&\"?\")+o+r,path:i,query:s,hash:r}}function xIe(n,e){const t=e.query?n(e.query):\"\";return e.path+(t&&\"?\")+t+(e.hash||\"\")}function fZ(n,e){return!e||!n.toLowerCase().startsWith(e.toLowerCase())?n:n.slice(e.length)||\"/\"}function LIe(n,e,t){const i=e.matched.length-1,s=t.matched.length-1;return i>-1&&i===s&&LC(e.matched[i],t.matched[s])&&Joe(e.params,t.params)&&n(e.query)===n(t.query)&&e.hash===t.hash}function LC(n,e){return(n.aliasOf||n)===(e.aliasOf||e)}function Joe(n,e){if(Object.keys(n).length!==Object.keys(e).length)return!1;for(const t in n)if(!kIe(n[t],e[t]))return!1;return!0}function kIe(n,e){return eu(n)?gZ(n,e):eu(e)?gZ(e,n):n===e}function gZ(n,e){return eu(e)?n.length===e.length&&n.every((t,i)=>t===e[i]):n.length===1&&n[0]===e}function DIe(n,e){if(n.startsWith(\"/\"))return n;if(!n)return e;const t=e.split(\"/\"),i=n.split(\"/\"),s=i[i.length-1];(s===\"..\"||s===\".\")&&i.push(\"\");let o=t.length-1,r,a;for(r=0;r<i.length;r++)if(a=i[r],a!==\".\")if(a===\"..\")o>1&&o--;else break;return t.slice(0,o).join(\"/\")+\"/\"+i.slice(r-(r===i.length?1:0)).join(\"/\")}var Qx;(function(n){n.pop=\"pop\",n.push=\"push\"})(Qx||(Qx={}));var tx;(function(n){n.back=\"back\",n.forward=\"forward\",n.unknown=\"\"})(tx||(tx={}));function IIe(n){if(!n)if(t1){const e=document.querySelector(\"base\");n=e&&e.getAttribute(\"href\")||\"/\",n=n.replace(/^\\w+:\\/\\/[^\\/]+/,\"\")}else n=\"/\";return n[0]!==\"/\"&&n[0]!==\"#\"&&(n=\"/\"+n),SIe(n)}const EIe=/^[^#]+#/;function TIe(n,e){return n.replace(EIe,\"#\")+e}function NIe(n,e){const t=document.documentElement.getBoundingClientRect(),i=n.getBoundingClientRect();return{behavior:e.behavior,left:i.left-t.left-(e.left||0),top:i.top-t.top-(e.top||0)}}const QR=()=>({left:window.pageXOffset,top:window.pageYOffset});function AIe(n){let e;if(\"el\"in n){const t=n.el,i=typeof t==\"string\"&&t.startsWith(\"#\"),s=typeof t==\"string\"?i?document.getElementById(t.slice(1)):document.querySelector(t):t;if(!s)return;e=NIe(s,n)}else e=n;\"scrollBehavior\"in document.documentElement.style?window.scrollTo(e):window.scrollTo(e.left!=null?e.left:window.pageXOffset,e.top!=null?e.top:window.pageYOffset)}function pZ(n,e){return(history.state?history.state.position-e:-1)+n}const O8=new Map;function RIe(n,e){O8.set(n,e)}function MIe(n){const e=O8.get(n);return O8.delete(n),e}let PIe=()=>location.protocol+\"//\"+location.host;function ere(n,e){const{pathname:t,search:i,hash:s}=e,o=n.indexOf(\"#\");if(o>-1){let a=s.includes(n.slice(o))?n.slice(o).length:1,l=s.slice(a);return l[0]!==\"/\"&&(l=\"/\"+l),fZ(l,\"\")}return fZ(t,n)+i+s}function OIe(n,e,t,i){let s=[],o=[],r=null;const a=({state:h})=>{const f=ere(n,location),g=t.value,p=e.value;let _=0;if(h){if(t.value=f,e.value=h,r&&r===g){r=null;return}_=p?h.position-p.position:0}else i(f);s.forEach(b=>{b(t.value,g,{delta:_,type:Qx.pop,direction:_?_>0?tx.forward:tx.back:tx.unknown})})};function l(){r=t.value}function c(h){s.push(h);const f=()=>{const g=s.indexOf(h);g>-1&&s.splice(g,1)};return o.push(f),f}function d(){const{history:h}=window;h.state&&h.replaceState(is({},h.state,{scroll:QR()}),\"\")}function u(){for(const h of o)h();o=[],window.removeEventListener(\"popstate\",a),window.removeEventListener(\"beforeunload\",d)}return window.addEventListener(\"popstate\",a),window.addEventListener(\"beforeunload\",d,{passive:!0}),{pauseListeners:l,listen:c,destroy:u}}function mZ(n,e,t,i=!1,s=!1){return{back:n,current:e,forward:t,replaced:i,position:window.history.length,scroll:s?QR():null}}function FIe(n){const{history:e,location:t}=window,i={value:ere(n,t)},s={value:e.state};s.value||o(i.value,{back:null,current:i.value,forward:null,position:e.length-1,replaced:!0,scroll:null},!0);function o(l,c,d){const u=n.indexOf(\"#\"),h=u>-1?(t.host&&document.querySelector(\"base\")?n:n.slice(u))+l:PIe()+n+l;try{e[d?\"replaceState\":\"pushState\"](c,\"\",h),s.value=c}catch(f){console.error(f),t[d?\"replace\":\"assign\"](h)}}function r(l,c){const d=is({},e.state,mZ(s.value.back,l,s.value.forward,!0),c,{position:s.value.position});o(l,d,!0),i.value=l}function a(l,c){const d=is({},s.value,e.state,{forward:l,scroll:QR()});o(d.current,d,!0);const u=is({},mZ(i.value,l,null),{position:d.position+1},c);o(l,u,!1),i.value=l}return{location:i,state:s,push:a,replace:r}}function tre(n){n=IIe(n);const e=FIe(n),t=OIe(n,e.state,e.location,e.replace);function i(o,r=!0){r||t.pauseListeners(),history.go(o)}const s=is({location:\"\",base:n,go:i,createHref:TIe.bind(null,n)},e,t);return Object.defineProperty(s,\"location\",{enumerable:!0,get:()=>e.location.value}),Object.defineProperty(s,\"state\",{enumerable:!0,get:()=>e.state.value}),s}function BIe(n){return n=location.host?n||location.pathname+location.search:\"\",n.includes(\"#\")||(n+=\"#\"),tre(n)}function WIe(n){return typeof n==\"string\"||n&&typeof n==\"object\"}function ire(n){return typeof n==\"string\"||typeof n==\"symbol\"}const Ld={path:\"/\",name:void 0,params:{},query:{},hash:\"\",fullPath:\"/\",matched:[],meta:{},redirectedFrom:void 0},nre=Symbol(\"\");var _Z;(function(n){n[n.aborted=4]=\"aborted\",n[n.cancelled=8]=\"cancelled\",n[n.duplicated=16]=\"duplicated\"})(_Z||(_Z={}));function kC(n,e){return is(new Error,{type:n,[nre]:!0},e)}function lf(n,e){return n instanceof Error&&nre in n&&(e==null||!!(n.type&e))}const vZ=\"[^/]+?\",HIe={sensitive:!1,strict:!1,start:!0,end:!0},VIe=/[.+*?^${}()[\\]/\\\\]/g;function zIe(n,e){const t=is({},HIe,e),i=[];let s=t.start?\"^\":\"\";const o=[];for(const c of n){const d=c.length?[]:[90];t.strict&&!c.length&&(s+=\"/\");for(let u=0;u<c.length;u++){const h=c[u];let f=40+(t.sensitive?.25:0);if(h.type===0)u||(s+=\"/\"),s+=h.value.replace(VIe,\"\\\\$&\"),f+=40;else if(h.type===1){const{value:g,repeatable:p,optional:_,regexp:b}=h;o.push({name:g,repeatable:p,optional:_});const w=b||vZ;if(w!==vZ){f+=10;try{new RegExp(`(${w})`)}catch(S){throw new Error(`Invalid custom RegExp for param \"${g}\" (${w}): `+S.message)}}let y=p?`((?:${w})(?:/(?:${w}))*)`:`(${w})`;u||(y=_&&c.length<2?`(?:/${y})`:\"/\"+y),_&&(y+=\"?\"),s+=y,f+=20,_&&(f+=-8),p&&(f+=-20),w===\".*\"&&(f+=-50)}d.push(f)}i.push(d)}if(t.strict&&t.end){const c=i.length-1;i[c][i[c].length-1]+=.7000000000000001}t.strict||(s+=\"/?\"),t.end?s+=\"$\":t.strict&&(s+=\"(?:/|$)\");const r=new RegExp(s,t.sensitive?\"\":\"i\");function a(c){const d=c.match(r),u={};if(!d)return null;for(let h=1;h<d.length;h++){const f=d[h]||\"\",g=o[h-1];u[g.name]=f&&g.repeatable?f.split(\"/\"):f}return u}function l(c){let d=\"\",u=!1;for(const h of n){(!u||!d.endsWith(\"/\"))&&(d+=\"/\"),u=!1;for(const f of h)if(f.type===0)d+=f.value;else if(f.type===1){const{value:g,repeatable:p,optional:_}=f,b=g in c?c[g]:\"\";if(eu(b)&&!p)throw new Error(`Provided param \"${g}\" is an array but it is not repeatable (* or + modifiers)`);const w=eu(b)?b.join(\"/\"):b;if(!w)if(_)h.length<2&&(d.endsWith(\"/\")?d=d.slice(0,-1):u=!0);else throw new Error(`Missing required param \"${g}\"`);d+=w}}return d||\"/\"}return{re:r,score:i,keys:o,parse:a,stringify:l}}function $Ie(n,e){let t=0;for(;t<n.length&&t<e.length;){const i=e[t]-n[t];if(i)return i;t++}return n.length<e.length?n.length===1&&n[0]===80?-1:1:n.length>e.length?e.length===1&&e[0]===80?1:-1:0}function UIe(n,e){let t=0;const i=n.score,s=e.score;for(;t<i.length&&t<s.length;){const o=$Ie(i[t],s[t]);if(o)return o;t++}if(Math.abs(s.length-i.length)===1){if(bZ(i))return 1;if(bZ(s))return-1}return s.length-i.length}function bZ(n){const e=n[n.length-1];return n.length>0&&e[e.length-1]<0}const jIe={type:0,value:\"\"},KIe=/[a-zA-Z0-9_]/;function qIe(n){if(!n)return[[]];if(n===\"/\")return[[jIe]];if(!n.startsWith(\"/\"))throw new Error(`Invalid path \"${n}\"`);function e(f){throw new Error(`ERR (${t})/\"${c}\": ${f}`)}let t=0,i=t;const s=[];let o;function r(){o&&s.push(o),o=[]}let a=0,l,c=\"\",d=\"\";function u(){c&&(t===0?o.push({type:0,value:c}):t===1||t===2||t===3?(o.length>1&&(l===\"*\"||l===\"+\")&&e(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),o.push({type:1,value:c,regexp:d,repeatable:l===\"*\"||l===\"+\",optional:l===\"*\"||l===\"?\"})):e(\"Invalid state to consume buffer\"),c=\"\")}function h(){c+=l}for(;a<n.length;){if(l=n[a++],l===\"\\\\\"&&t!==2){i=t,t=4;continue}switch(t){case 0:l===\"/\"?(c&&u(),r()):l===\":\"?(u(),t=1):h();break;case 4:h(),t=i;break;case 1:l===\"(\"?t=2:KIe.test(l)?h():(u(),t=0,l!==\"*\"&&l!==\"?\"&&l!==\"+\"&&a--);break;case 2:l===\")\"?d[d.length-1]==\"\\\\\"?d=d.slice(0,-1)+l:t=3:d+=l;break;case 3:u(),t=0,l!==\"*\"&&l!==\"?\"&&l!==\"+\"&&a--,d=\"\";break;default:e(\"Unknown state\");break}}return t===2&&e(`Unfinished custom RegExp for param \"${c}\"`),u(),r(),s}function GIe(n,e,t){const i=zIe(qIe(n.path),t),s=is(i,{record:n,parent:e,children:[],alias:[]});return e&&!s.record.aliasOf==!e.record.aliasOf&&e.children.push(s),s}function ZIe(n,e){const t=[],i=new Map;e=yZ({strict:!1,end:!0,sensitive:!1},e);function s(d){return i.get(d)}function o(d,u,h){const f=!h,g=YIe(d);g.aliasOf=h&&h.record;const p=yZ(e,d),_=[g];if(\"alias\"in d){const y=typeof d.alias==\"string\"?[d.alias]:d.alias;for(const S of y)_.push(is({},g,{components:h?h.record.components:g.components,path:S,aliasOf:h?h.record:g}))}let b,w;for(const y of _){const{path:S}=y;if(u&&S[0]!==\"/\"){const x=u.record.path,k=x[x.length-1]===\"/\"?\"\":\"/\";y.path=u.record.path+(S&&k+S)}if(b=GIe(y,u,p),h?h.alias.push(b):(w=w||b,w!==b&&w.alias.push(b),f&&d.name&&!wZ(b)&&r(d.name)),g.children){const x=g.children;for(let k=0;k<x.length;k++)o(x[k],b,h&&h.children[k])}h=h||b,(b.record.components&&Object.keys(b.record.components).length||b.record.name||b.record.redirect)&&l(b)}return w?()=>{r(w)}:ex}function r(d){if(ire(d)){const u=i.get(d);u&&(i.delete(d),t.splice(t.indexOf(u),1),u.children.forEach(r),u.alias.forEach(r))}else{const u=t.indexOf(d);u>-1&&(t.splice(u,1),d.record.name&&i.delete(d.record.name),d.children.forEach(r),d.alias.forEach(r))}}function a(){return t}function l(d){let u=0;for(;u<t.length&&UIe(d,t[u])>=0&&(d.record.path!==t[u].record.path||!sre(d,t[u]));)u++;t.splice(u,0,d),d.record.name&&!wZ(d)&&i.set(d.record.name,d)}function c(d,u){let h,f={},g,p;if(\"name\"in d&&d.name){if(h=i.get(d.name),!h)throw kC(1,{location:d});p=h.record.name,f=is(CZ(u.params,h.keys.filter(w=>!w.optional).map(w=>w.name)),d.params&&CZ(d.params,h.keys.map(w=>w.name))),g=h.stringify(f)}else if(\"path\"in d)g=d.path,h=t.find(w=>w.re.test(g)),h&&(f=h.parse(g),p=h.record.name);else{if(h=u.name?i.get(u.name):t.find(w=>w.re.test(u.path)),!h)throw kC(1,{location:d,currentLocation:u});p=h.record.name,f=is({},u.params,d.params),g=h.stringify(f)}const _=[];let b=h;for(;b;)_.unshift(b.record),b=b.parent;return{name:p,path:g,params:f,matched:_,meta:QIe(_)}}return n.forEach(d=>o(d)),{addRoute:o,resolve:c,removeRoute:r,getRoutes:a,getRecordMatcher:s}}function CZ(n,e){const t={};for(const i of e)i in n&&(t[i]=n[i]);return t}function YIe(n){return{path:n.path,redirect:n.redirect,name:n.name,meta:n.meta||{},aliasOf:void 0,beforeEnter:n.beforeEnter,props:XIe(n),children:n.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:\"components\"in n?n.components||null:n.component&&{default:n.component}}}function XIe(n){const e={},t=n.props||!1;if(\"component\"in n)e.default=t;else for(const i in n.components)e[i]=typeof t==\"object\"?t[i]:t;return e}function wZ(n){for(;n;){if(n.record.aliasOf)return!0;n=n.parent}return!1}function QIe(n){return n.reduce((e,t)=>is(e,t.meta),{})}function yZ(n,e){const t={};for(const i in n)t[i]=i in e?e[i]:n[i];return t}function sre(n,e){return e.children.some(t=>t===n||sre(n,t))}const ore=/#/g,JIe=/&/g,eEe=/\\//g,tEe=/=/g,iEe=/\\?/g,rre=/\\+/g,nEe=/%5B/g,sEe=/%5D/g,are=/%5E/g,oEe=/%60/g,lre=/%7B/g,rEe=/%7C/g,cre=/%7D/g,aEe=/%20/g;function SV(n){return encodeURI(\"\"+n).replace(rEe,\"|\").replace(nEe,\"[\").replace(sEe,\"]\")}function lEe(n){return SV(n).replace(lre,\"{\").replace(cre,\"}\").replace(are,\"^\")}function F8(n){return SV(n).replace(rre,\"%2B\").replace(aEe,\"+\").replace(ore,\"%23\").replace(JIe,\"%26\").replace(oEe,\"`\").replace(lre,\"{\").replace(cre,\"}\").replace(are,\"^\")}function cEe(n){return F8(n).replace(tEe,\"%3D\")}function dEe(n){return SV(n).replace(ore,\"%23\").replace(iEe,\"%3F\")}function uEe(n){return n==null?\"\":dEe(n).replace(eEe,\"%2F\")}function w2(n){try{return decodeURIComponent(\"\"+n)}catch{}return\"\"+n}function hEe(n){const e={};if(n===\"\"||n===\"?\")return e;const i=(n[0]===\"?\"?n.slice(1):n).split(\"&\");for(let s=0;s<i.length;++s){const o=i[s].replace(rre,\" \"),r=o.indexOf(\"=\"),a=w2(r<0?o:o.slice(0,r)),l=r<0?null:w2(o.slice(r+1));if(a in e){let c=e[a];eu(c)||(c=e[a]=[c]),c.push(l)}else e[a]=l}return e}function SZ(n){let e=\"\";for(let t in n){const i=n[t];if(t=cEe(t),i==null){i!==void 0&&(e+=(e.length?\"&\":\"\")+t);continue}(eu(i)?i.map(o=>o&&F8(o)):[i&&F8(i)]).forEach(o=>{o!==void 0&&(e+=(e.length?\"&\":\"\")+t,o!=null&&(e+=\"=\"+o))})}return e}function fEe(n){const e={};for(const t in n){const i=n[t];i!==void 0&&(e[t]=eu(i)?i.map(s=>s==null?null:\"\"+s):i==null?i:\"\"+i)}return e}const dre=Symbol(\"\"),xZ=Symbol(\"\"),xV=Symbol(\"\"),LV=Symbol(\"\"),B8=Symbol(\"\");function Ly(){let n=[];function e(i){return n.push(i),()=>{const s=n.indexOf(i);s>-1&&n.splice(s,1)}}function t(){n=[]}return{add:e,list:()=>n.slice(),reset:t}}function gEe(n,e,t){const i=()=>{n[e].delete(t)};uo(i),aV(i),rV(()=>{n[e].add(t)}),n[e].add(t)}function Pmt(n){const e=Ui(dre,{}).value;e&&gEe(e,\"leaveGuards\",n)}function Dp(n,e,t,i,s){const o=i&&(i.enterCallbacks[s]=i.enterCallbacks[s]||[]);return()=>new Promise((r,a)=>{const l=u=>{u===!1?a(kC(4,{from:t,to:e})):u instanceof Error?a(u):WIe(u)?a(kC(2,{from:e,to:u})):(o&&i.enterCallbacks[s]===o&&typeof u==\"function\"&&o.push(u),r())},c=n.call(i&&i.instances[s],e,t,l);let d=Promise.resolve(c);n.length<3&&(d=d.then(l)),d.catch(u=>a(u))})}function fF(n,e,t,i){const s=[];for(const o of n)for(const r in o.components){let a=o.components[r];if(!(e!==\"beforeRouteEnter\"&&!o.instances[r]))if(pEe(a)){const c=(a.__vccOpts||a)[e];c&&s.push(Dp(c,t,i,o,r))}else{let l=a();s.push(()=>l.then(c=>{if(!c)return Promise.reject(new Error(`Couldn't resolve component \"${r}\" at \"${o.path}\"`));const d=wIe(c)?c.default:c;o.components[r]=d;const h=(d.__vccOpts||d)[e];return h&&Dp(h,t,i,o,r)()}))}}return s}function pEe(n){return typeof n==\"object\"||\"displayName\"in n||\"props\"in n||\"__vccOpts\"in n}function LZ(n){const e=Ui(xV),t=Ui(LV),i=ue(()=>e.resolve(j(n.to))),s=ue(()=>{const{matched:l}=i.value,{length:c}=l,d=l[c-1],u=t.matched;if(!d||!u.length)return-1;const h=u.findIndex(LC.bind(null,d));if(h>-1)return h;const f=kZ(l[c-2]);return c>1&&kZ(d)===f&&u[u.length-1].path!==f?u.findIndex(LC.bind(null,l[c-2])):h}),o=ue(()=>s.value>-1&&bEe(t.params,i.value.params)),r=ue(()=>s.value>-1&&s.value===t.matched.length-1&&Joe(t.params,i.value.params));function a(l={}){return vEe(l)?e[j(n.replace)?\"replace\":\"push\"](j(n.to)).catch(ex):Promise.resolve()}return{route:i,href:ue(()=>i.value.href),isActive:o,isExactActive:r,navigate:a}}const mEe=kt({name:\"RouterLink\",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:\"page\"}},useLink:LZ,setup(n,{slots:e}){const t=Ba(LZ(n)),{options:i}=Ui(xV),s=ue(()=>({[DZ(n.activeClass,i.linkActiveClass,\"router-link-active\")]:t.isActive,[DZ(n.exactActiveClass,i.linkExactActiveClass,\"router-link-exact-active\")]:t.isExactActive}));return()=>{const o=e.default&&e.default(t);return n.custom?o:$i(\"a\",{\"aria-current\":t.isExactActive?n.ariaCurrentValue:null,href:t.href,onClick:t.navigate,class:s.value},o)}}}),_Ee=mEe;function vEe(n){if(!(n.metaKey||n.altKey||n.ctrlKey||n.shiftKey)&&!n.defaultPrevented&&!(n.button!==void 0&&n.button!==0)){if(n.currentTarget&&n.currentTarget.getAttribute){const e=n.currentTarget.getAttribute(\"target\");if(/\\b_blank\\b/i.test(e))return}return n.preventDefault&&n.preventDefault(),!0}}function bEe(n,e){for(const t in e){const i=e[t],s=n[t];if(typeof i==\"string\"){if(i!==s)return!1}else if(!eu(s)||s.length!==i.length||i.some((o,r)=>o!==s[r]))return!1}return!0}function kZ(n){return n?n.aliasOf?n.aliasOf.path:n.path:\"\"}const DZ=(n,e,t)=>n??e??t,CEe=kt({name:\"RouterView\",inheritAttrs:!1,props:{name:{type:String,default:\"default\"},route:Object},compatConfig:{MODE:3},setup(n,{attrs:e,slots:t}){const i=Ui(B8),s=ue(()=>n.route||i.value),o=Ui(xZ,0),r=ue(()=>{let c=j(o);const{matched:d}=s.value;let u;for(;(u=d[c])&&!u.components;)c++;return c}),a=ue(()=>s.value.matched[r.value]);os(xZ,ue(()=>r.value+1)),os(dre,a),os(B8,s);const l=Ue();return Dn(()=>[l.value,a.value,n.name],([c,d,u],[h,f,g])=>{d&&(d.instances[u]=c,f&&f!==d&&c&&c===h&&(d.leaveGuards.size||(d.leaveGuards=f.leaveGuards),d.updateGuards.size||(d.updateGuards=f.updateGuards))),c&&d&&(!f||!LC(d,f)||!h)&&(d.enterCallbacks[u]||[]).forEach(p=>p(c))},{flush:\"post\"}),()=>{const c=s.value,d=n.name,u=a.value,h=u&&u.components[d];if(!h)return IZ(t.default,{Component:h,route:c});const f=u.props[d],g=f?f===!0?c.params:typeof f==\"function\"?f(c):f:null,_=$i(h,is({},g,e,{onVnodeUnmounted:b=>{b.component.isUnmounted&&(u.instances[d]=null)},ref:l}));return IZ(t.default,{Component:_,route:c})||_}}});function IZ(n,e){if(!n)return null;const t=n(e);return t.length===1?t[0]:t}const ure=CEe;function wEe(n){const e=ZIe(n.routes,n),t=n.parseQuery||hEe,i=n.stringifyQuery||SZ,s=n.history,o=Ly(),r=Ly(),a=Ly(),l=Sg(Ld);let c=Ld;t1&&n.scrollBehavior&&\"scrollRestoration\"in history&&(history.scrollRestoration=\"manual\");const d=uF.bind(null,Se=>\"\"+Se),u=uF.bind(null,uEe),h=uF.bind(null,w2);function f(Se,Qe){let nt,mt;return ire(Se)?(nt=e.getRecordMatcher(Se),mt=Qe):mt=Se,e.addRoute(mt,nt)}function g(Se){const Qe=e.getRecordMatcher(Se);Qe&&e.removeRoute(Qe)}function p(){return e.getRoutes().map(Se=>Se.record)}function _(Se){return!!e.getRecordMatcher(Se)}function b(Se,Qe){if(Qe=is({},Qe||l.value),typeof Se==\"string\"){const ie=hF(t,Se,Qe.path),ye=e.resolve({path:ie.path},Qe),ze=s.createHref(ie.fullPath);return is(ie,ye,{params:h(ye.params),hash:w2(ie.hash),redirectedFrom:void 0,href:ze})}let nt;if(\"path\"in Se)nt=is({},Se,{path:hF(t,Se.path,Qe.path).path});else{const ie=is({},Se.params);for(const ye in ie)ie[ye]==null&&delete ie[ye];nt=is({},Se,{params:u(ie)}),Qe.params=u(Qe.params)}const mt=e.resolve(nt,Qe),Je=Se.hash||\"\";mt.params=d(h(mt.params));const Ii=xIe(i,is({},Se,{hash:lEe(Je),path:mt.path})),J=s.createHref(Ii);return is({fullPath:Ii,hash:Je,query:i===SZ?fEe(Se.query):Se.query||{}},mt,{redirectedFrom:void 0,href:J})}function w(Se){return typeof Se==\"string\"?hF(t,Se,l.value.path):is({},Se)}function y(Se,Qe){if(c!==Se)return kC(8,{from:Qe,to:Se})}function S(Se){return D(Se)}function x(Se){return S(is(w(Se),{replace:!0}))}function k(Se){const Qe=Se.matched[Se.matched.length-1];if(Qe&&Qe.redirect){const{redirect:nt}=Qe;let mt=typeof nt==\"function\"?nt(Se):nt;return typeof mt==\"string\"&&(mt=mt.includes(\"?\")||mt.includes(\"#\")?mt=w(mt):{path:mt},mt.params={}),is({query:Se.query,hash:Se.hash,params:\"path\"in mt?{}:Se.params},mt)}}function D(Se,Qe){const nt=c=b(Se),mt=l.value,Je=Se.state,Ii=Se.force,J=Se.replace===!0,ie=k(nt);if(ie)return D(is(w(ie),{state:typeof ie==\"object\"?is({},Je,ie.state):Je,force:Ii,replace:J}),Qe||nt);const ye=nt;ye.redirectedFrom=Qe;let ze;return!Ii&&LIe(i,mt,nt)&&(ze=kC(16,{to:ye,from:mt}),We(mt,mt,!0,!1)),(ze?Promise.resolve(ze):P(ye,mt)).catch(Oe=>lf(Oe)?lf(Oe,2)?Oe:lt(Oe):me(Oe,ye,mt)).then(Oe=>{if(Oe){if(lf(Oe,2))return D(is({replace:J},w(Oe.to),{state:typeof Oe.to==\"object\"?is({},Je,Oe.to.state):Je,force:Ii}),Qe||ye)}else Oe=M(ye,mt,!0,J,Je);return O(ye,mt,Oe),Oe})}function I(Se,Qe){const nt=y(Se,Qe);return nt?Promise.reject(nt):Promise.resolve()}function N(Se){const Qe=Zt.values().next().value;return Qe&&typeof Qe.runWithContext==\"function\"?Qe.runWithContext(Se):Se()}function P(Se,Qe){let nt;const[mt,Je,Ii]=yEe(Se,Qe);nt=fF(mt.reverse(),\"beforeRouteLeave\",Se,Qe);for(const ie of mt)ie.leaveGuards.forEach(ye=>{nt.push(Dp(ye,Se,Qe))});const J=I.bind(null,Se,Qe);return nt.push(J),ni(nt).then(()=>{nt=[];for(const ie of o.list())nt.push(Dp(ie,Se,Qe));return nt.push(J),ni(nt)}).then(()=>{nt=fF(Je,\"beforeRouteUpdate\",Se,Qe);for(const ie of Je)ie.updateGuards.forEach(ye=>{nt.push(Dp(ye,Se,Qe))});return nt.push(J),ni(nt)}).then(()=>{nt=[];for(const ie of Ii)if(ie.beforeEnter)if(eu(ie.beforeEnter))for(const ye of ie.beforeEnter)nt.push(Dp(ye,Se,Qe));else nt.push(Dp(ie.beforeEnter,Se,Qe));return nt.push(J),ni(nt)}).then(()=>(Se.matched.forEach(ie=>ie.enterCallbacks={}),nt=fF(Ii,\"beforeRouteEnter\",Se,Qe),nt.push(J),ni(nt))).then(()=>{nt=[];for(const ie of r.list())nt.push(Dp(ie,Se,Qe));return nt.push(J),ni(nt)}).catch(ie=>lf(ie,8)?ie:Promise.reject(ie))}function O(Se,Qe,nt){a.list().forEach(mt=>N(()=>mt(Se,Qe,nt)))}function M(Se,Qe,nt,mt,Je){const Ii=y(Se,Qe);if(Ii)return Ii;const J=Qe===Ld,ie=t1?history.state:{};nt&&(mt||J?s.replace(Se.fullPath,is({scroll:J&&ie&&ie.scroll},Je)):s.push(Se.fullPath,Je)),l.value=Se,We(Se,Qe,nt,J),lt()}let z;function K(){z||(z=s.listen((Se,Qe,nt)=>{if(!Oi.listening)return;const mt=b(Se),Je=k(mt);if(Je){D(is(Je,{replace:!0}),mt).catch(ex);return}c=mt;const Ii=l.value;t1&&RIe(pZ(Ii.fullPath,nt.delta),QR()),P(mt,Ii).catch(J=>lf(J,12)?J:lf(J,2)?(D(J.to,mt).then(ie=>{lf(ie,20)&&!nt.delta&&nt.type===Qx.pop&&s.go(-1,!1)}).catch(ex),Promise.reject()):(nt.delta&&s.go(-nt.delta,!1),me(J,mt,Ii))).then(J=>{J=J||M(mt,Ii,!1),J&&(nt.delta&&!lf(J,8)?s.go(-nt.delta,!1):nt.type===Qx.pop&&lf(J,20)&&s.go(-1,!1)),O(mt,Ii,J)}).catch(ex)}))}let ae=Ly(),se=Ly(),he;function me(Se,Qe,nt){lt(Se);const mt=se.list();return mt.length?mt.forEach(Je=>Je(Se,Qe,nt)):console.error(Se),Promise.reject(Se)}function De(){return he&&l.value!==Ld?Promise.resolve():new Promise((Se,Qe)=>{ae.add([Se,Qe])})}function lt(Se){return he||(he=!Se,K(),ae.list().forEach(([Qe,nt])=>Se?nt(Se):Qe()),ae.reset()),Se}function We(Se,Qe,nt,mt){const{scrollBehavior:Je}=n;if(!t1||!Je)return Promise.resolve();const Ii=!nt&&MIe(pZ(Se.fullPath,0))||(mt||!nt)&&history.state&&history.state.scroll||null;return Go().then(()=>Je(Se,Qe,Ii)).then(J=>J&&AIe(J)).catch(J=>me(J,Se,Qe))}const Ve=Se=>s.go(Se);let Me;const Zt=new Set,Oi={currentRoute:l,listening:!0,addRoute:f,removeRoute:g,hasRoute:_,getRoutes:p,resolve:b,options:n,push:S,replace:x,go:Ve,back:()=>Ve(-1),forward:()=>Ve(1),beforeEach:o.add,beforeResolve:r.add,afterEach:a.add,onError:se.add,isReady:De,install(Se){const Qe=this;Se.component(\"RouterLink\",_Ee),Se.component(\"RouterView\",ure),Se.config.globalProperties.$router=Qe,Object.defineProperty(Se.config.globalProperties,\"$route\",{enumerable:!0,get:()=>j(l)}),t1&&!Me&&l.value===Ld&&(Me=!0,S(s.location).catch(Je=>{}));const nt={};for(const Je in Ld)Object.defineProperty(nt,Je,{get:()=>l.value[Je],enumerable:!0});Se.provide(xV,Qe),Se.provide(LV,Kf(nt)),Se.provide(B8,l);const mt=Se.unmount;Zt.add(Se),Se.unmount=function(){Zt.delete(Se),Zt.size<1&&(c=Ld,z&&z(),z=null,l.value=Ld,Me=!1,he=!1),mt()}}};function ni(Se){return Se.reduce((Qe,nt)=>Qe.then(()=>N(nt)),Promise.resolve())}return Oi}function yEe(n,e){const t=[],i=[],s=[],o=Math.max(e.matched.length,n.matched.length);for(let r=0;r<o;r++){const a=e.matched[r];a&&(n.matched.find(c=>LC(c,a))?i.push(a):t.push(a));const l=n.matched[r];l&&(e.matched.find(c=>LC(c,l))||s.push(l))}return[t,i,s]}function SEe(){return Ui(LV)}const xEe=(n,e)=>e.path.replace(/(:\\w+)\\([^)]+\\)/g,\"$1\").replace(/(:\\w+)[?+*]/g,\"$1\").replace(/:\\w+/g,t=>{var i;return((i=n.params[t.slice(1)])==null?void 0:i.toString())||\"\"}),W8=(n,e)=>{const t=n.route.matched.find(s=>{var o;return((o=s.components)==null?void 0:o.default)===n.Component.type}),i=e??(t==null?void 0:t.meta.key)??(t&&xEe(n.route,t));return typeof i==\"function\"?i(n.route):i},LEe=(n,e)=>({default:()=>n?$i(JSe,n===!0?{}:n,e):e});function kV(n){return Array.isArray(n)?n:[n]}const kEe=\"modulepreload\",DEe=function(n,e){return new URL(n,e).href},EZ={},je=function(e,t,i){let s=Promise.resolve();if(t&&t.length>0){const r=document.getElementsByTagName(\"link\"),a=document.querySelector(\"meta[property=csp-nonce]\"),l=(a==null?void 0:a.nonce)||(a==null?void 0:a.getAttribute(\"nonce\"));s=Promise.allSettled(t.map(c=>{if(c=DEe(c,i),c in EZ)return;EZ[c]=!0;const d=c.endsWith(\".css\"),u=d?'[rel=\"stylesheet\"]':\"\";if(!!i)for(let g=r.length-1;g>=0;g--){const p=r[g];if(p.href===c&&(!d||p.rel===\"stylesheet\"))return}else if(document.querySelector(`link[href=\"${c}\"]${u}`))return;const f=document.createElement(\"link\");if(f.rel=d?\"stylesheet\":kEe,d||(f.as=\"script\"),f.crossOrigin=\"\",f.href=c,l&&f.setAttribute(\"nonce\",l),document.head.appendChild(f),d)return new Promise((g,p)=>{f.addEventListener(\"load\",g),f.addEventListener(\"error\",()=>p(new Error(`Unable to preload CSS for ${c}`)))})}))}function o(r){const a=new Event(\"vite:preloadError\",{cancelable:!0});if(a.payload=r,window.dispatchEvent(a),!a.defaultPrevented)throw r}return s.then(r=>{for(const a of r||[])a.status===\"rejected\"&&o(a.reason);return e().catch(o)})},IEe={middleware:[\"has-plan-middleware\"]},gF=[{name:\"backtest-id\",path:\"/backtest/:id()\",component:()=>je(()=>import(\"./E1yjnBiT.js\"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]),import.meta.url)},{name:\"backtest-benchmark\",path:\"/backtest/benchmark\",meta:IEe||{},component:()=>je(()=>import(\"./CP8nbYEq.js\"),__vite__mapDeps([21,1,2,3,19]),import.meta.url)},{name:\"backtest-history\",path:\"/backtest/history\",component:()=>je(()=>import(\"./DyLYGjHh.js\"),__vite__mapDeps([22,1,2,3,14,15,23,24,25,16,17,19]),import.meta.url)},{name:\"backtest\",path:\"/backtest\",component:()=>je(()=>import(\"./HeqvyViL.js\"),[],import.meta.url)},{name:\"candles\",path:\"/candles\",component:()=>je(()=>import(\"./DGRk4fvy.js\"),__vite__mapDeps([26,10,15,8,24,25,19]),import.meta.url)},{name:\"candles-manage\",path:\"/candles/manage\",component:()=>je(()=>import(\"./rKxcFsZi.js\"),__vite__mapDeps([27,8,23,24,25]),import.meta.url)},{name:\"exchange-api-keys\",path:\"/exchange-api-keys\",component:()=>je(()=>import(\"./Bad53t6V.js\"),__vite__mapDeps([28,10,4,29,19]),import.meta.url)},{name:\"index\",path:\"/\",component:()=>je(()=>import(\"./rUbGlJbN.js\"),__vite__mapDeps([30,19]),import.meta.url)},{name:\"live-id\",path:\"/live/:id()\",component:()=>je(()=>import(\"./BJ5jdafP.js\"),__vite__mapDeps([31,32,2,33,34,35,4,36,37,5,6,7,8,9,10,11,14,13,18,12,15,38,17,19,20]),import.meta.url)},{name:\"live-history\",path:\"/live/history\",component:()=>je(()=>import(\"./BwHcMc3Y.js\"),__vite__mapDeps([39,32,2,33,14,40,15,23,24,25,38,17,19]),import.meta.url)},{name:\"live\",path:\"/live\",component:()=>je(()=>import(\"./CwDv50qJ.js\"),[],import.meta.url)},{name:\"live-orders-history\",path:\"/live/orders-history\",component:()=>je(()=>import(\"./O-0jUIAi.js\"),__vite__mapDeps([41,32,2,33,14,15,23,24,25,36,19]),import.meta.url)},{name:\"live-overview\",path:\"/live/overview\",component:()=>je(()=>import(\"./CvkRSmvA.js\"),__vite__mapDeps([42,32,2,33,12,13,40,15,23,24,25,19,20]),import.meta.url)},{name:\"live-trades-history\",path:\"/live/trades-history\",component:()=>je(()=>import(\"./zIqOaAtZ.js\"),__vite__mapDeps([43,32,2,33,14,15,23,24,25,34,35,4,36,19]),import.meta.url)},{name:\"monte-carlo-id\",path:\"/monte-carlo/:id()\",component:()=>je(()=>import(\"./qXRMwz9A.js\"),__vite__mapDeps([44,37,4,7,8,9,24,25,13,14,45,35,46,17,19,47,48]),import.meta.url)},{name:\"monte-carlo-history\",path:\"/monte-carlo/history\",component:()=>je(()=>import(\"./CUKaiP0K.js\"),__vite__mapDeps([49,14,15,23,24,25,46,17,19]),import.meta.url)},{name:\"monte-carlo\",path:\"/monte-carlo\",component:()=>je(()=>import(\"./dUAF8qyF.js\"),__vite__mapDeps([50,14,10,11,9,19,51]),import.meta.url)},{name:\"notification-api-keys\",path:\"/notification-api-keys\",component:()=>je(()=>import(\"./Du3IqvzK.js\"),__vite__mapDeps([52,10,4,29,19]),import.meta.url)},{name:\"optimization-id\",path:\"/optimization/:id()\",component:()=>je(()=>import(\"./BMl_rFTw.js\"),__vite__mapDeps([53,37,4,8,7,9,14,13,5,6,45,35,54,17,19,47,55]),import.meta.url)},{name:\"optimization-history\",path:\"/optimization/history\",component:()=>je(()=>import(\"./DmtRXgke.js\"),__vite__mapDeps([56,14,15,23,24,25,54,17,19]),import.meta.url)},{name:\"optimization\",path:\"/optimization\",component:()=>je(()=>import(\"./BFk92hFI.js\"),__vite__mapDeps([57,14,10,11,9,19]),import.meta.url)},{name:\"strategies-name\",path:\"/strategies/:name()\",component:()=>je(()=>import(\"./BaOuBgqt.js\"),__vite__mapDeps([58,59,60,17,19]),import.meta.url)},{name:\"strategies\",path:\"/strategies\",component:()=>je(()=>import(\"./B1vp6HhI.js\"),__vite__mapDeps([61,45,10,14,59,60,15,8,12,13,19,62]),import.meta.url)}];/**\n* @vue/shared v3.5.22\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/const pF=n=>typeof n==\"function\",EEe=n=>n!==null&&typeof n==\"object\",TEe=n=>(EEe(n)||pF(n))&&pF(n.then)&&pF(n.catch),hre=(n,e,t)=>(e=e===!0?{}:e,{default:()=>{var i;return e?$i(n,e,t):(i=t.default)==null?void 0:i.call(t)}});function TZ(n){const e=(n==null?void 0:n.meta.key)??n.path.replace(/(:\\w+)\\([^)]+\\)/g,\"$1\").replace(/(:\\w+)[?+*]/g,\"$1\").replace(/:\\w+/g,t=>{var i;return((i=n.params[t.slice(1)])==null?void 0:i.toString())||\"\"});return typeof e==\"function\"?e(n):e}function NEe(n,e){return n===e||e===Ld?!1:TZ(n)!==TZ(e)?!0:!n.matched.every((i,s)=>{var o,r;return i.components&&i.components.default===((r=(o=e.matched[s])==null?void 0:o.components)==null?void 0:r.default)})}function mF(n,e=!1){if(n){if(n.nodeName===\"#comment\"&&n.nodeValue===\"[\")return fre(n,[],e);if(e){const t=n.cloneNode(!0);return t.querySelectorAll(\"[data-island-slot]\").forEach(i=>{i.innerHTML=\"\"}),[t.outerHTML]}return[n.outerHTML]}return null}function fre(n,e=[],t=!1){if(n&&n.nodeName){if(REe(n))return e;if(!AEe(n)){const i=n.cloneNode(!0);t&&i.querySelectorAll(\"[data-island-slot]\").forEach(s=>{s.innerHTML=\"\"}),e.push(i.outerHTML)}fre(n.nextSibling,e,t)}return e}function AEe(n){return n.nodeName===\"#comment\"&&n.nodeValue===\"[\"}function REe(n){return n.nodeName===\"#comment\"&&n.nodeValue===\"]\"}const MEe={scrollBehavior(n,e,t){var c;const i=In(),s=((c=Fr().options)==null?void 0:c.scrollBehaviorType)??\"auto\";let o=t||void 0;const r=typeof n.meta.scrollToTop==\"function\"?n.meta.scrollToTop(n,e):n.meta.scrollToTop;if(!o&&e&&n&&r!==!1&&NEe(n,e)&&(o={left:0,top:0}),n.path===e.path)return e.hash&&!n.hash?{left:0,top:0}:n.hash?{el:n.hash,top:NZ(n.hash),behavior:s}:!1;const a=d=>!!(d.meta.pageTransition??L8),l=a(e)&&a(n)?\"page:transition:finish\":\"page:finish\";return new Promise(d=>{i.hooks.hookOnce(l,async()=>{await new Promise(u=>setTimeout(u,0)),n.hash&&(o={el:n.hash,top:NZ(n.hash),behavior:s}),d(o)})})}};function NZ(n){try{const e=document.querySelector(n);if(e)return(Number.parseFloat(getComputedStyle(e).scrollMarginTop)||0)+(Number.parseFloat(getComputedStyle(document.documentElement).scrollPaddingTop)||0)}catch{}return 0}const PEe={hashMode:!0,scrollBehaviorType:\"auto\"},Rc={...PEe,...MEe},OEe=async n=>{var l;let e,t;if(!((l=n.meta)!=null&&l.validate))return;const i=In(),s=Fr(),o=([e,t]=Vv(()=>Promise.resolve(n.meta.validate(n))),e=await e,t(),e);if(o===!0)return;const r=XR({statusCode:o&&o.statusCode||404,statusMessage:o&&o.statusMessage||`Page Not Found: ${n.fullPath}`,data:{path:n.fullPath}}),a=s.beforeResolve(c=>{if(a(),c===n){const d=s.afterEach(async()=>{d(),await i.runWithContext(()=>d1(r)),window==null||window.history.pushState({},\"\",n.fullPath)});return!1}})},FEe=[OEe],ix={\"has-plan-middleware\":()=>je(()=>import(\"./CvlXmOiu.js\"),[],import.meta.url)};function BEe(n,e,t){const{pathname:i,search:s,hash:o}=e,r=n.indexOf(\"#\");if(r>-1){const c=o.includes(n.slice(r))?n.slice(r).length:1;let d=o.slice(c);return d[0]!==\"/\"&&(d=\"/\"+d),JG(d,\"\")}const a=JG(i,n),l=!t||pke(a,t,{trailingSlash:!0})?a:t;return l+(l.includes(\"?\")?\"\":s)+o}const WEe=ua({name:\"nuxt:router\",enforce:\"pre\",async setup(n){var _;let e,t,i=Tm().app.baseURL;Rc.hashMode&&!i.includes(\"#\")&&(i+=\"#\");const s=((_=Rc.history)==null?void 0:_.call(Rc,i))??(Rc.hashMode?BIe(i):tre(i)),o=Rc.routes?([e,t]=Vv(()=>Rc.routes(gF)),e=await e,t(),e??gF):gF;let r;const a=wEe({...Rc,scrollBehavior:(b,w,y)=>{if(w===Ld){r=y;return}if(Rc.scrollBehavior){if(a.options.scrollBehavior=Rc.scrollBehavior,\"scrollRestoration\"in window.history){const S=a.beforeEach(()=>{S(),window.history.scrollRestoration=\"manual\"})}return Rc.scrollBehavior(b,Ld,r||y)}},history:s,routes:o});\"scrollRestoration\"in window.history&&(window.history.scrollRestoration=\"auto\"),n.vueApp.use(a);const l=Sg(a.currentRoute.value);a.afterEach((b,w)=>{l.value=w}),Object.defineProperty(n.vueApp.config.globalProperties,\"previousRoute\",{get:()=>l.value});const c=BEe(i,window.location,n.payload.path),d=Sg(a.currentRoute.value),u=()=>{d.value=a.currentRoute.value};n.hook(\"page:finish\",u),a.afterEach((b,w)=>{var y,S,x,k;((S=(y=b.matched[0])==null?void 0:y.components)==null?void 0:S.default)===((k=(x=w.matched[0])==null?void 0:x.components)==null?void 0:k.default)&&u()});const h={};for(const b in d.value)Object.defineProperty(h,b,{get:()=>d.value[b],enumerable:!0});n._route=Kf(h),n._middleware=n._middleware||{global:[],named:{}};const f=YR();a.afterEach(async(b,w,y)=>{delete n._processingMiddleware,!n.isHydrating&&f.value&&await n.runWithContext(gDe),y&&await n.callHook(\"page:loading:end\"),b.matched.length===0&&await n.runWithContext(()=>d1(I8({statusCode:404,fatal:!1,statusMessage:`Page not found: ${b.fullPath}`,data:{path:b.fullPath}})))});try{[e,t]=Vv(()=>a.isReady()),await e,t()}catch(b){[e,t]=Vv(()=>n.runWithContext(()=>d1(b))),await e,t()}const g=c!==a.currentRoute.value.fullPath?a.resolve(c):a.currentRoute.value;u();const p=n.payload.state._layout;return a.beforeEach(async(b,w)=>{var y;await n.callHook(\"page:loading:start\"),b.meta=Ba(b.meta),n.isHydrating&&p&&!Dm(b.meta.layout)&&(b.meta.layout=p),n._processingMiddleware=!0;{const S=new Set([...FEe,...n._middleware.global]);for(const x of b.matched){const k=x.meta.middleware;if(k)for(const D of kV(k))S.add(D)}for(const x of S){const k=typeof x==\"string\"?n._middleware.named[x]||await((y=ix[x])==null?void 0:y.call(ix).then(I=>I.default||I)):x;if(!k)throw new Error(`Unknown route middleware: '${x}'.`);const D=await n.runWithContext(()=>k(b,w));if(!n.payload.serverRendered&&n.isHydrating&&(D===!1||D instanceof Error)){const I=D||I8({statusCode:404,statusMessage:`Page Not Found: ${c}`});return await n.runWithContext(()=>d1(I)),!1}if(D!==!0&&(D||D===!1))return D}}}),a.onError(async()=>{delete n._processingMiddleware,await n.callHook(\"page:loading:end\")}),n.hooks.hookOnce(\"app:created\",async()=>{try{\"name\"in g&&(g.name=void 0),await a.replace({...g,force:!0}),a.options.scrollBehavior=Rc.scrollBehavior}catch(b){await n.runWithContext(()=>d1(b))}}),{provide:{router:a}}}}),H8=globalThis.requestIdleCallback||(n=>{const e=Date.now(),t={didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-e))};return setTimeout(()=>{n(t)},1)}),HEe=globalThis.cancelIdleCallback||(n=>{clearTimeout(n)}),gre=n=>{const e=In();e.isHydrating?e.hooks.hookOnce(\"app:suspense:resolve\",()=>{H8(()=>n())}):H8(()=>n())},VEe=ua(()=>{const n=Fr();gre(()=>{n.beforeResolve(async()=>{await new Promise(e=>{setTimeout(e,100),requestAnimationFrame(()=>{setTimeout(e,0)})})})})});function zEe(n={}){const e=n.path||window.location.pathname;let t={};try{t=xC(sessionStorage.getItem(\"nuxt:reload\")||\"{}\")}catch{}if(n.force||(t==null?void 0:t.path)!==e||(t==null?void 0:t.expires)<Date.now()){try{sessionStorage.setItem(\"nuxt:reload\",JSON.stringify({path:e,expires:Date.now()+(n.ttl??1e4)}))}catch{}if(n.persistState)try{sessionStorage.setItem(\"nuxt:reload:state\",JSON.stringify({state:In().payload.state}))}catch{}window.location.pathname!==e?window.location.href=e:window.location.reload()}}const $Ee=ua({name:\"nuxt:chunk-reload\",setup(n){const e=Fr(),t=Tm(),i=new Set;e.beforeEach(()=>{i.clear()}),n.hook(\"app:chunkError\",({error:o})=>{i.add(o)});function s(o){const a=\"href\"in o&&o.href[0]===\"#\"?t.app.baseURL+o.href:CV(t.app.baseURL,o.fullPath);zEe({path:a,persistState:!0})}n.hook(\"app:manifest:update\",()=>{e.beforeResolve(s)}),e.onError((o,r)=>{i.has(o)&&s(r)})}});/*!\n * pinia v2.1.7\n * (c) 2023 Eduardo San Martin Morote\n * @license MIT\n */let pre;const sD=n=>pre=n,mre=Symbol();function V8(n){return n&&typeof n==\"object\"&&Object.prototype.toString.call(n)===\"[object Object]\"&&typeof n.toJSON!=\"function\"}var nx;(function(n){n.direct=\"direct\",n.patchObject=\"patch object\",n.patchFunction=\"patch function\"})(nx||(nx={}));function UEe(){const n=KH(!0),e=n.run(()=>Ue({}));let t=[],i=[];const s=eV({install(o){sD(s),s._a=o,o.provide(mre,s),o.config.globalProperties.$pinia=s,i.forEach(r=>t.push(r)),i=[]},use(o){return this._a?t.push(o):i.push(o),this},_p:t,_a:null,_e:n,_s:new Map,state:e});return s}const _re=()=>{};function AZ(n,e,t,i=_re){n.push(e);const s=()=>{const o=n.indexOf(e);o>-1&&(n.splice(o,1),i())};return!t&&r_()&&vC(s),s}function Tb(n,...e){n.slice().forEach(t=>{t(...e)})}const jEe=n=>n();function z8(n,e){n instanceof Map&&e instanceof Map&&e.forEach((t,i)=>n.set(i,t)),n instanceof Set&&e instanceof Set&&e.forEach(n.add,n);for(const t in e){if(!e.hasOwnProperty(t))continue;const i=e[t],s=n[t];V8(s)&&V8(i)&&n.hasOwnProperty(t)&&!Cn(i)&&!ug(i)?n[t]=z8(s,i):n[t]=i}return n}const KEe=Symbol();function qEe(n){return!V8(n)||!n.hasOwnProperty(KEe)}const{assign:pp}=Object;function GEe(n){return!!(Cn(n)&&n.effect)}function ZEe(n,e,t,i){const{state:s,actions:o,getters:r}=e,a=t.state.value[n];let l;function c(){a||(t.state.value[n]=s?s():{});const d=pSe(t.state.value[n]);return pp(d,o,Object.keys(r||{}).reduce((u,h)=>(u[h]=eV(ue(()=>{sD(t);const f=t._s.get(n);return r[h].call(f,f)})),u),{}))}return l=vre(n,c,e,t,i,!0),l}function vre(n,e,t={},i,s,o){let r;const a=pp({actions:{}},t),l={deep:!0};let c,d,u=[],h=[],f;const g=i.state.value[n];!o&&!g&&(i.state.value[n]={}),Ue({});let p;function _(I){let N;c=d=!1,typeof I==\"function\"?(I(i.state.value[n]),N={type:nx.patchFunction,storeId:n,events:f}):(z8(i.state.value[n],I),N={type:nx.patchObject,payload:I,storeId:n,events:f});const P=p=Symbol();Go().then(()=>{p===P&&(c=!0)}),d=!0,Tb(u,N,i.state.value[n])}const b=o?function(){const{state:N}=t,P=N?N():{};this.$patch(O=>{pp(O,P)})}:_re;function w(){r.stop(),u=[],h=[],i._s.delete(n)}function y(I,N){return function(){sD(i);const P=Array.from(arguments),O=[],M=[];function z(se){O.push(se)}function K(se){M.push(se)}Tb(h,{args:P,name:I,store:x,after:z,onError:K});let ae;try{ae=N.apply(this&&this.$id===n?this:x,P)}catch(se){throw Tb(M,se),se}return ae instanceof Promise?ae.then(se=>(Tb(O,se),se)).catch(se=>(Tb(M,se),Promise.reject(se))):(Tb(O,ae),ae)}}const S={_p:i,$id:n,$onAction:AZ.bind(null,h),$patch:_,$reset:b,$subscribe(I,N={}){const P=AZ(u,I,N.detached,()=>O()),O=r.run(()=>Dn(()=>i.state.value[n],M=>{(N.flush===\"sync\"?d:c)&&I({storeId:n,type:nx.direct,events:f},M)},pp({},l,N)));return P},$dispose:w},x=Ba(S);i._s.set(n,x);const D=(i._a&&i._a.runWithContext||jEe)(()=>i._e.run(()=>(r=KH()).run(e)));for(const I in D){const N=D[I];if(Cn(N)&&!GEe(N)||ug(N))o||(g&&qEe(N)&&(Cn(N)?N.value=g[I]:z8(N,g[I])),i.state.value[n][I]=N);else if(typeof N==\"function\"){const P=y(I,N);D[I]=P,a.actions[I]=N}}return pp(x,D),pp(zi(x),D),Object.defineProperty(x,\"$state\",{get:()=>i.state.value[n],set:I=>{_(N=>{pp(N,I)})}}),i._p.forEach(I=>{pp(x,r.run(()=>I({store:x,app:i._a,pinia:i,options:a})))}),g&&o&&t.hydrate&&t.hydrate(x.$state,g),c=!0,d=!0,x}function d_(n,e,t){let i,s;const o=typeof e==\"function\";typeof n==\"string\"?(i=n,s=o?t:e):(s=n,i=n.id);function r(a,l){const c=lV();return a=a||(c?Ui(mre,null):null),a&&sD(a),a=pre,a._s.has(i)||(o?vre(i,e,s,a):ZEe(i,s,a)),a._s.get(i)}return r.$id=i,r}const YEe=\"$s\";function Ew(...n){const e=typeof n[n.length-1]==\"string\"?n.pop():void 0;typeof n[0]!=\"string\"&&n.unshift(e);const[t,i]=n;if(!t||typeof t!=\"string\")throw new TypeError(\"[nuxt] [useState] key must be a string: \"+t);if(i!==void 0&&typeof i!=\"function\")throw new Error(\"[nuxt] [useState] init must be a function: \"+i);const s=YEe+t,o=In(),r=Ps(o.payload.state,s);if(r.value===void 0&&i){const a=i();if(Cn(a))return o.payload.state[s]=a,a;r.value=a}return r}const RZ=Object.freeze({ignoreUnknown:!1,respectType:!1,respectFunctionNames:!1,respectFunctionProperties:!1,unorderedObjects:!0,unorderedArrays:!1,unorderedSets:!1,excludeKeys:void 0,excludeValues:void 0,replacer:void 0});function MZ(n,e){e?e={...RZ,...e}:e=RZ;const t=bre(e);return t.dispatch(n),t.toString()}const XEe=Object.freeze([\"prototype\",\"__proto__\",\"constructor\"]);function bre(n){let e=\"\",t=new Map;const i=s=>{e+=s};return{toString(){return e},getContext(){return t},dispatch(s){return n.replacer&&(s=n.replacer(s)),this[s===null?\"null\":typeof s](s)},object(s){if(s&&typeof s.toJSON==\"function\")return this.object(s.toJSON());const o=Object.prototype.toString.call(s);let r=\"\";const a=o.length;a<10?r=\"unknown:[\"+o+\"]\":r=o.slice(8,a-1),r=r.toLowerCase();let l=null;if((l=t.get(s))===void 0)t.set(s,t.size);else return this.dispatch(\"[CIRCULAR:\"+l+\"]\");if(typeof Buffer<\"u\"&&Buffer.isBuffer&&Buffer.isBuffer(s))return i(\"buffer:\"),i(s.toString(\"utf8\"));if(r!==\"object\"&&r!==\"function\"&&r!==\"asyncfunction\")this[r]?this[r](s):n.ignoreUnknown||this.unkown(s,r);else{let c=Object.keys(s);n.unorderedObjects&&(c=c.sort());let d=[];n.respectType!==!1&&!PZ(s)&&(d=XEe),n.excludeKeys&&(c=c.filter(h=>!n.excludeKeys(h)),d=d.filter(h=>!n.excludeKeys(h))),i(\"object:\"+(c.length+d.length)+\":\");const u=h=>{this.dispatch(h),i(\":\"),n.excludeValues||this.dispatch(s[h]),i(\",\")};for(const h of c)u(h);for(const h of d)u(h)}},array(s,o){if(o=o===void 0?n.unorderedArrays!==!1:o,i(\"array:\"+s.length+\":\"),!o||s.length<=1){for(const l of s)this.dispatch(l);return}const r=new Map,a=s.map(l=>{const c=bre(n);c.dispatch(l);for(const[d,u]of c.getContext())r.set(d,u);return c.toString()});return t=r,a.sort(),this.array(a,!1)},date(s){return i(\"date:\"+s.toJSON())},symbol(s){return i(\"symbol:\"+s.toString())},unkown(s,o){if(i(o),!!s&&(i(\":\"),s&&typeof s.entries==\"function\"))return this.array(Array.from(s.entries()),!0)},error(s){return i(\"error:\"+s.toString())},boolean(s){return i(\"bool:\"+s)},string(s){i(\"string:\"+s.length+\":\"),i(s)},function(s){i(\"fn:\"),PZ(s)?this.dispatch(\"[native]\"):this.dispatch(s.toString()),n.respectFunctionNames!==!1&&this.dispatch(\"function-name:\"+String(s.name)),n.respectFunctionProperties&&this.object(s)},number(s){return i(\"number:\"+s)},xml(s){return i(\"xml:\"+s.toString())},null(){return i(\"Null\")},undefined(){return i(\"Undefined\")},regexp(s){return i(\"regex:\"+s.toString())},uint8array(s){return i(\"uint8array:\"),this.dispatch(Array.prototype.slice.call(s))},uint8clampedarray(s){return i(\"uint8clampedarray:\"),this.dispatch(Array.prototype.slice.call(s))},int8array(s){return i(\"int8array:\"),this.dispatch(Array.prototype.slice.call(s))},uint16array(s){return i(\"uint16array:\"),this.dispatch(Array.prototype.slice.call(s))},int16array(s){return i(\"int16array:\"),this.dispatch(Array.prototype.slice.call(s))},uint32array(s){return i(\"uint32array:\"),this.dispatch(Array.prototype.slice.call(s))},int32array(s){return i(\"int32array:\"),this.dispatch(Array.prototype.slice.call(s))},float32array(s){return i(\"float32array:\"),this.dispatch(Array.prototype.slice.call(s))},float64array(s){return i(\"float64array:\"),this.dispatch(Array.prototype.slice.call(s))},arraybuffer(s){return i(\"arraybuffer:\"),this.dispatch(new Uint8Array(s))},url(s){return i(\"url:\"+s.toString())},map(s){i(\"map:\");const o=[...s];return this.array(o,n.unorderedSets!==!1)},set(s){i(\"set:\");const o=[...s];return this.array(o,n.unorderedSets!==!1)},file(s){return i(\"file:\"),this.dispatch([s.name,s.size,s.type,s.lastModfied])},blob(){if(n.ignoreUnknown)return i(\"[blob]\");throw new Error(`Hashing Blob objects is currently not supported\nUse \"options.replacer\" or \"options.ignoreUnknown\"\n`)},domwindow(){return i(\"domwindow\")},bigint(s){return i(\"bigint:\"+s.toString())},process(){return i(\"process\")},timer(){return i(\"timer\")},pipe(){return i(\"pipe\")},tcp(){return i(\"tcp\")},udp(){return i(\"udp\")},tty(){return i(\"tty\")},statwatcher(){return i(\"statwatcher\")},securecontext(){return i(\"securecontext\")},connection(){return i(\"connection\")},zlib(){return i(\"zlib\")},context(){return i(\"context\")},nodescript(){return i(\"nodescript\")},httpparser(){return i(\"httpparser\")},dataview(){return i(\"dataview\")},signal(){return i(\"signal\")},fsevent(){return i(\"fsevent\")},tlswrap(){return i(\"tlswrap\")}}}const Cre=\"[native code] }\",QEe=Cre.length;function PZ(n){return typeof n!=\"function\"?!1:Function.prototype.toString.call(n).slice(-QEe)===Cre}function wre(n,e,t={}){return n===e||MZ(n,t)===MZ(e,t)}function kd(n){if(typeof n!=\"object\")return n;var e,t,i=Object.prototype.toString.call(n);if(i===\"[object Object]\"){if(n.constructor!==Object&&typeof n.constructor==\"function\"){t=new n.constructor;for(e in n)n.hasOwnProperty(e)&&t[e]!==n[e]&&(t[e]=kd(n[e]))}else{t={};for(e in n)e===\"__proto__\"?Object.defineProperty(t,e,{value:kd(n[e]),configurable:!0,enumerable:!0,writable:!0}):t[e]=kd(n[e])}return t}if(i===\"[object Array]\"){for(e=n.length,t=Array(e);e--;)t[e]=kd(n[e]);return t}return i===\"[object Set]\"?(t=new Set,n.forEach(function(s){t.add(kd(s))}),t):i===\"[object Map]\"?(t=new Map,n.forEach(function(s,o){t.set(kd(o),kd(s))}),t):i===\"[object Date]\"?new Date(+n):i===\"[object RegExp]\"?(t=new RegExp(n.source,n.flags),t.lastIndex=n.lastIndex,t):i===\"[object DataView]\"?new n.constructor(kd(n.buffer)):i===\"[object ArrayBuffer]\"?n.slice(0):i.slice(-6)===\"Array]\"?new n.constructor(n):n}const JEe={path:\"/\",watch:!0,decode:n=>xC(decodeURIComponent(n)),encode:n=>encodeURIComponent(typeof n==\"string\"?n:JSON.stringify(n))},_E=window.cookieStore;function OZ(n,e){var l;const t={...JEe,...e};t.filter??(t.filter=c=>c===n);const i=FZ(t)||{};let s;t.maxAge!==void 0?s=t.maxAge*1e3:t.expires&&(s=t.expires.getTime()-Date.now());const o=s!==void 0&&s<=0,r=kd(o?void 0:i[n]??((l=t.default)==null?void 0:l.call(t))),a=s&&!o?iTe(r,s,t.watch&&t.watch!==\"shallow\"):Ue(r);{let c=null;try{!_E&&typeof BroadcastChannel<\"u\"&&(c=new BroadcastChannel(`nuxt:cookies:${n}`))}catch{}const d=()=>{t.readonly||wre(a.value,i[n])||(tTe(n,a.value,t),i[n]=kd(a.value),c==null||c.postMessage({value:t.encode(a.value)}))},u=g=>{var _;const p=g.refresh?(_=FZ(t))==null?void 0:_[n]:t.decode(g.value);h=!0,a.value=p,i[n]=kd(p),Go(()=>{h=!1})};let h=!1;const f=!!r_();if(f&&vC(()=>{h=!0,d(),c==null||c.close()}),_E){const g=p=>{const _=p.changed.find(w=>w.name===n),b=p.deleted.find(w=>w.name===n);_&&u({value:_.value}),b&&u({value:null})};_E.addEventListener(\"change\",g),f&&vC(()=>_E.removeEventListener(\"change\",g))}else c&&(c.onmessage=({data:g})=>u(g));t.watch?Dn(a,()=>{h||d()},{deep:t.watch!==\"shallow\"}):d()}return a}function FZ(n={}){return oDe(document.cookie,n)}function eTe(n,e,t={}){return e==null?oZ(n,e,{...t,maxAge:-1}):oZ(n,e,t)}function tTe(n,e,t={}){document.cookie=eTe(n,e,t)}const BZ=2147483647;function iTe(n,e,t){let i,s,o=0;const r=t?Ue(n):{value:n};return r_()&&vC(()=>{s==null||s(),clearTimeout(i)}),hse((a,l)=>{t&&(s=Dn(r,l));function c(){o=0,clearTimeout(i);const d=e-o,u=d<BZ?d:BZ;i=setTimeout(()=>{if(o+=u,o<e)return c();r.value=void 0,l()},u)}return{get(){return a(),r.value},set(d){c(),r.value=d,l()}}})}async function yre(n,e=Fr()){const{path:t,matched:i}=e.resolve(n);if(!i.length||(e._routePreloaded||(e._routePreloaded=new Set),e._routePreloaded.has(t)))return;const s=e._preloadPromises=e._preloadPromises||[];if(s.length>4)return Promise.all(s).then(()=>yre(n,e));e._routePreloaded.add(t);const o=i.map(r=>{var a;return(a=r.components)==null?void 0:a.default}).filter(r=>typeof r==\"function\");for(const r of o){const a=Promise.resolve(r()).catch(()=>{}).finally(()=>s.splice(s.indexOf(a)));s.push(a)}await Promise.all(s)}const nTe=j0,sTe=(...n)=>n.find(e=>e!==void 0);function oTe(n){const e=n.componentName||\"NuxtLink\";function t(s,o){if(!s||n.trailingSlash!==\"append\"&&n.trailingSlash!==\"remove\")return s;if(typeof s==\"string\")return WZ(s,n.trailingSlash);const r=\"path\"in s&&s.path!==void 0?s.path:o(s).path;return{...s,name:void 0,path:WZ(r,n.trailingSlash)}}function i(s){const o=Fr(),r=Tm(),a=ue(()=>!!s.target&&s.target!==\"_self\"),l=ue(()=>{const p=s.to||s.href||\"\";return typeof p==\"string\"&&K0(p,{acceptRelative:!0})}),c=jc(\"RouterLink\"),d=c&&typeof c!=\"string\"?c.useLink:void 0,u=ue(()=>{if(s.external)return!0;const p=s.to||s.href||\"\";return typeof p==\"object\"?!1:p===\"\"||l.value}),h=ue(()=>{const p=s.to||s.href||\"\";return u.value?p:t(p,o.resolve)}),f=u.value||d==null?void 0:d({...s,to:h}),g=ue(()=>{var p;if(!h.value||l.value)return h.value;if(u.value){const _=typeof h.value==\"object\"&&\"path\"in h.value?T8(h.value):h.value,b=typeof _==\"object\"?o.resolve(_).href:_;return t(b,o.resolve)}return typeof h.value==\"object\"?((p=o.resolve(h.value))==null?void 0:p.href)??null:t(CV(r.app.baseURL,h.value),o.resolve)});return{to:h,hasTarget:a,isAbsoluteUrl:l,isExternal:u,href:g,isActive:(f==null?void 0:f.isActive)??ue(()=>h.value===o.currentRoute.value.path),isExactActive:(f==null?void 0:f.isExactActive)??ue(()=>h.value===o.currentRoute.value.path),route:(f==null?void 0:f.route)??ue(()=>o.resolve(h.value)),async navigate(){await Vs(g.value,{replace:s.replace,external:u.value||a.value})}}}return kt({name:e,props:{to:{type:[String,Object],default:void 0,required:!1},href:{type:[String,Object],default:void 0,required:!1},target:{type:String,default:void 0,required:!1},rel:{type:String,default:void 0,required:!1},noRel:{type:Boolean,default:void 0,required:!1},prefetch:{type:Boolean,default:void 0,required:!1},prefetchOn:{type:[String,Object],default:void 0,required:!1},noPrefetch:{type:Boolean,default:void 0,required:!1},activeClass:{type:String,default:void 0,required:!1},exactActiveClass:{type:String,default:void 0,required:!1},prefetchedClass:{type:String,default:void 0,required:!1},replace:{type:Boolean,default:void 0,required:!1},ariaCurrentValue:{type:String,default:void 0,required:!1},external:{type:Boolean,default:void 0,required:!1},custom:{type:Boolean,default:void 0,required:!1}},useLink:i,setup(s,{slots:o}){const r=Fr(),{to:a,href:l,navigate:c,isExternal:d,hasTarget:u,isAbsoluteUrl:h}=i(s),f=Ue(!1),g=Ue(null),p=w=>{var y;g.value=s.custom?(y=w==null?void 0:w.$el)==null?void 0:y.nextElementSibling:w==null?void 0:w.$el};function _(w){var y,S;return!f.value&&(typeof s.prefetchOn==\"string\"?s.prefetchOn===w:((y=s.prefetchOn)==null?void 0:y[w])??((S=n.prefetchOn)==null?void 0:S[w]))&&(s.prefetch??n.prefetch)!==!1&&s.noPrefetch!==!0&&s.target!==\"_blank\"&&!aTe()}async function b(w=In()){if(f.value)return;f.value=!0;const y=typeof a.value==\"string\"?a.value:d.value?T8(a.value):r.resolve(a.value).fullPath;await Promise.all([w.hooks.callHook(\"link:prefetch\",y).catch(()=>{}),!d.value&&!u.value&&yre(a.value,r).catch(()=>{})])}if(_(\"visibility\")){const w=In();let y,S=null;cn(()=>{const x=rTe();gre(()=>{y=H8(()=>{var k;(k=g==null?void 0:g.value)!=null&&k.tagName&&(S=x.observe(g.value,async()=>{S==null||S(),S=null,await b(w)}))})})}),Jk(()=>{y&&HEe(y),S==null||S(),S=null})}return()=>{var S;if(!d.value&&!u.value){const x={ref:p,to:a.value,activeClass:s.activeClass||n.activeClass,exactActiveClass:s.exactActiveClass||n.exactActiveClass,replace:s.replace,ariaCurrentValue:s.ariaCurrentValue,custom:s.custom};return s.custom||(_(\"interaction\")&&(x.onPointerenter=b.bind(null,void 0),x.onFocus=b.bind(null,void 0)),f.value&&(x.class=s.prefetchedClass||n.prefetchedClass),x.rel=s.rel||void 0),$i(jc(\"RouterLink\"),x,o.default)}const w=s.target||null,y=sTe(s.noRel?\"\":s.rel,n.externalRelAttribute,h.value||u.value?\"noopener noreferrer\":\"\")||null;return s.custom?o.default?o.default({href:l.value,navigate:c,prefetch:b,get route(){if(!l.value)return;const x=new URL(l.value,window.location.href);return{path:x.pathname,fullPath:x.pathname,get query(){return xoe(x.search)},hash:x.hash,params:{},name:void 0,matched:[],redirectedFrom:void 0,meta:{},href:l.value}},rel:y,target:w,isExternal:d.value||u.value,isActive:!1,isExactActive:!1}):null:$i(\"a\",{ref:g,href:l.value||null,rel:y,target:w},(S=o.default)==null?void 0:S.call(o))}}})}const y2=oTe(Zke);function WZ(n,e){const t=e===\"append\"?g2:bV;return K0(n)&&!n.startsWith(\"http\")?n:t(n,!0)}function rTe(){const n=In();if(n._observer)return n._observer;let e=null;const t=new Map,i=(o,r)=>(e||(e=new IntersectionObserver(a=>{for(const l of a){const c=t.get(l.target);(l.isIntersecting||l.intersectionRatio>0)&&c&&c()}})),t.set(o,r),e.observe(o),()=>{t.delete(o),e.unobserve(o),t.size===0&&(e.disconnect(),e=null)});return n._observer={observe:i}}function aTe(){const n=navigator.connection;return!!(n&&(n.saveData||/2g/.test(n.effectiveType)))}const lTe={ui:{primary:\"indigo\",gray:\"stone\",notifications:{position:\"bottom-0 left-0 right-auto\"},button:{color:{gray:{soft:\"text-gray-900 dark:text-gray-100 bg-white hover:bg-gray-100 disabled:bg-gray-50 dark:bg-gray-800 dark:hover:bg-gray-700 dark:disabled:bg-gray-800 focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-gray-500 dark:focus-visible:ring-gray-400 border border-gray-100 dark:border-gray-700\"}}}}},cTe={nuxt:{},ui:{primary:\"green\",gray:\"cool\",colors:[\"red\",\"orange\",\"amber\",\"yellow\",\"lime\",\"green\",\"emerald\",\"teal\",\"cyan\",\"sky\",\"blue\",\"indigo\",\"violet\",\"purple\",\"fuchsia\",\"pink\",\"rose\",\"primary\",\"backdrop\",\"body\"],strategy:\"merge\"}},Pi=cDe(lTe,cTe);function JR(){const n=In();return n._appConfig||(n._appConfig=Ba(Pi)),n._appConfig}const dTe=ua(n=>{const e=UEe();return n.vueApp.use(e),sD(e),n.payload&&n.payload.pinia&&(e.state.value=n.payload.pinia),{provide:{pinia:e}}}),uTe=o2(()=>je(()=>Promise.resolve().then(()=>tdt),void 0,import.meta.url).then(n=>n.default||n.default||n)),hTe=o2(()=>je(()=>import(\"./DaasEFj5.js\"),__vite__mapDeps([63,64]),import.meta.url).then(n=>n.default||n.default||n)),fTe=[[\"Icon\",uTe],[\"IconCSS\",hTe]],gTe=ua({name:\"nuxt:global-components\",setup(n){for(const[e,t]of fTe)n.vueApp.component(e,t),n.vueApp.component(\"Lazy\"+e,t)}}),Hp={default:()=>je(()=>import(\"./oQwgk5qA.js\"),[],import.meta.url)},pTe=ua({name:\"nuxt:prefetch\",setup(n){const e=Fr();n.hooks.hook(\"app:mounted\",()=>{e.beforeEach(async t=>{var s;const i=(s=t==null?void 0:t.meta)==null?void 0:s.layout;i&&typeof Hp[i]==\"function\"&&await Hp[i]()})}),n.hooks.hook(\"link:prefetch\",t=>{if(K0(t))return;const i=e.resolve(t);if(!i)return;const s=i.meta.layout;let o=kV(i.meta.middleware);o=o.filter(r=>typeof r==\"string\");for(const r of o)typeof ix[r]==\"function\"&&ix[r]();s&&typeof Hp[s]==\"function\"&&Hp[s]()})}}),Sre=()=>Ew(\"MonacoEditorNamespace\",()=>null),Omt=()=>Sre().value,mTe=ua(async n=>{let e,t;const i=(o,r)=>new Worker(new URL(`${n.$config.app.baseURL}/_nuxt/nuxt-monaco-editor/vs/${o}.js`.replace(/\\/\\//g,\"/\"),import.meta.url),{name:r,type:\"module\"});self.MonacoEnvironment={getWorker(o,r){switch(r){case\"json\":return i(\"language/json/json.worker\",r);case\"css\":case\"scss\":case\"less\":return i(\"language/css/css.worker\",r);case\"html\":case\"handlebars\":case\"razor\":return i(\"language/html/html.worker\",r);case\"typescript\":case\"javascript\":return i(\"language/typescript/ts.worker\",r);default:return i(\"editor/editor.worker\",r)}}};const s=Sre();s.value=([e,t]=Vv(()=>je(()=>Promise.resolve().then(()=>qst),void 0,import.meta.url)),e=await e,t(),e)});function $8(n){return r_()?(vC(n),!0):!1}function r0(n){return typeof n==\"function\"?n():j(n)}const U8=typeof window<\"u\"&&typeof document<\"u\";typeof WorkerGlobalScope<\"u\"&&globalThis instanceof WorkerGlobalScope;const _Te=n=>typeof n<\"u\",HZ=()=>+Date.now(),Jx=()=>{};function xre(n,e){function t(...i){return new Promise((s,o)=>{Promise.resolve(n(()=>e.apply(this,i),{fn:e,thisArg:this,args:i})).then(s).catch(o)})}return t}function vTe(n,e={}){let t,i,s=Jx;const o=a=>{clearTimeout(a),s(),s=Jx};return a=>{const l=r0(n),c=r0(e.maxWait);return t&&o(t),l<=0||c!==void 0&&c<=0?(i&&(o(i),i=null),Promise.resolve(a())):new Promise((d,u)=>{s=e.rejectOnCancel?u:d,c&&!i&&(i=setTimeout(()=>{t&&o(t),i=null,d(a())},c)),t=setTimeout(()=>{i&&o(i),i=null,d(a())},l)})}}function bTe(...n){let e=0,t,i=!0,s=Jx,o,r,a,l,c;!Cn(n[0])&&typeof n[0]==\"object\"?{delay:r,trailing:a=!0,leading:l=!0,rejectOnCancel:c=!1}=n[0]:[r,a=!0,l=!0,c=!1]=n;const d=()=>{t&&(clearTimeout(t),t=void 0,s(),s=Jx)};return h=>{const f=r0(r),g=Date.now()-e,p=()=>o=h();return d(),f<=0?(e=Date.now(),p()):(g>f&&(l||!i)?(e=Date.now(),p()):a&&(o=new Promise((_,b)=>{s=c?b:_,t=setTimeout(()=>{e=Date.now(),i=!0,_(p()),d()},Math.max(0,f-g))})),!l&&!t&&(t=setTimeout(()=>i=!0,f)),i=!1,o)}}function Lre(n,e=200,t={}){return xre(vTe(e,t),n)}function CTe(n,e=200,t=!1,i=!0,s=!1){return xre(bTe(e,t,i,s),n)}function kre(n,e=1e3,t={}){const{immediate:i=!0,immediateCallback:s=!1}=t;let o=null;const r=Ue(!1);function a(){o&&(clearInterval(o),o=null)}function l(){r.value=!1,a()}function c(){const d=r0(e);d<=0||(r.value=!0,s&&n(),a(),o=setInterval(n,d))}if(i&&U8&&c(),Cn(e)||typeof e==\"function\"){const d=Dn(e,()=>{r.value&&U8&&c()});$8(d)}return $8(l),{isActive:r,pause:l,resume:c}}function Fmt(n,e,t){let i;Cn(t)?i={evaluating:t}:i={};const{lazy:s=!1,evaluating:o=void 0,shallow:r=!0,onError:a=Jx}=i,l=Ue(!s),c=r?Sg(e):Ue(e);let d=0;return Qo(async u=>{if(!l.value)return;d++;const h=d;let f=!1;o&&Promise.resolve().then(()=>{o.value=!0});try{const g=await n(p=>{u(()=>{o&&(o.value=!1),f||p()})});h===d&&(c.value=g)}catch(g){a(g)}finally{o&&h===d&&(o.value=!1),f=!0}}),s?ue(()=>(l.value=!0,c.value)):c}function VZ(n){var e;const t=r0(n);return(e=t==null?void 0:t.$el)!=null?e:t}const wTe=U8?window:void 0;function Dre(n,e={}){const{immediate:t=!0,fpsLimit:i=void 0,window:s=wTe}=e,o=Ue(!1),r=i?1e3/i:null;let a=0,l=null;function c(h){if(!o.value||!s)return;a||(a=h);const f=h-a;if(r&&f<r){l=s.requestAnimationFrame(c);return}a=h,n({delta:f,timestamp:h}),l=s.requestAnimationFrame(c)}function d(){!o.value&&s&&(o.value=!0,a=0,l=s.requestAnimationFrame(c))}function u(){o.value=!1,l!=null&&s&&(s.cancelAnimationFrame(l),l=null)}return t&&d(),$8(u),{isActive:XH(o),pause:u,resume:d}}function yTe(n){return JSON.parse(JSON.stringify(n))}const ky=new Map;function STe(n){const e=r_();function t(a){var l;const c=ky.get(n)||new Set;c.add(a),ky.set(n,c);const d=()=>s(a);return(l=e==null?void 0:e.cleanups)==null||l.push(d),d}function i(a){function l(...c){s(l),a(...c)}return t(l)}function s(a){const l=ky.get(n);l&&(l.delete(a),l.size||o())}function o(){ky.delete(n)}function r(a,l){var c;(c=ky.get(n))==null||c.forEach(d=>d(a,l))}return{on:t,once:i,off:s,emit:r,reset:o}}function xTe(n={}){const{controls:e=!1,interval:t=\"requestAnimationFrame\"}=n,i=Ue(new Date),s=()=>i.value=new Date,o=t===\"requestAnimationFrame\"?Dre(s,{immediate:!0}):kre(s,t,{immediate:!0});return e?{now:i,...o}:i}const LTe=[{max:6e4,value:1e3,name:\"second\"},{max:276e4,value:6e4,name:\"minute\"},{max:72e6,value:36e5,name:\"hour\"},{max:5184e5,value:864e5,name:\"day\"},{max:24192e5,value:6048e5,name:\"week\"},{max:28512e6,value:2592e6,name:\"month\"},{max:Number.POSITIVE_INFINITY,value:31536e6,name:\"year\"}],kTe={justNow:\"just now\",past:n=>n.match(/\\d/)?`${n} ago`:n,future:n=>n.match(/\\d/)?`in ${n}`:n,month:(n,e)=>n===1?e?\"last month\":\"next month\":`${n} month${n>1?\"s\":\"\"}`,year:(n,e)=>n===1?e?\"last year\":\"next year\":`${n} year${n>1?\"s\":\"\"}`,day:(n,e)=>n===1?e?\"yesterday\":\"tomorrow\":`${n} day${n>1?\"s\":\"\"}`,week:(n,e)=>n===1?e?\"last week\":\"next week\":`${n} week${n>1?\"s\":\"\"}`,hour:n=>`${n} hour${n>1?\"s\":\"\"}`,minute:n=>`${n} minute${n>1?\"s\":\"\"}`,second:n=>`${n} second${n>1?\"s\":\"\"}`,invalid:\"\"};function DTe(n){return n.toISOString().slice(0,10)}function Bmt(n,e={}){const{controls:t=!1,updateInterval:i=3e4}=e,{now:s,...o}=xTe({interval:i,controls:!0}),r=ue(()=>ITe(new Date(r0(n)),e,r0(s)));return t?{timeAgo:r,...o}:r}function ITe(n,e={},t=Date.now()){var i;const{max:s,messages:o=kTe,fullDateFormatter:r=DTe,units:a=LTe,showSecond:l=!1,rounding:c=\"round\"}=e,d=typeof c==\"number\"?_=>+_.toFixed(c):Math[c],u=+t-+n,h=Math.abs(u);function f(_,b){return d(Math.abs(_)/b.value)}function g(_,b){const w=f(_,b),y=_>0,S=p(b.name,w,y);return p(y?\"past\":\"future\",S,y)}function p(_,b,w){const y=o[_];return typeof y==\"function\"?y(b,w):y.replace(\"{0}\",b.toString())}if(h<6e4&&!l)return o.justNow;if(typeof s==\"number\"&&h>s)return r(new Date(n));if(typeof s==\"string\"){const _=(i=a.find(b=>b.name===s))==null?void 0:i.max;if(_&&h>_)return r(new Date(n))}for(const[_,b]of a.entries()){if(f(u,b)<=0&&a[_-1])return g(u,a[_-1]);if(h<b.max)return g(u,b)}return o.invalid}function ETe(n={}){const{controls:e=!1,offset:t=0,immediate:i=!0,interval:s=\"requestAnimationFrame\",callback:o}=n,r=Ue(HZ()+t),a=()=>r.value=HZ()+t,l=o?()=>{a(),o(r.value)}:a,c=s===\"requestAnimationFrame\"?Dre(l,{immediate:i}):kre(l,s,{immediate:i});return e?{timestamp:r,...c}:r}function Wmt(n,e,t,i={}){var s,o,r;const{clone:a=!1,passive:l=!1,eventName:c,deep:d=!1,defaultValue:u,shouldEmit:h}=i,f=pc(),g=t||(f==null?void 0:f.emit)||((s=f==null?void 0:f.$emit)==null?void 0:s.bind(f))||((r=(o=f==null?void 0:f.proxy)==null?void 0:o.$emit)==null?void 0:r.bind(f==null?void 0:f.proxy));let p=c;p=p||`update:${e.toString()}`;const _=y=>a?typeof a==\"function\"?a(y):yTe(y):y,b=()=>_Te(n[e])?_(n[e]):u,w=y=>{h?h(y)&&g(p,y):g(p,y)};if(l){const y=b(),S=Ue(y);let x=!1;return Dn(()=>n[e],k=>{x||(x=!0,S.value=_(k),Go(()=>x=!1))}),Dn(S,k=>{!x&&(k!==n[e]||d)&&w(k)},{deep:d}),S}else return ue({get(){return b()},set(y){w(y)}})}const TTe=Symbol(\"nuxt-ui.slideover\"),NTe=ua(n=>{const e=Sg({component:\"div\",props:{}});n.vueApp.provide(TTe,e)}),ATe=Symbol(\"nuxt-ui.modal\"),RTe=ua(n=>{const e=Sg({component:\"div\",props:{}});n.vueApp.provide(ATe,e)}),DV=\"-\",MTe=n=>{const e=OTe(n),{conflictingClassGroups:t,conflictingClassGroupModifiers:i}=n;return{getClassGroupId:r=>{const a=r.split(DV);return a[0]===\"\"&&a.length!==1&&a.shift(),Ire(a,e)||PTe(r)},getConflictingClassGroupIds:(r,a)=>{const l=t[r]||[];return a&&i[r]?[...l,...i[r]]:l}}},Ire=(n,e)=>{var r;if(n.length===0)return e.classGroupId;const t=n[0],i=e.nextPart.get(t),s=i?Ire(n.slice(1),i):void 0;if(s)return s;if(e.validators.length===0)return;const o=n.join(DV);return(r=e.validators.find(({validator:a})=>a(o)))==null?void 0:r.classGroupId},zZ=/^\\[(.+)\\]$/,PTe=n=>{if(zZ.test(n)){const e=zZ.exec(n)[1],t=e==null?void 0:e.substring(0,e.indexOf(\":\"));if(t)return\"arbitrary..\"+t}},OTe=n=>{const{theme:e,prefix:t}=n,i={nextPart:new Map,validators:[]};return BTe(Object.entries(n.classGroups),t).forEach(([o,r])=>{j8(r,i,o,e)}),i},j8=(n,e,t,i)=>{n.forEach(s=>{if(typeof s==\"string\"){const o=s===\"\"?e:$Z(e,s);o.classGroupId=t;return}if(typeof s==\"function\"){if(FTe(s)){j8(s(i),e,t,i);return}e.validators.push({validator:s,classGroupId:t});return}Object.entries(s).forEach(([o,r])=>{j8(r,$Z(e,o),t,i)})})},$Z=(n,e)=>{let t=n;return e.split(DV).forEach(i=>{t.nextPart.has(i)||t.nextPart.set(i,{nextPart:new Map,validators:[]}),t=t.nextPart.get(i)}),t},FTe=n=>n.isThemeGetter,BTe=(n,e)=>e?n.map(([t,i])=>{const s=i.map(o=>typeof o==\"string\"?e+o:typeof o==\"object\"?Object.fromEntries(Object.entries(o).map(([r,a])=>[e+r,a])):o);return[t,s]}):n,WTe=n=>{if(n<1)return{get:()=>{},set:()=>{}};let e=0,t=new Map,i=new Map;const s=(o,r)=>{t.set(o,r),e++,e>n&&(e=0,i=t,t=new Map)};return{get(o){let r=t.get(o);if(r!==void 0)return r;if((r=i.get(o))!==void 0)return s(o,r),r},set(o,r){t.has(o)?t.set(o,r):s(o,r)}}},Ere=\"!\",HTe=n=>{const{separator:e,experimentalParseClassName:t}=n,i=e.length===1,s=e[0],o=e.length,r=a=>{const l=[];let c=0,d=0,u;for(let _=0;_<a.length;_++){let b=a[_];if(c===0){if(b===s&&(i||a.slice(_,_+o)===e)){l.push(a.slice(d,_)),d=_+o;continue}if(b===\"/\"){u=_;continue}}b===\"[\"?c++:b===\"]\"&&c--}const h=l.length===0?a:a.substring(d),f=h.startsWith(Ere),g=f?h.substring(1):h,p=u&&u>d?u-d:void 0;return{modifiers:l,hasImportantModifier:f,baseClassName:g,maybePostfixModifierPosition:p}};return t?a=>t({className:a,parseClassName:r}):r},VTe=n=>{if(n.length<=1)return n;const e=[];let t=[];return n.forEach(i=>{i[0]===\"[\"?(e.push(...t.sort(),i),t=[]):t.push(i)}),e.push(...t.sort()),e},zTe=n=>({cache:WTe(n.cacheSize),parseClassName:HTe(n),...MTe(n)}),$Te=/\\s+/,UTe=(n,e)=>{const{parseClassName:t,getClassGroupId:i,getConflictingClassGroupIds:s}=e,o=[],r=n.trim().split($Te);let a=\"\";for(let l=r.length-1;l>=0;l-=1){const c=r[l],{modifiers:d,hasImportantModifier:u,baseClassName:h,maybePostfixModifierPosition:f}=t(c);let g=!!f,p=i(g?h.substring(0,f):h);if(!p){if(!g){a=c+(a.length>0?\" \"+a:a);continue}if(p=i(h),!p){a=c+(a.length>0?\" \"+a:a);continue}g=!1}const _=VTe(d).join(\":\"),b=u?_+Ere:_,w=b+p;if(o.includes(w))continue;o.push(w);const y=s(p,g);for(let S=0;S<y.length;++S){const x=y[S];o.push(b+x)}a=c+(a.length>0?\" \"+a:a)}return a};function Vn(){let n=0,e,t,i=\"\";for(;n<arguments.length;)(e=arguments[n++])&&(t=Tre(e))&&(i&&(i+=\" \"),i+=t);return i}const Tre=n=>{if(typeof n==\"string\")return n;let e,t=\"\";for(let i=0;i<n.length;i++)n[i]&&(e=Tre(n[i]))&&(t&&(t+=\" \"),t+=e);return t};function K8(n,...e){let t,i,s,o=r;function r(l){const c=e.reduce((d,u)=>u(d),n());return t=zTe(c),i=t.cache.get,s=t.cache.set,o=a,a(l)}function a(l){const c=i(l);if(c)return c;const d=UTe(l,t);return s(l,d),d}return function(){return o(Vn.apply(null,arguments))}}const Ts=n=>{const e=t=>t[n]||[];return e.isThemeGetter=!0,e},Nre=/^\\[(?:([a-z-]+):)?(.+)\\]$/i,jTe=/^\\d+\\/\\d+$/,KTe=new Set([\"px\",\"full\",\"screen\"]),qTe=/^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/,GTe=/\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/,ZTe=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/,YTe=/^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/,XTe=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/,cf=n=>$1(n)||KTe.has(n)||jTe.test(n),rp=n=>Tw(n,\"length\",oNe),$1=n=>!!n&&!Number.isNaN(Number(n)),_F=n=>Tw(n,\"number\",$1),Dy=n=>!!n&&Number.isInteger(Number(n)),QTe=n=>n.endsWith(\"%\")&&$1(n.slice(0,-1)),Hi=n=>Nre.test(n),ap=n=>qTe.test(n),JTe=new Set([\"length\",\"size\",\"percentage\"]),eNe=n=>Tw(n,JTe,Are),tNe=n=>Tw(n,\"position\",Are),iNe=new Set([\"image\",\"url\"]),nNe=n=>Tw(n,iNe,aNe),sNe=n=>Tw(n,\"\",rNe),Iy=()=>!0,Tw=(n,e,t)=>{const i=Nre.exec(n);return i?i[1]?typeof e==\"string\"?i[1]===e:e.has(i[1]):t(i[2]):!1},oNe=n=>GTe.test(n)&&!ZTe.test(n),Are=()=>!1,rNe=n=>YTe.test(n),aNe=n=>XTe.test(n),q8=()=>{const n=Ts(\"colors\"),e=Ts(\"spacing\"),t=Ts(\"blur\"),i=Ts(\"brightness\"),s=Ts(\"borderColor\"),o=Ts(\"borderRadius\"),r=Ts(\"borderSpacing\"),a=Ts(\"borderWidth\"),l=Ts(\"contrast\"),c=Ts(\"grayscale\"),d=Ts(\"hueRotate\"),u=Ts(\"invert\"),h=Ts(\"gap\"),f=Ts(\"gradientColorStops\"),g=Ts(\"gradientColorStopPositions\"),p=Ts(\"inset\"),_=Ts(\"margin\"),b=Ts(\"opacity\"),w=Ts(\"padding\"),y=Ts(\"saturate\"),S=Ts(\"scale\"),x=Ts(\"sepia\"),k=Ts(\"skew\"),D=Ts(\"space\"),I=Ts(\"translate\"),N=()=>[\"auto\",\"contain\",\"none\"],P=()=>[\"auto\",\"hidden\",\"clip\",\"visible\",\"scroll\"],O=()=>[\"auto\",Hi,e],M=()=>[Hi,e],z=()=>[\"\",cf,rp],K=()=>[\"auto\",$1,Hi],ae=()=>[\"bottom\",\"center\",\"left\",\"left-bottom\",\"left-top\",\"right\",\"right-bottom\",\"right-top\",\"top\"],se=()=>[\"solid\",\"dashed\",\"dotted\",\"double\",\"none\"],he=()=>[\"normal\",\"multiply\",\"screen\",\"overlay\",\"darken\",\"lighten\",\"color-dodge\",\"color-burn\",\"hard-light\",\"soft-light\",\"difference\",\"exclusion\",\"hue\",\"saturation\",\"color\",\"luminosity\"],me=()=>[\"start\",\"end\",\"center\",\"between\",\"around\",\"evenly\",\"stretch\"],De=()=>[\"\",\"0\",Hi],lt=()=>[\"auto\",\"avoid\",\"all\",\"avoid-page\",\"page\",\"left\",\"right\",\"column\"],We=()=>[$1,Hi];return{cacheSize:500,separator:\":\",theme:{colors:[Iy],spacing:[cf,rp],blur:[\"none\",\"\",ap,Hi],brightness:We(),borderColor:[n],borderRadius:[\"none\",\"\",\"full\",ap,Hi],borderSpacing:M(),borderWidth:z(),contrast:We(),grayscale:De(),hueRotate:We(),invert:De(),gap:M(),gradientColorStops:[n],gradientColorStopPositions:[QTe,rp],inset:O(),margin:O(),opacity:We(),padding:M(),saturate:We(),scale:We(),sepia:De(),skew:We(),space:M(),translate:M()},classGroups:{aspect:[{aspect:[\"auto\",\"square\",\"video\",Hi]}],container:[\"container\"],columns:[{columns:[ap]}],\"break-after\":[{\"break-after\":lt()}],\"break-before\":[{\"break-before\":lt()}],\"break-inside\":[{\"break-inside\":[\"auto\",\"avoid\",\"avoid-page\",\"avoid-column\"]}],\"box-decoration\":[{\"box-decoration\":[\"slice\",\"clone\"]}],box:[{box:[\"border\",\"content\"]}],display:[\"block\",\"inline-block\",\"inline\",\"flex\",\"inline-flex\",\"table\",\"inline-table\",\"table-caption\",\"table-cell\",\"table-column\",\"table-column-group\",\"table-footer-group\",\"table-header-group\",\"table-row-group\",\"table-row\",\"flow-root\",\"grid\",\"inline-grid\",\"contents\",\"list-item\",\"hidden\"],float:[{float:[\"right\",\"left\",\"none\",\"start\",\"end\"]}],clear:[{clear:[\"left\",\"right\",\"both\",\"none\",\"start\",\"end\"]}],isolation:[\"isolate\",\"isolation-auto\"],\"object-fit\":[{object:[\"contain\",\"cover\",\"fill\",\"none\",\"scale-down\"]}],\"object-position\":[{object:[...ae(),Hi]}],overflow:[{overflow:P()}],\"overflow-x\":[{\"overflow-x\":P()}],\"overflow-y\":[{\"overflow-y\":P()}],overscroll:[{overscroll:N()}],\"overscroll-x\":[{\"overscroll-x\":N()}],\"overscroll-y\":[{\"overscroll-y\":N()}],position:[\"static\",\"fixed\",\"absolute\",\"relative\",\"sticky\"],inset:[{inset:[p]}],\"inset-x\":[{\"inset-x\":[p]}],\"inset-y\":[{\"inset-y\":[p]}],start:[{start:[p]}],end:[{end:[p]}],top:[{top:[p]}],right:[{right:[p]}],bottom:[{bottom:[p]}],left:[{left:[p]}],visibility:[\"visible\",\"invisible\",\"collapse\"],z:[{z:[\"auto\",Dy,Hi]}],basis:[{basis:O()}],\"flex-direction\":[{flex:[\"row\",\"row-reverse\",\"col\",\"col-reverse\"]}],\"flex-wrap\":[{flex:[\"wrap\",\"wrap-reverse\",\"nowrap\"]}],flex:[{flex:[\"1\",\"auto\",\"initial\",\"none\",Hi]}],grow:[{grow:De()}],shrink:[{shrink:De()}],order:[{order:[\"first\",\"last\",\"none\",Dy,Hi]}],\"grid-cols\":[{\"grid-cols\":[Iy]}],\"col-start-end\":[{col:[\"auto\",{span:[\"full\",Dy,Hi]},Hi]}],\"col-start\":[{\"col-start\":K()}],\"col-end\":[{\"col-end\":K()}],\"grid-rows\":[{\"grid-rows\":[Iy]}],\"row-start-end\":[{row:[\"auto\",{span:[Dy,Hi]},Hi]}],\"row-start\":[{\"row-start\":K()}],\"row-end\":[{\"row-end\":K()}],\"grid-flow\":[{\"grid-flow\":[\"row\",\"col\",\"dense\",\"row-dense\",\"col-dense\"]}],\"auto-cols\":[{\"auto-cols\":[\"auto\",\"min\",\"max\",\"fr\",Hi]}],\"auto-rows\":[{\"auto-rows\":[\"auto\",\"min\",\"max\",\"fr\",Hi]}],gap:[{gap:[h]}],\"gap-x\":[{\"gap-x\":[h]}],\"gap-y\":[{\"gap-y\":[h]}],\"justify-content\":[{justify:[\"normal\",...me()]}],\"justify-items\":[{\"justify-items\":[\"start\",\"end\",\"center\",\"stretch\"]}],\"justify-self\":[{\"justify-self\":[\"auto\",\"start\",\"end\",\"center\",\"stretch\"]}],\"align-content\":[{content:[\"normal\",...me(),\"baseline\"]}],\"align-items\":[{items:[\"start\",\"end\",\"center\",\"baseline\",\"stretch\"]}],\"align-self\":[{self:[\"auto\",\"start\",\"end\",\"center\",\"stretch\",\"baseline\"]}],\"place-content\":[{\"place-content\":[...me(),\"baseline\"]}],\"place-items\":[{\"place-items\":[\"start\",\"end\",\"center\",\"baseline\",\"stretch\"]}],\"place-self\":[{\"place-self\":[\"auto\",\"start\",\"end\",\"center\",\"stretch\"]}],p:[{p:[w]}],px:[{px:[w]}],py:[{py:[w]}],ps:[{ps:[w]}],pe:[{pe:[w]}],pt:[{pt:[w]}],pr:[{pr:[w]}],pb:[{pb:[w]}],pl:[{pl:[w]}],m:[{m:[_]}],mx:[{mx:[_]}],my:[{my:[_]}],ms:[{ms:[_]}],me:[{me:[_]}],mt:[{mt:[_]}],mr:[{mr:[_]}],mb:[{mb:[_]}],ml:[{ml:[_]}],\"space-x\":[{\"space-x\":[D]}],\"space-x-reverse\":[\"space-x-reverse\"],\"space-y\":[{\"space-y\":[D]}],\"space-y-reverse\":[\"space-y-reverse\"],w:[{w:[\"auto\",\"min\",\"max\",\"fit\",\"svw\",\"lvw\",\"dvw\",Hi,e]}],\"min-w\":[{\"min-w\":[Hi,e,\"min\",\"max\",\"fit\"]}],\"max-w\":[{\"max-w\":[Hi,e,\"none\",\"full\",\"min\",\"max\",\"fit\",\"prose\",{screen:[ap]},ap]}],h:[{h:[Hi,e,\"auto\",\"min\",\"max\",\"fit\",\"svh\",\"lvh\",\"dvh\"]}],\"min-h\":[{\"min-h\":[Hi,e,\"min\",\"max\",\"fit\",\"svh\",\"lvh\",\"dvh\"]}],\"max-h\":[{\"max-h\":[Hi,e,\"min\",\"max\",\"fit\",\"svh\",\"lvh\",\"dvh\"]}],size:[{size:[Hi,e,\"auto\",\"min\",\"max\",\"fit\"]}],\"font-size\":[{text:[\"base\",ap,rp]}],\"font-smoothing\":[\"antialiased\",\"subpixel-antialiased\"],\"font-style\":[\"italic\",\"not-italic\"],\"font-weight\":[{font:[\"thin\",\"extralight\",\"light\",\"normal\",\"medium\",\"semibold\",\"bold\",\"extrabold\",\"black\",_F]}],\"font-family\":[{font:[Iy]}],\"fvn-normal\":[\"normal-nums\"],\"fvn-ordinal\":[\"ordinal\"],\"fvn-slashed-zero\":[\"slashed-zero\"],\"fvn-figure\":[\"lining-nums\",\"oldstyle-nums\"],\"fvn-spacing\":[\"proportional-nums\",\"tabular-nums\"],\"fvn-fraction\":[\"diagonal-fractions\",\"stacked-fractions\"],tracking:[{tracking:[\"tighter\",\"tight\",\"normal\",\"wide\",\"wider\",\"widest\",Hi]}],\"line-clamp\":[{\"line-clamp\":[\"none\",$1,_F]}],leading:[{leading:[\"none\",\"tight\",\"snug\",\"normal\",\"relaxed\",\"loose\",cf,Hi]}],\"list-image\":[{\"list-image\":[\"none\",Hi]}],\"list-style-type\":[{list:[\"none\",\"disc\",\"decimal\",Hi]}],\"list-style-position\":[{list:[\"inside\",\"outside\"]}],\"placeholder-color\":[{placeholder:[n]}],\"placeholder-opacity\":[{\"placeholder-opacity\":[b]}],\"text-alignment\":[{text:[\"left\",\"center\",\"right\",\"justify\",\"start\",\"end\"]}],\"text-color\":[{text:[n]}],\"text-opacity\":[{\"text-opacity\":[b]}],\"text-decoration\":[\"underline\",\"overline\",\"line-through\",\"no-underline\"],\"text-decoration-style\":[{decoration:[...se(),\"wavy\"]}],\"text-decoration-thickness\":[{decoration:[\"auto\",\"from-font\",cf,rp]}],\"underline-offset\":[{\"underline-offset\":[\"auto\",cf,Hi]}],\"text-decoration-color\":[{decoration:[n]}],\"text-transform\":[\"uppercase\",\"lowercase\",\"capitalize\",\"normal-case\"],\"text-overflow\":[\"truncate\",\"text-ellipsis\",\"text-clip\"],\"text-wrap\":[{text:[\"wrap\",\"nowrap\",\"balance\",\"pretty\"]}],indent:[{indent:M()}],\"vertical-align\":[{align:[\"baseline\",\"top\",\"middle\",\"bottom\",\"text-top\",\"text-bottom\",\"sub\",\"super\",Hi]}],whitespace:[{whitespace:[\"normal\",\"nowrap\",\"pre\",\"pre-line\",\"pre-wrap\",\"break-spaces\"]}],break:[{break:[\"normal\",\"words\",\"all\",\"keep\"]}],hyphens:[{hyphens:[\"none\",\"manual\",\"auto\"]}],content:[{content:[\"none\",Hi]}],\"bg-attachment\":[{bg:[\"fixed\",\"local\",\"scroll\"]}],\"bg-clip\":[{\"bg-clip\":[\"border\",\"padding\",\"content\",\"text\"]}],\"bg-opacity\":[{\"bg-opacity\":[b]}],\"bg-origin\":[{\"bg-origin\":[\"border\",\"padding\",\"content\"]}],\"bg-position\":[{bg:[...ae(),tNe]}],\"bg-repeat\":[{bg:[\"no-repeat\",{repeat:[\"\",\"x\",\"y\",\"round\",\"space\"]}]}],\"bg-size\":[{bg:[\"auto\",\"cover\",\"contain\",eNe]}],\"bg-image\":[{bg:[\"none\",{\"gradient-to\":[\"t\",\"tr\",\"r\",\"br\",\"b\",\"bl\",\"l\",\"tl\"]},nNe]}],\"bg-color\":[{bg:[n]}],\"gradient-from-pos\":[{from:[g]}],\"gradient-via-pos\":[{via:[g]}],\"gradient-to-pos\":[{to:[g]}],\"gradient-from\":[{from:[f]}],\"gradient-via\":[{via:[f]}],\"gradient-to\":[{to:[f]}],rounded:[{rounded:[o]}],\"rounded-s\":[{\"rounded-s\":[o]}],\"rounded-e\":[{\"rounded-e\":[o]}],\"rounded-t\":[{\"rounded-t\":[o]}],\"rounded-r\":[{\"rounded-r\":[o]}],\"rounded-b\":[{\"rounded-b\":[o]}],\"rounded-l\":[{\"rounded-l\":[o]}],\"rounded-ss\":[{\"rounded-ss\":[o]}],\"rounded-se\":[{\"rounded-se\":[o]}],\"rounded-ee\":[{\"rounded-ee\":[o]}],\"rounded-es\":[{\"rounded-es\":[o]}],\"rounded-tl\":[{\"rounded-tl\":[o]}],\"rounded-tr\":[{\"rounded-tr\":[o]}],\"rounded-br\":[{\"rounded-br\":[o]}],\"rounded-bl\":[{\"rounded-bl\":[o]}],\"border-w\":[{border:[a]}],\"border-w-x\":[{\"border-x\":[a]}],\"border-w-y\":[{\"border-y\":[a]}],\"border-w-s\":[{\"border-s\":[a]}],\"border-w-e\":[{\"border-e\":[a]}],\"border-w-t\":[{\"border-t\":[a]}],\"border-w-r\":[{\"border-r\":[a]}],\"border-w-b\":[{\"border-b\":[a]}],\"border-w-l\":[{\"border-l\":[a]}],\"border-opacity\":[{\"border-opacity\":[b]}],\"border-style\":[{border:[...se(),\"hidden\"]}],\"divide-x\":[{\"divide-x\":[a]}],\"divide-x-reverse\":[\"divide-x-reverse\"],\"divide-y\":[{\"divide-y\":[a]}],\"divide-y-reverse\":[\"divide-y-reverse\"],\"divide-opacity\":[{\"divide-opacity\":[b]}],\"divide-style\":[{divide:se()}],\"border-color\":[{border:[s]}],\"border-color-x\":[{\"border-x\":[s]}],\"border-color-y\":[{\"border-y\":[s]}],\"border-color-s\":[{\"border-s\":[s]}],\"border-color-e\":[{\"border-e\":[s]}],\"border-color-t\":[{\"border-t\":[s]}],\"border-color-r\":[{\"border-r\":[s]}],\"border-color-b\":[{\"border-b\":[s]}],\"border-color-l\":[{\"border-l\":[s]}],\"divide-color\":[{divide:[s]}],\"outline-style\":[{outline:[\"\",...se()]}],\"outline-offset\":[{\"outline-offset\":[cf,Hi]}],\"outline-w\":[{outline:[cf,rp]}],\"outline-color\":[{outline:[n]}],\"ring-w\":[{ring:z()}],\"ring-w-inset\":[\"ring-inset\"],\"ring-color\":[{ring:[n]}],\"ring-opacity\":[{\"ring-opacity\":[b]}],\"ring-offset-w\":[{\"ring-offset\":[cf,rp]}],\"ring-offset-color\":[{\"ring-offset\":[n]}],shadow:[{shadow:[\"\",\"inner\",\"none\",ap,sNe]}],\"shadow-color\":[{shadow:[Iy]}],opacity:[{opacity:[b]}],\"mix-blend\":[{\"mix-blend\":[...he(),\"plus-lighter\",\"plus-darker\"]}],\"bg-blend\":[{\"bg-blend\":he()}],filter:[{filter:[\"\",\"none\"]}],blur:[{blur:[t]}],brightness:[{brightness:[i]}],contrast:[{contrast:[l]}],\"drop-shadow\":[{\"drop-shadow\":[\"\",\"none\",ap,Hi]}],grayscale:[{grayscale:[c]}],\"hue-rotate\":[{\"hue-rotate\":[d]}],invert:[{invert:[u]}],saturate:[{saturate:[y]}],sepia:[{sepia:[x]}],\"backdrop-filter\":[{\"backdrop-filter\":[\"\",\"none\"]}],\"backdrop-blur\":[{\"backdrop-blur\":[t]}],\"backdrop-brightness\":[{\"backdrop-brightness\":[i]}],\"backdrop-contrast\":[{\"backdrop-contrast\":[l]}],\"backdrop-grayscale\":[{\"backdrop-grayscale\":[c]}],\"backdrop-hue-rotate\":[{\"backdrop-hue-rotate\":[d]}],\"backdrop-invert\":[{\"backdrop-invert\":[u]}],\"backdrop-opacity\":[{\"backdrop-opacity\":[b]}],\"backdrop-saturate\":[{\"backdrop-saturate\":[y]}],\"backdrop-sepia\":[{\"backdrop-sepia\":[x]}],\"border-collapse\":[{border:[\"collapse\",\"separate\"]}],\"border-spacing\":[{\"border-spacing\":[r]}],\"border-spacing-x\":[{\"border-spacing-x\":[r]}],\"border-spacing-y\":[{\"border-spacing-y\":[r]}],\"table-layout\":[{table:[\"auto\",\"fixed\"]}],caption:[{caption:[\"top\",\"bottom\"]}],transition:[{transition:[\"none\",\"all\",\"\",\"colors\",\"opacity\",\"shadow\",\"transform\",Hi]}],duration:[{duration:We()}],ease:[{ease:[\"linear\",\"in\",\"out\",\"in-out\",Hi]}],delay:[{delay:We()}],animate:[{animate:[\"none\",\"spin\",\"ping\",\"pulse\",\"bounce\",Hi]}],transform:[{transform:[\"\",\"gpu\",\"none\"]}],scale:[{scale:[S]}],\"scale-x\":[{\"scale-x\":[S]}],\"scale-y\":[{\"scale-y\":[S]}],rotate:[{rotate:[Dy,Hi]}],\"translate-x\":[{\"translate-x\":[I]}],\"translate-y\":[{\"translate-y\":[I]}],\"skew-x\":[{\"skew-x\":[k]}],\"skew-y\":[{\"skew-y\":[k]}],\"transform-origin\":[{origin:[\"center\",\"top\",\"top-right\",\"right\",\"bottom-right\",\"bottom\",\"bottom-left\",\"left\",\"top-left\",Hi]}],accent:[{accent:[\"auto\",n]}],appearance:[{appearance:[\"none\",\"auto\"]}],cursor:[{cursor:[\"auto\",\"default\",\"pointer\",\"wait\",\"text\",\"move\",\"help\",\"not-allowed\",\"none\",\"context-menu\",\"progress\",\"cell\",\"crosshair\",\"vertical-text\",\"alias\",\"copy\",\"no-drop\",\"grab\",\"grabbing\",\"all-scroll\",\"col-resize\",\"row-resize\",\"n-resize\",\"e-resize\",\"s-resize\",\"w-resize\",\"ne-resize\",\"nw-resize\",\"se-resize\",\"sw-resize\",\"ew-resize\",\"ns-resize\",\"nesw-resize\",\"nwse-resize\",\"zoom-in\",\"zoom-out\",Hi]}],\"caret-color\":[{caret:[n]}],\"pointer-events\":[{\"pointer-events\":[\"none\",\"auto\"]}],resize:[{resize:[\"none\",\"y\",\"x\",\"\"]}],\"scroll-behavior\":[{scroll:[\"auto\",\"smooth\"]}],\"scroll-m\":[{\"scroll-m\":M()}],\"scroll-mx\":[{\"scroll-mx\":M()}],\"scroll-my\":[{\"scroll-my\":M()}],\"scroll-ms\":[{\"scroll-ms\":M()}],\"scroll-me\":[{\"scroll-me\":M()}],\"scroll-mt\":[{\"scroll-mt\":M()}],\"scroll-mr\":[{\"scroll-mr\":M()}],\"scroll-mb\":[{\"scroll-mb\":M()}],\"scroll-ml\":[{\"scroll-ml\":M()}],\"scroll-p\":[{\"scroll-p\":M()}],\"scroll-px\":[{\"scroll-px\":M()}],\"scroll-py\":[{\"scroll-py\":M()}],\"scroll-ps\":[{\"scroll-ps\":M()}],\"scroll-pe\":[{\"scroll-pe\":M()}],\"scroll-pt\":[{\"scroll-pt\":M()}],\"scroll-pr\":[{\"scroll-pr\":M()}],\"scroll-pb\":[{\"scroll-pb\":M()}],\"scroll-pl\":[{\"scroll-pl\":M()}],\"snap-align\":[{snap:[\"start\",\"end\",\"center\",\"align-none\"]}],\"snap-stop\":[{snap:[\"normal\",\"always\"]}],\"snap-type\":[{snap:[\"none\",\"x\",\"y\",\"both\"]}],\"snap-strictness\":[{snap:[\"mandatory\",\"proximity\"]}],touch:[{touch:[\"auto\",\"none\",\"manipulation\"]}],\"touch-x\":[{\"touch-pan\":[\"x\",\"left\",\"right\"]}],\"touch-y\":[{\"touch-pan\":[\"y\",\"up\",\"down\"]}],\"touch-pz\":[\"touch-pinch-zoom\"],select:[{select:[\"none\",\"text\",\"all\",\"auto\"]}],\"will-change\":[{\"will-change\":[\"auto\",\"scroll\",\"contents\",\"transform\",Hi]}],fill:[{fill:[n,\"none\"]}],\"stroke-w\":[{stroke:[cf,rp,_F]}],stroke:[{stroke:[n,\"none\"]}],sr:[\"sr-only\",\"not-sr-only\"],\"forced-color-adjust\":[{\"forced-color-adjust\":[\"auto\",\"none\"]}]},conflictingClassGroups:{overflow:[\"overflow-x\",\"overflow-y\"],overscroll:[\"overscroll-x\",\"overscroll-y\"],inset:[\"inset-x\",\"inset-y\",\"start\",\"end\",\"top\",\"right\",\"bottom\",\"left\"],\"inset-x\":[\"right\",\"left\"],\"inset-y\":[\"top\",\"bottom\"],flex:[\"basis\",\"grow\",\"shrink\"],gap:[\"gap-x\",\"gap-y\"],p:[\"px\",\"py\",\"ps\",\"pe\",\"pt\",\"pr\",\"pb\",\"pl\"],px:[\"pr\",\"pl\"],py:[\"pt\",\"pb\"],m:[\"mx\",\"my\",\"ms\",\"me\",\"mt\",\"mr\",\"mb\",\"ml\"],mx:[\"mr\",\"ml\"],my:[\"mt\",\"mb\"],size:[\"w\",\"h\"],\"font-size\":[\"leading\"],\"fvn-normal\":[\"fvn-ordinal\",\"fvn-slashed-zero\",\"fvn-figure\",\"fvn-spacing\",\"fvn-fraction\"],\"fvn-ordinal\":[\"fvn-normal\"],\"fvn-slashed-zero\":[\"fvn-normal\"],\"fvn-figure\":[\"fvn-normal\"],\"fvn-spacing\":[\"fvn-normal\"],\"fvn-fraction\":[\"fvn-normal\"],\"line-clamp\":[\"display\",\"overflow\"],rounded:[\"rounded-s\",\"rounded-e\",\"rounded-t\",\"rounded-r\",\"rounded-b\",\"rounded-l\",\"rounded-ss\",\"rounded-se\",\"rounded-ee\",\"rounded-es\",\"rounded-tl\",\"rounded-tr\",\"rounded-br\",\"rounded-bl\"],\"rounded-s\":[\"rounded-ss\",\"rounded-es\"],\"rounded-e\":[\"rounded-se\",\"rounded-ee\"],\"rounded-t\":[\"rounded-tl\",\"rounded-tr\"],\"rounded-r\":[\"rounded-tr\",\"rounded-br\"],\"rounded-b\":[\"rounded-br\",\"rounded-bl\"],\"rounded-l\":[\"rounded-tl\",\"rounded-bl\"],\"border-spacing\":[\"border-spacing-x\",\"border-spacing-y\"],\"border-w\":[\"border-w-s\",\"border-w-e\",\"border-w-t\",\"border-w-r\",\"border-w-b\",\"border-w-l\"],\"border-w-x\":[\"border-w-r\",\"border-w-l\"],\"border-w-y\":[\"border-w-t\",\"border-w-b\"],\"border-color\":[\"border-color-s\",\"border-color-e\",\"border-color-t\",\"border-color-r\",\"border-color-b\",\"border-color-l\"],\"border-color-x\":[\"border-color-r\",\"border-color-l\"],\"border-color-y\":[\"border-color-t\",\"border-color-b\"],\"scroll-m\":[\"scroll-mx\",\"scroll-my\",\"scroll-ms\",\"scroll-me\",\"scroll-mt\",\"scroll-mr\",\"scroll-mb\",\"scroll-ml\"],\"scroll-mx\":[\"scroll-mr\",\"scroll-ml\"],\"scroll-my\":[\"scroll-mt\",\"scroll-mb\"],\"scroll-p\":[\"scroll-px\",\"scroll-py\",\"scroll-ps\",\"scroll-pe\",\"scroll-pt\",\"scroll-pr\",\"scroll-pb\",\"scroll-pl\"],\"scroll-px\":[\"scroll-pr\",\"scroll-pl\"],\"scroll-py\":[\"scroll-pt\",\"scroll-pb\"],touch:[\"touch-x\",\"touch-y\",\"touch-pz\"],\"touch-x\":[\"touch\"],\"touch-y\":[\"touch\"],\"touch-pz\":[\"touch\"]},conflictingClassGroupModifiers:{\"font-size\":[\"leading\"]}}},lNe=(n,{cacheSize:e,prefix:t,separator:i,experimentalParseClassName:s,extend:o={},override:r={}})=>{pS(n,\"cacheSize\",e),pS(n,\"prefix\",t),pS(n,\"separator\",i),pS(n,\"experimentalParseClassName\",s);for(const a in r)cNe(n[a],r[a]);for(const a in o)dNe(n[a],o[a]);return n},pS=(n,e,t)=>{t!==void 0&&(n[e]=t)},cNe=(n,e)=>{if(e)for(const t in e)pS(n,t,e[t])},dNe=(n,e)=>{if(e)for(const t in e){const i=e[t];i!==void 0&&(n[t]=(n[t]||[]).concat(i))}},uNe=(n,...e)=>typeof n==\"function\"?K8(q8,n,...e):K8(()=>lNe(q8(),n),...e),ac=K8(q8);function hNe(n,e){const t={...n};for(const i of e)delete t[i];return t}function mS(n,e,t){typeof e==\"string\"&&(e=e.split(\".\").map(s=>{const o=Number(s);return isNaN(o)?s:o}));let i=n;for(const s of e){if(i==null)return t;i=i[s]}return i!==void 0?i:t}const IV={to:{type:[String,Object],default:void 0,required:!1},href:{type:[String,Object],default:void 0,required:!1},target:{type:String,default:void 0,required:!1},rel:{type:String,default:void 0,required:!1},noRel:{type:Boolean,default:void 0,required:!1},prefetch:{type:Boolean,default:void 0,required:!1},noPrefetch:{type:Boolean,default:void 0,required:!1},activeClass:{type:String,default:void 0,required:!1},exactActiveClass:{type:String,default:void 0,required:!1},prefetchedClass:{type:String,default:void 0,required:!1},replace:{type:Boolean,default:void 0,required:!1},ariaCurrentValue:{type:String,default:void 0,required:!1},external:{type:Boolean,default:void 0,required:!1}},fNe=n=>Object.keys(IV).reduce((t,i)=>(n[i]!==void 0&&(t[i]=n[i]),t),{}),gNe=uNe({extend:{classGroups:{icons:[n=>/^i-/.test(n)]}}}),pNe=wV((n,e,t,i)=>{if(i===\"default\"||i.startsWith(\"default.\")||i===\"popper\"||i.startsWith(\"popper.\")||i.endsWith(\"avatar\")&&e===\"size\"||i.endsWith(\"chip\")&&e===\"size\"||i.endsWith(\"badge\")&&e===\"size\"||e===\"color\"||e===\"variant\")return!1;if(typeof n[e]==\"string\"&&typeof t==\"string\"&&n[e]&&t)return n[e]=gNe(n[e],t),!0});function ha(n,...e){return n===\"override\"?nD({},...e):pNe({},...e)}function UZ(n){const e=/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;n=n.replace(e,function(i,s,o,r){return s+s+o+o+r+r});const t=/^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(n);return t?`${parseInt(t[1],16)} ${parseInt(t[2],16)} ${parseInt(t[3],16)}`:null}function Rre(n){const e=parseFloat(n);return isNaN(e)?n:e}const mNe=\"inherit\",_Ne=\"currentColor\",vNe=\"transparent\",bNe=\"#000\",CNe=\"#fff\",wNe={50:\"#f8fafc\",100:\"#f1f5f9\",200:\"#e2e8f0\",300:\"#cbd5e1\",400:\"#94a3b8\",500:\"#64748b\",600:\"#475569\",700:\"#334155\",800:\"#1e293b\",900:\"#0f172a\",950:\"#020617\"},yNe={50:\"rgb(var(--color-gray-50) / <alpha-value>)\",100:\"rgb(var(--color-gray-100) / <alpha-value>)\",200:\"rgb(var(--color-gray-200) / <alpha-value>)\",300:\"rgb(var(--color-gray-300) / <alpha-value>)\",400:\"rgb(var(--color-gray-400) / <alpha-value>)\",500:\"rgb(var(--color-gray-500) / <alpha-value>)\",600:\"rgb(var(--color-gray-600) / <alpha-value>)\",700:\"rgb(var(--color-gray-700) / <alpha-value>)\",800:\"rgb(var(--color-gray-800) / <alpha-value>)\",900:\"rgb(var(--color-gray-900) / <alpha-value>)\",950:\"rgb(var(--color-gray-950) / <alpha-value>)\"},SNe={50:\"#fafafa\",100:\"#f4f4f5\",200:\"#e4e4e7\",300:\"#d4d4d8\",400:\"#a1a1aa\",500:\"#71717a\",600:\"#52525b\",700:\"#3f3f46\",800:\"#27272a\",900:\"#18181b\",950:\"#09090b\"},xNe={50:\"#fafafa\",100:\"#f5f5f5\",200:\"#e5e5e5\",300:\"#d4d4d4\",400:\"#a3a3a3\",500:\"#737373\",600:\"#525252\",700:\"#404040\",800:\"#262626\",900:\"#171717\",950:\"#0a0a0a\"},LNe={50:\"#fafaf9\",100:\"#f5f5f4\",200:\"#e7e5e4\",300:\"#d6d3d1\",400:\"#a8a29e\",500:\"#78716c\",600:\"#57534e\",700:\"#44403c\",800:\"#292524\",900:\"#1c1917\",950:\"#0c0a09\"},kNe={50:\"#fef2f2\",100:\"#fee2e2\",200:\"#fecaca\",300:\"#fca5a5\",400:\"#f87171\",500:\"#ef4444\",600:\"#dc2626\",700:\"#b91c1c\",800:\"#991b1b\",900:\"#7f1d1d\",950:\"#450a0a\"},DNe={50:\"#fff7ed\",100:\"#ffedd5\",200:\"#fed7aa\",300:\"#fdba74\",400:\"#fb923c\",500:\"#f97316\",600:\"#ea580c\",700:\"#c2410c\",800:\"#9a3412\",900:\"#7c2d12\",950:\"#431407\"},INe={50:\"#fffbeb\",100:\"#fef3c7\",200:\"#fde68a\",300:\"#fcd34d\",400:\"#fbbf24\",500:\"#f59e0b\",600:\"#d97706\",700:\"#b45309\",800:\"#92400e\",900:\"#78350f\",950:\"#451a03\"},ENe={50:\"#fffbeb\",100:\"#fef3c7\",200:\"#fde68a\",300:\"#fcd34d\",400:\"#fbbf24\",500:\"#f59e0b\",600:\"#d97706\",700:\"#b45309\",800:\"#92400e\",900:\"#78350f\",950:\"#451a03\"},TNe={50:\"#f7fee7\",100:\"#ecfccb\",200:\"#d9f99d\",300:\"#bef264\",400:\"#a3e635\",500:\"#84cc16\",600:\"#65a30d\",700:\"#4d7c0f\",800:\"#3f6212\",900:\"#365314\",950:\"#1a2e05\"},NNe={50:\"#f0fdfa\",100:\"#ccfbf1\",200:\"#99f6e4\",300:\"#5eead4\",400:\"#2dd4bf\",500:\"#14b8a6\",600:\"#0d9488\",700:\"#0f766e\",800:\"#115e59\",900:\"#134e4a\",950:\"#042f2e\"},ANe={50:\"#ecfdf5\",100:\"#d1fae5\",200:\"#a7f3d0\",300:\"#6ee7b7\",400:\"#34d399\",500:\"#10b981\",600:\"#059669\",700:\"#047857\",800:\"#065f46\",900:\"#064e3b\",950:\"#022c22\"},RNe={50:\"#f0fdfa\",100:\"#ccfbf1\",200:\"#99f6e4\",300:\"#5eead4\",400:\"#2dd4bf\",500:\"#14b8a6\",600:\"#0d9488\",700:\"#0f766e\",800:\"#115e59\",900:\"#134e4a\",950:\"#042f2e\"},MNe={50:\"#ecfeff\",100:\"#cffafe\",200:\"#a5f3fc\",300:\"#67e8f9\",400:\"#22d3ee\",500:\"#06b6d4\",600:\"#0891b2\",700:\"#0e7490\",800:\"#155e75\",900:\"#164e63\",950:\"#083344\"},PNe={50:\"#f0f9ff\",100:\"#e0f2fe\",200:\"#bae6fd\",300:\"#7dd3fc\",400:\"#38bdf8\",500:\"#0ea5e9\",600:\"#0284c7\",700:\"#0369a1\",800:\"#075985\",900:\"#0c4a6e\",950:\"#082f49\"},ONe={50:\"#eff6ff\",100:\"#dbeafe\",200:\"#bfdbfe\",300:\"#93c5fd\",400:\"#60a5fa\",500:\"#3b82f6\",600:\"#2563eb\",700:\"#1d4ed8\",800:\"#1e40af\",900:\"#1e3a8a\",950:\"#172554\"},FNe={50:\"#eef2ff\",100:\"#e0e7ff\",200:\"#c7d2fe\",300:\"#a5b4fc\",400:\"#818cf8\",500:\"#6366f1\",600:\"#4f46e5\",700:\"#4338ca\",800:\"#3730a3\",900:\"#312e81\",950:\"#1e1b4b\"},BNe={50:\"#f5f3ff\",100:\"#ede9fe\",200:\"#ddd6fe\",300:\"#c4b5fd\",400:\"#a78bfa\",500:\"#8b5cf6\",600:\"#7c3aed\",700:\"#6d28d9\",800:\"#5b21b6\",900:\"#4c1d95\",950:\"#2e1065\"},WNe={50:\"#faf5ff\",100:\"#f3e8ff\",200:\"#e9d5ff\",300:\"#d8b4fe\",400:\"#c084fc\",500:\"#a855f7\",600:\"#9333ea\",700:\"#7e22ce\",800:\"#6b21a8\",900:\"#581c87\",950:\"#3b0764\"},HNe={50:\"#fdf4ff\",100:\"#fae8ff\",200:\"#f5d0fe\",300:\"#f0abfc\",400:\"#e879f9\",500:\"#d946ef\",600:\"#c026d3\",700:\"#a21caf\",800:\"#86198f\",900:\"#701a75\",950:\"#4a044e\"},VNe={50:\"#fdf2f8\",100:\"#fce7f3\",200:\"#fbcfe8\",300:\"#f9a8d4\",400:\"#f472b6\",500:\"#ec4899\",600:\"#db2777\",700:\"#be185d\",800:\"#9d174d\",900:\"#831843\",950:\"#500724\"},zNe={50:\"#fff1f2\",100:\"#ffe4e6\",200:\"#fecdd3\",300:\"#fda4af\",400:\"#fb7185\",500:\"#f43f5e\",600:\"#e11d48\",700:\"#be123c\",800:\"#9f1239\",900:\"#881337\",950:\"#4c0519\"},$Ne={50:\"rgb(var(--color-primary-50) / <alpha-value>)\",100:\"rgb(var(--color-primary-100) / <alpha-value>)\",200:\"rgb(var(--color-primary-200) / <alpha-value>)\",300:\"rgb(var(--color-primary-300) / <alpha-value>)\",400:\"rgb(var(--color-primary-400) / <alpha-value>)\",500:\"rgb(var(--color-primary-500) / <alpha-value>)\",600:\"rgb(var(--color-primary-600) / <alpha-value>)\",700:\"rgb(var(--color-primary-700) / <alpha-value>)\",800:\"rgb(var(--color-primary-800) / <alpha-value>)\",900:\"rgb(var(--color-primary-900) / <alpha-value>)\",950:\"rgb(var(--color-primary-950) / <alpha-value>)\",DEFAULT:\"rgb(var(--color-primary-DEFAULT) / <alpha-value>)\"},UNe={DEFAULT:\"#ffffff\",dark:\"#333333\"},jNe={DEFAULT:\"#333333\",dark:\"#f6f7ee\"},vE={inherit:mNe,current:_Ne,transparent:vNe,black:bNe,white:CNe,slate:wNe,gray:yNe,zinc:SNe,neutral:xNe,stone:LNe,red:kNe,orange:DNe,amber:INe,yellow:ENe,lime:TNe,green:NNe,emerald:ANe,teal:RNe,cyan:MNe,sky:PNe,blue:ONe,indigo:FNe,violet:BNe,purple:WNe,fuchsia:HNe,pink:VNe,rose:zNe,primary:$Ne,backdrop:UNe,body:jNe,\"cool-gray\":void 0},KNe=ua(()=>{const n=JR(),e=In(),t=ue(()=>{const s=vE[n.ui.primary],o=vE[n.ui.gray];return s||console.warn(`[@nuxt/ui] Primary color '${n.ui.primary}' not found in Tailwind config`),o||console.warn(`[@nuxt/ui] Gray color '${n.ui.gray}' not found in Tailwind config`),`:root {\n${Object.entries(s||vE.green).map(([r,a])=>`--color-primary-${r}: ${UZ(a)};`).join(`\n`)}\n--color-primary-DEFAULT: var(--color-primary-500);\n\n${Object.entries(o||vE.cool).map(([r,a])=>`--color-gray-${r}: ${UZ(a)};`).join(`\n`)}\n}\n\n.dark {\n  --color-primary-DEFAULT: var(--color-primary-400);\n}\n`}),i={style:[{innerHTML:()=>t.value,tagPriority:-2,id:\"nuxt-ui-colors\"}]};if(e.isHydrating&&!e.payload.serverRendered){const s=document.createElement(\"style\");s.innerHTML=t.value,s.setAttribute(\"data-nuxt-ui-colors\",\"\"),document.head.appendChild(s),i.script=[{innerHTML:\"document.head.removeChild(document.querySelector('[data-nuxt-ui-colors]'))\"}]}hIe(i)}),qNe=\"__NUXT_COLOR_MODE__\",GNe=\"nuxt-color-mode\",df=window[qNe]||{},ZNe=ua(n=>{const e=Ew(\"color-mode\",()=>Ba({preference:df.preference,value:df.value,unknown:!1,forced:!1})).value;Fr().afterEach(s=>{const o=s.meta.colorMode;o&&o!==\"system\"?(e.value=o,e.forced=!0):(o===\"system\"&&console.warn(\"You cannot force the colorMode to system at the page level.\"),e.forced=!1,e.value=e.preference===\"system\"?df.getColorScheme():e.preference)});let t;function i(){t||!window.matchMedia||(t=window.matchMedia(\"(prefers-color-scheme: dark)\"),t.addEventListener(\"change\",()=>{!e.forced&&e.preference===\"system\"&&(e.value=df.getColorScheme())}))}Dn(()=>e.preference,s=>{var o;e.forced||(s===\"system\"?(e.value=df.getColorScheme(),i()):e.value=s,(o=window.localStorage)==null||o.setItem(GNe,s))},{immediate:!0}),Dn(()=>e.value,(s,o)=>{df.removeColorScheme(o),df.addColorScheme(s)}),e.preference===\"system\"&&i(),n.hook(\"app:mounted\",()=>{e.unknown&&(e.preference=df.preference,e.value=df.value,e.unknown=!1)}),n.provide(\"colorMode\",e)});function YNe(n,e){if(n==null)return;let t=n;for(let i=0;i<e.length;i++){if(t==null||t[e[i]]==null)return;t=t[e[i]]}return t}function EV(n,e,t){if(t.length===0)return e;const i=t[0];return t.length>1&&(e=EV(typeof n!=\"object\"||n===null||!Object.prototype.hasOwnProperty.call(n,i)?Number.isInteger(Number(t[1]))?[]:{}:n[i],e,Array.prototype.slice.call(t,1))),Number.isInteger(Number(i))&&Array.isArray(n)?n.slice()[i]:Object.assign({},n,{[i]:e})}function Mre(n,e){if(n==null||e.length===0)return n;if(e.length===1){if(n==null)return n;if(Number.isInteger(e[0])&&Array.isArray(n))return Array.prototype.slice.call(n,0).splice(e[0],1);const t={};for(const i in n)t[i]=n[i];return delete t[e[0]],t}if(n[e[0]]==null){if(Number.isInteger(e[0])&&Array.isArray(n))return Array.prototype.concat.call([],n);const t={};for(const i in n)t[i]=n[i];return t}return EV(n,Mre(n[e[0]],Array.prototype.slice.call(e,1)),[e[0]])}function Pre(n,e){return e.map(t=>t.split(\".\")).map(t=>[t,YNe(n,t)]).filter(t=>t[1]!==void 0).reduce((t,i)=>EV(t,i[1],i[0]),{})}function Ore(n,e){return e.map(t=>t.split(\".\")).reduce((t,i)=>Mre(t,i),n)}function jZ(n,{storage:e,serializer:t,key:i,debug:s,pick:o,omit:r,beforeHydrate:a,afterHydrate:l},c,d=!0){try{d&&(a==null||a(c));const u=e.getItem(i);if(u){const h=t.deserialize(u),f=o?Pre(h,o):h,g=r?Ore(f,r):f;n.$patch(g)}d&&(l==null||l(c))}catch(u){s&&console.error(\"[pinia-plugin-persistedstate]\",u)}}function KZ(n,{storage:e,serializer:t,key:i,debug:s,pick:o,omit:r}){try{const a=o?Pre(n,o):n,l=r?Ore(a,r):a,c=t.serialize(l);e.setItem(i,c)}catch(a){s&&console.error(\"[pinia-plugin-persistedstate]\",a)}}function XNe(n,e,t){const{pinia:i,store:s,options:{persist:o=t}}=n;if(!o)return;if(!(s.$id in i.state.value)){const l=i._s.get(s.$id.replace(\"__hot:\",\"\"));l&&Promise.resolve().then(()=>l.$persist());return}const a=(Array.isArray(o)?o:o===!0?[{}]:[o]).map(e);s.$hydrate=({runHooks:l=!0}={})=>{a.forEach(c=>{jZ(s,c,n,l)})},s.$persist=()=>{a.forEach(l=>{KZ(s.$state,l)})},a.forEach(l=>{jZ(s,l,n),s.$subscribe((c,d)=>KZ(d,l),{detached:!0})})}function QNe(n={}){return function(e){XNe(e,t=>({key:(n.key?n.key:i=>i)(t.key??e.store.$id),debug:t.debug??n.debug??!1,serializer:t.serializer??n.serializer??{serialize:i=>JSON.stringify(i),deserialize:i=>xC(i)},storage:t.storage??n.storage??window.localStorage,beforeHydrate:t.beforeHydrate,afterHydrate:t.afterHydrate,pick:t.pick,omit:t.omit}),n.auto??!1)}}function qZ(n){return{getItem:e=>OZ(e,{...n,encode:encodeURIComponent,decode:decodeURIComponent}).value,setItem:(e,t)=>{OZ(e,{...n,encode:encodeURIComponent,decode:decodeURIComponent}).value=t}}}function JNe(){return{getItem:n=>In().ssrContext?null:localStorage.getItem(n),setItem:(n,e)=>{In().ssrContext||localStorage.setItem(n,e)}}}function e2e(){return{getItem:n=>In().ssrContext?null:sessionStorage.getItem(n),setItem:(n,e)=>{In().ssrContext||sessionStorage.setItem(n,e)}}}const eL={localStorage:JNe(),sessionStorage:e2e(),cookies:qZ(),cookiesWithOptions:qZ},t2e=ua(n=>{const{cookieOptions:e,debug:t,storage:i}=Tm().public.persistedState;n.$pinia.use(QNe({storage:i===\"cookies\"?eL.cookiesWithOptions(e):eL[i],debug:t}))});function Bl(n,e=0){return n[n.length-(1+e)]}function i2e(n){if(n.length===0)throw new Error(\"Invalid tail call\");return[n.slice(0,n.length-1),n[n.length-1]]}function zn(n,e,t=(i,s)=>i===s){if(n===e)return!0;if(!n||!e||n.length!==e.length)return!1;for(let i=0,s=n.length;i<s;i++)if(!t(n[i],e[i]))return!1;return!0}function n2e(n,e){const t=n.length-1;e<t&&(n[e]=n[t]),n.pop()}function tL(n,e,t){return s2e(n.length,i=>t(n[i],e))}function s2e(n,e){let t=0,i=n-1;for(;t<=i;){const s=(t+i)/2|0,o=e(s);if(o<0)t=s+1;else if(o>0)i=s-1;else return s}return-(t+1)}function G8(n,e,t){if(n=n|0,n>=e.length)throw new TypeError(\"invalid index\");const i=e[Math.floor(e.length*Math.random())],s=[],o=[],r=[];for(const a of e){const l=t(a,i);l<0?s.push(a):l>0?o.push(a):r.push(a)}return n<s.length?G8(n,s,t):n<s.length+r.length?r[0]:G8(n-(s.length+r.length),o,t)}function GZ(n,e){const t=[];let i;for(const s of n.slice(0).sort(e))!i||e(i[0],s)!==0?(i=[s],t.push(i)):i.push(s);return t}function*TV(n,e){let t,i;for(const s of n)i!==void 0&&e(i,s)?t.push(s):(t&&(yield t),t=[s]),i=s;t&&(yield t)}function Fre(n,e){for(let t=0;t<=n.length;t++)e(t===0?void 0:n[t-1],t===n.length?void 0:n[t])}function o2e(n,e){for(let t=0;t<n.length;t++)e(t===0?void 0:n[t-1],n[t],t+1===n.length?void 0:n[t+1])}function tu(n){return n.filter(e=>!!e)}function ZZ(n){let e=0;for(let t=0;t<n.length;t++)n[t]&&(n[e]=n[t],e+=1);n.length=e}function Bre(n){return!Array.isArray(n)||n.length===0}function Zo(n){return Array.isArray(n)&&n.length>0}function xg(n,e=t=>t){const t=new Set;return n.filter(i=>{const s=e(i);return t.has(s)?!1:(t.add(s),!0)})}function NV(n,e){return n.length>0?n[0]:e}function Xr(n,e){let t=typeof e==\"number\"?n:0;typeof e==\"number\"?t=n:(t=0,e=n);const i=[];if(t<=e)for(let s=t;s<e;s++)i.push(s);else for(let s=t;s>e;s--)i.push(s);return i}function eM(n,e,t){const i=n.slice(0,e),s=n.slice(e);return i.concat(t,s)}function vF(n,e){const t=n.indexOf(e);t>-1&&(n.splice(t,1),n.unshift(e))}function bE(n,e){const t=n.indexOf(e);t>-1&&(n.splice(t,1),n.push(e))}function Z8(n,e){for(const t of e)n.push(t)}function AV(n){return Array.isArray(n)?n:[n]}function r2e(n,e,t){const i=Wre(n,e),s=n.length,o=t.length;n.length=s+o;for(let r=s-1;r>=i;r--)n[r+o]=n[r];for(let r=0;r<o;r++)n[r+i]=t[r]}function YZ(n,e,t,i){const s=Wre(n,e);let o=n.splice(s,t);return o===void 0&&(o=[]),r2e(n,s,i),o}function Wre(n,e){return e<0?Math.max(e+n.length,0):Math.min(e,n.length)}var iL;(function(n){function e(o){return o<0}n.isLessThan=e;function t(o){return o<=0}n.isLessThanOrEqual=t;function i(o){return o>0}n.isGreaterThan=i;function s(o){return o===0}n.isNeitherLessOrGreaterThan=s,n.greaterThan=1,n.lessThan=-1,n.neitherLessOrGreaterThan=0})(iL||(iL={}));function oa(n,e){return(t,i)=>e(n(t),n(i))}function a2e(...n){return(e,t)=>{for(const i of n){const s=i(e,t);if(!iL.isNeitherLessOrGreaterThan(s))return s}return iL.neitherLessOrGreaterThan}}const Qc=(n,e)=>n-e,l2e=(n,e)=>Qc(n?1:0,e?1:0);function Hre(n){return(e,t)=>-n(e,t)}class Lg{constructor(e){this.items=e,this.firstIdx=0,this.lastIdx=this.items.length-1}get length(){return this.lastIdx-this.firstIdx+1}takeWhile(e){let t=this.firstIdx;for(;t<this.items.length&&e(this.items[t]);)t++;const i=t===this.firstIdx?null:this.items.slice(this.firstIdx,t);return this.firstIdx=t,i}takeFromEndWhile(e){let t=this.lastIdx;for(;t>=0&&e(this.items[t]);)t--;const i=t===this.lastIdx?null:this.items.slice(t+1,this.lastIdx+1);return this.lastIdx=t,i}peek(){if(this.length!==0)return this.items[this.firstIdx]}dequeue(){const e=this.items[this.firstIdx];return this.firstIdx++,e}takeCount(e){const t=this.items.slice(this.firstIdx,this.firstIdx+e);return this.firstIdx+=e,t}}class fh{constructor(e){this.iterate=e}toArray(){const e=[];return this.iterate(t=>(e.push(t),!0)),e}filter(e){return new fh(t=>this.iterate(i=>e(i)?t(i):!0))}map(e){return new fh(t=>this.iterate(i=>t(e(i))))}findLast(e){let t;return this.iterate(i=>(e(i)&&(t=i),!0)),t}findLastMaxBy(e){let t,i=!0;return this.iterate(s=>((i||iL.isGreaterThan(e(s,t)))&&(i=!1,t=s),!0)),t}}fh.empty=new fh(n=>{});class S2{constructor(e){this._indexMap=e}static createSortPermutation(e,t){const i=Array.from(e.keys()).sort((s,o)=>t(e[s],e[o]));return new S2(i)}apply(e){return e.map((t,i)=>e[this._indexMap[i]])}inverse(){const e=this._indexMap.slice();for(let t=0;t<this._indexMap.length;t++)e[this._indexMap[t]]=t;return new S2(e)}}function Pr(n){return typeof n==\"string\"}function Er(n){return typeof n==\"object\"&&n!==null&&!Array.isArray(n)&&!(n instanceof RegExp)&&!(n instanceof Date)}function c2e(n){const e=Object.getPrototypeOf(Uint8Array);return typeof n==\"object\"&&n instanceof e}function Nm(n){return typeof n==\"number\"&&!isNaN(n)}function XZ(n){return!!n&&typeof n[Symbol.iterator]==\"function\"}function Vre(n){return n===!0||n===!1}function na(n){return typeof n>\"u\"}function gh(n){return!ll(n)}function ll(n){return na(n)||n===null}function mi(n,e){if(!n)throw new Error(e?`Unexpected type, expected '${e}'`:\"Unexpected type\")}function Vp(n){if(ll(n))throw new Error(\"Assertion Failed: argument is undefined or null\");return n}function nL(n){return typeof n==\"function\"}function d2e(n,e){const t=Math.min(n.length,e.length);for(let i=0;i<t;i++)u2e(n[i],e[i])}function u2e(n,e){if(Pr(e)){if(typeof n!==e)throw new Error(`argument does not match constraint: typeof ${e}`)}else if(nL(e)){try{if(n instanceof e)return}catch{}if(!ll(n)&&n.constructor===e||e.length===1&&e.call(void 0,n)===!0)return;throw new Error(\"argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true\")}}function Tf(n){if(!n||typeof n!=\"object\"||n instanceof RegExp)return n;const e=Array.isArray(n)?[]:{};return Object.entries(n).forEach(([t,i])=>{e[t]=i&&typeof i==\"object\"?Tf(i):i}),e}function h2e(n){if(!n||typeof n!=\"object\")return n;const e=[n];for(;e.length>0;){const t=e.shift();Object.freeze(t);for(const i in t)if(zre.call(t,i)){const s=t[i];typeof s==\"object\"&&!Object.isFrozen(s)&&!c2e(s)&&e.push(s)}}return n}const zre=Object.prototype.hasOwnProperty;function $re(n,e){return Y8(n,e,new Set)}function Y8(n,e,t){if(ll(n))return n;const i=e(n);if(typeof i<\"u\")return i;if(Array.isArray(n)){const s=[];for(const o of n)s.push(Y8(o,e,t));return s}if(Er(n)){if(t.has(n))throw new Error(\"Cannot clone recursive data-structure\");t.add(n);const s={};for(const o in n)zre.call(n,o)&&(s[o]=Y8(n[o],e,t));return t.delete(n),s}return n}function tM(n,e,t=!0){return Er(n)?(Er(e)&&Object.keys(e).forEach(i=>{i in n?t&&(Er(n[i])&&Er(e[i])?tM(n[i],e[i],t):n[i]=e[i]):n[i]=e[i]}),n):e}function vl(n,e){if(n===e)return!0;if(n==null||e===null||e===void 0||typeof n!=typeof e||typeof n!=\"object\"||Array.isArray(n)!==Array.isArray(e))return!1;let t,i;if(Array.isArray(n)){if(n.length!==e.length)return!1;for(t=0;t<n.length;t++)if(!vl(n[t],e[t]))return!1}else{const s=[];for(i in n)s.push(i);s.sort();const o=[];for(i in e)o.push(i);if(o.sort(),!vl(s,o))return!1;for(t=0;t<s.length;t++)if(!vl(n[s[t]],e[s[t]]))return!1}return!0}function f2e(n){let e=[];for(;Object.prototype!==n;)e=e.concat(Object.getOwnPropertyNames(n)),n=Object.getPrototypeOf(n);return e}function RV(n){const e=[];for(const t of f2e(n))typeof n[t]==\"function\"&&e.push(t);return e}function g2e(n,e){const t=s=>function(){const o=Array.prototype.slice.call(arguments,0);return e(s,o)},i={};for(const s of n)i[s]=t(s);return i}let p2e=typeof document<\"u\"&&document.location&&document.location.hash.indexOf(\"pseudo=true\")>=0;function Ure(n,e){let t;return e.length===0?t=n:t=n.replace(/\\{(\\d+)\\}/g,(i,s)=>{const o=s[0],r=e[o];let a=i;return typeof r==\"string\"?a=r:(typeof r==\"number\"||typeof r==\"boolean\"||r===void 0||r===null)&&(a=String(r)),a}),p2e&&(t=\"［\"+t.replace(/[aouei]/g,\"$&$&\")+\"］\"),t}function v(n,e,...t){return Ure(e,t)}function Nt(n,e,...t){const i=Ure(e,t);return{value:i,original:i}}var bF,CF;const u1=\"en\";let x2=!1,L2=!1,rN=!1,jre=!1,MV=!0,PV=!1,Kre=!1,CE,aN=u1,QZ=u1,m2e,Cd;const gg=globalThis;let yr;typeof gg.vscode<\"u\"&&typeof gg.vscode.process<\"u\"?yr=gg.vscode.process:typeof process<\"u\"&&typeof((bF=process==null?void 0:process.versions)===null||bF===void 0?void 0:bF.node)==\"string\"&&(yr=process);const _2e=typeof((CF=yr==null?void 0:yr.versions)===null||CF===void 0?void 0:CF.electron)==\"string\",v2e=_2e&&(yr==null?void 0:yr.type)===\"renderer\";if(typeof yr==\"object\"){x2=yr.platform===\"win32\",L2=yr.platform===\"darwin\",rN=yr.platform===\"linux\",rN&&yr.env.SNAP&&yr.env.SNAP_REVISION,yr.env.CI||yr.env.BUILD_ARTIFACTSTAGINGDIRECTORY,CE=u1,aN=u1;const n=yr.env.VSCODE_NLS_CONFIG;if(n)try{const e=JSON.parse(n),t=e.availableLanguages[\"*\"];CE=e.locale,QZ=e.osLocale,aN=t||u1,m2e=e._translationsConfigFile}catch{}jre=!0}else typeof navigator==\"object\"&&!v2e?(Cd=navigator.userAgent,x2=Cd.indexOf(\"Windows\")>=0,L2=Cd.indexOf(\"Macintosh\")>=0,PV=(Cd.indexOf(\"Macintosh\")>=0||Cd.indexOf(\"iPad\")>=0||Cd.indexOf(\"iPhone\")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,rN=Cd.indexOf(\"Linux\")>=0,Kre=(Cd==null?void 0:Cd.indexOf(\"Mobi\"))>=0,MV=!0,v({},\"_\"),CE=u1,aN=CE,QZ=navigator.language):console.error(\"Unable to resolve platform.\");const Mo=x2,Xt=L2,Br=rN,Lh=jre,u_=MV,b2e=MV&&typeof gg.importScripts==\"function\",C2e=b2e?gg.origin:void 0,iu=PV,qre=Kre,kh=Cd,w2e=aN,y2e=typeof gg.postMessage==\"function\"&&!gg.importScripts,Gre=(()=>{if(y2e){const n=[];gg.addEventListener(\"message\",t=>{if(t.data&&t.data.vscodeScheduleAsyncWork)for(let i=0,s=n.length;i<s;i++){const o=n[i];if(o.id===t.data.vscodeScheduleAsyncWork){n.splice(i,1),o.callback();return}}});let e=0;return t=>{const i=++e;n.push({id:i,callback:t}),gg.postMessage({vscodeScheduleAsyncWork:i},\"*\")}}return n=>setTimeout(n)})(),Da=L2||PV?2:x2?1:3;let JZ=!0,eY=!1;function Zre(){if(!eY){eY=!0;const n=new Uint8Array(2);n[0]=1,n[1]=2,JZ=new Uint16Array(n.buffer)[0]===513}return JZ}const Yre=!!(kh&&kh.indexOf(\"Chrome\")>=0),S2e=!!(kh&&kh.indexOf(\"Firefox\")>=0),x2e=!!(!Yre&&kh&&kh.indexOf(\"Safari\")>=0),L2e=!!(kh&&kh.indexOf(\"Edg/\")>=0),k2e=!!(kh&&kh.indexOf(\"Android\")>=0),zo={tabSize:4,indentSize:4,insertSpaces:!0,detectIndentation:!0,trimAutoWhitespace:!0,largeFileOptimizations:!0,bracketPairColorizationOptions:{enabled:!0,independentColorPoolPerBracketType:!1}};var oi;(function(n){function e(y){return y&&typeof y==\"object\"&&typeof y[Symbol.iterator]==\"function\"}n.is=e;const t=Object.freeze([]);function i(){return t}n.empty=i;function*s(y){yield y}n.single=s;function o(y){return e(y)?y:s(y)}n.wrap=o;function r(y){return y||t}n.from=r;function*a(y){for(let S=y.length-1;S>=0;S--)yield y[S]}n.reverse=a;function l(y){return!y||y[Symbol.iterator]().next().done===!0}n.isEmpty=l;function c(y){return y[Symbol.iterator]().next().value}n.first=c;function d(y,S){for(const x of y)if(S(x))return!0;return!1}n.some=d;function u(y,S){for(const x of y)if(S(x))return x}n.find=u;function*h(y,S){for(const x of y)S(x)&&(yield x)}n.filter=h;function*f(y,S){let x=0;for(const k of y)yield S(k,x++)}n.map=f;function*g(...y){for(const S of y)yield*S}n.concat=g;function p(y,S,x){let k=x;for(const D of y)k=S(k,D);return k}n.reduce=p;function*_(y,S,x=y.length){for(S<0&&(S+=y.length),x<0?x+=y.length:x>y.length&&(x=y.length);S<x;S++)yield y[S]}n.slice=_;function b(y,S=Number.POSITIVE_INFINITY){const x=[];if(S===0)return[x,y];const k=y[Symbol.iterator]();for(let D=0;D<S;D++){const I=k.next();if(I.done)return[x,n.empty()];x.push(I.value)}return[x,{[Symbol.iterator](){return k}}]}n.consume=b;async function w(y){const S=[];for await(const x of y)S.push(x);return Promise.resolve(S)}n.asyncToArray=w})(oi||(oi={}));let As=class X8{constructor(e){this.element=e,this.next=X8.Undefined,this.prev=X8.Undefined}};As.Undefined=new As(void 0);class Tr{constructor(){this._first=As.Undefined,this._last=As.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===As.Undefined}clear(){let e=this._first;for(;e!==As.Undefined;){const t=e.next;e.prev=As.Undefined,e.next=As.Undefined,e=t}this._first=As.Undefined,this._last=As.Undefined,this._size=0}unshift(e){return this._insert(e,!1)}push(e){return this._insert(e,!0)}_insert(e,t){const i=new As(e);if(this._first===As.Undefined)this._first=i,this._last=i;else if(t){const o=this._last;this._last=i,i.prev=o,o.next=i}else{const o=this._first;this._first=i,i.next=o,o.prev=i}this._size+=1;let s=!1;return()=>{s||(s=!0,this._remove(i))}}shift(){if(this._first!==As.Undefined){const e=this._first.element;return this._remove(this._first),e}}pop(){if(this._last!==As.Undefined){const e=this._last.element;return this._remove(this._last),e}}_remove(e){if(e.prev!==As.Undefined&&e.next!==As.Undefined){const t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===As.Undefined&&e.next===As.Undefined?(this._first=As.Undefined,this._last=As.Undefined):e.next===As.Undefined?(this._last=this._last.prev,this._last.next=As.Undefined):e.prev===As.Undefined&&(this._first=this._first.next,this._first.prev=As.Undefined);this._size-=1}*[Symbol.iterator](){let e=this._first;for(;e!==As.Undefined;)yield e.element,e=e.next}}const Xre=\"`~!@#$%^&*()-=+[{]}\\\\|;:'\\\",.<>/?\";function D2e(n=\"\"){let e=\"(-?\\\\d*\\\\.\\\\d\\\\w*)|([^\";for(const t of Xre)n.indexOf(t)>=0||(e+=\"\\\\\"+t);return e+=\"\\\\s]+)\",new RegExp(e,\"g\")}const OV=D2e();function FV(n){let e=OV;if(n&&n instanceof RegExp)if(n.global)e=n;else{let t=\"g\";n.ignoreCase&&(t+=\"i\"),n.multiline&&(t+=\"m\"),n.unicode&&(t+=\"u\"),e=new RegExp(n.source,t)}return e.lastIndex=0,e}const Qre=new Tr;Qre.unshift({maxLen:1e3,windowSize:15,timeBudget:150});function sL(n,e,t,i,s){if(e=FV(e),s||(s=oi.first(Qre)),t.length>s.maxLen){let c=n-s.maxLen/2;return c<0?c=0:i+=c,t=t.substring(c,n+s.maxLen/2),sL(n,e,t,i,s)}const o=Date.now(),r=n-1-i;let a=-1,l=null;for(let c=1;!(Date.now()-o>=s.timeBudget);c++){const d=r-s.windowSize*c;e.lastIndex=Math.max(0,d);const u=I2e(e,t,r,a);if(!u&&l||(l=u,d<=0))break;a=d}if(l){const c={word:l[0],startColumn:i+1+l.index,endColumn:i+1+l.index+l[0].length};return e.lastIndex=0,c}return null}function I2e(n,e,t,i){let s;for(;s=n.exec(e);){const o=s.index||0;if(o<=t&&n.lastIndex>=t)return s;if(i>0&&o>i)return null}return null}const Ou=8;class Jre{constructor(e){this._values=e}hasChanged(e){return this._values[e]}}class eae{constructor(){this.stableMinimapLayoutInput=null,this.stableFitMaxMinimapScale=0,this.stableFitRemainingWidth=0}}class Nn{constructor(e,t,i,s){this.id=e,this.name=t,this.defaultValue=i,this.schema=s}applyUpdate(e,t){return iM(e,t)}compute(e,t,i){return i}}class sx{constructor(e,t){this.newValue=e,this.didChange=t}}function iM(n,e){if(typeof n!=\"object\"||typeof e!=\"object\"||!n||!e)return new sx(e,n!==e);if(Array.isArray(n)||Array.isArray(e)){const i=Array.isArray(n)&&Array.isArray(e)&&zn(n,e);return new sx(e,!i)}let t=!1;for(const i in e)if(e.hasOwnProperty(i)){const s=iM(n[i],e[i]);s.didChange&&(n[i]=s.newValue,t=!0)}return new sx(n,t)}class oD{constructor(e){this.schema=void 0,this.id=e,this.name=\"_never_\",this.defaultValue=void 0}applyUpdate(e,t){return iM(e,t)}validate(e){return this.defaultValue}}class Nw{constructor(e,t,i,s){this.id=e,this.name=t,this.defaultValue=i,this.schema=s}applyUpdate(e,t){return iM(e,t)}validate(e){return typeof e>\"u\"?this.defaultValue:e}compute(e,t,i){return i}}function rt(n,e){return typeof n>\"u\"?e:n===\"false\"?!1:!!n}class fi extends Nw{constructor(e,t,i,s=void 0){typeof s<\"u\"&&(s.type=\"boolean\",s.default=i),super(e,t,i,s)}validate(e){return rt(e,this.defaultValue)}}function tv(n,e,t,i){if(typeof n>\"u\")return e;let s=parseInt(n,10);return isNaN(s)?e:(s=Math.max(t,s),s=Math.min(i,s),s|0)}class sn extends Nw{static clampedInt(e,t,i,s){return tv(e,t,i,s)}constructor(e,t,i,s,o,r=void 0){typeof r<\"u\"&&(r.type=\"integer\",r.default=i,r.minimum=s,r.maximum=o),super(e,t,i,r),this.minimum=s,this.maximum=o}validate(e){return sn.clampedInt(e,this.defaultValue,this.minimum,this.maximum)}}function E2e(n,e,t,i){if(typeof n>\"u\")return e;const s=gl.float(n,e);return gl.clamp(s,t,i)}class gl extends Nw{static clamp(e,t,i){return e<t?t:e>i?i:e}static float(e,t){if(typeof e==\"number\")return e;if(typeof e>\"u\")return t;const i=parseFloat(e);return isNaN(i)?t:i}constructor(e,t,i,s,o){typeof o<\"u\"&&(o.type=\"number\",o.default=i),super(e,t,i,o),this.validationFn=s}validate(e){return this.validationFn(gl.float(e,this.defaultValue))}}class xr extends Nw{static string(e,t){return typeof e!=\"string\"?t:e}constructor(e,t,i,s=void 0){typeof s<\"u\"&&(s.type=\"string\",s.default=i),super(e,t,i,s)}validate(e){return xr.string(e,this.defaultValue)}}function ns(n,e,t,i){return typeof n!=\"string\"?e:i&&n in i?i[n]:t.indexOf(n)===-1?e:n}class qn extends Nw{constructor(e,t,i,s,o=void 0){typeof o<\"u\"&&(o.type=\"string\",o.enum=s,o.default=i),super(e,t,i,o),this._allowedValues=s}validate(e){return ns(e,this.defaultValue,this._allowedValues)}}class wE extends Nn{constructor(e,t,i,s,o,r,a=void 0){typeof a<\"u\"&&(a.type=\"string\",a.enum=o,a.default=s),super(e,t,i,a),this._allowedValues=o,this._convert=r}validate(e){return typeof e!=\"string\"?this.defaultValue:this._allowedValues.indexOf(e)===-1?this.defaultValue:this._convert(e)}}function T2e(n){switch(n){case\"none\":return 0;case\"keep\":return 1;case\"brackets\":return 2;case\"advanced\":return 3;case\"full\":return 4}}class N2e extends Nn{constructor(){super(2,\"accessibilitySupport\",0,{type:\"string\",enum:[\"auto\",\"on\",\"off\"],enumDescriptions:[v(\"accessibilitySupport.auto\",\"Use platform APIs to detect when a Screen Reader is attached.\"),v(\"accessibilitySupport.on\",\"Optimize for usage with a Screen Reader.\"),v(\"accessibilitySupport.off\",\"Assume a screen reader is not attached.\")],default:\"auto\",tags:[\"accessibility\"],description:v(\"accessibilitySupport\",\"Controls if the UI should run in a mode where it is optimized for screen readers.\")})}validate(e){switch(e){case\"auto\":return 0;case\"off\":return 1;case\"on\":return 2}return this.defaultValue}compute(e,t,i){return i===0?e.accessibilitySupport:i}}class A2e extends Nn{constructor(){const e={insertSpace:!0,ignoreEmptyLines:!0};super(23,\"comments\",e,{\"editor.comments.insertSpace\":{type:\"boolean\",default:e.insertSpace,description:v(\"comments.insertSpace\",\"Controls whether a space character is inserted when commenting.\")},\"editor.comments.ignoreEmptyLines\":{type:\"boolean\",default:e.ignoreEmptyLines,description:v(\"comments.ignoreEmptyLines\",\"Controls if empty lines should be ignored with toggle, add or remove actions for line comments.\")}})}validate(e){if(!e||typeof e!=\"object\")return this.defaultValue;const t=e;return{insertSpace:rt(t.insertSpace,this.defaultValue.insertSpace),ignoreEmptyLines:rt(t.ignoreEmptyLines,this.defaultValue.ignoreEmptyLines)}}}function R2e(n){switch(n){case\"blink\":return 1;case\"smooth\":return 2;case\"phase\":return 3;case\"expand\":return 4;case\"solid\":return 5}}var vo;(function(n){n[n.Line=1]=\"Line\",n[n.Block=2]=\"Block\",n[n.Underline=3]=\"Underline\",n[n.LineThin=4]=\"LineThin\",n[n.BlockOutline=5]=\"BlockOutline\",n[n.UnderlineThin=6]=\"UnderlineThin\"})(vo||(vo={}));function M2e(n){switch(n){case\"line\":return vo.Line;case\"block\":return vo.Block;case\"underline\":return vo.Underline;case\"line-thin\":return vo.LineThin;case\"block-outline\":return vo.BlockOutline;case\"underline-thin\":return vo.UnderlineThin}}class P2e extends oD{constructor(){super(142)}compute(e,t,i){const s=[\"monaco-editor\"];return t.get(39)&&s.push(t.get(39)),e.extraEditorClassName&&s.push(e.extraEditorClassName),t.get(74)===\"default\"?s.push(\"mouse-default\"):t.get(74)===\"copy\"&&s.push(\"mouse-copy\"),t.get(111)&&s.push(\"showUnused\"),t.get(140)&&s.push(\"showDeprecated\"),s.join(\" \")}}class O2e extends fi{constructor(){super(37,\"emptySelectionClipboard\",!0,{description:v(\"emptySelectionClipboard\",\"Controls whether copying without a selection copies the current line.\")})}compute(e,t,i){return i&&e.emptySelectionClipboard}}class F2e extends Nn{constructor(){const e={cursorMoveOnType:!0,seedSearchStringFromSelection:\"always\",autoFindInSelection:\"never\",globalFindClipboard:!1,addExtraSpaceOnTop:!0,loop:!0};super(41,\"find\",e,{\"editor.find.cursorMoveOnType\":{type:\"boolean\",default:e.cursorMoveOnType,description:v(\"find.cursorMoveOnType\",\"Controls whether the cursor should jump to find matches while typing.\")},\"editor.find.seedSearchStringFromSelection\":{type:\"string\",enum:[\"never\",\"always\",\"selection\"],default:e.seedSearchStringFromSelection,enumDescriptions:[v(\"editor.find.seedSearchStringFromSelection.never\",\"Never seed search string from the editor selection.\"),v(\"editor.find.seedSearchStringFromSelection.always\",\"Always seed search string from the editor selection, including word at cursor position.\"),v(\"editor.find.seedSearchStringFromSelection.selection\",\"Only seed search string from the editor selection.\")],description:v(\"find.seedSearchStringFromSelection\",\"Controls whether the search string in the Find Widget is seeded from the editor selection.\")},\"editor.find.autoFindInSelection\":{type:\"string\",enum:[\"never\",\"always\",\"multiline\"],default:e.autoFindInSelection,enumDescriptions:[v(\"editor.find.autoFindInSelection.never\",\"Never turn on Find in Selection automatically (default).\"),v(\"editor.find.autoFindInSelection.always\",\"Always turn on Find in Selection automatically.\"),v(\"editor.find.autoFindInSelection.multiline\",\"Turn on Find in Selection automatically when multiple lines of content are selected.\")],description:v(\"find.autoFindInSelection\",\"Controls the condition for turning on Find in Selection automatically.\")},\"editor.find.globalFindClipboard\":{type:\"boolean\",default:e.globalFindClipboard,description:v(\"find.globalFindClipboard\",\"Controls whether the Find Widget should read or modify the shared find clipboard on macOS.\"),included:Xt},\"editor.find.addExtraSpaceOnTop\":{type:\"boolean\",default:e.addExtraSpaceOnTop,description:v(\"find.addExtraSpaceOnTop\",\"Controls whether the Find Widget should add extra lines on top of the editor. When true, you can scroll beyond the first line when the Find Widget is visible.\")},\"editor.find.loop\":{type:\"boolean\",default:e.loop,description:v(\"find.loop\",\"Controls whether the search automatically restarts from the beginning (or the end) when no further matches can be found.\")}})}validate(e){if(!e||typeof e!=\"object\")return this.defaultValue;const t=e;return{cursorMoveOnType:rt(t.cursorMoveOnType,this.defaultValue.cursorMoveOnType),seedSearchStringFromSelection:typeof e.seedSearchStringFromSelection==\"boolean\"?e.seedSearchStringFromSelection?\"always\":\"never\":ns(t.seedSearchStringFromSelection,this.defaultValue.seedSearchStringFromSelection,[\"never\",\"always\",\"selection\"]),autoFindInSelection:typeof e.autoFindInSelection==\"boolean\"?e.autoFindInSelection?\"always\":\"never\":ns(t.autoFindInSelection,this.defaultValue.autoFindInSelection,[\"never\",\"always\",\"multiline\"]),globalFindClipboard:rt(t.globalFindClipboard,this.defaultValue.globalFindClipboard),addExtraSpaceOnTop:rt(t.addExtraSpaceOnTop,this.defaultValue.addExtraSpaceOnTop),loop:rt(t.loop,this.defaultValue.loop)}}}class cl extends Nn{constructor(){super(51,\"fontLigatures\",cl.OFF,{anyOf:[{type:\"boolean\",description:v(\"fontLigatures\",\"Enables/Disables font ligatures ('calt' and 'liga' font features). Change this to a string for fine-grained control of the 'font-feature-settings' CSS property.\")},{type:\"string\",description:v(\"fontFeatureSettings\",\"Explicit 'font-feature-settings' CSS property. A boolean can be passed instead if one only needs to turn on/off ligatures.\")}],description:v(\"fontLigaturesGeneral\",\"Configures font ligatures or font features. Can be either a boolean to enable/disable ligatures or a string for the value of the CSS 'font-feature-settings' property.\"),default:!1})}validate(e){return typeof e>\"u\"?this.defaultValue:typeof e==\"string\"?e===\"false\"||e.length===0?cl.OFF:e===\"true\"?cl.ON:e:e?cl.ON:cl.OFF}}cl.OFF='\"liga\" off, \"calt\" off';cl.ON='\"liga\" on, \"calt\" on';class Fd extends Nn{constructor(){super(54,\"fontVariations\",Fd.OFF,{anyOf:[{type:\"boolean\",description:v(\"fontVariations\",\"Enables/Disables the translation from font-weight to font-variation-settings. Change this to a string for fine-grained control of the 'font-variation-settings' CSS property.\")},{type:\"string\",description:v(\"fontVariationSettings\",\"Explicit 'font-variation-settings' CSS property. A boolean can be passed instead if one only needs to translate font-weight to font-variation-settings.\")}],description:v(\"fontVariationsGeneral\",\"Configures font variations. Can be either a boolean to enable/disable the translation from font-weight to font-variation-settings or a string for the value of the CSS 'font-variation-settings' property.\"),default:!1})}validate(e){return typeof e>\"u\"?this.defaultValue:typeof e==\"string\"?e===\"false\"?Fd.OFF:e===\"true\"?Fd.TRANSLATE:e:e?Fd.TRANSLATE:Fd.OFF}compute(e,t,i){return e.fontInfo.fontVariationSettings}}Fd.OFF=\"normal\";Fd.TRANSLATE=\"translate\";class B2e extends oD{constructor(){super(50)}compute(e,t,i){return e.fontInfo}}class W2e extends Nw{constructor(){super(52,\"fontSize\",ra.fontSize,{type:\"number\",minimum:6,maximum:100,default:ra.fontSize,description:v(\"fontSize\",\"Controls the font size in pixels.\")})}validate(e){const t=gl.float(e,this.defaultValue);return t===0?ra.fontSize:gl.clamp(t,6,100)}compute(e,t,i){return e.fontInfo.fontSize}}class Qu extends Nn{constructor(){super(53,\"fontWeight\",ra.fontWeight,{anyOf:[{type:\"number\",minimum:Qu.MINIMUM_VALUE,maximum:Qu.MAXIMUM_VALUE,errorMessage:v(\"fontWeightErrorMessage\",'Only \"normal\" and \"bold\" keywords or numbers between 1 and 1000 are allowed.')},{type:\"string\",pattern:\"^(normal|bold|1000|[1-9][0-9]{0,2})$\"},{enum:Qu.SUGGESTION_VALUES}],default:ra.fontWeight,description:v(\"fontWeight\",'Controls the font weight. Accepts \"normal\" and \"bold\" keywords or numbers between 1 and 1000.')})}validate(e){return e===\"normal\"||e===\"bold\"?e:String(sn.clampedInt(e,ra.fontWeight,Qu.MINIMUM_VALUE,Qu.MAXIMUM_VALUE))}}Qu.SUGGESTION_VALUES=[\"normal\",\"bold\",\"100\",\"200\",\"300\",\"400\",\"500\",\"600\",\"700\",\"800\",\"900\"];Qu.MINIMUM_VALUE=1;Qu.MAXIMUM_VALUE=1e3;class H2e extends Nn{constructor(){const e={multiple:\"peek\",multipleDefinitions:\"peek\",multipleTypeDefinitions:\"peek\",multipleDeclarations:\"peek\",multipleImplementations:\"peek\",multipleReferences:\"peek\",alternativeDefinitionCommand:\"editor.action.goToReferences\",alternativeTypeDefinitionCommand:\"editor.action.goToReferences\",alternativeDeclarationCommand:\"editor.action.goToReferences\",alternativeImplementationCommand:\"\",alternativeReferenceCommand:\"\"},t={type:\"string\",enum:[\"peek\",\"gotoAndPeek\",\"goto\"],default:e.multiple,enumDescriptions:[v(\"editor.gotoLocation.multiple.peek\",\"Show Peek view of the results (default)\"),v(\"editor.gotoLocation.multiple.gotoAndPeek\",\"Go to the primary result and show a Peek view\"),v(\"editor.gotoLocation.multiple.goto\",\"Go to the primary result and enable Peek-less navigation to others\")]},i=[\"\",\"editor.action.referenceSearch.trigger\",\"editor.action.goToReferences\",\"editor.action.peekImplementation\",\"editor.action.goToImplementation\",\"editor.action.peekTypeDefinition\",\"editor.action.goToTypeDefinition\",\"editor.action.peekDeclaration\",\"editor.action.revealDeclaration\",\"editor.action.peekDefinition\",\"editor.action.revealDefinitionAside\",\"editor.action.revealDefinition\"];super(58,\"gotoLocation\",e,{\"editor.gotoLocation.multiple\":{deprecationMessage:v(\"editor.gotoLocation.multiple.deprecated\",\"This setting is deprecated, please use separate settings like 'editor.editor.gotoLocation.multipleDefinitions' or 'editor.editor.gotoLocation.multipleImplementations' instead.\")},\"editor.gotoLocation.multipleDefinitions\":{description:v(\"editor.editor.gotoLocation.multipleDefinitions\",\"Controls the behavior the 'Go to Definition'-command when multiple target locations exist.\"),...t},\"editor.gotoLocation.multipleTypeDefinitions\":{description:v(\"editor.editor.gotoLocation.multipleTypeDefinitions\",\"Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist.\"),...t},\"editor.gotoLocation.multipleDeclarations\":{description:v(\"editor.editor.gotoLocation.multipleDeclarations\",\"Controls the behavior the 'Go to Declaration'-command when multiple target locations exist.\"),...t},\"editor.gotoLocation.multipleImplementations\":{description:v(\"editor.editor.gotoLocation.multipleImplemenattions\",\"Controls the behavior the 'Go to Implementations'-command when multiple target locations exist.\"),...t},\"editor.gotoLocation.multipleReferences\":{description:v(\"editor.editor.gotoLocation.multipleReferences\",\"Controls the behavior the 'Go to References'-command when multiple target locations exist.\"),...t},\"editor.gotoLocation.alternativeDefinitionCommand\":{type:\"string\",default:e.alternativeDefinitionCommand,enum:i,description:v(\"alternativeDefinitionCommand\",\"Alternative command id that is being executed when the result of 'Go to Definition' is the current location.\")},\"editor.gotoLocation.alternativeTypeDefinitionCommand\":{type:\"string\",default:e.alternativeTypeDefinitionCommand,enum:i,description:v(\"alternativeTypeDefinitionCommand\",\"Alternative command id that is being executed when the result of 'Go to Type Definition' is the current location.\")},\"editor.gotoLocation.alternativeDeclarationCommand\":{type:\"string\",default:e.alternativeDeclarationCommand,enum:i,description:v(\"alternativeDeclarationCommand\",\"Alternative command id that is being executed when the result of 'Go to Declaration' is the current location.\")},\"editor.gotoLocation.alternativeImplementationCommand\":{type:\"string\",default:e.alternativeImplementationCommand,enum:i,description:v(\"alternativeImplementationCommand\",\"Alternative command id that is being executed when the result of 'Go to Implementation' is the current location.\")},\"editor.gotoLocation.alternativeReferenceCommand\":{type:\"string\",default:e.alternativeReferenceCommand,enum:i,description:v(\"alternativeReferenceCommand\",\"Alternative command id that is being executed when the result of 'Go to Reference' is the current location.\")}})}validate(e){var t,i,s,o,r;if(!e||typeof e!=\"object\")return this.defaultValue;const a=e;return{multiple:ns(a.multiple,this.defaultValue.multiple,[\"peek\",\"gotoAndPeek\",\"goto\"]),multipleDefinitions:(t=a.multipleDefinitions)!==null&&t!==void 0?t:ns(a.multipleDefinitions,\"peek\",[\"peek\",\"gotoAndPeek\",\"goto\"]),multipleTypeDefinitions:(i=a.multipleTypeDefinitions)!==null&&i!==void 0?i:ns(a.multipleTypeDefinitions,\"peek\",[\"peek\",\"gotoAndPeek\",\"goto\"]),multipleDeclarations:(s=a.multipleDeclarations)!==null&&s!==void 0?s:ns(a.multipleDeclarations,\"peek\",[\"peek\",\"gotoAndPeek\",\"goto\"]),multipleImplementations:(o=a.multipleImplementations)!==null&&o!==void 0?o:ns(a.multipleImplementations,\"peek\",[\"peek\",\"gotoAndPeek\",\"goto\"]),multipleReferences:(r=a.multipleReferences)!==null&&r!==void 0?r:ns(a.multipleReferences,\"peek\",[\"peek\",\"gotoAndPeek\",\"goto\"]),alternativeDefinitionCommand:xr.string(a.alternativeDefinitionCommand,this.defaultValue.alternativeDefinitionCommand),alternativeTypeDefinitionCommand:xr.string(a.alternativeTypeDefinitionCommand,this.defaultValue.alternativeTypeDefinitionCommand),alternativeDeclarationCommand:xr.string(a.alternativeDeclarationCommand,this.defaultValue.alternativeDeclarationCommand),alternativeImplementationCommand:xr.string(a.alternativeImplementationCommand,this.defaultValue.alternativeImplementationCommand),alternativeReferenceCommand:xr.string(a.alternativeReferenceCommand,this.defaultValue.alternativeReferenceCommand)}}}class V2e extends Nn{constructor(){const e={enabled:!0,delay:300,hidingDelay:300,sticky:!0,above:!0};super(60,\"hover\",e,{\"editor.hover.enabled\":{type:\"boolean\",default:e.enabled,description:v(\"hover.enabled\",\"Controls whether the hover is shown.\")},\"editor.hover.delay\":{type:\"number\",default:e.delay,minimum:0,maximum:1e4,description:v(\"hover.delay\",\"Controls the delay in milliseconds after which the hover is shown.\")},\"editor.hover.sticky\":{type:\"boolean\",default:e.sticky,description:v(\"hover.sticky\",\"Controls whether the hover should remain visible when mouse is moved over it.\")},\"editor.hover.hidingDelay\":{type:\"integer\",minimum:0,default:e.hidingDelay,description:v(\"hover.hidingDelay\",\"Controls the delay in milliseconds after which the hover is hidden. Requires `editor.hover.sticky` to be enabled.\")},\"editor.hover.above\":{type:\"boolean\",default:e.above,description:v(\"hover.above\",\"Prefer showing hovers above the line, if there's space.\")}})}validate(e){if(!e||typeof e!=\"object\")return this.defaultValue;const t=e;return{enabled:rt(t.enabled,this.defaultValue.enabled),delay:sn.clampedInt(t.delay,this.defaultValue.delay,0,1e4),sticky:rt(t.sticky,this.defaultValue.sticky),hidingDelay:sn.clampedInt(t.hidingDelay,this.defaultValue.hidingDelay,0,6e5),above:rt(t.above,this.defaultValue.above)}}}class U1 extends oD{constructor(){super(145)}compute(e,t,i){return U1.computeLayout(t,{memory:e.memory,outerWidth:e.outerWidth,outerHeight:e.outerHeight,isDominatedByLongLines:e.isDominatedByLongLines,lineHeight:e.fontInfo.lineHeight,viewLineCount:e.viewLineCount,lineNumbersDigitCount:e.lineNumbersDigitCount,typicalHalfwidthCharacterWidth:e.fontInfo.typicalHalfwidthCharacterWidth,maxDigitWidth:e.fontInfo.maxDigitWidth,pixelRatio:e.pixelRatio,glyphMarginDecorationLaneCount:e.glyphMarginDecorationLaneCount})}static computeContainedMinimapLineCount(e){const t=e.height/e.lineHeight,i=Math.floor(e.paddingTop/e.lineHeight);let s=Math.floor(e.paddingBottom/e.lineHeight);e.scrollBeyondLastLine&&(s=Math.max(s,t-1));const o=(i+e.viewLineCount+s)/(e.pixelRatio*e.height),r=Math.floor(e.viewLineCount/o);return{typicalViewportLineCount:t,extraLinesBeforeFirstLine:i,extraLinesBeyondLastLine:s,desiredRatio:o,minimapLineCount:r}}static _computeMinimapLayout(e,t){const i=e.outerWidth,s=e.outerHeight,o=e.pixelRatio;if(!e.minimap.enabled)return{renderMinimap:0,minimapLeft:0,minimapWidth:0,minimapHeightIsEditorHeight:!1,minimapIsSampling:!1,minimapScale:1,minimapLineHeight:1,minimapCanvasInnerWidth:0,minimapCanvasInnerHeight:Math.floor(o*s),minimapCanvasOuterWidth:0,minimapCanvasOuterHeight:s};const r=t.stableMinimapLayoutInput,a=r&&e.outerHeight===r.outerHeight&&e.lineHeight===r.lineHeight&&e.typicalHalfwidthCharacterWidth===r.typicalHalfwidthCharacterWidth&&e.pixelRatio===r.pixelRatio&&e.scrollBeyondLastLine===r.scrollBeyondLastLine&&e.paddingTop===r.paddingTop&&e.paddingBottom===r.paddingBottom&&e.minimap.enabled===r.minimap.enabled&&e.minimap.side===r.minimap.side&&e.minimap.size===r.minimap.size&&e.minimap.showSlider===r.minimap.showSlider&&e.minimap.renderCharacters===r.minimap.renderCharacters&&e.minimap.maxColumn===r.minimap.maxColumn&&e.minimap.scale===r.minimap.scale&&e.verticalScrollbarWidth===r.verticalScrollbarWidth&&e.isViewportWrapping===r.isViewportWrapping,l=e.lineHeight,c=e.typicalHalfwidthCharacterWidth,d=e.scrollBeyondLastLine,u=e.minimap.renderCharacters;let h=o>=2?Math.round(e.minimap.scale*2):e.minimap.scale;const f=e.minimap.maxColumn,g=e.minimap.size,p=e.minimap.side,_=e.verticalScrollbarWidth,b=e.viewLineCount,w=e.remainingWidth,y=e.isViewportWrapping,S=u?2:3;let x=Math.floor(o*s);const k=x/o;let D=!1,I=!1,N=S*h,P=h/o,O=1;if(g===\"fill\"||g===\"fit\"){const{typicalViewportLineCount:me,extraLinesBeforeFirstLine:De,extraLinesBeyondLastLine:lt,desiredRatio:We,minimapLineCount:Ve}=U1.computeContainedMinimapLineCount({viewLineCount:b,scrollBeyondLastLine:d,paddingTop:e.paddingTop,paddingBottom:e.paddingBottom,height:s,lineHeight:l,pixelRatio:o});if(b/Ve>1)D=!0,I=!0,h=1,N=1,P=h/o;else{let Zt=!1,Oi=h+1;if(g===\"fit\"){const ni=Math.ceil((De+b+lt)*N);y&&a&&w<=t.stableFitRemainingWidth?(Zt=!0,Oi=t.stableFitMaxMinimapScale):Zt=ni>x}if(g===\"fill\"||Zt){D=!0;const ni=h;N=Math.min(l*o,Math.max(1,Math.floor(1/We))),y&&a&&w<=t.stableFitRemainingWidth&&(Oi=t.stableFitMaxMinimapScale),h=Math.min(Oi,Math.max(1,Math.floor(N/S))),h>ni&&(O=Math.min(2,h/ni)),P=h/o/O,x=Math.ceil(Math.max(me,De+b+lt)*N),y?(t.stableMinimapLayoutInput=e,t.stableFitRemainingWidth=w,t.stableFitMaxMinimapScale=h):(t.stableMinimapLayoutInput=null,t.stableFitRemainingWidth=0)}}}const M=Math.floor(f*P),z=Math.min(M,Math.max(0,Math.floor((w-_-2)*P/(c+P)))+Ou);let K=Math.floor(o*z);const ae=K/o;K=Math.floor(K*O);const se=u?1:2,he=p===\"left\"?0:i-z-_;return{renderMinimap:se,minimapLeft:he,minimapWidth:z,minimapHeightIsEditorHeight:D,minimapIsSampling:I,minimapScale:h,minimapLineHeight:N,minimapCanvasInnerWidth:K,minimapCanvasInnerHeight:x,minimapCanvasOuterWidth:ae,minimapCanvasOuterHeight:k}}static computeLayout(e,t){const i=t.outerWidth|0,s=t.outerHeight|0,o=t.lineHeight|0,r=t.lineNumbersDigitCount|0,a=t.typicalHalfwidthCharacterWidth,l=t.maxDigitWidth,c=t.pixelRatio,d=t.viewLineCount,u=e.get(137),h=u===\"inherit\"?e.get(136):u,f=h===\"inherit\"?e.get(132):h,g=e.get(135),p=t.isDominatedByLongLines,_=e.get(57),b=e.get(68).renderType!==0,w=e.get(69),y=e.get(105),S=e.get(84),x=e.get(73),k=e.get(103),D=k.verticalScrollbarSize,I=k.verticalHasArrows,N=k.arrowSize,P=k.horizontalScrollbarSize,O=e.get(43),M=e.get(110)!==\"never\";let z=e.get(66);O&&M&&(z+=16);let K=0;if(b){const Qe=Math.max(r,w);K=Math.round(Qe*l)}let ae=0;_&&(ae=o*t.glyphMarginDecorationLaneCount);let se=0,he=se+ae,me=he+K,De=me+z;const lt=i-ae-K-z;let We=!1,Ve=!1,Me=-1;h===\"inherit\"&&p?(We=!0,Ve=!0):f===\"on\"||f===\"bounded\"?Ve=!0:f===\"wordWrapColumn\"&&(Me=g);const Zt=U1._computeMinimapLayout({outerWidth:i,outerHeight:s,lineHeight:o,typicalHalfwidthCharacterWidth:a,pixelRatio:c,scrollBeyondLastLine:y,paddingTop:S.top,paddingBottom:S.bottom,minimap:x,verticalScrollbarWidth:D,viewLineCount:d,remainingWidth:lt,isViewportWrapping:Ve},t.memory||new eae);Zt.renderMinimap!==0&&Zt.minimapLeft===0&&(se+=Zt.minimapWidth,he+=Zt.minimapWidth,me+=Zt.minimapWidth,De+=Zt.minimapWidth);const Oi=lt-Zt.minimapWidth,ni=Math.max(1,Math.floor((Oi-D-2)/a)),Se=I?N:0;return Ve&&(Me=Math.max(1,ni),f===\"bounded\"&&(Me=Math.min(Me,g))),{width:i,height:s,glyphMarginLeft:se,glyphMarginWidth:ae,glyphMarginDecorationLaneCount:t.glyphMarginDecorationLaneCount,lineNumbersLeft:he,lineNumbersWidth:K,decorationsLeft:me,decorationsWidth:z,contentLeft:De,contentWidth:Oi,minimap:Zt,viewportColumn:ni,isWordWrapMinified:We,isViewportWrapping:Ve,wrappingColumn:Me,verticalScrollbarWidth:D,horizontalScrollbarHeight:P,overviewRuler:{top:Se,width:D,height:s-2*Se,right:0}}}}class z2e extends Nn{constructor(){super(139,\"wrappingStrategy\",\"simple\",{\"editor.wrappingStrategy\":{enumDescriptions:[v(\"wrappingStrategy.simple\",\"Assumes that all characters are of the same width. This is a fast algorithm that works correctly for monospace fonts and certain scripts (like Latin characters) where glyphs are of equal width.\"),v(\"wrappingStrategy.advanced\",\"Delegates wrapping points computation to the browser. This is a slow algorithm, that might cause freezes for large files, but it works correctly in all cases.\")],type:\"string\",enum:[\"simple\",\"advanced\"],default:\"simple\",description:v(\"wrappingStrategy\",\"Controls the algorithm that computes wrapping points. Note that when in accessibility mode, advanced will be used for the best experience.\")}})}validate(e){return ns(e,\"simple\",[\"simple\",\"advanced\"])}compute(e,t,i){return t.get(2)===2?\"advanced\":i}}var Hc;(function(n){n.Off=\"off\",n.OnCode=\"onCode\",n.On=\"on\"})(Hc||(Hc={}));class $2e extends Nn{constructor(){const e={enabled:Hc.On};super(65,\"lightbulb\",e,{\"editor.lightbulb.enabled\":{type:\"string\",tags:[\"experimental\"],enum:[Hc.Off,Hc.OnCode,Hc.On],default:e.enabled,enumDescriptions:[v(\"editor.lightbulb.enabled.off\",\"Disable the code action menu.\"),v(\"editor.lightbulb.enabled.onCode\",\"Show the code action menu when the cursor is on lines with code.\"),v(\"editor.lightbulb.enabled.on\",\"Show the code action menu when the cursor is on lines with code or on empty lines.\")],description:v(\"enabled\",\"Enables the Code Action lightbulb in the editor.\")}})}validate(e){return!e||typeof e!=\"object\"?this.defaultValue:{enabled:ns(e.enabled,this.defaultValue.enabled,[Hc.Off,Hc.OnCode,Hc.On])}}}class U2e extends Nn{constructor(){const e={enabled:!0,maxLineCount:5,defaultModel:\"outlineModel\",scrollWithEditor:!0};super(115,\"stickyScroll\",e,{\"editor.stickyScroll.enabled\":{type:\"boolean\",default:e.enabled,description:v(\"editor.stickyScroll.enabled\",\"Shows the nested current scopes during the scroll at the top of the editor.\"),tags:[\"experimental\"]},\"editor.stickyScroll.maxLineCount\":{type:\"number\",default:e.maxLineCount,minimum:1,maximum:20,description:v(\"editor.stickyScroll.maxLineCount\",\"Defines the maximum number of sticky lines to show.\")},\"editor.stickyScroll.defaultModel\":{type:\"string\",enum:[\"outlineModel\",\"foldingProviderModel\",\"indentationModel\"],default:e.defaultModel,description:v(\"editor.stickyScroll.defaultModel\",\"Defines the model to use for determining which lines to stick. If the outline model does not exist, it will fall back on the folding provider model which falls back on the indentation model. This order is respected in all three cases.\")},\"editor.stickyScroll.scrollWithEditor\":{type:\"boolean\",default:e.scrollWithEditor,description:v(\"editor.stickyScroll.scrollWithEditor\",\"Enable scrolling of Sticky Scroll with the editor's horizontal scrollbar.\")}})}validate(e){if(!e||typeof e!=\"object\")return this.defaultValue;const t=e;return{enabled:rt(t.enabled,this.defaultValue.enabled),maxLineCount:sn.clampedInt(t.maxLineCount,this.defaultValue.maxLineCount,1,20),defaultModel:ns(t.defaultModel,this.defaultValue.defaultModel,[\"outlineModel\",\"foldingProviderModel\",\"indentationModel\"]),scrollWithEditor:rt(t.scrollWithEditor,this.defaultValue.scrollWithEditor)}}}class j2e extends Nn{constructor(){const e={enabled:\"on\",fontSize:0,fontFamily:\"\",padding:!1};super(141,\"inlayHints\",e,{\"editor.inlayHints.enabled\":{type:\"string\",default:e.enabled,description:v(\"inlayHints.enable\",\"Enables the inlay hints in the editor.\"),enum:[\"on\",\"onUnlessPressed\",\"offUnlessPressed\",\"off\"],markdownEnumDescriptions:[v(\"editor.inlayHints.on\",\"Inlay hints are enabled\"),v(\"editor.inlayHints.onUnlessPressed\",\"Inlay hints are showing by default and hide when holding {0}\",Xt?\"Ctrl+Option\":\"Ctrl+Alt\"),v(\"editor.inlayHints.offUnlessPressed\",\"Inlay hints are hidden by default and show when holding {0}\",Xt?\"Ctrl+Option\":\"Ctrl+Alt\"),v(\"editor.inlayHints.off\",\"Inlay hints are disabled\")]},\"editor.inlayHints.fontSize\":{type:\"number\",default:e.fontSize,markdownDescription:v(\"inlayHints.fontSize\",\"Controls font size of inlay hints in the editor. As default the {0} is used when the configured value is less than {1} or greater than the editor font size.\",\"`#editor.fontSize#`\",\"`5`\")},\"editor.inlayHints.fontFamily\":{type:\"string\",default:e.fontFamily,markdownDescription:v(\"inlayHints.fontFamily\",\"Controls font family of inlay hints in the editor. When set to empty, the {0} is used.\",\"`#editor.fontFamily#`\")},\"editor.inlayHints.padding\":{type:\"boolean\",default:e.padding,description:v(\"inlayHints.padding\",\"Enables the padding around the inlay hints in the editor.\")}})}validate(e){if(!e||typeof e!=\"object\")return this.defaultValue;const t=e;return typeof t.enabled==\"boolean\"&&(t.enabled=t.enabled?\"on\":\"off\"),{enabled:ns(t.enabled,this.defaultValue.enabled,[\"on\",\"off\",\"offUnlessPressed\",\"onUnlessPressed\"]),fontSize:sn.clampedInt(t.fontSize,this.defaultValue.fontSize,0,100),fontFamily:xr.string(t.fontFamily,this.defaultValue.fontFamily),padding:rt(t.padding,this.defaultValue.padding)}}}class K2e extends Nn{constructor(){super(66,\"lineDecorationsWidth\",10)}validate(e){return typeof e==\"string\"&&/^\\d+(\\.\\d+)?ch$/.test(e)?-parseFloat(e.substring(0,e.length-2)):sn.clampedInt(e,this.defaultValue,0,1e3)}compute(e,t,i){return i<0?sn.clampedInt(-i*e.fontInfo.typicalHalfwidthCharacterWidth,this.defaultValue,0,1e3):i}}class q2e extends gl{constructor(){super(67,\"lineHeight\",ra.lineHeight,e=>gl.clamp(e,0,150),{markdownDescription:v(\"lineHeight\",`Controls the line height. \n - Use 0 to automatically compute the line height from the font size.\n - Values between 0 and 8 will be used as a multiplier with the font size.\n - Values greater than or equal to 8 will be used as effective values.`)})}compute(e,t,i){return e.fontInfo.lineHeight}}class G2e extends Nn{constructor(){const e={enabled:!0,size:\"proportional\",side:\"right\",showSlider:\"mouseover\",autohide:!1,renderCharacters:!0,maxColumn:120,scale:1,showRegionSectionHeaders:!0,showMarkSectionHeaders:!0,sectionHeaderFontSize:9,sectionHeaderLetterSpacing:1};super(73,\"minimap\",e,{\"editor.minimap.enabled\":{type:\"boolean\",default:e.enabled,description:v(\"minimap.enabled\",\"Controls whether the minimap is shown.\")},\"editor.minimap.autohide\":{type:\"boolean\",default:e.autohide,description:v(\"minimap.autohide\",\"Controls whether the minimap is hidden automatically.\")},\"editor.minimap.size\":{type:\"string\",enum:[\"proportional\",\"fill\",\"fit\"],enumDescriptions:[v(\"minimap.size.proportional\",\"The minimap has the same size as the editor contents (and might scroll).\"),v(\"minimap.size.fill\",\"The minimap will stretch or shrink as necessary to fill the height of the editor (no scrolling).\"),v(\"minimap.size.fit\",\"The minimap will shrink as necessary to never be larger than the editor (no scrolling).\")],default:e.size,description:v(\"minimap.size\",\"Controls the size of the minimap.\")},\"editor.minimap.side\":{type:\"string\",enum:[\"left\",\"right\"],default:e.side,description:v(\"minimap.side\",\"Controls the side where to render the minimap.\")},\"editor.minimap.showSlider\":{type:\"string\",enum:[\"always\",\"mouseover\"],default:e.showSlider,description:v(\"minimap.showSlider\",\"Controls when the minimap slider is shown.\")},\"editor.minimap.scale\":{type:\"number\",default:e.scale,minimum:1,maximum:3,enum:[1,2,3],description:v(\"minimap.scale\",\"Scale of content drawn in the minimap: 1, 2 or 3.\")},\"editor.minimap.renderCharacters\":{type:\"boolean\",default:e.renderCharacters,description:v(\"minimap.renderCharacters\",\"Render the actual characters on a line as opposed to color blocks.\")},\"editor.minimap.maxColumn\":{type:\"number\",default:e.maxColumn,description:v(\"minimap.maxColumn\",\"Limit the width of the minimap to render at most a certain number of columns.\")},\"editor.minimap.showRegionSectionHeaders\":{type:\"boolean\",default:e.showRegionSectionHeaders,description:v(\"minimap.showRegionSectionHeaders\",\"Controls whether named regions are shown as section headers in the minimap.\")},\"editor.minimap.showMarkSectionHeaders\":{type:\"boolean\",default:e.showMarkSectionHeaders,description:v(\"minimap.showMarkSectionHeaders\",\"Controls whether MARK: comments are shown as section headers in the minimap.\")},\"editor.minimap.sectionHeaderFontSize\":{type:\"number\",default:e.sectionHeaderFontSize,description:v(\"minimap.sectionHeaderFontSize\",\"Controls the font size of section headers in the minimap.\")},\"editor.minimap.sectionHeaderLetterSpacing\":{type:\"number\",default:e.sectionHeaderLetterSpacing,description:v(\"minimap.sectionHeaderLetterSpacing\",\"Controls the amount of space (in pixels) between characters of section header. This helps the readability of the header in small font sizes.\")}})}validate(e){var t,i;if(!e||typeof e!=\"object\")return this.defaultValue;const s=e;return{enabled:rt(s.enabled,this.defaultValue.enabled),autohide:rt(s.autohide,this.defaultValue.autohide),size:ns(s.size,this.defaultValue.size,[\"proportional\",\"fill\",\"fit\"]),side:ns(s.side,this.defaultValue.side,[\"right\",\"left\"]),showSlider:ns(s.showSlider,this.defaultValue.showSlider,[\"always\",\"mouseover\"]),renderCharacters:rt(s.renderCharacters,this.defaultValue.renderCharacters),scale:sn.clampedInt(s.scale,1,1,3),maxColumn:sn.clampedInt(s.maxColumn,this.defaultValue.maxColumn,1,1e4),showRegionSectionHeaders:rt(s.showRegionSectionHeaders,this.defaultValue.showRegionSectionHeaders),showMarkSectionHeaders:rt(s.showMarkSectionHeaders,this.defaultValue.showMarkSectionHeaders),sectionHeaderFontSize:gl.clamp((t=s.sectionHeaderFontSize)!==null&&t!==void 0?t:this.defaultValue.sectionHeaderFontSize,4,32),sectionHeaderLetterSpacing:gl.clamp((i=s.sectionHeaderLetterSpacing)!==null&&i!==void 0?i:this.defaultValue.sectionHeaderLetterSpacing,0,5)}}}function Z2e(n){return n===\"ctrlCmd\"?Xt?\"metaKey\":\"ctrlKey\":\"altKey\"}class Y2e extends Nn{constructor(){super(84,\"padding\",{top:0,bottom:0},{\"editor.padding.top\":{type:\"number\",default:0,minimum:0,maximum:1e3,description:v(\"padding.top\",\"Controls the amount of space between the top edge of the editor and the first line.\")},\"editor.padding.bottom\":{type:\"number\",default:0,minimum:0,maximum:1e3,description:v(\"padding.bottom\",\"Controls the amount of space between the bottom edge of the editor and the last line.\")}})}validate(e){if(!e||typeof e!=\"object\")return this.defaultValue;const t=e;return{top:sn.clampedInt(t.top,0,0,1e3),bottom:sn.clampedInt(t.bottom,0,0,1e3)}}}class X2e extends Nn{constructor(){const e={enabled:!0,cycle:!0};super(86,\"parameterHints\",e,{\"editor.parameterHints.enabled\":{type:\"boolean\",default:e.enabled,description:v(\"parameterHints.enabled\",\"Enables a pop-up that shows parameter documentation and type information as you type.\")},\"editor.parameterHints.cycle\":{type:\"boolean\",default:e.cycle,description:v(\"parameterHints.cycle\",\"Controls whether the parameter hints menu cycles or closes when reaching the end of the list.\")}})}validate(e){if(!e||typeof e!=\"object\")return this.defaultValue;const t=e;return{enabled:rt(t.enabled,this.defaultValue.enabled),cycle:rt(t.cycle,this.defaultValue.cycle)}}}class Q2e extends oD{constructor(){super(143)}compute(e,t,i){return e.pixelRatio}}class J2e extends Nn{constructor(){const e={other:\"on\",comments:\"off\",strings:\"off\"},t=[{type:\"boolean\"},{type:\"string\",enum:[\"on\",\"inline\",\"off\"],enumDescriptions:[v(\"on\",\"Quick suggestions show inside the suggest widget\"),v(\"inline\",\"Quick suggestions show as ghost text\"),v(\"off\",\"Quick suggestions are disabled\")]}];super(89,\"quickSuggestions\",e,{type:\"object\",additionalProperties:!1,properties:{strings:{anyOf:t,default:e.strings,description:v(\"quickSuggestions.strings\",\"Enable quick suggestions inside strings.\")},comments:{anyOf:t,default:e.comments,description:v(\"quickSuggestions.comments\",\"Enable quick suggestions inside comments.\")},other:{anyOf:t,default:e.other,description:v(\"quickSuggestions.other\",\"Enable quick suggestions outside of strings and comments.\")}},default:e,markdownDescription:v(\"quickSuggestions\",\"Controls whether suggestions should automatically show up while typing. This can be controlled for typing in comments, strings, and other code. Quick suggestion can be configured to show as ghost text or with the suggest widget. Also be aware of the '{0}'-setting which controls if suggestions are triggered by special characters.\",\"#editor.suggestOnTriggerCharacters#\")}),this.defaultValue=e}validate(e){if(typeof e==\"boolean\"){const c=e?\"on\":\"off\";return{comments:c,strings:c,other:c}}if(!e||typeof e!=\"object\")return this.defaultValue;const{other:t,comments:i,strings:s}=e,o=[\"on\",\"inline\",\"off\"];let r,a,l;return typeof t==\"boolean\"?r=t?\"on\":\"off\":r=ns(t,this.defaultValue.other,o),typeof i==\"boolean\"?a=i?\"on\":\"off\":a=ns(i,this.defaultValue.comments,o),typeof s==\"boolean\"?l=s?\"on\":\"off\":l=ns(s,this.defaultValue.strings,o),{other:r,comments:a,strings:l}}}class eAe extends Nn{constructor(){super(68,\"lineNumbers\",{renderType:1,renderFn:null},{type:\"string\",enum:[\"off\",\"on\",\"relative\",\"interval\"],enumDescriptions:[v(\"lineNumbers.off\",\"Line numbers are not rendered.\"),v(\"lineNumbers.on\",\"Line numbers are rendered as absolute number.\"),v(\"lineNumbers.relative\",\"Line numbers are rendered as distance in lines to cursor position.\"),v(\"lineNumbers.interval\",\"Line numbers are rendered every 10 lines.\")],default:\"on\",description:v(\"lineNumbers\",\"Controls the display of line numbers.\")})}validate(e){let t=this.defaultValue.renderType,i=this.defaultValue.renderFn;return typeof e<\"u\"&&(typeof e==\"function\"?(t=4,i=e):e===\"interval\"?t=3:e===\"relative\"?t=2:e===\"on\"?t=1:t=0),{renderType:t,renderFn:i}}}function k2(n){const e=n.get(98);return e===\"editable\"?n.get(91):e!==\"on\"}class tAe extends Nn{constructor(){const e=[],t={type:\"number\",description:v(\"rulers.size\",\"Number of monospace characters at which this editor ruler will render.\")};super(102,\"rulers\",e,{type:\"array\",items:{anyOf:[t,{type:[\"object\"],properties:{column:t,color:{type:\"string\",description:v(\"rulers.color\",\"Color of this editor ruler.\"),format:\"color-hex\"}}}]},default:e,description:v(\"rulers\",\"Render vertical rulers after a certain number of monospace characters. Use multiple values for multiple rulers. No rulers are drawn if array is empty.\")})}validate(e){if(Array.isArray(e)){const t=[];for(const i of e)if(typeof i==\"number\")t.push({column:sn.clampedInt(i,0,0,1e4),color:null});else if(i&&typeof i==\"object\"){const s=i;t.push({column:sn.clampedInt(s.column,0,0,1e4),color:s.color})}return t.sort((i,s)=>i.column-s.column),t}return this.defaultValue}}class iAe extends Nn{constructor(){super(92,\"readOnlyMessage\",void 0)}validate(e){return!e||typeof e!=\"object\"?this.defaultValue:e}}function tY(n,e){if(typeof n!=\"string\")return e;switch(n){case\"hidden\":return 2;case\"visible\":return 3;default:return 1}}let nAe=class extends Nn{constructor(){const e={vertical:1,horizontal:1,arrowSize:11,useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,horizontalScrollbarSize:12,horizontalSliderSize:12,verticalScrollbarSize:14,verticalSliderSize:14,handleMouseWheel:!0,alwaysConsumeMouseWheel:!0,scrollByPage:!1,ignoreHorizontalScrollbarInContentHeight:!1};super(103,\"scrollbar\",e,{\"editor.scrollbar.vertical\":{type:\"string\",enum:[\"auto\",\"visible\",\"hidden\"],enumDescriptions:[v(\"scrollbar.vertical.auto\",\"The vertical scrollbar will be visible only when necessary.\"),v(\"scrollbar.vertical.visible\",\"The vertical scrollbar will always be visible.\"),v(\"scrollbar.vertical.fit\",\"The vertical scrollbar will always be hidden.\")],default:\"auto\",description:v(\"scrollbar.vertical\",\"Controls the visibility of the vertical scrollbar.\")},\"editor.scrollbar.horizontal\":{type:\"string\",enum:[\"auto\",\"visible\",\"hidden\"],enumDescriptions:[v(\"scrollbar.horizontal.auto\",\"The horizontal scrollbar will be visible only when necessary.\"),v(\"scrollbar.horizontal.visible\",\"The horizontal scrollbar will always be visible.\"),v(\"scrollbar.horizontal.fit\",\"The horizontal scrollbar will always be hidden.\")],default:\"auto\",description:v(\"scrollbar.horizontal\",\"Controls the visibility of the horizontal scrollbar.\")},\"editor.scrollbar.verticalScrollbarSize\":{type:\"number\",default:e.verticalScrollbarSize,description:v(\"scrollbar.verticalScrollbarSize\",\"The width of the vertical scrollbar.\")},\"editor.scrollbar.horizontalScrollbarSize\":{type:\"number\",default:e.horizontalScrollbarSize,description:v(\"scrollbar.horizontalScrollbarSize\",\"The height of the horizontal scrollbar.\")},\"editor.scrollbar.scrollByPage\":{type:\"boolean\",default:e.scrollByPage,description:v(\"scrollbar.scrollByPage\",\"Controls whether clicks scroll by page or jump to click position.\")},\"editor.scrollbar.ignoreHorizontalScrollbarInContentHeight\":{type:\"boolean\",default:e.ignoreHorizontalScrollbarInContentHeight,description:v(\"scrollbar.ignoreHorizontalScrollbarInContentHeight\",\"When set, the horizontal scrollbar will not increase the size of the editor's content.\")}})}validate(e){if(!e||typeof e!=\"object\")return this.defaultValue;const t=e,i=sn.clampedInt(t.horizontalScrollbarSize,this.defaultValue.horizontalScrollbarSize,0,1e3),s=sn.clampedInt(t.verticalScrollbarSize,this.defaultValue.verticalScrollbarSize,0,1e3);return{arrowSize:sn.clampedInt(t.arrowSize,this.defaultValue.arrowSize,0,1e3),vertical:tY(t.vertical,this.defaultValue.vertical),horizontal:tY(t.horizontal,this.defaultValue.horizontal),useShadows:rt(t.useShadows,this.defaultValue.useShadows),verticalHasArrows:rt(t.verticalHasArrows,this.defaultValue.verticalHasArrows),horizontalHasArrows:rt(t.horizontalHasArrows,this.defaultValue.horizontalHasArrows),handleMouseWheel:rt(t.handleMouseWheel,this.defaultValue.handleMouseWheel),alwaysConsumeMouseWheel:rt(t.alwaysConsumeMouseWheel,this.defaultValue.alwaysConsumeMouseWheel),horizontalScrollbarSize:i,horizontalSliderSize:sn.clampedInt(t.horizontalSliderSize,i,0,1e3),verticalScrollbarSize:s,verticalSliderSize:sn.clampedInt(t.verticalSliderSize,s,0,1e3),scrollByPage:rt(t.scrollByPage,this.defaultValue.scrollByPage),ignoreHorizontalScrollbarInContentHeight:rt(t.ignoreHorizontalScrollbarInContentHeight,this.defaultValue.ignoreHorizontalScrollbarInContentHeight)}}};const Qa=\"inUntrustedWorkspace\",Jr={allowedCharacters:\"editor.unicodeHighlight.allowedCharacters\",invisibleCharacters:\"editor.unicodeHighlight.invisibleCharacters\",nonBasicASCII:\"editor.unicodeHighlight.nonBasicASCII\",ambiguousCharacters:\"editor.unicodeHighlight.ambiguousCharacters\",includeComments:\"editor.unicodeHighlight.includeComments\",includeStrings:\"editor.unicodeHighlight.includeStrings\",allowedLocales:\"editor.unicodeHighlight.allowedLocales\"};class sAe extends Nn{constructor(){const e={nonBasicASCII:Qa,invisibleCharacters:!0,ambiguousCharacters:!0,includeComments:Qa,includeStrings:!0,allowedCharacters:{},allowedLocales:{_os:!0,_vscode:!0}};super(125,\"unicodeHighlight\",e,{[Jr.nonBasicASCII]:{restricted:!0,type:[\"boolean\",\"string\"],enum:[!0,!1,Qa],default:e.nonBasicASCII,description:v(\"unicodeHighlight.nonBasicASCII\",\"Controls whether all non-basic ASCII characters are highlighted. Only characters between U+0020 and U+007E, tab, line-feed and carriage-return are considered basic ASCII.\")},[Jr.invisibleCharacters]:{restricted:!0,type:\"boolean\",default:e.invisibleCharacters,description:v(\"unicodeHighlight.invisibleCharacters\",\"Controls whether characters that just reserve space or have no width at all are highlighted.\")},[Jr.ambiguousCharacters]:{restricted:!0,type:\"boolean\",default:e.ambiguousCharacters,description:v(\"unicodeHighlight.ambiguousCharacters\",\"Controls whether characters are highlighted that can be confused with basic ASCII characters, except those that are common in the current user locale.\")},[Jr.includeComments]:{restricted:!0,type:[\"boolean\",\"string\"],enum:[!0,!1,Qa],default:e.includeComments,description:v(\"unicodeHighlight.includeComments\",\"Controls whether characters in comments should also be subject to Unicode highlighting.\")},[Jr.includeStrings]:{restricted:!0,type:[\"boolean\",\"string\"],enum:[!0,!1,Qa],default:e.includeStrings,description:v(\"unicodeHighlight.includeStrings\",\"Controls whether characters in strings should also be subject to Unicode highlighting.\")},[Jr.allowedCharacters]:{restricted:!0,type:\"object\",default:e.allowedCharacters,description:v(\"unicodeHighlight.allowedCharacters\",\"Defines allowed characters that are not being highlighted.\"),additionalProperties:{type:\"boolean\"}},[Jr.allowedLocales]:{restricted:!0,type:\"object\",additionalProperties:{type:\"boolean\"},default:e.allowedLocales,description:v(\"unicodeHighlight.allowedLocales\",\"Unicode characters that are common in allowed locales are not being highlighted.\")}})}applyUpdate(e,t){let i=!1;t.allowedCharacters&&e&&(vl(e.allowedCharacters,t.allowedCharacters)||(e={...e,allowedCharacters:t.allowedCharacters},i=!0)),t.allowedLocales&&e&&(vl(e.allowedLocales,t.allowedLocales)||(e={...e,allowedLocales:t.allowedLocales},i=!0));const s=super.applyUpdate(e,t);return i?new sx(s.newValue,!0):s}validate(e){if(!e||typeof e!=\"object\")return this.defaultValue;const t=e;return{nonBasicASCII:j1(t.nonBasicASCII,Qa,[!0,!1,Qa]),invisibleCharacters:rt(t.invisibleCharacters,this.defaultValue.invisibleCharacters),ambiguousCharacters:rt(t.ambiguousCharacters,this.defaultValue.ambiguousCharacters),includeComments:j1(t.includeComments,Qa,[!0,!1,Qa]),includeStrings:j1(t.includeStrings,Qa,[!0,!1,Qa]),allowedCharacters:this.validateBooleanMap(e.allowedCharacters,this.defaultValue.allowedCharacters),allowedLocales:this.validateBooleanMap(e.allowedLocales,this.defaultValue.allowedLocales)}}validateBooleanMap(e,t){if(typeof e!=\"object\"||!e)return t;const i={};for(const[s,o]of Object.entries(e))o===!0&&(i[s]=!0);return i}}class oAe extends Nn{constructor(){const e={enabled:!0,mode:\"subwordSmart\",showToolbar:\"onHover\",suppressSuggestions:!1,keepOnBlur:!1,fontFamily:\"default\"};super(62,\"inlineSuggest\",e,{\"editor.inlineSuggest.enabled\":{type:\"boolean\",default:e.enabled,description:v(\"inlineSuggest.enabled\",\"Controls whether to automatically show inline suggestions in the editor.\")},\"editor.inlineSuggest.showToolbar\":{type:\"string\",default:e.showToolbar,enum:[\"always\",\"onHover\",\"never\"],enumDescriptions:[v(\"inlineSuggest.showToolbar.always\",\"Show the inline suggestion toolbar whenever an inline suggestion is shown.\"),v(\"inlineSuggest.showToolbar.onHover\",\"Show the inline suggestion toolbar when hovering over an inline suggestion.\"),v(\"inlineSuggest.showToolbar.never\",\"Never show the inline suggestion toolbar.\")],description:v(\"inlineSuggest.showToolbar\",\"Controls when to show the inline suggestion toolbar.\")},\"editor.inlineSuggest.suppressSuggestions\":{type:\"boolean\",default:e.suppressSuggestions,description:v(\"inlineSuggest.suppressSuggestions\",\"Controls how inline suggestions interact with the suggest widget. If enabled, the suggest widget is not shown automatically when inline suggestions are available.\")},\"editor.inlineSuggest.fontFamily\":{type:\"string\",default:e.fontFamily,description:v(\"inlineSuggest.fontFamily\",\"Controls the font family of the inline suggestions.\")}})}validate(e){if(!e||typeof e!=\"object\")return this.defaultValue;const t=e;return{enabled:rt(t.enabled,this.defaultValue.enabled),mode:ns(t.mode,this.defaultValue.mode,[\"prefix\",\"subword\",\"subwordSmart\"]),showToolbar:ns(t.showToolbar,this.defaultValue.showToolbar,[\"always\",\"onHover\",\"never\"]),suppressSuggestions:rt(t.suppressSuggestions,this.defaultValue.suppressSuggestions),keepOnBlur:rt(t.keepOnBlur,this.defaultValue.keepOnBlur),fontFamily:xr.string(t.fontFamily,this.defaultValue.fontFamily)}}}class rAe extends Nn{constructor(){const e={enabled:!1,showToolbar:\"onHover\",fontFamily:\"default\",keepOnBlur:!1,backgroundColoring:!1};super(63,\"experimentalInlineEdit\",e,{\"editor.experimentalInlineEdit.enabled\":{type:\"boolean\",default:e.enabled,description:v(\"inlineEdit.enabled\",\"Controls whether to show inline edits in the editor.\")},\"editor.experimentalInlineEdit.showToolbar\":{type:\"string\",default:e.showToolbar,enum:[\"always\",\"onHover\",\"never\"],enumDescriptions:[v(\"inlineEdit.showToolbar.always\",\"Show the inline edit toolbar whenever an inline suggestion is shown.\"),v(\"inlineEdit.showToolbar.onHover\",\"Show the inline edit toolbar when hovering over an inline suggestion.\"),v(\"inlineEdit.showToolbar.never\",\"Never show the inline edit toolbar.\")],description:v(\"inlineEdit.showToolbar\",\"Controls when to show the inline edit toolbar.\")},\"editor.experimentalInlineEdit.fontFamily\":{type:\"string\",default:e.fontFamily,description:v(\"inlineEdit.fontFamily\",\"Controls the font family of the inline edit.\")},\"editor.experimentalInlineEdit.backgroundColoring\":{type:\"boolean\",default:e.backgroundColoring,description:v(\"inlineEdit.backgroundColoring\",\"Controls whether to color the background of inline edits.\")}})}validate(e){if(!e||typeof e!=\"object\")return this.defaultValue;const t=e;return{enabled:rt(t.enabled,this.defaultValue.enabled),showToolbar:ns(t.showToolbar,this.defaultValue.showToolbar,[\"always\",\"onHover\",\"never\"]),fontFamily:xr.string(t.fontFamily,this.defaultValue.fontFamily),keepOnBlur:rt(t.keepOnBlur,this.defaultValue.keepOnBlur),backgroundColoring:rt(t.backgroundColoring,this.defaultValue.backgroundColoring)}}}class aAe extends Nn{constructor(){const e={enabled:zo.bracketPairColorizationOptions.enabled,independentColorPoolPerBracketType:zo.bracketPairColorizationOptions.independentColorPoolPerBracketType};super(15,\"bracketPairColorization\",e,{\"editor.bracketPairColorization.enabled\":{type:\"boolean\",default:e.enabled,markdownDescription:v(\"bracketPairColorization.enabled\",\"Controls whether bracket pair colorization is enabled or not. Use {0} to override the bracket highlight colors.\",\"`#workbench.colorCustomizations#`\")},\"editor.bracketPairColorization.independentColorPoolPerBracketType\":{type:\"boolean\",default:e.independentColorPoolPerBracketType,description:v(\"bracketPairColorization.independentColorPoolPerBracketType\",\"Controls whether each bracket type has its own independent color pool.\")}})}validate(e){if(!e||typeof e!=\"object\")return this.defaultValue;const t=e;return{enabled:rt(t.enabled,this.defaultValue.enabled),independentColorPoolPerBracketType:rt(t.independentColorPoolPerBracketType,this.defaultValue.independentColorPoolPerBracketType)}}}class lAe extends Nn{constructor(){const e={bracketPairs:!1,bracketPairsHorizontal:\"active\",highlightActiveBracketPair:!0,indentation:!0,highlightActiveIndentation:!0};super(16,\"guides\",e,{\"editor.guides.bracketPairs\":{type:[\"boolean\",\"string\"],enum:[!0,\"active\",!1],enumDescriptions:[v(\"editor.guides.bracketPairs.true\",\"Enables bracket pair guides.\"),v(\"editor.guides.bracketPairs.active\",\"Enables bracket pair guides only for the active bracket pair.\"),v(\"editor.guides.bracketPairs.false\",\"Disables bracket pair guides.\")],default:e.bracketPairs,description:v(\"editor.guides.bracketPairs\",\"Controls whether bracket pair guides are enabled or not.\")},\"editor.guides.bracketPairsHorizontal\":{type:[\"boolean\",\"string\"],enum:[!0,\"active\",!1],enumDescriptions:[v(\"editor.guides.bracketPairsHorizontal.true\",\"Enables horizontal guides as addition to vertical bracket pair guides.\"),v(\"editor.guides.bracketPairsHorizontal.active\",\"Enables horizontal guides only for the active bracket pair.\"),v(\"editor.guides.bracketPairsHorizontal.false\",\"Disables horizontal bracket pair guides.\")],default:e.bracketPairsHorizontal,description:v(\"editor.guides.bracketPairsHorizontal\",\"Controls whether horizontal bracket pair guides are enabled or not.\")},\"editor.guides.highlightActiveBracketPair\":{type:\"boolean\",default:e.highlightActiveBracketPair,description:v(\"editor.guides.highlightActiveBracketPair\",\"Controls whether the editor should highlight the active bracket pair.\")},\"editor.guides.indentation\":{type:\"boolean\",default:e.indentation,description:v(\"editor.guides.indentation\",\"Controls whether the editor should render indent guides.\")},\"editor.guides.highlightActiveIndentation\":{type:[\"boolean\",\"string\"],enum:[!0,\"always\",!1],enumDescriptions:[v(\"editor.guides.highlightActiveIndentation.true\",\"Highlights the active indent guide.\"),v(\"editor.guides.highlightActiveIndentation.always\",\"Highlights the active indent guide even if bracket guides are highlighted.\"),v(\"editor.guides.highlightActiveIndentation.false\",\"Do not highlight the active indent guide.\")],default:e.highlightActiveIndentation,description:v(\"editor.guides.highlightActiveIndentation\",\"Controls whether the editor should highlight the active indent guide.\")}})}validate(e){if(!e||typeof e!=\"object\")return this.defaultValue;const t=e;return{bracketPairs:j1(t.bracketPairs,this.defaultValue.bracketPairs,[!0,!1,\"active\"]),bracketPairsHorizontal:j1(t.bracketPairsHorizontal,this.defaultValue.bracketPairsHorizontal,[!0,!1,\"active\"]),highlightActiveBracketPair:rt(t.highlightActiveBracketPair,this.defaultValue.highlightActiveBracketPair),indentation:rt(t.indentation,this.defaultValue.indentation),highlightActiveIndentation:j1(t.highlightActiveIndentation,this.defaultValue.highlightActiveIndentation,[!0,!1,\"always\"])}}}function j1(n,e,t){const i=t.indexOf(n);return i===-1?e:t[i]}class cAe extends Nn{constructor(){const e={insertMode:\"insert\",filterGraceful:!0,snippetsPreventQuickSuggestions:!1,localityBonus:!1,shareSuggestSelections:!1,selectionMode:\"always\",showIcons:!0,showStatusBar:!1,preview:!1,previewMode:\"subwordSmart\",showInlineDetails:!0,showMethods:!0,showFunctions:!0,showConstructors:!0,showDeprecated:!0,matchOnWordStartOnly:!0,showFields:!0,showVariables:!0,showClasses:!0,showStructs:!0,showInterfaces:!0,showModules:!0,showProperties:!0,showEvents:!0,showOperators:!0,showUnits:!0,showValues:!0,showConstants:!0,showEnums:!0,showEnumMembers:!0,showKeywords:!0,showWords:!0,showColors:!0,showFiles:!0,showReferences:!0,showFolders:!0,showTypeParameters:!0,showSnippets:!0,showUsers:!0,showIssues:!0};super(118,\"suggest\",e,{\"editor.suggest.insertMode\":{type:\"string\",enum:[\"insert\",\"replace\"],enumDescriptions:[v(\"suggest.insertMode.insert\",\"Insert suggestion without overwriting text right of the cursor.\"),v(\"suggest.insertMode.replace\",\"Insert suggestion and overwrite text right of the cursor.\")],default:e.insertMode,description:v(\"suggest.insertMode\",\"Controls whether words are overwritten when accepting completions. Note that this depends on extensions opting into this feature.\")},\"editor.suggest.filterGraceful\":{type:\"boolean\",default:e.filterGraceful,description:v(\"suggest.filterGraceful\",\"Controls whether filtering and sorting suggestions accounts for small typos.\")},\"editor.suggest.localityBonus\":{type:\"boolean\",default:e.localityBonus,description:v(\"suggest.localityBonus\",\"Controls whether sorting favors words that appear close to the cursor.\")},\"editor.suggest.shareSuggestSelections\":{type:\"boolean\",default:e.shareSuggestSelections,markdownDescription:v(\"suggest.shareSuggestSelections\",\"Controls whether remembered suggestion selections are shared between multiple workspaces and windows (needs `#editor.suggestSelection#`).\")},\"editor.suggest.selectionMode\":{type:\"string\",enum:[\"always\",\"never\",\"whenTriggerCharacter\",\"whenQuickSuggestion\"],enumDescriptions:[v(\"suggest.insertMode.always\",\"Always select a suggestion when automatically triggering IntelliSense.\"),v(\"suggest.insertMode.never\",\"Never select a suggestion when automatically triggering IntelliSense.\"),v(\"suggest.insertMode.whenTriggerCharacter\",\"Select a suggestion only when triggering IntelliSense from a trigger character.\"),v(\"suggest.insertMode.whenQuickSuggestion\",\"Select a suggestion only when triggering IntelliSense as you type.\")],default:e.selectionMode,markdownDescription:v(\"suggest.selectionMode\",\"Controls whether a suggestion is selected when the widget shows. Note that this only applies to automatically triggered suggestions (`#editor.quickSuggestions#` and `#editor.suggestOnTriggerCharacters#`) and that a suggestion is always selected when explicitly invoked, e.g via `Ctrl+Space`.\")},\"editor.suggest.snippetsPreventQuickSuggestions\":{type:\"boolean\",default:e.snippetsPreventQuickSuggestions,description:v(\"suggest.snippetsPreventQuickSuggestions\",\"Controls whether an active snippet prevents quick suggestions.\")},\"editor.suggest.showIcons\":{type:\"boolean\",default:e.showIcons,description:v(\"suggest.showIcons\",\"Controls whether to show or hide icons in suggestions.\")},\"editor.suggest.showStatusBar\":{type:\"boolean\",default:e.showStatusBar,description:v(\"suggest.showStatusBar\",\"Controls the visibility of the status bar at the bottom of the suggest widget.\")},\"editor.suggest.preview\":{type:\"boolean\",default:e.preview,description:v(\"suggest.preview\",\"Controls whether to preview the suggestion outcome in the editor.\")},\"editor.suggest.showInlineDetails\":{type:\"boolean\",default:e.showInlineDetails,description:v(\"suggest.showInlineDetails\",\"Controls whether suggest details show inline with the label or only in the details widget.\")},\"editor.suggest.maxVisibleSuggestions\":{type:\"number\",deprecationMessage:v(\"suggest.maxVisibleSuggestions.dep\",\"This setting is deprecated. The suggest widget can now be resized.\")},\"editor.suggest.filteredTypes\":{type:\"object\",deprecationMessage:v(\"deprecated\",\"This setting is deprecated, please use separate settings like 'editor.suggest.showKeywords' or 'editor.suggest.showSnippets' instead.\")},\"editor.suggest.showMethods\":{type:\"boolean\",default:!0,markdownDescription:v(\"editor.suggest.showMethods\",\"When enabled IntelliSense shows `method`-suggestions.\")},\"editor.suggest.showFunctions\":{type:\"boolean\",default:!0,markdownDescription:v(\"editor.suggest.showFunctions\",\"When enabled IntelliSense shows `function`-suggestions.\")},\"editor.suggest.showConstructors\":{type:\"boolean\",default:!0,markdownDescription:v(\"editor.suggest.showConstructors\",\"When enabled IntelliSense shows `constructor`-suggestions.\")},\"editor.suggest.showDeprecated\":{type:\"boolean\",default:!0,markdownDescription:v(\"editor.suggest.showDeprecated\",\"When enabled IntelliSense shows `deprecated`-suggestions.\")},\"editor.suggest.matchOnWordStartOnly\":{type:\"boolean\",default:!0,markdownDescription:v(\"editor.suggest.matchOnWordStartOnly\",\"When enabled IntelliSense filtering requires that the first character matches on a word start. For example, `c` on `Console` or `WebContext` but _not_ on `description`. When disabled IntelliSense will show more results but still sorts them by match quality.\")},\"editor.suggest.showFields\":{type:\"boolean\",default:!0,markdownDescription:v(\"editor.suggest.showFields\",\"When enabled IntelliSense shows `field`-suggestions.\")},\"editor.suggest.showVariables\":{type:\"boolean\",default:!0,markdownDescription:v(\"editor.suggest.showVariables\",\"When enabled IntelliSense shows `variable`-suggestions.\")},\"editor.suggest.showClasses\":{type:\"boolean\",default:!0,markdownDescription:v(\"editor.suggest.showClasss\",\"When enabled IntelliSense shows `class`-suggestions.\")},\"editor.suggest.showStructs\":{type:\"boolean\",default:!0,markdownDescription:v(\"editor.suggest.showStructs\",\"When enabled IntelliSense shows `struct`-suggestions.\")},\"editor.suggest.showInterfaces\":{type:\"boolean\",default:!0,markdownDescription:v(\"editor.suggest.showInterfaces\",\"When enabled IntelliSense shows `interface`-suggestions.\")},\"editor.suggest.showModules\":{type:\"boolean\",default:!0,markdownDescription:v(\"editor.suggest.showModules\",\"When enabled IntelliSense shows `module`-suggestions.\")},\"editor.suggest.showProperties\":{type:\"boolean\",default:!0,markdownDescription:v(\"editor.suggest.showPropertys\",\"When enabled IntelliSense shows `property`-suggestions.\")},\"editor.suggest.showEvents\":{type:\"boolean\",default:!0,markdownDescription:v(\"editor.suggest.showEvents\",\"When enabled IntelliSense shows `event`-suggestions.\")},\"editor.suggest.showOperators\":{type:\"boolean\",default:!0,markdownDescription:v(\"editor.suggest.showOperators\",\"When enabled IntelliSense shows `operator`-suggestions.\")},\"editor.suggest.showUnits\":{type:\"boolean\",default:!0,markdownDescription:v(\"editor.suggest.showUnits\",\"When enabled IntelliSense shows `unit`-suggestions.\")},\"editor.suggest.showValues\":{type:\"boolean\",default:!0,markdownDescription:v(\"editor.suggest.showValues\",\"When enabled IntelliSense shows `value`-suggestions.\")},\"editor.suggest.showConstants\":{type:\"boolean\",default:!0,markdownDescription:v(\"editor.suggest.showConstants\",\"When enabled IntelliSense shows `constant`-suggestions.\")},\"editor.suggest.showEnums\":{type:\"boolean\",default:!0,markdownDescription:v(\"editor.suggest.showEnums\",\"When enabled IntelliSense shows `enum`-suggestions.\")},\"editor.suggest.showEnumMembers\":{type:\"boolean\",default:!0,markdownDescription:v(\"editor.suggest.showEnumMembers\",\"When enabled IntelliSense shows `enumMember`-suggestions.\")},\"editor.suggest.showKeywords\":{type:\"boolean\",default:!0,markdownDescription:v(\"editor.suggest.showKeywords\",\"When enabled IntelliSense shows `keyword`-suggestions.\")},\"editor.suggest.showWords\":{type:\"boolean\",default:!0,markdownDescription:v(\"editor.suggest.showTexts\",\"When enabled IntelliSense shows `text`-suggestions.\")},\"editor.suggest.showColors\":{type:\"boolean\",default:!0,markdownDescription:v(\"editor.suggest.showColors\",\"When enabled IntelliSense shows `color`-suggestions.\")},\"editor.suggest.showFiles\":{type:\"boolean\",default:!0,markdownDescription:v(\"editor.suggest.showFiles\",\"When enabled IntelliSense shows `file`-suggestions.\")},\"editor.suggest.showReferences\":{type:\"boolean\",default:!0,markdownDescription:v(\"editor.suggest.showReferences\",\"When enabled IntelliSense shows `reference`-suggestions.\")},\"editor.suggest.showCustomcolors\":{type:\"boolean\",default:!0,markdownDescription:v(\"editor.suggest.showCustomcolors\",\"When enabled IntelliSense shows `customcolor`-suggestions.\")},\"editor.suggest.showFolders\":{type:\"boolean\",default:!0,markdownDescription:v(\"editor.suggest.showFolders\",\"When enabled IntelliSense shows `folder`-suggestions.\")},\"editor.suggest.showTypeParameters\":{type:\"boolean\",default:!0,markdownDescription:v(\"editor.suggest.showTypeParameters\",\"When enabled IntelliSense shows `typeParameter`-suggestions.\")},\"editor.suggest.showSnippets\":{type:\"boolean\",default:!0,markdownDescription:v(\"editor.suggest.showSnippets\",\"When enabled IntelliSense shows `snippet`-suggestions.\")},\"editor.suggest.showUsers\":{type:\"boolean\",default:!0,markdownDescription:v(\"editor.suggest.showUsers\",\"When enabled IntelliSense shows `user`-suggestions.\")},\"editor.suggest.showIssues\":{type:\"boolean\",default:!0,markdownDescription:v(\"editor.suggest.showIssues\",\"When enabled IntelliSense shows `issues`-suggestions.\")}})}validate(e){if(!e||typeof e!=\"object\")return this.defaultValue;const t=e;return{insertMode:ns(t.insertMode,this.defaultValue.insertMode,[\"insert\",\"replace\"]),filterGraceful:rt(t.filterGraceful,this.defaultValue.filterGraceful),snippetsPreventQuickSuggestions:rt(t.snippetsPreventQuickSuggestions,this.defaultValue.filterGraceful),localityBonus:rt(t.localityBonus,this.defaultValue.localityBonus),shareSuggestSelections:rt(t.shareSuggestSelections,this.defaultValue.shareSuggestSelections),selectionMode:ns(t.selectionMode,this.defaultValue.selectionMode,[\"always\",\"never\",\"whenQuickSuggestion\",\"whenTriggerCharacter\"]),showIcons:rt(t.showIcons,this.defaultValue.showIcons),showStatusBar:rt(t.showStatusBar,this.defaultValue.showStatusBar),preview:rt(t.preview,this.defaultValue.preview),previewMode:ns(t.previewMode,this.defaultValue.previewMode,[\"prefix\",\"subword\",\"subwordSmart\"]),showInlineDetails:rt(t.showInlineDetails,this.defaultValue.showInlineDetails),showMethods:rt(t.showMethods,this.defaultValue.showMethods),showFunctions:rt(t.showFunctions,this.defaultValue.showFunctions),showConstructors:rt(t.showConstructors,this.defaultValue.showConstructors),showDeprecated:rt(t.showDeprecated,this.defaultValue.showDeprecated),matchOnWordStartOnly:rt(t.matchOnWordStartOnly,this.defaultValue.matchOnWordStartOnly),showFields:rt(t.showFields,this.defaultValue.showFields),showVariables:rt(t.showVariables,this.defaultValue.showVariables),showClasses:rt(t.showClasses,this.defaultValue.showClasses),showStructs:rt(t.showStructs,this.defaultValue.showStructs),showInterfaces:rt(t.showInterfaces,this.defaultValue.showInterfaces),showModules:rt(t.showModules,this.defaultValue.showModules),showProperties:rt(t.showProperties,this.defaultValue.showProperties),showEvents:rt(t.showEvents,this.defaultValue.showEvents),showOperators:rt(t.showOperators,this.defaultValue.showOperators),showUnits:rt(t.showUnits,this.defaultValue.showUnits),showValues:rt(t.showValues,this.defaultValue.showValues),showConstants:rt(t.showConstants,this.defaultValue.showConstants),showEnums:rt(t.showEnums,this.defaultValue.showEnums),showEnumMembers:rt(t.showEnumMembers,this.defaultValue.showEnumMembers),showKeywords:rt(t.showKeywords,this.defaultValue.showKeywords),showWords:rt(t.showWords,this.defaultValue.showWords),showColors:rt(t.showColors,this.defaultValue.showColors),showFiles:rt(t.showFiles,this.defaultValue.showFiles),showReferences:rt(t.showReferences,this.defaultValue.showReferences),showFolders:rt(t.showFolders,this.defaultValue.showFolders),showTypeParameters:rt(t.showTypeParameters,this.defaultValue.showTypeParameters),showSnippets:rt(t.showSnippets,this.defaultValue.showSnippets),showUsers:rt(t.showUsers,this.defaultValue.showUsers),showIssues:rt(t.showIssues,this.defaultValue.showIssues)}}}class dAe extends Nn{constructor(){super(113,\"smartSelect\",{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},{\"editor.smartSelect.selectLeadingAndTrailingWhitespace\":{description:v(\"selectLeadingAndTrailingWhitespace\",\"Whether leading and trailing whitespace should always be selected.\"),default:!0,type:\"boolean\"},\"editor.smartSelect.selectSubwords\":{description:v(\"selectSubwords\",\"Whether subwords (like 'foo' in 'fooBar' or 'foo_bar') should be selected.\"),default:!0,type:\"boolean\"}})}validate(e){return!e||typeof e!=\"object\"?this.defaultValue:{selectLeadingAndTrailingWhitespace:rt(e.selectLeadingAndTrailingWhitespace,this.defaultValue.selectLeadingAndTrailingWhitespace),selectSubwords:rt(e.selectSubwords,this.defaultValue.selectSubwords)}}}class uAe extends Nn{constructor(){const e=[];super(130,\"wordSegmenterLocales\",e,{anyOf:[{description:v(\"wordSegmenterLocales\",\"Locales to be used for word segmentation when doing word related navigations or operations. Specify the BCP 47 language tag of the word you wish to recognize (e.g., ja, zh-CN, zh-Hant-TW, etc.).\"),type:\"string\"},{description:v(\"wordSegmenterLocales\",\"Locales to be used for word segmentation when doing word related navigations or operations. Specify the BCP 47 language tag of the word you wish to recognize (e.g., ja, zh-CN, zh-Hant-TW, etc.).\"),type:\"array\",items:{type:\"string\"}}]})}validate(e){if(typeof e==\"string\"&&(e=[e]),Array.isArray(e)){const t=[];for(const i of e)if(typeof i==\"string\")try{Intl.Segmenter.supportedLocalesOf(i).length>0&&t.push(i)}catch{}return t}return this.defaultValue}}class hAe extends Nn{constructor(){super(138,\"wrappingIndent\",1,{\"editor.wrappingIndent\":{type:\"string\",enum:[\"none\",\"same\",\"indent\",\"deepIndent\"],enumDescriptions:[v(\"wrappingIndent.none\",\"No indentation. Wrapped lines begin at column 1.\"),v(\"wrappingIndent.same\",\"Wrapped lines get the same indentation as the parent.\"),v(\"wrappingIndent.indent\",\"Wrapped lines get +1 indentation toward the parent.\"),v(\"wrappingIndent.deepIndent\",\"Wrapped lines get +2 indentation toward the parent.\")],description:v(\"wrappingIndent\",\"Controls the indentation of wrapped lines.\"),default:\"same\"}})}validate(e){switch(e){case\"none\":return 0;case\"same\":return 1;case\"indent\":return 2;case\"deepIndent\":return 3}return 1}compute(e,t,i){return t.get(2)===2?0:i}}class fAe extends oD{constructor(){super(146)}compute(e,t,i){const s=t.get(145);return{isDominatedByLongLines:e.isDominatedByLongLines,isWordWrapMinified:s.isWordWrapMinified,isViewportWrapping:s.isViewportWrapping,wrappingColumn:s.wrappingColumn}}}class gAe extends Nn{constructor(){const e={enabled:!0,showDropSelector:\"afterDrop\"};super(36,\"dropIntoEditor\",e,{\"editor.dropIntoEditor.enabled\":{type:\"boolean\",default:e.enabled,markdownDescription:v(\"dropIntoEditor.enabled\",\"Controls whether you can drag and drop a file into a text editor by holding down the `Shift` key (instead of opening the file in an editor).\")},\"editor.dropIntoEditor.showDropSelector\":{type:\"string\",markdownDescription:v(\"dropIntoEditor.showDropSelector\",\"Controls if a widget is shown when dropping files into the editor. This widget lets you control how the file is dropped.\"),enum:[\"afterDrop\",\"never\"],enumDescriptions:[v(\"dropIntoEditor.showDropSelector.afterDrop\",\"Show the drop selector widget after a file is dropped into the editor.\"),v(\"dropIntoEditor.showDropSelector.never\",\"Never show the drop selector widget. Instead the default drop provider is always used.\")],default:\"afterDrop\"}})}validate(e){if(!e||typeof e!=\"object\")return this.defaultValue;const t=e;return{enabled:rt(t.enabled,this.defaultValue.enabled),showDropSelector:ns(t.showDropSelector,this.defaultValue.showDropSelector,[\"afterDrop\",\"never\"])}}}class pAe extends Nn{constructor(){const e={enabled:!0,showPasteSelector:\"afterPaste\"};super(85,\"pasteAs\",e,{\"editor.pasteAs.enabled\":{type:\"boolean\",default:e.enabled,markdownDescription:v(\"pasteAs.enabled\",\"Controls whether you can paste content in different ways.\")},\"editor.pasteAs.showPasteSelector\":{type:\"string\",markdownDescription:v(\"pasteAs.showPasteSelector\",\"Controls if a widget is shown when pasting content in to the editor. This widget lets you control how the file is pasted.\"),enum:[\"afterPaste\",\"never\"],enumDescriptions:[v(\"pasteAs.showPasteSelector.afterPaste\",\"Show the paste selector widget after content is pasted into the editor.\"),v(\"pasteAs.showPasteSelector.never\",\"Never show the paste selector widget. Instead the default pasting behavior is always used.\")],default:\"afterPaste\"}})}validate(e){if(!e||typeof e!=\"object\")return this.defaultValue;const t=e;return{enabled:rt(t.enabled,this.defaultValue.enabled),showPasteSelector:ns(t.showPasteSelector,this.defaultValue.showPasteSelector,[\"afterPaste\",\"never\"])}}}const mAe=\"Consolas, 'Courier New', monospace\",_Ae=\"Menlo, Monaco, 'Courier New', monospace\",vAe=\"'Droid Sans Mono', 'monospace', monospace\",ra={fontFamily:Xt?_Ae:Br?vAe:mAe,fontWeight:\"normal\",fontSize:Xt?12:14,lineHeight:0,letterSpacing:0},h1=[];function Ee(n){return h1[n.id]=n,n}const gu={acceptSuggestionOnCommitCharacter:Ee(new fi(0,\"acceptSuggestionOnCommitCharacter\",!0,{markdownDescription:v(\"acceptSuggestionOnCommitCharacter\",\"Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character.\")})),acceptSuggestionOnEnter:Ee(new qn(1,\"acceptSuggestionOnEnter\",\"on\",[\"on\",\"smart\",\"off\"],{markdownEnumDescriptions:[\"\",v(\"acceptSuggestionOnEnterSmart\",\"Only accept a suggestion with `Enter` when it makes a textual change.\"),\"\"],markdownDescription:v(\"acceptSuggestionOnEnter\",\"Controls whether suggestions should be accepted on `Enter`, in addition to `Tab`. Helps to avoid ambiguity between inserting new lines or accepting suggestions.\")})),accessibilitySupport:Ee(new N2e),accessibilityPageSize:Ee(new sn(3,\"accessibilityPageSize\",10,1,1073741824,{description:v(\"accessibilityPageSize\",\"Controls the number of lines in the editor that can be read out by a screen reader at once. When we detect a screen reader we automatically set the default to be 500. Warning: this has a performance implication for numbers larger than the default.\"),tags:[\"accessibility\"]})),ariaLabel:Ee(new xr(4,\"ariaLabel\",v(\"editorViewAccessibleLabel\",\"Editor content\"))),ariaRequired:Ee(new fi(5,\"ariaRequired\",!1,void 0)),screenReaderAnnounceInlineSuggestion:Ee(new fi(8,\"screenReaderAnnounceInlineSuggestion\",!0,{description:v(\"screenReaderAnnounceInlineSuggestion\",\"Control whether inline suggestions are announced by a screen reader.\"),tags:[\"accessibility\"]})),autoClosingBrackets:Ee(new qn(6,\"autoClosingBrackets\",\"languageDefined\",[\"always\",\"languageDefined\",\"beforeWhitespace\",\"never\"],{enumDescriptions:[\"\",v(\"editor.autoClosingBrackets.languageDefined\",\"Use language configurations to determine when to autoclose brackets.\"),v(\"editor.autoClosingBrackets.beforeWhitespace\",\"Autoclose brackets only when the cursor is to the left of whitespace.\"),\"\"],description:v(\"autoClosingBrackets\",\"Controls whether the editor should automatically close brackets after the user adds an opening bracket.\")})),autoClosingComments:Ee(new qn(7,\"autoClosingComments\",\"languageDefined\",[\"always\",\"languageDefined\",\"beforeWhitespace\",\"never\"],{enumDescriptions:[\"\",v(\"editor.autoClosingComments.languageDefined\",\"Use language configurations to determine when to autoclose comments.\"),v(\"editor.autoClosingComments.beforeWhitespace\",\"Autoclose comments only when the cursor is to the left of whitespace.\"),\"\"],description:v(\"autoClosingComments\",\"Controls whether the editor should automatically close comments after the user adds an opening comment.\")})),autoClosingDelete:Ee(new qn(9,\"autoClosingDelete\",\"auto\",[\"always\",\"auto\",\"never\"],{enumDescriptions:[\"\",v(\"editor.autoClosingDelete.auto\",\"Remove adjacent closing quotes or brackets only if they were automatically inserted.\"),\"\"],description:v(\"autoClosingDelete\",\"Controls whether the editor should remove adjacent closing quotes or brackets when deleting.\")})),autoClosingOvertype:Ee(new qn(10,\"autoClosingOvertype\",\"auto\",[\"always\",\"auto\",\"never\"],{enumDescriptions:[\"\",v(\"editor.autoClosingOvertype.auto\",\"Type over closing quotes or brackets only if they were automatically inserted.\"),\"\"],description:v(\"autoClosingOvertype\",\"Controls whether the editor should type over closing quotes or brackets.\")})),autoClosingQuotes:Ee(new qn(11,\"autoClosingQuotes\",\"languageDefined\",[\"always\",\"languageDefined\",\"beforeWhitespace\",\"never\"],{enumDescriptions:[\"\",v(\"editor.autoClosingQuotes.languageDefined\",\"Use language configurations to determine when to autoclose quotes.\"),v(\"editor.autoClosingQuotes.beforeWhitespace\",\"Autoclose quotes only when the cursor is to the left of whitespace.\"),\"\"],description:v(\"autoClosingQuotes\",\"Controls whether the editor should automatically close quotes after the user adds an opening quote.\")})),autoIndent:Ee(new wE(12,\"autoIndent\",4,\"full\",[\"none\",\"keep\",\"brackets\",\"advanced\",\"full\"],T2e,{enumDescriptions:[v(\"editor.autoIndent.none\",\"The editor will not insert indentation automatically.\"),v(\"editor.autoIndent.keep\",\"The editor will keep the current line's indentation.\"),v(\"editor.autoIndent.brackets\",\"The editor will keep the current line's indentation and honor language defined brackets.\"),v(\"editor.autoIndent.advanced\",\"The editor will keep the current line's indentation, honor language defined brackets and invoke special onEnterRules defined by languages.\"),v(\"editor.autoIndent.full\",\"The editor will keep the current line's indentation, honor language defined brackets, invoke special onEnterRules defined by languages, and honor indentationRules defined by languages.\")],description:v(\"autoIndent\",\"Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.\")})),automaticLayout:Ee(new fi(13,\"automaticLayout\",!1)),autoSurround:Ee(new qn(14,\"autoSurround\",\"languageDefined\",[\"languageDefined\",\"quotes\",\"brackets\",\"never\"],{enumDescriptions:[v(\"editor.autoSurround.languageDefined\",\"Use language configurations to determine when to automatically surround selections.\"),v(\"editor.autoSurround.quotes\",\"Surround with quotes but not brackets.\"),v(\"editor.autoSurround.brackets\",\"Surround with brackets but not quotes.\"),\"\"],description:v(\"autoSurround\",\"Controls whether the editor should automatically surround selections when typing quotes or brackets.\")})),bracketPairColorization:Ee(new aAe),bracketPairGuides:Ee(new lAe),stickyTabStops:Ee(new fi(116,\"stickyTabStops\",!1,{description:v(\"stickyTabStops\",\"Emulate selection behavior of tab characters when using spaces for indentation. Selection will stick to tab stops.\")})),codeLens:Ee(new fi(17,\"codeLens\",!0,{description:v(\"codeLens\",\"Controls whether the editor shows CodeLens.\")})),codeLensFontFamily:Ee(new xr(18,\"codeLensFontFamily\",\"\",{description:v(\"codeLensFontFamily\",\"Controls the font family for CodeLens.\")})),codeLensFontSize:Ee(new sn(19,\"codeLensFontSize\",0,0,100,{type:\"number\",default:0,minimum:0,maximum:100,markdownDescription:v(\"codeLensFontSize\",\"Controls the font size in pixels for CodeLens. When set to 0, 90% of `#editor.fontSize#` is used.\")})),colorDecorators:Ee(new fi(20,\"colorDecorators\",!0,{description:v(\"colorDecorators\",\"Controls whether the editor should render the inline color decorators and color picker.\")})),colorDecoratorActivatedOn:Ee(new qn(148,\"colorDecoratorsActivatedOn\",\"clickAndHover\",[\"clickAndHover\",\"hover\",\"click\"],{enumDescriptions:[v(\"editor.colorDecoratorActivatedOn.clickAndHover\",\"Make the color picker appear both on click and hover of the color decorator\"),v(\"editor.colorDecoratorActivatedOn.hover\",\"Make the color picker appear on hover of the color decorator\"),v(\"editor.colorDecoratorActivatedOn.click\",\"Make the color picker appear on click of the color decorator\")],description:v(\"colorDecoratorActivatedOn\",\"Controls the condition to make a color picker appear from a color decorator\")})),colorDecoratorsLimit:Ee(new sn(21,\"colorDecoratorsLimit\",500,1,1e6,{markdownDescription:v(\"colorDecoratorsLimit\",\"Controls the max number of color decorators that can be rendered in an editor at once.\")})),columnSelection:Ee(new fi(22,\"columnSelection\",!1,{description:v(\"columnSelection\",\"Enable that the selection with the mouse and keys is doing column selection.\")})),comments:Ee(new A2e),contextmenu:Ee(new fi(24,\"contextmenu\",!0)),copyWithSyntaxHighlighting:Ee(new fi(25,\"copyWithSyntaxHighlighting\",!0,{description:v(\"copyWithSyntaxHighlighting\",\"Controls whether syntax highlighting should be copied into the clipboard.\")})),cursorBlinking:Ee(new wE(26,\"cursorBlinking\",1,\"blink\",[\"blink\",\"smooth\",\"phase\",\"expand\",\"solid\"],R2e,{description:v(\"cursorBlinking\",\"Control the cursor animation style.\")})),cursorSmoothCaretAnimation:Ee(new qn(27,\"cursorSmoothCaretAnimation\",\"off\",[\"off\",\"explicit\",\"on\"],{enumDescriptions:[v(\"cursorSmoothCaretAnimation.off\",\"Smooth caret animation is disabled.\"),v(\"cursorSmoothCaretAnimation.explicit\",\"Smooth caret animation is enabled only when the user moves the cursor with an explicit gesture.\"),v(\"cursorSmoothCaretAnimation.on\",\"Smooth caret animation is always enabled.\")],description:v(\"cursorSmoothCaretAnimation\",\"Controls whether the smooth caret animation should be enabled.\")})),cursorStyle:Ee(new wE(28,\"cursorStyle\",vo.Line,\"line\",[\"line\",\"block\",\"underline\",\"line-thin\",\"block-outline\",\"underline-thin\"],M2e,{description:v(\"cursorStyle\",\"Controls the cursor style.\")})),cursorSurroundingLines:Ee(new sn(29,\"cursorSurroundingLines\",0,0,1073741824,{description:v(\"cursorSurroundingLines\",\"Controls the minimal number of visible leading lines (minimum 0) and trailing lines (minimum 1) surrounding the cursor. Known as 'scrollOff' or 'scrollOffset' in some other editors.\")})),cursorSurroundingLinesStyle:Ee(new qn(30,\"cursorSurroundingLinesStyle\",\"default\",[\"default\",\"all\"],{enumDescriptions:[v(\"cursorSurroundingLinesStyle.default\",\"`cursorSurroundingLines` is enforced only when triggered via the keyboard or API.\"),v(\"cursorSurroundingLinesStyle.all\",\"`cursorSurroundingLines` is enforced always.\")],markdownDescription:v(\"cursorSurroundingLinesStyle\",\"Controls when `#editor.cursorSurroundingLines#` should be enforced.\")})),cursorWidth:Ee(new sn(31,\"cursorWidth\",0,0,1073741824,{markdownDescription:v(\"cursorWidth\",\"Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.\")})),disableLayerHinting:Ee(new fi(32,\"disableLayerHinting\",!1)),disableMonospaceOptimizations:Ee(new fi(33,\"disableMonospaceOptimizations\",!1)),domReadOnly:Ee(new fi(34,\"domReadOnly\",!1)),dragAndDrop:Ee(new fi(35,\"dragAndDrop\",!0,{description:v(\"dragAndDrop\",\"Controls whether the editor should allow moving selections via drag and drop.\")})),emptySelectionClipboard:Ee(new O2e),dropIntoEditor:Ee(new gAe),stickyScroll:Ee(new U2e),experimentalWhitespaceRendering:Ee(new qn(38,\"experimentalWhitespaceRendering\",\"svg\",[\"svg\",\"font\",\"off\"],{enumDescriptions:[v(\"experimentalWhitespaceRendering.svg\",\"Use a new rendering method with svgs.\"),v(\"experimentalWhitespaceRendering.font\",\"Use a new rendering method with font characters.\"),v(\"experimentalWhitespaceRendering.off\",\"Use the stable rendering method.\")],description:v(\"experimentalWhitespaceRendering\",\"Controls whether whitespace is rendered with a new, experimental method.\")})),extraEditorClassName:Ee(new xr(39,\"extraEditorClassName\",\"\")),fastScrollSensitivity:Ee(new gl(40,\"fastScrollSensitivity\",5,n=>n<=0?5:n,{markdownDescription:v(\"fastScrollSensitivity\",\"Scrolling speed multiplier when pressing `Alt`.\")})),find:Ee(new F2e),fixedOverflowWidgets:Ee(new fi(42,\"fixedOverflowWidgets\",!1)),folding:Ee(new fi(43,\"folding\",!0,{description:v(\"folding\",\"Controls whether the editor has code folding enabled.\")})),foldingStrategy:Ee(new qn(44,\"foldingStrategy\",\"auto\",[\"auto\",\"indentation\"],{enumDescriptions:[v(\"foldingStrategy.auto\",\"Use a language-specific folding strategy if available, else the indentation-based one.\"),v(\"foldingStrategy.indentation\",\"Use the indentation-based folding strategy.\")],description:v(\"foldingStrategy\",\"Controls the strategy for computing folding ranges.\")})),foldingHighlight:Ee(new fi(45,\"foldingHighlight\",!0,{description:v(\"foldingHighlight\",\"Controls whether the editor should highlight folded ranges.\")})),foldingImportsByDefault:Ee(new fi(46,\"foldingImportsByDefault\",!1,{description:v(\"foldingImportsByDefault\",\"Controls whether the editor automatically collapses import ranges.\")})),foldingMaximumRegions:Ee(new sn(47,\"foldingMaximumRegions\",5e3,10,65e3,{description:v(\"foldingMaximumRegions\",\"The maximum number of foldable regions. Increasing this value may result in the editor becoming less responsive when the current source has a large number of foldable regions.\")})),unfoldOnClickAfterEndOfLine:Ee(new fi(48,\"unfoldOnClickAfterEndOfLine\",!1,{description:v(\"unfoldOnClickAfterEndOfLine\",\"Controls whether clicking on the empty content after a folded line will unfold the line.\")})),fontFamily:Ee(new xr(49,\"fontFamily\",ra.fontFamily,{description:v(\"fontFamily\",\"Controls the font family.\")})),fontInfo:Ee(new B2e),fontLigatures2:Ee(new cl),fontSize:Ee(new W2e),fontWeight:Ee(new Qu),fontVariations:Ee(new Fd),formatOnPaste:Ee(new fi(55,\"formatOnPaste\",!1,{description:v(\"formatOnPaste\",\"Controls whether the editor should automatically format the pasted content. A formatter must be available and the formatter should be able to format a range in a document.\")})),formatOnType:Ee(new fi(56,\"formatOnType\",!1,{description:v(\"formatOnType\",\"Controls whether the editor should automatically format the line after typing.\")})),glyphMargin:Ee(new fi(57,\"glyphMargin\",!0,{description:v(\"glyphMargin\",\"Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.\")})),gotoLocation:Ee(new H2e),hideCursorInOverviewRuler:Ee(new fi(59,\"hideCursorInOverviewRuler\",!1,{description:v(\"hideCursorInOverviewRuler\",\"Controls whether the cursor should be hidden in the overview ruler.\")})),hover:Ee(new V2e),inDiffEditor:Ee(new fi(61,\"inDiffEditor\",!1)),letterSpacing:Ee(new gl(64,\"letterSpacing\",ra.letterSpacing,n=>gl.clamp(n,-5,20),{description:v(\"letterSpacing\",\"Controls the letter spacing in pixels.\")})),lightbulb:Ee(new $2e),lineDecorationsWidth:Ee(new K2e),lineHeight:Ee(new q2e),lineNumbers:Ee(new eAe),lineNumbersMinChars:Ee(new sn(69,\"lineNumbersMinChars\",5,1,300)),linkedEditing:Ee(new fi(70,\"linkedEditing\",!1,{description:v(\"linkedEditing\",\"Controls whether the editor has linked editing enabled. Depending on the language, related symbols such as HTML tags, are updated while editing.\")})),links:Ee(new fi(71,\"links\",!0,{description:v(\"links\",\"Controls whether the editor should detect links and make them clickable.\")})),matchBrackets:Ee(new qn(72,\"matchBrackets\",\"always\",[\"always\",\"near\",\"never\"],{description:v(\"matchBrackets\",\"Highlight matching brackets.\")})),minimap:Ee(new G2e),mouseStyle:Ee(new qn(74,\"mouseStyle\",\"text\",[\"text\",\"default\",\"copy\"])),mouseWheelScrollSensitivity:Ee(new gl(75,\"mouseWheelScrollSensitivity\",1,n=>n===0?1:n,{markdownDescription:v(\"mouseWheelScrollSensitivity\",\"A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.\")})),mouseWheelZoom:Ee(new fi(76,\"mouseWheelZoom\",!1,{markdownDescription:Xt?v(\"mouseWheelZoom.mac\",\"Zoom the font of the editor when using mouse wheel and holding `Cmd`.\"):v(\"mouseWheelZoom\",\"Zoom the font of the editor when using mouse wheel and holding `Ctrl`.\")})),multiCursorMergeOverlapping:Ee(new fi(77,\"multiCursorMergeOverlapping\",!0,{description:v(\"multiCursorMergeOverlapping\",\"Merge multiple cursors when they are overlapping.\")})),multiCursorModifier:Ee(new wE(78,\"multiCursorModifier\",\"altKey\",\"alt\",[\"ctrlCmd\",\"alt\"],Z2e,{markdownEnumDescriptions:[v(\"multiCursorModifier.ctrlCmd\",\"Maps to `Control` on Windows and Linux and to `Command` on macOS.\"),v(\"multiCursorModifier.alt\",\"Maps to `Alt` on Windows and Linux and to `Option` on macOS.\")],markdownDescription:v({},\"The modifier to be used to add multiple cursors with the mouse. The Go to Definition and Open Link mouse gestures will adapt such that they do not conflict with the [multicursor modifier](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).\")})),multiCursorPaste:Ee(new qn(79,\"multiCursorPaste\",\"spread\",[\"spread\",\"full\"],{markdownEnumDescriptions:[v(\"multiCursorPaste.spread\",\"Each cursor pastes a single line of the text.\"),v(\"multiCursorPaste.full\",\"Each cursor pastes the full text.\")],markdownDescription:v(\"multiCursorPaste\",\"Controls pasting when the line count of the pasted text matches the cursor count.\")})),multiCursorLimit:Ee(new sn(80,\"multiCursorLimit\",1e4,1,1e5,{markdownDescription:v(\"multiCursorLimit\",\"Controls the max number of cursors that can be in an active editor at once.\")})),occurrencesHighlight:Ee(new qn(81,\"occurrencesHighlight\",\"singleFile\",[\"off\",\"singleFile\",\"multiFile\"],{markdownEnumDescriptions:[v(\"occurrencesHighlight.off\",\"Does not highlight occurrences.\"),v(\"occurrencesHighlight.singleFile\",\"Highlights occurrences only in the current file.\"),v(\"occurrencesHighlight.multiFile\",\"Experimental: Highlights occurrences across all valid open files.\")],markdownDescription:v(\"occurrencesHighlight\",\"Controls whether occurrences should be highlighted across open files.\")})),overviewRulerBorder:Ee(new fi(82,\"overviewRulerBorder\",!0,{description:v(\"overviewRulerBorder\",\"Controls whether a border should be drawn around the overview ruler.\")})),overviewRulerLanes:Ee(new sn(83,\"overviewRulerLanes\",3,0,3)),padding:Ee(new Y2e),pasteAs:Ee(new pAe),parameterHints:Ee(new X2e),peekWidgetDefaultFocus:Ee(new qn(87,\"peekWidgetDefaultFocus\",\"tree\",[\"tree\",\"editor\"],{enumDescriptions:[v(\"peekWidgetDefaultFocus.tree\",\"Focus the tree when opening peek\"),v(\"peekWidgetDefaultFocus.editor\",\"Focus the editor when opening peek\")],description:v(\"peekWidgetDefaultFocus\",\"Controls whether to focus the inline editor or the tree in the peek widget.\")})),definitionLinkOpensInPeek:Ee(new fi(88,\"definitionLinkOpensInPeek\",!1,{description:v(\"definitionLinkOpensInPeek\",\"Controls whether the Go to Definition mouse gesture always opens the peek widget.\")})),quickSuggestions:Ee(new J2e),quickSuggestionsDelay:Ee(new sn(90,\"quickSuggestionsDelay\",10,0,1073741824,{description:v(\"quickSuggestionsDelay\",\"Controls the delay in milliseconds after which quick suggestions will show up.\")})),readOnly:Ee(new fi(91,\"readOnly\",!1)),readOnlyMessage:Ee(new iAe),renameOnType:Ee(new fi(93,\"renameOnType\",!1,{description:v(\"renameOnType\",\"Controls whether the editor auto renames on type.\"),markdownDeprecationMessage:v(\"renameOnTypeDeprecate\",\"Deprecated, use `editor.linkedEditing` instead.\")})),renderControlCharacters:Ee(new fi(94,\"renderControlCharacters\",!0,{description:v(\"renderControlCharacters\",\"Controls whether the editor should render control characters.\"),restricted:!0})),renderFinalNewline:Ee(new qn(95,\"renderFinalNewline\",Br?\"dimmed\":\"on\",[\"off\",\"on\",\"dimmed\"],{description:v(\"renderFinalNewline\",\"Render last line number when the file ends with a newline.\")})),renderLineHighlight:Ee(new qn(96,\"renderLineHighlight\",\"line\",[\"none\",\"gutter\",\"line\",\"all\"],{enumDescriptions:[\"\",\"\",\"\",v(\"renderLineHighlight.all\",\"Highlights both the gutter and the current line.\")],description:v(\"renderLineHighlight\",\"Controls how the editor should render the current line highlight.\")})),renderLineHighlightOnlyWhenFocus:Ee(new fi(97,\"renderLineHighlightOnlyWhenFocus\",!1,{description:v(\"renderLineHighlightOnlyWhenFocus\",\"Controls if the editor should render the current line highlight only when the editor is focused.\")})),renderValidationDecorations:Ee(new qn(98,\"renderValidationDecorations\",\"editable\",[\"editable\",\"on\",\"off\"])),renderWhitespace:Ee(new qn(99,\"renderWhitespace\",\"selection\",[\"none\",\"boundary\",\"selection\",\"trailing\",\"all\"],{enumDescriptions:[\"\",v(\"renderWhitespace.boundary\",\"Render whitespace characters except for single spaces between words.\"),v(\"renderWhitespace.selection\",\"Render whitespace characters only on selected text.\"),v(\"renderWhitespace.trailing\",\"Render only trailing whitespace characters.\"),\"\"],description:v(\"renderWhitespace\",\"Controls how the editor should render whitespace characters.\")})),revealHorizontalRightPadding:Ee(new sn(100,\"revealHorizontalRightPadding\",15,0,1e3)),roundedSelection:Ee(new fi(101,\"roundedSelection\",!0,{description:v(\"roundedSelection\",\"Controls whether selections should have rounded corners.\")})),rulers:Ee(new tAe),scrollbar:Ee(new nAe),scrollBeyondLastColumn:Ee(new sn(104,\"scrollBeyondLastColumn\",4,0,1073741824,{description:v(\"scrollBeyondLastColumn\",\"Controls the number of extra characters beyond which the editor will scroll horizontally.\")})),scrollBeyondLastLine:Ee(new fi(105,\"scrollBeyondLastLine\",!0,{description:v(\"scrollBeyondLastLine\",\"Controls whether the editor will scroll beyond the last line.\")})),scrollPredominantAxis:Ee(new fi(106,\"scrollPredominantAxis\",!0,{description:v(\"scrollPredominantAxis\",\"Scroll only along the predominant axis when scrolling both vertically and horizontally at the same time. Prevents horizontal drift when scrolling vertically on a trackpad.\")})),selectionClipboard:Ee(new fi(107,\"selectionClipboard\",!0,{description:v(\"selectionClipboard\",\"Controls whether the Linux primary clipboard should be supported.\"),included:Br})),selectionHighlight:Ee(new fi(108,\"selectionHighlight\",!0,{description:v(\"selectionHighlight\",\"Controls whether the editor should highlight matches similar to the selection.\")})),selectOnLineNumbers:Ee(new fi(109,\"selectOnLineNumbers\",!0)),showFoldingControls:Ee(new qn(110,\"showFoldingControls\",\"mouseover\",[\"always\",\"never\",\"mouseover\"],{enumDescriptions:[v(\"showFoldingControls.always\",\"Always show the folding controls.\"),v(\"showFoldingControls.never\",\"Never show the folding controls and reduce the gutter size.\"),v(\"showFoldingControls.mouseover\",\"Only show the folding controls when the mouse is over the gutter.\")],description:v(\"showFoldingControls\",\"Controls when the folding controls on the gutter are shown.\")})),showUnused:Ee(new fi(111,\"showUnused\",!0,{description:v(\"showUnused\",\"Controls fading out of unused code.\")})),showDeprecated:Ee(new fi(140,\"showDeprecated\",!0,{description:v(\"showDeprecated\",\"Controls strikethrough deprecated variables.\")})),inlayHints:Ee(new j2e),snippetSuggestions:Ee(new qn(112,\"snippetSuggestions\",\"inline\",[\"top\",\"bottom\",\"inline\",\"none\"],{enumDescriptions:[v(\"snippetSuggestions.top\",\"Show snippet suggestions on top of other suggestions.\"),v(\"snippetSuggestions.bottom\",\"Show snippet suggestions below other suggestions.\"),v(\"snippetSuggestions.inline\",\"Show snippets suggestions with other suggestions.\"),v(\"snippetSuggestions.none\",\"Do not show snippet suggestions.\")],description:v(\"snippetSuggestions\",\"Controls whether snippets are shown with other suggestions and how they are sorted.\")})),smartSelect:Ee(new dAe),smoothScrolling:Ee(new fi(114,\"smoothScrolling\",!1,{description:v(\"smoothScrolling\",\"Controls whether the editor will scroll using an animation.\")})),stopRenderingLineAfter:Ee(new sn(117,\"stopRenderingLineAfter\",1e4,-1,1073741824)),suggest:Ee(new cAe),inlineSuggest:Ee(new oAe),inlineEdit:Ee(new rAe),inlineCompletionsAccessibilityVerbose:Ee(new fi(149,\"inlineCompletionsAccessibilityVerbose\",!1,{description:v(\"inlineCompletionsAccessibilityVerbose\",\"Controls whether the accessibility hint should be provided to screen reader users when an inline completion is shown.\")})),suggestFontSize:Ee(new sn(119,\"suggestFontSize\",0,0,1e3,{markdownDescription:v(\"suggestFontSize\",\"Font size for the suggest widget. When set to {0}, the value of {1} is used.\",\"`0`\",\"`#editor.fontSize#`\")})),suggestLineHeight:Ee(new sn(120,\"suggestLineHeight\",0,0,1e3,{markdownDescription:v(\"suggestLineHeight\",\"Line height for the suggest widget. When set to {0}, the value of {1} is used. The minimum value is 8.\",\"`0`\",\"`#editor.lineHeight#`\")})),suggestOnTriggerCharacters:Ee(new fi(121,\"suggestOnTriggerCharacters\",!0,{description:v(\"suggestOnTriggerCharacters\",\"Controls whether suggestions should automatically show up when typing trigger characters.\")})),suggestSelection:Ee(new qn(122,\"suggestSelection\",\"first\",[\"first\",\"recentlyUsed\",\"recentlyUsedByPrefix\"],{markdownEnumDescriptions:[v(\"suggestSelection.first\",\"Always select the first suggestion.\"),v(\"suggestSelection.recentlyUsed\",\"Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently.\"),v(\"suggestSelection.recentlyUsedByPrefix\",\"Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`.\")],description:v(\"suggestSelection\",\"Controls how suggestions are pre-selected when showing the suggest list.\")})),tabCompletion:Ee(new qn(123,\"tabCompletion\",\"off\",[\"on\",\"off\",\"onlySnippets\"],{enumDescriptions:[v(\"tabCompletion.on\",\"Tab complete will insert the best matching suggestion when pressing tab.\"),v(\"tabCompletion.off\",\"Disable tab completions.\"),v(\"tabCompletion.onlySnippets\",\"Tab complete snippets when their prefix match. Works best when 'quickSuggestions' aren't enabled.\")],description:v(\"tabCompletion\",\"Enables tab completions.\")})),tabIndex:Ee(new sn(124,\"tabIndex\",0,-1,1073741824)),unicodeHighlight:Ee(new sAe),unusualLineTerminators:Ee(new qn(126,\"unusualLineTerminators\",\"prompt\",[\"auto\",\"off\",\"prompt\"],{enumDescriptions:[v(\"unusualLineTerminators.auto\",\"Unusual line terminators are automatically removed.\"),v(\"unusualLineTerminators.off\",\"Unusual line terminators are ignored.\"),v(\"unusualLineTerminators.prompt\",\"Unusual line terminators prompt to be removed.\")],description:v(\"unusualLineTerminators\",\"Remove unusual line terminators that might cause problems.\")})),useShadowDOM:Ee(new fi(127,\"useShadowDOM\",!0)),useTabStops:Ee(new fi(128,\"useTabStops\",!0,{description:v(\"useTabStops\",\"Spaces and tabs are inserted and deleted in alignment with tab stops.\")})),wordBreak:Ee(new qn(129,\"wordBreak\",\"normal\",[\"normal\",\"keepAll\"],{markdownEnumDescriptions:[v(\"wordBreak.normal\",\"Use the default line break rule.\"),v(\"wordBreak.keepAll\",\"Word breaks should not be used for Chinese/Japanese/Korean (CJK) text. Non-CJK text behavior is the same as for normal.\")],description:v(\"wordBreak\",\"Controls the word break rules used for Chinese/Japanese/Korean (CJK) text.\")})),wordSegmenterLocales:Ee(new uAe),wordSeparators:Ee(new xr(131,\"wordSeparators\",Xre,{description:v(\"wordSeparators\",\"Characters that will be used as word separators when doing word related navigations or operations.\")})),wordWrap:Ee(new qn(132,\"wordWrap\",\"off\",[\"off\",\"on\",\"wordWrapColumn\",\"bounded\"],{markdownEnumDescriptions:[v(\"wordWrap.off\",\"Lines will never wrap.\"),v(\"wordWrap.on\",\"Lines will wrap at the viewport width.\"),v({},\"Lines will wrap at `#editor.wordWrapColumn#`.\"),v({},\"Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`.\")],description:v({},\"Controls how lines should wrap.\")})),wordWrapBreakAfterCharacters:Ee(new xr(133,\"wordWrapBreakAfterCharacters\",\" \t})]?|/&.,;¢°′″‰℃、。｡､￠，．：；？！％・･ゝゞヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻ｧｨｩｪｫｬｭｮｯｰ”〉》」』】〕）］｝｣\")),wordWrapBreakBeforeCharacters:Ee(new xr(134,\"wordWrapBreakBeforeCharacters\",\"([{‘“〈《「『【〔（［｛｢£¥＄￡￥+＋\")),wordWrapColumn:Ee(new sn(135,\"wordWrapColumn\",80,1,1073741824,{markdownDescription:v({},\"Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`.\")})),wordWrapOverride1:Ee(new qn(136,\"wordWrapOverride1\",\"inherit\",[\"off\",\"on\",\"inherit\"])),wordWrapOverride2:Ee(new qn(137,\"wordWrapOverride2\",\"inherit\",[\"off\",\"on\",\"inherit\"])),editorClassName:Ee(new P2e),defaultColorDecorators:Ee(new fi(147,\"defaultColorDecorators\",!1,{markdownDescription:v(\"defaultColorDecorators\",\"Controls whether inline color decorations should be shown using the default document color provider\")})),pixelRatio:Ee(new Q2e),tabFocusMode:Ee(new fi(144,\"tabFocusMode\",!1,{markdownDescription:v(\"tabFocusMode\",\"Controls whether the editor receives tabs or defers them to the workbench for navigation.\")})),layoutInfo:Ee(new U1),wrappingInfo:Ee(new fAe),wrappingIndent:Ee(new hAe),wrappingStrategy:Ee(new z2e)};class bAe{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?DC.isErrorNoTelemetry(e)?new DC(e.message+`\n\n`+e.stack):new Error(e.message+`\n\n`+e.stack):e},0)}}emit(e){this.listeners.forEach(t=>{t(e)})}onUnexpectedError(e){this.unexpectedErrorHandler(e),this.emit(e)}onUnexpectedExternalError(e){this.unexpectedErrorHandler(e)}}const tae=new bAe;function Mt(n){ld(n)||tae.onUnexpectedError(n)}function as(n){ld(n)||tae.onUnexpectedExternalError(n)}function iY(n){if(n instanceof Error){const{name:e,message:t}=n,i=n.stacktrace||n.stack;return{$isError:!0,name:e,message:t,stack:i,noTelemetry:DC.isErrorNoTelemetry(n)}}return n}const D2=\"Canceled\";function ld(n){return n instanceof nu?!0:n instanceof Error&&n.name===D2&&n.message===D2}class nu extends Error{constructor(){super(D2),this.name=this.message}}function CAe(){const n=new Error(D2);return n.name=n.message,n}function ic(n){return n?new Error(`Illegal argument: ${n}`):new Error(\"Illegal argument\")}function BV(n){return n?new Error(`Illegal state: ${n}`):new Error(\"Illegal state\")}class wAe extends Error{constructor(e){super(\"NotSupported\"),e&&(this.message=e)}}class DC extends Error{constructor(e){super(e),this.name=\"CodeExpectedError\"}static fromError(e){if(e instanceof DC)return e;const t=new DC;return t.message=e.message,t.stack=e.stack,t}static isErrorNoTelemetry(e){return e.name===\"CodeExpectedError\"}}class Gi extends Error{constructor(e){super(e||\"An unexpected bug occurred.\"),Object.setPrototypeOf(this,Gi.prototype)}}function Am(n,e){const t=this;let i=!1,s;return function(){return i||(i=!0,s=n.apply(t,arguments)),s}}function nM(n){return typeof n==\"object\"&&n!==null&&typeof n.dispose==\"function\"&&n.dispose.length===0}function tn(n){if(oi.is(n)){const e=[];for(const t of n)if(t)try{t.dispose()}catch(i){e.push(i)}if(e.length===1)throw e[0];if(e.length>1)throw new AggregateError(e,\"Encountered errors while disposing of store\");return Array.isArray(n)?[]:n}else if(n)return n.dispose(),n}function Jc(...n){return dt(()=>tn(n))}function dt(n){return{dispose:Am(()=>{n()})}}class be{constructor(){this._toDispose=new Set,this._isDisposed=!1}dispose(){this._isDisposed||(this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{tn(this._toDispose)}finally{this._toDispose.clear()}}add(e){if(!e)return e;if(e===this)throw new Error(\"Cannot register a disposable on itself!\");return this._isDisposed?be.DISABLE_DISPOSED_WARNING||console.warn(new Error(\"Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!\").stack):this._toDispose.add(e),e}deleteAndLeak(e){e&&this._toDispose.has(e)&&this._toDispose.delete(e)}}be.DISABLE_DISPOSED_WARNING=!1;class ne{constructor(){this._store=new be,this._store}dispose(){this._store.dispose()}_register(e){if(e===this)throw new Error(\"Cannot register a disposable on itself!\");return this._store.add(e)}}ne.None=Object.freeze({dispose(){}});class Qs{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(e){var t;this._isDisposed||e===this._value||((t=this._value)===null||t===void 0||t.dispose(),this._value=e)}clear(){this.value=void 0}dispose(){var e;this._isDisposed=!0,(e=this._value)===null||e===void 0||e.dispose(),this._value=void 0}}class yAe{constructor(e){this._disposable=e,this._counter=1}acquire(){return this._counter++,this}release(){return--this._counter===0&&this._disposable.dispose(),this}}class SAe{constructor(e){this.object=e}dispose(){}}class WV{constructor(){this._store=new Map,this._isDisposed=!1}dispose(){this._isDisposed=!0,this.clearAndDisposeAll()}clearAndDisposeAll(){if(this._store.size)try{tn(this._store.values())}finally{this._store.clear()}}get(e){return this._store.get(e)}set(e,t,i=!1){var s;this._isDisposed&&console.warn(new Error(\"Trying to add a disposable to a DisposableMap that has already been disposed of. The added object will be leaked!\").stack),i||(s=this._store.get(e))===null||s===void 0||s.dispose(),this._store.set(e,t)}deleteAndDispose(e){var t;(t=this._store.get(e))===null||t===void 0||t.dispose(),this._store.delete(e)}[Symbol.iterator](){return this._store[Symbol.iterator]()}}const xAe=globalThis.performance&&typeof globalThis.performance.now==\"function\";class xo{static create(e){return new xo(e)}constructor(e){this._now=xAe&&e===!1?Date.now:globalThis.performance.now.bind(globalThis.performance),this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}reset(){this._startTime=this._now(),this._stopTime=-1}elapsed(){return this._stopTime!==-1?this._stopTime-this._startTime:this._now()-this._startTime}}var Ae;(function(n){n.None=()=>ne.None;function e(O,M){return u(O,()=>{},0,void 0,!0,void 0,M)}n.defer=e;function t(O){return(M,z=null,K)=>{let ae=!1,se;return se=O(he=>{if(!ae)return se?se.dispose():ae=!0,M.call(z,he)},null,K),ae&&se.dispose(),se}}n.once=t;function i(O,M,z){return c((K,ae=null,se)=>O(he=>K.call(ae,M(he)),null,se),z)}n.map=i;function s(O,M,z){return c((K,ae=null,se)=>O(he=>{M(he),K.call(ae,he)},null,se),z)}n.forEach=s;function o(O,M,z){return c((K,ae=null,se)=>O(he=>M(he)&&K.call(ae,he),null,se),z)}n.filter=o;function r(O){return O}n.signal=r;function a(...O){return(M,z=null,K)=>{const ae=Jc(...O.map(se=>se(he=>M.call(z,he))));return d(ae,K)}}n.any=a;function l(O,M,z,K){let ae=z;return i(O,se=>(ae=M(ae,se),ae),K)}n.reduce=l;function c(O,M){let z;const K={onWillAddFirstListener(){z=O(ae.fire,ae)},onDidRemoveLastListener(){z==null||z.dispose()}},ae=new X(K);return M==null||M.add(ae),ae.event}function d(O,M){return M instanceof Array?M.push(O):M&&M.add(O),O}function u(O,M,z=100,K=!1,ae=!1,se,he){let me,De,lt,We=0,Ve;const Me={leakWarningThreshold:se,onWillAddFirstListener(){me=O(Oi=>{We++,De=M(De,Oi),K&&!lt&&(Zt.fire(De),De=void 0),Ve=()=>{const ni=De;De=void 0,lt=void 0,(!K||We>1)&&Zt.fire(ni),We=0},typeof z==\"number\"?(clearTimeout(lt),lt=setTimeout(Ve,z)):lt===void 0&&(lt=0,queueMicrotask(Ve))})},onWillRemoveListener(){ae&&We>0&&(Ve==null||Ve())},onDidRemoveLastListener(){Ve=void 0,me.dispose()}},Zt=new X(Me);return he==null||he.add(Zt),Zt.event}n.debounce=u;function h(O,M=0,z){return n.debounce(O,(K,ae)=>K?(K.push(ae),K):[ae],M,void 0,!0,void 0,z)}n.accumulate=h;function f(O,M=(K,ae)=>K===ae,z){let K=!0,ae;return o(O,se=>{const he=K||!M(se,ae);return K=!1,ae=se,he},z)}n.latch=f;function g(O,M,z){return[n.filter(O,M,z),n.filter(O,K=>!M(K),z)]}n.split=g;function p(O,M=!1,z=[],K){let ae=z.slice(),se=O(De=>{ae?ae.push(De):me.fire(De)});K&&K.add(se);const he=()=>{ae==null||ae.forEach(De=>me.fire(De)),ae=null},me=new X({onWillAddFirstListener(){se||(se=O(De=>me.fire(De)),K&&K.add(se))},onDidAddFirstListener(){ae&&(M?setTimeout(he):he())},onDidRemoveLastListener(){se&&se.dispose(),se=null}});return K&&K.add(me),me.event}n.buffer=p;function _(O,M){return(K,ae,se)=>{const he=M(new w);return O(function(me){const De=he.evaluate(me);De!==b&&K.call(ae,De)},void 0,se)}}n.chain=_;const b=Symbol(\"HaltChainable\");class w{constructor(){this.steps=[]}map(M){return this.steps.push(M),this}forEach(M){return this.steps.push(z=>(M(z),z)),this}filter(M){return this.steps.push(z=>M(z)?z:b),this}reduce(M,z){let K=z;return this.steps.push(ae=>(K=M(K,ae),K)),this}latch(M=(z,K)=>z===K){let z=!0,K;return this.steps.push(ae=>{const se=z||!M(ae,K);return z=!1,K=ae,se?ae:b}),this}evaluate(M){for(const z of this.steps)if(M=z(M),M===b)break;return M}}function y(O,M,z=K=>K){const K=(...me)=>he.fire(z(...me)),ae=()=>O.on(M,K),se=()=>O.removeListener(M,K),he=new X({onWillAddFirstListener:ae,onDidRemoveLastListener:se});return he.event}n.fromNodeEventEmitter=y;function S(O,M,z=K=>K){const K=(...me)=>he.fire(z(...me)),ae=()=>O.addEventListener(M,K),se=()=>O.removeEventListener(M,K),he=new X({onWillAddFirstListener:ae,onDidRemoveLastListener:se});return he.event}n.fromDOMEventEmitter=S;function x(O){return new Promise(M=>t(O)(M))}n.toPromise=x;function k(O){const M=new X;return O.then(z=>{M.fire(z)},()=>{M.fire(void 0)}).finally(()=>{M.dispose()}),M.event}n.fromPromise=k;function D(O,M,z){return M(z),O(K=>M(K))}n.runAndSubscribe=D;class I{constructor(M,z){this._observable=M,this._counter=0,this._hasChanged=!1;const K={onWillAddFirstListener:()=>{M.addObserver(this)},onDidRemoveLastListener:()=>{M.removeObserver(this)}};this.emitter=new X(K),z&&z.add(this.emitter)}beginUpdate(M){this._counter++}handlePossibleChange(M){}handleChange(M,z){this._hasChanged=!0}endUpdate(M){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function N(O,M){return new I(O,M).emitter.event}n.fromObservable=N;function P(O){return(M,z,K)=>{let ae=0,se=!1;const he={beginUpdate(){ae++},endUpdate(){ae--,ae===0&&(O.reportChanges(),se&&(se=!1,M.call(z)))},handlePossibleChange(){},handleChange(){se=!0}};O.addObserver(he),O.reportChanges();const me={dispose(){O.removeObserver(he)}};return K instanceof be?K.add(me):Array.isArray(K)&&K.push(me),me}}n.fromObservableLight=P})(Ae||(Ae={}));class IC{constructor(e){this.listenerCount=0,this.invocationCount=0,this.elapsedOverall=0,this.durations=[],this.name=`${e}_${IC._idPool++}`,IC.all.add(this)}start(e){this._stopWatch=new xo,this.listenerCount=e}stop(){if(this._stopWatch){const e=this._stopWatch.elapsed();this.durations.push(e),this.elapsedOverall+=e,this.invocationCount+=1,this._stopWatch=void 0}}}IC.all=new Set;IC._idPool=0;let LAe=-1;class kAe{constructor(e,t,i=Math.random().toString(18).slice(2,5)){this._errorHandler=e,this.threshold=t,this.name=i,this._warnCountdown=0}dispose(){var e;(e=this._stacks)===null||e===void 0||e.clear()}check(e,t){const i=this.threshold;if(i<=0||t<i)return;this._stacks||(this._stacks=new Map);const s=this._stacks.get(e.value)||0;if(this._stacks.set(e.value,s+1),this._warnCountdown-=1,this._warnCountdown<=0){this._warnCountdown=i*.5;const[o,r]=this.getMostFrequentStack(),a=`[${this.name}] potential listener LEAK detected, having ${t} listeners already. MOST frequent listener (${r}):`;console.warn(a),console.warn(o);const l=new DAe(a,o);this._errorHandler(l)}return()=>{const o=this._stacks.get(e.value)||0;this._stacks.set(e.value,o-1)}}getMostFrequentStack(){if(!this._stacks)return;let e,t=0;for(const[i,s]of this._stacks)(!e||t<s)&&(e=[i,s],t=s);return e}}class HV{static create(){var e;const t=new Error;return new HV((e=t.stack)!==null&&e!==void 0?e:\"\")}constructor(e){this.value=e}print(){console.warn(this.value.split(`\n`).slice(2).join(`\n`))}}class DAe extends Error{constructor(e,t){super(e),this.name=\"ListenerLeakError\",this.stack=t}}class IAe extends Error{constructor(e,t){super(e),this.name=\"ListenerRefusalError\",this.stack=t}}class wF{constructor(e){this.value=e}}const EAe=2;let X=class{constructor(e){var t,i,s,o,r,a;this._size=0,this._options=e,this._leakageMon=!((t=this._options)===null||t===void 0)&&t.leakWarningThreshold?new kAe((i=e==null?void 0:e.onListenerError)!==null&&i!==void 0?i:Mt,(o=(s=this._options)===null||s===void 0?void 0:s.leakWarningThreshold)!==null&&o!==void 0?o:LAe):void 0,this._perfMon=!((r=this._options)===null||r===void 0)&&r._profName?new IC(this._options._profName):void 0,this._deliveryQueue=(a=this._options)===null||a===void 0?void 0:a.deliveryQueue}dispose(){var e,t,i,s;this._disposed||(this._disposed=!0,((e=this._deliveryQueue)===null||e===void 0?void 0:e.current)===this&&this._deliveryQueue.reset(),this._listeners&&(this._listeners=void 0,this._size=0),(i=(t=this._options)===null||t===void 0?void 0:t.onDidRemoveLastListener)===null||i===void 0||i.call(t),(s=this._leakageMon)===null||s===void 0||s.dispose())}get event(){var e;return(e=this._event)!==null&&e!==void 0||(this._event=(t,i,s)=>{var o,r,a,l,c,d,u;if(this._leakageMon&&this._size>this._leakageMon.threshold**2){const p=`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;console.warn(p);const _=(o=this._leakageMon.getMostFrequentStack())!==null&&o!==void 0?o:[\"UNKNOWN stack\",-1],b=new IAe(`${p}. HINT: Stack shows most frequent listener (${_[1]}-times)`,_[0]);return(((r=this._options)===null||r===void 0?void 0:r.onListenerError)||Mt)(b),ne.None}if(this._disposed)return ne.None;i&&(t=t.bind(i));const h=new wF(t);let f;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(h.stack=HV.create(),f=this._leakageMon.check(h.stack,this._size+1)),this._listeners?this._listeners instanceof wF?((u=this._deliveryQueue)!==null&&u!==void 0||(this._deliveryQueue=new iae),this._listeners=[this._listeners,h]):this._listeners.push(h):((l=(a=this._options)===null||a===void 0?void 0:a.onWillAddFirstListener)===null||l===void 0||l.call(a,this),this._listeners=h,(d=(c=this._options)===null||c===void 0?void 0:c.onDidAddFirstListener)===null||d===void 0||d.call(c,this)),this._size++;const g=dt(()=>{f==null||f(),this._removeListener(h)});return s instanceof be?s.add(g):Array.isArray(s)&&s.push(g),g}),this._event}_removeListener(e){var t,i,s,o;if((i=(t=this._options)===null||t===void 0?void 0:t.onWillRemoveListener)===null||i===void 0||i.call(t,this),!this._listeners)return;if(this._size===1){this._listeners=void 0,(o=(s=this._options)===null||s===void 0?void 0:s.onDidRemoveLastListener)===null||o===void 0||o.call(s,this),this._size=0;return}const r=this._listeners,a=r.indexOf(e);if(a===-1)throw console.log(\"disposed?\",this._disposed),console.log(\"size?\",this._size),console.log(\"arr?\",JSON.stringify(this._listeners)),new Error(\"Attempted to dispose unknown listener\");this._size--,r[a]=void 0;const l=this._deliveryQueue.current===this;if(this._size*EAe<=r.length){let c=0;for(let d=0;d<r.length;d++)r[d]?r[c++]=r[d]:l&&(this._deliveryQueue.end--,c<this._deliveryQueue.i&&this._deliveryQueue.i--);r.length=c}}_deliver(e,t){var i;if(!e)return;const s=((i=this._options)===null||i===void 0?void 0:i.onListenerError)||Mt;if(!s){e.value(t);return}try{e.value(t)}catch(o){s(o)}}_deliverQueue(e){const t=e.current._listeners;for(;e.i<e.end;)this._deliver(t[e.i++],e.value);e.reset()}fire(e){var t,i,s,o;if(!((t=this._deliveryQueue)===null||t===void 0)&&t.current&&(this._deliverQueue(this._deliveryQueue),(i=this._perfMon)===null||i===void 0||i.stop()),(s=this._perfMon)===null||s===void 0||s.start(this._size),this._listeners)if(this._listeners instanceof wF)this._deliver(this._listeners,e);else{const r=this._deliveryQueue;r.enqueue(this,e,this._listeners.length),this._deliverQueue(r)}(o=this._perfMon)===null||o===void 0||o.stop()}hasListeners(){return this._size>0}};const TAe=()=>new iae;class iae{constructor(){this.i=-1,this.end=0}enqueue(e,t,i){this.i=0,this.end=i,this.current=e,this.value=t}reset(){this.i=this.end,this.current=void 0,this.value=void 0}}class a0 extends X{constructor(e){super(e),this._isPaused=0,this._eventQueue=new Tr,this._mergeFn=e==null?void 0:e.merge}pause(){this._isPaused++}resume(){if(this._isPaused!==0&&--this._isPaused===0)if(this._mergeFn){if(this._eventQueue.size>0){const e=Array.from(this._eventQueue);this._eventQueue.clear(),super.fire(this._mergeFn(e))}}else for(;!this._isPaused&&this._eventQueue.size!==0;)super.fire(this._eventQueue.shift())}fire(e){this._size&&(this._isPaused!==0?this._eventQueue.push(e):super.fire(e))}}class nae extends a0{constructor(e){var t;super(e),this._delay=(t=e.delay)!==null&&t!==void 0?t:100}fire(e){this._handle||(this.pause(),this._handle=setTimeout(()=>{this._handle=void 0,this.resume()},this._delay)),super.fire(e)}}class NAe extends X{constructor(e){super(e),this._queuedEvents=[],this._mergeFn=e==null?void 0:e.merge}fire(e){this.hasListeners()&&(this._queuedEvents.push(e),this._queuedEvents.length===1&&queueMicrotask(()=>{this._mergeFn?super.fire(this._mergeFn(this._queuedEvents)):this._queuedEvents.forEach(t=>super.fire(t)),this._queuedEvents=[]}))}}class AAe{constructor(){this.hasListeners=!1,this.events=[],this.emitter=new X({onWillAddFirstListener:()=>this.onFirstListenerAdd(),onDidRemoveLastListener:()=>this.onLastListenerRemove()})}get event(){return this.emitter.event}add(e){const t={event:e,listener:null};return this.events.push(t),this.hasListeners&&this.hook(t),dt(Am(()=>{this.hasListeners&&this.unhook(t);const s=this.events.indexOf(t);this.events.splice(s,1)}))}onFirstListenerAdd(){this.hasListeners=!0,this.events.forEach(e=>this.hook(e))}onLastListenerRemove(){this.hasListeners=!1,this.events.forEach(e=>this.unhook(e))}hook(e){e.listener=e.event(t=>this.emitter.fire(t))}unhook(e){var t;(t=e.listener)===null||t===void 0||t.dispose(),e.listener=null}dispose(){var e;this.emitter.dispose();for(const t of this.events)(e=t.listener)===null||e===void 0||e.dispose();this.events=[]}}class sM{constructor(){this.data=[]}wrapEvent(e,t,i){return(s,o,r)=>e(a=>{var l;const c=this.data[this.data.length-1];if(!t){c?c.buffers.push(()=>s.call(o,a)):s.call(o,a);return}const d=c;if(!d){s.call(o,t(i,a));return}(l=d.items)!==null&&l!==void 0||(d.items=[]),d.items.push(a),d.buffers.length===0&&c.buffers.push(()=>{var u;(u=d.reducedResult)!==null&&u!==void 0||(d.reducedResult=i?d.items.reduce(t,i):d.items.reduce(t)),s.call(o,d.reducedResult)})},void 0,r)}bufferEvents(e){const t={buffers:new Array};this.data.push(t);const i=e();return this.data.pop(),t.buffers.forEach(s=>s()),i}}class nY{constructor(){this.listening=!1,this.inputEvent=Ae.None,this.inputEventListener=ne.None,this.emitter=new X({onDidAddFirstListener:()=>{this.listening=!0,this.inputEventListener=this.inputEvent(this.emitter.fire,this.emitter)},onDidRemoveLastListener:()=>{this.listening=!1,this.inputEventListener.dispose()}}),this.event=this.emitter.event}set input(e){this.inputEvent=e,this.listening&&(this.inputEventListener.dispose(),this.inputEventListener=e(this.emitter.fire,this.emitter))}dispose(){this.inputEventListener.dispose(),this.emitter.dispose()}}const sae=Object.freeze(function(n,e){const t=setTimeout(n.bind(e),0);return{dispose(){clearTimeout(t)}}});var Qt;(function(n){function e(t){return t===n.None||t===n.Cancelled||t instanceof lN?!0:!t||typeof t!=\"object\"?!1:typeof t.isCancellationRequested==\"boolean\"&&typeof t.onCancellationRequested==\"function\"}n.isCancellationToken=e,n.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:Ae.None}),n.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:sae})})(Qt||(Qt={}));class lN{constructor(){this._isCancelled=!1,this._emitter=null}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?sae:(this._emitter||(this._emitter=new X),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}}let $n=class{constructor(e){this._token=void 0,this._parentListener=void 0,this._parentListener=e&&e.onCancellationRequested(this.cancel,this)}get token(){return this._token||(this._token=new lN),this._token}cancel(){this._token?this._token instanceof lN&&this._token.cancel():this._token=Qt.Cancelled}dispose(e=!1){var t;e&&this.cancel(),(t=this._parentListener)===null||t===void 0||t.dispose(),this._token?this._token instanceof lN&&this._token.dispose():this._token=Qt.None}};function sY(n){const e=new $n;return n.add({dispose(){e.cancel()}}),e.token}class VV{constructor(){this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}define(e,t){this._keyCodeToStr[e]=t,this._strToKeyCode[t.toLowerCase()]=e}keyCodeToStr(e){return this._keyCodeToStr[e]}strToKeyCode(e){return this._strToKeyCode[e.toLowerCase()]||0}}const cN=new VV,Q8=new VV,J8=new VV,oae=new Array(230),RAe=Object.create(null),MAe=Object.create(null),zV=[];for(let n=0;n<=193;n++)zV[n]=-1;(function(){const n=\"\",e=[[1,0,\"None\",0,\"unknown\",0,\"VK_UNKNOWN\",n,n],[1,1,\"Hyper\",0,n,0,n,n,n],[1,2,\"Super\",0,n,0,n,n,n],[1,3,\"Fn\",0,n,0,n,n,n],[1,4,\"FnLock\",0,n,0,n,n,n],[1,5,\"Suspend\",0,n,0,n,n,n],[1,6,\"Resume\",0,n,0,n,n,n],[1,7,\"Turbo\",0,n,0,n,n,n],[1,8,\"Sleep\",0,n,0,\"VK_SLEEP\",n,n],[1,9,\"WakeUp\",0,n,0,n,n,n],[0,10,\"KeyA\",31,\"A\",65,\"VK_A\",n,n],[0,11,\"KeyB\",32,\"B\",66,\"VK_B\",n,n],[0,12,\"KeyC\",33,\"C\",67,\"VK_C\",n,n],[0,13,\"KeyD\",34,\"D\",68,\"VK_D\",n,n],[0,14,\"KeyE\",35,\"E\",69,\"VK_E\",n,n],[0,15,\"KeyF\",36,\"F\",70,\"VK_F\",n,n],[0,16,\"KeyG\",37,\"G\",71,\"VK_G\",n,n],[0,17,\"KeyH\",38,\"H\",72,\"VK_H\",n,n],[0,18,\"KeyI\",39,\"I\",73,\"VK_I\",n,n],[0,19,\"KeyJ\",40,\"J\",74,\"VK_J\",n,n],[0,20,\"KeyK\",41,\"K\",75,\"VK_K\",n,n],[0,21,\"KeyL\",42,\"L\",76,\"VK_L\",n,n],[0,22,\"KeyM\",43,\"M\",77,\"VK_M\",n,n],[0,23,\"KeyN\",44,\"N\",78,\"VK_N\",n,n],[0,24,\"KeyO\",45,\"O\",79,\"VK_O\",n,n],[0,25,\"KeyP\",46,\"P\",80,\"VK_P\",n,n],[0,26,\"KeyQ\",47,\"Q\",81,\"VK_Q\",n,n],[0,27,\"KeyR\",48,\"R\",82,\"VK_R\",n,n],[0,28,\"KeyS\",49,\"S\",83,\"VK_S\",n,n],[0,29,\"KeyT\",50,\"T\",84,\"VK_T\",n,n],[0,30,\"KeyU\",51,\"U\",85,\"VK_U\",n,n],[0,31,\"KeyV\",52,\"V\",86,\"VK_V\",n,n],[0,32,\"KeyW\",53,\"W\",87,\"VK_W\",n,n],[0,33,\"KeyX\",54,\"X\",88,\"VK_X\",n,n],[0,34,\"KeyY\",55,\"Y\",89,\"VK_Y\",n,n],[0,35,\"KeyZ\",56,\"Z\",90,\"VK_Z\",n,n],[0,36,\"Digit1\",22,\"1\",49,\"VK_1\",n,n],[0,37,\"Digit2\",23,\"2\",50,\"VK_2\",n,n],[0,38,\"Digit3\",24,\"3\",51,\"VK_3\",n,n],[0,39,\"Digit4\",25,\"4\",52,\"VK_4\",n,n],[0,40,\"Digit5\",26,\"5\",53,\"VK_5\",n,n],[0,41,\"Digit6\",27,\"6\",54,\"VK_6\",n,n],[0,42,\"Digit7\",28,\"7\",55,\"VK_7\",n,n],[0,43,\"Digit8\",29,\"8\",56,\"VK_8\",n,n],[0,44,\"Digit9\",30,\"9\",57,\"VK_9\",n,n],[0,45,\"Digit0\",21,\"0\",48,\"VK_0\",n,n],[1,46,\"Enter\",3,\"Enter\",13,\"VK_RETURN\",n,n],[1,47,\"Escape\",9,\"Escape\",27,\"VK_ESCAPE\",n,n],[1,48,\"Backspace\",1,\"Backspace\",8,\"VK_BACK\",n,n],[1,49,\"Tab\",2,\"Tab\",9,\"VK_TAB\",n,n],[1,50,\"Space\",10,\"Space\",32,\"VK_SPACE\",n,n],[0,51,\"Minus\",88,\"-\",189,\"VK_OEM_MINUS\",\"-\",\"OEM_MINUS\"],[0,52,\"Equal\",86,\"=\",187,\"VK_OEM_PLUS\",\"=\",\"OEM_PLUS\"],[0,53,\"BracketLeft\",92,\"[\",219,\"VK_OEM_4\",\"[\",\"OEM_4\"],[0,54,\"BracketRight\",94,\"]\",221,\"VK_OEM_6\",\"]\",\"OEM_6\"],[0,55,\"Backslash\",93,\"\\\\\",220,\"VK_OEM_5\",\"\\\\\",\"OEM_5\"],[0,56,\"IntlHash\",0,n,0,n,n,n],[0,57,\"Semicolon\",85,\";\",186,\"VK_OEM_1\",\";\",\"OEM_1\"],[0,58,\"Quote\",95,\"'\",222,\"VK_OEM_7\",\"'\",\"OEM_7\"],[0,59,\"Backquote\",91,\"`\",192,\"VK_OEM_3\",\"`\",\"OEM_3\"],[0,60,\"Comma\",87,\",\",188,\"VK_OEM_COMMA\",\",\",\"OEM_COMMA\"],[0,61,\"Period\",89,\".\",190,\"VK_OEM_PERIOD\",\".\",\"OEM_PERIOD\"],[0,62,\"Slash\",90,\"/\",191,\"VK_OEM_2\",\"/\",\"OEM_2\"],[1,63,\"CapsLock\",8,\"CapsLock\",20,\"VK_CAPITAL\",n,n],[1,64,\"F1\",59,\"F1\",112,\"VK_F1\",n,n],[1,65,\"F2\",60,\"F2\",113,\"VK_F2\",n,n],[1,66,\"F3\",61,\"F3\",114,\"VK_F3\",n,n],[1,67,\"F4\",62,\"F4\",115,\"VK_F4\",n,n],[1,68,\"F5\",63,\"F5\",116,\"VK_F5\",n,n],[1,69,\"F6\",64,\"F6\",117,\"VK_F6\",n,n],[1,70,\"F7\",65,\"F7\",118,\"VK_F7\",n,n],[1,71,\"F8\",66,\"F8\",119,\"VK_F8\",n,n],[1,72,\"F9\",67,\"F9\",120,\"VK_F9\",n,n],[1,73,\"F10\",68,\"F10\",121,\"VK_F10\",n,n],[1,74,\"F11\",69,\"F11\",122,\"VK_F11\",n,n],[1,75,\"F12\",70,\"F12\",123,\"VK_F12\",n,n],[1,76,\"PrintScreen\",0,n,0,n,n,n],[1,77,\"ScrollLock\",84,\"ScrollLock\",145,\"VK_SCROLL\",n,n],[1,78,\"Pause\",7,\"PauseBreak\",19,\"VK_PAUSE\",n,n],[1,79,\"Insert\",19,\"Insert\",45,\"VK_INSERT\",n,n],[1,80,\"Home\",14,\"Home\",36,\"VK_HOME\",n,n],[1,81,\"PageUp\",11,\"PageUp\",33,\"VK_PRIOR\",n,n],[1,82,\"Delete\",20,\"Delete\",46,\"VK_DELETE\",n,n],[1,83,\"End\",13,\"End\",35,\"VK_END\",n,n],[1,84,\"PageDown\",12,\"PageDown\",34,\"VK_NEXT\",n,n],[1,85,\"ArrowRight\",17,\"RightArrow\",39,\"VK_RIGHT\",\"Right\",n],[1,86,\"ArrowLeft\",15,\"LeftArrow\",37,\"VK_LEFT\",\"Left\",n],[1,87,\"ArrowDown\",18,\"DownArrow\",40,\"VK_DOWN\",\"Down\",n],[1,88,\"ArrowUp\",16,\"UpArrow\",38,\"VK_UP\",\"Up\",n],[1,89,\"NumLock\",83,\"NumLock\",144,\"VK_NUMLOCK\",n,n],[1,90,\"NumpadDivide\",113,\"NumPad_Divide\",111,\"VK_DIVIDE\",n,n],[1,91,\"NumpadMultiply\",108,\"NumPad_Multiply\",106,\"VK_MULTIPLY\",n,n],[1,92,\"NumpadSubtract\",111,\"NumPad_Subtract\",109,\"VK_SUBTRACT\",n,n],[1,93,\"NumpadAdd\",109,\"NumPad_Add\",107,\"VK_ADD\",n,n],[1,94,\"NumpadEnter\",3,n,0,n,n,n],[1,95,\"Numpad1\",99,\"NumPad1\",97,\"VK_NUMPAD1\",n,n],[1,96,\"Numpad2\",100,\"NumPad2\",98,\"VK_NUMPAD2\",n,n],[1,97,\"Numpad3\",101,\"NumPad3\",99,\"VK_NUMPAD3\",n,n],[1,98,\"Numpad4\",102,\"NumPad4\",100,\"VK_NUMPAD4\",n,n],[1,99,\"Numpad5\",103,\"NumPad5\",101,\"VK_NUMPAD5\",n,n],[1,100,\"Numpad6\",104,\"NumPad6\",102,\"VK_NUMPAD6\",n,n],[1,101,\"Numpad7\",105,\"NumPad7\",103,\"VK_NUMPAD7\",n,n],[1,102,\"Numpad8\",106,\"NumPad8\",104,\"VK_NUMPAD8\",n,n],[1,103,\"Numpad9\",107,\"NumPad9\",105,\"VK_NUMPAD9\",n,n],[1,104,\"Numpad0\",98,\"NumPad0\",96,\"VK_NUMPAD0\",n,n],[1,105,\"NumpadDecimal\",112,\"NumPad_Decimal\",110,\"VK_DECIMAL\",n,n],[0,106,\"IntlBackslash\",97,\"OEM_102\",226,\"VK_OEM_102\",n,n],[1,107,\"ContextMenu\",58,\"ContextMenu\",93,n,n,n],[1,108,\"Power\",0,n,0,n,n,n],[1,109,\"NumpadEqual\",0,n,0,n,n,n],[1,110,\"F13\",71,\"F13\",124,\"VK_F13\",n,n],[1,111,\"F14\",72,\"F14\",125,\"VK_F14\",n,n],[1,112,\"F15\",73,\"F15\",126,\"VK_F15\",n,n],[1,113,\"F16\",74,\"F16\",127,\"VK_F16\",n,n],[1,114,\"F17\",75,\"F17\",128,\"VK_F17\",n,n],[1,115,\"F18\",76,\"F18\",129,\"VK_F18\",n,n],[1,116,\"F19\",77,\"F19\",130,\"VK_F19\",n,n],[1,117,\"F20\",78,\"F20\",131,\"VK_F20\",n,n],[1,118,\"F21\",79,\"F21\",132,\"VK_F21\",n,n],[1,119,\"F22\",80,\"F22\",133,\"VK_F22\",n,n],[1,120,\"F23\",81,\"F23\",134,\"VK_F23\",n,n],[1,121,\"F24\",82,\"F24\",135,\"VK_F24\",n,n],[1,122,\"Open\",0,n,0,n,n,n],[1,123,\"Help\",0,n,0,n,n,n],[1,124,\"Select\",0,n,0,n,n,n],[1,125,\"Again\",0,n,0,n,n,n],[1,126,\"Undo\",0,n,0,n,n,n],[1,127,\"Cut\",0,n,0,n,n,n],[1,128,\"Copy\",0,n,0,n,n,n],[1,129,\"Paste\",0,n,0,n,n,n],[1,130,\"Find\",0,n,0,n,n,n],[1,131,\"AudioVolumeMute\",117,\"AudioVolumeMute\",173,\"VK_VOLUME_MUTE\",n,n],[1,132,\"AudioVolumeUp\",118,\"AudioVolumeUp\",175,\"VK_VOLUME_UP\",n,n],[1,133,\"AudioVolumeDown\",119,\"AudioVolumeDown\",174,\"VK_VOLUME_DOWN\",n,n],[1,134,\"NumpadComma\",110,\"NumPad_Separator\",108,\"VK_SEPARATOR\",n,n],[0,135,\"IntlRo\",115,\"ABNT_C1\",193,\"VK_ABNT_C1\",n,n],[1,136,\"KanaMode\",0,n,0,n,n,n],[0,137,\"IntlYen\",0,n,0,n,n,n],[1,138,\"Convert\",0,n,0,n,n,n],[1,139,\"NonConvert\",0,n,0,n,n,n],[1,140,\"Lang1\",0,n,0,n,n,n],[1,141,\"Lang2\",0,n,0,n,n,n],[1,142,\"Lang3\",0,n,0,n,n,n],[1,143,\"Lang4\",0,n,0,n,n,n],[1,144,\"Lang5\",0,n,0,n,n,n],[1,145,\"Abort\",0,n,0,n,n,n],[1,146,\"Props\",0,n,0,n,n,n],[1,147,\"NumpadParenLeft\",0,n,0,n,n,n],[1,148,\"NumpadParenRight\",0,n,0,n,n,n],[1,149,\"NumpadBackspace\",0,n,0,n,n,n],[1,150,\"NumpadMemoryStore\",0,n,0,n,n,n],[1,151,\"NumpadMemoryRecall\",0,n,0,n,n,n],[1,152,\"NumpadMemoryClear\",0,n,0,n,n,n],[1,153,\"NumpadMemoryAdd\",0,n,0,n,n,n],[1,154,\"NumpadMemorySubtract\",0,n,0,n,n,n],[1,155,\"NumpadClear\",131,\"Clear\",12,\"VK_CLEAR\",n,n],[1,156,\"NumpadClearEntry\",0,n,0,n,n,n],[1,0,n,5,\"Ctrl\",17,\"VK_CONTROL\",n,n],[1,0,n,4,\"Shift\",16,\"VK_SHIFT\",n,n],[1,0,n,6,\"Alt\",18,\"VK_MENU\",n,n],[1,0,n,57,\"Meta\",91,\"VK_COMMAND\",n,n],[1,157,\"ControlLeft\",5,n,0,\"VK_LCONTROL\",n,n],[1,158,\"ShiftLeft\",4,n,0,\"VK_LSHIFT\",n,n],[1,159,\"AltLeft\",6,n,0,\"VK_LMENU\",n,n],[1,160,\"MetaLeft\",57,n,0,\"VK_LWIN\",n,n],[1,161,\"ControlRight\",5,n,0,\"VK_RCONTROL\",n,n],[1,162,\"ShiftRight\",4,n,0,\"VK_RSHIFT\",n,n],[1,163,\"AltRight\",6,n,0,\"VK_RMENU\",n,n],[1,164,\"MetaRight\",57,n,0,\"VK_RWIN\",n,n],[1,165,\"BrightnessUp\",0,n,0,n,n,n],[1,166,\"BrightnessDown\",0,n,0,n,n,n],[1,167,\"MediaPlay\",0,n,0,n,n,n],[1,168,\"MediaRecord\",0,n,0,n,n,n],[1,169,\"MediaFastForward\",0,n,0,n,n,n],[1,170,\"MediaRewind\",0,n,0,n,n,n],[1,171,\"MediaTrackNext\",124,\"MediaTrackNext\",176,\"VK_MEDIA_NEXT_TRACK\",n,n],[1,172,\"MediaTrackPrevious\",125,\"MediaTrackPrevious\",177,\"VK_MEDIA_PREV_TRACK\",n,n],[1,173,\"MediaStop\",126,\"MediaStop\",178,\"VK_MEDIA_STOP\",n,n],[1,174,\"Eject\",0,n,0,n,n,n],[1,175,\"MediaPlayPause\",127,\"MediaPlayPause\",179,\"VK_MEDIA_PLAY_PAUSE\",n,n],[1,176,\"MediaSelect\",128,\"LaunchMediaPlayer\",181,\"VK_MEDIA_LAUNCH_MEDIA_SELECT\",n,n],[1,177,\"LaunchMail\",129,\"LaunchMail\",180,\"VK_MEDIA_LAUNCH_MAIL\",n,n],[1,178,\"LaunchApp2\",130,\"LaunchApp2\",183,\"VK_MEDIA_LAUNCH_APP2\",n,n],[1,179,\"LaunchApp1\",0,n,0,\"VK_MEDIA_LAUNCH_APP1\",n,n],[1,180,\"SelectTask\",0,n,0,n,n,n],[1,181,\"LaunchScreenSaver\",0,n,0,n,n,n],[1,182,\"BrowserSearch\",120,\"BrowserSearch\",170,\"VK_BROWSER_SEARCH\",n,n],[1,183,\"BrowserHome\",121,\"BrowserHome\",172,\"VK_BROWSER_HOME\",n,n],[1,184,\"BrowserBack\",122,\"BrowserBack\",166,\"VK_BROWSER_BACK\",n,n],[1,185,\"BrowserForward\",123,\"BrowserForward\",167,\"VK_BROWSER_FORWARD\",n,n],[1,186,\"BrowserStop\",0,n,0,\"VK_BROWSER_STOP\",n,n],[1,187,\"BrowserRefresh\",0,n,0,\"VK_BROWSER_REFRESH\",n,n],[1,188,\"BrowserFavorites\",0,n,0,\"VK_BROWSER_FAVORITES\",n,n],[1,189,\"ZoomToggle\",0,n,0,n,n,n],[1,190,\"MailReply\",0,n,0,n,n,n],[1,191,\"MailForward\",0,n,0,n,n,n],[1,192,\"MailSend\",0,n,0,n,n,n],[1,0,n,114,\"KeyInComposition\",229,n,n,n],[1,0,n,116,\"ABNT_C2\",194,\"VK_ABNT_C2\",n,n],[1,0,n,96,\"OEM_8\",223,\"VK_OEM_8\",n,n],[1,0,n,0,n,0,\"VK_KANA\",n,n],[1,0,n,0,n,0,\"VK_HANGUL\",n,n],[1,0,n,0,n,0,\"VK_JUNJA\",n,n],[1,0,n,0,n,0,\"VK_FINAL\",n,n],[1,0,n,0,n,0,\"VK_HANJA\",n,n],[1,0,n,0,n,0,\"VK_KANJI\",n,n],[1,0,n,0,n,0,\"VK_CONVERT\",n,n],[1,0,n,0,n,0,\"VK_NONCONVERT\",n,n],[1,0,n,0,n,0,\"VK_ACCEPT\",n,n],[1,0,n,0,n,0,\"VK_MODECHANGE\",n,n],[1,0,n,0,n,0,\"VK_SELECT\",n,n],[1,0,n,0,n,0,\"VK_PRINT\",n,n],[1,0,n,0,n,0,\"VK_EXECUTE\",n,n],[1,0,n,0,n,0,\"VK_SNAPSHOT\",n,n],[1,0,n,0,n,0,\"VK_HELP\",n,n],[1,0,n,0,n,0,\"VK_APPS\",n,n],[1,0,n,0,n,0,\"VK_PROCESSKEY\",n,n],[1,0,n,0,n,0,\"VK_PACKET\",n,n],[1,0,n,0,n,0,\"VK_DBE_SBCSCHAR\",n,n],[1,0,n,0,n,0,\"VK_DBE_DBCSCHAR\",n,n],[1,0,n,0,n,0,\"VK_ATTN\",n,n],[1,0,n,0,n,0,\"VK_CRSEL\",n,n],[1,0,n,0,n,0,\"VK_EXSEL\",n,n],[1,0,n,0,n,0,\"VK_EREOF\",n,n],[1,0,n,0,n,0,\"VK_PLAY\",n,n],[1,0,n,0,n,0,\"VK_ZOOM\",n,n],[1,0,n,0,n,0,\"VK_NONAME\",n,n],[1,0,n,0,n,0,\"VK_PA1\",n,n],[1,0,n,0,n,0,\"VK_OEM_CLEAR\",n,n]],t=[],i=[];for(const s of e){const[o,r,a,l,c,d,u,h,f]=s;if(i[r]||(i[r]=!0,RAe[a]=r,MAe[a.toLowerCase()]=r,o&&(zV[r]=l)),!t[l]){if(t[l]=!0,!c)throw new Error(`String representation missing for key code ${l} around scan code ${a}`);cN.define(l,c),Q8.define(l,h||c),J8.define(l,f||h||c)}d&&(oae[d]=l)}})();var Wf;(function(n){function e(a){return cN.keyCodeToStr(a)}n.toString=e;function t(a){return cN.strToKeyCode(a)}n.fromString=t;function i(a){return Q8.keyCodeToStr(a)}n.toUserSettingsUS=i;function s(a){return J8.keyCodeToStr(a)}n.toUserSettingsGeneral=s;function o(a){return Q8.strToKeyCode(a)||J8.strToKeyCode(a)}n.fromUserSettings=o;function r(a){if(a>=98&&a<=113)return null;switch(a){case 16:return\"Up\";case 18:return\"Down\";case 15:return\"Left\";case 17:return\"Right\"}return cN.keyCodeToStr(a)}n.toElectronAccelerator=r})(Wf||(Wf={}));function Os(n,e){const t=(e&65535)<<16>>>0;return(n|t)>>>0}var oY={};let K1;const yF=globalThis.vscode;if(typeof yF<\"u\"&&typeof yF.process<\"u\"){const n=yF.process;K1={get platform(){return n.platform},get arch(){return n.arch},get env(){return n.env},cwd(){return n.cwd()}}}else typeof process<\"u\"?K1={get platform(){return process.platform},get arch(){return process.arch},get env(){return oY},cwd(){return oY.VSCODE_CWD||process.cwd()}}:K1={get platform(){return Mo?\"win32\":Xt?\"darwin\":\"linux\"},get arch(){},get env(){return{}},cwd(){return\"/\"}};const I2=K1.cwd,e7=K1.env,PAe=K1.platform,OAe=65,FAe=97,BAe=90,WAe=122,cm=46,or=47,Xa=92,lp=58,HAe=63;class rae extends Error{constructor(e,t,i){let s;typeof t==\"string\"&&t.indexOf(\"not \")===0?(s=\"must not be\",t=t.replace(/^not /,\"\")):s=\"must be\";const o=e.indexOf(\".\")!==-1?\"property\":\"argument\";let r=`The \"${e}\" ${o} ${s} of type ${t}`;r+=`. Received type ${typeof i}`,super(r),this.code=\"ERR_INVALID_ARG_TYPE\"}}function VAe(n,e){if(n===null||typeof n!=\"object\")throw new rae(e,\"Object\",n)}function so(n,e){if(typeof n!=\"string\")throw new rae(e,\"string\",n)}const h_=PAe===\"win32\";function Vi(n){return n===or||n===Xa}function t7(n){return n===or}function cp(n){return n>=OAe&&n<=BAe||n>=FAe&&n<=WAe}function E2(n,e,t,i){let s=\"\",o=0,r=-1,a=0,l=0;for(let c=0;c<=n.length;++c){if(c<n.length)l=n.charCodeAt(c);else{if(i(l))break;l=or}if(i(l)){if(!(r===c-1||a===1))if(a===2){if(s.length<2||o!==2||s.charCodeAt(s.length-1)!==cm||s.charCodeAt(s.length-2)!==cm){if(s.length>2){const d=s.lastIndexOf(t);d===-1?(s=\"\",o=0):(s=s.slice(0,d),o=s.length-1-s.lastIndexOf(t)),r=c,a=0;continue}else if(s.length!==0){s=\"\",o=0,r=c,a=0;continue}}e&&(s+=s.length>0?`${t}..`:\"..\",o=2)}else s.length>0?s+=`${t}${n.slice(r+1,c)}`:s=n.slice(r+1,c),o=c-r-1;r=c,a=0}else l===cm&&a!==-1?++a:a=-1}return s}function aae(n,e){VAe(e,\"pathObject\");const t=e.dir||e.root,i=e.base||`${e.name||\"\"}${e.ext||\"\"}`;return t?t===e.root?`${t}${i}`:`${t}${n}${i}`:i}const Ia={resolve(...n){let e=\"\",t=\"\",i=!1;for(let s=n.length-1;s>=-1;s--){let o;if(s>=0){if(o=n[s],so(o,\"path\"),o.length===0)continue}else e.length===0?o=I2():(o=e7[`=${e}`]||I2(),(o===void 0||o.slice(0,2).toLowerCase()!==e.toLowerCase()&&o.charCodeAt(2)===Xa)&&(o=`${e}\\\\`));const r=o.length;let a=0,l=\"\",c=!1;const d=o.charCodeAt(0);if(r===1)Vi(d)&&(a=1,c=!0);else if(Vi(d))if(c=!0,Vi(o.charCodeAt(1))){let u=2,h=u;for(;u<r&&!Vi(o.charCodeAt(u));)u++;if(u<r&&u!==h){const f=o.slice(h,u);for(h=u;u<r&&Vi(o.charCodeAt(u));)u++;if(u<r&&u!==h){for(h=u;u<r&&!Vi(o.charCodeAt(u));)u++;(u===r||u!==h)&&(l=`\\\\\\\\${f}\\\\${o.slice(h,u)}`,a=u)}}}else a=1;else cp(d)&&o.charCodeAt(1)===lp&&(l=o.slice(0,2),a=2,r>2&&Vi(o.charCodeAt(2))&&(c=!0,a=3));if(l.length>0)if(e.length>0){if(l.toLowerCase()!==e.toLowerCase())continue}else e=l;if(i){if(e.length>0)break}else if(t=`${o.slice(a)}\\\\${t}`,i=c,c&&e.length>0)break}return t=E2(t,!i,\"\\\\\",Vi),i?`${e}\\\\${t}`:`${e}${t}`||\".\"},normalize(n){so(n,\"path\");const e=n.length;if(e===0)return\".\";let t=0,i,s=!1;const o=n.charCodeAt(0);if(e===1)return t7(o)?\"\\\\\":n;if(Vi(o))if(s=!0,Vi(n.charCodeAt(1))){let a=2,l=a;for(;a<e&&!Vi(n.charCodeAt(a));)a++;if(a<e&&a!==l){const c=n.slice(l,a);for(l=a;a<e&&Vi(n.charCodeAt(a));)a++;if(a<e&&a!==l){for(l=a;a<e&&!Vi(n.charCodeAt(a));)a++;if(a===e)return`\\\\\\\\${c}\\\\${n.slice(l)}\\\\`;a!==l&&(i=`\\\\\\\\${c}\\\\${n.slice(l,a)}`,t=a)}}}else t=1;else cp(o)&&n.charCodeAt(1)===lp&&(i=n.slice(0,2),t=2,e>2&&Vi(n.charCodeAt(2))&&(s=!0,t=3));let r=t<e?E2(n.slice(t),!s,\"\\\\\",Vi):\"\";return r.length===0&&!s&&(r=\".\"),r.length>0&&Vi(n.charCodeAt(e-1))&&(r+=\"\\\\\"),i===void 0?s?`\\\\${r}`:r:s?`${i}\\\\${r}`:`${i}${r}`},isAbsolute(n){so(n,\"path\");const e=n.length;if(e===0)return!1;const t=n.charCodeAt(0);return Vi(t)||e>2&&cp(t)&&n.charCodeAt(1)===lp&&Vi(n.charCodeAt(2))},join(...n){if(n.length===0)return\".\";let e,t;for(let o=0;o<n.length;++o){const r=n[o];so(r,\"path\"),r.length>0&&(e===void 0?e=t=r:e+=`\\\\${r}`)}if(e===void 0)return\".\";let i=!0,s=0;if(typeof t==\"string\"&&Vi(t.charCodeAt(0))){++s;const o=t.length;o>1&&Vi(t.charCodeAt(1))&&(++s,o>2&&(Vi(t.charCodeAt(2))?++s:i=!1))}if(i){for(;s<e.length&&Vi(e.charCodeAt(s));)s++;s>=2&&(e=`\\\\${e.slice(s)}`)}return Ia.normalize(e)},relative(n,e){if(so(n,\"from\"),so(e,\"to\"),n===e)return\"\";const t=Ia.resolve(n),i=Ia.resolve(e);if(t===i||(n=t.toLowerCase(),e=i.toLowerCase(),n===e))return\"\";let s=0;for(;s<n.length&&n.charCodeAt(s)===Xa;)s++;let o=n.length;for(;o-1>s&&n.charCodeAt(o-1)===Xa;)o--;const r=o-s;let a=0;for(;a<e.length&&e.charCodeAt(a)===Xa;)a++;let l=e.length;for(;l-1>a&&e.charCodeAt(l-1)===Xa;)l--;const c=l-a,d=r<c?r:c;let u=-1,h=0;for(;h<d;h++){const g=n.charCodeAt(s+h);if(g!==e.charCodeAt(a+h))break;g===Xa&&(u=h)}if(h!==d){if(u===-1)return i}else{if(c>d){if(e.charCodeAt(a+h)===Xa)return i.slice(a+h+1);if(h===2)return i.slice(a+h)}r>d&&(n.charCodeAt(s+h)===Xa?u=h:h===2&&(u=3)),u===-1&&(u=0)}let f=\"\";for(h=s+u+1;h<=o;++h)(h===o||n.charCodeAt(h)===Xa)&&(f+=f.length===0?\"..\":\"\\\\..\");return a+=u,f.length>0?`${f}${i.slice(a,l)}`:(i.charCodeAt(a)===Xa&&++a,i.slice(a,l))},toNamespacedPath(n){if(typeof n!=\"string\"||n.length===0)return n;const e=Ia.resolve(n);if(e.length<=2)return n;if(e.charCodeAt(0)===Xa){if(e.charCodeAt(1)===Xa){const t=e.charCodeAt(2);if(t!==HAe&&t!==cm)return`\\\\\\\\?\\\\UNC\\\\${e.slice(2)}`}}else if(cp(e.charCodeAt(0))&&e.charCodeAt(1)===lp&&e.charCodeAt(2)===Xa)return`\\\\\\\\?\\\\${e}`;return n},dirname(n){so(n,\"path\");const e=n.length;if(e===0)return\".\";let t=-1,i=0;const s=n.charCodeAt(0);if(e===1)return Vi(s)?n:\".\";if(Vi(s)){if(t=i=1,Vi(n.charCodeAt(1))){let a=2,l=a;for(;a<e&&!Vi(n.charCodeAt(a));)a++;if(a<e&&a!==l){for(l=a;a<e&&Vi(n.charCodeAt(a));)a++;if(a<e&&a!==l){for(l=a;a<e&&!Vi(n.charCodeAt(a));)a++;if(a===e)return n;a!==l&&(t=i=a+1)}}}}else cp(s)&&n.charCodeAt(1)===lp&&(t=e>2&&Vi(n.charCodeAt(2))?3:2,i=t);let o=-1,r=!0;for(let a=e-1;a>=i;--a)if(Vi(n.charCodeAt(a))){if(!r){o=a;break}}else r=!1;if(o===-1){if(t===-1)return\".\";o=t}return n.slice(0,o)},basename(n,e){e!==void 0&&so(e,\"ext\"),so(n,\"path\");let t=0,i=-1,s=!0,o;if(n.length>=2&&cp(n.charCodeAt(0))&&n.charCodeAt(1)===lp&&(t=2),e!==void 0&&e.length>0&&e.length<=n.length){if(e===n)return\"\";let r=e.length-1,a=-1;for(o=n.length-1;o>=t;--o){const l=n.charCodeAt(o);if(Vi(l)){if(!s){t=o+1;break}}else a===-1&&(s=!1,a=o+1),r>=0&&(l===e.charCodeAt(r)?--r===-1&&(i=o):(r=-1,i=a))}return t===i?i=a:i===-1&&(i=n.length),n.slice(t,i)}for(o=n.length-1;o>=t;--o)if(Vi(n.charCodeAt(o))){if(!s){t=o+1;break}}else i===-1&&(s=!1,i=o+1);return i===-1?\"\":n.slice(t,i)},extname(n){so(n,\"path\");let e=0,t=-1,i=0,s=-1,o=!0,r=0;n.length>=2&&n.charCodeAt(1)===lp&&cp(n.charCodeAt(0))&&(e=i=2);for(let a=n.length-1;a>=e;--a){const l=n.charCodeAt(a);if(Vi(l)){if(!o){i=a+1;break}continue}s===-1&&(o=!1,s=a+1),l===cm?t===-1?t=a:r!==1&&(r=1):t!==-1&&(r=-1)}return t===-1||s===-1||r===0||r===1&&t===s-1&&t===i+1?\"\":n.slice(t,s)},format:aae.bind(null,\"\\\\\"),parse(n){so(n,\"path\");const e={root:\"\",dir:\"\",base:\"\",ext:\"\",name:\"\"};if(n.length===0)return e;const t=n.length;let i=0,s=n.charCodeAt(0);if(t===1)return Vi(s)?(e.root=e.dir=n,e):(e.base=e.name=n,e);if(Vi(s)){if(i=1,Vi(n.charCodeAt(1))){let u=2,h=u;for(;u<t&&!Vi(n.charCodeAt(u));)u++;if(u<t&&u!==h){for(h=u;u<t&&Vi(n.charCodeAt(u));)u++;if(u<t&&u!==h){for(h=u;u<t&&!Vi(n.charCodeAt(u));)u++;u===t?i=u:u!==h&&(i=u+1)}}}}else if(cp(s)&&n.charCodeAt(1)===lp){if(t<=2)return e.root=e.dir=n,e;if(i=2,Vi(n.charCodeAt(2))){if(t===3)return e.root=e.dir=n,e;i=3}}i>0&&(e.root=n.slice(0,i));let o=-1,r=i,a=-1,l=!0,c=n.length-1,d=0;for(;c>=i;--c){if(s=n.charCodeAt(c),Vi(s)){if(!l){r=c+1;break}continue}a===-1&&(l=!1,a=c+1),s===cm?o===-1?o=c:d!==1&&(d=1):o!==-1&&(d=-1)}return a!==-1&&(o===-1||d===0||d===1&&o===a-1&&o===r+1?e.base=e.name=n.slice(r,a):(e.name=n.slice(r,o),e.base=n.slice(r,a),e.ext=n.slice(o,a))),r>0&&r!==i?e.dir=n.slice(0,r-1):e.dir=e.root,e},sep:\"\\\\\",delimiter:\";\",win32:null,posix:null},zAe=(()=>{if(h_){const n=/\\\\/g;return()=>{const e=I2().replace(n,\"/\");return e.slice(e.indexOf(\"/\"))}}return()=>I2()})(),ks={resolve(...n){let e=\"\",t=!1;for(let i=n.length-1;i>=-1&&!t;i--){const s=i>=0?n[i]:zAe();so(s,\"path\"),s.length!==0&&(e=`${s}/${e}`,t=s.charCodeAt(0)===or)}return e=E2(e,!t,\"/\",t7),t?`/${e}`:e.length>0?e:\".\"},normalize(n){if(so(n,\"path\"),n.length===0)return\".\";const e=n.charCodeAt(0)===or,t=n.charCodeAt(n.length-1)===or;return n=E2(n,!e,\"/\",t7),n.length===0?e?\"/\":t?\"./\":\".\":(t&&(n+=\"/\"),e?`/${n}`:n)},isAbsolute(n){return so(n,\"path\"),n.length>0&&n.charCodeAt(0)===or},join(...n){if(n.length===0)return\".\";let e;for(let t=0;t<n.length;++t){const i=n[t];so(i,\"path\"),i.length>0&&(e===void 0?e=i:e+=`/${i}`)}return e===void 0?\".\":ks.normalize(e)},relative(n,e){if(so(n,\"from\"),so(e,\"to\"),n===e||(n=ks.resolve(n),e=ks.resolve(e),n===e))return\"\";const t=1,i=n.length,s=i-t,o=1,r=e.length-o,a=s<r?s:r;let l=-1,c=0;for(;c<a;c++){const u=n.charCodeAt(t+c);if(u!==e.charCodeAt(o+c))break;u===or&&(l=c)}if(c===a)if(r>a){if(e.charCodeAt(o+c)===or)return e.slice(o+c+1);if(c===0)return e.slice(o+c)}else s>a&&(n.charCodeAt(t+c)===or?l=c:c===0&&(l=0));let d=\"\";for(c=t+l+1;c<=i;++c)(c===i||n.charCodeAt(c)===or)&&(d+=d.length===0?\"..\":\"/..\");return`${d}${e.slice(o+l)}`},toNamespacedPath(n){return n},dirname(n){if(so(n,\"path\"),n.length===0)return\".\";const e=n.charCodeAt(0)===or;let t=-1,i=!0;for(let s=n.length-1;s>=1;--s)if(n.charCodeAt(s)===or){if(!i){t=s;break}}else i=!1;return t===-1?e?\"/\":\".\":e&&t===1?\"//\":n.slice(0,t)},basename(n,e){e!==void 0&&so(e,\"ext\"),so(n,\"path\");let t=0,i=-1,s=!0,o;if(e!==void 0&&e.length>0&&e.length<=n.length){if(e===n)return\"\";let r=e.length-1,a=-1;for(o=n.length-1;o>=0;--o){const l=n.charCodeAt(o);if(l===or){if(!s){t=o+1;break}}else a===-1&&(s=!1,a=o+1),r>=0&&(l===e.charCodeAt(r)?--r===-1&&(i=o):(r=-1,i=a))}return t===i?i=a:i===-1&&(i=n.length),n.slice(t,i)}for(o=n.length-1;o>=0;--o)if(n.charCodeAt(o)===or){if(!s){t=o+1;break}}else i===-1&&(s=!1,i=o+1);return i===-1?\"\":n.slice(t,i)},extname(n){so(n,\"path\");let e=-1,t=0,i=-1,s=!0,o=0;for(let r=n.length-1;r>=0;--r){const a=n.charCodeAt(r);if(a===or){if(!s){t=r+1;break}continue}i===-1&&(s=!1,i=r+1),a===cm?e===-1?e=r:o!==1&&(o=1):e!==-1&&(o=-1)}return e===-1||i===-1||o===0||o===1&&e===i-1&&e===t+1?\"\":n.slice(e,i)},format:aae.bind(null,\"/\"),parse(n){so(n,\"path\");const e={root:\"\",dir:\"\",base:\"\",ext:\"\",name:\"\"};if(n.length===0)return e;const t=n.charCodeAt(0)===or;let i;t?(e.root=\"/\",i=1):i=0;let s=-1,o=0,r=-1,a=!0,l=n.length-1,c=0;for(;l>=i;--l){const d=n.charCodeAt(l);if(d===or){if(!a){o=l+1;break}continue}r===-1&&(a=!1,r=l+1),d===cm?s===-1?s=l:c!==1&&(c=1):s!==-1&&(c=-1)}if(r!==-1){const d=o===0&&t?1:o;s===-1||c===0||c===1&&s===r-1&&s===o+1?e.base=e.name=n.slice(d,r):(e.name=n.slice(d,s),e.base=n.slice(d,r),e.ext=n.slice(s,r))}return o>0?e.dir=n.slice(0,o-1):t&&(e.dir=\"/\"),e},sep:\"/\",delimiter:\":\",win32:null,posix:null};ks.win32=Ia.win32=Ia;ks.posix=Ia.posix=ks;const lae=h_?Ia.normalize:ks.normalize,$Ae=h_?Ia.resolve:ks.resolve,UAe=h_?Ia.relative:ks.relative,cae=h_?Ia.dirname:ks.dirname,dm=h_?Ia.basename:ks.basename,jAe=h_?Ia.extname:ks.extname,jd=h_?Ia.sep:ks.sep,KAe=/^\\w[\\w\\d+.-]*$/,qAe=/^\\//,GAe=/^\\/\\//;function ZAe(n,e){if(!n.scheme&&e)throw new Error(`[UriError]: Scheme is missing: {scheme: \"\", authority: \"${n.authority}\", path: \"${n.path}\", query: \"${n.query}\", fragment: \"${n.fragment}\"}`);if(n.scheme&&!KAe.test(n.scheme))throw new Error(\"[UriError]: Scheme contains illegal characters.\");if(n.path){if(n.authority){if(!qAe.test(n.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash (\"/\") character')}else if(GAe.test(n.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")')}}function YAe(n,e){return!n&&!e?\"file\":n}function XAe(n,e){switch(n){case\"https\":case\"http\":case\"file\":e?e[0]!==Ad&&(e=Ad+e):e=Ad;break}return e}const _s=\"\",Ad=\"/\",QAe=/^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/;class pt{static isUri(e){return e instanceof pt?!0:e?typeof e.authority==\"string\"&&typeof e.fragment==\"string\"&&typeof e.path==\"string\"&&typeof e.query==\"string\"&&typeof e.scheme==\"string\"&&typeof e.fsPath==\"string\"&&typeof e.with==\"function\"&&typeof e.toString==\"function\":!1}constructor(e,t,i,s,o,r=!1){typeof e==\"object\"?(this.scheme=e.scheme||_s,this.authority=e.authority||_s,this.path=e.path||_s,this.query=e.query||_s,this.fragment=e.fragment||_s):(this.scheme=YAe(e,r),this.authority=t||_s,this.path=XAe(this.scheme,i||_s),this.query=s||_s,this.fragment=o||_s,ZAe(this,r))}get fsPath(){return T2(this,!1)}with(e){if(!e)return this;let{scheme:t,authority:i,path:s,query:o,fragment:r}=e;return t===void 0?t=this.scheme:t===null&&(t=_s),i===void 0?i=this.authority:i===null&&(i=_s),s===void 0?s=this.path:s===null&&(s=_s),o===void 0?o=this.query:o===null&&(o=_s),r===void 0?r=this.fragment:r===null&&(r=_s),t===this.scheme&&i===this.authority&&s===this.path&&o===this.query&&r===this.fragment?this:new Nb(t,i,s,o,r)}static parse(e,t=!1){const i=QAe.exec(e);return i?new Nb(i[2]||_s,yE(i[4]||_s),yE(i[5]||_s),yE(i[7]||_s),yE(i[9]||_s),t):new Nb(_s,_s,_s,_s,_s)}static file(e){let t=_s;if(Mo&&(e=e.replace(/\\\\/g,Ad)),e[0]===Ad&&e[1]===Ad){const i=e.indexOf(Ad,2);i===-1?(t=e.substring(2),e=Ad):(t=e.substring(2,i),e=e.substring(i)||Ad)}return new Nb(\"file\",t,e,_s,_s)}static from(e,t){return new Nb(e.scheme,e.authority,e.path,e.query,e.fragment,t)}static joinPath(e,...t){if(!e.path)throw new Error(\"[UriError]: cannot call joinPath on URI without path\");let i;return Mo&&e.scheme===\"file\"?i=pt.file(Ia.join(T2(e,!0),...t)).path:i=ks.join(e.path,...t),e.with({path:i})}toString(e=!1){return i7(this,e)}toJSON(){return this}static revive(e){var t,i;if(e){if(e instanceof pt)return e;{const s=new Nb(e);return s._formatted=(t=e.external)!==null&&t!==void 0?t:null,s._fsPath=e._sep===dae&&(i=e.fsPath)!==null&&i!==void 0?i:null,s}}else return e}}const dae=Mo?1:void 0;let Nb=class extends pt{constructor(){super(...arguments),this._formatted=null,this._fsPath=null}get fsPath(){return this._fsPath||(this._fsPath=T2(this,!1)),this._fsPath}toString(e=!1){return e?i7(this,!0):(this._formatted||(this._formatted=i7(this,!1)),this._formatted)}toJSON(){const e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=dae),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e}};const uae={58:\"%3A\",47:\"%2F\",63:\"%3F\",35:\"%23\",91:\"%5B\",93:\"%5D\",64:\"%40\",33:\"%21\",36:\"%24\",38:\"%26\",39:\"%27\",40:\"%28\",41:\"%29\",42:\"%2A\",43:\"%2B\",44:\"%2C\",59:\"%3B\",61:\"%3D\",32:\"%20\"};function rY(n,e,t){let i,s=-1;for(let o=0;o<n.length;o++){const r=n.charCodeAt(o);if(r>=97&&r<=122||r>=65&&r<=90||r>=48&&r<=57||r===45||r===46||r===95||r===126||e&&r===47||t&&r===91||t&&r===93||t&&r===58)s!==-1&&(i+=encodeURIComponent(n.substring(s,o)),s=-1),i!==void 0&&(i+=n.charAt(o));else{i===void 0&&(i=n.substr(0,o));const a=uae[r];a!==void 0?(s!==-1&&(i+=encodeURIComponent(n.substring(s,o)),s=-1),i+=a):s===-1&&(s=o)}}return s!==-1&&(i+=encodeURIComponent(n.substring(s))),i!==void 0?i:n}function JAe(n){let e;for(let t=0;t<n.length;t++){const i=n.charCodeAt(t);i===35||i===63?(e===void 0&&(e=n.substr(0,t)),e+=uae[i]):e!==void 0&&(e+=n[t])}return e!==void 0?e:n}function T2(n,e){let t;return n.authority&&n.path.length>1&&n.scheme===\"file\"?t=`//${n.authority}${n.path}`:n.path.charCodeAt(0)===47&&(n.path.charCodeAt(1)>=65&&n.path.charCodeAt(1)<=90||n.path.charCodeAt(1)>=97&&n.path.charCodeAt(1)<=122)&&n.path.charCodeAt(2)===58?e?t=n.path.substr(1):t=n.path[1].toLowerCase()+n.path.substr(2):t=n.path,Mo&&(t=t.replace(/\\//g,\"\\\\\")),t}function i7(n,e){const t=e?JAe:rY;let i=\"\",{scheme:s,authority:o,path:r,query:a,fragment:l}=n;if(s&&(i+=s,i+=\":\"),(o||s===\"file\")&&(i+=Ad,i+=Ad),o){let c=o.indexOf(\"@\");if(c!==-1){const d=o.substr(0,c);o=o.substr(c+1),c=d.lastIndexOf(\":\"),c===-1?i+=t(d,!1,!1):(i+=t(d.substr(0,c),!1,!1),i+=\":\",i+=t(d.substr(c+1),!1,!0)),i+=\"@\"}o=o.toLowerCase(),c=o.lastIndexOf(\":\"),c===-1?i+=t(o,!1,!0):(i+=t(o.substr(0,c),!1,!0),i+=o.substr(c))}if(r){if(r.length>=3&&r.charCodeAt(0)===47&&r.charCodeAt(2)===58){const c=r.charCodeAt(1);c>=65&&c<=90&&(r=`/${String.fromCharCode(c+32)}:${r.substr(3)}`)}else if(r.length>=2&&r.charCodeAt(1)===58){const c=r.charCodeAt(0);c>=65&&c<=90&&(r=`${String.fromCharCode(c+32)}:${r.substr(2)}`)}i+=t(r,!0,!1)}return a&&(i+=\"?\",i+=t(a,!1,!1)),l&&(i+=\"#\",i+=e?l:rY(l,!1,!1)),i}function hae(n){try{return decodeURIComponent(n)}catch{return n.length>3?n.substr(0,3)+hae(n.substr(3)):n}}const aY=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function yE(n){return n.match(aY)?n.replace(aY,e=>hae(e)):n}let ee=class iv{constructor(e,t){this.lineNumber=e,this.column=t}with(e=this.lineNumber,t=this.column){return e===this.lineNumber&&t===this.column?this:new iv(e,t)}delta(e=0,t=0){return this.with(this.lineNumber+e,this.column+t)}equals(e){return iv.equals(this,e)}static equals(e,t){return!e&&!t?!0:!!e&&!!t&&e.lineNumber===t.lineNumber&&e.column===t.column}isBefore(e){return iv.isBefore(this,e)}static isBefore(e,t){return e.lineNumber<t.lineNumber?!0:t.lineNumber<e.lineNumber?!1:e.column<t.column}isBeforeOrEqual(e){return iv.isBeforeOrEqual(this,e)}static isBeforeOrEqual(e,t){return e.lineNumber<t.lineNumber?!0:t.lineNumber<e.lineNumber?!1:e.column<=t.column}static compare(e,t){const i=e.lineNumber|0,s=t.lineNumber|0;if(i===s){const o=e.column|0,r=t.column|0;return o-r}return i-s}clone(){return new iv(this.lineNumber,this.column)}toString(){return\"(\"+this.lineNumber+\",\"+this.column+\")\"}static lift(e){return new iv(e.lineNumber,e.column)}static isIPosition(e){return e&&typeof e.lineNumber==\"number\"&&typeof e.column==\"number\"}toJSON(){return{lineNumber:this.lineNumber,column:this.column}}},A=class go{constructor(e,t,i,s){e>i||e===i&&t>s?(this.startLineNumber=i,this.startColumn=s,this.endLineNumber=e,this.endColumn=t):(this.startLineNumber=e,this.startColumn=t,this.endLineNumber=i,this.endColumn=s)}isEmpty(){return go.isEmpty(this)}static isEmpty(e){return e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn}containsPosition(e){return go.containsPosition(this,e)}static containsPosition(e,t){return!(t.lineNumber<e.startLineNumber||t.lineNumber>e.endLineNumber||t.lineNumber===e.startLineNumber&&t.column<e.startColumn||t.lineNumber===e.endLineNumber&&t.column>e.endColumn)}static strictContainsPosition(e,t){return!(t.lineNumber<e.startLineNumber||t.lineNumber>e.endLineNumber||t.lineNumber===e.startLineNumber&&t.column<=e.startColumn||t.lineNumber===e.endLineNumber&&t.column>=e.endColumn)}containsRange(e){return go.containsRange(this,e)}static containsRange(e,t){return!(t.startLineNumber<e.startLineNumber||t.endLineNumber<e.startLineNumber||t.startLineNumber>e.endLineNumber||t.endLineNumber>e.endLineNumber||t.startLineNumber===e.startLineNumber&&t.startColumn<e.startColumn||t.endLineNumber===e.endLineNumber&&t.endColumn>e.endColumn)}strictContainsRange(e){return go.strictContainsRange(this,e)}static strictContainsRange(e,t){return!(t.startLineNumber<e.startLineNumber||t.endLineNumber<e.startLineNumber||t.startLineNumber>e.endLineNumber||t.endLineNumber>e.endLineNumber||t.startLineNumber===e.startLineNumber&&t.startColumn<=e.startColumn||t.endLineNumber===e.endLineNumber&&t.endColumn>=e.endColumn)}plusRange(e){return go.plusRange(this,e)}static plusRange(e,t){let i,s,o,r;return t.startLineNumber<e.startLineNumber?(i=t.startLineNumber,s=t.startColumn):t.startLineNumber===e.startLineNumber?(i=t.startLineNumber,s=Math.min(t.startColumn,e.startColumn)):(i=e.startLineNumber,s=e.startColumn),t.endLineNumber>e.endLineNumber?(o=t.endLineNumber,r=t.endColumn):t.endLineNumber===e.endLineNumber?(o=t.endLineNumber,r=Math.max(t.endColumn,e.endColumn)):(o=e.endLineNumber,r=e.endColumn),new go(i,s,o,r)}intersectRanges(e){return go.intersectRanges(this,e)}static intersectRanges(e,t){let i=e.startLineNumber,s=e.startColumn,o=e.endLineNumber,r=e.endColumn;const a=t.startLineNumber,l=t.startColumn,c=t.endLineNumber,d=t.endColumn;return i<a?(i=a,s=l):i===a&&(s=Math.max(s,l)),o>c?(o=c,r=d):o===c&&(r=Math.min(r,d)),i>o||i===o&&s>r?null:new go(i,s,o,r)}equalsRange(e){return go.equalsRange(this,e)}static equalsRange(e,t){return!e&&!t?!0:!!e&&!!t&&e.startLineNumber===t.startLineNumber&&e.startColumn===t.startColumn&&e.endLineNumber===t.endLineNumber&&e.endColumn===t.endColumn}getEndPosition(){return go.getEndPosition(this)}static getEndPosition(e){return new ee(e.endLineNumber,e.endColumn)}getStartPosition(){return go.getStartPosition(this)}static getStartPosition(e){return new ee(e.startLineNumber,e.startColumn)}toString(){return\"[\"+this.startLineNumber+\",\"+this.startColumn+\" -> \"+this.endLineNumber+\",\"+this.endColumn+\"]\"}setEndPosition(e,t){return new go(this.startLineNumber,this.startColumn,e,t)}setStartPosition(e,t){return new go(e,t,this.endLineNumber,this.endColumn)}collapseToStart(){return go.collapseToStart(this)}static collapseToStart(e){return new go(e.startLineNumber,e.startColumn,e.startLineNumber,e.startColumn)}collapseToEnd(){return go.collapseToEnd(this)}static collapseToEnd(e){return new go(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn)}delta(e){return new go(this.startLineNumber+e,this.startColumn,this.endLineNumber+e,this.endColumn)}static fromPositions(e,t=e){return new go(e.lineNumber,e.column,t.lineNumber,t.column)}static lift(e){return e?new go(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn):null}static isIRange(e){return e&&typeof e.startLineNumber==\"number\"&&typeof e.startColumn==\"number\"&&typeof e.endLineNumber==\"number\"&&typeof e.endColumn==\"number\"}static areIntersectingOrTouching(e,t){return!(e.endLineNumber<t.startLineNumber||e.endLineNumber===t.startLineNumber&&e.endColumn<t.startColumn||t.endLineNumber<e.startLineNumber||t.endLineNumber===e.startLineNumber&&t.endColumn<e.startColumn)}static areIntersecting(e,t){return!(e.endLineNumber<t.startLineNumber||e.endLineNumber===t.startLineNumber&&e.endColumn<=t.startColumn||t.endLineNumber<e.startLineNumber||t.endLineNumber===e.startLineNumber&&t.endColumn<=e.startColumn)}static compareRangesUsingStarts(e,t){if(e&&t){const o=e.startLineNumber|0,r=t.startLineNumber|0;if(o===r){const a=e.startColumn|0,l=t.startColumn|0;if(a===l){const c=e.endLineNumber|0,d=t.endLineNumber|0;if(c===d){const u=e.endColumn|0,h=t.endColumn|0;return u-h}return c-d}return a-l}return o-r}return(e?1:0)-(t?1:0)}static compareRangesUsingEnds(e,t){return e.endLineNumber===t.endLineNumber?e.endColumn===t.endColumn?e.startLineNumber===t.startLineNumber?e.startColumn-t.startColumn:e.startLineNumber-t.startLineNumber:e.endColumn-t.endColumn:e.endLineNumber-t.endLineNumber}static spansMultipleLines(e){return e.endLineNumber>e.startLineNumber}toJSON(){return this}},it=class Pc extends A{constructor(e,t,i,s){super(e,t,i,s),this.selectionStartLineNumber=e,this.selectionStartColumn=t,this.positionLineNumber=i,this.positionColumn=s}toString(){return\"[\"+this.selectionStartLineNumber+\",\"+this.selectionStartColumn+\" -> \"+this.positionLineNumber+\",\"+this.positionColumn+\"]\"}equalsSelection(e){return Pc.selectionsEqual(this,e)}static selectionsEqual(e,t){return e.selectionStartLineNumber===t.selectionStartLineNumber&&e.selectionStartColumn===t.selectionStartColumn&&e.positionLineNumber===t.positionLineNumber&&e.positionColumn===t.positionColumn}getDirection(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?0:1}setEndPosition(e,t){return this.getDirection()===0?new Pc(this.startLineNumber,this.startColumn,e,t):new Pc(e,t,this.startLineNumber,this.startColumn)}getPosition(){return new ee(this.positionLineNumber,this.positionColumn)}getSelectionStart(){return new ee(this.selectionStartLineNumber,this.selectionStartColumn)}setStartPosition(e,t){return this.getDirection()===0?new Pc(e,t,this.endLineNumber,this.endColumn):new Pc(this.endLineNumber,this.endColumn,e,t)}static fromPositions(e,t=e){return new Pc(e.lineNumber,e.column,t.lineNumber,t.column)}static fromRange(e,t){return t===0?new Pc(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn):new Pc(e.endLineNumber,e.endColumn,e.startLineNumber,e.startColumn)}static liftSelection(e){return new Pc(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn)}static selectionsArrEqual(e,t){if(e&&!t||!e&&t)return!1;if(!e&&!t)return!0;if(e.length!==t.length)return!1;for(let i=0,s=e.length;i<s;i++)if(!this.selectionsEqual(e[i],t[i]))return!1;return!0}static isISelection(e){return e&&typeof e.selectionStartLineNumber==\"number\"&&typeof e.selectionStartColumn==\"number\"&&typeof e.positionLineNumber==\"number\"&&typeof e.positionColumn==\"number\"}static createWithDirection(e,t,i,s,o){return o===0?new Pc(e,t,i,s):new Pc(i,s,e,t)}};const n7=Object.create(null);function E(n,e){if(Pr(e)){const t=n7[e];if(t===void 0)throw new Error(`${n} references an unknown codicon: ${e}`);e=t}return n7[n]=e,{id:n}}function fae(){return n7}const eRe={add:E(\"add\",6e4),plus:E(\"plus\",6e4),gistNew:E(\"gist-new\",6e4),repoCreate:E(\"repo-create\",6e4),lightbulb:E(\"lightbulb\",60001),lightBulb:E(\"light-bulb\",60001),repo:E(\"repo\",60002),repoDelete:E(\"repo-delete\",60002),gistFork:E(\"gist-fork\",60003),repoForked:E(\"repo-forked\",60003),gitPullRequest:E(\"git-pull-request\",60004),gitPullRequestAbandoned:E(\"git-pull-request-abandoned\",60004),recordKeys:E(\"record-keys\",60005),keyboard:E(\"keyboard\",60005),tag:E(\"tag\",60006),gitPullRequestLabel:E(\"git-pull-request-label\",60006),tagAdd:E(\"tag-add\",60006),tagRemove:E(\"tag-remove\",60006),person:E(\"person\",60007),personFollow:E(\"person-follow\",60007),personOutline:E(\"person-outline\",60007),personFilled:E(\"person-filled\",60007),gitBranch:E(\"git-branch\",60008),gitBranchCreate:E(\"git-branch-create\",60008),gitBranchDelete:E(\"git-branch-delete\",60008),sourceControl:E(\"source-control\",60008),mirror:E(\"mirror\",60009),mirrorPublic:E(\"mirror-public\",60009),star:E(\"star\",60010),starAdd:E(\"star-add\",60010),starDelete:E(\"star-delete\",60010),starEmpty:E(\"star-empty\",60010),comment:E(\"comment\",60011),commentAdd:E(\"comment-add\",60011),alert:E(\"alert\",60012),warning:E(\"warning\",60012),search:E(\"search\",60013),searchSave:E(\"search-save\",60013),logOut:E(\"log-out\",60014),signOut:E(\"sign-out\",60014),logIn:E(\"log-in\",60015),signIn:E(\"sign-in\",60015),eye:E(\"eye\",60016),eyeUnwatch:E(\"eye-unwatch\",60016),eyeWatch:E(\"eye-watch\",60016),circleFilled:E(\"circle-filled\",60017),primitiveDot:E(\"primitive-dot\",60017),closeDirty:E(\"close-dirty\",60017),debugBreakpoint:E(\"debug-breakpoint\",60017),debugBreakpointDisabled:E(\"debug-breakpoint-disabled\",60017),debugHint:E(\"debug-hint\",60017),terminalDecorationSuccess:E(\"terminal-decoration-success\",60017),primitiveSquare:E(\"primitive-square\",60018),edit:E(\"edit\",60019),pencil:E(\"pencil\",60019),info:E(\"info\",60020),issueOpened:E(\"issue-opened\",60020),gistPrivate:E(\"gist-private\",60021),gitForkPrivate:E(\"git-fork-private\",60021),lock:E(\"lock\",60021),mirrorPrivate:E(\"mirror-private\",60021),close:E(\"close\",60022),removeClose:E(\"remove-close\",60022),x:E(\"x\",60022),repoSync:E(\"repo-sync\",60023),sync:E(\"sync\",60023),clone:E(\"clone\",60024),desktopDownload:E(\"desktop-download\",60024),beaker:E(\"beaker\",60025),microscope:E(\"microscope\",60025),vm:E(\"vm\",60026),deviceDesktop:E(\"device-desktop\",60026),file:E(\"file\",60027),fileText:E(\"file-text\",60027),more:E(\"more\",60028),ellipsis:E(\"ellipsis\",60028),kebabHorizontal:E(\"kebab-horizontal\",60028),mailReply:E(\"mail-reply\",60029),reply:E(\"reply\",60029),organization:E(\"organization\",60030),organizationFilled:E(\"organization-filled\",60030),organizationOutline:E(\"organization-outline\",60030),newFile:E(\"new-file\",60031),fileAdd:E(\"file-add\",60031),newFolder:E(\"new-folder\",60032),fileDirectoryCreate:E(\"file-directory-create\",60032),trash:E(\"trash\",60033),trashcan:E(\"trashcan\",60033),history:E(\"history\",60034),clock:E(\"clock\",60034),folder:E(\"folder\",60035),fileDirectory:E(\"file-directory\",60035),symbolFolder:E(\"symbol-folder\",60035),logoGithub:E(\"logo-github\",60036),markGithub:E(\"mark-github\",60036),github:E(\"github\",60036),terminal:E(\"terminal\",60037),console:E(\"console\",60037),repl:E(\"repl\",60037),zap:E(\"zap\",60038),symbolEvent:E(\"symbol-event\",60038),error:E(\"error\",60039),stop:E(\"stop\",60039),variable:E(\"variable\",60040),symbolVariable:E(\"symbol-variable\",60040),array:E(\"array\",60042),symbolArray:E(\"symbol-array\",60042),symbolModule:E(\"symbol-module\",60043),symbolPackage:E(\"symbol-package\",60043),symbolNamespace:E(\"symbol-namespace\",60043),symbolObject:E(\"symbol-object\",60043),symbolMethod:E(\"symbol-method\",60044),symbolFunction:E(\"symbol-function\",60044),symbolConstructor:E(\"symbol-constructor\",60044),symbolBoolean:E(\"symbol-boolean\",60047),symbolNull:E(\"symbol-null\",60047),symbolNumeric:E(\"symbol-numeric\",60048),symbolNumber:E(\"symbol-number\",60048),symbolStructure:E(\"symbol-structure\",60049),symbolStruct:E(\"symbol-struct\",60049),symbolParameter:E(\"symbol-parameter\",60050),symbolTypeParameter:E(\"symbol-type-parameter\",60050),symbolKey:E(\"symbol-key\",60051),symbolText:E(\"symbol-text\",60051),symbolReference:E(\"symbol-reference\",60052),goToFile:E(\"go-to-file\",60052),symbolEnum:E(\"symbol-enum\",60053),symbolValue:E(\"symbol-value\",60053),symbolRuler:E(\"symbol-ruler\",60054),symbolUnit:E(\"symbol-unit\",60054),activateBreakpoints:E(\"activate-breakpoints\",60055),archive:E(\"archive\",60056),arrowBoth:E(\"arrow-both\",60057),arrowDown:E(\"arrow-down\",60058),arrowLeft:E(\"arrow-left\",60059),arrowRight:E(\"arrow-right\",60060),arrowSmallDown:E(\"arrow-small-down\",60061),arrowSmallLeft:E(\"arrow-small-left\",60062),arrowSmallRight:E(\"arrow-small-right\",60063),arrowSmallUp:E(\"arrow-small-up\",60064),arrowUp:E(\"arrow-up\",60065),bell:E(\"bell\",60066),bold:E(\"bold\",60067),book:E(\"book\",60068),bookmark:E(\"bookmark\",60069),debugBreakpointConditionalUnverified:E(\"debug-breakpoint-conditional-unverified\",60070),debugBreakpointConditional:E(\"debug-breakpoint-conditional\",60071),debugBreakpointConditionalDisabled:E(\"debug-breakpoint-conditional-disabled\",60071),debugBreakpointDataUnverified:E(\"debug-breakpoint-data-unverified\",60072),debugBreakpointData:E(\"debug-breakpoint-data\",60073),debugBreakpointDataDisabled:E(\"debug-breakpoint-data-disabled\",60073),debugBreakpointLogUnverified:E(\"debug-breakpoint-log-unverified\",60074),debugBreakpointLog:E(\"debug-breakpoint-log\",60075),debugBreakpointLogDisabled:E(\"debug-breakpoint-log-disabled\",60075),briefcase:E(\"briefcase\",60076),broadcast:E(\"broadcast\",60077),browser:E(\"browser\",60078),bug:E(\"bug\",60079),calendar:E(\"calendar\",60080),caseSensitive:E(\"case-sensitive\",60081),check:E(\"check\",60082),checklist:E(\"checklist\",60083),chevronDown:E(\"chevron-down\",60084),chevronLeft:E(\"chevron-left\",60085),chevronRight:E(\"chevron-right\",60086),chevronUp:E(\"chevron-up\",60087),chromeClose:E(\"chrome-close\",60088),chromeMaximize:E(\"chrome-maximize\",60089),chromeMinimize:E(\"chrome-minimize\",60090),chromeRestore:E(\"chrome-restore\",60091),circleOutline:E(\"circle-outline\",60092),circle:E(\"circle\",60092),debugBreakpointUnverified:E(\"debug-breakpoint-unverified\",60092),terminalDecorationIncomplete:E(\"terminal-decoration-incomplete\",60092),circleSlash:E(\"circle-slash\",60093),circuitBoard:E(\"circuit-board\",60094),clearAll:E(\"clear-all\",60095),clippy:E(\"clippy\",60096),closeAll:E(\"close-all\",60097),cloudDownload:E(\"cloud-download\",60098),cloudUpload:E(\"cloud-upload\",60099),code:E(\"code\",60100),collapseAll:E(\"collapse-all\",60101),colorMode:E(\"color-mode\",60102),commentDiscussion:E(\"comment-discussion\",60103),creditCard:E(\"credit-card\",60105),dash:E(\"dash\",60108),dashboard:E(\"dashboard\",60109),database:E(\"database\",60110),debugContinue:E(\"debug-continue\",60111),debugDisconnect:E(\"debug-disconnect\",60112),debugPause:E(\"debug-pause\",60113),debugRestart:E(\"debug-restart\",60114),debugStart:E(\"debug-start\",60115),debugStepInto:E(\"debug-step-into\",60116),debugStepOut:E(\"debug-step-out\",60117),debugStepOver:E(\"debug-step-over\",60118),debugStop:E(\"debug-stop\",60119),debug:E(\"debug\",60120),deviceCameraVideo:E(\"device-camera-video\",60121),deviceCamera:E(\"device-camera\",60122),deviceMobile:E(\"device-mobile\",60123),diffAdded:E(\"diff-added\",60124),diffIgnored:E(\"diff-ignored\",60125),diffModified:E(\"diff-modified\",60126),diffRemoved:E(\"diff-removed\",60127),diffRenamed:E(\"diff-renamed\",60128),diff:E(\"diff\",60129),diffSidebyside:E(\"diff-sidebyside\",60129),discard:E(\"discard\",60130),editorLayout:E(\"editor-layout\",60131),emptyWindow:E(\"empty-window\",60132),exclude:E(\"exclude\",60133),extensions:E(\"extensions\",60134),eyeClosed:E(\"eye-closed\",60135),fileBinary:E(\"file-binary\",60136),fileCode:E(\"file-code\",60137),fileMedia:E(\"file-media\",60138),filePdf:E(\"file-pdf\",60139),fileSubmodule:E(\"file-submodule\",60140),fileSymlinkDirectory:E(\"file-symlink-directory\",60141),fileSymlinkFile:E(\"file-symlink-file\",60142),fileZip:E(\"file-zip\",60143),files:E(\"files\",60144),filter:E(\"filter\",60145),flame:E(\"flame\",60146),foldDown:E(\"fold-down\",60147),foldUp:E(\"fold-up\",60148),fold:E(\"fold\",60149),folderActive:E(\"folder-active\",60150),folderOpened:E(\"folder-opened\",60151),gear:E(\"gear\",60152),gift:E(\"gift\",60153),gistSecret:E(\"gist-secret\",60154),gist:E(\"gist\",60155),gitCommit:E(\"git-commit\",60156),gitCompare:E(\"git-compare\",60157),compareChanges:E(\"compare-changes\",60157),gitMerge:E(\"git-merge\",60158),githubAction:E(\"github-action\",60159),githubAlt:E(\"github-alt\",60160),globe:E(\"globe\",60161),grabber:E(\"grabber\",60162),graph:E(\"graph\",60163),gripper:E(\"gripper\",60164),heart:E(\"heart\",60165),home:E(\"home\",60166),horizontalRule:E(\"horizontal-rule\",60167),hubot:E(\"hubot\",60168),inbox:E(\"inbox\",60169),issueReopened:E(\"issue-reopened\",60171),issues:E(\"issues\",60172),italic:E(\"italic\",60173),jersey:E(\"jersey\",60174),json:E(\"json\",60175),kebabVertical:E(\"kebab-vertical\",60176),key:E(\"key\",60177),law:E(\"law\",60178),lightbulbAutofix:E(\"lightbulb-autofix\",60179),linkExternal:E(\"link-external\",60180),link:E(\"link\",60181),listOrdered:E(\"list-ordered\",60182),listUnordered:E(\"list-unordered\",60183),liveShare:E(\"live-share\",60184),loading:E(\"loading\",60185),location:E(\"location\",60186),mailRead:E(\"mail-read\",60187),mail:E(\"mail\",60188),markdown:E(\"markdown\",60189),megaphone:E(\"megaphone\",60190),mention:E(\"mention\",60191),milestone:E(\"milestone\",60192),gitPullRequestMilestone:E(\"git-pull-request-milestone\",60192),mortarBoard:E(\"mortar-board\",60193),move:E(\"move\",60194),multipleWindows:E(\"multiple-windows\",60195),mute:E(\"mute\",60196),noNewline:E(\"no-newline\",60197),note:E(\"note\",60198),octoface:E(\"octoface\",60199),openPreview:E(\"open-preview\",60200),package:E(\"package\",60201),paintcan:E(\"paintcan\",60202),pin:E(\"pin\",60203),play:E(\"play\",60204),run:E(\"run\",60204),plug:E(\"plug\",60205),preserveCase:E(\"preserve-case\",60206),preview:E(\"preview\",60207),project:E(\"project\",60208),pulse:E(\"pulse\",60209),question:E(\"question\",60210),quote:E(\"quote\",60211),radioTower:E(\"radio-tower\",60212),reactions:E(\"reactions\",60213),references:E(\"references\",60214),refresh:E(\"refresh\",60215),regex:E(\"regex\",60216),remoteExplorer:E(\"remote-explorer\",60217),remote:E(\"remote\",60218),remove:E(\"remove\",60219),replaceAll:E(\"replace-all\",60220),replace:E(\"replace\",60221),repoClone:E(\"repo-clone\",60222),repoForcePush:E(\"repo-force-push\",60223),repoPull:E(\"repo-pull\",60224),repoPush:E(\"repo-push\",60225),report:E(\"report\",60226),requestChanges:E(\"request-changes\",60227),rocket:E(\"rocket\",60228),rootFolderOpened:E(\"root-folder-opened\",60229),rootFolder:E(\"root-folder\",60230),rss:E(\"rss\",60231),ruby:E(\"ruby\",60232),saveAll:E(\"save-all\",60233),saveAs:E(\"save-as\",60234),save:E(\"save\",60235),screenFull:E(\"screen-full\",60236),screenNormal:E(\"screen-normal\",60237),searchStop:E(\"search-stop\",60238),server:E(\"server\",60240),settingsGear:E(\"settings-gear\",60241),settings:E(\"settings\",60242),shield:E(\"shield\",60243),smiley:E(\"smiley\",60244),sortPrecedence:E(\"sort-precedence\",60245),splitHorizontal:E(\"split-horizontal\",60246),splitVertical:E(\"split-vertical\",60247),squirrel:E(\"squirrel\",60248),starFull:E(\"star-full\",60249),starHalf:E(\"star-half\",60250),symbolClass:E(\"symbol-class\",60251),symbolColor:E(\"symbol-color\",60252),symbolConstant:E(\"symbol-constant\",60253),symbolEnumMember:E(\"symbol-enum-member\",60254),symbolField:E(\"symbol-field\",60255),symbolFile:E(\"symbol-file\",60256),symbolInterface:E(\"symbol-interface\",60257),symbolKeyword:E(\"symbol-keyword\",60258),symbolMisc:E(\"symbol-misc\",60259),symbolOperator:E(\"symbol-operator\",60260),symbolProperty:E(\"symbol-property\",60261),wrench:E(\"wrench\",60261),wrenchSubaction:E(\"wrench-subaction\",60261),symbolSnippet:E(\"symbol-snippet\",60262),tasklist:E(\"tasklist\",60263),telescope:E(\"telescope\",60264),textSize:E(\"text-size\",60265),threeBars:E(\"three-bars\",60266),thumbsdown:E(\"thumbsdown\",60267),thumbsup:E(\"thumbsup\",60268),tools:E(\"tools\",60269),triangleDown:E(\"triangle-down\",60270),triangleLeft:E(\"triangle-left\",60271),triangleRight:E(\"triangle-right\",60272),triangleUp:E(\"triangle-up\",60273),twitter:E(\"twitter\",60274),unfold:E(\"unfold\",60275),unlock:E(\"unlock\",60276),unmute:E(\"unmute\",60277),unverified:E(\"unverified\",60278),verified:E(\"verified\",60279),versions:E(\"versions\",60280),vmActive:E(\"vm-active\",60281),vmOutline:E(\"vm-outline\",60282),vmRunning:E(\"vm-running\",60283),watch:E(\"watch\",60284),whitespace:E(\"whitespace\",60285),wholeWord:E(\"whole-word\",60286),window:E(\"window\",60287),wordWrap:E(\"word-wrap\",60288),zoomIn:E(\"zoom-in\",60289),zoomOut:E(\"zoom-out\",60290),listFilter:E(\"list-filter\",60291),listFlat:E(\"list-flat\",60292),listSelection:E(\"list-selection\",60293),selection:E(\"selection\",60293),listTree:E(\"list-tree\",60294),debugBreakpointFunctionUnverified:E(\"debug-breakpoint-function-unverified\",60295),debugBreakpointFunction:E(\"debug-breakpoint-function\",60296),debugBreakpointFunctionDisabled:E(\"debug-breakpoint-function-disabled\",60296),debugStackframeActive:E(\"debug-stackframe-active\",60297),circleSmallFilled:E(\"circle-small-filled\",60298),debugStackframeDot:E(\"debug-stackframe-dot\",60298),terminalDecorationMark:E(\"terminal-decoration-mark\",60298),debugStackframe:E(\"debug-stackframe\",60299),debugStackframeFocused:E(\"debug-stackframe-focused\",60299),debugBreakpointUnsupported:E(\"debug-breakpoint-unsupported\",60300),symbolString:E(\"symbol-string\",60301),debugReverseContinue:E(\"debug-reverse-continue\",60302),debugStepBack:E(\"debug-step-back\",60303),debugRestartFrame:E(\"debug-restart-frame\",60304),debugAlt:E(\"debug-alt\",60305),callIncoming:E(\"call-incoming\",60306),callOutgoing:E(\"call-outgoing\",60307),menu:E(\"menu\",60308),expandAll:E(\"expand-all\",60309),feedback:E(\"feedback\",60310),gitPullRequestReviewer:E(\"git-pull-request-reviewer\",60310),groupByRefType:E(\"group-by-ref-type\",60311),ungroupByRefType:E(\"ungroup-by-ref-type\",60312),account:E(\"account\",60313),gitPullRequestAssignee:E(\"git-pull-request-assignee\",60313),bellDot:E(\"bell-dot\",60314),debugConsole:E(\"debug-console\",60315),library:E(\"library\",60316),output:E(\"output\",60317),runAll:E(\"run-all\",60318),syncIgnored:E(\"sync-ignored\",60319),pinned:E(\"pinned\",60320),githubInverted:E(\"github-inverted\",60321),serverProcess:E(\"server-process\",60322),serverEnvironment:E(\"server-environment\",60323),pass:E(\"pass\",60324),issueClosed:E(\"issue-closed\",60324),stopCircle:E(\"stop-circle\",60325),playCircle:E(\"play-circle\",60326),record:E(\"record\",60327),debugAltSmall:E(\"debug-alt-small\",60328),vmConnect:E(\"vm-connect\",60329),cloud:E(\"cloud\",60330),merge:E(\"merge\",60331),export:E(\"export\",60332),graphLeft:E(\"graph-left\",60333),magnet:E(\"magnet\",60334),notebook:E(\"notebook\",60335),redo:E(\"redo\",60336),checkAll:E(\"check-all\",60337),pinnedDirty:E(\"pinned-dirty\",60338),passFilled:E(\"pass-filled\",60339),circleLargeFilled:E(\"circle-large-filled\",60340),circleLarge:E(\"circle-large\",60341),circleLargeOutline:E(\"circle-large-outline\",60341),combine:E(\"combine\",60342),gather:E(\"gather\",60342),table:E(\"table\",60343),variableGroup:E(\"variable-group\",60344),typeHierarchy:E(\"type-hierarchy\",60345),typeHierarchySub:E(\"type-hierarchy-sub\",60346),typeHierarchySuper:E(\"type-hierarchy-super\",60347),gitPullRequestCreate:E(\"git-pull-request-create\",60348),runAbove:E(\"run-above\",60349),runBelow:E(\"run-below\",60350),notebookTemplate:E(\"notebook-template\",60351),debugRerun:E(\"debug-rerun\",60352),workspaceTrusted:E(\"workspace-trusted\",60353),workspaceUntrusted:E(\"workspace-untrusted\",60354),workspaceUnknown:E(\"workspace-unknown\",60355),terminalCmd:E(\"terminal-cmd\",60356),terminalDebian:E(\"terminal-debian\",60357),terminalLinux:E(\"terminal-linux\",60358),terminalPowershell:E(\"terminal-powershell\",60359),terminalTmux:E(\"terminal-tmux\",60360),terminalUbuntu:E(\"terminal-ubuntu\",60361),terminalBash:E(\"terminal-bash\",60362),arrowSwap:E(\"arrow-swap\",60363),copy:E(\"copy\",60364),personAdd:E(\"person-add\",60365),filterFilled:E(\"filter-filled\",60366),wand:E(\"wand\",60367),debugLineByLine:E(\"debug-line-by-line\",60368),inspect:E(\"inspect\",60369),layers:E(\"layers\",60370),layersDot:E(\"layers-dot\",60371),layersActive:E(\"layers-active\",60372),compass:E(\"compass\",60373),compassDot:E(\"compass-dot\",60374),compassActive:E(\"compass-active\",60375),azure:E(\"azure\",60376),issueDraft:E(\"issue-draft\",60377),gitPullRequestClosed:E(\"git-pull-request-closed\",60378),gitPullRequestDraft:E(\"git-pull-request-draft\",60379),debugAll:E(\"debug-all\",60380),debugCoverage:E(\"debug-coverage\",60381),runErrors:E(\"run-errors\",60382),folderLibrary:E(\"folder-library\",60383),debugContinueSmall:E(\"debug-continue-small\",60384),beakerStop:E(\"beaker-stop\",60385),graphLine:E(\"graph-line\",60386),graphScatter:E(\"graph-scatter\",60387),pieChart:E(\"pie-chart\",60388),bracket:E(\"bracket\",60175),bracketDot:E(\"bracket-dot\",60389),bracketError:E(\"bracket-error\",60390),lockSmall:E(\"lock-small\",60391),azureDevops:E(\"azure-devops\",60392),verifiedFilled:E(\"verified-filled\",60393),newline:E(\"newline\",60394),layout:E(\"layout\",60395),layoutActivitybarLeft:E(\"layout-activitybar-left\",60396),layoutActivitybarRight:E(\"layout-activitybar-right\",60397),layoutPanelLeft:E(\"layout-panel-left\",60398),layoutPanelCenter:E(\"layout-panel-center\",60399),layoutPanelJustify:E(\"layout-panel-justify\",60400),layoutPanelRight:E(\"layout-panel-right\",60401),layoutPanel:E(\"layout-panel\",60402),layoutSidebarLeft:E(\"layout-sidebar-left\",60403),layoutSidebarRight:E(\"layout-sidebar-right\",60404),layoutStatusbar:E(\"layout-statusbar\",60405),layoutMenubar:E(\"layout-menubar\",60406),layoutCentered:E(\"layout-centered\",60407),target:E(\"target\",60408),indent:E(\"indent\",60409),recordSmall:E(\"record-small\",60410),errorSmall:E(\"error-small\",60411),terminalDecorationError:E(\"terminal-decoration-error\",60411),arrowCircleDown:E(\"arrow-circle-down\",60412),arrowCircleLeft:E(\"arrow-circle-left\",60413),arrowCircleRight:E(\"arrow-circle-right\",60414),arrowCircleUp:E(\"arrow-circle-up\",60415),layoutSidebarRightOff:E(\"layout-sidebar-right-off\",60416),layoutPanelOff:E(\"layout-panel-off\",60417),layoutSidebarLeftOff:E(\"layout-sidebar-left-off\",60418),blank:E(\"blank\",60419),heartFilled:E(\"heart-filled\",60420),map:E(\"map\",60421),mapHorizontal:E(\"map-horizontal\",60421),foldHorizontal:E(\"fold-horizontal\",60421),mapFilled:E(\"map-filled\",60422),mapHorizontalFilled:E(\"map-horizontal-filled\",60422),foldHorizontalFilled:E(\"fold-horizontal-filled\",60422),circleSmall:E(\"circle-small\",60423),bellSlash:E(\"bell-slash\",60424),bellSlashDot:E(\"bell-slash-dot\",60425),commentUnresolved:E(\"comment-unresolved\",60426),gitPullRequestGoToChanges:E(\"git-pull-request-go-to-changes\",60427),gitPullRequestNewChanges:E(\"git-pull-request-new-changes\",60428),searchFuzzy:E(\"search-fuzzy\",60429),commentDraft:E(\"comment-draft\",60430),send:E(\"send\",60431),sparkle:E(\"sparkle\",60432),insert:E(\"insert\",60433),mic:E(\"mic\",60434),thumbsdownFilled:E(\"thumbsdown-filled\",60435),thumbsupFilled:E(\"thumbsup-filled\",60436),coffee:E(\"coffee\",60437),snake:E(\"snake\",60438),game:E(\"game\",60439),vr:E(\"vr\",60440),chip:E(\"chip\",60441),piano:E(\"piano\",60442),music:E(\"music\",60443),micFilled:E(\"mic-filled\",60444),repoFetch:E(\"repo-fetch\",60445),copilot:E(\"copilot\",60446),lightbulbSparkle:E(\"lightbulb-sparkle\",60447),robot:E(\"robot\",60448),sparkleFilled:E(\"sparkle-filled\",60449),diffSingle:E(\"diff-single\",60450),diffMultiple:E(\"diff-multiple\",60451),surroundWith:E(\"surround-with\",60452),share:E(\"share\",60453),gitStash:E(\"git-stash\",60454),gitStashApply:E(\"git-stash-apply\",60455),gitStashPop:E(\"git-stash-pop\",60456),vscode:E(\"vscode\",60457),vscodeInsiders:E(\"vscode-insiders\",60458),codeOss:E(\"code-oss\",60459),runCoverage:E(\"run-coverage\",60460),runAllCoverage:E(\"run-all-coverage\",60461),coverage:E(\"coverage\",60462),githubProject:E(\"github-project\",60463),mapVertical:E(\"map-vertical\",60464),foldVertical:E(\"fold-vertical\",60464),mapVerticalFilled:E(\"map-vertical-filled\",60465),foldVerticalFilled:E(\"fold-vertical-filled\",60465),goToSearch:E(\"go-to-search\",60466),percentage:E(\"percentage\",60467),sortPercentage:E(\"sort-percentage\",60467),attach:E(\"attach\",60468)},tRe={dialogError:E(\"dialog-error\",\"error\"),dialogWarning:E(\"dialog-warning\",\"warning\"),dialogInfo:E(\"dialog-info\",\"info\"),dialogClose:E(\"dialog-close\",\"close\"),treeItemExpanded:E(\"tree-item-expanded\",\"chevron-down\"),treeFilterOnTypeOn:E(\"tree-filter-on-type-on\",\"list-filter\"),treeFilterOnTypeOff:E(\"tree-filter-on-type-off\",\"list-selection\"),treeFilterClear:E(\"tree-filter-clear\",\"close\"),treeItemLoading:E(\"tree-item-loading\",\"loading\"),menuSelection:E(\"menu-selection\",\"check\"),menuSubmenu:E(\"menu-submenu\",\"chevron-right\"),menuBarMore:E(\"menubar-more\",\"more\"),scrollbarButtonLeft:E(\"scrollbar-button-left\",\"triangle-left\"),scrollbarButtonRight:E(\"scrollbar-button-right\",\"triangle-right\"),scrollbarButtonUp:E(\"scrollbar-button-up\",\"triangle-up\"),scrollbarButtonDown:E(\"scrollbar-button-down\",\"triangle-down\"),toolBarMore:E(\"toolbar-more\",\"more\"),quickInputBack:E(\"quick-input-back\",\"arrow-left\"),dropDownButton:E(\"drop-down-button\",60084),symbolCustomColor:E(\"symbol-customcolor\",60252),exportIcon:E(\"export\",60332),workspaceUnspecified:E(\"workspace-unspecified\",60355),newLine:E(\"newline\",60394),thumbsDownFilled:E(\"thumbsdown-filled\",60435),thumbsUpFilled:E(\"thumbsup-filled\",60436),gitFetch:E(\"git-fetch\",60445),lightbulbSparkleAutofix:E(\"lightbulb-sparkle-autofix\",60447),debugBreakpointPending:E(\"debug-breakpoint-pending\",60377)},Te={...eRe,...tRe};let iRe=class{constructor(){this._tokenizationSupports=new Map,this._factories=new Map,this._onDidChange=new X,this.onDidChange=this._onDidChange.event,this._colorMap=null}handleChange(e){this._onDidChange.fire({changedLanguages:e,changedColorMap:!1})}register(e,t){return this._tokenizationSupports.set(e,t),this.handleChange([e]),dt(()=>{this._tokenizationSupports.get(e)===t&&(this._tokenizationSupports.delete(e),this.handleChange([e]))})}get(e){return this._tokenizationSupports.get(e)||null}registerFactory(e,t){var i;(i=this._factories.get(e))===null||i===void 0||i.dispose();const s=new nRe(this,e,t);return this._factories.set(e,s),dt(()=>{const o=this._factories.get(e);!o||o!==s||(this._factories.delete(e),o.dispose())})}async getOrCreate(e){const t=this.get(e);if(t)return t;const i=this._factories.get(e);return!i||i.isResolved?null:(await i.resolve(),this.get(e))}isResolved(e){if(this.get(e))return!0;const i=this._factories.get(e);return!!(!i||i.isResolved)}setColorMap(e){this._colorMap=e,this._onDidChange.fire({changedLanguages:Array.from(this._tokenizationSupports.keys()),changedColorMap:!0})}getColorMap(){return this._colorMap}getDefaultBackground(){return this._colorMap&&this._colorMap.length>2?this._colorMap[2]:null}};class nRe extends ne{get isResolved(){return this._isResolved}constructor(e,t,i){super(),this._registry=e,this._languageId=t,this._factory=i,this._isDisposed=!1,this._resolvePromise=null,this._isResolved=!1}dispose(){this._isDisposed=!0,super.dispose()}async resolve(){return this._resolvePromise||(this._resolvePromise=this._create()),this._resolvePromise}async _create(){const e=await this._factory.tokenizationSupport;this._isResolved=!0,e&&!this._isDisposed&&this._register(this._registry.register(this._languageId,e))}}let oL=class{constructor(e,t,i){this.offset=e,this.type=t,this.language=i,this._tokenBrand=void 0}toString(){return\"(\"+this.offset+\", \"+this.type+\")\"}};class $V{constructor(e,t){this.tokens=e,this.endState=t,this._tokenizationResultBrand=void 0}}class oM{constructor(e,t){this.tokens=e,this.endState=t,this._encodedTokenizationResultBrand=void 0}}var rl;(function(n){n[n.Increase=0]=\"Increase\",n[n.Decrease=1]=\"Decrease\"})(rl||(rl={}));var rL;(function(n){const e=new Map;e.set(0,Te.symbolMethod),e.set(1,Te.symbolFunction),e.set(2,Te.symbolConstructor),e.set(3,Te.symbolField),e.set(4,Te.symbolVariable),e.set(5,Te.symbolClass),e.set(6,Te.symbolStruct),e.set(7,Te.symbolInterface),e.set(8,Te.symbolModule),e.set(9,Te.symbolProperty),e.set(10,Te.symbolEvent),e.set(11,Te.symbolOperator),e.set(12,Te.symbolUnit),e.set(13,Te.symbolValue),e.set(15,Te.symbolEnum),e.set(14,Te.symbolConstant),e.set(15,Te.symbolEnum),e.set(16,Te.symbolEnumMember),e.set(17,Te.symbolKeyword),e.set(27,Te.symbolSnippet),e.set(18,Te.symbolText),e.set(19,Te.symbolColor),e.set(20,Te.symbolFile),e.set(21,Te.symbolReference),e.set(22,Te.symbolCustomColor),e.set(23,Te.symbolFolder),e.set(24,Te.symbolTypeParameter),e.set(25,Te.account),e.set(26,Te.issues);function t(o){let r=e.get(o);return r||(console.info(\"No codicon found for CompletionItemKind \"+o),r=Te.symbolProperty),r}n.toIcon=t;const i=new Map;i.set(\"method\",0),i.set(\"function\",1),i.set(\"constructor\",2),i.set(\"field\",3),i.set(\"variable\",4),i.set(\"class\",5),i.set(\"struct\",6),i.set(\"interface\",7),i.set(\"module\",8),i.set(\"property\",9),i.set(\"event\",10),i.set(\"operator\",11),i.set(\"unit\",12),i.set(\"value\",13),i.set(\"constant\",14),i.set(\"enum\",15),i.set(\"enum-member\",16),i.set(\"enumMember\",16),i.set(\"keyword\",17),i.set(\"snippet\",27),i.set(\"text\",18),i.set(\"color\",19),i.set(\"file\",20),i.set(\"reference\",21),i.set(\"customcolor\",22),i.set(\"folder\",23),i.set(\"type-parameter\",24),i.set(\"typeParameter\",24),i.set(\"account\",25),i.set(\"issue\",26);function s(o,r){let a=i.get(o);return typeof a>\"u\"&&!r&&(a=9),a}n.fromString=s})(rL||(rL={}));var pg;(function(n){n[n.Automatic=0]=\"Automatic\",n[n.Explicit=1]=\"Explicit\"})(pg||(pg={}));class gae{constructor(e,t,i,s){this.range=e,this.text=t,this.completionKind=i,this.isSnippetText=s}equals(e){return A.lift(this.range).equalsRange(e.range)&&this.text===e.text&&this.completionKind===e.completionKind&&this.isSnippetText===e.isSnippetText}}var aL;(function(n){n[n.Automatic=0]=\"Automatic\",n[n.PasteAs=1]=\"PasteAs\"})(aL||(aL={}));var ph;(function(n){n[n.Invoke=1]=\"Invoke\",n[n.TriggerCharacter=2]=\"TriggerCharacter\",n[n.ContentChange=3]=\"ContentChange\"})(ph||(ph={}));var lL;(function(n){n[n.Text=0]=\"Text\",n[n.Read=1]=\"Read\",n[n.Write=2]=\"Write\"})(lL||(lL={}));function sRe(n){return n&&pt.isUri(n.uri)&&A.isIRange(n.range)&&(A.isIRange(n.originSelectionRange)||A.isIRange(n.targetSelectionRange))}const oRe={17:v(\"Array\",\"array\"),16:v(\"Boolean\",\"boolean\"),4:v(\"Class\",\"class\"),13:v(\"Constant\",\"constant\"),8:v(\"Constructor\",\"constructor\"),9:v(\"Enum\",\"enumeration\"),21:v(\"EnumMember\",\"enumeration member\"),23:v(\"Event\",\"event\"),7:v(\"Field\",\"field\"),0:v(\"File\",\"file\"),11:v(\"Function\",\"function\"),10:v(\"Interface\",\"interface\"),19:v(\"Key\",\"key\"),5:v(\"Method\",\"method\"),1:v(\"Module\",\"module\"),2:v(\"Namespace\",\"namespace\"),20:v(\"Null\",\"null\"),15:v(\"Number\",\"number\"),18:v(\"Object\",\"object\"),24:v(\"Operator\",\"operator\"),3:v(\"Package\",\"package\"),6:v(\"Property\",\"property\"),14:v(\"String\",\"string\"),22:v(\"Struct\",\"struct\"),25:v(\"TypeParameter\",\"type parameter\"),12:v(\"Variable\",\"variable\")};function rRe(n,e){return v(\"symbolAriaLabel\",\"{0} ({1})\",n,oRe[e])}var N2;(function(n){const e=new Map;e.set(0,Te.symbolFile),e.set(1,Te.symbolModule),e.set(2,Te.symbolNamespace),e.set(3,Te.symbolPackage),e.set(4,Te.symbolClass),e.set(5,Te.symbolMethod),e.set(6,Te.symbolProperty),e.set(7,Te.symbolField),e.set(8,Te.symbolConstructor),e.set(9,Te.symbolEnum),e.set(10,Te.symbolInterface),e.set(11,Te.symbolFunction),e.set(12,Te.symbolVariable),e.set(13,Te.symbolConstant),e.set(14,Te.symbolString),e.set(15,Te.symbolNumber),e.set(16,Te.symbolBoolean),e.set(17,Te.symbolArray),e.set(18,Te.symbolObject),e.set(19,Te.symbolKey),e.set(20,Te.symbolNull),e.set(21,Te.symbolEnumMember),e.set(22,Te.symbolStruct),e.set(23,Te.symbolEvent),e.set(24,Te.symbolOperator),e.set(25,Te.symbolTypeParameter);function t(i){let s=e.get(i);return s||(console.info(\"No codicon found for SymbolKind \"+i),s=Te.symbolProperty),s}n.toIcon=t})(N2||(N2={}));class Nr{static fromValue(e){switch(e){case\"comment\":return Nr.Comment;case\"imports\":return Nr.Imports;case\"region\":return Nr.Region}return new Nr(e)}constructor(e){this.value=e}}Nr.Comment=new Nr(\"comment\");Nr.Imports=new Nr(\"imports\");Nr.Region=new Nr(\"region\");var s7;(function(n){n[n.AIGenerated=1]=\"AIGenerated\"})(s7||(s7={}));var cL;(function(n){n[n.Invoke=0]=\"Invoke\",n[n.Automatic=1]=\"Automatic\"})(cL||(cL={}));var o7;(function(n){function e(t){return!t||typeof t!=\"object\"?!1:typeof t.id==\"string\"&&typeof t.title==\"string\"}n.is=e})(o7||(o7={}));var A2;(function(n){n[n.Type=1]=\"Type\",n[n.Parameter=2]=\"Parameter\"})(A2||(A2={}));class aRe{constructor(e){this.createSupport=e,this._tokenizationSupport=null}dispose(){this._tokenizationSupport&&this._tokenizationSupport.then(e=>{e&&e.dispose()})}get tokenizationSupport(){return this._tokenizationSupport||(this._tokenizationSupport=this.createSupport()),this._tokenizationSupport}}const Zn=new iRe;var R2;(function(n){n[n.Invoke=0]=\"Invoke\",n[n.Automatic=1]=\"Automatic\"})(R2||(R2={}));var r7;(function(n){n[n.Unknown=0]=\"Unknown\",n[n.Disabled=1]=\"Disabled\",n[n.Enabled=2]=\"Enabled\"})(r7||(r7={}));var a7;(function(n){n[n.Invoke=1]=\"Invoke\",n[n.Auto=2]=\"Auto\"})(a7||(a7={}));var l7;(function(n){n[n.None=0]=\"None\",n[n.KeepWhitespace=1]=\"KeepWhitespace\",n[n.InsertAsSnippet=4]=\"InsertAsSnippet\"})(l7||(l7={}));var c7;(function(n){n[n.Method=0]=\"Method\",n[n.Function=1]=\"Function\",n[n.Constructor=2]=\"Constructor\",n[n.Field=3]=\"Field\",n[n.Variable=4]=\"Variable\",n[n.Class=5]=\"Class\",n[n.Struct=6]=\"Struct\",n[n.Interface=7]=\"Interface\",n[n.Module=8]=\"Module\",n[n.Property=9]=\"Property\",n[n.Event=10]=\"Event\",n[n.Operator=11]=\"Operator\",n[n.Unit=12]=\"Unit\",n[n.Value=13]=\"Value\",n[n.Constant=14]=\"Constant\",n[n.Enum=15]=\"Enum\",n[n.EnumMember=16]=\"EnumMember\",n[n.Keyword=17]=\"Keyword\",n[n.Text=18]=\"Text\",n[n.Color=19]=\"Color\",n[n.File=20]=\"File\",n[n.Reference=21]=\"Reference\",n[n.Customcolor=22]=\"Customcolor\",n[n.Folder=23]=\"Folder\",n[n.TypeParameter=24]=\"TypeParameter\",n[n.User=25]=\"User\",n[n.Issue=26]=\"Issue\",n[n.Snippet=27]=\"Snippet\"})(c7||(c7={}));var d7;(function(n){n[n.Deprecated=1]=\"Deprecated\"})(d7||(d7={}));var u7;(function(n){n[n.Invoke=0]=\"Invoke\",n[n.TriggerCharacter=1]=\"TriggerCharacter\",n[n.TriggerForIncompleteCompletions=2]=\"TriggerForIncompleteCompletions\"})(u7||(u7={}));var h7;(function(n){n[n.EXACT=0]=\"EXACT\",n[n.ABOVE=1]=\"ABOVE\",n[n.BELOW=2]=\"BELOW\"})(h7||(h7={}));var f7;(function(n){n[n.NotSet=0]=\"NotSet\",n[n.ContentFlush=1]=\"ContentFlush\",n[n.RecoverFromMarkers=2]=\"RecoverFromMarkers\",n[n.Explicit=3]=\"Explicit\",n[n.Paste=4]=\"Paste\",n[n.Undo=5]=\"Undo\",n[n.Redo=6]=\"Redo\"})(f7||(f7={}));var g7;(function(n){n[n.LF=1]=\"LF\",n[n.CRLF=2]=\"CRLF\"})(g7||(g7={}));var p7;(function(n){n[n.Text=0]=\"Text\",n[n.Read=1]=\"Read\",n[n.Write=2]=\"Write\"})(p7||(p7={}));var m7;(function(n){n[n.None=0]=\"None\",n[n.Keep=1]=\"Keep\",n[n.Brackets=2]=\"Brackets\",n[n.Advanced=3]=\"Advanced\",n[n.Full=4]=\"Full\"})(m7||(m7={}));var _7;(function(n){n[n.acceptSuggestionOnCommitCharacter=0]=\"acceptSuggestionOnCommitCharacter\",n[n.acceptSuggestionOnEnter=1]=\"acceptSuggestionOnEnter\",n[n.accessibilitySupport=2]=\"accessibilitySupport\",n[n.accessibilityPageSize=3]=\"accessibilityPageSize\",n[n.ariaLabel=4]=\"ariaLabel\",n[n.ariaRequired=5]=\"ariaRequired\",n[n.autoClosingBrackets=6]=\"autoClosingBrackets\",n[n.autoClosingComments=7]=\"autoClosingComments\",n[n.screenReaderAnnounceInlineSuggestion=8]=\"screenReaderAnnounceInlineSuggestion\",n[n.autoClosingDelete=9]=\"autoClosingDelete\",n[n.autoClosingOvertype=10]=\"autoClosingOvertype\",n[n.autoClosingQuotes=11]=\"autoClosingQuotes\",n[n.autoIndent=12]=\"autoIndent\",n[n.automaticLayout=13]=\"automaticLayout\",n[n.autoSurround=14]=\"autoSurround\",n[n.bracketPairColorization=15]=\"bracketPairColorization\",n[n.guides=16]=\"guides\",n[n.codeLens=17]=\"codeLens\",n[n.codeLensFontFamily=18]=\"codeLensFontFamily\",n[n.codeLensFontSize=19]=\"codeLensFontSize\",n[n.colorDecorators=20]=\"colorDecorators\",n[n.colorDecoratorsLimit=21]=\"colorDecoratorsLimit\",n[n.columnSelection=22]=\"columnSelection\",n[n.comments=23]=\"comments\",n[n.contextmenu=24]=\"contextmenu\",n[n.copyWithSyntaxHighlighting=25]=\"copyWithSyntaxHighlighting\",n[n.cursorBlinking=26]=\"cursorBlinking\",n[n.cursorSmoothCaretAnimation=27]=\"cursorSmoothCaretAnimation\",n[n.cursorStyle=28]=\"cursorStyle\",n[n.cursorSurroundingLines=29]=\"cursorSurroundingLines\",n[n.cursorSurroundingLinesStyle=30]=\"cursorSurroundingLinesStyle\",n[n.cursorWidth=31]=\"cursorWidth\",n[n.disableLayerHinting=32]=\"disableLayerHinting\",n[n.disableMonospaceOptimizations=33]=\"disableMonospaceOptimizations\",n[n.domReadOnly=34]=\"domReadOnly\",n[n.dragAndDrop=35]=\"dragAndDrop\",n[n.dropIntoEditor=36]=\"dropIntoEditor\",n[n.emptySelectionClipboard=37]=\"emptySelectionClipboard\",n[n.experimentalWhitespaceRendering=38]=\"experimentalWhitespaceRendering\",n[n.extraEditorClassName=39]=\"extraEditorClassName\",n[n.fastScrollSensitivity=40]=\"fastScrollSensitivity\",n[n.find=41]=\"find\",n[n.fixedOverflowWidgets=42]=\"fixedOverflowWidgets\",n[n.folding=43]=\"folding\",n[n.foldingStrategy=44]=\"foldingStrategy\",n[n.foldingHighlight=45]=\"foldingHighlight\",n[n.foldingImportsByDefault=46]=\"foldingImportsByDefault\",n[n.foldingMaximumRegions=47]=\"foldingMaximumRegions\",n[n.unfoldOnClickAfterEndOfLine=48]=\"unfoldOnClickAfterEndOfLine\",n[n.fontFamily=49]=\"fontFamily\",n[n.fontInfo=50]=\"fontInfo\",n[n.fontLigatures=51]=\"fontLigatures\",n[n.fontSize=52]=\"fontSize\",n[n.fontWeight=53]=\"fontWeight\",n[n.fontVariations=54]=\"fontVariations\",n[n.formatOnPaste=55]=\"formatOnPaste\",n[n.formatOnType=56]=\"formatOnType\",n[n.glyphMargin=57]=\"glyphMargin\",n[n.gotoLocation=58]=\"gotoLocation\",n[n.hideCursorInOverviewRuler=59]=\"hideCursorInOverviewRuler\",n[n.hover=60]=\"hover\",n[n.inDiffEditor=61]=\"inDiffEditor\",n[n.inlineSuggest=62]=\"inlineSuggest\",n[n.inlineEdit=63]=\"inlineEdit\",n[n.letterSpacing=64]=\"letterSpacing\",n[n.lightbulb=65]=\"lightbulb\",n[n.lineDecorationsWidth=66]=\"lineDecorationsWidth\",n[n.lineHeight=67]=\"lineHeight\",n[n.lineNumbers=68]=\"lineNumbers\",n[n.lineNumbersMinChars=69]=\"lineNumbersMinChars\",n[n.linkedEditing=70]=\"linkedEditing\",n[n.links=71]=\"links\",n[n.matchBrackets=72]=\"matchBrackets\",n[n.minimap=73]=\"minimap\",n[n.mouseStyle=74]=\"mouseStyle\",n[n.mouseWheelScrollSensitivity=75]=\"mouseWheelScrollSensitivity\",n[n.mouseWheelZoom=76]=\"mouseWheelZoom\",n[n.multiCursorMergeOverlapping=77]=\"multiCursorMergeOverlapping\",n[n.multiCursorModifier=78]=\"multiCursorModifier\",n[n.multiCursorPaste=79]=\"multiCursorPaste\",n[n.multiCursorLimit=80]=\"multiCursorLimit\",n[n.occurrencesHighlight=81]=\"occurrencesHighlight\",n[n.overviewRulerBorder=82]=\"overviewRulerBorder\",n[n.overviewRulerLanes=83]=\"overviewRulerLanes\",n[n.padding=84]=\"padding\",n[n.pasteAs=85]=\"pasteAs\",n[n.parameterHints=86]=\"parameterHints\",n[n.peekWidgetDefaultFocus=87]=\"peekWidgetDefaultFocus\",n[n.definitionLinkOpensInPeek=88]=\"definitionLinkOpensInPeek\",n[n.quickSuggestions=89]=\"quickSuggestions\",n[n.quickSuggestionsDelay=90]=\"quickSuggestionsDelay\",n[n.readOnly=91]=\"readOnly\",n[n.readOnlyMessage=92]=\"readOnlyMessage\",n[n.renameOnType=93]=\"renameOnType\",n[n.renderControlCharacters=94]=\"renderControlCharacters\",n[n.renderFinalNewline=95]=\"renderFinalNewline\",n[n.renderLineHighlight=96]=\"renderLineHighlight\",n[n.renderLineHighlightOnlyWhenFocus=97]=\"renderLineHighlightOnlyWhenFocus\",n[n.renderValidationDecorations=98]=\"renderValidationDecorations\",n[n.renderWhitespace=99]=\"renderWhitespace\",n[n.revealHorizontalRightPadding=100]=\"revealHorizontalRightPadding\",n[n.roundedSelection=101]=\"roundedSelection\",n[n.rulers=102]=\"rulers\",n[n.scrollbar=103]=\"scrollbar\",n[n.scrollBeyondLastColumn=104]=\"scrollBeyondLastColumn\",n[n.scrollBeyondLastLine=105]=\"scrollBeyondLastLine\",n[n.scrollPredominantAxis=106]=\"scrollPredominantAxis\",n[n.selectionClipboard=107]=\"selectionClipboard\",n[n.selectionHighlight=108]=\"selectionHighlight\",n[n.selectOnLineNumbers=109]=\"selectOnLineNumbers\",n[n.showFoldingControls=110]=\"showFoldingControls\",n[n.showUnused=111]=\"showUnused\",n[n.snippetSuggestions=112]=\"snippetSuggestions\",n[n.smartSelect=113]=\"smartSelect\",n[n.smoothScrolling=114]=\"smoothScrolling\",n[n.stickyScroll=115]=\"stickyScroll\",n[n.stickyTabStops=116]=\"stickyTabStops\",n[n.stopRenderingLineAfter=117]=\"stopRenderingLineAfter\",n[n.suggest=118]=\"suggest\",n[n.suggestFontSize=119]=\"suggestFontSize\",n[n.suggestLineHeight=120]=\"suggestLineHeight\",n[n.suggestOnTriggerCharacters=121]=\"suggestOnTriggerCharacters\",n[n.suggestSelection=122]=\"suggestSelection\",n[n.tabCompletion=123]=\"tabCompletion\",n[n.tabIndex=124]=\"tabIndex\",n[n.unicodeHighlighting=125]=\"unicodeHighlighting\",n[n.unusualLineTerminators=126]=\"unusualLineTerminators\",n[n.useShadowDOM=127]=\"useShadowDOM\",n[n.useTabStops=128]=\"useTabStops\",n[n.wordBreak=129]=\"wordBreak\",n[n.wordSegmenterLocales=130]=\"wordSegmenterLocales\",n[n.wordSeparators=131]=\"wordSeparators\",n[n.wordWrap=132]=\"wordWrap\",n[n.wordWrapBreakAfterCharacters=133]=\"wordWrapBreakAfterCharacters\",n[n.wordWrapBreakBeforeCharacters=134]=\"wordWrapBreakBeforeCharacters\",n[n.wordWrapColumn=135]=\"wordWrapColumn\",n[n.wordWrapOverride1=136]=\"wordWrapOverride1\",n[n.wordWrapOverride2=137]=\"wordWrapOverride2\",n[n.wrappingIndent=138]=\"wrappingIndent\",n[n.wrappingStrategy=139]=\"wrappingStrategy\",n[n.showDeprecated=140]=\"showDeprecated\",n[n.inlayHints=141]=\"inlayHints\",n[n.editorClassName=142]=\"editorClassName\",n[n.pixelRatio=143]=\"pixelRatio\",n[n.tabFocusMode=144]=\"tabFocusMode\",n[n.layoutInfo=145]=\"layoutInfo\",n[n.wrappingInfo=146]=\"wrappingInfo\",n[n.defaultColorDecorators=147]=\"defaultColorDecorators\",n[n.colorDecoratorsActivatedOn=148]=\"colorDecoratorsActivatedOn\",n[n.inlineCompletionsAccessibilityVerbose=149]=\"inlineCompletionsAccessibilityVerbose\"})(_7||(_7={}));var v7;(function(n){n[n.TextDefined=0]=\"TextDefined\",n[n.LF=1]=\"LF\",n[n.CRLF=2]=\"CRLF\"})(v7||(v7={}));var b7;(function(n){n[n.LF=0]=\"LF\",n[n.CRLF=1]=\"CRLF\"})(b7||(b7={}));var C7;(function(n){n[n.Left=1]=\"Left\",n[n.Center=2]=\"Center\",n[n.Right=3]=\"Right\"})(C7||(C7={}));var w7;(function(n){n[n.Increase=0]=\"Increase\",n[n.Decrease=1]=\"Decrease\"})(w7||(w7={}));var y7;(function(n){n[n.None=0]=\"None\",n[n.Indent=1]=\"Indent\",n[n.IndentOutdent=2]=\"IndentOutdent\",n[n.Outdent=3]=\"Outdent\"})(y7||(y7={}));var S7;(function(n){n[n.Both=0]=\"Both\",n[n.Right=1]=\"Right\",n[n.Left=2]=\"Left\",n[n.None=3]=\"None\"})(S7||(S7={}));var x7;(function(n){n[n.Type=1]=\"Type\",n[n.Parameter=2]=\"Parameter\"})(x7||(x7={}));var L7;(function(n){n[n.Automatic=0]=\"Automatic\",n[n.Explicit=1]=\"Explicit\"})(L7||(L7={}));var k7;(function(n){n[n.Invoke=0]=\"Invoke\",n[n.Automatic=1]=\"Automatic\"})(k7||(k7={}));var D7;(function(n){n[n.DependsOnKbLayout=-1]=\"DependsOnKbLayout\",n[n.Unknown=0]=\"Unknown\",n[n.Backspace=1]=\"Backspace\",n[n.Tab=2]=\"Tab\",n[n.Enter=3]=\"Enter\",n[n.Shift=4]=\"Shift\",n[n.Ctrl=5]=\"Ctrl\",n[n.Alt=6]=\"Alt\",n[n.PauseBreak=7]=\"PauseBreak\",n[n.CapsLock=8]=\"CapsLock\",n[n.Escape=9]=\"Escape\",n[n.Space=10]=\"Space\",n[n.PageUp=11]=\"PageUp\",n[n.PageDown=12]=\"PageDown\",n[n.End=13]=\"End\",n[n.Home=14]=\"Home\",n[n.LeftArrow=15]=\"LeftArrow\",n[n.UpArrow=16]=\"UpArrow\",n[n.RightArrow=17]=\"RightArrow\",n[n.DownArrow=18]=\"DownArrow\",n[n.Insert=19]=\"Insert\",n[n.Delete=20]=\"Delete\",n[n.Digit0=21]=\"Digit0\",n[n.Digit1=22]=\"Digit1\",n[n.Digit2=23]=\"Digit2\",n[n.Digit3=24]=\"Digit3\",n[n.Digit4=25]=\"Digit4\",n[n.Digit5=26]=\"Digit5\",n[n.Digit6=27]=\"Digit6\",n[n.Digit7=28]=\"Digit7\",n[n.Digit8=29]=\"Digit8\",n[n.Digit9=30]=\"Digit9\",n[n.KeyA=31]=\"KeyA\",n[n.KeyB=32]=\"KeyB\",n[n.KeyC=33]=\"KeyC\",n[n.KeyD=34]=\"KeyD\",n[n.KeyE=35]=\"KeyE\",n[n.KeyF=36]=\"KeyF\",n[n.KeyG=37]=\"KeyG\",n[n.KeyH=38]=\"KeyH\",n[n.KeyI=39]=\"KeyI\",n[n.KeyJ=40]=\"KeyJ\",n[n.KeyK=41]=\"KeyK\",n[n.KeyL=42]=\"KeyL\",n[n.KeyM=43]=\"KeyM\",n[n.KeyN=44]=\"KeyN\",n[n.KeyO=45]=\"KeyO\",n[n.KeyP=46]=\"KeyP\",n[n.KeyQ=47]=\"KeyQ\",n[n.KeyR=48]=\"KeyR\",n[n.KeyS=49]=\"KeyS\",n[n.KeyT=50]=\"KeyT\",n[n.KeyU=51]=\"KeyU\",n[n.KeyV=52]=\"KeyV\",n[n.KeyW=53]=\"KeyW\",n[n.KeyX=54]=\"KeyX\",n[n.KeyY=55]=\"KeyY\",n[n.KeyZ=56]=\"KeyZ\",n[n.Meta=57]=\"Meta\",n[n.ContextMenu=58]=\"ContextMenu\",n[n.F1=59]=\"F1\",n[n.F2=60]=\"F2\",n[n.F3=61]=\"F3\",n[n.F4=62]=\"F4\",n[n.F5=63]=\"F5\",n[n.F6=64]=\"F6\",n[n.F7=65]=\"F7\",n[n.F8=66]=\"F8\",n[n.F9=67]=\"F9\",n[n.F10=68]=\"F10\",n[n.F11=69]=\"F11\",n[n.F12=70]=\"F12\",n[n.F13=71]=\"F13\",n[n.F14=72]=\"F14\",n[n.F15=73]=\"F15\",n[n.F16=74]=\"F16\",n[n.F17=75]=\"F17\",n[n.F18=76]=\"F18\",n[n.F19=77]=\"F19\",n[n.F20=78]=\"F20\",n[n.F21=79]=\"F21\",n[n.F22=80]=\"F22\",n[n.F23=81]=\"F23\",n[n.F24=82]=\"F24\",n[n.NumLock=83]=\"NumLock\",n[n.ScrollLock=84]=\"ScrollLock\",n[n.Semicolon=85]=\"Semicolon\",n[n.Equal=86]=\"Equal\",n[n.Comma=87]=\"Comma\",n[n.Minus=88]=\"Minus\",n[n.Period=89]=\"Period\",n[n.Slash=90]=\"Slash\",n[n.Backquote=91]=\"Backquote\",n[n.BracketLeft=92]=\"BracketLeft\",n[n.Backslash=93]=\"Backslash\",n[n.BracketRight=94]=\"BracketRight\",n[n.Quote=95]=\"Quote\",n[n.OEM_8=96]=\"OEM_8\",n[n.IntlBackslash=97]=\"IntlBackslash\",n[n.Numpad0=98]=\"Numpad0\",n[n.Numpad1=99]=\"Numpad1\",n[n.Numpad2=100]=\"Numpad2\",n[n.Numpad3=101]=\"Numpad3\",n[n.Numpad4=102]=\"Numpad4\",n[n.Numpad5=103]=\"Numpad5\",n[n.Numpad6=104]=\"Numpad6\",n[n.Numpad7=105]=\"Numpad7\",n[n.Numpad8=106]=\"Numpad8\",n[n.Numpad9=107]=\"Numpad9\",n[n.NumpadMultiply=108]=\"NumpadMultiply\",n[n.NumpadAdd=109]=\"NumpadAdd\",n[n.NUMPAD_SEPARATOR=110]=\"NUMPAD_SEPARATOR\",n[n.NumpadSubtract=111]=\"NumpadSubtract\",n[n.NumpadDecimal=112]=\"NumpadDecimal\",n[n.NumpadDivide=113]=\"NumpadDivide\",n[n.KEY_IN_COMPOSITION=114]=\"KEY_IN_COMPOSITION\",n[n.ABNT_C1=115]=\"ABNT_C1\",n[n.ABNT_C2=116]=\"ABNT_C2\",n[n.AudioVolumeMute=117]=\"AudioVolumeMute\",n[n.AudioVolumeUp=118]=\"AudioVolumeUp\",n[n.AudioVolumeDown=119]=\"AudioVolumeDown\",n[n.BrowserSearch=120]=\"BrowserSearch\",n[n.BrowserHome=121]=\"BrowserHome\",n[n.BrowserBack=122]=\"BrowserBack\",n[n.BrowserForward=123]=\"BrowserForward\",n[n.MediaTrackNext=124]=\"MediaTrackNext\",n[n.MediaTrackPrevious=125]=\"MediaTrackPrevious\",n[n.MediaStop=126]=\"MediaStop\",n[n.MediaPlayPause=127]=\"MediaPlayPause\",n[n.LaunchMediaPlayer=128]=\"LaunchMediaPlayer\",n[n.LaunchMail=129]=\"LaunchMail\",n[n.LaunchApp2=130]=\"LaunchApp2\",n[n.Clear=131]=\"Clear\",n[n.MAX_VALUE=132]=\"MAX_VALUE\"})(D7||(D7={}));var I7;(function(n){n[n.Hint=1]=\"Hint\",n[n.Info=2]=\"Info\",n[n.Warning=4]=\"Warning\",n[n.Error=8]=\"Error\"})(I7||(I7={}));var E7;(function(n){n[n.Unnecessary=1]=\"Unnecessary\",n[n.Deprecated=2]=\"Deprecated\"})(E7||(E7={}));var T7;(function(n){n[n.Inline=1]=\"Inline\",n[n.Gutter=2]=\"Gutter\"})(T7||(T7={}));var N7;(function(n){n[n.Normal=1]=\"Normal\",n[n.Underlined=2]=\"Underlined\"})(N7||(N7={}));var A7;(function(n){n[n.UNKNOWN=0]=\"UNKNOWN\",n[n.TEXTAREA=1]=\"TEXTAREA\",n[n.GUTTER_GLYPH_MARGIN=2]=\"GUTTER_GLYPH_MARGIN\",n[n.GUTTER_LINE_NUMBERS=3]=\"GUTTER_LINE_NUMBERS\",n[n.GUTTER_LINE_DECORATIONS=4]=\"GUTTER_LINE_DECORATIONS\",n[n.GUTTER_VIEW_ZONE=5]=\"GUTTER_VIEW_ZONE\",n[n.CONTENT_TEXT=6]=\"CONTENT_TEXT\",n[n.CONTENT_EMPTY=7]=\"CONTENT_EMPTY\",n[n.CONTENT_VIEW_ZONE=8]=\"CONTENT_VIEW_ZONE\",n[n.CONTENT_WIDGET=9]=\"CONTENT_WIDGET\",n[n.OVERVIEW_RULER=10]=\"OVERVIEW_RULER\",n[n.SCROLLBAR=11]=\"SCROLLBAR\",n[n.OVERLAY_WIDGET=12]=\"OVERLAY_WIDGET\",n[n.OUTSIDE_EDITOR=13]=\"OUTSIDE_EDITOR\"})(A7||(A7={}));var R7;(function(n){n[n.AIGenerated=1]=\"AIGenerated\"})(R7||(R7={}));var M7;(function(n){n[n.Invoke=0]=\"Invoke\",n[n.Automatic=1]=\"Automatic\"})(M7||(M7={}));var P7;(function(n){n[n.TOP_RIGHT_CORNER=0]=\"TOP_RIGHT_CORNER\",n[n.BOTTOM_RIGHT_CORNER=1]=\"BOTTOM_RIGHT_CORNER\",n[n.TOP_CENTER=2]=\"TOP_CENTER\"})(P7||(P7={}));var O7;(function(n){n[n.Left=1]=\"Left\",n[n.Center=2]=\"Center\",n[n.Right=4]=\"Right\",n[n.Full=7]=\"Full\"})(O7||(O7={}));var F7;(function(n){n[n.Word=0]=\"Word\",n[n.Line=1]=\"Line\",n[n.Suggest=2]=\"Suggest\"})(F7||(F7={}));var B7;(function(n){n[n.Left=0]=\"Left\",n[n.Right=1]=\"Right\",n[n.None=2]=\"None\",n[n.LeftOfInjectedText=3]=\"LeftOfInjectedText\",n[n.RightOfInjectedText=4]=\"RightOfInjectedText\"})(B7||(B7={}));var W7;(function(n){n[n.Off=0]=\"Off\",n[n.On=1]=\"On\",n[n.Relative=2]=\"Relative\",n[n.Interval=3]=\"Interval\",n[n.Custom=4]=\"Custom\"})(W7||(W7={}));var H7;(function(n){n[n.None=0]=\"None\",n[n.Text=1]=\"Text\",n[n.Blocks=2]=\"Blocks\"})(H7||(H7={}));var V7;(function(n){n[n.Smooth=0]=\"Smooth\",n[n.Immediate=1]=\"Immediate\"})(V7||(V7={}));var z7;(function(n){n[n.Auto=1]=\"Auto\",n[n.Hidden=2]=\"Hidden\",n[n.Visible=3]=\"Visible\"})(z7||(z7={}));var $7;(function(n){n[n.LTR=0]=\"LTR\",n[n.RTL=1]=\"RTL\"})($7||($7={}));var U7;(function(n){n.Off=\"off\",n.OnCode=\"onCode\",n.On=\"on\"})(U7||(U7={}));var j7;(function(n){n[n.Invoke=1]=\"Invoke\",n[n.TriggerCharacter=2]=\"TriggerCharacter\",n[n.ContentChange=3]=\"ContentChange\"})(j7||(j7={}));var K7;(function(n){n[n.File=0]=\"File\",n[n.Module=1]=\"Module\",n[n.Namespace=2]=\"Namespace\",n[n.Package=3]=\"Package\",n[n.Class=4]=\"Class\",n[n.Method=5]=\"Method\",n[n.Property=6]=\"Property\",n[n.Field=7]=\"Field\",n[n.Constructor=8]=\"Constructor\",n[n.Enum=9]=\"Enum\",n[n.Interface=10]=\"Interface\",n[n.Function=11]=\"Function\",n[n.Variable=12]=\"Variable\",n[n.Constant=13]=\"Constant\",n[n.String=14]=\"String\",n[n.Number=15]=\"Number\",n[n.Boolean=16]=\"Boolean\",n[n.Array=17]=\"Array\",n[n.Object=18]=\"Object\",n[n.Key=19]=\"Key\",n[n.Null=20]=\"Null\",n[n.EnumMember=21]=\"EnumMember\",n[n.Struct=22]=\"Struct\",n[n.Event=23]=\"Event\",n[n.Operator=24]=\"Operator\",n[n.TypeParameter=25]=\"TypeParameter\"})(K7||(K7={}));var q7;(function(n){n[n.Deprecated=1]=\"Deprecated\"})(q7||(q7={}));var G7;(function(n){n[n.Hidden=0]=\"Hidden\",n[n.Blink=1]=\"Blink\",n[n.Smooth=2]=\"Smooth\",n[n.Phase=3]=\"Phase\",n[n.Expand=4]=\"Expand\",n[n.Solid=5]=\"Solid\"})(G7||(G7={}));var Z7;(function(n){n[n.Line=1]=\"Line\",n[n.Block=2]=\"Block\",n[n.Underline=3]=\"Underline\",n[n.LineThin=4]=\"LineThin\",n[n.BlockOutline=5]=\"BlockOutline\",n[n.UnderlineThin=6]=\"UnderlineThin\"})(Z7||(Z7={}));var Y7;(function(n){n[n.AlwaysGrowsWhenTypingAtEdges=0]=\"AlwaysGrowsWhenTypingAtEdges\",n[n.NeverGrowsWhenTypingAtEdges=1]=\"NeverGrowsWhenTypingAtEdges\",n[n.GrowsOnlyWhenTypingBefore=2]=\"GrowsOnlyWhenTypingBefore\",n[n.GrowsOnlyWhenTypingAfter=3]=\"GrowsOnlyWhenTypingAfter\"})(Y7||(Y7={}));var X7;(function(n){n[n.None=0]=\"None\",n[n.Same=1]=\"Same\",n[n.Indent=2]=\"Indent\",n[n.DeepIndent=3]=\"DeepIndent\"})(X7||(X7={}));let rD=class{static chord(e,t){return Os(e,t)}};rD.CtrlCmd=2048;rD.Shift=1024;rD.Alt=512;rD.WinCtrl=256;function pae(){return{editor:void 0,languages:void 0,CancellationTokenSource:$n,Emitter:X,KeyCode:D7,KeyMod:rD,Position:ee,Range:A,Selection:it,SelectionDirection:$7,MarkerSeverity:I7,MarkerTag:E7,Uri:pt,Token:oL}}function lRe(n,e){const t=n;typeof t.vscodeWindowId!=\"number\"&&Object.defineProperty(t,\"vscodeWindowId\",{get:()=>e})}const Ji=window;function mae(n){return n}class cRe{constructor(e,t){this.lastCache=void 0,this.lastArgKey=void 0,typeof e==\"function\"?(this._fn=e,this._computeKey=mae):(this._fn=t,this._computeKey=e.getCacheKey)}get(e){const t=this._computeKey(e);return this.lastArgKey!==t&&(this.lastArgKey=t,this.lastCache=this._fn(e)),this.lastCache}}class lY{get cachedValues(){return this._map}constructor(e,t){this._map=new Map,this._map2=new Map,typeof e==\"function\"?(this._fn=e,this._computeKey=mae):(this._fn=t,this._computeKey=e.getCacheKey)}get(e){const t=this._computeKey(e);if(this._map2.has(t))return this._map2.get(t);const i=this._fn(e);return this._map.set(e,i),this._map2.set(t,i),i}}class pu{constructor(e){this.executor=e,this._didRun=!1}get value(){if(!this._didRun)try{this._value=this.executor()}catch(e){this._error=e}finally{this._didRun=!0}if(this._error)throw this._error;return this._value}get rawValue(){return this._value}}var EC;function _ae(n){return!n||typeof n!=\"string\"?!0:n.trim().length===0}const dRe=/{(\\d+)}/g;function l0(n,...e){return e.length===0?n:n.replace(dRe,function(t,i){const s=parseInt(i,10);return isNaN(s)||s<0||s>=e.length?t:e[s]})}function uRe(n){return n.replace(/[<>\"'&]/g,e=>{switch(e){case\"<\":return\"&lt;\";case\">\":return\"&gt;\";case'\"':return\"&quot;\";case\"'\":return\"&apos;\";case\"&\":return\"&amp;\"}return e})}function ox(n){return n.replace(/[<>&]/g,function(e){switch(e){case\"<\":return\"&lt;\";case\">\":return\"&gt;\";case\"&\":return\"&amp;\";default:return e}})}function wl(n){return n.replace(/[\\\\\\{\\}\\*\\+\\?\\|\\^\\$\\.\\[\\]\\(\\)]/g,\"\\\\$&\")}function hRe(n,e=\" \"){const t=aD(n,e);return vae(t,e)}function aD(n,e){if(!n||!e)return n;const t=e.length;if(t===0||n.length===0)return n;let i=0;for(;n.indexOf(e,i)===i;)i=i+t;return n.substring(i)}function vae(n,e){if(!n||!e)return n;const t=e.length,i=n.length;if(t===0||i===0)return n;let s=i,o=-1;for(;o=n.lastIndexOf(e,s-1),!(o===-1||o+t!==s);){if(o===0)return\"\";s=o}return n.substring(0,s)}function fRe(n){return n.replace(/[\\-\\\\\\{\\}\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g,\"\\\\$&\").replace(/[\\*]/g,\".*\")}function gRe(n){return n.replace(/\\*/g,\"\")}function bae(n,e,t={}){if(!n)throw new Error(\"Cannot create regex from empty string\");e||(n=wl(n)),t.wholeWord&&(/\\B/.test(n.charAt(0))||(n=\"\\\\b\"+n),/\\B/.test(n.charAt(n.length-1))||(n=n+\"\\\\b\"));let i=\"\";return t.global&&(i+=\"g\"),t.matchCase||(i+=\"i\"),t.multiline&&(i+=\"m\"),t.unicode&&(i+=\"u\"),new RegExp(n,i)}function pRe(n){return n.source===\"^\"||n.source===\"^$\"||n.source===\"$\"||n.source===\"^\\\\s*$\"?!1:!!(n.exec(\"\")&&n.lastIndex===0)}function Wh(n){return n.split(/\\r\\n|\\r|\\n/)}function mRe(n){var e;const t=[],i=n.split(/(\\r\\n|\\r|\\n)/);for(let s=0;s<Math.ceil(i.length/2);s++)t.push(i[2*s]+((e=i[2*s+1])!==null&&e!==void 0?e:\"\"));return t}function fr(n){for(let e=0,t=n.length;e<t;e++){const i=n.charCodeAt(e);if(i!==32&&i!==9)return e}return-1}function on(n,e=0,t=n.length){for(let i=e;i<t;i++){const s=n.charCodeAt(i);if(s!==32&&s!==9)return n.substring(e,i)}return n.substring(e,t)}function Kd(n,e=n.length-1){for(let t=e;t>=0;t--){const i=n.charCodeAt(t);if(i!==32&&i!==9)return t}return-1}function dL(n,e){return n<e?-1:n>e?1:0}function UV(n,e,t=0,i=n.length,s=0,o=e.length){for(;t<i&&s<o;t++,s++){const l=n.charCodeAt(t),c=e.charCodeAt(s);if(l<c)return-1;if(l>c)return 1}const r=i-t,a=o-s;return r<a?-1:r>a?1:0}function Q7(n,e){return lD(n,e,0,n.length,0,e.length)}function lD(n,e,t=0,i=n.length,s=0,o=e.length){for(;t<i&&s<o;t++,s++){let l=n.charCodeAt(t),c=e.charCodeAt(s);if(l===c)continue;if(l>=128||c>=128)return UV(n.toLowerCase(),e.toLowerCase(),t,i,s,o);zp(l)&&(l-=32),zp(c)&&(c-=32);const d=l-c;if(d!==0)return d}const r=i-t,a=o-s;return r<a?-1:r>a?1:0}function SE(n){return n>=48&&n<=57}function zp(n){return n>=97&&n<=122}function Ku(n){return n>=65&&n<=90}function f1(n,e){return n.length===e.length&&lD(n,e)===0}function jV(n,e){const t=e.length;return e.length>n.length?!1:lD(n,e,0,t)===0}function Rm(n,e){const t=Math.min(n.length,e.length);let i;for(i=0;i<t;i++)if(n.charCodeAt(i)!==e.charCodeAt(i))return i;return t}function M2(n,e){const t=Math.min(n.length,e.length);let i;const s=n.length-1,o=e.length-1;for(i=0;i<t;i++)if(n.charCodeAt(s-i)!==e.charCodeAt(o-i))return i;return t}function Gs(n){return 55296<=n&&n<=56319}function c0(n){return 56320<=n&&n<=57343}function KV(n,e){return(n-55296<<10)+(e-56320)+65536}function P2(n,e,t){const i=n.charCodeAt(t);if(Gs(i)&&t+1<e){const s=n.charCodeAt(t+1);if(c0(s))return KV(i,s)}return i}function _Re(n,e){const t=n.charCodeAt(e-1);if(c0(t)&&e>1){const i=n.charCodeAt(e-2);if(Gs(i))return KV(i,t)}return t}class qV{get offset(){return this._offset}constructor(e,t=0){this._str=e,this._len=e.length,this._offset=t}setOffset(e){this._offset=e}prevCodePoint(){const e=_Re(this._str,this._offset);return this._offset-=e>=65536?2:1,e}nextCodePoint(){const e=P2(this._str,this._len,this._offset);return this._offset+=e>=65536?2:1,e}eol(){return this._offset>=this._len}}class O2{get offset(){return this._iterator.offset}constructor(e,t=0){this._iterator=new qV(e,t)}nextGraphemeLength(){const e=$p.getInstance(),t=this._iterator,i=t.offset;let s=e.getGraphemeBreakType(t.nextCodePoint());for(;!t.eol();){const o=t.offset,r=e.getGraphemeBreakType(t.nextCodePoint());if(cY(s,r)){t.setOffset(o);break}s=r}return t.offset-i}prevGraphemeLength(){const e=$p.getInstance(),t=this._iterator,i=t.offset;let s=e.getGraphemeBreakType(t.prevCodePoint());for(;t.offset>0;){const o=t.offset,r=e.getGraphemeBreakType(t.prevCodePoint());if(cY(r,s)){t.setOffset(o);break}s=r}return i-t.offset}eol(){return this._iterator.eol()}}function GV(n,e){return new O2(n,e).nextGraphemeLength()}function Cae(n,e){return new O2(n,e).prevGraphemeLength()}function vRe(n,e){e>0&&c0(n.charCodeAt(e))&&e--;const t=e+GV(n,e);return[t-Cae(n,t),t]}let SF;function bRe(){return/(?:[\\u05BE\\u05C0\\u05C3\\u05C6\\u05D0-\\u05F4\\u0608\\u060B\\u060D\\u061B-\\u064A\\u066D-\\u066F\\u0671-\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1-\\u07EA\\u07F4\\u07F5\\u07FA\\u07FE-\\u0815\\u081A\\u0824\\u0828\\u0830-\\u0858\\u085E-\\u088E\\u08A0-\\u08C9\\u200F\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFD3D\\uFD50-\\uFDC7\\uFDF0-\\uFDFC\\uFE70-\\uFEFC]|\\uD802[\\uDC00-\\uDD1B\\uDD20-\\uDE00\\uDE10-\\uDE35\\uDE40-\\uDEE4\\uDEEB-\\uDF35\\uDF40-\\uDFFF]|\\uD803[\\uDC00-\\uDD23\\uDE80-\\uDEA9\\uDEAD-\\uDF45\\uDF51-\\uDF81\\uDF86-\\uDFF6]|\\uD83A[\\uDC00-\\uDCCF\\uDD00-\\uDD43\\uDD4B-\\uDFFF]|\\uD83B[\\uDC00-\\uDEBB])/}function TC(n){return SF||(SF=bRe()),SF.test(n)}const CRe=/^[\\t\\n\\r\\x20-\\x7E]*$/;function cD(n){return CRe.test(n)}const wae=/[\\u2028\\u2029]/;function yae(n){return wae.test(n)}function Mm(n){return n>=11904&&n<=55215||n>=63744&&n<=64255||n>=65281&&n<=65374}function ZV(n){return n>=127462&&n<=127487||n===8986||n===8987||n===9200||n===9203||n>=9728&&n<=10175||n===11088||n===11093||n>=127744&&n<=128591||n>=128640&&n<=128764||n>=128992&&n<=129008||n>=129280&&n<=129535||n>=129648&&n<=129782}const wRe=\"\\uFEFF\";function YV(n){return!!(n&&n.length>0&&n.charCodeAt(0)===65279)}function yRe(n,e=!1){return n?(e&&(n=n.replace(/\\\\./g,\"\")),n.toLowerCase()!==n):!1}function Sae(n){return n=n%(2*26),n<26?String.fromCharCode(97+n):String.fromCharCode(65+n-26)}function cY(n,e){return n===0?e!==5&&e!==7:n===2&&e===3?!1:n===4||n===2||n===3||e===4||e===2||e===3?!0:!(n===8&&(e===8||e===9||e===11||e===12)||(n===11||n===9)&&(e===9||e===10)||(n===12||n===10)&&e===10||e===5||e===13||e===7||n===1||n===13&&e===14||n===6&&e===6)}class $p{static getInstance(){return $p._INSTANCE||($p._INSTANCE=new $p),$p._INSTANCE}constructor(){this._data=SRe()}getGraphemeBreakType(e){if(e<32)return e===10?3:e===13?2:4;if(e<127)return 0;const t=this._data,i=t.length/3;let s=1;for(;s<=i;)if(e<t[3*s])s=2*s;else if(e>t[3*s+1])s=2*s+1;else return t[3*s+2];return 0}}$p._INSTANCE=null;function SRe(){return JSON.parse(\"[0,0,0,51229,51255,12,44061,44087,12,127462,127487,6,7083,7085,5,47645,47671,12,54813,54839,12,128678,128678,14,3270,3270,5,9919,9923,14,45853,45879,12,49437,49463,12,53021,53047,12,71216,71218,7,128398,128399,14,129360,129374,14,2519,2519,5,4448,4519,9,9742,9742,14,12336,12336,14,44957,44983,12,46749,46775,12,48541,48567,12,50333,50359,12,52125,52151,12,53917,53943,12,69888,69890,5,73018,73018,5,127990,127990,14,128558,128559,14,128759,128760,14,129653,129655,14,2027,2035,5,2891,2892,7,3761,3761,5,6683,6683,5,8293,8293,4,9825,9826,14,9999,9999,14,43452,43453,5,44509,44535,12,45405,45431,12,46301,46327,12,47197,47223,12,48093,48119,12,48989,49015,12,49885,49911,12,50781,50807,12,51677,51703,12,52573,52599,12,53469,53495,12,54365,54391,12,65279,65279,4,70471,70472,7,72145,72147,7,119173,119179,5,127799,127818,14,128240,128244,14,128512,128512,14,128652,128652,14,128721,128722,14,129292,129292,14,129445,129450,14,129734,129743,14,1476,1477,5,2366,2368,7,2750,2752,7,3076,3076,5,3415,3415,5,4141,4144,5,6109,6109,5,6964,6964,5,7394,7400,5,9197,9198,14,9770,9770,14,9877,9877,14,9968,9969,14,10084,10084,14,43052,43052,5,43713,43713,5,44285,44311,12,44733,44759,12,45181,45207,12,45629,45655,12,46077,46103,12,46525,46551,12,46973,46999,12,47421,47447,12,47869,47895,12,48317,48343,12,48765,48791,12,49213,49239,12,49661,49687,12,50109,50135,12,50557,50583,12,51005,51031,12,51453,51479,12,51901,51927,12,52349,52375,12,52797,52823,12,53245,53271,12,53693,53719,12,54141,54167,12,54589,54615,12,55037,55063,12,69506,69509,5,70191,70193,5,70841,70841,7,71463,71467,5,72330,72342,5,94031,94031,5,123628,123631,5,127763,127765,14,127941,127941,14,128043,128062,14,128302,128317,14,128465,128467,14,128539,128539,14,128640,128640,14,128662,128662,14,128703,128703,14,128745,128745,14,129004,129007,14,129329,129330,14,129402,129402,14,129483,129483,14,129686,129704,14,130048,131069,14,173,173,4,1757,1757,1,2200,2207,5,2434,2435,7,2631,2632,5,2817,2817,5,3008,3008,5,3201,3201,5,3387,3388,5,3542,3542,5,3902,3903,7,4190,4192,5,6002,6003,5,6439,6440,5,6765,6770,7,7019,7027,5,7154,7155,7,8205,8205,13,8505,8505,14,9654,9654,14,9757,9757,14,9792,9792,14,9852,9853,14,9890,9894,14,9937,9937,14,9981,9981,14,10035,10036,14,11035,11036,14,42654,42655,5,43346,43347,7,43587,43587,5,44006,44007,7,44173,44199,12,44397,44423,12,44621,44647,12,44845,44871,12,45069,45095,12,45293,45319,12,45517,45543,12,45741,45767,12,45965,45991,12,46189,46215,12,46413,46439,12,46637,46663,12,46861,46887,12,47085,47111,12,47309,47335,12,47533,47559,12,47757,47783,12,47981,48007,12,48205,48231,12,48429,48455,12,48653,48679,12,48877,48903,12,49101,49127,12,49325,49351,12,49549,49575,12,49773,49799,12,49997,50023,12,50221,50247,12,50445,50471,12,50669,50695,12,50893,50919,12,51117,51143,12,51341,51367,12,51565,51591,12,51789,51815,12,52013,52039,12,52237,52263,12,52461,52487,12,52685,52711,12,52909,52935,12,53133,53159,12,53357,53383,12,53581,53607,12,53805,53831,12,54029,54055,12,54253,54279,12,54477,54503,12,54701,54727,12,54925,54951,12,55149,55175,12,68101,68102,5,69762,69762,7,70067,70069,7,70371,70378,5,70720,70721,7,71087,71087,5,71341,71341,5,71995,71996,5,72249,72249,7,72850,72871,5,73109,73109,5,118576,118598,5,121505,121519,5,127245,127247,14,127568,127569,14,127777,127777,14,127872,127891,14,127956,127967,14,128015,128016,14,128110,128172,14,128259,128259,14,128367,128368,14,128424,128424,14,128488,128488,14,128530,128532,14,128550,128551,14,128566,128566,14,128647,128647,14,128656,128656,14,128667,128673,14,128691,128693,14,128715,128715,14,128728,128732,14,128752,128752,14,128765,128767,14,129096,129103,14,129311,129311,14,129344,129349,14,129394,129394,14,129413,129425,14,129466,129471,14,129511,129535,14,129664,129666,14,129719,129722,14,129760,129767,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2307,2307,7,2382,2383,7,2497,2500,5,2563,2563,7,2677,2677,5,2763,2764,7,2879,2879,5,2914,2915,5,3021,3021,5,3142,3144,5,3263,3263,5,3285,3286,5,3398,3400,7,3530,3530,5,3633,3633,5,3864,3865,5,3974,3975,5,4155,4156,7,4229,4230,5,5909,5909,7,6078,6085,7,6277,6278,5,6451,6456,7,6744,6750,5,6846,6846,5,6972,6972,5,7074,7077,5,7146,7148,7,7222,7223,5,7416,7417,5,8234,8238,4,8417,8417,5,9000,9000,14,9203,9203,14,9730,9731,14,9748,9749,14,9762,9763,14,9776,9783,14,9800,9811,14,9831,9831,14,9872,9873,14,9882,9882,14,9900,9903,14,9929,9933,14,9941,9960,14,9974,9974,14,9989,9989,14,10006,10006,14,10062,10062,14,10160,10160,14,11647,11647,5,12953,12953,14,43019,43019,5,43232,43249,5,43443,43443,5,43567,43568,7,43696,43696,5,43765,43765,7,44013,44013,5,44117,44143,12,44229,44255,12,44341,44367,12,44453,44479,12,44565,44591,12,44677,44703,12,44789,44815,12,44901,44927,12,45013,45039,12,45125,45151,12,45237,45263,12,45349,45375,12,45461,45487,12,45573,45599,12,45685,45711,12,45797,45823,12,45909,45935,12,46021,46047,12,46133,46159,12,46245,46271,12,46357,46383,12,46469,46495,12,46581,46607,12,46693,46719,12,46805,46831,12,46917,46943,12,47029,47055,12,47141,47167,12,47253,47279,12,47365,47391,12,47477,47503,12,47589,47615,12,47701,47727,12,47813,47839,12,47925,47951,12,48037,48063,12,48149,48175,12,48261,48287,12,48373,48399,12,48485,48511,12,48597,48623,12,48709,48735,12,48821,48847,12,48933,48959,12,49045,49071,12,49157,49183,12,49269,49295,12,49381,49407,12,49493,49519,12,49605,49631,12,49717,49743,12,49829,49855,12,49941,49967,12,50053,50079,12,50165,50191,12,50277,50303,12,50389,50415,12,50501,50527,12,50613,50639,12,50725,50751,12,50837,50863,12,50949,50975,12,51061,51087,12,51173,51199,12,51285,51311,12,51397,51423,12,51509,51535,12,51621,51647,12,51733,51759,12,51845,51871,12,51957,51983,12,52069,52095,12,52181,52207,12,52293,52319,12,52405,52431,12,52517,52543,12,52629,52655,12,52741,52767,12,52853,52879,12,52965,52991,12,53077,53103,12,53189,53215,12,53301,53327,12,53413,53439,12,53525,53551,12,53637,53663,12,53749,53775,12,53861,53887,12,53973,53999,12,54085,54111,12,54197,54223,12,54309,54335,12,54421,54447,12,54533,54559,12,54645,54671,12,54757,54783,12,54869,54895,12,54981,55007,12,55093,55119,12,55243,55291,10,66045,66045,5,68325,68326,5,69688,69702,5,69817,69818,5,69957,69958,7,70089,70092,5,70198,70199,5,70462,70462,5,70502,70508,5,70750,70750,5,70846,70846,7,71100,71101,5,71230,71230,7,71351,71351,5,71737,71738,5,72000,72000,7,72160,72160,5,72273,72278,5,72752,72758,5,72882,72883,5,73031,73031,5,73461,73462,7,94192,94193,7,119149,119149,7,121403,121452,5,122915,122916,5,126980,126980,14,127358,127359,14,127535,127535,14,127759,127759,14,127771,127771,14,127792,127793,14,127825,127867,14,127897,127899,14,127945,127945,14,127985,127986,14,128000,128007,14,128021,128021,14,128066,128100,14,128184,128235,14,128249,128252,14,128266,128276,14,128335,128335,14,128379,128390,14,128407,128419,14,128444,128444,14,128481,128481,14,128499,128499,14,128526,128526,14,128536,128536,14,128543,128543,14,128556,128556,14,128564,128564,14,128577,128580,14,128643,128645,14,128649,128649,14,128654,128654,14,128660,128660,14,128664,128664,14,128675,128675,14,128686,128689,14,128695,128696,14,128705,128709,14,128717,128719,14,128725,128725,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129009,129023,14,129160,129167,14,129296,129304,14,129320,129327,14,129340,129342,14,129356,129356,14,129388,129392,14,129399,129400,14,129404,129407,14,129432,129442,14,129454,129455,14,129473,129474,14,129485,129487,14,129648,129651,14,129659,129660,14,129671,129679,14,129709,129711,14,129728,129730,14,129751,129753,14,129776,129782,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2274,2274,1,2363,2363,7,2377,2380,7,2402,2403,5,2494,2494,5,2507,2508,7,2558,2558,5,2622,2624,7,2641,2641,5,2691,2691,7,2759,2760,5,2786,2787,5,2876,2876,5,2881,2884,5,2901,2902,5,3006,3006,5,3014,3016,7,3072,3072,5,3134,3136,5,3157,3158,5,3260,3260,5,3266,3266,5,3274,3275,7,3328,3329,5,3391,3392,7,3405,3405,5,3457,3457,5,3536,3537,7,3551,3551,5,3636,3642,5,3764,3772,5,3895,3895,5,3967,3967,7,3993,4028,5,4146,4151,5,4182,4183,7,4226,4226,5,4253,4253,5,4957,4959,5,5940,5940,7,6070,6070,7,6087,6088,7,6158,6158,4,6432,6434,5,6448,6449,7,6679,6680,5,6742,6742,5,6754,6754,5,6783,6783,5,6912,6915,5,6966,6970,5,6978,6978,5,7042,7042,7,7080,7081,5,7143,7143,7,7150,7150,7,7212,7219,5,7380,7392,5,7412,7412,5,8203,8203,4,8232,8232,4,8265,8265,14,8400,8412,5,8421,8432,5,8617,8618,14,9167,9167,14,9200,9200,14,9410,9410,14,9723,9726,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9774,14,9786,9786,14,9794,9794,14,9823,9823,14,9828,9828,14,9833,9850,14,9855,9855,14,9875,9875,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9935,9935,14,9939,9939,14,9962,9962,14,9972,9972,14,9978,9978,14,9986,9986,14,9997,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10133,10135,14,10548,10549,14,11093,11093,14,12330,12333,5,12441,12442,5,42608,42610,5,43010,43010,5,43045,43046,5,43188,43203,7,43302,43309,5,43392,43394,5,43446,43449,5,43493,43493,5,43571,43572,7,43597,43597,7,43703,43704,5,43756,43757,5,44003,44004,7,44009,44010,7,44033,44059,12,44089,44115,12,44145,44171,12,44201,44227,12,44257,44283,12,44313,44339,12,44369,44395,12,44425,44451,12,44481,44507,12,44537,44563,12,44593,44619,12,44649,44675,12,44705,44731,12,44761,44787,12,44817,44843,12,44873,44899,12,44929,44955,12,44985,45011,12,45041,45067,12,45097,45123,12,45153,45179,12,45209,45235,12,45265,45291,12,45321,45347,12,45377,45403,12,45433,45459,12,45489,45515,12,45545,45571,12,45601,45627,12,45657,45683,12,45713,45739,12,45769,45795,12,45825,45851,12,45881,45907,12,45937,45963,12,45993,46019,12,46049,46075,12,46105,46131,12,46161,46187,12,46217,46243,12,46273,46299,12,46329,46355,12,46385,46411,12,46441,46467,12,46497,46523,12,46553,46579,12,46609,46635,12,46665,46691,12,46721,46747,12,46777,46803,12,46833,46859,12,46889,46915,12,46945,46971,12,47001,47027,12,47057,47083,12,47113,47139,12,47169,47195,12,47225,47251,12,47281,47307,12,47337,47363,12,47393,47419,12,47449,47475,12,47505,47531,12,47561,47587,12,47617,47643,12,47673,47699,12,47729,47755,12,47785,47811,12,47841,47867,12,47897,47923,12,47953,47979,12,48009,48035,12,48065,48091,12,48121,48147,12,48177,48203,12,48233,48259,12,48289,48315,12,48345,48371,12,48401,48427,12,48457,48483,12,48513,48539,12,48569,48595,12,48625,48651,12,48681,48707,12,48737,48763,12,48793,48819,12,48849,48875,12,48905,48931,12,48961,48987,12,49017,49043,12,49073,49099,12,49129,49155,12,49185,49211,12,49241,49267,12,49297,49323,12,49353,49379,12,49409,49435,12,49465,49491,12,49521,49547,12,49577,49603,12,49633,49659,12,49689,49715,12,49745,49771,12,49801,49827,12,49857,49883,12,49913,49939,12,49969,49995,12,50025,50051,12,50081,50107,12,50137,50163,12,50193,50219,12,50249,50275,12,50305,50331,12,50361,50387,12,50417,50443,12,50473,50499,12,50529,50555,12,50585,50611,12,50641,50667,12,50697,50723,12,50753,50779,12,50809,50835,12,50865,50891,12,50921,50947,12,50977,51003,12,51033,51059,12,51089,51115,12,51145,51171,12,51201,51227,12,51257,51283,12,51313,51339,12,51369,51395,12,51425,51451,12,51481,51507,12,51537,51563,12,51593,51619,12,51649,51675,12,51705,51731,12,51761,51787,12,51817,51843,12,51873,51899,12,51929,51955,12,51985,52011,12,52041,52067,12,52097,52123,12,52153,52179,12,52209,52235,12,52265,52291,12,52321,52347,12,52377,52403,12,52433,52459,12,52489,52515,12,52545,52571,12,52601,52627,12,52657,52683,12,52713,52739,12,52769,52795,12,52825,52851,12,52881,52907,12,52937,52963,12,52993,53019,12,53049,53075,12,53105,53131,12,53161,53187,12,53217,53243,12,53273,53299,12,53329,53355,12,53385,53411,12,53441,53467,12,53497,53523,12,53553,53579,12,53609,53635,12,53665,53691,12,53721,53747,12,53777,53803,12,53833,53859,12,53889,53915,12,53945,53971,12,54001,54027,12,54057,54083,12,54113,54139,12,54169,54195,12,54225,54251,12,54281,54307,12,54337,54363,12,54393,54419,12,54449,54475,12,54505,54531,12,54561,54587,12,54617,54643,12,54673,54699,12,54729,54755,12,54785,54811,12,54841,54867,12,54897,54923,12,54953,54979,12,55009,55035,12,55065,55091,12,55121,55147,12,55177,55203,12,65024,65039,5,65520,65528,4,66422,66426,5,68152,68154,5,69291,69292,5,69633,69633,5,69747,69748,5,69811,69814,5,69826,69826,5,69932,69932,7,70016,70017,5,70079,70080,7,70095,70095,5,70196,70196,5,70367,70367,5,70402,70403,7,70464,70464,5,70487,70487,5,70709,70711,7,70725,70725,7,70833,70834,7,70843,70844,7,70849,70849,7,71090,71093,5,71103,71104,5,71227,71228,7,71339,71339,5,71344,71349,5,71458,71461,5,71727,71735,5,71985,71989,7,71998,71998,5,72002,72002,7,72154,72155,5,72193,72202,5,72251,72254,5,72281,72283,5,72344,72345,5,72766,72766,7,72874,72880,5,72885,72886,5,73023,73029,5,73104,73105,5,73111,73111,5,92912,92916,5,94095,94098,5,113824,113827,4,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,125252,125258,5,127183,127183,14,127340,127343,14,127377,127386,14,127491,127503,14,127548,127551,14,127744,127756,14,127761,127761,14,127769,127769,14,127773,127774,14,127780,127788,14,127796,127797,14,127820,127823,14,127869,127869,14,127894,127895,14,127902,127903,14,127943,127943,14,127947,127950,14,127972,127972,14,127988,127988,14,127992,127994,14,128009,128011,14,128019,128019,14,128023,128041,14,128064,128064,14,128102,128107,14,128174,128181,14,128238,128238,14,128246,128247,14,128254,128254,14,128264,128264,14,128278,128299,14,128329,128330,14,128348,128359,14,128371,128377,14,128392,128393,14,128401,128404,14,128421,128421,14,128433,128434,14,128450,128452,14,128476,128478,14,128483,128483,14,128495,128495,14,128506,128506,14,128519,128520,14,128528,128528,14,128534,128534,14,128538,128538,14,128540,128542,14,128544,128549,14,128552,128555,14,128557,128557,14,128560,128563,14,128565,128565,14,128567,128576,14,128581,128591,14,128641,128642,14,128646,128646,14,128648,128648,14,128650,128651,14,128653,128653,14,128655,128655,14,128657,128659,14,128661,128661,14,128663,128663,14,128665,128666,14,128674,128674,14,128676,128677,14,128679,128685,14,128690,128690,14,128694,128694,14,128697,128702,14,128704,128704,14,128710,128714,14,128716,128716,14,128720,128720,14,128723,128724,14,128726,128727,14,128733,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129008,129008,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129661,129663,14,129667,129670,14,129680,129685,14,129705,129708,14,129712,129718,14,129723,129727,14,129731,129733,14,129744,129750,14,129754,129759,14,129768,129775,14,129783,129791,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2192,2193,1,2250,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3132,3132,5,3137,3140,7,3146,3149,5,3170,3171,5,3202,3203,7,3262,3262,7,3264,3265,7,3267,3268,7,3271,3272,7,3276,3277,5,3298,3299,5,3330,3331,7,3390,3390,5,3393,3396,5,3402,3404,7,3406,3406,1,3426,3427,5,3458,3459,7,3535,3535,5,3538,3540,5,3544,3550,7,3570,3571,7,3635,3635,7,3655,3662,5,3763,3763,7,3784,3789,5,3893,3893,5,3897,3897,5,3953,3966,5,3968,3972,5,3981,3991,5,4038,4038,5,4145,4145,7,4153,4154,5,4157,4158,5,4184,4185,5,4209,4212,5,4228,4228,7,4237,4237,5,4352,4447,8,4520,4607,10,5906,5908,5,5938,5939,5,5970,5971,5,6068,6069,5,6071,6077,5,6086,6086,5,6089,6099,5,6155,6157,5,6159,6159,5,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6862,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7679,5,8204,8204,5,8206,8207,4,8233,8233,4,8252,8252,14,8288,8292,4,8294,8303,4,8413,8416,5,8418,8420,5,8482,8482,14,8596,8601,14,8986,8987,14,9096,9096,14,9193,9196,14,9199,9199,14,9201,9202,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9729,14,9732,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9775,9775,14,9784,9785,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9874,14,9876,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9934,14,9936,9936,14,9938,9938,14,9940,9940,14,9961,9961,14,9963,9967,14,9970,9971,14,9973,9973,14,9975,9977,14,9979,9980,14,9982,9985,14,9987,9988,14,9992,9996,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10083,14,10085,10087,14,10145,10145,14,10175,10175,14,11013,11015,14,11088,11088,14,11503,11505,5,11744,11775,5,12334,12335,5,12349,12349,14,12951,12951,14,42607,42607,5,42612,42621,5,42736,42737,5,43014,43014,5,43043,43044,7,43047,43047,7,43136,43137,7,43204,43205,5,43263,43263,5,43335,43345,5,43360,43388,8,43395,43395,7,43444,43445,7,43450,43451,7,43454,43456,7,43561,43566,5,43569,43570,5,43573,43574,5,43596,43596,5,43644,43644,5,43698,43700,5,43710,43711,5,43755,43755,7,43758,43759,7,43766,43766,5,44005,44005,5,44008,44008,5,44012,44012,7,44032,44032,11,44060,44060,11,44088,44088,11,44116,44116,11,44144,44144,11,44172,44172,11,44200,44200,11,44228,44228,11,44256,44256,11,44284,44284,11,44312,44312,11,44340,44340,11,44368,44368,11,44396,44396,11,44424,44424,11,44452,44452,11,44480,44480,11,44508,44508,11,44536,44536,11,44564,44564,11,44592,44592,11,44620,44620,11,44648,44648,11,44676,44676,11,44704,44704,11,44732,44732,11,44760,44760,11,44788,44788,11,44816,44816,11,44844,44844,11,44872,44872,11,44900,44900,11,44928,44928,11,44956,44956,11,44984,44984,11,45012,45012,11,45040,45040,11,45068,45068,11,45096,45096,11,45124,45124,11,45152,45152,11,45180,45180,11,45208,45208,11,45236,45236,11,45264,45264,11,45292,45292,11,45320,45320,11,45348,45348,11,45376,45376,11,45404,45404,11,45432,45432,11,45460,45460,11,45488,45488,11,45516,45516,11,45544,45544,11,45572,45572,11,45600,45600,11,45628,45628,11,45656,45656,11,45684,45684,11,45712,45712,11,45740,45740,11,45768,45768,11,45796,45796,11,45824,45824,11,45852,45852,11,45880,45880,11,45908,45908,11,45936,45936,11,45964,45964,11,45992,45992,11,46020,46020,11,46048,46048,11,46076,46076,11,46104,46104,11,46132,46132,11,46160,46160,11,46188,46188,11,46216,46216,11,46244,46244,11,46272,46272,11,46300,46300,11,46328,46328,11,46356,46356,11,46384,46384,11,46412,46412,11,46440,46440,11,46468,46468,11,46496,46496,11,46524,46524,11,46552,46552,11,46580,46580,11,46608,46608,11,46636,46636,11,46664,46664,11,46692,46692,11,46720,46720,11,46748,46748,11,46776,46776,11,46804,46804,11,46832,46832,11,46860,46860,11,46888,46888,11,46916,46916,11,46944,46944,11,46972,46972,11,47000,47000,11,47028,47028,11,47056,47056,11,47084,47084,11,47112,47112,11,47140,47140,11,47168,47168,11,47196,47196,11,47224,47224,11,47252,47252,11,47280,47280,11,47308,47308,11,47336,47336,11,47364,47364,11,47392,47392,11,47420,47420,11,47448,47448,11,47476,47476,11,47504,47504,11,47532,47532,11,47560,47560,11,47588,47588,11,47616,47616,11,47644,47644,11,47672,47672,11,47700,47700,11,47728,47728,11,47756,47756,11,47784,47784,11,47812,47812,11,47840,47840,11,47868,47868,11,47896,47896,11,47924,47924,11,47952,47952,11,47980,47980,11,48008,48008,11,48036,48036,11,48064,48064,11,48092,48092,11,48120,48120,11,48148,48148,11,48176,48176,11,48204,48204,11,48232,48232,11,48260,48260,11,48288,48288,11,48316,48316,11,48344,48344,11,48372,48372,11,48400,48400,11,48428,48428,11,48456,48456,11,48484,48484,11,48512,48512,11,48540,48540,11,48568,48568,11,48596,48596,11,48624,48624,11,48652,48652,11,48680,48680,11,48708,48708,11,48736,48736,11,48764,48764,11,48792,48792,11,48820,48820,11,48848,48848,11,48876,48876,11,48904,48904,11,48932,48932,11,48960,48960,11,48988,48988,11,49016,49016,11,49044,49044,11,49072,49072,11,49100,49100,11,49128,49128,11,49156,49156,11,49184,49184,11,49212,49212,11,49240,49240,11,49268,49268,11,49296,49296,11,49324,49324,11,49352,49352,11,49380,49380,11,49408,49408,11,49436,49436,11,49464,49464,11,49492,49492,11,49520,49520,11,49548,49548,11,49576,49576,11,49604,49604,11,49632,49632,11,49660,49660,11,49688,49688,11,49716,49716,11,49744,49744,11,49772,49772,11,49800,49800,11,49828,49828,11,49856,49856,11,49884,49884,11,49912,49912,11,49940,49940,11,49968,49968,11,49996,49996,11,50024,50024,11,50052,50052,11,50080,50080,11,50108,50108,11,50136,50136,11,50164,50164,11,50192,50192,11,50220,50220,11,50248,50248,11,50276,50276,11,50304,50304,11,50332,50332,11,50360,50360,11,50388,50388,11,50416,50416,11,50444,50444,11,50472,50472,11,50500,50500,11,50528,50528,11,50556,50556,11,50584,50584,11,50612,50612,11,50640,50640,11,50668,50668,11,50696,50696,11,50724,50724,11,50752,50752,11,50780,50780,11,50808,50808,11,50836,50836,11,50864,50864,11,50892,50892,11,50920,50920,11,50948,50948,11,50976,50976,11,51004,51004,11,51032,51032,11,51060,51060,11,51088,51088,11,51116,51116,11,51144,51144,11,51172,51172,11,51200,51200,11,51228,51228,11,51256,51256,11,51284,51284,11,51312,51312,11,51340,51340,11,51368,51368,11,51396,51396,11,51424,51424,11,51452,51452,11,51480,51480,11,51508,51508,11,51536,51536,11,51564,51564,11,51592,51592,11,51620,51620,11,51648,51648,11,51676,51676,11,51704,51704,11,51732,51732,11,51760,51760,11,51788,51788,11,51816,51816,11,51844,51844,11,51872,51872,11,51900,51900,11,51928,51928,11,51956,51956,11,51984,51984,11,52012,52012,11,52040,52040,11,52068,52068,11,52096,52096,11,52124,52124,11,52152,52152,11,52180,52180,11,52208,52208,11,52236,52236,11,52264,52264,11,52292,52292,11,52320,52320,11,52348,52348,11,52376,52376,11,52404,52404,11,52432,52432,11,52460,52460,11,52488,52488,11,52516,52516,11,52544,52544,11,52572,52572,11,52600,52600,11,52628,52628,11,52656,52656,11,52684,52684,11,52712,52712,11,52740,52740,11,52768,52768,11,52796,52796,11,52824,52824,11,52852,52852,11,52880,52880,11,52908,52908,11,52936,52936,11,52964,52964,11,52992,52992,11,53020,53020,11,53048,53048,11,53076,53076,11,53104,53104,11,53132,53132,11,53160,53160,11,53188,53188,11,53216,53216,11,53244,53244,11,53272,53272,11,53300,53300,11,53328,53328,11,53356,53356,11,53384,53384,11,53412,53412,11,53440,53440,11,53468,53468,11,53496,53496,11,53524,53524,11,53552,53552,11,53580,53580,11,53608,53608,11,53636,53636,11,53664,53664,11,53692,53692,11,53720,53720,11,53748,53748,11,53776,53776,11,53804,53804,11,53832,53832,11,53860,53860,11,53888,53888,11,53916,53916,11,53944,53944,11,53972,53972,11,54000,54000,11,54028,54028,11,54056,54056,11,54084,54084,11,54112,54112,11,54140,54140,11,54168,54168,11,54196,54196,11,54224,54224,11,54252,54252,11,54280,54280,11,54308,54308,11,54336,54336,11,54364,54364,11,54392,54392,11,54420,54420,11,54448,54448,11,54476,54476,11,54504,54504,11,54532,54532,11,54560,54560,11,54588,54588,11,54616,54616,11,54644,54644,11,54672,54672,11,54700,54700,11,54728,54728,11,54756,54756,11,54784,54784,11,54812,54812,11,54840,54840,11,54868,54868,11,54896,54896,11,54924,54924,11,54952,54952,11,54980,54980,11,55008,55008,11,55036,55036,11,55064,55064,11,55092,55092,11,55120,55120,11,55148,55148,11,55176,55176,11,55216,55238,9,64286,64286,5,65056,65071,5,65438,65439,5,65529,65531,4,66272,66272,5,68097,68099,5,68108,68111,5,68159,68159,5,68900,68903,5,69446,69456,5,69632,69632,7,69634,69634,7,69744,69744,5,69759,69761,5,69808,69810,7,69815,69816,7,69821,69821,1,69837,69837,1,69927,69931,5,69933,69940,5,70003,70003,5,70018,70018,7,70070,70078,5,70082,70083,1,70094,70094,7,70188,70190,7,70194,70195,7,70197,70197,7,70206,70206,5,70368,70370,7,70400,70401,5,70459,70460,5,70463,70463,7,70465,70468,7,70475,70477,7,70498,70499,7,70512,70516,5,70712,70719,5,70722,70724,5,70726,70726,5,70832,70832,5,70835,70840,5,70842,70842,5,70845,70845,5,70847,70848,5,70850,70851,5,71088,71089,7,71096,71099,7,71102,71102,7,71132,71133,5,71219,71226,5,71229,71229,5,71231,71232,5,71340,71340,7,71342,71343,7,71350,71350,7,71453,71455,5,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,118528,118573,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123566,123566,5,125136,125142,5,126976,126979,14,126981,127182,14,127184,127231,14,127279,127279,14,127344,127345,14,127374,127374,14,127405,127461,14,127489,127490,14,127514,127514,14,127538,127546,14,127561,127567,14,127570,127743,14,127757,127758,14,127760,127760,14,127762,127762,14,127766,127768,14,127770,127770,14,127772,127772,14,127775,127776,14,127778,127779,14,127789,127791,14,127794,127795,14,127798,127798,14,127819,127819,14,127824,127824,14,127868,127868,14,127870,127871,14,127892,127893,14,127896,127896,14,127900,127901,14,127904,127940,14,127942,127942,14,127944,127944,14,127946,127946,14,127951,127955,14,127968,127971,14,127973,127984,14,127987,127987,14,127989,127989,14,127991,127991,14,127995,127999,5,128008,128008,14,128012,128014,14,128017,128018,14,128020,128020,14,128022,128022,14,128042,128042,14,128063,128063,14,128065,128065,14,128101,128101,14,128108,128109,14,128173,128173,14,128182,128183,14,128236,128237,14,128239,128239,14,128245,128245,14,128248,128248,14,128253,128253,14,128255,128258,14,128260,128263,14,128265,128265,14,128277,128277,14,128300,128301,14,128326,128328,14,128331,128334,14,128336,128347,14,128360,128366,14,128369,128370,14,128378,128378,14,128391,128391,14,128394,128397,14,128400,128400,14,128405,128406,14,128420,128420,14,128422,128423,14,128425,128432,14,128435,128443,14,128445,128449,14,128453,128464,14,128468,128475,14,128479,128480,14,128482,128482,14,128484,128487,14,128489,128494,14,128496,128498,14,128500,128505,14,128507,128511,14,128513,128518,14,128521,128525,14,128527,128527,14,128529,128529,14,128533,128533,14,128535,128535,14,128537,128537,14]\")}function xRe(n,e){if(n===0)return 0;const t=LRe(n,e);if(t!==void 0)return t;const i=new qV(e,n);return i.prevCodePoint(),i.offset}function LRe(n,e){const t=new qV(e,n);let i=t.prevCodePoint();for(;kRe(i)||i===65039||i===8419;){if(t.offset===0)return;i=t.prevCodePoint()}if(!ZV(i))return;let s=t.offset;return s>0&&t.prevCodePoint()===8205&&(s=t.offset),s}function kRe(n){return 127995<=n&&n<=127999}const xae=\" \";class d0{static getInstance(e){return EC.cache.get(Array.from(e))}static getLocales(){return EC._locales.value}constructor(e){this.confusableDictionary=e}isAmbiguous(e){return this.confusableDictionary.has(e)}getPrimaryConfusable(e){return this.confusableDictionary.get(e)}getConfusableCodePoints(){return new Set(this.confusableDictionary.keys())}}EC=d0;d0.ambiguousCharacterData=new pu(()=>JSON.parse('{\"_common\":[8232,32,8233,32,5760,32,8192,32,8193,32,8194,32,8195,32,8196,32,8197,32,8198,32,8200,32,8201,32,8202,32,8287,32,8199,32,8239,32,2042,95,65101,95,65102,95,65103,95,8208,45,8209,45,8210,45,65112,45,1748,45,8259,45,727,45,8722,45,10134,45,11450,45,1549,44,1643,44,8218,44,184,44,42233,44,894,59,2307,58,2691,58,1417,58,1795,58,1796,58,5868,58,65072,58,6147,58,6153,58,8282,58,1475,58,760,58,42889,58,8758,58,720,58,42237,58,451,33,11601,33,660,63,577,63,2429,63,5038,63,42731,63,119149,46,8228,46,1793,46,1794,46,42510,46,68176,46,1632,46,1776,46,42232,46,1373,96,65287,96,8219,96,8242,96,1370,96,1523,96,8175,96,65344,96,900,96,8189,96,8125,96,8127,96,8190,96,697,96,884,96,712,96,714,96,715,96,756,96,699,96,701,96,700,96,702,96,42892,96,1497,96,2036,96,2037,96,5194,96,5836,96,94033,96,94034,96,65339,91,10088,40,10098,40,12308,40,64830,40,65341,93,10089,41,10099,41,12309,41,64831,41,10100,123,119060,123,10101,125,65342,94,8270,42,1645,42,8727,42,66335,42,5941,47,8257,47,8725,47,8260,47,9585,47,10187,47,10744,47,119354,47,12755,47,12339,47,11462,47,20031,47,12035,47,65340,92,65128,92,8726,92,10189,92,10741,92,10745,92,119311,92,119355,92,12756,92,20022,92,12034,92,42872,38,708,94,710,94,5869,43,10133,43,66203,43,8249,60,10094,60,706,60,119350,60,5176,60,5810,60,5120,61,11840,61,12448,61,42239,61,8250,62,10095,62,707,62,119351,62,5171,62,94015,62,8275,126,732,126,8128,126,8764,126,65372,124,65293,45,120784,50,120794,50,120804,50,120814,50,120824,50,130034,50,42842,50,423,50,1000,50,42564,50,5311,50,42735,50,119302,51,120785,51,120795,51,120805,51,120815,51,120825,51,130035,51,42923,51,540,51,439,51,42858,51,11468,51,1248,51,94011,51,71882,51,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,120789,55,120799,55,120809,55,120819,55,120829,55,130039,55,66770,55,71878,55,2819,56,2538,56,2666,56,125131,56,120790,56,120800,56,120810,56,120820,56,120830,56,130040,56,547,56,546,56,66330,56,2663,57,2920,57,2541,57,3437,57,120791,57,120801,57,120811,57,120821,57,120831,57,130041,57,42862,57,11466,57,71884,57,71852,57,71894,57,9082,97,65345,97,119834,97,119886,97,119938,97,119990,97,120042,97,120094,97,120146,97,120198,97,120250,97,120302,97,120354,97,120406,97,120458,97,593,97,945,97,120514,97,120572,97,120630,97,120688,97,120746,97,65313,65,119808,65,119860,65,119912,65,119964,65,120016,65,120068,65,120120,65,120172,65,120224,65,120276,65,120328,65,120380,65,120432,65,913,65,120488,65,120546,65,120604,65,120662,65,120720,65,5034,65,5573,65,42222,65,94016,65,66208,65,119835,98,119887,98,119939,98,119991,98,120043,98,120095,98,120147,98,120199,98,120251,98,120303,98,120355,98,120407,98,120459,98,388,98,5071,98,5234,98,5551,98,65314,66,8492,66,119809,66,119861,66,119913,66,120017,66,120069,66,120121,66,120173,66,120225,66,120277,66,120329,66,120381,66,120433,66,42932,66,914,66,120489,66,120547,66,120605,66,120663,66,120721,66,5108,66,5623,66,42192,66,66178,66,66209,66,66305,66,65347,99,8573,99,119836,99,119888,99,119940,99,119992,99,120044,99,120096,99,120148,99,120200,99,120252,99,120304,99,120356,99,120408,99,120460,99,7428,99,1010,99,11429,99,43951,99,66621,99,128844,67,71922,67,71913,67,65315,67,8557,67,8450,67,8493,67,119810,67,119862,67,119914,67,119966,67,120018,67,120174,67,120226,67,120278,67,120330,67,120382,67,120434,67,1017,67,11428,67,5087,67,42202,67,66210,67,66306,67,66581,67,66844,67,8574,100,8518,100,119837,100,119889,100,119941,100,119993,100,120045,100,120097,100,120149,100,120201,100,120253,100,120305,100,120357,100,120409,100,120461,100,1281,100,5095,100,5231,100,42194,100,8558,68,8517,68,119811,68,119863,68,119915,68,119967,68,120019,68,120071,68,120123,68,120175,68,120227,68,120279,68,120331,68,120383,68,120435,68,5024,68,5598,68,5610,68,42195,68,8494,101,65349,101,8495,101,8519,101,119838,101,119890,101,119942,101,120046,101,120098,101,120150,101,120202,101,120254,101,120306,101,120358,101,120410,101,120462,101,43826,101,1213,101,8959,69,65317,69,8496,69,119812,69,119864,69,119916,69,120020,69,120072,69,120124,69,120176,69,120228,69,120280,69,120332,69,120384,69,120436,69,917,69,120492,69,120550,69,120608,69,120666,69,120724,69,11577,69,5036,69,42224,69,71846,69,71854,69,66182,69,119839,102,119891,102,119943,102,119995,102,120047,102,120099,102,120151,102,120203,102,120255,102,120307,102,120359,102,120411,102,120463,102,43829,102,42905,102,383,102,7837,102,1412,102,119315,70,8497,70,119813,70,119865,70,119917,70,120021,70,120073,70,120125,70,120177,70,120229,70,120281,70,120333,70,120385,70,120437,70,42904,70,988,70,120778,70,5556,70,42205,70,71874,70,71842,70,66183,70,66213,70,66853,70,65351,103,8458,103,119840,103,119892,103,119944,103,120048,103,120100,103,120152,103,120204,103,120256,103,120308,103,120360,103,120412,103,120464,103,609,103,7555,103,397,103,1409,103,119814,71,119866,71,119918,71,119970,71,120022,71,120074,71,120126,71,120178,71,120230,71,120282,71,120334,71,120386,71,120438,71,1292,71,5056,71,5107,71,42198,71,65352,104,8462,104,119841,104,119945,104,119997,104,120049,104,120101,104,120153,104,120205,104,120257,104,120309,104,120361,104,120413,104,120465,104,1211,104,1392,104,5058,104,65320,72,8459,72,8460,72,8461,72,119815,72,119867,72,119919,72,120023,72,120179,72,120231,72,120283,72,120335,72,120387,72,120439,72,919,72,120494,72,120552,72,120610,72,120668,72,120726,72,11406,72,5051,72,5500,72,42215,72,66255,72,731,105,9075,105,65353,105,8560,105,8505,105,8520,105,119842,105,119894,105,119946,105,119998,105,120050,105,120102,105,120154,105,120206,105,120258,105,120310,105,120362,105,120414,105,120466,105,120484,105,618,105,617,105,953,105,8126,105,890,105,120522,105,120580,105,120638,105,120696,105,120754,105,1110,105,42567,105,1231,105,43893,105,5029,105,71875,105,65354,106,8521,106,119843,106,119895,106,119947,106,119999,106,120051,106,120103,106,120155,106,120207,106,120259,106,120311,106,120363,106,120415,106,120467,106,1011,106,1112,106,65322,74,119817,74,119869,74,119921,74,119973,74,120025,74,120077,74,120129,74,120181,74,120233,74,120285,74,120337,74,120389,74,120441,74,42930,74,895,74,1032,74,5035,74,5261,74,42201,74,119844,107,119896,107,119948,107,120000,107,120052,107,120104,107,120156,107,120208,107,120260,107,120312,107,120364,107,120416,107,120468,107,8490,75,65323,75,119818,75,119870,75,119922,75,119974,75,120026,75,120078,75,120130,75,120182,75,120234,75,120286,75,120338,75,120390,75,120442,75,922,75,120497,75,120555,75,120613,75,120671,75,120729,75,11412,75,5094,75,5845,75,42199,75,66840,75,1472,108,8739,73,9213,73,65512,73,1633,108,1777,73,66336,108,125127,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,119816,73,119868,73,119920,73,120024,73,120128,73,120180,73,120232,73,120284,73,120336,73,120388,73,120440,73,65356,108,8572,73,8467,108,119845,108,119897,108,119949,108,120001,108,120053,108,120105,73,120157,73,120209,73,120261,73,120313,73,120365,73,120417,73,120469,73,448,73,120496,73,120554,73,120612,73,120670,73,120728,73,11410,73,1030,73,1216,73,1493,108,1503,108,1575,108,126464,108,126592,108,65166,108,65165,108,1994,108,11599,73,5825,73,42226,73,93992,73,66186,124,66313,124,119338,76,8556,76,8466,76,119819,76,119871,76,119923,76,120027,76,120079,76,120131,76,120183,76,120235,76,120287,76,120339,76,120391,76,120443,76,11472,76,5086,76,5290,76,42209,76,93974,76,71843,76,71858,76,66587,76,66854,76,65325,77,8559,77,8499,77,119820,77,119872,77,119924,77,120028,77,120080,77,120132,77,120184,77,120236,77,120288,77,120340,77,120392,77,120444,77,924,77,120499,77,120557,77,120615,77,120673,77,120731,77,1018,77,11416,77,5047,77,5616,77,5846,77,42207,77,66224,77,66321,77,119847,110,119899,110,119951,110,120003,110,120055,110,120107,110,120159,110,120211,110,120263,110,120315,110,120367,110,120419,110,120471,110,1400,110,1404,110,65326,78,8469,78,119821,78,119873,78,119925,78,119977,78,120029,78,120081,78,120185,78,120237,78,120289,78,120341,78,120393,78,120445,78,925,78,120500,78,120558,78,120616,78,120674,78,120732,78,11418,78,42208,78,66835,78,3074,111,3202,111,3330,111,3458,111,2406,111,2662,111,2790,111,3046,111,3174,111,3302,111,3430,111,3664,111,3792,111,4160,111,1637,111,1781,111,65359,111,8500,111,119848,111,119900,111,119952,111,120056,111,120108,111,120160,111,120212,111,120264,111,120316,111,120368,111,120420,111,120472,111,7439,111,7441,111,43837,111,959,111,120528,111,120586,111,120644,111,120702,111,120760,111,963,111,120532,111,120590,111,120648,111,120706,111,120764,111,11423,111,4351,111,1413,111,1505,111,1607,111,126500,111,126564,111,126596,111,65259,111,65260,111,65258,111,65257,111,1726,111,64428,111,64429,111,64427,111,64426,111,1729,111,64424,111,64425,111,64423,111,64422,111,1749,111,3360,111,4125,111,66794,111,71880,111,71895,111,66604,111,1984,79,2534,79,2918,79,12295,79,70864,79,71904,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,119822,79,119874,79,119926,79,119978,79,120030,79,120082,79,120134,79,120186,79,120238,79,120290,79,120342,79,120394,79,120446,79,927,79,120502,79,120560,79,120618,79,120676,79,120734,79,11422,79,1365,79,11604,79,4816,79,2848,79,66754,79,42227,79,71861,79,66194,79,66219,79,66564,79,66838,79,9076,112,65360,112,119849,112,119901,112,119953,112,120005,112,120057,112,120109,112,120161,112,120213,112,120265,112,120317,112,120369,112,120421,112,120473,112,961,112,120530,112,120544,112,120588,112,120602,112,120646,112,120660,112,120704,112,120718,112,120762,112,120776,112,11427,112,65328,80,8473,80,119823,80,119875,80,119927,80,119979,80,120031,80,120083,80,120187,80,120239,80,120291,80,120343,80,120395,80,120447,80,929,80,120504,80,120562,80,120620,80,120678,80,120736,80,11426,80,5090,80,5229,80,42193,80,66197,80,119850,113,119902,113,119954,113,120006,113,120058,113,120110,113,120162,113,120214,113,120266,113,120318,113,120370,113,120422,113,120474,113,1307,113,1379,113,1382,113,8474,81,119824,81,119876,81,119928,81,119980,81,120032,81,120084,81,120188,81,120240,81,120292,81,120344,81,120396,81,120448,81,11605,81,119851,114,119903,114,119955,114,120007,114,120059,114,120111,114,120163,114,120215,114,120267,114,120319,114,120371,114,120423,114,120475,114,43847,114,43848,114,7462,114,11397,114,43905,114,119318,82,8475,82,8476,82,8477,82,119825,82,119877,82,119929,82,120033,82,120189,82,120241,82,120293,82,120345,82,120397,82,120449,82,422,82,5025,82,5074,82,66740,82,5511,82,42211,82,94005,82,65363,115,119852,115,119904,115,119956,115,120008,115,120060,115,120112,115,120164,115,120216,115,120268,115,120320,115,120372,115,120424,115,120476,115,42801,115,445,115,1109,115,43946,115,71873,115,66632,115,65331,83,119826,83,119878,83,119930,83,119982,83,120034,83,120086,83,120138,83,120190,83,120242,83,120294,83,120346,83,120398,83,120450,83,1029,83,1359,83,5077,83,5082,83,42210,83,94010,83,66198,83,66592,83,119853,116,119905,116,119957,116,120009,116,120061,116,120113,116,120165,116,120217,116,120269,116,120321,116,120373,116,120425,116,120477,116,8868,84,10201,84,128872,84,65332,84,119827,84,119879,84,119931,84,119983,84,120035,84,120087,84,120139,84,120191,84,120243,84,120295,84,120347,84,120399,84,120451,84,932,84,120507,84,120565,84,120623,84,120681,84,120739,84,11430,84,5026,84,42196,84,93962,84,71868,84,66199,84,66225,84,66325,84,119854,117,119906,117,119958,117,120010,117,120062,117,120114,117,120166,117,120218,117,120270,117,120322,117,120374,117,120426,117,120478,117,42911,117,7452,117,43854,117,43858,117,651,117,965,117,120534,117,120592,117,120650,117,120708,117,120766,117,1405,117,66806,117,71896,117,8746,85,8899,85,119828,85,119880,85,119932,85,119984,85,120036,85,120088,85,120140,85,120192,85,120244,85,120296,85,120348,85,120400,85,120452,85,1357,85,4608,85,66766,85,5196,85,42228,85,94018,85,71864,85,8744,118,8897,118,65366,118,8564,118,119855,118,119907,118,119959,118,120011,118,120063,118,120115,118,120167,118,120219,118,120271,118,120323,118,120375,118,120427,118,120479,118,7456,118,957,118,120526,118,120584,118,120642,118,120700,118,120758,118,1141,118,1496,118,71430,118,43945,118,71872,118,119309,86,1639,86,1783,86,8548,86,119829,86,119881,86,119933,86,119985,86,120037,86,120089,86,120141,86,120193,86,120245,86,120297,86,120349,86,120401,86,120453,86,1140,86,11576,86,5081,86,5167,86,42719,86,42214,86,93960,86,71840,86,66845,86,623,119,119856,119,119908,119,119960,119,120012,119,120064,119,120116,119,120168,119,120220,119,120272,119,120324,119,120376,119,120428,119,120480,119,7457,119,1121,119,1309,119,1377,119,71434,119,71438,119,71439,119,43907,119,71919,87,71910,87,119830,87,119882,87,119934,87,119986,87,120038,87,120090,87,120142,87,120194,87,120246,87,120298,87,120350,87,120402,87,120454,87,1308,87,5043,87,5076,87,42218,87,5742,120,10539,120,10540,120,10799,120,65368,120,8569,120,119857,120,119909,120,119961,120,120013,120,120065,120,120117,120,120169,120,120221,120,120273,120,120325,120,120377,120,120429,120,120481,120,5441,120,5501,120,5741,88,9587,88,66338,88,71916,88,65336,88,8553,88,119831,88,119883,88,119935,88,119987,88,120039,88,120091,88,120143,88,120195,88,120247,88,120299,88,120351,88,120403,88,120455,88,42931,88,935,88,120510,88,120568,88,120626,88,120684,88,120742,88,11436,88,11613,88,5815,88,42219,88,66192,88,66228,88,66327,88,66855,88,611,121,7564,121,65369,121,119858,121,119910,121,119962,121,120014,121,120066,121,120118,121,120170,121,120222,121,120274,121,120326,121,120378,121,120430,121,120482,121,655,121,7935,121,43866,121,947,121,8509,121,120516,121,120574,121,120632,121,120690,121,120748,121,1199,121,4327,121,71900,121,65337,89,119832,89,119884,89,119936,89,119988,89,120040,89,120092,89,120144,89,120196,89,120248,89,120300,89,120352,89,120404,89,120456,89,933,89,978,89,120508,89,120566,89,120624,89,120682,89,120740,89,11432,89,1198,89,5033,89,5053,89,42220,89,94019,89,71844,89,66226,89,119859,122,119911,122,119963,122,120015,122,120067,122,120119,122,120171,122,120223,122,120275,122,120327,122,120379,122,120431,122,120483,122,7458,122,43923,122,71876,122,66293,90,71909,90,65338,90,8484,90,8488,90,119833,90,119885,90,119937,90,119989,90,120041,90,120197,90,120249,90,120301,90,120353,90,120405,90,120457,90,918,90,120493,90,120551,90,120609,90,120667,90,120725,90,5059,90,42204,90,71849,90,65282,34,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,65297,49,65298,50,65299,51,65300,52,65301,53,65302,54,65303,55,65304,56,65305,57,65308,60,65309,61,65310,62,65312,64,65316,68,65318,70,65319,71,65324,76,65329,81,65330,82,65333,85,65334,86,65335,87,65343,95,65346,98,65348,100,65350,102,65355,107,65357,109,65358,110,65361,113,65362,114,65364,116,65365,117,65367,119,65370,122,65371,123,65373,125,119846,109],\"_default\":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"cs\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"de\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"es\":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"fr\":[65374,126,65306,58,65281,33,8216,96,8245,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"it\":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"ja\":[8211,45,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65292,44,65307,59],\"ko\":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"pl\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"pt-BR\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"qps-ploc\":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"ru\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"tr\":[160,32,8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"zh-hans\":[65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41],\"zh-hant\":[8211,45,65374,126,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65307,59]}'));d0.cache=new cRe({getCacheKey:JSON.stringify},n=>{function e(c){const d=new Map;for(let u=0;u<c.length;u+=2)d.set(c[u],c[u+1]);return d}function t(c,d){const u=new Map(c);for(const[h,f]of d)u.set(h,f);return u}function i(c,d){if(!c)return d;const u=new Map;for(const[h,f]of c)d.has(h)&&u.set(h,f);return u}const s=EC.ambiguousCharacterData.value;let o=n.filter(c=>!c.startsWith(\"_\")&&c in s);o.length===0&&(o=[\"_default\"]);let r;for(const c of o){const d=e(s[c]);r=i(r,d)}const a=e(s._common),l=t(a,r);return new EC(l)});d0._locales=new pu(()=>Object.keys(EC.ambiguousCharacterData.value).filter(n=>!n.startsWith(\"_\")));class mh{static getRawData(){return JSON.parse(\"[9,10,11,12,13,32,127,160,173,847,1564,4447,4448,6068,6069,6155,6156,6157,6158,7355,7356,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203,8204,8205,8206,8207,8234,8235,8236,8237,8238,8239,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,10240,12288,12644,65024,65025,65026,65027,65028,65029,65030,65031,65032,65033,65034,65035,65036,65037,65038,65039,65279,65440,65520,65521,65522,65523,65524,65525,65526,65527,65528,65532,78844,119155,119156,119157,119158,119159,119160,119161,119162,917504,917505,917506,917507,917508,917509,917510,917511,917512,917513,917514,917515,917516,917517,917518,917519,917520,917521,917522,917523,917524,917525,917526,917527,917528,917529,917530,917531,917532,917533,917534,917535,917536,917537,917538,917539,917540,917541,917542,917543,917544,917545,917546,917547,917548,917549,917550,917551,917552,917553,917554,917555,917556,917557,917558,917559,917560,917561,917562,917563,917564,917565,917566,917567,917568,917569,917570,917571,917572,917573,917574,917575,917576,917577,917578,917579,917580,917581,917582,917583,917584,917585,917586,917587,917588,917589,917590,917591,917592,917593,917594,917595,917596,917597,917598,917599,917600,917601,917602,917603,917604,917605,917606,917607,917608,917609,917610,917611,917612,917613,917614,917615,917616,917617,917618,917619,917620,917621,917622,917623,917624,917625,917626,917627,917628,917629,917630,917631,917760,917761,917762,917763,917764,917765,917766,917767,917768,917769,917770,917771,917772,917773,917774,917775,917776,917777,917778,917779,917780,917781,917782,917783,917784,917785,917786,917787,917788,917789,917790,917791,917792,917793,917794,917795,917796,917797,917798,917799,917800,917801,917802,917803,917804,917805,917806,917807,917808,917809,917810,917811,917812,917813,917814,917815,917816,917817,917818,917819,917820,917821,917822,917823,917824,917825,917826,917827,917828,917829,917830,917831,917832,917833,917834,917835,917836,917837,917838,917839,917840,917841,917842,917843,917844,917845,917846,917847,917848,917849,917850,917851,917852,917853,917854,917855,917856,917857,917858,917859,917860,917861,917862,917863,917864,917865,917866,917867,917868,917869,917870,917871,917872,917873,917874,917875,917876,917877,917878,917879,917880,917881,917882,917883,917884,917885,917886,917887,917888,917889,917890,917891,917892,917893,917894,917895,917896,917897,917898,917899,917900,917901,917902,917903,917904,917905,917906,917907,917908,917909,917910,917911,917912,917913,917914,917915,917916,917917,917918,917919,917920,917921,917922,917923,917924,917925,917926,917927,917928,917929,917930,917931,917932,917933,917934,917935,917936,917937,917938,917939,917940,917941,917942,917943,917944,917945,917946,917947,917948,917949,917950,917951,917952,917953,917954,917955,917956,917957,917958,917959,917960,917961,917962,917963,917964,917965,917966,917967,917968,917969,917970,917971,917972,917973,917974,917975,917976,917977,917978,917979,917980,917981,917982,917983,917984,917985,917986,917987,917988,917989,917990,917991,917992,917993,917994,917995,917996,917997,917998,917999]\")}static getData(){return this._data||(this._data=new Set(mh.getRawData())),this._data}static isInvisibleCharacter(e){return mh.getData().has(e)}static get codePoints(){return mh.getData()}}mh._data=void 0;class J7{constructor(){this.mapWindowIdToZoomFactor=new Map}getZoomFactor(e){var t;return(t=this.mapWindowIdToZoomFactor.get(this.getWindowId(e)))!==null&&t!==void 0?t:1}getWindowId(e){return e.vscodeWindowId}}J7.INSTANCE=new J7;function Lae(n,e,t){typeof e==\"string\"&&(e=n.matchMedia(e)),e.addEventListener(\"change\",t)}function DRe(n){return J7.INSTANCE.getZoomFactor(n)}const Aw=navigator.userAgent,lc=Aw.indexOf(\"Firefox\")>=0,rM=Aw.indexOf(\"AppleWebKit\")>=0,dD=Aw.indexOf(\"Chrome\")>=0,Pm=!dD&&Aw.indexOf(\"Safari\")>=0,kae=!dD&&!Pm&&rM;Aw.indexOf(\"Electron/\")>=0;const dY=Aw.indexOf(\"Android\")>=0;let xF=!1;if(typeof Ji.matchMedia==\"function\"){const n=Ji.matchMedia(\"(display-mode: standalone) or (display-mode: window-controls-overlay)\"),e=Ji.matchMedia(\"(display-mode: fullscreen)\");xF=n.matches,Lae(Ji,n,({matches:t})=>{xF&&e.matches||(xF=t)})}const XV={clipboard:{writeText:Lh||document.queryCommandSupported&&document.queryCommandSupported(\"copy\")||!!(navigator&&navigator.clipboard&&navigator.clipboard.writeText),readText:Lh||!!(navigator&&navigator.clipboard&&navigator.clipboard.readText)},pointerEvents:Ji.PointerEvent&&(\"ontouchstart\"in Ji||navigator.maxTouchPoints>0)};function eB(n,e){if(typeof n==\"number\"){if(n===0)return null;const t=(n&65535)>>>0,i=(n&4294901760)>>>16;return i!==0?new LF([xE(t,e),xE(i,e)]):new LF([xE(t,e)])}else{const t=[];for(let i=0;i<n.length;i++)t.push(xE(n[i],e));return new LF(t)}}function xE(n,e){const t=!!(n&2048),i=!!(n&256),s=e===2?i:t,o=!!(n&1024),r=!!(n&512),a=e===2?t:i,l=n&255;return new kg(s,o,r,a,l)}class kg{constructor(e,t,i,s,o){this.ctrlKey=e,this.shiftKey=t,this.altKey=i,this.metaKey=s,this.keyCode=o}equals(e){return e instanceof kg&&this.ctrlKey===e.ctrlKey&&this.shiftKey===e.shiftKey&&this.altKey===e.altKey&&this.metaKey===e.metaKey&&this.keyCode===e.keyCode}isModifierKey(){return this.keyCode===0||this.keyCode===5||this.keyCode===57||this.keyCode===6||this.keyCode===4}isDuplicateModifierCase(){return this.ctrlKey&&this.keyCode===5||this.shiftKey&&this.keyCode===4||this.altKey&&this.keyCode===6||this.metaKey&&this.keyCode===57}}class LF{constructor(e){if(e.length===0)throw ic(\"chords\");this.chords=e}}class IRe{constructor(e,t,i,s,o,r){this.ctrlKey=e,this.shiftKey=t,this.altKey=i,this.metaKey=s,this.keyLabel=o,this.keyAriaLabel=r}}class ERe{}function TRe(n){if(n.charCode){const t=String.fromCharCode(n.charCode).toUpperCase();return Wf.fromString(t)}const e=n.keyCode;if(e===3)return 7;if(lc)switch(e){case 59:return 85;case 60:if(Br)return 97;break;case 61:return 86;case 107:return 109;case 109:return 111;case 173:return 88;case 224:if(Xt)return 57;break}else if(rM){if(Xt&&e===93)return 57;if(!Xt&&e===92)return 57}return oae[e]||0}const NRe=Xt?256:2048,ARe=512,RRe=1024,MRe=Xt?2048:256;class ln{constructor(e){var t;this._standardKeyboardEventBrand=!0;const i=e;this.browserEvent=i,this.target=i.target,this.ctrlKey=i.ctrlKey,this.shiftKey=i.shiftKey,this.altKey=i.altKey,this.metaKey=i.metaKey,this.altGraphKey=(t=i.getModifierState)===null||t===void 0?void 0:t.call(i,\"AltGraph\"),this.keyCode=TRe(i),this.code=i.code,this.ctrlKey=this.ctrlKey||this.keyCode===5,this.altKey=this.altKey||this.keyCode===6,this.shiftKey=this.shiftKey||this.keyCode===4,this.metaKey=this.metaKey||this.keyCode===57,this._asKeybinding=this._computeKeybinding(),this._asKeyCodeChord=this._computeKeyCodeChord()}preventDefault(){this.browserEvent&&this.browserEvent.preventDefault&&this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent&&this.browserEvent.stopPropagation&&this.browserEvent.stopPropagation()}toKeyCodeChord(){return this._asKeyCodeChord}equals(e){return this._asKeybinding===e}_computeKeybinding(){let e=0;this.keyCode!==5&&this.keyCode!==4&&this.keyCode!==6&&this.keyCode!==57&&(e=this.keyCode);let t=0;return this.ctrlKey&&(t|=NRe),this.altKey&&(t|=ARe),this.shiftKey&&(t|=RRe),this.metaKey&&(t|=MRe),t|=e,t}_computeKeyCodeChord(){let e=0;return this.keyCode!==5&&this.keyCode!==4&&this.keyCode!==6&&this.keyCode!==57&&(e=this.keyCode),new kg(this.ctrlKey,this.shiftKey,this.altKey,this.metaKey,e)}}const uY=new WeakMap;function PRe(n){if(!n.parent||n.parent===n)return null;try{const e=n.location,t=n.parent.location;if(e.origin!==\"null\"&&t.origin!==\"null\"&&e.origin!==t.origin)return null}catch{return null}return n.parent}class ORe{static getSameOriginWindowChain(e){let t=uY.get(e);if(!t){t=[],uY.set(e,t);let i=e,s;do s=PRe(i),s?t.push({window:new WeakRef(i),iframeElement:i.frameElement||null}):t.push({window:new WeakRef(i),iframeElement:null}),i=s;while(i)}return t.slice(0)}static getPositionOfChildWindowRelativeToAncestorWindow(e,t){var i,s;if(!t||e===t)return{top:0,left:0};let o=0,r=0;const a=this.getSameOriginWindowChain(e);for(const l of a){const c=l.window.deref();if(o+=(i=c==null?void 0:c.scrollY)!==null&&i!==void 0?i:0,r+=(s=c==null?void 0:c.scrollX)!==null&&s!==void 0?s:0,c===t||!l.iframeElement)break;const d=l.iframeElement.getBoundingClientRect();o+=d.top,r+=d.left}return{top:o,left:r}}}class Kc{constructor(e,t){this.timestamp=Date.now(),this.browserEvent=t,this.leftButton=t.button===0,this.middleButton=t.button===1,this.rightButton=t.button===2,this.buttons=t.buttons,this.target=t.target,this.detail=t.detail||1,t.type===\"dblclick\"&&(this.detail=2),this.ctrlKey=t.ctrlKey,this.shiftKey=t.shiftKey,this.altKey=t.altKey,this.metaKey=t.metaKey,typeof t.pageX==\"number\"?(this.posx=t.pageX,this.posy=t.pageY):(this.posx=t.clientX+this.target.ownerDocument.body.scrollLeft+this.target.ownerDocument.documentElement.scrollLeft,this.posy=t.clientY+this.target.ownerDocument.body.scrollTop+this.target.ownerDocument.documentElement.scrollTop);const i=ORe.getPositionOfChildWindowRelativeToAncestorWindow(e,t.view);this.posx-=i.left,this.posy-=i.top}preventDefault(){this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent.stopPropagation()}}class u0{constructor(e,t=0,i=0){var s;this.browserEvent=e||null,this.target=e?e.target||e.targetNode||e.srcElement:null,this.deltaY=i,this.deltaX=t;let o=!1;if(dD){const r=navigator.userAgent.match(/Chrome\\/(\\d+)/);o=(r?parseInt(r[1]):123)<=122}if(e){const r=e,a=e,l=((s=e.view)===null||s===void 0?void 0:s.devicePixelRatio)||1;if(typeof r.wheelDeltaY<\"u\")o?this.deltaY=r.wheelDeltaY/(120*l):this.deltaY=r.wheelDeltaY/120;else if(typeof a.VERTICAL_AXIS<\"u\"&&a.axis===a.VERTICAL_AXIS)this.deltaY=-a.detail/3;else if(e.type===\"wheel\"){const c=e;c.deltaMode===c.DOM_DELTA_LINE?lc&&!Xt?this.deltaY=-e.deltaY/3:this.deltaY=-e.deltaY:this.deltaY=-e.deltaY/40}if(typeof r.wheelDeltaX<\"u\")Pm&&Mo?this.deltaX=-(r.wheelDeltaX/120):o?this.deltaX=r.wheelDeltaX/(120*l):this.deltaX=r.wheelDeltaX/120;else if(typeof a.HORIZONTAL_AXIS<\"u\"&&a.axis===a.HORIZONTAL_AXIS)this.deltaX=-e.detail/3;else if(e.type===\"wheel\"){const c=e;c.deltaMode===c.DOM_DELTA_LINE?lc&&!Xt?this.deltaX=-e.deltaX/3:this.deltaX=-e.deltaX:this.deltaX=-e.deltaX/40}this.deltaY===0&&this.deltaX===0&&e.wheelDelta&&(o?this.deltaY=e.wheelDelta/(120*l):this.deltaY=e.wheelDelta/120)}}preventDefault(){var e;(e=this.browserEvent)===null||e===void 0||e.preventDefault()}stopPropagation(){var e;(e=this.browserEvent)===null||e===void 0||e.stopPropagation()}}const Dae=Symbol(\"MicrotaskDelay\");function tB(n){return!!n&&typeof n.then==\"function\"}function Xs(n){const e=new $n,t=n(e.token),i=new Promise((s,o)=>{const r=e.token.onCancellationRequested(()=>{r.dispose(),o(new nu)});Promise.resolve(t).then(a=>{r.dispose(),e.dispose(),s(a)},a=>{r.dispose(),e.dispose(),o(a)})});return new class{cancel(){e.cancel(),e.dispose()}then(s,o){return i.then(s,o)}catch(s){return this.then(void 0,s)}finally(s){return i.finally(s)}}}function uD(n,e,t){return new Promise((i,s)=>{const o=e.onCancellationRequested(()=>{o.dispose(),i(t)});n.then(i,s).finally(()=>o.dispose())})}class FRe{constructor(){this.isDisposed=!1,this.activePromise=null,this.queuedPromise=null,this.queuedPromiseFactory=null}queue(e){if(this.isDisposed)return Promise.reject(new Error(\"Throttler is disposed\"));if(this.activePromise){if(this.queuedPromiseFactory=e,!this.queuedPromise){const t=()=>{if(this.queuedPromise=null,this.isDisposed)return;const i=this.queue(this.queuedPromiseFactory);return this.queuedPromiseFactory=null,i};this.queuedPromise=new Promise(i=>{this.activePromise.then(t,t).then(i)})}return new Promise((t,i)=>{this.queuedPromise.then(t,i)})}return this.activePromise=e(),new Promise((t,i)=>{this.activePromise.then(s=>{this.activePromise=null,t(s)},s=>{this.activePromise=null,i(s)})})}dispose(){this.isDisposed=!0}}const BRe=(n,e)=>{let t=!0;const i=setTimeout(()=>{t=!1,e()},n);return{isTriggered:()=>t,dispose:()=>{clearTimeout(i),t=!1}}},WRe=n=>{let e=!0;return queueMicrotask(()=>{e&&(e=!1,n())}),{isTriggered:()=>e,dispose:()=>{e=!1}}};class sd{constructor(e){this.defaultDelay=e,this.deferred=null,this.completionPromise=null,this.doResolve=null,this.doReject=null,this.task=null}trigger(e,t=this.defaultDelay){this.task=e,this.cancelTimeout(),this.completionPromise||(this.completionPromise=new Promise((s,o)=>{this.doResolve=s,this.doReject=o}).then(()=>{if(this.completionPromise=null,this.doResolve=null,this.task){const s=this.task;return this.task=null,s()}}));const i=()=>{var s;this.deferred=null,(s=this.doResolve)===null||s===void 0||s.call(this,null)};return this.deferred=t===Dae?WRe(i):BRe(t,i),this.completionPromise}isTriggered(){var e;return!!(!((e=this.deferred)===null||e===void 0)&&e.isTriggered())}cancel(){var e;this.cancelTimeout(),this.completionPromise&&((e=this.doReject)===null||e===void 0||e.call(this,new nu),this.completionPromise=null)}cancelTimeout(){var e;(e=this.deferred)===null||e===void 0||e.dispose(),this.deferred=null}dispose(){this.cancel()}}class Iae{constructor(e){this.delayer=new sd(e),this.throttler=new FRe}trigger(e,t){return this.delayer.trigger(()=>this.throttler.queue(e),t)}cancel(){this.delayer.cancel()}dispose(){this.delayer.dispose(),this.throttler.dispose()}}function Dg(n,e){return e?new Promise((t,i)=>{const s=setTimeout(()=>{o.dispose(),t()},n),o=e.onCancellationRequested(()=>{clearTimeout(s),o.dispose(),i(new nu)})}):Xs(t=>Dg(n,t))}function Om(n,e=0,t){const i=setTimeout(()=>{n(),t&&s.dispose()},e),s=dt(()=>{clearTimeout(i),t==null||t.deleteAndLeak(s)});return t==null||t.add(s),s}function QV(n,e=i=>!!i,t=null){let i=0;const s=n.length,o=()=>{if(i>=s)return Promise.resolve(t);const r=n[i++];return Promise.resolve(r()).then(l=>e(l)?Promise.resolve(l):o())};return o()}class cd{constructor(e,t){this._isDisposed=!1,this._token=-1,typeof e==\"function\"&&typeof t==\"number\"&&this.setIfNotSet(e,t)}dispose(){this.cancel(),this._isDisposed=!0}cancel(){this._token!==-1&&(clearTimeout(this._token),this._token=-1)}cancelAndSet(e,t){if(this._isDisposed)throw new Gi(\"Calling 'cancelAndSet' on a disposed TimeoutTimer\");this.cancel(),this._token=setTimeout(()=>{this._token=-1,e()},t)}setIfNotSet(e,t){if(this._isDisposed)throw new Gi(\"Calling 'setIfNotSet' on a disposed TimeoutTimer\");this._token===-1&&(this._token=setTimeout(()=>{this._token=-1,e()},t))}}class JV{constructor(){this.disposable=void 0,this.isDisposed=!1}cancel(){var e;(e=this.disposable)===null||e===void 0||e.dispose(),this.disposable=void 0}cancelAndSet(e,t,i=globalThis){if(this.isDisposed)throw new Gi(\"Calling 'cancelAndSet' on a disposed IntervalTimer\");this.cancel();const s=i.setInterval(()=>{e()},t);this.disposable=dt(()=>{i.clearInterval(s),this.disposable=void 0})}dispose(){this.cancel(),this.isDisposed=!0}}class Xi{constructor(e,t){this.timeoutToken=-1,this.runner=e,this.timeout=t,this.timeoutHandler=this.onTimeout.bind(this)}dispose(){this.cancel(),this.runner=null}cancel(){this.isScheduled()&&(clearTimeout(this.timeoutToken),this.timeoutToken=-1)}schedule(e=this.timeout){this.cancel(),this.timeoutToken=setTimeout(this.timeoutHandler,e)}get delay(){return this.timeout}set delay(e){this.timeout=e}isScheduled(){return this.timeoutToken!==-1}onTimeout(){this.timeoutToken=-1,this.runner&&this.doRun()}doRun(){var e;(e=this.runner)===null||e===void 0||e.call(this)}}let Eae,rx;(function(){typeof globalThis.requestIdleCallback!=\"function\"||typeof globalThis.cancelIdleCallback!=\"function\"?rx=(n,e)=>{Gre(()=>{if(t)return;const i=Date.now()+15;e(Object.freeze({didTimeout:!0,timeRemaining(){return Math.max(0,i-Date.now())}}))});let t=!1;return{dispose(){t||(t=!0)}}}:rx=(n,e,t)=>{const i=n.requestIdleCallback(e,typeof t==\"number\"?{timeout:t}:void 0);let s=!1;return{dispose(){s||(s=!0,n.cancelIdleCallback(i))}}},Eae=n=>rx(globalThis,n)})();class Tae{constructor(e,t){this._didRun=!1,this._executor=()=>{try{this._value=t()}catch(i){this._error=i}finally{this._didRun=!0}},this._handle=rx(e,()=>this._executor())}dispose(){this._handle.dispose()}get value(){if(this._didRun||(this._handle.dispose(),this._executor()),this._error)throw this._error;return this._value}get isInitialized(){return this._didRun}}class HRe extends Tae{constructor(e){super(globalThis,e)}}class hD{get isRejected(){var e;return((e=this.outcome)===null||e===void 0?void 0:e.outcome)===1}get isSettled(){return!!this.outcome}constructor(){this.p=new Promise((e,t)=>{this.completeCallback=e,this.errorCallback=t})}complete(e){return new Promise(t=>{this.completeCallback(e),this.outcome={outcome:0,value:e},t()})}error(e){return new Promise(t=>{this.errorCallback(e),this.outcome={outcome:1,value:e},t()})}cancel(){return this.error(new nu)}}var iB;(function(n){async function e(i){let s;const o=await Promise.all(i.map(r=>r.then(a=>a,a=>{s||(s=a)})));if(typeof s<\"u\")throw s;return o}n.settled=e;function t(i){return new Promise(async(s,o)=>{try{await i(s,o)}catch(r){o(r)}})}n.withAsyncBody=t})(iB||(iB={}));class Ls{static fromArray(e){return new Ls(t=>{t.emitMany(e)})}static fromPromise(e){return new Ls(async t=>{t.emitMany(await e)})}static fromPromises(e){return new Ls(async t=>{await Promise.all(e.map(async i=>t.emitOne(await i)))})}static merge(e){return new Ls(async t=>{await Promise.all(e.map(async i=>{for await(const s of i)t.emitOne(s)}))})}constructor(e,t){this._state=0,this._results=[],this._error=null,this._onReturn=t,this._onStateChanged=new X,queueMicrotask(async()=>{const i={emitOne:s=>this.emitOne(s),emitMany:s=>this.emitMany(s),reject:s=>this.reject(s)};try{await Promise.resolve(e(i)),this.resolve()}catch(s){this.reject(s)}finally{i.emitOne=void 0,i.emitMany=void 0,i.reject=void 0}})}[Symbol.asyncIterator](){let e=0;return{next:async()=>{do{if(this._state===2)throw this._error;if(e<this._results.length)return{done:!1,value:this._results[e++]};if(this._state===1)return{done:!0,value:void 0};await Ae.toPromise(this._onStateChanged.event)}while(!0)},return:async()=>{var t;return(t=this._onReturn)===null||t===void 0||t.call(this),{done:!0,value:void 0}}}}static map(e,t){return new Ls(async i=>{for await(const s of e)i.emitOne(t(s))})}map(e){return Ls.map(this,e)}static filter(e,t){return new Ls(async i=>{for await(const s of e)t(s)&&i.emitOne(s)})}filter(e){return Ls.filter(this,e)}static coalesce(e){return Ls.filter(e,t=>!!t)}coalesce(){return Ls.coalesce(this)}static async toPromise(e){const t=[];for await(const i of e)t.push(i);return t}toPromise(){return Ls.toPromise(this)}emitOne(e){this._state===0&&(this._results.push(e),this._onStateChanged.fire())}emitMany(e){this._state===0&&(this._results=this._results.concat(e),this._onStateChanged.fire())}resolve(){this._state===0&&(this._state=1,this._onStateChanged.fire())}reject(e){this._state===0&&(this._state=2,this._error=e,this._onStateChanged.fire())}}Ls.EMPTY=Ls.fromArray([]);class VRe extends Ls{constructor(e,t){super(t),this._source=e}cancel(){this._source.cancel()}}function zRe(n){const e=new $n,t=n(e.token);return new VRe(e,async i=>{const s=e.token.onCancellationRequested(()=>{s.dispose(),e.dispose(),i.reject(new nu)});try{for await(const o of t){if(e.token.isCancellationRequested)return;i.emitOne(o)}s.dispose(),e.dispose()}catch(o){s.dispose(),e.dispose(),i.reject(o)}})}/*! @license DOMPurify 3.0.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.0.5/LICENSE */const{entries:Nae,setPrototypeOf:hY,isFrozen:$Re,getPrototypeOf:URe,getOwnPropertyDescriptor:jRe}=Object;let{freeze:Pa,seal:su,create:KRe}=Object,{apply:nB,construct:sB}=typeof Reflect<\"u\"&&Reflect;nB||(nB=function(e,t,i){return e.apply(t,i)});Pa||(Pa=function(e){return e});su||(su=function(e){return e});sB||(sB=function(e,t){return new e(...t)});const qRe=od(Array.prototype.forEach),fY=od(Array.prototype.pop),Ey=od(Array.prototype.push),dN=od(String.prototype.toLowerCase),kF=od(String.prototype.toString),GRe=od(String.prototype.match),_d=od(String.prototype.replace),ZRe=od(String.prototype.indexOf),YRe=od(String.prototype.trim),Wl=od(RegExp.prototype.test),Ty=XRe(TypeError);function od(n){return function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),s=1;s<t;s++)i[s-1]=arguments[s];return nB(n,e,i)}}function XRe(n){return function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return sB(n,t)}}function Ki(n,e,t){var i;t=(i=t)!==null&&i!==void 0?i:dN,hY&&hY(n,null);let s=e.length;for(;s--;){let o=e[s];if(typeof o==\"string\"){const r=t(o);r!==o&&($Re(e)||(e[s]=r),o=r)}n[o]=!0}return n}function Ab(n){const e=KRe(null);for(const[t,i]of Nae(n))e[t]=i;return e}function LE(n,e){for(;n!==null;){const i=jRe(n,e);if(i){if(i.get)return od(i.get);if(typeof i.value==\"function\")return od(i.value)}n=URe(n)}function t(i){return console.warn(\"fallback value for\",i),null}return t}const gY=Pa([\"a\",\"abbr\",\"acronym\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"bdi\",\"bdo\",\"big\",\"blink\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"center\",\"cite\",\"code\",\"col\",\"colgroup\",\"content\",\"data\",\"datalist\",\"dd\",\"decorator\",\"del\",\"details\",\"dfn\",\"dialog\",\"dir\",\"div\",\"dl\",\"dt\",\"element\",\"em\",\"fieldset\",\"figcaption\",\"figure\",\"font\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"img\",\"input\",\"ins\",\"kbd\",\"label\",\"legend\",\"li\",\"main\",\"map\",\"mark\",\"marquee\",\"menu\",\"menuitem\",\"meter\",\"nav\",\"nobr\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"picture\",\"pre\",\"progress\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"section\",\"select\",\"shadow\",\"small\",\"source\",\"spacer\",\"span\",\"strike\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"template\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"tr\",\"track\",\"tt\",\"u\",\"ul\",\"var\",\"video\",\"wbr\"]),DF=Pa([\"svg\",\"a\",\"altglyph\",\"altglyphdef\",\"altglyphitem\",\"animatecolor\",\"animatemotion\",\"animatetransform\",\"circle\",\"clippath\",\"defs\",\"desc\",\"ellipse\",\"filter\",\"font\",\"g\",\"glyph\",\"glyphref\",\"hkern\",\"image\",\"line\",\"lineargradient\",\"marker\",\"mask\",\"metadata\",\"mpath\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"radialgradient\",\"rect\",\"stop\",\"style\",\"switch\",\"symbol\",\"text\",\"textpath\",\"title\",\"tref\",\"tspan\",\"view\",\"vkern\"]),IF=Pa([\"feBlend\",\"feColorMatrix\",\"feComponentTransfer\",\"feComposite\",\"feConvolveMatrix\",\"feDiffuseLighting\",\"feDisplacementMap\",\"feDistantLight\",\"feDropShadow\",\"feFlood\",\"feFuncA\",\"feFuncB\",\"feFuncG\",\"feFuncR\",\"feGaussianBlur\",\"feImage\",\"feMerge\",\"feMergeNode\",\"feMorphology\",\"feOffset\",\"fePointLight\",\"feSpecularLighting\",\"feSpotLight\",\"feTile\",\"feTurbulence\"]),QRe=Pa([\"animate\",\"color-profile\",\"cursor\",\"discard\",\"font-face\",\"font-face-format\",\"font-face-name\",\"font-face-src\",\"font-face-uri\",\"foreignobject\",\"hatch\",\"hatchpath\",\"mesh\",\"meshgradient\",\"meshpatch\",\"meshrow\",\"missing-glyph\",\"script\",\"set\",\"solidcolor\",\"unknown\",\"use\"]),EF=Pa([\"math\",\"menclose\",\"merror\",\"mfenced\",\"mfrac\",\"mglyph\",\"mi\",\"mlabeledtr\",\"mmultiscripts\",\"mn\",\"mo\",\"mover\",\"mpadded\",\"mphantom\",\"mroot\",\"mrow\",\"ms\",\"mspace\",\"msqrt\",\"mstyle\",\"msub\",\"msup\",\"msubsup\",\"mtable\",\"mtd\",\"mtext\",\"mtr\",\"munder\",\"munderover\",\"mprescripts\"]),JRe=Pa([\"maction\",\"maligngroup\",\"malignmark\",\"mlongdiv\",\"mscarries\",\"mscarry\",\"msgroup\",\"mstack\",\"msline\",\"msrow\",\"semantics\",\"annotation\",\"annotation-xml\",\"mprescripts\",\"none\"]),pY=Pa([\"#text\"]),mY=Pa([\"accept\",\"action\",\"align\",\"alt\",\"autocapitalize\",\"autocomplete\",\"autopictureinpicture\",\"autoplay\",\"background\",\"bgcolor\",\"border\",\"capture\",\"cellpadding\",\"cellspacing\",\"checked\",\"cite\",\"class\",\"clear\",\"color\",\"cols\",\"colspan\",\"controls\",\"controlslist\",\"coords\",\"crossorigin\",\"datetime\",\"decoding\",\"default\",\"dir\",\"disabled\",\"disablepictureinpicture\",\"disableremoteplayback\",\"download\",\"draggable\",\"enctype\",\"enterkeyhint\",\"face\",\"for\",\"headers\",\"height\",\"hidden\",\"high\",\"href\",\"hreflang\",\"id\",\"inputmode\",\"integrity\",\"ismap\",\"kind\",\"label\",\"lang\",\"list\",\"loading\",\"loop\",\"low\",\"max\",\"maxlength\",\"media\",\"method\",\"min\",\"minlength\",\"multiple\",\"muted\",\"name\",\"nonce\",\"noshade\",\"novalidate\",\"nowrap\",\"open\",\"optimum\",\"pattern\",\"placeholder\",\"playsinline\",\"poster\",\"preload\",\"pubdate\",\"radiogroup\",\"readonly\",\"rel\",\"required\",\"rev\",\"reversed\",\"role\",\"rows\",\"rowspan\",\"spellcheck\",\"scope\",\"selected\",\"shape\",\"size\",\"sizes\",\"span\",\"srclang\",\"start\",\"src\",\"srcset\",\"step\",\"style\",\"summary\",\"tabindex\",\"title\",\"translate\",\"type\",\"usemap\",\"valign\",\"value\",\"width\",\"xmlns\",\"slot\"]),TF=Pa([\"accent-height\",\"accumulate\",\"additive\",\"alignment-baseline\",\"ascent\",\"attributename\",\"attributetype\",\"azimuth\",\"basefrequency\",\"baseline-shift\",\"begin\",\"bias\",\"by\",\"class\",\"clip\",\"clippathunits\",\"clip-path\",\"clip-rule\",\"color\",\"color-interpolation\",\"color-interpolation-filters\",\"color-profile\",\"color-rendering\",\"cx\",\"cy\",\"d\",\"dx\",\"dy\",\"diffuseconstant\",\"direction\",\"display\",\"divisor\",\"dur\",\"edgemode\",\"elevation\",\"end\",\"fill\",\"fill-opacity\",\"fill-rule\",\"filter\",\"filterunits\",\"flood-color\",\"flood-opacity\",\"font-family\",\"font-size\",\"font-size-adjust\",\"font-stretch\",\"font-style\",\"font-variant\",\"font-weight\",\"fx\",\"fy\",\"g1\",\"g2\",\"glyph-name\",\"glyphref\",\"gradientunits\",\"gradienttransform\",\"height\",\"href\",\"id\",\"image-rendering\",\"in\",\"in2\",\"k\",\"k1\",\"k2\",\"k3\",\"k4\",\"kerning\",\"keypoints\",\"keysplines\",\"keytimes\",\"lang\",\"lengthadjust\",\"letter-spacing\",\"kernelmatrix\",\"kernelunitlength\",\"lighting-color\",\"local\",\"marker-end\",\"marker-mid\",\"marker-start\",\"markerheight\",\"markerunits\",\"markerwidth\",\"maskcontentunits\",\"maskunits\",\"max\",\"mask\",\"media\",\"method\",\"mode\",\"min\",\"name\",\"numoctaves\",\"offset\",\"operator\",\"opacity\",\"order\",\"orient\",\"orientation\",\"origin\",\"overflow\",\"paint-order\",\"path\",\"pathlength\",\"patterncontentunits\",\"patterntransform\",\"patternunits\",\"points\",\"preservealpha\",\"preserveaspectratio\",\"primitiveunits\",\"r\",\"rx\",\"ry\",\"radius\",\"refx\",\"refy\",\"repeatcount\",\"repeatdur\",\"restart\",\"result\",\"rotate\",\"scale\",\"seed\",\"shape-rendering\",\"specularconstant\",\"specularexponent\",\"spreadmethod\",\"startoffset\",\"stddeviation\",\"stitchtiles\",\"stop-color\",\"stop-opacity\",\"stroke-dasharray\",\"stroke-dashoffset\",\"stroke-linecap\",\"stroke-linejoin\",\"stroke-miterlimit\",\"stroke-opacity\",\"stroke\",\"stroke-width\",\"style\",\"surfacescale\",\"systemlanguage\",\"tabindex\",\"targetx\",\"targety\",\"transform\",\"transform-origin\",\"text-anchor\",\"text-decoration\",\"text-rendering\",\"textlength\",\"type\",\"u1\",\"u2\",\"unicode\",\"values\",\"viewbox\",\"visibility\",\"version\",\"vert-adv-y\",\"vert-origin-x\",\"vert-origin-y\",\"width\",\"word-spacing\",\"wrap\",\"writing-mode\",\"xchannelselector\",\"ychannelselector\",\"x\",\"x1\",\"x2\",\"xmlns\",\"y\",\"y1\",\"y2\",\"z\",\"zoomandpan\"]),_Y=Pa([\"accent\",\"accentunder\",\"align\",\"bevelled\",\"close\",\"columnsalign\",\"columnlines\",\"columnspan\",\"denomalign\",\"depth\",\"dir\",\"display\",\"displaystyle\",\"encoding\",\"fence\",\"frame\",\"height\",\"href\",\"id\",\"largeop\",\"length\",\"linethickness\",\"lspace\",\"lquote\",\"mathbackground\",\"mathcolor\",\"mathsize\",\"mathvariant\",\"maxsize\",\"minsize\",\"movablelimits\",\"notation\",\"numalign\",\"open\",\"rowalign\",\"rowlines\",\"rowspacing\",\"rowspan\",\"rspace\",\"rquote\",\"scriptlevel\",\"scriptminsize\",\"scriptsizemultiplier\",\"selection\",\"separator\",\"separators\",\"stretchy\",\"subscriptshift\",\"supscriptshift\",\"symmetric\",\"voffset\",\"width\",\"xmlns\"]),kE=Pa([\"xlink:href\",\"xml:id\",\"xlink:title\",\"xml:space\",\"xmlns:xlink\"]),eMe=su(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm),tMe=su(/<%[\\w\\W]*|[\\w\\W]*%>/gm),iMe=su(/\\${[\\w\\W]*}/gm),nMe=su(/^data-[\\-\\w.\\u00B7-\\uFFFF]/),sMe=su(/^aria-[\\-\\w]+$/),Aae=su(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i),oMe=su(/^(?:\\w+script|data):/i),rMe=su(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g),Rae=su(/^html$/i);var vY=Object.freeze({__proto__:null,MUSTACHE_EXPR:eMe,ERB_EXPR:tMe,TMPLIT_EXPR:iMe,DATA_ATTR:nMe,ARIA_ATTR:sMe,IS_ALLOWED_URI:Aae,IS_SCRIPT_OR_DATA:oMe,ATTR_WHITESPACE:rMe,DOCTYPE_NAME:Rae});const aMe=()=>typeof window>\"u\"?null:window,lMe=function(e,t){if(typeof e!=\"object\"||typeof e.createPolicy!=\"function\")return null;let i=null;const s=\"data-tt-policy-suffix\";t&&t.hasAttribute(s)&&(i=t.getAttribute(s));const o=\"dompurify\"+(i?\"#\"+i:\"\");try{return e.createPolicy(o,{createHTML(r){return r},createScriptURL(r){return r}})}catch{return console.warn(\"TrustedTypes policy \"+o+\" could not be created.\"),null}};function Mae(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:aMe();const e=Gt=>Mae(Gt);if(e.version=\"3.0.5\",e.removed=[],!n||!n.document||n.document.nodeType!==9)return e.isSupported=!1,e;const t=n.document,i=t.currentScript;let{document:s}=n;const{DocumentFragment:o,HTMLTemplateElement:r,Node:a,Element:l,NodeFilter:c,NamedNodeMap:d=n.NamedNodeMap||n.MozNamedAttrMap,HTMLFormElement:u,DOMParser:h,trustedTypes:f}=n,g=l.prototype,p=LE(g,\"cloneNode\"),_=LE(g,\"nextSibling\"),b=LE(g,\"childNodes\"),w=LE(g,\"parentNode\");if(typeof r==\"function\"){const Gt=s.createElement(\"template\");Gt.content&&Gt.content.ownerDocument&&(s=Gt.content.ownerDocument)}let y,S=\"\";const{implementation:x,createNodeIterator:k,createDocumentFragment:D,getElementsByTagName:I}=s,{importNode:N}=t;let P={};e.isSupported=typeof Nae==\"function\"&&typeof w==\"function\"&&x&&x.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:O,ERB_EXPR:M,TMPLIT_EXPR:z,DATA_ATTR:K,ARIA_ATTR:ae,IS_SCRIPT_OR_DATA:se,ATTR_WHITESPACE:he}=vY;let{IS_ALLOWED_URI:me}=vY,De=null;const lt=Ki({},[...gY,...DF,...IF,...EF,...pY]);let We=null;const Ve=Ki({},[...mY,...TF,..._Y,...kE]);let Me=Object.seal(Object.create(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}})),Zt=null,Oi=null,ni=!0,Se=!0,Qe=!1,nt=!0,mt=!1,Je=!1,Ii=!1,J=!1,ie=!1,ye=!1,ze=!1,Oe=!0,et=!1;const vt=\"user-content-\";let re=!0,Q=!1,Z={},B=null;const H=Ki({},[\"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 Y=null;const G=Ki({},[\"audio\",\"video\",\"img\",\"source\",\"image\",\"track\"]);let ge=null;const Ie=Ki({},[\"alt\",\"class\",\"for\",\"id\",\"label\",\"name\",\"pattern\",\"placeholder\",\"role\",\"summary\",\"title\",\"value\",\"style\",\"xmlns\"]),qe=\"http://www.w3.org/1998/Math/MathML\",ot=\"http://www.w3.org/2000/svg\",bt=\"http://www.w3.org/1999/xhtml\";let xt=bt,si=!1,Ci=null;const Dt=Ki({},[qe,ot,bt],kF);let Si;const Ai=[\"application/xhtml+xml\",\"text/html\"],mr=\"text/html\";let Ei,Cs=null;const wu=s.createElement(\"form\"),yu=function(_e){return _e instanceof RegExp||_e instanceof Function},Nl=function(_e){if(!(Cs&&Cs===_e)){if((!_e||typeof _e!=\"object\")&&(_e={}),_e=Ab(_e),Si=Ai.indexOf(_e.PARSER_MEDIA_TYPE)===-1?Si=mr:Si=_e.PARSER_MEDIA_TYPE,Ei=Si===\"application/xhtml+xml\"?kF:dN,De=\"ALLOWED_TAGS\"in _e?Ki({},_e.ALLOWED_TAGS,Ei):lt,We=\"ALLOWED_ATTR\"in _e?Ki({},_e.ALLOWED_ATTR,Ei):Ve,Ci=\"ALLOWED_NAMESPACES\"in _e?Ki({},_e.ALLOWED_NAMESPACES,kF):Dt,ge=\"ADD_URI_SAFE_ATTR\"in _e?Ki(Ab(Ie),_e.ADD_URI_SAFE_ATTR,Ei):Ie,Y=\"ADD_DATA_URI_TAGS\"in _e?Ki(Ab(G),_e.ADD_DATA_URI_TAGS,Ei):G,B=\"FORBID_CONTENTS\"in _e?Ki({},_e.FORBID_CONTENTS,Ei):H,Zt=\"FORBID_TAGS\"in _e?Ki({},_e.FORBID_TAGS,Ei):{},Oi=\"FORBID_ATTR\"in _e?Ki({},_e.FORBID_ATTR,Ei):{},Z=\"USE_PROFILES\"in _e?_e.USE_PROFILES:!1,ni=_e.ALLOW_ARIA_ATTR!==!1,Se=_e.ALLOW_DATA_ATTR!==!1,Qe=_e.ALLOW_UNKNOWN_PROTOCOLS||!1,nt=_e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,mt=_e.SAFE_FOR_TEMPLATES||!1,Je=_e.WHOLE_DOCUMENT||!1,ie=_e.RETURN_DOM||!1,ye=_e.RETURN_DOM_FRAGMENT||!1,ze=_e.RETURN_TRUSTED_TYPE||!1,J=_e.FORCE_BODY||!1,Oe=_e.SANITIZE_DOM!==!1,et=_e.SANITIZE_NAMED_PROPS||!1,re=_e.KEEP_CONTENT!==!1,Q=_e.IN_PLACE||!1,me=_e.ALLOWED_URI_REGEXP||Aae,xt=_e.NAMESPACE||bt,Me=_e.CUSTOM_ELEMENT_HANDLING||{},_e.CUSTOM_ELEMENT_HANDLING&&yu(_e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Me.tagNameCheck=_e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),_e.CUSTOM_ELEMENT_HANDLING&&yu(_e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Me.attributeNameCheck=_e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),_e.CUSTOM_ELEMENT_HANDLING&&typeof _e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements==\"boolean\"&&(Me.allowCustomizedBuiltInElements=_e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),mt&&(Se=!1),ye&&(ie=!0),Z&&(De=Ki({},[...pY]),We=[],Z.html===!0&&(Ki(De,gY),Ki(We,mY)),Z.svg===!0&&(Ki(De,DF),Ki(We,TF),Ki(We,kE)),Z.svgFilters===!0&&(Ki(De,IF),Ki(We,TF),Ki(We,kE)),Z.mathMl===!0&&(Ki(De,EF),Ki(We,_Y),Ki(We,kE))),_e.ADD_TAGS&&(De===lt&&(De=Ab(De)),Ki(De,_e.ADD_TAGS,Ei)),_e.ADD_ATTR&&(We===Ve&&(We=Ab(We)),Ki(We,_e.ADD_ATTR,Ei)),_e.ADD_URI_SAFE_ATTR&&Ki(ge,_e.ADD_URI_SAFE_ATTR,Ei),_e.FORBID_CONTENTS&&(B===H&&(B=Ab(B)),Ki(B,_e.FORBID_CONTENTS,Ei)),re&&(De[\"#text\"]=!0),Je&&Ki(De,[\"html\",\"head\",\"body\"]),De.table&&(Ki(De,[\"tbody\"]),delete Zt.tbody),_e.TRUSTED_TYPES_POLICY){if(typeof _e.TRUSTED_TYPES_POLICY.createHTML!=\"function\")throw Ty('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');if(typeof _e.TRUSTED_TYPES_POLICY.createScriptURL!=\"function\")throw Ty('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');y=_e.TRUSTED_TYPES_POLICY,S=y.createHTML(\"\")}else y===void 0&&(y=lMe(f,i)),y!==null&&typeof S==\"string\"&&(S=y.createHTML(\"\"));Pa&&Pa(_e),Cs=_e}},Su=Ki({},[\"mi\",\"mo\",\"mn\",\"ms\",\"mtext\"]),Kh=Ki({},[\"foreignobject\",\"desc\",\"title\",\"annotation-xml\"]),qh=Ki({},[\"title\",\"style\",\"font\",\"a\",\"script\"]),Gh=Ki({},DF);Ki(Gh,IF),Ki(Gh,QRe);const Zh=Ki({},EF);Ki(Zh,JRe);const ry=function(_e){let ct=w(_e);(!ct||!ct.tagName)&&(ct={namespaceURI:xt,tagName:\"template\"});const Et=dN(_e.tagName),jn=dN(ct.tagName);return Ci[_e.namespaceURI]?_e.namespaceURI===ot?ct.namespaceURI===bt?Et===\"svg\":ct.namespaceURI===qe?Et===\"svg\"&&(jn===\"annotation-xml\"||Su[jn]):!!Gh[Et]:_e.namespaceURI===qe?ct.namespaceURI===bt?Et===\"math\":ct.namespaceURI===ot?Et===\"math\"&&Kh[jn]:!!Zh[Et]:_e.namespaceURI===bt?ct.namespaceURI===ot&&!Kh[jn]||ct.namespaceURI===qe&&!Su[jn]?!1:!Zh[Et]&&(qh[Et]||!Gh[Et]):!!(Si===\"application/xhtml+xml\"&&Ci[_e.namespaceURI]):!1},yc=function(_e){Ey(e.removed,{element:_e});try{_e.parentNode.removeChild(_e)}catch{_e.remove()}},Yh=function(_e,ct){try{Ey(e.removed,{attribute:ct.getAttributeNode(_e),from:ct})}catch{Ey(e.removed,{attribute:null,from:ct})}if(ct.removeAttribute(_e),_e===\"is\"&&!We[_e])if(ie||ye)try{yc(ct)}catch{}else try{ct.setAttribute(_e,\"\")}catch{}},k_=function(_e){let ct,Et;if(J)_e=\"<remove></remove>\"+_e;else{const ja=GRe(_e,/^[\\r\\n\\t ]+/);Et=ja&&ja[0]}Si===\"application/xhtml+xml\"&&xt===bt&&(_e='<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>'+_e+\"</body></html>\");const jn=y?y.createHTML(_e):_e;if(xt===bt)try{ct=new h().parseFromString(jn,Si)}catch{}if(!ct||!ct.documentElement){ct=x.createDocument(xt,\"template\",null);try{ct.documentElement.innerHTML=si?S:jn}catch{}}const ko=ct.body||ct.documentElement;return _e&&Et&&ko.insertBefore(s.createTextNode(Et),ko.childNodes[0]||null),xt===bt?I.call(ct,Je?\"html\":\"body\")[0]:Je?ct.documentElement:ko},Kg=function(_e){return k.call(_e.ownerDocument||_e,_e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT,null,!1)},MO=function(_e){return _e instanceof u&&(typeof _e.nodeName!=\"string\"||typeof _e.textContent!=\"string\"||typeof _e.removeChild!=\"function\"||!(_e.attributes instanceof d)||typeof _e.removeAttribute!=\"function\"||typeof _e.setAttribute!=\"function\"||typeof _e.namespaceURI!=\"string\"||typeof _e.insertBefore!=\"function\"||typeof _e.hasChildNodes!=\"function\")},hb=function(_e){return typeof a==\"object\"?_e instanceof a:_e&&typeof _e==\"object\"&&typeof _e.nodeType==\"number\"&&typeof _e.nodeName==\"string\"},hd=function(_e,ct,Et){P[_e]&&qRe(P[_e],jn=>{jn.call(e,ct,Et,Cs)})},gI=function(_e){let ct;if(hd(\"beforeSanitizeElements\",_e,null),MO(_e))return yc(_e),!0;const Et=Ei(_e.nodeName);if(hd(\"uponSanitizeElement\",_e,{tagName:Et,allowedTags:De}),_e.hasChildNodes()&&!hb(_e.firstElementChild)&&(!hb(_e.content)||!hb(_e.content.firstElementChild))&&Wl(/<[/\\w]/g,_e.innerHTML)&&Wl(/<[/\\w]/g,_e.textContent))return yc(_e),!0;if(!De[Et]||Zt[Et]){if(!Zt[Et]&&mI(Et)&&(Me.tagNameCheck instanceof RegExp&&Wl(Me.tagNameCheck,Et)||Me.tagNameCheck instanceof Function&&Me.tagNameCheck(Et)))return!1;if(re&&!B[Et]){const jn=w(_e)||_e.parentNode,ko=b(_e)||_e.childNodes;if(ko&&jn){const ja=ko.length;for(let ls=ja-1;ls>=0;--ls)jn.insertBefore(p(ko[ls],!0),_(_e))}}return yc(_e),!0}return _e instanceof l&&!ry(_e)||(Et===\"noscript\"||Et===\"noembed\"||Et===\"noframes\")&&Wl(/<\\/no(script|embed|frames)/i,_e.innerHTML)?(yc(_e),!0):(mt&&_e.nodeType===3&&(ct=_e.textContent,ct=_d(ct,O,\" \"),ct=_d(ct,M,\" \"),ct=_d(ct,z,\" \"),_e.textContent!==ct&&(Ey(e.removed,{element:_e.cloneNode()}),_e.textContent=ct)),hd(\"afterSanitizeElements\",_e,null),!1)},pI=function(_e,ct,Et){if(Oe&&(ct===\"id\"||ct===\"name\")&&(Et in s||Et in wu))return!1;if(!(Se&&!Oi[ct]&&Wl(K,ct))){if(!(ni&&Wl(ae,ct))){if(!We[ct]||Oi[ct]){if(!(mI(_e)&&(Me.tagNameCheck instanceof RegExp&&Wl(Me.tagNameCheck,_e)||Me.tagNameCheck instanceof Function&&Me.tagNameCheck(_e))&&(Me.attributeNameCheck instanceof RegExp&&Wl(Me.attributeNameCheck,ct)||Me.attributeNameCheck instanceof Function&&Me.attributeNameCheck(ct))||ct===\"is\"&&Me.allowCustomizedBuiltInElements&&(Me.tagNameCheck instanceof RegExp&&Wl(Me.tagNameCheck,Et)||Me.tagNameCheck instanceof Function&&Me.tagNameCheck(Et))))return!1}else if(!ge[ct]){if(!Wl(me,_d(Et,he,\"\"))){if(!((ct===\"src\"||ct===\"xlink:href\"||ct===\"href\")&&_e!==\"script\"&&ZRe(Et,\"data:\")===0&&Y[_e])){if(!(Qe&&!Wl(se,_d(Et,he,\"\")))){if(Et)return!1}}}}}}return!0},mI=function(_e){return _e.indexOf(\"-\")>0},_I=function(_e){let ct,Et,jn,ko;hd(\"beforeSanitizeAttributes\",_e,null);const{attributes:ja}=_e;if(!ja)return;const ls={attrName:\"\",attrValue:\"\",keepAttr:!0,allowedAttributes:We};for(ko=ja.length;ko--;){ct=ja[ko];const{name:Sc,namespaceURI:qg}=ct;if(Et=Sc===\"value\"?ct.value:YRe(ct.value),jn=Ei(Sc),ls.attrName=jn,ls.attrValue=Et,ls.keepAttr=!0,ls.forceKeepAttr=void 0,hd(\"uponSanitizeAttribute\",_e,ls),Et=ls.attrValue,ls.forceKeepAttr||(Yh(Sc,_e),!ls.keepAttr))continue;if(!nt&&Wl(/\\/>/i,Et)){Yh(Sc,_e);continue}mt&&(Et=_d(Et,O,\" \"),Et=_d(Et,M,\" \"),Et=_d(Et,z,\" \"));const vI=Ei(_e.nodeName);if(pI(vI,jn,Et)){if(et&&(jn===\"id\"||jn===\"name\")&&(Yh(Sc,_e),Et=vt+Et),y&&typeof f==\"object\"&&typeof f.getAttributeType==\"function\"&&!qg)switch(f.getAttributeType(vI,jn)){case\"TrustedHTML\":{Et=y.createHTML(Et);break}case\"TrustedScriptURL\":{Et=y.createScriptURL(Et);break}}try{qg?_e.setAttributeNS(qg,Sc,Et):_e.setAttribute(Sc,Et),fY(e.removed)}catch{}}}hd(\"afterSanitizeAttributes\",_e,null)},PO=function Gt(_e){let ct;const Et=Kg(_e);for(hd(\"beforeSanitizeShadowDOM\",_e,null);ct=Et.nextNode();)hd(\"uponSanitizeShadowNode\",ct,null),!gI(ct)&&(ct.content instanceof o&&Gt(ct.content),_I(ct));hd(\"afterSanitizeShadowDOM\",_e,null)};return e.sanitize=function(Gt){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},ct,Et,jn,ko;if(si=!Gt,si&&(Gt=\"<!-->\"),typeof Gt!=\"string\"&&!hb(Gt))if(typeof Gt.toString==\"function\"){if(Gt=Gt.toString(),typeof Gt!=\"string\")throw Ty(\"dirty is not a string, aborting\")}else throw Ty(\"toString is not a function\");if(!e.isSupported)return Gt;if(Ii||Nl(_e),e.removed=[],typeof Gt==\"string\"&&(Q=!1),Q){if(Gt.nodeName){const Sc=Ei(Gt.nodeName);if(!De[Sc]||Zt[Sc])throw Ty(\"root node is forbidden and cannot be sanitized in-place\")}}else if(Gt instanceof a)ct=k_(\"<!---->\"),Et=ct.ownerDocument.importNode(Gt,!0),Et.nodeType===1&&Et.nodeName===\"BODY\"||Et.nodeName===\"HTML\"?ct=Et:ct.appendChild(Et);else{if(!ie&&!mt&&!Je&&Gt.indexOf(\"<\")===-1)return y&&ze?y.createHTML(Gt):Gt;if(ct=k_(Gt),!ct)return ie?null:ze?S:\"\"}ct&&J&&yc(ct.firstChild);const ja=Kg(Q?Gt:ct);for(;jn=ja.nextNode();)gI(jn)||(jn.content instanceof o&&PO(jn.content),_I(jn));if(Q)return Gt;if(ie){if(ye)for(ko=D.call(ct.ownerDocument);ct.firstChild;)ko.appendChild(ct.firstChild);else ko=ct;return(We.shadowroot||We.shadowrootmode)&&(ko=N.call(t,ko,!0)),ko}let ls=Je?ct.outerHTML:ct.innerHTML;return Je&&De[\"!doctype\"]&&ct.ownerDocument&&ct.ownerDocument.doctype&&ct.ownerDocument.doctype.name&&Wl(Rae,ct.ownerDocument.doctype.name)&&(ls=\"<!DOCTYPE \"+ct.ownerDocument.doctype.name+`>\n`+ls),mt&&(ls=_d(ls,O,\" \"),ls=_d(ls,M,\" \"),ls=_d(ls,z,\" \")),y&&ze?y.createHTML(ls):ls},e.setConfig=function(Gt){Nl(Gt),Ii=!0},e.clearConfig=function(){Cs=null,Ii=!1},e.isValidAttribute=function(Gt,_e,ct){Cs||Nl({});const Et=Ei(Gt),jn=Ei(_e);return pI(Et,jn,ct)},e.addHook=function(Gt,_e){typeof _e==\"function\"&&(P[Gt]=P[Gt]||[],Ey(P[Gt],_e))},e.removeHook=function(Gt){if(P[Gt])return fY(P[Gt])},e.removeHooks=function(Gt){P[Gt]&&(P[Gt]=[])},e.removeAllHooks=function(){P={}},e}var Hh=Mae();Hh.version;Hh.isSupported;const Pae=Hh.sanitize;Hh.setConfig;Hh.clearConfig;Hh.isValidAttribute;const Oae=Hh.addHook,Fae=Hh.removeHook;Hh.removeHooks;Hh.removeAllHooks;var Tt;(function(n){n.inMemory=\"inmemory\",n.vscode=\"vscode\",n.internal=\"private\",n.walkThrough=\"walkThrough\",n.walkThroughSnippet=\"walkThroughSnippet\",n.http=\"http\",n.https=\"https\",n.file=\"file\",n.mailto=\"mailto\",n.untitled=\"untitled\",n.data=\"data\",n.command=\"command\",n.vscodeRemote=\"vscode-remote\",n.vscodeRemoteResource=\"vscode-remote-resource\",n.vscodeManagedRemoteResource=\"vscode-managed-remote-resource\",n.vscodeUserData=\"vscode-userdata\",n.vscodeCustomEditor=\"vscode-custom-editor\",n.vscodeNotebookCell=\"vscode-notebook-cell\",n.vscodeNotebookCellMetadata=\"vscode-notebook-cell-metadata\",n.vscodeNotebookCellOutput=\"vscode-notebook-cell-output\",n.vscodeInteractiveInput=\"vscode-interactive-input\",n.vscodeSettings=\"vscode-settings\",n.vscodeWorkspaceTrust=\"vscode-workspace-trust\",n.vscodeTerminal=\"vscode-terminal\",n.vscodeChatCodeBlock=\"vscode-chat-code-block\",n.vscodeCopilotBackingChatCodeBlock=\"vscode-copilot-chat-code-block\",n.vscodeChatCodeCompareBlock=\"vscode-chat-code-compare-block\",n.vscodeChatSesssion=\"vscode-chat-editor\",n.webviewPanel=\"webview-panel\",n.vscodeWebview=\"vscode-webview\",n.extension=\"extension\",n.vscodeFileResource=\"vscode-file\",n.tmp=\"tmp\",n.vsls=\"vsls\",n.vscodeSourceControl=\"vscode-scm\",n.commentsInput=\"comment\",n.codeSetting=\"code-setting\"})(Tt||(Tt={}));function ez(n,e){return pt.isUri(n)?f1(n.scheme,e):jV(n,e+\":\")}function oB(n,...e){return e.some(t=>ez(n,t))}const cMe=\"tkn\";class dMe{constructor(){this._hosts=Object.create(null),this._ports=Object.create(null),this._connectionTokens=Object.create(null),this._preferredWebSchema=\"http\",this._delegate=null,this._serverRootPath=\"/\"}setPreferredWebSchema(e){this._preferredWebSchema=e}get _remoteResourcesPath(){return ks.join(this._serverRootPath,Tt.vscodeRemoteResource)}rewrite(e){if(this._delegate)try{return this._delegate(e)}catch(a){return Mt(a),e}const t=e.authority;let i=this._hosts[t];i&&i.indexOf(\":\")!==-1&&i.indexOf(\"[\")===-1&&(i=`[${i}]`);const s=this._ports[t],o=this._connectionTokens[t];let r=`path=${encodeURIComponent(e.path)}`;return typeof o==\"string\"&&(r+=`&${cMe}=${encodeURIComponent(o)}`),pt.from({scheme:u_?this._preferredWebSchema:Tt.vscodeRemoteResource,authority:`${i}:${s}`,path:this._remoteResourcesPath,query:r})}}const Bae=new dMe,uMe=\"vscode-app\";class uL{uriToBrowserUri(e){return e.scheme===Tt.vscodeRemote?Bae.rewrite(e):e.scheme===Tt.file&&(Lh||C2e===`${Tt.vscodeFileResource}://${uL.FALLBACK_AUTHORITY}`)?e.with({scheme:Tt.vscodeFileResource,authority:e.authority||uL.FALLBACK_AUTHORITY,query:null,fragment:null}):e}}uL.FALLBACK_AUTHORITY=uMe;const Wae=new uL;var bY;(function(n){const e=new Map([[\"1\",{\"Cross-Origin-Opener-Policy\":\"same-origin\"}],[\"2\",{\"Cross-Origin-Embedder-Policy\":\"require-corp\"}],[\"3\",{\"Cross-Origin-Opener-Policy\":\"same-origin\",\"Cross-Origin-Embedder-Policy\":\"require-corp\"}]]);n.CoopAndCoep=Object.freeze(e.get(\"3\"));const t=\"vscode-coi\";function i(o){let r;typeof o==\"string\"?r=new URL(o).searchParams:o instanceof URL?r=o.searchParams:pt.isUri(o)&&(r=new URL(o.toString(!0)).searchParams);const a=r==null?void 0:r.get(t);if(a)return e.get(a)}n.getHeadersFromQuery=i;function s(o,r,a){if(!globalThis.crossOriginIsolated)return;const l=r&&a?\"3\":a?\"2\":\"1\";o instanceof URLSearchParams?o.set(t,l):o[t]=l}n.addSearchParam=s})(bY||(bY={}));function aM(n){return lM(n,0)}function lM(n,e){switch(typeof n){case\"object\":return n===null?Gf(349,e):Array.isArray(n)?fMe(n,e):gMe(n,e);case\"string\":return tz(n,e);case\"boolean\":return hMe(n,e);case\"number\":return Gf(n,e);case\"undefined\":return Gf(937,e);default:return Gf(617,e)}}function Gf(n,e){return(e<<5)-e+n|0}function hMe(n,e){return Gf(n?433:863,e)}function tz(n,e){e=Gf(149417,e);for(let t=0,i=n.length;t<i;t++)e=Gf(n.charCodeAt(t),e);return e}function fMe(n,e){return e=Gf(104579,e),n.reduce((t,i)=>lM(i,t),e)}function gMe(n,e){return e=Gf(181387,e),Object.keys(n).sort().reduce((t,i)=>(t=tz(i,t),lM(n[i],t)),e)}function NF(n,e,t=32){const i=t-e,s=~((1<<i)-1);return(n<<e|(s&n)>>>i)>>>0}function CY(n,e=0,t=n.byteLength,i=0){for(let s=0;s<t;s++)n[e+s]=i}function pMe(n,e,t=\"0\"){for(;n.length<e;)n=t+n;return n}function Ny(n,e=32){return n instanceof ArrayBuffer?Array.from(new Uint8Array(n)).map(t=>t.toString(16).padStart(2,\"0\")).join(\"\"):pMe((n>>>0).toString(16),e/4)}class cM{constructor(){this._h0=1732584193,this._h1=4023233417,this._h2=2562383102,this._h3=271733878,this._h4=3285377520,this._buff=new Uint8Array(67),this._buffDV=new DataView(this._buff.buffer),this._buffLen=0,this._totalLen=0,this._leftoverHighSurrogate=0,this._finished=!1}update(e){const t=e.length;if(t===0)return;const i=this._buff;let s=this._buffLen,o=this._leftoverHighSurrogate,r,a;for(o!==0?(r=o,a=-1,o=0):(r=e.charCodeAt(0),a=0);;){let l=r;if(Gs(r))if(a+1<t){const c=e.charCodeAt(a+1);c0(c)?(a++,l=KV(r,c)):l=65533}else{o=r;break}else c0(r)&&(l=65533);if(s=this._push(i,s,l),a++,a<t)r=e.charCodeAt(a);else break}this._buffLen=s,this._leftoverHighSurrogate=o}_push(e,t,i){return i<128?e[t++]=i:i<2048?(e[t++]=192|(i&1984)>>>6,e[t++]=128|(i&63)>>>0):i<65536?(e[t++]=224|(i&61440)>>>12,e[t++]=128|(i&4032)>>>6,e[t++]=128|(i&63)>>>0):(e[t++]=240|(i&1835008)>>>18,e[t++]=128|(i&258048)>>>12,e[t++]=128|(i&4032)>>>6,e[t++]=128|(i&63)>>>0),t>=64&&(this._step(),t-=64,this._totalLen+=64,e[0]=e[64],e[1]=e[65],e[2]=e[66]),t}digest(){return this._finished||(this._finished=!0,this._leftoverHighSurrogate&&(this._leftoverHighSurrogate=0,this._buffLen=this._push(this._buff,this._buffLen,65533)),this._totalLen+=this._buffLen,this._wrapUp()),Ny(this._h0)+Ny(this._h1)+Ny(this._h2)+Ny(this._h3)+Ny(this._h4)}_wrapUp(){this._buff[this._buffLen++]=128,CY(this._buff,this._buffLen),this._buffLen>56&&(this._step(),CY(this._buff));const e=8*this._totalLen;this._buffDV.setUint32(56,Math.floor(e/4294967296),!1),this._buffDV.setUint32(60,e%4294967296,!1),this._step()}_step(){const e=cM._bigBlock32,t=this._buffDV;for(let u=0;u<64;u+=4)e.setUint32(u,t.getUint32(u,!1),!1);for(let u=64;u<320;u+=4)e.setUint32(u,NF(e.getUint32(u-12,!1)^e.getUint32(u-32,!1)^e.getUint32(u-56,!1)^e.getUint32(u-64,!1),1),!1);let i=this._h0,s=this._h1,o=this._h2,r=this._h3,a=this._h4,l,c,d;for(let u=0;u<80;u++)u<20?(l=s&o|~s&r,c=1518500249):u<40?(l=s^o^r,c=1859775393):u<60?(l=s&o|s&r|o&r,c=2400959708):(l=s^o^r,c=3395469782),d=NF(i,5)+l+a+c+e.getUint32(u*4,!1)&4294967295,a=r,r=o,o=NF(s,30),s=i,i=d;this._h0=this._h0+i&4294967295,this._h1=this._h1+s&4294967295,this._h2=this._h2+o&4294967295,this._h3=this._h3+r&4294967295,this._h4=this._h4+a&4294967295}}cM._bigBlock32=new DataView(new ArrayBuffer(320));const{getWindow:gt,getWindows:Hae,getWindowsCount:mMe,getWindowId:F2,getWindowById:wY,onDidRegisterWindow:dM,onWillUnregisterWindow:_Me,onDidUnregisterWindow:vMe}=function(){const n=new Map;lRe(Ji,1);const e={window:Ji,disposables:new be};n.set(Ji.vscodeWindowId,e);const t=new X,i=new X,s=new X;function o(r,a){const l=typeof r==\"number\"?n.get(r):void 0;return l??(a?e:void 0)}return{onDidRegisterWindow:t.event,onWillUnregisterWindow:s.event,onDidUnregisterWindow:i.event,registerWindow(r){if(n.has(r.vscodeWindowId))return ne.None;const a=new be,l={window:r,disposables:a.add(new be)};return n.set(r.vscodeWindowId,l),a.add(dt(()=>{n.delete(r.vscodeWindowId),i.fire(r)})),a.add(ce(r,Le.BEFORE_UNLOAD,()=>{s.fire(r)})),t.fire(l),a},getWindows(){return n.values()},getWindowsCount(){return n.size},getWindowId(r){return r.vscodeWindowId},hasWindow(r){return n.has(r)},getWindowById:o,getWindow(r){var a;const l=r;if(!((a=l==null?void 0:l.ownerDocument)===null||a===void 0)&&a.defaultView)return l.ownerDocument.defaultView.window;const c=r;return c!=null&&c.view?c.view.window:Ji},getDocument(r){return gt(r).document}}}();function wo(n){for(;n.firstChild;)n.firstChild.remove()}class bMe{constructor(e,t,i,s){this._node=e,this._type=t,this._handler=i,this._options=s||!1,this._node.addEventListener(this._type,this._handler,this._options)}dispose(){this._handler&&(this._node.removeEventListener(this._type,this._handler,this._options),this._node=null,this._handler=null)}}function ce(n,e,t,i){return new bMe(n,e,t,i)}function Vae(n,e){return function(t){return e(new Kc(n,t))}}function CMe(n){return function(e){return n(new ln(e))}}const rs=function(e,t,i,s){let o=i;return t===\"click\"||t===\"mousedown\"||t===\"contextmenu\"?o=Vae(gt(e),i):(t===\"keydown\"||t===\"keypress\"||t===\"keyup\")&&(o=CMe(i)),ce(e,t,o,s)},wMe=function(e,t,i){const s=Vae(gt(e),t);return yMe(e,s,i)};function yMe(n,e,t){return ce(n,iu&&XV.pointerEvents?Le.POINTER_DOWN:Le.MOUSE_DOWN,e,t)}function _S(n,e,t){return rx(n,e,t)}class AF extends Tae{constructor(e,t){super(e,t)}}let B2,Oa;class iz extends JV{constructor(e){super(),this.defaultTarget=e&&gt(e)}cancelAndSet(e,t,i){return super.cancelAndSet(e,t,i??this.defaultTarget)}}class RF{constructor(e,t=0){this._runner=e,this.priority=t,this._canceled=!1}dispose(){this._canceled=!0}execute(){if(!this._canceled)try{this._runner()}catch(e){Mt(e)}}static sort(e,t){return t.priority-e.priority}}(function(){const n=new Map,e=new Map,t=new Map,i=new Map,s=o=>{var r;t.set(o,!1);const a=(r=n.get(o))!==null&&r!==void 0?r:[];for(e.set(o,a),n.set(o,[]),i.set(o,!0);a.length>0;)a.sort(RF.sort),a.shift().execute();i.set(o,!1)};Oa=(o,r,a=0)=>{const l=F2(o),c=new RF(r,a);let d=n.get(l);return d||(d=[],n.set(l,d)),d.push(c),t.get(l)||(t.set(l,!0),o.requestAnimationFrame(()=>s(l))),c},B2=(o,r,a)=>{const l=F2(o);if(i.get(l)){const c=new RF(r,a);let d=e.get(l);return d||(d=[],e.set(l,d)),d.push(c),c}else return Oa(o,r,a)}})();function uM(n){return gt(n).getComputedStyle(n,null)}function Fm(n,e){const t=gt(n),i=t.document;if(n!==i.body)return new yi(n.clientWidth,n.clientHeight);if(iu&&(t!=null&&t.visualViewport))return new yi(t.visualViewport.width,t.visualViewport.height);if(t!=null&&t.innerWidth&&t.innerHeight)return new yi(t.innerWidth,t.innerHeight);if(i.body&&i.body.clientWidth&&i.body.clientHeight)return new yi(i.body.clientWidth,i.body.clientHeight);if(i.documentElement&&i.documentElement.clientWidth&&i.documentElement.clientHeight)return new yi(i.documentElement.clientWidth,i.documentElement.clientHeight);throw new Error(\"Unable to figure out browser width and height\")}class ds{static convertToPixels(e,t){return parseFloat(t)||0}static getDimension(e,t,i){const s=uM(e),o=s?s.getPropertyValue(t):\"0\";return ds.convertToPixels(e,o)}static getBorderLeftWidth(e){return ds.getDimension(e,\"border-left-width\",\"borderLeftWidth\")}static getBorderRightWidth(e){return ds.getDimension(e,\"border-right-width\",\"borderRightWidth\")}static getBorderTopWidth(e){return ds.getDimension(e,\"border-top-width\",\"borderTopWidth\")}static getBorderBottomWidth(e){return ds.getDimension(e,\"border-bottom-width\",\"borderBottomWidth\")}static getPaddingLeft(e){return ds.getDimension(e,\"padding-left\",\"paddingLeft\")}static getPaddingRight(e){return ds.getDimension(e,\"padding-right\",\"paddingRight\")}static getPaddingTop(e){return ds.getDimension(e,\"padding-top\",\"paddingTop\")}static getPaddingBottom(e){return ds.getDimension(e,\"padding-bottom\",\"paddingBottom\")}static getMarginLeft(e){return ds.getDimension(e,\"margin-left\",\"marginLeft\")}static getMarginTop(e){return ds.getDimension(e,\"margin-top\",\"marginTop\")}static getMarginRight(e){return ds.getDimension(e,\"margin-right\",\"marginRight\")}static getMarginBottom(e){return ds.getDimension(e,\"margin-bottom\",\"marginBottom\")}}class yi{constructor(e,t){this.width=e,this.height=t}with(e=this.width,t=this.height){return e!==this.width||t!==this.height?new yi(e,t):this}static is(e){return typeof e==\"object\"&&typeof e.height==\"number\"&&typeof e.width==\"number\"}static lift(e){return e instanceof yi?e:new yi(e.width,e.height)}static equals(e,t){return e===t?!0:!e||!t?!1:e.width===t.width&&e.height===t.height}}yi.None=new yi(0,0);function zae(n){let e=n.offsetParent,t=n.offsetTop,i=n.offsetLeft;for(;(n=n.parentNode)!==null&&n!==n.ownerDocument.body&&n!==n.ownerDocument.documentElement;){t-=n.scrollTop;const s=Uae(n)?null:uM(n);s&&(i-=s.direction!==\"rtl\"?n.scrollLeft:-n.scrollLeft),n===e&&(i+=ds.getBorderLeftWidth(n),t+=ds.getBorderTopWidth(n),t+=n.offsetTop,i+=n.offsetLeft,e=n.offsetParent)}return{left:i,top:t}}function SMe(n,e,t){typeof e==\"number\"&&(n.style.width=`${e}px`),typeof t==\"number\"&&(n.style.height=`${t}px`)}function bs(n){const e=n.getBoundingClientRect(),t=gt(n);return{left:e.left+t.scrollX,top:e.top+t.scrollY,width:e.width,height:e.height}}function $ae(n){let e=n,t=1;do{const i=uM(e).zoom;i!=null&&i!==\"1\"&&(t*=i),e=e.parentElement}while(e!==null&&e!==e.ownerDocument.documentElement);return t}function Sa(n){const e=ds.getMarginLeft(n)+ds.getMarginRight(n);return n.offsetWidth+e}function MF(n){const e=ds.getBorderLeftWidth(n)+ds.getBorderRightWidth(n),t=ds.getPaddingLeft(n)+ds.getPaddingRight(n);return n.offsetWidth-e-t}function xMe(n){const e=ds.getBorderTopWidth(n)+ds.getBorderBottomWidth(n),t=ds.getPaddingTop(n)+ds.getPaddingBottom(n);return n.offsetHeight-e-t}function Zf(n){const e=ds.getMarginTop(n)+ds.getMarginBottom(n);return n.offsetHeight+e}function Zs(n,e){return!!(e!=null&&e.contains(n))}function LMe(n,e,t){for(;n&&n.nodeType===n.ELEMENT_NODE;){if(n.classList.contains(e))return n;if(t){if(typeof t==\"string\"){if(n.classList.contains(t))return null}else if(n===t)return null}n=n.parentNode}return null}function PF(n,e,t){return!!LMe(n,e,t)}function Uae(n){return n&&!!n.host&&!!n.mode}function W2(n){return!!h0(n)}function h0(n){for(var e;n.parentNode;){if(n===((e=n.ownerDocument)===null||e===void 0?void 0:e.body))return null;n=n.parentNode}return Uae(n)?n:null}function Ao(){let n=Rw().activeElement;for(;n!=null&&n.shadowRoot;)n=n.shadowRoot.activeElement;return n}function hM(n){return Ao()===n}function jae(n){return Zs(Ao(),n)}function Rw(){var n;return mMe()<=1?Ji.document:(n=Array.from(Hae()).map(({window:t})=>t.document).find(t=>t.hasFocus()))!==null&&n!==void 0?n:Ji.document}function uN(){var n,e;return(e=(n=Rw().defaultView)===null||n===void 0?void 0:n.window)!==null&&e!==void 0?e:Ji}const nz=new Map;function Kae(){return new kMe}class kMe{constructor(){this._currentCssStyle=\"\",this._styleSheet=void 0}setStyle(e){e!==this._currentCssStyle&&(this._currentCssStyle=e,this._styleSheet?this._styleSheet.innerText=e:this._styleSheet=yl(Ji.document.head,t=>t.innerText=e))}dispose(){this._styleSheet&&(this._styleSheet.remove(),this._styleSheet=void 0)}}function yl(n=Ji.document.head,e,t){const i=document.createElement(\"style\");if(i.type=\"text/css\",i.media=\"screen\",e==null||e(i),n.appendChild(i),t&&t.add(dt(()=>n.removeChild(i))),n===Ji.document.head){const s=new Set;nz.set(i,s);for(const{window:o,disposables:r}of Hae()){if(o===Ji)continue;const a=r.add(DMe(i,s,o));t==null||t.add(a)}}return i}function DMe(n,e,t){var i,s;const o=new be,r=n.cloneNode(!0);t.document.head.appendChild(r),o.add(dt(()=>t.document.head.removeChild(r)));for(const a of Gae(n))(i=r.sheet)===null||i===void 0||i.insertRule(a.cssText,(s=r.sheet)===null||s===void 0?void 0:s.cssRules.length);return o.add(IMe.observe(n,o,{childList:!0})(()=>{r.textContent=n.textContent})),e.add(r),o.add(dt(()=>e.delete(r))),o}const IMe=new class{constructor(){this.mutationObservers=new Map}observe(n,e,t){let i=this.mutationObservers.get(n);i||(i=new Map,this.mutationObservers.set(n,i));const s=aM(t);let o=i.get(s);if(o)o.users+=1;else{const r=new X,a=new MutationObserver(c=>r.fire(c));a.observe(n,t);const l=o={users:1,observer:a,onDidMutate:r.event};e.add(dt(()=>{l.users-=1,l.users===0&&(r.dispose(),a.disconnect(),i==null||i.delete(s),(i==null?void 0:i.size)===0&&this.mutationObservers.delete(n))})),i.set(s,o)}return o.onDidMutate}};let OF=null;function qae(){return OF||(OF=yl()),OF}function Gae(n){var e,t;return!((e=n==null?void 0:n.sheet)===null||e===void 0)&&e.rules?n.sheet.rules:!((t=n==null?void 0:n.sheet)===null||t===void 0)&&t.cssRules?n.sheet.cssRules:[]}function H2(n,e,t=qae()){var i,s;if(!(!t||!e)){(i=t.sheet)===null||i===void 0||i.insertRule(`${n} {${e}}`,0);for(const o of(s=nz.get(t))!==null&&s!==void 0?s:[])H2(n,e,o)}}function rB(n,e=qae()){var t,i;if(!e)return;const s=Gae(e),o=[];for(let r=0;r<s.length;r++){const a=s[r];EMe(a)&&a.selectorText.indexOf(n)!==-1&&o.push(r)}for(let r=o.length-1;r>=0;r--)(t=e.sheet)===null||t===void 0||t.deleteRule(o[r]);for(const r of(i=nz.get(e))!==null&&i!==void 0?i:[])rB(n,r)}function EMe(n){return typeof n.selectorText==\"string\"}function co(n){return n instanceof HTMLElement||n instanceof gt(n).HTMLElement}function yY(n){return n instanceof HTMLAnchorElement||n instanceof gt(n).HTMLAnchorElement}function sz(n){return n instanceof MouseEvent||n instanceof gt(n).MouseEvent}function Np(n){return n instanceof KeyboardEvent||n instanceof gt(n).KeyboardEvent}const Le={CLICK:\"click\",AUXCLICK:\"auxclick\",DBLCLICK:\"dblclick\",MOUSE_UP:\"mouseup\",MOUSE_DOWN:\"mousedown\",MOUSE_OVER:\"mouseover\",MOUSE_MOVE:\"mousemove\",MOUSE_OUT:\"mouseout\",MOUSE_ENTER:\"mouseenter\",MOUSE_LEAVE:\"mouseleave\",MOUSE_WHEEL:\"wheel\",POINTER_UP:\"pointerup\",POINTER_DOWN:\"pointerdown\",POINTER_MOVE:\"pointermove\",POINTER_LEAVE:\"pointerleave\",CONTEXT_MENU:\"contextmenu\",KEY_DOWN:\"keydown\",KEY_UP:\"keyup\",BEFORE_UNLOAD:\"beforeunload\",CHANGE:\"change\",FOCUS:\"focus\",FOCUS_IN:\"focusin\",FOCUS_OUT:\"focusout\",BLUR:\"blur\",INPUT:\"input\",DRAG_START:\"dragstart\",DRAG:\"drag\",DRAG_ENTER:\"dragenter\",DRAG_LEAVE:\"dragleave\",DRAG_OVER:\"dragover\",DROP:\"drop\",DRAG_END:\"dragend\"};function TMe(n){const e=n;return!!(e&&typeof e.preventDefault==\"function\"&&typeof e.stopPropagation==\"function\")}const ii={stop:(n,e)=>(n.preventDefault(),e&&n.stopPropagation(),n)};function NMe(n){const e=[];for(let t=0;n&&n.nodeType===n.ELEMENT_NODE;t++)e[t]=n.scrollTop,n=n.parentNode;return e}function AMe(n,e){for(let t=0;n&&n.nodeType===n.ELEMENT_NODE;t++)n.scrollTop!==e[t]&&(n.scrollTop=e[t]),n=n.parentNode}class V2 extends ne{static hasFocusWithin(e){if(co(e)){const t=h0(e),i=t?t.activeElement:e.ownerDocument.activeElement;return Zs(i,e)}else{const t=e;return Zs(t.document.activeElement,t.document)}}constructor(e){super(),this._onDidFocus=this._register(new X),this.onDidFocus=this._onDidFocus.event,this._onDidBlur=this._register(new X),this.onDidBlur=this._onDidBlur.event;let t=V2.hasFocusWithin(e),i=!1;const s=()=>{i=!1,t||(t=!0,this._onDidFocus.fire())},o=()=>{t&&(i=!0,(co(e)?gt(e):e).setTimeout(()=>{i&&(i=!1,t=!1,this._onDidBlur.fire())},0))};this._refreshStateHandler=()=>{V2.hasFocusWithin(e)!==t&&(t?o():s())},this._register(ce(e,Le.FOCUS,s,!0)),this._register(ce(e,Le.BLUR,o,!0)),co(e)&&(this._register(ce(e,Le.FOCUS_IN,()=>this._refreshStateHandler())),this._register(ce(e,Le.FOCUS_OUT,()=>this._refreshStateHandler())))}}function ou(n){return new V2(n)}function RMe(n,e){return n.after(e),e}function we(n,...e){if(n.append(...e),e.length===1&&typeof e[0]!=\"string\")return e[0]}function oz(n,e){return n.insertBefore(e,n.firstChild),e}function yo(n,...e){n.innerText=\"\",we(n,...e)}const MMe=/([\\w\\-]+)?(#([\\w\\-]+))?((\\.([\\w\\-]+))*)/;var hL;(function(n){n.HTML=\"http://www.w3.org/1999/xhtml\",n.SVG=\"http://www.w3.org/2000/svg\"})(hL||(hL={}));function Zae(n,e,t,...i){const s=MMe.exec(e);if(!s)throw new Error(\"Bad use of emmet\");const o=s[1]||\"div\";let r;return n!==hL.HTML?r=document.createElementNS(n,o):r=document.createElement(o),s[3]&&(r.id=s[3]),s[4]&&(r.className=s[4].replace(/\\./g,\" \").trim()),t&&Object.entries(t).forEach(([a,l])=>{typeof l>\"u\"||(/^on\\w+$/.test(a)?r[a]=l:a===\"selected\"?l&&r.setAttribute(a,\"true\"):r.setAttribute(a,l))}),r.append(...i),r}function ke(n,e,...t){return Zae(hL.HTML,n,e,...t)}ke.SVG=function(n,e,...t){return Zae(hL.SVG,n,e,...t)};function PMe(n,...e){n?ka(...e):Lr(...e)}function ka(...n){for(const e of n)e.style.display=\"\",e.removeAttribute(\"aria-hidden\")}function Lr(...n){for(const e of n)e.style.display=\"none\",e.setAttribute(\"aria-hidden\",\"true\")}function SY(n,e){const t=n.devicePixelRatio*e;return Math.max(1,Math.floor(t))/n.devicePixelRatio}function Yae(n){Ji.open(n,\"_blank\",\"noopener\")}function OMe(n,e){const t=()=>{e(),i=Oa(n,t)};let i=Oa(n,t);return dt(()=>i.dispose())}Bae.setPreferredWebSchema(/^https:/.test(Ji.location.href)?\"https\":\"http\");function Ig(n){return n?`url('${Wae.uriToBrowserUri(n).toString(!0).replace(/'/g,\"%27\")}')`:\"url('')\"}function FF(n){return`'${n.replace(/'/g,\"%27\")}'`}function mg(n,e){if(n!==void 0){const t=n.match(/^\\s*var\\((.+)\\)$/);if(t){const i=t[1].split(\",\",2);return i.length===2&&(e=mg(i[1].trim(),e)),`var(${i[0]}, ${e})`}return n}return e}function FMe(n,e=!1){const t=document.createElement(\"a\");return Oae(\"afterSanitizeAttributes\",i=>{for(const s of[\"href\",\"src\"])if(i.hasAttribute(s)){const o=i.getAttribute(s);if(s===\"href\"&&o.startsWith(\"#\"))continue;if(t.href=o,!n.includes(t.protocol.replace(/:$/,\"\"))){if(e&&s===\"src\"&&t.href.startsWith(\"data:\"))continue;i.removeAttribute(s)}}}),dt(()=>{Fae(\"afterSanitizeAttributes\")})}const BMe=Object.freeze([\"a\",\"abbr\",\"b\",\"bdo\",\"blockquote\",\"br\",\"caption\",\"cite\",\"code\",\"col\",\"colgroup\",\"dd\",\"del\",\"details\",\"dfn\",\"div\",\"dl\",\"dt\",\"em\",\"figcaption\",\"figure\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"hr\",\"i\",\"img\",\"input\",\"ins\",\"kbd\",\"label\",\"li\",\"mark\",\"ol\",\"p\",\"pre\",\"q\",\"rp\",\"rt\",\"ruby\",\"samp\",\"small\",\"small\",\"source\",\"span\",\"strike\",\"strong\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"tfoot\",\"th\",\"thead\",\"time\",\"tr\",\"tt\",\"u\",\"ul\",\"var\",\"video\",\"wbr\"]);class Yf extends X{constructor(){super(),this._subscriptions=new be,this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1},this._subscriptions.add(Ae.runAndSubscribe(dM,({window:e,disposables:t})=>this.registerListeners(e,t),{window:Ji,disposables:this._subscriptions}))}registerListeners(e,t){t.add(ce(e,\"keydown\",i=>{if(i.defaultPrevented)return;const s=new ln(i);if(!(s.keyCode===6&&i.repeat)){if(i.altKey&&!this._keyStatus.altKey)this._keyStatus.lastKeyPressed=\"alt\";else if(i.ctrlKey&&!this._keyStatus.ctrlKey)this._keyStatus.lastKeyPressed=\"ctrl\";else if(i.metaKey&&!this._keyStatus.metaKey)this._keyStatus.lastKeyPressed=\"meta\";else if(i.shiftKey&&!this._keyStatus.shiftKey)this._keyStatus.lastKeyPressed=\"shift\";else if(s.keyCode!==6)this._keyStatus.lastKeyPressed=void 0;else return;this._keyStatus.altKey=i.altKey,this._keyStatus.ctrlKey=i.ctrlKey,this._keyStatus.metaKey=i.metaKey,this._keyStatus.shiftKey=i.shiftKey,this._keyStatus.lastKeyPressed&&(this._keyStatus.event=i,this.fire(this._keyStatus))}},!0)),t.add(ce(e,\"keyup\",i=>{i.defaultPrevented||(!i.altKey&&this._keyStatus.altKey?this._keyStatus.lastKeyReleased=\"alt\":!i.ctrlKey&&this._keyStatus.ctrlKey?this._keyStatus.lastKeyReleased=\"ctrl\":!i.metaKey&&this._keyStatus.metaKey?this._keyStatus.lastKeyReleased=\"meta\":!i.shiftKey&&this._keyStatus.shiftKey?this._keyStatus.lastKeyReleased=\"shift\":this._keyStatus.lastKeyReleased=void 0,this._keyStatus.lastKeyPressed!==this._keyStatus.lastKeyReleased&&(this._keyStatus.lastKeyPressed=void 0),this._keyStatus.altKey=i.altKey,this._keyStatus.ctrlKey=i.ctrlKey,this._keyStatus.metaKey=i.metaKey,this._keyStatus.shiftKey=i.shiftKey,this._keyStatus.lastKeyReleased&&(this._keyStatus.event=i,this.fire(this._keyStatus)))},!0)),t.add(ce(e.document.body,\"mousedown\",()=>{this._keyStatus.lastKeyPressed=void 0},!0)),t.add(ce(e.document.body,\"mouseup\",()=>{this._keyStatus.lastKeyPressed=void 0},!0)),t.add(ce(e.document.body,\"mousemove\",i=>{i.buttons&&(this._keyStatus.lastKeyPressed=void 0)},!0)),t.add(ce(e,\"blur\",()=>{this.resetKeyStatus()}))}get keyStatus(){return this._keyStatus}resetKeyStatus(){this.doResetKeyStatus(),this.fire(this._keyStatus)}doResetKeyStatus(){this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1}}static getInstance(){return Yf.instance||(Yf.instance=new Yf),Yf.instance}dispose(){super.dispose(),this._subscriptions.dispose()}}class WMe extends ne{constructor(e,t){super(),this.element=e,this.callbacks=t,this.counter=0,this.dragStartTime=0,this.registerListeners()}registerListeners(){this.callbacks.onDragStart&&this._register(ce(this.element,Le.DRAG_START,e=>{var t,i;(i=(t=this.callbacks).onDragStart)===null||i===void 0||i.call(t,e)})),this.callbacks.onDrag&&this._register(ce(this.element,Le.DRAG,e=>{var t,i;(i=(t=this.callbacks).onDrag)===null||i===void 0||i.call(t,e)})),this._register(ce(this.element,Le.DRAG_ENTER,e=>{var t,i;this.counter++,this.dragStartTime=e.timeStamp,(i=(t=this.callbacks).onDragEnter)===null||i===void 0||i.call(t,e)})),this._register(ce(this.element,Le.DRAG_OVER,e=>{var t,i;e.preventDefault(),(i=(t=this.callbacks).onDragOver)===null||i===void 0||i.call(t,e,e.timeStamp-this.dragStartTime)})),this._register(ce(this.element,Le.DRAG_LEAVE,e=>{var t,i;this.counter--,this.counter===0&&(this.dragStartTime=0,(i=(t=this.callbacks).onDragLeave)===null||i===void 0||i.call(t,e))})),this._register(ce(this.element,Le.DRAG_END,e=>{var t,i;this.counter=0,this.dragStartTime=0,(i=(t=this.callbacks).onDragEnd)===null||i===void 0||i.call(t,e)})),this._register(ce(this.element,Le.DROP,e=>{var t,i;this.counter=0,this.dragStartTime=0,(i=(t=this.callbacks).onDrop)===null||i===void 0||i.call(t,e)}))}}const HMe=/(?<tag>[\\w\\-]+)?(?:#(?<id>[\\w\\-]+))?(?<class>(?:\\.(?:[\\w\\-]+))*)(?:@(?<name>(?:[\\w\\_])+))?/;function wi(n,...e){let t,i;Array.isArray(e[0])?(t={},i=e[0]):(t=e[0]||{},i=e[1]);const s=HMe.exec(n);if(!s||!s.groups)throw new Error(\"Bad use of h\");const o=s.groups.tag||\"div\",r=document.createElement(o);s.groups.id&&(r.id=s.groups.id);const a=[];if(s.groups.class)for(const c of s.groups.class.split(\".\"))c!==\"\"&&a.push(c);if(t.className!==void 0)for(const c of t.className.split(\".\"))c!==\"\"&&a.push(c);a.length>0&&(r.className=a.join(\" \"));const l={};if(s.groups.name&&(l[s.groups.name]=r),i)for(const c of i)co(c)?r.appendChild(c):typeof c==\"string\"?r.append(c):\"root\"in c&&(Object.assign(l,c),r.appendChild(c.root));for(const[c,d]of Object.entries(t))if(c!==\"className\")if(c===\"style\")for(const[u,h]of Object.entries(d))r.style.setProperty(xY(u),typeof h==\"number\"?h+\"px\":\"\"+h);else c===\"tabIndex\"?r.tabIndex=d:r.setAttribute(xY(c),d.toString());return l.root=r,l}function xY(n){return n.replace(/([a-z])([A-Z])/g,\"$1-$2\").toLowerCase()}class VMe extends ne{constructor(e){super(),this._onDidChange=this._register(new X),this.onDidChange=this._onDidChange.event,this._listener=()=>this._handleChange(e,!0),this._mediaQueryList=null,this._handleChange(e,!1)}_handleChange(e,t){var i;(i=this._mediaQueryList)===null||i===void 0||i.removeEventListener(\"change\",this._listener),this._mediaQueryList=e.matchMedia(`(resolution: ${e.devicePixelRatio}dppx)`),this._mediaQueryList.addEventListener(\"change\",this._listener),t&&this._onDidChange.fire()}}class zMe extends ne{get value(){return this._value}constructor(e){super(),this._onDidChange=this._register(new X),this.onDidChange=this._onDidChange.event,this._value=this._getPixelRatio(e);const t=this._register(new VMe(e));this._register(t.onDidChange(()=>{this._value=this._getPixelRatio(e),this._onDidChange.fire(this._value)}))}_getPixelRatio(e){const t=document.createElement(\"canvas\").getContext(\"2d\"),i=e.devicePixelRatio||1,s=t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1;return i/s}}class $Me{constructor(){this.mapWindowIdToPixelRatioMonitor=new Map}_getOrCreatePixelRatioMonitor(e){const t=F2(e);let i=this.mapWindowIdToPixelRatioMonitor.get(t);return i||(i=new zMe(e),this.mapWindowIdToPixelRatioMonitor.set(t,i),Ae.once(vMe)(({vscodeWindowId:s})=>{s===t&&(i==null||i.dispose(),this.mapWindowIdToPixelRatioMonitor.delete(t))})),i}getInstance(e){return this._getOrCreatePixelRatioMonitor(e)}}const fL=new $Me;class Xae{constructor(e){this.domNode=e,this._maxWidth=\"\",this._width=\"\",this._height=\"\",this._top=\"\",this._left=\"\",this._bottom=\"\",this._right=\"\",this._paddingLeft=\"\",this._fontFamily=\"\",this._fontWeight=\"\",this._fontSize=\"\",this._fontStyle=\"\",this._fontFeatureSettings=\"\",this._fontVariationSettings=\"\",this._textDecoration=\"\",this._lineHeight=\"\",this._letterSpacing=\"\",this._className=\"\",this._display=\"\",this._position=\"\",this._visibility=\"\",this._color=\"\",this._backgroundColor=\"\",this._layerHint=!1,this._contain=\"none\",this._boxShadow=\"\"}setMaxWidth(e){const t=vd(e);this._maxWidth!==t&&(this._maxWidth=t,this.domNode.style.maxWidth=this._maxWidth)}setWidth(e){const t=vd(e);this._width!==t&&(this._width=t,this.domNode.style.width=this._width)}setHeight(e){const t=vd(e);this._height!==t&&(this._height=t,this.domNode.style.height=this._height)}setTop(e){const t=vd(e);this._top!==t&&(this._top=t,this.domNode.style.top=this._top)}setLeft(e){const t=vd(e);this._left!==t&&(this._left=t,this.domNode.style.left=this._left)}setBottom(e){const t=vd(e);this._bottom!==t&&(this._bottom=t,this.domNode.style.bottom=this._bottom)}setRight(e){const t=vd(e);this._right!==t&&(this._right=t,this.domNode.style.right=this._right)}setPaddingLeft(e){const t=vd(e);this._paddingLeft!==t&&(this._paddingLeft=t,this.domNode.style.paddingLeft=this._paddingLeft)}setFontFamily(e){this._fontFamily!==e&&(this._fontFamily=e,this.domNode.style.fontFamily=this._fontFamily)}setFontWeight(e){this._fontWeight!==e&&(this._fontWeight=e,this.domNode.style.fontWeight=this._fontWeight)}setFontSize(e){const t=vd(e);this._fontSize!==t&&(this._fontSize=t,this.domNode.style.fontSize=this._fontSize)}setFontStyle(e){this._fontStyle!==e&&(this._fontStyle=e,this.domNode.style.fontStyle=this._fontStyle)}setFontFeatureSettings(e){this._fontFeatureSettings!==e&&(this._fontFeatureSettings=e,this.domNode.style.fontFeatureSettings=this._fontFeatureSettings)}setFontVariationSettings(e){this._fontVariationSettings!==e&&(this._fontVariationSettings=e,this.domNode.style.fontVariationSettings=this._fontVariationSettings)}setTextDecoration(e){this._textDecoration!==e&&(this._textDecoration=e,this.domNode.style.textDecoration=this._textDecoration)}setLineHeight(e){const t=vd(e);this._lineHeight!==t&&(this._lineHeight=t,this.domNode.style.lineHeight=this._lineHeight)}setLetterSpacing(e){const t=vd(e);this._letterSpacing!==t&&(this._letterSpacing=t,this.domNode.style.letterSpacing=this._letterSpacing)}setClassName(e){this._className!==e&&(this._className=e,this.domNode.className=this._className)}toggleClassName(e,t){this.domNode.classList.toggle(e,t),this._className=this.domNode.className}setDisplay(e){this._display!==e&&(this._display=e,this.domNode.style.display=this._display)}setPosition(e){this._position!==e&&(this._position=e,this.domNode.style.position=this._position)}setVisibility(e){this._visibility!==e&&(this._visibility=e,this.domNode.style.visibility=this._visibility)}setColor(e){this._color!==e&&(this._color=e,this.domNode.style.color=this._color)}setBackgroundColor(e){this._backgroundColor!==e&&(this._backgroundColor=e,this.domNode.style.backgroundColor=this._backgroundColor)}setLayerHinting(e){this._layerHint!==e&&(this._layerHint=e,this.domNode.style.transform=this._layerHint?\"translate3d(0px, 0px, 0px)\":\"\")}setBoxShadow(e){this._boxShadow!==e&&(this._boxShadow=e,this.domNode.style.boxShadow=e)}setContain(e){this._contain!==e&&(this._contain=e,this.domNode.style.contain=this._contain)}setAttribute(e,t){this.domNode.setAttribute(e,t)}removeAttribute(e){this.domNode.removeAttribute(e)}appendChild(e){this.domNode.appendChild(e.domNode)}removeChild(e){this.domNode.removeChild(e.domNode)}}function vd(n){return typeof n==\"number\"?`${n}px`:n}function Di(n){return new Xae(n)}function So(n,e){n instanceof Xae?(n.setFontFamily(e.getMassagedFontFamily()),n.setFontWeight(e.fontWeight),n.setFontSize(e.fontSize),n.setFontFeatureSettings(e.fontFeatureSettings),n.setFontVariationSettings(e.fontVariationSettings),n.setLineHeight(e.lineHeight),n.setLetterSpacing(e.letterSpacing)):(n.style.fontFamily=e.getMassagedFontFamily(),n.style.fontWeight=e.fontWeight,n.style.fontSize=e.fontSize+\"px\",n.style.fontFeatureSettings=e.fontFeatureSettings,n.style.fontVariationSettings=e.fontVariationSettings,n.style.lineHeight=e.lineHeight+\"px\",n.style.letterSpacing=e.letterSpacing+\"px\")}class UMe{constructor(e,t){this.chr=e,this.type=t,this.width=0}fulfill(e){this.width=e}}class rz{constructor(e,t){this._bareFontInfo=e,this._requests=t,this._container=null,this._testElements=null}read(e){this._createDomElements(),e.document.body.appendChild(this._container),this._readFromDomElements(),e.document.body.removeChild(this._container),this._container=null,this._testElements=null}_createDomElements(){const e=document.createElement(\"div\");e.style.position=\"absolute\",e.style.top=\"-50000px\",e.style.width=\"50000px\";const t=document.createElement(\"div\");So(t,this._bareFontInfo),e.appendChild(t);const i=document.createElement(\"div\");So(i,this._bareFontInfo),i.style.fontWeight=\"bold\",e.appendChild(i);const s=document.createElement(\"div\");So(s,this._bareFontInfo),s.style.fontStyle=\"italic\",e.appendChild(s);const o=[];for(const r of this._requests){let a;r.type===0&&(a=t),r.type===2&&(a=i),r.type===1&&(a=s),a.appendChild(document.createElement(\"br\"));const l=document.createElement(\"span\");rz._render(l,r),a.appendChild(l),o.push(l)}this._container=e,this._testElements=o}static _render(e,t){if(t.chr===\" \"){let i=\" \";for(let s=0;s<8;s++)i+=i;e.innerText=i}else{let i=t.chr;for(let s=0;s<8;s++)i+=i;e.textContent=i}}_readFromDomElements(){for(let e=0,t=this._requests.length;e<t;e++){const i=this._requests[e],s=this._testElements[e];i.fulfill(s.offsetWidth/256)}}}function jMe(n,e,t){new rz(e,t).read(n)}const Kl=new class{constructor(){this._zoomLevel=0,this._onDidChangeZoomLevel=new X,this.onDidChangeZoomLevel=this._onDidChangeZoomLevel.event}getZoomLevel(){return this._zoomLevel}setZoomLevel(n){n=Math.min(Math.max(-5,n),20),this._zoomLevel!==n&&(this._zoomLevel=n,this._onDidChangeZoomLevel.fire(this._zoomLevel))}},KMe=Xt?1.5:1.35,BF=8;class zv{static createFromValidatedSettings(e,t,i){const s=e.get(49),o=e.get(53),r=e.get(52),a=e.get(51),l=e.get(54),c=e.get(67),d=e.get(64);return zv._create(s,o,r,a,l,c,d,t,i)}static _create(e,t,i,s,o,r,a,l,c){r===0?r=KMe*i:r<BF&&(r=r*i),r=Math.round(r),r<BF&&(r=BF);const d=1+(c?0:Kl.getZoomLevel()*.1);return i*=d,r*=d,o===Fd.TRANSLATE&&(t===\"normal\"||t===\"bold\"?o=Fd.OFF:(o=`'wght' ${parseInt(t,10)}`,t=\"normal\")),new zv({pixelRatio:l,fontFamily:e,fontWeight:t,fontSize:i,fontFeatureSettings:s,fontVariationSettings:o,lineHeight:r,letterSpacing:a})}constructor(e){this._bareFontInfoBrand=void 0,this.pixelRatio=e.pixelRatio,this.fontFamily=String(e.fontFamily),this.fontWeight=String(e.fontWeight),this.fontSize=e.fontSize,this.fontFeatureSettings=e.fontFeatureSettings,this.fontVariationSettings=e.fontVariationSettings,this.lineHeight=e.lineHeight|0,this.letterSpacing=e.letterSpacing}getId(){return`${this.pixelRatio}-${this.fontFamily}-${this.fontWeight}-${this.fontSize}-${this.fontFeatureSettings}-${this.fontVariationSettings}-${this.lineHeight}-${this.letterSpacing}`}getMassagedFontFamily(){const e=ra.fontFamily,t=zv._wrapInQuotes(this.fontFamily);return this.fontFamily!==e?`${t}, ${e}`:t}static _wrapInQuotes(e){return/[,\"']/.test(e)?e:/[+ ]/.test(e)?`\"${e}\"`:e}}const qMe=2;class aB extends zv{constructor(e,t){super(e),this._editorStylingBrand=void 0,this.version=qMe,this.isTrusted=t,this.isMonospace=e.isMonospace,this.typicalHalfwidthCharacterWidth=e.typicalHalfwidthCharacterWidth,this.typicalFullwidthCharacterWidth=e.typicalFullwidthCharacterWidth,this.canUseHalfwidthRightwardsArrow=e.canUseHalfwidthRightwardsArrow,this.spaceWidth=e.spaceWidth,this.middotWidth=e.middotWidth,this.wsmiddotWidth=e.wsmiddotWidth,this.maxDigitWidth=e.maxDigitWidth}equals(e){return this.fontFamily===e.fontFamily&&this.fontWeight===e.fontWeight&&this.fontSize===e.fontSize&&this.fontFeatureSettings===e.fontFeatureSettings&&this.fontVariationSettings===e.fontVariationSettings&&this.lineHeight===e.lineHeight&&this.letterSpacing===e.letterSpacing&&this.typicalHalfwidthCharacterWidth===e.typicalHalfwidthCharacterWidth&&this.typicalFullwidthCharacterWidth===e.typicalFullwidthCharacterWidth&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.spaceWidth===e.spaceWidth&&this.middotWidth===e.middotWidth&&this.wsmiddotWidth===e.wsmiddotWidth&&this.maxDigitWidth===e.maxDigitWidth}}class GMe extends ne{constructor(){super(...arguments),this._cache=new Map,this._evictUntrustedReadingsTimeout=-1,this._onDidChange=this._register(new X),this.onDidChange=this._onDidChange.event}dispose(){this._evictUntrustedReadingsTimeout!==-1&&(clearTimeout(this._evictUntrustedReadingsTimeout),this._evictUntrustedReadingsTimeout=-1),super.dispose()}clearAllFontInfos(){this._cache.clear(),this._onDidChange.fire()}_ensureCache(e){const t=F2(e);let i=this._cache.get(t);return i||(i=new ZMe,this._cache.set(t,i)),i}_writeToCache(e,t,i){this._ensureCache(e).put(t,i),!i.isTrusted&&this._evictUntrustedReadingsTimeout===-1&&(this._evictUntrustedReadingsTimeout=e.setTimeout(()=>{this._evictUntrustedReadingsTimeout=-1,this._evictUntrustedReadings(e)},5e3))}_evictUntrustedReadings(e){const t=this._ensureCache(e),i=t.getValues();let s=!1;for(const o of i)o.isTrusted||(s=!0,t.remove(o));s&&this._onDidChange.fire()}readFontInfo(e,t){const i=this._ensureCache(e);if(!i.has(t)){let s=this._actualReadFontInfo(e,t);(s.typicalHalfwidthCharacterWidth<=2||s.typicalFullwidthCharacterWidth<=2||s.spaceWidth<=2||s.maxDigitWidth<=2)&&(s=new aB({pixelRatio:fL.getInstance(e).value,fontFamily:s.fontFamily,fontWeight:s.fontWeight,fontSize:s.fontSize,fontFeatureSettings:s.fontFeatureSettings,fontVariationSettings:s.fontVariationSettings,lineHeight:s.lineHeight,letterSpacing:s.letterSpacing,isMonospace:s.isMonospace,typicalHalfwidthCharacterWidth:Math.max(s.typicalHalfwidthCharacterWidth,5),typicalFullwidthCharacterWidth:Math.max(s.typicalFullwidthCharacterWidth,5),canUseHalfwidthRightwardsArrow:s.canUseHalfwidthRightwardsArrow,spaceWidth:Math.max(s.spaceWidth,5),middotWidth:Math.max(s.middotWidth,5),wsmiddotWidth:Math.max(s.wsmiddotWidth,5),maxDigitWidth:Math.max(s.maxDigitWidth,5)},!1)),this._writeToCache(e,t,s)}return i.get(t)}_createRequest(e,t,i,s){const o=new UMe(e,t);return i.push(o),s==null||s.push(o),o}_actualReadFontInfo(e,t){const i=[],s=[],o=this._createRequest(\"n\",0,i,s),r=this._createRequest(\"ｍ\",0,i,null),a=this._createRequest(\" \",0,i,s),l=this._createRequest(\"0\",0,i,s),c=this._createRequest(\"1\",0,i,s),d=this._createRequest(\"2\",0,i,s),u=this._createRequest(\"3\",0,i,s),h=this._createRequest(\"4\",0,i,s),f=this._createRequest(\"5\",0,i,s),g=this._createRequest(\"6\",0,i,s),p=this._createRequest(\"7\",0,i,s),_=this._createRequest(\"8\",0,i,s),b=this._createRequest(\"9\",0,i,s),w=this._createRequest(\"→\",0,i,s),y=this._createRequest(\"￫\",0,i,null),S=this._createRequest(\"·\",0,i,s),x=this._createRequest(\"⸱\",0,i,null),k=\"|/-_ilm%\";for(let O=0,M=k.length;O<M;O++)this._createRequest(k.charAt(O),0,i,s),this._createRequest(k.charAt(O),1,i,s),this._createRequest(k.charAt(O),2,i,s);jMe(e,t,i);const D=Math.max(l.width,c.width,d.width,u.width,h.width,f.width,g.width,p.width,_.width,b.width);let I=t.fontFeatureSettings===cl.OFF;const N=s[0].width;for(let O=1,M=s.length;I&&O<M;O++){const z=N-s[O].width;if(z<-.001||z>.001){I=!1;break}}let P=!0;return I&&y.width!==N&&(P=!1),y.width>w.width&&(P=!1),new aB({pixelRatio:fL.getInstance(e).value,fontFamily:t.fontFamily,fontWeight:t.fontWeight,fontSize:t.fontSize,fontFeatureSettings:t.fontFeatureSettings,fontVariationSettings:t.fontVariationSettings,lineHeight:t.lineHeight,letterSpacing:t.letterSpacing,isMonospace:I,typicalHalfwidthCharacterWidth:o.width,typicalFullwidthCharacterWidth:r.width,canUseHalfwidthRightwardsArrow:P,spaceWidth:a.width,middotWidth:S.width,wsmiddotWidth:x.width,maxDigitWidth:D},!0)}}class ZMe{constructor(){this._keys=Object.create(null),this._values=Object.create(null)}has(e){const t=e.getId();return!!this._values[t]}get(e){const t=e.getId();return this._values[t]}put(e,t){const i=e.getId();this._keys[i]=e,this._values[i]=t}remove(e){const t=e.getId();delete this._keys[t],delete this._values[t]}getValues(){return Object.keys(this._keys).map(e=>this._values[e])}}const lB=new GMe;var Hd;(function(n){n.serviceIds=new Map,n.DI_TARGET=\"$di$target\",n.DI_DEPENDENCIES=\"$di$dependencies\";function e(t){return t[n.DI_DEPENDENCIES]||[]}n.getServiceDependencies=e})(Hd||(Hd={}));const ht=Jt(\"instantiationService\");function YMe(n,e,t){e[Hd.DI_TARGET]===e?e[Hd.DI_DEPENDENCIES].push({id:n,index:t}):(e[Hd.DI_DEPENDENCIES]=[{id:n,index:t}],e[Hd.DI_TARGET]=e)}function Jt(n){if(Hd.serviceIds.has(n))return Hd.serviceIds.get(n);const e=function(t,i,s){if(arguments.length!==3)throw new Error(\"@IServiceName-decorator can only be used to decorate a parameter\");YMe(e,t,s)};return e.toString=()=>n,Hd.serviceIds.set(n,e),e}const vi=Jt(\"codeEditorService\"),Pn=Jt(\"modelService\"),fa=Jt(\"textModelService\");class Ta extends ne{constructor(e,t=\"\",i=\"\",s=!0,o){super(),this._onDidChange=this._register(new X),this.onDidChange=this._onDidChange.event,this._enabled=!0,this._id=e,this._label=t,this._cssClass=i,this._enabled=s,this._actionCallback=o}get id(){return this._id}get label(){return this._label}set label(e){this._setLabel(e)}_setLabel(e){this._label!==e&&(this._label=e,this._onDidChange.fire({label:e}))}get tooltip(){return this._tooltip||\"\"}set tooltip(e){this._setTooltip(e)}_setTooltip(e){this._tooltip!==e&&(this._tooltip=e,this._onDidChange.fire({tooltip:e}))}get class(){return this._cssClass}set class(e){this._setClass(e)}_setClass(e){this._cssClass!==e&&(this._cssClass=e,this._onDidChange.fire({class:e}))}get enabled(){return this._enabled}set enabled(e){this._setEnabled(e)}_setEnabled(e){this._enabled!==e&&(this._enabled=e,this._onDidChange.fire({enabled:e}))}get checked(){return this._checked}set checked(e){this._setChecked(e)}_setChecked(e){this._checked!==e&&(this._checked=e,this._onDidChange.fire({checked:e}))}async run(e,t){this._actionCallback&&await this._actionCallback(e)}}class f0 extends ne{constructor(){super(...arguments),this._onWillRun=this._register(new X),this.onWillRun=this._onWillRun.event,this._onDidRun=this._register(new X),this.onDidRun=this._onDidRun.event}async run(e,t){if(!e.enabled)return;this._onWillRun.fire({action:e});let i;try{await this.runAction(e,t)}catch(s){i=s}this._onDidRun.fire({action:e,error:i})}async runAction(e,t){await e.run(t)}}class Ms{constructor(){this.id=Ms.ID,this.label=\"\",this.tooltip=\"\",this.class=\"separator\",this.enabled=!1,this.checked=!1}static join(...e){let t=[];for(const i of e)i.length&&(t.length?t=[...t,new Ms,...i]:t=i);return t}async run(){}}Ms.ID=\"vs.actions.separator\";class NC{get actions(){return this._actions}constructor(e,t,i,s){this.tooltip=\"\",this.enabled=!0,this.checked=void 0,this.id=e,this.label=t,this.class=s,this._actions=i}async run(){}}class fM extends Ta{constructor(){super(fM.ID,v(\"submenu.empty\",\"(empty)\"),void 0,!1)}}fM.ID=\"vs.actions.empty\";function $v(n){var e,t;return{id:n.id,label:n.label,tooltip:(e=n.tooltip)!==null&&e!==void 0?e:n.label,class:n.class,enabled:(t=n.enabled)!==null&&t!==void 0?t:!0,checked:n.checked,run:async(...i)=>n.run(...i)}}var cB;(function(n){function e(t){return t&&typeof t==\"object\"&&typeof t.id==\"string\"}n.isThemeColor=e})(cB||(cB={}));var _t;(function(n){n.iconNameSegment=\"[A-Za-z0-9]+\",n.iconNameExpression=\"[A-Za-z0-9-]+\",n.iconModifierExpression=\"~[A-Za-z]+\",n.iconNameCharacter=\"[A-Za-z0-9~-]\";const e=new RegExp(`^(${n.iconNameExpression})(${n.iconModifierExpression})?$`);function t(h){const f=e.exec(h.id);if(!f)return t(Te.error);const[,g,p]=f,_=[\"codicon\",\"codicon-\"+g];return p&&_.push(\"codicon-modifier-\"+p.substring(1)),_}n.asClassNameArray=t;function i(h){return t(h).join(\" \")}n.asClassName=i;function s(h){return\".\"+t(h).join(\".\")}n.asCSSSelector=s;function o(h){return h&&typeof h==\"object\"&&typeof h.id==\"string\"&&(typeof h.color>\"u\"||cB.isThemeColor(h.color))}n.isThemeIcon=o;const r=new RegExp(`^\\\\$\\\\((${n.iconNameExpression}(?:${n.iconModifierExpression})?)\\\\)$`);function a(h){const f=r.exec(h);if(!f)return;const[,g]=f;return{id:g}}n.fromString=a;function l(h){return{id:h}}n.fromId=l;function c(h,f){let g=h.id;const p=g.lastIndexOf(\"~\");return p!==-1&&(g=g.substring(0,p)),f&&(g=`${g}~${f}`),{id:g}}n.modify=c;function d(h){const f=h.id.lastIndexOf(\"~\");if(f!==-1)return h.id.substring(f+1)}n.getModifier=d;function u(h,f){var g,p;return h.id===f.id&&((g=h.color)===null||g===void 0?void 0:g.id)===((p=f.color)===null||p===void 0?void 0:p.id)}n.isEqual=u})(_t||(_t={}));const Sn=Jt(\"commandService\"),ri=new class{constructor(){this._commands=new Map,this._onDidRegisterCommand=new X,this.onDidRegisterCommand=this._onDidRegisterCommand.event}registerCommand(n,e){if(!n)throw new Error(\"invalid command\");if(typeof n==\"string\"){if(!e)throw new Error(\"invalid command\");return this.registerCommand({id:n,handler:e})}if(n.metadata&&Array.isArray(n.metadata.args)){const r=[];for(const l of n.metadata.args)r.push(l.constraint);const a=n.handler;n.handler=function(l,...c){return d2e(c,r),a(l,...c)}}const{id:t}=n;let i=this._commands.get(t);i||(i=new Tr,this._commands.set(t,i));const s=i.unshift(n),o=dt(()=>{s();const r=this._commands.get(t);r!=null&&r.isEmpty()&&this._commands.delete(t)});return this._onDidRegisterCommand.fire(t),o}registerCommandAlias(n,e){return ri.registerCommand(n,(t,...i)=>t.get(Sn).executeCommand(e,...i))}getCommand(n){const e=this._commands.get(n);if(!(!e||e.isEmpty()))return oi.first(e)}getCommands(){const n=new Map;for(const e of this._commands.keys()){const t=this.getCommand(e);t&&n.set(e,t)}return n}};ri.registerCommand(\"noop\",()=>{});function WF(...n){switch(n.length){case 1:return v(\"contextkey.scanner.hint.didYouMean1\",\"Did you mean {0}?\",n[0]);case 2:return v(\"contextkey.scanner.hint.didYouMean2\",\"Did you mean {0} or {1}?\",n[0],n[1]);case 3:return v(\"contextkey.scanner.hint.didYouMean3\",\"Did you mean {0}, {1} or {2}?\",n[0],n[1],n[2]);default:return}}const XMe=v(\"contextkey.scanner.hint.didYouForgetToOpenOrCloseQuote\",\"Did you forget to open or close the quote?\"),QMe=v(\"contextkey.scanner.hint.didYouForgetToEscapeSlash\",\"Did you forget to escape the '/' (slash) character? Put two backslashes before it to escape, e.g., '\\\\\\\\/'.\");let dv=class dB{constructor(){this._input=\"\",this._start=0,this._current=0,this._tokens=[],this._errors=[],this.stringRe=/[a-zA-Z0-9_<>\\-\\./\\\\:\\*\\?\\+\\[\\]\\^,#@;\"%\\$\\p{L}-]+/uy}static getLexeme(e){switch(e.type){case 0:return\"(\";case 1:return\")\";case 2:return\"!\";case 3:return e.isTripleEq?\"===\":\"==\";case 4:return e.isTripleEq?\"!==\":\"!=\";case 5:return\"<\";case 6:return\"<=\";case 7:return\">=\";case 8:return\">=\";case 9:return\"=~\";case 10:return e.lexeme;case 11:return\"true\";case 12:return\"false\";case 13:return\"in\";case 14:return\"not\";case 15:return\"&&\";case 16:return\"||\";case 17:return e.lexeme;case 18:return e.lexeme;case 19:return e.lexeme;case 20:return\"EOF\";default:throw BV(`unhandled token type: ${JSON.stringify(e)}; have you forgotten to add a case?`)}}reset(e){return this._input=e,this._start=0,this._current=0,this._tokens=[],this._errors=[],this}scan(){for(;!this._isAtEnd();)switch(this._start=this._current,this._advance()){case 40:this._addToken(0);break;case 41:this._addToken(1);break;case 33:if(this._match(61)){const t=this._match(61);this._tokens.push({type:4,offset:this._start,isTripleEq:t})}else this._addToken(2);break;case 39:this._quotedString();break;case 47:this._regex();break;case 61:if(this._match(61)){const t=this._match(61);this._tokens.push({type:3,offset:this._start,isTripleEq:t})}else this._match(126)?this._addToken(9):this._error(WF(\"==\",\"=~\"));break;case 60:this._addToken(this._match(61)?6:5);break;case 62:this._addToken(this._match(61)?8:7);break;case 38:this._match(38)?this._addToken(15):this._error(WF(\"&&\"));break;case 124:this._match(124)?this._addToken(16):this._error(WF(\"||\"));break;case 32:case 13:case 9:case 10:case 160:break;default:this._string()}return this._start=this._current,this._addToken(20),Array.from(this._tokens)}_match(e){return this._isAtEnd()||this._input.charCodeAt(this._current)!==e?!1:(this._current++,!0)}_advance(){return this._input.charCodeAt(this._current++)}_peek(){return this._isAtEnd()?0:this._input.charCodeAt(this._current)}_addToken(e){this._tokens.push({type:e,offset:this._start})}_error(e){const t=this._start,i=this._input.substring(this._start,this._current),s={type:19,offset:this._start,lexeme:i};this._errors.push({offset:t,lexeme:i,additionalInfo:e}),this._tokens.push(s)}_string(){this.stringRe.lastIndex=this._start;const e=this.stringRe.exec(this._input);if(e){this._current=this._start+e[0].length;const t=this._input.substring(this._start,this._current),i=dB._keywords.get(t);i?this._addToken(i):this._tokens.push({type:17,lexeme:t,offset:this._start})}}_quotedString(){for(;this._peek()!==39&&!this._isAtEnd();)this._advance();if(this._isAtEnd()){this._error(XMe);return}this._advance(),this._tokens.push({type:18,lexeme:this._input.substring(this._start+1,this._current-1),offset:this._start+1})}_regex(){let e=this._current,t=!1,i=!1;for(;;){if(e>=this._input.length){this._current=e,this._error(QMe);return}const o=this._input.charCodeAt(e);if(t)t=!1;else if(o===47&&!i){e++;break}else o===91?i=!0:o===92?t=!0:o===93&&(i=!1);e++}for(;e<this._input.length&&dB._regexFlags.has(this._input.charCodeAt(e));)e++;this._current=e;const s=this._input.substring(this._start,this._current);this._tokens.push({type:10,lexeme:s,offset:this._start})}_isAtEnd(){return this._current>=this._input.length}};dv._regexFlags=new Set([\"i\",\"g\",\"s\",\"m\",\"y\",\"u\"].map(n=>n.charCodeAt(0)));dv._keywords=new Map([[\"not\",14],[\"in\",13],[\"false\",12],[\"true\",11]]);const Jo=new Map;Jo.set(\"false\",!1);Jo.set(\"true\",!0);Jo.set(\"isMac\",Xt);Jo.set(\"isLinux\",Br);Jo.set(\"isWindows\",Mo);Jo.set(\"isWeb\",u_);Jo.set(\"isMacNative\",Xt&&!u_);Jo.set(\"isEdge\",L2e);Jo.set(\"isFirefox\",S2e);Jo.set(\"isChrome\",Yre);Jo.set(\"isSafari\",x2e);const JMe=Object.prototype.hasOwnProperty,ePe={regexParsingWithErrorRecovery:!0},tPe=v(\"contextkey.parser.error.emptyString\",\"Empty context key expression\"),iPe=v(\"contextkey.parser.error.emptyString.hint\",\"Did you forget to write an expression? You can also put 'false' or 'true' to always evaluate to false or true, respectively.\"),nPe=v(\"contextkey.parser.error.noInAfterNot\",\"'in' after 'not'.\"),LY=v(\"contextkey.parser.error.closingParenthesis\",\"closing parenthesis ')'\"),sPe=v(\"contextkey.parser.error.unexpectedToken\",\"Unexpected token\"),oPe=v(\"contextkey.parser.error.unexpectedToken.hint\",\"Did you forget to put && or || before the token?\"),rPe=v(\"contextkey.parser.error.unexpectedEOF\",\"Unexpected end of expression\"),aPe=v(\"contextkey.parser.error.unexpectedEOF.hint\",\"Did you forget to put a context key?\");let Qae=class vS{constructor(e=ePe){this._config=e,this._scanner=new dv,this._tokens=[],this._current=0,this._parsingErrors=[],this._flagsGYRe=/g|y/g}parse(e){if(e===\"\"){this._parsingErrors.push({message:tPe,offset:0,lexeme:\"\",additionalInfo:iPe});return}this._tokens=this._scanner.reset(e).scan(),this._current=0,this._parsingErrors=[];try{const t=this._expr();if(!this._isAtEnd()){const i=this._peek(),s=i.type===17?oPe:void 0;throw this._parsingErrors.push({message:sPe,offset:i.offset,lexeme:dv.getLexeme(i),additionalInfo:s}),vS._parseError}return t}catch(t){if(t!==vS._parseError)throw t;return}}_expr(){return this._or()}_or(){const e=[this._and()];for(;this._matchOne(16);){const t=this._and();e.push(t)}return e.length===1?e[0]:pe.or(...e)}_and(){const e=[this._term()];for(;this._matchOne(15);){const t=this._term();e.push(t)}return e.length===1?e[0]:pe.and(...e)}_term(){if(this._matchOne(2)){const e=this._peek();switch(e.type){case 11:return this._advance(),Wr.INSTANCE;case 12:return this._advance(),aa.INSTANCE;case 0:{this._advance();const t=this._expr();return this._consume(1,LY),t==null?void 0:t.negate()}case 17:return this._advance(),G0.create(e.lexeme);default:throw this._errExpectedButGot(\"KEY | true | false | '(' expression ')'\",e)}}return this._primary()}_primary(){const e=this._peek();switch(e.type){case 11:return this._advance(),pe.true();case 12:return this._advance(),pe.false();case 0:{this._advance();const t=this._expr();return this._consume(1,LY),t}case 17:{const t=e.lexeme;if(this._advance(),this._matchOne(9)){const s=this._peek();if(!this._config.regexParsingWithErrorRecovery){if(this._advance(),s.type!==10)throw this._errExpectedButGot(\"REGEX\",s);const o=s.lexeme,r=o.lastIndexOf(\"/\"),a=r===o.length-1?void 0:this._removeFlagsGY(o.substring(r+1));let l;try{l=new RegExp(o.substring(1,r),a)}catch{throw this._errExpectedButGot(\"REGEX\",s)}return gL.create(t,l)}switch(s.type){case 10:case 19:{const o=[s.lexeme];this._advance();let r=this._peek(),a=0;for(let h=0;h<s.lexeme.length;h++)s.lexeme.charCodeAt(h)===40?a++:s.lexeme.charCodeAt(h)===41&&a--;for(;!this._isAtEnd()&&r.type!==15&&r.type!==16;){switch(r.type){case 0:a++;break;case 1:a--;break;case 10:case 18:for(let h=0;h<r.lexeme.length;h++)r.lexeme.charCodeAt(h)===40?a++:s.lexeme.charCodeAt(h)===41&&a--}if(a<0)break;o.push(dv.getLexeme(r)),this._advance(),r=this._peek()}const l=o.join(\"\"),c=l.lastIndexOf(\"/\"),d=c===l.length-1?void 0:this._removeFlagsGY(l.substring(c+1));let u;try{u=new RegExp(l.substring(1,c),d)}catch{throw this._errExpectedButGot(\"REGEX\",s)}return pe.regex(t,u)}case 18:{const o=s.lexeme;this._advance();let r=null;if(!_ae(o)){const a=o.indexOf(\"/\"),l=o.lastIndexOf(\"/\");if(a!==l&&a>=0){const c=o.slice(a+1,l),d=o[l+1]===\"i\"?\"i\":\"\";try{r=new RegExp(c,d)}catch{throw this._errExpectedButGot(\"REGEX\",s)}}}if(r===null)throw this._errExpectedButGot(\"REGEX\",s);return gL.create(t,r)}default:throw this._errExpectedButGot(\"REGEX\",this._peek())}}if(this._matchOne(14)){this._consume(13,nPe);const s=this._value();return pe.notIn(t,s)}switch(this._peek().type){case 3:{this._advance();const s=this._value();if(this._previous().type===18)return pe.equals(t,s);switch(s){case\"true\":return pe.has(t);case\"false\":return pe.not(t);default:return pe.equals(t,s)}}case 4:{this._advance();const s=this._value();if(this._previous().type===18)return pe.notEquals(t,s);switch(s){case\"true\":return pe.not(t);case\"false\":return pe.has(t);default:return pe.notEquals(t,s)}}case 5:return this._advance(),CM.create(t,this._value());case 6:return this._advance(),wM.create(t,this._value());case 7:return this._advance(),vM.create(t,this._value());case 8:return this._advance(),bM.create(t,this._value());case 13:return this._advance(),pe.in(t,this._value());default:return pe.has(t)}}case 20:throw this._parsingErrors.push({message:rPe,offset:e.offset,lexeme:\"\",additionalInfo:aPe}),vS._parseError;default:throw this._errExpectedButGot(`true | false | KEY \n\t| KEY '=~' REGEX \n\t| KEY ('==' | '!=' | '<' | '<=' | '>' | '>=' | 'in' | 'not' 'in') value`,this._peek())}}_value(){const e=this._peek();switch(e.type){case 17:case 18:return this._advance(),e.lexeme;case 11:return this._advance(),\"true\";case 12:return this._advance(),\"false\";case 13:return this._advance(),\"in\";default:return\"\"}}_removeFlagsGY(e){return e.replaceAll(this._flagsGYRe,\"\")}_previous(){return this._tokens[this._current-1]}_matchOne(e){return this._check(e)?(this._advance(),!0):!1}_advance(){return this._isAtEnd()||this._current++,this._previous()}_consume(e,t){if(this._check(e))return this._advance();throw this._errExpectedButGot(t,this._peek())}_errExpectedButGot(e,t,i){const s=v(\"contextkey.parser.error.expectedButGot\",`Expected: {0}\nReceived: '{1}'.`,e,dv.getLexeme(t)),o=t.offset,r=dv.getLexeme(t);return this._parsingErrors.push({message:s,offset:o,lexeme:r,additionalInfo:i}),vS._parseError}_check(e){return this._peek().type===e}_peek(){return this._tokens[this._current]}_isAtEnd(){return this._peek().type===20}};Qae._parseError=new Error;class pe{static false(){return Wr.INSTANCE}static true(){return aa.INSTANCE}static has(e){return q0.create(e)}static equals(e,t){return Mw.create(e,t)}static notEquals(e,t){return mM.create(e,t)}static regex(e,t){return gL.create(e,t)}static in(e,t){return gM.create(e,t)}static notIn(e,t){return pM.create(e,t)}static not(e){return G0.create(e)}static and(...e){return Sv.create(e,null,!0)}static or(...e){return Hf.create(e,null,!0)}static deserialize(e){return e==null?void 0:this._parser.parse(e)}}pe._parser=new Qae({regexParsingWithErrorRecovery:!1});function lPe(n,e){const t=n?n.substituteConstants():void 0,i=e?e.substituteConstants():void 0;return!t&&!i?!0:!t||!i?!1:t.equals(i)}function ax(n,e){return n.cmp(e)}class Wr{constructor(){this.type=0}cmp(e){return this.type-e.type}equals(e){return e.type===this.type}substituteConstants(){return this}evaluate(e){return!1}serialize(){return\"false\"}keys(){return[]}negate(){return aa.INSTANCE}}Wr.INSTANCE=new Wr;class aa{constructor(){this.type=1}cmp(e){return this.type-e.type}equals(e){return e.type===this.type}substituteConstants(){return this}evaluate(e){return!0}serialize(){return\"true\"}keys(){return[]}negate(){return Wr.INSTANCE}}aa.INSTANCE=new aa;class q0{static create(e,t=null){const i=Jo.get(e);return typeof i==\"boolean\"?i?aa.INSTANCE:Wr.INSTANCE:new q0(e,t)}constructor(e,t){this.key=e,this.negated=t,this.type=2}cmp(e){return e.type!==this.type?this.type-e.type:ele(this.key,e.key)}equals(e){return e.type===this.type?this.key===e.key:!1}substituteConstants(){const e=Jo.get(this.key);return typeof e==\"boolean\"?e?aa.INSTANCE:Wr.INSTANCE:this}evaluate(e){return!!e.getValue(this.key)}serialize(){return this.key}keys(){return[this.key]}negate(){return this.negated||(this.negated=G0.create(this.key,this)),this.negated}}class Mw{static create(e,t,i=null){if(typeof t==\"boolean\")return t?q0.create(e,i):G0.create(e,i);const s=Jo.get(e);return typeof s==\"boolean\"?t===(s?\"true\":\"false\")?aa.INSTANCE:Wr.INSTANCE:new Mw(e,t,i)}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=4}cmp(e){return e.type!==this.type?this.type-e.type:Z0(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){const e=Jo.get(this.key);if(typeof e==\"boolean\"){const t=e?\"true\":\"false\";return this.value===t?aa.INSTANCE:Wr.INSTANCE}return this}evaluate(e){return e.getValue(this.key)==this.value}serialize(){return`${this.key} == '${this.value}'`}keys(){return[this.key]}negate(){return this.negated||(this.negated=mM.create(this.key,this.value,this)),this.negated}}class gM{static create(e,t){return new gM(e,t)}constructor(e,t){this.key=e,this.valueKey=t,this.type=10,this.negated=null}cmp(e){return e.type!==this.type?this.type-e.type:Z0(this.key,this.valueKey,e.key,e.valueKey)}equals(e){return e.type===this.type?this.key===e.key&&this.valueKey===e.valueKey:!1}substituteConstants(){return this}evaluate(e){const t=e.getValue(this.valueKey),i=e.getValue(this.key);return Array.isArray(t)?t.includes(i):typeof i==\"string\"&&typeof t==\"object\"&&t!==null?JMe.call(t,i):!1}serialize(){return`${this.key} in '${this.valueKey}'`}keys(){return[this.key,this.valueKey]}negate(){return this.negated||(this.negated=pM.create(this.key,this.valueKey)),this.negated}}class pM{static create(e,t){return new pM(e,t)}constructor(e,t){this.key=e,this.valueKey=t,this.type=11,this._negated=gM.create(e,t)}cmp(e){return e.type!==this.type?this.type-e.type:this._negated.cmp(e._negated)}equals(e){return e.type===this.type?this._negated.equals(e._negated):!1}substituteConstants(){return this}evaluate(e){return!this._negated.evaluate(e)}serialize(){return`${this.key} not in '${this.valueKey}'`}keys(){return this._negated.keys()}negate(){return this._negated}}class mM{static create(e,t,i=null){if(typeof t==\"boolean\")return t?G0.create(e,i):q0.create(e,i);const s=Jo.get(e);return typeof s==\"boolean\"?t===(s?\"true\":\"false\")?Wr.INSTANCE:aa.INSTANCE:new mM(e,t,i)}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=5}cmp(e){return e.type!==this.type?this.type-e.type:Z0(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){const e=Jo.get(this.key);if(typeof e==\"boolean\"){const t=e?\"true\":\"false\";return this.value===t?Wr.INSTANCE:aa.INSTANCE}return this}evaluate(e){return e.getValue(this.key)!=this.value}serialize(){return`${this.key} != '${this.value}'`}keys(){return[this.key]}negate(){return this.negated||(this.negated=Mw.create(this.key,this.value,this)),this.negated}}class G0{static create(e,t=null){const i=Jo.get(e);return typeof i==\"boolean\"?i?Wr.INSTANCE:aa.INSTANCE:new G0(e,t)}constructor(e,t){this.key=e,this.negated=t,this.type=3}cmp(e){return e.type!==this.type?this.type-e.type:ele(this.key,e.key)}equals(e){return e.type===this.type?this.key===e.key:!1}substituteConstants(){const e=Jo.get(this.key);return typeof e==\"boolean\"?e?Wr.INSTANCE:aa.INSTANCE:this}evaluate(e){return!e.getValue(this.key)}serialize(){return`!${this.key}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=q0.create(this.key,this)),this.negated}}function _M(n,e){if(typeof n==\"string\"){const t=parseFloat(n);isNaN(t)||(n=t)}return typeof n==\"string\"||typeof n==\"number\"?e(n):Wr.INSTANCE}class vM{static create(e,t,i=null){return _M(t,s=>new vM(e,s,i))}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=12}cmp(e){return e.type!==this.type?this.type-e.type:Z0(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){return this}evaluate(e){return typeof this.value==\"string\"?!1:parseFloat(e.getValue(this.key))>this.value}serialize(){return`${this.key} > ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=wM.create(this.key,this.value,this)),this.negated}}class bM{static create(e,t,i=null){return _M(t,s=>new bM(e,s,i))}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=13}cmp(e){return e.type!==this.type?this.type-e.type:Z0(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){return this}evaluate(e){return typeof this.value==\"string\"?!1:parseFloat(e.getValue(this.key))>=this.value}serialize(){return`${this.key} >= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=CM.create(this.key,this.value,this)),this.negated}}class CM{static create(e,t,i=null){return _M(t,s=>new CM(e,s,i))}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=14}cmp(e){return e.type!==this.type?this.type-e.type:Z0(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){return this}evaluate(e){return typeof this.value==\"string\"?!1:parseFloat(e.getValue(this.key))<this.value}serialize(){return`${this.key} < ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=bM.create(this.key,this.value,this)),this.negated}}class wM{static create(e,t,i=null){return _M(t,s=>new wM(e,s,i))}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=15}cmp(e){return e.type!==this.type?this.type-e.type:Z0(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){return this}evaluate(e){return typeof this.value==\"string\"?!1:parseFloat(e.getValue(this.key))<=this.value}serialize(){return`${this.key} <= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=vM.create(this.key,this.value,this)),this.negated}}class gL{static create(e,t){return new gL(e,t)}constructor(e,t){this.key=e,this.regexp=t,this.type=7,this.negated=null}cmp(e){if(e.type!==this.type)return this.type-e.type;if(this.key<e.key)return-1;if(this.key>e.key)return 1;const t=this.regexp?this.regexp.source:\"\",i=e.regexp?e.regexp.source:\"\";return t<i?-1:t>i?1:0}equals(e){if(e.type===this.type){const t=this.regexp?this.regexp.source:\"\",i=e.regexp?e.regexp.source:\"\";return this.key===e.key&&t===i}return!1}substituteConstants(){return this}evaluate(e){const t=e.getValue(this.key);return this.regexp?this.regexp.test(t):!1}serialize(){const e=this.regexp?`/${this.regexp.source}/${this.regexp.flags}`:\"/invalid/\";return`${this.key} =~ ${e}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=az.create(this)),this.negated}}class az{static create(e){return new az(e)}constructor(e){this._actual=e,this.type=8}cmp(e){return e.type!==this.type?this.type-e.type:this._actual.cmp(e._actual)}equals(e){return e.type===this.type?this._actual.equals(e._actual):!1}substituteConstants(){return this}evaluate(e){return!this._actual.evaluate(e)}serialize(){return`!(${this._actual.serialize()})`}keys(){return this._actual.keys()}negate(){return this._actual}}function Jae(n){let e=null;for(let t=0,i=n.length;t<i;t++){const s=n[t].substituteConstants();if(n[t]!==s&&e===null){e=[];for(let o=0;o<t;o++)e[o]=n[o]}e!==null&&(e[t]=s)}return e===null?n:e}class Sv{static create(e,t,i){return Sv._normalizeArr(e,t,i)}constructor(e,t){this.expr=e,this.negated=t,this.type=6}cmp(e){if(e.type!==this.type)return this.type-e.type;if(this.expr.length<e.expr.length)return-1;if(this.expr.length>e.expr.length)return 1;for(let t=0,i=this.expr.length;t<i;t++){const s=ax(this.expr[t],e.expr[t]);if(s!==0)return s}return 0}equals(e){if(e.type===this.type){if(this.expr.length!==e.expr.length)return!1;for(let t=0,i=this.expr.length;t<i;t++)if(!this.expr[t].equals(e.expr[t]))return!1;return!0}return!1}substituteConstants(){const e=Jae(this.expr);return e===this.expr?this:Sv.create(e,this.negated,!1)}evaluate(e){for(let t=0,i=this.expr.length;t<i;t++)if(!this.expr[t].evaluate(e))return!1;return!0}static _normalizeArr(e,t,i){const s=[];let o=!1;for(const r of e)if(r){if(r.type===1){o=!0;continue}if(r.type===0)return Wr.INSTANCE;if(r.type===6){s.push(...r.expr);continue}s.push(r)}if(s.length===0&&o)return aa.INSTANCE;if(s.length!==0){if(s.length===1)return s[0];s.sort(ax);for(let r=1;r<s.length;r++)s[r-1].equals(s[r])&&(s.splice(r,1),r--);if(s.length===1)return s[0];for(;s.length>1;){const r=s[s.length-1];if(r.type!==9)break;s.pop();const a=s.pop(),l=s.length===0,c=Hf.create(r.expr.map(d=>Sv.create([d,a],null,i)),null,l);c&&(s.push(c),s.sort(ax))}if(s.length===1)return s[0];if(i){for(let r=0;r<s.length;r++)for(let a=r+1;a<s.length;a++)if(s[r].negate().equals(s[a]))return Wr.INSTANCE;if(s.length===1)return s[0]}return new Sv(s,t)}}serialize(){return this.expr.map(e=>e.serialize()).join(\" && \")}keys(){const e=[];for(const t of this.expr)e.push(...t.keys());return e}negate(){if(!this.negated){const e=[];for(const t of this.expr)e.push(t.negate());this.negated=Hf.create(e,this,!0)}return this.negated}}class Hf{static create(e,t,i){return Hf._normalizeArr(e,t,i)}constructor(e,t){this.expr=e,this.negated=t,this.type=9}cmp(e){if(e.type!==this.type)return this.type-e.type;if(this.expr.length<e.expr.length)return-1;if(this.expr.length>e.expr.length)return 1;for(let t=0,i=this.expr.length;t<i;t++){const s=ax(this.expr[t],e.expr[t]);if(s!==0)return s}return 0}equals(e){if(e.type===this.type){if(this.expr.length!==e.expr.length)return!1;for(let t=0,i=this.expr.length;t<i;t++)if(!this.expr[t].equals(e.expr[t]))return!1;return!0}return!1}substituteConstants(){const e=Jae(this.expr);return e===this.expr?this:Hf.create(e,this.negated,!1)}evaluate(e){for(let t=0,i=this.expr.length;t<i;t++)if(this.expr[t].evaluate(e))return!0;return!1}static _normalizeArr(e,t,i){let s=[],o=!1;if(e){for(let r=0,a=e.length;r<a;r++){const l=e[r];if(l){if(l.type===0){o=!0;continue}if(l.type===1)return aa.INSTANCE;if(l.type===9){s=s.concat(l.expr);continue}s.push(l)}}if(s.length===0&&o)return Wr.INSTANCE;s.sort(ax)}if(s.length!==0){if(s.length===1)return s[0];for(let r=1;r<s.length;r++)s[r-1].equals(s[r])&&(s.splice(r,1),r--);if(s.length===1)return s[0];if(i){for(let r=0;r<s.length;r++)for(let a=r+1;a<s.length;a++)if(s[r].negate().equals(s[a]))return aa.INSTANCE;if(s.length===1)return s[0]}return new Hf(s,t)}}serialize(){return this.expr.map(e=>e.serialize()).join(\" || \")}keys(){const e=[];for(const t of this.expr)e.push(...t.keys());return e}negate(){if(!this.negated){const e=[];for(const t of this.expr)e.push(t.negate());for(;e.length>1;){const t=e.shift(),i=e.shift(),s=[];for(const o of DY(t))for(const r of DY(i))s.push(Sv.create([o,r],null,!1));e.unshift(Hf.create(s,null,!1))}this.negated=Hf.create(e,this,!0)}return this.negated}}class He extends q0{static all(){return He._info.values()}constructor(e,t,i){super(e,null),this._defaultValue=t,typeof i==\"object\"?He._info.push({...i,key:e}):i!==!0&&He._info.push({key:e,description:i,type:t!=null?typeof t:void 0})}bindTo(e){return e.createKey(this.key,this._defaultValue)}getValue(e){return e.getContextKeyValue(this.key)}toNegated(){return this.negate()}isEqualTo(e){return Mw.create(this.key,e)}}He._info=[];const Ct=Jt(\"contextKeyService\");function ele(n,e){return n<e?-1:n>e?1:0}function Z0(n,e,t,i){return n<t?-1:n>t?1:e<i?-1:e>i?1:0}function uB(n,e){if(n.type===0||e.type===1)return!0;if(n.type===9)return e.type===9?kY(n.expr,e.expr):!1;if(e.type===9){for(const t of e.expr)if(uB(n,t))return!0;return!1}if(n.type===6){if(e.type===6)return kY(e.expr,n.expr);for(const t of n.expr)if(uB(t,e))return!0;return!1}return n.equals(e)}function kY(n,e){let t=0,i=0;for(;t<n.length&&i<e.length;){const s=n[t].cmp(e[i]);if(s<0)return!1;s===0&&t++,i++}return t===n.length}function DY(n){return n.type===9?n.expr:[n]}function HF(n,e){if(!n)throw new Error(e?`Assertion failed (${e})`:\"Assertion Failed\")}function yM(n,e=\"Unreachable\"){throw new Error(e)}function IY(n){n||Mt(new Gi(\"Soft Assertion Failed\"))}function g0(n){if(!n()){debugger;n(),Mt(new Gi(\"Assertion Failed\"))}}function lz(n,e){let t=0;for(;t<n.length-1;){const i=n[t],s=n[t+1];if(!e(i,s))return!1;t++}return!0}class cPe{constructor(){this.data=new Map}add(e,t){HF(Pr(e)),HF(Er(t)),HF(!this.data.has(e),\"There is already an extension with this id\"),this.data.set(e,t)}as(e){return this.data.get(e)||null}}const Un=new cPe;class cz{constructor(){this._coreKeybindings=new Tr,this._extensionKeybindings=[],this._cachedMergedKeybindings=null}static bindToCurrentPlatform(e){if(Da===1){if(e&&e.win)return e.win}else if(Da===2){if(e&&e.mac)return e.mac}else if(e&&e.linux)return e.linux;return e}registerKeybindingRule(e){const t=cz.bindToCurrentPlatform(e),i=new be;if(t&&t.primary){const s=eB(t.primary,Da);s&&i.add(this._registerDefaultKeybinding(s,e.id,e.args,e.weight,0,e.when))}if(t&&Array.isArray(t.secondary))for(let s=0,o=t.secondary.length;s<o;s++){const r=t.secondary[s],a=eB(r,Da);a&&i.add(this._registerDefaultKeybinding(a,e.id,e.args,e.weight,-s-1,e.when))}return i}registerCommandAndKeybindingRule(e){return Jc(this.registerKeybindingRule(e),ri.registerCommand(e))}_registerDefaultKeybinding(e,t,i,s,o,r){const a=this._coreKeybindings.push({keybinding:e,command:t,commandArgs:i,when:r,weight1:s,weight2:o,extensionId:null,isBuiltinExtension:!1});return this._cachedMergedKeybindings=null,dt(()=>{a(),this._cachedMergedKeybindings=null})}getDefaultKeybindings(){return this._cachedMergedKeybindings||(this._cachedMergedKeybindings=Array.from(this._coreKeybindings).concat(this._extensionKeybindings),this._cachedMergedKeybindings.sort(uPe)),this._cachedMergedKeybindings.slice(0)}}const Hr=new cz,dPe={EditorModes:\"platform.keybindingsRegistry\"};Un.add(dPe.EditorModes,Hr);function uPe(n,e){if(n.weight1!==e.weight1)return n.weight1-e.weight1;if(n.command&&e.command){if(n.command<e.command)return-1;if(n.command>e.command)return 1}return n.weight2-e.weight2}var hPe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},EY=function(n,e){return function(t,i){e(t,i,n)}},hN;function g1(n){return n.command!==void 0}function fPe(n){return n.submenu!==void 0}class R{constructor(e){if(R._instances.has(e))throw new TypeError(`MenuId with identifier '${e}' already exists. Use MenuId.for(ident) or a unique identifier`);R._instances.set(e,this),this.id=e}}R._instances=new Map;R.CommandPalette=new R(\"CommandPalette\");R.DebugBreakpointsContext=new R(\"DebugBreakpointsContext\");R.DebugCallStackContext=new R(\"DebugCallStackContext\");R.DebugConsoleContext=new R(\"DebugConsoleContext\");R.DebugVariablesContext=new R(\"DebugVariablesContext\");R.NotebookVariablesContext=new R(\"NotebookVariablesContext\");R.DebugHoverContext=new R(\"DebugHoverContext\");R.DebugWatchContext=new R(\"DebugWatchContext\");R.DebugToolBar=new R(\"DebugToolBar\");R.DebugToolBarStop=new R(\"DebugToolBarStop\");R.EditorContext=new R(\"EditorContext\");R.SimpleEditorContext=new R(\"SimpleEditorContext\");R.EditorContent=new R(\"EditorContent\");R.EditorLineNumberContext=new R(\"EditorLineNumberContext\");R.EditorContextCopy=new R(\"EditorContextCopy\");R.EditorContextPeek=new R(\"EditorContextPeek\");R.EditorContextShare=new R(\"EditorContextShare\");R.EditorTitle=new R(\"EditorTitle\");R.EditorTitleRun=new R(\"EditorTitleRun\");R.EditorTitleContext=new R(\"EditorTitleContext\");R.EditorTitleContextShare=new R(\"EditorTitleContextShare\");R.EmptyEditorGroup=new R(\"EmptyEditorGroup\");R.EmptyEditorGroupContext=new R(\"EmptyEditorGroupContext\");R.EditorTabsBarContext=new R(\"EditorTabsBarContext\");R.EditorTabsBarShowTabsSubmenu=new R(\"EditorTabsBarShowTabsSubmenu\");R.EditorTabsBarShowTabsZenModeSubmenu=new R(\"EditorTabsBarShowTabsZenModeSubmenu\");R.EditorActionsPositionSubmenu=new R(\"EditorActionsPositionSubmenu\");R.ExplorerContext=new R(\"ExplorerContext\");R.ExplorerContextShare=new R(\"ExplorerContextShare\");R.ExtensionContext=new R(\"ExtensionContext\");R.GlobalActivity=new R(\"GlobalActivity\");R.CommandCenter=new R(\"CommandCenter\");R.CommandCenterCenter=new R(\"CommandCenterCenter\");R.LayoutControlMenuSubmenu=new R(\"LayoutControlMenuSubmenu\");R.LayoutControlMenu=new R(\"LayoutControlMenu\");R.MenubarMainMenu=new R(\"MenubarMainMenu\");R.MenubarAppearanceMenu=new R(\"MenubarAppearanceMenu\");R.MenubarDebugMenu=new R(\"MenubarDebugMenu\");R.MenubarEditMenu=new R(\"MenubarEditMenu\");R.MenubarCopy=new R(\"MenubarCopy\");R.MenubarFileMenu=new R(\"MenubarFileMenu\");R.MenubarGoMenu=new R(\"MenubarGoMenu\");R.MenubarHelpMenu=new R(\"MenubarHelpMenu\");R.MenubarLayoutMenu=new R(\"MenubarLayoutMenu\");R.MenubarNewBreakpointMenu=new R(\"MenubarNewBreakpointMenu\");R.PanelAlignmentMenu=new R(\"PanelAlignmentMenu\");R.PanelPositionMenu=new R(\"PanelPositionMenu\");R.ActivityBarPositionMenu=new R(\"ActivityBarPositionMenu\");R.MenubarPreferencesMenu=new R(\"MenubarPreferencesMenu\");R.MenubarRecentMenu=new R(\"MenubarRecentMenu\");R.MenubarSelectionMenu=new R(\"MenubarSelectionMenu\");R.MenubarShare=new R(\"MenubarShare\");R.MenubarSwitchEditorMenu=new R(\"MenubarSwitchEditorMenu\");R.MenubarSwitchGroupMenu=new R(\"MenubarSwitchGroupMenu\");R.MenubarTerminalMenu=new R(\"MenubarTerminalMenu\");R.MenubarViewMenu=new R(\"MenubarViewMenu\");R.MenubarHomeMenu=new R(\"MenubarHomeMenu\");R.OpenEditorsContext=new R(\"OpenEditorsContext\");R.OpenEditorsContextShare=new R(\"OpenEditorsContextShare\");R.ProblemsPanelContext=new R(\"ProblemsPanelContext\");R.SCMInputBox=new R(\"SCMInputBox\");R.SCMChangesSeparator=new R(\"SCMChangesSeparator\");R.SCMIncomingChanges=new R(\"SCMIncomingChanges\");R.SCMIncomingChangesContext=new R(\"SCMIncomingChangesContext\");R.SCMIncomingChangesSetting=new R(\"SCMIncomingChangesSetting\");R.SCMOutgoingChanges=new R(\"SCMOutgoingChanges\");R.SCMOutgoingChangesContext=new R(\"SCMOutgoingChangesContext\");R.SCMOutgoingChangesSetting=new R(\"SCMOutgoingChangesSetting\");R.SCMIncomingChangesAllChangesContext=new R(\"SCMIncomingChangesAllChangesContext\");R.SCMIncomingChangesHistoryItemContext=new R(\"SCMIncomingChangesHistoryItemContext\");R.SCMOutgoingChangesAllChangesContext=new R(\"SCMOutgoingChangesAllChangesContext\");R.SCMOutgoingChangesHistoryItemContext=new R(\"SCMOutgoingChangesHistoryItemContext\");R.SCMChangeContext=new R(\"SCMChangeContext\");R.SCMResourceContext=new R(\"SCMResourceContext\");R.SCMResourceContextShare=new R(\"SCMResourceContextShare\");R.SCMResourceFolderContext=new R(\"SCMResourceFolderContext\");R.SCMResourceGroupContext=new R(\"SCMResourceGroupContext\");R.SCMSourceControl=new R(\"SCMSourceControl\");R.SCMSourceControlInline=new R(\"SCMSourceControlInline\");R.SCMSourceControlTitle=new R(\"SCMSourceControlTitle\");R.SCMTitle=new R(\"SCMTitle\");R.SearchContext=new R(\"SearchContext\");R.SearchActionMenu=new R(\"SearchActionContext\");R.StatusBarWindowIndicatorMenu=new R(\"StatusBarWindowIndicatorMenu\");R.StatusBarRemoteIndicatorMenu=new R(\"StatusBarRemoteIndicatorMenu\");R.StickyScrollContext=new R(\"StickyScrollContext\");R.TestItem=new R(\"TestItem\");R.TestItemGutter=new R(\"TestItemGutter\");R.TestMessageContext=new R(\"TestMessageContext\");R.TestMessageContent=new R(\"TestMessageContent\");R.TestPeekElement=new R(\"TestPeekElement\");R.TestPeekTitle=new R(\"TestPeekTitle\");R.TouchBarContext=new R(\"TouchBarContext\");R.TitleBarContext=new R(\"TitleBarContext\");R.TitleBarTitleContext=new R(\"TitleBarTitleContext\");R.TunnelContext=new R(\"TunnelContext\");R.TunnelPrivacy=new R(\"TunnelPrivacy\");R.TunnelProtocol=new R(\"TunnelProtocol\");R.TunnelPortInline=new R(\"TunnelInline\");R.TunnelTitle=new R(\"TunnelTitle\");R.TunnelLocalAddressInline=new R(\"TunnelLocalAddressInline\");R.TunnelOriginInline=new R(\"TunnelOriginInline\");R.ViewItemContext=new R(\"ViewItemContext\");R.ViewContainerTitle=new R(\"ViewContainerTitle\");R.ViewContainerTitleContext=new R(\"ViewContainerTitleContext\");R.ViewTitle=new R(\"ViewTitle\");R.ViewTitleContext=new R(\"ViewTitleContext\");R.CommentEditorActions=new R(\"CommentEditorActions\");R.CommentThreadTitle=new R(\"CommentThreadTitle\");R.CommentThreadActions=new R(\"CommentThreadActions\");R.CommentThreadAdditionalActions=new R(\"CommentThreadAdditionalActions\");R.CommentThreadTitleContext=new R(\"CommentThreadTitleContext\");R.CommentThreadCommentContext=new R(\"CommentThreadCommentContext\");R.CommentTitle=new R(\"CommentTitle\");R.CommentActions=new R(\"CommentActions\");R.CommentsViewThreadActions=new R(\"CommentsViewThreadActions\");R.InteractiveToolbar=new R(\"InteractiveToolbar\");R.InteractiveCellTitle=new R(\"InteractiveCellTitle\");R.InteractiveCellDelete=new R(\"InteractiveCellDelete\");R.InteractiveCellExecute=new R(\"InteractiveCellExecute\");R.InteractiveInputExecute=new R(\"InteractiveInputExecute\");R.IssueReporter=new R(\"IssueReporter\");R.NotebookToolbar=new R(\"NotebookToolbar\");R.NotebookStickyScrollContext=new R(\"NotebookStickyScrollContext\");R.NotebookCellTitle=new R(\"NotebookCellTitle\");R.NotebookCellDelete=new R(\"NotebookCellDelete\");R.NotebookCellInsert=new R(\"NotebookCellInsert\");R.NotebookCellBetween=new R(\"NotebookCellBetween\");R.NotebookCellListTop=new R(\"NotebookCellTop\");R.NotebookCellExecute=new R(\"NotebookCellExecute\");R.NotebookCellExecuteGoTo=new R(\"NotebookCellExecuteGoTo\");R.NotebookCellExecutePrimary=new R(\"NotebookCellExecutePrimary\");R.NotebookDiffCellInputTitle=new R(\"NotebookDiffCellInputTitle\");R.NotebookDiffCellMetadataTitle=new R(\"NotebookDiffCellMetadataTitle\");R.NotebookDiffCellOutputsTitle=new R(\"NotebookDiffCellOutputsTitle\");R.NotebookOutputToolbar=new R(\"NotebookOutputToolbar\");R.NotebookOutlineFilter=new R(\"NotebookOutlineFilter\");R.NotebookOutlineActionMenu=new R(\"NotebookOutlineActionMenu\");R.NotebookEditorLayoutConfigure=new R(\"NotebookEditorLayoutConfigure\");R.NotebookKernelSource=new R(\"NotebookKernelSource\");R.BulkEditTitle=new R(\"BulkEditTitle\");R.BulkEditContext=new R(\"BulkEditContext\");R.TimelineItemContext=new R(\"TimelineItemContext\");R.TimelineTitle=new R(\"TimelineTitle\");R.TimelineTitleContext=new R(\"TimelineTitleContext\");R.TimelineFilterSubMenu=new R(\"TimelineFilterSubMenu\");R.AccountsContext=new R(\"AccountsContext\");R.SidebarTitle=new R(\"SidebarTitle\");R.PanelTitle=new R(\"PanelTitle\");R.AuxiliaryBarTitle=new R(\"AuxiliaryBarTitle\");R.AuxiliaryBarHeader=new R(\"AuxiliaryBarHeader\");R.TerminalInstanceContext=new R(\"TerminalInstanceContext\");R.TerminalEditorInstanceContext=new R(\"TerminalEditorInstanceContext\");R.TerminalNewDropdownContext=new R(\"TerminalNewDropdownContext\");R.TerminalTabContext=new R(\"TerminalTabContext\");R.TerminalTabEmptyAreaContext=new R(\"TerminalTabEmptyAreaContext\");R.TerminalStickyScrollContext=new R(\"TerminalStickyScrollContext\");R.WebviewContext=new R(\"WebviewContext\");R.InlineCompletionsActions=new R(\"InlineCompletionsActions\");R.InlineEditActions=new R(\"InlineEditActions\");R.NewFile=new R(\"NewFile\");R.MergeInput1Toolbar=new R(\"MergeToolbar1Toolbar\");R.MergeInput2Toolbar=new R(\"MergeToolbar2Toolbar\");R.MergeBaseToolbar=new R(\"MergeBaseToolbar\");R.MergeInputResultToolbar=new R(\"MergeToolbarResultToolbar\");R.InlineSuggestionToolbar=new R(\"InlineSuggestionToolbar\");R.InlineEditToolbar=new R(\"InlineEditToolbar\");R.ChatContext=new R(\"ChatContext\");R.ChatCodeBlock=new R(\"ChatCodeblock\");R.ChatCompareBlock=new R(\"ChatCompareBlock\");R.ChatMessageTitle=new R(\"ChatMessageTitle\");R.ChatExecute=new R(\"ChatExecute\");R.ChatExecuteSecondary=new R(\"ChatExecuteSecondary\");R.ChatInputSide=new R(\"ChatInputSide\");R.AccessibleView=new R(\"AccessibleView\");R.MultiDiffEditorFileToolbar=new R(\"MultiDiffEditorFileToolbar\");R.DiffEditorHunkToolbar=new R(\"DiffEditorHunkToolbar\");R.DiffEditorSelectionToolbar=new R(\"DiffEditorSelectionToolbar\");const Dl=Jt(\"menuService\");class Vf{static for(e){let t=this._all.get(e);return t||(t=new Vf(e),this._all.set(e,t)),t}static merge(e){const t=new Set;for(const i of e)i instanceof Vf&&t.add(i.id);return t}constructor(e){this.id=e,this.has=t=>t===e}}Vf._all=new Map;const ao=new class{constructor(){this._commands=new Map,this._menuItems=new Map,this._onDidChangeMenu=new NAe({merge:Vf.merge}),this.onDidChangeMenu=this._onDidChangeMenu.event}addCommand(n){return this._commands.set(n.id,n),this._onDidChangeMenu.fire(Vf.for(R.CommandPalette)),dt(()=>{this._commands.delete(n.id)&&this._onDidChangeMenu.fire(Vf.for(R.CommandPalette))})}getCommand(n){return this._commands.get(n)}getCommands(){const n=new Map;return this._commands.forEach((e,t)=>n.set(t,e)),n}appendMenuItem(n,e){let t=this._menuItems.get(n);t||(t=new Tr,this._menuItems.set(n,t));const i=t.push(e);return this._onDidChangeMenu.fire(Vf.for(n)),dt(()=>{i(),this._onDidChangeMenu.fire(Vf.for(n))})}appendMenuItems(n){const e=new be;for(const{id:t,item:i}of n)e.add(this.appendMenuItem(t,i));return e}getMenuItems(n){let e;return this._menuItems.has(n)?e=[...this._menuItems.get(n)]:e=[],n===R.CommandPalette&&this._appendImplicitItems(e),e}_appendImplicitItems(n){const e=new Set;for(const t of n)g1(t)&&(e.add(t.command.id),t.alt&&e.add(t.alt.id));this._commands.forEach((t,i)=>{e.has(i)||n.push({command:t})})}};class q1 extends NC{constructor(e,t,i){super(`submenuitem.${e.submenu.id}`,typeof e.title==\"string\"?e.title:e.title.value,i,\"submenu\"),this.item=e,this.hideActions=t}}let Na=hN=class{static label(e,t){return t!=null&&t.renderShortTitle&&e.shortTitle?typeof e.shortTitle==\"string\"?e.shortTitle:e.shortTitle.value:typeof e.title==\"string\"?e.title:e.title.value}constructor(e,t,i,s,o,r,a){var l,c;this.hideActions=s,this.menuKeybinding=o,this._commandService=a,this.id=e.id,this.label=hN.label(e,i),this.tooltip=(c=typeof e.tooltip==\"string\"?e.tooltip:(l=e.tooltip)===null||l===void 0?void 0:l.value)!==null&&c!==void 0?c:\"\",this.enabled=!e.precondition||r.contextMatchesRules(e.precondition),this.checked=void 0;let d;if(e.toggled){const u=e.toggled.condition?e.toggled:{condition:e.toggled};this.checked=r.contextMatchesRules(u.condition),this.checked&&u.tooltip&&(this.tooltip=typeof u.tooltip==\"string\"?u.tooltip:u.tooltip.value),this.checked&&_t.isThemeIcon(u.icon)&&(d=u.icon),this.checked&&u.title&&(this.label=typeof u.title==\"string\"?u.title:u.title.value)}d||(d=_t.isThemeIcon(e.icon)?e.icon:void 0),this.item=e,this.alt=t?new hN(t,void 0,i,s,void 0,r,a):void 0,this._options=i,this.class=d&&_t.asClassName(d)}run(...e){var t,i;let s=[];return!((t=this._options)===null||t===void 0)&&t.arg&&(s=[...s,this._options.arg]),!((i=this._options)===null||i===void 0)&&i.shouldForwardArgs&&(s=[...s,...e]),this._commandService.executeCommand(this.id,...s)}};Na=hN=hPe([EY(5,Ct),EY(6,Sn)],Na);class zr{constructor(e){this.desc=e}}function dn(n){const e=[],t=new n,{f1:i,menu:s,keybinding:o,...r}=t.desc;if(ri.getCommand(r.id))throw new Error(`Cannot register two commands with the same id: ${r.id}`);if(e.push(ri.registerCommand({id:r.id,handler:(a,...l)=>t.run(a,...l),metadata:r.metadata})),Array.isArray(s))for(const a of s)e.push(ao.appendMenuItem(a.id,{command:{...r,precondition:a.precondition===null?void 0:r.precondition},...a}));else s&&e.push(ao.appendMenuItem(s.id,{command:{...r,precondition:s.precondition===null?void 0:r.precondition},...s}));if(i&&(e.push(ao.appendMenuItem(R.CommandPalette,{command:r,when:r.precondition})),e.push(ao.addCommand(r))),Array.isArray(o))for(const a of o)e.push(Hr.registerKeybindingRule({...a,id:r.id,when:r.precondition?pe.and(r.precondition,a.when):a.when}));else o&&e.push(Hr.registerKeybindingRule({...o,id:r.id,when:r.precondition?pe.and(r.precondition,o.when):o.when}));return{dispose(){tn(e)}}}const Po=Jt(\"telemetryService\"),er=Jt(\"logService\");var To;(function(n){n[n.Off=0]=\"Off\",n[n.Trace=1]=\"Trace\",n[n.Debug=2]=\"Debug\",n[n.Info=3]=\"Info\",n[n.Warning=4]=\"Warning\",n[n.Error=5]=\"Error\"})(To||(To={}));const tle=To.Info;class ile extends ne{constructor(){super(...arguments),this.level=tle,this._onDidChangeLogLevel=this._register(new X),this.onDidChangeLogLevel=this._onDidChangeLogLevel.event}setLevel(e){this.level!==e&&(this.level=e,this._onDidChangeLogLevel.fire(this.level))}getLevel(){return this.level}checkLogLevel(e){return this.level!==To.Off&&this.level<=e}}class gPe extends ile{constructor(e=tle,t=!0){super(),this.useColors=t,this.setLevel(e)}trace(e,...t){this.checkLogLevel(To.Trace)&&(this.useColors?console.log(\"%cTRACE\",\"color: #888\",e,...t):console.log(e,...t))}debug(e,...t){this.checkLogLevel(To.Debug)&&(this.useColors?console.log(\"%cDEBUG\",\"background: #eee; color: #888\",e,...t):console.log(e,...t))}info(e,...t){this.checkLogLevel(To.Info)&&(this.useColors?console.log(\"%c INFO\",\"color: #33f\",e,...t):console.log(e,...t))}warn(e,...t){this.checkLogLevel(To.Warning)&&(this.useColors?console.log(\"%c WARN\",\"color: #993\",e,...t):console.log(e,...t))}error(e,...t){this.checkLogLevel(To.Error)&&(this.useColors?console.log(\"%c  ERR\",\"color: #f33\",e,...t):console.error(e,...t))}}class pPe extends ile{constructor(e){super(),this.loggers=e,e.length&&this.setLevel(e[0].getLevel())}setLevel(e){for(const t of this.loggers)t.setLevel(e);super.setLevel(e)}trace(e,...t){for(const i of this.loggers)i.trace(e,...t)}debug(e,...t){for(const i of this.loggers)i.debug(e,...t)}info(e,...t){for(const i of this.loggers)i.info(e,...t)}warn(e,...t){for(const i of this.loggers)i.warn(e,...t)}error(e,...t){for(const i of this.loggers)i.error(e,...t)}dispose(){for(const e of this.loggers)e.dispose();super.dispose()}}function mPe(n){switch(n){case To.Trace:return\"trace\";case To.Debug:return\"debug\";case To.Info:return\"info\";case To.Warning:return\"warn\";case To.Error:return\"error\";case To.Off:return\"off\"}}new He(\"logLevel\",mPe(To.Info));class SM{constructor(e){this.id=e.id,this.precondition=e.precondition,this._kbOpts=e.kbOpts,this._menuOpts=e.menuOpts,this.metadata=e.metadata}register(){if(Array.isArray(this._menuOpts)?this._menuOpts.forEach(this._registerMenuItem,this):this._menuOpts&&this._registerMenuItem(this._menuOpts),this._kbOpts){const e=Array.isArray(this._kbOpts)?this._kbOpts:[this._kbOpts];for(const t of e){let i=t.kbExpr;this.precondition&&(i?i=pe.and(i,this.precondition):i=this.precondition);const s={id:this.id,weight:t.weight,args:t.args,when:i,primary:t.primary,secondary:t.secondary,win:t.win,linux:t.linux,mac:t.mac};Hr.registerKeybindingRule(s)}}ri.registerCommand({id:this.id,handler:(e,t)=>this.runCommand(e,t),metadata:this.metadata})}_registerMenuItem(e){ao.appendMenuItem(e.menuId,{group:e.group,command:{id:this.id,title:e.title,icon:e.icon,precondition:this.precondition},when:e.when,order:e.order})}}class Pw extends SM{constructor(){super(...arguments),this._implementations=[]}addImplementation(e,t,i,s){return this._implementations.push({priority:e,name:t,implementation:i,when:s}),this._implementations.sort((o,r)=>r.priority-o.priority),{dispose:()=>{for(let o=0;o<this._implementations.length;o++)if(this._implementations[o].implementation===i){this._implementations.splice(o,1);return}}}}runCommand(e,t){const i=e.get(er),s=e.get(Ct);i.trace(`Executing Command '${this.id}' which has ${this._implementations.length} bound.`);for(const o of this._implementations){if(o.when){const a=s.getContext(Ao());if(!o.when.evaluate(a))continue}const r=o.implementation(e,t);if(r)return i.trace(`Command '${this.id}' was handled by '${o.name}'.`),typeof r==\"boolean\"?void 0:r}i.trace(`The Command '${this.id}' was not handled by any implementation.`)}}class nle extends SM{constructor(e,t){super(t),this.command=e}runCommand(e,t){return this.command.runCommand(e,t)}}class Us extends SM{static bindToContribution(e){return class extends Us{constructor(i){super(i),this._callback=i.handler}runEditorCommand(i,s,o){const r=e(s);r&&this._callback(r,o)}}}static runEditorCommand(e,t,i,s){const o=e.get(vi),r=o.getFocusedCodeEditor()||o.getActiveCodeEditor();if(r)return r.invokeWithinContext(a=>{if(a.get(Ct).contextMatchesRules(i??void 0))return s(a,r,t)})}runCommand(e,t){return Us.runEditorCommand(e,t,this.precondition,(i,s,o)=>this.runEditorCommand(i,s,o))}}class Ke extends Us{static convertOptions(e){let t;Array.isArray(e.menuOpts)?t=e.menuOpts:e.menuOpts?t=[e.menuOpts]:t=[];function i(s){return s.menuId||(s.menuId=R.EditorContext),s.title||(s.title=e.label),s.when=pe.and(e.precondition,s.when),s}return Array.isArray(e.contextMenuOpts)?t.push(...e.contextMenuOpts.map(i)):e.contextMenuOpts&&t.push(i(e.contextMenuOpts)),e.menuOpts=t,e}constructor(e){super(Ke.convertOptions(e)),this.label=e.label,this.alias=e.alias}runEditorCommand(e,t,i){return this.reportTelemetry(e,t),this.run(e,t,i||{})}reportTelemetry(e,t){e.get(Po).publicLog2(\"editorActionInvoked\",{name:this.label,id:this.id})}}class sle extends Ke{constructor(){super(...arguments),this._implementations=[]}addImplementation(e,t){return this._implementations.push([e,t]),this._implementations.sort((i,s)=>s[0]-i[0]),{dispose:()=>{for(let i=0;i<this._implementations.length;i++)if(this._implementations[i][1]===t){this._implementations.splice(i,1);return}}}}run(e,t,i){for(const s of this._implementations){const o=s[1](e,t,i);if(o)return typeof o==\"boolean\"?void 0:o}}}class mu extends zr{run(e,...t){const i=e.get(vi),s=i.getFocusedCodeEditor()||i.getActiveCodeEditor();if(s)return s.invokeWithinContext(o=>{var r,a;const l=o.get(Ct),c=o.get(er);if(!l.contextMatchesRules((r=this.desc.precondition)!==null&&r!==void 0?r:void 0)){c.debug(\"[EditorAction2] NOT running command because its precondition is FALSE\",this.desc.id,(a=this.desc.precondition)===null||a===void 0?void 0:a.serialize());return}return this.runEditorCommand(o,s,...t)})}}function Vh(n,e){ri.registerCommand(n,function(t,...i){const s=t.get(ht),[o,r]=i;mi(pt.isUri(o)),mi(ee.isIPosition(r));const a=t.get(Pn).getModel(o);if(a){const l=ee.lift(r);return s.invokeFunction(e,a,l,...i.slice(2))}return t.get(fa).createModelReference(o).then(l=>new Promise((c,d)=>{try{const u=s.invokeFunction(e,l.object.textEditorModel,ee.lift(r),i.slice(2));c(u)}catch(u){d(u)}}).finally(()=>{l.dispose()}))})}function Fe(n){return ql.INSTANCE.registerEditorCommand(n),n}function xe(n){const e=new n;return ql.INSTANCE.registerEditorAction(e),e}function ole(n){return ql.INSTANCE.registerEditorAction(n),n}function _Pe(n){ql.INSTANCE.registerEditorAction(n)}function bi(n,e,t){ql.INSTANCE.registerEditorContribution(n,e,t)}var G1;(function(n){function e(r){return ql.INSTANCE.getEditorCommand(r)}n.getEditorCommand=e;function t(){return ql.INSTANCE.getEditorActions()}n.getEditorActions=t;function i(){return ql.INSTANCE.getEditorContributions()}n.getEditorContributions=i;function s(r){return ql.INSTANCE.getEditorContributions().filter(a=>r.indexOf(a.id)>=0)}n.getSomeEditorContributions=s;function o(){return ql.INSTANCE.getDiffEditorContributions()}n.getDiffEditorContributions=o})(G1||(G1={}));const vPe={EditorCommonContributions:\"editor.contributions\"};class ql{constructor(){this.editorContributions=[],this.diffEditorContributions=[],this.editorActions=[],this.editorCommands=Object.create(null)}registerEditorContribution(e,t,i){this.editorContributions.push({id:e,ctor:t,instantiation:i})}getEditorContributions(){return this.editorContributions.slice(0)}getDiffEditorContributions(){return this.diffEditorContributions.slice(0)}registerEditorAction(e){e.register(),this.editorActions.push(e)}getEditorActions(){return this.editorActions}registerEditorCommand(e){e.register(),this.editorCommands[e.id]=e}getEditorCommand(e){return this.editorCommands[e]||null}}ql.INSTANCE=new ql;Un.add(vPe.EditorCommonContributions,ql.INSTANCE);function fD(n){return n.register(),n}const rle=fD(new Pw({id:\"undo\",precondition:void 0,kbOpts:{weight:0,primary:2104},menuOpts:[{menuId:R.MenubarEditMenu,group:\"1_do\",title:v({},\"&&Undo\"),order:1},{menuId:R.CommandPalette,group:\"\",title:v(\"undo\",\"Undo\"),order:1}]}));fD(new nle(rle,{id:\"default:undo\",precondition:void 0}));const ale=fD(new Pw({id:\"redo\",precondition:void 0,kbOpts:{weight:0,primary:2103,secondary:[3128],mac:{primary:3128}},menuOpts:[{menuId:R.MenubarEditMenu,group:\"1_do\",title:v({},\"&&Redo\"),order:2},{menuId:R.CommandPalette,group:\"\",title:v(\"redo\",\"Redo\"),order:1}]}));fD(new nle(ale,{id:\"default:redo\",precondition:void 0}));const bPe=fD(new Pw({id:\"editor.action.selectAll\",precondition:void 0,kbOpts:{weight:0,kbExpr:null,primary:2079},menuOpts:[{menuId:R.MenubarSelectionMenu,group:\"1_basic\",title:v({},\"&&Select All\"),order:1},{menuId:R.CommandPalette,group:\"\",title:v(\"selectAll\",\"Select All\"),order:1}]})),CPe=\"$initialize\";let TY=!1;function hB(n){u_&&(TY||(TY=!0,console.warn(\"Could not create web worker(s). Falling back to loading web worker code in main thread, which might cause UI freezes. Please see https://github.com/microsoft/monaco-editor#faq\")),console.warn(n.message))}class wPe{constructor(e,t,i,s){this.vsWorker=e,this.req=t,this.method=i,this.args=s,this.type=0}}class NY{constructor(e,t,i,s){this.vsWorker=e,this.seq=t,this.res=i,this.err=s,this.type=1}}class yPe{constructor(e,t,i,s){this.vsWorker=e,this.req=t,this.eventName=i,this.arg=s,this.type=2}}class SPe{constructor(e,t,i){this.vsWorker=e,this.req=t,this.event=i,this.type=3}}class xPe{constructor(e,t){this.vsWorker=e,this.req=t,this.type=4}}class LPe{constructor(e){this._workerId=-1,this._handler=e,this._lastSentReq=0,this._pendingReplies=Object.create(null),this._pendingEmitters=new Map,this._pendingEvents=new Map}setWorkerId(e){this._workerId=e}sendMessage(e,t){const i=String(++this._lastSentReq);return new Promise((s,o)=>{this._pendingReplies[i]={resolve:s,reject:o},this._send(new wPe(this._workerId,i,e,t))})}listen(e,t){let i=null;const s=new X({onWillAddFirstListener:()=>{i=String(++this._lastSentReq),this._pendingEmitters.set(i,s),this._send(new yPe(this._workerId,i,e,t))},onDidRemoveLastListener:()=>{this._pendingEmitters.delete(i),this._send(new xPe(this._workerId,i)),i=null}});return s.event}handleMessage(e){!e||!e.vsWorker||this._workerId!==-1&&e.vsWorker!==this._workerId||this._handleMessage(e)}_handleMessage(e){switch(e.type){case 1:return this._handleReplyMessage(e);case 0:return this._handleRequestMessage(e);case 2:return this._handleSubscribeEventMessage(e);case 3:return this._handleEventMessage(e);case 4:return this._handleUnsubscribeEventMessage(e)}}_handleReplyMessage(e){if(!this._pendingReplies[e.seq]){console.warn(\"Got reply to unknown seq\");return}const t=this._pendingReplies[e.seq];if(delete this._pendingReplies[e.seq],e.err){let i=e.err;e.err.$isError&&(i=new Error,i.name=e.err.name,i.message=e.err.message,i.stack=e.err.stack),t.reject(i);return}t.resolve(e.res)}_handleRequestMessage(e){const t=e.req;this._handler.handleMessage(e.method,e.args).then(s=>{this._send(new NY(this._workerId,t,s,void 0))},s=>{s.detail instanceof Error&&(s.detail=iY(s.detail)),this._send(new NY(this._workerId,t,void 0,iY(s)))})}_handleSubscribeEventMessage(e){const t=e.req,i=this._handler.handleEvent(e.eventName,e.arg)(s=>{this._send(new SPe(this._workerId,t,s))});this._pendingEvents.set(t,i)}_handleEventMessage(e){if(!this._pendingEmitters.has(e.req)){console.warn(\"Got event for unknown req\");return}this._pendingEmitters.get(e.req).fire(e.event)}_handleUnsubscribeEventMessage(e){if(!this._pendingEvents.has(e.req)){console.warn(\"Got unsubscribe for unknown req\");return}this._pendingEvents.get(e.req).dispose(),this._pendingEvents.delete(e.req)}_send(e){const t=[];if(e.type===0)for(let i=0;i<e.args.length;i++)e.args[i]instanceof ArrayBuffer&&t.push(e.args[i]);else e.type===1&&e.res instanceof ArrayBuffer&&t.push(e.res);this._handler.sendMessage(e,t)}}class kPe extends ne{constructor(e,t,i){super();let s=null;this._worker=this._register(e.create(\"vs/base/common/worker/simpleWorker\",d=>{this._protocol.handleMessage(d)},d=>{s==null||s(d)})),this._protocol=new LPe({sendMessage:(d,u)=>{this._worker.postMessage(d,u)},handleMessage:(d,u)=>{if(typeof i[d]!=\"function\")return Promise.reject(new Error(\"Missing method \"+d+\" on main thread host.\"));try{return Promise.resolve(i[d].apply(i,u))}catch(h){return Promise.reject(h)}},handleEvent:(d,u)=>{if(cle(d)){const h=i[d].call(i,u);if(typeof h!=\"function\")throw new Error(`Missing dynamic event ${d} on main thread host.`);return h}if(lle(d)){const h=i[d];if(typeof h!=\"function\")throw new Error(`Missing event ${d} on main thread host.`);return h}throw new Error(`Malformed event name ${d}`)}}),this._protocol.setWorkerId(this._worker.getId());let o=null;const r=globalThis.require;typeof r<\"u\"&&typeof r.getConfig==\"function\"?o=r.getConfig():typeof globalThis.requirejs<\"u\"&&(o=globalThis.requirejs.s.contexts._.config);const a=RV(i);this._onModuleLoaded=this._protocol.sendMessage(CPe,[this._worker.getId(),JSON.parse(JSON.stringify(o)),t,a]);const l=(d,u)=>this._request(d,u),c=(d,u)=>this._protocol.listen(d,u);this._lazyProxy=new Promise((d,u)=>{s=u,this._onModuleLoaded.then(h=>{d(DPe(h,l,c))},h=>{u(h),this._onError(\"Worker failed to load \"+t,h)})})}getProxyObject(){return this._lazyProxy}_request(e,t){return new Promise((i,s)=>{this._onModuleLoaded.then(()=>{this._protocol.sendMessage(e,t).then(i,s)},s)})}_onError(e,t){console.error(e),console.info(t)}}function lle(n){return n[0]===\"o\"&&n[1]===\"n\"&&Ku(n.charCodeAt(2))}function cle(n){return/^onDynamic/.test(n)&&Ku(n.charCodeAt(9))}function DPe(n,e,t){const i=r=>function(){const a=Array.prototype.slice.call(arguments,0);return e(r,a)},s=r=>function(a){return t(r,a)},o={};for(const r of n){if(cle(r)){o[r]=s(r);continue}if(lle(r)){o[r]=t(r,void 0);continue}o[r]=i(r)}return o}function Bg(n,e){var t;const i=globalThis.MonacoEnvironment;if(i!=null&&i.createTrustedTypesPolicy)try{return i.createTrustedTypesPolicy(n,e)}catch(s){Mt(s);return}try{return(t=Ji.trustedTypes)===null||t===void 0?void 0:t.createPolicy(n,e)}catch(s){Mt(s);return}}const AY=Bg(\"defaultWorkerFactory\",{createScriptURL:n=>n});function IPe(n){const e=globalThis.MonacoEnvironment;if(e){if(typeof e.getWorker==\"function\")return e.getWorker(\"workerMain.js\",n);if(typeof e.getWorkerUrl==\"function\"){const t=e.getWorkerUrl(\"workerMain.js\",n);return new Worker(AY?AY.createScriptURL(t):t,{name:n})}}throw new Error(\"You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker\")}function EPe(n){return typeof n.then==\"function\"}class TPe extends ne{constructor(e,t,i,s,o){super(),this.id=t,this.label=i;const r=IPe(i);EPe(r)?this.worker=r:this.worker=Promise.resolve(r),this.postMessage(e,[]),this.worker.then(a=>{a.onmessage=function(l){s(l.data)},a.onmessageerror=o,typeof a.addEventListener==\"function\"&&a.addEventListener(\"error\",o)}),this._register(dt(()=>{var a;(a=this.worker)===null||a===void 0||a.then(l=>{l.onmessage=null,l.onmessageerror=null,l.removeEventListener(\"error\",o),l.terminate()}),this.worker=null}))}getId(){return this.id}postMessage(e,t){var i;(i=this.worker)===null||i===void 0||i.then(s=>{try{s.postMessage(e,t)}catch(o){Mt(o),Mt(new Error(`FAILED to post message to '${this.label}'-worker`,{cause:o}))}})}}class xM{constructor(e){this._label=e,this._webWorkerFailedBeforeError=!1}create(e,t,i){const s=++xM.LAST_WORKER_ID;if(this._webWorkerFailedBeforeError)throw this._webWorkerFailedBeforeError;return new TPe(e,s,this._label||\"anonymous\"+s,t,o=>{hB(o),this._webWorkerFailedBeforeError=o,i(o)})}}xM.LAST_WORKER_ID=0;var Ds;(function(n){n[n.None=0]=\"None\",n[n.Indent=1]=\"Indent\",n[n.IndentOutdent=2]=\"IndentOutdent\",n[n.Outdent=3]=\"Outdent\"})(Ds||(Ds={}));class VF{constructor(e){if(this._neutralCharacter=null,this._neutralCharacterSearched=!1,this.open=e.open,this.close=e.close,this._inString=!0,this._inComment=!0,this._inRegEx=!0,Array.isArray(e.notIn))for(let t=0,i=e.notIn.length;t<i;t++)switch(e.notIn[t]){case\"string\":this._inString=!1;break;case\"comment\":this._inComment=!1;break;case\"regex\":this._inRegEx=!1;break}}isOK(e){switch(e){case 0:return!0;case 1:return this._inComment;case 2:return this._inString;case 3:return this._inRegEx}}shouldAutoClose(e,t){if(e.getTokenCount()===0)return!0;const i=e.findTokenIndexAtOffset(t-2),s=e.getStandardTokenType(i);return this.isOK(s)}_findNeutralCharacterInRange(e,t){for(let i=e;i<=t;i++){const s=String.fromCharCode(i);if(!this.open.includes(s)&&!this.close.includes(s))return s}return null}findNeutralCharacter(){return this._neutralCharacterSearched||(this._neutralCharacterSearched=!0,this._neutralCharacter||(this._neutralCharacter=this._findNeutralCharacterInRange(48,57)),this._neutralCharacter||(this._neutralCharacter=this._findNeutralCharacterInRange(97,122)),this._neutralCharacter||(this._neutralCharacter=this._findNeutralCharacterInRange(65,90))),this._neutralCharacter}}class NPe{constructor(e){this.autoClosingPairsOpenByStart=new Map,this.autoClosingPairsOpenByEnd=new Map,this.autoClosingPairsCloseByStart=new Map,this.autoClosingPairsCloseByEnd=new Map,this.autoClosingPairsCloseSingleChar=new Map;for(const t of e)Ay(this.autoClosingPairsOpenByStart,t.open.charAt(0),t),Ay(this.autoClosingPairsOpenByEnd,t.open.charAt(t.open.length-1),t),Ay(this.autoClosingPairsCloseByStart,t.close.charAt(0),t),Ay(this.autoClosingPairsCloseByEnd,t.close.charAt(t.close.length-1),t),t.close.length===1&&t.open.length===1&&Ay(this.autoClosingPairsCloseSingleChar,t.close,t)}}function Ay(n,e,t){n.has(e)?n.get(e).push(t):n.set(e,[t])}class AC{constructor(e){if(e.autoClosingPairs?this._autoClosingPairs=e.autoClosingPairs.map(t=>new VF(t)):e.brackets?this._autoClosingPairs=e.brackets.map(t=>new VF({open:t[0],close:t[1]})):this._autoClosingPairs=[],e.__electricCharacterSupport&&e.__electricCharacterSupport.docComment){const t=e.__electricCharacterSupport.docComment;this._autoClosingPairs.push(new VF({open:t.open,close:t.close||\"\"}))}this._autoCloseBeforeForQuotes=typeof e.autoCloseBefore==\"string\"?e.autoCloseBefore:AC.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES,this._autoCloseBeforeForBrackets=typeof e.autoCloseBefore==\"string\"?e.autoCloseBefore:AC.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS,this._surroundingPairs=e.surroundingPairs||this._autoClosingPairs}getAutoClosingPairs(){return this._autoClosingPairs}getAutoCloseBeforeSet(e){return e?this._autoCloseBeforeForQuotes:this._autoCloseBeforeForBrackets}getSurroundingPairs(){return this._surroundingPairs}}AC.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES=`;:.,=}])> \n\t`;AC.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS=`'\"\\`;:.,=}])> \n\t`;function xv(n,e){const t=n.getCount(),i=n.findTokenIndexAtOffset(e),s=n.getLanguageId(i);let o=i;for(;o+1<t&&n.getLanguageId(o+1)===s;)o++;let r=i;for(;r>0&&n.getLanguageId(r-1)===s;)r--;return new APe(n,s,r,o+1,n.getStartOffset(r),n.getEndOffset(o))}class APe{constructor(e,t,i,s,o,r){this._scopedLineTokensBrand=void 0,this._actual=e,this.languageId=t,this._firstTokenIndex=i,this._lastTokenIndex=s,this.firstCharOffset=o,this._lastCharOffset=r,this.languageIdCodec=e.languageIdCodec}getLineContent(){return this._actual.getLineContent().substring(this.firstCharOffset,this._lastCharOffset)}getLineLength(){return this._lastCharOffset-this.firstCharOffset}getActualLineContentBefore(e){return this._actual.getLineContent().substring(0,this.firstCharOffset+e)}getTokenCount(){return this._lastTokenIndex-this._firstTokenIndex}findTokenIndexAtOffset(e){return this._actual.findTokenIndexAtOffset(e+this.firstCharOffset)-this._firstTokenIndex}getStandardTokenType(e){return this._actual.getStandardTokenType(e+this._firstTokenIndex)}toIViewLineTokens(){return this._actual.sliceAndInflate(this.firstCharOffset,this._lastCharOffset,0)}}function Fu(n){return(n&3)!==0}const RY=typeof Buffer<\"u\";let zF;class LM{static wrap(e){return RY&&!Buffer.isBuffer(e)&&(e=Buffer.from(e.buffer,e.byteOffset,e.byteLength)),new LM(e)}constructor(e){this.buffer=e,this.byteLength=this.buffer.byteLength}toString(){return RY?this.buffer.toString():(zF||(zF=new TextDecoder),zF.decode(this.buffer))}}function RPe(n,e){return n[e+0]<<0>>>0|n[e+1]<<8>>>0}function MPe(n,e,t){n[t+0]=e&255,e=e>>>8,n[t+1]=e&255}function Dd(n,e){return n[e]*2**24+n[e+1]*2**16+n[e+2]*2**8+n[e+3]}function Id(n,e,t){n[t+3]=e,e=e>>>8,n[t+2]=e,e=e>>>8,n[t+1]=e,e=e>>>8,n[t]=e}function MY(n,e){return n[e]}function PY(n,e,t){n[t]=e}let $F;function dle(){return $F||($F=new TextDecoder(\"UTF-16LE\")),$F}let UF;function PPe(){return UF||(UF=new TextDecoder(\"UTF-16BE\")),UF}let jF;function ule(){return jF||(jF=Zre()?dle():PPe()),jF}function OPe(n,e,t){const i=new Uint16Array(n.buffer,e,t);return t>0&&(i[0]===65279||i[0]===65534)?FPe(n,e,t):dle().decode(i)}function FPe(n,e,t){const i=[];let s=0;for(let o=0;o<t;o++){const r=RPe(n,e);e+=2,i[s++]=String.fromCharCode(r)}return i.join(\"\")}class Ow{constructor(e){this._capacity=e|0,this._buffer=new Uint16Array(this._capacity),this._completedStrings=null,this._bufferLength=0}reset(){this._completedStrings=null,this._bufferLength=0}build(){return this._completedStrings!==null?(this._flushBuffer(),this._completedStrings.join(\"\")):this._buildBuffer()}_buildBuffer(){if(this._bufferLength===0)return\"\";const e=new Uint16Array(this._buffer.buffer,0,this._bufferLength);return ule().decode(e)}_flushBuffer(){const e=this._buildBuffer();this._bufferLength=0,this._completedStrings===null?this._completedStrings=[e]:this._completedStrings[this._completedStrings.length]=e}appendCharCode(e){const t=this._capacity-this._bufferLength;t<=1&&(t===0||Gs(e))&&this._flushBuffer(),this._buffer[this._bufferLength++]=e}appendASCIICharCode(e){this._bufferLength===this._capacity&&this._flushBuffer(),this._buffer[this._bufferLength++]=e}appendString(e){const t=e.length;if(this._bufferLength+t>=this._capacity){this._flushBuffer(),this._completedStrings[this._completedStrings.length]=e;return}for(let i=0;i<t;i++)this._buffer[this._bufferLength++]=e.charCodeAt(i)}}class z2{constructor(e,t,i,s,o,r){this._richEditBracketBrand=void 0,this.languageId=e,this.index=t,this.open=i,this.close=s,this.forwardRegex=o,this.reversedRegex=r,this._openSet=z2._toSet(this.open),this._closeSet=z2._toSet(this.close)}isOpen(e){return this._openSet.has(e)}isClose(e){return this._closeSet.has(e)}static _toSet(e){const t=new Set;for(const i of e)t.add(i);return t}}function BPe(n){const e=n.length;n=n.map(r=>[r[0].toLowerCase(),r[1].toLowerCase()]);const t=[];for(let r=0;r<e;r++)t[r]=r;const i=(r,a)=>{const[l,c]=r,[d,u]=a;return l===d||l===u||c===d||c===u},s=(r,a)=>{const l=Math.min(r,a),c=Math.max(r,a);for(let d=0;d<e;d++)t[d]===c&&(t[d]=l)};for(let r=0;r<e;r++){const a=n[r];for(let l=r+1;l<e;l++){const c=n[l];i(a,c)&&s(t[r],t[l])}}const o=[];for(let r=0;r<e;r++){const a=[],l=[];for(let c=0;c<e;c++)if(t[c]===r){const[d,u]=n[c];a.push(d),l.push(u)}a.length>0&&o.push({open:a,close:l})}return o}class WPe{constructor(e,t){this._richEditBracketsBrand=void 0;const i=BPe(t);this.brackets=i.map((s,o)=>new z2(e,o,s.open,s.close,HPe(s.open,s.close,i,o),VPe(s.open,s.close,i,o))),this.forwardRegex=zPe(this.brackets),this.reversedRegex=$Pe(this.brackets),this.textIsBracket={},this.textIsOpenBracket={},this.maxBracketLength=0;for(const s of this.brackets){for(const o of s.open)this.textIsBracket[o]=s,this.textIsOpenBracket[o]=!0,this.maxBracketLength=Math.max(this.maxBracketLength,o.length);for(const o of s.close)this.textIsBracket[o]=s,this.textIsOpenBracket[o]=!1,this.maxBracketLength=Math.max(this.maxBracketLength,o.length)}}}function hle(n,e,t,i){for(let s=0,o=e.length;s<o;s++){if(s===t)continue;const r=e[s];for(const a of r.open)a.indexOf(n)>=0&&i.push(a);for(const a of r.close)a.indexOf(n)>=0&&i.push(a)}}function fle(n,e){return n.length-e.length}function kM(n){if(n.length<=1)return n;const e=[],t=new Set;for(const i of n)t.has(i)||(e.push(i),t.add(i));return e}function HPe(n,e,t,i){let s=[];s=s.concat(n),s=s.concat(e);for(let o=0,r=s.length;o<r;o++)hle(s[o],t,i,s);return s=kM(s),s.sort(fle),s.reverse(),gD(s)}function VPe(n,e,t,i){let s=[];s=s.concat(n),s=s.concat(e);for(let o=0,r=s.length;o<r;o++)hle(s[o],t,i,s);return s=kM(s),s.sort(fle),s.reverse(),gD(s.map(dz))}function zPe(n){let e=[];for(const t of n){for(const i of t.open)e.push(i);for(const i of t.close)e.push(i)}return e=kM(e),gD(e)}function $Pe(n){let e=[];for(const t of n){for(const i of t.open)e.push(i);for(const i of t.close)e.push(i)}return e=kM(e),gD(e.map(dz))}function UPe(n){const e=/^[\\w ]+$/.test(n);return n=wl(n),e?`\\\\b${n}\\\\b`:n}function gD(n,e){const t=`(${n.map(UPe).join(\")|(\")})`;return bae(t,!0,e)}const dz=function(){function n(i){const s=new Uint16Array(i.length);let o=0;for(let r=i.length-1;r>=0;r--)s[o++]=i.charCodeAt(r);return ule().decode(s)}let e=null,t=null;return function(s){return e!==s&&(e=s,t=n(e)),t}}();class Oc{static _findPrevBracketInText(e,t,i,s){const o=i.match(e);if(!o)return null;const r=i.length-(o.index||0),a=o[0].length,l=s+r;return new A(t,l-a+1,t,l+1)}static findPrevBracketInRange(e,t,i,s,o){const a=dz(i).substring(i.length-o,i.length-s);return this._findPrevBracketInText(e,t,a,s)}static findNextBracketInText(e,t,i,s){const o=i.match(e);if(!o)return null;const r=o.index||0,a=o[0].length;if(a===0)return null;const l=s+r;return new A(t,l+1,t,l+1+a)}static findNextBracketInRange(e,t,i,s,o){const r=i.substring(s,o);return this.findNextBracketInText(e,t,r,s)}}class jPe{constructor(e){this._richEditBrackets=e}getElectricCharacters(){const e=[];if(this._richEditBrackets)for(const t of this._richEditBrackets.brackets)for(const i of t.close){const s=i.charAt(i.length-1);e.push(s)}return xg(e)}onElectricCharacter(e,t,i){if(!this._richEditBrackets||this._richEditBrackets.brackets.length===0)return null;const s=t.findTokenIndexAtOffset(i-1);if(Fu(t.getStandardTokenType(s)))return null;const o=this._richEditBrackets.reversedRegex,r=t.getLineContent().substring(0,i-1)+e,a=Oc.findPrevBracketInRange(o,1,r,0,r.length);if(!a)return null;const l=r.substring(a.startColumn-1,a.endColumn-1).toLowerCase();if(this._richEditBrackets.textIsOpenBracket[l])return null;const d=t.getActualLineContentBefore(a.startColumn-1);return/^\\s*$/.test(d)?{matchOpenBracket:l}:null}}function DE(n){return n.global&&(n.lastIndex=0),!0}class KPe{constructor(e){this._indentationRules=e}shouldIncrease(e){return!!(this._indentationRules&&this._indentationRules.increaseIndentPattern&&DE(this._indentationRules.increaseIndentPattern)&&this._indentationRules.increaseIndentPattern.test(e))}shouldDecrease(e){return!!(this._indentationRules&&this._indentationRules.decreaseIndentPattern&&DE(this._indentationRules.decreaseIndentPattern)&&this._indentationRules.decreaseIndentPattern.test(e))}shouldIndentNextLine(e){return!!(this._indentationRules&&this._indentationRules.indentNextLinePattern&&DE(this._indentationRules.indentNextLinePattern)&&this._indentationRules.indentNextLinePattern.test(e))}shouldIgnore(e){return!!(this._indentationRules&&this._indentationRules.unIndentedLinePattern&&DE(this._indentationRules.unIndentedLinePattern)&&this._indentationRules.unIndentedLinePattern.test(e))}getIndentMetadata(e){let t=0;return this.shouldIncrease(e)&&(t+=1),this.shouldDecrease(e)&&(t+=2),this.shouldIndentNextLine(e)&&(t+=4),this.shouldIgnore(e)&&(t+=8),t}}class p1{constructor(e){e=e||{},e.brackets=e.brackets||[[\"(\",\")\"],[\"{\",\"}\"],[\"[\",\"]\"]],this._brackets=[],e.brackets.forEach(t=>{const i=p1._createOpenBracketRegExp(t[0]),s=p1._createCloseBracketRegExp(t[1]);i&&s&&this._brackets.push({open:t[0],openRegExp:i,close:t[1],closeRegExp:s})}),this._regExpRules=e.onEnterRules||[]}onEnter(e,t,i,s){if(e>=3)for(let o=0,r=this._regExpRules.length;o<r;o++){const a=this._regExpRules[o];if([{reg:a.beforeText,text:i},{reg:a.afterText,text:s},{reg:a.previousLineText,text:t}].every(c=>c.reg?(c.reg.lastIndex=0,c.reg.test(c.text)):!0))return a.action}if(e>=2&&i.length>0&&s.length>0)for(let o=0,r=this._brackets.length;o<r;o++){const a=this._brackets[o];if(a.openRegExp.test(i)&&a.closeRegExp.test(s))return{indentAction:Ds.IndentOutdent}}if(e>=2&&i.length>0){for(let o=0,r=this._brackets.length;o<r;o++)if(this._brackets[o].openRegExp.test(i))return{indentAction:Ds.Indent}}return null}static _createOpenBracketRegExp(e){let t=wl(e);return/\\B/.test(t.charAt(0))||(t=\"\\\\b\"+t),t+=\"\\\\s*$\",p1._safeRegExp(t)}static _createCloseBracketRegExp(e){let t=wl(e);return/\\B/.test(t.charAt(t.length-1))||(t=t+\"\\\\b\"),t=\"^\\\\s*\"+t,p1._safeRegExp(t)}static _safeRegExp(e){try{return new RegExp(e)}catch(t){return Mt(t),null}}}const qt=Jt(\"configurationService\");function fB(n,e){const t=Object.create(null);for(const i in n)gle(t,i,n[i],e);return t}function gle(n,e,t,i){const s=e.split(\".\"),o=s.pop();let r=n;for(let a=0;a<s.length;a++){const l=s[a];let c=r[l];switch(typeof c){case\"undefined\":c=r[l]=Object.create(null);break;case\"object\":if(c===null){i(`Ignoring ${e} as ${s.slice(0,a+1).join(\".\")} is null`);return}break;default:i(`Ignoring ${e} as ${s.slice(0,a+1).join(\".\")} is ${JSON.stringify(c)}`);return}r=c}if(typeof r==\"object\"&&r!==null)try{r[o]=t}catch{i(`Ignoring ${e} as ${s.join(\".\")} is ${JSON.stringify(r)}`)}else i(`Ignoring ${e} as ${s.join(\".\")} is ${JSON.stringify(r)}`)}function qPe(n,e){const t=e.split(\".\");ple(n,t)}function ple(n,e){const t=e.shift();if(e.length===0){delete n[t];return}if(Object.keys(n).indexOf(t)!==-1){const i=n[t];typeof i==\"object\"&&!Array.isArray(i)&&(ple(i,e),Object.keys(i).length===0&&delete n[t])}}function OY(n,e,t){function i(r,a){let l=r;for(const c of a){if(typeof l!=\"object\"||l===null)return;l=l[c]}return l}const s=e.split(\".\"),o=i(n,s);return typeof o>\"u\"?t:o}function GPe(n){return n.replace(/[\\[\\]]/g,\"\")}const An=Jt(\"languageService\");class qu{constructor(e,t=[],i=!1){this.ctor=e,this.staticArguments=t,this.supportsDelayedInstantiation=i}}const mle=[];function ai(n,e,t){e instanceof qu||(e=new qu(e,[],!!t)),mle.push([n,e])}function FY(){return mle}const ss=Object.freeze({text:\"text/plain\",binary:\"application/octet-stream\",unknown:\"application/unknown\",markdown:\"text/markdown\",latex:\"text/latex\",uriList:\"text/uri-list\"}),DM={JSONContribution:\"base.contributions.json\"};function ZPe(n){return n.length>0&&n.charAt(n.length-1)===\"#\"?n.substring(0,n.length-1):n}class YPe{constructor(){this._onDidChangeSchema=new X,this.schemasById={}}registerSchema(e,t){this.schemasById[ZPe(e)]=t,this._onDidChangeSchema.fire(e)}notifySchemaChanged(e){this._onDidChangeSchema.fire(e)}}const XPe=new YPe;Un.add(DM.JSONContribution,XPe);const _u={Configuration:\"base.contributions.configuration\"},IE=\"vscode://schemas/settings/resourceLanguage\",BY=Un.as(DM.JSONContribution);class QPe{constructor(){this.overrideIdentifiers=new Set,this._onDidSchemaChange=new X,this._onDidUpdateConfiguration=new X,this.configurationDefaultsOverrides=new Map,this.defaultLanguageConfigurationOverridesNode={id:\"defaultOverrides\",title:v(\"defaultLanguageConfigurationOverrides.title\",\"Default Language Configuration Overrides\"),properties:{}},this.configurationContributors=[this.defaultLanguageConfigurationOverridesNode],this.resourceLanguageSettingsSchema={properties:{},patternProperties:{},additionalProperties:!0,allowTrailingCommas:!0,allowComments:!0},this.configurationProperties={},this.policyConfigurations=new Map,this.excludedConfigurationProperties={},BY.registerSchema(IE,this.resourceLanguageSettingsSchema),this.registerOverridePropertyPatternKey()}registerConfiguration(e,t=!0){this.registerConfigurations([e],t)}registerConfigurations(e,t=!0){const i=new Set;this.doRegisterConfigurations(e,t,i),BY.registerSchema(IE,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:i})}registerDefaultConfigurations(e){const t=new Set;this.doRegisterDefaultConfigurations(e,t),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:t,defaultsOverrides:!0})}doRegisterDefaultConfigurations(e,t){var i;const s=[];for(const{overrides:o,source:r}of e)for(const a in o)if(t.add(a),Bm.test(a)){const l=this.configurationDefaultsOverrides.get(a),c=(i=l==null?void 0:l.valuesSources)!==null&&i!==void 0?i:new Map;if(r)for(const f of Object.keys(o[a]))c.set(f,r);const d={...(l==null?void 0:l.value)||{},...o[a]};this.configurationDefaultsOverrides.set(a,{source:r,value:d,valuesSources:c});const u=GPe(a),h={type:\"object\",default:d,description:v(\"defaultLanguageConfiguration.description\",\"Configure settings to be overridden for the {0} language.\",u),$ref:IE,defaultDefaultValue:d,source:Pr(r)?void 0:r,defaultValueSource:r};s.push(...$2(a)),this.configurationProperties[a]=h,this.defaultLanguageConfigurationOverridesNode.properties[a]=h}else{this.configurationDefaultsOverrides.set(a,{value:o[a],source:r});const l=this.configurationProperties[a];l&&(this.updatePropertyDefaultValue(a,l),this.updateSchema(a,l))}this.doRegisterOverrideIdentifiers(s)}registerOverrideIdentifiers(e){this.doRegisterOverrideIdentifiers(e),this._onDidSchemaChange.fire()}doRegisterOverrideIdentifiers(e){for(const t of e)this.overrideIdentifiers.add(t);this.updateOverridePropertyPatternKey()}doRegisterConfigurations(e,t,i){e.forEach(s=>{this.validateAndRegisterProperties(s,t,s.extensionInfo,s.restrictedProperties,void 0,i),this.configurationContributors.push(s),this.registerJSONConfiguration(s)})}validateAndRegisterProperties(e,t=!0,i,s,o=3,r){var a;o=ll(e.scope)?o:e.scope;const l=e.properties;if(l)for(const d in l){const u=l[d];if(t&&tOe(d,u)){delete l[d];continue}if(u.source=i,u.defaultDefaultValue=l[d].default,this.updatePropertyDefaultValue(d,u),Bm.test(d)?u.scope=void 0:(u.scope=ll(u.scope)?o:u.scope,u.restricted=ll(u.restricted)?!!(s!=null&&s.includes(d)):u.restricted),l[d].hasOwnProperty(\"included\")&&!l[d].included){this.excludedConfigurationProperties[d]=l[d],delete l[d];continue}else this.configurationProperties[d]=l[d],!((a=l[d].policy)===null||a===void 0)&&a.name&&this.policyConfigurations.set(l[d].policy.name,d);!l[d].deprecationMessage&&l[d].markdownDeprecationMessage&&(l[d].deprecationMessage=l[d].markdownDeprecationMessage),r.add(d)}const c=e.allOf;if(c)for(const d of c)this.validateAndRegisterProperties(d,t,i,s,o,r)}getConfigurationProperties(){return this.configurationProperties}getPolicyConfigurations(){return this.policyConfigurations}registerJSONConfiguration(e){const t=i=>{const s=i.properties;if(s)for(const r in s)this.updateSchema(r,s[r]);const o=i.allOf;o==null||o.forEach(t)};t(e)}updateSchema(e,t){switch(t.scope){case 1:break;case 2:break;case 6:break;case 3:break;case 4:break;case 5:this.resourceLanguageSettingsSchema.properties[e]=t;break}}updateOverridePropertyPatternKey(){for(const e of this.overrideIdentifiers.values()){const t=`[${e}]`,i={type:\"object\",description:v(\"overrideSettings.defaultDescription\",\"Configure editor settings to be overridden for a language.\"),errorMessage:v(\"overrideSettings.errorMessage\",\"This setting does not support per-language configuration.\"),$ref:IE};this.updatePropertyDefaultValue(t,i)}}registerOverridePropertyPatternKey(){v(\"overrideSettings.defaultDescription\",\"Configure editor settings to be overridden for a language.\"),v(\"overrideSettings.errorMessage\",\"This setting does not support per-language configuration.\"),this._onDidSchemaChange.fire()}updatePropertyDefaultValue(e,t){const i=this.configurationDefaultsOverrides.get(e);let s=i==null?void 0:i.value,o=i==null?void 0:i.source;na(s)&&(s=t.defaultDefaultValue,o=void 0),na(s)&&(s=eOe(t.type)),t.default=s,t.defaultValueSource=o}}const _le=\"\\\\[([^\\\\]]+)\\\\]\",WY=new RegExp(_le,\"g\"),JPe=`^(${_le})+$`,Bm=new RegExp(JPe);function $2(n){const e=[];if(Bm.test(n)){let t=WY.exec(n);for(;t!=null&&t.length;){const i=t[1].trim();i&&e.push(i),t=WY.exec(n)}}return xg(e)}function eOe(n){switch(Array.isArray(n)?n[0]:n){case\"boolean\":return!1;case\"integer\":case\"number\":return 0;case\"string\":return\"\";case\"array\":return[];case\"object\":return{};default:return null}}const fN=new QPe;Un.add(_u.Configuration,fN);function tOe(n,e){var t,i,s,o;return n.trim()?Bm.test(n)?v(\"config.property.languageDefault\",\"Cannot register '{0}'. This matches property pattern '\\\\\\\\[.*\\\\\\\\]$' for describing language specific editor settings. Use 'configurationDefaults' contribution.\",n):fN.getConfigurationProperties()[n]!==void 0?v(\"config.property.duplicate\",\"Cannot register '{0}'. This property is already registered.\",n):!((t=e.policy)===null||t===void 0)&&t.name&&fN.getPolicyConfigurations().get((i=e.policy)===null||i===void 0?void 0:i.name)!==void 0?v(\"config.policy.duplicate\",\"Cannot register '{0}'. The associated policy {1} is already registered with {2}.\",n,(s=e.policy)===null||s===void 0?void 0:s.name,fN.getPolicyConfigurations().get((o=e.policy)===null||o===void 0?void 0:o.name)):null:v(\"config.property.empty\",\"Cannot register an empty property\")}const iOe={ModesRegistry:\"editor.modesRegistry\"};class nOe{constructor(){this._onDidChangeLanguages=new X,this.onDidChangeLanguages=this._onDidChangeLanguages.event,this._languages=[]}registerLanguage(e){return this._languages.push(e),this._onDidChangeLanguages.fire(void 0),{dispose:()=>{for(let t=0,i=this._languages.length;t<i;t++)if(this._languages[t]===e){this._languages.splice(t,1);return}}}}getLanguages(){return this._languages}}const RC=new nOe;Un.add(iOe.ModesRegistry,RC);const bl=\"plaintext\",sOe=\".txt\";RC.registerLanguage({id:bl,extensions:[sOe],aliases:[v(\"plainText.alias\",\"Plain Text\"),\"text\"],mimetypes:[ss.text]});Un.as(_u.Configuration).registerDefaultConfigurations([{overrides:{\"[plaintext]\":{\"editor.unicodeHighlight.ambiguousCharacters\":!1,\"editor.unicodeHighlight.invisibleCharacters\":!1}}}]);class oOe{constructor(e,t){this.languageId=e;const i=t.brackets?HY(t.brackets):[],s=new lY(a=>{const l=new Set;return{info:new rOe(this,a,l),closing:l}}),o=new lY(a=>{const l=new Set,c=new Set;return{info:new aOe(this,a,l,c),opening:l,openingColorized:c}});for(const[a,l]of i){const c=s.get(a),d=o.get(l);c.closing.add(d.info),d.opening.add(c.info)}const r=t.colorizedBracketPairs?HY(t.colorizedBracketPairs):i.filter(a=>!(a[0]===\"<\"&&a[1]===\">\"));for(const[a,l]of r){const c=s.get(a),d=o.get(l);c.closing.add(d.info),d.openingColorized.add(c.info),d.opening.add(c.info)}this._openingBrackets=new Map([...s.cachedValues].map(([a,l])=>[a,l.info])),this._closingBrackets=new Map([...o.cachedValues].map(([a,l])=>[a,l.info]))}get openingBrackets(){return[...this._openingBrackets.values()]}get closingBrackets(){return[...this._closingBrackets.values()]}getOpeningBracketInfo(e){return this._openingBrackets.get(e)}getClosingBracketInfo(e){return this._closingBrackets.get(e)}getBracketInfo(e){return this.getOpeningBracketInfo(e)||this.getClosingBracketInfo(e)}getBracketRegExp(e){const t=Array.from([...this._openingBrackets.keys(),...this._closingBrackets.keys()]);return gD(t,e)}}function HY(n){return n.filter(([e,t])=>e!==\"\"&&t!==\"\")}class vle{constructor(e,t){this.config=e,this.bracketText=t}get languageId(){return this.config.languageId}}class rOe extends vle{constructor(e,t,i){super(e,t),this.openedBrackets=i,this.isOpeningBracket=!0}}class aOe extends vle{constructor(e,t,i,s){super(e,t),this.openingBrackets=i,this.openingColorizedBrackets=s,this.isOpeningBracket=!1}closes(e){return e.config!==this.config?!1:this.openingBrackets.has(e)}closesColorized(e){return e.config!==this.config?!1:this.openingColorizedBrackets.has(e)}getOpeningBrackets(){return[...this.openingBrackets]}}var lOe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},VY=function(n,e){return function(t,i){e(t,i,n)}};class KF{constructor(e){this.languageId=e}affects(e){return this.languageId?this.languageId===e:!0}}const gn=Jt(\"languageConfigurationService\");let gB=class extends ne{constructor(e,t){super(),this.configurationService=e,this.languageService=t,this._registry=this._register(new hOe),this.onDidChangeEmitter=this._register(new X),this.onDidChange=this.onDidChangeEmitter.event,this.configurations=new Map;const i=new Set(Object.values(pB));this._register(this.configurationService.onDidChangeConfiguration(s=>{const o=s.change.keys.some(a=>i.has(a)),r=s.change.overrides.filter(([a,l])=>l.some(c=>i.has(c))).map(([a])=>a);if(o)this.configurations.clear(),this.onDidChangeEmitter.fire(new KF(void 0));else for(const a of r)this.languageService.isRegisteredLanguageId(a)&&(this.configurations.delete(a),this.onDidChangeEmitter.fire(new KF(a)))})),this._register(this._registry.onDidChange(s=>{this.configurations.delete(s.languageId),this.onDidChangeEmitter.fire(new KF(s.languageId))}))}register(e,t,i){return this._registry.register(e,t,i)}getLanguageConfiguration(e){let t=this.configurations.get(e);return t||(t=cOe(e,this._registry,this.configurationService,this.languageService),this.configurations.set(e,t)),t}};gB=lOe([VY(0,qt),VY(1,An)],gB);function cOe(n,e,t,i){let s=e.getLanguageConfiguration(n);if(!s){if(!i.isRegisteredLanguageId(n))return new Z1(n,{});s=new Z1(n,{})}const o=dOe(s.languageId,t),r=Cle([s.underlyingConfig,o]);return new Z1(s.languageId,r)}const pB={brackets:\"editor.language.brackets\",colorizedBracketPairs:\"editor.language.colorizedBracketPairs\"};function dOe(n,e){const t=e.getValue(pB.brackets,{overrideIdentifier:n}),i=e.getValue(pB.colorizedBracketPairs,{overrideIdentifier:n});return{brackets:zY(t),colorizedBracketPairs:zY(i)}}function zY(n){if(Array.isArray(n))return n.map(e=>{if(!(!Array.isArray(e)||e.length!==2))return[e[0],e[1]]}).filter(e=>!!e)}function ble(n,e,t){const i=n.getLineContent(e);let s=on(i);return s.length>t-1&&(s=s.substring(0,t-1)),s}class uOe{constructor(e){this.languageId=e,this._resolved=null,this._entries=[],this._order=0,this._resolved=null}register(e,t){const i=new $Y(e,t,++this._order);return this._entries.push(i),this._resolved=null,dt(()=>{for(let s=0;s<this._entries.length;s++)if(this._entries[s]===i){this._entries.splice(s,1),this._resolved=null;break}})}getResolvedConfiguration(){if(!this._resolved){const e=this._resolve();e&&(this._resolved=new Z1(this.languageId,e))}return this._resolved}_resolve(){return this._entries.length===0?null:(this._entries.sort($Y.cmp),Cle(this._entries.map(e=>e.configuration)))}}function Cle(n){let e={comments:void 0,brackets:void 0,wordPattern:void 0,indentationRules:void 0,onEnterRules:void 0,autoClosingPairs:void 0,surroundingPairs:void 0,autoCloseBefore:void 0,folding:void 0,colorizedBracketPairs:void 0,__electricCharacterSupport:void 0};for(const t of n)e={comments:t.comments||e.comments,brackets:t.brackets||e.brackets,wordPattern:t.wordPattern||e.wordPattern,indentationRules:t.indentationRules||e.indentationRules,onEnterRules:t.onEnterRules||e.onEnterRules,autoClosingPairs:t.autoClosingPairs||e.autoClosingPairs,surroundingPairs:t.surroundingPairs||e.surroundingPairs,autoCloseBefore:t.autoCloseBefore||e.autoCloseBefore,folding:t.folding||e.folding,colorizedBracketPairs:t.colorizedBracketPairs||e.colorizedBracketPairs,__electricCharacterSupport:t.__electricCharacterSupport||e.__electricCharacterSupport};return e}class $Y{constructor(e,t,i){this.configuration=e,this.priority=t,this.order=i}static cmp(e,t){return e.priority===t.priority?e.order-t.order:e.priority-t.priority}}class UY{constructor(e){this.languageId=e}}class hOe extends ne{constructor(){super(),this._entries=new Map,this._onDidChange=this._register(new X),this.onDidChange=this._onDidChange.event,this._register(this.register(bl,{brackets:[[\"(\",\")\"],[\"[\",\"]\"],[\"{\",\"}\"]],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"`\",close:\"`\"}],colorizedBracketPairs:[],folding:{offSide:!0}},0))}register(e,t,i=0){let s=this._entries.get(e);s||(s=new uOe(e),this._entries.set(e,s));const o=s.register(t,i);return this._onDidChange.fire(new UY(e)),dt(()=>{o.dispose(),this._onDidChange.fire(new UY(e))})}getLanguageConfiguration(e){const t=this._entries.get(e);return(t==null?void 0:t.getResolvedConfiguration())||null}}class Z1{constructor(e,t){this.languageId=e,this.underlyingConfig=t,this._brackets=null,this._electricCharacter=null,this._onEnterSupport=this.underlyingConfig.brackets||this.underlyingConfig.indentationRules||this.underlyingConfig.onEnterRules?new p1(this.underlyingConfig):null,this.comments=Z1._handleComments(this.underlyingConfig),this.characterPair=new AC(this.underlyingConfig),this.wordDefinition=this.underlyingConfig.wordPattern||OV,this.indentationRules=this.underlyingConfig.indentationRules,this.underlyingConfig.indentationRules?this.indentRulesSupport=new KPe(this.underlyingConfig.indentationRules):this.indentRulesSupport=null,this.foldingRules=this.underlyingConfig.folding||{},this.bracketsNew=new oOe(e,this.underlyingConfig)}getWordDefinition(){return FV(this.wordDefinition)}get brackets(){return!this._brackets&&this.underlyingConfig.brackets&&(this._brackets=new WPe(this.languageId,this.underlyingConfig.brackets)),this._brackets}get electricCharacter(){return this._electricCharacter||(this._electricCharacter=new jPe(this.brackets)),this._electricCharacter}onEnter(e,t,i,s){return this._onEnterSupport?this._onEnterSupport.onEnter(e,t,i,s):null}getAutoClosingPairs(){return new NPe(this.characterPair.getAutoClosingPairs())}getAutoCloseBeforeSet(e){return this.characterPair.getAutoCloseBeforeSet(e)}getSurroundingPairs(){return this.characterPair.getSurroundingPairs()}static _handleComments(e){const t=e.comments;if(!t)return null;const i={};if(t.lineComment&&(i.lineCommentToken=t.lineComment),t.blockComment){const[s,o]=t.blockComment;i.blockCommentStartToken=s,i.blockCommentEndToken=o}return i}}ai(gn,gB,1);class mp{constructor(e,t,i,s){this.originalStart=e,this.originalLength=t,this.modifiedStart=i,this.modifiedLength=s}getOriginalEnd(){return this.originalStart+this.originalLength}getModifiedEnd(){return this.modifiedStart+this.modifiedLength}}class jY{constructor(e){this.source=e}getElements(){const e=this.source,t=new Int32Array(e.length);for(let i=0,s=e.length;i<s;i++)t[i]=e.charCodeAt(i);return t}}function fOe(n,e,t){return new Ju(new jY(n),new jY(e)).ComputeDiff(t).changes}class Rb{static Assert(e,t){if(!e)throw new Error(t)}}class Mb{static Copy(e,t,i,s,o){for(let r=0;r<o;r++)i[s+r]=e[t+r]}static Copy2(e,t,i,s,o){for(let r=0;r<o;r++)i[s+r]=e[t+r]}}class KY{constructor(){this.m_changes=[],this.m_originalStart=1073741824,this.m_modifiedStart=1073741824,this.m_originalCount=0,this.m_modifiedCount=0}MarkNextChange(){(this.m_originalCount>0||this.m_modifiedCount>0)&&this.m_changes.push(new mp(this.m_originalStart,this.m_originalCount,this.m_modifiedStart,this.m_modifiedCount)),this.m_originalCount=0,this.m_modifiedCount=0,this.m_originalStart=1073741824,this.m_modifiedStart=1073741824}AddOriginalElement(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_originalCount++}AddModifiedElement(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_modifiedCount++}getChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes}getReverseChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes.reverse(),this.m_changes}}class Ju{constructor(e,t,i=null){this.ContinueProcessingPredicate=i,this._originalSequence=e,this._modifiedSequence=t;const[s,o,r]=Ju._getElements(e),[a,l,c]=Ju._getElements(t);this._hasStrings=r&&c,this._originalStringElements=s,this._originalElementsOrHash=o,this._modifiedStringElements=a,this._modifiedElementsOrHash=l,this.m_forwardHistory=[],this.m_reverseHistory=[]}static _isStringArray(e){return e.length>0&&typeof e[0]==\"string\"}static _getElements(e){const t=e.getElements();if(Ju._isStringArray(t)){const i=new Int32Array(t.length);for(let s=0,o=t.length;s<o;s++)i[s]=tz(t[s],0);return[t,i,!0]}return t instanceof Int32Array?[[],t,!1]:[[],new Int32Array(t),!1]}ElementsAreEqual(e,t){return this._originalElementsOrHash[e]!==this._modifiedElementsOrHash[t]?!1:this._hasStrings?this._originalStringElements[e]===this._modifiedStringElements[t]:!0}ElementsAreStrictEqual(e,t){if(!this.ElementsAreEqual(e,t))return!1;const i=Ju._getStrictElement(this._originalSequence,e),s=Ju._getStrictElement(this._modifiedSequence,t);return i===s}static _getStrictElement(e,t){return typeof e.getStrictElement==\"function\"?e.getStrictElement(t):null}OriginalElementsAreEqual(e,t){return this._originalElementsOrHash[e]!==this._originalElementsOrHash[t]?!1:this._hasStrings?this._originalStringElements[e]===this._originalStringElements[t]:!0}ModifiedElementsAreEqual(e,t){return this._modifiedElementsOrHash[e]!==this._modifiedElementsOrHash[t]?!1:this._hasStrings?this._modifiedStringElements[e]===this._modifiedStringElements[t]:!0}ComputeDiff(e){return this._ComputeDiff(0,this._originalElementsOrHash.length-1,0,this._modifiedElementsOrHash.length-1,e)}_ComputeDiff(e,t,i,s,o){const r=[!1];let a=this.ComputeDiffRecursive(e,t,i,s,r);return o&&(a=this.PrettifyChanges(a)),{quitEarly:r[0],changes:a}}ComputeDiffRecursive(e,t,i,s,o){for(o[0]=!1;e<=t&&i<=s&&this.ElementsAreEqual(e,i);)e++,i++;for(;t>=e&&s>=i&&this.ElementsAreEqual(t,s);)t--,s--;if(e>t||i>s){let u;return i<=s?(Rb.Assert(e===t+1,\"originalStart should only be one more than originalEnd\"),u=[new mp(e,0,i,s-i+1)]):e<=t?(Rb.Assert(i===s+1,\"modifiedStart should only be one more than modifiedEnd\"),u=[new mp(e,t-e+1,i,0)]):(Rb.Assert(e===t+1,\"originalStart should only be one more than originalEnd\"),Rb.Assert(i===s+1,\"modifiedStart should only be one more than modifiedEnd\"),u=[]),u}const r=[0],a=[0],l=this.ComputeRecursionPoint(e,t,i,s,r,a,o),c=r[0],d=a[0];if(l!==null)return l;if(!o[0]){const u=this.ComputeDiffRecursive(e,c,i,d,o);let h=[];return o[0]?h=[new mp(c+1,t-(c+1)+1,d+1,s-(d+1)+1)]:h=this.ComputeDiffRecursive(c+1,t,d+1,s,o),this.ConcatenateChanges(u,h)}return[new mp(e,t-e+1,i,s-i+1)]}WALKTRACE(e,t,i,s,o,r,a,l,c,d,u,h,f,g,p,_,b,w){let y=null,S=null,x=new KY,k=t,D=i,I=f[0]-_[0]-s,N=-1073741824,P=this.m_forwardHistory.length-1;do{const O=I+e;O===k||O<D&&c[O-1]<c[O+1]?(u=c[O+1],g=u-I-s,u<N&&x.MarkNextChange(),N=u,x.AddModifiedElement(u+1,g),I=O+1-e):(u=c[O-1]+1,g=u-I-s,u<N&&x.MarkNextChange(),N=u-1,x.AddOriginalElement(u,g+1),I=O-1-e),P>=0&&(c=this.m_forwardHistory[P],e=c[0],k=1,D=c.length-1)}while(--P>=-1);if(y=x.getReverseChanges(),w[0]){let O=f[0]+1,M=_[0]+1;if(y!==null&&y.length>0){const z=y[y.length-1];O=Math.max(O,z.getOriginalEnd()),M=Math.max(M,z.getModifiedEnd())}S=[new mp(O,h-O+1,M,p-M+1)]}else{x=new KY,k=r,D=a,I=f[0]-_[0]-l,N=1073741824,P=b?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{const O=I+o;O===k||O<D&&d[O-1]>=d[O+1]?(u=d[O+1]-1,g=u-I-l,u>N&&x.MarkNextChange(),N=u+1,x.AddOriginalElement(u+1,g+1),I=O+1-o):(u=d[O-1],g=u-I-l,u>N&&x.MarkNextChange(),N=u,x.AddModifiedElement(u+1,g+1),I=O-1-o),P>=0&&(d=this.m_reverseHistory[P],o=d[0],k=1,D=d.length-1)}while(--P>=-1);S=x.getChanges()}return this.ConcatenateChanges(y,S)}ComputeRecursionPoint(e,t,i,s,o,r,a){let l=0,c=0,d=0,u=0,h=0,f=0;e--,i--,o[0]=0,r[0]=0,this.m_forwardHistory=[],this.m_reverseHistory=[];const g=t-e+(s-i),p=g+1,_=new Int32Array(p),b=new Int32Array(p),w=s-i,y=t-e,S=e-i,x=t-s,D=(y-w)%2===0;_[w]=e,b[y]=t,a[0]=!1;for(let I=1;I<=g/2+1;I++){let N=0,P=0;d=this.ClipDiagonalBound(w-I,I,w,p),u=this.ClipDiagonalBound(w+I,I,w,p);for(let M=d;M<=u;M+=2){M===d||M<u&&_[M-1]<_[M+1]?l=_[M+1]:l=_[M-1]+1,c=l-(M-w)-S;const z=l;for(;l<t&&c<s&&this.ElementsAreEqual(l+1,c+1);)l++,c++;if(_[M]=l,l+c>N+P&&(N=l,P=c),!D&&Math.abs(M-y)<=I-1&&l>=b[M])return o[0]=l,r[0]=c,z<=b[M]&&I<=1448?this.WALKTRACE(w,d,u,S,y,h,f,x,_,b,l,t,o,c,s,r,D,a):null}const O=(N-e+(P-i)-I)/2;if(this.ContinueProcessingPredicate!==null&&!this.ContinueProcessingPredicate(N,O))return a[0]=!0,o[0]=N,r[0]=P,O>0&&I<=1448?this.WALKTRACE(w,d,u,S,y,h,f,x,_,b,l,t,o,c,s,r,D,a):(e++,i++,[new mp(e,t-e+1,i,s-i+1)]);h=this.ClipDiagonalBound(y-I,I,y,p),f=this.ClipDiagonalBound(y+I,I,y,p);for(let M=h;M<=f;M+=2){M===h||M<f&&b[M-1]>=b[M+1]?l=b[M+1]-1:l=b[M-1],c=l-(M-y)-x;const z=l;for(;l>e&&c>i&&this.ElementsAreEqual(l,c);)l--,c--;if(b[M]=l,D&&Math.abs(M-w)<=I&&l<=_[M])return o[0]=l,r[0]=c,z>=_[M]&&I<=1448?this.WALKTRACE(w,d,u,S,y,h,f,x,_,b,l,t,o,c,s,r,D,a):null}if(I<=1447){let M=new Int32Array(u-d+2);M[0]=w-d+1,Mb.Copy2(_,d,M,1,u-d+1),this.m_forwardHistory.push(M),M=new Int32Array(f-h+2),M[0]=y-h+1,Mb.Copy2(b,h,M,1,f-h+1),this.m_reverseHistory.push(M)}}return this.WALKTRACE(w,d,u,S,y,h,f,x,_,b,l,t,o,c,s,r,D,a)}PrettifyChanges(e){for(let t=0;t<e.length;t++){const i=e[t],s=t<e.length-1?e[t+1].originalStart:this._originalElementsOrHash.length,o=t<e.length-1?e[t+1].modifiedStart:this._modifiedElementsOrHash.length,r=i.originalLength>0,a=i.modifiedLength>0;for(;i.originalStart+i.originalLength<s&&i.modifiedStart+i.modifiedLength<o&&(!r||this.OriginalElementsAreEqual(i.originalStart,i.originalStart+i.originalLength))&&(!a||this.ModifiedElementsAreEqual(i.modifiedStart,i.modifiedStart+i.modifiedLength));){const c=this.ElementsAreStrictEqual(i.originalStart,i.modifiedStart);if(this.ElementsAreStrictEqual(i.originalStart+i.originalLength,i.modifiedStart+i.modifiedLength)&&!c)break;i.originalStart++,i.modifiedStart++}const l=[null];if(t<e.length-1&&this.ChangesOverlap(e[t],e[t+1],l)){e[t]=l[0],e.splice(t+1,1),t--;continue}}for(let t=e.length-1;t>=0;t--){const i=e[t];let s=0,o=0;if(t>0){const u=e[t-1];s=u.originalStart+u.originalLength,o=u.modifiedStart+u.modifiedLength}const r=i.originalLength>0,a=i.modifiedLength>0;let l=0,c=this._boundaryScore(i.originalStart,i.originalLength,i.modifiedStart,i.modifiedLength);for(let u=1;;u++){const h=i.originalStart-u,f=i.modifiedStart-u;if(h<s||f<o||r&&!this.OriginalElementsAreEqual(h,h+i.originalLength)||a&&!this.ModifiedElementsAreEqual(f,f+i.modifiedLength))break;const p=(h===s&&f===o?5:0)+this._boundaryScore(h,i.originalLength,f,i.modifiedLength);p>c&&(c=p,l=u)}i.originalStart-=l,i.modifiedStart-=l;const d=[null];if(t>0&&this.ChangesOverlap(e[t-1],e[t],d)){e[t-1]=d[0],e.splice(t,1),t++;continue}}if(this._hasStrings)for(let t=1,i=e.length;t<i;t++){const s=e[t-1],o=e[t],r=o.originalStart-s.originalStart-s.originalLength,a=s.originalStart,l=o.originalStart+o.originalLength,c=l-a,d=s.modifiedStart,u=o.modifiedStart+o.modifiedLength,h=u-d;if(r<5&&c<20&&h<20){const f=this._findBetterContiguousSequence(a,c,d,h,r);if(f){const[g,p]=f;(g!==s.originalStart+s.originalLength||p!==s.modifiedStart+s.modifiedLength)&&(s.originalLength=g-s.originalStart,s.modifiedLength=p-s.modifiedStart,o.originalStart=g+r,o.modifiedStart=p+r,o.originalLength=l-o.originalStart,o.modifiedLength=u-o.modifiedStart)}}}return e}_findBetterContiguousSequence(e,t,i,s,o){if(t<o||s<o)return null;const r=e+t-o+1,a=i+s-o+1;let l=0,c=0,d=0;for(let u=e;u<r;u++)for(let h=i;h<a;h++){const f=this._contiguousSequenceScore(u,h,o);f>0&&f>l&&(l=f,c=u,d=h)}return l>0?[c,d]:null}_contiguousSequenceScore(e,t,i){let s=0;for(let o=0;o<i;o++){if(!this.ElementsAreEqual(e+o,t+o))return 0;s+=this._originalStringElements[e+o].length}return s}_OriginalIsBoundary(e){return e<=0||e>=this._originalElementsOrHash.length-1?!0:this._hasStrings&&/^\\s*$/.test(this._originalStringElements[e])}_OriginalRegionIsBoundary(e,t){if(this._OriginalIsBoundary(e)||this._OriginalIsBoundary(e-1))return!0;if(t>0){const i=e+t;if(this._OriginalIsBoundary(i-1)||this._OriginalIsBoundary(i))return!0}return!1}_ModifiedIsBoundary(e){return e<=0||e>=this._modifiedElementsOrHash.length-1?!0:this._hasStrings&&/^\\s*$/.test(this._modifiedStringElements[e])}_ModifiedRegionIsBoundary(e,t){if(this._ModifiedIsBoundary(e)||this._ModifiedIsBoundary(e-1))return!0;if(t>0){const i=e+t;if(this._ModifiedIsBoundary(i-1)||this._ModifiedIsBoundary(i))return!0}return!1}_boundaryScore(e,t,i,s){const o=this._OriginalRegionIsBoundary(e,t)?1:0,r=this._ModifiedRegionIsBoundary(i,s)?1:0;return o+r}ConcatenateChanges(e,t){const i=[];if(e.length===0||t.length===0)return t.length>0?t:e;if(this.ChangesOverlap(e[e.length-1],t[0],i)){const s=new Array(e.length+t.length-1);return Mb.Copy(e,0,s,0,e.length-1),s[e.length-1]=i[0],Mb.Copy(t,1,s,e.length,t.length-1),s}else{const s=new Array(e.length+t.length);return Mb.Copy(e,0,s,0,e.length),Mb.Copy(t,0,s,e.length,t.length),s}}ChangesOverlap(e,t,i){if(Rb.Assert(e.originalStart<=t.originalStart,\"Left change is not less than or equal to right change\"),Rb.Assert(e.modifiedStart<=t.modifiedStart,\"Left change is not less than or equal to right change\"),e.originalStart+e.originalLength>=t.originalStart||e.modifiedStart+e.modifiedLength>=t.modifiedStart){const s=e.originalStart;let o=e.originalLength;const r=e.modifiedStart;let a=e.modifiedLength;return e.originalStart+e.originalLength>=t.originalStart&&(o=t.originalStart+t.originalLength-e.originalStart),e.modifiedStart+e.modifiedLength>=t.modifiedStart&&(a=t.modifiedStart+t.modifiedLength-e.modifiedStart),i[0]=new mp(s,o,r,a),!0}else return i[0]=null,!1}ClipDiagonalBound(e,t,i,s){if(e>=0&&e<s)return e;const o=i,r=s-i-1,a=t%2===0;if(e<0){const l=o%2===0;return a===l?0:1}else{const l=r%2===0;return a===l?s-1:s-2}}}function U2(n){return n<0?0:n>255?255:n|0}function Pb(n){return n<0?0:n>4294967295?4294967295:n|0}class gOe{constructor(e){this.values=e,this.prefixSum=new Uint32Array(e.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}insertValues(e,t){e=Pb(e);const i=this.values,s=this.prefixSum,o=t.length;return o===0?!1:(this.values=new Uint32Array(i.length+o),this.values.set(i.subarray(0,e),0),this.values.set(i.subarray(e),e+o),this.values.set(t,e),e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),this.prefixSum=new Uint32Array(this.values.length),this.prefixSumValidIndex[0]>=0&&this.prefixSum.set(s.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}setValue(e,t){return e=Pb(e),t=Pb(t),this.values[e]===t?!1:(this.values[e]=t,e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),!0)}removeValues(e,t){e=Pb(e),t=Pb(t);const i=this.values,s=this.prefixSum;if(e>=i.length)return!1;const o=i.length-e;return t>=o&&(t=o),t===0?!1:(this.values=new Uint32Array(i.length-t),this.values.set(i.subarray(0,e),0),this.values.set(i.subarray(e+t),e),this.prefixSum=new Uint32Array(this.values.length),e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),this.prefixSumValidIndex[0]>=0&&this.prefixSum.set(s.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}getTotalSum(){return this.values.length===0?0:this._getPrefixSum(this.values.length-1)}getPrefixSum(e){return e<0?0:(e=Pb(e),this._getPrefixSum(e))}_getPrefixSum(e){if(e<=this.prefixSumValidIndex[0])return this.prefixSum[e];let t=this.prefixSumValidIndex[0]+1;t===0&&(this.prefixSum[0]=this.values[0],t++),e>=this.values.length&&(e=this.values.length-1);for(let i=t;i<=e;i++)this.prefixSum[i]=this.prefixSum[i-1]+this.values[i];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],e),this.prefixSum[e]}getIndexOf(e){e=Math.floor(e),this.getTotalSum();let t=0,i=this.values.length-1,s=0,o=0,r=0;for(;t<=i;)if(s=t+(i-t)/2|0,o=this.prefixSum[s],r=o-this.values[s],e<r)i=s-1;else if(e>=o)t=s+1;else break;return new wle(s,e-r)}}class pOe{constructor(e){this._values=e,this._isValid=!1,this._validEndIndex=-1,this._prefixSum=[],this._indexBySum=[]}getTotalSum(){return this._ensureValid(),this._indexBySum.length}getPrefixSum(e){return this._ensureValid(),e===0?0:this._prefixSum[e-1]}getIndexOf(e){this._ensureValid();const t=this._indexBySum[e],i=t>0?this._prefixSum[t-1]:0;return new wle(t,e-i)}removeValues(e,t){this._values.splice(e,t),this._invalidate(e)}insertValues(e,t){this._values=eM(this._values,e,t),this._invalidate(e)}_invalidate(e){this._isValid=!1,this._validEndIndex=Math.min(this._validEndIndex,e-1)}_ensureValid(){if(!this._isValid){for(let e=this._validEndIndex+1,t=this._values.length;e<t;e++){const i=this._values[e],s=e>0?this._prefixSum[e-1]:0;this._prefixSum[e]=s+i;for(let o=0;o<i;o++)this._indexBySum[s+o]=e}this._prefixSum.length=this._values.length,this._indexBySum.length=this._prefixSum[this._prefixSum.length-1],this._isValid=!0,this._validEndIndex=this._values.length-1}}setValue(e,t){this._values[e]!==t&&(this._values[e]=t,this._invalidate(e))}}class wle{constructor(e,t){this.index=e,this.remainder=t,this._prefixSumIndexOfResultBrand=void 0,this.index=e,this.remainder=t}}class mOe{constructor(e,t,i,s){this._uri=e,this._lines=t,this._eol=i,this._versionId=s,this._lineStarts=null,this._cachedTextValue=null}dispose(){this._lines.length=0}get version(){return this._versionId}getText(){return this._cachedTextValue===null&&(this._cachedTextValue=this._lines.join(this._eol)),this._cachedTextValue}onEvents(e){e.eol&&e.eol!==this._eol&&(this._eol=e.eol,this._lineStarts=null);const t=e.changes;for(const i of t)this._acceptDeleteRange(i.range),this._acceptInsertText(new ee(i.range.startLineNumber,i.range.startColumn),i.text);this._versionId=e.versionId,this._cachedTextValue=null}_ensureLineStarts(){if(!this._lineStarts){const e=this._eol.length,t=this._lines.length,i=new Uint32Array(t);for(let s=0;s<t;s++)i[s]=this._lines[s].length+e;this._lineStarts=new gOe(i)}}_setLineText(e,t){this._lines[e]=t,this._lineStarts&&this._lineStarts.setValue(e,this._lines[e].length+this._eol.length)}_acceptDeleteRange(e){if(e.startLineNumber===e.endLineNumber){if(e.startColumn===e.endColumn)return;this._setLineText(e.startLineNumber-1,this._lines[e.startLineNumber-1].substring(0,e.startColumn-1)+this._lines[e.startLineNumber-1].substring(e.endColumn-1));return}this._setLineText(e.startLineNumber-1,this._lines[e.startLineNumber-1].substring(0,e.startColumn-1)+this._lines[e.endLineNumber-1].substring(e.endColumn-1)),this._lines.splice(e.startLineNumber,e.endLineNumber-e.startLineNumber),this._lineStarts&&this._lineStarts.removeValues(e.startLineNumber,e.endLineNumber-e.startLineNumber)}_acceptInsertText(e,t){if(t.length===0)return;const i=Wh(t);if(i.length===1){this._setLineText(e.lineNumber-1,this._lines[e.lineNumber-1].substring(0,e.column-1)+i[0]+this._lines[e.lineNumber-1].substring(e.column-1));return}i[i.length-1]+=this._lines[e.lineNumber-1].substring(e.column-1),this._setLineText(e.lineNumber-1,this._lines[e.lineNumber-1].substring(0,e.column-1)+i[0]);const s=new Uint32Array(i.length-1);for(let o=1;o<i.length;o++)this._lines.splice(e.lineNumber+o-1,0,i[o]),s[o-1]=i[o].length+this._eol.length;this._lineStarts&&this._lineStarts.insertValues(e.lineNumber,s)}}class Fw{constructor(e){const t=U2(e);this._defaultValue=t,this._asciiMap=Fw._createAsciiMap(t),this._map=new Map}static _createAsciiMap(e){const t=new Uint8Array(256);return t.fill(e),t}set(e,t){const i=U2(t);e>=0&&e<256?this._asciiMap[e]=i:this._map.set(e,i)}get(e){return e>=0&&e<256?this._asciiMap[e]:this._map.get(e)||this._defaultValue}clear(){this._asciiMap.fill(this._defaultValue),this._map.clear()}}class j2{constructor(){this._actual=new Fw(0)}add(e){this._actual.set(e,1)}has(e){return this._actual.get(e)===1}clear(){return this._actual.clear()}}class _Oe{constructor(e,t,i){const s=new Uint8Array(e*t);for(let o=0,r=e*t;o<r;o++)s[o]=i;this._data=s,this.rows=e,this.cols=t}get(e,t){return this._data[e*this.cols+t]}set(e,t,i){this._data[e*this.cols+t]=i}}class vOe{constructor(e){let t=0,i=0;for(let o=0,r=e.length;o<r;o++){const[a,l,c]=e[o];l>t&&(t=l),a>i&&(i=a),c>i&&(i=c)}t++,i++;const s=new _Oe(i,t,0);for(let o=0,r=e.length;o<r;o++){const[a,l,c]=e[o];s.set(a,l,c)}this._states=s,this._maxCharCode=t}nextState(e,t){return t<0||t>=this._maxCharCode?0:this._states.get(e,t)}}let qF=null;function bOe(){return qF===null&&(qF=new vOe([[1,104,2],[1,72,2],[1,102,6],[1,70,6],[2,116,3],[2,84,3],[3,116,4],[3,84,4],[4,112,5],[4,80,5],[5,115,9],[5,83,9],[5,58,10],[6,105,7],[6,73,7],[7,108,8],[7,76,8],[8,101,9],[8,69,9],[9,58,10],[10,47,11],[11,47,12]])),qF}let Ry=null;function COe(){if(Ry===null){Ry=new Fw(0);const n=` \t<>'\"、。｡､，．：；‘〈「『〔（［｛｢｣｝］）〕』」〉’｀～…`;for(let t=0;t<n.length;t++)Ry.set(n.charCodeAt(t),1);const e=\".,;:\";for(let t=0;t<e.length;t++)Ry.set(e.charCodeAt(t),2)}return Ry}class K2{static _createLink(e,t,i,s,o){let r=o-1;do{const a=t.charCodeAt(r);if(e.get(a)!==2)break;r--}while(r>s);if(s>0){const a=t.charCodeAt(s-1),l=t.charCodeAt(r);(a===40&&l===41||a===91&&l===93||a===123&&l===125)&&r--}return{range:{startLineNumber:i,startColumn:s+1,endLineNumber:i,endColumn:r+2},url:t.substring(s,r+1)}}static computeLinks(e,t=bOe()){const i=COe(),s=[];for(let o=1,r=e.getLineCount();o<=r;o++){const a=e.getLineContent(o),l=a.length;let c=0,d=0,u=0,h=1,f=!1,g=!1,p=!1,_=!1;for(;c<l;){let b=!1;const w=a.charCodeAt(c);if(h===13){let y;switch(w){case 40:f=!0,y=0;break;case 41:y=f?0:1;break;case 91:p=!0,g=!0,y=0;break;case 93:p=!1,y=g?0:1;break;case 123:_=!0,y=0;break;case 125:y=_?0:1;break;case 39:case 34:case 96:u===w?y=1:u===39||u===34||u===96?y=0:y=1;break;case 42:y=u===42?1:0;break;case 124:y=u===124?1:0;break;case 32:y=p?0:1;break;default:y=i.get(w)}y===1&&(s.push(K2._createLink(i,a,o,d,c)),b=!0)}else if(h===12){let y;w===91?(g=!0,y=0):y=i.get(w),y===1?b=!0:h=13}else h=t.nextState(h,w),h===0&&(b=!0);b&&(h=1,f=!1,g=!1,_=!1,d=c+1,u=w),c++}h===13&&s.push(K2._createLink(i,a,o,d,l))}return s}}function wOe(n){return!n||typeof n.getLineCount!=\"function\"||typeof n.getLineContent!=\"function\"?[]:K2.computeLinks(n)}class mB{constructor(){this._defaultValueSet=[[\"true\",\"false\"],[\"True\",\"False\"],[\"Private\",\"Public\",\"Friend\",\"ReadOnly\",\"Partial\",\"Protected\",\"WriteOnly\"],[\"public\",\"protected\",\"private\"]]}navigateValueSet(e,t,i,s,o){if(e&&t){const r=this.doNavigateValueSet(t,o);if(r)return{range:e,value:r}}if(i&&s){const r=this.doNavigateValueSet(s,o);if(r)return{range:i,value:r}}return null}doNavigateValueSet(e,t){const i=this.numberReplace(e,t);return i!==null?i:this.textReplace(e,t)}numberReplace(e,t){const i=Math.pow(10,e.length-(e.lastIndexOf(\".\")+1));let s=Number(e);const o=parseFloat(e);return!isNaN(s)&&!isNaN(o)&&s===o?s===0&&!t?null:(s=Math.floor(s*i),s+=t?i:-i,String(s/i)):null}textReplace(e,t){return this.valueSetsReplace(this._defaultValueSet,e,t)}valueSetsReplace(e,t,i){let s=null;for(let o=0,r=e.length;s===null&&o<r;o++)s=this.valueSetReplace(e[o],t,i);return s}valueSetReplace(e,t,i){let s=e.indexOf(t);return s>=0?(s+=i?1:-1,s<0?s=e.length-1:s%=e.length,e[s]):null}}mB.INSTANCE=new mB;var qY,GY;class yOe{constructor(e,t){this.uri=e,this.value=t}}function SOe(n){return Array.isArray(n)}class hs{constructor(e,t){if(this[qY]=\"ResourceMap\",e instanceof hs)this.map=new Map(e.map),this.toKey=t??hs.defaultToKey;else if(SOe(e)){this.map=new Map,this.toKey=t??hs.defaultToKey;for(const[i,s]of e)this.set(i,s)}else this.map=new Map,this.toKey=e??hs.defaultToKey}set(e,t){return this.map.set(this.toKey(e),new yOe(e,t)),this}get(e){var t;return(t=this.map.get(this.toKey(e)))===null||t===void 0?void 0:t.value}has(e){return this.map.has(this.toKey(e))}get size(){return this.map.size}clear(){this.map.clear()}delete(e){return this.map.delete(this.toKey(e))}forEach(e,t){typeof t<\"u\"&&(e=e.bind(t));for(const[i,s]of this.map)e(s.value,s.uri,this)}*values(){for(const e of this.map.values())yield e.value}*keys(){for(const e of this.map.values())yield e.uri}*entries(){for(const e of this.map.values())yield[e.uri,e.value]}*[(qY=Symbol.toStringTag,Symbol.iterator)](){for(const[,e]of this.map)yield[e.uri,e.value]}}hs.defaultToKey=n=>n.toString();class xOe{constructor(){this[GY]=\"LinkedMap\",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){var e;return(e=this._head)===null||e===void 0?void 0:e.value}get last(){var e;return(e=this._tail)===null||e===void 0?void 0:e.value}has(e){return this._map.has(e)}get(e,t=0){const i=this._map.get(e);if(i)return t!==0&&this.touch(i,t),i.value}set(e,t,i=0){let s=this._map.get(e);if(s)s.value=t,i!==0&&this.touch(s,i);else{switch(s={key:e,value:t,next:void 0,previous:void 0},i){case 0:this.addItemLast(s);break;case 1:this.addItemFirst(s);break;case 2:this.addItemLast(s);break;default:this.addItemLast(s);break}this._map.set(e,s),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){const t=this._map.get(e);if(t)return this._map.delete(e),this.removeItem(t),this._size--,t.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error(\"Invalid list\");const e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,t){const i=this._state;let s=this._head;for(;s;){if(t?e.bind(t)(s.value,s.key,this):e(s.value,s.key,this),this._state!==i)throw new Error(\"LinkedMap got modified during iteration.\");s=s.next}}keys(){const e=this,t=this._state;let i=this._head;const s={[Symbol.iterator](){return s},next(){if(e._state!==t)throw new Error(\"LinkedMap got modified during iteration.\");if(i){const o={value:i.key,done:!1};return i=i.next,o}else return{value:void 0,done:!0}}};return s}values(){const e=this,t=this._state;let i=this._head;const s={[Symbol.iterator](){return s},next(){if(e._state!==t)throw new Error(\"LinkedMap got modified during iteration.\");if(i){const o={value:i.value,done:!1};return i=i.next,o}else return{value:void 0,done:!0}}};return s}entries(){const e=this,t=this._state;let i=this._head;const s={[Symbol.iterator](){return s},next(){if(e._state!==t)throw new Error(\"LinkedMap got modified during iteration.\");if(i){const o={value:[i.key,i.value],done:!1};return i=i.next,o}else return{value:void 0,done:!0}}};return s}[(GY=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(e===0){this.clear();return}let t=this._head,i=this.size;for(;t&&i>e;)this._map.delete(t.key),t=t.next,i--;this._head=t,this._size=i,t&&(t.previous=void 0),this._state++}trimNew(e){if(e>=this.size)return;if(e===0){this.clear();return}let t=this._tail,i=this.size;for(;t&&i>e;)this._map.delete(t.key),t=t.previous,i--;this._tail=t,this._size=i,t&&(t.next=void 0),this._state++}addItemFirst(e){if(!this._head&&!this._tail)this._tail=e;else if(this._head)e.next=this._head,this._head.previous=e;else throw new Error(\"Invalid list\");this._head=e,this._state++}addItemLast(e){if(!this._head&&!this._tail)this._head=e;else if(this._tail)e.previous=this._tail,this._tail.next=e;else throw new Error(\"Invalid list\");this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw new Error(\"Invalid list\");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error(\"Invalid list\");e.previous.next=void 0,this._tail=e.previous}else{const t=e.next,i=e.previous;if(!t||!i)throw new Error(\"Invalid list\");t.previous=i,i.next=t}e.next=void 0,e.previous=void 0,this._state++}touch(e,t){if(!this._head||!this._tail)throw new Error(\"Invalid list\");if(!(t!==1&&t!==2)){if(t===1){if(e===this._head)return;const i=e.next,s=e.previous;e===this._tail?(s.next=void 0,this._tail=s):(i.previous=s,s.next=i),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(t===2){if(e===this._tail)return;const i=e.next,s=e.previous;e===this._head?(i.previous=void 0,this._head=i):(i.previous=s,s.next=i),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){const e=[];return this.forEach((t,i)=>{e.push([i,t])}),e}fromJSON(e){this.clear();for(const[t,i]of e)this.set(t,i)}}class LOe extends xOe{constructor(e,t=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,t),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get(e,t=2){return super.get(e,t)}peek(e){return super.get(e,0)}set(e,t){return super.set(e,t,2),this}checkTrim(){this.size>this._limit&&this.trim(Math.round(this._limit*this._ratio))}}class zh extends LOe{constructor(e,t=1){super(e,t)}trim(e){this.trimOld(e)}set(e,t){return super.set(e,t),this.checkTrim(),this}}class kOe{constructor(e){if(this._m1=new Map,this._m2=new Map,e)for(const[t,i]of e)this.set(t,i)}clear(){this._m1.clear(),this._m2.clear()}set(e,t){this._m1.set(e,t),this._m2.set(t,e)}get(e){return this._m1.get(e)}getKey(e){return this._m2.get(e)}delete(e){const t=this._m1.get(e);return t===void 0?!1:(this._m1.delete(e),this._m2.delete(t),!0)}keys(){return this._m1.keys()}values(){return this._m1.values()}}class uz{constructor(){this.map=new Map}add(e,t){let i=this.map.get(e);i||(i=new Set,this.map.set(e,i)),i.add(t)}delete(e,t){const i=this.map.get(e);i&&(i.delete(t),i.size===0&&this.map.delete(e))}forEach(e,t){const i=this.map.get(e);i&&i.forEach(t)}get(e){const t=this.map.get(e);return t||new Set}}class DOe extends Fw{constructor(e,t){super(0),this._segmenter=null,this._cachedLine=null,this._cachedSegments=[],this.intlSegmenterLocales=t,this.intlSegmenterLocales.length>0?this._segmenter=new Intl.Segmenter(this.intlSegmenterLocales,{granularity:\"word\"}):this._segmenter=null;for(let i=0,s=e.length;i<s;i++)this.set(e.charCodeAt(i),2);this.set(32,1),this.set(9,1)}findPrevIntlWordBeforeOrAtOffset(e,t){let i=null;for(const s of this._getIntlSegmenterWordsOnLine(e)){if(s.index>t)break;i=s}return i}findNextIntlWordAtOrAfterOffset(e,t){for(const i of this._getIntlSegmenterWordsOnLine(e))if(!(i.index<t))return i;return null}_getIntlSegmenterWordsOnLine(e){return this._segmenter?this._cachedLine===e?this._cachedSegments:(this._cachedLine=e,this._cachedSegments=this._filterWordSegments(this._segmenter.segment(e)),this._cachedSegments):[]}_filterWordSegments(e){const t=[];for(const i of e)this._isWordLike(i)&&t.push(i);return t}_isWordLike(e){return!!e.isWordLike}}const ZY=new zh(10);function cc(n,e){const t=`${n}/${e.join(\",\")}`;let i=ZY.get(t);return i||(i=new DOe(n,e),ZY.set(t,i)),i}var Sl;(function(n){n[n.Left=1]=\"Left\",n[n.Center=2]=\"Center\",n[n.Right=4]=\"Right\",n[n.Full=7]=\"Full\"})(Sl||(Sl={}));var Dh;(function(n){n[n.Left=1]=\"Left\",n[n.Center=2]=\"Center\",n[n.Right=3]=\"Right\"})(Dh||(Dh={}));var qc;(function(n){n[n.Both=0]=\"Both\",n[n.Right=1]=\"Right\",n[n.Left=2]=\"Left\",n[n.None=3]=\"None\"})(qc||(qc={}));class gN{get originalIndentSize(){return this._indentSizeIsTabSize?\"tabSize\":this.indentSize}constructor(e){this._textModelResolvedOptionsBrand=void 0,this.tabSize=Math.max(1,e.tabSize|0),e.indentSize===\"tabSize\"?(this.indentSize=this.tabSize,this._indentSizeIsTabSize=!0):(this.indentSize=Math.max(1,e.indentSize|0),this._indentSizeIsTabSize=!1),this.insertSpaces=!!e.insertSpaces,this.defaultEOL=e.defaultEOL|0,this.trimAutoWhitespace=!!e.trimAutoWhitespace,this.bracketPairColorizationOptions=e.bracketPairColorizationOptions}equals(e){return this.tabSize===e.tabSize&&this._indentSizeIsTabSize===e._indentSizeIsTabSize&&this.indentSize===e.indentSize&&this.insertSpaces===e.insertSpaces&&this.defaultEOL===e.defaultEOL&&this.trimAutoWhitespace===e.trimAutoWhitespace&&vl(this.bracketPairColorizationOptions,e.bracketPairColorizationOptions)}createChangeEvent(e){return{tabSize:this.tabSize!==e.tabSize,indentSize:this.indentSize!==e.indentSize,insertSpaces:this.insertSpaces!==e.insertSpaces,trimAutoWhitespace:this.trimAutoWhitespace!==e.trimAutoWhitespace}}}class pL{constructor(e,t){this._findMatchBrand=void 0,this.range=e,this.matches=t}}function IOe(n){return n&&typeof n.read==\"function\"}class GF{constructor(e,t,i,s,o,r){this.identifier=e,this.range=t,this.text=i,this.forceMoveMarkers=s,this.isAutoWhitespaceEdit=o,this._isTracked=r}}class EOe{constructor(e,t,i){this.regex=e,this.wordSeparators=t,this.simpleSearch=i}}class TOe{constructor(e,t,i){this.reverseEdits=e,this.changes=t,this.trimAutoWhitespaceLineNumbers=i}}function yle(n){return!n.isTooLargeForSyncing()&&!n.isForSimpleWidget}const NOe=999;class nv{constructor(e,t,i,s){this.searchString=e,this.isRegex=t,this.matchCase=i,this.wordSeparators=s}parseSearchRequest(){if(this.searchString===\"\")return null;let e;this.isRegex?e=AOe(this.searchString):e=this.searchString.indexOf(`\n`)>=0;let t=null;try{t=bae(this.searchString,this.isRegex,{matchCase:this.matchCase,wholeWord:!1,multiline:e,global:!0,unicode:!0})}catch{return null}if(!t)return null;let i=!this.isRegex&&!e;return i&&this.searchString.toLowerCase()!==this.searchString.toUpperCase()&&(i=this.matchCase),new EOe(t,this.wordSeparators?cc(this.wordSeparators,[]):null,i?this.searchString:null)}}function AOe(n){if(!n||n.length===0)return!1;for(let e=0,t=n.length;e<t;e++){const i=n.charCodeAt(e);if(i===10)return!0;if(i===92){if(e++,e>=t)break;const s=n.charCodeAt(e);if(s===110||s===114||s===87)return!0}}return!1}function uv(n,e,t){if(!t)return new pL(n,null);const i=[];for(let s=0,o=e.length;s<o;s++)i[s]=e[s];return new pL(n,i)}class YY{constructor(e){const t=[];let i=0;for(let s=0,o=e.length;s<o;s++)e.charCodeAt(s)===10&&(t[i++]=s);this._lineFeedsOffsets=t}findLineFeedCountBeforeOffset(e){const t=this._lineFeedsOffsets;let i=0,s=t.length-1;if(s===-1||e<=t[0])return 0;for(;i<s;){const o=i+((s-i)/2>>0);t[o]>=e?s=o-1:t[o+1]>=e?(i=o,s=o):i=o+1}return i+1}}class EE{static findMatches(e,t,i,s,o){const r=t.parseSearchRequest();return r?r.regex.multiline?this._doFindMatchesMultiline(e,i,new m1(r.wordSeparators,r.regex),s,o):this._doFindMatchesLineByLine(e,i,r,s,o):[]}static _getMultilineMatchRange(e,t,i,s,o,r){let a,l=0;s?(l=s.findLineFeedCountBeforeOffset(o),a=t+o+l):a=t+o;let c;if(s){const f=s.findLineFeedCountBeforeOffset(o+r.length)-l;c=a+r.length+f}else c=a+r.length;const d=e.getPositionAt(a),u=e.getPositionAt(c);return new A(d.lineNumber,d.column,u.lineNumber,u.column)}static _doFindMatchesMultiline(e,t,i,s,o){const r=e.getOffsetAt(t.getStartPosition()),a=e.getValueInRange(t,1),l=e.getEOL()===`\\r\n`?new YY(a):null,c=[];let d=0,u;for(i.reset(0);u=i.next(a);)if(c[d++]=uv(this._getMultilineMatchRange(e,r,a,l,u.index,u[0]),u,s),d>=o)return c;return c}static _doFindMatchesLineByLine(e,t,i,s,o){const r=[];let a=0;if(t.startLineNumber===t.endLineNumber){const c=e.getLineContent(t.startLineNumber).substring(t.startColumn-1,t.endColumn-1);return a=this._findMatchesInLine(i,c,t.startLineNumber,t.startColumn-1,a,r,s,o),r}const l=e.getLineContent(t.startLineNumber).substring(t.startColumn-1);a=this._findMatchesInLine(i,l,t.startLineNumber,t.startColumn-1,a,r,s,o);for(let c=t.startLineNumber+1;c<t.endLineNumber&&a<o;c++)a=this._findMatchesInLine(i,e.getLineContent(c),c,0,a,r,s,o);if(a<o){const c=e.getLineContent(t.endLineNumber).substring(0,t.endColumn-1);a=this._findMatchesInLine(i,c,t.endLineNumber,0,a,r,s,o)}return r}static _findMatchesInLine(e,t,i,s,o,r,a,l){const c=e.wordSeparators;if(!a&&e.simpleSearch){const h=e.simpleSearch,f=h.length,g=t.length;let p=-f;for(;(p=t.indexOf(h,p+f))!==-1;)if((!c||hz(c,t,g,p,f))&&(r[o++]=new pL(new A(i,p+1+s,i,p+1+f+s),null),o>=l))return o;return o}const d=new m1(e.wordSeparators,e.regex);let u;d.reset(0);do if(u=d.next(t),u&&(r[o++]=uv(new A(i,u.index+1+s,i,u.index+1+u[0].length+s),u,a),o>=l))return o;while(u);return o}static findNextMatch(e,t,i,s){const o=t.parseSearchRequest();if(!o)return null;const r=new m1(o.wordSeparators,o.regex);return o.regex.multiline?this._doFindNextMatchMultiline(e,i,r,s):this._doFindNextMatchLineByLine(e,i,r,s)}static _doFindNextMatchMultiline(e,t,i,s){const o=new ee(t.lineNumber,1),r=e.getOffsetAt(o),a=e.getLineCount(),l=e.getValueInRange(new A(o.lineNumber,o.column,a,e.getLineMaxColumn(a)),1),c=e.getEOL()===`\\r\n`?new YY(l):null;i.reset(t.column-1);const d=i.next(l);return d?uv(this._getMultilineMatchRange(e,r,l,c,d.index,d[0]),d,s):t.lineNumber!==1||t.column!==1?this._doFindNextMatchMultiline(e,new ee(1,1),i,s):null}static _doFindNextMatchLineByLine(e,t,i,s){const o=e.getLineCount(),r=t.lineNumber,a=e.getLineContent(r),l=this._findFirstMatchInLine(i,a,r,t.column,s);if(l)return l;for(let c=1;c<=o;c++){const d=(r+c-1)%o,u=e.getLineContent(d+1),h=this._findFirstMatchInLine(i,u,d+1,1,s);if(h)return h}return null}static _findFirstMatchInLine(e,t,i,s,o){e.reset(s-1);const r=e.next(t);return r?uv(new A(i,r.index+1,i,r.index+1+r[0].length),r,o):null}static findPreviousMatch(e,t,i,s){const o=t.parseSearchRequest();if(!o)return null;const r=new m1(o.wordSeparators,o.regex);return o.regex.multiline?this._doFindPreviousMatchMultiline(e,i,r,s):this._doFindPreviousMatchLineByLine(e,i,r,s)}static _doFindPreviousMatchMultiline(e,t,i,s){const o=this._doFindMatchesMultiline(e,new A(1,1,t.lineNumber,t.column),i,s,10*NOe);if(o.length>0)return o[o.length-1];const r=e.getLineCount();return t.lineNumber!==r||t.column!==e.getLineMaxColumn(r)?this._doFindPreviousMatchMultiline(e,new ee(r,e.getLineMaxColumn(r)),i,s):null}static _doFindPreviousMatchLineByLine(e,t,i,s){const o=e.getLineCount(),r=t.lineNumber,a=e.getLineContent(r).substring(0,t.column-1),l=this._findLastMatchInLine(i,a,r,s);if(l)return l;for(let c=1;c<=o;c++){const d=(o+r-c-1)%o,u=e.getLineContent(d+1),h=this._findLastMatchInLine(i,u,d+1,s);if(h)return h}return null}static _findLastMatchInLine(e,t,i,s){let o=null,r;for(e.reset(0);r=e.next(t);)o=uv(new A(i,r.index+1,i,r.index+1+r[0].length),r,s);return o}}function ROe(n,e,t,i,s){if(i===0)return!0;const o=e.charCodeAt(i-1);if(n.get(o)!==0||o===13||o===10)return!0;if(s>0){const r=e.charCodeAt(i);if(n.get(r)!==0)return!0}return!1}function MOe(n,e,t,i,s){if(i+s===t)return!0;const o=e.charCodeAt(i+s);if(n.get(o)!==0||o===13||o===10)return!0;if(s>0){const r=e.charCodeAt(i+s-1);if(n.get(r)!==0)return!0}return!1}function hz(n,e,t,i,s){return ROe(n,e,t,i,s)&&MOe(n,e,t,i,s)}class m1{constructor(e,t){this._wordSeparators=e,this._searchRegex=t,this._prevMatchStartIndex=-1,this._prevMatchLength=0}reset(e){this._searchRegex.lastIndex=e,this._prevMatchStartIndex=-1,this._prevMatchLength=0}next(e){const t=e.length;let i;do{if(this._prevMatchStartIndex+this._prevMatchLength===t||(i=this._searchRegex.exec(e),!i))return null;const s=i.index,o=i[0].length;if(s===this._prevMatchStartIndex&&o===this._prevMatchLength){if(o===0){P2(e,t,this._searchRegex.lastIndex)>65535?this._searchRegex.lastIndex+=2:this._searchRegex.lastIndex+=1;continue}return null}if(this._prevMatchStartIndex=s,this._prevMatchLength=o,!this._wordSeparators||hz(this._wordSeparators,e,t,s,o))return i}while(i);return null}}class fz{static computeUnicodeHighlights(e,t,i){const s=i?i.startLineNumber:1,o=i?i.endLineNumber:e.getLineCount(),r=new XY(t),a=r.getCandidateCodePoints();let l;a===\"allNonBasicAscii\"?l=new RegExp(\"[^\\\\t\\\\n\\\\r\\\\x20-\\\\x7E]\",\"g\"):l=new RegExp(`${POe(Array.from(a))}`,\"g\");const c=new m1(null,l),d=[];let u=!1,h,f=0,g=0,p=0;e:for(let _=s,b=o;_<=b;_++){const w=e.getLineContent(_),y=w.length;c.reset(0);do if(h=c.next(w),h){let S=h.index,x=h.index+h[0].length;if(S>0){const N=w.charCodeAt(S-1);Gs(N)&&S--}if(x+1<y){const N=w.charCodeAt(x-1);Gs(N)&&x++}const k=w.substring(S,x);let D=sL(S+1,OV,w,0);D&&D.endColumn<=S+1&&(D=null);const I=r.shouldHighlightNonBasicASCII(k,D?D.word:null);if(I!==0){if(I===3?f++:I===2?g++:I===1?p++:yM(),d.length>=1e3){u=!0;break e}d.push(new A(_,S+1,_,x+1))}}while(h)}return{ranges:d,hasMore:u,ambiguousCharacterCount:f,invisibleCharacterCount:g,nonBasicAsciiCharacterCount:p}}static computeUnicodeHighlightReason(e,t){const i=new XY(t);switch(i.shouldHighlightNonBasicASCII(e,null)){case 0:return null;case 2:return{kind:1};case 3:{const o=e.codePointAt(0),r=i.ambiguousCharacters.getPrimaryConfusable(o),a=d0.getLocales().filter(l=>!d0.getInstance(new Set([...t.allowedLocales,l])).isAmbiguous(o));return{kind:0,confusableWith:String.fromCodePoint(r),notAmbiguousInLocales:a}}case 1:return{kind:2}}}}function POe(n,e){return`[${wl(n.map(i=>String.fromCodePoint(i)).join(\"\"))}]`}class XY{constructor(e){this.options=e,this.allowedCodePoints=new Set(e.allowedCodePoints),this.ambiguousCharacters=d0.getInstance(new Set(e.allowedLocales))}getCandidateCodePoints(){if(this.options.nonBasicASCII)return\"allNonBasicAscii\";const e=new Set;if(this.options.invisibleCharacters)for(const t of mh.codePoints)QY(String.fromCodePoint(t))||e.add(t);if(this.options.ambiguousCharacters)for(const t of this.ambiguousCharacters.getConfusableCodePoints())e.add(t);for(const t of this.allowedCodePoints)e.delete(t);return e}shouldHighlightNonBasicASCII(e,t){const i=e.codePointAt(0);if(this.allowedCodePoints.has(i))return 0;if(this.options.nonBasicASCII)return 1;let s=!1,o=!1;if(t)for(const r of t){const a=r.codePointAt(0),l=cD(r);s=s||l,!l&&!this.ambiguousCharacters.isAmbiguous(a)&&!mh.isInvisibleCharacter(a)&&(o=!0)}return!s&&o?0:this.options.invisibleCharacters&&!QY(e)&&mh.isInvisibleCharacter(i)?2:this.options.ambiguousCharacters&&this.ambiguousCharacters.isAmbiguous(i)?3:0}}function QY(n){return n===\" \"||n===`\n`||n===\"\t\"}class pN{constructor(e,t,i){this.changes=e,this.moves=t,this.hitTimeout=i}}class Sle{constructor(e,t){this.lineRangeMapping=e,this.changes=t}}class zt{static addRange(e,t){let i=0;for(;i<t.length&&t[i].endExclusive<e.start;)i++;let s=i;for(;s<t.length&&t[s].start<=e.endExclusive;)s++;if(i===s)t.splice(i,0,e);else{const o=Math.min(e.start,t[i].start),r=Math.max(e.endExclusive,t[s-1].endExclusive);t.splice(i,s-i,new zt(o,r))}}static tryCreate(e,t){if(!(e>t))return new zt(e,t)}static ofLength(e){return new zt(0,e)}static ofStartAndLength(e,t){return new zt(e,e+t)}constructor(e,t){if(this.start=e,this.endExclusive=t,e>t)throw new Gi(`Invalid range: ${this.toString()}`)}get isEmpty(){return this.start===this.endExclusive}delta(e){return new zt(this.start+e,this.endExclusive+e)}deltaStart(e){return new zt(this.start+e,this.endExclusive)}deltaEnd(e){return new zt(this.start,this.endExclusive+e)}get length(){return this.endExclusive-this.start}toString(){return`[${this.start}, ${this.endExclusive})`}contains(e){return this.start<=e&&e<this.endExclusive}join(e){return new zt(Math.min(this.start,e.start),Math.max(this.endExclusive,e.endExclusive))}intersect(e){const t=Math.max(this.start,e.start),i=Math.min(this.endExclusive,e.endExclusive);if(t<=i)return new zt(t,i)}intersects(e){const t=Math.max(this.start,e.start),i=Math.min(this.endExclusive,e.endExclusive);return t<i}isBefore(e){return this.endExclusive<=e.start}isAfter(e){return this.start>=e.endExclusive}slice(e){return e.slice(this.start,this.endExclusive)}substring(e){return e.substring(this.start,this.endExclusive)}clip(e){if(this.isEmpty)throw new Gi(`Invalid clipping range: ${this.toString()}`);return Math.max(this.start,Math.min(this.endExclusive-1,e))}clipCyclic(e){if(this.isEmpty)throw new Gi(`Invalid clipping range: ${this.toString()}`);return e<this.start?this.endExclusive-(this.start-e)%this.length:e>=this.endExclusive?this.start+(e-this.start)%this.length:e}forEach(e){for(let t=this.start;t<this.endExclusive;t++)e(t)}}class gz{constructor(){this._sortedRanges=[]}addRange(e){let t=0;for(;t<this._sortedRanges.length&&this._sortedRanges[t].endExclusive<e.start;)t++;let i=t;for(;i<this._sortedRanges.length&&this._sortedRanges[i].start<=e.endExclusive;)i++;if(t===i)this._sortedRanges.splice(t,0,e);else{const s=Math.min(e.start,this._sortedRanges[t].start),o=Math.max(e.endExclusive,this._sortedRanges[i-1].endExclusive);this._sortedRanges.splice(t,i-t,new zt(s,o))}}toString(){return this._sortedRanges.map(e=>e.toString()).join(\", \")}intersectsStrict(e){let t=0;for(;t<this._sortedRanges.length&&this._sortedRanges[t].endExclusive<=e.start;)t++;return t<this._sortedRanges.length&&this._sortedRanges[t].start<e.endExclusive}intersectWithRange(e){const t=new gz;for(const i of this._sortedRanges){const s=i.intersect(e);s&&t.addRange(s)}return t}intersectWithRangeLength(e){return this.intersectWithRange(e).length}get length(){return this._sortedRanges.reduce((e,t)=>e+t.length,0)}}function mL(n,e){const t=OOe(n,e);if(t!==-1)return n[t]}function OOe(n,e,t=n.length-1){for(let i=t;i>=0;i--){const s=n[i];if(e(s))return i}return-1}function MC(n,e){const t=_L(n,e);return t===-1?void 0:n[t]}function _L(n,e,t=0,i=n.length){let s=t,o=i;for(;s<o;){const r=Math.floor((s+o)/2);e(n[r])?s=r+1:o=r}return s-1}function FOe(n,e){const t=vL(n,e);return t===n.length?void 0:n[t]}function vL(n,e,t=0,i=n.length){let s=t,o=i;for(;s<o;){const r=Math.floor((s+o)/2);e(n[r])?o=r:s=r+1}return s}class pD{constructor(e){this._array=e,this._findLastMonotonousLastIdx=0}findLastMonotonous(e){if(pD.assertInvariants){if(this._prevFindLastPredicate){for(const i of this._array)if(this._prevFindLastPredicate(i)&&!e(i))throw new Error(\"MonotonousArray: current predicate must be weaker than (or equal to) the previous predicate.\")}this._prevFindLastPredicate=e}const t=_L(this._array,e,this._findLastMonotonousLastIdx);return this._findLastMonotonousLastIdx=t+1,t===-1?void 0:this._array[t]}}pD.assertInvariants=!1;function pz(n,e){if(n.length===0)return;let t=n[0];for(let i=1;i<n.length;i++){const s=n[i];e(s,t)>0&&(t=s)}return t}function BOe(n,e){if(n.length===0)return;let t=n[0];for(let i=1;i<n.length;i++){const s=n[i];e(s,t)>=0&&(t=s)}return t}function WOe(n,e){return pz(n,(t,i)=>-e(t,i))}function HOe(n,e){if(n.length===0)return-1;let t=0;for(let i=1;i<n.length;i++){const s=n[i];e(s,n[t])>0&&(t=i)}return t}function VOe(n,e){for(const t of n){const i=e(t);if(i!==void 0)return i}}let Vt=class yf{static fromRangeInclusive(e){return new yf(e.startLineNumber,e.endLineNumber+1)}static joinMany(e){if(e.length===0)return[];let t=new Gl(e[0].slice());for(let i=1;i<e.length;i++)t=t.getUnion(new Gl(e[i].slice()));return t.ranges}static join(e){if(e.length===0)throw new Gi(\"lineRanges cannot be empty\");let t=e[0].startLineNumber,i=e[0].endLineNumberExclusive;for(let s=1;s<e.length;s++)t=Math.min(t,e[s].startLineNumber),i=Math.max(i,e[s].endLineNumberExclusive);return new yf(t,i)}static ofLength(e,t){return new yf(e,e+t)}static deserialize(e){return new yf(e[0],e[1])}constructor(e,t){if(e>t)throw new Gi(`startLineNumber ${e} cannot be after endLineNumberExclusive ${t}`);this.startLineNumber=e,this.endLineNumberExclusive=t}contains(e){return this.startLineNumber<=e&&e<this.endLineNumberExclusive}get isEmpty(){return this.startLineNumber===this.endLineNumberExclusive}delta(e){return new yf(this.startLineNumber+e,this.endLineNumberExclusive+e)}deltaLength(e){return new yf(this.startLineNumber,this.endLineNumberExclusive+e)}get length(){return this.endLineNumberExclusive-this.startLineNumber}join(e){return new yf(Math.min(this.startLineNumber,e.startLineNumber),Math.max(this.endLineNumberExclusive,e.endLineNumberExclusive))}toString(){return`[${this.startLineNumber},${this.endLineNumberExclusive})`}intersect(e){const t=Math.max(this.startLineNumber,e.startLineNumber),i=Math.min(this.endLineNumberExclusive,e.endLineNumberExclusive);if(t<=i)return new yf(t,i)}intersectsStrict(e){return this.startLineNumber<e.endLineNumberExclusive&&e.startLineNumber<this.endLineNumberExclusive}overlapOrTouch(e){return this.startLineNumber<=e.endLineNumberExclusive&&e.startLineNumber<=this.endLineNumberExclusive}equals(e){return this.startLineNumber===e.startLineNumber&&this.endLineNumberExclusive===e.endLineNumberExclusive}toInclusiveRange(){return this.isEmpty?null:new A(this.startLineNumber,1,this.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER)}toExclusiveRange(){return new A(this.startLineNumber,1,this.endLineNumberExclusive,1)}mapToLineArray(e){const t=[];for(let i=this.startLineNumber;i<this.endLineNumberExclusive;i++)t.push(e(i));return t}forEach(e){for(let t=this.startLineNumber;t<this.endLineNumberExclusive;t++)e(t)}serialize(){return[this.startLineNumber,this.endLineNumberExclusive]}includes(e){return this.startLineNumber<=e&&e<this.endLineNumberExclusive}toOffsetRange(){return new zt(this.startLineNumber-1,this.endLineNumberExclusive-1)}};class Gl{constructor(e=[]){this._normalizedRanges=e}get ranges(){return this._normalizedRanges}addRange(e){if(e.length===0)return;const t=vL(this._normalizedRanges,s=>s.endLineNumberExclusive>=e.startLineNumber),i=_L(this._normalizedRanges,s=>s.startLineNumber<=e.endLineNumberExclusive)+1;if(t===i)this._normalizedRanges.splice(t,0,e);else if(t===i-1){const s=this._normalizedRanges[t];this._normalizedRanges[t]=s.join(e)}else{const s=this._normalizedRanges[t].join(this._normalizedRanges[i-1]).join(e);this._normalizedRanges.splice(t,i-t,s)}}contains(e){const t=MC(this._normalizedRanges,i=>i.startLineNumber<=e);return!!t&&t.endLineNumberExclusive>e}intersects(e){const t=MC(this._normalizedRanges,i=>i.startLineNumber<e.endLineNumberExclusive);return!!t&&t.endLineNumberExclusive>e.startLineNumber}getUnion(e){if(this._normalizedRanges.length===0)return e;if(e._normalizedRanges.length===0)return this;const t=[];let i=0,s=0,o=null;for(;i<this._normalizedRanges.length||s<e._normalizedRanges.length;){let r=null;if(i<this._normalizedRanges.length&&s<e._normalizedRanges.length){const a=this._normalizedRanges[i],l=e._normalizedRanges[s];a.startLineNumber<l.startLineNumber?(r=a,i++):(r=l,s++)}else i<this._normalizedRanges.length?(r=this._normalizedRanges[i],i++):(r=e._normalizedRanges[s],s++);o===null?o=r:o.endLineNumberExclusive>=r.startLineNumber?o=new Vt(o.startLineNumber,Math.max(o.endLineNumberExclusive,r.endLineNumberExclusive)):(t.push(o),o=r)}return o!==null&&t.push(o),new Gl(t)}subtractFrom(e){const t=vL(this._normalizedRanges,r=>r.endLineNumberExclusive>=e.startLineNumber),i=_L(this._normalizedRanges,r=>r.startLineNumber<=e.endLineNumberExclusive)+1;if(t===i)return new Gl([e]);const s=[];let o=e.startLineNumber;for(let r=t;r<i;r++){const a=this._normalizedRanges[r];a.startLineNumber>o&&s.push(new Vt(o,a.startLineNumber)),o=a.endLineNumberExclusive}return o<e.endLineNumberExclusive&&s.push(new Vt(o,e.endLineNumberExclusive)),new Gl(s)}toString(){return this._normalizedRanges.map(e=>e.toString()).join(\", \")}getIntersection(e){const t=[];let i=0,s=0;for(;i<this._normalizedRanges.length&&s<e._normalizedRanges.length;){const o=this._normalizedRanges[i],r=e._normalizedRanges[s],a=o.intersect(r);a&&!a.isEmpty&&t.push(a),o.endLineNumberExclusive<r.endLineNumberExclusive?i++:s++}return new Gl(t)}getWithDelta(e){return new Gl(this._normalizedRanges.map(t=>t.delta(e)))}}class Ar{static betweenPositions(e,t){return e.lineNumber===t.lineNumber?new Ar(0,t.column-e.column):new Ar(t.lineNumber-e.lineNumber,t.column-1)}static ofRange(e){return Ar.betweenPositions(e.getStartPosition(),e.getEndPosition())}static ofText(e){let t=0,i=0;for(const s of e)s===`\n`?(t++,i=0):i++;return new Ar(t,i)}constructor(e,t){this.lineCount=e,this.columnCount=t}isGreaterThanOrEqualTo(e){return this.lineCount!==e.lineCount?this.lineCount>e.lineCount:this.columnCount>=e.columnCount}createRange(e){return this.lineCount===0?new A(e.lineNumber,e.column,e.lineNumber,e.column+this.columnCount):new A(e.lineNumber,e.column,e.lineNumber+this.lineCount,this.columnCount+1)}addToPosition(e){return this.lineCount===0?new ee(e.lineNumber,e.column+this.columnCount):new ee(e.lineNumber+this.lineCount,this.columnCount+1)}toString(){return`${this.lineCount},${this.columnCount}`}}Ar.zero=new Ar(0,0);class zOe{constructor(e){this.text=e,this.lineStartOffsetByLineIdx=[],this.lineStartOffsetByLineIdx.push(0);for(let t=0;t<e.length;t++)e.charAt(t)===`\n`&&this.lineStartOffsetByLineIdx.push(t+1)}getOffset(e){return this.lineStartOffsetByLineIdx[e.lineNumber-1]+e.column-1}getOffsetRange(e){return new zt(this.getOffset(e.getStartPosition()),this.getOffset(e.getEndPosition()))}get textLength(){const e=this.lineStartOffsetByLineIdx.length-1;return new Ar(e,this.text.length-this.lineStartOffsetByLineIdx[e])}}class mz{constructor(e){this.edits=e,g0(()=>lz(e,(t,i)=>t.range.getEndPosition().isBeforeOrEqual(i.range.getStartPosition())))}apply(e){let t=\"\",i=new ee(1,1);for(const o of this.edits){const r=o.range,a=r.getStartPosition(),l=r.getEndPosition(),c=JY(i,a);c.isEmpty()||(t+=e.getValueOfRange(c)),t+=o.text,i=l}const s=JY(i,e.endPositionExclusive);return s.isEmpty()||(t+=e.getValueOfRange(s)),t}applyToString(e){const t=new $Oe(e);return this.apply(t)}getNewRanges(){const e=[];let t=0,i=0,s=0;for(const o of this.edits){const r=Ar.ofText(o.text),a=ee.lift({lineNumber:o.range.startLineNumber+i,column:o.range.startColumn+(o.range.startLineNumber===t?s:0)}),l=r.createRange(a);e.push(l),i=l.endLineNumber-o.range.endLineNumber,s=l.endColumn-o.range.endColumn,t=o.range.endLineNumber}return e}}class Eg{constructor(e,t){this.range=e,this.text=t}}function JY(n,e){if(n.lineNumber===e.lineNumber&&n.column===Number.MAX_SAFE_INTEGER)return A.fromPositions(e,e);if(!n.isBeforeOrEqual(e))throw new Gi(\"start must be before end\");return new A(n.lineNumber,n.column,e.lineNumber,e.column)}class xle{get endPositionExclusive(){return this.length.addToPosition(new ee(1,1))}}class $Oe extends xle{constructor(e){super(),this.value=e,this._t=new zOe(this.value)}getValueOfRange(e){return this._t.getOffsetRange(e).substring(this.value)}get length(){return this._t.textLength}}class Ir{static inverse(e,t,i){const s=[];let o=1,r=1;for(const l of e){const c=new Ir(new Vt(o,l.original.startLineNumber),new Vt(r,l.modified.startLineNumber));c.modified.isEmpty||s.push(c),o=l.original.endLineNumberExclusive,r=l.modified.endLineNumberExclusive}const a=new Ir(new Vt(o,t+1),new Vt(r,i+1));return a.modified.isEmpty||s.push(a),s}static clip(e,t,i){const s=[];for(const o of e){const r=o.original.intersect(t),a=o.modified.intersect(i);r&&!r.isEmpty&&a&&!a.isEmpty&&s.push(new Ir(r,a))}return s}constructor(e,t){this.original=e,this.modified=t}toString(){return`{${this.original.toString()}->${this.modified.toString()}}`}flip(){return new Ir(this.modified,this.original)}join(e){return new Ir(this.original.join(e.original),this.modified.join(e.modified))}toRangeMapping(){const e=this.original.toInclusiveRange(),t=this.modified.toInclusiveRange();if(e&&t)return new qd(e,t);if(this.original.startLineNumber===1||this.modified.startLineNumber===1){if(!(this.modified.startLineNumber===1&&this.original.startLineNumber===1))throw new Gi(\"not a valid diff\");return new qd(new A(this.original.startLineNumber,1,this.original.endLineNumberExclusive,1),new A(this.modified.startLineNumber,1,this.modified.endLineNumberExclusive,1))}else return new qd(new A(this.original.startLineNumber-1,Number.MAX_SAFE_INTEGER,this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),new A(this.modified.startLineNumber-1,Number.MAX_SAFE_INTEGER,this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER))}}class Cl extends Ir{static fromRangeMappings(e){const t=Vt.join(e.map(s=>Vt.fromRangeInclusive(s.originalRange))),i=Vt.join(e.map(s=>Vt.fromRangeInclusive(s.modifiedRange)));return new Cl(t,i,e)}constructor(e,t,i){super(e,t),this.innerChanges=i}flip(){var e;return new Cl(this.modified,this.original,(e=this.innerChanges)===null||e===void 0?void 0:e.map(t=>t.flip()))}withInnerChangesFromLineRanges(){return new Cl(this.original,this.modified,[this.toRangeMapping()])}}class qd{constructor(e,t){this.originalRange=e,this.modifiedRange=t}toString(){return`{${this.originalRange.toString()}->${this.modifiedRange.toString()}}`}flip(){return new qd(this.modifiedRange,this.originalRange)}toTextEdit(e){const t=e.getValueOfRange(this.modifiedRange);return new Eg(this.originalRange,t)}}const UOe=3;class jOe{computeDiff(e,t,i){var s;const r=new GOe(e,t,{maxComputationTime:i.maxComputationTimeMs,shouldIgnoreTrimWhitespace:i.ignoreTrimWhitespace,shouldComputeCharChanges:!0,shouldMakePrettyDiff:!0,shouldPostProcessCharChanges:!0}).computeDiff(),a=[];let l=null;for(const c of r.changes){let d;c.originalEndLineNumber===0?d=new Vt(c.originalStartLineNumber+1,c.originalStartLineNumber+1):d=new Vt(c.originalStartLineNumber,c.originalEndLineNumber+1);let u;c.modifiedEndLineNumber===0?u=new Vt(c.modifiedStartLineNumber+1,c.modifiedStartLineNumber+1):u=new Vt(c.modifiedStartLineNumber,c.modifiedEndLineNumber+1);let h=new Cl(d,u,(s=c.charChanges)===null||s===void 0?void 0:s.map(f=>new qd(new A(f.originalStartLineNumber,f.originalStartColumn,f.originalEndLineNumber,f.originalEndColumn),new A(f.modifiedStartLineNumber,f.modifiedStartColumn,f.modifiedEndLineNumber,f.modifiedEndColumn))));l&&(l.modified.endLineNumberExclusive===h.modified.startLineNumber||l.original.endLineNumberExclusive===h.original.startLineNumber)&&(h=new Cl(l.original.join(h.original),l.modified.join(h.modified),l.innerChanges&&h.innerChanges?l.innerChanges.concat(h.innerChanges):void 0),a.pop()),a.push(h),l=h}return g0(()=>lz(a,(c,d)=>d.original.startLineNumber-c.original.endLineNumberExclusive===d.modified.startLineNumber-c.modified.endLineNumberExclusive&&c.original.endLineNumberExclusive<d.original.startLineNumber&&c.modified.endLineNumberExclusive<d.modified.startLineNumber)),new pN(a,[],r.quitEarly)}}function Lle(n,e,t,i){return new Ju(n,e,t).ComputeDiff(i)}let eX=class{constructor(e){const t=[],i=[];for(let s=0,o=e.length;s<o;s++)t[s]=_B(e[s],1),i[s]=vB(e[s],1);this.lines=e,this._startColumns=t,this._endColumns=i}getElements(){const e=[];for(let t=0,i=this.lines.length;t<i;t++)e[t]=this.lines[t].substring(this._startColumns[t]-1,this._endColumns[t]-1);return e}getStrictElement(e){return this.lines[e]}getStartLineNumber(e){return e+1}getEndLineNumber(e){return e+1}createCharSequence(e,t,i){const s=[],o=[],r=[];let a=0;for(let l=t;l<=i;l++){const c=this.lines[l],d=e?this._startColumns[l]:1,u=e?this._endColumns[l]:c.length+1;for(let h=d;h<u;h++)s[a]=c.charCodeAt(h-1),o[a]=l+1,r[a]=h,a++;!e&&l<i&&(s[a]=10,o[a]=l+1,r[a]=c.length+1,a++)}return new KOe(s,o,r)}};class KOe{constructor(e,t,i){this._charCodes=e,this._lineNumbers=t,this._columns=i}toString(){return\"[\"+this._charCodes.map((e,t)=>(e===10?\"\\\\n\":String.fromCharCode(e))+`-(${this._lineNumbers[t]},${this._columns[t]})`).join(\", \")+\"]\"}_assertIndex(e,t){if(e<0||e>=t.length)throw new Error(\"Illegal index\")}getElements(){return this._charCodes}getStartLineNumber(e){return e>0&&e===this._lineNumbers.length?this.getEndLineNumber(e-1):(this._assertIndex(e,this._lineNumbers),this._lineNumbers[e])}getEndLineNumber(e){return e===-1?this.getStartLineNumber(e+1):(this._assertIndex(e,this._lineNumbers),this._charCodes[e]===10?this._lineNumbers[e]+1:this._lineNumbers[e])}getStartColumn(e){return e>0&&e===this._columns.length?this.getEndColumn(e-1):(this._assertIndex(e,this._columns),this._columns[e])}getEndColumn(e){return e===-1?this.getStartColumn(e+1):(this._assertIndex(e,this._columns),this._charCodes[e]===10?1:this._columns[e]+1)}}class Y1{constructor(e,t,i,s,o,r,a,l){this.originalStartLineNumber=e,this.originalStartColumn=t,this.originalEndLineNumber=i,this.originalEndColumn=s,this.modifiedStartLineNumber=o,this.modifiedStartColumn=r,this.modifiedEndLineNumber=a,this.modifiedEndColumn=l}static createFromDiffChange(e,t,i){const s=t.getStartLineNumber(e.originalStart),o=t.getStartColumn(e.originalStart),r=t.getEndLineNumber(e.originalStart+e.originalLength-1),a=t.getEndColumn(e.originalStart+e.originalLength-1),l=i.getStartLineNumber(e.modifiedStart),c=i.getStartColumn(e.modifiedStart),d=i.getEndLineNumber(e.modifiedStart+e.modifiedLength-1),u=i.getEndColumn(e.modifiedStart+e.modifiedLength-1);return new Y1(s,o,r,a,l,c,d,u)}}function qOe(n){if(n.length<=1)return n;const e=[n[0]];let t=e[0];for(let i=1,s=n.length;i<s;i++){const o=n[i],r=o.originalStart-(t.originalStart+t.originalLength),a=o.modifiedStart-(t.modifiedStart+t.modifiedLength);Math.min(r,a)<UOe?(t.originalLength=o.originalStart+o.originalLength-t.originalStart,t.modifiedLength=o.modifiedStart+o.modifiedLength-t.modifiedStart):(e.push(o),t=o)}return e}class lx{constructor(e,t,i,s,o){this.originalStartLineNumber=e,this.originalEndLineNumber=t,this.modifiedStartLineNumber=i,this.modifiedEndLineNumber=s,this.charChanges=o}static createFromDiffResult(e,t,i,s,o,r,a){let l,c,d,u,h;if(t.originalLength===0?(l=i.getStartLineNumber(t.originalStart)-1,c=0):(l=i.getStartLineNumber(t.originalStart),c=i.getEndLineNumber(t.originalStart+t.originalLength-1)),t.modifiedLength===0?(d=s.getStartLineNumber(t.modifiedStart)-1,u=0):(d=s.getStartLineNumber(t.modifiedStart),u=s.getEndLineNumber(t.modifiedStart+t.modifiedLength-1)),r&&t.originalLength>0&&t.originalLength<20&&t.modifiedLength>0&&t.modifiedLength<20&&o()){const f=i.createCharSequence(e,t.originalStart,t.originalStart+t.originalLength-1),g=s.createCharSequence(e,t.modifiedStart,t.modifiedStart+t.modifiedLength-1);if(f.getElements().length>0&&g.getElements().length>0){let p=Lle(f,g,o,!0).changes;a&&(p=qOe(p)),h=[];for(let _=0,b=p.length;_<b;_++)h.push(Y1.createFromDiffChange(p[_],f,g))}}return new lx(l,c,d,u,h)}}class GOe{constructor(e,t,i){this.shouldComputeCharChanges=i.shouldComputeCharChanges,this.shouldPostProcessCharChanges=i.shouldPostProcessCharChanges,this.shouldIgnoreTrimWhitespace=i.shouldIgnoreTrimWhitespace,this.shouldMakePrettyDiff=i.shouldMakePrettyDiff,this.originalLines=e,this.modifiedLines=t,this.original=new eX(e),this.modified=new eX(t),this.continueLineDiff=tX(i.maxComputationTime),this.continueCharDiff=tX(i.maxComputationTime===0?0:Math.min(i.maxComputationTime,5e3))}computeDiff(){if(this.original.lines.length===1&&this.original.lines[0].length===0)return this.modified.lines.length===1&&this.modified.lines[0].length===0?{quitEarly:!1,changes:[]}:{quitEarly:!1,changes:[{originalStartLineNumber:1,originalEndLineNumber:1,modifiedStartLineNumber:1,modifiedEndLineNumber:this.modified.lines.length,charChanges:void 0}]};if(this.modified.lines.length===1&&this.modified.lines[0].length===0)return{quitEarly:!1,changes:[{originalStartLineNumber:1,originalEndLineNumber:this.original.lines.length,modifiedStartLineNumber:1,modifiedEndLineNumber:1,charChanges:void 0}]};const e=Lle(this.original,this.modified,this.continueLineDiff,this.shouldMakePrettyDiff),t=e.changes,i=e.quitEarly;if(this.shouldIgnoreTrimWhitespace){const a=[];for(let l=0,c=t.length;l<c;l++)a.push(lx.createFromDiffResult(this.shouldIgnoreTrimWhitespace,t[l],this.original,this.modified,this.continueCharDiff,this.shouldComputeCharChanges,this.shouldPostProcessCharChanges));return{quitEarly:i,changes:a}}const s=[];let o=0,r=0;for(let a=-1,l=t.length;a<l;a++){const c=a+1<l?t[a+1]:null,d=c?c.originalStart:this.originalLines.length,u=c?c.modifiedStart:this.modifiedLines.length;for(;o<d&&r<u;){const h=this.originalLines[o],f=this.modifiedLines[r];if(h!==f){{let g=_B(h,1),p=_B(f,1);for(;g>1&&p>1;){const _=h.charCodeAt(g-2),b=f.charCodeAt(p-2);if(_!==b)break;g--,p--}(g>1||p>1)&&this._pushTrimWhitespaceCharChange(s,o+1,1,g,r+1,1,p)}{let g=vB(h,1),p=vB(f,1);const _=h.length+1,b=f.length+1;for(;g<_&&p<b;){const w=h.charCodeAt(g-1),y=h.charCodeAt(p-1);if(w!==y)break;g++,p++}(g<_||p<b)&&this._pushTrimWhitespaceCharChange(s,o+1,g,_,r+1,p,b)}}o++,r++}c&&(s.push(lx.createFromDiffResult(this.shouldIgnoreTrimWhitespace,c,this.original,this.modified,this.continueCharDiff,this.shouldComputeCharChanges,this.shouldPostProcessCharChanges)),o+=c.originalLength,r+=c.modifiedLength)}return{quitEarly:i,changes:s}}_pushTrimWhitespaceCharChange(e,t,i,s,o,r,a){if(this._mergeTrimWhitespaceCharChange(e,t,i,s,o,r,a))return;let l;this.shouldComputeCharChanges&&(l=[new Y1(t,i,t,s,o,r,o,a)]),e.push(new lx(t,t,o,o,l))}_mergeTrimWhitespaceCharChange(e,t,i,s,o,r,a){const l=e.length;if(l===0)return!1;const c=e[l-1];return c.originalEndLineNumber===0||c.modifiedEndLineNumber===0?!1:c.originalEndLineNumber===t&&c.modifiedEndLineNumber===o?(this.shouldComputeCharChanges&&c.charChanges&&c.charChanges.push(new Y1(t,i,t,s,o,r,o,a)),!0):c.originalEndLineNumber+1===t&&c.modifiedEndLineNumber+1===o?(c.originalEndLineNumber=t,c.modifiedEndLineNumber=o,this.shouldComputeCharChanges&&c.charChanges&&c.charChanges.push(new Y1(t,i,t,s,o,r,o,a)),!0):!1}}function _B(n,e){const t=fr(n);return t===-1?e:t+1}function vB(n,e){const t=Kd(n);return t===-1?e:t+2}function tX(n){if(n===0)return()=>!0;const e=Date.now();return()=>Date.now()-e<n}class _g{static trivial(e,t){return new _g([new qs(zt.ofLength(e.length),zt.ofLength(t.length))],!1)}static trivialTimedOut(e,t){return new _g([new qs(zt.ofLength(e.length),zt.ofLength(t.length))],!0)}constructor(e,t){this.diffs=e,this.hitTimeout=t}}class qs{static invert(e,t){const i=[];return Fre(e,(s,o)=>{i.push(qs.fromOffsetPairs(s?s.getEndExclusives():Yl.zero,o?o.getStarts():new Yl(t,(s?s.seq2Range.endExclusive-s.seq1Range.endExclusive:0)+t)))}),i}static fromOffsetPairs(e,t){return new qs(new zt(e.offset1,t.offset1),new zt(e.offset2,t.offset2))}constructor(e,t){this.seq1Range=e,this.seq2Range=t}swap(){return new qs(this.seq2Range,this.seq1Range)}toString(){return`${this.seq1Range} <-> ${this.seq2Range}`}join(e){return new qs(this.seq1Range.join(e.seq1Range),this.seq2Range.join(e.seq2Range))}delta(e){return e===0?this:new qs(this.seq1Range.delta(e),this.seq2Range.delta(e))}deltaStart(e){return e===0?this:new qs(this.seq1Range.deltaStart(e),this.seq2Range.deltaStart(e))}deltaEnd(e){return e===0?this:new qs(this.seq1Range.deltaEnd(e),this.seq2Range.deltaEnd(e))}intersect(e){const t=this.seq1Range.intersect(e.seq1Range),i=this.seq2Range.intersect(e.seq2Range);if(!(!t||!i))return new qs(t,i)}getStarts(){return new Yl(this.seq1Range.start,this.seq2Range.start)}getEndExclusives(){return new Yl(this.seq1Range.endExclusive,this.seq2Range.endExclusive)}}class Yl{constructor(e,t){this.offset1=e,this.offset2=t}toString(){return`${this.offset1} <-> ${this.offset2}`}delta(e){return e===0?this:new Yl(this.offset1+e,this.offset2+e)}equals(e){return this.offset1===e.offset1&&this.offset2===e.offset2}}Yl.zero=new Yl(0,0);Yl.max=new Yl(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER);class bL{isValid(){return!0}}bL.instance=new bL;class ZOe{constructor(e){if(this.timeout=e,this.startTime=Date.now(),this.valid=!0,e<=0)throw new Gi(\"timeout must be positive\")}isValid(){if(!(Date.now()-this.startTime<this.timeout)&&this.valid){this.valid=!1;debugger}return this.valid}}class ZF{constructor(e,t){this.width=e,this.height=t,this.array=[],this.array=new Array(e*t)}get(e,t){return this.array[e+t*this.width]}set(e,t,i){this.array[e+t*this.width]=i}}function bB(n){return n===32||n===9}class PC{static getKey(e){let t=this.chrKeys.get(e);return t===void 0&&(t=this.chrKeys.size,this.chrKeys.set(e,t)),t}constructor(e,t,i){this.range=e,this.lines=t,this.source=i,this.histogram=[];let s=0;for(let o=e.startLineNumber-1;o<e.endLineNumberExclusive-1;o++){const r=t[o];for(let l=0;l<r.length;l++){s++;const c=r[l],d=PC.getKey(c);this.histogram[d]=(this.histogram[d]||0)+1}s++;const a=PC.getKey(`\n`);this.histogram[a]=(this.histogram[a]||0)+1}this.totalCount=s}computeSimilarity(e){var t,i;let s=0;const o=Math.max(this.histogram.length,e.histogram.length);for(let r=0;r<o;r++)s+=Math.abs(((t=this.histogram[r])!==null&&t!==void 0?t:0)-((i=e.histogram[r])!==null&&i!==void 0?i:0));return 1-s/(this.totalCount+e.totalCount)}}PC.chrKeys=new Map;class YOe{compute(e,t,i=bL.instance,s){if(e.length===0||t.length===0)return _g.trivial(e,t);const o=new ZF(e.length,t.length),r=new ZF(e.length,t.length),a=new ZF(e.length,t.length);for(let g=0;g<e.length;g++)for(let p=0;p<t.length;p++){if(!i.isValid())return _g.trivialTimedOut(e,t);const _=g===0?0:o.get(g-1,p),b=p===0?0:o.get(g,p-1);let w;e.getElement(g)===t.getElement(p)?(g===0||p===0?w=0:w=o.get(g-1,p-1),g>0&&p>0&&r.get(g-1,p-1)===3&&(w+=a.get(g-1,p-1)),w+=s?s(g,p):1):w=-1;const y=Math.max(_,b,w);if(y===w){const S=g>0&&p>0?a.get(g-1,p-1):0;a.set(g,p,S+1),r.set(g,p,3)}else y===_?(a.set(g,p,0),r.set(g,p,1)):y===b&&(a.set(g,p,0),r.set(g,p,2));o.set(g,p,y)}const l=[];let c=e.length,d=t.length;function u(g,p){(g+1!==c||p+1!==d)&&l.push(new qs(new zt(g+1,c),new zt(p+1,d))),c=g,d=p}let h=e.length-1,f=t.length-1;for(;h>=0&&f>=0;)r.get(h,f)===3?(u(h,f),h--,f--):r.get(h,f)===1?h--:f--;return u(-1,-1),l.reverse(),new _g(l,!1)}}class kle{compute(e,t,i=bL.instance){if(e.length===0||t.length===0)return _g.trivial(e,t);const s=e,o=t;function r(p,_){for(;p<s.length&&_<o.length&&s.getElement(p)===o.getElement(_);)p++,_++;return p}let a=0;const l=new XOe;l.set(0,r(0,0));const c=new QOe;c.set(0,l.get(0)===0?null:new iX(null,0,0,l.get(0)));let d=0;e:for(;;){if(a++,!i.isValid())return _g.trivialTimedOut(s,o);const p=-Math.min(a,o.length+a%2),_=Math.min(a,s.length+a%2);for(d=p;d<=_;d+=2){const b=d===_?-1:l.get(d+1),w=d===p?-1:l.get(d-1)+1,y=Math.min(Math.max(b,w),s.length),S=y-d;if(y>s.length||S>o.length)continue;const x=r(y,S);l.set(d,x);const k=y===b?c.get(d+1):c.get(d-1);if(c.set(d,x!==y?new iX(k,y,S,x-y):k),l.get(d)===s.length&&l.get(d)-d===o.length)break e}}let u=c.get(d);const h=[];let f=s.length,g=o.length;for(;;){const p=u?u.x+u.length:0,_=u?u.y+u.length:0;if((p!==f||_!==g)&&h.push(new qs(new zt(p,f),new zt(_,g))),!u)break;f=u.x,g=u.y,u=u.prev}return h.reverse(),new _g(h,!1)}}class iX{constructor(e,t,i,s){this.prev=e,this.x=t,this.y=i,this.length=s}}class XOe{constructor(){this.positiveArr=new Int32Array(10),this.negativeArr=new Int32Array(10)}get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,t){if(e<0){if(e=-e-1,e>=this.negativeArr.length){const i=this.negativeArr;this.negativeArr=new Int32Array(i.length*2),this.negativeArr.set(i)}this.negativeArr[e]=t}else{if(e>=this.positiveArr.length){const i=this.positiveArr;this.positiveArr=new Int32Array(i.length*2),this.positiveArr.set(i)}this.positiveArr[e]=t}}}class QOe{constructor(){this.positiveArr=[],this.negativeArr=[]}get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,t){e<0?(e=-e-1,this.negativeArr[e]=t):this.positiveArr[e]=t}}class q2{constructor(e,t,i){this.lines=e,this.considerWhitespaceChanges=i,this.elements=[],this.firstCharOffsetByLine=[],this.additionalOffsetByLine=[];let s=!1;t.start>0&&t.endExclusive>=e.length&&(t=new zt(t.start-1,t.endExclusive),s=!0),this.lineRange=t,this.firstCharOffsetByLine[0]=0;for(let o=this.lineRange.start;o<this.lineRange.endExclusive;o++){let r=e[o],a=0;if(s)a=r.length,r=\"\",s=!1;else if(!i){const l=r.trimStart();a=r.length-l.length,r=l.trimEnd()}this.additionalOffsetByLine.push(a);for(let l=0;l<r.length;l++)this.elements.push(r.charCodeAt(l));o<e.length-1&&(this.elements.push(10),this.firstCharOffsetByLine[o-this.lineRange.start+1]=this.elements.length)}this.additionalOffsetByLine.push(0)}toString(){return`Slice: \"${this.text}\"`}get text(){return this.getText(new zt(0,this.length))}getText(e){return this.elements.slice(e.start,e.endExclusive).map(t=>String.fromCharCode(t)).join(\"\")}getElement(e){return this.elements[e]}get length(){return this.elements.length}getBoundaryScore(e){const t=sX(e>0?this.elements[e-1]:-1),i=sX(e<this.elements.length?this.elements[e]:-1);if(t===7&&i===8)return 0;if(t===8)return 150;let s=0;return t!==i&&(s+=10,t===0&&i===1&&(s+=1)),s+=nX(t),s+=nX(i),s}translateOffset(e){if(this.lineRange.isEmpty)return new ee(this.lineRange.start+1,1);const t=_L(this.firstCharOffsetByLine,i=>i<=e);return new ee(this.lineRange.start+t+1,e-this.firstCharOffsetByLine[t]+this.additionalOffsetByLine[t]+1)}translateRange(e){return A.fromPositions(this.translateOffset(e.start),this.translateOffset(e.endExclusive))}findWordContaining(e){if(e<0||e>=this.elements.length||!YF(this.elements[e]))return;let t=e;for(;t>0&&YF(this.elements[t-1]);)t--;let i=e;for(;i<this.elements.length&&YF(this.elements[i]);)i++;return new zt(t,i)}countLinesIn(e){return this.translateOffset(e.endExclusive).lineNumber-this.translateOffset(e.start).lineNumber}isStronglyEqual(e,t){return this.elements[e]===this.elements[t]}extendToFullLines(e){var t,i;const s=(t=MC(this.firstCharOffsetByLine,r=>r<=e.start))!==null&&t!==void 0?t:0,o=(i=FOe(this.firstCharOffsetByLine,r=>e.endExclusive<=r))!==null&&i!==void 0?i:this.elements.length;return new zt(s,o)}}function YF(n){return n>=97&&n<=122||n>=65&&n<=90||n>=48&&n<=57}const JOe={0:0,1:0,2:0,3:10,4:2,5:30,6:3,7:10,8:10};function nX(n){return JOe[n]}function sX(n){return n===10?8:n===13?7:bB(n)?6:n>=97&&n<=122?0:n>=65&&n<=90?1:n>=48&&n<=57?2:n===-1?3:n===44||n===59?5:4}function e4e(n,e,t,i,s,o){let{moves:r,excludedChanges:a}=i4e(n,e,t,o);if(!o.isValid())return[];const l=n.filter(d=>!a.has(d)),c=n4e(l,i,s,e,t,o);return Z8(r,c),r=s4e(r),r=r.filter(d=>{const u=d.original.toOffsetRange().slice(e).map(f=>f.trim());return u.join(`\n`).length>=15&&t4e(u,f=>f.length>=2)>=2}),r=o4e(n,r),r}function t4e(n,e){let t=0;for(const i of n)e(i)&&t++;return t}function i4e(n,e,t,i){const s=[],o=n.filter(l=>l.modified.isEmpty&&l.original.length>=3).map(l=>new PC(l.original,e,l)),r=new Set(n.filter(l=>l.original.isEmpty&&l.modified.length>=3).map(l=>new PC(l.modified,t,l))),a=new Set;for(const l of o){let c=-1,d;for(const u of r){const h=l.computeSimilarity(u);h>c&&(c=h,d=u)}if(c>.9&&d&&(r.delete(d),s.push(new Ir(l.range,d.range)),a.add(l.source),a.add(d.source)),!i.isValid())return{moves:s,excludedChanges:a}}return{moves:s,excludedChanges:a}}function n4e(n,e,t,i,s,o){const r=[],a=new uz;for(const h of n)for(let f=h.original.startLineNumber;f<h.original.endLineNumberExclusive-2;f++){const g=`${e[f-1]}:${e[f+1-1]}:${e[f+2-1]}`;a.add(g,{range:new Vt(f,f+3)})}const l=[];n.sort(oa(h=>h.modified.startLineNumber,Qc));for(const h of n){let f=[];for(let g=h.modified.startLineNumber;g<h.modified.endLineNumberExclusive-2;g++){const p=`${t[g-1]}:${t[g+1-1]}:${t[g+2-1]}`,_=new Vt(g,g+3),b=[];a.forEach(p,({range:w})=>{for(const S of f)if(S.originalLineRange.endLineNumberExclusive+1===w.endLineNumberExclusive&&S.modifiedLineRange.endLineNumberExclusive+1===_.endLineNumberExclusive){S.originalLineRange=new Vt(S.originalLineRange.startLineNumber,w.endLineNumberExclusive),S.modifiedLineRange=new Vt(S.modifiedLineRange.startLineNumber,_.endLineNumberExclusive),b.push(S);return}const y={modifiedLineRange:_,originalLineRange:w};l.push(y),b.push(y)}),f=b}if(!o.isValid())return[]}l.sort(Hre(oa(h=>h.modifiedLineRange.length,Qc)));const c=new Gl,d=new Gl;for(const h of l){const f=h.modifiedLineRange.startLineNumber-h.originalLineRange.startLineNumber,g=c.subtractFrom(h.modifiedLineRange),p=d.subtractFrom(h.originalLineRange).getWithDelta(f),_=g.getIntersection(p);for(const b of _.ranges){if(b.length<3)continue;const w=b,y=b.delta(-f);r.push(new Ir(y,w)),c.addRange(w),d.addRange(y)}}r.sort(oa(h=>h.original.startLineNumber,Qc));const u=new pD(n);for(let h=0;h<r.length;h++){const f=r[h],g=u.findLastMonotonous(k=>k.original.startLineNumber<=f.original.startLineNumber),p=MC(n,k=>k.modified.startLineNumber<=f.modified.startLineNumber),_=Math.max(f.original.startLineNumber-g.original.startLineNumber,f.modified.startLineNumber-p.modified.startLineNumber),b=u.findLastMonotonous(k=>k.original.startLineNumber<f.original.endLineNumberExclusive),w=MC(n,k=>k.modified.startLineNumber<f.modified.endLineNumberExclusive),y=Math.max(b.original.endLineNumberExclusive-f.original.endLineNumberExclusive,w.modified.endLineNumberExclusive-f.modified.endLineNumberExclusive);let S;for(S=0;S<_;S++){const k=f.original.startLineNumber-S-1,D=f.modified.startLineNumber-S-1;if(k>i.length||D>s.length||c.contains(D)||d.contains(k)||!oX(i[k-1],s[D-1],o))break}S>0&&(d.addRange(new Vt(f.original.startLineNumber-S,f.original.startLineNumber)),c.addRange(new Vt(f.modified.startLineNumber-S,f.modified.startLineNumber)));let x;for(x=0;x<y;x++){const k=f.original.endLineNumberExclusive+x,D=f.modified.endLineNumberExclusive+x;if(k>i.length||D>s.length||c.contains(D)||d.contains(k)||!oX(i[k-1],s[D-1],o))break}x>0&&(d.addRange(new Vt(f.original.endLineNumberExclusive,f.original.endLineNumberExclusive+x)),c.addRange(new Vt(f.modified.endLineNumberExclusive,f.modified.endLineNumberExclusive+x))),(S>0||x>0)&&(r[h]=new Ir(new Vt(f.original.startLineNumber-S,f.original.endLineNumberExclusive+x),new Vt(f.modified.startLineNumber-S,f.modified.endLineNumberExclusive+x)))}return r}function oX(n,e,t){if(n.trim()===e.trim())return!0;if(n.length>300&&e.length>300)return!1;const s=new kle().compute(new q2([n],new zt(0,1),!1),new q2([e],new zt(0,1),!1),t);let o=0;const r=qs.invert(s.diffs,n.length);for(const d of r)d.seq1Range.forEach(u=>{bB(n.charCodeAt(u))||o++});function a(d){let u=0;for(let h=0;h<n.length;h++)bB(d.charCodeAt(h))||u++;return u}const l=a(n.length>e.length?n:e);return o/l>.6&&l>10}function s4e(n){if(n.length===0)return n;n.sort(oa(t=>t.original.startLineNumber,Qc));const e=[n[0]];for(let t=1;t<n.length;t++){const i=e[e.length-1],s=n[t],o=s.original.startLineNumber-i.original.endLineNumberExclusive,r=s.modified.startLineNumber-i.modified.endLineNumberExclusive;if(o>=0&&r>=0&&o+r<=2){e[e.length-1]=i.join(s);continue}e.push(s)}return e}function o4e(n,e){const t=new pD(n);return e=e.filter(i=>{const s=t.findLastMonotonous(a=>a.original.startLineNumber<i.original.endLineNumberExclusive)||new Ir(new Vt(1,1),new Vt(1,1)),o=MC(n,a=>a.modified.startLineNumber<i.modified.endLineNumberExclusive);return s!==o}),e}function CB(n,e,t){let i=t;return i=rX(n,e,i),i=rX(n,e,i),i=r4e(n,e,i),i}function rX(n,e,t){if(t.length===0)return t;const i=[];i.push(t[0]);for(let o=1;o<t.length;o++){const r=i[i.length-1];let a=t[o];if(a.seq1Range.isEmpty||a.seq2Range.isEmpty){const l=a.seq1Range.start-r.seq1Range.endExclusive;let c;for(c=1;c<=l&&!(n.getElement(a.seq1Range.start-c)!==n.getElement(a.seq1Range.endExclusive-c)||e.getElement(a.seq2Range.start-c)!==e.getElement(a.seq2Range.endExclusive-c));c++);if(c--,c===l){i[i.length-1]=new qs(new zt(r.seq1Range.start,a.seq1Range.endExclusive-l),new zt(r.seq2Range.start,a.seq2Range.endExclusive-l));continue}a=a.delta(-c)}i.push(a)}const s=[];for(let o=0;o<i.length-1;o++){const r=i[o+1];let a=i[o];if(a.seq1Range.isEmpty||a.seq2Range.isEmpty){const l=r.seq1Range.start-a.seq1Range.endExclusive;let c;for(c=0;c<l&&!(!n.isStronglyEqual(a.seq1Range.start+c,a.seq1Range.endExclusive+c)||!e.isStronglyEqual(a.seq2Range.start+c,a.seq2Range.endExclusive+c));c++);if(c===l){i[o+1]=new qs(new zt(a.seq1Range.start+l,r.seq1Range.endExclusive),new zt(a.seq2Range.start+l,r.seq2Range.endExclusive));continue}c>0&&(a=a.delta(c))}s.push(a)}return i.length>0&&s.push(i[i.length-1]),s}function r4e(n,e,t){if(!n.getBoundaryScore||!e.getBoundaryScore)return t;for(let i=0;i<t.length;i++){const s=i>0?t[i-1]:void 0,o=t[i],r=i+1<t.length?t[i+1]:void 0,a=new zt(s?s.seq1Range.endExclusive+1:0,r?r.seq1Range.start-1:n.length),l=new zt(s?s.seq2Range.endExclusive+1:0,r?r.seq2Range.start-1:e.length);o.seq1Range.isEmpty?t[i]=aX(o,n,e,a,l):o.seq2Range.isEmpty&&(t[i]=aX(o.swap(),e,n,l,a).swap())}return t}function aX(n,e,t,i,s){let r=1;for(;n.seq1Range.start-r>=i.start&&n.seq2Range.start-r>=s.start&&t.isStronglyEqual(n.seq2Range.start-r,n.seq2Range.endExclusive-r)&&r<100;)r++;r--;let a=0;for(;n.seq1Range.start+a<i.endExclusive&&n.seq2Range.endExclusive+a<s.endExclusive&&t.isStronglyEqual(n.seq2Range.start+a,n.seq2Range.endExclusive+a)&&a<100;)a++;if(r===0&&a===0)return n;let l=0,c=-1;for(let d=-r;d<=a;d++){const u=n.seq2Range.start+d,h=n.seq2Range.endExclusive+d,f=n.seq1Range.start+d,g=e.getBoundaryScore(f)+t.getBoundaryScore(u)+t.getBoundaryScore(h);g>c&&(c=g,l=d)}return n.delta(l)}function a4e(n,e,t){const i=[];for(const s of t){const o=i[i.length-1];if(!o){i.push(s);continue}s.seq1Range.start-o.seq1Range.endExclusive<=2||s.seq2Range.start-o.seq2Range.endExclusive<=2?i[i.length-1]=new qs(o.seq1Range.join(s.seq1Range),o.seq2Range.join(s.seq2Range)):i.push(s)}return i}function l4e(n,e,t){const i=qs.invert(t,n.length),s=[];let o=new Yl(0,0);function r(l,c){if(l.offset1<o.offset1||l.offset2<o.offset2)return;const d=n.findWordContaining(l.offset1),u=e.findWordContaining(l.offset2);if(!d||!u)return;let h=new qs(d,u);const f=h.intersect(c);let g=f.seq1Range.length,p=f.seq2Range.length;for(;i.length>0;){const _=i[0];if(!(_.seq1Range.intersects(h.seq1Range)||_.seq2Range.intersects(h.seq2Range)))break;const w=n.findWordContaining(_.seq1Range.start),y=e.findWordContaining(_.seq2Range.start),S=new qs(w,y),x=S.intersect(_);if(g+=x.seq1Range.length,p+=x.seq2Range.length,h=h.join(S),h.seq1Range.endExclusive>=_.seq1Range.endExclusive)i.shift();else break}g+p<(h.seq1Range.length+h.seq2Range.length)*2/3&&s.push(h),o=h.getEndExclusives()}for(;i.length>0;){const l=i.shift();l.seq1Range.isEmpty||(r(l.getStarts(),l),r(l.getEndExclusives().delta(-1),l))}return c4e(t,s)}function c4e(n,e){const t=[];for(;n.length>0||e.length>0;){const i=n[0],s=e[0];let o;i&&(!s||i.seq1Range.start<s.seq1Range.start)?o=n.shift():o=e.shift(),t.length>0&&t[t.length-1].seq1Range.endExclusive>=o.seq1Range.start?t[t.length-1]=t[t.length-1].join(o):t.push(o)}return t}function d4e(n,e,t){let i=t;if(i.length===0)return i;let s=0,o;do{o=!1;const r=[i[0]];for(let a=1;a<i.length;a++){let d=function(h,f){const g=new zt(c.seq1Range.endExclusive,l.seq1Range.start);return n.getText(g).replace(/\\s/g,\"\").length<=4&&(h.seq1Range.length+h.seq2Range.length>5||f.seq1Range.length+f.seq2Range.length>5)};const l=i[a],c=r[r.length-1];d(c,l)?(o=!0,r[r.length-1]=r[r.length-1].join(l)):r.push(l)}i=r}while(s++<10&&o);return i}function u4e(n,e,t){let i=t;if(i.length===0)return i;let s=0,o;do{o=!1;const a=[i[0]];for(let l=1;l<i.length;l++){let u=function(f,g){const p=new zt(d.seq1Range.endExclusive,c.seq1Range.start);if(n.countLinesIn(p)>5||p.length>500)return!1;const b=n.getText(p).trim();if(b.length>20||b.split(/\\r\\n|\\r|\\n/).length>1)return!1;const w=n.countLinesIn(f.seq1Range),y=f.seq1Range.length,S=e.countLinesIn(f.seq2Range),x=f.seq2Range.length,k=n.countLinesIn(g.seq1Range),D=g.seq1Range.length,I=e.countLinesIn(g.seq2Range),N=g.seq2Range.length,P=2*40+50;function O(M){return Math.min(M,P)}return Math.pow(Math.pow(O(w*40+y),1.5)+Math.pow(O(S*40+x),1.5),1.5)+Math.pow(Math.pow(O(k*40+D),1.5)+Math.pow(O(I*40+N),1.5),1.5)>(P**1.5)**1.5*1.3};const c=i[l],d=a[a.length-1];u(d,c)?(o=!0,a[a.length-1]=a[a.length-1].join(c)):a.push(c)}i=a}while(s++<10&&o);const r=[];return o2e(i,(a,l,c)=>{let d=l;function u(b){return b.length>0&&b.trim().length<=3&&l.seq1Range.length+l.seq2Range.length>100}const h=n.extendToFullLines(l.seq1Range),f=n.getText(new zt(h.start,l.seq1Range.start));u(f)&&(d=d.deltaStart(-f.length));const g=n.getText(new zt(l.seq1Range.endExclusive,h.endExclusive));u(g)&&(d=d.deltaEnd(g.length));const p=qs.fromOffsetPairs(a?a.getEndExclusives():Yl.zero,c?c.getStarts():Yl.max),_=d.intersect(p);r.length>0&&_.getStarts().equals(r[r.length-1].getEndExclusives())?r[r.length-1]=r[r.length-1].join(_):r.push(_)}),r}class lX{constructor(e,t){this.trimmedHash=e,this.lines=t}getElement(e){return this.trimmedHash[e]}get length(){return this.trimmedHash.length}getBoundaryScore(e){const t=e===0?0:cX(this.lines[e-1]),i=e===this.lines.length?0:cX(this.lines[e]);return 1e3-(t+i)}getText(e){return this.lines.slice(e.start,e.endExclusive).join(`\n`)}isStronglyEqual(e,t){return this.lines[e]===this.lines[t]}}function cX(n){let e=0;for(;e<n.length&&(n.charCodeAt(e)===32||n.charCodeAt(e)===9);)e++;return e}class Dle{constructor(){this.dynamicProgrammingDiffing=new YOe,this.myersDiffingAlgorithm=new kle}computeDiff(e,t,i){if(e.length<=1&&zn(e,t,(x,k)=>x===k))return new pN([],[],!1);if(e.length===1&&e[0].length===0||t.length===1&&t[0].length===0)return new pN([new Cl(new Vt(1,e.length+1),new Vt(1,t.length+1),[new qd(new A(1,1,e.length,e[e.length-1].length+1),new A(1,1,t.length,t[t.length-1].length+1))])],[],!1);const s=i.maxComputationTimeMs===0?bL.instance:new ZOe(i.maxComputationTimeMs),o=!i.ignoreTrimWhitespace,r=new Map;function a(x){let k=r.get(x);return k===void 0&&(k=r.size,r.set(x,k)),k}const l=e.map(x=>a(x.trim())),c=t.map(x=>a(x.trim())),d=new lX(l,e),u=new lX(c,t),h=d.length+u.length<1700?this.dynamicProgrammingDiffing.compute(d,u,s,(x,k)=>e[x]===t[k]?t[k].length===0?.1:1+Math.log(1+t[k].length):.99):this.myersDiffingAlgorithm.compute(d,u,s);let f=h.diffs,g=h.hitTimeout;f=CB(d,u,f),f=d4e(d,u,f);const p=[],_=x=>{if(o)for(let k=0;k<x;k++){const D=b+k,I=w+k;if(e[D]!==t[I]){const N=this.refineDiff(e,t,new qs(new zt(D,D+1),new zt(I,I+1)),s,o);for(const P of N.mappings)p.push(P);N.hitTimeout&&(g=!0)}}};let b=0,w=0;for(const x of f){g0(()=>x.seq1Range.start-b===x.seq2Range.start-w);const k=x.seq1Range.start-b;_(k),b=x.seq1Range.endExclusive,w=x.seq2Range.endExclusive;const D=this.refineDiff(e,t,x,s,o);D.hitTimeout&&(g=!0);for(const I of D.mappings)p.push(I)}_(e.length-b);const y=dX(p,e,t);let S=[];return i.computeMoves&&(S=this.computeMoves(y,e,t,l,c,s,o)),g0(()=>{function x(D,I){if(D.lineNumber<1||D.lineNumber>I.length)return!1;const N=I[D.lineNumber-1];return!(D.column<1||D.column>N.length+1)}function k(D,I){return!(D.startLineNumber<1||D.startLineNumber>I.length+1||D.endLineNumberExclusive<1||D.endLineNumberExclusive>I.length+1)}for(const D of y){if(!D.innerChanges)return!1;for(const I of D.innerChanges)if(!(x(I.modifiedRange.getStartPosition(),t)&&x(I.modifiedRange.getEndPosition(),t)&&x(I.originalRange.getStartPosition(),e)&&x(I.originalRange.getEndPosition(),e)))return!1;if(!k(D.modified,t)||!k(D.original,e))return!1}return!0}),new pN(y,S,g)}computeMoves(e,t,i,s,o,r,a){return e4e(e,t,i,s,o,r).map(d=>{const u=this.refineDiff(t,i,new qs(d.original.toOffsetRange(),d.modified.toOffsetRange()),r,a),h=dX(u.mappings,t,i,!0);return new Sle(d,h)})}refineDiff(e,t,i,s,o){const r=new q2(e,i.seq1Range,o),a=new q2(t,i.seq2Range,o),l=r.length+a.length<500?this.dynamicProgrammingDiffing.compute(r,a,s):this.myersDiffingAlgorithm.compute(r,a,s);let c=l.diffs;return c=CB(r,a,c),c=l4e(r,a,c),c=a4e(r,a,c),c=u4e(r,a,c),{mappings:c.map(u=>new qd(r.translateRange(u.seq1Range),a.translateRange(u.seq2Range))),hitTimeout:l.hitTimeout}}}function dX(n,e,t,i=!1){const s=[];for(const o of TV(n.map(r=>h4e(r,e,t)),(r,a)=>r.original.overlapOrTouch(a.original)||r.modified.overlapOrTouch(a.modified))){const r=o[0],a=o[o.length-1];s.push(new Cl(r.original.join(a.original),r.modified.join(a.modified),o.map(l=>l.innerChanges[0])))}return g0(()=>!i&&s.length>0&&(s[0].modified.startLineNumber!==s[0].original.startLineNumber||t.length-s[s.length-1].modified.endLineNumberExclusive!==e.length-s[s.length-1].original.endLineNumberExclusive)?!1:lz(s,(o,r)=>r.original.startLineNumber-o.original.endLineNumberExclusive===r.modified.startLineNumber-o.modified.endLineNumberExclusive&&o.original.endLineNumberExclusive<r.original.startLineNumber&&o.modified.endLineNumberExclusive<r.modified.startLineNumber)),s}function h4e(n,e,t){let i=0,s=0;n.modifiedRange.endColumn===1&&n.originalRange.endColumn===1&&n.originalRange.startLineNumber+i<=n.originalRange.endLineNumber&&n.modifiedRange.startLineNumber+i<=n.modifiedRange.endLineNumber&&(s=-1),n.modifiedRange.startColumn-1>=t[n.modifiedRange.startLineNumber-1].length&&n.originalRange.startColumn-1>=e[n.originalRange.startLineNumber-1].length&&n.originalRange.startLineNumber<=n.originalRange.endLineNumber+s&&n.modifiedRange.startLineNumber<=n.modifiedRange.endLineNumber+s&&(i=1);const o=new Vt(n.originalRange.startLineNumber+i,n.originalRange.endLineNumber+1+s),r=new Vt(n.modifiedRange.startLineNumber+i,n.modifiedRange.endLineNumber+1+s);return new Cl(o,r,[n])}const uX={getLegacy:()=>new jOe,getDefault:()=>new Dle};function um(n,e){const t=Math.pow(10,e);return Math.round(n*t)/t}class ci{constructor(e,t,i,s=1){this._rgbaBrand=void 0,this.r=Math.min(255,Math.max(0,e))|0,this.g=Math.min(255,Math.max(0,t))|0,this.b=Math.min(255,Math.max(0,i))|0,this.a=um(Math.max(Math.min(1,s),0),3)}static equals(e,t){return e.r===t.r&&e.g===t.g&&e.b===t.b&&e.a===t.a}}class Vc{constructor(e,t,i,s){this._hslaBrand=void 0,this.h=Math.max(Math.min(360,e),0)|0,this.s=um(Math.max(Math.min(1,t),0),3),this.l=um(Math.max(Math.min(1,i),0),3),this.a=um(Math.max(Math.min(1,s),0),3)}static equals(e,t){return e.h===t.h&&e.s===t.s&&e.l===t.l&&e.a===t.a}static fromRGBA(e){const t=e.r/255,i=e.g/255,s=e.b/255,o=e.a,r=Math.max(t,i,s),a=Math.min(t,i,s);let l=0,c=0;const d=(a+r)/2,u=r-a;if(u>0){switch(c=Math.min(d<=.5?u/(2*d):u/(2-2*d),1),r){case t:l=(i-s)/u+(i<s?6:0);break;case i:l=(s-t)/u+2;break;case s:l=(t-i)/u+4;break}l*=60,l=Math.round(l)}return new Vc(l,c,d,o)}static _hue2rgb(e,t,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?e+(t-e)*6*i:i<1/2?t:i<2/3?e+(t-e)*(2/3-i)*6:e}static toRGBA(e){const t=e.h/360,{s:i,l:s,a:o}=e;let r,a,l;if(i===0)r=a=l=s;else{const c=s<.5?s*(1+i):s+i-s*i,d=2*s-c;r=Vc._hue2rgb(d,c,t+1/3),a=Vc._hue2rgb(d,c,t),l=Vc._hue2rgb(d,c,t-1/3)}return new ci(Math.round(r*255),Math.round(a*255),Math.round(l*255),o)}}class rh{constructor(e,t,i,s){this._hsvaBrand=void 0,this.h=Math.max(Math.min(360,e),0)|0,this.s=um(Math.max(Math.min(1,t),0),3),this.v=um(Math.max(Math.min(1,i),0),3),this.a=um(Math.max(Math.min(1,s),0),3)}static equals(e,t){return e.h===t.h&&e.s===t.s&&e.v===t.v&&e.a===t.a}static fromRGBA(e){const t=e.r/255,i=e.g/255,s=e.b/255,o=Math.max(t,i,s),r=Math.min(t,i,s),a=o-r,l=o===0?0:a/o;let c;return a===0?c=0:o===t?c=((i-s)/a%6+6)%6:o===i?c=(s-t)/a+2:c=(t-i)/a+4,new rh(Math.round(c*60),l,o,e.a)}static toRGBA(e){const{h:t,s:i,v:s,a:o}=e,r=s*i,a=r*(1-Math.abs(t/60%2-1)),l=s-r;let[c,d,u]=[0,0,0];return t<60?(c=r,d=a):t<120?(c=a,d=r):t<180?(d=r,u=a):t<240?(d=a,u=r):t<300?(c=a,u=r):t<=360&&(c=r,u=a),c=Math.round((c+l)*255),d=Math.round((d+l)*255),u=Math.round((u+l)*255),new ci(c,d,u,o)}}class le{static fromHex(e){return le.Format.CSS.parseHex(e)||le.red}static equals(e,t){return!e&&!t?!0:!e||!t?!1:e.equals(t)}get hsla(){return this._hsla?this._hsla:Vc.fromRGBA(this.rgba)}get hsva(){return this._hsva?this._hsva:rh.fromRGBA(this.rgba)}constructor(e){if(e)if(e instanceof ci)this.rgba=e;else if(e instanceof Vc)this._hsla=e,this.rgba=Vc.toRGBA(e);else if(e instanceof rh)this._hsva=e,this.rgba=rh.toRGBA(e);else throw new Error(\"Invalid color ctor argument\");else throw new Error(\"Color needs a value\")}equals(e){return!!e&&ci.equals(this.rgba,e.rgba)&&Vc.equals(this.hsla,e.hsla)&&rh.equals(this.hsva,e.hsva)}getRelativeLuminance(){const e=le._relativeLuminanceForComponent(this.rgba.r),t=le._relativeLuminanceForComponent(this.rgba.g),i=le._relativeLuminanceForComponent(this.rgba.b),s=.2126*e+.7152*t+.0722*i;return um(s,4)}static _relativeLuminanceForComponent(e){const t=e/255;return t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}isLighter(){return(this.rgba.r*299+this.rgba.g*587+this.rgba.b*114)/1e3>=128}isLighterThan(e){const t=this.getRelativeLuminance(),i=e.getRelativeLuminance();return t>i}isDarkerThan(e){const t=this.getRelativeLuminance(),i=e.getRelativeLuminance();return t<i}lighten(e){return new le(new Vc(this.hsla.h,this.hsla.s,this.hsla.l+this.hsla.l*e,this.hsla.a))}darken(e){return new le(new Vc(this.hsla.h,this.hsla.s,this.hsla.l-this.hsla.l*e,this.hsla.a))}transparent(e){const{r:t,g:i,b:s,a:o}=this.rgba;return new le(new ci(t,i,s,o*e))}isTransparent(){return this.rgba.a===0}isOpaque(){return this.rgba.a===1}opposite(){return new le(new ci(255-this.rgba.r,255-this.rgba.g,255-this.rgba.b,this.rgba.a))}makeOpaque(e){if(this.isOpaque()||e.rgba.a!==1)return this;const{r:t,g:i,b:s,a:o}=this.rgba;return new le(new ci(e.rgba.r-o*(e.rgba.r-t),e.rgba.g-o*(e.rgba.g-i),e.rgba.b-o*(e.rgba.b-s),1))}toString(){return this._toString||(this._toString=le.Format.CSS.format(this)),this._toString}static getLighterColor(e,t,i){if(e.isLighterThan(t))return e;i=i||.5;const s=e.getRelativeLuminance(),o=t.getRelativeLuminance();return i=i*(o-s)/o,e.lighten(i)}static getDarkerColor(e,t,i){if(e.isDarkerThan(t))return e;i=i||.5;const s=e.getRelativeLuminance(),o=t.getRelativeLuminance();return i=i*(s-o)/s,e.darken(i)}}le.white=new le(new ci(255,255,255,1));le.black=new le(new ci(0,0,0,1));le.red=new le(new ci(255,0,0,1));le.blue=new le(new ci(0,0,255,1));le.green=new le(new ci(0,255,0,1));le.cyan=new le(new ci(0,255,255,1));le.lightgrey=new le(new ci(211,211,211,1));le.transparent=new le(new ci(0,0,0,0));(function(n){(function(e){(function(t){function i(f){return f.rgba.a===1?`rgb(${f.rgba.r}, ${f.rgba.g}, ${f.rgba.b})`:n.Format.CSS.formatRGBA(f)}t.formatRGB=i;function s(f){return`rgba(${f.rgba.r}, ${f.rgba.g}, ${f.rgba.b}, ${+f.rgba.a.toFixed(2)})`}t.formatRGBA=s;function o(f){return f.hsla.a===1?`hsl(${f.hsla.h}, ${(f.hsla.s*100).toFixed(2)}%, ${(f.hsla.l*100).toFixed(2)}%)`:n.Format.CSS.formatHSLA(f)}t.formatHSL=o;function r(f){return`hsla(${f.hsla.h}, ${(f.hsla.s*100).toFixed(2)}%, ${(f.hsla.l*100).toFixed(2)}%, ${f.hsla.a.toFixed(2)})`}t.formatHSLA=r;function a(f){const g=f.toString(16);return g.length!==2?\"0\"+g:g}function l(f){return`#${a(f.rgba.r)}${a(f.rgba.g)}${a(f.rgba.b)}`}t.formatHex=l;function c(f,g=!1){return g&&f.rgba.a===1?n.Format.CSS.formatHex(f):`#${a(f.rgba.r)}${a(f.rgba.g)}${a(f.rgba.b)}${a(Math.round(f.rgba.a*255))}`}t.formatHexA=c;function d(f){return f.isOpaque()?n.Format.CSS.formatHex(f):n.Format.CSS.formatRGBA(f)}t.format=d;function u(f){const g=f.length;if(g===0||f.charCodeAt(0)!==35)return null;if(g===7){const p=16*h(f.charCodeAt(1))+h(f.charCodeAt(2)),_=16*h(f.charCodeAt(3))+h(f.charCodeAt(4)),b=16*h(f.charCodeAt(5))+h(f.charCodeAt(6));return new n(new ci(p,_,b,1))}if(g===9){const p=16*h(f.charCodeAt(1))+h(f.charCodeAt(2)),_=16*h(f.charCodeAt(3))+h(f.charCodeAt(4)),b=16*h(f.charCodeAt(5))+h(f.charCodeAt(6)),w=16*h(f.charCodeAt(7))+h(f.charCodeAt(8));return new n(new ci(p,_,b,w/255))}if(g===4){const p=h(f.charCodeAt(1)),_=h(f.charCodeAt(2)),b=h(f.charCodeAt(3));return new n(new ci(16*p+p,16*_+_,16*b+b))}if(g===5){const p=h(f.charCodeAt(1)),_=h(f.charCodeAt(2)),b=h(f.charCodeAt(3)),w=h(f.charCodeAt(4));return new n(new ci(16*p+p,16*_+_,16*b+b,(16*w+w)/255))}return null}t.parseHex=u;function h(f){switch(f){case 48:return 0;case 49:return 1;case 50:return 2;case 51:return 3;case 52:return 4;case 53:return 5;case 54:return 6;case 55:return 7;case 56:return 8;case 57:return 9;case 97:return 10;case 65:return 10;case 98:return 11;case 66:return 11;case 99:return 12;case 67:return 12;case 100:return 13;case 68:return 13;case 101:return 14;case 69:return 14;case 102:return 15;case 70:return 15}return 0}})(e.CSS||(e.CSS={}))})(n.Format||(n.Format={}))})(le||(le={}));function Ile(n){const e=[];for(const t of n){const i=Number(t);(i||i===0&&t.replace(/\\s/g,\"\")!==\"\")&&e.push(i)}return e}function _z(n,e,t,i){return{red:n/255,blue:t/255,green:e/255,alpha:i}}function My(n,e){const t=e.index,i=e[0].length;if(!t)return;const s=n.positionAt(t);return{startLineNumber:s.lineNumber,startColumn:s.column,endLineNumber:s.lineNumber,endColumn:s.column+i}}function f4e(n,e){if(!n)return;const t=le.Format.CSS.parseHex(e);if(t)return{range:n,color:_z(t.rgba.r,t.rgba.g,t.rgba.b,t.rgba.a)}}function hX(n,e,t){if(!n||e.length!==1)return;const s=e[0].values(),o=Ile(s);return{range:n,color:_z(o[0],o[1],o[2],t?o[3]:1)}}function fX(n,e,t){if(!n||e.length!==1)return;const s=e[0].values(),o=Ile(s),r=new le(new Vc(o[0],o[1]/100,o[2]/100,t?o[3]:1));return{range:n,color:_z(r.rgba.r,r.rgba.g,r.rgba.b,r.rgba.a)}}function Py(n,e){return typeof n==\"string\"?[...n.matchAll(e)]:n.findMatches(e)}function g4e(n){const e=[],i=Py(n,/\\b(rgb|rgba|hsl|hsla)(\\([0-9\\s,.\\%]*\\))|(#)([A-Fa-f0-9]{3})\\b|(#)([A-Fa-f0-9]{4})\\b|(#)([A-Fa-f0-9]{6})\\b|(#)([A-Fa-f0-9]{8})\\b/gm);if(i.length>0)for(const s of i){const o=s.filter(c=>c!==void 0),r=o[1],a=o[2];if(!a)continue;let l;if(r===\"rgb\"){const c=/^\\(\\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\\s*,\\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\\s*,\\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\\s*\\)$/gm;l=hX(My(n,s),Py(a,c),!1)}else if(r===\"rgba\"){const c=/^\\(\\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\\s*,\\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\\s*,\\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\\s*,\\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\\s*\\)$/gm;l=hX(My(n,s),Py(a,c),!0)}else if(r===\"hsl\"){const c=/^\\(\\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\\s*,\\s*(100|\\d{1,2}[.]\\d*|\\d{1,2})%\\s*,\\s*(100|\\d{1,2}[.]\\d*|\\d{1,2})%\\s*\\)$/gm;l=fX(My(n,s),Py(a,c),!1)}else if(r===\"hsla\"){const c=/^\\(\\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\\s*,\\s*(100|\\d{1,2}[.]\\d*|\\d{1,2})%\\s*,\\s*(100|\\d{1,2}[.]\\d*|\\d{1,2})%\\s*,\\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\\s*\\)$/gm;l=fX(My(n,s),Py(a,c),!0)}else r===\"#\"&&(l=f4e(My(n,s),r+a));l&&e.push(l)}return e}function p4e(n){return!n||typeof n.getValue!=\"function\"||typeof n.positionAt!=\"function\"?[]:g4e(n)}const gX=new RegExp(\"\\\\bMARK:\\\\s*(.*)$\",\"d\"),m4e=/^-+|-+$/g;function _4e(n,e){var t;let i=[];if(e.findRegionSectionHeaders&&(!((t=e.foldingRules)===null||t===void 0)&&t.markers)){const s=v4e(n,e);i=i.concat(s)}if(e.findMarkSectionHeaders){const s=b4e(n);i=i.concat(s)}return i}function v4e(n,e){const t=[],i=n.getLineCount();for(let s=1;s<=i;s++){const o=n.getLineContent(s),r=o.match(e.foldingRules.markers.start);if(r){const a={startLineNumber:s,startColumn:r[0].length+1,endLineNumber:s,endColumn:o.length+1};if(a.endColumn>a.startColumn){const l={range:a,...Ele(o.substring(r[0].length)),shouldBeInComments:!1};(l.text||l.hasSeparatorLine)&&t.push(l)}}}return t}function b4e(n){const e=[],t=n.getLineCount();for(let i=1;i<=t;i++){const s=n.getLineContent(i);C4e(s,i,e)}return e}function C4e(n,e,t){gX.lastIndex=0;const i=gX.exec(n);if(i){const s=i.indices[1][0]+1,o=i.indices[1][1]+1,r={startLineNumber:e,startColumn:s,endLineNumber:e,endColumn:o};if(r.endColumn>r.startColumn){const a={range:r,...Ele(i[1]),shouldBeInComments:!0};(a.text||a.hasSeparatorLine)&&t.push(a)}}}function Ele(n){n=n.trim();const e=n.startsWith(\"-\");return n=n.replace(m4e,\"\"),{text:n,hasSeparatorLine:e}}class w4e extends mOe{get uri(){return this._uri}get eol(){return this._eol}getValue(){return this.getText()}findMatches(e){const t=[];for(let i=0;i<this._lines.length;i++){const s=this._lines[i],o=this.offsetAt(new ee(i+1,1)),r=s.matchAll(e);for(const a of r)(a.index||a.index===0)&&(a.index=a.index+o),t.push(a)}return t}getLinesContent(){return this._lines.slice(0)}getLineCount(){return this._lines.length}getLineContent(e){return this._lines[e-1]}getWordAtPosition(e,t){const i=sL(e.column,FV(t),this._lines[e.lineNumber-1],0);return i?new A(e.lineNumber,i.startColumn,e.lineNumber,i.endColumn):null}words(e){const t=this._lines,i=this._wordenize.bind(this);let s=0,o=\"\",r=0,a=[];return{*[Symbol.iterator](){for(;;)if(r<a.length){const l=o.substring(a[r].start,a[r].end);r+=1,yield l}else if(s<t.length)o=t[s],a=i(o,e),r=0,s+=1;else break}}}getLineWords(e,t){const i=this._lines[e-1],s=this._wordenize(i,t),o=[];for(const r of s)o.push({word:i.substring(r.start,r.end),startColumn:r.start+1,endColumn:r.end+1});return o}_wordenize(e,t){const i=[];let s;for(t.lastIndex=0;(s=t.exec(e))&&s[0].length!==0;)i.push({start:s.index,end:s.index+s[0].length});return i}getValueInRange(e){if(e=this._validateRange(e),e.startLineNumber===e.endLineNumber)return this._lines[e.startLineNumber-1].substring(e.startColumn-1,e.endColumn-1);const t=this._eol,i=e.startLineNumber-1,s=e.endLineNumber-1,o=[];o.push(this._lines[i].substring(e.startColumn-1));for(let r=i+1;r<s;r++)o.push(this._lines[r]);return o.push(this._lines[s].substring(0,e.endColumn-1)),o.join(t)}offsetAt(e){return e=this._validatePosition(e),this._ensureLineStarts(),this._lineStarts.getPrefixSum(e.lineNumber-2)+(e.column-1)}positionAt(e){e=Math.floor(e),e=Math.max(0,e),this._ensureLineStarts();const t=this._lineStarts.getIndexOf(e),i=this._lines[t.index].length;return{lineNumber:1+t.index,column:1+Math.min(t.remainder,i)}}_validateRange(e){const t=this._validatePosition({lineNumber:e.startLineNumber,column:e.startColumn}),i=this._validatePosition({lineNumber:e.endLineNumber,column:e.endColumn});return t.lineNumber!==e.startLineNumber||t.column!==e.startColumn||i.lineNumber!==e.endLineNumber||i.column!==e.endColumn?{startLineNumber:t.lineNumber,startColumn:t.column,endLineNumber:i.lineNumber,endColumn:i.column}:e}_validatePosition(e){if(!ee.isIPosition(e))throw new Error(\"bad position\");let{lineNumber:t,column:i}=e,s=!1;if(t<1)t=1,i=1,s=!0;else if(t>this._lines.length)t=this._lines.length,i=this._lines[t-1].length+1,s=!0;else{const o=this._lines[t-1].length+1;i<1?(i=1,s=!0):i>o&&(i=o,s=!0)}return s?{lineNumber:t,column:i}:e}}class hm{constructor(e,t){this._host=e,this._models=Object.create(null),this._foreignModuleFactory=t,this._foreignModule=null}dispose(){this._models=Object.create(null)}_getModel(e){return this._models[e]}_getModels(){const e=[];return Object.keys(this._models).forEach(t=>e.push(this._models[t])),e}acceptNewModel(e){this._models[e.url]=new w4e(pt.parse(e.url),e.lines,e.EOL,e.versionId)}acceptModelChanged(e,t){if(!this._models[e])return;this._models[e].onEvents(t)}acceptRemovedModel(e){this._models[e]&&delete this._models[e]}async computeUnicodeHighlights(e,t,i){const s=this._getModel(e);return s?fz.computeUnicodeHighlights(s,t,i):{ranges:[],hasMore:!1,ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0}}async findSectionHeaders(e,t){const i=this._getModel(e);return i?_4e(i,t):[]}async computeDiff(e,t,i,s){const o=this._getModel(e),r=this._getModel(t);return!o||!r?null:hm.computeDiff(o,r,i,s)}static computeDiff(e,t,i,s){const o=s===\"advanced\"?uX.getDefault():uX.getLegacy(),r=e.getLinesContent(),a=t.getLinesContent(),l=o.computeDiff(r,a,i),c=l.changes.length>0?!1:this._modelsAreIdentical(e,t);function d(u){return u.map(h=>{var f;return[h.original.startLineNumber,h.original.endLineNumberExclusive,h.modified.startLineNumber,h.modified.endLineNumberExclusive,(f=h.innerChanges)===null||f===void 0?void 0:f.map(g=>[g.originalRange.startLineNumber,g.originalRange.startColumn,g.originalRange.endLineNumber,g.originalRange.endColumn,g.modifiedRange.startLineNumber,g.modifiedRange.startColumn,g.modifiedRange.endLineNumber,g.modifiedRange.endColumn])]})}return{identical:c,quitEarly:l.hitTimeout,changes:d(l.changes),moves:l.moves.map(u=>[u.lineRangeMapping.original.startLineNumber,u.lineRangeMapping.original.endLineNumberExclusive,u.lineRangeMapping.modified.startLineNumber,u.lineRangeMapping.modified.endLineNumberExclusive,d(u.changes)])}}static _modelsAreIdentical(e,t){const i=e.getLineCount(),s=t.getLineCount();if(i!==s)return!1;for(let o=1;o<=i;o++){const r=e.getLineContent(o),a=t.getLineContent(o);if(r!==a)return!1}return!0}async computeMoreMinimalEdits(e,t,i){const s=this._getModel(e);if(!s)return t;const o=[];let r;t=t.slice(0).sort((l,c)=>{if(l.range&&c.range)return A.compareRangesUsingStarts(l.range,c.range);const d=l.range?0:1,u=c.range?0:1;return d-u});let a=0;for(let l=1;l<t.length;l++)A.getEndPosition(t[a].range).equals(A.getStartPosition(t[l].range))?(t[a].range=A.fromPositions(A.getStartPosition(t[a].range),A.getEndPosition(t[l].range)),t[a].text+=t[l].text):(a++,t[a]=t[l]);t.length=a+1;for(let{range:l,text:c,eol:d}of t){if(typeof d==\"number\"&&(r=d),A.isEmpty(l)&&!c)continue;const u=s.getValueInRange(l);if(c=c.replace(/\\r\\n|\\n|\\r/g,s.eol),u===c)continue;if(Math.max(c.length,u.length)>hm._diffLimit){o.push({range:l,text:c});continue}const h=fOe(u,c,i),f=s.offsetAt(A.lift(l).getStartPosition());for(const g of h){const p=s.positionAt(f+g.originalStart),_=s.positionAt(f+g.originalStart+g.originalLength),b={text:c.substr(g.modifiedStart,g.modifiedLength),range:{startLineNumber:p.lineNumber,startColumn:p.column,endLineNumber:_.lineNumber,endColumn:_.column}};s.getValueInRange(b.range)!==b.text&&o.push(b)}}return typeof r==\"number\"&&o.push({eol:r,text:\"\",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}}),o}async computeLinks(e){const t=this._getModel(e);return t?wOe(t):null}async computeDefaultDocumentColors(e){const t=this._getModel(e);return t?p4e(t):null}async textualSuggest(e,t,i,s){const o=new xo,r=new RegExp(i,s),a=new Set;e:for(const l of e){const c=this._getModel(l);if(c){for(const d of c.words(r))if(!(d===t||!isNaN(Number(d)))&&(a.add(d),a.size>hm._suggestionsLimit))break e}}return{words:Array.from(a),duration:o.elapsed()}}async computeWordRanges(e,t,i,s){const o=this._getModel(e);if(!o)return Object.create(null);const r=new RegExp(i,s),a=Object.create(null);for(let l=t.startLineNumber;l<t.endLineNumber;l++){const c=o.getLineWords(l,r);for(const d of c){if(!isNaN(Number(d.word)))continue;let u=a[d.word];u||(u=[],a[d.word]=u),u.push({startLineNumber:l,startColumn:d.startColumn,endLineNumber:l,endColumn:d.endColumn})}}return a}async navigateValueSet(e,t,i,s,o){const r=this._getModel(e);if(!r)return null;const a=new RegExp(s,o);t.startColumn===t.endColumn&&(t={startLineNumber:t.startLineNumber,startColumn:t.startColumn,endLineNumber:t.endLineNumber,endColumn:t.endColumn+1});const l=r.getValueInRange(t),c=r.getWordAtPosition({lineNumber:t.startLineNumber,column:t.startColumn},a);if(!c)return null;const d=r.getValueInRange(c);return mB.INSTANCE.navigateValueSet(t,l,c,d,i)}loadForeignModule(e,t,i){const r={host:g2e(i,(a,l)=>this._host.fhr(a,l)),getMirrorModels:()=>this._getModels()};return this._foreignModuleFactory?(this._foreignModule=this._foreignModuleFactory(r,t),Promise.resolve(RV(this._foreignModule))):Promise.reject(new Error(\"Unexpected usage\"))}fmr(e,t){if(!this._foreignModule||typeof this._foreignModule[e]!=\"function\")return Promise.reject(new Error(\"Missing requestHandler or method: \"+e));try{return Promise.resolve(this._foreignModule[e].apply(this._foreignModule,t))}catch(i){return Promise.reject(i)}}}hm._diffLimit=1e5;hm._suggestionsLimit=1e4;typeof importScripts==\"function\"&&(globalThis.monaco=pae());const vz=Jt(\"textResourceConfigurationService\"),Tle=Jt(\"textResourcePropertiesService\"),Xe=Jt(\"ILanguageFeaturesService\");var y4e=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Oy=function(n,e){return function(t,i){e(t,i,n)}};const pX=60*1e3,mX=5*60*1e3;function hv(n,e){const t=n.getModel(e);return!(!t||t.isTooLargeForSyncing())}let wB=class extends ne{constructor(e,t,i,s,o){super(),this._modelService=e,this._workerManager=this._register(new x4e(this._modelService,s)),this._logService=i,this._register(o.linkProvider.register({language:\"*\",hasAccessToAllModels:!0},{provideLinks:(r,a)=>hv(this._modelService,r.uri)?this._workerManager.withWorker().then(l=>l.computeLinks(r.uri)).then(l=>l&&{links:l}):Promise.resolve({links:[]})})),this._register(o.completionProvider.register(\"*\",new S4e(this._workerManager,t,this._modelService,s)))}dispose(){super.dispose()}canComputeUnicodeHighlights(e){return hv(this._modelService,e)}computedUnicodeHighlights(e,t,i){return this._workerManager.withWorker().then(s=>s.computedUnicodeHighlights(e,t,i))}async computeDiff(e,t,i,s){const o=await this._workerManager.withWorker().then(l=>l.computeDiff(e,t,i,s));if(!o)return null;return{identical:o.identical,quitEarly:o.quitEarly,changes:a(o.changes),moves:o.moves.map(l=>new Sle(new Ir(new Vt(l[0],l[1]),new Vt(l[2],l[3])),a(l[4])))};function a(l){return l.map(c=>{var d;return new Cl(new Vt(c[0],c[1]),new Vt(c[2],c[3]),(d=c[4])===null||d===void 0?void 0:d.map(u=>new qd(new A(u[0],u[1],u[2],u[3]),new A(u[4],u[5],u[6],u[7]))))})}}computeMoreMinimalEdits(e,t,i=!1){if(Zo(t)){if(!hv(this._modelService,e))return Promise.resolve(t);const s=xo.create(),o=this._workerManager.withWorker().then(r=>r.computeMoreMinimalEdits(e,t,i));return o.finally(()=>this._logService.trace(\"FORMAT#computeMoreMinimalEdits\",e.toString(!0),s.elapsed())),Promise.race([o,Dg(1e3).then(()=>t)])}else return Promise.resolve(void 0)}canNavigateValueSet(e){return hv(this._modelService,e)}navigateValueSet(e,t,i){return this._workerManager.withWorker().then(s=>s.navigateValueSet(e,t,i))}canComputeWordRanges(e){return hv(this._modelService,e)}computeWordRanges(e,t){return this._workerManager.withWorker().then(i=>i.computeWordRanges(e,t))}findSectionHeaders(e,t){return this._workerManager.withWorker().then(i=>i.findSectionHeaders(e,t))}};wB=y4e([Oy(0,Pn),Oy(1,vz),Oy(2,er),Oy(3,gn),Oy(4,Xe)],wB);class S4e{constructor(e,t,i,s){this.languageConfigurationService=s,this._debugDisplayName=\"wordbasedCompletions\",this._workerManager=e,this._configurationService=t,this._modelService=i}async provideCompletionItems(e,t){const i=this._configurationService.getValue(e.uri,t,\"editor\");if(i.wordBasedSuggestions===\"off\")return;const s=[];if(i.wordBasedSuggestions===\"currentDocument\")hv(this._modelService,e.uri)&&s.push(e.uri);else for(const u of this._modelService.getModels())hv(this._modelService,u.uri)&&(u===e?s.unshift(u.uri):(i.wordBasedSuggestions===\"allDocuments\"||u.getLanguageId()===e.getLanguageId())&&s.push(u.uri));if(s.length===0)return;const o=this.languageConfigurationService.getLanguageConfiguration(e.getLanguageId()).getWordDefinition(),r=e.getWordAtPosition(t),a=r?new A(t.lineNumber,r.startColumn,t.lineNumber,r.endColumn):A.fromPositions(t),l=a.setEndPosition(t.lineNumber,t.column),d=await(await this._workerManager.withWorker()).textualSuggest(s,r==null?void 0:r.word,o);if(d)return{duration:d.duration,suggestions:d.words.map(u=>({kind:18,label:u,insertText:u,range:{insert:l,replace:a}}))}}}class x4e extends ne{constructor(e,t){super(),this.languageConfigurationService=t,this._modelService=e,this._editorWorkerClient=null,this._lastWorkerUsedTime=new Date().getTime(),this._register(new iz).cancelAndSet(()=>this._checkStopIdleWorker(),Math.round(mX/2),Ji),this._register(this._modelService.onModelRemoved(s=>this._checkStopEmptyWorker()))}dispose(){this._editorWorkerClient&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null),super.dispose()}_checkStopEmptyWorker(){if(!this._editorWorkerClient)return;this._modelService.getModels().length===0&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null)}_checkStopIdleWorker(){if(!this._editorWorkerClient)return;new Date().getTime()-this._lastWorkerUsedTime>mX&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null)}withWorker(){return this._lastWorkerUsedTime=new Date().getTime(),this._editorWorkerClient||(this._editorWorkerClient=new bz(this._modelService,!1,\"editorWorkerService\",this.languageConfigurationService)),Promise.resolve(this._editorWorkerClient)}}class L4e extends ne{constructor(e,t,i){if(super(),this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),this._proxy=e,this._modelService=t,!i){const s=new JV;s.cancelAndSet(()=>this._checkStopModelSync(),Math.round(pX/2)),this._register(s)}}dispose(){for(const e in this._syncedModels)tn(this._syncedModels[e]);this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),super.dispose()}ensureSyncedResources(e,t){for(const i of e){const s=i.toString();this._syncedModels[s]||this._beginModelSync(i,t),this._syncedModels[s]&&(this._syncedModelsLastUsedTime[s]=new Date().getTime())}}_checkStopModelSync(){const e=new Date().getTime(),t=[];for(const i in this._syncedModelsLastUsedTime)e-this._syncedModelsLastUsedTime[i]>pX&&t.push(i);for(const i of t)this._stopModelSync(i)}_beginModelSync(e,t){const i=this._modelService.getModel(e);if(!i||!t&&i.isTooLargeForSyncing())return;const s=e.toString();this._proxy.acceptNewModel({url:i.uri.toString(),lines:i.getLinesContent(),EOL:i.getEOL(),versionId:i.getVersionId()});const o=new be;o.add(i.onDidChangeContent(r=>{this._proxy.acceptModelChanged(s.toString(),r)})),o.add(i.onWillDispose(()=>{this._stopModelSync(s)})),o.add(dt(()=>{this._proxy.acceptRemovedModel(s)})),this._syncedModels[s]=o}_stopModelSync(e){const t=this._syncedModels[e];delete this._syncedModels[e],delete this._syncedModelsLastUsedTime[e],tn(t)}}class _X{constructor(e){this._instance=e,this._proxyObj=Promise.resolve(this._instance)}dispose(){this._instance.dispose()}getProxyObject(){return this._proxyObj}}class XF{constructor(e){this._workerClient=e}fhr(e,t){return this._workerClient.fhr(e,t)}}class bz extends ne{constructor(e,t,i,s){super(),this.languageConfigurationService=s,this._disposed=!1,this._modelService=e,this._keepIdleModels=t,this._workerFactory=new xM(i),this._worker=null,this._modelManager=null}fhr(e,t){throw new Error(\"Not implemented!\")}_getOrCreateWorker(){if(!this._worker)try{this._worker=this._register(new kPe(this._workerFactory,\"vs/editor/common/services/editorSimpleWorker\",new XF(this)))}catch(e){hB(e),this._worker=new _X(new hm(new XF(this),null))}return this._worker}_getProxy(){return this._getOrCreateWorker().getProxyObject().then(void 0,e=>(hB(e),this._worker=new _X(new hm(new XF(this),null)),this._getOrCreateWorker().getProxyObject()))}_getOrCreateModelManager(e){return this._modelManager||(this._modelManager=this._register(new L4e(e,this._modelService,this._keepIdleModels))),this._modelManager}async _withSyncedResources(e,t=!1){return this._disposed?Promise.reject(CAe()):this._getProxy().then(i=>(this._getOrCreateModelManager(i).ensureSyncedResources(e,t),i))}computedUnicodeHighlights(e,t,i){return this._withSyncedResources([e]).then(s=>s.computeUnicodeHighlights(e.toString(),t,i))}computeDiff(e,t,i,s){return this._withSyncedResources([e,t],!0).then(o=>o.computeDiff(e.toString(),t.toString(),i,s))}computeMoreMinimalEdits(e,t,i){return this._withSyncedResources([e]).then(s=>s.computeMoreMinimalEdits(e.toString(),t,i))}computeLinks(e){return this._withSyncedResources([e]).then(t=>t.computeLinks(e.toString()))}computeDefaultDocumentColors(e){return this._withSyncedResources([e]).then(t=>t.computeDefaultDocumentColors(e.toString()))}async textualSuggest(e,t,i){const s=await this._withSyncedResources(e),o=i.source,r=i.flags;return s.textualSuggest(e.map(a=>a.toString()),t,o,r)}computeWordRanges(e,t){return this._withSyncedResources([e]).then(i=>{const s=this._modelService.getModel(e);if(!s)return Promise.resolve(null);const o=this.languageConfigurationService.getLanguageConfiguration(s.getLanguageId()).getWordDefinition(),r=o.source,a=o.flags;return i.computeWordRanges(e.toString(),t,r,a)})}navigateValueSet(e,t,i){return this._withSyncedResources([e]).then(s=>{const o=this._modelService.getModel(e);if(!o)return null;const r=this.languageConfigurationService.getLanguageConfiguration(o.getLanguageId()).getWordDefinition(),a=r.source,l=r.flags;return s.navigateValueSet(e.toString(),t,i,a,l)})}findSectionHeaders(e,t){return this._withSyncedResources([e]).then(i=>i.findSectionHeaders(e.toString(),t))}dispose(){super.dispose(),this._disposed=!0}}function k4e(n,e,t){return new D4e(n,e,t)}class D4e extends bz{constructor(e,t,i){super(e,i.keepIdleModels||!1,i.label,t),this._foreignModuleId=i.moduleId,this._foreignModuleCreateData=i.createData||null,this._foreignModuleHost=i.host||null,this._foreignProxy=null}fhr(e,t){if(!this._foreignModuleHost||typeof this._foreignModuleHost[e]!=\"function\")return Promise.reject(new Error(\"Missing method \"+e+\" or missing main thread foreign host.\"));try{return Promise.resolve(this._foreignModuleHost[e].apply(this._foreignModuleHost,t))}catch(i){return Promise.reject(i)}}_getForeignProxy(){return this._foreignProxy||(this._foreignProxy=this._getProxy().then(e=>{const t=this._foreignModuleHost?RV(this._foreignModuleHost):[];return e.loadForeignModule(this._foreignModuleId,this._foreignModuleCreateData,t).then(i=>{this._foreignModuleCreateData=null;const s=(a,l)=>e.fmr(a,l),o=(a,l)=>function(){const c=Array.prototype.slice.call(arguments,0);return l(a,c)},r={};for(const a of i)r[a]=o(a,s);return r})})),this._foreignProxy}getProxy(){return this._getForeignProxy()}withSyncedResources(e){return this._withSyncedResources(e).then(t=>this.getProxy())}}const mD={ICodeEditor:\"vs.editor.ICodeEditor\",IDiffEditor:\"vs.editor.IDiffEditor\"},OC=new class{clone(){return this}equals(n){return this===n}};function Cz(n,e){return new $V([new oL(0,\"\",n)],e)}function IM(n,e){const t=new Uint32Array(2);return t[0]=0,t[1]=(n<<0|0|0|32768|2<<24)>>>0,new oM(t,e===null?OC:e)}class No{static getLanguageId(e){return(e&255)>>>0}static getTokenType(e){return(e&768)>>>8}static containsBalancedBrackets(e){return(e&1024)!==0}static getFontStyle(e){return(e&30720)>>>11}static getForeground(e){return(e&16744448)>>>15}static getBackground(e){return(e&4278190080)>>>24}static getClassNameFromMetadata(e){let i=\"mtk\"+this.getForeground(e);const s=this.getFontStyle(e);return s&1&&(i+=\" mtki\"),s&2&&(i+=\" mtkb\"),s&4&&(i+=\" mtku\"),s&8&&(i+=\" mtks\"),i}static getInlineStyleFromMetadata(e,t){const i=this.getForeground(e),s=this.getFontStyle(e);let o=`color: ${t[i]};`;s&1&&(o+=\"font-style: italic;\"),s&2&&(o+=\"font-weight: bold;\");let r=\"\";return s&4&&(r+=\" underline\"),s&8&&(r+=\" line-through\"),r&&(o+=`text-decoration:${r};`),o}static getPresentationFromMetadata(e){const t=this.getForeground(e),i=this.getFontStyle(e);return{foreground:t,italic:!!(i&1),bold:!!(i&2),underline:!!(i&4),strikethrough:!!(i&8)}}}class Is{static createEmpty(e,t){const i=Is.defaultTokenMetadata,s=new Uint32Array(2);return s[0]=e.length,s[1]=i,new Is(s,e,t)}static createFromTextAndMetadata(e,t){let i=0,s=\"\";const o=new Array;for(const{text:r,metadata:a}of e)o.push(i+r.length,a),i+=r.length,s+=r;return new Is(new Uint32Array(o),s,t)}constructor(e,t,i){this._lineTokensBrand=void 0,this._tokens=e,this._tokensCount=this._tokens.length>>>1,this._text=t,this.languageIdCodec=i}equals(e){return e instanceof Is?this.slicedEquals(e,0,this._tokensCount):!1}slicedEquals(e,t,i){if(this._text!==e._text||this._tokensCount!==e._tokensCount)return!1;const s=t<<1,o=s+(i<<1);for(let r=s;r<o;r++)if(this._tokens[r]!==e._tokens[r])return!1;return!0}getLineContent(){return this._text}getCount(){return this._tokensCount}getStartOffset(e){return e>0?this._tokens[e-1<<1]:0}getMetadata(e){return this._tokens[(e<<1)+1]}getLanguageId(e){const t=this._tokens[(e<<1)+1],i=No.getLanguageId(t);return this.languageIdCodec.decodeLanguageId(i)}getStandardTokenType(e){const t=this._tokens[(e<<1)+1];return No.getTokenType(t)}getForeground(e){const t=this._tokens[(e<<1)+1];return No.getForeground(t)}getClassName(e){const t=this._tokens[(e<<1)+1];return No.getClassNameFromMetadata(t)}getInlineStyle(e,t){const i=this._tokens[(e<<1)+1];return No.getInlineStyleFromMetadata(i,t)}getPresentation(e){const t=this._tokens[(e<<1)+1];return No.getPresentationFromMetadata(t)}getEndOffset(e){return this._tokens[e<<1]}findTokenIndexAtOffset(e){return Is.findIndexInTokensArray(this._tokens,e)}inflate(){return this}sliceAndInflate(e,t,i){return new wz(this,e,t,i)}static convertToEndOffset(e,t){const s=(e.length>>>1)-1;for(let o=0;o<s;o++)e[o<<1]=e[o+1<<1];e[s<<1]=t}static findIndexInTokensArray(e,t){if(e.length<=2)return 0;let i=0,s=(e.length>>>1)-1;for(;i<s;){const o=i+Math.floor((s-i)/2),r=e[o<<1];if(r===t)return o+1;r<t?i=o+1:r>t&&(s=o)}return i}withInserted(e){if(e.length===0)return this;let t=0,i=0,s=\"\";const o=new Array;let r=0;for(;;){const a=t<this._tokensCount?this._tokens[t<<1]:-1,l=i<e.length?e[i]:null;if(a!==-1&&(l===null||a<=l.offset)){s+=this._text.substring(r,a);const c=this._tokens[(t<<1)+1];o.push(s.length,c),t++,r=a}else if(l){if(l.offset>r){s+=this._text.substring(r,l.offset);const c=this._tokens[(t<<1)+1];o.push(s.length,c),r=l.offset}s+=l.text,o.push(s.length,l.tokenMetadata),i++}else break}return new Is(new Uint32Array(o),s,this.languageIdCodec)}getTokenText(e){const t=this.getStartOffset(e),i=this.getEndOffset(e);return this._text.substring(t,i)}forEach(e){const t=this.getCount();for(let i=0;i<t;i++)e(i)}}Is.defaultTokenMetadata=(32768|2<<24)>>>0;class wz{constructor(e,t,i,s){this._source=e,this._startOffset=t,this._endOffset=i,this._deltaOffset=s,this._firstTokenIndex=e.findTokenIndexAtOffset(t),this.languageIdCodec=e.languageIdCodec,this._tokensCount=0;for(let o=this._firstTokenIndex,r=e.getCount();o<r&&!(e.getStartOffset(o)>=i);o++)this._tokensCount++}getMetadata(e){return this._source.getMetadata(this._firstTokenIndex+e)}getLanguageId(e){return this._source.getLanguageId(this._firstTokenIndex+e)}getLineContent(){return this._source.getLineContent().substring(this._startOffset,this._endOffset)}equals(e){return e instanceof wz?this._startOffset===e._startOffset&&this._endOffset===e._endOffset&&this._deltaOffset===e._deltaOffset&&this._source.slicedEquals(e._source,this._firstTokenIndex,this._tokensCount):!1}getCount(){return this._tokensCount}getStandardTokenType(e){return this._source.getStandardTokenType(this._firstTokenIndex+e)}getForeground(e){return this._source.getForeground(this._firstTokenIndex+e)}getEndOffset(e){const t=this._source.getEndOffset(this._firstTokenIndex+e);return Math.min(this._endOffset,t)-this._startOffset+this._deltaOffset}getClassName(e){return this._source.getClassName(this._firstTokenIndex+e)}getInlineStyle(e,t){return this._source.getInlineStyle(this._firstTokenIndex+e,t)}getPresentation(e){return this._source.getPresentation(this._firstTokenIndex+e)}findTokenIndexAtOffset(e){return this._source.findTokenIndexAtOffset(e+this._startOffset-this._deltaOffset)-this._firstTokenIndex}getTokenText(e){const t=this._firstTokenIndex+e,i=this._source.getStartOffset(t),s=this._source.getEndOffset(t);let o=this._source.getTokenText(t);return i<this._startOffset&&(o=o.substring(this._startOffset-i)),s>this._endOffset&&(o=o.substring(0,o.length-(s-this._endOffset))),o}forEach(e){for(let t=0;t<this.getCount();t++)e(t)}}function I4e(n,e){const t=e.lineNumber;if(!n.tokenization.isCheapToTokenize(t))return;n.tokenization.forceTokenization(t);const i=n.tokenization.getLineTokens(t),s=i.findTokenIndexAtOffset(e.column-1);return i.getStandardTokenType(s)}class Rr{constructor(e,t,i,s){this.startColumn=e,this.endColumn=t,this.className=i,this.type=s,this._lineDecorationBrand=void 0}static _equals(e,t){return e.startColumn===t.startColumn&&e.endColumn===t.endColumn&&e.className===t.className&&e.type===t.type}static equalsArr(e,t){const i=e.length,s=t.length;if(i!==s)return!1;for(let o=0;o<i;o++)if(!Rr._equals(e[o],t[o]))return!1;return!0}static extractWrapped(e,t,i){if(e.length===0)return e;const s=t+1,o=i+1,r=i-t,a=[];let l=0;for(const c of e)c.endColumn<=s||c.startColumn>=o||(a[l++]=new Rr(Math.max(1,c.startColumn-s+1),Math.min(r+1,c.endColumn-s+1),c.className,c.type));return a}static filter(e,t,i,s){if(e.length===0)return[];const o=[];let r=0;for(let a=0,l=e.length;a<l;a++){const c=e[a],d=c.range;if(d.endLineNumber<t||d.startLineNumber>t||d.isEmpty()&&(c.type===0||c.type===3))continue;const u=d.startLineNumber===t?d.startColumn:i,h=d.endLineNumber===t?d.endColumn:s;o[r++]=new Rr(u,h,c.inlineClassName,c.type)}return o}static _typeCompare(e,t){const i=[2,0,1,3];return i[e]-i[t]}static compare(e,t){if(e.startColumn!==t.startColumn)return e.startColumn-t.startColumn;if(e.endColumn!==t.endColumn)return e.endColumn-t.endColumn;const i=Rr._typeCompare(e.type,t.type);return i!==0?i:e.className!==t.className?e.className<t.className?-1:1:0}}class vX{constructor(e,t,i,s){this.startOffset=e,this.endOffset=t,this.className=i,this.metadata=s}}class G2{constructor(){this.stopOffsets=[],this.classNames=[],this.metadata=[],this.count=0}static _metadata(e){let t=0;for(let i=0,s=e.length;i<s;i++)t|=e[i];return t}consumeLowerThan(e,t,i){for(;this.count>0&&this.stopOffsets[0]<e;){let s=0;for(;s+1<this.count&&this.stopOffsets[s]===this.stopOffsets[s+1];)s++;i.push(new vX(t,this.stopOffsets[s],this.classNames.join(\" \"),G2._metadata(this.metadata))),t=this.stopOffsets[s]+1,this.stopOffsets.splice(0,s+1),this.classNames.splice(0,s+1),this.metadata.splice(0,s+1),this.count-=s+1}return this.count>0&&t<e&&(i.push(new vX(t,e-1,this.classNames.join(\" \"),G2._metadata(this.metadata))),t=e),t}insert(e,t,i){if(this.count===0||this.stopOffsets[this.count-1]<=e)this.stopOffsets.push(e),this.classNames.push(t),this.metadata.push(i);else for(let s=0;s<this.count;s++)if(this.stopOffsets[s]>=e){this.stopOffsets.splice(s,0,e),this.classNames.splice(s,0,t),this.metadata.splice(s,0,i);break}this.count++}}class E4e{static normalize(e,t){if(t.length===0)return[];const i=[],s=new G2;let o=0;for(let r=0,a=t.length;r<a;r++){const l=t[r];let c=l.startColumn,d=l.endColumn;const u=l.className,h=l.type===1?2:l.type===2?4:0;if(c>1){const p=e.charCodeAt(c-2);Gs(p)&&c--}if(d>1){const p=e.charCodeAt(d-2);Gs(p)&&d--}const f=c-1,g=d-2;o=s.consumeLowerThan(f,o,i),s.count===0&&(o=f),s.insert(g,u,h)}return s.consumeLowerThan(1073741824,o,i),i}}class oo{constructor(e,t,i,s){this.endIndex=e,this.type=t,this.metadata=i,this.containsRTL=s,this._linePartBrand=void 0}isWhitespace(){return!!(this.metadata&1)}isPseudoAfter(){return!!(this.metadata&4)}}class Nle{constructor(e,t){this.startOffset=e,this.endOffset=t}equals(e){return this.startOffset===e.startOffset&&this.endOffset===e.endOffset}}class f_{constructor(e,t,i,s,o,r,a,l,c,d,u,h,f,g,p,_,b,w,y){this.useMonospaceOptimizations=e,this.canUseHalfwidthRightwardsArrow=t,this.lineContent=i,this.continuesWithWrappedLine=s,this.isBasicASCII=o,this.containsRTL=r,this.fauxIndentLength=a,this.lineTokens=l,this.lineDecorations=c.sort(Rr.compare),this.tabSize=d,this.startVisibleColumn=u,this.spaceWidth=h,this.stopRenderingLineAfter=p,this.renderWhitespace=_===\"all\"?4:_===\"boundary\"?1:_===\"selection\"?2:_===\"trailing\"?3:0,this.renderControlCharacters=b,this.fontLigatures=w,this.selectionsOnLine=y&&y.sort((k,D)=>k.startOffset<D.startOffset?-1:1);const S=Math.abs(g-h),x=Math.abs(f-h);S<x?(this.renderSpaceWidth=g,this.renderSpaceCharCode=11825):(this.renderSpaceWidth=f,this.renderSpaceCharCode=183)}sameSelection(e){if(this.selectionsOnLine===null)return e===null;if(e===null||e.length!==this.selectionsOnLine.length)return!1;for(let t=0;t<this.selectionsOnLine.length;t++)if(!this.selectionsOnLine[t].equals(e[t]))return!1;return!0}equals(e){return this.useMonospaceOptimizations===e.useMonospaceOptimizations&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.lineContent===e.lineContent&&this.continuesWithWrappedLine===e.continuesWithWrappedLine&&this.isBasicASCII===e.isBasicASCII&&this.containsRTL===e.containsRTL&&this.fauxIndentLength===e.fauxIndentLength&&this.tabSize===e.tabSize&&this.startVisibleColumn===e.startVisibleColumn&&this.spaceWidth===e.spaceWidth&&this.renderSpaceWidth===e.renderSpaceWidth&&this.renderSpaceCharCode===e.renderSpaceCharCode&&this.stopRenderingLineAfter===e.stopRenderingLineAfter&&this.renderWhitespace===e.renderWhitespace&&this.renderControlCharacters===e.renderControlCharacters&&this.fontLigatures===e.fontLigatures&&Rr.equalsArr(this.lineDecorations,e.lineDecorations)&&this.lineTokens.equals(e.lineTokens)&&this.sameSelection(e.selectionsOnLine)}}class Ale{constructor(e,t){this.partIndex=e,this.charIndex=t}}class Gu{static getPartIndex(e){return(e&4294901760)>>>16}static getCharIndex(e){return(e&65535)>>>0}constructor(e,t){this.length=e,this._data=new Uint32Array(this.length),this._horizontalOffset=new Uint32Array(this.length)}setColumnInfo(e,t,i,s){const o=(t<<16|i<<0)>>>0;this._data[e-1]=o,this._horizontalOffset[e-1]=s}getHorizontalOffset(e){return this._horizontalOffset.length===0?0:this._horizontalOffset[e-1]}charOffsetToPartData(e){return this.length===0?0:e<0?this._data[0]:e>=this.length?this._data[this.length-1]:this._data[e]}getDomPosition(e){const t=this.charOffsetToPartData(e-1),i=Gu.getPartIndex(t),s=Gu.getCharIndex(t);return new Ale(i,s)}getColumn(e,t){return this.partDataToCharOffset(e.partIndex,t,e.charIndex)+1}partDataToCharOffset(e,t,i){if(this.length===0)return 0;const s=(e<<16|i<<0)>>>0;let o=0,r=this.length-1;for(;o+1<r;){const p=o+r>>>1,_=this._data[p];if(_===s)return p;_>s?r=p:o=p}if(o===r)return o;const a=this._data[o],l=this._data[r];if(a===s)return o;if(l===s)return r;const c=Gu.getPartIndex(a),d=Gu.getCharIndex(a),u=Gu.getPartIndex(l);let h;c!==u?h=t:h=Gu.getCharIndex(l);const f=i-d,g=h-i;return f<=g?o:r}}class yB{constructor(e,t,i){this._renderLineOutputBrand=void 0,this.characterMapping=e,this.containsRTL=t,this.containsForeignElements=i}}function _D(n,e){if(n.lineContent.length===0){if(n.lineDecorations.length>0){e.appendString(\"<span>\");let t=0,i=0,s=0;for(const r of n.lineDecorations)(r.type===1||r.type===2)&&(e.appendString('<span class=\"'),e.appendString(r.className),e.appendString('\"></span>'),r.type===1&&(s|=1,t++),r.type===2&&(s|=2,i++));e.appendString(\"</span>\");const o=new Gu(1,t+i);return o.setColumnInfo(1,t,0,0),new yB(o,!1,s)}return e.appendString(\"<span><span></span></span>\"),new yB(new Gu(0,0),!1,0)}return B4e(A4e(n),e)}class T4e{constructor(e,t,i,s){this.characterMapping=e,this.html=t,this.containsRTL=i,this.containsForeignElements=s}}function EM(n){const e=new Ow(1e4),t=_D(n,e);return new T4e(t.characterMapping,e.build(),t.containsRTL,t.containsForeignElements)}class N4e{constructor(e,t,i,s,o,r,a,l,c,d,u,h,f,g,p,_){this.fontIsMonospace=e,this.canUseHalfwidthRightwardsArrow=t,this.lineContent=i,this.len=s,this.isOverflowing=o,this.overflowingCharCount=r,this.parts=a,this.containsForeignElements=l,this.fauxIndentLength=c,this.tabSize=d,this.startVisibleColumn=u,this.containsRTL=h,this.spaceWidth=f,this.renderSpaceCharCode=g,this.renderWhitespace=p,this.renderControlCharacters=_}}function A4e(n){const e=n.lineContent;let t,i,s;n.stopRenderingLineAfter!==-1&&n.stopRenderingLineAfter<e.length?(t=!0,i=e.length-n.stopRenderingLineAfter,s=n.stopRenderingLineAfter):(t=!1,i=0,s=e.length);let o=R4e(e,n.containsRTL,n.lineTokens,n.fauxIndentLength,s);n.renderControlCharacters&&!n.isBasicASCII&&(o=P4e(e,o)),(n.renderWhitespace===4||n.renderWhitespace===1||n.renderWhitespace===2&&n.selectionsOnLine||n.renderWhitespace===3&&!n.continuesWithWrappedLine)&&(o=O4e(n,e,s,o));let r=0;if(n.lineDecorations.length>0){for(let a=0,l=n.lineDecorations.length;a<l;a++){const c=n.lineDecorations[a];c.type===3||c.type===1?r|=1:c.type===2&&(r|=2)}o=F4e(e,s,o,n.lineDecorations)}return n.containsRTL||(o=M4e(e,o,!n.isBasicASCII||n.fontLigatures)),new N4e(n.useMonospaceOptimizations,n.canUseHalfwidthRightwardsArrow,e,s,t,i,o,r,n.fauxIndentLength,n.tabSize,n.startVisibleColumn,n.containsRTL,n.spaceWidth,n.renderSpaceCharCode,n.renderWhitespace,n.renderControlCharacters)}function R4e(n,e,t,i,s){const o=[];let r=0;i>0&&(o[r++]=new oo(i,\"\",0,!1));let a=i;for(let l=0,c=t.getCount();l<c;l++){const d=t.getEndOffset(l);if(d<=i)continue;const u=t.getClassName(l);if(d>=s){const f=e?TC(n.substring(a,s)):!1;o[r++]=new oo(s,u,0,f);break}const h=e?TC(n.substring(a,d)):!1;o[r++]=new oo(d,u,0,h),a=d}return o}function M4e(n,e,t){let i=0;const s=[];let o=0;if(t)for(let r=0,a=e.length;r<a;r++){const l=e[r],c=l.endIndex;if(i+50<c){const d=l.type,u=l.metadata,h=l.containsRTL;let f=-1,g=i;for(let p=i;p<c;p++)n.charCodeAt(p)===32&&(f=p),f!==-1&&p-g>=50&&(s[o++]=new oo(f+1,d,u,h),g=f+1,f=-1);g!==c&&(s[o++]=new oo(c,d,u,h))}else s[o++]=l;i=c}else for(let r=0,a=e.length;r<a;r++){const l=e[r],c=l.endIndex,d=c-i;if(d>50){const u=l.type,h=l.metadata,f=l.containsRTL,g=Math.ceil(d/50);for(let p=1;p<g;p++){const _=i+p*50;s[o++]=new oo(_,u,h,f)}s[o++]=new oo(c,u,h,f)}else s[o++]=l;i=c}return s}function Rle(n){return n<32?n!==9:n===127||n>=8234&&n<=8238||n>=8294&&n<=8297||n>=8206&&n<=8207||n===1564}function P4e(n,e){const t=[];let i=new oo(0,\"\",0,!1),s=0;for(const o of e){const r=o.endIndex;for(;s<r;s++){const a=n.charCodeAt(s);Rle(a)&&(s>i.endIndex&&(i=new oo(s,o.type,o.metadata,o.containsRTL),t.push(i)),i=new oo(s+1,\"mtkcontrol\",o.metadata,!1),t.push(i))}s>i.endIndex&&(i=new oo(r,o.type,o.metadata,o.containsRTL),t.push(i))}return t}function O4e(n,e,t,i){const s=n.continuesWithWrappedLine,o=n.fauxIndentLength,r=n.tabSize,a=n.startVisibleColumn,l=n.useMonospaceOptimizations,c=n.selectionsOnLine,d=n.renderWhitespace===1,u=n.renderWhitespace===3,h=n.renderSpaceWidth!==n.spaceWidth,f=[];let g=0,p=0,_=i[p].type,b=i[p].containsRTL,w=i[p].endIndex;const y=i.length;let S=!1,x=fr(e),k;x===-1?(S=!0,x=t,k=t):k=Kd(e);let D=!1,I=0,N=c&&c[I],P=a%r;for(let M=o;M<t;M++){const z=e.charCodeAt(M);N&&M>=N.endOffset&&(I++,N=c&&c[I]);let K;if(M<x||M>k)K=!0;else if(z===9)K=!0;else if(z===32)if(d)if(D)K=!0;else{const ae=M+1<t?e.charCodeAt(M+1):0;K=ae===32||ae===9}else K=!0;else K=!1;if(K&&c&&(K=!!N&&N.startOffset<=M&&N.endOffset>M),K&&u&&(K=S||M>k),K&&b&&M>=x&&M<=k&&(K=!1),D){if(!K||!l&&P>=r){if(h){const ae=g>0?f[g-1].endIndex:o;for(let se=ae+1;se<=M;se++)f[g++]=new oo(se,\"mtkw\",1,!1)}else f[g++]=new oo(M,\"mtkw\",1,!1);P=P%r}}else(M===w||K&&M>o)&&(f[g++]=new oo(M,_,0,b),P=P%r);for(z===9?P=r:Mm(z)?P+=2:P++,D=K;M===w&&(p++,p<y);)_=i[p].type,b=i[p].containsRTL,w=i[p].endIndex}let O=!1;if(D)if(s&&d){const M=t>0?e.charCodeAt(t-1):0,z=t>1?e.charCodeAt(t-2):0;M===32&&z!==32&&z!==9||(O=!0)}else O=!0;if(O)if(h){const M=g>0?f[g-1].endIndex:o;for(let z=M+1;z<=t;z++)f[g++]=new oo(z,\"mtkw\",1,!1)}else f[g++]=new oo(t,\"mtkw\",1,!1);else f[g++]=new oo(t,_,0,b);return f}function F4e(n,e,t,i){i.sort(Rr.compare);const s=E4e.normalize(n,i),o=s.length;let r=0;const a=[];let l=0,c=0;for(let u=0,h=t.length;u<h;u++){const f=t[u],g=f.endIndex,p=f.type,_=f.metadata,b=f.containsRTL;for(;r<o&&s[r].startOffset<g;){const w=s[r];if(w.startOffset>c&&(c=w.startOffset,a[l++]=new oo(c,p,_,b)),w.endOffset+1<=g)c=w.endOffset+1,a[l++]=new oo(c,p+\" \"+w.className,_|w.metadata,b),r++;else{c=g,a[l++]=new oo(c,p+\" \"+w.className,_|w.metadata,b);break}}g>c&&(c=g,a[l++]=new oo(c,p,_,b))}const d=t[t.length-1].endIndex;if(r<o&&s[r].startOffset===d)for(;r<o&&s[r].startOffset===d;){const u=s[r];a[l++]=new oo(c,u.className,u.metadata,!1),r++}return a}function B4e(n,e){const t=n.fontIsMonospace,i=n.canUseHalfwidthRightwardsArrow,s=n.containsForeignElements,o=n.lineContent,r=n.len,a=n.isOverflowing,l=n.overflowingCharCount,c=n.parts,d=n.fauxIndentLength,u=n.tabSize,h=n.startVisibleColumn,f=n.containsRTL,g=n.spaceWidth,p=n.renderSpaceCharCode,_=n.renderWhitespace,b=n.renderControlCharacters,w=new Gu(r+1,c.length);let y=!1,S=0,x=h,k=0,D=0,I=0;f?e.appendString('<span dir=\"ltr\">'):e.appendString(\"<span>\");for(let N=0,P=c.length;N<P;N++){const O=c[N],M=O.endIndex,z=O.type,K=O.containsRTL,ae=_!==0&&O.isWhitespace(),se=ae&&!t&&(z===\"mtkw\"||!s),he=S===M&&O.isPseudoAfter();if(k=0,e.appendString(\"<span \"),K&&e.appendString('style=\"unicode-bidi:isolate\" '),e.appendString('class=\"'),e.appendString(se?\"mtkz\":z),e.appendASCIICharCode(34),ae){let me=0;{let De=S,lt=x;for(;De<M;De++){const Ve=(o.charCodeAt(De)===9?u-lt%u:1)|0;me+=Ve,De>=d&&(lt+=Ve)}}for(se&&(e.appendString(' style=\"width:'),e.appendString(String(g*me)),e.appendString('px\"')),e.appendASCIICharCode(62);S<M;S++){w.setColumnInfo(S+1,N-I,k,D),I=0;const De=o.charCodeAt(S);let lt,We;if(De===9){lt=u-x%u|0,We=lt,!i||We>1?e.appendCharCode(8594):e.appendCharCode(65515);for(let Ve=2;Ve<=We;Ve++)e.appendCharCode(160)}else lt=2,We=1,e.appendCharCode(p),e.appendCharCode(8204);k+=lt,D+=We,S>=d&&(x+=We)}}else for(e.appendASCIICharCode(62);S<M;S++){w.setColumnInfo(S+1,N-I,k,D),I=0;const me=o.charCodeAt(S);let De=1,lt=1;switch(me){case 9:De=u-x%u,lt=De;for(let We=1;We<=De;We++)e.appendCharCode(160);break;case 32:e.appendCharCode(160);break;case 60:e.appendString(\"&lt;\");break;case 62:e.appendString(\"&gt;\");break;case 38:e.appendString(\"&amp;\");break;case 0:b?e.appendCharCode(9216):e.appendString(\"&#00;\");break;case 65279:case 8232:case 8233:case 133:e.appendCharCode(65533);break;default:Mm(me)&&lt++,b&&me<32?e.appendCharCode(9216+me):b&&me===127?e.appendCharCode(9249):b&&Rle(me)?(e.appendString(\"[U+\"),e.appendString(W4e(me)),e.appendString(\"]\"),De=8,lt=De):e.appendCharCode(me)}k+=De,D+=lt,S>=d&&(x+=lt)}he?I++:I=0,S>=r&&!y&&O.isPseudoAfter()&&(y=!0,w.setColumnInfo(S+1,N,k,D)),e.appendString(\"</span>\")}return y||w.setColumnInfo(r+1,c.length-1,k,D),a&&(e.appendString('<span class=\"mtkoverflow\">'),e.appendString(v(\"showMore\",\"Show more ({0})\",H4e(l))),e.appendString(\"</span>\")),e.appendString(\"</span>\"),new yB(w,f,s)}function W4e(n){return n.toString(16).toUpperCase().padStart(4,\"0\")}function H4e(n){return n<1024?v(\"overflow.chars\",\"{0} chars\",n):n<1024*1024?`${(n/1024).toFixed(1)} KB`:`${(n/1024/1024).toFixed(1)} MB`}class bX{constructor(e,t,i,s){this._viewportBrand=void 0,this.top=e|0,this.left=t|0,this.width=i|0,this.height=s|0}}class V4e{constructor(e,t){this.tabSize=e,this.data=t}}class yz{constructor(e,t,i,s,o,r,a){this._viewLineDataBrand=void 0,this.content=e,this.continuesWithWrappedLine=t,this.minColumn=i,this.maxColumn=s,this.startVisibleColumn=o,this.tokens=r,this.inlineDecorations=a}}class xl{constructor(e,t,i,s,o,r,a,l,c,d){this.minColumn=e,this.maxColumn=t,this.content=i,this.continuesWithWrappedLine=s,this.isBasicASCII=xl.isBasicASCII(i,r),this.containsRTL=xl.containsRTL(i,this.isBasicASCII,o),this.tokens=a,this.inlineDecorations=l,this.tabSize=c,this.startVisibleColumn=d}static isBasicASCII(e,t){return t?cD(e):!0}static containsRTL(e,t,i){return!t&&i?TC(e):!1}}class cx{constructor(e,t,i){this.range=e,this.inlineClassName=t,this.type=i}}class z4e{constructor(e,t,i,s){this.startOffset=e,this.endOffset=t,this.inlineClassName=i,this.inlineClassNameAffectsLetterSpacing=s}toInlineDecoration(e){return new cx(new A(e,this.startOffset+1,e,this.endOffset+1),this.inlineClassName,this.inlineClassNameAffectsLetterSpacing?3:0)}}class Mle{constructor(e,t){this._viewModelDecorationBrand=void 0,this.range=e,this.options=t}}class CL{constructor(e,t,i){this.color=e,this.zIndex=t,this.data=i}static compareByRenderingProps(e,t){return e.zIndex===t.zIndex?e.color<t.color?-1:e.color>t.color?1:0:e.zIndex-t.zIndex}static equals(e,t){return e.color===t.color&&e.zIndex===t.zIndex&&zn(e.data,t.data)}static equalsArr(e,t){return zn(e,t,CL.equals)}}function $4e(n){return Array.isArray(n)}function U4e(n){return!$4e(n)}function Ple(n){return typeof n==\"string\"}function CX(n){return!Ple(n)}function fv(n){return!n}function vg(n,e){return n.ignoreCase&&e?e.toLowerCase():e}function wX(n){return n.replace(/[&<>'\"_]/g,\"-\")}function j4e(n,e){console.log(`${n.languageId}: ${e}`)}function Ln(n,e){return new Error(`${n.languageId}: ${e}`)}function Ap(n,e,t,i,s){const o=/\\$((\\$)|(#)|(\\d\\d?)|[sS](\\d\\d?)|@(\\w+))/g;let r=null;return e.replace(o,function(a,l,c,d,u,h,f,g,p){return fv(c)?fv(d)?!fv(u)&&u<i.length?vg(n,i[u]):!fv(f)&&n&&typeof n[f]==\"string\"?n[f]:(r===null&&(r=s.split(\".\"),r.unshift(s)),!fv(h)&&h<r.length?vg(n,r[h]):\"\"):vg(n,t):\"$\"})}function K4e(n,e,t){const i=/\\$[sS](\\d\\d?)/g;let s=null;return e.replace(i,function(o,r){return s===null&&(s=t.split(\".\"),s.unshift(t)),!fv(r)&&r<s.length?vg(n,s[r]):\"\"})}function TE(n,e){let t=e;for(;t&&t.length>0;){const i=n.tokenizer[t];if(i)return i;const s=t.lastIndexOf(\".\");s<0?t=null:t=t.substr(0,s)}return null}function q4e(n,e){let t=e;for(;t&&t.length>0;){if(n.stateNames[t])return!0;const s=t.lastIndexOf(\".\");s<0?t=null:t=t.substr(0,s)}return!1}var G4e=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Z4e=function(n,e){return function(t,i){e(t,i,n)}},SB;const Ole=5;class wL{static create(e,t){return this._INSTANCE.create(e,t)}constructor(e){this._maxCacheDepth=e,this._entries=Object.create(null)}create(e,t){if(e!==null&&e.depth>=this._maxCacheDepth)return new X1(e,t);let i=X1.getStackElementId(e);i.length>0&&(i+=\"|\"),i+=t;let s=this._entries[i];return s||(s=new X1(e,t),this._entries[i]=s,s)}}wL._INSTANCE=new wL(Ole);class X1{constructor(e,t){this.parent=e,this.state=t,this.depth=(this.parent?this.parent.depth:0)+1}static getStackElementId(e){let t=\"\";for(;e!==null;)t.length>0&&(t+=\"|\"),t+=e.state,e=e.parent;return t}static _equals(e,t){for(;e!==null&&t!==null;){if(e===t)return!0;if(e.state!==t.state)return!1;e=e.parent,t=t.parent}return e===null&&t===null}equals(e){return X1._equals(this,e)}push(e){return wL.create(this,e)}pop(){return this.parent}popall(){let e=this;for(;e.parent;)e=e.parent;return e}switchTo(e){return wL.create(this.parent,e)}}class _1{constructor(e,t){this.languageId=e,this.state=t}equals(e){return this.languageId===e.languageId&&this.state.equals(e.state)}clone(){return this.state.clone()===this.state?this:new _1(this.languageId,this.state)}}class Rp{static create(e,t){return this._INSTANCE.create(e,t)}constructor(e){this._maxCacheDepth=e,this._entries=Object.create(null)}create(e,t){if(t!==null)return new dx(e,t);if(e!==null&&e.depth>=this._maxCacheDepth)return new dx(e,t);const i=X1.getStackElementId(e);let s=this._entries[i];return s||(s=new dx(e,null),this._entries[i]=s,s)}}Rp._INSTANCE=new Rp(Ole);class dx{constructor(e,t){this.stack=e,this.embeddedLanguageData=t}clone(){return(this.embeddedLanguageData?this.embeddedLanguageData.clone():null)===this.embeddedLanguageData?this:Rp.create(this.stack,this.embeddedLanguageData)}equals(e){return!(e instanceof dx)||!this.stack.equals(e.stack)?!1:this.embeddedLanguageData===null&&e.embeddedLanguageData===null?!0:this.embeddedLanguageData===null||e.embeddedLanguageData===null?!1:this.embeddedLanguageData.equals(e.embeddedLanguageData)}}class Y4e{constructor(){this._tokens=[],this._languageId=null,this._lastTokenType=null,this._lastTokenLanguage=null}enterLanguage(e){this._languageId=e}emit(e,t){this._lastTokenType===t&&this._lastTokenLanguage===this._languageId||(this._lastTokenType=t,this._lastTokenLanguage=this._languageId,this._tokens.push(new oL(e,t,this._languageId)))}nestedLanguageTokenize(e,t,i,s){const o=i.languageId,r=i.state,a=Zn.get(o);if(!a)return this.enterLanguage(o),this.emit(s,\"\"),r;const l=a.tokenize(e,t,r);if(s!==0)for(const c of l.tokens)this._tokens.push(new oL(c.offset+s,c.type,c.language));else this._tokens=this._tokens.concat(l.tokens);return this._lastTokenType=null,this._lastTokenLanguage=null,this._languageId=null,l.endState}finalize(e){return new $V(this._tokens,e)}}class Z2{constructor(e,t){this._languageService=e,this._theme=t,this._prependTokens=null,this._tokens=[],this._currentLanguageId=0,this._lastTokenMetadata=0}enterLanguage(e){this._currentLanguageId=this._languageService.languageIdCodec.encodeLanguageId(e)}emit(e,t){const i=this._theme.match(this._currentLanguageId,t)|1024;this._lastTokenMetadata!==i&&(this._lastTokenMetadata=i,this._tokens.push(e),this._tokens.push(i))}static _merge(e,t,i){const s=e!==null?e.length:0,o=t.length,r=i!==null?i.length:0;if(s===0&&o===0&&r===0)return new Uint32Array(0);if(s===0&&o===0)return i;if(o===0&&r===0)return e;const a=new Uint32Array(s+o+r);e!==null&&a.set(e);for(let l=0;l<o;l++)a[s+l]=t[l];return i!==null&&a.set(i,s+o),a}nestedLanguageTokenize(e,t,i,s){const o=i.languageId,r=i.state,a=Zn.get(o);if(!a)return this.enterLanguage(o),this.emit(s,\"\"),r;const l=a.tokenizeEncoded(e,t,r);if(s!==0)for(let c=0,d=l.tokens.length;c<d;c+=2)l.tokens[c]+=s;return this._prependTokens=Z2._merge(this._prependTokens,this._tokens,l.tokens),this._tokens=[],this._currentLanguageId=0,this._lastTokenMetadata=0,l.endState}finalize(e){return new oM(Z2._merge(this._prependTokens,this._tokens,null),e)}}let yL=SB=class extends ne{constructor(e,t,i,s,o){super(),this._configurationService=o,this._languageService=e,this._standaloneThemeService=t,this._languageId=i,this._lexer=s,this._embeddedLanguages=Object.create(null),this.embeddedLoaded=Promise.resolve(void 0);let r=!1;this._register(Zn.onDidChange(a=>{if(r)return;let l=!1;for(let c=0,d=a.changedLanguages.length;c<d;c++){const u=a.changedLanguages[c];if(this._embeddedLanguages[u]){l=!0;break}}l&&(r=!0,Zn.handleChange([this._languageId]),r=!1)})),this._maxTokenizationLineLength=this._configurationService.getValue(\"editor.maxTokenizationLineLength\",{overrideIdentifier:this._languageId}),this._register(this._configurationService.onDidChangeConfiguration(a=>{a.affectsConfiguration(\"editor.maxTokenizationLineLength\")&&(this._maxTokenizationLineLength=this._configurationService.getValue(\"editor.maxTokenizationLineLength\",{overrideIdentifier:this._languageId}))}))}getLoadStatus(){const e=[];for(const t in this._embeddedLanguages){const i=Zn.get(t);if(i){if(i instanceof SB){const s=i.getLoadStatus();s.loaded===!1&&e.push(s.promise)}continue}Zn.isResolved(t)||e.push(Zn.getOrCreate(t))}return e.length===0?{loaded:!0}:{loaded:!1,promise:Promise.all(e).then(t=>{})}}getInitialState(){const e=wL.create(null,this._lexer.start);return Rp.create(e,null)}tokenize(e,t,i){if(e.length>=this._maxTokenizationLineLength)return Cz(this._languageId,i);const s=new Y4e,o=this._tokenize(e,t,i,s);return s.finalize(o)}tokenizeEncoded(e,t,i){if(e.length>=this._maxTokenizationLineLength)return IM(this._languageService.languageIdCodec.encodeLanguageId(this._languageId),i);const s=new Z2(this._languageService,this._standaloneThemeService.getColorTheme().tokenTheme),o=this._tokenize(e,t,i,s);return s.finalize(o)}_tokenize(e,t,i,s){return i.embeddedLanguageData?this._nestedTokenize(e,t,i,0,s):this._myTokenize(e,t,i,0,s)}_findLeavingNestedLanguageOffset(e,t){let i=this._lexer.tokenizer[t.stack.state];if(!i&&(i=TE(this._lexer,t.stack.state),!i))throw Ln(this._lexer,\"tokenizer state is not defined: \"+t.stack.state);let s=-1,o=!1;for(const r of i){if(!CX(r.action)||r.action.nextEmbedded!==\"@pop\")continue;o=!0;let a=r.resolveRegex(t.stack.state);const l=a.source;if(l.substr(0,4)===\"^(?:\"&&l.substr(l.length-1,1)===\")\"){const d=(a.ignoreCase?\"i\":\"\")+(a.unicode?\"u\":\"\");a=new RegExp(l.substr(4,l.length-5),d)}const c=e.search(a);c===-1||c!==0&&r.matchOnlyAtLineStart||(s===-1||c<s)&&(s=c)}if(!o)throw Ln(this._lexer,'no rule containing nextEmbedded: \"@pop\" in tokenizer embedded state: '+t.stack.state);return s}_nestedTokenize(e,t,i,s,o){const r=this._findLeavingNestedLanguageOffset(e,i);if(r===-1){const c=o.nestedLanguageTokenize(e,t,i.embeddedLanguageData,s);return Rp.create(i.stack,new _1(i.embeddedLanguageData.languageId,c))}const a=e.substring(0,r);a.length>0&&o.nestedLanguageTokenize(a,!1,i.embeddedLanguageData,s);const l=e.substring(r);return this._myTokenize(l,t,i,s+r,o)}_safeRuleName(e){return e?e.name:\"(unknown)\"}_myTokenize(e,t,i,s,o){o.enterLanguage(this._languageId);const r=e.length,a=t&&this._lexer.includeLF?e+`\n`:e,l=a.length;let c=i.embeddedLanguageData,d=i.stack,u=0,h=null,f=!0;for(;f||u<l;){const g=u,p=d.depth,_=h?h.groups.length:0,b=d.state;let w=null,y=null,S=null,x=null,k=null;if(h){w=h.matches;const N=h.groups.shift();y=N.matched,S=N.action,x=h.rule,h.groups.length===0&&(h=null)}else{if(!f&&u>=l)break;f=!1;let N=this._lexer.tokenizer[b];if(!N&&(N=TE(this._lexer,b),!N))throw Ln(this._lexer,\"tokenizer state is not defined: \"+b);const P=a.substr(u);for(const O of N)if((u===0||!O.matchOnlyAtLineStart)&&(w=P.match(O.resolveRegex(b)),w)){y=w[0],S=O.action;break}}if(w||(w=[\"\"],y=\"\"),S||(u<l&&(w=[a.charAt(u)],y=w[0]),S=this._lexer.defaultToken),y===null)break;for(u+=y.length;U4e(S)&&CX(S)&&S.test;)S=S.test(y,w,b,u===l);let D=null;if(typeof S==\"string\"||Array.isArray(S))D=S;else if(S.group)D=S.group;else if(S.token!==null&&S.token!==void 0){if(S.tokenSubst?D=Ap(this._lexer,S.token,y,w,b):D=S.token,S.nextEmbedded)if(S.nextEmbedded===\"@pop\"){if(!c)throw Ln(this._lexer,\"cannot pop embedded language if not inside one\");c=null}else{if(c)throw Ln(this._lexer,\"cannot enter embedded language from within an embedded language\");k=Ap(this._lexer,S.nextEmbedded,y,w,b)}if(S.goBack&&(u=Math.max(0,u-S.goBack)),S.switchTo&&typeof S.switchTo==\"string\"){let N=Ap(this._lexer,S.switchTo,y,w,b);if(N[0]===\"@\"&&(N=N.substr(1)),TE(this._lexer,N))d=d.switchTo(N);else throw Ln(this._lexer,\"trying to switch to a state '\"+N+\"' that is undefined in rule: \"+this._safeRuleName(x))}else{if(S.transform&&typeof S.transform==\"function\")throw Ln(this._lexer,\"action.transform not supported\");if(S.next)if(S.next===\"@push\"){if(d.depth>=this._lexer.maxStack)throw Ln(this._lexer,\"maximum tokenizer stack size reached: [\"+d.state+\",\"+d.parent.state+\",...]\");d=d.push(b)}else if(S.next===\"@pop\"){if(d.depth<=1)throw Ln(this._lexer,\"trying to pop an empty stack in rule: \"+this._safeRuleName(x));d=d.pop()}else if(S.next===\"@popall\")d=d.popall();else{let N=Ap(this._lexer,S.next,y,w,b);if(N[0]===\"@\"&&(N=N.substr(1)),TE(this._lexer,N))d=d.push(N);else throw Ln(this._lexer,\"trying to set a next state '\"+N+\"' that is undefined in rule: \"+this._safeRuleName(x))}}S.log&&typeof S.log==\"string\"&&j4e(this._lexer,this._lexer.languageId+\": \"+Ap(this._lexer,S.log,y,w,b))}if(D===null)throw Ln(this._lexer,\"lexer rule has no well-defined action in rule: \"+this._safeRuleName(x));const I=N=>{const P=this._languageService.getLanguageIdByLanguageName(N)||this._languageService.getLanguageIdByMimeType(N)||N,O=this._getNestedEmbeddedLanguageData(P);if(u<l){const M=e.substr(u);return this._nestedTokenize(M,t,Rp.create(d,O),s+u,o)}else return Rp.create(d,O)};if(Array.isArray(D)){if(h&&h.groups.length>0)throw Ln(this._lexer,\"groups cannot be nested: \"+this._safeRuleName(x));if(w.length!==D.length+1)throw Ln(this._lexer,\"matched number of groups does not match the number of actions in rule: \"+this._safeRuleName(x));let N=0;for(let P=1;P<w.length;P++)N+=w[P].length;if(N!==y.length)throw Ln(this._lexer,\"with groups, all characters should be matched in consecutive groups in rule: \"+this._safeRuleName(x));h={rule:x,matches:w,groups:[]};for(let P=0;P<D.length;P++)h.groups[P]={action:D[P],matched:w[P+1]};u-=y.length;continue}else{if(D===\"@rematch\"&&(u-=y.length,y=\"\",w=null,D=\"\",k!==null))return I(k);if(y.length===0){if(l===0||p!==d.depth||b!==d.state||(h?h.groups.length:0)!==_)continue;throw Ln(this._lexer,\"no progress in tokenizer in rule: \"+this._safeRuleName(x))}let N=null;if(Ple(D)&&D.indexOf(\"@brackets\")===0){const P=D.substr(9),O=X4e(this._lexer,y);if(!O)throw Ln(this._lexer,\"@brackets token returned but no bracket defined as: \"+y);N=wX(O.token+P)}else{const P=D===\"\"?\"\":D+this._lexer.tokenPostfix;N=wX(P)}g<r&&o.emit(g+s,N)}if(k!==null)return I(k)}return Rp.create(d,c)}_getNestedEmbeddedLanguageData(e){if(!this._languageService.isRegisteredLanguageId(e))return new _1(e,OC);e!==this._languageId&&(this._languageService.requestBasicLanguageFeatures(e),Zn.getOrCreate(e),this._embeddedLanguages[e]=!0);const t=Zn.get(e);return t?new _1(e,t.getInitialState()):new _1(e,OC)}};yL=SB=G4e([Z4e(4,qt)],yL);function X4e(n,e){if(!e)return null;e=vg(n,e);const t=n.brackets;for(const i of t){if(i.open===e)return{token:i.token,bracketType:1};if(i.close===e)return{token:i.token,bracketType:-1}}return null}const QF=Bg(\"standaloneColorizer\",{createHTML:n=>n});class Sz{static colorizeElement(e,t,i,s){s=s||{};const o=s.theme||\"vs\",r=s.mimeType||i.getAttribute(\"lang\")||i.getAttribute(\"data-lang\");if(!r)return console.error(\"Mode not detected\"),Promise.resolve();const a=t.getLanguageIdByMimeType(r)||r;e.setTheme(o);const l=i.firstChild?i.firstChild.nodeValue:\"\";i.className+=\" \"+o;const c=d=>{var u;const h=(u=QF==null?void 0:QF.createHTML(d))!==null&&u!==void 0?u:d;i.innerHTML=h};return this.colorize(t,l||\"\",a,s).then(c,d=>console.error(d))}static async colorize(e,t,i,s){const o=e.languageIdCodec;let r=4;s&&typeof s.tabSize==\"number\"&&(r=s.tabSize),YV(t)&&(t=t.substr(1));const a=Wh(t);if(!e.isRegisteredLanguageId(i))return yX(a,r,o);const l=await Zn.getOrCreate(i);return l?Q4e(a,r,l,o):yX(a,r,o)}static colorizeLine(e,t,i,s,o=4){const r=xl.isBasicASCII(e,t),a=xl.containsRTL(e,r,i);return EM(new f_(!1,!0,e,!1,r,a,0,s,[],o,0,0,0,0,-1,\"none\",!1,!1,null)).html}static colorizeModelLine(e,t,i=4){const s=e.getLineContent(t);e.tokenization.forceTokenization(t);const r=e.tokenization.getLineTokens(t).inflate();return this.colorizeLine(s,e.mightContainNonBasicASCII(),e.mightContainRTL(),r,i)}}function Q4e(n,e,t,i){return new Promise((s,o)=>{const r=()=>{const a=J4e(n,e,t,i);if(t instanceof yL){const l=t.getLoadStatus();if(l.loaded===!1){l.promise.then(r,o);return}}s(a)};r()})}function yX(n,e,t){let i=[];const o=new Uint32Array(2);o[0]=0,o[1]=33587200;for(let r=0,a=n.length;r<a;r++){const l=n[r];o[0]=l.length;const c=new Is(o,l,t),d=xl.isBasicASCII(l,!0),u=xl.containsRTL(l,d,!0),h=EM(new f_(!1,!0,l,!1,d,u,0,c,[],e,0,0,0,0,-1,\"none\",!1,!1,null));i=i.concat(h.html),i.push(\"<br/>\")}return i.join(\"\")}function J4e(n,e,t,i){let s=[],o=t.getInitialState();for(let r=0,a=n.length;r<a;r++){const l=n[r],c=t.tokenizeEncoded(l,!0,o);Is.convertToEndOffset(c.tokens,l.length);const d=new Is(c.tokens,l,i),u=xl.isBasicASCII(l,!0),h=xl.containsRTL(l,u,!0),f=EM(new f_(!1,!0,l,!1,u,h,0,d.inflate(),[],e,0,0,0,0,-1,\"none\",!1,!1,null));s=s.concat(f.html),s.push(\"<br/>\"),o=c.endState}return s.join(\"\")}const SX=2e4;let gv,mN,xB,_N,LB;function eFe(n){gv=document.createElement(\"div\"),gv.className=\"monaco-aria-container\";const e=()=>{const i=document.createElement(\"div\");return i.className=\"monaco-alert\",i.setAttribute(\"role\",\"alert\"),i.setAttribute(\"aria-atomic\",\"true\"),gv.appendChild(i),i};mN=e(),xB=e();const t=()=>{const i=document.createElement(\"div\");return i.className=\"monaco-status\",i.setAttribute(\"aria-live\",\"polite\"),i.setAttribute(\"aria-atomic\",\"true\"),gv.appendChild(i),i};_N=t(),LB=t(),n.appendChild(gv)}function la(n){gv&&(mN.textContent!==n?(wo(xB),Y2(mN,n)):(wo(mN),Y2(xB,n)))}function Ih(n){gv&&(_N.textContent!==n?(wo(LB),Y2(_N,n)):(wo(_N),Y2(LB,n)))}function Y2(n,e){wo(n),e.length>SX&&(e=e.substr(0,SX)),n.textContent=e,n.style.visibility=\"hidden\",n.style.visibility=\"visible\"}const xz=Jt(\"markerDecorationsService\");var tFe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},iFe=function(n,e){return function(t,i){e(t,i,n)}};let SL=class{constructor(e,t){}dispose(){}};SL.ID=\"editor.contrib.markerDecorations\";SL=tFe([iFe(1,xz)],SL);bi(SL.ID,SL,0);class Fle extends ne{constructor(e,t){super(),this._onDidChange=this._register(new X),this.onDidChange=this._onDidChange.event,this._referenceDomElement=e,this._width=-1,this._height=-1,this._resizeObserver=null,this.measureReferenceDomElement(!1,t)}dispose(){this.stopObserving(),super.dispose()}getWidth(){return this._width}getHeight(){return this._height}startObserving(){if(!this._resizeObserver&&this._referenceDomElement){let e=null;const t=()=>{e?this.observe({width:e.width,height:e.height}):this.observe()};let i=!1,s=!1;const o=()=>{if(i&&!s)try{i=!1,s=!0,t()}finally{Oa(gt(this._referenceDomElement),()=>{s=!1,o()})}};this._resizeObserver=new ResizeObserver(r=>{r&&r[0]&&r[0].contentRect?e={width:r[0].contentRect.width,height:r[0].contentRect.height}:e=null,i=!0,o()}),this._resizeObserver.observe(this._referenceDomElement)}}stopObserving(){this._resizeObserver&&(this._resizeObserver.disconnect(),this._resizeObserver=null)}observe(e){this.measureReferenceDomElement(!0,e)}measureReferenceDomElement(e,t){let i=0,s=0;t?(i=t.width,s=t.height):this._referenceDomElement&&(i=this._referenceDomElement.clientWidth,s=this._referenceDomElement.clientHeight),i=Math.max(5,i),s=Math.max(5,s),(this._width!==i||this._height!==s)&&(this._width=i,this._height=s,e&&this._onDidChange.fire())}}class fm{constructor(e,t){this.key=e,this.migrate=t}apply(e){const t=fm._read(e,this.key),i=o=>fm._read(e,o),s=(o,r)=>fm._write(e,o,r);this.migrate(t,i,s)}static _read(e,t){if(typeof e>\"u\")return;const i=t.indexOf(\".\");if(i>=0){const s=t.substring(0,i);return this._read(e[s],t.substring(i+1))}return e[t]}static _write(e,t,i){const s=t.indexOf(\".\");if(s>=0){const o=t.substring(0,s);e[o]=e[o]||{},this._write(e[o],t.substring(s+1),i);return}e[t]=i}}fm.items=[];function vu(n,e){fm.items.push(new fm(n,e))}function Wa(n,e){vu(n,(t,i,s)=>{if(typeof t<\"u\"){for(const[o,r]of e)if(t===o){s(n,r);return}}})}function nFe(n){fm.items.forEach(e=>e.apply(n))}Wa(\"wordWrap\",[[!0,\"on\"],[!1,\"off\"]]);Wa(\"lineNumbers\",[[!0,\"on\"],[!1,\"off\"]]);Wa(\"cursorBlinking\",[[\"visible\",\"solid\"]]);Wa(\"renderWhitespace\",[[!0,\"boundary\"],[!1,\"none\"]]);Wa(\"renderLineHighlight\",[[!0,\"line\"],[!1,\"none\"]]);Wa(\"acceptSuggestionOnEnter\",[[!0,\"on\"],[!1,\"off\"]]);Wa(\"tabCompletion\",[[!1,\"off\"],[!0,\"onlySnippets\"]]);Wa(\"hover\",[[!0,{enabled:!0}],[!1,{enabled:!1}]]);Wa(\"parameterHints\",[[!0,{enabled:!0}],[!1,{enabled:!1}]]);Wa(\"autoIndent\",[[!1,\"advanced\"],[!0,\"full\"]]);Wa(\"matchBrackets\",[[!0,\"always\"],[!1,\"never\"]]);Wa(\"renderFinalNewline\",[[!0,\"on\"],[!1,\"off\"]]);Wa(\"cursorSmoothCaretAnimation\",[[!0,\"on\"],[!1,\"off\"]]);Wa(\"occurrencesHighlight\",[[!0,\"singleFile\"],[!1,\"off\"]]);Wa(\"wordBasedSuggestions\",[[!0,\"matchingDocuments\"],[!1,\"off\"]]);vu(\"autoClosingBrackets\",(n,e,t)=>{n===!1&&(t(\"autoClosingBrackets\",\"never\"),typeof e(\"autoClosingQuotes\")>\"u\"&&t(\"autoClosingQuotes\",\"never\"),typeof e(\"autoSurround\")>\"u\"&&t(\"autoSurround\",\"never\"))});vu(\"renderIndentGuides\",(n,e,t)=>{typeof n<\"u\"&&(t(\"renderIndentGuides\",void 0),typeof e(\"guides.indentation\")>\"u\"&&t(\"guides.indentation\",!!n))});vu(\"highlightActiveIndentGuide\",(n,e,t)=>{typeof n<\"u\"&&(t(\"highlightActiveIndentGuide\",void 0),typeof e(\"guides.highlightActiveIndentation\")>\"u\"&&t(\"guides.highlightActiveIndentation\",!!n))});const sFe={method:\"showMethods\",function:\"showFunctions\",constructor:\"showConstructors\",deprecated:\"showDeprecated\",field:\"showFields\",variable:\"showVariables\",class:\"showClasses\",struct:\"showStructs\",interface:\"showInterfaces\",module:\"showModules\",property:\"showProperties\",event:\"showEvents\",operator:\"showOperators\",unit:\"showUnits\",value:\"showValues\",constant:\"showConstants\",enum:\"showEnums\",enumMember:\"showEnumMembers\",keyword:\"showKeywords\",text:\"showWords\",color:\"showColors\",file:\"showFiles\",reference:\"showReferences\",folder:\"showFolders\",typeParameter:\"showTypeParameters\",snippet:\"showSnippets\"};vu(\"suggest.filteredTypes\",(n,e,t)=>{if(n&&typeof n==\"object\"){for(const i of Object.entries(sFe))n[i[0]]===!1&&typeof e(`suggest.${i[1]}`)>\"u\"&&t(`suggest.${i[1]}`,!1);t(\"suggest.filteredTypes\",void 0)}});vu(\"quickSuggestions\",(n,e,t)=>{if(typeof n==\"boolean\"){const i=n?\"on\":\"off\";t(\"quickSuggestions\",{comments:i,strings:i,other:i})}});vu(\"experimental.stickyScroll.enabled\",(n,e,t)=>{typeof n==\"boolean\"&&(t(\"experimental.stickyScroll.enabled\",void 0),typeof e(\"stickyScroll.enabled\")>\"u\"&&t(\"stickyScroll.enabled\",n))});vu(\"experimental.stickyScroll.maxLineCount\",(n,e,t)=>{typeof n==\"number\"&&(t(\"experimental.stickyScroll.maxLineCount\",void 0),typeof e(\"stickyScroll.maxLineCount\")>\"u\"&&t(\"stickyScroll.maxLineCount\",n))});vu(\"codeActionsOnSave\",(n,e,t)=>{if(n&&typeof n==\"object\"){let i=!1;const s={};for(const o of Object.entries(n))typeof o[1]==\"boolean\"?(i=!0,s[o[0]]=o[1]?\"explicit\":\"never\"):s[o[0]]=o[1];i&&t(\"codeActionsOnSave\",s)}});vu(\"codeActionWidget.includeNearbyQuickfixes\",(n,e,t)=>{typeof n==\"boolean\"&&(t(\"codeActionWidget.includeNearbyQuickfixes\",void 0),typeof e(\"codeActionWidget.includeNearbyQuickFixes\")>\"u\"&&t(\"codeActionWidget.includeNearbyQuickFixes\",n))});vu(\"lightbulb.enabled\",(n,e,t)=>{typeof n==\"boolean\"&&t(\"lightbulb.enabled\",n?void 0:\"off\")});class oFe{constructor(){this._tabFocus=!1,this._onDidChangeTabFocus=new X,this.onDidChangeTabFocus=this._onDidChangeTabFocus.event}getTabFocusMode(){return this._tabFocus}setTabFocusMode(e){this._tabFocus=e,this._onDidChangeTabFocus.fire(this._tabFocus)}}const FC=new oFe,Ha=Jt(\"accessibilityService\"),vD=new He(\"accessibilityModeEnabled\",!1);var rFe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},aFe=function(n,e){return function(t,i){e(t,i,n)}};let kB=class extends ne{constructor(e,t,i,s,o){super(),this._accessibilityService=o,this._onDidChange=this._register(new X),this.onDidChange=this._onDidChange.event,this._onDidChangeFast=this._register(new X),this.onDidChangeFast=this._onDidChangeFast.event,this._isDominatedByLongLines=!1,this._viewLineCount=1,this._lineNumbersDigitCount=1,this._reservedHeight=0,this._glyphMarginDecorationLaneCount=1,this._computeOptionsMemory=new eae,this.isSimpleWidget=e,this.contextMenuId=t,this._containerObserver=this._register(new Fle(s,i.dimension)),this._targetWindowId=gt(s).vscodeWindowId,this._rawOptions=xX(i),this._validatedOptions=Mp.validateOptions(this._rawOptions),this.options=this._computeOptions(),this.options.get(13)&&this._containerObserver.startObserving(),this._register(Kl.onDidChangeZoomLevel(()=>this._recomputeOptions())),this._register(FC.onDidChangeTabFocus(()=>this._recomputeOptions())),this._register(this._containerObserver.onDidChange(()=>this._recomputeOptions())),this._register(lB.onDidChange(()=>this._recomputeOptions())),this._register(fL.getInstance(gt(s)).onDidChange(()=>this._recomputeOptions())),this._register(this._accessibilityService.onDidChangeScreenReaderOptimized(()=>this._recomputeOptions()))}_recomputeOptions(){const e=this._computeOptions(),t=Mp.checkEquals(this.options,e);t!==null&&(this.options=e,this._onDidChangeFast.fire(t),this._onDidChange.fire(t))}_computeOptions(){const e=this._readEnvConfiguration(),t=zv.createFromValidatedSettings(this._validatedOptions,e.pixelRatio,this.isSimpleWidget),i=this._readFontInfo(t),s={memory:this._computeOptionsMemory,outerWidth:e.outerWidth,outerHeight:e.outerHeight-this._reservedHeight,fontInfo:i,extraEditorClassName:e.extraEditorClassName,isDominatedByLongLines:this._isDominatedByLongLines,viewLineCount:this._viewLineCount,lineNumbersDigitCount:this._lineNumbersDigitCount,emptySelectionClipboard:e.emptySelectionClipboard,pixelRatio:e.pixelRatio,tabFocusMode:FC.getTabFocusMode(),accessibilitySupport:e.accessibilitySupport,glyphMarginDecorationLaneCount:this._glyphMarginDecorationLaneCount};return Mp.computeOptions(this._validatedOptions,s)}_readEnvConfiguration(){return{extraEditorClassName:cFe(),outerWidth:this._containerObserver.getWidth(),outerHeight:this._containerObserver.getHeight(),emptySelectionClipboard:rM||lc,pixelRatio:fL.getInstance(wY(this._targetWindowId,!0).window).value,accessibilitySupport:this._accessibilityService.isScreenReaderOptimized()?2:this._accessibilityService.getAccessibilitySupport()}}_readFontInfo(e){return lB.readFontInfo(wY(this._targetWindowId,!0).window,e)}getRawOptions(){return this._rawOptions}updateOptions(e){const t=xX(e);Mp.applyUpdate(this._rawOptions,t)&&(this._validatedOptions=Mp.validateOptions(this._rawOptions),this._recomputeOptions())}observeContainer(e){this._containerObserver.observe(e)}setIsDominatedByLongLines(e){this._isDominatedByLongLines!==e&&(this._isDominatedByLongLines=e,this._recomputeOptions())}setModelLineCount(e){const t=lFe(e);this._lineNumbersDigitCount!==t&&(this._lineNumbersDigitCount=t,this._recomputeOptions())}setViewLineCount(e){this._viewLineCount!==e&&(this._viewLineCount=e,this._recomputeOptions())}setReservedHeight(e){this._reservedHeight!==e&&(this._reservedHeight=e,this._recomputeOptions())}setGlyphMarginDecorationLaneCount(e){this._glyphMarginDecorationLaneCount!==e&&(this._glyphMarginDecorationLaneCount=e,this._recomputeOptions())}};kB=rFe([aFe(4,Ha)],kB);function lFe(n){let e=0;for(;n;)n=Math.floor(n/10),e++;return e||1}function cFe(){let n=\"\";return!Pm&&!kae&&(n+=\"no-user-select \"),Pm&&(n+=\"no-minimap-shadow \",n+=\"enable-user-select \"),Xt&&(n+=\"mac \"),n}class dFe{constructor(){this._values=[]}_read(e){return this._values[e]}get(e){return this._values[e]}_write(e,t){this._values[e]=t}}class uFe{constructor(){this._values=[]}_read(e){if(e>=this._values.length)throw new Error(\"Cannot read uninitialized value\");return this._values[e]}get(e){return this._read(e)}_write(e,t){this._values[e]=t}}class Mp{static validateOptions(e){const t=new dFe;for(const i of h1){const s=i.name===\"_never_\"?void 0:e[i.name];t._write(i.id,i.validate(s))}return t}static computeOptions(e,t){const i=new uFe;for(const s of h1)i._write(s.id,s.compute(t,i,e._read(s.id)));return i}static _deepEquals(e,t){if(typeof e!=\"object\"||typeof t!=\"object\"||!e||!t)return e===t;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)?zn(e,t):!1;if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const i in e)if(!Mp._deepEquals(e[i],t[i]))return!1;return!0}static checkEquals(e,t){const i=[];let s=!1;for(const o of h1){const r=!Mp._deepEquals(e._read(o.id),t._read(o.id));i[o.id]=r,r&&(s=!0)}return s?new Jre(i):null}static applyUpdate(e,t){let i=!1;for(const s of h1)if(t.hasOwnProperty(s.name)){const o=s.applyUpdate(e[s.name],t[s.name]);e[s.name]=o.newValue,i=i||o.didChange}return i}}function xX(n){const e=Tf(n);return nFe(e),e}var Up;(function(n){const e={total:0,min:Number.MAX_VALUE,max:0},t={...e},i={...e},s={...e};let o=0;const r={keydown:0,input:0,render:0};function a(){b(),performance.mark(\"inputlatency/start\"),performance.mark(\"keydown/start\"),r.keydown=1,queueMicrotask(l)}n.onKeyDown=a;function l(){r.keydown===1&&(performance.mark(\"keydown/end\"),r.keydown=2)}function c(){performance.mark(\"input/start\"),r.input=1,_()}n.onBeforeInput=c;function d(){r.input===0&&c(),queueMicrotask(u)}n.onInput=d;function u(){r.input===1&&(performance.mark(\"input/end\"),r.input=2)}function h(){b()}n.onKeyUp=h;function f(){b()}n.onSelectionChange=f;function g(){r.keydown===2&&r.input===2&&r.render===0&&(performance.mark(\"render/start\"),r.render=1,queueMicrotask(p),_())}n.onRenderStart=g;function p(){r.render===1&&(performance.mark(\"render/end\"),r.render=2)}function _(){setTimeout(b)}function b(){r.keydown===2&&r.input===2&&r.render===2&&(performance.mark(\"inputlatency/end\"),performance.measure(\"keydown\",\"keydown/start\",\"keydown/end\"),performance.measure(\"input\",\"input/start\",\"input/end\"),performance.measure(\"render\",\"render/start\",\"render/end\"),performance.measure(\"inputlatency\",\"inputlatency/start\",\"inputlatency/end\"),w(\"keydown\",e),w(\"input\",t),w(\"render\",i),w(\"inputlatency\",s),o++,y())}function w(D,I){const N=performance.getEntriesByName(D)[0].duration;I.total+=N,I.min=Math.min(I.min,N),I.max=Math.max(I.max,N)}function y(){performance.clearMarks(\"keydown/start\"),performance.clearMarks(\"keydown/end\"),performance.clearMarks(\"input/start\"),performance.clearMarks(\"input/end\"),performance.clearMarks(\"render/start\"),performance.clearMarks(\"render/end\"),performance.clearMarks(\"inputlatency/start\"),performance.clearMarks(\"inputlatency/end\"),performance.clearMeasures(\"keydown\"),performance.clearMeasures(\"input\"),performance.clearMeasures(\"render\"),performance.clearMeasures(\"inputlatency\"),r.keydown=0,r.input=0,r.render=0}function S(){if(o===0)return;const D={keydown:x(e),input:x(t),render:x(i),total:x(s),sampleCount:o};return k(e),k(t),k(i),k(s),o=0,D}n.getAndClearMeasurements=S;function x(D){return{average:D.total/o,max:D.max,min:D.min}}function k(D){D.total=0,D.min=Number.MAX_VALUE,D.max=0}})(Up||(Up={}));class Bw{constructor(){this._hooks=new be,this._pointerMoveCallback=null,this._onStopCallback=null}dispose(){this.stopMonitoring(!1),this._hooks.dispose()}stopMonitoring(e,t){if(!this.isMonitoring())return;this._hooks.clear(),this._pointerMoveCallback=null;const i=this._onStopCallback;this._onStopCallback=null,e&&i&&i(t)}isMonitoring(){return!!this._pointerMoveCallback}startMonitoring(e,t,i,s,o){this.isMonitoring()&&this.stopMonitoring(!1),this._pointerMoveCallback=s,this._onStopCallback=o;let r=e;try{e.setPointerCapture(t),this._hooks.add(dt(()=>{try{e.releasePointerCapture(t)}catch{}}))}catch{r=gt(e)}this._hooks.add(ce(r,Le.POINTER_MOVE,a=>{if(a.buttons!==i){this.stopMonitoring(!0);return}a.preventDefault(),this._pointerMoveCallback(a)})),this._hooks.add(ce(r,Le.POINTER_UP,a=>this.stopMonitoring(!0)))}}function Lz(n){return`--vscode-${n.replace(/\\./g,\"-\")}`}function Ge(n){return`var(${Lz(n)})`}function hFe(n,e){return`var(${Lz(n)}, ${e})`}const Ble={ColorContribution:\"base.contributions.colors\"};class fFe{constructor(){this._onDidChangeSchema=new X,this.onDidChangeSchema=this._onDidChangeSchema.event,this.colorSchema={type:\"object\",properties:{}},this.colorReferenceSchema={type:\"string\",enum:[],enumDescriptions:[]},this.colorsById={}}registerColor(e,t,i,s=!1,o){const r={id:e,description:i,defaults:t,needsTransparency:s,deprecationMessage:o};this.colorsById[e]=r;const a={type:\"string\",description:i,format:\"color-hex\",defaultSnippets:[{body:\"${1:#ff0000}\"}]};return o&&(a.deprecationMessage=o),s&&(a.pattern=\"^#(?:(?<rgba>[0-9a-fA-f]{3}[0-9a-eA-E])|(?:[0-9a-fA-F]{6}(?:(?![fF]{2})(?:[0-9a-fA-F]{2}))))?$\",a.patternErrorMessage=\"This color must be transparent or it will obscure content\"),this.colorSchema.properties[e]=a,this.colorReferenceSchema.enum.push(e),this.colorReferenceSchema.enumDescriptions.push(i),this._onDidChangeSchema.fire(),e}getColors(){return Object.keys(this.colorsById).map(e=>this.colorsById[e])}resolveDefaultColor(e,t){const i=this.colorsById[e];if(i&&i.defaults){const s=i.defaults[t.type];return wd(s,t)}}getColorSchema(){return this.colorSchema}toString(){const e=(t,i)=>{const s=t.indexOf(\".\")===-1?0:1,o=i.indexOf(\".\")===-1?0:1;return s!==o?s-o:t.localeCompare(i)};return Object.keys(this.colorsById).sort(e).map(t=>`- \\`${t}\\`: ${this.colorsById[t].description}`).join(`\n`)}}const TM=new fFe;Un.add(Ble.ColorContribution,TM);function V(n,e,t,i,s){return TM.registerColor(n,e,t,i,s)}function gFe(n,e){var t,i,s,o;switch(n.op){case 0:return(t=wd(n.value,e))===null||t===void 0?void 0:t.darken(n.factor);case 1:return(i=wd(n.value,e))===null||i===void 0?void 0:i.lighten(n.factor);case 2:return(s=wd(n.value,e))===null||s===void 0?void 0:s.transparent(n.factor);case 3:{const r=wd(n.background,e);return r?(o=wd(n.value,e))===null||o===void 0?void 0:o.makeOpaque(r):wd(n.value,e)}case 4:for(const r of n.values){const a=wd(r,e);if(a)return a}return;case 6:return wd(e.defines(n.if)?n.then:n.else,e);case 5:{const r=wd(n.value,e);if(!r)return;const a=wd(n.background,e);return a?r.isDarkerThan(a)?le.getLighterColor(r,a,n.factor).transparent(n.transparency):le.getDarkerColor(r,a,n.factor).transparent(n.transparency):r.transparent(n.factor*n.transparency)}default:throw yM()}}function Y0(n,e){return{op:0,value:n,factor:e}}function Gd(n,e){return{op:1,value:n,factor:e}}function ut(n,e){return{op:2,value:n,factor:e}}function xL(...n){return{op:4,values:n}}function pFe(n,e,t){return{op:6,if:n,then:e,else:t}}function LX(n,e,t,i){return{op:5,value:n,background:e,factor:t,transparency:i}}function wd(n,e){if(n!==null){if(typeof n==\"string\")return n[0]===\"#\"?le.fromHex(n):e.getColor(n);if(n instanceof le)return n;if(typeof n==\"object\")return gFe(n,e)}}const Wle=\"vscode://schemas/workbench-colors\",Hle=Un.as(DM.JSONContribution);Hle.registerSchema(Wle,TM.getColorSchema());const kX=new Xi(()=>Hle.notifySchemaChanged(Wle),200);TM.onDidChangeSchema(()=>{kX.isScheduled()||kX.schedule()});const Ne=V(\"foreground\",{dark:\"#CCCCCC\",light:\"#616161\",hcDark:\"#FFFFFF\",hcLight:\"#292929\"},v(\"foreground\",\"Overall foreground color. This color is only used if not overridden by a component.\"));V(\"disabledForeground\",{dark:\"#CCCCCC80\",light:\"#61616180\",hcDark:\"#A5A5A5\",hcLight:\"#7F7F7F\"},v(\"disabledForeground\",\"Overall foreground for disabled elements. This color is only used if not overridden by a component.\"));V(\"errorForeground\",{dark:\"#F48771\",light:\"#A1260D\",hcDark:\"#F48771\",hcLight:\"#B5200D\"},v(\"errorForeground\",\"Overall foreground color for error messages. This color is only used if not overridden by a component.\"));V(\"descriptionForeground\",{light:\"#717171\",dark:ut(Ne,.7),hcDark:ut(Ne,.7),hcLight:ut(Ne,.7)},v(\"descriptionForeground\",\"Foreground color for description text providing additional information, for example for a label.\"));const ah=V(\"icon.foreground\",{dark:\"#C5C5C5\",light:\"#424242\",hcDark:\"#FFFFFF\",hcLight:\"#292929\"},v(\"iconForeground\",\"The default color for icons in the workbench.\")),Xl=V(\"focusBorder\",{dark:\"#007FD4\",light:\"#0090F1\",hcDark:\"#F38518\",hcLight:\"#006BBD\"},v(\"focusBorder\",\"Overall border color for focused elements. This color is only used if not overridden by a component.\")),ti=V(\"contrastBorder\",{light:null,dark:null,hcDark:\"#6FC3DF\",hcLight:\"#0F4A85\"},v(\"contrastBorder\",\"An extra border around elements to separate them from others for greater contrast.\")),En=V(\"contrastActiveBorder\",{light:null,dark:null,hcDark:Xl,hcLight:Xl},v(\"activeContrastBorder\",\"An extra border around active elements to separate them from others for greater contrast.\"));V(\"selection.background\",{light:null,dark:null,hcDark:null,hcLight:null},v(\"selectionBackground\",\"The background color of text selections in the workbench (e.g. for input fields or text areas). Note that this does not apply to selections within the editor.\"));const mFe=V(\"textLink.foreground\",{light:\"#006AB1\",dark:\"#3794FF\",hcDark:\"#21A6FF\",hcLight:\"#0F4A85\"},v(\"textLinkForeground\",\"Foreground color for links in text.\"));V(\"textLink.activeForeground\",{light:\"#006AB1\",dark:\"#3794FF\",hcDark:\"#21A6FF\",hcLight:\"#0F4A85\"},v(\"textLinkActiveForeground\",\"Foreground color for links in text when clicked on and on mouse hover.\"));V(\"textSeparator.foreground\",{light:\"#0000002e\",dark:\"#ffffff2e\",hcDark:le.black,hcLight:\"#292929\"},v(\"textSeparatorForeground\",\"Color for text separators.\"));V(\"textPreformat.foreground\",{light:\"#A31515\",dark:\"#D7BA7D\",hcDark:\"#000000\",hcLight:\"#FFFFFF\"},v(\"textPreformatForeground\",\"Foreground color for preformatted text segments.\"));V(\"textPreformat.background\",{light:\"#0000001A\",dark:\"#FFFFFF1A\",hcDark:\"#FFFFFF\",hcLight:\"#09345f\"},v(\"textPreformatBackground\",\"Background color for preformatted text segments.\"));V(\"textBlockQuote.background\",{light:\"#f2f2f2\",dark:\"#222222\",hcDark:null,hcLight:\"#F2F2F2\"},v(\"textBlockQuoteBackground\",\"Background color for block quotes in text.\"));V(\"textBlockQuote.border\",{light:\"#007acc80\",dark:\"#007acc80\",hcDark:le.white,hcLight:\"#292929\"},v(\"textBlockQuoteBorder\",\"Border color for block quotes in text.\"));V(\"textCodeBlock.background\",{light:\"#dcdcdc66\",dark:\"#0a0a0a66\",hcDark:le.black,hcLight:\"#F2F2F2\"},v(\"textCodeBlockBackground\",\"Background color for code blocks in text.\"));V(\"sash.hoverBorder\",{dark:Xl,light:Xl,hcDark:Xl,hcLight:Xl},v(\"sashActiveBorder\",\"Border color of active sashes.\"));const vN=V(\"badge.background\",{dark:\"#4D4D4D\",light:\"#C4C4C4\",hcDark:le.black,hcLight:\"#0F4A85\"},v(\"badgeBackground\",\"Badge background color. Badges are small information labels, e.g. for search results count.\")),_Fe=V(\"badge.foreground\",{dark:le.white,light:\"#333\",hcDark:le.white,hcLight:le.white},v(\"badgeForeground\",\"Badge foreground color. Badges are small information labels, e.g. for search results count.\")),bS=V(\"scrollbar.shadow\",{dark:\"#000000\",light:\"#DDDDDD\",hcDark:null,hcLight:null},v(\"scrollbarShadow\",\"Scrollbar shadow to indicate that the view is scrolled.\")),CS=V(\"scrollbarSlider.background\",{dark:le.fromHex(\"#797979\").transparent(.4),light:le.fromHex(\"#646464\").transparent(.4),hcDark:ut(ti,.6),hcLight:ut(ti,.4)},v(\"scrollbarSliderBackground\",\"Scrollbar slider background color.\")),wS=V(\"scrollbarSlider.hoverBackground\",{dark:le.fromHex(\"#646464\").transparent(.7),light:le.fromHex(\"#646464\").transparent(.7),hcDark:ut(ti,.8),hcLight:ut(ti,.8)},v(\"scrollbarSliderHoverBackground\",\"Scrollbar slider background color when hovering.\")),yS=V(\"scrollbarSlider.activeBackground\",{dark:le.fromHex(\"#BFBFBF\").transparent(.4),light:le.fromHex(\"#000000\").transparent(.6),hcDark:ti,hcLight:ti},v(\"scrollbarSliderActiveBackground\",\"Scrollbar slider background color when clicked on.\")),vFe=V(\"progressBar.background\",{dark:le.fromHex(\"#0E70C0\"),light:le.fromHex(\"#0E70C0\"),hcDark:ti,hcLight:ti},v(\"progressBarBackground\",\"Background color of the progress bar that can show for long running operations.\")),Ys=V(\"editor.background\",{light:\"#ffffff\",dark:\"#1E1E1E\",hcDark:le.black,hcLight:le.white},v(\"editorBackground\",\"Editor background color.\")),Ql=V(\"editor.foreground\",{light:\"#333333\",dark:\"#BBBBBB\",hcDark:le.white,hcLight:Ne},v(\"editorForeground\",\"Editor default foreground color.\"));V(\"editorStickyScroll.background\",{light:Ys,dark:Ys,hcDark:Ys,hcLight:Ys},v(\"editorStickyScrollBackground\",\"Background color of sticky scroll in the editor\"));V(\"editorStickyScrollHover.background\",{dark:\"#2A2D2E\",light:\"#F0F0F0\",hcDark:null,hcLight:le.fromHex(\"#0F4A85\").transparent(.1)},v(\"editorStickyScrollHoverBackground\",\"Background color of sticky scroll on hover in the editor\"));V(\"editorStickyScroll.border\",{dark:null,light:null,hcDark:ti,hcLight:ti},v(\"editorStickyScrollBorder\",\"Border color of sticky scroll in the editor\"));V(\"editorStickyScroll.shadow\",{dark:bS,light:bS,hcDark:bS,hcLight:bS},v(\"editorStickyScrollShadow\",\" Shadow color of sticky scroll in the editor\"));const fs=V(\"editorWidget.background\",{dark:\"#252526\",light:\"#F3F3F3\",hcDark:\"#0C141F\",hcLight:le.white},v(\"editorWidgetBackground\",\"Background color of editor widgets, such as find/replace.\")),Xf=V(\"editorWidget.foreground\",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v(\"editorWidgetForeground\",\"Foreground color of editor widgets, such as find/replace.\")),Qf=V(\"editorWidget.border\",{dark:\"#454545\",light:\"#C8C8C8\",hcDark:ti,hcLight:ti},v(\"editorWidgetBorder\",\"Border color of editor widgets. The color is only used if the widget chooses to have a border and if the color is not overridden by a widget.\"));V(\"editorWidget.resizeBorder\",{light:null,dark:null,hcDark:null,hcLight:null},v(\"editorWidgetResizeBorder\",\"Border color of the resize bar of editor widgets. The color is only used if the widget chooses to have a resize border and if the color is not overridden by a widget.\"));V(\"editorError.background\",{dark:null,light:null,hcDark:null,hcLight:null},v(\"editorError.background\",\"Background color of error text in the editor. The color must not be opaque so as not to hide underlying decorations.\"),!0);const lh=V(\"editorError.foreground\",{dark:\"#F14C4C\",light:\"#E51400\",hcDark:\"#F48771\",hcLight:\"#B5200D\"},v(\"editorError.foreground\",\"Foreground color of error squigglies in the editor.\")),bFe=V(\"editorError.border\",{dark:null,light:null,hcDark:le.fromHex(\"#E47777\").transparent(.8),hcLight:\"#B5200D\"},v(\"errorBorder\",\"If set, color of double underlines for errors in the editor.\")),NE=V(\"editorWarning.background\",{dark:null,light:null,hcDark:null,hcLight:null},v(\"editorWarning.background\",\"Background color of warning text in the editor. The color must not be opaque so as not to hide underlying decorations.\"),!0),hr=V(\"editorWarning.foreground\",{dark:\"#CCA700\",light:\"#BF8803\",hcDark:\"#FFD370\",hcLight:\"#895503\"},v(\"editorWarning.foreground\",\"Foreground color of warning squigglies in the editor.\")),LL=V(\"editorWarning.border\",{dark:null,light:null,hcDark:le.fromHex(\"#FFCC00\").transparent(.8),hcLight:le.fromHex(\"#FFCC00\").transparent(.8)},v(\"warningBorder\",\"If set, color of double underlines for warnings in the editor.\"));V(\"editorInfo.background\",{dark:null,light:null,hcDark:null,hcLight:null},v(\"editorInfo.background\",\"Background color of info text in the editor. The color must not be opaque so as not to hide underlying decorations.\"),!0);const sa=V(\"editorInfo.foreground\",{dark:\"#3794FF\",light:\"#1a85ff\",hcDark:\"#3794FF\",hcLight:\"#1a85ff\"},v(\"editorInfo.foreground\",\"Foreground color of info squigglies in the editor.\")),kL=V(\"editorInfo.border\",{dark:null,light:null,hcDark:le.fromHex(\"#3794FF\").transparent(.8),hcLight:\"#292929\"},v(\"infoBorder\",\"If set, color of double underlines for infos in the editor.\")),CFe=V(\"editorHint.foreground\",{dark:le.fromHex(\"#eeeeee\").transparent(.7),light:\"#6c6c6c\",hcDark:null,hcLight:null},v(\"editorHint.foreground\",\"Foreground color of hint squigglies in the editor.\"));V(\"editorHint.border\",{dark:null,light:null,hcDark:le.fromHex(\"#eeeeee\").transparent(.8),hcLight:\"#292929\"},v(\"hintBorder\",\"If set, color of double underlines for hints in the editor.\"));const wFe=V(\"editorLink.activeForeground\",{dark:\"#4E94CE\",light:le.blue,hcDark:le.cyan,hcLight:\"#292929\"},v(\"activeLinkForeground\",\"Color of active links.\")),jp=V(\"editor.selectionBackground\",{light:\"#ADD6FF\",dark:\"#264F78\",hcDark:\"#f3f518\",hcLight:\"#0F4A85\"},v(\"editorSelectionBackground\",\"Color of the editor selection.\")),yFe=V(\"editor.selectionForeground\",{light:null,dark:null,hcDark:\"#000000\",hcLight:le.white},v(\"editorSelectionForeground\",\"Color of the selected text for high contrast.\")),Vle=V(\"editor.inactiveSelectionBackground\",{light:ut(jp,.5),dark:ut(jp,.5),hcDark:ut(jp,.7),hcLight:ut(jp,.5)},v(\"editorInactiveSelection\",\"Color of the selection in an inactive editor. The color must not be opaque so as not to hide underlying decorations.\"),!0),kz=V(\"editor.selectionHighlightBackground\",{light:LX(jp,Ys,.3,.6),dark:LX(jp,Ys,.3,.6),hcDark:null,hcLight:null},v(\"editorSelectionHighlight\",\"Color for regions with the same content as the selection. The color must not be opaque so as not to hide underlying decorations.\"),!0);V(\"editor.selectionHighlightBorder\",{light:null,dark:null,hcDark:En,hcLight:En},v(\"editorSelectionHighlightBorder\",\"Border color for regions with the same content as the selection.\"));V(\"editor.findMatchBackground\",{light:\"#A8AC94\",dark:\"#515C6A\",hcDark:null,hcLight:null},v(\"editorFindMatch\",\"Color of the current search match.\"));const SFe=V(\"editor.findMatchForeground\",{light:null,dark:null,hcDark:null,hcLight:null},v(\"editorFindMatchForeground\",\"Text color of the current search match.\")),Jf=V(\"editor.findMatchHighlightBackground\",{light:\"#EA5C0055\",dark:\"#EA5C0055\",hcDark:null,hcLight:null},v(\"findMatchHighlight\",\"Color of the other search matches. The color must not be opaque so as not to hide underlying decorations.\"),!0),xFe=V(\"editor.findMatchHighlightForeground\",{light:null,dark:null,hcDark:null,hcLight:null},v(\"findMatchHighlightForeground\",\"Foreground color of the other search matches.\"),!0);V(\"editor.findRangeHighlightBackground\",{dark:\"#3a3d4166\",light:\"#b4b4b44d\",hcDark:null,hcLight:null},v(\"findRangeHighlight\",\"Color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations.\"),!0);V(\"editor.findMatchBorder\",{light:null,dark:null,hcDark:En,hcLight:En},v(\"editorFindMatchBorder\",\"Border color of the current search match.\"));const Kp=V(\"editor.findMatchHighlightBorder\",{light:null,dark:null,hcDark:En,hcLight:En},v(\"findMatchHighlightBorder\",\"Border color of the other search matches.\")),LFe=V(\"editor.findRangeHighlightBorder\",{dark:null,light:null,hcDark:ut(En,.4),hcLight:ut(En,.4)},v(\"findRangeHighlightBorder\",\"Border color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations.\"),!0);V(\"editor.hoverHighlightBackground\",{light:\"#ADD6FF26\",dark:\"#264f7840\",hcDark:\"#ADD6FF26\",hcLight:null},v(\"hoverHighlight\",\"Highlight below the word for which a hover is shown. The color must not be opaque so as not to hide underlying decorations.\"),!0);const X2=V(\"editorHoverWidget.background\",{light:fs,dark:fs,hcDark:fs,hcLight:fs},v(\"hoverBackground\",\"Background color of the editor hover.\"));V(\"editorHoverWidget.foreground\",{light:Xf,dark:Xf,hcDark:Xf,hcLight:Xf},v(\"hoverForeground\",\"Foreground color of the editor hover.\"));const zle=V(\"editorHoverWidget.border\",{light:Qf,dark:Qf,hcDark:Qf,hcLight:Qf},v(\"hoverBorder\",\"Border color of the editor hover.\"));V(\"editorHoverWidget.statusBarBackground\",{dark:Gd(X2,.2),light:Y0(X2,.05),hcDark:fs,hcLight:fs},v(\"statusBarBackground\",\"Background color of the editor hover status bar.\"));const eg=V(\"editorInlayHint.foreground\",{dark:\"#969696\",light:\"#969696\",hcDark:le.white,hcLight:le.black},v(\"editorInlayHintForeground\",\"Foreground color of inline hints\")),tg=V(\"editorInlayHint.background\",{dark:ut(vN,.1),light:ut(vN,.1),hcDark:ut(le.white,.1),hcLight:ut(vN,.1)},v(\"editorInlayHintBackground\",\"Background color of inline hints\")),kFe=V(\"editorInlayHint.typeForeground\",{dark:eg,light:eg,hcDark:eg,hcLight:eg},v(\"editorInlayHintForegroundTypes\",\"Foreground color of inline hints for types\")),DFe=V(\"editorInlayHint.typeBackground\",{dark:tg,light:tg,hcDark:tg,hcLight:tg},v(\"editorInlayHintBackgroundTypes\",\"Background color of inline hints for types\")),IFe=V(\"editorInlayHint.parameterForeground\",{dark:eg,light:eg,hcDark:eg,hcLight:eg},v(\"editorInlayHintForegroundParameter\",\"Foreground color of inline hints for parameters\")),EFe=V(\"editorInlayHint.parameterBackground\",{dark:tg,light:tg,hcDark:tg,hcLight:tg},v(\"editorInlayHintBackgroundParameter\",\"Background color of inline hints for parameters\")),AE=V(\"editorLightBulb.foreground\",{dark:\"#FFCC00\",light:\"#DDB100\",hcDark:\"#FFCC00\",hcLight:\"#007ACC\"},v(\"editorLightBulbForeground\",\"The color used for the lightbulb actions icon.\"));V(\"editorLightBulbAutoFix.foreground\",{dark:\"#75BEFF\",light:\"#007ACC\",hcDark:\"#75BEFF\",hcLight:\"#007ACC\"},v(\"editorLightBulbAutoFixForeground\",\"The color used for the lightbulb auto fix actions icon.\"));V(\"editorLightBulbAi.foreground\",{dark:AE,light:AE,hcDark:AE,hcLight:AE},v(\"editorLightBulbAiForeground\",\"The color used for the lightbulb AI icon.\"));V(\"editor.snippetTabstopHighlightBackground\",{dark:new le(new ci(124,124,124,.3)),light:new le(new ci(10,50,100,.2)),hcDark:new le(new ci(124,124,124,.3)),hcLight:new le(new ci(10,50,100,.2))},v(\"snippetTabstopHighlightBackground\",\"Highlight background color of a snippet tabstop.\"));V(\"editor.snippetTabstopHighlightBorder\",{dark:null,light:null,hcDark:null,hcLight:null},v(\"snippetTabstopHighlightBorder\",\"Highlight border color of a snippet tabstop.\"));V(\"editor.snippetFinalTabstopHighlightBackground\",{dark:null,light:null,hcDark:null,hcLight:null},v(\"snippetFinalTabstopHighlightBackground\",\"Highlight background color of the final tabstop of a snippet.\"));V(\"editor.snippetFinalTabstopHighlightBorder\",{dark:\"#525252\",light:new le(new ci(10,50,100,.5)),hcDark:\"#525252\",hcLight:\"#292929\"},v(\"snippetFinalTabstopHighlightBorder\",\"Highlight border color of the final tabstop of a snippet.\"));const DB=new le(new ci(155,185,85,.2)),IB=new le(new ci(255,0,0,.2)),TFe=V(\"diffEditor.insertedTextBackground\",{dark:\"#9ccc2c33\",light:\"#9ccc2c40\",hcDark:null,hcLight:null},v(\"diffEditorInserted\",\"Background color for text that got inserted. The color must not be opaque so as not to hide underlying decorations.\"),!0),NFe=V(\"diffEditor.removedTextBackground\",{dark:\"#ff000033\",light:\"#ff000033\",hcDark:null,hcLight:null},v(\"diffEditorRemoved\",\"Background color for text that got removed. The color must not be opaque so as not to hide underlying decorations.\"),!0);V(\"diffEditor.insertedLineBackground\",{dark:DB,light:DB,hcDark:null,hcLight:null},v(\"diffEditorInsertedLines\",\"Background color for lines that got inserted. The color must not be opaque so as not to hide underlying decorations.\"),!0);V(\"diffEditor.removedLineBackground\",{dark:IB,light:IB,hcDark:null,hcLight:null},v(\"diffEditorRemovedLines\",\"Background color for lines that got removed. The color must not be opaque so as not to hide underlying decorations.\"),!0);V(\"diffEditorGutter.insertedLineBackground\",{dark:null,light:null,hcDark:null,hcLight:null},v(\"diffEditorInsertedLineGutter\",\"Background color for the margin where lines got inserted.\"));V(\"diffEditorGutter.removedLineBackground\",{dark:null,light:null,hcDark:null,hcLight:null},v(\"diffEditorRemovedLineGutter\",\"Background color for the margin where lines got removed.\"));const AFe=V(\"diffEditorOverview.insertedForeground\",{dark:null,light:null,hcDark:null,hcLight:null},v(\"diffEditorOverviewInserted\",\"Diff overview ruler foreground for inserted content.\")),RFe=V(\"diffEditorOverview.removedForeground\",{dark:null,light:null,hcDark:null,hcLight:null},v(\"diffEditorOverviewRemoved\",\"Diff overview ruler foreground for removed content.\"));V(\"diffEditor.insertedTextBorder\",{dark:null,light:null,hcDark:\"#33ff2eff\",hcLight:\"#374E06\"},v(\"diffEditorInsertedOutline\",\"Outline color for the text that got inserted.\"));V(\"diffEditor.removedTextBorder\",{dark:null,light:null,hcDark:\"#FF008F\",hcLight:\"#AD0707\"},v(\"diffEditorRemovedOutline\",\"Outline color for text that got removed.\"));V(\"diffEditor.border\",{dark:null,light:null,hcDark:ti,hcLight:ti},v(\"diffEditorBorder\",\"Border color between the two text editors.\"));V(\"diffEditor.diagonalFill\",{dark:\"#cccccc33\",light:\"#22222233\",hcDark:null,hcLight:null},v(\"diffDiagonalFill\",\"Color of the diff editor's diagonal fill. The diagonal fill is used in side-by-side diff views.\"));V(\"diffEditor.unchangedRegionBackground\",{dark:\"sideBar.background\",light:\"sideBar.background\",hcDark:\"sideBar.background\",hcLight:\"sideBar.background\"},v(\"diffEditor.unchangedRegionBackground\",\"The background color of unchanged blocks in the diff editor.\"));V(\"diffEditor.unchangedRegionForeground\",{dark:\"foreground\",light:\"foreground\",hcDark:\"foreground\",hcLight:\"foreground\"},v(\"diffEditor.unchangedRegionForeground\",\"The foreground color of unchanged blocks in the diff editor.\"));V(\"diffEditor.unchangedCodeBackground\",{dark:\"#74747429\",light:\"#b8b8b829\",hcDark:null,hcLight:null},v(\"diffEditor.unchangedCodeBackground\",\"The background color of unchanged code in the diff editor.\"));const ig=V(\"widget.shadow\",{dark:ut(le.black,.36),light:ut(le.black,.16),hcDark:null,hcLight:null},v(\"widgetShadow\",\"Shadow color of widgets such as find/replace inside the editor.\")),$le=V(\"widget.border\",{dark:null,light:null,hcDark:ti,hcLight:ti},v(\"widgetBorder\",\"Border color of widgets such as find/replace inside the editor.\")),DX=V(\"toolbar.hoverBackground\",{dark:\"#5a5d5e50\",light:\"#b8b8b850\",hcDark:null,hcLight:null},v(\"toolbarHoverBackground\",\"Toolbar background when hovering over actions using the mouse\"));V(\"toolbar.hoverOutline\",{dark:null,light:null,hcDark:En,hcLight:En},v(\"toolbarHoverOutline\",\"Toolbar outline when hovering over actions using the mouse\"));V(\"toolbar.activeBackground\",{dark:Gd(DX,.1),light:Y0(DX,.1),hcDark:null,hcLight:null},v(\"toolbarActiveBackground\",\"Toolbar background when holding the mouse over actions\"));const MFe=V(\"breadcrumb.foreground\",{light:ut(Ne,.8),dark:ut(Ne,.8),hcDark:ut(Ne,.8),hcLight:ut(Ne,.8)},v(\"breadcrumbsFocusForeground\",\"Color of focused breadcrumb items.\")),PFe=V(\"breadcrumb.background\",{light:Ys,dark:Ys,hcDark:Ys,hcLight:Ys},v(\"breadcrumbsBackground\",\"Background color of breadcrumb items.\")),IX=V(\"breadcrumb.focusForeground\",{light:Y0(Ne,.2),dark:Gd(Ne,.1),hcDark:Gd(Ne,.1),hcLight:Gd(Ne,.1)},v(\"breadcrumbsFocusForeground\",\"Color of focused breadcrumb items.\")),OFe=V(\"breadcrumb.activeSelectionForeground\",{light:Y0(Ne,.2),dark:Gd(Ne,.1),hcDark:Gd(Ne,.1),hcLight:Gd(Ne,.1)},v(\"breadcrumbsSelectedForeground\",\"Color of selected breadcrumb items.\"));V(\"breadcrumbPicker.background\",{light:fs,dark:fs,hcDark:fs,hcLight:fs},v(\"breadcrumbsSelectedBackground\",\"Background color of breadcrumb item picker.\"));const Ule=.5,EX=le.fromHex(\"#40C8AE\").transparent(Ule),TX=le.fromHex(\"#40A6FF\").transparent(Ule),NX=le.fromHex(\"#606060\").transparent(.4),Gc=.4,BC=1,v1=V(\"merge.currentHeaderBackground\",{dark:EX,light:EX,hcDark:null,hcLight:null},v(\"mergeCurrentHeaderBackground\",\"Current header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.\"),!0);V(\"merge.currentContentBackground\",{dark:ut(v1,Gc),light:ut(v1,Gc),hcDark:ut(v1,Gc),hcLight:ut(v1,Gc)},v(\"mergeCurrentContentBackground\",\"Current content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.\"),!0);const b1=V(\"merge.incomingHeaderBackground\",{dark:TX,light:TX,hcDark:null,hcLight:null},v(\"mergeIncomingHeaderBackground\",\"Incoming header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.\"),!0);V(\"merge.incomingContentBackground\",{dark:ut(b1,Gc),light:ut(b1,Gc),hcDark:ut(b1,Gc),hcLight:ut(b1,Gc)},v(\"mergeIncomingContentBackground\",\"Incoming content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.\"),!0);const C1=V(\"merge.commonHeaderBackground\",{dark:NX,light:NX,hcDark:null,hcLight:null},v(\"mergeCommonHeaderBackground\",\"Common ancestor header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.\"),!0);V(\"merge.commonContentBackground\",{dark:ut(C1,Gc),light:ut(C1,Gc),hcDark:ut(C1,Gc),hcLight:ut(C1,Gc)},v(\"mergeCommonContentBackground\",\"Common ancestor content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.\"),!0);const WC=V(\"merge.border\",{dark:null,light:null,hcDark:\"#C3DF6F\",hcLight:\"#007ACC\"},v(\"mergeBorder\",\"Border color on headers and the splitter in inline merge-conflicts.\"));V(\"editorOverviewRuler.currentContentForeground\",{dark:ut(v1,BC),light:ut(v1,BC),hcDark:WC,hcLight:WC},v(\"overviewRulerCurrentContentForeground\",\"Current overview ruler foreground for inline merge-conflicts.\"));V(\"editorOverviewRuler.incomingContentForeground\",{dark:ut(b1,BC),light:ut(b1,BC),hcDark:WC,hcLight:WC},v(\"overviewRulerIncomingContentForeground\",\"Incoming overview ruler foreground for inline merge-conflicts.\"));V(\"editorOverviewRuler.commonContentForeground\",{dark:ut(C1,BC),light:ut(C1,BC),hcDark:WC,hcLight:WC},v(\"overviewRulerCommonContentForeground\",\"Common ancestor overview ruler foreground for inline merge-conflicts.\"));const Dz=V(\"editorOverviewRuler.findMatchForeground\",{dark:\"#d186167e\",light:\"#d186167e\",hcDark:\"#AB5A00\",hcLight:\"\"},v(\"overviewRulerFindMatchForeground\",\"Overview ruler marker color for find matches. The color must not be opaque so as not to hide underlying decorations.\"),!0),SS=V(\"editorOverviewRuler.selectionHighlightForeground\",{dark:\"#A0A0A0CC\",light:\"#A0A0A0CC\",hcDark:\"#A0A0A0CC\",hcLight:\"#A0A0A0CC\"},v(\"overviewRulerSelectionHighlightForeground\",\"Overview ruler marker color for selection highlights. The color must not be opaque so as not to hide underlying decorations.\"),!0),FFe=V(\"problemsErrorIcon.foreground\",{dark:lh,light:lh,hcDark:lh,hcLight:lh},v(\"problemsErrorIconForeground\",\"The color used for the problems error icon.\")),BFe=V(\"problemsWarningIcon.foreground\",{dark:hr,light:hr,hcDark:hr,hcLight:hr},v(\"problemsWarningIconForeground\",\"The color used for the problems warning icon.\")),WFe=V(\"problemsInfoIcon.foreground\",{dark:sa,light:sa,hcDark:sa,hcLight:sa},v(\"problemsInfoIconForeground\",\"The color used for the problems info icon.\")),w1=V(\"minimap.findMatchHighlight\",{light:\"#d18616\",dark:\"#d18616\",hcDark:\"#AB5A00\",hcLight:\"#0F4A85\"},v(\"minimapFindMatchHighlight\",\"Minimap marker color for find matches.\"),!0),NM=V(\"minimap.selectionOccurrenceHighlight\",{light:\"#c9c9c9\",dark:\"#676767\",hcDark:\"#ffffff\",hcLight:\"#0F4A85\"},v(\"minimapSelectionOccurrenceHighlight\",\"Minimap marker color for repeating editor selections.\"),!0),AX=V(\"minimap.selectionHighlight\",{light:\"#ADD6FF\",dark:\"#264F78\",hcDark:\"#ffffff\",hcLight:\"#0F4A85\"},v(\"minimapSelectionHighlight\",\"Minimap marker color for the editor selection.\"),!0),HFe=V(\"minimap.infoHighlight\",{dark:sa,light:sa,hcDark:kL,hcLight:kL},v(\"minimapInfo\",\"Minimap marker color for infos.\")),VFe=V(\"minimap.warningHighlight\",{dark:hr,light:hr,hcDark:LL,hcLight:LL},v(\"overviewRuleWarning\",\"Minimap marker color for warnings.\")),zFe=V(\"minimap.errorHighlight\",{dark:new le(new ci(255,18,18,.7)),light:new le(new ci(255,18,18,.7)),hcDark:new le(new ci(255,50,50,1)),hcLight:\"#B5200D\"},v(\"minimapError\",\"Minimap marker color for errors.\")),$Fe=V(\"minimap.background\",{dark:null,light:null,hcDark:null,hcLight:null},v(\"minimapBackground\",\"Minimap background color.\")),UFe=V(\"minimap.foregroundOpacity\",{dark:le.fromHex(\"#000f\"),light:le.fromHex(\"#000f\"),hcDark:le.fromHex(\"#000f\"),hcLight:le.fromHex(\"#000f\")},v(\"minimapForegroundOpacity\",'Opacity of foreground elements rendered in the minimap. For example, \"#000000c0\" will render the elements with 75% opacity.'));V(\"minimapSlider.background\",{light:ut(CS,.5),dark:ut(CS,.5),hcDark:ut(CS,.5),hcLight:ut(CS,.5)},v(\"minimapSliderBackground\",\"Minimap slider background color.\"));V(\"minimapSlider.hoverBackground\",{light:ut(wS,.5),dark:ut(wS,.5),hcDark:ut(wS,.5),hcLight:ut(wS,.5)},v(\"minimapSliderHoverBackground\",\"Minimap slider background color when hovering.\"));V(\"minimapSlider.activeBackground\",{light:ut(yS,.5),dark:ut(yS,.5),hcDark:ut(yS,.5),hcLight:ut(yS,.5)},v(\"minimapSliderActiveBackground\",\"Minimap slider background color when clicked on.\"));V(\"charts.foreground\",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v(\"chartsForeground\",\"The foreground color used in charts.\"));V(\"charts.lines\",{dark:ut(Ne,.5),light:ut(Ne,.5),hcDark:ut(Ne,.5),hcLight:ut(Ne,.5)},v(\"chartsLines\",\"The color used for horizontal lines in charts.\"));V(\"charts.red\",{dark:lh,light:lh,hcDark:lh,hcLight:lh},v(\"chartsRed\",\"The red color used in chart visualizations.\"));V(\"charts.blue\",{dark:sa,light:sa,hcDark:sa,hcLight:sa},v(\"chartsBlue\",\"The blue color used in chart visualizations.\"));V(\"charts.yellow\",{dark:hr,light:hr,hcDark:hr,hcLight:hr},v(\"chartsYellow\",\"The yellow color used in chart visualizations.\"));V(\"charts.orange\",{dark:w1,light:w1,hcDark:w1,hcLight:w1},v(\"chartsOrange\",\"The orange color used in chart visualizations.\"));V(\"charts.green\",{dark:\"#89D185\",light:\"#388A34\",hcDark:\"#89D185\",hcLight:\"#374e06\"},v(\"chartsGreen\",\"The green color used in chart visualizations.\"));V(\"charts.purple\",{dark:\"#B180D7\",light:\"#652D90\",hcDark:\"#B180D7\",hcLight:\"#652D90\"},v(\"chartsPurple\",\"The purple color used in chart visualizations.\"));const EB=V(\"input.background\",{dark:\"#3C3C3C\",light:le.white,hcDark:le.black,hcLight:le.white},v(\"inputBoxBackground\",\"Input box background.\")),jle=V(\"input.foreground\",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v(\"inputBoxForeground\",\"Input box foreground.\")),Kle=V(\"input.border\",{dark:null,light:null,hcDark:ti,hcLight:ti},v(\"inputBoxBorder\",\"Input box border.\")),Iz=V(\"inputOption.activeBorder\",{dark:\"#007ACC\",light:\"#007ACC\",hcDark:ti,hcLight:ti},v(\"inputBoxActiveOptionBorder\",\"Border color of activated options in input fields.\"));V(\"inputOption.hoverBackground\",{dark:\"#5a5d5e80\",light:\"#b8b8b850\",hcDark:null,hcLight:null},v(\"inputOption.hoverBackground\",\"Background color of activated options in input fields.\"));const Lv=V(\"inputOption.activeBackground\",{dark:ut(Xl,.4),light:ut(Xl,.2),hcDark:le.transparent,hcLight:le.transparent},v(\"inputOption.activeBackground\",\"Background hover color of options in input fields.\")),Ez=V(\"inputOption.activeForeground\",{dark:le.white,light:le.black,hcDark:Ne,hcLight:Ne},v(\"inputOption.activeForeground\",\"Foreground color of activated options in input fields.\"));V(\"input.placeholderForeground\",{light:ut(Ne,.5),dark:ut(Ne,.5),hcDark:ut(Ne,.7),hcLight:ut(Ne,.7)},v(\"inputPlaceholderForeground\",\"Input box foreground color for placeholder text.\"));const jFe=V(\"inputValidation.infoBackground\",{dark:\"#063B49\",light:\"#D6ECF2\",hcDark:le.black,hcLight:le.white},v(\"inputValidationInfoBackground\",\"Input validation background color for information severity.\")),KFe=V(\"inputValidation.infoForeground\",{dark:null,light:null,hcDark:null,hcLight:Ne},v(\"inputValidationInfoForeground\",\"Input validation foreground color for information severity.\")),qFe=V(\"inputValidation.infoBorder\",{dark:\"#007acc\",light:\"#007acc\",hcDark:ti,hcLight:ti},v(\"inputValidationInfoBorder\",\"Input validation border color for information severity.\")),GFe=V(\"inputValidation.warningBackground\",{dark:\"#352A05\",light:\"#F6F5D2\",hcDark:le.black,hcLight:le.white},v(\"inputValidationWarningBackground\",\"Input validation background color for warning severity.\")),ZFe=V(\"inputValidation.warningForeground\",{dark:null,light:null,hcDark:null,hcLight:Ne},v(\"inputValidationWarningForeground\",\"Input validation foreground color for warning severity.\")),YFe=V(\"inputValidation.warningBorder\",{dark:\"#B89500\",light:\"#B89500\",hcDark:ti,hcLight:ti},v(\"inputValidationWarningBorder\",\"Input validation border color for warning severity.\")),XFe=V(\"inputValidation.errorBackground\",{dark:\"#5A1D1D\",light:\"#F2DEDE\",hcDark:le.black,hcLight:le.white},v(\"inputValidationErrorBackground\",\"Input validation background color for error severity.\")),QFe=V(\"inputValidation.errorForeground\",{dark:null,light:null,hcDark:null,hcLight:Ne},v(\"inputValidationErrorForeground\",\"Input validation foreground color for error severity.\")),JFe=V(\"inputValidation.errorBorder\",{dark:\"#BE1100\",light:\"#BE1100\",hcDark:ti,hcLight:ti},v(\"inputValidationErrorBorder\",\"Input validation border color for error severity.\")),ch=V(\"dropdown.background\",{dark:\"#3C3C3C\",light:le.white,hcDark:le.black,hcLight:le.white},v(\"dropdownBackground\",\"Dropdown background.\")),e5e=V(\"dropdown.listBackground\",{dark:null,light:null,hcDark:le.black,hcLight:le.white},v(\"dropdownListBackground\",\"Dropdown list background.\")),ng=V(\"dropdown.foreground\",{dark:\"#F0F0F0\",light:Ne,hcDark:le.white,hcLight:Ne},v(\"dropdownForeground\",\"Dropdown foreground.\")),y1=V(\"dropdown.border\",{dark:ch,light:\"#CECECE\",hcDark:ti,hcLight:ti},v(\"dropdownBorder\",\"Dropdown border.\")),xS=V(\"button.foreground\",{dark:le.white,light:le.white,hcDark:le.white,hcLight:le.white},v(\"buttonForeground\",\"Button foreground color.\")),t5e=V(\"button.separator\",{dark:ut(xS,.4),light:ut(xS,.4),hcDark:ut(xS,.4),hcLight:ut(xS,.4)},v(\"buttonSeparator\",\"Button separator color.\")),LS=V(\"button.background\",{dark:\"#0E639C\",light:\"#007ACC\",hcDark:null,hcLight:\"#0F4A85\"},v(\"buttonBackground\",\"Button background color.\")),i5e=V(\"button.hoverBackground\",{dark:Gd(LS,.2),light:Y0(LS,.2),hcDark:LS,hcLight:LS},v(\"buttonHoverBackground\",\"Button background color when hovering.\")),n5e=V(\"button.border\",{dark:ti,light:ti,hcDark:ti,hcLight:ti},v(\"buttonBorder\",\"Button border color.\")),s5e=V(\"button.secondaryForeground\",{dark:le.white,light:le.white,hcDark:le.white,hcLight:Ne},v(\"buttonSecondaryForeground\",\"Secondary button foreground color.\")),TB=V(\"button.secondaryBackground\",{dark:\"#3A3D41\",light:\"#5F6A79\",hcDark:null,hcLight:le.white},v(\"buttonSecondaryBackground\",\"Secondary button background color.\")),o5e=V(\"button.secondaryHoverBackground\",{dark:Gd(TB,.2),light:Y0(TB,.2),hcDark:null,hcLight:null},v(\"buttonSecondaryHoverBackground\",\"Secondary button background color when hovering.\")),r5e=V(\"checkbox.background\",{dark:ch,light:ch,hcDark:ch,hcLight:ch},v(\"checkbox.background\",\"Background color of checkbox widget.\"));V(\"checkbox.selectBackground\",{dark:fs,light:fs,hcDark:fs,hcLight:fs},v(\"checkbox.select.background\",\"Background color of checkbox widget when the element it's in is selected.\"));const a5e=V(\"checkbox.foreground\",{dark:ng,light:ng,hcDark:ng,hcLight:ng},v(\"checkbox.foreground\",\"Foreground color of checkbox widget.\")),l5e=V(\"checkbox.border\",{dark:y1,light:y1,hcDark:y1,hcLight:y1},v(\"checkbox.border\",\"Border color of checkbox widget.\"));V(\"checkbox.selectBorder\",{dark:ah,light:ah,hcDark:ah,hcLight:ah},v(\"checkbox.select.border\",\"Border color of checkbox widget when the element it's in is selected.\"));const c5e=V(\"keybindingLabel.background\",{dark:new le(new ci(128,128,128,.17)),light:new le(new ci(221,221,221,.4)),hcDark:le.transparent,hcLight:le.transparent},v(\"keybindingLabelBackground\",\"Keybinding label background color. The keybinding label is used to represent a keyboard shortcut.\")),d5e=V(\"keybindingLabel.foreground\",{dark:le.fromHex(\"#CCCCCC\"),light:le.fromHex(\"#555555\"),hcDark:le.white,hcLight:Ne},v(\"keybindingLabelForeground\",\"Keybinding label foreground color. The keybinding label is used to represent a keyboard shortcut.\")),u5e=V(\"keybindingLabel.border\",{dark:new le(new ci(51,51,51,.6)),light:new le(new ci(204,204,204,.4)),hcDark:new le(new ci(111,195,223)),hcLight:ti},v(\"keybindingLabelBorder\",\"Keybinding label border color. The keybinding label is used to represent a keyboard shortcut.\")),h5e=V(\"keybindingLabel.bottomBorder\",{dark:new le(new ci(68,68,68,.6)),light:new le(new ci(187,187,187,.4)),hcDark:new le(new ci(111,195,223)),hcLight:Ne},v(\"keybindingLabelBottomBorder\",\"Keybinding label border bottom color. The keybinding label is used to represent a keyboard shortcut.\")),f5e=V(\"list.focusBackground\",{dark:null,light:null,hcDark:null,hcLight:null},v(\"listFocusBackground\",\"List/Tree background color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\")),g5e=V(\"list.focusForeground\",{dark:null,light:null,hcDark:null,hcLight:null},v(\"listFocusForeground\",\"List/Tree foreground color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\")),p5e=V(\"list.focusOutline\",{dark:Xl,light:Xl,hcDark:En,hcLight:En},v(\"listFocusOutline\",\"List/Tree outline color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\")),m5e=V(\"list.focusAndSelectionOutline\",{dark:null,light:null,hcDark:null,hcLight:null},v(\"listFocusAndSelectionOutline\",\"List/Tree outline color for the focused item when the list/tree is active and selected. An active list/tree has keyboard focus, an inactive does not.\")),sg=V(\"list.activeSelectionBackground\",{dark:\"#04395E\",light:\"#0060C0\",hcDark:null,hcLight:le.fromHex(\"#0F4A85\").transparent(.1)},v(\"listActiveSelectionBackground\",\"List/Tree background color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\")),dh=V(\"list.activeSelectionForeground\",{dark:le.white,light:le.white,hcDark:null,hcLight:null},v(\"listActiveSelectionForeground\",\"List/Tree foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\")),kS=V(\"list.activeSelectionIconForeground\",{dark:null,light:null,hcDark:null,hcLight:null},v(\"listActiveSelectionIconForeground\",\"List/Tree icon foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\")),_5e=V(\"list.inactiveSelectionBackground\",{dark:\"#37373D\",light:\"#E4E6F1\",hcDark:null,hcLight:le.fromHex(\"#0F4A85\").transparent(.1)},v(\"listInactiveSelectionBackground\",\"List/Tree background color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\")),v5e=V(\"list.inactiveSelectionForeground\",{dark:null,light:null,hcDark:null,hcLight:null},v(\"listInactiveSelectionForeground\",\"List/Tree foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\")),b5e=V(\"list.inactiveSelectionIconForeground\",{dark:null,light:null,hcDark:null,hcLight:null},v(\"listInactiveSelectionIconForeground\",\"List/Tree icon foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\")),C5e=V(\"list.inactiveFocusBackground\",{dark:null,light:null,hcDark:null,hcLight:null},v(\"listInactiveFocusBackground\",\"List/Tree background color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\")),w5e=V(\"list.inactiveFocusOutline\",{dark:null,light:null,hcDark:null,hcLight:null},v(\"listInactiveFocusOutline\",\"List/Tree outline color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\")),qle=V(\"list.hoverBackground\",{dark:\"#2A2D2E\",light:\"#F0F0F0\",hcDark:le.white.transparent(.1),hcLight:le.fromHex(\"#0F4A85\").transparent(.1)},v(\"listHoverBackground\",\"List/Tree background when hovering over items using the mouse.\")),Gle=V(\"list.hoverForeground\",{dark:null,light:null,hcDark:null,hcLight:null},v(\"listHoverForeground\",\"List/Tree foreground when hovering over items using the mouse.\")),y5e=V(\"list.dropBackground\",{dark:\"#062F4A\",light:\"#D6EBFF\",hcDark:null,hcLight:null},v(\"listDropBackground\",\"List/Tree drag and drop background when moving items over other items when using the mouse.\")),S5e=V(\"list.dropBetweenBackground\",{dark:ah,light:ah,hcDark:null,hcLight:null},v(\"listDropBetweenBackground\",\"List/Tree drag and drop border color when moving items between items when using the mouse.\")),Zc=V(\"list.highlightForeground\",{dark:\"#2AAAFF\",light:\"#0066BF\",hcDark:Xl,hcLight:Xl},v(\"highlight\",\"List/Tree foreground color of the match highlights when searching inside the list/tree.\")),RE=V(\"list.focusHighlightForeground\",{dark:Zc,light:pFe(sg,Zc,\"#BBE7FF\"),hcDark:Zc,hcLight:Zc},v(\"listFocusHighlightForeground\",\"List/Tree foreground color of the match highlights on actively focused items when searching inside the list/tree.\"));V(\"list.invalidItemForeground\",{dark:\"#B89500\",light:\"#B89500\",hcDark:\"#B89500\",hcLight:\"#B5200D\"},v(\"invalidItemForeground\",\"List/Tree foreground color for invalid items, for example an unresolved root in explorer.\"));V(\"list.errorForeground\",{dark:\"#F88070\",light:\"#B01011\",hcDark:null,hcLight:null},v(\"listErrorForeground\",\"Foreground color of list items containing errors.\"));V(\"list.warningForeground\",{dark:\"#CCA700\",light:\"#855F00\",hcDark:null,hcLight:null},v(\"listWarningForeground\",\"Foreground color of list items containing warnings.\"));const x5e=V(\"listFilterWidget.background\",{light:Y0(fs,0),dark:Gd(fs,0),hcDark:fs,hcLight:fs},v(\"listFilterWidgetBackground\",\"Background color of the type filter widget in lists and trees.\")),L5e=V(\"listFilterWidget.outline\",{dark:le.transparent,light:le.transparent,hcDark:\"#f38518\",hcLight:\"#007ACC\"},v(\"listFilterWidgetOutline\",\"Outline color of the type filter widget in lists and trees.\")),k5e=V(\"listFilterWidget.noMatchesOutline\",{dark:\"#BE1100\",light:\"#BE1100\",hcDark:ti,hcLight:ti},v(\"listFilterWidgetNoMatchesOutline\",\"Outline color of the type filter widget in lists and trees, when there are no matches.\")),D5e=V(\"listFilterWidget.shadow\",{dark:ig,light:ig,hcDark:ig,hcLight:ig},v(\"listFilterWidgetShadow\",\"Shadow color of the type filter widget in lists and trees.\"));V(\"list.filterMatchBackground\",{dark:Jf,light:Jf,hcDark:null,hcLight:null},v(\"listFilterMatchHighlight\",\"Background color of the filtered match.\"));V(\"list.filterMatchBorder\",{dark:Kp,light:Kp,hcDark:ti,hcLight:En},v(\"listFilterMatchHighlightBorder\",\"Border color of the filtered match.\"));V(\"list.deemphasizedForeground\",{dark:\"#8C8C8C\",light:\"#8E8E90\",hcDark:\"#A7A8A9\",hcLight:\"#666666\"},v(\"listDeemphasizedForeground\",\"List/Tree foreground color for items that are deemphasized.\"));const DS=V(\"tree.indentGuidesStroke\",{dark:\"#585858\",light:\"#a9a9a9\",hcDark:\"#a9a9a9\",hcLight:\"#a5a5a5\"},v(\"treeIndentGuidesStroke\",\"Tree stroke color for the indentation guides.\")),I5e=V(\"tree.inactiveIndentGuidesStroke\",{dark:ut(DS,.4),light:ut(DS,.4),hcDark:ut(DS,.4),hcLight:ut(DS,.4)},v(\"treeInactiveIndentGuidesStroke\",\"Tree stroke color for the indentation guides that are not active.\")),E5e=V(\"tree.tableColumnsBorder\",{dark:\"#CCCCCC20\",light:\"#61616120\",hcDark:null,hcLight:null},v(\"tableColumnsBorder\",\"Table border color between columns.\")),T5e=V(\"tree.tableOddRowsBackground\",{dark:ut(Ne,.04),light:ut(Ne,.04),hcDark:null,hcLight:null},v(\"tableOddRowsBackgroundColor\",\"Background color for odd table rows.\")),N5e=V(\"menu.border\",{dark:null,light:null,hcDark:ti,hcLight:ti},v(\"menuBorder\",\"Border color of menus.\")),A5e=V(\"menu.foreground\",{dark:ng,light:ng,hcDark:ng,hcLight:ng},v(\"menuForeground\",\"Foreground color of menu items.\")),R5e=V(\"menu.background\",{dark:ch,light:ch,hcDark:ch,hcLight:ch},v(\"menuBackground\",\"Background color of menu items.\")),M5e=V(\"menu.selectionForeground\",{dark:dh,light:dh,hcDark:dh,hcLight:dh},v(\"menuSelectionForeground\",\"Foreground color of the selected menu item in menus.\")),P5e=V(\"menu.selectionBackground\",{dark:sg,light:sg,hcDark:sg,hcLight:sg},v(\"menuSelectionBackground\",\"Background color of the selected menu item in menus.\")),O5e=V(\"menu.selectionBorder\",{dark:null,light:null,hcDark:En,hcLight:En},v(\"menuSelectionBorder\",\"Border color of the selected menu item in menus.\")),F5e=V(\"menu.separatorBackground\",{dark:\"#606060\",light:\"#D4D4D4\",hcDark:ti,hcLight:ti},v(\"menuSeparatorBackground\",\"Color of a separator menu item in menus.\")),RX=V(\"quickInput.background\",{dark:fs,light:fs,hcDark:fs,hcLight:fs},v(\"pickerBackground\",\"Quick picker background color. The quick picker widget is the container for pickers like the command palette.\")),B5e=V(\"quickInput.foreground\",{dark:Xf,light:Xf,hcDark:Xf,hcLight:Xf},v(\"pickerForeground\",\"Quick picker foreground color. The quick picker widget is the container for pickers like the command palette.\")),W5e=V(\"quickInputTitle.background\",{dark:new le(new ci(255,255,255,.105)),light:new le(new ci(0,0,0,.06)),hcDark:\"#000000\",hcLight:le.white},v(\"pickerTitleBackground\",\"Quick picker title background color. The quick picker widget is the container for pickers like the command palette.\")),Zle=V(\"pickerGroup.foreground\",{dark:\"#3794FF\",light:\"#0066BF\",hcDark:le.white,hcLight:\"#0F4A85\"},v(\"pickerGroupForeground\",\"Quick picker color for grouping labels.\")),H5e=V(\"pickerGroup.border\",{dark:\"#3F3F46\",light:\"#CCCEDB\",hcDark:le.white,hcLight:\"#0F4A85\"},v(\"pickerGroupBorder\",\"Quick picker color for grouping borders.\")),MX=V(\"quickInput.list.focusBackground\",{dark:null,light:null,hcDark:null,hcLight:null},\"\",void 0,v(\"quickInput.list.focusBackground deprecation\",\"Please use quickInputList.focusBackground instead\")),qp=V(\"quickInputList.focusForeground\",{dark:dh,light:dh,hcDark:dh,hcLight:dh},v(\"quickInput.listFocusForeground\",\"Quick picker foreground color for the focused item.\")),S1=V(\"quickInputList.focusIconForeground\",{dark:kS,light:kS,hcDark:kS,hcLight:kS},v(\"quickInput.listFocusIconForeground\",\"Quick picker icon foreground color for the focused item.\")),Gp=V(\"quickInputList.focusBackground\",{dark:xL(MX,sg),light:xL(MX,sg),hcDark:null,hcLight:null},v(\"quickInput.listFocusBackground\",\"Quick picker background color for the focused item.\"));V(\"search.resultsInfoForeground\",{light:Ne,dark:ut(Ne,.65),hcDark:Ne,hcLight:Ne},v(\"search.resultsInfoForeground\",\"Color of the text in the search viewlet's completion message.\"));V(\"searchEditor.findMatchBackground\",{light:ut(Jf,.66),dark:ut(Jf,.66),hcDark:Jf,hcLight:Jf},v(\"searchEditor.queryMatch\",\"Color of the Search Editor query matches.\"));V(\"searchEditor.findMatchBorder\",{light:ut(Kp,.66),dark:ut(Kp,.66),hcDark:Kp,hcLight:Kp},v(\"searchEditor.editorFindMatchBorder\",\"Border color of the Search Editor query matches.\"));class AM{constructor(e,t){this.x=e,this.y=t,this._pageCoordinatesBrand=void 0}toClientCoordinates(e){return new Yle(this.x-e.scrollX,this.y-e.scrollY)}}class Yle{constructor(e,t){this.clientX=e,this.clientY=t,this._clientCoordinatesBrand=void 0}toPageCoordinates(e){return new AM(this.clientX+e.scrollX,this.clientY+e.scrollY)}}class V5e{constructor(e,t,i,s){this.x=e,this.y=t,this.width=i,this.height=s,this._editorPagePositionBrand=void 0}}class z5e{constructor(e,t){this.x=e,this.y=t,this._positionRelativeToEditorBrand=void 0}}function Tz(n){const e=bs(n);return new V5e(e.left,e.top,e.width,e.height)}function Nz(n,e,t){const i=e.width/n.offsetWidth,s=e.height/n.offsetHeight,o=(t.x-e.x)/i,r=(t.y-e.y)/s;return new z5e(o,r)}class Wm extends Kc{constructor(e,t,i){super(gt(i),e),this._editorMouseEventBrand=void 0,this.isFromPointerCapture=t,this.pos=new AM(this.posx,this.posy),this.editorPos=Tz(i),this.relativePos=Nz(i,this.editorPos,this.pos)}}class $5e{constructor(e){this._editorViewDomNode=e}_create(e){return new Wm(e,!1,this._editorViewDomNode)}onContextMenu(e,t){return ce(e,\"contextmenu\",i=>{t(this._create(i))})}onMouseUp(e,t){return ce(e,\"mouseup\",i=>{t(this._create(i))})}onMouseDown(e,t){return ce(e,Le.MOUSE_DOWN,i=>{t(this._create(i))})}onPointerDown(e,t){return ce(e,Le.POINTER_DOWN,i=>{t(this._create(i),i.pointerId)})}onMouseLeave(e,t){return ce(e,Le.MOUSE_LEAVE,i=>{t(this._create(i))})}onMouseMove(e,t){return ce(e,\"mousemove\",i=>t(this._create(i)))}}class U5e{constructor(e){this._editorViewDomNode=e}_create(e){return new Wm(e,!1,this._editorViewDomNode)}onPointerUp(e,t){return ce(e,\"pointerup\",i=>{t(this._create(i))})}onPointerDown(e,t){return ce(e,Le.POINTER_DOWN,i=>{t(this._create(i),i.pointerId)})}onPointerLeave(e,t){return ce(e,Le.POINTER_LEAVE,i=>{t(this._create(i))})}onPointerMove(e,t){return ce(e,\"pointermove\",i=>t(this._create(i)))}}class j5e extends ne{constructor(e){super(),this._editorViewDomNode=e,this._globalPointerMoveMonitor=this._register(new Bw),this._keydownListener=null}startMonitoring(e,t,i,s,o){this._keydownListener=rs(e.ownerDocument,\"keydown\",r=>{r.toKeyCodeChord().isModifierKey()||this._globalPointerMoveMonitor.stopMonitoring(!0,r.browserEvent)},!0),this._globalPointerMoveMonitor.startMonitoring(e,t,i,r=>{s(new Wm(r,!0,this._editorViewDomNode))},r=>{this._keydownListener.dispose(),o(r)})}stopMonitoring(){this._globalPointerMoveMonitor.stopMonitoring(!0)}}class bD{constructor(e){this._editor=e,this._instanceId=++bD._idPool,this._counter=0,this._rules=new Map,this._garbageCollectionScheduler=new Xi(()=>this.garbageCollect(),1e3)}createClassNameRef(e){const t=this.getOrCreateRule(e);return t.increaseRefCount(),{className:t.className,dispose:()=>{t.decreaseRefCount(),this._garbageCollectionScheduler.schedule()}}}getOrCreateRule(e){const t=this.computeUniqueKey(e);let i=this._rules.get(t);if(!i){const s=this._counter++;i=new K5e(t,`dyn-rule-${this._instanceId}-${s}`,W2(this._editor.getContainerDomNode())?this._editor.getContainerDomNode():void 0,e),this._rules.set(t,i)}return i}computeUniqueKey(e){return JSON.stringify(e)}garbageCollect(){for(const e of this._rules.values())e.hasReferences()||(this._rules.delete(e.key),e.dispose())}}bD._idPool=0;class K5e{constructor(e,t,i,s){this.key=e,this.className=t,this.properties=s,this._referenceCount=0,this._styleElementDisposables=new be,this._styleElement=yl(i,void 0,this._styleElementDisposables),this._styleElement.textContent=this.getCssText(this.className,this.properties)}getCssText(e,t){let i=`.${e} {`;for(const s in t){const o=t[s];let r;typeof o==\"object\"?r=Ge(o.id):r=o;const a=q5e(s);i+=`\n\t${a}: ${r};`}return i+=`\n}`,i}dispose(){this._styleElementDisposables.dispose(),this._styleElement=void 0}increaseRefCount(){this._referenceCount++}decreaseRefCount(){this._referenceCount--}hasReferences(){return this._referenceCount>0}}function q5e(n){return n.replace(/(^[A-Z])/,([e])=>e.toLowerCase()).replace(/([A-Z])/g,([e])=>`-${e.toLowerCase()}`)}class CD extends ne{constructor(){super(),this._shouldRender=!0}shouldRender(){return this._shouldRender}forceShouldRender(){this._shouldRender=!0}setShouldRender(){this._shouldRender=!0}onDidRender(){this._shouldRender=!1}onCompositionStart(e){return!1}onCompositionEnd(e){return!1}onConfigurationChanged(e){return!1}onCursorStateChanged(e){return!1}onDecorationsChanged(e){return!1}onFlushed(e){return!1}onFocusChanged(e){return!1}onLanguageConfigurationChanged(e){return!1}onLineMappingChanged(e){return!1}onLinesChanged(e){return!1}onLinesDeleted(e){return!1}onLinesInserted(e){return!1}onRevealRangeRequest(e){return!1}onScrollChanged(e){return!1}onThemeChanged(e){return!1}onTokensChanged(e){return!1}onTokensColorsChanged(e){return!1}onZonesChanged(e){return!1}handleEvents(e){let t=!1;for(let i=0,s=e.length;i<s;i++){const o=e[i];switch(o.type){case 0:this.onCompositionStart(o)&&(t=!0);break;case 1:this.onCompositionEnd(o)&&(t=!0);break;case 2:this.onConfigurationChanged(o)&&(t=!0);break;case 3:this.onCursorStateChanged(o)&&(t=!0);break;case 4:this.onDecorationsChanged(o)&&(t=!0);break;case 5:this.onFlushed(o)&&(t=!0);break;case 6:this.onFocusChanged(o)&&(t=!0);break;case 7:this.onLanguageConfigurationChanged(o)&&(t=!0);break;case 8:this.onLineMappingChanged(o)&&(t=!0);break;case 9:this.onLinesChanged(o)&&(t=!0);break;case 10:this.onLinesDeleted(o)&&(t=!0);break;case 11:this.onLinesInserted(o)&&(t=!0);break;case 12:this.onRevealRangeRequest(o)&&(t=!0);break;case 13:this.onScrollChanged(o)&&(t=!0);break;case 15:this.onTokensChanged(o)&&(t=!0);break;case 14:this.onThemeChanged(o)&&(t=!0);break;case 16:this.onTokensColorsChanged(o)&&(t=!0);break;case 17:this.onZonesChanged(o)&&(t=!0);break;default:console.info(\"View received unknown event: \"),console.info(o)}}t&&(this._shouldRender=!0)}}class Va extends CD{constructor(e){super(),this._context=e,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}}class ru{static write(e,t){e.setAttribute(\"data-mprt\",String(t))}static read(e){const t=e.getAttribute(\"data-mprt\");return t===null?0:parseInt(t,10)}static collect(e,t){const i=[];let s=0;for(;e&&e!==e.ownerDocument.body&&e!==t;)e.nodeType===e.ELEMENT_NODE&&(i[s++]=this.read(e)),e=e.parentElement;const o=new Uint8Array(s);for(let r=0;r<s;r++)o[r]=i[s-r-1];return o}}class G5e{constructor(e,t){this._restrictedRenderingContextBrand=void 0,this._viewLayout=e,this.viewportData=t,this.scrollWidth=this._viewLayout.getScrollWidth(),this.scrollHeight=this._viewLayout.getScrollHeight(),this.visibleRange=this.viewportData.visibleRange,this.bigNumbersDelta=this.viewportData.bigNumbersDelta;const i=this._viewLayout.getCurrentViewport();this.scrollTop=i.top,this.scrollLeft=i.left,this.viewportWidth=i.width,this.viewportHeight=i.height}getScrolledTopFromAbsoluteTop(e){return e-this.scrollTop}getVerticalOffsetForLineNumber(e,t){return this._viewLayout.getVerticalOffsetForLineNumber(e,t)}getVerticalOffsetAfterLineNumber(e,t){return this._viewLayout.getVerticalOffsetAfterLineNumber(e,t)}getDecorationsInViewport(){return this.viewportData.getDecorationsInViewport()}}class Z5e extends G5e{constructor(e,t,i){super(e,t),this._renderingContextBrand=void 0,this._viewLines=i}linesVisibleRangesForRange(e,t){return this._viewLines.linesVisibleRangesForRange(e,t)}visibleRangeForPosition(e){return this._viewLines.visibleRangeForPosition(e)}}class Y5e{constructor(e,t,i,s){this.outsideRenderedLine=e,this.lineNumber=t,this.ranges=i,this.continuesOnNextLine=s}}class RM{static from(e){const t=new Array(e.length);for(let i=0,s=e.length;i<s;i++){const o=e[i];t[i]=new RM(o.left,o.width)}return t}constructor(e,t){this._horizontalRangeBrand=void 0,this.left=Math.round(e),this.width=Math.round(t)}toString(){return`[${this.left},${this.width}]`}}class Uv{constructor(e,t){this._floatHorizontalRangeBrand=void 0,this.left=e,this.width=t}toString(){return`[${this.left},${this.width}]`}static compare(e,t){return e.left-t.left}}class X5e{constructor(e,t){this.outsideRenderedLine=e,this.originalLeft=t,this.left=Math.round(this.originalLeft)}}class PX{constructor(e,t){this.outsideRenderedLine=e,this.ranges=t}}class bN{static _createRange(){return this._handyReadyRange||(this._handyReadyRange=document.createRange()),this._handyReadyRange}static _detachRange(e,t){e.selectNodeContents(t)}static _readClientRects(e,t,i,s,o){const r=this._createRange();try{return r.setStart(e,t),r.setEnd(i,s),r.getClientRects()}catch{return null}finally{this._detachRange(r,o)}}static _mergeAdjacentRanges(e){if(e.length===1)return e;e.sort(Uv.compare);const t=[];let i=0,s=e[0];for(let o=1,r=e.length;o<r;o++){const a=e[o];s.left+s.width+.9>=a.left?s.width=Math.max(s.width,a.left+a.width-s.left):(t[i++]=s,s=a)}return t[i++]=s,t}static _createHorizontalRangesFromClientRects(e,t,i){if(!e||e.length===0)return null;const s=[];for(let o=0,r=e.length;o<r;o++){const a=e[o];s[o]=new Uv(Math.max(0,(a.left-t)/i),a.width/i)}return this._mergeAdjacentRanges(s)}static readHorizontalRanges(e,t,i,s,o,r){const l=e.children.length-1;if(0>l)return null;if(t=Math.min(l,Math.max(0,t)),s=Math.min(l,Math.max(0,s)),t===s&&i===o&&i===0&&!e.children[t].firstChild){const h=e.children[t].getClientRects();return r.markDidDomLayout(),this._createHorizontalRangesFromClientRects(h,r.clientRectDeltaLeft,r.clientRectScale)}t!==s&&s>0&&o===0&&(s--,o=1073741824);let c=e.children[t].firstChild,d=e.children[s].firstChild;if((!c||!d)&&(!c&&i===0&&t>0&&(c=e.children[t-1].firstChild,i=1073741824),!d&&o===0&&s>0&&(d=e.children[s-1].firstChild,o=1073741824)),!c||!d)return null;i=Math.min(c.textContent.length,Math.max(0,i)),o=Math.min(d.textContent.length,Math.max(0,o));const u=this._readClientRects(c,i,d,o,r.endNode);return r.markDidDomLayout(),this._createHorizontalRangesFromClientRects(u,r.clientRectDeltaLeft,r.clientRectScale)}}var Jl;(function(n){n.DARK=\"dark\",n.LIGHT=\"light\",n.HIGH_CONTRAST_DARK=\"hcDark\",n.HIGH_CONTRAST_LIGHT=\"hcLight\"})(Jl||(Jl={}));function Zd(n){return n===Jl.HIGH_CONTRAST_DARK||n===Jl.HIGH_CONTRAST_LIGHT}function HC(n){return n===Jl.DARK||n===Jl.HIGH_CONTRAST_DARK}const Q5e=function(){return Lh?!0:!(Br||lc||Pm)}();let Q1=!0;class OX{constructor(e,t){this.themeType=t;const i=e.options,s=i.get(50);i.get(38)===\"off\"?this.renderWhitespace=i.get(99):this.renderWhitespace=\"none\",this.renderControlCharacters=i.get(94),this.spaceWidth=s.spaceWidth,this.middotWidth=s.middotWidth,this.wsmiddotWidth=s.wsmiddotWidth,this.useMonospaceOptimizations=s.isMonospace&&!i.get(33),this.canUseHalfwidthRightwardsArrow=s.canUseHalfwidthRightwardsArrow,this.lineHeight=i.get(67),this.stopRenderingLineAfter=i.get(117),this.fontLigatures=i.get(51)}equals(e){return this.themeType===e.themeType&&this.renderWhitespace===e.renderWhitespace&&this.renderControlCharacters===e.renderControlCharacters&&this.spaceWidth===e.spaceWidth&&this.middotWidth===e.middotWidth&&this.wsmiddotWidth===e.wsmiddotWidth&&this.useMonospaceOptimizations===e.useMonospaceOptimizations&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.lineHeight===e.lineHeight&&this.stopRenderingLineAfter===e.stopRenderingLineAfter&&this.fontLigatures===e.fontLigatures}}class eh{constructor(e){this._options=e,this._isMaybeInvalid=!0,this._renderedViewLine=null}getDomNode(){return this._renderedViewLine&&this._renderedViewLine.domNode?this._renderedViewLine.domNode.domNode:null}setDomNode(e){if(this._renderedViewLine)this._renderedViewLine.domNode=Di(e);else throw new Error(\"I have no rendered view line to set the dom node to...\")}onContentChanged(){this._isMaybeInvalid=!0}onTokensChanged(){this._isMaybeInvalid=!0}onDecorationsChanged(){this._isMaybeInvalid=!0}onOptionsChanged(e){this._isMaybeInvalid=!0,this._options=e}onSelectionChanged(){return Zd(this._options.themeType)||this._options.renderWhitespace===\"selection\"?(this._isMaybeInvalid=!0,!0):!1}renderLine(e,t,i,s,o){if(this._isMaybeInvalid===!1)return!1;this._isMaybeInvalid=!1;const r=s.getViewLineRenderingData(e),a=this._options,l=Rr.filter(r.inlineDecorations,e,r.minColumn,r.maxColumn);let c=null;if(Zd(a.themeType)||this._options.renderWhitespace===\"selection\"){const f=s.selections;for(const g of f){if(g.endLineNumber<e||g.startLineNumber>e)continue;const p=g.startLineNumber===e?g.startColumn:r.minColumn,_=g.endLineNumber===e?g.endColumn:r.maxColumn;p<_&&(Zd(a.themeType)&&l.push(new Rr(p,_,\"inline-selected-text\",0)),this._options.renderWhitespace===\"selection\"&&(c||(c=[]),c.push(new Nle(p-1,_-1))))}}const d=new f_(a.useMonospaceOptimizations,a.canUseHalfwidthRightwardsArrow,r.content,r.continuesWithWrappedLine,r.isBasicASCII,r.containsRTL,r.minColumn-1,r.tokens,l,r.tabSize,r.startVisibleColumn,a.spaceWidth,a.middotWidth,a.wsmiddotWidth,a.stopRenderingLineAfter,a.renderWhitespace,a.renderControlCharacters,a.fontLigatures!==cl.OFF,c);if(this._renderedViewLine&&this._renderedViewLine.input.equals(d))return!1;o.appendString('<div style=\"top:'),o.appendString(String(t)),o.appendString(\"px;height:\"),o.appendString(String(i)),o.appendString('px;\" class=\"'),o.appendString(eh.CLASS_NAME),o.appendString('\">');const u=_D(d,o);o.appendString(\"</div>\");let h=null;return Q1&&Q5e&&r.isBasicASCII&&a.useMonospaceOptimizations&&u.containsForeignElements===0&&(h=new ME(this._renderedViewLine?this._renderedViewLine.domNode:null,d,u.characterMapping)),h||(h=Qle(this._renderedViewLine?this._renderedViewLine.domNode:null,d,u.characterMapping,u.containsRTL,u.containsForeignElements)),this._renderedViewLine=h,!0}layoutLine(e,t,i){this._renderedViewLine&&this._renderedViewLine.domNode&&(this._renderedViewLine.domNode.setTop(t),this._renderedViewLine.domNode.setHeight(i))}getWidth(e){return this._renderedViewLine?this._renderedViewLine.getWidth(e):0}getWidthIsFast(){return this._renderedViewLine?this._renderedViewLine.getWidthIsFast():!0}needsMonospaceFontCheck(){return this._renderedViewLine?this._renderedViewLine instanceof ME:!1}monospaceAssumptionsAreValid(){return this._renderedViewLine&&this._renderedViewLine instanceof ME?this._renderedViewLine.monospaceAssumptionsAreValid():Q1}onMonospaceAssumptionsInvalidated(){this._renderedViewLine&&this._renderedViewLine instanceof ME&&(this._renderedViewLine=this._renderedViewLine.toSlowRenderedLine())}getVisibleRangesForRange(e,t,i,s){if(!this._renderedViewLine)return null;t=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,t)),i=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,i));const o=this._renderedViewLine.input.stopRenderingLineAfter;if(o!==-1&&t>o+1&&i>o+1)return new PX(!0,[new Uv(this.getWidth(s),0)]);o!==-1&&t>o+1&&(t=o+1),o!==-1&&i>o+1&&(i=o+1);const r=this._renderedViewLine.getVisibleRangesForRange(e,t,i,s);return r&&r.length>0?new PX(!1,r):null}getColumnOfNodeOffset(e,t){return this._renderedViewLine?this._renderedViewLine.getColumnOfNodeOffset(e,t):1}}eh.CLASS_NAME=\"view-line\";class ME{constructor(e,t,i){this._cachedWidth=-1,this.domNode=e,this.input=t;const s=Math.floor(t.lineContent.length/300);if(s>0){this._keyColumnPixelOffsetCache=new Float32Array(s);for(let o=0;o<s;o++)this._keyColumnPixelOffsetCache[o]=-1}else this._keyColumnPixelOffsetCache=null;this._characterMapping=i,this._charWidth=t.spaceWidth}getWidth(e){if(!this.domNode||this.input.lineContent.length<300){const t=this._characterMapping.getHorizontalOffset(this._characterMapping.length);return Math.round(this._charWidth*t)}return this._cachedWidth===-1&&(this._cachedWidth=this._getReadingTarget(this.domNode).offsetWidth,e==null||e.markDidDomLayout()),this._cachedWidth}getWidthIsFast(){return this.input.lineContent.length<300||this._cachedWidth!==-1}monospaceAssumptionsAreValid(){if(!this.domNode)return Q1;if(this.input.lineContent.length<300){const e=this.getWidth(null),t=this.domNode.domNode.firstChild.offsetWidth;Math.abs(e-t)>=2&&(console.warn(\"monospace assumptions have been violated, therefore disabling monospace optimizations!\"),Q1=!1)}return Q1}toSlowRenderedLine(){return Qle(this.domNode,this.input,this._characterMapping,!1,0)}getVisibleRangesForRange(e,t,i,s){const o=this._getColumnPixelOffset(e,t,s),r=this._getColumnPixelOffset(e,i,s);return[new Uv(o,r-o)]}_getColumnPixelOffset(e,t,i){if(t<=300){const c=this._characterMapping.getHorizontalOffset(t);return this._charWidth*c}const s=Math.floor((t-1)/300)-1,o=(s+1)*300+1;let r=-1;if(this._keyColumnPixelOffsetCache&&(r=this._keyColumnPixelOffsetCache[s],r===-1&&(r=this._actualReadPixelOffset(e,o,i),this._keyColumnPixelOffsetCache[s]=r)),r===-1){const c=this._characterMapping.getHorizontalOffset(t);return this._charWidth*c}const a=this._characterMapping.getHorizontalOffset(o),l=this._characterMapping.getHorizontalOffset(t);return r+this._charWidth*(l-a)}_getReadingTarget(e){return e.domNode.firstChild}_actualReadPixelOffset(e,t,i){if(!this.domNode)return-1;const s=this._characterMapping.getDomPosition(t),o=bN.readHorizontalRanges(this._getReadingTarget(this.domNode),s.partIndex,s.charIndex,s.partIndex,s.charIndex,i);return!o||o.length===0?-1:o[0].left}getColumnOfNodeOffset(e,t){return Az(this._characterMapping,e,t)}}class Xle{constructor(e,t,i,s,o){if(this.domNode=e,this.input=t,this._characterMapping=i,this._isWhitespaceOnly=/^\\s*$/.test(t.lineContent),this._containsForeignElements=o,this._cachedWidth=-1,this._pixelOffsetCache=null,!s||this._characterMapping.length===0){this._pixelOffsetCache=new Float32Array(Math.max(2,this._characterMapping.length+1));for(let r=0,a=this._characterMapping.length;r<=a;r++)this._pixelOffsetCache[r]=-1}}_getReadingTarget(e){return e.domNode.firstChild}getWidth(e){return this.domNode?(this._cachedWidth===-1&&(this._cachedWidth=this._getReadingTarget(this.domNode).offsetWidth,e==null||e.markDidDomLayout()),this._cachedWidth):0}getWidthIsFast(){return this._cachedWidth!==-1}getVisibleRangesForRange(e,t,i,s){if(!this.domNode)return null;if(this._pixelOffsetCache!==null){const o=this._readPixelOffset(this.domNode,e,t,s);if(o===-1)return null;const r=this._readPixelOffset(this.domNode,e,i,s);return r===-1?null:[new Uv(o,r-o)]}return this._readVisibleRangesForRange(this.domNode,e,t,i,s)}_readVisibleRangesForRange(e,t,i,s,o){if(i===s){const r=this._readPixelOffset(e,t,i,o);return r===-1?null:[new Uv(r,0)]}else return this._readRawVisibleRangesForRange(e,i,s,o)}_readPixelOffset(e,t,i,s){if(this._characterMapping.length===0){if(this._containsForeignElements===0||this._containsForeignElements===2)return 0;if(this._containsForeignElements===1)return this.getWidth(s);const o=this._getReadingTarget(e);return o.firstChild?(s.markDidDomLayout(),o.firstChild.offsetWidth):0}if(this._pixelOffsetCache!==null){const o=this._pixelOffsetCache[i];if(o!==-1)return o;const r=this._actualReadPixelOffset(e,t,i,s);return this._pixelOffsetCache[i]=r,r}return this._actualReadPixelOffset(e,t,i,s)}_actualReadPixelOffset(e,t,i,s){if(this._characterMapping.length===0){const l=bN.readHorizontalRanges(this._getReadingTarget(e),0,0,0,0,s);return!l||l.length===0?-1:l[0].left}if(i===this._characterMapping.length&&this._isWhitespaceOnly&&this._containsForeignElements===0)return this.getWidth(s);const o=this._characterMapping.getDomPosition(i),r=bN.readHorizontalRanges(this._getReadingTarget(e),o.partIndex,o.charIndex,o.partIndex,o.charIndex,s);if(!r||r.length===0)return-1;const a=r[0].left;if(this.input.isBasicASCII){const l=this._characterMapping.getHorizontalOffset(i),c=Math.round(this.input.spaceWidth*l);if(Math.abs(c-a)<=1)return c}return a}_readRawVisibleRangesForRange(e,t,i,s){if(t===1&&i===this._characterMapping.length)return[new Uv(0,this.getWidth(s))];const o=this._characterMapping.getDomPosition(t),r=this._characterMapping.getDomPosition(i);return bN.readHorizontalRanges(this._getReadingTarget(e),o.partIndex,o.charIndex,r.partIndex,r.charIndex,s)}getColumnOfNodeOffset(e,t){return Az(this._characterMapping,e,t)}}class J5e extends Xle{_readVisibleRangesForRange(e,t,i,s,o){const r=super._readVisibleRangesForRange(e,t,i,s,o);if(!r||r.length===0||i===s||i===1&&s===this._characterMapping.length)return r;if(!this.input.containsRTL){const a=this._readPixelOffset(e,t,s,o);if(a!==-1){const l=r[r.length-1];l.left<a&&(l.width=a-l.left)}}return r}}const Qle=function(){return rM?e3e:t3e}();function e3e(n,e,t,i,s){return new J5e(n,e,t,i,s)}function t3e(n,e,t,i,s){return new Xle(n,e,t,i,s)}function Az(n,e,t){const i=e.textContent.length;let s=-1;for(;e;)e=e.previousSibling,s++;return n.getColumn(new Ale(s,t),i)}class zs{static _nextVisibleColumn(e,t,i){return e===9?zs.nextRenderTabStop(t,i):Mm(e)||ZV(e)?t+2:t+1}static visibleColumnFromColumn(e,t,i){const s=Math.min(t-1,e.length),o=e.substring(0,s),r=new O2(o);let a=0;for(;!r.eol();){const l=P2(o,s,r.offset);r.nextGraphemeLength(),a=this._nextVisibleColumn(l,a,i)}return a}static columnFromVisibleColumn(e,t,i){if(t<=0)return 1;const s=e.length,o=new O2(e);let r=0,a=1;for(;!o.eol();){const l=P2(e,s,o.offset);o.nextGraphemeLength();const c=this._nextVisibleColumn(l,r,i),d=o.offset+1;if(c>=t){const u=t-r;return c-t<u?d:a}r=c,a=d}return s+1}static nextRenderTabStop(e,t){return e+t-e%t}static nextIndentTabStop(e,t){return e+t-e%t}static prevRenderTabStop(e,t){return Math.max(0,e-1-(e-1)%t)}static prevIndentTabStop(e,t){return Math.max(0,e-1-(e-1)%t)}}class DL{static whitespaceVisibleColumn(e,t,i){const s=e.length;let o=0,r=-1,a=-1;for(let l=0;l<s;l++){if(l===t)return[r,a,o];switch(o%i===0&&(r=l,a=o),e.charCodeAt(l)){case 32:o+=1;break;case 9:o=zs.nextRenderTabStop(o,i);break;default:return[-1,-1,-1]}}return t===s?[r,a,o]:[-1,-1,-1]}static atomicPosition(e,t,i,s){const o=e.length,[r,a,l]=DL.whitespaceVisibleColumn(e,t,i);if(l===-1)return-1;let c;switch(s){case 0:c=!0;break;case 1:c=!1;break;case 2:if(l%i===0)return t;c=l%i<=i/2;break}if(c){if(r===-1)return-1;let h=a;for(let f=r;f<o;++f){if(h===a+i)return r;switch(e.charCodeAt(f)){case 32:h+=1;break;case 9:h=zs.nextRenderTabStop(h,i);break;default:return-1}}return h===a+i?r:-1}const d=zs.nextRenderTabStop(l,i);let u=l;for(let h=t;h<o;h++){if(u===d)return h;switch(e.charCodeAt(h)){case 32:u+=1;break;case 9:u=zs.nextRenderTabStop(u,i);break;default:return-1}}return u===d?o:-1}}class _p{constructor(e=null){this.hitTarget=e,this.type=0}}class Jle{get hitTarget(){return this.spanNode}constructor(e,t,i){this.position=e,this.spanNode=t,this.injectedText=i,this.type=1}}var pv;(function(n){function e(t,i,s){const o=t.getPositionFromDOMInfo(i,s);return o?new Jle(o,i,null):new _p(i)}n.createFromDOMInfo=e})(pv||(pv={}));class i3e{constructor(e,t){this.lastViewCursorsRenderData=e,this.lastTextareaPosition=t}}class dr{static _deduceRage(e,t=null){return!t&&e?new A(e.lineNumber,e.column,e.lineNumber,e.column):t??null}static createUnknown(e,t,i){return{type:0,element:e,mouseColumn:t,position:i,range:this._deduceRage(i)}}static createTextarea(e,t){return{type:1,element:e,mouseColumn:t,position:null,range:null}}static createMargin(e,t,i,s,o,r){return{type:e,element:t,mouseColumn:i,position:s,range:o,detail:r}}static createViewZone(e,t,i,s,o){return{type:e,element:t,mouseColumn:i,position:s,range:this._deduceRage(s),detail:o}}static createContentText(e,t,i,s,o){return{type:6,element:e,mouseColumn:t,position:i,range:this._deduceRage(i,s),detail:o}}static createContentEmpty(e,t,i,s){return{type:7,element:e,mouseColumn:t,position:i,range:this._deduceRage(i),detail:s}}static createContentWidget(e,t,i){return{type:9,element:e,mouseColumn:t,position:null,range:null,detail:i}}static createScrollbar(e,t,i){return{type:11,element:e,mouseColumn:t,position:i,range:this._deduceRage(i)}}static createOverlayWidget(e,t,i){return{type:12,element:e,mouseColumn:t,position:null,range:null,detail:i}}static createOutsideEditor(e,t,i,s){return{type:13,element:null,mouseColumn:e,position:t,range:this._deduceRage(t),outsidePosition:i,outsideDistance:s}}static _typeToString(e){return e===1?\"TEXTAREA\":e===2?\"GUTTER_GLYPH_MARGIN\":e===3?\"GUTTER_LINE_NUMBERS\":e===4?\"GUTTER_LINE_DECORATIONS\":e===5?\"GUTTER_VIEW_ZONE\":e===6?\"CONTENT_TEXT\":e===7?\"CONTENT_EMPTY\":e===8?\"CONTENT_VIEW_ZONE\":e===9?\"CONTENT_WIDGET\":e===10?\"OVERVIEW_RULER\":e===11?\"SCROLLBAR\":e===12?\"OVERLAY_WIDGET\":\"UNKNOWN\"}static toString(e){return this._typeToString(e.type)+\": \"+e.position+\" - \"+e.range+\" - \"+JSON.stringify(e.detail)}}class br{static isTextArea(e){return e.length===2&&e[0]===3&&e[1]===7}static isChildOfViewLines(e){return e.length>=4&&e[0]===3&&e[3]===8}static isStrictChildOfViewLines(e){return e.length>4&&e[0]===3&&e[3]===8}static isChildOfScrollableElement(e){return e.length>=2&&e[0]===3&&e[1]===6}static isChildOfMinimap(e){return e.length>=2&&e[0]===3&&e[1]===9}static isChildOfContentWidgets(e){return e.length>=4&&e[0]===3&&e[3]===1}static isChildOfOverflowGuard(e){return e.length>=1&&e[0]===3}static isChildOfOverflowingContentWidgets(e){return e.length>=1&&e[0]===2}static isChildOfOverlayWidgets(e){return e.length>=2&&e[0]===3&&e[1]===4}static isChildOfOverflowingOverlayWidgets(e){return e.length>=1&&e[0]===5}}class VC{constructor(e,t,i){this.viewModel=e.viewModel;const s=e.configuration.options;this.layoutInfo=s.get(145),this.viewDomNode=t.viewDomNode,this.lineHeight=s.get(67),this.stickyTabStops=s.get(116),this.typicalHalfwidthCharacterWidth=s.get(50).typicalHalfwidthCharacterWidth,this.lastRenderData=i,this._context=e,this._viewHelper=t}getZoneAtCoord(e){return VC.getZoneAtCoord(this._context,e)}static getZoneAtCoord(e,t){const i=e.viewLayout.getWhitespaceAtVerticalOffset(t);if(i){const s=i.verticalOffset+i.height/2,o=e.viewModel.getLineCount();let r=null,a,l=null;return i.afterLineNumber!==o&&(l=new ee(i.afterLineNumber+1,1)),i.afterLineNumber>0&&(r=new ee(i.afterLineNumber,e.viewModel.getLineMaxColumn(i.afterLineNumber))),l===null?a=r:r===null?a=l:t<s?a=r:a=l,{viewZoneId:i.id,afterLineNumber:i.afterLineNumber,positionBefore:r,positionAfter:l,position:a}}return null}getFullLineRangeAtCoord(e){if(this._context.viewLayout.isAfterLines(e)){const s=this._context.viewModel.getLineCount(),o=this._context.viewModel.getLineMaxColumn(s);return{range:new A(s,o,s,o),isAfterLines:!0}}const t=this._context.viewLayout.getLineNumberAtVerticalOffset(e),i=this._context.viewModel.getLineMaxColumn(t);return{range:new A(t,1,t,i),isAfterLines:!1}}getLineNumberAtVerticalOffset(e){return this._context.viewLayout.getLineNumberAtVerticalOffset(e)}isAfterLines(e){return this._context.viewLayout.isAfterLines(e)}isInTopPadding(e){return this._context.viewLayout.isInTopPadding(e)}isInBottomPadding(e){return this._context.viewLayout.isInBottomPadding(e)}getVerticalOffsetForLineNumber(e){return this._context.viewLayout.getVerticalOffsetForLineNumber(e)}findAttribute(e,t){return VC._findAttribute(e,t,this._viewHelper.viewDomNode)}static _findAttribute(e,t,i){for(;e&&e!==e.ownerDocument.body;){if(e.hasAttribute&&e.hasAttribute(t))return e.getAttribute(t);if(e===i)return null;e=e.parentNode}return null}getLineWidth(e){return this._viewHelper.getLineWidth(e)}visibleRangeForPosition(e,t){return this._viewHelper.visibleRangeForPosition(e,t)}getPositionFromDOMInfo(e,t){return this._viewHelper.getPositionFromDOMInfo(e,t)}getCurrentScrollTop(){return this._context.viewLayout.getCurrentScrollTop()}getCurrentScrollLeft(){return this._context.viewLayout.getCurrentScrollLeft()}}class n3e{constructor(e,t,i,s){this.editorPos=t,this.pos=i,this.relativePos=s,this.mouseVerticalOffset=Math.max(0,e.getCurrentScrollTop()+this.relativePos.y),this.mouseContentHorizontalOffset=e.getCurrentScrollLeft()+this.relativePos.x-e.layoutInfo.contentLeft,this.isInMarginArea=this.relativePos.x<e.layoutInfo.contentLeft&&this.relativePos.x>=e.layoutInfo.glyphMarginLeft,this.isInContentArea=!this.isInMarginArea,this.mouseColumn=Math.max(0,rr._getMouseColumn(this.mouseContentHorizontalOffset,e.typicalHalfwidthCharacterWidth))}}class s3e extends n3e{get target(){return this._useHitTestTarget?this.hitTestResult.value.hitTarget:this._eventTarget}get targetPath(){return this._targetPathCacheElement!==this.target&&(this._targetPathCacheElement=this.target,this._targetPathCacheValue=ru.collect(this.target,this._ctx.viewDomNode)),this._targetPathCacheValue}constructor(e,t,i,s,o){super(e,t,i,s),this.hitTestResult=new pu(()=>rr.doHitTest(this._ctx,this)),this._targetPathCacheElement=null,this._targetPathCacheValue=new Uint8Array(0),this._ctx=e,this._eventTarget=o;const r=!!this._eventTarget;this._useHitTestTarget=!r}toString(){return`pos(${this.pos.x},${this.pos.y}), editorPos(${this.editorPos.x},${this.editorPos.y}), relativePos(${this.relativePos.x},${this.relativePos.y}), mouseVerticalOffset: ${this.mouseVerticalOffset}, mouseContentHorizontalOffset: ${this.mouseContentHorizontalOffset}\n\ttarget: ${this.target?this.target.outerHTML:null}`}get wouldBenefitFromHitTestTargetSwitch(){return!this._useHitTestTarget&&this.hitTestResult.value.hitTarget!==null&&this.target!==this.hitTestResult.value.hitTarget}switchToHitTestTarget(){this._useHitTestTarget=!0}_getMouseColumn(e=null){return e&&e.column<this._ctx.viewModel.getLineMaxColumn(e.lineNumber)?zs.visibleColumnFromColumn(this._ctx.viewModel.getLineContent(e.lineNumber),e.column,this._ctx.viewModel.model.getOptions().tabSize)+1:this.mouseColumn}fulfillUnknown(e=null){return dr.createUnknown(this.target,this._getMouseColumn(e),e)}fulfillTextarea(){return dr.createTextarea(this.target,this._getMouseColumn())}fulfillMargin(e,t,i,s){return dr.createMargin(e,this.target,this._getMouseColumn(t),t,i,s)}fulfillViewZone(e,t,i){return dr.createViewZone(e,this.target,this._getMouseColumn(t),t,i)}fulfillContentText(e,t,i){return dr.createContentText(this.target,this._getMouseColumn(e),e,t,i)}fulfillContentEmpty(e,t){return dr.createContentEmpty(this.target,this._getMouseColumn(e),e,t)}fulfillContentWidget(e){return dr.createContentWidget(this.target,this._getMouseColumn(),e)}fulfillScrollbar(e){return dr.createScrollbar(this.target,this._getMouseColumn(e),e)}fulfillOverlayWidget(e){return dr.createOverlayWidget(this.target,this._getMouseColumn(),e)}}const FX={isAfterLines:!0};function JF(n){return{isAfterLines:!1,horizontalDistanceToText:n}}class rr{constructor(e,t){this._context=e,this._viewHelper=t}mouseTargetIsWidget(e){const t=e.target,i=ru.collect(t,this._viewHelper.viewDomNode);return!!(br.isChildOfContentWidgets(i)||br.isChildOfOverflowingContentWidgets(i)||br.isChildOfOverlayWidgets(i)||br.isChildOfOverflowingOverlayWidgets(i))}createMouseTarget(e,t,i,s,o){const r=new VC(this._context,this._viewHelper,e),a=new s3e(r,t,i,s,o);try{const l=rr._createMouseTarget(r,a);if(l.type===6&&r.stickyTabStops&&l.position!==null){const c=rr._snapToSoftTabBoundary(l.position,r.viewModel),d=A.fromPositions(c,c).plusRange(l.range);return a.fulfillContentText(c,d,l.detail)}return l}catch{return a.fulfillUnknown()}}static _createMouseTarget(e,t){if(t.target===null)return t.fulfillUnknown();const i=t;let s=null;return!br.isChildOfOverflowGuard(t.targetPath)&&!br.isChildOfOverflowingContentWidgets(t.targetPath)&&!br.isChildOfOverflowingOverlayWidgets(t.targetPath)&&(s=s||t.fulfillUnknown()),s=s||rr._hitTestContentWidget(e,i),s=s||rr._hitTestOverlayWidget(e,i),s=s||rr._hitTestMinimap(e,i),s=s||rr._hitTestScrollbarSlider(e,i),s=s||rr._hitTestViewZone(e,i),s=s||rr._hitTestMargin(e,i),s=s||rr._hitTestViewCursor(e,i),s=s||rr._hitTestTextArea(e,i),s=s||rr._hitTestViewLines(e,i),s=s||rr._hitTestScrollbar(e,i),s||t.fulfillUnknown()}static _hitTestContentWidget(e,t){if(br.isChildOfContentWidgets(t.targetPath)||br.isChildOfOverflowingContentWidgets(t.targetPath)){const i=e.findAttribute(t.target,\"widgetId\");return i?t.fulfillContentWidget(i):t.fulfillUnknown()}return null}static _hitTestOverlayWidget(e,t){if(br.isChildOfOverlayWidgets(t.targetPath)||br.isChildOfOverflowingOverlayWidgets(t.targetPath)){const i=e.findAttribute(t.target,\"widgetId\");return i?t.fulfillOverlayWidget(i):t.fulfillUnknown()}return null}static _hitTestViewCursor(e,t){if(t.target){const i=e.lastRenderData.lastViewCursorsRenderData;for(const s of i)if(t.target===s.domNode)return t.fulfillContentText(s.position,null,{mightBeForeignElement:!1,injectedText:null})}if(t.isInContentArea){const i=e.lastRenderData.lastViewCursorsRenderData,s=t.mouseContentHorizontalOffset,o=t.mouseVerticalOffset;for(const r of i){if(s<r.contentLeft||s>r.contentLeft+r.width)continue;const a=e.getVerticalOffsetForLineNumber(r.position.lineNumber);if(a<=o&&o<=a+r.height)return t.fulfillContentText(r.position,null,{mightBeForeignElement:!1,injectedText:null})}}return null}static _hitTestViewZone(e,t){const i=e.getZoneAtCoord(t.mouseVerticalOffset);if(i){const s=t.isInContentArea?8:5;return t.fulfillViewZone(s,i.position,i)}return null}static _hitTestTextArea(e,t){return br.isTextArea(t.targetPath)?e.lastRenderData.lastTextareaPosition?t.fulfillContentText(e.lastRenderData.lastTextareaPosition,null,{mightBeForeignElement:!1,injectedText:null}):t.fulfillTextarea():null}static _hitTestMargin(e,t){if(t.isInMarginArea){const i=e.getFullLineRangeAtCoord(t.mouseVerticalOffset),s=i.range.getStartPosition();let o=Math.abs(t.relativePos.x);const r={isAfterLines:i.isAfterLines,glyphMarginLeft:e.layoutInfo.glyphMarginLeft,glyphMarginWidth:e.layoutInfo.glyphMarginWidth,lineNumbersWidth:e.layoutInfo.lineNumbersWidth,offsetX:o};if(o-=e.layoutInfo.glyphMarginLeft,o<=e.layoutInfo.glyphMarginWidth){const a=e.viewModel.coordinatesConverter.convertViewPositionToModelPosition(i.range.getStartPosition()),l=e.viewModel.glyphLanes.getLanesAtLine(a.lineNumber);return r.glyphMarginLane=l[Math.floor(o/e.lineHeight)],t.fulfillMargin(2,s,i.range,r)}return o-=e.layoutInfo.glyphMarginWidth,o<=e.layoutInfo.lineNumbersWidth?t.fulfillMargin(3,s,i.range,r):(o-=e.layoutInfo.lineNumbersWidth,t.fulfillMargin(4,s,i.range,r))}return null}static _hitTestViewLines(e,t){if(!br.isChildOfViewLines(t.targetPath))return null;if(e.isInTopPadding(t.mouseVerticalOffset))return t.fulfillContentEmpty(new ee(1,1),FX);if(e.isAfterLines(t.mouseVerticalOffset)||e.isInBottomPadding(t.mouseVerticalOffset)){const s=e.viewModel.getLineCount(),o=e.viewModel.getLineMaxColumn(s);return t.fulfillContentEmpty(new ee(s,o),FX)}if(br.isStrictChildOfViewLines(t.targetPath)){const s=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset);if(e.viewModel.getLineLength(s)===0){const r=e.getLineWidth(s),a=JF(t.mouseContentHorizontalOffset-r);return t.fulfillContentEmpty(new ee(s,1),a)}const o=e.getLineWidth(s);if(t.mouseContentHorizontalOffset>=o){const r=JF(t.mouseContentHorizontalOffset-o),a=new ee(s,e.viewModel.getLineMaxColumn(s));return t.fulfillContentEmpty(a,r)}}const i=t.hitTestResult.value;return i.type===1?rr.createMouseTargetFromHitTestPosition(e,t,i.spanNode,i.position,i.injectedText):t.wouldBenefitFromHitTestTargetSwitch?(t.switchToHitTestTarget(),this._createMouseTarget(e,t)):t.fulfillUnknown()}static _hitTestMinimap(e,t){if(br.isChildOfMinimap(t.targetPath)){const i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),s=e.viewModel.getLineMaxColumn(i);return t.fulfillScrollbar(new ee(i,s))}return null}static _hitTestScrollbarSlider(e,t){if(br.isChildOfScrollableElement(t.targetPath)&&t.target&&t.target.nodeType===1){const i=t.target.className;if(i&&/\\b(slider|scrollbar)\\b/.test(i)){const s=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),o=e.viewModel.getLineMaxColumn(s);return t.fulfillScrollbar(new ee(s,o))}}return null}static _hitTestScrollbar(e,t){if(br.isChildOfScrollableElement(t.targetPath)){const i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),s=e.viewModel.getLineMaxColumn(i);return t.fulfillScrollbar(new ee(i,s))}return null}getMouseColumn(e){const t=this._context.configuration.options,i=t.get(145),s=this._context.viewLayout.getCurrentScrollLeft()+e.x-i.contentLeft;return rr._getMouseColumn(s,t.get(50).typicalHalfwidthCharacterWidth)}static _getMouseColumn(e,t){return e<0?1:Math.round(e/t)+1}static createMouseTargetFromHitTestPosition(e,t,i,s,o){const r=s.lineNumber,a=s.column,l=e.getLineWidth(r);if(t.mouseContentHorizontalOffset>l){const b=JF(t.mouseContentHorizontalOffset-l);return t.fulfillContentEmpty(s,b)}const c=e.visibleRangeForPosition(r,a);if(!c)return t.fulfillUnknown(s);const d=c.left;if(Math.abs(t.mouseContentHorizontalOffset-d)<1)return t.fulfillContentText(s,null,{mightBeForeignElement:!!o,injectedText:o});const u=[];if(u.push({offset:c.left,column:a}),a>1){const b=e.visibleRangeForPosition(r,a-1);b&&u.push({offset:b.left,column:a-1})}const h=e.viewModel.getLineMaxColumn(r);if(a<h){const b=e.visibleRangeForPosition(r,a+1);b&&u.push({offset:b.left,column:a+1})}u.sort((b,w)=>b.offset-w.offset);const f=t.pos.toClientCoordinates(gt(e.viewDomNode)),g=i.getBoundingClientRect(),p=g.left<=f.clientX&&f.clientX<=g.right;let _=null;for(let b=1;b<u.length;b++){const w=u[b-1],y=u[b];if(w.offset<=t.mouseContentHorizontalOffset&&t.mouseContentHorizontalOffset<=y.offset){_=new A(r,w.column,r,y.column);const S=Math.abs(w.offset-t.mouseContentHorizontalOffset),x=Math.abs(y.offset-t.mouseContentHorizontalOffset);s=S<x?new ee(r,w.column):new ee(r,y.column);break}}return t.fulfillContentText(s,_,{mightBeForeignElement:!p||!!o,injectedText:o})}static _doHitTestWithCaretRangeFromPoint(e,t){const i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),s=e.getVerticalOffsetForLineNumber(i),o=s+e.lineHeight;if(!(i===e.viewModel.getLineCount()&&t.mouseVerticalOffset>o)){const a=Math.floor((s+o)/2);let l=t.pos.y+(a-t.mouseVerticalOffset);l<=t.editorPos.y&&(l=t.editorPos.y+1),l>=t.editorPos.y+t.editorPos.height&&(l=t.editorPos.y+t.editorPos.height-1);const c=new AM(t.pos.x,l),d=this._actualDoHitTestWithCaretRangeFromPoint(e,c.toClientCoordinates(gt(e.viewDomNode)));if(d.type===1)return d}return this._actualDoHitTestWithCaretRangeFromPoint(e,t.pos.toClientCoordinates(gt(e.viewDomNode)))}static _actualDoHitTestWithCaretRangeFromPoint(e,t){const i=h0(e.viewDomNode);let s;if(i?typeof i.caretRangeFromPoint>\"u\"?s=o3e(i,t.clientX,t.clientY):s=i.caretRangeFromPoint(t.clientX,t.clientY):s=e.viewDomNode.ownerDocument.caretRangeFromPoint(t.clientX,t.clientY),!s||!s.startContainer)return new _p;const o=s.startContainer;if(o.nodeType===o.TEXT_NODE){const r=o.parentNode,a=r?r.parentNode:null,l=a?a.parentNode:null;return(l&&l.nodeType===l.ELEMENT_NODE?l.className:null)===eh.CLASS_NAME?pv.createFromDOMInfo(e,r,s.startOffset):new _p(o.parentNode)}else if(o.nodeType===o.ELEMENT_NODE){const r=o.parentNode,a=r?r.parentNode:null;return(a&&a.nodeType===a.ELEMENT_NODE?a.className:null)===eh.CLASS_NAME?pv.createFromDOMInfo(e,o,o.textContent.length):new _p(o)}return new _p}static _doHitTestWithCaretPositionFromPoint(e,t){const i=e.viewDomNode.ownerDocument.caretPositionFromPoint(t.clientX,t.clientY);if(i.offsetNode.nodeType===i.offsetNode.TEXT_NODE){const s=i.offsetNode.parentNode,o=s?s.parentNode:null,r=o?o.parentNode:null;return(r&&r.nodeType===r.ELEMENT_NODE?r.className:null)===eh.CLASS_NAME?pv.createFromDOMInfo(e,i.offsetNode.parentNode,i.offset):new _p(i.offsetNode.parentNode)}if(i.offsetNode.nodeType===i.offsetNode.ELEMENT_NODE){const s=i.offsetNode.parentNode,o=s&&s.nodeType===s.ELEMENT_NODE?s.className:null,r=s?s.parentNode:null,a=r&&r.nodeType===r.ELEMENT_NODE?r.className:null;if(o===eh.CLASS_NAME){const l=i.offsetNode.childNodes[Math.min(i.offset,i.offsetNode.childNodes.length-1)];if(l)return pv.createFromDOMInfo(e,l,0)}else if(a===eh.CLASS_NAME)return pv.createFromDOMInfo(e,i.offsetNode,0)}return new _p(i.offsetNode)}static _snapToSoftTabBoundary(e,t){const i=t.getLineContent(e.lineNumber),{tabSize:s}=t.model.getOptions(),o=DL.atomicPosition(i,e.column-1,s,2);return o!==-1?new ee(e.lineNumber,o+1):e}static doHitTest(e,t){let i=new _p;if(typeof e.viewDomNode.ownerDocument.caretRangeFromPoint==\"function\"?i=this._doHitTestWithCaretRangeFromPoint(e,t):e.viewDomNode.ownerDocument.caretPositionFromPoint&&(i=this._doHitTestWithCaretPositionFromPoint(e,t.pos.toClientCoordinates(gt(e.viewDomNode)))),i.type===1){const s=e.viewModel.getInjectedTextAt(i.position),o=e.viewModel.normalizePosition(i.position,2);(s||!o.equals(i.position))&&(i=new Jle(o,i.spanNode,s))}return i}}function o3e(n,e,t){const i=document.createRange();let s=n.elementFromPoint(e,t);if(s!==null){for(;s&&s.firstChild&&s.firstChild.nodeType!==s.firstChild.TEXT_NODE&&s.lastChild&&s.lastChild.firstChild;)s=s.lastChild;const o=s.getBoundingClientRect(),r=gt(s),a=r.getComputedStyle(s,null).getPropertyValue(\"font-style\"),l=r.getComputedStyle(s,null).getPropertyValue(\"font-variant\"),c=r.getComputedStyle(s,null).getPropertyValue(\"font-weight\"),d=r.getComputedStyle(s,null).getPropertyValue(\"font-size\"),u=r.getComputedStyle(s,null).getPropertyValue(\"line-height\"),h=r.getComputedStyle(s,null).getPropertyValue(\"font-family\"),f=`${a} ${l} ${c} ${d}/${u} ${h}`,g=s.innerText;let p=o.left,_=0,b;if(e>o.left+o.width)_=g.length;else{const w=kv.getInstance();for(let y=0;y<g.length+1;y++){if(b=w.getCharWidth(g.charAt(y),f)/2,p+=b,e<p){_=y;break}p+=b}}i.setStart(s.firstChild,_),i.setEnd(s.firstChild,_)}return i}class kv{static getInstance(){return kv._INSTANCE||(kv._INSTANCE=new kv),kv._INSTANCE}constructor(){this._cache={},this._canvas=document.createElement(\"canvas\")}getCharWidth(e,t){const i=e+t;if(this._cache[i])return this._cache[i];const s=this._canvas.getContext(\"2d\");s.font=t;const r=s.measureText(e).width;return this._cache[i]=r,r}}kv._INSTANCE=null;function gs(n,e,t){let i=null,s=null;if(typeof t.value==\"function\"?(i=\"value\",s=t.value,s.length!==0&&console.warn(\"Memoize should only be used in functions with zero parameters\")):typeof t.get==\"function\"&&(i=\"get\",s=t.get),!s)throw new Error(\"not supported\");const o=`$memoize$${e}`;t[i]=function(...r){return this.hasOwnProperty(o)||Object.defineProperty(this,o,{configurable:!1,enumerable:!1,writable:!1,value:s.apply(this,r)}),this[o]}}var r3e=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},fn;(function(n){n.Tap=\"-monaco-gesturetap\",n.Change=\"-monaco-gesturechange\",n.Start=\"-monaco-gesturestart\",n.End=\"-monaco-gesturesend\",n.Contextmenu=\"-monaco-gesturecontextmenu\"})(fn||(fn={}));class hn extends ne{constructor(){super(),this.dispatched=!1,this.targets=new Tr,this.ignoreTargets=new Tr,this.activeTouches={},this.handle=null,this._lastSetTapCountTime=0,this._register(Ae.runAndSubscribe(dM,({window:e,disposables:t})=>{t.add(ce(e.document,\"touchstart\",i=>this.onTouchStart(i),{passive:!1})),t.add(ce(e.document,\"touchend\",i=>this.onTouchEnd(e,i))),t.add(ce(e.document,\"touchmove\",i=>this.onTouchMove(i),{passive:!1}))},{window:Ji,disposables:this._store}))}static addTarget(e){if(!hn.isTouchDevice())return ne.None;hn.INSTANCE||(hn.INSTANCE=new hn);const t=hn.INSTANCE.targets.push(e);return dt(t)}static ignoreTarget(e){if(!hn.isTouchDevice())return ne.None;hn.INSTANCE||(hn.INSTANCE=new hn);const t=hn.INSTANCE.ignoreTargets.push(e);return dt(t)}static isTouchDevice(){return\"ontouchstart\"in Ji||navigator.maxTouchPoints>0}dispose(){this.handle&&(this.handle.dispose(),this.handle=null),super.dispose()}onTouchStart(e){const t=Date.now();this.handle&&(this.handle.dispose(),this.handle=null);for(let i=0,s=e.targetTouches.length;i<s;i++){const o=e.targetTouches.item(i);this.activeTouches[o.identifier]={id:o.identifier,initialTarget:o.target,initialTimeStamp:t,initialPageX:o.pageX,initialPageY:o.pageY,rollingTimestamps:[t],rollingPageX:[o.pageX],rollingPageY:[o.pageY]};const r=this.newGestureEvent(fn.Start,o.target);r.pageX=o.pageX,r.pageY=o.pageY,this.dispatchEvent(r)}this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)}onTouchEnd(e,t){const i=Date.now(),s=Object.keys(this.activeTouches).length;for(let o=0,r=t.changedTouches.length;o<r;o++){const a=t.changedTouches.item(o);if(!this.activeTouches.hasOwnProperty(String(a.identifier))){console.warn(\"move of an UNKNOWN touch\",a);continue}const l=this.activeTouches[a.identifier],c=Date.now()-l.initialTimeStamp;if(c<hn.HOLD_DELAY&&Math.abs(l.initialPageX-Bl(l.rollingPageX))<30&&Math.abs(l.initialPageY-Bl(l.rollingPageY))<30){const d=this.newGestureEvent(fn.Tap,l.initialTarget);d.pageX=Bl(l.rollingPageX),d.pageY=Bl(l.rollingPageY),this.dispatchEvent(d)}else if(c>=hn.HOLD_DELAY&&Math.abs(l.initialPageX-Bl(l.rollingPageX))<30&&Math.abs(l.initialPageY-Bl(l.rollingPageY))<30){const d=this.newGestureEvent(fn.Contextmenu,l.initialTarget);d.pageX=Bl(l.rollingPageX),d.pageY=Bl(l.rollingPageY),this.dispatchEvent(d)}else if(s===1){const d=Bl(l.rollingPageX),u=Bl(l.rollingPageY),h=Bl(l.rollingTimestamps)-l.rollingTimestamps[0],f=d-l.rollingPageX[0],g=u-l.rollingPageY[0],p=[...this.targets].filter(_=>l.initialTarget instanceof Node&&_.contains(l.initialTarget));this.inertia(e,p,i,Math.abs(f)/h,f>0?1:-1,d,Math.abs(g)/h,g>0?1:-1,u)}this.dispatchEvent(this.newGestureEvent(fn.End,l.initialTarget)),delete this.activeTouches[a.identifier]}this.dispatched&&(t.preventDefault(),t.stopPropagation(),this.dispatched=!1)}newGestureEvent(e,t){const i=document.createEvent(\"CustomEvent\");return i.initEvent(e,!1,!0),i.initialTarget=t,i.tapCount=0,i}dispatchEvent(e){if(e.type===fn.Tap){const t=new Date().getTime();let i=0;t-this._lastSetTapCountTime>hn.CLEAR_TAP_COUNT_TIME?i=1:i=2,this._lastSetTapCountTime=t,e.tapCount=i}else(e.type===fn.Change||e.type===fn.Contextmenu)&&(this._lastSetTapCountTime=0);if(e.initialTarget instanceof Node){for(const i of this.ignoreTargets)if(i.contains(e.initialTarget))return;const t=[];for(const i of this.targets)if(i.contains(e.initialTarget)){let s=0,o=e.initialTarget;for(;o&&o!==i;)s++,o=o.parentElement;t.push([s,i])}t.sort((i,s)=>i[0]-s[0]);for(const[i,s]of t)s.dispatchEvent(e),this.dispatched=!0}}inertia(e,t,i,s,o,r,a,l,c){this.handle=Oa(e,()=>{const d=Date.now(),u=d-i;let h=0,f=0,g=!0;s+=hn.SCROLL_FRICTION*u,a+=hn.SCROLL_FRICTION*u,s>0&&(g=!1,h=o*s*u),a>0&&(g=!1,f=l*a*u);const p=this.newGestureEvent(fn.Change);p.translationX=h,p.translationY=f,t.forEach(_=>_.dispatchEvent(p)),g||this.inertia(e,t,d,s,o,r+h,a,l,c+f)})}onTouchMove(e){const t=Date.now();for(let i=0,s=e.changedTouches.length;i<s;i++){const o=e.changedTouches.item(i);if(!this.activeTouches.hasOwnProperty(String(o.identifier))){console.warn(\"end of an UNKNOWN touch\",o);continue}const r=this.activeTouches[o.identifier],a=this.newGestureEvent(fn.Change,r.initialTarget);a.translationX=o.pageX-Bl(r.rollingPageX),a.translationY=o.pageY-Bl(r.rollingPageY),a.pageX=o.pageX,a.pageY=o.pageY,this.dispatchEvent(a),r.rollingPageX.length>3&&(r.rollingPageX.shift(),r.rollingPageY.shift(),r.rollingTimestamps.shift()),r.rollingPageX.push(o.pageX),r.rollingPageY.push(o.pageY),r.rollingTimestamps.push(t)}this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)}}hn.SCROLL_FRICTION=-.005;hn.HOLD_DELAY=700;hn.CLEAR_TAP_COUNT_TIME=400;r3e([gs],hn,\"isTouchDevice\",null);let Il=class extends ne{onclick(e,t){this._register(ce(e,Le.CLICK,i=>t(new Kc(gt(e),i))))}onmousedown(e,t){this._register(ce(e,Le.MOUSE_DOWN,i=>t(new Kc(gt(e),i))))}onmouseover(e,t){this._register(ce(e,Le.MOUSE_OVER,i=>t(new Kc(gt(e),i))))}onmouseleave(e,t){this._register(ce(e,Le.MOUSE_LEAVE,i=>t(new Kc(gt(e),i))))}onkeydown(e,t){this._register(ce(e,Le.KEY_DOWN,i=>t(new ln(i))))}onkeyup(e,t){this._register(ce(e,Le.KEY_UP,i=>t(new ln(i))))}oninput(e,t){this._register(ce(e,Le.INPUT,t))}onblur(e,t){this._register(ce(e,Le.BLUR,t))}onfocus(e,t){this._register(ce(e,Le.FOCUS,t))}ignoreGesture(e){return hn.ignoreTarget(e)}};const zC=11;class a3e extends Il{constructor(e){super(),this._onActivate=e.onActivate,this.bgDomNode=document.createElement(\"div\"),this.bgDomNode.className=\"arrow-background\",this.bgDomNode.style.position=\"absolute\",this.bgDomNode.style.width=e.bgWidth+\"px\",this.bgDomNode.style.height=e.bgHeight+\"px\",typeof e.top<\"u\"&&(this.bgDomNode.style.top=\"0px\"),typeof e.left<\"u\"&&(this.bgDomNode.style.left=\"0px\"),typeof e.bottom<\"u\"&&(this.bgDomNode.style.bottom=\"0px\"),typeof e.right<\"u\"&&(this.bgDomNode.style.right=\"0px\"),this.domNode=document.createElement(\"div\"),this.domNode.className=e.className,this.domNode.classList.add(..._t.asClassNameArray(e.icon)),this.domNode.style.position=\"absolute\",this.domNode.style.width=zC+\"px\",this.domNode.style.height=zC+\"px\",typeof e.top<\"u\"&&(this.domNode.style.top=e.top+\"px\"),typeof e.left<\"u\"&&(this.domNode.style.left=e.left+\"px\"),typeof e.bottom<\"u\"&&(this.domNode.style.bottom=e.bottom+\"px\"),typeof e.right<\"u\"&&(this.domNode.style.right=e.right+\"px\"),this._pointerMoveMonitor=this._register(new Bw),this._register(rs(this.bgDomNode,Le.POINTER_DOWN,t=>this._arrowPointerDown(t))),this._register(rs(this.domNode,Le.POINTER_DOWN,t=>this._arrowPointerDown(t))),this._pointerdownRepeatTimer=this._register(new iz),this._pointerdownScheduleRepeatTimer=this._register(new cd)}_arrowPointerDown(e){if(!e.target||!(e.target instanceof Element))return;const t=()=>{this._pointerdownRepeatTimer.cancelAndSet(()=>this._onActivate(),1e3/24,gt(e))};this._onActivate(),this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancelAndSet(t,200),this._pointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,i=>{},()=>{this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancel()}),e.preventDefault()}}class l3e extends ne{constructor(e,t,i){super(),this._visibility=e,this._visibleClassName=t,this._invisibleClassName=i,this._domNode=null,this._isVisible=!1,this._isNeeded=!1,this._rawShouldBeVisible=!1,this._shouldBeVisible=!1,this._revealTimer=this._register(new cd)}setVisibility(e){this._visibility!==e&&(this._visibility=e,this._updateShouldBeVisible())}setShouldBeVisible(e){this._rawShouldBeVisible=e,this._updateShouldBeVisible()}_applyVisibilitySetting(){return this._visibility===2?!1:this._visibility===3?!0:this._rawShouldBeVisible}_updateShouldBeVisible(){const e=this._applyVisibilitySetting();this._shouldBeVisible!==e&&(this._shouldBeVisible=e,this.ensureVisibility())}setIsNeeded(e){this._isNeeded!==e&&(this._isNeeded=e,this.ensureVisibility())}setDomNode(e){this._domNode=e,this._domNode.setClassName(this._invisibleClassName),this.setShouldBeVisible(!1)}ensureVisibility(){if(!this._isNeeded){this._hide(!1);return}this._shouldBeVisible?this._reveal():this._hide(!0)}_reveal(){this._isVisible||(this._isVisible=!0,this._revealTimer.setIfNotSet(()=>{var e;(e=this._domNode)===null||e===void 0||e.setClassName(this._visibleClassName)},0))}_hide(e){var t;this._revealTimer.cancel(),this._isVisible&&(this._isVisible=!1,(t=this._domNode)===null||t===void 0||t.setClassName(this._invisibleClassName+(e?\" fade\":\"\")))}}const c3e=140;class ece extends Il{constructor(e){super(),this._lazyRender=e.lazyRender,this._host=e.host,this._scrollable=e.scrollable,this._scrollByPage=e.scrollByPage,this._scrollbarState=e.scrollbarState,this._visibilityController=this._register(new l3e(e.visibility,\"visible scrollbar \"+e.extraScrollbarClassName,\"invisible scrollbar \"+e.extraScrollbarClassName)),this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._pointerMoveMonitor=this._register(new Bw),this._shouldRender=!0,this.domNode=Di(document.createElement(\"div\")),this.domNode.setAttribute(\"role\",\"presentation\"),this.domNode.setAttribute(\"aria-hidden\",\"true\"),this._visibilityController.setDomNode(this.domNode),this.domNode.setPosition(\"absolute\"),this._register(ce(this.domNode.domNode,Le.POINTER_DOWN,t=>this._domNodePointerDown(t)))}_createArrow(e){const t=this._register(new a3e(e));this.domNode.domNode.appendChild(t.bgDomNode),this.domNode.domNode.appendChild(t.domNode)}_createSlider(e,t,i,s){this.slider=Di(document.createElement(\"div\")),this.slider.setClassName(\"slider\"),this.slider.setPosition(\"absolute\"),this.slider.setTop(e),this.slider.setLeft(t),typeof i==\"number\"&&this.slider.setWidth(i),typeof s==\"number\"&&this.slider.setHeight(s),this.slider.setLayerHinting(!0),this.slider.setContain(\"strict\"),this.domNode.domNode.appendChild(this.slider.domNode),this._register(ce(this.slider.domNode,Le.POINTER_DOWN,o=>{o.button===0&&(o.preventDefault(),this._sliderPointerDown(o))})),this.onclick(this.slider.domNode,o=>{o.leftButton&&o.stopPropagation()})}_onElementSize(e){return this._scrollbarState.setVisibleSize(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollSize(e){return this._scrollbarState.setScrollSize(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollPosition(e){return this._scrollbarState.setScrollPosition(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}beginReveal(){this._visibilityController.setShouldBeVisible(!0)}beginHide(){this._visibilityController.setShouldBeVisible(!1)}render(){this._shouldRender&&(this._shouldRender=!1,this._renderDomNode(this._scrollbarState.getRectangleLargeSize(),this._scrollbarState.getRectangleSmallSize()),this._updateSlider(this._scrollbarState.getSliderSize(),this._scrollbarState.getArrowSize()+this._scrollbarState.getSliderPosition()))}_domNodePointerDown(e){e.target===this.domNode.domNode&&this._onPointerDown(e)}delegatePointerDown(e){const t=this.domNode.domNode.getClientRects()[0].top,i=t+this._scrollbarState.getSliderPosition(),s=t+this._scrollbarState.getSliderPosition()+this._scrollbarState.getSliderSize(),o=this._sliderPointerPosition(e);i<=o&&o<=s?e.button===0&&(e.preventDefault(),this._sliderPointerDown(e)):this._onPointerDown(e)}_onPointerDown(e){let t,i;if(e.target===this.domNode.domNode&&typeof e.offsetX==\"number\"&&typeof e.offsetY==\"number\")t=e.offsetX,i=e.offsetY;else{const o=bs(this.domNode.domNode);t=e.pageX-o.left,i=e.pageY-o.top}const s=this._pointerDownRelativePosition(t,i);this._setDesiredScrollPositionNow(this._scrollByPage?this._scrollbarState.getDesiredScrollPositionFromOffsetPaged(s):this._scrollbarState.getDesiredScrollPositionFromOffset(s)),e.button===0&&(e.preventDefault(),this._sliderPointerDown(e))}_sliderPointerDown(e){if(!e.target||!(e.target instanceof Element))return;const t=this._sliderPointerPosition(e),i=this._sliderOrthogonalPointerPosition(e),s=this._scrollbarState.clone();this.slider.toggleClassName(\"active\",!0),this._pointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,o=>{const r=this._sliderOrthogonalPointerPosition(o),a=Math.abs(r-i);if(Mo&&a>c3e){this._setDesiredScrollPositionNow(s.getScrollPosition());return}const c=this._sliderPointerPosition(o)-t;this._setDesiredScrollPositionNow(s.getDesiredScrollPositionFromDelta(c))},()=>{this.slider.toggleClassName(\"active\",!1),this._host.onDragEnd()}),this._host.onDragStart()}_setDesiredScrollPositionNow(e){const t={};this.writeScrollPosition(t,e),this._scrollable.setScrollPositionNow(t)}updateScrollbarSize(e){this._updateScrollbarSize(e),this._scrollbarState.setScrollbarSize(e),this._shouldRender=!0,this._lazyRender||this.render()}isNeeded(){return this._scrollbarState.isNeeded()}}const d3e=20;class $C{constructor(e,t,i,s,o,r){this._scrollbarSize=Math.round(t),this._oppositeScrollbarSize=Math.round(i),this._arrowSize=Math.round(e),this._visibleSize=s,this._scrollSize=o,this._scrollPosition=r,this._computedAvailableSize=0,this._computedIsNeeded=!1,this._computedSliderSize=0,this._computedSliderRatio=0,this._computedSliderPosition=0,this._refreshComputedValues()}clone(){return new $C(this._arrowSize,this._scrollbarSize,this._oppositeScrollbarSize,this._visibleSize,this._scrollSize,this._scrollPosition)}setVisibleSize(e){const t=Math.round(e);return this._visibleSize!==t?(this._visibleSize=t,this._refreshComputedValues(),!0):!1}setScrollSize(e){const t=Math.round(e);return this._scrollSize!==t?(this._scrollSize=t,this._refreshComputedValues(),!0):!1}setScrollPosition(e){const t=Math.round(e);return this._scrollPosition!==t?(this._scrollPosition=t,this._refreshComputedValues(),!0):!1}setScrollbarSize(e){this._scrollbarSize=Math.round(e)}setOppositeScrollbarSize(e){this._oppositeScrollbarSize=Math.round(e)}static _computeValues(e,t,i,s,o){const r=Math.max(0,i-e),a=Math.max(0,r-2*t),l=s>0&&s>i;if(!l)return{computedAvailableSize:Math.round(r),computedIsNeeded:l,computedSliderSize:Math.round(a),computedSliderRatio:0,computedSliderPosition:0};const c=Math.round(Math.max(d3e,Math.floor(i*a/s))),d=(a-c)/(s-i),u=o*d;return{computedAvailableSize:Math.round(r),computedIsNeeded:l,computedSliderSize:Math.round(c),computedSliderRatio:d,computedSliderPosition:Math.round(u)}}_refreshComputedValues(){const e=$C._computeValues(this._oppositeScrollbarSize,this._arrowSize,this._visibleSize,this._scrollSize,this._scrollPosition);this._computedAvailableSize=e.computedAvailableSize,this._computedIsNeeded=e.computedIsNeeded,this._computedSliderSize=e.computedSliderSize,this._computedSliderRatio=e.computedSliderRatio,this._computedSliderPosition=e.computedSliderPosition}getArrowSize(){return this._arrowSize}getScrollPosition(){return this._scrollPosition}getRectangleLargeSize(){return this._computedAvailableSize}getRectangleSmallSize(){return this._scrollbarSize}isNeeded(){return this._computedIsNeeded}getSliderSize(){return this._computedSliderSize}getSliderPosition(){return this._computedSliderPosition}getDesiredScrollPositionFromOffset(e){if(!this._computedIsNeeded)return 0;const t=e-this._arrowSize-this._computedSliderSize/2;return Math.round(t/this._computedSliderRatio)}getDesiredScrollPositionFromOffsetPaged(e){if(!this._computedIsNeeded)return 0;const t=e-this._arrowSize;let i=this._scrollPosition;return t<this._computedSliderPosition?i-=this._visibleSize:i+=this._visibleSize,i}getDesiredScrollPositionFromDelta(e){if(!this._computedIsNeeded)return 0;const t=this._computedSliderPosition+e;return Math.round(t/this._computedSliderRatio)}}class u3e extends ece{constructor(e,t,i){const s=e.getScrollDimensions(),o=e.getCurrentScrollPosition();if(super({lazyRender:t.lazyRender,host:i,scrollbarState:new $C(t.horizontalHasArrows?t.arrowSize:0,t.horizontal===2?0:t.horizontalScrollbarSize,t.vertical===2?0:t.verticalScrollbarSize,s.width,s.scrollWidth,o.scrollLeft),visibility:t.horizontal,extraScrollbarClassName:\"horizontal\",scrollable:e,scrollByPage:t.scrollByPage}),t.horizontalHasArrows){const r=(t.arrowSize-zC)/2,a=(t.horizontalScrollbarSize-zC)/2;this._createArrow({className:\"scra\",icon:Te.scrollbarButtonLeft,top:a,left:r,bottom:void 0,right:void 0,bgWidth:t.arrowSize,bgHeight:t.horizontalScrollbarSize,onActivate:()=>this._host.onMouseWheel(new u0(null,1,0))}),this._createArrow({className:\"scra\",icon:Te.scrollbarButtonRight,top:a,left:void 0,bottom:void 0,right:r,bgWidth:t.arrowSize,bgHeight:t.horizontalScrollbarSize,onActivate:()=>this._host.onMouseWheel(new u0(null,-1,0))})}this._createSlider(Math.floor((t.horizontalScrollbarSize-t.horizontalSliderSize)/2),0,void 0,t.horizontalSliderSize)}_updateSlider(e,t){this.slider.setWidth(e),this.slider.setLeft(t)}_renderDomNode(e,t){this.domNode.setWidth(e),this.domNode.setHeight(t),this.domNode.setLeft(0),this.domNode.setBottom(0)}onDidScroll(e){return this._shouldRender=this._onElementScrollSize(e.scrollWidth)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(e.scrollLeft)||this._shouldRender,this._shouldRender=this._onElementSize(e.width)||this._shouldRender,this._shouldRender}_pointerDownRelativePosition(e,t){return e}_sliderPointerPosition(e){return e.pageX}_sliderOrthogonalPointerPosition(e){return e.pageY}_updateScrollbarSize(e){this.slider.setHeight(e)}writeScrollPosition(e,t){e.scrollLeft=t}updateOptions(e){this.updateScrollbarSize(e.horizontal===2?0:e.horizontalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(e.vertical===2?0:e.verticalScrollbarSize),this._visibilityController.setVisibility(e.horizontal),this._scrollByPage=e.scrollByPage}}class h3e extends ece{constructor(e,t,i){const s=e.getScrollDimensions(),o=e.getCurrentScrollPosition();if(super({lazyRender:t.lazyRender,host:i,scrollbarState:new $C(t.verticalHasArrows?t.arrowSize:0,t.vertical===2?0:t.verticalScrollbarSize,0,s.height,s.scrollHeight,o.scrollTop),visibility:t.vertical,extraScrollbarClassName:\"vertical\",scrollable:e,scrollByPage:t.scrollByPage}),t.verticalHasArrows){const r=(t.arrowSize-zC)/2,a=(t.verticalScrollbarSize-zC)/2;this._createArrow({className:\"scra\",icon:Te.scrollbarButtonUp,top:r,left:a,bottom:void 0,right:void 0,bgWidth:t.verticalScrollbarSize,bgHeight:t.arrowSize,onActivate:()=>this._host.onMouseWheel(new u0(null,0,1))}),this._createArrow({className:\"scra\",icon:Te.scrollbarButtonDown,top:void 0,left:a,bottom:r,right:void 0,bgWidth:t.verticalScrollbarSize,bgHeight:t.arrowSize,onActivate:()=>this._host.onMouseWheel(new u0(null,0,-1))})}this._createSlider(0,Math.floor((t.verticalScrollbarSize-t.verticalSliderSize)/2),t.verticalSliderSize,void 0)}_updateSlider(e,t){this.slider.setHeight(e),this.slider.setTop(t)}_renderDomNode(e,t){this.domNode.setWidth(t),this.domNode.setHeight(e),this.domNode.setRight(0),this.domNode.setTop(0)}onDidScroll(e){return this._shouldRender=this._onElementScrollSize(e.scrollHeight)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(e.scrollTop)||this._shouldRender,this._shouldRender=this._onElementSize(e.height)||this._shouldRender,this._shouldRender}_pointerDownRelativePosition(e,t){return t}_sliderPointerPosition(e){return e.pageY}_sliderOrthogonalPointerPosition(e){return e.pageX}_updateScrollbarSize(e){this.slider.setWidth(e)}writeScrollPosition(e,t){e.scrollTop=t}updateOptions(e){this.updateScrollbarSize(e.vertical===2?0:e.verticalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(0),this._visibilityController.setVisibility(e.vertical),this._scrollByPage=e.scrollByPage}}class Q2{constructor(e,t,i,s,o,r,a){this._forceIntegerValues=e,this._scrollStateBrand=void 0,this._forceIntegerValues&&(t=t|0,i=i|0,s=s|0,o=o|0,r=r|0,a=a|0),this.rawScrollLeft=s,this.rawScrollTop=a,t<0&&(t=0),s+t>i&&(s=i-t),s<0&&(s=0),o<0&&(o=0),a+o>r&&(a=r-o),a<0&&(a=0),this.width=t,this.scrollWidth=i,this.scrollLeft=s,this.height=o,this.scrollHeight=r,this.scrollTop=a}equals(e){return this.rawScrollLeft===e.rawScrollLeft&&this.rawScrollTop===e.rawScrollTop&&this.width===e.width&&this.scrollWidth===e.scrollWidth&&this.scrollLeft===e.scrollLeft&&this.height===e.height&&this.scrollHeight===e.scrollHeight&&this.scrollTop===e.scrollTop}withScrollDimensions(e,t){return new Q2(this._forceIntegerValues,typeof e.width<\"u\"?e.width:this.width,typeof e.scrollWidth<\"u\"?e.scrollWidth:this.scrollWidth,t?this.rawScrollLeft:this.scrollLeft,typeof e.height<\"u\"?e.height:this.height,typeof e.scrollHeight<\"u\"?e.scrollHeight:this.scrollHeight,t?this.rawScrollTop:this.scrollTop)}withScrollPosition(e){return new Q2(this._forceIntegerValues,this.width,this.scrollWidth,typeof e.scrollLeft<\"u\"?e.scrollLeft:this.rawScrollLeft,this.height,this.scrollHeight,typeof e.scrollTop<\"u\"?e.scrollTop:this.rawScrollTop)}createScrollEvent(e,t){const i=this.width!==e.width,s=this.scrollWidth!==e.scrollWidth,o=this.scrollLeft!==e.scrollLeft,r=this.height!==e.height,a=this.scrollHeight!==e.scrollHeight,l=this.scrollTop!==e.scrollTop;return{inSmoothScrolling:t,oldWidth:e.width,oldScrollWidth:e.scrollWidth,oldScrollLeft:e.scrollLeft,width:this.width,scrollWidth:this.scrollWidth,scrollLeft:this.scrollLeft,oldHeight:e.height,oldScrollHeight:e.scrollHeight,oldScrollTop:e.scrollTop,height:this.height,scrollHeight:this.scrollHeight,scrollTop:this.scrollTop,widthChanged:i,scrollWidthChanged:s,scrollLeftChanged:o,heightChanged:r,scrollHeightChanged:a,scrollTopChanged:l}}}class Ww extends ne{constructor(e){super(),this._scrollableBrand=void 0,this._onScroll=this._register(new X),this.onScroll=this._onScroll.event,this._smoothScrollDuration=e.smoothScrollDuration,this._scheduleAtNextAnimationFrame=e.scheduleAtNextAnimationFrame,this._state=new Q2(e.forceIntegerValues,0,0,0,0,0,0),this._smoothScrolling=null}dispose(){this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),super.dispose()}setSmoothScrollDuration(e){this._smoothScrollDuration=e}validateScrollPosition(e){return this._state.withScrollPosition(e)}getScrollDimensions(){return this._state}setScrollDimensions(e,t){var i;const s=this._state.withScrollDimensions(e,t);this._setState(s,!!this._smoothScrolling),(i=this._smoothScrolling)===null||i===void 0||i.acceptScrollDimensions(this._state)}getFutureScrollPosition(){return this._smoothScrolling?this._smoothScrolling.to:this._state}getCurrentScrollPosition(){return this._state}setScrollPositionNow(e){const t=this._state.withScrollPosition(e);this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),this._setState(t,!1)}setScrollPositionSmooth(e,t){if(this._smoothScrollDuration===0)return this.setScrollPositionNow(e);if(this._smoothScrolling){e={scrollLeft:typeof e.scrollLeft>\"u\"?this._smoothScrolling.to.scrollLeft:e.scrollLeft,scrollTop:typeof e.scrollTop>\"u\"?this._smoothScrolling.to.scrollTop:e.scrollTop};const i=this._state.withScrollPosition(e);if(this._smoothScrolling.to.scrollLeft===i.scrollLeft&&this._smoothScrolling.to.scrollTop===i.scrollTop)return;let s;t?s=new IL(this._smoothScrolling.from,i,this._smoothScrolling.startTime,this._smoothScrolling.duration):s=this._smoothScrolling.combine(this._state,i,this._smoothScrollDuration),this._smoothScrolling.dispose(),this._smoothScrolling=s}else{const i=this._state.withScrollPosition(e);this._smoothScrolling=IL.start(this._state,i,this._smoothScrollDuration)}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame(()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())})}hasPendingScrollAnimation(){return!!this._smoothScrolling}_performSmoothScrolling(){if(!this._smoothScrolling)return;const e=this._smoothScrolling.tick(),t=this._state.withScrollPosition(e);if(this._setState(t,!0),!!this._smoothScrolling){if(e.isDone){this._smoothScrolling.dispose(),this._smoothScrolling=null;return}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame(()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())})}}_setState(e,t){const i=this._state;i.equals(e)||(this._state=e,this._onScroll.fire(this._state.createScrollEvent(i,t)))}}class BX{constructor(e,t,i){this.scrollLeft=e,this.scrollTop=t,this.isDone=i}}function e5(n,e){const t=e-n;return function(i){return n+t*p3e(i)}}function f3e(n,e,t){return function(i){return i<t?n(i/t):e((i-t)/(1-t))}}class IL{constructor(e,t,i,s){this.from=e,this.to=t,this.duration=s,this.startTime=i,this.animationFrameDisposable=null,this._initAnimations()}_initAnimations(){this.scrollLeft=this._initAnimation(this.from.scrollLeft,this.to.scrollLeft,this.to.width),this.scrollTop=this._initAnimation(this.from.scrollTop,this.to.scrollTop,this.to.height)}_initAnimation(e,t,i){if(Math.abs(e-t)>2.5*i){let o,r;return e<t?(o=e+.75*i,r=t-.75*i):(o=e-.75*i,r=t+.75*i),f3e(e5(e,o),e5(r,t),.33)}return e5(e,t)}dispose(){this.animationFrameDisposable!==null&&(this.animationFrameDisposable.dispose(),this.animationFrameDisposable=null)}acceptScrollDimensions(e){this.to=e.withScrollPosition(this.to),this._initAnimations()}tick(){return this._tick(Date.now())}_tick(e){const t=(e-this.startTime)/this.duration;if(t<1){const i=this.scrollLeft(t),s=this.scrollTop(t);return new BX(i,s,!1)}return new BX(this.to.scrollLeft,this.to.scrollTop,!0)}combine(e,t,i){return IL.start(e,t,i)}static start(e,t,i){i=i+10;const s=Date.now()-10;return new IL(e,t,s,i)}}function g3e(n){return Math.pow(n,3)}function p3e(n){return 1-g3e(1-n)}const m3e=500,WX=50;class _3e{constructor(e,t,i){this.timestamp=e,this.deltaX=t,this.deltaY=i,this.score=0}}class J2{constructor(){this._capacity=5,this._memory=[],this._front=-1,this._rear=-1}isPhysicalMouseWheel(){if(this._front===-1&&this._rear===-1)return!1;let e=1,t=0,i=1,s=this._rear;do{const o=s===this._front?e:Math.pow(2,-i);if(e-=o,t+=this._memory[s].score*o,s===this._front)break;s=(this._capacity+s-1)%this._capacity,i++}while(!0);return t<=.5}acceptStandardWheelEvent(e){if(dD){const t=gt(e.browserEvent),i=DRe(t);this.accept(Date.now(),e.deltaX*i,e.deltaY*i)}else this.accept(Date.now(),e.deltaX,e.deltaY)}accept(e,t,i){let s=null;const o=new _3e(e,t,i);this._front===-1&&this._rear===-1?(this._memory[0]=o,this._front=0,this._rear=0):(s=this._memory[this._rear],this._rear=(this._rear+1)%this._capacity,this._rear===this._front&&(this._front=(this._front+1)%this._capacity),this._memory[this._rear]=o),o.score=this._computeScore(o,s)}_computeScore(e,t){if(Math.abs(e.deltaX)>0&&Math.abs(e.deltaY)>0)return 1;let i=.5;if((!this._isAlmostInt(e.deltaX)||!this._isAlmostInt(e.deltaY))&&(i+=.25),t){const s=Math.abs(e.deltaX),o=Math.abs(e.deltaY),r=Math.abs(t.deltaX),a=Math.abs(t.deltaY),l=Math.max(Math.min(s,r),1),c=Math.max(Math.min(o,a),1),d=Math.max(s,r),u=Math.max(o,a);d%l===0&&u%c===0&&(i-=.5)}return Math.min(Math.max(i,0),1)}_isAlmostInt(e){return Math.abs(Math.round(e)-e)<.01}}J2.INSTANCE=new J2;class Rz extends Il{get options(){return this._options}constructor(e,t,i){super(),this._onScroll=this._register(new X),this.onScroll=this._onScroll.event,this._onWillScroll=this._register(new X),e.style.overflow=\"hidden\",this._options=v3e(t),this._scrollable=i,this._register(this._scrollable.onScroll(o=>{this._onWillScroll.fire(o),this._onDidScroll(o),this._onScroll.fire(o)}));const s={onMouseWheel:o=>this._onMouseWheel(o),onDragStart:()=>this._onDragStart(),onDragEnd:()=>this._onDragEnd()};this._verticalScrollbar=this._register(new h3e(this._scrollable,this._options,s)),this._horizontalScrollbar=this._register(new u3e(this._scrollable,this._options,s)),this._domNode=document.createElement(\"div\"),this._domNode.className=\"monaco-scrollable-element \"+this._options.className,this._domNode.setAttribute(\"role\",\"presentation\"),this._domNode.style.position=\"relative\",this._domNode.style.overflow=\"hidden\",this._domNode.appendChild(e),this._domNode.appendChild(this._horizontalScrollbar.domNode.domNode),this._domNode.appendChild(this._verticalScrollbar.domNode.domNode),this._options.useShadows?(this._leftShadowDomNode=Di(document.createElement(\"div\")),this._leftShadowDomNode.setClassName(\"shadow\"),this._domNode.appendChild(this._leftShadowDomNode.domNode),this._topShadowDomNode=Di(document.createElement(\"div\")),this._topShadowDomNode.setClassName(\"shadow\"),this._domNode.appendChild(this._topShadowDomNode.domNode),this._topLeftShadowDomNode=Di(document.createElement(\"div\")),this._topLeftShadowDomNode.setClassName(\"shadow\"),this._domNode.appendChild(this._topLeftShadowDomNode.domNode)):(this._leftShadowDomNode=null,this._topShadowDomNode=null,this._topLeftShadowDomNode=null),this._listenOnDomNode=this._options.listenOnDomNode||this._domNode,this._mouseWheelToDispose=[],this._setListeningToMouseWheel(this._options.handleMouseWheel),this.onmouseover(this._listenOnDomNode,o=>this._onMouseOver(o)),this.onmouseleave(this._listenOnDomNode,o=>this._onMouseLeave(o)),this._hideTimeout=this._register(new cd),this._isDragging=!1,this._mouseIsOver=!1,this._shouldRender=!0,this._revealOnScroll=!0}dispose(){this._mouseWheelToDispose=tn(this._mouseWheelToDispose),super.dispose()}getDomNode(){return this._domNode}getOverviewRulerLayoutInfo(){return{parent:this._domNode,insertBefore:this._verticalScrollbar.domNode.domNode}}delegateVerticalScrollbarPointerDown(e){this._verticalScrollbar.delegatePointerDown(e)}getScrollDimensions(){return this._scrollable.getScrollDimensions()}setScrollDimensions(e){this._scrollable.setScrollDimensions(e,!1)}updateClassName(e){this._options.className=e,Xt&&(this._options.className+=\" mac\"),this._domNode.className=\"monaco-scrollable-element \"+this._options.className}updateOptions(e){typeof e.handleMouseWheel<\"u\"&&(this._options.handleMouseWheel=e.handleMouseWheel,this._setListeningToMouseWheel(this._options.handleMouseWheel)),typeof e.mouseWheelScrollSensitivity<\"u\"&&(this._options.mouseWheelScrollSensitivity=e.mouseWheelScrollSensitivity),typeof e.fastScrollSensitivity<\"u\"&&(this._options.fastScrollSensitivity=e.fastScrollSensitivity),typeof e.scrollPredominantAxis<\"u\"&&(this._options.scrollPredominantAxis=e.scrollPredominantAxis),typeof e.horizontal<\"u\"&&(this._options.horizontal=e.horizontal),typeof e.vertical<\"u\"&&(this._options.vertical=e.vertical),typeof e.horizontalScrollbarSize<\"u\"&&(this._options.horizontalScrollbarSize=e.horizontalScrollbarSize),typeof e.verticalScrollbarSize<\"u\"&&(this._options.verticalScrollbarSize=e.verticalScrollbarSize),typeof e.scrollByPage<\"u\"&&(this._options.scrollByPage=e.scrollByPage),this._horizontalScrollbar.updateOptions(this._options),this._verticalScrollbar.updateOptions(this._options),this._options.lazyRender||this._render()}delegateScrollFromMouseWheelEvent(e){this._onMouseWheel(new u0(e))}_setListeningToMouseWheel(e){if(this._mouseWheelToDispose.length>0!==e&&(this._mouseWheelToDispose=tn(this._mouseWheelToDispose),e)){const i=s=>{this._onMouseWheel(new u0(s))};this._mouseWheelToDispose.push(ce(this._listenOnDomNode,Le.MOUSE_WHEEL,i,{passive:!1}))}}_onMouseWheel(e){var t;if(!((t=e.browserEvent)===null||t===void 0)&&t.defaultPrevented)return;const i=J2.INSTANCE;i.acceptStandardWheelEvent(e);let s=!1;if(e.deltaY||e.deltaX){let r=e.deltaY*this._options.mouseWheelScrollSensitivity,a=e.deltaX*this._options.mouseWheelScrollSensitivity;this._options.scrollPredominantAxis&&(this._options.scrollYToX&&a+r===0?a=r=0:Math.abs(r)>=Math.abs(a)?a=0:r=0),this._options.flipAxes&&([r,a]=[a,r]);const l=!Xt&&e.browserEvent&&e.browserEvent.shiftKey;(this._options.scrollYToX||l)&&!a&&(a=r,r=0),e.browserEvent&&e.browserEvent.altKey&&(a=a*this._options.fastScrollSensitivity,r=r*this._options.fastScrollSensitivity);const c=this._scrollable.getFutureScrollPosition();let d={};if(r){const u=WX*r,h=c.scrollTop-(u<0?Math.floor(u):Math.ceil(u));this._verticalScrollbar.writeScrollPosition(d,h)}if(a){const u=WX*a,h=c.scrollLeft-(u<0?Math.floor(u):Math.ceil(u));this._horizontalScrollbar.writeScrollPosition(d,h)}d=this._scrollable.validateScrollPosition(d),(c.scrollLeft!==d.scrollLeft||c.scrollTop!==d.scrollTop)&&(this._options.mouseWheelSmoothScroll&&i.isPhysicalMouseWheel()?this._scrollable.setScrollPositionSmooth(d):this._scrollable.setScrollPositionNow(d),s=!0)}let o=s;!o&&this._options.alwaysConsumeMouseWheel&&(o=!0),!o&&this._options.consumeMouseWheelIfScrollbarIsNeeded&&(this._verticalScrollbar.isNeeded()||this._horizontalScrollbar.isNeeded())&&(o=!0),o&&(e.preventDefault(),e.stopPropagation())}_onDidScroll(e){this._shouldRender=this._horizontalScrollbar.onDidScroll(e)||this._shouldRender,this._shouldRender=this._verticalScrollbar.onDidScroll(e)||this._shouldRender,this._options.useShadows&&(this._shouldRender=!0),this._revealOnScroll&&this._reveal(),this._options.lazyRender||this._render()}renderNow(){if(!this._options.lazyRender)throw new Error(\"Please use `lazyRender` together with `renderNow`!\");this._render()}_render(){if(this._shouldRender&&(this._shouldRender=!1,this._horizontalScrollbar.render(),this._verticalScrollbar.render(),this._options.useShadows)){const e=this._scrollable.getCurrentScrollPosition(),t=e.scrollTop>0,i=e.scrollLeft>0,s=i?\" left\":\"\",o=t?\" top\":\"\",r=i||t?\" top-left-corner\":\"\";this._leftShadowDomNode.setClassName(`shadow${s}`),this._topShadowDomNode.setClassName(`shadow${o}`),this._topLeftShadowDomNode.setClassName(`shadow${r}${o}${s}`)}}_onDragStart(){this._isDragging=!0,this._reveal()}_onDragEnd(){this._isDragging=!1,this._hide()}_onMouseLeave(e){this._mouseIsOver=!1,this._hide()}_onMouseOver(e){this._mouseIsOver=!0,this._reveal()}_reveal(){this._verticalScrollbar.beginReveal(),this._horizontalScrollbar.beginReveal(),this._scheduleHide()}_hide(){!this._mouseIsOver&&!this._isDragging&&(this._verticalScrollbar.beginHide(),this._horizontalScrollbar.beginHide())}_scheduleHide(){!this._mouseIsOver&&!this._isDragging&&this._hideTimeout.cancelAndSet(()=>this._hide(),m3e)}}class tce extends Rz{constructor(e,t){t=t||{},t.mouseWheelSmoothScroll=!1;const i=new Ww({forceIntegerValues:!0,smoothScrollDuration:0,scheduleAtNextAnimationFrame:s=>Oa(gt(e),s)});super(e,t,i),this._register(i)}setScrollPosition(e){this._scrollable.setScrollPositionNow(e)}}class MM extends Rz{constructor(e,t,i){super(e,t,i)}setScrollPosition(e){e.reuseAnimation?this._scrollable.setScrollPositionSmooth(e,e.reuseAnimation):this._scrollable.setScrollPositionNow(e)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}}class wD extends Rz{constructor(e,t){t=t||{},t.mouseWheelSmoothScroll=!1;const i=new Ww({forceIntegerValues:!1,smoothScrollDuration:0,scheduleAtNextAnimationFrame:s=>Oa(gt(e),s)});super(e,t,i),this._register(i),this._element=e,this._register(this.onScroll(s=>{s.scrollTopChanged&&(this._element.scrollTop=s.scrollTop),s.scrollLeftChanged&&(this._element.scrollLeft=s.scrollLeft)})),this.scanDomNode()}setScrollPosition(e){this._scrollable.setScrollPositionNow(e)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}scanDomNode(){this.setScrollDimensions({width:this._element.clientWidth,scrollWidth:this._element.scrollWidth,height:this._element.clientHeight,scrollHeight:this._element.scrollHeight}),this.setScrollPosition({scrollLeft:this._element.scrollLeft,scrollTop:this._element.scrollTop})}}function v3e(n){const e={lazyRender:typeof n.lazyRender<\"u\"?n.lazyRender:!1,className:typeof n.className<\"u\"?n.className:\"\",useShadows:typeof n.useShadows<\"u\"?n.useShadows:!0,handleMouseWheel:typeof n.handleMouseWheel<\"u\"?n.handleMouseWheel:!0,flipAxes:typeof n.flipAxes<\"u\"?n.flipAxes:!1,consumeMouseWheelIfScrollbarIsNeeded:typeof n.consumeMouseWheelIfScrollbarIsNeeded<\"u\"?n.consumeMouseWheelIfScrollbarIsNeeded:!1,alwaysConsumeMouseWheel:typeof n.alwaysConsumeMouseWheel<\"u\"?n.alwaysConsumeMouseWheel:!1,scrollYToX:typeof n.scrollYToX<\"u\"?n.scrollYToX:!1,mouseWheelScrollSensitivity:typeof n.mouseWheelScrollSensitivity<\"u\"?n.mouseWheelScrollSensitivity:1,fastScrollSensitivity:typeof n.fastScrollSensitivity<\"u\"?n.fastScrollSensitivity:5,scrollPredominantAxis:typeof n.scrollPredominantAxis<\"u\"?n.scrollPredominantAxis:!0,mouseWheelSmoothScroll:typeof n.mouseWheelSmoothScroll<\"u\"?n.mouseWheelSmoothScroll:!0,arrowSize:typeof n.arrowSize<\"u\"?n.arrowSize:11,listenOnDomNode:typeof n.listenOnDomNode<\"u\"?n.listenOnDomNode:null,horizontal:typeof n.horizontal<\"u\"?n.horizontal:1,horizontalScrollbarSize:typeof n.horizontalScrollbarSize<\"u\"?n.horizontalScrollbarSize:10,horizontalSliderSize:typeof n.horizontalSliderSize<\"u\"?n.horizontalSliderSize:0,horizontalHasArrows:typeof n.horizontalHasArrows<\"u\"?n.horizontalHasArrows:!1,vertical:typeof n.vertical<\"u\"?n.vertical:1,verticalScrollbarSize:typeof n.verticalScrollbarSize<\"u\"?n.verticalScrollbarSize:10,verticalHasArrows:typeof n.verticalHasArrows<\"u\"?n.verticalHasArrows:!1,verticalSliderSize:typeof n.verticalSliderSize<\"u\"?n.verticalSliderSize:0,scrollByPage:typeof n.scrollByPage<\"u\"?n.scrollByPage:!1};return e.horizontalSliderSize=typeof n.horizontalSliderSize<\"u\"?n.horizontalSliderSize:e.horizontalScrollbarSize,e.verticalSliderSize=typeof n.verticalSliderSize<\"u\"?n.verticalSliderSize:e.verticalScrollbarSize,Xt&&(e.className+=\" mac\"),e}class Mz extends CD{constructor(e,t,i){super(),this._mouseLeaveMonitor=null,this._context=e,this.viewController=t,this.viewHelper=i,this.mouseTargetFactory=new rr(this._context,i),this._mouseDownOperation=this._register(new b3e(this._context,this.viewController,this.viewHelper,this.mouseTargetFactory,(r,a)=>this._createMouseTarget(r,a),r=>this._getMouseColumn(r))),this.lastMouseLeaveTime=-1,this._height=this._context.configuration.options.get(145).height;const s=new $5e(this.viewHelper.viewDomNode);this._register(s.onContextMenu(this.viewHelper.viewDomNode,r=>this._onContextMenu(r,!0))),this._register(s.onMouseMove(this.viewHelper.viewDomNode,r=>{this._onMouseMove(r),this._mouseLeaveMonitor||(this._mouseLeaveMonitor=ce(this.viewHelper.viewDomNode.ownerDocument,\"mousemove\",a=>{this.viewHelper.viewDomNode.contains(a.target)||this._onMouseLeave(new Wm(a,!1,this.viewHelper.viewDomNode))}))})),this._register(s.onMouseUp(this.viewHelper.viewDomNode,r=>this._onMouseUp(r))),this._register(s.onMouseLeave(this.viewHelper.viewDomNode,r=>this._onMouseLeave(r)));let o=0;this._register(s.onPointerDown(this.viewHelper.viewDomNode,(r,a)=>{o=a})),this._register(ce(this.viewHelper.viewDomNode,Le.POINTER_UP,r=>{this._mouseDownOperation.onPointerUp()})),this._register(s.onMouseDown(this.viewHelper.viewDomNode,r=>this._onMouseDown(r,o))),this._setupMouseWheelZoomListener(),this._context.addEventHandler(this)}_setupMouseWheelZoomListener(){const e=J2.INSTANCE;let t=0,i=Kl.getZoomLevel(),s=!1,o=0;const r=l=>{if(this.viewController.emitMouseWheel(l),!this._context.configuration.options.get(76))return;const c=new u0(l);if(e.acceptStandardWheelEvent(c),e.isPhysicalMouseWheel()){if(a(l)){const d=Kl.getZoomLevel(),u=c.deltaY>0?1:-1;Kl.setZoomLevel(d+u),c.preventDefault(),c.stopPropagation()}}else Date.now()-t>50&&(i=Kl.getZoomLevel(),s=a(l),o=0),t=Date.now(),o+=c.deltaY,s&&(Kl.setZoomLevel(i+o/5),c.preventDefault(),c.stopPropagation())};this._register(ce(this.viewHelper.viewDomNode,Le.MOUSE_WHEEL,r,{capture:!0,passive:!1}));function a(l){return Xt?(l.metaKey||l.ctrlKey)&&!l.shiftKey&&!l.altKey:l.ctrlKey&&!l.metaKey&&!l.shiftKey&&!l.altKey}}dispose(){this._context.removeEventHandler(this),this._mouseLeaveMonitor&&(this._mouseLeaveMonitor.dispose(),this._mouseLeaveMonitor=null),super.dispose()}onConfigurationChanged(e){if(e.hasChanged(145)){const t=this._context.configuration.options.get(145).height;this._height!==t&&(this._height=t,this._mouseDownOperation.onHeightChanged())}return!1}onCursorStateChanged(e){return this._mouseDownOperation.onCursorStateChanged(e),!1}onFocusChanged(e){return!1}getTargetAtClientPoint(e,t){const s=new Yle(e,t).toPageCoordinates(gt(this.viewHelper.viewDomNode)),o=Tz(this.viewHelper.viewDomNode);if(s.y<o.y||s.y>o.y+o.height||s.x<o.x||s.x>o.x+o.width)return null;const r=Nz(this.viewHelper.viewDomNode,o,s);return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),o,s,r,null)}_createMouseTarget(e,t){let i=e.target;if(!this.viewHelper.viewDomNode.contains(i)){const s=h0(this.viewHelper.viewDomNode);s&&(i=s.elementsFromPoint(e.posx,e.posy).find(o=>this.viewHelper.viewDomNode.contains(o)))}return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),e.editorPos,e.pos,e.relativePos,t?i:null)}_getMouseColumn(e){return this.mouseTargetFactory.getMouseColumn(e.relativePos)}_onContextMenu(e,t){this.viewController.emitContextMenu({event:e,target:this._createMouseTarget(e,t)})}_onMouseMove(e){this.mouseTargetFactory.mouseTargetIsWidget(e)||e.preventDefault(),!(this._mouseDownOperation.isActive()||e.timestamp<this.lastMouseLeaveTime)&&this.viewController.emitMouseMove({event:e,target:this._createMouseTarget(e,!0)})}_onMouseLeave(e){this._mouseLeaveMonitor&&(this._mouseLeaveMonitor.dispose(),this._mouseLeaveMonitor=null),this.lastMouseLeaveTime=new Date().getTime(),this.viewController.emitMouseLeave({event:e,target:null})}_onMouseUp(e){this.viewController.emitMouseUp({event:e,target:this._createMouseTarget(e,!0)})}_onMouseDown(e,t){const i=this._createMouseTarget(e,!0),s=i.type===6||i.type===7,o=i.type===2||i.type===3||i.type===4,r=i.type===3,a=this._context.configuration.options.get(109),l=i.type===8||i.type===5,c=i.type===9;let d=e.leftButton||e.middleButton;Xt&&e.leftButton&&e.ctrlKey&&(d=!1);const u=()=>{e.preventDefault(),this.viewHelper.focusTextArea()};if(d&&(s||r&&a))u(),this._mouseDownOperation.start(i.type,e,t);else if(o)e.preventDefault();else if(l){const h=i.detail;d&&this.viewHelper.shouldSuppressMouseDownOnViewZone(h.viewZoneId)&&(u(),this._mouseDownOperation.start(i.type,e,t),e.preventDefault())}else c&&this.viewHelper.shouldSuppressMouseDownOnWidget(i.detail)&&(u(),e.preventDefault());this.viewController.emitMouseDown({event:e,target:i})}}class b3e extends ne{constructor(e,t,i,s,o,r){super(),this._context=e,this._viewController=t,this._viewHelper=i,this._mouseTargetFactory=s,this._createMouseTarget=o,this._getMouseColumn=r,this._mouseMoveMonitor=this._register(new j5e(this._viewHelper.viewDomNode)),this._topBottomDragScrolling=this._register(new C3e(this._context,this._viewHelper,this._mouseTargetFactory,(a,l,c)=>this._dispatchMouse(a,l,c))),this._mouseState=new PM,this._currentSelection=new it(1,1,1,1),this._isActive=!1,this._lastMouseEvent=null}dispose(){super.dispose()}isActive(){return this._isActive}_onMouseDownThenMove(e){this._lastMouseEvent=e,this._mouseState.setModifiers(e);const t=this._findMousePosition(e,!1);t&&(this._mouseState.isDragAndDrop?this._viewController.emitMouseDrag({event:e,target:t}):t.type===13&&(t.outsidePosition===\"above\"||t.outsidePosition===\"below\")?this._topBottomDragScrolling.start(t,e):(this._topBottomDragScrolling.stop(),this._dispatchMouse(t,!0,1)))}start(e,t,i){this._lastMouseEvent=t,this._mouseState.setStartedOnLineNumbers(e===3),this._mouseState.setStartButtons(t),this._mouseState.setModifiers(t);const s=this._findMousePosition(t,!0);if(!s||!s.position)return;this._mouseState.trySetCount(t.detail,s.position),t.detail=this._mouseState.count;const o=this._context.configuration.options;if(!o.get(91)&&o.get(35)&&!o.get(22)&&!this._mouseState.altKey&&t.detail<2&&!this._isActive&&!this._currentSelection.isEmpty()&&s.type===6&&s.position&&this._currentSelection.containsPosition(s.position)){this._mouseState.isDragAndDrop=!0,this._isActive=!0,this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode,i,t.buttons,r=>this._onMouseDownThenMove(r),r=>{const a=this._findMousePosition(this._lastMouseEvent,!1);Np(r)?this._viewController.emitMouseDropCanceled():this._viewController.emitMouseDrop({event:this._lastMouseEvent,target:a?this._createMouseTarget(this._lastMouseEvent,!0):null}),this._stop()});return}this._mouseState.isDragAndDrop=!1,this._dispatchMouse(s,t.shiftKey,1),this._isActive||(this._isActive=!0,this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode,i,t.buttons,r=>this._onMouseDownThenMove(r),()=>this._stop()))}_stop(){this._isActive=!1,this._topBottomDragScrolling.stop()}onHeightChanged(){this._mouseMoveMonitor.stopMonitoring()}onPointerUp(){this._mouseMoveMonitor.stopMonitoring()}onCursorStateChanged(e){this._currentSelection=e.selections[0]}_getPositionOutsideEditor(e){const t=e.editorPos,i=this._context.viewModel,s=this._context.viewLayout,o=this._getMouseColumn(e);if(e.posy<t.y){const a=t.y-e.posy,l=Math.max(s.getCurrentScrollTop()-a,0),c=VC.getZoneAtCoord(this._context,l);if(c){const u=this._helpPositionJumpOverViewZone(c);if(u)return dr.createOutsideEditor(o,u,\"above\",a)}const d=s.getLineNumberAtVerticalOffset(l);return dr.createOutsideEditor(o,new ee(d,1),\"above\",a)}if(e.posy>t.y+t.height){const a=e.posy-t.y-t.height,l=s.getCurrentScrollTop()+e.relativePos.y,c=VC.getZoneAtCoord(this._context,l);if(c){const u=this._helpPositionJumpOverViewZone(c);if(u)return dr.createOutsideEditor(o,u,\"below\",a)}const d=s.getLineNumberAtVerticalOffset(l);return dr.createOutsideEditor(o,new ee(d,i.getLineMaxColumn(d)),\"below\",a)}const r=s.getLineNumberAtVerticalOffset(s.getCurrentScrollTop()+e.relativePos.y);if(e.posx<t.x){const a=t.x-e.posx;return dr.createOutsideEditor(o,new ee(r,1),\"left\",a)}if(e.posx>t.x+t.width){const a=e.posx-t.x-t.width;return dr.createOutsideEditor(o,new ee(r,i.getLineMaxColumn(r)),\"right\",a)}return null}_findMousePosition(e,t){const i=this._getPositionOutsideEditor(e);if(i)return i;const s=this._createMouseTarget(e,t);if(!s.position)return null;if(s.type===8||s.type===5){const r=this._helpPositionJumpOverViewZone(s.detail);if(r)return dr.createViewZone(s.type,s.element,s.mouseColumn,r,s.detail)}return s}_helpPositionJumpOverViewZone(e){const t=new ee(this._currentSelection.selectionStartLineNumber,this._currentSelection.selectionStartColumn),i=e.positionBefore,s=e.positionAfter;return i&&s?i.isBefore(t)?i:s:null}_dispatchMouse(e,t,i){e.position&&this._viewController.dispatchMouse({position:e.position,mouseColumn:e.mouseColumn,startedOnLineNumbers:this._mouseState.startedOnLineNumbers,revealType:i,inSelectionMode:t,mouseDownCount:this._mouseState.count,altKey:this._mouseState.altKey,ctrlKey:this._mouseState.ctrlKey,metaKey:this._mouseState.metaKey,shiftKey:this._mouseState.shiftKey,leftButton:this._mouseState.leftButton,middleButton:this._mouseState.middleButton,onInjectedText:e.type===6&&e.detail.injectedText!==null})}}class C3e extends ne{constructor(e,t,i,s){super(),this._context=e,this._viewHelper=t,this._mouseTargetFactory=i,this._dispatchMouse=s,this._operation=null}dispose(){super.dispose(),this.stop()}start(e,t){this._operation?this._operation.setPosition(e,t):this._operation=new w3e(this._context,this._viewHelper,this._mouseTargetFactory,this._dispatchMouse,e,t)}stop(){this._operation&&(this._operation.dispose(),this._operation=null)}}class w3e extends ne{constructor(e,t,i,s,o,r){super(),this._context=e,this._viewHelper=t,this._mouseTargetFactory=i,this._dispatchMouse=s,this._position=o,this._mouseEvent=r,this._lastTime=Date.now(),this._animationFrameDisposable=Oa(gt(r.browserEvent),()=>this._execute())}dispose(){this._animationFrameDisposable.dispose(),super.dispose()}setPosition(e,t){this._position=e,this._mouseEvent=t}_tick(){const e=Date.now(),t=e-this._lastTime;return this._lastTime=e,t}_getScrollSpeed(){const e=this._context.configuration.options.get(67),t=this._context.configuration.options.get(145).height/e,i=this._position.outsideDistance/e;return i<=1.5?Math.max(30,t*(1+i)):i<=3?Math.max(60,t*(2+i)):Math.max(200,t*(7+i))}_execute(){const e=this._context.configuration.options.get(67),t=this._getScrollSpeed(),i=this._tick(),s=t*(i/1e3)*e,o=this._position.outsidePosition===\"above\"?-s:s;this._context.viewModel.viewLayout.deltaScrollNow(0,o),this._viewHelper.renderNow();const r=this._context.viewLayout.getLinesViewportData(),a=this._position.outsidePosition===\"above\"?r.startLineNumber:r.endLineNumber;let l;{const c=Tz(this._viewHelper.viewDomNode),d=this._context.configuration.options.get(145).horizontalScrollbarHeight,u=new AM(this._mouseEvent.pos.x,c.y+c.height-d-.1),h=Nz(this._viewHelper.viewDomNode,c,u);l=this._mouseTargetFactory.createMouseTarget(this._viewHelper.getLastRenderData(),c,u,h,null)}(!l.position||l.position.lineNumber!==a)&&(this._position.outsidePosition===\"above\"?l=dr.createOutsideEditor(this._position.mouseColumn,new ee(a,1),\"above\",this._position.outsideDistance):l=dr.createOutsideEditor(this._position.mouseColumn,new ee(a,this._context.viewModel.getLineMaxColumn(a)),\"below\",this._position.outsideDistance)),this._dispatchMouse(l,!0,2),this._animationFrameDisposable=Oa(gt(l.element),()=>this._execute())}}class PM{get altKey(){return this._altKey}get ctrlKey(){return this._ctrlKey}get metaKey(){return this._metaKey}get shiftKey(){return this._shiftKey}get leftButton(){return this._leftButton}get middleButton(){return this._middleButton}get startedOnLineNumbers(){return this._startedOnLineNumbers}constructor(){this._altKey=!1,this._ctrlKey=!1,this._metaKey=!1,this._shiftKey=!1,this._leftButton=!1,this._middleButton=!1,this._startedOnLineNumbers=!1,this._lastMouseDownPosition=null,this._lastMouseDownPositionEqualCount=0,this._lastMouseDownCount=0,this._lastSetMouseDownCountTime=0,this.isDragAndDrop=!1}get count(){return this._lastMouseDownCount}setModifiers(e){this._altKey=e.altKey,this._ctrlKey=e.ctrlKey,this._metaKey=e.metaKey,this._shiftKey=e.shiftKey}setStartButtons(e){this._leftButton=e.leftButton,this._middleButton=e.middleButton}setStartedOnLineNumbers(e){this._startedOnLineNumbers=e}trySetCount(e,t){const i=new Date().getTime();i-this._lastSetMouseDownCountTime>PM.CLEAR_MOUSE_DOWN_COUNT_TIME&&(e=1),this._lastSetMouseDownCountTime=i,e>this._lastMouseDownCount+1&&(e=this._lastMouseDownCount+1),this._lastMouseDownPosition&&this._lastMouseDownPosition.equals(t)?this._lastMouseDownPositionEqualCount++:this._lastMouseDownPositionEqualCount=1,this._lastMouseDownPosition=t,this._lastMouseDownCount=Math.min(e,this._lastMouseDownPositionEqualCount)}}PM.CLEAR_MOUSE_DOWN_COUNT_TIME=400;class ei{get event(){return this.emitter.event}constructor(e,t,i){const s=o=>this.emitter.fire(o);this.emitter=new X({onWillAddFirstListener:()=>e.addEventListener(t,s,i),onDidRemoveLastListener:()=>e.removeEventListener(t,s,i)})}dispose(){this.emitter.dispose()}}class mo{constructor(e,t,i,s,o){this.value=e,this.selectionStart=t,this.selectionEnd=i,this.selection=s,this.newlineCountBeforeSelection=o}toString(){return`[ <${this.value}>, selectionStart: ${this.selectionStart}, selectionEnd: ${this.selectionEnd}]`}static readFromTextArea(e,t){const i=e.getValue(),s=e.getSelectionStart(),o=e.getSelectionEnd();let r;if(t){const a=i.substring(0,s),l=t.value.substring(0,t.selectionStart);a===l&&(r=t.newlineCountBeforeSelection)}return new mo(i,s,o,null,r)}collapseSelection(){return this.selectionStart===this.value.length?this:new mo(this.value,this.value.length,this.value.length,null,void 0)}writeToTextArea(e,t,i){t.setValue(e,this.value),i&&t.setSelectionRange(e,this.selectionStart,this.selectionEnd)}deduceEditorPosition(e){var t,i,s,o,r,a,l,c;if(e<=this.selectionStart){const h=this.value.substring(e,this.selectionStart);return this._finishDeduceEditorPosition((i=(t=this.selection)===null||t===void 0?void 0:t.getStartPosition())!==null&&i!==void 0?i:null,h,-1)}if(e>=this.selectionEnd){const h=this.value.substring(this.selectionEnd,e);return this._finishDeduceEditorPosition((o=(s=this.selection)===null||s===void 0?void 0:s.getEndPosition())!==null&&o!==void 0?o:null,h,1)}const d=this.value.substring(this.selectionStart,e);if(d.indexOf(\"…\")===-1)return this._finishDeduceEditorPosition((a=(r=this.selection)===null||r===void 0?void 0:r.getStartPosition())!==null&&a!==void 0?a:null,d,1);const u=this.value.substring(e,this.selectionEnd);return this._finishDeduceEditorPosition((c=(l=this.selection)===null||l===void 0?void 0:l.getEndPosition())!==null&&c!==void 0?c:null,u,-1)}_finishDeduceEditorPosition(e,t,i){let s=0,o=-1;for(;(o=t.indexOf(`\n`,o+1))!==-1;)s++;return[e,i*t.length,s]}static deduceInput(e,t,i){if(!e)return{text:\"\",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};const s=Math.min(Rm(e.value,t.value),e.selectionStart,t.selectionStart),o=Math.min(M2(e.value,t.value),e.value.length-e.selectionEnd,t.value.length-t.selectionEnd);e.value.substring(s,e.value.length-o);const r=t.value.substring(s,t.value.length-o),a=e.selectionStart-s,l=e.selectionEnd-s,c=t.selectionStart-s,d=t.selectionEnd-s;if(c===d){const h=e.selectionStart-s;return{text:r,replacePrevCharCnt:h,replaceNextCharCnt:0,positionDelta:0}}const u=l-a;return{text:r,replacePrevCharCnt:u,replaceNextCharCnt:0,positionDelta:0}}static deduceAndroidCompositionInput(e,t){if(!e)return{text:\"\",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};if(e.value===t.value)return{text:\"\",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:t.selectionEnd-e.selectionEnd};const i=Math.min(Rm(e.value,t.value),e.selectionEnd),s=Math.min(M2(e.value,t.value),e.value.length-e.selectionEnd),o=e.value.substring(i,e.value.length-s),r=t.value.substring(i,t.value.length-s);e.selectionStart-i;const a=e.selectionEnd-i;t.selectionStart-i;const l=t.selectionEnd-i;return{text:r,replacePrevCharCnt:a,replaceNextCharCnt:o.length-a,positionDelta:l-r.length}}}mo.EMPTY=new mo(\"\",0,0,null,void 0);class x1{static _getPageOfLine(e,t){return Math.floor((e-1)/t)}static _getRangeForPage(e,t){const i=e*t,s=i+1,o=i+t;return new A(s,1,o+1,1)}static fromEditorSelection(e,t,i,s){const r=x1._getPageOfLine(t.startLineNumber,i),a=x1._getRangeForPage(r,i),l=x1._getPageOfLine(t.endLineNumber,i),c=x1._getRangeForPage(l,i);let d=a.intersectRanges(new A(1,1,t.startLineNumber,t.startColumn));if(s&&e.getValueLengthInRange(d,1)>500){const b=e.modifyPosition(d.getEndPosition(),-500);d=A.fromPositions(b,d.getEndPosition())}const u=e.getValueInRange(d,1),h=e.getLineCount(),f=e.getLineMaxColumn(h);let g=c.intersectRanges(new A(t.endLineNumber,t.endColumn,h,f));if(s&&e.getValueLengthInRange(g,1)>500){const b=e.modifyPosition(g.getStartPosition(),500);g=A.fromPositions(g.getStartPosition(),b)}const p=e.getValueInRange(g,1);let _;if(r===l||r+1===l)_=e.getValueInRange(t,1);else{const b=a.intersectRanges(t),w=c.intersectRanges(t);_=e.getValueInRange(b,1)+\"…\"+e.getValueInRange(w,1)}return s&&_.length>2*500&&(_=_.substring(0,500)+\"…\"+_.substring(_.length-500,_.length)),new mo(u+_+p,u.length,u.length+_.length,t,d.endLineNumber-d.startLineNumber)}}var y3e=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},HX=function(n,e){return function(t,i){e(t,i,n)}},eA;(function(n){n.Tap=\"-monaco-textarea-synthetic-tap\"})(eA||(eA={}));const NB={forceCopyWithSyntaxHighlighting:!1};class EL{constructor(){this._lastState=null}set(e,t){this._lastState={lastCopiedValue:e,data:t}}get(e){return this._lastState&&this._lastState.lastCopiedValue===e?this._lastState.data:(this._lastState=null,null)}}EL.INSTANCE=new EL;class S3e{constructor(){this._lastTypeTextLength=0}handleCompositionUpdate(e){e=e||\"\";const t={text:e,replacePrevCharCnt:this._lastTypeTextLength,replaceNextCharCnt:0,positionDelta:0};return this._lastTypeTextLength=e.length,t}}let AB=class extends ne{get textAreaState(){return this._textAreaState}constructor(e,t,i,s,o,r){super(),this._host=e,this._textArea=t,this._OS=i,this._browser=s,this._accessibilityService=o,this._logService=r,this._onFocus=this._register(new X),this.onFocus=this._onFocus.event,this._onBlur=this._register(new X),this.onBlur=this._onBlur.event,this._onKeyDown=this._register(new X),this.onKeyDown=this._onKeyDown.event,this._onKeyUp=this._register(new X),this.onKeyUp=this._onKeyUp.event,this._onCut=this._register(new X),this.onCut=this._onCut.event,this._onPaste=this._register(new X),this.onPaste=this._onPaste.event,this._onType=this._register(new X),this.onType=this._onType.event,this._onCompositionStart=this._register(new X),this.onCompositionStart=this._onCompositionStart.event,this._onCompositionUpdate=this._register(new X),this.onCompositionUpdate=this._onCompositionUpdate.event,this._onCompositionEnd=this._register(new X),this.onCompositionEnd=this._onCompositionEnd.event,this._onSelectionChangeRequest=this._register(new X),this.onSelectionChangeRequest=this._onSelectionChangeRequest.event,this._asyncFocusGainWriteScreenReaderContent=this._register(new Qs),this._asyncTriggerCut=this._register(new Xi(()=>this._onCut.fire(),0)),this._textAreaState=mo.EMPTY,this._selectionChangeListener=null,this._accessibilityService.isScreenReaderOptimized()&&this.writeNativeTextAreaContent(\"ctor\"),this._register(Ae.runAndSubscribe(this._accessibilityService.onDidChangeScreenReaderOptimized,()=>{this._accessibilityService.isScreenReaderOptimized()&&!this._asyncFocusGainWriteScreenReaderContent.value?this._asyncFocusGainWriteScreenReaderContent.value=this._register(new Xi(()=>this.writeNativeTextAreaContent(\"asyncFocusGain\"),0)):this._asyncFocusGainWriteScreenReaderContent.clear()})),this._hasFocus=!1,this._currentComposition=null;let a=null;this._register(this._textArea.onKeyDown(l=>{const c=new ln(l);(c.keyCode===114||this._currentComposition&&c.keyCode===1)&&c.stopPropagation(),c.equals(9)&&c.preventDefault(),a=c,this._onKeyDown.fire(c)})),this._register(this._textArea.onKeyUp(l=>{const c=new ln(l);this._onKeyUp.fire(c)})),this._register(this._textArea.onCompositionStart(l=>{const c=new S3e;if(this._currentComposition){this._currentComposition=c;return}if(this._currentComposition=c,this._OS===2&&a&&a.equals(114)&&this._textAreaState.selectionStart===this._textAreaState.selectionEnd&&this._textAreaState.selectionStart>0&&this._textAreaState.value.substr(this._textAreaState.selectionStart-1,1)===l.data&&(a.code===\"ArrowRight\"||a.code===\"ArrowLeft\")){c.handleCompositionUpdate(\"x\"),this._onCompositionStart.fire({data:l.data});return}if(this._browser.isAndroid){this._onCompositionStart.fire({data:l.data});return}this._onCompositionStart.fire({data:l.data})})),this._register(this._textArea.onCompositionUpdate(l=>{const c=this._currentComposition;if(!c)return;if(this._browser.isAndroid){const u=mo.readFromTextArea(this._textArea,this._textAreaState),h=mo.deduceAndroidCompositionInput(this._textAreaState,u);this._textAreaState=u,this._onType.fire(h),this._onCompositionUpdate.fire(l);return}const d=c.handleCompositionUpdate(l.data);this._textAreaState=mo.readFromTextArea(this._textArea,this._textAreaState),this._onType.fire(d),this._onCompositionUpdate.fire(l)})),this._register(this._textArea.onCompositionEnd(l=>{const c=this._currentComposition;if(!c)return;if(this._currentComposition=null,this._browser.isAndroid){const u=mo.readFromTextArea(this._textArea,this._textAreaState),h=mo.deduceAndroidCompositionInput(this._textAreaState,u);this._textAreaState=u,this._onType.fire(h),this._onCompositionEnd.fire();return}const d=c.handleCompositionUpdate(l.data);this._textAreaState=mo.readFromTextArea(this._textArea,this._textAreaState),this._onType.fire(d),this._onCompositionEnd.fire()})),this._register(this._textArea.onInput(l=>{if(this._textArea.setIgnoreSelectionChangeTime(\"received input event\"),this._currentComposition)return;const c=mo.readFromTextArea(this._textArea,this._textAreaState),d=mo.deduceInput(this._textAreaState,c,this._OS===2);d.replacePrevCharCnt===0&&d.text.length===1&&(Gs(d.text.charCodeAt(0))||d.text.charCodeAt(0)===127)||(this._textAreaState=c,(d.text!==\"\"||d.replacePrevCharCnt!==0||d.replaceNextCharCnt!==0||d.positionDelta!==0)&&this._onType.fire(d))})),this._register(this._textArea.onCut(l=>{this._textArea.setIgnoreSelectionChangeTime(\"received cut event\"),this._ensureClipboardGetsEditorSelection(l),this._asyncTriggerCut.schedule()})),this._register(this._textArea.onCopy(l=>{this._ensureClipboardGetsEditorSelection(l)})),this._register(this._textArea.onPaste(l=>{if(this._textArea.setIgnoreSelectionChangeTime(\"received paste event\"),l.preventDefault(),!l.clipboardData)return;let[c,d]=RB.getTextData(l.clipboardData);c&&(d=d||EL.INSTANCE.get(c),this._onPaste.fire({text:c,metadata:d}))})),this._register(this._textArea.onFocus(()=>{const l=this._hasFocus;this._setHasFocus(!0),this._accessibilityService.isScreenReaderOptimized()&&this._browser.isSafari&&!l&&this._hasFocus&&(this._asyncFocusGainWriteScreenReaderContent.value||(this._asyncFocusGainWriteScreenReaderContent.value=new Xi(()=>this.writeNativeTextAreaContent(\"asyncFocusGain\"),0)),this._asyncFocusGainWriteScreenReaderContent.value.schedule())})),this._register(this._textArea.onBlur(()=>{this._currentComposition&&(this._currentComposition=null,this.writeNativeTextAreaContent(\"blurWithoutCompositionEnd\"),this._onCompositionEnd.fire()),this._setHasFocus(!1)})),this._register(this._textArea.onSyntheticTap(()=>{this._browser.isAndroid&&this._currentComposition&&(this._currentComposition=null,this.writeNativeTextAreaContent(\"tapWithoutCompositionEnd\"),this._onCompositionEnd.fire())}))}_installSelectionChangeListener(){let e=0;return ce(this._textArea.ownerDocument,\"selectionchange\",t=>{if(Up.onSelectionChange(),!this._hasFocus||this._currentComposition||!this._browser.isChrome)return;const i=Date.now(),s=i-e;if(e=i,s<5)return;const o=i-this._textArea.getIgnoreSelectionChangeTime();if(this._textArea.resetSelectionChangeTime(),o<100||!this._textAreaState.selection)return;const r=this._textArea.getValue();if(this._textAreaState.value!==r)return;const a=this._textArea.getSelectionStart(),l=this._textArea.getSelectionEnd();if(this._textAreaState.selectionStart===a&&this._textAreaState.selectionEnd===l)return;const c=this._textAreaState.deduceEditorPosition(a),d=this._host.deduceModelPosition(c[0],c[1],c[2]),u=this._textAreaState.deduceEditorPosition(l),h=this._host.deduceModelPosition(u[0],u[1],u[2]),f=new it(d.lineNumber,d.column,h.lineNumber,h.column);this._onSelectionChangeRequest.fire(f)})}dispose(){super.dispose(),this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null)}focusTextArea(){this._setHasFocus(!0),this.refreshFocusState()}isFocused(){return this._hasFocus}refreshFocusState(){this._setHasFocus(this._textArea.hasFocus())}_setHasFocus(e){this._hasFocus!==e&&(this._hasFocus=e,this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null),this._hasFocus&&(this._selectionChangeListener=this._installSelectionChangeListener()),this._hasFocus&&this.writeNativeTextAreaContent(\"focusgain\"),this._hasFocus?this._onFocus.fire():this._onBlur.fire())}_setAndWriteTextAreaState(e,t){this._hasFocus||(t=t.collapseSelection()),t.writeToTextArea(e,this._textArea,this._hasFocus),this._textAreaState=t}writeNativeTextAreaContent(e){!this._accessibilityService.isScreenReaderOptimized()&&e===\"render\"||this._currentComposition||(this._logService.trace(`writeTextAreaState(reason: ${e})`),this._setAndWriteTextAreaState(e,this._host.getScreenReaderContent()))}_ensureClipboardGetsEditorSelection(e){const t=this._host.getDataToCopy(),i={version:1,isFromEmptySelection:t.isFromEmptySelection,multicursorText:t.multicursorText,mode:t.mode};EL.INSTANCE.set(this._browser.isFirefox?t.text.replace(/\\r\\n/g,`\n`):t.text,i),e.preventDefault(),e.clipboardData&&RB.setTextData(e.clipboardData,t.text,t.html,i)}};AB=y3e([HX(4,Ha),HX(5,er)],AB);const RB={getTextData(n){const e=n.getData(ss.text);let t=null;const i=n.getData(\"vscode-editor-data\");if(typeof i==\"string\")try{t=JSON.parse(i),t.version!==1&&(t=null)}catch{}return e.length===0&&t===null&&n.files.length>0?[Array.prototype.slice.call(n.files,0).map(o=>o.name).join(`\n`),null]:[e,t]},setTextData(n,e,t,i){n.setData(ss.text,e),typeof t==\"string\"&&n.setData(\"text/html\",t),n.setData(\"vscode-editor-data\",JSON.stringify(i))}};class x3e extends ne{get ownerDocument(){return this._actual.ownerDocument}constructor(e){super(),this._actual=e,this.onKeyDown=this._register(new ei(this._actual,\"keydown\")).event,this.onKeyUp=this._register(new ei(this._actual,\"keyup\")).event,this.onCompositionStart=this._register(new ei(this._actual,\"compositionstart\")).event,this.onCompositionUpdate=this._register(new ei(this._actual,\"compositionupdate\")).event,this.onCompositionEnd=this._register(new ei(this._actual,\"compositionend\")).event,this.onBeforeInput=this._register(new ei(this._actual,\"beforeinput\")).event,this.onInput=this._register(new ei(this._actual,\"input\")).event,this.onCut=this._register(new ei(this._actual,\"cut\")).event,this.onCopy=this._register(new ei(this._actual,\"copy\")).event,this.onPaste=this._register(new ei(this._actual,\"paste\")).event,this.onFocus=this._register(new ei(this._actual,\"focus\")).event,this.onBlur=this._register(new ei(this._actual,\"blur\")).event,this._onSyntheticTap=this._register(new X),this.onSyntheticTap=this._onSyntheticTap.event,this._ignoreSelectionChangeTime=0,this._register(this.onKeyDown(()=>Up.onKeyDown())),this._register(this.onBeforeInput(()=>Up.onBeforeInput())),this._register(this.onInput(()=>Up.onInput())),this._register(this.onKeyUp(()=>Up.onKeyUp())),this._register(ce(this._actual,eA.Tap,()=>this._onSyntheticTap.fire()))}hasFocus(){const e=h0(this._actual);return e?e.activeElement===this._actual:this._actual.isConnected?Ao()===this._actual:!1}setIgnoreSelectionChangeTime(e){this._ignoreSelectionChangeTime=Date.now()}getIgnoreSelectionChangeTime(){return this._ignoreSelectionChangeTime}resetSelectionChangeTime(){this._ignoreSelectionChangeTime=0}getValue(){return this._actual.value}setValue(e,t){const i=this._actual;i.value!==t&&(this.setIgnoreSelectionChangeTime(\"setValue\"),i.value=t)}getSelectionStart(){return this._actual.selectionDirection===\"backward\"?this._actual.selectionEnd:this._actual.selectionStart}getSelectionEnd(){return this._actual.selectionDirection===\"backward\"?this._actual.selectionStart:this._actual.selectionEnd}setSelectionRange(e,t,i){const s=this._actual;let o=null;const r=h0(s);r?o=r.activeElement:o=Ao();const a=gt(o),l=o===s,c=s.selectionStart,d=s.selectionEnd;if(l&&c===t&&d===i){lc&&a.parent!==a&&s.focus();return}if(l){this.setIgnoreSelectionChangeTime(\"setSelectionRange\"),s.setSelectionRange(t,i),lc&&a.parent!==a&&s.focus();return}try{const u=NMe(s);this.setIgnoreSelectionChangeTime(\"setSelectionRange\"),s.focus(),s.setSelectionRange(t,i),AMe(s,u)}catch{}}}class L3e extends Mz{constructor(e,t,i){super(e,t,i),this._register(hn.addTarget(this.viewHelper.linesContentDomNode)),this._register(ce(this.viewHelper.linesContentDomNode,fn.Tap,o=>this.onTap(o))),this._register(ce(this.viewHelper.linesContentDomNode,fn.Change,o=>this.onChange(o))),this._register(ce(this.viewHelper.linesContentDomNode,fn.Contextmenu,o=>this._onContextMenu(new Wm(o,!1,this.viewHelper.viewDomNode),!1))),this._lastPointerType=\"mouse\",this._register(ce(this.viewHelper.linesContentDomNode,\"pointerdown\",o=>{const r=o.pointerType;if(r===\"mouse\"){this._lastPointerType=\"mouse\";return}else r===\"touch\"?this._lastPointerType=\"touch\":this._lastPointerType=\"pen\"}));const s=new U5e(this.viewHelper.viewDomNode);this._register(s.onPointerMove(this.viewHelper.viewDomNode,o=>this._onMouseMove(o))),this._register(s.onPointerUp(this.viewHelper.viewDomNode,o=>this._onMouseUp(o))),this._register(s.onPointerLeave(this.viewHelper.viewDomNode,o=>this._onMouseLeave(o))),this._register(s.onPointerDown(this.viewHelper.viewDomNode,(o,r)=>this._onMouseDown(o,r)))}onTap(e){!e.initialTarget||!this.viewHelper.linesContentDomNode.contains(e.initialTarget)||(e.preventDefault(),this.viewHelper.focusTextArea(),this._dispatchGesture(e,!1))}onChange(e){this._lastPointerType===\"touch\"&&this._context.viewModel.viewLayout.deltaScrollNow(-e.translationX,-e.translationY),this._lastPointerType===\"pen\"&&this._dispatchGesture(e,!0)}_dispatchGesture(e,t){const i=this._createMouseTarget(new Wm(e,!1,this.viewHelper.viewDomNode),!1);i.position&&this.viewController.dispatchMouse({position:i.position,mouseColumn:i.position.column,startedOnLineNumbers:!1,revealType:1,mouseDownCount:e.tapCount,inSelectionMode:t,altKey:!1,ctrlKey:!1,metaKey:!1,shiftKey:!1,leftButton:!1,middleButton:!1,onInjectedText:i.type===6&&i.detail.injectedText!==null})}_onMouseDown(e,t){e.browserEvent.pointerType!==\"touch\"&&super._onMouseDown(e,t)}}class k3e extends Mz{constructor(e,t,i){super(e,t,i),this._register(hn.addTarget(this.viewHelper.linesContentDomNode)),this._register(ce(this.viewHelper.linesContentDomNode,fn.Tap,s=>this.onTap(s))),this._register(ce(this.viewHelper.linesContentDomNode,fn.Change,s=>this.onChange(s))),this._register(ce(this.viewHelper.linesContentDomNode,fn.Contextmenu,s=>this._onContextMenu(new Wm(s,!1,this.viewHelper.viewDomNode),!1)))}onTap(e){e.preventDefault(),this.viewHelper.focusTextArea();const t=this._createMouseTarget(new Wm(e,!1,this.viewHelper.viewDomNode),!1);if(t.position){const i=document.createEvent(\"CustomEvent\");i.initEvent(eA.Tap,!1,!0),this.viewHelper.dispatchTextAreaEvent(i),this.viewController.moveTo(t.position,1)}}onChange(e){this._context.viewModel.viewLayout.deltaScrollNow(-e.translationX,-e.translationY)}}class D3e extends ne{constructor(e,t,i){super(),(iu||k2e&&qre)&&XV.pointerEvents?this.handler=this._register(new L3e(e,t,i)):Ji.TouchEvent?this.handler=this._register(new k3e(e,t,i)):this.handler=this._register(new Mz(e,t,i))}getTargetAtClientPoint(e,t){return this.handler.getTargetAtClientPoint(e,t)}}class X0 extends CD{}const js=Jt(\"themeService\");function Yn(n){return{id:n}}function MB(n){switch(n){case Jl.DARK:return\"vs-dark\";case Jl.HIGH_CONTRAST_DARK:return\"hc-black\";case Jl.HIGH_CONTRAST_LIGHT:return\"hc-light\";default:return\"vs\"}}const ice={ThemingContribution:\"base.contributions.theming\"};class I3e{constructor(){this.themingParticipants=[],this.themingParticipants=[],this.onThemingParticipantAddedEmitter=new X}onColorThemeChange(e){return this.themingParticipants.push(e),this.onThemingParticipantAddedEmitter.fire(e),dt(()=>{const t=this.themingParticipants.indexOf(e);this.themingParticipants.splice(t,1)})}getThemingParticipants(){return this.themingParticipants}}const nce=new I3e;Un.add(ice.ThemingContribution,nce);function mc(n){return nce.onColorThemeChange(n)}class E3e extends ne{constructor(e){super(),this.themeService=e,this.theme=e.getColorTheme(),this._register(this.themeService.onDidColorThemeChange(t=>this.onThemeChange(t)))}onThemeChange(e){this.theme=e,this.updateStyles()}updateStyles(){}}const sce=V(\"editor.lineHighlightBackground\",{dark:null,light:null,hcDark:null,hcLight:null},v(\"lineHighlight\",\"Background color for the highlight of line at the cursor position.\")),VX=V(\"editor.lineHighlightBorder\",{dark:\"#282828\",light:\"#eeeeee\",hcDark:\"#f38518\",hcLight:ti},v(\"lineHighlightBorderBox\",\"Background color for the border around the line at the cursor position.\"));V(\"editor.rangeHighlightBackground\",{dark:\"#ffffff0b\",light:\"#fdff0033\",hcDark:null,hcLight:null},v(\"rangeHighlight\",\"Background color of highlighted ranges, like by quick open and find features. The color must not be opaque so as not to hide underlying decorations.\"),!0);V(\"editor.rangeHighlightBorder\",{dark:null,light:null,hcDark:En,hcLight:En},v(\"rangeHighlightBorder\",\"Background color of the border around highlighted ranges.\"));V(\"editor.symbolHighlightBackground\",{dark:Jf,light:Jf,hcDark:null,hcLight:null},v(\"symbolHighlight\",\"Background color of highlighted symbol, like for go to definition or go next/previous symbol. The color must not be opaque so as not to hide underlying decorations.\"),!0);V(\"editor.symbolHighlightBorder\",{dark:null,light:null,hcDark:En,hcLight:En},v(\"symbolHighlightBorder\",\"Background color of the border around highlighted symbols.\"));const uh=V(\"editorCursor.foreground\",{dark:\"#AEAFAD\",light:le.black,hcDark:le.white,hcLight:\"#0F4A85\"},v(\"caret\",\"Color of the editor cursor.\")),og=V(\"editorCursor.background\",null,v(\"editorCursorBackground\",\"The background color of the editor cursor. Allows customizing the color of a character overlapped by a block cursor.\")),oce=V(\"editorMultiCursor.primary.foreground\",{dark:uh,light:uh,hcDark:uh,hcLight:uh},v(\"editorMultiCursorPrimaryForeground\",\"Color of the primary editor cursor when multiple cursors are present.\")),T3e=V(\"editorMultiCursor.primary.background\",{dark:og,light:og,hcDark:og,hcLight:og},v(\"editorMultiCursorPrimaryBackground\",\"The background color of the primary editor cursor when multiple cursors are present. Allows customizing the color of a character overlapped by a block cursor.\")),rce=V(\"editorMultiCursor.secondary.foreground\",{dark:uh,light:uh,hcDark:uh,hcLight:uh},v(\"editorMultiCursorSecondaryForeground\",\"Color of secondary editor cursors when multiple cursors are present.\")),N3e=V(\"editorMultiCursor.secondary.background\",{dark:og,light:og,hcDark:og,hcLight:og},v(\"editorMultiCursorSecondaryBackground\",\"The background color of secondary editor cursors when multiple cursors are present. Allows customizing the color of a character overlapped by a block cursor.\")),rg=V(\"editorWhitespace.foreground\",{dark:\"#e3e4e229\",light:\"#33333333\",hcDark:\"#e3e4e229\",hcLight:\"#CCCCCC\"},v(\"editorWhitespaces\",\"Color of whitespace characters in the editor.\")),A3e=V(\"editorLineNumber.foreground\",{dark:\"#858585\",light:\"#237893\",hcDark:le.white,hcLight:\"#292929\"},v(\"editorLineNumbers\",\"Color of editor line numbers.\")),PE=V(\"editorIndentGuide.background\",{dark:rg,light:rg,hcDark:rg,hcLight:rg},v(\"editorIndentGuides\",\"Color of the editor indentation guides.\"),!1,v(\"deprecatedEditorIndentGuides\",\"'editorIndentGuide.background' is deprecated. Use 'editorIndentGuide.background1' instead.\")),OE=V(\"editorIndentGuide.activeBackground\",{dark:rg,light:rg,hcDark:rg,hcLight:rg},v(\"editorActiveIndentGuide\",\"Color of the active editor indentation guides.\"),!1,v(\"deprecatedEditorActiveIndentGuide\",\"'editorIndentGuide.activeBackground' is deprecated. Use 'editorIndentGuide.activeBackground1' instead.\")),yD=V(\"editorIndentGuide.background1\",{dark:PE,light:PE,hcDark:PE,hcLight:PE},v(\"editorIndentGuides1\",\"Color of the editor indentation guides (1).\")),R3e=V(\"editorIndentGuide.background2\",{dark:\"#00000000\",light:\"#00000000\",hcDark:\"#00000000\",hcLight:\"#00000000\"},v(\"editorIndentGuides2\",\"Color of the editor indentation guides (2).\")),M3e=V(\"editorIndentGuide.background3\",{dark:\"#00000000\",light:\"#00000000\",hcDark:\"#00000000\",hcLight:\"#00000000\"},v(\"editorIndentGuides3\",\"Color of the editor indentation guides (3).\")),P3e=V(\"editorIndentGuide.background4\",{dark:\"#00000000\",light:\"#00000000\",hcDark:\"#00000000\",hcLight:\"#00000000\"},v(\"editorIndentGuides4\",\"Color of the editor indentation guides (4).\")),O3e=V(\"editorIndentGuide.background5\",{dark:\"#00000000\",light:\"#00000000\",hcDark:\"#00000000\",hcLight:\"#00000000\"},v(\"editorIndentGuides5\",\"Color of the editor indentation guides (5).\")),F3e=V(\"editorIndentGuide.background6\",{dark:\"#00000000\",light:\"#00000000\",hcDark:\"#00000000\",hcLight:\"#00000000\"},v(\"editorIndentGuides6\",\"Color of the editor indentation guides (6).\")),SD=V(\"editorIndentGuide.activeBackground1\",{dark:OE,light:OE,hcDark:OE,hcLight:OE},v(\"editorActiveIndentGuide1\",\"Color of the active editor indentation guides (1).\")),B3e=V(\"editorIndentGuide.activeBackground2\",{dark:\"#00000000\",light:\"#00000000\",hcDark:\"#00000000\",hcLight:\"#00000000\"},v(\"editorActiveIndentGuide2\",\"Color of the active editor indentation guides (2).\")),W3e=V(\"editorIndentGuide.activeBackground3\",{dark:\"#00000000\",light:\"#00000000\",hcDark:\"#00000000\",hcLight:\"#00000000\"},v(\"editorActiveIndentGuide3\",\"Color of the active editor indentation guides (3).\")),H3e=V(\"editorIndentGuide.activeBackground4\",{dark:\"#00000000\",light:\"#00000000\",hcDark:\"#00000000\",hcLight:\"#00000000\"},v(\"editorActiveIndentGuide4\",\"Color of the active editor indentation guides (4).\")),V3e=V(\"editorIndentGuide.activeBackground5\",{dark:\"#00000000\",light:\"#00000000\",hcDark:\"#00000000\",hcLight:\"#00000000\"},v(\"editorActiveIndentGuide5\",\"Color of the active editor indentation guides (5).\")),z3e=V(\"editorIndentGuide.activeBackground6\",{dark:\"#00000000\",light:\"#00000000\",hcDark:\"#00000000\",hcLight:\"#00000000\"},v(\"editorActiveIndentGuide6\",\"Color of the active editor indentation guides (6).\")),FE=V(\"editorActiveLineNumber.foreground\",{dark:\"#c6c6c6\",light:\"#0B216F\",hcDark:En,hcLight:En},v(\"editorActiveLineNumber\",\"Color of editor active line number\"),!1,v(\"deprecatedEditorActiveLineNumber\",\"Id is deprecated. Use 'editorLineNumber.activeForeground' instead.\"));V(\"editorLineNumber.activeForeground\",{dark:FE,light:FE,hcDark:FE,hcLight:FE},v(\"editorActiveLineNumber\",\"Color of editor active line number\"));const $3e=V(\"editorLineNumber.dimmedForeground\",{dark:null,light:null,hcDark:null,hcLight:null},v(\"editorDimmedLineNumber\",\"Color of the final editor line when editor.renderFinalNewline is set to dimmed.\"));V(\"editorRuler.foreground\",{dark:\"#5A5A5A\",light:le.lightgrey,hcDark:le.white,hcLight:\"#292929\"},v(\"editorRuler\",\"Color of the editor rulers.\"));V(\"editorCodeLens.foreground\",{dark:\"#999999\",light:\"#919191\",hcDark:\"#999999\",hcLight:\"#292929\"},v(\"editorCodeLensForeground\",\"Foreground color of editor CodeLens\"));V(\"editorBracketMatch.background\",{dark:\"#0064001a\",light:\"#0064001a\",hcDark:\"#0064001a\",hcLight:\"#0000\"},v(\"editorBracketMatchBackground\",\"Background color behind matching brackets\"));V(\"editorBracketMatch.border\",{dark:\"#888\",light:\"#B9B9B9\",hcDark:ti,hcLight:ti},v(\"editorBracketMatchBorder\",\"Color for matching brackets boxes\"));const U3e=V(\"editorOverviewRuler.border\",{dark:\"#7f7f7f4d\",light:\"#7f7f7f4d\",hcDark:\"#7f7f7f4d\",hcLight:\"#666666\"},v(\"editorOverviewRulerBorder\",\"Color of the overview ruler border.\")),j3e=V(\"editorOverviewRuler.background\",null,v(\"editorOverviewRulerBackground\",\"Background color of the editor overview ruler.\"));V(\"editorGutter.background\",{dark:Ys,light:Ys,hcDark:Ys,hcLight:Ys},v(\"editorGutter\",\"Background color of the editor gutter. The gutter contains the glyph margins and the line numbers.\"));V(\"editorUnnecessaryCode.border\",{dark:null,light:null,hcDark:le.fromHex(\"#fff\").transparent(.8),hcLight:ti},v(\"unnecessaryCodeBorder\",\"Border color of unnecessary (unused) source code in the editor.\"));const K3e=V(\"editorUnnecessaryCode.opacity\",{dark:le.fromHex(\"#000a\"),light:le.fromHex(\"#0007\"),hcDark:null,hcLight:null},v(\"unnecessaryCodeOpacity\",`Opacity of unnecessary (unused) source code in the editor. For example, \"#000000c0\" will render the code with 75% opacity. For high contrast themes, use the  'editorUnnecessaryCode.border' theme color to underline unnecessary code instead of fading it out.`));V(\"editorGhostText.border\",{dark:null,light:null,hcDark:le.fromHex(\"#fff\").transparent(.8),hcLight:le.fromHex(\"#292929\").transparent(.8)},v(\"editorGhostTextBorder\",\"Border color of ghost text in the editor.\"));V(\"editorGhostText.foreground\",{dark:le.fromHex(\"#ffffff56\"),light:le.fromHex(\"#0007\"),hcDark:null,hcLight:null},v(\"editorGhostTextForeground\",\"Foreground color of the ghost text in the editor.\"));V(\"editorGhostText.background\",{dark:null,light:null,hcDark:null,hcLight:null},v(\"editorGhostTextBackground\",\"Background color of the ghost text in the editor.\"));const BE=new le(new ci(0,122,204,.6)),ace=V(\"editorOverviewRuler.rangeHighlightForeground\",{dark:BE,light:BE,hcDark:BE,hcLight:BE},v(\"overviewRulerRangeHighlight\",\"Overview ruler marker color for range highlights. The color must not be opaque so as not to hide underlying decorations.\"),!0),q3e=V(\"editorOverviewRuler.errorForeground\",{dark:new le(new ci(255,18,18,.7)),light:new le(new ci(255,18,18,.7)),hcDark:new le(new ci(255,50,50,1)),hcLight:\"#B5200D\"},v(\"overviewRuleError\",\"Overview ruler marker color for errors.\")),G3e=V(\"editorOverviewRuler.warningForeground\",{dark:hr,light:hr,hcDark:LL,hcLight:LL},v(\"overviewRuleWarning\",\"Overview ruler marker color for warnings.\")),Z3e=V(\"editorOverviewRuler.infoForeground\",{dark:sa,light:sa,hcDark:kL,hcLight:kL},v(\"overviewRuleInfo\",\"Overview ruler marker color for infos.\")),lce=V(\"editorBracketHighlight.foreground1\",{dark:\"#FFD700\",light:\"#0431FAFF\",hcDark:\"#FFD700\",hcLight:\"#0431FAFF\"},v(\"editorBracketHighlightForeground1\",\"Foreground color of brackets (1). Requires enabling bracket pair colorization.\")),cce=V(\"editorBracketHighlight.foreground2\",{dark:\"#DA70D6\",light:\"#319331FF\",hcDark:\"#DA70D6\",hcLight:\"#319331FF\"},v(\"editorBracketHighlightForeground2\",\"Foreground color of brackets (2). Requires enabling bracket pair colorization.\")),dce=V(\"editorBracketHighlight.foreground3\",{dark:\"#179FFF\",light:\"#7B3814FF\",hcDark:\"#87CEFA\",hcLight:\"#7B3814FF\"},v(\"editorBracketHighlightForeground3\",\"Foreground color of brackets (3). Requires enabling bracket pair colorization.\")),uce=V(\"editorBracketHighlight.foreground4\",{dark:\"#00000000\",light:\"#00000000\",hcDark:\"#00000000\",hcLight:\"#00000000\"},v(\"editorBracketHighlightForeground4\",\"Foreground color of brackets (4). Requires enabling bracket pair colorization.\")),hce=V(\"editorBracketHighlight.foreground5\",{dark:\"#00000000\",light:\"#00000000\",hcDark:\"#00000000\",hcLight:\"#00000000\"},v(\"editorBracketHighlightForeground5\",\"Foreground color of brackets (5). Requires enabling bracket pair colorization.\")),fce=V(\"editorBracketHighlight.foreground6\",{dark:\"#00000000\",light:\"#00000000\",hcDark:\"#00000000\",hcLight:\"#00000000\"},v(\"editorBracketHighlightForeground6\",\"Foreground color of brackets (6). Requires enabling bracket pair colorization.\")),Y3e=V(\"editorBracketHighlight.unexpectedBracket.foreground\",{dark:new le(new ci(255,18,18,.8)),light:new le(new ci(255,18,18,.8)),hcDark:new le(new ci(255,50,50,1)),hcLight:\"\"},v(\"editorBracketHighlightUnexpectedBracketForeground\",\"Foreground color of unexpected brackets.\")),X3e=V(\"editorBracketPairGuide.background1\",{dark:\"#00000000\",light:\"#00000000\",hcDark:\"#00000000\",hcLight:\"#00000000\"},v(\"editorBracketPairGuide.background1\",\"Background color of inactive bracket pair guides (1). Requires enabling bracket pair guides.\")),Q3e=V(\"editorBracketPairGuide.background2\",{dark:\"#00000000\",light:\"#00000000\",hcDark:\"#00000000\",hcLight:\"#00000000\"},v(\"editorBracketPairGuide.background2\",\"Background color of inactive bracket pair guides (2). Requires enabling bracket pair guides.\")),J3e=V(\"editorBracketPairGuide.background3\",{dark:\"#00000000\",light:\"#00000000\",hcDark:\"#00000000\",hcLight:\"#00000000\"},v(\"editorBracketPairGuide.background3\",\"Background color of inactive bracket pair guides (3). Requires enabling bracket pair guides.\")),e8e=V(\"editorBracketPairGuide.background4\",{dark:\"#00000000\",light:\"#00000000\",hcDark:\"#00000000\",hcLight:\"#00000000\"},v(\"editorBracketPairGuide.background4\",\"Background color of inactive bracket pair guides (4). Requires enabling bracket pair guides.\")),t8e=V(\"editorBracketPairGuide.background5\",{dark:\"#00000000\",light:\"#00000000\",hcDark:\"#00000000\",hcLight:\"#00000000\"},v(\"editorBracketPairGuide.background5\",\"Background color of inactive bracket pair guides (5). Requires enabling bracket pair guides.\")),i8e=V(\"editorBracketPairGuide.background6\",{dark:\"#00000000\",light:\"#00000000\",hcDark:\"#00000000\",hcLight:\"#00000000\"},v(\"editorBracketPairGuide.background6\",\"Background color of inactive bracket pair guides (6). Requires enabling bracket pair guides.\")),n8e=V(\"editorBracketPairGuide.activeBackground1\",{dark:\"#00000000\",light:\"#00000000\",hcDark:\"#00000000\",hcLight:\"#00000000\"},v(\"editorBracketPairGuide.activeBackground1\",\"Background color of active bracket pair guides (1). Requires enabling bracket pair guides.\")),s8e=V(\"editorBracketPairGuide.activeBackground2\",{dark:\"#00000000\",light:\"#00000000\",hcDark:\"#00000000\",hcLight:\"#00000000\"},v(\"editorBracketPairGuide.activeBackground2\",\"Background color of active bracket pair guides (2). Requires enabling bracket pair guides.\")),o8e=V(\"editorBracketPairGuide.activeBackground3\",{dark:\"#00000000\",light:\"#00000000\",hcDark:\"#00000000\",hcLight:\"#00000000\"},v(\"editorBracketPairGuide.activeBackground3\",\"Background color of active bracket pair guides (3). Requires enabling bracket pair guides.\")),r8e=V(\"editorBracketPairGuide.activeBackground4\",{dark:\"#00000000\",light:\"#00000000\",hcDark:\"#00000000\",hcLight:\"#00000000\"},v(\"editorBracketPairGuide.activeBackground4\",\"Background color of active bracket pair guides (4). Requires enabling bracket pair guides.\")),a8e=V(\"editorBracketPairGuide.activeBackground5\",{dark:\"#00000000\",light:\"#00000000\",hcDark:\"#00000000\",hcLight:\"#00000000\"},v(\"editorBracketPairGuide.activeBackground5\",\"Background color of active bracket pair guides (5). Requires enabling bracket pair guides.\")),l8e=V(\"editorBracketPairGuide.activeBackground6\",{dark:\"#00000000\",light:\"#00000000\",hcDark:\"#00000000\",hcLight:\"#00000000\"},v(\"editorBracketPairGuide.activeBackground6\",\"Background color of active bracket pair guides (6). Requires enabling bracket pair guides.\"));V(\"editorUnicodeHighlight.border\",{dark:hr,light:hr,hcDark:hr,hcLight:hr},v(\"editorUnicodeHighlight.border\",\"Border color used to highlight unicode characters.\"));V(\"editorUnicodeHighlight.background\",{dark:NE,light:NE,hcDark:NE,hcLight:NE},v(\"editorUnicodeHighlight.background\",\"Background color used to highlight unicode characters.\"));mc((n,e)=>{const t=n.getColor(Ys),i=n.getColor(sce),s=i&&!i.isTransparent()?i:t;s&&e.addRule(`.monaco-editor .inputarea.ime-input { background-color: ${s}; }`)});class xD extends X0{constructor(e){super(),this._context=e,this._readConfig(),this._lastCursorModelPosition=new ee(1,1),this._renderResult=null,this._activeLineNumber=1,this._context.addEventHandler(this)}_readConfig(){const e=this._context.configuration.options;this._lineHeight=e.get(67);const t=e.get(68);this._renderLineNumbers=t.renderType,this._renderCustomLineNumbers=t.renderFn,this._renderFinalNewline=e.get(95);const i=e.get(145);this._lineNumbersLeft=i.lineNumbersLeft,this._lineNumbersWidth=i.lineNumbersWidth}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){return this._readConfig(),!0}onCursorStateChanged(e){const t=e.selections[0].getPosition();this._lastCursorModelPosition=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(t);let i=!1;return this._activeLineNumber!==t.lineNumber&&(this._activeLineNumber=t.lineNumber,i=!0),(this._renderLineNumbers===2||this._renderLineNumbers===3)&&(i=!0),i}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}onDecorationsChanged(e){return e.affectsLineNumber}_getLineRenderLineNumber(e){const t=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new ee(e,1));if(t.column!==1)return\"\";const i=t.lineNumber;if(this._renderCustomLineNumbers)return this._renderCustomLineNumbers(i);if(this._renderLineNumbers===2){const s=Math.abs(this._lastCursorModelPosition.lineNumber-i);return s===0?'<span class=\"relative-current-line-number\">'+i+\"</span>\":String(s)}if(this._renderLineNumbers===3){if(this._lastCursorModelPosition.lineNumber===i||i%10===0)return String(i);const s=this._context.viewModel.getLineCount();return i===s?String(i):\"\"}return String(i)}prepareRender(e){if(this._renderLineNumbers===0){this._renderResult=null;return}const t=Br?this._lineHeight%2===0?\" lh-even\":\" lh-odd\":\"\",i=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber,o=this._context.viewModel.getDecorationsInViewport(e.visibleRange).filter(c=>!!c.options.lineNumberClassName);o.sort((c,d)=>A.compareRangesUsingEnds(c.range,d.range));let r=0;const a=this._context.viewModel.getLineCount(),l=[];for(let c=i;c<=s;c++){const d=c-i;let u=this._getLineRenderLineNumber(c),h=\"\";for(;r<o.length&&o[r].range.endLineNumber<c;)r++;for(let f=r;f<o.length;f++){const{range:g,options:p}=o[f];g.startLineNumber<=c&&(h+=\" \"+p.lineNumberClassName)}if(!u&&!h){l[d]=\"\";continue}c===a&&this._context.viewModel.getLineLength(c)===0&&(this._renderFinalNewline===\"off\"&&(u=\"\"),this._renderFinalNewline===\"dimmed\"&&(h+=\" dimmed-line-number\")),c===this._activeLineNumber&&(h+=\" active-line-number\"),l[d]=`<div class=\"${xD.CLASS_NAME}${t}${h}\" style=\"left:${this._lineNumbersLeft}px;width:${this._lineNumbersWidth}px;\">${u}</div>`}this._renderResult=l}render(e,t){if(!this._renderResult)return\"\";const i=t-e;return i<0||i>=this._renderResult.length?\"\":this._renderResult[i]}}xD.CLASS_NAME=\"line-numbers\";mc((n,e)=>{const t=n.getColor(A3e),i=n.getColor($3e);i?e.addRule(`.monaco-editor .line-numbers.dimmed-line-number { color: ${i}; }`):t&&e.addRule(`.monaco-editor .line-numbers.dimmed-line-number { color: ${t.transparent(.4)}; }`)});class p0 extends Va{constructor(e){super(e);const t=this._context.configuration.options,i=t.get(145);this._canUseLayerHinting=!t.get(32),this._contentLeft=i.contentLeft,this._glyphMarginLeft=i.glyphMarginLeft,this._glyphMarginWidth=i.glyphMarginWidth,this._domNode=Di(document.createElement(\"div\")),this._domNode.setClassName(p0.OUTER_CLASS_NAME),this._domNode.setPosition(\"absolute\"),this._domNode.setAttribute(\"role\",\"presentation\"),this._domNode.setAttribute(\"aria-hidden\",\"true\"),this._glyphMarginBackgroundDomNode=Di(document.createElement(\"div\")),this._glyphMarginBackgroundDomNode.setClassName(p0.CLASS_NAME),this._domNode.appendChild(this._glyphMarginBackgroundDomNode)}dispose(){super.dispose()}getDomNode(){return this._domNode}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(145);return this._canUseLayerHinting=!t.get(32),this._contentLeft=i.contentLeft,this._glyphMarginLeft=i.glyphMarginLeft,this._glyphMarginWidth=i.glyphMarginWidth,!0}onScrollChanged(e){return super.onScrollChanged(e)||e.scrollTopChanged}prepareRender(e){}render(e){this._domNode.setLayerHinting(this._canUseLayerHinting),this._domNode.setContain(\"strict\");const t=e.scrollTop-e.bigNumbersDelta;this._domNode.setTop(-t);const i=Math.min(e.scrollHeight,1e6);this._domNode.setHeight(i),this._domNode.setWidth(this._contentLeft),this._glyphMarginBackgroundDomNode.setLeft(this._glyphMarginLeft),this._glyphMarginBackgroundDomNode.setWidth(this._glyphMarginWidth),this._glyphMarginBackgroundDomNode.setHeight(i)}}p0.CLASS_NAME=\"glyph-margin\";p0.OUTER_CLASS_NAME=\"margin\";const J1=\"monaco-mouse-cursor-text\";class c8e{constructor(){this._onDidChange=new X,this.onDidChange=this._onDidChange.event,this._enabled=!0}get enabled(){return this._enabled}enable(){this._enabled=!0,this._onDidChange.fire()}disable(){this._enabled=!1,this._onDidChange.fire()}}const ux=new c8e,Li=Jt(\"keybindingService\");var d8e=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},zX=function(n,e){return function(t,i){e(t,i,n)}};class u8e{constructor(e,t,i,s,o){this._context=e,this.modelLineNumber=t,this.distanceToModelLineStart=i,this.widthOfHiddenLineTextBefore=s,this.distanceToModelLineEnd=o,this._visibleTextAreaBrand=void 0,this.startPosition=null,this.endPosition=null,this.visibleTextareaStart=null,this.visibleTextareaEnd=null,this._previousPresentation=null}prepareRender(e){const t=new ee(this.modelLineNumber,this.distanceToModelLineStart+1),i=new ee(this.modelLineNumber,this._context.viewModel.model.getLineMaxColumn(this.modelLineNumber)-this.distanceToModelLineEnd);this.startPosition=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(t),this.endPosition=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(i),this.startPosition.lineNumber===this.endPosition.lineNumber?(this.visibleTextareaStart=e.visibleRangeForPosition(this.startPosition),this.visibleTextareaEnd=e.visibleRangeForPosition(this.endPosition)):(this.visibleTextareaStart=null,this.visibleTextareaEnd=null)}definePresentation(e){return this._previousPresentation||(e?this._previousPresentation=e:this._previousPresentation={foreground:1,italic:!1,bold:!1,underline:!1,strikethrough:!1}),this._previousPresentation}}const t5=lc;let PB=class extends Va{constructor(e,t,i,s,o){super(e),this._keybindingService=s,this._instantiationService=o,this._primaryCursorPosition=new ee(1,1),this._primaryCursorVisibleRange=null,this._viewController=t,this._visibleRangeProvider=i,this._scrollLeft=0,this._scrollTop=0;const r=this._context.configuration.options,a=r.get(145);this._setAccessibilityOptions(r),this._contentLeft=a.contentLeft,this._contentWidth=a.contentWidth,this._contentHeight=a.height,this._fontInfo=r.get(50),this._lineHeight=r.get(67),this._emptySelectionClipboard=r.get(37),this._copyWithSyntaxHighlighting=r.get(25),this._visibleTextArea=null,this._selections=[new it(1,1,1,1)],this._modelSelections=[new it(1,1,1,1)],this._lastRenderPosition=null,this.textArea=Di(document.createElement(\"textarea\")),ru.write(this.textArea,7),this.textArea.setClassName(`inputarea ${J1}`),this.textArea.setAttribute(\"wrap\",this._textAreaWrapping&&!this._visibleTextArea?\"on\":\"off\");const{tabSize:l}=this._context.viewModel.model.getOptions();this.textArea.domNode.style.tabSize=`${l*this._fontInfo.spaceWidth}px`,this.textArea.setAttribute(\"autocorrect\",\"off\"),this.textArea.setAttribute(\"autocapitalize\",\"off\"),this.textArea.setAttribute(\"autocomplete\",\"off\"),this.textArea.setAttribute(\"spellcheck\",\"false\"),this.textArea.setAttribute(\"aria-label\",this._getAriaLabel(r)),this.textArea.setAttribute(\"aria-required\",r.get(5)?\"true\":\"false\"),this.textArea.setAttribute(\"tabindex\",String(r.get(124))),this.textArea.setAttribute(\"role\",\"textbox\"),this.textArea.setAttribute(\"aria-roledescription\",v(\"editor\",\"editor\")),this.textArea.setAttribute(\"aria-multiline\",\"true\"),this.textArea.setAttribute(\"aria-autocomplete\",r.get(91)?\"none\":\"both\"),this._ensureReadOnlyAttribute(),this.textAreaCover=Di(document.createElement(\"div\")),this.textAreaCover.setPosition(\"absolute\");const c={getLineCount:()=>this._context.viewModel.getLineCount(),getLineMaxColumn:h=>this._context.viewModel.getLineMaxColumn(h),getValueInRange:(h,f)=>this._context.viewModel.getValueInRange(h,f),getValueLengthInRange:(h,f)=>this._context.viewModel.getValueLengthInRange(h,f),modifyPosition:(h,f)=>this._context.viewModel.modifyPosition(h,f)},d={getDataToCopy:()=>{const h=this._context.viewModel.getPlainTextToCopy(this._modelSelections,this._emptySelectionClipboard,Mo),f=this._context.viewModel.model.getEOL(),g=this._emptySelectionClipboard&&this._modelSelections.length===1&&this._modelSelections[0].isEmpty(),p=Array.isArray(h)?h:null,_=Array.isArray(h)?h.join(f):h;let b,w=null;if(NB.forceCopyWithSyntaxHighlighting||this._copyWithSyntaxHighlighting&&_.length<65536){const y=this._context.viewModel.getRichTextToCopy(this._modelSelections,this._emptySelectionClipboard);y&&(b=y.html,w=y.mode)}return{isFromEmptySelection:g,multicursorText:p,text:_,html:b,mode:w}},getScreenReaderContent:()=>{if(this._accessibilitySupport===1){const h=this._selections[0];if(Xt&&h.isEmpty()){const g=h.getStartPosition();let p=this._getWordBeforePosition(g);if(p.length===0&&(p=this._getCharacterBeforePosition(g)),p.length>0)return new mo(p,p.length,p.length,A.fromPositions(g),0)}if(Xt&&!h.isEmpty()&&c.getValueLengthInRange(h,0)<500){const g=c.getValueInRange(h,0);return new mo(g,0,g.length,h,0)}if(Pm&&!h.isEmpty()){const g=\"vscode-placeholder\";return new mo(g,0,g.length,null,void 0)}return mo.EMPTY}if(dY){const h=this._selections[0];if(h.isEmpty()){const f=h.getStartPosition(),[g,p]=this._getAndroidWordAtPosition(f);if(g.length>0)return new mo(g,p,p,A.fromPositions(f),0)}return mo.EMPTY}return x1.fromEditorSelection(c,this._selections[0],this._accessibilityPageSize,this._accessibilitySupport===0)},deduceModelPosition:(h,f,g)=>this._context.viewModel.deduceModelPositionRelativeToViewPosition(h,f,g)},u=this._register(new x3e(this.textArea.domNode));this._textAreaInput=this._register(this._instantiationService.createInstance(AB,d,u,Da,{isAndroid:dY,isChrome:dD,isFirefox:lc,isSafari:Pm})),this._register(this._textAreaInput.onKeyDown(h=>{this._viewController.emitKeyDown(h)})),this._register(this._textAreaInput.onKeyUp(h=>{this._viewController.emitKeyUp(h)})),this._register(this._textAreaInput.onPaste(h=>{let f=!1,g=null,p=null;h.metadata&&(f=this._emptySelectionClipboard&&!!h.metadata.isFromEmptySelection,g=typeof h.metadata.multicursorText<\"u\"?h.metadata.multicursorText:null,p=h.metadata.mode),this._viewController.paste(h.text,f,g,p)})),this._register(this._textAreaInput.onCut(()=>{this._viewController.cut()})),this._register(this._textAreaInput.onType(h=>{h.replacePrevCharCnt||h.replaceNextCharCnt||h.positionDelta?this._viewController.compositionType(h.text,h.replacePrevCharCnt,h.replaceNextCharCnt,h.positionDelta):this._viewController.type(h.text)})),this._register(this._textAreaInput.onSelectionChangeRequest(h=>{this._viewController.setSelection(h)})),this._register(this._textAreaInput.onCompositionStart(h=>{const f=this.textArea.domNode,g=this._modelSelections[0],{distanceToModelLineStart:p,widthOfHiddenTextBefore:_}=(()=>{const w=f.value.substring(0,Math.min(f.selectionStart,f.selectionEnd)),y=w.lastIndexOf(`\n`),S=w.substring(y+1),x=S.lastIndexOf(\"\t\"),k=S.length-x-1,D=g.getStartPosition(),I=Math.min(D.column-1,k),N=D.column-1-I,P=S.substring(0,S.length-I),{tabSize:O}=this._context.viewModel.model.getOptions(),M=h8e(this.textArea.domNode.ownerDocument,P,this._fontInfo,O);return{distanceToModelLineStart:N,widthOfHiddenTextBefore:M}})(),{distanceToModelLineEnd:b}=(()=>{const w=f.value.substring(Math.max(f.selectionStart,f.selectionEnd)),y=w.indexOf(`\n`),S=y===-1?w:w.substring(0,y),x=S.indexOf(\"\t\"),k=x===-1?S.length:S.length-x-1,D=g.getEndPosition(),I=Math.min(this._context.viewModel.model.getLineMaxColumn(D.lineNumber)-D.column,k);return{distanceToModelLineEnd:this._context.viewModel.model.getLineMaxColumn(D.lineNumber)-D.column-I}})();this._context.viewModel.revealRange(\"keyboard\",!0,A.fromPositions(this._selections[0].getStartPosition()),0,1),this._visibleTextArea=new u8e(this._context,g.startLineNumber,p,_,b),this.textArea.setAttribute(\"wrap\",this._textAreaWrapping&&!this._visibleTextArea?\"on\":\"off\"),this._visibleTextArea.prepareRender(this._visibleRangeProvider),this._render(),this.textArea.setClassName(`inputarea ${J1} ime-input`),this._viewController.compositionStart(),this._context.viewModel.onCompositionStart()})),this._register(this._textAreaInput.onCompositionUpdate(h=>{this._visibleTextArea&&(this._visibleTextArea.prepareRender(this._visibleRangeProvider),this._render())})),this._register(this._textAreaInput.onCompositionEnd(()=>{this._visibleTextArea=null,this.textArea.setAttribute(\"wrap\",this._textAreaWrapping&&!this._visibleTextArea?\"on\":\"off\"),this._render(),this.textArea.setClassName(`inputarea ${J1}`),this._viewController.compositionEnd(),this._context.viewModel.onCompositionEnd()})),this._register(this._textAreaInput.onFocus(()=>{this._context.viewModel.setHasFocus(!0)})),this._register(this._textAreaInput.onBlur(()=>{this._context.viewModel.setHasFocus(!1)})),this._register(ux.onDidChange(()=>{this._ensureReadOnlyAttribute()}))}writeScreenReaderContent(e){this._textAreaInput.writeNativeTextAreaContent(e)}dispose(){super.dispose()}_getAndroidWordAtPosition(e){const t='`~!@#$%^&*()-=+[{]}\\\\|;:\",.<>/?',i=this._context.viewModel.getLineContent(e.lineNumber),s=cc(t,[]);let o=!0,r=e.column,a=!0,l=e.column,c=0;for(;c<50&&(o||a);){if(o&&r<=1&&(o=!1),o){const d=i.charCodeAt(r-2);s.get(d)!==0?o=!1:r--}if(a&&l>i.length&&(a=!1),a){const d=i.charCodeAt(l-1);s.get(d)!==0?a=!1:l++}c++}return[i.substring(r-1,l-1),e.column-r]}_getWordBeforePosition(e){const t=this._context.viewModel.getLineContent(e.lineNumber),i=cc(this._context.configuration.options.get(131),[]);let s=e.column,o=0;for(;s>1;){const r=t.charCodeAt(s-2);if(i.get(r)!==0||o>50)return t.substring(s-1,e.column-1);o++,s--}return t.substring(0,e.column-1)}_getCharacterBeforePosition(e){if(e.column>1){const i=this._context.viewModel.getLineContent(e.lineNumber).charAt(e.column-2);if(!Gs(i.charCodeAt(0)))return i}return\"\"}_getAriaLabel(e){var t,i,s;if(e.get(2)===1){const r=(t=this._keybindingService.lookupKeybinding(\"editor.action.toggleScreenReaderAccessibilityMode\"))===null||t===void 0?void 0:t.getAriaLabel(),a=(i=this._keybindingService.lookupKeybinding(\"workbench.action.showCommands\"))===null||i===void 0?void 0:i.getAriaLabel(),l=(s=this._keybindingService.lookupKeybinding(\"workbench.action.openGlobalKeybindings\"))===null||s===void 0?void 0:s.getAriaLabel(),c=v(\"accessibilityModeOff\",\"The editor is not accessible at this time.\");return r?v(\"accessibilityOffAriaLabel\",\"{0} To enable screen reader optimized mode, use {1}\",c,r):a?v(\"accessibilityOffAriaLabelNoKb\",\"{0} To enable screen reader optimized mode, open the quick pick with {1} and run the command Toggle Screen Reader Accessibility Mode, which is currently not triggerable via keyboard.\",c,a):l?v(\"accessibilityOffAriaLabelNoKbs\",\"{0} Please assign a keybinding for the command Toggle Screen Reader Accessibility Mode by accessing the keybindings editor with {1} and run it.\",c,l):c}return e.get(4)}_setAccessibilityOptions(e){this._accessibilitySupport=e.get(2);const t=e.get(3);this._accessibilitySupport===2&&t===gu.accessibilityPageSize.defaultValue?this._accessibilityPageSize=500:this._accessibilityPageSize=t;const s=e.get(145).wrappingColumn;if(s!==-1&&this._accessibilitySupport!==1){const o=e.get(50);this._textAreaWrapping=!0,this._textAreaWidth=Math.round(s*o.typicalHalfwidthCharacterWidth)}else this._textAreaWrapping=!1,this._textAreaWidth=t5?0:1}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(145);this._setAccessibilityOptions(t),this._contentLeft=i.contentLeft,this._contentWidth=i.contentWidth,this._contentHeight=i.height,this._fontInfo=t.get(50),this._lineHeight=t.get(67),this._emptySelectionClipboard=t.get(37),this._copyWithSyntaxHighlighting=t.get(25),this.textArea.setAttribute(\"wrap\",this._textAreaWrapping&&!this._visibleTextArea?\"on\":\"off\");const{tabSize:s}=this._context.viewModel.model.getOptions();return this.textArea.domNode.style.tabSize=`${s*this._fontInfo.spaceWidth}px`,this.textArea.setAttribute(\"aria-label\",this._getAriaLabel(t)),this.textArea.setAttribute(\"aria-required\",t.get(5)?\"true\":\"false\"),this.textArea.setAttribute(\"tabindex\",String(t.get(124))),(e.hasChanged(34)||e.hasChanged(91))&&this._ensureReadOnlyAttribute(),e.hasChanged(2)&&this._textAreaInput.writeNativeTextAreaContent(\"strategy changed\"),!0}onCursorStateChanged(e){return this._selections=e.selections.slice(0),this._modelSelections=e.modelSelections.slice(0),this._textAreaInput.writeNativeTextAreaContent(\"selection changed\"),!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return this._scrollLeft=e.scrollLeft,this._scrollTop=e.scrollTop,!0}onZonesChanged(e){return!0}isFocused(){return this._textAreaInput.isFocused()}focusTextArea(){this._textAreaInput.focusTextArea()}getLastRenderData(){return this._lastRenderPosition}setAriaOptions(e){e.activeDescendant?(this.textArea.setAttribute(\"aria-haspopup\",\"true\"),this.textArea.setAttribute(\"aria-autocomplete\",\"list\"),this.textArea.setAttribute(\"aria-activedescendant\",e.activeDescendant)):(this.textArea.setAttribute(\"aria-haspopup\",\"false\"),this.textArea.setAttribute(\"aria-autocomplete\",\"both\"),this.textArea.removeAttribute(\"aria-activedescendant\")),e.role&&this.textArea.setAttribute(\"role\",e.role)}_ensureReadOnlyAttribute(){const e=this._context.configuration.options;!ux.enabled||e.get(34)&&e.get(91)?this.textArea.setAttribute(\"readonly\",\"true\"):this.textArea.removeAttribute(\"readonly\")}prepareRender(e){var t;this._primaryCursorPosition=new ee(this._selections[0].positionLineNumber,this._selections[0].positionColumn),this._primaryCursorVisibleRange=e.visibleRangeForPosition(this._primaryCursorPosition),(t=this._visibleTextArea)===null||t===void 0||t.prepareRender(e)}render(e){this._textAreaInput.writeNativeTextAreaContent(\"render\"),this._render()}_render(){var e;if(this._visibleTextArea){const s=this._visibleTextArea.visibleTextareaStart,o=this._visibleTextArea.visibleTextareaEnd,r=this._visibleTextArea.startPosition,a=this._visibleTextArea.endPosition;if(r&&a&&s&&o&&o.left>=this._scrollLeft&&s.left<=this._scrollLeft+this._contentWidth){const l=this._context.viewLayout.getVerticalOffsetForLineNumber(this._primaryCursorPosition.lineNumber)-this._scrollTop,c=this._newlinecount(this.textArea.domNode.value.substr(0,this.textArea.domNode.selectionStart));let d=this._visibleTextArea.widthOfHiddenLineTextBefore,u=this._contentLeft+s.left-this._scrollLeft,h=o.left-s.left+1;if(u<this._contentLeft){const w=this._contentLeft-u;u+=w,d+=w,h-=w}h>this._contentWidth&&(h=this._contentWidth);const f=this._context.viewModel.getViewLineData(r.lineNumber),g=f.tokens.findTokenIndexAtOffset(r.column-1),p=f.tokens.findTokenIndexAtOffset(a.column-1),_=g===p,b=this._visibleTextArea.definePresentation(_?f.tokens.getPresentation(g):null);this.textArea.domNode.scrollTop=c*this._lineHeight,this.textArea.domNode.scrollLeft=d,this._doRender({lastRenderPosition:null,top:l,left:u,width:h,height:this._lineHeight,useCover:!1,color:(Zn.getColorMap()||[])[b.foreground],italic:b.italic,bold:b.bold,underline:b.underline,strikethrough:b.strikethrough})}return}if(!this._primaryCursorVisibleRange){this._renderAtTopLeft();return}const t=this._contentLeft+this._primaryCursorVisibleRange.left-this._scrollLeft;if(t<this._contentLeft||t>this._contentLeft+this._contentWidth){this._renderAtTopLeft();return}const i=this._context.viewLayout.getVerticalOffsetForLineNumber(this._selections[0].positionLineNumber)-this._scrollTop;if(i<0||i>this._contentHeight){this._renderAtTopLeft();return}if(Xt||this._accessibilitySupport===2){this._doRender({lastRenderPosition:this._primaryCursorPosition,top:i,left:this._textAreaWrapping?this._contentLeft:t,width:this._textAreaWidth,height:this._lineHeight,useCover:!1}),this.textArea.domNode.scrollLeft=this._primaryCursorVisibleRange.left;const s=(e=this._textAreaInput.textAreaState.newlineCountBeforeSelection)!==null&&e!==void 0?e:this._newlinecount(this.textArea.domNode.value.substr(0,this.textArea.domNode.selectionStart));this.textArea.domNode.scrollTop=s*this._lineHeight;return}this._doRender({lastRenderPosition:this._primaryCursorPosition,top:i,left:this._textAreaWrapping?this._contentLeft:t,width:this._textAreaWidth,height:t5?0:1,useCover:!1})}_newlinecount(e){let t=0,i=-1;do{if(i=e.indexOf(`\n`,i+1),i===-1)break;t++}while(!0);return t}_renderAtTopLeft(){this._doRender({lastRenderPosition:null,top:0,left:0,width:this._textAreaWidth,height:t5?0:1,useCover:!0})}_doRender(e){this._lastRenderPosition=e.lastRenderPosition;const t=this.textArea,i=this.textAreaCover;So(t,this._fontInfo),t.setTop(e.top),t.setLeft(e.left),t.setWidth(e.width),t.setHeight(e.height),t.setColor(e.color?le.Format.CSS.formatHex(e.color):\"\"),t.setFontStyle(e.italic?\"italic\":\"\"),e.bold&&t.setFontWeight(\"bold\"),t.setTextDecoration(`${e.underline?\" underline\":\"\"}${e.strikethrough?\" line-through\":\"\"}`),i.setTop(e.useCover?e.top:0),i.setLeft(e.useCover?e.left:0),i.setWidth(e.useCover?e.width:0),i.setHeight(e.useCover?e.height:0);const s=this._context.configuration.options;s.get(57)?i.setClassName(\"monaco-editor-background textAreaCover \"+p0.OUTER_CLASS_NAME):s.get(68).renderType!==0?i.setClassName(\"monaco-editor-background textAreaCover \"+xD.CLASS_NAME):i.setClassName(\"monaco-editor-background textAreaCover\")}};PB=d8e([zX(3,Li),zX(4,ht)],PB);function h8e(n,e,t,i){if(e.length===0)return 0;const s=n.createElement(\"div\");s.style.position=\"absolute\",s.style.top=\"-50000px\",s.style.width=\"50000px\";const o=n.createElement(\"span\");So(o,t),o.style.whiteSpace=\"pre\",o.style.tabSize=`${i*t.spaceWidth}px`,o.append(e),s.appendChild(o),n.body.appendChild(s);const r=o.offsetWidth;return n.body.removeChild(s),r}function f8e(n,e,t){let i=0;for(let o=0;o<n.length;o++)n.charAt(o)===\"\t\"?i=zs.nextIndentTabStop(i,e):i++;let s=\"\";if(!t){const o=Math.floor(i/e);i=i%e;for(let r=0;r<o;r++)s+=\"\t\"}for(let o=0;o<i;o++)s+=\" \";return s}function Pz(n,e,t){let i=fr(n);return i===-1&&(i=n.length),f8e(n.substring(0,i),e,t)+n.substring(i)}const g8e=()=>!0,p8e=()=>!1,m8e=n=>n===\" \"||n===\"\t\";class Ob{static shouldRecreate(e){return e.hasChanged(145)||e.hasChanged(131)||e.hasChanged(37)||e.hasChanged(77)||e.hasChanged(79)||e.hasChanged(80)||e.hasChanged(6)||e.hasChanged(7)||e.hasChanged(11)||e.hasChanged(9)||e.hasChanged(10)||e.hasChanged(14)||e.hasChanged(128)||e.hasChanged(50)||e.hasChanged(91)||e.hasChanged(130)}constructor(e,t,i,s){var o;this.languageConfigurationService=s,this._cursorMoveConfigurationBrand=void 0,this._languageId=e;const r=i.options,a=r.get(145),l=r.get(50);this.readOnly=r.get(91),this.tabSize=t.tabSize,this.indentSize=t.indentSize,this.insertSpaces=t.insertSpaces,this.stickyTabStops=r.get(116),this.lineHeight=l.lineHeight,this.typicalHalfwidthCharacterWidth=l.typicalHalfwidthCharacterWidth,this.pageSize=Math.max(1,Math.floor(a.height/this.lineHeight)-2),this.useTabStops=r.get(128),this.wordSeparators=r.get(131),this.emptySelectionClipboard=r.get(37),this.copyWithSyntaxHighlighting=r.get(25),this.multiCursorMergeOverlapping=r.get(77),this.multiCursorPaste=r.get(79),this.multiCursorLimit=r.get(80),this.autoClosingBrackets=r.get(6),this.autoClosingComments=r.get(7),this.autoClosingQuotes=r.get(11),this.autoClosingDelete=r.get(9),this.autoClosingOvertype=r.get(10),this.autoSurround=r.get(14),this.autoIndent=r.get(12),this.wordSegmenterLocales=r.get(130),this.surroundingPairs={},this._electricChars=null,this.shouldAutoCloseBefore={quote:this._getShouldAutoClose(e,this.autoClosingQuotes,!0),comment:this._getShouldAutoClose(e,this.autoClosingComments,!1),bracket:this._getShouldAutoClose(e,this.autoClosingBrackets,!1)},this.autoClosingPairs=this.languageConfigurationService.getLanguageConfiguration(e).getAutoClosingPairs();const c=this.languageConfigurationService.getLanguageConfiguration(e).getSurroundingPairs();if(c)for(const u of c)this.surroundingPairs[u.open]=u.close;const d=this.languageConfigurationService.getLanguageConfiguration(e).comments;this.blockCommentStartToken=(o=d==null?void 0:d.blockCommentStartToken)!==null&&o!==void 0?o:null}get electricChars(){var e;if(!this._electricChars){this._electricChars={};const t=(e=this.languageConfigurationService.getLanguageConfiguration(this._languageId).electricCharacter)===null||e===void 0?void 0:e.getElectricCharacters();if(t)for(const i of t)this._electricChars[i]=!0}return this._electricChars}onElectricCharacter(e,t,i){const s=xv(t,i-1),o=this.languageConfigurationService.getLanguageConfiguration(s.languageId).electricCharacter;return o?o.onElectricCharacter(e,s,i-s.firstCharOffset):null}normalizeIndentation(e){return Pz(e,this.indentSize,this.insertSpaces)}_getShouldAutoClose(e,t,i){switch(t){case\"beforeWhitespace\":return m8e;case\"languageDefined\":return this._getLanguageDefinedShouldAutoClose(e,i);case\"always\":return g8e;case\"never\":return p8e}}_getLanguageDefinedShouldAutoClose(e,t){const i=this.languageConfigurationService.getLanguageConfiguration(e).getAutoCloseBeforeSet(t);return s=>i.indexOf(s)!==-1}visibleColumnFromColumn(e,t){return zs.visibleColumnFromColumn(e.getLineContent(t.lineNumber),t.column,this.tabSize)}columnFromVisibleColumn(e,t,i){const s=zs.columnFromVisibleColumn(e.getLineContent(t),i,this.tabSize),o=e.getLineMinColumn(t);if(s<o)return o;const r=e.getLineMaxColumn(t);return s>r?r:s}}let gi=class gce{static fromModelState(e){return new _8e(e)}static fromViewState(e){return new v8e(e)}static fromModelSelection(e){const t=it.liftSelection(e),i=new _o(A.fromPositions(t.getSelectionStart()),0,0,t.getPosition(),0);return gce.fromModelState(i)}static fromModelSelections(e){const t=[];for(let i=0,s=e.length;i<s;i++)t[i]=this.fromModelSelection(e[i]);return t}constructor(e,t){this._cursorStateBrand=void 0,this.modelState=e,this.viewState=t}equals(e){return this.viewState.equals(e.viewState)&&this.modelState.equals(e.modelState)}};class _8e{constructor(e){this.modelState=e,this.viewState=null}}class v8e{constructor(e){this.modelState=null,this.viewState=e}}class _o{constructor(e,t,i,s,o){this.selectionStart=e,this.selectionStartKind=t,this.selectionStartLeftoverVisibleColumns=i,this.position=s,this.leftoverVisibleColumns=o,this._singleCursorStateBrand=void 0,this.selection=_o._computeSelection(this.selectionStart,this.position)}equals(e){return this.selectionStartLeftoverVisibleColumns===e.selectionStartLeftoverVisibleColumns&&this.leftoverVisibleColumns===e.leftoverVisibleColumns&&this.selectionStartKind===e.selectionStartKind&&this.position.equals(e.position)&&this.selectionStart.equalsRange(e.selectionStart)}hasSelection(){return!this.selection.isEmpty()||!this.selectionStart.isEmpty()}move(e,t,i,s){return e?new _o(this.selectionStart,this.selectionStartKind,this.selectionStartLeftoverVisibleColumns,new ee(t,i),s):new _o(new A(t,i,t,i),0,s,new ee(t,i),s)}static _computeSelection(e,t){return e.isEmpty()||!t.isBeforeOrEqual(e.getStartPosition())?it.fromPositions(e.getStartPosition(),t):it.fromPositions(e.getEndPosition(),t)}}class Zr{constructor(e,t,i){this._editOperationResultBrand=void 0,this.type=e,this.commands=t,this.shouldPushStackElementBefore=i.shouldPushStackElementBefore,this.shouldPushStackElementAfter=i.shouldPushStackElementAfter}}function vp(n){return n===\"'\"||n==='\"'||n===\"`\"}class mv{static columnSelect(e,t,i,s,o,r){const a=Math.abs(o-i)+1,l=i>o,c=s>r,d=s<r,u=[];for(let h=0;h<a;h++){const f=i+(l?-h:h),g=e.columnFromVisibleColumn(t,f,s),p=e.columnFromVisibleColumn(t,f,r),_=e.visibleColumnFromColumn(t,new ee(f,g)),b=e.visibleColumnFromColumn(t,new ee(f,p));d&&(_>r||b<s)||c&&(b>s||_<r)||u.push(new _o(new A(f,g,f,g),0,0,new ee(f,p),0))}if(u.length===0)for(let h=0;h<a;h++){const f=i+(l?-h:h),g=t.getLineMaxColumn(f);u.push(new _o(new A(f,g,f,g),0,0,new ee(f,g),0))}return{viewStates:u,reversed:l,fromLineNumber:i,fromVisualColumn:s,toLineNumber:o,toVisualColumn:r}}static columnSelectLeft(e,t,i){let s=i.toViewVisualColumn;return s>0&&s--,mv.columnSelect(e,t,i.fromViewLineNumber,i.fromViewVisualColumn,i.toViewLineNumber,s)}static columnSelectRight(e,t,i){let s=0;const o=Math.min(i.fromViewLineNumber,i.toViewLineNumber),r=Math.max(i.fromViewLineNumber,i.toViewLineNumber);for(let l=o;l<=r;l++){const c=t.getLineMaxColumn(l),d=e.visibleColumnFromColumn(t,new ee(l,c));s=Math.max(s,d)}let a=i.toViewVisualColumn;return a<s&&a++,this.columnSelect(e,t,i.fromViewLineNumber,i.fromViewVisualColumn,i.toViewLineNumber,a)}static columnSelectUp(e,t,i,s){const o=s?e.pageSize:1,r=Math.max(1,i.toViewLineNumber-o);return this.columnSelect(e,t,i.fromViewLineNumber,i.fromViewVisualColumn,r,i.toViewVisualColumn)}static columnSelectDown(e,t,i,s){const o=s?e.pageSize:1,r=Math.min(t.getLineCount(),i.toViewLineNumber+o);return this.columnSelect(e,t,i.fromViewLineNumber,i.fromViewVisualColumn,r,i.toViewVisualColumn)}}class Io{constructor(e,t,i=!1){this._range=e,this._text=t,this.insertsAutoWhitespace=i}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text)}computeCursorState(e,t){const s=t.getInverseEditOperations()[0].range;return it.fromPositions(s.getEndPosition())}}class b8e{constructor(e,t){this._range=e,this._text=t}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text)}computeCursorState(e,t){const s=t.getInverseEditOperations()[0].range;return it.fromRange(s,0)}}class WE{constructor(e,t,i=!1){this._range=e,this._text=t,this.insertsAutoWhitespace=i}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text)}computeCursorState(e,t){const s=t.getInverseEditOperations()[0].range;return it.fromPositions(s.getStartPosition())}}class CN{constructor(e,t,i,s,o=!1){this._range=e,this._text=t,this._columnDeltaOffset=s,this._lineNumberDeltaOffset=i,this.insertsAutoWhitespace=o}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text)}computeCursorState(e,t){const s=t.getInverseEditOperations()[0].range;return it.fromPositions(s.getEndPosition().delta(this._lineNumberDeltaOffset,this._columnDeltaOffset))}}class Oz{constructor(e,t,i,s=!1){this._range=e,this._text=t,this._initialSelection=i,this._forceMoveMarkers=s,this._selectionId=null}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text,this._forceMoveMarkers),this._selectionId=t.trackSelection(this._initialSelection)}computeCursorState(e,t){return t.getTrackedSelection(this._selectionId)}}class i5{constructor(e,t,i){this._cursorPositionBrand=void 0,this.lineNumber=e,this.column=t,this.leftoverVisibleColumns=i}}class Mi{static leftPosition(e,t){if(t.column>e.getLineMinColumn(t.lineNumber))return t.delta(void 0,-Cae(e.getLineContent(t.lineNumber),t.column-1));if(t.lineNumber>1){const i=t.lineNumber-1;return new ee(i,e.getLineMaxColumn(i))}else return t}static leftPositionAtomicSoftTabs(e,t,i){if(t.column<=e.getLineIndentColumn(t.lineNumber)){const s=e.getLineMinColumn(t.lineNumber),o=e.getLineContent(t.lineNumber),r=DL.atomicPosition(o,t.column-1,i,0);if(r!==-1&&r+1>=s)return new ee(t.lineNumber,r+1)}return this.leftPosition(e,t)}static left(e,t,i){const s=e.stickyTabStops?Mi.leftPositionAtomicSoftTabs(t,i,e.tabSize):Mi.leftPosition(t,i);return new i5(s.lineNumber,s.column,0)}static moveLeft(e,t,i,s,o){let r,a;if(i.hasSelection()&&!s)r=i.selection.startLineNumber,a=i.selection.startColumn;else{const l=i.position.delta(void 0,-(o-1)),c=t.normalizePosition(Mi.clipPositionColumn(l,t),0),d=Mi.left(e,t,c);r=d.lineNumber,a=d.column}return i.move(s,r,a,0)}static clipPositionColumn(e,t){return new ee(e.lineNumber,Mi.clipRange(e.column,t.getLineMinColumn(e.lineNumber),t.getLineMaxColumn(e.lineNumber)))}static clipRange(e,t,i){return e<t?t:e>i?i:e}static rightPosition(e,t,i){return i<e.getLineMaxColumn(t)?i=i+GV(e.getLineContent(t),i-1):t<e.getLineCount()&&(t=t+1,i=e.getLineMinColumn(t)),new ee(t,i)}static rightPositionAtomicSoftTabs(e,t,i,s,o){if(i<e.getLineIndentColumn(t)){const r=e.getLineContent(t),a=DL.atomicPosition(r,i-1,s,1);if(a!==-1)return new ee(t,a+1)}return this.rightPosition(e,t,i)}static right(e,t,i){const s=e.stickyTabStops?Mi.rightPositionAtomicSoftTabs(t,i.lineNumber,i.column,e.tabSize,e.indentSize):Mi.rightPosition(t,i.lineNumber,i.column);return new i5(s.lineNumber,s.column,0)}static moveRight(e,t,i,s,o){let r,a;if(i.hasSelection()&&!s)r=i.selection.endLineNumber,a=i.selection.endColumn;else{const l=i.position.delta(void 0,o-1),c=t.normalizePosition(Mi.clipPositionColumn(l,t),1),d=Mi.right(e,t,c);r=d.lineNumber,a=d.column}return i.move(s,r,a,0)}static vertical(e,t,i,s,o,r,a,l){const c=zs.visibleColumnFromColumn(t.getLineContent(i),s,e.tabSize)+o,d=t.getLineCount(),u=i===1&&s===1,h=i===d&&s===t.getLineMaxColumn(i),f=r<i?u:h;if(i=r,i<1?(i=1,a?s=t.getLineMinColumn(i):s=Math.min(t.getLineMaxColumn(i),s)):i>d?(i=d,a?s=t.getLineMaxColumn(i):s=Math.min(t.getLineMaxColumn(i),s)):s=e.columnFromVisibleColumn(t,i,c),f?o=0:o=c-zs.visibleColumnFromColumn(t.getLineContent(i),s,e.tabSize),l!==void 0){const g=new ee(i,s),p=t.normalizePosition(g,l);o=o+(s-p.column),i=p.lineNumber,s=p.column}return new i5(i,s,o)}static down(e,t,i,s,o,r,a){return this.vertical(e,t,i,s,o,i+r,a,4)}static moveDown(e,t,i,s,o){let r,a;i.hasSelection()&&!s?(r=i.selection.endLineNumber,a=i.selection.endColumn):(r=i.position.lineNumber,a=i.position.column);let l=0,c;do if(c=Mi.down(e,t,r+l,a,i.leftoverVisibleColumns,o,!0),t.normalizePosition(new ee(c.lineNumber,c.column),2).lineNumber>r)break;while(l++<10&&r+l<t.getLineCount());return i.move(s,c.lineNumber,c.column,c.leftoverVisibleColumns)}static translateDown(e,t,i){const s=i.selection,o=Mi.down(e,t,s.selectionStartLineNumber,s.selectionStartColumn,i.selectionStartLeftoverVisibleColumns,1,!1),r=Mi.down(e,t,s.positionLineNumber,s.positionColumn,i.leftoverVisibleColumns,1,!1);return new _o(new A(o.lineNumber,o.column,o.lineNumber,o.column),0,o.leftoverVisibleColumns,new ee(r.lineNumber,r.column),r.leftoverVisibleColumns)}static up(e,t,i,s,o,r,a){return this.vertical(e,t,i,s,o,i-r,a,3)}static moveUp(e,t,i,s,o){let r,a;i.hasSelection()&&!s?(r=i.selection.startLineNumber,a=i.selection.startColumn):(r=i.position.lineNumber,a=i.position.column);const l=Mi.up(e,t,r,a,i.leftoverVisibleColumns,o,!0);return i.move(s,l.lineNumber,l.column,l.leftoverVisibleColumns)}static translateUp(e,t,i){const s=i.selection,o=Mi.up(e,t,s.selectionStartLineNumber,s.selectionStartColumn,i.selectionStartLeftoverVisibleColumns,1,!1),r=Mi.up(e,t,s.positionLineNumber,s.positionColumn,i.leftoverVisibleColumns,1,!1);return new _o(new A(o.lineNumber,o.column,o.lineNumber,o.column),0,o.leftoverVisibleColumns,new ee(r.lineNumber,r.column),r.leftoverVisibleColumns)}static _isBlankLine(e,t){return e.getLineFirstNonWhitespaceColumn(t)===0}static moveToPrevBlankLine(e,t,i,s){let o=i.position.lineNumber;for(;o>1&&this._isBlankLine(t,o);)o--;for(;o>1&&!this._isBlankLine(t,o);)o--;return i.move(s,o,t.getLineMinColumn(o),0)}static moveToNextBlankLine(e,t,i,s){const o=t.getLineCount();let r=i.position.lineNumber;for(;r<o&&this._isBlankLine(t,r);)r++;for(;r<o&&!this._isBlankLine(t,r);)r++;return i.move(s,r,t.getLineMinColumn(r),0)}static moveToBeginningOfLine(e,t,i,s){const o=i.position.lineNumber,r=t.getLineMinColumn(o),a=t.getLineFirstNonWhitespaceColumn(o)||r;let l;return i.position.column===a?l=r:l=a,i.move(s,o,l,0)}static moveToEndOfLine(e,t,i,s,o){const r=i.position.lineNumber,a=t.getLineMaxColumn(r);return i.move(s,r,a,o?1073741824-a:0)}static moveToBeginningOfBuffer(e,t,i,s){return i.move(s,1,1,0)}static moveToEndOfBuffer(e,t,i,s){const o=t.getLineCount(),r=t.getLineMaxColumn(o);return i.move(s,o,r,0)}}class m0{static deleteRight(e,t,i,s){const o=[];let r=e!==3;for(let a=0,l=s.length;a<l;a++){const c=s[a];let d=c;if(d.isEmpty()){const u=c.getPosition(),h=Mi.right(t,i,u);d=new A(h.lineNumber,h.column,u.lineNumber,u.column)}if(d.isEmpty()){o[a]=null;continue}d.startLineNumber!==d.endLineNumber&&(r=!0),o[a]=new Io(d,\"\")}return[r,o]}static isAutoClosingPairDelete(e,t,i,s,o,r,a){if(t===\"never\"&&i===\"never\"||e===\"never\")return!1;for(let l=0,c=r.length;l<c;l++){const d=r[l],u=d.getPosition();if(!d.isEmpty())return!1;const h=o.getLineContent(u.lineNumber);if(u.column<2||u.column>=h.length+1)return!1;const f=h.charAt(u.column-2),g=s.get(f);if(!g)return!1;if(vp(f)){if(i===\"never\")return!1}else if(t===\"never\")return!1;const p=h.charAt(u.column-1);let _=!1;for(const b of g)b.open===f&&b.close===p&&(_=!0);if(!_)return!1;if(e===\"auto\"){let b=!1;for(let w=0,y=a.length;w<y;w++){const S=a[w];if(u.lineNumber===S.startLineNumber&&u.column===S.startColumn){b=!0;break}}if(!b)return!1}}return!0}static _runAutoClosingPairDelete(e,t,i){const s=[];for(let o=0,r=i.length;o<r;o++){const a=i[o].getPosition(),l=new A(a.lineNumber,a.column-1,a.lineNumber,a.column+1);s[o]=new Io(l,\"\")}return[!0,s]}static deleteLeft(e,t,i,s,o){if(this.isAutoClosingPairDelete(t.autoClosingDelete,t.autoClosingBrackets,t.autoClosingQuotes,t.autoClosingPairs.autoClosingPairsOpenByEnd,i,s,o))return this._runAutoClosingPairDelete(t,i,s);const r=[];let a=e!==2;for(let l=0,c=s.length;l<c;l++){const d=m0.getDeleteRange(s[l],i,t);if(d.isEmpty()){r[l]=null;continue}d.startLineNumber!==d.endLineNumber&&(a=!0),r[l]=new Io(d,\"\")}return[a,r]}static getDeleteRange(e,t,i){if(!e.isEmpty())return e;const s=e.getPosition();if(i.useTabStops&&s.column>1){const o=t.getLineContent(s.lineNumber),r=fr(o),a=r===-1?o.length+1:r+1;if(s.column<=a){const l=i.visibleColumnFromColumn(t,s),c=zs.prevIndentTabStop(l,i.indentSize),d=i.columnFromVisibleColumn(t,s.lineNumber,c);return new A(s.lineNumber,d,s.lineNumber,s.column)}}return A.fromPositions(m0.getPositionAfterDeleteLeft(s,t),s)}static getPositionAfterDeleteLeft(e,t){if(e.column>1){const i=xRe(e.column-1,t.getLineContent(e.lineNumber));return e.with(void 0,i+1)}else if(e.lineNumber>1){const i=e.lineNumber-1;return new ee(i,t.getLineMaxColumn(i))}else return e}static cut(e,t,i){const s=[];let o=null;i.sort((r,a)=>ee.compare(r.getStartPosition(),a.getEndPosition()));for(let r=0,a=i.length;r<a;r++){const l=i[r];if(l.isEmpty())if(e.emptySelectionClipboard){const c=l.getPosition();let d,u,h,f;c.lineNumber<t.getLineCount()?(d=c.lineNumber,u=1,h=c.lineNumber+1,f=1):c.lineNumber>1&&(o==null?void 0:o.endLineNumber)!==c.lineNumber?(d=c.lineNumber-1,u=t.getLineMaxColumn(c.lineNumber-1),h=c.lineNumber,f=t.getLineMaxColumn(c.lineNumber)):(d=c.lineNumber,u=1,h=c.lineNumber,f=t.getLineMaxColumn(c.lineNumber));const g=new A(d,u,h,f);o=g,g.isEmpty()?s[r]=null:s[r]=new Io(g,\"\")}else s[r]=null;else s[r]=new Io(l,\"\")}return new Zr(0,s,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}}class ki{static _createWord(e,t,i,s,o){return{start:s,end:o,wordType:t,nextCharClass:i}}static _createIntlWord(e,t){return{start:e.index,end:e.index+e.segment.length,wordType:1,nextCharClass:t}}static _findPreviousWordOnLine(e,t,i){const s=t.getLineContent(i.lineNumber);return this._doFindPreviousWordOnLine(s,e,i)}static _doFindPreviousWordOnLine(e,t,i){let s=0;const o=t.findPrevIntlWordBeforeOrAtOffset(e,i.column-2);for(let r=i.column-2;r>=0;r--){const a=e.charCodeAt(r),l=t.get(a);if(o&&r===o.index)return this._createIntlWord(o,l);if(l===0){if(s===2)return this._createWord(e,s,l,r+1,this._findEndOfWord(e,t,s,r+1));s=1}else if(l===2){if(s===1)return this._createWord(e,s,l,r+1,this._findEndOfWord(e,t,s,r+1));s=2}else if(l===1&&s!==0)return this._createWord(e,s,l,r+1,this._findEndOfWord(e,t,s,r+1))}return s!==0?this._createWord(e,s,1,0,this._findEndOfWord(e,t,s,0)):null}static _findEndOfWord(e,t,i,s){const o=t.findNextIntlWordAtOrAfterOffset(e,s),r=e.length;for(let a=s;a<r;a++){const l=e.charCodeAt(a),c=t.get(l);if(o&&a===o.index+o.segment.length||c===1||i===1&&c===2||i===2&&c===0)return a}return r}static _findNextWordOnLine(e,t,i){const s=t.getLineContent(i.lineNumber);return this._doFindNextWordOnLine(s,e,i)}static _doFindNextWordOnLine(e,t,i){let s=0;const o=e.length,r=t.findNextIntlWordAtOrAfterOffset(e,i.column-1);for(let a=i.column-1;a<o;a++){const l=e.charCodeAt(a),c=t.get(l);if(r&&a===r.index)return this._createIntlWord(r,c);if(c===0){if(s===2)return this._createWord(e,s,c,this._findStartOfWord(e,t,s,a-1),a);s=1}else if(c===2){if(s===1)return this._createWord(e,s,c,this._findStartOfWord(e,t,s,a-1),a);s=2}else if(c===1&&s!==0)return this._createWord(e,s,c,this._findStartOfWord(e,t,s,a-1),a)}return s!==0?this._createWord(e,s,1,this._findStartOfWord(e,t,s,o-1),o):null}static _findStartOfWord(e,t,i,s){const o=t.findPrevIntlWordBeforeOrAtOffset(e,s);for(let r=s;r>=0;r--){const a=e.charCodeAt(r),l=t.get(a);if(o&&r===o.index)return r;if(l===1||i===1&&l===2||i===2&&l===0)return r+1}return 0}static moveWordLeft(e,t,i,s){let o=i.lineNumber,r=i.column;r===1&&o>1&&(o=o-1,r=t.getLineMaxColumn(o));let a=ki._findPreviousWordOnLine(e,t,new ee(o,r));if(s===0)return new ee(o,a?a.start+1:1);if(s===1)return a&&a.wordType===2&&a.end-a.start===1&&a.nextCharClass===0&&(a=ki._findPreviousWordOnLine(e,t,new ee(o,a.start+1))),new ee(o,a?a.start+1:1);if(s===3){for(;a&&a.wordType===2;)a=ki._findPreviousWordOnLine(e,t,new ee(o,a.start+1));return new ee(o,a?a.start+1:1)}return a&&r<=a.end+1&&(a=ki._findPreviousWordOnLine(e,t,new ee(o,a.start+1))),new ee(o,a?a.end+1:1)}static _moveWordPartLeft(e,t){const i=t.lineNumber,s=e.getLineMaxColumn(i);if(t.column===1)return i>1?new ee(i-1,e.getLineMaxColumn(i-1)):t;const o=e.getLineContent(i);for(let r=t.column-1;r>1;r--){const a=o.charCodeAt(r-2),l=o.charCodeAt(r-1);if(a===95&&l!==95)return new ee(i,r);if(a===45&&l!==45)return new ee(i,r);if((zp(a)||SE(a))&&Ku(l))return new ee(i,r);if(Ku(a)&&Ku(l)&&r+1<s){const c=o.charCodeAt(r);if(zp(c)||SE(c))return new ee(i,r)}}return new ee(i,1)}static moveWordRight(e,t,i,s){let o=i.lineNumber,r=i.column,a=!1;r===t.getLineMaxColumn(o)&&o<t.getLineCount()&&(a=!0,o=o+1,r=1);let l=ki._findNextWordOnLine(e,t,new ee(o,r));if(s===2)l&&l.wordType===2&&l.end-l.start===1&&l.nextCharClass===0&&(l=ki._findNextWordOnLine(e,t,new ee(o,l.end+1))),l?r=l.end+1:r=t.getLineMaxColumn(o);else if(s===3){for(a&&(r=0);l&&(l.wordType===2||l.start+1<=r);)l=ki._findNextWordOnLine(e,t,new ee(o,l.end+1));l?r=l.start+1:r=t.getLineMaxColumn(o)}else l&&!a&&r>=l.start+1&&(l=ki._findNextWordOnLine(e,t,new ee(o,l.end+1))),l?r=l.start+1:r=t.getLineMaxColumn(o);return new ee(o,r)}static _moveWordPartRight(e,t){const i=t.lineNumber,s=e.getLineMaxColumn(i);if(t.column===s)return i<e.getLineCount()?new ee(i+1,1):t;const o=e.getLineContent(i);for(let r=t.column+1;r<s;r++){const a=o.charCodeAt(r-2),l=o.charCodeAt(r-1);if(a!==95&&l===95)return new ee(i,r);if(a!==45&&l===45)return new ee(i,r);if((zp(a)||SE(a))&&Ku(l))return new ee(i,r);if(Ku(a)&&Ku(l)&&r+1<s){const c=o.charCodeAt(r);if(zp(c)||SE(c))return new ee(i,r)}}return new ee(i,s)}static _deleteWordLeftWhitespace(e,t){const i=e.getLineContent(t.lineNumber),s=t.column-2,o=Kd(i,s);return o+1<s?new A(t.lineNumber,o+2,t.lineNumber,t.column):null}static deleteWordLeft(e,t){const i=e.wordSeparators,s=e.model,o=e.selection,r=e.whitespaceHeuristics;if(!o.isEmpty())return o;if(m0.isAutoClosingPairDelete(e.autoClosingDelete,e.autoClosingBrackets,e.autoClosingQuotes,e.autoClosingPairs.autoClosingPairsOpenByEnd,e.model,[e.selection],e.autoClosedCharacters)){const u=e.selection.getPosition();return new A(u.lineNumber,u.column-1,u.lineNumber,u.column+1)}const a=new ee(o.positionLineNumber,o.positionColumn);let l=a.lineNumber,c=a.column;if(l===1&&c===1)return null;if(r){const u=this._deleteWordLeftWhitespace(s,a);if(u)return u}let d=ki._findPreviousWordOnLine(i,s,a);return t===0?d?c=d.start+1:c>1?c=1:(l--,c=s.getLineMaxColumn(l)):(d&&c<=d.end+1&&(d=ki._findPreviousWordOnLine(i,s,new ee(l,d.start+1))),d?c=d.end+1:c>1?c=1:(l--,c=s.getLineMaxColumn(l))),new A(l,c,a.lineNumber,a.column)}static deleteInsideWord(e,t,i){if(!i.isEmpty())return i;const s=new ee(i.positionLineNumber,i.positionColumn),o=this._deleteInsideWordWhitespace(t,s);return o||this._deleteInsideWordDetermineDeleteRange(e,t,s)}static _charAtIsWhitespace(e,t){const i=e.charCodeAt(t);return i===32||i===9}static _deleteInsideWordWhitespace(e,t){const i=e.getLineContent(t.lineNumber),s=i.length;if(s===0)return null;let o=Math.max(t.column-2,0);if(!this._charAtIsWhitespace(i,o))return null;let r=Math.min(t.column-1,s-1);if(!this._charAtIsWhitespace(i,r))return null;for(;o>0&&this._charAtIsWhitespace(i,o-1);)o--;for(;r+1<s&&this._charAtIsWhitespace(i,r+1);)r++;return new A(t.lineNumber,o+1,t.lineNumber,r+2)}static _deleteInsideWordDetermineDeleteRange(e,t,i){const s=t.getLineContent(i.lineNumber),o=s.length;if(o===0)return i.lineNumber>1?new A(i.lineNumber-1,t.getLineMaxColumn(i.lineNumber-1),i.lineNumber,1):i.lineNumber<t.getLineCount()?new A(i.lineNumber,1,i.lineNumber+1,1):new A(i.lineNumber,1,i.lineNumber,1);const r=u=>u.start+1<=i.column&&i.column<=u.end+1,a=(u,h)=>(u=Math.min(u,i.column),h=Math.max(h,i.column),new A(i.lineNumber,u,i.lineNumber,h)),l=u=>{let h=u.start+1,f=u.end+1,g=!1;for(;f-1<o&&this._charAtIsWhitespace(s,f-1);)g=!0,f++;if(!g)for(;h>1&&this._charAtIsWhitespace(s,h-2);)h--;return a(h,f)},c=ki._findPreviousWordOnLine(e,t,i);if(c&&r(c))return l(c);const d=ki._findNextWordOnLine(e,t,i);return d&&r(d)?l(d):c&&d?a(c.end+1,d.start+1):c?a(c.start+1,c.end+1):d?a(d.start+1,d.end+1):a(1,o+1)}static _deleteWordPartLeft(e,t){if(!t.isEmpty())return t;const i=t.getPosition(),s=ki._moveWordPartLeft(e,i);return new A(i.lineNumber,i.column,s.lineNumber,s.column)}static _findFirstNonWhitespaceChar(e,t){const i=e.length;for(let s=t;s<i;s++){const o=e.charAt(s);if(o!==\" \"&&o!==\"\t\")return s}return i}static _deleteWordRightWhitespace(e,t){const i=e.getLineContent(t.lineNumber),s=t.column-1,o=this._findFirstNonWhitespaceChar(i,s);return s+1<o?new A(t.lineNumber,t.column,t.lineNumber,o+1):null}static deleteWordRight(e,t){const i=e.wordSeparators,s=e.model,o=e.selection,r=e.whitespaceHeuristics;if(!o.isEmpty())return o;const a=new ee(o.positionLineNumber,o.positionColumn);let l=a.lineNumber,c=a.column;const d=s.getLineCount(),u=s.getLineMaxColumn(l);if(l===d&&c===u)return null;if(r){const f=this._deleteWordRightWhitespace(s,a);if(f)return f}let h=ki._findNextWordOnLine(i,s,a);return t===2?h?c=h.end+1:c<u||l===d?c=u:(l++,h=ki._findNextWordOnLine(i,s,new ee(l,1)),h?c=h.start+1:c=s.getLineMaxColumn(l)):(h&&c>=h.start+1&&(h=ki._findNextWordOnLine(i,s,new ee(l,h.end+1))),h?c=h.start+1:c<u||l===d?c=u:(l++,h=ki._findNextWordOnLine(i,s,new ee(l,1)),h?c=h.start+1:c=s.getLineMaxColumn(l))),new A(l,c,a.lineNumber,a.column)}static _deleteWordPartRight(e,t){if(!t.isEmpty())return t;const i=t.getPosition(),s=ki._moveWordPartRight(e,i);return new A(i.lineNumber,i.column,s.lineNumber,s.column)}static _createWordAtPosition(e,t,i){const s=new A(t,i.start+1,t,i.end+1);return{word:e.getValueInRange(s),startColumn:s.startColumn,endColumn:s.endColumn}}static getWordAtPosition(e,t,i,s){const o=cc(t,i),r=ki._findPreviousWordOnLine(o,e,s);if(r&&r.wordType===1&&r.start<=s.column-1&&s.column-1<=r.end)return ki._createWordAtPosition(e,s.lineNumber,r);const a=ki._findNextWordOnLine(o,e,s);return a&&a.wordType===1&&a.start<=s.column-1&&s.column-1<=a.end?ki._createWordAtPosition(e,s.lineNumber,a):null}static word(e,t,i,s,o){const r=cc(e.wordSeparators,e.wordSegmenterLocales),a=ki._findPreviousWordOnLine(r,t,o),l=ki._findNextWordOnLine(r,t,o);if(!s){let f,g;return a&&a.wordType===1&&a.start<=o.column-1&&o.column-1<=a.end?(f=a.start+1,g=a.end+1):l&&l.wordType===1&&l.start<=o.column-1&&o.column-1<=l.end?(f=l.start+1,g=l.end+1):(a?f=a.end+1:f=1,l?g=l.start+1:g=t.getLineMaxColumn(o.lineNumber)),new _o(new A(o.lineNumber,f,o.lineNumber,g),1,0,new ee(o.lineNumber,g),0)}let c,d;a&&a.wordType===1&&a.start<o.column-1&&o.column-1<a.end?(c=a.start+1,d=a.end+1):l&&l.wordType===1&&l.start<o.column-1&&o.column-1<l.end?(c=l.start+1,d=l.end+1):(c=o.column,d=o.column);const u=o.lineNumber;let h;if(i.selectionStart.containsPosition(o))h=i.selectionStart.endColumn;else if(o.isBeforeOrEqual(i.selectionStart.getStartPosition())){h=c;const f=new ee(u,h);i.selectionStart.containsPosition(f)&&(h=i.selectionStart.endColumn)}else{h=d;const f=new ee(u,h);i.selectionStart.containsPosition(f)&&(h=i.selectionStart.startColumn)}return i.move(!0,u,h,0)}}class OM extends ki{static deleteWordPartLeft(e){const t=HE([ki.deleteWordLeft(e,0),ki.deleteWordLeft(e,2),ki._deleteWordPartLeft(e.model,e.selection)]);return t.sort(A.compareRangesUsingEnds),t[2]}static deleteWordPartRight(e){const t=HE([ki.deleteWordRight(e,0),ki.deleteWordRight(e,2),ki._deleteWordPartRight(e.model,e.selection)]);return t.sort(A.compareRangesUsingStarts),t[0]}static moveWordPartLeft(e,t,i){const s=HE([ki.moveWordLeft(e,t,i,0),ki.moveWordLeft(e,t,i,2),ki._moveWordPartLeft(t,i)]);return s.sort(ee.compare),s[2]}static moveWordPartRight(e,t,i){const s=HE([ki.moveWordRight(e,t,i,0),ki.moveWordRight(e,t,i,2),ki._moveWordPartRight(t,i)]);return s.sort(ee.compare),s[0]}}function HE(n){return n.filter(e=>!!e)}class po{static addCursorDown(e,t,i){const s=[];let o=0;for(let r=0,a=t.length;r<a;r++){const l=t[r];s[o++]=new gi(l.modelState,l.viewState),i?s[o++]=gi.fromModelState(Mi.translateDown(e.cursorConfig,e.model,l.modelState)):s[o++]=gi.fromViewState(Mi.translateDown(e.cursorConfig,e,l.viewState))}return s}static addCursorUp(e,t,i){const s=[];let o=0;for(let r=0,a=t.length;r<a;r++){const l=t[r];s[o++]=new gi(l.modelState,l.viewState),i?s[o++]=gi.fromModelState(Mi.translateUp(e.cursorConfig,e.model,l.modelState)):s[o++]=gi.fromViewState(Mi.translateUp(e.cursorConfig,e,l.viewState))}return s}static moveToBeginningOfLine(e,t,i){const s=[];for(let o=0,r=t.length;o<r;o++){const a=t[o];s[o]=this._moveToLineStart(e,a,i)}return s}static _moveToLineStart(e,t,i){const s=t.viewState.position.column,o=t.modelState.position.column,r=s===o,a=t.viewState.position.lineNumber,l=e.getLineFirstNonWhitespaceColumn(a);return!r&&!(s===l)?this._moveToLineStartByView(e,t,i):this._moveToLineStartByModel(e,t,i)}static _moveToLineStartByView(e,t,i){return gi.fromViewState(Mi.moveToBeginningOfLine(e.cursorConfig,e,t.viewState,i))}static _moveToLineStartByModel(e,t,i){return gi.fromModelState(Mi.moveToBeginningOfLine(e.cursorConfig,e.model,t.modelState,i))}static moveToEndOfLine(e,t,i,s){const o=[];for(let r=0,a=t.length;r<a;r++){const l=t[r];o[r]=this._moveToLineEnd(e,l,i,s)}return o}static _moveToLineEnd(e,t,i,s){const o=t.viewState.position,r=e.getLineMaxColumn(o.lineNumber),a=o.column===r,l=t.modelState.position,c=e.model.getLineMaxColumn(l.lineNumber),d=r-o.column===c-l.column;return a||d?this._moveToLineEndByModel(e,t,i,s):this._moveToLineEndByView(e,t,i,s)}static _moveToLineEndByView(e,t,i,s){return gi.fromViewState(Mi.moveToEndOfLine(e.cursorConfig,e,t.viewState,i,s))}static _moveToLineEndByModel(e,t,i,s){return gi.fromModelState(Mi.moveToEndOfLine(e.cursorConfig,e.model,t.modelState,i,s))}static expandLineSelection(e,t){const i=[];for(let s=0,o=t.length;s<o;s++){const r=t[s],a=r.modelState.selection.startLineNumber,l=e.model.getLineCount();let c=r.modelState.selection.endLineNumber,d;c===l?d=e.model.getLineMaxColumn(l):(c++,d=1),i[s]=gi.fromModelState(new _o(new A(a,1,a,1),0,0,new ee(c,d),0))}return i}static moveToBeginningOfBuffer(e,t,i){const s=[];for(let o=0,r=t.length;o<r;o++){const a=t[o];s[o]=gi.fromModelState(Mi.moveToBeginningOfBuffer(e.cursorConfig,e.model,a.modelState,i))}return s}static moveToEndOfBuffer(e,t,i){const s=[];for(let o=0,r=t.length;o<r;o++){const a=t[o];s[o]=gi.fromModelState(Mi.moveToEndOfBuffer(e.cursorConfig,e.model,a.modelState,i))}return s}static selectAll(e,t){const i=e.model.getLineCount(),s=e.model.getLineMaxColumn(i);return gi.fromModelState(new _o(new A(1,1,1,1),0,0,new ee(i,s),0))}static line(e,t,i,s,o){const r=e.model.validatePosition(s),a=o?e.coordinatesConverter.validateViewPosition(new ee(o.lineNumber,o.column),r):e.coordinatesConverter.convertModelPositionToViewPosition(r);if(!i){const c=e.model.getLineCount();let d=r.lineNumber+1,u=1;return d>c&&(d=c,u=e.model.getLineMaxColumn(d)),gi.fromModelState(new _o(new A(r.lineNumber,1,d,u),2,0,new ee(d,u),0))}const l=t.modelState.selectionStart.getStartPosition().lineNumber;if(r.lineNumber<l)return gi.fromViewState(t.viewState.move(!0,a.lineNumber,1,0));if(r.lineNumber>l){const c=e.getLineCount();let d=a.lineNumber+1,u=1;return d>c&&(d=c,u=e.getLineMaxColumn(d)),gi.fromViewState(t.viewState.move(!0,d,u,0))}else{const c=t.modelState.selectionStart.getEndPosition();return gi.fromModelState(t.modelState.move(!0,c.lineNumber,c.column,0))}}static word(e,t,i,s){const o=e.model.validatePosition(s);return gi.fromModelState(ki.word(e.cursorConfig,e.model,t.modelState,i,o))}static cancelSelection(e,t){if(!t.modelState.hasSelection())return new gi(t.modelState,t.viewState);const i=t.viewState.position.lineNumber,s=t.viewState.position.column;return gi.fromViewState(new _o(new A(i,s,i,s),0,0,new ee(i,s),0))}static moveTo(e,t,i,s,o){if(i){if(t.modelState.selectionStartKind===1)return this.word(e,t,i,s);if(t.modelState.selectionStartKind===2)return this.line(e,t,i,s,o)}const r=e.model.validatePosition(s),a=o?e.coordinatesConverter.validateViewPosition(new ee(o.lineNumber,o.column),r):e.coordinatesConverter.convertModelPositionToViewPosition(r);return gi.fromViewState(t.viewState.move(i,a.lineNumber,a.column,0))}static simpleMove(e,t,i,s,o,r){switch(i){case 0:return r===4?this._moveHalfLineLeft(e,t,s):this._moveLeft(e,t,s,o);case 1:return r===4?this._moveHalfLineRight(e,t,s):this._moveRight(e,t,s,o);case 2:return r===2?this._moveUpByViewLines(e,t,s,o):this._moveUpByModelLines(e,t,s,o);case 3:return r===2?this._moveDownByViewLines(e,t,s,o):this._moveDownByModelLines(e,t,s,o);case 4:return r===2?t.map(a=>gi.fromViewState(Mi.moveToPrevBlankLine(e.cursorConfig,e,a.viewState,s))):t.map(a=>gi.fromModelState(Mi.moveToPrevBlankLine(e.cursorConfig,e.model,a.modelState,s)));case 5:return r===2?t.map(a=>gi.fromViewState(Mi.moveToNextBlankLine(e.cursorConfig,e,a.viewState,s))):t.map(a=>gi.fromModelState(Mi.moveToNextBlankLine(e.cursorConfig,e.model,a.modelState,s)));case 6:return this._moveToViewMinColumn(e,t,s);case 7:return this._moveToViewFirstNonWhitespaceColumn(e,t,s);case 8:return this._moveToViewCenterColumn(e,t,s);case 9:return this._moveToViewMaxColumn(e,t,s);case 10:return this._moveToViewLastNonWhitespaceColumn(e,t,s);default:return null}}static viewportMove(e,t,i,s,o){const r=e.getCompletelyVisibleViewRange(),a=e.coordinatesConverter.convertViewRangeToModelRange(r);switch(i){case 11:{const l=this._firstLineNumberInRange(e.model,a,o),c=e.model.getLineFirstNonWhitespaceColumn(l);return[this._moveToModelPosition(e,t[0],s,l,c)]}case 13:{const l=this._lastLineNumberInRange(e.model,a,o),c=e.model.getLineFirstNonWhitespaceColumn(l);return[this._moveToModelPosition(e,t[0],s,l,c)]}case 12:{const l=Math.round((a.startLineNumber+a.endLineNumber)/2),c=e.model.getLineFirstNonWhitespaceColumn(l);return[this._moveToModelPosition(e,t[0],s,l,c)]}case 14:{const l=[];for(let c=0,d=t.length;c<d;c++){const u=t[c];l[c]=this.findPositionInViewportIfOutside(e,u,r,s)}return l}default:return null}}static findPositionInViewportIfOutside(e,t,i,s){const o=t.viewState.position.lineNumber;if(i.startLineNumber<=o&&o<=i.endLineNumber-1)return new gi(t.modelState,t.viewState);{let r;o>i.endLineNumber-1?r=i.endLineNumber-1:o<i.startLineNumber?r=i.startLineNumber:r=o;const a=Mi.vertical(e.cursorConfig,e,o,t.viewState.position.column,t.viewState.leftoverVisibleColumns,r,!1);return gi.fromViewState(t.viewState.move(s,a.lineNumber,a.column,a.leftoverVisibleColumns))}}static _firstLineNumberInRange(e,t,i){let s=t.startLineNumber;return t.startColumn!==e.getLineMinColumn(s)&&s++,Math.min(t.endLineNumber,s+i-1)}static _lastLineNumberInRange(e,t,i){let s=t.startLineNumber;return t.startColumn!==e.getLineMinColumn(s)&&s++,Math.max(s,t.endLineNumber-i+1)}static _moveLeft(e,t,i,s){return t.map(o=>gi.fromViewState(Mi.moveLeft(e.cursorConfig,e,o.viewState,i,s)))}static _moveHalfLineLeft(e,t,i){const s=[];for(let o=0,r=t.length;o<r;o++){const a=t[o],l=a.viewState.position.lineNumber,c=Math.round(e.getLineLength(l)/2);s[o]=gi.fromViewState(Mi.moveLeft(e.cursorConfig,e,a.viewState,i,c))}return s}static _moveRight(e,t,i,s){return t.map(o=>gi.fromViewState(Mi.moveRight(e.cursorConfig,e,o.viewState,i,s)))}static _moveHalfLineRight(e,t,i){const s=[];for(let o=0,r=t.length;o<r;o++){const a=t[o],l=a.viewState.position.lineNumber,c=Math.round(e.getLineLength(l)/2);s[o]=gi.fromViewState(Mi.moveRight(e.cursorConfig,e,a.viewState,i,c))}return s}static _moveDownByViewLines(e,t,i,s){const o=[];for(let r=0,a=t.length;r<a;r++){const l=t[r];o[r]=gi.fromViewState(Mi.moveDown(e.cursorConfig,e,l.viewState,i,s))}return o}static _moveDownByModelLines(e,t,i,s){const o=[];for(let r=0,a=t.length;r<a;r++){const l=t[r];o[r]=gi.fromModelState(Mi.moveDown(e.cursorConfig,e.model,l.modelState,i,s))}return o}static _moveUpByViewLines(e,t,i,s){const o=[];for(let r=0,a=t.length;r<a;r++){const l=t[r];o[r]=gi.fromViewState(Mi.moveUp(e.cursorConfig,e,l.viewState,i,s))}return o}static _moveUpByModelLines(e,t,i,s){const o=[];for(let r=0,a=t.length;r<a;r++){const l=t[r];o[r]=gi.fromModelState(Mi.moveUp(e.cursorConfig,e.model,l.modelState,i,s))}return o}static _moveToViewPosition(e,t,i,s,o){return gi.fromViewState(t.viewState.move(i,s,o,0))}static _moveToModelPosition(e,t,i,s,o){return gi.fromModelState(t.modelState.move(i,s,o,0))}static _moveToViewMinColumn(e,t,i){const s=[];for(let o=0,r=t.length;o<r;o++){const a=t[o],l=a.viewState.position.lineNumber,c=e.getLineMinColumn(l);s[o]=this._moveToViewPosition(e,a,i,l,c)}return s}static _moveToViewFirstNonWhitespaceColumn(e,t,i){const s=[];for(let o=0,r=t.length;o<r;o++){const a=t[o],l=a.viewState.position.lineNumber,c=e.getLineFirstNonWhitespaceColumn(l);s[o]=this._moveToViewPosition(e,a,i,l,c)}return s}static _moveToViewCenterColumn(e,t,i){const s=[];for(let o=0,r=t.length;o<r;o++){const a=t[o],l=a.viewState.position.lineNumber,c=Math.round((e.getLineMaxColumn(l)+e.getLineMinColumn(l))/2);s[o]=this._moveToViewPosition(e,a,i,l,c)}return s}static _moveToViewMaxColumn(e,t,i){const s=[];for(let o=0,r=t.length;o<r;o++){const a=t[o],l=a.viewState.position.lineNumber,c=e.getLineMaxColumn(l);s[o]=this._moveToViewPosition(e,a,i,l,c)}return s}static _moveToViewLastNonWhitespaceColumn(e,t,i){const s=[];for(let o=0,r=t.length;o<r;o++){const a=t[o],l=a.viewState.position.lineNumber,c=e.getLineLastNonWhitespaceColumn(l);s[o]=this._moveToViewPosition(e,a,i,l,c)}return s}}var tA;(function(n){const e=function(i){if(!Er(i))return!1;const s=i;return!(!Pr(s.to)||!na(s.select)&&!Vre(s.select)||!na(s.by)&&!Pr(s.by)||!na(s.value)&&!Nm(s.value))};n.metadata={description:\"Move cursor to a logical position in the view\",args:[{name:\"Cursor move argument object\",description:`Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'to': A mandatory logical position value providing where to move the cursor.\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t\t\t'left', 'right', 'up', 'down', 'prevBlankLine', 'nextBlankLine',\n\t\t\t\t\t\t'wrappedLineStart', 'wrappedLineEnd', 'wrappedLineColumnCenter'\n\t\t\t\t\t\t'wrappedLineFirstNonWhitespaceCharacter', 'wrappedLineLastNonWhitespaceCharacter'\n\t\t\t\t\t\t'viewPortTop', 'viewPortCenter', 'viewPortBottom', 'viewPortIfOutside'\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t\t* 'by': Unit to move. Default is computed based on 'to' value.\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t\t\t'line', 'wrappedLine', 'character', 'halfLine'\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t\t* 'value': Number of units to move. Default is '1'.\n\t\t\t\t\t* 'select': If 'true' makes the selection. Default is 'false'.\n\t\t\t\t`,constraint:e,schema:{type:\"object\",required:[\"to\"],properties:{to:{type:\"string\",enum:[\"left\",\"right\",\"up\",\"down\",\"prevBlankLine\",\"nextBlankLine\",\"wrappedLineStart\",\"wrappedLineEnd\",\"wrappedLineColumnCenter\",\"wrappedLineFirstNonWhitespaceCharacter\",\"wrappedLineLastNonWhitespaceCharacter\",\"viewPortTop\",\"viewPortCenter\",\"viewPortBottom\",\"viewPortIfOutside\"]},by:{type:\"string\",enum:[\"line\",\"wrappedLine\",\"character\",\"halfLine\"]},value:{type:\"number\",default:1},select:{type:\"boolean\",default:!1}}}}]},n.RawDirection={Left:\"left\",Right:\"right\",Up:\"up\",Down:\"down\",PrevBlankLine:\"prevBlankLine\",NextBlankLine:\"nextBlankLine\",WrappedLineStart:\"wrappedLineStart\",WrappedLineFirstNonWhitespaceCharacter:\"wrappedLineFirstNonWhitespaceCharacter\",WrappedLineColumnCenter:\"wrappedLineColumnCenter\",WrappedLineEnd:\"wrappedLineEnd\",WrappedLineLastNonWhitespaceCharacter:\"wrappedLineLastNonWhitespaceCharacter\",ViewPortTop:\"viewPortTop\",ViewPortCenter:\"viewPortCenter\",ViewPortBottom:\"viewPortBottom\",ViewPortIfOutside:\"viewPortIfOutside\"},n.RawUnit={Line:\"line\",WrappedLine:\"wrappedLine\",Character:\"character\",HalfLine:\"halfLine\"};function t(i){if(!i.to)return null;let s;switch(i.to){case n.RawDirection.Left:s=0;break;case n.RawDirection.Right:s=1;break;case n.RawDirection.Up:s=2;break;case n.RawDirection.Down:s=3;break;case n.RawDirection.PrevBlankLine:s=4;break;case n.RawDirection.NextBlankLine:s=5;break;case n.RawDirection.WrappedLineStart:s=6;break;case n.RawDirection.WrappedLineFirstNonWhitespaceCharacter:s=7;break;case n.RawDirection.WrappedLineColumnCenter:s=8;break;case n.RawDirection.WrappedLineEnd:s=9;break;case n.RawDirection.WrappedLineLastNonWhitespaceCharacter:s=10;break;case n.RawDirection.ViewPortTop:s=11;break;case n.RawDirection.ViewPortBottom:s=13;break;case n.RawDirection.ViewPortCenter:s=12;break;case n.RawDirection.ViewPortIfOutside:s=14;break;default:return null}let o=0;switch(i.by){case n.RawUnit.Line:o=1;break;case n.RawUnit.WrappedLine:o=2;break;case n.RawUnit.Character:o=3;break;case n.RawUnit.HalfLine:o=4;break}return{direction:s,unit:o,select:!!i.select,value:i.value||1}}n.parse=t})(tA||(tA={}));class Fz{constructor(e,t,i){this._indentRulesSupport=t,this._indentationLineProcessor=new pce(e,i)}shouldIncrease(e,t){const i=this._indentationLineProcessor.getProcessedLine(e,t);return this._indentRulesSupport.shouldIncrease(i)}shouldDecrease(e,t){const i=this._indentationLineProcessor.getProcessedLine(e,t);return this._indentRulesSupport.shouldDecrease(i)}shouldIgnore(e,t){const i=this._indentationLineProcessor.getProcessedLine(e,t);return this._indentRulesSupport.shouldIgnore(i)}shouldIndentNextLine(e,t){const i=this._indentationLineProcessor.getProcessedLine(e,t);return this._indentRulesSupport.shouldIndentNextLine(i)}}class Bz{constructor(e,t){this.model=e,this.indentationLineProcessor=new pce(e,t)}getProcessedTokenContextAroundRange(e){const t=this._getProcessedTokensBeforeRange(e),i=this._getProcessedTokensAfterRange(e),s=this._getProcessedPreviousLineTokens(e);return{beforeRangeProcessedTokens:t,afterRangeProcessedTokens:i,previousLineProcessedTokens:s}}_getProcessedTokensBeforeRange(e){this.model.tokenization.forceTokenization(e.startLineNumber);const t=this.model.tokenization.getLineTokens(e.startLineNumber),i=xv(t,e.startColumn-1);let s;if(Wz(this.model,e.getStartPosition())){const r=e.startColumn-1-i.firstCharOffset,a=i.firstCharOffset,l=a+r;s=t.sliceAndInflate(a,l,0)}else{const r=e.startColumn-1;s=t.sliceAndInflate(0,r,0)}return this.indentationLineProcessor.getProcessedTokens(s)}_getProcessedTokensAfterRange(e){const t=e.isEmpty()?e.getStartPosition():e.getEndPosition();this.model.tokenization.forceTokenization(t.lineNumber);const i=this.model.tokenization.getLineTokens(t.lineNumber),s=xv(i,t.column-1),o=t.column-1-s.firstCharOffset,r=s.firstCharOffset+o,a=s.firstCharOffset+s.getLineLength(),l=i.sliceAndInflate(r,a,0);return this.indentationLineProcessor.getProcessedTokens(l)}_getProcessedPreviousLineTokens(e){const t=f=>{this.model.tokenization.forceTokenization(f);const g=this.model.tokenization.getLineTokens(f),p=this.model.getLineMaxColumn(f)-1;return xv(g,p)};this.model.tokenization.forceTokenization(e.startLineNumber);const i=this.model.tokenization.getLineTokens(e.startLineNumber),s=xv(i,e.startColumn-1),o=Is.createEmpty(\"\",s.languageIdCodec),r=e.startLineNumber-1;if(r===0||!(s.firstCharOffset===0))return o;const c=t(r);if(!(s.languageId===c.languageId))return o;const u=c.toIViewLineTokens();return this.indentationLineProcessor.getProcessedTokens(u)}}class pce{constructor(e,t){this.model=e,this.languageConfigurationService=t}getProcessedLine(e,t){var i,s;const o=(l,c)=>{const d=on(l);return c+l.substring(d.length)};(s=(i=this.model.tokenization).forceTokenization)===null||s===void 0||s.call(i,e);const r=this.model.tokenization.getLineTokens(e);let a=this.getProcessedTokens(r).getLineContent();return t!==void 0&&(a=o(a,t)),a}getProcessedTokens(e){const t=l=>l===2||l===3||l===1,i=e.getLanguageId(0),o=this.languageConfigurationService.getLanguageConfiguration(i).bracketsNew.getBracketRegExp({global:!0}),r=[];return e.forEach(l=>{const c=e.getStandardTokenType(l);let d=e.getTokenText(l);t(c)&&(d=d.replace(o,\"\"));const u=e.getMetadata(l);r.push({text:d,metadata:u})}),Is.createFromTextAndMetadata(r,e.languageIdCodec)}}function Wz(n,e){n.tokenization.forceTokenization(e.lineNumber);const t=n.tokenization.getLineTokens(e.lineNumber),i=xv(t,e.column-1),s=i.firstCharOffset===0,o=t.getLanguageId(0)===i.languageId;return!s&&!o}function eC(n,e,t,i){e.tokenization.forceTokenization(t.startLineNumber);const s=e.getLanguageIdAtPosition(t.startLineNumber,t.startColumn),o=i.getLanguageConfiguration(s);if(!o)return null;const a=new Bz(e,i).getProcessedTokenContextAroundRange(t),l=a.previousLineProcessedTokens.getLineContent(),c=a.beforeRangeProcessedTokens.getLineContent(),d=a.afterRangeProcessedTokens.getLineContent(),u=o.onEnter(n,l,c,d);if(!u)return null;const h=u.indentAction;let f=u.appendText;const g=u.removeText||0;f?h===Ds.Indent&&(f=\"\t\"+f):h===Ds.Indent||h===Ds.IndentOutdent?f=\"\t\":f=\"\";let p=ble(e,t.startLineNumber,t.startColumn);return g&&(p=p.substring(0,p.length-g)),{indentAction:h,appendText:f,removeText:g,indentation:p}}var C8e=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},w8e=function(n,e){return function(t,i){e(t,i,n)}},wN;const n5=Object.create(null);function H_(n,e){if(e<=0)return\"\";n5[n]||(n5[n]=[\"\",n]);const t=n5[n];for(let i=t.length;i<=e;i++)t[i]=t[i-1]+n;return t[e]}let Zl=wN=class{static unshiftIndent(e,t,i,s,o){const r=zs.visibleColumnFromColumn(e,t,i);if(o){const a=H_(\" \",s),c=zs.prevIndentTabStop(r,s)/s;return H_(a,c)}else{const a=\"\t\",c=zs.prevRenderTabStop(r,i)/i;return H_(a,c)}}static shiftIndent(e,t,i,s,o){const r=zs.visibleColumnFromColumn(e,t,i);if(o){const a=H_(\" \",s),c=zs.nextIndentTabStop(r,s)/s;return H_(a,c)}else{const a=\"\t\",c=zs.nextRenderTabStop(r,i)/i;return H_(a,c)}}constructor(e,t,i){this._languageConfigurationService=i,this._opts=t,this._selection=e,this._selectionId=null,this._useLastEditRangeForCursorEndPosition=!1,this._selectionStartColumnStaysPut=!1}_addEditOperation(e,t,i){this._useLastEditRangeForCursorEndPosition?e.addTrackedEditOperation(t,i):e.addEditOperation(t,i)}getEditOperations(e,t){const i=this._selection.startLineNumber;let s=this._selection.endLineNumber;this._selection.endColumn===1&&i!==s&&(s=s-1);const{tabSize:o,indentSize:r,insertSpaces:a}=this._opts,l=i===s;if(this._opts.useTabStops){this._selection.isEmpty()&&/^\\s*$/.test(e.getLineContent(i))&&(this._useLastEditRangeForCursorEndPosition=!0);let c=0,d=0;for(let u=i;u<=s;u++,c=d){d=0;const h=e.getLineContent(u);let f=fr(h);if(this._opts.isUnshift&&(h.length===0||f===0)||!l&&!this._opts.isUnshift&&h.length===0)continue;if(f===-1&&(f=h.length),u>1&&zs.visibleColumnFromColumn(h,f+1,o)%r!==0&&e.tokenization.isCheapToTokenize(u-1)){const _=eC(this._opts.autoIndent,e,new A(u-1,e.getLineMaxColumn(u-1),u-1,e.getLineMaxColumn(u-1)),this._languageConfigurationService);if(_){if(d=c,_.appendText)for(let b=0,w=_.appendText.length;b<w&&d<r&&_.appendText.charCodeAt(b)===32;b++)d++;_.removeText&&(d=Math.max(0,d-_.removeText));for(let b=0;b<d&&!(f===0||h.charCodeAt(f-1)!==32);b++)f--}}if(this._opts.isUnshift&&f===0)continue;let g;this._opts.isUnshift?g=wN.unshiftIndent(h,f+1,o,r,a):g=wN.shiftIndent(h,f+1,o,r,a),this._addEditOperation(t,new A(u,1,u,f+1),g),u===i&&!this._selection.isEmpty()&&(this._selectionStartColumnStaysPut=this._selection.startColumn<=f+1)}}else{!this._opts.isUnshift&&this._selection.isEmpty()&&e.getLineLength(i)===0&&(this._useLastEditRangeForCursorEndPosition=!0);const c=a?H_(\" \",r):\"\t\";for(let d=i;d<=s;d++){const u=e.getLineContent(d);let h=fr(u);if(!(this._opts.isUnshift&&(u.length===0||h===0))&&!(!l&&!this._opts.isUnshift&&u.length===0)&&(h===-1&&(h=u.length),!(this._opts.isUnshift&&h===0)))if(this._opts.isUnshift){h=Math.min(h,r);for(let f=0;f<h;f++)if(u.charCodeAt(f)===9){h=f+1;break}this._addEditOperation(t,new A(d,1,d,h+1),\"\")}else this._addEditOperation(t,new A(d,1,d,1),c),d===i&&!this._selection.isEmpty()&&(this._selectionStartColumnStaysPut=this._selection.startColumn===1)}}this._selectionId=t.trackSelection(this._selection)}computeCursorState(e,t){if(this._useLastEditRangeForCursorEndPosition){const s=t.getInverseEditOperations()[0];return new it(s.range.endLineNumber,s.range.endColumn,s.range.endLineNumber,s.range.endColumn)}const i=t.getTrackedSelection(this._selectionId);if(this._selectionStartColumnStaysPut){const s=this._selection.startColumn;return i.startColumn<=s?i:i.getDirection()===0?new it(i.startLineNumber,s,i.endLineNumber,i.endColumn):new it(i.endLineNumber,i.endColumn,i.startLineNumber,s)}return i}};Zl=wN=C8e([w8e(2,gn)],Zl);class y8e{constructor(e,t,i){this._range=e,this._charBeforeSelection=t,this._charAfterSelection=i}getEditOperations(e,t){t.addTrackedEditOperation(new A(this._range.startLineNumber,this._range.startColumn,this._range.startLineNumber,this._range.startColumn),this._charBeforeSelection),t.addTrackedEditOperation(new A(this._range.endLineNumber,this._range.endColumn,this._range.endLineNumber,this._range.endColumn),this._charAfterSelection)}computeCursorState(e,t){const i=t.getInverseEditOperations(),s=i[0].range,o=i[1].range;return new it(s.endLineNumber,s.endColumn,o.endLineNumber,o.endColumn-this._charAfterSelection.length)}}class S8e{constructor(e,t,i){this._position=e,this._text=t,this._charAfter=i}getEditOperations(e,t){t.addTrackedEditOperation(new A(this._position.lineNumber,this._position.column,this._position.lineNumber,this._position.column),this._text+this._charAfter)}computeCursorState(e,t){const s=t.getInverseEditOperations()[0].range;return new it(s.endLineNumber,s.startColumn,s.endLineNumber,s.endColumn-this._charAfter.length)}}function x8e(n,e,t){const i=n.tokenization.getLanguageIdAtPosition(e,0);if(e>1){let s,o=-1;for(s=e-1;s>=1;s--){if(n.tokenization.getLanguageIdAtPosition(s,0)!==i)return o;const r=n.getLineContent(s);if(t.shouldIgnore(s)||/^\\s+$/.test(r)||r===\"\"){o=s;continue}return s}}return-1}function FM(n,e,t,i=!0,s){if(n<4)return null;const o=s.getLanguageConfiguration(e.tokenization.getLanguageId()).indentRulesSupport;if(!o)return null;const r=new Fz(e,o,s);if(t<=1)return{indentation:\"\",action:null};for(let l=t-1;l>0&&e.getLineContent(l)===\"\";l--)if(l===1)return{indentation:\"\",action:null};const a=x8e(e,t,r);if(a<0)return null;if(a<1)return{indentation:\"\",action:null};if(r.shouldIncrease(a)||r.shouldIndentNextLine(a)){const l=e.getLineContent(a);return{indentation:on(l),action:Ds.Indent,line:a}}else if(r.shouldDecrease(a)){const l=e.getLineContent(a);return{indentation:on(l),action:null,line:a}}else{if(a===1)return{indentation:on(e.getLineContent(a)),action:null,line:a};const l=a-1,c=o.getIndentMetadata(e.getLineContent(l));if(!(c&3)&&c&4){let d=0;for(let u=l-1;u>0;u--)if(!r.shouldIndentNextLine(u)){d=u;break}return{indentation:on(e.getLineContent(d+1)),action:null,line:d+1}}if(i)return{indentation:on(e.getLineContent(a)),action:null,line:a};for(let d=a;d>0;d--){if(r.shouldIncrease(d))return{indentation:on(e.getLineContent(d)),action:Ds.Indent,line:d};if(r.shouldIndentNextLine(d)){let u=0;for(let h=d-1;h>0;h--)if(!r.shouldIndentNextLine(d)){u=h;break}return{indentation:on(e.getLineContent(u+1)),action:null,line:u+1}}else if(r.shouldDecrease(d))return{indentation:on(e.getLineContent(d)),action:null,line:d}}return{indentation:on(e.getLineContent(1)),action:null,line:1}}}function hx(n,e,t,i,s,o){if(n<4)return null;const r=o.getLanguageConfiguration(t);if(!r)return null;const a=o.getLanguageConfiguration(t).indentRulesSupport;if(!a)return null;const l=new Fz(e,a,o),c=FM(n,e,i,void 0,o);if(c){const d=c.line;if(d!==void 0){let u=!0;for(let h=d;h<i-1;h++)if(!/^\\s*$/.test(e.getLineContent(h))){u=!1;break}if(u){const h=r.onEnter(n,\"\",e.getLineContent(d),\"\");if(h){let f=on(e.getLineContent(d));return h.removeText&&(f=f.substring(0,f.length-h.removeText)),h.indentAction===Ds.Indent||h.indentAction===Ds.IndentOutdent?f=s.shiftIndent(f):h.indentAction===Ds.Outdent&&(f=s.unshiftIndent(f)),l.shouldDecrease(i)&&(f=s.unshiftIndent(f)),h.appendText&&(f+=h.appendText),on(f)}}}return l.shouldDecrease(i)?c.action===Ds.Indent?c.indentation:s.unshiftIndent(c.indentation):c.action===Ds.Indent?s.shiftIndent(c.indentation):c.indentation}return null}function L8e(n,e,t,i,s){if(n<4)return null;const o=e.getLanguageIdAtPosition(t.startLineNumber,t.startColumn),r=s.getLanguageConfiguration(o).indentRulesSupport;if(!r)return null;e.tokenization.forceTokenization(t.startLineNumber);const l=new Bz(e,s).getProcessedTokenContextAroundRange(t),c=l.afterRangeProcessedTokens,d=l.beforeRangeProcessedTokens,u=on(d.getLineContent()),h=D8e(e,t.startLineNumber,d),f=Wz(e,t.getStartPosition()),g=e.getLineContent(t.startLineNumber),p=on(g),_=FM(n,h,t.startLineNumber+1,void 0,s);if(!_){const w=f?p:u;return{beforeEnter:w,afterEnter:w}}let b=f?p:_.indentation;return _.action===Ds.Indent&&(b=i.shiftIndent(b)),r.shouldDecrease(c.getLineContent())&&(b=i.unshiftIndent(b)),{beforeEnter:f?p:u,afterEnter:b}}function k8e(n,e,t,i,s,o){if(n<4||Wz(e,t.getStartPosition()))return null;const a=e.getLanguageIdAtPosition(t.startLineNumber,t.startColumn),l=o.getLanguageConfiguration(a).indentRulesSupport;if(!l)return null;const d=new Bz(e,o).getProcessedTokenContextAroundRange(t),u=d.beforeRangeProcessedTokens.getLineContent(),h=d.afterRangeProcessedTokens.getLineContent(),f=u+h,g=u+i+h;if(!l.shouldDecrease(f)&&l.shouldDecrease(g)){const p=FM(n,e,t.startLineNumber,!1,o);if(!p)return null;let _=p.indentation;return p.action!==Ds.Indent&&(_=s.unshiftIndent(_)),_}return null}function mce(n,e,t){const i=t.getLanguageConfiguration(n.getLanguageId()).indentRulesSupport;return!i||e<1||e>n.getLineCount()?null:i.getIndentMetadata(n.getLineContent(e))}function D8e(n,e,t){return{tokenization:{getLineTokens:s=>s===e?t:n.tokenization.getLineTokens(s),getLanguageId:()=>n.getLanguageId(),getLanguageIdAtPosition:(s,o)=>n.getLanguageIdAtPosition(s,o)},getLineContent:s=>s===e?t.getLineContent():n.getLineContent(s)}}class Bn{static indent(e,t,i){if(t===null||i===null)return[];const s=[];for(let o=0,r=i.length;o<r;o++)s[o]=new Zl(i[o],{isUnshift:!1,tabSize:e.tabSize,indentSize:e.indentSize,insertSpaces:e.insertSpaces,useTabStops:e.useTabStops,autoIndent:e.autoIndent},e.languageConfigurationService);return s}static outdent(e,t,i){const s=[];for(let o=0,r=i.length;o<r;o++)s[o]=new Zl(i[o],{isUnshift:!0,tabSize:e.tabSize,indentSize:e.indentSize,insertSpaces:e.insertSpaces,useTabStops:e.useTabStops,autoIndent:e.autoIndent},e.languageConfigurationService);return s}static shiftIndent(e,t,i){return i=i||1,Zl.shiftIndent(t,t.length+i,e.tabSize,e.indentSize,e.insertSpaces)}static unshiftIndent(e,t,i){return i=i||1,Zl.unshiftIndent(t,t.length+i,e.tabSize,e.indentSize,e.insertSpaces)}static _distributedPaste(e,t,i,s){const o=[];for(let r=0,a=i.length;r<a;r++)o[r]=new Io(i[r],s[r]);return new Zr(0,o,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}static _simplePaste(e,t,i,s,o){const r=[];for(let a=0,l=i.length;a<l;a++){const c=i[a],d=c.getPosition();if(o&&!c.isEmpty()&&(o=!1),o&&s.indexOf(`\n`)!==s.length-1&&(o=!1),o){const u=new A(d.lineNumber,1,d.lineNumber,1);r[a]=new Oz(u,s,c,!0)}else r[a]=new Io(c,s)}return new Zr(0,r,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}static _distributePasteToCursors(e,t,i,s,o){if(s||t.length===1)return null;if(o&&o.length===t.length)return o;if(e.multiCursorPaste===\"spread\"){i.charCodeAt(i.length-1)===10&&(i=i.substr(0,i.length-1)),i.charCodeAt(i.length-1)===13&&(i=i.substr(0,i.length-1));const r=Wh(i);if(r.length===t.length)return r}return null}static paste(e,t,i,s,o,r){const a=this._distributePasteToCursors(e,i,s,o,r);return a?(i=i.sort(A.compareRangesUsingStarts),this._distributedPaste(e,t,i,a)):this._simplePaste(e,t,i,s,o)}static _goodIndentForLine(e,t,i){let s=null,o=\"\";const r=FM(e.autoIndent,t,i,!1,e.languageConfigurationService);if(r)s=r.action,o=r.indentation;else if(i>1){let a;for(a=i-1;a>=1;a--){const d=t.getLineContent(a);if(Kd(d)>=0)break}if(a<1)return null;const l=t.getLineMaxColumn(a),c=eC(e.autoIndent,t,new A(a,l,a,l),e.languageConfigurationService);c&&(o=c.indentation+c.appendText)}return s&&(s===Ds.Indent&&(o=Bn.shiftIndent(e,o)),s===Ds.Outdent&&(o=Bn.unshiftIndent(e,o)),o=e.normalizeIndentation(o)),o||null}static _replaceJumpToNextIndent(e,t,i,s){let o=\"\";const r=i.getStartPosition();if(e.insertSpaces){const a=e.visibleColumnFromColumn(t,r),l=e.indentSize,c=l-a%l;for(let d=0;d<c;d++)o+=\" \"}else o=\"\t\";return new Io(i,o,s)}static tab(e,t,i){const s=[];for(let o=0,r=i.length;o<r;o++){const a=i[o];if(a.isEmpty()){const l=t.getLineContent(a.startLineNumber);if(/^\\s*$/.test(l)&&t.tokenization.isCheapToTokenize(a.startLineNumber)){let c=this._goodIndentForLine(e,t,a.startLineNumber);c=c||\"\t\";const d=e.normalizeIndentation(c);if(!l.startsWith(d)){s[o]=new Io(new A(a.startLineNumber,1,a.startLineNumber,l.length+1),d,!0);continue}}s[o]=this._replaceJumpToNextIndent(e,t,a,!0)}else{if(a.startLineNumber===a.endLineNumber){const l=t.getLineMaxColumn(a.startLineNumber);if(a.startColumn!==1||a.endColumn!==l){s[o]=this._replaceJumpToNextIndent(e,t,a,!1);continue}}s[o]=new Zl(a,{isUnshift:!1,tabSize:e.tabSize,indentSize:e.indentSize,insertSpaces:e.insertSpaces,useTabStops:e.useTabStops,autoIndent:e.autoIndent},e.languageConfigurationService)}}return s}static compositionType(e,t,i,s,o,r,a,l){const c=s.map(d=>this._compositionType(i,d,o,r,a,l));return new Zr(4,c,{shouldPushStackElementBefore:VE(e,4),shouldPushStackElementAfter:!1})}static _compositionType(e,t,i,s,o,r){if(!t.isEmpty())return null;const a=t.getPosition(),l=Math.max(1,a.column-s),c=Math.min(e.getLineMaxColumn(a.lineNumber),a.column+o),d=new A(a.lineNumber,l,a.lineNumber,c);return e.getValueInRange(d)===i&&r===0?null:new CN(d,i,0,r)}static _typeCommand(e,t,i){return i?new WE(e,t,!0):new Io(e,t,!0)}static _enter(e,t,i,s){if(e.autoIndent===0)return Bn._typeCommand(s,`\n`,i);if(!t.tokenization.isCheapToTokenize(s.getStartPosition().lineNumber)||e.autoIndent===1){const l=t.getLineContent(s.startLineNumber),c=on(l).substring(0,s.startColumn-1);return Bn._typeCommand(s,`\n`+e.normalizeIndentation(c),i)}const o=eC(e.autoIndent,t,s,e.languageConfigurationService);if(o){if(o.indentAction===Ds.None)return Bn._typeCommand(s,`\n`+e.normalizeIndentation(o.indentation+o.appendText),i);if(o.indentAction===Ds.Indent)return Bn._typeCommand(s,`\n`+e.normalizeIndentation(o.indentation+o.appendText),i);if(o.indentAction===Ds.IndentOutdent){const l=e.normalizeIndentation(o.indentation),c=e.normalizeIndentation(o.indentation+o.appendText),d=`\n`+c+`\n`+l;return i?new WE(s,d,!0):new CN(s,d,-1,c.length-l.length,!0)}else if(o.indentAction===Ds.Outdent){const l=Bn.unshiftIndent(e,o.indentation);return Bn._typeCommand(s,`\n`+e.normalizeIndentation(l+o.appendText),i)}}const r=t.getLineContent(s.startLineNumber),a=on(r).substring(0,s.startColumn-1);if(e.autoIndent>=4){const l=L8e(e.autoIndent,t,s,{unshiftIndent:c=>Bn.unshiftIndent(e,c),shiftIndent:c=>Bn.shiftIndent(e,c),normalizeIndentation:c=>e.normalizeIndentation(c)},e.languageConfigurationService);if(l){let c=e.visibleColumnFromColumn(t,s.getEndPosition());const d=s.endColumn,u=t.getLineContent(s.endLineNumber),h=fr(u);if(h>=0?s=s.setEndPosition(s.endLineNumber,Math.max(s.endColumn,h+1)):s=s.setEndPosition(s.endLineNumber,t.getLineMaxColumn(s.endLineNumber)),i)return new WE(s,`\n`+e.normalizeIndentation(l.afterEnter),!0);{let f=0;return d<=h+1&&(e.insertSpaces||(c=Math.ceil(c/e.indentSize)),f=Math.min(c+1-e.normalizeIndentation(l.afterEnter).length-1,0)),new CN(s,`\n`+e.normalizeIndentation(l.afterEnter),0,f,!0)}}}return Bn._typeCommand(s,`\n`+e.normalizeIndentation(a),i)}static _isAutoIndentType(e,t,i){if(e.autoIndent<4)return!1;for(let s=0,o=i.length;s<o;s++)if(!t.tokenization.isCheapToTokenize(i[s].getEndPosition().lineNumber))return!1;return!0}static _runAutoIndentType(e,t,i,s){const o=ble(t,i.startLineNumber,i.startColumn),r=k8e(e.autoIndent,t,i,s,{shiftIndent:a=>Bn.shiftIndent(e,a),unshiftIndent:a=>Bn.unshiftIndent(e,a)},e.languageConfigurationService);if(r===null)return null;if(r!==e.normalizeIndentation(o)){const a=t.getLineFirstNonWhitespaceColumn(i.startLineNumber);return a===0?Bn._typeCommand(new A(i.startLineNumber,1,i.endLineNumber,i.endColumn),e.normalizeIndentation(r)+s,!1):Bn._typeCommand(new A(i.startLineNumber,1,i.endLineNumber,i.endColumn),e.normalizeIndentation(r)+t.getLineContent(i.startLineNumber).substring(a-1,i.startColumn-1)+s,!1)}return null}static _isAutoClosingOvertype(e,t,i,s,o){if(e.autoClosingOvertype===\"never\"||!e.autoClosingPairs.autoClosingPairsCloseSingleChar.has(o))return!1;for(let r=0,a=i.length;r<a;r++){const l=i[r];if(!l.isEmpty())return!1;const c=l.getPosition(),d=t.getLineContent(c.lineNumber);if(d.charAt(c.column-1)!==o)return!1;const h=vp(o);if((c.column>2?d.charCodeAt(c.column-2):0)===92&&h)return!1;if(e.autoClosingOvertype===\"auto\"){let g=!1;for(let p=0,_=s.length;p<_;p++){const b=s[p];if(c.lineNumber===b.startLineNumber&&c.column===b.startColumn){g=!0;break}}if(!g)return!1}}return!0}static _runAutoClosingOvertype(e,t,i,s,o){const r=[];for(let a=0,l=s.length;a<l;a++){const d=s[a].getPosition(),u=new A(d.lineNumber,d.column,d.lineNumber,d.column+1);r[a]=new Io(u,o)}return new Zr(4,r,{shouldPushStackElementBefore:VE(e,4),shouldPushStackElementAfter:!1})}static _isBeforeClosingBrace(e,t){const i=t.charAt(0),s=e.autoClosingPairs.autoClosingPairsOpenByStart.get(i)||[],o=e.autoClosingPairs.autoClosingPairsCloseByStart.get(i)||[],r=s.some(l=>t.startsWith(l.open)),a=o.some(l=>t.startsWith(l.close));return!r&&a}static _findAutoClosingPairOpen(e,t,i,s){const o=e.autoClosingPairs.autoClosingPairsOpenByEnd.get(s);if(!o)return null;let r=null;for(const a of o)if(r===null||a.open.length>r.open.length){let l=!0;for(const c of i)if(t.getValueInRange(new A(c.lineNumber,c.column-a.open.length+1,c.lineNumber,c.column))+s!==a.open){l=!1;break}l&&(r=a)}return r}static _findContainedAutoClosingPair(e,t){if(t.open.length<=1)return null;const i=t.close.charAt(t.close.length-1),s=e.autoClosingPairs.autoClosingPairsCloseByEnd.get(i)||[];let o=null;for(const r of s)r.open!==t.open&&t.open.includes(r.open)&&t.close.endsWith(r.close)&&(!o||r.open.length>o.open.length)&&(o=r);return o}static _getAutoClosingPairClose(e,t,i,s,o){for(const g of i)if(!g.isEmpty())return null;const r=i.map(g=>{const p=g.getPosition();return o?{lineNumber:p.lineNumber,beforeColumn:p.column-s.length,afterColumn:p.column}:{lineNumber:p.lineNumber,beforeColumn:p.column,afterColumn:p.column}}),a=this._findAutoClosingPairOpen(e,t,r.map(g=>new ee(g.lineNumber,g.beforeColumn)),s);if(!a)return null;let l,c;if(vp(s)?(l=e.autoClosingQuotes,c=e.shouldAutoCloseBefore.quote):(e.blockCommentStartToken?a.open.includes(e.blockCommentStartToken):!1)?(l=e.autoClosingComments,c=e.shouldAutoCloseBefore.comment):(l=e.autoClosingBrackets,c=e.shouldAutoCloseBefore.bracket),l===\"never\")return null;const u=this._findContainedAutoClosingPair(e,a),h=u?u.close:\"\";let f=!0;for(const g of r){const{lineNumber:p,beforeColumn:_,afterColumn:b}=g,w=t.getLineContent(p),y=w.substring(0,_-1),S=w.substring(b-1);if(S.startsWith(h)||(f=!1),S.length>0){const I=S.charAt(0);if(!Bn._isBeforeClosingBrace(e,S)&&!c(I))return null}if(a.open.length===1&&(s===\"'\"||s==='\"')&&l!==\"always\"){const I=cc(e.wordSeparators,[]);if(y.length>0){const N=y.charCodeAt(y.length-1);if(I.get(N)===0)return null}}if(!t.tokenization.isCheapToTokenize(p))return null;t.tokenization.forceTokenization(p);const x=t.tokenization.getLineTokens(p),k=xv(x,_-1);if(!a.shouldAutoClose(k,_-k.firstCharOffset))return null;const D=a.findNeutralCharacter();if(D){const I=t.tokenization.getTokenTypeIfInsertingCharacter(p,_,D);if(!a.isOK(I))return null}}return f?a.close.substring(0,a.close.length-h.length):a.close}static _runAutoClosingOpenCharType(e,t,i,s,o,r,a){const l=[];for(let c=0,d=s.length;c<d;c++){const u=s[c];l[c]=new _ce(u,o,!r,a)}return new Zr(4,l,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}static _shouldSurroundChar(e,t){return vp(t)?e.autoSurround===\"quotes\"||e.autoSurround===\"languageDefined\":e.autoSurround===\"brackets\"||e.autoSurround===\"languageDefined\"}static _isSurroundSelectionType(e,t,i,s){if(!Bn._shouldSurroundChar(e,s)||!e.surroundingPairs.hasOwnProperty(s))return!1;const o=vp(s);for(const r of i){if(r.isEmpty())return!1;let a=!0;for(let l=r.startLineNumber;l<=r.endLineNumber;l++){const c=t.getLineContent(l),d=l===r.startLineNumber?r.startColumn-1:0,u=l===r.endLineNumber?r.endColumn-1:c.length,h=c.substring(d,u);if(/[^ \\t]/.test(h)){a=!1;break}}if(a)return!1;if(o&&r.startLineNumber===r.endLineNumber&&r.startColumn+1===r.endColumn){const l=t.getValueInRange(r);if(vp(l))return!1}}return!0}static _runSurroundSelectionType(e,t,i,s,o){const r=[];for(let a=0,l=s.length;a<l;a++){const c=s[a],d=t.surroundingPairs[o];r[a]=new y8e(c,o,d)}return new Zr(0,r,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}static _isTypeInterceptorElectricChar(e,t,i){return!!(i.length===1&&t.tokenization.isCheapToTokenize(i[0].getEndPosition().lineNumber))}static _typeInterceptorElectricChar(e,t,i,s,o){if(!t.electricChars.hasOwnProperty(o)||!s.isEmpty())return null;const r=s.getPosition();i.tokenization.forceTokenization(r.lineNumber);const a=i.tokenization.getLineTokens(r.lineNumber);let l;try{l=t.onElectricCharacter(o,a,r.column)}catch(c){return Mt(c),null}if(!l)return null;if(l.matchOpenBracket){const c=(a.getLineContent()+o).lastIndexOf(l.matchOpenBracket)+1,d=i.bracketPairs.findMatchingBracketUp(l.matchOpenBracket,{lineNumber:r.lineNumber,column:c},500);if(d){if(d.startLineNumber===r.lineNumber)return null;const u=i.getLineContent(d.startLineNumber),h=on(u),f=t.normalizeIndentation(h),g=i.getLineContent(r.lineNumber),p=i.getLineFirstNonWhitespaceColumn(r.lineNumber)||r.column,_=g.substring(p-1,r.column-1),b=f+_+o,w=new A(r.lineNumber,1,r.lineNumber,r.column),y=new Io(w,b);return new Zr(s5(b,e),[y],{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!0})}}return null}static compositionEndWithInterceptors(e,t,i,s,o,r){if(!s)return null;let a=null;for(const u of s)if(a===null)a=u.insertedText;else if(a!==u.insertedText)return null;if(!a||a.length!==1)return null;const l=a;let c=!1;for(const u of s)if(u.deletedText.length!==0){c=!0;break}if(c){if(!Bn._shouldSurroundChar(t,l)||!t.surroundingPairs.hasOwnProperty(l))return null;const u=vp(l);for(const g of s)if(g.deletedSelectionStart!==0||g.deletedSelectionEnd!==g.deletedText.length||/^[ \\t]+$/.test(g.deletedText)||u&&vp(g.deletedText))return null;const h=[];for(const g of o){if(!g.isEmpty())return null;h.push(g.getPosition())}if(h.length!==s.length)return null;const f=[];for(let g=0,p=h.length;g<p;g++)f.push(new S8e(h[g],s[g].deletedText,t.surroundingPairs[l]));return new Zr(4,f,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}if(this._isAutoClosingOvertype(t,i,o,r,l)){const u=o.map(h=>new Io(new A(h.positionLineNumber,h.positionColumn,h.positionLineNumber,h.positionColumn+1),\"\",!1));return new Zr(4,u,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}const d=this._getAutoClosingPairClose(t,i,o,l,!0);return d!==null?this._runAutoClosingOpenCharType(e,t,i,o,l,!0,d):null}static typeWithInterceptors(e,t,i,s,o,r,a){if(!e&&a===`\n`){const d=[];for(let u=0,h=o.length;u<h;u++)d[u]=Bn._enter(i,s,!1,o[u]);return new Zr(4,d,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}if(!e&&this._isAutoIndentType(i,s,o)){const d=[];let u=!1;for(let h=0,f=o.length;h<f;h++)if(d[h]=this._runAutoIndentType(i,s,o[h],a),!d[h]){u=!0;break}if(!u)return new Zr(4,d,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}if(this._isAutoClosingOvertype(i,s,o,r,a))return this._runAutoClosingOvertype(t,i,s,o,a);if(!e){const d=this._getAutoClosingPairClose(i,s,o,a,!1);if(d)return this._runAutoClosingOpenCharType(t,i,s,o,a,!1,d)}if(!e&&this._isSurroundSelectionType(i,s,o,a))return this._runSurroundSelectionType(t,i,s,o,a);if(!e&&this._isTypeInterceptorElectricChar(i,s,o)){const d=this._typeInterceptorElectricChar(t,i,s,o[0],a);if(d)return d}const l=[];for(let d=0,u=o.length;d<u;d++)l[d]=new Io(o[d],a);const c=s5(a,t);return new Zr(c,l,{shouldPushStackElementBefore:VE(t,c),shouldPushStackElementAfter:!1})}static typeWithoutInterceptors(e,t,i,s,o){const r=[];for(let l=0,c=s.length;l<c;l++)r[l]=new Io(s[l],o);const a=s5(o,e);return new Zr(a,r,{shouldPushStackElementBefore:VE(e,a),shouldPushStackElementAfter:!1})}static lineInsertBefore(e,t,i){if(t===null||i===null)return[];const s=[];for(let o=0,r=i.length;o<r;o++){let a=i[o].positionLineNumber;if(a===1)s[o]=new WE(new A(1,1,1,1),`\n`);else{a--;const l=t.getLineMaxColumn(a);s[o]=this._enter(e,t,!1,new A(a,l,a,l))}}return s}static lineInsertAfter(e,t,i){if(t===null||i===null)return[];const s=[];for(let o=0,r=i.length;o<r;o++){const a=i[o].positionLineNumber,l=t.getLineMaxColumn(a);s[o]=this._enter(e,t,!1,new A(a,l,a,l))}return s}static lineBreakInsert(e,t,i){const s=[];for(let o=0,r=i.length;o<r;o++)s[o]=this._enter(e,t,!0,i[o]);return s}}class _ce extends CN{constructor(e,t,i,s){super(e,(i?t:\"\")+s,0,-s.length),this._openCharacter=t,this._closeCharacter=s,this.closeCharacterRange=null,this.enclosingRange=null}computeCursorState(e,t){const s=t.getInverseEditOperations()[0].range;return this.closeCharacterRange=new A(s.startLineNumber,s.endColumn-this._closeCharacter.length,s.endLineNumber,s.endColumn),this.enclosingRange=new A(s.startLineNumber,s.endColumn-this._openCharacter.length-this._closeCharacter.length,s.endLineNumber,s.endColumn),super.computeCursorState(e,t)}}class I8e{constructor(e,t,i,s,o,r){this.deletedText=e,this.deletedSelectionStart=t,this.deletedSelectionEnd=i,this.insertedText=s,this.insertedSelectionStart=o,this.insertedSelectionEnd=r}}function s5(n,e){return n===\" \"?e===5||e===6?6:5:4}function VE(n,e){return UX(n)&&!UX(e)?!0:n===5?!1:$X(n)!==$X(e)}function $X(n){return n===6||n===5?\"space\":n}function UX(n){return n===4||n===5||n===6}var W;(function(n){n.editorSimpleInput=new He(\"editorSimpleInput\",!1,!0),n.editorTextFocus=new He(\"editorTextFocus\",!1,v(\"editorTextFocus\",\"Whether the editor text has focus (cursor is blinking)\")),n.focus=new He(\"editorFocus\",!1,v(\"editorFocus\",\"Whether the editor or an editor widget has focus (e.g. focus is in the find widget)\")),n.textInputFocus=new He(\"textInputFocus\",!1,v(\"textInputFocus\",\"Whether an editor or a rich text input has focus (cursor is blinking)\")),n.readOnly=new He(\"editorReadonly\",!1,v(\"editorReadonly\",\"Whether the editor is read-only\")),n.inDiffEditor=new He(\"inDiffEditor\",!1,v(\"inDiffEditor\",\"Whether the context is a diff editor\")),n.isEmbeddedDiffEditor=new He(\"isEmbeddedDiffEditor\",!1,v(\"isEmbeddedDiffEditor\",\"Whether the context is an embedded diff editor\")),n.inMultiDiffEditor=new He(\"inMultiDiffEditor\",!1,v(\"inMultiDiffEditor\",\"Whether the context is a multi diff editor\")),n.multiDiffEditorAllCollapsed=new He(\"multiDiffEditorAllCollapsed\",void 0,v(\"multiDiffEditorAllCollapsed\",\"Whether all files in multi diff editor are collapsed\")),n.hasChanges=new He(\"diffEditorHasChanges\",!1,v(\"diffEditorHasChanges\",\"Whether the diff editor has changes\")),n.comparingMovedCode=new He(\"comparingMovedCode\",!1,v(\"comparingMovedCode\",\"Whether a moved code block is selected for comparison\")),n.accessibleDiffViewerVisible=new He(\"accessibleDiffViewerVisible\",!1,v(\"accessibleDiffViewerVisible\",\"Whether the accessible diff viewer is visible\")),n.diffEditorRenderSideBySideInlineBreakpointReached=new He(\"diffEditorRenderSideBySideInlineBreakpointReached\",!1,v(\"diffEditorRenderSideBySideInlineBreakpointReached\",\"Whether the diff editor render side by side inline breakpoint is reached\")),n.diffEditorInlineMode=new He(\"diffEditorInlineMode\",!1,v(\"diffEditorInlineMode\",\"Whether inline mode is active\")),n.diffEditorOriginalWritable=new He(\"diffEditorOriginalWritable\",!1,v(\"diffEditorOriginalWritable\",\"Whether modified is writable in the diff editor\")),n.diffEditorModifiedWritable=new He(\"diffEditorModifiedWritable\",!1,v(\"diffEditorModifiedWritable\",\"Whether modified is writable in the diff editor\")),n.diffEditorOriginalUri=new He(\"diffEditorOriginalUri\",\"\",v(\"diffEditorOriginalUri\",\"The uri of the original document\")),n.diffEditorModifiedUri=new He(\"diffEditorModifiedUri\",\"\",v(\"diffEditorModifiedUri\",\"The uri of the modified document\")),n.columnSelection=new He(\"editorColumnSelection\",!1,v(\"editorColumnSelection\",\"Whether `editor.columnSelection` is enabled\")),n.writable=n.readOnly.toNegated(),n.hasNonEmptySelection=new He(\"editorHasSelection\",!1,v(\"editorHasSelection\",\"Whether the editor has text selected\")),n.hasOnlyEmptySelection=n.hasNonEmptySelection.toNegated(),n.hasMultipleSelections=new He(\"editorHasMultipleSelections\",!1,v(\"editorHasMultipleSelections\",\"Whether the editor has multiple selections\")),n.hasSingleSelection=n.hasMultipleSelections.toNegated(),n.tabMovesFocus=new He(\"editorTabMovesFocus\",!1,v(\"editorTabMovesFocus\",\"Whether `Tab` will move focus out of the editor\")),n.tabDoesNotMoveFocus=n.tabMovesFocus.toNegated(),n.isInEmbeddedEditor=new He(\"isInEmbeddedEditor\",!1,!0),n.canUndo=new He(\"canUndo\",!1,!0),n.canRedo=new He(\"canRedo\",!1,!0),n.hoverVisible=new He(\"editorHoverVisible\",!1,v(\"editorHoverVisible\",\"Whether the editor hover is visible\")),n.hoverFocused=new He(\"editorHoverFocused\",!1,v(\"editorHoverFocused\",\"Whether the editor hover is focused\")),n.stickyScrollFocused=new He(\"stickyScrollFocused\",!1,v(\"stickyScrollFocused\",\"Whether the sticky scroll is focused\")),n.stickyScrollVisible=new He(\"stickyScrollVisible\",!1,v(\"stickyScrollVisible\",\"Whether the sticky scroll is visible\")),n.standaloneColorPickerVisible=new He(\"standaloneColorPickerVisible\",!1,v(\"standaloneColorPickerVisible\",\"Whether the standalone color picker is visible\")),n.standaloneColorPickerFocused=new He(\"standaloneColorPickerFocused\",!1,v(\"standaloneColorPickerFocused\",\"Whether the standalone color picker is focused\")),n.inCompositeEditor=new He(\"inCompositeEditor\",void 0,v(\"inCompositeEditor\",\"Whether the editor is part of a larger editor (e.g. notebooks)\")),n.notInCompositeEditor=n.inCompositeEditor.toNegated(),n.languageId=new He(\"editorLangId\",\"\",v(\"editorLangId\",\"The language identifier of the editor\")),n.hasCompletionItemProvider=new He(\"editorHasCompletionItemProvider\",!1,v(\"editorHasCompletionItemProvider\",\"Whether the editor has a completion item provider\")),n.hasCodeActionsProvider=new He(\"editorHasCodeActionsProvider\",!1,v(\"editorHasCodeActionsProvider\",\"Whether the editor has a code actions provider\")),n.hasCodeLensProvider=new He(\"editorHasCodeLensProvider\",!1,v(\"editorHasCodeLensProvider\",\"Whether the editor has a code lens provider\")),n.hasDefinitionProvider=new He(\"editorHasDefinitionProvider\",!1,v(\"editorHasDefinitionProvider\",\"Whether the editor has a definition provider\")),n.hasDeclarationProvider=new He(\"editorHasDeclarationProvider\",!1,v(\"editorHasDeclarationProvider\",\"Whether the editor has a declaration provider\")),n.hasImplementationProvider=new He(\"editorHasImplementationProvider\",!1,v(\"editorHasImplementationProvider\",\"Whether the editor has an implementation provider\")),n.hasTypeDefinitionProvider=new He(\"editorHasTypeDefinitionProvider\",!1,v(\"editorHasTypeDefinitionProvider\",\"Whether the editor has a type definition provider\")),n.hasHoverProvider=new He(\"editorHasHoverProvider\",!1,v(\"editorHasHoverProvider\",\"Whether the editor has a hover provider\")),n.hasDocumentHighlightProvider=new He(\"editorHasDocumentHighlightProvider\",!1,v(\"editorHasDocumentHighlightProvider\",\"Whether the editor has a document highlight provider\")),n.hasDocumentSymbolProvider=new He(\"editorHasDocumentSymbolProvider\",!1,v(\"editorHasDocumentSymbolProvider\",\"Whether the editor has a document symbol provider\")),n.hasReferenceProvider=new He(\"editorHasReferenceProvider\",!1,v(\"editorHasReferenceProvider\",\"Whether the editor has a reference provider\")),n.hasRenameProvider=new He(\"editorHasRenameProvider\",!1,v(\"editorHasRenameProvider\",\"Whether the editor has a rename provider\")),n.hasSignatureHelpProvider=new He(\"editorHasSignatureHelpProvider\",!1,v(\"editorHasSignatureHelpProvider\",\"Whether the editor has a signature help provider\")),n.hasInlayHintsProvider=new He(\"editorHasInlayHintsProvider\",!1,v(\"editorHasInlayHintsProvider\",\"Whether the editor has an inline hints provider\")),n.hasDocumentFormattingProvider=new He(\"editorHasDocumentFormattingProvider\",!1,v(\"editorHasDocumentFormattingProvider\",\"Whether the editor has a document formatting provider\")),n.hasDocumentSelectionFormattingProvider=new He(\"editorHasDocumentSelectionFormattingProvider\",!1,v(\"editorHasDocumentSelectionFormattingProvider\",\"Whether the editor has a document selection formatting provider\")),n.hasMultipleDocumentFormattingProvider=new He(\"editorHasMultipleDocumentFormattingProvider\",!1,v(\"editorHasMultipleDocumentFormattingProvider\",\"Whether the editor has multiple document formatting providers\")),n.hasMultipleDocumentSelectionFormattingProvider=new He(\"editorHasMultipleDocumentSelectionFormattingProvider\",!1,v(\"editorHasMultipleDocumentSelectionFormattingProvider\",\"Whether the editor has multiple document selection formatting providers\"))})(W||(W={}));const xi=0;class ts extends Us{runEditorCommand(e,t,i){const s=t._getViewModel();s&&this.runCoreEditorCommand(s,i||{})}}var Do;(function(n){const e=function(i){if(!Er(i))return!1;const s=i;return!(!Pr(s.to)||!na(s.by)&&!Pr(s.by)||!na(s.value)&&!Nm(s.value)||!na(s.revealCursor)&&!Vre(s.revealCursor))};n.metadata={description:\"Scroll editor in the given direction\",args:[{name:\"Editor scroll argument object\",description:\"Property-value pairs that can be passed through this argument:\\n\t\t\t\t\t* 'to': A mandatory direction value.\\n\t\t\t\t\t\t```\\n\t\t\t\t\t\t'up', 'down'\\n\t\t\t\t\t\t```\\n\t\t\t\t\t* 'by': Unit to move. Default is computed based on 'to' value.\\n\t\t\t\t\t\t```\\n\t\t\t\t\t\t'line', 'wrappedLine', 'page', 'halfPage', 'editor'\\n\t\t\t\t\t\t```\\n\t\t\t\t\t* 'value': Number of units to move. Default is '1'.\\n\t\t\t\t\t* 'revealCursor': If 'true' reveals the cursor if it is outside view port.\\n\t\t\t\t\",constraint:e,schema:{type:\"object\",required:[\"to\"],properties:{to:{type:\"string\",enum:[\"up\",\"down\"]},by:{type:\"string\",enum:[\"line\",\"wrappedLine\",\"page\",\"halfPage\",\"editor\"]},value:{type:\"number\",default:1},revealCursor:{type:\"boolean\"}}}}]},n.RawDirection={Up:\"up\",Right:\"right\",Down:\"down\",Left:\"left\"},n.RawUnit={Line:\"line\",WrappedLine:\"wrappedLine\",Page:\"page\",HalfPage:\"halfPage\",Editor:\"editor\",Column:\"column\"};function t(i){let s;switch(i.to){case n.RawDirection.Up:s=1;break;case n.RawDirection.Right:s=2;break;case n.RawDirection.Down:s=3;break;case n.RawDirection.Left:s=4;break;default:return null}let o;switch(i.by){case n.RawUnit.Line:o=1;break;case n.RawUnit.WrappedLine:o=2;break;case n.RawUnit.Page:o=3;break;case n.RawUnit.HalfPage:o=4;break;case n.RawUnit.Editor:o=5;break;case n.RawUnit.Column:o=6;break;default:o=2}const r=Math.floor(i.value||1),a=!!i.revealCursor;return{direction:s,unit:o,value:r,revealCursor:a,select:!!i.select}}n.parse=t})(Do||(Do={}));var L1;(function(n){const e=function(t){if(!Er(t))return!1;const i=t;return!(!Nm(i.lineNumber)&&!Pr(i.lineNumber)||!na(i.at)&&!Pr(i.at))};n.metadata={description:\"Reveal the given line at the given logical position\",args:[{name:\"Reveal line argument object\",description:\"Property-value pairs that can be passed through this argument:\\n\t\t\t\t\t* 'lineNumber': A mandatory line number value.\\n\t\t\t\t\t* 'at': Logical position at which line has to be revealed.\\n\t\t\t\t\t\t```\\n\t\t\t\t\t\t'top', 'center', 'bottom'\\n\t\t\t\t\t\t```\\n\t\t\t\t\",constraint:e,schema:{type:\"object\",required:[\"lineNumber\"],properties:{lineNumber:{type:[\"number\",\"string\"]},at:{type:\"string\",enum:[\"top\",\"center\",\"bottom\"]}}}}]},n.RawAtArgument={Top:\"top\",Center:\"center\",Bottom:\"bottom\"}})(L1||(L1={}));class OB{constructor(e){e.addImplementation(1e4,\"code-editor\",(t,i)=>{const s=t.get(vi).getFocusedCodeEditor();return s&&s.hasTextFocus()?this._runEditorCommand(t,s,i):!1}),e.addImplementation(1e3,\"generic-dom-input-textarea\",(t,i)=>{const s=Ao();return s&&[\"input\",\"textarea\"].indexOf(s.tagName.toLowerCase())>=0?(this.runDOMCommand(s),!0):!1}),e.addImplementation(0,\"generic-dom\",(t,i)=>{const s=t.get(vi).getActiveCodeEditor();return s?(s.focus(),this._runEditorCommand(t,s,i)):!1})}_runEditorCommand(e,t,i){const s=this.runEditorCommand(e,t,i);return s||!0}}var io;(function(n){class e extends ts{constructor(w){super(w),this._inSelectionMode=w.inSelectionMode}runCoreEditorCommand(w,y){if(!y.position)return;w.model.pushStackElement(),w.setCursorStates(y.source,3,[po.moveTo(w,w.getPrimaryCursorState(),this._inSelectionMode,y.position,y.viewPosition)])&&y.revealType!==2&&w.revealAllCursors(y.source,!0,!0)}}n.MoveTo=Fe(new e({id:\"_moveTo\",inSelectionMode:!1,precondition:void 0})),n.MoveToSelect=Fe(new e({id:\"_moveToSelect\",inSelectionMode:!0,precondition:void 0}));class t extends ts{runCoreEditorCommand(w,y){w.model.pushStackElement();const S=this._getColumnSelectResult(w,w.getPrimaryCursorState(),w.getCursorColumnSelectData(),y);S!==null&&(w.setCursorStates(y.source,3,S.viewStates.map(x=>gi.fromViewState(x))),w.setCursorColumnSelectData({isReal:!0,fromViewLineNumber:S.fromLineNumber,fromViewVisualColumn:S.fromVisualColumn,toViewLineNumber:S.toLineNumber,toViewVisualColumn:S.toVisualColumn}),S.reversed?w.revealTopMostCursor(y.source):w.revealBottomMostCursor(y.source))}}n.ColumnSelect=Fe(new class extends t{constructor(){super({id:\"columnSelect\",precondition:void 0})}_getColumnSelectResult(b,w,y,S){if(typeof S.position>\"u\"||typeof S.viewPosition>\"u\"||typeof S.mouseColumn>\"u\")return null;const x=b.model.validatePosition(S.position),k=b.coordinatesConverter.validateViewPosition(new ee(S.viewPosition.lineNumber,S.viewPosition.column),x),D=S.doColumnSelect?y.fromViewLineNumber:k.lineNumber,I=S.doColumnSelect?y.fromViewVisualColumn:S.mouseColumn-1;return mv.columnSelect(b.cursorConfig,b,D,I,k.lineNumber,S.mouseColumn-1)}}),n.CursorColumnSelectLeft=Fe(new class extends t{constructor(){super({id:\"cursorColumnSelectLeft\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:3599,linux:{primary:0}}})}_getColumnSelectResult(b,w,y,S){return mv.columnSelectLeft(b.cursorConfig,b,y)}}),n.CursorColumnSelectRight=Fe(new class extends t{constructor(){super({id:\"cursorColumnSelectRight\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:3601,linux:{primary:0}}})}_getColumnSelectResult(b,w,y,S){return mv.columnSelectRight(b.cursorConfig,b,y)}});class i extends t{constructor(w){super(w),this._isPaged=w.isPaged}_getColumnSelectResult(w,y,S,x){return mv.columnSelectUp(w.cursorConfig,w,S,this._isPaged)}}n.CursorColumnSelectUp=Fe(new i({isPaged:!1,id:\"cursorColumnSelectUp\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:3600,linux:{primary:0}}})),n.CursorColumnSelectPageUp=Fe(new i({isPaged:!0,id:\"cursorColumnSelectPageUp\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:3595,linux:{primary:0}}}));class s extends t{constructor(w){super(w),this._isPaged=w.isPaged}_getColumnSelectResult(w,y,S,x){return mv.columnSelectDown(w.cursorConfig,w,S,this._isPaged)}}n.CursorColumnSelectDown=Fe(new s({isPaged:!1,id:\"cursorColumnSelectDown\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:3602,linux:{primary:0}}})),n.CursorColumnSelectPageDown=Fe(new s({isPaged:!0,id:\"cursorColumnSelectPageDown\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:3596,linux:{primary:0}}}));class o extends ts{constructor(){super({id:\"cursorMove\",precondition:void 0,metadata:tA.metadata})}runCoreEditorCommand(w,y){const S=tA.parse(y);S&&this._runCursorMove(w,y.source,S)}_runCursorMove(w,y,S){w.model.pushStackElement(),w.setCursorStates(y,3,o._move(w,w.getCursorStates(),S)),w.revealAllCursors(y,!0)}static _move(w,y,S){const x=S.select,k=S.value;switch(S.direction){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return po.simpleMove(w,y,S.direction,x,k,S.unit);case 11:case 13:case 12:case 14:return po.viewportMove(w,y,S.direction,x,k);default:return null}}}n.CursorMoveImpl=o,n.CursorMove=Fe(new o);class r extends ts{constructor(w){super(w),this._staticArgs=w.args}runCoreEditorCommand(w,y){let S=this._staticArgs;this._staticArgs.value===-1&&(S={direction:this._staticArgs.direction,unit:this._staticArgs.unit,select:this._staticArgs.select,value:y.pageSize||w.cursorConfig.pageSize}),w.model.pushStackElement(),w.setCursorStates(y.source,3,po.simpleMove(w,w.getCursorStates(),S.direction,S.select,S.value,S.unit)),w.revealAllCursors(y.source,!0)}}n.CursorLeft=Fe(new r({args:{direction:0,unit:0,select:!1,value:1},id:\"cursorLeft\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:15,mac:{primary:15,secondary:[288]}}})),n.CursorLeftSelect=Fe(new r({args:{direction:0,unit:0,select:!0,value:1},id:\"cursorLeftSelect\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:1039}})),n.CursorRight=Fe(new r({args:{direction:1,unit:0,select:!1,value:1},id:\"cursorRight\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:17,mac:{primary:17,secondary:[292]}}})),n.CursorRightSelect=Fe(new r({args:{direction:1,unit:0,select:!0,value:1},id:\"cursorRightSelect\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:1041}})),n.CursorUp=Fe(new r({args:{direction:2,unit:2,select:!1,value:1},id:\"cursorUp\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:16,mac:{primary:16,secondary:[302]}}})),n.CursorUpSelect=Fe(new r({args:{direction:2,unit:2,select:!0,value:1},id:\"cursorUpSelect\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:1040,secondary:[3088],mac:{primary:1040},linux:{primary:1040}}})),n.CursorPageUp=Fe(new r({args:{direction:2,unit:2,select:!1,value:-1},id:\"cursorPageUp\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:11}})),n.CursorPageUpSelect=Fe(new r({args:{direction:2,unit:2,select:!0,value:-1},id:\"cursorPageUpSelect\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:1035}})),n.CursorDown=Fe(new r({args:{direction:3,unit:2,select:!1,value:1},id:\"cursorDown\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:18,mac:{primary:18,secondary:[300]}}})),n.CursorDownSelect=Fe(new r({args:{direction:3,unit:2,select:!0,value:1},id:\"cursorDownSelect\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:1042,secondary:[3090],mac:{primary:1042},linux:{primary:1042}}})),n.CursorPageDown=Fe(new r({args:{direction:3,unit:2,select:!1,value:-1},id:\"cursorPageDown\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:12}})),n.CursorPageDownSelect=Fe(new r({args:{direction:3,unit:2,select:!0,value:-1},id:\"cursorPageDownSelect\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:1036}})),n.CreateCursor=Fe(new class extends ts{constructor(){super({id:\"createCursor\",precondition:void 0})}runCoreEditorCommand(b,w){if(!w.position)return;let y;w.wholeLine?y=po.line(b,b.getPrimaryCursorState(),!1,w.position,w.viewPosition):y=po.moveTo(b,b.getPrimaryCursorState(),!1,w.position,w.viewPosition);const S=b.getCursorStates();if(S.length>1){const x=y.modelState?y.modelState.position:null,k=y.viewState?y.viewState.position:null;for(let D=0,I=S.length;D<I;D++){const N=S[D];if(!(x&&!N.modelState.selection.containsPosition(x))&&!(k&&!N.viewState.selection.containsPosition(k))){S.splice(D,1),b.model.pushStackElement(),b.setCursorStates(w.source,3,S);return}}}S.push(y),b.model.pushStackElement(),b.setCursorStates(w.source,3,S)}}),n.LastCursorMoveToSelect=Fe(new class extends ts{constructor(){super({id:\"_lastCursorMoveToSelect\",precondition:void 0})}runCoreEditorCommand(b,w){if(!w.position)return;const y=b.getLastAddedCursorIndex(),S=b.getCursorStates(),x=S.slice(0);x[y]=po.moveTo(b,S[y],!0,w.position,w.viewPosition),b.model.pushStackElement(),b.setCursorStates(w.source,3,x)}});class a extends ts{constructor(w){super(w),this._inSelectionMode=w.inSelectionMode}runCoreEditorCommand(w,y){w.model.pushStackElement(),w.setCursorStates(y.source,3,po.moveToBeginningOfLine(w,w.getCursorStates(),this._inSelectionMode)),w.revealAllCursors(y.source,!0)}}n.CursorHome=Fe(new a({inSelectionMode:!1,id:\"cursorHome\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:14,mac:{primary:14,secondary:[2063]}}})),n.CursorHomeSelect=Fe(new a({inSelectionMode:!0,id:\"cursorHomeSelect\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:1038,mac:{primary:1038,secondary:[3087]}}}));class l extends ts{constructor(w){super(w),this._inSelectionMode=w.inSelectionMode}runCoreEditorCommand(w,y){w.model.pushStackElement(),w.setCursorStates(y.source,3,this._exec(w.getCursorStates())),w.revealAllCursors(y.source,!0)}_exec(w){const y=[];for(let S=0,x=w.length;S<x;S++){const k=w[S],D=k.modelState.position.lineNumber;y[S]=gi.fromModelState(k.modelState.move(this._inSelectionMode,D,1,0))}return y}}n.CursorLineStart=Fe(new l({inSelectionMode:!1,id:\"cursorLineStart\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:0,mac:{primary:287}}})),n.CursorLineStartSelect=Fe(new l({inSelectionMode:!0,id:\"cursorLineStartSelect\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:0,mac:{primary:1311}}}));class c extends ts{constructor(w){super(w),this._inSelectionMode=w.inSelectionMode}runCoreEditorCommand(w,y){w.model.pushStackElement(),w.setCursorStates(y.source,3,po.moveToEndOfLine(w,w.getCursorStates(),this._inSelectionMode,y.sticky||!1)),w.revealAllCursors(y.source,!0)}}n.CursorEnd=Fe(new c({inSelectionMode:!1,id:\"cursorEnd\",precondition:void 0,kbOpts:{args:{sticky:!1},weight:xi,kbExpr:W.textInputFocus,primary:13,mac:{primary:13,secondary:[2065]}},metadata:{description:\"Go to End\",args:[{name:\"args\",schema:{type:\"object\",properties:{sticky:{description:v(\"stickydesc\",\"Stick to the end even when going to longer lines\"),type:\"boolean\",default:!1}}}}]}})),n.CursorEndSelect=Fe(new c({inSelectionMode:!0,id:\"cursorEndSelect\",precondition:void 0,kbOpts:{args:{sticky:!1},weight:xi,kbExpr:W.textInputFocus,primary:1037,mac:{primary:1037,secondary:[3089]}},metadata:{description:\"Select to End\",args:[{name:\"args\",schema:{type:\"object\",properties:{sticky:{description:v(\"stickydesc\",\"Stick to the end even when going to longer lines\"),type:\"boolean\",default:!1}}}}]}}));class d extends ts{constructor(w){super(w),this._inSelectionMode=w.inSelectionMode}runCoreEditorCommand(w,y){w.model.pushStackElement(),w.setCursorStates(y.source,3,this._exec(w,w.getCursorStates())),w.revealAllCursors(y.source,!0)}_exec(w,y){const S=[];for(let x=0,k=y.length;x<k;x++){const D=y[x],I=D.modelState.position.lineNumber,N=w.model.getLineMaxColumn(I);S[x]=gi.fromModelState(D.modelState.move(this._inSelectionMode,I,N,0))}return S}}n.CursorLineEnd=Fe(new d({inSelectionMode:!1,id:\"cursorLineEnd\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:0,mac:{primary:291}}})),n.CursorLineEndSelect=Fe(new d({inSelectionMode:!0,id:\"cursorLineEndSelect\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:0,mac:{primary:1315}}}));class u extends ts{constructor(w){super(w),this._inSelectionMode=w.inSelectionMode}runCoreEditorCommand(w,y){w.model.pushStackElement(),w.setCursorStates(y.source,3,po.moveToBeginningOfBuffer(w,w.getCursorStates(),this._inSelectionMode)),w.revealAllCursors(y.source,!0)}}n.CursorTop=Fe(new u({inSelectionMode:!1,id:\"cursorTop\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:2062,mac:{primary:2064}}})),n.CursorTopSelect=Fe(new u({inSelectionMode:!0,id:\"cursorTopSelect\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:3086,mac:{primary:3088}}}));class h extends ts{constructor(w){super(w),this._inSelectionMode=w.inSelectionMode}runCoreEditorCommand(w,y){w.model.pushStackElement(),w.setCursorStates(y.source,3,po.moveToEndOfBuffer(w,w.getCursorStates(),this._inSelectionMode)),w.revealAllCursors(y.source,!0)}}n.CursorBottom=Fe(new h({inSelectionMode:!1,id:\"cursorBottom\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:2061,mac:{primary:2066}}})),n.CursorBottomSelect=Fe(new h({inSelectionMode:!0,id:\"cursorBottomSelect\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:3085,mac:{primary:3090}}}));class f extends ts{constructor(){super({id:\"editorScroll\",precondition:void 0,metadata:Do.metadata})}determineScrollMethod(w){const y=[6],S=[1,2,3,4,5,6],x=[4,2],k=[1,3];return y.includes(w.unit)&&x.includes(w.direction)?this._runHorizontalEditorScroll.bind(this):S.includes(w.unit)&&k.includes(w.direction)?this._runVerticalEditorScroll.bind(this):null}runCoreEditorCommand(w,y){const S=Do.parse(y);if(!S)return;const x=this.determineScrollMethod(S);x&&x(w,y.source,S)}_runVerticalEditorScroll(w,y,S){const x=this._computeDesiredScrollTop(w,S);if(S.revealCursor){const k=w.getCompletelyVisibleViewRangeAtScrollTop(x);w.setCursorStates(y,3,[po.findPositionInViewportIfOutside(w,w.getPrimaryCursorState(),k,S.select)])}w.viewLayout.setScrollPosition({scrollTop:x},0)}_computeDesiredScrollTop(w,y){if(y.unit===1){const k=w.viewLayout.getFutureViewport(),D=w.getCompletelyVisibleViewRangeAtScrollTop(k.top),I=w.coordinatesConverter.convertViewRangeToModelRange(D);let N;y.direction===1?N=Math.max(1,I.startLineNumber-y.value):N=Math.min(w.model.getLineCount(),I.startLineNumber+y.value);const P=w.coordinatesConverter.convertModelPositionToViewPosition(new ee(N,1));return w.viewLayout.getVerticalOffsetForLineNumber(P.lineNumber)}if(y.unit===5){let k=0;return y.direction===3&&(k=w.model.getLineCount()-w.cursorConfig.pageSize),w.viewLayout.getVerticalOffsetForLineNumber(k)}let S;y.unit===3?S=w.cursorConfig.pageSize*y.value:y.unit===4?S=Math.round(w.cursorConfig.pageSize/2)*y.value:S=y.value;const x=(y.direction===1?-1:1)*S;return w.viewLayout.getCurrentScrollTop()+x*w.cursorConfig.lineHeight}_runHorizontalEditorScroll(w,y,S){const x=this._computeDesiredScrollLeft(w,S);w.viewLayout.setScrollPosition({scrollLeft:x},0)}_computeDesiredScrollLeft(w,y){const S=(y.direction===4?-1:1)*y.value;return w.viewLayout.getCurrentScrollLeft()+S*w.cursorConfig.typicalHalfwidthCharacterWidth}}n.EditorScrollImpl=f,n.EditorScroll=Fe(new f),n.ScrollLineUp=Fe(new class extends ts{constructor(){super({id:\"scrollLineUp\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:2064,mac:{primary:267}}})}runCoreEditorCommand(b,w){n.EditorScroll.runCoreEditorCommand(b,{to:Do.RawDirection.Up,by:Do.RawUnit.WrappedLine,value:1,revealCursor:!1,select:!1,source:w.source})}}),n.ScrollPageUp=Fe(new class extends ts{constructor(){super({id:\"scrollPageUp\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:2059,win:{primary:523},linux:{primary:523}}})}runCoreEditorCommand(b,w){n.EditorScroll.runCoreEditorCommand(b,{to:Do.RawDirection.Up,by:Do.RawUnit.Page,value:1,revealCursor:!1,select:!1,source:w.source})}}),n.ScrollEditorTop=Fe(new class extends ts{constructor(){super({id:\"scrollEditorTop\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus}})}runCoreEditorCommand(b,w){n.EditorScroll.runCoreEditorCommand(b,{to:Do.RawDirection.Up,by:Do.RawUnit.Editor,value:1,revealCursor:!1,select:!1,source:w.source})}}),n.ScrollLineDown=Fe(new class extends ts{constructor(){super({id:\"scrollLineDown\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:2066,mac:{primary:268}}})}runCoreEditorCommand(b,w){n.EditorScroll.runCoreEditorCommand(b,{to:Do.RawDirection.Down,by:Do.RawUnit.WrappedLine,value:1,revealCursor:!1,select:!1,source:w.source})}}),n.ScrollPageDown=Fe(new class extends ts{constructor(){super({id:\"scrollPageDown\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:2060,win:{primary:524},linux:{primary:524}}})}runCoreEditorCommand(b,w){n.EditorScroll.runCoreEditorCommand(b,{to:Do.RawDirection.Down,by:Do.RawUnit.Page,value:1,revealCursor:!1,select:!1,source:w.source})}}),n.ScrollEditorBottom=Fe(new class extends ts{constructor(){super({id:\"scrollEditorBottom\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus}})}runCoreEditorCommand(b,w){n.EditorScroll.runCoreEditorCommand(b,{to:Do.RawDirection.Down,by:Do.RawUnit.Editor,value:1,revealCursor:!1,select:!1,source:w.source})}}),n.ScrollLeft=Fe(new class extends ts{constructor(){super({id:\"scrollLeft\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus}})}runCoreEditorCommand(b,w){n.EditorScroll.runCoreEditorCommand(b,{to:Do.RawDirection.Left,by:Do.RawUnit.Column,value:2,revealCursor:!1,select:!1,source:w.source})}}),n.ScrollRight=Fe(new class extends ts{constructor(){super({id:\"scrollRight\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus}})}runCoreEditorCommand(b,w){n.EditorScroll.runCoreEditorCommand(b,{to:Do.RawDirection.Right,by:Do.RawUnit.Column,value:2,revealCursor:!1,select:!1,source:w.source})}});class g extends ts{constructor(w){super(w),this._inSelectionMode=w.inSelectionMode}runCoreEditorCommand(w,y){y.position&&(w.model.pushStackElement(),w.setCursorStates(y.source,3,[po.word(w,w.getPrimaryCursorState(),this._inSelectionMode,y.position)]),y.revealType!==2&&w.revealAllCursors(y.source,!0,!0))}}n.WordSelect=Fe(new g({inSelectionMode:!1,id:\"_wordSelect\",precondition:void 0})),n.WordSelectDrag=Fe(new g({inSelectionMode:!0,id:\"_wordSelectDrag\",precondition:void 0})),n.LastCursorWordSelect=Fe(new class extends ts{constructor(){super({id:\"lastCursorWordSelect\",precondition:void 0})}runCoreEditorCommand(b,w){if(!w.position)return;const y=b.getLastAddedCursorIndex(),S=b.getCursorStates(),x=S.slice(0),k=S[y];x[y]=po.word(b,k,k.modelState.hasSelection(),w.position),b.model.pushStackElement(),b.setCursorStates(w.source,3,x)}});class p extends ts{constructor(w){super(w),this._inSelectionMode=w.inSelectionMode}runCoreEditorCommand(w,y){y.position&&(w.model.pushStackElement(),w.setCursorStates(y.source,3,[po.line(w,w.getPrimaryCursorState(),this._inSelectionMode,y.position,y.viewPosition)]),y.revealType!==2&&w.revealAllCursors(y.source,!1,!0))}}n.LineSelect=Fe(new p({inSelectionMode:!1,id:\"_lineSelect\",precondition:void 0})),n.LineSelectDrag=Fe(new p({inSelectionMode:!0,id:\"_lineSelectDrag\",precondition:void 0}));class _ extends ts{constructor(w){super(w),this._inSelectionMode=w.inSelectionMode}runCoreEditorCommand(w,y){if(!y.position)return;const S=w.getLastAddedCursorIndex(),x=w.getCursorStates(),k=x.slice(0);k[S]=po.line(w,x[S],this._inSelectionMode,y.position,y.viewPosition),w.model.pushStackElement(),w.setCursorStates(y.source,3,k)}}n.LastCursorLineSelect=Fe(new _({inSelectionMode:!1,id:\"lastCursorLineSelect\",precondition:void 0})),n.LastCursorLineSelectDrag=Fe(new _({inSelectionMode:!0,id:\"lastCursorLineSelectDrag\",precondition:void 0})),n.CancelSelection=Fe(new class extends ts{constructor(){super({id:\"cancelSelection\",precondition:W.hasNonEmptySelection,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:9,secondary:[1033]}})}runCoreEditorCommand(b,w){b.model.pushStackElement(),b.setCursorStates(w.source,3,[po.cancelSelection(b,b.getPrimaryCursorState())]),b.revealAllCursors(w.source,!0)}}),n.RemoveSecondaryCursors=Fe(new class extends ts{constructor(){super({id:\"removeSecondaryCursors\",precondition:W.hasMultipleSelections,kbOpts:{weight:xi+1,kbExpr:W.textInputFocus,primary:9,secondary:[1033]}})}runCoreEditorCommand(b,w){b.model.pushStackElement(),b.setCursorStates(w.source,3,[b.getPrimaryCursorState()]),b.revealAllCursors(w.source,!0),Ih(v(\"removedCursor\",\"Removed secondary cursors\"))}}),n.RevealLine=Fe(new class extends ts{constructor(){super({id:\"revealLine\",precondition:void 0,metadata:L1.metadata})}runCoreEditorCommand(b,w){const y=w,S=y.lineNumber||0;let x=typeof S==\"number\"?S+1:parseInt(S)+1;x<1&&(x=1);const k=b.model.getLineCount();x>k&&(x=k);const D=new A(x,1,x,b.model.getLineMaxColumn(x));let I=0;if(y.at)switch(y.at){case L1.RawAtArgument.Top:I=3;break;case L1.RawAtArgument.Center:I=1;break;case L1.RawAtArgument.Bottom:I=4;break}const N=b.coordinatesConverter.convertModelRangeToViewRange(D);b.revealRange(w.source,!1,N,I,0)}}),n.SelectAll=new class extends OB{constructor(){super(bPe)}runDOMCommand(b){lc&&(b.focus(),b.select()),b.ownerDocument.execCommand(\"selectAll\")}runEditorCommand(b,w,y){const S=w._getViewModel();S&&this.runCoreEditorCommand(S,y)}runCoreEditorCommand(b,w){b.model.pushStackElement(),b.setCursorStates(\"keyboard\",3,[po.selectAll(b,b.getPrimaryCursorState())])}},n.SetSelection=Fe(new class extends ts{constructor(){super({id:\"setSelection\",precondition:void 0})}runCoreEditorCommand(b,w){w.selection&&(b.model.pushStackElement(),b.setCursorStates(w.source,3,[gi.fromModelSelection(w.selection)]))}})})(io||(io={}));const E8e=pe.and(W.textInputFocus,W.columnSelection);function Hw(n,e){Hr.registerKeybindingRule({id:n,primary:e,when:E8e,weight:xi+1})}Hw(io.CursorColumnSelectLeft.id,1039);Hw(io.CursorColumnSelectRight.id,1041);Hw(io.CursorColumnSelectUp.id,1040);Hw(io.CursorColumnSelectPageUp.id,1035);Hw(io.CursorColumnSelectDown.id,1042);Hw(io.CursorColumnSelectPageDown.id,1036);function jX(n){return n.register(),n}var tC;(function(n){class e extends Us{runEditorCommand(i,s,o){const r=s._getViewModel();r&&this.runCoreEditingCommand(s,r,o||{})}}n.CoreEditingCommand=e,n.LineBreakInsert=Fe(new class extends e{constructor(){super({id:\"lineBreakInsert\",precondition:W.writable,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:0,mac:{primary:301}}})}runCoreEditingCommand(t,i,s){t.pushUndoStop(),t.executeCommands(this.id,Bn.lineBreakInsert(i.cursorConfig,i.model,i.getCursorStates().map(o=>o.modelState.selection)))}}),n.Outdent=Fe(new class extends e{constructor(){super({id:\"outdent\",precondition:W.writable,kbOpts:{weight:xi,kbExpr:pe.and(W.editorTextFocus,W.tabDoesNotMoveFocus),primary:1026}})}runCoreEditingCommand(t,i,s){t.pushUndoStop(),t.executeCommands(this.id,Bn.outdent(i.cursorConfig,i.model,i.getCursorStates().map(o=>o.modelState.selection))),t.pushUndoStop()}}),n.Tab=Fe(new class extends e{constructor(){super({id:\"tab\",precondition:W.writable,kbOpts:{weight:xi,kbExpr:pe.and(W.editorTextFocus,W.tabDoesNotMoveFocus),primary:2}})}runCoreEditingCommand(t,i,s){t.pushUndoStop(),t.executeCommands(this.id,Bn.tab(i.cursorConfig,i.model,i.getCursorStates().map(o=>o.modelState.selection))),t.pushUndoStop()}}),n.DeleteLeft=Fe(new class extends e{constructor(){super({id:\"deleteLeft\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:1,secondary:[1025],mac:{primary:1,secondary:[1025,294,257]}}})}runCoreEditingCommand(t,i,s){const[o,r]=m0.deleteLeft(i.getPrevEditOperationType(),i.cursorConfig,i.model,i.getCursorStates().map(a=>a.modelState.selection),i.getCursorAutoClosedCharacters());o&&t.pushUndoStop(),t.executeCommands(this.id,r),i.setPrevEditOperationType(2)}}),n.DeleteRight=Fe(new class extends e{constructor(){super({id:\"deleteRight\",precondition:void 0,kbOpts:{weight:xi,kbExpr:W.textInputFocus,primary:20,mac:{primary:20,secondary:[290,276]}}})}runCoreEditingCommand(t,i,s){const[o,r]=m0.deleteRight(i.getPrevEditOperationType(),i.cursorConfig,i.model,i.getCursorStates().map(a=>a.modelState.selection));o&&t.pushUndoStop(),t.executeCommands(this.id,r),i.setPrevEditOperationType(3)}}),n.Undo=new class extends OB{constructor(){super(rle)}runDOMCommand(t){t.ownerDocument.execCommand(\"undo\")}runEditorCommand(t,i,s){if(!(!i.hasModel()||i.getOption(91)===!0))return i.getModel().undo()}},n.Redo=new class extends OB{constructor(){super(ale)}runDOMCommand(t){t.ownerDocument.execCommand(\"redo\")}runEditorCommand(t,i,s){if(!(!i.hasModel()||i.getOption(91)===!0))return i.getModel().redo()}}})(tC||(tC={}));class KX extends SM{constructor(e,t,i){super({id:e,precondition:void 0,metadata:i}),this._handlerId=t}runCommand(e,t){const i=e.get(vi).getFocusedCodeEditor();i&&i.trigger(\"keyboard\",this._handlerId,t)}}function Q0(n,e){jX(new KX(\"default:\"+n,n)),jX(new KX(n,n,e))}Q0(\"type\",{description:\"Type\",args:[{name:\"args\",schema:{type:\"object\",required:[\"text\"],properties:{text:{type:\"string\"}}}}]});Q0(\"replacePreviousChar\");Q0(\"compositionType\");Q0(\"compositionStart\");Q0(\"compositionEnd\");Q0(\"paste\");Q0(\"cut\");class T8e{constructor(e,t,i,s){this.configuration=e,this.viewModel=t,this.userInputEvents=i,this.commandDelegate=s}paste(e,t,i,s){this.commandDelegate.paste(e,t,i,s)}type(e){this.commandDelegate.type(e)}compositionType(e,t,i,s){this.commandDelegate.compositionType(e,t,i,s)}compositionStart(){this.commandDelegate.startComposition()}compositionEnd(){this.commandDelegate.endComposition()}cut(){this.commandDelegate.cut()}setSelection(e){io.SetSelection.runCoreEditorCommand(this.viewModel,{source:\"keyboard\",selection:e})}_validateViewColumn(e){const t=this.viewModel.getLineMinColumn(e.lineNumber);return e.column<t?new ee(e.lineNumber,t):e}_hasMulticursorModifier(e){switch(this.configuration.options.get(78)){case\"altKey\":return e.altKey;case\"ctrlKey\":return e.ctrlKey;case\"metaKey\":return e.metaKey;default:return!1}}_hasNonMulticursorModifier(e){switch(this.configuration.options.get(78)){case\"altKey\":return e.ctrlKey||e.metaKey;case\"ctrlKey\":return e.altKey||e.metaKey;case\"metaKey\":return e.ctrlKey||e.altKey;default:return!1}}dispatchMouse(e){const t=this.configuration.options,i=Br&&t.get(107),s=t.get(22);e.middleButton&&!i?this._columnSelect(e.position,e.mouseColumn,e.inSelectionMode):e.startedOnLineNumbers?this._hasMulticursorModifier(e)?e.inSelectionMode?this._lastCursorLineSelect(e.position,e.revealType):this._createCursor(e.position,!0):e.inSelectionMode?this._lineSelectDrag(e.position,e.revealType):this._lineSelect(e.position,e.revealType):e.mouseDownCount>=4?this._selectAll():e.mouseDownCount===3?this._hasMulticursorModifier(e)?e.inSelectionMode?this._lastCursorLineSelectDrag(e.position,e.revealType):this._lastCursorLineSelect(e.position,e.revealType):e.inSelectionMode?this._lineSelectDrag(e.position,e.revealType):this._lineSelect(e.position,e.revealType):e.mouseDownCount===2?e.onInjectedText||(this._hasMulticursorModifier(e)?this._lastCursorWordSelect(e.position,e.revealType):e.inSelectionMode?this._wordSelectDrag(e.position,e.revealType):this._wordSelect(e.position,e.revealType)):this._hasMulticursorModifier(e)?this._hasNonMulticursorModifier(e)||(e.shiftKey?this._columnSelect(e.position,e.mouseColumn,!0):e.inSelectionMode?this._lastCursorMoveToSelect(e.position,e.revealType):this._createCursor(e.position,!1)):e.inSelectionMode?e.altKey?this._columnSelect(e.position,e.mouseColumn,!0):s?this._columnSelect(e.position,e.mouseColumn,!0):this._moveToSelect(e.position,e.revealType):this.moveTo(e.position,e.revealType)}_usualArgs(e,t){return e=this._validateViewColumn(e),{source:\"mouse\",position:this._convertViewToModelPosition(e),viewPosition:e,revealType:t}}moveTo(e,t){io.MoveTo.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_moveToSelect(e,t){io.MoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_columnSelect(e,t,i){e=this._validateViewColumn(e),io.ColumnSelect.runCoreEditorCommand(this.viewModel,{source:\"mouse\",position:this._convertViewToModelPosition(e),viewPosition:e,mouseColumn:t,doColumnSelect:i})}_createCursor(e,t){e=this._validateViewColumn(e),io.CreateCursor.runCoreEditorCommand(this.viewModel,{source:\"mouse\",position:this._convertViewToModelPosition(e),viewPosition:e,wholeLine:t})}_lastCursorMoveToSelect(e,t){io.LastCursorMoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_wordSelect(e,t){io.WordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_wordSelectDrag(e,t){io.WordSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lastCursorWordSelect(e,t){io.LastCursorWordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lineSelect(e,t){io.LineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lineSelectDrag(e,t){io.LineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lastCursorLineSelect(e,t){io.LastCursorLineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lastCursorLineSelectDrag(e,t){io.LastCursorLineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_selectAll(){io.SelectAll.runCoreEditorCommand(this.viewModel,{source:\"mouse\"})}_convertViewToModelPosition(e){return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(e)}emitKeyDown(e){this.userInputEvents.emitKeyDown(e)}emitKeyUp(e){this.userInputEvents.emitKeyUp(e)}emitContextMenu(e){this.userInputEvents.emitContextMenu(e)}emitMouseMove(e){this.userInputEvents.emitMouseMove(e)}emitMouseLeave(e){this.userInputEvents.emitMouseLeave(e)}emitMouseUp(e){this.userInputEvents.emitMouseUp(e)}emitMouseDown(e){this.userInputEvents.emitMouseDown(e)}emitMouseDrag(e){this.userInputEvents.emitMouseDrag(e)}emitMouseDrop(e){this.userInputEvents.emitMouseDrop(e)}emitMouseDropCanceled(){this.userInputEvents.emitMouseDropCanceled()}emitMouseWheel(e){this.userInputEvents.emitMouseWheel(e)}}class vce{constructor(e){this._createLine=e,this._set(1,[])}flush(){this._set(1,[])}_set(e,t){this._lines=t,this._rendLineNumberStart=e}_get(){return{rendLineNumberStart:this._rendLineNumberStart,lines:this._lines}}getStartLineNumber(){return this._rendLineNumberStart}getEndLineNumber(){return this._rendLineNumberStart+this._lines.length-1}getCount(){return this._lines.length}getLine(e){const t=e-this._rendLineNumberStart;if(t<0||t>=this._lines.length)throw new Gi(\"Illegal value for lineNumber\");return this._lines[t]}onLinesDeleted(e,t){if(this.getCount()===0)return null;const i=this.getStartLineNumber(),s=this.getEndLineNumber();if(t<i){const l=t-e+1;return this._rendLineNumberStart-=l,null}if(e>s)return null;let o=0,r=0;for(let l=i;l<=s;l++){const c=l-this._rendLineNumberStart;e<=l&&l<=t&&(r===0?(o=c,r=1):r++)}if(e<i){let l=0;t<i?l=t-e+1:l=i-e,this._rendLineNumberStart-=l}return this._lines.splice(o,r)}onLinesChanged(e,t){const i=e+t-1;if(this.getCount()===0)return!1;const s=this.getStartLineNumber(),o=this.getEndLineNumber();let r=!1;for(let a=e;a<=i;a++)a>=s&&a<=o&&(this._lines[a-this._rendLineNumberStart].onContentChanged(),r=!0);return r}onLinesInserted(e,t){if(this.getCount()===0)return null;const i=t-e+1,s=this.getStartLineNumber(),o=this.getEndLineNumber();if(e<=s)return this._rendLineNumberStart+=i,null;if(e>o)return null;if(i+e>o)return this._lines.splice(e-this._rendLineNumberStart,o-e+1);const r=[];for(let u=0;u<i;u++)r[u]=this._createLine();const a=e-this._rendLineNumberStart,l=this._lines.slice(0,a),c=this._lines.slice(a,this._lines.length-i),d=this._lines.slice(this._lines.length-i,this._lines.length);return this._lines=l.concat(r).concat(c),d}onTokensChanged(e){if(this.getCount()===0)return!1;const t=this.getStartLineNumber(),i=this.getEndLineNumber();let s=!1;for(let o=0,r=e.length;o<r;o++){const a=e[o];if(a.toLineNumber<t||a.fromLineNumber>i)continue;const l=Math.max(t,a.fromLineNumber),c=Math.min(i,a.toLineNumber);for(let d=l;d<=c;d++){const u=d-this._rendLineNumberStart;this._lines[u].onTokensChanged(),s=!0}}return s}}class bce{constructor(e){this._host=e,this.domNode=this._createDomNode(),this._linesCollection=new vce(()=>this._host.createVisibleLine())}_createDomNode(){const e=Di(document.createElement(\"div\"));return e.setClassName(\"view-layer\"),e.setPosition(\"absolute\"),e.domNode.setAttribute(\"role\",\"presentation\"),e.domNode.setAttribute(\"aria-hidden\",\"true\"),e}onConfigurationChanged(e){return!!e.hasChanged(145)}onFlushed(e){return this._linesCollection.flush(),!0}onLinesChanged(e){return this._linesCollection.onLinesChanged(e.fromLineNumber,e.count)}onLinesDeleted(e){const t=this._linesCollection.onLinesDeleted(e.fromLineNumber,e.toLineNumber);if(t)for(let i=0,s=t.length;i<s;i++){const o=t[i].getDomNode();o&&this.domNode.domNode.removeChild(o)}return!0}onLinesInserted(e){const t=this._linesCollection.onLinesInserted(e.fromLineNumber,e.toLineNumber);if(t)for(let i=0,s=t.length;i<s;i++){const o=t[i].getDomNode();o&&this.domNode.domNode.removeChild(o)}return!0}onScrollChanged(e){return e.scrollTopChanged}onTokensChanged(e){return this._linesCollection.onTokensChanged(e.ranges)}onZonesChanged(e){return!0}getStartLineNumber(){return this._linesCollection.getStartLineNumber()}getEndLineNumber(){return this._linesCollection.getEndLineNumber()}getVisibleLine(e){return this._linesCollection.getLine(e)}renderLines(e){const t=this._linesCollection._get(),i=new zf(this.domNode.domNode,this._host,e),s={rendLineNumberStart:t.rendLineNumberStart,lines:t.lines,linesLength:t.lines.length},o=i.render(s,e.startLineNumber,e.endLineNumber,e.relativeVerticalOffset);this._linesCollection._set(o.rendLineNumberStart,o.lines)}}class zf{constructor(e,t,i){this.domNode=e,this.host=t,this.viewportData=i}render(e,t,i,s){const o={rendLineNumberStart:e.rendLineNumberStart,lines:e.lines.slice(0),linesLength:e.linesLength};if(o.rendLineNumberStart+o.linesLength-1<t||i<o.rendLineNumberStart){o.rendLineNumberStart=t,o.linesLength=i-t+1,o.lines=[];for(let r=t;r<=i;r++)o.lines[r-t]=this.host.createVisibleLine();return this._finishRendering(o,!0,s),o}if(this._renderUntouchedLines(o,Math.max(t-o.rendLineNumberStart,0),Math.min(i-o.rendLineNumberStart,o.linesLength-1),s,t),o.rendLineNumberStart>t){const r=t,a=Math.min(i,o.rendLineNumberStart-1);r<=a&&(this._insertLinesBefore(o,r,a,s,t),o.linesLength+=a-r+1)}else if(o.rendLineNumberStart<t){const r=Math.min(o.linesLength,t-o.rendLineNumberStart);r>0&&(this._removeLinesBefore(o,r),o.linesLength-=r)}if(o.rendLineNumberStart=t,o.rendLineNumberStart+o.linesLength-1<i){const r=o.rendLineNumberStart+o.linesLength,a=i;r<=a&&(this._insertLinesAfter(o,r,a,s,t),o.linesLength+=a-r+1)}else if(o.rendLineNumberStart+o.linesLength-1>i){const r=Math.max(0,i-o.rendLineNumberStart+1),l=o.linesLength-1-r+1;l>0&&(this._removeLinesAfter(o,l),o.linesLength-=l)}return this._finishRendering(o,!1,s),o}_renderUntouchedLines(e,t,i,s,o){const r=e.rendLineNumberStart,a=e.lines;for(let l=t;l<=i;l++){const c=r+l;a[l].layoutLine(c,s[c-o],this.viewportData.lineHeight)}}_insertLinesBefore(e,t,i,s,o){const r=[];let a=0;for(let l=t;l<=i;l++)r[a++]=this.host.createVisibleLine();e.lines=r.concat(e.lines)}_removeLinesBefore(e,t){for(let i=0;i<t;i++){const s=e.lines[i].getDomNode();s&&this.domNode.removeChild(s)}e.lines.splice(0,t)}_insertLinesAfter(e,t,i,s,o){const r=[];let a=0;for(let l=t;l<=i;l++)r[a++]=this.host.createVisibleLine();e.lines=e.lines.concat(r)}_removeLinesAfter(e,t){const i=e.linesLength-t;for(let s=0;s<t;s++){const o=e.lines[i+s].getDomNode();o&&this.domNode.removeChild(o)}e.lines.splice(i,t)}_finishRenderingNewLines(e,t,i,s){zf._ttPolicy&&(i=zf._ttPolicy.createHTML(i));const o=this.domNode.lastChild;t||!o?this.domNode.innerHTML=i:o.insertAdjacentHTML(\"afterend\",i);let r=this.domNode.lastChild;for(let a=e.linesLength-1;a>=0;a--){const l=e.lines[a];s[a]&&(l.setDomNode(r),r=r.previousSibling)}}_finishRenderingInvalidLines(e,t,i){const s=document.createElement(\"div\");zf._ttPolicy&&(t=zf._ttPolicy.createHTML(t)),s.innerHTML=t;for(let o=0;o<e.linesLength;o++){const r=e.lines[o];if(i[o]){const a=s.firstChild,l=r.getDomNode();l.parentNode.replaceChild(a,l),r.setDomNode(a)}}}_finishRendering(e,t,i){const s=zf._sb,o=e.linesLength,r=e.lines,a=e.rendLineNumberStart,l=[];{s.reset();let c=!1;for(let d=0;d<o;d++){const u=r[d];l[d]=!1,!(u.getDomNode()||!u.renderLine(d+a,i[d],this.viewportData.lineHeight,this.viewportData,s))&&(l[d]=!0,c=!0)}c&&this._finishRenderingNewLines(e,t,s.build(),l)}{s.reset();let c=!1;const d=[];for(let u=0;u<o;u++){const h=r[u];d[u]=!1,!(l[u]||!h.renderLine(u+a,i[u],this.viewportData.lineHeight,this.viewportData,s))&&(d[u]=!0,c=!0)}c&&this._finishRenderingInvalidLines(e,s.build(),d)}}}zf._ttPolicy=Bg(\"editorViewLayer\",{createHTML:n=>n});zf._sb=new Ow(1e5);class Cce extends Va{constructor(e){super(e),this._visibleLines=new bce(this),this.domNode=this._visibleLines.domNode;const i=this._context.configuration.options.get(50);So(this.domNode,i),this._dynamicOverlays=[],this._isFocused=!1,this.domNode.setClassName(\"view-overlays\")}shouldRender(){if(super.shouldRender())return!0;for(let e=0,t=this._dynamicOverlays.length;e<t;e++)if(this._dynamicOverlays[e].shouldRender())return!0;return!1}dispose(){super.dispose();for(let e=0,t=this._dynamicOverlays.length;e<t;e++)this._dynamicOverlays[e].dispose();this._dynamicOverlays=[]}getDomNode(){return this.domNode}createVisibleLine(){return new N8e(this._dynamicOverlays)}addDynamicOverlay(e){this._dynamicOverlays.push(e)}onConfigurationChanged(e){this._visibleLines.onConfigurationChanged(e);const i=this._context.configuration.options.get(50);return So(this.domNode,i),!0}onFlushed(e){return this._visibleLines.onFlushed(e)}onFocusChanged(e){return this._isFocused=e.isFocused,!0}onLinesChanged(e){return this._visibleLines.onLinesChanged(e)}onLinesDeleted(e){return this._visibleLines.onLinesDeleted(e)}onLinesInserted(e){return this._visibleLines.onLinesInserted(e)}onScrollChanged(e){return this._visibleLines.onScrollChanged(e)||!0}onTokensChanged(e){return this._visibleLines.onTokensChanged(e)}onZonesChanged(e){return this._visibleLines.onZonesChanged(e)}prepareRender(e){const t=this._dynamicOverlays.filter(i=>i.shouldRender());for(let i=0,s=t.length;i<s;i++){const o=t[i];o.prepareRender(e),o.onDidRender()}}render(e){this._viewOverlaysRender(e),this.domNode.toggleClassName(\"focused\",this._isFocused)}_viewOverlaysRender(e){this._visibleLines.renderLines(e.viewportData)}}class N8e{constructor(e){this._dynamicOverlays=e,this._domNode=null,this._renderedContent=null}getDomNode(){return this._domNode?this._domNode.domNode:null}setDomNode(e){this._domNode=Di(e)}onContentChanged(){}onTokensChanged(){}renderLine(e,t,i,s,o){let r=\"\";for(let a=0,l=this._dynamicOverlays.length;a<l;a++){const c=this._dynamicOverlays[a];r+=c.render(s.startLineNumber,e)}return this._renderedContent===r?!1:(this._renderedContent=r,o.appendString('<div style=\"top:'),o.appendString(String(t)),o.appendString(\"px;height:\"),o.appendString(String(i)),o.appendString('px;\">'),o.appendString(r),o.appendString(\"</div>\"),!0)}layoutLine(e,t,i){this._domNode&&(this._domNode.setTop(t),this._domNode.setHeight(i))}}class A8e extends Cce{constructor(e){super(e);const i=this._context.configuration.options.get(145);this._contentWidth=i.contentWidth,this.domNode.setHeight(0)}onConfigurationChanged(e){const i=this._context.configuration.options.get(145);return this._contentWidth=i.contentWidth,super.onConfigurationChanged(e)||!0}onScrollChanged(e){return super.onScrollChanged(e)||e.scrollWidthChanged}_viewOverlaysRender(e){super._viewOverlaysRender(e),this.domNode.setWidth(Math.max(e.scrollWidth,this._contentWidth))}}class R8e extends Cce{constructor(e){super(e);const t=this._context.configuration.options,i=t.get(145);this._contentLeft=i.contentLeft,this.domNode.setClassName(\"margin-view-overlays\"),this.domNode.setWidth(1),So(this.domNode,t.get(50))}onConfigurationChanged(e){const t=this._context.configuration.options;So(this.domNode,t.get(50));const i=t.get(145);return this._contentLeft=i.contentLeft,super.onConfigurationChanged(e)||!0}onScrollChanged(e){return super.onScrollChanged(e)||e.scrollHeightChanged}_viewOverlaysRender(e){super._viewOverlaysRender(e);const t=Math.min(e.scrollHeight,1e6);this.domNode.setHeight(t),this.domNode.setWidth(this._contentLeft)}}class BM{constructor(e){this.onKeyDown=null,this.onKeyUp=null,this.onContextMenu=null,this.onMouseMove=null,this.onMouseLeave=null,this.onMouseDown=null,this.onMouseUp=null,this.onMouseDrag=null,this.onMouseDrop=null,this.onMouseDropCanceled=null,this.onMouseWheel=null,this._coordinatesConverter=e}emitKeyDown(e){var t;(t=this.onKeyDown)===null||t===void 0||t.call(this,e)}emitKeyUp(e){var t;(t=this.onKeyUp)===null||t===void 0||t.call(this,e)}emitContextMenu(e){var t;(t=this.onContextMenu)===null||t===void 0||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseMove(e){var t;(t=this.onMouseMove)===null||t===void 0||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseLeave(e){var t;(t=this.onMouseLeave)===null||t===void 0||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDown(e){var t;(t=this.onMouseDown)===null||t===void 0||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseUp(e){var t;(t=this.onMouseUp)===null||t===void 0||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDrag(e){var t;(t=this.onMouseDrag)===null||t===void 0||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDrop(e){var t;(t=this.onMouseDrop)===null||t===void 0||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDropCanceled(){var e;(e=this.onMouseDropCanceled)===null||e===void 0||e.call(this)}emitMouseWheel(e){var t;(t=this.onMouseWheel)===null||t===void 0||t.call(this,e)}_convertViewToModelMouseEvent(e){return e.target?{event:e.event,target:this._convertViewToModelMouseTarget(e.target)}:e}_convertViewToModelMouseTarget(e){return BM.convertViewToModelMouseTarget(e,this._coordinatesConverter)}static convertViewToModelMouseTarget(e,t){const i={...e};return i.position&&(i.position=t.convertViewPositionToModelPosition(i.position)),i.range&&(i.range=t.convertViewRangeToModelRange(i.range)),(i.type===5||i.type===8)&&(i.detail=this.convertViewToModelViewZoneData(i.detail,t)),i}static convertViewToModelViewZoneData(e,t){return{viewZoneId:e.viewZoneId,positionBefore:e.positionBefore?t.convertViewPositionToModelPosition(e.positionBefore):e.positionBefore,positionAfter:e.positionAfter?t.convertViewPositionToModelPosition(e.positionAfter):e.positionAfter,position:t.convertViewPositionToModelPosition(e.position),afterLineNumber:t.convertViewPositionToModelPosition(new ee(e.afterLineNumber,1)).lineNumber}}}class M8e extends Va{constructor(e){super(e),this.blocks=[],this.contentWidth=-1,this.contentLeft=0,this.domNode=Di(document.createElement(\"div\")),this.domNode.setAttribute(\"role\",\"presentation\"),this.domNode.setAttribute(\"aria-hidden\",\"true\"),this.domNode.setClassName(\"blockDecorations-container\"),this.update()}update(){let e=!1;const i=this._context.configuration.options.get(145),s=i.contentWidth-i.verticalScrollbarWidth;this.contentWidth!==s&&(this.contentWidth=s,e=!0);const o=i.contentLeft;return this.contentLeft!==o&&(this.contentLeft=o,e=!0),e}dispose(){super.dispose()}onConfigurationChanged(e){return this.update()}onScrollChanged(e){return e.scrollTopChanged||e.scrollLeftChanged}onDecorationsChanged(e){return!0}onZonesChanged(e){return!0}prepareRender(e){}render(e){var t;let i=0;const s=e.getDecorationsInViewport();for(const o of s){if(!o.options.blockClassName)continue;let r=this.blocks[i];r||(r=this.blocks[i]=Di(document.createElement(\"div\")),this.domNode.appendChild(r));let a,l;o.options.blockIsAfterEnd?(a=e.getVerticalOffsetAfterLineNumber(o.range.endLineNumber,!1),l=e.getVerticalOffsetAfterLineNumber(o.range.endLineNumber,!0)):(a=e.getVerticalOffsetForLineNumber(o.range.startLineNumber,!0),l=o.range.isEmpty()&&!o.options.blockDoesNotCollapse?e.getVerticalOffsetForLineNumber(o.range.startLineNumber,!1):e.getVerticalOffsetAfterLineNumber(o.range.endLineNumber,!0));const[c,d,u,h]=(t=o.options.blockPadding)!==null&&t!==void 0?t:[0,0,0,0];r.setClassName(\"blockDecorations-block \"+o.options.blockClassName),r.setLeft(this.contentLeft-h),r.setWidth(this.contentWidth+h+d),r.setTop(a-e.scrollTop-c),r.setHeight(l-a+c+u),i++}for(let o=i;o<this.blocks.length;o++)this.blocks[o].domNode.remove();this.blocks.length=i}}class P8e extends Va{constructor(e,t){super(e),this._viewDomNode=t,this._widgets={},this.domNode=Di(document.createElement(\"div\")),ru.write(this.domNode,1),this.domNode.setClassName(\"contentWidgets\"),this.domNode.setPosition(\"absolute\"),this.domNode.setTop(0),this.overflowingContentWidgetsDomNode=Di(document.createElement(\"div\")),ru.write(this.overflowingContentWidgetsDomNode,2),this.overflowingContentWidgetsDomNode.setClassName(\"overflowingContentWidgets\")}dispose(){super.dispose(),this._widgets={}}onConfigurationChanged(e){const t=Object.keys(this._widgets);for(const i of t)this._widgets[i].onConfigurationChanged(e);return!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLineMappingChanged(e){return this._updateAnchorsViewPositions(),!0}onLinesChanged(e){return this._updateAnchorsViewPositions(),!0}onLinesDeleted(e){return this._updateAnchorsViewPositions(),!0}onLinesInserted(e){return this._updateAnchorsViewPositions(),!0}onScrollChanged(e){return!0}onZonesChanged(e){return!0}_updateAnchorsViewPositions(){const e=Object.keys(this._widgets);for(const t of e)this._widgets[t].updateAnchorViewPosition()}addWidget(e){const t=new O8e(this._context,this._viewDomNode,e);this._widgets[t.id]=t,t.allowEditorOverflow?this.overflowingContentWidgetsDomNode.appendChild(t.domNode):this.domNode.appendChild(t.domNode),this.setShouldRender()}setWidgetPosition(e,t,i,s,o){this._widgets[e.getId()].setPosition(t,i,s,o),this.setShouldRender()}removeWidget(e){const t=e.getId();if(this._widgets.hasOwnProperty(t)){const i=this._widgets[t];delete this._widgets[t];const s=i.domNode.domNode;s.parentNode.removeChild(s),s.removeAttribute(\"monaco-visible-content-widget\"),this.setShouldRender()}}shouldSuppressMouseDownOnWidget(e){return this._widgets.hasOwnProperty(e)?this._widgets[e].suppressMouseDown:!1}onBeforeRender(e){const t=Object.keys(this._widgets);for(const i of t)this._widgets[i].onBeforeRender(e)}prepareRender(e){const t=Object.keys(this._widgets);for(const i of t)this._widgets[i].prepareRender(e)}render(e){const t=Object.keys(this._widgets);for(const i of t)this._widgets[i].render(e)}}class O8e{constructor(e,t,i){this._primaryAnchor=new Fy(null,null),this._secondaryAnchor=new Fy(null,null),this._context=e,this._viewDomNode=t,this._actual=i,this.domNode=Di(this._actual.getDomNode()),this.id=this._actual.getId(),this.allowEditorOverflow=this._actual.allowEditorOverflow||!1,this.suppressMouseDown=this._actual.suppressMouseDown||!1;const s=this._context.configuration.options,o=s.get(145);this._fixedOverflowWidgets=s.get(42),this._contentWidth=o.contentWidth,this._contentLeft=o.contentLeft,this._lineHeight=s.get(67),this._affinity=null,this._preference=[],this._cachedDomNodeOffsetWidth=-1,this._cachedDomNodeOffsetHeight=-1,this._maxWidth=this._getMaxWidth(),this._isVisible=!1,this._renderData=null,this.domNode.setPosition(this._fixedOverflowWidgets&&this.allowEditorOverflow?\"fixed\":\"absolute\"),this.domNode.setDisplay(\"none\"),this.domNode.setVisibility(\"hidden\"),this.domNode.setAttribute(\"widgetId\",this.id),this.domNode.setMaxWidth(this._maxWidth)}onConfigurationChanged(e){const t=this._context.configuration.options;if(this._lineHeight=t.get(67),e.hasChanged(145)){const i=t.get(145);this._contentLeft=i.contentLeft,this._contentWidth=i.contentWidth,this._maxWidth=this._getMaxWidth()}}updateAnchorViewPosition(){this._setPosition(this._affinity,this._primaryAnchor.modelPosition,this._secondaryAnchor.modelPosition)}_setPosition(e,t,i){this._affinity=e,this._primaryAnchor=s(t,this._context.viewModel,this._affinity),this._secondaryAnchor=s(i,this._context.viewModel,this._affinity);function s(o,r,a){if(!o)return new Fy(null,null);const l=r.model.validatePosition(o);if(r.coordinatesConverter.modelPositionIsVisible(l)){const c=r.coordinatesConverter.convertModelPositionToViewPosition(l,a??void 0);return new Fy(o,c)}return new Fy(o,null)}}_getMaxWidth(){const e=this.domNode.domNode.ownerDocument,t=e.defaultView;return this.allowEditorOverflow?(t==null?void 0:t.innerWidth)||e.documentElement.offsetWidth||e.body.offsetWidth:this._contentWidth}setPosition(e,t,i,s){this._setPosition(s,e,t),this._preference=i,this._primaryAnchor.viewPosition&&this._preference&&this._preference.length>0?this.domNode.setDisplay(\"block\"):this.domNode.setDisplay(\"none\"),this._cachedDomNodeOffsetWidth=-1,this._cachedDomNodeOffsetHeight=-1}_layoutBoxInViewport(e,t,i,s){const o=e.top,r=o,a=e.top+e.height,l=s.viewportHeight-a,c=o-i,d=r>=i,u=a,h=l>=i;let f=e.left;return f+t>s.scrollLeft+s.viewportWidth&&(f=s.scrollLeft+s.viewportWidth-t),f<s.scrollLeft&&(f=s.scrollLeft),{fitsAbove:d,aboveTop:c,fitsBelow:h,belowTop:u,left:f}}_layoutHorizontalSegmentInPage(e,t,i,s){var o;const l=Math.max(15,t.left-s),c=Math.min(t.left+t.width+s,e.width-15),u=this._viewDomNode.domNode.ownerDocument.defaultView;let h=t.left+i-((o=u==null?void 0:u.scrollX)!==null&&o!==void 0?o:0);if(h+s>c){const f=h-(c-s);h-=f,i-=f}if(h<l){const f=h-l;h-=f,i-=f}return[i,h]}_layoutBoxInPage(e,t,i,s){var o,r;const a=e.top-i,l=e.top+e.height,c=bs(this._viewDomNode.domNode),d=this._viewDomNode.domNode.ownerDocument,u=d.defaultView,h=c.top+a-((o=u==null?void 0:u.scrollY)!==null&&o!==void 0?o:0),f=c.top+l-((r=u==null?void 0:u.scrollY)!==null&&r!==void 0?r:0),g=Fm(d.body),[p,_]=this._layoutHorizontalSegmentInPage(g,c,e.left-s.scrollLeft+this._contentLeft,t),b=22,w=22,y=h>=b,S=f+i<=g.height-w;return this._fixedOverflowWidgets?{fitsAbove:y,aboveTop:Math.max(h,b),fitsBelow:S,belowTop:f,left:_}:{fitsAbove:y,aboveTop:a,fitsBelow:S,belowTop:l,left:p}}_prepareRenderWidgetAtExactPositionOverflowing(e){return new By(e.top,e.left+this._contentLeft)}_getAnchorsCoordinates(e){var t,i;const s=a(this._primaryAnchor.viewPosition,this._affinity,this._lineHeight),o=((t=this._secondaryAnchor.viewPosition)===null||t===void 0?void 0:t.lineNumber)===((i=this._primaryAnchor.viewPosition)===null||i===void 0?void 0:i.lineNumber)?this._secondaryAnchor.viewPosition:null,r=a(o,this._affinity,this._lineHeight);return{primary:s,secondary:r};function a(l,c,d){if(!l)return null;const u=e.visibleRangeForPosition(l);if(!u)return null;const h=l.column===1&&c===3?0:u.left,f=e.getVerticalOffsetForLineNumber(l.lineNumber)-e.scrollTop;return new qX(f,h,d)}}_reduceAnchorCoordinates(e,t,i){if(!t)return e;const s=this._context.configuration.options.get(50);let o=t.left;return o<e.left?o=Math.max(o,e.left-i+s.typicalFullwidthCharacterWidth):o=Math.min(o,e.left+i-s.typicalFullwidthCharacterWidth),new qX(e.top,o,e.height)}_prepareRenderWidget(e){if(!this._preference||this._preference.length===0)return null;const{primary:t,secondary:i}=this._getAnchorsCoordinates(e);if(!t)return{kind:\"offViewport\",preserveFocus:this.domNode.domNode.contains(this.domNode.domNode.ownerDocument.activeElement)};if(this._cachedDomNodeOffsetWidth===-1||this._cachedDomNodeOffsetHeight===-1){let r=null;if(typeof this._actual.beforeRender==\"function\"&&(r=o5(this._actual.beforeRender,this._actual)),r)this._cachedDomNodeOffsetWidth=r.width,this._cachedDomNodeOffsetHeight=r.height;else{const l=this.domNode.domNode.getBoundingClientRect();this._cachedDomNodeOffsetWidth=Math.round(l.width),this._cachedDomNodeOffsetHeight=Math.round(l.height)}}const s=this._reduceAnchorCoordinates(t,i,this._cachedDomNodeOffsetWidth);let o;this.allowEditorOverflow?o=this._layoutBoxInPage(s,this._cachedDomNodeOffsetWidth,this._cachedDomNodeOffsetHeight,e):o=this._layoutBoxInViewport(s,this._cachedDomNodeOffsetWidth,this._cachedDomNodeOffsetHeight,e);for(let r=1;r<=2;r++)for(const a of this._preference)if(a===1){if(!o)return null;if(r===2||o.fitsAbove)return{kind:\"inViewport\",coordinate:new By(o.aboveTop,o.left),position:1}}else if(a===2){if(!o)return null;if(r===2||o.fitsBelow)return{kind:\"inViewport\",coordinate:new By(o.belowTop,o.left),position:2}}else return this.allowEditorOverflow?{kind:\"inViewport\",coordinate:this._prepareRenderWidgetAtExactPositionOverflowing(new By(s.top,s.left)),position:0}:{kind:\"inViewport\",coordinate:new By(s.top,s.left),position:0};return null}onBeforeRender(e){!this._primaryAnchor.viewPosition||!this._preference||this._primaryAnchor.viewPosition.lineNumber<e.startLineNumber||this._primaryAnchor.viewPosition.lineNumber>e.endLineNumber||this.domNode.setMaxWidth(this._maxWidth)}prepareRender(e){this._renderData=this._prepareRenderWidget(e)}render(e){var t;if(!this._renderData||this._renderData.kind===\"offViewport\"){this._isVisible&&(this.domNode.removeAttribute(\"monaco-visible-content-widget\"),this._isVisible=!1,((t=this._renderData)===null||t===void 0?void 0:t.kind)===\"offViewport\"&&this._renderData.preserveFocus?this.domNode.setTop(-1e3):this.domNode.setVisibility(\"hidden\")),typeof this._actual.afterRender==\"function\"&&o5(this._actual.afterRender,this._actual,null);return}this.allowEditorOverflow?(this.domNode.setTop(this._renderData.coordinate.top),this.domNode.setLeft(this._renderData.coordinate.left)):(this.domNode.setTop(this._renderData.coordinate.top+e.scrollTop-e.bigNumbersDelta),this.domNode.setLeft(this._renderData.coordinate.left)),this._isVisible||(this.domNode.setVisibility(\"inherit\"),this.domNode.setAttribute(\"monaco-visible-content-widget\",\"true\"),this._isVisible=!0),typeof this._actual.afterRender==\"function\"&&o5(this._actual.afterRender,this._actual,this._renderData.position)}}class Fy{constructor(e,t){this.modelPosition=e,this.viewPosition=t}}class By{constructor(e,t){this.top=e,this.left=t,this._coordinateBrand=void 0}}class qX{constructor(e,t,i){this.top=e,this.left=t,this.height=i,this._anchorCoordinateBrand=void 0}}function o5(n,e,...t){try{return n.call(e,...t)}catch{return null}}class wce extends X0{constructor(e){super(),this._context=e;const t=this._context.configuration.options,i=t.get(145);this._renderLineHighlight=t.get(96),this._renderLineHighlightOnlyWhenFocus=t.get(97),this._wordWrap=i.isViewportWrapping,this._contentLeft=i.contentLeft,this._contentWidth=i.contentWidth,this._selectionIsEmpty=!0,this._focused=!1,this._cursorLineNumbers=[1],this._selections=[new it(1,1,1,1)],this._renderData=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}_readFromSelections(){let e=!1;const t=new Set;for(const o of this._selections)t.add(o.positionLineNumber);const i=Array.from(t);i.sort((o,r)=>o-r),zn(this._cursorLineNumbers,i)||(this._cursorLineNumbers=i,e=!0);const s=this._selections.every(o=>o.isEmpty());return this._selectionIsEmpty!==s&&(this._selectionIsEmpty=s,e=!0),e}onThemeChanged(e){return this._readFromSelections()}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(145);return this._renderLineHighlight=t.get(96),this._renderLineHighlightOnlyWhenFocus=t.get(97),this._wordWrap=i.isViewportWrapping,this._contentLeft=i.contentLeft,this._contentWidth=i.contentWidth,!0}onCursorStateChanged(e){return this._selections=e.selections,this._readFromSelections()}onFlushed(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollWidthChanged||e.scrollTopChanged}onZonesChanged(e){return!0}onFocusChanged(e){return this._renderLineHighlightOnlyWhenFocus?(this._focused=e.isFocused,!0):!1}prepareRender(e){if(!this._shouldRenderThis()){this._renderData=null;return}const t=e.visibleRange.startLineNumber,i=e.visibleRange.endLineNumber,s=[];for(let r=t;r<=i;r++){const a=r-t;s[a]=\"\"}if(this._wordWrap){const r=this._renderOne(e,!1);for(const a of this._cursorLineNumbers){const l=this._context.viewModel.coordinatesConverter,c=l.convertViewPositionToModelPosition(new ee(a,1)).lineNumber,d=l.convertModelPositionToViewPosition(new ee(c,1)).lineNumber,u=l.convertModelPositionToViewPosition(new ee(c,this._context.viewModel.model.getLineMaxColumn(c))).lineNumber,h=Math.max(d,t),f=Math.min(u,i);for(let g=h;g<=f;g++){const p=g-t;s[p]=r}}}const o=this._renderOne(e,!0);for(const r of this._cursorLineNumbers){if(r<t||r>i)continue;const a=r-t;s[a]=o}this._renderData=s}render(e,t){if(!this._renderData)return\"\";const i=t-e;return i>=this._renderData.length?\"\":this._renderData[i]}_shouldRenderInMargin(){return(this._renderLineHighlight===\"gutter\"||this._renderLineHighlight===\"all\")&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}_shouldRenderInContent(){return(this._renderLineHighlight===\"line\"||this._renderLineHighlight===\"all\")&&this._selectionIsEmpty&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}}class F8e extends wce{_renderOne(e,t){return`<div class=\"${\"current-line\"+(this._shouldRenderInMargin()?\" current-line-both\":\"\")+(t?\" current-line-exact\":\"\")}\" style=\"width:${Math.max(e.scrollWidth,this._contentWidth)}px;\"></div>`}_shouldRenderThis(){return this._shouldRenderInContent()}_shouldRenderOther(){return this._shouldRenderInMargin()}}class B8e extends wce{_renderOne(e,t){return`<div class=\"${\"current-line\"+(this._shouldRenderInMargin()?\" current-line-margin\":\"\")+(this._shouldRenderOther()?\" current-line-margin-both\":\"\")+(this._shouldRenderInMargin()&&t?\" current-line-exact-margin\":\"\")}\" style=\"width:${this._contentLeft}px\"></div>`}_shouldRenderThis(){return!0}_shouldRenderOther(){return this._shouldRenderInContent()}}mc((n,e)=>{const t=n.getColor(sce);if(t&&(e.addRule(`.monaco-editor .view-overlays .current-line { background-color: ${t}; }`),e.addRule(`.monaco-editor .margin-view-overlays .current-line-margin { background-color: ${t}; border: none; }`)),!t||t.isTransparent()||n.defines(VX)){const i=n.getColor(VX);i&&(e.addRule(`.monaco-editor .view-overlays .current-line-exact { border: 2px solid ${i}; }`),e.addRule(`.monaco-editor .margin-view-overlays .current-line-exact-margin { border: 2px solid ${i}; }`),Zd(n.type)&&(e.addRule(\".monaco-editor .view-overlays .current-line-exact { border-width: 1px; }\"),e.addRule(\".monaco-editor .margin-view-overlays .current-line-exact-margin { border-width: 1px; }\")))}});class W8e extends X0{constructor(e){super(),this._context=e;const t=this._context.configuration.options;this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged||e.scrollWidthChanged}onZonesChanged(e){return!0}prepareRender(e){const t=e.getDecorationsInViewport();let i=[],s=0;for(let l=0,c=t.length;l<c;l++){const d=t[l];d.options.className&&(i[s++]=d)}i=i.sort((l,c)=>{if(l.options.zIndex<c.options.zIndex)return-1;if(l.options.zIndex>c.options.zIndex)return 1;const d=l.options.className,u=c.options.className;return d<u?-1:d>u?1:A.compareRangesUsingStarts(l.range,c.range)});const o=e.visibleRange.startLineNumber,r=e.visibleRange.endLineNumber,a=[];for(let l=o;l<=r;l++){const c=l-o;a[c]=\"\"}this._renderWholeLineDecorations(e,i,a),this._renderNormalDecorations(e,i,a),this._renderResult=a}_renderWholeLineDecorations(e,t,i){const s=e.visibleRange.startLineNumber,o=e.visibleRange.endLineNumber;for(let r=0,a=t.length;r<a;r++){const l=t[r];if(!l.options.isWholeLine)continue;const c='<div class=\"cdr '+l.options.className+'\" style=\"left:0;width:100%;\"></div>',d=Math.max(l.range.startLineNumber,s),u=Math.min(l.range.endLineNumber,o);for(let h=d;h<=u;h++){const f=h-s;i[f]+=c}}}_renderNormalDecorations(e,t,i){var s;const o=e.visibleRange.startLineNumber;let r=null,a=!1,l=null,c=!1;for(let d=0,u=t.length;d<u;d++){const h=t[d];if(h.options.isWholeLine)continue;const f=h.options.className,g=!!h.options.showIfCollapsed;let p=h.range;if(g&&p.endColumn===1&&p.endLineNumber!==p.startLineNumber&&(p=new A(p.startLineNumber,p.startColumn,p.endLineNumber-1,this._context.viewModel.getLineMaxColumn(p.endLineNumber-1))),r===f&&a===g&&A.areIntersectingOrTouching(l,p)){l=A.plusRange(l,p);continue}r!==null&&this._renderNormalDecoration(e,l,r,c,a,o,i),r=f,a=g,l=p,c=(s=h.options.shouldFillLineOnLineBreak)!==null&&s!==void 0?s:!1}r!==null&&this._renderNormalDecoration(e,l,r,c,a,o,i)}_renderNormalDecoration(e,t,i,s,o,r,a){const l=e.linesVisibleRangesForRange(t,i===\"findMatch\");if(l)for(let c=0,d=l.length;c<d;c++){const u=l[c];if(u.outsideRenderedLine)continue;const h=u.lineNumber-r;if(o&&u.ranges.length===1){const f=u.ranges[0];if(f.width<this._typicalHalfwidthCharacterWidth){const g=Math.round(f.left+f.width/2),p=Math.max(0,Math.round(g-this._typicalHalfwidthCharacterWidth/2));u.ranges[0]=new RM(p,this._typicalHalfwidthCharacterWidth)}}for(let f=0,g=u.ranges.length;f<g;f++){const p=s&&u.continuesOnNextLine&&g===1,_=u.ranges[f],b='<div class=\"cdr '+i+'\" style=\"left:'+String(_.left)+\"px;width:\"+(p?\"100%;\":String(_.width)+\"px;\")+'\"></div>';a[h]+=b}}}render(e,t){if(!this._renderResult)return\"\";const i=t-e;return i<0||i>=this._renderResult.length?\"\":this._renderResult[i]}}class H8e extends Va{constructor(e,t,i,s){super(e);const o=this._context.configuration.options,r=o.get(103),a=o.get(75),l=o.get(40),c=o.get(106),d={listenOnDomNode:i.domNode,className:\"editor-scrollable \"+MB(e.theme.type),useShadows:!1,lazyRender:!0,vertical:r.vertical,horizontal:r.horizontal,verticalHasArrows:r.verticalHasArrows,horizontalHasArrows:r.horizontalHasArrows,verticalScrollbarSize:r.verticalScrollbarSize,verticalSliderSize:r.verticalSliderSize,horizontalScrollbarSize:r.horizontalScrollbarSize,horizontalSliderSize:r.horizontalSliderSize,handleMouseWheel:r.handleMouseWheel,alwaysConsumeMouseWheel:r.alwaysConsumeMouseWheel,arrowSize:r.arrowSize,mouseWheelScrollSensitivity:a,fastScrollSensitivity:l,scrollPredominantAxis:c,scrollByPage:r.scrollByPage};this.scrollbar=this._register(new MM(t.domNode,d,this._context.viewLayout.getScrollable())),ru.write(this.scrollbar.getDomNode(),6),this.scrollbarDomNode=Di(this.scrollbar.getDomNode()),this.scrollbarDomNode.setPosition(\"absolute\"),this._setLayout();const u=(h,f,g)=>{const p={};{const _=h.scrollTop;_&&(p.scrollTop=this._context.viewLayout.getCurrentScrollTop()+_,h.scrollTop=0)}if(g){const _=h.scrollLeft;_&&(p.scrollLeft=this._context.viewLayout.getCurrentScrollLeft()+_,h.scrollLeft=0)}this._context.viewModel.viewLayout.setScrollPosition(p,1)};this._register(ce(i.domNode,\"scroll\",h=>u(i.domNode,!0,!0))),this._register(ce(t.domNode,\"scroll\",h=>u(t.domNode,!0,!1))),this._register(ce(s.domNode,\"scroll\",h=>u(s.domNode,!0,!1))),this._register(ce(this.scrollbarDomNode.domNode,\"scroll\",h=>u(this.scrollbarDomNode.domNode,!0,!1)))}dispose(){super.dispose()}_setLayout(){const e=this._context.configuration.options,t=e.get(145);this.scrollbarDomNode.setLeft(t.contentLeft),e.get(73).side===\"right\"?this.scrollbarDomNode.setWidth(t.contentWidth+t.minimap.minimapWidth):this.scrollbarDomNode.setWidth(t.contentWidth),this.scrollbarDomNode.setHeight(t.height)}getOverviewRulerLayoutInfo(){return this.scrollbar.getOverviewRulerLayoutInfo()}getDomNode(){return this.scrollbarDomNode}delegateVerticalScrollbarPointerDown(e){this.scrollbar.delegateVerticalScrollbarPointerDown(e)}delegateScrollFromMouseWheelEvent(e){this.scrollbar.delegateScrollFromMouseWheelEvent(e)}onConfigurationChanged(e){if(e.hasChanged(103)||e.hasChanged(75)||e.hasChanged(40)){const t=this._context.configuration.options,i=t.get(103),s=t.get(75),o=t.get(40),r=t.get(106),a={vertical:i.vertical,horizontal:i.horizontal,verticalScrollbarSize:i.verticalScrollbarSize,horizontalScrollbarSize:i.horizontalScrollbarSize,scrollByPage:i.scrollByPage,handleMouseWheel:i.handleMouseWheel,mouseWheelScrollSensitivity:s,fastScrollSensitivity:o,scrollPredominantAxis:r};this.scrollbar.updateOptions(a)}return e.hasChanged(145)&&this._setLayout(),!0}onScrollChanged(e){return!0}onThemeChanged(e){return this.scrollbar.updateClassName(\"editor-scrollable \"+MB(this._context.theme.type)),!0}prepareRender(e){}render(e){this.scrollbar.renderNow()}}class FB{constructor(e,t,i,s,o){this.startLineNumber=e,this.endLineNumber=t,this.className=i,this.tooltip=s,this._decorationToRenderBrand=void 0,this.zIndex=o??0}}class V8e{constructor(e,t,i){this.className=e,this.zIndex=t,this.tooltip=i}}class z8e{constructor(){this.decorations=[]}add(e){this.decorations.push(e)}getDecorations(){return this.decorations}}class yce extends X0{_render(e,t,i){const s=[];for(let a=e;a<=t;a++){const l=a-e;s[l]=new z8e}if(i.length===0)return s;i.sort((a,l)=>a.className===l.className?a.startLineNumber===l.startLineNumber?a.endLineNumber-l.endLineNumber:a.startLineNumber-l.startLineNumber:a.className<l.className?-1:1);let o=null,r=0;for(let a=0,l=i.length;a<l;a++){const c=i[a],d=c.className,u=c.zIndex;let h=Math.max(c.startLineNumber,e)-e;const f=Math.min(c.endLineNumber,t)-e;o===d?(h=Math.max(r+1,h),r=Math.max(r,f)):(o=d,r=f);for(let g=h;g<=r;g++)s[g].add(new V8e(d,u,c.tooltip))}return s}}class $8e extends Va{constructor(e){super(e),this._widgets={},this._context=e;const t=this._context.configuration.options,i=t.get(145);this.domNode=Di(document.createElement(\"div\")),this.domNode.setClassName(\"glyph-margin-widgets\"),this.domNode.setPosition(\"absolute\"),this.domNode.setTop(0),this._lineHeight=t.get(67),this._glyphMargin=t.get(57),this._glyphMarginLeft=i.glyphMarginLeft,this._glyphMarginWidth=i.glyphMarginWidth,this._glyphMarginDecorationLaneCount=i.glyphMarginDecorationLaneCount,this._managedDomNodes=[],this._decorationGlyphsToRender=[]}dispose(){this._managedDomNodes=[],this._decorationGlyphsToRender=[],this._widgets={},super.dispose()}getWidgets(){return Object.values(this._widgets)}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(145);return this._lineHeight=t.get(67),this._glyphMargin=t.get(57),this._glyphMarginLeft=i.glyphMarginLeft,this._glyphMarginWidth=i.glyphMarginWidth,this._glyphMarginDecorationLaneCount=i.glyphMarginDecorationLaneCount,!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}addWidget(e){const t=Di(e.getDomNode());this._widgets[e.getId()]={widget:e,preference:e.getPosition(),domNode:t,renderInfo:null},t.setPosition(\"absolute\"),t.setDisplay(\"none\"),t.setAttribute(\"widgetId\",e.getId()),this.domNode.appendChild(t),this.setShouldRender()}setWidgetPosition(e,t){const i=this._widgets[e.getId()];return i.preference.lane===t.lane&&i.preference.zIndex===t.zIndex&&A.equalsRange(i.preference.range,t.range)?!1:(i.preference=t,this.setShouldRender(),!0)}removeWidget(e){var t;const i=e.getId();if(this._widgets[i]){const o=this._widgets[i].domNode.domNode;delete this._widgets[i],(t=o.parentNode)===null||t===void 0||t.removeChild(o),this.setShouldRender()}}_collectDecorationBasedGlyphRenderRequest(e,t){var i,s,o;const r=e.visibleRange.startLineNumber,a=e.visibleRange.endLineNumber,l=e.getDecorationsInViewport();for(const c of l){const d=c.options.glyphMarginClassName;if(!d)continue;const u=Math.max(c.range.startLineNumber,r),h=Math.min(c.range.endLineNumber,a),f=(s=(i=c.options.glyphMargin)===null||i===void 0?void 0:i.position)!==null&&s!==void 0?s:Dh.Center,g=(o=c.options.zIndex)!==null&&o!==void 0?o:0;for(let p=u;p<=h;p++){const _=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new ee(p,0)),b=this._context.viewModel.glyphLanes.getLanesAtLine(_.lineNumber).indexOf(f);t.push(new U8e(p,b,g,d))}}}_collectWidgetBasedGlyphRenderRequest(e,t){const i=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber;for(const o of Object.values(this._widgets)){const r=o.preference.range,{startLineNumber:a,endLineNumber:l}=this._context.viewModel.coordinatesConverter.convertModelRangeToViewRange(A.lift(r));if(!a||!l||l<i||a>s)continue;const c=Math.max(a,i),d=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new ee(c,0)),u=this._context.viewModel.glyphLanes.getLanesAtLine(d.lineNumber).indexOf(o.preference.lane);t.push(new j8e(c,u,o.preference.zIndex,o))}}_collectSortedGlyphRenderRequests(e){const t=[];return this._collectDecorationBasedGlyphRenderRequest(e,t),this._collectWidgetBasedGlyphRenderRequest(e,t),t.sort((i,s)=>i.lineNumber===s.lineNumber?i.laneIndex===s.laneIndex?i.zIndex===s.zIndex?s.type===i.type?i.type===0&&s.type===0?i.className<s.className?-1:1:0:s.type-i.type:s.zIndex-i.zIndex:i.laneIndex-s.laneIndex:i.lineNumber-s.lineNumber),t}prepareRender(e){if(!this._glyphMargin){this._decorationGlyphsToRender=[];return}for(const s of Object.values(this._widgets))s.renderInfo=null;const t=new Lg(this._collectSortedGlyphRenderRequests(e)),i=[];for(;t.length>0;){const s=t.peek();if(!s)break;const o=t.takeWhile(a=>a.lineNumber===s.lineNumber&&a.laneIndex===s.laneIndex);if(!o||o.length===0)break;const r=o[0];if(r.type===0){const a=[];for(const l of o){if(l.zIndex!==r.zIndex||l.type!==r.type)break;(a.length===0||a[a.length-1]!==l.className)&&a.push(l.className)}i.push(r.accept(a.join(\" \")))}else r.widget.renderInfo={lineNumber:r.lineNumber,laneIndex:r.laneIndex}}this._decorationGlyphsToRender=i}render(e){if(!this._glyphMargin){for(const i of Object.values(this._widgets))i.domNode.setDisplay(\"none\");for(;this._managedDomNodes.length>0;){const i=this._managedDomNodes.pop();i==null||i.domNode.remove()}return}const t=Math.round(this._glyphMarginWidth/this._glyphMarginDecorationLaneCount);for(const i of Object.values(this._widgets))if(!i.renderInfo)i.domNode.setDisplay(\"none\");else{const s=e.viewportData.relativeVerticalOffset[i.renderInfo.lineNumber-e.viewportData.startLineNumber],o=this._glyphMarginLeft+i.renderInfo.laneIndex*this._lineHeight;i.domNode.setDisplay(\"block\"),i.domNode.setTop(s),i.domNode.setLeft(o),i.domNode.setWidth(t),i.domNode.setHeight(this._lineHeight)}for(let i=0;i<this._decorationGlyphsToRender.length;i++){const s=this._decorationGlyphsToRender[i],o=e.viewportData.relativeVerticalOffset[s.lineNumber-e.viewportData.startLineNumber],r=this._glyphMarginLeft+s.laneIndex*this._lineHeight;let a;i<this._managedDomNodes.length?a=this._managedDomNodes[i]:(a=Di(document.createElement(\"div\")),this._managedDomNodes.push(a),this.domNode.appendChild(a)),a.setClassName(\"cgmr codicon \"+s.combinedClassName),a.setPosition(\"absolute\"),a.setTop(o),a.setLeft(r),a.setWidth(t),a.setHeight(this._lineHeight)}for(;this._managedDomNodes.length>this._decorationGlyphsToRender.length;){const i=this._managedDomNodes.pop();i==null||i.domNode.remove()}}}class U8e{constructor(e,t,i,s){this.lineNumber=e,this.laneIndex=t,this.zIndex=i,this.className=s,this.type=0}accept(e){return new K8e(this.lineNumber,this.laneIndex,e)}}class j8e{constructor(e,t,i,s){this.lineNumber=e,this.laneIndex=t,this.zIndex=i,this.widget=s,this.type=1}}class K8e{constructor(e,t,i){this.lineNumber=e,this.laneIndex=t,this.combinedClassName=i}}class Sce extends ne{constructor(){super(...arguments),this._isDisposed=!1}dispose(){super.dispose(),this._isDisposed=!0}assertNotDisposed(){if(this._isDisposed)throw new Error(\"TextModelPart is disposed!\")}}function WM(n,e){let t=0,i=0;const s=n.length;for(;i<s;){const o=n.charCodeAt(i);if(o===32)t++;else if(o===9)t=t-t%e+e;else break;i++}return i===s?-1:t}var jv;(function(n){n[n.Disabled=0]=\"Disabled\",n[n.EnabledForActive=1]=\"EnabledForActive\",n[n.Enabled=2]=\"Enabled\"})(jv||(jv={}));class Dv{constructor(e,t,i,s,o,r){if(this.visibleColumn=e,this.column=t,this.className=i,this.horizontalLine=s,this.forWrappedLinesAfterColumn=o,this.forWrappedLinesBeforeOrAtColumn=r,e!==-1==(t!==-1))throw new Error}}class fx{constructor(e,t){this.top=e,this.endColumn=t}}class q8e extends Sce{constructor(e,t){super(),this.textModel=e,this.languageConfigurationService=t}getLanguageConfiguration(e){return this.languageConfigurationService.getLanguageConfiguration(e)}_computeIndentLevel(e){return WM(this.textModel.getLineContent(e+1),this.textModel.getOptions().tabSize)}getActiveIndentGuide(e,t,i){this.assertNotDisposed();const s=this.textModel.getLineCount();if(e<1||e>s)throw new Gi(\"Illegal value for lineNumber\");const o=this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules,r=!!(o&&o.offSide);let a=-2,l=-1,c=-2,d=-1;const u=D=>{if(a!==-1&&(a===-2||a>D-1)){a=-1,l=-1;for(let I=D-2;I>=0;I--){const N=this._computeIndentLevel(I);if(N>=0){a=I,l=N;break}}}if(c===-2){c=-1,d=-1;for(let I=D;I<s;I++){const N=this._computeIndentLevel(I);if(N>=0){c=I,d=N;break}}}};let h=-2,f=-1,g=-2,p=-1;const _=D=>{if(h===-2){h=-1,f=-1;for(let I=D-2;I>=0;I--){const N=this._computeIndentLevel(I);if(N>=0){h=I,f=N;break}}}if(g!==-1&&(g===-2||g<D-1)){g=-1,p=-1;for(let I=D;I<s;I++){const N=this._computeIndentLevel(I);if(N>=0){g=I,p=N;break}}}};let b=0,w=!0,y=0,S=!0,x=0,k=0;for(let D=0;w||S;D++){const I=e-D,N=e+D;D>1&&(I<1||I<t)&&(w=!1),D>1&&(N>s||N>i)&&(S=!1),D>5e4&&(w=!1,S=!1);let P=-1;if(w&&I>=1){const M=this._computeIndentLevel(I-1);M>=0?(c=I-1,d=M,P=Math.ceil(M/this.textModel.getOptions().indentSize)):(u(I),P=this._getIndentLevelForWhitespaceLine(r,l,d))}let O=-1;if(S&&N<=s){const M=this._computeIndentLevel(N-1);M>=0?(h=N-1,f=M,O=Math.ceil(M/this.textModel.getOptions().indentSize)):(_(N),O=this._getIndentLevelForWhitespaceLine(r,f,p))}if(D===0){k=P;continue}if(D===1){if(N<=s&&O>=0&&k+1===O){w=!1,b=N,y=N,x=O;continue}if(I>=1&&P>=0&&P-1===k){S=!1,b=I,y=I,x=P;continue}if(b=e,y=e,x=k,x===0)return{startLineNumber:b,endLineNumber:y,indent:x}}w&&(P>=x?b=I:w=!1),S&&(O>=x?y=N:S=!1)}return{startLineNumber:b,endLineNumber:y,indent:x}}getLinesBracketGuides(e,t,i,s){var o;const r=[];for(let h=e;h<=t;h++)r.push([]);const a=!0,l=this.textModel.bracketPairs.getBracketPairsInRangeWithMinIndentation(new A(e,1,t,this.textModel.getLineMaxColumn(t))).toArray();let c;if(i&&l.length>0){const h=(e<=i.lineNumber&&i.lineNumber<=t?l:this.textModel.bracketPairs.getBracketPairsInRange(A.fromPositions(i)).toArray()).filter(f=>A.strictContainsPosition(f.range,i));c=(o=mL(h,f=>a))===null||o===void 0?void 0:o.range}const d=this.textModel.getOptions().bracketPairColorizationOptions.independentColorPoolPerBracketType,u=new xce;for(const h of l){if(!h.closingBracketRange)continue;const f=c&&h.range.equalsRange(c);if(!f&&!s.includeInactive)continue;const g=u.getInlineClassName(h.nestingLevel,h.nestingLevelOfEqualBracketType,d)+(s.highlightActive&&f?\" \"+u.activeClassName:\"\"),p=h.openingBracketRange.getStartPosition(),_=h.closingBracketRange.getStartPosition(),b=s.horizontalGuides===jv.Enabled||s.horizontalGuides===jv.EnabledForActive&&f;if(h.range.startLineNumber===h.range.endLineNumber){b&&r[h.range.startLineNumber-e].push(new Dv(-1,h.openingBracketRange.getEndPosition().column,g,new fx(!1,_.column),-1,-1));continue}const w=this.getVisibleColumnFromPosition(_),y=this.getVisibleColumnFromPosition(h.openingBracketRange.getStartPosition()),S=Math.min(y,w,h.minVisibleColumnIndentation+1);let x=!1;fr(this.textModel.getLineContent(h.closingBracketRange.startLineNumber))<h.closingBracketRange.startColumn-1&&(x=!0);const I=Math.max(p.lineNumber,e),N=Math.min(_.lineNumber,t),P=x?1:0;for(let O=I;O<N+P;O++)r[O-e].push(new Dv(S,-1,g,null,O===p.lineNumber?p.column:-1,O===_.lineNumber?_.column:-1));b&&(p.lineNumber>=e&&y>S&&r[p.lineNumber-e].push(new Dv(S,-1,g,new fx(!1,p.column),-1,-1)),_.lineNumber<=t&&w>S&&r[_.lineNumber-e].push(new Dv(S,-1,g,new fx(!x,_.column),-1,-1)))}for(const h of r)h.sort((f,g)=>f.visibleColumn-g.visibleColumn);return r}getVisibleColumnFromPosition(e){return zs.visibleColumnFromColumn(this.textModel.getLineContent(e.lineNumber),e.column,this.textModel.getOptions().tabSize)+1}getLinesIndentGuides(e,t){this.assertNotDisposed();const i=this.textModel.getLineCount();if(e<1||e>i)throw new Error(\"Illegal value for startLineNumber\");if(t<1||t>i)throw new Error(\"Illegal value for endLineNumber\");const s=this.textModel.getOptions(),o=this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules,r=!!(o&&o.offSide),a=new Array(t-e+1);let l=-2,c=-1,d=-2,u=-1;for(let h=e;h<=t;h++){const f=h-e,g=this._computeIndentLevel(h-1);if(g>=0){l=h-1,c=g,a[f]=Math.ceil(g/s.indentSize);continue}if(l===-2){l=-1,c=-1;for(let p=h-2;p>=0;p--){const _=this._computeIndentLevel(p);if(_>=0){l=p,c=_;break}}}if(d!==-1&&(d===-2||d<h-1)){d=-1,u=-1;for(let p=h;p<i;p++){const _=this._computeIndentLevel(p);if(_>=0){d=p,u=_;break}}}a[f]=this._getIndentLevelForWhitespaceLine(r,c,u)}return a}_getIndentLevelForWhitespaceLine(e,t,i){const s=this.textModel.getOptions();return t===-1||i===-1?0:t<i?1+Math.floor(t/s.indentSize):t===i||e?Math.ceil(i/s.indentSize):1+Math.floor(i/s.indentSize)}}class xce{constructor(){this.activeClassName=\"indent-active\"}getInlineClassName(e,t,i){return this.getInlineClassNameOfLevel(i?t:e)}getInlineClassNameOfLevel(e){return`bracket-indent-guide lvl-${e%30}`}}class G8e extends X0{constructor(e){super(),this._context=e,this._primaryPosition=null;const t=this._context.configuration.options,i=t.get(146),s=t.get(50);this._spaceWidth=s.spaceWidth,this._maxIndentLeft=i.wrappingColumn===-1?-1:i.wrappingColumn*s.typicalHalfwidthCharacterWidth,this._bracketPairGuideOptions=t.get(16),this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(146),s=t.get(50);return this._spaceWidth=s.spaceWidth,this._maxIndentLeft=i.wrappingColumn===-1?-1:i.wrappingColumn*s.typicalHalfwidthCharacterWidth,this._bracketPairGuideOptions=t.get(16),!0}onCursorStateChanged(e){var t;const s=e.selections[0].getPosition();return!((t=this._primaryPosition)===null||t===void 0)&&t.equals(s)?!1:(this._primaryPosition=s,!0)}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}onLanguageConfigurationChanged(e){return!0}prepareRender(e){var t,i,s,o;if(!this._bracketPairGuideOptions.indentation&&this._bracketPairGuideOptions.bracketPairs===!1){this._renderResult=null;return}const r=e.visibleRange.startLineNumber,a=e.visibleRange.endLineNumber,l=e.scrollWidth,c=this._primaryPosition,d=this.getGuidesByLine(r,Math.min(a+1,this._context.viewModel.getLineCount()),c),u=[];for(let h=r;h<=a;h++){const f=h-r,g=d[f];let p=\"\";const _=(i=(t=e.visibleRangeForPosition(new ee(h,1)))===null||t===void 0?void 0:t.left)!==null&&i!==void 0?i:0;for(const b of g){const w=b.column===-1?_+(b.visibleColumn-1)*this._spaceWidth:e.visibleRangeForPosition(new ee(h,b.column)).left;if(w>l||this._maxIndentLeft>0&&w>this._maxIndentLeft)break;const y=b.horizontalLine?b.horizontalLine.top?\"horizontal-top\":\"horizontal-bottom\":\"vertical\",S=b.horizontalLine?((o=(s=e.visibleRangeForPosition(new ee(h,b.horizontalLine.endColumn)))===null||s===void 0?void 0:s.left)!==null&&o!==void 0?o:w+this._spaceWidth)-w:this._spaceWidth;p+=`<div class=\"core-guide ${b.className} ${y}\" style=\"left:${w}px;width:${S}px\"></div>`}u[f]=p}this._renderResult=u}getGuidesByLine(e,t,i){const s=this._bracketPairGuideOptions.bracketPairs!==!1?this._context.viewModel.getBracketGuidesInRangeByLine(e,t,i,{highlightActive:this._bracketPairGuideOptions.highlightActiveBracketPair,horizontalGuides:this._bracketPairGuideOptions.bracketPairsHorizontal===!0?jv.Enabled:this._bracketPairGuideOptions.bracketPairsHorizontal===\"active\"?jv.EnabledForActive:jv.Disabled,includeInactive:this._bracketPairGuideOptions.bracketPairs===!0}):null,o=this._bracketPairGuideOptions.indentation?this._context.viewModel.getLinesIndentGuides(e,t):null;let r=0,a=0,l=0;if(this._bracketPairGuideOptions.highlightActiveIndentation!==!1&&i){const u=this._context.viewModel.getActiveIndentGuide(i.lineNumber,e,t);r=u.startLineNumber,a=u.endLineNumber,l=u.indent}const{indentSize:c}=this._context.viewModel.model.getOptions(),d=[];for(let u=e;u<=t;u++){const h=new Array;d.push(h);const f=s?s[u-e]:[],g=new Lg(f),p=o?o[u-e]:0;for(let _=1;_<=p;_++){const b=(_-1)*c+1,w=(this._bracketPairGuideOptions.highlightActiveIndentation===\"always\"||f.length===0)&&r<=u&&u<=a&&_===l;h.push(...g.takeWhile(S=>S.visibleColumn<b)||[]);const y=g.peek();(!y||y.visibleColumn!==b||y.horizontalLine)&&h.push(new Dv(b,-1,`core-guide-indent lvl-${(_-1)%30}`+(w?\" indent-active\":\"\"),null,-1,-1))}h.push(...g.takeWhile(_=>!0)||[])}return d}render(e,t){if(!this._renderResult)return\"\";const i=t-e;return i<0||i>=this._renderResult.length?\"\":this._renderResult[i]}}function Fb(n){if(!(n&&n.isTransparent()))return n}mc((n,e)=>{const t=[{bracketColor:lce,guideColor:X3e,guideColorActive:n8e},{bracketColor:cce,guideColor:Q3e,guideColorActive:s8e},{bracketColor:dce,guideColor:J3e,guideColorActive:o8e},{bracketColor:uce,guideColor:e8e,guideColorActive:r8e},{bracketColor:hce,guideColor:t8e,guideColorActive:a8e},{bracketColor:fce,guideColor:i8e,guideColorActive:l8e}],i=new xce,s=[{indentColor:yD,indentColorActive:SD},{indentColor:R3e,indentColorActive:B3e},{indentColor:M3e,indentColorActive:W3e},{indentColor:P3e,indentColorActive:H3e},{indentColor:O3e,indentColorActive:V3e},{indentColor:F3e,indentColorActive:z3e}],o=t.map(a=>{var l,c;const d=n.getColor(a.bracketColor),u=n.getColor(a.guideColor),h=n.getColor(a.guideColorActive),f=Fb((l=Fb(u))!==null&&l!==void 0?l:d==null?void 0:d.transparent(.3)),g=Fb((c=Fb(h))!==null&&c!==void 0?c:d);if(!(!f||!g))return{guideColor:f,guideColorActive:g}}).filter(gh),r=s.map(a=>{const l=n.getColor(a.indentColor),c=n.getColor(a.indentColorActive),d=Fb(l),u=Fb(c);if(!(!d||!u))return{indentColor:d,indentColorActive:u}}).filter(gh);if(o.length>0){for(let a=0;a<30;a++){const l=o[a%o.length];e.addRule(`.monaco-editor .${i.getInlineClassNameOfLevel(a).replace(/ /g,\".\")} { --guide-color: ${l.guideColor}; --guide-color-active: ${l.guideColorActive}; }`)}e.addRule(\".monaco-editor .vertical { box-shadow: 1px 0 0 0 var(--guide-color) inset; }\"),e.addRule(\".monaco-editor .horizontal-top { border-top: 1px solid var(--guide-color); }\"),e.addRule(\".monaco-editor .horizontal-bottom { border-bottom: 1px solid var(--guide-color); }\"),e.addRule(`.monaco-editor .vertical.${i.activeClassName} { box-shadow: 1px 0 0 0 var(--guide-color-active) inset; }`),e.addRule(`.monaco-editor .horizontal-top.${i.activeClassName} { border-top: 1px solid var(--guide-color-active); }`),e.addRule(`.monaco-editor .horizontal-bottom.${i.activeClassName} { border-bottom: 1px solid var(--guide-color-active); }`)}if(r.length>0){for(let a=0;a<30;a++){const l=r[a%r.length];e.addRule(`.monaco-editor .lines-content .core-guide-indent.lvl-${a} { --indent-color: ${l.indentColor}; --indent-color-active: ${l.indentColorActive}; }`)}e.addRule(\".monaco-editor .lines-content .core-guide-indent { box-shadow: 1px 0 0 0 var(--indent-color) inset; }\"),e.addRule(\".monaco-editor .lines-content .core-guide-indent.indent-active { box-shadow: 1px 0 0 0 var(--indent-color-active) inset; }\")}});class r5{get didDomLayout(){return this._didDomLayout}readClientRect(){if(!this._clientRectRead){this._clientRectRead=!0;const e=this._domNode.getBoundingClientRect();this.markDidDomLayout(),this._clientRectDeltaLeft=e.left,this._clientRectScale=e.width/this._domNode.offsetWidth}}get clientRectDeltaLeft(){return this._clientRectRead||this.readClientRect(),this._clientRectDeltaLeft}get clientRectScale(){return this._clientRectRead||this.readClientRect(),this._clientRectScale}constructor(e,t){this._domNode=e,this.endNode=t,this._didDomLayout=!1,this._clientRectDeltaLeft=0,this._clientRectScale=1,this._clientRectRead=!1}markDidDomLayout(){this._didDomLayout=!0}}class Z8e{constructor(){this._currentVisibleRange=new A(1,1,1,1)}getCurrentVisibleRange(){return this._currentVisibleRange}setCurrentVisibleRange(e){this._currentVisibleRange=e}}class Y8e{constructor(e,t,i,s,o,r,a){this.minimalReveal=e,this.lineNumber=t,this.startColumn=i,this.endColumn=s,this.startScrollTop=o,this.stopScrollTop=r,this.scrollType=a,this.type=\"range\",this.minLineNumber=t,this.maxLineNumber=t}}class X8e{constructor(e,t,i,s,o){this.minimalReveal=e,this.selections=t,this.startScrollTop=i,this.stopScrollTop=s,this.scrollType=o,this.type=\"selections\";let r=t[0].startLineNumber,a=t[0].endLineNumber;for(let l=1,c=t.length;l<c;l++){const d=t[l];r=Math.min(r,d.startLineNumber),a=Math.max(a,d.endLineNumber)}this.minLineNumber=r,this.maxLineNumber=a}}class HM extends Va{constructor(e,t){super(e),this._linesContent=t,this._textRangeRestingSpot=document.createElement(\"div\"),this._visibleLines=new bce(this),this.domNode=this._visibleLines.domNode;const i=this._context.configuration,s=this._context.configuration.options,o=s.get(50),r=s.get(146);this._lineHeight=s.get(67),this._typicalHalfwidthCharacterWidth=o.typicalHalfwidthCharacterWidth,this._isViewportWrapping=r.isViewportWrapping,this._revealHorizontalRightPadding=s.get(100),this._cursorSurroundingLines=s.get(29),this._cursorSurroundingLinesStyle=s.get(30),this._canUseLayerHinting=!s.get(32),this._viewLineOptions=new OX(i,this._context.theme.type),ru.write(this.domNode,8),this.domNode.setClassName(`view-lines ${J1}`),So(this.domNode,o),this._maxLineWidth=0,this._asyncUpdateLineWidths=new Xi(()=>{this._updateLineWidthsSlow()},200),this._asyncCheckMonospaceFontAssumptions=new Xi(()=>{this._checkMonospaceFontAssumptions()},2e3),this._lastRenderedData=new Z8e,this._horizontalRevealRequest=null,this._stickyScrollEnabled=s.get(115).enabled,this._maxNumberStickyLines=s.get(115).maxLineCount}dispose(){this._asyncUpdateLineWidths.dispose(),this._asyncCheckMonospaceFontAssumptions.dispose(),super.dispose()}getDomNode(){return this.domNode}createVisibleLine(){return new eh(this._viewLineOptions)}onConfigurationChanged(e){this._visibleLines.onConfigurationChanged(e),e.hasChanged(146)&&(this._maxLineWidth=0);const t=this._context.configuration.options,i=t.get(50),s=t.get(146);return this._lineHeight=t.get(67),this._typicalHalfwidthCharacterWidth=i.typicalHalfwidthCharacterWidth,this._isViewportWrapping=s.isViewportWrapping,this._revealHorizontalRightPadding=t.get(100),this._cursorSurroundingLines=t.get(29),this._cursorSurroundingLinesStyle=t.get(30),this._canUseLayerHinting=!t.get(32),this._stickyScrollEnabled=t.get(115).enabled,this._maxNumberStickyLines=t.get(115).maxLineCount,So(this.domNode,i),this._onOptionsMaybeChanged(),e.hasChanged(145)&&(this._maxLineWidth=0),!0}_onOptionsMaybeChanged(){const e=this._context.configuration,t=new OX(e,this._context.theme.type);if(!this._viewLineOptions.equals(t)){this._viewLineOptions=t;const i=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber();for(let o=i;o<=s;o++)this._visibleLines.getVisibleLine(o).onOptionsChanged(this._viewLineOptions);return!0}return!1}onCursorStateChanged(e){const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();let s=!1;for(let o=t;o<=i;o++)s=this._visibleLines.getVisibleLine(o).onSelectionChanged()||s;return s}onDecorationsChanged(e){{const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();for(let s=t;s<=i;s++)this._visibleLines.getVisibleLine(s).onDecorationsChanged()}return!0}onFlushed(e){const t=this._visibleLines.onFlushed(e);return this._maxLineWidth=0,t}onLinesChanged(e){return this._visibleLines.onLinesChanged(e)}onLinesDeleted(e){return this._visibleLines.onLinesDeleted(e)}onLinesInserted(e){return this._visibleLines.onLinesInserted(e)}onRevealRangeRequest(e){const t=this._computeScrollTopToRevealRange(this._context.viewLayout.getFutureViewport(),e.source,e.minimalReveal,e.range,e.selections,e.verticalType);if(t===-1)return!1;let i=this._context.viewLayout.validateScrollPosition({scrollTop:t});e.revealHorizontal?e.range&&e.range.startLineNumber!==e.range.endLineNumber?i={scrollTop:i.scrollTop,scrollLeft:0}:e.range?this._horizontalRevealRequest=new Y8e(e.minimalReveal,e.range.startLineNumber,e.range.startColumn,e.range.endColumn,this._context.viewLayout.getCurrentScrollTop(),i.scrollTop,e.scrollType):e.selections&&e.selections.length>0&&(this._horizontalRevealRequest=new X8e(e.minimalReveal,e.selections,this._context.viewLayout.getCurrentScrollTop(),i.scrollTop,e.scrollType)):this._horizontalRevealRequest=null;const o=Math.abs(this._context.viewLayout.getCurrentScrollTop()-i.scrollTop)<=this._lineHeight?1:e.scrollType;return this._context.viewModel.viewLayout.setScrollPosition(i,o),!0}onScrollChanged(e){if(this._horizontalRevealRequest&&e.scrollLeftChanged&&(this._horizontalRevealRequest=null),this._horizontalRevealRequest&&e.scrollTopChanged){const t=Math.min(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop),i=Math.max(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop);(e.scrollTop<t||e.scrollTop>i)&&(this._horizontalRevealRequest=null)}return this.domNode.setWidth(e.scrollWidth),this._visibleLines.onScrollChanged(e)||!0}onTokensChanged(e){return this._visibleLines.onTokensChanged(e)}onZonesChanged(e){return this._context.viewModel.viewLayout.setMaxLineWidth(this._maxLineWidth),this._visibleLines.onZonesChanged(e)}onThemeChanged(e){return this._onOptionsMaybeChanged()}getPositionFromDOMInfo(e,t){const i=this._getViewLineDomNode(e);if(i===null)return null;const s=this._getLineNumberFor(i);if(s===-1||s<1||s>this._context.viewModel.getLineCount())return null;if(this._context.viewModel.getLineMaxColumn(s)===1)return new ee(s,1);const o=this._visibleLines.getStartLineNumber(),r=this._visibleLines.getEndLineNumber();if(s<o||s>r)return null;let a=this._visibleLines.getVisibleLine(s).getColumnOfNodeOffset(e,t);const l=this._context.viewModel.getLineMinColumn(s);return a<l&&(a=l),new ee(s,a)}_getViewLineDomNode(e){for(;e&&e.nodeType===1;){if(e.className===eh.CLASS_NAME)return e;e=e.parentElement}return null}_getLineNumberFor(e){const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();for(let s=t;s<=i;s++){const o=this._visibleLines.getVisibleLine(s);if(e===o.getDomNode())return s}return-1}getLineWidth(e){const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();if(e<t||e>i)return-1;const s=new r5(this.domNode.domNode,this._textRangeRestingSpot),o=this._visibleLines.getVisibleLine(e).getWidth(s);return this._updateLineWidthsSlowIfDomDidLayout(s),o}linesVisibleRangesForRange(e,t){if(this.shouldRender())return null;const i=e.endLineNumber,s=A.intersectRanges(e,this._lastRenderedData.getCurrentVisibleRange());if(!s)return null;const o=[];let r=0;const a=new r5(this.domNode.domNode,this._textRangeRestingSpot);let l=0;t&&(l=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new ee(s.startLineNumber,1)).lineNumber);const c=this._visibleLines.getStartLineNumber(),d=this._visibleLines.getEndLineNumber();for(let u=s.startLineNumber;u<=s.endLineNumber;u++){if(u<c||u>d)continue;const h=u===s.startLineNumber?s.startColumn:1,f=u!==s.endLineNumber,g=f?this._context.viewModel.getLineMaxColumn(u):s.endColumn,p=this._visibleLines.getVisibleLine(u).getVisibleRangesForRange(u,h,g,a);if(p){if(t&&u<i){const _=l;l=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new ee(u+1,1)).lineNumber,_!==l&&(p.ranges[p.ranges.length-1].width+=this._typicalHalfwidthCharacterWidth)}o[r++]=new Y5e(p.outsideRenderedLine,u,RM.from(p.ranges),f)}}return this._updateLineWidthsSlowIfDomDidLayout(a),r===0?null:o}_visibleRangesForLineRange(e,t,i){if(this.shouldRender()||e<this._visibleLines.getStartLineNumber()||e>this._visibleLines.getEndLineNumber())return null;const s=new r5(this.domNode.domNode,this._textRangeRestingSpot),o=this._visibleLines.getVisibleLine(e).getVisibleRangesForRange(e,t,i,s);return this._updateLineWidthsSlowIfDomDidLayout(s),o}visibleRangeForPosition(e){const t=this._visibleRangesForLineRange(e.lineNumber,e.column,e.column);return t?new X5e(t.outsideRenderedLine,t.ranges[0].left):null}_updateLineWidthsFast(){return this._updateLineWidths(!0)}_updateLineWidthsSlow(){this._updateLineWidths(!1)}_updateLineWidthsSlowIfDomDidLayout(e){e.didDomLayout&&(this._asyncUpdateLineWidths.isScheduled()||(this._asyncUpdateLineWidths.cancel(),this._updateLineWidthsSlow()))}_updateLineWidths(e){const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();let s=1,o=!0;for(let r=t;r<=i;r++){const a=this._visibleLines.getVisibleLine(r);if(e&&!a.getWidthIsFast()){o=!1;continue}s=Math.max(s,a.getWidth(null))}return o&&t===1&&i===this._context.viewModel.getLineCount()&&(this._maxLineWidth=0),this._ensureMaxLineWidth(s),o}_checkMonospaceFontAssumptions(){let e=-1,t=-1;const i=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber();for(let o=i;o<=s;o++){const r=this._visibleLines.getVisibleLine(o);if(r.needsMonospaceFontCheck()){const a=r.getWidth(null);a>t&&(t=a,e=o)}}if(e!==-1&&!this._visibleLines.getVisibleLine(e).monospaceAssumptionsAreValid())for(let o=i;o<=s;o++)this._visibleLines.getVisibleLine(o).onMonospaceAssumptionsInvalidated()}prepareRender(){throw new Error(\"Not supported\")}render(){throw new Error(\"Not supported\")}renderText(e){if(this._visibleLines.renderLines(e),this._lastRenderedData.setCurrentVisibleRange(e.visibleRange),this.domNode.setWidth(this._context.viewLayout.getScrollWidth()),this.domNode.setHeight(Math.min(this._context.viewLayout.getScrollHeight(),1e6)),this._horizontalRevealRequest){const i=this._horizontalRevealRequest;if(e.startLineNumber<=i.minLineNumber&&i.maxLineNumber<=e.endLineNumber){this._horizontalRevealRequest=null,this.onDidRender();const s=this._computeScrollLeftToReveal(i);s&&(this._isViewportWrapping||this._ensureMaxLineWidth(s.maxHorizontalOffset),this._context.viewModel.viewLayout.setScrollPosition({scrollLeft:s.scrollLeft},i.scrollType))}}if(this._updateLineWidthsFast()?this._asyncUpdateLineWidths.cancel():this._asyncUpdateLineWidths.schedule(),Br&&!this._asyncCheckMonospaceFontAssumptions.isScheduled()){const i=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber();for(let o=i;o<=s;o++)if(this._visibleLines.getVisibleLine(o).needsMonospaceFontCheck()){this._asyncCheckMonospaceFontAssumptions.schedule();break}}this._linesContent.setLayerHinting(this._canUseLayerHinting),this._linesContent.setContain(\"strict\");const t=this._context.viewLayout.getCurrentScrollTop()-e.bigNumbersDelta;this._linesContent.setTop(-t),this._linesContent.setLeft(-this._context.viewLayout.getCurrentScrollLeft())}_ensureMaxLineWidth(e){const t=Math.ceil(e);this._maxLineWidth<t&&(this._maxLineWidth=t,this._context.viewModel.viewLayout.setMaxLineWidth(this._maxLineWidth))}_computeScrollTopToRevealRange(e,t,i,s,o,r){const a=e.top,l=e.height,c=a+l;let d,u,h;if(o&&o.length>0){let b=o[0].startLineNumber,w=o[0].endLineNumber;for(let y=1,S=o.length;y<S;y++){const x=o[y];b=Math.min(b,x.startLineNumber),w=Math.max(w,x.endLineNumber)}d=!1,u=this._context.viewLayout.getVerticalOffsetForLineNumber(b),h=this._context.viewLayout.getVerticalOffsetForLineNumber(w)+this._lineHeight}else if(s)d=!0,u=this._context.viewLayout.getVerticalOffsetForLineNumber(s.startLineNumber),h=this._context.viewLayout.getVerticalOffsetForLineNumber(s.endLineNumber)+this._lineHeight;else return-1;const f=(t===\"mouse\"||i)&&this._cursorSurroundingLinesStyle===\"default\";let g=0,p=0;if(f)i||(g=this._lineHeight);else{const b=Math.min(l/this._lineHeight/2,this._cursorSurroundingLines);this._stickyScrollEnabled?g=Math.max(b,this._maxNumberStickyLines)*this._lineHeight:g=b*this._lineHeight,p=Math.max(0,b-1)*this._lineHeight}i||(r===0||r===4)&&(p+=this._lineHeight),u-=g,h+=p;let _;if(h-u>l){if(!d)return-1;_=u}else if(r===5||r===6)if(r===6&&a<=u&&h<=c)_=a;else{const b=Math.max(5*this._lineHeight,l*.2),w=u-b,y=h-l;_=Math.max(y,w)}else if(r===1||r===2)if(r===2&&a<=u&&h<=c)_=a;else{const b=(u+h)/2;_=Math.max(0,b-l/2)}else _=this._computeMinimumScrolling(a,c,u,h,r===3,r===4);return _}_computeScrollLeftToReveal(e){const t=this._context.viewLayout.getCurrentViewport(),i=this._context.configuration.options.get(145),s=t.left,o=s+t.width-i.verticalScrollbarWidth;let r=1073741824,a=0;if(e.type===\"range\"){const c=this._visibleRangesForLineRange(e.lineNumber,e.startColumn,e.endColumn);if(!c)return null;for(const d of c.ranges)r=Math.min(r,Math.round(d.left)),a=Math.max(a,Math.round(d.left+d.width))}else for(const c of e.selections){if(c.startLineNumber!==c.endLineNumber)return null;const d=this._visibleRangesForLineRange(c.startLineNumber,c.startColumn,c.endColumn);if(!d)return null;for(const u of d.ranges)r=Math.min(r,Math.round(u.left)),a=Math.max(a,Math.round(u.left+u.width))}return e.minimalReveal||(r=Math.max(0,r-HM.HORIZONTAL_EXTRA_PX),a+=this._revealHorizontalRightPadding),e.type===\"selections\"&&a-r>t.width?null:{scrollLeft:this._computeMinimumScrolling(s,o,r,a),maxHorizontalOffset:a}}_computeMinimumScrolling(e,t,i,s,o,r){e=e|0,t=t|0,i=i|0,s=s|0,o=!!o,r=!!r;const a=t-e;if(s-i<a){if(o)return i;if(r)return Math.max(0,s-a);if(i<e)return i;if(s>t)return Math.max(0,s-a)}else return i;return e}}HM.HORIZONTAL_EXTRA_PX=30;class Q8e extends yce{constructor(e){super(),this._context=e;const i=this._context.configuration.options.get(145);this._decorationsLeft=i.decorationsLeft,this._decorationsWidth=i.decorationsWidth,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const i=this._context.configuration.options.get(145);return this._decorationsLeft=i.decorationsLeft,this._decorationsWidth=i.decorationsWidth,!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}_getDecorations(e){var t,i;const s=e.getDecorationsInViewport(),o=[];let r=0;for(let a=0,l=s.length;a<l;a++){const c=s[a],d=c.options.linesDecorationsClassName,u=c.options.zIndex;d&&(o[r++]=new FB(c.range.startLineNumber,c.range.endLineNumber,d,(t=c.options.linesDecorationsTooltip)!==null&&t!==void 0?t:null,u));const h=c.options.firstLineDecorationClassName;h&&(o[r++]=new FB(c.range.startLineNumber,c.range.startLineNumber,h,(i=c.options.linesDecorationsTooltip)!==null&&i!==void 0?i:null,u))}return o}prepareRender(e){const t=e.visibleRange.startLineNumber,i=e.visibleRange.endLineNumber,s=this._render(t,i,this._getDecorations(e)),o=this._decorationsLeft.toString(),r=this._decorationsWidth.toString(),a='\" style=\"left:'+o+\"px;width:\"+r+'px;\"></div>',l=[];for(let c=t;c<=i;c++){const d=c-t,u=s[d].getDecorations();let h=\"\";for(const f of u){let g='<div class=\"cldr '+f.className;f.tooltip!==null&&(g+='\" title=\"'+f.tooltip),g+=a,h+=g}l[d]=h}this._renderResult=l}render(e,t){return this._renderResult?this._renderResult[t-e]:\"\"}}class J8e extends yce{constructor(e){super(),this._context=e,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){return!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}_getDecorations(e){const t=e.getDecorationsInViewport(),i=[];let s=0;for(let o=0,r=t.length;o<r;o++){const a=t[o],l=a.options.marginClassName,c=a.options.zIndex;l&&(i[s++]=new FB(a.range.startLineNumber,a.range.endLineNumber,l,null,c))}return i}prepareRender(e){const t=e.visibleRange.startLineNumber,i=e.visibleRange.endLineNumber,s=this._render(t,i,this._getDecorations(e)),o=[];for(let r=t;r<=i;r++){const a=r-t,l=s[a].getDecorations();let c=\"\";for(const d of l)c+='<div class=\"cmdr '+d.className+'\" style=\"\"></div>';o[a]=c}this._renderResult=o}render(e,t){return this._renderResult?this._renderResult[t-e]:\"\"}}class pl{constructor(e,t,i,s){this._rgba8Brand=void 0,this.r=pl._clamp(e),this.g=pl._clamp(t),this.b=pl._clamp(i),this.a=pl._clamp(s)}equals(e){return this.r===e.r&&this.g===e.g&&this.b===e.b&&this.a===e.a}static _clamp(e){return e<0?0:e>255?255:e|0}}pl.Empty=new pl(0,0,0,0);class LD extends ne{static getInstance(){return this._INSTANCE||(this._INSTANCE=new LD),this._INSTANCE}constructor(){super(),this._onDidChange=new X,this.onDidChange=this._onDidChange.event,this._updateColorMap(),this._register(Zn.onDidChange(e=>{e.changedColorMap&&this._updateColorMap()}))}_updateColorMap(){const e=Zn.getColorMap();if(!e){this._colors=[pl.Empty],this._backgroundIsLight=!0;return}this._colors=[pl.Empty];for(let i=1;i<e.length;i++){const s=e[i].rgba;this._colors[i]=new pl(s.r,s.g,s.b,Math.round(s.a*255))}const t=e[2].getRelativeLuminance();this._backgroundIsLight=t>=.5,this._onDidChange.fire(void 0)}getColor(e){return(e<1||e>=this._colors.length)&&(e=2),this._colors[e]}backgroundIsLight(){return this._backgroundIsLight}}LD._INSTANCE=null;const e7e=(()=>{const n=[];for(let e=32;e<=126;e++)n.push(e);return n.push(65533),n})(),t7e=(n,e)=>(n-=32,n<0||n>96?e<=2?(n+96)%96:95:n);class TL{constructor(e,t){this.scale=t,this._minimapCharRendererBrand=void 0,this.charDataNormal=TL.soften(e,12/15),this.charDataLight=TL.soften(e,50/60)}static soften(e,t){const i=new Uint8ClampedArray(e.length);for(let s=0,o=e.length;s<o;s++)i[s]=U2(e[s]*t);return i}renderChar(e,t,i,s,o,r,a,l,c,d,u){const h=1*this.scale,f=2*this.scale,g=u?1:f;if(t+h>e.width||i+g>e.height){console.warn(\"bad render request outside image data\");return}const p=d?this.charDataLight:this.charDataNormal,_=t7e(s,c),b=e.width*4,w=a.r,y=a.g,S=a.b,x=o.r-w,k=o.g-y,D=o.b-S,I=Math.max(r,l),N=e.data;let P=_*h*f,O=i*b+t*4;for(let M=0;M<g;M++){let z=O;for(let K=0;K<h;K++){const ae=p[P++]/255*(r/255);N[z++]=w+x*ae,N[z++]=y+k*ae,N[z++]=S+D*ae,N[z++]=I}O+=b}}blockRenderChar(e,t,i,s,o,r,a,l){const c=1*this.scale,d=2*this.scale,u=l?1:d;if(t+c>e.width||i+u>e.height){console.warn(\"bad render request outside image data\");return}const h=e.width*4,f=.5*(o/255),g=r.r,p=r.g,_=r.b,b=s.r-g,w=s.g-p,y=s.b-_,S=g+b*f,x=p+w*f,k=_+y*f,D=Math.max(o,a),I=e.data;let N=i*h+t*4;for(let P=0;P<u;P++){let O=N;for(let M=0;M<c;M++)I[O++]=S,I[O++]=x,I[O++]=k,I[O++]=D;N+=h}}}const GX={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15},ZX=n=>{const e=new Uint8ClampedArray(n.length/2);for(let t=0;t<n.length;t+=2)e[t>>1]=GX[n[t]]<<4|GX[n[t+1]]&15;return e},YX={1:Am(()=>ZX(\"0000511D6300CF609C709645A78432005642574171487021003C451900274D35D762755E8B629C5BA856AF57BA649530C167D1512A272A3F6038604460398526BCA2A968DB6F8957C768BE5FBE2FB467CF5D8D5B795DC7625B5DFF50DE64C466DB2FC47CD860A65E9A2EB96CB54CE06DA763AB2EA26860524D3763536601005116008177A8705E53AB738E6A982F88BAA35B5F5B626D9C636B449B737E5B7B678598869A662F6B5B8542706C704C80736A607578685B70594A49715A4522E792\")),2:Am(()=>ZX(\"000000000000000055394F383D2800008B8B1F210002000081B1CBCBCC820000847AAF6B9AAF2119BE08B8881AD60000A44FD07DCCF107015338130C00000000385972265F390B406E2437634B4B48031B12B8A0847000001E15B29A402F0000000000004B33460B00007A752C2A0000000000004D3900000084394B82013400ABA5CFC7AD9C0302A45A3E5A98AB000089A43382D97900008BA54AA087A70A0248A6A7AE6DBE0000BF6F94987EA40A01A06DCFA7A7A9030496C32F77891D0000A99FB1A0AFA80603B29AB9CA75930D010C0948354D3900000C0948354F37460D0028BE673D8400000000AF9D7B6E00002B007AA8933400007AA642675C2700007984CFB9C3985B768772A8A6B7B20000CAAECAAFC4B700009F94A6009F840009D09F9BA4CA9C0000CC8FC76DC87F0000C991C472A2000000A894A48CA7B501079BA2C9C69BA20000B19A5D3FA89000005CA6009DA2960901B0A7F0669FB200009D009E00B7890000DAD0F5D092820000D294D4C48BD10000B5A7A4A3B1A50402CAB6CBA6A2000000B5A7A4A3B1A8044FCDADD19D9CB00000B7778F7B8AAE0803C9AB5D3F5D3F00009EA09EA0BAB006039EA0989A8C7900009B9EF4D6B7C00000A9A7816CACA80000ABAC84705D3F000096DA635CDC8C00006F486F266F263D4784006124097B00374F6D2D6D2D6D4A3A95872322000000030000000000008D8939130000000000002E22A5C9CBC70600AB25C0B5C9B400061A2DB04CA67001082AA6BEBEBFC606002321DACBC19E03087AA08B6768380000282FBAC0B8CA7A88AD25BBA5A29900004C396C5894A6000040485A6E356E9442A32CD17EADA70000B4237923628600003E2DE9C1D7B500002F25BBA5A2990000231DB6AFB4A804023025C0B5CAB588062B2CBDBEC0C706882435A75CA20000002326BD6A82A908048B4B9A5A668000002423A09CB4BB060025259C9D8A7900001C1FCAB2C7C700002A2A9387ABA200002626A4A47D6E9D14333163A0C87500004B6F9C2D643A257049364936493647358A34438355497F1A0000A24C1D590000D38DFFBDD4CD3126\"))};class gx{static create(e,t){if(this.lastCreated&&e===this.lastCreated.scale&&t===this.lastFontFamily)return this.lastCreated;let i;return YX[e]?i=new TL(YX[e](),e):i=gx.createFromSampleData(gx.createSampleData(t).data,e),this.lastFontFamily=t,this.lastCreated=i,i}static createSampleData(e){const t=document.createElement(\"canvas\"),i=t.getContext(\"2d\");t.style.height=\"16px\",t.height=16,t.width=96*10,t.style.width=96*10+\"px\",i.fillStyle=\"#ffffff\",i.font=`bold 16px ${e}`,i.textBaseline=\"middle\";let s=0;for(const o of e7e)i.fillText(String.fromCharCode(o),s,16/2),s+=10;return i.getImageData(0,0,96*10,16)}static createFromSampleData(e,t){if(e.length!==61440)throw new Error(\"Unexpected source in MinimapCharRenderer\");const s=gx._downsample(e,t);return new TL(s,t)}static _downsampleChar(e,t,i,s,o){const r=1*o,a=2*o;let l=s,c=0;for(let d=0;d<a;d++){const u=d/a*16,h=(d+1)/a*16;for(let f=0;f<r;f++){const g=f/r*10,p=(f+1)/r*10;let _=0,b=0;for(let y=u;y<h;y++){const S=t+Math.floor(y)*3840,x=1-(y-Math.floor(y));for(let k=g;k<p;k++){const D=1-(k-Math.floor(k)),I=S+Math.floor(k)*4,N=D*x;b+=N,_+=e[I]*e[I+3]/255*N}}const w=_/b;c=Math.max(c,w),i[l++]=U2(w)}}return c}static _downsample(e,t){const i=2*t*1*t,s=i*96,o=new Uint8ClampedArray(s);let r=0,a=0,l=0;for(let c=0;c<96;c++)l=Math.max(l,this._downsampleChar(e,a,o,r,t)),r+=i,a+=10*4;if(l>0){const c=255/l;for(let d=0;d<s;d++)o[d]*=c}return o}}const i7e=Mo?'\"Segoe WPC\", \"Segoe UI\", sans-serif':Xt?\"-apple-system, BlinkMacSystemFont, sans-serif\":'system-ui, \"Ubuntu\", \"Droid Sans\", sans-serif',n7e=140,s7e=2;class iC{constructor(e,t,i){const s=e.options,o=s.get(143),r=s.get(145),a=r.minimap,l=s.get(50),c=s.get(73);this.renderMinimap=a.renderMinimap,this.size=c.size,this.minimapHeightIsEditorHeight=a.minimapHeightIsEditorHeight,this.scrollBeyondLastLine=s.get(105),this.paddingTop=s.get(84).top,this.paddingBottom=s.get(84).bottom,this.showSlider=c.showSlider,this.autohide=c.autohide,this.pixelRatio=o,this.typicalHalfwidthCharacterWidth=l.typicalHalfwidthCharacterWidth,this.lineHeight=s.get(67),this.minimapLeft=a.minimapLeft,this.minimapWidth=a.minimapWidth,this.minimapHeight=r.height,this.canvasInnerWidth=a.minimapCanvasInnerWidth,this.canvasInnerHeight=a.minimapCanvasInnerHeight,this.canvasOuterWidth=a.minimapCanvasOuterWidth,this.canvasOuterHeight=a.minimapCanvasOuterHeight,this.isSampling=a.minimapIsSampling,this.editorHeight=r.height,this.fontScale=a.minimapScale,this.minimapLineHeight=a.minimapLineHeight,this.minimapCharWidth=1*this.fontScale,this.sectionHeaderFontFamily=i7e,this.sectionHeaderFontSize=c.sectionHeaderFontSize*o,this.sectionHeaderLetterSpacing=c.sectionHeaderLetterSpacing,this.sectionHeaderFontColor=iC._getSectionHeaderColor(t,i.getColor(1)),this.charRenderer=Am(()=>gx.create(this.fontScale,l.fontFamily)),this.defaultBackgroundColor=i.getColor(2),this.backgroundColor=iC._getMinimapBackground(t,this.defaultBackgroundColor),this.foregroundAlpha=iC._getMinimapForegroundOpacity(t)}static _getMinimapBackground(e,t){const i=e.getColor($Fe);return i?new pl(i.rgba.r,i.rgba.g,i.rgba.b,Math.round(255*i.rgba.a)):t}static _getMinimapForegroundOpacity(e){const t=e.getColor(UFe);return t?pl._clamp(Math.round(255*t.rgba.a)):255}static _getSectionHeaderColor(e,t){const i=e.getColor(Ql);return i?new pl(i.rgba.r,i.rgba.g,i.rgba.b,Math.round(255*i.rgba.a)):t}equals(e){return this.renderMinimap===e.renderMinimap&&this.size===e.size&&this.minimapHeightIsEditorHeight===e.minimapHeightIsEditorHeight&&this.scrollBeyondLastLine===e.scrollBeyondLastLine&&this.paddingTop===e.paddingTop&&this.paddingBottom===e.paddingBottom&&this.showSlider===e.showSlider&&this.autohide===e.autohide&&this.pixelRatio===e.pixelRatio&&this.typicalHalfwidthCharacterWidth===e.typicalHalfwidthCharacterWidth&&this.lineHeight===e.lineHeight&&this.minimapLeft===e.minimapLeft&&this.minimapWidth===e.minimapWidth&&this.minimapHeight===e.minimapHeight&&this.canvasInnerWidth===e.canvasInnerWidth&&this.canvasInnerHeight===e.canvasInnerHeight&&this.canvasOuterWidth===e.canvasOuterWidth&&this.canvasOuterHeight===e.canvasOuterHeight&&this.isSampling===e.isSampling&&this.editorHeight===e.editorHeight&&this.fontScale===e.fontScale&&this.minimapLineHeight===e.minimapLineHeight&&this.minimapCharWidth===e.minimapCharWidth&&this.sectionHeaderFontSize===e.sectionHeaderFontSize&&this.sectionHeaderLetterSpacing===e.sectionHeaderLetterSpacing&&this.defaultBackgroundColor&&this.defaultBackgroundColor.equals(e.defaultBackgroundColor)&&this.backgroundColor&&this.backgroundColor.equals(e.backgroundColor)&&this.foregroundAlpha===e.foregroundAlpha}}class px{constructor(e,t,i,s,o,r,a,l,c){this.scrollTop=e,this.scrollHeight=t,this.sliderNeeded=i,this._computedSliderRatio=s,this.sliderTop=o,this.sliderHeight=r,this.topPaddingLineCount=a,this.startLineNumber=l,this.endLineNumber=c}getDesiredScrollTopFromDelta(e){return Math.round(this.scrollTop+e/this._computedSliderRatio)}getDesiredScrollTopFromTouchLocation(e){return Math.round((e-this.sliderHeight/2)/this._computedSliderRatio)}intersectWithViewport(e){const t=Math.max(this.startLineNumber,e.startLineNumber),i=Math.min(this.endLineNumber,e.endLineNumber);return t>i?null:[t,i]}getYForLineNumber(e,t){return+(e-this.startLineNumber+this.topPaddingLineCount)*t}static create(e,t,i,s,o,r,a,l,c,d,u){const h=e.pixelRatio,f=e.minimapLineHeight,g=Math.floor(e.canvasInnerHeight/f),p=e.lineHeight;if(e.minimapHeightIsEditorHeight){let k=l*e.lineHeight+e.paddingTop+e.paddingBottom;e.scrollBeyondLastLine&&(k+=Math.max(0,o-e.lineHeight-e.paddingBottom));const D=Math.max(1,Math.floor(o*o/k)),I=Math.max(0,e.minimapHeight-D),N=I/(d-o),P=c*N,O=I>0,M=Math.floor(e.canvasInnerHeight/e.minimapLineHeight),z=Math.floor(e.paddingTop/e.lineHeight);return new px(c,d,O,N,P,D,z,1,Math.min(a,M))}let _;if(r&&i!==a){const k=i-t+1;_=Math.floor(k*f/h)}else{const k=o/p;_=Math.floor(k*f/h)}const b=Math.floor(e.paddingTop/p);let w=Math.floor(e.paddingBottom/p);if(e.scrollBeyondLastLine){const k=o/p;w=Math.max(w,k-1)}let y;if(w>0){const k=o/p;y=(b+a+w-k-1)*f/h}else y=Math.max(0,(b+a)*f/h-_);y=Math.min(e.minimapHeight-_,y);const S=y/(d-o),x=c*S;if(g>=b+a+w){const k=y>0;return new px(c,d,k,S,x,_,b,1,a)}else{let k;t>1?k=t+b:k=Math.max(1,c/p);let D,I=Math.max(1,Math.floor(k-x*h/f));I<b?(D=b-I+1,I=1):(D=0,I=Math.max(1,I-b)),u&&u.scrollHeight===d&&(u.scrollTop>c&&(I=Math.min(I,u.startLineNumber),D=Math.max(D,u.topPaddingLineCount)),u.scrollTop<c&&(I=Math.max(I,u.startLineNumber),D=Math.min(D,u.topPaddingLineCount)));const N=Math.min(a,I-D+g-1),P=(c-s)/p;let O;return c>=e.paddingTop?O=(t-I+D+P)*f/h:O=c/e.paddingTop*(D+P)*f/h,new px(c,d,!0,S,O,_,D,I,N)}}}class iA{constructor(e){this.dy=e}onContentChanged(){this.dy=-1}onTokensChanged(){this.dy=-1}}iA.INVALID=new iA(-1);class XX{constructor(e,t,i){this.renderedLayout=e,this._imageData=t,this._renderedLines=new vce(()=>iA.INVALID),this._renderedLines._set(e.startLineNumber,i)}linesEquals(e){if(!this.scrollEquals(e))return!1;const i=this._renderedLines._get().lines;for(let s=0,o=i.length;s<o;s++)if(i[s].dy===-1)return!1;return!0}scrollEquals(e){return this.renderedLayout.startLineNumber===e.startLineNumber&&this.renderedLayout.endLineNumber===e.endLineNumber}_get(){const e=this._renderedLines._get();return{imageData:this._imageData,rendLineNumberStart:e.rendLineNumberStart,lines:e.lines}}onLinesChanged(e,t){return this._renderedLines.onLinesChanged(e,t)}onLinesDeleted(e,t){this._renderedLines.onLinesDeleted(e,t)}onLinesInserted(e,t){this._renderedLines.onLinesInserted(e,t)}onTokensChanged(e){return this._renderedLines.onTokensChanged(e)}}class Hz{constructor(e,t,i,s){this._backgroundFillData=Hz._createBackgroundFillData(t,i,s),this._buffers=[e.createImageData(t,i),e.createImageData(t,i)],this._lastUsedBuffer=0}getBuffer(){this._lastUsedBuffer=1-this._lastUsedBuffer;const e=this._buffers[this._lastUsedBuffer];return e.data.set(this._backgroundFillData),e}static _createBackgroundFillData(e,t,i){const s=i.r,o=i.g,r=i.b,a=i.a,l=new Uint8ClampedArray(e*t*4);let c=0;for(let d=0;d<t;d++)for(let u=0;u<e;u++)l[c]=s,l[c+1]=o,l[c+2]=r,l[c+3]=a,c+=4;return l}}class NL{static compute(e,t,i){if(e.renderMinimap===0||!e.isSampling)return[null,[]];const{minimapLineCount:s}=U1.computeContainedMinimapLineCount({viewLineCount:t,scrollBeyondLastLine:e.scrollBeyondLastLine,paddingTop:e.paddingTop,paddingBottom:e.paddingBottom,height:e.editorHeight,lineHeight:e.lineHeight,pixelRatio:e.pixelRatio}),o=t/s,r=o/2;if(!i||i.minimapLines.length===0){const _=[];if(_[0]=1,s>1){for(let b=0,w=s-1;b<w;b++)_[b]=Math.round(b*o+r);_[s-1]=t}return[new NL(o,_),[]]}const a=i.minimapLines,l=a.length,c=[];let d=0,u=0,h=1;const f=10;let g=[],p=null;for(let _=0;_<s;_++){const b=Math.max(h,Math.round(_*o)),w=Math.max(b,Math.round((_+1)*o));for(;d<l&&a[d]<b;){if(g.length<f){const S=d+1+u;p&&p.type===\"deleted\"&&p._oldIndex===d-1?p.deleteToLineNumber++:(p={type:\"deleted\",_oldIndex:d,deleteFromLineNumber:S,deleteToLineNumber:S},g.push(p)),u--}d++}let y;if(d<l&&a[d]<=w)y=a[d],d++;else if(_===0?y=1:_+1===s?y=t:y=Math.round(_*o+r),g.length<f){const S=d+1+u;p&&p.type===\"inserted\"&&p._i===_-1?p.insertToLineNumber++:(p={type:\"inserted\",_i:_,insertFromLineNumber:S,insertToLineNumber:S},g.push(p)),u++}c[_]=y,h=y}if(g.length<f)for(;d<l;){const _=d+1+u;p&&p.type===\"deleted\"&&p._oldIndex===d-1?p.deleteToLineNumber++:(p={type:\"deleted\",_oldIndex:d,deleteFromLineNumber:_,deleteToLineNumber:_},g.push(p)),u--,d++}else g=[{type:\"flush\"}];return[new NL(o,c),g]}constructor(e,t){this.samplingRatio=e,this.minimapLines=t}modelLineToMinimapLine(e){return Math.min(this.minimapLines.length,Math.max(1,Math.round(e/this.samplingRatio)))}modelLineRangeToMinimapLineRange(e,t){let i=this.modelLineToMinimapLine(e)-1;for(;i>0&&this.minimapLines[i-1]>=e;)i--;let s=this.modelLineToMinimapLine(t)-1;for(;s+1<this.minimapLines.length&&this.minimapLines[s+1]<=t;)s++;if(i===s){const o=this.minimapLines[i];if(o<e||o>t)return null}return[i+1,s+1]}decorationLineRangeToMinimapLineRange(e,t){let i=this.modelLineToMinimapLine(e),s=this.modelLineToMinimapLine(t);return e!==t&&s===i&&(s===this.minimapLines.length?i>1&&i--:s++),[i,s]}onLinesDeleted(e){const t=e.toLineNumber-e.fromLineNumber+1;let i=this.minimapLines.length,s=0;for(let o=this.minimapLines.length-1;o>=0&&!(this.minimapLines[o]<e.fromLineNumber);o--)this.minimapLines[o]<=e.toLineNumber?(this.minimapLines[o]=Math.max(1,e.fromLineNumber-1),i=Math.min(i,o),s=Math.max(s,o)):this.minimapLines[o]-=t;return[i,s]}onLinesInserted(e){const t=e.toLineNumber-e.fromLineNumber+1;for(let i=this.minimapLines.length-1;i>=0&&!(this.minimapLines[i]<e.fromLineNumber);i--)this.minimapLines[i]+=t}}class o7e extends Va{constructor(e){super(e),this._sectionHeaderCache=new zh(10,1.5),this.tokensColorTracker=LD.getInstance(),this._selections=[],this._minimapSelections=null,this.options=new iC(this._context.configuration,this._context.theme,this.tokensColorTracker);const[t]=NL.compute(this.options,this._context.viewModel.getLineCount(),null);this._samplingState=t,this._shouldCheckSampling=!1,this._actual=new k1(e.theme,this)}dispose(){this._actual.dispose(),super.dispose()}getDomNode(){return this._actual.getDomNode()}_onOptionsMaybeChanged(){const e=new iC(this._context.configuration,this._context.theme,this.tokensColorTracker);return this.options.equals(e)?!1:(this.options=e,this._recreateLineSampling(),this._actual.onDidChangeOptions(),!0)}onConfigurationChanged(e){return this._onOptionsMaybeChanged()}onCursorStateChanged(e){return this._selections=e.selections,this._minimapSelections=null,this._actual.onSelectionChanged()}onDecorationsChanged(e){return e.affectsMinimap?this._actual.onDecorationsChanged():!1}onFlushed(e){return this._samplingState&&(this._shouldCheckSampling=!0),this._actual.onFlushed()}onLinesChanged(e){if(this._samplingState){const t=this._samplingState.modelLineRangeToMinimapLineRange(e.fromLineNumber,e.fromLineNumber+e.count-1);return t?this._actual.onLinesChanged(t[0],t[1]-t[0]+1):!1}else return this._actual.onLinesChanged(e.fromLineNumber,e.count)}onLinesDeleted(e){if(this._samplingState){const[t,i]=this._samplingState.onLinesDeleted(e);return t<=i&&this._actual.onLinesChanged(t+1,i-t+1),this._shouldCheckSampling=!0,!0}else return this._actual.onLinesDeleted(e.fromLineNumber,e.toLineNumber)}onLinesInserted(e){return this._samplingState?(this._samplingState.onLinesInserted(e),this._shouldCheckSampling=!0,!0):this._actual.onLinesInserted(e.fromLineNumber,e.toLineNumber)}onScrollChanged(e){return this._actual.onScrollChanged()}onThemeChanged(e){return this._actual.onThemeChanged(),this._onOptionsMaybeChanged(),!0}onTokensChanged(e){if(this._samplingState){const t=[];for(const i of e.ranges){const s=this._samplingState.modelLineRangeToMinimapLineRange(i.fromLineNumber,i.toLineNumber);s&&t.push({fromLineNumber:s[0],toLineNumber:s[1]})}return t.length?this._actual.onTokensChanged(t):!1}else return this._actual.onTokensChanged(e.ranges)}onTokensColorsChanged(e){return this._onOptionsMaybeChanged(),this._actual.onTokensColorsChanged()}onZonesChanged(e){return this._actual.onZonesChanged()}prepareRender(e){this._shouldCheckSampling&&(this._shouldCheckSampling=!1,this._recreateLineSampling())}render(e){let t=e.visibleRange.startLineNumber,i=e.visibleRange.endLineNumber;this._samplingState&&(t=this._samplingState.modelLineToMinimapLine(t),i=this._samplingState.modelLineToMinimapLine(i));const s={viewportContainsWhitespaceGaps:e.viewportData.whitespaceViewportData.length>0,scrollWidth:e.scrollWidth,scrollHeight:e.scrollHeight,viewportStartLineNumber:t,viewportEndLineNumber:i,viewportStartLineNumberVerticalOffset:e.getVerticalOffsetForLineNumber(t),scrollTop:e.scrollTop,scrollLeft:e.scrollLeft,viewportWidth:e.viewportWidth,viewportHeight:e.viewportHeight};this._actual.render(s)}_recreateLineSampling(){this._minimapSelections=null;const e=!!this._samplingState,[t,i]=NL.compute(this.options,this._context.viewModel.getLineCount(),this._samplingState);if(this._samplingState=t,e&&this._samplingState)for(const s of i)switch(s.type){case\"deleted\":this._actual.onLinesDeleted(s.deleteFromLineNumber,s.deleteToLineNumber);break;case\"inserted\":this._actual.onLinesInserted(s.insertFromLineNumber,s.insertToLineNumber);break;case\"flush\":this._actual.onFlushed();break}}getLineCount(){return this._samplingState?this._samplingState.minimapLines.length:this._context.viewModel.getLineCount()}getRealLineCount(){return this._context.viewModel.getLineCount()}getLineContent(e){return this._samplingState?this._context.viewModel.getLineContent(this._samplingState.minimapLines[e-1]):this._context.viewModel.getLineContent(e)}getLineMaxColumn(e){return this._samplingState?this._context.viewModel.getLineMaxColumn(this._samplingState.minimapLines[e-1]):this._context.viewModel.getLineMaxColumn(e)}getMinimapLinesRenderingData(e,t,i){if(this._samplingState){const s=[];for(let o=0,r=t-e+1;o<r;o++)i[o]?s[o]=this._context.viewModel.getViewLineData(this._samplingState.minimapLines[e+o-1]):s[o]=null;return s}return this._context.viewModel.getMinimapLinesRenderingData(e,t,i).data}getSelections(){if(this._minimapSelections===null)if(this._samplingState){this._minimapSelections=[];for(const e of this._selections){const[t,i]=this._samplingState.decorationLineRangeToMinimapLineRange(e.startLineNumber,e.endLineNumber);this._minimapSelections.push(new it(t,e.startColumn,i,e.endColumn))}}else this._minimapSelections=this._selections;return this._minimapSelections}getMinimapDecorationsInViewport(e,t){const i=this._getMinimapDecorationsInViewport(e,t).filter(s=>{var o;return!(!((o=s.options.minimap)===null||o===void 0)&&o.sectionHeaderStyle)});if(this._samplingState){const s=[];for(const o of i){if(!o.options.minimap)continue;const r=o.range,a=this._samplingState.modelLineToMinimapLine(r.startLineNumber),l=this._samplingState.modelLineToMinimapLine(r.endLineNumber);s.push(new Mle(new A(a,r.startColumn,l,r.endColumn),o.options))}return s}return i}getSectionHeaderDecorationsInViewport(e,t){const i=this.options.minimapLineHeight,o=this.options.sectionHeaderFontSize/i;return e=Math.floor(Math.max(1,e-o)),this._getMinimapDecorationsInViewport(e,t).filter(r=>{var a;return!!(!((a=r.options.minimap)===null||a===void 0)&&a.sectionHeaderStyle)})}_getMinimapDecorationsInViewport(e,t){let i;if(this._samplingState){const s=this._samplingState.minimapLines[e-1],o=this._samplingState.minimapLines[t-1];i=new A(s,1,o,this._context.viewModel.getLineMaxColumn(o))}else i=new A(e,1,t,this._context.viewModel.getLineMaxColumn(t));return this._context.viewModel.getMinimapDecorationsInRange(i)}getSectionHeaderText(e,t){var i;const s=(i=e.options.minimap)===null||i===void 0?void 0:i.sectionHeaderText;if(!s)return null;const o=this._sectionHeaderCache.get(s);if(o)return o;const r=t(s);return this._sectionHeaderCache.set(s,r),r}getOptions(){return this._context.viewModel.model.getOptions()}revealLineNumber(e){this._samplingState&&(e=this._samplingState.minimapLines[e-1]),this._context.viewModel.revealRange(\"mouse\",!1,new A(e,1,e,1),1,0)}setScrollTop(e){this._context.viewModel.viewLayout.setScrollPosition({scrollTop:e},1)}}class k1 extends ne{constructor(e,t){super(),this._renderDecorations=!1,this._gestureInProgress=!1,this._theme=e,this._model=t,this._lastRenderData=null,this._buffers=null,this._selectionColor=this._theme.getColor(AX),this._domNode=Di(document.createElement(\"div\")),ru.write(this._domNode,9),this._domNode.setClassName(this._getMinimapDomNodeClassName()),this._domNode.setPosition(\"absolute\"),this._domNode.setAttribute(\"role\",\"presentation\"),this._domNode.setAttribute(\"aria-hidden\",\"true\"),this._shadow=Di(document.createElement(\"div\")),this._shadow.setClassName(\"minimap-shadow-hidden\"),this._domNode.appendChild(this._shadow),this._canvas=Di(document.createElement(\"canvas\")),this._canvas.setPosition(\"absolute\"),this._canvas.setLeft(0),this._domNode.appendChild(this._canvas),this._decorationsCanvas=Di(document.createElement(\"canvas\")),this._decorationsCanvas.setPosition(\"absolute\"),this._decorationsCanvas.setClassName(\"minimap-decorations-layer\"),this._decorationsCanvas.setLeft(0),this._domNode.appendChild(this._decorationsCanvas),this._slider=Di(document.createElement(\"div\")),this._slider.setPosition(\"absolute\"),this._slider.setClassName(\"minimap-slider\"),this._slider.setLayerHinting(!0),this._slider.setContain(\"strict\"),this._domNode.appendChild(this._slider),this._sliderHorizontal=Di(document.createElement(\"div\")),this._sliderHorizontal.setPosition(\"absolute\"),this._sliderHorizontal.setClassName(\"minimap-slider-horizontal\"),this._slider.appendChild(this._sliderHorizontal),this._applyLayout(),this._pointerDownListener=rs(this._domNode.domNode,Le.POINTER_DOWN,i=>{if(i.preventDefault(),this._model.options.renderMinimap===0||!this._lastRenderData)return;if(this._model.options.size!==\"proportional\"){if(i.button===0&&this._lastRenderData){const c=bs(this._slider.domNode),d=c.top+c.height/2;this._startSliderDragging(i,d,this._lastRenderData.renderedLayout)}return}const o=this._model.options.minimapLineHeight,r=this._model.options.canvasInnerHeight/this._model.options.canvasOuterHeight*i.offsetY;let l=Math.floor(r/o)+this._lastRenderData.renderedLayout.startLineNumber-this._lastRenderData.renderedLayout.topPaddingLineCount;l=Math.min(l,this._model.getLineCount()),this._model.revealLineNumber(l)}),this._sliderPointerMoveMonitor=new Bw,this._sliderPointerDownListener=rs(this._slider.domNode,Le.POINTER_DOWN,i=>{i.preventDefault(),i.stopPropagation(),i.button===0&&this._lastRenderData&&this._startSliderDragging(i,i.pageY,this._lastRenderData.renderedLayout)}),this._gestureDisposable=hn.addTarget(this._domNode.domNode),this._sliderTouchStartListener=ce(this._domNode.domNode,fn.Start,i=>{i.preventDefault(),i.stopPropagation(),this._lastRenderData&&(this._slider.toggleClassName(\"active\",!0),this._gestureInProgress=!0,this.scrollDueToTouchEvent(i))},{passive:!1}),this._sliderTouchMoveListener=ce(this._domNode.domNode,fn.Change,i=>{i.preventDefault(),i.stopPropagation(),this._lastRenderData&&this._gestureInProgress&&this.scrollDueToTouchEvent(i)},{passive:!1}),this._sliderTouchEndListener=rs(this._domNode.domNode,fn.End,i=>{i.preventDefault(),i.stopPropagation(),this._gestureInProgress=!1,this._slider.toggleClassName(\"active\",!1)})}_startSliderDragging(e,t,i){if(!e.target||!(e.target instanceof Element))return;const s=e.pageX;this._slider.toggleClassName(\"active\",!0);const o=(r,a)=>{const l=bs(this._domNode.domNode),c=Math.min(Math.abs(a-s),Math.abs(a-l.left),Math.abs(a-l.left-l.width));if(Mo&&c>n7e){this._model.setScrollTop(i.scrollTop);return}const d=r-t;this._model.setScrollTop(i.getDesiredScrollTopFromDelta(d))};e.pageY!==t&&o(e.pageY,s),this._sliderPointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,r=>o(r.pageY,r.pageX),()=>{this._slider.toggleClassName(\"active\",!1)})}scrollDueToTouchEvent(e){const t=this._domNode.domNode.getBoundingClientRect().top,i=this._lastRenderData.renderedLayout.getDesiredScrollTopFromTouchLocation(e.pageY-t);this._model.setScrollTop(i)}dispose(){this._pointerDownListener.dispose(),this._sliderPointerMoveMonitor.dispose(),this._sliderPointerDownListener.dispose(),this._gestureDisposable.dispose(),this._sliderTouchStartListener.dispose(),this._sliderTouchMoveListener.dispose(),this._sliderTouchEndListener.dispose(),super.dispose()}_getMinimapDomNodeClassName(){const e=[\"minimap\"];return this._model.options.showSlider===\"always\"?e.push(\"slider-always\"):e.push(\"slider-mouseover\"),this._model.options.autohide&&e.push(\"autohide\"),e.join(\" \")}getDomNode(){return this._domNode}_applyLayout(){this._domNode.setLeft(this._model.options.minimapLeft),this._domNode.setWidth(this._model.options.minimapWidth),this._domNode.setHeight(this._model.options.minimapHeight),this._shadow.setHeight(this._model.options.minimapHeight),this._canvas.setWidth(this._model.options.canvasOuterWidth),this._canvas.setHeight(this._model.options.canvasOuterHeight),this._canvas.domNode.width=this._model.options.canvasInnerWidth,this._canvas.domNode.height=this._model.options.canvasInnerHeight,this._decorationsCanvas.setWidth(this._model.options.canvasOuterWidth),this._decorationsCanvas.setHeight(this._model.options.canvasOuterHeight),this._decorationsCanvas.domNode.width=this._model.options.canvasInnerWidth,this._decorationsCanvas.domNode.height=this._model.options.canvasInnerHeight,this._slider.setWidth(this._model.options.minimapWidth)}_getBuffer(){return this._buffers||this._model.options.canvasInnerWidth>0&&this._model.options.canvasInnerHeight>0&&(this._buffers=new Hz(this._canvas.domNode.getContext(\"2d\"),this._model.options.canvasInnerWidth,this._model.options.canvasInnerHeight,this._model.options.backgroundColor)),this._buffers?this._buffers.getBuffer():null}onDidChangeOptions(){this._lastRenderData=null,this._buffers=null,this._applyLayout(),this._domNode.setClassName(this._getMinimapDomNodeClassName())}onSelectionChanged(){return this._renderDecorations=!0,!0}onDecorationsChanged(){return this._renderDecorations=!0,!0}onFlushed(){return this._lastRenderData=null,!0}onLinesChanged(e,t){return this._lastRenderData?this._lastRenderData.onLinesChanged(e,t):!1}onLinesDeleted(e,t){var i;return(i=this._lastRenderData)===null||i===void 0||i.onLinesDeleted(e,t),!0}onLinesInserted(e,t){var i;return(i=this._lastRenderData)===null||i===void 0||i.onLinesInserted(e,t),!0}onScrollChanged(){return this._renderDecorations=!0,!0}onThemeChanged(){return this._selectionColor=this._theme.getColor(AX),this._renderDecorations=!0,!0}onTokensChanged(e){return this._lastRenderData?this._lastRenderData.onTokensChanged(e):!1}onTokensColorsChanged(){return this._lastRenderData=null,this._buffers=null,!0}onZonesChanged(){return this._lastRenderData=null,!0}render(e){if(this._model.options.renderMinimap===0){this._shadow.setClassName(\"minimap-shadow-hidden\"),this._sliderHorizontal.setWidth(0),this._sliderHorizontal.setHeight(0);return}e.scrollLeft+e.viewportWidth>=e.scrollWidth?this._shadow.setClassName(\"minimap-shadow-hidden\"):this._shadow.setClassName(\"minimap-shadow-visible\");const i=px.create(this._model.options,e.viewportStartLineNumber,e.viewportEndLineNumber,e.viewportStartLineNumberVerticalOffset,e.viewportHeight,e.viewportContainsWhitespaceGaps,this._model.getLineCount(),this._model.getRealLineCount(),e.scrollTop,e.scrollHeight,this._lastRenderData?this._lastRenderData.renderedLayout:null);this._slider.setDisplay(i.sliderNeeded?\"block\":\"none\"),this._slider.setTop(i.sliderTop),this._slider.setHeight(i.sliderHeight),this._sliderHorizontal.setLeft(0),this._sliderHorizontal.setWidth(this._model.options.minimapWidth),this._sliderHorizontal.setTop(0),this._sliderHorizontal.setHeight(i.sliderHeight),this.renderDecorations(i),this._lastRenderData=this.renderLines(i)}renderDecorations(e){if(this._renderDecorations){this._renderDecorations=!1;const t=this._model.getSelections();t.sort(A.compareRangesUsingStarts);const i=this._model.getMinimapDecorationsInViewport(e.startLineNumber,e.endLineNumber);i.sort((h,f)=>(h.options.zIndex||0)-(f.options.zIndex||0));const{canvasInnerWidth:s,canvasInnerHeight:o}=this._model.options,r=this._model.options.minimapLineHeight,a=this._model.options.minimapCharWidth,l=this._model.getOptions().tabSize,c=this._decorationsCanvas.domNode.getContext(\"2d\");c.clearRect(0,0,s,o);const d=new QX(e.startLineNumber,e.endLineNumber,!1);this._renderSelectionLineHighlights(c,t,d,e,r),this._renderDecorationsLineHighlights(c,i,d,e,r);const u=new QX(e.startLineNumber,e.endLineNumber,null);this._renderSelectionsHighlights(c,t,u,e,r,l,a,s),this._renderDecorationsHighlights(c,i,u,e,r,l,a,s),this._renderSectionHeaders(e)}}_renderSelectionLineHighlights(e,t,i,s,o){if(!this._selectionColor||this._selectionColor.isTransparent())return;e.fillStyle=this._selectionColor.transparent(.5).toString();let r=0,a=0;for(const l of t){const c=s.intersectWithViewport(l);if(!c)continue;const[d,u]=c;for(let g=d;g<=u;g++)i.set(g,!0);const h=s.getYForLineNumber(d,o),f=s.getYForLineNumber(u,o);a>=h||(a>r&&e.fillRect(Ou,r,e.canvas.width,a-r),r=h),a=f}a>r&&e.fillRect(Ou,r,e.canvas.width,a-r)}_renderDecorationsLineHighlights(e,t,i,s,o){const r=new Map;for(let a=t.length-1;a>=0;a--){const l=t[a],c=l.options.minimap;if(!c||c.position!==1)continue;const d=s.intersectWithViewport(l.range);if(!d)continue;const[u,h]=d,f=c.getColor(this._theme.value);if(!f||f.isTransparent())continue;let g=r.get(f.toString());g||(g=f.transparent(.5).toString(),r.set(f.toString(),g)),e.fillStyle=g;for(let p=u;p<=h;p++){if(i.has(p))continue;i.set(p,!0);const _=s.getYForLineNumber(u,o);e.fillRect(Ou,_,e.canvas.width,o)}}}_renderSelectionsHighlights(e,t,i,s,o,r,a,l){if(!(!this._selectionColor||this._selectionColor.isTransparent()))for(const c of t){const d=s.intersectWithViewport(c);if(!d)continue;const[u,h]=d;for(let f=u;f<=h;f++)this.renderDecorationOnLine(e,i,c,this._selectionColor,s,f,o,o,r,a,l)}}_renderDecorationsHighlights(e,t,i,s,o,r,a,l){for(const c of t){const d=c.options.minimap;if(!d)continue;const u=s.intersectWithViewport(c.range);if(!u)continue;const[h,f]=u,g=d.getColor(this._theme.value);if(!(!g||g.isTransparent()))for(let p=h;p<=f;p++)switch(d.position){case 1:this.renderDecorationOnLine(e,i,c.range,g,s,p,o,o,r,a,l);continue;case 2:{const _=s.getYForLineNumber(p,o);this.renderDecoration(e,g,2,_,s7e,o);continue}}}}renderDecorationOnLine(e,t,i,s,o,r,a,l,c,d,u){const h=o.getYForLineNumber(r,l);if(h+a<0||h>this._model.options.canvasInnerHeight)return;const{startLineNumber:f,endLineNumber:g}=i,p=f===r?i.startColumn:1,_=g===r?i.endColumn:this._model.getLineMaxColumn(r),b=this.getXOffsetForPosition(t,r,p,c,d,u),w=this.getXOffsetForPosition(t,r,_,c,d,u);this.renderDecoration(e,s,b,h,w-b,a)}getXOffsetForPosition(e,t,i,s,o,r){if(i===1)return Ou;if((i-1)*o>=r)return r;let l=e.get(t);if(!l){const c=this._model.getLineContent(t);l=[Ou];let d=Ou;for(let u=1;u<c.length+1;u++){const h=c.charCodeAt(u-1),f=h===9?s*o:Mm(h)?2*o:o,g=d+f;if(g>=r){l[u]=r;break}l[u]=g,d=g}e.set(t,l)}return i-1<l.length?l[i-1]:r}renderDecoration(e,t,i,s,o,r){e.fillStyle=t&&t.toString()||\"\",e.fillRect(i,s,o,r)}_renderSectionHeaders(e){var t;const i=this._model.options.minimapLineHeight,s=this._model.options.sectionHeaderFontSize,o=this._model.options.sectionHeaderLetterSpacing,r=s*1.5,{canvasInnerWidth:a}=this._model.options,l=this._model.options.backgroundColor,c=`rgb(${l.r} ${l.g} ${l.b} / .7)`,d=this._model.options.sectionHeaderFontColor,u=`rgb(${d.r} ${d.g} ${d.b})`,h=u,f=this._decorationsCanvas.domNode.getContext(\"2d\");f.letterSpacing=o+\"px\",f.font=\"500 \"+s+\"px \"+this._model.options.sectionHeaderFontFamily,f.strokeStyle=h,f.lineWidth=.2;const g=this._model.getSectionHeaderDecorationsInViewport(e.startLineNumber,e.endLineNumber);g.sort((_,b)=>_.range.startLineNumber-b.range.startLineNumber);const p=k1._fitSectionHeader.bind(null,f,a-Ou);for(const _ of g){const b=e.getYForLineNumber(_.range.startLineNumber,i)+s,w=b-s,y=w+2,S=this._model.getSectionHeaderText(_,p);k1._renderSectionLabel(f,S,((t=_.options.minimap)===null||t===void 0?void 0:t.sectionHeaderStyle)===2,c,u,a,w,r,b,y)}}static _fitSectionHeader(e,t,i){if(!i)return i;const s=\"…\",o=e.measureText(i).width,r=e.measureText(s).width;if(o<=t||o<=r)return i;const a=i.length,l=o/i.length,c=Math.floor((t-r)/l)-1;let d=Math.ceil(c/2);for(;d>0&&/\\s/.test(i[d-1]);)--d;return i.substring(0,d)+s+i.substring(a-(c-d))}static _renderSectionLabel(e,t,i,s,o,r,a,l,c,d){t&&(e.fillStyle=s,e.fillRect(0,a,r,l),e.fillStyle=o,e.fillText(t,Ou,c)),i&&(e.beginPath(),e.moveTo(0,d),e.lineTo(r,d),e.closePath(),e.stroke())}renderLines(e){const t=e.startLineNumber,i=e.endLineNumber,s=this._model.options.minimapLineHeight;if(this._lastRenderData&&this._lastRenderData.linesEquals(e)){const ae=this._lastRenderData._get();return new XX(e,ae.imageData,ae.lines)}const o=this._getBuffer();if(!o)return null;const[r,a,l]=k1._renderUntouchedLines(o,e.topPaddingLineCount,t,i,s,this._lastRenderData),c=this._model.getMinimapLinesRenderingData(t,i,l),d=this._model.getOptions().tabSize,u=this._model.options.defaultBackgroundColor,h=this._model.options.backgroundColor,f=this._model.options.foregroundAlpha,g=this._model.tokensColorTracker,p=g.backgroundIsLight(),_=this._model.options.renderMinimap,b=this._model.options.charRenderer(),w=this._model.options.fontScale,y=this._model.options.minimapCharWidth,x=(_===1?2:3)*w,k=s>x?Math.floor((s-x)/2):0,D=h.a/255,I=new pl(Math.round((h.r-u.r)*D+u.r),Math.round((h.g-u.g)*D+u.g),Math.round((h.b-u.b)*D+u.b),255);let N=e.topPaddingLineCount*s;const P=[];for(let ae=0,se=i-t+1;ae<se;ae++)l[ae]&&k1._renderLine(o,I,h.a,p,_,y,g,f,b,N,k,d,c[ae],w,s),P[ae]=new iA(N),N+=s;const O=r===-1?0:r,z=(a===-1?o.height:a)-O;return this._canvas.domNode.getContext(\"2d\").putImageData(o,0,0,0,O,o.width,z),new XX(e,o,P)}static _renderUntouchedLines(e,t,i,s,o,r){const a=[];if(!r){for(let N=0,P=s-i+1;N<P;N++)a[N]=!0;return[-1,-1,a]}const l=r._get(),c=l.imageData.data,d=l.rendLineNumberStart,u=l.lines,h=u.length,f=e.width,g=e.data,p=(s-i+1)*o*f*4;let _=-1,b=-1,w=-1,y=-1,S=-1,x=-1,k=t*o;for(let N=i;N<=s;N++){const P=N-i,O=N-d,M=O>=0&&O<h?u[O].dy:-1;if(M===-1){a[P]=!0,k+=o;continue}const z=M*f*4,K=(M+o)*f*4,ae=k*f*4,se=(k+o)*f*4;y===z&&x===ae?(y=K,x=se):(w!==-1&&(g.set(c.subarray(w,y),S),_===-1&&w===0&&w===S&&(_=y),b===-1&&y===p&&w===S&&(b=w)),w=z,y=K,S=ae,x=se),a[P]=!1,k+=o}w!==-1&&(g.set(c.subarray(w,y),S),_===-1&&w===0&&w===S&&(_=y),b===-1&&y===p&&w===S&&(b=w));const D=_===-1?-1:_/(f*4),I=b===-1?-1:b/(f*4);return[D,I,a]}static _renderLine(e,t,i,s,o,r,a,l,c,d,u,h,f,g,p){const _=f.content,b=f.tokens,w=e.width-r,y=p===1;let S=Ou,x=0,k=0;for(let D=0,I=b.getCount();D<I;D++){const N=b.getEndOffset(D),P=b.getForeground(D),O=a.getColor(P);for(;x<N;x++){if(S>w)return;const M=_.charCodeAt(x);if(M===9){const z=h-(x+k)%h;k+=z-1,S+=z*r}else if(M===32)S+=r;else{const z=Mm(M)?2:1;for(let K=0;K<z;K++)if(o===2?c.blockRenderChar(e,S,d+u,O,l,t,i,y):c.renderChar(e,S,d+u,M,O,l,t,i,g,s,y),S+=r,S>w)return}}}}}class QX{constructor(e,t,i){this._startLineNumber=e,this._endLineNumber=t,this._defaultValue=i,this._values=[];for(let s=0,o=this._endLineNumber-this._startLineNumber+1;s<o;s++)this._values[s]=i}has(e){return this.get(e)!==this._defaultValue}set(e,t){e<this._startLineNumber||e>this._endLineNumber||(this._values[e-this._startLineNumber]=t)}get(e){return e<this._startLineNumber||e>this._endLineNumber?this._defaultValue:this._values[e-this._startLineNumber]}}class r7e extends Va{constructor(e,t){super(e),this._viewDomNode=t;const s=this._context.configuration.options.get(145);this._widgets={},this._verticalScrollbarWidth=s.verticalScrollbarWidth,this._minimapWidth=s.minimap.minimapWidth,this._horizontalScrollbarHeight=s.horizontalScrollbarHeight,this._editorHeight=s.height,this._editorWidth=s.width,this._viewDomNodeRect={top:0,left:0,width:0,height:0},this._domNode=Di(document.createElement(\"div\")),ru.write(this._domNode,4),this._domNode.setClassName(\"overlayWidgets\"),this.overflowingOverlayWidgetsDomNode=Di(document.createElement(\"div\")),ru.write(this.overflowingOverlayWidgetsDomNode,5),this.overflowingOverlayWidgetsDomNode.setClassName(\"overflowingOverlayWidgets\")}dispose(){super.dispose(),this._widgets={}}getDomNode(){return this._domNode}onConfigurationChanged(e){const i=this._context.configuration.options.get(145);return this._verticalScrollbarWidth=i.verticalScrollbarWidth,this._minimapWidth=i.minimap.minimapWidth,this._horizontalScrollbarHeight=i.horizontalScrollbarHeight,this._editorHeight=i.height,this._editorWidth=i.width,!0}addWidget(e){const t=Di(e.getDomNode());this._widgets[e.getId()]={widget:e,preference:null,domNode:t},t.setPosition(\"absolute\"),t.setAttribute(\"widgetId\",e.getId()),e.allowEditorOverflow?this.overflowingOverlayWidgetsDomNode.appendChild(t):this._domNode.appendChild(t),this.setShouldRender(),this._updateMaxMinWidth()}setWidgetPosition(e,t){const i=this._widgets[e.getId()],s=t?t.preference:null,o=t==null?void 0:t.stackOridinal;return i.preference===s&&i.stack===o?(this._updateMaxMinWidth(),!1):(i.preference=s,i.stack=o,this.setShouldRender(),this._updateMaxMinWidth(),!0)}removeWidget(e){const t=e.getId();if(this._widgets.hasOwnProperty(t)){const s=this._widgets[t].domNode.domNode;delete this._widgets[t],s.remove(),this.setShouldRender(),this._updateMaxMinWidth()}}_updateMaxMinWidth(){var e,t;let i=0;const s=Object.keys(this._widgets);for(let o=0,r=s.length;o<r;o++){const a=s[o],c=(t=(e=this._widgets[a].widget).getMinContentWidthInPx)===null||t===void 0?void 0:t.call(e);typeof c<\"u\"&&(i=Math.max(i,c))}this._context.viewLayout.setOverlayWidgetsMinWidth(i)}_renderWidget(e,t){const i=e.domNode;if(e.preference===null){i.setTop(\"\");return}const s=2*this._verticalScrollbarWidth+this._minimapWidth;if(e.preference===0||e.preference===1){if(e.preference===1){const o=i.domNode.clientHeight;i.setTop(this._editorHeight-o-2*this._horizontalScrollbarHeight)}else i.setTop(0);e.stack!==void 0?(i.setTop(t[e.preference]),t[e.preference]+=i.domNode.clientWidth):i.setRight(s)}else if(e.preference===2)i.domNode.style.right=\"50%\",e.stack!==void 0?(i.setTop(t[2]),t[2]+=i.domNode.clientHeight):i.setTop(0);else{const{top:o,left:r}=e.preference;if(this._context.configuration.options.get(42)&&e.widget.allowEditorOverflow){const l=this._viewDomNodeRect;i.setTop(o+l.top),i.setLeft(r+l.left),i.setPosition(\"fixed\")}else i.setTop(o),i.setLeft(r),i.setPosition(\"absolute\")}}prepareRender(e){this._viewDomNodeRect=bs(this._viewDomNode.domNode)}render(e){this._domNode.setWidth(this._editorWidth);const t=Object.keys(this._widgets),i=Array.from({length:3},()=>0);t.sort((s,o)=>(this._widgets[s].stack||0)-(this._widgets[o].stack||0));for(let s=0,o=t.length;s<o;s++){const r=t[s];this._renderWidget(this._widgets[r],i)}}}class a7e{constructor(e,t){const i=e.options;this.lineHeight=i.get(67),this.pixelRatio=i.get(143),this.overviewRulerLanes=i.get(83),this.renderBorder=i.get(82);const s=t.getColor(U3e);this.borderColor=s?s.toString():null,this.hideCursor=i.get(59);const o=t.getColor(uh);this.cursorColorSingle=o?o.transparent(.7).toString():null;const r=t.getColor(oce);this.cursorColorPrimary=r?r.transparent(.7).toString():null;const a=t.getColor(rce);this.cursorColorSecondary=a?a.transparent(.7).toString():null,this.themeType=t.type;const l=i.get(73),c=l.enabled,d=l.side,u=t.getColor(j3e),h=Zn.getDefaultBackground();u?this.backgroundColor=u:c&&d===\"right\"?this.backgroundColor=h:this.backgroundColor=null;const g=i.get(145).overviewRuler;this.top=g.top,this.right=g.right,this.domWidth=g.width,this.domHeight=g.height,this.overviewRulerLanes===0?(this.canvasWidth=0,this.canvasHeight=0):(this.canvasWidth=this.domWidth*this.pixelRatio|0,this.canvasHeight=this.domHeight*this.pixelRatio|0);const[p,_]=this._initLanes(1,this.canvasWidth,this.overviewRulerLanes);this.x=p,this.w=_}_initLanes(e,t,i){const s=t-e;if(i>=3){const o=Math.floor(s/3),r=Math.floor(s/3),a=s-o-r,l=e,c=l+o,d=l+o+a;return[[0,l,c,l,d,l,c,l],[0,o,a,o+a,r,o+a+r,a+r,o+a+r]]}else if(i===2){const o=Math.floor(s/2),r=s-o,a=e,l=a+o;return[[0,a,a,a,l,a,a,a],[0,o,o,o,r,o+r,o+r,o+r]]}else{const o=e,r=s;return[[0,o,o,o,o,o,o,o],[0,r,r,r,r,r,r,r]]}}equals(e){return this.lineHeight===e.lineHeight&&this.pixelRatio===e.pixelRatio&&this.overviewRulerLanes===e.overviewRulerLanes&&this.renderBorder===e.renderBorder&&this.borderColor===e.borderColor&&this.hideCursor===e.hideCursor&&this.cursorColorSingle===e.cursorColorSingle&&this.cursorColorPrimary===e.cursorColorPrimary&&this.cursorColorSecondary===e.cursorColorSecondary&&this.themeType===e.themeType&&le.equals(this.backgroundColor,e.backgroundColor)&&this.top===e.top&&this.right===e.right&&this.domWidth===e.domWidth&&this.domHeight===e.domHeight&&this.canvasWidth===e.canvasWidth&&this.canvasHeight===e.canvasHeight}}class l7e extends Va{constructor(e){super(e),this._actualShouldRender=0,this._renderedDecorations=[],this._renderedCursorPositions=[],this._domNode=Di(document.createElement(\"canvas\")),this._domNode.setClassName(\"decorationsOverviewRuler\"),this._domNode.setPosition(\"absolute\"),this._domNode.setLayerHinting(!0),this._domNode.setContain(\"strict\"),this._domNode.setAttribute(\"aria-hidden\",\"true\"),this._updateSettings(!1),this._tokensColorTrackerListener=Zn.onDidChange(t=>{t.changedColorMap&&this._updateSettings(!0)}),this._cursorPositions=[{position:new ee(1,1),color:this._settings.cursorColorSingle}]}dispose(){super.dispose(),this._tokensColorTrackerListener.dispose()}_updateSettings(e){const t=new a7e(this._context.configuration,this._context.theme);return this._settings&&this._settings.equals(t)?!1:(this._settings=t,this._domNode.setTop(this._settings.top),this._domNode.setRight(this._settings.right),this._domNode.setWidth(this._settings.domWidth),this._domNode.setHeight(this._settings.domHeight),this._domNode.domNode.width=this._settings.canvasWidth,this._domNode.domNode.height=this._settings.canvasHeight,e&&this._render(),!0)}_markRenderingIsNeeded(){return this._actualShouldRender=2,!0}_markRenderingIsMaybeNeeded(){return this._actualShouldRender=1,!0}onConfigurationChanged(e){return this._updateSettings(!1)?this._markRenderingIsNeeded():!1}onCursorStateChanged(e){this._cursorPositions=[];for(let t=0,i=e.selections.length;t<i;t++){let s=this._settings.cursorColorSingle;i>1&&(s=t===0?this._settings.cursorColorPrimary:this._settings.cursorColorSecondary),this._cursorPositions.push({position:e.selections[t].getPosition(),color:s})}return this._cursorPositions.sort((t,i)=>ee.compare(t.position,i.position)),this._markRenderingIsMaybeNeeded()}onDecorationsChanged(e){return e.affectsOverviewRuler?this._markRenderingIsMaybeNeeded():!1}onFlushed(e){return this._markRenderingIsNeeded()}onScrollChanged(e){return e.scrollHeightChanged?this._markRenderingIsNeeded():!1}onZonesChanged(e){return this._markRenderingIsNeeded()}onThemeChanged(e){return this._updateSettings(!1)?this._markRenderingIsNeeded():!1}getDomNode(){return this._domNode.domNode}prepareRender(e){}render(e){this._render(),this._actualShouldRender=0}_render(){const e=this._settings.backgroundColor;if(this._settings.overviewRulerLanes===0){this._domNode.setBackgroundColor(e?le.Format.CSS.formatHexA(e):\"\"),this._domNode.setDisplay(\"none\");return}const t=this._context.viewModel.getAllOverviewRulerDecorations(this._context.theme);if(t.sort(CL.compareByRenderingProps),this._actualShouldRender===1&&!CL.equalsArr(this._renderedDecorations,t)&&(this._actualShouldRender=2),this._actualShouldRender===1&&!zn(this._renderedCursorPositions,this._cursorPositions,(g,p)=>g.position.lineNumber===p.position.lineNumber&&g.color===p.color)&&(this._actualShouldRender=2),this._actualShouldRender===1)return;this._renderedDecorations=t,this._renderedCursorPositions=this._cursorPositions,this._domNode.setDisplay(\"block\");const i=this._settings.canvasWidth,s=this._settings.canvasHeight,o=this._settings.lineHeight,r=this._context.viewLayout,a=this._context.viewLayout.getScrollHeight(),l=s/a,c=6*this._settings.pixelRatio|0,d=c/2|0,u=this._domNode.domNode.getContext(\"2d\");e?e.isOpaque()?(u.fillStyle=le.Format.CSS.formatHexA(e),u.fillRect(0,0,i,s)):(u.clearRect(0,0,i,s),u.fillStyle=le.Format.CSS.formatHexA(e),u.fillRect(0,0,i,s)):u.clearRect(0,0,i,s);const h=this._settings.x,f=this._settings.w;for(const g of t){const p=g.color,_=g.data;u.fillStyle=p;let b=0,w=0,y=0;for(let S=0,x=_.length/3;S<x;S++){const k=_[3*S],D=_[3*S+1],I=_[3*S+2];let N=r.getVerticalOffsetForLineNumber(D)*l|0,P=(r.getVerticalOffsetForLineNumber(I)+o)*l|0;if(P-N<c){let M=(N+P)/2|0;M<d?M=d:M+d>s&&(M=s-d),N=M-d,P=M+d}N>y+1||k!==b?(S!==0&&u.fillRect(h[b],w,f[b],y-w),b=k,w=N,y=P):P>y&&(y=P)}u.fillRect(h[b],w,f[b],y-w)}if(!this._settings.hideCursor){const g=2*this._settings.pixelRatio|0,p=g/2|0,_=this._settings.x[7],b=this._settings.w[7];let w=-100,y=-100,S=null;for(let x=0,k=this._cursorPositions.length;x<k;x++){const D=this._cursorPositions[x].color;if(!D)continue;const I=this._cursorPositions[x].position;let N=r.getVerticalOffsetForLineNumber(I.lineNumber)*l|0;N<p?N=p:N+p>s&&(N=s-p);const P=N-p,O=P+g;P>y+1||D!==S?(x!==0&&S&&u.fillRect(_,w,b,y-w),w=P,y=O):O>y&&(y=O),S=D,u.fillStyle=D}S&&u.fillRect(_,w,b,y-w)}this._settings.renderBorder&&this._settings.borderColor&&this._settings.overviewRulerLanes>0&&(u.beginPath(),u.lineWidth=1,u.strokeStyle=this._settings.borderColor,u.moveTo(0,0),u.lineTo(0,s),u.stroke(),u.moveTo(0,0),u.lineTo(i,0),u.stroke())}}class JX{constructor(e,t,i){this._colorZoneBrand=void 0,this.from=e|0,this.to=t|0,this.colorId=i|0}static compare(e,t){return e.colorId===t.colorId?e.from===t.from?e.to-t.to:e.from-t.from:e.colorId-t.colorId}}class Lce{constructor(e,t,i,s){this._overviewRulerZoneBrand=void 0,this.startLineNumber=e,this.endLineNumber=t,this.heightInLines=i,this.color=s,this._colorZone=null}static compare(e,t){return e.color===t.color?e.startLineNumber===t.startLineNumber?e.heightInLines===t.heightInLines?e.endLineNumber-t.endLineNumber:e.heightInLines-t.heightInLines:e.startLineNumber-t.startLineNumber:e.color<t.color?-1:1}setColorZone(e){this._colorZone=e}getColorZones(){return this._colorZone}}class c7e{constructor(e){this._getVerticalOffsetForLine=e,this._zones=[],this._colorZonesInvalid=!1,this._lineHeight=0,this._domWidth=0,this._domHeight=0,this._outerHeight=0,this._pixelRatio=1,this._lastAssignedId=0,this._color2Id=Object.create(null),this._id2Color=[]}getId2Color(){return this._id2Color}setZones(e){this._zones=e,this._zones.sort(Lce.compare)}setLineHeight(e){return this._lineHeight===e?!1:(this._lineHeight=e,this._colorZonesInvalid=!0,!0)}setPixelRatio(e){this._pixelRatio=e,this._colorZonesInvalid=!0}getDOMWidth(){return this._domWidth}getCanvasWidth(){return this._domWidth*this._pixelRatio}setDOMWidth(e){return this._domWidth===e?!1:(this._domWidth=e,this._colorZonesInvalid=!0,!0)}getDOMHeight(){return this._domHeight}getCanvasHeight(){return this._domHeight*this._pixelRatio}setDOMHeight(e){return this._domHeight===e?!1:(this._domHeight=e,this._colorZonesInvalid=!0,!0)}getOuterHeight(){return this._outerHeight}setOuterHeight(e){return this._outerHeight===e?!1:(this._outerHeight=e,this._colorZonesInvalid=!0,!0)}resolveColorZones(){const e=this._colorZonesInvalid,t=Math.floor(this._lineHeight),i=Math.floor(this.getCanvasHeight()),s=Math.floor(this._outerHeight),o=i/s,r=Math.floor(4*this._pixelRatio/2),a=[];for(let l=0,c=this._zones.length;l<c;l++){const d=this._zones[l];if(!e){const S=d.getColorZones();if(S){a.push(S);continue}}const u=this._getVerticalOffsetForLine(d.startLineNumber),h=d.heightInLines===0?this._getVerticalOffsetForLine(d.endLineNumber)+t:u+d.heightInLines*t,f=Math.floor(o*u),g=Math.floor(o*h);let p=Math.floor((f+g)/2),_=g-p;_<r&&(_=r),p-_<0&&(p=_),p+_>i&&(p=i-_);const b=d.color;let w=this._color2Id[b];w||(w=++this._lastAssignedId,this._color2Id[b]=w,this._id2Color[w]=b);const y=new JX(p-_,p+_,w);d.setColorZone(y),a.push(y)}return this._colorZonesInvalid=!1,a.sort(JX.compare),a}}class d7e extends CD{constructor(e,t){super(),this._context=e;const i=this._context.configuration.options;this._domNode=Di(document.createElement(\"canvas\")),this._domNode.setClassName(t),this._domNode.setPosition(\"absolute\"),this._domNode.setLayerHinting(!0),this._domNode.setContain(\"strict\"),this._zoneManager=new c7e(s=>this._context.viewLayout.getVerticalOffsetForLineNumber(s)),this._zoneManager.setDOMWidth(0),this._zoneManager.setDOMHeight(0),this._zoneManager.setOuterHeight(this._context.viewLayout.getScrollHeight()),this._zoneManager.setLineHeight(i.get(67)),this._zoneManager.setPixelRatio(i.get(143)),this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return e.hasChanged(67)&&(this._zoneManager.setLineHeight(t.get(67)),this._render()),e.hasChanged(143)&&(this._zoneManager.setPixelRatio(t.get(143)),this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render()),!0}onFlushed(e){return this._render(),!0}onScrollChanged(e){return e.scrollHeightChanged&&(this._zoneManager.setOuterHeight(e.scrollHeight),this._render()),!0}onZonesChanged(e){return this._render(),!0}getDomNode(){return this._domNode.domNode}setLayout(e){this._domNode.setTop(e.top),this._domNode.setRight(e.right);let t=!1;t=this._zoneManager.setDOMWidth(e.width)||t,t=this._zoneManager.setDOMHeight(e.height)||t,t&&(this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render())}setZones(e){this._zoneManager.setZones(e),this._render()}_render(){if(this._zoneManager.getOuterHeight()===0)return!1;const e=this._zoneManager.getCanvasWidth(),t=this._zoneManager.getCanvasHeight(),i=this._zoneManager.resolveColorZones(),s=this._zoneManager.getId2Color(),o=this._domNode.domNode.getContext(\"2d\");return o.clearRect(0,0,e,t),i.length>0&&this._renderOneLane(o,i,s,e),!0}_renderOneLane(e,t,i,s){let o=0,r=0,a=0;for(const l of t){const c=l.colorId,d=l.from,u=l.to;c!==o?(e.fillRect(0,r,s,a-r),o=c,e.fillStyle=i[o],r=d,a=u):a>=d?a=Math.max(a,u):(e.fillRect(0,r,s,a-r),r=d,a=u)}e.fillRect(0,r,s,a-r)}}class u7e extends Va{constructor(e){super(e),this.domNode=Di(document.createElement(\"div\")),this.domNode.setAttribute(\"role\",\"presentation\"),this.domNode.setAttribute(\"aria-hidden\",\"true\"),this.domNode.setClassName(\"view-rulers\"),this._renderedRulers=[];const t=this._context.configuration.options;this._rulers=t.get(102),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth}dispose(){super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return this._rulers=t.get(102),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,!0}onScrollChanged(e){return e.scrollHeightChanged}prepareRender(e){}_ensureRulersCount(){const e=this._renderedRulers.length,t=this._rulers.length;if(e===t)return;if(e<t){const{tabSize:s}=this._context.viewModel.model.getOptions(),o=s;let r=t-e;for(;r>0;){const a=Di(document.createElement(\"div\"));a.setClassName(\"view-ruler\"),a.setWidth(o),this.domNode.appendChild(a),this._renderedRulers.push(a),r--}return}let i=e-t;for(;i>0;){const s=this._renderedRulers.pop();this.domNode.removeChild(s),i--}}render(e){this._ensureRulersCount();for(let t=0,i=this._rulers.length;t<i;t++){const s=this._renderedRulers[t],o=this._rulers[t];s.setBoxShadow(o.color?`1px 0 0 0 ${o.color} inset`:\"\"),s.setHeight(Math.min(e.scrollHeight,1e6)),s.setLeft(o.column*this._typicalHalfwidthCharacterWidth)}}}class h7e extends Va{constructor(e){super(e),this._scrollTop=0,this._width=0,this._updateWidth(),this._shouldShow=!1;const i=this._context.configuration.options.get(103);this._useShadows=i.useShadows,this._domNode=Di(document.createElement(\"div\")),this._domNode.setAttribute(\"role\",\"presentation\"),this._domNode.setAttribute(\"aria-hidden\",\"true\")}dispose(){super.dispose()}_updateShouldShow(){const e=this._useShadows&&this._scrollTop>0;return this._shouldShow!==e?(this._shouldShow=e,!0):!1}getDomNode(){return this._domNode}_updateWidth(){const t=this._context.configuration.options.get(145);t.minimap.renderMinimap===0||t.minimap.minimapWidth>0&&t.minimap.minimapLeft===0?this._width=t.width:this._width=t.width-t.verticalScrollbarWidth}onConfigurationChanged(e){const i=this._context.configuration.options.get(103);return this._useShadows=i.useShadows,this._updateWidth(),this._updateShouldShow(),!0}onScrollChanged(e){return this._scrollTop=e.scrollTop,this._updateShouldShow()}prepareRender(e){}render(e){this._domNode.setWidth(this._width),this._domNode.setClassName(this._shouldShow?\"scroll-decoration\":\"\")}}class f7e{constructor(e){this.left=e.left,this.width=e.width,this.startStyle=null,this.endStyle=null}}class g7e{constructor(e,t){this.lineNumber=e,this.ranges=t}}function p7e(n){return new f7e(n)}function m7e(n){return new g7e(n.lineNumber,n.ranges.map(p7e))}class cs extends X0{constructor(e){super(),this._previousFrameVisibleRangesWithStyle=[],this._context=e;const t=this._context.configuration.options;this._roundedSelection=t.get(101),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,this._selections=[],this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return this._roundedSelection=t.get(101),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,!0}onCursorStateChanged(e){return this._selections=e.selections.slice(0),!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}_visibleRangesHaveGaps(e){for(let t=0,i=e.length;t<i;t++)if(e[t].ranges.length>1)return!0;return!1}_enrichVisibleRangesWithStyle(e,t,i){const s=this._typicalHalfwidthCharacterWidth/4;let o=null,r=null;if(i&&i.length>0&&t.length>0){const a=t[0].lineNumber;if(a===e.startLineNumber)for(let c=0;!o&&c<i.length;c++)i[c].lineNumber===a&&(o=i[c].ranges[0]);const l=t[t.length-1].lineNumber;if(l===e.endLineNumber)for(let c=i.length-1;!r&&c>=0;c--)i[c].lineNumber===l&&(r=i[c].ranges[0]);o&&!o.startStyle&&(o=null),r&&!r.startStyle&&(r=null)}for(let a=0,l=t.length;a<l;a++){const c=t[a].ranges[0],d=c.left,u=c.left+c.width,h={top:0,bottom:0},f={top:0,bottom:0};if(a>0){const g=t[a-1].ranges[0].left,p=t[a-1].ranges[0].left+t[a-1].ranges[0].width;zE(d-g)<s?h.top=2:d>g&&(h.top=1),zE(u-p)<s?f.top=2:g<u&&u<p&&(f.top=1)}else o&&(h.top=o.startStyle.top,f.top=o.endStyle.top);if(a+1<l){const g=t[a+1].ranges[0].left,p=t[a+1].ranges[0].left+t[a+1].ranges[0].width;zE(d-g)<s?h.bottom=2:g<d&&d<p&&(h.bottom=1),zE(u-p)<s?f.bottom=2:u<p&&(f.bottom=1)}else r&&(h.bottom=r.startStyle.bottom,f.bottom=r.endStyle.bottom);c.startStyle=h,c.endStyle=f}}_getVisibleRangesWithStyle(e,t,i){const o=(t.linesVisibleRangesForRange(e,!0)||[]).map(m7e);return!this._visibleRangesHaveGaps(o)&&this._roundedSelection&&this._enrichVisibleRangesWithStyle(t.visibleRange,o,i),o}_createSelectionPiece(e,t,i,s,o){return'<div class=\"cslr '+i+'\" style=\"top:'+e.toString()+\"px;bottom:\"+t.toString()+\"px;left:\"+s.toString()+\"px;width:\"+o.toString()+'px;\"></div>'}_actualRenderOneSelection(e,t,i,s){if(s.length===0)return;const o=!!s[0].ranges[0].startStyle,r=s[0].lineNumber,a=s[s.length-1].lineNumber;for(let l=0,c=s.length;l<c;l++){const d=s[l],u=d.lineNumber,h=u-t,f=i&&u===r?1:0,g=i&&u!==r&&u===a?1:0;let p=\"\",_=\"\";for(let b=0,w=d.ranges.length;b<w;b++){const y=d.ranges[b];if(o){const x=y.startStyle,k=y.endStyle;if(x.top===1||x.bottom===1){p+=this._createSelectionPiece(f,g,cs.SELECTION_CLASS_NAME,y.left-cs.ROUNDED_PIECE_WIDTH,cs.ROUNDED_PIECE_WIDTH);let D=cs.EDITOR_BACKGROUND_CLASS_NAME;x.top===1&&(D+=\" \"+cs.SELECTION_TOP_RIGHT),x.bottom===1&&(D+=\" \"+cs.SELECTION_BOTTOM_RIGHT),p+=this._createSelectionPiece(f,g,D,y.left-cs.ROUNDED_PIECE_WIDTH,cs.ROUNDED_PIECE_WIDTH)}if(k.top===1||k.bottom===1){p+=this._createSelectionPiece(f,g,cs.SELECTION_CLASS_NAME,y.left+y.width,cs.ROUNDED_PIECE_WIDTH);let D=cs.EDITOR_BACKGROUND_CLASS_NAME;k.top===1&&(D+=\" \"+cs.SELECTION_TOP_LEFT),k.bottom===1&&(D+=\" \"+cs.SELECTION_BOTTOM_LEFT),p+=this._createSelectionPiece(f,g,D,y.left+y.width,cs.ROUNDED_PIECE_WIDTH)}}let S=cs.SELECTION_CLASS_NAME;if(o){const x=y.startStyle,k=y.endStyle;x.top===0&&(S+=\" \"+cs.SELECTION_TOP_LEFT),x.bottom===0&&(S+=\" \"+cs.SELECTION_BOTTOM_LEFT),k.top===0&&(S+=\" \"+cs.SELECTION_TOP_RIGHT),k.bottom===0&&(S+=\" \"+cs.SELECTION_BOTTOM_RIGHT)}_+=this._createSelectionPiece(f,g,S,y.left,y.width)}e[h][0]+=p,e[h][1]+=_}}prepareRender(e){const t=[],i=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber;for(let r=i;r<=s;r++){const a=r-i;t[a]=[\"\",\"\"]}const o=[];for(let r=0,a=this._selections.length;r<a;r++){const l=this._selections[r];if(l.isEmpty()){o[r]=null;continue}const c=this._getVisibleRangesWithStyle(l,e,this._previousFrameVisibleRangesWithStyle[r]);o[r]=c,this._actualRenderOneSelection(t,i,this._selections.length>1,c)}this._previousFrameVisibleRangesWithStyle=o,this._renderResult=t.map(([r,a])=>r+a)}render(e,t){if(!this._renderResult)return\"\";const i=t-e;return i<0||i>=this._renderResult.length?\"\":this._renderResult[i]}}cs.SELECTION_CLASS_NAME=\"selected-text\";cs.SELECTION_TOP_LEFT=\"top-left-radius\";cs.SELECTION_BOTTOM_LEFT=\"bottom-left-radius\";cs.SELECTION_TOP_RIGHT=\"top-right-radius\";cs.SELECTION_BOTTOM_RIGHT=\"bottom-right-radius\";cs.EDITOR_BACKGROUND_CLASS_NAME=\"monaco-editor-background\";cs.ROUNDED_PIECE_WIDTH=10;mc((n,e)=>{const t=n.getColor(yFe);t&&!t.isTransparent()&&e.addRule(`.monaco-editor .view-line span.inline-selected-text { color: ${t}; }`)});function zE(n){return n<0?-n:n}class eQ{constructor(e,t,i,s,o,r,a){this.top=e,this.left=t,this.paddingLeft=i,this.width=s,this.height=o,this.textContent=r,this.textContentClassName=a}}var ag;(function(n){n[n.Single=0]=\"Single\",n[n.MultiPrimary=1]=\"MultiPrimary\",n[n.MultiSecondary=2]=\"MultiSecondary\"})(ag||(ag={}));class tQ{constructor(e,t){this._context=e;const i=this._context.configuration.options,s=i.get(50);this._cursorStyle=i.get(28),this._lineHeight=i.get(67),this._typicalHalfwidthCharacterWidth=s.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(i.get(31),this._typicalHalfwidthCharacterWidth),this._isVisible=!0,this._domNode=Di(document.createElement(\"div\")),this._domNode.setClassName(`cursor ${J1}`),this._domNode.setHeight(this._lineHeight),this._domNode.setTop(0),this._domNode.setLeft(0),So(this._domNode,s),this._domNode.setDisplay(\"none\"),this._position=new ee(1,1),this._pluralityClass=\"\",this.setPlurality(t),this._lastRenderedContent=\"\",this._renderData=null}getDomNode(){return this._domNode}getPosition(){return this._position}setPlurality(e){switch(e){default:case ag.Single:this._pluralityClass=\"\";break;case ag.MultiPrimary:this._pluralityClass=\"cursor-primary\";break;case ag.MultiSecondary:this._pluralityClass=\"cursor-secondary\";break}}show(){this._isVisible||(this._domNode.setVisibility(\"inherit\"),this._isVisible=!0)}hide(){this._isVisible&&(this._domNode.setVisibility(\"hidden\"),this._isVisible=!1)}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(50);return this._cursorStyle=t.get(28),this._lineHeight=t.get(67),this._typicalHalfwidthCharacterWidth=i.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(t.get(31),this._typicalHalfwidthCharacterWidth),So(this._domNode,i),!0}onCursorPositionChanged(e,t){return t?this._domNode.domNode.style.transitionProperty=\"none\":this._domNode.domNode.style.transitionProperty=\"\",this._position=e,!0}_getGraphemeAwarePosition(){const{lineNumber:e,column:t}=this._position,i=this._context.viewModel.getLineContent(e),[s,o]=vRe(i,t-1);return[new ee(e,s+1),i.substring(s,o)]}_prepareRender(e){let t=\"\",i=\"\";const[s,o]=this._getGraphemeAwarePosition();if(this._cursorStyle===vo.Line||this._cursorStyle===vo.LineThin){const h=e.visibleRangeForPosition(s);if(!h||h.outsideRenderedLine)return null;const f=gt(this._domNode.domNode);let g;this._cursorStyle===vo.Line?(g=SY(f,this._lineCursorWidth>0?this._lineCursorWidth:2),g>2&&(t=o,i=this._getTokenClassName(s))):g=SY(f,1);let p=h.left,_=0;g>=2&&p>=1&&(_=1,p-=_);const b=e.getVerticalOffsetForLineNumber(s.lineNumber)-e.bigNumbersDelta;return new eQ(b,p,_,g,this._lineHeight,t,i)}const r=e.linesVisibleRangesForRange(new A(s.lineNumber,s.column,s.lineNumber,s.column+o.length),!1);if(!r||r.length===0)return null;const a=r[0];if(a.outsideRenderedLine||a.ranges.length===0)return null;const l=a.ranges[0],c=o===\"\t\"?this._typicalHalfwidthCharacterWidth:l.width<1?this._typicalHalfwidthCharacterWidth:l.width;this._cursorStyle===vo.Block&&(t=o,i=this._getTokenClassName(s));let d=e.getVerticalOffsetForLineNumber(s.lineNumber)-e.bigNumbersDelta,u=this._lineHeight;return(this._cursorStyle===vo.Underline||this._cursorStyle===vo.UnderlineThin)&&(d+=this._lineHeight-2,u=2),new eQ(d,l.left,0,c,u,t,i)}_getTokenClassName(e){const t=this._context.viewModel.getViewLineData(e.lineNumber),i=t.tokens.findTokenIndexAtOffset(e.column-1);return t.tokens.getClassName(i)}prepareRender(e){this._renderData=this._prepareRender(e)}render(e){return this._renderData?(this._lastRenderedContent!==this._renderData.textContent&&(this._lastRenderedContent=this._renderData.textContent,this._domNode.domNode.textContent=this._lastRenderedContent),this._domNode.setClassName(`cursor ${this._pluralityClass} ${J1} ${this._renderData.textContentClassName}`),this._domNode.setDisplay(\"block\"),this._domNode.setTop(this._renderData.top),this._domNode.setLeft(this._renderData.left),this._domNode.setPaddingLeft(this._renderData.paddingLeft),this._domNode.setWidth(this._renderData.width),this._domNode.setLineHeight(this._renderData.height),this._domNode.setHeight(this._renderData.height),{domNode:this._domNode.domNode,position:this._position,contentLeft:this._renderData.left,height:this._renderData.height,width:2}):(this._domNode.setDisplay(\"none\"),null)}}class AL extends Va{constructor(e){super(e);const t=this._context.configuration.options;this._readOnly=t.get(91),this._cursorBlinking=t.get(26),this._cursorStyle=t.get(28),this._cursorSmoothCaretAnimation=t.get(27),this._selectionIsEmpty=!0,this._isComposingInput=!1,this._isVisible=!1,this._primaryCursor=new tQ(this._context,ag.Single),this._secondaryCursors=[],this._renderData=[],this._domNode=Di(document.createElement(\"div\")),this._domNode.setAttribute(\"role\",\"presentation\"),this._domNode.setAttribute(\"aria-hidden\",\"true\"),this._updateDomClassName(),this._domNode.appendChild(this._primaryCursor.getDomNode()),this._startCursorBlinkAnimation=new cd,this._cursorFlatBlinkInterval=new iz,this._blinkingEnabled=!1,this._editorHasFocus=!1,this._updateBlinking()}dispose(){super.dispose(),this._startCursorBlinkAnimation.dispose(),this._cursorFlatBlinkInterval.dispose()}getDomNode(){return this._domNode}onCompositionStart(e){return this._isComposingInput=!0,this._updateBlinking(),!0}onCompositionEnd(e){return this._isComposingInput=!1,this._updateBlinking(),!0}onConfigurationChanged(e){const t=this._context.configuration.options;this._readOnly=t.get(91),this._cursorBlinking=t.get(26),this._cursorStyle=t.get(28),this._cursorSmoothCaretAnimation=t.get(27),this._updateBlinking(),this._updateDomClassName(),this._primaryCursor.onConfigurationChanged(e);for(let i=0,s=this._secondaryCursors.length;i<s;i++)this._secondaryCursors[i].onConfigurationChanged(e);return!0}_onCursorPositionChanged(e,t,i){const s=this._secondaryCursors.length!==t.length||this._cursorSmoothCaretAnimation===\"explicit\"&&i!==3;if(this._primaryCursor.setPlurality(t.length?ag.MultiPrimary:ag.Single),this._primaryCursor.onCursorPositionChanged(e,s),this._updateBlinking(),this._secondaryCursors.length<t.length){const o=t.length-this._secondaryCursors.length;for(let r=0;r<o;r++){const a=new tQ(this._context,ag.MultiSecondary);this._domNode.domNode.insertBefore(a.getDomNode().domNode,this._primaryCursor.getDomNode().domNode.nextSibling),this._secondaryCursors.push(a)}}else if(this._secondaryCursors.length>t.length){const o=this._secondaryCursors.length-t.length;for(let r=0;r<o;r++)this._domNode.removeChild(this._secondaryCursors[0].getDomNode()),this._secondaryCursors.splice(0,1)}for(let o=0;o<t.length;o++)this._secondaryCursors[o].onCursorPositionChanged(t[o],s)}onCursorStateChanged(e){const t=[];for(let s=0,o=e.selections.length;s<o;s++)t[s]=e.selections[s].getPosition();this._onCursorPositionChanged(t[0],t.slice(1),e.reason);const i=e.selections[0].isEmpty();return this._selectionIsEmpty!==i&&(this._selectionIsEmpty=i,this._updateDomClassName()),!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onFocusChanged(e){return this._editorHasFocus=e.isFocused,this._updateBlinking(),!1}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return!0}onTokensChanged(e){const t=i=>{for(let s=0,o=e.ranges.length;s<o;s++)if(e.ranges[s].fromLineNumber<=i.lineNumber&&i.lineNumber<=e.ranges[s].toLineNumber)return!0;return!1};if(t(this._primaryCursor.getPosition()))return!0;for(const i of this._secondaryCursors)if(t(i.getPosition()))return!0;return!1}onZonesChanged(e){return!0}_getCursorBlinking(){return this._isComposingInput||!this._editorHasFocus?0:this._readOnly?5:this._cursorBlinking}_updateBlinking(){this._startCursorBlinkAnimation.cancel(),this._cursorFlatBlinkInterval.cancel();const e=this._getCursorBlinking(),t=e===0,i=e===5;t?this._hide():this._show(),this._blinkingEnabled=!1,this._updateDomClassName(),!t&&!i&&(e===1?this._cursorFlatBlinkInterval.cancelAndSet(()=>{this._isVisible?this._hide():this._show()},AL.BLINK_INTERVAL,gt(this._domNode.domNode)):this._startCursorBlinkAnimation.setIfNotSet(()=>{this._blinkingEnabled=!0,this._updateDomClassName()},AL.BLINK_INTERVAL))}_updateDomClassName(){this._domNode.setClassName(this._getClassName())}_getClassName(){let e=\"cursors-layer\";switch(this._selectionIsEmpty||(e+=\" has-selection\"),this._cursorStyle){case vo.Line:e+=\" cursor-line-style\";break;case vo.Block:e+=\" cursor-block-style\";break;case vo.Underline:e+=\" cursor-underline-style\";break;case vo.LineThin:e+=\" cursor-line-thin-style\";break;case vo.BlockOutline:e+=\" cursor-block-outline-style\";break;case vo.UnderlineThin:e+=\" cursor-underline-thin-style\";break;default:e+=\" cursor-line-style\"}if(this._blinkingEnabled)switch(this._getCursorBlinking()){case 1:e+=\" cursor-blink\";break;case 2:e+=\" cursor-smooth\";break;case 3:e+=\" cursor-phase\";break;case 4:e+=\" cursor-expand\";break;case 5:e+=\" cursor-solid\";break;default:e+=\" cursor-solid\"}else e+=\" cursor-solid\";return(this._cursorSmoothCaretAnimation===\"on\"||this._cursorSmoothCaretAnimation===\"explicit\")&&(e+=\" cursor-smooth-caret-animation\"),e}_show(){this._primaryCursor.show();for(let e=0,t=this._secondaryCursors.length;e<t;e++)this._secondaryCursors[e].show();this._isVisible=!0}_hide(){this._primaryCursor.hide();for(let e=0,t=this._secondaryCursors.length;e<t;e++)this._secondaryCursors[e].hide();this._isVisible=!1}prepareRender(e){this._primaryCursor.prepareRender(e);for(let t=0,i=this._secondaryCursors.length;t<i;t++)this._secondaryCursors[t].prepareRender(e)}render(e){const t=[];let i=0;const s=this._primaryCursor.render(e);s&&(t[i++]=s);for(let o=0,r=this._secondaryCursors.length;o<r;o++){const a=this._secondaryCursors[o].render(e);a&&(t[i++]=a)}this._renderData=t}getLastRenderData(){return this._renderData}}AL.BLINK_INTERVAL=500;mc((n,e)=>{const t=[{class:\".cursor\",foreground:uh,background:og},{class:\".cursor-primary\",foreground:oce,background:T3e},{class:\".cursor-secondary\",foreground:rce,background:N3e}];for(const i of t){const s=n.getColor(i.foreground);if(s){let o=n.getColor(i.background);o||(o=s.opposite()),e.addRule(`.monaco-editor .cursors-layer ${i.class} { background-color: ${s}; border-color: ${s}; color: ${o}; }`),Zd(n.type)&&e.addRule(`.monaco-editor .cursors-layer.has-selection ${i.class} { border-left: 1px solid ${o}; border-right: 1px solid ${o}; }`)}}});const a5=()=>{throw new Error(\"Invalid change accessor\")};class _7e extends Va{constructor(e){super(e);const t=this._context.configuration.options,i=t.get(145);this._lineHeight=t.get(67),this._contentWidth=i.contentWidth,this._contentLeft=i.contentLeft,this.domNode=Di(document.createElement(\"div\")),this.domNode.setClassName(\"view-zones\"),this.domNode.setPosition(\"absolute\"),this.domNode.setAttribute(\"role\",\"presentation\"),this.domNode.setAttribute(\"aria-hidden\",\"true\"),this.marginDomNode=Di(document.createElement(\"div\")),this.marginDomNode.setClassName(\"margin-view-zones\"),this.marginDomNode.setPosition(\"absolute\"),this.marginDomNode.setAttribute(\"role\",\"presentation\"),this.marginDomNode.setAttribute(\"aria-hidden\",\"true\"),this._zones={}}dispose(){super.dispose(),this._zones={}}_recomputeWhitespacesProps(){const e=this._context.viewLayout.getWhitespaces(),t=new Map;for(const s of e)t.set(s.id,s);let i=!1;return this._context.viewModel.changeWhitespace(s=>{const o=Object.keys(this._zones);for(let r=0,a=o.length;r<a;r++){const l=o[r],c=this._zones[l],d=this._computeWhitespaceProps(c.delegate);c.isInHiddenArea=d.isInHiddenArea;const u=t.get(l);u&&(u.afterLineNumber!==d.afterViewLineNumber||u.height!==d.heightInPx)&&(s.changeOneWhitespace(l,d.afterViewLineNumber,d.heightInPx),this._safeCallOnComputedHeight(c.delegate,d.heightInPx),i=!0)}}),i}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(145);return this._lineHeight=t.get(67),this._contentWidth=i.contentWidth,this._contentLeft=i.contentLeft,e.hasChanged(67)&&this._recomputeWhitespacesProps(),!0}onLineMappingChanged(e){return this._recomputeWhitespacesProps()}onLinesDeleted(e){return!0}onScrollChanged(e){return e.scrollTopChanged||e.scrollWidthChanged}onZonesChanged(e){return!0}onLinesInserted(e){return!0}_getZoneOrdinal(e){var t,i;return(i=(t=e.ordinal)!==null&&t!==void 0?t:e.afterColumn)!==null&&i!==void 0?i:1e4}_computeWhitespaceProps(e){if(e.afterLineNumber===0)return{isInHiddenArea:!1,afterViewLineNumber:0,heightInPx:this._heightInPixels(e),minWidthInPx:this._minWidthInPixels(e)};let t;if(typeof e.afterColumn<\"u\")t=this._context.viewModel.model.validatePosition({lineNumber:e.afterLineNumber,column:e.afterColumn});else{const r=this._context.viewModel.model.validatePosition({lineNumber:e.afterLineNumber,column:1}).lineNumber;t=new ee(r,this._context.viewModel.model.getLineMaxColumn(r))}let i;t.column===this._context.viewModel.model.getLineMaxColumn(t.lineNumber)?i=this._context.viewModel.model.validatePosition({lineNumber:t.lineNumber+1,column:1}):i=this._context.viewModel.model.validatePosition({lineNumber:t.lineNumber,column:t.column+1});const s=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(t,e.afterColumnAffinity,!0),o=e.showInHiddenAreas||this._context.viewModel.coordinatesConverter.modelPositionIsVisible(i);return{isInHiddenArea:!o,afterViewLineNumber:s.lineNumber,heightInPx:o?this._heightInPixels(e):0,minWidthInPx:this._minWidthInPixels(e)}}changeViewZones(e){let t=!1;return this._context.viewModel.changeWhitespace(i=>{const s={addZone:o=>(t=!0,this._addZone(i,o)),removeZone:o=>{o&&(t=this._removeZone(i,o)||t)},layoutZone:o=>{o&&(t=this._layoutZone(i,o)||t)}};v7e(e,s),s.addZone=a5,s.removeZone=a5,s.layoutZone=a5}),t}_addZone(e,t){const i=this._computeWhitespaceProps(t),o={whitespaceId:e.insertWhitespace(i.afterViewLineNumber,this._getZoneOrdinal(t),i.heightInPx,i.minWidthInPx),delegate:t,isInHiddenArea:i.isInHiddenArea,isVisible:!1,domNode:Di(t.domNode),marginDomNode:t.marginDomNode?Di(t.marginDomNode):null};return this._safeCallOnComputedHeight(o.delegate,i.heightInPx),o.domNode.setPosition(\"absolute\"),o.domNode.domNode.style.width=\"100%\",o.domNode.setDisplay(\"none\"),o.domNode.setAttribute(\"monaco-view-zone\",o.whitespaceId),this.domNode.appendChild(o.domNode),o.marginDomNode&&(o.marginDomNode.setPosition(\"absolute\"),o.marginDomNode.domNode.style.width=\"100%\",o.marginDomNode.setDisplay(\"none\"),o.marginDomNode.setAttribute(\"monaco-view-zone\",o.whitespaceId),this.marginDomNode.appendChild(o.marginDomNode)),this._zones[o.whitespaceId]=o,this.setShouldRender(),o.whitespaceId}_removeZone(e,t){if(this._zones.hasOwnProperty(t)){const i=this._zones[t];return delete this._zones[t],e.removeWhitespace(i.whitespaceId),i.domNode.removeAttribute(\"monaco-visible-view-zone\"),i.domNode.removeAttribute(\"monaco-view-zone\"),i.domNode.domNode.parentNode.removeChild(i.domNode.domNode),i.marginDomNode&&(i.marginDomNode.removeAttribute(\"monaco-visible-view-zone\"),i.marginDomNode.removeAttribute(\"monaco-view-zone\"),i.marginDomNode.domNode.parentNode.removeChild(i.marginDomNode.domNode)),this.setShouldRender(),!0}return!1}_layoutZone(e,t){if(this._zones.hasOwnProperty(t)){const i=this._zones[t],s=this._computeWhitespaceProps(i.delegate);return i.isInHiddenArea=s.isInHiddenArea,e.changeOneWhitespace(i.whitespaceId,s.afterViewLineNumber,s.heightInPx),this._safeCallOnComputedHeight(i.delegate,s.heightInPx),this.setShouldRender(),!0}return!1}shouldSuppressMouseDownOnViewZone(e){return this._zones.hasOwnProperty(e)?!!this._zones[e].delegate.suppressMouseDown:!1}_heightInPixels(e){return typeof e.heightInPx==\"number\"?e.heightInPx:typeof e.heightInLines==\"number\"?this._lineHeight*e.heightInLines:this._lineHeight}_minWidthInPixels(e){return typeof e.minWidthInPx==\"number\"?e.minWidthInPx:0}_safeCallOnComputedHeight(e,t){if(typeof e.onComputedHeight==\"function\")try{e.onComputedHeight(t)}catch(i){Mt(i)}}_safeCallOnDomNodeTop(e,t){if(typeof e.onDomNodeTop==\"function\")try{e.onDomNodeTop(t)}catch(i){Mt(i)}}prepareRender(e){}render(e){const t=e.viewportData.whitespaceViewportData,i={};let s=!1;for(const r of t)this._zones[r.id].isInHiddenArea||(i[r.id]=r,s=!0);const o=Object.keys(this._zones);for(let r=0,a=o.length;r<a;r++){const l=o[r],c=this._zones[l];let d=0,u=0,h=\"none\";i.hasOwnProperty(l)?(d=i[l].verticalOffset-e.bigNumbersDelta,u=i[l].height,h=\"block\",c.isVisible||(c.domNode.setAttribute(\"monaco-visible-view-zone\",\"true\"),c.isVisible=!0),this._safeCallOnDomNodeTop(c.delegate,e.getScrolledTopFromAbsoluteTop(i[l].verticalOffset))):(c.isVisible&&(c.domNode.removeAttribute(\"monaco-visible-view-zone\"),c.isVisible=!1),this._safeCallOnDomNodeTop(c.delegate,e.getScrolledTopFromAbsoluteTop(-1e6))),c.domNode.setTop(d),c.domNode.setHeight(u),c.domNode.setDisplay(h),c.marginDomNode&&(c.marginDomNode.setTop(d),c.marginDomNode.setHeight(u),c.marginDomNode.setDisplay(h))}s&&(this.domNode.setWidth(Math.max(e.scrollWidth,this._contentWidth)),this.marginDomNode.setWidth(this._contentLeft))}}function v7e(n,e){try{return n(e)}catch(t){Mt(t)}}class b7e extends X0{constructor(e){super(),this._context=e,this._options=new iQ(this._context.configuration),this._selection=[],this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const t=new iQ(this._context.configuration);return this._options.equals(t)?e.hasChanged(145):(this._options=t,!0)}onCursorStateChanged(e){return this._selection=e.selections,this._options.renderWhitespace===\"selection\"}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}prepareRender(e){if(this._options.renderWhitespace===\"none\"){this._renderResult=null;return}const t=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber-t+1,o=new Array(s);for(let a=0;a<s;a++)o[a]=!0;const r=this._context.viewModel.getMinimapLinesRenderingData(e.viewportData.startLineNumber,e.viewportData.endLineNumber,o);this._renderResult=[];for(let a=e.viewportData.startLineNumber;a<=e.viewportData.endLineNumber;a++){const l=a-e.viewportData.startLineNumber,c=r.data[l];let d=null;if(this._options.renderWhitespace===\"selection\"){const u=this._selection;for(const h of u){if(h.endLineNumber<a||h.startLineNumber>a)continue;const f=h.startLineNumber===a?h.startColumn:c.minColumn,g=h.endLineNumber===a?h.endColumn:c.maxColumn;f<g&&(d||(d=[]),d.push(new Nle(f-1,g-1)))}}this._renderResult[l]=this._applyRenderWhitespace(e,a,d,c)}}_applyRenderWhitespace(e,t,i,s){if(this._options.renderWhitespace===\"selection\"&&!i||this._options.renderWhitespace===\"trailing\"&&s.continuesWithWrappedLine)return\"\";const o=this._context.theme.getColor(rg),r=this._options.renderWithSVG,a=s.content,l=this._options.stopRenderingLineAfter===-1?a.length:Math.min(this._options.stopRenderingLineAfter,a.length),c=s.continuesWithWrappedLine,d=s.minColumn-1,u=this._options.renderWhitespace===\"boundary\",h=this._options.renderWhitespace===\"trailing\",f=this._options.lineHeight,g=this._options.middotWidth,p=this._options.wsmiddotWidth,_=this._options.spaceWidth,b=Math.abs(p-_),w=Math.abs(g-_),y=b<w?11825:183,S=this._options.canUseHalfwidthRightwardsArrow;let x=\"\",k=!1,D=fr(a),I;D===-1?(k=!0,D=l,I=l):I=Kd(a);let N=0,P=i&&i[N],O=0;for(let M=d;M<l;M++){const z=a.charCodeAt(M);if(P&&M>=P.endOffset&&(N++,P=i&&i[N]),z!==9&&z!==32||h&&!k&&M<=I)continue;if(u&&M>=D&&M<=I&&z===32){const ae=M-1>=0?a.charCodeAt(M-1):0,se=M+1<l?a.charCodeAt(M+1):0;if(ae!==32&&se!==32)continue}if(u&&c&&M===l-1){const ae=M-1>=0?a.charCodeAt(M-1):0;if(z===32&&ae!==32&&ae!==9)continue}if(i&&(!P||P.startOffset>M||P.endOffset<=M))continue;const K=e.visibleRangeForPosition(new ee(t,M+1));K&&(r?(O=Math.max(O,K.left),z===9?x+=this._renderArrow(f,_,K.left):x+=`<circle cx=\"${(K.left+_/2).toFixed(2)}\" cy=\"${(f/2).toFixed(2)}\" r=\"${(_/7).toFixed(2)}\" />`):z===9?x+=`<div class=\"mwh\" style=\"left:${K.left}px;height:${f}px;\">${S?\"￫\":\"→\"}</div>`:x+=`<div class=\"mwh\" style=\"left:${K.left}px;height:${f}px;\">${String.fromCharCode(y)}</div>`)}return r?(O=Math.round(O+_),`<svg style=\"bottom:0;position:absolute;width:${O}px;height:${f}px\" viewBox=\"0 0 ${O} ${f}\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"${o}\">`+x+\"</svg>\"):x}_renderArrow(e,t,i){const s=t/7,o=t,r=e/2,a=i,l={x:0,y:s/2},c={x:100/125*o,y:l.y},d={x:c.x-.2*c.x,y:c.y+.2*c.x},u={x:d.x+.1*c.x,y:d.y+.1*c.x},h={x:u.x+.35*c.x,y:u.y-.35*c.x},f={x:h.x,y:-h.y},g={x:u.x,y:-u.y},p={x:d.x,y:-d.y},_={x:c.x,y:-c.y},b={x:l.x,y:-l.y};return`<path d=\"M ${[l,c,d,u,h,f,g,p,_,b].map(S=>`${(a+S.x).toFixed(2)} ${(r+S.y).toFixed(2)}`).join(\" L \")}\" />`}render(e,t){if(!this._renderResult)return\"\";const i=t-e;return i<0||i>=this._renderResult.length?\"\":this._renderResult[i]}}class iQ{constructor(e){const t=e.options,i=t.get(50),s=t.get(38);s===\"off\"?(this.renderWhitespace=\"none\",this.renderWithSVG=!1):s===\"svg\"?(this.renderWhitespace=t.get(99),this.renderWithSVG=!0):(this.renderWhitespace=t.get(99),this.renderWithSVG=!1),this.spaceWidth=i.spaceWidth,this.middotWidth=i.middotWidth,this.wsmiddotWidth=i.wsmiddotWidth,this.canUseHalfwidthRightwardsArrow=i.canUseHalfwidthRightwardsArrow,this.lineHeight=t.get(67),this.stopRenderingLineAfter=t.get(117)}equals(e){return this.renderWhitespace===e.renderWhitespace&&this.renderWithSVG===e.renderWithSVG&&this.spaceWidth===e.spaceWidth&&this.middotWidth===e.middotWidth&&this.wsmiddotWidth===e.wsmiddotWidth&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.lineHeight===e.lineHeight&&this.stopRenderingLineAfter===e.stopRenderingLineAfter}}class C7e{constructor(e,t,i,s){this.selections=e,this.startLineNumber=t.startLineNumber|0,this.endLineNumber=t.endLineNumber|0,this.relativeVerticalOffset=t.relativeVerticalOffset,this.bigNumbersDelta=t.bigNumbersDelta|0,this.lineHeight=t.lineHeight|0,this.whitespaceViewportData=i,this._model=s,this.visibleRange=new A(t.startLineNumber,this._model.getLineMinColumn(t.startLineNumber),t.endLineNumber,this._model.getLineMaxColumn(t.endLineNumber))}getViewLineRenderingData(e){return this._model.getViewportViewLineRenderingData(this.visibleRange,e)}getDecorationsInViewport(){return this._model.getDecorationsInViewport(this.visibleRange)}}class w7e{get type(){return this._theme.type}get value(){return this._theme}constructor(e){this._theme=e}update(e){this._theme=e}getColor(e){return this._theme.getColor(e)}}class y7e{constructor(e,t,i){this.configuration=e,this.theme=new w7e(t),this.viewModel=i,this.viewLayout=i.viewLayout}addEventHandler(e){this.viewModel.addViewEventHandler(e)}removeEventHandler(e){this.viewModel.removeViewEventHandler(e)}}var S7e=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},x7e=function(n,e){return function(t,i){e(t,i,n)}};let BB=class extends CD{constructor(e,t,i,s,o,r,a){super(),this._instantiationService=a,this._shouldRecomputeGlyphMarginLanes=!1,this._selections=[new it(1,1,1,1)],this._renderAnimationFrame=null;const l=new T8e(t,s,o,e);this._context=new y7e(t,i,s),this._context.addEventHandler(this),this._viewParts=[],this._textAreaHandler=this._instantiationService.createInstance(PB,this._context,l,this._createTextAreaHandlerHelper()),this._viewParts.push(this._textAreaHandler),this._linesContent=Di(document.createElement(\"div\")),this._linesContent.setClassName(\"lines-content monaco-editor-background\"),this._linesContent.setPosition(\"absolute\"),this.domNode=Di(document.createElement(\"div\")),this.domNode.setClassName(this._getEditorClassName()),this.domNode.setAttribute(\"role\",\"code\"),this._overflowGuardContainer=Di(document.createElement(\"div\")),ru.write(this._overflowGuardContainer,3),this._overflowGuardContainer.setClassName(\"overflow-guard\"),this._scrollbar=new H8e(this._context,this._linesContent,this.domNode,this._overflowGuardContainer),this._viewParts.push(this._scrollbar),this._viewLines=new HM(this._context,this._linesContent),this._viewZones=new _7e(this._context),this._viewParts.push(this._viewZones);const c=new l7e(this._context);this._viewParts.push(c);const d=new h7e(this._context);this._viewParts.push(d);const u=new A8e(this._context);this._viewParts.push(u),u.addDynamicOverlay(new F8e(this._context)),u.addDynamicOverlay(new cs(this._context)),u.addDynamicOverlay(new G8e(this._context)),u.addDynamicOverlay(new W8e(this._context)),u.addDynamicOverlay(new b7e(this._context));const h=new R8e(this._context);this._viewParts.push(h),h.addDynamicOverlay(new B8e(this._context)),h.addDynamicOverlay(new J8e(this._context)),h.addDynamicOverlay(new Q8e(this._context)),h.addDynamicOverlay(new xD(this._context)),this._glyphMarginWidgets=new $8e(this._context),this._viewParts.push(this._glyphMarginWidgets);const f=new p0(this._context);f.getDomNode().appendChild(this._viewZones.marginDomNode),f.getDomNode().appendChild(h.getDomNode()),f.getDomNode().appendChild(this._glyphMarginWidgets.domNode),this._viewParts.push(f),this._contentWidgets=new P8e(this._context,this.domNode),this._viewParts.push(this._contentWidgets),this._viewCursors=new AL(this._context),this._viewParts.push(this._viewCursors),this._overlayWidgets=new r7e(this._context,this.domNode),this._viewParts.push(this._overlayWidgets);const g=new u7e(this._context);this._viewParts.push(g);const p=new M8e(this._context);this._viewParts.push(p);const _=new o7e(this._context);if(this._viewParts.push(_),c){const b=this._scrollbar.getOverviewRulerLayoutInfo();b.parent.insertBefore(c.getDomNode(),b.insertBefore)}this._linesContent.appendChild(u.getDomNode()),this._linesContent.appendChild(g.domNode),this._linesContent.appendChild(this._viewZones.domNode),this._linesContent.appendChild(this._viewLines.getDomNode()),this._linesContent.appendChild(this._contentWidgets.domNode),this._linesContent.appendChild(this._viewCursors.getDomNode()),this._overflowGuardContainer.appendChild(f.getDomNode()),this._overflowGuardContainer.appendChild(this._scrollbar.getDomNode()),this._overflowGuardContainer.appendChild(d.getDomNode()),this._overflowGuardContainer.appendChild(this._textAreaHandler.textArea),this._overflowGuardContainer.appendChild(this._textAreaHandler.textAreaCover),this._overflowGuardContainer.appendChild(this._overlayWidgets.getDomNode()),this._overflowGuardContainer.appendChild(_.getDomNode()),this._overflowGuardContainer.appendChild(p.domNode),this.domNode.appendChild(this._overflowGuardContainer),r?(r.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode.domNode),r.appendChild(this._overlayWidgets.overflowingOverlayWidgetsDomNode.domNode)):(this.domNode.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode),this.domNode.appendChild(this._overlayWidgets.overflowingOverlayWidgetsDomNode)),this._applyLayout(),this._pointerHandler=this._register(new D3e(this._context,l,this._createPointerHandlerHelper()))}_computeGlyphMarginLanes(){const e=this._context.viewModel.model,t=this._context.viewModel.glyphLanes;let i=[],s=0;i=i.concat(e.getAllMarginDecorations().map(o=>{var r,a,l;const c=(a=(r=o.options.glyphMargin)===null||r===void 0?void 0:r.position)!==null&&a!==void 0?a:Dh.Center;return s=Math.max(s,o.range.endLineNumber),{range:o.range,lane:c,persist:(l=o.options.glyphMargin)===null||l===void 0?void 0:l.persistLane}})),i=i.concat(this._glyphMarginWidgets.getWidgets().map(o=>{const r=e.validateRange(o.preference.range);return s=Math.max(s,r.endLineNumber),{range:r,lane:o.preference.lane}})),i.sort((o,r)=>A.compareRangesUsingStarts(o.range,r.range)),t.reset(s);for(const o of i)t.push(o.lane,o.range,o.persist);return t}_createPointerHandlerHelper(){return{viewDomNode:this.domNode.domNode,linesContentDomNode:this._linesContent.domNode,viewLinesDomNode:this._viewLines.getDomNode().domNode,focusTextArea:()=>{this.focus()},dispatchTextAreaEvent:e=>{this._textAreaHandler.textArea.domNode.dispatchEvent(e)},getLastRenderData:()=>{const e=this._viewCursors.getLastRenderData()||[],t=this._textAreaHandler.getLastRenderData();return new i3e(e,t)},renderNow:()=>{this.render(!0,!1)},shouldSuppressMouseDownOnViewZone:e=>this._viewZones.shouldSuppressMouseDownOnViewZone(e),shouldSuppressMouseDownOnWidget:e=>this._contentWidgets.shouldSuppressMouseDownOnWidget(e),getPositionFromDOMInfo:(e,t)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.getPositionFromDOMInfo(e,t)),visibleRangeForPosition:(e,t)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.visibleRangeForPosition(new ee(e,t))),getLineWidth:e=>(this._flushAccumulatedAndRenderNow(),this._viewLines.getLineWidth(e))}}_createTextAreaHandlerHelper(){return{visibleRangeForPosition:e=>(this._flushAccumulatedAndRenderNow(),this._viewLines.visibleRangeForPosition(e))}}_applyLayout(){const t=this._context.configuration.options.get(145);this.domNode.setWidth(t.width),this.domNode.setHeight(t.height),this._overflowGuardContainer.setWidth(t.width),this._overflowGuardContainer.setHeight(t.height),this._linesContent.setWidth(16777216),this._linesContent.setHeight(16777216)}_getEditorClassName(){const e=this._textAreaHandler.isFocused()?\" focused\":\"\";return this._context.configuration.options.get(142)+\" \"+MB(this._context.theme.type)+e}handleEvents(e){super.handleEvents(e),this._scheduleRender()}onConfigurationChanged(e){return this.domNode.setClassName(this._getEditorClassName()),this._applyLayout(),!1}onCursorStateChanged(e){return this._selections=e.selections,!1}onDecorationsChanged(e){return e.affectsGlyphMargin&&(this._shouldRecomputeGlyphMarginLanes=!0),!1}onFocusChanged(e){return this.domNode.setClassName(this._getEditorClassName()),!1}onThemeChanged(e){return this._context.theme.update(e.theme),this.domNode.setClassName(this._getEditorClassName()),!1}dispose(){this._renderAnimationFrame!==null&&(this._renderAnimationFrame.dispose(),this._renderAnimationFrame=null),this._contentWidgets.overflowingContentWidgetsDomNode.domNode.remove(),this._context.removeEventHandler(this),this._viewLines.dispose();for(const e of this._viewParts)e.dispose();super.dispose()}_scheduleRender(){if(this._store.isDisposed)throw new Gi;if(this._renderAnimationFrame===null){const e=this._createCoordinatedRendering();this._renderAnimationFrame=WB.INSTANCE.scheduleCoordinatedRendering({window:gt(this.domNode.domNode),prepareRenderText:()=>{if(this._store.isDisposed)throw new Gi;try{return e.prepareRenderText()}finally{this._renderAnimationFrame=null}},renderText:()=>{if(this._store.isDisposed)throw new Gi;return e.renderText()},prepareRender:(t,i)=>{if(this._store.isDisposed)throw new Gi;return e.prepareRender(t,i)},render:(t,i)=>{if(this._store.isDisposed)throw new Gi;return e.render(t,i)}})}}_flushAccumulatedAndRenderNow(){const e=this._createCoordinatedRendering();Zp(()=>e.prepareRenderText());const t=Zp(()=>e.renderText());if(t){const[i,s]=t;Zp(()=>e.prepareRender(i,s)),Zp(()=>e.render(i,s))}}_getViewPartsToRender(){const e=[];let t=0;for(const i of this._viewParts)i.shouldRender()&&(e[t++]=i);return e}_createCoordinatedRendering(){return{prepareRenderText:()=>{if(this._shouldRecomputeGlyphMarginLanes){this._shouldRecomputeGlyphMarginLanes=!1;const e=this._computeGlyphMarginLanes();this._context.configuration.setGlyphMarginDecorationLaneCount(e.requiredLanes)}Up.onRenderStart()},renderText:()=>{if(!this.domNode.domNode.isConnected)return null;let e=this._getViewPartsToRender();if(!this._viewLines.shouldRender()&&e.length===0)return null;const t=this._context.viewLayout.getLinesViewportData();this._context.viewModel.setViewport(t.startLineNumber,t.endLineNumber,t.centeredLineNumber);const i=new C7e(this._selections,t,this._context.viewLayout.getWhitespaceViewportData(),this._context.viewModel);return this._contentWidgets.shouldRender()&&this._contentWidgets.onBeforeRender(i),this._viewLines.shouldRender()&&(this._viewLines.renderText(i),this._viewLines.onDidRender(),e=this._getViewPartsToRender()),[e,new Z5e(this._context.viewLayout,i,this._viewLines)]},prepareRender:(e,t)=>{for(const i of e)i.prepareRender(t)},render:(e,t)=>{for(const i of e)i.render(t),i.onDidRender()}}}delegateVerticalScrollbarPointerDown(e){this._scrollbar.delegateVerticalScrollbarPointerDown(e)}delegateScrollFromMouseWheelEvent(e){this._scrollbar.delegateScrollFromMouseWheelEvent(e)}restoreState(e){this._context.viewModel.viewLayout.setScrollPosition({scrollTop:e.scrollTop,scrollLeft:e.scrollLeft},1),this._context.viewModel.visibleLinesStabilized()}getOffsetForColumn(e,t){const i=this._context.viewModel.model.validatePosition({lineNumber:e,column:t}),s=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(i);this._flushAccumulatedAndRenderNow();const o=this._viewLines.visibleRangeForPosition(new ee(s.lineNumber,s.column));return o?o.left:-1}getTargetAtClientPoint(e,t){const i=this._pointerHandler.getTargetAtClientPoint(e,t);return i?BM.convertViewToModelMouseTarget(i,this._context.viewModel.coordinatesConverter):null}createOverviewRuler(e){return new d7e(this._context,e)}change(e){this._viewZones.changeViewZones(e),this._scheduleRender()}render(e,t){if(t){this._viewLines.forceShouldRender();for(const i of this._viewParts)i.forceShouldRender()}e?this._flushAccumulatedAndRenderNow():this._scheduleRender()}writeScreenReaderContent(e){this._textAreaHandler.writeScreenReaderContent(e)}focus(){this._textAreaHandler.focusTextArea()}isFocused(){return this._textAreaHandler.isFocused()}setAriaOptions(e){this._textAreaHandler.setAriaOptions(e)}addContentWidget(e){this._contentWidgets.addWidget(e.widget),this.layoutContentWidget(e),this._scheduleRender()}layoutContentWidget(e){var t,i,s,o,r,a,l,c;this._contentWidgets.setWidgetPosition(e.widget,(i=(t=e.position)===null||t===void 0?void 0:t.position)!==null&&i!==void 0?i:null,(o=(s=e.position)===null||s===void 0?void 0:s.secondaryPosition)!==null&&o!==void 0?o:null,(a=(r=e.position)===null||r===void 0?void 0:r.preference)!==null&&a!==void 0?a:null,(c=(l=e.position)===null||l===void 0?void 0:l.positionAffinity)!==null&&c!==void 0?c:null),this._scheduleRender()}removeContentWidget(e){this._contentWidgets.removeWidget(e.widget),this._scheduleRender()}addOverlayWidget(e){this._overlayWidgets.addWidget(e.widget),this.layoutOverlayWidget(e),this._scheduleRender()}layoutOverlayWidget(e){this._overlayWidgets.setWidgetPosition(e.widget,e.position)&&this._scheduleRender()}removeOverlayWidget(e){this._overlayWidgets.removeWidget(e.widget),this._scheduleRender()}addGlyphMarginWidget(e){this._glyphMarginWidgets.addWidget(e.widget),this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender()}layoutGlyphMarginWidget(e){const t=e.position;this._glyphMarginWidgets.setWidgetPosition(e.widget,t)&&(this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender())}removeGlyphMarginWidget(e){this._glyphMarginWidgets.removeWidget(e.widget),this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender()}};BB=S7e([x7e(6,ht)],BB);function Zp(n){try{return n()}catch(e){return Mt(e),null}}class WB{constructor(){this._coordinatedRenderings=[],this._animationFrameRunners=new Map}scheduleCoordinatedRendering(e){return this._coordinatedRenderings.push(e),this._scheduleRender(e.window),{dispose:()=>{const t=this._coordinatedRenderings.indexOf(e);if(t!==-1&&(this._coordinatedRenderings.splice(t,1),this._coordinatedRenderings.length===0)){for(const[i,s]of this._animationFrameRunners)s.dispose();this._animationFrameRunners.clear()}}}}_scheduleRender(e){if(!this._animationFrameRunners.has(e)){const t=()=>{this._animationFrameRunners.delete(e),this._onRenderScheduled()};this._animationFrameRunners.set(e,B2(e,t,100))}}_onRenderScheduled(){const e=this._coordinatedRenderings.slice(0);this._coordinatedRenderings=[];for(const i of e)Zp(()=>i.prepareRenderText());const t=[];for(let i=0,s=e.length;i<s;i++){const o=e[i];t[i]=Zp(()=>o.renderText())}for(let i=0,s=e.length;i<s;i++){const o=e[i],r=t[i];if(!r)continue;const[a,l]=r;Zp(()=>o.prepareRender(a,l))}for(let i=0,s=e.length;i<s;i++){const o=e[i],r=t[i];if(!r)continue;const[a,l]=r;Zp(()=>o.render(a,l))}}}WB.INSTANCE=new WB;class mx{constructor(e,t,i,s,o){this.injectionOffsets=e,this.injectionOptions=t,this.breakOffsets=i,this.breakOffsetsVisibleColumn=s,this.wrappedTextIndentLength=o}getOutputLineCount(){return this.breakOffsets.length}getMinOutputOffset(e){return e>0?this.wrappedTextIndentLength:0}getLineLength(e){const t=e>0?this.breakOffsets[e-1]:0;let s=this.breakOffsets[e]-t;return e>0&&(s+=this.wrappedTextIndentLength),s}getMaxOutputOffset(e){return this.getLineLength(e)}translateToInputOffset(e,t){e>0&&(t=Math.max(0,t-this.wrappedTextIndentLength));let s=e===0?t:this.breakOffsets[e-1]+t;if(this.injectionOffsets!==null)for(let o=0;o<this.injectionOffsets.length&&s>this.injectionOffsets[o];o++)s<this.injectionOffsets[o]+this.injectionOptions[o].content.length?s=this.injectionOffsets[o]:s-=this.injectionOptions[o].content.length;return s}translateToOutputPosition(e,t=2){let i=e;if(this.injectionOffsets!==null)for(let s=0;s<this.injectionOffsets.length&&!(e<this.injectionOffsets[s]||t!==1&&e===this.injectionOffsets[s]);s++)i+=this.injectionOptions[s].content.length;return this.offsetInInputWithInjectionsToOutputPosition(i,t)}offsetInInputWithInjectionsToOutputPosition(e,t=2){let i=0,s=this.breakOffsets.length-1,o=0,r=0;for(;i<=s;){o=i+(s-i)/2|0;const l=this.breakOffsets[o];if(r=o>0?this.breakOffsets[o-1]:0,t===0)if(e<=r)s=o-1;else if(e>l)i=o+1;else break;else if(e<r)s=o-1;else if(e>=l)i=o+1;else break}let a=e-r;return o>0&&(a+=this.wrappedTextIndentLength),new $E(o,a)}normalizeOutputPosition(e,t,i){if(this.injectionOffsets!==null){const s=this.outputPositionToOffsetInInputWithInjections(e,t),o=this.normalizeOffsetInInputWithInjectionsAroundInjections(s,i);if(o!==s)return this.offsetInInputWithInjectionsToOutputPosition(o,i)}if(i===0){if(e>0&&t===this.getMinOutputOffset(e))return new $E(e-1,this.getMaxOutputOffset(e-1))}else if(i===1){const s=this.getOutputLineCount()-1;if(e<s&&t===this.getMaxOutputOffset(e))return new $E(e+1,this.getMinOutputOffset(e+1))}return new $E(e,t)}outputPositionToOffsetInInputWithInjections(e,t){return e>0&&(t=Math.max(0,t-this.wrappedTextIndentLength)),(e>0?this.breakOffsets[e-1]:0)+t}normalizeOffsetInInputWithInjectionsAroundInjections(e,t){const i=this.getInjectedTextAtOffset(e);if(!i)return e;if(t===2){if(e===i.offsetInInputWithInjections+i.length&&nQ(this.injectionOptions[i.injectedTextIndex].cursorStops))return i.offsetInInputWithInjections+i.length;{let s=i.offsetInInputWithInjections;if(sQ(this.injectionOptions[i.injectedTextIndex].cursorStops))return s;let o=i.injectedTextIndex-1;for(;o>=0&&this.injectionOffsets[o]===this.injectionOffsets[i.injectedTextIndex]&&!(nQ(this.injectionOptions[o].cursorStops)||(s-=this.injectionOptions[o].content.length,sQ(this.injectionOptions[o].cursorStops)));)o--;return s}}else if(t===1||t===4){let s=i.offsetInInputWithInjections+i.length,o=i.injectedTextIndex;for(;o+1<this.injectionOffsets.length&&this.injectionOffsets[o+1]===this.injectionOffsets[o];)s+=this.injectionOptions[o+1].content.length,o++;return s}else if(t===0||t===3){let s=i.offsetInInputWithInjections,o=i.injectedTextIndex;for(;o-1>=0&&this.injectionOffsets[o-1]===this.injectionOffsets[o];)s-=this.injectionOptions[o-1].content.length,o--;return s}yM()}getInjectedText(e,t){const i=this.outputPositionToOffsetInInputWithInjections(e,t),s=this.getInjectedTextAtOffset(i);return s?{options:this.injectionOptions[s.injectedTextIndex]}:null}getInjectedTextAtOffset(e){const t=this.injectionOffsets,i=this.injectionOptions;if(t!==null){let s=0;for(let o=0;o<t.length;o++){const r=i[o].content.length,a=t[o]+s,l=t[o]+s+r;if(a>e)break;if(e<=l)return{injectedTextIndex:o,offsetInInputWithInjections:a,length:r};s+=r}}}}function nQ(n){return n==null?!0:n===qc.Right||n===qc.Both}function sQ(n){return n==null?!0:n===qc.Left||n===qc.Both}class $E{constructor(e,t){this.outputLineIndex=e,this.outputOffset=t}toString(){return`${this.outputLineIndex}:${this.outputOffset}`}toPosition(e){return new ee(e+this.outputLineIndex,this.outputOffset+1)}}class L7e{constructor(){this.changeType=1}}class au{static applyInjectedText(e,t){if(!t||t.length===0)return e;let i=\"\",s=0;for(const o of t)i+=e.substring(s,o.column-1),s=o.column-1,i+=o.options.content;return i+=e.substring(s),i}static fromDecorations(e){const t=[];for(const i of e)i.options.before&&i.options.before.content.length>0&&t.push(new au(i.ownerId,i.range.startLineNumber,i.range.startColumn,i.options.before,0)),i.options.after&&i.options.after.content.length>0&&t.push(new au(i.ownerId,i.range.endLineNumber,i.range.endColumn,i.options.after,1));return t.sort((i,s)=>i.lineNumber===s.lineNumber?i.column===s.column?i.order-s.order:i.column-s.column:i.lineNumber-s.lineNumber),t}constructor(e,t,i,s,o){this.ownerId=e,this.lineNumber=t,this.column=i,this.options=s,this.order=o}}class oQ{constructor(e,t,i){this.changeType=2,this.lineNumber=e,this.detail=t,this.injectedText=i}}class k7e{constructor(e,t){this.changeType=3,this.fromLineNumber=e,this.toLineNumber=t}}class D7e{constructor(e,t,i,s){this.changeType=4,this.injectedTexts=s,this.fromLineNumber=e,this.toLineNumber=t,this.detail=i}}class I7e{constructor(){this.changeType=5}}class nC{constructor(e,t,i,s){this.changes=e,this.versionId=t,this.isUndoing=i,this.isRedoing=s,this.resultingSelection=null}containsEvent(e){for(let t=0,i=this.changes.length;t<i;t++)if(this.changes[t].changeType===e)return!0;return!1}static merge(e,t){const i=[].concat(e.changes).concat(t.changes),s=t.versionId,o=e.isUndoing||t.isUndoing,r=e.isRedoing||t.isRedoing;return new nC(i,s,o,r)}}class kce{constructor(e){this.changes=e}}class Kv{constructor(e,t){this.rawContentChangedEvent=e,this.contentChangedEvent=t}merge(e){const t=nC.merge(this.rawContentChangedEvent,e.rawContentChangedEvent),i=Kv._mergeChangeEvents(this.contentChangedEvent,e.contentChangedEvent);return new Kv(t,i)}static _mergeChangeEvents(e,t){const i=[].concat(e.changes).concat(t.changes),s=t.eol,o=t.versionId,r=e.isUndoing||t.isUndoing,a=e.isRedoing||t.isRedoing,l=e.isFlush||t.isFlush,c=e.isEolChange&&t.isEolChange;return{changes:i,eol:s,isEolChange:c,versionId:o,isUndoing:r,isRedoing:a,isFlush:l}}}const l5=Bg(\"domLineBreaksComputer\",{createHTML:n=>n});class Vz{static create(e){return new Vz(new WeakRef(e))}constructor(e){this.targetWindow=e}createLineBreaksComputer(e,t,i,s,o){const r=[],a=[];return{addRequest:(l,c,d)=>{r.push(l),a.push(c)},finalize:()=>E7e(Vp(this.targetWindow.deref()),r,e,t,i,s,o,a)}}}function E7e(n,e,t,i,s,o,r,a){var l;function c(P){const O=a[P];if(O){const M=au.applyInjectedText(e[P],O),z=O.map(ae=>ae.options),K=O.map(ae=>ae.column-1);return new mx(K,z,[M.length],[],0)}else return null}if(s===-1){const P=[];for(let O=0,M=e.length;O<M;O++)P[O]=c(O);return P}const d=Math.round(s*t.typicalHalfwidthCharacterWidth),h=Math.round(i*(o===3?2:o===2?1:0)),f=Math.ceil(t.spaceWidth*h),g=document.createElement(\"div\");So(g,t);const p=new Ow(1e4),_=[],b=[],w=[],y=[],S=[];for(let P=0;P<e.length;P++){const O=au.applyInjectedText(e[P],a[P]);let M=0,z=0,K=d;if(o!==0)if(M=fr(O),M===-1)M=0;else{for(let me=0;me<M;me++){const De=O.charCodeAt(me)===9?i-z%i:1;z+=De}const he=Math.ceil(t.spaceWidth*z);he+t.typicalFullwidthCharacterWidth>d?(M=0,z=0):K=d-he}const ae=O.substr(M),se=T7e(ae,z,i,K,p,f);_[P]=M,b[P]=z,w[P]=ae,y[P]=se[0],S[P]=se[1]}const x=p.build(),k=(l=l5==null?void 0:l5.createHTML(x))!==null&&l!==void 0?l:x;g.innerHTML=k,g.style.position=\"absolute\",g.style.top=\"10000\",r===\"keepAll\"?(g.style.wordBreak=\"keep-all\",g.style.overflowWrap=\"anywhere\"):(g.style.wordBreak=\"inherit\",g.style.overflowWrap=\"break-word\"),n.document.body.appendChild(g);const D=document.createRange(),I=Array.prototype.slice.call(g.children,0),N=[];for(let P=0;P<e.length;P++){const O=I[P],M=N7e(D,O,w[P],y[P]);if(M===null){N[P]=c(P);continue}const z=_[P],K=b[P]+h,ae=S[P],se=[];for(let lt=0,We=M.length;lt<We;lt++)se[lt]=ae[M[lt]];if(z!==0)for(let lt=0,We=M.length;lt<We;lt++)M[lt]+=z;let he,me;const De=a[P];De?(he=De.map(lt=>lt.options),me=De.map(lt=>lt.column-1)):(he=null,me=null),N[P]=new mx(me,he,M,se,K)}return n.document.body.removeChild(g),N}function T7e(n,e,t,i,s,o){if(o!==0){const h=String(o);s.appendString('<div style=\"text-indent: -'),s.appendString(h),s.appendString(\"px; padding-left: \"),s.appendString(h),s.appendString(\"px; box-sizing: border-box; width:\")}else s.appendString('<div style=\"width:');s.appendString(String(i)),s.appendString('px;\">');const r=n.length;let a=e,l=0;const c=[],d=[];let u=0<r?n.charCodeAt(0):0;s.appendString(\"<span>\");for(let h=0;h<r;h++){h!==0&&h%16384===0&&s.appendString(\"</span><span>\"),c[h]=l,d[h]=a;const f=u;u=h+1<r?n.charCodeAt(h+1):0;let g=1,p=1;switch(f){case 9:g=t-a%t,p=g;for(let _=1;_<=g;_++)_<g?s.appendCharCode(160):s.appendASCIICharCode(32);break;case 32:u===32?s.appendCharCode(160):s.appendASCIICharCode(32);break;case 60:s.appendString(\"&lt;\");break;case 62:s.appendString(\"&gt;\");break;case 38:s.appendString(\"&amp;\");break;case 0:s.appendString(\"&#00;\");break;case 65279:case 8232:case 8233:case 133:s.appendCharCode(65533);break;default:Mm(f)&&p++,f<32?s.appendCharCode(9216+f):s.appendCharCode(f)}l+=g,a+=p}return s.appendString(\"</span>\"),c[n.length]=l,d[n.length]=a,s.appendString(\"</div>\"),[c,d]}function N7e(n,e,t,i){if(t.length<=1)return null;const s=Array.prototype.slice.call(e.children,0),o=[];try{HB(n,s,i,0,null,t.length-1,null,o)}catch(r){return console.log(r),null}return o.length===0?null:(o.push(t.length),o)}function HB(n,e,t,i,s,o,r,a){if(i===o||(s=s||c5(n,e,t[i],t[i+1]),r=r||c5(n,e,t[o],t[o+1]),Math.abs(s[0].top-r[0].top)<=.1))return;if(i+1===o){a.push(o);return}const l=i+(o-i)/2|0,c=c5(n,e,t[l],t[l+1]);HB(n,e,t,i,s,l,c,a),HB(n,e,t,l,c,o,r,a)}function c5(n,e,t,i){return n.setStart(e[t/16384|0].firstChild,t%16384),n.setEnd(e[i/16384|0].firstChild,i%16384),n.getClientRects()}class A7e extends ne{constructor(){super(),this._editor=null,this._instantiationService=null,this._instances=this._register(new WV),this._pending=new Map,this._finishedInstantiation=[],this._finishedInstantiation[0]=!1,this._finishedInstantiation[1]=!1,this._finishedInstantiation[2]=!1,this._finishedInstantiation[3]=!1}initialize(e,t,i){this._editor=e,this._instantiationService=i;for(const s of t){if(this._pending.has(s.id)){Mt(new Error(`Cannot have two contributions with the same id ${s.id}`));continue}this._pending.set(s.id,s)}this._instantiateSome(0),this._register(_S(gt(this._editor.getDomNode()),()=>{this._instantiateSome(1)})),this._register(_S(gt(this._editor.getDomNode()),()=>{this._instantiateSome(2)})),this._register(_S(gt(this._editor.getDomNode()),()=>{this._instantiateSome(3)},5e3))}saveViewState(){const e={};for(const[t,i]of this._instances)typeof i.saveViewState==\"function\"&&(e[t]=i.saveViewState());return e}restoreViewState(e){for(const[t,i]of this._instances)typeof i.restoreViewState==\"function\"&&i.restoreViewState(e[t])}get(e){return this._instantiateById(e),this._instances.get(e)||null}onBeforeInteractionEvent(){this._instantiateSome(2)}onAfterModelAttached(){var e;return _S(gt((e=this._editor)===null||e===void 0?void 0:e.getDomNode()),()=>{this._instantiateSome(1)},50)}_instantiateSome(e){if(this._finishedInstantiation[e])return;this._finishedInstantiation[e]=!0;const t=this._findPendingContributionsByInstantiation(e);for(const i of t)this._instantiateById(i.id)}_findPendingContributionsByInstantiation(e){const t=[];for(const[,i]of this._pending)i.instantiation===e&&t.push(i);return t}_instantiateById(e){const t=this._pending.get(e);if(t){if(this._pending.delete(e),!this._instantiationService||!this._editor)throw new Error(\"Cannot instantiate contributions before being initialized!\");try{const i=this._instantiationService.createInstance(t.ctor,this._editor);this._instances.set(t.id,i),typeof i.restoreViewState==\"function\"&&t.instantiation!==0&&console.warn(`Editor contribution '${t.id}' should be eager instantiated because it uses saveViewState / restoreViewState.`)}catch(i){Mt(i)}}}}class Dce{constructor(e,t,i,s,o,r,a){this.id=e,this.label=t,this.alias=i,this.metadata=s,this._precondition=o,this._run=r,this._contextKeyService=a}isSupported(){return this._contextKeyService.contextMatchesRules(this._precondition)}run(e){return this.isSupported()?this._run(e):Promise.resolve(void 0)}}function Hm(n){let e=0,t=0,i=0,s=0;for(let o=0,r=n.length;o<r;o++){const a=n.charCodeAt(o);a===13?(e===0&&(t=o),e++,o+1<r&&n.charCodeAt(o+1)===10?(s|=2,o++):s|=3,i=o+1):a===10&&(s|=1,e===0&&(t=o),e++,i=o+1)}return e===0&&(t=n.length),[e,t,n.length-i,s]}class rQ{constructor(e,t,i,s){this.range=e,this.nestingLevel=t,this.nestingLevelOfEqualBracketType=i,this.isInvalid=s}}class R7e{constructor(e,t,i,s,o,r){this.range=e,this.openingBracketRange=t,this.closingBracketRange=i,this.nestingLevel=s,this.nestingLevelOfEqualBracketType=o,this.bracketPairNode=r}get openingBracketInfo(){return this.bracketPairNode.openingBracket.bracketInfo}}class M7e extends R7e{constructor(e,t,i,s,o,r,a){super(e,t,i,s,o,r),this.minVisibleColumnIndentation=a}}function P7e(n,e,t,i){return n!==t?vs(t-n,i):vs(0,i-e)}const Mr=0;function nA(n){return n===0}const ml=2**26;function vs(n,e){return n*ml+e}function nc(n){const e=n,t=Math.floor(e/ml),i=e-t*ml;return new Ar(t,i)}function O7e(n){return Math.floor(n/ml)}function Xn(n,e){let t=n+e;return e>=ml&&(t=t-n%ml),t}function F7e(n,e){return n.reduce((t,i)=>Xn(t,e(i)),Mr)}function Ice(n,e){return n===e}function RL(n,e){const t=n,i=e;if(i-t<=0)return Mr;const o=Math.floor(t/ml),r=Math.floor(i/ml),a=i-r*ml;if(o===r){const l=t-o*ml;return vs(0,a-l)}else return vs(r-o,a)}function sC(n,e){return n<e}function oC(n,e){return n<=e}function IS(n,e){return n>=e}function D1(n){return vs(n.lineNumber-1,n.column-1)}function qv(n,e){const t=n,i=Math.floor(t/ml),s=t-i*ml,o=e,r=Math.floor(o/ml),a=o-r*ml;return new A(i+1,s+1,r+1,a+1)}function B7e(n){const e=Wh(n);return vs(e.length-1,e[e.length-1].length)}class lg{static fromModelContentChanges(e){return e.map(i=>{const s=A.lift(i.range);return new lg(D1(s.getStartPosition()),D1(s.getEndPosition()),B7e(i.text))}).reverse()}constructor(e,t,i){this.startOffset=e,this.endOffset=t,this.newLength=i}toString(){return`[${nc(this.startOffset)}...${nc(this.endOffset)}) -> ${nc(this.newLength)}`}}class W7e{constructor(e){this.nextEditIdx=0,this.deltaOldToNewLineCount=0,this.deltaOldToNewColumnCount=0,this.deltaLineIdxInOld=-1,this.edits=e.map(t=>zz.from(t))}getOffsetBeforeChange(e){return this.adjustNextEdit(e),this.translateCurToOld(e)}getDistanceToNextChange(e){this.adjustNextEdit(e);const t=this.edits[this.nextEditIdx],i=t?this.translateOldToCur(t.offsetObj):null;return i===null?null:RL(e,i)}translateOldToCur(e){return e.lineCount===this.deltaLineIdxInOld?vs(e.lineCount+this.deltaOldToNewLineCount,e.columnCount+this.deltaOldToNewColumnCount):vs(e.lineCount+this.deltaOldToNewLineCount,e.columnCount)}translateCurToOld(e){const t=nc(e);return t.lineCount-this.deltaOldToNewLineCount===this.deltaLineIdxInOld?vs(t.lineCount-this.deltaOldToNewLineCount,t.columnCount-this.deltaOldToNewColumnCount):vs(t.lineCount-this.deltaOldToNewLineCount,t.columnCount)}adjustNextEdit(e){for(;this.nextEditIdx<this.edits.length;){const t=this.edits[this.nextEditIdx],i=this.translateOldToCur(t.endOffsetAfterObj);if(oC(i,e)){this.nextEditIdx++;const s=nc(i),o=nc(this.translateOldToCur(t.endOffsetBeforeObj)),r=s.lineCount-o.lineCount;this.deltaOldToNewLineCount+=r;const a=this.deltaLineIdxInOld===t.endOffsetBeforeObj.lineCount?this.deltaOldToNewColumnCount:0,l=s.columnCount-o.columnCount;this.deltaOldToNewColumnCount=a+l,this.deltaLineIdxInOld=t.endOffsetBeforeObj.lineCount}else break}}}class zz{static from(e){return new zz(e.startOffset,e.endOffset,e.newLength)}constructor(e,t,i){this.endOffsetBeforeObj=nc(t),this.endOffsetAfterObj=nc(Xn(e,i)),this.offsetObj=nc(e)}}const yN=[];class Rs{static create(e,t){if(e<=128&&t.length===0){let i=Rs.cache[e];return i||(i=new Rs(e,t),Rs.cache[e]=i),i}return new Rs(e,t)}static getEmpty(){return this.empty}constructor(e,t){this.items=e,this.additionalItems=t}add(e,t){const i=t.getKey(e);let s=i>>5;if(s===0){const r=1<<i|this.items;return r===this.items?this:Rs.create(r,this.additionalItems)}s--;const o=this.additionalItems.slice(0);for(;o.length<s;)o.push(0);return o[s]|=1<<(i&31),Rs.create(this.items,o)}merge(e){const t=this.items|e.items;if(this.additionalItems===yN&&e.additionalItems===yN)return t===this.items?this:t===e.items?e:Rs.create(t,yN);const i=[];for(let s=0;s<Math.max(this.additionalItems.length,e.additionalItems.length);s++){const o=this.additionalItems[s]||0,r=e.additionalItems[s]||0;i.push(o|r)}return Rs.create(t,i)}intersects(e){if(this.items&e.items)return!0;for(let t=0;t<Math.min(this.additionalItems.length,e.additionalItems.length);t++)if(this.additionalItems[t]&e.additionalItems[t])return!0;return!1}}Rs.cache=new Array(129);Rs.empty=Rs.create(0,yN);const aQ={getKey(n){return n}};class Ece{constructor(){this.items=new Map}getKey(e){let t=this.items.get(e);return t===void 0&&(t=this.items.size,this.items.set(e,t)),t}}class $z{get length(){return this._length}constructor(e){this._length=e}}class ML extends $z{static create(e,t,i){let s=e.length;return t&&(s=Xn(s,t.length)),i&&(s=Xn(s,i.length)),new ML(s,e,t,i,t?t.missingOpeningBracketIds:Rs.getEmpty())}get kind(){return 2}get listHeight(){return 0}get childrenLength(){return 3}getChild(e){switch(e){case 0:return this.openingBracket;case 1:return this.child;case 2:return this.closingBracket}throw new Error(\"Invalid child index\")}get children(){const e=[];return e.push(this.openingBracket),this.child&&e.push(this.child),this.closingBracket&&e.push(this.closingBracket),e}constructor(e,t,i,s,o){super(e),this.openingBracket=t,this.child=i,this.closingBracket=s,this.missingOpeningBracketIds=o}canBeReused(e){return!(this.closingBracket===null||e.intersects(this.missingOpeningBracketIds))}deepClone(){return new ML(this.length,this.openingBracket.deepClone(),this.child&&this.child.deepClone(),this.closingBracket&&this.closingBracket.deepClone(),this.missingOpeningBracketIds)}computeMinIndentation(e,t){return this.child?this.child.computeMinIndentation(Xn(e,this.openingBracket.length),t):Number.MAX_SAFE_INTEGER}}class Eh extends $z{static create23(e,t,i,s=!1){let o=e.length,r=e.missingOpeningBracketIds;if(e.listHeight!==t.listHeight)throw new Error(\"Invalid list heights\");if(o=Xn(o,t.length),r=r.merge(t.missingOpeningBracketIds),i){if(e.listHeight!==i.listHeight)throw new Error(\"Invalid list heights\");o=Xn(o,i.length),r=r.merge(i.missingOpeningBracketIds)}return s?new H7e(o,e.listHeight+1,e,t,i,r):new PL(o,e.listHeight+1,e,t,i,r)}static getEmpty(){return new V7e(Mr,0,[],Rs.getEmpty())}get kind(){return 4}get missingOpeningBracketIds(){return this._missingOpeningBracketIds}constructor(e,t,i){super(e),this.listHeight=t,this._missingOpeningBracketIds=i,this.cachedMinIndentation=-1}throwIfImmutable(){}makeLastElementMutable(){this.throwIfImmutable();const e=this.childrenLength;if(e===0)return;const t=this.getChild(e-1),i=t.kind===4?t.toMutable():t;return t!==i&&this.setChild(e-1,i),i}makeFirstElementMutable(){if(this.throwIfImmutable(),this.childrenLength===0)return;const t=this.getChild(0),i=t.kind===4?t.toMutable():t;return t!==i&&this.setChild(0,i),i}canBeReused(e){if(e.intersects(this.missingOpeningBracketIds)||this.childrenLength===0)return!1;let t=this;for(;t.kind===4;){const i=t.childrenLength;if(i===0)throw new Gi;t=t.getChild(i-1)}return t.canBeReused(e)}handleChildrenChanged(){this.throwIfImmutable();const e=this.childrenLength;let t=this.getChild(0).length,i=this.getChild(0).missingOpeningBracketIds;for(let s=1;s<e;s++){const o=this.getChild(s);t=Xn(t,o.length),i=i.merge(o.missingOpeningBracketIds)}this._length=t,this._missingOpeningBracketIds=i,this.cachedMinIndentation=-1}computeMinIndentation(e,t){if(this.cachedMinIndentation!==-1)return this.cachedMinIndentation;let i=Number.MAX_SAFE_INTEGER,s=e;for(let o=0;o<this.childrenLength;o++){const r=this.getChild(o);r&&(i=Math.min(i,r.computeMinIndentation(s,t)),s=Xn(s,r.length))}return this.cachedMinIndentation=i,i}}class PL extends Eh{get childrenLength(){return this._item3!==null?3:2}getChild(e){switch(e){case 0:return this._item1;case 1:return this._item2;case 2:return this._item3}throw new Error(\"Invalid child index\")}setChild(e,t){switch(e){case 0:this._item1=t;return;case 1:this._item2=t;return;case 2:this._item3=t;return}throw new Error(\"Invalid child index\")}get children(){return this._item3?[this._item1,this._item2,this._item3]:[this._item1,this._item2]}get item1(){return this._item1}get item2(){return this._item2}get item3(){return this._item3}constructor(e,t,i,s,o,r){super(e,t,r),this._item1=i,this._item2=s,this._item3=o}deepClone(){return new PL(this.length,this.listHeight,this._item1.deepClone(),this._item2.deepClone(),this._item3?this._item3.deepClone():null,this.missingOpeningBracketIds)}appendChildOfSameHeight(e){if(this._item3)throw new Error(\"Cannot append to a full (2,3) tree node\");this.throwIfImmutable(),this._item3=e,this.handleChildrenChanged()}unappendChild(){if(!this._item3)throw new Error(\"Cannot remove from a non-full (2,3) tree node\");this.throwIfImmutable();const e=this._item3;return this._item3=null,this.handleChildrenChanged(),e}prependChildOfSameHeight(e){if(this._item3)throw new Error(\"Cannot prepend to a full (2,3) tree node\");this.throwIfImmutable(),this._item3=this._item2,this._item2=this._item1,this._item1=e,this.handleChildrenChanged()}unprependChild(){if(!this._item3)throw new Error(\"Cannot remove from a non-full (2,3) tree node\");this.throwIfImmutable();const e=this._item1;return this._item1=this._item2,this._item2=this._item3,this._item3=null,this.handleChildrenChanged(),e}toMutable(){return this}}class H7e extends PL{toMutable(){return new PL(this.length,this.listHeight,this.item1,this.item2,this.item3,this.missingOpeningBracketIds)}throwIfImmutable(){throw new Error(\"this instance is immutable\")}}class sA extends Eh{get childrenLength(){return this._children.length}getChild(e){return this._children[e]}setChild(e,t){this._children[e]=t}get children(){return this._children}constructor(e,t,i,s){super(e,t,s),this._children=i}deepClone(){const e=new Array(this._children.length);for(let t=0;t<this._children.length;t++)e[t]=this._children[t].deepClone();return new sA(this.length,this.listHeight,e,this.missingOpeningBracketIds)}appendChildOfSameHeight(e){this.throwIfImmutable(),this._children.push(e),this.handleChildrenChanged()}unappendChild(){this.throwIfImmutable();const e=this._children.pop();return this.handleChildrenChanged(),e}prependChildOfSameHeight(e){this.throwIfImmutable(),this._children.unshift(e),this.handleChildrenChanged()}unprependChild(){this.throwIfImmutable();const e=this._children.shift();return this.handleChildrenChanged(),e}toMutable(){return this}}class V7e extends sA{toMutable(){return new sA(this.length,this.listHeight,[...this.children],this.missingOpeningBracketIds)}throwIfImmutable(){throw new Error(\"this instance is immutable\")}}const z7e=[];class Uz extends $z{get listHeight(){return 0}get childrenLength(){return 0}getChild(e){return null}get children(){return z7e}deepClone(){return this}}class _v extends Uz{get kind(){return 0}get missingOpeningBracketIds(){return Rs.getEmpty()}canBeReused(e){return!0}computeMinIndentation(e,t){const i=nc(e),s=(i.columnCount===0?i.lineCount:i.lineCount+1)+1,o=O7e(Xn(e,this.length))+1;let r=Number.MAX_SAFE_INTEGER;for(let a=s;a<=o;a++){const l=t.getLineFirstNonWhitespaceColumn(a),c=t.getLineContent(a);if(l===0)continue;const d=zs.visibleColumnFromColumn(c,l,t.getOptions().tabSize);r=Math.min(r,d)}return r}}class oA extends Uz{static create(e,t,i){return new oA(e,t,i)}get kind(){return 1}get missingOpeningBracketIds(){return Rs.getEmpty()}constructor(e,t,i){super(e),this.bracketInfo=t,this.bracketIds=i}get text(){return this.bracketInfo.bracketText}get languageId(){return this.bracketInfo.languageId}canBeReused(e){return!1}computeMinIndentation(e,t){return Number.MAX_SAFE_INTEGER}}class $7e extends Uz{get kind(){return 3}constructor(e,t){super(t),this.missingOpeningBracketIds=e}canBeReused(e){return!e.intersects(this.missingOpeningBracketIds)}computeMinIndentation(e,t){return Number.MAX_SAFE_INTEGER}}let Pp=class{constructor(e,t,i,s,o){this.length=e,this.kind=t,this.bracketId=i,this.bracketIds=s,this.astNode=o}};class Tce{constructor(e,t){this.textModel=e,this.bracketTokens=t,this.reader=new U7e(this.textModel,this.bracketTokens),this._offset=Mr,this.didPeek=!1,this.peeked=null,this.textBufferLineCount=e.getLineCount(),this.textBufferLastLineLength=e.getLineLength(this.textBufferLineCount)}get offset(){return this._offset}get length(){return vs(this.textBufferLineCount-1,this.textBufferLastLineLength)}skip(e){this.didPeek=!1,this._offset=Xn(this._offset,e);const t=nc(this._offset);this.reader.setPosition(t.lineCount,t.columnCount)}read(){let e;return this.peeked?(this.didPeek=!1,e=this.peeked):e=this.reader.read(),e&&(this._offset=Xn(this._offset,e.length)),e}peek(){return this.didPeek||(this.peeked=this.reader.read(),this.didPeek=!0),this.peeked}}class U7e{constructor(e,t){this.textModel=e,this.bracketTokens=t,this.lineIdx=0,this.line=null,this.lineCharOffset=0,this.lineTokens=null,this.lineTokenOffset=0,this.peekedToken=null,this.textBufferLineCount=e.getLineCount(),this.textBufferLastLineLength=e.getLineLength(this.textBufferLineCount)}setPosition(e,t){e===this.lineIdx?(this.lineCharOffset=t,this.line!==null&&(this.lineTokenOffset=this.lineCharOffset===0?0:this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset))):(this.lineIdx=e,this.lineCharOffset=t,this.line=null),this.peekedToken=null}read(){if(this.peekedToken){const o=this.peekedToken;return this.peekedToken=null,this.lineCharOffset+=o.length,o}if(this.lineIdx>this.textBufferLineCount-1||this.lineIdx===this.textBufferLineCount-1&&this.lineCharOffset>=this.textBufferLastLineLength)return null;this.line===null&&(this.lineTokens=this.textModel.tokenization.getLineTokens(this.lineIdx+1),this.line=this.lineTokens.getLineContent(),this.lineTokenOffset=this.lineCharOffset===0?0:this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset));const e=this.lineIdx,t=this.lineCharOffset;let i=0;for(;;){const o=this.lineTokens,r=o.getCount();let a=null;if(this.lineTokenOffset<r){const l=o.getMetadata(this.lineTokenOffset);for(;this.lineTokenOffset+1<r&&l===o.getMetadata(this.lineTokenOffset+1);)this.lineTokenOffset++;const c=No.getTokenType(l)===0,d=No.containsBalancedBrackets(l),u=o.getEndOffset(this.lineTokenOffset);if(d&&c&&this.lineCharOffset<u){const h=o.getLanguageId(this.lineTokenOffset),f=this.line.substring(this.lineCharOffset,u),g=this.bracketTokens.getSingleLanguageBracketTokens(h),p=g.regExpGlobal;if(p){p.lastIndex=0;const _=p.exec(f);_&&(a=g.getToken(_[0]),a&&(this.lineCharOffset+=_.index))}}if(i+=u-this.lineCharOffset,a)if(e!==this.lineIdx||t!==this.lineCharOffset){this.peekedToken=a;break}else return this.lineCharOffset+=a.length,a;else this.lineTokenOffset++,this.lineCharOffset=u}else if(this.lineIdx===this.textBufferLineCount-1||(this.lineIdx++,this.lineTokens=this.textModel.tokenization.getLineTokens(this.lineIdx+1),this.lineTokenOffset=0,this.line=this.lineTokens.getLineContent(),this.lineCharOffset=0,i+=33,i>1e3))break;if(i>1500)break}const s=P7e(e,t,this.lineIdx,this.lineCharOffset);return new Pp(s,0,-1,Rs.getEmpty(),new _v(s))}}class j7e{constructor(e,t){this.text=e,this._offset=Mr,this.idx=0;const i=t.getRegExpStr(),s=i?new RegExp(i+`|\n`,\"gi\"):null,o=[];let r,a=0,l=0,c=0,d=0;const u=[];for(let g=0;g<60;g++)u.push(new Pp(vs(0,g),0,-1,Rs.getEmpty(),new _v(vs(0,g))));const h=[];for(let g=0;g<60;g++)h.push(new Pp(vs(1,g),0,-1,Rs.getEmpty(),new _v(vs(1,g))));if(s)for(s.lastIndex=0;(r=s.exec(e))!==null;){const g=r.index,p=r[0];if(p===`\n`)a++,l=g+1;else{if(c!==g){let _;if(d===a){const b=g-c;if(b<u.length)_=u[b];else{const w=vs(0,b);_=new Pp(w,0,-1,Rs.getEmpty(),new _v(w))}}else{const b=a-d,w=g-l;if(b===1&&w<h.length)_=h[w];else{const y=vs(b,w);_=new Pp(y,0,-1,Rs.getEmpty(),new _v(y))}}o.push(_)}o.push(t.getToken(p)),c=g+p.length,d=a}}const f=e.length;if(c!==f){const g=d===a?vs(0,f-c):vs(a-d,f-l);o.push(new Pp(g,0,-1,Rs.getEmpty(),new _v(g)))}this.length=vs(a,f-l),this.tokens=o}get offset(){return this._offset}read(){return this.tokens[this.idx++]||null}peek(){return this.tokens[this.idx]||null}skip(e){throw new wAe}}class jz{static createFromLanguage(e,t){function i(o){return t.getKey(`${o.languageId}:::${o.bracketText}`)}const s=new Map;for(const o of e.bracketsNew.openingBrackets){const r=vs(0,o.bracketText.length),a=i(o),l=Rs.getEmpty().add(a,aQ);s.set(o.bracketText,new Pp(r,1,a,l,oA.create(r,o,l)))}for(const o of e.bracketsNew.closingBrackets){const r=vs(0,o.bracketText.length);let a=Rs.getEmpty();const l=o.getOpeningBrackets();for(const c of l)a=a.add(i(c),aQ);s.set(o.bracketText,new Pp(r,2,i(l[0]),a,oA.create(r,o,a)))}return new jz(s)}constructor(e){this.map=e,this.hasRegExp=!1,this._regExpGlobal=null}getRegExpStr(){if(this.isEmpty)return null;{const e=[...this.map.keys()];return e.sort(),e.reverse(),e.map(t=>K7e(t)).join(\"|\")}}get regExpGlobal(){if(!this.hasRegExp){const e=this.getRegExpStr();this._regExpGlobal=e?new RegExp(e,\"gi\"):null,this.hasRegExp=!0}return this._regExpGlobal}getToken(e){return this.map.get(e.toLowerCase())}findClosingTokenText(e){for(const[t,i]of this.map)if(i.kind===2&&i.bracketIds.intersects(e))return t}get isEmpty(){return this.map.size===0}}function K7e(n){let e=wl(n);return/^[\\w ]+/.test(n)&&(e=`\\\\b${e}`),/[\\w ]+$/.test(n)&&(e=`${e}\\\\b`),e}class Nce{constructor(e,t){this.denseKeyProvider=e,this.getLanguageConfiguration=t,this.languageIdToBracketTokens=new Map}didLanguageChange(e){return this.languageIdToBracketTokens.has(e)}getSingleLanguageBracketTokens(e){let t=this.languageIdToBracketTokens.get(e);return t||(t=jz.createFromLanguage(this.getLanguageConfiguration(e),this.denseKeyProvider),this.languageIdToBracketTokens.set(e,t)),t}}function q7e(n){if(n.length===0)return null;if(n.length===1)return n[0];let e=0;function t(){if(e>=n.length)return null;const r=e,a=n[r].listHeight;for(e++;e<n.length&&n[e].listHeight===a;)e++;return e-r>=2?Ace(r===0&&e===n.length?n:n.slice(r,e),!1):n[r]}let i=t(),s=t();if(!s)return i;for(let r=t();r;r=t())lQ(i,s)<=lQ(s,r)?(i=d5(i,s),s=r):s=d5(s,r);return d5(i,s)}function Ace(n,e=!1){if(n.length===0)return null;if(n.length===1)return n[0];let t=n.length;for(;t>3;){const i=t>>1;for(let s=0;s<i;s++){const o=s<<1;n[s]=Eh.create23(n[o],n[o+1],o+3===t?n[o+2]:null,e)}t=i}return Eh.create23(n[0],n[1],t>=3?n[2]:null,e)}function lQ(n,e){return Math.abs(n.listHeight-e.listHeight)}function d5(n,e){return n.listHeight===e.listHeight?Eh.create23(n,e,null,!1):n.listHeight>e.listHeight?G7e(n,e):Z7e(e,n)}function G7e(n,e){n=n.toMutable();let t=n;const i=[];let s;for(;;){if(e.listHeight===t.listHeight){s=e;break}if(t.kind!==4)throw new Error(\"unexpected\");i.push(t),t=t.makeLastElementMutable()}for(let o=i.length-1;o>=0;o--){const r=i[o];s?r.childrenLength>=3?s=Eh.create23(r.unappendChild(),s,null,!1):(r.appendChildOfSameHeight(s),s=void 0):r.handleChildrenChanged()}return s?Eh.create23(n,s,null,!1):n}function Z7e(n,e){n=n.toMutable();let t=n;const i=[];for(;e.listHeight!==t.listHeight;){if(t.kind!==4)throw new Error(\"unexpected\");i.push(t),t=t.makeFirstElementMutable()}let s=e;for(let o=i.length-1;o>=0;o--){const r=i[o];s?r.childrenLength>=3?s=Eh.create23(s,r.unprependChild(),null,!1):(r.prependChildOfSameHeight(s),s=void 0):r.handleChildrenChanged()}return s?Eh.create23(s,n,null,!1):n}class Y7e{constructor(e){this.lastOffset=Mr,this.nextNodes=[e],this.offsets=[Mr],this.idxs=[]}readLongestNodeAt(e,t){if(sC(e,this.lastOffset))throw new Error(\"Invalid offset\");for(this.lastOffset=e;;){const i=Wy(this.nextNodes);if(!i)return;const s=Wy(this.offsets);if(sC(e,s))return;if(sC(s,e))if(Xn(s,i.length)<=e)this.nextNodeAfterCurrent();else{const o=u5(i);o!==-1?(this.nextNodes.push(i.getChild(o)),this.offsets.push(s),this.idxs.push(o)):this.nextNodeAfterCurrent()}else{if(t(i))return this.nextNodeAfterCurrent(),i;{const o=u5(i);if(o===-1){this.nextNodeAfterCurrent();return}else this.nextNodes.push(i.getChild(o)),this.offsets.push(s),this.idxs.push(o)}}}}nextNodeAfterCurrent(){for(;;){const e=Wy(this.offsets),t=Wy(this.nextNodes);if(this.nextNodes.pop(),this.offsets.pop(),this.idxs.length===0)break;const i=Wy(this.nextNodes),s=u5(i,this.idxs[this.idxs.length-1]);if(s!==-1){this.nextNodes.push(i.getChild(s)),this.offsets.push(Xn(e,t.length)),this.idxs[this.idxs.length-1]=s;break}else this.idxs.pop()}}}function u5(n,e=-1){for(;;){if(e++,e>=n.childrenLength)return-1;if(n.getChild(e))return e}}function Wy(n){return n.length>0?n[n.length-1]:void 0}function VB(n,e,t,i){return new X7e(n,e,t,i).parseDocument()}class X7e{constructor(e,t,i,s){if(this.tokenizer=e,this.createImmutableLists=s,this._itemsConstructed=0,this._itemsFromCache=0,i&&s)throw new Error(\"Not supported\");this.oldNodeReader=i?new Y7e(i):void 0,this.positionMapper=new W7e(t)}parseDocument(){this._itemsConstructed=0,this._itemsFromCache=0;let e=this.parseList(Rs.getEmpty(),0);return e||(e=Eh.getEmpty()),e}parseList(e,t){const i=[];for(;;){let o=this.tryReadChildFromCache(e);if(!o){const r=this.tokenizer.peek();if(!r||r.kind===2&&r.bracketIds.intersects(e))break;o=this.parseChild(e,t+1)}o.kind===4&&o.childrenLength===0||i.push(o)}return this.oldNodeReader?q7e(i):Ace(i,this.createImmutableLists)}tryReadChildFromCache(e){if(this.oldNodeReader){const t=this.positionMapper.getDistanceToNextChange(this.tokenizer.offset);if(t===null||!nA(t)){const i=this.oldNodeReader.readLongestNodeAt(this.positionMapper.getOffsetBeforeChange(this.tokenizer.offset),s=>t!==null&&!sC(s.length,t)?!1:s.canBeReused(e));if(i)return this._itemsFromCache++,this.tokenizer.skip(i.length),i}}}parseChild(e,t){this._itemsConstructed++;const i=this.tokenizer.read();switch(i.kind){case 2:return new $7e(i.bracketIds,i.length);case 0:return i.astNode;case 1:{if(t>300)return new _v(i.length);const s=e.merge(i.bracketIds),o=this.parseList(s,t+1),r=this.tokenizer.peek();return r&&r.kind===2&&(r.bracketId===i.bracketId||r.bracketIds.intersects(i.bracketIds))?(this.tokenizer.read(),ML.create(i.astNode,o,r.astNode)):ML.create(i.astNode,o,null)}default:throw new Error(\"unexpected\")}}}function rA(n,e){if(n.length===0)return e;if(e.length===0)return n;const t=new Lg(cQ(n)),i=cQ(e);i.push({modified:!1,lengthBefore:void 0,lengthAfter:void 0});let s=t.dequeue();function o(c){if(c===void 0){const u=t.takeWhile(h=>!0)||[];return s&&u.unshift(s),u}const d=[];for(;s&&!nA(c);){const[u,h]=s.splitAt(c);d.push(u),c=RL(u.lengthAfter,c),s=h??t.dequeue()}return nA(c)||d.push(new Yp(!1,c,c)),d}const r=[];function a(c,d,u){if(r.length>0&&Ice(r[r.length-1].endOffset,c)){const h=r[r.length-1];r[r.length-1]=new lg(h.startOffset,d,Xn(h.newLength,u))}else r.push({startOffset:c,endOffset:d,newLength:u})}let l=Mr;for(const c of i){const d=o(c.lengthBefore);if(c.modified){const u=F7e(d,f=>f.lengthBefore),h=Xn(l,u);a(l,h,c.lengthAfter),l=h}else for(const u of d){const h=l;l=Xn(l,u.lengthBefore),u.modified&&a(h,l,u.lengthAfter)}}return r}class Yp{constructor(e,t,i){this.modified=e,this.lengthBefore=t,this.lengthAfter=i}splitAt(e){const t=RL(e,this.lengthAfter);return Ice(t,Mr)?[this,void 0]:this.modified?[new Yp(this.modified,this.lengthBefore,e),new Yp(this.modified,Mr,t)]:[new Yp(this.modified,e,e),new Yp(this.modified,t,t)]}toString(){return`${this.modified?\"M\":\"U\"}:${nc(this.lengthBefore)} -> ${nc(this.lengthAfter)}`}}function cQ(n){const e=[];let t=Mr;for(const i of n){const s=RL(t,i.startOffset);nA(s)||e.push(new Yp(!1,s,s));const o=RL(i.startOffset,i.endOffset);e.push(new Yp(!0,o,i.newLength)),t=i.endOffset}return e}class Q7e extends ne{didLanguageChange(e){return this.brackets.didLanguageChange(e)}constructor(e,t){if(super(),this.textModel=e,this.getLanguageConfiguration=t,this.didChangeEmitter=new X,this.denseKeyProvider=new Ece,this.brackets=new Nce(this.denseKeyProvider,this.getLanguageConfiguration),this.onDidChange=this.didChangeEmitter.event,this.queuedTextEditsForInitialAstWithoutTokens=[],this.queuedTextEdits=[],e.tokenization.hasTokens)e.tokenization.backgroundTokenizationState===2?(this.initialAstWithoutTokens=void 0,this.astWithTokens=this.parseDocumentFromTextBuffer([],void 0,!1)):(this.initialAstWithoutTokens=this.parseDocumentFromTextBuffer([],void 0,!0),this.astWithTokens=this.initialAstWithoutTokens);else{const i=this.brackets.getSingleLanguageBracketTokens(this.textModel.getLanguageId()),s=new j7e(this.textModel.getValue(),i);this.initialAstWithoutTokens=VB(s,[],void 0,!0),this.astWithTokens=this.initialAstWithoutTokens}}handleDidChangeBackgroundTokenizationState(){if(this.textModel.tokenization.backgroundTokenizationState===2){const e=this.initialAstWithoutTokens===void 0;this.initialAstWithoutTokens=void 0,e||this.didChangeEmitter.fire()}}handleDidChangeTokens({ranges:e}){const t=e.map(i=>new lg(vs(i.fromLineNumber-1,0),vs(i.toLineNumber,0),vs(i.toLineNumber-i.fromLineNumber+1,0)));this.handleEdits(t,!0),this.initialAstWithoutTokens||this.didChangeEmitter.fire()}handleContentChanged(e){const t=lg.fromModelContentChanges(e.changes);this.handleEdits(t,!1)}handleEdits(e,t){const i=rA(this.queuedTextEdits,e);this.queuedTextEdits=i,this.initialAstWithoutTokens&&!t&&(this.queuedTextEditsForInitialAstWithoutTokens=rA(this.queuedTextEditsForInitialAstWithoutTokens,e))}flushQueue(){this.queuedTextEdits.length>0&&(this.astWithTokens=this.parseDocumentFromTextBuffer(this.queuedTextEdits,this.astWithTokens,!1),this.queuedTextEdits=[]),this.queuedTextEditsForInitialAstWithoutTokens.length>0&&(this.initialAstWithoutTokens&&(this.initialAstWithoutTokens=this.parseDocumentFromTextBuffer(this.queuedTextEditsForInitialAstWithoutTokens,this.initialAstWithoutTokens,!1)),this.queuedTextEditsForInitialAstWithoutTokens=[])}parseDocumentFromTextBuffer(e,t,i){const s=t,o=new Tce(this.textModel,this.brackets);return VB(o,e,s,i)}getBracketsInRange(e,t){this.flushQueue();const i=vs(e.startLineNumber-1,e.startColumn-1),s=vs(e.endLineNumber-1,e.endColumn-1);return new fh(o=>{const r=this.initialAstWithoutTokens||this.astWithTokens;zB(r,Mr,r.length,i,s,o,0,0,new Map,t)})}getBracketPairsInRange(e,t){this.flushQueue();const i=D1(e.getStartPosition()),s=D1(e.getEndPosition());return new fh(o=>{const r=this.initialAstWithoutTokens||this.astWithTokens,a=new J7e(o,t,this.textModel);$B(r,Mr,r.length,i,s,a,0,new Map)})}getFirstBracketAfter(e){this.flushQueue();const t=this.initialAstWithoutTokens||this.astWithTokens;return Mce(t,Mr,t.length,D1(e))}getFirstBracketBefore(e){this.flushQueue();const t=this.initialAstWithoutTokens||this.astWithTokens;return Rce(t,Mr,t.length,D1(e))}}function Rce(n,e,t,i){if(n.kind===4||n.kind===2){const s=[];for(const o of n.children)t=Xn(e,o.length),s.push({nodeOffsetStart:e,nodeOffsetEnd:t}),e=t;for(let o=s.length-1;o>=0;o--){const{nodeOffsetStart:r,nodeOffsetEnd:a}=s[o];if(sC(r,i)){const l=Rce(n.children[o],r,a,i);if(l)return l}}return null}else{if(n.kind===3)return null;if(n.kind===1){const s=qv(e,t);return{bracketInfo:n.bracketInfo,range:s}}}return null}function Mce(n,e,t,i){if(n.kind===4||n.kind===2){for(const s of n.children){if(t=Xn(e,s.length),sC(i,t)){const o=Mce(s,e,t,i);if(o)return o}e=t}return null}else{if(n.kind===3)return null;if(n.kind===1){const s=qv(e,t);return{bracketInfo:n.bracketInfo,range:s}}}return null}function zB(n,e,t,i,s,o,r,a,l,c,d=!1){if(r>200)return!0;e:for(;;)switch(n.kind){case 4:{const u=n.childrenLength;for(let h=0;h<u;h++){const f=n.getChild(h);if(f){if(t=Xn(e,f.length),oC(e,s)&&IS(t,i)){if(IS(t,s)){n=f;continue e}if(!zB(f,e,t,i,s,o,r,0,l,c))return!1}e=t}}return!0}case 2:{const u=!c||!n.closingBracket||n.closingBracket.bracketInfo.closesColorized(n.openingBracket.bracketInfo);let h=0;if(l){let g=l.get(n.openingBracket.text);g===void 0&&(g=0),h=g,u&&(g++,l.set(n.openingBracket.text,g))}const f=n.childrenLength;for(let g=0;g<f;g++){const p=n.getChild(g);if(p){if(t=Xn(e,p.length),oC(e,s)&&IS(t,i)){if(IS(t,s)&&p.kind!==1){n=p,u?(r++,a=h+1):a=h;continue e}if((u||p.kind!==1||!n.closingBracket)&&!zB(p,e,t,i,s,o,u?r+1:r,u?h+1:h,l,c,!n.closingBracket))return!1}e=t}}return l==null||l.set(n.openingBracket.text,h),!0}case 3:{const u=qv(e,t);return o(new rQ(u,r-1,0,!0))}case 1:{const u=qv(e,t);return o(new rQ(u,r-1,a-1,d))}case 0:return!0}}class J7e{constructor(e,t,i){this.push=e,this.includeMinIndentation=t,this.textModel=i}}function $B(n,e,t,i,s,o,r,a){var l;if(r>200)return!0;let c=!0;if(n.kind===2){let d=0;if(a){let f=a.get(n.openingBracket.text);f===void 0&&(f=0),d=f,f++,a.set(n.openingBracket.text,f)}const u=Xn(e,n.openingBracket.length);let h=-1;if(o.includeMinIndentation&&(h=n.computeMinIndentation(e,o.textModel)),c=o.push(new M7e(qv(e,t),qv(e,u),n.closingBracket?qv(Xn(u,((l=n.child)===null||l===void 0?void 0:l.length)||Mr),t):void 0,r,d,n,h)),e=u,c&&n.child){const f=n.child;if(t=Xn(e,f.length),oC(e,s)&&IS(t,i)&&(c=$B(f,e,t,i,s,o,r+1,a),!c))return!1}a==null||a.set(n.openingBracket.text,d)}else{let d=e;for(const u of n.children){const h=d;if(d=Xn(d,u.length),oC(h,s)&&oC(i,d)&&(c=$B(u,h,d,i,s,o,r,a),!c))return!1}}return c}class eBe extends ne{get canBuildAST(){return this.textModel.getValueLength()<=5e6}constructor(e,t){super(),this.textModel=e,this.languageConfigurationService=t,this.bracketPairsTree=this._register(new Qs),this.onDidChangeEmitter=new X,this.onDidChange=this.onDidChangeEmitter.event,this.bracketsRequested=!1,this._register(this.languageConfigurationService.onDidChange(i=>{var s;(!i.languageId||!((s=this.bracketPairsTree.value)===null||s===void 0)&&s.object.didLanguageChange(i.languageId))&&(this.bracketPairsTree.clear(),this.updateBracketPairsTree())}))}handleDidChangeOptions(e){this.bracketPairsTree.clear(),this.updateBracketPairsTree()}handleDidChangeLanguage(e){this.bracketPairsTree.clear(),this.updateBracketPairsTree()}handleDidChangeContent(e){var t;(t=this.bracketPairsTree.value)===null||t===void 0||t.object.handleContentChanged(e)}handleDidChangeBackgroundTokenizationState(){var e;(e=this.bracketPairsTree.value)===null||e===void 0||e.object.handleDidChangeBackgroundTokenizationState()}handleDidChangeTokens(e){var t;(t=this.bracketPairsTree.value)===null||t===void 0||t.object.handleDidChangeTokens(e)}updateBracketPairsTree(){if(this.bracketsRequested&&this.canBuildAST){if(!this.bracketPairsTree.value){const e=new be;this.bracketPairsTree.value=tBe(e.add(new Q7e(this.textModel,t=>this.languageConfigurationService.getLanguageConfiguration(t))),e),e.add(this.bracketPairsTree.value.object.onDidChange(t=>this.onDidChangeEmitter.fire(t))),this.onDidChangeEmitter.fire()}}else this.bracketPairsTree.value&&(this.bracketPairsTree.clear(),this.onDidChangeEmitter.fire())}getBracketPairsInRange(e){var t;return this.bracketsRequested=!0,this.updateBracketPairsTree(),((t=this.bracketPairsTree.value)===null||t===void 0?void 0:t.object.getBracketPairsInRange(e,!1))||fh.empty}getBracketPairsInRangeWithMinIndentation(e){var t;return this.bracketsRequested=!0,this.updateBracketPairsTree(),((t=this.bracketPairsTree.value)===null||t===void 0?void 0:t.object.getBracketPairsInRange(e,!0))||fh.empty}getBracketsInRange(e,t=!1){var i;return this.bracketsRequested=!0,this.updateBracketPairsTree(),((i=this.bracketPairsTree.value)===null||i===void 0?void 0:i.object.getBracketsInRange(e,t))||fh.empty}findMatchingBracketUp(e,t,i){const s=this.textModel.validatePosition(t),o=this.textModel.getLanguageIdAtPosition(s.lineNumber,s.column);if(this.canBuildAST){const r=this.languageConfigurationService.getLanguageConfiguration(o).bracketsNew.getClosingBracketInfo(e);if(!r)return null;const a=this.getBracketPairsInRange(A.fromPositions(t,t)).findLast(l=>r.closes(l.openingBracketInfo));return a?a.openingBracketRange:null}else{const r=e.toLowerCase(),a=this.languageConfigurationService.getLanguageConfiguration(o).brackets;if(!a)return null;const l=a.textIsBracket[r];return l?UE(this._findMatchingBracketUp(l,s,h5(i))):null}}matchBracket(e,t){if(this.canBuildAST){const i=this.getBracketPairsInRange(A.fromPositions(e,e)).filter(s=>s.closingBracketRange!==void 0&&(s.openingBracketRange.containsPosition(e)||s.closingBracketRange.containsPosition(e))).findLastMaxBy(oa(s=>s.openingBracketRange.containsPosition(e)?s.openingBracketRange:s.closingBracketRange,A.compareRangesUsingStarts));return i?[i.openingBracketRange,i.closingBracketRange]:null}else{const i=h5(t);return this._matchBracket(this.textModel.validatePosition(e),i)}}_establishBracketSearchOffsets(e,t,i,s){const o=t.getCount(),r=t.getLanguageId(s);let a=Math.max(0,e.column-1-i.maxBracketLength);for(let c=s-1;c>=0;c--){const d=t.getEndOffset(c);if(d<=a)break;if(Fu(t.getStandardTokenType(c))||t.getLanguageId(c)!==r){a=d;break}}let l=Math.min(t.getLineContent().length,e.column-1+i.maxBracketLength);for(let c=s+1;c<o;c++){const d=t.getStartOffset(c);if(d>=l)break;if(Fu(t.getStandardTokenType(c))||t.getLanguageId(c)!==r){l=d;break}}return{searchStartOffset:a,searchEndOffset:l}}_matchBracket(e,t){const i=e.lineNumber,s=this.textModel.tokenization.getLineTokens(i),o=this.textModel.getLineContent(i),r=s.findTokenIndexAtOffset(e.column-1);if(r<0)return null;const a=this.languageConfigurationService.getLanguageConfiguration(s.getLanguageId(r)).brackets;if(a&&!Fu(s.getStandardTokenType(r))){let{searchStartOffset:l,searchEndOffset:c}=this._establishBracketSearchOffsets(e,s,a,r),d=null;for(;;){const u=Oc.findNextBracketInRange(a.forwardRegex,i,o,l,c);if(!u)break;if(u.startColumn<=e.column&&e.column<=u.endColumn){const h=o.substring(u.startColumn-1,u.endColumn-1).toLowerCase(),f=this._matchFoundBracket(u,a.textIsBracket[h],a.textIsOpenBracket[h],t);if(f){if(f instanceof Nf)return null;d=f}}l=u.endColumn-1}if(d)return d}if(r>0&&s.getStartOffset(r)===e.column-1){const l=r-1,c=this.languageConfigurationService.getLanguageConfiguration(s.getLanguageId(l)).brackets;if(c&&!Fu(s.getStandardTokenType(l))){const{searchStartOffset:d,searchEndOffset:u}=this._establishBracketSearchOffsets(e,s,c,l),h=Oc.findPrevBracketInRange(c.reversedRegex,i,o,d,u);if(h&&h.startColumn<=e.column&&e.column<=h.endColumn){const f=o.substring(h.startColumn-1,h.endColumn-1).toLowerCase(),g=this._matchFoundBracket(h,c.textIsBracket[f],c.textIsOpenBracket[f],t);if(g)return g instanceof Nf?null:g}}}return null}_matchFoundBracket(e,t,i,s){if(!t)return null;const o=i?this._findMatchingBracketDown(t,e.getEndPosition(),s):this._findMatchingBracketUp(t,e.getStartPosition(),s);return o?o instanceof Nf?o:[e,o]:null}_findMatchingBracketUp(e,t,i){const s=e.languageId,o=e.reversedRegex;let r=-1,a=0;const l=(c,d,u,h)=>{for(;;){if(i&&++a%100===0&&!i())return Nf.INSTANCE;const f=Oc.findPrevBracketInRange(o,c,d,u,h);if(!f)break;const g=d.substring(f.startColumn-1,f.endColumn-1).toLowerCase();if(e.isOpen(g)?r++:e.isClose(g)&&r--,r===0)return f;h=f.startColumn-1}return null};for(let c=t.lineNumber;c>=1;c--){const d=this.textModel.tokenization.getLineTokens(c),u=d.getCount(),h=this.textModel.getLineContent(c);let f=u-1,g=h.length,p=h.length;c===t.lineNumber&&(f=d.findTokenIndexAtOffset(t.column-1),g=t.column-1,p=t.column-1);let _=!0;for(;f>=0;f--){const b=d.getLanguageId(f)===s&&!Fu(d.getStandardTokenType(f));if(b)_?g=d.getStartOffset(f):(g=d.getStartOffset(f),p=d.getEndOffset(f));else if(_&&g!==p){const w=l(c,h,g,p);if(w)return w}_=b}if(_&&g!==p){const b=l(c,h,g,p);if(b)return b}}return null}_findMatchingBracketDown(e,t,i){const s=e.languageId,o=e.forwardRegex;let r=1,a=0;const l=(d,u,h,f)=>{for(;;){if(i&&++a%100===0&&!i())return Nf.INSTANCE;const g=Oc.findNextBracketInRange(o,d,u,h,f);if(!g)break;const p=u.substring(g.startColumn-1,g.endColumn-1).toLowerCase();if(e.isOpen(p)?r++:e.isClose(p)&&r--,r===0)return g;h=g.endColumn-1}return null},c=this.textModel.getLineCount();for(let d=t.lineNumber;d<=c;d++){const u=this.textModel.tokenization.getLineTokens(d),h=u.getCount(),f=this.textModel.getLineContent(d);let g=0,p=0,_=0;d===t.lineNumber&&(g=u.findTokenIndexAtOffset(t.column-1),p=t.column-1,_=t.column-1);let b=!0;for(;g<h;g++){const w=u.getLanguageId(g)===s&&!Fu(u.getStandardTokenType(g));if(w)b||(p=u.getStartOffset(g)),_=u.getEndOffset(g);else if(b&&p!==_){const y=l(d,f,p,_);if(y)return y}b=w}if(b&&p!==_){const w=l(d,f,p,_);if(w)return w}}return null}findPrevBracket(e){var t;const i=this.textModel.validatePosition(e);if(this.canBuildAST)return this.bracketsRequested=!0,this.updateBracketPairsTree(),((t=this.bracketPairsTree.value)===null||t===void 0?void 0:t.object.getFirstBracketBefore(i))||null;let s=null,o=null,r=null;for(let a=i.lineNumber;a>=1;a--){const l=this.textModel.tokenization.getLineTokens(a),c=l.getCount(),d=this.textModel.getLineContent(a);let u=c-1,h=d.length,f=d.length;if(a===i.lineNumber){u=l.findTokenIndexAtOffset(i.column-1),h=i.column-1,f=i.column-1;const p=l.getLanguageId(u);s!==p&&(s=p,o=this.languageConfigurationService.getLanguageConfiguration(s).brackets,r=this.languageConfigurationService.getLanguageConfiguration(s).bracketsNew)}let g=!0;for(;u>=0;u--){const p=l.getLanguageId(u);if(s!==p){if(o&&r&&g&&h!==f){const b=Oc.findPrevBracketInRange(o.reversedRegex,a,d,h,f);if(b)return this._toFoundBracket(r,b);g=!1}s=p,o=this.languageConfigurationService.getLanguageConfiguration(s).brackets,r=this.languageConfigurationService.getLanguageConfiguration(s).bracketsNew}const _=!!o&&!Fu(l.getStandardTokenType(u));if(_)g?h=l.getStartOffset(u):(h=l.getStartOffset(u),f=l.getEndOffset(u));else if(r&&o&&g&&h!==f){const b=Oc.findPrevBracketInRange(o.reversedRegex,a,d,h,f);if(b)return this._toFoundBracket(r,b)}g=_}if(r&&o&&g&&h!==f){const p=Oc.findPrevBracketInRange(o.reversedRegex,a,d,h,f);if(p)return this._toFoundBracket(r,p)}}return null}findNextBracket(e){var t;const i=this.textModel.validatePosition(e);if(this.canBuildAST)return this.bracketsRequested=!0,this.updateBracketPairsTree(),((t=this.bracketPairsTree.value)===null||t===void 0?void 0:t.object.getFirstBracketAfter(i))||null;const s=this.textModel.getLineCount();let o=null,r=null,a=null;for(let l=i.lineNumber;l<=s;l++){const c=this.textModel.tokenization.getLineTokens(l),d=c.getCount(),u=this.textModel.getLineContent(l);let h=0,f=0,g=0;if(l===i.lineNumber){h=c.findTokenIndexAtOffset(i.column-1),f=i.column-1,g=i.column-1;const _=c.getLanguageId(h);o!==_&&(o=_,r=this.languageConfigurationService.getLanguageConfiguration(o).brackets,a=this.languageConfigurationService.getLanguageConfiguration(o).bracketsNew)}let p=!0;for(;h<d;h++){const _=c.getLanguageId(h);if(o!==_){if(a&&r&&p&&f!==g){const w=Oc.findNextBracketInRange(r.forwardRegex,l,u,f,g);if(w)return this._toFoundBracket(a,w);p=!1}o=_,r=this.languageConfigurationService.getLanguageConfiguration(o).brackets,a=this.languageConfigurationService.getLanguageConfiguration(o).bracketsNew}const b=!!r&&!Fu(c.getStandardTokenType(h));if(b)p||(f=c.getStartOffset(h)),g=c.getEndOffset(h);else if(a&&r&&p&&f!==g){const w=Oc.findNextBracketInRange(r.forwardRegex,l,u,f,g);if(w)return this._toFoundBracket(a,w)}p=b}if(a&&r&&p&&f!==g){const _=Oc.findNextBracketInRange(r.forwardRegex,l,u,f,g);if(_)return this._toFoundBracket(a,_)}}return null}findEnclosingBrackets(e,t){const i=this.textModel.validatePosition(e);if(this.canBuildAST){const f=A.fromPositions(i),g=this.getBracketPairsInRange(A.fromPositions(i,i)).findLast(p=>p.closingBracketRange!==void 0&&p.range.strictContainsRange(f));return g?[g.openingBracketRange,g.closingBracketRange]:null}const s=h5(t),o=this.textModel.getLineCount(),r=new Map;let a=[];const l=(f,g)=>{if(!r.has(f)){const p=[];for(let _=0,b=g?g.brackets.length:0;_<b;_++)p[_]=0;r.set(f,p)}a=r.get(f)};let c=0;const d=(f,g,p,_,b)=>{for(;;){if(s&&++c%100===0&&!s())return Nf.INSTANCE;const w=Oc.findNextBracketInRange(f.forwardRegex,g,p,_,b);if(!w)break;const y=p.substring(w.startColumn-1,w.endColumn-1).toLowerCase(),S=f.textIsBracket[y];if(S&&(S.isOpen(y)?a[S.index]++:S.isClose(y)&&a[S.index]--,a[S.index]===-1))return this._matchFoundBracket(w,S,!1,s);_=w.endColumn-1}return null};let u=null,h=null;for(let f=i.lineNumber;f<=o;f++){const g=this.textModel.tokenization.getLineTokens(f),p=g.getCount(),_=this.textModel.getLineContent(f);let b=0,w=0,y=0;if(f===i.lineNumber){b=g.findTokenIndexAtOffset(i.column-1),w=i.column-1,y=i.column-1;const x=g.getLanguageId(b);u!==x&&(u=x,h=this.languageConfigurationService.getLanguageConfiguration(u).brackets,l(u,h))}let S=!0;for(;b<p;b++){const x=g.getLanguageId(b);if(u!==x){if(h&&S&&w!==y){const D=d(h,f,_,w,y);if(D)return UE(D);S=!1}u=x,h=this.languageConfigurationService.getLanguageConfiguration(u).brackets,l(u,h)}const k=!!h&&!Fu(g.getStandardTokenType(b));if(k)S||(w=g.getStartOffset(b)),y=g.getEndOffset(b);else if(h&&S&&w!==y){const D=d(h,f,_,w,y);if(D)return UE(D)}S=k}if(h&&S&&w!==y){const x=d(h,f,_,w,y);if(x)return UE(x)}}return null}_toFoundBracket(e,t){if(!t)return null;let i=this.textModel.getValueInRange(t);i=i.toLowerCase();const s=e.getBracketInfo(i);return s?{range:t,bracketInfo:s}:null}}function tBe(n,e){return{object:n,dispose:()=>e==null?void 0:e.dispose()}}function h5(n){if(typeof n>\"u\")return()=>!0;{const e=Date.now();return()=>Date.now()-e<=n}}class Nf{constructor(){this._searchCanceledBrand=void 0}}Nf.INSTANCE=new Nf;function UE(n){return n instanceof Nf?null:n}class iBe extends ne{constructor(e){super(),this.textModel=e,this.colorProvider=new Pce,this.onDidChangeEmitter=new X,this.onDidChange=this.onDidChangeEmitter.event,this.colorizationOptions=e.getOptions().bracketPairColorizationOptions,this._register(e.bracketPairs.onDidChange(t=>{this.onDidChangeEmitter.fire()}))}handleDidChangeOptions(e){this.colorizationOptions=this.textModel.getOptions().bracketPairColorizationOptions}getDecorationsInRange(e,t,i,s){return s?[]:t===void 0?[]:this.colorizationOptions.enabled?this.textModel.bracketPairs.getBracketsInRange(e,!0).map(r=>({id:`bracket${r.range.toString()}-${r.nestingLevel}`,options:{description:\"BracketPairColorization\",inlineClassName:this.colorProvider.getInlineClassName(r,this.colorizationOptions.independentColorPoolPerBracketType)},ownerId:0,range:r.range})).toArray():[]}getAllDecorations(e,t){return e===void 0?[]:this.colorizationOptions.enabled?this.getDecorationsInRange(new A(1,1,this.textModel.getLineCount(),1),e,t):[]}}class Pce{constructor(){this.unexpectedClosingBracketClassName=\"unexpected-closing-bracket\"}getInlineClassName(e,t){return e.isInvalid?this.unexpectedClosingBracketClassName:this.getInlineClassNameOfLevel(t?e.nestingLevelOfEqualBracketType:e.nestingLevel)}getInlineClassNameOfLevel(e){return`bracket-highlighting-${e%30}`}}mc((n,e)=>{const t=[lce,cce,dce,uce,hce,fce],i=new Pce;e.addRule(`.monaco-editor .${i.unexpectedClosingBracketClassName} { color: ${n.getColor(Y3e)}; }`);const s=t.map(o=>n.getColor(o)).filter(o=>!!o).filter(o=>!o.isTransparent());for(let o=0;o<30;o++){const r=s[o%s.length];e.addRule(`.monaco-editor .${i.getInlineClassNameOfLevel(o)} { color: ${r}; }`)}});function jE(n){return n.replace(/\\n/g,\"\\\\n\").replace(/\\r/g,\"\\\\r\")}class Eo{get oldLength(){return this.oldText.length}get oldEnd(){return this.oldPosition+this.oldText.length}get newLength(){return this.newText.length}get newEnd(){return this.newPosition+this.newText.length}constructor(e,t,i,s){this.oldPosition=e,this.oldText=t,this.newPosition=i,this.newText=s}toString(){return this.oldText.length===0?`(insert@${this.oldPosition} \"${jE(this.newText)}\")`:this.newText.length===0?`(delete@${this.oldPosition} \"${jE(this.oldText)}\")`:`(replace@${this.oldPosition} \"${jE(this.oldText)}\" with \"${jE(this.newText)}\")`}static _writeStringSize(e){return 4+2*e.length}static _writeString(e,t,i){const s=t.length;Id(e,s,i),i+=4;for(let o=0;o<s;o++)MPe(e,t.charCodeAt(o),i),i+=2;return i}static _readString(e,t){const i=Dd(e,t);return t+=4,OPe(e,t,i)}writeSize(){return 8+Eo._writeStringSize(this.oldText)+Eo._writeStringSize(this.newText)}write(e,t){return Id(e,this.oldPosition,t),t+=4,Id(e,this.newPosition,t),t+=4,t=Eo._writeString(e,this.oldText,t),t=Eo._writeString(e,this.newText,t),t}static read(e,t,i){const s=Dd(e,t);t+=4;const o=Dd(e,t);t+=4;const r=Eo._readString(e,t);t+=Eo._writeStringSize(r);const a=Eo._readString(e,t);return t+=Eo._writeStringSize(a),i.push(new Eo(s,r,o,a)),t}}function nBe(n,e){return n===null||n.length===0?e:new Vu(n,e).compress()}class Vu{constructor(e,t){this._prevEdits=e,this._currEdits=t,this._result=[],this._resultLen=0,this._prevLen=this._prevEdits.length,this._prevDeltaOffset=0,this._currLen=this._currEdits.length,this._currDeltaOffset=0}compress(){let e=0,t=0,i=this._getPrev(e),s=this._getCurr(t);for(;e<this._prevLen||t<this._currLen;){if(i===null){this._acceptCurr(s),s=this._getCurr(++t);continue}if(s===null){this._acceptPrev(i),i=this._getPrev(++e);continue}if(s.oldEnd<=i.newPosition){this._acceptCurr(s),s=this._getCurr(++t);continue}if(i.newEnd<=s.oldPosition){this._acceptPrev(i),i=this._getPrev(++e);continue}if(s.oldPosition<i.newPosition){const[c,d]=Vu._splitCurr(s,i.newPosition-s.oldPosition);this._acceptCurr(c),s=d;continue}if(i.newPosition<s.oldPosition){const[c,d]=Vu._splitPrev(i,s.oldPosition-i.newPosition);this._acceptPrev(c),i=d;continue}let a,l;if(s.oldEnd===i.newEnd)a=i,l=s,i=this._getPrev(++e),s=this._getCurr(++t);else if(s.oldEnd<i.newEnd){const[c,d]=Vu._splitPrev(i,s.oldLength);a=c,l=s,i=d,s=this._getCurr(++t)}else{const[c,d]=Vu._splitCurr(s,i.newLength);a=i,l=c,i=this._getPrev(++e),s=d}this._result[this._resultLen++]=new Eo(a.oldPosition,a.oldText,l.newPosition,l.newText),this._prevDeltaOffset+=a.newLength-a.oldLength,this._currDeltaOffset+=l.newLength-l.oldLength}const o=Vu._merge(this._result);return Vu._removeNoOps(o)}_acceptCurr(e){this._result[this._resultLen++]=Vu._rebaseCurr(this._prevDeltaOffset,e),this._currDeltaOffset+=e.newLength-e.oldLength}_getCurr(e){return e<this._currLen?this._currEdits[e]:null}_acceptPrev(e){this._result[this._resultLen++]=Vu._rebasePrev(this._currDeltaOffset,e),this._prevDeltaOffset+=e.newLength-e.oldLength}_getPrev(e){return e<this._prevLen?this._prevEdits[e]:null}static _rebaseCurr(e,t){return new Eo(t.oldPosition-e,t.oldText,t.newPosition,t.newText)}static _rebasePrev(e,t){return new Eo(t.oldPosition,t.oldText,t.newPosition+e,t.newText)}static _splitPrev(e,t){const i=e.newText.substr(0,t),s=e.newText.substr(t);return[new Eo(e.oldPosition,e.oldText,e.newPosition,i),new Eo(e.oldEnd,\"\",e.newPosition+t,s)]}static _splitCurr(e,t){const i=e.oldText.substr(0,t),s=e.oldText.substr(t);return[new Eo(e.oldPosition,i,e.newPosition,e.newText),new Eo(e.oldPosition+t,s,e.newEnd,\"\")]}static _merge(e){if(e.length===0)return e;const t=[];let i=0,s=e[0];for(let o=1;o<e.length;o++){const r=e[o];s.oldEnd===r.oldPosition?s=new Eo(s.oldPosition,s.oldText+r.oldText,s.newPosition,s.newText+r.newText):(t[i++]=s,s=r)}return t[i++]=s,t}static _removeNoOps(e){if(e.length===0)return e;const t=[];let i=0;for(let s=0;s<e.length;s++){const o=e[s];o.oldText!==o.newText&&(t[i++]=o)}return t}}function dp(n){return n===47||n===92}function Oce(n){return n.replace(/[\\\\/]/g,ks.sep)}function sBe(n){return n.indexOf(\"/\")===-1&&(n=Oce(n)),/^[a-zA-Z]:(\\/|$)/.test(n)&&(n=\"/\"+n),n}function dQ(n,e=ks.sep){if(!n)return\"\";const t=n.length,i=n.charCodeAt(0);if(dp(i)){if(dp(n.charCodeAt(1))&&!dp(n.charCodeAt(2))){let o=3;const r=o;for(;o<t&&!dp(n.charCodeAt(o));o++);if(r!==o&&!dp(n.charCodeAt(o+1))){for(o+=1;o<t;o++)if(dp(n.charCodeAt(o)))return n.slice(0,o+1).replace(/[\\\\/]/g,e)}}return e}else if(Fce(i)&&n.charCodeAt(1)===58)return dp(n.charCodeAt(2))?n.slice(0,2)+e:n.slice(0,2);let s=n.indexOf(\"://\");if(s!==-1){for(s+=3;s<t;s++)if(dp(n.charCodeAt(s)))return n.slice(0,s+1)}return\"\"}function UB(n,e,t,i=jd){if(n===e)return!0;if(!n||!e||e.length>n.length)return!1;if(t){if(!jV(n,e))return!1;if(e.length===n.length)return!0;let o=e.length;return e.charAt(e.length-1)===i&&o--,n.charAt(o)===i}return e.charAt(e.length-1)!==i&&(e+=i),n.indexOf(e)===0}function Fce(n){return n>=65&&n<=90||n>=97&&n<=122}function oBe(n,e=Mo){return e?Fce(n.charCodeAt(0))&&n.charCodeAt(1)===58:!1}function Bu(n){return T2(n,!0)}class rBe{constructor(e){this._ignorePathCasing=e}compare(e,t,i=!1){return e===t?0:dL(this.getComparisonKey(e,i),this.getComparisonKey(t,i))}isEqual(e,t,i=!1){return e===t?!0:!e||!t?!1:this.getComparisonKey(e,i)===this.getComparisonKey(t,i)}getComparisonKey(e,t=!1){return e.with({path:this._ignorePathCasing(e)?e.path.toLowerCase():void 0,fragment:t?null:void 0}).toString()}isEqualOrParent(e,t,i=!1){if(e.scheme===t.scheme){if(e.scheme===Tt.file)return UB(Bu(e),Bu(t),this._ignorePathCasing(e))&&e.query===t.query&&(i||e.fragment===t.fragment);if(hQ(e.authority,t.authority))return UB(e.path,t.path,this._ignorePathCasing(e),\"/\")&&e.query===t.query&&(i||e.fragment===t.fragment)}return!1}joinPath(e,...t){return pt.joinPath(e,...t)}basenameOrAuthority(e){return dc(e)||e.authority}basename(e){return ks.basename(e.path)}extname(e){return ks.extname(e.path)}dirname(e){if(e.path.length===0)return e;let t;return e.scheme===Tt.file?t=pt.file(cae(Bu(e))).path:(t=ks.dirname(e.path),e.authority&&t.length&&t.charCodeAt(0)!==47&&(console.error(`dirname(\"${e.toString})) resulted in a relative path`),t=\"/\")),e.with({path:t})}normalizePath(e){if(!e.path.length)return e;let t;return e.scheme===Tt.file?t=pt.file(lae(Bu(e))).path:t=ks.normalize(e.path),e.with({path:t})}relativePath(e,t){if(e.scheme!==t.scheme||!hQ(e.authority,t.authority))return;if(e.scheme===Tt.file){const o=UAe(Bu(e),Bu(t));return Mo?Oce(o):o}let i=e.path||\"/\";const s=t.path||\"/\";if(this._ignorePathCasing(e)){let o=0;for(const r=Math.min(i.length,s.length);o<r&&!(i.charCodeAt(o)!==s.charCodeAt(o)&&i.charAt(o).toLowerCase()!==s.charAt(o).toLowerCase());o++);i=s.substr(0,o)+i.substr(o)}return ks.relative(i,s)}resolvePath(e,t){if(e.scheme===Tt.file){const i=pt.file($Ae(Bu(e),t));return e.with({authority:i.authority,path:i.path})}return t=sBe(t),e.with({path:ks.resolve(e.path,t)})}isAbsolutePath(e){return!!e.path&&e.path[0]===\"/\"}isEqualAuthority(e,t){return e===t||e!==void 0&&t!==void 0&&f1(e,t)}hasTrailingPathSeparator(e,t=jd){if(e.scheme===Tt.file){const i=Bu(e);return i.length>dQ(i).length&&i[i.length-1]===t}else{const i=e.path;return i.length>1&&i.charCodeAt(i.length-1)===47&&!/^[a-zA-Z]:(\\/$|\\\\$)/.test(e.fsPath)}}removeTrailingPathSeparator(e,t=jd){return fQ(e,t)?e.with({path:e.path.substr(0,e.path.length-1)}):e}addTrailingPathSeparator(e,t=jd){let i=!1;if(e.scheme===Tt.file){const s=Bu(e);i=s!==void 0&&s.length===dQ(s).length&&s[s.length-1]===t}else{t=\"/\";const s=e.path;i=s.length===1&&s.charCodeAt(s.length-1)===47}return!i&&!fQ(e,t)?e.with({path:e.path+\"/\"}):e}}const Tn=new rBe(()=>!1),Kz=Tn.isEqual.bind(Tn);Tn.isEqualOrParent.bind(Tn);Tn.getComparisonKey.bind(Tn);const aBe=Tn.basenameOrAuthority.bind(Tn),dc=Tn.basename.bind(Tn),lBe=Tn.extname.bind(Tn),VM=Tn.dirname.bind(Tn),cBe=Tn.joinPath.bind(Tn),dBe=Tn.normalizePath.bind(Tn),uBe=Tn.relativePath.bind(Tn),uQ=Tn.resolvePath.bind(Tn);Tn.isAbsolutePath.bind(Tn);const hQ=Tn.isEqualAuthority.bind(Tn),fQ=Tn.hasTrailingPathSeparator.bind(Tn);Tn.removeTrailingPathSeparator.bind(Tn);Tn.addTrailingPathSeparator.bind(Tn);var Vm;(function(n){n.META_DATA_LABEL=\"label\",n.META_DATA_DESCRIPTION=\"description\",n.META_DATA_SIZE=\"size\",n.META_DATA_MIME=\"mime\";function e(t){const i=new Map;t.path.substring(t.path.indexOf(\";\")+1,t.path.lastIndexOf(\";\")).split(\";\").forEach(r=>{const[a,l]=r.split(\":\");a&&l&&i.set(a,l)});const o=t.path.substring(0,t.path.indexOf(\";\"));return o&&i.set(n.META_DATA_MIME,o),i}n.parseMetaData=e})(Vm||(Vm={}));function Bb(n){return n.toString()}class no{static create(e,t){const i=e.getAlternativeVersionId(),s=jB(e);return new no(i,i,s,s,t,t,[])}constructor(e,t,i,s,o,r,a){this.beforeVersionId=e,this.afterVersionId=t,this.beforeEOL=i,this.afterEOL=s,this.beforeCursorState=o,this.afterCursorState=r,this.changes=a}append(e,t,i,s,o){t.length>0&&(this.changes=nBe(this.changes,t)),this.afterEOL=i,this.afterVersionId=s,this.afterCursorState=o}static _writeSelectionsSize(e){return 4+4*4*(e?e.length:0)}static _writeSelections(e,t,i){if(Id(e,t?t.length:0,i),i+=4,t)for(const s of t)Id(e,s.selectionStartLineNumber,i),i+=4,Id(e,s.selectionStartColumn,i),i+=4,Id(e,s.positionLineNumber,i),i+=4,Id(e,s.positionColumn,i),i+=4;return i}static _readSelections(e,t,i){const s=Dd(e,t);t+=4;for(let o=0;o<s;o++){const r=Dd(e,t);t+=4;const a=Dd(e,t);t+=4;const l=Dd(e,t);t+=4;const c=Dd(e,t);t+=4,i.push(new it(r,a,l,c))}return t}serialize(){let e=10+no._writeSelectionsSize(this.beforeCursorState)+no._writeSelectionsSize(this.afterCursorState)+4;for(const s of this.changes)e+=s.writeSize();const t=new Uint8Array(e);let i=0;Id(t,this.beforeVersionId,i),i+=4,Id(t,this.afterVersionId,i),i+=4,PY(t,this.beforeEOL,i),i+=1,PY(t,this.afterEOL,i),i+=1,i=no._writeSelections(t,this.beforeCursorState,i),i=no._writeSelections(t,this.afterCursorState,i),Id(t,this.changes.length,i),i+=4;for(const s of this.changes)i=s.write(t,i);return t.buffer}static deserialize(e){const t=new Uint8Array(e);let i=0;const s=Dd(t,i);i+=4;const o=Dd(t,i);i+=4;const r=MY(t,i);i+=1;const a=MY(t,i);i+=1;const l=[];i=no._readSelections(t,i,l);const c=[];i=no._readSelections(t,i,c);const d=Dd(t,i);i+=4;const u=[];for(let h=0;h<d;h++)i=Eo.read(t,i,u);return new no(s,o,r,a,l,c,u)}}class Bce{get type(){return 0}get resource(){return pt.isUri(this.model)?this.model:this.model.uri}constructor(e,t,i,s){this.label=e,this.code=t,this.model=i,this._data=no.create(i,s)}toString(){return(this._data instanceof no?this._data:no.deserialize(this._data)).changes.map(t=>t.toString()).join(\", \")}matchesResource(e){return(pt.isUri(this.model)?this.model:this.model.uri).toString()===e.toString()}setModel(e){this.model=e}canAppend(e){return this.model===e&&this._data instanceof no}append(e,t,i,s,o){this._data instanceof no&&this._data.append(e,t,i,s,o)}close(){this._data instanceof no&&(this._data=this._data.serialize())}open(){this._data instanceof no||(this._data=no.deserialize(this._data))}undo(){if(pt.isUri(this.model))throw new Error(\"Invalid SingleModelEditStackElement\");this._data instanceof no&&(this._data=this._data.serialize());const e=no.deserialize(this._data);this.model._applyUndo(e.changes,e.beforeEOL,e.beforeVersionId,e.beforeCursorState)}redo(){if(pt.isUri(this.model))throw new Error(\"Invalid SingleModelEditStackElement\");this._data instanceof no&&(this._data=this._data.serialize());const e=no.deserialize(this._data);this.model._applyRedo(e.changes,e.afterEOL,e.afterVersionId,e.afterCursorState)}heapSize(){return this._data instanceof no&&(this._data=this._data.serialize()),this._data.byteLength+168}}class hBe{get resources(){return this._editStackElementsArr.map(e=>e.resource)}constructor(e,t,i){this.label=e,this.code=t,this.type=1,this._isOpen=!0,this._editStackElementsArr=i.slice(0),this._editStackElementsMap=new Map;for(const s of this._editStackElementsArr){const o=Bb(s.resource);this._editStackElementsMap.set(o,s)}this._delegate=null}prepareUndoRedo(){if(this._delegate)return this._delegate.prepareUndoRedo(this)}matchesResource(e){const t=Bb(e);return this._editStackElementsMap.has(t)}setModel(e){const t=Bb(pt.isUri(e)?e:e.uri);this._editStackElementsMap.has(t)&&this._editStackElementsMap.get(t).setModel(e)}canAppend(e){if(!this._isOpen)return!1;const t=Bb(e.uri);return this._editStackElementsMap.has(t)?this._editStackElementsMap.get(t).canAppend(e):!1}append(e,t,i,s,o){const r=Bb(e.uri);this._editStackElementsMap.get(r).append(e,t,i,s,o)}close(){this._isOpen=!1}open(){}undo(){this._isOpen=!1;for(const e of this._editStackElementsArr)e.undo()}redo(){for(const e of this._editStackElementsArr)e.redo()}heapSize(e){const t=Bb(e);return this._editStackElementsMap.has(t)?this._editStackElementsMap.get(t).heapSize():0}split(){return this._editStackElementsArr}toString(){const e=[];for(const t of this._editStackElementsArr)e.push(`${dc(t.resource)}: ${t}`);return`{${e.join(\", \")}}`}}function jB(n){return n.getEOL()===`\n`?0:1}function Af(n){return n?n instanceof Bce||n instanceof hBe:!1}class qz{constructor(e,t){this._model=e,this._undoRedoService=t}pushStackElement(){const e=this._undoRedoService.getLastElement(this._model.uri);Af(e)&&e.close()}popStackElement(){const e=this._undoRedoService.getLastElement(this._model.uri);Af(e)&&e.open()}clear(){this._undoRedoService.removeElements(this._model.uri)}_getOrCreateEditStackElement(e,t){const i=this._undoRedoService.getLastElement(this._model.uri);if(Af(i)&&i.canAppend(this._model))return i;const s=new Bce(v(\"edit\",\"Typing\"),\"undoredo.textBufferEdit\",this._model,e);return this._undoRedoService.pushElement(s,t),s}pushEOL(e){const t=this._getOrCreateEditStackElement(null,void 0);this._model.setEOL(e),t.append(this._model,[],jB(this._model),this._model.getAlternativeVersionId(),null)}pushEditOperation(e,t,i,s){const o=this._getOrCreateEditStackElement(e,s),r=this._model.applyEdits(t,!0),a=qz._computeCursorState(i,r),l=r.map((c,d)=>({index:d,textChange:c.textChange}));return l.sort((c,d)=>c.textChange.oldPosition===d.textChange.oldPosition?c.index-d.index:c.textChange.oldPosition-d.textChange.oldPosition),o.append(this._model,l.map(c=>c.textChange),jB(this._model),this._model.getAlternativeVersionId(),a),a}static _computeCursorState(e,t){try{return e?e(t):null}catch(i){return Mt(i),null}}}class fBe{constructor(){this.spacesDiff=0,this.looksLikeAlignment=!1}}function gBe(n,e,t,i,s){s.spacesDiff=0,s.looksLikeAlignment=!1;let o;for(o=0;o<e&&o<i;o++){const h=n.charCodeAt(o),f=t.charCodeAt(o);if(h!==f)break}let r=0,a=0;for(let h=o;h<e;h++)n.charCodeAt(h)===32?r++:a++;let l=0,c=0;for(let h=o;h<i;h++)t.charCodeAt(h)===32?l++:c++;if(r>0&&a>0||l>0&&c>0)return;const d=Math.abs(a-c),u=Math.abs(r-l);if(d===0){s.spacesDiff=u,u>0&&0<=l-1&&l-1<n.length&&l<t.length&&t.charCodeAt(l)!==32&&n.charCodeAt(l-1)===32&&n.charCodeAt(n.length-1)===44&&(s.looksLikeAlignment=!0);return}if(u%d===0){s.spacesDiff=u/d;return}}function gQ(n,e,t){const i=Math.min(n.getLineCount(),1e4);let s=0,o=0,r=\"\",a=0;const l=[2,4,6,8,3,5,7],c=8,d=[0,0,0,0,0,0,0,0,0],u=new fBe;for(let g=1;g<=i;g++){const p=n.getLineLength(g),_=n.getLineContent(g),b=p<=65536;let w=!1,y=0,S=0,x=0;for(let D=0,I=p;D<I;D++){const N=b?_.charCodeAt(D):n.getLineCharCode(g,D);if(N===9)x++;else if(N===32)S++;else{w=!0,y=D;break}}if(!w||(x>0?s++:S>1&&o++,gBe(r,a,_,y,u),u.looksLikeAlignment&&!(t&&e===u.spacesDiff)))continue;const k=u.spacesDiff;k<=c&&d[k]++,r=_,a=y}let h=t;s!==o&&(h=s<o);let f=e;if(h){let g=h?0:.1*i;l.forEach(p=>{const _=d[p];_>g&&(g=_,f=p)}),f===4&&d[4]>0&&d[2]>0&&d[2]>=d[4]/2&&(f=2)}return{insertSpaces:h,tabSize:f}}function Yr(n){return(n.metadata&1)>>>0}function xn(n,e){n.metadata=n.metadata&254|e<<0}function Ro(n){return(n.metadata&2)>>>1===1}function wn(n,e){n.metadata=n.metadata&253|(e?1:0)<<1}function Wce(n){return(n.metadata&4)>>>2===1}function pQ(n,e){n.metadata=n.metadata&251|(e?1:0)<<2}function Hce(n){return(n.metadata&64)>>>6===1}function mQ(n,e){n.metadata=n.metadata&191|(e?1:0)<<6}function pBe(n){return(n.metadata&24)>>>3}function _Q(n,e){n.metadata=n.metadata&231|e<<3}function mBe(n){return(n.metadata&32)>>>5===1}function vQ(n,e){n.metadata=n.metadata&223|(e?1:0)<<5}class Vce{constructor(e,t,i){this.metadata=0,this.parent=this,this.left=this,this.right=this,xn(this,1),this.start=t,this.end=i,this.delta=0,this.maxEnd=i,this.id=e,this.ownerId=0,this.options=null,pQ(this,!1),mQ(this,!1),_Q(this,1),vQ(this,!1),this.cachedVersionId=0,this.cachedAbsoluteStart=t,this.cachedAbsoluteEnd=i,this.range=null,wn(this,!1)}reset(e,t,i,s){this.start=t,this.end=i,this.maxEnd=i,this.cachedVersionId=e,this.cachedAbsoluteStart=t,this.cachedAbsoluteEnd=i,this.range=s}setOptions(e){this.options=e;const t=this.options.className;pQ(this,t===\"squiggly-error\"||t===\"squiggly-warning\"||t===\"squiggly-info\"),mQ(this,this.options.glyphMarginClassName!==null),_Q(this,this.options.stickiness),vQ(this,this.options.collapseOnReplaceEdit)}setCachedOffsets(e,t,i){this.cachedVersionId!==i&&(this.range=null),this.cachedVersionId=i,this.cachedAbsoluteStart=e,this.cachedAbsoluteEnd=t}detach(){this.parent=null,this.left=null,this.right=null}}const Yt=new Vce(null,0,0);Yt.parent=Yt;Yt.left=Yt;Yt.right=Yt;xn(Yt,0);class f5{constructor(){this.root=Yt,this.requestNormalizeDelta=!1}intervalSearch(e,t,i,s,o,r){return this.root===Yt?[]:xBe(this,e,t,i,s,o,r)}search(e,t,i,s){return this.root===Yt?[]:SBe(this,e,t,i,s)}collectNodesFromOwner(e){return wBe(this,e)}collectNodesPostOrder(){return yBe(this)}insert(e){bQ(this,e),this._normalizeDeltaIfNecessary()}delete(e){CQ(this,e),this._normalizeDeltaIfNecessary()}resolveNode(e,t){const i=e;let s=0;for(;e!==this.root;)e===e.parent.right&&(s+=e.parent.delta),e=e.parent;const o=i.start+s,r=i.end+s;i.setCachedOffsets(o,r,t)}acceptReplace(e,t,i,s){const o=bBe(this,e,e+t);for(let r=0,a=o.length;r<a;r++){const l=o[r];CQ(this,l)}this._normalizeDeltaIfNecessary(),CBe(this,e,e+t,i),this._normalizeDeltaIfNecessary();for(let r=0,a=o.length;r<a;r++){const l=o[r];l.start=l.cachedAbsoluteStart,l.end=l.cachedAbsoluteEnd,vBe(l,e,e+t,i,s),l.maxEnd=l.end,bQ(this,l)}this._normalizeDeltaIfNecessary()}_normalizeDeltaIfNecessary(){this.requestNormalizeDelta&&(this.requestNormalizeDelta=!1,_Be(this))}}function _Be(n){let e=n.root,t=0;for(;e!==Yt;){if(e.left!==Yt&&!Ro(e.left)){e=e.left;continue}if(e.right!==Yt&&!Ro(e.right)){t+=e.delta,e=e.right;continue}e.start=t+e.start,e.end=t+e.end,e.delta=0,zm(e),wn(e,!0),wn(e.left,!1),wn(e.right,!1),e===e.parent.right&&(t-=e.parent.delta),e=e.parent}wn(n.root,!1)}function Wb(n,e,t,i){return n<t?!0:n>t||i===1?!1:i===2?!0:e}function vBe(n,e,t,i,s){const o=pBe(n),r=o===0||o===2,a=o===1||o===2,l=t-e,c=i,d=Math.min(l,c),u=n.start;let h=!1;const f=n.end;let g=!1;e<=u&&f<=t&&mBe(n)&&(n.start=e,h=!0,n.end=e,g=!0);{const _=s?1:l>0?2:0;!h&&Wb(u,r,e,_)&&(h=!0),!g&&Wb(f,a,e,_)&&(g=!0)}if(d>0&&!s){const _=l>c?2:0;!h&&Wb(u,r,e+d,_)&&(h=!0),!g&&Wb(f,a,e+d,_)&&(g=!0)}{const _=s?1:0;!h&&Wb(u,r,t,_)&&(n.start=e+c,h=!0),!g&&Wb(f,a,t,_)&&(n.end=e+c,g=!0)}const p=c-l;h||(n.start=Math.max(0,u+p)),g||(n.end=Math.max(0,f+p)),n.start>n.end&&(n.end=n.start)}function bBe(n,e,t){let i=n.root,s=0,o=0,r=0,a=0;const l=[];let c=0;for(;i!==Yt;){if(Ro(i)){wn(i.left,!1),wn(i.right,!1),i===i.parent.right&&(s-=i.parent.delta),i=i.parent;continue}if(!Ro(i.left)){if(o=s+i.maxEnd,o<e){wn(i,!0);continue}if(i.left!==Yt){i=i.left;continue}}if(r=s+i.start,r>t){wn(i,!0);continue}if(a=s+i.end,a>=e&&(i.setCachedOffsets(r,a,0),l[c++]=i),wn(i,!0),i.right!==Yt&&!Ro(i.right)){s+=i.delta,i=i.right;continue}}return wn(n.root,!1),l}function CBe(n,e,t,i){let s=n.root,o=0,r=0,a=0;const l=i-(t-e);for(;s!==Yt;){if(Ro(s)){wn(s.left,!1),wn(s.right,!1),s===s.parent.right&&(o-=s.parent.delta),zm(s),s=s.parent;continue}if(!Ro(s.left)){if(r=o+s.maxEnd,r<e){wn(s,!0);continue}if(s.left!==Yt){s=s.left;continue}}if(a=o+s.start,a>t){s.start+=l,s.end+=l,s.delta+=l,(s.delta<-1073741824||s.delta>1073741824)&&(n.requestNormalizeDelta=!0),wn(s,!0);continue}if(wn(s,!0),s.right!==Yt&&!Ro(s.right)){o+=s.delta,s=s.right;continue}}wn(n.root,!1)}function wBe(n,e){let t=n.root;const i=[];let s=0;for(;t!==Yt;){if(Ro(t)){wn(t.left,!1),wn(t.right,!1),t=t.parent;continue}if(t.left!==Yt&&!Ro(t.left)){t=t.left;continue}if(t.ownerId===e&&(i[s++]=t),wn(t,!0),t.right!==Yt&&!Ro(t.right)){t=t.right;continue}}return wn(n.root,!1),i}function yBe(n){let e=n.root;const t=[];let i=0;for(;e!==Yt;){if(Ro(e)){wn(e.left,!1),wn(e.right,!1),e=e.parent;continue}if(e.left!==Yt&&!Ro(e.left)){e=e.left;continue}if(e.right!==Yt&&!Ro(e.right)){e=e.right;continue}t[i++]=e,wn(e,!0)}return wn(n.root,!1),t}function SBe(n,e,t,i,s){let o=n.root,r=0,a=0,l=0;const c=[];let d=0;for(;o!==Yt;){if(Ro(o)){wn(o.left,!1),wn(o.right,!1),o===o.parent.right&&(r-=o.parent.delta),o=o.parent;continue}if(o.left!==Yt&&!Ro(o.left)){o=o.left;continue}a=r+o.start,l=r+o.end,o.setCachedOffsets(a,l,i);let u=!0;if(e&&o.ownerId&&o.ownerId!==e&&(u=!1),t&&Wce(o)&&(u=!1),s&&!Hce(o)&&(u=!1),u&&(c[d++]=o),wn(o,!0),o.right!==Yt&&!Ro(o.right)){r+=o.delta,o=o.right;continue}}return wn(n.root,!1),c}function xBe(n,e,t,i,s,o,r){let a=n.root,l=0,c=0,d=0,u=0;const h=[];let f=0;for(;a!==Yt;){if(Ro(a)){wn(a.left,!1),wn(a.right,!1),a===a.parent.right&&(l-=a.parent.delta),a=a.parent;continue}if(!Ro(a.left)){if(c=l+a.maxEnd,c<e){wn(a,!0);continue}if(a.left!==Yt){a=a.left;continue}}if(d=l+a.start,d>t){wn(a,!0);continue}if(u=l+a.end,u>=e){a.setCachedOffsets(d,u,o);let g=!0;i&&a.ownerId&&a.ownerId!==i&&(g=!1),s&&Wce(a)&&(g=!1),r&&!Hce(a)&&(g=!1),g&&(h[f++]=a)}if(wn(a,!0),a.right!==Yt&&!Ro(a.right)){l+=a.delta,a=a.right;continue}}return wn(n.root,!1),h}function bQ(n,e){if(n.root===Yt)return e.parent=Yt,e.left=Yt,e.right=Yt,xn(e,0),n.root=e,n.root;LBe(n,e),bp(e.parent);let t=e;for(;t!==n.root&&Yr(t.parent)===1;)if(t.parent===t.parent.parent.left){const i=t.parent.parent.right;Yr(i)===1?(xn(t.parent,0),xn(i,0),xn(t.parent.parent,1),t=t.parent.parent):(t===t.parent.right&&(t=t.parent,_x(n,t)),xn(t.parent,0),xn(t.parent.parent,1),vx(n,t.parent.parent))}else{const i=t.parent.parent.left;Yr(i)===1?(xn(t.parent,0),xn(i,0),xn(t.parent.parent,1),t=t.parent.parent):(t===t.parent.left&&(t=t.parent,vx(n,t)),xn(t.parent,0),xn(t.parent.parent,1),_x(n,t.parent.parent))}return xn(n.root,0),e}function LBe(n,e){let t=0,i=n.root;const s=e.start,o=e.end;for(;;)if(DBe(s,o,i.start+t,i.end+t)<0)if(i.left===Yt){e.start-=t,e.end-=t,e.maxEnd-=t,i.left=e;break}else i=i.left;else if(i.right===Yt){e.start-=t+i.delta,e.end-=t+i.delta,e.maxEnd-=t+i.delta,i.right=e;break}else t+=i.delta,i=i.right;e.parent=i,e.left=Yt,e.right=Yt,xn(e,1)}function CQ(n,e){let t,i;if(e.left===Yt?(t=e.right,i=e,t.delta+=e.delta,(t.delta<-1073741824||t.delta>1073741824)&&(n.requestNormalizeDelta=!0),t.start+=e.delta,t.end+=e.delta):e.right===Yt?(t=e.left,i=e):(i=kBe(e.right),t=i.right,t.start+=i.delta,t.end+=i.delta,t.delta+=i.delta,(t.delta<-1073741824||t.delta>1073741824)&&(n.requestNormalizeDelta=!0),i.start+=e.delta,i.end+=e.delta,i.delta=e.delta,(i.delta<-1073741824||i.delta>1073741824)&&(n.requestNormalizeDelta=!0)),i===n.root){n.root=t,xn(t,0),e.detach(),g5(),zm(t),n.root.parent=Yt;return}const s=Yr(i)===1;if(i===i.parent.left?i.parent.left=t:i.parent.right=t,i===e?t.parent=i.parent:(i.parent===e?t.parent=i:t.parent=i.parent,i.left=e.left,i.right=e.right,i.parent=e.parent,xn(i,Yr(e)),e===n.root?n.root=i:e===e.parent.left?e.parent.left=i:e.parent.right=i,i.left!==Yt&&(i.left.parent=i),i.right!==Yt&&(i.right.parent=i)),e.detach(),s){bp(t.parent),i!==e&&(bp(i),bp(i.parent)),g5();return}bp(t),bp(t.parent),i!==e&&(bp(i),bp(i.parent));let o;for(;t!==n.root&&Yr(t)===0;)t===t.parent.left?(o=t.parent.right,Yr(o)===1&&(xn(o,0),xn(t.parent,1),_x(n,t.parent),o=t.parent.right),Yr(o.left)===0&&Yr(o.right)===0?(xn(o,1),t=t.parent):(Yr(o.right)===0&&(xn(o.left,0),xn(o,1),vx(n,o),o=t.parent.right),xn(o,Yr(t.parent)),xn(t.parent,0),xn(o.right,0),_x(n,t.parent),t=n.root)):(o=t.parent.left,Yr(o)===1&&(xn(o,0),xn(t.parent,1),vx(n,t.parent),o=t.parent.left),Yr(o.left)===0&&Yr(o.right)===0?(xn(o,1),t=t.parent):(Yr(o.left)===0&&(xn(o.right,0),xn(o,1),_x(n,o),o=t.parent.left),xn(o,Yr(t.parent)),xn(t.parent,0),xn(o.left,0),vx(n,t.parent),t=n.root));xn(t,0),g5()}function kBe(n){for(;n.left!==Yt;)n=n.left;return n}function g5(){Yt.parent=Yt,Yt.delta=0,Yt.start=0,Yt.end=0}function _x(n,e){const t=e.right;t.delta+=e.delta,(t.delta<-1073741824||t.delta>1073741824)&&(n.requestNormalizeDelta=!0),t.start+=e.delta,t.end+=e.delta,e.right=t.left,t.left!==Yt&&(t.left.parent=e),t.parent=e.parent,e.parent===Yt?n.root=t:e===e.parent.left?e.parent.left=t:e.parent.right=t,t.left=e,e.parent=t,zm(e),zm(t)}function vx(n,e){const t=e.left;e.delta-=t.delta,(e.delta<-1073741824||e.delta>1073741824)&&(n.requestNormalizeDelta=!0),e.start-=t.delta,e.end-=t.delta,e.left=t.right,t.right!==Yt&&(t.right.parent=e),t.parent=e.parent,e.parent===Yt?n.root=t:e===e.parent.right?e.parent.right=t:e.parent.left=t,t.right=e,e.parent=t,zm(e),zm(t)}function zce(n){let e=n.end;if(n.left!==Yt){const t=n.left.maxEnd;t>e&&(e=t)}if(n.right!==Yt){const t=n.right.maxEnd+n.delta;t>e&&(e=t)}return e}function zm(n){n.maxEnd=zce(n)}function bp(n){for(;n!==Yt;){const e=zce(n);if(n.maxEnd===e)return;n.maxEnd=e,n=n.parent}}function DBe(n,e,t,i){return n===t?e-i:n-t}class KB{constructor(e,t){this.piece=e,this.color=t,this.size_left=0,this.lf_left=0,this.parent=this,this.left=this,this.right=this}next(){if(this.right!==Ht)return Gz(this.right);let e=this;for(;e.parent!==Ht&&e.parent.left!==e;)e=e.parent;return e.parent===Ht?Ht:e.parent}prev(){if(this.left!==Ht)return $ce(this.left);let e=this;for(;e.parent!==Ht&&e.parent.right!==e;)e=e.parent;return e.parent===Ht?Ht:e.parent}detach(){this.parent=null,this.left=null,this.right=null}}const Ht=new KB(null,0);Ht.parent=Ht;Ht.left=Ht;Ht.right=Ht;Ht.color=0;function Gz(n){for(;n.left!==Ht;)n=n.left;return n}function $ce(n){for(;n.right!==Ht;)n=n.right;return n}function Zz(n){return n===Ht?0:n.size_left+n.piece.length+Zz(n.right)}function Yz(n){return n===Ht?0:n.lf_left+n.piece.lineFeedCnt+Yz(n.right)}function p5(){Ht.parent=Ht}function bx(n,e){const t=e.right;t.size_left+=e.size_left+(e.piece?e.piece.length:0),t.lf_left+=e.lf_left+(e.piece?e.piece.lineFeedCnt:0),e.right=t.left,t.left!==Ht&&(t.left.parent=e),t.parent=e.parent,e.parent===Ht?n.root=t:e.parent.left===e?e.parent.left=t:e.parent.right=t,t.left=e,e.parent=t}function Cx(n,e){const t=e.left;e.left=t.right,t.right!==Ht&&(t.right.parent=e),t.parent=e.parent,e.size_left-=t.size_left+(t.piece?t.piece.length:0),e.lf_left-=t.lf_left+(t.piece?t.piece.lineFeedCnt:0),e.parent===Ht?n.root=t:e===e.parent.right?e.parent.right=t:e.parent.left=t,t.right=e,e.parent=t}function KE(n,e){let t,i;if(e.left===Ht?(i=e,t=i.right):e.right===Ht?(i=e,t=i.left):(i=Gz(e.right),t=i.right),i===n.root){n.root=t,t.color=0,e.detach(),p5(),n.root.parent=Ht;return}const s=i.color===1;if(i===i.parent.left?i.parent.left=t:i.parent.right=t,i===e?(t.parent=i.parent,ES(n,t)):(i.parent===e?t.parent=i:t.parent=i.parent,ES(n,t),i.left=e.left,i.right=e.right,i.parent=e.parent,i.color=e.color,e===n.root?n.root=i:e===e.parent.left?e.parent.left=i:e.parent.right=i,i.left!==Ht&&(i.left.parent=i),i.right!==Ht&&(i.right.parent=i),i.size_left=e.size_left,i.lf_left=e.lf_left,ES(n,i)),e.detach(),t.parent.left===t){const r=Zz(t),a=Yz(t);if(r!==t.parent.size_left||a!==t.parent.lf_left){const l=r-t.parent.size_left,c=a-t.parent.lf_left;t.parent.size_left=r,t.parent.lf_left=a,Sf(n,t.parent,l,c)}}if(ES(n,t.parent),s){p5();return}let o;for(;t!==n.root&&t.color===0;)t===t.parent.left?(o=t.parent.right,o.color===1&&(o.color=0,t.parent.color=1,bx(n,t.parent),o=t.parent.right),o.left.color===0&&o.right.color===0?(o.color=1,t=t.parent):(o.right.color===0&&(o.left.color=0,o.color=1,Cx(n,o),o=t.parent.right),o.color=t.parent.color,t.parent.color=0,o.right.color=0,bx(n,t.parent),t=n.root)):(o=t.parent.left,o.color===1&&(o.color=0,t.parent.color=1,Cx(n,t.parent),o=t.parent.left),o.left.color===0&&o.right.color===0?(o.color=1,t=t.parent):(o.left.color===0&&(o.right.color=0,o.color=1,bx(n,o),o=t.parent.left),o.color=t.parent.color,t.parent.color=0,o.left.color=0,Cx(n,t.parent),t=n.root));t.color=0,p5()}function wQ(n,e){for(ES(n,e);e!==n.root&&e.parent.color===1;)if(e.parent===e.parent.parent.left){const t=e.parent.parent.right;t.color===1?(e.parent.color=0,t.color=0,e.parent.parent.color=1,e=e.parent.parent):(e===e.parent.right&&(e=e.parent,bx(n,e)),e.parent.color=0,e.parent.parent.color=1,Cx(n,e.parent.parent))}else{const t=e.parent.parent.left;t.color===1?(e.parent.color=0,t.color=0,e.parent.parent.color=1,e=e.parent.parent):(e===e.parent.left&&(e=e.parent,Cx(n,e)),e.parent.color=0,e.parent.parent.color=1,bx(n,e.parent.parent))}n.root.color=0}function Sf(n,e,t,i){for(;e!==n.root&&e!==Ht;)e.parent.left===e&&(e.parent.size_left+=t,e.parent.lf_left+=i),e=e.parent}function ES(n,e){let t=0,i=0;if(e!==n.root){for(;e!==n.root&&e===e.parent.right;)e=e.parent;if(e!==n.root)for(e=e.parent,t=Zz(e.left)-e.size_left,i=Yz(e.left)-e.lf_left,e.size_left+=t,e.lf_left+=i;e!==n.root&&(t!==0||i!==0);)e.parent.left===e&&(e.parent.size_left+=t,e.parent.lf_left+=i),e=e.parent}}const uf=65535;function Uce(n){let e;return n[n.length-1]<65536?e=new Uint16Array(n.length):e=new Uint32Array(n.length),e.set(n,0),e}class IBe{constructor(e,t,i,s,o){this.lineStarts=e,this.cr=t,this.lf=i,this.crlf=s,this.isBasicASCII=o}}function Lf(n,e=!0){const t=[0];let i=1;for(let s=0,o=n.length;s<o;s++){const r=n.charCodeAt(s);r===13?s+1<o&&n.charCodeAt(s+1)===10?(t[i++]=s+2,s++):t[i++]=s+1:r===10&&(t[i++]=s+1)}return e?Uce(t):t}function EBe(n,e){n.length=0,n[0]=0;let t=1,i=0,s=0,o=0,r=!0;for(let l=0,c=e.length;l<c;l++){const d=e.charCodeAt(l);d===13?l+1<c&&e.charCodeAt(l+1)===10?(o++,n[t++]=l+2,l++):(i++,n[t++]=l+1):d===10?(s++,n[t++]=l+1):r&&d!==9&&(d<32||d>126)&&(r=!1)}const a=new IBe(Uce(n),i,s,o,r);return n.length=0,a}class va{constructor(e,t,i,s,o){this.bufferIndex=e,this.start=t,this.end=i,this.lineFeedCnt=s,this.length=o}}class vv{constructor(e,t){this.buffer=e,this.lineStarts=t}}class TBe{constructor(e,t){this._pieces=[],this._tree=e,this._BOM=t,this._index=0,e.root!==Ht&&e.iterate(e.root,i=>(i!==Ht&&this._pieces.push(i.piece),!0))}read(){return this._pieces.length===0?this._index===0?(this._index++,this._BOM):null:this._index>this._pieces.length-1?null:this._index===0?this._BOM+this._tree.getPieceContent(this._pieces[this._index++]):this._tree.getPieceContent(this._pieces[this._index++])}}class NBe{constructor(e){this._limit=e,this._cache=[]}get(e){for(let t=this._cache.length-1;t>=0;t--){const i=this._cache[t];if(i.nodeStartOffset<=e&&i.nodeStartOffset+i.node.piece.length>=e)return i}return null}get2(e){for(let t=this._cache.length-1;t>=0;t--){const i=this._cache[t];if(i.nodeStartLineNumber&&i.nodeStartLineNumber<e&&i.nodeStartLineNumber+i.node.piece.lineFeedCnt>=e)return i}return null}set(e){this._cache.length>=this._limit&&this._cache.shift(),this._cache.push(e)}validate(e){let t=!1;const i=this._cache;for(let s=0;s<i.length;s++){const o=i[s];if(o.node.parent===null||o.nodeStartOffset>=e){i[s]=null,t=!0;continue}}if(t){const s=[];for(const o of i)o!==null&&s.push(o);this._cache=s}}}class ABe{constructor(e,t,i){this.create(e,t,i)}create(e,t,i){this._buffers=[new vv(\"\",[0])],this._lastChangeBufferPos={line:0,column:0},this.root=Ht,this._lineCnt=1,this._length=0,this._EOL=t,this._EOLLength=t.length,this._EOLNormalized=i;let s=null;for(let o=0,r=e.length;o<r;o++)if(e[o].buffer.length>0){e[o].lineStarts||(e[o].lineStarts=Lf(e[o].buffer));const a=new va(o+1,{line:0,column:0},{line:e[o].lineStarts.length-1,column:e[o].buffer.length-e[o].lineStarts[e[o].lineStarts.length-1]},e[o].lineStarts.length-1,e[o].buffer.length);this._buffers.push(e[o]),s=this.rbInsertRight(s,a)}this._searchCache=new NBe(1),this._lastVisitedLine={lineNumber:0,value:\"\"},this.computeBufferMetadata()}normalizeEOL(e){const t=uf,i=t-Math.floor(t/3),s=i*2;let o=\"\",r=0;const a=[];if(this.iterate(this.root,l=>{const c=this.getNodeContent(l),d=c.length;if(r<=i||r+d<s)return o+=c,r+=d,!0;const u=o.replace(/\\r\\n|\\r|\\n/g,e);return a.push(new vv(u,Lf(u))),o=c,r=d,!0}),r>0){const l=o.replace(/\\r\\n|\\r|\\n/g,e);a.push(new vv(l,Lf(l)))}this.create(a,e,!0)}getEOL(){return this._EOL}setEOL(e){this._EOL=e,this._EOLLength=this._EOL.length,this.normalizeEOL(e)}createSnapshot(e){return new TBe(this,e)}getOffsetAt(e,t){let i=0,s=this.root;for(;s!==Ht;)if(s.left!==Ht&&s.lf_left+1>=e)s=s.left;else if(s.lf_left+s.piece.lineFeedCnt+1>=e){i+=s.size_left;const o=this.getAccumulatedValue(s,e-s.lf_left-2);return i+=o+t-1}else e-=s.lf_left+s.piece.lineFeedCnt,i+=s.size_left+s.piece.length,s=s.right;return i}getPositionAt(e){e=Math.floor(e),e=Math.max(0,e);let t=this.root,i=0;const s=e;for(;t!==Ht;)if(t.size_left!==0&&t.size_left>=e)t=t.left;else if(t.size_left+t.piece.length>=e){const o=this.getIndexOf(t,e-t.size_left);if(i+=t.lf_left+o.index,o.index===0){const r=this.getOffsetAt(i+1,1),a=s-r;return new ee(i+1,a+1)}return new ee(i+1,o.remainder+1)}else if(e-=t.size_left+t.piece.length,i+=t.lf_left+t.piece.lineFeedCnt,t.right===Ht){const o=this.getOffsetAt(i+1,1),r=s-e-o;return new ee(i+1,r+1)}else t=t.right;return new ee(1,1)}getValueInRange(e,t){if(e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn)return\"\";const i=this.nodeAt2(e.startLineNumber,e.startColumn),s=this.nodeAt2(e.endLineNumber,e.endColumn),o=this.getValueInRange2(i,s);return t?t!==this._EOL||!this._EOLNormalized?o.replace(/\\r\\n|\\r|\\n/g,t):t===this.getEOL()&&this._EOLNormalized?o:o.replace(/\\r\\n|\\r|\\n/g,t):o}getValueInRange2(e,t){if(e.node===t.node){const a=e.node,l=this._buffers[a.piece.bufferIndex].buffer,c=this.offsetInBuffer(a.piece.bufferIndex,a.piece.start);return l.substring(c+e.remainder,c+t.remainder)}let i=e.node;const s=this._buffers[i.piece.bufferIndex].buffer,o=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);let r=s.substring(o+e.remainder,o+i.piece.length);for(i=i.next();i!==Ht;){const a=this._buffers[i.piece.bufferIndex].buffer,l=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);if(i===t.node){r+=a.substring(l,l+t.remainder);break}else r+=a.substr(l,i.piece.length);i=i.next()}return r}getLinesContent(){const e=[];let t=0,i=\"\",s=!1;return this.iterate(this.root,o=>{if(o===Ht)return!0;const r=o.piece;let a=r.length;if(a===0)return!0;const l=this._buffers[r.bufferIndex].buffer,c=this._buffers[r.bufferIndex].lineStarts,d=r.start.line,u=r.end.line;let h=c[d]+r.start.column;if(s&&(l.charCodeAt(h)===10&&(h++,a--),e[t++]=i,i=\"\",s=!1,a===0))return!0;if(d===u)return!this._EOLNormalized&&l.charCodeAt(h+a-1)===13?(s=!0,i+=l.substr(h,a-1)):i+=l.substr(h,a),!0;i+=this._EOLNormalized?l.substring(h,Math.max(h,c[d+1]-this._EOLLength)):l.substring(h,c[d+1]).replace(/(\\r\\n|\\r|\\n)$/,\"\"),e[t++]=i;for(let f=d+1;f<u;f++)i=this._EOLNormalized?l.substring(c[f],c[f+1]-this._EOLLength):l.substring(c[f],c[f+1]).replace(/(\\r\\n|\\r|\\n)$/,\"\"),e[t++]=i;return!this._EOLNormalized&&l.charCodeAt(c[u]+r.end.column-1)===13?(s=!0,r.end.column===0?t--:i=l.substr(c[u],r.end.column-1)):i=l.substr(c[u],r.end.column),!0}),s&&(e[t++]=i,i=\"\"),e[t++]=i,e}getLength(){return this._length}getLineCount(){return this._lineCnt}getLineContent(e){return this._lastVisitedLine.lineNumber===e?this._lastVisitedLine.value:(this._lastVisitedLine.lineNumber=e,e===this._lineCnt?this._lastVisitedLine.value=this.getLineRawContent(e):this._EOLNormalized?this._lastVisitedLine.value=this.getLineRawContent(e,this._EOLLength):this._lastVisitedLine.value=this.getLineRawContent(e).replace(/(\\r\\n|\\r|\\n)$/,\"\"),this._lastVisitedLine.value)}_getCharCode(e){if(e.remainder===e.node.piece.length){const t=e.node.next();if(!t)return 0;const i=this._buffers[t.piece.bufferIndex],s=this.offsetInBuffer(t.piece.bufferIndex,t.piece.start);return i.buffer.charCodeAt(s)}else{const t=this._buffers[e.node.piece.bufferIndex],s=this.offsetInBuffer(e.node.piece.bufferIndex,e.node.piece.start)+e.remainder;return t.buffer.charCodeAt(s)}}getLineCharCode(e,t){const i=this.nodeAt2(e,t+1);return this._getCharCode(i)}getLineLength(e){if(e===this.getLineCount()){const t=this.getOffsetAt(e,1);return this.getLength()-t}return this.getOffsetAt(e+1,1)-this.getOffsetAt(e,1)-this._EOLLength}findMatchesInNode(e,t,i,s,o,r,a,l,c,d,u){const h=this._buffers[e.piece.bufferIndex],f=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start),g=this.offsetInBuffer(e.piece.bufferIndex,o),p=this.offsetInBuffer(e.piece.bufferIndex,r);let _;const b={line:0,column:0};let w,y;t._wordSeparators?(w=h.buffer.substring(g,p),y=S=>S+g,t.reset(0)):(w=h.buffer,y=S=>S,t.reset(g));do if(_=t.next(w),_){if(y(_.index)>=p)return d;this.positionInBuffer(e,y(_.index)-f,b);const S=this.getLineFeedCnt(e.piece.bufferIndex,o,b),x=b.line===o.line?b.column-o.column+s:b.column+1,k=x+_[0].length;if(u[d++]=uv(new A(i+S,x,i+S,k),_,l),y(_.index)+_[0].length>=p||d>=c)return d}while(_);return d}findMatchesLineByLine(e,t,i,s){const o=[];let r=0;const a=new m1(t.wordSeparators,t.regex);let l=this.nodeAt2(e.startLineNumber,e.startColumn);if(l===null)return[];const c=this.nodeAt2(e.endLineNumber,e.endColumn);if(c===null)return[];let d=this.positionInBuffer(l.node,l.remainder);const u=this.positionInBuffer(c.node,c.remainder);if(l.node===c.node)return this.findMatchesInNode(l.node,a,e.startLineNumber,e.startColumn,d,u,t,i,s,r,o),o;let h=e.startLineNumber,f=l.node;for(;f!==c.node;){const p=this.getLineFeedCnt(f.piece.bufferIndex,d,f.piece.end);if(p>=1){const b=this._buffers[f.piece.bufferIndex].lineStarts,w=this.offsetInBuffer(f.piece.bufferIndex,f.piece.start),y=b[d.line+p],S=h===e.startLineNumber?e.startColumn:1;if(r=this.findMatchesInNode(f,a,h,S,d,this.positionInBuffer(f,y-w),t,i,s,r,o),r>=s)return o;h+=p}const _=h===e.startLineNumber?e.startColumn-1:0;if(h===e.endLineNumber){const b=this.getLineContent(h).substring(_,e.endColumn-1);return r=this._findMatchesInLine(t,a,b,e.endLineNumber,_,r,o,i,s),o}if(r=this._findMatchesInLine(t,a,this.getLineContent(h).substr(_),h,_,r,o,i,s),r>=s)return o;h++,l=this.nodeAt2(h,1),f=l.node,d=this.positionInBuffer(l.node,l.remainder)}if(h===e.endLineNumber){const p=h===e.startLineNumber?e.startColumn-1:0,_=this.getLineContent(h).substring(p,e.endColumn-1);return r=this._findMatchesInLine(t,a,_,e.endLineNumber,p,r,o,i,s),o}const g=h===e.startLineNumber?e.startColumn:1;return r=this.findMatchesInNode(c.node,a,h,g,d,u,t,i,s,r,o),o}_findMatchesInLine(e,t,i,s,o,r,a,l,c){const d=e.wordSeparators;if(!l&&e.simpleSearch){const h=e.simpleSearch,f=h.length,g=i.length;let p=-f;for(;(p=i.indexOf(h,p+f))!==-1;)if((!d||hz(d,i,g,p,f))&&(a[r++]=new pL(new A(s,p+1+o,s,p+1+f+o),null),r>=c))return r;return r}let u;t.reset(0);do if(u=t.next(i),u&&(a[r++]=uv(new A(s,u.index+1+o,s,u.index+1+u[0].length+o),u,l),r>=c))return r;while(u);return r}insert(e,t,i=!1){if(this._EOLNormalized=this._EOLNormalized&&i,this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value=\"\",this.root!==Ht){const{node:s,remainder:o,nodeStartOffset:r}=this.nodeAt(e),a=s.piece,l=a.bufferIndex,c=this.positionInBuffer(s,o);if(s.piece.bufferIndex===0&&a.end.line===this._lastChangeBufferPos.line&&a.end.column===this._lastChangeBufferPos.column&&r+a.length===e&&t.length<uf){this.appendToNode(s,t),this.computeBufferMetadata();return}if(r===e)this.insertContentToNodeLeft(t,s),this._searchCache.validate(e);else if(r+s.piece.length>e){const d=[];let u=new va(a.bufferIndex,c,a.end,this.getLineFeedCnt(a.bufferIndex,c,a.end),this.offsetInBuffer(l,a.end)-this.offsetInBuffer(l,c));if(this.shouldCheckCRLF()&&this.endWithCR(t)&&this.nodeCharCodeAt(s,o)===10){const p={line:u.start.line+1,column:0};u=new va(u.bufferIndex,p,u.end,this.getLineFeedCnt(u.bufferIndex,p,u.end),u.length-1),t+=`\n`}if(this.shouldCheckCRLF()&&this.startWithLF(t))if(this.nodeCharCodeAt(s,o-1)===13){const p=this.positionInBuffer(s,o-1);this.deleteNodeTail(s,p),t=\"\\r\"+t,s.piece.length===0&&d.push(s)}else this.deleteNodeTail(s,c);else this.deleteNodeTail(s,c);const h=this.createNewPieces(t);u.length>0&&this.rbInsertRight(s,u);let f=s;for(let g=0;g<h.length;g++)f=this.rbInsertRight(f,h[g]);this.deleteNodes(d)}else this.insertContentToNodeRight(t,s)}else{const s=this.createNewPieces(t);let o=this.rbInsertLeft(null,s[0]);for(let r=1;r<s.length;r++)o=this.rbInsertRight(o,s[r])}this.computeBufferMetadata()}delete(e,t){if(this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value=\"\",t<=0||this.root===Ht)return;const i=this.nodeAt(e),s=this.nodeAt(e+t),o=i.node,r=s.node;if(o===r){const h=this.positionInBuffer(o,i.remainder),f=this.positionInBuffer(o,s.remainder);if(i.nodeStartOffset===e){if(t===o.piece.length){const g=o.next();KE(this,o),this.validateCRLFWithPrevNode(g),this.computeBufferMetadata();return}this.deleteNodeHead(o,f),this._searchCache.validate(e),this.validateCRLFWithPrevNode(o),this.computeBufferMetadata();return}if(i.nodeStartOffset+o.piece.length===e+t){this.deleteNodeTail(o,h),this.validateCRLFWithNextNode(o),this.computeBufferMetadata();return}this.shrinkNode(o,h,f),this.computeBufferMetadata();return}const a=[],l=this.positionInBuffer(o,i.remainder);this.deleteNodeTail(o,l),this._searchCache.validate(e),o.piece.length===0&&a.push(o);const c=this.positionInBuffer(r,s.remainder);this.deleteNodeHead(r,c),r.piece.length===0&&a.push(r);const d=o.next();for(let h=d;h!==Ht&&h!==r;h=h.next())a.push(h);const u=o.piece.length===0?o.prev():o;this.deleteNodes(a),this.validateCRLFWithNextNode(u),this.computeBufferMetadata()}insertContentToNodeLeft(e,t){const i=[];if(this.shouldCheckCRLF()&&this.endWithCR(e)&&this.startWithLF(t)){const r=t.piece,a={line:r.start.line+1,column:0},l=new va(r.bufferIndex,a,r.end,this.getLineFeedCnt(r.bufferIndex,a,r.end),r.length-1);t.piece=l,e+=`\n`,Sf(this,t,-1,-1),t.piece.length===0&&i.push(t)}const s=this.createNewPieces(e);let o=this.rbInsertLeft(t,s[s.length-1]);for(let r=s.length-2;r>=0;r--)o=this.rbInsertLeft(o,s[r]);this.validateCRLFWithPrevNode(o),this.deleteNodes(i)}insertContentToNodeRight(e,t){this.adjustCarriageReturnFromNext(e,t)&&(e+=`\n`);const i=this.createNewPieces(e),s=this.rbInsertRight(t,i[0]);let o=s;for(let r=1;r<i.length;r++)o=this.rbInsertRight(o,i[r]);this.validateCRLFWithPrevNode(s)}positionInBuffer(e,t,i){const s=e.piece,o=e.piece.bufferIndex,r=this._buffers[o].lineStarts,l=r[s.start.line]+s.start.column+t;let c=s.start.line,d=s.end.line,u=0,h=0,f=0;for(;c<=d&&(u=c+(d-c)/2|0,f=r[u],u!==d);)if(h=r[u+1],l<f)d=u-1;else if(l>=h)c=u+1;else break;return i?(i.line=u,i.column=l-f,null):{line:u,column:l-f}}getLineFeedCnt(e,t,i){if(i.column===0)return i.line-t.line;const s=this._buffers[e].lineStarts;if(i.line===s.length-1)return i.line-t.line;const o=s[i.line+1],r=s[i.line]+i.column;if(o>r+1)return i.line-t.line;const a=r-1;return this._buffers[e].buffer.charCodeAt(a)===13?i.line-t.line+1:i.line-t.line}offsetInBuffer(e,t){return this._buffers[e].lineStarts[t.line]+t.column}deleteNodes(e){for(let t=0;t<e.length;t++)KE(this,e[t])}createNewPieces(e){if(e.length>uf){const d=[];for(;e.length>uf;){const h=e.charCodeAt(uf-1);let f;h===13||h>=55296&&h<=56319?(f=e.substring(0,uf-1),e=e.substring(uf-1)):(f=e.substring(0,uf),e=e.substring(uf));const g=Lf(f);d.push(new va(this._buffers.length,{line:0,column:0},{line:g.length-1,column:f.length-g[g.length-1]},g.length-1,f.length)),this._buffers.push(new vv(f,g))}const u=Lf(e);return d.push(new va(this._buffers.length,{line:0,column:0},{line:u.length-1,column:e.length-u[u.length-1]},u.length-1,e.length)),this._buffers.push(new vv(e,u)),d}let t=this._buffers[0].buffer.length;const i=Lf(e,!1);let s=this._lastChangeBufferPos;if(this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-1]===t&&t!==0&&this.startWithLF(e)&&this.endWithCR(this._buffers[0].buffer)){this._lastChangeBufferPos={line:this._lastChangeBufferPos.line,column:this._lastChangeBufferPos.column+1},s=this._lastChangeBufferPos;for(let d=0;d<i.length;d++)i[d]+=t+1;this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(i.slice(1)),this._buffers[0].buffer+=\"_\"+e,t+=1}else{if(t!==0)for(let d=0;d<i.length;d++)i[d]+=t;this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(i.slice(1)),this._buffers[0].buffer+=e}const o=this._buffers[0].buffer.length,r=this._buffers[0].lineStarts.length-1,a=o-this._buffers[0].lineStarts[r],l={line:r,column:a},c=new va(0,s,l,this.getLineFeedCnt(0,s,l),o-t);return this._lastChangeBufferPos=l,[c]}getLineRawContent(e,t=0){let i=this.root,s=\"\";const o=this._searchCache.get2(e);if(o){i=o.node;const r=this.getAccumulatedValue(i,e-o.nodeStartLineNumber-1),a=this._buffers[i.piece.bufferIndex].buffer,l=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);if(o.nodeStartLineNumber+i.piece.lineFeedCnt===e)s=a.substring(l+r,l+i.piece.length);else{const c=this.getAccumulatedValue(i,e-o.nodeStartLineNumber);return a.substring(l+r,l+c-t)}}else{let r=0;const a=e;for(;i!==Ht;)if(i.left!==Ht&&i.lf_left>=e-1)i=i.left;else if(i.lf_left+i.piece.lineFeedCnt>e-1){const l=this.getAccumulatedValue(i,e-i.lf_left-2),c=this.getAccumulatedValue(i,e-i.lf_left-1),d=this._buffers[i.piece.bufferIndex].buffer,u=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);return r+=i.size_left,this._searchCache.set({node:i,nodeStartOffset:r,nodeStartLineNumber:a-(e-1-i.lf_left)}),d.substring(u+l,u+c-t)}else if(i.lf_left+i.piece.lineFeedCnt===e-1){const l=this.getAccumulatedValue(i,e-i.lf_left-2),c=this._buffers[i.piece.bufferIndex].buffer,d=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);s=c.substring(d+l,d+i.piece.length);break}else e-=i.lf_left+i.piece.lineFeedCnt,r+=i.size_left+i.piece.length,i=i.right}for(i=i.next();i!==Ht;){const r=this._buffers[i.piece.bufferIndex].buffer;if(i.piece.lineFeedCnt>0){const a=this.getAccumulatedValue(i,0),l=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);return s+=r.substring(l,l+a-t),s}else{const a=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);s+=r.substr(a,i.piece.length)}i=i.next()}return s}computeBufferMetadata(){let e=this.root,t=1,i=0;for(;e!==Ht;)t+=e.lf_left+e.piece.lineFeedCnt,i+=e.size_left+e.piece.length,e=e.right;this._lineCnt=t,this._length=i,this._searchCache.validate(this._length)}getIndexOf(e,t){const i=e.piece,s=this.positionInBuffer(e,t),o=s.line-i.start.line;if(this.offsetInBuffer(i.bufferIndex,i.end)-this.offsetInBuffer(i.bufferIndex,i.start)===t){const r=this.getLineFeedCnt(e.piece.bufferIndex,i.start,s);if(r!==o)return{index:r,remainder:0}}return{index:o,remainder:s.column}}getAccumulatedValue(e,t){if(t<0)return 0;const i=e.piece,s=this._buffers[i.bufferIndex].lineStarts,o=i.start.line+t+1;return o>i.end.line?s[i.end.line]+i.end.column-s[i.start.line]-i.start.column:s[o]-s[i.start.line]-i.start.column}deleteNodeTail(e,t){const i=e.piece,s=i.lineFeedCnt,o=this.offsetInBuffer(i.bufferIndex,i.end),r=t,a=this.offsetInBuffer(i.bufferIndex,r),l=this.getLineFeedCnt(i.bufferIndex,i.start,r),c=l-s,d=a-o,u=i.length+d;e.piece=new va(i.bufferIndex,i.start,r,l,u),Sf(this,e,d,c)}deleteNodeHead(e,t){const i=e.piece,s=i.lineFeedCnt,o=this.offsetInBuffer(i.bufferIndex,i.start),r=t,a=this.getLineFeedCnt(i.bufferIndex,r,i.end),l=this.offsetInBuffer(i.bufferIndex,r),c=a-s,d=o-l,u=i.length+d;e.piece=new va(i.bufferIndex,r,i.end,a,u),Sf(this,e,d,c)}shrinkNode(e,t,i){const s=e.piece,o=s.start,r=s.end,a=s.length,l=s.lineFeedCnt,c=t,d=this.getLineFeedCnt(s.bufferIndex,s.start,c),u=this.offsetInBuffer(s.bufferIndex,t)-this.offsetInBuffer(s.bufferIndex,o);e.piece=new va(s.bufferIndex,s.start,c,d,u),Sf(this,e,u-a,d-l);const h=new va(s.bufferIndex,i,r,this.getLineFeedCnt(s.bufferIndex,i,r),this.offsetInBuffer(s.bufferIndex,r)-this.offsetInBuffer(s.bufferIndex,i)),f=this.rbInsertRight(e,h);this.validateCRLFWithPrevNode(f)}appendToNode(e,t){this.adjustCarriageReturnFromNext(t,e)&&(t+=`\n`);const i=this.shouldCheckCRLF()&&this.startWithLF(t)&&this.endWithCR(e),s=this._buffers[0].buffer.length;this._buffers[0].buffer+=t;const o=Lf(t,!1);for(let f=0;f<o.length;f++)o[f]+=s;if(i){const f=this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-2];this._buffers[0].lineStarts.pop(),this._lastChangeBufferPos={line:this._lastChangeBufferPos.line-1,column:s-f}}this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(o.slice(1));const r=this._buffers[0].lineStarts.length-1,a=this._buffers[0].buffer.length-this._buffers[0].lineStarts[r],l={line:r,column:a},c=e.piece.length+t.length,d=e.piece.lineFeedCnt,u=this.getLineFeedCnt(0,e.piece.start,l),h=u-d;e.piece=new va(e.piece.bufferIndex,e.piece.start,l,u,c),this._lastChangeBufferPos=l,Sf(this,e,t.length,h)}nodeAt(e){let t=this.root;const i=this._searchCache.get(e);if(i)return{node:i.node,nodeStartOffset:i.nodeStartOffset,remainder:e-i.nodeStartOffset};let s=0;for(;t!==Ht;)if(t.size_left>e)t=t.left;else if(t.size_left+t.piece.length>=e){s+=t.size_left;const o={node:t,remainder:e-t.size_left,nodeStartOffset:s};return this._searchCache.set(o),o}else e-=t.size_left+t.piece.length,s+=t.size_left+t.piece.length,t=t.right;return null}nodeAt2(e,t){let i=this.root,s=0;for(;i!==Ht;)if(i.left!==Ht&&i.lf_left>=e-1)i=i.left;else if(i.lf_left+i.piece.lineFeedCnt>e-1){const o=this.getAccumulatedValue(i,e-i.lf_left-2),r=this.getAccumulatedValue(i,e-i.lf_left-1);return s+=i.size_left,{node:i,remainder:Math.min(o+t-1,r),nodeStartOffset:s}}else if(i.lf_left+i.piece.lineFeedCnt===e-1){const o=this.getAccumulatedValue(i,e-i.lf_left-2);if(o+t-1<=i.piece.length)return{node:i,remainder:o+t-1,nodeStartOffset:s};t-=i.piece.length-o;break}else e-=i.lf_left+i.piece.lineFeedCnt,s+=i.size_left+i.piece.length,i=i.right;for(i=i.next();i!==Ht;){if(i.piece.lineFeedCnt>0){const o=this.getAccumulatedValue(i,0),r=this.offsetOfNode(i);return{node:i,remainder:Math.min(t-1,o),nodeStartOffset:r}}else if(i.piece.length>=t-1){const o=this.offsetOfNode(i);return{node:i,remainder:t-1,nodeStartOffset:o}}else t-=i.piece.length;i=i.next()}return null}nodeCharCodeAt(e,t){if(e.piece.lineFeedCnt<1)return-1;const i=this._buffers[e.piece.bufferIndex],s=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start)+t;return i.buffer.charCodeAt(s)}offsetOfNode(e){if(!e)return 0;let t=e.size_left;for(;e!==this.root;)e.parent.right===e&&(t+=e.parent.size_left+e.parent.piece.length),e=e.parent;return t}shouldCheckCRLF(){return!(this._EOLNormalized&&this._EOL===`\n`)}startWithLF(e){if(typeof e==\"string\")return e.charCodeAt(0)===10;if(e===Ht||e.piece.lineFeedCnt===0)return!1;const t=e.piece,i=this._buffers[t.bufferIndex].lineStarts,s=t.start.line,o=i[s]+t.start.column;return s===i.length-1||i[s+1]>o+1?!1:this._buffers[t.bufferIndex].buffer.charCodeAt(o)===10}endWithCR(e){return typeof e==\"string\"?e.charCodeAt(e.length-1)===13:e===Ht||e.piece.lineFeedCnt===0?!1:this.nodeCharCodeAt(e,e.piece.length-1)===13}validateCRLFWithPrevNode(e){if(this.shouldCheckCRLF()&&this.startWithLF(e)){const t=e.prev();this.endWithCR(t)&&this.fixCRLF(t,e)}}validateCRLFWithNextNode(e){if(this.shouldCheckCRLF()&&this.endWithCR(e)){const t=e.next();this.startWithLF(t)&&this.fixCRLF(e,t)}}fixCRLF(e,t){const i=[],s=this._buffers[e.piece.bufferIndex].lineStarts;let o;e.piece.end.column===0?o={line:e.piece.end.line-1,column:s[e.piece.end.line]-s[e.piece.end.line-1]-1}:o={line:e.piece.end.line,column:e.piece.end.column-1};const r=e.piece.length-1,a=e.piece.lineFeedCnt-1;e.piece=new va(e.piece.bufferIndex,e.piece.start,o,a,r),Sf(this,e,-1,-1),e.piece.length===0&&i.push(e);const l={line:t.piece.start.line+1,column:0},c=t.piece.length-1,d=this.getLineFeedCnt(t.piece.bufferIndex,l,t.piece.end);t.piece=new va(t.piece.bufferIndex,l,t.piece.end,d,c),Sf(this,t,-1,-1),t.piece.length===0&&i.push(t);const u=this.createNewPieces(`\\r\n`);this.rbInsertRight(e,u[0]);for(let h=0;h<i.length;h++)KE(this,i[h])}adjustCarriageReturnFromNext(e,t){if(this.shouldCheckCRLF()&&this.endWithCR(e)){const i=t.next();if(this.startWithLF(i)){if(e+=`\n`,i.piece.length===1)KE(this,i);else{const s=i.piece,o={line:s.start.line+1,column:0},r=s.length-1,a=this.getLineFeedCnt(s.bufferIndex,o,s.end);i.piece=new va(s.bufferIndex,o,s.end,a,r),Sf(this,i,-1,-1)}return!0}}return!1}iterate(e,t){if(e===Ht)return t(Ht);const i=this.iterate(e.left,t);return i&&t(e)&&this.iterate(e.right,t)}getNodeContent(e){if(e===Ht)return\"\";const t=this._buffers[e.piece.bufferIndex],i=e.piece,s=this.offsetInBuffer(i.bufferIndex,i.start),o=this.offsetInBuffer(i.bufferIndex,i.end);return t.buffer.substring(s,o)}getPieceContent(e){const t=this._buffers[e.bufferIndex],i=this.offsetInBuffer(e.bufferIndex,e.start),s=this.offsetInBuffer(e.bufferIndex,e.end);return t.buffer.substring(i,s)}rbInsertRight(e,t){const i=new KB(t,1);if(i.left=Ht,i.right=Ht,i.parent=Ht,i.size_left=0,i.lf_left=0,this.root===Ht)this.root=i,i.color=0;else if(e.right===Ht)e.right=i,i.parent=e;else{const o=Gz(e.right);o.left=i,i.parent=o}return wQ(this,i),i}rbInsertLeft(e,t){const i=new KB(t,1);if(i.left=Ht,i.right=Ht,i.parent=Ht,i.size_left=0,i.lf_left=0,this.root===Ht)this.root=i,i.color=0;else if(e.left===Ht)e.left=i,i.parent=e;else{const s=$ce(e.left);s.right=i,i.parent=s}return wQ(this,i),i}}class rC extends ne{constructor(e,t,i,s,o,r,a){super(),this._onDidChangeContent=this._register(new X),this._BOM=t,this._mightContainNonBasicASCII=!r,this._mightContainRTL=s,this._mightContainUnusualLineTerminators=o,this._pieceTree=new ABe(e,i,a)}mightContainRTL(){return this._mightContainRTL}mightContainUnusualLineTerminators(){return this._mightContainUnusualLineTerminators}resetMightContainUnusualLineTerminators(){this._mightContainUnusualLineTerminators=!1}mightContainNonBasicASCII(){return this._mightContainNonBasicASCII}getBOM(){return this._BOM}getEOL(){return this._pieceTree.getEOL()}createSnapshot(e){return this._pieceTree.createSnapshot(e?this._BOM:\"\")}getOffsetAt(e,t){return this._pieceTree.getOffsetAt(e,t)}getPositionAt(e){return this._pieceTree.getPositionAt(e)}getRangeAt(e,t){const i=e+t,s=this.getPositionAt(e),o=this.getPositionAt(i);return new A(s.lineNumber,s.column,o.lineNumber,o.column)}getValueInRange(e,t=0){if(e.isEmpty())return\"\";const i=this._getEndOfLine(t);return this._pieceTree.getValueInRange(e,i)}getValueLengthInRange(e,t=0){if(e.isEmpty())return 0;if(e.startLineNumber===e.endLineNumber)return e.endColumn-e.startColumn;const i=this.getOffsetAt(e.startLineNumber,e.startColumn),s=this.getOffsetAt(e.endLineNumber,e.endColumn);let o=0;const r=this._getEndOfLine(t),a=this.getEOL();if(r.length!==a.length){const l=r.length-a.length,c=e.endLineNumber-e.startLineNumber;o=l*c}return s-i+o}getCharacterCountInRange(e,t=0){if(this._mightContainNonBasicASCII){let i=0;const s=e.startLineNumber,o=e.endLineNumber;for(let r=s;r<=o;r++){const a=this.getLineContent(r),l=r===s?e.startColumn-1:0,c=r===o?e.endColumn-1:a.length;for(let d=l;d<c;d++)Gs(a.charCodeAt(d))?(i=i+1,d=d+1):i=i+1}return i+=this._getEndOfLine(t).length*(o-s),i}return this.getValueLengthInRange(e,t)}getLength(){return this._pieceTree.getLength()}getLineCount(){return this._pieceTree.getLineCount()}getLinesContent(){return this._pieceTree.getLinesContent()}getLineContent(e){return this._pieceTree.getLineContent(e)}getLineCharCode(e,t){return this._pieceTree.getLineCharCode(e,t)}getLineLength(e){return this._pieceTree.getLineLength(e)}getLineFirstNonWhitespaceColumn(e){const t=fr(this.getLineContent(e));return t===-1?0:t+1}getLineLastNonWhitespaceColumn(e){const t=Kd(this.getLineContent(e));return t===-1?0:t+2}_getEndOfLine(e){switch(e){case 1:return`\n`;case 2:return`\\r\n`;case 0:return this.getEOL();default:throw new Error(\"Unknown EOL preference\")}}setEOL(e){this._pieceTree.setEOL(e)}applyEdits(e,t,i){let s=this._mightContainRTL,o=this._mightContainUnusualLineTerminators,r=this._mightContainNonBasicASCII,a=!0,l=[];for(let p=0;p<e.length;p++){const _=e[p];a&&_._isTracked&&(a=!1);const b=_.range;if(_.text){let k=!0;r||(k=!cD(_.text),r=k),!s&&k&&(s=TC(_.text)),!o&&k&&(o=yae(_.text))}let w=\"\",y=0,S=0,x=0;if(_.text){let k;[y,S,x,k]=Hm(_.text);const D=this.getEOL();k===0||k===(D===`\\r\n`?2:1)?w=_.text:w=_.text.replace(/\\r\\n|\\r|\\n/g,D)}l[p]={sortIndex:p,identifier:_.identifier||null,range:b,rangeOffset:this.getOffsetAt(b.startLineNumber,b.startColumn),rangeLength:this.getValueLengthInRange(b),text:w,eolCount:y,firstLineLength:S,lastLineLength:x,forceMoveMarkers:!!_.forceMoveMarkers,isAutoWhitespaceEdit:_.isAutoWhitespaceEdit||!1}}l.sort(rC._sortOpsAscending);let c=!1;for(let p=0,_=l.length-1;p<_;p++){const b=l[p].range.getEndPosition(),w=l[p+1].range.getStartPosition();if(w.isBeforeOrEqual(b)){if(w.isBefore(b))throw new Error(\"Overlapping ranges are not allowed!\");c=!0}}a&&(l=this._reduceOperations(l));const d=i||t?rC._getInverseEditRanges(l):[],u=[];if(t)for(let p=0;p<l.length;p++){const _=l[p],b=d[p];if(_.isAutoWhitespaceEdit&&_.range.isEmpty())for(let w=b.startLineNumber;w<=b.endLineNumber;w++){let y=\"\";w===b.startLineNumber&&(y=this.getLineContent(_.range.startLineNumber),fr(y)!==-1)||u.push({lineNumber:w,oldContent:y})}}let h=null;if(i){let p=0;h=[];for(let _=0;_<l.length;_++){const b=l[_],w=d[_],y=this.getValueInRange(b.range),S=b.rangeOffset+p;p+=b.text.length-y.length,h[_]={sortIndex:b.sortIndex,identifier:b.identifier,range:w,text:y,textChange:new Eo(b.rangeOffset,y,S,b.text)}}c||h.sort((_,b)=>_.sortIndex-b.sortIndex)}this._mightContainRTL=s,this._mightContainUnusualLineTerminators=o,this._mightContainNonBasicASCII=r;const f=this._doApplyEdits(l);let g=null;if(t&&u.length>0){u.sort((p,_)=>_.lineNumber-p.lineNumber),g=[];for(let p=0,_=u.length;p<_;p++){const b=u[p].lineNumber;if(p>0&&u[p-1].lineNumber===b)continue;const w=u[p].oldContent,y=this.getLineContent(b);y.length===0||y===w||fr(y)!==-1||g.push(b)}}return this._onDidChangeContent.fire(),new TOe(h,f,g)}_reduceOperations(e){return e.length<1e3?e:[this._toSingleEditOperation(e)]}_toSingleEditOperation(e){let t=!1;const i=e[0].range,s=e[e.length-1].range,o=new A(i.startLineNumber,i.startColumn,s.endLineNumber,s.endColumn);let r=i.startLineNumber,a=i.startColumn;const l=[];for(let f=0,g=e.length;f<g;f++){const p=e[f],_=p.range;t=t||p.forceMoveMarkers,l.push(this.getValueInRange(new A(r,a,_.startLineNumber,_.startColumn))),p.text.length>0&&l.push(p.text),r=_.endLineNumber,a=_.endColumn}const c=l.join(\"\"),[d,u,h]=Hm(c);return{sortIndex:0,identifier:e[0].identifier,range:o,rangeOffset:this.getOffsetAt(o.startLineNumber,o.startColumn),rangeLength:this.getValueLengthInRange(o,0),text:c,eolCount:d,firstLineLength:u,lastLineLength:h,forceMoveMarkers:t,isAutoWhitespaceEdit:!1}}_doApplyEdits(e){e.sort(rC._sortOpsDescending);const t=[];for(let i=0;i<e.length;i++){const s=e[i],o=s.range.startLineNumber,r=s.range.startColumn,a=s.range.endLineNumber,l=s.range.endColumn;if(o===a&&r===l&&s.text.length===0)continue;s.text?(this._pieceTree.delete(s.rangeOffset,s.rangeLength),this._pieceTree.insert(s.rangeOffset,s.text,!0)):this._pieceTree.delete(s.rangeOffset,s.rangeLength);const c=new A(o,r,a,l);t.push({range:c,rangeLength:s.rangeLength,text:s.text,rangeOffset:s.rangeOffset,forceMoveMarkers:s.forceMoveMarkers})}return t}findMatchesLineByLine(e,t,i,s){return this._pieceTree.findMatchesLineByLine(e,t,i,s)}static _getInverseEditRanges(e){const t=[];let i=0,s=0,o=null;for(let r=0,a=e.length;r<a;r++){const l=e[r];let c,d;o?o.range.endLineNumber===l.range.startLineNumber?(c=i,d=s+(l.range.startColumn-o.range.endColumn)):(c=i+(l.range.startLineNumber-o.range.endLineNumber),d=l.range.startColumn):(c=l.range.startLineNumber,d=l.range.startColumn);let u;if(l.text.length>0){const h=l.eolCount+1;h===1?u=new A(c,d,c,d+l.firstLineLength):u=new A(c,d,c+h-1,l.lastLineLength+1)}else u=new A(c,d,c,d);i=u.endLineNumber,s=u.endColumn,t.push(u),o=l}return t}static _sortOpsAscending(e,t){const i=A.compareRangesUsingEnds(e.range,t.range);return i===0?e.sortIndex-t.sortIndex:i}static _sortOpsDescending(e,t){const i=A.compareRangesUsingEnds(e.range,t.range);return i===0?t.sortIndex-e.sortIndex:-i}}class RBe{constructor(e,t,i,s,o,r,a,l,c){this._chunks=e,this._bom=t,this._cr=i,this._lf=s,this._crlf=o,this._containsRTL=r,this._containsUnusualLineTerminators=a,this._isBasicASCII=l,this._normalizeEOL=c}_getEOL(e){const t=this._cr+this._lf+this._crlf,i=this._cr+this._crlf;return t===0?e===1?`\n`:`\\r\n`:i>t/2?`\\r\n`:`\n`}create(e){const t=this._getEOL(e),i=this._chunks;if(this._normalizeEOL&&(t===`\\r\n`&&(this._cr>0||this._lf>0)||t===`\n`&&(this._cr>0||this._crlf>0)))for(let o=0,r=i.length;o<r;o++){const a=i[o].buffer.replace(/\\r\\n|\\r|\\n/g,t),l=Lf(a);i[o]=new vv(a,l)}const s=new rC(i,this._bom,t,this._containsRTL,this._containsUnusualLineTerminators,this._isBasicASCII,this._normalizeEOL);return{textBuffer:s,disposable:s}}}class jce{constructor(){this.chunks=[],this.BOM=\"\",this._hasPreviousChar=!1,this._previousChar=0,this._tmpLineStarts=[],this.cr=0,this.lf=0,this.crlf=0,this.containsRTL=!1,this.containsUnusualLineTerminators=!1,this.isBasicASCII=!0}acceptChunk(e){if(e.length===0)return;this.chunks.length===0&&YV(e)&&(this.BOM=wRe,e=e.substr(1));const t=e.charCodeAt(e.length-1);t===13||t>=55296&&t<=56319?(this._acceptChunk1(e.substr(0,e.length-1),!1),this._hasPreviousChar=!0,this._previousChar=t):(this._acceptChunk1(e,!1),this._hasPreviousChar=!1,this._previousChar=t)}_acceptChunk1(e,t){!t&&e.length===0||(this._hasPreviousChar?this._acceptChunk2(String.fromCharCode(this._previousChar)+e):this._acceptChunk2(e))}_acceptChunk2(e){const t=EBe(this._tmpLineStarts,e);this.chunks.push(new vv(e,t.lineStarts)),this.cr+=t.cr,this.lf+=t.lf,this.crlf+=t.crlf,t.isBasicASCII||(this.isBasicASCII=!1,this.containsRTL||(this.containsRTL=TC(e)),this.containsUnusualLineTerminators||(this.containsUnusualLineTerminators=yae(e)))}finish(e=!0){return this._finish(),new RBe(this.chunks,this.BOM,this.cr,this.lf,this.crlf,this.containsRTL,this.containsUnusualLineTerminators,this.isBasicASCII,e)}_finish(){if(this.chunks.length===0&&this._acceptChunk1(\"\",!0),this._hasPreviousChar){this._hasPreviousChar=!1;const e=this.chunks[this.chunks.length-1];e.buffer+=String.fromCharCode(this._previousChar);const t=Lf(e.buffer);e.lineStarts=t,this._previousChar===13&&this.cr++}}}class MBe{constructor(e){this._default=e,this._store=[]}get(e){return e<this._store.length?this._store[e]:this._default}set(e,t){for(;e>=this._store.length;)this._store[this._store.length]=this._default;this._store[e]=t}replace(e,t,i){if(e>=this._store.length)return;if(t===0){this.insert(e,i);return}else if(i===0){this.delete(e,t);return}const s=this._store.slice(0,e),o=this._store.slice(e+t),r=PBe(i,this._default);this._store=s.concat(r,o)}delete(e,t){t===0||e>=this._store.length||this._store.splice(e,t)}insert(e,t){if(t===0||e>=this._store.length)return;const i=[];for(let s=0;s<t;s++)i[s]=this._default;this._store=eM(this._store,e,i)}}function PBe(n,e){const t=[];for(let i=0;i<n;i++)t[i]=e;return t}class OBe{get startLineNumber(){return this._startLineNumber}get endLineNumber(){return this._startLineNumber+this._tokens.length-1}constructor(e,t){this._startLineNumber=e,this._tokens=t}getLineTokens(e){return this._tokens[e-this._startLineNumber]}appendLineTokens(e){this._tokens.push(e)}}class qB{constructor(){this._tokens=[]}add(e,t){if(this._tokens.length>0){const i=this._tokens[this._tokens.length-1];if(i.endLineNumber+1===e){i.appendLineTokens(t);return}}this._tokens.push(new OBe(e,[t]))}finalize(){return this._tokens}}class FBe{constructor(e,t){this.tokenizationSupport=t,this.initialState=this.tokenizationSupport.getInitialState(),this.store=new GB(e)}getStartState(e){return this.store.getStartState(e,this.initialState)}getFirstInvalidLine(){return this.store.getFirstInvalidLine(this.initialState)}}class BBe extends FBe{constructor(e,t,i,s){super(e,t),this._textModel=i,this._languageIdCodec=s}updateTokensUntilLine(e,t){const i=this._textModel.getLanguageId();for(;;){const s=this.getFirstInvalidLine();if(!s||s.lineNumber>t)break;const o=this._textModel.getLineContent(s.lineNumber),r=Hy(this._languageIdCodec,i,this.tokenizationSupport,o,!0,s.startState);e.add(s.lineNumber,r.tokens),this.store.setEndState(s.lineNumber,r.endState)}}getTokenTypeIfInsertingCharacter(e,t){const i=this.getStartState(e.lineNumber);if(!i)return 0;const s=this._textModel.getLanguageId(),o=this._textModel.getLineContent(e.lineNumber),r=o.substring(0,e.column-1)+t+o.substring(e.column-1),a=Hy(this._languageIdCodec,s,this.tokenizationSupport,r,!0,i),l=new Is(a.tokens,r,this._languageIdCodec);if(l.getCount()===0)return 0;const c=l.findTokenIndexAtOffset(e.column-1);return l.getStandardTokenType(c)}tokenizeLineWithEdit(e,t,i){const s=e.lineNumber,o=e.column,r=this.getStartState(s);if(!r)return null;const a=this._textModel.getLineContent(s),l=a.substring(0,o-1)+i+a.substring(o-1+t),c=this._textModel.getLanguageIdAtPosition(s,0),d=Hy(this._languageIdCodec,c,this.tokenizationSupport,l,!0,r);return new Is(d.tokens,l,this._languageIdCodec)}hasAccurateTokensForLine(e){const t=this.store.getFirstInvalidEndStateLineNumberOrMax();return e<t}isCheapToTokenize(e){const t=this.store.getFirstInvalidEndStateLineNumberOrMax();return e<t||e===t&&this._textModel.getLineLength(e)<2048}tokenizeHeuristically(e,t,i){if(i<=this.store.getFirstInvalidEndStateLineNumberOrMax())return{heuristicTokens:!1};if(t<=this.store.getFirstInvalidEndStateLineNumberOrMax())return this.updateTokensUntilLine(e,i),{heuristicTokens:!1};let s=this.guessStartState(t);const o=this._textModel.getLanguageId();for(let r=t;r<=i;r++){const a=this._textModel.getLineContent(r),l=Hy(this._languageIdCodec,o,this.tokenizationSupport,a,!0,s);e.add(r,l.tokens),s=l.endState}return{heuristicTokens:!0}}guessStartState(e){let t=this._textModel.getLineFirstNonWhitespaceColumn(e);const i=[];let s=null;for(let a=e-1;t>1&&a>=1;a--){const l=this._textModel.getLineFirstNonWhitespaceColumn(a);if(l!==0&&l<t&&(i.push(this._textModel.getLineContent(a)),t=l,s=this.getStartState(a),s))break}s||(s=this.tokenizationSupport.getInitialState()),i.reverse();const o=this._textModel.getLanguageId();let r=s;for(const a of i)r=Hy(this._languageIdCodec,o,this.tokenizationSupport,a,!1,r).endState;return r}}class GB{constructor(e){this.lineCount=e,this._tokenizationStateStore=new WBe,this._invalidEndStatesLineNumbers=new HBe,this._invalidEndStatesLineNumbers.addRange(new zt(1,e+1))}getEndState(e){return this._tokenizationStateStore.getEndState(e)}setEndState(e,t){if(!t)throw new Gi(\"Cannot set null/undefined state\");this._invalidEndStatesLineNumbers.delete(e);const i=this._tokenizationStateStore.setEndState(e,t);return i&&e<this.lineCount&&this._invalidEndStatesLineNumbers.addRange(new zt(e+1,e+2)),i}acceptChange(e,t){this.lineCount+=t-e.length,this._tokenizationStateStore.acceptChange(e,t),this._invalidEndStatesLineNumbers.addRangeAndResize(new zt(e.startLineNumber,e.endLineNumberExclusive),t)}acceptChanges(e){for(const t of e){const[i]=Hm(t.text);this.acceptChange(new Vt(t.range.startLineNumber,t.range.endLineNumber+1),i+1)}}invalidateEndStateRange(e){this._invalidEndStatesLineNumbers.addRange(new zt(e.startLineNumber,e.endLineNumberExclusive))}getFirstInvalidEndStateLineNumber(){return this._invalidEndStatesLineNumbers.min}getFirstInvalidEndStateLineNumberOrMax(){return this.getFirstInvalidEndStateLineNumber()||Number.MAX_SAFE_INTEGER}allStatesValid(){return this._invalidEndStatesLineNumbers.min===null}getStartState(e,t){return e===1?t:this.getEndState(e-1)}getFirstInvalidLine(e){const t=this.getFirstInvalidEndStateLineNumber();if(t===null)return null;const i=this.getStartState(t,e);if(!i)throw new Gi(\"Start state must be defined\");return{lineNumber:t,startState:i}}}class WBe{constructor(){this._lineEndStates=new MBe(null)}getEndState(e){return this._lineEndStates.get(e)}setEndState(e,t){const i=this._lineEndStates.get(e);return i&&i.equals(t)?!1:(this._lineEndStates.set(e,t),!0)}acceptChange(e,t){let i=e.length;t>0&&i>0&&(i--,t--),this._lineEndStates.replace(e.startLineNumber,i,t)}}class HBe{constructor(){this._ranges=[]}get min(){return this._ranges.length===0?null:this._ranges[0].start}delete(e){const t=this._ranges.findIndex(i=>i.contains(e));if(t!==-1){const i=this._ranges[t];i.start===e?i.endExclusive===e+1?this._ranges.splice(t,1):this._ranges[t]=new zt(e+1,i.endExclusive):i.endExclusive===e+1?this._ranges[t]=new zt(i.start,e):this._ranges.splice(t,1,new zt(i.start,e),new zt(e+1,i.endExclusive))}}addRange(e){zt.addRange(e,this._ranges)}addRangeAndResize(e,t){let i=0;for(;!(i>=this._ranges.length||e.start<=this._ranges[i].endExclusive);)i++;let s=i;for(;!(s>=this._ranges.length||e.endExclusive<this._ranges[s].start);)s++;const o=t-e.length;for(let r=s;r<this._ranges.length;r++)this._ranges[r]=this._ranges[r].delta(o);if(i===s){const r=new zt(e.start,e.start+t);r.isEmpty||this._ranges.splice(i,0,r)}else{const r=Math.min(e.start,this._ranges[i].start),a=Math.max(e.endExclusive,this._ranges[s-1].endExclusive),l=new zt(r,a+o);l.isEmpty?this._ranges.splice(i,s-i):this._ranges.splice(i,s-i,l)}}toString(){return this._ranges.map(e=>e.toString()).join(\" + \")}}function Hy(n,e,t,i,s,o){let r=null;if(t)try{r=t.tokenizeEncoded(i,s,o.clone())}catch(a){Mt(a)}return r||(r=IM(n.encodeLanguageId(e),o)),Is.convertToEndOffset(r.tokens,i.length),r}class VBe{constructor(e,t){this._tokenizerWithStateStore=e,this._backgroundTokenStore=t,this._isDisposed=!1,this._isScheduled=!1}dispose(){this._isDisposed=!0}handleChanges(){this._beginBackgroundTokenization()}_beginBackgroundTokenization(){this._isScheduled||!this._tokenizerWithStateStore._textModel.isAttachedToEditor()||!this._hasLinesToTokenize()||(this._isScheduled=!0,Eae(e=>{this._isScheduled=!1,this._backgroundTokenizeWithDeadline(e)}))}_backgroundTokenizeWithDeadline(e){const t=Date.now()+e.timeRemaining(),i=()=>{this._isDisposed||!this._tokenizerWithStateStore._textModel.isAttachedToEditor()||!this._hasLinesToTokenize()||(this._backgroundTokenizeForAtLeast1ms(),Date.now()<t?Gre(i):this._beginBackgroundTokenization())};i()}_backgroundTokenizeForAtLeast1ms(){const e=this._tokenizerWithStateStore._textModel.getLineCount(),t=new qB,i=xo.create(!1);do if(i.elapsed()>1||this._tokenizeOneInvalidLine(t)>=e)break;while(this._hasLinesToTokenize());this._backgroundTokenStore.setTokens(t.finalize()),this.checkFinished()}_hasLinesToTokenize(){return this._tokenizerWithStateStore?!this._tokenizerWithStateStore.store.allStatesValid():!1}_tokenizeOneInvalidLine(e){var t;const i=(t=this._tokenizerWithStateStore)===null||t===void 0?void 0:t.getFirstInvalidLine();return i?(this._tokenizerWithStateStore.updateTokensUntilLine(e,i.lineNumber),i.lineNumber):this._tokenizerWithStateStore._textModel.getLineCount()+1}checkFinished(){this._isDisposed||this._tokenizerWithStateStore.store.allStatesValid()&&this._backgroundTokenStore.backgroundTokenizationFinished()}requestTokens(e,t){this._tokenizerWithStateStore.store.invalidateEndStateRange(new Vt(e,t))}}const kf=new Uint32Array(0).buffer;class Uu{static deleteBeginning(e,t){return e===null||e===kf?e:Uu.delete(e,0,t)}static deleteEnding(e,t){if(e===null||e===kf)return e;const i=$f(e),s=i[i.length-2];return Uu.delete(e,t,s)}static delete(e,t,i){if(e===null||e===kf||t===i)return e;const s=$f(e),o=s.length>>>1;if(t===0&&s[s.length-2]===i)return kf;const r=Is.findIndexInTokensArray(s,t),a=r>0?s[r-1<<1]:0,l=s[r<<1];if(i<l){const f=i-t;for(let g=r;g<o;g++)s[g<<1]-=f;return e}let c,d;a!==t?(s[r<<1]=t,c=r+1<<1,d=t):(c=r<<1,d=a);const u=i-t;for(let f=r+1;f<o;f++){const g=s[f<<1]-u;g>d&&(s[c++]=g,s[c++]=s[(f<<1)+1],d=g)}if(c===s.length)return e;const h=new Uint32Array(c);return h.set(s.subarray(0,c),0),h.buffer}static append(e,t){if(t===kf)return e;if(e===kf)return t;if(e===null)return e;if(t===null)return null;const i=$f(e),s=$f(t),o=s.length>>>1,r=new Uint32Array(i.length+s.length);r.set(i,0);let a=i.length;const l=i[i.length-2];for(let c=0;c<o;c++)r[a++]=s[c<<1]+l,r[a++]=s[(c<<1)+1];return r.buffer}static insert(e,t,i){if(e===null||e===kf)return e;const s=$f(e),o=s.length>>>1;let r=Is.findIndexInTokensArray(s,t);r>0&&s[r-1<<1]===t&&r--;for(let a=r;a<o;a++)s[a<<1]+=i;return e}}function $f(n){return n instanceof Uint32Array?n:new Uint32Array(n)}class OL{constructor(e){this._lineTokens=[],this._len=0,this._languageIdCodec=e}flush(){this._lineTokens=[],this._len=0}get hasTokens(){return this._lineTokens.length>0}getTokens(e,t,i){let s=null;if(t<this._len&&(s=this._lineTokens[t]),s!==null&&s!==kf)return new Is($f(s),i,this._languageIdCodec);const o=new Uint32Array(2);return o[0]=i.length,o[1]=yQ(this._languageIdCodec.encodeLanguageId(e)),new Is(o,i,this._languageIdCodec)}static _massageTokens(e,t,i){const s=i?$f(i):null;if(t===0){let o=!1;if(s&&s.length>1&&(o=No.getLanguageId(s[1])!==e),!o)return kf}if(!s||s.length===0){const o=new Uint32Array(2);return o[0]=t,o[1]=yQ(e),o.buffer}return s[s.length-2]=t,s.byteOffset===0&&s.byteLength===s.buffer.byteLength?s.buffer:s}_ensureLine(e){for(;e>=this._len;)this._lineTokens[this._len]=null,this._len++}_deleteLines(e,t){t!==0&&(e+t>this._len&&(t=this._len-e),this._lineTokens.splice(e,t),this._len-=t)}_insertLines(e,t){if(t===0)return;const i=[];for(let s=0;s<t;s++)i[s]=null;this._lineTokens=eM(this._lineTokens,e,i),this._len+=t}setTokens(e,t,i,s,o){const r=OL._massageTokens(this._languageIdCodec.encodeLanguageId(e),i,s);this._ensureLine(t);const a=this._lineTokens[t];return this._lineTokens[t]=r,o?!OL._equals(a,r):!1}static _equals(e,t){if(!e||!t)return!e&&!t;const i=$f(e),s=$f(t);if(i.length!==s.length)return!1;for(let o=0,r=i.length;o<r;o++)if(i[o]!==s[o])return!1;return!0}acceptEdit(e,t,i){this._acceptDeleteRange(e),this._acceptInsertText(new ee(e.startLineNumber,e.startColumn),t,i)}_acceptDeleteRange(e){const t=e.startLineNumber-1;if(t>=this._len)return;if(e.startLineNumber===e.endLineNumber){if(e.startColumn===e.endColumn)return;this._lineTokens[t]=Uu.delete(this._lineTokens[t],e.startColumn-1,e.endColumn-1);return}this._lineTokens[t]=Uu.deleteEnding(this._lineTokens[t],e.startColumn-1);const i=e.endLineNumber-1;let s=null;i<this._len&&(s=Uu.deleteBeginning(this._lineTokens[i],e.endColumn-1)),this._lineTokens[t]=Uu.append(this._lineTokens[t],s),this._deleteLines(e.startLineNumber,e.endLineNumber-e.startLineNumber)}_acceptInsertText(e,t,i){if(t===0&&i===0)return;const s=e.lineNumber-1;if(!(s>=this._len)){if(t===0){this._lineTokens[s]=Uu.insert(this._lineTokens[s],e.column-1,i);return}this._lineTokens[s]=Uu.deleteEnding(this._lineTokens[s],e.column-1),this._lineTokens[s]=Uu.insert(this._lineTokens[s],e.column-1,i),this._insertLines(e.lineNumber,t)}}setMultilineTokens(e,t){if(e.length===0)return{changes:[]};const i=[];for(let s=0,o=e.length;s<o;s++){const r=e[s];let a=0,l=0,c=!1;for(let d=r.startLineNumber;d<=r.endLineNumber;d++)c?(this.setTokens(t.getLanguageId(),d-1,t.getLineLength(d),r.getLineTokens(d),!1),l=d):this.setTokens(t.getLanguageId(),d-1,t.getLineLength(d),r.getLineTokens(d),!0)&&(c=!0,a=d,l=d);c&&i.push({fromLineNumber:a,toLineNumber:l})}return{changes:i}}}function yQ(n){return(n<<0|0|0|32768|2<<24|1024)>>>0}class Xz{constructor(e){this._pieces=[],this._isComplete=!1,this._languageIdCodec=e}flush(){this._pieces=[],this._isComplete=!1}isEmpty(){return this._pieces.length===0}set(e,t){this._pieces=e||[],this._isComplete=t}setPartial(e,t){let i=e;if(t.length>0){const o=t[0].getRange(),r=t[t.length-1].getRange();if(!o||!r)return e;i=e.plusRange(o).plusRange(r)}let s=null;for(let o=0,r=this._pieces.length;o<r;o++){const a=this._pieces[o];if(a.endLineNumber<i.startLineNumber)continue;if(a.startLineNumber>i.endLineNumber){s=s||{index:o};break}if(a.removeTokens(i),a.isEmpty()){this._pieces.splice(o,1),o--,r--;continue}if(a.endLineNumber<i.startLineNumber)continue;if(a.startLineNumber>i.endLineNumber){s=s||{index:o};continue}const[l,c]=a.split(i);if(l.isEmpty()){s=s||{index:o};continue}c.isEmpty()||(this._pieces.splice(o,1,l,c),o++,r++,s=s||{index:o})}return s=s||{index:this._pieces.length},t.length>0&&(this._pieces=eM(this._pieces,s.index,t)),i}isComplete(){return this._isComplete}addSparseTokens(e,t){if(t.getLineContent().length===0)return t;const i=this._pieces;if(i.length===0)return t;const s=Xz._findFirstPieceWithLine(i,e),o=i[s].getLineTokens(e);if(!o)return t;const r=t.getCount(),a=o.getCount();let l=0;const c=[];let d=0,u=0;const h=(f,g)=>{f!==u&&(u=f,c[d++]=f,c[d++]=g)};for(let f=0;f<a;f++){const g=o.getStartCharacter(f),p=o.getEndCharacter(f),_=o.getMetadata(f),b=((_&1?2048:0)|(_&2?4096:0)|(_&4?8192:0)|(_&8?16384:0)|(_&16?16744448:0)|(_&32?4278190080:0))>>>0,w=~b>>>0;for(;l<r&&t.getEndOffset(l)<=g;)h(t.getEndOffset(l),t.getMetadata(l)),l++;for(l<r&&t.getStartOffset(l)<g&&h(g,t.getMetadata(l));l<r&&t.getEndOffset(l)<p;)h(t.getEndOffset(l),t.getMetadata(l)&w|_&b),l++;if(l<r)h(p,t.getMetadata(l)&w|_&b),t.getEndOffset(l)===p&&l++;else{const y=Math.min(Math.max(0,l-1),r-1);h(p,t.getMetadata(y)&w|_&b)}}for(;l<r;)h(t.getEndOffset(l),t.getMetadata(l)),l++;return new Is(new Uint32Array(c),t.getLineContent(),this._languageIdCodec)}static _findFirstPieceWithLine(e,t){let i=0,s=e.length-1;for(;i<s;){let o=i+Math.floor((s-i)/2);if(e[o].endLineNumber<t)i=o+1;else if(e[o].startLineNumber>t)s=o-1;else{for(;o>i&&e[o-1].startLineNumber<=t&&t<=e[o-1].endLineNumber;)o--;return o}}return i}acceptEdit(e,t,i,s,o){for(const r of this._pieces)r.acceptEdit(e,t,i,s,o)}}class aA extends Sce{constructor(e,t,i,s,o,r){super(),this._languageService=e,this._languageConfigurationService=t,this._textModel=i,this._bracketPairsTextModelPart=s,this._languageId=o,this._attachedViews=r,this._semanticTokens=new Xz(this._languageService.languageIdCodec),this._onDidChangeLanguage=this._register(new X),this.onDidChangeLanguage=this._onDidChangeLanguage.event,this._onDidChangeLanguageConfiguration=this._register(new X),this.onDidChangeLanguageConfiguration=this._onDidChangeLanguageConfiguration.event,this._onDidChangeTokens=this._register(new X),this.onDidChangeTokens=this._onDidChangeTokens.event,this.grammarTokens=this._register(new zBe(this._languageService.languageIdCodec,this._textModel,()=>this._languageId,this._attachedViews)),this._register(this._languageConfigurationService.onDidChange(a=>{a.affects(this._languageId)&&this._onDidChangeLanguageConfiguration.fire({})})),this._register(this.grammarTokens.onDidChangeTokens(a=>{this._emitModelTokensChangedEvent(a)})),this._register(this.grammarTokens.onDidChangeBackgroundTokenizationState(a=>{this._bracketPairsTextModelPart.handleDidChangeBackgroundTokenizationState()}))}handleDidChangeContent(e){if(e.isFlush)this._semanticTokens.flush();else if(!e.isEolChange)for(const t of e.changes){const[i,s,o]=Hm(t.text);this._semanticTokens.acceptEdit(t.range,i,s,o,t.text.length>0?t.text.charCodeAt(0):0)}this.grammarTokens.handleDidChangeContent(e)}handleDidChangeAttached(){this.grammarTokens.handleDidChangeAttached()}getLineTokens(e){this.validateLineNumber(e);const t=this.grammarTokens.getLineTokens(e);return this._semanticTokens.addSparseTokens(e,t)}_emitModelTokensChangedEvent(e){this._textModel._isDisposing()||(this._bracketPairsTextModelPart.handleDidChangeTokens(e),this._onDidChangeTokens.fire(e))}validateLineNumber(e){if(e<1||e>this._textModel.getLineCount())throw new Gi(\"Illegal value for lineNumber\")}get hasTokens(){return this.grammarTokens.hasTokens}resetTokenization(){this.grammarTokens.resetTokenization()}get backgroundTokenizationState(){return this.grammarTokens.backgroundTokenizationState}forceTokenization(e){this.validateLineNumber(e),this.grammarTokens.forceTokenization(e)}hasAccurateTokensForLine(e){return this.validateLineNumber(e),this.grammarTokens.hasAccurateTokensForLine(e)}isCheapToTokenize(e){return this.validateLineNumber(e),this.grammarTokens.isCheapToTokenize(e)}tokenizeIfCheap(e){this.validateLineNumber(e),this.grammarTokens.tokenizeIfCheap(e)}getTokenTypeIfInsertingCharacter(e,t,i){return this.grammarTokens.getTokenTypeIfInsertingCharacter(e,t,i)}tokenizeLineWithEdit(e,t,i){return this.grammarTokens.tokenizeLineWithEdit(e,t,i)}setSemanticTokens(e,t){this._semanticTokens.set(e,t),this._emitModelTokensChangedEvent({semanticTokensApplied:e!==null,ranges:[{fromLineNumber:1,toLineNumber:this._textModel.getLineCount()}]})}hasCompleteSemanticTokens(){return this._semanticTokens.isComplete()}hasSomeSemanticTokens(){return!this._semanticTokens.isEmpty()}setPartialSemanticTokens(e,t){if(this.hasCompleteSemanticTokens())return;const i=this._textModel.validateRange(this._semanticTokens.setPartial(e,t));this._emitModelTokensChangedEvent({semanticTokensApplied:!0,ranges:[{fromLineNumber:i.startLineNumber,toLineNumber:i.endLineNumber}]})}getWordAtPosition(e){this.assertNotDisposed();const t=this._textModel.validatePosition(e),i=this._textModel.getLineContent(t.lineNumber),s=this.getLineTokens(t.lineNumber),o=s.findTokenIndexAtOffset(t.column-1),[r,a]=aA._findLanguageBoundaries(s,o),l=sL(t.column,this.getLanguageConfiguration(s.getLanguageId(o)).getWordDefinition(),i.substring(r,a),r);if(l&&l.startColumn<=e.column&&e.column<=l.endColumn)return l;if(o>0&&r===t.column-1){const[c,d]=aA._findLanguageBoundaries(s,o-1),u=sL(t.column,this.getLanguageConfiguration(s.getLanguageId(o-1)).getWordDefinition(),i.substring(c,d),c);if(u&&u.startColumn<=e.column&&e.column<=u.endColumn)return u}return null}getLanguageConfiguration(e){return this._languageConfigurationService.getLanguageConfiguration(e)}static _findLanguageBoundaries(e,t){const i=e.getLanguageId(t);let s=0;for(let r=t;r>=0&&e.getLanguageId(r)===i;r--)s=e.getStartOffset(r);let o=e.getLineContent().length;for(let r=t,a=e.getCount();r<a&&e.getLanguageId(r)===i;r++)o=e.getEndOffset(r);return[s,o]}getWordUntilPosition(e){const t=this.getWordAtPosition(e);return t?{word:t.word.substr(0,e.column-t.startColumn),startColumn:t.startColumn,endColumn:e.column}:{word:\"\",startColumn:e.column,endColumn:e.column}}getLanguageId(){return this._languageId}getLanguageIdAtPosition(e,t){const i=this._textModel.validatePosition(new ee(e,t)),s=this.getLineTokens(i.lineNumber);return s.getLanguageId(s.findTokenIndexAtOffset(i.column-1))}setLanguageId(e,t=\"api\"){if(this._languageId===e)return;const i={oldLanguage:this._languageId,newLanguage:e,source:t};this._languageId=e,this._bracketPairsTextModelPart.handleDidChangeLanguage(i),this.grammarTokens.resetTokenization(),this._onDidChangeLanguage.fire(i),this._onDidChangeLanguageConfiguration.fire({})}}class zBe extends ne{get backgroundTokenizationState(){return this._backgroundTokenizationState}constructor(e,t,i,s){super(),this._languageIdCodec=e,this._textModel=t,this.getLanguageId=i,this._tokenizer=null,this._defaultBackgroundTokenizer=null,this._backgroundTokenizer=this._register(new Qs),this._tokens=new OL(this._languageIdCodec),this._debugBackgroundTokenizer=this._register(new Qs),this._backgroundTokenizationState=1,this._onDidChangeBackgroundTokenizationState=this._register(new X),this.onDidChangeBackgroundTokenizationState=this._onDidChangeBackgroundTokenizationState.event,this._onDidChangeTokens=this._register(new X),this.onDidChangeTokens=this._onDidChangeTokens.event,this._attachedViewStates=this._register(new WV),this._register(Zn.onDidChange(o=>{const r=this.getLanguageId();o.changedLanguages.indexOf(r)!==-1&&this.resetTokenization()})),this.resetTokenization(),this._register(s.onDidChangeVisibleRanges(({view:o,state:r})=>{if(r){let a=this._attachedViewStates.get(o);a||(a=new $Be(()=>this.refreshRanges(a.lineRanges)),this._attachedViewStates.set(o,a)),a.handleStateChange(r)}else this._attachedViewStates.deleteAndDispose(o)}))}resetTokenization(e=!0){var t;this._tokens.flush(),(t=this._debugBackgroundTokens)===null||t===void 0||t.flush(),this._debugBackgroundStates&&(this._debugBackgroundStates=new GB(this._textModel.getLineCount())),e&&this._onDidChangeTokens.fire({semanticTokensApplied:!1,ranges:[{fromLineNumber:1,toLineNumber:this._textModel.getLineCount()}]});const i=()=>{if(this._textModel.isTooLargeForTokenization())return[null,null];const r=Zn.get(this.getLanguageId());if(!r)return[null,null];let a;try{a=r.getInitialState()}catch(l){return Mt(l),[null,null]}return[r,a]},[s,o]=i();if(s&&o?this._tokenizer=new BBe(this._textModel.getLineCount(),s,this._textModel,this._languageIdCodec):this._tokenizer=null,this._backgroundTokenizer.clear(),this._defaultBackgroundTokenizer=null,this._tokenizer){const r={setTokens:a=>{this.setTokens(a)},backgroundTokenizationFinished:()=>{if(this._backgroundTokenizationState===2)return;const a=2;this._backgroundTokenizationState=a,this._onDidChangeBackgroundTokenizationState.fire()},setEndState:(a,l)=>{var c;if(!this._tokenizer)return;const d=this._tokenizer.store.getFirstInvalidEndStateLineNumber();d!==null&&a>=d&&((c=this._tokenizer)===null||c===void 0||c.store.setEndState(a,l))}};s&&s.createBackgroundTokenizer&&!s.backgroundTokenizerShouldOnlyVerifyTokens&&(this._backgroundTokenizer.value=s.createBackgroundTokenizer(this._textModel,r)),!this._backgroundTokenizer.value&&!this._textModel.isTooLargeForTokenization()&&(this._backgroundTokenizer.value=this._defaultBackgroundTokenizer=new VBe(this._tokenizer,r),this._defaultBackgroundTokenizer.handleChanges()),s!=null&&s.backgroundTokenizerShouldOnlyVerifyTokens&&s.createBackgroundTokenizer?(this._debugBackgroundTokens=new OL(this._languageIdCodec),this._debugBackgroundStates=new GB(this._textModel.getLineCount()),this._debugBackgroundTokenizer.clear(),this._debugBackgroundTokenizer.value=s.createBackgroundTokenizer(this._textModel,{setTokens:a=>{var l;(l=this._debugBackgroundTokens)===null||l===void 0||l.setMultilineTokens(a,this._textModel)},backgroundTokenizationFinished(){},setEndState:(a,l)=>{var c;(c=this._debugBackgroundStates)===null||c===void 0||c.setEndState(a,l)}})):(this._debugBackgroundTokens=void 0,this._debugBackgroundStates=void 0,this._debugBackgroundTokenizer.value=void 0)}this.refreshAllVisibleLineTokens()}handleDidChangeAttached(){var e;(e=this._defaultBackgroundTokenizer)===null||e===void 0||e.handleChanges()}handleDidChangeContent(e){var t,i,s;if(e.isFlush)this.resetTokenization(!1);else if(!e.isEolChange){for(const o of e.changes){const[r,a]=Hm(o.text);this._tokens.acceptEdit(o.range,r,a),(t=this._debugBackgroundTokens)===null||t===void 0||t.acceptEdit(o.range,r,a)}(i=this._debugBackgroundStates)===null||i===void 0||i.acceptChanges(e.changes),this._tokenizer&&this._tokenizer.store.acceptChanges(e.changes),(s=this._defaultBackgroundTokenizer)===null||s===void 0||s.handleChanges()}}setTokens(e){const{changes:t}=this._tokens.setMultilineTokens(e,this._textModel);return t.length>0&&this._onDidChangeTokens.fire({semanticTokensApplied:!1,ranges:t}),{changes:t}}refreshAllVisibleLineTokens(){const e=Vt.joinMany([...this._attachedViewStates].map(([t,i])=>i.lineRanges));this.refreshRanges(e)}refreshRanges(e){for(const t of e)this.refreshRange(t.startLineNumber,t.endLineNumberExclusive-1)}refreshRange(e,t){var i,s;if(!this._tokenizer)return;e=Math.max(1,Math.min(this._textModel.getLineCount(),e)),t=Math.min(this._textModel.getLineCount(),t);const o=new qB,{heuristicTokens:r}=this._tokenizer.tokenizeHeuristically(o,e,t),a=this.setTokens(o.finalize());if(r)for(const l of a.changes)(i=this._backgroundTokenizer.value)===null||i===void 0||i.requestTokens(l.fromLineNumber,l.toLineNumber+1);(s=this._defaultBackgroundTokenizer)===null||s===void 0||s.checkFinished()}forceTokenization(e){var t,i;const s=new qB;(t=this._tokenizer)===null||t===void 0||t.updateTokensUntilLine(s,e),this.setTokens(s.finalize()),(i=this._defaultBackgroundTokenizer)===null||i===void 0||i.checkFinished()}hasAccurateTokensForLine(e){return this._tokenizer?this._tokenizer.hasAccurateTokensForLine(e):!0}isCheapToTokenize(e){return this._tokenizer?this._tokenizer.isCheapToTokenize(e):!0}tokenizeIfCheap(e){this.isCheapToTokenize(e)&&this.forceTokenization(e)}getLineTokens(e){var t;const i=this._textModel.getLineContent(e),s=this._tokens.getTokens(this._textModel.getLanguageId(),e-1,i);if(this._debugBackgroundTokens&&this._debugBackgroundStates&&this._tokenizer&&this._debugBackgroundStates.getFirstInvalidEndStateLineNumberOrMax()>e&&this._tokenizer.store.getFirstInvalidEndStateLineNumberOrMax()>e){const o=this._debugBackgroundTokens.getTokens(this._textModel.getLanguageId(),e-1,i);!s.equals(o)&&(!((t=this._debugBackgroundTokenizer.value)===null||t===void 0)&&t.reportMismatchingTokens)&&this._debugBackgroundTokenizer.value.reportMismatchingTokens(e)}return s}getTokenTypeIfInsertingCharacter(e,t,i){if(!this._tokenizer)return 0;const s=this._textModel.validatePosition(new ee(e,t));return this.forceTokenization(s.lineNumber),this._tokenizer.getTokenTypeIfInsertingCharacter(s,i)}tokenizeLineWithEdit(e,t,i){if(!this._tokenizer)return null;const s=this._textModel.validatePosition(e);return this.forceTokenization(s.lineNumber),this._tokenizer.tokenizeLineWithEdit(s,t,i)}get hasTokens(){return this._tokens.hasTokens}}class $Be extends ne{get lineRanges(){return this._lineRanges}constructor(e){super(),this._refreshTokens=e,this.runner=this._register(new Xi(()=>this.update(),50)),this._computedLineRanges=[],this._lineRanges=[]}update(){zn(this._computedLineRanges,this._lineRanges,(e,t)=>e.equals(t))||(this._computedLineRanges=this._lineRanges,this._refreshTokens())}handleStateChange(e){this._lineRanges=e.visibleLineRanges,e.stabilized?(this.runner.cancel(),this.update()):this.runner.schedule()}}const zM=Jt(\"undoRedoService\");class Kce{constructor(e,t){this.resource=e,this.elements=t}}class UC{constructor(){this.id=UC._ID++,this.order=1}nextOrder(){return this.id===0?0:this.order++}}UC._ID=0;UC.None=new UC;class th{constructor(){this.id=th._ID++,this.order=1}nextOrder(){return this.id===0?0:this.order++}}th._ID=0;th.None=new th;var UBe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},m5=function(n,e){return function(t,i){e(t,i,n)}},sv;function jBe(n){const e=new jce;return e.acceptChunk(n),e.finish()}function KBe(n){const e=new jce;let t;for(;typeof(t=n.read())==\"string\";)e.acceptChunk(t);return e.finish()}function SQ(n,e){let t;return typeof n==\"string\"?t=jBe(n):IOe(n)?t=KBe(n):t=n,t.create(e)}let qE=0;const qBe=999,GBe=1e4;class ZBe{constructor(e){this._source=e,this._eos=!1}read(){if(this._eos)return null;const e=[];let t=0,i=0;do{const s=this._source.read();if(s===null)return this._eos=!0,t===0?null:e.join(\"\");if(s.length>0&&(e[t++]=s,i+=s.length),i>=64*1024)return e.join(\"\")}while(!0)}}const Vy=()=>{throw new Error(\"Invalid change accessor\")};let Th=sv=class extends ne{static resolveOptions(e,t){if(t.detectIndentation){const i=gQ(e,t.tabSize,t.insertSpaces);return new gN({tabSize:i.tabSize,indentSize:\"tabSize\",insertSpaces:i.insertSpaces,trimAutoWhitespace:t.trimAutoWhitespace,defaultEOL:t.defaultEOL,bracketPairColorizationOptions:t.bracketPairColorizationOptions})}return new gN(t)}get onDidChangeLanguage(){return this._tokenizationTextModelPart.onDidChangeLanguage}get onDidChangeLanguageConfiguration(){return this._tokenizationTextModelPart.onDidChangeLanguageConfiguration}get onDidChangeTokens(){return this._tokenizationTextModelPart.onDidChangeTokens}onDidChangeContent(e){return this._eventEmitter.slowEvent(t=>e(t.contentChangedEvent))}onDidChangeContentOrInjectedText(e){return Jc(this._eventEmitter.fastEvent(t=>e(t)),this._onDidChangeInjectedText.event(t=>e(t)))}_isDisposing(){return this.__isDisposing}get tokenization(){return this._tokenizationTextModelPart}get bracketPairs(){return this._bracketPairs}get guides(){return this._guidesTextModelPart}constructor(e,t,i,s=null,o,r,a){super(),this._undoRedoService=o,this._languageService=r,this._languageConfigurationService=a,this._onWillDispose=this._register(new X),this.onWillDispose=this._onWillDispose.event,this._onDidChangeDecorations=this._register(new t9e(f=>this.handleBeforeFireDecorationsChangedEvent(f))),this.onDidChangeDecorations=this._onDidChangeDecorations.event,this._onDidChangeOptions=this._register(new X),this.onDidChangeOptions=this._onDidChangeOptions.event,this._onDidChangeAttached=this._register(new X),this.onDidChangeAttached=this._onDidChangeAttached.event,this._onDidChangeInjectedText=this._register(new X),this._eventEmitter=this._register(new i9e),this._languageSelectionListener=this._register(new Qs),this._deltaDecorationCallCnt=0,this._attachedViews=new n9e,qE++,this.id=\"$model\"+qE,this.isForSimpleWidget=i.isForSimpleWidget,typeof s>\"u\"||s===null?this._associatedResource=pt.parse(\"inmemory://model/\"+qE):this._associatedResource=s,this._attachedEditorCount=0;const{textBuffer:l,disposable:c}=SQ(e,i.defaultEOL);this._buffer=l,this._bufferDisposable=c,this._options=sv.resolveOptions(this._buffer,i);const d=typeof t==\"string\"?t:t.languageId;typeof t!=\"string\"&&(this._languageSelectionListener.value=t.onDidChange(()=>this._setLanguage(t.languageId))),this._bracketPairs=this._register(new eBe(this,this._languageConfigurationService)),this._guidesTextModelPart=this._register(new q8e(this,this._languageConfigurationService)),this._decorationProvider=this._register(new iBe(this)),this._tokenizationTextModelPart=new aA(this._languageService,this._languageConfigurationService,this,this._bracketPairs,d,this._attachedViews);const u=this._buffer.getLineCount(),h=this._buffer.getValueLengthInRange(new A(1,1,u,this._buffer.getLineLength(u)+1),0);i.largeFileOptimizations?(this._isTooLargeForTokenization=h>sv.LARGE_FILE_SIZE_THRESHOLD||u>sv.LARGE_FILE_LINE_COUNT_THRESHOLD,this._isTooLargeForHeapOperation=h>sv.LARGE_FILE_HEAP_OPERATION_THRESHOLD):(this._isTooLargeForTokenization=!1,this._isTooLargeForHeapOperation=!1),this._isTooLargeForSyncing=h>sv._MODEL_SYNC_LIMIT,this._versionId=1,this._alternativeVersionId=1,this._initialUndoRedoSnapshot=null,this._isDisposed=!1,this.__isDisposing=!1,this._instanceId=Sae(qE),this._lastDecorationId=0,this._decorations=Object.create(null),this._decorationsTree=new xQ,this._commandManager=new qz(this,this._undoRedoService),this._isUndoing=!1,this._isRedoing=!1,this._trimAutoWhitespaceLines=null,this._register(this._decorationProvider.onDidChange(()=>{this._onDidChangeDecorations.beginDeferredEmit(),this._onDidChangeDecorations.fire(),this._onDidChangeDecorations.endDeferredEmit()})),this._languageService.requestRichLanguageFeatures(d)}dispose(){this.__isDisposing=!0,this._onWillDispose.fire(),this._tokenizationTextModelPart.dispose(),this._isDisposed=!0,super.dispose(),this._bufferDisposable.dispose(),this.__isDisposing=!1;const e=new rC([],\"\",`\n`,!1,!1,!0,!0);e.dispose(),this._buffer=e,this._bufferDisposable=ne.None}_assertNotDisposed(){if(this._isDisposed)throw new Error(\"Model is disposed!\")}_emitContentChangedEvent(e,t){this.__isDisposing||(this._tokenizationTextModelPart.handleDidChangeContent(t),this._bracketPairs.handleDidChangeContent(t),this._eventEmitter.fire(new Kv(e,t)))}setValue(e){if(this._assertNotDisposed(),e==null)throw ic();const{textBuffer:t,disposable:i}=SQ(e,this._options.defaultEOL);this._setValueFromTextBuffer(t,i)}_createContentChanged2(e,t,i,s,o,r,a,l){return{changes:[{range:e,rangeOffset:t,rangeLength:i,text:s}],eol:this._buffer.getEOL(),isEolChange:l,versionId:this.getVersionId(),isUndoing:o,isRedoing:r,isFlush:a}}_setValueFromTextBuffer(e,t){this._assertNotDisposed();const i=this.getFullModelRange(),s=this.getValueLengthInRange(i),o=this.getLineCount(),r=this.getLineMaxColumn(o);this._buffer=e,this._bufferDisposable.dispose(),this._bufferDisposable=t,this._increaseVersionId(),this._decorations=Object.create(null),this._decorationsTree=new xQ,this._commandManager.clear(),this._trimAutoWhitespaceLines=null,this._emitContentChangedEvent(new nC([new L7e],this._versionId,!1,!1),this._createContentChanged2(new A(1,1,o,r),0,s,this.getValue(),!1,!1,!0,!1))}setEOL(e){this._assertNotDisposed();const t=e===1?`\\r\n`:`\n`;if(this._buffer.getEOL()===t)return;const i=this.getFullModelRange(),s=this.getValueLengthInRange(i),o=this.getLineCount(),r=this.getLineMaxColumn(o);this._onBeforeEOLChange(),this._buffer.setEOL(t),this._increaseVersionId(),this._onAfterEOLChange(),this._emitContentChangedEvent(new nC([new I7e],this._versionId,!1,!1),this._createContentChanged2(new A(1,1,o,r),0,s,this.getValue(),!1,!1,!1,!0))}_onBeforeEOLChange(){this._decorationsTree.ensureAllNodesHaveRanges(this)}_onAfterEOLChange(){const e=this.getVersionId(),t=this._decorationsTree.collectNodesPostOrder();for(let i=0,s=t.length;i<s;i++){const o=t[i],r=o.range,a=o.cachedAbsoluteStart-o.start,l=this._buffer.getOffsetAt(r.startLineNumber,r.startColumn),c=this._buffer.getOffsetAt(r.endLineNumber,r.endColumn);o.cachedAbsoluteStart=l,o.cachedAbsoluteEnd=c,o.cachedVersionId=e,o.start=l-a,o.end=c-a,zm(o)}}onBeforeAttached(){return this._attachedEditorCount++,this._attachedEditorCount===1&&(this._tokenizationTextModelPart.handleDidChangeAttached(),this._onDidChangeAttached.fire(void 0)),this._attachedViews.attachView()}onBeforeDetached(e){this._attachedEditorCount--,this._attachedEditorCount===0&&(this._tokenizationTextModelPart.handleDidChangeAttached(),this._onDidChangeAttached.fire(void 0)),this._attachedViews.detachView(e)}isAttachedToEditor(){return this._attachedEditorCount>0}getAttachedEditorCount(){return this._attachedEditorCount}isTooLargeForSyncing(){return this._isTooLargeForSyncing}isTooLargeForTokenization(){return this._isTooLargeForTokenization}isTooLargeForHeapOperation(){return this._isTooLargeForHeapOperation}isDisposed(){return this._isDisposed}isDominatedByLongLines(){if(this._assertNotDisposed(),this.isTooLargeForTokenization())return!1;let e=0,t=0;const i=this._buffer.getLineCount();for(let s=1;s<=i;s++){const o=this._buffer.getLineLength(s);o>=GBe?t+=o:e+=o}return t>e}get uri(){return this._associatedResource}getOptions(){return this._assertNotDisposed(),this._options}getFormattingOptions(){return{tabSize:this._options.indentSize,insertSpaces:this._options.insertSpaces}}updateOptions(e){this._assertNotDisposed();const t=typeof e.tabSize<\"u\"?e.tabSize:this._options.tabSize,i=typeof e.indentSize<\"u\"?e.indentSize:this._options.originalIndentSize,s=typeof e.insertSpaces<\"u\"?e.insertSpaces:this._options.insertSpaces,o=typeof e.trimAutoWhitespace<\"u\"?e.trimAutoWhitespace:this._options.trimAutoWhitespace,r=typeof e.bracketColorizationOptions<\"u\"?e.bracketColorizationOptions:this._options.bracketPairColorizationOptions,a=new gN({tabSize:t,indentSize:i,insertSpaces:s,defaultEOL:this._options.defaultEOL,trimAutoWhitespace:o,bracketPairColorizationOptions:r});if(this._options.equals(a))return;const l=this._options.createChangeEvent(a);this._options=a,this._bracketPairs.handleDidChangeOptions(l),this._decorationProvider.handleDidChangeOptions(l),this._onDidChangeOptions.fire(l)}detectIndentation(e,t){this._assertNotDisposed();const i=gQ(this._buffer,t,e);this.updateOptions({insertSpaces:i.insertSpaces,tabSize:i.tabSize,indentSize:i.tabSize})}normalizeIndentation(e){return this._assertNotDisposed(),Pz(e,this._options.indentSize,this._options.insertSpaces)}getVersionId(){return this._assertNotDisposed(),this._versionId}mightContainRTL(){return this._buffer.mightContainRTL()}mightContainUnusualLineTerminators(){return this._buffer.mightContainUnusualLineTerminators()}removeUnusualLineTerminators(e=null){const t=this.findMatches(wae.source,!1,!0,!1,null,!1,1073741824);this._buffer.resetMightContainUnusualLineTerminators(),this.pushEditOperations(e,t.map(i=>({range:i.range,text:null})),()=>null)}mightContainNonBasicASCII(){return this._buffer.mightContainNonBasicASCII()}getAlternativeVersionId(){return this._assertNotDisposed(),this._alternativeVersionId}getInitialUndoRedoSnapshot(){return this._assertNotDisposed(),this._initialUndoRedoSnapshot}getOffsetAt(e){this._assertNotDisposed();const t=this._validatePosition(e.lineNumber,e.column,0);return this._buffer.getOffsetAt(t.lineNumber,t.column)}getPositionAt(e){this._assertNotDisposed();const t=Math.min(this._buffer.getLength(),Math.max(0,e));return this._buffer.getPositionAt(t)}_increaseVersionId(){this._versionId=this._versionId+1,this._alternativeVersionId=this._versionId}_overwriteVersionId(e){this._versionId=e}_overwriteAlternativeVersionId(e){this._alternativeVersionId=e}_overwriteInitialUndoRedoSnapshot(e){this._initialUndoRedoSnapshot=e}getValue(e,t=!1){if(this._assertNotDisposed(),this.isTooLargeForHeapOperation())throw new Gi(\"Operation would exceed heap memory limits\");const i=this.getFullModelRange(),s=this.getValueInRange(i,e);return t?this._buffer.getBOM()+s:s}createSnapshot(e=!1){return new ZBe(this._buffer.createSnapshot(e))}getValueLength(e,t=!1){this._assertNotDisposed();const i=this.getFullModelRange(),s=this.getValueLengthInRange(i,e);return t?this._buffer.getBOM().length+s:s}getValueInRange(e,t=0){return this._assertNotDisposed(),this._buffer.getValueInRange(this.validateRange(e),t)}getValueLengthInRange(e,t=0){return this._assertNotDisposed(),this._buffer.getValueLengthInRange(this.validateRange(e),t)}getCharacterCountInRange(e,t=0){return this._assertNotDisposed(),this._buffer.getCharacterCountInRange(this.validateRange(e),t)}getLineCount(){return this._assertNotDisposed(),this._buffer.getLineCount()}getLineContent(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Gi(\"Illegal value for lineNumber\");return this._buffer.getLineContent(e)}getLineLength(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Gi(\"Illegal value for lineNumber\");return this._buffer.getLineLength(e)}getLinesContent(){if(this._assertNotDisposed(),this.isTooLargeForHeapOperation())throw new Gi(\"Operation would exceed heap memory limits\");return this._buffer.getLinesContent()}getEOL(){return this._assertNotDisposed(),this._buffer.getEOL()}getEndOfLineSequence(){return this._assertNotDisposed(),this._buffer.getEOL()===`\n`?0:1}getLineMinColumn(e){return this._assertNotDisposed(),1}getLineMaxColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Gi(\"Illegal value for lineNumber\");return this._buffer.getLineLength(e)+1}getLineFirstNonWhitespaceColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Gi(\"Illegal value for lineNumber\");return this._buffer.getLineFirstNonWhitespaceColumn(e)}getLineLastNonWhitespaceColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Gi(\"Illegal value for lineNumber\");return this._buffer.getLineLastNonWhitespaceColumn(e)}_validateRangeRelaxedNoAllocations(e){const t=this._buffer.getLineCount(),i=e.startLineNumber,s=e.startColumn;let o=Math.floor(typeof i==\"number\"&&!isNaN(i)?i:1),r=Math.floor(typeof s==\"number\"&&!isNaN(s)?s:1);if(o<1)o=1,r=1;else if(o>t)o=t,r=this.getLineMaxColumn(o);else if(r<=1)r=1;else{const u=this.getLineMaxColumn(o);r>=u&&(r=u)}const a=e.endLineNumber,l=e.endColumn;let c=Math.floor(typeof a==\"number\"&&!isNaN(a)?a:1),d=Math.floor(typeof l==\"number\"&&!isNaN(l)?l:1);if(c<1)c=1,d=1;else if(c>t)c=t,d=this.getLineMaxColumn(c);else if(d<=1)d=1;else{const u=this.getLineMaxColumn(c);d>=u&&(d=u)}return i===o&&s===r&&a===c&&l===d&&e instanceof A&&!(e instanceof it)?e:new A(o,r,c,d)}_isValidPosition(e,t,i){if(typeof e!=\"number\"||typeof t!=\"number\"||isNaN(e)||isNaN(t)||e<1||t<1||(e|0)!==e||(t|0)!==t)return!1;const s=this._buffer.getLineCount();if(e>s)return!1;if(t===1)return!0;const o=this.getLineMaxColumn(e);if(t>o)return!1;if(i===1){const r=this._buffer.getLineCharCode(e,t-2);if(Gs(r))return!1}return!0}_validatePosition(e,t,i){const s=Math.floor(typeof e==\"number\"&&!isNaN(e)?e:1),o=Math.floor(typeof t==\"number\"&&!isNaN(t)?t:1),r=this._buffer.getLineCount();if(s<1)return new ee(1,1);if(s>r)return new ee(r,this.getLineMaxColumn(r));if(o<=1)return new ee(s,1);const a=this.getLineMaxColumn(s);if(o>=a)return new ee(s,a);if(i===1){const l=this._buffer.getLineCharCode(s,o-2);if(Gs(l))return new ee(s,o-1)}return new ee(s,o)}validatePosition(e){return this._assertNotDisposed(),e instanceof ee&&this._isValidPosition(e.lineNumber,e.column,1)?e:this._validatePosition(e.lineNumber,e.column,1)}_isValidRange(e,t){const i=e.startLineNumber,s=e.startColumn,o=e.endLineNumber,r=e.endColumn;if(!this._isValidPosition(i,s,0)||!this._isValidPosition(o,r,0))return!1;if(t===1){const a=s>1?this._buffer.getLineCharCode(i,s-2):0,l=r>1&&r<=this._buffer.getLineLength(o)?this._buffer.getLineCharCode(o,r-2):0,c=Gs(a),d=Gs(l);return!c&&!d}return!0}validateRange(e){if(this._assertNotDisposed(),e instanceof A&&!(e instanceof it)&&this._isValidRange(e,1))return e;const i=this._validatePosition(e.startLineNumber,e.startColumn,0),s=this._validatePosition(e.endLineNumber,e.endColumn,0),o=i.lineNumber,r=i.column,a=s.lineNumber,l=s.column;{const c=r>1?this._buffer.getLineCharCode(o,r-2):0,d=l>1&&l<=this._buffer.getLineLength(a)?this._buffer.getLineCharCode(a,l-2):0,u=Gs(c),h=Gs(d);return!u&&!h?new A(o,r,a,l):o===a&&r===l?new A(o,r-1,a,l-1):u&&h?new A(o,r-1,a,l+1):u?new A(o,r-1,a,l):new A(o,r,a,l+1)}}modifyPosition(e,t){this._assertNotDisposed();const i=this.getOffsetAt(e)+t;return this.getPositionAt(Math.min(this._buffer.getLength(),Math.max(0,i)))}getFullModelRange(){this._assertNotDisposed();const e=this.getLineCount();return new A(1,1,e,this.getLineMaxColumn(e))}findMatchesLineByLine(e,t,i,s){return this._buffer.findMatchesLineByLine(e,t,i,s)}findMatches(e,t,i,s,o,r,a=qBe){this._assertNotDisposed();let l=null;t!==null&&(Array.isArray(t)||(t=[t]),t.every(u=>A.isIRange(u))&&(l=t.map(u=>this.validateRange(u)))),l===null&&(l=[this.getFullModelRange()]),l=l.sort((u,h)=>u.startLineNumber-h.startLineNumber||u.startColumn-h.startColumn);const c=[];c.push(l.reduce((u,h)=>A.areIntersecting(u,h)?u.plusRange(h):(c.push(u),h)));let d;if(!i&&e.indexOf(`\n`)<0){const h=new nv(e,i,s,o).parseSearchRequest();if(!h)return[];d=f=>this.findMatchesLineByLine(f,h,r,a)}else d=u=>EE.findMatches(this,new nv(e,i,s,o),u,r,a);return c.map(d).reduce((u,h)=>u.concat(h),[])}findNextMatch(e,t,i,s,o,r){this._assertNotDisposed();const a=this.validatePosition(t);if(!i&&e.indexOf(`\n`)<0){const c=new nv(e,i,s,o).parseSearchRequest();if(!c)return null;const d=this.getLineCount();let u=new A(a.lineNumber,a.column,d,this.getLineMaxColumn(d)),h=this.findMatchesLineByLine(u,c,r,1);return EE.findNextMatch(this,new nv(e,i,s,o),a,r),h.length>0||(u=new A(1,1,a.lineNumber,this.getLineMaxColumn(a.lineNumber)),h=this.findMatchesLineByLine(u,c,r,1),h.length>0)?h[0]:null}return EE.findNextMatch(this,new nv(e,i,s,o),a,r)}findPreviousMatch(e,t,i,s,o,r){this._assertNotDisposed();const a=this.validatePosition(t);return EE.findPreviousMatch(this,new nv(e,i,s,o),a,r)}pushStackElement(){this._commandManager.pushStackElement()}popStackElement(){this._commandManager.popStackElement()}pushEOL(e){if((this.getEOL()===`\n`?0:1)!==e)try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._initialUndoRedoSnapshot===null&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEOL(e)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_validateEditOperation(e){return e instanceof GF?e:new GF(e.identifier||null,this.validateRange(e.range),e.text,e.forceMoveMarkers||!1,e.isAutoWhitespaceEdit||!1,e._isTracked||!1)}_validateEditOperations(e){const t=[];for(let i=0,s=e.length;i<s;i++)t[i]=this._validateEditOperation(e[i]);return t}pushEditOperations(e,t,i,s){try{return this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._pushEditOperations(e,this._validateEditOperations(t),i,s)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_pushEditOperations(e,t,i,s){if(this._options.trimAutoWhitespace&&this._trimAutoWhitespaceLines){const o=t.map(a=>({range:this.validateRange(a.range),text:a.text}));let r=!0;if(e)for(let a=0,l=e.length;a<l;a++){const c=e[a];let d=!1;for(let u=0,h=o.length;u<h;u++){const f=o[u].range,g=f.startLineNumber>c.endLineNumber,p=c.startLineNumber>f.endLineNumber;if(!g&&!p){d=!0;break}}if(!d){r=!1;break}}if(r)for(let a=0,l=this._trimAutoWhitespaceLines.length;a<l;a++){const c=this._trimAutoWhitespaceLines[a],d=this.getLineMaxColumn(c);let u=!0;for(let h=0,f=o.length;h<f;h++){const g=o[h].range,p=o[h].text;if(!(c<g.startLineNumber||c>g.endLineNumber)&&!(c===g.startLineNumber&&g.startColumn===d&&g.isEmpty()&&p&&p.length>0&&p.charAt(0)===`\n`)&&!(c===g.startLineNumber&&g.startColumn===1&&g.isEmpty()&&p&&p.length>0&&p.charAt(p.length-1)===`\n`)){u=!1;break}}if(u){const h=new A(c,1,c,d);t.push(new GF(null,h,null,!1,!1,!1))}}this._trimAutoWhitespaceLines=null}return this._initialUndoRedoSnapshot===null&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEditOperation(e,t,i,s)}_applyUndo(e,t,i,s){const o=e.map(r=>{const a=this.getPositionAt(r.newPosition),l=this.getPositionAt(r.newEnd);return{range:new A(a.lineNumber,a.column,l.lineNumber,l.column),text:r.oldText}});this._applyUndoRedoEdits(o,t,!0,!1,i,s)}_applyRedo(e,t,i,s){const o=e.map(r=>{const a=this.getPositionAt(r.oldPosition),l=this.getPositionAt(r.oldEnd);return{range:new A(a.lineNumber,a.column,l.lineNumber,l.column),text:r.newText}});this._applyUndoRedoEdits(o,t,!1,!0,i,s)}_applyUndoRedoEdits(e,t,i,s,o,r){try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._isUndoing=i,this._isRedoing=s,this.applyEdits(e,!1),this.setEOL(t),this._overwriteAlternativeVersionId(o)}finally{this._isUndoing=!1,this._isRedoing=!1,this._eventEmitter.endDeferredEmit(r),this._onDidChangeDecorations.endDeferredEmit()}}applyEdits(e,t=!1){try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit();const i=this._validateEditOperations(e);return this._doApplyEdits(i,t)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_doApplyEdits(e,t){const i=this._buffer.getLineCount(),s=this._buffer.applyEdits(e,this._options.trimAutoWhitespace,t),o=this._buffer.getLineCount(),r=s.changes;if(this._trimAutoWhitespaceLines=s.trimAutoWhitespaceLineNumbers,r.length!==0){for(let c=0,d=r.length;c<d;c++){const u=r[c];this._decorationsTree.acceptReplace(u.rangeOffset,u.rangeLength,u.text.length,u.forceMoveMarkers)}const a=[];this._increaseVersionId();let l=i;for(let c=0,d=r.length;c<d;c++){const u=r[c],[h]=Hm(u.text);this._onDidChangeDecorations.fire();const f=u.range.startLineNumber,g=u.range.endLineNumber,p=g-f,_=h,b=Math.min(p,_),w=_-p,y=o-l-w+f,S=y,x=y+_,k=this._decorationsTree.getInjectedTextInInterval(this,this.getOffsetAt(new ee(S,1)),this.getOffsetAt(new ee(x,this.getLineMaxColumn(x))),0),D=au.fromDecorations(k),I=new Lg(D);for(let N=b;N>=0;N--){const P=f+N,O=y+N;I.takeFromEndWhile(z=>z.lineNumber>O);const M=I.takeFromEndWhile(z=>z.lineNumber===O);a.push(new oQ(P,this.getLineContent(O),M))}if(b<p){const N=f+b;a.push(new k7e(N+1,g))}if(b<_){const N=new Lg(D),P=f+b,O=_-b,M=o-l-O+P+1,z=[],K=[];for(let ae=0;ae<O;ae++){const se=M+ae;K[ae]=this.getLineContent(se),N.takeWhile(he=>he.lineNumber<se),z[ae]=N.takeWhile(he=>he.lineNumber===se)}a.push(new D7e(P+1,f+_,K,z))}l+=w}this._emitContentChangedEvent(new nC(a,this.getVersionId(),this._isUndoing,this._isRedoing),{changes:r,eol:this._buffer.getEOL(),isEolChange:!1,versionId:this.getVersionId(),isUndoing:this._isUndoing,isRedoing:this._isRedoing,isFlush:!1})}return s.reverseEdits===null?void 0:s.reverseEdits}undo(){return this._undoRedoService.undo(this.uri)}canUndo(){return this._undoRedoService.canUndo(this.uri)}redo(){return this._undoRedoService.redo(this.uri)}canRedo(){return this._undoRedoService.canRedo(this.uri)}handleBeforeFireDecorationsChangedEvent(e){if(e===null||e.size===0)return;const i=Array.from(e).map(s=>new oQ(s,this.getLineContent(s),this._getInjectedTextInLine(s)));this._onDidChangeInjectedText.fire(new kce(i))}changeDecorations(e,t=0){this._assertNotDisposed();try{return this._onDidChangeDecorations.beginDeferredEmit(),this._changeDecorations(t,e)}finally{this._onDidChangeDecorations.endDeferredEmit()}}_changeDecorations(e,t){const i={addDecoration:(o,r)=>this._deltaDecorationsImpl(e,[],[{range:o,options:r}])[0],changeDecoration:(o,r)=>{this._changeDecorationImpl(o,r)},changeDecorationOptions:(o,r)=>{this._changeDecorationOptionsImpl(o,kQ(r))},removeDecoration:o=>{this._deltaDecorationsImpl(e,[o],[])},deltaDecorations:(o,r)=>o.length===0&&r.length===0?[]:this._deltaDecorationsImpl(e,o,r)};let s=null;try{s=t(i)}catch(o){Mt(o)}return i.addDecoration=Vy,i.changeDecoration=Vy,i.changeDecorationOptions=Vy,i.removeDecoration=Vy,i.deltaDecorations=Vy,s}deltaDecorations(e,t,i=0){if(this._assertNotDisposed(),e||(e=[]),e.length===0&&t.length===0)return[];try{return this._deltaDecorationCallCnt++,this._deltaDecorationCallCnt>1&&(console.warn(\"Invoking deltaDecorations recursively could lead to leaking decorations.\"),Mt(new Error(\"Invoking deltaDecorations recursively could lead to leaking decorations.\"))),this._onDidChangeDecorations.beginDeferredEmit(),this._deltaDecorationsImpl(i,e,t)}finally{this._onDidChangeDecorations.endDeferredEmit(),this._deltaDecorationCallCnt--}}_getTrackedRange(e){return this.getDecorationRange(e)}_setTrackedRange(e,t,i){const s=e?this._decorations[e]:null;if(!s)return t?this._deltaDecorationsImpl(0,[],[{range:t,options:LQ[i]}],!0)[0]:null;if(!t)return this._decorationsTree.delete(s),delete this._decorations[s.id],null;const o=this._validateRangeRelaxedNoAllocations(t),r=this._buffer.getOffsetAt(o.startLineNumber,o.startColumn),a=this._buffer.getOffsetAt(o.endLineNumber,o.endColumn);return this._decorationsTree.delete(s),s.reset(this.getVersionId(),r,a,o),s.setOptions(LQ[i]),this._decorationsTree.insert(s),s.id}removeAllDecorationsWithOwnerId(e){if(this._isDisposed)return;const t=this._decorationsTree.collectNodesFromOwner(e);for(let i=0,s=t.length;i<s;i++){const o=t[i];this._decorationsTree.delete(o),delete this._decorations[o.id]}}getDecorationOptions(e){const t=this._decorations[e];return t?t.options:null}getDecorationRange(e){const t=this._decorations[e];return t?this._decorationsTree.getNodeRange(this,t):null}getLineDecorations(e,t=0,i=!1){return e<1||e>this.getLineCount()?[]:this.getLinesDecorations(e,e,t,i)}getLinesDecorations(e,t,i=0,s=!1,o=!1){const r=this.getLineCount(),a=Math.min(r,Math.max(1,e)),l=Math.min(r,Math.max(1,t)),c=this.getLineMaxColumn(l),d=new A(a,1,l,c),u=this._getDecorationsInRange(d,i,s,o);return Z8(u,this._decorationProvider.getDecorationsInRange(d,i,s)),u}getDecorationsInRange(e,t=0,i=!1,s=!1,o=!1){const r=this.validateRange(e),a=this._getDecorationsInRange(r,t,i,o);return Z8(a,this._decorationProvider.getDecorationsInRange(r,t,i,s)),a}getOverviewRulerDecorations(e=0,t=!1){return this._decorationsTree.getAll(this,e,t,!0,!1)}getInjectedTextDecorations(e=0){return this._decorationsTree.getAllInjectedText(this,e)}_getInjectedTextInLine(e){const t=this._buffer.getOffsetAt(e,1),i=t+this._buffer.getLineLength(e),s=this._decorationsTree.getInjectedTextInInterval(this,t,i,0);return au.fromDecorations(s).filter(o=>o.lineNumber===e)}getAllDecorations(e=0,t=!1){let i=this._decorationsTree.getAll(this,e,t,!1,!1);return i=i.concat(this._decorationProvider.getAllDecorations(e,t)),i}getAllMarginDecorations(e=0){return this._decorationsTree.getAll(this,e,!1,!1,!0)}_getDecorationsInRange(e,t,i,s){const o=this._buffer.getOffsetAt(e.startLineNumber,e.startColumn),r=this._buffer.getOffsetAt(e.endLineNumber,e.endColumn);return this._decorationsTree.getAllInInterval(this,o,r,t,i,s)}getRangeAt(e,t){return this._buffer.getRangeAt(e,t-e)}_changeDecorationImpl(e,t){const i=this._decorations[e];if(!i)return;if(i.options.after){const a=this.getDecorationRange(e);this._onDidChangeDecorations.recordLineAffectedByInjectedText(a.endLineNumber)}if(i.options.before){const a=this.getDecorationRange(e);this._onDidChangeDecorations.recordLineAffectedByInjectedText(a.startLineNumber)}const s=this._validateRangeRelaxedNoAllocations(t),o=this._buffer.getOffsetAt(s.startLineNumber,s.startColumn),r=this._buffer.getOffsetAt(s.endLineNumber,s.endColumn);this._decorationsTree.delete(i),i.reset(this.getVersionId(),o,r,s),this._decorationsTree.insert(i),this._onDidChangeDecorations.checkAffectedAndFire(i.options),i.options.after&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(s.endLineNumber),i.options.before&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(s.startLineNumber)}_changeDecorationOptionsImpl(e,t){const i=this._decorations[e];if(!i)return;const s=!!(i.options.overviewRuler&&i.options.overviewRuler.color),o=!!(t.overviewRuler&&t.overviewRuler.color);if(this._onDidChangeDecorations.checkAffectedAndFire(i.options),this._onDidChangeDecorations.checkAffectedAndFire(t),i.options.after||t.after){const l=this._decorationsTree.getNodeRange(this,i);this._onDidChangeDecorations.recordLineAffectedByInjectedText(l.endLineNumber)}if(i.options.before||t.before){const l=this._decorationsTree.getNodeRange(this,i);this._onDidChangeDecorations.recordLineAffectedByInjectedText(l.startLineNumber)}const r=s!==o,a=XBe(t)!==SN(i);r||a?(this._decorationsTree.delete(i),i.setOptions(t),this._decorationsTree.insert(i)):i.setOptions(t)}_deltaDecorationsImpl(e,t,i,s=!1){const o=this.getVersionId(),r=t.length;let a=0;const l=i.length;let c=0;this._onDidChangeDecorations.beginDeferredEmit();try{const d=new Array(l);for(;a<r||c<l;){let u=null;if(a<r){do u=this._decorations[t[a++]];while(!u&&a<r);if(u){if(u.options.after){const h=this._decorationsTree.getNodeRange(this,u);this._onDidChangeDecorations.recordLineAffectedByInjectedText(h.endLineNumber)}if(u.options.before){const h=this._decorationsTree.getNodeRange(this,u);this._onDidChangeDecorations.recordLineAffectedByInjectedText(h.startLineNumber)}this._decorationsTree.delete(u),s||this._onDidChangeDecorations.checkAffectedAndFire(u.options)}}if(c<l){if(!u){const b=++this._lastDecorationId,w=`${this._instanceId};${b}`;u=new Vce(w,0,0),this._decorations[w]=u}const h=i[c],f=this._validateRangeRelaxedNoAllocations(h.range),g=kQ(h.options),p=this._buffer.getOffsetAt(f.startLineNumber,f.startColumn),_=this._buffer.getOffsetAt(f.endLineNumber,f.endColumn);u.ownerId=e,u.reset(o,p,_,f),u.setOptions(g),u.options.after&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(f.endLineNumber),u.options.before&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(f.startLineNumber),s||this._onDidChangeDecorations.checkAffectedAndFire(g),this._decorationsTree.insert(u),d[c]=u.id,c++}else u&&delete this._decorations[u.id]}return d}finally{this._onDidChangeDecorations.endDeferredEmit()}}getLanguageId(){return this.tokenization.getLanguageId()}setLanguage(e,t){typeof e==\"string\"?(this._languageSelectionListener.clear(),this._setLanguage(e,t)):(this._languageSelectionListener.value=e.onDidChange(()=>this._setLanguage(e.languageId,t)),this._setLanguage(e.languageId,t))}_setLanguage(e,t){this.tokenization.setLanguageId(e,t),this._languageService.requestRichLanguageFeatures(e)}getLanguageIdAtPosition(e,t){return this.tokenization.getLanguageIdAtPosition(e,t)}getWordAtPosition(e){return this._tokenizationTextModelPart.getWordAtPosition(e)}getWordUntilPosition(e){return this._tokenizationTextModelPart.getWordUntilPosition(e)}normalizePosition(e,t){return e}getLineIndentColumn(e){return YBe(this.getLineContent(e))+1}};Th._MODEL_SYNC_LIMIT=50*1024*1024;Th.LARGE_FILE_SIZE_THRESHOLD=20*1024*1024;Th.LARGE_FILE_LINE_COUNT_THRESHOLD=300*1e3;Th.LARGE_FILE_HEAP_OPERATION_THRESHOLD=256*1024*1024;Th.DEFAULT_CREATION_OPTIONS={isForSimpleWidget:!1,tabSize:zo.tabSize,indentSize:zo.indentSize,insertSpaces:zo.insertSpaces,detectIndentation:!1,defaultEOL:1,trimAutoWhitespace:zo.trimAutoWhitespace,largeFileOptimizations:zo.largeFileOptimizations,bracketPairColorizationOptions:zo.bracketPairColorizationOptions};Th=sv=UBe([m5(4,zM),m5(5,An),m5(6,gn)],Th);function YBe(n){let e=0;for(const t of n)if(t===\" \"||t===\"\t\")e++;else break;return e}function _5(n){return!!(n.options.overviewRuler&&n.options.overviewRuler.color)}function XBe(n){return!!n.after||!!n.before}function SN(n){return!!n.options.after||!!n.options.before}class xQ{constructor(){this._decorationsTree0=new f5,this._decorationsTree1=new f5,this._injectedTextDecorationsTree=new f5}ensureAllNodesHaveRanges(e){this.getAll(e,0,!1,!1,!1)}_ensureNodesHaveRanges(e,t){for(const i of t)i.range===null&&(i.range=e.getRangeAt(i.cachedAbsoluteStart,i.cachedAbsoluteEnd));return t}getAllInInterval(e,t,i,s,o,r){const a=e.getVersionId(),l=this._intervalSearch(t,i,s,o,a,r);return this._ensureNodesHaveRanges(e,l)}_intervalSearch(e,t,i,s,o,r){const a=this._decorationsTree0.intervalSearch(e,t,i,s,o,r),l=this._decorationsTree1.intervalSearch(e,t,i,s,o,r),c=this._injectedTextDecorationsTree.intervalSearch(e,t,i,s,o,r);return a.concat(l).concat(c)}getInjectedTextInInterval(e,t,i,s){const o=e.getVersionId(),r=this._injectedTextDecorationsTree.intervalSearch(t,i,s,!1,o,!1);return this._ensureNodesHaveRanges(e,r).filter(a=>a.options.showIfCollapsed||!a.range.isEmpty())}getAllInjectedText(e,t){const i=e.getVersionId(),s=this._injectedTextDecorationsTree.search(t,!1,i,!1);return this._ensureNodesHaveRanges(e,s).filter(o=>o.options.showIfCollapsed||!o.range.isEmpty())}getAll(e,t,i,s,o){const r=e.getVersionId(),a=this._search(t,i,s,r,o);return this._ensureNodesHaveRanges(e,a)}_search(e,t,i,s,o){if(i)return this._decorationsTree1.search(e,t,s,o);{const r=this._decorationsTree0.search(e,t,s,o),a=this._decorationsTree1.search(e,t,s,o),l=this._injectedTextDecorationsTree.search(e,t,s,o);return r.concat(a).concat(l)}}collectNodesFromOwner(e){const t=this._decorationsTree0.collectNodesFromOwner(e),i=this._decorationsTree1.collectNodesFromOwner(e),s=this._injectedTextDecorationsTree.collectNodesFromOwner(e);return t.concat(i).concat(s)}collectNodesPostOrder(){const e=this._decorationsTree0.collectNodesPostOrder(),t=this._decorationsTree1.collectNodesPostOrder(),i=this._injectedTextDecorationsTree.collectNodesPostOrder();return e.concat(t).concat(i)}insert(e){SN(e)?this._injectedTextDecorationsTree.insert(e):_5(e)?this._decorationsTree1.insert(e):this._decorationsTree0.insert(e)}delete(e){SN(e)?this._injectedTextDecorationsTree.delete(e):_5(e)?this._decorationsTree1.delete(e):this._decorationsTree0.delete(e)}getNodeRange(e,t){const i=e.getVersionId();return t.cachedVersionId!==i&&this._resolveNode(t,i),t.range===null&&(t.range=e.getRangeAt(t.cachedAbsoluteStart,t.cachedAbsoluteEnd)),t.range}_resolveNode(e,t){SN(e)?this._injectedTextDecorationsTree.resolveNode(e,t):_5(e)?this._decorationsTree1.resolveNode(e,t):this._decorationsTree0.resolveNode(e,t)}acceptReplace(e,t,i,s){this._decorationsTree0.acceptReplace(e,t,i,s),this._decorationsTree1.acceptReplace(e,t,i,s),this._injectedTextDecorationsTree.acceptReplace(e,t,i,s)}}function Du(n){return n.replace(/[^a-z0-9\\-_]/gi,\" \")}class qce{constructor(e){this.color=e.color||\"\",this.darkColor=e.darkColor||\"\"}}class QBe extends qce{constructor(e){super(e),this._resolvedColor=null,this.position=typeof e.position==\"number\"?e.position:Sl.Center}getColor(e){return this._resolvedColor||(e.type!==\"light\"&&this.darkColor?this._resolvedColor=this._resolveColor(this.darkColor,e):this._resolvedColor=this._resolveColor(this.color,e)),this._resolvedColor}invalidateCachedColor(){this._resolvedColor=null}_resolveColor(e,t){if(typeof e==\"string\")return e;const i=e?t.getColor(e.id):null;return i?i.toString():\"\"}}class JBe{constructor(e){var t;this.position=(t=e==null?void 0:e.position)!==null&&t!==void 0?t:Dh.Center,this.persistLane=e==null?void 0:e.persistLane}}class e9e extends qce{constructor(e){var t,i;super(e),this.position=e.position,this.sectionHeaderStyle=(t=e.sectionHeaderStyle)!==null&&t!==void 0?t:null,this.sectionHeaderText=(i=e.sectionHeaderText)!==null&&i!==void 0?i:null}getColor(e){return this._resolvedColor||(e.type!==\"light\"&&this.darkColor?this._resolvedColor=this._resolveColor(this.darkColor,e):this._resolvedColor=this._resolveColor(this.color,e)),this._resolvedColor}invalidateCachedColor(){this._resolvedColor=void 0}_resolveColor(e,t){return typeof e==\"string\"?le.fromHex(e):t.getColor(e.id)}}class $m{static from(e){return e instanceof $m?e:new $m(e)}constructor(e){this.content=e.content||\"\",this.inlineClassName=e.inlineClassName||null,this.inlineClassNameAffectsLetterSpacing=e.inlineClassNameAffectsLetterSpacing||!1,this.attachedData=e.attachedData||null,this.cursorStops=e.cursorStops||null}}class Wt{static register(e){return new Wt(e)}static createDynamic(e){return new Wt(e)}constructor(e){var t,i,s,o,r,a;this.description=e.description,this.blockClassName=e.blockClassName?Du(e.blockClassName):null,this.blockDoesNotCollapse=(t=e.blockDoesNotCollapse)!==null&&t!==void 0?t:null,this.blockIsAfterEnd=(i=e.blockIsAfterEnd)!==null&&i!==void 0?i:null,this.blockPadding=(s=e.blockPadding)!==null&&s!==void 0?s:null,this.stickiness=e.stickiness||0,this.zIndex=e.zIndex||0,this.className=e.className?Du(e.className):null,this.shouldFillLineOnLineBreak=(o=e.shouldFillLineOnLineBreak)!==null&&o!==void 0?o:null,this.hoverMessage=e.hoverMessage||null,this.glyphMarginHoverMessage=e.glyphMarginHoverMessage||null,this.lineNumberHoverMessage=e.lineNumberHoverMessage||null,this.isWholeLine=e.isWholeLine||!1,this.showIfCollapsed=e.showIfCollapsed||!1,this.collapseOnReplaceEdit=e.collapseOnReplaceEdit||!1,this.overviewRuler=e.overviewRuler?new QBe(e.overviewRuler):null,this.minimap=e.minimap?new e9e(e.minimap):null,this.glyphMargin=e.glyphMarginClassName?new JBe(e.glyphMargin):null,this.glyphMarginClassName=e.glyphMarginClassName?Du(e.glyphMarginClassName):null,this.linesDecorationsClassName=e.linesDecorationsClassName?Du(e.linesDecorationsClassName):null,this.lineNumberClassName=e.lineNumberClassName?Du(e.lineNumberClassName):null,this.linesDecorationsTooltip=e.linesDecorationsTooltip?uRe(e.linesDecorationsTooltip):null,this.firstLineDecorationClassName=e.firstLineDecorationClassName?Du(e.firstLineDecorationClassName):null,this.marginClassName=e.marginClassName?Du(e.marginClassName):null,this.inlineClassName=e.inlineClassName?Du(e.inlineClassName):null,this.inlineClassNameAffectsLetterSpacing=e.inlineClassNameAffectsLetterSpacing||!1,this.beforeContentClassName=e.beforeContentClassName?Du(e.beforeContentClassName):null,this.afterContentClassName=e.afterContentClassName?Du(e.afterContentClassName):null,this.after=e.after?$m.from(e.after):null,this.before=e.before?$m.from(e.before):null,this.hideInCommentTokens=(r=e.hideInCommentTokens)!==null&&r!==void 0?r:!1,this.hideInStringTokens=(a=e.hideInStringTokens)!==null&&a!==void 0?a:!1}}Wt.EMPTY=Wt.register({description:\"empty\"});const LQ=[Wt.register({description:\"tracked-range-always-grows-when-typing-at-edges\",stickiness:0}),Wt.register({description:\"tracked-range-never-grows-when-typing-at-edges\",stickiness:1}),Wt.register({description:\"tracked-range-grows-only-when-typing-before\",stickiness:2}),Wt.register({description:\"tracked-range-grows-only-when-typing-after\",stickiness:3})];function kQ(n){return n instanceof Wt?n:Wt.createDynamic(n)}class t9e extends ne{constructor(e){super(),this.handleBeforeFire=e,this._actual=this._register(new X),this.event=this._actual.event,this._affectedInjectedTextLines=null,this._deferredCnt=0,this._shouldFireDeferred=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1,this._affectsGlyphMargin=!1,this._affectsLineNumber=!1}beginDeferredEmit(){this._deferredCnt++}endDeferredEmit(){var e;this._deferredCnt--,this._deferredCnt===0&&(this._shouldFireDeferred&&this.doFire(),(e=this._affectedInjectedTextLines)===null||e===void 0||e.clear(),this._affectedInjectedTextLines=null)}recordLineAffectedByInjectedText(e){this._affectedInjectedTextLines||(this._affectedInjectedTextLines=new Set),this._affectedInjectedTextLines.add(e)}checkAffectedAndFire(e){var t,i;this._affectsMinimap||(this._affectsMinimap=!!(!((t=e.minimap)===null||t===void 0)&&t.position)),this._affectsOverviewRuler||(this._affectsOverviewRuler=!!(!((i=e.overviewRuler)===null||i===void 0)&&i.color)),this._affectsGlyphMargin||(this._affectsGlyphMargin=!!e.glyphMarginClassName),this._affectsLineNumber||(this._affectsLineNumber=!!e.lineNumberClassName),this.tryFire()}fire(){this._affectsMinimap=!0,this._affectsOverviewRuler=!0,this._affectsGlyphMargin=!0,this.tryFire()}tryFire(){this._deferredCnt===0?this.doFire():this._shouldFireDeferred=!0}doFire(){this.handleBeforeFire(this._affectedInjectedTextLines);const e={affectsMinimap:this._affectsMinimap,affectsOverviewRuler:this._affectsOverviewRuler,affectsGlyphMargin:this._affectsGlyphMargin,affectsLineNumber:this._affectsLineNumber};this._shouldFireDeferred=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1,this._affectsGlyphMargin=!1,this._actual.fire(e)}}class i9e extends ne{constructor(){super(),this._fastEmitter=this._register(new X),this.fastEvent=this._fastEmitter.event,this._slowEmitter=this._register(new X),this.slowEvent=this._slowEmitter.event,this._deferredCnt=0,this._deferredEvent=null}beginDeferredEmit(){this._deferredCnt++}endDeferredEmit(e=null){if(this._deferredCnt--,this._deferredCnt===0&&this._deferredEvent!==null){this._deferredEvent.rawContentChangedEvent.resultingSelection=e;const t=this._deferredEvent;this._deferredEvent=null,this._fastEmitter.fire(t),this._slowEmitter.fire(t)}}fire(e){if(this._deferredCnt>0){this._deferredEvent?this._deferredEvent=this._deferredEvent.merge(e):this._deferredEvent=e;return}this._fastEmitter.fire(e),this._slowEmitter.fire(e)}}class n9e{constructor(){this._onDidChangeVisibleRanges=new X,this.onDidChangeVisibleRanges=this._onDidChangeVisibleRanges.event,this._views=new Set}attachView(){const e=new s9e(t=>{this._onDidChangeVisibleRanges.fire({view:e,state:t})});return this._views.add(e),e}detachView(e){this._views.delete(e),this._onDidChangeVisibleRanges.fire({view:e,state:void 0})}}class s9e{constructor(e){this.handleStateChange=e}setVisibleLines(e,t){const i=e.map(s=>new Vt(s.startLineNumber,s.endLineNumber+1));this.handleStateChange({visibleLineRanges:i,stabilized:t})}}class Qz{static create(e){return new Qz(e.get(134),e.get(133))}constructor(e,t){this.classifier=new o9e(e,t)}createLineBreaksComputer(e,t,i,s,o){const r=[],a=[],l=[];return{addRequest:(c,d,u)=>{r.push(c),a.push(d),l.push(u)},finalize:()=>{const c=e.typicalFullwidthCharacterWidth/e.typicalHalfwidthCharacterWidth,d=[];for(let u=0,h=r.length;u<h;u++){const f=a[u],g=l[u];g&&!g.injectionOptions&&!f?d[u]=r9e(this.classifier,g,r[u],t,i,c,s,o):d[u]=a9e(this.classifier,r[u],f,t,i,c,s,o)}return ZB.length=0,YB.length=0,d}}}}class o9e extends Fw{constructor(e,t){super(0);for(let i=0;i<e.length;i++)this.set(e.charCodeAt(i),1);for(let i=0;i<t.length;i++)this.set(t.charCodeAt(i),2)}get(e){return e>=0&&e<256?this._asciiMap[e]:e>=12352&&e<=12543||e>=13312&&e<=19903||e>=19968&&e<=40959?3:this._map.get(e)||this._defaultValue}}let ZB=[],YB=[];function r9e(n,e,t,i,s,o,r,a){if(s===-1)return null;const l=t.length;if(l<=1)return null;const c=a===\"keepAll\",d=e.breakOffsets,u=e.breakOffsetsVisibleColumn,h=Gce(t,i,s,o,r),f=s-h,g=ZB,p=YB;let _=0,b=0,w=0,y=s;const S=d.length;let x=0;if(x>=0){let k=Math.abs(u[x]-y);for(;x+1<S;){const D=Math.abs(u[x+1]-y);if(D>=k)break;k=D,x++}}for(;x<S;){let k=x<0?0:d[x],D=x<0?0:u[x];b>k&&(k=b,D=w);let I=0,N=0,P=0,O=0;if(D<=y){let z=D,K=k===0?0:t.charCodeAt(k-1),ae=k===0?0:n.get(K),se=!0;for(let he=k;he<l;he++){const me=he,De=t.charCodeAt(he);let lt,We;if(Gs(De)?(he++,lt=0,We=2):(lt=n.get(De),We=wx(De,z,i,o)),me>b&&XB(K,ae,De,lt,c)&&(I=me,N=z),z+=We,z>y){me>b?(P=me,O=z-We):(P=he+1,O=z),z-N>f&&(I=0),se=!1;break}K=De,ae=lt}if(se){_>0&&(g[_]=d[d.length-1],p[_]=u[d.length-1],_++);break}}if(I===0){let z=D,K=t.charCodeAt(k),ae=n.get(K),se=!1;for(let he=k-1;he>=b;he--){const me=he+1,De=t.charCodeAt(he);if(De===9){se=!0;break}let lt,We;if(c0(De)?(he--,lt=0,We=2):(lt=n.get(De),We=Mm(De)?o:1),z<=y){if(P===0&&(P=me,O=z),z<=y-f)break;if(XB(De,lt,K,ae,c)){I=me,N=z;break}}z-=We,K=De,ae=lt}if(I!==0){const he=f-(O-N);if(he<=i){const me=t.charCodeAt(P);let De;Gs(me)?De=2:De=wx(me,O,i,o),he-De<0&&(I=0)}}if(se){x--;continue}}if(I===0&&(I=P,N=O),I<=b){const z=t.charCodeAt(b);Gs(z)?(I=b+2,N=w+2):(I=b+1,N=w+wx(z,w,i,o))}for(b=I,g[_]=I,w=N,p[_]=N,_++,y=N+f;x<0||x<S&&u[x]<N;)x++;let M=Math.abs(u[x]-y);for(;x+1<S;){const z=Math.abs(u[x+1]-y);if(z>=M)break;M=z,x++}}return _===0?null:(g.length=_,p.length=_,ZB=e.breakOffsets,YB=e.breakOffsetsVisibleColumn,e.breakOffsets=g,e.breakOffsetsVisibleColumn=p,e.wrappedTextIndentLength=h,e)}function a9e(n,e,t,i,s,o,r,a){const l=au.applyInjectedText(e,t);let c,d;if(t&&t.length>0?(c=t.map(N=>N.options),d=t.map(N=>N.column-1)):(c=null,d=null),s===-1)return c?new mx(d,c,[l.length],[],0):null;const u=l.length;if(u<=1)return c?new mx(d,c,[l.length],[],0):null;const h=a===\"keepAll\",f=Gce(l,i,s,o,r),g=s-f,p=[],_=[];let b=0,w=0,y=0,S=s,x=l.charCodeAt(0),k=n.get(x),D=wx(x,0,i,o),I=1;Gs(x)&&(D+=1,x=l.charCodeAt(1),k=n.get(x),I++);for(let N=I;N<u;N++){const P=N,O=l.charCodeAt(N);let M,z;Gs(O)?(N++,M=0,z=2):(M=n.get(O),z=wx(O,D,i,o)),XB(x,k,O,M,h)&&(w=P,y=D),D+=z,D>S&&((w===0||D-y>g)&&(w=P,y=D-z),p[b]=w,_[b]=y,b++,S=y+g,w=0),x=O,k=M}return b===0&&(!t||t.length===0)?null:(p[b]=u,_[b]=D,new mx(d,c,p,_,f))}function wx(n,e,t,i){return n===9?t-e%t:Mm(n)||n<32?i:1}function DQ(n,e){return e-n%e}function XB(n,e,t,i,s){return t!==32&&(e===2&&i!==2||e!==1&&i===1||!s&&e===3&&i!==2||!s&&i===3&&e!==1)}function Gce(n,e,t,i,s){let o=0;if(s!==0){const r=fr(n);if(r!==-1){for(let l=0;l<r;l++){const c=n.charCodeAt(l)===9?DQ(o,e):1;o+=c}const a=s===3?2:s===2?1:0;for(let l=0;l<a;l++){const c=DQ(o,e);o+=c}o+i>t&&(o=0)}}return o}class lA{constructor(e){this._selTrackedRange=null,this._trackSelection=!0,this._setState(e,new _o(new A(1,1,1,1),0,0,new ee(1,1),0),new _o(new A(1,1,1,1),0,0,new ee(1,1),0))}dispose(e){this._removeTrackedRange(e)}startTrackingSelection(e){this._trackSelection=!0,this._updateTrackedRange(e)}stopTrackingSelection(e){this._trackSelection=!1,this._removeTrackedRange(e)}_updateTrackedRange(e){this._trackSelection&&(this._selTrackedRange=e.model._setTrackedRange(this._selTrackedRange,this.modelState.selection,0))}_removeTrackedRange(e){this._selTrackedRange=e.model._setTrackedRange(this._selTrackedRange,null,0)}asCursorState(){return new gi(this.modelState,this.viewState)}readSelectionFromMarkers(e){const t=e.model._getTrackedRange(this._selTrackedRange);return this.modelState.selection.isEmpty()&&!t.isEmpty()?it.fromRange(t.collapseToEnd(),this.modelState.selection.getDirection()):it.fromRange(t,this.modelState.selection.getDirection())}ensureValidState(e){this._setState(e,this.modelState,this.viewState)}setState(e,t,i){this._setState(e,t,i)}static _validatePositionWithCache(e,t,i,s){return t.equals(i)?s:e.normalizePosition(t,2)}static _validateViewState(e,t){const i=t.position,s=t.selectionStart.getStartPosition(),o=t.selectionStart.getEndPosition(),r=e.normalizePosition(i,2),a=this._validatePositionWithCache(e,s,i,r),l=this._validatePositionWithCache(e,o,s,a);return i.equals(r)&&s.equals(a)&&o.equals(l)?t:new _o(A.fromPositions(a,l),t.selectionStartKind,t.selectionStartLeftoverVisibleColumns+s.column-a.column,r,t.leftoverVisibleColumns+i.column-r.column)}_setState(e,t,i){if(i&&(i=lA._validateViewState(e.viewModel,i)),t){const s=e.model.validateRange(t.selectionStart),o=t.selectionStart.equalsRange(s)?t.selectionStartLeftoverVisibleColumns:0,r=e.model.validatePosition(t.position),a=t.position.equals(r)?t.leftoverVisibleColumns:0;t=new _o(s,t.selectionStartKind,o,r,a)}else{if(!i)return;const s=e.model.validateRange(e.coordinatesConverter.convertViewRangeToModelRange(i.selectionStart)),o=e.model.validatePosition(e.coordinatesConverter.convertViewPositionToModelPosition(i.position));t=new _o(s,i.selectionStartKind,i.selectionStartLeftoverVisibleColumns,o,i.leftoverVisibleColumns)}if(i){const s=e.coordinatesConverter.validateViewRange(i.selectionStart,t.selectionStart),o=e.coordinatesConverter.validateViewPosition(i.position,t.position);i=new _o(s,t.selectionStartKind,t.selectionStartLeftoverVisibleColumns,o,t.leftoverVisibleColumns)}else{const s=e.coordinatesConverter.convertModelPositionToViewPosition(new ee(t.selectionStart.startLineNumber,t.selectionStart.startColumn)),o=e.coordinatesConverter.convertModelPositionToViewPosition(new ee(t.selectionStart.endLineNumber,t.selectionStart.endColumn)),r=new A(s.lineNumber,s.column,o.lineNumber,o.column),a=e.coordinatesConverter.convertModelPositionToViewPosition(t.position);i=new _o(r,t.selectionStartKind,t.selectionStartLeftoverVisibleColumns,a,t.leftoverVisibleColumns)}this.modelState=t,this.viewState=i,this._updateTrackedRange(e)}}class IQ{constructor(e){this.context=e,this.cursors=[new lA(e)],this.lastAddedCursorIndex=0}dispose(){for(const e of this.cursors)e.dispose(this.context)}startTrackingSelections(){for(const e of this.cursors)e.startTrackingSelection(this.context)}stopTrackingSelections(){for(const e of this.cursors)e.stopTrackingSelection(this.context)}updateContext(e){this.context=e}ensureValidState(){for(const e of this.cursors)e.ensureValidState(this.context)}readSelectionFromMarkers(){return this.cursors.map(e=>e.readSelectionFromMarkers(this.context))}getAll(){return this.cursors.map(e=>e.asCursorState())}getViewPositions(){return this.cursors.map(e=>e.viewState.position)}getTopMostViewPosition(){return WOe(this.cursors,oa(e=>e.viewState.position,ee.compare)).viewState.position}getBottomMostViewPosition(){return BOe(this.cursors,oa(e=>e.viewState.position,ee.compare)).viewState.position}getSelections(){return this.cursors.map(e=>e.modelState.selection)}getViewSelections(){return this.cursors.map(e=>e.viewState.selection)}setSelections(e){this.setStates(gi.fromModelSelections(e))}getPrimaryCursor(){return this.cursors[0].asCursorState()}setStates(e){e!==null&&(this.cursors[0].setState(this.context,e[0].modelState,e[0].viewState),this._setSecondaryStates(e.slice(1)))}_setSecondaryStates(e){const t=this.cursors.length-1,i=e.length;if(t<i){const s=i-t;for(let o=0;o<s;o++)this._addSecondaryCursor()}else if(t>i){const s=t-i;for(let o=0;o<s;o++)this._removeSecondaryCursor(this.cursors.length-2)}for(let s=0;s<i;s++)this.cursors[s+1].setState(this.context,e[s].modelState,e[s].viewState)}killSecondaryCursors(){this._setSecondaryStates([])}_addSecondaryCursor(){this.cursors.push(new lA(this.context)),this.lastAddedCursorIndex=this.cursors.length-1}getLastAddedCursorIndex(){return this.cursors.length===1||this.lastAddedCursorIndex===0?0:this.lastAddedCursorIndex}_removeSecondaryCursor(e){this.lastAddedCursorIndex>=e+1&&this.lastAddedCursorIndex--,this.cursors[e+1].dispose(this.context),this.cursors.splice(e+1,1)}normalize(){if(this.cursors.length===1)return;const e=this.cursors.slice(0),t=[];for(let i=0,s=e.length;i<s;i++)t.push({index:i,selection:e[i].modelState.selection});t.sort(oa(i=>i.selection,A.compareRangesUsingStarts));for(let i=0;i<t.length-1;i++){const s=t[i],o=t[i+1],r=s.selection,a=o.selection;if(!this.context.cursorConfig.multiCursorMergeOverlapping)continue;let l;if(a.isEmpty()||r.isEmpty()?l=a.getStartPosition().isBeforeOrEqual(r.getEndPosition()):l=a.getStartPosition().isBefore(r.getEndPosition()),l){const c=s.index<o.index?i:i+1,d=s.index<o.index?i+1:i,u=t[d].index,h=t[c].index,f=t[d].selection,g=t[c].selection;if(!f.equalsSelection(g)){const p=f.plusRange(g),_=f.selectionStartLineNumber===f.startLineNumber&&f.selectionStartColumn===f.startColumn,b=g.selectionStartLineNumber===g.startLineNumber&&g.selectionStartColumn===g.startColumn;let w;u===this.lastAddedCursorIndex?(w=_,this.lastAddedCursorIndex=h):w=b;let y;w?y=new it(p.startLineNumber,p.startColumn,p.endLineNumber,p.endColumn):y=new it(p.endLineNumber,p.endColumn,p.startLineNumber,p.startColumn),t[c].selection=y;const S=gi.fromModelSelection(y);e[h].setState(this.context,S.modelState,S.viewState)}for(const p of t)p.index>u&&p.index--;e.splice(u,1),t.splice(d,1),this._removeSecondaryCursor(u-1),i--}}}}class EQ{constructor(e,t,i,s){this._cursorContextBrand=void 0,this.model=e,this.viewModel=t,this.coordinatesConverter=i,this.cursorConfig=s}}class l9e{constructor(){this.type=0}}class c9e{constructor(){this.type=1}}class d9e{constructor(e){this.type=2,this._source=e}hasChanged(e){return this._source.hasChanged(e)}}class u9e{constructor(e,t,i){this.selections=e,this.modelSelections=t,this.reason=i,this.type=3}}class V_{constructor(e){this.type=4,e?(this.affectsMinimap=e.affectsMinimap,this.affectsOverviewRuler=e.affectsOverviewRuler,this.affectsGlyphMargin=e.affectsGlyphMargin,this.affectsLineNumber=e.affectsLineNumber):(this.affectsMinimap=!0,this.affectsOverviewRuler=!0,this.affectsGlyphMargin=!0,this.affectsLineNumber=!0)}}class GE{constructor(){this.type=5}}class h9e{constructor(e){this.type=6,this.isFocused=e}}class f9e{constructor(){this.type=7}}class ZE{constructor(){this.type=8}}class Zce{constructor(e,t){this.fromLineNumber=e,this.count=t,this.type=9}}class QB{constructor(e,t){this.type=10,this.fromLineNumber=e,this.toLineNumber=t}}class JB{constructor(e,t){this.type=11,this.fromLineNumber=e,this.toLineNumber=t}}class yx{constructor(e,t,i,s,o,r,a){this.source=e,this.minimalReveal=t,this.range=i,this.selections=s,this.verticalType=o,this.revealHorizontal=r,this.scrollType=a,this.type=12}}class g9e{constructor(e){this.type=13,this.scrollWidth=e.scrollWidth,this.scrollLeft=e.scrollLeft,this.scrollHeight=e.scrollHeight,this.scrollTop=e.scrollTop,this.scrollWidthChanged=e.scrollWidthChanged,this.scrollLeftChanged=e.scrollLeftChanged,this.scrollHeightChanged=e.scrollHeightChanged,this.scrollTopChanged=e.scrollTopChanged}}class p9e{constructor(e){this.theme=e,this.type=14}}class m9e{constructor(e){this.type=15,this.ranges=e}}class _9e{constructor(){this.type=16}}let v9e=class{constructor(){this.type=17}};class b9e extends ne{constructor(){super(),this._onEvent=this._register(new X),this.onEvent=this._onEvent.event,this._eventHandlers=[],this._viewEventQueue=null,this._isConsumingViewEventQueue=!1,this._collector=null,this._collectorCnt=0,this._outgoingEvents=[]}emitOutgoingEvent(e){this._addOutgoingEvent(e),this._emitOutgoingEvents()}_addOutgoingEvent(e){for(let t=0,i=this._outgoingEvents.length;t<i;t++){const s=this._outgoingEvents[t].kind===e.kind?this._outgoingEvents[t].attemptToMerge(e):null;if(s){this._outgoingEvents[t]=s;return}}this._outgoingEvents.push(e)}_emitOutgoingEvents(){for(;this._outgoingEvents.length>0;){if(this._collector||this._isConsumingViewEventQueue)return;const e=this._outgoingEvents.shift();e.isNoOp()||this._onEvent.fire(e)}}addViewEventHandler(e){for(let t=0,i=this._eventHandlers.length;t<i;t++)this._eventHandlers[t]===e&&console.warn(\"Detected duplicate listener in ViewEventDispatcher\",e);this._eventHandlers.push(e)}removeViewEventHandler(e){for(let t=0;t<this._eventHandlers.length;t++)if(this._eventHandlers[t]===e){this._eventHandlers.splice(t,1);break}}beginEmitViewEvents(){return this._collectorCnt++,this._collectorCnt===1&&(this._collector=new C9e),this._collector}endEmitViewEvents(){if(this._collectorCnt--,this._collectorCnt===0){const e=this._collector.outgoingEvents,t=this._collector.viewEvents;this._collector=null;for(const i of e)this._addOutgoingEvent(i);t.length>0&&this._emitMany(t)}this._emitOutgoingEvents()}emitSingleViewEvent(e){try{this.beginEmitViewEvents().emitViewEvent(e)}finally{this.endEmitViewEvents()}}_emitMany(e){this._viewEventQueue?this._viewEventQueue=this._viewEventQueue.concat(e):this._viewEventQueue=e,this._isConsumingViewEventQueue||this._consumeViewEventQueue()}_consumeViewEventQueue(){try{this._isConsumingViewEventQueue=!0,this._doConsumeQueue()}finally{this._isConsumingViewEventQueue=!1}}_doConsumeQueue(){for(;this._viewEventQueue;){const e=this._viewEventQueue;this._viewEventQueue=null;const t=this._eventHandlers.slice(0);for(const i of t)i.handleEvents(e)}}}class C9e{constructor(){this.viewEvents=[],this.outgoingEvents=[]}emitViewEvent(e){this.viewEvents.push(e)}emitOutgoingEvent(e){this.outgoingEvents.push(e)}}class Jz{constructor(e,t,i,s){this.kind=0,this._oldContentWidth=e,this._oldContentHeight=t,this.contentWidth=i,this.contentHeight=s,this.contentWidthChanged=this._oldContentWidth!==this.contentWidth,this.contentHeightChanged=this._oldContentHeight!==this.contentHeight}isNoOp(){return!this.contentWidthChanged&&!this.contentHeightChanged}attemptToMerge(e){return e.kind!==this.kind?null:new Jz(this._oldContentWidth,this._oldContentHeight,e.contentWidth,e.contentHeight)}}class e${constructor(e,t){this.kind=1,this.oldHasFocus=e,this.hasFocus=t}isNoOp(){return this.oldHasFocus===this.hasFocus}attemptToMerge(e){return e.kind!==this.kind?null:new e$(this.oldHasFocus,e.hasFocus)}}class t${constructor(e,t,i,s,o,r,a,l){this.kind=2,this._oldScrollWidth=e,this._oldScrollLeft=t,this._oldScrollHeight=i,this._oldScrollTop=s,this.scrollWidth=o,this.scrollLeft=r,this.scrollHeight=a,this.scrollTop=l,this.scrollWidthChanged=this._oldScrollWidth!==this.scrollWidth,this.scrollLeftChanged=this._oldScrollLeft!==this.scrollLeft,this.scrollHeightChanged=this._oldScrollHeight!==this.scrollHeight,this.scrollTopChanged=this._oldScrollTop!==this.scrollTop}isNoOp(){return!this.scrollWidthChanged&&!this.scrollLeftChanged&&!this.scrollHeightChanged&&!this.scrollTopChanged}attemptToMerge(e){return e.kind!==this.kind?null:new t$(this._oldScrollWidth,this._oldScrollLeft,this._oldScrollHeight,this._oldScrollTop,e.scrollWidth,e.scrollLeft,e.scrollHeight,e.scrollTop)}}class w9e{constructor(){this.kind=3}isNoOp(){return!1}attemptToMerge(e){return e.kind!==this.kind?null:this}}class y9e{constructor(){this.kind=4}isNoOp(){return!1}attemptToMerge(e){return e.kind!==this.kind?null:this}}class cA{constructor(e,t,i,s,o,r,a){this.kind=6,this.oldSelections=e,this.selections=t,this.oldModelVersionId=i,this.modelVersionId=s,this.source=o,this.reason=r,this.reachedMaxCursorCount=a}static _selectionsAreEqual(e,t){if(!e&&!t)return!0;if(!e||!t)return!1;const i=e.length,s=t.length;if(i!==s)return!1;for(let o=0;o<i;o++)if(!e[o].equalsSelection(t[o]))return!1;return!0}isNoOp(){return cA._selectionsAreEqual(this.oldSelections,this.selections)&&this.oldModelVersionId===this.modelVersionId}attemptToMerge(e){return e.kind!==this.kind?null:new cA(this.oldSelections,e.selections,this.oldModelVersionId,e.modelVersionId,e.source,e.reason,this.reachedMaxCursorCount||e.reachedMaxCursorCount)}}class S9e{constructor(){this.kind=5}isNoOp(){return!1}attemptToMerge(e){return e.kind!==this.kind?null:this}}class x9e{constructor(e){this.event=e,this.kind=7}isNoOp(){return!1}attemptToMerge(e){return null}}class L9e{constructor(e){this.event=e,this.kind=8}isNoOp(){return!1}attemptToMerge(e){return null}}class k9e{constructor(e){this.event=e,this.kind=9}isNoOp(){return!1}attemptToMerge(e){return null}}class D9e{constructor(e){this.event=e,this.kind=10}isNoOp(){return!1}attemptToMerge(e){return null}}class I9e{constructor(e){this.event=e,this.kind=11}isNoOp(){return!1}attemptToMerge(e){return null}}class E9e{constructor(e){this.event=e,this.kind=12}isNoOp(){return!1}attemptToMerge(e){return null}}class T9e extends ne{constructor(e,t,i,s){super(),this._model=e,this._knownModelVersionId=this._model.getVersionId(),this._viewModel=t,this._coordinatesConverter=i,this.context=new EQ(this._model,this._viewModel,this._coordinatesConverter,s),this._cursors=new IQ(this.context),this._hasFocus=!1,this._isHandling=!1,this._compositionState=null,this._columnSelectData=null,this._autoClosedActions=[],this._prevEditOperationType=0}dispose(){this._cursors.dispose(),this._autoClosedActions=tn(this._autoClosedActions),super.dispose()}updateConfiguration(e){this.context=new EQ(this._model,this._viewModel,this._coordinatesConverter,e),this._cursors.updateContext(this.context)}onLineMappingChanged(e){this._knownModelVersionId===this._model.getVersionId()&&this.setStates(e,\"viewModel\",0,this.getCursorStates())}setHasFocus(e){this._hasFocus=e}_validateAutoClosedActions(){if(this._autoClosedActions.length>0){const e=this._cursors.getSelections();for(let t=0;t<this._autoClosedActions.length;t++){const i=this._autoClosedActions[t];i.isValid(e)||(i.dispose(),this._autoClosedActions.splice(t,1),t--)}}}getPrimaryCursorState(){return this._cursors.getPrimaryCursor()}getLastAddedCursorIndex(){return this._cursors.getLastAddedCursorIndex()}getCursorStates(){return this._cursors.getAll()}setStates(e,t,i,s){let o=!1;const r=this.context.cursorConfig.multiCursorLimit;s!==null&&s.length>r&&(s=s.slice(0,r),o=!0);const a=Sx.from(this._model,this);return this._cursors.setStates(s),this._cursors.normalize(),this._columnSelectData=null,this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(e,t,i,a,o)}setCursorColumnSelectData(e){this._columnSelectData=e}revealAll(e,t,i,s,o,r){const a=this._cursors.getViewPositions();let l=null,c=null;a.length>1?c=this._cursors.getViewSelections():l=A.fromPositions(a[0],a[0]),e.emitViewEvent(new yx(t,i,l,c,s,o,r))}revealPrimary(e,t,i,s,o,r){const l=[this._cursors.getPrimaryCursor().viewState.selection];e.emitViewEvent(new yx(t,i,null,l,s,o,r))}saveState(){const e=[],t=this._cursors.getSelections();for(let i=0,s=t.length;i<s;i++){const o=t[i];e.push({inSelectionMode:!o.isEmpty(),selectionStart:{lineNumber:o.selectionStartLineNumber,column:o.selectionStartColumn},position:{lineNumber:o.positionLineNumber,column:o.positionColumn}})}return e}restoreState(e,t){const i=[];for(let s=0,o=t.length;s<o;s++){const r=t[s];let a=1,l=1;r.position&&r.position.lineNumber&&(a=r.position.lineNumber),r.position&&r.position.column&&(l=r.position.column);let c=a,d=l;r.selectionStart&&r.selectionStart.lineNumber&&(c=r.selectionStart.lineNumber),r.selectionStart&&r.selectionStart.column&&(d=r.selectionStart.column),i.push({selectionStartLineNumber:c,selectionStartColumn:d,positionLineNumber:a,positionColumn:l})}this.setStates(e,\"restoreState\",0,gi.fromModelSelections(i)),this.revealAll(e,\"restoreState\",!1,0,!0,1)}onModelContentChanged(e,t){if(t instanceof kce){if(this._isHandling)return;this._isHandling=!0;try{this.setStates(e,\"modelChange\",0,this.getCursorStates())}finally{this._isHandling=!1}}else{const i=t.rawContentChangedEvent;if(this._knownModelVersionId=i.versionId,this._isHandling)return;const s=i.containsEvent(1);if(this._prevEditOperationType=0,s)this._cursors.dispose(),this._cursors=new IQ(this.context),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(e,\"model\",1,null,!1);else if(this._hasFocus&&i.resultingSelection&&i.resultingSelection.length>0){const o=gi.fromModelSelections(i.resultingSelection);this.setStates(e,\"modelChange\",i.isUndoing?5:i.isRedoing?6:2,o)&&this.revealAll(e,\"modelChange\",!1,0,!0,0)}else{const o=this._cursors.readSelectionFromMarkers();this.setStates(e,\"modelChange\",2,gi.fromModelSelections(o))}}}getSelection(){return this._cursors.getPrimaryCursor().modelState.selection}getTopMostViewPosition(){return this._cursors.getTopMostViewPosition()}getBottomMostViewPosition(){return this._cursors.getBottomMostViewPosition()}getCursorColumnSelectData(){if(this._columnSelectData)return this._columnSelectData;const e=this._cursors.getPrimaryCursor(),t=e.viewState.selectionStart.getStartPosition(),i=e.viewState.position;return{isReal:!1,fromViewLineNumber:t.lineNumber,fromViewVisualColumn:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,t),toViewLineNumber:i.lineNumber,toViewVisualColumn:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,i)}}getSelections(){return this._cursors.getSelections()}setSelections(e,t,i,s){this.setStates(e,t,s,gi.fromModelSelections(i))}getPrevEditOperationType(){return this._prevEditOperationType}setPrevEditOperationType(e){this._prevEditOperationType=e}_pushAutoClosedAction(e,t){const i=[],s=[];for(let a=0,l=e.length;a<l;a++)i.push({range:e[a],options:{description:\"auto-closed-character\",inlineClassName:\"auto-closed-character\",stickiness:1}}),s.push({range:t[a],options:{description:\"auto-closed-enclosing\",stickiness:1}});const o=this._model.deltaDecorations([],i),r=this._model.deltaDecorations([],s);this._autoClosedActions.push(new TQ(this._model,o,r))}_executeEditOperation(e){if(!e)return;e.shouldPushStackElementBefore&&this._model.pushStackElement();const t=N9e.executeCommands(this._model,this._cursors.getSelections(),e.commands);if(t){this._interpretCommandResult(t);const i=[],s=[];for(let o=0;o<e.commands.length;o++){const r=e.commands[o];r instanceof _ce&&r.enclosingRange&&r.closeCharacterRange&&(i.push(r.closeCharacterRange),s.push(r.enclosingRange))}i.length>0&&this._pushAutoClosedAction(i,s),this._prevEditOperationType=e.type}e.shouldPushStackElementAfter&&this._model.pushStackElement()}_interpretCommandResult(e){(!e||e.length===0)&&(e=this._cursors.readSelectionFromMarkers()),this._columnSelectData=null,this._cursors.setSelections(e),this._cursors.normalize()}_emitStateChangedIfNecessary(e,t,i,s,o){const r=Sx.from(this._model,this);if(r.equals(s))return!1;const a=this._cursors.getSelections(),l=this._cursors.getViewSelections();if(e.emitViewEvent(new u9e(l,a,i)),!s||s.cursorState.length!==r.cursorState.length||r.cursorState.some((c,d)=>!c.modelState.equals(s.cursorState[d].modelState))){const c=s?s.cursorState.map(u=>u.modelState.selection):null,d=s?s.modelVersionId:0;e.emitOutgoingEvent(new cA(c,a,d,r.modelVersionId,t||\"keyboard\",i,o))}return!0}_findAutoClosingPairs(e){if(!e.length)return null;const t=[];for(let i=0,s=e.length;i<s;i++){const o=e[i];if(!o.text||o.text.indexOf(`\n`)>=0)return null;const r=o.text.match(/([)\\]}>'\"`])([^)\\]}>'\"`]*)$/);if(!r)return null;const a=r[1],l=this.context.cursorConfig.autoClosingPairs.autoClosingPairsCloseSingleChar.get(a);if(!l||l.length!==1)return null;const c=l[0].open,d=o.text.length-r[2].length-1,u=o.text.lastIndexOf(c,d-1);if(u===-1)return null;t.push([u,d])}return t}executeEdits(e,t,i,s){let o=null;t===\"snippet\"&&(o=this._findAutoClosingPairs(i)),o&&(i[0]._isTracked=!0);const r=[],a=[],l=this._model.pushEditOperations(this.getSelections(),i,c=>{if(o)for(let u=0,h=o.length;u<h;u++){const[f,g]=o[u],p=c[u],_=p.range.startLineNumber,b=p.range.startColumn-1+f,w=p.range.startColumn-1+g;r.push(new A(_,w+1,_,w+2)),a.push(new A(_,b+1,_,w+2))}const d=s(c);return d&&(this._isHandling=!0),d});l&&(this._isHandling=!1,this.setSelections(e,t,l,0)),r.length>0&&this._pushAutoClosedAction(r,a)}_executeEdit(e,t,i,s=0){if(this.context.cursorConfig.readOnly)return;const o=Sx.from(this._model,this);this._cursors.stopTrackingSelections(),this._isHandling=!0;try{this._cursors.ensureValidState(),e()}catch(r){Mt(r)}this._isHandling=!1,this._cursors.startTrackingSelections(),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(t,i,s,o,!1)&&this.revealAll(t,i,!1,0,!0,0)}getAutoClosedCharacters(){return TQ.getAllAutoClosedCharacters(this._autoClosedActions)}startComposition(e){this._compositionState=new xx(this._model,this.getSelections())}endComposition(e,t){const i=this._compositionState?this._compositionState.deduceOutcome(this._model,this.getSelections()):null;this._compositionState=null,this._executeEdit(()=>{t===\"keyboard\"&&this._executeEditOperation(Bn.compositionEndWithInterceptors(this._prevEditOperationType,this.context.cursorConfig,this._model,i,this.getSelections(),this.getAutoClosedCharacters()))},e,t)}type(e,t,i){this._executeEdit(()=>{if(i===\"keyboard\"){const s=t.length;let o=0;for(;o<s;){const r=GV(t,o),a=t.substr(o,r);this._executeEditOperation(Bn.typeWithInterceptors(!!this._compositionState,this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),this.getAutoClosedCharacters(),a)),o+=r}}else this._executeEditOperation(Bn.typeWithoutInterceptors(this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),t))},e,i)}compositionType(e,t,i,s,o,r){if(t.length===0&&i===0&&s===0){if(o!==0){const a=this.getSelections().map(l=>{const c=l.getPosition();return new it(c.lineNumber,c.column+o,c.lineNumber,c.column+o)});this.setSelections(e,r,a,0)}return}this._executeEdit(()=>{this._executeEditOperation(Bn.compositionType(this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),t,i,s,o))},e,r)}paste(e,t,i,s,o){this._executeEdit(()=>{this._executeEditOperation(Bn.paste(this.context.cursorConfig,this._model,this.getSelections(),t,i,s||[]))},e,o,4)}cut(e,t){this._executeEdit(()=>{this._executeEditOperation(m0.cut(this.context.cursorConfig,this._model,this.getSelections()))},e,t)}executeCommand(e,t,i){this._executeEdit(()=>{this._cursors.killSecondaryCursors(),this._executeEditOperation(new Zr(0,[t],{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))},e,i)}executeCommands(e,t,i){this._executeEdit(()=>{this._executeEditOperation(new Zr(0,t,{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))},e,i)}}class Sx{static from(e,t){return new Sx(e.getVersionId(),t.getCursorStates())}constructor(e,t){this.modelVersionId=e,this.cursorState=t}equals(e){if(!e||this.modelVersionId!==e.modelVersionId||this.cursorState.length!==e.cursorState.length)return!1;for(let t=0,i=this.cursorState.length;t<i;t++)if(!this.cursorState[t].equals(e.cursorState[t]))return!1;return!0}}class TQ{static getAllAutoClosedCharacters(e){let t=[];for(const i of e)t=t.concat(i.getAutoClosedCharactersRanges());return t}constructor(e,t,i){this._model=e,this._autoClosedCharactersDecorations=t,this._autoClosedEnclosingDecorations=i}dispose(){this._autoClosedCharactersDecorations=this._model.deltaDecorations(this._autoClosedCharactersDecorations,[]),this._autoClosedEnclosingDecorations=this._model.deltaDecorations(this._autoClosedEnclosingDecorations,[])}getAutoClosedCharactersRanges(){const e=[];for(let t=0;t<this._autoClosedCharactersDecorations.length;t++){const i=this._model.getDecorationRange(this._autoClosedCharactersDecorations[t]);i&&e.push(i)}return e}isValid(e){const t=[];for(let i=0;i<this._autoClosedEnclosingDecorations.length;i++){const s=this._model.getDecorationRange(this._autoClosedEnclosingDecorations[i]);if(s&&(t.push(s),s.startLineNumber!==s.endLineNumber))return!1}t.sort(A.compareRangesUsingStarts),e.sort(A.compareRangesUsingStarts);for(let i=0;i<e.length;i++)if(i>=t.length||!t[i].strictContainsRange(e[i]))return!1;return!0}}class N9e{static executeCommands(e,t,i){const s={model:e,selectionsBefore:t,trackedRanges:[],trackedRangesDirection:[]},o=this._innerExecuteCommands(s,i);for(let r=0,a=s.trackedRanges.length;r<a;r++)s.model._setTrackedRange(s.trackedRanges[r],null,0);return o}static _innerExecuteCommands(e,t){if(this._arrayIsEmpty(t))return null;const i=this._getEditOperations(e,t);if(i.operations.length===0)return null;const s=i.operations,o=this._getLoserCursorMap(s);if(o.hasOwnProperty(\"0\"))return console.warn(\"Ignoring commands\"),null;const r=[];for(let c=0,d=s.length;c<d;c++)o.hasOwnProperty(s[c].identifier.major.toString())||r.push(s[c]);i.hadTrackedEditOperation&&r.length>0&&(r[0]._isTracked=!0);let a=e.model.pushEditOperations(e.selectionsBefore,r,c=>{const d=[];for(let f=0;f<e.selectionsBefore.length;f++)d[f]=[];for(const f of c)f.identifier&&d[f.identifier.major].push(f);const u=(f,g)=>f.identifier.minor-g.identifier.minor,h=[];for(let f=0;f<e.selectionsBefore.length;f++)d[f].length>0?(d[f].sort(u),h[f]=t[f].computeCursorState(e.model,{getInverseEditOperations:()=>d[f],getTrackedSelection:g=>{const p=parseInt(g,10),_=e.model._getTrackedRange(e.trackedRanges[p]);return e.trackedRangesDirection[p]===0?new it(_.startLineNumber,_.startColumn,_.endLineNumber,_.endColumn):new it(_.endLineNumber,_.endColumn,_.startLineNumber,_.startColumn)}})):h[f]=e.selectionsBefore[f];return h});a||(a=e.selectionsBefore);const l=[];for(const c in o)o.hasOwnProperty(c)&&l.push(parseInt(c,10));l.sort((c,d)=>d-c);for(const c of l)a.splice(c,1);return a}static _arrayIsEmpty(e){for(let t=0,i=e.length;t<i;t++)if(e[t])return!1;return!0}static _getEditOperations(e,t){let i=[],s=!1;for(let o=0,r=t.length;o<r;o++){const a=t[o];if(a){const l=this._getEditOperationsFromCommand(e,o,a);i=i.concat(l.operations),s=s||l.hadTrackedEditOperation}}return{operations:i,hadTrackedEditOperation:s}}static _getEditOperationsFromCommand(e,t,i){const s=[];let o=0;const r=(u,h,f=!1)=>{A.isEmpty(u)&&h===\"\"||s.push({identifier:{major:t,minor:o++},range:u,text:h,forceMoveMarkers:f,isAutoWhitespaceEdit:i.insertsAutoWhitespace})};let a=!1;const d={addEditOperation:r,addTrackedEditOperation:(u,h,f)=>{a=!0,r(u,h,f)},trackSelection:(u,h)=>{const f=it.liftSelection(u);let g;if(f.isEmpty())if(typeof h==\"boolean\")h?g=2:g=3;else{const b=e.model.getLineMaxColumn(f.startLineNumber);f.startColumn===b?g=2:g=3}else g=1;const p=e.trackedRanges.length,_=e.model._setTrackedRange(null,f,g);return e.trackedRanges[p]=_,e.trackedRangesDirection[p]=f.getDirection(),p.toString()}};try{i.getEditOperations(e.model,d)}catch(u){return Mt(u),{operations:[],hadTrackedEditOperation:!1}}return{operations:s,hadTrackedEditOperation:a}}static _getLoserCursorMap(e){e=e.slice(0),e.sort((i,s)=>-A.compareRangesUsingEnds(i.range,s.range));const t={};for(let i=1;i<e.length;i++){const s=e[i-1],o=e[i];if(A.getStartPosition(s.range).isBefore(A.getEndPosition(o.range))){let r;s.identifier.major>o.identifier.major?r=s.identifier.major:r=o.identifier.major,t[r.toString()]=!0;for(let a=0;a<e.length;a++)e[a].identifier.major===r&&(e.splice(a,1),a<i&&i--,a--);i>0&&i--}}return t}}class A9e{constructor(e,t,i){this.text=e,this.startSelection=t,this.endSelection=i}}class xx{static _capture(e,t){const i=[];for(const s of t){if(s.startLineNumber!==s.endLineNumber)return null;i.push(new A9e(e.getLineContent(s.startLineNumber),s.startColumn-1,s.endColumn-1))}return i}constructor(e,t){this._original=xx._capture(e,t)}deduceOutcome(e,t){if(!this._original)return null;const i=xx._capture(e,t);if(!i||this._original.length!==i.length)return null;const s=[];for(let o=0,r=this._original.length;o<r;o++)s.push(xx._deduceOutcome(this._original[o],i[o]));return s}static _deduceOutcome(e,t){const i=Math.min(e.startSelection,t.startSelection,Rm(e.text,t.text)),s=Math.min(e.text.length-e.endSelection,t.text.length-t.endSelection,M2(e.text,t.text)),o=e.text.substring(i,e.text.length-s),r=t.text.substring(i,t.text.length-s);return new I8e(o,e.startSelection-i,e.endSelection-i,r,t.startSelection-i,t.endSelection-i)}}const NQ={getInitialState:()=>OC,tokenizeEncoded:(n,e,t)=>IM(0,t)};async function R9e(n,e,t){if(!t)return AQ(e,n.languageIdCodec,NQ);const i=await Zn.getOrCreate(t);return AQ(e,n.languageIdCodec,i||NQ)}function M9e(n,e,t,i,s,o,r){let a=\"<div>\",l=i,c=0,d=!0;for(let u=0,h=e.getCount();u<h;u++){const f=e.getEndOffset(u);if(f<=i)continue;let g=\"\";for(;l<f&&l<s;l++){const p=n.charCodeAt(l);switch(p){case 9:{let _=o-(l+c)%o;for(c+=_-1;_>0;)r&&d?(g+=\"&#160;\",d=!1):(g+=\" \",d=!0),_--;break}case 60:g+=\"&lt;\",d=!1;break;case 62:g+=\"&gt;\",d=!1;break;case 38:g+=\"&amp;\",d=!1;break;case 0:g+=\"&#00;\",d=!1;break;case 65279:case 8232:case 8233:case 133:g+=\"�\",d=!1;break;case 13:g+=\"&#8203\",d=!1;break;case 32:r&&d?(g+=\"&#160;\",d=!1):(g+=\" \",d=!0);break;default:g+=String.fromCharCode(p),d=!1}}if(a+=`<span style=\"${e.getInlineStyle(u,t)}\">${g}</span>`,f>s||l>=s)break}return a+=\"</div>\",a}function AQ(n,e,t){let i='<div class=\"monaco-tokenized-source\">';const s=Wh(n);let o=t.getInitialState();for(let r=0,a=s.length;r<a;r++){const l=s[r];r>0&&(i+=\"<br/>\");const c=t.tokenizeEncoded(l,!0,o);Is.convertToEndOffset(c.tokens,l.length);const u=new Is(c.tokens,l,e).inflate();let h=0;for(let f=0,g=u.getCount();f<g;f++){const p=u.getClassName(f),_=u.getEndOffset(f);i+=`<span class=\"${p}\">${ox(l.substring(h,_))}</span>`,h=_}o=c.endState}return i+=\"</div>\",i}class P9e{constructor(){this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[]}insert(e){this._hasPending=!0,this._inserts.push(e)}change(e){this._hasPending=!0,this._changes.push(e)}remove(e){this._hasPending=!0,this._removes.push(e)}mustCommit(){return this._hasPending}commit(e){if(!this._hasPending)return;const t=this._inserts,i=this._changes,s=this._removes;this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[],e._commitPendingChanges(t,i,s)}}class O9e{constructor(e,t,i,s,o){this.id=e,this.afterLineNumber=t,this.ordinal=i,this.height=s,this.minWidth=o,this.prefixSum=0}}let Yce=class e9{constructor(e,t,i,s){this._instanceId=Sae(++e9.INSTANCE_COUNT),this._pendingChanges=new P9e,this._lastWhitespaceId=0,this._arr=[],this._prefixSumValidIndex=-1,this._minWidth=-1,this._lineCount=e,this._lineHeight=t,this._paddingTop=i,this._paddingBottom=s}static findInsertionIndex(e,t,i){let s=0,o=e.length;for(;s<o;){const r=s+o>>>1;t===e[r].afterLineNumber?i<e[r].ordinal?o=r:s=r+1:t<e[r].afterLineNumber?o=r:s=r+1}return s}setLineHeight(e){this._checkPendingChanges(),this._lineHeight=e}setPadding(e,t){this._paddingTop=e,this._paddingBottom=t}onFlushed(e){this._checkPendingChanges(),this._lineCount=e}changeWhitespace(e){let t=!1;try{e({insertWhitespace:(s,o,r,a)=>{t=!0,s=s|0,o=o|0,r=r|0,a=a|0;const l=this._instanceId+ ++this._lastWhitespaceId;return this._pendingChanges.insert(new O9e(l,s,o,r,a)),l},changeOneWhitespace:(s,o,r)=>{t=!0,o=o|0,r=r|0,this._pendingChanges.change({id:s,newAfterLineNumber:o,newHeight:r})},removeWhitespace:s=>{t=!0,this._pendingChanges.remove({id:s})}})}finally{this._pendingChanges.commit(this)}return t}_commitPendingChanges(e,t,i){if((e.length>0||i.length>0)&&(this._minWidth=-1),e.length+t.length+i.length<=1){for(const l of e)this._insertWhitespace(l);for(const l of t)this._changeOneWhitespace(l.id,l.newAfterLineNumber,l.newHeight);for(const l of i){const c=this._findWhitespaceIndex(l.id);c!==-1&&this._removeWhitespace(c)}return}const s=new Set;for(const l of i)s.add(l.id);const o=new Map;for(const l of t)o.set(l.id,l);const r=l=>{const c=[];for(const d of l)if(!s.has(d.id)){if(o.has(d.id)){const u=o.get(d.id);d.afterLineNumber=u.newAfterLineNumber,d.height=u.newHeight}c.push(d)}return c},a=r(this._arr).concat(r(e));a.sort((l,c)=>l.afterLineNumber===c.afterLineNumber?l.ordinal-c.ordinal:l.afterLineNumber-c.afterLineNumber),this._arr=a,this._prefixSumValidIndex=-1}_checkPendingChanges(){this._pendingChanges.mustCommit()&&this._pendingChanges.commit(this)}_insertWhitespace(e){const t=e9.findInsertionIndex(this._arr,e.afterLineNumber,e.ordinal);this._arr.splice(t,0,e),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,t-1)}_findWhitespaceIndex(e){const t=this._arr;for(let i=0,s=t.length;i<s;i++)if(t[i].id===e)return i;return-1}_changeOneWhitespace(e,t,i){const s=this._findWhitespaceIndex(e);if(s!==-1&&(this._arr[s].height!==i&&(this._arr[s].height=i,this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,s-1)),this._arr[s].afterLineNumber!==t)){const o=this._arr[s];this._removeWhitespace(s),o.afterLineNumber=t,this._insertWhitespace(o)}}_removeWhitespace(e){this._arr.splice(e,1),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,e-1)}onLinesDeleted(e,t){this._checkPendingChanges(),e=e|0,t=t|0,this._lineCount-=t-e+1;for(let i=0,s=this._arr.length;i<s;i++){const o=this._arr[i].afterLineNumber;e<=o&&o<=t?this._arr[i].afterLineNumber=e-1:o>t&&(this._arr[i].afterLineNumber-=t-e+1)}}onLinesInserted(e,t){this._checkPendingChanges(),e=e|0,t=t|0,this._lineCount+=t-e+1;for(let i=0,s=this._arr.length;i<s;i++){const o=this._arr[i].afterLineNumber;e<=o&&(this._arr[i].afterLineNumber+=t-e+1)}}getWhitespacesTotalHeight(){return this._checkPendingChanges(),this._arr.length===0?0:this.getWhitespacesAccumulatedHeight(this._arr.length-1)}getWhitespacesAccumulatedHeight(e){this._checkPendingChanges(),e=e|0;let t=Math.max(0,this._prefixSumValidIndex+1);t===0&&(this._arr[0].prefixSum=this._arr[0].height,t++);for(let i=t;i<=e;i++)this._arr[i].prefixSum=this._arr[i-1].prefixSum+this._arr[i].height;return this._prefixSumValidIndex=Math.max(this._prefixSumValidIndex,e),this._arr[e].prefixSum}getLinesTotalHeight(){this._checkPendingChanges();const e=this._lineHeight*this._lineCount,t=this.getWhitespacesTotalHeight();return e+t+this._paddingTop+this._paddingBottom}getWhitespaceAccumulatedHeightBeforeLineNumber(e){this._checkPendingChanges(),e=e|0;const t=this._findLastWhitespaceBeforeLineNumber(e);return t===-1?0:this.getWhitespacesAccumulatedHeight(t)}_findLastWhitespaceBeforeLineNumber(e){e=e|0;const t=this._arr;let i=0,s=t.length-1;for(;i<=s;){const r=(s-i|0)/2|0,a=i+r|0;if(t[a].afterLineNumber<e){if(a+1>=t.length||t[a+1].afterLineNumber>=e)return a;i=a+1|0}else s=a-1|0}return-1}_findFirstWhitespaceAfterLineNumber(e){e=e|0;const i=this._findLastWhitespaceBeforeLineNumber(e)+1;return i<this._arr.length?i:-1}getFirstWhitespaceIndexAfterLineNumber(e){return this._checkPendingChanges(),e=e|0,this._findFirstWhitespaceAfterLineNumber(e)}getVerticalOffsetForLineNumber(e,t=!1){this._checkPendingChanges(),e=e|0;let i;e>1?i=this._lineHeight*(e-1):i=0;const s=this.getWhitespaceAccumulatedHeightBeforeLineNumber(e-(t?1:0));return i+s+this._paddingTop}getVerticalOffsetAfterLineNumber(e,t=!1){this._checkPendingChanges(),e=e|0;const i=this._lineHeight*e,s=this.getWhitespaceAccumulatedHeightBeforeLineNumber(e+(t?1:0));return i+s+this._paddingTop}getWhitespaceMinWidth(){if(this._checkPendingChanges(),this._minWidth===-1){let e=0;for(let t=0,i=this._arr.length;t<i;t++)e=Math.max(e,this._arr[t].minWidth);this._minWidth=e}return this._minWidth}isAfterLines(e){this._checkPendingChanges();const t=this.getLinesTotalHeight();return e>t}isInTopPadding(e){return this._paddingTop===0?!1:(this._checkPendingChanges(),e<this._paddingTop)}isInBottomPadding(e){if(this._paddingBottom===0)return!1;this._checkPendingChanges();const t=this.getLinesTotalHeight();return e>=t-this._paddingBottom}getLineNumberAtOrAfterVerticalOffset(e){if(this._checkPendingChanges(),e=e|0,e<0)return 1;const t=this._lineCount|0,i=this._lineHeight;let s=1,o=t;for(;s<o;){const r=(s+o)/2|0,a=this.getVerticalOffsetForLineNumber(r)|0;if(e>=a+i)s=r+1;else{if(e>=a)return r;o=r}}return s>t?t:s}getLinesViewportData(e,t){this._checkPendingChanges(),e=e|0,t=t|0;const i=this._lineHeight,s=this.getLineNumberAtOrAfterVerticalOffset(e)|0,o=this.getVerticalOffsetForLineNumber(s)|0;let r=this._lineCount|0,a=this.getFirstWhitespaceIndexAfterLineNumber(s)|0;const l=this.getWhitespacesCount()|0;let c,d;a===-1?(a=l,d=r+1,c=0):(d=this.getAfterLineNumberForWhitespaceIndex(a)|0,c=this.getHeightForWhitespaceIndex(a)|0);let u=o,h=u;const f=5e5;let g=0;o>=f&&(g=Math.floor(o/f)*f,g=Math.floor(g/i)*i,h-=g);const p=[],_=e+(t-e)/2;let b=-1;for(let x=s;x<=r;x++){if(b===-1){const k=u,D=u+i;(k<=_&&_<D||k>_)&&(b=x)}for(u+=i,p[x-s]=h,h+=i;d===x;)h+=c,u+=c,a++,a>=l?d=r+1:(d=this.getAfterLineNumberForWhitespaceIndex(a)|0,c=this.getHeightForWhitespaceIndex(a)|0);if(u>=t){r=x;break}}b===-1&&(b=r);const w=this.getVerticalOffsetForLineNumber(r)|0;let y=s,S=r;return y<S&&o<e&&y++,y<S&&w+i>t&&S--,{bigNumbersDelta:g,startLineNumber:s,endLineNumber:r,relativeVerticalOffset:p,centeredLineNumber:b,completelyVisibleStartLineNumber:y,completelyVisibleEndLineNumber:S,lineHeight:this._lineHeight}}getVerticalOffsetForWhitespaceIndex(e){this._checkPendingChanges(),e=e|0;const t=this.getAfterLineNumberForWhitespaceIndex(e);let i;t>=1?i=this._lineHeight*t:i=0;let s;return e>0?s=this.getWhitespacesAccumulatedHeight(e-1):s=0,i+s+this._paddingTop}getWhitespaceIndexAtOrAfterVerticallOffset(e){this._checkPendingChanges(),e=e|0;let t=0,i=this.getWhitespacesCount()-1;if(i<0)return-1;const s=this.getVerticalOffsetForWhitespaceIndex(i),o=this.getHeightForWhitespaceIndex(i);if(e>=s+o)return-1;for(;t<i;){const r=Math.floor((t+i)/2),a=this.getVerticalOffsetForWhitespaceIndex(r),l=this.getHeightForWhitespaceIndex(r);if(e>=a+l)t=r+1;else{if(e>=a)return r;i=r}}return t}getWhitespaceAtVerticalOffset(e){this._checkPendingChanges(),e=e|0;const t=this.getWhitespaceIndexAtOrAfterVerticallOffset(e);if(t<0||t>=this.getWhitespacesCount())return null;const i=this.getVerticalOffsetForWhitespaceIndex(t);if(i>e)return null;const s=this.getHeightForWhitespaceIndex(t),o=this.getIdForWhitespaceIndex(t),r=this.getAfterLineNumberForWhitespaceIndex(t);return{id:o,afterLineNumber:r,verticalOffset:i,height:s}}getWhitespaceViewportData(e,t){this._checkPendingChanges(),e=e|0,t=t|0;const i=this.getWhitespaceIndexAtOrAfterVerticallOffset(e),s=this.getWhitespacesCount()-1;if(i<0)return[];const o=[];for(let r=i;r<=s;r++){const a=this.getVerticalOffsetForWhitespaceIndex(r),l=this.getHeightForWhitespaceIndex(r);if(a>=t)break;o.push({id:this.getIdForWhitespaceIndex(r),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(r),verticalOffset:a,height:l})}return o}getWhitespaces(){return this._checkPendingChanges(),this._arr.slice(0)}getWhitespacesCount(){return this._checkPendingChanges(),this._arr.length}getIdForWhitespaceIndex(e){return this._checkPendingChanges(),e=e|0,this._arr[e].id}getAfterLineNumberForWhitespaceIndex(e){return this._checkPendingChanges(),e=e|0,this._arr[e].afterLineNumber}getHeightForWhitespaceIndex(e){return this._checkPendingChanges(),e=e|0,this._arr[e].height}};Yce.INSTANCE_COUNT=0;const F9e=125;class TS{constructor(e,t,i,s){e=e|0,t=t|0,i=i|0,s=s|0,e<0&&(e=0),t<0&&(t=0),i<0&&(i=0),s<0&&(s=0),this.width=e,this.contentWidth=t,this.scrollWidth=Math.max(e,t),this.height=i,this.contentHeight=s,this.scrollHeight=Math.max(i,s)}equals(e){return this.width===e.width&&this.contentWidth===e.contentWidth&&this.height===e.height&&this.contentHeight===e.contentHeight}}class B9e extends ne{constructor(e,t){super(),this._onDidContentSizeChange=this._register(new X),this.onDidContentSizeChange=this._onDidContentSizeChange.event,this._dimensions=new TS(0,0,0,0),this._scrollable=this._register(new Ww({forceIntegerValues:!0,smoothScrollDuration:e,scheduleAtNextAnimationFrame:t})),this.onDidScroll=this._scrollable.onScroll}getScrollable(){return this._scrollable}setSmoothScrollDuration(e){this._scrollable.setSmoothScrollDuration(e)}validateScrollPosition(e){return this._scrollable.validateScrollPosition(e)}getScrollDimensions(){return this._dimensions}setScrollDimensions(e){if(this._dimensions.equals(e))return;const t=this._dimensions;this._dimensions=e,this._scrollable.setScrollDimensions({width:e.width,scrollWidth:e.scrollWidth,height:e.height,scrollHeight:e.scrollHeight},!0);const i=t.contentWidth!==e.contentWidth,s=t.contentHeight!==e.contentHeight;(i||s)&&this._onDidContentSizeChange.fire(new Jz(t.contentWidth,t.contentHeight,e.contentWidth,e.contentHeight))}getFutureScrollPosition(){return this._scrollable.getFutureScrollPosition()}getCurrentScrollPosition(){return this._scrollable.getCurrentScrollPosition()}setScrollPositionNow(e){this._scrollable.setScrollPositionNow(e)}setScrollPositionSmooth(e){this._scrollable.setScrollPositionSmooth(e)}hasPendingScrollAnimation(){return this._scrollable.hasPendingScrollAnimation()}}class W9e extends ne{constructor(e,t,i){super(),this._configuration=e;const s=this._configuration.options,o=s.get(145),r=s.get(84);this._linesLayout=new Yce(t,s.get(67),r.top,r.bottom),this._maxLineWidth=0,this._overlayWidgetsMinWidth=0,this._scrollable=this._register(new B9e(0,i)),this._configureSmoothScrollDuration(),this._scrollable.setScrollDimensions(new TS(o.contentWidth,0,o.height,0)),this.onDidScroll=this._scrollable.onDidScroll,this.onDidContentSizeChange=this._scrollable.onDidContentSizeChange,this._updateHeight()}dispose(){super.dispose()}getScrollable(){return this._scrollable.getScrollable()}onHeightMaybeChanged(){this._updateHeight()}_configureSmoothScrollDuration(){this._scrollable.setSmoothScrollDuration(this._configuration.options.get(114)?F9e:0)}onConfigurationChanged(e){const t=this._configuration.options;if(e.hasChanged(67)&&this._linesLayout.setLineHeight(t.get(67)),e.hasChanged(84)){const i=t.get(84);this._linesLayout.setPadding(i.top,i.bottom)}if(e.hasChanged(145)){const i=t.get(145),s=i.contentWidth,o=i.height,r=this._scrollable.getScrollDimensions(),a=r.contentWidth;this._scrollable.setScrollDimensions(new TS(s,r.contentWidth,o,this._getContentHeight(s,o,a)))}else this._updateHeight();e.hasChanged(114)&&this._configureSmoothScrollDuration()}onFlushed(e){this._linesLayout.onFlushed(e)}onLinesDeleted(e,t){this._linesLayout.onLinesDeleted(e,t)}onLinesInserted(e,t){this._linesLayout.onLinesInserted(e,t)}_getHorizontalScrollbarHeight(e,t){const s=this._configuration.options.get(103);return s.horizontal===2||e>=t?0:s.horizontalScrollbarSize}_getContentHeight(e,t,i){const s=this._configuration.options;let o=this._linesLayout.getLinesTotalHeight();return s.get(105)?o+=Math.max(0,t-s.get(67)-s.get(84).bottom):s.get(103).ignoreHorizontalScrollbarInContentHeight||(o+=this._getHorizontalScrollbarHeight(e,i)),o}_updateHeight(){const e=this._scrollable.getScrollDimensions(),t=e.width,i=e.height,s=e.contentWidth;this._scrollable.setScrollDimensions(new TS(t,e.contentWidth,i,this._getContentHeight(t,i,s)))}getCurrentViewport(){const e=this._scrollable.getScrollDimensions(),t=this._scrollable.getCurrentScrollPosition();return new bX(t.scrollTop,t.scrollLeft,e.width,e.height)}getFutureViewport(){const e=this._scrollable.getScrollDimensions(),t=this._scrollable.getFutureScrollPosition();return new bX(t.scrollTop,t.scrollLeft,e.width,e.height)}_computeContentWidth(){const e=this._configuration.options,t=this._maxLineWidth,i=e.get(146),s=e.get(50),o=e.get(145);if(i.isViewportWrapping){const r=e.get(73);return t>o.contentWidth+s.typicalHalfwidthCharacterWidth&&r.enabled&&r.side===\"right\"?t+o.verticalScrollbarWidth:t}else{const r=e.get(104)*s.typicalHalfwidthCharacterWidth,a=this._linesLayout.getWhitespaceMinWidth();return Math.max(t+r+o.verticalScrollbarWidth,a,this._overlayWidgetsMinWidth)}}setMaxLineWidth(e){this._maxLineWidth=e,this._updateContentWidth()}setOverlayWidgetsMinWidth(e){this._overlayWidgetsMinWidth=e,this._updateContentWidth()}_updateContentWidth(){const e=this._scrollable.getScrollDimensions();this._scrollable.setScrollDimensions(new TS(e.width,this._computeContentWidth(),e.height,e.contentHeight)),this._updateHeight()}saveState(){const e=this._scrollable.getFutureScrollPosition(),t=e.scrollTop,i=this._linesLayout.getLineNumberAtOrAfterVerticalOffset(t),s=this._linesLayout.getWhitespaceAccumulatedHeightBeforeLineNumber(i);return{scrollTop:t,scrollTopWithoutViewZones:t-s,scrollLeft:e.scrollLeft}}changeWhitespace(e){const t=this._linesLayout.changeWhitespace(e);return t&&this.onHeightMaybeChanged(),t}getVerticalOffsetForLineNumber(e,t=!1){return this._linesLayout.getVerticalOffsetForLineNumber(e,t)}getVerticalOffsetAfterLineNumber(e,t=!1){return this._linesLayout.getVerticalOffsetAfterLineNumber(e,t)}isAfterLines(e){return this._linesLayout.isAfterLines(e)}isInTopPadding(e){return this._linesLayout.isInTopPadding(e)}isInBottomPadding(e){return this._linesLayout.isInBottomPadding(e)}getLineNumberAtVerticalOffset(e){return this._linesLayout.getLineNumberAtOrAfterVerticalOffset(e)}getWhitespaceAtVerticalOffset(e){return this._linesLayout.getWhitespaceAtVerticalOffset(e)}getLinesViewportData(){const e=this.getCurrentViewport();return this._linesLayout.getLinesViewportData(e.top,e.top+e.height)}getLinesViewportDataAtScrollTop(e){const t=this._scrollable.getScrollDimensions();return e+t.height>t.scrollHeight&&(e=t.scrollHeight-t.height),e<0&&(e=0),this._linesLayout.getLinesViewportData(e,e+t.height)}getWhitespaceViewportData(){const e=this.getCurrentViewport();return this._linesLayout.getWhitespaceViewportData(e.top,e.top+e.height)}getWhitespaces(){return this._linesLayout.getWhitespaces()}getContentWidth(){return this._scrollable.getScrollDimensions().contentWidth}getScrollWidth(){return this._scrollable.getScrollDimensions().scrollWidth}getContentHeight(){return this._scrollable.getScrollDimensions().contentHeight}getScrollHeight(){return this._scrollable.getScrollDimensions().scrollHeight}getCurrentScrollLeft(){return this._scrollable.getCurrentScrollPosition().scrollLeft}getCurrentScrollTop(){return this._scrollable.getCurrentScrollPosition().scrollTop}validateScrollPosition(e){return this._scrollable.validateScrollPosition(e)}setScrollPosition(e,t){t===1?this._scrollable.setScrollPositionNow(e):this._scrollable.setScrollPositionSmooth(e)}hasPendingScrollAnimation(){return this._scrollable.hasPendingScrollAnimation()}deltaScrollNow(e,t){const i=this._scrollable.getCurrentScrollPosition();this._scrollable.setScrollPositionNow({scrollLeft:i.scrollLeft+e,scrollTop:i.scrollTop+t})}}class H9e{constructor(e,t,i,s,o){this.editorId=e,this.model=t,this.configuration=i,this._linesCollection=s,this._coordinatesConverter=o,this._decorationsCache=Object.create(null),this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null}_clearCachedModelDecorationsResolver(){this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null}dispose(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}reset(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}onModelDecorationsChanged(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}onLineMappingChanged(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}_getOrCreateViewModelDecoration(e){const t=e.id;let i=this._decorationsCache[t];if(!i){const s=e.range,o=e.options;let r;if(o.isWholeLine){const a=this._coordinatesConverter.convertModelPositionToViewPosition(new ee(s.startLineNumber,1),0,!1,!0),l=this._coordinatesConverter.convertModelPositionToViewPosition(new ee(s.endLineNumber,this.model.getLineMaxColumn(s.endLineNumber)),1);r=new A(a.lineNumber,a.column,l.lineNumber,l.column)}else r=this._coordinatesConverter.convertModelRangeToViewRange(s,1);i=new Mle(r,o),this._decorationsCache[t]=i}return i}getMinimapDecorationsInRange(e){return this._getDecorationsInRange(e,!0,!1).decorations}getDecorationsViewportData(e){let t=this._cachedModelDecorationsResolver!==null;return t=t&&e.equalsRange(this._cachedModelDecorationsResolverViewRange),t||(this._cachedModelDecorationsResolver=this._getDecorationsInRange(e,!1,!1),this._cachedModelDecorationsResolverViewRange=e),this._cachedModelDecorationsResolver}getInlineDecorationsOnLine(e,t=!1,i=!1){const s=new A(e,this._linesCollection.getViewLineMinColumn(e),e,this._linesCollection.getViewLineMaxColumn(e));return this._getDecorationsInRange(s,t,i).inlineDecorations[0]}_getDecorationsInRange(e,t,i){const s=this._linesCollection.getDecorationsInRange(e,this.editorId,k2(this.configuration.options),t,i),o=e.startLineNumber,r=e.endLineNumber,a=[];let l=0;const c=[];for(let d=o;d<=r;d++)c[d-o]=[];for(let d=0,u=s.length;d<u;d++){const h=s[d],f=h.options;if(!i$(this.model,h))continue;const g=this._getOrCreateViewModelDecoration(h),p=g.range;if(a[l++]=g,f.inlineClassName){const _=new cx(p,f.inlineClassName,f.inlineClassNameAffectsLetterSpacing?3:0),b=Math.max(o,p.startLineNumber),w=Math.min(r,p.endLineNumber);for(let y=b;y<=w;y++)c[y-o].push(_)}if(f.beforeContentClassName&&o<=p.startLineNumber&&p.startLineNumber<=r){const _=new cx(new A(p.startLineNumber,p.startColumn,p.startLineNumber,p.startColumn),f.beforeContentClassName,1);c[p.startLineNumber-o].push(_)}if(f.afterContentClassName&&o<=p.endLineNumber&&p.endLineNumber<=r){const _=new cx(new A(p.endLineNumber,p.endColumn,p.endLineNumber,p.endColumn),f.afterContentClassName,2);c[p.endLineNumber-o].push(_)}}return{decorations:a,inlineDecorations:c}}}function i$(n,e){return!(e.options.hideInCommentTokens&&n$(n,e)||e.options.hideInStringTokens&&s$(n,e))}function n$(n,e){return Xce(n,e.range,t=>t===1)}function s$(n,e){return Xce(n,e.range,t=>t===2)}function Xce(n,e,t){for(let i=e.startLineNumber;i<=e.endLineNumber;i++){const s=n.tokenization.getLineTokens(i),o=i===e.startLineNumber,r=i===e.endLineNumber;let a=o?s.findTokenIndexAtOffset(e.startColumn-1):0;for(;a<s.getCount()&&!(r&&s.getStartOffset(a)>e.endColumn-1);){if(!t(s.getStandardTokenType(a)))return!1;a++}}return!0}function v5(n,e){return n===null?e?dA.INSTANCE:uA.INSTANCE:new V9e(n,e)}class V9e{constructor(e,t){this._projectionData=e,this._isVisible=t}isVisible(){return this._isVisible}setVisible(e){return this._isVisible=e,this}getProjectionData(){return this._projectionData}getViewLineCount(){return this._isVisible?this._projectionData.getOutputLineCount():0}getViewLineContent(e,t,i){this._assertVisible();const s=i>0?this._projectionData.breakOffsets[i-1]:0,o=this._projectionData.breakOffsets[i];let r;if(this._projectionData.injectionOffsets!==null){const a=this._projectionData.injectionOffsets.map((c,d)=>new au(0,0,c+1,this._projectionData.injectionOptions[d],0));r=au.applyInjectedText(e.getLineContent(t),a).substring(s,o)}else r=e.getValueInRange({startLineNumber:t,startColumn:s+1,endLineNumber:t,endColumn:o+1});return i>0&&(r=RQ(this._projectionData.wrappedTextIndentLength)+r),r}getViewLineLength(e,t,i){return this._assertVisible(),this._projectionData.getLineLength(i)}getViewLineMinColumn(e,t,i){return this._assertVisible(),this._projectionData.getMinOutputOffset(i)+1}getViewLineMaxColumn(e,t,i){return this._assertVisible(),this._projectionData.getMaxOutputOffset(i)+1}getViewLineData(e,t,i){const s=new Array;return this.getViewLinesData(e,t,i,1,0,[!0],s),s[0]}getViewLinesData(e,t,i,s,o,r,a){this._assertVisible();const l=this._projectionData,c=l.injectionOffsets,d=l.injectionOptions;let u=null;if(c){u=[];let f=0,g=0;for(let p=0;p<l.getOutputLineCount();p++){const _=new Array;u[p]=_;const b=p>0?l.breakOffsets[p-1]:0,w=l.breakOffsets[p];for(;g<c.length;){const y=d[g].content.length,S=c[g]+f,x=S+y;if(S>w)break;if(b<x){const k=d[g];if(k.inlineClassName){const D=p>0?l.wrappedTextIndentLength:0,I=D+Math.max(S-b,0),N=D+Math.min(x-b,w-b);I!==N&&_.push(new z4e(I,N,k.inlineClassName,k.inlineClassNameAffectsLetterSpacing))}}if(x<=w)f+=y,g++;else break}}}let h;c?h=e.tokenization.getLineTokens(t).withInserted(c.map((f,g)=>({offset:f,text:d[g].content,tokenMetadata:Is.defaultTokenMetadata}))):h=e.tokenization.getLineTokens(t);for(let f=i;f<i+s;f++){const g=o+f-i;if(!r[g]){a[g]=null;continue}a[g]=this._getViewLineData(h,u?u[f]:null,f)}}_getViewLineData(e,t,i){this._assertVisible();const s=this._projectionData,o=i>0?s.wrappedTextIndentLength:0,r=i>0?s.breakOffsets[i-1]:0,a=s.breakOffsets[i],l=e.sliceAndInflate(r,a,o);let c=l.getLineContent();i>0&&(c=RQ(s.wrappedTextIndentLength)+c);const d=this._projectionData.getMinOutputOffset(i)+1,u=c.length+1,h=i+1<this.getViewLineCount(),f=i===0?0:s.breakOffsetsVisibleColumn[i-1];return new yz(c,h,d,u,f,l,t)}getModelColumnOfViewPosition(e,t){return this._assertVisible(),this._projectionData.translateToInputOffset(e,t-1)+1}getViewPositionOfModelPosition(e,t,i=2){return this._assertVisible(),this._projectionData.translateToOutputPosition(t-1,i).toPosition(e)}getViewLineNumberOfModelPosition(e,t){this._assertVisible();const i=this._projectionData.translateToOutputPosition(t-1);return e+i.outputLineIndex}normalizePosition(e,t,i){const s=t.lineNumber-e;return this._projectionData.normalizeOutputPosition(e,t.column-1,i).toPosition(s)}getInjectedTextAt(e,t){return this._projectionData.getInjectedText(e,t-1)}_assertVisible(){if(!this._isVisible)throw new Error(\"Not supported\")}}class dA{constructor(){}isVisible(){return!0}setVisible(e){return e?this:uA.INSTANCE}getProjectionData(){return null}getViewLineCount(){return 1}getViewLineContent(e,t,i){return e.getLineContent(t)}getViewLineLength(e,t,i){return e.getLineLength(t)}getViewLineMinColumn(e,t,i){return e.getLineMinColumn(t)}getViewLineMaxColumn(e,t,i){return e.getLineMaxColumn(t)}getViewLineData(e,t,i){const s=e.tokenization.getLineTokens(t),o=s.getLineContent();return new yz(o,!1,1,o.length+1,0,s.inflate(),null)}getViewLinesData(e,t,i,s,o,r,a){if(!r[o]){a[o]=null;return}a[o]=this.getViewLineData(e,t,0)}getModelColumnOfViewPosition(e,t){return t}getViewPositionOfModelPosition(e,t){return new ee(e,t)}getViewLineNumberOfModelPosition(e,t){return e}normalizePosition(e,t,i){return t}getInjectedTextAt(e,t){return null}}dA.INSTANCE=new dA;class uA{constructor(){}isVisible(){return!1}setVisible(e){return e?dA.INSTANCE:this}getProjectionData(){return null}getViewLineCount(){return 0}getViewLineContent(e,t,i){throw new Error(\"Not supported\")}getViewLineLength(e,t,i){throw new Error(\"Not supported\")}getViewLineMinColumn(e,t,i){throw new Error(\"Not supported\")}getViewLineMaxColumn(e,t,i){throw new Error(\"Not supported\")}getViewLineData(e,t,i){throw new Error(\"Not supported\")}getViewLinesData(e,t,i,s,o,r,a){throw new Error(\"Not supported\")}getModelColumnOfViewPosition(e,t){throw new Error(\"Not supported\")}getViewPositionOfModelPosition(e,t){throw new Error(\"Not supported\")}getViewLineNumberOfModelPosition(e,t){throw new Error(\"Not supported\")}normalizePosition(e,t,i){throw new Error(\"Not supported\")}getInjectedTextAt(e,t){throw new Error(\"Not supported\")}}uA.INSTANCE=new uA;const b5=[\"\"];function RQ(n){if(n>=b5.length)for(let e=1;e<=n;e++)b5[e]=z9e(e);return b5[n]}function z9e(n){return new Array(n+1).join(\" \")}class $9e{constructor(e,t,i,s,o,r,a,l,c,d){this._editorId=e,this.model=t,this._validModelVersionId=-1,this._domLineBreaksComputerFactory=i,this._monospaceLineBreaksComputerFactory=s,this.fontInfo=o,this.tabSize=r,this.wrappingStrategy=a,this.wrappingColumn=l,this.wrappingIndent=c,this.wordBreak=d,this._constructLines(!0,null)}dispose(){this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,[])}createCoordinatesConverter(){return new j9e(this)}_constructLines(e,t){this.modelLineProjections=[],e&&(this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,[]));const i=this.model.getLinesContent(),s=this.model.getInjectedTextDecorations(this._editorId),o=i.length,r=this.createLineBreaksComputer(),a=new Lg(au.fromDecorations(s));for(let p=0;p<o;p++){const _=a.takeWhile(b=>b.lineNumber===p+1);r.addRequest(i[p],_,t?t[p]:null)}const l=r.finalize(),c=[],d=this.hiddenAreasDecorationIds.map(p=>this.model.getDecorationRange(p)).sort(A.compareRangesUsingStarts);let u=1,h=0,f=-1,g=f+1<d.length?h+1:o+2;for(let p=0;p<o;p++){const _=p+1;_===g&&(f++,u=d[f].startLineNumber,h=d[f].endLineNumber,g=f+1<d.length?h+1:o+2);const b=_>=u&&_<=h,w=v5(l[p],!b);c[p]=w.getViewLineCount(),this.modelLineProjections[p]=w}this._validModelVersionId=this.model.getVersionId(),this.projectedModelLineLineCounts=new pOe(c)}getHiddenAreas(){return this.hiddenAreasDecorationIds.map(e=>this.model.getDecorationRange(e))}setHiddenAreas(e){const t=e.map(h=>this.model.validateRange(h)),i=U9e(t),s=this.hiddenAreasDecorationIds.map(h=>this.model.getDecorationRange(h)).sort(A.compareRangesUsingStarts);if(i.length===s.length){let h=!1;for(let f=0;f<i.length;f++)if(!i[f].equalsRange(s[f])){h=!0;break}if(!h)return!1}const o=i.map(h=>({range:h,options:Wt.EMPTY}));this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,o);const r=i;let a=1,l=0,c=-1,d=c+1<r.length?l+1:this.modelLineProjections.length+2,u=!1;for(let h=0;h<this.modelLineProjections.length;h++){const f=h+1;f===d&&(c++,a=r[c].startLineNumber,l=r[c].endLineNumber,d=c+1<r.length?l+1:this.modelLineProjections.length+2);let g=!1;if(f>=a&&f<=l?this.modelLineProjections[h].isVisible()&&(this.modelLineProjections[h]=this.modelLineProjections[h].setVisible(!1),g=!0):(u=!0,this.modelLineProjections[h].isVisible()||(this.modelLineProjections[h]=this.modelLineProjections[h].setVisible(!0),g=!0)),g){const p=this.modelLineProjections[h].getViewLineCount();this.projectedModelLineLineCounts.setValue(h,p)}}return u||this.setHiddenAreas([]),!0}modelPositionIsVisible(e,t){return e<1||e>this.modelLineProjections.length?!1:this.modelLineProjections[e-1].isVisible()}getModelLineViewLineCount(e){return e<1||e>this.modelLineProjections.length?1:this.modelLineProjections[e-1].getViewLineCount()}setTabSize(e){return this.tabSize===e?!1:(this.tabSize=e,this._constructLines(!1,null),!0)}setWrappingSettings(e,t,i,s,o){const r=this.fontInfo.equals(e),a=this.wrappingStrategy===t,l=this.wrappingColumn===i,c=this.wrappingIndent===s,d=this.wordBreak===o;if(r&&a&&l&&c&&d)return!1;const u=r&&a&&!l&&c&&d;this.fontInfo=e,this.wrappingStrategy=t,this.wrappingColumn=i,this.wrappingIndent=s,this.wordBreak=o;let h=null;if(u){h=[];for(let f=0,g=this.modelLineProjections.length;f<g;f++)h[f]=this.modelLineProjections[f].getProjectionData()}return this._constructLines(!1,h),!0}createLineBreaksComputer(){return(this.wrappingStrategy===\"advanced\"?this._domLineBreaksComputerFactory:this._monospaceLineBreaksComputerFactory).createLineBreaksComputer(this.fontInfo,this.tabSize,this.wrappingColumn,this.wrappingIndent,this.wordBreak)}onModelFlushed(){this._constructLines(!0,null)}onModelLinesDeleted(e,t,i){if(!e||e<=this._validModelVersionId)return null;const s=t===1?1:this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,o=this.projectedModelLineLineCounts.getPrefixSum(i);return this.modelLineProjections.splice(t-1,i-t+1),this.projectedModelLineLineCounts.removeValues(t-1,i-t+1),new QB(s,o)}onModelLinesInserted(e,t,i,s){if(!e||e<=this._validModelVersionId)return null;const o=t>2&&!this.modelLineProjections[t-2].isVisible(),r=t===1?1:this.projectedModelLineLineCounts.getPrefixSum(t-1)+1;let a=0;const l=[],c=[];for(let d=0,u=s.length;d<u;d++){const h=v5(s[d],!o);l.push(h);const f=h.getViewLineCount();a+=f,c[d]=f}return this.modelLineProjections=this.modelLineProjections.slice(0,t-1).concat(l).concat(this.modelLineProjections.slice(t-1)),this.projectedModelLineLineCounts.insertValues(t-1,c),new JB(r,r+a-1)}onModelLineChanged(e,t,i){if(e!==null&&e<=this._validModelVersionId)return[!1,null,null,null];const s=t-1,o=this.modelLineProjections[s].getViewLineCount(),r=this.modelLineProjections[s].isVisible(),a=v5(i,r);this.modelLineProjections[s]=a;const l=this.modelLineProjections[s].getViewLineCount();let c=!1,d=0,u=-1,h=0,f=-1,g=0,p=-1;o>l?(d=this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,u=d+l-1,g=u+1,p=g+(o-l)-1,c=!0):o<l?(d=this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,u=d+o-1,h=u+1,f=h+(l-o)-1,c=!0):(d=this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,u=d+l-1),this.projectedModelLineLineCounts.setValue(s,l);const _=d<=u?new Zce(d,u-d+1):null,b=h<=f?new JB(h,f):null,w=g<=p?new QB(g,p):null;return[c,_,b,w]}acceptVersionId(e){this._validModelVersionId=e,this.modelLineProjections.length===1&&!this.modelLineProjections[0].isVisible()&&this.setHiddenAreas([])}getViewLineCount(){return this.projectedModelLineLineCounts.getTotalSum()}_toValidViewLineNumber(e){if(e<1)return 1;const t=this.getViewLineCount();return e>t?t:e|0}getActiveIndentGuide(e,t,i){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t),i=this._toValidViewLineNumber(i);const s=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),o=this.convertViewPositionToModelPosition(t,this.getViewLineMinColumn(t)),r=this.convertViewPositionToModelPosition(i,this.getViewLineMinColumn(i)),a=this.model.guides.getActiveIndentGuide(s.lineNumber,o.lineNumber,r.lineNumber),l=this.convertModelPositionToViewPosition(a.startLineNumber,1),c=this.convertModelPositionToViewPosition(a.endLineNumber,this.model.getLineMaxColumn(a.endLineNumber));return{startLineNumber:l.lineNumber,endLineNumber:c.lineNumber,indent:a.indent}}getViewLineInfo(e){e=this._toValidViewLineNumber(e);const t=this.projectedModelLineLineCounts.getIndexOf(e-1),i=t.index,s=t.remainder;return new MQ(i+1,s)}getMinColumnOfViewLine(e){return this.modelLineProjections[e.modelLineNumber-1].getViewLineMinColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx)}getMaxColumnOfViewLine(e){return this.modelLineProjections[e.modelLineNumber-1].getViewLineMaxColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx)}getModelStartPositionOfViewLine(e){const t=this.modelLineProjections[e.modelLineNumber-1],i=t.getViewLineMinColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx),s=t.getModelColumnOfViewPosition(e.modelLineWrappedLineIdx,i);return new ee(e.modelLineNumber,s)}getModelEndPositionOfViewLine(e){const t=this.modelLineProjections[e.modelLineNumber-1],i=t.getViewLineMaxColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx),s=t.getModelColumnOfViewPosition(e.modelLineWrappedLineIdx,i);return new ee(e.modelLineNumber,s)}getViewLineInfosGroupedByModelRanges(e,t){const i=this.getViewLineInfo(e),s=this.getViewLineInfo(t),o=new Array;let r=this.getModelStartPositionOfViewLine(i),a=new Array;for(let l=i.modelLineNumber;l<=s.modelLineNumber;l++){const c=this.modelLineProjections[l-1];if(c.isVisible()){const d=l===i.modelLineNumber?i.modelLineWrappedLineIdx:0,u=l===s.modelLineNumber?s.modelLineWrappedLineIdx+1:c.getViewLineCount();for(let h=d;h<u;h++)a.push(new MQ(l,h))}if(!c.isVisible()&&r){const d=new ee(l-1,this.model.getLineMaxColumn(l-1)+1),u=A.fromPositions(r,d);o.push(new PQ(u,a)),a=[],r=null}else c.isVisible()&&!r&&(r=new ee(l,1))}if(r){const l=A.fromPositions(r,this.getModelEndPositionOfViewLine(s));o.push(new PQ(l,a))}return o}getViewLinesBracketGuides(e,t,i,s){const o=i?this.convertViewPositionToModelPosition(i.lineNumber,i.column):null,r=[];for(const a of this.getViewLineInfosGroupedByModelRanges(e,t)){const l=a.modelRange.startLineNumber,c=this.model.guides.getLinesBracketGuides(l,a.modelRange.endLineNumber,o,s);for(const d of a.viewLines){const h=c[d.modelLineNumber-l].map(f=>{if(f.forWrappedLinesAfterColumn!==-1&&this.modelLineProjections[d.modelLineNumber-1].getViewPositionOfModelPosition(0,f.forWrappedLinesAfterColumn).lineNumber>=d.modelLineWrappedLineIdx||f.forWrappedLinesBeforeOrAtColumn!==-1&&this.modelLineProjections[d.modelLineNumber-1].getViewPositionOfModelPosition(0,f.forWrappedLinesBeforeOrAtColumn).lineNumber<d.modelLineWrappedLineIdx)return;if(!f.horizontalLine)return f;let g=-1;if(f.column!==-1){const b=this.modelLineProjections[d.modelLineNumber-1].getViewPositionOfModelPosition(0,f.column);if(b.lineNumber===d.modelLineWrappedLineIdx)g=b.column;else if(b.lineNumber<d.modelLineWrappedLineIdx)g=this.getMinColumnOfViewLine(d);else if(b.lineNumber>d.modelLineWrappedLineIdx)return}const p=this.convertModelPositionToViewPosition(d.modelLineNumber,f.horizontalLine.endColumn),_=this.modelLineProjections[d.modelLineNumber-1].getViewPositionOfModelPosition(0,f.horizontalLine.endColumn);return _.lineNumber===d.modelLineWrappedLineIdx?new Dv(f.visibleColumn,g,f.className,new fx(f.horizontalLine.top,p.column),-1,-1):_.lineNumber<d.modelLineWrappedLineIdx||f.visibleColumn!==-1?void 0:new Dv(f.visibleColumn,g,f.className,new fx(f.horizontalLine.top,this.getMaxColumnOfViewLine(d)),-1,-1)});r.push(h.filter(f=>!!f))}}return r}getViewLinesIndentGuides(e,t){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t);const i=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),s=this.convertViewPositionToModelPosition(t,this.getViewLineMaxColumn(t));let o=[];const r=[],a=[],l=i.lineNumber-1,c=s.lineNumber-1;let d=null;for(let g=l;g<=c;g++){const p=this.modelLineProjections[g];if(p.isVisible()){const _=p.getViewLineNumberOfModelPosition(0,g===l?i.column:1),b=p.getViewLineNumberOfModelPosition(0,this.model.getLineMaxColumn(g+1)),w=b-_+1;let y=0;w>1&&p.getViewLineMinColumn(this.model,g+1,b)===1&&(y=_===0?1:2),r.push(w),a.push(y),d===null&&(d=new ee(g+1,0))}else d!==null&&(o=o.concat(this.model.guides.getLinesIndentGuides(d.lineNumber,g)),d=null)}d!==null&&(o=o.concat(this.model.guides.getLinesIndentGuides(d.lineNumber,s.lineNumber)),d=null);const u=t-e+1,h=new Array(u);let f=0;for(let g=0,p=o.length;g<p;g++){let _=o[g];const b=Math.min(u-f,r[g]),w=a[g];let y;w===2?y=0:w===1?y=1:y=b;for(let S=0;S<b;S++)S===y&&(_=0),h[f++]=_}return h}getViewLineContent(e){const t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineContent(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLineLength(e){const t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineLength(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLineMinColumn(e){const t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineMinColumn(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLineMaxColumn(e){const t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineMaxColumn(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLineData(e){const t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineData(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLinesData(e,t,i){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t);const s=this.projectedModelLineLineCounts.getIndexOf(e-1);let o=e;const r=s.index,a=s.remainder,l=[];for(let c=r,d=this.model.getLineCount();c<d;c++){const u=this.modelLineProjections[c];if(!u.isVisible())continue;const h=c===r?a:0;let f=u.getViewLineCount()-h,g=!1;if(o+f>t&&(g=!0,f=t-o+1),u.getViewLinesData(this.model,c+1,h,f,o-e,i,l),o+=f,g)break}return l}validateViewPosition(e,t,i){e=this._toValidViewLineNumber(e);const s=this.projectedModelLineLineCounts.getIndexOf(e-1),o=s.index,r=s.remainder,a=this.modelLineProjections[o],l=a.getViewLineMinColumn(this.model,o+1,r),c=a.getViewLineMaxColumn(this.model,o+1,r);t<l&&(t=l),t>c&&(t=c);const d=a.getModelColumnOfViewPosition(r,t);return this.model.validatePosition(new ee(o+1,d)).equals(i)?new ee(e,t):this.convertModelPositionToViewPosition(i.lineNumber,i.column)}validateViewRange(e,t){const i=this.validateViewPosition(e.startLineNumber,e.startColumn,t.getStartPosition()),s=this.validateViewPosition(e.endLineNumber,e.endColumn,t.getEndPosition());return new A(i.lineNumber,i.column,s.lineNumber,s.column)}convertViewPositionToModelPosition(e,t){const i=this.getViewLineInfo(e),s=this.modelLineProjections[i.modelLineNumber-1].getModelColumnOfViewPosition(i.modelLineWrappedLineIdx,t);return this.model.validatePosition(new ee(i.modelLineNumber,s))}convertViewRangeToModelRange(e){const t=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),i=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);return new A(t.lineNumber,t.column,i.lineNumber,i.column)}convertModelPositionToViewPosition(e,t,i=2,s=!1,o=!1){const r=this.model.validatePosition(new ee(e,t)),a=r.lineNumber,l=r.column;let c=a-1,d=!1;if(o)for(;c<this.modelLineProjections.length&&!this.modelLineProjections[c].isVisible();)c++,d=!0;else for(;c>0&&!this.modelLineProjections[c].isVisible();)c--,d=!0;if(c===0&&!this.modelLineProjections[c].isVisible())return new ee(s?0:1,1);const u=1+this.projectedModelLineLineCounts.getPrefixSum(c);let h;return d?o?h=this.modelLineProjections[c].getViewPositionOfModelPosition(u,1,i):h=this.modelLineProjections[c].getViewPositionOfModelPosition(u,this.model.getLineMaxColumn(c+1),i):h=this.modelLineProjections[a-1].getViewPositionOfModelPosition(u,l,i),h}convertModelRangeToViewRange(e,t=0){if(e.isEmpty()){const i=this.convertModelPositionToViewPosition(e.startLineNumber,e.startColumn,t);return A.fromPositions(i)}else{const i=this.convertModelPositionToViewPosition(e.startLineNumber,e.startColumn,1),s=this.convertModelPositionToViewPosition(e.endLineNumber,e.endColumn,0);return new A(i.lineNumber,i.column,s.lineNumber,s.column)}}getViewLineNumberOfModelPosition(e,t){let i=e-1;if(this.modelLineProjections[i].isVisible()){const o=1+this.projectedModelLineLineCounts.getPrefixSum(i);return this.modelLineProjections[i].getViewLineNumberOfModelPosition(o,t)}for(;i>0&&!this.modelLineProjections[i].isVisible();)i--;if(i===0&&!this.modelLineProjections[i].isVisible())return 1;const s=1+this.projectedModelLineLineCounts.getPrefixSum(i);return this.modelLineProjections[i].getViewLineNumberOfModelPosition(s,this.model.getLineMaxColumn(i+1))}getDecorationsInRange(e,t,i,s,o){const r=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),a=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);if(a.lineNumber-r.lineNumber<=e.endLineNumber-e.startLineNumber)return this.model.getDecorationsInRange(new A(r.lineNumber,1,a.lineNumber,a.column),t,i,s,o);let l=[];const c=r.lineNumber-1,d=a.lineNumber-1;let u=null;for(let p=c;p<=d;p++)if(this.modelLineProjections[p].isVisible())u===null&&(u=new ee(p+1,p===c?r.column:1));else if(u!==null){const b=this.model.getLineMaxColumn(p);l=l.concat(this.model.getDecorationsInRange(new A(u.lineNumber,u.column,p,b),t,i,s)),u=null}u!==null&&(l=l.concat(this.model.getDecorationsInRange(new A(u.lineNumber,u.column,a.lineNumber,a.column),t,i,s)),u=null),l.sort((p,_)=>{const b=A.compareRangesUsingStarts(p.range,_.range);return b===0?p.id<_.id?-1:p.id>_.id?1:0:b});const h=[];let f=0,g=null;for(const p of l){const _=p.id;g!==_&&(g=_,h[f++]=p)}return h}getInjectedTextAt(e){const t=this.getViewLineInfo(e.lineNumber);return this.modelLineProjections[t.modelLineNumber-1].getInjectedTextAt(t.modelLineWrappedLineIdx,e.column)}normalizePosition(e,t){const i=this.getViewLineInfo(e.lineNumber);return this.modelLineProjections[i.modelLineNumber-1].normalizePosition(i.modelLineWrappedLineIdx,e,t)}getLineIndentColumn(e){const t=this.getViewLineInfo(e);return t.modelLineWrappedLineIdx===0?this.model.getLineIndentColumn(t.modelLineNumber):0}}function U9e(n){if(n.length===0)return[];const e=n.slice();e.sort(A.compareRangesUsingStarts);const t=[];let i=e[0].startLineNumber,s=e[0].endLineNumber;for(let o=1,r=e.length;o<r;o++){const a=e[o];a.startLineNumber>s+1?(t.push(new A(i,1,s,1)),i=a.startLineNumber,s=a.endLineNumber):a.endLineNumber>s&&(s=a.endLineNumber)}return t.push(new A(i,1,s,1)),t}class MQ{constructor(e,t){this.modelLineNumber=e,this.modelLineWrappedLineIdx=t}}class PQ{constructor(e,t){this.modelRange=e,this.viewLines=t}}class j9e{constructor(e){this._lines=e}convertViewPositionToModelPosition(e){return this._lines.convertViewPositionToModelPosition(e.lineNumber,e.column)}convertViewRangeToModelRange(e){return this._lines.convertViewRangeToModelRange(e)}validateViewPosition(e,t){return this._lines.validateViewPosition(e.lineNumber,e.column,t)}validateViewRange(e,t){return this._lines.validateViewRange(e,t)}convertModelPositionToViewPosition(e,t,i,s){return this._lines.convertModelPositionToViewPosition(e.lineNumber,e.column,t,i,s)}convertModelRangeToViewRange(e,t){return this._lines.convertModelRangeToViewRange(e,t)}modelPositionIsVisible(e){return this._lines.modelPositionIsVisible(e.lineNumber,e.column)}getModelLineViewLineCount(e){return this._lines.getModelLineViewLineCount(e)}getViewLineNumberOfModelPosition(e,t){return this._lines.getViewLineNumberOfModelPosition(e,t)}}class K9e{constructor(e){this.model=e}dispose(){}createCoordinatesConverter(){return new q9e(this)}getHiddenAreas(){return[]}setHiddenAreas(e){return!1}setTabSize(e){return!1}setWrappingSettings(e,t,i,s){return!1}createLineBreaksComputer(){const e=[];return{addRequest:(t,i,s)=>{e.push(null)},finalize:()=>e}}onModelFlushed(){}onModelLinesDeleted(e,t,i){return new QB(t,i)}onModelLinesInserted(e,t,i,s){return new JB(t,i)}onModelLineChanged(e,t,i){return[!1,new Zce(t,1),null,null]}acceptVersionId(e){}getViewLineCount(){return this.model.getLineCount()}getActiveIndentGuide(e,t,i){return{startLineNumber:e,endLineNumber:e,indent:0}}getViewLinesBracketGuides(e,t,i){return new Array(t-e+1).fill([])}getViewLinesIndentGuides(e,t){const i=t-e+1,s=new Array(i);for(let o=0;o<i;o++)s[o]=0;return s}getViewLineContent(e){return this.model.getLineContent(e)}getViewLineLength(e){return this.model.getLineLength(e)}getViewLineMinColumn(e){return this.model.getLineMinColumn(e)}getViewLineMaxColumn(e){return this.model.getLineMaxColumn(e)}getViewLineData(e){const t=this.model.tokenization.getLineTokens(e),i=t.getLineContent();return new yz(i,!1,1,i.length+1,0,t.inflate(),null)}getViewLinesData(e,t,i){const s=this.model.getLineCount();e=Math.min(Math.max(1,e),s),t=Math.min(Math.max(1,t),s);const o=[];for(let r=e;r<=t;r++){const a=r-e;o[a]=i[a]?this.getViewLineData(r):null}return o}getDecorationsInRange(e,t,i,s,o){return this.model.getDecorationsInRange(e,t,i,s,o)}normalizePosition(e,t){return this.model.normalizePosition(e,t)}getLineIndentColumn(e){return this.model.getLineIndentColumn(e)}getInjectedTextAt(e){return null}}class q9e{constructor(e){this._lines=e}_validPosition(e){return this._lines.model.validatePosition(e)}_validRange(e){return this._lines.model.validateRange(e)}convertViewPositionToModelPosition(e){return this._validPosition(e)}convertViewRangeToModelRange(e){return this._validRange(e)}validateViewPosition(e,t){return this._validPosition(t)}validateViewRange(e,t){return this._validRange(t)}convertModelPositionToViewPosition(e){return this._validPosition(e)}convertModelRangeToViewRange(e){return this._validRange(e)}modelPositionIsVisible(e){const t=this._lines.model.getLineCount();return!(e.lineNumber<1||e.lineNumber>t)}getModelLineViewLineCount(e){return 1}getViewLineNumberOfModelPosition(e,t){return e}}const z_=Dh.Right;class G9e{constructor(e){this.persist=0,this._requiredLanes=1,this.lanes=new Uint8Array(Math.ceil((e+1)*z_/8))}reset(e){const t=Math.ceil((e+1)*z_/8);this.lanes.length<t?this.lanes=new Uint8Array(t):this.lanes.fill(0),this._requiredLanes=1}get requiredLanes(){return this._requiredLanes}push(e,t,i){i&&(this.persist|=1<<e-1);for(let s=t.startLineNumber;s<=t.endLineNumber;s++){const o=z_*s+(e-1);this.lanes[o>>>3]|=1<<o%8,this._requiredLanes=Math.max(this._requiredLanes,this.countAtLine(s))}}getLanesAtLine(e){const t=[];let i=z_*e;for(let s=0;s<z_;s++)(this.persist&1<<s||this.lanes[i>>>3]&1<<i%8)&&t.push(s+1),i++;return t.length?t:[Dh.Center]}countAtLine(e){let t=z_*e,i=0;for(let s=0;s<z_;s++)(this.persist&1<<s||this.lanes[t>>>3]&1<<t%8)&&i++,t++;return i}}let Z9e=class extends ne{constructor(e,t,i,s,o,r,a,l,c){if(super(),this.languageConfigurationService=a,this._themeService=l,this._attachedView=c,this.hiddenAreasModel=new X9e,this.previousHiddenAreas=[],this._editorId=e,this._configuration=t,this.model=i,this._eventDispatcher=new b9e,this.onEvent=this._eventDispatcher.onEvent,this.cursorConfig=new Ob(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._updateConfigurationViewLineCount=this._register(new Xi(()=>this._updateConfigurationViewLineCountNow(),0)),this._hasFocus=!1,this._viewportStart=o$.create(this.model),this.glyphLanes=new G9e(0),this.model.isTooLargeForTokenization())this._lines=new K9e(this.model);else{const d=this._configuration.options,u=d.get(50),h=d.get(139),f=d.get(146),g=d.get(138),p=d.get(129);this._lines=new $9e(this._editorId,this.model,s,o,u,this.model.getOptions().tabSize,h,f.wrappingColumn,g,p)}this.coordinatesConverter=this._lines.createCoordinatesConverter(),this._cursor=this._register(new T9e(i,this,this.coordinatesConverter,this.cursorConfig)),this.viewLayout=this._register(new W9e(this._configuration,this.getLineCount(),r)),this._register(this.viewLayout.onDidScroll(d=>{d.scrollTopChanged&&this._handleVisibleLinesChanged(),d.scrollTopChanged&&this._viewportStart.invalidate(),this._eventDispatcher.emitSingleViewEvent(new g9e(d)),this._eventDispatcher.emitOutgoingEvent(new t$(d.oldScrollWidth,d.oldScrollLeft,d.oldScrollHeight,d.oldScrollTop,d.scrollWidth,d.scrollLeft,d.scrollHeight,d.scrollTop))})),this._register(this.viewLayout.onDidContentSizeChange(d=>{this._eventDispatcher.emitOutgoingEvent(d)})),this._decorations=new H9e(this._editorId,this.model,this._configuration,this._lines,this.coordinatesConverter),this._registerModelEvents(),this._register(this._configuration.onDidChangeFast(d=>{try{const u=this._eventDispatcher.beginEmitViewEvents();this._onConfigurationChanged(u,d)}finally{this._eventDispatcher.endEmitViewEvents()}})),this._register(LD.getInstance().onDidChange(()=>{this._eventDispatcher.emitSingleViewEvent(new _9e)})),this._register(this._themeService.onDidColorThemeChange(d=>{this._invalidateDecorationsColorCache(),this._eventDispatcher.emitSingleViewEvent(new p9e(d))})),this._updateConfigurationViewLineCountNow()}dispose(){super.dispose(),this._decorations.dispose(),this._lines.dispose(),this._viewportStart.dispose(),this._eventDispatcher.dispose()}createLineBreaksComputer(){return this._lines.createLineBreaksComputer()}addViewEventHandler(e){this._eventDispatcher.addViewEventHandler(e)}removeViewEventHandler(e){this._eventDispatcher.removeViewEventHandler(e)}_updateConfigurationViewLineCountNow(){this._configuration.setViewLineCount(this._lines.getViewLineCount())}getModelVisibleRanges(){const e=this.viewLayout.getLinesViewportData(),t=new A(e.startLineNumber,this.getLineMinColumn(e.startLineNumber),e.endLineNumber,this.getLineMaxColumn(e.endLineNumber));return this._toModelVisibleRanges(t)}visibleLinesStabilized(){const e=this.getModelVisibleRanges();this._attachedView.setVisibleLines(e,!0)}_handleVisibleLinesChanged(){const e=this.getModelVisibleRanges();this._attachedView.setVisibleLines(e,!1)}setHasFocus(e){this._hasFocus=e,this._cursor.setHasFocus(e),this._eventDispatcher.emitSingleViewEvent(new h9e(e)),this._eventDispatcher.emitOutgoingEvent(new e$(!e,e))}onCompositionStart(){this._eventDispatcher.emitSingleViewEvent(new l9e)}onCompositionEnd(){this._eventDispatcher.emitSingleViewEvent(new c9e)}_captureStableViewport(){if(this._viewportStart.isValid&&this.viewLayout.getCurrentScrollTop()>0){const e=new ee(this._viewportStart.viewLineNumber,this.getLineMinColumn(this._viewportStart.viewLineNumber)),t=this.coordinatesConverter.convertViewPositionToModelPosition(e);return new FQ(t,this._viewportStart.startLineDelta)}return new FQ(null,0)}_onConfigurationChanged(e,t){const i=this._captureStableViewport(),s=this._configuration.options,o=s.get(50),r=s.get(139),a=s.get(146),l=s.get(138),c=s.get(129);this._lines.setWrappingSettings(o,r,a.wrappingColumn,l,c)&&(e.emitViewEvent(new GE),e.emitViewEvent(new ZE),e.emitViewEvent(new V_(null)),this._cursor.onLineMappingChanged(e),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this._updateConfigurationViewLineCount.schedule()),t.hasChanged(91)&&(this._decorations.reset(),e.emitViewEvent(new V_(null))),t.hasChanged(98)&&(this._decorations.reset(),e.emitViewEvent(new V_(null))),e.emitViewEvent(new d9e(t)),this.viewLayout.onConfigurationChanged(t),i.recoverViewportStart(this.coordinatesConverter,this.viewLayout),Ob.shouldRecreate(t)&&(this.cursorConfig=new Ob(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig))}_registerModelEvents(){this._register(this.model.onDidChangeContentOrInjectedText(e=>{try{const i=this._eventDispatcher.beginEmitViewEvents();let s=!1,o=!1;const r=e instanceof Kv?e.rawContentChangedEvent.changes:e.changes,a=e instanceof Kv?e.rawContentChangedEvent.versionId:null,l=this._lines.createLineBreaksComputer();for(const u of r)switch(u.changeType){case 4:{for(let h=0;h<u.detail.length;h++){const f=u.detail[h];let g=u.injectedTexts[h];g&&(g=g.filter(p=>!p.ownerId||p.ownerId===this._editorId)),l.addRequest(f,g,null)}break}case 2:{let h=null;u.injectedText&&(h=u.injectedText.filter(f=>!f.ownerId||f.ownerId===this._editorId)),l.addRequest(u.detail,h,null);break}}const c=l.finalize(),d=new Lg(c);for(const u of r)switch(u.changeType){case 1:{this._lines.onModelFlushed(),i.emitViewEvent(new GE),this._decorations.reset(),this.viewLayout.onFlushed(this.getLineCount()),s=!0;break}case 3:{const h=this._lines.onModelLinesDeleted(a,u.fromLineNumber,u.toLineNumber);h!==null&&(i.emitViewEvent(h),this.viewLayout.onLinesDeleted(h.fromLineNumber,h.toLineNumber)),s=!0;break}case 4:{const h=d.takeCount(u.detail.length),f=this._lines.onModelLinesInserted(a,u.fromLineNumber,u.toLineNumber,h);f!==null&&(i.emitViewEvent(f),this.viewLayout.onLinesInserted(f.fromLineNumber,f.toLineNumber)),s=!0;break}case 2:{const h=d.dequeue(),[f,g,p,_]=this._lines.onModelLineChanged(a,u.lineNumber,h);o=f,g&&i.emitViewEvent(g),p&&(i.emitViewEvent(p),this.viewLayout.onLinesInserted(p.fromLineNumber,p.toLineNumber)),_&&(i.emitViewEvent(_),this.viewLayout.onLinesDeleted(_.fromLineNumber,_.toLineNumber));break}case 5:break}a!==null&&this._lines.acceptVersionId(a),this.viewLayout.onHeightMaybeChanged(),!s&&o&&(i.emitViewEvent(new ZE),i.emitViewEvent(new V_(null)),this._cursor.onLineMappingChanged(i),this._decorations.onLineMappingChanged())}finally{this._eventDispatcher.endEmitViewEvents()}const t=this._viewportStart.isValid;if(this._viewportStart.invalidate(),this._configuration.setModelLineCount(this.model.getLineCount()),this._updateConfigurationViewLineCountNow(),!this._hasFocus&&this.model.getAttachedEditorCount()>=2&&t){const i=this.model._getTrackedRange(this._viewportStart.modelTrackedRange);if(i){const s=this.coordinatesConverter.convertModelPositionToViewPosition(i.getStartPosition()),o=this.viewLayout.getVerticalOffsetForLineNumber(s.lineNumber);this.viewLayout.setScrollPosition({scrollTop:o+this._viewportStart.startLineDelta},1)}}try{const i=this._eventDispatcher.beginEmitViewEvents();e instanceof Kv&&i.emitOutgoingEvent(new D9e(e.contentChangedEvent)),this._cursor.onModelContentChanged(i,e)}finally{this._eventDispatcher.endEmitViewEvents()}this._handleVisibleLinesChanged()})),this._register(this.model.onDidChangeTokens(e=>{const t=[];for(let i=0,s=e.ranges.length;i<s;i++){const o=e.ranges[i],r=this.coordinatesConverter.convertModelPositionToViewPosition(new ee(o.fromLineNumber,1)).lineNumber,a=this.coordinatesConverter.convertModelPositionToViewPosition(new ee(o.toLineNumber,this.model.getLineMaxColumn(o.toLineNumber))).lineNumber;t[i]={fromLineNumber:r,toLineNumber:a}}this._eventDispatcher.emitSingleViewEvent(new m9e(t)),this._eventDispatcher.emitOutgoingEvent(new E9e(e))})),this._register(this.model.onDidChangeLanguageConfiguration(e=>{this._eventDispatcher.emitSingleViewEvent(new f9e),this.cursorConfig=new Ob(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new k9e(e))})),this._register(this.model.onDidChangeLanguage(e=>{this.cursorConfig=new Ob(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new L9e(e))})),this._register(this.model.onDidChangeOptions(e=>{if(this._lines.setTabSize(this.model.getOptions().tabSize)){try{const t=this._eventDispatcher.beginEmitViewEvents();t.emitViewEvent(new GE),t.emitViewEvent(new ZE),t.emitViewEvent(new V_(null)),this._cursor.onLineMappingChanged(t),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount())}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule()}this.cursorConfig=new Ob(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new I9e(e))})),this._register(this.model.onDidChangeDecorations(e=>{this._decorations.onModelDecorationsChanged(),this._eventDispatcher.emitSingleViewEvent(new V_(e)),this._eventDispatcher.emitOutgoingEvent(new x9e(e))}))}setHiddenAreas(e,t){var i;this.hiddenAreasModel.setHiddenAreas(t,e);const s=this.hiddenAreasModel.getMergedRanges();if(s===this.previousHiddenAreas)return;this.previousHiddenAreas=s;const o=this._captureStableViewport();let r=!1;try{const a=this._eventDispatcher.beginEmitViewEvents();r=this._lines.setHiddenAreas(s),r&&(a.emitViewEvent(new GE),a.emitViewEvent(new ZE),a.emitViewEvent(new V_(null)),this._cursor.onLineMappingChanged(a),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this.viewLayout.onHeightMaybeChanged());const l=(i=o.viewportStartModelPosition)===null||i===void 0?void 0:i.lineNumber;l&&s.some(d=>d.startLineNumber<=l&&l<=d.endLineNumber)||o.recoverViewportStart(this.coordinatesConverter,this.viewLayout)}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule(),r&&this._eventDispatcher.emitOutgoingEvent(new y9e)}getVisibleRangesPlusViewportAboveBelow(){const e=this._configuration.options.get(145),t=this._configuration.options.get(67),i=Math.max(20,Math.round(e.height/t)),s=this.viewLayout.getLinesViewportData(),o=Math.max(1,s.completelyVisibleStartLineNumber-i),r=Math.min(this.getLineCount(),s.completelyVisibleEndLineNumber+i);return this._toModelVisibleRanges(new A(o,this.getLineMinColumn(o),r,this.getLineMaxColumn(r)))}getVisibleRanges(){const e=this.getCompletelyVisibleViewRange();return this._toModelVisibleRanges(e)}getHiddenAreas(){return this._lines.getHiddenAreas()}_toModelVisibleRanges(e){const t=this.coordinatesConverter.convertViewRangeToModelRange(e),i=this._lines.getHiddenAreas();if(i.length===0)return[t];const s=[];let o=0,r=t.startLineNumber,a=t.startColumn;const l=t.endLineNumber,c=t.endColumn;for(let d=0,u=i.length;d<u;d++){const h=i[d].startLineNumber,f=i[d].endLineNumber;f<r||h>l||(r<h&&(s[o++]=new A(r,a,h-1,this.model.getLineMaxColumn(h-1))),r=f+1,a=1)}return(r<l||r===l&&a<c)&&(s[o++]=new A(r,a,l,c)),s}getCompletelyVisibleViewRange(){const e=this.viewLayout.getLinesViewportData(),t=e.completelyVisibleStartLineNumber,i=e.completelyVisibleEndLineNumber;return new A(t,this.getLineMinColumn(t),i,this.getLineMaxColumn(i))}getCompletelyVisibleViewRangeAtScrollTop(e){const t=this.viewLayout.getLinesViewportDataAtScrollTop(e),i=t.completelyVisibleStartLineNumber,s=t.completelyVisibleEndLineNumber;return new A(i,this.getLineMinColumn(i),s,this.getLineMaxColumn(s))}saveState(){const e=this.viewLayout.saveState(),t=e.scrollTop,i=this.viewLayout.getLineNumberAtVerticalOffset(t),s=this.coordinatesConverter.convertViewPositionToModelPosition(new ee(i,this.getLineMinColumn(i))),o=this.viewLayout.getVerticalOffsetForLineNumber(i)-t;return{scrollLeft:e.scrollLeft,firstPosition:s,firstPositionDeltaTop:o}}reduceRestoreState(e){if(typeof e.firstPosition>\"u\")return this._reduceRestoreStateCompatibility(e);const t=this.model.validatePosition(e.firstPosition),i=this.coordinatesConverter.convertModelPositionToViewPosition(t),s=this.viewLayout.getVerticalOffsetForLineNumber(i.lineNumber)-e.firstPositionDeltaTop;return{scrollLeft:e.scrollLeft,scrollTop:s}}_reduceRestoreStateCompatibility(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTopWithoutViewZones}}getTabSize(){return this.model.getOptions().tabSize}getLineCount(){return this._lines.getViewLineCount()}setViewport(e,t,i){this._viewportStart.update(this,e)}getActiveIndentGuide(e,t,i){return this._lines.getActiveIndentGuide(e,t,i)}getLinesIndentGuides(e,t){return this._lines.getViewLinesIndentGuides(e,t)}getBracketGuidesInRangeByLine(e,t,i,s){return this._lines.getViewLinesBracketGuides(e,t,i,s)}getLineContent(e){return this._lines.getViewLineContent(e)}getLineLength(e){return this._lines.getViewLineLength(e)}getLineMinColumn(e){return this._lines.getViewLineMinColumn(e)}getLineMaxColumn(e){return this._lines.getViewLineMaxColumn(e)}getLineFirstNonWhitespaceColumn(e){const t=fr(this.getLineContent(e));return t===-1?0:t+1}getLineLastNonWhitespaceColumn(e){const t=Kd(this.getLineContent(e));return t===-1?0:t+2}getMinimapDecorationsInRange(e){return this._decorations.getMinimapDecorationsInRange(e)}getDecorationsInViewport(e){return this._decorations.getDecorationsViewportData(e).decorations}getInjectedTextAt(e){return this._lines.getInjectedTextAt(e)}getViewportViewLineRenderingData(e,t){const s=this._decorations.getDecorationsViewportData(e).inlineDecorations[t-e.startLineNumber];return this._getViewLineRenderingData(t,s)}getViewLineRenderingData(e){const t=this._decorations.getInlineDecorationsOnLine(e);return this._getViewLineRenderingData(e,t)}_getViewLineRenderingData(e,t){const i=this.model.mightContainRTL(),s=this.model.mightContainNonBasicASCII(),o=this.getTabSize(),r=this._lines.getViewLineData(e);return r.inlineDecorations&&(t=[...t,...r.inlineDecorations.map(a=>a.toInlineDecoration(e))]),new xl(r.minColumn,r.maxColumn,r.content,r.continuesWithWrappedLine,i,s,r.tokens,t,o,r.startVisibleColumn)}getViewLineData(e){return this._lines.getViewLineData(e)}getMinimapLinesRenderingData(e,t,i){const s=this._lines.getViewLinesData(e,t,i);return new V4e(this.getTabSize(),s)}getAllOverviewRulerDecorations(e){const t=this.model.getOverviewRulerDecorations(this._editorId,k2(this._configuration.options)),i=new Y9e;for(const s of t){const o=s.options,r=o.overviewRuler;if(!r)continue;const a=r.position;if(a===0)continue;const l=r.getColor(e.value),c=this.coordinatesConverter.getViewLineNumberOfModelPosition(s.range.startLineNumber,s.range.startColumn),d=this.coordinatesConverter.getViewLineNumberOfModelPosition(s.range.endLineNumber,s.range.endColumn);i.accept(l,o.zIndex,c,d,a)}return i.asArray}_invalidateDecorationsColorCache(){const e=this.model.getOverviewRulerDecorations();for(const t of e){const i=t.options.overviewRuler;i==null||i.invalidateCachedColor();const s=t.options.minimap;s==null||s.invalidateCachedColor()}}getValueInRange(e,t){const i=this.coordinatesConverter.convertViewRangeToModelRange(e);return this.model.getValueInRange(i,t)}getValueLengthInRange(e,t){const i=this.coordinatesConverter.convertViewRangeToModelRange(e);return this.model.getValueLengthInRange(i,t)}modifyPosition(e,t){const i=this.coordinatesConverter.convertViewPositionToModelPosition(e),s=this.model.modifyPosition(i,t);return this.coordinatesConverter.convertModelPositionToViewPosition(s)}deduceModelPositionRelativeToViewPosition(e,t,i){const s=this.coordinatesConverter.convertViewPositionToModelPosition(e);this.model.getEOL().length===2&&(t<0?t-=i:t+=i);const r=this.model.getOffsetAt(s)+t;return this.model.getPositionAt(r)}getPlainTextToCopy(e,t,i){const s=i?`\\r\n`:this.model.getEOL();e=e.slice(0),e.sort(A.compareRangesUsingStarts);let o=!1,r=!1;for(const l of e)l.isEmpty()?o=!0:r=!0;if(!r){if(!t)return\"\";const l=e.map(d=>d.startLineNumber);let c=\"\";for(let d=0;d<l.length;d++)d>0&&l[d-1]===l[d]||(c+=this.model.getLineContent(l[d])+s);return c}if(o&&t){const l=[];let c=0;for(const d of e){const u=d.startLineNumber;d.isEmpty()?u!==c&&l.push(this.model.getLineContent(u)):l.push(this.model.getValueInRange(d,i?2:0)),c=u}return l.length===1?l[0]:l}const a=[];for(const l of e)l.isEmpty()||a.push(this.model.getValueInRange(l,i?2:0));return a.length===1?a[0]:a}getRichTextToCopy(e,t){const i=this.model.getLanguageId();if(i===bl||e.length!==1)return null;let s=e[0];if(s.isEmpty()){if(!t)return null;const d=s.startLineNumber;s=new A(d,this.model.getLineMinColumn(d),d,this.model.getLineMaxColumn(d))}const o=this._configuration.options.get(50),r=this._getColorMap(),l=/[:;\\\\\\/<>]/.test(o.fontFamily)||o.fontFamily===ra.fontFamily;let c;return l?c=ra.fontFamily:(c=o.fontFamily,c=c.replace(/\"/g,\"'\"),/[,']/.test(c)||/[+ ]/.test(c)&&(c=`'${c}'`),c=`${c}, ${ra.fontFamily}`),{mode:i,html:`<div style=\"color: ${r[1]};background-color: ${r[2]};font-family: ${c};font-weight: ${o.fontWeight};font-size: ${o.fontSize}px;line-height: ${o.lineHeight}px;white-space: pre;\">`+this._getHTMLToCopy(s,r)+\"</div>\"}}_getHTMLToCopy(e,t){const i=e.startLineNumber,s=e.startColumn,o=e.endLineNumber,r=e.endColumn,a=this.getTabSize();let l=\"\";for(let c=i;c<=o;c++){const d=this.model.tokenization.getLineTokens(c),u=d.getLineContent(),h=c===i?s-1:0,f=c===o?r-1:u.length;u===\"\"?l+=\"<br>\":l+=M9e(u,d.inflate(),t,h,f,a,Mo)}return l}_getColorMap(){const e=Zn.getColorMap(),t=[\"#000000\"];if(e)for(let i=1,s=e.length;i<s;i++)t[i]=le.Format.CSS.formatHex(e[i]);return t}getPrimaryCursorState(){return this._cursor.getPrimaryCursorState()}getLastAddedCursorIndex(){return this._cursor.getLastAddedCursorIndex()}getCursorStates(){return this._cursor.getCursorStates()}setCursorStates(e,t,i){return this._withViewEventsCollector(s=>this._cursor.setStates(s,e,t,i))}getCursorColumnSelectData(){return this._cursor.getCursorColumnSelectData()}getCursorAutoClosedCharacters(){return this._cursor.getAutoClosedCharacters()}setCursorColumnSelectData(e){this._cursor.setCursorColumnSelectData(e)}getPrevEditOperationType(){return this._cursor.getPrevEditOperationType()}setPrevEditOperationType(e){this._cursor.setPrevEditOperationType(e)}getSelection(){return this._cursor.getSelection()}getSelections(){return this._cursor.getSelections()}getPosition(){return this._cursor.getPrimaryCursorState().modelState.position}setSelections(e,t,i=0){this._withViewEventsCollector(s=>this._cursor.setSelections(s,e,t,i))}saveCursorState(){return this._cursor.saveState()}restoreCursorState(e){this._withViewEventsCollector(t=>this._cursor.restoreState(t,e))}_executeCursorEdit(e){if(this._cursor.context.cursorConfig.readOnly){this._eventDispatcher.emitOutgoingEvent(new S9e);return}this._withViewEventsCollector(e)}executeEdits(e,t,i){this._executeCursorEdit(s=>this._cursor.executeEdits(s,e,t,i))}startComposition(){this._executeCursorEdit(e=>this._cursor.startComposition(e))}endComposition(e){this._executeCursorEdit(t=>this._cursor.endComposition(t,e))}type(e,t){this._executeCursorEdit(i=>this._cursor.type(i,e,t))}compositionType(e,t,i,s,o){this._executeCursorEdit(r=>this._cursor.compositionType(r,e,t,i,s,o))}paste(e,t,i,s){this._executeCursorEdit(o=>this._cursor.paste(o,e,t,i,s))}cut(e){this._executeCursorEdit(t=>this._cursor.cut(t,e))}executeCommand(e,t){this._executeCursorEdit(i=>this._cursor.executeCommand(i,e,t))}executeCommands(e,t){this._executeCursorEdit(i=>this._cursor.executeCommands(i,e,t))}revealAllCursors(e,t,i=!1){this._withViewEventsCollector(s=>this._cursor.revealAll(s,e,i,0,t,0))}revealPrimaryCursor(e,t,i=!1){this._withViewEventsCollector(s=>this._cursor.revealPrimary(s,e,i,0,t,0))}revealTopMostCursor(e){const t=this._cursor.getTopMostViewPosition(),i=new A(t.lineNumber,t.column,t.lineNumber,t.column);this._withViewEventsCollector(s=>s.emitViewEvent(new yx(e,!1,i,null,0,!0,0)))}revealBottomMostCursor(e){const t=this._cursor.getBottomMostViewPosition(),i=new A(t.lineNumber,t.column,t.lineNumber,t.column);this._withViewEventsCollector(s=>s.emitViewEvent(new yx(e,!1,i,null,0,!0,0)))}revealRange(e,t,i,s,o){this._withViewEventsCollector(r=>r.emitViewEvent(new yx(e,!1,i,null,s,t,o)))}changeWhitespace(e){this.viewLayout.changeWhitespace(e)&&(this._eventDispatcher.emitSingleViewEvent(new v9e),this._eventDispatcher.emitOutgoingEvent(new w9e))}_withViewEventsCollector(e){try{const t=this._eventDispatcher.beginEmitViewEvents();return e(t)}finally{this._eventDispatcher.endEmitViewEvents()}}batchEvents(e){this._withViewEventsCollector(()=>{e()})}normalizePosition(e,t){return this._lines.normalizePosition(e,t)}getLineIndentColumn(e){return this._lines.getLineIndentColumn(e)}};class o${static create(e){const t=e._setTrackedRange(null,new A(1,1,1,1),1);return new o$(e,1,!1,t,0)}get viewLineNumber(){return this._viewLineNumber}get isValid(){return this._isValid}get modelTrackedRange(){return this._modelTrackedRange}get startLineDelta(){return this._startLineDelta}constructor(e,t,i,s,o){this._model=e,this._viewLineNumber=t,this._isValid=i,this._modelTrackedRange=s,this._startLineDelta=o}dispose(){this._model._setTrackedRange(this._modelTrackedRange,null,1)}update(e,t){const i=e.coordinatesConverter.convertViewPositionToModelPosition(new ee(t,e.getLineMinColumn(t))),s=e.model._setTrackedRange(this._modelTrackedRange,new A(i.lineNumber,i.column,i.lineNumber,i.column),1),o=e.viewLayout.getVerticalOffsetForLineNumber(t),r=e.viewLayout.getCurrentScrollTop();this._viewLineNumber=t,this._isValid=!0,this._modelTrackedRange=s,this._startLineDelta=r-o}invalidate(){this._isValid=!1}}class Y9e{constructor(){this._asMap=Object.create(null),this.asArray=[]}accept(e,t,i,s,o){const r=this._asMap[e];if(r){const a=r.data,l=a[a.length-3],c=a[a.length-1];if(l===o&&c+1>=i){s>c&&(a[a.length-1]=s);return}a.push(o,i,s)}else{const a=new CL(e,t,[o,i,s]);this._asMap[e]=a,this.asArray.push(a)}}}class X9e{constructor(){this.hiddenAreas=new Map,this.shouldRecompute=!1,this.ranges=[]}setHiddenAreas(e,t){const i=this.hiddenAreas.get(e);i&&OQ(i,t)||(this.hiddenAreas.set(e,t),this.shouldRecompute=!0)}getMergedRanges(){if(!this.shouldRecompute)return this.ranges;this.shouldRecompute=!1;const e=Array.from(this.hiddenAreas.values()).reduce((t,i)=>Q9e(t,i),[]);return OQ(this.ranges,e)?this.ranges:(this.ranges=e,this.ranges)}}function Q9e(n,e){const t=[];let i=0,s=0;for(;i<n.length&&s<e.length;){const o=n[i],r=e[s];if(o.endLineNumber<r.startLineNumber-1)t.push(n[i++]);else if(r.endLineNumber<o.startLineNumber-1)t.push(e[s++]);else{const a=Math.min(o.startLineNumber,r.startLineNumber),l=Math.max(o.endLineNumber,r.endLineNumber);t.push(new A(a,1,l,1)),i++,s++}}for(;i<n.length;)t.push(n[i++]);for(;s<e.length;)t.push(e[s++]);return t}function OQ(n,e){if(n.length!==e.length)return!1;for(let t=0;t<n.length;t++)if(!n[t].equalsRange(e[t]))return!1;return!0}class FQ{constructor(e,t){this.viewportStartModelPosition=e,this.startLineDelta=t}recoverViewportStart(e,t){if(!this.viewportStartModelPosition)return;const i=e.convertModelPositionToViewPosition(this.viewportStartModelPosition),s=t.getVerticalOffsetForLineNumber(i.lineNumber);t.setScrollPosition({scrollTop:s+this.startLineDelta},1)}}class kD{constructor(...e){this._entries=new Map;for(const[t,i]of e)this.set(t,i)}set(e,t){const i=this._entries.get(e);return this._entries.set(e,t),i}get(e){return this._entries.get(e)}}var FL;(function(n){n[n.Ignore=0]=\"Ignore\",n[n.Info=1]=\"Info\",n[n.Warning=2]=\"Warning\",n[n.Error=3]=\"Error\"})(FL||(FL={}));(function(n){const e=\"error\",t=\"warning\",i=\"warn\",s=\"info\",o=\"ignore\";function r(l){return l?f1(e,l)?n.Error:f1(t,l)||f1(i,l)?n.Warning:f1(s,l)?n.Info:n.Ignore:n.Ignore}n.fromValue=r;function a(l){switch(l){case n.Error:return e;case n.Warning:return t;case n.Info:return s;default:return o}}n.toString=a})(FL||(FL={}));const us=FL;var $M=us;const ps=Jt(\"notificationService\");class J9e{}var e6e=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},hf=function(n,e){return function(t,i){e(t,i,n)}},ov;let jC=ov=class extends ne{get isSimpleWidget(){return this._configuration.isSimpleWidget}get contextMenuId(){return this._configuration.contextMenuId}constructor(e,t,i,s,o,r,a,l,c,d,u,h){var f,g;super(),this.languageConfigurationService=u,this._deliveryQueue=TAe(),this._contributions=this._register(new A7e),this._onDidDispose=this._register(new X),this.onDidDispose=this._onDidDispose.event,this._onDidChangeModelContent=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelContent=this._onDidChangeModelContent.event,this._onDidChangeModelLanguage=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelLanguage=this._onDidChangeModelLanguage.event,this._onDidChangeModelLanguageConfiguration=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelLanguageConfiguration=this._onDidChangeModelLanguageConfiguration.event,this._onDidChangeModelOptions=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelOptions=this._onDidChangeModelOptions.event,this._onDidChangeModelDecorations=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelDecorations=this._onDidChangeModelDecorations.event,this._onDidChangeModelTokens=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelTokens=this._onDidChangeModelTokens.event,this._onDidChangeConfiguration=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onDidChangeConfiguration=this._onDidChangeConfiguration.event,this._onWillChangeModel=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onWillChangeModel=this._onWillChangeModel.event,this._onDidChangeModel=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onDidChangeModel=this._onDidChangeModel.event,this._onDidChangeCursorPosition=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onDidChangeCursorPosition=this._onDidChangeCursorPosition.event,this._onDidChangeCursorSelection=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onDidChangeCursorSelection=this._onDidChangeCursorSelection.event,this._onDidAttemptReadOnlyEdit=this._register(new nr(this._contributions,this._deliveryQueue)),this.onDidAttemptReadOnlyEdit=this._onDidAttemptReadOnlyEdit.event,this._onDidLayoutChange=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onDidLayoutChange=this._onDidLayoutChange.event,this._editorTextFocus=this._register(new BQ({deliveryQueue:this._deliveryQueue})),this.onDidFocusEditorText=this._editorTextFocus.onDidChangeToTrue,this.onDidBlurEditorText=this._editorTextFocus.onDidChangeToFalse,this._editorWidgetFocus=this._register(new BQ({deliveryQueue:this._deliveryQueue})),this.onDidFocusEditorWidget=this._editorWidgetFocus.onDidChangeToTrue,this.onDidBlurEditorWidget=this._editorWidgetFocus.onDidChangeToFalse,this._onWillType=this._register(new nr(this._contributions,this._deliveryQueue)),this.onWillType=this._onWillType.event,this._onDidType=this._register(new nr(this._contributions,this._deliveryQueue)),this.onDidType=this._onDidType.event,this._onDidCompositionStart=this._register(new nr(this._contributions,this._deliveryQueue)),this.onDidCompositionStart=this._onDidCompositionStart.event,this._onDidCompositionEnd=this._register(new nr(this._contributions,this._deliveryQueue)),this.onDidCompositionEnd=this._onDidCompositionEnd.event,this._onDidPaste=this._register(new nr(this._contributions,this._deliveryQueue)),this.onDidPaste=this._onDidPaste.event,this._onMouseUp=this._register(new nr(this._contributions,this._deliveryQueue)),this.onMouseUp=this._onMouseUp.event,this._onMouseDown=this._register(new nr(this._contributions,this._deliveryQueue)),this.onMouseDown=this._onMouseDown.event,this._onMouseDrag=this._register(new nr(this._contributions,this._deliveryQueue)),this.onMouseDrag=this._onMouseDrag.event,this._onMouseDrop=this._register(new nr(this._contributions,this._deliveryQueue)),this.onMouseDrop=this._onMouseDrop.event,this._onMouseDropCanceled=this._register(new nr(this._contributions,this._deliveryQueue)),this.onMouseDropCanceled=this._onMouseDropCanceled.event,this._onDropIntoEditor=this._register(new nr(this._contributions,this._deliveryQueue)),this.onDropIntoEditor=this._onDropIntoEditor.event,this._onContextMenu=this._register(new nr(this._contributions,this._deliveryQueue)),this.onContextMenu=this._onContextMenu.event,this._onMouseMove=this._register(new nr(this._contributions,this._deliveryQueue)),this.onMouseMove=this._onMouseMove.event,this._onMouseLeave=this._register(new nr(this._contributions,this._deliveryQueue)),this.onMouseLeave=this._onMouseLeave.event,this._onMouseWheel=this._register(new nr(this._contributions,this._deliveryQueue)),this.onMouseWheel=this._onMouseWheel.event,this._onKeyUp=this._register(new nr(this._contributions,this._deliveryQueue)),this.onKeyUp=this._onKeyUp.event,this._onKeyDown=this._register(new nr(this._contributions,this._deliveryQueue)),this.onKeyDown=this._onKeyDown.event,this._onDidContentSizeChange=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onDidContentSizeChange=this._onDidContentSizeChange.event,this._onDidScrollChange=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onDidScrollChange=this._onDidScrollChange.event,this._onDidChangeViewZones=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onDidChangeViewZones=this._onDidChangeViewZones.event,this._onDidChangeHiddenAreas=this._register(new X({deliveryQueue:this._deliveryQueue})),this.onDidChangeHiddenAreas=this._onDidChangeHiddenAreas.event,this._updateCounter=0,this._onBeginUpdate=this._register(new X),this.onBeginUpdate=this._onBeginUpdate.event,this._onEndUpdate=this._register(new X),this.onEndUpdate=this._onEndUpdate.event,this._actions=new Map,this._bannerDomNode=null,this._dropIntoEditorDecorations=this.createDecorationsCollection(),o.willCreateCodeEditor();const p={...t};this._domElement=e,this._overflowWidgetsDomNode=p.overflowWidgetsDomNode,delete p.overflowWidgetsDomNode,this._id=++t6e,this._decorationTypeKeysToIds={},this._decorationTypeSubtypes={},this._telemetryData=i.telemetryData,this._configuration=this._register(this._createConfiguration(i.isSimpleWidget||!1,(f=i.contextMenuId)!==null&&f!==void 0?f:i.isSimpleWidget?R.SimpleEditorContext:R.EditorContext,p,d)),this._register(this._configuration.onDidChange(w=>{this._onDidChangeConfiguration.fire(w);const y=this._configuration.options;if(w.hasChanged(145)){const S=y.get(145);this._onDidLayoutChange.fire(S)}})),this._contextKeyService=this._register(a.createScoped(this._domElement)),this._notificationService=c,this._codeEditorService=o,this._commandService=r,this._themeService=l,this._register(new n6e(this,this._contextKeyService)),this._register(new s6e(this,this._contextKeyService,h)),this._instantiationService=this._register(s.createChild(new kD([Ct,this._contextKeyService]))),this._modelData=null,this._focusTracker=new o6e(e,this._overflowWidgetsDomNode),this._register(this._focusTracker.onChange(()=>{this._editorWidgetFocus.setValue(this._focusTracker.hasFocus())})),this._contentWidgets={},this._overlayWidgets={},this._glyphMarginWidgets={};let _;Array.isArray(i.contributions)?_=i.contributions:_=G1.getEditorContributions(),this._contributions.initialize(this,_,this._instantiationService);for(const w of G1.getEditorActions()){if(this._actions.has(w.id)){Mt(new Error(`Cannot have two actions with the same id ${w.id}`));continue}const y=new Dce(w.id,w.label,w.alias,w.metadata,(g=w.precondition)!==null&&g!==void 0?g:void 0,S=>this._instantiationService.invokeFunction(x=>Promise.resolve(w.runEditorCommand(x,this,S))),this._contextKeyService);this._actions.set(y.id,y)}const b=()=>!this._configuration.options.get(91)&&this._configuration.options.get(36).enabled;this._register(new WMe(this._domElement,{onDragOver:w=>{if(!b())return;const y=this.getTargetAtClientPoint(w.clientX,w.clientY);y!=null&&y.position&&this.showDropIndicatorAt(y.position)},onDrop:async w=>{if(!b()||(this.removeDropIndicator(),!w.dataTransfer))return;const y=this.getTargetAtClientPoint(w.clientX,w.clientY);y!=null&&y.position&&this._onDropIntoEditor.fire({position:y.position,event:w})},onDragLeave:()=>{this.removeDropIndicator()},onDragEnd:()=>{this.removeDropIndicator()}})),this._codeEditorService.addCodeEditor(this)}writeScreenReaderContent(e){var t;(t=this._modelData)===null||t===void 0||t.view.writeScreenReaderContent(e)}_createConfiguration(e,t,i,s){return new kB(e,t,i,this._domElement,s)}getId(){return this.getEditorType()+\":\"+this._id}getEditorType(){return mD.ICodeEditor}dispose(){this._codeEditorService.removeCodeEditor(this),this._focusTracker.dispose(),this._actions.clear(),this._contentWidgets={},this._overlayWidgets={},this._removeDecorationTypes(),this._postDetachModelCleanup(this._detachModel()),this._onDidDispose.fire(),super.dispose()}invokeWithinContext(e){return this._instantiationService.invokeFunction(e)}updateOptions(e){this._configuration.updateOptions(e||{})}getOptions(){return this._configuration.options}getOption(e){return this._configuration.options.get(e)}getRawOptions(){return this._configuration.getRawOptions()}getOverflowWidgetsDomNode(){return this._overflowWidgetsDomNode}getConfiguredWordAtPosition(e){return this._modelData?ki.getWordAtPosition(this._modelData.model,this._configuration.options.get(131),this._configuration.options.get(130),e):null}getValue(e=null){if(!this._modelData)return\"\";const t=!!(e&&e.preserveBOM);let i=0;return e&&e.lineEnding&&e.lineEnding===`\n`?i=1:e&&e.lineEnding&&e.lineEnding===`\\r\n`&&(i=2),this._modelData.model.getValue(i,t)}setValue(e){try{if(this._beginUpdate(),!this._modelData)return;this._modelData.model.setValue(e)}finally{this._endUpdate()}}getModel(){return this._modelData?this._modelData.model:null}setModel(e=null){var t;try{this._beginUpdate();const i=e;if(this._modelData===null&&i===null||this._modelData&&this._modelData.model===i)return;const s={oldModelUrl:((t=this._modelData)===null||t===void 0?void 0:t.model.uri)||null,newModelUrl:(i==null?void 0:i.uri)||null};this._onWillChangeModel.fire(s);const o=this.hasTextFocus(),r=this._detachModel();this._attachModel(i),o&&this.hasModel()&&this.focus(),this._removeDecorationTypes(),this._onDidChangeModel.fire(s),this._postDetachModelCleanup(r),this._contributionsDisposable=this._contributions.onAfterModelAttached()}finally{this._endUpdate()}}_removeDecorationTypes(){if(this._decorationTypeKeysToIds={},this._decorationTypeSubtypes){for(const e in this._decorationTypeSubtypes){const t=this._decorationTypeSubtypes[e];for(const i in t)this._removeDecorationType(e+\"-\"+i)}this._decorationTypeSubtypes={}}}getVisibleRanges(){return this._modelData?this._modelData.viewModel.getVisibleRanges():[]}getVisibleRangesPlusViewportAboveBelow(){return this._modelData?this._modelData.viewModel.getVisibleRangesPlusViewportAboveBelow():[]}getWhitespaces(){return this._modelData?this._modelData.viewModel.viewLayout.getWhitespaces():[]}static _getVerticalOffsetAfterPosition(e,t,i,s){const o=e.model.validatePosition({lineNumber:t,column:i}),r=e.viewModel.coordinatesConverter.convertModelPositionToViewPosition(o);return e.viewModel.viewLayout.getVerticalOffsetAfterLineNumber(r.lineNumber,s)}getTopForLineNumber(e,t=!1){return this._modelData?ov._getVerticalOffsetForPosition(this._modelData,e,1,t):-1}getTopForPosition(e,t){return this._modelData?ov._getVerticalOffsetForPosition(this._modelData,e,t,!1):-1}static _getVerticalOffsetForPosition(e,t,i,s=!1){const o=e.model.validatePosition({lineNumber:t,column:i}),r=e.viewModel.coordinatesConverter.convertModelPositionToViewPosition(o);return e.viewModel.viewLayout.getVerticalOffsetForLineNumber(r.lineNumber,s)}getBottomForLineNumber(e,t=!1){return this._modelData?ov._getVerticalOffsetAfterPosition(this._modelData,e,1,t):-1}setHiddenAreas(e,t){var i;(i=this._modelData)===null||i===void 0||i.viewModel.setHiddenAreas(e.map(s=>A.lift(s)),t)}getVisibleColumnFromPosition(e){if(!this._modelData)return e.column;const t=this._modelData.model.validatePosition(e),i=this._modelData.model.getOptions().tabSize;return zs.visibleColumnFromColumn(this._modelData.model.getLineContent(t.lineNumber),t.column,i)+1}getPosition(){return this._modelData?this._modelData.viewModel.getPosition():null}setPosition(e,t=\"api\"){if(this._modelData){if(!ee.isIPosition(e))throw new Error(\"Invalid arguments\");this._modelData.viewModel.setSelections(t,[{selectionStartLineNumber:e.lineNumber,selectionStartColumn:e.column,positionLineNumber:e.lineNumber,positionColumn:e.column}])}}_sendRevealRange(e,t,i,s){if(!this._modelData)return;if(!A.isIRange(e))throw new Error(\"Invalid arguments\");const o=this._modelData.model.validateRange(e),r=this._modelData.viewModel.coordinatesConverter.convertModelRangeToViewRange(o);this._modelData.viewModel.revealRange(\"api\",i,r,t,s)}revealLine(e,t=0){this._revealLine(e,0,t)}revealLineInCenter(e,t=0){this._revealLine(e,1,t)}revealLineInCenterIfOutsideViewport(e,t=0){this._revealLine(e,2,t)}revealLineNearTop(e,t=0){this._revealLine(e,5,t)}_revealLine(e,t,i){if(typeof e!=\"number\")throw new Error(\"Invalid arguments\");this._sendRevealRange(new A(e,1,e,1),t,!1,i)}revealPosition(e,t=0){this._revealPosition(e,0,!0,t)}revealPositionInCenter(e,t=0){this._revealPosition(e,1,!0,t)}revealPositionInCenterIfOutsideViewport(e,t=0){this._revealPosition(e,2,!0,t)}revealPositionNearTop(e,t=0){this._revealPosition(e,5,!0,t)}_revealPosition(e,t,i,s){if(!ee.isIPosition(e))throw new Error(\"Invalid arguments\");this._sendRevealRange(new A(e.lineNumber,e.column,e.lineNumber,e.column),t,i,s)}getSelection(){return this._modelData?this._modelData.viewModel.getSelection():null}getSelections(){return this._modelData?this._modelData.viewModel.getSelections():null}setSelection(e,t=\"api\"){const i=it.isISelection(e),s=A.isIRange(e);if(!i&&!s)throw new Error(\"Invalid arguments\");if(i)this._setSelectionImpl(e,t);else if(s){const o={selectionStartLineNumber:e.startLineNumber,selectionStartColumn:e.startColumn,positionLineNumber:e.endLineNumber,positionColumn:e.endColumn};this._setSelectionImpl(o,t)}}_setSelectionImpl(e,t){if(!this._modelData)return;const i=new it(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn);this._modelData.viewModel.setSelections(t,[i])}revealLines(e,t,i=0){this._revealLines(e,t,0,i)}revealLinesInCenter(e,t,i=0){this._revealLines(e,t,1,i)}revealLinesInCenterIfOutsideViewport(e,t,i=0){this._revealLines(e,t,2,i)}revealLinesNearTop(e,t,i=0){this._revealLines(e,t,5,i)}_revealLines(e,t,i,s){if(typeof e!=\"number\"||typeof t!=\"number\")throw new Error(\"Invalid arguments\");this._sendRevealRange(new A(e,1,t,1),i,!1,s)}revealRange(e,t=0,i=!1,s=!0){this._revealRange(e,i?1:0,s,t)}revealRangeInCenter(e,t=0){this._revealRange(e,1,!0,t)}revealRangeInCenterIfOutsideViewport(e,t=0){this._revealRange(e,2,!0,t)}revealRangeNearTop(e,t=0){this._revealRange(e,5,!0,t)}revealRangeNearTopIfOutsideViewport(e,t=0){this._revealRange(e,6,!0,t)}revealRangeAtTop(e,t=0){this._revealRange(e,3,!0,t)}_revealRange(e,t,i,s){if(!A.isIRange(e))throw new Error(\"Invalid arguments\");this._sendRevealRange(A.lift(e),t,i,s)}setSelections(e,t=\"api\",i=0){if(this._modelData){if(!e||e.length===0)throw new Error(\"Invalid arguments\");for(let s=0,o=e.length;s<o;s++)if(!it.isISelection(e[s]))throw new Error(\"Invalid arguments\");this._modelData.viewModel.setSelections(t,e,i)}}getContentWidth(){return this._modelData?this._modelData.viewModel.viewLayout.getContentWidth():-1}getScrollWidth(){return this._modelData?this._modelData.viewModel.viewLayout.getScrollWidth():-1}getScrollLeft(){return this._modelData?this._modelData.viewModel.viewLayout.getCurrentScrollLeft():-1}getContentHeight(){return this._modelData?this._modelData.viewModel.viewLayout.getContentHeight():-1}getScrollHeight(){return this._modelData?this._modelData.viewModel.viewLayout.getScrollHeight():-1}getScrollTop(){return this._modelData?this._modelData.viewModel.viewLayout.getCurrentScrollTop():-1}setScrollLeft(e,t=1){if(this._modelData){if(typeof e!=\"number\")throw new Error(\"Invalid arguments\");this._modelData.viewModel.viewLayout.setScrollPosition({scrollLeft:e},t)}}setScrollTop(e,t=1){if(this._modelData){if(typeof e!=\"number\")throw new Error(\"Invalid arguments\");this._modelData.viewModel.viewLayout.setScrollPosition({scrollTop:e},t)}}setScrollPosition(e,t=1){this._modelData&&this._modelData.viewModel.viewLayout.setScrollPosition(e,t)}hasPendingScrollAnimation(){return this._modelData?this._modelData.viewModel.viewLayout.hasPendingScrollAnimation():!1}saveViewState(){if(!this._modelData)return null;const e=this._contributions.saveViewState(),t=this._modelData.viewModel.saveCursorState(),i=this._modelData.viewModel.saveState();return{cursorState:t,viewState:i,contributionsState:e}}restoreViewState(e){if(!this._modelData||!this._modelData.hasRealView)return;const t=e;if(t&&t.cursorState&&t.viewState){const i=t.cursorState;Array.isArray(i)?i.length>0&&this._modelData.viewModel.restoreCursorState(i):this._modelData.viewModel.restoreCursorState([i]),this._contributions.restoreViewState(t.contributionsState||{});const s=this._modelData.viewModel.reduceRestoreState(t.viewState);this._modelData.view.restoreState(s)}}handleInitialized(){var e;(e=this._getViewModel())===null||e===void 0||e.visibleLinesStabilized()}getContribution(e){return this._contributions.get(e)}getActions(){return Array.from(this._actions.values())}getSupportedActions(){let e=this.getActions();return e=e.filter(t=>t.isSupported()),e}getAction(e){return this._actions.get(e)||null}trigger(e,t,i){i=i||{};try{switch(this._beginUpdate(),t){case\"compositionStart\":this._startComposition();return;case\"compositionEnd\":this._endComposition(e);return;case\"type\":{const o=i;this._type(e,o.text||\"\");return}case\"replacePreviousChar\":{const o=i;this._compositionType(e,o.text||\"\",o.replaceCharCnt||0,0,0);return}case\"compositionType\":{const o=i;this._compositionType(e,o.text||\"\",o.replacePrevCharCnt||0,o.replaceNextCharCnt||0,o.positionDelta||0);return}case\"paste\":{const o=i;this._paste(e,o.text||\"\",o.pasteOnNewLine||!1,o.multicursorText||null,o.mode||null,o.clipboardEvent);return}case\"cut\":this._cut(e);return}const s=this.getAction(t);if(s){Promise.resolve(s.run(i)).then(void 0,Mt);return}if(!this._modelData||this._triggerEditorCommand(e,t,i))return;this._triggerCommand(t,i)}finally{this._endUpdate()}}_triggerCommand(e,t){this._commandService.executeCommand(e,t)}_startComposition(){this._modelData&&(this._modelData.viewModel.startComposition(),this._onDidCompositionStart.fire())}_endComposition(e){this._modelData&&(this._modelData.viewModel.endComposition(e),this._onDidCompositionEnd.fire())}_type(e,t){!this._modelData||t.length===0||(e===\"keyboard\"&&this._onWillType.fire(t),this._modelData.viewModel.type(t,e),e===\"keyboard\"&&this._onDidType.fire(t))}_compositionType(e,t,i,s,o){this._modelData&&this._modelData.viewModel.compositionType(t,i,s,o,e)}_paste(e,t,i,s,o,r){if(!this._modelData)return;const a=this._modelData.viewModel,l=a.getSelection().getStartPosition();a.paste(t,i,s,e);const c=a.getSelection().getStartPosition();e===\"keyboard\"&&this._onDidPaste.fire({clipboardEvent:r,range:new A(l.lineNumber,l.column,c.lineNumber,c.column),languageId:o})}_cut(e){this._modelData&&this._modelData.viewModel.cut(e)}_triggerEditorCommand(e,t,i){const s=G1.getEditorCommand(t);return s?(i=i||{},i.source=e,this._instantiationService.invokeFunction(o=>{Promise.resolve(s.runEditorCommand(o,this,i)).then(void 0,Mt)}),!0):!1}_getViewModel(){return this._modelData?this._modelData.viewModel:null}pushUndoStop(){return!this._modelData||this._configuration.options.get(91)?!1:(this._modelData.model.pushStackElement(),!0)}popUndoStop(){return!this._modelData||this._configuration.options.get(91)?!1:(this._modelData.model.popStackElement(),!0)}executeEdits(e,t,i){if(!this._modelData||this._configuration.options.get(91))return!1;let s;return i?Array.isArray(i)?s=()=>i:s=i:s=()=>null,this._modelData.viewModel.executeEdits(e,t,s),!0}executeCommand(e,t){this._modelData&&this._modelData.viewModel.executeCommand(t,e)}executeCommands(e,t){this._modelData&&this._modelData.viewModel.executeCommands(t,e)}createDecorationsCollection(e){return new r6e(this,e)}changeDecorations(e){return this._modelData?this._modelData.model.changeDecorations(e,this._id):null}getLineDecorations(e){return this._modelData?this._modelData.model.getLineDecorations(e,this._id,k2(this._configuration.options)):null}getDecorationsInRange(e){return this._modelData?this._modelData.model.getDecorationsInRange(e,this._id,k2(this._configuration.options)):null}deltaDecorations(e,t){return this._modelData?e.length===0&&t.length===0?e:this._modelData.model.deltaDecorations(e,t,this._id):[]}removeDecorations(e){!this._modelData||e.length===0||this._modelData.model.changeDecorations(t=>{t.deltaDecorations(e,[])})}removeDecorationsByType(e){const t=this._decorationTypeKeysToIds[e];t&&this.changeDecorations(i=>i.deltaDecorations(t,[])),this._decorationTypeKeysToIds.hasOwnProperty(e)&&delete this._decorationTypeKeysToIds[e],this._decorationTypeSubtypes.hasOwnProperty(e)&&delete this._decorationTypeSubtypes[e]}getLayoutInfo(){return this._configuration.options.get(145)}createOverviewRuler(e){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.createOverviewRuler(e)}getContainerDomNode(){return this._domElement}getDomNode(){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.domNode.domNode}delegateVerticalScrollbarPointerDown(e){!this._modelData||!this._modelData.hasRealView||this._modelData.view.delegateVerticalScrollbarPointerDown(e)}delegateScrollFromMouseWheelEvent(e){!this._modelData||!this._modelData.hasRealView||this._modelData.view.delegateScrollFromMouseWheelEvent(e)}layout(e,t=!1){this._configuration.observeContainer(e),t||this.render()}focus(){!this._modelData||!this._modelData.hasRealView||this._modelData.view.focus()}hasTextFocus(){return!this._modelData||!this._modelData.hasRealView?!1:this._modelData.view.isFocused()}hasWidgetFocus(){return this._focusTracker&&this._focusTracker.hasFocus()}addContentWidget(e){const t={widget:e,position:e.getPosition()};this._contentWidgets.hasOwnProperty(e.getId())&&console.warn(\"Overwriting a content widget with the same id:\"+e.getId()),this._contentWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addContentWidget(t)}layoutContentWidget(e){const t=e.getId();if(this._contentWidgets.hasOwnProperty(t)){const i=this._contentWidgets[t];i.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutContentWidget(i)}}removeContentWidget(e){const t=e.getId();if(this._contentWidgets.hasOwnProperty(t)){const i=this._contentWidgets[t];delete this._contentWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeContentWidget(i)}}addOverlayWidget(e){const t={widget:e,position:e.getPosition()};this._overlayWidgets.hasOwnProperty(e.getId())&&console.warn(\"Overwriting an overlay widget with the same id.\"),this._overlayWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addOverlayWidget(t)}layoutOverlayWidget(e){const t=e.getId();if(this._overlayWidgets.hasOwnProperty(t)){const i=this._overlayWidgets[t];i.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutOverlayWidget(i)}}removeOverlayWidget(e){const t=e.getId();if(this._overlayWidgets.hasOwnProperty(t)){const i=this._overlayWidgets[t];delete this._overlayWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeOverlayWidget(i)}}addGlyphMarginWidget(e){const t={widget:e,position:e.getPosition()};this._glyphMarginWidgets.hasOwnProperty(e.getId())&&console.warn(\"Overwriting a glyph margin widget with the same id.\"),this._glyphMarginWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addGlyphMarginWidget(t)}layoutGlyphMarginWidget(e){const t=e.getId();if(this._glyphMarginWidgets.hasOwnProperty(t)){const i=this._glyphMarginWidgets[t];i.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutGlyphMarginWidget(i)}}removeGlyphMarginWidget(e){const t=e.getId();if(this._glyphMarginWidgets.hasOwnProperty(t)){const i=this._glyphMarginWidgets[t];delete this._glyphMarginWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeGlyphMarginWidget(i)}}changeViewZones(e){!this._modelData||!this._modelData.hasRealView||this._modelData.view.change(e)}getTargetAtClientPoint(e,t){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.getTargetAtClientPoint(e,t)}getScrolledVisiblePosition(e){if(!this._modelData||!this._modelData.hasRealView)return null;const t=this._modelData.model.validatePosition(e),i=this._configuration.options,s=i.get(145),o=ov._getVerticalOffsetForPosition(this._modelData,t.lineNumber,t.column)-this.getScrollTop(),r=this._modelData.view.getOffsetForColumn(t.lineNumber,t.column)+s.glyphMarginWidth+s.lineNumbersWidth+s.decorationsWidth-this.getScrollLeft();return{top:o,left:r,height:i.get(67)}}getOffsetForColumn(e,t){return!this._modelData||!this._modelData.hasRealView?-1:this._modelData.view.getOffsetForColumn(e,t)}render(e=!1){!this._modelData||!this._modelData.hasRealView||this._modelData.viewModel.batchEvents(()=>{this._modelData.view.render(!0,e)})}setAriaOptions(e){!this._modelData||!this._modelData.hasRealView||this._modelData.view.setAriaOptions(e)}applyFontInfo(e){So(e,this._configuration.options.get(50))}setBanner(e,t){this._bannerDomNode&&this._domElement.contains(this._bannerDomNode)&&this._domElement.removeChild(this._bannerDomNode),this._bannerDomNode=e,this._configuration.setReservedHeight(e?t:0),this._bannerDomNode&&this._domElement.prepend(this._bannerDomNode)}_attachModel(e){if(!e){this._modelData=null;return}const t=[];this._domElement.setAttribute(\"data-mode-id\",e.getLanguageId()),this._configuration.setIsDominatedByLongLines(e.isDominatedByLongLines()),this._configuration.setModelLineCount(e.getLineCount());const i=e.onBeforeAttached(),s=new Z9e(this._id,this._configuration,e,Vz.create(gt(this._domElement)),Qz.create(this._configuration.options),a=>Oa(gt(this._domElement),a),this.languageConfigurationService,this._themeService,i);t.push(e.onWillDispose(()=>this.setModel(null))),t.push(s.onEvent(a=>{switch(a.kind){case 0:this._onDidContentSizeChange.fire(a);break;case 1:this._editorTextFocus.setValue(a.hasFocus);break;case 2:this._onDidScrollChange.fire(a);break;case 3:this._onDidChangeViewZones.fire();break;case 4:this._onDidChangeHiddenAreas.fire();break;case 5:this._onDidAttemptReadOnlyEdit.fire();break;case 6:{if(a.reachedMaxCursorCount){const u=this.getOption(80),h=v(\"cursors.maximum\",\"The number of cursors has been limited to {0}. Consider using [find and replace](https://code.visualstudio.com/docs/editor/codebasics#_find-and-replace) for larger changes or increase the editor multi cursor limit setting.\",u);this._notificationService.prompt($M.Warning,h,[{label:\"Find and Replace\",run:()=>{this._commandService.executeCommand(\"editor.action.startFindReplaceAction\")}},{label:v(\"goToSetting\",\"Increase Multi Cursor Limit\"),run:()=>{this._commandService.executeCommand(\"workbench.action.openSettings2\",{query:\"editor.multiCursorLimit\"})}}])}const l=[];for(let u=0,h=a.selections.length;u<h;u++)l[u]=a.selections[u].getPosition();const c={position:l[0],secondaryPositions:l.slice(1),reason:a.reason,source:a.source};this._onDidChangeCursorPosition.fire(c);const d={selection:a.selections[0],secondarySelections:a.selections.slice(1),modelVersionId:a.modelVersionId,oldSelections:a.oldSelections,oldModelVersionId:a.oldModelVersionId,source:a.source,reason:a.reason};this._onDidChangeCursorSelection.fire(d);break}case 7:this._onDidChangeModelDecorations.fire(a.event);break;case 8:this._domElement.setAttribute(\"data-mode-id\",e.getLanguageId()),this._onDidChangeModelLanguage.fire(a.event);break;case 9:this._onDidChangeModelLanguageConfiguration.fire(a.event);break;case 10:this._onDidChangeModelContent.fire(a.event);break;case 11:this._onDidChangeModelOptions.fire(a.event);break;case 12:this._onDidChangeModelTokens.fire(a.event);break}}));const[o,r]=this._createView(s);if(r){this._domElement.appendChild(o.domNode.domNode);let a=Object.keys(this._contentWidgets);for(let l=0,c=a.length;l<c;l++){const d=a[l];o.addContentWidget(this._contentWidgets[d])}a=Object.keys(this._overlayWidgets);for(let l=0,c=a.length;l<c;l++){const d=a[l];o.addOverlayWidget(this._overlayWidgets[d])}a=Object.keys(this._glyphMarginWidgets);for(let l=0,c=a.length;l<c;l++){const d=a[l];o.addGlyphMarginWidget(this._glyphMarginWidgets[d])}o.render(!1,!0),o.domNode.domNode.setAttribute(\"data-uri\",e.uri.toString())}this._modelData=new i6e(e,s,o,r,t,i)}_createView(e){let t;this.isSimpleWidget?t={paste:(o,r,a,l)=>{this._paste(\"keyboard\",o,r,a,l)},type:o=>{this._type(\"keyboard\",o)},compositionType:(o,r,a,l)=>{this._compositionType(\"keyboard\",o,r,a,l)},startComposition:()=>{this._startComposition()},endComposition:()=>{this._endComposition(\"keyboard\")},cut:()=>{this._cut(\"keyboard\")}}:t={paste:(o,r,a,l)=>{const c={text:o,pasteOnNewLine:r,multicursorText:a,mode:l};this._commandService.executeCommand(\"paste\",c)},type:o=>{const r={text:o};this._commandService.executeCommand(\"type\",r)},compositionType:(o,r,a,l)=>{if(a||l){const c={text:o,replacePrevCharCnt:r,replaceNextCharCnt:a,positionDelta:l};this._commandService.executeCommand(\"compositionType\",c)}else{const c={text:o,replaceCharCnt:r};this._commandService.executeCommand(\"replacePreviousChar\",c)}},startComposition:()=>{this._commandService.executeCommand(\"compositionStart\",{})},endComposition:()=>{this._commandService.executeCommand(\"compositionEnd\",{})},cut:()=>{this._commandService.executeCommand(\"cut\",{})}};const i=new BM(e.coordinatesConverter);return i.onKeyDown=o=>this._onKeyDown.fire(o),i.onKeyUp=o=>this._onKeyUp.fire(o),i.onContextMenu=o=>this._onContextMenu.fire(o),i.onMouseMove=o=>this._onMouseMove.fire(o),i.onMouseLeave=o=>this._onMouseLeave.fire(o),i.onMouseDown=o=>this._onMouseDown.fire(o),i.onMouseUp=o=>this._onMouseUp.fire(o),i.onMouseDrag=o=>this._onMouseDrag.fire(o),i.onMouseDrop=o=>this._onMouseDrop.fire(o),i.onMouseDropCanceled=o=>this._onMouseDropCanceled.fire(o),i.onMouseWheel=o=>this._onMouseWheel.fire(o),[new BB(t,this._configuration,this._themeService.getColorTheme(),e,i,this._overflowWidgetsDomNode,this._instantiationService),!0]}_postDetachModelCleanup(e){e==null||e.removeAllDecorationsWithOwnerId(this._id)}_detachModel(){var e;if((e=this._contributionsDisposable)===null||e===void 0||e.dispose(),this._contributionsDisposable=void 0,!this._modelData)return null;const t=this._modelData.model,i=this._modelData.hasRealView?this._modelData.view.domNode.domNode:null;return this._modelData.dispose(),this._modelData=null,this._domElement.removeAttribute(\"data-mode-id\"),i&&this._domElement.contains(i)&&this._domElement.removeChild(i),this._bannerDomNode&&this._domElement.contains(this._bannerDomNode)&&this._domElement.removeChild(this._bannerDomNode),t}_removeDecorationType(e){this._codeEditorService.removeDecorationType(e)}hasModel(){return this._modelData!==null}showDropIndicatorAt(e){const t=[{range:new A(e.lineNumber,e.column,e.lineNumber,e.column),options:ov.dropIntoEditorDecorationOptions}];this._dropIntoEditorDecorations.set(t),this.revealPosition(e,1)}removeDropIndicator(){this._dropIntoEditorDecorations.clear()}setContextValue(e,t){this._contextKeyService.createKey(e,t)}_beginUpdate(){this._updateCounter++,this._updateCounter===1&&this._onBeginUpdate.fire()}_endUpdate(){this._updateCounter--,this._updateCounter===0&&this._onEndUpdate.fire()}};jC.dropIntoEditorDecorationOptions=Wt.register({description:\"workbench-dnd-target\",className:\"dnd-target\"});jC=ov=e6e([hf(3,ht),hf(4,vi),hf(5,Sn),hf(6,Ct),hf(7,js),hf(8,ps),hf(9,Ha),hf(10,gn),hf(11,Xe)],jC);let t6e=0,i6e=class{constructor(e,t,i,s,o,r){this.model=e,this.viewModel=t,this.view=i,this.hasRealView=s,this.listenersToRemove=o,this.attachedView=r}dispose(){tn(this.listenersToRemove),this.model.onBeforeDetached(this.attachedView),this.hasRealView&&this.view.dispose(),this.viewModel.dispose()}};class BQ extends ne{constructor(e){super(),this._emitterOptions=e,this._onDidChangeToTrue=this._register(new X(this._emitterOptions)),this.onDidChangeToTrue=this._onDidChangeToTrue.event,this._onDidChangeToFalse=this._register(new X(this._emitterOptions)),this.onDidChangeToFalse=this._onDidChangeToFalse.event,this._value=0}setValue(e){const t=e?2:1;this._value!==t&&(this._value=t,this._value===2?this._onDidChangeToTrue.fire():this._value===1&&this._onDidChangeToFalse.fire())}}class nr extends X{constructor(e,t){super({deliveryQueue:t}),this._contributions=e}fire(e){this._contributions.onBeforeInteractionEvent(),super.fire(e)}}class n6e extends ne{constructor(e,t){super(),this._editor=e,t.createKey(\"editorId\",e.getId()),this._editorSimpleInput=W.editorSimpleInput.bindTo(t),this._editorFocus=W.focus.bindTo(t),this._textInputFocus=W.textInputFocus.bindTo(t),this._editorTextFocus=W.editorTextFocus.bindTo(t),this._tabMovesFocus=W.tabMovesFocus.bindTo(t),this._editorReadonly=W.readOnly.bindTo(t),this._inDiffEditor=W.inDiffEditor.bindTo(t),this._editorColumnSelection=W.columnSelection.bindTo(t),this._hasMultipleSelections=W.hasMultipleSelections.bindTo(t),this._hasNonEmptySelection=W.hasNonEmptySelection.bindTo(t),this._canUndo=W.canUndo.bindTo(t),this._canRedo=W.canRedo.bindTo(t),this._register(this._editor.onDidChangeConfiguration(()=>this._updateFromConfig())),this._register(this._editor.onDidChangeCursorSelection(()=>this._updateFromSelection())),this._register(this._editor.onDidFocusEditorWidget(()=>this._updateFromFocus())),this._register(this._editor.onDidBlurEditorWidget(()=>this._updateFromFocus())),this._register(this._editor.onDidFocusEditorText(()=>this._updateFromFocus())),this._register(this._editor.onDidBlurEditorText(()=>this._updateFromFocus())),this._register(this._editor.onDidChangeModel(()=>this._updateFromModel())),this._register(this._editor.onDidChangeConfiguration(()=>this._updateFromModel())),this._register(FC.onDidChangeTabFocus(i=>this._tabMovesFocus.set(i))),this._updateFromConfig(),this._updateFromSelection(),this._updateFromFocus(),this._updateFromModel(),this._editorSimpleInput.set(this._editor.isSimpleWidget)}_updateFromConfig(){const e=this._editor.getOptions();this._tabMovesFocus.set(FC.getTabFocusMode()),this._editorReadonly.set(e.get(91)),this._inDiffEditor.set(e.get(61)),this._editorColumnSelection.set(e.get(22))}_updateFromSelection(){const e=this._editor.getSelections();e?(this._hasMultipleSelections.set(e.length>1),this._hasNonEmptySelection.set(e.some(t=>!t.isEmpty()))):(this._hasMultipleSelections.reset(),this._hasNonEmptySelection.reset())}_updateFromFocus(){this._editorFocus.set(this._editor.hasWidgetFocus()&&!this._editor.isSimpleWidget),this._editorTextFocus.set(this._editor.hasTextFocus()&&!this._editor.isSimpleWidget),this._textInputFocus.set(this._editor.hasTextFocus())}_updateFromModel(){const e=this._editor.getModel();this._canUndo.set(!!(e&&e.canUndo())),this._canRedo.set(!!(e&&e.canRedo()))}}class s6e extends ne{constructor(e,t,i){super(),this._editor=e,this._contextKeyService=t,this._languageFeaturesService=i,this._langId=W.languageId.bindTo(t),this._hasCompletionItemProvider=W.hasCompletionItemProvider.bindTo(t),this._hasCodeActionsProvider=W.hasCodeActionsProvider.bindTo(t),this._hasCodeLensProvider=W.hasCodeLensProvider.bindTo(t),this._hasDefinitionProvider=W.hasDefinitionProvider.bindTo(t),this._hasDeclarationProvider=W.hasDeclarationProvider.bindTo(t),this._hasImplementationProvider=W.hasImplementationProvider.bindTo(t),this._hasTypeDefinitionProvider=W.hasTypeDefinitionProvider.bindTo(t),this._hasHoverProvider=W.hasHoverProvider.bindTo(t),this._hasDocumentHighlightProvider=W.hasDocumentHighlightProvider.bindTo(t),this._hasDocumentSymbolProvider=W.hasDocumentSymbolProvider.bindTo(t),this._hasReferenceProvider=W.hasReferenceProvider.bindTo(t),this._hasRenameProvider=W.hasRenameProvider.bindTo(t),this._hasSignatureHelpProvider=W.hasSignatureHelpProvider.bindTo(t),this._hasInlayHintsProvider=W.hasInlayHintsProvider.bindTo(t),this._hasDocumentFormattingProvider=W.hasDocumentFormattingProvider.bindTo(t),this._hasDocumentSelectionFormattingProvider=W.hasDocumentSelectionFormattingProvider.bindTo(t),this._hasMultipleDocumentFormattingProvider=W.hasMultipleDocumentFormattingProvider.bindTo(t),this._hasMultipleDocumentSelectionFormattingProvider=W.hasMultipleDocumentSelectionFormattingProvider.bindTo(t),this._isInEmbeddedEditor=W.isInEmbeddedEditor.bindTo(t);const s=()=>this._update();this._register(e.onDidChangeModel(s)),this._register(e.onDidChangeModelLanguage(s)),this._register(i.completionProvider.onDidChange(s)),this._register(i.codeActionProvider.onDidChange(s)),this._register(i.codeLensProvider.onDidChange(s)),this._register(i.definitionProvider.onDidChange(s)),this._register(i.declarationProvider.onDidChange(s)),this._register(i.implementationProvider.onDidChange(s)),this._register(i.typeDefinitionProvider.onDidChange(s)),this._register(i.hoverProvider.onDidChange(s)),this._register(i.documentHighlightProvider.onDidChange(s)),this._register(i.documentSymbolProvider.onDidChange(s)),this._register(i.referenceProvider.onDidChange(s)),this._register(i.renameProvider.onDidChange(s)),this._register(i.documentFormattingEditProvider.onDidChange(s)),this._register(i.documentRangeFormattingEditProvider.onDidChange(s)),this._register(i.signatureHelpProvider.onDidChange(s)),this._register(i.inlayHintsProvider.onDidChange(s)),s()}dispose(){super.dispose()}reset(){this._contextKeyService.bufferChangeEvents(()=>{this._langId.reset(),this._hasCompletionItemProvider.reset(),this._hasCodeActionsProvider.reset(),this._hasCodeLensProvider.reset(),this._hasDefinitionProvider.reset(),this._hasDeclarationProvider.reset(),this._hasImplementationProvider.reset(),this._hasTypeDefinitionProvider.reset(),this._hasHoverProvider.reset(),this._hasDocumentHighlightProvider.reset(),this._hasDocumentSymbolProvider.reset(),this._hasReferenceProvider.reset(),this._hasRenameProvider.reset(),this._hasDocumentFormattingProvider.reset(),this._hasDocumentSelectionFormattingProvider.reset(),this._hasSignatureHelpProvider.reset(),this._isInEmbeddedEditor.reset()})}_update(){const e=this._editor.getModel();if(!e){this.reset();return}this._contextKeyService.bufferChangeEvents(()=>{this._langId.set(e.getLanguageId()),this._hasCompletionItemProvider.set(this._languageFeaturesService.completionProvider.has(e)),this._hasCodeActionsProvider.set(this._languageFeaturesService.codeActionProvider.has(e)),this._hasCodeLensProvider.set(this._languageFeaturesService.codeLensProvider.has(e)),this._hasDefinitionProvider.set(this._languageFeaturesService.definitionProvider.has(e)),this._hasDeclarationProvider.set(this._languageFeaturesService.declarationProvider.has(e)),this._hasImplementationProvider.set(this._languageFeaturesService.implementationProvider.has(e)),this._hasTypeDefinitionProvider.set(this._languageFeaturesService.typeDefinitionProvider.has(e)),this._hasHoverProvider.set(this._languageFeaturesService.hoverProvider.has(e)),this._hasDocumentHighlightProvider.set(this._languageFeaturesService.documentHighlightProvider.has(e)),this._hasDocumentSymbolProvider.set(this._languageFeaturesService.documentSymbolProvider.has(e)),this._hasReferenceProvider.set(this._languageFeaturesService.referenceProvider.has(e)),this._hasRenameProvider.set(this._languageFeaturesService.renameProvider.has(e)),this._hasSignatureHelpProvider.set(this._languageFeaturesService.signatureHelpProvider.has(e)),this._hasInlayHintsProvider.set(this._languageFeaturesService.inlayHintsProvider.has(e)),this._hasDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.has(e)||this._languageFeaturesService.documentRangeFormattingEditProvider.has(e)),this._hasDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.has(e)),this._hasMultipleDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.all(e).length+this._languageFeaturesService.documentRangeFormattingEditProvider.all(e).length>1),this._hasMultipleDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.all(e).length>1),this._isInEmbeddedEditor.set(e.uri.scheme===Tt.walkThroughSnippet||e.uri.scheme===Tt.vscodeChatCodeBlock)})}}class o6e extends ne{constructor(e,t){super(),this._onChange=this._register(new X),this.onChange=this._onChange.event,this._hadFocus=void 0,this._hasDomElementFocus=!1,this._domFocusTracker=this._register(ou(e)),this._overflowWidgetsDomNodeHasFocus=!1,this._register(this._domFocusTracker.onDidFocus(()=>{this._hasDomElementFocus=!0,this._update()})),this._register(this._domFocusTracker.onDidBlur(()=>{this._hasDomElementFocus=!1,this._update()})),t&&(this._overflowWidgetsDomNode=this._register(ou(t)),this._register(this._overflowWidgetsDomNode.onDidFocus(()=>{this._overflowWidgetsDomNodeHasFocus=!0,this._update()})),this._register(this._overflowWidgetsDomNode.onDidBlur(()=>{this._overflowWidgetsDomNodeHasFocus=!1,this._update()})))}_update(){const e=this._hasDomElementFocus||this._overflowWidgetsDomNodeHasFocus;this._hadFocus!==e&&(this._hadFocus=e,this._onChange.fire(void 0))}hasFocus(){var e;return(e=this._hadFocus)!==null&&e!==void 0?e:!1}}class r6e{get length(){return this._decorationIds.length}constructor(e,t){this._editor=e,this._decorationIds=[],this._isChangingDecorations=!1,Array.isArray(t)&&t.length>0&&this.set(t)}onDidChange(e,t,i){return this._editor.onDidChangeModelDecorations(s=>{this._isChangingDecorations||e.call(t,s)},i)}getRange(e){return!this._editor.hasModel()||e>=this._decorationIds.length?null:this._editor.getModel().getDecorationRange(this._decorationIds[e])}getRanges(){if(!this._editor.hasModel())return[];const e=this._editor.getModel(),t=[];for(const i of this._decorationIds){const s=e.getDecorationRange(i);s&&t.push(s)}return t}has(e){return this._decorationIds.includes(e.id)}clear(){this._decorationIds.length!==0&&this.set([])}set(e){try{this._isChangingDecorations=!0,this._editor.changeDecorations(t=>{this._decorationIds=t.deltaDecorations(this._decorationIds,e)})}finally{this._isChangingDecorations=!1}return this._decorationIds}append(e){let t=[];try{this._isChangingDecorations=!0,this._editor.changeDecorations(i=>{t=i.deltaDecorations([],e),this._decorationIds=this._decorationIds.concat(t)})}finally{this._isChangingDecorations=!1}return t}}const a6e=encodeURIComponent(\"<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 3' enable-background='new 0 0 6 3' height='3' width='6'><g fill='\"),l6e=encodeURIComponent(\"'><polygon points='5.5,0 2.5,3 1.1,3 4.1,0'/><polygon points='4,0 6,2 6,0.6 5.4,0'/><polygon points='0,2 1,3 2.4,3 0,0.6'/></g></svg>\");function C5(n){return a6e+encodeURIComponent(n.toString())+l6e}const c6e=encodeURIComponent('<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"3\" width=\"12\"><g fill=\"'),d6e=encodeURIComponent('\"><circle cx=\"1\" cy=\"1\" r=\"1\"/><circle cx=\"5\" cy=\"1\" r=\"1\"/><circle cx=\"9\" cy=\"1\" r=\"1\"/></g></svg>');function u6e(n){return c6e+encodeURIComponent(n.toString())+d6e}mc((n,e)=>{const t=n.getColor(lh);t&&e.addRule(`.monaco-editor .squiggly-error { background: url(\"data:image/svg+xml,${C5(t)}\") repeat-x bottom left; }`);const i=n.getColor(hr);i&&e.addRule(`.monaco-editor .squiggly-warning { background: url(\"data:image/svg+xml,${C5(i)}\") repeat-x bottom left; }`);const s=n.getColor(sa);s&&e.addRule(`.monaco-editor .squiggly-info { background: url(\"data:image/svg+xml,${C5(s)}\") repeat-x bottom left; }`);const o=n.getColor(CFe);o&&e.addRule(`.monaco-editor .squiggly-hint { background: url(\"data:image/svg+xml,${u6e(o)}\") no-repeat bottom left; }`);const r=n.getColor(K3e);r&&e.addRule(`.monaco-editor.showUnused .squiggly-inline-unnecessary { opacity: ${r.rgba.a}; }`)});var h6e=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},f6e=function(n,e){return function(t,i){e(t,i,n)}};let t9=class extends ne{constructor(e){super(),this._themeService=e,this._onWillCreateCodeEditor=this._register(new X),this._onCodeEditorAdd=this._register(new X),this.onCodeEditorAdd=this._onCodeEditorAdd.event,this._onCodeEditorRemove=this._register(new X),this.onCodeEditorRemove=this._onCodeEditorRemove.event,this._onWillCreateDiffEditor=this._register(new X),this._onDiffEditorAdd=this._register(new X),this.onDiffEditorAdd=this._onDiffEditorAdd.event,this._onDiffEditorRemove=this._register(new X),this.onDiffEditorRemove=this._onDiffEditorRemove.event,this._decorationOptionProviders=new Map,this._codeEditorOpenHandlers=new Tr,this._modelProperties=new Map,this._codeEditors=Object.create(null),this._diffEditors=Object.create(null),this._globalStyleSheet=null}willCreateCodeEditor(){this._onWillCreateCodeEditor.fire()}addCodeEditor(e){this._codeEditors[e.getId()]=e,this._onCodeEditorAdd.fire(e)}removeCodeEditor(e){delete this._codeEditors[e.getId()]&&this._onCodeEditorRemove.fire(e)}listCodeEditors(){return Object.keys(this._codeEditors).map(e=>this._codeEditors[e])}willCreateDiffEditor(){this._onWillCreateDiffEditor.fire()}addDiffEditor(e){this._diffEditors[e.getId()]=e,this._onDiffEditorAdd.fire(e)}listDiffEditors(){return Object.keys(this._diffEditors).map(e=>this._diffEditors[e])}getFocusedCodeEditor(){let e=null;const t=this.listCodeEditors();for(const i of t){if(i.hasTextFocus())return i;i.hasWidgetFocus()&&(e=i)}return e}removeDecorationType(e){const t=this._decorationOptionProviders.get(e);t&&(t.refCount--,t.refCount<=0&&(this._decorationOptionProviders.delete(e),t.dispose(),this.listCodeEditors().forEach(i=>i.removeDecorationsByType(e))))}setModelProperty(e,t,i){const s=e.toString();let o;this._modelProperties.has(s)?o=this._modelProperties.get(s):(o=new Map,this._modelProperties.set(s,o)),o.set(t,i)}getModelProperty(e,t){const i=e.toString();if(this._modelProperties.has(i))return this._modelProperties.get(i).get(t)}async openCodeEditor(e,t,i){for(const s of this._codeEditorOpenHandlers){const o=await s(e,t,i);if(o!==null)return o}return null}registerCodeEditorOpenHandler(e){const t=this._codeEditorOpenHandlers.unshift(e);return dt(t)}};t9=h6e([f6e(0,js)],t9);var g6e=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},WQ=function(n,e){return function(t,i){e(t,i,n)}};let hA=class extends t9{constructor(e,t){super(t),this._register(this.onCodeEditorAdd(()=>this._checkContextKey())),this._register(this.onCodeEditorRemove(()=>this._checkContextKey())),this._editorIsOpen=e.createKey(\"editorIsOpen\",!1),this._activeCodeEditor=null,this._register(this.registerCodeEditorOpenHandler(async(i,s,o)=>s?this.doOpenEditor(s,i):null))}_checkContextKey(){let e=!1;for(const t of this.listCodeEditors())if(!t.isSimpleWidget){e=!0;break}this._editorIsOpen.set(e)}setActiveCodeEditor(e){this._activeCodeEditor=e}getActiveCodeEditor(){return this._activeCodeEditor}doOpenEditor(e,t){if(!this.findModel(e,t.resource)){if(t.resource){const o=t.resource.scheme;if(o===Tt.http||o===Tt.https)return Yae(t.resource.toString()),e}return null}const s=t.options?t.options.selection:null;if(s)if(typeof s.endLineNumber==\"number\"&&typeof s.endColumn==\"number\")e.setSelection(s),e.revealRangeInCenter(s,1);else{const o={lineNumber:s.startLineNumber,column:s.startColumn};e.setPosition(o),e.revealPositionInCenter(o,1)}return e}findModel(e,t){const i=e.getModel();return i&&i.uri.toString()!==t.toString()?null:i}};hA=g6e([WQ(0,Ct),WQ(1,js)],hA);ai(vi,hA,0);const g_=Jt(\"layoutService\");var Qce=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Jce=function(n,e){return function(t,i){e(t,i,n)}};let fA=class{get mainContainer(){var e,t;return(t=(e=NV(this._codeEditorService.listCodeEditors()))===null||e===void 0?void 0:e.getContainerDomNode())!==null&&t!==void 0?t:Ji.document.body}get activeContainer(){var e,t;const i=(e=this._codeEditorService.getFocusedCodeEditor())!==null&&e!==void 0?e:this._codeEditorService.getActiveCodeEditor();return(t=i==null?void 0:i.getContainerDomNode())!==null&&t!==void 0?t:this.mainContainer}get mainContainerDimension(){return Fm(this.mainContainer)}get activeContainerDimension(){return Fm(this.activeContainer)}get containers(){return tu(this._codeEditorService.listCodeEditors().map(e=>e.getContainerDomNode()))}getContainer(){return this.activeContainer}whenContainerStylesLoaded(){}focus(){var e;(e=this._codeEditorService.getFocusedCodeEditor())===null||e===void 0||e.focus()}constructor(e){this._codeEditorService=e,this.onDidLayoutMainContainer=Ae.None,this.onDidLayoutActiveContainer=Ae.None,this.onDidLayoutContainer=Ae.None,this.onDidChangeActiveContainer=Ae.None,this.onDidAddContainer=Ae.None,this.mainContainerOffset={top:0,quickPickTop:0},this.activeContainerOffset={top:0,quickPickTop:0}}};fA=Qce([Jce(0,vi)],fA);let i9=class extends fA{get mainContainer(){return this._container}constructor(e,t){super(t),this._container=e}};i9=Qce([Jce(1,vi)],i9);ai(g_,fA,1);const DD=Jt(\"dialogService\");var p6e=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},HQ=function(n,e){return function(t,i){e(t,i,n)}};function YE(n){return n.scheme===Tt.file?n.fsPath:n.path}let ede=0;class XE{constructor(e,t,i,s,o,r,a){this.id=++ede,this.type=0,this.actual=e,this.label=e.label,this.confirmBeforeUndo=e.confirmBeforeUndo||!1,this.resourceLabel=t,this.strResource=i,this.resourceLabels=[this.resourceLabel],this.strResources=[this.strResource],this.groupId=s,this.groupOrder=o,this.sourceId=r,this.sourceOrder=a,this.isValid=!0}setValid(e){this.isValid=e}toString(){return`[id:${this.id}] [group:${this.groupId}] [${this.isValid?\"  VALID\":\"INVALID\"}] ${this.actual.constructor.name} - ${this.actual}`}}class VQ{constructor(e,t){this.resourceLabel=e,this.reason=t}}class zQ{constructor(){this.elements=new Map}createMessage(){const e=[],t=[];for(const[,s]of this.elements)(s.reason===0?e:t).push(s.resourceLabel);const i=[];return e.length>0&&i.push(v({},\"The following files have been closed and modified on disk: {0}.\",e.join(\", \"))),t.length>0&&i.push(v({},\"The following files have been modified in an incompatible way: {0}.\",t.join(\", \"))),i.join(`\n`)}get size(){return this.elements.size}has(e){return this.elements.has(e)}set(e,t){this.elements.set(e,t)}delete(e){return this.elements.delete(e)}}class m6e{constructor(e,t,i,s,o,r,a){this.id=++ede,this.type=1,this.actual=e,this.label=e.label,this.confirmBeforeUndo=e.confirmBeforeUndo||!1,this.resourceLabels=t,this.strResources=i,this.groupId=s,this.groupOrder=o,this.sourceId=r,this.sourceOrder=a,this.removedResources=null,this.invalidatedResources=null}canSplit(){return typeof this.actual.split==\"function\"}removeResource(e,t,i){this.removedResources||(this.removedResources=new zQ),this.removedResources.has(t)||this.removedResources.set(t,new VQ(e,i))}setValid(e,t,i){i?this.invalidatedResources&&(this.invalidatedResources.delete(t),this.invalidatedResources.size===0&&(this.invalidatedResources=null)):(this.invalidatedResources||(this.invalidatedResources=new zQ),this.invalidatedResources.has(t)||this.invalidatedResources.set(t,new VQ(e,0)))}toString(){return`[id:${this.id}] [group:${this.groupId}] [${this.invalidatedResources?\"INVALID\":\"  VALID\"}] ${this.actual.constructor.name} - ${this.actual}`}}class tde{constructor(e,t){this.resourceLabel=e,this.strResource=t,this._past=[],this._future=[],this.locked=!1,this.versionId=1}dispose(){for(const e of this._past)e.type===1&&e.removeResource(this.resourceLabel,this.strResource,0);for(const e of this._future)e.type===1&&e.removeResource(this.resourceLabel,this.strResource,0);this.versionId++}toString(){const e=[];e.push(`* ${this.strResource}:`);for(let t=0;t<this._past.length;t++)e.push(`   * [UNDO] ${this._past[t]}`);for(let t=this._future.length-1;t>=0;t--)e.push(`   * [REDO] ${this._future[t]}`);return e.join(`\n`)}flushAllElements(){this._past=[],this._future=[],this.versionId++}_setElementValidFlag(e,t){e.type===1?e.setValid(this.resourceLabel,this.strResource,t):e.setValid(t)}setElementsValidFlag(e,t){for(const i of this._past)t(i.actual)&&this._setElementValidFlag(i,e);for(const i of this._future)t(i.actual)&&this._setElementValidFlag(i,e)}pushElement(e){for(const t of this._future)t.type===1&&t.removeResource(this.resourceLabel,this.strResource,1);this._future=[],this._past.push(e),this.versionId++}createSnapshot(e){const t=[];for(let i=0,s=this._past.length;i<s;i++)t.push(this._past[i].id);for(let i=this._future.length-1;i>=0;i--)t.push(this._future[i].id);return new Kce(e,t)}restoreSnapshot(e){const t=e.elements.length;let i=!0,s=0,o=-1;for(let a=0,l=this._past.length;a<l;a++,s++){const c=this._past[a];i&&(s>=t||c.id!==e.elements[s])&&(i=!1,o=0),!i&&c.type===1&&c.removeResource(this.resourceLabel,this.strResource,0)}let r=-1;for(let a=this._future.length-1;a>=0;a--,s++){const l=this._future[a];i&&(s>=t||l.id!==e.elements[s])&&(i=!1,r=a),!i&&l.type===1&&l.removeResource(this.resourceLabel,this.strResource,0)}o!==-1&&(this._past=this._past.slice(0,o)),r!==-1&&(this._future=this._future.slice(r+1)),this.versionId++}getElements(){const e=[],t=[];for(const i of this._past)e.push(i.actual);for(const i of this._future)t.push(i.actual);return{past:e,future:t}}getClosestPastElement(){return this._past.length===0?null:this._past[this._past.length-1]}getSecondClosestPastElement(){return this._past.length<2?null:this._past[this._past.length-2]}getClosestFutureElement(){return this._future.length===0?null:this._future[this._future.length-1]}hasPastElements(){return this._past.length>0}hasFutureElements(){return this._future.length>0}splitPastWorkspaceElement(e,t){for(let i=this._past.length-1;i>=0;i--)if(this._past[i]===e){t.has(this.strResource)?this._past[i]=t.get(this.strResource):this._past.splice(i,1);break}this.versionId++}splitFutureWorkspaceElement(e,t){for(let i=this._future.length-1;i>=0;i--)if(this._future[i]===e){t.has(this.strResource)?this._future[i]=t.get(this.strResource):this._future.splice(i,1);break}this.versionId++}moveBackward(e){this._past.pop(),this._future.push(e),this.versionId++}moveForward(e){this._future.pop(),this._past.push(e),this.versionId++}}class w5{constructor(e){this.editStacks=e,this._versionIds=[];for(let t=0,i=this.editStacks.length;t<i;t++)this._versionIds[t]=this.editStacks[t].versionId}isValid(){for(let e=0,t=this.editStacks.length;e<t;e++)if(this._versionIds[e]!==this.editStacks[e].versionId)return!1;return!0}}const ide=new tde(\"\",\"\");ide.locked=!0;let n9=class{constructor(e,t){this._dialogService=e,this._notificationService=t,this._editStacks=new Map,this._uriComparisonKeyComputers=[]}getUriComparisonKey(e){for(const t of this._uriComparisonKeyComputers)if(t[0]===e.scheme)return t[1].getComparisonKey(e);return e.toString()}_print(e){console.log(\"------------------------------------\"),console.log(`AFTER ${e}: `);const t=[];for(const i of this._editStacks)t.push(i[1].toString());console.log(t.join(`\n`))}pushElement(e,t=UC.None,i=th.None){if(e.type===0){const s=YE(e.resource),o=this.getUriComparisonKey(e.resource);this._pushElement(new XE(e,s,o,t.id,t.nextOrder(),i.id,i.nextOrder()))}else{const s=new Set,o=[],r=[];for(const a of e.resources){const l=YE(a),c=this.getUriComparisonKey(a);s.has(c)||(s.add(c),o.push(l),r.push(c))}o.length===1?this._pushElement(new XE(e,o[0],r[0],t.id,t.nextOrder(),i.id,i.nextOrder())):this._pushElement(new m6e(e,o,r,t.id,t.nextOrder(),i.id,i.nextOrder()))}}_pushElement(e){for(let t=0,i=e.strResources.length;t<i;t++){const s=e.resourceLabels[t],o=e.strResources[t];let r;this._editStacks.has(o)?r=this._editStacks.get(o):(r=new tde(s,o),this._editStacks.set(o,r)),r.pushElement(e)}}getLastElement(e){const t=this.getUriComparisonKey(e);if(this._editStacks.has(t)){const i=this._editStacks.get(t);if(i.hasFutureElements())return null;const s=i.getClosestPastElement();return s?s.actual:null}return null}_splitPastWorkspaceElement(e,t){const i=e.actual.split(),s=new Map;for(const o of i){const r=YE(o.resource),a=this.getUriComparisonKey(o.resource),l=new XE(o,r,a,0,0,0,0);s.set(l.strResource,l)}for(const o of e.strResources){if(t&&t.has(o))continue;this._editStacks.get(o).splitPastWorkspaceElement(e,s)}}_splitFutureWorkspaceElement(e,t){const i=e.actual.split(),s=new Map;for(const o of i){const r=YE(o.resource),a=this.getUriComparisonKey(o.resource),l=new XE(o,r,a,0,0,0,0);s.set(l.strResource,l)}for(const o of e.strResources){if(t&&t.has(o))continue;this._editStacks.get(o).splitFutureWorkspaceElement(e,s)}}removeElements(e){const t=typeof e==\"string\"?e:this.getUriComparisonKey(e);this._editStacks.has(t)&&(this._editStacks.get(t).dispose(),this._editStacks.delete(t))}setElementsValidFlag(e,t,i){const s=this.getUriComparisonKey(e);this._editStacks.has(s)&&this._editStacks.get(s).setElementsValidFlag(t,i)}createSnapshot(e){const t=this.getUriComparisonKey(e);return this._editStacks.has(t)?this._editStacks.get(t).createSnapshot(e):new Kce(e,[])}restoreSnapshot(e){const t=this.getUriComparisonKey(e.resource);if(this._editStacks.has(t)){const i=this._editStacks.get(t);i.restoreSnapshot(e),!i.hasPastElements()&&!i.hasFutureElements()&&(i.dispose(),this._editStacks.delete(t))}}getElements(e){const t=this.getUriComparisonKey(e);return this._editStacks.has(t)?this._editStacks.get(t).getElements():{past:[],future:[]}}_findClosestUndoElementWithSource(e){if(!e)return[null,null];let t=null,i=null;for(const[s,o]of this._editStacks){const r=o.getClosestPastElement();r&&r.sourceId===e&&(!t||r.sourceOrder>t.sourceOrder)&&(t=r,i=s)}return[t,i]}canUndo(e){if(e instanceof th){const[,i]=this._findClosestUndoElementWithSource(e.id);return!!i}const t=this.getUriComparisonKey(e);return this._editStacks.has(t)?this._editStacks.get(t).hasPastElements():!1}_onError(e,t){Mt(e);for(const i of t.strResources)this.removeElements(i);this._notificationService.error(e)}_acquireLocks(e){for(const t of e.editStacks)if(t.locked)throw new Error(\"Cannot acquire edit stack lock\");for(const t of e.editStacks)t.locked=!0;return()=>{for(const t of e.editStacks)t.locked=!1}}_safeInvokeWithLocks(e,t,i,s,o){const r=this._acquireLocks(i);let a;try{a=t()}catch(l){return r(),s.dispose(),this._onError(l,e)}return a?a.then(()=>(r(),s.dispose(),o()),l=>(r(),s.dispose(),this._onError(l,e))):(r(),s.dispose(),o())}async _invokeWorkspacePrepare(e){if(typeof e.actual.prepareUndoRedo>\"u\")return ne.None;const t=e.actual.prepareUndoRedo();return typeof t>\"u\"?ne.None:t}_invokeResourcePrepare(e,t){if(e.actual.type!==1||typeof e.actual.prepareUndoRedo>\"u\")return t(ne.None);const i=e.actual.prepareUndoRedo();return i?nM(i)?t(i):i.then(s=>t(s)):t(ne.None)}_getAffectedEditStacks(e){const t=[];for(const i of e.strResources)t.push(this._editStacks.get(i)||ide);return new w5(t)}_tryToSplitAndUndo(e,t,i,s){if(t.canSplit())return this._splitPastWorkspaceElement(t,i),this._notificationService.warn(s),new QE(this._undo(e,0,!0));for(const o of t.strResources)this.removeElements(o);return this._notificationService.warn(s),new QE}_checkWorkspaceUndo(e,t,i,s){if(t.removedResources)return this._tryToSplitAndUndo(e,t,t.removedResources,v({},\"Could not undo '{0}' across all files. {1}\",t.label,t.removedResources.createMessage()));if(s&&t.invalidatedResources)return this._tryToSplitAndUndo(e,t,t.invalidatedResources,v({},\"Could not undo '{0}' across all files. {1}\",t.label,t.invalidatedResources.createMessage()));const o=[];for(const a of i.editStacks)a.getClosestPastElement()!==t&&o.push(a.resourceLabel);if(o.length>0)return this._tryToSplitAndUndo(e,t,null,v({},\"Could not undo '{0}' across all files because changes were made to {1}\",t.label,o.join(\", \")));const r=[];for(const a of i.editStacks)a.locked&&r.push(a.resourceLabel);return r.length>0?this._tryToSplitAndUndo(e,t,null,v({},\"Could not undo '{0}' across all files because there is already an undo or redo operation running on {1}\",t.label,r.join(\", \"))):i.isValid()?null:this._tryToSplitAndUndo(e,t,null,v({},\"Could not undo '{0}' across all files because an undo or redo operation occurred in the meantime\",t.label))}_workspaceUndo(e,t,i){const s=this._getAffectedEditStacks(t),o=this._checkWorkspaceUndo(e,t,s,!1);return o?o.returnValue:this._confirmAndExecuteWorkspaceUndo(e,t,s,i)}_isPartOfUndoGroup(e){if(!e.groupId)return!1;for(const[,t]of this._editStacks){const i=t.getClosestPastElement();if(i){if(i===e){const s=t.getSecondClosestPastElement();if(s&&s.groupId===e.groupId)return!0}if(i.groupId===e.groupId)return!0}}return!1}async _confirmAndExecuteWorkspaceUndo(e,t,i,s){if(t.canSplit()&&!this._isPartOfUndoGroup(t)){let a;(function(d){d[d.All=0]=\"All\",d[d.This=1]=\"This\",d[d.Cancel=2]=\"Cancel\"})(a||(a={}));const{result:l}=await this._dialogService.prompt({type:us.Info,message:v(\"confirmWorkspace\",\"Would you like to undo '{0}' across all files?\",t.label),buttons:[{label:v({},\"&&Undo in {0} Files\",i.editStacks.length),run:()=>a.All},{label:v({},\"Undo this &&File\"),run:()=>a.This}],cancelButton:{run:()=>a.Cancel}});if(l===a.Cancel)return;if(l===a.This)return this._splitPastWorkspaceElement(t,null),this._undo(e,0,!0);const c=this._checkWorkspaceUndo(e,t,i,!1);if(c)return c.returnValue;s=!0}let o;try{o=await this._invokeWorkspacePrepare(t)}catch(a){return this._onError(a,t)}const r=this._checkWorkspaceUndo(e,t,i,!0);if(r)return o.dispose(),r.returnValue;for(const a of i.editStacks)a.moveBackward(t);return this._safeInvokeWithLocks(t,()=>t.actual.undo(),i,o,()=>this._continueUndoInGroup(t.groupId,s))}_resourceUndo(e,t,i){if(!t.isValid){e.flushAllElements();return}if(e.locked){const s=v({},\"Could not undo '{0}' because there is already an undo or redo operation running.\",t.label);this._notificationService.warn(s);return}return this._invokeResourcePrepare(t,s=>(e.moveBackward(t),this._safeInvokeWithLocks(t,()=>t.actual.undo(),new w5([e]),s,()=>this._continueUndoInGroup(t.groupId,i))))}_findClosestUndoElementInGroup(e){if(!e)return[null,null];let t=null,i=null;for(const[s,o]of this._editStacks){const r=o.getClosestPastElement();r&&r.groupId===e&&(!t||r.groupOrder>t.groupOrder)&&(t=r,i=s)}return[t,i]}_continueUndoInGroup(e,t){if(!e)return;const[,i]=this._findClosestUndoElementInGroup(e);if(i)return this._undo(i,0,t)}undo(e){if(e instanceof th){const[,t]=this._findClosestUndoElementWithSource(e.id);return t?this._undo(t,e.id,!1):void 0}return typeof e==\"string\"?this._undo(e,0,!1):this._undo(this.getUriComparisonKey(e),0,!1)}_undo(e,t=0,i){if(!this._editStacks.has(e))return;const s=this._editStacks.get(e),o=s.getClosestPastElement();if(!o)return;if(o.groupId){const[a,l]=this._findClosestUndoElementInGroup(o.groupId);if(o!==a&&l)return this._undo(l,t,i)}if((o.sourceId!==t||o.confirmBeforeUndo)&&!i)return this._confirmAndContinueUndo(e,t,o);try{return o.type===1?this._workspaceUndo(e,o,i):this._resourceUndo(s,o,i)}finally{}}async _confirmAndContinueUndo(e,t,i){if((await this._dialogService.confirm({message:v(\"confirmDifferentSource\",\"Would you like to undo '{0}'?\",i.label),primaryButton:v({},\"&&Yes\"),cancelButton:v(\"confirmDifferentSource.no\",\"No\")})).confirmed)return this._undo(e,t,!0)}_findClosestRedoElementWithSource(e){if(!e)return[null,null];let t=null,i=null;for(const[s,o]of this._editStacks){const r=o.getClosestFutureElement();r&&r.sourceId===e&&(!t||r.sourceOrder<t.sourceOrder)&&(t=r,i=s)}return[t,i]}canRedo(e){if(e instanceof th){const[,i]=this._findClosestRedoElementWithSource(e.id);return!!i}const t=this.getUriComparisonKey(e);return this._editStacks.has(t)?this._editStacks.get(t).hasFutureElements():!1}_tryToSplitAndRedo(e,t,i,s){if(t.canSplit())return this._splitFutureWorkspaceElement(t,i),this._notificationService.warn(s),new QE(this._redo(e));for(const o of t.strResources)this.removeElements(o);return this._notificationService.warn(s),new QE}_checkWorkspaceRedo(e,t,i,s){if(t.removedResources)return this._tryToSplitAndRedo(e,t,t.removedResources,v({},\"Could not redo '{0}' across all files. {1}\",t.label,t.removedResources.createMessage()));if(s&&t.invalidatedResources)return this._tryToSplitAndRedo(e,t,t.invalidatedResources,v({},\"Could not redo '{0}' across all files. {1}\",t.label,t.invalidatedResources.createMessage()));const o=[];for(const a of i.editStacks)a.getClosestFutureElement()!==t&&o.push(a.resourceLabel);if(o.length>0)return this._tryToSplitAndRedo(e,t,null,v({},\"Could not redo '{0}' across all files because changes were made to {1}\",t.label,o.join(\", \")));const r=[];for(const a of i.editStacks)a.locked&&r.push(a.resourceLabel);return r.length>0?this._tryToSplitAndRedo(e,t,null,v({},\"Could not redo '{0}' across all files because there is already an undo or redo operation running on {1}\",t.label,r.join(\", \"))):i.isValid()?null:this._tryToSplitAndRedo(e,t,null,v({},\"Could not redo '{0}' across all files because an undo or redo operation occurred in the meantime\",t.label))}_workspaceRedo(e,t){const i=this._getAffectedEditStacks(t),s=this._checkWorkspaceRedo(e,t,i,!1);return s?s.returnValue:this._executeWorkspaceRedo(e,t,i)}async _executeWorkspaceRedo(e,t,i){let s;try{s=await this._invokeWorkspacePrepare(t)}catch(r){return this._onError(r,t)}const o=this._checkWorkspaceRedo(e,t,i,!0);if(o)return s.dispose(),o.returnValue;for(const r of i.editStacks)r.moveForward(t);return this._safeInvokeWithLocks(t,()=>t.actual.redo(),i,s,()=>this._continueRedoInGroup(t.groupId))}_resourceRedo(e,t){if(!t.isValid){e.flushAllElements();return}if(e.locked){const i=v({},\"Could not redo '{0}' because there is already an undo or redo operation running.\",t.label);this._notificationService.warn(i);return}return this._invokeResourcePrepare(t,i=>(e.moveForward(t),this._safeInvokeWithLocks(t,()=>t.actual.redo(),new w5([e]),i,()=>this._continueRedoInGroup(t.groupId))))}_findClosestRedoElementInGroup(e){if(!e)return[null,null];let t=null,i=null;for(const[s,o]of this._editStacks){const r=o.getClosestFutureElement();r&&r.groupId===e&&(!t||r.groupOrder<t.groupOrder)&&(t=r,i=s)}return[t,i]}_continueRedoInGroup(e){if(!e)return;const[,t]=this._findClosestRedoElementInGroup(e);if(t)return this._redo(t)}redo(e){if(e instanceof th){const[,t]=this._findClosestRedoElementWithSource(e.id);return t?this._redo(t):void 0}return typeof e==\"string\"?this._redo(e):this._redo(this.getUriComparisonKey(e))}_redo(e){if(!this._editStacks.has(e))return;const t=this._editStacks.get(e),i=t.getClosestFutureElement();if(i){if(i.groupId){const[s,o]=this._findClosestRedoElementInGroup(i.groupId);if(i!==s&&o)return this._redo(o)}try{return i.type===1?this._workspaceRedo(e,i):this._resourceRedo(t,i)}finally{}}}};n9=p6e([HQ(0,DD),HQ(1,ps)],n9);class QE{constructor(e){this.returnValue=e}}ai(zM,n9,1);function Sr(n,e,t){return Math.min(Math.max(n,e),t)}class nde{constructor(){this._n=1,this._val=0}update(e){return this._val=this._val+(e-this._val)/this._n,this._n+=1,this._val}get value(){return this._val}}class _6e{constructor(e){this._n=0,this._val=0,this._values=[],this._index=0,this._sum=0,this._values=new Array(e),this._values.fill(0,0,e)}update(e){const t=this._values[this._index];return this._values[this._index]=e,this._index=(this._index+1)%this._values.length,this._sum-=t,this._sum+=e,this._n<this._values.length&&(this._n+=1),this._val=this._sum/this._n,this._val}get value(){return this._val}}const r$=Jt(\"environmentService\");var v6e=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},$Q=function(n,e){return function(t,i){e(t,i,n)}};const _c=Jt(\"ILanguageFeatureDebounceService\");var gA;(function(n){const e=new WeakMap;let t=0;function i(s){let o=e.get(s);return o===void 0&&(o=++t,e.set(s,o)),o}n.of=i})(gA||(gA={}));class b6e{constructor(e){this._default=e}get(e){return this._default}update(e,t){return this._default}default(){return this._default}}class C6e{constructor(e,t,i,s,o,r){this._logService=e,this._name=t,this._registry=i,this._default=s,this._min=o,this._max=r,this._cache=new zh(50,.7)}_key(e){return e.id+this._registry.all(e).reduce((t,i)=>lM(gA.of(i),t),0)}get(e){const t=this._key(e),i=this._cache.get(t);return i?Sr(i.value,this._min,this._max):this.default()}update(e,t){const i=this._key(e);let s=this._cache.get(i);s||(s=new _6e(6),this._cache.set(i,s));const o=Sr(s.update(t),this._min,this._max);return ez(e.uri,\"output\")||this._logService.trace(`[DEBOUNCE: ${this._name}] for ${e.uri.toString()} is ${o}ms`),o}_overall(){const e=new nde;for(const[,t]of this._cache)e.update(t.value);return e.value}default(){const e=this._overall()|0||this._default;return Sr(e,this._min,this._max)}}let s9=class{constructor(e,t){this._logService=e,this._data=new Map,this._isDev=t.isExtensionDevelopment||!t.isBuilt}for(e,t,i){var s,o,r;const a=(s=i==null?void 0:i.min)!==null&&s!==void 0?s:50,l=(o=i==null?void 0:i.max)!==null&&o!==void 0?o:a**2,c=(r=i==null?void 0:i.key)!==null&&r!==void 0?r:void 0,d=`${gA.of(e)},${a}${c?\",\"+c:\"\"}`;let u=this._data.get(d);return u||(this._isDev?(this._logService.debug(`[DEBOUNCE: ${t}] is disabled in developed mode`),u=new b6e(a*1.5)):u=new C6e(this._logService,t,e,this._overallAverage()|0||a*1.5,a,l),this._data.set(d,u)),u}_overallAverage(){const e=new nde;for(const t of this._data.values())e.update(t.default());return e.value}};s9=v6e([$Q(0,er),$Q(1,r$)],s9);ai(_c,s9,1);class Lx{static create(e,t){return new Lx(e,new pA(t))}get startLineNumber(){return this._startLineNumber}get endLineNumber(){return this._endLineNumber}constructor(e,t){this._startLineNumber=e,this._tokens=t,this._endLineNumber=this._startLineNumber+this._tokens.getMaxDeltaLine()}toString(){return this._tokens.toString(this._startLineNumber)}_updateEndLineNumber(){this._endLineNumber=this._startLineNumber+this._tokens.getMaxDeltaLine()}isEmpty(){return this._tokens.isEmpty()}getLineTokens(e){return this._startLineNumber<=e&&e<=this._endLineNumber?this._tokens.getLineTokens(e-this._startLineNumber):null}getRange(){const e=this._tokens.getRange();return e&&new A(this._startLineNumber+e.startLineNumber,e.startColumn,this._startLineNumber+e.endLineNumber,e.endColumn)}removeTokens(e){const t=e.startLineNumber-this._startLineNumber,i=e.endLineNumber-this._startLineNumber;this._startLineNumber+=this._tokens.removeTokens(t,e.startColumn-1,i,e.endColumn-1),this._updateEndLineNumber()}split(e){const t=e.startLineNumber-this._startLineNumber,i=e.endLineNumber-this._startLineNumber,[s,o,r]=this._tokens.split(t,e.startColumn-1,i,e.endColumn-1);return[new Lx(this._startLineNumber,s),new Lx(this._startLineNumber+r,o)]}applyEdit(e,t){const[i,s,o]=Hm(t);this.acceptEdit(e,i,s,o,t.length>0?t.charCodeAt(0):0)}acceptEdit(e,t,i,s,o){this._acceptDeleteRange(e),this._acceptInsertText(new ee(e.startLineNumber,e.startColumn),t,i,s,o),this._updateEndLineNumber()}_acceptDeleteRange(e){if(e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn)return;const t=e.startLineNumber-this._startLineNumber,i=e.endLineNumber-this._startLineNumber;if(i<0){const o=i-t;this._startLineNumber-=o;return}const s=this._tokens.getMaxDeltaLine();if(!(t>=s+1)){if(t<0&&i>=s+1){this._startLineNumber=0,this._tokens.clear();return}if(t<0){const o=-t;this._startLineNumber-=o,this._tokens.acceptDeleteRange(e.startColumn-1,0,0,i,e.endColumn-1)}else this._tokens.acceptDeleteRange(0,t,e.startColumn-1,i,e.endColumn-1)}}_acceptInsertText(e,t,i,s,o){if(t===0&&i===0)return;const r=e.lineNumber-this._startLineNumber;if(r<0){this._startLineNumber+=t;return}const a=this._tokens.getMaxDeltaLine();r>=a+1||this._tokens.acceptInsertText(r,e.column-1,t,i,s,o)}}class pA{constructor(e){this._tokens=e,this._tokenCount=e.length/4}toString(e){const t=[];for(let i=0;i<this._tokenCount;i++)t.push(`(${this._getDeltaLine(i)+e},${this._getStartCharacter(i)}-${this._getEndCharacter(i)})`);return`[${t.join(\",\")}]`}getMaxDeltaLine(){const e=this._getTokenCount();return e===0?-1:this._getDeltaLine(e-1)}getRange(){const e=this._getTokenCount();if(e===0)return null;const t=this._getStartCharacter(0),i=this._getDeltaLine(e-1),s=this._getEndCharacter(e-1);return new A(0,t+1,i,s+1)}_getTokenCount(){return this._tokenCount}_getDeltaLine(e){return this._tokens[4*e]}_getStartCharacter(e){return this._tokens[4*e+1]}_getEndCharacter(e){return this._tokens[4*e+2]}isEmpty(){return this._getTokenCount()===0}getLineTokens(e){let t=0,i=this._getTokenCount()-1;for(;t<i;){const s=t+Math.floor((i-t)/2),o=this._getDeltaLine(s);if(o<e)t=s+1;else if(o>e)i=s-1;else{let r=s;for(;r>t&&this._getDeltaLine(r-1)===e;)r--;let a=s;for(;a<i&&this._getDeltaLine(a+1)===e;)a++;return new UQ(this._tokens.subarray(4*r,4*a+4))}}return this._getDeltaLine(t)===e?new UQ(this._tokens.subarray(4*t,4*t+4)):null}clear(){this._tokenCount=0}removeTokens(e,t,i,s){const o=this._tokens,r=this._tokenCount;let a=0,l=!1,c=0;for(let d=0;d<r;d++){const u=4*d,h=o[u],f=o[u+1],g=o[u+2],p=o[u+3];if((h>e||h===e&&g>=t)&&(h<i||h===i&&f<=s))l=!0;else{if(a===0&&(c=h),l){const _=4*a;o[_]=h-c,o[_+1]=f,o[_+2]=g,o[_+3]=p}a++}}return this._tokenCount=a,c}split(e,t,i,s){const o=this._tokens,r=this._tokenCount,a=[],l=[];let c=a,d=0,u=0;for(let h=0;h<r;h++){const f=4*h,g=o[f],p=o[f+1],_=o[f+2],b=o[f+3];if(g>e||g===e&&_>=t){if(g<i||g===i&&p<=s)continue;c!==l&&(c=l,d=0,u=g)}c[d++]=g-u,c[d++]=p,c[d++]=_,c[d++]=b}return[new pA(new Uint32Array(a)),new pA(new Uint32Array(l)),u]}acceptDeleteRange(e,t,i,s,o){const r=this._tokens,a=this._tokenCount,l=s-t;let c=0,d=!1;for(let u=0;u<a;u++){const h=4*u;let f=r[h],g=r[h+1],p=r[h+2];const _=r[h+3];if(f<t||f===t&&p<=i){c++;continue}else if(f===t&&g<i)f===s&&p>o?p-=o-i:p=i;else if(f===t&&g===i)if(f===s&&p>o)p-=o-i;else{d=!0;continue}else if(f<s||f===s&&g<o)if(f===s&&p>o)f=t,g=i,p=g+(p-o);else{d=!0;continue}else if(f>s){if(l===0&&!d){c=a;break}f-=l}else if(f===s&&g>=o)e&&f===0&&(g+=e,p+=e),f-=l,g-=o-i,p-=o-i;else throw new Error(\"Not possible!\");const b=4*c;r[b]=f,r[b+1]=g,r[b+2]=p,r[b+3]=_,c++}this._tokenCount=c}acceptInsertText(e,t,i,s,o,r){const a=i===0&&s===1&&(r>=48&&r<=57||r>=65&&r<=90||r>=97&&r<=122),l=this._tokens,c=this._tokenCount;for(let d=0;d<c;d++){const u=4*d;let h=l[u],f=l[u+1],g=l[u+2];if(!(h<e||h===e&&g<t)){if(h===e&&g===t)if(a)g+=1;else continue;else if(h===e&&f<t&&t<g)i===0?g+=s:g=t;else{if(h===e&&f===t&&a)continue;if(h===e)if(h+=i,i===0)f+=s,g+=s;else{const p=g-f;f=o+(f-t),g=f+p}else h+=i}l[u]=h,l[u+1]=f,l[u+2]=g}}}}class UQ{constructor(e){this._tokens=e}getCount(){return this._tokens.length/4}getStartCharacter(e){return this._tokens[4*e+1]}getEndCharacter(e){return this._tokens[4*e+2]}getMetadata(e){return this._tokens[4*e+3]}}var w6e=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},y5=function(n,e){return function(t,i){e(t,i,n)}};let o9=class{constructor(e,t,i,s){this._legend=e,this._themeService=t,this._languageService=i,this._logService=s,this._hasWarnedOverlappingTokens=!1,this._hasWarnedInvalidLengthTokens=!1,this._hasWarnedInvalidEditStart=!1,this._hashTable=new Rf}getMetadata(e,t,i){const s=this._languageService.languageIdCodec.encodeLanguageId(i),o=this._hashTable.get(e,t,s);let r;if(o)r=o.metadata,this._logService.getLevel()===To.Trace&&this._logService.trace(`SemanticTokensProviderStyling [CACHED] ${e} / ${t}: foreground ${No.getForeground(r)}, fontStyle ${No.getFontStyle(r).toString(2)}`);else{let a=this._legend.tokenTypes[e];const l=[];if(a){let c=t;for(let u=0;c>0&&u<this._legend.tokenModifiers.length;u++)c&1&&l.push(this._legend.tokenModifiers[u]),c=c>>1;c>0&&this._logService.getLevel()===To.Trace&&(this._logService.trace(`SemanticTokensProviderStyling: unknown token modifier index: ${t.toString(2)} for legend: ${JSON.stringify(this._legend.tokenModifiers)}`),l.push(\"not-in-legend\"));const d=this._themeService.getColorTheme().getTokenStyleMetadata(a,l,i);if(typeof d>\"u\")r=2147483647;else{if(r=0,typeof d.italic<\"u\"){const u=(d.italic?1:0)<<11;r|=u|1}if(typeof d.bold<\"u\"){const u=(d.bold?2:0)<<11;r|=u|2}if(typeof d.underline<\"u\"){const u=(d.underline?4:0)<<11;r|=u|4}if(typeof d.strikethrough<\"u\"){const u=(d.strikethrough?8:0)<<11;r|=u|8}if(d.foreground){const u=d.foreground<<15;r|=u|16}r===0&&(r=2147483647)}}else this._logService.getLevel()===To.Trace&&this._logService.trace(`SemanticTokensProviderStyling: unknown token type index: ${e} for legend: ${JSON.stringify(this._legend.tokenTypes)}`),r=2147483647,a=\"not-in-legend\";this._hashTable.add(e,t,s,r),this._logService.getLevel()===To.Trace&&this._logService.trace(`SemanticTokensProviderStyling ${e} (${a}) / ${t} (${l.join(\" \")}): foreground ${No.getForeground(r)}, fontStyle ${No.getFontStyle(r).toString(2)}`)}return r}warnOverlappingSemanticTokens(e,t){this._hasWarnedOverlappingTokens||(this._hasWarnedOverlappingTokens=!0,this._logService.warn(`Overlapping semantic tokens detected at lineNumber ${e}, column ${t}`))}warnInvalidLengthSemanticTokens(e,t){this._hasWarnedInvalidLengthTokens||(this._hasWarnedInvalidLengthTokens=!0,this._logService.warn(`Semantic token with invalid length detected at lineNumber ${e}, column ${t}`))}warnInvalidEditStart(e,t,i,s,o){this._hasWarnedInvalidEditStart||(this._hasWarnedInvalidEditStart=!0,this._logService.warn(`Invalid semantic tokens edit detected (previousResultId: ${e}, resultId: ${t}) at edit #${i}: The provided start offset ${s} is outside the previous data (length ${o}).`))}};o9=w6e([y5(1,js),y5(2,An),y5(3,er)],o9);function sde(n,e,t){const i=n.data,s=n.data.length/5|0,o=Math.max(Math.ceil(s/1024),400),r=[];let a=0,l=1,c=0;for(;a<s;){const d=a;let u=Math.min(d+o,s);if(u<s){let w=u;for(;w-1>d&&i[5*w]===0;)w--;if(w-1===d){let y=u;for(;y+1<s&&i[5*y]===0;)y++;u=y}else u=w}let h=new Uint32Array((u-d)*4),f=0,g=0,p=0,_=0;for(;a<u;){const w=5*a,y=i[w],S=i[w+1],x=l+y|0,k=y===0?c+S|0:S,D=i[w+2],I=k+D|0,N=i[w+3],P=i[w+4];if(I<=k)e.warnInvalidLengthSemanticTokens(x,k+1);else if(p===x&&_>k)e.warnOverlappingSemanticTokens(x,k+1);else{const O=e.getMetadata(N,P,t);O!==2147483647&&(g===0&&(g=x),h[f]=x-g,h[f+1]=k,h[f+2]=I,h[f+3]=O,f+=4,p=x,_=I)}l=x,c=k,a++}f!==h.length&&(h=h.subarray(0,f));const b=Lx.create(g,h);r.push(b)}return r}class y6e{constructor(e,t,i,s){this.tokenTypeIndex=e,this.tokenModifierSet=t,this.languageId=i,this.metadata=s,this.next=null}}class Rf{constructor(){this._elementsCount=0,this._currentLengthIndex=0,this._currentLength=Rf._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1<Rf._SIZES.length?2/3*this._currentLength:0),this._elements=[],Rf._nullOutEntries(this._elements,this._currentLength)}static _nullOutEntries(e,t){for(let i=0;i<t;i++)e[i]=null}_hash2(e,t){return(e<<5)-e+t|0}_hashFunc(e,t,i){return this._hash2(this._hash2(e,t),i)%this._currentLength}get(e,t,i){const s=this._hashFunc(e,t,i);let o=this._elements[s];for(;o;){if(o.tokenTypeIndex===e&&o.tokenModifierSet===t&&o.languageId===i)return o;o=o.next}return null}add(e,t,i,s){if(this._elementsCount++,this._growCount!==0&&this._elementsCount>=this._growCount){const o=this._elements;this._currentLengthIndex++,this._currentLength=Rf._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1<Rf._SIZES.length?2/3*this._currentLength:0),this._elements=[],Rf._nullOutEntries(this._elements,this._currentLength);for(const r of o){let a=r;for(;a;){const l=a.next;a.next=null,this._add(a),a=l}}}this._add(new y6e(e,t,i,s))}_add(e){const t=this._hashFunc(e.tokenTypeIndex,e.tokenModifierSet,e.languageId);e.next=this._elements[t],this._elements[t]=e}}Rf._SIZES=[3,7,13,31,61,127,251,509,1021,2039,4093,8191,16381,32749,65521,131071,262139,524287,1048573,2097143];const UM=Jt(\"semanticTokensStylingService\");var S6e=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},S5=function(n,e){return function(t,i){e(t,i,n)}};let r9=class extends ne{constructor(e,t,i){super(),this._themeService=e,this._logService=t,this._languageService=i,this._caches=new WeakMap,this._register(this._themeService.onDidColorThemeChange(()=>{this._caches=new WeakMap}))}getStyling(e){return this._caches.has(e)||this._caches.set(e,new o9(e.getLegend(),this._themeService,this._languageService,this._logService)),this._caches.get(e)}};r9=S6e([S5(0,js),S5(1,er),S5(2,An)],r9);ai(UM,r9,1);const JE=\"**\",jQ=\"/\",xN=\"[/\\\\\\\\]\",LN=\"[^/\\\\\\\\]\",x6e=/\\//g;function KQ(n,e){switch(n){case 0:return\"\";case 1:return`${LN}*?`;default:return`(?:${xN}|${LN}+${xN}${e?`|${xN}${LN}+`:\"\"})*?`}}function qQ(n,e){if(!n)return[];const t=[];let i=!1,s=!1,o=\"\";for(const r of n){switch(r){case e:if(!i&&!s){t.push(o),o=\"\";continue}break;case\"{\":i=!0;break;case\"}\":i=!1;break;case\"[\":s=!0;break;case\"]\":s=!1;break}o+=r}return o&&t.push(o),t}function ode(n){if(!n)return\"\";let e=\"\";const t=qQ(n,jQ);if(t.every(i=>i===JE))e=\".*\";else{let i=!1;t.forEach((s,o)=>{if(s===JE){if(i)return;e+=KQ(2,o===t.length-1)}else{let r=!1,a=\"\",l=!1,c=\"\";for(const d of s){if(d!==\"}\"&&r){a+=d;continue}if(l&&(d!==\"]\"||!c)){let u;d===\"-\"?u=d:(d===\"^\"||d===\"!\")&&!c?u=\"^\":d===jQ?u=\"\":u=wl(d),c+=u;continue}switch(d){case\"{\":r=!0;continue;case\"[\":l=!0;continue;case\"}\":{const h=`(?:${qQ(a,\",\").map(f=>ode(f)).join(\"|\")})`;e+=h,r=!1,a=\"\";break}case\"]\":{e+=\"[\"+c+\"]\",l=!1,c=\"\";break}case\"?\":e+=LN;continue;case\"*\":e+=KQ(1);continue;default:e+=wl(d)}}o<t.length-1&&(t[o+1]!==JE||o+2<t.length)&&(e+=xN)}i=s===JE})}return e}const L6e=/^\\*\\*\\/\\*\\.[\\w\\.-]+$/,k6e=/^\\*\\*\\/([\\w\\.-]+)\\/?$/,D6e=/^{\\*\\*\\/\\*?[\\w\\.-]+\\/?(,\\*\\*\\/\\*?[\\w\\.-]+\\/?)*}$/,I6e=/^{\\*\\*\\/\\*?[\\w\\.-]+(\\/(\\*\\*)?)?(,\\*\\*\\/\\*?[\\w\\.-]+(\\/(\\*\\*)?)?)*}$/,E6e=/^\\*\\*((\\/[\\w\\.-]+)+)\\/?$/,T6e=/^([\\w\\.-]+(\\/[\\w\\.-]+)*)\\/?$/,GQ=new zh(1e4),ZQ=function(){return!1},_h=function(){return null};function a$(n,e){if(!n)return _h;let t;typeof n!=\"string\"?t=n.pattern:t=n,t=t.trim();const i=`${t}_${!!e.trimForExclusions}`;let s=GQ.get(i);if(s)return YQ(s,n);let o;return L6e.test(t)?s=N6e(t.substr(4),t):(o=k6e.exec(x5(t,e)))?s=A6e(o[1],t):(e.trimForExclusions?I6e:D6e).test(t)?s=R6e(t,e):(o=E6e.exec(x5(t,e)))?s=XQ(o[1].substr(1),t,!0):(o=T6e.exec(x5(t,e)))?s=XQ(o[1],t,!1):s=M6e(t),GQ.set(i,s),YQ(s,n)}function YQ(n,e){if(typeof e==\"string\")return n;const t=function(i,s){return UB(i,e.base,!Br)?n(aD(i.substr(e.base.length),jd),s):null};return t.allBasenames=n.allBasenames,t.allPaths=n.allPaths,t.basenames=n.basenames,t.patterns=n.patterns,t}function x5(n,e){return e.trimForExclusions&&n.endsWith(\"/**\")?n.substr(0,n.length-2):n}function N6e(n,e){return function(t,i){return typeof t==\"string\"&&t.endsWith(n)?e:null}}function A6e(n,e){const t=`/${n}`,i=`\\\\${n}`,s=function(r,a){return typeof r!=\"string\"?null:a?a===n?e:null:r===n||r.endsWith(t)||r.endsWith(i)?e:null},o=[n];return s.basenames=o,s.patterns=[e],s.allBasenames=o,s}function R6e(n,e){const t=ade(n.slice(1,-1).split(\",\").map(a=>a$(a,e)).filter(a=>a!==_h),n),i=t.length;if(!i)return _h;if(i===1)return t[0];const s=function(a,l){for(let c=0,d=t.length;c<d;c++)if(t[c](a,l))return n;return null},o=t.find(a=>!!a.allBasenames);o&&(s.allBasenames=o.allBasenames);const r=t.reduce((a,l)=>l.allPaths?a.concat(l.allPaths):a,[]);return r.length&&(s.allPaths=r),s}function XQ(n,e,t){const i=jd===ks.sep,s=i?n:n.replace(x6e,jd),o=jd+s,r=ks.sep+n;let a;return t?a=function(l,c){return typeof l==\"string\"&&(l===s||l.endsWith(o)||!i&&(l===n||l.endsWith(r)))?e:null}:a=function(l,c){return typeof l==\"string\"&&(l===s||!i&&l===n)?e:null},a.allPaths=[(t?\"*/\":\"./\")+n],a}function M6e(n){try{const e=new RegExp(`^${ode(n)}$`);return function(t){return e.lastIndex=0,typeof t==\"string\"&&e.test(t)?n:null}}catch{return _h}}function P6e(n,e,t){return!n||typeof e!=\"string\"?!1:rde(n)(e,void 0,t)}function rde(n,e={}){if(!n)return ZQ;if(typeof n==\"string\"||O6e(n)){const t=a$(n,e);if(t===_h)return ZQ;const i=function(s,o){return!!t(s,o)};return t.allBasenames&&(i.allBasenames=t.allBasenames),t.allPaths&&(i.allPaths=t.allPaths),i}return F6e(n,e)}function O6e(n){const e=n;return e?typeof e.base==\"string\"&&typeof e.pattern==\"string\":!1}function F6e(n,e){const t=ade(Object.getOwnPropertyNames(n).map(a=>B6e(a,n[a],e)).filter(a=>a!==_h)),i=t.length;if(!i)return _h;if(!t.some(a=>!!a.requiresSiblings)){if(i===1)return t[0];const a=function(d,u){let h;for(let f=0,g=t.length;f<g;f++){const p=t[f](d,u);if(typeof p==\"string\")return p;tB(p)&&(h||(h=[]),h.push(p))}return h?(async()=>{for(const f of h){const g=await f;if(typeof g==\"string\")return g}return null})():null},l=t.find(d=>!!d.allBasenames);l&&(a.allBasenames=l.allBasenames);const c=t.reduce((d,u)=>u.allPaths?d.concat(u.allPaths):d,[]);return c.length&&(a.allPaths=c),a}const s=function(a,l,c){let d,u;for(let h=0,f=t.length;h<f;h++){const g=t[h];g.requiresSiblings&&c&&(l||(l=dm(a)),d||(d=l.substr(0,l.length-jAe(a).length)));const p=g(a,l,d,c);if(typeof p==\"string\")return p;tB(p)&&(u||(u=[]),u.push(p))}return u?(async()=>{for(const h of u){const f=await h;if(typeof f==\"string\")return f}return null})():null},o=t.find(a=>!!a.allBasenames);o&&(s.allBasenames=o.allBasenames);const r=t.reduce((a,l)=>l.allPaths?a.concat(l.allPaths):a,[]);return r.length&&(s.allPaths=r),s}function B6e(n,e,t){if(e===!1)return _h;const i=a$(n,t);if(i===_h)return _h;if(typeof e==\"boolean\")return i;if(e){const s=e.when;if(typeof s==\"string\"){const o=(r,a,l,c)=>{if(!c||!i(r,a))return null;const d=s.replace(\"$(basename)\",()=>l),u=c(d);return tB(u)?u.then(h=>h?n:null):u?n:null};return o.requiresSiblings=!0,o}}return i}function ade(n,e){const t=n.filter(a=>!!a.basenames);if(t.length<2)return n;const i=t.reduce((a,l)=>{const c=l.basenames;return c?a.concat(c):a},[]);let s;if(e){s=[];for(let a=0,l=i.length;a<l;a++)s.push(e)}else s=t.reduce((a,l)=>{const c=l.patterns;return c?a.concat(c):a},[]);const o=function(a,l){if(typeof a!=\"string\")return null;if(!l){let d;for(d=a.length;d>0;d--){const u=a.charCodeAt(d-1);if(u===47||u===92)break}l=a.substr(d)}const c=i.indexOf(l);return c!==-1?s[c]:null};o.basenames=i,o.patterns=s,o.allBasenames=i;const r=n.filter(a=>!a.basenames);return r.push(o),r}function l$(n,e,t,i,s,o){if(Array.isArray(n)){let r=0;for(const a of n){const l=l$(a,e,t,i,s,o);if(l===10)return l;l>r&&(r=l)}return r}else{if(typeof n==\"string\")return i?n===\"*\"?5:n===t?10:0:0;if(n){const{language:r,pattern:a,scheme:l,hasAccessToAllModels:c,notebookType:d}=n;if(!i&&!c)return 0;d&&s&&(e=s);let u=0;if(l)if(l===e.scheme)u=10;else if(l===\"*\")u=5;else return 0;if(r)if(r===t)u=10;else if(r===\"*\")u=Math.max(u,5);else return 0;if(d)if(d===o)u=10;else if(d===\"*\"&&o!==void 0)u=Math.max(u,5);else return 0;if(a){let h;if(typeof a==\"string\"?h=a:h={...a,base:lae(a.base)},h===e.fsPath||P6e(h,e.fsPath))u=10;else return 0}return u}else return 0}}function lde(n){return typeof n==\"string\"?!1:Array.isArray(n)?n.every(lde):!!n.exclusive}class QQ{constructor(e,t,i,s){this.uri=e,this.languageId=t,this.notebookUri=i,this.notebookType=s}equals(e){var t,i;return this.notebookType===e.notebookType&&this.languageId===e.languageId&&this.uri.toString()===e.uri.toString()&&((t=this.notebookUri)===null||t===void 0?void 0:t.toString())===((i=e.notebookUri)===null||i===void 0?void 0:i.toString())}}class Rn{constructor(e){this._notebookInfoResolver=e,this._clock=0,this._entries=[],this._onDidChange=new X,this.onDidChange=this._onDidChange.event}register(e,t){let i={selector:e,provider:t,_score:-1,_time:this._clock++};return this._entries.push(i),this._lastCandidate=void 0,this._onDidChange.fire(this._entries.length),dt(()=>{if(i){const s=this._entries.indexOf(i);s>=0&&(this._entries.splice(s,1),this._lastCandidate=void 0,this._onDidChange.fire(this._entries.length),i=void 0)}})}has(e){return this.all(e).length>0}all(e){if(!e)return[];this._updateScores(e);const t=[];for(const i of this._entries)i._score>0&&t.push(i.provider);return t}ordered(e){const t=[];return this._orderedForEach(e,i=>t.push(i.provider)),t}orderedGroups(e){const t=[];let i,s;return this._orderedForEach(e,o=>{i&&s===o._score?i.push(o.provider):(s=o._score,i=[o.provider],t.push(i))}),t}_orderedForEach(e,t){this._updateScores(e);for(const i of this._entries)i._score>0&&t(i)}_updateScores(e){var t,i;const s=(t=this._notebookInfoResolver)===null||t===void 0?void 0:t.call(this,e.uri),o=s?new QQ(e.uri,e.getLanguageId(),s.uri,s.type):new QQ(e.uri,e.getLanguageId(),void 0,void 0);if(!(!((i=this._lastCandidate)===null||i===void 0)&&i.equals(o))){this._lastCandidate=o;for(const r of this._entries)if(r._score=l$(r.selector,o.uri,o.languageId,yle(e),o.notebookUri,o.notebookType),lde(r.selector)&&r._score>0){for(const a of this._entries)a._score=0;r._score=1e3;break}this._entries.sort(Rn._compareByScoreAndTime)}}static _compareByScoreAndTime(e,t){return e._score<t._score?1:e._score>t._score?-1:NS(e.selector)&&!NS(t.selector)?1:!NS(e.selector)&&NS(t.selector)?-1:e._time<t._time?1:e._time>t._time?-1:0}}function NS(n){return typeof n==\"string\"?!1:Array.isArray(n)?n.some(NS):!!n.isBuiltin}class W6e{constructor(){this.referenceProvider=new Rn(this._score.bind(this)),this.renameProvider=new Rn(this._score.bind(this)),this.newSymbolNamesProvider=new Rn(this._score.bind(this)),this.codeActionProvider=new Rn(this._score.bind(this)),this.definitionProvider=new Rn(this._score.bind(this)),this.typeDefinitionProvider=new Rn(this._score.bind(this)),this.declarationProvider=new Rn(this._score.bind(this)),this.implementationProvider=new Rn(this._score.bind(this)),this.documentSymbolProvider=new Rn(this._score.bind(this)),this.inlayHintsProvider=new Rn(this._score.bind(this)),this.colorProvider=new Rn(this._score.bind(this)),this.codeLensProvider=new Rn(this._score.bind(this)),this.documentFormattingEditProvider=new Rn(this._score.bind(this)),this.documentRangeFormattingEditProvider=new Rn(this._score.bind(this)),this.onTypeFormattingEditProvider=new Rn(this._score.bind(this)),this.signatureHelpProvider=new Rn(this._score.bind(this)),this.hoverProvider=new Rn(this._score.bind(this)),this.documentHighlightProvider=new Rn(this._score.bind(this)),this.multiDocumentHighlightProvider=new Rn(this._score.bind(this)),this.selectionRangeProvider=new Rn(this._score.bind(this)),this.foldingRangeProvider=new Rn(this._score.bind(this)),this.linkProvider=new Rn(this._score.bind(this)),this.inlineCompletionsProvider=new Rn(this._score.bind(this)),this.inlineEditProvider=new Rn(this._score.bind(this)),this.completionProvider=new Rn(this._score.bind(this)),this.linkedEditingRangeProvider=new Rn(this._score.bind(this)),this.documentRangeSemanticTokensProvider=new Rn(this._score.bind(this)),this.documentSemanticTokensProvider=new Rn(this._score.bind(this)),this.documentDropEditProvider=new Rn(this._score.bind(this)),this.documentPasteEditProvider=new Rn(this._score.bind(this))}_score(e){var t;return(t=this._notebookTypeResolver)===null||t===void 0?void 0:t.call(this,e)}}ai(Xe,W6e,1);var H6e=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},JQ=function(n,e){return function(t,i){e(t,i,n)}};const $h=Jt(\"hoverService\");let KC=class extends ne{get delay(){return this.isInstantlyHovering()?0:this._delay}constructor(e,t,i={},s,o){super(),this.placement=e,this.instantHover=t,this.overrideOptions=i,this.configurationService=s,this.hoverService=o,this.lastHoverHideTime=0,this.timeLimit=200,this.hoverDisposables=this._register(new be),this._delay=this.configurationService.getValue(\"workbench.hover.delay\"),this._register(this.configurationService.onDidChangeConfiguration(r=>{r.affectsConfiguration(\"workbench.hover.delay\")&&(this._delay=this.configurationService.getValue(\"workbench.hover.delay\"))}))}showHover(e,t){const i=typeof this.overrideOptions==\"function\"?this.overrideOptions(e,t):this.overrideOptions;this.hoverDisposables.clear();const s=co(e.target)?[e.target]:e.target.targetElements;for(const r of s)this.hoverDisposables.add(rs(r,\"keydown\",a=>{a.equals(9)&&this.hoverService.hideHover()}));const o=co(e.content)?void 0:e.content.toString();return this.hoverService.showHover({...e,...i,persistence:{hideOnKeyDown:!0,...i.persistence},id:o,appearance:{...e.appearance,compact:!0,skipFadeInAnimation:this.isInstantlyHovering(),...i.appearance}},t)}isInstantlyHovering(){return this.instantHover&&Date.now()-this.lastHoverHideTime<this.timeLimit}onDidHideHover(){this.hoverDisposables.clear(),this.instantHover&&(this.lastHoverHideTime=Date.now())}};KC=H6e([JQ(3,qt),JQ(4,$h)],KC);const Wg=Jt(\"contextViewService\"),za=Jt(\"contextMenuService\"),eT=ke;let c$=class extends ne{constructor(){super(),this.containerDomNode=document.createElement(\"div\"),this.containerDomNode.className=\"monaco-hover\",this.containerDomNode.tabIndex=0,this.containerDomNode.setAttribute(\"role\",\"tooltip\"),this.contentsDomNode=document.createElement(\"div\"),this.contentsDomNode.className=\"monaco-hover-content\",this.scrollbar=this._register(new wD(this.contentsDomNode,{consumeMouseWheelIfScrollbarIsNeeded:!0})),this.containerDomNode.appendChild(this.scrollbar.getDomNode())}onContentsChanged(){this.scrollbar.scanDomNode()}};class jM extends ne{static render(e,t,i){return new jM(e,t,i)}constructor(e,t,i){super(),this.actionContainer=we(e,eT(\"div.action-container\")),this.actionContainer.setAttribute(\"tabindex\",\"0\"),this.action=we(this.actionContainer,eT(\"a.action\")),this.action.setAttribute(\"role\",\"button\"),t.iconClass&&we(this.action,eT(`span.icon.${t.iconClass}`));const s=we(this.action,eT(\"span\"));s.textContent=i?`${t.label} (${i})`:t.label,this._store.add(new dde(this.actionContainer,t.run)),this._store.add(new ude(this.actionContainer,t.run,[3,10])),this.setEnabled(!0)}setEnabled(e){e?(this.actionContainer.classList.remove(\"disabled\"),this.actionContainer.removeAttribute(\"aria-disabled\")):(this.actionContainer.classList.add(\"disabled\"),this.actionContainer.setAttribute(\"aria-disabled\",\"true\"))}}function cde(n,e){return n&&e?v(\"acessibleViewHint\",\"Inspect this in the accessible view with {0}.\",e):n?v(\"acessibleViewHintNoKbOpen\",\"Inspect this in the accessible view via the command Open Accessible View which is currently not triggerable via keybinding.\"):\"\"}class dde extends ne{constructor(e,t){super(),this._register(ce(e,Le.CLICK,i=>{i.stopPropagation(),i.preventDefault(),t(e)}))}}class ude extends ne{constructor(e,t,i){super(),this._register(ce(e,Le.KEY_DOWN,s=>{const o=new ln(s);i.some(r=>o.equals(r))&&(s.stopPropagation(),s.preventDefault(),t(e))}))}}const $a=Jt(\"openerService\");function V6e(n){let e;const t=/^L?(\\d+)(?:,(\\d+))?(-L?(\\d+)(?:,(\\d+))?)?/.exec(n.fragment);return t&&(e={startLineNumber:parseInt(t[1]),startColumn:t[2]?parseInt(t[2]):1,endLineNumber:t[4]?parseInt(t[4]):void 0,endColumn:t[4]?t[5]?parseInt(t[5]):1:void 0},n=n.with({fragment:\"\"})),{selection:e,uri:n}}function z6e(n,e={}){const t=d$(e);return t.textContent=n,t}function $6e(n,e={}){const t=d$(e);return hde(t,j6e(n,!!e.renderCodeSegments),e.actionHandler,e.renderCodeSegments),t}function d$(n){const e=n.inline?\"span\":\"div\",t=document.createElement(e);return n.className&&(t.className=n.className),t}class U6e{constructor(e){this.source=e,this.index=0}eos(){return this.index>=this.source.length}next(){const e=this.peek();return this.advance(),e}peek(){return this.source[this.index]}advance(){this.index++}}function hde(n,e,t,i){let s;if(e.type===2)s=document.createTextNode(e.content||\"\");else if(e.type===3)s=document.createElement(\"b\");else if(e.type===4)s=document.createElement(\"i\");else if(e.type===7&&i)s=document.createElement(\"code\");else if(e.type===5&&t){const o=document.createElement(\"a\");t.disposables.add(rs(o,\"click\",r=>{t.callback(String(e.index),r)})),s=o}else e.type===8?s=document.createElement(\"br\"):e.type===1&&(s=n);s&&n!==s&&n.appendChild(s),s&&Array.isArray(e.children)&&e.children.forEach(o=>{hde(s,o,t,i)})}function j6e(n,e){const t={type:1,children:[]};let i=0,s=t;const o=[],r=new U6e(n);for(;!r.eos();){let a=r.next();const l=a===\"\\\\\"&&a9(r.peek(),e)!==0;if(l&&(a=r.next()),!l&&K6e(a,e)&&a===r.peek()){r.advance(),s.type===2&&(s=o.pop());const c=a9(a,e);if(s.type===c||s.type===5&&c===6)s=o.pop();else{const d={type:c,children:[]};c===5&&(d.index=i,i++),s.children.push(d),o.push(s),s=d}}else if(a===`\n`)s.type===2&&(s=o.pop()),s.children.push({type:8});else if(s.type!==2){const c={type:2,content:a};s.children.push(c),o.push(s),s=c}else s.content+=a}return s.type===2&&(s=o.pop()),t}function K6e(n,e){return a9(n,e)!==0}function a9(n,e){switch(n){case\"*\":return 3;case\"_\":return 4;case\"[\":return 5;case\"]\":return 6;case\"`\":return e?7:0;default:return 0}}const q6e=new RegExp(`(\\\\\\\\)?\\\\$\\\\((${_t.iconNameExpression}(?:${_t.iconModifierExpression})?)\\\\)`,\"g\");function gm(n){const e=new Array;let t,i=0,s=0;for(;(t=q6e.exec(n))!==null;){s=t.index||0,i<s&&e.push(n.substring(i,s)),i=(t.index||0)+t[0].length;const[,o,r]=t;e.push(o?`$(${r})`:_0({id:r}))}return i<n.length&&e.push(n.substring(i)),e}function _0(n){const e=ke(\"span\");return e.classList.add(..._t.asClassNameArray(n)),e}function G6e(n){const e=Z6e(n);if(e&&e.length>0)return new Uint32Array(e)}let Ja=0;const Op=new Uint32Array(10);function Z6e(n){if(Ja=0,Iu(n,L5,4352),Ja>0||(Iu(n,k5,4449),Ja>0)||(Iu(n,D5,4520),Ja>0)||(Iu(n,$_,12593),Ja))return Op.subarray(0,Ja);if(n>=44032&&n<=55203){const e=n-44032,t=e%588,i=Math.floor(e/588),s=Math.floor(t/28),o=t%28-1;if(i<L5.length?Iu(i,L5,0):4352+i-12593<$_.length&&Iu(4352+i,$_,12593),s<k5.length?Iu(s,k5,0):4449+s-12593<$_.length&&Iu(4449+s-12593,$_,12593),o>=0&&(o<D5.length?Iu(o,D5,0):4520+o-12593<$_.length&&Iu(4520+o-12593,$_,12593)),Ja>0)return Op.subarray(0,Ja)}}function Iu(n,e,t){n>=t&&n<t+e.length&&Y6e(e[n-t])}function Y6e(n){n!==0&&(Op[Ja++]=n&255,n>>8&&(Op[Ja++]=n>>8&255),n>>16&&(Op[Ja++]=n>>16&255))}const L5=new Uint8Array([114,82,115,101,69,102,97,113,81,116,84,100,119,87,99,122,120,118,103]),k5=new Uint16Array([107,111,105,79,106,112,117,80,104,27496,28520,27752,121,110,27246,28782,27758,98,109,27757,108]),D5=new Uint16Array([114,82,29810,115,30579,26483,101,102,29286,24934,29030,29798,30822,30310,26470,97,113,29809,116,84,100,119,99,122,120,118,103]),$_=new Uint16Array([114,82,29810,115,30579,26483,101,69,102,29286,24934,29030,29798,30822,30310,26470,97,113,81,29809,116,84,100,119,87,99,122,120,118,103,107,111,105,79,106,112,117,80,104,27496,28520,27752,121,110,27246,28782,27758,98,109,27757,108]);function u$(...n){return function(e,t){for(let i=0,s=n.length;i<s;i++){const o=n[i](e,t);if(o)return o}return null}}fde.bind(void 0,!1);const BL=fde.bind(void 0,!0);function fde(n,e,t){if(!t||t.length<e.length)return null;let i;return n?i=jV(t,e):i=t.indexOf(e)===0,i?e.length>0?[{start:0,end:e.length}]:[]:null}function gde(n,e){const t=e.toLowerCase().indexOf(n.toLowerCase());return t===-1?null:[{start:t,end:t+n.length}]}function pde(n,e){return l9(n.toLowerCase(),e.toLowerCase(),0,0)}function l9(n,e,t,i){if(t===n.length)return[];if(i===e.length)return null;if(n[t]===e[i]){let s=null;return(s=l9(n,e,t+1,i+1))?g$({start:i,end:i+1},s):null}return l9(n,e,t,i+1)}function h$(n){return 97<=n&&n<=122}function KM(n){return 65<=n&&n<=90}function f$(n){return 48<=n&&n<=57}function mde(n){return n===32||n===9||n===10||n===13}const _de=new Set;\"()[]{}<>`'\\\"-/;:,.?!\".split(\"\").forEach(n=>_de.add(n.charCodeAt(0)));function mA(n){return mde(n)||_de.has(n)}function eJ(n,e){return n===e||mA(n)&&mA(e)}const I5=new Map;function tJ(n){if(I5.has(n))return I5.get(n);let e;const t=G6e(n);return t&&(e=t),I5.set(n,e),e}function vde(n){return h$(n)||KM(n)||f$(n)}function g$(n,e){return e.length===0?e=[n]:n.end===e[0].start?e[0].start=n.start:e.unshift(n),e}function bde(n,e){for(let t=e;t<n.length;t++){const i=n.charCodeAt(t);if(KM(i)||f$(i)||t>0&&!vde(n.charCodeAt(t-1)))return t}return n.length}function c9(n,e,t,i){if(t===n.length)return[];if(i===e.length)return null;if(n[t]!==e[i].toLowerCase())return null;{let s=null,o=i+1;for(s=c9(n,e,t+1,i+1);!s&&(o=bde(e,o))<e.length;)s=c9(n,e,t+1,o),o++;return s===null?null:g$({start:i,end:i+1},s)}}function X6e(n){let e=0,t=0,i=0,s=0,o=0;for(let d=0;d<n.length;d++)o=n.charCodeAt(d),KM(o)&&e++,h$(o)&&t++,vde(o)&&i++,f$(o)&&s++;const r=e/n.length,a=t/n.length,l=i/n.length,c=s/n.length;return{upperPercent:r,lowerPercent:a,alphaPercent:l,numericPercent:c}}function Q6e(n){const{upperPercent:e,lowerPercent:t}=n;return t===0&&e>.6}function J6e(n){const{upperPercent:e,lowerPercent:t,alphaPercent:i,numericPercent:s}=n;return t>.2&&e<.8&&i>.6&&s<.2}function eWe(n){let e=0,t=0,i=0,s=0;for(let o=0;o<n.length;o++)i=n.charCodeAt(o),KM(i)&&e++,h$(i)&&t++,mde(i)&&s++;return(e===0||t===0)&&s===0?n.length<=30:e<=5}function Cde(n,e){if(!e||(e=e.trim(),e.length===0)||!eWe(n))return null;e.length>60&&(e=e.substring(0,60));const t=X6e(e);if(!J6e(t)){if(!Q6e(t))return null;e=e.toLowerCase()}let i=null,s=0;for(n=n.toLowerCase();s<e.length&&(i=c9(n,e,0,s))===null;)s=bde(e,s+1);return i}function tWe(n,e,t=!1){if(!e||e.length===0)return null;let i=null,s=0;for(n=n.toLowerCase(),e=e.toLowerCase();s<e.length&&(i=d9(n,e,0,s,t),i===null);)s=wde(e,s+1);return i}function d9(n,e,t,i,s){let o=0;if(t===n.length)return[];if(i===e.length)return null;if(!eJ(n.charCodeAt(t),e.charCodeAt(i))){const l=tJ(n.charCodeAt(t));if(!l)return null;for(let c=0;c<l.length;c++)if(!eJ(l[c],e.charCodeAt(i+c)))return null;o+=l.length-1}let r=null,a=i+o+1;if(r=d9(n,e,t+1,a,s),!s)for(;!r&&(a=wde(e,a))<e.length;)r=d9(n,e,t+1,a,s),a++;if(!r)return null;if(n.charCodeAt(t)!==e.charCodeAt(i)){const l=tJ(n.charCodeAt(t));if(!l)return r;for(let c=0;c<l.length;c++)if(l[c]!==e.charCodeAt(i+c))return r}return g$({start:i,end:i+o+1},r)}function wde(n,e){for(let t=e;t<n.length;t++)if(mA(n.charCodeAt(t))||t>0&&mA(n.charCodeAt(t-1)))return t;return n.length}const iWe=u$(BL,Cde,gde),nWe=u$(BL,Cde,pde),iJ=new zh(1e4);function nJ(n,e,t=!1){if(typeof n!=\"string\"||typeof e!=\"string\")return null;let i=iJ.get(n);i||(i=new RegExp(fRe(n),\"i\"),iJ.set(n,i));const s=i.exec(e);return s?[{start:s.index,end:s.index+s[0].length}]:t?nWe(n,e):iWe(n,e)}function sWe(n,e){const t=v0(n,n.toLowerCase(),0,e,e.toLowerCase(),0,{firstMatchCanBeWeak:!0,boostFullMatch:!0});return t?ID(t):null}function oWe(n,e,t,i,s,o){const r=Math.min(13,n.length);for(;t<r;t++){const a=v0(n,e,t,i,s,o,{firstMatchCanBeWeak:!0,boostFullMatch:!0});if(a)return a}return[0,o]}function ID(n){if(typeof n>\"u\")return[];const e=[],t=n[1];for(let i=n.length-1;i>1;i--){const s=n[i]+t,o=e[e.length-1];o&&o.end===s?o.end=s+1:e.push({start:s,end:s+1})}return e}const Xp=128;function p$(){const n=[],e=[];for(let t=0;t<=Xp;t++)e[t]=0;for(let t=0;t<=Xp;t++)n.push(e.slice(0));return n}function yde(n){const e=[];for(let t=0;t<=n;t++)e[t]=0;return e}const Sde=yde(2*Xp),u9=yde(2*Xp),ff=p$(),U_=p$(),tT=p$();function iT(n,e){if(e<0||e>=n.length)return!1;const t=n.codePointAt(e);switch(t){case 95:case 45:case 46:case 32:case 47:case 92:case 39:case 34:case 58:case 36:case 60:case 62:case 40:case 41:case 91:case 93:case 123:case 125:return!0;case void 0:return!1;default:return!!ZV(t)}}function sJ(n,e){if(e<0||e>=n.length)return!1;switch(n.charCodeAt(e)){case 32:case 9:return!0;default:return!1}}function kN(n,e,t){return e[n]!==t[n]}function rWe(n,e,t,i,s,o,r=!1){for(;e<t&&s<o;)n[e]===i[s]&&(r&&(Sde[e]=s),e+=1),s+=1;return e===t}var Yd;(function(n){n.Default=[-100,0];function e(t){return!t||t.length===2&&t[0]===-100&&t[1]===0}n.isDefault=e})(Yd||(Yd={}));class qM{constructor(e,t){this.firstMatchCanBeWeak=e,this.boostFullMatch=t}}qM.default={boostFullMatch:!0,firstMatchCanBeWeak:!1};function v0(n,e,t,i,s,o,r=qM.default){const a=n.length>Xp?Xp:n.length,l=i.length>Xp?Xp:i.length;if(t>=a||o>=l||a-t>l-o||!rWe(e,t,a,s,o,l,!0))return;aWe(a,l,t,o,e,s);let c=1,d=1,u=t,h=o;const f=[!1];for(c=1,u=t;u<a;c++,u++){const w=Sde[u],y=u9[u],S=u+1<a?u9[u+1]:l;for(d=w-o+1,h=w;h<S;d++,h++){let x=Number.MIN_SAFE_INTEGER,k=!1;h<=y&&(x=lWe(n,e,u,t,i,s,h,l,o,ff[c-1][d-1]===0,f));let D=0;x!==Number.MAX_SAFE_INTEGER&&(k=!0,D=x+U_[c-1][d-1]);const I=h>w,N=I?U_[c][d-1]+(ff[c][d-1]>0?-5:0):0,P=h>w+1&&ff[c][d-1]>0,O=P?U_[c][d-2]+(ff[c][d-2]>0?-5:0):0;if(P&&(!I||O>=N)&&(!k||O>=D))U_[c][d]=O,tT[c][d]=3,ff[c][d]=0;else if(I&&(!k||N>=D))U_[c][d]=N,tT[c][d]=2,ff[c][d]=0;else if(k)U_[c][d]=D,tT[c][d]=1,ff[c][d]=ff[c-1][d-1]+1;else throw new Error(\"not possible\")}}if(!f[0]&&!r.firstMatchCanBeWeak)return;c--,d--;const g=[U_[c][d],o];let p=0,_=0;for(;c>=1;){let w=d;do{const y=tT[c][w];if(y===3)w=w-2;else if(y===2)w=w-1;else break}while(w>=1);p>1&&e[t+c-1]===s[o+d-1]&&!kN(w+o-1,i,s)&&p+1>ff[c][w]&&(w=d),w===d?p++:p=1,_||(_=w),c--,d=w-1,g.push(d)}l-o===a&&r.boostFullMatch&&(g[0]+=2);const b=_-a;return g[0]-=b,g}function aWe(n,e,t,i,s,o){let r=n-1,a=e-1;for(;r>=t&&a>=i;)s[r]===o[a]&&(u9[r]=a,r--),a--}function lWe(n,e,t,i,s,o,r,a,l,c,d){if(e[t]!==o[r])return Number.MIN_SAFE_INTEGER;let u=1,h=!1;return r===t-i?u=n[t]===s[r]?7:5:kN(r,s,o)&&(r===0||!kN(r-1,s,o))?(u=n[t]===s[r]?7:5,h=!0):iT(o,r)&&(r===0||!iT(o,r-1))?u=5:(iT(o,r-1)||sJ(o,r-1))&&(u=5,h=!0),u>1&&t===i&&(d[0]=!0),h||(h=kN(r,s,o)||iT(o,r-1)||sJ(o,r-1)),t===i?r>l&&(u-=h?3:5):c?u+=h?2:0:u+=h?0:1,r+1===a&&(u-=h?3:5),u}function cWe(n,e,t,i,s,o,r){return dWe(n,e,t,i,s,o,!0,r)}function dWe(n,e,t,i,s,o,r,a){let l=v0(n,e,t,i,s,o,a);if(n.length>=3){const c=Math.min(7,n.length-1);for(let d=t+1;d<c;d++){const u=uWe(n,d);if(u){const h=v0(u,u.toLowerCase(),t,i,s,o,a);h&&(h[0]-=3,(!l||h[0]>l[0])&&(l=h))}}}return l}function uWe(n,e){if(e+1>=n.length)return;const t=n[e],i=n[e+1];if(t!==i)return n.slice(0,e)+i+t+n.slice(e+2)}const hWe=\"$(\",m$=new RegExp(`\\\\$\\\\(${_t.iconNameExpression}(?:${_t.iconModifierExpression})?\\\\)`,\"g\"),fWe=new RegExp(`(\\\\\\\\)?${m$.source}`,\"g\");function gWe(n){return n.replace(fWe,(e,t)=>t?e:`\\\\${e}`)}const pWe=new RegExp(`\\\\\\\\${m$.source}`,\"g\");function mWe(n){return n.replace(pWe,e=>`\\\\${e}`)}const _We=new RegExp(`(\\\\s)?(\\\\\\\\)?${m$.source}(\\\\s)?`,\"g\");function _$(n){return n.indexOf(hWe)===-1?n:n.replace(_We,(e,t,i,s)=>i?e:t||s||\"\")}function vWe(n){return n?n.replace(/\\$\\((.*?)\\)/g,(e,t)=>` ${t} `).trim():\"\"}const E5=new RegExp(`\\\\$\\\\(${_t.iconNameCharacter}+\\\\)`,\"g\");function AS(n){E5.lastIndex=0;let e=\"\";const t=[];let i=0;for(;;){const s=E5.lastIndex,o=E5.exec(n),r=n.substring(s,o==null?void 0:o.index);if(r.length>0){e+=r;for(let a=0;a<r.length;a++)t.push(i)}if(!o)break;i+=o[0].length}return{text:e,iconOffsets:t}}function T5(n,e,t=!1){const{text:i,iconOffsets:s}=e;if(!s||s.length===0)return nJ(n,i,t);const o=aD(i,\" \"),r=i.length-o.length,a=nJ(n,o,t);if(a)for(const l of a){const c=s[l.start+r]+r;l.start+=c,l.end+=c}return a}class $o{constructor(e=\"\",t=!1){var i,s,o;if(this.value=e,typeof this.value!=\"string\")throw ic(\"value\");typeof t==\"boolean\"?(this.isTrusted=t,this.supportThemeIcons=!1,this.supportHtml=!1):(this.isTrusted=(i=t.isTrusted)!==null&&i!==void 0?i:void 0,this.supportThemeIcons=(s=t.supportThemeIcons)!==null&&s!==void 0?s:!1,this.supportHtml=(o=t.supportHtml)!==null&&o!==void 0?o:!1)}appendText(e,t=0){return this.value+=CWe(this.supportThemeIcons?gWe(e):e).replace(/([ \\t]+)/g,(i,s)=>\"&nbsp;\".repeat(s.length)).replace(/\\>/gm,\"\\\\>\").replace(/\\n/g,t===1?`\\\\\n`:`\n\n`),this}appendMarkdown(e){return this.value+=e,this}appendCodeblock(e,t){return this.value+=`\n${wWe(t,e)}\n`,this}appendLink(e,t,i){return this.value+=\"[\",this.value+=this._escape(t,\"]\"),this.value+=\"](\",this.value+=this._escape(String(e),\")\"),i&&(this.value+=` \"${this._escape(this._escape(i,'\"'),\")\")}\"`),this.value+=\")\",this}_escape(e,t){const i=new RegExp(wl(t),\"g\");return e.replace(i,(s,o)=>e.charAt(o-1)!==\"\\\\\"?`\\\\${s}`:s)}}function qC(n){return Xd(n)?!n.value:Array.isArray(n)?n.every(qC):!0}function Xd(n){return n instanceof $o?!0:n&&typeof n==\"object\"?typeof n.value==\"string\"&&(typeof n.isTrusted==\"boolean\"||typeof n.isTrusted==\"object\"||n.isTrusted===void 0)&&(typeof n.supportThemeIcons==\"boolean\"||n.supportThemeIcons===void 0):!1}function bWe(n,e){return n===e?!0:!n||!e?!1:n.value===e.value&&n.isTrusted===e.isTrusted&&n.supportThemeIcons===e.supportThemeIcons&&n.supportHtml===e.supportHtml&&(n.baseUri===e.baseUri||!!n.baseUri&&!!e.baseUri&&Kz(pt.from(n.baseUri),pt.from(e.baseUri)))}function CWe(n){return n.replace(/[\\\\`*_{}[\\]()#+\\-!~]/g,\"\\\\$&\")}function wWe(n,e){var t,i;const s=(i=(t=n.match(/^`+/gm))===null||t===void 0?void 0:t.reduce((r,a)=>r.length>a.length?r:a).length)!==null&&i!==void 0?i:0,o=s>=3?s+1:3;return[`${\"`\".repeat(o)}${e}`,n,`${\"`\".repeat(o)}`].join(`\n`)}function nT(n){return n.replace(/\"/g,\"&quot;\")}function N5(n){return n&&n.replace(/\\\\([\\\\`*_{}[\\]()#+\\-.!~])/g,\"$1\")}function yWe(n){const e=[],t=n.split(\"|\").map(s=>s.trim());n=t[0];const i=t[1];if(i){const s=/height=(\\d+)/.exec(i),o=/width=(\\d+)/.exec(i),r=s?s[1]:\"\",a=o?o[1]:\"\",l=isFinite(parseInt(a)),c=isFinite(parseInt(r));l&&e.push(`width=\"${a}\"`),c&&e.push(`height=\"${r}\"`)}return{href:n,dimensions:e}}class v${constructor(e){this._prefix=e,this._lastId=0}nextId(){return this._prefix+ ++this._lastId}}const h9=new v$(\"id#\");let $r={};(function(){function n(e,t){t($r)}n.amd=!0,function(e,t){typeof n==\"function\"&&n.amd?n([\"exports\"],t):t(typeof exports==\"object\"&&typeof module<\"u\"?exports:globalThis.marked={})}(this,function(e){function t(re,Q){for(var Z=0;Z<Q.length;Z++){var B=Q[Z];B.enumerable=B.enumerable||!1,B.configurable=!0,\"value\"in B&&(B.writable=!0),Object.defineProperty(re,B.key,B)}}function i(re,Q,Z){return Z&&t(re,Z),Object.defineProperty(re,\"prototype\",{writable:!1}),re}function s(re,Q){if(re){if(typeof re==\"string\")return o(re,Q);var Z=Object.prototype.toString.call(re).slice(8,-1);if(Z===\"Object\"&&re.constructor&&(Z=re.constructor.name),Z===\"Map\"||Z===\"Set\")return Array.from(re);if(Z===\"Arguments\"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Z))return o(re,Q)}}function o(re,Q){(Q==null||Q>re.length)&&(Q=re.length);for(var Z=0,B=new Array(Q);Z<Q;Z++)B[Z]=re[Z];return B}function r(re,Q){var Z=typeof Symbol<\"u\"&&re[Symbol.iterator]||re[\"@@iterator\"];if(Z)return(Z=Z.call(re)).next.bind(Z);if(Array.isArray(re)||(Z=s(re))||Q){Z&&(re=Z);var B=0;return function(){return B>=re.length?{done:!0}:{done:!1,value:re[B++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function a(){return{async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:\"\",highlight:null,langPrefix:\"language-\",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}e.defaults=a();function l(re){e.defaults=re}var c=/[&<>\"']/,d=/[&<>\"']/g,u=/[<>\"']|&(?!#?\\w+;)/,h=/[<>\"']|&(?!#?\\w+;)/g,f={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\"},g=function(Q){return f[Q]};function p(re,Q){if(Q){if(c.test(re))return re.replace(d,g)}else if(u.test(re))return re.replace(h,g);return re}var _=/&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;function b(re){return re.replace(_,function(Q,Z){return Z=Z.toLowerCase(),Z===\"colon\"?\":\":Z.charAt(0)===\"#\"?Z.charAt(1)===\"x\"?String.fromCharCode(parseInt(Z.substring(2),16)):String.fromCharCode(+Z.substring(1)):\"\"})}var w=/(^|[^\\[])\\^/g;function y(re,Q){re=typeof re==\"string\"?re:re.source,Q=Q||\"\";var Z={replace:function(H,Y){return Y=Y.source||Y,Y=Y.replace(w,\"$1\"),re=re.replace(H,Y),Z},getRegex:function(){return new RegExp(re,Q)}};return Z}var S=/[^\\w:]/g,x=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function k(re,Q,Z){if(re){var B;try{B=decodeURIComponent(b(Z)).replace(S,\"\").toLowerCase()}catch{return null}if(B.indexOf(\"javascript:\")===0||B.indexOf(\"vbscript:\")===0||B.indexOf(\"data:\")===0)return null}Q&&!x.test(Z)&&(Z=O(Q,Z));try{Z=encodeURI(Z).replace(/%25/g,\"%\")}catch{return null}return Z}var D={},I=/^[^:]+:\\/*[^/]*$/,N=/^([^:]+:)[\\s\\S]*$/,P=/^([^:]+:\\/*[^/]*)[\\s\\S]*$/;function O(re,Q){D[\" \"+re]||(I.test(re)?D[\" \"+re]=re+\"/\":D[\" \"+re]=ae(re,\"/\",!0)),re=D[\" \"+re];var Z=re.indexOf(\":\")===-1;return Q.substring(0,2)===\"//\"?Z?Q:re.replace(N,\"$1\")+Q:Q.charAt(0)===\"/\"?Z?Q:re.replace(P,\"$1\")+Q:re+Q}var M={exec:function(){}};function z(re){for(var Q=1,Z,B;Q<arguments.length;Q++){Z=arguments[Q];for(B in Z)Object.prototype.hasOwnProperty.call(Z,B)&&(re[B]=Z[B])}return re}function K(re,Q){var Z=re.replace(/\\|/g,function(Y,G,ge){for(var Ie=!1,qe=G;--qe>=0&&ge[qe]===\"\\\\\";)Ie=!Ie;return Ie?\"|\":\" |\"}),B=Z.split(/ \\|/),H=0;if(B[0].trim()||B.shift(),B.length>0&&!B[B.length-1].trim()&&B.pop(),B.length>Q)B.splice(Q);else for(;B.length<Q;)B.push(\"\");for(;H<B.length;H++)B[H]=B[H].trim().replace(/\\\\\\|/g,\"|\");return B}function ae(re,Q,Z){var B=re.length;if(B===0)return\"\";for(var H=0;H<B;){var Y=re.charAt(B-H-1);if(Y===Q&&!Z)H++;else if(Y!==Q&&Z)H++;else break}return re.slice(0,B-H)}function se(re,Q){if(re.indexOf(Q[1])===-1)return-1;for(var Z=re.length,B=0,H=0;H<Z;H++)if(re[H]===\"\\\\\")H++;else if(re[H]===Q[0])B++;else if(re[H]===Q[1]&&(B--,B<0))return H;return-1}function he(re){re&&re.sanitize&&!re.silent&&console.warn(\"marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options\")}function me(re,Q){if(Q<1)return\"\";for(var Z=\"\";Q>1;)Q&1&&(Z+=re),Q>>=1,re+=re;return Z+re}function De(re,Q,Z,B){var H=Q.href,Y=Q.title?p(Q.title):null,G=re[1].replace(/\\\\([\\[\\]])/g,\"$1\");if(re[0].charAt(0)!==\"!\"){B.state.inLink=!0;var ge={type:\"link\",raw:Z,href:H,title:Y,text:G,tokens:B.inlineTokens(G)};return B.state.inLink=!1,ge}return{type:\"image\",raw:Z,href:H,title:Y,text:p(G)}}function lt(re,Q){var Z=re.match(/^(\\s+)(?:```)/);if(Z===null)return Q;var B=Z[1];return Q.split(`\n`).map(function(H){var Y=H.match(/^\\s+/);if(Y===null)return H;var G=Y[0];return G.length>=B.length?H.slice(B.length):H}).join(`\n`)}var We=function(){function re(Z){this.options=Z||e.defaults}var Q=re.prototype;return Q.space=function(B){var H=this.rules.block.newline.exec(B);if(H&&H[0].length>0)return{type:\"space\",raw:H[0]}},Q.code=function(B){var H=this.rules.block.code.exec(B);if(H){var Y=H[0].replace(/^ {1,4}/gm,\"\");return{type:\"code\",raw:H[0],codeBlockStyle:\"indented\",text:this.options.pedantic?Y:ae(Y,`\n`)}}},Q.fences=function(B){var H=this.rules.block.fences.exec(B);if(H){var Y=H[0],G=lt(Y,H[3]||\"\");return{type:\"code\",raw:Y,lang:H[2]?H[2].trim():H[2],text:G}}},Q.heading=function(B){var H=this.rules.block.heading.exec(B);if(H){var Y=H[2].trim();if(/#$/.test(Y)){var G=ae(Y,\"#\");(this.options.pedantic||!G||/ $/.test(G))&&(Y=G.trim())}return{type:\"heading\",raw:H[0],depth:H[1].length,text:Y,tokens:this.lexer.inline(Y)}}},Q.hr=function(B){var H=this.rules.block.hr.exec(B);if(H)return{type:\"hr\",raw:H[0]}},Q.blockquote=function(B){var H=this.rules.block.blockquote.exec(B);if(H){var Y=H[0].replace(/^ *>[ \\t]?/gm,\"\");return{type:\"blockquote\",raw:H[0],tokens:this.lexer.blockTokens(Y,[]),text:Y}}},Q.list=function(B){var H=this.rules.block.list.exec(B);if(H){var Y,G,ge,Ie,qe,ot,bt,xt,si,Ci,Dt,Si,Ai=H[1].trim(),mr=Ai.length>1,Ei={type:\"list\",raw:\"\",ordered:mr,start:mr?+Ai.slice(0,-1):\"\",loose:!1,items:[]};Ai=mr?\"\\\\d{1,9}\\\\\"+Ai.slice(-1):\"\\\\\"+Ai,this.options.pedantic&&(Ai=mr?Ai:\"[*+-]\");for(var Cs=new RegExp(\"^( {0,3}\"+Ai+\")((?:[\t ][^\\\\n]*)?(?:\\\\n|$))\");B&&(Si=!1,!(!(H=Cs.exec(B))||this.rules.block.hr.test(B)));){if(Y=H[0],B=B.substring(Y.length),xt=H[2].split(`\n`,1)[0],si=B.split(`\n`,1)[0],this.options.pedantic?(Ie=2,Dt=xt.trimLeft()):(Ie=H[2].search(/[^ ]/),Ie=Ie>4?1:Ie,Dt=xt.slice(Ie),Ie+=H[1].length),ot=!1,!xt&&/^ *$/.test(si)&&(Y+=si+`\n`,B=B.substring(si.length+1),Si=!0),!Si)for(var wu=new RegExp(\"^ {0,\"+Math.min(3,Ie-1)+\"}(?:[*+-]|\\\\d{1,9}[.)])((?: [^\\\\n]*)?(?:\\\\n|$))\"),yu=new RegExp(\"^ {0,\"+Math.min(3,Ie-1)+\"}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)\"),Nl=new RegExp(\"^ {0,\"+Math.min(3,Ie-1)+\"}(?:```|~~~)\"),Su=new RegExp(\"^ {0,\"+Math.min(3,Ie-1)+\"}#\");B&&(Ci=B.split(`\n`,1)[0],xt=Ci,this.options.pedantic&&(xt=xt.replace(/^ {1,4}(?=( {4})*[^ ])/g,\"  \")),!(Nl.test(xt)||Su.test(xt)||wu.test(xt)||yu.test(B)));){if(xt.search(/[^ ]/)>=Ie||!xt.trim())Dt+=`\n`+xt.slice(Ie);else if(!ot)Dt+=`\n`+xt;else break;!ot&&!xt.trim()&&(ot=!0),Y+=Ci+`\n`,B=B.substring(Ci.length+1)}Ei.loose||(bt?Ei.loose=!0:/\\n *\\n *$/.test(Y)&&(bt=!0)),this.options.gfm&&(G=/^\\[[ xX]\\] /.exec(Dt),G&&(ge=G[0]!==\"[ ] \",Dt=Dt.replace(/^\\[[ xX]\\] +/,\"\"))),Ei.items.push({type:\"list_item\",raw:Y,task:!!G,checked:ge,loose:!1,text:Dt}),Ei.raw+=Y}Ei.items[Ei.items.length-1].raw=Y.trimRight(),Ei.items[Ei.items.length-1].text=Dt.trimRight(),Ei.raw=Ei.raw.trimRight();var Kh=Ei.items.length;for(qe=0;qe<Kh;qe++){this.lexer.state.top=!1,Ei.items[qe].tokens=this.lexer.blockTokens(Ei.items[qe].text,[]);var qh=Ei.items[qe].tokens.filter(function(Zh){return Zh.type===\"space\"}),Gh=qh.every(function(Zh){for(var ry=Zh.raw.split(\"\"),yc=0,Yh=r(ry),k_;!(k_=Yh()).done;){var Kg=k_.value;if(Kg===`\n`&&(yc+=1),yc>1)return!0}return!1});!Ei.loose&&qh.length&&Gh&&(Ei.loose=!0,Ei.items[qe].loose=!0)}return Ei}},Q.html=function(B){var H=this.rules.block.html.exec(B);if(H){var Y={type:\"html\",raw:H[0],pre:!this.options.sanitizer&&(H[1]===\"pre\"||H[1]===\"script\"||H[1]===\"style\"),text:H[0]};if(this.options.sanitize){var G=this.options.sanitizer?this.options.sanitizer(H[0]):p(H[0]);Y.type=\"paragraph\",Y.text=G,Y.tokens=this.lexer.inline(G)}return Y}},Q.def=function(B){var H=this.rules.block.def.exec(B);if(H){H[3]&&(H[3]=H[3].substring(1,H[3].length-1));var Y=H[1].toLowerCase().replace(/\\s+/g,\" \");return{type:\"def\",tag:Y,raw:H[0],href:H[2],title:H[3]}}},Q.table=function(B){var H=this.rules.block.table.exec(B);if(H){var Y={type:\"table\",header:K(H[1]).map(function(bt){return{text:bt}}),align:H[2].replace(/^ *|\\| *$/g,\"\").split(/ *\\| */),rows:H[3]&&H[3].trim()?H[3].replace(/\\n[ \\t]*$/,\"\").split(`\n`):[]};if(Y.header.length===Y.align.length){Y.raw=H[0];var G=Y.align.length,ge,Ie,qe,ot;for(ge=0;ge<G;ge++)/^ *-+: *$/.test(Y.align[ge])?Y.align[ge]=\"right\":/^ *:-+: *$/.test(Y.align[ge])?Y.align[ge]=\"center\":/^ *:-+ *$/.test(Y.align[ge])?Y.align[ge]=\"left\":Y.align[ge]=null;for(G=Y.rows.length,ge=0;ge<G;ge++)Y.rows[ge]=K(Y.rows[ge],Y.header.length).map(function(bt){return{text:bt}});for(G=Y.header.length,Ie=0;Ie<G;Ie++)Y.header[Ie].tokens=this.lexer.inline(Y.header[Ie].text);for(G=Y.rows.length,Ie=0;Ie<G;Ie++)for(ot=Y.rows[Ie],qe=0;qe<ot.length;qe++)ot[qe].tokens=this.lexer.inline(ot[qe].text);return Y}}},Q.lheading=function(B){var H=this.rules.block.lheading.exec(B);if(H)return{type:\"heading\",raw:H[0],depth:H[2].charAt(0)===\"=\"?1:2,text:H[1],tokens:this.lexer.inline(H[1])}},Q.paragraph=function(B){var H=this.rules.block.paragraph.exec(B);if(H){var Y=H[1].charAt(H[1].length-1)===`\n`?H[1].slice(0,-1):H[1];return{type:\"paragraph\",raw:H[0],text:Y,tokens:this.lexer.inline(Y)}}},Q.text=function(B){var H=this.rules.block.text.exec(B);if(H)return{type:\"text\",raw:H[0],text:H[0],tokens:this.lexer.inline(H[0])}},Q.escape=function(B){var H=this.rules.inline.escape.exec(B);if(H)return{type:\"escape\",raw:H[0],text:p(H[1])}},Q.tag=function(B){var H=this.rules.inline.tag.exec(B);if(H)return!this.lexer.state.inLink&&/^<a /i.test(H[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&/^<\\/a>/i.test(H[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\\s|>)/i.test(H[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\\/(pre|code|kbd|script)(\\s|>)/i.test(H[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?\"text\":\"html\",raw:H[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(H[0]):p(H[0]):H[0]}},Q.link=function(B){var H=this.rules.inline.link.exec(B);if(H){var Y=H[2].trim();if(!this.options.pedantic&&/^</.test(Y)){if(!/>$/.test(Y))return;var G=ae(Y.slice(0,-1),\"\\\\\");if((Y.length-G.length)%2===0)return}else{var ge=se(H[2],\"()\");if(ge>-1){var Ie=H[0].indexOf(\"!\")===0?5:4,qe=Ie+H[1].length+ge;H[2]=H[2].substring(0,ge),H[0]=H[0].substring(0,qe).trim(),H[3]=\"\"}}var ot=H[2],bt=\"\";if(this.options.pedantic){var xt=/^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(ot);xt&&(ot=xt[1],bt=xt[3])}else bt=H[3]?H[3].slice(1,-1):\"\";return ot=ot.trim(),/^</.test(ot)&&(this.options.pedantic&&!/>$/.test(Y)?ot=ot.slice(1):ot=ot.slice(1,-1)),De(H,{href:ot&&ot.replace(this.rules.inline._escapes,\"$1\"),title:bt&&bt.replace(this.rules.inline._escapes,\"$1\")},H[0],this.lexer)}},Q.reflink=function(B,H){var Y;if((Y=this.rules.inline.reflink.exec(B))||(Y=this.rules.inline.nolink.exec(B))){var G=(Y[2]||Y[1]).replace(/\\s+/g,\" \");if(G=H[G.toLowerCase()],!G||!G.href){var ge=Y[0].charAt(0);return{type:\"text\",raw:ge,text:ge}}return De(Y,G,Y[0],this.lexer)}},Q.emStrong=function(B,H,Y){Y===void 0&&(Y=\"\");var G=this.rules.inline.emStrong.lDelim.exec(B);if(G&&!(G[3]&&Y.match(/(?:[0-9A-Za-z\\xAA\\xB2\\xB3\\xB5\\xB9\\xBA\\xBC-\\xBE\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u0660-\\u0669\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07C0-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0966-\\u096F\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09E6-\\u09F1\\u09F4-\\u09F9\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A6F\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AE6-\\u0AEF\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B66-\\u0B6F\\u0B71-\\u0B77\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0BE6-\\u0BF2\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C66-\\u0C6F\\u0C78-\\u0C7E\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D58-\\u0D61\\u0D66-\\u0D78\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DE6-\\u0DEF\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F20-\\u0F33\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F-\\u1049\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u1090-\\u1099\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1369-\\u137C\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u17E0-\\u17E9\\u17F0-\\u17F9\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B50-\\u1B59\\u1B83-\\u1BA0\\u1BAE-\\u1BE5\\u1C00-\\u1C23\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2070\\u2071\\u2074-\\u2079\\u207F-\\u2089\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2150-\\u2189\\u2460-\\u249B\\u24EA-\\u24FF\\u2776-\\u2793\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2CFD\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u3192-\\u3195\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3220-\\u3229\\u3248-\\u324F\\u3251-\\u325F\\u3280-\\u3289\\u32B1-\\u32BF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA830-\\uA835\\uA840-\\uA873\\uA882-\\uA8B3\\uA8D0-\\uA8D9\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA900-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF-\\uA9D9\\uA9E0-\\uA9E4\\uA9E6-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD07-\\uDD33\\uDD40-\\uDD78\\uDD8A\\uDD8B\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE1-\\uDEFB\\uDF00-\\uDF23\\uDF2D-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC58-\\uDC76\\uDC79-\\uDC9E\\uDCA7-\\uDCAF\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDCFB-\\uDD1B\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBC-\\uDDCF\\uDDD2-\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE40-\\uDE48\\uDE60-\\uDE7E\\uDE80-\\uDE9F\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDEEB-\\uDEEF\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF58-\\uDF72\\uDF78-\\uDF91\\uDFA9-\\uDFAF]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDCFA-\\uDD23\\uDD30-\\uDD39\\uDE60-\\uDE7E\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF27\\uDF30-\\uDF45\\uDF51-\\uDF54\\uDF70-\\uDF81\\uDFB0-\\uDFCB\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC52-\\uDC6F\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD03-\\uDD26\\uDD36-\\uDD3F\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDD0-\\uDDDA\\uDDDC\\uDDE1-\\uDDF4\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDEF0-\\uDEF9\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC50-\\uDC59\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEAA\\uDEB8\\uDEC0-\\uDEC9\\uDF00-\\uDF1A\\uDF30-\\uDF3B\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCF2\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDD50-\\uDD59\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC50-\\uDC6C\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD50-\\uDD59\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDDA0-\\uDDA9\\uDEE0-\\uDEF2\\uDFB0\\uDFC0-\\uDFD4]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDE70-\\uDEBE\\uDEC0-\\uDEC9\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF5B-\\uDF61\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE96\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD50-\\uDD52\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD834[\\uDEE0-\\uDEF3\\uDF60-\\uDF78]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD837[\\uDF00-\\uDF1E]|\\uD838[\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD40-\\uDD49\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB\\uDEF0-\\uDEF9]|\\uD839[\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDCC7-\\uDCCF\\uDD00-\\uDD43\\uDD4B\\uDD50-\\uDD59]|\\uD83B[\\uDC71-\\uDCAB\\uDCAD-\\uDCAF\\uDCB1-\\uDCB4\\uDD01-\\uDD2D\\uDD2F-\\uDD3D\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD83C[\\uDD00-\\uDD0C]|\\uD83E[\\uDFF0-\\uDFF9]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF38\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A])/))){var ge=G[1]||G[2]||\"\";if(!ge||ge&&(Y===\"\"||this.rules.inline.punctuation.exec(Y))){var Ie=G[0].length-1,qe,ot,bt=Ie,xt=0,si=G[0][0]===\"*\"?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(si.lastIndex=0,H=H.slice(-1*B.length+Ie);(G=si.exec(H))!=null;)if(qe=G[1]||G[2]||G[3]||G[4]||G[5]||G[6],!!qe){if(ot=qe.length,G[3]||G[4]){bt+=ot;continue}else if((G[5]||G[6])&&Ie%3&&!((Ie+ot)%3)){xt+=ot;continue}if(bt-=ot,!(bt>0)){if(ot=Math.min(ot,ot+bt+xt),Math.min(Ie,ot)%2){var Ci=B.slice(1,Ie+G.index+ot);return{type:\"em\",raw:B.slice(0,Ie+G.index+ot+1),text:Ci,tokens:this.lexer.inlineTokens(Ci)}}var Dt=B.slice(2,Ie+G.index+ot-1);return{type:\"strong\",raw:B.slice(0,Ie+G.index+ot+1),text:Dt,tokens:this.lexer.inlineTokens(Dt)}}}}}},Q.codespan=function(B){var H=this.rules.inline.code.exec(B);if(H){var Y=H[2].replace(/\\n/g,\" \"),G=/[^ ]/.test(Y),ge=/^ /.test(Y)&&/ $/.test(Y);return G&&ge&&(Y=Y.substring(1,Y.length-1)),Y=p(Y,!0),{type:\"codespan\",raw:H[0],text:Y}}},Q.br=function(B){var H=this.rules.inline.br.exec(B);if(H)return{type:\"br\",raw:H[0]}},Q.del=function(B){var H=this.rules.inline.del.exec(B);if(H)return{type:\"del\",raw:H[0],text:H[2],tokens:this.lexer.inlineTokens(H[2])}},Q.autolink=function(B,H){var Y=this.rules.inline.autolink.exec(B);if(Y){var G,ge;return Y[2]===\"@\"?(G=p(this.options.mangle?H(Y[1]):Y[1]),ge=\"mailto:\"+G):(G=p(Y[1]),ge=G),{type:\"link\",raw:Y[0],text:G,href:ge,tokens:[{type:\"text\",raw:G,text:G}]}}},Q.url=function(B,H){var Y;if(Y=this.rules.inline.url.exec(B)){var G,ge;if(Y[2]===\"@\")G=p(this.options.mangle?H(Y[0]):Y[0]),ge=\"mailto:\"+G;else{var Ie;do Ie=Y[0],Y[0]=this.rules.inline._backpedal.exec(Y[0])[0];while(Ie!==Y[0]);G=p(Y[0]),Y[1]===\"www.\"?ge=\"http://\"+G:ge=G}return{type:\"link\",raw:Y[0],text:G,href:ge,tokens:[{type:\"text\",raw:G,text:G}]}}},Q.inlineText=function(B,H){var Y=this.rules.inline.text.exec(B);if(Y){var G;return this.lexer.state.inRawBlock?G=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(Y[0]):p(Y[0]):Y[0]:G=p(this.options.smartypants?H(Y[0]):Y[0]),{type:\"text\",raw:Y[0],text:G}}},re}(),Ve={newline:/^(?: *(?:\\n|$))+/,code:/^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\\n]*\\n)|~{3,})([^\\n]*)\\n(?:|([\\s\\S]*?)\\n)(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/,hr:/^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,list:/^( {0,3}bull)([ \\t][^\\n]+?)?(?:\\n|$)/,html:\"^ {0,3}(?:<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)|comment[^\\\\n]*(\\\\n+|$)|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$))\",def:/^ {0,3}\\[(label)\\]: *(?:\\n *)?<?([^\\s>]+)>?(?:(?: +(?:\\n *)?| *\\n *)(title))? *(?:\\n+|$)/,table:M,lheading:/^([^\\n]+)\\n {0,3}(=+|-+) *(?:\\n+|$)/,_paragraph:/^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/,text:/^[^\\n]+/};Ve._label=/(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/,Ve._title=/(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/,Ve.def=y(Ve.def).replace(\"label\",Ve._label).replace(\"title\",Ve._title).getRegex(),Ve.bullet=/(?:[*+-]|\\d{1,9}[.)])/,Ve.listItemStart=y(/^( *)(bull) */).replace(\"bull\",Ve.bullet).getRegex(),Ve.list=y(Ve.list).replace(/bull/g,Ve.bullet).replace(\"hr\",\"\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))\").replace(\"def\",\"\\\\n+(?=\"+Ve.def.source+\")\").getRegex(),Ve._tag=\"address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul\",Ve._comment=/<!--(?!-?>)[\\s\\S]*?(?:-->|$)/,Ve.html=y(Ve.html,\"i\").replace(\"comment\",Ve._comment).replace(\"tag\",Ve._tag).replace(\"attribute\",/ +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex(),Ve.paragraph=y(Ve._paragraph).replace(\"hr\",Ve.hr).replace(\"heading\",\" {0,3}#{1,6} \").replace(\"|lheading\",\"\").replace(\"|table\",\"\").replace(\"blockquote\",\" {0,3}>\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",Ve._tag).getRegex(),Ve.blockquote=y(Ve.blockquote).replace(\"paragraph\",Ve.paragraph).getRegex(),Ve.normal=z({},Ve),Ve.gfm=z({},Ve.normal,{table:\"^ *([^\\\\n ].*\\\\|.*)\\\\n {0,3}(?:\\\\| *)?(:?-+:? *(?:\\\\| *:?-+:? *)*)(?:\\\\| *)?(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)\"}),Ve.gfm.table=y(Ve.gfm.table).replace(\"hr\",Ve.hr).replace(\"heading\",\" {0,3}#{1,6} \").replace(\"blockquote\",\" {0,3}>\").replace(\"code\",\" {4}[^\\\\n]\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",Ve._tag).getRegex(),Ve.gfm.paragraph=y(Ve._paragraph).replace(\"hr\",Ve.hr).replace(\"heading\",\" {0,3}#{1,6} \").replace(\"|lheading\",\"\").replace(\"table\",Ve.gfm.table).replace(\"blockquote\",\" {0,3}>\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",Ve._tag).getRegex(),Ve.pedantic=z({},Ve.normal,{html:y(`^ *(?:comment *(?:\\\\n|\\\\s*$)|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\\\s[^'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))`).replace(\"comment\",Ve._comment).replace(/tag/g,\"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b\").getRegex(),def:/^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,heading:/^(#{1,6})(.*)(?:\\n+|$)/,fences:M,paragraph:y(Ve.normal._paragraph).replace(\"hr\",Ve.hr).replace(\"heading\",` *#{1,6} *[^\n]`).replace(\"lheading\",Ve.lheading).replace(\"blockquote\",\" {0,3}>\").replace(\"|fences\",\"\").replace(\"|list\",\"\").replace(\"|html\",\"\").getRegex()});var Me={escape:/^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,autolink:/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,url:M,tag:\"^comment|^</[a-zA-Z][\\\\w:-]*\\\\s*>|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>|^<\\\\?[\\\\s\\\\S]*?\\\\?>|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>\",link:/^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,reflink:/^!?\\[(label)\\]\\[(ref)\\]/,nolink:/^!?\\[(ref)\\](?:\\[\\])?/,reflinkSearch:\"reflink|nolink(?!\\\\()\",emStrong:{lDelim:/^(?:\\*+(?:([punct_])|[^\\s*]))|^_+(?:([punct*])|([^\\s_]))/,rDelimAst:/^[^_*]*?\\_\\_[^_*]*?\\*[^_*]*?(?=\\_\\_)|[^*]+(?=[^*])|[punct_](\\*+)(?=[\\s]|$)|[^punct*_\\s](\\*+)(?=[punct_\\s]|$)|[punct_\\s](\\*+)(?=[^punct*_\\s])|[\\s](\\*+)(?=[punct_])|[punct_](\\*+)(?=[punct_])|[^punct*_\\s](\\*+)(?=[^punct*_\\s])/,rDelimUnd:/^[^_*]*?\\*\\*[^_*]*?\\_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|[punct*](\\_+)(?=[\\s]|$)|[^punct*_\\s](\\_+)(?=[punct*\\s]|$)|[punct*\\s](\\_+)(?=[^punct*_\\s])|[\\s](\\_+)(?=[punct*])|[punct*](\\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,br:/^( {2,}|\\\\)\\n(?!\\s*$)/,del:M,text:/^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/,punctuation:/^([\\spunctuation])/};Me._punctuation=\"!\\\"#$%&'()+\\\\-.,/:;<=>?@\\\\[\\\\]`^{|}~\",Me.punctuation=y(Me.punctuation).replace(/punctuation/g,Me._punctuation).getRegex(),Me.blockSkip=/\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>/g,Me.escapedEmSt=/\\\\\\*|\\\\_/g,Me._comment=y(Ve._comment).replace(\"(?:-->|$)\",\"-->\").getRegex(),Me.emStrong.lDelim=y(Me.emStrong.lDelim).replace(/punct/g,Me._punctuation).getRegex(),Me.emStrong.rDelimAst=y(Me.emStrong.rDelimAst,\"g\").replace(/punct/g,Me._punctuation).getRegex(),Me.emStrong.rDelimUnd=y(Me.emStrong.rDelimUnd,\"g\").replace(/punct/g,Me._punctuation).getRegex(),Me._escapes=/\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g,Me._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,Me._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,Me.autolink=y(Me.autolink).replace(\"scheme\",Me._scheme).replace(\"email\",Me._email).getRegex(),Me._attribute=/\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/,Me.tag=y(Me.tag).replace(\"comment\",Me._comment).replace(\"attribute\",Me._attribute).getRegex(),Me._label=/(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/,Me._href=/<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/,Me._title=/\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/,Me.link=y(Me.link).replace(\"label\",Me._label).replace(\"href\",Me._href).replace(\"title\",Me._title).getRegex(),Me.reflink=y(Me.reflink).replace(\"label\",Me._label).replace(\"ref\",Ve._label).getRegex(),Me.nolink=y(Me.nolink).replace(\"ref\",Ve._label).getRegex(),Me.reflinkSearch=y(Me.reflinkSearch,\"g\").replace(\"reflink\",Me.reflink).replace(\"nolink\",Me.nolink).getRegex(),Me.normal=z({},Me),Me.pedantic=z({},Me.normal,{strong:{start:/^__|\\*\\*/,middle:/^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,endAst:/\\*\\*(?!\\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\\*/,middle:/^()\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)|^_(?=\\S)([\\s\\S]*?\\S)_(?!_)/,endAst:/\\*(?!\\*)/g,endUnd:/_(?!_)/g},link:y(/^!?\\[(label)\\]\\((.*?)\\)/).replace(\"label\",Me._label).getRegex(),reflink:y(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace(\"label\",Me._label).getRegex()}),Me.gfm=z({},Me.normal,{escape:y(Me.escape).replace(\"])\",\"~|])\").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/}),Me.gfm.url=y(Me.gfm.url,\"i\").replace(\"email\",Me.gfm._extended_email).getRegex(),Me.breaks=z({},Me.gfm,{br:y(Me.br).replace(\"{2,}\",\"*\").getRegex(),text:y(Me.gfm.text).replace(\"\\\\b_\",\"\\\\b_| {2,}\\\\n\").replace(/\\{2,\\}/g,\"*\").getRegex()});function Zt(re){return re.replace(/---/g,\"—\").replace(/--/g,\"–\").replace(/(^|[-\\u2014/(\\[{\"\\s])'/g,\"$1‘\").replace(/'/g,\"’\").replace(/(^|[-\\u2014/(\\[{\\u2018\\s])\"/g,\"$1“\").replace(/\"/g,\"”\").replace(/\\.{3}/g,\"…\")}function Oi(re){var Q=\"\",Z,B,H=re.length;for(Z=0;Z<H;Z++)B=re.charCodeAt(Z),Math.random()>.5&&(B=\"x\"+B.toString(16)),Q+=\"&#\"+B+\";\";return Q}var ni=function(){function re(Z){this.tokens=[],this.tokens.links=Object.create(null),this.options=Z||e.defaults,this.options.tokenizer=this.options.tokenizer||new We,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};var B={block:Ve.normal,inline:Me.normal};this.options.pedantic?(B.block=Ve.pedantic,B.inline=Me.pedantic):this.options.gfm&&(B.block=Ve.gfm,this.options.breaks?B.inline=Me.breaks:B.inline=Me.gfm),this.tokenizer.rules=B}re.lex=function(B,H){var Y=new re(H);return Y.lex(B)},re.lexInline=function(B,H){var Y=new re(H);return Y.inlineTokens(B)};var Q=re.prototype;return Q.lex=function(B){B=B.replace(/\\r\\n|\\r/g,`\n`),this.blockTokens(B,this.tokens);for(var H;H=this.inlineQueue.shift();)this.inlineTokens(H.src,H.tokens);return this.tokens},Q.blockTokens=function(B,H){var Y=this;H===void 0&&(H=[]),this.options.pedantic?B=B.replace(/\\t/g,\"    \").replace(/^ +$/gm,\"\"):B=B.replace(/^( *)(\\t+)/gm,function(bt,xt,si){return xt+\"    \".repeat(si.length)});for(var G,ge,Ie,qe;B;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(function(bt){return(G=bt.call({lexer:Y},B,H))?(B=B.substring(G.raw.length),H.push(G),!0):!1}))){if(G=this.tokenizer.space(B)){B=B.substring(G.raw.length),G.raw.length===1&&H.length>0?H[H.length-1].raw+=`\n`:H.push(G);continue}if(G=this.tokenizer.code(B)){B=B.substring(G.raw.length),ge=H[H.length-1],ge&&(ge.type===\"paragraph\"||ge.type===\"text\")?(ge.raw+=`\n`+G.raw,ge.text+=`\n`+G.text,this.inlineQueue[this.inlineQueue.length-1].src=ge.text):H.push(G);continue}if(G=this.tokenizer.fences(B)){B=B.substring(G.raw.length),H.push(G);continue}if(G=this.tokenizer.heading(B)){B=B.substring(G.raw.length),H.push(G);continue}if(G=this.tokenizer.hr(B)){B=B.substring(G.raw.length),H.push(G);continue}if(G=this.tokenizer.blockquote(B)){B=B.substring(G.raw.length),H.push(G);continue}if(G=this.tokenizer.list(B)){B=B.substring(G.raw.length),H.push(G);continue}if(G=this.tokenizer.html(B)){B=B.substring(G.raw.length),H.push(G);continue}if(G=this.tokenizer.def(B)){B=B.substring(G.raw.length),ge=H[H.length-1],ge&&(ge.type===\"paragraph\"||ge.type===\"text\")?(ge.raw+=`\n`+G.raw,ge.text+=`\n`+G.raw,this.inlineQueue[this.inlineQueue.length-1].src=ge.text):this.tokens.links[G.tag]||(this.tokens.links[G.tag]={href:G.href,title:G.title});continue}if(G=this.tokenizer.table(B)){B=B.substring(G.raw.length),H.push(G);continue}if(G=this.tokenizer.lheading(B)){B=B.substring(G.raw.length),H.push(G);continue}if(Ie=B,this.options.extensions&&this.options.extensions.startBlock&&function(){var bt=1/0,xt=B.slice(1),si=void 0;Y.options.extensions.startBlock.forEach(function(Ci){si=Ci.call({lexer:this},xt),typeof si==\"number\"&&si>=0&&(bt=Math.min(bt,si))}),bt<1/0&&bt>=0&&(Ie=B.substring(0,bt+1))}(),this.state.top&&(G=this.tokenizer.paragraph(Ie))){ge=H[H.length-1],qe&&ge.type===\"paragraph\"?(ge.raw+=`\n`+G.raw,ge.text+=`\n`+G.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=ge.text):H.push(G),qe=Ie.length!==B.length,B=B.substring(G.raw.length);continue}if(G=this.tokenizer.text(B)){B=B.substring(G.raw.length),ge=H[H.length-1],ge&&ge.type===\"text\"?(ge.raw+=`\n`+G.raw,ge.text+=`\n`+G.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=ge.text):H.push(G);continue}if(B){var ot=\"Infinite loop on byte: \"+B.charCodeAt(0);if(this.options.silent){console.error(ot);break}else throw new Error(ot)}}return this.state.top=!0,H},Q.inline=function(B,H){return H===void 0&&(H=[]),this.inlineQueue.push({src:B,tokens:H}),H},Q.inlineTokens=function(B,H){var Y=this;H===void 0&&(H=[]);var G,ge,Ie,qe=B,ot,bt,xt;if(this.tokens.links){var si=Object.keys(this.tokens.links);if(si.length>0)for(;(ot=this.tokenizer.rules.inline.reflinkSearch.exec(qe))!=null;)si.includes(ot[0].slice(ot[0].lastIndexOf(\"[\")+1,-1))&&(qe=qe.slice(0,ot.index)+\"[\"+me(\"a\",ot[0].length-2)+\"]\"+qe.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(ot=this.tokenizer.rules.inline.blockSkip.exec(qe))!=null;)qe=qe.slice(0,ot.index)+\"[\"+me(\"a\",ot[0].length-2)+\"]\"+qe.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(ot=this.tokenizer.rules.inline.escapedEmSt.exec(qe))!=null;)qe=qe.slice(0,ot.index)+\"++\"+qe.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;B;)if(bt||(xt=\"\"),bt=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(function(Dt){return(G=Dt.call({lexer:Y},B,H))?(B=B.substring(G.raw.length),H.push(G),!0):!1}))){if(G=this.tokenizer.escape(B)){B=B.substring(G.raw.length),H.push(G);continue}if(G=this.tokenizer.tag(B)){B=B.substring(G.raw.length),ge=H[H.length-1],ge&&G.type===\"text\"&&ge.type===\"text\"?(ge.raw+=G.raw,ge.text+=G.text):H.push(G);continue}if(G=this.tokenizer.link(B)){B=B.substring(G.raw.length),H.push(G);continue}if(G=this.tokenizer.reflink(B,this.tokens.links)){B=B.substring(G.raw.length),ge=H[H.length-1],ge&&G.type===\"text\"&&ge.type===\"text\"?(ge.raw+=G.raw,ge.text+=G.text):H.push(G);continue}if(G=this.tokenizer.emStrong(B,qe,xt)){B=B.substring(G.raw.length),H.push(G);continue}if(G=this.tokenizer.codespan(B)){B=B.substring(G.raw.length),H.push(G);continue}if(G=this.tokenizer.br(B)){B=B.substring(G.raw.length),H.push(G);continue}if(G=this.tokenizer.del(B)){B=B.substring(G.raw.length),H.push(G);continue}if(G=this.tokenizer.autolink(B,Oi)){B=B.substring(G.raw.length),H.push(G);continue}if(!this.state.inLink&&(G=this.tokenizer.url(B,Oi))){B=B.substring(G.raw.length),H.push(G);continue}if(Ie=B,this.options.extensions&&this.options.extensions.startInline&&function(){var Dt=1/0,Si=B.slice(1),Ai=void 0;Y.options.extensions.startInline.forEach(function(mr){Ai=mr.call({lexer:this},Si),typeof Ai==\"number\"&&Ai>=0&&(Dt=Math.min(Dt,Ai))}),Dt<1/0&&Dt>=0&&(Ie=B.substring(0,Dt+1))}(),G=this.tokenizer.inlineText(Ie,Zt)){B=B.substring(G.raw.length),G.raw.slice(-1)!==\"_\"&&(xt=G.raw.slice(-1)),bt=!0,ge=H[H.length-1],ge&&ge.type===\"text\"?(ge.raw+=G.raw,ge.text+=G.text):H.push(G);continue}if(B){var Ci=\"Infinite loop on byte: \"+B.charCodeAt(0);if(this.options.silent){console.error(Ci);break}else throw new Error(Ci)}}return H},i(re,null,[{key:\"rules\",get:function(){return{block:Ve,inline:Me}}}]),re}(),Se=function(){function re(Z){this.options=Z||e.defaults}var Q=re.prototype;return Q.code=function(B,H,Y){var G=(H||\"\").match(/\\S*/)[0];if(this.options.highlight){var ge=this.options.highlight(B,G);ge!=null&&ge!==B&&(Y=!0,B=ge)}return B=B.replace(/\\n$/,\"\")+`\n`,G?'<pre><code class=\"'+this.options.langPrefix+p(G,!0)+'\">'+(Y?B:p(B,!0))+`</code></pre>\n`:\"<pre><code>\"+(Y?B:p(B,!0))+`</code></pre>\n`},Q.blockquote=function(B){return`<blockquote>\n`+B+`</blockquote>\n`},Q.html=function(B){return B},Q.heading=function(B,H,Y,G){if(this.options.headerIds){var ge=this.options.headerPrefix+G.slug(Y);return\"<h\"+H+' id=\"'+ge+'\">'+B+\"</h\"+H+`>\n`}return\"<h\"+H+\">\"+B+\"</h\"+H+`>\n`},Q.hr=function(){return this.options.xhtml?`<hr/>\n`:`<hr>\n`},Q.list=function(B,H,Y){var G=H?\"ol\":\"ul\",ge=H&&Y!==1?' start=\"'+Y+'\"':\"\";return\"<\"+G+ge+`>\n`+B+\"</\"+G+`>\n`},Q.listitem=function(B){return\"<li>\"+B+`</li>\n`},Q.checkbox=function(B){return\"<input \"+(B?'checked=\"\" ':\"\")+'disabled=\"\" type=\"checkbox\"'+(this.options.xhtml?\" /\":\"\")+\"> \"},Q.paragraph=function(B){return\"<p>\"+B+`</p>\n`},Q.table=function(B,H){return H&&(H=\"<tbody>\"+H+\"</tbody>\"),`<table>\n<thead>\n`+B+`</thead>\n`+H+`</table>\n`},Q.tablerow=function(B){return`<tr>\n`+B+`</tr>\n`},Q.tablecell=function(B,H){var Y=H.header?\"th\":\"td\",G=H.align?\"<\"+Y+' align=\"'+H.align+'\">':\"<\"+Y+\">\";return G+B+(\"</\"+Y+`>\n`)},Q.strong=function(B){return\"<strong>\"+B+\"</strong>\"},Q.em=function(B){return\"<em>\"+B+\"</em>\"},Q.codespan=function(B){return\"<code>\"+B+\"</code>\"},Q.br=function(){return this.options.xhtml?\"<br/>\":\"<br>\"},Q.del=function(B){return\"<del>\"+B+\"</del>\"},Q.link=function(B,H,Y){if(B=k(this.options.sanitize,this.options.baseUrl,B),B===null)return Y;var G='<a href=\"'+p(B)+'\"';return H&&(G+=' title=\"'+H+'\"'),G+=\">\"+Y+\"</a>\",G},Q.image=function(B,H,Y){if(B=k(this.options.sanitize,this.options.baseUrl,B),B===null)return Y;var G='<img src=\"'+B+'\" alt=\"'+Y+'\"';return H&&(G+=' title=\"'+H+'\"'),G+=this.options.xhtml?\"/>\":\">\",G},Q.text=function(B){return B},re}(),Qe=function(){function re(){}var Q=re.prototype;return Q.strong=function(B){return B},Q.em=function(B){return B},Q.codespan=function(B){return B},Q.del=function(B){return B},Q.html=function(B){return B},Q.text=function(B){return B},Q.link=function(B,H,Y){return\"\"+Y},Q.image=function(B,H,Y){return\"\"+Y},Q.br=function(){return\"\"},re}(),nt=function(){function re(){this.seen={}}var Q=re.prototype;return Q.serialize=function(B){return B.toLowerCase().trim().replace(/<[!\\/a-z].*?>/ig,\"\").replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g,\"\").replace(/\\s/g,\"-\")},Q.getNextSafeSlug=function(B,H){var Y=B,G=0;if(this.seen.hasOwnProperty(Y)){G=this.seen[B];do G++,Y=B+\"-\"+G;while(this.seen.hasOwnProperty(Y))}return H||(this.seen[B]=G,this.seen[Y]=0),Y},Q.slug=function(B,H){H===void 0&&(H={});var Y=this.serialize(B);return this.getNextSafeSlug(Y,H.dryrun)},re}(),mt=function(){function re(Z){this.options=Z||e.defaults,this.options.renderer=this.options.renderer||new Se,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new Qe,this.slugger=new nt}re.parse=function(B,H){var Y=new re(H);return Y.parse(B)},re.parseInline=function(B,H){var Y=new re(H);return Y.parseInline(B)};var Q=re.prototype;return Q.parse=function(B,H){H===void 0&&(H=!0);var Y=\"\",G,ge,Ie,qe,ot,bt,xt,si,Ci,Dt,Si,Ai,mr,Ei,Cs,wu,yu,Nl,Su,Kh=B.length;for(G=0;G<Kh;G++){if(Dt=B[G],this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[Dt.type]&&(Su=this.options.extensions.renderers[Dt.type].call({parser:this},Dt),Su!==!1||![\"space\",\"hr\",\"heading\",\"code\",\"table\",\"blockquote\",\"list\",\"html\",\"paragraph\",\"text\"].includes(Dt.type))){Y+=Su||\"\";continue}switch(Dt.type){case\"space\":continue;case\"hr\":{Y+=this.renderer.hr();continue}case\"heading\":{Y+=this.renderer.heading(this.parseInline(Dt.tokens),Dt.depth,b(this.parseInline(Dt.tokens,this.textRenderer)),this.slugger);continue}case\"code\":{Y+=this.renderer.code(Dt.text,Dt.lang,Dt.escaped);continue}case\"table\":{for(si=\"\",xt=\"\",qe=Dt.header.length,ge=0;ge<qe;ge++)xt+=this.renderer.tablecell(this.parseInline(Dt.header[ge].tokens),{header:!0,align:Dt.align[ge]});for(si+=this.renderer.tablerow(xt),Ci=\"\",qe=Dt.rows.length,ge=0;ge<qe;ge++){for(bt=Dt.rows[ge],xt=\"\",ot=bt.length,Ie=0;Ie<ot;Ie++)xt+=this.renderer.tablecell(this.parseInline(bt[Ie].tokens),{header:!1,align:Dt.align[Ie]});Ci+=this.renderer.tablerow(xt)}Y+=this.renderer.table(si,Ci);continue}case\"blockquote\":{Ci=this.parse(Dt.tokens),Y+=this.renderer.blockquote(Ci);continue}case\"list\":{for(Si=Dt.ordered,Ai=Dt.start,mr=Dt.loose,qe=Dt.items.length,Ci=\"\",ge=0;ge<qe;ge++)Cs=Dt.items[ge],wu=Cs.checked,yu=Cs.task,Ei=\"\",Cs.task&&(Nl=this.renderer.checkbox(wu),mr?Cs.tokens.length>0&&Cs.tokens[0].type===\"paragraph\"?(Cs.tokens[0].text=Nl+\" \"+Cs.tokens[0].text,Cs.tokens[0].tokens&&Cs.tokens[0].tokens.length>0&&Cs.tokens[0].tokens[0].type===\"text\"&&(Cs.tokens[0].tokens[0].text=Nl+\" \"+Cs.tokens[0].tokens[0].text)):Cs.tokens.unshift({type:\"text\",text:Nl}):Ei+=Nl),Ei+=this.parse(Cs.tokens,mr),Ci+=this.renderer.listitem(Ei,yu,wu);Y+=this.renderer.list(Ci,Si,Ai);continue}case\"html\":{Y+=this.renderer.html(Dt.text);continue}case\"paragraph\":{Y+=this.renderer.paragraph(this.parseInline(Dt.tokens));continue}case\"text\":{for(Ci=Dt.tokens?this.parseInline(Dt.tokens):Dt.text;G+1<Kh&&B[G+1].type===\"text\";)Dt=B[++G],Ci+=`\n`+(Dt.tokens?this.parseInline(Dt.tokens):Dt.text);Y+=H?this.renderer.paragraph(Ci):Ci;continue}default:{var qh='Token with \"'+Dt.type+'\" type was not found.';if(this.options.silent){console.error(qh);return}else throw new Error(qh)}}}return Y},Q.parseInline=function(B,H){H=H||this.renderer;var Y=\"\",G,ge,Ie,qe=B.length;for(G=0;G<qe;G++){if(ge=B[G],this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[ge.type]&&(Ie=this.options.extensions.renderers[ge.type].call({parser:this},ge),Ie!==!1||![\"escape\",\"html\",\"link\",\"image\",\"strong\",\"em\",\"codespan\",\"br\",\"del\",\"text\"].includes(ge.type))){Y+=Ie||\"\";continue}switch(ge.type){case\"escape\":{Y+=H.text(ge.text);break}case\"html\":{Y+=H.html(ge.text);break}case\"link\":{Y+=H.link(ge.href,ge.title,this.parseInline(ge.tokens,H));break}case\"image\":{Y+=H.image(ge.href,ge.title,ge.text);break}case\"strong\":{Y+=H.strong(this.parseInline(ge.tokens,H));break}case\"em\":{Y+=H.em(this.parseInline(ge.tokens,H));break}case\"codespan\":{Y+=H.codespan(ge.text);break}case\"br\":{Y+=H.br();break}case\"del\":{Y+=H.del(this.parseInline(ge.tokens,H));break}case\"text\":{Y+=H.text(ge.text);break}default:{var ot='Token with \"'+ge.type+'\" type was not found.';if(this.options.silent){console.error(ot);return}else throw new Error(ot)}}}return Y},re}();function Je(re,Q,Z){if(typeof re>\"u\"||re===null)throw new Error(\"marked(): input parameter is undefined or null\");if(typeof re!=\"string\")throw new Error(\"marked(): input parameter is of type \"+Object.prototype.toString.call(re)+\", string expected\");if(typeof Q==\"function\"&&(Z=Q,Q=null),Q=z({},Je.defaults,Q||{}),he(Q),Z){var B=Q.highlight,H;try{H=ni.lex(re,Q)}catch(qe){return Z(qe)}var Y=function(ot){var bt;if(!ot)try{Q.walkTokens&&Je.walkTokens(H,Q.walkTokens),bt=mt.parse(H,Q)}catch(xt){ot=xt}return Q.highlight=B,ot?Z(ot):Z(null,bt)};if(!B||B.length<3||(delete Q.highlight,!H.length))return Y();var G=0;Je.walkTokens(H,function(qe){qe.type===\"code\"&&(G++,setTimeout(function(){B(qe.text,qe.lang,function(ot,bt){if(ot)return Y(ot);bt!=null&&bt!==qe.text&&(qe.text=bt,qe.escaped=!0),G--,G===0&&Y()})},0))}),G===0&&Y();return}function ge(qe){if(qe.message+=`\nPlease report this to https://github.com/markedjs/marked.`,Q.silent)return\"<p>An error occurred:</p><pre>\"+p(qe.message+\"\",!0)+\"</pre>\";throw qe}try{var Ie=ni.lex(re,Q);if(Q.walkTokens){if(Q.async)return Promise.all(Je.walkTokens(Ie,Q.walkTokens)).then(function(){return mt.parse(Ie,Q)}).catch(ge);Je.walkTokens(Ie,Q.walkTokens)}return mt.parse(Ie,Q)}catch(qe){ge(qe)}}Je.options=Je.setOptions=function(re){return z(Je.defaults,re),l(Je.defaults),Je},Je.getDefaults=a,Je.defaults=e.defaults,Je.use=function(){for(var re=arguments.length,Q=new Array(re),Z=0;Z<re;Z++)Q[Z]=arguments[Z];var B=z.apply(void 0,[{}].concat(Q)),H=Je.defaults.extensions||{renderers:{},childTokens:{}},Y;Q.forEach(function(G){if(G.extensions&&(Y=!0,G.extensions.forEach(function(Ie){if(!Ie.name)throw new Error(\"extension name required\");if(Ie.renderer){var qe=H.renderers?H.renderers[Ie.name]:null;qe?H.renderers[Ie.name]=function(){for(var ot=arguments.length,bt=new Array(ot),xt=0;xt<ot;xt++)bt[xt]=arguments[xt];var si=Ie.renderer.apply(this,bt);return si===!1&&(si=qe.apply(this,bt)),si}:H.renderers[Ie.name]=Ie.renderer}if(Ie.tokenizer){if(!Ie.level||Ie.level!==\"block\"&&Ie.level!==\"inline\")throw new Error(\"extension level must be 'block' or 'inline'\");H[Ie.level]?H[Ie.level].unshift(Ie.tokenizer):H[Ie.level]=[Ie.tokenizer],Ie.start&&(Ie.level===\"block\"?H.startBlock?H.startBlock.push(Ie.start):H.startBlock=[Ie.start]:Ie.level===\"inline\"&&(H.startInline?H.startInline.push(Ie.start):H.startInline=[Ie.start]))}Ie.childTokens&&(H.childTokens[Ie.name]=Ie.childTokens)})),G.renderer&&function(){var Ie=Je.defaults.renderer||new Se,qe=function(xt){var si=Ie[xt];Ie[xt]=function(){for(var Ci=arguments.length,Dt=new Array(Ci),Si=0;Si<Ci;Si++)Dt[Si]=arguments[Si];var Ai=G.renderer[xt].apply(Ie,Dt);return Ai===!1&&(Ai=si.apply(Ie,Dt)),Ai}};for(var ot in G.renderer)qe(ot);B.renderer=Ie}(),G.tokenizer&&function(){var Ie=Je.defaults.tokenizer||new We,qe=function(xt){var si=Ie[xt];Ie[xt]=function(){for(var Ci=arguments.length,Dt=new Array(Ci),Si=0;Si<Ci;Si++)Dt[Si]=arguments[Si];var Ai=G.tokenizer[xt].apply(Ie,Dt);return Ai===!1&&(Ai=si.apply(Ie,Dt)),Ai}};for(var ot in G.tokenizer)qe(ot);B.tokenizer=Ie}(),G.walkTokens){var ge=Je.defaults.walkTokens;B.walkTokens=function(Ie){var qe=[];return qe.push(G.walkTokens.call(this,Ie)),ge&&(qe=qe.concat(ge.call(this,Ie))),qe}}Y&&(B.extensions=H),Je.setOptions(B)})},Je.walkTokens=function(re,Q){for(var Z=[],B=function(){var ge=Y.value;switch(Z=Z.concat(Q.call(Je,ge)),ge.type){case\"table\":{for(var Ie=r(ge.header),qe;!(qe=Ie()).done;){var ot=qe.value;Z=Z.concat(Je.walkTokens(ot.tokens,Q))}for(var bt=r(ge.rows),xt;!(xt=bt()).done;)for(var si=xt.value,Ci=r(si),Dt;!(Dt=Ci()).done;){var Si=Dt.value;Z=Z.concat(Je.walkTokens(Si.tokens,Q))}break}case\"list\":{Z=Z.concat(Je.walkTokens(ge.items,Q));break}default:Je.defaults.extensions&&Je.defaults.extensions.childTokens&&Je.defaults.extensions.childTokens[ge.type]?Je.defaults.extensions.childTokens[ge.type].forEach(function(Ai){Z=Z.concat(Je.walkTokens(ge[Ai],Q))}):ge.tokens&&(Z=Z.concat(Je.walkTokens(ge.tokens,Q)))}},H=r(re),Y;!(Y=H()).done;)B();return Z},Je.parseInline=function(re,Q){if(typeof re>\"u\"||re===null)throw new Error(\"marked.parseInline(): input parameter is undefined or null\");if(typeof re!=\"string\")throw new Error(\"marked.parseInline(): input parameter is of type \"+Object.prototype.toString.call(re)+\", string expected\");Q=z({},Je.defaults,Q||{}),he(Q);try{var Z=ni.lexInline(re,Q);return Q.walkTokens&&Je.walkTokens(Z,Q.walkTokens),mt.parseInline(Z,Q)}catch(B){if(B.message+=`\nPlease report this to https://github.com/markedjs/marked.`,Q.silent)return\"<p>An error occurred:</p><pre>\"+p(B.message+\"\",!0)+\"</pre>\";throw B}},Je.Parser=mt,Je.parser=mt.parse,Je.Renderer=Se,Je.TextRenderer=Qe,Je.Lexer=ni,Je.lexer=ni.lex,Je.Tokenizer=We,Je.Slugger=nt,Je.parse=Je;var Ii=Je.options,J=Je.setOptions,ie=Je.use,ye=Je.walkTokens,ze=Je.parseInline,Oe=Je,et=mt.parse,vt=ni.lex;e.Lexer=ni,e.Parser=mt,e.Renderer=Se,e.Slugger=nt,e.TextRenderer=Qe,e.Tokenizer=We,e.getDefaults=a,e.lexer=vt,e.marked=Je,e.options=Ii,e.parse=Oe,e.parseInline=ze,e.parser=et,e.setOptions=J,e.use=ie,e.walkTokens=ye,Object.defineProperty(e,\"__esModule\",{value:!0})})})();$r.Lexer||exports.Lexer;$r.Parser||exports.Parser;$r.Renderer||exports.Renderer;$r.Slugger||exports.Slugger;$r.TextRenderer||exports.TextRenderer;$r.Tokenizer||exports.Tokenizer;$r.getDefaults||exports.getDefaults;$r.lexer||exports.lexer;var Bd=$r.marked||exports.marked;$r.options||exports.options;$r.parse||exports.parse;$r.parseInline||exports.parseInline;$r.parser||exports.parser;$r.setOptions||exports.setOptions;$r.use||exports.use;$r.walkTokens||exports.walkTokens;function SWe(n){return JSON.stringify(n,xWe)}function f9(n){let e=JSON.parse(n);return e=g9(e),e}function xWe(n,e){return e instanceof RegExp?{$mid:2,source:e.source,flags:e.flags}:e}function g9(n,e=0){if(!n||e>200)return n;if(typeof n==\"object\"){switch(n.$mid){case 1:return pt.revive(n);case 2:return new RegExp(n.source,n.flags);case 17:return new Date(n.source)}if(n instanceof LM||n instanceof Uint8Array)return n;if(Array.isArray(n))for(let t=0;t<n.length;++t)n[t]=g9(n[t],e+1);else for(const t in n)Object.hasOwnProperty.call(n,t)&&(n[t]=g9(n[t],e+1))}return n}const A5=Object.freeze({image:(n,e,t)=>{let i=[],s=[];return n&&({href:n,dimensions:i}=yWe(n),s.push(`src=\"${nT(n)}\"`)),t&&s.push(`alt=\"${nT(t)}\"`),e&&s.push(`title=\"${nT(e)}\"`),i.length&&(s=s.concat(i)),\"<img \"+s.join(\" \")+\">\"},paragraph:n=>`<p>${n}</p>`,link:(n,e,t)=>typeof n!=\"string\"?\"\":(n===t&&(t=N5(t)),e=typeof e==\"string\"?nT(N5(e)):\"\",n=N5(n),n=n.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\").replace(/\"/g,\"&quot;\").replace(/'/g,\"&#39;\"),`<a href=\"${n}\" title=\"${e||n}\" draggable=\"false\">${t}</a>`)});function GM(n,e={},t={}){var i,s;const o=new be;let r=!1;const a=d$(e),l=function(b){let w;try{w=f9(decodeURIComponent(b))}catch{}return w?(w=$re(w,y=>{if(n.uris&&n.uris[y])return pt.revive(n.uris[y])}),encodeURIComponent(JSON.stringify(w))):b},c=function(b,w){const y=n.uris&&n.uris[b];let S=pt.revive(y);return w?b.startsWith(Tt.data+\":\")?b:(S||(S=pt.parse(b)),Wae.uriToBrowserUri(S).toString(!0)):!S||pt.parse(b).toString()===S.toString()?b:(S.query&&(S=S.with({query:l(S.query)})),S.toString())},d=new Bd.Renderer;d.image=A5.image,d.link=A5.link,d.paragraph=A5.paragraph;const u=[],h=[];if(e.codeBlockRendererSync?d.code=(b,w)=>{const y=h9.nextId(),S=e.codeBlockRendererSync(oJ(w),b);return h.push([y,S]),`<div class=\"code\" data-code=\"${y}\">${ox(b)}</div>`}:e.codeBlockRenderer&&(d.code=(b,w)=>{const y=h9.nextId(),S=e.codeBlockRenderer(oJ(w),b);return u.push(S.then(x=>[y,x])),`<div class=\"code\" data-code=\"${y}\">${ox(b)}</div>`}),e.actionHandler){const b=function(S){let x=S.target;if(!(x.tagName!==\"A\"&&(x=x.parentElement,!x||x.tagName!==\"A\")))try{let k=x.dataset.href;k&&(n.baseUri&&(k=R5(pt.from(n.baseUri),k)),e.actionHandler.callback(k,S))}catch(k){Mt(k)}finally{S.preventDefault()}},w=e.actionHandler.disposables.add(new ei(a,\"click\")),y=e.actionHandler.disposables.add(new ei(a,\"auxclick\"));e.actionHandler.disposables.add(Ae.any(w.event,y.event)(S=>{const x=new Kc(gt(a),S);!x.leftButton&&!x.middleButton||b(x)})),e.actionHandler.disposables.add(ce(a,\"keydown\",S=>{const x=new ln(S);!x.equals(10)&&!x.equals(3)||b(x)}))}n.supportHtml||(t.sanitizer=b=>{var w;return!((w=e.sanitizerOptions)===null||w===void 0)&&w.replaceWithPlaintext?ox(b):(n.isTrusted?b.match(/^(<span[^>]+>)|(<\\/\\s*span>)$/):void 0)?b:\"\"},t.sanitize=!0,t.silent=!0),t.renderer=d;let f=(i=n.value)!==null&&i!==void 0?i:\"\";f.length>1e5&&(f=`${f.substr(0,1e5)}…`),n.supportThemeIcons&&(f=mWe(f));let g;if(e.fillInIncompleteTokens){const b={...Bd.defaults,...t},w=Bd.lexer(f,b),y=FWe(w);g=Bd.parser(y,b)}else g=Bd.parse(f,t);n.supportThemeIcons&&(g=gm(g).map(w=>typeof w==\"string\"?w:w.outerHTML).join(\"\"));const _=new DOMParser().parseFromString(p9({isTrusted:n.isTrusted,...e.sanitizerOptions},g),\"text/html\");if(_.body.querySelectorAll(\"img, audio, video, source\").forEach(b=>{const w=b.getAttribute(\"src\");if(w){let y=w;try{n.baseUri&&(y=R5(pt.from(n.baseUri),y))}catch{}if(b.setAttribute(\"src\",c(y,!0)),e.remoteImageIsAllowed){const S=pt.parse(y);S.scheme!==Tt.file&&S.scheme!==Tt.data&&!e.remoteImageIsAllowed(S)&&b.replaceWith(ke(\"\",void 0,b.outerHTML))}}}),_.body.querySelectorAll(\"a\").forEach(b=>{const w=b.getAttribute(\"href\");if(b.setAttribute(\"href\",\"\"),!w||/^data:|javascript:/i.test(w)||/^command:/i.test(w)&&!n.isTrusted||/^command:(\\/\\/\\/)?_workbench\\.downloadResource/i.test(w))b.replaceWith(...b.childNodes);else{let y=c(w,!1);n.baseUri&&(y=R5(pt.from(n.baseUri),w)),b.dataset.href=y}}),a.innerHTML=p9({isTrusted:n.isTrusted,...e.sanitizerOptions},_.body.innerHTML),u.length>0)Promise.all(u).then(b=>{var w,y;if(r)return;const S=new Map(b),x=a.querySelectorAll(\"div[data-code]\");for(const k of x){const D=S.get((w=k.dataset.code)!==null&&w!==void 0?w:\"\");D&&yo(k,D)}(y=e.asyncRenderCallback)===null||y===void 0||y.call(e)});else if(h.length>0){const b=new Map(h),w=a.querySelectorAll(\"div[data-code]\");for(const y of w){const S=b.get((s=y.dataset.code)!==null&&s!==void 0?s:\"\");S&&yo(y,S)}}if(e.asyncRenderCallback)for(const b of a.getElementsByTagName(\"img\")){const w=o.add(ce(b,\"load\",()=>{w.dispose(),e.asyncRenderCallback()}))}return{element:a,dispose:()=>{r=!0,o.dispose()}}}function oJ(n){if(!n)return\"\";const e=n.split(/[\\s+|:|,|\\{|\\?]/,1);return e.length?e[0]:n}function R5(n,e){return/^\\w[\\w\\d+.-]*:/.test(e)?e:n.path.endsWith(\"/\")?uQ(n,e).toString():uQ(VM(n),e).toString()}const LWe=[\"area\",\"base\",\"br\",\"col\",\"command\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"];function p9(n,e){const{config:t,allowedSchemes:i}=DWe(n),s=new be;s.add(rJ(\"uponSanitizeAttribute\",(o,r)=>{var a;if(r.attrName===\"style\"||r.attrName===\"class\"){if(o.tagName===\"SPAN\"){if(r.attrName===\"style\"){r.keepAttr=/^(color\\:(#[0-9a-fA-F]+|var\\(--vscode(-[a-zA-Z]+)+\\));)?(background-color\\:(#[0-9a-fA-F]+|var\\(--vscode(-[a-zA-Z]+)+\\));)?$/.test(r.attrValue);return}else if(r.attrName===\"class\"){r.keepAttr=/^codicon codicon-[a-z\\-]+( codicon-modifier-[a-z\\-]+)?$/.test(r.attrValue);return}}r.keepAttr=!1;return}else if(o.tagName===\"INPUT\"&&((a=o.attributes.getNamedItem(\"type\"))===null||a===void 0?void 0:a.value)===\"checkbox\"){if(r.attrName===\"type\"&&r.attrValue===\"checkbox\"||r.attrName===\"disabled\"||r.attrName===\"checked\"){r.keepAttr=!0;return}r.keepAttr=!1}})),s.add(rJ(\"uponSanitizeElement\",(o,r)=>{var a,l;if(r.tagName===\"input\"&&(((a=o.attributes.getNamedItem(\"type\"))===null||a===void 0?void 0:a.value)===\"checkbox\"?o.setAttribute(\"disabled\",\"\"):n.replaceWithPlaintext||(l=o.parentElement)===null||l===void 0||l.removeChild(o)),n.replaceWithPlaintext&&!r.allowedTags[r.tagName]&&r.tagName!==\"body\"&&o.parentElement){let c,d;if(r.tagName===\"#comment\")c=`<!--${o.textContent}-->`;else{const g=LWe.includes(r.tagName),p=o.attributes.length?\" \"+Array.from(o.attributes).map(_=>`${_.name}=\"${_.value}\"`).join(\" \"):\"\";c=`<${r.tagName}${p}>`,g||(d=`</${r.tagName}>`)}const u=document.createDocumentFragment(),h=o.parentElement.ownerDocument.createTextNode(c);u.appendChild(h);const f=d?o.parentElement.ownerDocument.createTextNode(d):void 0;for(;o.firstChild;)u.appendChild(o.firstChild);f&&u.appendChild(f),o.parentElement.replaceChild(u,o)}})),s.add(FMe(i));try{return Pae(e,{...t,RETURN_TRUSTED_TYPE:!0})}finally{s.dispose()}}const kWe=[\"align\",\"autoplay\",\"alt\",\"checked\",\"class\",\"controls\",\"data-code\",\"data-href\",\"disabled\",\"draggable\",\"height\",\"href\",\"loop\",\"muted\",\"playsinline\",\"poster\",\"src\",\"style\",\"target\",\"title\",\"type\",\"width\",\"start\"];function DWe(n){var e;const t=[Tt.http,Tt.https,Tt.mailto,Tt.data,Tt.file,Tt.vscodeFileResource,Tt.vscodeRemote,Tt.vscodeRemoteResource];return n.isTrusted&&t.push(Tt.command),{config:{ALLOWED_TAGS:(e=n.allowedTags)!==null&&e!==void 0?e:[...BMe],ALLOWED_ATTR:kWe,ALLOW_UNKNOWN_PROTOCOLS:!0},allowedSchemes:t}}function IWe(n){return typeof n==\"string\"?n:EWe(n)}function EWe(n,e){var t;let i=(t=n.value)!==null&&t!==void 0?t:\"\";i.length>1e5&&(i=`${i.substr(0,1e5)}…`);const s=Bd.parse(i,{renderer:AWe.value}).replace(/&(#\\d+|[a-zA-Z]+);/g,o=>{var r;return(r=TWe.get(o))!==null&&r!==void 0?r:o});return p9({isTrusted:!1},s).toString()}const TWe=new Map([[\"&quot;\",'\"'],[\"&nbsp;\",\" \"],[\"&amp;\",\"&\"],[\"&#39;\",\"'\"],[\"&lt;\",\"<\"],[\"&gt;\",\">\"]]);function NWe(){const n=new Bd.Renderer;return n.code=e=>e,n.blockquote=e=>e,n.html=e=>\"\",n.heading=(e,t,i)=>e+`\n`,n.hr=()=>\"\",n.list=(e,t)=>e,n.listitem=e=>e+`\n`,n.paragraph=e=>e+`\n`,n.table=(e,t)=>e+t+`\n`,n.tablerow=e=>e,n.tablecell=(e,t)=>e+\" \",n.strong=e=>e,n.em=e=>e,n.codespan=e=>e,n.br=()=>`\n`,n.del=e=>e,n.image=(e,t,i)=>\"\",n.text=e=>e,n.link=(e,t,i)=>i,n}const AWe=new pu(n=>NWe());function WL(n){let e=\"\";return n.forEach(t=>{e+=t.raw}),e}function xde(n){var e,t;if(n.tokens)for(let i=n.tokens.length-1;i>=0;i--){const s=n.tokens[i];if(s.type===\"text\"){const o=s.raw.split(`\n`),r=o[o.length-1];if(r.includes(\"`\"))return HWe(n);if(r.includes(\"**\"))return KWe(n);if(r.match(/\\*\\w/))return VWe(n);if(r.match(/(^|\\s)__\\w/))return qWe(n);if(r.match(/(^|\\s)_\\w/))return zWe(n);if(RWe(r)||MWe(r)&&n.tokens.slice(0,i).some(a=>a.type===\"text\"&&a.raw.match(/\\[[^\\]]*$/))){const a=n.tokens.slice(i+1);return((e=a[0])===null||e===void 0?void 0:e.type)===\"link\"&&((t=a[1])===null||t===void 0?void 0:t.type)===\"text\"&&a[1].raw.match(/^ *\"[^\"]*$/)||r.match(/^[^\"]* +\"[^\"]*$/)?UWe(n):$We(n)}else if(r.match(/(^|\\s)\\[\\w*/))return jWe(n)}}}function RWe(n){return!!n.match(/(^|\\s)\\[.*\\]\\(\\w*/)}function MWe(n){return!!n.match(/^[^\\[]*\\]\\([^\\)]*$/)}function PWe(n){var e;const t=n.items[n.items.length-1],i=t.tokens?t.tokens[t.tokens.length-1]:void 0;let s;if((i==null?void 0:i.type)===\"text\"&&!(\"inRawBlock\"in t)&&(s=xde(i)),!s||s.type!==\"paragraph\")return;const o=WL(n.items.slice(0,-1)),r=(e=t.raw.match(/^(\\s*(-|\\d+\\.) +)/))===null||e===void 0?void 0:e[0];if(!r)return;const a=r+WL(t.tokens.slice(0,-1))+s.raw,l=Bd.lexer(o+a)[0];if(l.type===\"list\")return l}const OWe=3;function FWe(n){for(let e=0;e<OWe;e++){const t=BWe(n);if(t)n=t;else break}return n}function BWe(n){let e,t;for(e=0;e<n.length;e++){const i=n[e];let s;if(i.type===\"paragraph\"&&(s=i.raw.match(/(\\n|^)(````*)/))){const o=s[2];t=WWe(n.slice(e),o);break}if(i.type===\"paragraph\"&&i.raw.match(/(\\n|^)\\|/)){t=GWe(n.slice(e));break}if(e===n.length-1&&i.type===\"list\"){const o=PWe(i);if(o){t=[o];break}}if(e===n.length-1&&i.type===\"paragraph\"){const o=xde(i);if(o){t=[o];break}}}if(t){const i=[...n.slice(0,e),...t];return i.links=n.links,i}return null}function WWe(n,e){const t=WL(n);return Bd.lexer(t+`\n${e}`)}function HWe(n){return p_(n,\"`\")}function VWe(n){return p_(n,\"*\")}function zWe(n){return p_(n,\"_\")}function $We(n){return p_(n,\")\")}function UWe(n){return p_(n,'\")')}function jWe(n){return p_(n,\"](https://microsoft.com)\")}function KWe(n){return p_(n,\"**\")}function qWe(n){return p_(n,\"__\")}function p_(n,e){const t=WL(Array.isArray(n)?n:[n]);return Bd.lexer(t+e)[0]}function GWe(n){const e=WL(n),t=e.split(`\n`);let i,s=!1;for(let o=0;o<t.length;o++){const r=t[o].trim();if(typeof i>\"u\"&&r.match(/^\\s*\\|/)){const a=r.match(/(\\|[^\\|]+)(?=\\||$)/g);a&&(i=a.length)}else if(typeof i==\"number\")if(r.match(/^\\s*\\|/)){if(o!==t.length-1)return;s=!0}else return}if(typeof i==\"number\"&&i>0){const o=s?t.slice(0,-1).join(`\n`):e,r=!!o.match(/\\|\\s*$/),a=o+(r?\"\":\"|\")+`\n|${\" --- |\".repeat(i)}`;return Bd.lexer(a)}}function rJ(n,e){return Oae(n,e),dt(()=>Fae(n))}var ZWe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},aJ=function(n,e){return function(t,i){e(t,i,n)}},m9;let Nh=m9=class{constructor(e,t,i){this._options=e,this._languageService=t,this._openerService=i,this._onDidRenderAsync=new X,this.onDidRenderAsync=this._onDidRenderAsync.event}dispose(){this._onDidRenderAsync.dispose()}render(e,t,i){if(!e)return{element:document.createElement(\"span\"),dispose:()=>{}};const s=new be,o=s.add(GM(e,{...this._getRenderOptions(e,s),...t},i));return o.element.classList.add(\"rendered-markdown\"),{element:o.element,dispose:()=>s.dispose()}}_getRenderOptions(e,t){return{codeBlockRenderer:async(i,s)=>{var o,r,a;let l;i?l=this._languageService.getLanguageIdByLanguageName(i):this._options.editor&&(l=(o=this._options.editor.getModel())===null||o===void 0?void 0:o.getLanguageId()),l||(l=bl);const c=await R9e(this._languageService,s,l),d=document.createElement(\"span\");if(d.innerHTML=(a=(r=m9._ttpTokenizer)===null||r===void 0?void 0:r.createHTML(c))!==null&&a!==void 0?a:c,this._options.editor){const u=this._options.editor.getOption(50);So(d,u)}else this._options.codeBlockFontFamily&&(d.style.fontFamily=this._options.codeBlockFontFamily);return this._options.codeBlockFontSize!==void 0&&(d.style.fontSize=this._options.codeBlockFontSize),d},asyncRenderCallback:()=>this._onDidRenderAsync.fire(),actionHandler:{callback:i=>b$(this._openerService,i,e.isTrusted),disposables:t}}}};Nh._ttpTokenizer=Bg(\"tokenizeToString\",{createHTML(n){return n}});Nh=m9=ZWe([aJ(1,An),aJ(2,$a)],Nh);async function b$(n,e,t){try{return await n.open(e,{fromUserGesture:!0,allowContributedOpeners:!0,allowCommands:YWe(t)})}catch(i){return Mt(i),!1}}function YWe(n){return n===!0?!0:n&&Array.isArray(n.enabledCommands)?n.enabledCommands:!1}var XWe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},zy=function(n,e){return function(t,i){e(t,i,n)}};const Eu=ke;let _9=class extends Il{get _targetWindow(){return gt(this._target.targetElements[0])}get _targetDocumentElement(){return gt(this._target.targetElements[0]).document.documentElement}get isDisposed(){return this._isDisposed}get isMouseIn(){return this._lockMouseTracker.isMouseIn}get domNode(){return this._hover.containerDomNode}get onDispose(){return this._onDispose.event}get onRequestLayout(){return this._onRequestLayout.event}get anchor(){return this._hoverPosition===2?0:1}get x(){return this._x}get y(){return this._y}get isLocked(){return this._isLocked}set isLocked(e){this._isLocked!==e&&(this._isLocked=e,this._hoverContainer.classList.toggle(\"locked\",this._isLocked))}constructor(e,t,i,s,o,r){var a,l,c,d,u,h,f,g;super(),this._keybindingService=t,this._configurationService=i,this._openerService=s,this._instantiationService=o,this._accessibilityService=r,this._messageListeners=new be,this._isDisposed=!1,this._forcePosition=!1,this._x=0,this._y=0,this._isLocked=!1,this._enableFocusTraps=!1,this._addedFocusTrap=!1,this._onDispose=this._register(new X),this._onRequestLayout=this._register(new X),this._linkHandler=e.linkHandler||(S=>b$(this._openerService,S,Xd(e.content)?e.content.isTrusted:void 0)),this._target=\"targetElements\"in e.target?e.target:new QWe(e.target),this._hoverPointer=!((a=e.appearance)===null||a===void 0)&&a.showPointer?Eu(\"div.workbench-hover-pointer\"):void 0,this._hover=this._register(new c$),this._hover.containerDomNode.classList.add(\"workbench-hover\",\"fadeIn\"),!((l=e.appearance)===null||l===void 0)&&l.compact&&this._hover.containerDomNode.classList.add(\"workbench-hover\",\"compact\"),!((c=e.appearance)===null||c===void 0)&&c.skipFadeInAnimation&&this._hover.containerDomNode.classList.add(\"skip-fade-in\"),e.additionalClasses&&this._hover.containerDomNode.classList.add(...e.additionalClasses),!((d=e.position)===null||d===void 0)&&d.forcePosition&&(this._forcePosition=!0),e.trapFocus&&(this._enableFocusTraps=!0),this._hoverPosition=(h=(u=e.position)===null||u===void 0?void 0:u.hoverPosition)!==null&&h!==void 0?h:3,this.onmousedown(this._hover.containerDomNode,S=>S.stopPropagation()),this.onkeydown(this._hover.containerDomNode,S=>{S.equals(9)&&this.dispose()}),this._register(ce(this._targetWindow,\"blur\",()=>this.dispose()));const p=Eu(\"div.hover-row.markdown-hover\"),_=Eu(\"div.hover-contents\");if(typeof e.content==\"string\")_.textContent=e.content,_.style.whiteSpace=\"pre-wrap\";else if(co(e.content))_.appendChild(e.content),_.classList.add(\"html-hover-contents\");else{const S=e.content,x=this._instantiationService.createInstance(Nh,{codeBlockFontFamily:this._configurationService.getValue(\"editor\").fontFamily||ra.fontFamily}),{element:k}=x.render(S,{actionHandler:{callback:D=>this._linkHandler(D),disposables:this._messageListeners},asyncRenderCallback:()=>{_.classList.add(\"code-hover-contents\"),this.layout(),this._onRequestLayout.fire()}});_.appendChild(k)}if(p.appendChild(_),this._hover.contentsDomNode.appendChild(p),e.actions&&e.actions.length>0){const S=Eu(\"div.hover-row.status-bar\"),x=Eu(\"div.actions\");e.actions.forEach(k=>{const D=this._keybindingService.lookupKeybinding(k.commandId),I=D?D.getLabel():null;jM.render(x,{label:k.label,commandId:k.commandId,run:N=>{k.run(N),this.dispose()},iconClass:k.iconClass},I)}),S.appendChild(x),this._hover.containerDomNode.appendChild(S)}this._hoverContainer=Eu(\"div.workbench-hover-container\"),this._hoverPointer&&this._hoverContainer.appendChild(this._hoverPointer),this._hoverContainer.appendChild(this._hover.containerDomNode);let b;if(e.actions&&e.actions.length>0?b=!1:((f=e.persistence)===null||f===void 0?void 0:f.hideOnHover)===void 0?b=typeof e.content==\"string\"||Xd(e.content)&&!e.content.value.includes(\"](\")&&!e.content.value.includes(\"</a>\"):b=e.persistence.hideOnHover,b&&(!((g=e.appearance)===null||g===void 0)&&g.showHoverHint)){const S=Eu(\"div.hover-row.status-bar\"),x=Eu(\"div.info\");x.textContent=v(\"hoverhint\",\"Hold {0} key to mouse over\",Xt?\"Option\":\"Alt\"),S.appendChild(x),this._hover.containerDomNode.appendChild(S)}const w=[...this._target.targetElements];b||w.push(this._hoverContainer);const y=this._register(new lJ(w));if(this._register(y.onMouseOut(()=>{this._isLocked||this.dispose()})),b){const S=[...this._target.targetElements,this._hoverContainer];this._lockMouseTracker=this._register(new lJ(S)),this._register(this._lockMouseTracker.onMouseOut(()=>{this._isLocked||this.dispose()}))}else this._lockMouseTracker=y}addFocusTrap(){if(!this._enableFocusTraps||this._addedFocusTrap)return;this._addedFocusTrap=!0;const e=this._hover.containerDomNode,t=this.findLastFocusableChild(this._hover.containerDomNode);if(t){const i=oz(this._hoverContainer,Eu(\"div\")),s=we(this._hoverContainer,Eu(\"div\"));i.tabIndex=0,s.tabIndex=0,this._register(ce(s,\"focus\",o=>{e.focus(),o.preventDefault()})),this._register(ce(i,\"focus\",o=>{t.focus(),o.preventDefault()}))}}findLastFocusableChild(e){if(e.hasChildNodes())for(let t=0;t<e.childNodes.length;t++){const i=e.childNodes.item(e.childNodes.length-t-1);if(i.nodeType===i.ELEMENT_NODE){const o=i;if(typeof o.tabIndex==\"number\"&&o.tabIndex>=0)return o}const s=this.findLastFocusableChild(i);if(s)return s}}render(e){var t;e.appendChild(this._hoverContainer);const s=this._hoverContainer.contains(this._hoverContainer.ownerDocument.activeElement)&&cde(this._configurationService.getValue(\"accessibility.verbosity.hover\")===!0&&this._accessibilityService.isScreenReaderOptimized(),(t=this._keybindingService.lookupKeybinding(\"editor.action.accessibleView\"))===null||t===void 0?void 0:t.getAriaLabel());s&&Ih(s),this.layout(),this.addFocusTrap()}layout(){this._hover.containerDomNode.classList.remove(\"right-aligned\"),this._hover.contentsDomNode.style.maxHeight=\"\";const e=d=>{const u=$ae(d),h=d.getBoundingClientRect();return{top:h.top*u,bottom:h.bottom*u,right:h.right*u,left:h.left*u}},t=this._target.targetElements.map(d=>e(d)),{top:i,right:s,bottom:o,left:r}=t[0],a=s-r,l=o-i,c={top:i,right:s,bottom:o,left:r,width:a,height:l,center:{x:r+a/2,y:i+l/2}};if(this.adjustHorizontalHoverPosition(c),this.adjustVerticalHoverPosition(c),this.adjustHoverMaxHeight(c),this._hoverContainer.style.padding=\"\",this._hoverContainer.style.margin=\"\",this._hoverPointer){switch(this._hoverPosition){case 1:c.left+=3,c.right+=3,this._hoverContainer.style.paddingLeft=\"3px\",this._hoverContainer.style.marginLeft=\"-3px\";break;case 0:c.left-=3,c.right-=3,this._hoverContainer.style.paddingRight=\"3px\",this._hoverContainer.style.marginRight=\"-3px\";break;case 2:c.top+=3,c.bottom+=3,this._hoverContainer.style.paddingTop=\"3px\",this._hoverContainer.style.marginTop=\"-3px\";break;case 3:c.top-=3,c.bottom-=3,this._hoverContainer.style.paddingBottom=\"3px\",this._hoverContainer.style.marginBottom=\"-3px\";break}c.center.x=c.left+a/2,c.center.y=c.top+l/2}this.computeXCordinate(c),this.computeYCordinate(c),this._hoverPointer&&(this._hoverPointer.classList.remove(\"top\"),this._hoverPointer.classList.remove(\"left\"),this._hoverPointer.classList.remove(\"right\"),this._hoverPointer.classList.remove(\"bottom\"),this.setHoverPointerPosition(c)),this._hover.onContentsChanged()}computeXCordinate(e){const t=this._hover.containerDomNode.clientWidth+2;this._target.x!==void 0?this._x=this._target.x:this._hoverPosition===1?this._x=e.right:this._hoverPosition===0?this._x=e.left-t:(this._hoverPointer?this._x=e.center.x-this._hover.containerDomNode.clientWidth/2:this._x=e.left,this._x+t>=this._targetDocumentElement.clientWidth&&(this._hover.containerDomNode.classList.add(\"right-aligned\"),this._x=Math.max(this._targetDocumentElement.clientWidth-t-2,this._targetDocumentElement.clientLeft))),this._x<this._targetDocumentElement.clientLeft&&(this._x=e.left+2)}computeYCordinate(e){this._target.y!==void 0?this._y=this._target.y:this._hoverPosition===3?this._y=e.top:this._hoverPosition===2?this._y=e.bottom-2:this._hoverPointer?this._y=e.center.y+this._hover.containerDomNode.clientHeight/2:this._y=e.bottom,this._y>this._targetWindow.innerHeight&&(this._y=e.bottom)}adjustHorizontalHoverPosition(e){if(this._target.x!==void 0)return;const t=this._hoverPointer?3:0;if(this._forcePosition){const i=t+2;this._hoverPosition===1?this._hover.containerDomNode.style.maxWidth=`${this._targetDocumentElement.clientWidth-e.right-i}px`:this._hoverPosition===0&&(this._hover.containerDomNode.style.maxWidth=`${e.left-i}px`);return}this._hoverPosition===1?this._targetDocumentElement.clientWidth-e.right<this._hover.containerDomNode.clientWidth+t&&(e.left>=this._hover.containerDomNode.clientWidth+t?this._hoverPosition=0:this._hoverPosition=2):this._hoverPosition===0&&(e.left<this._hover.containerDomNode.clientWidth+t&&(this._targetDocumentElement.clientWidth-e.right>=this._hover.containerDomNode.clientWidth+t?this._hoverPosition=1:this._hoverPosition=2),e.left-this._hover.containerDomNode.clientWidth-t<=this._targetDocumentElement.clientLeft&&(this._hoverPosition=1))}adjustVerticalHoverPosition(e){if(this._target.y!==void 0||this._forcePosition)return;const t=this._hoverPointer?3:0;this._hoverPosition===3?e.top-this._hover.containerDomNode.clientHeight-t<0&&(this._hoverPosition=2):this._hoverPosition===2&&e.bottom+this._hover.containerDomNode.clientHeight+t>this._targetWindow.innerHeight&&(this._hoverPosition=3)}adjustHoverMaxHeight(e){let t=this._targetWindow.innerHeight/2;if(this._forcePosition){const i=(this._hoverPointer?3:0)+2;this._hoverPosition===3?t=Math.min(t,e.top-i):this._hoverPosition===2&&(t=Math.min(t,this._targetWindow.innerHeight-e.bottom-i))}if(this._hover.containerDomNode.style.maxHeight=`${t}px`,this._hover.contentsDomNode.clientHeight<this._hover.contentsDomNode.scrollHeight){const i=`${this._hover.scrollbar.options.verticalScrollbarSize}px`;this._hover.contentsDomNode.style.paddingRight!==i&&(this._hover.contentsDomNode.style.paddingRight=i)}}setHoverPointerPosition(e){if(this._hoverPointer)switch(this._hoverPosition){case 0:case 1:{this._hoverPointer.classList.add(this._hoverPosition===0?\"right\":\"left\");const t=this._hover.containerDomNode.clientHeight;t>e.height?this._hoverPointer.style.top=`${e.center.y-(this._y-t)-3}px`:this._hoverPointer.style.top=`${Math.round(t/2)-3}px`;break}case 3:case 2:{this._hoverPointer.classList.add(this._hoverPosition===3?\"bottom\":\"top\");const t=this._hover.containerDomNode.clientWidth;let i=Math.round(t/2)-3;const s=this._x+i;(s<e.left||s>e.right)&&(i=e.center.x-this._x-3),this._hoverPointer.style.left=`${i}px`;break}}}focus(){this._hover.containerDomNode.focus()}dispose(){this._isDisposed||(this._onDispose.fire(),this._hoverContainer.remove(),this._messageListeners.dispose(),this._target.dispose(),super.dispose()),this._isDisposed=!0}};_9=XWe([zy(1,Li),zy(2,qt),zy(3,$a),zy(4,ht),zy(5,Ha)],_9);class lJ extends Il{get onMouseOut(){return this._onMouseOut.event}get isMouseIn(){return this._isMouseIn}constructor(e){super(),this._elements=e,this._isMouseIn=!0,this._onMouseOut=this._register(new X),this._elements.forEach(t=>this.onmouseover(t,()=>this._onTargetMouseOver(t))),this._elements.forEach(t=>this.onmouseleave(t,()=>this._onTargetMouseLeave(t)))}_onTargetMouseOver(e){this._isMouseIn=!0,this._clearEvaluateMouseStateTimeout(e)}_onTargetMouseLeave(e){this._isMouseIn=!1,this._evaluateMouseState(e)}_evaluateMouseState(e){this._clearEvaluateMouseStateTimeout(e),this._mouseTimeout=gt(e).setTimeout(()=>this._fireIfMouseOutside(),0)}_clearEvaluateMouseStateTimeout(e){this._mouseTimeout&&(gt(e).clearTimeout(this._mouseTimeout),this._mouseTimeout=void 0)}_fireIfMouseOutside(){this._isMouseIn||this._onMouseOut.fire()}}class QWe{constructor(e){this._element=e,this.targetElements=[this._element]}dispose(){}}var Ho;(function(n){function e(o,r){if(o.start>=r.end||r.start>=o.end)return{start:0,end:0};const a=Math.max(o.start,r.start),l=Math.min(o.end,r.end);return l-a<=0?{start:0,end:0}:{start:a,end:l}}n.intersect=e;function t(o){return o.end-o.start<=0}n.isEmpty=t;function i(o,r){return!t(e(o,r))}n.intersects=i;function s(o,r){const a=[],l={start:o.start,end:Math.min(r.start,o.end)},c={start:Math.max(r.end,o.start),end:o.end};return t(l)||a.push(l),t(c)||a.push(c),a}n.relativeComplement=s})(Ho||(Ho={}));function JWe(n){const e=n;return!!e&&typeof e.x==\"number\"&&typeof e.y==\"number\"}var Qp;(function(n){n[n.AVOID=0]=\"AVOID\",n[n.ALIGN=1]=\"ALIGN\"})(Qp||(Qp={}));function I1(n,e,t){const i=t.mode===Qp.ALIGN?t.offset:t.offset+t.size,s=t.mode===Qp.ALIGN?t.offset+t.size:t.offset;return t.position===0?e<=n-i?i:e<=s?s-e:Math.max(n-e,0):e<=s?s-e:e<=n-i?i:0}class GC extends ne{constructor(e,t){super(),this.container=null,this.useFixedPosition=!1,this.useShadowDOM=!1,this.delegate=null,this.toDisposeOnClean=ne.None,this.toDisposeOnSetContainer=ne.None,this.shadowRoot=null,this.shadowRootHostElement=null,this.view=ke(\".context-view\"),Lr(this.view),this.setContainer(e,t),this._register(dt(()=>this.setContainer(null,1)))}setContainer(e,t){var i;this.useFixedPosition=t!==1;const s=this.useShadowDOM;if(this.useShadowDOM=t===3,!(e===this.container&&s===this.useShadowDOM)&&(this.container&&(this.toDisposeOnSetContainer.dispose(),this.shadowRoot?(this.shadowRoot.removeChild(this.view),this.shadowRoot=null,(i=this.shadowRootHostElement)===null||i===void 0||i.remove(),this.shadowRootHostElement=null):this.container.removeChild(this.view),this.container=null),e)){if(this.container=e,this.useShadowDOM){this.shadowRootHostElement=ke(\".shadow-root-host\"),this.container.appendChild(this.shadowRootHostElement),this.shadowRoot=this.shadowRootHostElement.attachShadow({mode:\"open\"});const r=document.createElement(\"style\");r.textContent=eHe,this.shadowRoot.appendChild(r),this.shadowRoot.appendChild(this.view),this.shadowRoot.appendChild(ke(\"slot\"))}else this.container.appendChild(this.view);const o=new be;GC.BUBBLE_UP_EVENTS.forEach(r=>{o.add(rs(this.container,r,a=>{this.onDOMEvent(a,!1)}))}),GC.BUBBLE_DOWN_EVENTS.forEach(r=>{o.add(rs(this.container,r,a=>{this.onDOMEvent(a,!0)},!0))}),this.toDisposeOnSetContainer=o}}show(e){var t,i,s;this.isVisible()&&this.hide(),wo(this.view),this.view.className=\"context-view monaco-component\",this.view.style.top=\"0px\",this.view.style.left=\"0px\",this.view.style.zIndex=`${2575+((t=e.layer)!==null&&t!==void 0?t:0)}`,this.view.style.position=this.useFixedPosition?\"fixed\":\"absolute\",ka(this.view),this.toDisposeOnClean=e.render(this.view)||ne.None,this.delegate=e,this.doLayout(),(s=(i=this.delegate).focus)===null||s===void 0||s.call(i)}getViewElement(){return this.view}layout(){var e,t;if(this.isVisible()){if(this.delegate.canRelayout===!1&&!(iu&&XV.pointerEvents)){this.hide();return}(t=(e=this.delegate)===null||e===void 0?void 0:e.layout)===null||t===void 0||t.call(e),this.doLayout()}}doLayout(){if(!this.isVisible())return;const e=this.delegate.getAnchor();let t;if(co(e)){const h=bs(e),f=$ae(e);t={top:h.top*f,left:h.left*f,width:h.width*f,height:h.height*f}}else JWe(e)?t={top:e.y,left:e.x,width:e.width||1,height:e.height||2}:t={top:e.posy,left:e.posx,width:2,height:2};const i=Sa(this.view),s=Zf(this.view),o=this.delegate.anchorPosition||0,r=this.delegate.anchorAlignment||0,a=this.delegate.anchorAxisAlignment||0;let l,c;const d=uN();if(a===0){const h={offset:t.top-d.pageYOffset,size:t.height,position:o===0?0:1},f={offset:t.left,size:t.width,position:r===0?0:1,mode:Qp.ALIGN};l=I1(d.innerHeight,s,h)+d.pageYOffset,Ho.intersects({start:l,end:l+s},{start:h.offset,end:h.offset+h.size})&&(f.mode=Qp.AVOID),c=I1(d.innerWidth,i,f)}else{const h={offset:t.left,size:t.width,position:r===0?0:1},f={offset:t.top,size:t.height,position:o===0?0:1,mode:Qp.ALIGN};c=I1(d.innerWidth,i,h),Ho.intersects({start:c,end:c+i},{start:h.offset,end:h.offset+h.size})&&(f.mode=Qp.AVOID),l=I1(d.innerHeight,s,f)+d.pageYOffset}this.view.classList.remove(\"top\",\"bottom\",\"left\",\"right\"),this.view.classList.add(o===0?\"bottom\":\"top\"),this.view.classList.add(r===0?\"left\":\"right\"),this.view.classList.toggle(\"fixed\",this.useFixedPosition);const u=bs(this.container);this.view.style.top=`${l-(this.useFixedPosition?bs(this.view).top:u.top)}px`,this.view.style.left=`${c-(this.useFixedPosition?bs(this.view).left:u.left)}px`,this.view.style.width=\"initial\"}hide(e){const t=this.delegate;this.delegate=null,t!=null&&t.onHide&&t.onHide(e),this.toDisposeOnClean.dispose(),Lr(this.view)}isVisible(){return!!this.delegate}onDOMEvent(e,t){this.delegate&&(this.delegate.onDOMEvent?this.delegate.onDOMEvent(e,gt(e).document.activeElement):t&&!Zs(e.target,this.container)&&this.hide())}dispose(){this.hide(),super.dispose()}}GC.BUBBLE_UP_EVENTS=[\"click\",\"keydown\",\"focus\",\"blur\"];GC.BUBBLE_DOWN_EVENTS=[\"click\"];const eHe=`\n\t:host {\n\t\tall: initial; /* 1st rule so subsequent properties are reset. */\n\t}\n\n\t.codicon[class*='codicon-'] {\n\t\tfont: normal normal normal 16px/1 codicon;\n\t\tdisplay: inline-block;\n\t\ttext-decoration: none;\n\t\ttext-rendering: auto;\n\t\ttext-align: center;\n\t\t-webkit-font-smoothing: antialiased;\n\t\t-moz-osx-font-smoothing: grayscale;\n\t\tuser-select: none;\n\t\t-webkit-user-select: none;\n\t\t-ms-user-select: none;\n\t}\n\n\t:host {\n\t\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe WPC\", \"Segoe UI\", \"HelveticaNeue-Light\", system-ui, \"Ubuntu\", \"Droid Sans\", sans-serif;\n\t}\n\n\t:host-context(.mac) { font-family: -apple-system, BlinkMacSystemFont, sans-serif; }\n\t:host-context(.mac:lang(zh-Hans)) { font-family: -apple-system, BlinkMacSystemFont, \"PingFang SC\", \"Hiragino Sans GB\", sans-serif; }\n\t:host-context(.mac:lang(zh-Hant)) { font-family: -apple-system, BlinkMacSystemFont, \"PingFang TC\", sans-serif; }\n\t:host-context(.mac:lang(ja)) { font-family: -apple-system, BlinkMacSystemFont, \"Hiragino Kaku Gothic Pro\", sans-serif; }\n\t:host-context(.mac:lang(ko)) { font-family: -apple-system, BlinkMacSystemFont, \"Nanum Gothic\", \"Apple SD Gothic Neo\", \"AppleGothic\", sans-serif; }\n\n\t:host-context(.windows) { font-family: \"Segoe WPC\", \"Segoe UI\", sans-serif; }\n\t:host-context(.windows:lang(zh-Hans)) { font-family: \"Segoe WPC\", \"Segoe UI\", \"Microsoft YaHei\", sans-serif; }\n\t:host-context(.windows:lang(zh-Hant)) { font-family: \"Segoe WPC\", \"Segoe UI\", \"Microsoft Jhenghei\", sans-serif; }\n\t:host-context(.windows:lang(ja)) { font-family: \"Segoe WPC\", \"Segoe UI\", \"Yu Gothic UI\", \"Meiryo UI\", sans-serif; }\n\t:host-context(.windows:lang(ko)) { font-family: \"Segoe WPC\", \"Segoe UI\", \"Malgun Gothic\", \"Dotom\", sans-serif; }\n\n\t:host-context(.linux) { font-family: system-ui, \"Ubuntu\", \"Droid Sans\", sans-serif; }\n\t:host-context(.linux:lang(zh-Hans)) { font-family: system-ui, \"Ubuntu\", \"Droid Sans\", \"Source Han Sans SC\", \"Source Han Sans CN\", \"Source Han Sans\", sans-serif; }\n\t:host-context(.linux:lang(zh-Hant)) { font-family: system-ui, \"Ubuntu\", \"Droid Sans\", \"Source Han Sans TC\", \"Source Han Sans TW\", \"Source Han Sans\", sans-serif; }\n\t:host-context(.linux:lang(ja)) { font-family: system-ui, \"Ubuntu\", \"Droid Sans\", \"Source Han Sans J\", \"Source Han Sans JP\", \"Source Han Sans\", sans-serif; }\n\t:host-context(.linux:lang(ko)) { font-family: system-ui, \"Ubuntu\", \"Droid Sans\", \"Source Han Sans K\", \"Source Han Sans JR\", \"Source Han Sans\", \"UnDotum\", \"FBaekmuk Gulim\", sans-serif; }\n`;var tHe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},iHe=function(n,e){return function(t,i){e(t,i,n)}};let _A=class extends ne{constructor(e){super(),this.layoutService=e,this.contextView=this._register(new GC(this.layoutService.mainContainer,1)),this.layout(),this._register(e.onDidLayoutContainer(()=>this.layout()))}showContextView(e,t,i){let s;t?t===this.layoutService.getContainer(gt(t))?s=1:i?s=3:s=2:s=1,this.contextView.setContainer(t??this.layoutService.activeContainer,s),this.contextView.show(e);const o={close:()=>{this.openContextView===o&&this.hideContextView()}};return this.openContextView=o,o}layout(){this.contextView.layout()}hideContextView(e){this.contextView.hide(e),this.openContextView=void 0}};_A=tHe([iHe(0,g_)],_A);class nHe extends _A{getContextViewElement(){return this.contextView.getViewElement()}}class sHe{constructor(e,t,i){this.hoverDelegate=e,this.target=t,this.fadeInAnimation=i}async update(e,t,i){var s;if(this._cancellationTokenSource&&(this._cancellationTokenSource.dispose(!0),this._cancellationTokenSource=void 0),this.isDisposed)return;let o;if(e===void 0||Pr(e)||co(e))o=e;else if(!nL(e.markdown))o=(s=e.markdown)!==null&&s!==void 0?s:e.markdownNotSupportedFallback;else{this._hoverWidget||this.show(v(\"iconLabel.loading\",\"Loading...\"),t,i),this._cancellationTokenSource=new $n;const r=this._cancellationTokenSource.token;if(o=await e.markdown(r),o===void 0&&(o=e.markdownNotSupportedFallback),this.isDisposed||r.isCancellationRequested)return}this.show(o,t,i)}show(e,t,i){const s=this._hoverWidget;if(this.hasContent(e)){const o={content:e,target:this.target,appearance:{showPointer:this.hoverDelegate.placement===\"element\",skipFadeInAnimation:!this.fadeInAnimation||!!s},position:{hoverPosition:2},...i};this._hoverWidget=this.hoverDelegate.showHover(o,t)}s==null||s.dispose()}hasContent(e){return e?Xd(e)?!!e.value:!0:!1}get isDisposed(){var e;return(e=this._hoverWidget)===null||e===void 0?void 0:e.isDisposed}dispose(){var e,t;(e=this._hoverWidget)===null||e===void 0||e.dispose(),(t=this._cancellationTokenSource)===null||t===void 0||t.dispose(!0),this._cancellationTokenSource=void 0}}var oHe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},$y=function(n,e){return function(t,i){e(t,i,n)}};let v9=class extends ne{constructor(e,t,i,s,o){super(),this._instantiationService=e,this._keybindingService=i,this._layoutService=s,this._accessibilityService=o,this._existingHovers=new Map,t.onDidShowContextMenu(()=>this.hideHover()),this._contextViewHandler=this._register(new _A(this._layoutService))}showHover(e,t,i){var s,o,r,a;if(cJ(this._currentHoverOptions)===cJ(e)||this._currentHover&&(!((o=(s=this._currentHoverOptions)===null||s===void 0?void 0:s.persistence)===null||o===void 0)&&o.sticky))return;this._currentHoverOptions=e,this._lastHoverOptions=e;const l=e.trapFocus||this._accessibilityService.isScreenReaderOptimized(),c=Ao();i||(l&&c?c.classList.contains(\"monaco-hover\")||(this._lastFocusedElementBeforeOpen=c):this._lastFocusedElementBeforeOpen=void 0);const d=new be,u=this._instantiationService.createInstance(_9,e);if(!((r=e.persistence)===null||r===void 0)&&r.sticky&&(u.isLocked=!0),u.onDispose(()=>{var h,f;((h=this._currentHover)===null||h===void 0?void 0:h.domNode)&&jae(this._currentHover.domNode)&&((f=this._lastFocusedElementBeforeOpen)===null||f===void 0||f.focus()),this._currentHoverOptions===e&&(this._currentHoverOptions=void 0),d.dispose()},void 0,d),!e.container){const h=co(e.target)?e.target:e.target.targetElements[0];e.container=this._layoutService.getContainer(gt(h))}if(this._contextViewHandler.showContextView(new rHe(u,t),e.container),u.onRequestLayout(()=>this._contextViewHandler.layout(),void 0,d),!((a=e.persistence)===null||a===void 0)&&a.sticky)d.add(ce(gt(e.container).document,Le.MOUSE_DOWN,h=>{Zs(h.target,u.domNode)||this.doHideHover()}));else{if(\"targetElements\"in e.target)for(const f of e.target.targetElements)d.add(ce(f,Le.CLICK,()=>this.hideHover()));else d.add(ce(e.target,Le.CLICK,()=>this.hideHover()));const h=Ao();if(h){const f=gt(h).document;d.add(ce(h,Le.KEY_DOWN,g=>{var p;return this._keyDown(g,u,!!(!((p=e.persistence)===null||p===void 0)&&p.hideOnKeyDown))})),d.add(ce(f,Le.KEY_DOWN,g=>{var p;return this._keyDown(g,u,!!(!((p=e.persistence)===null||p===void 0)&&p.hideOnKeyDown))})),d.add(ce(h,Le.KEY_UP,g=>this._keyUp(g,u))),d.add(ce(f,Le.KEY_UP,g=>this._keyUp(g,u)))}}if(\"IntersectionObserver\"in Ji){const h=new IntersectionObserver(g=>this._intersectionChange(g,u),{threshold:0}),f=\"targetElements\"in e.target?e.target.targetElements[0]:e.target;h.observe(f),d.add(dt(()=>h.disconnect()))}return this._currentHover=u,u}hideHover(){var e;!((e=this._currentHover)===null||e===void 0)&&e.isLocked||!this._currentHoverOptions||this.doHideHover()}doHideHover(){this._currentHover=void 0,this._currentHoverOptions=void 0,this._contextViewHandler.hideContextView()}_intersectionChange(e,t){e[e.length-1].isIntersecting||t.dispose()}showAndFocusLastHover(){this._lastHoverOptions&&this.showHover(this._lastHoverOptions,!0,!0)}_keyDown(e,t,i){var s,o;if(e.key===\"Alt\"){t.isLocked=!0;return}const r=new ln(e);this._keybindingService.resolveKeyboardEvent(r).getSingleModifierDispatchChords().some(l=>!!l)||this._keybindingService.softDispatch(r,r.target).kind!==0||i&&(!(!((s=this._currentHoverOptions)===null||s===void 0)&&s.trapFocus)||e.key!==\"Tab\")&&(this.hideHover(),(o=this._lastFocusedElementBeforeOpen)===null||o===void 0||o.focus())}_keyUp(e,t){var i;e.key===\"Alt\"&&(t.isLocked=!1,t.isMouseIn||(this.hideHover(),(i=this._lastFocusedElementBeforeOpen)===null||i===void 0||i.focus()))}setupUpdatableHover(e,t,i,s){t.setAttribute(\"custom-hover\",\"true\"),t.title!==\"\"&&(console.warn(\"HTML element already has a title attribute, which will conflict with the custom hover. Please remove the title attribute.\"),console.trace(\"Stack trace:\",t.title),t.title=\"\");let o,r;const a=(y,S)=>{var x;const k=r!==void 0;y&&(r==null||r.dispose(),r=void 0),S&&(o==null||o.dispose(),o=void 0),k&&((x=e.onDidHideHover)===null||x===void 0||x.call(e),r=void 0)},l=(y,S,x,k)=>new cd(async()=>{(!r||r.isDisposed)&&(r=new sHe(e,x||t,y>0),await r.update(typeof i==\"function\"?i():i,S,{...s,trapFocus:k}))},y);let c=!1;const d=ce(t,Le.MOUSE_DOWN,()=>{c=!0,a(!0,!0)},!0),u=ce(t,Le.MOUSE_UP,()=>{c=!1},!0),h=ce(t,Le.MOUSE_LEAVE,y=>{c=!1,a(!1,y.fromElement===t)},!0),f=y=>{if(o)return;const S=new be,x={targetElements:[t],dispose:()=>{}};if(e.placement===void 0||e.placement===\"mouse\"){const k=D=>{x.x=D.x+10,co(D.target)&&dJ(D.target,t)!==t&&a(!0,!0)};S.add(ce(t,Le.MOUSE_MOVE,k,!0))}o=S,!(co(y.target)&&dJ(y.target,t)!==t)&&S.add(l(e.delay,!1,x))},g=ce(t,Le.MOUSE_OVER,f,!0),p=()=>{if(c||o)return;const y={targetElements:[t],dispose:()=>{}},S=new be,x=()=>a(!0,!0);S.add(ce(t,Le.BLUR,x,!0)),S.add(l(e.delay,!1,y)),o=S};let _;const b=t.tagName.toLowerCase();b!==\"input\"&&b!==\"textarea\"&&(_=ce(t,Le.FOCUS,p,!0));const w={show:y=>{a(!1,!0),l(0,y,void 0,y)},hide:()=>{a(!0,!0)},update:async(y,S)=>{i=y,await(r==null?void 0:r.update(i,void 0,S))},dispose:()=>{this._existingHovers.delete(t),g.dispose(),h.dispose(),d.dispose(),u.dispose(),_==null||_.dispose(),a(!0,!0)}};return this._existingHovers.set(t,w),w}triggerUpdatableHover(e){const t=this._existingHovers.get(e);t&&t.show(!0)}dispose(){this._existingHovers.forEach(e=>e.dispose()),super.dispose()}};v9=oHe([$y(0,ht),$y(1,za),$y(2,Li),$y(3,g_),$y(4,Ha)],v9);function cJ(n){var e;if(n!==void 0)return(e=n==null?void 0:n.id)!==null&&e!==void 0?e:n}class rHe{get anchorPosition(){return this._hover.anchor}constructor(e,t=!1){this._hover=e,this._focus=t,this.layer=1}render(e){return this._hover.render(e),this._focus&&this._hover.focus(),this._hover}getAnchor(){return{x:this._hover.x,y:this._hover.y}}layout(){this._hover.layout()}}function dJ(n,e){for(e=e??gt(n).document.body;!n.hasAttribute(\"custom-hover\")&&n!==e;)n=n.parentElement;return n}ai($h,v9,1);mc((n,e)=>{const t=n.getColor(zle);t&&(e.addRule(`.monaco-workbench .workbench-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${t.transparent(.5)}; }`),e.addRule(`.monaco-workbench .workbench-hover hr { border-top: 1px solid ${t.transparent(.5)}; }`))});const ED=Jt(\"IWorkspaceEditService\");class C${constructor(e){this.metadata=e}static convert(e){return e.edits.map(t=>{if(pm.is(t))return pm.lift(t);if(aC.is(t))return aC.lift(t);throw new Error(\"Unsupported edit\")})}}class pm extends C${static is(e){return e instanceof pm?!0:Er(e)&&pt.isUri(e.resource)&&Er(e.textEdit)}static lift(e){return e instanceof pm?e:new pm(e.resource,e.textEdit,e.versionId,e.metadata)}constructor(e,t,i=void 0,s){super(s),this.resource=e,this.textEdit=t,this.versionId=i}}class aC extends C${static is(e){return e instanceof aC?!0:Er(e)&&(!!e.newResource||!!e.oldResource)}static lift(e){return e instanceof aC?e:new aC(e.oldResource,e.newResource,e.options,e.metadata)}constructor(e,t,i={},s){super(s),this.oldResource=e,this.newResource=t,this.options=i}}const Wo={enableSplitViewResizing:!0,renderSideBySide:!0,renderMarginRevertIcon:!0,renderGutterMenu:!0,maxComputationTime:5e3,maxFileSize:50,ignoreTrimWhitespace:!0,renderIndicators:!0,originalEditable:!1,diffCodeLens:!1,renderOverviewRuler:!0,diffWordWrap:\"inherit\",diffAlgorithm:\"advanced\",accessibilityVerbose:!1,experimental:{showMoves:!1,showEmptyDecorations:!0},hideUnchangedRegions:{enabled:!1,contextLineCount:3,minimumLineCount:3,revealLineCount:20},isInEmbeddedEditor:!1,onlyShowAccessibleDiffViewer:!1,renderSideBySideInlineBreakpoint:900,useInlineViewWhenSpaceIsLimited:!0},ZM=Object.freeze({id:\"editor\",order:5,type:\"object\",title:v(\"editorConfigurationTitle\",\"Editor\"),scope:5}),vA={...ZM,properties:{\"editor.tabSize\":{type:\"number\",default:zo.tabSize,minimum:1,markdownDescription:v(\"tabSize\",\"The number of spaces a tab is equal to. This setting is overridden based on the file contents when {0} is on.\",\"`#editor.detectIndentation#`\")},\"editor.indentSize\":{anyOf:[{type:\"string\",enum:[\"tabSize\"]},{type:\"number\",minimum:1}],default:\"tabSize\",markdownDescription:v(\"indentSize\",'The number of spaces used for indentation or `\"tabSize\"` to use the value from `#editor.tabSize#`. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.')},\"editor.insertSpaces\":{type:\"boolean\",default:zo.insertSpaces,markdownDescription:v(\"insertSpaces\",\"Insert spaces when pressing `Tab`. This setting is overridden based on the file contents when {0} is on.\",\"`#editor.detectIndentation#`\")},\"editor.detectIndentation\":{type:\"boolean\",default:zo.detectIndentation,markdownDescription:v(\"detectIndentation\",\"Controls whether {0} and {1} will be automatically detected when a file is opened based on the file contents.\",\"`#editor.tabSize#`\",\"`#editor.insertSpaces#`\")},\"editor.trimAutoWhitespace\":{type:\"boolean\",default:zo.trimAutoWhitespace,description:v(\"trimAutoWhitespace\",\"Remove trailing auto inserted whitespace.\")},\"editor.largeFileOptimizations\":{type:\"boolean\",default:zo.largeFileOptimizations,description:v(\"largeFileOptimizations\",\"Special handling for large files to disable certain memory intensive features.\")},\"editor.wordBasedSuggestions\":{enum:[\"off\",\"currentDocument\",\"matchingDocuments\",\"allDocuments\"],default:\"matchingDocuments\",enumDescriptions:[v(\"wordBasedSuggestions.off\",\"Turn off Word Based Suggestions.\"),v(\"wordBasedSuggestions.currentDocument\",\"Only suggest words from the active document.\"),v(\"wordBasedSuggestions.matchingDocuments\",\"Suggest words from all open documents of the same language.\"),v(\"wordBasedSuggestions.allDocuments\",\"Suggest words from all open documents.\")],description:v(\"wordBasedSuggestions\",\"Controls whether completions should be computed based on words in the document and from which documents they are computed.\")},\"editor.semanticHighlighting.enabled\":{enum:[!0,!1,\"configuredByTheme\"],enumDescriptions:[v(\"semanticHighlighting.true\",\"Semantic highlighting enabled for all color themes.\"),v(\"semanticHighlighting.false\",\"Semantic highlighting disabled for all color themes.\"),v(\"semanticHighlighting.configuredByTheme\",\"Semantic highlighting is configured by the current color theme's `semanticHighlighting` setting.\")],default:\"configuredByTheme\",description:v(\"semanticHighlighting.enabled\",\"Controls whether the semanticHighlighting is shown for the languages that support it.\")},\"editor.stablePeek\":{type:\"boolean\",default:!1,markdownDescription:v(\"stablePeek\",\"Keep peek editors open even when double-clicking their content or when hitting `Escape`.\")},\"editor.maxTokenizationLineLength\":{type:\"integer\",default:2e4,description:v(\"maxTokenizationLineLength\",\"Lines above this length will not be tokenized for performance reasons\")},\"editor.experimental.asyncTokenization\":{type:\"boolean\",default:!1,description:v(\"editor.experimental.asyncTokenization\",\"Controls whether the tokenization should happen asynchronously on a web worker.\"),tags:[\"experimental\"]},\"editor.experimental.asyncTokenizationLogging\":{type:\"boolean\",default:!1,description:v(\"editor.experimental.asyncTokenizationLogging\",\"Controls whether async tokenization should be logged. For debugging only.\")},\"editor.experimental.asyncTokenizationVerification\":{type:\"boolean\",default:!1,description:v(\"editor.experimental.asyncTokenizationVerification\",\"Controls whether async tokenization should be verified against legacy background tokenization. Might slow down tokenization. For debugging only.\"),tags:[\"experimental\"]},\"editor.language.brackets\":{type:[\"array\",\"null\"],default:null,description:v(\"schema.brackets\",\"Defines the bracket symbols that increase or decrease the indentation.\"),items:{type:\"array\",items:[{type:\"string\",description:v(\"schema.openBracket\",\"The opening bracket character or string sequence.\")},{type:\"string\",description:v(\"schema.closeBracket\",\"The closing bracket character or string sequence.\")}]}},\"editor.language.colorizedBracketPairs\":{type:[\"array\",\"null\"],default:null,description:v(\"schema.colorizedBracketPairs\",\"Defines the bracket pairs that are colorized by their nesting level if bracket pair colorization is enabled.\"),items:{type:\"array\",items:[{type:\"string\",description:v(\"schema.openBracket\",\"The opening bracket character or string sequence.\")},{type:\"string\",description:v(\"schema.closeBracket\",\"The closing bracket character or string sequence.\")}]}},\"diffEditor.maxComputationTime\":{type:\"number\",default:Wo.maxComputationTime,description:v(\"maxComputationTime\",\"Timeout in milliseconds after which diff computation is cancelled. Use 0 for no timeout.\")},\"diffEditor.maxFileSize\":{type:\"number\",default:Wo.maxFileSize,description:v(\"maxFileSize\",\"Maximum file size in MB for which to compute diffs. Use 0 for no limit.\")},\"diffEditor.renderSideBySide\":{type:\"boolean\",default:Wo.renderSideBySide,description:v(\"sideBySide\",\"Controls whether the diff editor shows the diff side by side or inline.\")},\"diffEditor.renderSideBySideInlineBreakpoint\":{type:\"number\",default:Wo.renderSideBySideInlineBreakpoint,description:v(\"renderSideBySideInlineBreakpoint\",\"If the diff editor width is smaller than this value, the inline view is used.\")},\"diffEditor.useInlineViewWhenSpaceIsLimited\":{type:\"boolean\",default:Wo.useInlineViewWhenSpaceIsLimited,description:v(\"useInlineViewWhenSpaceIsLimited\",\"If enabled and the editor width is too small, the inline view is used.\")},\"diffEditor.renderMarginRevertIcon\":{type:\"boolean\",default:Wo.renderMarginRevertIcon,description:v(\"renderMarginRevertIcon\",\"When enabled, the diff editor shows arrows in its glyph margin to revert changes.\")},\"diffEditor.renderGutterMenu\":{type:\"boolean\",default:Wo.renderGutterMenu,description:v(\"renderGutterMenu\",\"When enabled, the diff editor shows a special gutter for revert and stage actions.\")},\"diffEditor.ignoreTrimWhitespace\":{type:\"boolean\",default:Wo.ignoreTrimWhitespace,description:v(\"ignoreTrimWhitespace\",\"When enabled, the diff editor ignores changes in leading or trailing whitespace.\")},\"diffEditor.renderIndicators\":{type:\"boolean\",default:Wo.renderIndicators,description:v(\"renderIndicators\",\"Controls whether the diff editor shows +/- indicators for added/removed changes.\")},\"diffEditor.codeLens\":{type:\"boolean\",default:Wo.diffCodeLens,description:v(\"codeLens\",\"Controls whether the editor shows CodeLens.\")},\"diffEditor.wordWrap\":{type:\"string\",enum:[\"off\",\"on\",\"inherit\"],default:Wo.diffWordWrap,markdownEnumDescriptions:[v(\"wordWrap.off\",\"Lines will never wrap.\"),v(\"wordWrap.on\",\"Lines will wrap at the viewport width.\"),v(\"wordWrap.inherit\",\"Lines will wrap according to the {0} setting.\",\"`#editor.wordWrap#`\")]},\"diffEditor.diffAlgorithm\":{type:\"string\",enum:[\"legacy\",\"advanced\"],default:Wo.diffAlgorithm,markdownEnumDescriptions:[v(\"diffAlgorithm.legacy\",\"Uses the legacy diffing algorithm.\"),v(\"diffAlgorithm.advanced\",\"Uses the advanced diffing algorithm.\")],tags:[\"experimental\"]},\"diffEditor.hideUnchangedRegions.enabled\":{type:\"boolean\",default:Wo.hideUnchangedRegions.enabled,markdownDescription:v(\"hideUnchangedRegions.enabled\",\"Controls whether the diff editor shows unchanged regions.\")},\"diffEditor.hideUnchangedRegions.revealLineCount\":{type:\"integer\",default:Wo.hideUnchangedRegions.revealLineCount,markdownDescription:v(\"hideUnchangedRegions.revealLineCount\",\"Controls how many lines are used for unchanged regions.\"),minimum:1},\"diffEditor.hideUnchangedRegions.minimumLineCount\":{type:\"integer\",default:Wo.hideUnchangedRegions.minimumLineCount,markdownDescription:v(\"hideUnchangedRegions.minimumLineCount\",\"Controls how many lines are used as a minimum for unchanged regions.\"),minimum:1},\"diffEditor.hideUnchangedRegions.contextLineCount\":{type:\"integer\",default:Wo.hideUnchangedRegions.contextLineCount,markdownDescription:v(\"hideUnchangedRegions.contextLineCount\",\"Controls how many lines are used as context when comparing unchanged regions.\"),minimum:1},\"diffEditor.experimental.showMoves\":{type:\"boolean\",default:Wo.experimental.showMoves,markdownDescription:v(\"showMoves\",\"Controls whether the diff editor should show detected code moves.\")},\"diffEditor.experimental.showEmptyDecorations\":{type:\"boolean\",default:Wo.experimental.showEmptyDecorations,description:v(\"showEmptyDecorations\",\"Controls whether the diff editor shows empty decorations to see where characters got inserted or deleted.\")}}};function aHe(n){return typeof n.type<\"u\"||typeof n.anyOf<\"u\"}for(const n of h1){const e=n.schema;if(typeof e<\"u\")if(aHe(e))vA.properties[`editor.${n.name}`]=e;else for(const t in e)Object.hasOwnProperty.call(e,t)&&(vA.properties[t]=e[t])}let sT=null;function Lde(){return sT===null&&(sT=Object.create(null),Object.keys(vA.properties).forEach(n=>{sT[n]=!0})),sT}function lHe(n){return Lde()[`editor.${n}`]||!1}function cHe(n){return Lde()[`diffEditor.${n}`]||!1}const dHe=Un.as(_u.Configuration);dHe.registerConfiguration(vA);class Mn{static insert(e,t){return{range:new A(e.lineNumber,e.column,e.lineNumber,e.column),text:t,forceMoveMarkers:!0}}static delete(e){return{range:e,text:null}}static replace(e,t){return{range:e,text:t}}static replaceMove(e,t){return{range:e,text:t,forceMoveMarkers:!0}}}function oT(n){return Object.isFrozen(n)?n:h2e(n)}class bo{static createEmptyModel(e){return new bo({},[],[],void 0,e)}constructor(e,t,i,s,o){this._contents=e,this._keys=t,this._overrides=i,this.raw=s,this.logService=o,this.overrideConfigurations=new Map}get rawConfiguration(){var e;if(!this._rawConfiguration)if(!((e=this.raw)===null||e===void 0)&&e.length){const t=this.raw.map(i=>{if(i instanceof bo)return i;const s=new uHe(\"\",this.logService);return s.parseRaw(i),s.configurationModel});this._rawConfiguration=t.reduce((i,s)=>s===i?s:i.merge(s),t[0])}else this._rawConfiguration=this;return this._rawConfiguration}get contents(){return this._contents}get overrides(){return this._overrides}get keys(){return this._keys}isEmpty(){return this._keys.length===0&&Object.keys(this._contents).length===0&&this._overrides.length===0}getValue(e){return e?OY(this.contents,e):this.contents}inspect(e,t){const i=this;return{get value(){return oT(i.rawConfiguration.getValue(e))},get override(){return t?oT(i.rawConfiguration.getOverrideValue(e,t)):void 0},get merged(){return oT(t?i.rawConfiguration.override(t).getValue(e):i.rawConfiguration.getValue(e))},get overrides(){const s=[];for(const{contents:o,identifiers:r,keys:a}of i.rawConfiguration.overrides){const l=new bo(o,a,[],void 0,i.logService).getValue(e);l!==void 0&&s.push({identifiers:r,value:l})}return s.length?oT(s):void 0}}}getOverrideValue(e,t){const i=this.getContentsForOverrideIdentifer(t);return i?e?OY(i,e):i:void 0}override(e){let t=this.overrideConfigurations.get(e);return t||(t=this.createOverrideConfigurationModel(e),this.overrideConfigurations.set(e,t)),t}merge(...e){var t,i;const s=Tf(this.contents),o=Tf(this.overrides),r=[...this.keys],a=!((t=this.raw)===null||t===void 0)&&t.length?[...this.raw]:[this];for(const l of e)if(a.push(...!((i=l.raw)===null||i===void 0)&&i.length?l.raw:[l]),!l.isEmpty()){this.mergeContents(s,l.contents);for(const c of l.overrides){const[d]=o.filter(u=>zn(u.identifiers,c.identifiers));d?(this.mergeContents(d.contents,c.contents),d.keys.push(...c.keys),d.keys=xg(d.keys)):o.push(Tf(c))}for(const c of l.keys)r.indexOf(c)===-1&&r.push(c)}return new bo(s,r,o,a.every(l=>l instanceof bo)?void 0:a,this.logService)}createOverrideConfigurationModel(e){const t=this.getContentsForOverrideIdentifer(e);if(!t||typeof t!=\"object\"||!Object.keys(t).length)return this;const i={};for(const s of xg([...Object.keys(this.contents),...Object.keys(t)])){let o=this.contents[s];const r=t[s];r&&(typeof o==\"object\"&&typeof r==\"object\"?(o=Tf(o),this.mergeContents(o,r)):o=r),i[s]=o}return new bo(i,this.keys,this.overrides,void 0,this.logService)}mergeContents(e,t){for(const i of Object.keys(t)){if(i in e&&Er(e[i])&&Er(t[i])){this.mergeContents(e[i],t[i]);continue}e[i]=Tf(t[i])}}getContentsForOverrideIdentifer(e){let t=null,i=null;const s=o=>{o&&(i?this.mergeContents(i,o):i=Tf(o))};for(const o of this.overrides)o.identifiers.length===1&&o.identifiers[0]===e?t=o.contents:o.identifiers.includes(e)&&s(o.contents);return s(t),i}toJSON(){return{contents:this.contents,overrides:this.overrides,keys:this.keys}}addValue(e,t){this.updateValue(e,t,!0)}setValue(e,t){this.updateValue(e,t,!1)}removeValue(e){const t=this.keys.indexOf(e);t!==-1&&(this.keys.splice(t,1),qPe(this.contents,e),Bm.test(e)&&this.overrides.splice(this.overrides.findIndex(i=>zn(i.identifiers,$2(e))),1))}updateValue(e,t,i){gle(this.contents,e,t,s=>this.logService.error(s)),i=i||this.keys.indexOf(e)===-1,i&&this.keys.push(e),Bm.test(e)&&this.overrides.push({identifiers:$2(e),keys:Object.keys(this.contents[e]),contents:fB(this.contents[e],s=>this.logService.error(s))})}}class uHe{constructor(e,t){this._name=e,this.logService=t,this._raw=null,this._configurationModel=null,this._restrictedConfigurations=[]}get configurationModel(){return this._configurationModel||bo.createEmptyModel(this.logService)}parseRaw(e,t){this._raw=e;const{contents:i,keys:s,overrides:o,restricted:r,hasExcludedProperties:a}=this.doParseRaw(e,t);this._configurationModel=new bo(i,s,o,a?[e]:void 0,this.logService),this._restrictedConfigurations=r||[]}doParseRaw(e,t){const i=Un.as(_u.Configuration).getConfigurationProperties(),s=this.filter(e,i,!0,t);e=s.raw;const o=fB(e,l=>this.logService.error(`Conflict in settings file ${this._name}: ${l}`)),r=Object.keys(e),a=this.toOverrides(e,l=>this.logService.error(`Conflict in settings file ${this._name}: ${l}`));return{contents:o,keys:r,overrides:a,restricted:s.restricted,hasExcludedProperties:s.hasExcludedProperties}}filter(e,t,i,s){var o,r,a;let l=!1;if(!(s!=null&&s.scopes)&&!(s!=null&&s.skipRestricted)&&!(!((o=s==null?void 0:s.exclude)===null||o===void 0)&&o.length))return{raw:e,restricted:[],hasExcludedProperties:l};const c={},d=[];for(const u in e)if(Bm.test(u)&&i){const h=this.filter(e[u],t,!1,s);c[u]=h.raw,l=l||h.hasExcludedProperties,d.push(...h.restricted)}else{const h=t[u],f=h?typeof h.scope<\"u\"?h.scope:3:void 0;h!=null&&h.restricted&&d.push(u),!(!((r=s.exclude)===null||r===void 0)&&r.includes(u))&&(!((a=s.include)===null||a===void 0)&&a.includes(u)||(f===void 0||s.scopes===void 0||s.scopes.includes(f))&&!(s.skipRestricted&&(h!=null&&h.restricted)))?c[u]=e[u]:l=!0}return{raw:c,restricted:d,hasExcludedProperties:l}}toOverrides(e,t){const i=[];for(const s of Object.keys(e))if(Bm.test(s)){const o={};for(const r in e[s])o[r]=e[s][r];i.push({identifiers:$2(s),keys:Object.keys(o),contents:fB(o,t)})}return i}}class hHe{constructor(e,t,i,s,o,r,a,l,c,d,u,h,f){this.key=e,this.overrides=t,this._value=i,this.overrideIdentifiers=s,this.defaultConfiguration=o,this.policyConfiguration=r,this.applicationConfiguration=a,this.userConfiguration=l,this.localUserConfiguration=c,this.remoteUserConfiguration=d,this.workspaceConfiguration=u,this.folderConfigurationModel=h,this.memoryConfigurationModel=f}toInspectValue(e){return(e==null?void 0:e.value)!==void 0||(e==null?void 0:e.override)!==void 0||(e==null?void 0:e.overrides)!==void 0?e:void 0}get userInspectValue(){return this._userInspectValue||(this._userInspectValue=this.userConfiguration.inspect(this.key,this.overrides.overrideIdentifier)),this._userInspectValue}get user(){return this.toInspectValue(this.userInspectValue)}}class YM{constructor(e,t,i,s,o,r,a,l,c,d){this._defaultConfiguration=e,this._policyConfiguration=t,this._applicationConfiguration=i,this._localUserConfiguration=s,this._remoteUserConfiguration=o,this._workspaceConfiguration=r,this._folderConfigurations=a,this._memoryConfiguration=l,this._memoryConfigurationByResource=c,this.logService=d,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations=new hs,this._userConfiguration=null}getValue(e,t,i){return this.getConsolidatedConfigurationModel(e,t,i).getValue(e)}updateValue(e,t,i={}){let s;i.resource?(s=this._memoryConfigurationByResource.get(i.resource),s||(s=bo.createEmptyModel(this.logService),this._memoryConfigurationByResource.set(i.resource,s))):s=this._memoryConfiguration,t===void 0?s.removeValue(e):s.setValue(e,t),i.resource||(this._workspaceConsolidatedConfiguration=null)}inspect(e,t,i){const s=this.getConsolidatedConfigurationModel(e,t,i),o=this.getFolderConfigurationModelForResource(t.resource,i),r=t.resource?this._memoryConfigurationByResource.get(t.resource)||this._memoryConfiguration:this._memoryConfiguration,a=new Set;for(const l of s.overrides)for(const c of l.identifiers)s.getOverrideValue(e,c)!==void 0&&a.add(c);return new hHe(e,t,s.getValue(e),a.size?[...a]:void 0,this._defaultConfiguration,this._policyConfiguration.isEmpty()?void 0:this._policyConfiguration,this.applicationConfiguration.isEmpty()?void 0:this.applicationConfiguration,this.userConfiguration,this.localUserConfiguration,this.remoteUserConfiguration,i?this._workspaceConfiguration:void 0,o||void 0,r)}get applicationConfiguration(){return this._applicationConfiguration}get userConfiguration(){return this._userConfiguration||(this._userConfiguration=this._remoteUserConfiguration.isEmpty()?this._localUserConfiguration:this._localUserConfiguration.merge(this._remoteUserConfiguration)),this._userConfiguration}get localUserConfiguration(){return this._localUserConfiguration}get remoteUserConfiguration(){return this._remoteUserConfiguration}getConsolidatedConfigurationModel(e,t,i){let s=this.getConsolidatedConfigurationModelForResource(t,i);return t.overrideIdentifier&&(s=s.override(t.overrideIdentifier)),!this._policyConfiguration.isEmpty()&&this._policyConfiguration.getValue(e)!==void 0&&(s=s.merge(this._policyConfiguration)),s}getConsolidatedConfigurationModelForResource({resource:e},t){let i=this.getWorkspaceConsolidatedConfiguration();if(t&&e){const s=t.getFolder(e);s&&(i=this.getFolderConsolidatedConfiguration(s.uri)||i);const o=this._memoryConfigurationByResource.get(e);o&&(i=i.merge(o))}return i}getWorkspaceConsolidatedConfiguration(){return this._workspaceConsolidatedConfiguration||(this._workspaceConsolidatedConfiguration=this._defaultConfiguration.merge(this.applicationConfiguration,this.userConfiguration,this._workspaceConfiguration,this._memoryConfiguration)),this._workspaceConsolidatedConfiguration}getFolderConsolidatedConfiguration(e){let t=this._foldersConsolidatedConfigurations.get(e);if(!t){const i=this.getWorkspaceConsolidatedConfiguration(),s=this._folderConfigurations.get(e);s?(t=i.merge(s),this._foldersConsolidatedConfigurations.set(e,t)):t=i}return t}getFolderConfigurationModelForResource(e,t){if(t&&e){const i=t.getFolder(e);if(i)return this._folderConfigurations.get(i.uri)}}toData(){return{defaults:{contents:this._defaultConfiguration.contents,overrides:this._defaultConfiguration.overrides,keys:this._defaultConfiguration.keys},policy:{contents:this._policyConfiguration.contents,overrides:this._policyConfiguration.overrides,keys:this._policyConfiguration.keys},application:{contents:this.applicationConfiguration.contents,overrides:this.applicationConfiguration.overrides,keys:this.applicationConfiguration.keys},user:{contents:this.userConfiguration.contents,overrides:this.userConfiguration.overrides,keys:this.userConfiguration.keys},workspace:{contents:this._workspaceConfiguration.contents,overrides:this._workspaceConfiguration.overrides,keys:this._workspaceConfiguration.keys},folders:[...this._folderConfigurations.keys()].reduce((e,t)=>{const{contents:i,overrides:s,keys:o}=this._folderConfigurations.get(t);return e.push([t,{contents:i,overrides:s,keys:o}]),e},[])}}static parse(e,t){const i=this.parseConfigurationModel(e.defaults,t),s=this.parseConfigurationModel(e.policy,t),o=this.parseConfigurationModel(e.application,t),r=this.parseConfigurationModel(e.user,t),a=this.parseConfigurationModel(e.workspace,t),l=e.folders.reduce((c,d)=>(c.set(pt.revive(d[0]),this.parseConfigurationModel(d[1],t)),c),new hs);return new YM(i,s,o,r,bo.createEmptyModel(t),a,l,bo.createEmptyModel(t),new hs,t)}static parseConfigurationModel(e,t){return new bo(e.contents,e.keys,e.overrides,void 0,t)}}class fHe{constructor(e,t,i,s,o){this.change=e,this.previous=t,this.currentConfiguraiton=i,this.currentWorkspace=s,this.logService=o,this._marker=`\n`,this._markerCode1=this._marker.charCodeAt(0),this._markerCode2=46,this.affectedKeys=new Set,this._previousConfiguration=void 0;for(const r of e.keys)this.affectedKeys.add(r);for(const[,r]of e.overrides)for(const a of r)this.affectedKeys.add(a);this._affectsConfigStr=this._marker;for(const r of this.affectedKeys)this._affectsConfigStr+=r+this._marker}get previousConfiguration(){return!this._previousConfiguration&&this.previous&&(this._previousConfiguration=YM.parse(this.previous.data,this.logService)),this._previousConfiguration}affectsConfiguration(e,t){var i;const s=this._marker+e,o=this._affectsConfigStr.indexOf(s);if(o<0)return!1;const r=o+s.length;if(r>=this._affectsConfigStr.length)return!1;const a=this._affectsConfigStr.charCodeAt(r);if(a!==this._markerCode1&&a!==this._markerCode2)return!1;if(t){const l=this.previousConfiguration?this.previousConfiguration.getValue(e,t,(i=this.previous)===null||i===void 0?void 0:i.workspace):void 0,c=this.currentConfiguraiton.getValue(e,t,this.currentWorkspace);return!vl(l,c)}return!0}}const bA={kind:0},gHe={kind:1};function pHe(n,e,t){return{kind:2,commandId:n,commandArgs:e,isBubble:t}}class kx{constructor(e,t,i){var s;this._log=i,this._defaultKeybindings=e,this._defaultBoundCommands=new Map;for(const o of e){const r=o.command;r&&r.charAt(0)!==\"-\"&&this._defaultBoundCommands.set(r,!0)}this._map=new Map,this._lookupMap=new Map,this._keybindings=kx.handleRemovals([].concat(e).concat(t));for(let o=0,r=this._keybindings.length;o<r;o++){const a=this._keybindings[o];if(a.chords.length===0)continue;const l=(s=a.when)===null||s===void 0?void 0:s.substituteConstants();l&&l.type===0||this._addKeyPress(a.chords[0],a)}}static _isTargetedForRemoval(e,t,i){if(t){for(let s=0;s<t.length;s++)if(t[s]!==e.chords[s])return!1}return!(i&&i.type!==1&&(!e.when||!lPe(i,e.when)))}static handleRemovals(e){const t=new Map;for(let s=0,o=e.length;s<o;s++){const r=e[s];if(r.command&&r.command.charAt(0)===\"-\"){const a=r.command.substring(1);t.has(a)?t.get(a).push(r):t.set(a,[r])}}if(t.size===0)return e;const i=[];for(let s=0,o=e.length;s<o;s++){const r=e[s];if(!r.command||r.command.length===0){i.push(r);continue}if(r.command.charAt(0)===\"-\")continue;const a=t.get(r.command);if(!a||!r.isDefault){i.push(r);continue}let l=!1;for(const c of a){const d=c.when;if(this._isTargetedForRemoval(r,c.chords,d)){l=!0;break}}if(!l){i.push(r);continue}}return i}_addKeyPress(e,t){const i=this._map.get(e);if(typeof i>\"u\"){this._map.set(e,[t]),this._addToLookupMap(t);return}for(let s=i.length-1;s>=0;s--){const o=i[s];if(o.command===t.command)continue;let r=!0;for(let a=1;a<o.chords.length&&a<t.chords.length;a++)if(o.chords[a]!==t.chords[a]){r=!1;break}r&&kx.whenIsEntirelyIncluded(o.when,t.when)&&this._removeFromLookupMap(o)}i.push(t),this._addToLookupMap(t)}_addToLookupMap(e){if(!e.command)return;let t=this._lookupMap.get(e.command);typeof t>\"u\"?(t=[e],this._lookupMap.set(e.command,t)):t.push(e)}_removeFromLookupMap(e){if(!e.command)return;const t=this._lookupMap.get(e.command);if(!(typeof t>\"u\")){for(let i=0,s=t.length;i<s;i++)if(t[i]===e){t.splice(i,1);return}}}static whenIsEntirelyIncluded(e,t){return!t||t.type===1?!0:!e||e.type===1?!1:uB(e,t)}getKeybindings(){return this._keybindings}lookupPrimaryKeybinding(e,t){const i=this._lookupMap.get(e);if(typeof i>\"u\"||i.length===0)return null;if(i.length===1)return i[0];for(let s=i.length-1;s>=0;s--){const o=i[s];if(t.contextMatchesRules(o.when))return o}return i[i.length-1]}resolve(e,t,i){const s=[...t,i];this._log(`| Resolving ${s}`);const o=this._map.get(s[0]);if(o===void 0)return this._log(\"\\\\ No keybinding entries.\"),bA;let r=null;if(s.length<2)r=o;else{r=[];for(let l=0,c=o.length;l<c;l++){const d=o[l];if(s.length>d.chords.length)continue;let u=!0;for(let h=1;h<s.length;h++)if(d.chords[h]!==s[h]){u=!1;break}u&&r.push(d)}}const a=this._findCommand(e,r);return a?s.length<a.chords.length?(this._log(`\\\\ From ${r.length} keybinding entries, awaiting ${a.chords.length-s.length} more chord(s), when: ${uJ(a.when)}, source: ${hJ(a)}.`),gHe):(this._log(`\\\\ From ${r.length} keybinding entries, matched ${a.command}, when: ${uJ(a.when)}, source: ${hJ(a)}.`),pHe(a.command,a.commandArgs,a.bubble)):(this._log(`\\\\ From ${r.length} keybinding entries, no when clauses matched the context.`),bA)}_findCommand(e,t){for(let i=t.length-1;i>=0;i--){const s=t[i];if(kx._contextMatchesRules(e,s.when))return s}return null}static _contextMatchesRules(e,t){return t?t.evaluate(e):!0}}function uJ(n){return n?`${n.serialize()}`:\"no when condition\"}function hJ(n){return n.extensionId?n.isBuiltinExtension?`built-in extension ${n.extensionId}`:`user extension ${n.extensionId}`:n.isDefault?\"built-in\":\"user\"}const mHe=/^(cursor|delete|undo|redo|tab|editor\\.action\\.clipboard)/;class _He extends ne{get onDidUpdateKeybindings(){return this._onDidUpdateKeybindings?this._onDidUpdateKeybindings.event:Ae.None}get inChordMode(){return this._currentChords.length>0}constructor(e,t,i,s,o){super(),this._contextKeyService=e,this._commandService=t,this._telemetryService=i,this._notificationService=s,this._logService=o,this._onDidUpdateKeybindings=this._register(new X),this._currentChords=[],this._currentChordChecker=new JV,this._currentChordStatusMessage=null,this._ignoreSingleModifiers=E1.EMPTY,this._currentSingleModifier=null,this._currentSingleModifierClearTimeout=new cd,this._currentlyDispatchingCommandId=null,this._logging=!1}dispose(){super.dispose()}_log(e){this._logging&&this._logService.info(`[KeybindingService]: ${e}`)}getKeybindings(){return this._getResolver().getKeybindings()}lookupKeybinding(e,t){const i=this._getResolver().lookupPrimaryKeybinding(e,t||this._contextKeyService);if(i)return i.resolvedKeybinding}dispatchEvent(e,t){return this._dispatch(e,t)}softDispatch(e,t){this._log(\"/ Soft dispatching keyboard event\");const i=this.resolveKeyboardEvent(e);if(i.hasMultipleChords())return console.warn(\"keyboard event should not be mapped to multiple chords\"),bA;const[s]=i.getDispatchChords();if(s===null)return this._log(\"\\\\ Keyboard event cannot be dispatched\"),bA;const o=this._contextKeyService.getContext(t),r=this._currentChords.map(({keypress:a})=>a);return this._getResolver().resolve(o,r,s)}_scheduleLeaveChordMode(){const e=Date.now();this._currentChordChecker.cancelAndSet(()=>{if(!this._documentHasFocus()){this._leaveChordMode();return}Date.now()-e>5e3&&this._leaveChordMode()},500)}_expectAnotherChord(e,t){switch(this._currentChords.push({keypress:e,label:t}),this._currentChords.length){case 0:throw BV(\"impossible\");case 1:this._currentChordStatusMessage=this._notificationService.status(v(\"first.chord\",\"({0}) was pressed. Waiting for second key of chord...\",t));break;default:{const i=this._currentChords.map(({label:s})=>s).join(\", \");this._currentChordStatusMessage=this._notificationService.status(v(\"next.chord\",\"({0}) was pressed. Waiting for next key of chord...\",i))}}this._scheduleLeaveChordMode(),ux.enabled&&ux.disable()}_leaveChordMode(){this._currentChordStatusMessage&&(this._currentChordStatusMessage.dispose(),this._currentChordStatusMessage=null),this._currentChordChecker.cancel(),this._currentChords=[],ux.enable()}_dispatch(e,t){return this._doDispatch(this.resolveKeyboardEvent(e),t,!1)}_singleModifierDispatch(e,t){const i=this.resolveKeyboardEvent(e),[s]=i.getSingleModifierDispatchChords();if(s)return this._ignoreSingleModifiers.has(s)?(this._log(`+ Ignoring single modifier ${s} due to it being pressed together with other keys.`),this._ignoreSingleModifiers=E1.EMPTY,this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1):(this._ignoreSingleModifiers=E1.EMPTY,this._currentSingleModifier===null?(this._log(`+ Storing single modifier for possible chord ${s}.`),this._currentSingleModifier=s,this._currentSingleModifierClearTimeout.cancelAndSet(()=>{this._log(\"+ Clearing single modifier due to 300ms elapsed.\"),this._currentSingleModifier=null},300),!1):s===this._currentSingleModifier?(this._log(`/ Dispatching single modifier chord ${s} ${s}`),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,this._doDispatch(i,t,!0)):(this._log(`+ Clearing single modifier due to modifier mismatch: ${this._currentSingleModifier} ${s}`),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1));const[o]=i.getChords();return this._ignoreSingleModifiers=new E1(o),this._currentSingleModifier!==null&&this._log(\"+ Clearing single modifier due to other key up.\"),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1}_doDispatch(e,t,i=!1){var s;let o=!1;if(e.hasMultipleChords())return console.warn(\"Unexpected keyboard event mapped to multiple chords\"),!1;let r=null,a=null;if(i){const[u]=e.getSingleModifierDispatchChords();r=u,a=u?[u]:[]}else[r]=e.getDispatchChords(),a=this._currentChords.map(({keypress:u})=>u);if(r===null)return this._log(\"\\\\ Keyboard event cannot be dispatched in keydown phase.\"),o;const l=this._contextKeyService.getContext(t),c=e.getLabel(),d=this._getResolver().resolve(l,a,r);switch(d.kind){case 0:{if(this._logService.trace(\"KeybindingService#dispatch\",c,\"[ No matching keybinding ]\"),this.inChordMode){const u=this._currentChords.map(({label:h})=>h).join(\", \");this._log(`+ Leaving multi-chord mode: Nothing bound to \"${u}, ${c}\".`),this._notificationService.status(v(\"missing.chord\",\"The key combination ({0}, {1}) is not a command.\",u,c),{hideAfter:10*1e3}),this._leaveChordMode(),o=!0}return o}case 1:return this._logService.trace(\"KeybindingService#dispatch\",c,\"[ Several keybindings match - more chords needed ]\"),o=!0,this._expectAnotherChord(r,c),this._log(this._currentChords.length===1?\"+ Entering multi-chord mode...\":\"+ Continuing multi-chord mode...\"),o;case 2:{if(this._logService.trace(\"KeybindingService#dispatch\",c,`[ Will dispatch command ${d.commandId} ]`),d.commandId===null||d.commandId===\"\"){if(this.inChordMode){const u=this._currentChords.map(({label:h})=>h).join(\", \");this._log(`+ Leaving chord mode: Nothing bound to \"${u}, ${c}\".`),this._notificationService.status(v(\"missing.chord\",\"The key combination ({0}, {1}) is not a command.\",u,c),{hideAfter:10*1e3}),this._leaveChordMode(),o=!0}}else{this.inChordMode&&this._leaveChordMode(),d.isBubble||(o=!0),this._log(`+ Invoking command ${d.commandId}.`),this._currentlyDispatchingCommandId=d.commandId;try{typeof d.commandArgs>\"u\"?this._commandService.executeCommand(d.commandId).then(void 0,u=>this._notificationService.warn(u)):this._commandService.executeCommand(d.commandId,d.commandArgs).then(void 0,u=>this._notificationService.warn(u))}finally{this._currentlyDispatchingCommandId=null}mHe.test(d.commandId)||this._telemetryService.publicLog2(\"workbenchActionExecuted\",{id:d.commandId,from:\"keybinding\",detail:(s=e.getUserSettingsLabel())!==null&&s!==void 0?s:void 0})}return o}}}mightProducePrintableCharacter(e){return e.ctrlKey||e.metaKey?!1:e.keyCode>=31&&e.keyCode<=56||e.keyCode>=21&&e.keyCode<=30}}class E1{constructor(e){this._ctrlKey=e?e.ctrlKey:!1,this._shiftKey=e?e.shiftKey:!1,this._altKey=e?e.altKey:!1,this._metaKey=e?e.metaKey:!1}has(e){switch(e){case\"ctrl\":return this._ctrlKey;case\"shift\":return this._shiftKey;case\"alt\":return this._altKey;case\"meta\":return this._metaKey}}}E1.EMPTY=new E1(null);class fJ{constructor(e,t,i,s,o,r,a){this._resolvedKeybindingItemBrand=void 0,this.resolvedKeybinding=e,this.chords=e?b9(e.getDispatchChords()):[],e&&this.chords.length===0&&(this.chords=b9(e.getSingleModifierDispatchChords())),this.bubble=t?t.charCodeAt(0)===94:!1,this.command=this.bubble?t.substr(1):t,this.commandArgs=i,this.when=s,this.isDefault=o,this.extensionId=r,this.isBuiltinExtension=a}}function b9(n){const e=[];for(let t=0,i=n.length;t<i;t++){const s=n[t];if(!s)return[];e.push(s)}return e}class XM{constructor(e,t,i=t){this.modifierLabels=[null],this.modifierLabels[2]=e,this.modifierLabels[1]=t,this.modifierLabels[3]=i}toLabel(e,t,i){if(t.length===0)return null;const s=[];for(let o=0,r=t.length;o<r;o++){const a=t[o],l=i(a);if(l===null)return null;s[o]=wHe(a,l,this.modifierLabels[e])}return s.join(\" \")}}const w$=new XM({ctrlKey:\"⌃\",shiftKey:\"⇧\",altKey:\"⌥\",metaKey:\"⌘\",separator:\"\"},{ctrlKey:v({},\"Ctrl\"),shiftKey:v({},\"Shift\"),altKey:v({},\"Alt\"),metaKey:v({},\"Windows\"),separator:\"+\"},{ctrlKey:v({},\"Ctrl\"),shiftKey:v({},\"Shift\"),altKey:v({},\"Alt\"),metaKey:v({},\"Super\"),separator:\"+\"}),vHe=new XM({ctrlKey:v({},\"Control\"),shiftKey:v({},\"Shift\"),altKey:v({},\"Option\"),metaKey:v({},\"Command\"),separator:\"+\"},{ctrlKey:v({},\"Control\"),shiftKey:v({},\"Shift\"),altKey:v({},\"Alt\"),metaKey:v({},\"Windows\"),separator:\"+\"},{ctrlKey:v({},\"Control\"),shiftKey:v({},\"Shift\"),altKey:v({},\"Alt\"),metaKey:v({},\"Super\"),separator:\"+\"}),bHe=new XM({ctrlKey:\"Ctrl\",shiftKey:\"Shift\",altKey:\"Alt\",metaKey:\"Cmd\",separator:\"+\"},{ctrlKey:\"Ctrl\",shiftKey:\"Shift\",altKey:\"Alt\",metaKey:\"Super\",separator:\"+\"}),CHe=new XM({ctrlKey:\"ctrl\",shiftKey:\"shift\",altKey:\"alt\",metaKey:\"cmd\",separator:\"+\"},{ctrlKey:\"ctrl\",shiftKey:\"shift\",altKey:\"alt\",metaKey:\"win\",separator:\"+\"},{ctrlKey:\"ctrl\",shiftKey:\"shift\",altKey:\"alt\",metaKey:\"meta\",separator:\"+\"});function wHe(n,e,t){if(e===null)return\"\";const i=[];return n.ctrlKey&&i.push(t.ctrlKey),n.shiftKey&&i.push(t.shiftKey),n.altKey&&i.push(t.altKey),n.metaKey&&i.push(t.metaKey),e!==\"\"&&i.push(e),i.join(t.separator)}class yHe extends ERe{constructor(e,t){if(super(),t.length===0)throw ic(\"chords\");this._os=e,this._chords=t}getLabel(){return w$.toLabel(this._os,this._chords,e=>this._getLabel(e))}getAriaLabel(){return vHe.toLabel(this._os,this._chords,e=>this._getAriaLabel(e))}getElectronAccelerator(){return this._chords.length>1||this._chords[0].isDuplicateModifierCase()?null:bHe.toLabel(this._os,this._chords,e=>this._getElectronAccelerator(e))}getUserSettingsLabel(){return CHe.toLabel(this._os,this._chords,e=>this._getUserSettingsLabel(e))}hasMultipleChords(){return this._chords.length>1}getChords(){return this._chords.map(e=>this._getChord(e))}_getChord(e){return new IRe(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,this._getLabel(e),this._getAriaLabel(e))}getDispatchChords(){return this._chords.map(e=>this._getChordDispatch(e))}getSingleModifierDispatchChords(){return this._chords.map(e=>this._getSingleModifierChordDispatch(e))}}class HL extends yHe{constructor(e,t){super(t,e)}_keyCodeToUILabel(e){if(this._os===2)switch(e){case 15:return\"←\";case 16:return\"↑\";case 17:return\"→\";case 18:return\"↓\"}return Wf.toString(e)}_getLabel(e){return e.isDuplicateModifierCase()?\"\":this._keyCodeToUILabel(e.keyCode)}_getAriaLabel(e){return e.isDuplicateModifierCase()?\"\":Wf.toString(e.keyCode)}_getElectronAccelerator(e){return Wf.toElectronAccelerator(e.keyCode)}_getUserSettingsLabel(e){if(e.isDuplicateModifierCase())return\"\";const t=Wf.toUserSettingsUS(e.keyCode);return t&&t.toLowerCase()}_getChordDispatch(e){return HL.getDispatchStr(e)}static getDispatchStr(e){if(e.isModifierKey())return null;let t=\"\";return e.ctrlKey&&(t+=\"ctrl+\"),e.shiftKey&&(t+=\"shift+\"),e.altKey&&(t+=\"alt+\"),e.metaKey&&(t+=\"meta+\"),t+=Wf.toString(e.keyCode),t}_getSingleModifierChordDispatch(e){return e.keyCode===5&&!e.shiftKey&&!e.altKey&&!e.metaKey?\"ctrl\":e.keyCode===4&&!e.ctrlKey&&!e.altKey&&!e.metaKey?\"shift\":e.keyCode===6&&!e.ctrlKey&&!e.shiftKey&&!e.metaKey?\"alt\":e.keyCode===57&&!e.ctrlKey&&!e.shiftKey&&!e.altKey?\"meta\":null}static _scanCodeToKeyCode(e){const t=zV[e];if(t!==-1)return t;switch(e){case 10:return 31;case 11:return 32;case 12:return 33;case 13:return 34;case 14:return 35;case 15:return 36;case 16:return 37;case 17:return 38;case 18:return 39;case 19:return 40;case 20:return 41;case 21:return 42;case 22:return 43;case 23:return 44;case 24:return 45;case 25:return 46;case 26:return 47;case 27:return 48;case 28:return 49;case 29:return 50;case 30:return 51;case 31:return 52;case 32:return 53;case 33:return 54;case 34:return 55;case 35:return 56;case 36:return 22;case 37:return 23;case 38:return 24;case 39:return 25;case 40:return 26;case 41:return 27;case 42:return 28;case 43:return 29;case 44:return 30;case 45:return 21;case 51:return 88;case 52:return 86;case 53:return 92;case 54:return 94;case 55:return 93;case 56:return 0;case 57:return 85;case 58:return 95;case 59:return 91;case 60:return 87;case 61:return 89;case 62:return 90;case 106:return 97}return 0}static _toKeyCodeChord(e){if(!e)return null;if(e instanceof kg)return e;const t=this._scanCodeToKeyCode(e.scanCode);return t===0?null:new kg(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,t)}static resolveKeybinding(e,t){const i=b9(e.chords.map(s=>this._toKeyCodeChord(s)));return i.length>0?[new HL(i,t)]:[]}}const ZC=Jt(\"labelService\"),kde=Jt(\"progressService\");class bg{constructor(e){this.callback=e}report(e){this._value=e,this.callback(this._value)}}bg.None=Object.freeze({report(){}});const m_=Jt(\"editorProgressService\");class SHe{constructor(){this._value=\"\",this._pos=0}reset(e){return this._value=e,this._pos=0,this}next(){return this._pos+=1,this}hasNext(){return this._pos<this._value.length-1}cmp(e){const t=e.charCodeAt(0),i=this._value.charCodeAt(this._pos);return t-i}value(){return this._value[this._pos]}}class xHe{constructor(e=!0){this._caseSensitive=e}reset(e){return this._value=e,this._from=0,this._to=0,this.next()}hasNext(){return this._to<this._value.length}next(){this._from=this._to;let e=!0;for(;this._to<this._value.length;this._to++)if(this._value.charCodeAt(this._to)===46)if(e)this._from++;else break;else e=!1;return this}cmp(e){return this._caseSensitive?UV(e,this._value,0,e.length,this._from,this._to):lD(e,this._value,0,e.length,this._from,this._to)}value(){return this._value.substring(this._from,this._to)}}class LHe{constructor(e=!0,t=!0){this._splitOnBackslash=e,this._caseSensitive=t}reset(e){this._from=0,this._to=0,this._value=e,this._valueLen=e.length;for(let t=e.length-1;t>=0;t--,this._valueLen--){const i=this._value.charCodeAt(t);if(!(i===47||this._splitOnBackslash&&i===92))break}return this.next()}hasNext(){return this._to<this._valueLen}next(){this._from=this._to;let e=!0;for(;this._to<this._valueLen;this._to++){const t=this._value.charCodeAt(this._to);if(t===47||this._splitOnBackslash&&t===92)if(e)this._from++;else break;else e=!1}return this}cmp(e){return this._caseSensitive?UV(e,this._value,0,e.length,this._from,this._to):lD(e,this._value,0,e.length,this._from,this._to)}value(){return this._value.substring(this._from,this._to)}}class kHe{constructor(e,t){this._ignorePathCasing=e,this._ignoreQueryAndFragment=t,this._states=[],this._stateIdx=0}reset(e){return this._value=e,this._states=[],this._value.scheme&&this._states.push(1),this._value.authority&&this._states.push(2),this._value.path&&(this._pathIterator=new LHe(!1,!this._ignorePathCasing(e)),this._pathIterator.reset(e.path),this._pathIterator.value()&&this._states.push(3)),this._ignoreQueryAndFragment(e)||(this._value.query&&this._states.push(4),this._value.fragment&&this._states.push(5)),this._stateIdx=0,this}next(){return this._states[this._stateIdx]===3&&this._pathIterator.hasNext()?this._pathIterator.next():this._stateIdx+=1,this}hasNext(){return this._states[this._stateIdx]===3&&this._pathIterator.hasNext()||this._stateIdx<this._states.length-1}cmp(e){if(this._states[this._stateIdx]===1)return Q7(e,this._value.scheme);if(this._states[this._stateIdx]===2)return Q7(e,this._value.authority);if(this._states[this._stateIdx]===3)return this._pathIterator.cmp(e);if(this._states[this._stateIdx]===4)return dL(e,this._value.query);if(this._states[this._stateIdx]===5)return dL(e,this._value.fragment);throw new Error}value(){if(this._states[this._stateIdx]===1)return this._value.scheme;if(this._states[this._stateIdx]===2)return this._value.authority;if(this._states[this._stateIdx]===3)return this._pathIterator.value();if(this._states[this._stateIdx]===4)return this._value.query;if(this._states[this._stateIdx]===5)return this._value.fragment;throw new Error}}class rT{constructor(){this.height=1}rotateLeft(){const e=this.right;return this.right=e.left,e.left=this,this.updateHeight(),e.updateHeight(),e}rotateRight(){const e=this.left;return this.left=e.right,e.right=this,this.updateHeight(),e.updateHeight(),e}updateHeight(){this.height=1+Math.max(this.heightLeft,this.heightRight)}balanceFactor(){return this.heightRight-this.heightLeft}get heightLeft(){var e,t;return(t=(e=this.left)===null||e===void 0?void 0:e.height)!==null&&t!==void 0?t:0}get heightRight(){var e,t;return(t=(e=this.right)===null||e===void 0?void 0:e.height)!==null&&t!==void 0?t:0}}class lC{static forUris(e=()=>!1,t=()=>!1){return new lC(new kHe(e,t))}static forStrings(){return new lC(new SHe)}static forConfigKeys(){return new lC(new xHe)}constructor(e){this._iter=e}clear(){this._root=void 0}set(e,t){const i=this._iter.reset(e);let s;this._root||(this._root=new rT,this._root.segment=i.value());const o=[];for(s=this._root;;){const a=i.cmp(s.segment);if(a>0)s.left||(s.left=new rT,s.left.segment=i.value()),o.push([-1,s]),s=s.left;else if(a<0)s.right||(s.right=new rT,s.right.segment=i.value()),o.push([1,s]),s=s.right;else if(i.hasNext())i.next(),s.mid||(s.mid=new rT,s.mid.segment=i.value()),o.push([0,s]),s=s.mid;else break}const r=s.value;s.value=t,s.key=e;for(let a=o.length-1;a>=0;a--){const l=o[a][1];l.updateHeight();const c=l.balanceFactor();if(c<-1||c>1){const d=o[a][0],u=o[a+1][0];if(d===1&&u===1)o[a][1]=l.rotateLeft();else if(d===-1&&u===-1)o[a][1]=l.rotateRight();else if(d===1&&u===-1)l.right=o[a+1][1]=o[a+1][1].rotateRight(),o[a][1]=l.rotateLeft();else if(d===-1&&u===1)l.left=o[a+1][1]=o[a+1][1].rotateLeft(),o[a][1]=l.rotateRight();else throw new Error;if(a>0)switch(o[a-1][0]){case-1:o[a-1][1].left=o[a][1];break;case 1:o[a-1][1].right=o[a][1];break;case 0:o[a-1][1].mid=o[a][1];break}else this._root=o[0][1]}}return r}get(e){var t;return(t=this._getNode(e))===null||t===void 0?void 0:t.value}_getNode(e){const t=this._iter.reset(e);let i=this._root;for(;i;){const s=t.cmp(i.segment);if(s>0)i=i.left;else if(s<0)i=i.right;else if(t.hasNext())t.next(),i=i.mid;else break}return i}has(e){const t=this._getNode(e);return!((t==null?void 0:t.value)===void 0&&(t==null?void 0:t.mid)===void 0)}delete(e){return this._delete(e,!1)}deleteSuperstr(e){return this._delete(e,!0)}_delete(e,t){var i;const s=this._iter.reset(e),o=[];let r=this._root;for(;r;){const a=s.cmp(r.segment);if(a>0)o.push([-1,r]),r=r.left;else if(a<0)o.push([1,r]),r=r.right;else if(s.hasNext())s.next(),o.push([0,r]),r=r.mid;else break}if(r){if(t?(r.left=void 0,r.mid=void 0,r.right=void 0,r.height=1):(r.key=void 0,r.value=void 0),!r.mid&&!r.value)if(r.left&&r.right){const a=this._min(r.right);if(a.key){const{key:l,value:c,segment:d}=a;this._delete(a.key,!1),r.key=l,r.value=c,r.segment=d}}else{const a=(i=r.left)!==null&&i!==void 0?i:r.right;if(o.length>0){const[l,c]=o[o.length-1];switch(l){case-1:c.left=a;break;case 0:c.mid=a;break;case 1:c.right=a;break}}else this._root=a}for(let a=o.length-1;a>=0;a--){const l=o[a][1];l.updateHeight();const c=l.balanceFactor();if(c>1?(l.right.balanceFactor()>=0||(l.right=l.right.rotateRight()),o[a][1]=l.rotateLeft()):c<-1&&(l.left.balanceFactor()<=0||(l.left=l.left.rotateLeft()),o[a][1]=l.rotateRight()),a>0)switch(o[a-1][0]){case-1:o[a-1][1].left=o[a][1];break;case 1:o[a-1][1].right=o[a][1];break;case 0:o[a-1][1].mid=o[a][1];break}else this._root=o[0][1]}}}_min(e){for(;e.left;)e=e.left;return e}findSubstr(e){const t=this._iter.reset(e);let i=this._root,s;for(;i;){const o=t.cmp(i.segment);if(o>0)i=i.left;else if(o<0)i=i.right;else if(t.hasNext())t.next(),s=i.value||s,i=i.mid;else break}return i&&i.value||s}findSuperstr(e){return this._findSuperstrOrElement(e,!1)}_findSuperstrOrElement(e,t){const i=this._iter.reset(e);let s=this._root;for(;s;){const o=i.cmp(s.segment);if(o>0)s=s.left;else if(o<0)s=s.right;else if(i.hasNext())i.next(),s=s.mid;else return s.mid?this._entries(s.mid):t?s.value:void 0}}forEach(e){for(const[t,i]of this)e(i,t)}*[Symbol.iterator](){yield*this._entries(this._root)}_entries(e){const t=[];return this._dfsEntries(e,t),t[Symbol.iterator]()}_dfsEntries(e,t){e&&(e.left&&this._dfsEntries(e.left,t),e.value&&t.push([e.key,e.value]),e.mid&&this._dfsEntries(e.mid,t),e.right&&this._dfsEntries(e.right,t))}}const b0=Jt(\"contextService\");function C9(n){const e=n;return typeof(e==null?void 0:e.id)==\"string\"&&pt.isUri(e.uri)}function DHe(n){const e=n;return typeof(e==null?void 0:e.id)==\"string\"&&!C9(n)&&!THe(n)}const IHe={id:\"empty-window\"};function EHe(n,e){if(typeof n==\"string\"||typeof n>\"u\")return typeof n==\"string\"?{id:dm(n)}:IHe;const t=n;return t.configuration?{id:t.id,configPath:t.configuration}:t.folders.length===1?{id:t.id,uri:t.folders[0].uri}:{id:t.id}}function THe(n){const e=n;return typeof(e==null?void 0:e.id)==\"string\"&&pt.isUri(e.configPath)}class NHe{constructor(e,t){this.raw=t,this.uri=e.uri,this.index=e.index,this.name=e.name}toJSON(){return{uri:this.uri,name:this.name,index:this.index}}}const w9=\"code-workspace\";v(\"codeWorkspace\",\"Code Workspace\");const Dde=\"4064f6ec-cb38-4ad0-af64-ee6467e63c82\";function AHe(n){return n.id===Dde}var y9;(function(n){n.inspectTokensAction=v(\"inspectTokens\",\"Developer: Inspect Tokens\")})(y9||(y9={}));var CA;(function(n){n.gotoLineActionLabel=v(\"gotoLineActionLabel\",\"Go to Line/Column...\")})(CA||(CA={}));var S9;(function(n){n.helpQuickAccessActionLabel=v(\"helpQuickAccess\",\"Show all Quick Access Providers\")})(S9||(S9={}));var wA;(function(n){n.quickCommandActionLabel=v(\"quickCommandActionLabel\",\"Command Palette\"),n.quickCommandHelp=v(\"quickCommandActionHelp\",\"Show And Run Commands\")})(wA||(wA={}));var VL;(function(n){n.quickOutlineActionLabel=v(\"quickOutlineActionLabel\",\"Go to Symbol...\"),n.quickOutlineByCategoryActionLabel=v(\"quickOutlineByCategoryActionLabel\",\"Go to Symbol by Category...\")})(VL||(VL={}));var yA;(function(n){n.editorViewAccessibleLabel=v(\"editorViewAccessibleLabel\",\"Editor content\"),n.accessibilityHelpMessage=v(\"accessibilityHelpMessage\",\"Press Alt+F1 for Accessibility Options.\")})(yA||(yA={}));var x9;(function(n){n.toggleHighContrast=v(\"toggleHighContrast\",\"Toggle High Contrast Theme\")})(x9||(x9={}));var L9;(function(n){n.bulkEditServiceSummary=v(\"bulkEditServiceSummary\",\"Made {0} edits in {1} files\")})(L9||(L9={}));const Ide=Jt(\"workspaceTrustManagementService\");let YC=[],y$=[],Ede=[];function aT(n,e=!1){RHe(n,!1,e)}function RHe(n,e,t){const i=MHe(n,e);YC.push(i),i.userConfigured?Ede.push(i):y$.push(i),t&&!i.userConfigured&&YC.forEach(s=>{s.mime===i.mime||s.userConfigured||(i.extension&&s.extension===i.extension&&console.warn(`Overwriting extension <<${i.extension}>> to now point to mime <<${i.mime}>>`),i.filename&&s.filename===i.filename&&console.warn(`Overwriting filename <<${i.filename}>> to now point to mime <<${i.mime}>>`),i.filepattern&&s.filepattern===i.filepattern&&console.warn(`Overwriting filepattern <<${i.filepattern}>> to now point to mime <<${i.mime}>>`),i.firstline&&s.firstline===i.firstline&&console.warn(`Overwriting firstline <<${i.firstline}>> to now point to mime <<${i.mime}>>`))})}function MHe(n,e){return{id:n.id,mime:n.mime,filename:n.filename,extension:n.extension,filepattern:n.filepattern,firstline:n.firstline,userConfigured:e,filenameLowercase:n.filename?n.filename.toLowerCase():void 0,extensionLowercase:n.extension?n.extension.toLowerCase():void 0,filepatternLowercase:n.filepattern?rde(n.filepattern.toLowerCase()):void 0,filepatternOnPath:n.filepattern?n.filepattern.indexOf(ks.sep)>=0:!1}}function PHe(){YC=YC.filter(n=>n.userConfigured),y$=[]}function OHe(n,e){return FHe(n,e).map(t=>t.id)}function FHe(n,e){let t;if(n)switch(n.scheme){case Tt.file:t=n.fsPath;break;case Tt.data:{t=Vm.parseMetaData(n).get(Vm.META_DATA_LABEL);break}case Tt.vscodeNotebookCell:t=void 0;break;default:t=n.path}if(!t)return[{id:\"unknown\",mime:ss.unknown}];t=t.toLowerCase();const i=dm(t),s=gJ(t,i,Ede);if(s)return[s,{id:bl,mime:ss.text}];const o=gJ(t,i,y$);if(o)return[o,{id:bl,mime:ss.text}];if(e){const r=BHe(e);if(r)return[r,{id:bl,mime:ss.text}]}return[{id:\"unknown\",mime:ss.unknown}]}function gJ(n,e,t){var i;let s,o,r;for(let a=t.length-1;a>=0;a--){const l=t[a];if(e===l.filenameLowercase){s=l;break}if(l.filepattern&&(!o||l.filepattern.length>o.filepattern.length)){const c=l.filepatternOnPath?n:e;!((i=l.filepatternLowercase)===null||i===void 0)&&i.call(l,c)&&(o=l)}l.extension&&(!r||l.extension.length>r.extension.length)&&e.endsWith(l.extensionLowercase)&&(r=l)}if(s)return s;if(o)return o;if(r)return r}function BHe(n){if(YV(n)&&(n=n.substr(1)),n.length>0)for(let e=YC.length-1;e>=0;e--){const t=YC[e];if(!t.firstline)continue;const i=n.match(t.firstline);if(i&&i.length>0)return t}}const lT=Object.prototype.hasOwnProperty,pJ=\"vs.editor.nullLanguage\";class WHe{constructor(){this._languageIdToLanguage=[],this._languageToLanguageId=new Map,this._register(pJ,0),this._register(bl,1),this._nextLanguageId=2}_register(e,t){this._languageIdToLanguage[t]=e,this._languageToLanguageId.set(e,t)}register(e){if(this._languageToLanguageId.has(e))return;const t=this._nextLanguageId++;this._register(e,t)}encodeLanguageId(e){return this._languageToLanguageId.get(e)||0}decodeLanguageId(e){return this._languageIdToLanguage[e]||pJ}}class zL extends ne{constructor(e=!0,t=!1){super(),this._onDidChange=this._register(new X),this.onDidChange=this._onDidChange.event,zL.instanceCount++,this._warnOnOverwrite=t,this.languageIdCodec=new WHe,this._dynamicLanguages=[],this._languages={},this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},e&&(this._initializeFromRegistry(),this._register(RC.onDidChangeLanguages(i=>{this._initializeFromRegistry()})))}dispose(){zL.instanceCount--,super.dispose()}_initializeFromRegistry(){this._languages={},this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},PHe();const e=[].concat(RC.getLanguages()).concat(this._dynamicLanguages);this._registerLanguages(e)}_registerLanguages(e){for(const t of e)this._registerLanguage(t);this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},Object.keys(this._languages).forEach(t=>{const i=this._languages[t];i.name&&(this._nameMap[i.name]=i.identifier),i.aliases.forEach(s=>{this._lowercaseNameMap[s.toLowerCase()]=i.identifier}),i.mimetypes.forEach(s=>{this._mimeTypesMap[s]=i.identifier})}),Un.as(_u.Configuration).registerOverrideIdentifiers(this.getRegisteredLanguageIds()),this._onDidChange.fire()}_registerLanguage(e){const t=e.id;let i;lT.call(this._languages,t)?i=this._languages[t]:(this.languageIdCodec.register(t),i={identifier:t,name:null,mimetypes:[],aliases:[],extensions:[],filenames:[],configurationFiles:[],icons:[]},this._languages[t]=i),this._mergeLanguage(i,e)}_mergeLanguage(e,t){const i=t.id;let s=null;if(Array.isArray(t.mimetypes)&&t.mimetypes.length>0&&(e.mimetypes.push(...t.mimetypes),s=t.mimetypes[0]),s||(s=`text/x-${i}`,e.mimetypes.push(s)),Array.isArray(t.extensions)){t.configuration?e.extensions=t.extensions.concat(e.extensions):e.extensions=e.extensions.concat(t.extensions);for(const a of t.extensions)aT({id:i,mime:s,extension:a},this._warnOnOverwrite)}if(Array.isArray(t.filenames))for(const a of t.filenames)aT({id:i,mime:s,filename:a},this._warnOnOverwrite),e.filenames.push(a);if(Array.isArray(t.filenamePatterns))for(const a of t.filenamePatterns)aT({id:i,mime:s,filepattern:a},this._warnOnOverwrite);if(typeof t.firstLine==\"string\"&&t.firstLine.length>0){let a=t.firstLine;a.charAt(0)!==\"^\"&&(a=\"^\"+a);try{const l=new RegExp(a);pRe(l)||aT({id:i,mime:s,firstline:l},this._warnOnOverwrite)}catch(l){console.warn(`[${t.id}]: Invalid regular expression \\`${a}\\`: `,l)}}e.aliases.push(i);let o=null;if(typeof t.aliases<\"u\"&&Array.isArray(t.aliases)&&(t.aliases.length===0?o=[null]:o=t.aliases),o!==null)for(const a of o)!a||a.length===0||e.aliases.push(a);const r=o!==null&&o.length>0;if(!(r&&o[0]===null)){const a=(r?o[0]:null)||i;(r||!e.name)&&(e.name=a)}t.configuration&&e.configurationFiles.push(t.configuration),t.icon&&e.icons.push(t.icon)}isRegisteredLanguageId(e){return e?lT.call(this._languages,e):!1}getRegisteredLanguageIds(){return Object.keys(this._languages)}getLanguageIdByLanguageName(e){const t=e.toLowerCase();return lT.call(this._lowercaseNameMap,t)?this._lowercaseNameMap[t]:null}getLanguageIdByMimeType(e){return e&&lT.call(this._mimeTypesMap,e)?this._mimeTypesMap[e]:null}guessLanguageIdByFilepathOrFirstLine(e,t){return!e&&!t?[]:OHe(e,t)}}zL.instanceCount=0;class $L extends ne{constructor(e=!1){super(),this._onDidRequestBasicLanguageFeatures=this._register(new X),this.onDidRequestBasicLanguageFeatures=this._onDidRequestBasicLanguageFeatures.event,this._onDidRequestRichLanguageFeatures=this._register(new X),this.onDidRequestRichLanguageFeatures=this._onDidRequestRichLanguageFeatures.event,this._onDidChange=this._register(new X({leakWarningThreshold:200})),this.onDidChange=this._onDidChange.event,this._requestedBasicLanguages=new Set,this._requestedRichLanguages=new Set,$L.instanceCount++,this._registry=this._register(new zL(!0,e)),this.languageIdCodec=this._registry.languageIdCodec,this._register(this._registry.onDidChange(()=>this._onDidChange.fire()))}dispose(){$L.instanceCount--,super.dispose()}isRegisteredLanguageId(e){return this._registry.isRegisteredLanguageId(e)}getLanguageIdByLanguageName(e){return this._registry.getLanguageIdByLanguageName(e)}getLanguageIdByMimeType(e){return this._registry.getLanguageIdByMimeType(e)}guessLanguageIdByFilepathOrFirstLine(e,t){const i=this._registry.guessLanguageIdByFilepathOrFirstLine(e,t);return NV(i,null)}createById(e){return new mJ(this.onDidChange,()=>this._createAndGetLanguageIdentifier(e))}createByFilepathOrFirstLine(e,t){return new mJ(this.onDidChange,()=>{const i=this.guessLanguageIdByFilepathOrFirstLine(e,t);return this._createAndGetLanguageIdentifier(i)})}_createAndGetLanguageIdentifier(e){return(!e||!this.isRegisteredLanguageId(e))&&(e=bl),e}requestBasicLanguageFeatures(e){this._requestedBasicLanguages.has(e)||(this._requestedBasicLanguages.add(e),this._onDidRequestBasicLanguageFeatures.fire(e))}requestRichLanguageFeatures(e){this._requestedRichLanguages.has(e)||(this._requestedRichLanguages.add(e),this.requestBasicLanguageFeatures(e),Zn.getOrCreate(e),this._onDidRequestRichLanguageFeatures.fire(e))}}$L.instanceCount=0;class mJ{constructor(e,t){this._onDidChangeLanguages=e,this._selector=t,this._listener=null,this._emitter=null,this.languageId=this._selector()}_dispose(){this._listener&&(this._listener.dispose(),this._listener=null),this._emitter&&(this._emitter.dispose(),this._emitter=null)}get onDidChange(){return this._listener||(this._listener=this._onDidChangeLanguages(()=>this._evaluate())),this._emitter||(this._emitter=new X({onDidRemoveLastListener:()=>{this._dispose()}})),this._emitter.event}_evaluate(){var e;const t=this._selector();t!==this.languageId&&(this.languageId=t,(e=this._emitter)===null||e===void 0||e.fire(this.languageId))}}const UL={RESOURCES:\"ResourceURLs\",TEXT:ss.text,INTERNAL_URI_LIST:\"application/vnd.code.uri-list\"},HHe=()=>({get delay(){return-1},dispose:()=>{},showHover:()=>{}});let QM=HHe;const VHe=new pu(()=>QM(\"mouse\",!1)),zHe=new pu(()=>QM(\"element\",!1));function $He(n){QM=n}function Ur(n){return n===\"element\"?zHe.value:VHe.value}function XC(){return QM(\"element\",!0)}let Tde={showHover:()=>{},hideHover:()=>{},showAndFocusLastHover:()=>{},setupUpdatableHover:()=>null,triggerUpdatableHover:()=>{}};function UHe(n){Tde=n}function bu(){return Tde}class jHe{constructor(e){this.spliceables=e}splice(e,t,i){this.spliceables.forEach(s=>s.splice(e,t,i))}}class j_ extends Error{constructor(e,t){super(`ListError [${e}] ${t}`)}}function _J(n,e){const t=[];for(const i of e){if(n.start>=i.range.end)continue;if(n.end<i.range.start)break;const s=Ho.intersect(n,i.range);Ho.isEmpty(s)||t.push({range:s,size:i.size})}return t}function k9({start:n,end:e},t){return{start:n+t,end:e+t}}function KHe(n){const e=[];let t=null;for(const i of n){const s=i.range.start,o=i.range.end,r=i.size;if(t&&r===t.size){t.range.end=o;continue}t={range:{start:s,end:o},size:r},e.push(t)}return e}function qHe(...n){return KHe(n.reduce((e,t)=>e.concat(t),[]))}class GHe{get paddingTop(){return this._paddingTop}set paddingTop(e){this._size=this._size+e-this._paddingTop,this._paddingTop=e}constructor(e){this.groups=[],this._size=0,this._paddingTop=0,this._paddingTop=e??0,this._size=this._paddingTop}splice(e,t,i=[]){const s=i.length-t,o=_J({start:0,end:e},this.groups),r=_J({start:e+t,end:Number.POSITIVE_INFINITY},this.groups).map(l=>({range:k9(l.range,s),size:l.size})),a=i.map((l,c)=>({range:{start:e+c,end:e+c+1},size:l.size}));this.groups=qHe(o,a,r),this._size=this._paddingTop+this.groups.reduce((l,c)=>l+c.size*(c.range.end-c.range.start),0)}get count(){const e=this.groups.length;return e?this.groups[e-1].range.end:0}get size(){return this._size}indexAt(e){if(e<0)return-1;if(e<this._paddingTop)return 0;let t=0,i=this._paddingTop;for(const s of this.groups){const o=s.range.end-s.range.start,r=i+o*s.size;if(e<r)return t+Math.floor((e-i)/s.size);t+=o,i=r}return t}indexAfter(e){return Math.min(this.indexAt(e)+1,this.count)}positionAt(e){if(e<0)return-1;let t=0,i=0;for(const s of this.groups){const o=s.range.end-s.range.start,r=i+o;if(e<r)return this._paddingTop+t+(e-i)*s.size;t+=o*s.size,i=r}return-1}}function ZHe(n){var e;try{(e=n.parentElement)===null||e===void 0||e.removeChild(n)}catch{}}class YHe{constructor(e){this.renderers=e,this.cache=new Map,this.transactionNodesPendingRemoval=new Set,this.inTransaction=!1}alloc(e){let t=this.getTemplateCache(e).pop(),i=!1;if(t)i=this.transactionNodesPendingRemoval.has(t.domNode),i&&this.transactionNodesPendingRemoval.delete(t.domNode);else{const s=ke(\".monaco-list-row\"),r=this.getRenderer(e).renderTemplate(s);t={domNode:s,templateId:e,templateData:r}}return{row:t,isReusingConnectedDomNode:i}}release(e){e&&this.releaseRow(e)}transact(e){if(this.inTransaction)throw new Error(\"Already in transaction\");this.inTransaction=!0;try{e()}finally{for(const t of this.transactionNodesPendingRemoval)this.doRemoveNode(t);this.transactionNodesPendingRemoval.clear(),this.inTransaction=!1}}releaseRow(e){const{domNode:t,templateId:i}=e;t&&(this.inTransaction?this.transactionNodesPendingRemoval.add(t):this.doRemoveNode(t)),this.getTemplateCache(i).push(e)}doRemoveNode(e){e.classList.remove(\"scrolling\"),ZHe(e)}getTemplateCache(e){let t=this.cache.get(e);return t||(t=[],this.cache.set(e,t)),t}dispose(){this.cache.forEach((e,t)=>{for(const i of e)this.getRenderer(t).disposeTemplate(i.templateData),i.templateData=null}),this.cache.clear(),this.transactionNodesPendingRemoval.clear()}getRenderer(e){const t=this.renderers.get(e);if(!t)throw new Error(`No renderer found for ${e}`);return t}}var Hg=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o};const K_={CurrentDragAndDropData:void 0},Tu={useShadows:!0,verticalScrollMode:1,setRowLineHeight:!0,setRowHeight:!0,supportDynamicHeights:!1,dnd:{getDragElements(n){return[n]},getDragURI(){return null},onDragStart(){},onDragOver(){return!1},drop(){},dispose(){}},horizontalScrolling:!1,transformOptimization:!0,alwaysConsumeMouseWheel:!0};class TD{constructor(e){this.elements=e}update(){}getData(){return this.elements}}class XHe{constructor(e){this.elements=e}update(){}getData(){return this.elements}}class QHe{constructor(){this.types=[],this.files=[]}update(e){if(e.types&&this.types.splice(0,this.types.length,...e.types),e.files){this.files.splice(0,this.files.length);for(let t=0;t<e.files.length;t++){const i=e.files.item(t);i&&(i.size||i.type)&&this.files.push(i)}}}getData(){return{types:this.types,files:this.files}}}function JHe(n,e){return Array.isArray(n)&&Array.isArray(e)?zn(n,e):n===e}class eVe{constructor(e){e!=null&&e.getSetSize?this.getSetSize=e.getSetSize.bind(e):this.getSetSize=(t,i,s)=>s,e!=null&&e.getPosInSet?this.getPosInSet=e.getPosInSet.bind(e):this.getPosInSet=(t,i)=>i+1,e!=null&&e.getRole?this.getRole=e.getRole.bind(e):this.getRole=t=>\"listitem\",e!=null&&e.isChecked?this.isChecked=e.isChecked.bind(e):this.isChecked=t=>{}}}class vc{get contentHeight(){return this.rangeMap.size}get onDidScroll(){return this.scrollableElement.onScroll}get scrollableElementDomNode(){return this.scrollableElement.getDomNode()}get horizontalScrolling(){return this._horizontalScrolling}set horizontalScrolling(e){if(e!==this._horizontalScrolling){if(e&&this.supportDynamicHeights)throw new Error(\"Horizontal scrolling and dynamic heights not supported simultaneously\");if(this._horizontalScrolling=e,this.domNode.classList.toggle(\"horizontal-scrolling\",this._horizontalScrolling),this._horizontalScrolling){for(const t of this.items)this.measureItemWidth(t);this.updateScrollWidth(),this.scrollableElement.setScrollDimensions({width:MF(this.domNode)}),this.rowsContainer.style.width=`${Math.max(this.scrollWidth||0,this.renderWidth)}px`}else this.scrollableElementWidthDelayer.cancel(),this.scrollableElement.setScrollDimensions({width:this.renderWidth,scrollWidth:this.renderWidth}),this.rowsContainer.style.width=\"\"}}constructor(e,t,i,s=Tu){var o,r,a,l,c,d,u,h,f,g,p,_,b;if(this.virtualDelegate=t,this.domId=`list_id_${++vc.InstanceCount}`,this.renderers=new Map,this.renderWidth=0,this._scrollHeight=0,this.scrollableElementUpdateDisposable=null,this.scrollableElementWidthDelayer=new sd(50),this.splicing=!1,this.dragOverAnimationStopDisposable=ne.None,this.dragOverMouseY=0,this.canDrop=!1,this.currentDragFeedbackDisposable=ne.None,this.onDragLeaveTimeout=ne.None,this.disposables=new be,this._onDidChangeContentHeight=new X,this._onDidChangeContentWidth=new X,this.onDidChangeContentHeight=Ae.latch(this._onDidChangeContentHeight.event,void 0,this.disposables),this._horizontalScrolling=!1,s.horizontalScrolling&&s.supportDynamicHeights)throw new Error(\"Horizontal scrolling and dynamic heights not supported simultaneously\");this.items=[],this.itemId=0,this.rangeMap=this.createRangeMap((o=s.paddingTop)!==null&&o!==void 0?o:0);for(const y of i)this.renderers.set(y.templateId,y);this.cache=this.disposables.add(new YHe(this.renderers)),this.lastRenderTop=0,this.lastRenderHeight=0,this.domNode=document.createElement(\"div\"),this.domNode.className=\"monaco-list\",this.domNode.classList.add(this.domId),this.domNode.tabIndex=0,this.domNode.classList.toggle(\"mouse-support\",typeof s.mouseSupport==\"boolean\"?s.mouseSupport:!0),this._horizontalScrolling=(r=s.horizontalScrolling)!==null&&r!==void 0?r:Tu.horizontalScrolling,this.domNode.classList.toggle(\"horizontal-scrolling\",this._horizontalScrolling),this.paddingBottom=typeof s.paddingBottom>\"u\"?0:s.paddingBottom,this.accessibilityProvider=new eVe(s.accessibilityProvider),this.rowsContainer=document.createElement(\"div\"),this.rowsContainer.className=\"monaco-list-rows\",((a=s.transformOptimization)!==null&&a!==void 0?a:Tu.transformOptimization)&&(this.rowsContainer.style.transform=\"translate3d(0px, 0px, 0px)\",this.rowsContainer.style.overflow=\"hidden\",this.rowsContainer.style.contain=\"strict\"),this.disposables.add(hn.addTarget(this.rowsContainer)),this.scrollable=this.disposables.add(new Ww({forceIntegerValues:!0,smoothScrollDuration:(l=s.smoothScrolling)!==null&&l!==void 0&&l?125:0,scheduleAtNextAnimationFrame:y=>Oa(gt(this.domNode),y)})),this.scrollableElement=this.disposables.add(new MM(this.rowsContainer,{alwaysConsumeMouseWheel:(c=s.alwaysConsumeMouseWheel)!==null&&c!==void 0?c:Tu.alwaysConsumeMouseWheel,horizontal:1,vertical:(d=s.verticalScrollMode)!==null&&d!==void 0?d:Tu.verticalScrollMode,useShadows:(u=s.useShadows)!==null&&u!==void 0?u:Tu.useShadows,mouseWheelScrollSensitivity:s.mouseWheelScrollSensitivity,fastScrollSensitivity:s.fastScrollSensitivity,scrollByPage:s.scrollByPage},this.scrollable)),this.domNode.appendChild(this.scrollableElement.getDomNode()),e.appendChild(this.domNode),this.scrollableElement.onScroll(this.onScroll,this,this.disposables),this.disposables.add(ce(this.rowsContainer,fn.Change,y=>this.onTouchChange(y))),this.disposables.add(ce(this.scrollableElement.getDomNode(),\"scroll\",y=>y.target.scrollTop=0)),this.disposables.add(ce(this.domNode,\"dragover\",y=>this.onDragOver(this.toDragEvent(y)))),this.disposables.add(ce(this.domNode,\"drop\",y=>this.onDrop(this.toDragEvent(y)))),this.disposables.add(ce(this.domNode,\"dragleave\",y=>this.onDragLeave(this.toDragEvent(y)))),this.disposables.add(ce(this.domNode,\"dragend\",y=>this.onDragEnd(y))),this.setRowLineHeight=(h=s.setRowLineHeight)!==null&&h!==void 0?h:Tu.setRowLineHeight,this.setRowHeight=(f=s.setRowHeight)!==null&&f!==void 0?f:Tu.setRowHeight,this.supportDynamicHeights=(g=s.supportDynamicHeights)!==null&&g!==void 0?g:Tu.supportDynamicHeights,this.dnd=(p=s.dnd)!==null&&p!==void 0?p:this.disposables.add(Tu.dnd),this.layout((_=s.initialSize)===null||_===void 0?void 0:_.height,(b=s.initialSize)===null||b===void 0?void 0:b.width)}updateOptions(e){e.paddingBottom!==void 0&&(this.paddingBottom=e.paddingBottom,this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight})),e.smoothScrolling!==void 0&&this.scrollable.setSmoothScrollDuration(e.smoothScrolling?125:0),e.horizontalScrolling!==void 0&&(this.horizontalScrolling=e.horizontalScrolling);let t;if(e.scrollByPage!==void 0&&(t={...t??{},scrollByPage:e.scrollByPage}),e.mouseWheelScrollSensitivity!==void 0&&(t={...t??{},mouseWheelScrollSensitivity:e.mouseWheelScrollSensitivity}),e.fastScrollSensitivity!==void 0&&(t={...t??{},fastScrollSensitivity:e.fastScrollSensitivity}),t&&this.scrollableElement.updateOptions(t),e.paddingTop!==void 0&&e.paddingTop!==this.rangeMap.paddingTop){const i=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),s=e.paddingTop-this.rangeMap.paddingTop;this.rangeMap.paddingTop=e.paddingTop,this.render(i,Math.max(0,this.lastRenderTop+s),this.lastRenderHeight,void 0,void 0,!0),this.setScrollTop(this.lastRenderTop),this.eventuallyUpdateScrollDimensions(),this.supportDynamicHeights&&this._rerender(this.lastRenderTop,this.lastRenderHeight)}}createRangeMap(e){return new GHe(e)}splice(e,t,i=[]){if(this.splicing)throw new Error(\"Can't run recursive splices.\");this.splicing=!0;try{return this._splice(e,t,i)}finally{this.splicing=!1,this._onDidChangeContentHeight.fire(this.contentHeight)}}_splice(e,t,i=[]){const s=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),o={start:e,end:e+t},r=Ho.intersect(s,o),a=new Map;for(let x=r.end-1;x>=r.start;x--){const k=this.items[x];if(k.dragStartDisposable.dispose(),k.checkedDisposable.dispose(),k.row){let D=a.get(k.templateId);D||(D=[],a.set(k.templateId,D));const I=this.renderers.get(k.templateId);I&&I.disposeElement&&I.disposeElement(k.element,x,k.row.templateData,k.size),D.unshift(k.row)}k.row=null,k.stale=!0}const l={start:e+t,end:this.items.length},c=Ho.intersect(l,s),d=Ho.relativeComplement(l,s),u=i.map(x=>({id:String(this.itemId++),element:x,templateId:this.virtualDelegate.getTemplateId(x),size:this.virtualDelegate.getHeight(x),width:void 0,hasDynamicHeight:!!this.virtualDelegate.hasDynamicHeight&&this.virtualDelegate.hasDynamicHeight(x),lastDynamicHeightWidth:void 0,row:null,uri:void 0,dropTarget:!1,dragStartDisposable:ne.None,checkedDisposable:ne.None,stale:!1}));let h;e===0&&t>=this.items.length?(this.rangeMap=this.createRangeMap(this.rangeMap.paddingTop),this.rangeMap.splice(0,0,u),h=this.items,this.items=u):(this.rangeMap.splice(e,t,u),h=this.items.splice(e,t,...u));const f=i.length-t,g=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),p=k9(c,f),_=Ho.intersect(g,p);for(let x=_.start;x<_.end;x++)this.updateItemInDOM(this.items[x],x);const b=Ho.relativeComplement(p,g);for(const x of b)for(let k=x.start;k<x.end;k++)this.removeItemFromDOM(k);const w=d.map(x=>k9(x,f)),S=[{start:e,end:e+i.length},...w].map(x=>Ho.intersect(g,x)).reverse();for(const x of S)for(let k=x.end-1;k>=x.start;k--){const D=this.items[k],I=a.get(D.templateId),N=I==null?void 0:I.pop();this.insertItemInDOM(k,N)}for(const x of a.values())for(const k of x)this.cache.release(k);return this.eventuallyUpdateScrollDimensions(),this.supportDynamicHeights&&this._rerender(this.scrollTop,this.renderHeight),h.map(x=>x.element)}eventuallyUpdateScrollDimensions(){this._scrollHeight=this.contentHeight,this.rowsContainer.style.height=`${this._scrollHeight}px`,this.scrollableElementUpdateDisposable||(this.scrollableElementUpdateDisposable=Oa(gt(this.domNode),()=>{this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight}),this.updateScrollWidth(),this.scrollableElementUpdateDisposable=null}))}eventuallyUpdateScrollWidth(){if(!this.horizontalScrolling){this.scrollableElementWidthDelayer.cancel();return}this.scrollableElementWidthDelayer.trigger(()=>this.updateScrollWidth())}updateScrollWidth(){if(!this.horizontalScrolling)return;let e=0;for(const t of this.items)typeof t.width<\"u\"&&(e=Math.max(e,t.width));this.scrollWidth=e,this.scrollableElement.setScrollDimensions({scrollWidth:e===0?0:e+10}),this._onDidChangeContentWidth.fire(this.scrollWidth)}rerender(){if(this.supportDynamicHeights){for(const e of this.items)e.lastDynamicHeightWidth=void 0;this._rerender(this.lastRenderTop,this.lastRenderHeight)}}get length(){return this.items.length}get renderHeight(){return this.scrollableElement.getScrollDimensions().height}get firstVisibleIndex(){return this.getRenderRange(this.lastRenderTop,this.lastRenderHeight).start}element(e){return this.items[e].element}indexOf(e){return this.items.findIndex(t=>t.element===e)}domElement(e){const t=this.items[e].row;return t&&t.domNode}elementHeight(e){return this.items[e].size}elementTop(e){return this.rangeMap.positionAt(e)}indexAt(e){return this.rangeMap.indexAt(e)}indexAfter(e){return this.rangeMap.indexAfter(e)}layout(e,t){const i={height:typeof e==\"number\"?e:xMe(this.domNode)};this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,i.scrollHeight=this.scrollHeight),this.scrollableElement.setScrollDimensions(i),typeof t<\"u\"&&(this.renderWidth=t,this.supportDynamicHeights&&this._rerender(this.scrollTop,this.renderHeight)),this.horizontalScrolling&&this.scrollableElement.setScrollDimensions({width:typeof t==\"number\"?t:MF(this.domNode)})}render(e,t,i,s,o,r=!1){const a=this.getRenderRange(t,i),l=Ho.relativeComplement(a,e).reverse(),c=Ho.relativeComplement(e,a);if(r){const d=Ho.intersect(e,a);for(let u=d.start;u<d.end;u++)this.updateItemInDOM(this.items[u],u)}this.cache.transact(()=>{for(const d of c)for(let u=d.start;u<d.end;u++)this.removeItemFromDOM(u);for(const d of l)for(let u=d.end-1;u>=d.start;u--)this.insertItemInDOM(u)}),s!==void 0&&(this.rowsContainer.style.left=`-${s}px`),this.rowsContainer.style.top=`-${t}px`,this.horizontalScrolling&&o!==void 0&&(this.rowsContainer.style.width=`${Math.max(o,this.renderWidth)}px`),this.lastRenderTop=t,this.lastRenderHeight=i}insertItemInDOM(e,t){var i,s,o;const r=this.items[e];if(!r.row)if(t)r.row=t,r.stale=!0;else{const u=this.cache.alloc(r.templateId);r.row=u.row,r.stale||(r.stale=u.isReusingConnectedDomNode)}const a=this.accessibilityProvider.getRole(r.element)||\"listitem\";r.row.domNode.setAttribute(\"role\",a);const l=this.accessibilityProvider.isChecked(r.element);if(typeof l==\"boolean\")r.row.domNode.setAttribute(\"aria-checked\",String(!!l));else if(l){const u=h=>r.row.domNode.setAttribute(\"aria-checked\",String(!!h));u(l.value),r.checkedDisposable=l.onDidChange(()=>u(l.value))}if(r.stale||!r.row.domNode.parentElement){const u=(o=(s=(i=this.items.at(e+1))===null||i===void 0?void 0:i.row)===null||s===void 0?void 0:s.domNode)!==null&&o!==void 0?o:null;(r.row.domNode.parentElement!==this.rowsContainer||r.row.domNode.nextElementSibling!==u)&&this.rowsContainer.insertBefore(r.row.domNode,u),r.stale=!1}this.updateItemInDOM(r,e);const c=this.renderers.get(r.templateId);if(!c)throw new Error(`No renderer found for template id ${r.templateId}`);c==null||c.renderElement(r.element,e,r.row.templateData,r.size);const d=this.dnd.getDragURI(r.element);r.dragStartDisposable.dispose(),r.row.domNode.draggable=!!d,d&&(r.dragStartDisposable=ce(r.row.domNode,\"dragstart\",u=>this.onDragStart(r.element,d,u))),this.horizontalScrolling&&(this.measureItemWidth(r),this.eventuallyUpdateScrollWidth())}measureItemWidth(e){if(!e.row||!e.row.domNode)return;e.row.domNode.style.width=\"fit-content\",e.width=MF(e.row.domNode);const t=gt(e.row.domNode).getComputedStyle(e.row.domNode);t.paddingLeft&&(e.width+=parseFloat(t.paddingLeft)),t.paddingRight&&(e.width+=parseFloat(t.paddingRight)),e.row.domNode.style.width=\"\"}updateItemInDOM(e,t){e.row.domNode.style.top=`${this.elementTop(t)}px`,this.setRowHeight&&(e.row.domNode.style.height=`${e.size}px`),this.setRowLineHeight&&(e.row.domNode.style.lineHeight=`${e.size}px`),e.row.domNode.setAttribute(\"data-index\",`${t}`),e.row.domNode.setAttribute(\"data-last-element\",t===this.length-1?\"true\":\"false\"),e.row.domNode.setAttribute(\"data-parity\",t%2===0?\"even\":\"odd\"),e.row.domNode.setAttribute(\"aria-setsize\",String(this.accessibilityProvider.getSetSize(e.element,t,this.length))),e.row.domNode.setAttribute(\"aria-posinset\",String(this.accessibilityProvider.getPosInSet(e.element,t))),e.row.domNode.setAttribute(\"id\",this.getElementDomId(t)),e.row.domNode.classList.toggle(\"drop-target\",e.dropTarget)}removeItemFromDOM(e){const t=this.items[e];if(t.dragStartDisposable.dispose(),t.checkedDisposable.dispose(),t.row){const i=this.renderers.get(t.templateId);i&&i.disposeElement&&i.disposeElement(t.element,e,t.row.templateData,t.size),this.cache.release(t.row),t.row=null}this.horizontalScrolling&&this.eventuallyUpdateScrollWidth()}getScrollTop(){return this.scrollableElement.getScrollPosition().scrollTop}setScrollTop(e,t){this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight})),this.scrollableElement.setScrollPosition({scrollTop:e,reuseAnimation:t})}get scrollTop(){return this.getScrollTop()}set scrollTop(e){this.setScrollTop(e)}get scrollHeight(){return this._scrollHeight+(this.horizontalScrolling?10:0)+this.paddingBottom}get onMouseClick(){return Ae.map(this.disposables.add(new ei(this.domNode,\"click\")).event,e=>this.toMouseEvent(e),this.disposables)}get onMouseDblClick(){return Ae.map(this.disposables.add(new ei(this.domNode,\"dblclick\")).event,e=>this.toMouseEvent(e),this.disposables)}get onMouseMiddleClick(){return Ae.filter(Ae.map(this.disposables.add(new ei(this.domNode,\"auxclick\")).event,e=>this.toMouseEvent(e),this.disposables),e=>e.browserEvent.button===1,this.disposables)}get onMouseDown(){return Ae.map(this.disposables.add(new ei(this.domNode,\"mousedown\")).event,e=>this.toMouseEvent(e),this.disposables)}get onMouseOver(){return Ae.map(this.disposables.add(new ei(this.domNode,\"mouseover\")).event,e=>this.toMouseEvent(e),this.disposables)}get onMouseOut(){return Ae.map(this.disposables.add(new ei(this.domNode,\"mouseout\")).event,e=>this.toMouseEvent(e),this.disposables)}get onContextMenu(){return Ae.any(Ae.map(this.disposables.add(new ei(this.domNode,\"contextmenu\")).event,e=>this.toMouseEvent(e),this.disposables),Ae.map(this.disposables.add(new ei(this.domNode,fn.Contextmenu)).event,e=>this.toGestureEvent(e),this.disposables))}get onTouchStart(){return Ae.map(this.disposables.add(new ei(this.domNode,\"touchstart\")).event,e=>this.toTouchEvent(e),this.disposables)}get onTap(){return Ae.map(this.disposables.add(new ei(this.rowsContainer,fn.Tap)).event,e=>this.toGestureEvent(e),this.disposables)}toMouseEvent(e){const t=this.getItemIndexFromEventTarget(e.target||null),i=typeof t>\"u\"?void 0:this.items[t],s=i&&i.element;return{browserEvent:e,index:t,element:s}}toTouchEvent(e){const t=this.getItemIndexFromEventTarget(e.target||null),i=typeof t>\"u\"?void 0:this.items[t],s=i&&i.element;return{browserEvent:e,index:t,element:s}}toGestureEvent(e){const t=this.getItemIndexFromEventTarget(e.initialTarget||null),i=typeof t>\"u\"?void 0:this.items[t],s=i&&i.element;return{browserEvent:e,index:t,element:s}}toDragEvent(e){const t=this.getItemIndexFromEventTarget(e.target||null),i=typeof t>\"u\"?void 0:this.items[t],s=i&&i.element,o=this.getTargetSector(e,t);return{browserEvent:e,index:t,element:s,sector:o}}onScroll(e){try{const t=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight);this.render(t,e.scrollTop,e.height,e.scrollLeft,e.scrollWidth),this.supportDynamicHeights&&this._rerender(e.scrollTop,e.height,e.inSmoothScrolling)}catch(t){throw console.error(\"Got bad scroll event:\",e),t}}onTouchChange(e){e.preventDefault(),e.stopPropagation(),this.scrollTop-=e.translationY}onDragStart(e,t,i){var s,o;if(!i.dataTransfer)return;const r=this.dnd.getDragElements(e);if(i.dataTransfer.effectAllowed=\"copyMove\",i.dataTransfer.setData(UL.TEXT,t),i.dataTransfer.setDragImage){let a;this.dnd.getDragLabel&&(a=this.dnd.getDragLabel(r,i)),typeof a>\"u\"&&(a=String(r.length));const l=ke(\".monaco-drag-image\");l.textContent=a;const d=(u=>{for(;u&&!u.classList.contains(\"monaco-workbench\");)u=u.parentElement;return u||this.domNode.ownerDocument})(this.domNode);d.appendChild(l),i.dataTransfer.setDragImage(l,-10,-10),setTimeout(()=>d.removeChild(l),0)}this.domNode.classList.add(\"dragging\"),this.currentDragData=new TD(r),K_.CurrentDragAndDropData=new XHe(r),(o=(s=this.dnd).onDragStart)===null||o===void 0||o.call(s,this.currentDragData,i)}onDragOver(e){var t,i;if(e.browserEvent.preventDefault(),this.onDragLeaveTimeout.dispose(),K_.CurrentDragAndDropData&&K_.CurrentDragAndDropData.getData()===\"vscode-ui\"||(this.setupDragAndDropScrollTopAnimation(e.browserEvent),!e.browserEvent.dataTransfer))return!1;if(!this.currentDragData)if(K_.CurrentDragAndDropData)this.currentDragData=K_.CurrentDragAndDropData;else{if(!e.browserEvent.dataTransfer.types)return!1;this.currentDragData=new QHe}const s=this.dnd.onDragOver(this.currentDragData,e.element,e.index,e.sector,e.browserEvent);if(this.canDrop=typeof s==\"boolean\"?s:s.accept,!this.canDrop)return this.currentDragFeedback=void 0,this.currentDragFeedbackDisposable.dispose(),!1;e.browserEvent.dataTransfer.dropEffect=typeof s!=\"boolean\"&&((t=s.effect)===null||t===void 0?void 0:t.type)===0?\"copy\":\"move\";let o;typeof s!=\"boolean\"&&s.feedback?o=s.feedback:typeof e.index>\"u\"?o=[-1]:o=[e.index],o=xg(o).filter(a=>a>=-1&&a<this.length).sort((a,l)=>a-l),o=o[0]===-1?[-1]:o;let r=typeof s!=\"boolean\"&&s.effect&&s.effect.position?s.effect.position:\"drop-target\";if(JHe(this.currentDragFeedback,o)&&this.currentDragFeedbackPosition===r)return!0;if(this.currentDragFeedback=o,this.currentDragFeedbackPosition=r,this.currentDragFeedbackDisposable.dispose(),o[0]===-1)this.domNode.classList.add(r),this.rowsContainer.classList.add(r),this.currentDragFeedbackDisposable=dt(()=>{this.domNode.classList.remove(r),this.rowsContainer.classList.remove(r)});else{if(o.length>1&&r!==\"drop-target\")throw new Error(\"Can't use multiple feedbacks with position different than 'over'\");r===\"drop-target-after\"&&o[0]<this.length-1&&(o[0]+=1,r=\"drop-target-before\");for(const a of o){const l=this.items[a];l.dropTarget=!0,(i=l.row)===null||i===void 0||i.domNode.classList.add(r)}this.currentDragFeedbackDisposable=dt(()=>{var a;for(const l of o){const c=this.items[l];c.dropTarget=!1,(a=c.row)===null||a===void 0||a.domNode.classList.remove(r)}})}return!0}onDragLeave(e){var t,i;this.onDragLeaveTimeout.dispose(),this.onDragLeaveTimeout=Om(()=>this.clearDragOverFeedback(),100,this.disposables),this.currentDragData&&((i=(t=this.dnd).onDragLeave)===null||i===void 0||i.call(t,this.currentDragData,e.element,e.index,e.browserEvent))}onDrop(e){if(!this.canDrop)return;const t=this.currentDragData;this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.domNode.classList.remove(\"dragging\"),this.currentDragData=void 0,K_.CurrentDragAndDropData=void 0,!(!t||!e.browserEvent.dataTransfer)&&(e.browserEvent.preventDefault(),t.update(e.browserEvent.dataTransfer),this.dnd.drop(t,e.element,e.index,e.sector,e.browserEvent))}onDragEnd(e){var t,i;this.canDrop=!1,this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.domNode.classList.remove(\"dragging\"),this.currentDragData=void 0,K_.CurrentDragAndDropData=void 0,(i=(t=this.dnd).onDragEnd)===null||i===void 0||i.call(t,e)}clearDragOverFeedback(){this.currentDragFeedback=void 0,this.currentDragFeedbackPosition=void 0,this.currentDragFeedbackDisposable.dispose(),this.currentDragFeedbackDisposable=ne.None}setupDragAndDropScrollTopAnimation(e){if(!this.dragOverAnimationDisposable){const t=zae(this.domNode).top;this.dragOverAnimationDisposable=OMe(gt(this.domNode),this.animateDragAndDropScrollTop.bind(this,t))}this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationStopDisposable=Om(()=>{this.dragOverAnimationDisposable&&(this.dragOverAnimationDisposable.dispose(),this.dragOverAnimationDisposable=void 0)},1e3,this.disposables),this.dragOverMouseY=e.pageY}animateDragAndDropScrollTop(e){if(this.dragOverMouseY===void 0)return;const t=this.dragOverMouseY-e,i=this.renderHeight-35;t<35?this.scrollTop+=Math.max(-14,Math.floor(.3*(t-35))):t>i&&(this.scrollTop+=Math.min(14,Math.floor(.3*(t-i))))}teardownDragAndDropScrollTopAnimation(){this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationDisposable&&(this.dragOverAnimationDisposable.dispose(),this.dragOverAnimationDisposable=void 0)}getTargetSector(e,t){if(t===void 0)return;const i=e.offsetY/this.items[t].size,s=Math.floor(i/.25);return Sr(s,0,3)}getItemIndexFromEventTarget(e){const t=this.scrollableElement.getDomNode();let i=e;for(;co(i)&&i!==this.rowsContainer&&t.contains(i);){const s=i.getAttribute(\"data-index\");if(s){const o=Number(s);if(!isNaN(o))return o}i=i.parentElement}}getRenderRange(e,t){return{start:this.rangeMap.indexAt(e),end:this.rangeMap.indexAfter(e+t-1)}}_rerender(e,t,i){const s=this.getRenderRange(e,t);let o,r;e===this.elementTop(s.start)?(o=s.start,r=0):s.end-s.start>1&&(o=s.start+1,r=this.elementTop(o)-e);let a=0;for(;;){const l=this.getRenderRange(e,t);let c=!1;for(let d=l.start;d<l.end;d++){const u=this.probeDynamicHeight(d);u!==0&&this.rangeMap.splice(d,1,[this.items[d]]),a+=u,c=c||u!==0}if(!c){a!==0&&this.eventuallyUpdateScrollDimensions();const d=Ho.relativeComplement(s,l);for(const h of d)for(let f=h.start;f<h.end;f++)this.items[f].row&&this.removeItemFromDOM(f);const u=Ho.relativeComplement(l,s).reverse();for(const h of u)for(let f=h.end-1;f>=h.start;f--)this.insertItemInDOM(f);for(let h=l.start;h<l.end;h++)this.items[h].row&&this.updateItemInDOM(this.items[h],h);if(typeof o==\"number\"){const h=this.scrollable.getFutureScrollPosition().scrollTop-e,f=this.elementTop(o)-r+h;this.setScrollTop(f,i)}this._onDidChangeContentHeight.fire(this.contentHeight);return}}}probeDynamicHeight(e){var t,i,s;const o=this.items[e];if(this.virtualDelegate.getDynamicHeight){const c=this.virtualDelegate.getDynamicHeight(o.element);if(c!==null){const d=o.size;return o.size=c,o.lastDynamicHeightWidth=this.renderWidth,c-d}}if(!o.hasDynamicHeight||o.lastDynamicHeightWidth===this.renderWidth||this.virtualDelegate.hasDynamicHeight&&!this.virtualDelegate.hasDynamicHeight(o.element))return 0;const r=o.size;if(o.row)return o.row.domNode.style.height=\"\",o.size=o.row.domNode.offsetHeight,o.size===0&&!Zs(o.row.domNode,gt(o.row.domNode).document.body)&&console.warn(\"Measuring item node that is not in DOM! Add ListView to the DOM before measuring row height!\"),o.lastDynamicHeightWidth=this.renderWidth,o.size-r;const{row:a}=this.cache.alloc(o.templateId);a.domNode.style.height=\"\",this.rowsContainer.appendChild(a.domNode);const l=this.renderers.get(o.templateId);if(!l)throw new Gi(\"Missing renderer for templateId: \"+o.templateId);return l.renderElement(o.element,e,a.templateData,void 0),o.size=a.domNode.offsetHeight,(t=l.disposeElement)===null||t===void 0||t.call(l,o.element,e,a.templateData,void 0),(s=(i=this.virtualDelegate).setDynamicHeight)===null||s===void 0||s.call(i,o.element,o.size),o.lastDynamicHeightWidth=this.renderWidth,this.rowsContainer.removeChild(a.domNode),this.cache.release(a),o.size-r}getElementDomId(e){return`${this.domId}_${e}`}dispose(){var e,t;for(const i of this.items)if(i.dragStartDisposable.dispose(),i.checkedDisposable.dispose(),i.row){const s=this.renderers.get(i.row.templateId);s&&((e=s.disposeElement)===null||e===void 0||e.call(s,i.element,-1,i.row.templateData,void 0),s.disposeTemplate(i.row.templateData))}this.items=[],this.domNode&&this.domNode.parentNode&&this.domNode.parentNode.removeChild(this.domNode),(t=this.dragOverAnimationDisposable)===null||t===void 0||t.dispose(),this.disposables.dispose()}}vc.InstanceCount=0;Hg([gs],vc.prototype,\"onMouseClick\",null);Hg([gs],vc.prototype,\"onMouseDblClick\",null);Hg([gs],vc.prototype,\"onMouseMiddleClick\",null);Hg([gs],vc.prototype,\"onMouseDown\",null);Hg([gs],vc.prototype,\"onMouseOver\",null);Hg([gs],vc.prototype,\"onMouseOut\",null);Hg([gs],vc.prototype,\"onContextMenu\",null);Hg([gs],vc.prototype,\"onTouchStart\",null);Hg([gs],vc.prototype,\"onTap\",null);const lu=(n,e)=>n===e;function D9(n=lu){return(e,t)=>zn(e,t,n)}function Nde(){return(n,e)=>n.equals(e)}function tVe(n,e,t){return!n||!e?n===e:t(n,e)}class ca{constructor(e,t,i){this.owner=e,this.debugNameSource=t,this.referenceFn=i}getDebugName(e){return iVe(e,this)}}const vJ=new Map,I9=new WeakMap;function iVe(n,e){var t;const i=I9.get(n);if(i)return i;const s=nVe(n,e);if(s){let o=(t=vJ.get(s))!==null&&t!==void 0?t:0;o++,vJ.set(s,o);const r=o===1?s:`${s}#${o}`;return I9.set(n,r),r}}function nVe(n,e){const t=I9.get(n);if(t)return t;const i=e.owner?oVe(e.owner)+\".\":\"\";let s;const o=e.debugNameSource;if(o!==void 0)if(typeof o==\"function\"){if(s=o(),s!==void 0)return i+s}else return i+o;const r=e.referenceFn;if(r!==void 0&&(s=JM(r),s!==void 0))return i+s;if(e.owner!==void 0){const a=sVe(e.owner,n);if(a!==void 0)return i+a}}function sVe(n,e){for(const t in n)if(n[t]===e)return t}const bJ=new Map,CJ=new WeakMap;function oVe(n){var e;const t=CJ.get(n);if(t)return t;const i=rVe(n);let s=(e=bJ.get(i))!==null&&e!==void 0?e:0;s++,bJ.set(i,s);const o=s===1?i:`${i}#${s}`;return CJ.set(n,o),o}function rVe(n){const e=n.constructor;return e?e.name:\"Object\"}function JM(n){const e=n.toString(),i=/\\/\\*\\*\\s*@description\\s*([^*]*)\\*\\//.exec(e),s=i?i[1]:void 0;return s==null?void 0:s.trim()}let aVe;function vh(){return aVe}let Ade;function lVe(n){Ade=n}let Rde;function cVe(n){Rde=n}class Mde{get TChange(){return null}reportChanges(){this.get()}read(e){return e?e.readObservable(this):this.get()}map(e,t){const i=t===void 0?void 0:e,s=t===void 0?e:t;return Rde({owner:i,debugName:()=>{const o=JM(s);if(o!==void 0)return o;const a=/^\\s*\\(?\\s*([a-zA-Z_$][a-zA-Z_$0-9]*)\\s*\\)?\\s*=>\\s*\\1(?:\\??)\\.([a-zA-Z_$][a-zA-Z_$0-9]*)\\s*$/.exec(s.toString());if(a)return`${this.debugName}.${a[2]}`;if(!i)return`${this.debugName} (mapped)`},debugReferenceFn:s},o=>s(this.read(o),o))}recomputeInitiallyAndOnChange(e,t){return e.add(Ade(this,t)),this}}class ND extends Mde{constructor(){super(...arguments),this.observers=new Set}addObserver(e){const t=this.observers.size;this.observers.add(e),t===0&&this.onFirstObserverAdded()}removeObserver(e){this.observers.delete(e)&&this.observers.size===0&&this.onLastObserverRemoved()}onFirstObserverAdded(){}onLastObserverRemoved(){}}function rn(n,e){const t=new eP(n,e);try{n(t)}finally{t.finish()}}let cT;function DN(n){if(cT)n(cT);else{const e=new eP(n,void 0);cT=e;try{n(e)}finally{e.finish(),cT=void 0}}}async function dVe(n,e){const t=new eP(n,e);try{await n(t)}finally{t.finish()}}function jL(n,e,t){n?e(n):rn(e,t)}class eP{constructor(e,t){var i;this._fn=e,this._getDebugName=t,this.updatingObservers=[],(i=vh())===null||i===void 0||i.handleBeginTransaction(this)}getDebugName(){return this._getDebugName?this._getDebugName():JM(this._fn)}updateObserver(e,t){this.updatingObservers.push({observer:e,observable:t}),e.beginUpdate(t)}finish(){var e;const t=this.updatingObservers;for(let i=0;i<t.length;i++){const{observer:s,observable:o}=t[i];s.endUpdate(o)}this.updatingObservers=null,(e=vh())===null||e===void 0||e.handleEndTransaction()}}function li(n,e){let t;return typeof n==\"string\"?t=new ca(void 0,n,void 0):t=new ca(n,void 0,void 0),new S$(t,e,lu)}function uVe(n,e){var t;return new S$(new ca(n.owner,n.debugName,void 0),e,(t=n.equalsFn)!==null&&t!==void 0?t:lu)}class S$ extends ND{get debugName(){var e;return(e=this._debugNameData.getDebugName(this))!==null&&e!==void 0?e:\"ObservableValue\"}constructor(e,t,i){super(),this._debugNameData=e,this._equalityComparator=i,this._value=t}get(){return this._value}set(e,t,i){var s;if(i===void 0&&this._equalityComparator(this._value,e))return;let o;t||(t=o=new eP(()=>{},()=>`Setting ${this.debugName}`));try{const r=this._value;this._setValue(e),(s=vh())===null||s===void 0||s.handleObservableChanged(this,{oldValue:r,newValue:e,change:i,didChange:!0,hadValue:!0});for(const a of this.observers)t.updateObserver(a,this),a.handleChange(this,i)}finally{o&&o.finish()}}toString(){return`${this.debugName}: ${this._value}`}_setValue(e){this._value=e}}function KL(n,e){let t;return typeof n==\"string\"?t=new ca(void 0,n,void 0):t=new ca(n,void 0,void 0),new hVe(t,e,lu)}class hVe extends S${_setValue(e){this._value!==e&&(this._value&&this._value.dispose(),this._value=e)}dispose(){var e;(e=this._value)===null||e===void 0||e.dispose()}}function Rt(n,e){return e!==void 0?new C0(new ca(n,void 0,e),e,void 0,void 0,void 0,lu):new C0(new ca(void 0,void 0,n),n,void 0,void 0,void 0,lu)}function Pde(n,e,t){return new gVe(new ca(n,void 0,e),e,void 0,void 0,void 0,lu,t)}function Uf(n,e){var t;return new C0(new ca(n.owner,n.debugName,n.debugReferenceFn),e,void 0,void 0,n.onLastObserverRemoved,(t=n.equalsFn)!==null&&t!==void 0?t:lu)}cVe(Uf);function fVe(n,e){var t;return new C0(new ca(n.owner,n.debugName,void 0),e,n.createEmptyChangeSummary,n.handleChange,void 0,(t=n.equalityComparer)!==null&&t!==void 0?t:lu)}function J0(n,e){let t,i;e===void 0?(t=n,i=void 0):(i=n,t=e);const s=new be;return new C0(new ca(i,void 0,t),o=>(s.clear(),t(o,s)),void 0,void 0,()=>s.dispose(),lu)}function zu(n,e){let t,i;e===void 0?(t=n,i=void 0):(i=n,t=e);const s=new be;return new C0(new ca(i,void 0,t),o=>{s.clear();const r=t(o);return r&&s.add(r),r},void 0,void 0,()=>s.dispose(),lu)}class C0 extends ND{get debugName(){var e;return(e=this._debugNameData.getDebugName(this))!==null&&e!==void 0?e:\"(anonymous)\"}constructor(e,t,i,s,o=void 0,r){var a,l;super(),this._debugNameData=e,this._computeFn=t,this.createChangeSummary=i,this._handleChange=s,this._handleLastObserverRemoved=o,this._equalityComparator=r,this.state=0,this.value=void 0,this.updateCount=0,this.dependencies=new Set,this.dependenciesToBeRemoved=new Set,this.changeSummary=void 0,this.changeSummary=(a=this.createChangeSummary)===null||a===void 0?void 0:a.call(this),(l=vh())===null||l===void 0||l.handleDerivedCreated(this)}onLastObserverRemoved(){var e;this.state=0,this.value=void 0;for(const t of this.dependencies)t.removeObserver(this);this.dependencies.clear(),(e=this._handleLastObserverRemoved)===null||e===void 0||e.call(this)}get(){var e;if(this.observers.size===0){const t=this._computeFn(this,(e=this.createChangeSummary)===null||e===void 0?void 0:e.call(this));return this.onLastObserverRemoved(),t}else{do{if(this.state===1){for(const t of this.dependencies)if(t.reportChanges(),this.state===2)break}this.state===1&&(this.state=3),this._recomputeIfNeeded()}while(this.state!==3);return this.value}}_recomputeIfNeeded(){var e,t;if(this.state===3)return;const i=this.dependenciesToBeRemoved;this.dependenciesToBeRemoved=this.dependencies,this.dependencies=i;const s=this.state!==0,o=this.value;this.state=3;const r=this.changeSummary;this.changeSummary=(e=this.createChangeSummary)===null||e===void 0?void 0:e.call(this);try{this.value=this._computeFn(this,r)}finally{for(const l of this.dependenciesToBeRemoved)l.removeObserver(this);this.dependenciesToBeRemoved.clear()}const a=s&&!this._equalityComparator(o,this.value);if((t=vh())===null||t===void 0||t.handleDerivedRecomputed(this,{oldValue:o,newValue:this.value,change:void 0,didChange:a,hadValue:s}),a)for(const l of this.observers)l.handleChange(this,void 0)}toString(){return`LazyDerived<${this.debugName}>`}beginUpdate(e){this.updateCount++;const t=this.updateCount===1;if(this.state===3&&(this.state=1,!t))for(const i of this.observers)i.handlePossibleChange(this);if(t)for(const i of this.observers)i.beginUpdate(this)}endUpdate(e){if(this.updateCount--,this.updateCount===0){const t=[...this.observers];for(const i of t)i.endUpdate(this)}g0(()=>this.updateCount>=0)}handlePossibleChange(e){if(this.state===3&&this.dependencies.has(e)&&!this.dependenciesToBeRemoved.has(e)){this.state=1;for(const t of this.observers)t.handlePossibleChange(this)}}handleChange(e,t){if(this.dependencies.has(e)&&!this.dependenciesToBeRemoved.has(e)){const i=this._handleChange?this._handleChange({changedObservable:e,change:t,didChange:o=>o===e},this.changeSummary):!0,s=this.state===3;if(i&&(this.state===1||s)&&(this.state=2,s))for(const o of this.observers)o.handlePossibleChange(this)}}readObservable(e){e.addObserver(this);const t=e.get();return this.dependencies.add(e),this.dependenciesToBeRemoved.delete(e),t}addObserver(e){const t=!this.observers.has(e)&&this.updateCount>0;super.addObserver(e),t&&e.beginUpdate(this)}removeObserver(e){const t=this.observers.has(e)&&this.updateCount>0;super.removeObserver(e),t&&e.endUpdate(this)}}class gVe extends C0{constructor(e,t,i,s,o=void 0,r,a){super(e,t,i,s,o,r),this.set=a}}function Ut(n){return new iP(new ca(void 0,void 0,n),n,void 0,void 0)}function tP(n,e){var t;return new iP(new ca(n.owner,n.debugName,(t=n.debugReferenceFn)!==null&&t!==void 0?t:e),e,void 0,void 0)}function AD(n,e){var t;return new iP(new ca(n.owner,n.debugName,(t=n.debugReferenceFn)!==null&&t!==void 0?t:e),e,n.createEmptyChangeSummary,n.handleChange)}function uc(n){const e=new be,t=tP({owner:void 0,debugName:void 0,debugReferenceFn:n},i=>{e.clear(),n(i,e)});return dt(()=>{t.dispose(),e.dispose()})}class iP{get debugName(){var e;return(e=this._debugNameData.getDebugName(this))!==null&&e!==void 0?e:\"(anonymous)\"}constructor(e,t,i,s){var o,r;this._debugNameData=e,this._runFn=t,this.createChangeSummary=i,this._handleChange=s,this.state=2,this.updateCount=0,this.disposed=!1,this.dependencies=new Set,this.dependenciesToBeRemoved=new Set,this.changeSummary=(o=this.createChangeSummary)===null||o===void 0?void 0:o.call(this),(r=vh())===null||r===void 0||r.handleAutorunCreated(this),this._runIfNeeded()}dispose(){this.disposed=!0;for(const e of this.dependencies)e.removeObserver(this);this.dependencies.clear()}_runIfNeeded(){var e,t,i;if(this.state===3)return;const s=this.dependenciesToBeRemoved;this.dependenciesToBeRemoved=this.dependencies,this.dependencies=s,this.state=3;const o=this.disposed;try{if(!o){(e=vh())===null||e===void 0||e.handleAutorunTriggered(this);const r=this.changeSummary;this.changeSummary=(t=this.createChangeSummary)===null||t===void 0?void 0:t.call(this),this._runFn(this,r)}}finally{o||(i=vh())===null||i===void 0||i.handleAutorunFinished(this);for(const r of this.dependenciesToBeRemoved)r.removeObserver(this);this.dependenciesToBeRemoved.clear()}}toString(){return`Autorun<${this.debugName}>`}beginUpdate(){this.state===3&&(this.state=1),this.updateCount++}endUpdate(){if(this.updateCount===1)do{if(this.state===1){this.state=3;for(const e of this.dependencies)if(e.reportChanges(),this.state===2)break}this._runIfNeeded()}while(this.state!==3);this.updateCount--,g0(()=>this.updateCount>=0)}handlePossibleChange(e){this.state===3&&this.dependencies.has(e)&&!this.dependenciesToBeRemoved.has(e)&&(this.state=1)}handleChange(e,t){this.dependencies.has(e)&&!this.dependenciesToBeRemoved.has(e)&&(!this._handleChange||this._handleChange({changedObservable:e,change:t,didChange:s=>s===e},this.changeSummary))&&(this.state=2)}readObservable(e){if(this.disposed)return e.get();e.addObserver(this);const t=e.get();return this.dependencies.add(e),this.dependenciesToBeRemoved.delete(e),t}}(function(n){n.Observer=iP})(Ut||(Ut={}));function Vd(n){return new pVe(n)}class pVe extends Mde{constructor(e){super(),this.value=e}get debugName(){return this.toString()}get(){return this.value}addObserver(e){}removeObserver(e){}toString(){return`Const: ${this.value}`}}function qi(n,e){return new Iv(n,e)}class Iv extends ND{constructor(e,t){super(),this.event=e,this._getValue=t,this.hasValue=!1,this.handleEvent=i=>{var s;const o=this._getValue(i),r=this.value,a=!this.hasValue||r!==o;let l=!1;a&&(this.value=o,this.hasValue&&(l=!0,jL(Iv.globalTransaction,c=>{var d;(d=vh())===null||d===void 0||d.handleFromEventObservableTriggered(this,{oldValue:r,newValue:o,change:void 0,didChange:a,hadValue:this.hasValue});for(const u of this.observers)c.updateObserver(u,this),u.handleChange(this,void 0)},()=>{const c=this.getDebugName();return\"Event fired\"+(c?`: ${c}`:\"\")})),this.hasValue=!0),l||(s=vh())===null||s===void 0||s.handleFromEventObservableTriggered(this,{oldValue:r,newValue:o,change:void 0,didChange:a,hadValue:this.hasValue})}}getDebugName(){return JM(this._getValue)}get debugName(){const e=this.getDebugName();return\"From Event\"+(e?`: ${e}`:\"\")}onFirstObserverAdded(){this.subscription=this.event(this.handleEvent)}onLastObserverRemoved(){this.subscription.dispose(),this.subscription=void 0,this.hasValue=!1,this.value=void 0}get(){return this.subscription?(this.hasValue||this.handleEvent(void 0),this.value):this._getValue(void 0)}}(function(n){n.Observer=Iv;function e(t,i){let s=!1;Iv.globalTransaction===void 0&&(Iv.globalTransaction=t,s=!0);try{i()}finally{s&&(Iv.globalTransaction=void 0)}}n.batchEventsGlobally=e})(qi||(qi={}));function Ko(n,e){return new mVe(n,e)}class mVe extends ND{constructor(e,t){super(),this.debugName=e,this.event=t,this.handleEvent=()=>{rn(i=>{for(const s of this.observers)i.updateObserver(s,this),s.handleChange(this,void 0)},()=>this.debugName)}}onFirstObserverAdded(){this.subscription=this.event(this.handleEvent)}onLastObserverRemoved(){this.subscription.dispose(),this.subscription=void 0}get(){}}function nP(n){return typeof n==\"string\"?new wJ(n):new wJ(void 0,n)}class wJ extends ND{get debugName(){var e;return(e=new ca(this._owner,this._debugName,void 0).getDebugName(this))!==null&&e!==void 0?e:\"Observable Signal\"}constructor(e,t){super(),this._debugName=e,this._owner=t}trigger(e,t){if(!e){rn(i=>{this.trigger(i,t)},()=>`Trigger signal ${this.debugName}`);return}for(const i of this.observers)e.updateObserver(i,this),i.handleChange(this,t)}get(){}}function RD(n,e){const t=new _Ve(!0,e);return n.addObserver(t),e?e(n.get()):n.reportChanges(),dt(()=>{n.removeObserver(t)})}lVe(RD);class _Ve{constructor(e,t){this._forceRecompute=e,this._handleValue=t,this._counter=0}beginUpdate(e){this._counter++}endUpdate(e){this._counter--,this._counter===0&&this._forceRecompute&&(this._handleValue?this._handleValue(e.get()):e.reportChanges())}handlePossibleChange(e){}handleChange(e,t){}}function vVe(n,e){let t;return Rt(n,s=>(t=e(s,t),t))}function bVe(n,e,t,i){let s=new yJ(t,i);return Uf({debugReferenceFn:t,owner:n,onLastObserverRemoved:()=>{s.dispose(),s=new yJ(t)}},r=>(s.setItems(e.read(r)),s.getItems()))}class yJ{constructor(e,t){this._map=e,this._keySelector=t,this._cache=new Map,this._items=[]}dispose(){this._cache.forEach(e=>e.store.dispose()),this._cache.clear()}setItems(e){const t=[],i=new Set(this._cache.keys());for(const s of e){const o=this._keySelector?this._keySelector(s):s;let r=this._cache.get(o);if(r)i.delete(o);else{const a=new be;r={out:this._map(s,a),store:a},this._cache.set(o,r)}t.push(r.out)}for(const s of i)this._cache.get(s).store.dispose(),this._cache.delete(s);this._items=t}getItems(){return this._items}}function Ode(n,e,t,i){return e||(e=s=>s!=null),new Promise((s,o)=>{let r=!0,a=!1;const l=n.map(d=>({isFinished:e(d),error:t?t(d):!1,state:d})),c=Ut(d=>{const{isFinished:u,error:h,state:f}=l.read(d);(u||h)&&(r?a=!0:c.dispose(),h?o(h===!0?f:h):s(f))});if(i){const d=i.onCancellationRequested(()=>{c.dispose(),d.dispose(),o(new nu)});if(i.isCancellationRequested){c.dispose(),d.dispose(),o(new nu);return}}r=!1,a&&c.dispose()})}var __=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o};class CVe{constructor(e){this.trait=e,this.renderedElements=[]}get templateId(){return`template:${this.trait.name}`}renderTemplate(e){return e}renderElement(e,t,i){const s=this.renderedElements.findIndex(o=>o.templateData===i);if(s>=0){const o=this.renderedElements[s];this.trait.unrender(i),o.index=t}else{const o={index:t,templateData:i};this.renderedElements.push(o)}this.trait.renderIndex(t,i)}splice(e,t,i){const s=[];for(const o of this.renderedElements)o.index<e?s.push(o):o.index>=e+t&&s.push({index:o.index+i-t,templateData:o.templateData});this.renderedElements=s}renderIndexes(e){for(const{index:t,templateData:i}of this.renderedElements)e.indexOf(t)>-1&&this.trait.renderIndex(t,i)}disposeTemplate(e){const t=this.renderedElements.findIndex(i=>i.templateData===e);t<0||this.renderedElements.splice(t,1)}}let SA=class{get name(){return this._trait}get renderer(){return new CVe(this)}constructor(e){this._trait=e,this.indexes=[],this.sortedIndexes=[],this._onChange=new X,this.onChange=this._onChange.event}splice(e,t,i){const s=i.length-t,o=e+t,r=[];let a=0;for(;a<this.sortedIndexes.length&&this.sortedIndexes[a]<e;)r.push(this.sortedIndexes[a++]);for(let l=0;l<i.length;l++)i[l]&&r.push(l+e);for(;a<this.sortedIndexes.length&&this.sortedIndexes[a]>=o;)r.push(this.sortedIndexes[a++]+s);this.renderer.splice(e,t,i.length),this._set(r,r)}renderIndex(e,t){t.classList.toggle(this._trait,this.contains(e))}unrender(e){e.classList.remove(this._trait)}set(e,t){return this._set(e,[...e].sort(xJ),t)}_set(e,t,i){const s=this.indexes,o=this.sortedIndexes;this.indexes=e,this.sortedIndexes=t;const r=E9(o,e);return this.renderer.renderIndexes(r),this._onChange.fire({indexes:e,browserEvent:i}),s}get(){return this.indexes}contains(e){return tL(this.sortedIndexes,e,xJ)>=0}dispose(){tn(this._onChange)}};__([gs],SA.prototype,\"renderer\",null);class wVe extends SA{constructor(e){super(\"selected\"),this.setAriaSelected=e}renderIndex(e,t){super.renderIndex(e,t),this.setAriaSelected&&(this.contains(e)?t.setAttribute(\"aria-selected\",\"true\"):t.setAttribute(\"aria-selected\",\"false\"))}}class M5{constructor(e,t,i){this.trait=e,this.view=t,this.identityProvider=i}splice(e,t,i){if(!this.identityProvider)return this.trait.splice(e,t,new Array(i.length).fill(!1));const s=this.trait.get().map(a=>this.identityProvider.getId(this.view.element(a)).toString());if(s.length===0)return this.trait.splice(e,t,new Array(i.length).fill(!1));const o=new Set(s),r=i.map(a=>o.has(this.identityProvider.getId(a).toString()));this.trait.splice(e,t,r)}}function mm(n){return n.tagName===\"INPUT\"||n.tagName===\"TEXTAREA\"}function MD(n,e){return n.classList.contains(e)?!0:n.classList.contains(\"monaco-list\")||!n.parentElement?!1:MD(n.parentElement,e)}function RS(n){return MD(n,\"monaco-editor\")}function yVe(n){return MD(n,\"monaco-custom-toggle\")}function SVe(n){return MD(n,\"action-item\")}function Dx(n){return MD(n,\"monaco-tree-sticky-row\")}function qL(n){return n.classList.contains(\"monaco-tree-sticky-container\")}function Fde(n){return n.tagName===\"A\"&&n.classList.contains(\"monaco-button\")||n.tagName===\"DIV\"&&n.classList.contains(\"monaco-button-dropdown\")?!0:n.classList.contains(\"monaco-list\")||!n.parentElement?!1:Fde(n.parentElement)}class Bde{get onKeyDown(){return Ae.chain(this.disposables.add(new ei(this.view.domNode,\"keydown\")).event,e=>e.filter(t=>!mm(t.target)).map(t=>new ln(t)))}constructor(e,t,i){this.list=e,this.view=t,this.disposables=new be,this.multipleSelectionDisposables=new be,this.multipleSelectionSupport=i.multipleSelectionSupport,this.disposables.add(this.onKeyDown(s=>{switch(s.keyCode){case 3:return this.onEnter(s);case 16:return this.onUpArrow(s);case 18:return this.onDownArrow(s);case 11:return this.onPageUpArrow(s);case 12:return this.onPageDownArrow(s);case 9:return this.onEscape(s);case 31:this.multipleSelectionSupport&&(Xt?s.metaKey:s.ctrlKey)&&this.onCtrlA(s)}}))}updateOptions(e){e.multipleSelectionSupport!==void 0&&(this.multipleSelectionSupport=e.multipleSelectionSupport)}onEnter(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection(this.list.getFocus(),e.browserEvent)}onUpArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusPrevious(1,!1,e.browserEvent);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onDownArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusNext(1,!1,e.browserEvent);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onPageUpArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusPreviousPage(e.browserEvent);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onPageDownArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusNextPage(e.browserEvent);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onCtrlA(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection(Xr(this.list.length),e.browserEvent),this.list.setAnchor(void 0),this.view.domNode.focus()}onEscape(e){this.list.getSelection().length&&(e.preventDefault(),e.stopPropagation(),this.list.setSelection([],e.browserEvent),this.list.setAnchor(void 0),this.view.domNode.focus())}dispose(){this.disposables.dispose(),this.multipleSelectionDisposables.dispose()}}__([gs],Bde.prototype,\"onKeyDown\",null);var ih;(function(n){n[n.Automatic=0]=\"Automatic\",n[n.Trigger=1]=\"Trigger\"})(ih||(ih={}));var T1;(function(n){n[n.Idle=0]=\"Idle\",n[n.Typing=1]=\"Typing\"})(T1||(T1={}));const xVe=new class{mightProducePrintableCharacter(n){return n.ctrlKey||n.metaKey||n.altKey?!1:n.keyCode>=31&&n.keyCode<=56||n.keyCode>=21&&n.keyCode<=30||n.keyCode>=98&&n.keyCode<=107||n.keyCode>=85&&n.keyCode<=95}};class LVe{constructor(e,t,i,s,o){this.list=e,this.view=t,this.keyboardNavigationLabelProvider=i,this.keyboardNavigationEventFilter=s,this.delegate=o,this.enabled=!1,this.state=T1.Idle,this.mode=ih.Automatic,this.triggered=!1,this.previouslyFocused=-1,this.enabledDisposables=new be,this.disposables=new be,this.updateOptions(e.options)}updateOptions(e){var t,i;!((t=e.typeNavigationEnabled)!==null&&t!==void 0)||t?this.enable():this.disable(),this.mode=(i=e.typeNavigationMode)!==null&&i!==void 0?i:ih.Automatic}enable(){if(this.enabled)return;let e=!1;const t=Ae.chain(this.enabledDisposables.add(new ei(this.view.domNode,\"keydown\")).event,o=>o.filter(r=>!mm(r.target)).filter(()=>this.mode===ih.Automatic||this.triggered).map(r=>new ln(r)).filter(r=>e||this.keyboardNavigationEventFilter(r)).filter(r=>this.delegate.mightProducePrintableCharacter(r)).forEach(r=>ii.stop(r,!0)).map(r=>r.browserEvent.key)),i=Ae.debounce(t,()=>null,800,void 0,void 0,void 0,this.enabledDisposables);Ae.reduce(Ae.any(t,i),(o,r)=>r===null?null:(o||\"\")+r,void 0,this.enabledDisposables)(this.onInput,this,this.enabledDisposables),i(this.onClear,this,this.enabledDisposables),t(()=>e=!0,void 0,this.enabledDisposables),i(()=>e=!1,void 0,this.enabledDisposables),this.enabled=!0,this.triggered=!1}disable(){this.enabled&&(this.enabledDisposables.clear(),this.enabled=!1,this.triggered=!1)}onClear(){var e;const t=this.list.getFocus();if(t.length>0&&t[0]===this.previouslyFocused){const i=(e=this.list.options.accessibilityProvider)===null||e===void 0?void 0:e.getAriaLabel(this.list.element(t[0]));typeof i==\"string\"?la(i):i&&la(i.get())}this.previouslyFocused=-1}onInput(e){if(!e){this.state=T1.Idle,this.triggered=!1;return}const t=this.list.getFocus(),i=t.length>0?t[0]:0,s=this.state===T1.Idle?1:0;this.state=T1.Typing;for(let o=0;o<this.list.length;o++){const r=(i+o+s)%this.list.length,a=this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(this.view.element(r)),l=a&&a.toString();if(this.list.options.typeNavigationEnabled){if(typeof l<\"u\"){if(BL(e,l)){this.previouslyFocused=i,this.list.setFocus([r]),this.list.reveal(r);return}const c=sWe(e,l);if(c&&c[0].end-c[0].start>1&&c.length===1){this.previouslyFocused=i,this.list.setFocus([r]),this.list.reveal(r);return}}}else if(typeof l>\"u\"||BL(e,l)){this.previouslyFocused=i,this.list.setFocus([r]),this.list.reveal(r);return}}}dispose(){this.disable(),this.enabledDisposables.dispose(),this.disposables.dispose()}}class kVe{constructor(e,t){this.list=e,this.view=t,this.disposables=new be;const i=Ae.chain(this.disposables.add(new ei(t.domNode,\"keydown\")).event,o=>o.filter(r=>!mm(r.target)).map(r=>new ln(r)));Ae.chain(i,o=>o.filter(r=>r.keyCode===2&&!r.ctrlKey&&!r.metaKey&&!r.shiftKey&&!r.altKey))(this.onTab,this,this.disposables)}onTab(e){if(e.target!==this.view.domNode)return;const t=this.list.getFocus();if(t.length===0)return;const i=this.view.domElement(t[0]);if(!i)return;const s=i.querySelector(\"[tabIndex]\");if(!s||!co(s)||s.tabIndex===-1)return;const o=gt(s).getComputedStyle(s);o.visibility===\"hidden\"||o.display===\"none\"||(e.preventDefault(),e.stopPropagation(),s.focus())}dispose(){this.disposables.dispose()}}function Wde(n){return Xt?n.browserEvent.metaKey:n.browserEvent.ctrlKey}function Hde(n){return n.browserEvent.shiftKey}function DVe(n){return sz(n)&&n.button===2}const SJ={isSelectionSingleChangeEvent:Wde,isSelectionRangeChangeEvent:Hde};class Vde{constructor(e){this.list=e,this.disposables=new be,this._onPointer=new X,this.onPointer=this._onPointer.event,e.options.multipleSelectionSupport!==!1&&(this.multipleSelectionController=this.list.options.multipleSelectionController||SJ),this.mouseSupport=typeof e.options.mouseSupport>\"u\"||!!e.options.mouseSupport,this.mouseSupport&&(e.onMouseDown(this.onMouseDown,this,this.disposables),e.onContextMenu(this.onContextMenu,this,this.disposables),e.onMouseDblClick(this.onDoubleClick,this,this.disposables),e.onTouchStart(this.onMouseDown,this,this.disposables),this.disposables.add(hn.addTarget(e.getHTMLElement()))),Ae.any(e.onMouseClick,e.onMouseMiddleClick,e.onTap)(this.onViewPointer,this,this.disposables)}updateOptions(e){e.multipleSelectionSupport!==void 0&&(this.multipleSelectionController=void 0,e.multipleSelectionSupport&&(this.multipleSelectionController=this.list.options.multipleSelectionController||SJ))}isSelectionSingleChangeEvent(e){return this.multipleSelectionController?this.multipleSelectionController.isSelectionSingleChangeEvent(e):!1}isSelectionRangeChangeEvent(e){return this.multipleSelectionController?this.multipleSelectionController.isSelectionRangeChangeEvent(e):!1}isSelectionChangeEvent(e){return this.isSelectionSingleChangeEvent(e)||this.isSelectionRangeChangeEvent(e)}onMouseDown(e){RS(e.browserEvent.target)||Ao()!==e.browserEvent.target&&this.list.domFocus()}onContextMenu(e){if(mm(e.browserEvent.target)||RS(e.browserEvent.target))return;const t=typeof e.index>\"u\"?[]:[e.index];this.list.setFocus(t,e.browserEvent)}onViewPointer(e){if(!this.mouseSupport||mm(e.browserEvent.target)||RS(e.browserEvent.target)||e.browserEvent.isHandledByList)return;e.browserEvent.isHandledByList=!0;const t=e.index;if(typeof t>\"u\"){this.list.setFocus([],e.browserEvent),this.list.setSelection([],e.browserEvent),this.list.setAnchor(void 0);return}if(this.isSelectionChangeEvent(e))return this.changeSelection(e);this.list.setFocus([t],e.browserEvent),this.list.setAnchor(t),DVe(e.browserEvent)||this.list.setSelection([t],e.browserEvent),this._onPointer.fire(e)}onDoubleClick(e){if(mm(e.browserEvent.target)||RS(e.browserEvent.target)||this.isSelectionChangeEvent(e)||e.browserEvent.isHandledByList)return;e.browserEvent.isHandledByList=!0;const t=this.list.getFocus();this.list.setSelection(t,e.browserEvent)}changeSelection(e){const t=e.index;let i=this.list.getAnchor();if(this.isSelectionRangeChangeEvent(e)){if(typeof i>\"u\"){const d=this.list.getFocus()[0];i=d??t,this.list.setAnchor(i)}const s=Math.min(i,t),o=Math.max(i,t),r=Xr(s,o+1),a=this.list.getSelection(),l=TVe(E9(a,[i]),i);if(l.length===0)return;const c=E9(r,NVe(a,l));this.list.setSelection(c,e.browserEvent),this.list.setFocus([t],e.browserEvent)}else if(this.isSelectionSingleChangeEvent(e)){const s=this.list.getSelection(),o=s.filter(r=>r!==t);this.list.setFocus([t]),this.list.setAnchor(t),s.length===o.length?this.list.setSelection([...o,t],e.browserEvent):this.list.setSelection(o,e.browserEvent)}}dispose(){this.disposables.dispose()}}class zde{constructor(e,t){this.styleElement=e,this.selectorSuffix=t}style(e){var t,i;const s=this.selectorSuffix&&`.${this.selectorSuffix}`,o=[];e.listBackground&&o.push(`.monaco-list${s} .monaco-list-rows { background: ${e.listBackground}; }`),e.listFocusBackground&&(o.push(`.monaco-list${s}:focus .monaco-list-row.focused { background-color: ${e.listFocusBackground}; }`),o.push(`.monaco-list${s}:focus .monaco-list-row.focused:hover { background-color: ${e.listFocusBackground}; }`)),e.listFocusForeground&&o.push(`.monaco-list${s}:focus .monaco-list-row.focused { color: ${e.listFocusForeground}; }`),e.listActiveSelectionBackground&&(o.push(`.monaco-list${s}:focus .monaco-list-row.selected { background-color: ${e.listActiveSelectionBackground}; }`),o.push(`.monaco-list${s}:focus .monaco-list-row.selected:hover { background-color: ${e.listActiveSelectionBackground}; }`)),e.listActiveSelectionForeground&&o.push(`.monaco-list${s}:focus .monaco-list-row.selected { color: ${e.listActiveSelectionForeground}; }`),e.listActiveSelectionIconForeground&&o.push(`.monaco-list${s}:focus .monaco-list-row.selected .codicon { color: ${e.listActiveSelectionIconForeground}; }`),e.listFocusAndSelectionBackground&&o.push(`\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list${s}:focus .monaco-list-row.selected.focused { background-color: ${e.listFocusAndSelectionBackground}; }\n\t\t\t`),e.listFocusAndSelectionForeground&&o.push(`\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list${s}:focus .monaco-list-row.selected.focused { color: ${e.listFocusAndSelectionForeground}; }\n\t\t\t`),e.listInactiveFocusForeground&&(o.push(`.monaco-list${s} .monaco-list-row.focused { color:  ${e.listInactiveFocusForeground}; }`),o.push(`.monaco-list${s} .monaco-list-row.focused:hover { color:  ${e.listInactiveFocusForeground}; }`)),e.listInactiveSelectionIconForeground&&o.push(`.monaco-list${s} .monaco-list-row.focused .codicon { color:  ${e.listInactiveSelectionIconForeground}; }`),e.listInactiveFocusBackground&&(o.push(`.monaco-list${s} .monaco-list-row.focused { background-color:  ${e.listInactiveFocusBackground}; }`),o.push(`.monaco-list${s} .monaco-list-row.focused:hover { background-color:  ${e.listInactiveFocusBackground}; }`)),e.listInactiveSelectionBackground&&(o.push(`.monaco-list${s} .monaco-list-row.selected { background-color:  ${e.listInactiveSelectionBackground}; }`),o.push(`.monaco-list${s} .monaco-list-row.selected:hover { background-color:  ${e.listInactiveSelectionBackground}; }`)),e.listInactiveSelectionForeground&&o.push(`.monaco-list${s} .monaco-list-row.selected { color: ${e.listInactiveSelectionForeground}; }`),e.listHoverBackground&&o.push(`.monaco-list${s}:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused) { background-color: ${e.listHoverBackground}; }`),e.listHoverForeground&&o.push(`.monaco-list${s}:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused) { color:  ${e.listHoverForeground}; }`);const r=mg(e.listFocusAndSelectionOutline,mg(e.listSelectionOutline,(t=e.listFocusOutline)!==null&&t!==void 0?t:\"\"));r&&o.push(`.monaco-list${s}:focus .monaco-list-row.focused.selected { outline: 1px solid ${r}; outline-offset: -1px;}`),e.listFocusOutline&&o.push(`\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list${s}:focus .monaco-list-row.focused { outline: 1px solid ${e.listFocusOutline}; outline-offset: -1px; }\n\t\t\t\t.monaco-workbench.context-menu-visible .monaco-list${s}.last-focused .monaco-list-row.focused { outline: 1px solid ${e.listFocusOutline}; outline-offset: -1px; }\n\t\t\t`);const a=mg(e.listSelectionOutline,(i=e.listInactiveFocusOutline)!==null&&i!==void 0?i:\"\");a&&o.push(`.monaco-list${s} .monaco-list-row.focused.selected { outline: 1px dotted ${a}; outline-offset: -1px; }`),e.listSelectionOutline&&o.push(`.monaco-list${s} .monaco-list-row.selected { outline: 1px dotted ${e.listSelectionOutline}; outline-offset: -1px; }`),e.listInactiveFocusOutline&&o.push(`.monaco-list${s} .monaco-list-row.focused { outline: 1px dotted ${e.listInactiveFocusOutline}; outline-offset: -1px; }`),e.listHoverOutline&&o.push(`.monaco-list${s} .monaco-list-row:hover { outline: 1px dashed ${e.listHoverOutline}; outline-offset: -1px; }`),e.listDropOverBackground&&o.push(`\n\t\t\t\t.monaco-list${s}.drop-target,\n\t\t\t\t.monaco-list${s} .monaco-list-rows.drop-target,\n\t\t\t\t.monaco-list${s} .monaco-list-row.drop-target { background-color: ${e.listDropOverBackground} !important; color: inherit !important; }\n\t\t\t`),e.listDropBetweenBackground&&(o.push(`\n\t\t\t.monaco-list${s} .monaco-list-rows.drop-target-before .monaco-list-row:first-child::before,\n\t\t\t.monaco-list${s} .monaco-list-row.drop-target-before::before {\n\t\t\t\tcontent: \"\"; position: absolute; top: 0px; left: 0px; width: 100%; height: 1px;\n\t\t\t\tbackground-color: ${e.listDropBetweenBackground};\n\t\t\t}`),o.push(`\n\t\t\t.monaco-list${s} .monaco-list-rows.drop-target-after .monaco-list-row:last-child::after,\n\t\t\t.monaco-list${s} .monaco-list-row.drop-target-after::after {\n\t\t\t\tcontent: \"\"; position: absolute; bottom: 0px; left: 0px; width: 100%; height: 1px;\n\t\t\t\tbackground-color: ${e.listDropBetweenBackground};\n\t\t\t}`)),e.tableColumnsBorder&&o.push(`\n\t\t\t\t.monaco-table > .monaco-split-view2,\n\t\t\t\t.monaco-table > .monaco-split-view2 .monaco-sash.vertical::before,\n\t\t\t\t.monaco-workbench:not(.reduce-motion) .monaco-table:hover > .monaco-split-view2,\n\t\t\t\t.monaco-workbench:not(.reduce-motion) .monaco-table:hover > .monaco-split-view2 .monaco-sash.vertical::before {\n\t\t\t\t\tborder-color: ${e.tableColumnsBorder};\n\t\t\t\t}\n\n\t\t\t\t.monaco-workbench:not(.reduce-motion) .monaco-table > .monaco-split-view2,\n\t\t\t\t.monaco-workbench:not(.reduce-motion) .monaco-table > .monaco-split-view2 .monaco-sash.vertical::before {\n\t\t\t\t\tborder-color: transparent;\n\t\t\t\t}\n\t\t\t`),e.tableOddRowsBackgroundColor&&o.push(`\n\t\t\t\t.monaco-table .monaco-list-row[data-parity=odd]:not(.focused):not(.selected):not(:hover) .monaco-table-tr,\n\t\t\t\t.monaco-table .monaco-list:not(:focus) .monaco-list-row[data-parity=odd].focused:not(.selected):not(:hover) .monaco-table-tr,\n\t\t\t\t.monaco-table .monaco-list:not(.focused) .monaco-list-row[data-parity=odd].focused:not(.selected):not(:hover) .monaco-table-tr {\n\t\t\t\t\tbackground-color: ${e.tableOddRowsBackgroundColor};\n\t\t\t\t}\n\t\t\t`),this.styleElement.textContent=o.join(`\n`)}}const IVe={listFocusBackground:\"#7FB0D0\",listActiveSelectionBackground:\"#0E639C\",listActiveSelectionForeground:\"#FFFFFF\",listActiveSelectionIconForeground:\"#FFFFFF\",listFocusAndSelectionOutline:\"#90C2F9\",listFocusAndSelectionBackground:\"#094771\",listFocusAndSelectionForeground:\"#FFFFFF\",listInactiveSelectionBackground:\"#3F3F46\",listInactiveSelectionIconForeground:\"#FFFFFF\",listHoverBackground:\"#2A2D2E\",listDropOverBackground:\"#383B3D\",listDropBetweenBackground:\"#EEEEEE\",treeIndentGuidesStroke:\"#a9a9a9\",treeInactiveIndentGuidesStroke:le.fromHex(\"#a9a9a9\").transparent(.4).toString(),tableColumnsBorder:le.fromHex(\"#cccccc\").transparent(.2).toString(),tableOddRowsBackgroundColor:le.fromHex(\"#cccccc\").transparent(.04).toString(),listBackground:void 0,listFocusForeground:void 0,listInactiveSelectionForeground:void 0,listInactiveFocusForeground:void 0,listInactiveFocusBackground:void 0,listHoverForeground:void 0,listFocusOutline:void 0,listInactiveFocusOutline:void 0,listSelectionOutline:void 0,listHoverOutline:void 0,treeStickyScrollBackground:void 0,treeStickyScrollBorder:void 0,treeStickyScrollShadow:void 0},EVe={keyboardSupport:!0,mouseSupport:!0,multipleSelectionSupport:!0,dnd:{getDragURI(){return null},onDragStart(){},onDragOver(){return!1},drop(){},dispose(){}}};function TVe(n,e){const t=n.indexOf(e);if(t===-1)return[];const i=[];let s=t-1;for(;s>=0&&n[s]===e-(t-s);)i.push(n[s--]);for(i.reverse(),s=t;s<n.length&&n[s]===e+(s-t);)i.push(n[s++]);return i}function E9(n,e){const t=[];let i=0,s=0;for(;i<n.length||s<e.length;)if(i>=n.length)t.push(e[s++]);else if(s>=e.length)t.push(n[i++]);else if(n[i]===e[s]){t.push(n[i]),i++,s++;continue}else n[i]<e[s]?t.push(n[i++]):t.push(e[s++]);return t}function NVe(n,e){const t=[];let i=0,s=0;for(;i<n.length||s<e.length;)if(i>=n.length)t.push(e[s++]);else if(s>=e.length)t.push(n[i++]);else if(n[i]===e[s]){i++,s++;continue}else n[i]<e[s]?t.push(n[i++]):s++;return t}const xJ=(n,e)=>n-e;class AVe{constructor(e,t){this._templateId=e,this.renderers=t}get templateId(){return this._templateId}renderTemplate(e){return this.renderers.map(t=>t.renderTemplate(e))}renderElement(e,t,i,s){let o=0;for(const r of this.renderers)r.renderElement(e,t,i[o++],s)}disposeElement(e,t,i,s){var o;let r=0;for(const a of this.renderers)(o=a.disposeElement)===null||o===void 0||o.call(a,e,t,i[r],s),r+=1}disposeTemplate(e){let t=0;for(const i of this.renderers)i.disposeTemplate(e[t++])}}class RVe{constructor(e){this.accessibilityProvider=e,this.templateId=\"a18n\"}renderTemplate(e){return{container:e,disposables:new be}}renderElement(e,t,i){const s=this.accessibilityProvider.getAriaLabel(e),o=s&&typeof s!=\"string\"?s:Vd(s);i.disposables.add(Ut(a=>{this.setAriaLabel(a.readObservable(o),i.container)}));const r=this.accessibilityProvider.getAriaLevel&&this.accessibilityProvider.getAriaLevel(e);typeof r==\"number\"?i.container.setAttribute(\"aria-level\",`${r}`):i.container.removeAttribute(\"aria-level\")}setAriaLabel(e,t){e?t.setAttribute(\"aria-label\",e):t.removeAttribute(\"aria-label\")}disposeElement(e,t,i,s){i.disposables.clear()}disposeTemplate(e){e.disposables.dispose()}}class MVe{constructor(e,t){this.list=e,this.dnd=t}getDragElements(e){const t=this.list.getSelectedElements();return t.indexOf(e)>-1?t:[e]}getDragURI(e){return this.dnd.getDragURI(e)}getDragLabel(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e,t)}onDragStart(e,t){var i,s;(s=(i=this.dnd).onDragStart)===null||s===void 0||s.call(i,e,t)}onDragOver(e,t,i,s,o){return this.dnd.onDragOver(e,t,i,s,o)}onDragLeave(e,t,i,s){var o,r;(r=(o=this.dnd).onDragLeave)===null||r===void 0||r.call(o,e,t,i,s)}onDragEnd(e){var t,i;(i=(t=this.dnd).onDragEnd)===null||i===void 0||i.call(t,e)}drop(e,t,i,s,o){this.dnd.drop(e,t,i,s,o)}dispose(){this.dnd.dispose()}}class El{get onDidChangeFocus(){return Ae.map(this.eventBufferer.wrapEvent(this.focus.onChange),e=>this.toListEvent(e),this.disposables)}get onDidChangeSelection(){return Ae.map(this.eventBufferer.wrapEvent(this.selection.onChange),e=>this.toListEvent(e),this.disposables)}get domId(){return this.view.domId}get onDidScroll(){return this.view.onDidScroll}get onMouseClick(){return this.view.onMouseClick}get onMouseDblClick(){return this.view.onMouseDblClick}get onMouseMiddleClick(){return this.view.onMouseMiddleClick}get onPointer(){return this.mouseController.onPointer}get onMouseDown(){return this.view.onMouseDown}get onMouseOver(){return this.view.onMouseOver}get onMouseOut(){return this.view.onMouseOut}get onTouchStart(){return this.view.onTouchStart}get onTap(){return this.view.onTap}get onContextMenu(){let e=!1;const t=Ae.chain(this.disposables.add(new ei(this.view.domNode,\"keydown\")).event,o=>o.map(r=>new ln(r)).filter(r=>e=r.keyCode===58||r.shiftKey&&r.keyCode===68).map(r=>ii.stop(r,!0)).filter(()=>!1)),i=Ae.chain(this.disposables.add(new ei(this.view.domNode,\"keyup\")).event,o=>o.forEach(()=>e=!1).map(r=>new ln(r)).filter(r=>r.keyCode===58||r.shiftKey&&r.keyCode===68).map(r=>ii.stop(r,!0)).map(({browserEvent:r})=>{const a=this.getFocus(),l=a.length?a[0]:void 0,c=typeof l<\"u\"?this.view.element(l):void 0,d=typeof l<\"u\"?this.view.domElement(l):this.view.domNode;return{index:l,element:c,anchor:d,browserEvent:r}})),s=Ae.chain(this.view.onContextMenu,o=>o.filter(r=>!e).map(({element:r,index:a,browserEvent:l})=>({element:r,index:a,anchor:new Kc(gt(this.view.domNode),l),browserEvent:l})));return Ae.any(t,i,s)}get onKeyDown(){return this.disposables.add(new ei(this.view.domNode,\"keydown\")).event}get onDidFocus(){return Ae.signal(this.disposables.add(new ei(this.view.domNode,\"focus\",!0)).event)}get onDidBlur(){return Ae.signal(this.disposables.add(new ei(this.view.domNode,\"blur\",!0)).event)}constructor(e,t,i,s,o=EVe){var r,a,l,c;this.user=e,this._options=o,this.focus=new SA(\"focused\"),this.anchor=new SA(\"anchor\"),this.eventBufferer=new sM,this._ariaLabel=\"\",this.disposables=new be,this._onDidDispose=new X,this.onDidDispose=this._onDidDispose.event;const d=this._options.accessibilityProvider&&this._options.accessibilityProvider.getWidgetRole?(r=this._options.accessibilityProvider)===null||r===void 0?void 0:r.getWidgetRole():\"list\";this.selection=new wVe(d!==\"listbox\");const u=[this.focus.renderer,this.selection.renderer];this.accessibilityProvider=o.accessibilityProvider,this.accessibilityProvider&&(u.push(new RVe(this.accessibilityProvider)),(l=(a=this.accessibilityProvider).onDidChangeActiveDescendant)===null||l===void 0||l.call(a,this.onDidChangeActiveDescendant,this,this.disposables)),s=s.map(f=>new AVe(f.templateId,[...u,f]));const h={...o,dnd:o.dnd&&new MVe(this,o.dnd)};if(this.view=this.createListView(t,i,s,h),this.view.domNode.setAttribute(\"role\",d),o.styleController)this.styleController=o.styleController(this.view.domId);else{const f=yl(this.view.domNode);this.styleController=new zde(f,this.view.domId)}if(this.spliceable=new jHe([new M5(this.focus,this.view,o.identityProvider),new M5(this.selection,this.view,o.identityProvider),new M5(this.anchor,this.view,o.identityProvider),this.view]),this.disposables.add(this.focus),this.disposables.add(this.selection),this.disposables.add(this.anchor),this.disposables.add(this.view),this.disposables.add(this._onDidDispose),this.disposables.add(new kVe(this,this.view)),(typeof o.keyboardSupport!=\"boolean\"||o.keyboardSupport)&&(this.keyboardController=new Bde(this,this.view,o),this.disposables.add(this.keyboardController)),o.keyboardNavigationLabelProvider){const f=o.keyboardNavigationDelegate||xVe;this.typeNavigationController=new LVe(this,this.view,o.keyboardNavigationLabelProvider,(c=o.keyboardNavigationEventFilter)!==null&&c!==void 0?c:()=>!0,f),this.disposables.add(this.typeNavigationController)}this.mouseController=this.createMouseController(o),this.disposables.add(this.mouseController),this.onDidChangeFocus(this._onFocusChange,this,this.disposables),this.onDidChangeSelection(this._onSelectionChange,this,this.disposables),this.accessibilityProvider&&(this.ariaLabel=this.accessibilityProvider.getWidgetAriaLabel()),this._options.multipleSelectionSupport!==!1&&this.view.domNode.setAttribute(\"aria-multiselectable\",\"true\")}createListView(e,t,i,s){return new vc(e,t,i,s)}createMouseController(e){return new Vde(this)}updateOptions(e={}){var t,i;this._options={...this._options,...e},(t=this.typeNavigationController)===null||t===void 0||t.updateOptions(this._options),this._options.multipleSelectionController!==void 0&&(this._options.multipleSelectionSupport?this.view.domNode.setAttribute(\"aria-multiselectable\",\"true\"):this.view.domNode.removeAttribute(\"aria-multiselectable\")),this.mouseController.updateOptions(e),(i=this.keyboardController)===null||i===void 0||i.updateOptions(e),this.view.updateOptions(e)}get options(){return this._options}splice(e,t,i=[]){if(e<0||e>this.view.length)throw new j_(this.user,`Invalid start index: ${e}`);if(t<0)throw new j_(this.user,`Invalid delete count: ${t}`);t===0&&i.length===0||this.eventBufferer.bufferEvents(()=>this.spliceable.splice(e,t,i))}rerender(){this.view.rerender()}element(e){return this.view.element(e)}indexOf(e){return this.view.indexOf(e)}indexAt(e){return this.view.indexAt(e)}get length(){return this.view.length}get contentHeight(){return this.view.contentHeight}get onDidChangeContentHeight(){return this.view.onDidChangeContentHeight}get scrollTop(){return this.view.getScrollTop()}set scrollTop(e){this.view.setScrollTop(e)}get scrollHeight(){return this.view.scrollHeight}get renderHeight(){return this.view.renderHeight}get firstVisibleIndex(){return this.view.firstVisibleIndex}get ariaLabel(){return this._ariaLabel}set ariaLabel(e){this._ariaLabel=e,this.view.domNode.setAttribute(\"aria-label\",e)}domFocus(){this.view.domNode.focus({preventScroll:!0})}layout(e,t){this.view.layout(e,t)}setSelection(e,t){for(const i of e)if(i<0||i>=this.length)throw new j_(this.user,`Invalid index ${i}`);this.selection.set(e,t)}getSelection(){return this.selection.get()}getSelectedElements(){return this.getSelection().map(e=>this.view.element(e))}setAnchor(e){if(typeof e>\"u\"){this.anchor.set([]);return}if(e<0||e>=this.length)throw new j_(this.user,`Invalid index ${e}`);this.anchor.set([e])}getAnchor(){return NV(this.anchor.get(),void 0)}getAnchorElement(){const e=this.getAnchor();return typeof e>\"u\"?void 0:this.element(e)}setFocus(e,t){for(const i of e)if(i<0||i>=this.length)throw new j_(this.user,`Invalid index ${i}`);this.focus.set(e,t)}focusNext(e=1,t=!1,i,s){if(this.length===0)return;const o=this.focus.get(),r=this.findNextIndex(o.length>0?o[0]+e:0,t,s);r>-1&&this.setFocus([r],i)}focusPrevious(e=1,t=!1,i,s){if(this.length===0)return;const o=this.focus.get(),r=this.findPreviousIndex(o.length>0?o[0]-e:0,t,s);r>-1&&this.setFocus([r],i)}async focusNextPage(e,t){let i=this.view.indexAt(this.view.getScrollTop()+this.view.renderHeight);i=i===0?0:i-1;const s=this.getFocus()[0];if(s!==i&&(s===void 0||i>s)){const o=this.findPreviousIndex(i,!1,t);o>-1&&s!==o?this.setFocus([o],e):this.setFocus([i],e)}else{const o=this.view.getScrollTop();let r=o+this.view.renderHeight;i>s&&(r-=this.view.elementHeight(i)),this.view.setScrollTop(r),this.view.getScrollTop()!==o&&(this.setFocus([]),await Dg(0),await this.focusNextPage(e,t))}}async focusPreviousPage(e,t,i=()=>0){let s;const o=i(),r=this.view.getScrollTop()+o;r===0?s=this.view.indexAt(r):s=this.view.indexAfter(r-1);const a=this.getFocus()[0];if(a!==s&&(a===void 0||a>=s)){const l=this.findNextIndex(s,!1,t);l>-1&&a!==l?this.setFocus([l],e):this.setFocus([s],e)}else{const l=r;this.view.setScrollTop(r-this.view.renderHeight-o),this.view.getScrollTop()+i()!==l&&(this.setFocus([]),await Dg(0),await this.focusPreviousPage(e,t,i))}}focusLast(e,t){if(this.length===0)return;const i=this.findPreviousIndex(this.length-1,!1,t);i>-1&&this.setFocus([i],e)}focusFirst(e,t){this.focusNth(0,e,t)}focusNth(e,t,i){if(this.length===0)return;const s=this.findNextIndex(e,!1,i);s>-1&&this.setFocus([s],t)}findNextIndex(e,t=!1,i){for(let s=0;s<this.length;s++){if(e>=this.length&&!t)return-1;if(e=e%this.length,!i||i(this.element(e)))return e;e++}return-1}findPreviousIndex(e,t=!1,i){for(let s=0;s<this.length;s++){if(e<0&&!t)return-1;if(e=(this.length+e%this.length)%this.length,!i||i(this.element(e)))return e;e--}return-1}getFocus(){return this.focus.get()}getFocusedElements(){return this.getFocus().map(e=>this.view.element(e))}reveal(e,t,i=0){if(e<0||e>=this.length)throw new j_(this.user,`Invalid index ${e}`);const s=this.view.getScrollTop(),o=this.view.elementTop(e),r=this.view.elementHeight(e);if(Nm(t)){const a=r-this.view.renderHeight+i;this.view.setScrollTop(a*Sr(t,0,1)+o-i)}else{const a=o+r,l=s+this.view.renderHeight;o<s+i&&a>=l||(o<s+i||a>=l&&r>=this.view.renderHeight?this.view.setScrollTop(o-i):a>=l&&this.view.setScrollTop(a-this.view.renderHeight))}}getRelativeTop(e,t=0){if(e<0||e>=this.length)throw new j_(this.user,`Invalid index ${e}`);const i=this.view.getScrollTop(),s=this.view.elementTop(e),o=this.view.elementHeight(e);if(s<i+t||s+o>i+this.view.renderHeight)return null;const r=o-this.view.renderHeight+t;return Math.abs((i+t-s)/r)}getHTMLElement(){return this.view.domNode}getScrollableElement(){return this.view.scrollableElementDomNode}getElementID(e){return this.view.getElementDomId(e)}getElementTop(e){return this.view.elementTop(e)}style(e){this.styleController.style(e)}toListEvent({indexes:e,browserEvent:t}){return{indexes:e,elements:e.map(i=>this.view.element(i)),browserEvent:t}}_onFocusChange(){const e=this.focus.get();this.view.domNode.classList.toggle(\"element-focused\",e.length>0),this.onDidChangeActiveDescendant()}onDidChangeActiveDescendant(){var e;const t=this.focus.get();if(t.length>0){let i;!((e=this.accessibilityProvider)===null||e===void 0)&&e.getActiveDescendantId&&(i=this.accessibilityProvider.getActiveDescendantId(this.view.element(t[0]))),this.view.domNode.setAttribute(\"aria-activedescendant\",i||this.view.getElementDomId(t[0]))}else this.view.domNode.removeAttribute(\"aria-activedescendant\")}_onSelectionChange(){const e=this.selection.get();this.view.domNode.classList.toggle(\"selection-none\",e.length===0),this.view.domNode.classList.toggle(\"selection-single\",e.length===1),this.view.domNode.classList.toggle(\"selection-multiple\",e.length>1)}dispose(){this._onDidDispose.fire(),this.disposables.dispose(),this._onDidDispose.dispose()}}__([gs],El.prototype,\"onDidChangeFocus\",null);__([gs],El.prototype,\"onDidChangeSelection\",null);__([gs],El.prototype,\"onContextMenu\",null);__([gs],El.prototype,\"onKeyDown\",null);__([gs],El.prototype,\"onDidFocus\",null);__([gs],El.prototype,\"onDidBlur\",null);const Ev=ke,$de=\"selectOption.entry.template\";class PVe{get templateId(){return $de}renderTemplate(e){const t=Object.create(null);return t.root=e,t.text=we(e,Ev(\".option-text\")),t.detail=we(e,Ev(\".option-detail\")),t.decoratorRight=we(e,Ev(\".option-decorator-right\")),t}renderElement(e,t,i){const s=i,o=e.text,r=e.detail,a=e.decoratorRight,l=e.isDisabled;s.text.textContent=o,s.detail.textContent=r||\"\",s.decoratorRight.innerText=a||\"\",l?s.root.classList.add(\"option-disabled\"):s.root.classList.remove(\"option-disabled\")}disposeTemplate(e){}}class nh extends ne{constructor(e,t,i,s,o){super(),this.options=[],this._currentSelection=0,this._hasDetails=!1,this._skipLayout=!1,this._sticky=!1,this._isVisible=!1,this.styles=s,this.selectBoxOptions=o||Object.create(null),typeof this.selectBoxOptions.minBottomMargin!=\"number\"?this.selectBoxOptions.minBottomMargin=nh.DEFAULT_DROPDOWN_MINIMUM_BOTTOM_MARGIN:this.selectBoxOptions.minBottomMargin<0&&(this.selectBoxOptions.minBottomMargin=0),this.selectElement=document.createElement(\"select\"),this.selectElement.className=\"monaco-select-box monaco-select-box-dropdown-padding\",typeof this.selectBoxOptions.ariaLabel==\"string\"&&this.selectElement.setAttribute(\"aria-label\",this.selectBoxOptions.ariaLabel),typeof this.selectBoxOptions.ariaDescription==\"string\"&&this.selectElement.setAttribute(\"aria-description\",this.selectBoxOptions.ariaDescription),this._onDidSelect=new X,this._register(this._onDidSelect),this.registerListeners(),this.constructSelectDropDown(i),this.selected=t||0,e&&this.setOptions(e,t),this.initStyleSheet()}setTitle(e){!this._hover&&e?this._hover=this._register(bu().setupUpdatableHover(Ur(\"mouse\"),this.selectElement,e)):this._hover&&this._hover.update(e)}getHeight(){return 22}getTemplateId(){return $de}constructSelectDropDown(e){this.contextViewProvider=e,this.selectDropDownContainer=ke(\".monaco-select-box-dropdown-container\"),this.selectDropDownContainer.classList.add(\"monaco-select-box-dropdown-padding\"),this.selectionDetailsPane=we(this.selectDropDownContainer,Ev(\".select-box-details-pane\"));const t=we(this.selectDropDownContainer,Ev(\".select-box-dropdown-container-width-control\")),i=we(t,Ev(\".width-control-div\"));this.widthControlElement=document.createElement(\"span\"),this.widthControlElement.className=\"option-text-width-control\",we(i,this.widthControlElement),this._dropDownPosition=0,this.styleElement=yl(this.selectDropDownContainer),this.selectDropDownContainer.setAttribute(\"draggable\",\"true\"),this._register(ce(this.selectDropDownContainer,Le.DRAG_START,s=>{ii.stop(s,!0)}))}registerListeners(){this._register(rs(this.selectElement,\"change\",t=>{this.selected=t.target.selectedIndex,this._onDidSelect.fire({index:t.target.selectedIndex,selected:t.target.value}),this.options[this.selected]&&this.options[this.selected].text&&this.setTitle(this.options[this.selected].text)})),this._register(ce(this.selectElement,Le.CLICK,t=>{ii.stop(t),this._isVisible?this.hideSelectDropDown(!0):this.showSelectDropDown()})),this._register(ce(this.selectElement,Le.MOUSE_DOWN,t=>{ii.stop(t)}));let e;this._register(ce(this.selectElement,\"touchstart\",t=>{e=this._isVisible})),this._register(ce(this.selectElement,\"touchend\",t=>{ii.stop(t),e?this.hideSelectDropDown(!0):this.showSelectDropDown()})),this._register(ce(this.selectElement,Le.KEY_DOWN,t=>{const i=new ln(t);let s=!1;Xt?(i.keyCode===18||i.keyCode===16||i.keyCode===10||i.keyCode===3)&&(s=!0):(i.keyCode===18&&i.altKey||i.keyCode===16&&i.altKey||i.keyCode===10||i.keyCode===3)&&(s=!0),s&&(this.showSelectDropDown(),ii.stop(t,!0))}))}get onDidSelect(){return this._onDidSelect.event}setOptions(e,t){zn(this.options,e)||(this.options=e,this.selectElement.options.length=0,this._hasDetails=!1,this._cachedMaxDetailsHeight=void 0,this.options.forEach((i,s)=>{this.selectElement.add(this.createOption(i.text,s,i.isDisabled)),typeof i.description==\"string\"&&(this._hasDetails=!0)})),t!==void 0&&(this.select(t),this._currentSelection=this.selected)}setOptionsList(){var e;(e=this.selectList)===null||e===void 0||e.splice(0,this.selectList.length,this.options)}select(e){e>=0&&e<this.options.length?this.selected=e:e>this.options.length-1?this.select(this.options.length-1):this.selected<0&&(this.selected=0),this.selectElement.selectedIndex=this.selected,this.options[this.selected]&&this.options[this.selected].text&&this.setTitle(this.options[this.selected].text)}focus(){this.selectElement&&(this.selectElement.tabIndex=0,this.selectElement.focus())}blur(){this.selectElement&&(this.selectElement.tabIndex=-1,this.selectElement.blur())}setFocusable(e){this.selectElement.tabIndex=e?0:-1}render(e){this.container=e,e.classList.add(\"select-container\"),e.appendChild(this.selectElement),this.styleSelectElement()}initStyleSheet(){const e=[];this.styles.listFocusBackground&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { background-color: ${this.styles.listFocusBackground} !important; }`),this.styles.listFocusForeground&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { color: ${this.styles.listFocusForeground} !important; }`),this.styles.decoratorRightForeground&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.focused) .option-decorator-right { color: ${this.styles.decoratorRightForeground}; }`),this.styles.selectBackground&&this.styles.selectBorder&&this.styles.selectBorder!==this.styles.selectBackground?(e.push(`.monaco-select-box-dropdown-container { border: 1px solid ${this.styles.selectBorder} } `),e.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-top { border-top: 1px solid ${this.styles.selectBorder} } `),e.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-bottom { border-bottom: 1px solid ${this.styles.selectBorder} } `)):this.styles.selectListBorder&&(e.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-top { border-top: 1px solid ${this.styles.selectListBorder} } `),e.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-bottom { border-bottom: 1px solid ${this.styles.selectListBorder} } `)),this.styles.listHoverForeground&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { color: ${this.styles.listHoverForeground} !important; }`),this.styles.listHoverBackground&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { background-color: ${this.styles.listHoverBackground} !important; }`),this.styles.listFocusOutline&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { outline: 1.6px dotted ${this.styles.listFocusOutline} !important; outline-offset: -1.6px !important; }`),this.styles.listHoverOutline&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { outline: 1.6px dashed ${this.styles.listHoverOutline} !important; outline-offset: -1.6px !important; }`),e.push(\".monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.option-disabled.focused { background-color: transparent !important; color: inherit !important; outline: none !important; }\"),e.push(\".monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.option-disabled:hover { background-color: transparent !important; color: inherit !important; outline: none !important; }\"),this.styleElement.textContent=e.join(`\n`)}styleSelectElement(){var e,t,i;const s=(e=this.styles.selectBackground)!==null&&e!==void 0?e:\"\",o=(t=this.styles.selectForeground)!==null&&t!==void 0?t:\"\",r=(i=this.styles.selectBorder)!==null&&i!==void 0?i:\"\";this.selectElement.style.backgroundColor=s,this.selectElement.style.color=o,this.selectElement.style.borderColor=r}styleList(){var e,t;const i=(e=this.styles.selectBackground)!==null&&e!==void 0?e:\"\",s=mg(this.styles.selectListBackground,i);this.selectDropDownListContainer.style.backgroundColor=s,this.selectionDetailsPane.style.backgroundColor=s;const o=(t=this.styles.focusBorder)!==null&&t!==void 0?t:\"\";this.selectDropDownContainer.style.outlineColor=o,this.selectDropDownContainer.style.outlineOffset=\"-1px\",this.selectList.style(this.styles)}createOption(e,t,i){const s=document.createElement(\"option\");return s.value=e,s.text=e,s.disabled=!!i,s}showSelectDropDown(){this.selectionDetailsPane.innerText=\"\",!(!this.contextViewProvider||this._isVisible)&&(this.createSelectList(this.selectDropDownContainer),this.setOptionsList(),this.contextViewProvider.showContextView({getAnchor:()=>this.selectElement,render:e=>this.renderSelectDropDown(e,!0),layout:()=>{this.layoutSelectDropDown()},onHide:()=>{this.selectDropDownContainer.classList.remove(\"visible\"),this.selectElement.classList.remove(\"synthetic-focus\")},anchorPosition:this._dropDownPosition},this.selectBoxOptions.optionsAsChildren?this.container:void 0),this._isVisible=!0,this.hideSelectDropDown(!1),this.contextViewProvider.showContextView({getAnchor:()=>this.selectElement,render:e=>this.renderSelectDropDown(e),layout:()=>this.layoutSelectDropDown(),onHide:()=>{this.selectDropDownContainer.classList.remove(\"visible\"),this.selectElement.classList.remove(\"synthetic-focus\")},anchorPosition:this._dropDownPosition},this.selectBoxOptions.optionsAsChildren?this.container:void 0),this._currentSelection=this.selected,this._isVisible=!0,this.selectElement.setAttribute(\"aria-expanded\",\"true\"))}hideSelectDropDown(e){!this.contextViewProvider||!this._isVisible||(this._isVisible=!1,this.selectElement.setAttribute(\"aria-expanded\",\"false\"),e&&this.selectElement.focus(),this.contextViewProvider.hideContextView())}renderSelectDropDown(e,t){return e.appendChild(this.selectDropDownContainer),this.layoutSelectDropDown(t),{dispose:()=>{try{e.removeChild(this.selectDropDownContainer)}catch{}}}}measureMaxDetailsHeight(){let e=0;return this.options.forEach((t,i)=>{this.updateDetail(i),this.selectionDetailsPane.offsetHeight>e&&(e=this.selectionDetailsPane.offsetHeight)}),e}layoutSelectDropDown(e){if(this._skipLayout)return!1;if(this.selectList){this.selectDropDownContainer.classList.add(\"visible\");const t=gt(this.selectElement),i=bs(this.selectElement),s=gt(this.selectElement).getComputedStyle(this.selectElement),o=parseFloat(s.getPropertyValue(\"--dropdown-padding-top\"))+parseFloat(s.getPropertyValue(\"--dropdown-padding-bottom\")),r=t.innerHeight-i.top-i.height-(this.selectBoxOptions.minBottomMargin||0),a=i.top-nh.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN,l=this.selectElement.offsetWidth,c=this.setWidthControlElement(this.widthControlElement),d=Math.max(c,Math.round(l)).toString()+\"px\";this.selectDropDownContainer.style.width=d,this.selectList.getHTMLElement().style.height=\"\",this.selectList.layout();let u=this.selectList.contentHeight;this._hasDetails&&this._cachedMaxDetailsHeight===void 0&&(this._cachedMaxDetailsHeight=this.measureMaxDetailsHeight());const h=this._hasDetails?this._cachedMaxDetailsHeight:0,f=u+o+h,g=Math.floor((r-o-h)/this.getHeight()),p=Math.floor((a-o-h)/this.getHeight());if(e)return i.top+i.height>t.innerHeight-22||i.top<nh.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN||g<1&&p<1?!1:(g<nh.DEFAULT_MINIMUM_VISIBLE_OPTIONS&&p>g&&this.options.length>g?(this._dropDownPosition=1,this.selectDropDownContainer.removeChild(this.selectDropDownListContainer),this.selectDropDownContainer.removeChild(this.selectionDetailsPane),this.selectDropDownContainer.appendChild(this.selectionDetailsPane),this.selectDropDownContainer.appendChild(this.selectDropDownListContainer),this.selectionDetailsPane.classList.remove(\"border-top\"),this.selectionDetailsPane.classList.add(\"border-bottom\")):(this._dropDownPosition=0,this.selectDropDownContainer.removeChild(this.selectDropDownListContainer),this.selectDropDownContainer.removeChild(this.selectionDetailsPane),this.selectDropDownContainer.appendChild(this.selectDropDownListContainer),this.selectDropDownContainer.appendChild(this.selectionDetailsPane),this.selectionDetailsPane.classList.remove(\"border-bottom\"),this.selectionDetailsPane.classList.add(\"border-top\")),!0);if(i.top+i.height>t.innerHeight-22||i.top<nh.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN||this._dropDownPosition===0&&g<1||this._dropDownPosition===1&&p<1)return this.hideSelectDropDown(!0),!1;if(this._dropDownPosition===0){if(this._isVisible&&g+p<1)return this.hideSelectDropDown(!0),!1;f>r&&(u=g*this.getHeight())}else f>a&&(u=p*this.getHeight());return this.selectList.layout(u),this.selectList.domFocus(),this.selectList.length>0&&(this.selectList.setFocus([this.selected||0]),this.selectList.reveal(this.selectList.getFocus()[0]||0)),this._hasDetails?(this.selectList.getHTMLElement().style.height=u+o+\"px\",this.selectDropDownContainer.style.height=\"\"):this.selectDropDownContainer.style.height=u+o+\"px\",this.updateDetail(this.selected),this.selectDropDownContainer.style.width=d,this.selectDropDownListContainer.setAttribute(\"tabindex\",\"0\"),this.selectElement.classList.add(\"synthetic-focus\"),this.selectDropDownContainer.classList.add(\"synthetic-focus\"),!0}else return!1}setWidthControlElement(e){let t=0;if(e){let i=0,s=0;this.options.forEach((o,r)=>{const a=o.detail?o.detail.length:0,l=o.decoratorRight?o.decoratorRight.length:0,c=o.text.length+a+l;c>s&&(i=r,s=c)}),e.textContent=this.options[i].text+(this.options[i].decoratorRight?this.options[i].decoratorRight+\" \":\"\"),t=Sa(e)}return t}createSelectList(e){if(this.selectList)return;this.selectDropDownListContainer=we(e,Ev(\".select-box-dropdown-list-container\")),this.listRenderer=new PVe,this.selectList=new El(\"SelectBoxCustom\",this.selectDropDownListContainer,this,[this.listRenderer],{useShadows:!1,verticalScrollMode:3,keyboardSupport:!1,mouseSupport:!1,accessibilityProvider:{getAriaLabel:s=>{let o=s.text;return s.detail&&(o+=`. ${s.detail}`),s.decoratorRight&&(o+=`. ${s.decoratorRight}`),s.description&&(o+=`. ${s.description}`),o},getWidgetAriaLabel:()=>v({},\"Select Box\"),getRole:()=>Xt?\"\":\"option\",getWidgetRole:()=>\"listbox\"}}),this.selectBoxOptions.ariaLabel&&(this.selectList.ariaLabel=this.selectBoxOptions.ariaLabel);const t=this._register(new ei(this.selectDropDownListContainer,\"keydown\")),i=Ae.chain(t.event,s=>s.filter(()=>this.selectList.length>0).map(o=>new ln(o)));this._register(Ae.chain(i,s=>s.filter(o=>o.keyCode===3))(this.onEnter,this)),this._register(Ae.chain(i,s=>s.filter(o=>o.keyCode===2))(this.onEnter,this)),this._register(Ae.chain(i,s=>s.filter(o=>o.keyCode===9))(this.onEscape,this)),this._register(Ae.chain(i,s=>s.filter(o=>o.keyCode===16))(this.onUpArrow,this)),this._register(Ae.chain(i,s=>s.filter(o=>o.keyCode===18))(this.onDownArrow,this)),this._register(Ae.chain(i,s=>s.filter(o=>o.keyCode===12))(this.onPageDown,this)),this._register(Ae.chain(i,s=>s.filter(o=>o.keyCode===11))(this.onPageUp,this)),this._register(Ae.chain(i,s=>s.filter(o=>o.keyCode===14))(this.onHome,this)),this._register(Ae.chain(i,s=>s.filter(o=>o.keyCode===13))(this.onEnd,this)),this._register(Ae.chain(i,s=>s.filter(o=>o.keyCode>=21&&o.keyCode<=56||o.keyCode>=85&&o.keyCode<=113))(this.onCharacter,this)),this._register(ce(this.selectList.getHTMLElement(),Le.POINTER_UP,s=>this.onPointerUp(s))),this._register(this.selectList.onMouseOver(s=>typeof s.index<\"u\"&&this.selectList.setFocus([s.index]))),this._register(this.selectList.onDidChangeFocus(s=>this.onListFocus(s))),this._register(ce(this.selectDropDownContainer,Le.FOCUS_OUT,s=>{!this._isVisible||Zs(s.relatedTarget,this.selectDropDownContainer)||this.onListBlur()})),this.selectList.getHTMLElement().setAttribute(\"aria-label\",this.selectBoxOptions.ariaLabel||\"\"),this.selectList.getHTMLElement().setAttribute(\"aria-expanded\",\"true\"),this.styleList()}onPointerUp(e){if(!this.selectList.length)return;ii.stop(e);const t=e.target;if(!t||t.classList.contains(\"slider\"))return;const i=t.closest(\".monaco-list-row\");if(!i)return;const s=Number(i.getAttribute(\"data-index\")),o=i.classList.contains(\"option-disabled\");s>=0&&s<this.options.length&&!o&&(this.selected=s,this.select(this.selected),this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selectList.getFocus()[0]),this.selected!==this._currentSelection&&(this._currentSelection=this.selected,this._onDidSelect.fire({index:this.selectElement.selectedIndex,selected:this.options[this.selected].text}),this.options[this.selected]&&this.options[this.selected].text&&this.setTitle(this.options[this.selected].text)),this.hideSelectDropDown(!0))}onListBlur(){this._sticky||(this.selected!==this._currentSelection&&this.select(this._currentSelection),this.hideSelectDropDown(!1))}renderDescriptionMarkdown(e,t){const i=o=>{for(let r=0;r<o.childNodes.length;r++){const a=o.childNodes.item(r);(a.tagName&&a.tagName.toLowerCase())===\"img\"?o.removeChild(a):i(a)}},s=GM({value:e,supportThemeIcons:!0},{actionHandler:t});return s.element.classList.add(\"select-box-description-markdown\"),i(s.element),s.element}onListFocus(e){!this._isVisible||!this._hasDetails||this.updateDetail(e.indexes[0])}updateDetail(e){var t,i;this.selectionDetailsPane.innerText=\"\";const s=this.options[e],o=(t=s==null?void 0:s.description)!==null&&t!==void 0?t:\"\",r=(i=s==null?void 0:s.descriptionIsMarkdown)!==null&&i!==void 0?i:!1;if(o){if(r){const a=s.descriptionMarkdownActionHandler;this.selectionDetailsPane.appendChild(this.renderDescriptionMarkdown(o,a))}else this.selectionDetailsPane.innerText=o;this.selectionDetailsPane.style.display=\"block\"}else this.selectionDetailsPane.style.display=\"none\";this._skipLayout=!0,this.contextViewProvider.layout(),this._skipLayout=!1}onEscape(e){ii.stop(e),this.select(this._currentSelection),this.hideSelectDropDown(!0)}onEnter(e){ii.stop(e),this.selected!==this._currentSelection&&(this._currentSelection=this.selected,this._onDidSelect.fire({index:this.selectElement.selectedIndex,selected:this.options[this.selected].text}),this.options[this.selected]&&this.options[this.selected].text&&this.setTitle(this.options[this.selected].text)),this.hideSelectDropDown(!0)}onDownArrow(e){if(this.selected<this.options.length-1){ii.stop(e,!0);const t=this.options[this.selected+1].isDisabled;if(t&&this.options.length>this.selected+2)this.selected+=2;else{if(t)return;this.selected++}this.select(this.selected),this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selectList.getFocus()[0])}}onUpArrow(e){this.selected>0&&(ii.stop(e,!0),this.options[this.selected-1].isDisabled&&this.selected>1?this.selected-=2:this.selected--,this.select(this.selected),this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selectList.getFocus()[0]))}onPageUp(e){ii.stop(e),this.selectList.focusPreviousPage(),setTimeout(()=>{this.selected=this.selectList.getFocus()[0],this.options[this.selected].isDisabled&&this.selected<this.options.length-1&&(this.selected++,this.selectList.setFocus([this.selected])),this.selectList.reveal(this.selected),this.select(this.selected)},1)}onPageDown(e){ii.stop(e),this.selectList.focusNextPage(),setTimeout(()=>{this.selected=this.selectList.getFocus()[0],this.options[this.selected].isDisabled&&this.selected>0&&(this.selected--,this.selectList.setFocus([this.selected])),this.selectList.reveal(this.selected),this.select(this.selected)},1)}onHome(e){ii.stop(e),!(this.options.length<2)&&(this.selected=0,this.options[this.selected].isDisabled&&this.selected>1&&this.selected++,this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selected),this.select(this.selected))}onEnd(e){ii.stop(e),!(this.options.length<2)&&(this.selected=this.options.length-1,this.options[this.selected].isDisabled&&this.selected>1&&this.selected--,this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selected),this.select(this.selected))}onCharacter(e){const t=Wf.toString(e.keyCode);let i=-1;for(let s=0;s<this.options.length-1;s++)if(i=(s+this.selected+1)%this.options.length,this.options[i].text.charAt(0).toUpperCase()===t&&!this.options[i].isDisabled){this.select(i),this.selectList.setFocus([i]),this.selectList.reveal(this.selectList.getFocus()[0]),ii.stop(e);break}}dispose(){this.hideSelectDropDown(!1),super.dispose()}}nh.DEFAULT_DROPDOWN_MINIMUM_BOTTOM_MARGIN=32;nh.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN=2;nh.DEFAULT_MINIMUM_VISIBLE_OPTIONS=3;class OVe extends ne{constructor(e,t,i,s){super(),this.selected=0,this.selectBoxOptions=s||Object.create(null),this.options=[],this.selectElement=document.createElement(\"select\"),this.selectElement.className=\"monaco-select-box\",typeof this.selectBoxOptions.ariaLabel==\"string\"&&this.selectElement.setAttribute(\"aria-label\",this.selectBoxOptions.ariaLabel),typeof this.selectBoxOptions.ariaDescription==\"string\"&&this.selectElement.setAttribute(\"aria-description\",this.selectBoxOptions.ariaDescription),this._onDidSelect=this._register(new X),this.styles=i,this.registerListeners(),this.setOptions(e,t)}registerListeners(){this._register(hn.addTarget(this.selectElement)),[fn.Tap].forEach(e=>{this._register(ce(this.selectElement,e,t=>{this.selectElement.focus()}))}),this._register(rs(this.selectElement,\"click\",e=>{ii.stop(e,!0)})),this._register(rs(this.selectElement,\"change\",e=>{this.selectElement.title=e.target.value,this._onDidSelect.fire({index:e.target.selectedIndex,selected:e.target.value})})),this._register(rs(this.selectElement,\"keydown\",e=>{let t=!1;Xt?(e.keyCode===18||e.keyCode===16||e.keyCode===10)&&(t=!0):(e.keyCode===18&&e.altKey||e.keyCode===10||e.keyCode===3)&&(t=!0),t&&e.stopPropagation()}))}get onDidSelect(){return this._onDidSelect.event}setOptions(e,t){(!this.options||!zn(this.options,e))&&(this.options=e,this.selectElement.options.length=0,this.options.forEach((i,s)=>{this.selectElement.add(this.createOption(i.text,s,i.isDisabled))})),t!==void 0&&this.select(t)}select(e){this.options.length===0?this.selected=0:e>=0&&e<this.options.length?this.selected=e:e>this.options.length-1?this.select(this.options.length-1):this.selected<0&&(this.selected=0),this.selectElement.selectedIndex=this.selected,this.selected<this.options.length&&typeof this.options[this.selected].text==\"string\"?this.selectElement.title=this.options[this.selected].text:this.selectElement.title=\"\"}focus(){this.selectElement&&(this.selectElement.tabIndex=0,this.selectElement.focus())}blur(){this.selectElement&&(this.selectElement.tabIndex=-1,this.selectElement.blur())}setFocusable(e){this.selectElement.tabIndex=e?0:-1}render(e){e.classList.add(\"select-container\"),e.appendChild(this.selectElement),this.setOptions(this.options,this.selected),this.applyStyles()}applyStyles(){var e,t,i;this.selectElement&&(this.selectElement.style.backgroundColor=(e=this.styles.selectBackground)!==null&&e!==void 0?e:\"\",this.selectElement.style.color=(t=this.styles.selectForeground)!==null&&t!==void 0?t:\"\",this.selectElement.style.borderColor=(i=this.styles.selectBorder)!==null&&i!==void 0?i:\"\")}createOption(e,t,i){const s=document.createElement(\"option\");return s.value=e,s.text=e,s.disabled=!!i,s}}class FVe extends Il{constructor(e,t,i,s,o){super(),Xt&&!(o!=null&&o.useCustomDrawn)?this.selectBoxDelegate=new OVe(e,t,s,o):this.selectBoxDelegate=new nh(e,t,i,s,o),this._register(this.selectBoxDelegate)}get onDidSelect(){return this.selectBoxDelegate.onDidSelect}setOptions(e,t){this.selectBoxDelegate.setOptions(e,t)}select(e){this.selectBoxDelegate.select(e)}focus(){this.selectBoxDelegate.focus()}blur(){this.selectBoxDelegate.blur()}setFocusable(e){this.selectBoxDelegate.setFocusable(e)}render(e){this.selectBoxDelegate.render(e)}}class Rd extends ne{get action(){return this._action}constructor(e,t,i={}){super(),this.options=i,this._context=e||this,this._action=t,t instanceof Ta&&this._register(t.onDidChange(s=>{this.element&&this.handleActionChangeEvent(s)}))}handleActionChangeEvent(e){e.enabled!==void 0&&this.updateEnabled(),e.checked!==void 0&&this.updateChecked(),e.class!==void 0&&this.updateClass(),e.label!==void 0&&(this.updateLabel(),this.updateTooltip()),e.tooltip!==void 0&&this.updateTooltip()}get actionRunner(){return this._actionRunner||(this._actionRunner=this._register(new f0)),this._actionRunner}set actionRunner(e){this._actionRunner=e}isEnabled(){return this._action.enabled}setActionContext(e){this._context=e}render(e){const t=this.element=e;this._register(hn.addTarget(e));const i=this.options&&this.options.draggable;i&&(e.draggable=!0,lc&&this._register(ce(e,Le.DRAG_START,s=>{var o;return(o=s.dataTransfer)===null||o===void 0?void 0:o.setData(UL.TEXT,this._action.label)}))),this._register(ce(t,fn.Tap,s=>this.onClick(s,!0))),this._register(ce(t,Le.MOUSE_DOWN,s=>{i||ii.stop(s,!0),this._action.enabled&&s.button===0&&t.classList.add(\"active\")})),Xt&&this._register(ce(t,Le.CONTEXT_MENU,s=>{s.button===0&&s.ctrlKey===!0&&this.onClick(s)})),this._register(ce(t,Le.CLICK,s=>{ii.stop(s,!0),this.options&&this.options.isMenu||this.onClick(s)})),this._register(ce(t,Le.DBLCLICK,s=>{ii.stop(s,!0)})),[Le.MOUSE_UP,Le.MOUSE_OUT].forEach(s=>{this._register(ce(t,s,o=>{ii.stop(o),t.classList.remove(\"active\")}))})}onClick(e,t=!1){var i;ii.stop(e,!0);const s=ll(this._context)?!((i=this.options)===null||i===void 0)&&i.useEventAsContext?e:{preserveFocus:t}:this._context;this.actionRunner.run(this._action,s)}focus(){this.element&&(this.element.tabIndex=0,this.element.focus(),this.element.classList.add(\"focused\"))}blur(){this.element&&(this.element.blur(),this.element.tabIndex=-1,this.element.classList.remove(\"focused\"))}setFocusable(e){this.element&&(this.element.tabIndex=e?0:-1)}get trapsArrowNavigation(){return!1}updateEnabled(){}updateLabel(){}getClass(){return this.action.class}getTooltip(){return this.action.tooltip}updateTooltip(){var e,t,i;if(!this.element)return;const s=(e=this.getTooltip())!==null&&e!==void 0?e:\"\";if(this.updateAriaLabel(),!((t=this.options.hoverDelegate)===null||t===void 0)&&t.showNativeHover)this.element.title=s;else if(!this.customHover&&s!==\"\"){const o=(i=this.options.hoverDelegate)!==null&&i!==void 0?i:Ur(\"element\");this.customHover=this._store.add(bu().setupUpdatableHover(o,this.element,s))}else this.customHover&&this.customHover.update(s)}updateAriaLabel(){var e;if(this.element){const t=(e=this.getTooltip())!==null&&e!==void 0?e:\"\";this.element.setAttribute(\"aria-label\",t)}}updateClass(){}updateChecked(){}dispose(){this.element&&(this.element.remove(),this.element=void 0),this._context=void 0,super.dispose()}}class QC extends Rd{constructor(e,t,i){super(e,t,i),this.options=i,this.options.icon=i.icon!==void 0?i.icon:!1,this.options.label=i.label!==void 0?i.label:!0,this.cssClass=\"\"}render(e){super.render(e),mi(this.element);const t=document.createElement(\"a\");if(t.classList.add(\"action-label\"),t.setAttribute(\"role\",this.getDefaultAriaRole()),this.label=t,this.element.appendChild(t),this.options.label&&this.options.keybinding){const i=document.createElement(\"span\");i.classList.add(\"keybinding\"),i.textContent=this.options.keybinding,this.element.appendChild(i)}this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked()}getDefaultAriaRole(){return this._action.id===Ms.ID?\"presentation\":this.options.isMenu?\"menuitem\":\"button\"}focus(){this.label&&(this.label.tabIndex=0,this.label.focus())}blur(){this.label&&(this.label.tabIndex=-1)}setFocusable(e){this.label&&(this.label.tabIndex=e?0:-1)}updateLabel(){this.options.label&&this.label&&(this.label.textContent=this.action.label)}getTooltip(){let e=null;return this.action.tooltip?e=this.action.tooltip:!this.options.label&&this.action.label&&this.options.icon&&(e=this.action.label,this.options.keybinding&&(e=v({},\"{0} ({1})\",e,this.options.keybinding))),e??void 0}updateClass(){var e;this.cssClass&&this.label&&this.label.classList.remove(...this.cssClass.split(\" \")),this.options.icon?(this.cssClass=this.getClass(),this.label&&(this.label.classList.add(\"codicon\"),this.cssClass&&this.label.classList.add(...this.cssClass.split(\" \"))),this.updateEnabled()):(e=this.label)===null||e===void 0||e.classList.remove(\"codicon\")}updateEnabled(){var e,t;this.action.enabled?(this.label&&(this.label.removeAttribute(\"aria-disabled\"),this.label.classList.remove(\"disabled\")),(e=this.element)===null||e===void 0||e.classList.remove(\"disabled\")):(this.label&&(this.label.setAttribute(\"aria-disabled\",\"true\"),this.label.classList.add(\"disabled\")),(t=this.element)===null||t===void 0||t.classList.add(\"disabled\"))}updateAriaLabel(){var e;if(this.label){const t=(e=this.getTooltip())!==null&&e!==void 0?e:\"\";this.label.setAttribute(\"aria-label\",t)}}updateChecked(){this.label&&(this.action.checked!==void 0?(this.label.classList.toggle(\"checked\",this.action.checked),this.label.setAttribute(\"aria-checked\",this.action.checked?\"true\":\"false\"),this.label.setAttribute(\"role\",\"checkbox\")):(this.label.classList.remove(\"checked\"),this.label.removeAttribute(\"aria-checked\"),this.label.setAttribute(\"role\",this.getDefaultAriaRole())))}}class BVe extends Rd{constructor(e,t,i,s,o,r,a){super(e,t),this.selectBox=new FVe(i,s,o,r,a),this.selectBox.setFocusable(!1),this._register(this.selectBox),this.registerListeners()}select(e){this.selectBox.select(e)}registerListeners(){this._register(this.selectBox.onDidSelect(e=>this.runAction(e.selected,e.index)))}runAction(e,t){this.actionRunner.run(this._action,this.getActionContext(e,t))}getActionContext(e,t){return e}setFocusable(e){this.selectBox.setFocusable(e)}focus(){var e;(e=this.selectBox)===null||e===void 0||e.focus()}blur(){var e;(e=this.selectBox)===null||e===void 0||e.blur()}render(e){this.selectBox.render(e)}}class WVe extends f0{constructor(e,t){super(),this._onDidChangeVisibility=this._register(new X),this.onDidChangeVisibility=this._onDidChangeVisibility.event,this._element=we(e,ke(\".monaco-dropdown\")),this._label=we(this._element,ke(\".dropdown-label\"));let i=t.labelRenderer;i||(i=o=>(o.textContent=t.label||\"\",null));for(const o of[Le.CLICK,Le.MOUSE_DOWN,fn.Tap])this._register(ce(this.element,o,r=>ii.stop(r,!0)));for(const o of[Le.MOUSE_DOWN,fn.Tap])this._register(ce(this._label,o,r=>{sz(r)&&(r.detail>1||r.button!==0)||(this.visible?this.hide():this.show())}));this._register(ce(this._label,Le.KEY_UP,o=>{const r=new ln(o);(r.equals(3)||r.equals(10))&&(ii.stop(o,!0),this.visible?this.hide():this.show())}));const s=i(this._label);s&&this._register(s),this._register(hn.addTarget(this._label))}get element(){return this._element}show(){this.visible||(this.visible=!0,this._onDidChangeVisibility.fire(!0))}hide(){this.visible&&(this.visible=!1,this._onDidChangeVisibility.fire(!1))}dispose(){super.dispose(),this.hide(),this.boxContainer&&(this.boxContainer.remove(),this.boxContainer=void 0),this.contents&&(this.contents.remove(),this.contents=void 0),this._label&&(this._label.remove(),this._label=void 0)}}class HVe extends WVe{constructor(e,t){super(e,t),this._options=t,this._actions=[],this.actions=t.actions||[]}set menuOptions(e){this._menuOptions=e}get menuOptions(){return this._menuOptions}get actions(){return this._options.actionProvider?this._options.actionProvider.getActions():this._actions}set actions(e){this._actions=e}show(){super.show(),this.element.classList.add(\"active\"),this._options.contextMenuProvider.showContextMenu({getAnchor:()=>this.element,getActions:()=>this.actions,getActionsContext:()=>this.menuOptions?this.menuOptions.context:null,getActionViewItem:(e,t)=>this.menuOptions&&this.menuOptions.actionViewItemProvider?this.menuOptions.actionViewItemProvider(e,t):void 0,getKeyBinding:e=>this.menuOptions&&this.menuOptions.getKeyBinding?this.menuOptions.getKeyBinding(e):void 0,getMenuClassName:()=>this._options.menuClassName||\"\",onHide:()=>this.onHide(),actionRunner:this.menuOptions?this.menuOptions.actionRunner:void 0,anchorAlignment:this.menuOptions?this.menuOptions.anchorAlignment:0,domForShadowRoot:this._options.menuAsChild?this.element:void 0,skipTelemetry:this._options.skipTelemetry})}hide(){super.hide()}onHide(){this.hide(),this.element.classList.remove(\"active\")}}class xA extends Rd{constructor(e,t,i,s=Object.create(null)){super(null,e,s),this.actionItem=null,this._onDidChangeVisibility=this._register(new X),this.onDidChangeVisibility=this._onDidChangeVisibility.event,this.menuActionsOrProvider=t,this.contextMenuProvider=i,this.options=s,this.options.actionRunner&&(this.actionRunner=this.options.actionRunner)}render(e){this.actionItem=e;const t=o=>{var r;this.element=we(o,ke(\"a.action-label\"));let a=[];return typeof this.options.classNames==\"string\"?a=this.options.classNames.split(/\\s+/g).filter(l=>!!l):this.options.classNames&&(a=this.options.classNames),a.find(l=>l===\"icon\")||a.push(\"codicon\"),this.element.classList.add(...a),this.element.setAttribute(\"role\",\"button\"),this.element.setAttribute(\"aria-haspopup\",\"true\"),this.element.setAttribute(\"aria-expanded\",\"false\"),this._action.label&&this._register(bu().setupUpdatableHover((r=this.options.hoverDelegate)!==null&&r!==void 0?r:Ur(\"mouse\"),this.element,this._action.label)),this.element.ariaLabel=this._action.label||\"\",null},i=Array.isArray(this.menuActionsOrProvider),s={contextMenuProvider:this.contextMenuProvider,labelRenderer:t,menuAsChild:this.options.menuAsChild,actions:i?this.menuActionsOrProvider:void 0,actionProvider:i?void 0:this.menuActionsOrProvider,skipTelemetry:this.options.skipTelemetry};if(this.dropdownMenu=this._register(new HVe(e,s)),this._register(this.dropdownMenu.onDidChangeVisibility(o=>{var r;(r=this.element)===null||r===void 0||r.setAttribute(\"aria-expanded\",`${o}`),this._onDidChangeVisibility.fire(o)})),this.dropdownMenu.menuOptions={actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,getKeyBinding:this.options.keybindingProvider,context:this._context},this.options.anchorAlignmentProvider){const o=this;this.dropdownMenu.menuOptions={...this.dropdownMenu.menuOptions,get anchorAlignment(){return o.options.anchorAlignmentProvider()}}}this.updateTooltip(),this.updateEnabled()}getTooltip(){let e=null;return this.action.tooltip?e=this.action.tooltip:this.action.label&&(e=this.action.label),e??void 0}setActionContext(e){super.setActionContext(e),this.dropdownMenu&&(this.dropdownMenu.menuOptions?this.dropdownMenu.menuOptions.context=e:this.dropdownMenu.menuOptions={context:e})}show(){var e;(e=this.dropdownMenu)===null||e===void 0||e.show()}updateEnabled(){var e,t;const i=!this.action.enabled;(e=this.actionItem)===null||e===void 0||e.classList.toggle(\"disabled\",i),(t=this.element)===null||t===void 0||t.classList.toggle(\"disabled\",i)}}function VVe(n){return n&&typeof n==\"object\"&&typeof n.original==\"string\"&&typeof n.value==\"string\"}function zVe(n){return n?n.condition!==void 0:!1}var cC;(function(n){n[n.STORAGE_DOES_NOT_EXIST=0]=\"STORAGE_DOES_NOT_EXIST\",n[n.STORAGE_IN_MEMORY=1]=\"STORAGE_IN_MEMORY\"})(cC||(cC={}));var N1;(function(n){n[n.None=0]=\"None\",n[n.Initialized=1]=\"Initialized\",n[n.Closed=2]=\"Closed\"})(N1||(N1={}));class dC extends ne{constructor(e,t=Object.create(null)){super(),this.database=e,this.options=t,this._onDidChangeStorage=this._register(new a0),this.onDidChangeStorage=this._onDidChangeStorage.event,this.state=N1.None,this.cache=new Map,this.flushDelayer=this._register(new Iae(dC.DEFAULT_FLUSH_DELAY)),this.pendingDeletes=new Set,this.pendingInserts=new Map,this.whenFlushedCallbacks=[],this.registerListeners()}registerListeners(){this._register(this.database.onDidChangeItemsExternal(e=>this.onDidChangeItemsExternal(e)))}onDidChangeItemsExternal(e){var t,i;this._onDidChangeStorage.pause();try{(t=e.changed)===null||t===void 0||t.forEach((s,o)=>this.acceptExternal(o,s)),(i=e.deleted)===null||i===void 0||i.forEach(s=>this.acceptExternal(s,void 0))}finally{this._onDidChangeStorage.resume()}}acceptExternal(e,t){if(this.state===N1.Closed)return;let i=!1;ll(t)?i=this.cache.delete(e):this.cache.get(e)!==t&&(this.cache.set(e,t),i=!0),i&&this._onDidChangeStorage.fire({key:e,external:!0})}get(e,t){const i=this.cache.get(e);return ll(i)?t:i}getBoolean(e,t){const i=this.get(e);return ll(i)?t:i===\"true\"}getNumber(e,t){const i=this.get(e);return ll(i)?t:parseInt(i,10)}async set(e,t,i=!1){if(this.state===N1.Closed)return;if(ll(t))return this.delete(e,i);const s=Er(t)||Array.isArray(t)?SWe(t):String(t);if(this.cache.get(e)!==s)return this.cache.set(e,s),this.pendingInserts.set(e,s),this.pendingDeletes.delete(e),this._onDidChangeStorage.fire({key:e,external:i}),this.doFlush()}async delete(e,t=!1){if(!(this.state===N1.Closed||!this.cache.delete(e)))return this.pendingDeletes.has(e)||this.pendingDeletes.add(e),this.pendingInserts.delete(e),this._onDidChangeStorage.fire({key:e,external:t}),this.doFlush()}get hasPending(){return this.pendingInserts.size>0||this.pendingDeletes.size>0}async flushPending(){if(!this.hasPending)return;const e={insert:this.pendingInserts,delete:this.pendingDeletes};return this.pendingDeletes=new Set,this.pendingInserts=new Map,this.database.updateItems(e).finally(()=>{var t;if(!this.hasPending)for(;this.whenFlushedCallbacks.length;)(t=this.whenFlushedCallbacks.pop())===null||t===void 0||t()})}async doFlush(e){return this.options.hint===cC.STORAGE_IN_MEMORY?this.flushPending():this.flushDelayer.trigger(()=>this.flushPending(),e)}}dC.DEFAULT_FLUSH_DELAY=100;class P5{constructor(){this.onDidChangeItemsExternal=Ae.None,this.items=new Map}async updateItems(e){var t,i;(t=e.insert)===null||t===void 0||t.forEach((s,o)=>this.items.set(o,s)),(i=e.delete)===null||i===void 0||i.forEach(s=>this.items.delete(s))}}const IN=\"__$__targetStorageMarker\",dd=Jt(\"storageService\");var GL;(function(n){n[n.NONE=0]=\"NONE\",n[n.SHUTDOWN=1]=\"SHUTDOWN\"})(GL||(GL={}));function $Ve(n){const e=n.get(IN);if(e)try{return JSON.parse(e)}catch{}return Object.create(null)}class sP extends ne{constructor(e={flushInterval:sP.DEFAULT_FLUSH_INTERVAL}){super(),this.options=e,this._onDidChangeValue=this._register(new a0),this._onDidChangeTarget=this._register(new a0),this._onWillSaveState=this._register(new X),this.onWillSaveState=this._onWillSaveState.event,this._workspaceKeyTargets=void 0,this._profileKeyTargets=void 0,this._applicationKeyTargets=void 0}onDidChangeValue(e,t,i){return Ae.filter(this._onDidChangeValue.event,s=>s.scope===e&&(t===void 0||s.key===t),i)}emitDidChangeValue(e,t){const{key:i,external:s}=t;if(i===IN){switch(e){case-1:this._applicationKeyTargets=void 0;break;case 0:this._profileKeyTargets=void 0;break;case 1:this._workspaceKeyTargets=void 0;break}this._onDidChangeTarget.fire({scope:e})}else this._onDidChangeValue.fire({scope:e,key:i,target:this.getKeyTargets(e)[i],external:s})}get(e,t,i){var s;return(s=this.getStorage(t))===null||s===void 0?void 0:s.get(e,i)}getBoolean(e,t,i){var s;return(s=this.getStorage(t))===null||s===void 0?void 0:s.getBoolean(e,i)}getNumber(e,t,i){var s;return(s=this.getStorage(t))===null||s===void 0?void 0:s.getNumber(e,i)}store(e,t,i,s,o=!1){if(ll(t)){this.remove(e,i,o);return}this.withPausedEmitters(()=>{var r;this.updateKeyTarget(e,i,s),(r=this.getStorage(i))===null||r===void 0||r.set(e,t,o)})}remove(e,t,i=!1){this.withPausedEmitters(()=>{var s;this.updateKeyTarget(e,t,void 0),(s=this.getStorage(t))===null||s===void 0||s.delete(e,i)})}withPausedEmitters(e){this._onDidChangeValue.pause(),this._onDidChangeTarget.pause();try{e()}finally{this._onDidChangeValue.resume(),this._onDidChangeTarget.resume()}}updateKeyTarget(e,t,i,s=!1){var o,r;const a=this.getKeyTargets(t);typeof i==\"number\"?a[e]!==i&&(a[e]=i,(o=this.getStorage(t))===null||o===void 0||o.set(IN,JSON.stringify(a),s)):typeof a[e]==\"number\"&&(delete a[e],(r=this.getStorage(t))===null||r===void 0||r.set(IN,JSON.stringify(a),s))}get workspaceKeyTargets(){return this._workspaceKeyTargets||(this._workspaceKeyTargets=this.loadKeyTargets(1)),this._workspaceKeyTargets}get profileKeyTargets(){return this._profileKeyTargets||(this._profileKeyTargets=this.loadKeyTargets(0)),this._profileKeyTargets}get applicationKeyTargets(){return this._applicationKeyTargets||(this._applicationKeyTargets=this.loadKeyTargets(-1)),this._applicationKeyTargets}getKeyTargets(e){switch(e){case-1:return this.applicationKeyTargets;case 0:return this.profileKeyTargets;default:return this.workspaceKeyTargets}}loadKeyTargets(e){const t=this.getStorage(e);return t?$Ve(t):Object.create(null)}}sP.DEFAULT_FLUSH_INTERVAL=60*1e3;class UVe extends sP{constructor(){super(),this.applicationStorage=this._register(new dC(new P5,{hint:cC.STORAGE_IN_MEMORY})),this.profileStorage=this._register(new dC(new P5,{hint:cC.STORAGE_IN_MEMORY})),this.workspaceStorage=this._register(new dC(new P5,{hint:cC.STORAGE_IN_MEMORY})),this._register(this.workspaceStorage.onDidChangeStorage(e=>this.emitDidChangeValue(1,e))),this._register(this.profileStorage.onDidChangeStorage(e=>this.emitDidChangeValue(0,e))),this._register(this.applicationStorage.onDidChangeStorage(e=>this.emitDidChangeValue(-1,e)))}getStorage(e){switch(e){case-1:return this.applicationStorage;case 0:return this.profileStorage;default:return this.workspaceStorage}}}function jVe(n,e){const t={...e};for(const i in n){const s=n[i];t[i]=s!==void 0?Ge(s):void 0}return t}const KVe={keybindingLabelBackground:Ge(c5e),keybindingLabelForeground:Ge(d5e),keybindingLabelBorder:Ge(u5e),keybindingLabelBottomBorder:Ge(h5e),keybindingLabelShadow:Ge(ig)},qVe={buttonForeground:Ge(xS),buttonSeparator:Ge(t5e),buttonBackground:Ge(LS),buttonHoverBackground:Ge(i5e),buttonSecondaryForeground:Ge(s5e),buttonSecondaryBackground:Ge(TB),buttonSecondaryHoverBackground:Ge(o5e),buttonBorder:Ge(n5e)},GVe={progressBarBackground:Ge(vFe)},LA={inputActiveOptionBorder:Ge(Iz),inputActiveOptionForeground:Ge(Ez),inputActiveOptionBackground:Ge(Lv)};Ge(r5e),Ge(l5e),Ge(a5e);Ge(fs),Ge(Xf),Ge(ig),Ge(ti),Ge(FFe),Ge(BFe),Ge(WFe),Ge(mFe);const kA={inputBackground:Ge(EB),inputForeground:Ge(jle),inputBorder:Ge(Kle),inputValidationInfoBorder:Ge(qFe),inputValidationInfoBackground:Ge(jFe),inputValidationInfoForeground:Ge(KFe),inputValidationWarningBorder:Ge(YFe),inputValidationWarningBackground:Ge(GFe),inputValidationWarningForeground:Ge(ZFe),inputValidationErrorBorder:Ge(JFe),inputValidationErrorBackground:Ge(XFe),inputValidationErrorForeground:Ge(QFe)},ZVe={listFilterWidgetBackground:Ge(x5e),listFilterWidgetOutline:Ge(L5e),listFilterWidgetNoMatchesOutline:Ge(k5e),listFilterWidgetShadow:Ge(D5e),inputBoxStyles:kA,toggleStyles:LA},Ude={badgeBackground:Ge(vN),badgeForeground:Ge(_Fe),badgeBorder:Ge(ti)};Ge(PFe),Ge(MFe),Ge(IX),Ge(IX),Ge(OFe);const eb={listBackground:void 0,listInactiveFocusForeground:void 0,listFocusBackground:Ge(f5e),listFocusForeground:Ge(g5e),listFocusOutline:Ge(p5e),listActiveSelectionBackground:Ge(sg),listActiveSelectionForeground:Ge(dh),listActiveSelectionIconForeground:Ge(kS),listFocusAndSelectionOutline:Ge(m5e),listFocusAndSelectionBackground:Ge(sg),listFocusAndSelectionForeground:Ge(dh),listInactiveSelectionBackground:Ge(_5e),listInactiveSelectionIconForeground:Ge(b5e),listInactiveSelectionForeground:Ge(v5e),listInactiveFocusBackground:Ge(C5e),listInactiveFocusOutline:Ge(w5e),listHoverBackground:Ge(qle),listHoverForeground:Ge(Gle),listDropOverBackground:Ge(y5e),listDropBetweenBackground:Ge(S5e),listSelectionOutline:Ge(En),listHoverOutline:Ge(En),treeIndentGuidesStroke:Ge(DS),treeInactiveIndentGuidesStroke:Ge(I5e),treeStickyScrollBackground:void 0,treeStickyScrollBorder:void 0,treeStickyScrollShadow:void 0,tableColumnsBorder:Ge(E5e),tableOddRowsBackgroundColor:Ge(T5e)};function tb(n){return jVe(n,eb)}const YVe={selectBackground:Ge(ch),selectListBackground:Ge(e5e),selectForeground:Ge(ng),decoratorRightForeground:Ge(Zle),selectBorder:Ge(y1),focusBorder:Ge(Xl),listFocusBackground:Ge(Gp),listInactiveSelectionIconForeground:Ge(S1),listFocusForeground:Ge(qp),listFocusOutline:hFe(En,le.transparent.toString()),listHoverBackground:Ge(qle),listHoverForeground:Ge(Gle),listHoverOutline:Ge(En),selectListBorder:Ge(Qf),listBackground:void 0,listActiveSelectionBackground:void 0,listActiveSelectionForeground:void 0,listActiveSelectionIconForeground:void 0,listFocusAndSelectionBackground:void 0,listDropOverBackground:void 0,listDropBetweenBackground:void 0,listInactiveSelectionBackground:void 0,listInactiveSelectionForeground:void 0,listInactiveFocusBackground:void 0,listInactiveFocusOutline:void 0,listSelectionOutline:void 0,listFocusAndSelectionForeground:void 0,listFocusAndSelectionOutline:void 0,listInactiveFocusForeground:void 0,tableColumnsBorder:void 0,tableOddRowsBackgroundColor:void 0,treeIndentGuidesStroke:void 0,treeInactiveIndentGuidesStroke:void 0,treeStickyScrollBackground:void 0,treeStickyScrollBorder:void 0,treeStickyScrollShadow:void 0},XVe={shadowColor:Ge(ig),borderColor:Ge(N5e),foregroundColor:Ge(A5e),backgroundColor:Ge(R5e),selectionForegroundColor:Ge(M5e),selectionBackgroundColor:Ge(P5e),selectionBorderColor:Ge(O5e),separatorColor:Ge(F5e),scrollbarShadow:Ge(bS),scrollbarSliderBackground:Ge(CS),scrollbarSliderHoverBackground:Ge(wS),scrollbarSliderActiveBackground:Ge(yS)};var oP=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},ia=function(n,e){return function(t,i){e(t,i,n)}};function QVe(n,e,t,i){const s=n.getActions(e),o=Yf.getInstance(),r=o.keyStatus.altKey||(Mo||Br)&&o.keyStatus.shiftKey;jde(s,t,r,a=>a===\"navigation\")}function rP(n,e,t,i,s,o){const r=n.getActions(e);jde(r,t,!1,typeof i==\"string\"?l=>l===i:i,s,o)}function jde(n,e,t,i=r=>r===\"navigation\",s=()=>!1,o=!1){let r,a;Array.isArray(e)?(r=e,a=e):(r=e.primary,a=e.secondary);const l=new Set;for(const[c,d]of n){let u;i(c)?(u=r,u.length>0&&o&&u.push(new Ms)):(u=a,u.length>0&&u.push(new Ms));for(let h of d){t&&(h=h instanceof Na&&h.alt?h.alt:h);const f=u.push(h);h instanceof NC&&l.add({group:c,action:h,index:f-1})}}for(const{group:c,action:d,index:u}of l){const h=i(c)?r:a,f=d.actions;s(d,c,h.length)&&h.splice(u,1,...f)}}let Um=class extends QC{constructor(e,t,i,s,o,r,a,l){super(void 0,e,{icon:!!(e.class||e.item.icon),label:!e.class&&!e.item.icon,draggable:t==null?void 0:t.draggable,keybinding:t==null?void 0:t.keybinding,hoverDelegate:t==null?void 0:t.hoverDelegate}),this._keybindingService=i,this._notificationService=s,this._contextKeyService=o,this._themeService=r,this._contextMenuService=a,this._accessibilityService=l,this._wantsAltCommand=!1,this._itemClassDispose=this._register(new Qs),this._altKey=Yf.getInstance()}get _menuItemAction(){return this._action}get _commandAction(){return this._wantsAltCommand&&this._menuItemAction.alt||this._menuItemAction}async onClick(e){e.preventDefault(),e.stopPropagation();try{await this.actionRunner.run(this._commandAction,this._context)}catch(t){this._notificationService.error(t)}}render(e){if(super.render(e),e.classList.add(\"menu-entry\"),this.options.icon&&this._updateItemClass(this._menuItemAction.item),this._menuItemAction.alt){let t=!1;const i=()=>{var s;const o=!!(!((s=this._menuItemAction.alt)===null||s===void 0)&&s.enabled)&&(!this._accessibilityService.isMotionReduced()||t)&&(this._altKey.keyStatus.altKey||this._altKey.keyStatus.shiftKey&&t);o!==this._wantsAltCommand&&(this._wantsAltCommand=o,this.updateLabel(),this.updateTooltip(),this.updateClass())};this._register(this._altKey.event(i)),this._register(ce(e,\"mouseleave\",s=>{t=!1,i()})),this._register(ce(e,\"mouseenter\",s=>{t=!0,i()})),i()}}updateLabel(){this.options.label&&this.label&&(this.label.textContent=this._commandAction.label)}getTooltip(){var e;const t=this._keybindingService.lookupKeybinding(this._commandAction.id,this._contextKeyService),i=t&&t.getLabel(),s=this._commandAction.tooltip||this._commandAction.label;let o=i?v(\"titleAndKb\",\"{0} ({1})\",s,i):s;if(!this._wantsAltCommand&&(!((e=this._menuItemAction.alt)===null||e===void 0)&&e.enabled)){const r=this._menuItemAction.alt.tooltip||this._menuItemAction.alt.label,a=this._keybindingService.lookupKeybinding(this._menuItemAction.alt.id,this._contextKeyService),l=a&&a.getLabel(),c=l?v(\"titleAndKb\",\"{0} ({1})\",r,l):r;o=v(\"titleAndKbAndAlt\",`{0}\n[{1}] {2}`,o,w$.modifierLabels[Da].altKey,c)}return o}updateClass(){this.options.icon&&(this._commandAction!==this._menuItemAction?this._menuItemAction.alt&&this._updateItemClass(this._menuItemAction.alt.item):this._updateItemClass(this._menuItemAction.item))}_updateItemClass(e){this._itemClassDispose.value=void 0;const{element:t,label:i}=this;if(!t||!i)return;const s=this._commandAction.checked&&zVe(e.toggled)&&e.toggled.icon?e.toggled.icon:e.icon;if(s)if(_t.isThemeIcon(s)){const o=_t.asClassNameArray(s);i.classList.add(...o),this._itemClassDispose.value=dt(()=>{i.classList.remove(...o)})}else i.style.backgroundImage=HC(this._themeService.getColorTheme().type)?Ig(s.dark):Ig(s.light),i.classList.add(\"icon\"),this._itemClassDispose.value=Jc(dt(()=>{i.style.backgroundImage=\"\",i.classList.remove(\"icon\")}),this._themeService.onDidColorThemeChange(()=>{this.updateClass()}))}};Um=oP([ia(2,Li),ia(3,ps),ia(4,Ct),ia(5,js),ia(6,za),ia(7,Ha)],Um);let T9=class extends xA{constructor(e,t,i,s,o){var r,a,l;const c={...t,menuAsChild:(r=t==null?void 0:t.menuAsChild)!==null&&r!==void 0?r:!1,classNames:(a=t==null?void 0:t.classNames)!==null&&a!==void 0?a:_t.isThemeIcon(e.item.icon)?_t.asClassName(e.item.icon):void 0,keybindingProvider:(l=t==null?void 0:t.keybindingProvider)!==null&&l!==void 0?l:d=>i.lookupKeybinding(d.id)};super(e,{getActions:()=>e.actions},s,c),this._keybindingService=i,this._contextMenuService=s,this._themeService=o}render(e){super.render(e),mi(this.element),e.classList.add(\"menu-entry\");const t=this._action,{icon:i}=t.item;if(i&&!_t.isThemeIcon(i)){this.element.classList.add(\"icon\");const s=()=>{this.element&&(this.element.style.backgroundImage=HC(this._themeService.getColorTheme().type)?Ig(i.dark):Ig(i.light))};s(),this._register(this._themeService.onDidColorThemeChange(()=>{s()}))}}};T9=oP([ia(2,Li),ia(3,za),ia(4,js)],T9);let N9=class extends Rd{constructor(e,t,i,s,o,r,a,l){var c,d,u;super(null,e),this._keybindingService=i,this._notificationService=s,this._contextMenuService=o,this._menuService=r,this._instaService=a,this._storageService=l,this._container=null,this._options=t,this._storageKey=`${e.item.submenu.id}_lastActionId`;let h;const f=t!=null&&t.persistLastActionId?l.get(this._storageKey,1):void 0;f&&(h=e.actions.find(p=>f===p.id)),h||(h=e.actions[0]),this._defaultAction=this._instaService.createInstance(Um,h,{keybinding:this._getDefaultActionKeybindingLabel(h)});const g={keybindingProvider:p=>this._keybindingService.lookupKeybinding(p.id),...t,menuAsChild:(c=t==null?void 0:t.menuAsChild)!==null&&c!==void 0?c:!0,classNames:(d=t==null?void 0:t.classNames)!==null&&d!==void 0?d:[\"codicon\",\"codicon-chevron-down\"],actionRunner:(u=t==null?void 0:t.actionRunner)!==null&&u!==void 0?u:new f0};this._dropdown=new xA(e,e.actions,this._contextMenuService,g),this._register(this._dropdown.actionRunner.onDidRun(p=>{p.action instanceof Na&&this.update(p.action)}))}update(e){var t;!((t=this._options)===null||t===void 0)&&t.persistLastActionId&&this._storageService.store(this._storageKey,e.id,1,1),this._defaultAction.dispose(),this._defaultAction=this._instaService.createInstance(Um,e,{keybinding:this._getDefaultActionKeybindingLabel(e)}),this._defaultAction.actionRunner=new class extends f0{async runAction(i,s){await i.run(void 0)}},this._container&&this._defaultAction.render(oz(this._container,ke(\".action-container\")))}_getDefaultActionKeybindingLabel(e){var t;let i;if(!((t=this._options)===null||t===void 0)&&t.renderKeybindingWithDefaultActionLabel){const s=this._keybindingService.lookupKeybinding(e.id);s&&(i=`(${s.getLabel()})`)}return i}setActionContext(e){super.setActionContext(e),this._defaultAction.setActionContext(e),this._dropdown.setActionContext(e)}render(e){this._container=e,super.render(this._container),this._container.classList.add(\"monaco-dropdown-with-default\");const t=ke(\".action-container\");this._defaultAction.render(we(this._container,t)),this._register(ce(t,Le.KEY_DOWN,s=>{const o=new ln(s);o.equals(17)&&(this._defaultAction.element.tabIndex=-1,this._dropdown.focus(),o.stopPropagation())}));const i=ke(\".dropdown-action-container\");this._dropdown.render(we(this._container,i)),this._register(ce(i,Le.KEY_DOWN,s=>{var o;const r=new ln(s);r.equals(15)&&(this._defaultAction.element.tabIndex=0,this._dropdown.setFocusable(!1),(o=this._defaultAction.element)===null||o===void 0||o.focus(),r.stopPropagation())}))}focus(e){e?this._dropdown.focus():(this._defaultAction.element.tabIndex=0,this._defaultAction.element.focus())}blur(){this._defaultAction.element.tabIndex=-1,this._dropdown.blur(),this._container.blur()}setFocusable(e){e?this._defaultAction.element.tabIndex=0:(this._defaultAction.element.tabIndex=-1,this._dropdown.setFocusable(!1))}dispose(){this._defaultAction.dispose(),this._dropdown.dispose(),super.dispose()}};N9=oP([ia(2,Li),ia(3,ps),ia(4,za),ia(5,Dl),ia(6,ht),ia(7,dd)],N9);let A9=class extends BVe{constructor(e,t){super(null,e,e.actions.map(i=>({text:i.id===Ms.ID?\"─────────\":i.label,isDisabled:!i.enabled})),0,t,YVe,{ariaLabel:e.tooltip,optionsAsChildren:!0}),this.select(Math.max(0,e.actions.findIndex(i=>i.checked)))}render(e){super.render(e),e.style.borderColor=Ge(y1)}runAction(e,t){const i=this.action.actions[t];i&&this.actionRunner.run(i)}};A9=oP([ia(1,Wg)],A9);function Kde(n,e,t){return e instanceof Na?n.createInstance(Um,e,t):e instanceof q1?e.item.isSelection?n.createInstance(A9,e):e.item.rememberDefaultAction?n.createInstance(N9,e,{...t,persistLastActionId:!0}):n.createInstance(T9,e,t):void 0}class hc extends ne{constructor(e,t={}){var i,s,o,r,a,l,c;super(),this._actionRunnerDisposables=this._register(new be),this.viewItemDisposables=this._register(new WV),this.triggerKeyDown=!1,this.focusable=!0,this._onDidBlur=this._register(new X),this.onDidBlur=this._onDidBlur.event,this._onDidCancel=this._register(new X({onWillAddFirstListener:()=>this.cancelHasListener=!0})),this.onDidCancel=this._onDidCancel.event,this.cancelHasListener=!1,this._onDidRun=this._register(new X),this.onDidRun=this._onDidRun.event,this._onWillRun=this._register(new X),this.onWillRun=this._onWillRun.event,this.options=t,this._context=(i=t.context)!==null&&i!==void 0?i:null,this._orientation=(s=this.options.orientation)!==null&&s!==void 0?s:0,this._triggerKeys={keyDown:(r=(o=this.options.triggerKeys)===null||o===void 0?void 0:o.keyDown)!==null&&r!==void 0?r:!1,keys:(l=(a=this.options.triggerKeys)===null||a===void 0?void 0:a.keys)!==null&&l!==void 0?l:[3,10]},this._hoverDelegate=(c=t.hoverDelegate)!==null&&c!==void 0?c:this._register(XC()),this.options.actionRunner?this._actionRunner=this.options.actionRunner:(this._actionRunner=new f0,this._actionRunnerDisposables.add(this._actionRunner)),this._actionRunnerDisposables.add(this._actionRunner.onDidRun(h=>this._onDidRun.fire(h))),this._actionRunnerDisposables.add(this._actionRunner.onWillRun(h=>this._onWillRun.fire(h))),this.viewItems=[],this.focusedItem=void 0,this.domNode=document.createElement(\"div\"),this.domNode.className=\"monaco-action-bar\";let d,u;switch(this._orientation){case 0:d=[15],u=[17];break;case 1:d=[16],u=[18],this.domNode.className+=\" vertical\";break}this._register(ce(this.domNode,Le.KEY_DOWN,h=>{const f=new ln(h);let g=!0;const p=typeof this.focusedItem==\"number\"?this.viewItems[this.focusedItem]:void 0;d&&(f.equals(d[0])||f.equals(d[1]))?g=this.focusPrevious():u&&(f.equals(u[0])||f.equals(u[1]))?g=this.focusNext():f.equals(9)&&this.cancelHasListener?this._onDidCancel.fire():f.equals(14)?g=this.focusFirst():f.equals(13)?g=this.focusLast():f.equals(2)&&p instanceof Rd&&p.trapsArrowNavigation?g=this.focusNext():this.isTriggerKeyEvent(f)?this._triggerKeys.keyDown?this.doTrigger(f):this.triggerKeyDown=!0:g=!1,g&&(f.preventDefault(),f.stopPropagation())})),this._register(ce(this.domNode,Le.KEY_UP,h=>{const f=new ln(h);this.isTriggerKeyEvent(f)?(!this._triggerKeys.keyDown&&this.triggerKeyDown&&(this.triggerKeyDown=!1,this.doTrigger(f)),f.preventDefault(),f.stopPropagation()):(f.equals(2)||f.equals(1026)||f.equals(16)||f.equals(18)||f.equals(15)||f.equals(17))&&this.updateFocusedItem()})),this.focusTracker=this._register(ou(this.domNode)),this._register(this.focusTracker.onDidBlur(()=>{(Ao()===this.domNode||!Zs(Ao(),this.domNode))&&(this._onDidBlur.fire(),this.previouslyFocusedItem=this.focusedItem,this.focusedItem=void 0,this.triggerKeyDown=!1)})),this._register(this.focusTracker.onDidFocus(()=>this.updateFocusedItem())),this.actionsList=document.createElement(\"ul\"),this.actionsList.className=\"actions-container\",this.options.highlightToggledItems&&this.actionsList.classList.add(\"highlight-toggled\"),this.actionsList.setAttribute(\"role\",this.options.ariaRole||\"toolbar\"),this.options.ariaLabel&&this.actionsList.setAttribute(\"aria-label\",this.options.ariaLabel),this.domNode.appendChild(this.actionsList),e.appendChild(this.domNode)}refreshRole(){this.length()>=1?this.actionsList.setAttribute(\"role\",this.options.ariaRole||\"toolbar\"):this.actionsList.setAttribute(\"role\",\"presentation\")}setFocusable(e){if(this.focusable=e,this.focusable){const t=this.viewItems.find(i=>i instanceof Rd&&i.isEnabled());t instanceof Rd&&t.setFocusable(!0)}else this.viewItems.forEach(t=>{t instanceof Rd&&t.setFocusable(!1)})}isTriggerKeyEvent(e){let t=!1;return this._triggerKeys.keys.forEach(i=>{t=t||e.equals(i)}),t}updateFocusedItem(){var e,t;for(let i=0;i<this.actionsList.children.length;i++){const s=this.actionsList.children[i];if(Zs(Ao(),s)){this.focusedItem=i,(t=(e=this.viewItems[this.focusedItem])===null||e===void 0?void 0:e.showHover)===null||t===void 0||t.call(e);break}}}get context(){return this._context}set context(e){this._context=e,this.viewItems.forEach(t=>t.setActionContext(e))}get actionRunner(){return this._actionRunner}set actionRunner(e){this._actionRunner=e,this._actionRunnerDisposables.clear(),this._actionRunnerDisposables.add(this._actionRunner.onDidRun(t=>this._onDidRun.fire(t))),this._actionRunnerDisposables.add(this._actionRunner.onWillRun(t=>this._onWillRun.fire(t))),this.viewItems.forEach(t=>t.actionRunner=e)}getContainer(){return this.domNode}getAction(e){var t;if(typeof e==\"number\")return(t=this.viewItems[e])===null||t===void 0?void 0:t.action;if(co(e)){for(;e.parentElement!==this.actionsList;){if(!e.parentElement)return;e=e.parentElement}for(let i=0;i<this.actionsList.childNodes.length;i++)if(this.actionsList.childNodes[i]===e)return this.viewItems[i].action}}push(e,t={}){const i=Array.isArray(e)?e:[e];let s=Nm(t.index)?t.index:null;i.forEach(o=>{const r=document.createElement(\"li\");r.className=\"action-item\",r.setAttribute(\"role\",\"presentation\");let a;const l={hoverDelegate:this._hoverDelegate,...t};this.options.actionViewItemProvider&&(a=this.options.actionViewItemProvider(o,l)),a||(a=new QC(this.context,o,l)),this.options.allowContextMenu||this.viewItemDisposables.set(a,ce(r,Le.CONTEXT_MENU,c=>{ii.stop(c,!0)})),a.actionRunner=this._actionRunner,a.setActionContext(this.context),a.render(r),this.focusable&&a instanceof Rd&&this.viewItems.length===0&&a.setFocusable(!0),s===null||s<0||s>=this.actionsList.children.length?(this.actionsList.appendChild(r),this.viewItems.push(a)):(this.actionsList.insertBefore(r,this.actionsList.children[s]),this.viewItems.splice(s,0,a),s++)}),typeof this.focusedItem==\"number\"&&this.focus(this.focusedItem),this.refreshRole()}clear(){this.isEmpty()||(this.viewItems=tn(this.viewItems),this.viewItemDisposables.clearAndDisposeAll(),wo(this.actionsList),this.refreshRole())}length(){return this.viewItems.length}isEmpty(){return this.viewItems.length===0}focus(e){let t=!1,i;if(e===void 0?t=!0:typeof e==\"number\"?i=e:typeof e==\"boolean\"&&(t=e),t&&typeof this.focusedItem>\"u\"){const s=this.viewItems.findIndex(o=>o.isEnabled());this.focusedItem=s===-1?void 0:s,this.updateFocus(void 0,void 0,!0)}else i!==void 0&&(this.focusedItem=i),this.updateFocus(void 0,void 0,!0)}focusFirst(){return this.focusedItem=this.length()-1,this.focusNext(!0)}focusLast(){return this.focusedItem=0,this.focusPrevious(!0)}focusNext(e){if(typeof this.focusedItem>\"u\")this.focusedItem=this.viewItems.length-1;else if(this.viewItems.length<=1)return!1;const t=this.focusedItem;let i;do{if(!e&&this.options.preventLoopNavigation&&this.focusedItem+1>=this.viewItems.length)return this.focusedItem=t,!1;this.focusedItem=(this.focusedItem+1)%this.viewItems.length,i=this.viewItems[this.focusedItem]}while(this.focusedItem!==t&&(this.options.focusOnlyEnabledItems&&!i.isEnabled()||i.action.id===Ms.ID));return this.updateFocus(),!0}focusPrevious(e){if(typeof this.focusedItem>\"u\")this.focusedItem=0;else if(this.viewItems.length<=1)return!1;const t=this.focusedItem;let i;do{if(this.focusedItem=this.focusedItem-1,this.focusedItem<0){if(!e&&this.options.preventLoopNavigation)return this.focusedItem=t,!1;this.focusedItem=this.viewItems.length-1}i=this.viewItems[this.focusedItem]}while(this.focusedItem!==t&&(this.options.focusOnlyEnabledItems&&!i.isEnabled()||i.action.id===Ms.ID));return this.updateFocus(!0),!0}updateFocus(e,t,i=!1){var s,o;typeof this.focusedItem>\"u\"&&this.actionsList.focus({preventScroll:t}),this.previouslyFocusedItem!==void 0&&this.previouslyFocusedItem!==this.focusedItem&&((s=this.viewItems[this.previouslyFocusedItem])===null||s===void 0||s.blur());const r=this.focusedItem!==void 0?this.viewItems[this.focusedItem]:void 0;if(r){let a=!0;nL(r.focus)||(a=!1),this.options.focusOnlyEnabledItems&&nL(r.isEnabled)&&!r.isEnabled()&&(a=!1),r.action.id===Ms.ID&&(a=!1),a?(i||this.previouslyFocusedItem!==this.focusedItem)&&(r.focus(e),this.previouslyFocusedItem=this.focusedItem):(this.actionsList.focus({preventScroll:t}),this.previouslyFocusedItem=void 0),a&&((o=r.showHover)===null||o===void 0||o.call(r))}}doTrigger(e){if(typeof this.focusedItem>\"u\")return;const t=this.viewItems[this.focusedItem];if(t instanceof Rd){const i=t._context===null||t._context===void 0?e:t._context;this.run(t._action,i)}}async run(e,t){await this._actionRunner.run(e,t)}dispose(){this._context=void 0,this.viewItems=tn(this.viewItems),this.getContainer().remove(),super.dispose()}}const R9=/\\(&([^\\s&])\\)|(^|[^&])&([^\\s&])/,O5=/(&amp;)?(&amp;)([^\\s&])/g;var DA;(function(n){n[n.Right=0]=\"Right\",n[n.Left=1]=\"Left\"})(DA||(DA={}));var M9;(function(n){n[n.Above=0]=\"Above\",n[n.Below=1]=\"Below\"})(M9||(M9={}));class uC extends hc{constructor(e,t,i,s){e.classList.add(\"monaco-menu-container\"),e.setAttribute(\"role\",\"presentation\");const o=document.createElement(\"div\");o.classList.add(\"monaco-menu\"),o.setAttribute(\"role\",\"presentation\"),super(o,{orientation:1,actionViewItemProvider:c=>this.doGetActionViewItem(c,i,r),context:i.context,actionRunner:i.actionRunner,ariaLabel:i.ariaLabel,ariaRole:\"menu\",focusOnlyEnabledItems:!0,triggerKeys:{keys:[3,...Xt||Br?[10]:[]],keyDown:!0}}),this.menuStyles=s,this.menuElement=o,this.actionsList.tabIndex=0,this.initializeOrUpdateStyleSheet(e,s),this._register(hn.addTarget(o)),this._register(ce(o,Le.KEY_DOWN,c=>{new ln(c).equals(2)&&c.preventDefault()})),i.enableMnemonics&&this._register(ce(o,Le.KEY_DOWN,c=>{const d=c.key.toLocaleLowerCase();if(this.mnemonics.has(d)){ii.stop(c,!0);const u=this.mnemonics.get(d);if(u.length===1&&(u[0]instanceof LJ&&u[0].container&&this.focusItemByElement(u[0].container),u[0].onClick(c)),u.length>1){const h=u.shift();h&&h.container&&(this.focusItemByElement(h.container),u.push(h)),this.mnemonics.set(d,u)}}})),Br&&this._register(ce(o,Le.KEY_DOWN,c=>{const d=new ln(c);d.equals(14)||d.equals(11)?(this.focusedItem=this.viewItems.length-1,this.focusNext(),ii.stop(c,!0)):(d.equals(13)||d.equals(12))&&(this.focusedItem=0,this.focusPrevious(),ii.stop(c,!0))})),this._register(ce(this.domNode,Le.MOUSE_OUT,c=>{const d=c.relatedTarget;Zs(d,this.domNode)||(this.focusedItem=void 0,this.updateFocus(),c.stopPropagation())})),this._register(ce(this.actionsList,Le.MOUSE_OVER,c=>{let d=c.target;if(!(!d||!Zs(d,this.actionsList)||d===this.actionsList)){for(;d.parentElement!==this.actionsList&&d.parentElement!==null;)d=d.parentElement;if(d.classList.contains(\"action-item\")){const u=this.focusedItem;this.setFocusedItem(d),u!==this.focusedItem&&this.updateFocus()}}})),this._register(hn.addTarget(this.actionsList)),this._register(ce(this.actionsList,fn.Tap,c=>{let d=c.initialTarget;if(!(!d||!Zs(d,this.actionsList)||d===this.actionsList)){for(;d.parentElement!==this.actionsList&&d.parentElement!==null;)d=d.parentElement;if(d.classList.contains(\"action-item\")){const u=this.focusedItem;this.setFocusedItem(d),u!==this.focusedItem&&this.updateFocus()}}}));const r={parent:this};this.mnemonics=new Map,this.scrollableElement=this._register(new wD(o,{alwaysConsumeMouseWheel:!0,horizontal:2,vertical:3,verticalScrollbarSize:7,handleMouseWheel:!0,useShadows:!0}));const a=this.scrollableElement.getDomNode();a.style.position=\"\",this.styleScrollElement(a,s),this._register(ce(o,fn.Change,c=>{ii.stop(c,!0);const d=this.scrollableElement.getScrollPosition().scrollTop;this.scrollableElement.setScrollPosition({scrollTop:d-c.translationY})})),this._register(ce(a,Le.MOUSE_UP,c=>{c.preventDefault()}));const l=gt(e);o.style.maxHeight=`${Math.max(10,l.innerHeight-e.getBoundingClientRect().top-35)}px`,t=t.filter((c,d)=>{var u;return!((u=i.submenuIds)===null||u===void 0)&&u.has(c.id)?(console.warn(`Found submenu cycle: ${c.id}`),!1):!(c instanceof Ms&&(d===t.length-1||d===0||t[d-1]instanceof Ms))}),this.push(t,{icon:!0,label:!0,isMenu:!0}),e.appendChild(this.scrollableElement.getDomNode()),this.scrollableElement.scanDomNode(),this.viewItems.filter(c=>!(c instanceof kJ)).forEach((c,d,u)=>{c.updatePositionInSet(d+1,u.length)})}initializeOrUpdateStyleSheet(e,t){this.styleSheet||(W2(e)?this.styleSheet=yl(e):(uC.globalStyleSheet||(uC.globalStyleSheet=yl()),this.styleSheet=uC.globalStyleSheet)),this.styleSheet.textContent=eze(t,W2(e))}styleScrollElement(e,t){var i,s;const o=(i=t.foregroundColor)!==null&&i!==void 0?i:\"\",r=(s=t.backgroundColor)!==null&&s!==void 0?s:\"\",a=t.borderColor?`1px solid ${t.borderColor}`:\"\",l=\"5px\",c=t.shadowColor?`0 2px 8px ${t.shadowColor}`:\"\";e.style.outline=a,e.style.borderRadius=l,e.style.color=o,e.style.backgroundColor=r,e.style.boxShadow=c}getContainer(){return this.scrollableElement.getDomNode()}get onScroll(){return this.scrollableElement.onScroll}focusItemByElement(e){const t=this.focusedItem;this.setFocusedItem(e),t!==this.focusedItem&&this.updateFocus()}setFocusedItem(e){for(let t=0;t<this.actionsList.children.length;t++){const i=this.actionsList.children[t];if(e===i){this.focusedItem=t;break}}}updateFocus(e){super.updateFocus(e,!0,!0),typeof this.focusedItem<\"u\"&&this.scrollableElement.setScrollPosition({scrollTop:Math.round(this.menuElement.scrollTop)})}doGetActionViewItem(e,t,i){if(e instanceof Ms)return new kJ(t.context,e,{icon:!0},this.menuStyles);if(e instanceof NC){const s=new LJ(e,e.actions,i,{...t,submenuIds:new Set([...t.submenuIds||[],e.id])},this.menuStyles);if(t.enableMnemonics){const o=s.getMnemonic();if(o&&s.isEnabled()){let r=[];this.mnemonics.has(o)&&(r=this.mnemonics.get(o)),r.push(s),this.mnemonics.set(o,r)}}return s}else{const s={enableMnemonics:t.enableMnemonics,useEventAsContext:t.useEventAsContext};if(t.getKeyBinding){const r=t.getKeyBinding(e);if(r){const a=r.getLabel();a&&(s.keybinding=a)}}const o=new qde(t.context,e,s,this.menuStyles);if(t.enableMnemonics){const r=o.getMnemonic();if(r&&o.isEnabled()){let a=[];this.mnemonics.has(r)&&(a=this.mnemonics.get(r)),a.push(o),this.mnemonics.set(r,a)}}return o}}}class qde extends Rd{constructor(e,t,i,s){if(i.isMenu=!0,super(t,t,i),this.menuStyle=s,this.options=i,this.options.icon=i.icon!==void 0?i.icon:!1,this.options.label=i.label!==void 0?i.label:!0,this.cssClass=\"\",this.options.label&&i.enableMnemonics){const o=this.action.label;if(o){const r=R9.exec(o);r&&(this.mnemonic=(r[1]?r[1]:r[3]).toLocaleLowerCase())}}this.runOnceToEnableMouseUp=new Xi(()=>{this.element&&(this._register(ce(this.element,Le.MOUSE_UP,o=>{if(ii.stop(o,!0),lc){if(new Kc(gt(this.element),o).rightButton)return;this.onClick(o)}else setTimeout(()=>{this.onClick(o)},0)})),this._register(ce(this.element,Le.CONTEXT_MENU,o=>{ii.stop(o,!0)})))},100),this._register(this.runOnceToEnableMouseUp)}render(e){super.render(e),this.element&&(this.container=e,this.item=we(this.element,ke(\"a.action-menu-item\")),this._action.id===Ms.ID?this.item.setAttribute(\"role\",\"presentation\"):(this.item.setAttribute(\"role\",\"menuitem\"),this.mnemonic&&this.item.setAttribute(\"aria-keyshortcuts\",`${this.mnemonic}`)),this.check=we(this.item,ke(\"span.menu-item-check\"+_t.asCSSSelector(Te.menuSelection))),this.check.setAttribute(\"role\",\"none\"),this.label=we(this.item,ke(\"span.action-label\")),this.options.label&&this.options.keybinding&&(we(this.item,ke(\"span.keybinding\")).textContent=this.options.keybinding),this.runOnceToEnableMouseUp.schedule(),this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked(),this.applyStyle())}blur(){super.blur(),this.applyStyle()}focus(){var e;super.focus(),(e=this.item)===null||e===void 0||e.focus(),this.applyStyle()}updatePositionInSet(e,t){this.item&&(this.item.setAttribute(\"aria-posinset\",`${e}`),this.item.setAttribute(\"aria-setsize\",`${t}`))}updateLabel(){var e;if(this.label&&this.options.label){wo(this.label);let t=_$(this.action.label);if(t){const i=JVe(t);this.options.enableMnemonics||(t=i),this.label.setAttribute(\"aria-label\",i.replace(/&&/g,\"&\"));const s=R9.exec(t);if(s){t=ox(t),O5.lastIndex=0;let o=O5.exec(t);for(;o&&o[1];)o=O5.exec(t);const r=a=>a.replace(/&amp;&amp;/g,\"&amp;\");o?this.label.append(aD(r(t.substr(0,o.index)),\" \"),ke(\"u\",{\"aria-hidden\":\"true\"},o[3]),vae(r(t.substr(o.index+o[0].length)),\" \")):this.label.innerText=r(t).trim(),(e=this.item)===null||e===void 0||e.setAttribute(\"aria-keyshortcuts\",(s[1]?s[1]:s[3]).toLocaleLowerCase())}else this.label.innerText=t.replace(/&&/g,\"&\").trim()}}}updateTooltip(){}updateClass(){this.cssClass&&this.item&&this.item.classList.remove(...this.cssClass.split(\" \")),this.options.icon&&this.label?(this.cssClass=this.action.class||\"\",this.label.classList.add(\"icon\"),this.cssClass&&this.label.classList.add(...this.cssClass.split(\" \")),this.updateEnabled()):this.label&&this.label.classList.remove(\"icon\")}updateEnabled(){this.action.enabled?(this.element&&(this.element.classList.remove(\"disabled\"),this.element.removeAttribute(\"aria-disabled\")),this.item&&(this.item.classList.remove(\"disabled\"),this.item.removeAttribute(\"aria-disabled\"),this.item.tabIndex=0)):(this.element&&(this.element.classList.add(\"disabled\"),this.element.setAttribute(\"aria-disabled\",\"true\")),this.item&&(this.item.classList.add(\"disabled\"),this.item.setAttribute(\"aria-disabled\",\"true\")))}updateChecked(){if(!this.item)return;const e=this.action.checked;this.item.classList.toggle(\"checked\",!!e),e!==void 0?(this.item.setAttribute(\"role\",\"menuitemcheckbox\"),this.item.setAttribute(\"aria-checked\",e?\"true\":\"false\")):(this.item.setAttribute(\"role\",\"menuitem\"),this.item.setAttribute(\"aria-checked\",\"\"))}getMnemonic(){return this.mnemonic}applyStyle(){const e=this.element&&this.element.classList.contains(\"focused\"),t=e&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor,i=e&&this.menuStyle.selectionBackgroundColor?this.menuStyle.selectionBackgroundColor:void 0,s=e&&this.menuStyle.selectionBorderColor?`1px solid ${this.menuStyle.selectionBorderColor}`:\"\",o=e&&this.menuStyle.selectionBorderColor?\"-1px\":\"\";this.item&&(this.item.style.color=t??\"\",this.item.style.backgroundColor=i??\"\",this.item.style.outline=s,this.item.style.outlineOffset=o),this.check&&(this.check.style.color=t??\"\")}}class LJ extends qde{constructor(e,t,i,s,o){super(e,e,s,o),this.submenuActions=t,this.parentData=i,this.submenuOptions=s,this.mysubmenu=null,this.submenuDisposables=this._register(new be),this.mouseOver=!1,this.expandDirection=s&&s.expandDirection!==void 0?s.expandDirection:{horizontal:DA.Right,vertical:M9.Below},this.showScheduler=new Xi(()=>{this.mouseOver&&(this.cleanupExistingSubmenu(!1),this.createSubmenu(!1))},250),this.hideScheduler=new Xi(()=>{this.element&&!Zs(Ao(),this.element)&&this.parentData.submenu===this.mysubmenu&&(this.parentData.parent.focus(!1),this.cleanupExistingSubmenu(!0))},750)}render(e){super.render(e),this.element&&(this.item&&(this.item.classList.add(\"monaco-submenu-item\"),this.item.tabIndex=0,this.item.setAttribute(\"aria-haspopup\",\"true\"),this.updateAriaExpanded(\"false\"),this.submenuIndicator=we(this.item,ke(\"span.submenu-indicator\"+_t.asCSSSelector(Te.menuSubmenu))),this.submenuIndicator.setAttribute(\"aria-hidden\",\"true\")),this._register(ce(this.element,Le.KEY_UP,t=>{const i=new ln(t);(i.equals(17)||i.equals(3))&&(ii.stop(t,!0),this.createSubmenu(!0))})),this._register(ce(this.element,Le.KEY_DOWN,t=>{const i=new ln(t);Ao()===this.item&&(i.equals(17)||i.equals(3))&&ii.stop(t,!0)})),this._register(ce(this.element,Le.MOUSE_OVER,t=>{this.mouseOver||(this.mouseOver=!0,this.showScheduler.schedule())})),this._register(ce(this.element,Le.MOUSE_LEAVE,t=>{this.mouseOver=!1})),this._register(ce(this.element,Le.FOCUS_OUT,t=>{this.element&&!Zs(Ao(),this.element)&&this.hideScheduler.schedule()})),this._register(this.parentData.parent.onScroll(()=>{this.parentData.submenu===this.mysubmenu&&(this.parentData.parent.focus(!1),this.cleanupExistingSubmenu(!0))})))}updateEnabled(){}onClick(e){ii.stop(e,!0),this.cleanupExistingSubmenu(!1),this.createSubmenu(!0)}cleanupExistingSubmenu(e){if(this.parentData.submenu&&(e||this.parentData.submenu!==this.mysubmenu)){try{this.parentData.submenu.dispose()}catch{}this.parentData.submenu=void 0,this.updateAriaExpanded(\"false\"),this.submenuContainer&&(this.submenuDisposables.clear(),this.submenuContainer=void 0)}}calculateSubmenuMenuLayout(e,t,i,s){const o={top:0,left:0};return o.left=I1(e.width,t.width,{position:s.horizontal===DA.Right?0:1,offset:i.left,size:i.width}),o.left>=i.left&&o.left<i.left+i.width&&(i.left+10+t.width<=e.width&&(o.left=i.left+10),i.top+=10,i.height=0),o.top=I1(e.height,t.height,{position:0,offset:i.top,size:0}),o.top+t.height===i.top&&o.top+i.height+t.height<=e.height&&(o.top+=i.height),o}createSubmenu(e=!0){if(this.element)if(this.parentData.submenu)this.parentData.submenu.focus(!1);else{this.updateAriaExpanded(\"true\"),this.submenuContainer=we(this.element,ke(\"div.monaco-submenu\")),this.submenuContainer.classList.add(\"menubar-menu-items-holder\",\"context-view\");const t=gt(this.parentData.parent.domNode).getComputedStyle(this.parentData.parent.domNode),i=parseFloat(t.paddingTop||\"0\")||0;this.submenuContainer.style.zIndex=\"1\",this.submenuContainer.style.position=\"fixed\",this.submenuContainer.style.top=\"0\",this.submenuContainer.style.left=\"0\",this.parentData.submenu=new uC(this.submenuContainer,this.submenuActions.length?this.submenuActions:[new fM],this.submenuOptions,this.menuStyle);const s=this.element.getBoundingClientRect(),o={top:s.top-i,left:s.left,height:s.height+2*i,width:s.width},r=this.submenuContainer.getBoundingClientRect(),a=gt(this.element),{top:l,left:c}=this.calculateSubmenuMenuLayout(new yi(a.innerWidth,a.innerHeight),yi.lift(r),o,this.expandDirection);this.submenuContainer.style.left=`${c-r.left}px`,this.submenuContainer.style.top=`${l-r.top}px`,this.submenuDisposables.add(ce(this.submenuContainer,Le.KEY_UP,d=>{new ln(d).equals(15)&&(ii.stop(d,!0),this.parentData.parent.focus(),this.cleanupExistingSubmenu(!0))})),this.submenuDisposables.add(ce(this.submenuContainer,Le.KEY_DOWN,d=>{new ln(d).equals(15)&&ii.stop(d,!0)})),this.submenuDisposables.add(this.parentData.submenu.onDidCancel(()=>{this.parentData.parent.focus(),this.cleanupExistingSubmenu(!0)})),this.parentData.submenu.focus(e),this.mysubmenu=this.parentData.submenu}}updateAriaExpanded(e){var t;this.item&&((t=this.item)===null||t===void 0||t.setAttribute(\"aria-expanded\",e))}applyStyle(){super.applyStyle();const t=this.element&&this.element.classList.contains(\"focused\")&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor;this.submenuIndicator&&(this.submenuIndicator.style.color=t??\"\")}dispose(){super.dispose(),this.hideScheduler.dispose(),this.mysubmenu&&(this.mysubmenu.dispose(),this.mysubmenu=null),this.submenuContainer&&(this.submenuContainer=void 0)}}class kJ extends QC{constructor(e,t,i,s){super(e,t,i),this.menuStyles=s}render(e){super.render(e),this.label&&(this.label.style.borderBottomColor=this.menuStyles.separatorColor?`${this.menuStyles.separatorColor}`:\"\")}}function JVe(n){const e=R9,t=e.exec(n);if(!t)return n;const i=!t[1];return n.replace(e,i?\"$2$3\":\"\").trim()}function DJ(n){const e=fae()[n.id];return`.codicon-${n.id}:before { content: '\\\\${e.toString(16)}'; }`}function eze(n,e){let t=`\n.monaco-menu {\n\tfont-size: 13px;\n\tborder-radius: 5px;\n\tmin-width: 160px;\n}\n\n${DJ(Te.menuSelection)}\n${DJ(Te.menuSubmenu)}\n\n.monaco-menu .monaco-action-bar {\n\ttext-align: right;\n\toverflow: hidden;\n\twhite-space: nowrap;\n}\n\n.monaco-menu .monaco-action-bar .actions-container {\n\tdisplay: flex;\n\tmargin: 0 auto;\n\tpadding: 0;\n\twidth: 100%;\n\tjustify-content: flex-end;\n}\n\n.monaco-menu .monaco-action-bar.vertical .actions-container {\n\tdisplay: inline-block;\n}\n\n.monaco-menu .monaco-action-bar.reverse .actions-container {\n\tflex-direction: row-reverse;\n}\n\n.monaco-menu .monaco-action-bar .action-item {\n\tcursor: pointer;\n\tdisplay: inline-block;\n\ttransition: transform 50ms ease;\n\tposition: relative;  /* DO NOT REMOVE - this is the key to preventing the ghosting icon bug in Chrome 42 */\n}\n\n.monaco-menu .monaco-action-bar .action-item.disabled {\n\tcursor: default;\n}\n\n.monaco-menu .monaco-action-bar .action-item .icon,\n.monaco-menu .monaco-action-bar .action-item .codicon {\n\tdisplay: inline-block;\n}\n\n.monaco-menu .monaco-action-bar .action-item .codicon {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.monaco-menu .monaco-action-bar .action-label {\n\tfont-size: 11px;\n\tmargin-right: 4px;\n}\n\n.monaco-menu .monaco-action-bar .action-item.disabled .action-label,\n.monaco-menu .monaco-action-bar .action-item.disabled .action-label:hover {\n\tcolor: var(--vscode-disabledForeground);\n}\n\n/* Vertical actions */\n\n.monaco-menu .monaco-action-bar.vertical {\n\ttext-align: left;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tdisplay: block;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tdisplay: block;\n\tborder-bottom: 1px solid var(--vscode-menu-separatorBackground);\n\tpadding-top: 1px;\n\tpadding: 30px;\n}\n\n.monaco-menu .secondary-actions .monaco-action-bar .action-label {\n\tmargin-left: 6px;\n}\n\n/* Action Items */\n.monaco-menu .monaco-action-bar .action-item.select-container {\n\toverflow: hidden; /* somehow the dropdown overflows its container, we prevent it here to not push */\n\tflex: 1;\n\tmax-width: 170px;\n\tmin-width: 60px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin-right: 10px;\n}\n\n.monaco-menu .monaco-action-bar.vertical {\n\tmargin-left: 0;\n\toverflow: visible;\n}\n\n.monaco-menu .monaco-action-bar.vertical .actions-container {\n\tdisplay: block;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tpadding: 0;\n\ttransform: none;\n\tdisplay: flex;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item.active {\n\ttransform: none;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item {\n\tflex: 1 1 auto;\n\tdisplay: flex;\n\theight: 2em;\n\talign-items: center;\n\tposition: relative;\n\tmargin: 0 4px;\n\tborder-radius: 4px;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .keybinding,\n.monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .keybinding {\n\topacity: unset;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label {\n\tflex: 1 1 auto;\n\ttext-decoration: none;\n\tpadding: 0 1em;\n\tbackground: none;\n\tfont-size: 12px;\n\tline-height: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .keybinding,\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\tdisplay: inline-block;\n\tflex: 2 1 auto;\n\tpadding: 0 1em;\n\ttext-align: right;\n\tfont-size: 12px;\n\tline-height: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\theight: 100%;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon {\n\tfont-size: 16px !important;\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon::before {\n\tmargin-left: auto;\n\tmargin-right: -20px;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item.disabled .keybinding,\n.monaco-menu .monaco-action-bar.vertical .action-item.disabled .submenu-indicator {\n\topacity: 0.4;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator) {\n\tdisplay: inline-block;\n\tbox-sizing: border-box;\n\tmargin: 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tposition: static;\n\toverflow: visible;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item .monaco-submenu {\n\tposition: absolute;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\twidth: 100%;\n\theight: 0px !important;\n\topacity: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator.text {\n\tpadding: 0.7em 1em 0.1em 1em;\n\tfont-weight: bold;\n\topacity: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:hover {\n\tcolor: inherit;\n}\n\n.monaco-menu .monaco-action-bar.vertical .menu-item-check {\n\tposition: absolute;\n\tvisibility: hidden;\n\twidth: 1em;\n\theight: 100%;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item.checked .menu-item-check {\n\tvisibility: visible;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n/* Context Menu */\n\n.context-view.monaco-menu-container {\n\toutline: 0;\n\tborder: none;\n\tanimation: fadeIn 0.083s linear;\n\t-webkit-app-region: no-drag;\n}\n\n.context-view.monaco-menu-container :focus,\n.context-view.monaco-menu-container .monaco-action-bar.vertical:focus,\n.context-view.monaco-menu-container .monaco-action-bar.vertical :focus {\n\toutline: 0;\n}\n\n.hc-black .context-view.monaco-menu-container,\n.hc-light .context-view.monaco-menu-container,\n:host-context(.hc-black) .context-view.monaco-menu-container,\n:host-context(.hc-light) .context-view.monaco-menu-container {\n\tbox-shadow: none;\n}\n\n.hc-black .monaco-menu .monaco-action-bar.vertical .action-item.focused,\n.hc-light .monaco-menu .monaco-action-bar.vertical .action-item.focused,\n:host-context(.hc-black) .monaco-menu .monaco-action-bar.vertical .action-item.focused,\n:host-context(.hc-light) .monaco-menu .monaco-action-bar.vertical .action-item.focused {\n\tbackground: none;\n}\n\n/* Vertical Action Bar Styles */\n\n.monaco-menu .monaco-action-bar.vertical {\n\tpadding: 4px 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item {\n\theight: 2em;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator),\n.monaco-menu .monaco-action-bar.vertical .keybinding {\n\tfont-size: inherit;\n\tpadding: 0 2em;\n\tmax-height: 100%;\n}\n\n.monaco-menu .monaco-action-bar.vertical .menu-item-check {\n\tfont-size: inherit;\n\twidth: 2em;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tfont-size: inherit;\n\tmargin: 5px 0 !important;\n\tpadding: 0;\n\tborder-radius: 0;\n}\n\n.linux .monaco-menu .monaco-action-bar.vertical .action-label.separator,\n:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tmargin-left: 0;\n\tmargin-right: 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\tfont-size: 60%;\n\tpadding: 0 1.8em;\n}\n\n.linux .monaco-menu .monaco-action-bar.vertical .submenu-indicator,\n:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\theight: 100%;\n\tmask-size: 10px 10px;\n\t-webkit-mask-size: 10px 10px;\n}\n\n.monaco-menu .action-item {\n\tcursor: default;\n}`;if(e){t+=`\n\t\t\t/* Arrows */\n\t\t\t.monaco-scrollable-element > .scrollbar > .scra {\n\t\t\t\tcursor: pointer;\n\t\t\t\tfont-size: 11px !important;\n\t\t\t}\n\n\t\t\t.monaco-scrollable-element > .visible {\n\t\t\t\topacity: 1;\n\n\t\t\t\t/* Background rule added for IE9 - to allow clicks on dom node */\n\t\t\t\tbackground:rgba(0,0,0,0);\n\n\t\t\t\ttransition: opacity 100ms linear;\n\t\t\t}\n\t\t\t.monaco-scrollable-element > .invisible {\n\t\t\t\topacity: 0;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\t\t\t.monaco-scrollable-element > .invisible.fade {\n\t\t\t\ttransition: opacity 800ms linear;\n\t\t\t}\n\n\t\t\t/* Scrollable Content Inset Shadow */\n\t\t\t.monaco-scrollable-element > .shadow {\n\t\t\t\tposition: absolute;\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t\t.monaco-scrollable-element > .shadow.top {\n\t\t\t\tdisplay: block;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 3px;\n\t\t\t\theight: 3px;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t\t.monaco-scrollable-element > .shadow.left {\n\t\t\t\tdisplay: block;\n\t\t\t\ttop: 3px;\n\t\t\t\tleft: 0;\n\t\t\t\theight: 100%;\n\t\t\t\twidth: 3px;\n\t\t\t}\n\t\t\t.monaco-scrollable-element > .shadow.top-left-corner {\n\t\t\t\tdisplay: block;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\theight: 3px;\n\t\t\t\twidth: 3px;\n\t\t\t}\n\t\t`;const i=n.scrollbarShadow;i&&(t+=`\n\t\t\t\t.monaco-scrollable-element > .shadow.top {\n\t\t\t\t\tbox-shadow: ${i} 0 6px 6px -6px inset;\n\t\t\t\t}\n\n\t\t\t\t.monaco-scrollable-element > .shadow.left {\n\t\t\t\t\tbox-shadow: ${i} 6px 0 6px -6px inset;\n\t\t\t\t}\n\n\t\t\t\t.monaco-scrollable-element > .shadow.top.left {\n\t\t\t\t\tbox-shadow: ${i} 6px 6px 6px -6px inset;\n\t\t\t\t}\n\t\t\t`);const s=n.scrollbarSliderBackground;s&&(t+=`\n\t\t\t\t.monaco-scrollable-element > .scrollbar > .slider {\n\t\t\t\t\tbackground: ${s};\n\t\t\t\t}\n\t\t\t`);const o=n.scrollbarSliderHoverBackground;o&&(t+=`\n\t\t\t\t.monaco-scrollable-element > .scrollbar > .slider:hover {\n\t\t\t\t\tbackground: ${o};\n\t\t\t\t}\n\t\t\t`);const r=n.scrollbarSliderActiveBackground;r&&(t+=`\n\t\t\t\t.monaco-scrollable-element > .scrollbar > .slider.active {\n\t\t\t\t\tbackground: ${r};\n\t\t\t\t}\n\t\t\t`)}return t}class tze{constructor(e,t,i,s){this.contextViewService=e,this.telemetryService=t,this.notificationService=i,this.keybindingService=s,this.focusToReturn=null,this.lastContainer=null,this.block=null,this.blockDisposable=null,this.options={blockMouse:!0}}configure(e){this.options=e}showContextMenu(e){const t=e.getActions();if(!t.length)return;this.focusToReturn=Ao();let i;const s=co(e.domForShadowRoot)?e.domForShadowRoot:void 0;this.contextViewService.showContextView({getAnchor:()=>e.getAnchor(),canRelayout:!1,anchorAlignment:e.anchorAlignment,anchorAxisAlignment:e.anchorAxisAlignment,render:o=>{var r;this.lastContainer=o;const a=e.getMenuClassName?e.getMenuClassName():\"\";a&&(o.className+=\" \"+a),this.options.blockMouse&&(this.block=o.appendChild(ke(\".context-view-block\")),this.block.style.position=\"fixed\",this.block.style.cursor=\"initial\",this.block.style.left=\"0\",this.block.style.top=\"0\",this.block.style.width=\"100%\",this.block.style.height=\"100%\",this.block.style.zIndex=\"-1\",(r=this.blockDisposable)===null||r===void 0||r.dispose(),this.blockDisposable=ce(this.block,Le.MOUSE_DOWN,u=>u.stopPropagation()));const l=new be,c=e.actionRunner||new f0;c.onWillRun(u=>this.onActionRun(u,!e.skipTelemetry),this,l),c.onDidRun(this.onDidActionRun,this,l),i=new uC(o,t,{actionViewItemProvider:e.getActionViewItem,context:e.getActionsContext?e.getActionsContext():null,actionRunner:c,getKeyBinding:e.getKeyBinding?e.getKeyBinding:u=>this.keybindingService.lookupKeybinding(u.id)},XVe),i.onDidCancel(()=>this.contextViewService.hideContextView(!0),null,l),i.onDidBlur(()=>this.contextViewService.hideContextView(!0),null,l);const d=gt(o);return l.add(ce(d,Le.BLUR,()=>this.contextViewService.hideContextView(!0))),l.add(ce(d,Le.MOUSE_DOWN,u=>{if(u.defaultPrevented)return;const h=new Kc(d,u);let f=h.target;if(!h.rightButton){for(;f;){if(f===o)return;f=f.parentElement}this.contextViewService.hideContextView(!0)}})),Jc(l,i)},focus:()=>{i==null||i.focus(!!e.autoSelectFirstItem)},onHide:o=>{var r,a,l;(r=e.onHide)===null||r===void 0||r.call(e,!!o),this.block&&(this.block.remove(),this.block=null),(a=this.blockDisposable)===null||a===void 0||a.dispose(),this.blockDisposable=null,this.lastContainer&&(Ao()===this.lastContainer||Zs(Ao(),this.lastContainer))&&((l=this.focusToReturn)===null||l===void 0||l.focus()),this.lastContainer=null}},s,!!s)}onActionRun(e,t){t&&this.telemetryService.publicLog2(\"workbenchActionExecuted\",{id:e.action.id,from:\"contextMenu\"}),this.contextViewService.hideContextView(!1)}onDidActionRun(e){e.error&&!ld(e.error)&&this.notificationService.error(e.error)}}var ize=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Hb=function(n,e){return function(t,i){e(t,i,n)}};let P9=class extends ne{get contextMenuHandler(){return this._contextMenuHandler||(this._contextMenuHandler=new tze(this.contextViewService,this.telemetryService,this.notificationService,this.keybindingService)),this._contextMenuHandler}constructor(e,t,i,s,o,r){super(),this.telemetryService=e,this.notificationService=t,this.contextViewService=i,this.keybindingService=s,this.menuService=o,this.contextKeyService=r,this._contextMenuHandler=void 0,this._onDidShowContextMenu=this._store.add(new X),this.onDidShowContextMenu=this._onDidShowContextMenu.event,this._onDidHideContextMenu=this._store.add(new X)}configure(e){this.contextMenuHandler.configure(e)}showContextMenu(e){e=O9.transform(e,this.menuService,this.contextKeyService),this.contextMenuHandler.showContextMenu({...e,onHide:t=>{var i;(i=e.onHide)===null||i===void 0||i.call(e,t),this._onDidHideContextMenu.fire()}}),Yf.getInstance().resetKeyStatus(),this._onDidShowContextMenu.fire()}};P9=ize([Hb(0,Po),Hb(1,ps),Hb(2,Wg),Hb(3,Li),Hb(4,Dl),Hb(5,Ct)],P9);var O9;(function(n){function e(i){return i&&i.menuId instanceof R}function t(i,s,o){if(!e(i))return i;const{menuId:r,menuActionOptions:a,contextKeyService:l}=i;return{...i,getActions:()=>{const c=[];if(r){const d=s.createMenu(r,l??o);QVe(d,a,c),d.dispose()}return i.getActions?Ms.join(i.getActions(),c):c}}}n.transform=t})(O9||(O9={}));var IA;(function(n){n[n.API=0]=\"API\",n[n.USER=1]=\"USER\"})(IA||(IA={}));var x$=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},EA=function(n,e){return function(t,i){e(t,i,n)}};let F9=class{constructor(e){this._commandService=e}async open(e,t){if(!ez(e,Tt.command))return!1;if(!(t!=null&&t.allowCommands)||(typeof e==\"string\"&&(e=pt.parse(e)),Array.isArray(t.allowCommands)&&!t.allowCommands.includes(e.path)))return!0;let i=[];try{i=f9(decodeURIComponent(e.query))}catch{try{i=f9(e.query)}catch{}}return Array.isArray(i)||(i=[i]),await this._commandService.executeCommand(e.path,...i),!0}};F9=x$([EA(0,Sn)],F9);let B9=class{constructor(e){this._editorService=e}async open(e,t){typeof e==\"string\"&&(e=pt.parse(e));const{selection:i,uri:s}=V6e(e);return e=s,e.scheme===Tt.file&&(e=dBe(e)),await this._editorService.openCodeEditor({resource:e,options:{selection:i,source:t!=null&&t.fromUserGesture?IA.USER:IA.API,...t==null?void 0:t.editorOptions}},this._editorService.getFocusedCodeEditor(),t==null?void 0:t.openToSide),!0}};B9=x$([EA(0,vi)],B9);let W9=class{constructor(e,t){this._openers=new Tr,this._validators=new Tr,this._resolvers=new Tr,this._resolvedUriTargets=new hs(i=>i.with({path:null,fragment:null,query:null}).toString()),this._externalOpeners=new Tr,this._defaultExternalOpener={openExternal:async i=>(oB(i,Tt.http,Tt.https)?Yae(i):Ji.location.href=i,!0)},this._openers.push({open:async(i,s)=>s!=null&&s.openExternal||oB(i,Tt.mailto,Tt.http,Tt.https,Tt.vsls)?(await this._doOpenExternal(i,s),!0):!1}),this._openers.push(new F9(t)),this._openers.push(new B9(e))}registerOpener(e){return{dispose:this._openers.unshift(e)}}async open(e,t){var i;const s=typeof e==\"string\"?pt.parse(e):e,o=(i=this._resolvedUriTargets.get(s))!==null&&i!==void 0?i:e;for(const r of this._validators)if(!await r.shouldOpen(o,t))return!1;for(const r of this._openers)if(await r.open(e,t))return!0;return!1}async resolveExternalUri(e,t){for(const i of this._resolvers)try{const s=await i.resolveExternalUri(e,t);if(s)return this._resolvedUriTargets.has(s.resolved)||this._resolvedUriTargets.set(s.resolved,e),s}catch{}throw new Error(\"Could not resolve external URI: \"+e.toString())}async _doOpenExternal(e,t){const i=typeof e==\"string\"?pt.parse(e):e;let s;try{s=(await this.resolveExternalUri(i,t)).resolved}catch{s=i}let o;if(typeof e==\"string\"&&i.toString()===s.toString()?o=e:o=encodeURI(s.toString(!0)),t!=null&&t.allowContributedOpeners){const r=typeof(t==null?void 0:t.allowContributedOpeners)==\"string\"?t==null?void 0:t.allowContributedOpeners:void 0;for(const a of this._externalOpeners)if(await a.openExternal(o,{sourceUri:i,preferredOpenerId:r},Qt.None))return!0}return this._defaultExternalOpener.openExternal(o,{sourceUri:i},Qt.None)}dispose(){this._validators.clear()}};W9=x$([EA(0,vi),EA(1,Sn)],W9);const bc=Jt(\"editorWorkerService\");var Qn;(function(n){n[n.Hint=1]=\"Hint\",n[n.Info=2]=\"Info\",n[n.Warning=4]=\"Warning\",n[n.Error=8]=\"Error\"})(Qn||(Qn={}));(function(n){function e(r,a){return a-r}n.compare=e;const t=Object.create(null);t[n.Error]=v(\"sev.error\",\"Error\"),t[n.Warning]=v(\"sev.warning\",\"Warning\"),t[n.Info]=v(\"sev.info\",\"Info\");function i(r){return t[r]||\"\"}n.toString=i;function s(r){switch(r){case us.Error:return n.Error;case us.Warning:return n.Warning;case us.Info:return n.Info;case us.Ignore:return n.Hint}}n.fromSeverity=s;function o(r){switch(r){case n.Error:return us.Error;case n.Warning:return us.Warning;case n.Info:return us.Info;case n.Hint:return us.Ignore}}n.toSeverity=o})(Qn||(Qn={}));var TA;(function(n){const e=\"\";function t(s){return i(s,!0)}n.makeKey=t;function i(s,o){const r=[e];return s.source?r.push(s.source.replace(\"¦\",\"\\\\¦\")):r.push(e),s.code?typeof s.code==\"string\"?r.push(s.code.replace(\"¦\",\"\\\\¦\")):r.push(s.code.value.replace(\"¦\",\"\\\\¦\")):r.push(e),s.severity!==void 0&&s.severity!==null?r.push(Qn.toString(s.severity)):r.push(e),s.message&&o?r.push(s.message.replace(\"¦\",\"\\\\¦\")):r.push(e),s.startLineNumber!==void 0&&s.startLineNumber!==null?r.push(s.startLineNumber.toString()):r.push(e),s.startColumn!==void 0&&s.startColumn!==null?r.push(s.startColumn.toString()):r.push(e),s.endLineNumber!==void 0&&s.endLineNumber!==null?r.push(s.endLineNumber.toString()):r.push(e),s.endColumn!==void 0&&s.endColumn!==null?r.push(s.endColumn.toString()):r.push(e),r.push(e),r.join(\"¦\")}n.makeKeyOptionalMessage=i})(TA||(TA={}));const Uh=Jt(\"markerService\");function nze(n,e){const t=[],i=[];for(const s of n)e.has(s)||t.push(s);for(const s of e)n.has(s)||i.push(s);return{removed:t,added:i}}function sze(n,e){const t=new Set;for(const i of e)n.has(i)&&t.add(i);return t}var oze=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},IJ=function(n,e){return function(t,i){e(t,i,n)}};let H9=class extends ne{constructor(e,t){super(),this._markerService=t,this._onDidChangeMarker=this._register(new X),this._markerDecorations=new hs,e.getModels().forEach(i=>this._onModelAdded(i)),this._register(e.onModelAdded(this._onModelAdded,this)),this._register(e.onModelRemoved(this._onModelRemoved,this)),this._register(this._markerService.onMarkerChanged(this._handleMarkerChange,this))}dispose(){super.dispose(),this._markerDecorations.forEach(e=>e.dispose()),this._markerDecorations.clear()}getMarker(e,t){const i=this._markerDecorations.get(e);return i&&i.getMarker(t)||null}_handleMarkerChange(e){e.forEach(t=>{const i=this._markerDecorations.get(t);i&&this._updateDecorations(i)})}_onModelAdded(e){const t=new rze(e);this._markerDecorations.set(e.uri,t),this._updateDecorations(t)}_onModelRemoved(e){var t;const i=this._markerDecorations.get(e.uri);i&&(i.dispose(),this._markerDecorations.delete(e.uri)),(e.uri.scheme===Tt.inMemory||e.uri.scheme===Tt.internal||e.uri.scheme===Tt.vscode)&&((t=this._markerService)===null||t===void 0||t.read({resource:e.uri}).map(s=>s.owner).forEach(s=>this._markerService.remove(s,[e.uri])))}_updateDecorations(e){const t=this._markerService.read({resource:e.model.uri,take:500});e.update(t)&&this._onDidChangeMarker.fire(e.model)}};H9=oze([IJ(0,Pn),IJ(1,Uh)],H9);class rze extends ne{constructor(e){super(),this.model=e,this._map=new kOe,this._register(dt(()=>{this.model.deltaDecorations([...this._map.values()],[]),this._map.clear()}))}update(e){const{added:t,removed:i}=nze(new Set(this._map.keys()),new Set(e));if(t.length===0&&i.length===0)return!1;const s=i.map(a=>this._map.get(a)),o=t.map(a=>({range:this._createDecorationRange(this.model,a),options:this._createDecorationOption(a)})),r=this.model.deltaDecorations(s,o);for(const a of i)this._map.delete(a);for(let a=0;a<r.length;a++)this._map.set(t[a],r[a]);return!0}getMarker(e){return this._map.getKey(e.id)}_createDecorationRange(e,t){let i=A.lift(t);if(t.severity===Qn.Hint&&!this._hasMarkerTag(t,1)&&!this._hasMarkerTag(t,2)&&(i=i.setEndPosition(i.startLineNumber,i.startColumn+2)),i=e.validateRange(i),i.isEmpty()){const s=e.getLineLastNonWhitespaceColumn(i.startLineNumber)||e.getLineMaxColumn(i.startLineNumber);if(s===1||i.endColumn>=s)return i;const o=e.getWordAtPosition(i.getStartPosition());o&&(i=new A(i.startLineNumber,o.startColumn,i.endLineNumber,o.endColumn))}else if(t.endColumn===Number.MAX_VALUE&&t.startColumn===1&&i.startLineNumber===i.endLineNumber){const s=e.getLineFirstNonWhitespaceColumn(t.startLineNumber);s<i.endColumn&&(i=new A(i.startLineNumber,s,i.endLineNumber,i.endColumn),t.startColumn=s)}return i}_createDecorationOption(e){let t,i,s,o,r;switch(e.severity){case Qn.Hint:this._hasMarkerTag(e,2)?t=void 0:this._hasMarkerTag(e,1)?t=\"squiggly-unnecessary\":t=\"squiggly-hint\",s=0;break;case Qn.Info:t=\"squiggly-info\",i=Yn(Z3e),s=10,r={color:Yn(HFe),position:1};break;case Qn.Warning:t=\"squiggly-warning\",i=Yn(G3e),s=20,r={color:Yn(VFe),position:1};break;case Qn.Error:default:t=\"squiggly-error\",i=Yn(q3e),s=30,r={color:Yn(zFe),position:1};break}return e.tags&&(e.tags.indexOf(1)!==-1&&(o=\"squiggly-inline-unnecessary\"),e.tags.indexOf(2)!==-1&&(o=\"squiggly-inline-deprecated\")),{description:\"marker-decoration\",stickiness:1,className:t,showIfCollapsed:!0,overviewRuler:{color:i,position:Sl.Right},minimap:r,zIndex:s,inlineClassName:o}}_hasMarkerTag(e,t){return e.tags?e.tags.indexOf(t)>=0:!1}}var aze=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Uy=function(n,e){return function(t,i){e(t,i,n)}},i1;function q_(n){return n.toString()}class lze{constructor(e,t,i){this.model=e,this._modelEventListeners=new be,this.model=e,this._modelEventListeners.add(e.onWillDispose(()=>t(e))),this._modelEventListeners.add(e.onDidChangeLanguage(s=>i(e,s)))}dispose(){this._modelEventListeners.dispose()}}const cze=Br||Xt?1:2;class dze{constructor(e,t,i,s,o,r,a,l){this.uri=e,this.initialUndoRedoSnapshot=t,this.time=i,this.sharesUndoRedoStack=s,this.heapSize=o,this.sha1=r,this.versionId=a,this.alternativeVersionId=l}}let NA=i1=class extends ne{constructor(e,t,i,s,o){super(),this._configurationService=e,this._resourcePropertiesService=t,this._undoRedoService=i,this._languageService=s,this._languageConfigurationService=o,this._onModelAdded=this._register(new X),this.onModelAdded=this._onModelAdded.event,this._onModelRemoved=this._register(new X),this.onModelRemoved=this._onModelRemoved.event,this._onModelModeChanged=this._register(new X),this.onModelLanguageChanged=this._onModelModeChanged.event,this._modelCreationOptionsByLanguageAndResource=Object.create(null),this._models={},this._disposedModels=new Map,this._disposedModelsHeapSize=0,this._register(this._configurationService.onDidChangeConfiguration(r=>this._updateModelOptions(r))),this._updateModelOptions(void 0)}static _readModelOptions(e,t){var i;let s=zo.tabSize;if(e.editor&&typeof e.editor.tabSize<\"u\"){const f=parseInt(e.editor.tabSize,10);isNaN(f)||(s=f),s<1&&(s=1)}let o=\"tabSize\";if(e.editor&&typeof e.editor.indentSize<\"u\"&&e.editor.indentSize!==\"tabSize\"){const f=parseInt(e.editor.indentSize,10);isNaN(f)||(o=Math.max(f,1))}let r=zo.insertSpaces;e.editor&&typeof e.editor.insertSpaces<\"u\"&&(r=e.editor.insertSpaces===\"false\"?!1:!!e.editor.insertSpaces);let a=cze;const l=e.eol;l===`\\r\n`?a=2:l===`\n`&&(a=1);let c=zo.trimAutoWhitespace;e.editor&&typeof e.editor.trimAutoWhitespace<\"u\"&&(c=e.editor.trimAutoWhitespace===\"false\"?!1:!!e.editor.trimAutoWhitespace);let d=zo.detectIndentation;e.editor&&typeof e.editor.detectIndentation<\"u\"&&(d=e.editor.detectIndentation===\"false\"?!1:!!e.editor.detectIndentation);let u=zo.largeFileOptimizations;e.editor&&typeof e.editor.largeFileOptimizations<\"u\"&&(u=e.editor.largeFileOptimizations===\"false\"?!1:!!e.editor.largeFileOptimizations);let h=zo.bracketPairColorizationOptions;return!((i=e.editor)===null||i===void 0)&&i.bracketPairColorization&&typeof e.editor.bracketPairColorization==\"object\"&&(h={enabled:!!e.editor.bracketPairColorization.enabled,independentColorPoolPerBracketType:!!e.editor.bracketPairColorization.independentColorPoolPerBracketType}),{isForSimpleWidget:t,tabSize:s,indentSize:o,insertSpaces:r,detectIndentation:d,defaultEOL:a,trimAutoWhitespace:c,largeFileOptimizations:u,bracketPairColorizationOptions:h}}_getEOL(e,t){if(e)return this._resourcePropertiesService.getEOL(e,t);const i=this._configurationService.getValue(\"files.eol\",{overrideIdentifier:t});return i&&typeof i==\"string\"&&i!==\"auto\"?i:Da===3||Da===2?`\n`:`\\r\n`}_shouldRestoreUndoStack(){const e=this._configurationService.getValue(\"files.restoreUndoStack\");return typeof e==\"boolean\"?e:!0}getCreationOptions(e,t,i){const s=typeof e==\"string\"?e:e.languageId;let o=this._modelCreationOptionsByLanguageAndResource[s+t];if(!o){const r=this._configurationService.getValue(\"editor\",{overrideIdentifier:s,resource:t}),a=this._getEOL(t,s);o=i1._readModelOptions({editor:r,eol:a},i),this._modelCreationOptionsByLanguageAndResource[s+t]=o}return o}_updateModelOptions(e){const t=this._modelCreationOptionsByLanguageAndResource;this._modelCreationOptionsByLanguageAndResource=Object.create(null);const i=Object.keys(this._models);for(let s=0,o=i.length;s<o;s++){const r=i[s],a=this._models[r],l=a.model.getLanguageId(),c=a.model.uri;if(e&&!e.affectsConfiguration(\"editor\",{overrideIdentifier:l,resource:c})&&!e.affectsConfiguration(\"files.eol\",{overrideIdentifier:l,resource:c}))continue;const d=t[l+c],u=this.getCreationOptions(l,c,a.model.isForSimpleWidget);i1._setModelOptionsForModel(a.model,u,d)}}static _setModelOptionsForModel(e,t,i){i&&i.defaultEOL!==t.defaultEOL&&e.getLineCount()===1&&e.setEOL(t.defaultEOL===1?0:1),!(i&&i.detectIndentation===t.detectIndentation&&i.insertSpaces===t.insertSpaces&&i.tabSize===t.tabSize&&i.indentSize===t.indentSize&&i.trimAutoWhitespace===t.trimAutoWhitespace&&vl(i.bracketPairColorizationOptions,t.bracketPairColorizationOptions))&&(t.detectIndentation?(e.detectIndentation(t.insertSpaces,t.tabSize),e.updateOptions({trimAutoWhitespace:t.trimAutoWhitespace,bracketColorizationOptions:t.bracketPairColorizationOptions})):e.updateOptions({insertSpaces:t.insertSpaces,tabSize:t.tabSize,indentSize:t.indentSize,trimAutoWhitespace:t.trimAutoWhitespace,bracketColorizationOptions:t.bracketPairColorizationOptions}))}_insertDisposedModel(e){this._disposedModels.set(q_(e.uri),e),this._disposedModelsHeapSize+=e.heapSize}_removeDisposedModel(e){const t=this._disposedModels.get(q_(e));return t&&(this._disposedModelsHeapSize-=t.heapSize),this._disposedModels.delete(q_(e)),t}_ensureDisposedModelsHeapSize(e){if(this._disposedModelsHeapSize>e){const t=[];for(this._disposedModels.forEach(i=>{i.sharesUndoRedoStack||t.push(i)}),t.sort((i,s)=>i.time-s.time);t.length>0&&this._disposedModelsHeapSize>e;){const i=t.shift();this._removeDisposedModel(i.uri),i.initialUndoRedoSnapshot!==null&&this._undoRedoService.restoreSnapshot(i.initialUndoRedoSnapshot)}}}_createModelData(e,t,i,s){const o=this.getCreationOptions(t,i,s),r=new Th(e,t,o,i,this._undoRedoService,this._languageService,this._languageConfigurationService);if(i&&this._disposedModels.has(q_(i))){const c=this._removeDisposedModel(i),d=this._undoRedoService.getElements(i),u=this._getSHA1Computer(),h=u.canComputeSHA1(r)?u.computeSHA1(r)===c.sha1:!1;if(h||c.sharesUndoRedoStack){for(const f of d.past)Af(f)&&f.matchesResource(i)&&f.setModel(r);for(const f of d.future)Af(f)&&f.matchesResource(i)&&f.setModel(r);this._undoRedoService.setElementsValidFlag(i,!0,f=>Af(f)&&f.matchesResource(i)),h&&(r._overwriteVersionId(c.versionId),r._overwriteAlternativeVersionId(c.alternativeVersionId),r._overwriteInitialUndoRedoSnapshot(c.initialUndoRedoSnapshot))}else c.initialUndoRedoSnapshot!==null&&this._undoRedoService.restoreSnapshot(c.initialUndoRedoSnapshot)}const a=q_(r.uri);if(this._models[a])throw new Error(\"ModelService: Cannot add model because it already exists!\");const l=new lze(r,c=>this._onWillDispose(c),(c,d)=>this._onDidChangeLanguage(c,d));return this._models[a]=l,l}createModel(e,t,i,s=!1){let o;return t?o=this._createModelData(e,t,i,s):o=this._createModelData(e,bl,i,s),this._onModelAdded.fire(o.model),o.model}getModels(){const e=[],t=Object.keys(this._models);for(let i=0,s=t.length;i<s;i++){const o=t[i];e.push(this._models[o].model)}return e}getModel(e){const t=q_(e),i=this._models[t];return i?i.model:null}_schemaShouldMaintainUndoRedoElements(e){return e.scheme===Tt.file||e.scheme===Tt.vscodeRemote||e.scheme===Tt.vscodeUserData||e.scheme===Tt.vscodeNotebookCell||e.scheme===\"fake-fs\"}_onWillDispose(e){const t=q_(e.uri),i=this._models[t],s=this._undoRedoService.getUriComparisonKey(e.uri)!==e.uri.toString();let o=!1,r=0;if(s||this._shouldRestoreUndoStack()&&this._schemaShouldMaintainUndoRedoElements(e.uri)){const c=this._undoRedoService.getElements(e.uri);if(c.past.length>0||c.future.length>0){for(const d of c.past)Af(d)&&d.matchesResource(e.uri)&&(o=!0,r+=d.heapSize(e.uri),d.setModel(e.uri));for(const d of c.future)Af(d)&&d.matchesResource(e.uri)&&(o=!0,r+=d.heapSize(e.uri),d.setModel(e.uri))}}const a=i1.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK,l=this._getSHA1Computer();if(o)if(!s&&(r>a||!l.canComputeSHA1(e))){const c=i.model.getInitialUndoRedoSnapshot();c!==null&&this._undoRedoService.restoreSnapshot(c)}else this._ensureDisposedModelsHeapSize(a-r),this._undoRedoService.setElementsValidFlag(e.uri,!1,c=>Af(c)&&c.matchesResource(e.uri)),this._insertDisposedModel(new dze(e.uri,i.model.getInitialUndoRedoSnapshot(),Date.now(),s,r,l.computeSHA1(e),e.getVersionId(),e.getAlternativeVersionId()));else if(!s){const c=i.model.getInitialUndoRedoSnapshot();c!==null&&this._undoRedoService.restoreSnapshot(c)}delete this._models[t],i.dispose(),delete this._modelCreationOptionsByLanguageAndResource[e.getLanguageId()+e.uri],this._onModelRemoved.fire(e)}_onDidChangeLanguage(e,t){const i=t.oldLanguage,s=e.getLanguageId(),o=this.getCreationOptions(i,e.uri,e.isForSimpleWidget),r=this.getCreationOptions(s,e.uri,e.isForSimpleWidget);i1._setModelOptionsForModel(e,r,o),this._onModelModeChanged.fire({model:e,oldLanguageId:i})}_getSHA1Computer(){return new aP}};NA.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK=20*1024*1024;NA=i1=aze([Uy(0,qt),Uy(1,Tle),Uy(2,zM),Uy(3,An),Uy(4,gn)],NA);class aP{canComputeSHA1(e){return e.getValueLength()<=aP.MAX_MODEL_SIZE}computeSHA1(e){const t=new cM,i=e.createSnapshot();let s;for(;s=i.read();)t.update(s);return t.digest()}}aP.MAX_MODEL_SIZE=10*1024*1024;var V9;(function(n){n[n.PRESERVE=0]=\"PRESERVE\",n[n.LAST=1]=\"LAST\"})(V9||(V9={}));const ib={Quickaccess:\"workbench.contributions.quickaccess\"};class uze{constructor(){this.providers=[],this.defaultProvider=void 0}registerQuickAccessProvider(e){return e.prefix.length===0?this.defaultProvider=e:this.providers.push(e),this.providers.sort((t,i)=>i.prefix.length-t.prefix.length),dt(()=>{this.providers.splice(this.providers.indexOf(e),1),this.defaultProvider===e&&(this.defaultProvider=void 0)})}getQuickAccessProviders(){return tu([this.defaultProvider,...this.providers])}getQuickAccessProvider(e){return e&&this.providers.find(i=>e.startsWith(i.prefix))||void 0||this.defaultProvider}}Un.add(ib.Quickaccess,new uze);const hze={ctrlCmd:!1,alt:!1};var JC;(function(n){n[n.Blur=1]=\"Blur\",n[n.Gesture=2]=\"Gesture\",n[n.Other=3]=\"Other\"})(JC||(JC={}));var Ed;(function(n){n[n.NONE=0]=\"NONE\",n[n.FIRST=1]=\"FIRST\",n[n.SECOND=2]=\"SECOND\",n[n.LAST=3]=\"LAST\"})(Ed||(Ed={}));var _n;(function(n){n[n.First=1]=\"First\",n[n.Second=2]=\"Second\",n[n.Last=3]=\"Last\",n[n.Next=4]=\"Next\",n[n.Previous=5]=\"Previous\",n[n.NextPage=6]=\"NextPage\",n[n.PreviousPage=7]=\"PreviousPage\",n[n.NextSeparator=8]=\"NextSeparator\",n[n.PreviousSeparator=9]=\"PreviousSeparator\"})(_n||(_n={}));const Cc=Jt(\"quickInputService\");var fze=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},EJ=function(n,e){return function(t,i){e(t,i,n)}};let z9=class extends ne{constructor(e,t){super(),this.quickInputService=e,this.instantiationService=t,this.registry=Un.as(ib.Quickaccess),this.mapProviderToDescriptor=new Map,this.lastAcceptedPickerValues=new Map,this.visibleQuickAccess=void 0}show(e=\"\",t){this.doShowOrPick(e,!1,t)}doShowOrPick(e,t,i){var s,o,r,a;const[l,c]=this.getOrInstantiateProvider(e,i==null?void 0:i.enabledProviderPrefixes),d=this.visibleQuickAccess,u=d==null?void 0:d.descriptor;if(d&&c&&u===c){e!==c.prefix&&!(i!=null&&i.preserveValue)&&(d.picker.value=e),this.adjustValueSelection(d.picker,c,i);return}if(c&&!(i!=null&&i.preserveValue)){let w;if(d&&u&&u!==c){const y=d.value.substr(u.prefix.length);y&&(w=`${c.prefix}${y}`)}if(!w){const y=l==null?void 0:l.defaultFilterValue;y===V9.LAST?w=this.lastAcceptedPickerValues.get(c):typeof y==\"string\"&&(w=`${c.prefix}${y}`)}typeof w==\"string\"&&(e=w)}const h=(s=d==null?void 0:d.picker)===null||s===void 0?void 0:s.valueSelection,f=(o=d==null?void 0:d.picker)===null||o===void 0?void 0:o.value,g=new be,p=g.add(this.quickInputService.createQuickPick());p.value=e,this.adjustValueSelection(p,c,i),p.placeholder=(r=i==null?void 0:i.placeholder)!==null&&r!==void 0?r:c==null?void 0:c.placeholder,p.quickNavigate=i==null?void 0:i.quickNavigateConfiguration,p.hideInput=!!p.quickNavigate&&!d,(typeof(i==null?void 0:i.itemActivation)==\"number\"||i!=null&&i.quickNavigateConfiguration)&&(p.itemActivation=(a=i==null?void 0:i.itemActivation)!==null&&a!==void 0?a:Ed.SECOND),p.contextKey=c==null?void 0:c.contextKey,p.filterValue=w=>w.substring(c?c.prefix.length:0);let _;t&&(_=new hD,g.add(Ae.once(p.onWillAccept)(w=>{w.veto(),p.hide()}))),g.add(this.registerPickerListeners(p,l,c,e,i));const b=g.add(new $n);if(l&&g.add(l.provide(p,b.token,i==null?void 0:i.providerOptions)),Ae.once(p.onDidHide)(()=>{p.selectedItems.length===0&&b.cancel(),g.dispose(),_==null||_.complete(p.selectedItems.slice(0))}),p.show(),h&&f===e&&(p.valueSelection=h),t)return _==null?void 0:_.p}adjustValueSelection(e,t,i){var s;let o;i!=null&&i.preserveValue?o=[e.value.length,e.value.length]:o=[(s=t==null?void 0:t.prefix.length)!==null&&s!==void 0?s:0,e.value.length],e.valueSelection=o}registerPickerListeners(e,t,i,s,o){const r=new be,a=this.visibleQuickAccess={picker:e,descriptor:i,value:s};return r.add(dt(()=>{a===this.visibleQuickAccess&&(this.visibleQuickAccess=void 0)})),r.add(e.onDidChangeValue(l=>{const[c]=this.getOrInstantiateProvider(l,o==null?void 0:o.enabledProviderPrefixes);c!==t?this.show(l,{enabledProviderPrefixes:o==null?void 0:o.enabledProviderPrefixes,preserveValue:!0,providerOptions:o==null?void 0:o.providerOptions}):a.value=l})),i&&r.add(e.onDidAccept(()=>{this.lastAcceptedPickerValues.set(i,e.value)})),r}getOrInstantiateProvider(e,t){const i=this.registry.getQuickAccessProvider(e);if(!i||t&&!(t!=null&&t.includes(i.prefix)))return[void 0,void 0];let s=this.mapProviderToDescriptor.get(i);return s||(s=this.instantiationService.createInstance(i.ctor),this.mapProviderToDescriptor.set(i,s)),[s,i]}};z9=fze([EJ(0,Cc),EJ(1,ht)],z9);class Vw extends Il{constructor(e){var t;super(),this._onChange=this._register(new X),this.onChange=this._onChange.event,this._onKeyDown=this._register(new X),this.onKeyDown=this._onKeyDown.event,this._opts=e,this._checked=this._opts.isChecked;const i=[\"monaco-custom-toggle\"];this._opts.icon&&(this._icon=this._opts.icon,i.push(..._t.asClassNameArray(this._icon))),this._opts.actionClassName&&i.push(...this._opts.actionClassName.split(\" \")),this._checked&&i.push(\"checked\"),this.domNode=document.createElement(\"div\"),this._hover=this._register(bu().setupUpdatableHover((t=e.hoverDelegate)!==null&&t!==void 0?t:Ur(\"mouse\"),this.domNode,this._opts.title)),this.domNode.classList.add(...i),this._opts.notFocusable||(this.domNode.tabIndex=0),this.domNode.setAttribute(\"role\",\"checkbox\"),this.domNode.setAttribute(\"aria-checked\",String(this._checked)),this.domNode.setAttribute(\"aria-label\",this._opts.title),this.applyStyles(),this.onclick(this.domNode,s=>{this.enabled&&(this.checked=!this._checked,this._onChange.fire(!1),s.preventDefault())}),this._register(this.ignoreGesture(this.domNode)),this.onkeydown(this.domNode,s=>{if(s.keyCode===10||s.keyCode===3){this.checked=!this._checked,this._onChange.fire(!0),s.preventDefault(),s.stopPropagation();return}this._onKeyDown.fire(s)})}get enabled(){return this.domNode.getAttribute(\"aria-disabled\")!==\"true\"}focus(){this.domNode.focus()}get checked(){return this._checked}set checked(e){this._checked=e,this.domNode.setAttribute(\"aria-checked\",String(this._checked)),this.domNode.classList.toggle(\"checked\",this._checked),this.applyStyles()}width(){return 22}applyStyles(){this.domNode&&(this.domNode.style.borderColor=this._checked&&this._opts.inputActiveOptionBorder||\"\",this.domNode.style.color=this._checked&&this._opts.inputActiveOptionForeground||\"inherit\",this.domNode.style.backgroundColor=this._checked&&this._opts.inputActiveOptionBackground||\"\")}enable(){this.domNode.setAttribute(\"aria-disabled\",String(!1))}disable(){this.domNode.setAttribute(\"aria-disabled\",String(!0))}}var gze=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o};class Gde{constructor(e){this.nodes=e}toString(){return this.nodes.map(e=>typeof e==\"string\"?e:e.label).join(\"\")}}gze([gs],Gde.prototype,\"toString\",null);const pze=/\\[([^\\]]+)\\]\\(((?:https?:\\/\\/|command:|file:)[^\\)\\s]+)(?: ([\"'])(.+?)(\\3))?\\)/gi;function mze(n){const e=[];let t=0,i;for(;i=pze.exec(n);){i.index-t>0&&e.push(n.substring(t,i.index));const[,s,o,,r]=i;r?e.push({label:s,href:o,title:r}):e.push({label:s,href:o}),t=i.index+i[0].length}return t<n.length&&e.push(n.substring(t)),new Gde(e)}const F5={},_ze=new v$(\"quick-input-button-icon-\");function vze(n){if(!n)return;let e;const t=n.dark.toString();return F5[t]?e=F5[t]:(e=_ze.nextId(),H2(`.${e}, .hc-light .${e}`,`background-image: ${Ig(n.light||n.dark)}`),H2(`.vs-dark .${e}, .hc-black .${e}`,`background-image: ${Ig(n.dark)}`),F5[t]=e),e}function AA(n,e,t){let i=n.iconClass||vze(n.iconPath);return n.alwaysVisible&&(i=i?`${i} always-visible`:\"always-visible\"),{id:e,label:\"\",tooltip:n.tooltip||\"\",class:i,enabled:!0,run:t}}function bze(n,e,t){yo(e);const i=mze(n);let s=0;for(const o of i.nodes)if(typeof o==\"string\")e.append(...gm(o));else{let r=o.title;!r&&o.href.startsWith(\"command:\")?r=v(\"executeCommand\",\"Click to execute command '{0}'\",o.href.substring(8)):r||(r=o.href);const a=ke(\"a\",{href:o.href,title:r,tabIndex:s++},o.label);a.style.textDecoration=\"underline\";const l=f=>{TMe(f)&&ii.stop(f,!0),t.callback(o.href)},c=t.disposables.add(new ei(a,Le.CLICK)).event,d=t.disposables.add(new ei(a,Le.KEY_DOWN)).event,u=Ae.chain(d,f=>f.filter(g=>{const p=new ln(g);return p.equals(10)||p.equals(3)}));t.disposables.add(hn.addTarget(a));const h=t.disposables.add(new ei(a,fn.Tap)).event;Ae.any(c,h,u)(l,null,t.disposables),e.appendChild(a)}}var Cze=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},TJ=function(n,e){return function(t,i){e(t,i,n)}};const Zde=\"inQuickInput\",wze=new He(Zde,!1,v(\"inQuickInput\",\"Whether keyboard focus is inside the quick input control\")),yze=pe.has(Zde),Yde=\"quickInputType\",Sze=new He(Yde,void 0,v(\"quickInputType\",\"The type of the currently visible quick input\")),Xde=\"cursorAtEndOfQuickInputBox\",xze=new He(Xde,!1,v(\"cursorAtEndOfQuickInputBox\",\"Whether the cursor in the quick input is at the end of the input box\")),Lze=pe.has(Xde),$9={iconClass:_t.asClassName(Te.quickInputBack),tooltip:v(\"quickInput.back\",\"Back\")};class PD extends ne{constructor(e){super(),this.ui=e,this._widgetUpdated=!1,this.visible=!1,this._enabled=!0,this._busy=!1,this._ignoreFocusOut=!1,this._buttons=[],this.buttonsUpdated=!1,this._toggles=[],this.togglesUpdated=!1,this.noValidationMessage=PD.noPromptMessage,this._severity=us.Ignore,this.onDidTriggerButtonEmitter=this._register(new X),this.onDidHideEmitter=this._register(new X),this.onWillHideEmitter=this._register(new X),this.onDisposeEmitter=this._register(new X),this.visibleDisposables=this._register(new be),this.onDidHide=this.onDidHideEmitter.event}get title(){return this._title}set title(e){this._title=e,this.update()}get description(){return this._description}set description(e){this._description=e,this.update()}get step(){return this._steps}set step(e){this._steps=e,this.update()}get totalSteps(){return this._totalSteps}set totalSteps(e){this._totalSteps=e,this.update()}get enabled(){return this._enabled}set enabled(e){this._enabled=e,this.update()}get contextKey(){return this._contextKey}set contextKey(e){this._contextKey=e,this.update()}get busy(){return this._busy}set busy(e){this._busy=e,this.update()}get ignoreFocusOut(){return this._ignoreFocusOut}set ignoreFocusOut(e){const t=this._ignoreFocusOut!==e&&!iu;this._ignoreFocusOut=e&&!iu,t&&this.update()}get buttons(){return this._buttons}set buttons(e){this._buttons=e,this.buttonsUpdated=!0,this.update()}get toggles(){return this._toggles}set toggles(e){this._toggles=e??[],this.togglesUpdated=!0,this.update()}get validationMessage(){return this._validationMessage}set validationMessage(e){this._validationMessage=e,this.update()}get severity(){return this._severity}set severity(e){this._severity=e,this.update()}show(){this.visible||(this.visibleDisposables.add(this.ui.onDidTriggerButton(e=>{this.buttons.indexOf(e)!==-1&&this.onDidTriggerButtonEmitter.fire(e)})),this.ui.show(this),this.visible=!0,this._lastValidationMessage=void 0,this._lastSeverity=void 0,this.buttons.length&&(this.buttonsUpdated=!0),this.toggles.length&&(this.togglesUpdated=!0),this.update())}hide(){this.visible&&this.ui.hide()}didHide(e=JC.Other){this.visible=!1,this.visibleDisposables.clear(),this.onDidHideEmitter.fire({reason:e})}willHide(e=JC.Other){this.onWillHideEmitter.fire({reason:e})}update(){var e,t;if(!this.visible)return;const i=this.getTitle();i&&this.ui.title.textContent!==i?this.ui.title.textContent=i:!i&&this.ui.title.innerHTML!==\"&nbsp;\"&&(this.ui.title.innerText=\" \");const s=this.getDescription();if(this.ui.description1.textContent!==s&&(this.ui.description1.textContent=s),this.ui.description2.textContent!==s&&(this.ui.description2.textContent=s),this._widgetUpdated&&(this._widgetUpdated=!1,this._widget?yo(this.ui.widget,this._widget):yo(this.ui.widget)),this.busy&&!this.busyDelay&&(this.busyDelay=new cd,this.busyDelay.setIfNotSet(()=>{this.visible&&this.ui.progressBar.infinite()},800)),!this.busy&&this.busyDelay&&(this.ui.progressBar.stop(),this.busyDelay.cancel(),this.busyDelay=void 0),this.buttonsUpdated){this.buttonsUpdated=!1,this.ui.leftActionBar.clear();const r=this.buttons.filter(l=>l===$9).map((l,c)=>AA(l,`id-${c}`,async()=>this.onDidTriggerButtonEmitter.fire(l)));this.ui.leftActionBar.push(r,{icon:!0,label:!1}),this.ui.rightActionBar.clear();const a=this.buttons.filter(l=>l!==$9).map((l,c)=>AA(l,`id-${c}`,async()=>this.onDidTriggerButtonEmitter.fire(l)));this.ui.rightActionBar.push(a,{icon:!0,label:!1})}if(this.togglesUpdated){this.togglesUpdated=!1;const r=(t=(e=this.toggles)===null||e===void 0?void 0:e.filter(a=>a instanceof Vw))!==null&&t!==void 0?t:[];this.ui.inputBox.toggles=r}this.ui.ignoreFocusOut=this.ignoreFocusOut,this.ui.setEnabled(this.enabled),this.ui.setContextKey(this.contextKey);const o=this.validationMessage||this.noValidationMessage;this._lastValidationMessage!==o&&(this._lastValidationMessage=o,yo(this.ui.message),bze(o,this.ui.message,{callback:r=>{this.ui.linkOpenerDelegate(r)},disposables:this.visibleDisposables})),this._lastSeverity!==this.severity&&(this._lastSeverity=this.severity,this.showMessageDecoration(this.severity))}getTitle(){return this.title&&this.step?`${this.title} (${this.getSteps()})`:this.title?this.title:this.step?this.getSteps():\"\"}getDescription(){return this.description||\"\"}getSteps(){return this.step&&this.totalSteps?v(\"quickInput.steps\",\"{0}/{1}\",this.step,this.totalSteps):this.step?String(this.step):\"\"}showMessageDecoration(e){if(this.ui.inputBox.showDecoration(e),e!==us.Ignore){const t=this.ui.inputBox.stylesForType(e);this.ui.message.style.color=t.foreground?`${t.foreground}`:\"\",this.ui.message.style.backgroundColor=t.background?`${t.background}`:\"\",this.ui.message.style.border=t.border?`1px solid ${t.border}`:\"\",this.ui.message.style.marginBottom=\"-2px\"}else this.ui.message.style.color=\"\",this.ui.message.style.backgroundColor=\"\",this.ui.message.style.border=\"\",this.ui.message.style.marginBottom=\"\"}dispose(){this.hide(),this.onDisposeEmitter.fire(),super.dispose()}}PD.noPromptMessage=v(\"inputModeEntry\",\"Press 'Enter' to confirm your input or 'Escape' to cancel\");class ZL extends PD{constructor(){super(...arguments),this._value=\"\",this.onDidChangeValueEmitter=this._register(new X),this.onWillAcceptEmitter=this._register(new X),this.onDidAcceptEmitter=this._register(new X),this.onDidCustomEmitter=this._register(new X),this._items=[],this.itemsUpdated=!1,this._canSelectMany=!1,this._canAcceptInBackground=!1,this._matchOnDescription=!1,this._matchOnDetail=!1,this._matchOnLabel=!0,this._matchOnLabelMode=\"fuzzy\",this._sortByLabel=!0,this._keepScrollPosition=!1,this._itemActivation=Ed.FIRST,this._activeItems=[],this.activeItemsUpdated=!1,this.activeItemsToConfirm=[],this.onDidChangeActiveEmitter=this._register(new X),this._selectedItems=[],this.selectedItemsUpdated=!1,this.selectedItemsToConfirm=[],this.onDidChangeSelectionEmitter=this._register(new X),this.onDidTriggerItemButtonEmitter=this._register(new X),this.onDidTriggerSeparatorButtonEmitter=this._register(new X),this.valueSelectionUpdated=!0,this._ok=\"default\",this._customButton=!1,this._focusEventBufferer=new sM,this.type=\"quickPick\",this.filterValue=e=>e,this.onDidChangeValue=this.onDidChangeValueEmitter.event,this.onWillAccept=this.onWillAcceptEmitter.event,this.onDidAccept=this.onDidAcceptEmitter.event,this.onDidChangeActive=this.onDidChangeActiveEmitter.event,this.onDidChangeSelection=this.onDidChangeSelectionEmitter.event,this.onDidTriggerItemButton=this.onDidTriggerItemButtonEmitter.event,this.onDidTriggerSeparatorButton=this.onDidTriggerSeparatorButtonEmitter.event}get quickNavigate(){return this._quickNavigate}set quickNavigate(e){this._quickNavigate=e,this.update()}get value(){return this._value}set value(e){this.doSetValue(e)}doSetValue(e,t){this._value!==e&&(this._value=e,t||this.update(),this.visible&&this.ui.list.filter(this.filterValue(this._value))&&this.trySelectFirst(),this.onDidChangeValueEmitter.fire(this._value))}set ariaLabel(e){this._ariaLabel=e,this.update()}get ariaLabel(){return this._ariaLabel}get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.update()}get items(){return this._items}get scrollTop(){return this.ui.list.scrollTop}set scrollTop(e){this.ui.list.scrollTop=e}set items(e){this._items=e,this.itemsUpdated=!0,this.update()}get canSelectMany(){return this._canSelectMany}set canSelectMany(e){this._canSelectMany=e,this.update()}get canAcceptInBackground(){return this._canAcceptInBackground}set canAcceptInBackground(e){this._canAcceptInBackground=e}get matchOnDescription(){return this._matchOnDescription}set matchOnDescription(e){this._matchOnDescription=e,this.update()}get matchOnDetail(){return this._matchOnDetail}set matchOnDetail(e){this._matchOnDetail=e,this.update()}get matchOnLabel(){return this._matchOnLabel}set matchOnLabel(e){this._matchOnLabel=e,this.update()}get matchOnLabelMode(){return this._matchOnLabelMode}set matchOnLabelMode(e){this._matchOnLabelMode=e,this.update()}get sortByLabel(){return this._sortByLabel}set sortByLabel(e){this._sortByLabel=e,this.update()}get keepScrollPosition(){return this._keepScrollPosition}set keepScrollPosition(e){this._keepScrollPosition=e}get itemActivation(){return this._itemActivation}set itemActivation(e){this._itemActivation=e}get activeItems(){return this._activeItems}set activeItems(e){this._activeItems=e,this.activeItemsUpdated=!0,this.update()}get selectedItems(){return this._selectedItems}set selectedItems(e){this._selectedItems=e,this.selectedItemsUpdated=!0,this.update()}get keyMods(){return this._quickNavigate?hze:this.ui.keyMods}get valueSelection(){const e=this.ui.inputBox.getSelection();if(e)return[e.start,e.end]}set valueSelection(e){this._valueSelection=e,this.valueSelectionUpdated=!0,this.update()}get customButton(){return this._customButton}set customButton(e){this._customButton=e,this.update()}get customLabel(){return this._customButtonLabel}set customLabel(e){this._customButtonLabel=e,this.update()}get customHover(){return this._customButtonHover}set customHover(e){this._customButtonHover=e,this.update()}get ok(){return this._ok}set ok(e){this._ok=e,this.update()}get hideInput(){return!!this._hideInput}set hideInput(e){this._hideInput=e,this.update()}trySelectFirst(){this.canSelectMany||this.ui.list.focus(_n.First)}show(){this.visible||(this.visibleDisposables.add(this.ui.inputBox.onDidChange(e=>{this.doSetValue(e,!0)})),this.visibleDisposables.add(this.ui.onDidAccept(()=>{this.canSelectMany?this.ui.list.getCheckedElements().length||(this._selectedItems=[],this.onDidChangeSelectionEmitter.fire(this.selectedItems)):this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems)),this.handleAccept(!1)})),this.visibleDisposables.add(this.ui.onDidCustom(()=>{this.onDidCustomEmitter.fire()})),this.visibleDisposables.add(this._focusEventBufferer.wrapEvent(this.ui.list.onDidChangeFocus,(e,t)=>t)(e=>{this.activeItemsUpdated||this.activeItemsToConfirm!==this._activeItems&&zn(e,this._activeItems,(t,i)=>t===i)||(this._activeItems=e,this.onDidChangeActiveEmitter.fire(e))})),this.visibleDisposables.add(this.ui.list.onDidChangeSelection(({items:e,event:t})=>{if(this.canSelectMany){e.length&&this.ui.list.setSelectedElements([]);return}this.selectedItemsToConfirm!==this._selectedItems&&zn(e,this._selectedItems,(i,s)=>i===s)||(this._selectedItems=e,this.onDidChangeSelectionEmitter.fire(e),e.length&&this.handleAccept(sz(t)&&t.button===1))})),this.visibleDisposables.add(this.ui.list.onChangedCheckedElements(e=>{this.canSelectMany&&(this.selectedItemsToConfirm!==this._selectedItems&&zn(e,this._selectedItems,(t,i)=>t===i)||(this._selectedItems=e,this.onDidChangeSelectionEmitter.fire(e)))})),this.visibleDisposables.add(this.ui.list.onButtonTriggered(e=>this.onDidTriggerItemButtonEmitter.fire(e))),this.visibleDisposables.add(this.ui.list.onSeparatorButtonTriggered(e=>this.onDidTriggerSeparatorButtonEmitter.fire(e))),this.visibleDisposables.add(this.registerQuickNavigation()),this.valueSelectionUpdated=!0),super.show()}handleAccept(e){let t=!1;this.onWillAcceptEmitter.fire({veto:()=>t=!0}),t||this.onDidAcceptEmitter.fire({inBackground:e})}registerQuickNavigation(){return ce(this.ui.container,Le.KEY_UP,e=>{if(this.canSelectMany||!this._quickNavigate)return;const t=new ln(e),i=t.keyCode;this._quickNavigate.keybindings.some(r=>{const a=r.getChords();return a.length>1?!1:a[0].shiftKey&&i===4?!(t.ctrlKey||t.altKey||t.metaKey):!!(a[0].altKey&&i===6||a[0].ctrlKey&&i===5||a[0].metaKey&&i===57)})&&(this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems),this.handleAccept(!1)),this._quickNavigate=void 0)})}update(){if(!this.visible)return;const e=this.keepScrollPosition?this.scrollTop:0,t=!!this.description,i={title:!!this.title||!!this.step||!!this.buttons.length,description:t,checkAll:this.canSelectMany&&!this._hideCheckAll,checkBox:this.canSelectMany,inputBox:!this._hideInput,progressBar:!this._hideInput||t,visibleCount:!0,count:this.canSelectMany&&!this._hideCountBadge,ok:this.ok===\"default\"?this.canSelectMany:this.ok,list:!0,message:!!this.validationMessage,customButton:this.customButton};this.ui.setVisibilities(i),super.update(),this.ui.inputBox.value!==this.value&&(this.ui.inputBox.value=this.value),this.valueSelectionUpdated&&(this.valueSelectionUpdated=!1,this.ui.inputBox.select(this._valueSelection&&{start:this._valueSelection[0],end:this._valueSelection[1]})),this.ui.inputBox.placeholder!==(this.placeholder||\"\")&&(this.ui.inputBox.placeholder=this.placeholder||\"\");let s=this.ariaLabel;!s&&i.inputBox&&(s=this.placeholder||ZL.DEFAULT_ARIA_LABEL,this.title&&(s+=` - ${this.title}`)),this.ui.list.ariaLabel!==s&&(this.ui.list.ariaLabel=s??null),this.ui.list.matchOnDescription=this.matchOnDescription,this.ui.list.matchOnDetail=this.matchOnDetail,this.ui.list.matchOnLabel=this.matchOnLabel,this.ui.list.matchOnLabelMode=this.matchOnLabelMode,this.ui.list.sortByLabel=this.sortByLabel,this.itemsUpdated&&(this.itemsUpdated=!1,this._focusEventBufferer.bufferEvents(()=>{switch(this.ui.list.setElements(this.items),this.ui.list.shouldLoop=!this.canSelectMany,this.ui.list.filter(this.filterValue(this.ui.inputBox.value)),this.ui.checkAll.checked=this.ui.list.getAllVisibleChecked(),this.ui.visibleCount.setCount(this.ui.list.getVisibleCount()),this.ui.count.setCount(this.ui.list.getCheckedCount()),this._itemActivation){case Ed.NONE:this._itemActivation=Ed.FIRST;break;case Ed.SECOND:this.ui.list.focus(_n.Second),this._itemActivation=Ed.FIRST;break;case Ed.LAST:this.ui.list.focus(_n.Last),this._itemActivation=Ed.FIRST;break;default:this.trySelectFirst();break}})),this.ui.container.classList.contains(\"show-checkboxes\")!==!!this.canSelectMany&&(this.canSelectMany?this.ui.list.clearFocus():this.trySelectFirst()),this.activeItemsUpdated&&(this.activeItemsUpdated=!1,this.activeItemsToConfirm=this._activeItems,this.ui.list.setFocusedElements(this.activeItems),this.activeItemsToConfirm===this._activeItems&&(this.activeItemsToConfirm=null)),this.selectedItemsUpdated&&(this.selectedItemsUpdated=!1,this.selectedItemsToConfirm=this._selectedItems,this.canSelectMany?this.ui.list.setCheckedElements(this.selectedItems):this.ui.list.setSelectedElements(this.selectedItems),this.selectedItemsToConfirm===this._selectedItems&&(this.selectedItemsToConfirm=null)),this.ui.customButton.label=this.customLabel||\"\",this.ui.customButton.element.title=this.customHover||\"\",i.inputBox||(this.ui.list.domFocus(),this.canSelectMany&&this.ui.list.focus(_n.First)),this.keepScrollPosition&&(this.scrollTop=e)}focus(e){this.ui.list.focus(e),this.canSelectMany&&this.ui.list.domFocus()}accept(e){e&&!this._canAcceptInBackground||this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems),this.handleAccept(e??!1))}}ZL.DEFAULT_ARIA_LABEL=v(\"quickInputBox.ariaLabel\",\"Type to narrow down results.\");let kze=class extends PD{constructor(){super(...arguments),this._value=\"\",this.valueSelectionUpdated=!0,this._password=!1,this.onDidValueChangeEmitter=this._register(new X),this.onDidAcceptEmitter=this._register(new X),this.type=\"inputBox\",this.onDidChangeValue=this.onDidValueChangeEmitter.event,this.onDidAccept=this.onDidAcceptEmitter.event}get value(){return this._value}set value(e){this._value=e||\"\",this.update()}get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.update()}get password(){return this._password}set password(e){this._password=e,this.update()}show(){this.visible||(this.visibleDisposables.add(this.ui.inputBox.onDidChange(e=>{e!==this.value&&(this._value=e,this.onDidValueChangeEmitter.fire(e))})),this.visibleDisposables.add(this.ui.onDidAccept(()=>this.onDidAcceptEmitter.fire())),this.valueSelectionUpdated=!0),super.show()}update(){if(!this.visible)return;this.ui.container.classList.remove(\"hidden-input\");const e={title:!!this.title||!!this.step||!!this.buttons.length,description:!!this.description||!!this.step,inputBox:!0,message:!0,progressBar:!0};this.ui.setVisibilities(e),super.update(),this.ui.inputBox.value!==this.value&&(this.ui.inputBox.value=this.value),this.valueSelectionUpdated&&(this.valueSelectionUpdated=!1,this.ui.inputBox.select(this._valueSelection&&{start:this._valueSelection[0],end:this._valueSelection[1]})),this.ui.inputBox.placeholder!==(this.placeholder||\"\")&&(this.ui.inputBox.placeholder=this.placeholder||\"\"),this.ui.inputBox.password!==this.password&&(this.ui.inputBox.password=this.password)}},U9=class extends KC{constructor(e,t){super(\"element\",!1,i=>this.getOverrideOptions(i),e,t)}getOverrideOptions(e){var t;const i=(co(e.content)?(t=e.content.textContent)!==null&&t!==void 0?t:\"\":typeof e.content==\"string\"?e.content:e.content.value).includes(`\n`);return{persistence:{hideOnKeyDown:!1},appearance:{showHoverHint:i,skipFadeInAnimation:!0}}}};U9=Cze([TJ(0,qt),TJ(1,$h)],U9);le.white.toString(),le.white.toString();class RA extends ne{get onDidClick(){return this._onDidClick.event}constructor(e,t){super(),this._label=\"\",this._onDidClick=this._register(new X),this._onDidEscape=this._register(new X),this.options=t,this._element=document.createElement(\"a\"),this._element.classList.add(\"monaco-button\"),this._element.tabIndex=0,this._element.setAttribute(\"role\",\"button\"),this._element.classList.toggle(\"secondary\",!!t.secondary);const i=t.secondary?t.buttonSecondaryBackground:t.buttonBackground,s=t.secondary?t.buttonSecondaryForeground:t.buttonForeground;this._element.style.color=s||\"\",this._element.style.backgroundColor=i||\"\",t.supportShortLabel&&(this._labelShortElement=document.createElement(\"div\"),this._labelShortElement.classList.add(\"monaco-button-label-short\"),this._element.appendChild(this._labelShortElement),this._labelElement=document.createElement(\"div\"),this._labelElement.classList.add(\"monaco-button-label\"),this._element.appendChild(this._labelElement),this._element.classList.add(\"monaco-text-button-with-short-label\")),typeof t.title==\"string\"&&this.setTitle(t.title),typeof t.ariaLabel==\"string\"&&this._element.setAttribute(\"aria-label\",t.ariaLabel),e.appendChild(this._element),this._register(hn.addTarget(this._element)),[Le.CLICK,fn.Tap].forEach(o=>{this._register(ce(this._element,o,r=>{if(!this.enabled){ii.stop(r);return}this._onDidClick.fire(r)}))}),this._register(ce(this._element,Le.KEY_DOWN,o=>{const r=new ln(o);let a=!1;this.enabled&&(r.equals(3)||r.equals(10))?(this._onDidClick.fire(o),a=!0):r.equals(9)&&(this._onDidEscape.fire(o),this._element.blur(),a=!0),a&&ii.stop(r,!0)})),this._register(ce(this._element,Le.MOUSE_OVER,o=>{this._element.classList.contains(\"disabled\")||this.updateBackground(!0)})),this._register(ce(this._element,Le.MOUSE_OUT,o=>{this.updateBackground(!1)})),this.focusTracker=this._register(ou(this._element)),this._register(this.focusTracker.onDidFocus(()=>{this.enabled&&this.updateBackground(!0)})),this._register(this.focusTracker.onDidBlur(()=>{this.enabled&&this.updateBackground(!1)}))}dispose(){super.dispose(),this._element.remove()}getContentElements(e){const t=[];for(let i of gm(e))if(typeof i==\"string\"){if(i=i.trim(),i===\"\")continue;const s=document.createElement(\"span\");s.textContent=i,t.push(s)}else t.push(i);return t}updateBackground(e){let t;this.options.secondary?t=e?this.options.buttonSecondaryHoverBackground:this.options.buttonSecondaryBackground:t=e?this.options.buttonHoverBackground:this.options.buttonBackground,t&&(this._element.style.backgroundColor=t)}get element(){return this._element}set label(e){var t;if(this._label===e||Xd(this._label)&&Xd(e)&&bWe(this._label,e))return;this._element.classList.add(\"monaco-text-button\");const i=this.options.supportShortLabel?this._labelElement:this._element;if(Xd(e)){const o=GM(e,{inline:!0});o.dispose();const r=(t=o.element.querySelector(\"p\"))===null||t===void 0?void 0:t.innerHTML;if(r){const a=Pae(r,{ADD_TAGS:[\"b\",\"i\",\"u\",\"code\",\"span\"],ALLOWED_ATTR:[\"class\"],RETURN_TRUSTED_TYPE:!0});i.innerHTML=a}else yo(i)}else this.options.supportIcons?yo(i,...this.getContentElements(e)):i.textContent=e;let s=\"\";typeof this.options.title==\"string\"?s=this.options.title:this.options.title&&(s=IWe(e)),this.setTitle(s),typeof this.options.ariaLabel==\"string\"?this._element.setAttribute(\"aria-label\",this.options.ariaLabel):this.options.ariaLabel&&this._element.setAttribute(\"aria-label\",s),this._label=e}get label(){return this._label}set icon(e){this._element.classList.add(..._t.asClassNameArray(e))}set enabled(e){e?(this._element.classList.remove(\"disabled\"),this._element.setAttribute(\"aria-disabled\",String(!1)),this._element.tabIndex=0):(this._element.classList.add(\"disabled\"),this._element.setAttribute(\"aria-disabled\",String(!0)))}get enabled(){return!this._element.classList.contains(\"disabled\")}setTitle(e){var t;!this._hover&&e!==\"\"?this._hover=this._register(bu().setupUpdatableHover((t=this.options.hoverDelegate)!==null&&t!==void 0?t:Ur(\"mouse\"),this._element,e)):this._hover&&this._hover.update(e)}}class j9{constructor(e,t,i){this.options=t,this.styles=i,this.count=0,this.element=we(e,ke(\".monaco-count-badge\")),this.countFormat=this.options.countFormat||\"{0}\",this.titleFormat=this.options.titleFormat||\"\",this.setCount(this.options.count||0)}setCount(e){this.count=e,this.render()}setTitleFormat(e){this.titleFormat=e,this.render()}render(){var e,t;this.element.textContent=l0(this.countFormat,this.count),this.element.title=l0(this.titleFormat,this.count),this.element.style.backgroundColor=(e=this.styles.badgeBackground)!==null&&e!==void 0?e:\"\",this.element.style.color=(t=this.styles.badgeForeground)!==null&&t!==void 0?t:\"\",this.styles.badgeBorder&&(this.element.style.border=`1px solid ${this.styles.badgeBorder}`)}}const NJ=\"done\",AJ=\"active\",B5=\"infinite\",W5=\"infinite-long-running\",RJ=\"discrete\";class lP extends ne{constructor(e,t){super(),this.progressSignal=this._register(new Qs),this.workedVal=0,this.showDelayedScheduler=this._register(new Xi(()=>ka(this.element),0)),this.longRunningScheduler=this._register(new Xi(()=>this.infiniteLongRunning(),lP.LONG_RUNNING_INFINITE_THRESHOLD)),this.create(e,t)}create(e,t){this.element=document.createElement(\"div\"),this.element.classList.add(\"monaco-progress-container\"),this.element.setAttribute(\"role\",\"progressbar\"),this.element.setAttribute(\"aria-valuemin\",\"0\"),e.appendChild(this.element),this.bit=document.createElement(\"div\"),this.bit.classList.add(\"progress-bit\"),this.bit.style.backgroundColor=(t==null?void 0:t.progressBarBackground)||\"#0E70C0\",this.element.appendChild(this.bit)}off(){this.bit.style.width=\"inherit\",this.bit.style.opacity=\"1\",this.element.classList.remove(AJ,B5,W5,RJ),this.workedVal=0,this.totalWork=void 0,this.longRunningScheduler.cancel(),this.progressSignal.clear()}stop(){return this.doDone(!1)}doDone(e){return this.element.classList.add(NJ),this.element.classList.contains(B5)?(this.bit.style.opacity=\"0\",e?setTimeout(()=>this.off(),200):this.off()):(this.bit.style.width=\"inherit\",e?setTimeout(()=>this.off(),200):this.off()),this}infinite(){return this.bit.style.width=\"2%\",this.bit.style.opacity=\"1\",this.element.classList.remove(RJ,NJ,W5),this.element.classList.add(AJ,B5),this.longRunningScheduler.schedule(),this}infiniteLongRunning(){this.element.classList.add(W5)}getContainer(){return this.element}}lP.LONG_RUNNING_INFINITE_THRESHOLD=1e4;const Dze=v(\"caseDescription\",\"Match Case\"),Ize=v(\"wordsDescription\",\"Match Whole Word\"),Eze=v(\"regexDescription\",\"Use Regular Expression\");class Qde extends Vw{constructor(e){var t;super({icon:Te.caseSensitive,title:Dze+e.appendTitle,isChecked:e.isChecked,hoverDelegate:(t=e.hoverDelegate)!==null&&t!==void 0?t:Ur(\"element\"),inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class Jde extends Vw{constructor(e){var t;super({icon:Te.wholeWord,title:Ize+e.appendTitle,isChecked:e.isChecked,hoverDelegate:(t=e.hoverDelegate)!==null&&t!==void 0?t:Ur(\"element\"),inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class eue extends Vw{constructor(e){var t;super({icon:Te.regex,title:Eze+e.appendTitle,isChecked:e.isChecked,hoverDelegate:(t=e.hoverDelegate)!==null&&t!==void 0?t:Ur(\"element\"),inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class Tze{constructor(e,t=0,i=e.length,s=t-1){this.items=e,this.start=t,this.end=i,this.index=s}current(){return this.index===this.start-1||this.index===this.end?null:this.items[this.index]}next(){return this.index=Math.min(this.index+1,this.end),this.current()}previous(){return this.index=Math.max(this.index-1,this.start-1),this.current()}first(){return this.index=this.start,this.current()}last(){return this.index=this.end-1,this.current()}}class Nze{constructor(e=[],t=10){this._initialize(e),this._limit=t,this._onChange()}getHistory(){return this._elements}add(e){this._history.delete(e),this._history.add(e),this._onChange()}next(){return this._navigator.next()}previous(){return this._currentPosition()!==0?this._navigator.previous():null}current(){return this._navigator.current()}first(){return this._navigator.first()}last(){return this._navigator.last()}isLast(){return this._currentPosition()>=this._elements.length-1}isNowhere(){return this._navigator.current()===null}has(e){return this._history.has(e)}_onChange(){this._reduceToLimit();const e=this._elements;this._navigator=new Tze(e,0,e.length,e.length)}_reduceToLimit(){const e=this._elements;e.length>this._limit&&this._initialize(e.slice(e.length-this._limit))}_currentPosition(){const e=this._navigator.current();return e?this._elements.indexOf(e):-1}_initialize(e){this._history=new Set;for(const t of e)this._history.add(t)}get _elements(){const e=[];return this._history.forEach(t=>e.push(t)),e}}const jy=ke;class Aze extends Il{constructor(e,t,i){var s;super(),this.state=\"idle\",this.maxHeight=Number.POSITIVE_INFINITY,this._onDidChange=this._register(new X),this.onDidChange=this._onDidChange.event,this._onDidHeightChange=this._register(new X),this.onDidHeightChange=this._onDidHeightChange.event,this.contextViewProvider=t,this.options=i,this.message=null,this.placeholder=this.options.placeholder||\"\",this.tooltip=(s=this.options.tooltip)!==null&&s!==void 0?s:this.placeholder||\"\",this.ariaLabel=this.options.ariaLabel||\"\",this.options.validationOptions&&(this.validation=this.options.validationOptions.validation),this.element=we(e,jy(\".monaco-inputbox.idle\"));const o=this.options.flexibleHeight?\"textarea\":\"input\",r=we(this.element,jy(\".ibwrapper\"));if(this.input=we(r,jy(o+\".input.empty\")),this.input.setAttribute(\"autocorrect\",\"off\"),this.input.setAttribute(\"autocapitalize\",\"off\"),this.input.setAttribute(\"spellcheck\",\"false\"),this.onfocus(this.input,()=>this.element.classList.add(\"synthetic-focus\")),this.onblur(this.input,()=>this.element.classList.remove(\"synthetic-focus\")),this.options.flexibleHeight){this.maxHeight=typeof this.options.flexibleMaxHeight==\"number\"?this.options.flexibleMaxHeight:Number.POSITIVE_INFINITY,this.mirror=we(r,jy(\"div.mirror\")),this.mirror.innerText=\" \",this.scrollableElement=new tce(this.element,{vertical:1}),this.options.flexibleWidth&&(this.input.setAttribute(\"wrap\",\"off\"),this.mirror.style.whiteSpace=\"pre\",this.mirror.style.wordWrap=\"initial\"),we(e,this.scrollableElement.getDomNode()),this._register(this.scrollableElement),this._register(this.scrollableElement.onScroll(c=>this.input.scrollTop=c.scrollTop));const a=this._register(new ei(e.ownerDocument,\"selectionchange\")),l=Ae.filter(a.event,()=>{const c=e.ownerDocument.getSelection();return(c==null?void 0:c.anchorNode)===r});this._register(l(this.updateScrollDimensions,this)),this._register(this.onDidHeightChange(this.updateScrollDimensions,this))}else this.input.type=this.options.type||\"text\",this.input.setAttribute(\"wrap\",\"off\");this.ariaLabel&&this.input.setAttribute(\"aria-label\",this.ariaLabel),this.placeholder&&!this.options.showPlaceholderOnFocus&&this.setPlaceHolder(this.placeholder),this.tooltip&&this.setTooltip(this.tooltip),this.oninput(this.input,()=>this.onValueChange()),this.onblur(this.input,()=>this.onBlur()),this.onfocus(this.input,()=>this.onFocus()),this._register(this.ignoreGesture(this.input)),setTimeout(()=>this.updateMirror(),0),this.options.actions&&(this.actionbar=this._register(new hc(this.element)),this.actionbar.push(this.options.actions,{icon:!0,label:!1})),this.applyStyles()}onBlur(){this._hideMessage(),this.options.showPlaceholderOnFocus&&this.input.setAttribute(\"placeholder\",\"\")}onFocus(){this._showMessage(),this.options.showPlaceholderOnFocus&&this.input.setAttribute(\"placeholder\",this.placeholder||\"\")}setPlaceHolder(e){this.placeholder=e,this.input.setAttribute(\"placeholder\",e)}setTooltip(e){this.tooltip=e,this.hover?this.hover.update(e):this.hover=this._register(bu().setupUpdatableHover(Ur(\"mouse\"),this.input,e))}get inputElement(){return this.input}get value(){return this.input.value}set value(e){this.input.value!==e&&(this.input.value=e,this.onValueChange())}get height(){return typeof this.cachedHeight==\"number\"?this.cachedHeight:Zf(this.element)}focus(){this.input.focus()}blur(){this.input.blur()}hasFocus(){return hM(this.input)}select(e=null){this.input.select(),e&&(this.input.setSelectionRange(e.start,e.end),e.end===this.input.value.length&&(this.input.scrollLeft=this.input.scrollWidth))}isSelectionAtEnd(){return this.input.selectionEnd===this.input.value.length&&this.input.selectionStart===this.input.selectionEnd}getSelection(){var e;const t=this.input.selectionStart;if(t===null)return null;const i=(e=this.input.selectionEnd)!==null&&e!==void 0?e:t;return{start:t,end:i}}enable(){this.input.removeAttribute(\"disabled\")}disable(){this.blur(),this.input.disabled=!0,this._hideMessage()}set paddingRight(e){this.input.style.width=`calc(100% - ${e}px)`,this.mirror&&(this.mirror.style.paddingRight=e+\"px\")}updateScrollDimensions(){if(typeof this.cachedContentHeight!=\"number\"||typeof this.cachedHeight!=\"number\"||!this.scrollableElement)return;const e=this.cachedContentHeight,t=this.cachedHeight,i=this.input.scrollTop;this.scrollableElement.setScrollDimensions({scrollHeight:e,height:t}),this.scrollableElement.setScrollPosition({scrollTop:i})}showMessage(e,t){if(this.state===\"open\"&&vl(this.message,e))return;this.message=e,this.element.classList.remove(\"idle\"),this.element.classList.remove(\"info\"),this.element.classList.remove(\"warning\"),this.element.classList.remove(\"error\"),this.element.classList.add(this.classForType(e.type));const i=this.stylesForType(this.message.type);this.element.style.border=`1px solid ${mg(i.border,\"transparent\")}`,this.message.content&&(this.hasFocus()||t)&&this._showMessage()}hideMessage(){this.message=null,this.element.classList.remove(\"info\"),this.element.classList.remove(\"warning\"),this.element.classList.remove(\"error\"),this.element.classList.add(\"idle\"),this._hideMessage(),this.applyStyles()}validate(){let e=null;return this.validation&&(e=this.validation(this.value),e?(this.inputElement.setAttribute(\"aria-invalid\",\"true\"),this.showMessage(e)):this.inputElement.hasAttribute(\"aria-invalid\")&&(this.inputElement.removeAttribute(\"aria-invalid\"),this.hideMessage())),e==null?void 0:e.type}stylesForType(e){const t=this.options.inputBoxStyles;switch(e){case 1:return{border:t.inputValidationInfoBorder,background:t.inputValidationInfoBackground,foreground:t.inputValidationInfoForeground};case 2:return{border:t.inputValidationWarningBorder,background:t.inputValidationWarningBackground,foreground:t.inputValidationWarningForeground};default:return{border:t.inputValidationErrorBorder,background:t.inputValidationErrorBackground,foreground:t.inputValidationErrorForeground}}}classForType(e){switch(e){case 1:return\"info\";case 2:return\"warning\";default:return\"error\"}}_showMessage(){if(!this.contextViewProvider||!this.message)return;let e;const t=()=>e.style.width=Sa(this.element)+\"px\";this.contextViewProvider.showContextView({getAnchor:()=>this.element,anchorAlignment:1,render:s=>{var o,r;if(!this.message)return null;e=we(s,jy(\".monaco-inputbox-container\")),t();const a={inline:!0,className:\"monaco-inputbox-message\"},l=this.message.formatContent?$6e(this.message.content,a):z6e(this.message.content,a);l.classList.add(this.classForType(this.message.type));const c=this.stylesForType(this.message.type);return l.style.backgroundColor=(o=c.background)!==null&&o!==void 0?o:\"\",l.style.color=(r=c.foreground)!==null&&r!==void 0?r:\"\",l.style.border=c.border?`1px solid ${c.border}`:\"\",we(e,l),null},onHide:()=>{this.state=\"closed\"},layout:t});let i;this.message.type===3?i=v(\"alertErrorMessage\",\"Error: {0}\",this.message.content):this.message.type===2?i=v(\"alertWarningMessage\",\"Warning: {0}\",this.message.content):i=v(\"alertInfoMessage\",\"Info: {0}\",this.message.content),la(i),this.state=\"open\"}_hideMessage(){this.contextViewProvider&&(this.state===\"open\"&&this.contextViewProvider.hideContextView(),this.state=\"idle\")}onValueChange(){this._onDidChange.fire(this.value),this.validate(),this.updateMirror(),this.input.classList.toggle(\"empty\",!this.value),this.state===\"open\"&&this.contextViewProvider&&this.contextViewProvider.layout()}updateMirror(){if(!this.mirror)return;const e=this.value,i=e.charCodeAt(e.length-1)===10?\" \":\"\";(e+i).replace(/\\u000c/g,\"\")?this.mirror.textContent=e+i:this.mirror.innerText=\" \",this.layout()}applyStyles(){var e,t,i;const s=this.options.inputBoxStyles,o=(e=s.inputBackground)!==null&&e!==void 0?e:\"\",r=(t=s.inputForeground)!==null&&t!==void 0?t:\"\",a=(i=s.inputBorder)!==null&&i!==void 0?i:\"\";this.element.style.backgroundColor=o,this.element.style.color=r,this.input.style.backgroundColor=\"inherit\",this.input.style.color=r,this.element.style.border=`1px solid ${mg(a,\"transparent\")}`}layout(){if(!this.mirror)return;const e=this.cachedContentHeight;this.cachedContentHeight=Zf(this.mirror),e!==this.cachedContentHeight&&(this.cachedHeight=Math.min(this.cachedContentHeight,this.maxHeight),this.input.style.height=this.cachedHeight+\"px\",this._onDidHeightChange.fire(this.cachedContentHeight))}insertAtCursor(e){const t=this.inputElement,i=t.selectionStart,s=t.selectionEnd,o=t.value;i!==null&&s!==null&&(this.value=o.substr(0,i)+e+o.substr(s),t.setSelectionRange(i+1,i+1),this.layout())}dispose(){var e;this._hideMessage(),this.message=null,(e=this.actionbar)===null||e===void 0||e.dispose(),super.dispose()}}class tue extends Aze{constructor(e,t,i){const s=v({},\" or {0} for history\",\"⇅\"),o=v({},\" ({0} for history)\",\"⇅\");super(e,t,i),this._onDidFocus=this._register(new X),this.onDidFocus=this._onDidFocus.event,this._onDidBlur=this._register(new X),this.onDidBlur=this._onDidBlur.event,this.history=new Nze(i.history,100);const r=()=>{if(i.showHistoryHint&&i.showHistoryHint()&&!this.placeholder.endsWith(s)&&!this.placeholder.endsWith(o)&&this.history.getHistory().length){const a=this.placeholder.endsWith(\")\")?s:o,l=this.placeholder+a;i.showPlaceholderOnFocus&&!hM(this.input)?this.placeholder=l:this.setPlaceHolder(l)}};this.observer=new MutationObserver((a,l)=>{a.forEach(c=>{c.target.textContent||r()})}),this.observer.observe(this.input,{attributeFilter:[\"class\"]}),this.onfocus(this.input,()=>r()),this.onblur(this.input,()=>{const a=l=>{if(this.placeholder.endsWith(l)){const c=this.placeholder.slice(0,this.placeholder.length-l.length);return i.showPlaceholderOnFocus?this.placeholder=c:this.setPlaceHolder(c),!0}else return!1};a(o)||a(s)})}dispose(){super.dispose(),this.observer&&(this.observer.disconnect(),this.observer=void 0)}addToHistory(e){this.value&&(e||this.value!==this.getCurrentValue())&&this.history.add(this.value)}isAtLastInHistory(){return this.history.isLast()}isNowhereInHistory(){return this.history.isNowhere()}showNextValue(){this.history.has(this.value)||this.addToHistory();let e=this.getNextValue();e&&(e=e===this.value?this.getNextValue():e),this.value=e??\"\",Ih(this.value?this.value:v(\"clearedInput\",\"Cleared Input\"))}showPreviousValue(){this.history.has(this.value)||this.addToHistory();let e=this.getPreviousValue();e&&(e=e===this.value?this.getPreviousValue():e),e&&(this.value=e,Ih(this.value))}setPlaceHolder(e){super.setPlaceHolder(e),this.setTooltip(e)}onBlur(){super.onBlur(),this._onDidBlur.fire()}onFocus(){super.onFocus(),this._onDidFocus.fire()}getCurrentValue(){let e=this.history.current();return e||(e=this.history.last(),this.history.next()),e}getPreviousValue(){return this.history.previous()||this.history.first()}getNextValue(){return this.history.next()}}const Rze=v(\"defaultLabel\",\"input\");class iue extends Il{constructor(e,t,i){super(),this.fixFocusOnOptionClickEnabled=!0,this.imeSessionInProgress=!1,this.additionalTogglesDisposables=this._register(new Qs),this.additionalToggles=[],this._onDidOptionChange=this._register(new X),this.onDidOptionChange=this._onDidOptionChange.event,this._onKeyDown=this._register(new X),this.onKeyDown=this._onKeyDown.event,this._onMouseDown=this._register(new X),this.onMouseDown=this._onMouseDown.event,this._onInput=this._register(new X),this._onKeyUp=this._register(new X),this._onCaseSensitiveKeyDown=this._register(new X),this.onCaseSensitiveKeyDown=this._onCaseSensitiveKeyDown.event,this._onRegexKeyDown=this._register(new X),this.onRegexKeyDown=this._onRegexKeyDown.event,this._lastHighlightFindOptions=0,this.placeholder=i.placeholder||\"\",this.validation=i.validation,this.label=i.label||Rze,this.showCommonFindToggles=!!i.showCommonFindToggles;const s=i.appendCaseSensitiveLabel||\"\",o=i.appendWholeWordsLabel||\"\",r=i.appendRegexLabel||\"\",a=i.history||[],l=!!i.flexibleHeight,c=!!i.flexibleWidth,d=i.flexibleMaxHeight;this.domNode=document.createElement(\"div\"),this.domNode.classList.add(\"monaco-findInput\"),this.inputBox=this._register(new tue(this.domNode,t,{placeholder:this.placeholder||\"\",ariaLabel:this.label||\"\",validationOptions:{validation:this.validation},history:a,showHistoryHint:i.showHistoryHint,flexibleHeight:l,flexibleWidth:c,flexibleMaxHeight:d,inputBoxStyles:i.inputBoxStyles}));const u=this._register(XC());if(this.showCommonFindToggles){this.regex=this._register(new eue({appendTitle:r,isChecked:!1,hoverDelegate:u,...i.toggleStyles})),this._register(this.regex.onChange(f=>{this._onDidOptionChange.fire(f),!f&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.regex.onKeyDown(f=>{this._onRegexKeyDown.fire(f)})),this.wholeWords=this._register(new Jde({appendTitle:o,isChecked:!1,hoverDelegate:u,...i.toggleStyles})),this._register(this.wholeWords.onChange(f=>{this._onDidOptionChange.fire(f),!f&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this.caseSensitive=this._register(new Qde({appendTitle:s,isChecked:!1,hoverDelegate:u,...i.toggleStyles})),this._register(this.caseSensitive.onChange(f=>{this._onDidOptionChange.fire(f),!f&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.caseSensitive.onKeyDown(f=>{this._onCaseSensitiveKeyDown.fire(f)}));const h=[this.caseSensitive.domNode,this.wholeWords.domNode,this.regex.domNode];this.onkeydown(this.domNode,f=>{if(f.equals(15)||f.equals(17)||f.equals(9)){const g=h.indexOf(this.domNode.ownerDocument.activeElement);if(g>=0){let p=-1;f.equals(17)?p=(g+1)%h.length:f.equals(15)&&(g===0?p=h.length-1:p=g-1),f.equals(9)?(h[g].blur(),this.inputBox.focus()):p>=0&&h[p].focus(),ii.stop(f,!0)}}})}this.controls=document.createElement(\"div\"),this.controls.className=\"controls\",this.controls.style.display=this.showCommonFindToggles?\"\":\"none\",this.caseSensitive&&this.controls.append(this.caseSensitive.domNode),this.wholeWords&&this.controls.appendChild(this.wholeWords.domNode),this.regex&&this.controls.appendChild(this.regex.domNode),this.setAdditionalToggles(i==null?void 0:i.additionalToggles),this.controls&&this.domNode.appendChild(this.controls),e==null||e.appendChild(this.domNode),this._register(ce(this.inputBox.inputElement,\"compositionstart\",h=>{this.imeSessionInProgress=!0})),this._register(ce(this.inputBox.inputElement,\"compositionend\",h=>{this.imeSessionInProgress=!1,this._onInput.fire()})),this.onkeydown(this.inputBox.inputElement,h=>this._onKeyDown.fire(h)),this.onkeyup(this.inputBox.inputElement,h=>this._onKeyUp.fire(h)),this.oninput(this.inputBox.inputElement,h=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,h=>this._onMouseDown.fire(h))}get onDidChange(){return this.inputBox.onDidChange}layout(e){this.inputBox.layout(),this.updateInputBoxPadding(e.collapsedFindWidget)}enable(){var e,t,i;this.domNode.classList.remove(\"disabled\"),this.inputBox.enable(),(e=this.regex)===null||e===void 0||e.enable(),(t=this.wholeWords)===null||t===void 0||t.enable(),(i=this.caseSensitive)===null||i===void 0||i.enable();for(const s of this.additionalToggles)s.enable()}disable(){var e,t,i;this.domNode.classList.add(\"disabled\"),this.inputBox.disable(),(e=this.regex)===null||e===void 0||e.disable(),(t=this.wholeWords)===null||t===void 0||t.disable(),(i=this.caseSensitive)===null||i===void 0||i.disable();for(const s of this.additionalToggles)s.disable()}setFocusInputOnOptionClick(e){this.fixFocusOnOptionClickEnabled=e}setEnabled(e){e?this.enable():this.disable()}setAdditionalToggles(e){for(const t of this.additionalToggles)t.domNode.remove();this.additionalToggles=[],this.additionalTogglesDisposables.value=new be;for(const t of e??[])this.additionalTogglesDisposables.value.add(t),this.controls.appendChild(t.domNode),this.additionalTogglesDisposables.value.add(t.onChange(i=>{this._onDidOptionChange.fire(i),!i&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus()})),this.additionalToggles.push(t);this.additionalToggles.length>0&&(this.controls.style.display=\"\"),this.updateInputBoxPadding()}updateInputBoxPadding(e=!1){var t,i,s,o,r,a;e?this.inputBox.paddingRight=0:this.inputBox.paddingRight=((i=(t=this.caseSensitive)===null||t===void 0?void 0:t.width())!==null&&i!==void 0?i:0)+((o=(s=this.wholeWords)===null||s===void 0?void 0:s.width())!==null&&o!==void 0?o:0)+((a=(r=this.regex)===null||r===void 0?void 0:r.width())!==null&&a!==void 0?a:0)+this.additionalToggles.reduce((l,c)=>l+c.width(),0)}getValue(){return this.inputBox.value}setValue(e){this.inputBox.value!==e&&(this.inputBox.value=e)}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getCaseSensitive(){var e,t;return(t=(e=this.caseSensitive)===null||e===void 0?void 0:e.checked)!==null&&t!==void 0?t:!1}setCaseSensitive(e){this.caseSensitive&&(this.caseSensitive.checked=e)}getWholeWords(){var e,t;return(t=(e=this.wholeWords)===null||e===void 0?void 0:e.checked)!==null&&t!==void 0?t:!1}setWholeWords(e){this.wholeWords&&(this.wholeWords.checked=e)}getRegex(){var e,t;return(t=(e=this.regex)===null||e===void 0?void 0:e.checked)!==null&&t!==void 0?t:!1}setRegex(e){this.regex&&(this.regex.checked=e,this.validate())}focusOnCaseSensitive(){var e;(e=this.caseSensitive)===null||e===void 0||e.focus()}highlightFindOptions(){this.domNode.classList.remove(\"highlight-\"+this._lastHighlightFindOptions),this._lastHighlightFindOptions=1-this._lastHighlightFindOptions,this.domNode.classList.add(\"highlight-\"+this._lastHighlightFindOptions)}validate(){this.inputBox.validate()}showMessage(e){this.inputBox.showMessage(e)}clearMessage(){this.inputBox.hideMessage()}}const Mze=ke;class Pze extends ne{constructor(e,t,i){super(),this.parent=e,this.onKeyDown=o=>rs(this.findInput.inputBox.inputElement,Le.KEY_DOWN,o),this.onDidChange=o=>this.findInput.onDidChange(o),this.container=we(this.parent,Mze(\".quick-input-box\")),this.findInput=this._register(new iue(this.container,void 0,{label:\"\",inputBoxStyles:t,toggleStyles:i}));const s=this.findInput.inputBox.inputElement;s.role=\"combobox\",s.ariaHasPopup=\"menu\",s.ariaAutoComplete=\"list\",s.ariaExpanded=\"true\"}get value(){return this.findInput.getValue()}set value(e){this.findInput.setValue(e)}select(e=null){this.findInput.inputBox.select(e)}getSelection(){return this.findInput.inputBox.getSelection()}isSelectionAtEnd(){return this.findInput.inputBox.isSelectionAtEnd()}get placeholder(){return this.findInput.inputBox.inputElement.getAttribute(\"placeholder\")||\"\"}set placeholder(e){this.findInput.inputBox.setPlaceHolder(e)}get password(){return this.findInput.inputBox.inputElement.type===\"password\"}set password(e){this.findInput.inputBox.inputElement.type=e?\"password\":\"text\"}set enabled(e){this.findInput.inputBox.inputElement.toggleAttribute(\"readonly\",!e)}set toggles(e){this.findInput.setAdditionalToggles(e)}setAttribute(e,t){this.findInput.inputBox.inputElement.setAttribute(e,t)}showDecoration(e){e===us.Ignore?this.findInput.clearMessage():this.findInput.showMessage({type:e===us.Info?1:e===us.Warning?2:3,content:\"\"})}stylesForType(e){return this.findInput.inputBox.stylesForType(e===us.Info?1:e===us.Warning?2:3)}setFocus(){this.findInput.focus()}layout(){this.findInput.inputBox.layout()}}class Oze{get templateId(){return this.renderer.templateId}constructor(e,t){this.renderer=e,this.modelProvider=t}renderTemplate(e){return{data:this.renderer.renderTemplate(e),disposable:ne.None}}renderElement(e,t,i,s){var o;if((o=i.disposable)===null||o===void 0||o.dispose(),!i.data)return;const r=this.modelProvider();if(r.isResolved(e))return this.renderer.renderElement(r.get(e),e,i.data,s);const a=new $n,l=r.resolve(e,a.token);i.disposable={dispose:()=>a.cancel()},this.renderer.renderPlaceholder(e,i.data),l.then(c=>this.renderer.renderElement(c,e,i.data,s))}disposeTemplate(e){e.disposable&&(e.disposable.dispose(),e.disposable=void 0),e.data&&(this.renderer.disposeTemplate(e.data),e.data=void 0)}}class Fze{constructor(e,t){this.modelProvider=e,this.accessibilityProvider=t}getWidgetAriaLabel(){return this.accessibilityProvider.getWidgetAriaLabel()}getAriaLabel(e){const t=this.modelProvider();return t.isResolved(e)?this.accessibilityProvider.getAriaLabel(t.get(e)):null}}function Bze(n,e){return{...e,accessibilityProvider:e.accessibilityProvider&&new Fze(n,e.accessibilityProvider)}}class Wze{constructor(e,t,i,s,o={}){const r=()=>this.model,a=s.map(l=>new Oze(l,r));this.list=new El(e,t,i,a,Bze(r,o))}updateOptions(e){this.list.updateOptions(e)}getHTMLElement(){return this.list.getHTMLElement()}get onDidFocus(){return this.list.onDidFocus}get widget(){return this.list}get onDidDispose(){return this.list.onDidDispose}get onMouseDblClick(){return Ae.map(this.list.onMouseDblClick,({element:e,index:t,browserEvent:i})=>({element:e===void 0?void 0:this._model.get(e),index:t,browserEvent:i}))}get onPointer(){return Ae.map(this.list.onPointer,({element:e,index:t,browserEvent:i})=>({element:e===void 0?void 0:this._model.get(e),index:t,browserEvent:i}))}get onDidChangeSelection(){return Ae.map(this.list.onDidChangeSelection,({elements:e,indexes:t,browserEvent:i})=>({elements:e.map(s=>this._model.get(s)),indexes:t,browserEvent:i}))}get model(){return this._model}set model(e){this._model=e,this.list.splice(0,this.list.length,Xr(e.length))}getFocus(){return this.list.getFocus()}getSelection(){return this.list.getSelection()}getSelectedElements(){return this.getSelection().map(e=>this.model.get(e))}style(e){this.list.style(e)}dispose(){this.list.dispose()}}var zw=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o};const Hze=!1;var MA;(function(n){n.North=\"north\",n.South=\"south\",n.East=\"east\",n.West=\"west\"})(MA||(MA={}));let Vze=4;const zze=new X;let $ze=300;const Uze=new X;class L${constructor(e){this.el=e,this.disposables=new be}get onPointerMove(){return this.disposables.add(new ei(gt(this.el),\"mousemove\")).event}get onPointerUp(){return this.disposables.add(new ei(gt(this.el),\"mouseup\")).event}dispose(){this.disposables.dispose()}}zw([gs],L$.prototype,\"onPointerMove\",null);zw([gs],L$.prototype,\"onPointerUp\",null);class k${get onPointerMove(){return this.disposables.add(new ei(this.el,fn.Change)).event}get onPointerUp(){return this.disposables.add(new ei(this.el,fn.End)).event}constructor(e){this.el=e,this.disposables=new be}dispose(){this.disposables.dispose()}}zw([gs],k$.prototype,\"onPointerMove\",null);zw([gs],k$.prototype,\"onPointerUp\",null);class PA{get onPointerMove(){return this.factory.onPointerMove}get onPointerUp(){return this.factory.onPointerUp}constructor(e){this.factory=e}dispose(){}}zw([gs],PA.prototype,\"onPointerMove\",null);zw([gs],PA.prototype,\"onPointerUp\",null);const MJ=\"pointer-events-disabled\";class Vo extends ne{get state(){return this._state}get orthogonalStartSash(){return this._orthogonalStartSash}get orthogonalEndSash(){return this._orthogonalEndSash}set state(e){this._state!==e&&(this.el.classList.toggle(\"disabled\",e===0),this.el.classList.toggle(\"minimum\",e===1),this.el.classList.toggle(\"maximum\",e===2),this._state=e,this.onDidEnablementChange.fire(e))}set orthogonalStartSash(e){if(this._orthogonalStartSash!==e){if(this.orthogonalStartDragHandleDisposables.clear(),this.orthogonalStartSashDisposables.clear(),e){const t=i=>{this.orthogonalStartDragHandleDisposables.clear(),i!==0&&(this._orthogonalStartDragHandle=we(this.el,ke(\".orthogonal-drag-handle.start\")),this.orthogonalStartDragHandleDisposables.add(dt(()=>this._orthogonalStartDragHandle.remove())),this.orthogonalStartDragHandleDisposables.add(new ei(this._orthogonalStartDragHandle,\"mouseenter\")).event(()=>Vo.onMouseEnter(e),void 0,this.orthogonalStartDragHandleDisposables),this.orthogonalStartDragHandleDisposables.add(new ei(this._orthogonalStartDragHandle,\"mouseleave\")).event(()=>Vo.onMouseLeave(e),void 0,this.orthogonalStartDragHandleDisposables))};this.orthogonalStartSashDisposables.add(e.onDidEnablementChange.event(t,this)),t(e.state)}this._orthogonalStartSash=e}}set orthogonalEndSash(e){if(this._orthogonalEndSash!==e){if(this.orthogonalEndDragHandleDisposables.clear(),this.orthogonalEndSashDisposables.clear(),e){const t=i=>{this.orthogonalEndDragHandleDisposables.clear(),i!==0&&(this._orthogonalEndDragHandle=we(this.el,ke(\".orthogonal-drag-handle.end\")),this.orthogonalEndDragHandleDisposables.add(dt(()=>this._orthogonalEndDragHandle.remove())),this.orthogonalEndDragHandleDisposables.add(new ei(this._orthogonalEndDragHandle,\"mouseenter\")).event(()=>Vo.onMouseEnter(e),void 0,this.orthogonalEndDragHandleDisposables),this.orthogonalEndDragHandleDisposables.add(new ei(this._orthogonalEndDragHandle,\"mouseleave\")).event(()=>Vo.onMouseLeave(e),void 0,this.orthogonalEndDragHandleDisposables))};this.orthogonalEndSashDisposables.add(e.onDidEnablementChange.event(t,this)),t(e.state)}this._orthogonalEndSash=e}}constructor(e,t,i){super(),this.hoverDelay=$ze,this.hoverDelayer=this._register(new sd(this.hoverDelay)),this._state=3,this.onDidEnablementChange=this._register(new X),this._onDidStart=this._register(new X),this._onDidChange=this._register(new X),this._onDidReset=this._register(new X),this._onDidEnd=this._register(new X),this.orthogonalStartSashDisposables=this._register(new be),this.orthogonalStartDragHandleDisposables=this._register(new be),this.orthogonalEndSashDisposables=this._register(new be),this.orthogonalEndDragHandleDisposables=this._register(new be),this.onDidStart=this._onDidStart.event,this.onDidChange=this._onDidChange.event,this.onDidReset=this._onDidReset.event,this.onDidEnd=this._onDidEnd.event,this.linkedSash=void 0,this.el=we(e,ke(\".monaco-sash\")),i.orthogonalEdge&&this.el.classList.add(`orthogonal-edge-${i.orthogonalEdge}`),Xt&&this.el.classList.add(\"mac\");const s=this._register(new ei(this.el,\"mousedown\")).event;this._register(s(u=>this.onPointerStart(u,new L$(e)),this));const o=this._register(new ei(this.el,\"dblclick\")).event;this._register(o(this.onPointerDoublePress,this));const r=this._register(new ei(this.el,\"mouseenter\")).event;this._register(r(()=>Vo.onMouseEnter(this)));const a=this._register(new ei(this.el,\"mouseleave\")).event;this._register(a(()=>Vo.onMouseLeave(this))),this._register(hn.addTarget(this.el));const l=this._register(new ei(this.el,fn.Start)).event;this._register(l(u=>this.onPointerStart(u,new k$(this.el)),this));const c=this._register(new ei(this.el,fn.Tap)).event;let d;this._register(c(u=>{if(d){clearTimeout(d),d=void 0,this.onPointerDoublePress(u);return}clearTimeout(d),d=setTimeout(()=>d=void 0,250)},this)),typeof i.size==\"number\"?(this.size=i.size,i.orientation===0?this.el.style.width=`${this.size}px`:this.el.style.height=`${this.size}px`):(this.size=Vze,this._register(zze.event(u=>{this.size=u,this.layout()}))),this._register(Uze.event(u=>this.hoverDelay=u)),this.layoutProvider=t,this.orthogonalStartSash=i.orthogonalStartSash,this.orthogonalEndSash=i.orthogonalEndSash,this.orientation=i.orientation||0,this.orientation===1?(this.el.classList.add(\"horizontal\"),this.el.classList.remove(\"vertical\")):(this.el.classList.remove(\"horizontal\"),this.el.classList.add(\"vertical\")),this.el.classList.toggle(\"debug\",Hze),this.layout()}onPointerStart(e,t){ii.stop(e);let i=!1;if(!e.__orthogonalSashEvent){const g=this.getOrthogonalSash(e);g&&(i=!0,e.__orthogonalSashEvent=!0,g.onPointerStart(e,new PA(t)))}if(this.linkedSash&&!e.__linkedSashEvent&&(e.__linkedSashEvent=!0,this.linkedSash.onPointerStart(e,new PA(t))),!this.state)return;const s=this.el.ownerDocument.getElementsByTagName(\"iframe\");for(const g of s)g.classList.add(MJ);const o=e.pageX,r=e.pageY,a=e.altKey,l={startX:o,currentX:o,startY:r,currentY:r,altKey:a};this.el.classList.add(\"active\"),this._onDidStart.fire(l);const c=yl(this.el),d=()=>{let g=\"\";i?g=\"all-scroll\":this.orientation===1?this.state===1?g=\"s-resize\":this.state===2?g=\"n-resize\":g=Xt?\"row-resize\":\"ns-resize\":this.state===1?g=\"e-resize\":this.state===2?g=\"w-resize\":g=Xt?\"col-resize\":\"ew-resize\",c.textContent=`* { cursor: ${g} !important; }`},u=new be;d(),i||this.onDidEnablementChange.event(d,null,u);const h=g=>{ii.stop(g,!1);const p={startX:o,currentX:g.pageX,startY:r,currentY:g.pageY,altKey:a};this._onDidChange.fire(p)},f=g=>{ii.stop(g,!1),this.el.removeChild(c),this.el.classList.remove(\"active\"),this._onDidEnd.fire(),u.dispose();for(const p of s)p.classList.remove(MJ)};t.onPointerMove(h,null,u),t.onPointerUp(f,null,u),u.add(t)}onPointerDoublePress(e){const t=this.getOrthogonalSash(e);t&&t._onDidReset.fire(),this.linkedSash&&this.linkedSash._onDidReset.fire(),this._onDidReset.fire()}static onMouseEnter(e,t=!1){e.el.classList.contains(\"active\")?(e.hoverDelayer.cancel(),e.el.classList.add(\"hover\")):e.hoverDelayer.trigger(()=>e.el.classList.add(\"hover\"),e.hoverDelay).then(void 0,()=>{}),!t&&e.linkedSash&&Vo.onMouseEnter(e.linkedSash,!0)}static onMouseLeave(e,t=!1){e.hoverDelayer.cancel(),e.el.classList.remove(\"hover\"),!t&&e.linkedSash&&Vo.onMouseLeave(e.linkedSash,!0)}clearSashHoverState(){Vo.onMouseLeave(this)}layout(){if(this.orientation===0){const e=this.layoutProvider;this.el.style.left=e.getVerticalSashLeft(this)-this.size/2+\"px\",e.getVerticalSashTop&&(this.el.style.top=e.getVerticalSashTop(this)+\"px\"),e.getVerticalSashHeight&&(this.el.style.height=e.getVerticalSashHeight(this)+\"px\")}else{const e=this.layoutProvider;this.el.style.top=e.getHorizontalSashTop(this)-this.size/2+\"px\",e.getHorizontalSashLeft&&(this.el.style.left=e.getHorizontalSashLeft(this)+\"px\"),e.getHorizontalSashWidth&&(this.el.style.width=e.getHorizontalSashWidth(this)+\"px\")}}getOrthogonalSash(e){var t;const i=(t=e.initialTarget)!==null&&t!==void 0?t:e.target;if(!(!i||!co(i))&&i.classList.contains(\"orthogonal-drag-handle\"))return i.classList.contains(\"start\")?this.orthogonalStartSash:this.orthogonalEndSash}dispose(){super.dispose(),this.el.remove()}}const jze={separatorBorder:le.transparent};class nue{set size(e){this._size=e}get size(){return this._size}get visible(){return typeof this._cachedVisibleSize>\"u\"}setVisible(e,t){var i,s;if(e!==this.visible){e?(this.size=Sr(this._cachedVisibleSize,this.viewMinimumSize,this.viewMaximumSize),this._cachedVisibleSize=void 0):(this._cachedVisibleSize=typeof t==\"number\"?t:this.size,this.size=0),this.container.classList.toggle(\"visible\",e);try{(s=(i=this.view).setVisible)===null||s===void 0||s.call(i,e)}catch(o){console.error(\"Splitview: Failed to set visible view\"),console.error(o)}}}get minimumSize(){return this.visible?this.view.minimumSize:0}get viewMinimumSize(){return this.view.minimumSize}get maximumSize(){return this.visible?this.view.maximumSize:0}get viewMaximumSize(){return this.view.maximumSize}get priority(){return this.view.priority}get proportionalLayout(){var e;return(e=this.view.proportionalLayout)!==null&&e!==void 0?e:!0}get snap(){return!!this.view.snap}set enabled(e){this.container.style.pointerEvents=e?\"\":\"none\"}constructor(e,t,i,s){this.container=e,this.view=t,this.disposable=s,this._cachedVisibleSize=void 0,typeof i==\"number\"?(this._size=i,this._cachedVisibleSize=void 0,e.classList.add(\"visible\")):(this._size=0,this._cachedVisibleSize=i.cachedVisibleSize)}layout(e,t){this.layoutContainer(e);try{this.view.layout(this.size,e,t)}catch(i){console.error(\"Splitview: Failed to layout view\"),console.error(i)}}dispose(){this.disposable.dispose()}}class Kze extends nue{layoutContainer(e){this.container.style.top=`${e}px`,this.container.style.height=`${this.size}px`}}class qze extends nue{layoutContainer(e){this.container.style.left=`${e}px`,this.container.style.width=`${this.size}px`}}var Df;(function(n){n[n.Idle=0]=\"Idle\",n[n.Busy=1]=\"Busy\"})(Df||(Df={}));var OA;(function(n){n.Distribute={type:\"distribute\"};function e(s){return{type:\"split\",index:s}}n.Split=e;function t(s){return{type:\"auto\",index:s}}n.Auto=t;function i(s){return{type:\"invisible\",cachedVisibleSize:s}}n.Invisible=i})(OA||(OA={}));class sue extends ne{get orthogonalStartSash(){return this._orthogonalStartSash}get orthogonalEndSash(){return this._orthogonalEndSash}get startSnappingEnabled(){return this._startSnappingEnabled}get endSnappingEnabled(){return this._endSnappingEnabled}set orthogonalStartSash(e){for(const t of this.sashItems)t.sash.orthogonalStartSash=e;this._orthogonalStartSash=e}set orthogonalEndSash(e){for(const t of this.sashItems)t.sash.orthogonalEndSash=e;this._orthogonalEndSash=e}set startSnappingEnabled(e){this._startSnappingEnabled!==e&&(this._startSnappingEnabled=e,this.updateSashEnablement())}set endSnappingEnabled(e){this._endSnappingEnabled!==e&&(this._endSnappingEnabled=e,this.updateSashEnablement())}constructor(e,t={}){var i,s,o,r,a;super(),this.size=0,this._contentSize=0,this.proportions=void 0,this.viewItems=[],this.sashItems=[],this.state=Df.Idle,this._onDidSashChange=this._register(new X),this._onDidSashReset=this._register(new X),this._startSnappingEnabled=!0,this._endSnappingEnabled=!0,this.onDidSashChange=this._onDidSashChange.event,this.onDidSashReset=this._onDidSashReset.event,this.orientation=(i=t.orientation)!==null&&i!==void 0?i:0,this.inverseAltBehavior=(s=t.inverseAltBehavior)!==null&&s!==void 0?s:!1,this.proportionalLayout=(o=t.proportionalLayout)!==null&&o!==void 0?o:!0,this.getSashOrthogonalSize=t.getSashOrthogonalSize,this.el=document.createElement(\"div\"),this.el.classList.add(\"monaco-split-view2\"),this.el.classList.add(this.orientation===0?\"vertical\":\"horizontal\"),e.appendChild(this.el),this.sashContainer=we(this.el,ke(\".sash-container\")),this.viewContainer=ke(\".split-view-container\"),this.scrollable=this._register(new Ww({forceIntegerValues:!0,smoothScrollDuration:125,scheduleAtNextAnimationFrame:c=>Oa(gt(this.el),c)})),this.scrollableElement=this._register(new MM(this.viewContainer,{vertical:this.orientation===0?(r=t.scrollbarVisibility)!==null&&r!==void 0?r:1:2,horizontal:this.orientation===1?(a=t.scrollbarVisibility)!==null&&a!==void 0?a:1:2},this.scrollable));const l=this._register(new ei(this.viewContainer,\"scroll\")).event;this._register(l(c=>{const d=this.scrollableElement.getScrollPosition(),u=Math.abs(this.viewContainer.scrollLeft-d.scrollLeft)<=1?void 0:this.viewContainer.scrollLeft,h=Math.abs(this.viewContainer.scrollTop-d.scrollTop)<=1?void 0:this.viewContainer.scrollTop;(u!==void 0||h!==void 0)&&this.scrollableElement.setScrollPosition({scrollLeft:u,scrollTop:h})})),this.onDidScroll=this.scrollableElement.onScroll,this._register(this.onDidScroll(c=>{c.scrollTopChanged&&(this.viewContainer.scrollTop=c.scrollTop),c.scrollLeftChanged&&(this.viewContainer.scrollLeft=c.scrollLeft)})),we(this.el,this.scrollableElement.getDomNode()),this.style(t.styles||jze),t.descriptor&&(this.size=t.descriptor.size,t.descriptor.views.forEach((c,d)=>{const u=na(c.visible)||c.visible?c.size:{type:\"invisible\",cachedVisibleSize:c.size},h=c.view;this.doAddView(h,u,d,!0)}),this._contentSize=this.viewItems.reduce((c,d)=>c+d.size,0),this.saveProportions())}style(e){e.separatorBorder.isTransparent()?(this.el.classList.remove(\"separator-border\"),this.el.style.removeProperty(\"--separator-border\")):(this.el.classList.add(\"separator-border\"),this.el.style.setProperty(\"--separator-border\",e.separatorBorder.toString()))}addView(e,t,i=this.viewItems.length,s){this.doAddView(e,t,i,s)}layout(e,t){const i=Math.max(this.size,this._contentSize);if(this.size=e,this.layoutContext=t,this.proportions){let s=0;for(let o=0;o<this.viewItems.length;o++){const r=this.viewItems[o],a=this.proportions[o];typeof a==\"number\"?s+=a:e-=r.size}for(let o=0;o<this.viewItems.length;o++){const r=this.viewItems[o],a=this.proportions[o];typeof a==\"number\"&&s>0&&(r.size=Sr(Math.round(a*e/s),r.minimumSize,r.maximumSize))}}else{const s=Xr(this.viewItems.length),o=s.filter(a=>this.viewItems[a].priority===1),r=s.filter(a=>this.viewItems[a].priority===2);this.resize(this.viewItems.length-1,e-i,void 0,o,r)}this.distributeEmptySpace(),this.layoutViews()}saveProportions(){this.proportionalLayout&&this._contentSize>0&&(this.proportions=this.viewItems.map(e=>e.proportionalLayout&&e.visible?e.size/this._contentSize:void 0))}onSashStart({sash:e,start:t,alt:i}){for(const a of this.viewItems)a.enabled=!1;const s=this.sashItems.findIndex(a=>a.sash===e),o=Jc(ce(this.el.ownerDocument.body,\"keydown\",a=>r(this.sashDragState.current,a.altKey)),ce(this.el.ownerDocument.body,\"keyup\",()=>r(this.sashDragState.current,!1))),r=(a,l)=>{const c=this.viewItems.map(g=>g.size);let d=Number.NEGATIVE_INFINITY,u=Number.POSITIVE_INFINITY;if(this.inverseAltBehavior&&(l=!l),l)if(s===this.sashItems.length-1){const p=this.viewItems[s];d=(p.minimumSize-p.size)/2,u=(p.maximumSize-p.size)/2}else{const p=this.viewItems[s+1];d=(p.size-p.maximumSize)/2,u=(p.size-p.minimumSize)/2}let h,f;if(!l){const g=Xr(s,-1),p=Xr(s+1,this.viewItems.length),_=g.reduce((I,N)=>I+(this.viewItems[N].minimumSize-c[N]),0),b=g.reduce((I,N)=>I+(this.viewItems[N].viewMaximumSize-c[N]),0),w=p.length===0?Number.POSITIVE_INFINITY:p.reduce((I,N)=>I+(c[N]-this.viewItems[N].minimumSize),0),y=p.length===0?Number.NEGATIVE_INFINITY:p.reduce((I,N)=>I+(c[N]-this.viewItems[N].viewMaximumSize),0),S=Math.max(_,y),x=Math.min(w,b),k=this.findFirstSnapIndex(g),D=this.findFirstSnapIndex(p);if(typeof k==\"number\"){const I=this.viewItems[k],N=Math.floor(I.viewMinimumSize/2);h={index:k,limitDelta:I.visible?S-N:S+N,size:I.size}}if(typeof D==\"number\"){const I=this.viewItems[D],N=Math.floor(I.viewMinimumSize/2);f={index:D,limitDelta:I.visible?x+N:x-N,size:I.size}}}this.sashDragState={start:a,current:a,index:s,sizes:c,minDelta:d,maxDelta:u,alt:l,snapBefore:h,snapAfter:f,disposable:o}};r(t,i)}onSashChange({current:e}){const{index:t,start:i,sizes:s,alt:o,minDelta:r,maxDelta:a,snapBefore:l,snapAfter:c}=this.sashDragState;this.sashDragState.current=e;const d=e-i,u=this.resize(t,d,s,void 0,void 0,r,a,l,c);if(o){const h=t===this.sashItems.length-1,f=this.viewItems.map(y=>y.size),g=h?t:t+1,p=this.viewItems[g],_=p.size-p.maximumSize,b=p.size-p.minimumSize,w=h?t-1:t+1;this.resize(w,-u,f,void 0,void 0,_,b)}this.distributeEmptySpace(),this.layoutViews()}onSashEnd(e){this._onDidSashChange.fire(e),this.sashDragState.disposable.dispose(),this.saveProportions();for(const t of this.viewItems)t.enabled=!0}onViewChange(e,t){const i=this.viewItems.indexOf(e);i<0||i>=this.viewItems.length||(t=typeof t==\"number\"?t:e.size,t=Sr(t,e.minimumSize,e.maximumSize),this.inverseAltBehavior&&i>0?(this.resize(i-1,Math.floor((e.size-t)/2)),this.distributeEmptySpace(),this.layoutViews()):(e.size=t,this.relayout([i],void 0)))}resizeView(e,t){if(!(e<0||e>=this.viewItems.length)){if(this.state!==Df.Idle)throw new Error(\"Cant modify splitview\");this.state=Df.Busy;try{const i=Xr(this.viewItems.length).filter(a=>a!==e),s=[...i.filter(a=>this.viewItems[a].priority===1),e],o=i.filter(a=>this.viewItems[a].priority===2),r=this.viewItems[e];t=Math.round(t),t=Sr(t,r.minimumSize,Math.min(r.maximumSize,this.size)),r.size=t,this.relayout(s,o)}finally{this.state=Df.Idle}}}distributeViewSizes(){const e=[];let t=0;for(const a of this.viewItems)a.maximumSize-a.minimumSize>0&&(e.push(a),t+=a.size);const i=Math.floor(t/e.length);for(const a of e)a.size=Sr(i,a.minimumSize,a.maximumSize);const s=Xr(this.viewItems.length),o=s.filter(a=>this.viewItems[a].priority===1),r=s.filter(a=>this.viewItems[a].priority===2);this.relayout(o,r)}getViewSize(e){return e<0||e>=this.viewItems.length?-1:this.viewItems[e].size}doAddView(e,t,i=this.viewItems.length,s){if(this.state!==Df.Idle)throw new Error(\"Cant modify splitview\");this.state=Df.Busy;try{const o=ke(\".split-view-view\");i===this.viewItems.length?this.viewContainer.appendChild(o):this.viewContainer.insertBefore(o,this.viewContainer.children.item(i));const r=e.onDidChange(h=>this.onViewChange(d,h)),a=dt(()=>this.viewContainer.removeChild(o)),l=Jc(r,a);let c;typeof t==\"number\"?c=t:(t.type===\"auto\"&&(this.areViewsDistributed()?t={type:\"distribute\"}:t={type:\"split\",index:t.index}),t.type===\"split\"?c=this.getViewSize(t.index)/2:t.type===\"invisible\"?c={cachedVisibleSize:t.cachedVisibleSize}:c=e.minimumSize);const d=this.orientation===0?new Kze(o,e,c,l):new qze(o,e,c,l);if(this.viewItems.splice(i,0,d),this.viewItems.length>1){const h={orthogonalStartSash:this.orthogonalStartSash,orthogonalEndSash:this.orthogonalEndSash},f=this.orientation===0?new Vo(this.sashContainer,{getHorizontalSashTop:I=>this.getSashPosition(I),getHorizontalSashWidth:this.getSashOrthogonalSize},{...h,orientation:1}):new Vo(this.sashContainer,{getVerticalSashLeft:I=>this.getSashPosition(I),getVerticalSashHeight:this.getSashOrthogonalSize},{...h,orientation:0}),g=this.orientation===0?I=>({sash:f,start:I.startY,current:I.currentY,alt:I.altKey}):I=>({sash:f,start:I.startX,current:I.currentX,alt:I.altKey}),_=Ae.map(f.onDidStart,g)(this.onSashStart,this),w=Ae.map(f.onDidChange,g)(this.onSashChange,this),S=Ae.map(f.onDidEnd,()=>this.sashItems.findIndex(I=>I.sash===f))(this.onSashEnd,this),x=f.onDidReset(()=>{const I=this.sashItems.findIndex(z=>z.sash===f),N=Xr(I,-1),P=Xr(I+1,this.viewItems.length),O=this.findFirstSnapIndex(N),M=this.findFirstSnapIndex(P);typeof O==\"number\"&&!this.viewItems[O].visible||typeof M==\"number\"&&!this.viewItems[M].visible||this._onDidSashReset.fire(I)}),k=Jc(_,w,S,x,f),D={sash:f,disposable:k};this.sashItems.splice(i-1,0,D)}o.appendChild(e.element);let u;typeof t!=\"number\"&&t.type===\"split\"&&(u=[t.index]),s||this.relayout([i],u),!s&&typeof t!=\"number\"&&t.type===\"distribute\"&&this.distributeViewSizes()}finally{this.state=Df.Idle}}relayout(e,t){const i=this.viewItems.reduce((s,o)=>s+o.size,0);this.resize(this.viewItems.length-1,this.size-i,void 0,e,t),this.distributeEmptySpace(),this.layoutViews(),this.saveProportions()}resize(e,t,i=this.viewItems.map(d=>d.size),s,o,r=Number.NEGATIVE_INFINITY,a=Number.POSITIVE_INFINITY,l,c){if(e<0||e>=this.viewItems.length)return 0;const d=Xr(e,-1),u=Xr(e+1,this.viewItems.length);if(o)for(const D of o)vF(d,D),vF(u,D);if(s)for(const D of s)bE(d,D),bE(u,D);const h=d.map(D=>this.viewItems[D]),f=d.map(D=>i[D]),g=u.map(D=>this.viewItems[D]),p=u.map(D=>i[D]),_=d.reduce((D,I)=>D+(this.viewItems[I].minimumSize-i[I]),0),b=d.reduce((D,I)=>D+(this.viewItems[I].maximumSize-i[I]),0),w=u.length===0?Number.POSITIVE_INFINITY:u.reduce((D,I)=>D+(i[I]-this.viewItems[I].minimumSize),0),y=u.length===0?Number.NEGATIVE_INFINITY:u.reduce((D,I)=>D+(i[I]-this.viewItems[I].maximumSize),0),S=Math.max(_,y,r),x=Math.min(w,b,a);let k=!1;if(l){const D=this.viewItems[l.index],I=t>=l.limitDelta;k=I!==D.visible,D.setVisible(I,l.size)}if(!k&&c){const D=this.viewItems[c.index],I=t<c.limitDelta;k=I!==D.visible,D.setVisible(I,c.size)}if(k)return this.resize(e,t,i,s,o,r,a);t=Sr(t,S,x);for(let D=0,I=t;D<h.length;D++){const N=h[D],P=Sr(f[D]+I,N.minimumSize,N.maximumSize),O=P-f[D];I-=O,N.size=P}for(let D=0,I=t;D<g.length;D++){const N=g[D],P=Sr(p[D]-I,N.minimumSize,N.maximumSize),O=P-p[D];I+=O,N.size=P}return t}distributeEmptySpace(e){const t=this.viewItems.reduce((a,l)=>a+l.size,0);let i=this.size-t;const s=Xr(this.viewItems.length-1,-1),o=s.filter(a=>this.viewItems[a].priority===1),r=s.filter(a=>this.viewItems[a].priority===2);for(const a of r)vF(s,a);for(const a of o)bE(s,a);typeof e==\"number\"&&bE(s,e);for(let a=0;i!==0&&a<s.length;a++){const l=this.viewItems[s[a]],c=Sr(l.size+i,l.minimumSize,l.maximumSize),d=c-l.size;i-=d,l.size=c}}layoutViews(){this._contentSize=this.viewItems.reduce((t,i)=>t+i.size,0);let e=0;for(const t of this.viewItems)t.layout(e,this.layoutContext),e+=t.size;this.sashItems.forEach(t=>t.sash.layout()),this.updateSashEnablement(),this.updateScrollableElement()}updateScrollableElement(){this.orientation===0?this.scrollableElement.setScrollDimensions({height:this.size,scrollHeight:this._contentSize}):this.scrollableElement.setScrollDimensions({width:this.size,scrollWidth:this._contentSize})}updateSashEnablement(){let e=!1;const t=this.viewItems.map(l=>e=l.size-l.minimumSize>0||e);e=!1;const i=this.viewItems.map(l=>e=l.maximumSize-l.size>0||e),s=[...this.viewItems].reverse();e=!1;const o=s.map(l=>e=l.size-l.minimumSize>0||e).reverse();e=!1;const r=s.map(l=>e=l.maximumSize-l.size>0||e).reverse();let a=0;for(let l=0;l<this.sashItems.length;l++){const{sash:c}=this.sashItems[l],d=this.viewItems[l];a+=d.size;const u=!(t[l]&&r[l+1]),h=!(i[l]&&o[l+1]);if(u&&h){const f=Xr(l,-1),g=Xr(l+1,this.viewItems.length),p=this.findFirstSnapIndex(f),_=this.findFirstSnapIndex(g),b=typeof p==\"number\"&&!this.viewItems[p].visible,w=typeof _==\"number\"&&!this.viewItems[_].visible;b&&o[l]&&(a>0||this.startSnappingEnabled)?c.state=1:w&&t[l]&&(a<this._contentSize||this.endSnappingEnabled)?c.state=2:c.state=0}else u&&!h?c.state=1:!u&&h?c.state=2:c.state=3}}getSashPosition(e){let t=0;for(let i=0;i<this.sashItems.length;i++)if(t+=this.viewItems[i].size,this.sashItems[i].sash===e)return t;return 0}findFirstSnapIndex(e){for(const t of e){const i=this.viewItems[t];if(i.visible&&i.snap)return t}for(const t of e){const i=this.viewItems[t];if(i.visible&&i.maximumSize-i.minimumSize>0)return;if(!i.visible&&i.snap)return t}}areViewsDistributed(){let e,t;for(const i of this.viewItems)if(e=e===void 0?i.size:Math.min(e,i.size),t=t===void 0?i.size:Math.max(t,i.size),t-e>2)return!1;return!0}dispose(){var e;(e=this.sashDragState)===null||e===void 0||e.disposable.dispose(),tn(this.viewItems),this.viewItems=[],this.sashItems.forEach(t=>t.disposable.dispose()),this.sashItems=[],super.dispose()}}class OD{constructor(e,t,i){this.columns=e,this.getColumnSize=i,this.templateId=OD.TemplateId,this.renderedTemplates=new Set;const s=new Map(t.map(o=>[o.templateId,o]));this.renderers=[];for(const o of e){const r=s.get(o.templateId);if(!r)throw new Error(`Table cell renderer for template id ${o.templateId} not found.`);this.renderers.push(r)}}renderTemplate(e){const t=we(e,ke(\".monaco-table-tr\")),i=[],s=[];for(let r=0;r<this.columns.length;r++){const a=this.renderers[r],l=we(t,ke(\".monaco-table-td\",{\"data-col-index\":r}));l.style.width=`${this.getColumnSize(r)}px`,i.push(l),s.push(a.renderTemplate(l))}const o={container:e,cellContainers:i,cellTemplateData:s};return this.renderedTemplates.add(o),o}renderElement(e,t,i,s){for(let o=0;o<this.columns.length;o++){const a=this.columns[o].project(e);this.renderers[o].renderElement(a,t,i.cellTemplateData[o],s)}}disposeElement(e,t,i,s){for(let o=0;o<this.columns.length;o++){const r=this.renderers[o];if(r.disposeElement){const l=this.columns[o].project(e);r.disposeElement(l,t,i.cellTemplateData[o],s)}}}disposeTemplate(e){for(let t=0;t<this.columns.length;t++)this.renderers[t].disposeTemplate(e.cellTemplateData[t]);wo(e.container),this.renderedTemplates.delete(e)}layoutColumn(e,t){for(const{cellContainers:i}of this.renderedTemplates)i[e].style.width=`${t}px`}}OD.TemplateId=\"row\";function Gze(n){return{getHeight(e){return n.getHeight(e)},getTemplateId(){return OD.TemplateId}}}class Zze extends ne{get minimumSize(){var e;return(e=this.column.minimumWidth)!==null&&e!==void 0?e:120}get maximumSize(){var e;return(e=this.column.maximumWidth)!==null&&e!==void 0?e:Number.POSITIVE_INFINITY}get onDidChange(){var e;return(e=this.column.onDidChangeWidthConstraints)!==null&&e!==void 0?e:Ae.None}constructor(e,t){super(),this.column=e,this.index=t,this._onDidLayout=new X,this.onDidLayout=this._onDidLayout.event,this.element=ke(\".monaco-table-th\",{\"data-col-index\":t},e.label),e.tooltip&&this._register(bu().setupUpdatableHover(Ur(\"mouse\"),this.element,e.tooltip))}layout(e){this._onDidLayout.fire([this.index,e])}}class cP{get onDidChangeFocus(){return this.list.onDidChangeFocus}get onDidChangeSelection(){return this.list.onDidChangeSelection}get onDidScroll(){return this.list.onDidScroll}get onMouseDblClick(){return this.list.onMouseDblClick}get onPointer(){return this.list.onPointer}get onDidFocus(){return this.list.onDidFocus}get scrollTop(){return this.list.scrollTop}set scrollTop(e){this.list.scrollTop=e}get scrollHeight(){return this.list.scrollHeight}get renderHeight(){return this.list.renderHeight}get onDidDispose(){return this.list.onDidDispose}constructor(e,t,i,s,o,r){this.virtualDelegate=i,this.domId=`table_id_${++cP.InstanceCount}`,this.disposables=new be,this.cachedWidth=0,this.cachedHeight=0,this.domNode=we(t,ke(`.monaco-table.${this.domId}`));const a=s.map((d,u)=>this.disposables.add(new Zze(d,u))),l={size:a.reduce((d,u)=>d+u.column.weight,0),views:a.map(d=>({size:d.column.weight,view:d}))};this.splitview=this.disposables.add(new sue(this.domNode,{orientation:1,scrollbarVisibility:2,getSashOrthogonalSize:()=>this.cachedHeight,descriptor:l})),this.splitview.el.style.height=`${i.headerRowHeight}px`,this.splitview.el.style.lineHeight=`${i.headerRowHeight}px`;const c=new OD(s,o,d=>this.splitview.getViewSize(d));this.list=this.disposables.add(new El(e,this.domNode,Gze(i),[c],r)),Ae.any(...a.map(d=>d.onDidLayout))(([d,u])=>c.layoutColumn(d,u),null,this.disposables),this.splitview.onDidSashReset(d=>{const u=s.reduce((f,g)=>f+g.weight,0),h=s[d].weight/u*this.cachedWidth;this.splitview.resizeView(d,h)},null,this.disposables),this.styleElement=yl(this.domNode),this.style(IVe)}updateOptions(e){this.list.updateOptions(e)}splice(e,t,i=[]){this.list.splice(e,t,i)}getHTMLElement(){return this.domNode}style(e){const t=[];t.push(`.monaco-table.${this.domId} > .monaco-split-view2 .monaco-sash.vertical::before {\n\t\t\ttop: ${this.virtualDelegate.headerRowHeight+1}px;\n\t\t\theight: calc(100% - ${this.virtualDelegate.headerRowHeight}px);\n\t\t}`),this.styleElement.textContent=t.join(`\n`),this.list.style(e)}getSelectedElements(){return this.list.getSelectedElements()}getSelection(){return this.list.getSelection()}getFocus(){return this.list.getFocus()}dispose(){this.disposables.dispose()}}cP.InstanceCount=0;var sl;(function(n){n[n.Expanded=0]=\"Expanded\",n[n.Collapsed=1]=\"Collapsed\",n[n.PreserveOrExpanded=2]=\"PreserveOrExpanded\",n[n.PreserveOrCollapsed=3]=\"PreserveOrCollapsed\"})(sl||(sl={}));var Tv;(function(n){n[n.Unknown=0]=\"Unknown\",n[n.Twistie=1]=\"Twistie\",n[n.Element=2]=\"Element\",n[n.Filter=3]=\"Filter\"})(Tv||(Tv={}));class dl extends Error{constructor(e,t){super(`TreeError [${e}] ${t}`)}}class D${constructor(e){this.fn=e,this._map=new WeakMap}map(e){let t=this._map.get(e);return t||(t=this.fn(e),this._map.set(e,t)),t}}function I$(n){return typeof n==\"object\"&&\"visibility\"in n&&\"data\"in n}function YL(n){switch(n){case!0:return 1;case!1:return 0;default:return n}}function H5(n){return typeof n.collapsible==\"boolean\"}class Yze{constructor(e,t,i,s={}){var o;this.user=e,this.list=t,this.rootRef=[],this.eventBufferer=new sM,this._onDidChangeCollapseState=new X,this.onDidChangeCollapseState=this.eventBufferer.wrapEvent(this._onDidChangeCollapseState.event),this._onDidChangeRenderNodeCount=new X,this.onDidChangeRenderNodeCount=this.eventBufferer.wrapEvent(this._onDidChangeRenderNodeCount.event),this._onDidSplice=new X,this.onDidSplice=this._onDidSplice.event,this.refilterDelayer=new sd(Dae),this.collapseByDefault=typeof s.collapseByDefault>\"u\"?!1:s.collapseByDefault,this.allowNonCollapsibleParents=(o=s.allowNonCollapsibleParents)!==null&&o!==void 0?o:!1,this.filter=s.filter,this.autoExpandSingleChildren=typeof s.autoExpandSingleChildren>\"u\"?!1:s.autoExpandSingleChildren,this.root={parent:void 0,element:i,children:[],depth:0,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:!1,collapsed:!1,renderNodeCount:0,visibility:1,visible:!0,filterData:void 0}}splice(e,t,i=oi.empty(),s={}){if(e.length===0)throw new dl(this.user,\"Invalid tree location\");s.diffIdentityProvider?this.spliceSmart(s.diffIdentityProvider,e,t,i,s):this.spliceSimple(e,t,i,s)}spliceSmart(e,t,i,s,o,r){var a;s===void 0&&(s=oi.empty()),r===void 0&&(r=(a=o.diffDepth)!==null&&a!==void 0?a:0);const{parentNode:l}=this.getParentNodeWithListIndex(t);if(!l.lastDiffIds)return this.spliceSimple(t,i,s,o);const c=[...s],d=t[t.length-1],u=new Ju({getElements:()=>l.lastDiffIds},{getElements:()=>[...l.children.slice(0,d),...c,...l.children.slice(d+i)].map(_=>e.getId(_.element).toString())}).ComputeDiff(!1);if(u.quitEarly)return l.lastDiffIds=void 0,this.spliceSimple(t,i,c,o);const h=t.slice(0,-1),f=(_,b,w)=>{if(r>0)for(let y=0;y<w;y++)_--,b--,this.spliceSmart(e,[...h,_,0],Number.MAX_SAFE_INTEGER,c[b].children,o,r-1)};let g=Math.min(l.children.length,d+i),p=c.length;for(const _ of u.changes.sort((b,w)=>w.originalStart-b.originalStart))f(g,p,g-(_.originalStart+_.originalLength)),g=_.originalStart,p=_.modifiedStart-d,this.spliceSimple([...h,g],_.originalLength,oi.slice(c,p,p+_.modifiedLength),o);f(g,p,g)}spliceSimple(e,t,i=oi.empty(),{onDidCreateNode:s,onDidDeleteNode:o,diffIdentityProvider:r}){const{parentNode:a,listIndex:l,revealed:c,visible:d}=this.getParentNodeWithListIndex(e),u=[],h=oi.map(i,x=>this.createTreeNode(x,a,a.visible?1:0,c,u,s)),f=e[e.length-1];let g=0;for(let x=f;x>=0&&x<a.children.length;x--){const k=a.children[x];if(k.visible){g=k.visibleChildIndex;break}}const p=[];let _=0,b=0;for(const x of h)p.push(x),b+=x.renderNodeCount,x.visible&&(x.visibleChildIndex=g+_++);const w=YZ(a.children,f,t,p);r?a.lastDiffIds?YZ(a.lastDiffIds,f,t,p.map(x=>r.getId(x.element).toString())):a.lastDiffIds=a.children.map(x=>r.getId(x.element).toString()):a.lastDiffIds=void 0;let y=0;for(const x of w)x.visible&&y++;if(y!==0)for(let x=f+p.length;x<a.children.length;x++){const k=a.children[x];k.visible&&(k.visibleChildIndex-=y)}if(a.visibleChildrenCount+=_-y,c&&d){const x=w.reduce((k,D)=>k+(D.visible?D.renderNodeCount:0),0);this._updateAncestorsRenderNodeCount(a,b-x),this.list.splice(l,x,u)}if(w.length>0&&o){const x=k=>{o(k),k.children.forEach(x)};w.forEach(x)}this._onDidSplice.fire({insertedNodes:p,deletedNodes:w});let S=a;for(;S;){if(S.visibility===2){this.refilterDelayer.trigger(()=>this.refilter());break}S=S.parent}}rerender(e){if(e.length===0)throw new dl(this.user,\"Invalid tree location\");const{node:t,listIndex:i,revealed:s}=this.getTreeNodeWithListIndex(e);t.visible&&s&&this.list.splice(i,1,[t])}has(e){return this.hasTreeNode(e)}getListIndex(e){const{listIndex:t,visible:i,revealed:s}=this.getTreeNodeWithListIndex(e);return i&&s?t:-1}getListRenderCount(e){return this.getTreeNode(e).renderNodeCount}isCollapsible(e){return this.getTreeNode(e).collapsible}setCollapsible(e,t){const i=this.getTreeNode(e);typeof t>\"u\"&&(t=!i.collapsible);const s={collapsible:t};return this.eventBufferer.bufferEvents(()=>this._setCollapseState(e,s))}isCollapsed(e){return this.getTreeNode(e).collapsed}setCollapsed(e,t,i){const s=this.getTreeNode(e);typeof t>\"u\"&&(t=!s.collapsed);const o={collapsed:t,recursive:i||!1};return this.eventBufferer.bufferEvents(()=>this._setCollapseState(e,o))}_setCollapseState(e,t){const{node:i,listIndex:s,revealed:o}=this.getTreeNodeWithListIndex(e),r=this._setListNodeCollapseState(i,s,o,t);if(i!==this.root&&this.autoExpandSingleChildren&&r&&!H5(t)&&i.collapsible&&!i.collapsed&&!t.recursive){let a=-1;for(let l=0;l<i.children.length;l++)if(i.children[l].visible)if(a>-1){a=-1;break}else a=l;a>-1&&this._setCollapseState([...e,a],t)}return r}_setListNodeCollapseState(e,t,i,s){const o=this._setNodeCollapseState(e,s,!1);if(!i||!e.visible||!o)return o;const r=e.renderNodeCount,a=this.updateNodeAfterCollapseChange(e),l=r-(t===-1?0:1);return this.list.splice(t+1,l,a.slice(1)),o}_setNodeCollapseState(e,t,i){let s;if(e===this.root?s=!1:(H5(t)?(s=e.collapsible!==t.collapsible,e.collapsible=t.collapsible):e.collapsible?(s=e.collapsed!==t.collapsed,e.collapsed=t.collapsed):s=!1,s&&this._onDidChangeCollapseState.fire({node:e,deep:i})),!H5(t)&&t.recursive)for(const o of e.children)s=this._setNodeCollapseState(o,t,!0)||s;return s}expandTo(e){this.eventBufferer.bufferEvents(()=>{let t=this.getTreeNode(e);for(;t.parent;)t=t.parent,e=e.slice(0,e.length-1),t.collapsed&&this._setCollapseState(e,{collapsed:!1,recursive:!1})})}refilter(){const e=this.root.renderNodeCount,t=this.updateNodeAfterFilterChange(this.root);this.list.splice(0,e,t),this.refilterDelayer.cancel()}createTreeNode(e,t,i,s,o,r){const a={parent:t,element:e.element,children:[],depth:t.depth+1,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:typeof e.collapsible==\"boolean\"?e.collapsible:typeof e.collapsed<\"u\",collapsed:typeof e.collapsed>\"u\"?this.collapseByDefault:e.collapsed,renderNodeCount:1,visibility:1,visible:!0,filterData:void 0},l=this._filterNode(a,i);a.visibility=l,s&&o.push(a);const c=e.children||oi.empty(),d=s&&l!==0&&!a.collapsed;let u=0,h=1;for(const f of c){const g=this.createTreeNode(f,a,l,d,o,r);a.children.push(g),h+=g.renderNodeCount,g.visible&&(g.visibleChildIndex=u++)}return this.allowNonCollapsibleParents||(a.collapsible=a.collapsible||a.children.length>0),a.visibleChildrenCount=u,a.visible=l===2?u>0:l===1,a.visible?a.collapsed||(a.renderNodeCount=h):(a.renderNodeCount=0,s&&o.pop()),r==null||r(a),a}updateNodeAfterCollapseChange(e){const t=e.renderNodeCount,i=[];return this._updateNodeAfterCollapseChange(e,i),this._updateAncestorsRenderNodeCount(e.parent,i.length-t),i}_updateNodeAfterCollapseChange(e,t){if(e.visible===!1)return 0;if(t.push(e),e.renderNodeCount=1,!e.collapsed)for(const i of e.children)e.renderNodeCount+=this._updateNodeAfterCollapseChange(i,t);return this._onDidChangeRenderNodeCount.fire(e),e.renderNodeCount}updateNodeAfterFilterChange(e){const t=e.renderNodeCount,i=[];return this._updateNodeAfterFilterChange(e,e.visible?1:0,i),this._updateAncestorsRenderNodeCount(e.parent,i.length-t),i}_updateNodeAfterFilterChange(e,t,i,s=!0){let o;if(e!==this.root){if(o=this._filterNode(e,t),o===0)return e.visible=!1,e.renderNodeCount=0,!1;s&&i.push(e)}const r=i.length;e.renderNodeCount=e===this.root?0:1;let a=!1;if(!e.collapsed||o!==0){let l=0;for(const c of e.children)a=this._updateNodeAfterFilterChange(c,o,i,s&&!e.collapsed)||a,c.visible&&(c.visibleChildIndex=l++);e.visibleChildrenCount=l}else e.visibleChildrenCount=0;return e!==this.root&&(e.visible=o===2?a:o===1,e.visibility=o),e.visible?e.collapsed||(e.renderNodeCount+=i.length-r):(e.renderNodeCount=0,s&&i.pop()),this._onDidChangeRenderNodeCount.fire(e),e.visible}_updateAncestorsRenderNodeCount(e,t){if(t!==0)for(;e;)e.renderNodeCount+=t,this._onDidChangeRenderNodeCount.fire(e),e=e.parent}_filterNode(e,t){const i=this.filter?this.filter.filter(e.element,t):1;return typeof i==\"boolean\"?(e.filterData=void 0,i?1:0):I$(i)?(e.filterData=i.data,YL(i.visibility)):(e.filterData=void 0,YL(i))}hasTreeNode(e,t=this.root){if(!e||e.length===0)return!0;const[i,...s]=e;return i<0||i>t.children.length?!1:this.hasTreeNode(s,t.children[i])}getTreeNode(e,t=this.root){if(!e||e.length===0)return t;const[i,...s]=e;if(i<0||i>t.children.length)throw new dl(this.user,\"Invalid tree location\");return this.getTreeNode(s,t.children[i])}getTreeNodeWithListIndex(e){if(e.length===0)return{node:this.root,listIndex:-1,revealed:!0,visible:!1};const{parentNode:t,listIndex:i,revealed:s,visible:o}=this.getParentNodeWithListIndex(e),r=e[e.length-1];if(r<0||r>t.children.length)throw new dl(this.user,\"Invalid tree location\");const a=t.children[r];return{node:a,listIndex:i,revealed:s,visible:o&&a.visible}}getParentNodeWithListIndex(e,t=this.root,i=0,s=!0,o=!0){const[r,...a]=e;if(r<0||r>t.children.length)throw new dl(this.user,\"Invalid tree location\");for(let l=0;l<r;l++)i+=t.children[l].renderNodeCount;return s=s&&!t.collapsed,o=o&&t.visible,a.length===0?{parentNode:t,listIndex:i,revealed:s,visible:o}:this.getParentNodeWithListIndex(a,t.children[r],i+1,s,o)}getNode(e=[]){return this.getTreeNode(e)}getNodeLocation(e){const t=[];let i=e;for(;i.parent;)t.push(i.parent.children.indexOf(i)),i=i.parent;return t.reverse()}getParentNodeLocation(e){if(e.length!==0)return e.length===1?[]:i2e(e)[0]}getFirstElementChild(e){const t=this.getTreeNode(e);if(t.children.length!==0)return t.children[0].element}}class Xze extends TD{constructor(e){super(e.elements.map(t=>t.element)),this.data=e}}function V5(n){return n instanceof TD?new Xze(n):n}class Qze{constructor(e,t){this.modelProvider=e,this.dnd=t,this.autoExpandDisposable=ne.None,this.disposables=new be}getDragURI(e){return this.dnd.getDragURI(e.element)}getDragLabel(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e.map(i=>i.element),t)}onDragStart(e,t){var i,s;(s=(i=this.dnd).onDragStart)===null||s===void 0||s.call(i,V5(e),t)}onDragOver(e,t,i,s,o,r=!0){const a=this.dnd.onDragOver(V5(e),t&&t.element,i,s,o),l=this.autoExpandNode!==t;if(l&&(this.autoExpandDisposable.dispose(),this.autoExpandNode=t),typeof t>\"u\")return a;if(l&&typeof a!=\"boolean\"&&a.autoExpand&&(this.autoExpandDisposable=Om(()=>{const f=this.modelProvider(),g=f.getNodeLocation(t);f.isCollapsed(g)&&f.setCollapsed(g,!1),this.autoExpandNode=void 0},500,this.disposables)),typeof a==\"boolean\"||!a.accept||typeof a.bubble>\"u\"||a.feedback){if(!r){const f=typeof a==\"boolean\"?a:a.accept,g=typeof a==\"boolean\"?void 0:a.effect;return{accept:f,effect:g,feedback:[i]}}return a}if(a.bubble===1){const f=this.modelProvider(),g=f.getNodeLocation(t),p=f.getParentNodeLocation(g),_=f.getNode(p),b=p&&f.getListIndex(p);return this.onDragOver(e,_,b,s,o,!1)}const c=this.modelProvider(),d=c.getNodeLocation(t),u=c.getListIndex(d),h=c.getListRenderCount(d);return{...a,feedback:Xr(u,u+h)}}drop(e,t,i,s,o){this.autoExpandDisposable.dispose(),this.autoExpandNode=void 0,this.dnd.drop(V5(e),t&&t.element,i,s,o)}onDragEnd(e){var t,i;(i=(t=this.dnd).onDragEnd)===null||i===void 0||i.call(t,e)}dispose(){this.disposables.dispose(),this.dnd.dispose()}}function Jze(n,e){return e&&{...e,identityProvider:e.identityProvider&&{getId(t){return e.identityProvider.getId(t.element)}},dnd:e.dnd&&new Qze(n,e.dnd),multipleSelectionController:e.multipleSelectionController&&{isSelectionSingleChangeEvent(t){return e.multipleSelectionController.isSelectionSingleChangeEvent({...t,element:t.element})},isSelectionRangeChangeEvent(t){return e.multipleSelectionController.isSelectionRangeChangeEvent({...t,element:t.element})}},accessibilityProvider:e.accessibilityProvider&&{...e.accessibilityProvider,getSetSize(t){const i=n(),s=i.getNodeLocation(t),o=i.getParentNodeLocation(s);return i.getNode(o).visibleChildrenCount},getPosInSet(t){return t.visibleChildIndex+1},isChecked:e.accessibilityProvider&&e.accessibilityProvider.isChecked?t=>e.accessibilityProvider.isChecked(t.element):void 0,getRole:e.accessibilityProvider&&e.accessibilityProvider.getRole?t=>e.accessibilityProvider.getRole(t.element):()=>\"treeitem\",getAriaLabel(t){return e.accessibilityProvider.getAriaLabel(t.element)},getWidgetAriaLabel(){return e.accessibilityProvider.getWidgetAriaLabel()},getWidgetRole:e.accessibilityProvider&&e.accessibilityProvider.getWidgetRole?()=>e.accessibilityProvider.getWidgetRole():()=>\"tree\",getAriaLevel:e.accessibilityProvider&&e.accessibilityProvider.getAriaLevel?t=>e.accessibilityProvider.getAriaLevel(t.element):t=>t.depth,getActiveDescendantId:e.accessibilityProvider.getActiveDescendantId&&(t=>e.accessibilityProvider.getActiveDescendantId(t.element))},keyboardNavigationLabelProvider:e.keyboardNavigationLabelProvider&&{...e.keyboardNavigationLabelProvider,getKeyboardNavigationLabel(t){return e.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(t.element)}}}}class E${constructor(e){this.delegate=e}getHeight(e){return this.delegate.getHeight(e.element)}getTemplateId(e){return this.delegate.getTemplateId(e.element)}hasDynamicHeight(e){return!!this.delegate.hasDynamicHeight&&this.delegate.hasDynamicHeight(e.element)}setDynamicHeight(e,t){var i,s;(s=(i=this.delegate).setDynamicHeight)===null||s===void 0||s.call(i,e.element,t)}}var ew;(function(n){n.None=\"none\",n.OnHover=\"onHover\",n.Always=\"always\"})(ew||(ew={}));class e$e{get elements(){return this._elements}constructor(e,t=[]){this._elements=t,this.disposables=new be,this.onDidChange=Ae.forEach(e,i=>this._elements=i,this.disposables)}dispose(){this.disposables.dispose()}}class XL{constructor(e,t,i,s,o,r={}){var a;this.renderer=e,this.modelProvider=t,this.activeNodes=s,this.renderedIndentGuides=o,this.renderedElements=new Map,this.renderedNodes=new Map,this.indent=XL.DefaultIndent,this.hideTwistiesOfChildlessElements=!1,this.shouldRenderIndentGuides=!1,this.activeIndentNodes=new Set,this.indentGuidesDisposable=ne.None,this.disposables=new be,this.templateId=e.templateId,this.updateOptions(r),Ae.map(i,l=>l.node)(this.onDidChangeNodeTwistieState,this,this.disposables),(a=e.onDidChangeTwistieState)===null||a===void 0||a.call(e,this.onDidChangeTwistieState,this,this.disposables)}updateOptions(e={}){if(typeof e.indent<\"u\"){const t=Sr(e.indent,0,40);if(t!==this.indent){this.indent=t;for(const[i,s]of this.renderedNodes)this.renderTreeElement(i,s)}}if(typeof e.renderIndentGuides<\"u\"){const t=e.renderIndentGuides!==ew.None;if(t!==this.shouldRenderIndentGuides){this.shouldRenderIndentGuides=t;for(const[i,s]of this.renderedNodes)this._renderIndentGuides(i,s);if(this.indentGuidesDisposable.dispose(),t){const i=new be;this.activeNodes.onDidChange(this._onDidChangeActiveNodes,this,i),this.indentGuidesDisposable=i,this._onDidChangeActiveNodes(this.activeNodes.elements)}}}typeof e.hideTwistiesOfChildlessElements<\"u\"&&(this.hideTwistiesOfChildlessElements=e.hideTwistiesOfChildlessElements)}renderTemplate(e){const t=we(e,ke(\".monaco-tl-row\")),i=we(t,ke(\".monaco-tl-indent\")),s=we(t,ke(\".monaco-tl-twistie\")),o=we(t,ke(\".monaco-tl-contents\")),r=this.renderer.renderTemplate(o);return{container:e,indent:i,twistie:s,indentGuidesDisposable:ne.None,templateData:r}}renderElement(e,t,i,s){this.renderedNodes.set(e,i),this.renderedElements.set(e.element,e),this.renderTreeElement(e,i),this.renderer.renderElement(e,t,i.templateData,s)}disposeElement(e,t,i,s){var o,r;i.indentGuidesDisposable.dispose(),(r=(o=this.renderer).disposeElement)===null||r===void 0||r.call(o,e,t,i.templateData,s),typeof s==\"number\"&&(this.renderedNodes.delete(e),this.renderedElements.delete(e.element))}disposeTemplate(e){this.renderer.disposeTemplate(e.templateData)}onDidChangeTwistieState(e){const t=this.renderedElements.get(e);t&&this.onDidChangeNodeTwistieState(t)}onDidChangeNodeTwistieState(e){const t=this.renderedNodes.get(e);t&&(this._onDidChangeActiveNodes(this.activeNodes.elements),this.renderTreeElement(e,t))}renderTreeElement(e,t){const i=XL.DefaultIndent+(e.depth-1)*this.indent;t.twistie.style.paddingLeft=`${i}px`,t.indent.style.width=`${i+this.indent-16}px`,e.collapsible?t.container.setAttribute(\"aria-expanded\",String(!e.collapsed)):t.container.removeAttribute(\"aria-expanded\"),t.twistie.classList.remove(..._t.asClassNameArray(Te.treeItemExpanded));let s=!1;this.renderer.renderTwistie&&(s=this.renderer.renderTwistie(e.element,t.twistie)),e.collapsible&&(!this.hideTwistiesOfChildlessElements||e.visibleChildrenCount>0)?(s||t.twistie.classList.add(..._t.asClassNameArray(Te.treeItemExpanded)),t.twistie.classList.add(\"collapsible\"),t.twistie.classList.toggle(\"collapsed\",e.collapsed)):t.twistie.classList.remove(\"collapsible\",\"collapsed\"),this._renderIndentGuides(e,t)}_renderIndentGuides(e,t){if(wo(t.indent),t.indentGuidesDisposable.dispose(),!this.shouldRenderIndentGuides)return;const i=new be,s=this.modelProvider();for(;;){const o=s.getNodeLocation(e),r=s.getParentNodeLocation(o);if(!r)break;const a=s.getNode(r),l=ke(\".indent-guide\",{style:`width: ${this.indent}px`});this.activeIndentNodes.has(a)&&l.classList.add(\"active\"),t.indent.childElementCount===0?t.indent.appendChild(l):t.indent.insertBefore(l,t.indent.firstElementChild),this.renderedIndentGuides.add(a,l),i.add(dt(()=>this.renderedIndentGuides.delete(a,l))),e=a}t.indentGuidesDisposable=i}_onDidChangeActiveNodes(e){if(!this.shouldRenderIndentGuides)return;const t=new Set,i=this.modelProvider();e.forEach(s=>{const o=i.getNodeLocation(s);try{const r=i.getParentNodeLocation(o);s.collapsible&&s.children.length>0&&!s.collapsed?t.add(s):r&&t.add(i.getNode(r))}catch{}}),this.activeIndentNodes.forEach(s=>{t.has(s)||this.renderedIndentGuides.forEach(s,o=>o.classList.remove(\"active\"))}),t.forEach(s=>{this.activeIndentNodes.has(s)||this.renderedIndentGuides.forEach(s,o=>o.classList.add(\"active\"))}),this.activeIndentNodes=t}dispose(){this.renderedNodes.clear(),this.renderedElements.clear(),this.indentGuidesDisposable.dispose(),tn(this.disposables)}}XL.DefaultIndent=8;class t$e{get totalCount(){return this._totalCount}get matchCount(){return this._matchCount}constructor(e,t,i){this.tree=e,this.keyboardNavigationLabelProvider=t,this._filter=i,this._totalCount=0,this._matchCount=0,this._pattern=\"\",this._lowercasePattern=\"\",this.disposables=new be,e.onWillRefilter(this.reset,this,this.disposables)}filter(e,t){let i=1;if(this._filter){const r=this._filter.filter(e,t);if(typeof r==\"boolean\"?i=r?1:0:I$(r)?i=YL(r.visibility):i=r,i===0)return!1}if(this._totalCount++,!this._pattern)return this._matchCount++,{data:Yd.Default,visibility:i};const s=this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e),o=Array.isArray(s)?s:[s];for(const r of o){const a=r&&r.toString();if(typeof a>\"u\")return{data:Yd.Default,visibility:i};let l;if(this.tree.findMatchType===w0.Contiguous){const c=a.toLowerCase().indexOf(this._lowercasePattern);if(c>-1){l=[Number.MAX_SAFE_INTEGER,0];for(let d=this._lowercasePattern.length;d>0;d--)l.push(c+d-1)}}else l=v0(this._pattern,this._lowercasePattern,0,a,a.toLowerCase(),0,{firstMatchCanBeWeak:!0,boostFullMatch:!0});if(l)return this._matchCount++,o.length===1?{data:l,visibility:i}:{data:{label:a,score:l},visibility:i}}return this.tree.findMode===cg.Filter?typeof this.tree.options.defaultFindVisibility==\"number\"?this.tree.options.defaultFindVisibility:this.tree.options.defaultFindVisibility?this.tree.options.defaultFindVisibility(e):2:{data:Yd.Default,visibility:i}}reset(){this._totalCount=0,this._matchCount=0}dispose(){tn(this.disposables)}}var cg;(function(n){n[n.Highlight=0]=\"Highlight\",n[n.Filter=1]=\"Filter\"})(cg||(cg={}));var w0;(function(n){n[n.Fuzzy=0]=\"Fuzzy\",n[n.Contiguous=1]=\"Contiguous\"})(w0||(w0={}));let i$e=class{get pattern(){return this._pattern}get mode(){return this._mode}set mode(e){e!==this._mode&&(this._mode=e,this.widget&&(this.widget.mode=this._mode),this.tree.refilter(),this.render(),this._onDidChangeMode.fire(e))}get matchType(){return this._matchType}set matchType(e){e!==this._matchType&&(this._matchType=e,this.widget&&(this.widget.matchType=this._matchType),this.tree.refilter(),this.render(),this._onDidChangeMatchType.fire(e))}constructor(e,t,i,s,o,r={}){var a,l;this.tree=e,this.view=i,this.filter=s,this.contextViewProvider=o,this.options=r,this._pattern=\"\",this.width=0,this._onDidChangeMode=new X,this.onDidChangeMode=this._onDidChangeMode.event,this._onDidChangeMatchType=new X,this.onDidChangeMatchType=this._onDidChangeMatchType.event,this._onDidChangePattern=new X,this._onDidChangeOpenState=new X,this.onDidChangeOpenState=this._onDidChangeOpenState.event,this.enabledDisposables=new be,this.disposables=new be,this._mode=(a=e.options.defaultFindMode)!==null&&a!==void 0?a:cg.Highlight,this._matchType=(l=e.options.defaultFindMatchType)!==null&&l!==void 0?l:w0.Fuzzy,t.onDidSplice(this.onDidSpliceModel,this,this.disposables)}updateOptions(e={}){e.defaultFindMode!==void 0&&(this.mode=e.defaultFindMode),e.defaultFindMatchType!==void 0&&(this.matchType=e.defaultFindMatchType)}onDidSpliceModel(){!this.widget||this.pattern.length===0||(this.tree.refilter(),this.render())}render(){var e,t,i,s;const o=this.filter.totalCount>0&&this.filter.matchCount===0;this.pattern&&o?!((e=this.tree.options.showNotFoundMessage)!==null&&e!==void 0)||e?(t=this.widget)===null||t===void 0||t.showMessage({type:2,content:v(\"not found\",\"No elements found.\")}):(i=this.widget)===null||i===void 0||i.showMessage({type:2}):(s=this.widget)===null||s===void 0||s.clearMessage()}shouldAllowFocus(e){return!this.widget||!this.pattern||this.filter.totalCount>0&&this.filter.matchCount<=1?!0:!Yd.isDefault(e.filterData)}layout(e){var t;this.width=e,(t=this.widget)===null||t===void 0||t.layout(e)}dispose(){this._history=void 0,this._onDidChangePattern.dispose(),this.enabledDisposables.dispose(),this.disposables.dispose()}};function n$e(n,e){return n.position===e.position&&oue(n,e)}function oue(n,e){return n.node.element===e.node.element&&n.startIndex===e.startIndex&&n.height===e.height&&n.endIndex===e.endIndex}class s$e{constructor(e=[]){this.stickyNodes=e}get count(){return this.stickyNodes.length}equal(e){return zn(this.stickyNodes,e.stickyNodes,n$e)}lastNodePartiallyVisible(){if(this.count===0)return!1;const e=this.stickyNodes[this.count-1];if(this.count===1)return e.position!==0;const t=this.stickyNodes[this.count-2];return t.position+t.height!==e.position}animationStateChanged(e){if(!zn(this.stickyNodes,e.stickyNodes,oue)||this.count===0)return!1;const t=this.stickyNodes[this.count-1],i=e.stickyNodes[e.count-1];return t.position!==i.position}}class o$e{constrainStickyScrollNodes(e,t,i){for(let s=0;s<e.length;s++){const o=e[s];if(o.position+o.height>i||s>=t)return e.slice(0,s)}return e}}let PJ=class extends ne{constructor(e,t,i,s,o,r={}){var a;super(),this.tree=e,this.model=t,this.view=i,this.treeDelegate=o,this.maxWidgetViewRatio=.4;const l=this.validateStickySettings(r);this.stickyScrollMaxItemCount=l.stickyScrollMaxItemCount,this.stickyScrollDelegate=(a=r.stickyScrollDelegate)!==null&&a!==void 0?a:new o$e,this._widget=this._register(new r$e(i.getScrollableElement(),i,e,s,o,r.accessibilityProvider)),this.onDidChangeHasFocus=this._widget.onDidChangeHasFocus,this.onContextMenu=this._widget.onContextMenu,this._register(i.onDidScroll(()=>this.update())),this._register(i.onDidChangeContentHeight(()=>this.update())),this._register(e.onDidChangeCollapseState(()=>this.update())),this.update()}get height(){return this._widget.height}getNodeAtHeight(e){let t;if(e===0?t=this.view.firstVisibleIndex:t=this.view.indexAt(e+this.view.scrollTop),!(t<0||t>=this.view.length))return this.view.element(t)}update(){const e=this.getNodeAtHeight(0);if(!e||this.tree.scrollTop===0){this._widget.setState(void 0);return}const t=this.findStickyState(e);this._widget.setState(t)}findStickyState(e){const t=[];let i=e,s=0,o=this.getNextStickyNode(i,void 0,s);for(;o&&(t.push(o),s+=o.height,!(t.length<=this.stickyScrollMaxItemCount&&(i=this.getNextVisibleNode(o),!i)));)o=this.getNextStickyNode(i,o.node,s);const r=this.constrainStickyNodes(t);return r.length?new s$e(r):void 0}getNextVisibleNode(e){return this.getNodeAtHeight(e.position+e.height)}getNextStickyNode(e,t,i){const s=this.getAncestorUnderPrevious(e,t);if(s&&!(s===e&&(!this.nodeIsUncollapsedParent(e)||this.nodeTopAlignsWithStickyNodesBottom(e,i))))return this.createStickyScrollNode(s,i)}nodeTopAlignsWithStickyNodesBottom(e,t){const i=this.getNodeIndex(e),s=this.view.getElementTop(i),o=t;return this.view.scrollTop===s-o}createStickyScrollNode(e,t){const i=this.treeDelegate.getHeight(e),{startIndex:s,endIndex:o}=this.getNodeRange(e),r=this.calculateStickyNodePosition(o,t,i);return{node:e,position:r,height:i,startIndex:s,endIndex:o}}getAncestorUnderPrevious(e,t=void 0){let i=e,s=this.getParentNode(i);for(;s;){if(s===t)return i;i=s,s=this.getParentNode(i)}if(t===void 0)return i}calculateStickyNodePosition(e,t,i){let s=this.view.getRelativeTop(e);if(s===null&&this.view.firstVisibleIndex===e&&e+1<this.view.length){const c=this.treeDelegate.getHeight(this.view.element(e)),d=this.view.getRelativeTop(e+1);s=d?d-c/this.view.renderHeight:null}if(s===null)return t;const o=this.view.element(e),r=this.treeDelegate.getHeight(o),l=s*this.view.renderHeight+r;return t+i>l&&t<=l?l-i:t}constrainStickyNodes(e){if(e.length===0)return[];const t=this.view.renderHeight*this.maxWidgetViewRatio,i=e[e.length-1];if(e.length<=this.stickyScrollMaxItemCount&&i.position+i.height<=t)return e;const s=this.stickyScrollDelegate.constrainStickyScrollNodes(e,this.stickyScrollMaxItemCount,t);if(!s.length)return[];const o=s[s.length-1];if(s.length>this.stickyScrollMaxItemCount||o.position+o.height>t)throw new Error(\"stickyScrollDelegate violates constraints\");return s}getParentNode(e){const t=this.model.getNodeLocation(e),i=this.model.getParentNodeLocation(t);return i?this.model.getNode(i):void 0}nodeIsUncollapsedParent(e){const t=this.model.getNodeLocation(e);return this.model.getListRenderCount(t)>1}getNodeIndex(e){const t=this.model.getNodeLocation(e);return this.model.getListIndex(t)}getNodeRange(e){const t=this.model.getNodeLocation(e),i=this.model.getListIndex(t);if(i<0)throw new Error(\"Node not found in tree\");const s=this.model.getListRenderCount(t),o=i+s-1;return{startIndex:i,endIndex:o}}nodePositionTopBelowWidget(e){const t=[];let i=this.getParentNode(e);for(;i;)t.push(i),i=this.getParentNode(i);let s=0;for(let o=0;o<t.length&&o<this.stickyScrollMaxItemCount;o++)s+=this.treeDelegate.getHeight(t[o]);return s}domFocus(){this._widget.domFocus()}focusedLast(){return this._widget.focusedLast()}updateOptions(e={}){if(!e.stickyScrollMaxItemCount)return;const t=this.validateStickySettings(e);this.stickyScrollMaxItemCount!==t.stickyScrollMaxItemCount&&(this.stickyScrollMaxItemCount=t.stickyScrollMaxItemCount,this.update())}validateStickySettings(e){let t=7;return typeof e.stickyScrollMaxItemCount==\"number\"&&(t=Math.max(e.stickyScrollMaxItemCount,1)),{stickyScrollMaxItemCount:t}}},r$e=class{constructor(e,t,i,s,o,r){this.view=t,this.tree=i,this.treeRenderers=s,this.treeDelegate=o,this.accessibilityProvider=r,this._previousElements=[],this._previousStateDisposables=new be,this._rootDomNode=ke(\".monaco-tree-sticky-container.empty\"),e.appendChild(this._rootDomNode);const a=ke(\".monaco-tree-sticky-container-shadow\");this._rootDomNode.appendChild(a),this.stickyScrollFocus=new a$e(this._rootDomNode,t),this.onDidChangeHasFocus=this.stickyScrollFocus.onDidChangeHasFocus,this.onContextMenu=this.stickyScrollFocus.onContextMenu}get height(){if(!this._previousState)return 0;const e=this._previousState.stickyNodes[this._previousState.count-1];return e.position+e.height}setState(e){const t=!!this._previousState&&this._previousState.count>0,i=!!e&&e.count>0;if(!t&&!i||t&&i&&this._previousState.equal(e))return;if(t!==i&&this.setVisible(i),!i){this._previousState=void 0,this._previousElements=[],this._previousStateDisposables.clear();return}const s=e.stickyNodes[e.count-1];if(this._previousState&&e.animationStateChanged(this._previousState))this._previousElements[this._previousState.count-1].style.top=`${s.position}px`;else{this._previousStateDisposables.clear();const o=Array(e.count);for(let r=e.count-1;r>=0;r--){const a=e.stickyNodes[r],{element:l,disposable:c}=this.createElement(a,r,e.count);o[r]=l,this._rootDomNode.appendChild(l),this._previousStateDisposables.add(c)}this.stickyScrollFocus.updateElements(o,e),this._previousElements=o}this._previousState=e,this._rootDomNode.style.height=`${s.position+s.height}px`}createElement(e,t,i){const s=e.startIndex,o=document.createElement(\"div\");o.style.top=`${e.position}px`,this.tree.options.setRowHeight!==!1&&(o.style.height=`${e.height}px`),this.tree.options.setRowLineHeight!==!1&&(o.style.lineHeight=`${e.height}px`),o.classList.add(\"monaco-tree-sticky-row\"),o.classList.add(\"monaco-list-row\"),o.setAttribute(\"data-index\",`${s}`),o.setAttribute(\"data-parity\",s%2===0?\"even\":\"odd\"),o.setAttribute(\"id\",this.view.getElementID(s));const r=this.setAccessibilityAttributes(o,e.node.element,t,i),a=this.treeDelegate.getTemplateId(e.node),l=this.treeRenderers.find(h=>h.templateId===a);if(!l)throw new Error(`No renderer found for template id ${a}`);let c=e.node;c===this.tree.getNode(this.tree.getNodeLocation(e.node))&&(c=new Proxy(e.node,{}));const d=l.renderTemplate(o);l.renderElement(c,e.startIndex,d,e.height);const u=dt(()=>{r.dispose(),l.disposeElement(c,e.startIndex,d,e.height),l.disposeTemplate(d),o.remove()});return{element:o,disposable:u}}setAccessibilityAttributes(e,t,i,s){var o;if(!this.accessibilityProvider)return ne.None;this.accessibilityProvider.getSetSize&&e.setAttribute(\"aria-setsize\",String(this.accessibilityProvider.getSetSize(t,i,s))),this.accessibilityProvider.getPosInSet&&e.setAttribute(\"aria-posinset\",String(this.accessibilityProvider.getPosInSet(t,i))),this.accessibilityProvider.getRole&&e.setAttribute(\"role\",(o=this.accessibilityProvider.getRole(t))!==null&&o!==void 0?o:\"treeitem\");const r=this.accessibilityProvider.getAriaLabel(t),a=r&&typeof r!=\"string\"?r:Vd(r),l=Ut(d=>{const u=d.readObservable(a);u?e.setAttribute(\"aria-label\",u):e.removeAttribute(\"aria-label\")});typeof r==\"string\"||r&&e.setAttribute(\"aria-label\",r.get());const c=this.accessibilityProvider.getAriaLevel&&this.accessibilityProvider.getAriaLevel(t);return typeof c==\"number\"&&e.setAttribute(\"aria-level\",`${c}`),e.setAttribute(\"aria-selected\",String(!1)),l}setVisible(e){this._rootDomNode.classList.toggle(\"empty\",!e),e||this.stickyScrollFocus.updateElements([],void 0)}domFocus(){this.stickyScrollFocus.domFocus()}focusedLast(){return this.stickyScrollFocus.focusedLast()}dispose(){this.stickyScrollFocus.dispose(),this._previousStateDisposables.dispose(),this._rootDomNode.remove()}};class a$e extends ne{get domHasFocus(){return this._domHasFocus}set domHasFocus(e){e!==this._domHasFocus&&(this._onDidChangeHasFocus.fire(e),this._domHasFocus=e)}constructor(e,t){super(),this.container=e,this.view=t,this.focusedIndex=-1,this.elements=[],this._onDidChangeHasFocus=new X,this.onDidChangeHasFocus=this._onDidChangeHasFocus.event,this._onContextMenu=new X,this.onContextMenu=this._onContextMenu.event,this._domHasFocus=!1,this.container.addEventListener(\"focus\",()=>this.onFocus()),this.container.addEventListener(\"blur\",()=>this.onBlur()),this._register(this.view.onDidFocus(()=>this.toggleStickyScrollFocused(!1))),this._register(this.view.onKeyDown(i=>this.onKeyDown(i))),this._register(this.view.onMouseDown(i=>this.onMouseDown(i))),this._register(this.view.onContextMenu(i=>this.handleContextMenu(i)))}handleContextMenu(e){const t=e.browserEvent.target;if(!qL(t)&&!Dx(t)){this.focusedLast()&&this.view.domFocus();return}if(!Np(e.browserEvent)){if(!this.state)throw new Error(\"Context menu should not be triggered when state is undefined\");const r=this.state.stickyNodes.findIndex(a=>{var l;return a.node.element===((l=e.element)===null||l===void 0?void 0:l.element)});if(r===-1)throw new Error(\"Context menu should not be triggered when element is not in sticky scroll widget\");this.container.focus(),this.setFocus(r);return}if(!this.state||this.focusedIndex<0)throw new Error(\"Context menu key should not be triggered when focus is not in sticky scroll widget\");const s=this.state.stickyNodes[this.focusedIndex].node.element,o=this.elements[this.focusedIndex];this._onContextMenu.fire({element:s,anchor:o,browserEvent:e.browserEvent,isStickyScroll:!0})}onKeyDown(e){if(this.domHasFocus&&this.state){if(e.key===\"ArrowUp\")this.setFocusedElement(Math.max(0,this.focusedIndex-1)),e.preventDefault(),e.stopPropagation();else if(e.key===\"ArrowDown\"||e.key===\"ArrowRight\"){if(this.focusedIndex>=this.state.count-1){const t=this.state.stickyNodes[this.state.count-1].startIndex+1;this.view.domFocus(),this.view.setFocus([t]),this.scrollNodeUnderWidget(t,this.state)}else this.setFocusedElement(this.focusedIndex+1);e.preventDefault(),e.stopPropagation()}}}onMouseDown(e){const t=e.browserEvent.target;!qL(t)&&!Dx(t)||(e.browserEvent.preventDefault(),e.browserEvent.stopPropagation())}updateElements(e,t){if(t&&t.count===0)throw new Error(\"Sticky scroll state must be undefined when there are no sticky nodes\");if(t&&t.count!==e.length)throw new Error(\"Sticky scroll focus received illigel state\");const i=this.focusedIndex;if(this.removeFocus(),this.elements=e,this.state=t,t){const s=Sr(i,0,t.count-1);this.setFocus(s)}else this.domHasFocus&&this.view.domFocus();this.container.tabIndex=t?0:-1}setFocusedElement(e){const t=this.state;if(!t)throw new Error(\"Cannot set focus when state is undefined\");if(this.setFocus(e),!(e<t.count-1)&&t.lastNodePartiallyVisible()){const i=t.stickyNodes[e];this.scrollNodeUnderWidget(i.endIndex+1,t)}}scrollNodeUnderWidget(e,t){const i=t.stickyNodes[t.count-1],s=t.count>1?t.stickyNodes[t.count-2]:void 0,o=this.view.getElementTop(e),r=s?s.position+s.height+i.height:i.height;this.view.scrollTop=o-r}domFocus(){if(!this.state)throw new Error(\"Cannot focus when state is undefined\");this.container.focus()}focusedLast(){return this.state?this.view.getHTMLElement().classList.contains(\"sticky-scroll-focused\"):!1}removeFocus(){this.focusedIndex!==-1&&(this.toggleElementFocus(this.elements[this.focusedIndex],!1),this.focusedIndex=-1)}setFocus(e){if(0>e)throw new Error(\"addFocus() can not remove focus\");if(!this.state&&e>=0)throw new Error(\"Cannot set focus index when state is undefined\");if(this.state&&e>=this.state.count)throw new Error(\"Cannot set focus index to an index that does not exist\");const t=this.focusedIndex;t>=0&&this.toggleElementFocus(this.elements[t],!1),e>=0&&this.toggleElementFocus(this.elements[e],!0),this.focusedIndex=e}toggleElementFocus(e,t){this.toggleElementActiveFocus(e,t&&this.domHasFocus),this.toggleElementPassiveFocus(e,t)}toggleCurrentElementActiveFocus(e){this.focusedIndex!==-1&&this.toggleElementActiveFocus(this.elements[this.focusedIndex],e)}toggleElementActiveFocus(e,t){e.classList.toggle(\"focused\",t)}toggleElementPassiveFocus(e,t){e.classList.toggle(\"passive-focused\",t)}toggleStickyScrollFocused(e){this.view.getHTMLElement().classList.toggle(\"sticky-scroll-focused\",e)}onFocus(){if(!this.state||this.elements.length===0)throw new Error(\"Cannot focus when state is undefined or elements are empty\");this.domHasFocus=!0,this.toggleStickyScrollFocused(!0),this.toggleCurrentElementActiveFocus(!0),this.focusedIndex===-1&&this.setFocus(0)}onBlur(){this.domHasFocus=!1,this.toggleCurrentElementActiveFocus(!1)}dispose(){this.toggleStickyScrollFocused(!1),this._onDidChangeHasFocus.fire(!1),super.dispose()}}function dT(n){let e=Tv.Unknown;return PF(n.browserEvent.target,\"monaco-tl-twistie\",\"monaco-tl-row\")?e=Tv.Twistie:PF(n.browserEvent.target,\"monaco-tl-contents\",\"monaco-tl-row\")?e=Tv.Element:PF(n.browserEvent.target,\"monaco-tree-type-filter\",\"monaco-list\")&&(e=Tv.Filter),{browserEvent:n.browserEvent,element:n.element?n.element.element:null,target:e}}function l$e(n){const e=qL(n.browserEvent.target);return{element:n.element?n.element.element:null,browserEvent:n.browserEvent,anchor:n.anchor,isStickyScroll:e}}function EN(n,e){e(n),n.children.forEach(t=>EN(t,e))}class z5{get nodeSet(){return this._nodeSet||(this._nodeSet=this.createNodeSet()),this._nodeSet}constructor(e,t){this.getFirstViewElementWithTrait=e,this.identityProvider=t,this.nodes=[],this._onDidChange=new X,this.onDidChange=this._onDidChange.event}set(e,t){!(t!=null&&t.__forceEvent)&&zn(this.nodes,e)||this._set(e,!1,t)}_set(e,t,i){if(this.nodes=[...e],this.elements=void 0,this._nodeSet=void 0,!t){const s=this;this._onDidChange.fire({get elements(){return s.get()},browserEvent:i})}}get(){return this.elements||(this.elements=this.nodes.map(e=>e.element)),[...this.elements]}getNodes(){return this.nodes}has(e){return this.nodeSet.has(e)}onDidModelSplice({insertedNodes:e,deletedNodes:t}){if(!this.identityProvider){const l=this.createNodeSet(),c=d=>l.delete(d);t.forEach(d=>EN(d,c)),this.set([...l.values()]);return}const i=new Set,s=l=>i.add(this.identityProvider.getId(l.element).toString());t.forEach(l=>EN(l,s));const o=new Map,r=l=>o.set(this.identityProvider.getId(l.element).toString(),l);e.forEach(l=>EN(l,r));const a=[];for(const l of this.nodes){const c=this.identityProvider.getId(l.element).toString();if(!i.has(c))a.push(l);else{const u=o.get(c);u&&u.visible&&a.push(u)}}if(this.nodes.length>0&&a.length===0){const l=this.getFirstViewElementWithTrait();l&&a.push(l)}this._set(a,!0)}createNodeSet(){const e=new Set;for(const t of this.nodes)e.add(t);return e}}class c$e extends Vde{constructor(e,t,i){super(e),this.tree=t,this.stickyScrollProvider=i}onViewPointer(e){if(Fde(e.browserEvent.target)||mm(e.browserEvent.target)||RS(e.browserEvent.target)||e.browserEvent.isHandledByList)return;const t=e.element;if(!t)return super.onViewPointer(e);if(this.isSelectionRangeChangeEvent(e)||this.isSelectionSingleChangeEvent(e))return super.onViewPointer(e);const i=e.browserEvent.target,s=i.classList.contains(\"monaco-tl-twistie\")||i.classList.contains(\"monaco-icon-label\")&&i.classList.contains(\"folder-icon\")&&e.browserEvent.offsetX<16,o=Dx(e.browserEvent.target);let r=!1;if(o?r=!0:typeof this.tree.expandOnlyOnTwistieClick==\"function\"?r=this.tree.expandOnlyOnTwistieClick(t.element):r=!!this.tree.expandOnlyOnTwistieClick,o)this.handleStickyScrollMouseEvent(e,t);else{if(r&&!s&&e.browserEvent.detail!==2)return super.onViewPointer(e);if(!this.tree.expandOnDoubleClick&&e.browserEvent.detail===2)return super.onViewPointer(e)}if(t.collapsible&&(!o||s)){const a=this.tree.getNodeLocation(t),l=e.browserEvent.altKey;if(this.tree.setFocus([a]),this.tree.toggleCollapsed(a,l),s){e.browserEvent.isHandledByList=!0;return}}o||super.onViewPointer(e)}handleStickyScrollMouseEvent(e,t){if(yVe(e.browserEvent.target)||SVe(e.browserEvent.target))return;const i=this.stickyScrollProvider();if(!i)throw new Error(\"Sticky scroll controller not found\");const s=this.list.indexOf(t),o=this.list.getElementTop(s),r=i.nodePositionTopBelowWidget(t);this.tree.scrollTop=o-r,this.list.domFocus(),this.list.setFocus([s]),this.list.setSelection([s])}onDoubleClick(e){e.browserEvent.target.classList.contains(\"monaco-tl-twistie\")||!this.tree.expandOnDoubleClick||e.browserEvent.isHandledByList||super.onDoubleClick(e)}onMouseDown(e){const t=e.browserEvent.target;if(!qL(t)&&!Dx(t)){super.onMouseDown(e);return}}onContextMenu(e){const t=e.browserEvent.target;if(!qL(t)&&!Dx(t)){super.onContextMenu(e);return}}}class d$e extends El{constructor(e,t,i,s,o,r,a,l){super(e,t,i,s,l),this.focusTrait=o,this.selectionTrait=r,this.anchorTrait=a}createMouseController(e){return new c$e(this,e.tree,e.stickyScrollProvider)}splice(e,t,i=[]){if(super.splice(e,t,i),i.length===0)return;const s=[],o=[];let r;i.forEach((a,l)=>{this.focusTrait.has(a)&&s.push(e+l),this.selectionTrait.has(a)&&o.push(e+l),this.anchorTrait.has(a)&&(r=e+l)}),s.length>0&&super.setFocus(xg([...super.getFocus(),...s])),o.length>0&&super.setSelection(xg([...super.getSelection(),...o])),typeof r==\"number\"&&super.setAnchor(r)}setFocus(e,t,i=!1){super.setFocus(e,t),i||this.focusTrait.set(e.map(s=>this.element(s)),t)}setSelection(e,t,i=!1){super.setSelection(e,t),i||this.selectionTrait.set(e.map(s=>this.element(s)),t)}setAnchor(e,t=!1){super.setAnchor(e),t||(typeof e>\"u\"?this.anchorTrait.set([]):this.anchorTrait.set([this.element(e)]))}}class rue{get onDidScroll(){return this.view.onDidScroll}get onDidChangeFocus(){return this.eventBufferer.wrapEvent(this.focus.onDidChange)}get onDidChangeSelection(){return this.eventBufferer.wrapEvent(this.selection.onDidChange)}get onMouseDblClick(){return Ae.filter(Ae.map(this.view.onMouseDblClick,dT),e=>e.target!==Tv.Filter)}get onMouseOver(){return Ae.map(this.view.onMouseOver,dT)}get onMouseOut(){return Ae.map(this.view.onMouseOut,dT)}get onContextMenu(){var e,t;return Ae.any(Ae.filter(Ae.map(this.view.onContextMenu,l$e),i=>!i.isStickyScroll),(t=(e=this.stickyScrollController)===null||e===void 0?void 0:e.onContextMenu)!==null&&t!==void 0?t:Ae.None)}get onPointer(){return Ae.map(this.view.onPointer,dT)}get onKeyDown(){return this.view.onKeyDown}get onDidFocus(){return this.view.onDidFocus}get onDidChangeModel(){return Ae.signal(this.model.onDidSplice)}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}get findMode(){var e,t;return(t=(e=this.findController)===null||e===void 0?void 0:e.mode)!==null&&t!==void 0?t:cg.Highlight}set findMode(e){this.findController&&(this.findController.mode=e)}get findMatchType(){var e,t;return(t=(e=this.findController)===null||e===void 0?void 0:e.matchType)!==null&&t!==void 0?t:w0.Fuzzy}set findMatchType(e){this.findController&&(this.findController.matchType=e)}get expandOnDoubleClick(){return typeof this._options.expandOnDoubleClick>\"u\"?!0:this._options.expandOnDoubleClick}get expandOnlyOnTwistieClick(){return typeof this._options.expandOnlyOnTwistieClick>\"u\"?!0:this._options.expandOnlyOnTwistieClick}get onDidDispose(){return this.view.onDidDispose}constructor(e,t,i,s,o={}){var r;this._user=e,this._options=o,this.eventBufferer=new sM,this.onDidChangeFindOpenState=Ae.None,this.onDidChangeStickyScrollFocused=Ae.None,this.disposables=new be,this._onWillRefilter=new X,this.onWillRefilter=this._onWillRefilter.event,this._onDidUpdateOptions=new X,this.treeDelegate=new E$(i);const a=new nY,l=new nY,c=this.disposables.add(new e$e(l.event)),d=new uz;this.renderers=s.map(p=>new XL(p,()=>this.model,a.event,c,d,o));for(const p of this.renderers)this.disposables.add(p);let u;o.keyboardNavigationLabelProvider&&(u=new t$e(this,o.keyboardNavigationLabelProvider,o.filter),o={...o,filter:u},this.disposables.add(u)),this.focus=new z5(()=>this.view.getFocusedElements()[0],o.identityProvider),this.selection=new z5(()=>this.view.getSelectedElements()[0],o.identityProvider),this.anchor=new z5(()=>this.view.getAnchorElement(),o.identityProvider),this.view=new d$e(e,t,this.treeDelegate,this.renderers,this.focus,this.selection,this.anchor,{...Jze(()=>this.model,o),tree:this,stickyScrollProvider:()=>this.stickyScrollController}),this.model=this.createModel(e,this.view,o),a.input=this.model.onDidChangeCollapseState;const h=Ae.forEach(this.model.onDidSplice,p=>{this.eventBufferer.bufferEvents(()=>{this.focus.onDidModelSplice(p),this.selection.onDidModelSplice(p)})},this.disposables);h(()=>null,null,this.disposables);const f=this.disposables.add(new X),g=this.disposables.add(new sd(0));if(this.disposables.add(Ae.any(h,this.focus.onDidChange,this.selection.onDidChange)(()=>{g.trigger(()=>{const p=new Set;for(const _ of this.focus.getNodes())p.add(_);for(const _ of this.selection.getNodes())p.add(_);f.fire([...p.values()])})})),l.input=f.event,o.keyboardSupport!==!1){const p=Ae.chain(this.view.onKeyDown,_=>_.filter(b=>!mm(b.target)).map(b=>new ln(b)));Ae.chain(p,_=>_.filter(b=>b.keyCode===15))(this.onLeftArrow,this,this.disposables),Ae.chain(p,_=>_.filter(b=>b.keyCode===17))(this.onRightArrow,this,this.disposables),Ae.chain(p,_=>_.filter(b=>b.keyCode===10))(this.onSpace,this,this.disposables)}if((!((r=o.findWidgetEnabled)!==null&&r!==void 0)||r)&&o.keyboardNavigationLabelProvider&&o.contextViewProvider){const p=this.options.findWidgetStyles?{styles:this.options.findWidgetStyles}:void 0;this.findController=new i$e(this,this.model,this.view,u,o.contextViewProvider,p),this.focusNavigationFilter=_=>this.findController.shouldAllowFocus(_),this.onDidChangeFindOpenState=this.findController.onDidChangeOpenState,this.disposables.add(this.findController),this.onDidChangeFindMode=this.findController.onDidChangeMode,this.onDidChangeFindMatchType=this.findController.onDidChangeMatchType}else this.onDidChangeFindMode=Ae.None,this.onDidChangeFindMatchType=Ae.None;o.enableStickyScroll&&(this.stickyScrollController=new PJ(this,this.model,this.view,this.renderers,this.treeDelegate,o),this.onDidChangeStickyScrollFocused=this.stickyScrollController.onDidChangeHasFocus),this.styleElement=yl(this.view.getHTMLElement()),this.getHTMLElement().classList.toggle(\"always\",this._options.renderIndentGuides===ew.Always)}updateOptions(e={}){var t;this._options={...this._options,...e};for(const i of this.renderers)i.updateOptions(e);this.view.updateOptions(this._options),(t=this.findController)===null||t===void 0||t.updateOptions(e),this.updateStickyScroll(e),this._onDidUpdateOptions.fire(this._options),this.getHTMLElement().classList.toggle(\"always\",this._options.renderIndentGuides===ew.Always)}get options(){return this._options}updateStickyScroll(e){var t;!this.stickyScrollController&&this._options.enableStickyScroll?(this.stickyScrollController=new PJ(this,this.model,this.view,this.renderers,this.treeDelegate,this._options),this.onDidChangeStickyScrollFocused=this.stickyScrollController.onDidChangeHasFocus):this.stickyScrollController&&!this._options.enableStickyScroll&&(this.onDidChangeStickyScrollFocused=Ae.None,this.stickyScrollController.dispose(),this.stickyScrollController=void 0),(t=this.stickyScrollController)===null||t===void 0||t.updateOptions(e)}getHTMLElement(){return this.view.getHTMLElement()}get scrollTop(){return this.view.scrollTop}set scrollTop(e){this.view.scrollTop=e}get scrollHeight(){return this.view.scrollHeight}get renderHeight(){return this.view.renderHeight}get ariaLabel(){return this.view.ariaLabel}set ariaLabel(e){this.view.ariaLabel=e}domFocus(){var e;!((e=this.stickyScrollController)===null||e===void 0)&&e.focusedLast()?this.stickyScrollController.domFocus():this.view.domFocus()}layout(e,t){var i;this.view.layout(e,t),Nm(t)&&((i=this.findController)===null||i===void 0||i.layout(t))}style(e){var t,i;const s=`.${this.view.domId}`,o=[];e.treeIndentGuidesStroke&&(o.push(`.monaco-list${s}:hover .monaco-tl-indent > .indent-guide, .monaco-list${s}.always .monaco-tl-indent > .indent-guide  { border-color: ${e.treeInactiveIndentGuidesStroke}; }`),o.push(`.monaco-list${s} .monaco-tl-indent > .indent-guide.active { border-color: ${e.treeIndentGuidesStroke}; }`));const r=(t=e.treeStickyScrollBackground)!==null&&t!==void 0?t:e.listBackground;r&&(o.push(`.monaco-list${s} .monaco-scrollable-element .monaco-tree-sticky-container { background-color: ${r}; }`),o.push(`.monaco-list${s} .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row { background-color: ${r}; }`)),e.treeStickyScrollBorder&&o.push(`.monaco-list${s} .monaco-scrollable-element .monaco-tree-sticky-container { border-bottom: 1px solid ${e.treeStickyScrollBorder}; }`),e.treeStickyScrollShadow&&o.push(`.monaco-list${s} .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-container-shadow { box-shadow: ${e.treeStickyScrollShadow} 0 6px 6px -6px inset; height: 3px; }`),e.listFocusForeground&&(o.push(`.monaco-list${s}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused { color: ${e.listFocusForeground}; }`),o.push(`.monaco-list${s}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused { color: inherit; }`));const a=mg(e.listFocusAndSelectionOutline,mg(e.listSelectionOutline,(i=e.listFocusOutline)!==null&&i!==void 0?i:\"\"));a&&(o.push(`.monaco-list${s}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused.selected { outline: 1px solid ${a}; outline-offset: -1px;}`),o.push(`.monaco-list${s}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused.selected { outline: inherit;}`)),e.listFocusOutline&&(o.push(`.monaco-list${s}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused { outline: 1px solid ${e.listFocusOutline}; outline-offset: -1px; }`),o.push(`.monaco-list${s}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused { outline: inherit; }`),o.push(`.monaco-workbench.context-menu-visible .monaco-list${s}.last-focused.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.passive-focused { outline: 1px solid ${e.listFocusOutline}; outline-offset: -1px; }`),o.push(`.monaco-workbench.context-menu-visible .monaco-list${s}.last-focused.sticky-scroll-focused .monaco-list-rows .monaco-list-row.focused { outline: inherit; }`),o.push(`.monaco-workbench.context-menu-visible .monaco-list${s}.last-focused:not(.sticky-scroll-focused) .monaco-tree-sticky-container .monaco-list-rows .monaco-list-row.focused { outline: inherit; }`)),this.styleElement.textContent=o.join(`\n`),this.view.style(e)}getParentElement(e){const t=this.model.getParentNodeLocation(e);return this.model.getNode(t).element}getFirstElementChild(e){return this.model.getFirstElementChild(e)}getNode(e){return this.model.getNode(e)}getNodeLocation(e){return this.model.getNodeLocation(e)}collapse(e,t=!1){return this.model.setCollapsed(e,!0,t)}expand(e,t=!1){return this.model.setCollapsed(e,!1,t)}toggleCollapsed(e,t=!1){return this.model.setCollapsed(e,void 0,t)}isCollapsible(e){return this.model.isCollapsible(e)}setCollapsible(e,t){return this.model.setCollapsible(e,t)}isCollapsed(e){return this.model.isCollapsed(e)}refilter(){this._onWillRefilter.fire(void 0),this.model.refilter()}setSelection(e,t){this.eventBufferer.bufferEvents(()=>{const i=e.map(o=>this.model.getNode(o));this.selection.set(i,t);const s=e.map(o=>this.model.getListIndex(o)).filter(o=>o>-1);this.view.setSelection(s,t,!0)})}getSelection(){return this.selection.get()}setFocus(e,t){this.eventBufferer.bufferEvents(()=>{const i=e.map(o=>this.model.getNode(o));this.focus.set(i,t);const s=e.map(o=>this.model.getListIndex(o)).filter(o=>o>-1);this.view.setFocus(s,t,!0)})}focusNext(e=1,t=!1,i,s=Np(i)&&i.altKey?void 0:this.focusNavigationFilter){this.view.focusNext(e,t,i,s)}focusPrevious(e=1,t=!1,i,s=Np(i)&&i.altKey?void 0:this.focusNavigationFilter){this.view.focusPrevious(e,t,i,s)}focusNextPage(e,t=Np(e)&&e.altKey?void 0:this.focusNavigationFilter){return this.view.focusNextPage(e,t)}focusPreviousPage(e,t=Np(e)&&e.altKey?void 0:this.focusNavigationFilter){return this.view.focusPreviousPage(e,t,()=>{var i,s;return(s=(i=this.stickyScrollController)===null||i===void 0?void 0:i.height)!==null&&s!==void 0?s:0})}focusFirst(e,t=Np(e)&&e.altKey?void 0:this.focusNavigationFilter){this.view.focusFirst(e,t)}getFocus(){return this.focus.get()}reveal(e,t){this.model.expandTo(e);const i=this.model.getListIndex(e);if(i!==-1)if(!this.stickyScrollController)this.view.reveal(i,t);else{const s=this.stickyScrollController.nodePositionTopBelowWidget(this.getNode(e));this.view.reveal(i,t,s)}}onLeftArrow(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(t.length===0)return;const i=t[0],s=this.model.getNodeLocation(i);if(!this.model.setCollapsed(s,!0)){const r=this.model.getParentNodeLocation(s);if(!r)return;const a=this.model.getListIndex(r);this.view.reveal(a),this.view.setFocus([a])}}onRightArrow(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(t.length===0)return;const i=t[0],s=this.model.getNodeLocation(i);if(!this.model.setCollapsed(s,!1)){if(!i.children.some(l=>l.visible))return;const[r]=this.view.getFocus(),a=r+1;this.view.reveal(a),this.view.setFocus([a])}}onSpace(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(t.length===0)return;const i=t[0],s=this.model.getNodeLocation(i),o=e.browserEvent.altKey;this.model.setCollapsed(s,void 0,o)}dispose(){var e;tn(this.disposables),(e=this.stickyScrollController)===null||e===void 0||e.dispose(),this.view.dispose()}}class T${constructor(e,t,i={}){this.user=e,this.rootRef=null,this.nodes=new Map,this.nodesByIdentity=new Map,this.model=new Yze(e,t,null,i),this.onDidSplice=this.model.onDidSplice,this.onDidChangeCollapseState=this.model.onDidChangeCollapseState,this.onDidChangeRenderNodeCount=this.model.onDidChangeRenderNodeCount,i.sorter&&(this.sorter={compare(s,o){return i.sorter.compare(s.element,o.element)}}),this.identityProvider=i.identityProvider}setChildren(e,t=oi.empty(),i={}){const s=this.getElementLocation(e);this._setChildren(s,this.preserveCollapseState(t),i)}_setChildren(e,t=oi.empty(),i){const s=new Set,o=new Set,r=l=>{var c;if(l.element===null)return;const d=l;if(s.add(d.element),this.nodes.set(d.element,d),this.identityProvider){const u=this.identityProvider.getId(d.element).toString();o.add(u),this.nodesByIdentity.set(u,d)}(c=i.onDidCreateNode)===null||c===void 0||c.call(i,d)},a=l=>{var c;if(l.element===null)return;const d=l;if(s.has(d.element)||this.nodes.delete(d.element),this.identityProvider){const u=this.identityProvider.getId(d.element).toString();o.has(u)||this.nodesByIdentity.delete(u)}(c=i.onDidDeleteNode)===null||c===void 0||c.call(i,d)};this.model.splice([...e,0],Number.MAX_VALUE,t,{...i,onDidCreateNode:r,onDidDeleteNode:a})}preserveCollapseState(e=oi.empty()){return this.sorter&&(e=[...e].sort(this.sorter.compare.bind(this.sorter))),oi.map(e,t=>{let i=this.nodes.get(t.element);if(!i&&this.identityProvider){const r=this.identityProvider.getId(t.element).toString();i=this.nodesByIdentity.get(r)}if(!i){let r;return typeof t.collapsed>\"u\"?r=void 0:t.collapsed===sl.Collapsed||t.collapsed===sl.PreserveOrCollapsed?r=!0:t.collapsed===sl.Expanded||t.collapsed===sl.PreserveOrExpanded?r=!1:r=!!t.collapsed,{...t,children:this.preserveCollapseState(t.children),collapsed:r}}const s=typeof t.collapsible==\"boolean\"?t.collapsible:i.collapsible;let o;return typeof t.collapsed>\"u\"||t.collapsed===sl.PreserveOrCollapsed||t.collapsed===sl.PreserveOrExpanded?o=i.collapsed:t.collapsed===sl.Collapsed?o=!0:t.collapsed===sl.Expanded?o=!1:o=!!t.collapsed,{...t,collapsible:s,collapsed:o,children:this.preserveCollapseState(t.children)}})}rerender(e){const t=this.getElementLocation(e);this.model.rerender(t)}getFirstElementChild(e=null){const t=this.getElementLocation(e);return this.model.getFirstElementChild(t)}has(e){return this.nodes.has(e)}getListIndex(e){const t=this.getElementLocation(e);return this.model.getListIndex(t)}getListRenderCount(e){const t=this.getElementLocation(e);return this.model.getListRenderCount(t)}isCollapsible(e){const t=this.getElementLocation(e);return this.model.isCollapsible(t)}setCollapsible(e,t){const i=this.getElementLocation(e);return this.model.setCollapsible(i,t)}isCollapsed(e){const t=this.getElementLocation(e);return this.model.isCollapsed(t)}setCollapsed(e,t,i){const s=this.getElementLocation(e);return this.model.setCollapsed(s,t,i)}expandTo(e){const t=this.getElementLocation(e);this.model.expandTo(t)}refilter(){this.model.refilter()}getNode(e=null){if(e===null)return this.model.getNode(this.model.rootRef);const t=this.nodes.get(e);if(!t)throw new dl(this.user,`Tree element not found: ${e}`);return t}getNodeLocation(e){return e.element}getParentNodeLocation(e){if(e===null)throw new dl(this.user,\"Invalid getParentNodeLocation call\");const t=this.nodes.get(e);if(!t)throw new dl(this.user,`Tree element not found: ${e}`);const i=this.model.getNodeLocation(t),s=this.model.getParentNodeLocation(i);return this.model.getNode(s).element}getElementLocation(e){if(e===null)return[];const t=this.nodes.get(e);if(!t)throw new dl(this.user,`Tree element not found: ${e}`);return this.model.getNodeLocation(t)}}function TN(n){const e=[n.element],t=n.incompressible||!1;return{element:{elements:e,incompressible:t},children:oi.map(oi.from(n.children),TN),collapsible:n.collapsible,collapsed:n.collapsed}}function NN(n){const e=[n.element],t=n.incompressible||!1;let i,s;for(;[s,i]=oi.consume(oi.from(n.children),2),!(s.length!==1||s[0].incompressible);)n=s[0],e.push(n.element);return{element:{elements:e,incompressible:t},children:oi.map(oi.concat(s,i),NN),collapsible:n.collapsible,collapsed:n.collapsed}}function K9(n,e=0){let t;return e<n.element.elements.length-1?t=[K9(n,e+1)]:t=oi.map(oi.from(n.children),i=>K9(i,0)),e===0&&n.element.incompressible?{element:n.element.elements[e],children:t,incompressible:!0,collapsible:n.collapsible,collapsed:n.collapsed}:{element:n.element.elements[e],children:t,collapsible:n.collapsible,collapsed:n.collapsed}}function OJ(n){return K9(n,0)}function aue(n,e,t){return n.element===e?{...n,children:t}:{...n,children:oi.map(oi.from(n.children),i=>aue(i,e,t))}}const u$e=n=>({getId(e){return e.elements.map(t=>n.getId(t).toString()).join(\"\\0\")}});class h$e{get onDidSplice(){return this.model.onDidSplice}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}get onDidChangeRenderNodeCount(){return this.model.onDidChangeRenderNodeCount}constructor(e,t,i={}){this.user=e,this.rootRef=null,this.nodes=new Map,this.model=new T$(e,t,i),this.enabled=typeof i.compressionEnabled>\"u\"?!0:i.compressionEnabled,this.identityProvider=i.identityProvider}setChildren(e,t=oi.empty(),i){const s=i.diffIdentityProvider&&u$e(i.diffIdentityProvider);if(e===null){const g=oi.map(t,this.enabled?NN:TN);this._setChildren(null,g,{diffIdentityProvider:s,diffDepth:1/0});return}const o=this.nodes.get(e);if(!o)throw new dl(this.user,\"Unknown compressed tree node\");const r=this.model.getNode(o),a=this.model.getParentNodeLocation(o),l=this.model.getNode(a),c=OJ(r),d=aue(c,e,t),u=(this.enabled?NN:TN)(d),h=i.diffIdentityProvider?(g,p)=>i.diffIdentityProvider.getId(g)===i.diffIdentityProvider.getId(p):void 0;if(zn(u.element.elements,r.element.elements,h)){this._setChildren(o,u.children||oi.empty(),{diffIdentityProvider:s,diffDepth:1});return}const f=l.children.map(g=>g===r?u:g);this._setChildren(l.element,f,{diffIdentityProvider:s,diffDepth:r.depth-l.depth})}isCompressionEnabled(){return this.enabled}setCompressionEnabled(e){if(e===this.enabled)return;this.enabled=e;const i=this.model.getNode().children,s=oi.map(i,OJ),o=oi.map(s,e?NN:TN);this._setChildren(null,o,{diffIdentityProvider:this.identityProvider,diffDepth:1/0})}_setChildren(e,t,i){const s=new Set,o=a=>{for(const l of a.element.elements)s.add(l),this.nodes.set(l,a.element)},r=a=>{for(const l of a.element.elements)s.has(l)||this.nodes.delete(l)};this.model.setChildren(e,t,{...i,onDidCreateNode:o,onDidDeleteNode:r})}has(e){return this.nodes.has(e)}getListIndex(e){const t=this.getCompressedNode(e);return this.model.getListIndex(t)}getListRenderCount(e){const t=this.getCompressedNode(e);return this.model.getListRenderCount(t)}getNode(e){if(typeof e>\"u\")return this.model.getNode();const t=this.getCompressedNode(e);return this.model.getNode(t)}getNodeLocation(e){const t=this.model.getNodeLocation(e);return t===null?null:t.elements[t.elements.length-1]}getParentNodeLocation(e){const t=this.getCompressedNode(e),i=this.model.getParentNodeLocation(t);return i===null?null:i.elements[i.elements.length-1]}getFirstElementChild(e){const t=this.getCompressedNode(e);return this.model.getFirstElementChild(t)}isCollapsible(e){const t=this.getCompressedNode(e);return this.model.isCollapsible(t)}setCollapsible(e,t){const i=this.getCompressedNode(e);return this.model.setCollapsible(i,t)}isCollapsed(e){const t=this.getCompressedNode(e);return this.model.isCollapsed(t)}setCollapsed(e,t,i){const s=this.getCompressedNode(e);return this.model.setCollapsed(s,t,i)}expandTo(e){const t=this.getCompressedNode(e);this.model.expandTo(t)}rerender(e){const t=this.getCompressedNode(e);this.model.rerender(t)}refilter(){this.model.refilter()}getCompressedNode(e){if(e===null)return null;const t=this.nodes.get(e);if(!t)throw new dl(this.user,`Tree element not found: ${e}`);return t}}const f$e=n=>n[n.length-1];class N${get element(){return this.node.element===null?null:this.unwrapper(this.node.element)}get children(){return this.node.children.map(e=>new N$(this.unwrapper,e))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}constructor(e,t){this.unwrapper=e,this.node=t}}function g$e(n,e){return{splice(t,i,s){e.splice(t,i,s.map(o=>n.map(o)))},updateElementHeight(t,i){e.updateElementHeight(t,i)}}}function p$e(n,e){return{...e,identityProvider:e.identityProvider&&{getId(t){return e.identityProvider.getId(n(t))}},sorter:e.sorter&&{compare(t,i){return e.sorter.compare(t.elements[0],i.elements[0])}},filter:e.filter&&{filter(t,i){return e.filter.filter(n(t),i)}}}}class m$e{get onDidSplice(){return Ae.map(this.model.onDidSplice,({insertedNodes:e,deletedNodes:t})=>({insertedNodes:e.map(i=>this.nodeMapper.map(i)),deletedNodes:t.map(i=>this.nodeMapper.map(i))}))}get onDidChangeCollapseState(){return Ae.map(this.model.onDidChangeCollapseState,({node:e,deep:t})=>({node:this.nodeMapper.map(e),deep:t}))}get onDidChangeRenderNodeCount(){return Ae.map(this.model.onDidChangeRenderNodeCount,e=>this.nodeMapper.map(e))}constructor(e,t,i={}){this.rootRef=null,this.elementMapper=i.elementMapper||f$e;const s=o=>this.elementMapper(o.elements);this.nodeMapper=new D$(o=>new N$(s,o)),this.model=new h$e(e,g$e(this.nodeMapper,t),p$e(s,i))}setChildren(e,t=oi.empty(),i={}){this.model.setChildren(e,t,i)}isCompressionEnabled(){return this.model.isCompressionEnabled()}setCompressionEnabled(e){this.model.setCompressionEnabled(e)}has(e){return this.model.has(e)}getListIndex(e){return this.model.getListIndex(e)}getListRenderCount(e){return this.model.getListRenderCount(e)}getNode(e){return this.nodeMapper.map(this.model.getNode(e))}getNodeLocation(e){return e.element}getParentNodeLocation(e){return this.model.getParentNodeLocation(e)}getFirstElementChild(e){const t=this.model.getFirstElementChild(e);return t===null||typeof t>\"u\"?t:this.elementMapper(t.elements)}isCollapsible(e){return this.model.isCollapsible(e)}setCollapsible(e,t){return this.model.setCollapsible(e,t)}isCollapsed(e){return this.model.isCollapsed(e)}setCollapsed(e,t,i){return this.model.setCollapsed(e,t,i)}expandTo(e){return this.model.expandTo(e)}rerender(e){return this.model.rerender(e)}refilter(){return this.model.refilter()}getCompressedTreeNode(e=null){return this.model.getNode(e)}}var _$e=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o};class A$ extends rue{get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}constructor(e,t,i,s,o={}){super(e,t,i,s,o),this.user=e}setChildren(e,t=oi.empty(),i){this.model.setChildren(e,t,i)}rerender(e){if(e===void 0){this.view.rerender();return}this.model.rerender(e)}hasElement(e){return this.model.has(e)}createModel(e,t,i){return new T$(e,t,i)}}class lue{get compressedTreeNodeProvider(){return this._compressedTreeNodeProvider()}constructor(e,t,i){this._compressedTreeNodeProvider=e,this.stickyScrollDelegate=t,this.renderer=i,this.templateId=i.templateId,i.onDidChangeTwistieState&&(this.onDidChangeTwistieState=i.onDidChangeTwistieState)}renderTemplate(e){return{compressedTreeNode:void 0,data:this.renderer.renderTemplate(e)}}renderElement(e,t,i,s){let o=this.stickyScrollDelegate.getCompressedNode(e);o||(o=this.compressedTreeNodeProvider.getCompressedTreeNode(e.element)),o.element.elements.length===1?(i.compressedTreeNode=void 0,this.renderer.renderElement(e,t,i.data,s)):(i.compressedTreeNode=o,this.renderer.renderCompressedElements(o,t,i.data,s))}disposeElement(e,t,i,s){var o,r,a,l;i.compressedTreeNode?(r=(o=this.renderer).disposeCompressedElements)===null||r===void 0||r.call(o,i.compressedTreeNode,t,i.data,s):(l=(a=this.renderer).disposeElement)===null||l===void 0||l.call(a,e,t,i.data,s)}disposeTemplate(e){this.renderer.disposeTemplate(e.data)}renderTwistie(e,t){return this.renderer.renderTwistie?this.renderer.renderTwistie(e,t):!1}}_$e([gs],lue.prototype,\"compressedTreeNodeProvider\",null);class v$e{constructor(e){this.modelProvider=e,this.compressedStickyNodes=new Map}getCompressedNode(e){return this.compressedStickyNodes.get(e)}constrainStickyScrollNodes(e,t,i){if(this.compressedStickyNodes.clear(),e.length===0)return[];for(let s=0;s<e.length;s++){const o=e[s],r=o.position+o.height;if(s+1<e.length&&r+e[s+1].height>i||s>=t-1&&t<e.length){const l=e.slice(0,s),c=e.slice(s),d=this.compressStickyNodes(c);return[...l,d]}}return e}compressStickyNodes(e){if(e.length===0)throw new Error(\"Can't compress empty sticky nodes\");const t=this.modelProvider();if(!t.isCompressionEnabled())return e[0];const i=[];for(let c=0;c<e.length;c++){const d=e[c],u=t.getCompressedTreeNode(d.node.element);if(u.element){if(c!==0&&u.element.incompressible)break;i.push(...u.element.elements)}}if(i.length<2)return e[0];const s=e[e.length-1],o={elements:i,incompressible:!1},r={...s.node,children:[],element:o},a=new Proxy(e[0].node,{}),l={node:a,startIndex:e[0].startIndex,endIndex:s.endIndex,position:e[0].position,height:e[0].height};return this.compressedStickyNodes.set(a,r),l}}function b$e(n,e){return e&&{...e,keyboardNavigationLabelProvider:e.keyboardNavigationLabelProvider&&{getKeyboardNavigationLabel(t){let i;try{i=n().getCompressedTreeNode(t)}catch{return e.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(t)}return i.element.elements.length===1?e.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(t):e.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(i.element.elements)}}}}class cue extends A${constructor(e,t,i,s,o={}){const r=()=>this,a=new v$e(()=>this.model),l=s.map(c=>new lue(r,a,c));super(e,t,i,l,{...b$e(r,o),stickyScrollDelegate:a})}setChildren(e,t=oi.empty(),i){this.model.setChildren(e,t,i)}createModel(e,t,i){return new m$e(e,t,i)}updateOptions(e={}){super.updateOptions(e),typeof e.compressionEnabled<\"u\"&&this.model.setCompressionEnabled(e.compressionEnabled)}getCompressedTreeNode(e=null){return this.model.getCompressedTreeNode(e)}}function $5(n){return{...n,children:[],refreshPromise:void 0,stale:!0,slow:!1,forceExpanded:!1}}function q9(n,e){return e.parent?e.parent===n?!0:q9(n,e.parent):!1}function C$e(n,e){return n===e||q9(n,e)||q9(e,n)}class R${get element(){return this.node.element.element}get children(){return this.node.children.map(e=>new R$(e))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}constructor(e){this.node=e}}class w$e{constructor(e,t,i){this.renderer=e,this.nodeMapper=t,this.onDidChangeTwistieState=i,this.renderedNodes=new Map,this.templateId=e.templateId}renderTemplate(e){return{templateData:this.renderer.renderTemplate(e)}}renderElement(e,t,i,s){this.renderer.renderElement(this.nodeMapper.map(e),t,i.templateData,s)}renderTwistie(e,t){return e.slow?(t.classList.add(..._t.asClassNameArray(Te.treeItemLoading)),!0):(t.classList.remove(..._t.asClassNameArray(Te.treeItemLoading)),!1)}disposeElement(e,t,i,s){var o,r;(r=(o=this.renderer).disposeElement)===null||r===void 0||r.call(o,this.nodeMapper.map(e),t,i.templateData,s)}disposeTemplate(e){this.renderer.disposeTemplate(e.templateData)}dispose(){this.renderedNodes.clear()}}function FJ(n){return{browserEvent:n.browserEvent,elements:n.elements.map(e=>e.element)}}function BJ(n){return{browserEvent:n.browserEvent,element:n.element&&n.element.element,target:n.target}}class y$e extends TD{constructor(e){super(e.elements.map(t=>t.element)),this.data=e}}function U5(n){return n instanceof TD?new y$e(n):n}class S$e{constructor(e){this.dnd=e}getDragURI(e){return this.dnd.getDragURI(e.element)}getDragLabel(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e.map(i=>i.element),t)}onDragStart(e,t){var i,s;(s=(i=this.dnd).onDragStart)===null||s===void 0||s.call(i,U5(e),t)}onDragOver(e,t,i,s,o,r=!0){return this.dnd.onDragOver(U5(e),t&&t.element,i,s,o)}drop(e,t,i,s,o){this.dnd.drop(U5(e),t&&t.element,i,s,o)}onDragEnd(e){var t,i;(i=(t=this.dnd).onDragEnd)===null||i===void 0||i.call(t,e)}dispose(){this.dnd.dispose()}}function due(n){return n&&{...n,collapseByDefault:!0,identityProvider:n.identityProvider&&{getId(e){return n.identityProvider.getId(e.element)}},dnd:n.dnd&&new S$e(n.dnd),multipleSelectionController:n.multipleSelectionController&&{isSelectionSingleChangeEvent(e){return n.multipleSelectionController.isSelectionSingleChangeEvent({...e,element:e.element})},isSelectionRangeChangeEvent(e){return n.multipleSelectionController.isSelectionRangeChangeEvent({...e,element:e.element})}},accessibilityProvider:n.accessibilityProvider&&{...n.accessibilityProvider,getPosInSet:void 0,getSetSize:void 0,getRole:n.accessibilityProvider.getRole?e=>n.accessibilityProvider.getRole(e.element):()=>\"treeitem\",isChecked:n.accessibilityProvider.isChecked?e=>{var t;return!!(!((t=n.accessibilityProvider)===null||t===void 0)&&t.isChecked(e.element))}:void 0,getAriaLabel(e){return n.accessibilityProvider.getAriaLabel(e.element)},getWidgetAriaLabel(){return n.accessibilityProvider.getWidgetAriaLabel()},getWidgetRole:n.accessibilityProvider.getWidgetRole?()=>n.accessibilityProvider.getWidgetRole():()=>\"tree\",getAriaLevel:n.accessibilityProvider.getAriaLevel&&(e=>n.accessibilityProvider.getAriaLevel(e.element)),getActiveDescendantId:n.accessibilityProvider.getActiveDescendantId&&(e=>n.accessibilityProvider.getActiveDescendantId(e.element))},filter:n.filter&&{filter(e,t){return n.filter.filter(e.element,t)}},keyboardNavigationLabelProvider:n.keyboardNavigationLabelProvider&&{...n.keyboardNavigationLabelProvider,getKeyboardNavigationLabel(e){return n.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e.element)}},sorter:void 0,expandOnlyOnTwistieClick:typeof n.expandOnlyOnTwistieClick>\"u\"?void 0:typeof n.expandOnlyOnTwistieClick!=\"function\"?n.expandOnlyOnTwistieClick:e=>n.expandOnlyOnTwistieClick(e.element),defaultFindVisibility:e=>e.hasChildren&&e.stale?1:typeof n.defaultFindVisibility==\"number\"?n.defaultFindVisibility:typeof n.defaultFindVisibility>\"u\"?2:n.defaultFindVisibility(e.element)}}function G9(n,e){e(n),n.children.forEach(t=>G9(t,e))}class uue{get onDidScroll(){return this.tree.onDidScroll}get onDidChangeFocus(){return Ae.map(this.tree.onDidChangeFocus,FJ)}get onDidChangeSelection(){return Ae.map(this.tree.onDidChangeSelection,FJ)}get onMouseDblClick(){return Ae.map(this.tree.onMouseDblClick,BJ)}get onPointer(){return Ae.map(this.tree.onPointer,BJ)}get onDidFocus(){return this.tree.onDidFocus}get onDidChangeModel(){return this.tree.onDidChangeModel}get onDidChangeCollapseState(){return this.tree.onDidChangeCollapseState}get onDidChangeFindOpenState(){return this.tree.onDidChangeFindOpenState}get onDidChangeStickyScrollFocused(){return this.tree.onDidChangeStickyScrollFocused}get onDidDispose(){return this.tree.onDidDispose}constructor(e,t,i,s,o,r={}){this.user=e,this.dataSource=o,this.nodes=new Map,this.subTreeRefreshPromises=new Map,this.refreshPromises=new Map,this._onDidRender=new X,this._onDidChangeNodeSlowState=new X,this.nodeMapper=new D$(a=>new R$(a)),this.disposables=new be,this.identityProvider=r.identityProvider,this.autoExpandSingleChildren=typeof r.autoExpandSingleChildren>\"u\"?!1:r.autoExpandSingleChildren,this.sorter=r.sorter,this.getDefaultCollapseState=a=>r.collapseByDefault?r.collapseByDefault(a)?sl.PreserveOrCollapsed:sl.PreserveOrExpanded:void 0,this.tree=this.createTree(e,t,i,s,r),this.onDidChangeFindMode=this.tree.onDidChangeFindMode,this.onDidChangeFindMatchType=this.tree.onDidChangeFindMatchType,this.root=$5({element:void 0,parent:null,hasChildren:!0,defaultCollapseState:void 0}),this.identityProvider&&(this.root={...this.root,id:null}),this.nodes.set(null,this.root),this.tree.onDidChangeCollapseState(this._onDidChangeCollapseState,this,this.disposables)}createTree(e,t,i,s,o){const r=new E$(i),a=s.map(c=>new w$e(c,this.nodeMapper,this._onDidChangeNodeSlowState.event)),l=due(o)||{};return new A$(e,t,r,a,l)}updateOptions(e={}){this.tree.updateOptions(e)}getHTMLElement(){return this.tree.getHTMLElement()}get scrollTop(){return this.tree.scrollTop}set scrollTop(e){this.tree.scrollTop=e}get scrollHeight(){return this.tree.scrollHeight}get renderHeight(){return this.tree.renderHeight}domFocus(){this.tree.domFocus()}layout(e,t){this.tree.layout(e,t)}style(e){this.tree.style(e)}getInput(){return this.root.element}async setInput(e,t){this.refreshPromises.forEach(s=>s.cancel()),this.refreshPromises.clear(),this.root.element=e;const i=t&&{viewState:t,focus:[],selection:[]};await this._updateChildren(e,!0,!1,i),i&&(this.tree.setFocus(i.focus),this.tree.setSelection(i.selection)),t&&typeof t.scrollTop==\"number\"&&(this.scrollTop=t.scrollTop)}async _updateChildren(e=this.root.element,t=!0,i=!1,s,o){if(typeof this.root.element>\"u\")throw new dl(this.user,\"Tree input not set\");this.root.refreshPromise&&(await this.root.refreshPromise,await Ae.toPromise(this._onDidRender.event));const r=this.getDataNode(e);if(await this.refreshAndRenderNode(r,t,s,o),i)try{this.tree.rerender(r)}catch{}}rerender(e){if(e===void 0||e===this.root.element){this.tree.rerender();return}const t=this.getDataNode(e);this.tree.rerender(t)}getNode(e=this.root.element){const t=this.getDataNode(e),i=this.tree.getNode(t===this.root?null:t);return this.nodeMapper.map(i)}collapse(e,t=!1){const i=this.getDataNode(e);return this.tree.collapse(i===this.root?null:i,t)}async expand(e,t=!1){if(typeof this.root.element>\"u\")throw new dl(this.user,\"Tree input not set\");this.root.refreshPromise&&(await this.root.refreshPromise,await Ae.toPromise(this._onDidRender.event));const i=this.getDataNode(e);if(this.tree.hasElement(i)&&!this.tree.isCollapsible(i)||(i.refreshPromise&&(await this.root.refreshPromise,await Ae.toPromise(this._onDidRender.event)),i!==this.root&&!i.refreshPromise&&!this.tree.isCollapsed(i)))return!1;const s=this.tree.expand(i===this.root?null:i,t);return i.refreshPromise&&(await this.root.refreshPromise,await Ae.toPromise(this._onDidRender.event)),s}setSelection(e,t){const i=e.map(s=>this.getDataNode(s));this.tree.setSelection(i,t)}getSelection(){return this.tree.getSelection().map(t=>t.element)}setFocus(e,t){const i=e.map(s=>this.getDataNode(s));this.tree.setFocus(i,t)}getFocus(){return this.tree.getFocus().map(t=>t.element)}reveal(e,t){this.tree.reveal(this.getDataNode(e),t)}getParentElement(e){const t=this.tree.getParentElement(this.getDataNode(e));return t&&t.element}getFirstElementChild(e=this.root.element){const t=this.getDataNode(e),i=this.tree.getFirstElementChild(t===this.root?null:t);return i&&i.element}getDataNode(e){const t=this.nodes.get(e===this.root.element?null:e);if(!t)throw new dl(this.user,`Data tree node not found: ${e}`);return t}async refreshAndRenderNode(e,t,i,s){await this.refreshNode(e,t,i),!this.disposables.isDisposed&&this.render(e,i,s)}async refreshNode(e,t,i){let s;if(this.subTreeRefreshPromises.forEach((o,r)=>{!s&&C$e(r,e)&&(s=o.then(()=>this.refreshNode(e,t,i)))}),s)return s;if(e!==this.root&&this.tree.getNode(e).collapsed){e.hasChildren=!!this.dataSource.hasChildren(e.element),e.stale=!0,this.setChildren(e,[],t,i);return}return this.doRefreshSubTree(e,t,i)}async doRefreshSubTree(e,t,i){let s;e.refreshPromise=new Promise(o=>s=o),this.subTreeRefreshPromises.set(e,e.refreshPromise),e.refreshPromise.finally(()=>{e.refreshPromise=void 0,this.subTreeRefreshPromises.delete(e)});try{const o=await this.doRefreshNode(e,t,i);e.stale=!1,await iB.settled(o.map(r=>this.doRefreshSubTree(r,t,i)))}finally{s()}}async doRefreshNode(e,t,i){e.hasChildren=!!this.dataSource.hasChildren(e.element);let s;if(!e.hasChildren)s=Promise.resolve(oi.empty());else{const o=this.doGetChildren(e);if(XZ(o))s=Promise.resolve(o);else{const r=Dg(800);r.then(()=>{e.slow=!0,this._onDidChangeNodeSlowState.fire(e)},a=>null),s=o.finally(()=>r.cancel())}}try{const o=await s;return this.setChildren(e,o,t,i)}catch(o){if(e!==this.root&&this.tree.hasElement(e)&&this.tree.collapse(e),ld(o))return[];throw o}finally{e.slow&&(e.slow=!1,this._onDidChangeNodeSlowState.fire(e))}}doGetChildren(e){let t=this.refreshPromises.get(e);if(t)return t;const i=this.dataSource.getChildren(e.element);return XZ(i)?this.processChildren(i):(t=Xs(async()=>this.processChildren(await i)),this.refreshPromises.set(e,t),t.finally(()=>{this.refreshPromises.delete(e)}))}_onDidChangeCollapseState({node:e,deep:t}){e.element!==null&&!e.collapsed&&e.element.stale&&(t?this.collapse(e.element.element):this.refreshAndRenderNode(e.element,!1).catch(Mt))}setChildren(e,t,i,s){const o=[...t];if(e.children.length===0&&o.length===0)return[];const r=new Map,a=new Map;for(const d of e.children)r.set(d.element,d),this.identityProvider&&a.set(d.id,{node:d,collapsed:this.tree.hasElement(d)&&this.tree.isCollapsed(d)});const l=[],c=o.map(d=>{const u=!!this.dataSource.hasChildren(d);if(!this.identityProvider){const p=$5({element:d,parent:e,hasChildren:u,defaultCollapseState:this.getDefaultCollapseState(d)});return u&&p.defaultCollapseState===sl.PreserveOrExpanded&&l.push(p),p}const h=this.identityProvider.getId(d).toString(),f=a.get(h);if(f){const p=f.node;return r.delete(p.element),this.nodes.delete(p.element),this.nodes.set(d,p),p.element=d,p.hasChildren=u,i?f.collapsed?(p.children.forEach(_=>G9(_,b=>this.nodes.delete(b.element))),p.children.splice(0,p.children.length),p.stale=!0):l.push(p):u&&!f.collapsed&&l.push(p),p}const g=$5({element:d,parent:e,id:h,hasChildren:u,defaultCollapseState:this.getDefaultCollapseState(d)});return s&&s.viewState.focus&&s.viewState.focus.indexOf(h)>-1&&s.focus.push(g),s&&s.viewState.selection&&s.viewState.selection.indexOf(h)>-1&&s.selection.push(g),(s&&s.viewState.expanded&&s.viewState.expanded.indexOf(h)>-1||u&&g.defaultCollapseState===sl.PreserveOrExpanded)&&l.push(g),g});for(const d of r.values())G9(d,u=>this.nodes.delete(u.element));for(const d of c)this.nodes.set(d.element,d);return e.children.splice(0,e.children.length,...c),e!==this.root&&this.autoExpandSingleChildren&&c.length===1&&l.length===0&&(c[0].forceExpanded=!0,l.push(c[0])),l}render(e,t,i){const s=e.children.map(r=>this.asTreeElement(r,t)),o=i&&{...i,diffIdentityProvider:i.diffIdentityProvider&&{getId(r){return i.diffIdentityProvider.getId(r.element)}}};this.tree.setChildren(e===this.root?null:e,s,o),e!==this.root&&this.tree.setCollapsible(e,e.hasChildren),this._onDidRender.fire()}asTreeElement(e,t){if(e.stale)return{element:e,collapsible:e.hasChildren,collapsed:!0};let i;return t&&t.viewState.expanded&&e.id&&t.viewState.expanded.indexOf(e.id)>-1?i=!1:e.forceExpanded?(i=!1,e.forceExpanded=!1):i=e.defaultCollapseState,{element:e,children:e.hasChildren?oi.map(e.children,s=>this.asTreeElement(s,t)):[],collapsible:e.hasChildren,collapsed:i}}processChildren(e){return this.sorter&&(e=[...e].sort(this.sorter.compare.bind(this.sorter))),e}dispose(){this.disposables.dispose(),this.tree.dispose()}}class M${get element(){return{elements:this.node.element.elements.map(e=>e.element),incompressible:this.node.element.incompressible}}get children(){return this.node.children.map(e=>new M$(e))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}constructor(e){this.node=e}}class x$e{constructor(e,t,i,s){this.renderer=e,this.nodeMapper=t,this.compressibleNodeMapperProvider=i,this.onDidChangeTwistieState=s,this.renderedNodes=new Map,this.disposables=[],this.templateId=e.templateId}renderTemplate(e){return{templateData:this.renderer.renderTemplate(e)}}renderElement(e,t,i,s){this.renderer.renderElement(this.nodeMapper.map(e),t,i.templateData,s)}renderCompressedElements(e,t,i,s){this.renderer.renderCompressedElements(this.compressibleNodeMapperProvider().map(e),t,i.templateData,s)}renderTwistie(e,t){return e.slow?(t.classList.add(..._t.asClassNameArray(Te.treeItemLoading)),!0):(t.classList.remove(..._t.asClassNameArray(Te.treeItemLoading)),!1)}disposeElement(e,t,i,s){var o,r;(r=(o=this.renderer).disposeElement)===null||r===void 0||r.call(o,this.nodeMapper.map(e),t,i.templateData,s)}disposeCompressedElements(e,t,i,s){var o,r;(r=(o=this.renderer).disposeCompressedElements)===null||r===void 0||r.call(o,this.compressibleNodeMapperProvider().map(e),t,i.templateData,s)}disposeTemplate(e){this.renderer.disposeTemplate(e.templateData)}dispose(){this.renderedNodes.clear(),this.disposables=tn(this.disposables)}}function L$e(n){const e=n&&due(n);return e&&{...e,keyboardNavigationLabelProvider:e.keyboardNavigationLabelProvider&&{...e.keyboardNavigationLabelProvider,getCompressedNodeKeyboardNavigationLabel(t){return n.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(t.map(i=>i.element))}}}}class k$e extends uue{constructor(e,t,i,s,o,r,a={}){super(e,t,i,o,r,a),this.compressionDelegate=s,this.compressibleNodeMapper=new D$(l=>new M$(l)),this.filter=a.filter}createTree(e,t,i,s,o){const r=new E$(i),a=s.map(c=>new x$e(c,this.nodeMapper,()=>this.compressibleNodeMapper,this._onDidChangeNodeSlowState.event)),l=L$e(o)||{};return new cue(e,t,r,a,l)}asTreeElement(e,t){return{incompressible:this.compressionDelegate.isIncompressible(e.element),...super.asTreeElement(e,t)}}updateOptions(e={}){this.tree.updateOptions(e)}render(e,t,i){if(!this.identityProvider)return super.render(e,t);const s=f=>this.identityProvider.getId(f).toString(),o=f=>{const g=new Set;for(const p of f){const _=this.tree.getCompressedTreeNode(p===this.root?null:p);if(_.element)for(const b of _.element.elements)g.add(s(b.element))}return g},r=o(this.tree.getSelection()),a=o(this.tree.getFocus());super.render(e,t,i);const l=this.getSelection();let c=!1;const d=this.getFocus();let u=!1;const h=f=>{const g=f.element;if(g)for(let p=0;p<g.elements.length;p++){const _=s(g.elements[p].element),b=g.elements[g.elements.length-1].element;r.has(_)&&l.indexOf(b)===-1&&(l.push(b),c=!0),a.has(_)&&d.indexOf(b)===-1&&(d.push(b),u=!0)}f.children.forEach(h)};h(this.tree.getCompressedTreeNode(e===this.root?null:e)),c&&this.setSelection(l),u&&this.setFocus(d)}processChildren(e){return this.filter&&(e=oi.filter(e,t=>{const i=this.filter.filter(t,1),s=D$e(i);if(s===2)throw new Error(\"Recursive tree visibility not supported in async data compressed trees\");return s===1})),super.processChildren(e)}}function D$e(n){return typeof n==\"boolean\"?n?1:0:I$(n)?YL(n.visibility):YL(n)}class I$e extends rue{constructor(e,t,i,s,o,r={}){super(e,t,i,s,r),this.user=e,this.dataSource=o,this.identityProvider=r.identityProvider}createModel(e,t,i){return new T$(e,t,i)}}new He(\"isMac\",Xt,v(\"isMac\",\"Whether the operating system is macOS\"));new He(\"isLinux\",Br,v(\"isLinux\",\"Whether the operating system is Linux\"));const dP=new He(\"isWindows\",Mo,v(\"isWindows\",\"Whether the operating system is Windows\")),hue=new He(\"isWeb\",u_,v(\"isWeb\",\"Whether the platform is a web browser\"));new He(\"isMacNative\",Xt&&!u_,v(\"isMacNative\",\"Whether the operating system is macOS on a non-browser platform\"));new He(\"isIOS\",iu,v(\"isIOS\",\"Whether the operating system is iOS\"));new He(\"isMobile\",qre,v(\"isMobile\",\"Whether the platform is a mobile web browser\"));new He(\"isDevelopment\",!1,!0);new He(\"productQualityType\",\"\",v(\"productQualityType\",\"Quality type of VS Code\"));const fue=\"inputFocus\",gue=new He(fue,!1,v(\"inputFocus\",\"Whether keyboard focus is inside an input box\"));var Vg=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},yn=function(n,e){return function(t,i){e(t,i,n)}};const wc=Jt(\"listService\");class E$e{get lastFocusedList(){return this._lastFocusedWidget}constructor(){this.disposables=new be,this.lists=[],this._lastFocusedWidget=void 0,this._hasCreatedStyleController=!1}setLastFocusedList(e){var t,i;e!==this._lastFocusedWidget&&((t=this._lastFocusedWidget)===null||t===void 0||t.getHTMLElement().classList.remove(\"last-focused\"),this._lastFocusedWidget=e,(i=this._lastFocusedWidget)===null||i===void 0||i.getHTMLElement().classList.add(\"last-focused\"))}register(e,t){if(this._hasCreatedStyleController||(this._hasCreatedStyleController=!0,new zde(yl(),\"\").style(eb)),this.lists.some(s=>s.widget===e))throw new Error(\"Cannot register the same widget multiple times\");const i={widget:e,extraContextKeys:t};return this.lists.push(i),hM(e.getHTMLElement())&&this.setLastFocusedList(e),Jc(e.onDidFocus(()=>this.setLastFocusedList(e)),dt(()=>this.lists.splice(this.lists.indexOf(i),1)),e.onDidDispose(()=>{this.lists=this.lists.filter(s=>s!==i),this._lastFocusedWidget===e&&this.setLastFocusedList(void 0)}))}dispose(){this.disposables.dispose()}}const QL=new He(\"listScrollAtBoundary\",\"none\");pe.or(QL.isEqualTo(\"top\"),QL.isEqualTo(\"both\"));pe.or(QL.isEqualTo(\"bottom\"),QL.isEqualTo(\"both\"));const pue=new He(\"listFocus\",!0),mue=new He(\"treestickyScrollFocused\",!1),uP=new He(\"listSupportsMultiselect\",!0),_ue=pe.and(pue,pe.not(fue),mue.negate()),P$=new He(\"listHasSelectionOrFocus\",!1),O$=new He(\"listDoubleSelection\",!1),F$=new He(\"listMultiSelection\",!1),hP=new He(\"listSelectionNavigation\",!1),T$e=new He(\"listSupportsFind\",!0),B$=new He(\"treeElementCanCollapse\",!1),N$e=new He(\"treeElementHasParent\",!1),W$=new He(\"treeElementCanExpand\",!1),A$e=new He(\"treeElementHasChild\",!1),R$e=new He(\"treeFindOpen\",!1),vue=\"listTypeNavigationMode\",bue=\"listAutomaticKeyboardNavigation\";function fP(n,e){const t=n.createScoped(e.getHTMLElement());return pue.bindTo(t),t}function gP(n,e){const t=QL.bindTo(n),i=()=>{const s=e.scrollTop===0,o=e.scrollHeight-e.renderHeight-e.scrollTop<1;s&&o?t.set(\"both\"):s?t.set(\"top\"):o?t.set(\"bottom\"):t.set(\"none\")};return i(),e.onDidScroll(i)}const nb=\"workbench.list.multiSelectModifier\",AN=\"workbench.list.openMode\",sc=\"workbench.list.horizontalScrolling\",H$=\"workbench.list.defaultFindMode\",V$=\"workbench.list.typeNavigationMode\",FA=\"workbench.list.keyboardNavigation\",cu=\"workbench.list.scrollByPage\",z$=\"workbench.list.defaultFindMatchType\",JL=\"workbench.tree.indent\",BA=\"workbench.tree.renderIndentGuides\",du=\"workbench.list.smoothScrolling\",Ah=\"workbench.list.mouseWheelScrollSensitivity\",Rh=\"workbench.list.fastScrollSensitivity\",WA=\"workbench.tree.expandMode\",HA=\"workbench.tree.enableStickyScroll\",VA=\"workbench.tree.stickyScrollMaxItemCount\";function Mh(n){return n.getValue(nb)===\"alt\"}class M$e extends ne{constructor(e){super(),this.configurationService=e,this.useAltAsMultipleSelectionModifier=Mh(e),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration(e=>{e.affectsConfiguration(nb)&&(this.useAltAsMultipleSelectionModifier=Mh(this.configurationService))}))}isSelectionSingleChangeEvent(e){return this.useAltAsMultipleSelectionModifier?e.browserEvent.altKey:Wde(e)}isSelectionRangeChangeEvent(e){return Hde(e)}}function pP(n,e){var t;const i=n.get(qt),s=n.get(Li),o=new be;return[{...e,keyboardNavigationDelegate:{mightProducePrintableCharacter(a){return s.mightProducePrintableCharacter(a)}},smoothScrolling:!!i.getValue(du),mouseWheelScrollSensitivity:i.getValue(Ah),fastScrollSensitivity:i.getValue(Rh),multipleSelectionController:(t=e.multipleSelectionController)!==null&&t!==void 0?t:o.add(new M$e(i)),keyboardNavigationEventFilter:F$e(s),scrollByPage:!!i.getValue(cu)},o]}let WJ=class extends El{constructor(e,t,i,s,o,r,a,l,c){const d=typeof o.horizontalScrolling<\"u\"?o.horizontalScrolling:!!l.getValue(sc),[u,h]=c.invokeFunction(pP,o);super(e,t,i,s,{keyboardSupport:!1,...u,horizontalScrolling:d}),this.disposables.add(h),this.contextKeyService=fP(r,this),this.disposables.add(gP(this.contextKeyService,this)),this.listSupportsMultiSelect=uP.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(o.multipleSelectionSupport!==!1),hP.bindTo(this.contextKeyService).set(!!o.selectionNavigation),this.listHasSelectionOrFocus=P$.bindTo(this.contextKeyService),this.listDoubleSelection=O$.bindTo(this.contextKeyService),this.listMultiSelection=F$.bindTo(this.contextKeyService),this.horizontalScrolling=o.horizontalScrolling,this._useAltAsMultipleSelectionModifier=Mh(l),this.disposables.add(this.contextKeyService),this.disposables.add(a.register(this)),this.updateStyles(o.overrideStyles),this.disposables.add(this.onDidChangeSelection(()=>{const g=this.getSelection(),p=this.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.listHasSelectionOrFocus.set(g.length>0||p.length>0),this.listMultiSelection.set(g.length>1),this.listDoubleSelection.set(g.length===2)})})),this.disposables.add(this.onDidChangeFocus(()=>{const g=this.getSelection(),p=this.getFocus();this.listHasSelectionOrFocus.set(g.length>0||p.length>0)})),this.disposables.add(l.onDidChangeConfiguration(g=>{g.affectsConfiguration(nb)&&(this._useAltAsMultipleSelectionModifier=Mh(l));let p={};if(g.affectsConfiguration(sc)&&this.horizontalScrolling===void 0){const _=!!l.getValue(sc);p={...p,horizontalScrolling:_}}if(g.affectsConfiguration(cu)){const _=!!l.getValue(cu);p={...p,scrollByPage:_}}if(g.affectsConfiguration(du)){const _=!!l.getValue(du);p={...p,smoothScrolling:_}}if(g.affectsConfiguration(Ah)){const _=l.getValue(Ah);p={...p,mouseWheelScrollSensitivity:_}}if(g.affectsConfiguration(Rh)){const _=l.getValue(Rh);p={...p,fastScrollSensitivity:_}}Object.keys(p).length>0&&this.updateOptions(p)})),this.navigator=new Cue(this,{configurationService:l,...o}),this.disposables.add(this.navigator)}updateOptions(e){super.updateOptions(e),e.overrideStyles!==void 0&&this.updateStyles(e.overrideStyles),e.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyles(e){this.style(e?tb(e):eb)}};WJ=Vg([yn(5,Ct),yn(6,wc),yn(7,qt),yn(8,ht)],WJ);let HJ=class extends Wze{constructor(e,t,i,s,o,r,a,l,c){const d=typeof o.horizontalScrolling<\"u\"?o.horizontalScrolling:!!l.getValue(sc),[u,h]=c.invokeFunction(pP,o);super(e,t,i,s,{keyboardSupport:!1,...u,horizontalScrolling:d}),this.disposables=new be,this.disposables.add(h),this.contextKeyService=fP(r,this),this.disposables.add(gP(this.contextKeyService,this.widget)),this.horizontalScrolling=o.horizontalScrolling,this.listSupportsMultiSelect=uP.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(o.multipleSelectionSupport!==!1),hP.bindTo(this.contextKeyService).set(!!o.selectionNavigation),this._useAltAsMultipleSelectionModifier=Mh(l),this.disposables.add(this.contextKeyService),this.disposables.add(a.register(this)),this.updateStyles(o.overrideStyles),this.disposables.add(l.onDidChangeConfiguration(g=>{g.affectsConfiguration(nb)&&(this._useAltAsMultipleSelectionModifier=Mh(l));let p={};if(g.affectsConfiguration(sc)&&this.horizontalScrolling===void 0){const _=!!l.getValue(sc);p={...p,horizontalScrolling:_}}if(g.affectsConfiguration(cu)){const _=!!l.getValue(cu);p={...p,scrollByPage:_}}if(g.affectsConfiguration(du)){const _=!!l.getValue(du);p={...p,smoothScrolling:_}}if(g.affectsConfiguration(Ah)){const _=l.getValue(Ah);p={...p,mouseWheelScrollSensitivity:_}}if(g.affectsConfiguration(Rh)){const _=l.getValue(Rh);p={...p,fastScrollSensitivity:_}}Object.keys(p).length>0&&this.updateOptions(p)})),this.navigator=new Cue(this,{configurationService:l,...o}),this.disposables.add(this.navigator)}updateOptions(e){super.updateOptions(e),e.overrideStyles!==void 0&&this.updateStyles(e.overrideStyles),e.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyles(e){this.style(e?tb(e):eb)}dispose(){this.disposables.dispose(),super.dispose()}};HJ=Vg([yn(5,Ct),yn(6,wc),yn(7,qt),yn(8,ht)],HJ);let VJ=class extends cP{constructor(e,t,i,s,o,r,a,l,c,d){const u=typeof r.horizontalScrolling<\"u\"?r.horizontalScrolling:!!c.getValue(sc),[h,f]=d.invokeFunction(pP,r);super(e,t,i,s,o,{keyboardSupport:!1,...h,horizontalScrolling:u}),this.disposables.add(f),this.contextKeyService=fP(a,this),this.disposables.add(gP(this.contextKeyService,this)),this.listSupportsMultiSelect=uP.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(r.multipleSelectionSupport!==!1),hP.bindTo(this.contextKeyService).set(!!r.selectionNavigation),this.listHasSelectionOrFocus=P$.bindTo(this.contextKeyService),this.listDoubleSelection=O$.bindTo(this.contextKeyService),this.listMultiSelection=F$.bindTo(this.contextKeyService),this.horizontalScrolling=r.horizontalScrolling,this._useAltAsMultipleSelectionModifier=Mh(c),this.disposables.add(this.contextKeyService),this.disposables.add(l.register(this)),this.updateStyles(r.overrideStyles),this.disposables.add(this.onDidChangeSelection(()=>{const p=this.getSelection(),_=this.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.listHasSelectionOrFocus.set(p.length>0||_.length>0),this.listMultiSelection.set(p.length>1),this.listDoubleSelection.set(p.length===2)})})),this.disposables.add(this.onDidChangeFocus(()=>{const p=this.getSelection(),_=this.getFocus();this.listHasSelectionOrFocus.set(p.length>0||_.length>0)})),this.disposables.add(c.onDidChangeConfiguration(p=>{p.affectsConfiguration(nb)&&(this._useAltAsMultipleSelectionModifier=Mh(c));let _={};if(p.affectsConfiguration(sc)&&this.horizontalScrolling===void 0){const b=!!c.getValue(sc);_={..._,horizontalScrolling:b}}if(p.affectsConfiguration(cu)){const b=!!c.getValue(cu);_={..._,scrollByPage:b}}if(p.affectsConfiguration(du)){const b=!!c.getValue(du);_={..._,smoothScrolling:b}}if(p.affectsConfiguration(Ah)){const b=c.getValue(Ah);_={..._,mouseWheelScrollSensitivity:b}}if(p.affectsConfiguration(Rh)){const b=c.getValue(Rh);_={..._,fastScrollSensitivity:b}}Object.keys(_).length>0&&this.updateOptions(_)})),this.navigator=new P$e(this,{configurationService:c,...r}),this.disposables.add(this.navigator)}updateOptions(e){super.updateOptions(e),e.overrideStyles!==void 0&&this.updateStyles(e.overrideStyles),e.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyles(e){this.style(e?tb(e):eb)}dispose(){this.disposables.dispose(),super.dispose()}};VJ=Vg([yn(6,Ct),yn(7,wc),yn(8,qt),yn(9,ht)],VJ);class $$ extends ne{constructor(e,t){var i;super(),this.widget=e,this._onDidOpen=this._register(new X),this.onDidOpen=this._onDidOpen.event,this._register(Ae.filter(this.widget.onDidChangeSelection,s=>Np(s.browserEvent))(s=>this.onSelectionFromKeyboard(s))),this._register(this.widget.onPointer(s=>this.onPointer(s.element,s.browserEvent))),this._register(this.widget.onMouseDblClick(s=>this.onMouseDblClick(s.element,s.browserEvent))),typeof(t==null?void 0:t.openOnSingleClick)!=\"boolean\"&&(t!=null&&t.configurationService)?(this.openOnSingleClick=(t==null?void 0:t.configurationService.getValue(AN))!==\"doubleClick\",this._register(t==null?void 0:t.configurationService.onDidChangeConfiguration(s=>{s.affectsConfiguration(AN)&&(this.openOnSingleClick=(t==null?void 0:t.configurationService.getValue(AN))!==\"doubleClick\")}))):this.openOnSingleClick=(i=t==null?void 0:t.openOnSingleClick)!==null&&i!==void 0?i:!0}onSelectionFromKeyboard(e){if(e.elements.length!==1)return;const t=e.browserEvent,i=typeof t.preserveFocus==\"boolean\"?t.preserveFocus:!0,s=typeof t.pinned==\"boolean\"?t.pinned:!i;this._open(this.getSelectedElement(),i,s,!1,e.browserEvent)}onPointer(e,t){if(!this.openOnSingleClick||t.detail===2)return;const s=t.button===1,o=!0,r=s,a=t.ctrlKey||t.metaKey||t.altKey;this._open(e,o,r,a,t)}onMouseDblClick(e,t){if(!t)return;const i=t.target;if(i.classList.contains(\"monaco-tl-twistie\")||i.classList.contains(\"monaco-icon-label\")&&i.classList.contains(\"folder-icon\")&&t.offsetX<16)return;const o=!1,r=!0,a=t.ctrlKey||t.metaKey||t.altKey;this._open(e,o,r,a,t)}_open(e,t,i,s,o){e&&this._onDidOpen.fire({editorOptions:{preserveFocus:t,pinned:i,revealIfVisible:!0},sideBySide:s,element:e,browserEvent:o})}}class Cue extends $${constructor(e,t){super(e,t),this.widget=e}getSelectedElement(){return this.widget.getSelectedElements()[0]}}class P$e extends $${constructor(e,t){super(e,t)}getSelectedElement(){return this.widget.getSelectedElements()[0]}}class O$e extends $${constructor(e,t){super(e,t)}getSelectedElement(){var e;return(e=this.widget.getSelection()[0])!==null&&e!==void 0?e:void 0}}function F$e(n){let e=!1;return t=>{if(t.toKeyCodeChord().isModifierKey())return!1;if(e)return e=!1,!1;const i=n.softDispatch(t,t.target);return i.kind===1?(e=!0,!1):(e=!1,i.kind===0)}}let Z9=class extends A${constructor(e,t,i,s,o,r,a,l,c){const{options:d,getTypeNavigationMode:u,disposable:h}=r.invokeFunction(FD,o);super(e,t,i,s,d),this.disposables.add(h),this.internals=new y0(this,o,u,o.overrideStyles,a,l,c),this.disposables.add(this.internals)}updateOptions(e){super.updateOptions(e),this.internals.updateOptions(e)}};Z9=Vg([yn(5,ht),yn(6,Ct),yn(7,wc),yn(8,qt)],Z9);let zJ=class extends cue{constructor(e,t,i,s,o,r,a,l,c){const{options:d,getTypeNavigationMode:u,disposable:h}=r.invokeFunction(FD,o);super(e,t,i,s,d),this.disposables.add(h),this.internals=new y0(this,o,u,o.overrideStyles,a,l,c),this.disposables.add(this.internals)}updateOptions(e={}){super.updateOptions(e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles),this.internals.updateOptions(e)}};zJ=Vg([yn(5,ht),yn(6,Ct),yn(7,wc),yn(8,qt)],zJ);let $J=class extends I$e{constructor(e,t,i,s,o,r,a,l,c,d){const{options:u,getTypeNavigationMode:h,disposable:f}=a.invokeFunction(FD,r);super(e,t,i,s,o,u),this.disposables.add(f),this.internals=new y0(this,r,h,r.overrideStyles,l,c,d),this.disposables.add(this.internals)}updateOptions(e={}){super.updateOptions(e),e.overrideStyles!==void 0&&this.internals.updateStyleOverrides(e.overrideStyles),this.internals.updateOptions(e)}};$J=Vg([yn(6,ht),yn(7,Ct),yn(8,wc),yn(9,qt)],$J);let Y9=class extends uue{get onDidOpen(){return this.internals.onDidOpen}constructor(e,t,i,s,o,r,a,l,c,d){const{options:u,getTypeNavigationMode:h,disposable:f}=a.invokeFunction(FD,r);super(e,t,i,s,o,u),this.disposables.add(f),this.internals=new y0(this,r,h,r.overrideStyles,l,c,d),this.disposables.add(this.internals)}updateOptions(e={}){super.updateOptions(e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles),this.internals.updateOptions(e)}};Y9=Vg([yn(6,ht),yn(7,Ct),yn(8,wc),yn(9,qt)],Y9);let UJ=class extends k$e{constructor(e,t,i,s,o,r,a,l,c,d,u){const{options:h,getTypeNavigationMode:f,disposable:g}=l.invokeFunction(FD,a);super(e,t,i,s,o,r,h),this.disposables.add(g),this.internals=new y0(this,a,f,a.overrideStyles,c,d,u),this.disposables.add(this.internals)}updateOptions(e){super.updateOptions(e),this.internals.updateOptions(e)}};UJ=Vg([yn(7,ht),yn(8,Ct),yn(9,wc),yn(10,qt)],UJ);function wue(n){const e=n.getValue(H$);if(e===\"highlight\")return cg.Highlight;if(e===\"filter\")return cg.Filter;const t=n.getValue(FA);if(t===\"simple\"||t===\"highlight\")return cg.Highlight;if(t===\"filter\")return cg.Filter}function yue(n){const e=n.getValue(z$);if(e===\"fuzzy\")return w0.Fuzzy;if(e===\"contiguous\")return w0.Contiguous}function FD(n,e){var t;const i=n.get(qt),s=n.get(Wg),o=n.get(Ct),r=n.get(ht),a=()=>{const f=o.getContextKeyValue(vue);if(f===\"automatic\")return ih.Automatic;if(f===\"trigger\"||o.getContextKeyValue(bue)===!1)return ih.Trigger;const p=i.getValue(V$);if(p===\"automatic\")return ih.Automatic;if(p===\"trigger\")return ih.Trigger},l=e.horizontalScrolling!==void 0?e.horizontalScrolling:!!i.getValue(sc),[c,d]=r.invokeFunction(pP,e),u=e.paddingBottom,h=e.renderIndentGuides!==void 0?e.renderIndentGuides:i.getValue(BA);return{getTypeNavigationMode:a,disposable:d,options:{keyboardSupport:!1,...c,indent:typeof i.getValue(JL)==\"number\"?i.getValue(JL):void 0,renderIndentGuides:h,smoothScrolling:!!i.getValue(du),defaultFindMode:wue(i),defaultFindMatchType:yue(i),horizontalScrolling:l,scrollByPage:!!i.getValue(cu),paddingBottom:u,hideTwistiesOfChildlessElements:e.hideTwistiesOfChildlessElements,expandOnlyOnTwistieClick:(t=e.expandOnlyOnTwistieClick)!==null&&t!==void 0?t:i.getValue(WA)===\"doubleClick\",contextViewProvider:s,findWidgetStyles:ZVe,enableStickyScroll:!!i.getValue(HA),stickyScrollMaxItemCount:Number(i.getValue(VA))}}}let y0=class{get onDidOpen(){return this.navigator.onDidOpen}constructor(e,t,i,s,o,r,a){var l;this.tree=e,this.disposables=[],this.contextKeyService=fP(o,e),this.disposables.push(gP(this.contextKeyService,e)),this.listSupportsMultiSelect=uP.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(t.multipleSelectionSupport!==!1),hP.bindTo(this.contextKeyService).set(!!t.selectionNavigation),this.listSupportFindWidget=T$e.bindTo(this.contextKeyService),this.listSupportFindWidget.set((l=t.findWidgetEnabled)!==null&&l!==void 0?l:!0),this.hasSelectionOrFocus=P$.bindTo(this.contextKeyService),this.hasDoubleSelection=O$.bindTo(this.contextKeyService),this.hasMultiSelection=F$.bindTo(this.contextKeyService),this.treeElementCanCollapse=B$.bindTo(this.contextKeyService),this.treeElementHasParent=N$e.bindTo(this.contextKeyService),this.treeElementCanExpand=W$.bindTo(this.contextKeyService),this.treeElementHasChild=A$e.bindTo(this.contextKeyService),this.treeFindOpen=R$e.bindTo(this.contextKeyService),this.treeStickyScrollFocused=mue.bindTo(this.contextKeyService),this._useAltAsMultipleSelectionModifier=Mh(a),this.updateStyleOverrides(s);const d=()=>{const h=e.getFocus()[0];if(!h)return;const f=e.getNode(h);this.treeElementCanCollapse.set(f.collapsible&&!f.collapsed),this.treeElementHasParent.set(!!e.getParentElement(h)),this.treeElementCanExpand.set(f.collapsible&&f.collapsed),this.treeElementHasChild.set(!!e.getFirstElementChild(h))},u=new Set;u.add(vue),u.add(bue),this.disposables.push(this.contextKeyService,r.register(e),e.onDidChangeSelection(()=>{const h=e.getSelection(),f=e.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.hasSelectionOrFocus.set(h.length>0||f.length>0),this.hasMultiSelection.set(h.length>1),this.hasDoubleSelection.set(h.length===2)})}),e.onDidChangeFocus(()=>{const h=e.getSelection(),f=e.getFocus();this.hasSelectionOrFocus.set(h.length>0||f.length>0),d()}),e.onDidChangeCollapseState(d),e.onDidChangeModel(d),e.onDidChangeFindOpenState(h=>this.treeFindOpen.set(h)),e.onDidChangeStickyScrollFocused(h=>this.treeStickyScrollFocused.set(h)),a.onDidChangeConfiguration(h=>{let f={};if(h.affectsConfiguration(nb)&&(this._useAltAsMultipleSelectionModifier=Mh(a)),h.affectsConfiguration(JL)){const g=a.getValue(JL);f={...f,indent:g}}if(h.affectsConfiguration(BA)&&t.renderIndentGuides===void 0){const g=a.getValue(BA);f={...f,renderIndentGuides:g}}if(h.affectsConfiguration(du)){const g=!!a.getValue(du);f={...f,smoothScrolling:g}}if(h.affectsConfiguration(H$)||h.affectsConfiguration(FA)){const g=wue(a);f={...f,defaultFindMode:g}}if(h.affectsConfiguration(V$)||h.affectsConfiguration(FA)){const g=i();f={...f,typeNavigationMode:g}}if(h.affectsConfiguration(z$)){const g=yue(a);f={...f,defaultFindMatchType:g}}if(h.affectsConfiguration(sc)&&t.horizontalScrolling===void 0){const g=!!a.getValue(sc);f={...f,horizontalScrolling:g}}if(h.affectsConfiguration(cu)){const g=!!a.getValue(cu);f={...f,scrollByPage:g}}if(h.affectsConfiguration(WA)&&t.expandOnlyOnTwistieClick===void 0&&(f={...f,expandOnlyOnTwistieClick:a.getValue(WA)===\"doubleClick\"}),h.affectsConfiguration(HA)){const g=a.getValue(HA);f={...f,enableStickyScroll:g}}if(h.affectsConfiguration(VA)){const g=Math.max(1,a.getValue(VA));f={...f,stickyScrollMaxItemCount:g}}if(h.affectsConfiguration(Ah)){const g=a.getValue(Ah);f={...f,mouseWheelScrollSensitivity:g}}if(h.affectsConfiguration(Rh)){const g=a.getValue(Rh);f={...f,fastScrollSensitivity:g}}Object.keys(f).length>0&&e.updateOptions(f)}),this.contextKeyService.onDidChangeContext(h=>{h.affectsSome(u)&&e.updateOptions({typeNavigationMode:i()})})),this.navigator=new O$e(e,{configurationService:a,...t}),this.disposables.push(this.navigator)}updateOptions(e){e.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyleOverrides(e){this.tree.style(e?tb(e):eb)}dispose(){this.disposables=tn(this.disposables)}};y0=Vg([yn(4,Ct),yn(5,wc),yn(6,qt)],y0);const B$e=Un.as(_u.Configuration);B$e.registerConfiguration({id:\"workbench\",order:7,title:v(\"workbenchConfigurationTitle\",\"Workbench\"),type:\"object\",properties:{[nb]:{type:\"string\",enum:[\"ctrlCmd\",\"alt\"],markdownEnumDescriptions:[v(\"multiSelectModifier.ctrlCmd\",\"Maps to `Control` on Windows and Linux and to `Command` on macOS.\"),v(\"multiSelectModifier.alt\",\"Maps to `Alt` on Windows and Linux and to `Option` on macOS.\")],default:\"ctrlCmd\",description:v({},\"The modifier to be used to add an item in trees and lists to a multi-selection with the mouse (for example in the explorer, open editors and scm view). The 'Open to Side' mouse gestures - if supported - will adapt such that they do not conflict with the multiselect modifier.\")},[AN]:{type:\"string\",enum:[\"singleClick\",\"doubleClick\"],default:\"singleClick\",description:v({},\"Controls how to open items in trees and lists using the mouse (if supported). Note that some trees and lists might choose to ignore this setting if it is not applicable.\")},[sc]:{type:\"boolean\",default:!1,description:v(\"horizontalScrolling setting\",\"Controls whether lists and trees support horizontal scrolling in the workbench. Warning: turning on this setting has a performance implication.\")},[cu]:{type:\"boolean\",default:!1,description:v(\"list.scrollByPage\",\"Controls whether clicks in the scrollbar scroll page by page.\")},[JL]:{type:\"number\",default:8,minimum:4,maximum:40,description:v(\"tree indent setting\",\"Controls tree indentation in pixels.\")},[BA]:{type:\"string\",enum:[\"none\",\"onHover\",\"always\"],default:\"onHover\",description:v(\"render tree indent guides\",\"Controls whether the tree should render indent guides.\")},[du]:{type:\"boolean\",default:!1,description:v(\"list smoothScrolling setting\",\"Controls whether lists and trees have smooth scrolling.\")},[Ah]:{type:\"number\",default:1,markdownDescription:v(\"Mouse Wheel Scroll Sensitivity\",\"A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.\")},[Rh]:{type:\"number\",default:5,markdownDescription:v(\"Fast Scroll Sensitivity\",\"Scrolling speed multiplier when pressing `Alt`.\")},[H$]:{type:\"string\",enum:[\"highlight\",\"filter\"],enumDescriptions:[v(\"defaultFindModeSettingKey.highlight\",\"Highlight elements when searching. Further up and down navigation will traverse only the highlighted elements.\"),v(\"defaultFindModeSettingKey.filter\",\"Filter elements when searching.\")],default:\"highlight\",description:v(\"defaultFindModeSettingKey\",\"Controls the default find mode for lists and trees in the workbench.\")},[FA]:{type:\"string\",enum:[\"simple\",\"highlight\",\"filter\"],enumDescriptions:[v(\"keyboardNavigationSettingKey.simple\",\"Simple keyboard navigation focuses elements which match the keyboard input. Matching is done only on prefixes.\"),v(\"keyboardNavigationSettingKey.highlight\",\"Highlight keyboard navigation highlights elements which match the keyboard input. Further up and down navigation will traverse only the highlighted elements.\"),v(\"keyboardNavigationSettingKey.filter\",\"Filter keyboard navigation will filter out and hide all the elements which do not match the keyboard input.\")],default:\"highlight\",description:v(\"keyboardNavigationSettingKey\",\"Controls the keyboard navigation style for lists and trees in the workbench. Can be simple, highlight and filter.\"),deprecated:!0,deprecationMessage:v(\"keyboardNavigationSettingKeyDeprecated\",\"Please use 'workbench.list.defaultFindMode' and\t'workbench.list.typeNavigationMode' instead.\")},[z$]:{type:\"string\",enum:[\"fuzzy\",\"contiguous\"],enumDescriptions:[v(\"defaultFindMatchTypeSettingKey.fuzzy\",\"Use fuzzy matching when searching.\"),v(\"defaultFindMatchTypeSettingKey.contiguous\",\"Use contiguous matching when searching.\")],default:\"fuzzy\",description:v(\"defaultFindMatchTypeSettingKey\",\"Controls the type of matching used when searching lists and trees in the workbench.\")},[WA]:{type:\"string\",enum:[\"singleClick\",\"doubleClick\"],default:\"singleClick\",description:v(\"expand mode\",\"Controls how tree folders are expanded when clicking the folder names. Note that some trees and lists might choose to ignore this setting if it is not applicable.\")},[HA]:{type:\"boolean\",default:!0,description:v(\"sticky scroll\",\"Controls whether sticky scrolling is enabled in trees.\")},[VA]:{type:\"number\",minimum:1,default:7,markdownDescription:v(\"sticky scroll maximum items\",\"Controls the number of sticky elements displayed in the tree when `#workbench.tree.enableStickyScroll#` is enabled.\")},[V$]:{type:\"string\",enum:[\"automatic\",\"trigger\"],default:\"automatic\",markdownDescription:v(\"typeNavigationMode2\",\"Controls how type navigation works in lists and trees in the workbench. When set to `trigger`, type navigation begins once the `list.triggerTypeNavigation` command is run.\")}}});class _m extends ne{constructor(e,t){var i;super(),this.options=t,this.text=\"\",this.title=\"\",this.highlights=[],this.didEverRender=!1,this.supportIcons=(i=t==null?void 0:t.supportIcons)!==null&&i!==void 0?i:!1,this.domNode=we(e,ke(\"span.monaco-highlighted-label\"))}get element(){return this.domNode}set(e,t=[],i=\"\",s){e||(e=\"\"),s&&(e=_m.escapeNewLines(e,t)),!(this.didEverRender&&this.text===e&&this.title===i&&vl(this.highlights,t))&&(this.text=e,this.title=i,this.highlights=t,this.render())}render(){var e,t,i,s;const o=[];let r=0;for(const a of this.highlights){if(a.end===a.start)continue;if(r<a.start){const d=this.text.substring(r,a.start);this.supportIcons?o.push(...gm(d)):o.push(d),r=a.start}const l=this.text.substring(r,a.end),c=ke(\"span.highlight\",void 0,...this.supportIcons?gm(l):[l]);a.extraClasses&&c.classList.add(...a.extraClasses),o.push(c),r=a.end}if(r<this.text.length){const a=this.text.substring(r);this.supportIcons?o.push(...gm(a)):o.push(a)}if(yo(this.domNode,...o),!((t=(e=this.options)===null||e===void 0?void 0:e.hoverDelegate)===null||t===void 0)&&t.showNativeHover)this.domNode.title=this.title;else if(!this.customHover&&this.title!==\"\"){const a=(s=(i=this.options)===null||i===void 0?void 0:i.hoverDelegate)!==null&&s!==void 0?s:Ur(\"mouse\");this.customHover=this._register(bu().setupUpdatableHover(a,this.domNode,this.title))}else this.customHover&&this.customHover.update(this.title);this.didEverRender=!0}static escapeNewLines(e,t){let i=0,s=0;return e.replace(/\\r\\n|\\r|\\n/g,(o,r)=>{s=o===`\\r\n`?-1:0,r+=i;for(const a of t)a.end<=r||(a.start>=r&&(a.start+=s),a.end>=r&&(a.end+=s));return i+=s,\"⏎\"})}}class Ky{constructor(e){this._element=e}get element(){return this._element}set textContent(e){this.disposed||e===this._textContent||(this._textContent=e,this._element.textContent=e)}set className(e){this.disposed||e===this._className||(this._className=e,this._element.className=e)}set empty(e){this.disposed||e===this._empty||(this._empty=e,this._element.style.marginLeft=e?\"0\":\"\")}dispose(){this.disposed=!0}}class zA extends ne{constructor(e,t){var i;super(),this.customHovers=new Map,this.creationOptions=t,this.domNode=this._register(new Ky(we(e,ke(\".monaco-icon-label\")))),this.labelContainer=we(this.domNode.element,ke(\".monaco-icon-label-container\")),this.nameContainer=we(this.labelContainer,ke(\"span.monaco-icon-name-container\")),t!=null&&t.supportHighlights||t!=null&&t.supportIcons?this.nameNode=this._register(new V$e(this.nameContainer,!!t.supportIcons)):this.nameNode=new W$e(this.nameContainer),this.hoverDelegate=(i=t==null?void 0:t.hoverDelegate)!==null&&i!==void 0?i:Ur(\"mouse\")}get element(){return this.domNode.element}setLabel(e,t,i){var s;const o=[\"monaco-icon-label\"],r=[\"monaco-icon-label-container\"];let a=\"\";i&&(i.extraClasses&&o.push(...i.extraClasses),i.italic&&o.push(\"italic\"),i.strikethrough&&o.push(\"strikethrough\"),i.disabledCommand&&r.push(\"disabled\"),i.title&&(typeof i.title==\"string\"?a+=i.title:a+=e));const l=this.domNode.element.querySelector(\".monaco-icon-label-iconpath\");if(i!=null&&i.iconPath){let c;!l||!co(l)?(c=ke(\".monaco-icon-label-iconpath\"),this.domNode.element.prepend(c)):c=l,c.style.backgroundImage=Ig(i==null?void 0:i.iconPath)}else l&&l.remove();if(this.domNode.className=o.join(\" \"),this.domNode.element.setAttribute(\"aria-label\",a),this.labelContainer.className=r.join(\" \"),this.setupHover(i!=null&&i.descriptionTitle?this.labelContainer:this.element,i==null?void 0:i.title),this.nameNode.setLabel(e,i),t||this.descriptionNode){const c=this.getOrCreateDescriptionNode();c instanceof _m?(c.set(t||\"\",i?i.descriptionMatches:void 0,void 0,i==null?void 0:i.labelEscapeNewLines),this.setupHover(c.element,i==null?void 0:i.descriptionTitle)):(c.textContent=t&&(i!=null&&i.labelEscapeNewLines)?_m.escapeNewLines(t,[]):t||\"\",this.setupHover(c.element,(i==null?void 0:i.descriptionTitle)||\"\"),c.empty=!t)}if(i!=null&&i.suffix||this.suffixNode){const c=this.getOrCreateSuffixNode();c.textContent=(s=i==null?void 0:i.suffix)!==null&&s!==void 0?s:\"\"}}setupHover(e,t){const i=this.customHovers.get(e);if(i&&(i.dispose(),this.customHovers.delete(e)),!t){e.removeAttribute(\"title\");return}if(this.hoverDelegate.showNativeHover)(function(o,r){Pr(r)?o.title=_$(r):r!=null&&r.markdownNotSupportedFallback?o.title=r.markdownNotSupportedFallback:o.removeAttribute(\"title\")})(e,t);else{const s=bu().setupUpdatableHover(this.hoverDelegate,e,t);s&&this.customHovers.set(e,s)}}dispose(){super.dispose();for(const e of this.customHovers.values())e.dispose();this.customHovers.clear()}getOrCreateSuffixNode(){if(!this.suffixNode){const e=this._register(new Ky(RMe(this.nameContainer,ke(\"span.monaco-icon-suffix-container\"))));this.suffixNode=this._register(new Ky(we(e.element,ke(\"span.label-suffix\"))))}return this.suffixNode}getOrCreateDescriptionNode(){var e;if(!this.descriptionNode){const t=this._register(new Ky(we(this.labelContainer,ke(\"span.monaco-icon-description-container\"))));!((e=this.creationOptions)===null||e===void 0)&&e.supportDescriptionHighlights?this.descriptionNode=this._register(new _m(we(t.element,ke(\"span.label-description\")),{supportIcons:!!this.creationOptions.supportIcons})):this.descriptionNode=this._register(new Ky(we(t.element,ke(\"span.label-description\"))))}return this.descriptionNode}}class W$e{constructor(e){this.container=e,this.label=void 0,this.singleLabel=void 0}setLabel(e,t){if(!(this.label===e&&vl(this.options,t)))if(this.label=e,this.options=t,typeof e==\"string\")this.singleLabel||(this.container.innerText=\"\",this.container.classList.remove(\"multiple\"),this.singleLabel=we(this.container,ke(\"a.label-name\",{id:t==null?void 0:t.domId}))),this.singleLabel.textContent=e;else{this.container.innerText=\"\",this.container.classList.add(\"multiple\"),this.singleLabel=void 0;for(let i=0;i<e.length;i++){const s=e[i],o=(t==null?void 0:t.domId)&&`${t==null?void 0:t.domId}_${i}`;we(this.container,ke(\"a.label-name\",{id:o,\"data-icon-label-count\":e.length,\"data-icon-label-index\":i,role:\"treeitem\"},s)),i<e.length-1&&we(this.container,ke(\"span.label-separator\",void 0,(t==null?void 0:t.separator)||\"/\"))}}}}function H$e(n,e,t){if(!t)return;let i=0;return n.map(s=>{const o={start:i,end:i+s.length},r=t.map(a=>Ho.intersect(o,a)).filter(a=>!Ho.isEmpty(a)).map(({start:a,end:l})=>({start:a-i,end:l-i}));return i=o.end+e.length,r})}class V$e extends ne{constructor(e,t){super(),this.container=e,this.supportIcons=t,this.label=void 0,this.singleLabel=void 0}setLabel(e,t){if(!(this.label===e&&vl(this.options,t)))if(this.label=e,this.options=t,typeof e==\"string\")this.singleLabel||(this.container.innerText=\"\",this.container.classList.remove(\"multiple\"),this.singleLabel=this._register(new _m(we(this.container,ke(\"a.label-name\",{id:t==null?void 0:t.domId})),{supportIcons:this.supportIcons}))),this.singleLabel.set(e,t==null?void 0:t.matches,void 0,t==null?void 0:t.labelEscapeNewLines);else{this.container.innerText=\"\",this.container.classList.add(\"multiple\"),this.singleLabel=void 0;const i=(t==null?void 0:t.separator)||\"/\",s=H$e(e,i,t==null?void 0:t.matches);for(let o=0;o<e.length;o++){const r=e[o],a=s?s[o]:void 0,l=(t==null?void 0:t.domId)&&`${t==null?void 0:t.domId}_${o}`,c=ke(\"a.label-name\",{id:l,\"data-icon-label-count\":e.length,\"data-icon-label-index\":o,role:\"treeitem\"});this._register(new _m(we(this.container,c),{supportIcons:this.supportIcons})).set(r,a,void 0,t==null?void 0:t.labelEscapeNewLines),o<e.length-1&&we(c,ke(\"span.label-separator\",void 0,i))}}}}const uT=ke,Sue={keybindingLabelBackground:void 0,keybindingLabelForeground:void 0,keybindingLabelBorder:void 0,keybindingLabelBottomBorder:void 0,keybindingLabelShadow:void 0};class $w extends ne{constructor(e,t,i){super(),this.os=t,this.keyElements=new Set,this.options=i||Object.create(null);const s=this.options.keybindingLabelForeground;this.domNode=we(e,uT(\".monaco-keybinding\")),s&&(this.domNode.style.color=s),this.hover=this._register(bu().setupUpdatableHover(Ur(\"mouse\"),this.domNode,\"\")),this.didEverRender=!1,e.appendChild(this.domNode)}get element(){return this.domNode}set(e,t){this.didEverRender&&this.keybinding===e&&$w.areSame(this.matches,t)||(this.keybinding=e,this.matches=t,this.render())}render(){var e;if(this.clear(),this.keybinding){const t=this.keybinding.getChords();t[0]&&this.renderChord(this.domNode,t[0],this.matches?this.matches.firstPart:null);for(let s=1;s<t.length;s++)we(this.domNode,uT(\"span.monaco-keybinding-key-chord-separator\",void 0,\" \")),this.renderChord(this.domNode,t[s],this.matches?this.matches.chordPart:null);const i=(e=this.options.disableTitle)!==null&&e!==void 0&&e?void 0:this.keybinding.getAriaLabel()||void 0;this.hover.update(i),this.domNode.setAttribute(\"aria-label\",i||\"\")}else this.options&&this.options.renderUnboundKeybindings&&this.renderUnbound(this.domNode);this.didEverRender=!0}clear(){wo(this.domNode),this.keyElements.clear()}renderChord(e,t,i){const s=w$.modifierLabels[this.os];t.ctrlKey&&this.renderKey(e,s.ctrlKey,!!(i!=null&&i.ctrlKey),s.separator),t.shiftKey&&this.renderKey(e,s.shiftKey,!!(i!=null&&i.shiftKey),s.separator),t.altKey&&this.renderKey(e,s.altKey,!!(i!=null&&i.altKey),s.separator),t.metaKey&&this.renderKey(e,s.metaKey,!!(i!=null&&i.metaKey),s.separator);const o=t.keyLabel;o&&this.renderKey(e,o,!!(i!=null&&i.keyCode),\"\")}renderKey(e,t,i,s){we(e,this.createKeyElement(t,i?\".highlight\":\"\")),s&&we(e,uT(\"span.monaco-keybinding-key-separator\",void 0,s))}renderUnbound(e){we(e,this.createKeyElement(v(\"unbound\",\"Unbound\")))}createKeyElement(e,t=\"\"){const i=uT(\"span.monaco-keybinding-key\"+t,void 0,e);return this.keyElements.add(i),this.options.keybindingLabelBackground&&(i.style.backgroundColor=this.options.keybindingLabelBackground),this.options.keybindingLabelBorder&&(i.style.borderColor=this.options.keybindingLabelBorder),this.options.keybindingLabelBottomBorder&&(i.style.borderBottomColor=this.options.keybindingLabelBottomBorder),this.options.keybindingLabelShadow&&(i.style.boxShadow=`inset 0 -1px 0 ${this.options.keybindingLabelShadow}`),i}static areSame(e,t){return e===t||!e&&!t?!0:!!e&&!!t&&vl(e.firstPart,t.firstPart)&&vl(e.chordPart,t.chordPart)}}const jJ=new pu(()=>{const n=new Intl.Collator(void 0,{numeric:!0,sensitivity:\"base\"});return{collator:n,collatorIsNumeric:n.resolvedOptions().numeric}});function z$e(n,e,t=!1){const i=n||\"\",s=e||\"\",o=jJ.value.collator.compare(i,s);return jJ.value.collatorIsNumeric&&o===0&&i!==s?i<s?-1:1:o}function $$e(n,e,t){const i=n.toLowerCase(),s=e.toLowerCase(),o=U$e(n,e,t);if(o)return o;const r=i.endsWith(t),a=s.endsWith(t);if(r!==a)return r?-1:1;const l=z$e(i,s);return l!==0?l:i.localeCompare(s)}function U$e(n,e,t){const i=n.toLowerCase(),s=e.toLowerCase(),o=i.startsWith(t),r=s.startsWith(t);if(o!==r)return o?-1:1;if(o&&r){if(i.length<s.length)return-1;if(i.length>s.length)return 1}return 0}var mP=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},X9=function(n,e){return function(t,i){e(t,i,n)}},Q9;const yd=ke;class xue{constructor(e,t,i){this.index=e,this.hasCheckbox=t,this._hidden=!1,this._init=new pu(()=>{var s;const o=(s=i.label)!==null&&s!==void 0?s:\"\",r=AS(o).text.trim(),a=i.ariaLabel||[o,this.saneDescription,this.saneDetail].map(l=>vWe(l)).filter(l=>!!l).join(\", \");return{saneLabel:o,saneSortLabel:r,saneAriaLabel:a}}),this._saneDescription=i.description,this._saneTooltip=i.tooltip}get saneLabel(){return this._init.value.saneLabel}get saneSortLabel(){return this._init.value.saneSortLabel}get saneAriaLabel(){return this._init.value.saneAriaLabel}get element(){return this._element}set element(e){this._element=e}get hidden(){return this._hidden}set hidden(e){this._hidden=e}get saneDescription(){return this._saneDescription}set saneDescription(e){this._saneDescription=e}get saneDetail(){return this._saneDetail}set saneDetail(e){this._saneDetail=e}get saneTooltip(){return this._saneTooltip}set saneTooltip(e){this._saneTooltip=e}get labelHighlights(){return this._labelHighlights}set labelHighlights(e){this._labelHighlights=e}get descriptionHighlights(){return this._descriptionHighlights}set descriptionHighlights(e){this._descriptionHighlights=e}get detailHighlights(){return this._detailHighlights}set detailHighlights(e){this._detailHighlights=e}}class sr extends xue{constructor(e,t,i,s,o,r){var a,l,c;super(e,t,o),this.fireButtonTriggered=i,this._onChecked=s,this.item=o,this._separator=r,this._checked=!1,this.onChecked=t?Ae.map(Ae.filter(this._onChecked.event,d=>d.element===this),d=>d.checked):Ae.None,this._saneDetail=o.detail,this._labelHighlights=(a=o.highlights)===null||a===void 0?void 0:a.label,this._descriptionHighlights=(l=o.highlights)===null||l===void 0?void 0:l.description,this._detailHighlights=(c=o.highlights)===null||c===void 0?void 0:c.detail}get separator(){return this._separator}set separator(e){this._separator=e}get checked(){return this._checked}set checked(e){e!==this._checked&&(this._checked=e,this._onChecked.fire({element:this,checked:e}))}get checkboxDisabled(){return!!this.item.disabled}}var ju;(function(n){n[n.NONE=0]=\"NONE\",n[n.MOUSE_HOVER=1]=\"MOUSE_HOVER\",n[n.ACTIVE_ITEM=2]=\"ACTIVE_ITEM\"})(ju||(ju={}));class Cp extends xue{constructor(e,t,i){super(e,!1,i),this.fireSeparatorButtonTriggered=t,this.separator=i,this.children=new Array,this.focusInsideSeparator=ju.NONE}}class j$e{getHeight(e){return e instanceof Cp?30:e.saneDetail?44:22}getTemplateId(e){return e instanceof sr?ek.ID:BD.ID}}class K$e{getWidgetAriaLabel(){return v(\"quickInput\",\"Quick Input\")}getAriaLabel(e){var t;return!((t=e.separator)===null||t===void 0)&&t.label?`${e.saneAriaLabel}, ${e.separator.label}`:e.saneAriaLabel}getWidgetRole(){return\"listbox\"}getRole(e){return e.hasCheckbox?\"checkbox\":\"option\"}isChecked(e){if(!(!e.hasCheckbox||!(e instanceof sr)))return{get value(){return e.checked},onDidChange:t=>e.onChecked(()=>t())}}}class Lue{constructor(e){this.hoverDelegate=e}renderTemplate(e){const t=Object.create(null);t.toDisposeElement=new be,t.toDisposeTemplate=new be,t.entry=we(e,yd(\".quick-input-list-entry\"));const i=we(t.entry,yd(\"label.quick-input-list-label\"));t.toDisposeTemplate.add(rs(i,Le.CLICK,c=>{t.checkbox.offsetParent||c.preventDefault()})),t.checkbox=we(i,yd(\"input.quick-input-list-checkbox\")),t.checkbox.type=\"checkbox\";const s=we(i,yd(\".quick-input-list-rows\")),o=we(s,yd(\".quick-input-list-row\")),r=we(s,yd(\".quick-input-list-row\"));t.label=new zA(o,{supportHighlights:!0,supportDescriptionHighlights:!0,supportIcons:!0,hoverDelegate:this.hoverDelegate}),t.toDisposeTemplate.add(t.label),t.icon=oz(t.label.element,yd(\".quick-input-list-icon\"));const a=we(o,yd(\".quick-input-list-entry-keybinding\"));t.keybinding=new $w(a,Da),t.toDisposeTemplate.add(t.keybinding);const l=we(r,yd(\".quick-input-list-label-meta\"));return t.detail=new zA(l,{supportHighlights:!0,supportIcons:!0,hoverDelegate:this.hoverDelegate}),t.toDisposeTemplate.add(t.detail),t.separator=we(t.entry,yd(\".quick-input-list-separator\")),t.actionBar=new hc(t.entry,this.hoverDelegate?{hoverDelegate:this.hoverDelegate}:void 0),t.actionBar.domNode.classList.add(\"quick-input-list-entry-action-bar\"),t.toDisposeTemplate.add(t.actionBar),t}disposeTemplate(e){e.toDisposeElement.dispose(),e.toDisposeTemplate.dispose()}disposeElement(e,t,i){i.toDisposeElement.clear(),i.actionBar.clear()}}let ek=Q9=class extends Lue{constructor(e,t){super(e),this.themeService=t,this._itemsWithSeparatorsFrequency=new Map}get templateId(){return Q9.ID}renderTemplate(e){const t=super.renderTemplate(e);return t.toDisposeTemplate.add(rs(t.checkbox,Le.CHANGE,i=>{t.element.checked=t.checkbox.checked})),t}renderElement(e,t,i){var s,o,r;const a=e.element;i.element=a,a.element=(s=i.entry)!==null&&s!==void 0?s:void 0;const l=a.item;i.checkbox.checked=a.checked,i.toDisposeElement.add(a.onChecked(p=>i.checkbox.checked=p)),i.checkbox.disabled=a.checkboxDisabled;const{labelHighlights:c,descriptionHighlights:d,detailHighlights:u}=a;if(l.iconPath){const p=HC(this.themeService.getColorTheme().type)?l.iconPath.dark:(o=l.iconPath.light)!==null&&o!==void 0?o:l.iconPath.dark,_=pt.revive(p);i.icon.className=\"quick-input-list-icon\",i.icon.style.backgroundImage=Ig(_)}else i.icon.style.backgroundImage=\"\",i.icon.className=l.iconClass?`quick-input-list-icon ${l.iconClass}`:\"\";let h;!a.saneTooltip&&a.saneDescription&&(h={markdown:{value:a.saneDescription,supportThemeIcons:!0},markdownNotSupportedFallback:a.saneDescription});const f={matches:c||[],descriptionTitle:h,descriptionMatches:d||[],labelEscapeNewLines:!0};if(f.extraClasses=l.iconClasses,f.italic=l.italic,f.strikethrough=l.strikethrough,i.entry.classList.remove(\"quick-input-list-separator-as-item\"),i.label.setLabel(a.saneLabel,a.saneDescription,f),i.keybinding.set(l.keybinding),a.saneDetail){let p;a.saneTooltip||(p={markdown:{value:a.saneDetail,supportThemeIcons:!0},markdownNotSupportedFallback:a.saneDetail}),i.detail.element.style.display=\"\",i.detail.setLabel(a.saneDetail,void 0,{matches:u,title:p,labelEscapeNewLines:!0})}else i.detail.element.style.display=\"none\";!((r=a.separator)===null||r===void 0)&&r.label?(i.separator.textContent=a.separator.label,i.separator.style.display=\"\",this.addItemWithSeparator(a)):i.separator.style.display=\"none\",i.entry.classList.toggle(\"quick-input-list-separator-border\",!!a.separator);const g=l.buttons;g&&g.length?(i.actionBar.push(g.map((p,_)=>AA(p,`id-${_}`,()=>a.fireButtonTriggered({button:p,item:a.item}))),{icon:!0,label:!1}),i.entry.classList.add(\"has-actions\")):i.entry.classList.remove(\"has-actions\")}disposeElement(e,t,i){this.removeItemWithSeparator(e.element),super.disposeElement(e,t,i)}isItemWithSeparatorVisible(e){return this._itemsWithSeparatorsFrequency.has(e)}addItemWithSeparator(e){this._itemsWithSeparatorsFrequency.set(e,(this._itemsWithSeparatorsFrequency.get(e)||0)+1)}removeItemWithSeparator(e){const t=this._itemsWithSeparatorsFrequency.get(e)||0;t>1?this._itemsWithSeparatorsFrequency.set(e,t-1):this._itemsWithSeparatorsFrequency.delete(e)}};ek.ID=\"quickpickitem\";ek=Q9=mP([X9(1,js)],ek);class BD extends Lue{constructor(){super(...arguments),this._visibleSeparatorsFrequency=new Map}get templateId(){return BD.ID}get visibleSeparators(){return[...this._visibleSeparatorsFrequency.keys()]}isSeparatorVisible(e){return this._visibleSeparatorsFrequency.has(e)}renderElement(e,t,i){var s;const o=e.element;i.element=o,o.element=(s=i.entry)!==null&&s!==void 0?s:void 0,o.element.classList.toggle(\"focus-inside\",!!o.focusInsideSeparator);const r=o.separator,{labelHighlights:a,descriptionHighlights:l,detailHighlights:c}=o;i.icon.style.backgroundImage=\"\",i.icon.className=\"\";let d;!o.saneTooltip&&o.saneDescription&&(d={markdown:{value:o.saneDescription,supportThemeIcons:!0},markdownNotSupportedFallback:o.saneDescription});const u={matches:a||[],descriptionTitle:d,descriptionMatches:l||[],labelEscapeNewLines:!0};if(i.entry.classList.add(\"quick-input-list-separator-as-item\"),i.label.setLabel(o.saneLabel,o.saneDescription,u),o.saneDetail){let f;o.saneTooltip||(f={markdown:{value:o.saneDetail,supportThemeIcons:!0},markdownNotSupportedFallback:o.saneDetail}),i.detail.element.style.display=\"\",i.detail.setLabel(o.saneDetail,void 0,{matches:c,title:f,labelEscapeNewLines:!0})}else i.detail.element.style.display=\"none\";i.separator.style.display=\"none\",i.entry.classList.add(\"quick-input-list-separator-border\");const h=r.buttons;h&&h.length?(i.actionBar.push(h.map((f,g)=>AA(f,`id-${g}`,()=>o.fireSeparatorButtonTriggered({button:f,separator:o.separator}))),{icon:!0,label:!1}),i.entry.classList.add(\"has-actions\")):i.entry.classList.remove(\"has-actions\"),this.addSeparator(o)}disposeElement(e,t,i){var s;this.removeSeparator(e.element),this.isSeparatorVisible(e.element)||(s=e.element.element)===null||s===void 0||s.classList.remove(\"focus-inside\"),super.disposeElement(e,t,i)}addSeparator(e){this._visibleSeparatorsFrequency.set(e,(this._visibleSeparatorsFrequency.get(e)||0)+1)}removeSeparator(e){const t=this._visibleSeparatorsFrequency.get(e)||0;t>1?this._visibleSeparatorsFrequency.set(e,t-1):this._visibleSeparatorsFrequency.delete(e)}}BD.ID=\"quickpickseparator\";let tk=class extends ne{constructor(e,t,i,s,o,r){super(),this.parent=e,this.hoverDelegate=t,this.linkOpenerDelegate=i,this.accessibilityService=r,this._onKeyDown=new X,this._onLeave=new X,this.onLeave=this._onLeave.event,this._onChangedAllVisibleChecked=new X,this.onChangedAllVisibleChecked=this._onChangedAllVisibleChecked.event,this._onChangedCheckedCount=new X,this.onChangedCheckedCount=this._onChangedCheckedCount.event,this._onChangedVisibleCount=new X,this.onChangedVisibleCount=this._onChangedVisibleCount.event,this._onChangedCheckedElements=new X,this.onChangedCheckedElements=this._onChangedCheckedElements.event,this._onButtonTriggered=new X,this.onButtonTriggered=this._onButtonTriggered.event,this._onSeparatorButtonTriggered=new X,this.onSeparatorButtonTriggered=this._onSeparatorButtonTriggered.event,this._elementChecked=new X,this._inputElements=new Array,this._elementTree=new Array,this._itemElements=new Array,this._elementDisposable=this._register(new be),this._shouldFireCheckedEvents=!0,this._matchOnDescription=!1,this._matchOnDetail=!1,this._matchOnLabel=!0,this._matchOnLabelMode=\"fuzzy\",this._sortByLabel=!0,this._shouldLoop=!0,this._container=we(this.parent,yd(\".quick-input-list\")),this._separatorRenderer=new BD(t),this._itemRenderer=o.createInstance(ek,t),this._tree=this._register(o.createInstance(Z9,\"QuickInput\",this._container,new j$e,[this._itemRenderer,this._separatorRenderer],{accessibilityProvider:new K$e,setRowLineHeight:!1,multipleSelectionSupport:!1,hideTwistiesOfChildlessElements:!0,renderIndentGuides:ew.None,findWidgetEnabled:!1,indent:0,horizontalScrolling:!1,allowNonCollapsibleParents:!0,alwaysConsumeMouseWheel:!0})),this._tree.getHTMLElement().id=s,this._registerListeners()}get onDidChangeFocus(){return Ae.map(this._tree.onDidChangeFocus,e=>e.elements.filter(t=>t instanceof sr).map(t=>t.item))}get onDidChangeSelection(){return Ae.map(this._tree.onDidChangeSelection,e=>({items:e.elements.filter(t=>t instanceof sr).map(t=>t.item),event:e.browserEvent}))}get scrollTop(){return this._tree.scrollTop}set scrollTop(e){this._tree.scrollTop=e}get ariaLabel(){return this._tree.ariaLabel}set ariaLabel(e){this._tree.ariaLabel=e??\"\"}set enabled(e){this._tree.getHTMLElement().style.pointerEvents=e?\"\":\"none\"}get matchOnDescription(){return this._matchOnDescription}set matchOnDescription(e){this._matchOnDescription=e}get matchOnDetail(){return this._matchOnDetail}set matchOnDetail(e){this._matchOnDetail=e}get matchOnLabel(){return this._matchOnLabel}set matchOnLabel(e){this._matchOnLabel=e}get matchOnLabelMode(){return this._matchOnLabelMode}set matchOnLabelMode(e){this._matchOnLabelMode=e}get sortByLabel(){return this._sortByLabel}set sortByLabel(e){this._sortByLabel=e}get shouldLoop(){return this._shouldLoop}set shouldLoop(e){this._shouldLoop=e}_registerListeners(){this._registerOnKeyDown(),this._registerOnContainerClick(),this._registerOnMouseMiddleClick(),this._registerOnElementChecked(),this._registerOnContextMenu(),this._registerHoverListeners(),this._registerSelectionChangeListener(),this._registerSeparatorActionShowingListeners()}_registerOnKeyDown(){this._register(this._tree.onKeyDown(e=>{const t=new ln(e);switch(t.keyCode){case 10:this.toggleCheckbox();break}this._onKeyDown.fire(t)}))}_registerOnContainerClick(){this._register(ce(this._container,Le.CLICK,e=>{(e.x||e.y)&&this._onLeave.fire()}))}_registerOnMouseMiddleClick(){this._register(ce(this._container,Le.AUXCLICK,e=>{e.button===1&&this._onLeave.fire()}))}_registerOnElementChecked(){this._register(this._elementChecked.event(e=>this._fireCheckedEvents()))}_registerOnContextMenu(){this._register(this._tree.onContextMenu(e=>{e.element&&(e.browserEvent.preventDefault(),this._tree.setSelection([e.element]))}))}_registerHoverListeners(){const e=this._register(new Iae(this.hoverDelegate.delay));this._register(this._tree.onMouseOver(async t=>{var i;if(yY(t.browserEvent.target)){e.cancel();return}if(!(!yY(t.browserEvent.relatedTarget)&&Zs(t.browserEvent.relatedTarget,(i=t.element)===null||i===void 0?void 0:i.element)))try{await e.trigger(async()=>{t.element instanceof sr&&this.showHover(t.element)})}catch(s){if(!ld(s))throw s}})),this._register(this._tree.onMouseOut(t=>{var i;Zs(t.browserEvent.relatedTarget,(i=t.element)===null||i===void 0?void 0:i.element)||e.cancel()}))}_registerSeparatorActionShowingListeners(){this._register(this._tree.onDidChangeFocus(e=>{const t=e.elements[0]?this._tree.getParentElement(e.elements[0]):null;for(const i of this._separatorRenderer.visibleSeparators){const s=i===t;!!(i.focusInsideSeparator&ju.ACTIVE_ITEM)!==s&&(s?i.focusInsideSeparator|=ju.ACTIVE_ITEM:i.focusInsideSeparator&=~ju.ACTIVE_ITEM,this._tree.rerender(i))}})),this._register(this._tree.onMouseOver(e=>{const t=e.element?this._tree.getParentElement(e.element):null;for(const i of this._separatorRenderer.visibleSeparators){if(i!==t)continue;!!(i.focusInsideSeparator&ju.MOUSE_HOVER)||(i.focusInsideSeparator|=ju.MOUSE_HOVER,this._tree.rerender(i))}})),this._register(this._tree.onMouseOut(e=>{const t=e.element?this._tree.getParentElement(e.element):null;for(const i of this._separatorRenderer.visibleSeparators){if(i!==t)continue;!!(i.focusInsideSeparator&ju.MOUSE_HOVER)&&(i.focusInsideSeparator&=~ju.MOUSE_HOVER,this._tree.rerender(i))}}))}_registerSelectionChangeListener(){this._register(this._tree.onDidChangeSelection(e=>{const t=e.elements.filter(i=>i instanceof sr);t.length!==e.elements.length&&(e.elements.length===1&&e.elements[0]instanceof Cp&&(this._tree.setFocus([e.elements[0].children[0]]),this._tree.reveal(e.elements[0],0)),this._tree.setSelection(t))}))}getAllVisibleChecked(){return this._allVisibleChecked(this._itemElements,!1)}getCheckedCount(){return this._itemElements.filter(e=>e.checked).length}getVisibleCount(){return this._itemElements.filter(e=>!e.hidden).length}setAllVisibleChecked(e){try{this._shouldFireCheckedEvents=!1,this._itemElements.forEach(t=>{!t.hidden&&!t.checkboxDisabled&&(t.checked=e)})}finally{this._shouldFireCheckedEvents=!0,this._fireCheckedEvents()}}setElements(e){this._elementDisposable.clear(),this._inputElements=e;const t=this.parent.classList.contains(\"show-checkboxes\");let i;this._itemElements=new Array,this._elementTree=e.reduce((r,a,l)=>{let c;if(a.type===\"separator\"){if(!a.buttons)return r;i=new Cp(l,d=>this.fireSeparatorButtonTriggered(d),a),c=i}else{const d=l>0?e[l-1]:void 0;let u;d&&d.type===\"separator\"&&!d.buttons&&(i=void 0,u=d);const h=new sr(l,t,f=>this.fireButtonTriggered(f),this._elementChecked,a,u);if(this._itemElements.push(h),i)return i.children.push(h),r;c=h}return r.push(c),r},new Array);const s=new Array;let o=0;for(const r of this._elementTree)r instanceof Cp?(s.push({element:r,collapsible:!1,collapsed:!1,children:r.children.map(a=>({element:a,collapsible:!1,collapsed:!1}))}),o+=r.children.length+1):(s.push({element:r,collapsible:!1,collapsed:!1}),o++);this._tree.setChildren(null,s),this._onChangedVisibleCount.fire(o),this.accessibilityService.isScreenReaderOptimized()&&setTimeout(()=>{const r=this._tree.getHTMLElement().querySelector(\".monaco-list-row.focused\"),a=r==null?void 0:r.parentNode;if(r&&a){const l=r.nextSibling;a.removeChild(r),a.insertBefore(r,l)}},0)}setFocusedElements(e){const t=e.map(i=>this._itemElements.find(s=>s.item===i)).filter(i=>!!i);if(this._tree.setFocus(t),e.length>0){const i=this._tree.getFocus()[0];i&&this._tree.reveal(i)}}getActiveDescendant(){return this._tree.getHTMLElement().getAttribute(\"aria-activedescendant\")}setSelectedElements(e){const t=e.map(i=>this._itemElements.find(s=>s.item===i)).filter(i=>!!i);this._tree.setSelection(t)}getCheckedElements(){return this._itemElements.filter(e=>e.checked).map(e=>e.item)}setCheckedElements(e){try{this._shouldFireCheckedEvents=!1;const t=new Set;for(const i of e)t.add(i);for(const i of this._itemElements)i.checked=t.has(i.item)}finally{this._shouldFireCheckedEvents=!0,this._fireCheckedEvents()}}focus(e){var t;if(this._itemElements.length)switch(e===_n.Second&&this._itemElements.length<2&&(e=_n.First),e){case _n.First:this._tree.scrollTop=0,this._tree.focusFirst(void 0,i=>i.element instanceof sr);break;case _n.Second:this._tree.scrollTop=0,this._tree.setFocus([this._itemElements[1]]);break;case _n.Last:this._tree.scrollTop=this._tree.scrollHeight,this._tree.setFocus([this._itemElements[this._itemElements.length-1]]);break;case _n.Next:{const i=this._tree.getFocus();this._tree.focusNext(void 0,this._shouldLoop,void 0,o=>o.element instanceof sr?(this._tree.reveal(o.element),!0):!1);const s=this._tree.getFocus();i.length&&i[0]===s[0]&&i[0]===this._itemElements[this._itemElements.length-1]&&this._onLeave.fire();break}case _n.Previous:{const i=this._tree.getFocus();this._tree.focusPrevious(void 0,this._shouldLoop,void 0,o=>{if(!(o.element instanceof sr))return!1;const r=this._tree.getParentElement(o.element);return r===null||r.children[0]!==o.element?this._tree.reveal(o.element):this._tree.reveal(r),!0});const s=this._tree.getFocus();i.length&&i[0]===s[0]&&i[0]===this._itemElements[0]&&this._onLeave.fire();break}case _n.NextPage:this._tree.focusNextPage(void 0,i=>i.element instanceof sr?(this._tree.reveal(i.element),!0):!1);break;case _n.PreviousPage:this._tree.focusPreviousPage(void 0,i=>{if(!(i.element instanceof sr))return!1;const s=this._tree.getParentElement(i.element);return s===null||s.children[0]!==i.element?this._tree.reveal(i.element):this._tree.reveal(s),!0});break;case _n.NextSeparator:{let i=!1;const s=this._tree.getFocus()[0];this._tree.focusNext(void 0,!0,void 0,r=>{if(i)return!0;if(r.element instanceof Cp)i=!0,this._separatorRenderer.isSeparatorVisible(r.element)?this._tree.reveal(r.element.children[0]):this._tree.reveal(r.element,0);else if(r.element instanceof sr){if(r.element.separator)return this._itemRenderer.isItemWithSeparatorVisible(r.element)?this._tree.reveal(r.element):this._tree.reveal(r.element,0),!0;if(r.element===this._elementTree[0])return this._tree.reveal(r.element,0),!0}return!1});const o=this._tree.getFocus()[0];s===o&&(this._tree.scrollTop=this._tree.scrollHeight,this._tree.setFocus([this._itemElements[this._itemElements.length-1]]));break}case _n.PreviousSeparator:{let i,s=!!(!((t=this._tree.getFocus()[0])===null||t===void 0)&&t.separator);this._tree.focusPrevious(void 0,!0,void 0,o=>{if(o.element instanceof Cp)s?i||(this._separatorRenderer.isSeparatorVisible(o.element)?this._tree.reveal(o.element):this._tree.reveal(o.element,0),i=o.element.children[0]):s=!0;else if(o.element instanceof sr&&!i){if(o.element.separator)this._itemRenderer.isItemWithSeparatorVisible(o.element)?this._tree.reveal(o.element):this._tree.reveal(o.element,0),i=o.element;else if(o.element===this._elementTree[0])return this._tree.reveal(o.element,0),!0}return!1}),i&&this._tree.setFocus([i]);break}}}clearFocus(){this._tree.setFocus([])}domFocus(){this._tree.domFocus()}layout(e){this._tree.getHTMLElement().style.maxHeight=e?`${Math.floor(e/44)*44+6}px`:\"\",this._tree.layout()}filter(e){if(!(this._sortByLabel||this._matchOnLabel||this._matchOnDescription||this._matchOnDetail))return this._tree.layout(),!1;const t=e;if(e=e.trim(),!e||!(this.matchOnLabel||this.matchOnDescription||this.matchOnDetail))this._itemElements.forEach(a=>{a.labelHighlights=void 0,a.descriptionHighlights=void 0,a.detailHighlights=void 0,a.hidden=!1;const l=a.index&&this._inputElements[a.index-1];a.item&&(a.separator=l&&l.type===\"separator\"&&!l.buttons?l:void 0)});else{let a;this._elementTree.forEach(l=>{var c,d,u,h;let f;this.matchOnLabelMode===\"fuzzy\"?f=this.matchOnLabel&&(c=T5(e,AS(l.saneLabel)))!==null&&c!==void 0?c:void 0:f=this.matchOnLabel&&(d=q$e(t,AS(l.saneLabel)))!==null&&d!==void 0?d:void 0;const g=this.matchOnDescription&&(u=T5(e,AS(l.saneDescription||\"\")))!==null&&u!==void 0?u:void 0,p=this.matchOnDetail&&(h=T5(e,AS(l.saneDetail||\"\")))!==null&&h!==void 0?h:void 0;if(f||g||p?(l.labelHighlights=f,l.descriptionHighlights=g,l.detailHighlights=p,l.hidden=!1):(l.labelHighlights=void 0,l.descriptionHighlights=void 0,l.detailHighlights=void 0,l.hidden=l.item?!l.item.alwaysShow:!0),l.item?l.separator=void 0:l.separator&&(l.hidden=!0),!this.sortByLabel){const _=l.index&&this._inputElements[l.index-1];a=_&&_.type===\"separator\"?_:a,a&&!l.hidden&&(l.separator=a,a=void 0)}})}const i=this._elementTree.filter(a=>!a.hidden);if(this.sortByLabel&&e){const a=e.toLowerCase();i.sort((l,c)=>G$e(l,c,a))}let s;const o=i.reduce((a,l,c)=>(l instanceof sr?s?s.children.push(l):a.push(l):l instanceof Cp&&(l.children=[],s=l,a.push(l)),a),new Array),r=new Array;for(const a of o)a instanceof Cp?r.push({element:a,collapsible:!1,collapsed:!1,children:a.children.map(l=>({element:l,collapsible:!1,collapsed:!1}))}):r.push({element:a,collapsible:!1,collapsed:!1});return this._tree.setChildren(null,r),this._tree.layout(),this._onChangedAllVisibleChecked.fire(this.getAllVisibleChecked()),this._onChangedVisibleCount.fire(i.length),!0}toggleCheckbox(){try{this._shouldFireCheckedEvents=!1;const e=this._tree.getFocus().filter(i=>i instanceof sr),t=this._allVisibleChecked(e);for(const i of e)i.checkboxDisabled||(i.checked=!t)}finally{this._shouldFireCheckedEvents=!0,this._fireCheckedEvents()}}display(e){this._container.style.display=e?\"\":\"none\"}isDisplayed(){return this._container.style.display!==\"none\"}style(e){this._tree.style(e)}toggleHover(){const e=this._tree.getFocus()[0];if(!(e!=null&&e.saneTooltip)||!(e instanceof sr))return;if(this._lastHover&&!this._lastHover.isDisposed){this._lastHover.dispose();return}this.showHover(e);const t=new be;t.add(this._tree.onDidChangeFocus(i=>{i.elements[0]instanceof sr&&this.showHover(i.elements[0])})),this._lastHover&&t.add(this._lastHover),this._elementDisposable.add(t)}_allVisibleChecked(e,t=!0){for(let i=0,s=e.length;i<s;i++){const o=e[i];if(!o.hidden)if(o.checked)t=!0;else return!1}return t}_fireCheckedEvents(){this._shouldFireCheckedEvents&&(this._onChangedAllVisibleChecked.fire(this.getAllVisibleChecked()),this._onChangedCheckedCount.fire(this.getCheckedCount()),this._onChangedCheckedElements.fire(this.getCheckedElements()))}fireButtonTriggered(e){this._onButtonTriggered.fire(e)}fireSeparatorButtonTriggered(e){this._onSeparatorButtonTriggered.fire(e)}showHover(e){var t,i,s;this._lastHover&&!this._lastHover.isDisposed&&((i=(t=this.hoverDelegate).onDidHideHover)===null||i===void 0||i.call(t),(s=this._lastHover)===null||s===void 0||s.dispose()),!(!e.element||!e.saneTooltip)&&(this._lastHover=this.hoverDelegate.showHover({content:e.saneTooltip,target:e.element,linkHandler:o=>{this.linkOpenerDelegate(o)},appearance:{showPointer:!0},container:this._container,position:{hoverPosition:1}},!1))}};mP([gs],tk.prototype,\"onDidChangeFocus\",null);mP([gs],tk.prototype,\"onDidChangeSelection\",null);tk=mP([X9(4,ht),X9(5,Ha)],tk);function q$e(n,e){const{text:t,iconOffsets:i}=e;if(!i||i.length===0)return KJ(n,t);const s=aD(t,\" \"),o=t.length-s.length,r=KJ(n,s);if(r)for(const a of r){const l=i[a.start+o]+o;a.start+=l,a.end+=l}return r}function KJ(n,e){const t=e.toLowerCase().indexOf(n.toLowerCase());return t!==-1?[{start:t,end:t+n.length}]:null}function G$e(n,e,t){const i=n.labelHighlights||[],s=e.labelHighlights||[];return i.length&&!s.length?-1:!i.length&&s.length?1:i.length===0&&s.length===0?0:$$e(n.saneSortLabel,e.saneSortLabel,t)}const kue={weight:200,when:pe.and(pe.equals(Yde,\"quickPick\"),yze),metadata:{description:v(\"quickPick\",\"Used while in the context of the quick pick. If you change one keybinding for this command, you should change all of the other keybindings (modifier variants) of this command as well.\")}};function xa(n,e={}){var t;Hr.registerCommandAndKeybindingRule({...kue,...n,secondary:Z$e(n.primary,(t=n.secondary)!==null&&t!==void 0?t:[],e)})}const $A=Xt?256:2048;function Z$e(n,e,t={}){return t.withAltMod&&e.push(512+n),t.withCtrlMod&&(e.push($A+n),t.withAltMod&&e.push(512+$A+n)),t.withCmdMod&&Xt&&(e.push(2048+n),t.withCtrlMod&&e.push(2304+n),t.withAltMod&&(e.push(2560+n),t.withCtrlMod&&e.push(2816+n))),e}function ol(n,e){return t=>{const i=t.get(Cc).currentQuickInput;if(i)return e&&i.quickNavigate?i.focus(e):i.focus(n)}}xa({id:\"quickInput.pageNext\",primary:12,handler:ol(_n.NextPage)},{withAltMod:!0,withCtrlMod:!0,withCmdMod:!0});xa({id:\"quickInput.pagePrevious\",primary:11,handler:ol(_n.PreviousPage)},{withAltMod:!0,withCtrlMod:!0,withCmdMod:!0});xa({id:\"quickInput.first\",primary:$A+14,handler:ol(_n.First)},{withAltMod:!0,withCmdMod:!0});xa({id:\"quickInput.last\",primary:$A+13,handler:ol(_n.Last)},{withAltMod:!0,withCmdMod:!0});xa({id:\"quickInput.next\",primary:18,handler:ol(_n.Next)},{withCtrlMod:!0});xa({id:\"quickInput.previous\",primary:16,handler:ol(_n.Previous)},{withCtrlMod:!0});const qJ=v(\"quickInput.nextSeparatorWithQuickAccessFallback\",\"If we're in quick access mode, this will navigate to the next item. If we are not in quick access mode, this will navigate to the next separator.\"),GJ=v(\"quickInput.previousSeparatorWithQuickAccessFallback\",\"If we're in quick access mode, this will navigate to the previous item. If we are not in quick access mode, this will navigate to the previous separator.\");Xt?(xa({id:\"quickInput.nextSeparatorWithQuickAccessFallback\",primary:2066,handler:ol(_n.NextSeparator,_n.Next),metadata:{description:qJ}}),xa({id:\"quickInput.nextSeparator\",primary:2578,secondary:[2322],handler:ol(_n.NextSeparator)},{withCtrlMod:!0}),xa({id:\"quickInput.previousSeparatorWithQuickAccessFallback\",primary:2064,handler:ol(_n.PreviousSeparator,_n.Previous),metadata:{description:GJ}}),xa({id:\"quickInput.previousSeparator\",primary:2576,secondary:[2320],handler:ol(_n.PreviousSeparator)},{withCtrlMod:!0})):(xa({id:\"quickInput.nextSeparatorWithQuickAccessFallback\",primary:530,handler:ol(_n.NextSeparator,_n.Next),metadata:{description:qJ}}),xa({id:\"quickInput.nextSeparator\",primary:2578,handler:ol(_n.NextSeparator)}),xa({id:\"quickInput.previousSeparatorWithQuickAccessFallback\",primary:528,handler:ol(_n.PreviousSeparator,_n.Previous),metadata:{description:GJ}}),xa({id:\"quickInput.previousSeparator\",primary:2576,handler:ol(_n.PreviousSeparator)}));xa({id:\"quickInput.acceptInBackground\",when:pe.and(kue.when,pe.or(gue.negate(),Lze)),primary:17,weight:250,handler:n=>{const e=n.get(Cc).currentQuickInput;e==null||e.accept(!0)}},{withAltMod:!0,withCtrlMod:!0,withCmdMod:!0});var Y$e=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},j5=function(n,e){return function(t,i){e(t,i,n)}},J9;const ba=ke;let UA=J9=class extends ne{get currentQuickInput(){var e;return(e=this.controller)!==null&&e!==void 0?e:void 0}get container(){return this._container}constructor(e,t,i,s){super(),this.options=e,this.layoutService=t,this.instantiationService=i,this.contextKeyService=s,this.enabled=!0,this.onDidAcceptEmitter=this._register(new X),this.onDidCustomEmitter=this._register(new X),this.onDidTriggerButtonEmitter=this._register(new X),this.keyMods={ctrlCmd:!1,alt:!1},this.controller=null,this.onShowEmitter=this._register(new X),this.onShow=this.onShowEmitter.event,this.onHideEmitter=this._register(new X),this.onHide=this.onHideEmitter.event,this.inQuickInputContext=wze.bindTo(this.contextKeyService),this.quickInputTypeContext=Sze.bindTo(this.contextKeyService),this.endOfQuickInputBoxContext=xze.bindTo(this.contextKeyService),this.idPrefix=e.idPrefix,this._container=e.container,this.styles=e.styles,this._register(Ae.runAndSubscribe(dM,({window:o,disposables:r})=>this.registerKeyModsListeners(o,r),{window:Ji,disposables:this._store})),this._register(_Me(o=>{this.ui&&gt(this.ui.container)===o&&(this.reparentUI(this.layoutService.mainContainer),this.layout(this.layoutService.mainContainerDimension,this.layoutService.mainContainerOffset.quickPickTop))}))}registerKeyModsListeners(e,t){const i=s=>{this.keyMods.ctrlCmd=s.ctrlKey||s.metaKey,this.keyMods.alt=s.altKey};for(const s of[Le.KEY_DOWN,Le.KEY_UP,Le.MOUSE_DOWN])t.add(ce(e,s,i,!0))}getUI(e){if(this.ui)return e&&gt(this._container)!==gt(this.layoutService.activeContainer)&&(this.reparentUI(this.layoutService.activeContainer),this.layout(this.layoutService.activeContainerDimension,this.layoutService.activeContainerOffset.quickPickTop)),this.ui;const t=we(this._container,ba(\".quick-input-widget.show-file-icons\"));t.tabIndex=-1,t.style.display=\"none\";const i=yl(t),s=we(t,ba(\".quick-input-titlebar\")),o=this._register(new hc(s,{hoverDelegate:this.options.hoverDelegate}));o.domNode.classList.add(\"quick-input-left-action-bar\");const r=we(s,ba(\".quick-input-title\")),a=this._register(new hc(s,{hoverDelegate:this.options.hoverDelegate}));a.domNode.classList.add(\"quick-input-right-action-bar\");const l=we(t,ba(\".quick-input-header\")),c=we(l,ba(\"input.quick-input-check-all\"));c.type=\"checkbox\",c.setAttribute(\"aria-label\",v(\"quickInput.checkAll\",\"Toggle all checkboxes\")),this._register(rs(c,Le.CHANGE,z=>{const K=c.checked;O.setAllVisibleChecked(K)})),this._register(ce(c,Le.CLICK,z=>{(z.x||z.y)&&f.setFocus()}));const d=we(l,ba(\".quick-input-description\")),u=we(l,ba(\".quick-input-and-message\")),h=we(u,ba(\".quick-input-filter\")),f=this._register(new Pze(h,this.styles.inputBox,this.styles.toggle));f.setAttribute(\"aria-describedby\",`${this.idPrefix}message`);const g=we(h,ba(\".quick-input-visible-count\"));g.setAttribute(\"aria-live\",\"polite\"),g.setAttribute(\"aria-atomic\",\"true\");const p=new j9(g,{countFormat:v({},\"{0} Results\")},this.styles.countBadge),_=we(h,ba(\".quick-input-count\"));_.setAttribute(\"aria-live\",\"polite\");const b=new j9(_,{countFormat:v({},\"{0} Selected\")},this.styles.countBadge),w=we(l,ba(\".quick-input-action\")),y=this._register(new RA(w,this.styles.button));y.label=v(\"ok\",\"OK\"),this._register(y.onDidClick(z=>{this.onDidAcceptEmitter.fire()}));const S=we(l,ba(\".quick-input-action\")),x=this._register(new RA(S,{...this.styles.button,supportIcons:!0}));x.label=v(\"custom\",\"Custom\"),this._register(x.onDidClick(z=>{this.onDidCustomEmitter.fire()}));const k=we(u,ba(`#${this.idPrefix}message.quick-input-message`)),D=this._register(new lP(t,this.styles.progressBar));D.getContainer().classList.add(\"quick-input-progress\");const I=we(t,ba(\".quick-input-html-widget\"));I.tabIndex=-1;const N=we(t,ba(\".quick-input-description\")),P=this.idPrefix+\"list\",O=this._register(this.instantiationService.createInstance(tk,t,this.options.hoverDelegate,this.options.linkOpenerDelegate,P));f.setAttribute(\"aria-controls\",P),this._register(O.onDidChangeFocus(()=>{var z;f.setAttribute(\"aria-activedescendant\",(z=O.getActiveDescendant())!==null&&z!==void 0?z:\"\")})),this._register(O.onChangedAllVisibleChecked(z=>{c.checked=z})),this._register(O.onChangedVisibleCount(z=>{p.setCount(z)})),this._register(O.onChangedCheckedCount(z=>{b.setCount(z)})),this._register(O.onLeave(()=>{setTimeout(()=>{this.controller&&(f.setFocus(),this.controller instanceof ZL&&this.controller.canSelectMany&&O.clearFocus())},0)}));const M=ou(t);return this._register(M),this._register(ce(t,Le.FOCUS,z=>{const K=this.getUI();if(Zs(z.relatedTarget,K.inputContainer)){const ae=K.inputBox.isSelectionAtEnd();this.endOfQuickInputBoxContext.get()!==ae&&this.endOfQuickInputBoxContext.set(ae)}Zs(z.relatedTarget,K.container)||(this.inQuickInputContext.set(!0),this.previousFocusElement=co(z.relatedTarget)?z.relatedTarget:void 0)},!0)),this._register(M.onDidBlur(()=>{!this.getUI().ignoreFocusOut&&!this.options.ignoreFocusOut()&&this.hide(JC.Blur),this.inQuickInputContext.set(!1),this.endOfQuickInputBoxContext.set(!1),this.previousFocusElement=void 0})),this._register(f.onKeyDown(z=>{const K=this.getUI().inputBox.isSelectionAtEnd();this.endOfQuickInputBoxContext.get()!==K&&this.endOfQuickInputBoxContext.set(K)})),this._register(ce(t,Le.FOCUS,z=>{f.setFocus()})),this._register(rs(t,Le.KEY_DOWN,z=>{if(!Zs(z.target,I))switch(z.keyCode){case 3:ii.stop(z,!0),this.enabled&&this.onDidAcceptEmitter.fire();break;case 9:ii.stop(z,!0),this.hide(JC.Gesture);break;case 2:if(!z.altKey&&!z.ctrlKey&&!z.metaKey){const K=[\".quick-input-list .monaco-action-bar .always-visible\",\".quick-input-list-entry:hover .monaco-action-bar\",\".monaco-list-row.focused .monaco-action-bar\"];if(t.classList.contains(\"show-checkboxes\")?K.push(\"input\"):K.push(\"input[type=text]\"),this.getUI().list.isDisplayed()&&K.push(\".monaco-list\"),this.getUI().message&&K.push(\".quick-input-message a\"),this.getUI().widget){if(Zs(z.target,this.getUI().widget))break;K.push(\".quick-input-html-widget\")}const ae=t.querySelectorAll(K.join(\", \"));z.shiftKey&&z.target===ae[0]?(ii.stop(z,!0),O.clearFocus()):!z.shiftKey&&Zs(z.target,ae[ae.length-1])&&(ii.stop(z,!0),ae[0].focus())}break;case 10:z.ctrlKey&&(ii.stop(z,!0),this.getUI().list.toggleHover());break}})),this.ui={container:t,styleSheet:i,leftActionBar:o,titleBar:s,title:r,description1:N,description2:d,widget:I,rightActionBar:a,checkAll:c,inputContainer:u,filterContainer:h,inputBox:f,visibleCountContainer:g,visibleCount:p,countContainer:_,count:b,okContainer:w,ok:y,message:k,customButtonContainer:S,customButton:x,list:O,progressBar:D,onDidAccept:this.onDidAcceptEmitter.event,onDidCustom:this.onDidCustomEmitter.event,onDidTriggerButton:this.onDidTriggerButtonEmitter.event,ignoreFocusOut:!1,keyMods:this.keyMods,show:z=>this.show(z),hide:()=>this.hide(),setVisibilities:z=>this.setVisibilities(z),setEnabled:z=>this.setEnabled(z),setContextKey:z=>this.options.setContextKey(z),linkOpenerDelegate:z=>this.options.linkOpenerDelegate(z)},this.updateStyles(),this.ui}reparentUI(e){this.ui&&(this._container=e,we(this._container,this.ui.container))}pick(e,t={},i=Qt.None){return new Promise((s,o)=>{let r=d=>{var u;r=s,(u=t.onKeyMods)===null||u===void 0||u.call(t,a.keyMods),s(d)};if(i.isCancellationRequested){r(void 0);return}const a=this.createQuickPick();let l;const c=[a,a.onDidAccept(()=>{if(a.canSelectMany)r(a.selectedItems.slice()),a.hide();else{const d=a.activeItems[0];d&&(r(d),a.hide())}}),a.onDidChangeActive(d=>{const u=d[0];u&&t.onDidFocus&&t.onDidFocus(u)}),a.onDidChangeSelection(d=>{if(!a.canSelectMany){const u=d[0];u&&(r(u),a.hide())}}),a.onDidTriggerItemButton(d=>t.onDidTriggerItemButton&&t.onDidTriggerItemButton({...d,removeItem:()=>{const u=a.items.indexOf(d.item);if(u!==-1){const h=a.items.slice(),f=h.splice(u,1),g=a.activeItems.filter(_=>_!==f[0]),p=a.keepScrollPosition;a.keepScrollPosition=!0,a.items=h,g&&(a.activeItems=g),a.keepScrollPosition=p}}})),a.onDidTriggerSeparatorButton(d=>{var u;return(u=t.onDidTriggerSeparatorButton)===null||u===void 0?void 0:u.call(t,d)}),a.onDidChangeValue(d=>{l&&!d&&(a.activeItems.length!==1||a.activeItems[0]!==l)&&(a.activeItems=[l])}),i.onCancellationRequested(()=>{a.hide()}),a.onDidHide(()=>{tn(c),r(void 0)})];a.title=t.title,a.canSelectMany=!!t.canPickMany,a.placeholder=t.placeHolder,a.ignoreFocusOut=!!t.ignoreFocusLost,a.matchOnDescription=!!t.matchOnDescription,a.matchOnDetail=!!t.matchOnDetail,a.matchOnLabel=t.matchOnLabel===void 0||t.matchOnLabel,a.quickNavigate=t.quickNavigate,a.hideInput=!!t.hideInput,a.contextKey=t.contextKey,a.busy=!0,Promise.all([e,t.activeItem]).then(([d,u])=>{l=u,a.busy=!1,a.items=d,a.canSelectMany&&(a.selectedItems=d.filter(h=>h.type!==\"separator\"&&h.picked)),l&&(a.activeItems=[l])}),a.show(),Promise.resolve(e).then(void 0,d=>{o(d),a.hide()})})}createQuickPick(){const e=this.getUI(!0);return new ZL(e)}createInputBox(){const e=this.getUI(!0);return new kze(e)}show(e){const t=this.getUI(!0);this.onShowEmitter.fire();const i=this.controller;this.controller=e,i==null||i.didHide(),this.setEnabled(!0),t.leftActionBar.clear(),t.title.textContent=\"\",t.description1.textContent=\"\",t.description2.textContent=\"\",yo(t.widget),t.rightActionBar.clear(),t.checkAll.checked=!1,t.inputBox.placeholder=\"\",t.inputBox.password=!1,t.inputBox.showDecoration(us.Ignore),t.visibleCount.setCount(0),t.count.setCount(0),yo(t.message),t.progressBar.stop(),t.list.setElements([]),t.list.matchOnDescription=!1,t.list.matchOnDetail=!1,t.list.matchOnLabel=!0,t.list.sortByLabel=!0,t.ignoreFocusOut=!1,t.inputBox.toggles=void 0;const s=this.options.backKeybindingLabel();$9.tooltip=s?v(\"quickInput.backWithKeybinding\",\"Back ({0})\",s):v(\"quickInput.back\",\"Back\"),t.container.style.display=\"\",this.updateLayout(),t.inputBox.setFocus(),this.quickInputTypeContext.set(e.type)}isVisible(){return!!this.ui&&this.ui.container.style.display!==\"none\"}setVisibilities(e){const t=this.getUI();t.title.style.display=e.title?\"\":\"none\",t.description1.style.display=e.description&&(e.inputBox||e.checkAll)?\"\":\"none\",t.description2.style.display=e.description&&!(e.inputBox||e.checkAll)?\"\":\"none\",t.checkAll.style.display=e.checkAll?\"\":\"none\",t.inputContainer.style.display=e.inputBox?\"\":\"none\",t.filterContainer.style.display=e.inputBox?\"\":\"none\",t.visibleCountContainer.style.display=e.visibleCount?\"\":\"none\",t.countContainer.style.display=e.count?\"\":\"none\",t.okContainer.style.display=e.ok?\"\":\"none\",t.customButtonContainer.style.display=e.customButton?\"\":\"none\",t.message.style.display=e.message?\"\":\"none\",t.progressBar.getContainer().style.display=e.progressBar?\"\":\"none\",t.list.display(!!e.list),t.container.classList.toggle(\"show-checkboxes\",!!e.checkBox),t.container.classList.toggle(\"hidden-input\",!e.inputBox&&!e.description),this.updateLayout()}setEnabled(e){if(e!==this.enabled){this.enabled=e;for(const t of this.getUI().leftActionBar.viewItems)t.action.enabled=e;for(const t of this.getUI().rightActionBar.viewItems)t.action.enabled=e;this.getUI().checkAll.disabled=!e,this.getUI().inputBox.enabled=e,this.getUI().ok.enabled=e,this.getUI().list.enabled=e}}hide(e){var t,i;const s=this.controller;if(!s)return;s.willHide(e);const o=(t=this.ui)===null||t===void 0?void 0:t.container,r=o&&!jae(o);if(this.controller=null,this.onHideEmitter.fire(),o&&(o.style.display=\"none\"),!r){let a=this.previousFocusElement;for(;a&&!a.offsetParent;)a=(i=a.parentElement)!==null&&i!==void 0?i:void 0;a!=null&&a.offsetParent?(a.focus(),this.previousFocusElement=void 0):this.options.returnFocus()}s.didHide(e)}layout(e,t){this.dimension=e,this.titleBarOffset=t,this.updateLayout()}updateLayout(){if(this.ui&&this.isVisible()){this.ui.container.style.top=`${this.titleBarOffset}px`;const e=this.ui.container.style,t=Math.min(this.dimension.width*.62,J9.MAX_WIDTH);e.width=t+\"px\",e.marginLeft=\"-\"+t/2+\"px\",this.ui.inputBox.layout(),this.ui.list.layout(this.dimension&&this.dimension.height*.4)}}applyStyles(e){this.styles=e,this.updateStyles()}updateStyles(){if(this.ui){const{quickInputTitleBackground:e,quickInputBackground:t,quickInputForeground:i,widgetBorder:s,widgetShadow:o}=this.styles.widget;this.ui.titleBar.style.backgroundColor=e??\"\",this.ui.container.style.backgroundColor=t??\"\",this.ui.container.style.color=i??\"\",this.ui.container.style.border=s?`1px solid ${s}`:\"\",this.ui.container.style.boxShadow=o?`0 0 8px 2px ${o}`:\"\",this.ui.list.style(this.styles.list);const r=[];this.styles.pickerGroup.pickerGroupBorder&&r.push(`.quick-input-list .quick-input-list-entry { border-top-color:  ${this.styles.pickerGroup.pickerGroupBorder}; }`),this.styles.pickerGroup.pickerGroupForeground&&r.push(`.quick-input-list .quick-input-list-separator { color:  ${this.styles.pickerGroup.pickerGroupForeground}; }`),this.styles.pickerGroup.pickerGroupForeground&&r.push(\".quick-input-list .quick-input-list-separator-as-item { color: var(--vscode-descriptionForeground); }\"),(this.styles.keybindingLabel.keybindingLabelBackground||this.styles.keybindingLabel.keybindingLabelBorder||this.styles.keybindingLabel.keybindingLabelBottomBorder||this.styles.keybindingLabel.keybindingLabelShadow||this.styles.keybindingLabel.keybindingLabelForeground)&&(r.push(\".quick-input-list .monaco-keybinding > .monaco-keybinding-key {\"),this.styles.keybindingLabel.keybindingLabelBackground&&r.push(`background-color: ${this.styles.keybindingLabel.keybindingLabelBackground};`),this.styles.keybindingLabel.keybindingLabelBorder&&r.push(`border-color: ${this.styles.keybindingLabel.keybindingLabelBorder};`),this.styles.keybindingLabel.keybindingLabelBottomBorder&&r.push(`border-bottom-color: ${this.styles.keybindingLabel.keybindingLabelBottomBorder};`),this.styles.keybindingLabel.keybindingLabelShadow&&r.push(`box-shadow: inset 0 -1px 0 ${this.styles.keybindingLabel.keybindingLabelShadow};`),this.styles.keybindingLabel.keybindingLabelForeground&&r.push(`color: ${this.styles.keybindingLabel.keybindingLabelForeground};`),r.push(\"}\"));const a=r.join(`\n`);a!==this.ui.styleSheet.textContent&&(this.ui.styleSheet.textContent=a)}}};UA.MAX_WIDTH=600;UA=J9=Y$e([j5(1,g_),j5(2,ht),j5(3,Ct)],UA);var X$e=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},qy=function(n,e){return function(t,i){e(t,i,n)}};let e6=class extends E3e{get controller(){return this._controller||(this._controller=this._register(this.createController())),this._controller}get hasController(){return!!this._controller}get currentQuickInput(){return this.controller.currentQuickInput}get quickAccess(){return this._quickAccess||(this._quickAccess=this._register(this.instantiationService.createInstance(z9))),this._quickAccess}constructor(e,t,i,s,o){super(i),this.instantiationService=e,this.contextKeyService=t,this.layoutService=s,this.configurationService=o,this._onShow=this._register(new X),this._onHide=this._register(new X),this.contexts=new Map}createController(e=this.layoutService,t){const i={idPrefix:\"quickInput_\",container:e.activeContainer,ignoreFocusOut:()=>!1,backKeybindingLabel:()=>{},setContextKey:o=>this.setContextKey(o),linkOpenerDelegate:o=>{this.instantiationService.invokeFunction(r=>{r.get($a).open(o,{allowCommands:!0,fromUserGesture:!0})})},returnFocus:()=>e.focus(),styles:this.computeStyles(),hoverDelegate:this._register(this.instantiationService.createInstance(U9))},s=this._register(this.instantiationService.createInstance(UA,{...i,...t}));return s.layout(e.activeContainerDimension,e.activeContainerOffset.quickPickTop),this._register(e.onDidLayoutActiveContainer(o=>{gt(e.activeContainer)===gt(s.container)&&s.layout(o,e.activeContainerOffset.quickPickTop)})),this._register(e.onDidChangeActiveContainer(()=>{s.isVisible()||s.layout(e.activeContainerDimension,e.activeContainerOffset.quickPickTop)})),this._register(s.onShow(()=>{this.resetContextKeys(),this._onShow.fire()})),this._register(s.onHide(()=>{this.resetContextKeys(),this._onHide.fire()})),s}setContextKey(e){let t;e&&(t=this.contexts.get(e),t||(t=new He(e,!1).bindTo(this.contextKeyService),this.contexts.set(e,t))),!(t&&t.get())&&(this.resetContextKeys(),t==null||t.set(!0))}resetContextKeys(){this.contexts.forEach(e=>{e.get()&&e.reset()})}pick(e,t={},i=Qt.None){return this.controller.pick(e,t,i)}createQuickPick(){return this.controller.createQuickPick()}createInputBox(){return this.controller.createInputBox()}updateStyles(){this.hasController&&this.controller.applyStyles(this.computeStyles())}computeStyles(){return{widget:{quickInputBackground:Ge(RX),quickInputForeground:Ge(B5e),quickInputTitleBackground:Ge(W5e),widgetBorder:Ge($le),widgetShadow:Ge(ig)},inputBox:kA,toggle:LA,countBadge:Ude,button:qVe,progressBar:GVe,keybindingLabel:KVe,list:tb({listBackground:RX,listFocusBackground:Gp,listFocusForeground:qp,listInactiveFocusForeground:qp,listInactiveSelectionIconForeground:S1,listInactiveFocusBackground:Gp,listFocusOutline:En,listInactiveFocusOutline:En}),pickerGroup:{pickerGroupBorder:Ge(H5e),pickerGroupForeground:Ge(Zle)}}}};e6=X$e([qy(0,ht),qy(1,Ct),qy(2,js),qy(3,g_),qy(4,qt)],e6);var Due=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},bv=function(n,e){return function(t,i){e(t,i,n)}};let t6=class extends e6{constructor(e,t,i,s,o,r){super(t,i,s,new i9(e.getContainerDomNode(),o),r),this.host=void 0;const a=tw.get(e);if(a){const l=a.widget;this.host={_serviceBrand:void 0,get mainContainer(){return l.getDomNode()},getContainer(){return l.getDomNode()},whenContainerStylesLoaded(){},get containers(){return[l.getDomNode()]},get activeContainer(){return l.getDomNode()},get mainContainerDimension(){return e.getLayoutInfo()},get activeContainerDimension(){return e.getLayoutInfo()},get onDidLayoutMainContainer(){return e.onDidLayoutChange},get onDidLayoutActiveContainer(){return e.onDidLayoutChange},get onDidLayoutContainer(){return Ae.map(e.onDidLayoutChange,c=>({container:l.getDomNode(),dimension:c}))},get onDidChangeActiveContainer(){return Ae.None},get onDidAddContainer(){return Ae.None},get mainContainerOffset(){return{top:0,quickPickTop:0}},get activeContainerOffset(){return{top:0,quickPickTop:0}},focus:()=>e.focus()}}else this.host=void 0}createController(){return super.createController(this.host)}};t6=Due([bv(1,ht),bv(2,Ct),bv(3,js),bv(4,vi),bv(5,qt)],t6);let i6=class{get activeService(){const e=this.codeEditorService.getFocusedCodeEditor();if(!e)throw new Error(\"Quick input service needs a focused editor to work.\");let t=this.mapEditorToService.get(e);if(!t){const i=t=this.instantiationService.createInstance(t6,e);this.mapEditorToService.set(e,t),Am(e.onDidDispose)(()=>{i.dispose(),this.mapEditorToService.delete(e)})}return t}get currentQuickInput(){return this.activeService.currentQuickInput}get quickAccess(){return this.activeService.quickAccess}constructor(e,t){this.instantiationService=e,this.codeEditorService=t,this.mapEditorToService=new Map}pick(e,t={},i=Qt.None){return this.activeService.pick(e,t,i)}createQuickPick(){return this.activeService.createQuickPick()}createInputBox(){return this.activeService.createInputBox()}};i6=Due([bv(0,ht),bv(1,vi)],i6);class tw{static get(e){return e.getContribution(tw.ID)}constructor(e){this.editor=e,this.widget=new _P(this.editor)}dispose(){this.widget.dispose()}}tw.ID=\"editor.controller.quickInput\";class _P{constructor(e){this.codeEditor=e,this.domNode=document.createElement(\"div\"),this.codeEditor.addOverlayWidget(this)}getId(){return _P.ID}getDomNode(){return this.domNode}getPosition(){return{preference:2}}dispose(){this.codeEditor.removeOverlayWidget(this)}}_P.ID=\"editor.contrib.quickInputWidget\";bi(tw.ID,tw,4);class Q$e{constructor(e,t,i,s,o){this._parsedThemeRuleBrand=void 0,this.token=e,this.index=t,this.fontStyle=i,this.foreground=s,this.background=o}}function J$e(n){if(!n||!Array.isArray(n))return[];const e=[];let t=0;for(let i=0,s=n.length;i<s;i++){const o=n[i];let r=-1;if(typeof o.fontStyle==\"string\"){r=0;const c=o.fontStyle.split(\" \");for(let d=0,u=c.length;d<u;d++)switch(c[d]){case\"italic\":r=r|1;break;case\"bold\":r=r|2;break;case\"underline\":r=r|4;break;case\"strikethrough\":r=r|8;break}}let a=null;typeof o.foreground==\"string\"&&(a=o.foreground);let l=null;typeof o.background==\"string\"&&(l=o.background),e[t++]=new Q$e(o.token||\"\",i,r,a,l)}return e}function eUe(n,e){n.sort((d,u)=>{const h=oUe(d.token,u.token);return h!==0?h:d.index-u.index});let t=0,i=\"000000\",s=\"ffffff\";for(;n.length>=1&&n[0].token===\"\";){const d=n.shift();d.fontStyle!==-1&&(t=d.fontStyle),d.foreground!==null&&(i=d.foreground),d.background!==null&&(s=d.background)}const o=new iUe;for(const d of e)o.getId(d);const r=o.getId(i),a=o.getId(s),l=new U$(t,r,a),c=new j$(l);for(let d=0,u=n.length;d<u;d++){const h=n[d];c.insert(h.token,h.fontStyle,o.getId(h.foreground),o.getId(h.background))}return new Iue(o,c)}const tUe=/^#?([0-9A-Fa-f]{6})([0-9A-Fa-f]{2})?$/;class iUe{constructor(){this._lastColorId=0,this._id2color=[],this._color2id=new Map}getId(e){if(e===null)return 0;const t=e.match(tUe);if(!t)throw new Error(\"Illegal value for token color: \"+e);e=t[1].toUpperCase();let i=this._color2id.get(e);return i||(i=++this._lastColorId,this._color2id.set(e,i),this._id2color[i]=le.fromHex(\"#\"+e),i)}getColorMap(){return this._id2color.slice(0)}}class Iue{static createFromRawTokenTheme(e,t){return this.createFromParsedTokenTheme(J$e(e),t)}static createFromParsedTokenTheme(e,t){return eUe(e,t)}constructor(e,t){this._colorMap=e,this._root=t,this._cache=new Map}getColorMap(){return this._colorMap.getColorMap()}_match(e){return this._root.match(e)}match(e,t){let i=this._cache.get(t);if(typeof i>\"u\"){const s=this._match(t),o=sUe(t);i=(s.metadata|o<<8)>>>0,this._cache.set(t,i)}return(i|e<<0)>>>0}}const nUe=/\\b(comment|string|regex|regexp)\\b/;function sUe(n){const e=n.match(nUe);if(!e)return 0;switch(e[1]){case\"comment\":return 1;case\"string\":return 2;case\"regex\":return 3;case\"regexp\":return 3}throw new Error(\"Unexpected match for standard token type!\")}function oUe(n,e){return n<e?-1:n>e?1:0}class U${constructor(e,t,i){this._themeTrieElementRuleBrand=void 0,this._fontStyle=e,this._foreground=t,this._background=i,this.metadata=(this._fontStyle<<11|this._foreground<<15|this._background<<24)>>>0}clone(){return new U$(this._fontStyle,this._foreground,this._background)}acceptOverwrite(e,t,i){e!==-1&&(this._fontStyle=e),t!==0&&(this._foreground=t),i!==0&&(this._background=i),this.metadata=(this._fontStyle<<11|this._foreground<<15|this._background<<24)>>>0}}class j${constructor(e){this._themeTrieElementBrand=void 0,this._mainRule=e,this._children=new Map}match(e){if(e===\"\")return this._mainRule;const t=e.indexOf(\".\");let i,s;t===-1?(i=e,s=\"\"):(i=e.substring(0,t),s=e.substring(t+1));const o=this._children.get(i);return typeof o<\"u\"?o.match(s):this._mainRule}insert(e,t,i,s){if(e===\"\"){this._mainRule.acceptOverwrite(t,i,s);return}const o=e.indexOf(\".\");let r,a;o===-1?(r=e,a=\"\"):(r=e.substring(0,o),a=e.substring(o+1));let l=this._children.get(r);typeof l>\"u\"&&(l=new j$(this._mainRule.clone()),this._children.set(r,l)),l.insert(a,t,i,s)}}function rUe(n){const e=[];for(let t=1,i=n.length;t<i;t++){const s=n[t];e[t]=`.mtk${t} { color: ${s}; }`}return e.push(\".mtki { font-style: italic; }\"),e.push(\".mtkb { font-weight: bold; }\"),e.push(\".mtku { text-decoration: underline; text-underline-position: under; }\"),e.push(\".mtks { text-decoration: line-through; }\"),e.push(\".mtks.mtku { text-decoration: underline line-through; text-underline-position: under; }\"),e.join(`\n`)}const aUe={base:\"vs\",inherit:!1,rules:[{token:\"\",foreground:\"000000\",background:\"fffffe\"},{token:\"invalid\",foreground:\"cd3131\"},{token:\"emphasis\",fontStyle:\"italic\"},{token:\"strong\",fontStyle:\"bold\"},{token:\"variable\",foreground:\"001188\"},{token:\"variable.predefined\",foreground:\"4864AA\"},{token:\"constant\",foreground:\"dd0000\"},{token:\"comment\",foreground:\"008000\"},{token:\"number\",foreground:\"098658\"},{token:\"number.hex\",foreground:\"3030c0\"},{token:\"regexp\",foreground:\"800000\"},{token:\"annotation\",foreground:\"808080\"},{token:\"type\",foreground:\"008080\"},{token:\"delimiter\",foreground:\"000000\"},{token:\"delimiter.html\",foreground:\"383838\"},{token:\"delimiter.xml\",foreground:\"0000FF\"},{token:\"tag\",foreground:\"800000\"},{token:\"tag.id.pug\",foreground:\"4F76AC\"},{token:\"tag.class.pug\",foreground:\"4F76AC\"},{token:\"meta.scss\",foreground:\"800000\"},{token:\"metatag\",foreground:\"e00000\"},{token:\"metatag.content.html\",foreground:\"FF0000\"},{token:\"metatag.html\",foreground:\"808080\"},{token:\"metatag.xml\",foreground:\"808080\"},{token:\"metatag.php\",fontStyle:\"bold\"},{token:\"key\",foreground:\"863B00\"},{token:\"string.key.json\",foreground:\"A31515\"},{token:\"string.value.json\",foreground:\"0451A5\"},{token:\"attribute.name\",foreground:\"FF0000\"},{token:\"attribute.value\",foreground:\"0451A5\"},{token:\"attribute.value.number\",foreground:\"098658\"},{token:\"attribute.value.unit\",foreground:\"098658\"},{token:\"attribute.value.html\",foreground:\"0000FF\"},{token:\"attribute.value.xml\",foreground:\"0000FF\"},{token:\"string\",foreground:\"A31515\"},{token:\"string.html\",foreground:\"0000FF\"},{token:\"string.sql\",foreground:\"FF0000\"},{token:\"string.yaml\",foreground:\"0451A5\"},{token:\"keyword\",foreground:\"0000FF\"},{token:\"keyword.json\",foreground:\"0451A5\"},{token:\"keyword.flow\",foreground:\"AF00DB\"},{token:\"keyword.flow.scss\",foreground:\"0000FF\"},{token:\"operator.scss\",foreground:\"666666\"},{token:\"operator.sql\",foreground:\"778899\"},{token:\"operator.swift\",foreground:\"666666\"},{token:\"predefined.sql\",foreground:\"C700C7\"}],colors:{[Ys]:\"#FFFFFE\",[Ql]:\"#000000\",[Vle]:\"#E5EBF1\",[yD]:\"#D3D3D3\",[SD]:\"#939393\",[kz]:\"#ADD6FF4D\"}},lUe={base:\"vs-dark\",inherit:!1,rules:[{token:\"\",foreground:\"D4D4D4\",background:\"1E1E1E\"},{token:\"invalid\",foreground:\"f44747\"},{token:\"emphasis\",fontStyle:\"italic\"},{token:\"strong\",fontStyle:\"bold\"},{token:\"variable\",foreground:\"74B0DF\"},{token:\"variable.predefined\",foreground:\"4864AA\"},{token:\"variable.parameter\",foreground:\"9CDCFE\"},{token:\"constant\",foreground:\"569CD6\"},{token:\"comment\",foreground:\"608B4E\"},{token:\"number\",foreground:\"B5CEA8\"},{token:\"number.hex\",foreground:\"5BB498\"},{token:\"regexp\",foreground:\"B46695\"},{token:\"annotation\",foreground:\"cc6666\"},{token:\"type\",foreground:\"3DC9B0\"},{token:\"delimiter\",foreground:\"DCDCDC\"},{token:\"delimiter.html\",foreground:\"808080\"},{token:\"delimiter.xml\",foreground:\"808080\"},{token:\"tag\",foreground:\"569CD6\"},{token:\"tag.id.pug\",foreground:\"4F76AC\"},{token:\"tag.class.pug\",foreground:\"4F76AC\"},{token:\"meta.scss\",foreground:\"A79873\"},{token:\"meta.tag\",foreground:\"CE9178\"},{token:\"metatag\",foreground:\"DD6A6F\"},{token:\"metatag.content.html\",foreground:\"9CDCFE\"},{token:\"metatag.html\",foreground:\"569CD6\"},{token:\"metatag.xml\",foreground:\"569CD6\"},{token:\"metatag.php\",fontStyle:\"bold\"},{token:\"key\",foreground:\"9CDCFE\"},{token:\"string.key.json\",foreground:\"9CDCFE\"},{token:\"string.value.json\",foreground:\"CE9178\"},{token:\"attribute.name\",foreground:\"9CDCFE\"},{token:\"attribute.value\",foreground:\"CE9178\"},{token:\"attribute.value.number.css\",foreground:\"B5CEA8\"},{token:\"attribute.value.unit.css\",foreground:\"B5CEA8\"},{token:\"attribute.value.hex.css\",foreground:\"D4D4D4\"},{token:\"string\",foreground:\"CE9178\"},{token:\"string.sql\",foreground:\"FF0000\"},{token:\"keyword\",foreground:\"569CD6\"},{token:\"keyword.flow\",foreground:\"C586C0\"},{token:\"keyword.json\",foreground:\"CE9178\"},{token:\"keyword.flow.scss\",foreground:\"569CD6\"},{token:\"operator.scss\",foreground:\"909090\"},{token:\"operator.sql\",foreground:\"778899\"},{token:\"operator.swift\",foreground:\"909090\"},{token:\"predefined.sql\",foreground:\"FF00FF\"}],colors:{[Ys]:\"#1E1E1E\",[Ql]:\"#D4D4D4\",[Vle]:\"#3A3D41\",[yD]:\"#404040\",[SD]:\"#707070\",[kz]:\"#ADD6FF26\"}},cUe={base:\"hc-black\",inherit:!1,rules:[{token:\"\",foreground:\"FFFFFF\",background:\"000000\"},{token:\"invalid\",foreground:\"f44747\"},{token:\"emphasis\",fontStyle:\"italic\"},{token:\"strong\",fontStyle:\"bold\"},{token:\"variable\",foreground:\"1AEBFF\"},{token:\"variable.parameter\",foreground:\"9CDCFE\"},{token:\"constant\",foreground:\"569CD6\"},{token:\"comment\",foreground:\"608B4E\"},{token:\"number\",foreground:\"FFFFFF\"},{token:\"regexp\",foreground:\"C0C0C0\"},{token:\"annotation\",foreground:\"569CD6\"},{token:\"type\",foreground:\"3DC9B0\"},{token:\"delimiter\",foreground:\"FFFF00\"},{token:\"delimiter.html\",foreground:\"FFFF00\"},{token:\"tag\",foreground:\"569CD6\"},{token:\"tag.id.pug\",foreground:\"4F76AC\"},{token:\"tag.class.pug\",foreground:\"4F76AC\"},{token:\"meta\",foreground:\"D4D4D4\"},{token:\"meta.tag\",foreground:\"CE9178\"},{token:\"metatag\",foreground:\"569CD6\"},{token:\"metatag.content.html\",foreground:\"1AEBFF\"},{token:\"metatag.html\",foreground:\"569CD6\"},{token:\"metatag.xml\",foreground:\"569CD6\"},{token:\"metatag.php\",fontStyle:\"bold\"},{token:\"key\",foreground:\"9CDCFE\"},{token:\"string.key\",foreground:\"9CDCFE\"},{token:\"string.value\",foreground:\"CE9178\"},{token:\"attribute.name\",foreground:\"569CD6\"},{token:\"attribute.value\",foreground:\"3FF23F\"},{token:\"string\",foreground:\"CE9178\"},{token:\"string.sql\",foreground:\"FF0000\"},{token:\"keyword\",foreground:\"569CD6\"},{token:\"keyword.flow\",foreground:\"C586C0\"},{token:\"operator.sql\",foreground:\"778899\"},{token:\"operator.swift\",foreground:\"909090\"},{token:\"predefined.sql\",foreground:\"FF00FF\"}],colors:{[Ys]:\"#000000\",[Ql]:\"#FFFFFF\",[yD]:\"#FFFFFF\",[SD]:\"#FFFFFF\"}},dUe={base:\"hc-light\",inherit:!1,rules:[{token:\"\",foreground:\"292929\",background:\"FFFFFF\"},{token:\"invalid\",foreground:\"B5200D\"},{token:\"emphasis\",fontStyle:\"italic\"},{token:\"strong\",fontStyle:\"bold\"},{token:\"variable\",foreground:\"264F70\"},{token:\"variable.predefined\",foreground:\"4864AA\"},{token:\"constant\",foreground:\"dd0000\"},{token:\"comment\",foreground:\"008000\"},{token:\"number\",foreground:\"098658\"},{token:\"number.hex\",foreground:\"3030c0\"},{token:\"regexp\",foreground:\"800000\"},{token:\"annotation\",foreground:\"808080\"},{token:\"type\",foreground:\"008080\"},{token:\"delimiter\",foreground:\"000000\"},{token:\"delimiter.html\",foreground:\"383838\"},{token:\"tag\",foreground:\"800000\"},{token:\"tag.id.pug\",foreground:\"4F76AC\"},{token:\"tag.class.pug\",foreground:\"4F76AC\"},{token:\"meta.scss\",foreground:\"800000\"},{token:\"metatag\",foreground:\"e00000\"},{token:\"metatag.content.html\",foreground:\"B5200D\"},{token:\"metatag.html\",foreground:\"808080\"},{token:\"metatag.xml\",foreground:\"808080\"},{token:\"metatag.php\",fontStyle:\"bold\"},{token:\"key\",foreground:\"863B00\"},{token:\"string.key.json\",foreground:\"A31515\"},{token:\"string.value.json\",foreground:\"0451A5\"},{token:\"attribute.name\",foreground:\"264F78\"},{token:\"attribute.value\",foreground:\"0451A5\"},{token:\"string\",foreground:\"A31515\"},{token:\"string.sql\",foreground:\"B5200D\"},{token:\"keyword\",foreground:\"0000FF\"},{token:\"keyword.flow\",foreground:\"AF00DB\"},{token:\"operator.sql\",foreground:\"778899\"},{token:\"operator.swift\",foreground:\"666666\"},{token:\"predefined.sql\",foreground:\"C700C7\"}],colors:{[Ys]:\"#FFFFFF\",[Ql]:\"#292929\",[yD]:\"#292929\",[SD]:\"#292929\"}},uUe={IconContribution:\"base.contributions.icons\"};var ZJ;(function(n){function e(t,i){let s=t.defaults;for(;_t.isThemeIcon(s);){const o=sb.getIcon(s.id);if(!o)return;s=o.defaults}return s}n.getDefinition=e})(ZJ||(ZJ={}));var YJ;(function(n){function e(i){return{weight:i.weight,style:i.style,src:i.src.map(s=>({format:s.format,location:s.location.toString()}))}}n.toJSONObject=e;function t(i){const s=o=>Pr(o)?o:void 0;if(i&&Array.isArray(i.src)&&i.src.every(o=>Pr(o.format)&&Pr(o.location)))return{weight:s(i.weight),style:s(i.style),src:i.src.map(o=>({format:o.format,location:pt.parse(o.location)}))}}n.fromJSONObject=t})(YJ||(YJ={}));class hUe{constructor(){this._onDidChange=new X,this.onDidChange=this._onDidChange.event,this.iconSchema={definitions:{icons:{type:\"object\",properties:{fontId:{type:\"string\",description:v(\"iconDefinition.fontId\",\"The id of the font to use. If not set, the font that is defined first is used.\")},fontCharacter:{type:\"string\",description:v(\"iconDefinition.fontCharacter\",\"The font character associated with the icon definition.\")}},additionalProperties:!1,defaultSnippets:[{body:{fontCharacter:\"\\\\\\\\e030\"}}]}},type:\"object\",properties:{}},this.iconReferenceSchema={type:\"string\",pattern:`^${_t.iconNameExpression}$`,enum:[],enumDescriptions:[]},this.iconsById={},this.iconFontsById={}}registerIcon(e,t,i,s){const o=this.iconsById[e];if(o){if(i&&!o.description){o.description=i,this.iconSchema.properties[e].markdownDescription=`${i} $(${e})`;const l=this.iconReferenceSchema.enum.indexOf(e);l!==-1&&(this.iconReferenceSchema.enumDescriptions[l]=i),this._onDidChange.fire()}return o}const r={id:e,description:i,defaults:t,deprecationMessage:s};this.iconsById[e]=r;const a={$ref:\"#/definitions/icons\"};return s&&(a.deprecationMessage=s),i&&(a.markdownDescription=`${i}: $(${e})`),this.iconSchema.properties[e]=a,this.iconReferenceSchema.enum.push(e),this.iconReferenceSchema.enumDescriptions.push(i||\"\"),this._onDidChange.fire(),{id:e}}getIcons(){return Object.keys(this.iconsById).map(e=>this.iconsById[e])}getIcon(e){return this.iconsById[e]}getIconSchema(){return this.iconSchema}toString(){const e=(o,r)=>o.id.localeCompare(r.id),t=o=>{for(;_t.isThemeIcon(o.defaults);)o=this.iconsById[o.defaults.id];return`codicon codicon-${o?o.id:\"\"}`},i=[];i.push(\"| preview     | identifier                        | default codicon ID                | description\"),i.push(\"| ----------- | --------------------------------- | --------------------------------- | --------------------------------- |\");const s=Object.keys(this.iconsById).map(o=>this.iconsById[o]);for(const o of s.filter(r=>!!r.description).sort(e))i.push(`|<i class=\"${t(o)}\"></i>|${o.id}|${_t.isThemeIcon(o.defaults)?o.defaults.id:o.id}|${o.description||\"\"}|`);i.push(\"| preview     | identifier                        \"),i.push(\"| ----------- | --------------------------------- |\");for(const o of s.filter(r=>!_t.isThemeIcon(r.defaults)).sort(e))i.push(`|<i class=\"${t(o)}\"></i>|${o.id}|`);return i.join(`\n`)}}const sb=new hUe;Un.add(uUe.IconContribution,sb);function Jn(n,e,t,i){return sb.registerIcon(n,e,t,i)}function Eue(){return sb}function fUe(){const n=fae();for(const e in n){const t=\"\\\\\"+n[e].toString(16);sb.registerIcon(e,{fontCharacter:t})}}fUe();const Tue=\"vscode://schemas/icons\",Nue=Un.as(DM.JSONContribution);Nue.registerSchema(Tue,sb.getIconSchema());const XJ=new Xi(()=>Nue.notifySchemaChanged(Tue),200);sb.onDidChange(()=>{XJ.isScheduled()||XJ.schedule()});const Aue=Jn(\"widget-close\",Te.close,v(\"widgetClose\",\"Icon for the close action in widgets.\"));Jn(\"goto-previous-location\",Te.arrowUp,v(\"previousChangeIcon\",\"Icon for goto previous editor location.\"));Jn(\"goto-next-location\",Te.arrowDown,v(\"nextChangeIcon\",\"Icon for goto next editor location.\"));_t.modify(Te.sync,\"spin\");_t.modify(Te.loading,\"spin\");function gUe(n){const e=new be,t=e.add(new X),i=Eue();return e.add(i.onDidChange(()=>t.fire())),n&&e.add(n.onDidProductIconThemeChange(()=>t.fire())),{dispose:()=>e.dispose(),onDidChange:t.event,getCSS(){const s=n?n.getProductIconTheme():new Rue,o={},r=[],a=[];for(const l of i.getIcons()){const c=s.getIcon(l);if(!c)continue;const d=c.font,u=`--vscode-icon-${l.id}-font-family`,h=`--vscode-icon-${l.id}-content`;d?(o[d.id]=d.definition,a.push(`${u}: ${FF(d.id)};`,`${h}: '${c.fontCharacter}';`),r.push(`.codicon-${l.id}:before { content: '${c.fontCharacter}'; font-family: ${FF(d.id)}; }`)):(a.push(`${h}: '${c.fontCharacter}'; ${u}: 'codicon';`),r.push(`.codicon-${l.id}:before { content: '${c.fontCharacter}'; }`))}for(const l in o){const c=o[l],d=c.weight?`font-weight: ${c.weight};`:\"\",u=c.style?`font-style: ${c.style};`:\"\",h=c.src.map(f=>`${Ig(f.location)} format('${f.format}')`).join(\", \");r.push(`@font-face { src: ${h}; font-family: ${FF(l)};${d}${u} font-display: block; }`)}return r.push(`:root { ${a.join(\" \")} }`),r.join(`\n`)}}}class Rue{getIcon(e){const t=Eue();let i=e.defaults;for(;_t.isThemeIcon(i);){const s=t.getIcon(i.id);if(!s)return;i=s.defaults}return i}}const jf=\"vs\",hC=\"vs-dark\",Gv=\"hc-black\",Zv=\"hc-light\",Mue=Un.as(Ble.ColorContribution),pUe=Un.as(ice.ThemingContribution);class Pue{constructor(e,t){this.semanticHighlighting=!1,this.themeData=t;const i=t.base;e.length>0?(RN(e)?this.id=e:this.id=i+\" \"+e,this.themeName=e):(this.id=i,this.themeName=i),this.colors=null,this.defaultColors=Object.create(null),this._tokenTheme=null}get base(){return this.themeData.base}notifyBaseUpdated(){this.themeData.inherit&&(this.colors=null,this._tokenTheme=null)}getColors(){if(!this.colors){const e=new Map;for(const t in this.themeData.colors)e.set(t,le.fromHex(this.themeData.colors[t]));if(this.themeData.inherit){const t=n6(this.themeData.base);for(const i in t.colors)e.has(i)||e.set(i,le.fromHex(t.colors[i]))}this.colors=e}return this.colors}getColor(e,t){const i=this.getColors().get(e);if(i)return i;if(t!==!1)return this.getDefault(e)}getDefault(e){let t=this.defaultColors[e];return t||(t=Mue.resolveDefaultColor(e,this),this.defaultColors[e]=t,t)}defines(e){return this.getColors().has(e)}get type(){switch(this.base){case jf:return Jl.LIGHT;case Gv:return Jl.HIGH_CONTRAST_DARK;case Zv:return Jl.HIGH_CONTRAST_LIGHT;default:return Jl.DARK}}get tokenTheme(){if(!this._tokenTheme){let e=[],t=[];if(this.themeData.inherit){const o=n6(this.themeData.base);e=o.rules,o.encodedTokensColors&&(t=o.encodedTokensColors)}const i=this.themeData.colors[\"editor.foreground\"],s=this.themeData.colors[\"editor.background\"];if(i||s){const o={token:\"\"};i&&(o.foreground=i),s&&(o.background=s),e.push(o)}e=e.concat(this.themeData.rules),this.themeData.encodedTokensColors&&(t=this.themeData.encodedTokensColors),this._tokenTheme=Iue.createFromRawTokenTheme(e,t)}return this._tokenTheme}getTokenStyleMetadata(e,t,i){const o=this.tokenTheme._match([e].concat(t).join(\".\")).metadata,r=No.getForeground(o),a=No.getFontStyle(o);return{foreground:r,italic:!!(a&1),bold:!!(a&2),underline:!!(a&4),strikethrough:!!(a&8)}}}function RN(n){return n===jf||n===hC||n===Gv||n===Zv}function n6(n){switch(n){case jf:return aUe;case hC:return lUe;case Gv:return cUe;case Zv:return dUe}}function hT(n){const e=n6(n);return new Pue(n,e)}class mUe extends ne{constructor(){super(),this._onColorThemeChange=this._register(new X),this.onDidColorThemeChange=this._onColorThemeChange.event,this._onProductIconThemeChange=this._register(new X),this.onDidProductIconThemeChange=this._onProductIconThemeChange.event,this._environment=Object.create(null),this._builtInProductIconTheme=new Rue,this._autoDetectHighContrast=!0,this._knownThemes=new Map,this._knownThemes.set(jf,hT(jf)),this._knownThemes.set(hC,hT(hC)),this._knownThemes.set(Gv,hT(Gv)),this._knownThemes.set(Zv,hT(Zv));const e=this._register(gUe(this));this._codiconCSS=e.getCSS(),this._themeCSS=\"\",this._allCSS=`${this._codiconCSS}\n${this._themeCSS}`,this._globalStyleElement=null,this._styleElements=[],this._colorMapOverride=null,this.setTheme(jf),this._onOSSchemeChanged(),this._register(e.onDidChange(()=>{this._codiconCSS=e.getCSS(),this._updateCSS()})),Lae(Ji,\"(forced-colors: active)\",()=>{this._onOSSchemeChanged()})}registerEditorContainer(e){return W2(e)?this._registerShadowDomContainer(e):this._registerRegularEditorContainer()}_registerRegularEditorContainer(){return this._globalStyleElement||(this._globalStyleElement=yl(void 0,e=>{e.className=\"monaco-colors\",e.textContent=this._allCSS}),this._styleElements.push(this._globalStyleElement)),ne.None}_registerShadowDomContainer(e){const t=yl(e,i=>{i.className=\"monaco-colors\",i.textContent=this._allCSS});return this._styleElements.push(t),{dispose:()=>{for(let i=0;i<this._styleElements.length;i++)if(this._styleElements[i]===t){this._styleElements.splice(i,1);return}}}}defineTheme(e,t){if(!/^[a-z0-9\\-]+$/i.test(e))throw new Error(\"Illegal theme name!\");if(!RN(t.base)&&!RN(e))throw new Error(\"Illegal theme base!\");this._knownThemes.set(e,new Pue(e,t)),RN(e)&&this._knownThemes.forEach(i=>{i.base===e&&i.notifyBaseUpdated()}),this._theme.themeName===e&&this.setTheme(e)}getColorTheme(){return this._theme}setColorMapOverride(e){this._colorMapOverride=e,this._updateThemeOrColorMap()}setTheme(e){let t;this._knownThemes.has(e)?t=this._knownThemes.get(e):t=this._knownThemes.get(jf),this._updateActualTheme(t)}_updateActualTheme(e){!e||this._theme===e||(this._theme=e,this._updateThemeOrColorMap())}_onOSSchemeChanged(){if(this._autoDetectHighContrast){const e=Ji.matchMedia(\"(forced-colors: active)\").matches;if(e!==Zd(this._theme.type)){let t;HC(this._theme.type)?t=e?Gv:hC:t=e?Zv:jf,this._updateActualTheme(this._knownThemes.get(t))}}}setAutoDetectHighContrast(e){this._autoDetectHighContrast=e,this._onOSSchemeChanged()}_updateThemeOrColorMap(){const e=[],t={},i={addRule:r=>{t[r]||(e.push(r),t[r]=!0)}};pUe.getThemingParticipants().forEach(r=>r(this._theme,i,this._environment));const s=[];for(const r of Mue.getColors()){const a=this._theme.getColor(r.id,!0);a&&s.push(`${Lz(r.id)}: ${a.toString()};`)}i.addRule(`.monaco-editor, .monaco-diff-editor, .monaco-component { ${s.join(`\n`)} }`);const o=this._colorMapOverride||this._theme.tokenTheme.getColorMap();i.addRule(rUe(o)),this._themeCSS=e.join(`\n`),this._updateCSS(),Zn.setColorMap(o),this._onColorThemeChange.fire(this._theme)}_updateCSS(){this._allCSS=`${this._codiconCSS}\n${this._themeCSS}`,this._styleElements.forEach(e=>e.textContent=this._allCSS)}getFileIconTheme(){return{hasFileIcons:!1,hasFolderIcons:!1,hidesExplorerArrows:!1}}getProductIconTheme(){return this._builtInProductIconTheme}}const Tl=Jt(\"themeService\");var _Ue=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},K5=function(n,e){return function(t,i){e(t,i,n)}};let s6=class extends ne{constructor(e,t,i){super(),this._contextKeyService=e,this._layoutService=t,this._configurationService=i,this._accessibilitySupport=0,this._onDidChangeScreenReaderOptimized=new X,this._onDidChangeReducedMotion=new X,this._accessibilityModeEnabledContext=vD.bindTo(this._contextKeyService);const s=()=>this._accessibilityModeEnabledContext.set(this.isScreenReaderOptimized());this._register(this._configurationService.onDidChangeConfiguration(r=>{r.affectsConfiguration(\"editor.accessibilitySupport\")&&(s(),this._onDidChangeScreenReaderOptimized.fire()),r.affectsConfiguration(\"workbench.reduceMotion\")&&(this._configMotionReduced=this._configurationService.getValue(\"workbench.reduceMotion\"),this._onDidChangeReducedMotion.fire())})),s(),this._register(this.onDidChangeScreenReaderOptimized(()=>s()));const o=Ji.matchMedia(\"(prefers-reduced-motion: reduce)\");this._systemMotionReduced=o.matches,this._configMotionReduced=this._configurationService.getValue(\"workbench.reduceMotion\"),this.initReducedMotionListeners(o)}initReducedMotionListeners(e){this._register(ce(e,\"change\",()=>{this._systemMotionReduced=e.matches,this._configMotionReduced===\"auto\"&&this._onDidChangeReducedMotion.fire()}));const t=()=>{const i=this.isMotionReduced();this._layoutService.mainContainer.classList.toggle(\"reduce-motion\",i),this._layoutService.mainContainer.classList.toggle(\"enable-motion\",!i)};t(),this._register(this.onDidChangeReducedMotion(()=>t()))}get onDidChangeScreenReaderOptimized(){return this._onDidChangeScreenReaderOptimized.event}isScreenReaderOptimized(){const e=this._configurationService.getValue(\"editor.accessibilitySupport\");return e===\"on\"||e===\"auto\"&&this._accessibilitySupport===2}get onDidChangeReducedMotion(){return this._onDidChangeReducedMotion.event}isMotionReduced(){const e=this._configMotionReduced;return e===\"on\"||e===\"auto\"&&this._systemMotionReduced}getAccessibilitySupport(){return this._accessibilitySupport}};s6=_Ue([K5(0,Ct),K5(1,g_),K5(2,qt)],s6);var vP=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},bh=function(n,e){return function(t,i){e(t,i,n)}},n1,wp;let o6=class{constructor(e,t,i){this._commandService=e,this._keybindingService=t,this._hiddenStates=new jA(i)}createMenu(e,t,i){return new a6(e,this._hiddenStates,{emitEventsForSubmenuChanges:!1,eventDebounceDelay:50,...i},this._commandService,this._keybindingService,t)}resetHiddenStates(e){this._hiddenStates.reset(e)}};o6=vP([bh(0,Sn),bh(1,Li),bh(2,dd)],o6);let jA=n1=class{constructor(e){this._storageService=e,this._disposables=new be,this._onDidChange=new X,this.onDidChange=this._onDidChange.event,this._ignoreChangeEvent=!1,this._hiddenByDefaultCache=new Map;try{const t=e.get(n1._key,0,\"{}\");this._data=JSON.parse(t)}catch{this._data=Object.create(null)}this._disposables.add(e.onDidChangeValue(0,n1._key,this._disposables)(()=>{if(!this._ignoreChangeEvent)try{const t=e.get(n1._key,0,\"{}\");this._data=JSON.parse(t)}catch(t){console.log(\"FAILED to read storage after UPDATE\",t)}this._onDidChange.fire()}))}dispose(){this._onDidChange.dispose(),this._disposables.dispose()}_isHiddenByDefault(e,t){var i;return(i=this._hiddenByDefaultCache.get(`${e.id}/${t}`))!==null&&i!==void 0?i:!1}setDefaultState(e,t,i){this._hiddenByDefaultCache.set(`${e.id}/${t}`,i)}isHidden(e,t){var i,s;const o=this._isHiddenByDefault(e,t),r=(s=(i=this._data[e.id])===null||i===void 0?void 0:i.includes(t))!==null&&s!==void 0?s:!1;return o?!r:r}updateHidden(e,t,i){this._isHiddenByDefault(e,t)&&(i=!i);const o=this._data[e.id];if(i)o?o.indexOf(t)<0&&o.push(t):this._data[e.id]=[t];else if(o){const r=o.indexOf(t);r>=0&&n2e(o,r),o.length===0&&delete this._data[e.id]}this._persist()}reset(e){if(e===void 0)this._data=Object.create(null),this._persist();else{for(const{id:t}of e)this._data[t]&&delete this._data[t];this._persist()}}_persist(){try{this._ignoreChangeEvent=!0;const e=JSON.stringify(this._data);this._storageService.store(n1._key,e,0,0)}finally{this._ignoreChangeEvent=!1}}};jA._key=\"menu.hiddenCommands\";jA=n1=vP([bh(0,dd)],jA);let r6=wp=class{constructor(e,t,i,s,o,r){this._id=e,this._hiddenStates=t,this._collectContextKeysForSubmenus=i,this._commandService=s,this._keybindingService=o,this._contextKeyService=r,this._menuGroups=[],this._structureContextKeys=new Set,this._preconditionContextKeys=new Set,this._toggledContextKeys=new Set,this.refresh()}get structureContextKeys(){return this._structureContextKeys}get preconditionContextKeys(){return this._preconditionContextKeys}get toggledContextKeys(){return this._toggledContextKeys}refresh(){this._menuGroups.length=0,this._structureContextKeys.clear(),this._preconditionContextKeys.clear(),this._toggledContextKeys.clear();const e=ao.getMenuItems(this._id);let t;e.sort(wp._compareMenuItems);for(const i of e){const s=i.group||\"\";(!t||t[0]!==s)&&(t=[s,[]],this._menuGroups.push(t)),t[1].push(i),this._collectContextKeys(i)}}_collectContextKeys(e){if(wp._fillInKbExprKeys(e.when,this._structureContextKeys),g1(e)){if(e.command.precondition&&wp._fillInKbExprKeys(e.command.precondition,this._preconditionContextKeys),e.command.toggled){const t=e.command.toggled.condition||e.command.toggled;wp._fillInKbExprKeys(t,this._toggledContextKeys)}}else this._collectContextKeysForSubmenus&&ao.getMenuItems(e.submenu).forEach(this._collectContextKeys,this)}createActionGroups(e){const t=[];for(const i of this._menuGroups){const[s,o]=i;let r;for(const a of o)if(this._contextKeyService.contextMatchesRules(a.when)){const l=g1(a);l&&this._hiddenStates.setDefaultState(this._id,a.command.id,!!a.isHiddenByDefault);const c=vUe(this._id,l?a.command:a,this._hiddenStates);if(l){const d=Oue(a.command.id,a.when,this._commandService,this._keybindingService);(r??(r=[])).push(new Na(a.command,a.alt,e,c,d,this._contextKeyService,this._commandService))}else{const d=new wp(a.submenu,this._hiddenStates,this._collectContextKeysForSubmenus,this._commandService,this._keybindingService,this._contextKeyService).createActionGroups(e),u=Ms.join(...d.map(h=>h[1]));u.length>0&&(r??(r=[])).push(new q1(a,c,u))}}r&&r.length>0&&t.push([s,r])}return t}static _fillInKbExprKeys(e,t){if(e)for(const i of e.keys())t.add(i)}static _compareMenuItems(e,t){const i=e.group,s=t.group;if(i!==s){if(i){if(!s)return-1}else return 1;if(i===\"navigation\")return-1;if(s===\"navigation\")return 1;const a=i.localeCompare(s);if(a!==0)return a}const o=e.order||0,r=t.order||0;return o<r?-1:o>r?1:wp._compareTitles(g1(e)?e.command.title:e.title,g1(t)?t.command.title:t.title)}static _compareTitles(e,t){const i=typeof e==\"string\"?e:e.original,s=typeof t==\"string\"?t:t.original;return i.localeCompare(s)}};r6=wp=vP([bh(3,Sn),bh(4,Li),bh(5,Ct)],r6);let a6=class{constructor(e,t,i,s,o,r){this._disposables=new be,this._menuInfo=new r6(e,t,i.emitEventsForSubmenuChanges,s,o,r);const a=new Xi(()=>{this._menuInfo.refresh(),this._onDidChange.fire({menu:this,isStructuralChange:!0,isEnablementChange:!0,isToggleChange:!0})},i.eventDebounceDelay);this._disposables.add(a),this._disposables.add(ao.onDidChangeMenu(u=>{u.has(e)&&a.schedule()}));const l=this._disposables.add(new be),c=u=>{let h=!1,f=!1,g=!1;for(const p of u)if(h=h||p.isStructuralChange,f=f||p.isEnablementChange,g=g||p.isToggleChange,h&&f&&g)break;return{menu:this,isStructuralChange:h,isEnablementChange:f,isToggleChange:g}},d=()=>{l.add(r.onDidChangeContext(u=>{const h=u.affectsSome(this._menuInfo.structureContextKeys),f=u.affectsSome(this._menuInfo.preconditionContextKeys),g=u.affectsSome(this._menuInfo.toggledContextKeys);(h||f||g)&&this._onDidChange.fire({menu:this,isStructuralChange:h,isEnablementChange:f,isToggleChange:g})})),l.add(t.onDidChange(u=>{this._onDidChange.fire({menu:this,isStructuralChange:!0,isEnablementChange:!1,isToggleChange:!1})}))};this._onDidChange=new nae({onWillAddFirstListener:d,onDidRemoveLastListener:l.clear.bind(l),delay:i.eventDebounceDelay,merge:c}),this.onDidChange=this._onDidChange.event}getActions(e){return this._menuInfo.createActionGroups(e)}dispose(){this._disposables.dispose(),this._onDidChange.dispose()}};a6=vP([bh(3,Sn),bh(4,Li),bh(5,Ct)],a6);function vUe(n,e,t){const i=fPe(e)?e.submenu.id:e.id,s=typeof e.title==\"string\"?e.title:e.title.value,o=$v({id:`hide/${n.id}/${i}`,label:v(\"hide.label\",\"Hide '{0}'\",s),run(){t.updateHidden(n,i,!0)}}),r=$v({id:`toggle/${n.id}/${i}`,label:s,get checked(){return!t.isHidden(n,i)},run(){t.updateHidden(n,i,!!this.checked)}});return{hide:o,toggle:r,get isHidden(){return!r.checked}}}function Oue(n,e=void 0,t,i){return $v({id:`configureKeybinding/${n}`,label:v(\"configure keybinding\",\"Configure Keybinding\"),run(){const o=!!!i.lookupKeybinding(n)&&e?e.serialize():void 0;t.executeCommand(\"workbench.action.openGlobalKeybindings\",`@command:${n}`+(o?` +when:${o}`:\"\"))}})}var bUe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},QJ=function(n,e){return function(t,i){e(t,i,n)}},l6;let KA=l6=class extends ne{constructor(e,t){super(),this.layoutService=e,this.logService=t,this.mapTextToType=new Map,this.findText=\"\",this.resources=[],this.resourcesStateHash=void 0,(Pm||kae)&&this.installWebKitWriteTextWorkaround(),this._register(Ae.runAndSubscribe(dM,({window:i,disposables:s})=>{s.add(ce(i.document,\"copy\",()=>this.clearResources()))},{window:Ji,disposables:this._store}))}installWebKitWriteTextWorkaround(){const e=()=>{const t=new hD;this.webKitPendingClipboardWritePromise&&!this.webKitPendingClipboardWritePromise.isSettled&&this.webKitPendingClipboardWritePromise.cancel(),this.webKitPendingClipboardWritePromise=t,uN().navigator.clipboard.write([new ClipboardItem({\"text/plain\":t.p})]).catch(async i=>{(!(i instanceof Error)||i.name!==\"NotAllowedError\"||!t.isRejected)&&this.logService.error(i)})};this._register(Ae.runAndSubscribe(this.layoutService.onDidAddContainer,({container:t,disposables:i})=>{i.add(ce(t,\"click\",e)),i.add(ce(t,\"keydown\",e))},{container:this.layoutService.mainContainer,disposables:this._store}))}async writeText(e,t){if(this.writeResources([]),t){this.mapTextToType.set(t,e);return}if(this.webKitPendingClipboardWritePromise)return this.webKitPendingClipboardWritePromise.complete(e);try{return await uN().navigator.clipboard.writeText(e)}catch(i){console.error(i)}this.fallbackWriteText(e)}fallbackWriteText(e){const t=Rw(),i=t.activeElement,s=t.body.appendChild(ke(\"textarea\",{\"aria-hidden\":!0}));s.style.height=\"1px\",s.style.width=\"1px\",s.style.position=\"absolute\",s.value=e,s.focus(),s.select(),t.execCommand(\"copy\"),co(i)&&i.focus(),t.body.removeChild(s)}async readText(e){if(e)return this.mapTextToType.get(e)||\"\";try{return await uN().navigator.clipboard.readText()}catch(t){console.error(t)}return\"\"}async readFindText(){return this.findText}async writeFindText(e){this.findText=e}async writeResources(e){e.length===0?this.clearResources():(this.resources=e,this.resourcesStateHash=await this.computeResourcesStateHash())}async readResources(){const e=await this.computeResourcesStateHash();return this.resourcesStateHash!==e&&this.clearResources(),this.resources}async computeResourcesStateHash(){if(this.resources.length===0)return;const e=await this.readText();return aM(e.substring(0,l6.MAX_RESOURCE_STATE_SOURCE_LENGTH))}clearResources(){this.resources=[],this.resourcesStateHash=void 0}};KA.MAX_RESOURCE_STATE_SOURCE_LENGTH=1e3;KA=l6=bUe([QJ(0,g_),QJ(1,er)],KA);const zg=Jt(\"clipboardService\");var CUe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},wUe=function(n,e){return function(t,i){e(t,i,n)}};const Ix=\"data-keybinding-context\";let K$=class{constructor(e,t){this._id=e,this._parent=t,this._value=Object.create(null),this._value._contextId=e}get value(){return{...this._value}}setValue(e,t){return this._value[e]!==t?(this._value[e]=t,!0):!1}removeValue(e){return e in this._value?(delete this._value[e],!0):!1}getValue(e){const t=this._value[e];return typeof t>\"u\"&&this._parent?this._parent.getValue(e):t}};class iw extends K${constructor(){super(-1,null)}setValue(e,t){return!1}removeValue(e){return!1}getValue(e){}}iw.INSTANCE=new iw;class ik extends K${constructor(e,t,i){super(e,null),this._configurationService=t,this._values=lC.forConfigKeys(),this._listener=this._configurationService.onDidChangeConfiguration(s=>{if(s.source===7){const o=Array.from(this._values,([r])=>r);this._values.clear(),i.fire(new eee(o))}else{const o=[];for(const r of s.affectedKeys){const a=`config.${r}`,l=this._values.findSuperstr(a);l!==void 0&&(o.push(...oi.map(l,([c])=>c)),this._values.deleteSuperstr(a)),this._values.has(a)&&(o.push(a),this._values.delete(a))}i.fire(new eee(o))}})}dispose(){this._listener.dispose()}getValue(e){if(e.indexOf(ik._keyPrefix)!==0)return super.getValue(e);if(this._values.has(e))return this._values.get(e);const t=e.substr(ik._keyPrefix.length),i=this._configurationService.getValue(t);let s;switch(typeof i){case\"number\":case\"boolean\":case\"string\":s=i;break;default:Array.isArray(i)?s=JSON.stringify(i):s=i}return this._values.set(e,s),s}setValue(e,t){return super.setValue(e,t)}removeValue(e){return super.removeValue(e)}}ik._keyPrefix=\"config.\";class yUe{constructor(e,t,i){this._service=e,this._key=t,this._defaultValue=i,this.reset()}set(e){this._service.setContext(this._key,e)}reset(){typeof this._defaultValue>\"u\"?this._service.removeContext(this._key):this._service.setContext(this._key,this._defaultValue)}get(){return this._service.getContextKeyValue(this._key)}}class JJ{constructor(e){this.key=e}affectsSome(e){return e.has(this.key)}allKeysContainedIn(e){return this.affectsSome(e)}}class eee{constructor(e){this.keys=e}affectsSome(e){for(const t of this.keys)if(e.has(t))return!0;return!1}allKeysContainedIn(e){return this.keys.every(t=>e.has(t))}}class SUe{constructor(e){this.events=e}affectsSome(e){for(const t of this.events)if(t.affectsSome(e))return!0;return!1}allKeysContainedIn(e){return this.events.every(t=>t.allKeysContainedIn(e))}}function xUe(n,e){return n.allKeysContainedIn(new Set(Object.keys(e)))}class Fue extends ne{constructor(e){super(),this._onDidChangeContext=this._register(new a0({merge:t=>new SUe(t)})),this.onDidChangeContext=this._onDidChangeContext.event,this._isDisposed=!1,this._myContextId=e}createKey(e,t){if(this._isDisposed)throw new Error(\"AbstractContextKeyService has been disposed\");return new yUe(this,e,t)}bufferChangeEvents(e){this._onDidChangeContext.pause();try{e()}finally{this._onDidChangeContext.resume()}}createScoped(e){if(this._isDisposed)throw new Error(\"AbstractContextKeyService has been disposed\");return new LUe(this,e)}contextMatchesRules(e){if(this._isDisposed)throw new Error(\"AbstractContextKeyService has been disposed\");const t=this.getContextValuesContainer(this._myContextId);return e?e.evaluate(t):!0}getContextKeyValue(e){if(!this._isDisposed)return this.getContextValuesContainer(this._myContextId).getValue(e)}setContext(e,t){if(this._isDisposed)return;const i=this.getContextValuesContainer(this._myContextId);i&&i.setValue(e,t)&&this._onDidChangeContext.fire(new JJ(e))}removeContext(e){this._isDisposed||this.getContextValuesContainer(this._myContextId).removeValue(e)&&this._onDidChangeContext.fire(new JJ(e))}getContext(e){return this._isDisposed?iw.INSTANCE:this.getContextValuesContainer(kUe(e))}dispose(){super.dispose(),this._isDisposed=!0}}let c6=class extends Fue{constructor(e){super(0),this._contexts=new Map,this._lastContextId=0;const t=this._register(new ik(this._myContextId,e,this._onDidChangeContext));this._contexts.set(this._myContextId,t)}getContextValuesContainer(e){return this._isDisposed?iw.INSTANCE:this._contexts.get(e)||iw.INSTANCE}createChildContext(e=this._myContextId){if(this._isDisposed)throw new Error(\"ContextKeyService has been disposed\");const t=++this._lastContextId;return this._contexts.set(t,new K$(t,this.getContextValuesContainer(e))),t}disposeContext(e){this._isDisposed||this._contexts.delete(e)}};c6=CUe([wUe(0,qt)],c6);class LUe extends Fue{constructor(e,t){if(super(e.createChildContext()),this._parentChangeListener=this._register(new Qs),this._parent=e,this._updateParentChangeListener(),this._domNode=t,this._domNode.hasAttribute(Ix)){let i=\"\";this._domNode.classList&&(i=Array.from(this._domNode.classList.values()).join(\", \")),console.error(`Element already has context attribute${i?\": \"+i:\"\"}`)}this._domNode.setAttribute(Ix,String(this._myContextId))}_updateParentChangeListener(){this._parentChangeListener.value=this._parent.onDidChangeContext(e=>{const i=this._parent.getContextValuesContainer(this._myContextId).value;xUe(e,i)||this._onDidChangeContext.fire(e)})}dispose(){this._isDisposed||(this._parent.disposeContext(this._myContextId),this._domNode.removeAttribute(Ix),super.dispose())}getContextValuesContainer(e){return this._isDisposed?iw.INSTANCE:this._parent.getContextValuesContainer(e)}createChildContext(e=this._myContextId){if(this._isDisposed)throw new Error(\"ScopedContextKeyService has been disposed\");return this._parent.createChildContext(e)}disposeContext(e){this._isDisposed||this._parent.disposeContext(e)}}function kUe(n){for(;n;){if(n.hasAttribute(Ix)){const e=n.getAttribute(Ix);return e?parseInt(e,10):NaN}n=n.parentElement}return 0}function DUe(n,e,t){n.get(Ct).createKey(String(e),IUe(t))}function IUe(n){return $re(n,e=>{if(typeof e==\"object\"&&e.$mid===1)return pt.revive(e).toString();if(e instanceof pt)return e.toString()})}ri.registerCommand(\"_setContext\",DUe);ri.registerCommand({id:\"getContextKeyInfo\",handler(){return[...He.all()].sort((n,e)=>n.key.localeCompare(e.key))},metadata:{description:v(\"getContextKeyInfo\",\"A command that returns information about context keys\"),args:[]}});ri.registerCommand(\"_generateContextKeyInfo\",function(){const n=[],e=new Set;for(const t of He.all())e.has(t.key)||(e.add(t.key),n.push(t));n.sort((t,i)=>t.key.localeCompare(i.key)),console.log(JSON.stringify(n,void 0,2))});let EUe=class{constructor(e,t){this.key=e,this.data=t,this.incoming=new Map,this.outgoing=new Map}};class tee{constructor(e){this._hashFn=e,this._nodes=new Map}roots(){const e=[];for(const t of this._nodes.values())t.outgoing.size===0&&e.push(t);return e}insertEdge(e,t){const i=this.lookupOrInsertNode(e),s=this.lookupOrInsertNode(t);i.outgoing.set(s.key,s),s.incoming.set(i.key,i)}removeNode(e){const t=this._hashFn(e);this._nodes.delete(t);for(const i of this._nodes.values())i.outgoing.delete(t),i.incoming.delete(t)}lookupOrInsertNode(e){const t=this._hashFn(e);let i=this._nodes.get(t);return i||(i=new EUe(t,e),this._nodes.set(t,i)),i}isEmpty(){return this._nodes.size===0}toString(){const e=[];for(const[t,i]of this._nodes)e.push(`${t}\n\t(-> incoming)[${[...i.incoming.keys()].join(\", \")}]\n\t(outgoing ->)[${[...i.outgoing.keys()].join(\",\")}]\n`);return e.join(`\n`)}findCycleSlow(){for(const[e,t]of this._nodes){const i=new Set([e]),s=this._findCycle(t,i);if(s)return s}}_findCycle(e,t){for(const[i,s]of e.outgoing){if(t.has(i))return[...t,i].join(\" -> \");t.add(i);const o=this._findCycle(s,t);if(o)return o;t.delete(i)}}}const TUe=!1;class iee extends Error{constructor(e){var t;super(\"cyclic dependency between services\"),this.message=(t=e.findCycleSlow())!==null&&t!==void 0?t:`UNABLE to detect cycle, dumping graph: \n${e.toString()}`}}class qA{constructor(e=new kD,t=!1,i,s=TUe){var o;this._services=e,this._strict=t,this._parent=i,this._enableTracing=s,this._isDisposed=!1,this._servicesToMaybeDispose=new Set,this._children=new Set,this._activeInstantiations=new Set,this._services.set(ht,this),this._globalGraph=s?(o=i==null?void 0:i._globalGraph)!==null&&o!==void 0?o:new tee(r=>r):void 0}dispose(){if(!this._isDisposed){this._isDisposed=!0,tn(this._children),this._children.clear();for(const e of this._servicesToMaybeDispose)nM(e)&&e.dispose();this._servicesToMaybeDispose.clear()}}_throwIfDisposed(){if(this._isDisposed)throw new Error(\"InstantiationService has been disposed\")}createChild(e,t){this._throwIfDisposed();const i=this,s=new class extends qA{dispose(){i._children.delete(s),super.dispose()}}(e,this._strict,this,this._enableTracing);return this._children.add(s),t==null||t.add(s),s}invokeFunction(e,...t){this._throwIfDisposed();const i=Qr.traceInvocation(this._enableTracing,e);let s=!1;try{return e({get:r=>{if(s)throw BV(\"service accessor is only valid during the invocation of its target method\");const a=this._getOrCreateServiceInstance(r,i);if(!a)throw new Error(`[invokeFunction] unknown service '${r}'`);return a}},...t)}finally{s=!0,i.stop()}}createInstance(e,...t){this._throwIfDisposed();let i,s;return e instanceof qu?(i=Qr.traceCreation(this._enableTracing,e.ctor),s=this._createInstance(e.ctor,e.staticArguments.concat(t),i)):(i=Qr.traceCreation(this._enableTracing,e),s=this._createInstance(e,t,i)),i.stop(),s}_createInstance(e,t=[],i){const s=Hd.getServiceDependencies(e).sort((a,l)=>a.index-l.index),o=[];for(const a of s){const l=this._getOrCreateServiceInstance(a.id,i);l||this._throwIfStrict(`[createInstance] ${e.name} depends on UNKNOWN service ${a.id}.`,!1),o.push(l)}const r=s.length>0?s[0].index:t.length;if(t.length!==r){console.trace(`[createInstance] First service dependency of ${e.name} at position ${r+1} conflicts with ${t.length} static arguments`);const a=r-t.length;a>0?t=t.concat(new Array(a)):t=t.slice(0,r)}return Reflect.construct(e,t.concat(o))}_setCreatedServiceInstance(e,t){if(this._services.get(e)instanceof qu)this._services.set(e,t);else if(this._parent)this._parent._setCreatedServiceInstance(e,t);else throw new Error(\"illegalState - setting UNKNOWN service instance\")}_getServiceInstanceOrDescriptor(e){const t=this._services.get(e);return!t&&this._parent?this._parent._getServiceInstanceOrDescriptor(e):t}_getOrCreateServiceInstance(e,t){this._globalGraph&&this._globalGraphImplicitDependency&&this._globalGraph.insertEdge(this._globalGraphImplicitDependency,String(e));const i=this._getServiceInstanceOrDescriptor(e);return i instanceof qu?this._safeCreateAndCacheServiceInstance(e,i,t.branch(e,!0)):(t.branch(e,!1),i)}_safeCreateAndCacheServiceInstance(e,t,i){if(this._activeInstantiations.has(e))throw new Error(`illegal state - RECURSIVELY instantiating service '${e}'`);this._activeInstantiations.add(e);try{return this._createAndCacheServiceInstance(e,t,i)}finally{this._activeInstantiations.delete(e)}}_createAndCacheServiceInstance(e,t,i){var s;const o=new tee(l=>l.id.toString());let r=0;const a=[{id:e,desc:t,_trace:i}];for(;a.length;){const l=a.pop();if(o.lookupOrInsertNode(l),r++>1e3)throw new iee(o);for(const c of Hd.getServiceDependencies(l.desc.ctor)){const d=this._getServiceInstanceOrDescriptor(c.id);if(d||this._throwIfStrict(`[createInstance] ${e} depends on ${c.id} which is NOT registered.`,!0),(s=this._globalGraph)===null||s===void 0||s.insertEdge(String(l.id),String(c.id)),d instanceof qu){const u={id:c.id,desc:d,_trace:l._trace.branch(c.id,!0)};o.insertEdge(l,u),a.push(u)}}}for(;;){const l=o.roots();if(l.length===0){if(!o.isEmpty())throw new iee(o);break}for(const{data:c}of l){if(this._getServiceInstanceOrDescriptor(c.id)instanceof qu){const u=this._createServiceInstanceWithOwner(c.id,c.desc.ctor,c.desc.staticArguments,c.desc.supportsDelayedInstantiation,c._trace);this._setCreatedServiceInstance(c.id,u)}o.removeNode(c)}}return this._getServiceInstanceOrDescriptor(e)}_createServiceInstanceWithOwner(e,t,i=[],s,o){if(this._services.get(e)instanceof qu)return this._createServiceInstance(e,t,i,s,o,this._servicesToMaybeDispose);if(this._parent)return this._parent._createServiceInstanceWithOwner(e,t,i,s,o);throw new Error(`illegalState - creating UNKNOWN service instance ${t.name}`)}_createServiceInstance(e,t,i=[],s,o,r){if(s){const a=new qA(void 0,this._strict,this,this._enableTracing);a._globalGraphImplicitDependency=String(e);const l=new Map,c=new HRe(()=>{const d=a._createInstance(t,i,o);for(const[u,h]of l){const f=d[u];if(typeof f==\"function\")for(const g of h)g.disposable=f.apply(d,g.listener)}return l.clear(),r.add(d),d});return new Proxy(Object.create(null),{get(d,u){if(!c.isInitialized&&typeof u==\"string\"&&(u.startsWith(\"onDid\")||u.startsWith(\"onWill\"))){let g=l.get(u);return g||(g=new Tr,l.set(u,g)),(_,b,w)=>{if(c.isInitialized)return c.value[u](_,b,w);{const y={listener:[_,b,w],disposable:void 0},S=g.push(y);return dt(()=>{var k;S(),(k=y.disposable)===null||k===void 0||k.dispose()})}}}if(u in d)return d[u];const h=c.value;let f=h[u];return typeof f!=\"function\"||(f=f.bind(h),d[u]=f),f},set(d,u,h){return c.value[u]=h,!0},getPrototypeOf(d){return t.prototype}})}else{const a=this._createInstance(t,i,o);return r.add(a),a}}_throwIfStrict(e,t){if(t&&console.warn(e),this._strict)throw new Error(e)}}class Qr{static traceInvocation(e,t){return e?new Qr(2,t.name||new Error().stack.split(`\n`).slice(3,4).join(`\n`)):Qr._None}static traceCreation(e,t){return e?new Qr(1,t.name):Qr._None}constructor(e,t){this.type=e,this.name=t,this._start=Date.now(),this._dep=[]}branch(e,t){const i=new Qr(3,e.toString());return this._dep.push([e,t,i]),i}stop(){const e=Date.now()-this._start;Qr._totals+=e;let t=!1;function i(o,r){const a=[],l=new Array(o+1).join(\"\t\");for(const[c,d,u]of r._dep)if(d&&u){t=!0,a.push(`${l}CREATES -> ${c}`);const h=i(o+1,u);h&&a.push(h)}else a.push(`${l}uses -> ${c}`);return a.join(`\n`)}const s=[`${this.type===1?\"CREATE\":\"CALL\"} ${this.name}`,`${i(1,this)}`,`DONE, took ${e.toFixed(2)}ms (grand total ${Qr._totals.toFixed(2)}ms)`];(e>2||t)&&Qr.all.add(s.join(`\n`))}}Qr.all=new Set;Qr._None=new class extends Qr{constructor(){super(0,null)}stop(){}branch(){return this}};Qr._totals=0;const NUe=new Set([Tt.inMemory,Tt.vscodeSourceControl,Tt.walkThrough,Tt.walkThroughSnippet,Tt.vscodeChatCodeBlock,Tt.vscodeCopilotBackingChatCodeBlock]);class AUe{constructor(){this._byResource=new hs,this._byOwner=new Map}set(e,t,i){let s=this._byResource.get(e);s||(s=new Map,this._byResource.set(e,s)),s.set(t,i);let o=this._byOwner.get(t);o||(o=new hs,this._byOwner.set(t,o)),o.set(e,i)}get(e,t){const i=this._byResource.get(e);return i==null?void 0:i.get(t)}delete(e,t){let i=!1,s=!1;const o=this._byResource.get(e);o&&(i=o.delete(t));const r=this._byOwner.get(t);if(r&&(s=r.delete(e)),i!==s)throw new Error(\"illegal state\");return i&&s}values(e){var t,i,s,o;return typeof e==\"string\"?(i=(t=this._byOwner.get(e))===null||t===void 0?void 0:t.values())!==null&&i!==void 0?i:oi.empty():pt.isUri(e)?(o=(s=this._byResource.get(e))===null||s===void 0?void 0:s.values())!==null&&o!==void 0?o:oi.empty():oi.map(oi.concat(...this._byOwner.values()),r=>r[1])}}class RUe{constructor(e){this.errors=0,this.infos=0,this.warnings=0,this.unknowns=0,this._data=new hs,this._service=e,this._subscription=e.onMarkerChanged(this._update,this)}dispose(){this._subscription.dispose()}_update(e){for(const t of e){const i=this._data.get(t);i&&this._substract(i);const s=this._resourceStats(t);this._add(s),this._data.set(t,s)}}_resourceStats(e){const t={errors:0,warnings:0,infos:0,unknowns:0};if(NUe.has(e.scheme))return t;for(const{severity:i}of this._service.read({resource:e}))i===Qn.Error?t.errors+=1:i===Qn.Warning?t.warnings+=1:i===Qn.Info?t.infos+=1:t.unknowns+=1;return t}_substract(e){this.errors-=e.errors,this.warnings-=e.warnings,this.infos-=e.infos,this.unknowns-=e.unknowns}_add(e){this.errors+=e.errors,this.warnings+=e.warnings,this.infos+=e.infos,this.unknowns+=e.unknowns}}class Ip{constructor(){this._onMarkerChanged=new nae({delay:0,merge:Ip._merge}),this.onMarkerChanged=this._onMarkerChanged.event,this._data=new AUe,this._stats=new RUe(this)}dispose(){this._stats.dispose(),this._onMarkerChanged.dispose()}remove(e,t){for(const i of t||[])this.changeOne(e,i,[])}changeOne(e,t,i){if(Bre(i))this._data.delete(t,e)&&this._onMarkerChanged.fire([t]);else{const s=[];for(const o of i){const r=Ip._toMarker(e,t,o);r&&s.push(r)}this._data.set(t,e,s),this._onMarkerChanged.fire([t])}}static _toMarker(e,t,i){let{code:s,severity:o,message:r,source:a,startLineNumber:l,startColumn:c,endLineNumber:d,endColumn:u,relatedInformation:h,tags:f}=i;if(r)return l=l>0?l:1,c=c>0?c:1,d=d>=l?d:l,u=u>0?u:c,{resource:t,owner:e,code:s,severity:o,message:r,source:a,startLineNumber:l,startColumn:c,endLineNumber:d,endColumn:u,relatedInformation:h,tags:f}}changeAll(e,t){const i=[],s=this._data.values(e);if(s)for(const o of s){const r=oi.first(o);r&&(i.push(r.resource),this._data.delete(r.resource,e))}if(Zo(t)){const o=new hs;for(const{resource:r,marker:a}of t){const l=Ip._toMarker(e,r,a);if(!l)continue;const c=o.get(r);c?c.push(l):(o.set(r,[l]),i.push(r))}for(const[r,a]of o)this._data.set(r,e,a)}i.length>0&&this._onMarkerChanged.fire(i)}read(e=Object.create(null)){let{owner:t,resource:i,severities:s,take:o}=e;if((!o||o<0)&&(o=-1),t&&i){const r=this._data.get(i,t);if(r){const a=[];for(const l of r)if(Ip._accept(l,s)){const c=a.push(l);if(o>0&&c===o)break}return a}else return[]}else if(!t&&!i){const r=[];for(const a of this._data.values())for(const l of a)if(Ip._accept(l,s)){const c=r.push(l);if(o>0&&c===o)return r}return r}else{const r=this._data.values(i??t),a=[];for(const l of r)for(const c of l)if(Ip._accept(c,s)){const d=a.push(c);if(o>0&&d===o)return a}return a}}static _accept(e,t){return t===void 0||(t&e.severity)===e.severity}static _merge(e){const t=new hs;for(const i of e)for(const s of i)t.set(s,!0);return Array.from(t.keys())}}class MUe extends ne{get configurationModel(){return this._configurationModel}constructor(e){super(),this.logService=e,this._configurationModel=bo.createEmptyModel(this.logService)}reload(){return this.resetConfigurationModel(),this.configurationModel}getConfigurationDefaultOverrides(){return{}}resetConfigurationModel(){this._configurationModel=bo.createEmptyModel(this.logService);const e=Un.as(_u.Configuration).getConfigurationProperties();this.updateConfigurationModel(Object.keys(e),e)}updateConfigurationModel(e,t){const i=this.getConfigurationDefaultOverrides();for(const s of e){const o=i[s],r=t[s];o!==void 0?this._configurationModel.addValue(s,o):r?this._configurationModel.addValue(s,r.default):this._configurationModel.removeValue(s)}}}const v_=Jt(\"accessibilitySignalService\");class yt{static register(e){return new yt(e.fileName)}constructor(e){this.fileName=e}}yt.error=yt.register({fileName:\"error.mp3\"});yt.warning=yt.register({fileName:\"warning.mp3\"});yt.success=yt.register({fileName:\"success.mp3\"});yt.foldedArea=yt.register({fileName:\"foldedAreas.mp3\"});yt.break=yt.register({fileName:\"break.mp3\"});yt.quickFixes=yt.register({fileName:\"quickFixes.mp3\"});yt.taskCompleted=yt.register({fileName:\"taskCompleted.mp3\"});yt.taskFailed=yt.register({fileName:\"taskFailed.mp3\"});yt.terminalBell=yt.register({fileName:\"terminalBell.mp3\"});yt.diffLineInserted=yt.register({fileName:\"diffLineInserted.mp3\"});yt.diffLineDeleted=yt.register({fileName:\"diffLineDeleted.mp3\"});yt.diffLineModified=yt.register({fileName:\"diffLineModified.mp3\"});yt.chatRequestSent=yt.register({fileName:\"chatRequestSent.mp3\"});yt.chatResponseReceived1=yt.register({fileName:\"chatResponseReceived1.mp3\"});yt.chatResponseReceived2=yt.register({fileName:\"chatResponseReceived2.mp3\"});yt.chatResponseReceived3=yt.register({fileName:\"chatResponseReceived3.mp3\"});yt.chatResponseReceived4=yt.register({fileName:\"chatResponseReceived4.mp3\"});yt.clear=yt.register({fileName:\"clear.mp3\"});yt.save=yt.register({fileName:\"save.mp3\"});yt.format=yt.register({fileName:\"format.mp3\"});yt.voiceRecordingStarted=yt.register({fileName:\"voiceRecordingStarted.mp3\"});yt.voiceRecordingStopped=yt.register({fileName:\"voiceRecordingStopped.mp3\"});yt.progress=yt.register({fileName:\"progress.mp3\"});class PUe{constructor(e){this.randomOneOf=e}}class At{constructor(e,t,i,s,o,r,a){this.sound=e,this.name=t,this.legacySoundSettingsKey=i,this.settingsKey=s,this.legacyAnnouncementSettingsKey=o,this.announcementMessage=r,this.delaySettingsKey=a}static register(e){const t=new PUe(\"randomOneOf\"in e.sound?e.sound.randomOneOf:[e.sound]),i=new At(t,e.name,e.legacySoundSettingsKey,e.settingsKey,e.legacyAnnouncementSettingsKey,e.announcementMessage,e.delaySettingsKey);return At._signals.add(i),i}}At._signals=new Set;At.errorAtPosition=At.register({name:v(\"accessibilitySignals.positionHasError.name\",\"Error at Position\"),sound:yt.error,announcementMessage:v(\"accessibility.signals.positionHasError\",\"Error\"),settingsKey:\"accessibility.signals.positionHasError\",delaySettingsKey:\"accessibility.signalOptions.delays.errorAtPosition\"});At.warningAtPosition=At.register({name:v(\"accessibilitySignals.positionHasWarning.name\",\"Warning at Position\"),sound:yt.warning,announcementMessage:v(\"accessibility.signals.positionHasWarning\",\"Warning\"),settingsKey:\"accessibility.signals.positionHasWarning\",delaySettingsKey:\"accessibility.signalOptions.delays.warningAtPosition\"});At.errorOnLine=At.register({name:v(\"accessibilitySignals.lineHasError.name\",\"Error on Line\"),sound:yt.error,legacySoundSettingsKey:\"audioCues.lineHasError\",legacyAnnouncementSettingsKey:\"accessibility.alert.error\",announcementMessage:v(\"accessibility.signals.lineHasError\",\"Error on Line\"),settingsKey:\"accessibility.signals.lineHasError\"});At.warningOnLine=At.register({name:v(\"accessibilitySignals.lineHasWarning.name\",\"Warning on Line\"),sound:yt.warning,legacySoundSettingsKey:\"audioCues.lineHasWarning\",legacyAnnouncementSettingsKey:\"accessibility.alert.warning\",announcementMessage:v(\"accessibility.signals.lineHasWarning\",\"Warning on Line\"),settingsKey:\"accessibility.signals.lineHasWarning\"});At.foldedArea=At.register({name:v(\"accessibilitySignals.lineHasFoldedArea.name\",\"Folded Area on Line\"),sound:yt.foldedArea,legacySoundSettingsKey:\"audioCues.lineHasFoldedArea\",legacyAnnouncementSettingsKey:\"accessibility.alert.foldedArea\",announcementMessage:v(\"accessibility.signals.lineHasFoldedArea\",\"Folded\"),settingsKey:\"accessibility.signals.lineHasFoldedArea\"});At.break=At.register({name:v(\"accessibilitySignals.lineHasBreakpoint.name\",\"Breakpoint on Line\"),sound:yt.break,legacySoundSettingsKey:\"audioCues.lineHasBreakpoint\",legacyAnnouncementSettingsKey:\"accessibility.alert.breakpoint\",announcementMessage:v(\"accessibility.signals.lineHasBreakpoint\",\"Breakpoint\"),settingsKey:\"accessibility.signals.lineHasBreakpoint\"});At.inlineSuggestion=At.register({name:v(\"accessibilitySignals.lineHasInlineSuggestion.name\",\"Inline Suggestion on Line\"),sound:yt.quickFixes,legacySoundSettingsKey:\"audioCues.lineHasInlineSuggestion\",settingsKey:\"accessibility.signals.lineHasInlineSuggestion\"});At.terminalQuickFix=At.register({name:v(\"accessibilitySignals.terminalQuickFix.name\",\"Terminal Quick Fix\"),sound:yt.quickFixes,legacySoundSettingsKey:\"audioCues.terminalQuickFix\",legacyAnnouncementSettingsKey:\"accessibility.alert.terminalQuickFix\",announcementMessage:v(\"accessibility.signals.terminalQuickFix\",\"Quick Fix\"),settingsKey:\"accessibility.signals.terminalQuickFix\"});At.onDebugBreak=At.register({name:v(\"accessibilitySignals.onDebugBreak.name\",\"Debugger Stopped on Breakpoint\"),sound:yt.break,legacySoundSettingsKey:\"audioCues.onDebugBreak\",legacyAnnouncementSettingsKey:\"accessibility.alert.onDebugBreak\",announcementMessage:v(\"accessibility.signals.onDebugBreak\",\"Breakpoint\"),settingsKey:\"accessibility.signals.onDebugBreak\"});At.noInlayHints=At.register({name:v(\"accessibilitySignals.noInlayHints\",\"No Inlay Hints on Line\"),sound:yt.error,legacySoundSettingsKey:\"audioCues.noInlayHints\",legacyAnnouncementSettingsKey:\"accessibility.alert.noInlayHints\",announcementMessage:v(\"accessibility.signals.noInlayHints\",\"No Inlay Hints\"),settingsKey:\"accessibility.signals.noInlayHints\"});At.taskCompleted=At.register({name:v(\"accessibilitySignals.taskCompleted\",\"Task Completed\"),sound:yt.taskCompleted,legacySoundSettingsKey:\"audioCues.taskCompleted\",legacyAnnouncementSettingsKey:\"accessibility.alert.taskCompleted\",announcementMessage:v(\"accessibility.signals.taskCompleted\",\"Task Completed\"),settingsKey:\"accessibility.signals.taskCompleted\"});At.taskFailed=At.register({name:v(\"accessibilitySignals.taskFailed\",\"Task Failed\"),sound:yt.taskFailed,legacySoundSettingsKey:\"audioCues.taskFailed\",legacyAnnouncementSettingsKey:\"accessibility.alert.taskFailed\",announcementMessage:v(\"accessibility.signals.taskFailed\",\"Task Failed\"),settingsKey:\"accessibility.signals.taskFailed\"});At.terminalCommandFailed=At.register({name:v(\"accessibilitySignals.terminalCommandFailed\",\"Terminal Command Failed\"),sound:yt.error,legacySoundSettingsKey:\"audioCues.terminalCommandFailed\",legacyAnnouncementSettingsKey:\"accessibility.alert.terminalCommandFailed\",announcementMessage:v(\"accessibility.signals.terminalCommandFailed\",\"Command Failed\"),settingsKey:\"accessibility.signals.terminalCommandFailed\"});At.terminalCommandSucceeded=At.register({name:v(\"accessibilitySignals.terminalCommandSucceeded\",\"Terminal Command Succeeded\"),sound:yt.success,announcementMessage:v(\"accessibility.signals.terminalCommandSucceeded\",\"Command Succeeded\"),settingsKey:\"accessibility.signals.terminalCommandSucceeded\"});At.terminalBell=At.register({name:v(\"accessibilitySignals.terminalBell\",\"Terminal Bell\"),sound:yt.terminalBell,legacySoundSettingsKey:\"audioCues.terminalBell\",legacyAnnouncementSettingsKey:\"accessibility.alert.terminalBell\",announcementMessage:v(\"accessibility.signals.terminalBell\",\"Terminal Bell\"),settingsKey:\"accessibility.signals.terminalBell\"});At.notebookCellCompleted=At.register({name:v(\"accessibilitySignals.notebookCellCompleted\",\"Notebook Cell Completed\"),sound:yt.taskCompleted,legacySoundSettingsKey:\"audioCues.notebookCellCompleted\",legacyAnnouncementSettingsKey:\"accessibility.alert.notebookCellCompleted\",announcementMessage:v(\"accessibility.signals.notebookCellCompleted\",\"Notebook Cell Completed\"),settingsKey:\"accessibility.signals.notebookCellCompleted\"});At.notebookCellFailed=At.register({name:v(\"accessibilitySignals.notebookCellFailed\",\"Notebook Cell Failed\"),sound:yt.taskFailed,legacySoundSettingsKey:\"audioCues.notebookCellFailed\",legacyAnnouncementSettingsKey:\"accessibility.alert.notebookCellFailed\",announcementMessage:v(\"accessibility.signals.notebookCellFailed\",\"Notebook Cell Failed\"),settingsKey:\"accessibility.signals.notebookCellFailed\"});At.diffLineInserted=At.register({name:v(\"accessibilitySignals.diffLineInserted\",\"Diff Line Inserted\"),sound:yt.diffLineInserted,legacySoundSettingsKey:\"audioCues.diffLineInserted\",settingsKey:\"accessibility.signals.diffLineInserted\"});At.diffLineDeleted=At.register({name:v(\"accessibilitySignals.diffLineDeleted\",\"Diff Line Deleted\"),sound:yt.diffLineDeleted,legacySoundSettingsKey:\"audioCues.diffLineDeleted\",settingsKey:\"accessibility.signals.diffLineDeleted\"});At.diffLineModified=At.register({name:v(\"accessibilitySignals.diffLineModified\",\"Diff Line Modified\"),sound:yt.diffLineModified,legacySoundSettingsKey:\"audioCues.diffLineModified\",settingsKey:\"accessibility.signals.diffLineModified\"});At.chatRequestSent=At.register({name:v(\"accessibilitySignals.chatRequestSent\",\"Chat Request Sent\"),sound:yt.chatRequestSent,legacySoundSettingsKey:\"audioCues.chatRequestSent\",legacyAnnouncementSettingsKey:\"accessibility.alert.chatRequestSent\",announcementMessage:v(\"accessibility.signals.chatRequestSent\",\"Chat Request Sent\"),settingsKey:\"accessibility.signals.chatRequestSent\"});At.chatResponseReceived=At.register({name:v(\"accessibilitySignals.chatResponseReceived\",\"Chat Response Received\"),legacySoundSettingsKey:\"audioCues.chatResponseReceived\",sound:{randomOneOf:[yt.chatResponseReceived1,yt.chatResponseReceived2,yt.chatResponseReceived3,yt.chatResponseReceived4]},settingsKey:\"accessibility.signals.chatResponseReceived\"});At.progress=At.register({name:v(\"accessibilitySignals.progress\",\"Progress\"),sound:yt.progress,legacySoundSettingsKey:\"audioCues.chatResponsePending\",legacyAnnouncementSettingsKey:\"accessibility.alert.progress\",announcementMessage:v(\"accessibility.signals.progress\",\"Progress\"),settingsKey:\"accessibility.signals.progress\"});At.clear=At.register({name:v(\"accessibilitySignals.clear\",\"Clear\"),sound:yt.clear,legacySoundSettingsKey:\"audioCues.clear\",legacyAnnouncementSettingsKey:\"accessibility.alert.clear\",announcementMessage:v(\"accessibility.signals.clear\",\"Clear\"),settingsKey:\"accessibility.signals.clear\"});At.save=At.register({name:v(\"accessibilitySignals.save\",\"Save\"),sound:yt.save,legacySoundSettingsKey:\"audioCues.save\",legacyAnnouncementSettingsKey:\"accessibility.alert.save\",announcementMessage:v(\"accessibility.signals.save\",\"Save\"),settingsKey:\"accessibility.signals.save\"});At.format=At.register({name:v(\"accessibilitySignals.format\",\"Format\"),sound:yt.format,legacySoundSettingsKey:\"audioCues.format\",legacyAnnouncementSettingsKey:\"accessibility.alert.format\",announcementMessage:v(\"accessibility.signals.format\",\"Format\"),settingsKey:\"accessibility.signals.format\"});At.voiceRecordingStarted=At.register({name:v(\"accessibilitySignals.voiceRecordingStarted\",\"Voice Recording Started\"),sound:yt.voiceRecordingStarted,legacySoundSettingsKey:\"audioCues.voiceRecordingStarted\",settingsKey:\"accessibility.signals.voiceRecordingStarted\"});At.voiceRecordingStopped=At.register({name:v(\"accessibilitySignals.voiceRecordingStopped\",\"Voice Recording Stopped\"),sound:yt.voiceRecordingStopped,legacySoundSettingsKey:\"audioCues.voiceRecordingStopped\",settingsKey:\"accessibility.signals.voiceRecordingStopped\"});class OUe extends ne{constructor(e,t=[]){super(),this.logger=new pPe([e,...t]),this._register(e.onDidChangeLogLevel(i=>this.setLevel(i)))}get onDidChangeLogLevel(){return this.logger.onDidChangeLogLevel}setLevel(e){this.logger.setLevel(e)}getLevel(){return this.logger.getLevel()}trace(e,...t){this.logger.trace(e,...t)}debug(e,...t){this.logger.debug(e,...t)}info(e,...t){this.logger.info(e,...t)}warn(e,...t){this.logger.warn(e,...t)}error(e,...t){this.logger.error(e,...t)}}const Bue=[];function WD(n){Bue.push(n)}function FUe(){return Bue.slice(0)}var $g=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},ro=function(n,e){return function(t,i){e(t,i,n)}};class BUe{constructor(e){this.disposed=!1,this.model=e,this._onWillDispose=new X}get textEditorModel(){return this.model}dispose(){this.disposed=!0,this._onWillDispose.fire()}}let d6=class{constructor(e){this.modelService=e}createModelReference(e){const t=this.modelService.getModel(e);return t?Promise.resolve(new SAe(new BUe(t))):Promise.reject(new Error(\"Model not found\"))}};d6=$g([ro(0,Pn)],d6);class bP{show(){return bP.NULL_PROGRESS_RUNNER}async showWhile(e,t){await e}}bP.NULL_PROGRESS_RUNNER={done:()=>{},total:()=>{},worked:()=>{}};class WUe{withProgress(e,t,i){return t({report:()=>{}})}}class HUe{constructor(){this.isExtensionDevelopment=!1,this.isBuilt=!1}}class VUe{async confirm(e){return{confirmed:this.doConfirm(e.message,e.detail),checkboxChecked:!1}}doConfirm(e,t){let i=e;return t&&(i=i+`\n\n`+t),Ji.confirm(i)}async prompt(e){var t,i;let s;if(this.doConfirm(e.message,e.detail)){const r=[...(t=e.buttons)!==null&&t!==void 0?t:[]];e.cancelButton&&typeof e.cancelButton!=\"string\"&&typeof e.cancelButton!=\"boolean\"&&r.push(e.cancelButton),s=await((i=r[0])===null||i===void 0?void 0:i.run({checkboxChecked:!1}))}return{result:s}}async error(e,t){await this.prompt({type:us.Error,message:e,detail:t})}}class nk{info(e){return this.notify({severity:us.Info,message:e})}warn(e){return this.notify({severity:us.Warning,message:e})}error(e){return this.notify({severity:us.Error,message:e})}notify(e){switch(e.severity){case us.Error:console.error(e.message);break;case us.Warning:console.warn(e.message);break;default:console.log(e.message);break}return nk.NO_OP}prompt(e,t,i,s){return nk.NO_OP}status(e,t){return ne.None}}nk.NO_OP=new J9e;let u6=class{constructor(e){this._onWillExecuteCommand=new X,this._onDidExecuteCommand=new X,this.onDidExecuteCommand=this._onDidExecuteCommand.event,this._instantiationService=e}executeCommand(e,...t){const i=ri.getCommand(e);if(!i)return Promise.reject(new Error(`command '${e}' not found`));try{this._onWillExecuteCommand.fire({commandId:e,args:t});const s=this._instantiationService.invokeFunction.apply(this._instantiationService,[i.handler,...t]);return this._onDidExecuteCommand.fire({commandId:e,args:t}),Promise.resolve(s)}catch(s){return Promise.reject(s)}}};u6=$g([ro(0,ht)],u6);let nw=class extends _He{constructor(e,t,i,s,o,r){super(e,t,i,s,o),this._cachedResolver=null,this._dynamicKeybindings=[],this._domNodeListeners=[];const a=f=>{const g=new be;g.add(ce(f,Le.KEY_DOWN,p=>{const _=new ln(p);this._dispatch(_,_.target)&&(_.preventDefault(),_.stopPropagation())})),g.add(ce(f,Le.KEY_UP,p=>{const _=new ln(p);this._singleModifierDispatch(_,_.target)&&_.preventDefault()})),this._domNodeListeners.push(new zUe(f,g))},l=f=>{for(let g=0;g<this._domNodeListeners.length;g++){const p=this._domNodeListeners[g];p.domNode===f&&(this._domNodeListeners.splice(g,1),p.dispose())}},c=f=>{f.getOption(61)||a(f.getContainerDomNode())},d=f=>{f.getOption(61)||l(f.getContainerDomNode())};this._register(r.onCodeEditorAdd(c)),this._register(r.onCodeEditorRemove(d)),r.listCodeEditors().forEach(c);const u=f=>{a(f.getContainerDomNode())},h=f=>{l(f.getContainerDomNode())};this._register(r.onDiffEditorAdd(u)),this._register(r.onDiffEditorRemove(h)),r.listDiffEditors().forEach(u)}addDynamicKeybinding(e,t,i,s){return Jc(ri.registerCommand(e,i),this.addDynamicKeybindings([{keybinding:t,command:e,when:s}]))}addDynamicKeybindings(e){const t=e.map(i=>{var s;return{keybinding:eB(i.keybinding,Da),command:(s=i.command)!==null&&s!==void 0?s:null,commandArgs:i.commandArgs,when:i.when,weight1:1e3,weight2:0,extensionId:null,isBuiltinExtension:!1}});return this._dynamicKeybindings=this._dynamicKeybindings.concat(t),this.updateResolver(),dt(()=>{for(let i=0;i<this._dynamicKeybindings.length;i++)if(this._dynamicKeybindings[i]===t[0]){this._dynamicKeybindings.splice(i,t.length),this.updateResolver();return}})}updateResolver(){this._cachedResolver=null,this._onDidUpdateKeybindings.fire()}_getResolver(){if(!this._cachedResolver){const e=this._toNormalizedKeybindingItems(Hr.getDefaultKeybindings(),!0),t=this._toNormalizedKeybindingItems(this._dynamicKeybindings,!1);this._cachedResolver=new kx(e,t,i=>this._log(i))}return this._cachedResolver}_documentHasFocus(){return Ji.document.hasFocus()}_toNormalizedKeybindingItems(e,t){const i=[];let s=0;for(const o of e){const r=o.when||void 0,a=o.keybinding;if(!a)i[s++]=new fJ(void 0,o.command,o.commandArgs,r,t,null,!1);else{const l=HL.resolveKeybinding(a,Da);for(const c of l)i[s++]=new fJ(c,o.command,o.commandArgs,r,t,null,!1)}}return i}resolveKeyboardEvent(e){const t=new kg(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,e.keyCode);return new HL([t],Da)}};nw=$g([ro(0,Ct),ro(1,Sn),ro(2,Po),ro(3,ps),ro(4,er),ro(5,vi)],nw);class zUe extends ne{constructor(e,t){super(),this.domNode=e,this._register(t)}}function nee(n){return n&&typeof n==\"object\"&&(!n.overrideIdentifier||typeof n.overrideIdentifier==\"string\")&&(!n.resource||n.resource instanceof pt)}let GA=class{constructor(e){this.logService=e,this._onDidChangeConfiguration=new X,this.onDidChangeConfiguration=this._onDidChangeConfiguration.event;const t=new MUe(e);this._configuration=new YM(t.reload(),bo.createEmptyModel(e),bo.createEmptyModel(e),bo.createEmptyModel(e),bo.createEmptyModel(e),bo.createEmptyModel(e),new hs,bo.createEmptyModel(e),new hs,e),t.dispose()}getValue(e,t){const i=typeof e==\"string\"?e:void 0,s=nee(e)?e:nee(t)?t:{};return this._configuration.getValue(i,s,void 0)}updateValues(e){const t={data:this._configuration.toData()},i=[];for(const s of e){const[o,r]=s;this.getValue(o)!==r&&(this._configuration.updateValue(o,r),i.push(o))}if(i.length>0){const s=new fHe({keys:i,overrides:[]},t,this._configuration,void 0,this.logService);s.source=8,this._onDidChangeConfiguration.fire(s)}return Promise.resolve()}updateValue(e,t,i,s){return this.updateValues([[e,t]])}inspect(e,t={}){return this._configuration.inspect(e,t,void 0)}};GA=$g([ro(0,er)],GA);let h6=class{constructor(e,t,i){this.configurationService=e,this.modelService=t,this.languageService=i,this._onDidChangeConfiguration=new X,this.configurationService.onDidChangeConfiguration(s=>{this._onDidChangeConfiguration.fire({affectedKeys:s.affectedKeys,affectsConfiguration:(o,r)=>s.affectsConfiguration(r)})})}getValue(e,t,i){const s=ee.isIPosition(t)?t:null,o=s?typeof i==\"string\"?i:void 0:typeof t==\"string\"?t:void 0,r=e?this.getLanguage(e,s):void 0;return typeof o>\"u\"?this.configurationService.getValue({resource:e,overrideIdentifier:r}):this.configurationService.getValue(o,{resource:e,overrideIdentifier:r})}getLanguage(e,t){const i=this.modelService.getModel(e);return i?t?i.getLanguageIdAtPosition(t.lineNumber,t.column):i.getLanguageId():this.languageService.guessLanguageIdByFilepathOrFirstLine(e)}};h6=$g([ro(0,qt),ro(1,Pn),ro(2,An)],h6);let f6=class{constructor(e){this.configurationService=e}getEOL(e,t){const i=this.configurationService.getValue(\"files.eol\",{overrideIdentifier:t,resource:e});return i&&typeof i==\"string\"&&i!==\"auto\"?i:Br||Xt?`\n`:`\\r\n`}};f6=$g([ro(0,qt)],f6);class $Ue{publicLog2(){}}class sk{constructor(){const e=pt.from({scheme:sk.SCHEME,authority:\"model\",path:\"/\"});this.workspace={id:Dde,folders:[new NHe({uri:e,name:\"\",index:0})]}}getWorkspace(){return this.workspace}getWorkspaceFolder(e){return e&&e.scheme===sk.SCHEME?this.workspace.folders[0]:null}}sk.SCHEME=\"inmemory\";function ZA(n,e,t){if(!e||!(n instanceof GA))return;const i=[];Object.keys(e).forEach(s=>{lHe(s)&&i.push([`editor.${s}`,e[s]]),t&&cHe(s)&&i.push([`diffEditor.${s}`,e[s]])}),i.length>0&&n.updateValues(i)}let g6=class{constructor(e){this._modelService=e}hasPreviewHandler(){return!1}async apply(e,t){const i=Array.isArray(e)?e:C$.convert(e),s=new Map;for(const a of i){if(!(a instanceof pm))throw new Error(\"bad edit - only text edits are supported\");const l=this._modelService.getModel(a.resource);if(!l)throw new Error(\"bad edit - model not found\");if(typeof a.versionId==\"number\"&&l.getVersionId()!==a.versionId)throw new Error(\"bad state - model changed in the meantime\");let c=s.get(l);c||(c=[],s.set(l,c)),c.push(Mn.replaceMove(A.lift(a.textEdit.range),a.textEdit.text))}let o=0,r=0;for(const[a,l]of s)a.pushStackElement(),a.pushEditOperations([],l,()=>[]),a.pushStackElement(),r+=1,o+=l.length;return{ariaSummary:l0(L9.bulkEditServiceSummary,o,r),isApplied:o>0}}};g6=$g([ro(0,Pn)],g6);class UUe{getUriLabel(e,t){return e.scheme===\"file\"?e.fsPath:e.path}getUriBasenameLabel(e){return dc(e)}}let p6=class extends nHe{constructor(e,t){super(e),this._codeEditorService=t}showContextView(e,t,i){if(!t){const s=this._codeEditorService.getFocusedCodeEditor()||this._codeEditorService.getActiveCodeEditor();s&&(t=s.getContainerDomNode())}return super.showContextView(e,t,i)}};p6=$g([ro(0,g_),ro(1,vi)],p6);class jUe{constructor(){this._neverEmitter=new X,this.onDidChangeTrust=this._neverEmitter.event}isWorkspaceTrusted(){return!0}}class KUe extends $L{constructor(){super()}}class qUe extends OUe{constructor(){super(new gPe)}}let m6=class extends P9{constructor(e,t,i,s,o,r){super(e,t,i,s,o,r),this.configure({blockMouse:!1})}};m6=$g([ro(0,Po),ro(1,ps),ro(2,Wg),ro(3,Li),ro(4,Dl),ro(5,Ct)],m6);class GUe{async playSignal(e,t){}}ai(er,qUe,0);ai(qt,GA,0);ai(vz,h6,0);ai(Tle,f6,0);ai(b0,sk,0);ai(ZC,UUe,0);ai(Po,$Ue,0);ai(DD,VUe,0);ai(r$,HUe,0);ai(ps,nk,0);ai(Uh,Ip,0);ai(An,KUe,0);ai(Tl,mUe,0);ai(Pn,NA,0);ai(xz,H9,0);ai(Ct,c6,0);ai(kde,WUe,0);ai(m_,bP,0);ai(dd,UVe,0);ai(bc,wB,0);ai(ED,g6,0);ai(Ide,jUe,0);ai(fa,d6,0);ai(Ha,s6,0);ai(wc,E$e,0);ai(Sn,u6,0);ai(Li,nw,0);ai(Cc,i6,0);ai(Wg,p6,0);ai($a,W9,0);ai(zg,KA,0);ai(za,m6,0);ai(Dl,o6,0);ai(v_,GUe,0);var St;(function(n){const e=new kD;for(const[l,c]of FY())e.set(l,c);const t=new qA(e,!0);e.set(ht,t);function i(l){s||r({});const c=e.get(l);if(!c)throw new Error(\"Missing service \"+l);return c instanceof qu?t.invokeFunction(d=>d.get(l)):c}n.get=i;let s=!1;const o=new X;function r(l){if(s)return t;s=!0;for(const[d,u]of FY())e.get(d)||e.set(d,u);for(const d in l)if(l.hasOwnProperty(d)){const u=Jt(d);e.get(u)instanceof qu&&e.set(u,l[d])}const c=FUe();for(const d of c)try{t.createInstance(d)}catch(u){Mt(u)}return o.fire(),t}n.initialize=r;function a(l){if(s)return l();const c=new be,d=c.add(o.event(()=>{d.dispose(),c.add(l())}));return c}n.withServices=a})(St||(St={}));class uu{static capture(e){if(e.getScrollTop()===0||e.hasPendingScrollAnimation())return new uu(e.getScrollTop(),e.getContentHeight(),null,0,null);let t=null,i=0;const s=e.getVisibleRanges();if(s.length>0){t=s[0].getStartPosition();const o=e.getTopForPosition(t.lineNumber,t.column);i=e.getScrollTop()-o}return new uu(e.getScrollTop(),e.getContentHeight(),t,i,e.getPosition())}constructor(e,t,i,s,o){this._initialScrollTop=e,this._initialContentHeight=t,this._visiblePosition=i,this._visiblePositionScrollDelta=s,this._cursorPosition=o}restore(e){if(!(this._initialContentHeight===e.getContentHeight()&&this._initialScrollTop===e.getScrollTop())&&this._visiblePosition){const t=e.getTopForPosition(this._visiblePosition.lineNumber,this._visiblePosition.column);e.setScrollTop(t+this._visiblePositionScrollDelta)}}restoreRelativeVerticalPositionOfCursor(e){if(this._initialContentHeight===e.getContentHeight()&&this._initialScrollTop===e.getScrollTop())return;const t=e.getPosition();if(!this._cursorPosition||!t)return;const i=e.getTopForLineNumber(t.lineNumber)-e.getTopForLineNumber(this._cursorPosition.lineNumber);e.setScrollTop(e.getScrollTop()+i,1)}}function q$(){return e7&&!!e7.VSCODE_DEV}function Wue(n){if(q$()){const e=ZUe();return e.add(n),{dispose(){e.delete(n)}}}else return{dispose(){}}}function ZUe(){fT||(fT=new Set);const n=globalThis;return n.$hotReload_applyNewExports||(n.$hotReload_applyNewExports=e=>{const t={config:{mode:void 0},...e};for(const i of fT){const s=i(t);if(s)return s}}),fT}let fT;q$()&&Wue(({oldExports:n,newSrc:e,config:t})=>{if(t.mode===\"patch-prototype\")return i=>{var s,o;for(const r in i){const a=i[r];if(console.log(`[hot-reload] Patching prototype methods of '${r}'`,{exportedItem:a}),typeof a==\"function\"&&a.prototype){const l=n[r];if(l){for(const c of Object.getOwnPropertyNames(a.prototype)){const d=Object.getOwnPropertyDescriptor(a.prototype,c),u=Object.getOwnPropertyDescriptor(l.prototype,c);((s=d==null?void 0:d.value)===null||s===void 0?void 0:s.toString())!==((o=u==null?void 0:u.value)===null||o===void 0?void 0:o.toString())&&console.log(`[hot-reload] Patching prototype method '${r}.${c}'`),Object.defineProperty(l.prototype,c,d)}i[r]=l}}}return!0}});function YUe(n,e,t,i){if(n.length===0)return e;if(e.length===0)return n;const s=[];let o=0,r=0;for(;o<n.length&&r<e.length;){const a=n[o],l=e[r],c=t(a),d=t(l);c<d?(s.push(a),o++):c>d?(s.push(l),r++):(s.push(i(a,l)),o++,r++)}for(;o<n.length;)s.push(n[o]),o++;for(;r<e.length;)s.push(e[r]),r++;return s}function YA(n,e){const t=new be,i=n.createDecorationsCollection();return t.add(tP({debugName:()=>`Apply decorations from ${e.debugName}`},s=>{const o=e.read(s);i.set(o)})),t.add({dispose:()=>{i.clear()}}),t}function MS(n,e){return n.appendChild(e),dt(()=>{n.removeChild(e)})}function XUe(n,e){return n.prepend(e),dt(()=>{n.removeChild(e)})}class Hue extends ne{get width(){return this._width}get height(){return this._height}get automaticLayout(){return this._automaticLayout}constructor(e,t){super(),this._automaticLayout=!1,this.elementSizeObserver=this._register(new Fle(e,t)),this._width=li(this,this.elementSizeObserver.getWidth()),this._height=li(this,this.elementSizeObserver.getHeight()),this._register(this.elementSizeObserver.onDidChange(i=>rn(s=>{this._width.set(this.elementSizeObserver.getWidth(),s),this._height.set(this.elementSizeObserver.getHeight(),s)})))}observe(e){this.elementSizeObserver.observe(e)}setAutomaticLayout(e){this._automaticLayout=e,e?this.elementSizeObserver.startObserving():this.elementSizeObserver.stopObserving()}}function see(n,e,t){let i=e.get(),s=i,o=i;const r=li(\"animatedValue\",i);let a=-1;const l=300;let c;t.add(AD({createEmptyChangeSummary:()=>({animate:!1}),handleChange:(u,h)=>(u.didChange(e)&&(h.animate=h.animate||u.change),!0)},(u,h)=>{c!==void 0&&(n.cancelAnimationFrame(c),c=void 0),s=o,i=e.read(u),a=Date.now()-(h.animate?0:l),d()}));function d(){const u=Date.now()-a;o=Math.floor(QUe(u,s,i-s,l)),u<l?c=n.requestAnimationFrame(d):o=i,r.set(o,void 0)}return r}function QUe(n,e,t,i){return n===i?e+t:t*(-Math.pow(2,-10*n/i)+1)+e}class Vue extends ne{constructor(e,t,i){super(),this._register(new CP(e,i)),this._register(jm(i,{height:t.actualHeight,top:t.actualTop}))}}class XA{get afterLineNumber(){return this._afterLineNumber.get()}constructor(e,t){this._afterLineNumber=e,this.heightInPx=t,this.domNode=document.createElement(\"div\"),this._actualTop=li(this,void 0),this._actualHeight=li(this,void 0),this.actualTop=this._actualTop,this.actualHeight=this._actualHeight,this.showInHiddenAreas=!0,this.onChange=this._afterLineNumber,this.onDomNodeTop=i=>{this._actualTop.set(i,void 0)},this.onComputedHeight=i=>{this._actualHeight.set(i,void 0)}}}class CP{constructor(e,t){this._editor=e,this._domElement=t,this._overlayWidgetId=`managedOverlayWidget-${CP._counter++}`,this._overlayWidget={getId:()=>this._overlayWidgetId,getDomNode:()=>this._domElement,getPosition:()=>null},this._editor.addOverlayWidget(this._overlayWidget)}dispose(){this._editor.removeOverlayWidget(this._overlayWidget)}}CP._counter=0;function jm(n,e){return Ut(t=>{for(let[i,s]of Object.entries(e))s&&typeof s==\"object\"&&\"read\"in s&&(s=s.read(t)),typeof s==\"number\"&&(s=`${s}px`),i=i.replace(/[A-Z]/g,o=>\"-\"+o.toLowerCase()),n.style[i]=s})}function Wc(n,e){return JUe([n],e),n}function JUe(n,e){q$()&&Ko(\"reload\",i=>Wue(({oldExports:s})=>{if([...Object.values(s)].some(o=>n.includes(o)))return o=>(i(void 0),!0)})).read(e)}function QA(n,e,t,i){const s=new be,o=[];return s.add(uc((r,a)=>{const l=e.read(r),c=new Map,d=new Map;t&&t(!0),n.changeViewZones(u=>{for(const h of o)u.removeZone(h),i==null||i.delete(h);o.length=0;for(const h of l){const f=u.addZone(h);h.setZoneId&&h.setZoneId(f),o.push(f),i==null||i.add(f),c.set(h,f)}}),t&&t(!1),a.add(AD({createEmptyChangeSummary(){return{zoneIds:[]}},handleChange(u,h){const f=d.get(u.changedObservable);return f!==void 0&&h.zoneIds.push(f),!0}},(u,h)=>{for(const f of l)f.onChange&&(d.set(f.onChange,c.get(f)),f.onChange.read(u));t&&t(!0),n.changeViewZones(f=>{for(const g of h.zoneIds)f.layoutZone(g)}),t&&t(!1)}))})),s.add({dispose(){t&&t(!0),n.changeViewZones(r=>{for(const a of o)r.removeZone(a)}),i==null||i.clear(),t&&t(!1)}}),s}class eje extends $n{dispose(){super.dispose(!0)}}function oee(n,e){const t=mL(e,s=>s.original.startLineNumber<=n.lineNumber);if(!t)return A.fromPositions(n);if(t.original.endLineNumberExclusive<=n.lineNumber){const s=n.lineNumber-t.original.endLineNumberExclusive+t.modified.endLineNumberExclusive;return A.fromPositions(new ee(s,n.column))}if(!t.innerChanges)return A.fromPositions(new ee(t.modified.startLineNumber,1));const i=mL(t.innerChanges,s=>s.originalRange.getStartPosition().isBeforeOrEqual(n));if(!i){const s=n.lineNumber-t.original.startLineNumber+t.modified.startLineNumber;return A.fromPositions(new ee(s,n.column))}if(i.originalRange.containsPosition(n))return i.modifiedRange;{const s=tje(i.originalRange.getEndPosition(),n);return A.fromPositions(s.addToPosition(i.modifiedRange.getEndPosition()))}}function tje(n,e){return n.lineNumber===e.lineNumber?new Ar(0,e.column-n.column):new Ar(e.lineNumber-n.lineNumber,e.column-1)}function ije(n,e){let t;return n.filter(i=>{const s=e(i,t);return t=i,s})}var G$=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Z$=function(n,e){return function(t,i){e(t,i,n)}};const nje=Jn(\"diff-review-insert\",Te.add,v(\"accessibleDiffViewerInsertIcon\",\"Icon for 'Insert' in accessible diff viewer.\")),sje=Jn(\"diff-review-remove\",Te.remove,v(\"accessibleDiffViewerRemoveIcon\",\"Icon for 'Remove' in accessible diff viewer.\")),oje=Jn(\"diff-review-close\",Te.close,v(\"accessibleDiffViewerCloseIcon\",\"Icon for 'Close' in accessible diff viewer.\"));let Jp=class extends ne{constructor(e,t,i,s,o,r,a,l,c){super(),this._parentNode=e,this._visible=t,this._setVisible=i,this._canClose=s,this._width=o,this._height=r,this._diffs=a,this._models=l,this._instantiationService=c,this._state=J0(this,(d,u)=>{const h=this._visible.read(d);if(this._parentNode.style.visibility=h?\"visible\":\"hidden\",!h)return null;const f=u.add(this._instantiationService.createInstance(_6,this._diffs,this._models,this._setVisible,this._canClose)),g=u.add(this._instantiationService.createInstance(v6,this._parentNode,f,this._width,this._height,this._models));return{model:f,view:g}}).recomputeInitiallyAndOnChange(this._store)}next(){rn(e=>{const t=this._visible.get();this._setVisible(!0,e),t&&this._state.get().model.nextGroup(e)})}prev(){rn(e=>{this._setVisible(!0,e),this._state.get().model.previousGroup(e)})}close(){rn(e=>{this._setVisible(!1,e)})}};Jp._ttPolicy=Bg(\"diffReview\",{createHTML:n=>n});Jp=G$([Z$(8,ht)],Jp);let _6=class extends ne{constructor(e,t,i,s,o){super(),this._diffs=e,this._models=t,this._setVisible=i,this.canClose=s,this._accessibilitySignalService=o,this._groups=li(this,[]),this._currentGroupIdx=li(this,0),this._currentElementIdx=li(this,0),this.groups=this._groups,this.currentGroup=this._currentGroupIdx.map((r,a)=>this._groups.read(a)[r]),this.currentGroupIndex=this._currentGroupIdx,this.currentElement=this._currentElementIdx.map((r,a)=>{var l;return(l=this.currentGroup.read(a))===null||l===void 0?void 0:l.lines[r]}),this._register(Ut(r=>{const a=this._diffs.read(r);if(!a){this._groups.set([],void 0);return}const l=rje(a,this._models.getOriginalModel().getLineCount(),this._models.getModifiedModel().getLineCount());rn(c=>{const d=this._models.getModifiedPosition();if(d){const u=l.findIndex(h=>(d==null?void 0:d.lineNumber)<h.range.modified.endLineNumberExclusive);u!==-1&&this._currentGroupIdx.set(u,c)}this._groups.set(l,c)})})),this._register(Ut(r=>{const a=this.currentElement.read(r);(a==null?void 0:a.type)===kr.Deleted?this._accessibilitySignalService.playSignal(At.diffLineDeleted,{source:\"accessibleDiffViewer.currentElementChanged\"}):(a==null?void 0:a.type)===kr.Added&&this._accessibilitySignalService.playSignal(At.diffLineInserted,{source:\"accessibleDiffViewer.currentElementChanged\"})})),this._register(Ut(r=>{var a;const l=this.currentElement.read(r);if(l&&l.type!==kr.Header){const c=(a=l.modifiedLineNumber)!==null&&a!==void 0?a:l.diff.modified.startLineNumber;this._models.modifiedSetSelection(A.fromPositions(new ee(c,1)))}}))}_goToGroupDelta(e,t){const i=this.groups.get();!i||i.length<=1||jL(t,s=>{this._currentGroupIdx.set(zt.ofLength(i.length).clipCyclic(this._currentGroupIdx.get()+e),s),this._currentElementIdx.set(0,s)})}nextGroup(e){this._goToGroupDelta(1,e)}previousGroup(e){this._goToGroupDelta(-1,e)}_goToLineDelta(e){const t=this.currentGroup.get();!t||t.lines.length<=1||rn(i=>{this._currentElementIdx.set(zt.ofLength(t.lines.length).clip(this._currentElementIdx.get()+e),i)})}goToNextLine(){this._goToLineDelta(1)}goToPreviousLine(){this._goToLineDelta(-1)}goToLine(e){const t=this.currentGroup.get();if(!t)return;const i=t.lines.indexOf(e);i!==-1&&rn(s=>{this._currentElementIdx.set(i,s)})}revealCurrentElementInEditor(){if(!this.canClose.get())return;this._setVisible(!1,void 0);const e=this.currentElement.get();e&&(e.type===kr.Deleted?this._models.originalReveal(A.fromPositions(new ee(e.originalLineNumber,1))):this._models.modifiedReveal(e.type!==kr.Header?A.fromPositions(new ee(e.modifiedLineNumber,1)):void 0))}close(){this.canClose.get()&&(this._setVisible(!1,void 0),this._models.modifiedFocus())}};_6=G$([Z$(4,v_)],_6);const Gy=3;function rje(n,e,t){const i=[];for(const s of TV(n,(o,r)=>r.modified.startLineNumber-o.modified.endLineNumberExclusive<2*Gy)){const o=[];o.push(new lje);const r=new Vt(Math.max(1,s[0].original.startLineNumber-Gy),Math.min(s[s.length-1].original.endLineNumberExclusive+Gy,e+1)),a=new Vt(Math.max(1,s[0].modified.startLineNumber-Gy),Math.min(s[s.length-1].modified.endLineNumberExclusive+Gy,t+1));Fre(s,(d,u)=>{const h=new Vt(d?d.original.endLineNumberExclusive:r.startLineNumber,u?u.original.startLineNumber:r.endLineNumberExclusive),f=new Vt(d?d.modified.endLineNumberExclusive:a.startLineNumber,u?u.modified.startLineNumber:a.endLineNumberExclusive);h.forEach(g=>{o.push(new uje(g,f.startLineNumber+(g-h.startLineNumber)))}),u&&(u.original.forEach(g=>{o.push(new cje(u,g))}),u.modified.forEach(g=>{o.push(new dje(u,g))}))});const l=s[0].modified.join(s[s.length-1].modified),c=s[0].original.join(s[s.length-1].original);i.push(new aje(new Ir(l,c),o))}return i}var kr;(function(n){n[n.Header=0]=\"Header\",n[n.Unchanged=1]=\"Unchanged\",n[n.Deleted=2]=\"Deleted\",n[n.Added=3]=\"Added\"})(kr||(kr={}));class aje{constructor(e,t){this.range=e,this.lines=t}}class lje{constructor(){this.type=kr.Header}}class cje{constructor(e,t){this.diff=e,this.originalLineNumber=t,this.type=kr.Deleted,this.modifiedLineNumber=void 0}}class dje{constructor(e,t){this.diff=e,this.modifiedLineNumber=t,this.type=kr.Added,this.originalLineNumber=void 0}}class uje{constructor(e,t){this.originalLineNumber=e,this.modifiedLineNumber=t,this.type=kr.Unchanged}}let v6=class extends ne{constructor(e,t,i,s,o,r){super(),this._element=e,this._model=t,this._width=i,this._height=s,this._models=o,this._languageService=r,this.domNode=this._element,this.domNode.className=\"monaco-component diff-review monaco-editor-background\";const a=document.createElement(\"div\");a.className=\"diff-review-actions\",this._actionBar=this._register(new hc(a)),this._register(Ut(l=>{this._actionBar.clear(),this._model.canClose.read(l)&&this._actionBar.push(new Ta(\"diffreview.close\",v(\"label.close\",\"Close\"),\"close-diff-review \"+_t.asClassName(oje),!0,async()=>t.close()),{label:!1,icon:!0})})),this._content=document.createElement(\"div\"),this._content.className=\"diff-review-content\",this._content.setAttribute(\"role\",\"code\"),this._scrollbar=this._register(new wD(this._content,{})),yo(this.domNode,this._scrollbar.getDomNode(),a),this._register(Ut(l=>{this._height.read(l),this._width.read(l),this._scrollbar.scanDomNode()})),this._register(dt(()=>{yo(this.domNode)})),this._register(jm(this.domNode,{width:this._width,height:this._height})),this._register(jm(this._content,{width:this._width,height:this._height})),this._register(uc((l,c)=>{this._model.currentGroup.read(l),this._render(c)})),this._register(rs(this.domNode,\"keydown\",l=>{(l.equals(18)||l.equals(2066)||l.equals(530))&&(l.preventDefault(),this._model.goToNextLine()),(l.equals(16)||l.equals(2064)||l.equals(528))&&(l.preventDefault(),this._model.goToPreviousLine()),(l.equals(9)||l.equals(2057)||l.equals(521)||l.equals(1033))&&(l.preventDefault(),this._model.close()),(l.equals(10)||l.equals(3))&&(l.preventDefault(),this._model.revealCurrentElementInEditor())}))}_render(e){const t=this._models.getOriginalOptions(),i=this._models.getModifiedOptions(),s=document.createElement(\"div\");s.className=\"diff-review-table\",s.setAttribute(\"role\",\"list\"),s.setAttribute(\"aria-label\",v(\"ariaLabel\",\"Accessible Diff Viewer. Use arrow up and down to navigate.\")),So(s,i.get(50)),yo(this._content,s);const o=this._models.getOriginalModel(),r=this._models.getModifiedModel();if(!o||!r)return;const a=o.getOptions(),l=r.getOptions(),c=i.get(67),d=this._model.currentGroup.get();for(const u of(d==null?void 0:d.lines)||[]){if(!d)break;let h;if(u.type===kr.Header){const g=document.createElement(\"div\");g.className=\"diff-review-row\",g.setAttribute(\"role\",\"listitem\");const p=d.range,_=this._model.currentGroupIndex.get(),b=this._model.groups.get().length,w=k=>k===0?v(\"no_lines_changed\",\"no lines changed\"):k===1?v(\"one_line_changed\",\"1 line changed\"):v(\"more_lines_changed\",\"{0} lines changed\",k),y=w(p.original.length),S=w(p.modified.length);g.setAttribute(\"aria-label\",v({},\"Difference {0} of {1}: original line {2}, {3}, modified line {4}, {5}\",_+1,b,p.original.startLineNumber,y,p.modified.startLineNumber,S));const x=document.createElement(\"div\");x.className=\"diff-review-cell diff-review-summary\",x.appendChild(document.createTextNode(`${_+1}/${b}: @@ -${p.original.startLineNumber},${p.original.length} +${p.modified.startLineNumber},${p.modified.length} @@`)),g.appendChild(x),h=g}else h=this._createRow(u,c,this._width.get(),t,o,a,i,r,l);s.appendChild(h);const f=Rt(g=>this._model.currentElement.read(g)===u);e.add(Ut(g=>{const p=f.read(g);h.tabIndex=p?0:-1,p&&h.focus()})),e.add(ce(h,\"focus\",()=>{this._model.goToLine(u)}))}this._scrollbar.scanDomNode()}_createRow(e,t,i,s,o,r,a,l,c){const d=s.get(145),u=d.glyphMarginWidth+d.lineNumbersWidth,h=a.get(145),f=10+h.glyphMarginWidth+h.lineNumbersWidth;let g=\"diff-review-row\",p=\"\";const _=\"diff-review-spacer\";let b=null;switch(e.type){case kr.Added:g=\"diff-review-row line-insert\",p=\" char-insert\",b=nje;break;case kr.Deleted:g=\"diff-review-row line-delete\",p=\" char-delete\",b=sje;break}const w=document.createElement(\"div\");w.style.minWidth=i+\"px\",w.className=g,w.setAttribute(\"role\",\"listitem\"),w.ariaLevel=\"\";const y=document.createElement(\"div\");y.className=\"diff-review-cell\",y.style.height=`${t}px`,w.appendChild(y);const S=document.createElement(\"span\");S.style.width=u+\"px\",S.style.minWidth=u+\"px\",S.className=\"diff-review-line-number\"+p,e.originalLineNumber!==void 0?S.appendChild(document.createTextNode(String(e.originalLineNumber))):S.innerText=\" \",y.appendChild(S);const x=document.createElement(\"span\");x.style.width=f+\"px\",x.style.minWidth=f+\"px\",x.style.paddingRight=\"10px\",x.className=\"diff-review-line-number\"+p,e.modifiedLineNumber!==void 0?x.appendChild(document.createTextNode(String(e.modifiedLineNumber))):x.innerText=\" \",y.appendChild(x);const k=document.createElement(\"span\");if(k.className=_,b){const N=document.createElement(\"span\");N.className=_t.asClassName(b),N.innerText=\"  \",k.appendChild(N)}else k.innerText=\"  \";y.appendChild(k);let D;if(e.modifiedLineNumber!==void 0){let N=this._getLineHtml(l,a,c.tabSize,e.modifiedLineNumber,this._languageService.languageIdCodec);Jp._ttPolicy&&(N=Jp._ttPolicy.createHTML(N)),y.insertAdjacentHTML(\"beforeend\",N),D=l.getLineContent(e.modifiedLineNumber)}else{let N=this._getLineHtml(o,s,r.tabSize,e.originalLineNumber,this._languageService.languageIdCodec);Jp._ttPolicy&&(N=Jp._ttPolicy.createHTML(N)),y.insertAdjacentHTML(\"beforeend\",N),D=o.getLineContent(e.originalLineNumber)}D.length===0&&(D=v(\"blankLine\",\"blank\"));let I=\"\";switch(e.type){case kr.Unchanged:e.originalLineNumber===e.modifiedLineNumber?I=v({},\"{0} unchanged line {1}\",D,e.originalLineNumber):I=v(\"equalLine\",\"{0} original line {1} modified line {2}\",D,e.originalLineNumber,e.modifiedLineNumber);break;case kr.Added:I=v(\"insertLine\",\"+ {0} modified line {1}\",D,e.modifiedLineNumber);break;case kr.Deleted:I=v(\"deleteLine\",\"- {0} original line {1}\",D,e.originalLineNumber);break}return w.setAttribute(\"aria-label\",I),w}_getLineHtml(e,t,i,s,o){const r=e.getLineContent(s),a=t.get(50),l=Is.createEmpty(r,o),c=xl.isBasicASCII(r,e.mightContainNonBasicASCII()),d=xl.containsRTL(r,c,e.mightContainRTL());return EM(new f_(a.isMonospace&&!t.get(33),a.canUseHalfwidthRightwardsArrow,r,!1,c,d,0,l,[],i,0,a.spaceWidth,a.middotWidth,a.wsmiddotWidth,t.get(117),t.get(99),t.get(94),t.get(51)!==cl.OFF,null)).html}};v6=G$([Z$(5,An)],v6);class hje{constructor(e){this.editors=e}getOriginalModel(){return this.editors.original.getModel()}getOriginalOptions(){return this.editors.original.getOptions()}originalReveal(e){this.editors.original.revealRange(e),this.editors.original.setSelection(e),this.editors.original.focus()}getModifiedModel(){return this.editors.modified.getModel()}getModifiedOptions(){return this.editors.modified.getOptions()}modifiedReveal(e){e&&(this.editors.modified.revealRange(e),this.editors.modified.setSelection(e)),this.editors.modified.focus()}modifiedSetSelection(e){this.editors.modified.setSelection(e)}modifiedFocus(){this.editors.modified.focus()}getModifiedPosition(){var e;return(e=this.editors.modified.getPosition())!==null&&e!==void 0?e:void 0}}class vm extends ne{constructor(e,t,i,s,o){super(),this._rootElement=e,this._diffModel=t,this._originalEditorLayoutInfo=i,this._modifiedEditorLayoutInfo=s,this._editors=o,this._originalScrollTop=qi(this._editors.original.onDidScrollChange,()=>this._editors.original.getScrollTop()),this._modifiedScrollTop=qi(this._editors.modified.onDidScrollChange,()=>this._editors.modified.getScrollTop()),this._viewZonesChanged=Ko(\"onDidChangeViewZones\",this._editors.modified.onDidChangeViewZones),this.width=li(this,0),this._modifiedViewZonesChangedSignal=Ko(\"modified.onDidChangeViewZones\",this._editors.modified.onDidChangeViewZones),this._originalViewZonesChangedSignal=Ko(\"original.onDidChangeViewZones\",this._editors.original.onDidChangeViewZones),this._state=J0(this,(d,u)=>{var h;this._element.replaceChildren();const f=this._diffModel.read(d),g=(h=f==null?void 0:f.diff.read(d))===null||h===void 0?void 0:h.movedTexts;if(!g||g.length===0){this.width.set(0,void 0);return}this._viewZonesChanged.read(d);const p=this._originalEditorLayoutInfo.read(d),_=this._modifiedEditorLayoutInfo.read(d);if(!p||!_){this.width.set(0,void 0);return}this._modifiedViewZonesChangedSignal.read(d),this._originalViewZonesChangedSignal.read(d);const b=g.map(I=>{function N(me,De){const lt=De.getTopForLineNumber(me.startLineNumber,!0),We=De.getTopForLineNumber(me.endLineNumberExclusive,!0);return(lt+We)/2}const P=N(I.lineRangeMapping.original,this._editors.original),O=this._originalScrollTop.read(d),M=N(I.lineRangeMapping.modified,this._editors.modified),z=this._modifiedScrollTop.read(d),K=P-O,ae=M-z,se=Math.min(P,M),he=Math.max(P,M);return{range:new zt(se,he),from:K,to:ae,fromWithoutScroll:P,toWithoutScroll:M,move:I}});b.sort(a2e(oa(I=>I.fromWithoutScroll>I.toWithoutScroll,l2e),oa(I=>I.fromWithoutScroll>I.toWithoutScroll?I.fromWithoutScroll:-I.toWithoutScroll,Qc)));const w=Y$.compute(b.map(I=>I.range)),y=10,S=p.verticalScrollbarWidth,x=(w.getTrackCount()-1)*10+y*2,k=S+x+(_.contentLeft-vm.movedCodeBlockPadding);let D=0;for(const I of b){const N=w.getTrack(D),P=S+y+N*10,O=15,M=15,z=k,K=_.glyphMarginWidth+_.lineNumbersWidth,ae=18,se=document.createElementNS(\"http://www.w3.org/2000/svg\",\"rect\");se.classList.add(\"arrow-rectangle\"),se.setAttribute(\"x\",`${z-K}`),se.setAttribute(\"y\",`${I.to-ae/2}`),se.setAttribute(\"width\",`${K}`),se.setAttribute(\"height\",`${ae}`),this._element.appendChild(se);const he=document.createElementNS(\"http://www.w3.org/2000/svg\",\"g\"),me=document.createElementNS(\"http://www.w3.org/2000/svg\",\"path\");me.setAttribute(\"d\",`M 0 ${I.from} L ${P} ${I.from} L ${P} ${I.to} L ${z-M} ${I.to}`),me.setAttribute(\"fill\",\"none\"),he.appendChild(me);const De=document.createElementNS(\"http://www.w3.org/2000/svg\",\"polygon\");De.classList.add(\"arrow\"),u.add(Ut(lt=>{me.classList.toggle(\"currentMove\",I.move===f.activeMovedText.read(lt)),De.classList.toggle(\"currentMove\",I.move===f.activeMovedText.read(lt))})),De.setAttribute(\"points\",`${z-M},${I.to-O/2} ${z},${I.to} ${z-M},${I.to+O/2}`),he.appendChild(De),this._element.appendChild(he),D++}this.width.set(x,void 0)}),this._element=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\"),this._element.setAttribute(\"class\",\"moved-blocks-lines\"),this._rootElement.appendChild(this._element),this._register(dt(()=>this._element.remove())),this._register(Ut(d=>{const u=this._originalEditorLayoutInfo.read(d),h=this._modifiedEditorLayoutInfo.read(d);!u||!h||(this._element.style.left=`${u.width-u.verticalScrollbarWidth}px`,this._element.style.height=`${u.height}px`,this._element.style.width=`${u.verticalScrollbarWidth+u.contentLeft-vm.movedCodeBlockPadding+this.width.read(d)}px`)})),this._register(RD(this._state));const r=Rt(d=>{const u=this._diffModel.read(d),h=u==null?void 0:u.diff.read(d);return h?h.movedTexts.map(f=>({move:f,original:new XA(Vd(f.lineRangeMapping.original.startLineNumber-1),18),modified:new XA(Vd(f.lineRangeMapping.modified.startLineNumber-1),18)})):[]});this._register(QA(this._editors.original,r.map(d=>d.map(u=>u.original)))),this._register(QA(this._editors.modified,r.map(d=>d.map(u=>u.modified)))),this._register(uc((d,u)=>{const h=r.read(d);for(const f of h)u.add(new ree(this._editors.original,f.original,f.move,\"original\",this._diffModel.get())),u.add(new ree(this._editors.modified,f.modified,f.move,\"modified\",this._diffModel.get()))}));const a=Ko(\"original.onDidFocusEditorWidget\",d=>this._editors.original.onDidFocusEditorWidget(()=>setTimeout(()=>d(void 0),0))),l=Ko(\"modified.onDidFocusEditorWidget\",d=>this._editors.modified.onDidFocusEditorWidget(()=>setTimeout(()=>d(void 0),0)));let c=\"modified\";this._register(AD({createEmptyChangeSummary:()=>{},handleChange:(d,u)=>(d.didChange(a)&&(c=\"original\"),d.didChange(l)&&(c=\"modified\"),!0)},d=>{a.read(d),l.read(d);const u=this._diffModel.read(d);if(!u)return;const h=u.diff.read(d);let f;if(h&&c===\"original\"){const g=this._editors.originalCursor.read(d);g&&(f=h.movedTexts.find(p=>p.lineRangeMapping.original.contains(g.lineNumber)))}if(h&&c===\"modified\"){const g=this._editors.modifiedCursor.read(d);g&&(f=h.movedTexts.find(p=>p.lineRangeMapping.modified.contains(g.lineNumber)))}f!==u.movedTextToCompare.get()&&u.movedTextToCompare.set(void 0,void 0),u.setActiveMovedText(f)}))}}vm.movedCodeBlockPadding=4;class Y${static compute(e){const t=[],i=[];for(const s of e){let o=t.findIndex(r=>!r.intersectsStrict(s));o===-1&&(t.length>=6?o=HOe(t,oa(a=>a.intersectWithRangeLength(s),Qc)):(o=t.length,t.push(new gz))),t[o].addRange(s),i.push(o)}return new Y$(t.length,i)}constructor(e,t){this._trackCount=e,this.trackPerLineIdx=t}getTrack(e){return this.trackPerLineIdx[e]}getTrackCount(){return this._trackCount}}class ree extends Vue{constructor(e,t,i,s,o){const r=wi(\"div.diff-hidden-lines-widget\");super(e,t,r.root),this._editor=e,this._move=i,this._kind=s,this._diffModel=o,this._nodes=wi(\"div.diff-moved-code-block\",{style:{marginRight:\"4px\"}},[wi(\"div.text-content@textContent\"),wi(\"div.action-bar@actionBar\")]),r.root.appendChild(this._nodes.root);const a=qi(this._editor.onDidLayoutChange,()=>this._editor.getLayoutInfo());this._register(jm(this._nodes.root,{paddingRight:a.map(h=>h.verticalScrollbarWidth)}));let l;i.changes.length>0?l=this._kind===\"original\"?v(\"codeMovedToWithChanges\",\"Code moved with changes to line {0}-{1}\",this._move.lineRangeMapping.modified.startLineNumber,this._move.lineRangeMapping.modified.endLineNumberExclusive-1):v(\"codeMovedFromWithChanges\",\"Code moved with changes from line {0}-{1}\",this._move.lineRangeMapping.original.startLineNumber,this._move.lineRangeMapping.original.endLineNumberExclusive-1):l=this._kind===\"original\"?v(\"codeMovedTo\",\"Code moved to line {0}-{1}\",this._move.lineRangeMapping.modified.startLineNumber,this._move.lineRangeMapping.modified.endLineNumberExclusive-1):v(\"codeMovedFrom\",\"Code moved from line {0}-{1}\",this._move.lineRangeMapping.original.startLineNumber,this._move.lineRangeMapping.original.endLineNumberExclusive-1);const c=this._register(new hc(this._nodes.actionBar,{highlightToggledItems:!0})),d=new Ta(\"\",l,\"\",!1);c.push(d,{icon:!1,label:!0});const u=new Ta(\"\",\"Compare\",_t.asClassName(Te.compareChanges),!0,()=>{this._editor.focus(),this._diffModel.movedTextToCompare.set(this._diffModel.movedTextToCompare.get()===i?void 0:this._move,void 0)});this._register(Ut(h=>{const f=this._diffModel.movedTextToCompare.read(h)===i;u.checked=f})),c.push(u,{icon:!1,label:!0})}}V(\"diffEditor.move.border\",{dark:\"#8b8b8b9c\",light:\"#8b8b8b9c\",hcDark:\"#8b8b8b9c\",hcLight:\"#8b8b8b9c\"},v(\"diffEditor.move.border\",\"The border color for text that got moved in the diff editor.\"));V(\"diffEditor.moveActive.border\",{dark:\"#FFA500\",light:\"#FFA500\",hcDark:\"#FFA500\",hcLight:\"#FFA500\"},v(\"diffEditor.moveActive.border\",\"The active border color for text that got moved in the diff editor.\"));V(\"diffEditor.unchangedRegionShadow\",{dark:\"#000000\",light:\"#737373BF\",hcDark:\"#000000\",hcLight:\"#737373BF\"},v(\"diffEditor.unchangedRegionShadow\",\"The color of the shadow around unchanged region widgets.\"));const fje=Jn(\"diff-insert\",Te.add,v(\"diffInsertIcon\",\"Line decoration for inserts in the diff editor.\")),zue=Jn(\"diff-remove\",Te.remove,v(\"diffRemoveIcon\",\"Line decoration for removals in the diff editor.\")),aee=Wt.register({className:\"line-insert\",description:\"line-insert\",isWholeLine:!0,linesDecorationsClassName:\"insert-sign \"+_t.asClassName(fje),marginClassName:\"gutter-insert\"}),lee=Wt.register({className:\"line-delete\",description:\"line-delete\",isWholeLine:!0,linesDecorationsClassName:\"delete-sign \"+_t.asClassName(zue),marginClassName:\"gutter-delete\"}),cee=Wt.register({className:\"line-insert\",description:\"line-insert\",isWholeLine:!0,marginClassName:\"gutter-insert\"}),dee=Wt.register({className:\"line-delete\",description:\"line-delete\",isWholeLine:!0,marginClassName:\"gutter-delete\"}),uee=Wt.register({className:\"char-insert\",description:\"char-insert\",shouldFillLineOnLineBreak:!0}),gje=Wt.register({className:\"char-insert\",description:\"char-insert\",isWholeLine:!0}),pje=Wt.register({className:\"char-insert diff-range-empty\",description:\"char-insert diff-range-empty\"}),b6=Wt.register({className:\"char-delete\",description:\"char-delete\",shouldFillLineOnLineBreak:!0}),mje=Wt.register({className:\"char-delete\",description:\"char-delete\",isWholeLine:!0}),_je=Wt.register({className:\"char-delete diff-range-empty\",description:\"char-delete diff-range-empty\"});class vje extends ne{constructor(e,t,i,s){super(),this._editors=e,this._diffModel=t,this._options=i,this._decorations=Rt(this,o=>{var r;const a=(r=this._diffModel.read(o))===null||r===void 0?void 0:r.diff.read(o);if(!a)return null;const l=this._diffModel.read(o).movedTextToCompare.read(o),c=this._options.renderIndicators.read(o),d=this._options.showEmptyDecorations.read(o),u=[],h=[];if(!l)for(const g of a.mappings)if(g.lineRangeMapping.original.isEmpty||u.push({range:g.lineRangeMapping.original.toInclusiveRange(),options:c?lee:dee}),g.lineRangeMapping.modified.isEmpty||h.push({range:g.lineRangeMapping.modified.toInclusiveRange(),options:c?aee:cee}),g.lineRangeMapping.modified.isEmpty||g.lineRangeMapping.original.isEmpty)g.lineRangeMapping.original.isEmpty||u.push({range:g.lineRangeMapping.original.toInclusiveRange(),options:mje}),g.lineRangeMapping.modified.isEmpty||h.push({range:g.lineRangeMapping.modified.toInclusiveRange(),options:gje});else for(const p of g.lineRangeMapping.innerChanges||[])g.lineRangeMapping.original.contains(p.originalRange.startLineNumber)&&u.push({range:p.originalRange,options:p.originalRange.isEmpty()&&d?_je:b6}),g.lineRangeMapping.modified.contains(p.modifiedRange.startLineNumber)&&h.push({range:p.modifiedRange,options:p.modifiedRange.isEmpty()&&d?pje:uee});if(l)for(const g of l.changes){const p=g.original.toInclusiveRange();p&&u.push({range:p,options:c?lee:dee});const _=g.modified.toInclusiveRange();_&&h.push({range:_,options:c?aee:cee});for(const b of g.innerChanges||[])u.push({range:b.originalRange,options:b6}),h.push({range:b.modifiedRange,options:uee})}const f=this._diffModel.read(o).activeMovedText.read(o);for(const g of a.movedTexts)u.push({range:g.lineRangeMapping.original.toInclusiveRange(),options:{description:\"moved\",blockClassName:\"movedOriginal\"+(g===f?\" currentMove\":\"\"),blockPadding:[vm.movedCodeBlockPadding,0,vm.movedCodeBlockPadding,vm.movedCodeBlockPadding]}}),h.push({range:g.lineRangeMapping.modified.toInclusiveRange(),options:{description:\"moved\",blockClassName:\"movedModified\"+(g===f?\" currentMove\":\"\"),blockPadding:[4,0,4,4]}});return{originalDecorations:u,modifiedDecorations:h}}),this._register(YA(this._editors.original,this._decorations.map(o=>(o==null?void 0:o.originalDecorations)||[]))),this._register(YA(this._editors.modified,this._decorations.map(o=>(o==null?void 0:o.modifiedDecorations)||[])))}}class bje{resetSash(){this._sashRatio.set(void 0,void 0)}constructor(e,t){this._options=e,this.dimensions=t,this.sashLeft=Pde(this,i=>{var s;const o=(s=this._sashRatio.read(i))!==null&&s!==void 0?s:this._options.splitViewDefaultRatio.read(i);return this._computeSashLeft(o,i)},(i,s)=>{const o=this.dimensions.width.get();this._sashRatio.set(i/o,s)}),this._sashRatio=li(this,void 0)}_computeSashLeft(e,t){const i=this.dimensions.width.read(t),s=Math.floor(this._options.splitViewDefaultRatio.read(t)*i),o=this._options.enableSplitViewResizing.read(t)?Math.floor(e*i):s,r=100;return i<=r*2?s:o<r?r:o>i-r?i-r:o}}class $ue extends ne{constructor(e,t,i,s,o,r){super(),this._domNode=e,this._dimensions=t,this._enabled=i,this._boundarySashes=s,this.sashLeft=o,this._resetSash=r,this._sash=this._register(new Vo(this._domNode,{getVerticalSashTop:a=>0,getVerticalSashLeft:a=>this.sashLeft.get(),getVerticalSashHeight:a=>this._dimensions.height.get()},{orientation:0})),this._startSashPosition=void 0,this._register(this._sash.onDidStart(()=>{this._startSashPosition=this.sashLeft.get()})),this._register(this._sash.onDidChange(a=>{this.sashLeft.set(this._startSashPosition+(a.currentX-a.startX),void 0)})),this._register(this._sash.onDidEnd(()=>this._sash.layout())),this._register(this._sash.onDidReset(()=>this._resetSash())),this._register(Ut(a=>{const l=this._boundarySashes.read(a);l&&(this._sash.orthogonalEndSash=l.bottom)})),this._register(Ut(a=>{const l=this._enabled.read(a);this._sash.state=l?3:0,this.sashLeft.read(a),this._dimensions.height.read(a),this._sash.layout()}))}}var Uue=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},C6=function(n,e){return function(t,i){e(t,i,n)}},rv;const jue=Jt(\"diffProviderFactoryService\");let w6=class{constructor(e){this.instantiationService=e}createDiffProvider(e){return this.instantiationService.createInstance(JA,e)}};w6=Uue([C6(0,ht)],w6);ai(jue,w6,1);let JA=rv=class{constructor(e,t,i){this.editorWorkerService=t,this.telemetryService=i,this.onDidChangeEventEmitter=new X,this.onDidChange=this.onDidChangeEventEmitter.event,this.diffAlgorithm=\"advanced\",this.diffAlgorithmOnDidChangeSubscription=void 0,this.setOptions(e)}dispose(){var e;(e=this.diffAlgorithmOnDidChangeSubscription)===null||e===void 0||e.dispose()}async computeDiff(e,t,i,s){var o,r;if(typeof this.diffAlgorithm!=\"string\")return this.diffAlgorithm.computeDiff(e,t,i,s);if(e.isDisposed()||t.isDisposed())return{changes:[],identical:!0,quitEarly:!1,moves:[]};if(e.getLineCount()===1&&e.getLineMaxColumn(1)===1)return t.getLineCount()===1&&t.getLineMaxColumn(1)===1?{changes:[],identical:!0,quitEarly:!1,moves:[]}:{changes:[new Cl(new Vt(1,2),new Vt(1,t.getLineCount()+1),[new qd(e.getFullModelRange(),t.getFullModelRange())])],identical:!1,quitEarly:!1,moves:[]};const a=JSON.stringify([e.uri.toString(),t.uri.toString()]),l=JSON.stringify([e.id,t.id,e.getAlternativeVersionId(),t.getAlternativeVersionId(),JSON.stringify(i)]),c=rv.diffCache.get(a);if(c&&c.context===l)return c.result;const d=xo.create(),u=await this.editorWorkerService.computeDiff(e.uri,t.uri,i,this.diffAlgorithm),h=d.elapsed();if(this.telemetryService.publicLog2(\"diffEditor.computeDiff\",{timeMs:h,timedOut:(o=u==null?void 0:u.quitEarly)!==null&&o!==void 0?o:!0,detectedMoves:i.computeMoves?(r=u==null?void 0:u.moves.length)!==null&&r!==void 0?r:0:-1}),s.isCancellationRequested)return{changes:[],identical:!1,quitEarly:!0,moves:[]};if(!u)throw new Error(\"no diff result available\");return rv.diffCache.size>10&&rv.diffCache.delete(rv.diffCache.keys().next().value),rv.diffCache.set(a,{result:u,context:l}),u}setOptions(e){var t;let i=!1;e.diffAlgorithm&&this.diffAlgorithm!==e.diffAlgorithm&&((t=this.diffAlgorithmOnDidChangeSubscription)===null||t===void 0||t.dispose(),this.diffAlgorithmOnDidChangeSubscription=void 0,this.diffAlgorithm=e.diffAlgorithm,typeof e.diffAlgorithm!=\"string\"&&(this.diffAlgorithmOnDidChangeSubscription=e.diffAlgorithm.onDidChange(()=>this.onDidChangeEventEmitter.fire())),i=!0),i&&this.onDidChangeEventEmitter.fire()}};JA.diffCache=new Map;JA=rv=Uue([C6(1,bc),C6(2,Po)],JA);var Cje=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},wje=function(n,e){return function(t,i){e(t,i,n)}};let y6=class extends ne{setActiveMovedText(e){this._activeMovedText.set(e,void 0)}constructor(e,t,i){super(),this.model=e,this._options=t,this._diffProviderFactoryService=i,this._isDiffUpToDate=li(this,!1),this.isDiffUpToDate=this._isDiffUpToDate,this._diff=li(this,void 0),this.diff=this._diff,this._unchangedRegions=li(this,void 0),this.unchangedRegions=Rt(this,a=>{var l,c;return this._options.hideUnchangedRegions.read(a)?(c=(l=this._unchangedRegions.read(a))===null||l===void 0?void 0:l.regions)!==null&&c!==void 0?c:[]:(rn(d=>{var u;for(const h of((u=this._unchangedRegions.get())===null||u===void 0?void 0:u.regions)||[])h.collapseAll(d)}),[])}),this.movedTextToCompare=li(this,void 0),this._activeMovedText=li(this,void 0),this._hoveredMovedText=li(this,void 0),this.activeMovedText=Rt(this,a=>{var l,c;return(c=(l=this.movedTextToCompare.read(a))!==null&&l!==void 0?l:this._hoveredMovedText.read(a))!==null&&c!==void 0?c:this._activeMovedText.read(a)}),this._cancellationTokenSource=new $n,this._diffProvider=Rt(this,a=>{const l=this._diffProviderFactoryService.createDiffProvider({diffAlgorithm:this._options.diffAlgorithm.read(a)}),c=Ko(\"onDidChange\",l.onDidChange);return{diffProvider:l,onChangeSignal:c}}),this._register(dt(()=>this._cancellationTokenSource.cancel()));const s=nP(\"contentChangedSignal\"),o=this._register(new Xi(()=>s.trigger(void 0),200));this._register(Ut(a=>{const l=this._unchangedRegions.read(a);if(!l||l.regions.some(g=>g.isDragged.read(a)))return;const c=l.originalDecorationIds.map(g=>e.original.getDecorationRange(g)).map(g=>g?Vt.fromRangeInclusive(g):void 0),d=l.modifiedDecorationIds.map(g=>e.modified.getDecorationRange(g)).map(g=>g?Vt.fromRangeInclusive(g):void 0),u=l.regions.map((g,p)=>!c[p]||!d[p]?void 0:new em(c[p].startLineNumber,d[p].startLineNumber,c[p].length,g.visibleLineCountTop.read(a),g.visibleLineCountBottom.read(a))).filter(gh),h=[];let f=!1;for(const g of TV(u,(p,_)=>p.getHiddenModifiedRange(a).endLineNumberExclusive===_.getHiddenModifiedRange(a).startLineNumber))if(g.length>1){f=!0;const p=g.reduce((b,w)=>b+w.lineCount,0),_=new em(g[0].originalLineNumber,g[0].modifiedLineNumber,p,g[0].visibleLineCountTop.get(),g[g.length-1].visibleLineCountBottom.get());h.push(_)}else h.push(g[0]);if(f){const g=e.original.deltaDecorations(l.originalDecorationIds,h.map(_=>({range:_.originalUnchangedRange.toInclusiveRange(),options:{description:\"unchanged\"}}))),p=e.modified.deltaDecorations(l.modifiedDecorationIds,h.map(_=>({range:_.modifiedUnchangedRange.toInclusiveRange(),options:{description:\"unchanged\"}})));rn(_=>{this._unchangedRegions.set({regions:h,originalDecorationIds:g,modifiedDecorationIds:p},_)})}}));const r=(a,l,c)=>{const d=em.fromDiffs(a.changes,e.original.getLineCount(),e.modified.getLineCount(),this._options.hideUnchangedRegionsMinimumLineCount.read(c),this._options.hideUnchangedRegionsContextLineCount.read(c));let u;const h=this._unchangedRegions.get();if(h){const _=h.originalDecorationIds.map(S=>e.original.getDecorationRange(S)).map(S=>S?Vt.fromRangeInclusive(S):void 0),b=h.modifiedDecorationIds.map(S=>e.modified.getDecorationRange(S)).map(S=>S?Vt.fromRangeInclusive(S):void 0);let y=ije(h.regions.map((S,x)=>{if(!_[x]||!b[x])return;const k=_[x].length;return new em(_[x].startLineNumber,b[x].startLineNumber,k,Math.min(S.visibleLineCountTop.get(),k),Math.min(S.visibleLineCountBottom.get(),k-S.visibleLineCountTop.get()))}).filter(gh),(S,x)=>!x||S.modifiedLineNumber>=x.modifiedLineNumber+x.lineCount&&S.originalLineNumber>=x.originalLineNumber+x.lineCount).map(S=>new Ir(S.getHiddenOriginalRange(c),S.getHiddenModifiedRange(c)));y=Ir.clip(y,Vt.ofLength(1,e.original.getLineCount()),Vt.ofLength(1,e.modified.getLineCount())),u=Ir.inverse(y,e.original.getLineCount(),e.modified.getLineCount())}const f=[];if(u)for(const _ of d){const b=u.filter(w=>w.original.intersectsStrict(_.originalUnchangedRange)&&w.modified.intersectsStrict(_.modifiedUnchangedRange));f.push(..._.setVisibleRanges(b,l))}else f.push(...d);const g=e.original.deltaDecorations((h==null?void 0:h.originalDecorationIds)||[],f.map(_=>({range:_.originalUnchangedRange.toInclusiveRange(),options:{description:\"unchanged\"}}))),p=e.modified.deltaDecorations((h==null?void 0:h.modifiedDecorationIds)||[],f.map(_=>({range:_.modifiedUnchangedRange.toInclusiveRange(),options:{description:\"unchanged\"}})));this._unchangedRegions.set({regions:f,originalDecorationIds:g,modifiedDecorationIds:p},l)};this._register(e.modified.onDidChangeContent(a=>{if(this._diff.get()){const c=lg.fromModelContentChanges(a.changes);this._lastDiff,e.original,e.modified}this._isDiffUpToDate.set(!1,void 0),o.schedule()})),this._register(e.original.onDidChangeContent(a=>{if(this._diff.get()){const c=lg.fromModelContentChanges(a.changes);this._lastDiff,e.original,e.modified}this._isDiffUpToDate.set(!1,void 0),o.schedule()})),this._register(uc(async(a,l)=>{var c,d;this._options.hideUnchangedRegionsMinimumLineCount.read(a),this._options.hideUnchangedRegionsContextLineCount.read(a),o.cancel(),s.read(a);const u=this._diffProvider.read(a);u.onChangeSignal.read(a),Wc(Dle,a),Wc(CB,a),this._isDiffUpToDate.set(!1,void 0);let h=[];l.add(e.original.onDidChangeContent(p=>{const _=lg.fromModelContentChanges(p.changes);h=rA(h,_)}));let f=[];l.add(e.modified.onDidChangeContent(p=>{const _=lg.fromModelContentChanges(p.changes);f=rA(f,_)}));let g=await u.diffProvider.computeDiff(e.original,e.modified,{ignoreTrimWhitespace:this._options.ignoreTrimWhitespace.read(a),maxComputationTimeMs:this._options.maxComputationTimeMs.read(a),computeMoves:this._options.showMoves.read(a)},this._cancellationTokenSource.token);this._cancellationTokenSource.token.isCancellationRequested||e.original.isDisposed()||e.modified.isDisposed()||(g=yje(g,e.original,e.modified),g=(c=(e.original,e.modified,void 0))!==null&&c!==void 0?c:g,g=(d=(e.original,e.modified,void 0))!==null&&d!==void 0?d:g,rn(p=>{r(g,p),this._lastDiff=g;const _=X$.fromDiffResult(g);this._diff.set(_,p),this._isDiffUpToDate.set(!0,p);const b=this.movedTextToCompare.get();this.movedTextToCompare.set(b?this._lastDiff.moves.find(w=>w.lineRangeMapping.modified.intersect(b.lineRangeMapping.modified)):void 0,p)}))}))}ensureModifiedLineIsVisible(e,t,i){var s,o;if(((s=this.diff.get())===null||s===void 0?void 0:s.mappings.length)===0)return;const r=((o=this._unchangedRegions.get())===null||o===void 0?void 0:o.regions)||[];for(const a of r)if(a.getHiddenModifiedRange(void 0).contains(e)){a.showModifiedLine(e,t,i);return}}ensureOriginalLineIsVisible(e,t,i){var s,o;if(((s=this.diff.get())===null||s===void 0?void 0:s.mappings.length)===0)return;const r=((o=this._unchangedRegions.get())===null||o===void 0?void 0:o.regions)||[];for(const a of r)if(a.getHiddenOriginalRange(void 0).contains(e)){a.showOriginalLine(e,t,i);return}}async waitForDiff(){await Ode(this.isDiffUpToDate,e=>e)}serializeState(){const e=this._unchangedRegions.get();return{collapsedRegions:e==null?void 0:e.regions.map(t=>({range:t.getHiddenModifiedRange(void 0).serialize()}))}}restoreSerializedState(e){var t;const i=(t=e.collapsedRegions)===null||t===void 0?void 0:t.map(o=>Vt.deserialize(o.range)),s=this._unchangedRegions.get();!s||!i||rn(o=>{for(const r of s.regions)for(const a of i)if(r.modifiedUnchangedRange.intersect(a)){r.setHiddenModifiedRange(a,o);break}})}};y6=Cje([wje(2,jue)],y6);function yje(n,e,t){return{changes:n.changes.map(i=>new Cl(i.original,i.modified,i.innerChanges?i.innerChanges.map(s=>Sje(s,e,t)):void 0)),moves:n.moves,identical:n.identical,quitEarly:n.quitEarly}}function Sje(n,e,t){let i=n.originalRange,s=n.modifiedRange;return(i.endColumn!==1||s.endColumn!==1)&&i.endColumn===e.getLineMaxColumn(i.endLineNumber)&&s.endColumn===t.getLineMaxColumn(s.endLineNumber)&&i.endLineNumber<e.getLineCount()&&s.endLineNumber<t.getLineCount()&&(i=i.setEndPosition(i.endLineNumber+1,1),s=s.setEndPosition(s.endLineNumber+1,1)),new qd(i,s)}class X${static fromDiffResult(e){return new X$(e.changes.map(t=>new Kue(t)),e.moves||[],e.identical,e.quitEarly)}constructor(e,t,i,s){this.mappings=e,this.movedTexts=t,this.identical=i,this.quitEarly=s}}class Kue{constructor(e){this.lineRangeMapping=e}}class em{static fromDiffs(e,t,i,s,o){const r=Cl.inverse(e,t,i),a=[];for(const l of r){let c=l.original.startLineNumber,d=l.modified.startLineNumber,u=l.original.length;const h=c===1&&d===1,f=c+u===t+1&&d+u===i+1;(h||f)&&u>=o+s?(h&&!f&&(u-=o),f&&!h&&(c+=o,d+=o,u-=o),a.push(new em(c,d,u,0,0))):u>=o*2+s&&(c+=o,d+=o,u-=o*2,a.push(new em(c,d,u,0,0)))}return a}get originalUnchangedRange(){return Vt.ofLength(this.originalLineNumber,this.lineCount)}get modifiedUnchangedRange(){return Vt.ofLength(this.modifiedLineNumber,this.lineCount)}constructor(e,t,i,s,o){this.originalLineNumber=e,this.modifiedLineNumber=t,this.lineCount=i,this._visibleLineCountTop=li(this,0),this.visibleLineCountTop=this._visibleLineCountTop,this._visibleLineCountBottom=li(this,0),this.visibleLineCountBottom=this._visibleLineCountBottom,this._shouldHideControls=Rt(this,l=>this.visibleLineCountTop.read(l)+this.visibleLineCountBottom.read(l)===this.lineCount&&!this.isDragged.read(l)),this.isDragged=li(this,void 0);const r=Math.max(Math.min(s,this.lineCount),0),a=Math.max(Math.min(o,this.lineCount-s),0);IY(s===r),IY(o===a),this._visibleLineCountTop.set(r,void 0),this._visibleLineCountBottom.set(a,void 0)}setVisibleRanges(e,t){const i=[],s=new Gl(e.map(l=>l.modified)).subtractFrom(this.modifiedUnchangedRange);let o=this.originalLineNumber,r=this.modifiedLineNumber;const a=this.modifiedLineNumber+this.lineCount;if(s.ranges.length===0)this.showAll(t),i.push(this);else{let l=0;for(const c of s.ranges){const d=l===s.ranges.length-1;l++;const u=(d?a:c.endLineNumberExclusive)-r,h=new em(o,r,u,0,0);h.setHiddenModifiedRange(c,t),i.push(h),o=h.originalUnchangedRange.endLineNumberExclusive,r=h.modifiedUnchangedRange.endLineNumberExclusive}}return i}shouldHideControls(e){return this._shouldHideControls.read(e)}getHiddenOriginalRange(e){return Vt.ofLength(this.originalLineNumber+this._visibleLineCountTop.read(e),this.lineCount-this._visibleLineCountTop.read(e)-this._visibleLineCountBottom.read(e))}getHiddenModifiedRange(e){return Vt.ofLength(this.modifiedLineNumber+this._visibleLineCountTop.read(e),this.lineCount-this._visibleLineCountTop.read(e)-this._visibleLineCountBottom.read(e))}setHiddenModifiedRange(e,t){const i=e.startLineNumber-this.modifiedLineNumber,s=this.modifiedLineNumber+this.lineCount-e.endLineNumberExclusive;this.setState(i,s,t)}getMaxVisibleLineCountTop(){return this.lineCount-this._visibleLineCountBottom.get()}getMaxVisibleLineCountBottom(){return this.lineCount-this._visibleLineCountTop.get()}showMoreAbove(e=10,t){const i=this.getMaxVisibleLineCountTop();this._visibleLineCountTop.set(Math.min(this._visibleLineCountTop.get()+e,i),t)}showMoreBelow(e=10,t){const i=this.lineCount-this._visibleLineCountTop.get();this._visibleLineCountBottom.set(Math.min(this._visibleLineCountBottom.get()+e,i),t)}showAll(e){this._visibleLineCountBottom.set(this.lineCount-this._visibleLineCountTop.get(),e)}showModifiedLine(e,t,i){const s=e+1-(this.modifiedLineNumber+this._visibleLineCountTop.get()),o=this.modifiedLineNumber-this._visibleLineCountBottom.get()+this.lineCount-e;t===0&&s<o||t===1?this._visibleLineCountTop.set(this._visibleLineCountTop.get()+s,i):this._visibleLineCountBottom.set(this._visibleLineCountBottom.get()+o,i)}showOriginalLine(e,t,i){const s=e-this.originalLineNumber,o=this.originalLineNumber+this.lineCount-e;t===0&&s<o||t===1?this._visibleLineCountTop.set(Math.min(this._visibleLineCountTop.get()+o-s,this.getMaxVisibleLineCountTop()),i):this._visibleLineCountBottom.set(Math.min(this._visibleLineCountBottom.get()+s-o,this.getMaxVisibleLineCountBottom()),i)}collapseAll(e){this._visibleLineCountTop.set(0,e),this._visibleLineCountBottom.set(0,e)}setState(e,t,i){e=Math.max(Math.min(e,this.lineCount),0),t=Math.max(Math.min(t,this.lineCount-e),0),this._visibleLineCountTop.set(e,i),this._visibleLineCountBottom.set(t,i)}}class xje extends ne{get visibility(){return this._visibility}set visibility(e){this._visibility!==e&&(this._visibility=e,this._diffActions.style.visibility=e?\"visible\":\"hidden\")}constructor(e,t,i,s,o,r,a,l,c){super(),this._getViewZoneId=e,this._marginDomNode=t,this._modifiedEditor=i,this._diff=s,this._editor=o,this._viewLineCounts=r,this._originalTextModel=a,this._contextMenuService=l,this._clipboardService=c,this._visibility=!1,this._marginDomNode.style.zIndex=\"10\",this._diffActions=document.createElement(\"div\"),this._diffActions.className=_t.asClassName(Te.lightBulb)+\" lightbulb-glyph\",this._diffActions.style.position=\"absolute\";const d=this._modifiedEditor.getOption(67);this._diffActions.style.right=\"0px\",this._diffActions.style.visibility=\"hidden\",this._diffActions.style.height=`${d}px`,this._diffActions.style.lineHeight=`${d}px`,this._marginDomNode.appendChild(this._diffActions);let u=0;const h=i.getOption(127)&&!iu,f=(g,p)=>{var _;this._contextMenuService.showContextMenu({domForShadowRoot:h&&(_=i.getDomNode())!==null&&_!==void 0?_:void 0,getAnchor:()=>({x:g,y:p}),getActions:()=>{const b=[],w=s.modified.isEmpty;return b.push(new Ta(\"diff.clipboard.copyDeletedContent\",w?s.original.length>1?v(\"diff.clipboard.copyDeletedLinesContent.label\",\"Copy deleted lines\"):v(\"diff.clipboard.copyDeletedLinesContent.single.label\",\"Copy deleted line\"):s.original.length>1?v(\"diff.clipboard.copyChangedLinesContent.label\",\"Copy changed lines\"):v(\"diff.clipboard.copyChangedLinesContent.single.label\",\"Copy changed line\"),void 0,!0,async()=>{const S=this._originalTextModel.getValueInRange(s.original.toExclusiveRange());await this._clipboardService.writeText(S)})),s.original.length>1&&b.push(new Ta(\"diff.clipboard.copyDeletedLineContent\",w?v(\"diff.clipboard.copyDeletedLineContent.label\",\"Copy deleted line ({0})\",s.original.startLineNumber+u):v(\"diff.clipboard.copyChangedLineContent.label\",\"Copy changed line ({0})\",s.original.startLineNumber+u),void 0,!0,async()=>{let S=this._originalTextModel.getLineContent(s.original.startLineNumber+u);S===\"\"&&(S=this._originalTextModel.getEndOfLineSequence()===0?`\n`:`\\r\n`),await this._clipboardService.writeText(S)})),i.getOption(91)||b.push(new Ta(\"diff.inline.revertChange\",v(\"diff.inline.revertChange.label\",\"Revert this change\"),void 0,!0,async()=>{this._editor.revert(this._diff)})),b},autoSelectFirstItem:!0})};this._register(rs(this._diffActions,\"mousedown\",g=>{if(!g.leftButton)return;const{top:p,height:_}=bs(this._diffActions),b=Math.floor(d/3);g.preventDefault(),f(g.posx,p+_+b)})),this._register(i.onMouseMove(g=>{(g.target.type===8||g.target.type===5)&&g.target.detail.viewZoneId===this._getViewZoneId()?(u=this._updateLightBulbPosition(this._marginDomNode,g.event.browserEvent.y,d),this.visibility=!0):this.visibility=!1})),this._register(i.onMouseDown(g=>{g.event.leftButton&&(g.target.type===8||g.target.type===5)&&g.target.detail.viewZoneId===this._getViewZoneId()&&(g.event.preventDefault(),u=this._updateLightBulbPosition(this._marginDomNode,g.event.browserEvent.y,d),f(g.event.posx,g.event.posy+d))}))}_updateLightBulbPosition(e,t,i){const{top:s}=bs(e),o=t-s,r=Math.floor(o/i),a=r*i;if(this._diffActions.style.top=`${a}px`,this._viewLineCounts){let l=0;for(let c=0;c<this._viewLineCounts.length;c++)if(l+=this._viewLineCounts[c],r<l)return c}return r}}const hee=Bg(\"diffEditorWidget\",{createHTML:n=>n});function Lje(n,e,t,i){So(i,e.fontInfo);const s=t.length>0,o=new Ow(1e4);let r=0,a=0;const l=[];for(let h=0;h<n.lineTokens.length;h++){const f=h+1,g=n.lineTokens[h],p=n.lineBreakData[h],_=Rr.filter(t,f,1,Number.MAX_SAFE_INTEGER);if(p){let b=0;for(const w of p.breakOffsets){const y=g.sliceAndInflate(b,w,0);r=Math.max(r,fee(a,y,Rr.extractWrapped(_,b,w),s,n.mightContainNonBasicASCII,n.mightContainRTL,e,o)),a++,b=w}l.push(p.breakOffsets.length)}else l.push(1),r=Math.max(r,fee(a,g,_,s,n.mightContainNonBasicASCII,n.mightContainRTL,e,o)),a++}r+=e.scrollBeyondLastColumn;const c=o.build(),d=hee?hee.createHTML(c):c;i.innerHTML=d;const u=r*e.typicalHalfwidthCharacterWidth;return{heightInLines:a,minWidthInPx:u,viewLineCounts:l}}class kje{constructor(e,t,i,s){this.lineTokens=e,this.lineBreakData=t,this.mightContainNonBasicASCII=i,this.mightContainRTL=s}}class Q${static fromEditor(e){var t;const i=e.getOptions(),s=i.get(50),o=i.get(145);return new Q$(((t=e.getModel())===null||t===void 0?void 0:t.getOptions().tabSize)||0,s,i.get(33),s.typicalHalfwidthCharacterWidth,i.get(104),i.get(67),o.decorationsWidth,i.get(117),i.get(99),i.get(94),i.get(51))}constructor(e,t,i,s,o,r,a,l,c,d,u){this.tabSize=e,this.fontInfo=t,this.disableMonospaceOptimizations=i,this.typicalHalfwidthCharacterWidth=s,this.scrollBeyondLastColumn=o,this.lineHeight=r,this.lineDecorationsWidth=a,this.stopRenderingLineAfter=l,this.renderWhitespace=c,this.renderControlCharacters=d,this.fontLigatures=u}}function fee(n,e,t,i,s,o,r,a){a.appendString('<div class=\"view-line'),i||a.appendString(\" char-delete\"),a.appendString('\" style=\"top:'),a.appendString(String(n*r.lineHeight)),a.appendString('px;width:1000000px;\">');const l=e.getLineContent(),c=xl.isBasicASCII(l,s),d=xl.containsRTL(l,c,o),u=_D(new f_(r.fontInfo.isMonospace&&!r.disableMonospaceOptimizations,r.fontInfo.canUseHalfwidthRightwardsArrow,l,!1,c,d,0,e,t,r.tabSize,0,r.fontInfo.spaceWidth,r.fontInfo.middotWidth,r.fontInfo.wsmiddotWidth,r.stopRenderingLineAfter,r.renderWhitespace,r.renderControlCharacters,r.fontLigatures!==cl.OFF,null),a);return a.appendString(\"</div>\"),u.characterMapping.getHorizontalOffset(u.characterMapping.length)}var Dje=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},gee=function(n,e){return function(t,i){e(t,i,n)}};let S6=class extends ne{constructor(e,t,i,s,o,r,a,l,c,d){super(),this._targetWindow=e,this._editors=t,this._diffModel=i,this._options=s,this._diffEditorWidget=o,this._canIgnoreViewZoneUpdateEvent=r,this._origViewZonesToIgnore=a,this._modViewZonesToIgnore=l,this._clipboardService=c,this._contextMenuService=d,this._originalTopPadding=li(this,0),this._originalScrollOffset=li(this,0),this._originalScrollOffsetAnimated=see(this._targetWindow,this._originalScrollOffset,this._store),this._modifiedTopPadding=li(this,0),this._modifiedScrollOffset=li(this,0),this._modifiedScrollOffsetAnimated=see(this._targetWindow,this._modifiedScrollOffset,this._store);const u=li(\"invalidateAlignmentsState\",0),h=this._register(new Xi(()=>{u.set(u.get()+1,void 0)},0));this._register(this._editors.original.onDidChangeViewZones(y=>{this._canIgnoreViewZoneUpdateEvent()||h.schedule()})),this._register(this._editors.modified.onDidChangeViewZones(y=>{this._canIgnoreViewZoneUpdateEvent()||h.schedule()})),this._register(this._editors.original.onDidChangeConfiguration(y=>{(y.hasChanged(146)||y.hasChanged(67))&&h.schedule()})),this._register(this._editors.modified.onDidChangeConfiguration(y=>{(y.hasChanged(146)||y.hasChanged(67))&&h.schedule()}));const f=this._diffModel.map(y=>y?qi(y.model.original.onDidChangeTokens,()=>y.model.original.tokenization.backgroundTokenizationState===2):void 0).map((y,S)=>y==null?void 0:y.read(S)),g=Rt(y=>{const S=this._diffModel.read(y),x=S==null?void 0:S.diff.read(y);if(!S||!x)return null;u.read(y);const D=this._options.renderSideBySide.read(y);return pee(this._editors.original,this._editors.modified,x.mappings,this._origViewZonesToIgnore,this._modViewZonesToIgnore,D)}),p=Rt(y=>{var S;const x=(S=this._diffModel.read(y))===null||S===void 0?void 0:S.movedTextToCompare.read(y);if(!x)return null;u.read(y);const k=x.changes.map(D=>new Kue(D));return pee(this._editors.original,this._editors.modified,k,this._origViewZonesToIgnore,this._modViewZonesToIgnore,!0)});function _(){const y=document.createElement(\"div\");return y.className=\"diagonal-fill\",y}const b=this._register(new be);this.viewZones=J0(this,(y,S)=>{var x,k,D,I,N,P,O,M;b.clear();const z=g.read(y)||[],K=[],ae=[],se=this._modifiedTopPadding.read(y);se>0&&ae.push({afterLineNumber:0,domNode:document.createElement(\"div\"),heightInPx:se,showInHiddenAreas:!0,suppressMouseDown:!0});const he=this._originalTopPadding.read(y);he>0&&K.push({afterLineNumber:0,domNode:document.createElement(\"div\"),heightInPx:he,showInHiddenAreas:!0,suppressMouseDown:!0});const me=this._options.renderSideBySide.read(y),De=me||(x=this._editors.modified._getViewModel())===null||x===void 0?void 0:x.createLineBreaksComputer();if(De){const Se=this._editors.original.getModel();for(const Qe of z)if(Qe.diff)for(let nt=Qe.originalRange.startLineNumber;nt<Qe.originalRange.endLineNumberExclusive;nt++){if(nt>Se.getLineCount())return{orig:K,mod:ae};De==null||De.addRequest(Se.getLineContent(nt),null,null)}}const lt=(k=De==null?void 0:De.finalize())!==null&&k!==void 0?k:[];let We=0;const Ve=this._editors.modified.getOption(67),Me=(D=this._diffModel.read(y))===null||D===void 0?void 0:D.movedTextToCompare.read(y),Zt=(N=(I=this._editors.original.getModel())===null||I===void 0?void 0:I.mightContainNonBasicASCII())!==null&&N!==void 0?N:!1,Oi=(O=(P=this._editors.original.getModel())===null||P===void 0?void 0:P.mightContainRTL())!==null&&O!==void 0?O:!1,ni=Q$.fromEditor(this._editors.modified);for(const Se of z)if(Se.diff&&!me){if(!Se.originalRange.isEmpty){f.read(y);const nt=document.createElement(\"div\");nt.classList.add(\"view-lines\",\"line-delete\",\"monaco-mouse-cursor-text\");const mt=this._editors.original.getModel();if(Se.originalRange.endLineNumberExclusive-1>mt.getLineCount())return{orig:K,mod:ae};const Je=new kje(Se.originalRange.mapToLineArray(ze=>mt.tokenization.getLineTokens(ze)),Se.originalRange.mapToLineArray(ze=>lt[We++]),Zt,Oi),Ii=[];for(const ze of Se.diff.innerChanges||[])Ii.push(new cx(ze.originalRange.delta(-(Se.diff.original.startLineNumber-1)),b6.className,0));const J=Lje(Je,ni,Ii,nt),ie=document.createElement(\"div\");if(ie.className=\"inline-deleted-margin-view-zone\",So(ie,ni.fontInfo),this._options.renderIndicators.read(y))for(let ze=0;ze<J.heightInLines;ze++){const Oe=document.createElement(\"div\");Oe.className=`delete-sign ${_t.asClassName(zue)}`,Oe.setAttribute(\"style\",`position:absolute;top:${ze*Ve}px;width:${ni.lineDecorationsWidth}px;height:${Ve}px;right:0;`),ie.appendChild(Oe)}let ye;b.add(new xje(()=>Vp(ye),ie,this._editors.modified,Se.diff,this._diffEditorWidget,J.viewLineCounts,this._editors.original.getModel(),this._contextMenuService,this._clipboardService));for(let ze=0;ze<J.viewLineCounts.length;ze++){const Oe=J.viewLineCounts[ze];Oe>1&&K.push({afterLineNumber:Se.originalRange.startLineNumber+ze,domNode:_(),heightInPx:(Oe-1)*Ve,showInHiddenAreas:!0,suppressMouseDown:!0})}ae.push({afterLineNumber:Se.modifiedRange.startLineNumber-1,domNode:nt,heightInPx:J.heightInLines*Ve,minWidthInPx:J.minWidthInPx,marginDomNode:ie,setZoneId(ze){ye=ze},showInHiddenAreas:!0,suppressMouseDown:!0})}const Qe=document.createElement(\"div\");Qe.className=\"gutter-delete\",K.push({afterLineNumber:Se.originalRange.endLineNumberExclusive-1,domNode:_(),heightInPx:Se.modifiedHeightInPx,marginDomNode:Qe,showInHiddenAreas:!0,suppressMouseDown:!0})}else{const Qe=Se.modifiedHeightInPx-Se.originalHeightInPx;if(Qe>0){if(Me!=null&&Me.lineRangeMapping.original.delta(-1).deltaLength(2).contains(Se.originalRange.endLineNumberExclusive-1))continue;K.push({afterLineNumber:Se.originalRange.endLineNumberExclusive-1,domNode:_(),heightInPx:Qe,showInHiddenAreas:!0,suppressMouseDown:!0})}else{let nt=function(){const Je=document.createElement(\"div\");return Je.className=\"arrow-revert-change \"+_t.asClassName(Te.arrowRight),S.add(ce(Je,\"mousedown\",Ii=>Ii.stopPropagation())),S.add(ce(Je,\"click\",Ii=>{Ii.stopPropagation(),o.revert(Se.diff)})),ke(\"div\",{},Je)};if(Me!=null&&Me.lineRangeMapping.modified.delta(-1).deltaLength(2).contains(Se.modifiedRange.endLineNumberExclusive-1))continue;let mt;Se.diff&&Se.diff.modified.isEmpty&&this._options.shouldRenderOldRevertArrows.read(y)&&(mt=nt()),ae.push({afterLineNumber:Se.modifiedRange.endLineNumberExclusive-1,domNode:_(),heightInPx:-Qe,marginDomNode:mt,showInHiddenAreas:!0,suppressMouseDown:!0})}}for(const Se of(M=p.read(y))!==null&&M!==void 0?M:[]){if(!(Me!=null&&Me.lineRangeMapping.original.intersect(Se.originalRange))||!(Me!=null&&Me.lineRangeMapping.modified.intersect(Se.modifiedRange)))continue;const Qe=Se.modifiedHeightInPx-Se.originalHeightInPx;Qe>0?K.push({afterLineNumber:Se.originalRange.endLineNumberExclusive-1,domNode:_(),heightInPx:Qe,showInHiddenAreas:!0,suppressMouseDown:!0}):ae.push({afterLineNumber:Se.modifiedRange.endLineNumberExclusive-1,domNode:_(),heightInPx:-Qe,showInHiddenAreas:!0,suppressMouseDown:!0})}return{orig:K,mod:ae}});let w=!1;this._register(this._editors.original.onDidScrollChange(y=>{y.scrollLeftChanged&&!w&&(w=!0,this._editors.modified.setScrollLeft(y.scrollLeft),w=!1)})),this._register(this._editors.modified.onDidScrollChange(y=>{y.scrollLeftChanged&&!w&&(w=!0,this._editors.original.setScrollLeft(y.scrollLeft),w=!1)})),this._originalScrollTop=qi(this._editors.original.onDidScrollChange,()=>this._editors.original.getScrollTop()),this._modifiedScrollTop=qi(this._editors.modified.onDidScrollChange,()=>this._editors.modified.getScrollTop()),this._register(Ut(y=>{const S=this._originalScrollTop.read(y)-(this._originalScrollOffsetAnimated.get()-this._modifiedScrollOffsetAnimated.read(y))-(this._originalTopPadding.get()-this._modifiedTopPadding.read(y));S!==this._editors.modified.getScrollTop()&&this._editors.modified.setScrollTop(S,1)})),this._register(Ut(y=>{const S=this._modifiedScrollTop.read(y)-(this._modifiedScrollOffsetAnimated.get()-this._originalScrollOffsetAnimated.read(y))-(this._modifiedTopPadding.get()-this._originalTopPadding.read(y));S!==this._editors.original.getScrollTop()&&this._editors.original.setScrollTop(S,1)})),this._register(Ut(y=>{var S;const x=(S=this._diffModel.read(y))===null||S===void 0?void 0:S.movedTextToCompare.read(y);let k=0;if(x){const D=this._editors.original.getTopForLineNumber(x.lineRangeMapping.original.startLineNumber,!0)-this._originalTopPadding.get();k=this._editors.modified.getTopForLineNumber(x.lineRangeMapping.modified.startLineNumber,!0)-this._modifiedTopPadding.get()-D}k>0?(this._modifiedTopPadding.set(0,void 0),this._originalTopPadding.set(k,void 0)):k<0?(this._modifiedTopPadding.set(-k,void 0),this._originalTopPadding.set(0,void 0)):setTimeout(()=>{this._modifiedTopPadding.set(0,void 0),this._originalTopPadding.set(0,void 0)},400),this._editors.modified.hasTextFocus()?this._originalScrollOffset.set(this._modifiedScrollOffset.get()-k,void 0,!0):this._modifiedScrollOffset.set(this._originalScrollOffset.get()+k,void 0,!0)}))}};S6=Dje([gee(8,zg),gee(9,za)],S6);function pee(n,e,t,i,s,o){const r=new Lg(mee(n,i)),a=new Lg(mee(e,s)),l=n.getOption(67),c=e.getOption(67),d=[];let u=0,h=0;function f(g,p){for(;;){let _=r.peek(),b=a.peek();if(_&&_.lineNumber>=g&&(_=void 0),b&&b.lineNumber>=p&&(b=void 0),!_&&!b)break;const w=_?_.lineNumber-u:Number.MAX_VALUE,y=b?b.lineNumber-h:Number.MAX_VALUE;w<y?(r.dequeue(),b={lineNumber:_.lineNumber-u+h,heightInPx:0}):w>y?(a.dequeue(),_={lineNumber:b.lineNumber-h+u,heightInPx:0}):(r.dequeue(),a.dequeue()),d.push({originalRange:Vt.ofLength(_.lineNumber,1),modifiedRange:Vt.ofLength(b.lineNumber,1),originalHeightInPx:l+_.heightInPx,modifiedHeightInPx:c+b.heightInPx,diff:void 0})}}for(const g of t){let y=function(S,x){var k,D,I,N;if(S<w||x<b)return;if(_)_=!1;else if(S===w||x===b)return;const P=new Vt(w,S),O=new Vt(b,x);if(P.isEmpty&&O.isEmpty)return;const M=(D=(k=r.takeWhile(K=>K.lineNumber<S))===null||k===void 0?void 0:k.reduce((K,ae)=>K+ae.heightInPx,0))!==null&&D!==void 0?D:0,z=(N=(I=a.takeWhile(K=>K.lineNumber<x))===null||I===void 0?void 0:I.reduce((K,ae)=>K+ae.heightInPx,0))!==null&&N!==void 0?N:0;d.push({originalRange:P,modifiedRange:O,originalHeightInPx:P.length*l+M,modifiedHeightInPx:O.length*c+z,diff:g.lineRangeMapping}),w=S,b=x};const p=g.lineRangeMapping;f(p.original.startLineNumber,p.modified.startLineNumber);let _=!0,b=p.modified.startLineNumber,w=p.original.startLineNumber;if(o)for(const S of p.innerChanges||[]){S.originalRange.startColumn>1&&S.modifiedRange.startColumn>1&&y(S.originalRange.startLineNumber,S.modifiedRange.startLineNumber);const x=n.getModel(),k=S.originalRange.endLineNumber<=x.getLineCount()?x.getLineMaxColumn(S.originalRange.endLineNumber):Number.MAX_SAFE_INTEGER;S.originalRange.endColumn<k&&y(S.originalRange.endLineNumber,S.modifiedRange.endLineNumber)}y(p.original.endLineNumberExclusive,p.modified.endLineNumberExclusive),u=p.original.endLineNumberExclusive,h=p.modified.endLineNumberExclusive}return f(Number.MAX_VALUE,Number.MAX_VALUE),d}function mee(n,e){const t=[],i=[],s=n.getOption(146).wrappingColumn!==-1,o=n._getViewModel().coordinatesConverter,r=n.getOption(67);if(s)for(let l=1;l<=n.getModel().getLineCount();l++){const c=o.getModelLineViewLineCount(l);c>1&&i.push({lineNumber:l,heightInPx:r*(c-1)})}for(const l of n.getWhitespaces()){if(e.has(l.id))continue;const c=l.afterLineNumber===0?0:o.convertViewPositionToModelPosition(new ee(l.afterLineNumber,1)).lineNumber;t.push({lineNumber:c,heightInPx:l.height})}return YUe(t,i,l=>l.lineNumber,(l,c)=>({lineNumber:l.lineNumber,heightInPx:l.heightInPx+c.heightInPx}))}class Ije extends ne{constructor(e,t,i){super(),this._editor=e,this._domNode=t,this.itemProvider=i,this.scrollTop=qi(this._editor.onDidScrollChange,r=>this._editor.getScrollTop()),this.isScrollTopZero=this.scrollTop.map(r=>r===0),this.modelAttached=qi(this._editor.onDidChangeModel,r=>this._editor.hasModel()),this.editorOnDidChangeViewZones=Ko(\"onDidChangeViewZones\",this._editor.onDidChangeViewZones),this.editorOnDidContentSizeChange=Ko(\"onDidContentSizeChange\",this._editor.onDidContentSizeChange),this.domNodeSizeChanged=nP(\"domNodeSizeChanged\"),this.views=new Map,this._domNode.className=\"gutter monaco-editor\";const s=this._domNode.appendChild(wi(\"div.scroll-decoration\",{role:\"presentation\",ariaHidden:\"true\",style:{width:\"100%\"}}).root),o=new ResizeObserver(()=>{rn(r=>{this.domNodeSizeChanged.trigger(r)})});o.observe(this._domNode),this._register(dt(()=>o.disconnect())),this._register(Ut(r=>{s.className=this.isScrollTopZero.read(r)?\"\":\"scroll-decoration\"})),this._register(Ut(r=>this.render(r)))}dispose(){super.dispose(),yo(this._domNode)}render(e){if(!this.modelAttached.read(e))return;this.domNodeSizeChanged.read(e),this.editorOnDidChangeViewZones.read(e),this.editorOnDidContentSizeChange.read(e);const t=this.scrollTop.read(e),i=this._editor.getVisibleRanges(),s=new Set(this.views.keys()),o=zt.ofStartAndLength(0,this._domNode.clientHeight);if(!o.isEmpty)for(const r of i){const a=new Vt(r.startLineNumber,r.endLineNumber+1),l=this.itemProvider.getIntersectingGutterItems(a,e);rn(c=>{for(const d of l){if(!d.range.intersect(a))continue;s.delete(d.id);let u=this.views.get(d.id);if(u)u.item.set(d,c);else{const p=document.createElement(\"div\");this._domNode.appendChild(p);const _=li(\"item\",d),b=this.itemProvider.createView(_,p);u=new Eje(_,b,p),this.views.set(d.id,u)}const h=d.range.startLineNumber<=this._editor.getModel().getLineCount()?this._editor.getTopForLineNumber(d.range.startLineNumber,!0)-t:this._editor.getBottomForLineNumber(d.range.startLineNumber-1,!1)-t,g=(d.range.isEmpty?h:this._editor.getBottomForLineNumber(d.range.endLineNumberExclusive-1,!0)-t)-h;u.domNode.style.top=`${h}px`,u.domNode.style.height=`${g}px`,u.gutterItemView.layout(zt.ofStartAndLength(h,g),o)}})}for(const r of s){const a=this.views.get(r);a.gutterItemView.dispose(),this._domNode.removeChild(a.domNode),this.views.delete(r)}}}class Eje{constructor(e,t,i){this.item=e,this.gutterItemView=t,this.domNode=i}}class que extends f0{constructor(e){super(),this._getContext=e}runAction(e,t){const i=this._getContext();return super.runAction(e,i)}}class _ee extends xle{constructor(e){super(),this._textModel=e}getValueOfRange(e){return this._textModel.getValueInRange(e)}get length(){const e=this._textModel.getLineCount(),t=this._textModel.getLineLength(e);return new Ar(e-1,t)}}class Tje extends ne{constructor(e,t,i={orientation:0}){var s;super(),this.submenuActionViewItems=[],this.hasSecondaryActions=!1,this._onDidChangeDropdownVisibility=this._register(new AAe),this.onDidChangeDropdownVisibility=this._onDidChangeDropdownVisibility.event,this.disposables=this._register(new be),i.hoverDelegate=(s=i.hoverDelegate)!==null&&s!==void 0?s:this._register(XC()),this.options=i,this.lookupKeybindings=typeof this.options.getKeyBinding==\"function\",this.toggleMenuAction=this._register(new sw(()=>{var o;return(o=this.toggleMenuActionViewItem)===null||o===void 0?void 0:o.show()},i.toggleMenuTitle)),this.element=document.createElement(\"div\"),this.element.className=\"monaco-toolbar\",e.appendChild(this.element),this.actionBar=this._register(new hc(this.element,{orientation:i.orientation,ariaLabel:i.ariaLabel,actionRunner:i.actionRunner,allowContextMenu:i.allowContextMenu,highlightToggledItems:i.highlightToggledItems,hoverDelegate:i.hoverDelegate,actionViewItemProvider:(o,r)=>{var a;if(o.id===sw.ID)return this.toggleMenuActionViewItem=new xA(o,o.menuActions,t,{actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,keybindingProvider:this.options.getKeyBinding,classNames:_t.asClassNameArray((a=i.moreIcon)!==null&&a!==void 0?a:Te.toolBarMore),anchorAlignmentProvider:this.options.anchorAlignmentProvider,menuAsChild:!!this.options.renderDropdownAsChildElement,skipTelemetry:this.options.skipTelemetry,isMenu:!0,hoverDelegate:this.options.hoverDelegate}),this.toggleMenuActionViewItem.setActionContext(this.actionBar.context),this.disposables.add(this._onDidChangeDropdownVisibility.add(this.toggleMenuActionViewItem.onDidChangeVisibility)),this.toggleMenuActionViewItem;if(i.actionViewItemProvider){const l=i.actionViewItemProvider(o,r);if(l)return l}if(o instanceof NC){const l=new xA(o,o.actions,t,{actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,keybindingProvider:this.options.getKeyBinding,classNames:o.class,anchorAlignmentProvider:this.options.anchorAlignmentProvider,menuAsChild:!!this.options.renderDropdownAsChildElement,skipTelemetry:this.options.skipTelemetry,hoverDelegate:this.options.hoverDelegate});return l.setActionContext(this.actionBar.context),this.submenuActionViewItems.push(l),this.disposables.add(this._onDidChangeDropdownVisibility.add(l.onDidChangeVisibility)),l}}}))}set actionRunner(e){this.actionBar.actionRunner=e}get actionRunner(){return this.actionBar.actionRunner}getElement(){return this.element}getItemAction(e){return this.actionBar.getAction(e)}setActions(e,t){this.clear();const i=e?e.slice(0):[];this.hasSecondaryActions=!!(t&&t.length>0),this.hasSecondaryActions&&t&&(this.toggleMenuAction.menuActions=t.slice(0),i.push(this.toggleMenuAction)),i.forEach(s=>{this.actionBar.push(s,{icon:!0,label:!1,keybinding:this.getKeybindingLabel(s)})})}getKeybindingLabel(e){var t,i,s;const o=this.lookupKeybindings?(i=(t=this.options).getKeyBinding)===null||i===void 0?void 0:i.call(t,e):void 0;return(s=o==null?void 0:o.getLabel())!==null&&s!==void 0?s:void 0}clear(){this.submenuActionViewItems=[],this.disposables.clear(),this.actionBar.clear()}dispose(){this.clear(),this.disposables.dispose(),super.dispose()}}class sw extends Ta{constructor(e,t){t=t||v(\"moreActions\",\"More Actions...\"),super(sw.ID,t,void 0,!0),this._menuActions=[],this.toggleDropdownMenu=e}async run(){this.toggleDropdownMenu()}get menuActions(){return this._menuActions}set menuActions(e){this._menuActions=e}}sw.ID=\"toolbar.toggle.more\";var Gue=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},zc=function(n,e){return function(t,i){e(t,i,n)}};let ok=class extends Tje{constructor(e,t,i,s,o,r,a,l){super(e,o,{getKeyBinding:d=>{var u;return(u=r.lookupKeybinding(d.id))!==null&&u!==void 0?u:void 0},...t,allowContextMenu:!0,skipTelemetry:typeof(t==null?void 0:t.telemetrySource)==\"string\"}),this._options=t,this._menuService=i,this._contextKeyService=s,this._contextMenuService=o,this._keybindingService=r,this._commandService=a,this._sessionDisposables=this._store.add(new be);const c=t==null?void 0:t.telemetrySource;c&&this._store.add(this.actionBar.onDidRun(d=>l.publicLog2(\"workbenchActionExecuted\",{id:d.action.id,from:c})))}setActions(e,t=[],i){var s,o,r;this._sessionDisposables.clear();const a=e.slice(),l=t.slice(),c=[];let d=0;const u=[];let h=!1;if(((s=this._options)===null||s===void 0?void 0:s.hiddenItemStrategy)!==-1)for(let f=0;f<a.length;f++){const g=a[f];!(g instanceof Na)&&!(g instanceof q1)||g.hideActions&&(c.push(g.hideActions.toggle),g.hideActions.toggle.checked&&d++,g.hideActions.isHidden&&(h=!0,a[f]=void 0,((o=this._options)===null||o===void 0?void 0:o.hiddenItemStrategy)!==0&&(u[f]=g)))}if(((r=this._options)===null||r===void 0?void 0:r.overflowBehavior)!==void 0){const f=sze(new Set(this._options.overflowBehavior.exempted),oi.map(a,_=>_==null?void 0:_.id)),g=this._options.overflowBehavior.maxItems-f.size;let p=0;for(let _=0;_<a.length;_++){const b=a[_];b&&(p++,!f.has(b.id)&&p>=g&&(a[_]=void 0,u[_]=b))}}ZZ(a),ZZ(u),super.setActions(a,Ms.join(u,l)),(c.length>0||a.length>0)&&this._sessionDisposables.add(ce(this.getElement(),\"contextmenu\",f=>{var g,p,_,b,w;const y=new Kc(gt(this.getElement()),f),S=this.getItemAction(y.target);if(!S)return;y.preventDefault(),y.stopPropagation();const x=[];if(S instanceof Na&&S.menuKeybinding?x.push(S.menuKeybinding):S instanceof q1||S instanceof sw||x.push(Oue(S.id,void 0,this._commandService,this._keybindingService)),c.length>0){let D=!1;if(d===1&&((g=this._options)===null||g===void 0?void 0:g.hiddenItemStrategy)===0){D=!0;for(let I=0;I<c.length;I++)if(c[I].checked){c[I]=$v({id:S.id,label:S.label,checked:!0,enabled:!1,run(){}});break}}if(!D&&(S instanceof Na||S instanceof q1)){if(!S.hideActions)return;x.push(S.hideActions.hide)}else x.push($v({id:\"label\",label:v(\"hide\",\"Hide\"),enabled:!1,run(){}}))}const k=Ms.join(x,c);!((p=this._options)===null||p===void 0)&&p.resetMenu&&!i&&(i=[this._options.resetMenu]),h&&i&&(k.push(new Ms),k.push($v({id:\"resetThisMenu\",label:v(\"resetThisMenu\",\"Reset Menu\"),run:()=>this._menuService.resetHiddenStates(i)}))),k.length!==0&&this._contextMenuService.showContextMenu({getAnchor:()=>y,getActions:()=>k,menuId:(_=this._options)===null||_===void 0?void 0:_.contextMenu,menuActionOptions:{renderShortTitle:!0,...(b=this._options)===null||b===void 0?void 0:b.menuOptions},skipTelemetry:typeof((w=this._options)===null||w===void 0?void 0:w.telemetrySource)==\"string\",contextKeyService:this._contextKeyService})}))}};ok=Gue([zc(2,Dl),zc(3,Ct),zc(4,za),zc(5,Li),zc(6,Sn),zc(7,Po)],ok);let eR=class extends ok{constructor(e,t,i,s,o,r,a,l,c){super(e,{resetMenu:t,...i},s,o,r,a,l,c),this._onDidChangeMenuItems=this._store.add(new X),this.onDidChangeMenuItems=this._onDidChangeMenuItems.event;const d=this._store.add(s.createMenu(t,o,{emitEventsForSubmenuChanges:!0})),u=()=>{var h,f,g;const p=[],_=[];rP(d,i==null?void 0:i.menuOptions,{primary:p,secondary:_},(h=i==null?void 0:i.toolbarOptions)===null||h===void 0?void 0:h.primaryGroup,(f=i==null?void 0:i.toolbarOptions)===null||f===void 0?void 0:f.shouldInlineSubmenu,(g=i==null?void 0:i.toolbarOptions)===null||g===void 0?void 0:g.useSeparatorsInPrimaryActions),e.classList.toggle(\"has-no-actions\",p.length===0&&_.length===0),super.setActions(p,_)};this._store.add(d.onDidChange(()=>{u(),this._onDidChangeMenuItems.fire(this)})),u()}setActions(){throw new Gi(\"This toolbar is populated from a menu.\")}};eR=Gue([zc(3,Dl),zc(4,Ct),zc(5,za),zc(6,Li),zc(7,Sn),zc(8,Po)],eR);var Zue=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},MN=function(n,e){return function(t,i){e(t,i,n)}};const q5=[],gT=35;let x6=class extends ne{constructor(e,t,i,s,o,r,a,l,c){super(),this._diffModel=t,this._editors=i,this._options=s,this._sashLayout=o,this._boundarySashes=r,this._instantiationService=a,this._contextKeyService=l,this._menuService=c,this._menu=this._register(this._menuService.createMenu(R.DiffEditorHunkToolbar,this._contextKeyService)),this._actions=qi(this._menu.onDidChange,()=>this._menu.getActions()),this._hasActions=this._actions.map(d=>d.length>0),this._showSash=Rt(this,d=>this._options.renderSideBySide.read(d)&&this._hasActions.read(d)),this.width=Rt(this,d=>this._hasActions.read(d)?gT:0),this.elements=wi(\"div.gutter@gutter\",{style:{position:\"absolute\",height:\"100%\",width:gT+\"px\"}},[]),this._currentDiff=Rt(this,d=>{var u;const h=this._diffModel.read(d);if(!h)return;const f=(u=h.diff.read(d))===null||u===void 0?void 0:u.mappings,g=this._editors.modifiedCursor.read(d);if(g)return f==null?void 0:f.find(p=>p.lineRangeMapping.modified.contains(g.lineNumber))}),this._selectedDiffs=Rt(this,d=>{const u=this._diffModel.read(d),h=u==null?void 0:u.diff.read(d);if(!h)return q5;const f=this._editors.modifiedSelections.read(d);if(f.every(b=>b.isEmpty()))return q5;const g=new Gl(f.map(b=>Vt.fromRangeInclusive(b))),_=h.mappings.filter(b=>b.lineRangeMapping.innerChanges&&g.intersects(b.lineRangeMapping.modified)).map(b=>({mapping:b,rangeMappings:b.lineRangeMapping.innerChanges.filter(w=>f.some(y=>A.areIntersecting(w.modifiedRange,y)))}));return _.length===0||_.every(b=>b.rangeMappings.length===0)?q5:_}),this._register(XUe(e,this.elements.root)),this._register(ce(this.elements.root,\"click\",()=>{this._editors.modified.focus()})),this._register(jm(this.elements.root,{display:this._hasActions.map(d=>d?\"block\":\"none\")})),zu(this,d=>this._showSash.read(d)?new $ue(e,this._sashLayout.dimensions,this._options.enableSplitViewResizing,this._boundarySashes,Pde(this,h=>this._sashLayout.sashLeft.read(h)-gT,(h,f)=>this._sashLayout.sashLeft.set(h+gT,f)),()=>this._sashLayout.resetSash()):void 0).recomputeInitiallyAndOnChange(this._store),this._register(new Ije(this._editors.modified,this.elements.root,{getIntersectingGutterItems:(d,u)=>{const h=this._diffModel.read(u);if(!h)return[];const f=h.diff.read(u);if(!f)return[];const g=this._selectedDiffs.read(u);if(g.length>0){const _=Cl.fromRangeMappings(g.flatMap(b=>b.rangeMappings));return[new vee(_,!0,R.DiffEditorSelectionToolbar,void 0,h.model.original.uri,h.model.modified.uri)]}const p=this._currentDiff.read(u);return f.mappings.map(_=>new vee(_.lineRangeMapping.withInnerChangesFromLineRanges(),_.lineRangeMapping===(p==null?void 0:p.lineRangeMapping),R.DiffEditorHunkToolbar,void 0,h.model.original.uri,h.model.modified.uri))},createView:(d,u)=>this._instantiationService.createInstance(L6,d,u,this)})),this._register(ce(this.elements.gutter,Le.MOUSE_WHEEL,d=>{this._editors.modified.getOption(103).handleMouseWheel&&this._editors.modified.delegateScrollFromMouseWheelEvent(d)},{passive:!1}))}computeStagedValue(e){var t;const i=(t=e.innerChanges)!==null&&t!==void 0?t:[],s=new _ee(this._editors.modifiedModel.get()),o=new _ee(this._editors.original.getModel());return new mz(i.map(l=>l.toTextEdit(s))).apply(o)}layout(e){this.elements.gutter.style.left=e+\"px\"}};x6=Zue([MN(6,ht),MN(7,Ct),MN(8,Dl)],x6);class vee{constructor(e,t,i,s,o,r){this.mapping=e,this.showAlways=t,this.menuId=i,this.rangeOverride=s,this.originalUri=o,this.modifiedUri=r}get id(){return this.mapping.modified.toString()}get range(){var e;return(e=this.rangeOverride)!==null&&e!==void 0?e:this.mapping.modified}}let L6=class extends ne{constructor(e,t,i,s){super(),this._item=e,this._elements=wi(\"div.gutterItem\",{style:{height:\"20px\",width:\"34px\"}},[wi(\"div.background@background\",{},[]),wi(\"div.buttons@buttons\",{},[])]),this._showAlways=this._item.map(this,r=>r.showAlways),this._menuId=this._item.map(this,r=>r.menuId),this._isSmall=li(this,!1),this._lastItemRange=void 0,this._lastViewRange=void 0;const o=this._register(s.createInstance(KC,\"element\",!0,{position:{hoverPosition:1}}));this._register(MS(t,this._elements.root)),this._register(Ut(r=>{const a=this._showAlways.read(r);this._elements.root.classList.toggle(\"noTransition\",!0),this._elements.root.classList.toggle(\"showAlways\",a),setTimeout(()=>{this._elements.root.classList.toggle(\"noTransition\",!1)},0)})),this._register(uc((r,a)=>{this._elements.buttons.replaceChildren();const l=a.add(s.createInstance(eR,this._elements.buttons,this._menuId.read(r),{orientation:1,hoverDelegate:o,toolbarOptions:{primaryGroup:c=>c.startsWith(\"primary\")},overflowBehavior:{maxItems:this._isSmall.read(r)?1:3},hiddenItemStrategy:0,actionRunner:new que(()=>{const c=this._item.get(),d=c.mapping;return{mapping:d,originalWithModifiedChanges:i.computeStagedValue(d),originalUri:c.originalUri,modifiedUri:c.modifiedUri}}),menuOptions:{shouldForwardArgs:!0}}));a.add(l.onDidChangeMenuItems(()=>{this._lastItemRange&&this.layout(this._lastItemRange,this._lastViewRange)}))}))}layout(e,t){this._lastItemRange=e,this._lastViewRange=t;let i=this._elements.buttons.clientHeight;this._isSmall.set(this._item.get().mapping.original.startLineNumber===1&&e.length<30,void 0),i=this._elements.buttons.clientHeight;const s=e.length/2-i/2,o=i;let r=e.start+s;const a=zt.tryCreate(o,t.endExclusive-o-i),l=zt.tryCreate(e.start+o,e.endExclusive-i-o);l&&a&&l.start<l.endExclusive&&(r=a.clip(r),r=l.clip(r)),this._elements.buttons.style.top=`${r-e.start}px`}};L6=Zue([MN(3,ht)],L6);var Nje=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Aje=function(n,e){return function(t,i){e(t,i,n)}},k6;let rk=k6=class extends ne{static setBreadcrumbsSourceFactory(e){this._breadcrumbsSourceFactory.set(e,void 0)}get isUpdatingHiddenAreas(){return this._isUpdatingHiddenAreas}constructor(e,t,i,s){super(),this._editors=e,this._diffModel=t,this._options=i,this._instantiationService=s,this._modifiedOutlineSource=zu(this,l=>{const c=this._editors.modifiedModel.read(l),d=k6._breadcrumbsSourceFactory.read(l);return!c||!d?void 0:d(c,this._instantiationService)}),this._isUpdatingHiddenAreas=!1,this._register(this._editors.original.onDidChangeCursorPosition(l=>{if(l.reason===1)return;const c=this._diffModel.get();rn(d=>{for(const u of this._editors.original.getSelections()||[])c==null||c.ensureOriginalLineIsVisible(u.getStartPosition().lineNumber,0,d),c==null||c.ensureOriginalLineIsVisible(u.getEndPosition().lineNumber,0,d)})})),this._register(this._editors.modified.onDidChangeCursorPosition(l=>{if(l.reason===1)return;const c=this._diffModel.get();rn(d=>{for(const u of this._editors.modified.getSelections()||[])c==null||c.ensureModifiedLineIsVisible(u.getStartPosition().lineNumber,0,d),c==null||c.ensureModifiedLineIsVisible(u.getEndPosition().lineNumber,0,d)})}));const o=this._diffModel.map((l,c)=>{var d,u;const h=(d=l==null?void 0:l.unchangedRegions.read(c))!==null&&d!==void 0?d:[];return h.length===1&&h[0].modifiedLineNumber===1&&h[0].lineCount===((u=this._editors.modifiedModel.read(c))===null||u===void 0?void 0:u.getLineCount())?[]:h});this.viewZones=J0(this,(l,c)=>{const d=this._modifiedOutlineSource.read(l);if(!d)return{origViewZones:[],modViewZones:[]};const u=[],h=[],f=this._options.renderSideBySide.read(l),g=o.read(l);for(const p of g)if(!p.shouldHideControls(l)){{const _=Rt(this,w=>p.getHiddenOriginalRange(w).startLineNumber-1),b=new XA(_,24);u.push(b),c.add(new bee(this._editors.original,b,p,p.originalUnchangedRange,!f,d,w=>this._diffModel.get().ensureModifiedLineIsVisible(w,2,void 0),this._options))}{const _=Rt(this,w=>p.getHiddenModifiedRange(w).startLineNumber-1),b=new XA(_,24);h.push(b),c.add(new bee(this._editors.modified,b,p,p.modifiedUnchangedRange,!1,d,w=>this._diffModel.get().ensureModifiedLineIsVisible(w,2,void 0),this._options))}}return{origViewZones:u,modViewZones:h}});const r={description:\"unchanged lines\",className:\"diff-unchanged-lines\",isWholeLine:!0},a={description:\"Fold Unchanged\",glyphMarginHoverMessage:new $o(void 0,{isTrusted:!0,supportThemeIcons:!0}).appendMarkdown(v(\"foldUnchanged\",\"Fold Unchanged Region\")),glyphMarginClassName:\"fold-unchanged \"+_t.asClassName(Te.fold),zIndex:10001};this._register(YA(this._editors.original,Rt(this,l=>{const c=o.read(l),d=c.map(u=>({range:u.originalUnchangedRange.toInclusiveRange(),options:r}));for(const u of c)u.shouldHideControls(l)&&d.push({range:A.fromPositions(new ee(u.originalLineNumber,1)),options:a});return d}))),this._register(YA(this._editors.modified,Rt(this,l=>{const c=o.read(l),d=c.map(u=>({range:u.modifiedUnchangedRange.toInclusiveRange(),options:r}));for(const u of c)u.shouldHideControls(l)&&d.push({range:Vt.ofLength(u.modifiedLineNumber,1).toInclusiveRange(),options:a});return d}))),this._register(Ut(l=>{const c=o.read(l);this._isUpdatingHiddenAreas=!0;try{this._editors.original.setHiddenAreas(c.map(d=>d.getHiddenOriginalRange(l).toInclusiveRange()).filter(gh)),this._editors.modified.setHiddenAreas(c.map(d=>d.getHiddenModifiedRange(l).toInclusiveRange()).filter(gh))}finally{this._isUpdatingHiddenAreas=!1}})),this._register(this._editors.modified.onMouseUp(l=>{var c;if(!l.event.rightButton&&l.target.position&&(!((c=l.target.element)===null||c===void 0)&&c.className.includes(\"fold-unchanged\"))){const d=l.target.position.lineNumber,u=this._diffModel.get();if(!u)return;const h=u.unchangedRegions.get().find(f=>f.modifiedUnchangedRange.includes(d));if(!h)return;h.collapseAll(void 0),l.event.stopPropagation(),l.event.preventDefault()}})),this._register(this._editors.original.onMouseUp(l=>{var c;if(!l.event.rightButton&&l.target.position&&(!((c=l.target.element)===null||c===void 0)&&c.className.includes(\"fold-unchanged\"))){const d=l.target.position.lineNumber,u=this._diffModel.get();if(!u)return;const h=u.unchangedRegions.get().find(f=>f.originalUnchangedRange.includes(d));if(!h)return;h.collapseAll(void 0),l.event.stopPropagation(),l.event.preventDefault()}}))}};rk._breadcrumbsSourceFactory=li(\"breadcrumbsSourceFactory\",void 0);rk=k6=Nje([Aje(3,ht)],rk);class bee extends Vue{constructor(e,t,i,s,o,r,a,l){const c=wi(\"div.diff-hidden-lines-widget\");super(e,t,c.root),this._editor=e,this._unchangedRegion=i,this._unchangedRegionRange=s,this._hide=o,this._modifiedOutlineSource=r,this._revealModifiedHiddenLine=a,this._options=l,this._nodes=wi(\"div.diff-hidden-lines\",[wi(\"div.top@top\",{title:v(\"diff.hiddenLines.top\",\"Click or drag to show more above\")}),wi(\"div.center@content\",{style:{display:\"flex\"}},[wi(\"div@first\",{style:{display:\"flex\",justifyContent:\"center\",alignItems:\"center\",flexShrink:\"0\"}},[ke(\"a\",{title:v(\"showUnchangedRegion\",\"Show Unchanged Region\"),role:\"button\",onclick:()=>{this._unchangedRegion.showAll(void 0)}},...gm(\"$(unfold)\"))]),wi(\"div@others\",{style:{display:\"flex\",justifyContent:\"center\",alignItems:\"center\"}})]),wi(\"div.bottom@bottom\",{title:v(\"diff.bottom\",\"Click or drag to show more below\"),role:\"button\"})]),c.root.appendChild(this._nodes.root);const d=qi(this._editor.onDidLayoutChange,()=>this._editor.getLayoutInfo());this._hide?yo(this._nodes.first):this._register(jm(this._nodes.first,{width:d.map(h=>h.contentLeft)})),this._register(Ut(h=>{const f=this._unchangedRegion.visibleLineCountTop.read(h)+this._unchangedRegion.visibleLineCountBottom.read(h)===this._unchangedRegion.lineCount;this._nodes.bottom.classList.toggle(\"canMoveTop\",!f),this._nodes.bottom.classList.toggle(\"canMoveBottom\",this._unchangedRegion.visibleLineCountBottom.read(h)>0),this._nodes.top.classList.toggle(\"canMoveTop\",this._unchangedRegion.visibleLineCountTop.read(h)>0),this._nodes.top.classList.toggle(\"canMoveBottom\",!f);const g=this._unchangedRegion.isDragged.read(h),p=this._editor.getDomNode();p&&(p.classList.toggle(\"draggingUnchangedRegion\",!!g),g===\"top\"?(p.classList.toggle(\"canMoveTop\",this._unchangedRegion.visibleLineCountTop.read(h)>0),p.classList.toggle(\"canMoveBottom\",!f)):g===\"bottom\"?(p.classList.toggle(\"canMoveTop\",!f),p.classList.toggle(\"canMoveBottom\",this._unchangedRegion.visibleLineCountBottom.read(h)>0)):(p.classList.toggle(\"canMoveTop\",!1),p.classList.toggle(\"canMoveBottom\",!1)))}));const u=this._editor;this._register(ce(this._nodes.top,\"mousedown\",h=>{if(h.button!==0)return;this._nodes.top.classList.toggle(\"dragging\",!0),this._nodes.root.classList.toggle(\"dragging\",!0),h.preventDefault();const f=h.clientY;let g=!1;const p=this._unchangedRegion.visibleLineCountTop.get();this._unchangedRegion.isDragged.set(\"top\",void 0);const _=gt(this._nodes.top),b=ce(_,\"mousemove\",y=>{const x=y.clientY-f;g=g||Math.abs(x)>2;const k=Math.round(x/u.getOption(67)),D=Math.max(0,Math.min(p+k,this._unchangedRegion.getMaxVisibleLineCountTop()));this._unchangedRegion.visibleLineCountTop.set(D,void 0)}),w=ce(_,\"mouseup\",y=>{g||this._unchangedRegion.showMoreAbove(this._options.hideUnchangedRegionsRevealLineCount.get(),void 0),this._nodes.top.classList.toggle(\"dragging\",!1),this._nodes.root.classList.toggle(\"dragging\",!1),this._unchangedRegion.isDragged.set(void 0,void 0),b.dispose(),w.dispose()})})),this._register(ce(this._nodes.bottom,\"mousedown\",h=>{if(h.button!==0)return;this._nodes.bottom.classList.toggle(\"dragging\",!0),this._nodes.root.classList.toggle(\"dragging\",!0),h.preventDefault();const f=h.clientY;let g=!1;const p=this._unchangedRegion.visibleLineCountBottom.get();this._unchangedRegion.isDragged.set(\"bottom\",void 0);const _=gt(this._nodes.bottom),b=ce(_,\"mousemove\",y=>{const x=y.clientY-f;g=g||Math.abs(x)>2;const k=Math.round(x/u.getOption(67)),D=Math.max(0,Math.min(p-k,this._unchangedRegion.getMaxVisibleLineCountBottom())),I=this._unchangedRegionRange.endLineNumberExclusive>u.getModel().getLineCount()?u.getContentHeight():u.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.visibleLineCountBottom.set(D,void 0);const N=this._unchangedRegionRange.endLineNumberExclusive>u.getModel().getLineCount()?u.getContentHeight():u.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);u.setScrollTop(u.getScrollTop()+(N-I))}),w=ce(_,\"mouseup\",y=>{if(this._unchangedRegion.isDragged.set(void 0,void 0),!g){const S=u.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.showMoreBelow(this._options.hideUnchangedRegionsRevealLineCount.get(),void 0);const x=u.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);u.setScrollTop(u.getScrollTop()+(x-S))}this._nodes.bottom.classList.toggle(\"dragging\",!1),this._nodes.root.classList.toggle(\"dragging\",!1),b.dispose(),w.dispose()})})),this._register(Ut(h=>{const f=[];if(!this._hide){const g=i.getHiddenModifiedRange(h).length,p=v(\"hiddenLines\",\"{0} hidden lines\",g),_=ke(\"span\",{title:v(\"diff.hiddenLines.expandAll\",\"Double click to unfold\")},p);_.addEventListener(\"dblclick\",y=>{y.button===0&&(y.preventDefault(),this._unchangedRegion.showAll(void 0))}),f.push(_);const b=this._unchangedRegion.getHiddenModifiedRange(h),w=this._modifiedOutlineSource.getBreadcrumbItems(b,h);if(w.length>0){f.push(ke(\"span\",void 0,\"  |  \"));for(let y=0;y<w.length;y++){const S=w[y],x=N2.toIcon(S.kind),k=wi(\"div.breadcrumb-item\",{style:{display:\"flex\",alignItems:\"center\"}},[_0(x),\" \",S.name,...y===w.length-1?[]:[_0(Te.chevronRight)]]).root;f.push(k),k.onclick=()=>{this._revealModifiedHiddenLine(S.startLineNumber)}}}}yo(this._nodes.others,...f)}))}}var Rje=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Mje=function(n,e){return function(t,i){e(t,i,n)}},Fc;let S0=Fc=class extends ne{constructor(e,t,i,s,o,r,a){super(),this._editors=e,this._rootElement=t,this._diffModel=i,this._rootWidth=s,this._rootHeight=o,this._modifiedEditorLayoutInfo=r,this._themeService=a,this.width=Fc.ENTIRE_DIFF_OVERVIEW_WIDTH;const l=qi(this._themeService.onDidColorThemeChange,()=>this._themeService.getColorTheme()),c=Rt(h=>{const f=l.read(h),g=f.getColor(AFe)||(f.getColor(TFe)||DB).transparent(2),p=f.getColor(RFe)||(f.getColor(NFe)||IB).transparent(2);return{insertColor:g,removeColor:p}}),d=Di(document.createElement(\"div\"));d.setClassName(\"diffViewport\"),d.setPosition(\"absolute\");const u=wi(\"div.diffOverview\",{style:{position:\"absolute\",top:\"0px\",width:Fc.ENTIRE_DIFF_OVERVIEW_WIDTH+\"px\"}}).root;this._register(MS(u,d.domNode)),this._register(rs(u,Le.POINTER_DOWN,h=>{this._editors.modified.delegateVerticalScrollbarPointerDown(h)})),this._register(ce(u,Le.MOUSE_WHEEL,h=>{this._editors.modified.delegateScrollFromMouseWheelEvent(h)},{passive:!1})),this._register(MS(this._rootElement,u)),this._register(uc((h,f)=>{const g=this._diffModel.read(h),p=this._editors.original.createOverviewRuler(\"original diffOverviewRuler\");p&&(f.add(p),f.add(MS(u,p.getDomNode())));const _=this._editors.modified.createOverviewRuler(\"modified diffOverviewRuler\");if(_&&(f.add(_),f.add(MS(u,_.getDomNode()))),!p||!_)return;const b=Ko(\"viewZoneChanged\",this._editors.original.onDidChangeViewZones),w=Ko(\"viewZoneChanged\",this._editors.modified.onDidChangeViewZones),y=Ko(\"hiddenRangesChanged\",this._editors.original.onDidChangeHiddenAreas),S=Ko(\"hiddenRangesChanged\",this._editors.modified.onDidChangeHiddenAreas);f.add(Ut(x=>{var k;b.read(x),w.read(x),y.read(x),S.read(x);const D=c.read(x),I=(k=g==null?void 0:g.diff.read(x))===null||k===void 0?void 0:k.mappings;function N(M,z,K){const ae=K._getViewModel();return ae?M.filter(se=>se.length>0).map(se=>{const he=ae.coordinatesConverter.convertModelPositionToViewPosition(new ee(se.startLineNumber,1)),me=ae.coordinatesConverter.convertModelPositionToViewPosition(new ee(se.endLineNumberExclusive,1)),De=me.lineNumber-he.lineNumber;return new Lce(he.lineNumber,me.lineNumber,De,z.toString())}):[]}const P=N((I||[]).map(M=>M.lineRangeMapping.original),D.removeColor,this._editors.original),O=N((I||[]).map(M=>M.lineRangeMapping.modified),D.insertColor,this._editors.modified);p==null||p.setZones(P),_==null||_.setZones(O)})),f.add(Ut(x=>{const k=this._rootHeight.read(x),D=this._rootWidth.read(x),I=this._modifiedEditorLayoutInfo.read(x);if(I){const N=Fc.ENTIRE_DIFF_OVERVIEW_WIDTH-2*Fc.ONE_OVERVIEW_WIDTH;p.setLayout({top:0,height:k,right:N+Fc.ONE_OVERVIEW_WIDTH,width:Fc.ONE_OVERVIEW_WIDTH}),_.setLayout({top:0,height:k,right:0,width:Fc.ONE_OVERVIEW_WIDTH});const P=this._editors.modifiedScrollTop.read(x),O=this._editors.modifiedScrollHeight.read(x),M=this._editors.modified.getOption(103),z=new $C(M.verticalHasArrows?M.arrowSize:0,M.verticalScrollbarSize,0,I.height,O,P);d.setTop(z.getSliderPosition()),d.setHeight(z.getSliderSize())}else d.setTop(0),d.setHeight(0);u.style.height=k+\"px\",u.style.left=D-Fc.ENTIRE_DIFF_OVERVIEW_WIDTH+\"px\",d.setWidth(Fc.ENTIRE_DIFF_OVERVIEW_WIDTH)}))}))}};S0.ONE_OVERVIEW_WIDTH=15;S0.ENTIRE_DIFF_OVERVIEW_WIDTH=Fc.ONE_OVERVIEW_WIDTH*2;S0=Fc=Rje([Mje(6,js)],S0);const G5=[];class Pje extends ne{constructor(e,t,i,s){super(),this._editors=e,this._diffModel=t,this._options=i,this._widget=s,this._selectedDiffs=Rt(this,o=>{const r=this._diffModel.read(o),a=r==null?void 0:r.diff.read(o);if(!a)return G5;const l=this._editors.modifiedSelections.read(o);if(l.every(h=>h.isEmpty()))return G5;const c=new Gl(l.map(h=>Vt.fromRangeInclusive(h))),u=a.mappings.filter(h=>h.lineRangeMapping.innerChanges&&c.intersects(h.lineRangeMapping.modified)).map(h=>({mapping:h,rangeMappings:h.lineRangeMapping.innerChanges.filter(f=>l.some(g=>A.areIntersecting(f.modifiedRange,g)))}));return u.length===0||u.every(h=>h.rangeMappings.length===0)?G5:u}),this._register(uc((o,r)=>{if(!this._options.shouldRenderOldRevertArrows.read(o))return;const a=this._diffModel.read(o),l=a==null?void 0:a.diff.read(o);if(!a||!l||a.movedTextToCompare.read(o))return;const c=[],d=this._selectedDiffs.read(o),u=new Set(d.map(h=>h.mapping));if(d.length>0){const h=this._editors.modifiedSelections.read(o),f=r.add(new ak(h[h.length-1].positionLineNumber,this._widget,d.flatMap(g=>g.rangeMappings),!0));this._editors.modified.addGlyphMarginWidget(f),c.push(f)}for(const h of l.mappings)if(!u.has(h)&&!h.lineRangeMapping.modified.isEmpty&&h.lineRangeMapping.innerChanges){const f=r.add(new ak(h.lineRangeMapping.modified.startLineNumber,this._widget,h.lineRangeMapping,!1));this._editors.modified.addGlyphMarginWidget(f),c.push(f)}r.add(dt(()=>{for(const h of c)this._editors.modified.removeGlyphMarginWidget(h)}))}))}}class ak extends ne{getId(){return this._id}constructor(e,t,i,s){super(),this._lineNumber=e,this._widget=t,this._diffs=i,this._revertSelection=s,this._id=`revertButton${ak.counter++}`,this._domNode=wi(\"div.revertButton\",{title:this._revertSelection?v(\"revertSelectedChanges\",\"Revert Selected Changes\"):v(\"revertChange\",\"Revert Change\")},[_0(Te.arrowRight)]).root,this._register(ce(this._domNode,Le.MOUSE_DOWN,o=>{o.button!==2&&(o.stopPropagation(),o.preventDefault())})),this._register(ce(this._domNode,Le.MOUSE_UP,o=>{o.stopPropagation(),o.preventDefault()})),this._register(ce(this._domNode,Le.CLICK,o=>{this._diffs instanceof Ir?this._widget.revert(this._diffs):this._widget.revertRangeMappings(this._diffs),o.stopPropagation(),o.preventDefault()}))}getDomNode(){return this._domNode}getPosition(){return{lane:Dh.Right,range:{startColumn:1,startLineNumber:this._lineNumber,endColumn:1,endLineNumber:this._lineNumber},zIndex:10001}}}ak.counter=0;function gf(n,e,t){const i=n.bindTo(e);return tP({debugName:()=>`Set Context Key \"${n.key}\"`},s=>{i.set(t(s))})}function Oje(n){return Nv.get(n)}class Nv{static get(e){let t=Nv._map.get(e);if(!t){t=new Nv(e),Nv._map.set(e,t);const i=e.onDidDispose(()=>{Nv._map.delete(e),i.dispose()})}return t}constructor(e){this.editor=e,this.model=qi(this.editor.onDidChangeModel,()=>this.editor.getModel())}}Nv._map=new Map;var Fje=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Cee=function(n,e){return function(t,i){e(t,i,n)}};let D6=class extends ne{get onDidContentSizeChange(){return this._onDidContentSizeChange.event}constructor(e,t,i,s,o,r,a){super(),this.originalEditorElement=e,this.modifiedEditorElement=t,this._options=i,this._argCodeEditorWidgetOptions=s,this._createInnerEditor=o,this._instantiationService=r,this._keybindingService=a,this.original=this._register(this._createLeftHandSideEditor(this._options.editorOptions.get(),this._argCodeEditorWidgetOptions.originalEditor||{})),this.modified=this._register(this._createRightHandSideEditor(this._options.editorOptions.get(),this._argCodeEditorWidgetOptions.modifiedEditor||{})),this._onDidContentSizeChange=this._register(new X),this.modifiedScrollTop=qi(this.modified.onDidScrollChange,()=>this.modified.getScrollTop()),this.modifiedScrollHeight=qi(this.modified.onDidScrollChange,()=>this.modified.getScrollHeight()),this.modifiedModel=Oje(this.modified).model,this.modifiedSelections=qi(this.modified.onDidChangeCursorSelection,()=>{var l;return(l=this.modified.getSelections())!==null&&l!==void 0?l:[]}),this.modifiedCursor=Uf({owner:this,equalsFn:ee.equals},l=>{var c,d;return(d=(c=this.modifiedSelections.read(l)[0])===null||c===void 0?void 0:c.getPosition())!==null&&d!==void 0?d:new ee(1,1)}),this.originalCursor=qi(this.original.onDidChangeCursorPosition,()=>{var l;return(l=this.original.getPosition())!==null&&l!==void 0?l:new ee(1,1)}),this._argCodeEditorWidgetOptions=null,this._register(AD({createEmptyChangeSummary:()=>({}),handleChange:(l,c)=>(l.didChange(i.editorOptions)&&Object.assign(c,l.change.changedOptions),!0)},(l,c)=>{i.editorOptions.read(l),this._options.renderSideBySide.read(l),this.modified.updateOptions(this._adjustOptionsForRightHandSide(l,c)),this.original.updateOptions(this._adjustOptionsForLeftHandSide(l,c))}))}_createLeftHandSideEditor(e,t){const i=this._adjustOptionsForLeftHandSide(void 0,e),s=this._constructInnerEditor(this._instantiationService,this.originalEditorElement,i,t);return s.setContextValue(\"isInDiffLeftEditor\",!0),s}_createRightHandSideEditor(e,t){const i=this._adjustOptionsForRightHandSide(void 0,e),s=this._constructInnerEditor(this._instantiationService,this.modifiedEditorElement,i,t);return s.setContextValue(\"isInDiffRightEditor\",!0),s}_constructInnerEditor(e,t,i,s){const o=this._createInnerEditor(e,t,i,s);return this._register(o.onDidContentSizeChange(r=>{const a=this.original.getContentWidth()+this.modified.getContentWidth()+S0.ENTIRE_DIFF_OVERVIEW_WIDTH,l=Math.max(this.modified.getContentHeight(),this.original.getContentHeight());this._onDidContentSizeChange.fire({contentHeight:l,contentWidth:a,contentHeightChanged:r.contentHeightChanged,contentWidthChanged:r.contentWidthChanged})})),o}_adjustOptionsForLeftHandSide(e,t){const i=this._adjustOptionsForSubEditor(t);return this._options.renderSideBySide.get()?(i.unicodeHighlight=this._options.editorOptions.get().unicodeHighlight||{},i.wordWrapOverride1=this._options.diffWordWrap.get()):(i.wordWrapOverride1=\"off\",i.wordWrapOverride2=\"off\",i.stickyScroll={enabled:!1},i.unicodeHighlight={nonBasicASCII:!1,ambiguousCharacters:!1,invisibleCharacters:!1}),i.glyphMargin=this._options.renderSideBySide.get(),t.originalAriaLabel&&(i.ariaLabel=t.originalAriaLabel),i.ariaLabel=this._updateAriaLabel(i.ariaLabel),i.readOnly=!this._options.originalEditable.get(),i.dropIntoEditor={enabled:!i.readOnly},i.extraEditorClassName=\"original-in-monaco-diff-editor\",i}_adjustOptionsForRightHandSide(e,t){const i=this._adjustOptionsForSubEditor(t);return t.modifiedAriaLabel&&(i.ariaLabel=t.modifiedAriaLabel),i.ariaLabel=this._updateAriaLabel(i.ariaLabel),i.wordWrapOverride1=this._options.diffWordWrap.get(),i.revealHorizontalRightPadding=gu.revealHorizontalRightPadding.defaultValue+S0.ENTIRE_DIFF_OVERVIEW_WIDTH,i.scrollbar.verticalHasArrows=!1,i.extraEditorClassName=\"modified-in-monaco-diff-editor\",i}_adjustOptionsForSubEditor(e){const t={...e,dimension:{height:0,width:0}};return t.inDiffEditor=!0,t.automaticLayout=!1,t.scrollbar={...t.scrollbar||{}},t.folding=!1,t.codeLens=this._options.diffCodeLens.get(),t.fixedOverflowWidgets=!0,t.minimap={...t.minimap||{}},t.minimap.enabled=!1,this._options.hideUnchangedRegions.get()?t.stickyScroll={enabled:!1}:t.stickyScroll=this._options.editorOptions.get().stickyScroll,t}_updateAriaLabel(e){var t;e||(e=\"\");const i=v(\"diff-aria-navigation-tip\",\" use {0} to open the accessibility help.\",(t=this._keybindingService.lookupKeybinding(\"editor.action.accessibilityHelp\"))===null||t===void 0?void 0:t.getAriaLabel());return this._options.accessibilityVerbose.get()?e+i:e?e.replaceAll(i,\"\"):\"\"}};D6=Fje([Cee(5,ht),Cee(6,Li)],D6);class wP extends ne{constructor(){super(...arguments),this._id=++wP.idCounter,this._onDidDispose=this._register(new X),this.onDidDispose=this._onDidDispose.event}getId(){return this.getEditorType()+\":v2:\"+this._id}getVisibleColumnFromPosition(e){return this._targetEditor.getVisibleColumnFromPosition(e)}getPosition(){return this._targetEditor.getPosition()}setPosition(e,t=\"api\"){this._targetEditor.setPosition(e,t)}revealLine(e,t=0){this._targetEditor.revealLine(e,t)}revealLineInCenter(e,t=0){this._targetEditor.revealLineInCenter(e,t)}revealLineInCenterIfOutsideViewport(e,t=0){this._targetEditor.revealLineInCenterIfOutsideViewport(e,t)}revealLineNearTop(e,t=0){this._targetEditor.revealLineNearTop(e,t)}revealPosition(e,t=0){this._targetEditor.revealPosition(e,t)}revealPositionInCenter(e,t=0){this._targetEditor.revealPositionInCenter(e,t)}revealPositionInCenterIfOutsideViewport(e,t=0){this._targetEditor.revealPositionInCenterIfOutsideViewport(e,t)}revealPositionNearTop(e,t=0){this._targetEditor.revealPositionNearTop(e,t)}getSelection(){return this._targetEditor.getSelection()}getSelections(){return this._targetEditor.getSelections()}setSelection(e,t=\"api\"){this._targetEditor.setSelection(e,t)}setSelections(e,t=\"api\"){this._targetEditor.setSelections(e,t)}revealLines(e,t,i=0){this._targetEditor.revealLines(e,t,i)}revealLinesInCenter(e,t,i=0){this._targetEditor.revealLinesInCenter(e,t,i)}revealLinesInCenterIfOutsideViewport(e,t,i=0){this._targetEditor.revealLinesInCenterIfOutsideViewport(e,t,i)}revealLinesNearTop(e,t,i=0){this._targetEditor.revealLinesNearTop(e,t,i)}revealRange(e,t=0,i=!1,s=!0){this._targetEditor.revealRange(e,t,i,s)}revealRangeInCenter(e,t=0){this._targetEditor.revealRangeInCenter(e,t)}revealRangeInCenterIfOutsideViewport(e,t=0){this._targetEditor.revealRangeInCenterIfOutsideViewport(e,t)}revealRangeNearTop(e,t=0){this._targetEditor.revealRangeNearTop(e,t)}revealRangeNearTopIfOutsideViewport(e,t=0){this._targetEditor.revealRangeNearTopIfOutsideViewport(e,t)}revealRangeAtTop(e,t=0){this._targetEditor.revealRangeAtTop(e,t)}getSupportedActions(){return this._targetEditor.getSupportedActions()}focus(){this._targetEditor.focus()}trigger(e,t,i){this._targetEditor.trigger(e,t,i)}createDecorationsCollection(e){return this._targetEditor.createDecorationsCollection(e)}changeDecorations(e){return this._targetEditor.changeDecorations(e)}}wP.idCounter=0;var Bje=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Wje=function(n,e){return function(t,i){e(t,i,n)}};let I6=class{get editorOptions(){return this._options}constructor(e,t){this._accessibilityService=t,this._diffEditorWidth=li(this,0),this._screenReaderMode=qi(this._accessibilityService.onDidChangeScreenReaderOptimized,()=>this._accessibilityService.isScreenReaderOptimized()),this.couldShowInlineViewBecauseOfSize=Rt(this,s=>this._options.read(s).renderSideBySide&&this._diffEditorWidth.read(s)<=this._options.read(s).renderSideBySideInlineBreakpoint),this.renderOverviewRuler=Rt(this,s=>this._options.read(s).renderOverviewRuler),this.renderSideBySide=Rt(this,s=>this._options.read(s).renderSideBySide&&!(this._options.read(s).useInlineViewWhenSpaceIsLimited&&this.couldShowInlineViewBecauseOfSize.read(s)&&!this._screenReaderMode.read(s))),this.readOnly=Rt(this,s=>this._options.read(s).readOnly),this.shouldRenderOldRevertArrows=Rt(this,s=>!(!this._options.read(s).renderMarginRevertIcon||!this.renderSideBySide.read(s)||this.readOnly.read(s)||this.shouldRenderGutterMenu.read(s))),this.shouldRenderGutterMenu=Rt(this,s=>this._options.read(s).renderGutterMenu),this.renderIndicators=Rt(this,s=>this._options.read(s).renderIndicators),this.enableSplitViewResizing=Rt(this,s=>this._options.read(s).enableSplitViewResizing),this.splitViewDefaultRatio=Rt(this,s=>this._options.read(s).splitViewDefaultRatio),this.ignoreTrimWhitespace=Rt(this,s=>this._options.read(s).ignoreTrimWhitespace),this.maxComputationTimeMs=Rt(this,s=>this._options.read(s).maxComputationTime),this.showMoves=Rt(this,s=>this._options.read(s).experimental.showMoves&&this.renderSideBySide.read(s)),this.isInEmbeddedEditor=Rt(this,s=>this._options.read(s).isInEmbeddedEditor),this.diffWordWrap=Rt(this,s=>this._options.read(s).diffWordWrap),this.originalEditable=Rt(this,s=>this._options.read(s).originalEditable),this.diffCodeLens=Rt(this,s=>this._options.read(s).diffCodeLens),this.accessibilityVerbose=Rt(this,s=>this._options.read(s).accessibilityVerbose),this.diffAlgorithm=Rt(this,s=>this._options.read(s).diffAlgorithm),this.showEmptyDecorations=Rt(this,s=>this._options.read(s).experimental.showEmptyDecorations),this.onlyShowAccessibleDiffViewer=Rt(this,s=>this._options.read(s).onlyShowAccessibleDiffViewer),this.hideUnchangedRegions=Rt(this,s=>this._options.read(s).hideUnchangedRegions.enabled),this.hideUnchangedRegionsRevealLineCount=Rt(this,s=>this._options.read(s).hideUnchangedRegions.revealLineCount),this.hideUnchangedRegionsContextLineCount=Rt(this,s=>this._options.read(s).hideUnchangedRegions.contextLineCount),this.hideUnchangedRegionsMinimumLineCount=Rt(this,s=>this._options.read(s).hideUnchangedRegions.minimumLineCount);const i={...e,...wee(e,Wo)};this._options=li(this,i)}updateOptions(e){const t=wee(e,this._options.get()),i={...this._options.get(),...e,...t};this._options.set(i,void 0,{changedOptions:e})}setWidth(e){this._diffEditorWidth.set(e,void 0)}};I6=Bje([Wje(1,Ha)],I6);function wee(n,e){var t,i,s,o,r,a,l,c;return{enableSplitViewResizing:rt(n.enableSplitViewResizing,e.enableSplitViewResizing),splitViewDefaultRatio:E2e(n.splitViewDefaultRatio,.5,.1,.9),renderSideBySide:rt(n.renderSideBySide,e.renderSideBySide),renderMarginRevertIcon:rt(n.renderMarginRevertIcon,e.renderMarginRevertIcon),maxComputationTime:tv(n.maxComputationTime,e.maxComputationTime,0,1073741824),maxFileSize:tv(n.maxFileSize,e.maxFileSize,0,1073741824),ignoreTrimWhitespace:rt(n.ignoreTrimWhitespace,e.ignoreTrimWhitespace),renderIndicators:rt(n.renderIndicators,e.renderIndicators),originalEditable:rt(n.originalEditable,e.originalEditable),diffCodeLens:rt(n.diffCodeLens,e.diffCodeLens),renderOverviewRuler:rt(n.renderOverviewRuler,e.renderOverviewRuler),diffWordWrap:ns(n.diffWordWrap,e.diffWordWrap,[\"off\",\"on\",\"inherit\"]),diffAlgorithm:ns(n.diffAlgorithm,e.diffAlgorithm,[\"legacy\",\"advanced\"],{smart:\"legacy\",experimental:\"advanced\"}),accessibilityVerbose:rt(n.accessibilityVerbose,e.accessibilityVerbose),experimental:{showMoves:rt((t=n.experimental)===null||t===void 0?void 0:t.showMoves,e.experimental.showMoves),showEmptyDecorations:rt((i=n.experimental)===null||i===void 0?void 0:i.showEmptyDecorations,e.experimental.showEmptyDecorations)},hideUnchangedRegions:{enabled:rt((o=(s=n.hideUnchangedRegions)===null||s===void 0?void 0:s.enabled)!==null&&o!==void 0?o:(r=n.experimental)===null||r===void 0?void 0:r.collapseUnchangedRegions,e.hideUnchangedRegions.enabled),contextLineCount:tv((a=n.hideUnchangedRegions)===null||a===void 0?void 0:a.contextLineCount,e.hideUnchangedRegions.contextLineCount,0,1073741824),minimumLineCount:tv((l=n.hideUnchangedRegions)===null||l===void 0?void 0:l.minimumLineCount,e.hideUnchangedRegions.minimumLineCount,0,1073741824),revealLineCount:tv((c=n.hideUnchangedRegions)===null||c===void 0?void 0:c.revealLineCount,e.hideUnchangedRegions.revealLineCount,0,1073741824)},isInEmbeddedEditor:rt(n.isInEmbeddedEditor,e.isInEmbeddedEditor),onlyShowAccessibleDiffViewer:rt(n.onlyShowAccessibleDiffViewer,e.onlyShowAccessibleDiffViewer),renderSideBySideInlineBreakpoint:tv(n.renderSideBySideInlineBreakpoint,e.renderSideBySideInlineBreakpoint,0,1073741824),useInlineViewWhenSpaceIsLimited:rt(n.useInlineViewWhenSpaceIsLimited,e.useInlineViewWhenSpaceIsLimited),renderGutterMenu:rt(n.renderGutterMenu,e.renderGutterMenu)}}var Hje=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Zy=function(n,e){return function(t,i){e(t,i,n)}};let Tg=class extends wP{get onDidContentSizeChange(){return this._editors.onDidContentSizeChange}constructor(e,t,i,s,o,r,a,l){var c;super(),this._domElement=e,this._parentContextKeyService=s,this._parentInstantiationService=o,this._accessibilitySignalService=a,this._editorProgressService=l,this.elements=wi(\"div.monaco-diff-editor.side-by-side\",{style:{position:\"relative\",height:\"100%\"}},[wi(\"div.editor.original@original\",{style:{position:\"absolute\",height:\"100%\"}}),wi(\"div.editor.modified@modified\",{style:{position:\"absolute\",height:\"100%\"}}),wi(\"div.accessibleDiffViewer@accessibleDiffViewer\",{style:{position:\"absolute\",height:\"100%\"}})]),this._diffModel=li(this,void 0),this._shouldDisposeDiffModel=!1,this.onDidChangeModel=Ae.fromObservableLight(this._diffModel),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._domElement)),this._instantiationService=this._register(this._parentInstantiationService.createChild(new kD([Ct,this._contextKeyService]))),this._boundarySashes=li(this,void 0),this._accessibleDiffViewerShouldBeVisible=li(this,!1),this._accessibleDiffViewerVisible=Rt(this,x=>this._options.onlyShowAccessibleDiffViewer.read(x)?!0:this._accessibleDiffViewerShouldBeVisible.read(x)),this._movedBlocksLinesPart=li(this,void 0),this._layoutInfo=Rt(this,x=>{var k,D,I,N,P;const O=this._rootSizeObserver.width.read(x),M=this._rootSizeObserver.height.read(x);this._rootSizeObserver.automaticLayout?this.elements.root.style.height=\"100%\":this.elements.root.style.height=M+\"px\";const z=this._sash.read(x),K=this._gutter.read(x),ae=(k=K==null?void 0:K.width.read(x))!==null&&k!==void 0?k:0,se=(I=(D=this._overviewRulerPart.read(x))===null||D===void 0?void 0:D.width)!==null&&I!==void 0?I:0;let he,me,De,lt,We;if(!!z){const Me=z.sashLeft.read(x),Zt=(P=(N=this._movedBlocksLinesPart.read(x))===null||N===void 0?void 0:N.width.read(x))!==null&&P!==void 0?P:0;he=0,me=Me-ae-Zt,We=Me-ae,De=Me,lt=O-De-se}else We=0,he=ae,me=Math.max(5,this._editors.original.getLayoutInfo().decorationsLeft),De=ae+me,lt=O-De-se;return this.elements.original.style.left=he+\"px\",this.elements.original.style.width=me+\"px\",this._editors.original.layout({width:me,height:M},!0),K==null||K.layout(We),this.elements.modified.style.left=De+\"px\",this.elements.modified.style.width=lt+\"px\",this._editors.modified.layout({width:lt,height:M},!0),{modifiedEditor:this._editors.modified.getLayoutInfo(),originalEditor:this._editors.original.getLayoutInfo()}}),this._diffValue=this._diffModel.map((x,k)=>x==null?void 0:x.diff.read(k)),this.onDidUpdateDiff=Ae.fromObservableLight(this._diffValue),r.willCreateDiffEditor(),this._contextKeyService.createKey(\"isInDiffEditor\",!0),this._domElement.appendChild(this.elements.root),this._register(dt(()=>this._domElement.removeChild(this.elements.root))),this._rootSizeObserver=this._register(new Hue(this.elements.root,t.dimension)),this._rootSizeObserver.setAutomaticLayout((c=t.automaticLayout)!==null&&c!==void 0?c:!1),this._options=this._instantiationService.createInstance(I6,t),this._register(Ut(x=>{this._options.setWidth(this._rootSizeObserver.width.read(x))})),this._contextKeyService.createKey(W.isEmbeddedDiffEditor.key,!1),this._register(gf(W.isEmbeddedDiffEditor,this._contextKeyService,x=>this._options.isInEmbeddedEditor.read(x))),this._register(gf(W.comparingMovedCode,this._contextKeyService,x=>{var k;return!!(!((k=this._diffModel.read(x))===null||k===void 0)&&k.movedTextToCompare.read(x))})),this._register(gf(W.diffEditorRenderSideBySideInlineBreakpointReached,this._contextKeyService,x=>this._options.couldShowInlineViewBecauseOfSize.read(x))),this._register(gf(W.diffEditorInlineMode,this._contextKeyService,x=>!this._options.renderSideBySide.read(x))),this._register(gf(W.hasChanges,this._contextKeyService,x=>{var k,D,I;return((I=(D=(k=this._diffModel.read(x))===null||k===void 0?void 0:k.diff.read(x))===null||D===void 0?void 0:D.mappings.length)!==null&&I!==void 0?I:0)>0})),this._editors=this._register(this._instantiationService.createInstance(D6,this.elements.original,this.elements.modified,this._options,i,(x,k,D,I)=>this._createInnerEditor(x,k,D,I))),this._register(gf(W.diffEditorOriginalWritable,this._contextKeyService,x=>this._options.originalEditable.read(x))),this._register(gf(W.diffEditorModifiedWritable,this._contextKeyService,x=>!this._options.readOnly.read(x))),this._register(gf(W.diffEditorOriginalUri,this._contextKeyService,x=>{var k,D;return(D=(k=this._diffModel.read(x))===null||k===void 0?void 0:k.model.original.uri.toString())!==null&&D!==void 0?D:\"\"})),this._register(gf(W.diffEditorModifiedUri,this._contextKeyService,x=>{var k,D;return(D=(k=this._diffModel.read(x))===null||k===void 0?void 0:k.model.modified.uri.toString())!==null&&D!==void 0?D:\"\"})),this._overviewRulerPart=zu(this,x=>this._options.renderOverviewRuler.read(x)?this._instantiationService.createInstance(Wc(S0,x),this._editors,this.elements.root,this._diffModel,this._rootSizeObserver.width,this._rootSizeObserver.height,this._layoutInfo.map(k=>k.modifiedEditor)):void 0).recomputeInitiallyAndOnChange(this._store);const d={height:this._rootSizeObserver.height,width:this._rootSizeObserver.width.map((x,k)=>{var D,I;return x-((I=(D=this._overviewRulerPart.read(k))===null||D===void 0?void 0:D.width)!==null&&I!==void 0?I:0)})};this._sashLayout=new bje(this._options,d),this._sash=zu(this,x=>{const k=this._options.renderSideBySide.read(x);return this.elements.root.classList.toggle(\"side-by-side\",k),k?new $ue(this.elements.root,d,this._options.enableSplitViewResizing,this._boundarySashes,this._sashLayout.sashLeft,()=>this._sashLayout.resetSash()):void 0}).recomputeInitiallyAndOnChange(this._store);const u=zu(this,x=>this._instantiationService.createInstance(Wc(rk,x),this._editors,this._diffModel,this._options)).recomputeInitiallyAndOnChange(this._store);zu(this,x=>this._instantiationService.createInstance(Wc(vje,x),this._editors,this._diffModel,this._options,this)).recomputeInitiallyAndOnChange(this._store);const h=new Set,f=new Set;let g=!1;const p=zu(this,x=>this._instantiationService.createInstance(Wc(S6,x),gt(this._domElement),this._editors,this._diffModel,this._options,this,()=>g||u.get().isUpdatingHiddenAreas,h,f)).recomputeInitiallyAndOnChange(this._store),_=Rt(this,x=>{const k=p.read(x).viewZones.read(x).orig,D=u.read(x).viewZones.read(x).origViewZones;return k.concat(D)}),b=Rt(this,x=>{const k=p.read(x).viewZones.read(x).mod,D=u.read(x).viewZones.read(x).modViewZones;return k.concat(D)});this._register(QA(this._editors.original,_,x=>{g=x},h));let w;this._register(QA(this._editors.modified,b,x=>{g=x,g?w=uu.capture(this._editors.modified):(w==null||w.restore(this._editors.modified),w=void 0)},f)),this._accessibleDiffViewer=zu(this,x=>this._instantiationService.createInstance(Wc(Jp,x),this.elements.accessibleDiffViewer,this._accessibleDiffViewerVisible,(k,D)=>this._accessibleDiffViewerShouldBeVisible.set(k,D),this._options.onlyShowAccessibleDiffViewer.map(k=>!k),this._rootSizeObserver.width,this._rootSizeObserver.height,this._diffModel.map((k,D)=>{var I;return(I=k==null?void 0:k.diff.read(D))===null||I===void 0?void 0:I.mappings.map(N=>N.lineRangeMapping)}),new hje(this._editors))).recomputeInitiallyAndOnChange(this._store);const y=this._accessibleDiffViewerVisible.map(x=>x?\"hidden\":\"visible\");this._register(jm(this.elements.modified,{visibility:y})),this._register(jm(this.elements.original,{visibility:y})),this._createDiffEditorContributions(),r.addDiffEditor(this),this._gutter=zu(this,x=>this._options.shouldRenderGutterMenu.read(x)?this._instantiationService.createInstance(Wc(x6,x),this.elements.root,this._diffModel,this._editors,this._options,this._sashLayout,this._boundarySashes):void 0),this._register(RD(this._layoutInfo)),zu(this,x=>new(Wc(vm,x))(this.elements.root,this._diffModel,this._layoutInfo.map(k=>k.originalEditor),this._layoutInfo.map(k=>k.modifiedEditor),this._editors)).recomputeInitiallyAndOnChange(this._store,x=>{this._movedBlocksLinesPart.set(x,void 0)}),this._register(Ae.runAndSubscribe(this._editors.modified.onDidChangeCursorPosition,x=>this._handleCursorPositionChange(x,!0))),this._register(Ae.runAndSubscribe(this._editors.original.onDidChangeCursorPosition,x=>this._handleCursorPositionChange(x,!1)));const S=this._diffModel.map(this,(x,k)=>{if(x)return x.diff.read(k)===void 0&&!x.isDiffUpToDate.read(k)});this._register(uc((x,k)=>{if(S.read(x)===!0){const D=this._editorProgressService.show(!0,1e3);k.add(dt(()=>D.done()))}})),this._register(dt(()=>{var x;this._shouldDisposeDiffModel&&((x=this._diffModel.get())===null||x===void 0||x.dispose())})),this._register(uc((x,k)=>{k.add(new(Wc(Pje,x))(this._editors,this._diffModel,this._options,this))}))}_createInnerEditor(e,t,i,s){return e.createInstance(jC,t,i,s)}_createDiffEditorContributions(){const e=G1.getDiffEditorContributions();for(const t of e)try{this._register(this._instantiationService.createInstance(t.ctor,this))}catch(i){Mt(i)}}get _targetEditor(){return this._editors.modified}getEditorType(){return mD.IDiffEditor}layout(e){this._rootSizeObserver.observe(e)}hasTextFocus(){return this._editors.original.hasTextFocus()||this._editors.modified.hasTextFocus()}saveViewState(){var e;const t=this._editors.original.saveViewState(),i=this._editors.modified.saveViewState();return{original:t,modified:i,modelState:(e=this._diffModel.get())===null||e===void 0?void 0:e.serializeState()}}restoreViewState(e){var t;if(e&&e.original&&e.modified){const i=e;this._editors.original.restoreViewState(i.original),this._editors.modified.restoreViewState(i.modified),i.modelState&&((t=this._diffModel.get())===null||t===void 0||t.restoreSerializedState(i.modelState))}}handleInitialized(){this._editors.original.handleInitialized(),this._editors.modified.handleInitialized()}createViewModel(e){return this._instantiationService.createInstance(y6,e,this._options)}getModel(){var e,t;return(t=(e=this._diffModel.get())===null||e===void 0?void 0:e.model)!==null&&t!==void 0?t:null}setModel(e,t){!e&&this._diffModel.get()&&this._accessibleDiffViewer.get().close();const i=e?\"model\"in e?{model:e,shouldDispose:!1}:{model:this.createViewModel(e),shouldDispose:!0}:void 0;this._diffModel.get()!==(i==null?void 0:i.model)&&jL(t,s=>{var o;qi.batchEventsGlobally(s,()=>{this._editors.original.setModel(i?i.model.model.original:null),this._editors.modified.setModel(i?i.model.model.modified:null)});const r=this._diffModel.get(),a=this._shouldDisposeDiffModel;this._shouldDisposeDiffModel=(o=i==null?void 0:i.shouldDispose)!==null&&o!==void 0?o:!1,this._diffModel.set(i==null?void 0:i.model,s),a&&(r==null||r.dispose())})}updateOptions(e){this._options.updateOptions(e)}getContainerDomNode(){return this._domElement}getOriginalEditor(){return this._editors.original}getModifiedEditor(){return this._editors.modified}getLineChanges(){var e;const t=(e=this._diffModel.get())===null||e===void 0?void 0:e.diff.get();return t?Vje(t):null}revert(e){const t=this._diffModel.get();!t||!t.isDiffUpToDate.get()||this._editors.modified.executeEdits(\"diffEditor\",[{range:e.modified.toExclusiveRange(),text:t.model.original.getValueInRange(e.original.toExclusiveRange())}])}revertRangeMappings(e){const t=this._diffModel.get();if(!t||!t.isDiffUpToDate.get())return;const i=e.map(s=>({range:s.modifiedRange,text:t.model.original.getValueInRange(s.originalRange)}));this._editors.modified.executeEdits(\"diffEditor\",i)}_goTo(e){this._editors.modified.setPosition(new ee(e.lineRangeMapping.modified.startLineNumber,1)),this._editors.modified.revealRangeInCenter(e.lineRangeMapping.modified.toExclusiveRange())}goToDiff(e){var t,i,s,o;const r=(i=(t=this._diffModel.get())===null||t===void 0?void 0:t.diff.get())===null||i===void 0?void 0:i.mappings;if(!r||r.length===0)return;const a=this._editors.modified.getPosition().lineNumber;let l;e===\"next\"?l=(s=r.find(c=>c.lineRangeMapping.modified.startLineNumber>a))!==null&&s!==void 0?s:r[0]:l=(o=mL(r,c=>c.lineRangeMapping.modified.startLineNumber<a))!==null&&o!==void 0?o:r[r.length-1],this._goTo(l),l.lineRangeMapping.modified.isEmpty?this._accessibilitySignalService.playSignal(At.diffLineDeleted,{source:\"diffEditor.goToDiff\"}):l.lineRangeMapping.original.isEmpty?this._accessibilitySignalService.playSignal(At.diffLineInserted,{source:\"diffEditor.goToDiff\"}):l&&this._accessibilitySignalService.playSignal(At.diffLineModified,{source:\"diffEditor.goToDiff\"})}revealFirstDiff(){const e=this._diffModel.get();e&&this.waitForDiff().then(()=>{var t;const i=(t=e.diff.get())===null||t===void 0?void 0:t.mappings;!i||i.length===0||this._goTo(i[0])})}accessibleDiffViewerNext(){this._accessibleDiffViewer.get().next()}accessibleDiffViewerPrev(){this._accessibleDiffViewer.get().prev()}async waitForDiff(){const e=this._diffModel.get();e&&await e.waitForDiff()}mapToOtherSide(){var e,t;const i=this._editors.modified.hasWidgetFocus(),s=i?this._editors.modified:this._editors.original,o=i?this._editors.original:this._editors.modified;let r;const a=s.getSelection();if(a){const l=(t=(e=this._diffModel.get())===null||e===void 0?void 0:e.diff.get())===null||t===void 0?void 0:t.mappings.map(c=>i?c.lineRangeMapping.flip():c.lineRangeMapping);if(l){const c=oee(a.getStartPosition(),l),d=oee(a.getEndPosition(),l);r=A.plusRange(c,d)}}return{destination:o,destinationSelection:r}}switchSide(){const{destination:e,destinationSelection:t}=this.mapToOtherSide();e.focus(),t&&e.setSelection(t)}exitCompareMove(){const e=this._diffModel.get();e&&e.movedTextToCompare.set(void 0,void 0)}collapseAllUnchangedRegions(){var e;const t=(e=this._diffModel.get())===null||e===void 0?void 0:e.unchangedRegions.get();t&&rn(i=>{for(const s of t)s.collapseAll(i)})}showAllUnchangedRegions(){var e;const t=(e=this._diffModel.get())===null||e===void 0?void 0:e.unchangedRegions.get();t&&rn(i=>{for(const s of t)s.showAll(i)})}_handleCursorPositionChange(e,t){var i,s;if((e==null?void 0:e.reason)===3){const o=(s=(i=this._diffModel.get())===null||i===void 0?void 0:i.diff.get())===null||s===void 0?void 0:s.mappings.find(r=>t?r.lineRangeMapping.modified.contains(e.position.lineNumber):r.lineRangeMapping.original.contains(e.position.lineNumber));o!=null&&o.lineRangeMapping.modified.isEmpty?this._accessibilitySignalService.playSignal(At.diffLineDeleted,{source:\"diffEditor.cursorPositionChanged\"}):o!=null&&o.lineRangeMapping.original.isEmpty?this._accessibilitySignalService.playSignal(At.diffLineInserted,{source:\"diffEditor.cursorPositionChanged\"}):o&&this._accessibilitySignalService.playSignal(At.diffLineModified,{source:\"diffEditor.cursorPositionChanged\"})}}};Tg=Hje([Zy(3,Ct),Zy(4,ht),Zy(5,vi),Zy(6,v_),Zy(7,m_)],Tg);function Vje(n){return n.mappings.map(e=>{const t=e.lineRangeMapping;let i,s,o,r,a=t.innerChanges;return t.original.isEmpty?(i=t.original.startLineNumber-1,s=0,a=void 0):(i=t.original.startLineNumber,s=t.original.endLineNumberExclusive-1),t.modified.isEmpty?(o=t.modified.startLineNumber-1,r=0,a=void 0):(o=t.modified.startLineNumber,r=t.modified.endLineNumberExclusive-1),{originalStartLineNumber:i,originalEndLineNumber:s,modifiedStartLineNumber:o,modifiedEndLineNumber:r,charChanges:a==null?void 0:a.map(l=>({originalStartLineNumber:l.originalRange.startLineNumber,originalStartColumn:l.originalRange.startColumn,originalEndLineNumber:l.originalRange.endLineNumber,originalEndColumn:l.originalRange.endColumn,modifiedStartLineNumber:l.modifiedRange.startLineNumber,modifiedStartColumn:l.modifiedRange.startColumn,modifiedEndLineNumber:l.modifiedRange.endLineNumber,modifiedEndColumn:l.modifiedRange.endColumn}))}})}var J$=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},mn=function(n,e){return function(t,i){e(t,i,n)}};let zje=0,yee=!1;function $je(n){if(!n){if(yee)return;yee=!0}eFe(n||Ji.document.body)}let tR=class extends jC{constructor(e,t,i,s,o,r,a,l,c,d,u,h,f){const g={...t};g.ariaLabel=g.ariaLabel||yA.editorViewAccessibleLabel,g.ariaLabel=g.ariaLabel+\";\"+yA.accessibilityHelpMessage,super(e,g,{},i,s,o,r,c,d,u,h,f),l instanceof nw?this._standaloneKeybindingService=l:this._standaloneKeybindingService=null,$je(g.ariaContainerElement),$He((p,_)=>i.createInstance(KC,p,_,{})),UHe(a)}addCommand(e,t,i){if(!this._standaloneKeybindingService)return console.warn(\"Cannot add command because the editor is configured with an unrecognized KeybindingService\"),null;const s=\"DYNAMIC_\"+ ++zje,o=pe.deserialize(i);return this._standaloneKeybindingService.addDynamicKeybinding(s,e,t,o),s}createContextKey(e,t){return this._contextKeyService.createKey(e,t)}addAction(e){if(typeof e.id!=\"string\"||typeof e.label!=\"string\"||typeof e.run!=\"function\")throw new Error(\"Invalid action descriptor, `id`, `label` and `run` are required properties!\");if(!this._standaloneKeybindingService)return console.warn(\"Cannot add keybinding because the editor is configured with an unrecognized KeybindingService\"),ne.None;const t=e.id,i=e.label,s=pe.and(pe.equals(\"editorId\",this.getId()),pe.deserialize(e.precondition)),o=e.keybindings,r=pe.and(s,pe.deserialize(e.keybindingContext)),a=e.contextMenuGroupId||null,l=e.contextMenuOrder||0,c=(f,...g)=>Promise.resolve(e.run(this,...g)),d=new be,u=this.getId()+\":\"+t;if(d.add(ri.registerCommand(u,c)),a){const f={command:{id:u,title:i},when:s,group:a,order:l};d.add(ao.appendMenuItem(R.EditorContext,f))}if(Array.isArray(o))for(const f of o)d.add(this._standaloneKeybindingService.addDynamicKeybinding(u,f,c,r));const h=new Dce(u,i,i,void 0,s,(...f)=>Promise.resolve(e.run(this,...f)),this._contextKeyService);return this._actions.set(t,h),d.add(dt(()=>{this._actions.delete(t)})),d}_triggerCommand(e,t){if(this._codeEditorService instanceof hA)try{this._codeEditorService.setActiveCodeEditor(this),super._triggerCommand(e,t)}finally{this._codeEditorService.setActiveCodeEditor(null)}else super._triggerCommand(e,t)}};tR=J$([mn(2,ht),mn(3,vi),mn(4,Sn),mn(5,Ct),mn(6,$h),mn(7,Li),mn(8,js),mn(9,ps),mn(10,Ha),mn(11,gn),mn(12,Xe)],tR);let E6=class extends tR{constructor(e,t,i,s,o,r,a,l,c,d,u,h,f,g,p,_){const b={...t};ZA(u,b,!1);const w=c.registerEditorContainer(e);typeof b.theme==\"string\"&&c.setTheme(b.theme),typeof b.autoDetectHighContrast<\"u\"&&c.setAutoDetectHighContrast(!!b.autoDetectHighContrast);const y=b.model;delete b.model,super(e,b,i,s,o,r,a,l,c,d,h,p,_),this._configurationService=u,this._standaloneThemeService=c,this._register(w);let S;if(typeof y>\"u\"){const x=g.getLanguageIdByMimeType(b.language)||b.language||bl;S=Yue(f,g,b.value||\"\",x,void 0),this._ownsModel=!0}else S=y,this._ownsModel=!1;if(this._attachModel(S),S){const x={oldModelUrl:null,newModelUrl:S.uri};this._onDidChangeModel.fire(x)}}dispose(){super.dispose()}updateOptions(e){ZA(this._configurationService,e,!1),typeof e.theme==\"string\"&&this._standaloneThemeService.setTheme(e.theme),typeof e.autoDetectHighContrast<\"u\"&&this._standaloneThemeService.setAutoDetectHighContrast(!!e.autoDetectHighContrast),super.updateOptions(e)}_postDetachModelCleanup(e){super._postDetachModelCleanup(e),e&&this._ownsModel&&(e.dispose(),this._ownsModel=!1)}};E6=J$([mn(2,ht),mn(3,vi),mn(4,Sn),mn(5,Ct),mn(6,$h),mn(7,Li),mn(8,Tl),mn(9,ps),mn(10,qt),mn(11,Ha),mn(12,Pn),mn(13,An),mn(14,gn),mn(15,Xe)],E6);let T6=class extends Tg{constructor(e,t,i,s,o,r,a,l,c,d,u,h){const f={...t};ZA(l,f,!0);const g=r.registerEditorContainer(e);typeof f.theme==\"string\"&&r.setTheme(f.theme),typeof f.autoDetectHighContrast<\"u\"&&r.setAutoDetectHighContrast(!!f.autoDetectHighContrast),super(e,f,{},s,i,o,h,d),this._configurationService=l,this._standaloneThemeService=r,this._register(g)}dispose(){super.dispose()}updateOptions(e){ZA(this._configurationService,e,!0),typeof e.theme==\"string\"&&this._standaloneThemeService.setTheme(e.theme),typeof e.autoDetectHighContrast<\"u\"&&this._standaloneThemeService.setAutoDetectHighContrast(!!e.autoDetectHighContrast),super.updateOptions(e)}_createInnerEditor(e,t,i){return e.createInstance(tR,t,i)}getOriginalEditor(){return super.getOriginalEditor()}getModifiedEditor(){return super.getModifiedEditor()}addCommand(e,t,i){return this.getModifiedEditor().addCommand(e,t,i)}createContextKey(e,t){return this.getModifiedEditor().createContextKey(e,t)}addAction(e){return this.getModifiedEditor().addAction(e)}};T6=J$([mn(2,ht),mn(3,Ct),mn(4,vi),mn(5,Tl),mn(6,ps),mn(7,qt),mn(8,za),mn(9,m_),mn(10,zg),mn(11,v_)],T6);function Yue(n,e,t,i,s){if(t=t||\"\",!i){const o=t.indexOf(`\n`);let r=t;return o!==-1&&(r=t.substring(0,o)),See(n,t,e.createByFilepathOrFirstLine(s||null,r),s)}return See(n,t,e.createById(i),s)}function See(n,e,t,i){return n.createModel(e,t,i)}var Uje=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},jje=function(n,e){return function(t,i){e(t,i,n)}};class Kje{constructor(e,t){this.viewModel=e,this.deltaScrollVertical=t}getId(){return this.viewModel}}let iR=class extends ne{constructor(e,t,i,s){super(),this._container=e,this._overflowWidgetsDomNode=t,this._workbenchUIElementFactory=i,this._instantiationService=s,this._viewModel=li(this,void 0),this._collapsed=Rt(this,r=>{var a;return(a=this._viewModel.read(r))===null||a===void 0?void 0:a.collapsed.read(r)}),this._editorContentHeight=li(this,500),this.contentHeight=Rt(this,r=>(this._collapsed.read(r)?0:this._editorContentHeight.read(r))+this._outerEditorHeight),this._modifiedContentWidth=li(this,0),this._modifiedWidth=li(this,0),this._originalContentWidth=li(this,0),this._originalWidth=li(this,0),this.maxScroll=Rt(this,r=>{const a=this._modifiedContentWidth.read(r)-this._modifiedWidth.read(r),l=this._originalContentWidth.read(r)-this._originalWidth.read(r);return a>l?{maxScroll:a,width:this._modifiedWidth.read(r)}:{maxScroll:l,width:this._originalWidth.read(r)}}),this._elements=wi(\"div.multiDiffEntry\",[wi(\"div.header@header\",[wi(\"div.header-content\",[wi(\"div.collapse-button@collapseButton\"),wi(\"div.file-path\",[wi(\"div.title.modified.show-file-icons@primaryPath\",[]),wi(\"div.status.deleted@status\",[\"R\"]),wi(\"div.title.original.show-file-icons@secondaryPath\",[])]),wi(\"div.actions@actions\")])]),wi(\"div.editorParent\",[wi(\"div.editorContainer@editor\")])]),this.editor=this._register(this._instantiationService.createInstance(Tg,this._elements.editor,{overflowWidgetsDomNode:this._overflowWidgetsDomNode},{})),this.isModifedFocused=xee(this.editor.getModifiedEditor()),this.isOriginalFocused=xee(this.editor.getOriginalEditor()),this.isFocused=Rt(this,r=>this.isModifedFocused.read(r)||this.isOriginalFocused.read(r)),this._resourceLabel=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.primaryPath)):void 0,this._resourceLabel2=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.secondaryPath)):void 0,this._dataStore=new be,this._headerHeight=40,this._lastScrollTop=-1,this._isSettingScrollTop=!1;const o=new RA(this._elements.collapseButton,{});this._register(Ut(r=>{o.element.className=\"\",o.icon=this._collapsed.read(r)?Te.chevronRight:Te.chevronDown})),this._register(o.onDidClick(()=>{var r;(r=this._viewModel.get())===null||r===void 0||r.collapsed.set(!this._collapsed.get(),void 0)})),this._register(Ut(r=>{this._elements.editor.style.display=this._collapsed.read(r)?\"none\":\"block\"})),this._register(this.editor.getModifiedEditor().onDidLayoutChange(r=>{const a=this.editor.getModifiedEditor().getLayoutInfo().contentWidth;this._modifiedWidth.set(a,void 0)})),this._register(this.editor.getOriginalEditor().onDidLayoutChange(r=>{const a=this.editor.getOriginalEditor().getLayoutInfo().contentWidth;this._originalWidth.set(a,void 0)})),this._register(this.editor.onDidContentSizeChange(r=>{DN(a=>{this._editorContentHeight.set(r.contentHeight,a),this._modifiedContentWidth.set(this.editor.getModifiedEditor().getContentWidth(),a),this._originalContentWidth.set(this.editor.getOriginalEditor().getContentWidth(),a)})})),this._register(this.editor.getOriginalEditor().onDidScrollChange(r=>{if(this._isSettingScrollTop||!r.scrollTopChanged||!this._data)return;const a=r.scrollTop-this._lastScrollTop;this._data.deltaScrollVertical(a)})),this._register(Ut(r=>{var a;const l=(a=this._viewModel.read(r))===null||a===void 0?void 0:a.isActive.read(r);this._elements.root.classList.toggle(\"active\",l)})),this._container.appendChild(this._elements.root),this._outerEditorHeight=this._headerHeight,this._register(this._instantiationService.createInstance(eR,this._elements.actions,R.MultiDiffEditorFileToolbar,{actionRunner:this._register(new que(()=>{var r;return(r=this._viewModel.get())===null||r===void 0?void 0:r.modifiedUri})),menuOptions:{shouldForwardArgs:!0},toolbarOptions:{primaryGroup:r=>r.startsWith(\"navigation\")},actionViewItemProvider:(r,a)=>Kde(s,r,a)}))}setScrollLeft(e){this._modifiedContentWidth.get()-this._modifiedWidth.get()>this._originalContentWidth.get()-this._originalWidth.get()?this.editor.getModifiedEditor().setScrollLeft(e):this.editor.getOriginalEditor().setScrollLeft(e)}setData(e){this._data=e;function t(s){return{...s,scrollBeyondLastLine:!1,hideUnchangedRegions:{enabled:!0},scrollbar:{vertical:\"hidden\",horizontal:\"hidden\",handleMouseWheel:!1,useShadows:!1},renderOverviewRuler:!1,fixedOverflowWidgets:!0,overviewRulerBorder:!1}}const i=e.viewModel.entry.value;i.onOptionsDidChange&&this._dataStore.add(i.onOptionsDidChange(()=>{var s;this.editor.updateOptions(t((s=i.options)!==null&&s!==void 0?s:{}))})),DN(s=>{var o,r,a,l;(o=this._resourceLabel)===null||o===void 0||o.setUri((r=e.viewModel.modifiedUri)!==null&&r!==void 0?r:e.viewModel.originalUri,{strikethrough:e.viewModel.modifiedUri===void 0});let c=!1,d=!1,u=!1,h=\"\";e.viewModel.modifiedUri&&e.viewModel.originalUri&&e.viewModel.modifiedUri.path!==e.viewModel.originalUri.path?(h=\"R\",c=!0):e.viewModel.modifiedUri?e.viewModel.originalUri||(h=\"A\",u=!0):(h=\"D\",d=!0),this._elements.status.classList.toggle(\"renamed\",c),this._elements.status.classList.toggle(\"deleted\",d),this._elements.status.classList.toggle(\"added\",u),this._elements.status.innerText=h,(a=this._resourceLabel2)===null||a===void 0||a.setUri(c?e.viewModel.originalUri:void 0,{strikethrough:!0}),this._dataStore.clear(),this._viewModel.set(e.viewModel,s),this.editor.setModel(e.viewModel.diffEditorViewModel,s),this.editor.updateOptions(t((l=i.options)!==null&&l!==void 0?l:{}))})}render(e,t,i,s){this._elements.root.style.visibility=\"visible\",this._elements.root.style.top=`${e.start}px`,this._elements.root.style.height=`${e.length}px`,this._elements.root.style.width=`${t}px`,this._elements.root.style.position=\"absolute\";const o=e.length-this._headerHeight,r=Math.max(0,Math.min(s.start-e.start,o));this._elements.header.style.transform=`translateY(${r}px)`,DN(a=>{this.editor.layout({width:t-2*8-2*1,height:e.length-this._outerEditorHeight})});try{this._isSettingScrollTop=!0,this._lastScrollTop=i,this.editor.getOriginalEditor().setScrollTop(i)}finally{this._isSettingScrollTop=!1}this._elements.header.classList.toggle(\"shadow\",r>0||i>0),this._elements.header.classList.toggle(\"collapsed\",r===o)}hide(){this._elements.root.style.top=\"-100000px\",this._elements.root.style.visibility=\"hidden\"}};iR=Uje([jje(3,ht)],iR);function xee(n){return qi(e=>{const t=new be;return t.add(n.onDidFocusEditorWidget(()=>e(!0))),t.add(n.onDidBlurEditorWidget(()=>e(!1))),t},()=>n.hasTextFocus())}class qje{constructor(e){this._create=e,this._unused=new Set,this._used=new Set,this._itemData=new Map}getUnusedObj(e){var t;let i;if(this._unused.size===0)i=this._create(e),this._itemData.set(i,e);else{const s=[...this._unused.values()];i=(t=s.find(o=>this._itemData.get(o).getId()===e.getId()))!==null&&t!==void 0?t:s[0],this._unused.delete(i),this._itemData.set(i,e),i.setData(e)}return this._used.add(i),{object:i,dispose:()=>{this._used.delete(i),this._unused.size>5?i.dispose():this._unused.add(i)}}}dispose(){for(const e of this._used)e.dispose();for(const e of this._unused)e.dispose();this._used.clear(),this._unused.clear()}}var Gje=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Lee=function(n,e){return function(t,i){e(t,i,n)}};let N6=class extends ne{constructor(e,t,i,s,o,r){super(),this._element=e,this._dimension=t,this._viewModel=i,this._workbenchUIElementFactory=s,this._parentContextKeyService=o,this._parentInstantiationService=r,this._scrollableElements=wi(\"div.scrollContent\",[wi(\"div@content\",{style:{overflow:\"hidden\"}}),wi(\"div.monaco-editor@overflowWidgetsDomNode\",{})]),this._scrollable=this._register(new Ww({forceIntegerValues:!1,scheduleAtNextAnimationFrame:l=>Oa(gt(this._element),l),smoothScrollDuration:100})),this._scrollableElement=this._register(new MM(this._scrollableElements.root,{vertical:1,horizontal:1,useShadows:!1},this._scrollable)),this._elements=wi(\"div.monaco-component.multiDiffEditor\",{},[wi(\"div\",{},[this._scrollableElement.getDomNode()]),wi(\"div.placeholder@placeholder\",{},[wi(\"div\",[v(\"noChangedFiles\",\"No Changed Files\")])])]),this._sizeObserver=this._register(new Hue(this._element,void 0)),this._objectPool=this._register(new qje(l=>{const c=this._instantiationService.createInstance(iR,this._scrollableElements.content,this._scrollableElements.overflowWidgetsDomNode,this._workbenchUIElementFactory);return c.setData(l),c})),this.scrollTop=qi(this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollTop),this.scrollLeft=qi(this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollLeft),this._viewItemsInfo=J0(this,(l,c)=>{const d=this._viewModel.read(l);if(!d)return{items:[],getItem:g=>{throw new Gi}};const u=d.items.read(l),h=new Map;return{items:u.map(g=>{var p;const _=c.add(new Zje(g,this._objectPool,this.scrollLeft,w=>{this._scrollableElement.setScrollPosition({scrollTop:this._scrollableElement.getScrollPosition().scrollTop+w})})),b=(p=this._lastDocStates)===null||p===void 0?void 0:p[_.getKey()];return b&&rn(w=>{_.setViewState(b,w)}),h.set(g,_),_}),getItem:g=>h.get(g)}}),this._viewItems=this._viewItemsInfo.map(this,l=>l.items),this._spaceBetweenPx=0,this._totalHeight=this._viewItems.map(this,(l,c)=>l.reduce((d,u)=>d+u.contentHeight.read(c)+this._spaceBetweenPx,0)),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._element)),this._instantiationService=this._register(this._parentInstantiationService.createChild(new kD([Ct,this._contextKeyService]))),this._lastDocStates={},this._contextKeyService.createKey(W.inMultiDiffEditor.key,!0),this._register(uc((l,c)=>{const d=this._viewModel.read(l);if(d&&d.contextKeys)for(const[u,h]of Object.entries(d.contextKeys)){const f=this._contextKeyService.createKey(u,void 0);f.set(h),c.add(dt(()=>f.reset()))}}));const a=this._parentContextKeyService.createKey(W.multiDiffEditorAllCollapsed.key,!1);this._register(Ut(l=>{const c=this._viewModel.read(l);if(c){const d=c.items.read(l).every(u=>u.collapsed.read(l));a.set(d)}})),this._register(Ut(l=>{const c=this._dimension.read(l);this._sizeObserver.observe(c)})),this._register(Ut(l=>{const c=this._viewItems.read(l);this._elements.placeholder.classList.toggle(\"visible\",c.length===0)})),this._scrollableElements.content.style.position=\"relative\",this._register(Ut(l=>{const c=this._sizeObserver.height.read(l);this._scrollableElements.root.style.height=`${c}px`;const d=this._totalHeight.read(l);this._scrollableElements.content.style.height=`${d}px`;const u=this._sizeObserver.width.read(l);let h=u;const f=this._viewItems.read(l),g=pz(f,oa(p=>p.maxScroll.read(l).maxScroll,Qc));if(g){const p=g.maxScroll.read(l);h=u+p.maxScroll}this._scrollableElement.setScrollDimensions({width:u,height:c,scrollHeight:d,scrollWidth:h})})),e.replaceChildren(this._elements.root),this._register(dt(()=>{e.replaceChildren()})),this._register(this._register(Ut(l=>{DN(c=>{this.render(l)})})))}render(e){const t=this.scrollTop.read(e);let i=0,s=0,o=0;const r=this._sizeObserver.height.read(e),a=zt.ofStartAndLength(t,r),l=this._sizeObserver.width.read(e);for(const c of this._viewItems.read(e)){const d=c.contentHeight.read(e),u=Math.min(d,r),h=zt.ofStartAndLength(s,u),f=zt.ofStartAndLength(o,d);if(f.isBefore(a))i-=d-u,c.hide();else if(f.isAfter(a))c.hide();else{const g=Math.max(0,Math.min(a.start-f.start,d-u));i-=g;const p=zt.ofStartAndLength(t+i,r);c.render(h,g,l,p)}s+=u+this._spaceBetweenPx,o+=d+this._spaceBetweenPx}this._scrollableElements.content.style.transform=`translateY(${-(t+i)}px)`}};N6=Gje([Lee(4,Ct),Lee(5,ht)],N6);class Zje extends ne{constructor(e,t,i,s){super(),this.viewModel=e,this._objectPool=t,this._scrollLeft=i,this._deltaScrollVertical=s,this._templateRef=this._register(KL(this,void 0)),this.contentHeight=Rt(this,o=>{var r,a,l;return(l=(a=(r=this._templateRef.read(o))===null||r===void 0?void 0:r.object.contentHeight)===null||a===void 0?void 0:a.read(o))!==null&&l!==void 0?l:this.viewModel.lastTemplateData.read(o).contentHeight}),this.maxScroll=Rt(this,o=>{var r,a;return(a=(r=this._templateRef.read(o))===null||r===void 0?void 0:r.object.maxScroll.read(o))!==null&&a!==void 0?a:{maxScroll:0,scrollWidth:0}}),this.template=Rt(this,o=>{var r;return(r=this._templateRef.read(o))===null||r===void 0?void 0:r.object}),this._isHidden=li(this,!1),this._isFocused=Rt(this,o=>{var r,a;return(a=(r=this.template.read(o))===null||r===void 0?void 0:r.isFocused.read(o))!==null&&a!==void 0?a:!1}),this.viewModel.setIsFocused(this._isFocused,void 0),this._register(Ut(o=>{var r;const a=this._scrollLeft.read(o);(r=this._templateRef.read(o))===null||r===void 0||r.object.setScrollLeft(a)})),this._register(Ut(o=>{const r=this._templateRef.read(o);!r||!this._isHidden.read(o)||r.object.isFocused.read(o)||this._clear()}))}dispose(){this._clear(),super.dispose()}toString(){var e;return`VirtualViewItem(${(e=this.viewModel.entry.value.modified)===null||e===void 0?void 0:e.uri.toString()})`}getKey(){return this.viewModel.getKey()}setViewState(e,t){var i;this.viewModel.collapsed.set(e.collapsed,t),this._updateTemplateData(t);const s=this.viewModel.lastTemplateData.get(),o=(i=e.selections)===null||i===void 0?void 0:i.map(it.liftSelection);this.viewModel.lastTemplateData.set({...s,selections:o},t);const r=this._templateRef.get();r&&o&&r.object.editor.setSelections(o)}_updateTemplateData(e){var t;const i=this._templateRef.get();i&&this.viewModel.lastTemplateData.set({contentHeight:i.object.contentHeight.get(),selections:(t=i.object.editor.getSelections())!==null&&t!==void 0?t:void 0},e)}_clear(){const e=this._templateRef.get();e&&rn(t=>{this._updateTemplateData(t),e.object.hide(),this._templateRef.set(void 0,t)})}hide(){this._isHidden.set(!0,void 0)}render(e,t,i,s){this._isHidden.set(!1,void 0);let o=this._templateRef.get();if(!o){o=this._objectPool.getUnusedObj(new Kje(this.viewModel,this._deltaScrollVertical)),this._templateRef.set(o,void 0);const r=this.viewModel.lastTemplateData.get().selections;r&&o.object.editor.setSelections(r)}o.object.render(e,i,t,s)}}V(\"multiDiffEditor.headerBackground\",{dark:\"#262626\",light:\"tab.inactiveBackground\",hcDark:\"tab.inactiveBackground\",hcLight:\"tab.inactiveBackground\"},v(\"multiDiffEditor.headerBackground\",\"The background color of the diff editor's header\"));V(\"multiDiffEditor.background\",{dark:\"editorBackground\",light:\"editorBackground\",hcDark:\"editorBackground\",hcLight:\"editorBackground\"},v(\"multiDiffEditor.background\",\"The background color of the multi file diff editor\"));V(\"multiDiffEditor.border\",{dark:\"sideBarSectionHeader.border\",light:\"#cccccc\",hcDark:\"sideBarSectionHeader.border\",hcLight:\"#cccccc\"},v(\"multiDiffEditor.border\",\"The border color of the multi file diff editor\"));var Yje=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Xje=function(n,e){return function(t,i){e(t,i,n)}};let A6=class extends ne{constructor(e,t,i){super(),this._element=e,this._workbenchUIElementFactory=t,this._instantiationService=i,this._dimension=li(this,void 0),this._viewModel=li(this,void 0),this._widgetImpl=J0(this,(s,o)=>(Wc(iR,s),o.add(this._instantiationService.createInstance(Wc(N6,s),this._element,this._dimension,this._viewModel,this._workbenchUIElementFactory)))),this._register(RD(this._widgetImpl))}};A6=Yje([Xje(2,ht)],A6);function Qje(n,e,t){return St.initialize(t||{}).createInstance(E6,n,e)}function Jje(n){return St.get(vi).onCodeEditorAdd(t=>{n(t)})}function eKe(n){return St.get(vi).onDiffEditorAdd(t=>{n(t)})}function tKe(){return St.get(vi).listCodeEditors()}function iKe(){return St.get(vi).listDiffEditors()}function nKe(n,e,t){return St.initialize(t||{}).createInstance(T6,n,e)}function sKe(n,e){const t=St.initialize(e||{});return new A6(n,{},t)}function oKe(n){if(typeof n.id!=\"string\"||typeof n.run!=\"function\")throw new Error(\"Invalid command descriptor, `id` and `run` are required properties!\");return ri.registerCommand(n.id,n.run)}function rKe(n){if(typeof n.id!=\"string\"||typeof n.label!=\"string\"||typeof n.run!=\"function\")throw new Error(\"Invalid action descriptor, `id`, `label` and `run` are required properties!\");const e=pe.deserialize(n.precondition),t=(s,...o)=>Us.runEditorCommand(s,o,e,(r,a,l)=>Promise.resolve(n.run(a,...l))),i=new be;if(i.add(ri.registerCommand(n.id,t)),n.contextMenuGroupId){const s={command:{id:n.id,title:n.label},when:e,group:n.contextMenuGroupId,order:n.contextMenuOrder||0};i.add(ao.appendMenuItem(R.EditorContext,s))}if(Array.isArray(n.keybindings)){const s=St.get(Li);if(!(s instanceof nw))console.warn(\"Cannot add keybinding because the editor is configured with an unrecognized KeybindingService\");else{const o=pe.and(e,pe.deserialize(n.keybindingContext));i.add(s.addDynamicKeybindings(n.keybindings.map(r=>({keybinding:r,command:n.id,when:o}))))}}return i}function aKe(n){return Xue([n])}function Xue(n){const e=St.get(Li);return e instanceof nw?e.addDynamicKeybindings(n.map(t=>({keybinding:t.keybinding,command:t.command,commandArgs:t.commandArgs,when:pe.deserialize(t.when)}))):(console.warn(\"Cannot add keybinding because the editor is configured with an unrecognized KeybindingService\"),ne.None)}function lKe(n,e,t){const i=St.get(An),s=i.getLanguageIdByMimeType(e)||e;return Yue(St.get(Pn),i,n,s,t)}function cKe(n,e){const t=St.get(An),i=t.getLanguageIdByMimeType(e)||e||bl;n.setLanguage(t.createById(i))}function dKe(n,e,t){n&&St.get(Uh).changeOne(e,n.uri,t)}function uKe(n){St.get(Uh).changeAll(n,[])}function hKe(n){return St.get(Uh).read(n)}function fKe(n){return St.get(Uh).onMarkerChanged(n)}function gKe(n){return St.get(Pn).getModel(n)}function pKe(){return St.get(Pn).getModels()}function mKe(n){return St.get(Pn).onModelAdded(n)}function _Ke(n){return St.get(Pn).onModelRemoved(n)}function vKe(n){return St.get(Pn).onModelLanguageChanged(t=>{n({model:t.model,oldLanguage:t.oldLanguageId})})}function bKe(n){return k4e(St.get(Pn),St.get(gn),n)}function CKe(n,e){const t=St.get(An),i=St.get(Tl);return Sz.colorizeElement(i,t,n,e).then(()=>{i.registerEditorContainer(n)})}function wKe(n,e,t){const i=St.get(An);return St.get(Tl).registerEditorContainer(Ji.document.body),Sz.colorize(i,n,e,t)}function yKe(n,e,t=4){return St.get(Tl).registerEditorContainer(Ji.document.body),Sz.colorizeModelLine(n,e,t)}function SKe(n){const e=Zn.get(n);return e||{getInitialState:()=>OC,tokenize:(t,i,s)=>Cz(n,s)}}function xKe(n,e){Zn.getOrCreate(e);const t=SKe(e),i=Wh(n),s=[];let o=t.getInitialState();for(let r=0,a=i.length;r<a;r++){const l=i[r],c=t.tokenize(l,!0,o);s[r]=c.tokens,o=c.endState}return s}function LKe(n,e){St.get(Tl).defineTheme(n,e)}function kKe(n){St.get(Tl).setTheme(n)}function DKe(){lB.clearAllFontInfos()}function IKe(n,e){return ri.registerCommand({id:n,handler:e})}function EKe(n){return St.get($a).registerOpener({async open(t){return typeof t==\"string\"&&(t=pt.parse(t)),n.open(t)}})}function TKe(n){return St.get(vi).registerCodeEditorOpenHandler(async(t,i,s)=>{var o;if(!i)return null;const r=(o=t.options)===null||o===void 0?void 0:o.selection;let a;return r&&typeof r.endLineNumber==\"number\"&&typeof r.endColumn==\"number\"?a=r:r&&(a={lineNumber:r.startLineNumber,column:r.startColumn}),await n.openCodeEditor(i,t.resource,a)?i:null})}function NKe(){return{create:Qje,getEditors:tKe,getDiffEditors:iKe,onDidCreateEditor:Jje,onDidCreateDiffEditor:eKe,createDiffEditor:nKe,addCommand:oKe,addEditorAction:rKe,addKeybindingRule:aKe,addKeybindingRules:Xue,createModel:lKe,setModelLanguage:cKe,setModelMarkers:dKe,getModelMarkers:hKe,removeAllMarkers:uKe,onDidChangeMarkers:fKe,getModels:pKe,getModel:gKe,onDidCreateModel:mKe,onWillDisposeModel:_Ke,onDidChangeModelLanguage:vKe,createWebWorker:bKe,colorizeElement:CKe,colorize:wKe,colorizeModelLine:yKe,tokenize:xKe,defineTheme:LKe,setTheme:kKe,remeasureFonts:DKe,registerCommand:IKe,registerLinkOpener:EKe,registerEditorOpener:TKe,AccessibilitySupport:r7,ContentWidgetPositionPreference:h7,CursorChangeReason:f7,DefaultEndOfLine:g7,EditorAutoIndentStrategy:m7,EditorOption:_7,EndOfLinePreference:v7,EndOfLineSequence:b7,MinimapPosition:T7,MinimapSectionHeaderStyle:N7,MouseTargetType:A7,OverlayWidgetPositionPreference:P7,OverviewRulerLane:O7,GlyphMarginLane:C7,RenderLineNumbersType:W7,RenderMinimap:H7,ScrollbarVisibility:z7,ScrollType:V7,TextEditorCursorBlinkingStyle:G7,TextEditorCursorStyle:Z7,TrackedRangeStickiness:Y7,WrappingIndent:X7,InjectedTextCursorStops:S7,PositionAffinity:B7,ShowLightbulbIconMode:U7,ConfigurationChangedEvent:Jre,BareFontInfo:zv,FontInfo:aB,TextModelResolvedOptions:gN,FindMatch:pL,ApplyUpdateResult:sx,EditorZoom:Kl,createMultiFileDiffEditor:sKe,EditorType:mD,EditorOptions:gu}}function AKe(n,e){if(!e||!Array.isArray(e))return!1;for(const t of e)if(!n(t))return!1;return!0}function pT(n,e){return typeof n==\"boolean\"?n:e}function kee(n,e){return typeof n==\"string\"?n:e}function RKe(n){const e={};for(const t of n)e[t]=!0;return e}function Dee(n,e=!1){e&&(n=n.map(function(i){return i.toLowerCase()}));const t=RKe(n);return e?function(i){return t[i.toLowerCase()]!==void 0&&t.hasOwnProperty(i.toLowerCase())}:function(i){return t[i]!==void 0&&t.hasOwnProperty(i)}}function R6(n,e,t){e=e.replace(/@@/g,\"\u0001\");let i=0,s;do s=!1,e=e.replace(/@(\\w+)/g,function(r,a){s=!0;let l=\"\";if(typeof n[a]==\"string\")l=n[a];else if(n[a]&&n[a]instanceof RegExp)l=n[a].source;else throw n[a]===void 0?Ln(n,\"language definition does not contain attribute '\"+a+\"', used at: \"+e):Ln(n,\"attribute reference '\"+a+\"' must be a string, used at: \"+e);return fv(l)?\"\":\"(?:\"+l+\")\"}),i++;while(s&&i<5);e=e.replace(/\\x01/g,\"@\");const o=(n.ignoreCase?\"i\":\"\")+(n.unicode?\"u\":\"\");if(t&&e.match(/\\$[sS](\\d\\d?)/g)){let a=null,l=null;return c=>(l&&a===c||(a=c,l=new RegExp(K4e(n,e,c),o)),l)}return new RegExp(e,o)}function MKe(n,e,t,i){if(i<0)return n;if(i<e.length)return e[i];if(i>=100){i=i-100;const s=t.split(\".\");if(s.unshift(t),i<s.length)return s[i]}return null}function PKe(n,e,t,i){let s=-1,o=t,r=t.match(/^\\$(([sS]?)(\\d\\d?)|#)(.*)$/);r&&(r[3]&&(s=parseInt(r[3]),r[2]&&(s=s+100)),o=r[4]);let a=\"~\",l=o;!o||o.length===0?(a=\"!=\",l=\"\"):/^\\w*$/.test(l)?a=\"==\":(r=o.match(/^(@|!@|~|!~|==|!=)(.*)$/),r&&(a=r[1],l=r[2]));let c;if((a===\"~\"||a===\"!~\")&&/^(\\w|\\|)*$/.test(l)){const d=Dee(l.split(\"|\"),n.ignoreCase);c=function(u){return a===\"~\"?d(u):!d(u)}}else if(a===\"@\"||a===\"!@\"){const d=n[l];if(!d)throw Ln(n,\"the @ match target '\"+l+\"' is not defined, in rule: \"+e);if(!AKe(function(h){return typeof h==\"string\"},d))throw Ln(n,\"the @ match target '\"+l+\"' must be an array of strings, in rule: \"+e);const u=Dee(d,n.ignoreCase);c=function(h){return a===\"@\"?u(h):!u(h)}}else if(a===\"~\"||a===\"!~\")if(l.indexOf(\"$\")<0){const d=R6(n,\"^\"+l+\"$\",!1);c=function(u){return a===\"~\"?d.test(u):!d.test(u)}}else c=function(d,u,h,f){return R6(n,\"^\"+Ap(n,l,u,h,f)+\"$\",!1).test(d)};else if(l.indexOf(\"$\")<0){const d=vg(n,l);c=function(u){return a===\"==\"?u===d:u!==d}}else{const d=vg(n,l);c=function(u,h,f,g,p){const _=Ap(n,d,h,f,g);return a===\"==\"?u===_:u!==_}}return s===-1?{name:t,value:i,test:function(d,u,h,f){return c(d,d,u,h,f)}}:{name:t,value:i,test:function(d,u,h,f){const g=MKe(d,u,h,s);return c(g||\"\",d,u,h,f)}}}function M6(n,e,t){if(t){if(typeof t==\"string\")return t;if(t.token||t.token===\"\"){if(typeof t.token!=\"string\")throw Ln(n,\"a 'token' attribute must be of type string, in rule: \"+e);{const i={token:t.token};if(t.token.indexOf(\"$\")>=0&&(i.tokenSubst=!0),typeof t.bracket==\"string\")if(t.bracket===\"@open\")i.bracket=1;else if(t.bracket===\"@close\")i.bracket=-1;else throw Ln(n,\"a 'bracket' attribute must be either '@open' or '@close', in rule: \"+e);if(t.next){if(typeof t.next!=\"string\")throw Ln(n,\"the next state must be a string value in rule: \"+e);{let s=t.next;if(!/^(@pop|@push|@popall)$/.test(s)&&(s[0]===\"@\"&&(s=s.substr(1)),s.indexOf(\"$\")<0&&!q4e(n,Ap(n,s,\"\",[],\"\"))))throw Ln(n,\"the next state '\"+t.next+\"' is not defined in rule: \"+e);i.next=s}}return typeof t.goBack==\"number\"&&(i.goBack=t.goBack),typeof t.switchTo==\"string\"&&(i.switchTo=t.switchTo),typeof t.log==\"string\"&&(i.log=t.log),typeof t.nextEmbedded==\"string\"&&(i.nextEmbedded=t.nextEmbedded,n.usesEmbedded=!0),i}}else if(Array.isArray(t)){const i=[];for(let s=0,o=t.length;s<o;s++)i[s]=M6(n,e,t[s]);return{group:i}}else if(t.cases){const i=[];for(const o in t.cases)if(t.cases.hasOwnProperty(o)){const r=M6(n,e,t.cases[o]);o===\"@default\"||o===\"@\"||o===\"\"?i.push({test:void 0,value:r,name:o}):o===\"@eos\"?i.push({test:function(a,l,c,d){return d},value:r,name:o}):i.push(PKe(n,e,o,r))}const s=n.defaultToken;return{test:function(o,r,a,l){for(const c of i)if(!c.test||c.test(o,r,a,l))return c.value;return s}}}else throw Ln(n,\"an action must be a string, an object with a 'token' or 'cases' attribute, or an array of actions; in rule: \"+e)}else return{token:\"\"}}class OKe{constructor(e){this.regex=new RegExp(\"\"),this.action={token:\"\"},this.matchOnlyAtLineStart=!1,this.name=\"\",this.name=e}setRegex(e,t){let i;if(typeof t==\"string\")i=t;else if(t instanceof RegExp)i=t.source;else throw Ln(e,\"rules must start with a match string or regular expression: \"+this.name);this.matchOnlyAtLineStart=i.length>0&&i[0]===\"^\",this.name=this.name+\": \"+i,this.regex=R6(e,\"^(?:\"+(this.matchOnlyAtLineStart?i.substr(1):i)+\")\",!0)}setAction(e,t){this.action=M6(e,this.name,t)}resolveRegex(e){return this.regex instanceof RegExp?this.regex:this.regex(e)}}function Que(n,e){if(!e||typeof e!=\"object\")throw new Error(\"Monarch: expecting a language definition object\");const t={};t.languageId=n,t.includeLF=pT(e.includeLF,!1),t.noThrow=!1,t.maxStack=100,t.start=typeof e.start==\"string\"?e.start:null,t.ignoreCase=pT(e.ignoreCase,!1),t.unicode=pT(e.unicode,!1),t.tokenPostfix=kee(e.tokenPostfix,\".\"+t.languageId),t.defaultToken=kee(e.defaultToken,\"source\"),t.usesEmbedded=!1;const i=e;i.languageId=n,i.includeLF=t.includeLF,i.ignoreCase=t.ignoreCase,i.unicode=t.unicode,i.noThrow=t.noThrow,i.usesEmbedded=t.usesEmbedded,i.stateNames=e.tokenizer,i.defaultToken=t.defaultToken;function s(r,a,l){for(const c of l){let d=c.include;if(d){if(typeof d!=\"string\")throw Ln(t,\"an 'include' attribute must be a string at: \"+r);if(d[0]===\"@\"&&(d=d.substr(1)),!e.tokenizer[d])throw Ln(t,\"include target '\"+d+\"' is not defined at: \"+r);s(r+\".\"+d,a,e.tokenizer[d])}else{const u=new OKe(r);if(Array.isArray(c)&&c.length>=1&&c.length<=3)if(u.setRegex(i,c[0]),c.length>=3)if(typeof c[1]==\"string\")u.setAction(i,{token:c[1],next:c[2]});else if(typeof c[1]==\"object\"){const h=c[1];h.next=c[2],u.setAction(i,h)}else throw Ln(t,\"a next state as the last element of a rule can only be given if the action is either an object or a string, at: \"+r);else u.setAction(i,c[1]);else{if(!c.regex)throw Ln(t,\"a rule must either be an array, or an object with a 'regex' or 'include' field at: \"+r);c.name&&typeof c.name==\"string\"&&(u.name=c.name),c.matchOnlyAtStart&&(u.matchOnlyAtLineStart=pT(c.matchOnlyAtLineStart,!1)),u.setRegex(i,c.regex),u.setAction(i,c.action)}a.push(u)}}}if(!e.tokenizer||typeof e.tokenizer!=\"object\")throw Ln(t,\"a language definition must define the 'tokenizer' attribute as an object\");t.tokenizer=[];for(const r in e.tokenizer)if(e.tokenizer.hasOwnProperty(r)){t.start||(t.start=r);const a=e.tokenizer[r];t.tokenizer[r]=new Array,s(\"tokenizer.\"+r,t.tokenizer[r],a)}if(t.usesEmbedded=i.usesEmbedded,e.brackets){if(!Array.isArray(e.brackets))throw Ln(t,\"the 'brackets' attribute must be defined as an array\")}else e.brackets=[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"}];const o=[];for(const r of e.brackets){let a=r;if(a&&Array.isArray(a)&&a.length===3&&(a={token:a[2],open:a[0],close:a[1]}),a.open===a.close)throw Ln(t,\"open and close brackets in a 'brackets' attribute must be different: \"+a.open+`\n hint: use the 'bracket' attribute if matching on equal brackets is required.`);if(typeof a.open==\"string\"&&typeof a.token==\"string\"&&typeof a.close==\"string\")o.push({token:a.token+t.tokenPostfix,open:vg(t,a.open),close:vg(t,a.close)});else throw Ln(t,\"every element in the 'brackets' array must be a '{open,close,token}' object or array\")}return t.brackets=o,t.noThrow=!0,t}function FKe(n){RC.registerLanguage(n)}function BKe(){let n=[];return n=n.concat(RC.getLanguages()),n}function WKe(n){return St.get(An).languageIdCodec.encodeLanguageId(n)}function HKe(n,e){return St.withServices(()=>{const i=St.get(An).onDidRequestRichLanguageFeatures(s=>{s===n&&(i.dispose(),e())});return i})}function VKe(n,e){return St.withServices(()=>{const i=St.get(An).onDidRequestBasicLanguageFeatures(s=>{s===n&&(i.dispose(),e())});return i})}function zKe(n,e){if(!St.get(An).isRegisteredLanguageId(n))throw new Error(`Cannot set configuration for unknown language ${n}`);return St.get(gn).register(n,e,100)}class $Ke{constructor(e,t){this._languageId=e,this._actual=t}dispose(){}getInitialState(){return this._actual.getInitialState()}tokenize(e,t,i){if(typeof this._actual.tokenize==\"function\")return lk.adaptTokenize(this._languageId,this._actual,e,i);throw new Error(\"Not supported!\")}tokenizeEncoded(e,t,i){const s=this._actual.tokenizeEncoded(e,i);return new oM(s.tokens,s.endState)}}class lk{constructor(e,t,i,s){this._languageId=e,this._actual=t,this._languageService=i,this._standaloneThemeService=s}dispose(){}getInitialState(){return this._actual.getInitialState()}static _toClassicTokens(e,t){const i=[];let s=0;for(let o=0,r=e.length;o<r;o++){const a=e[o];let l=a.startIndex;o===0?l=0:l<s&&(l=s),i[o]=new oL(l,a.scopes,t),s=l}return i}static adaptTokenize(e,t,i,s){const o=t.tokenize(i,s),r=lk._toClassicTokens(o.tokens,e);let a;return o.endState.equals(s)?a=s:a=o.endState,new $V(r,a)}tokenize(e,t,i){return lk.adaptTokenize(this._languageId,this._actual,e,i)}_toBinaryTokens(e,t){const i=e.encodeLanguageId(this._languageId),s=this._standaloneThemeService.getColorTheme().tokenTheme,o=[];let r=0,a=0;for(let c=0,d=t.length;c<d;c++){const u=t[c],h=s.match(i,u.scopes)|1024;if(r>0&&o[r-1]===h)continue;let f=u.startIndex;c===0?f=0:f<a&&(f=a),o[r++]=f,o[r++]=h,a=f}const l=new Uint32Array(r);for(let c=0;c<r;c++)l[c]=o[c];return l}tokenizeEncoded(e,t,i){const s=this._actual.tokenize(e,i),o=this._toBinaryTokens(this._languageService.languageIdCodec,s.tokens);let r;return s.endState.equals(i)?r=i:r=s.endState,new oM(o,r)}}function UKe(n){return typeof n.getInitialState==\"function\"}function jKe(n){return\"tokenizeEncoded\"in n}function Jue(n){return n&&typeof n.then==\"function\"}function KKe(n){const e=St.get(Tl);if(n){const t=[null];for(let i=1,s=n.length;i<s;i++)t[i]=le.fromHex(n[i]);e.setColorMapOverride(t)}else e.setColorMapOverride(null)}function ehe(n,e){return jKe(e)?new $Ke(n,e):new lk(n,e,St.get(An),St.get(Tl))}function eU(n,e){const t=new aRe(async()=>{const i=await Promise.resolve(e.create());return i?UKe(i)?ehe(n,i):new yL(St.get(An),St.get(Tl),n,Que(n,i),St.get(qt)):null});return Zn.registerFactory(n,t)}function qKe(n,e){if(!St.get(An).isRegisteredLanguageId(n))throw new Error(`Cannot set tokens provider for unknown language ${n}`);return Jue(e)?eU(n,{create:()=>e}):Zn.register(n,ehe(n,e))}function GKe(n,e){const t=i=>new yL(St.get(An),St.get(Tl),n,Que(n,i),St.get(qt));return Jue(e)?eU(n,{create:()=>e}):Zn.register(n,t(e))}function ZKe(n,e){return St.get(Xe).referenceProvider.register(n,e)}function YKe(n,e){return St.get(Xe).renameProvider.register(n,e)}function XKe(n,e){return St.get(Xe).newSymbolNamesProvider.register(n,e)}function QKe(n,e){return St.get(Xe).signatureHelpProvider.register(n,e)}function JKe(n,e){return St.get(Xe).hoverProvider.register(n,{provideHover:async(i,s,o,r)=>{const a=i.getWordAtPosition(s);return Promise.resolve(e.provideHover(i,s,o,r)).then(l=>{if(l)return!l.range&&a&&(l.range=new A(s.lineNumber,a.startColumn,s.lineNumber,a.endColumn)),l.range||(l.range=new A(s.lineNumber,s.column,s.lineNumber,s.column)),l})}})}function eqe(n,e){return St.get(Xe).documentSymbolProvider.register(n,e)}function tqe(n,e){return St.get(Xe).documentHighlightProvider.register(n,e)}function iqe(n,e){return St.get(Xe).linkedEditingRangeProvider.register(n,e)}function nqe(n,e){return St.get(Xe).definitionProvider.register(n,e)}function sqe(n,e){return St.get(Xe).implementationProvider.register(n,e)}function oqe(n,e){return St.get(Xe).typeDefinitionProvider.register(n,e)}function rqe(n,e){return St.get(Xe).codeLensProvider.register(n,e)}function aqe(n,e,t){return St.get(Xe).codeActionProvider.register(n,{providedCodeActionKinds:t==null?void 0:t.providedCodeActionKinds,documentation:t==null?void 0:t.documentation,provideCodeActions:(s,o,r,a)=>{const c=St.get(Uh).read({resource:s.uri}).filter(d=>A.areIntersectingOrTouching(d,o));return e.provideCodeActions(s,o,{markers:c,only:r.only,trigger:r.trigger},a)},resolveCodeAction:e.resolveCodeAction})}function lqe(n,e){return St.get(Xe).documentFormattingEditProvider.register(n,e)}function cqe(n,e){return St.get(Xe).documentRangeFormattingEditProvider.register(n,e)}function dqe(n,e){return St.get(Xe).onTypeFormattingEditProvider.register(n,e)}function uqe(n,e){return St.get(Xe).linkProvider.register(n,e)}function hqe(n,e){return St.get(Xe).completionProvider.register(n,e)}function fqe(n,e){return St.get(Xe).colorProvider.register(n,e)}function gqe(n,e){return St.get(Xe).foldingRangeProvider.register(n,e)}function pqe(n,e){return St.get(Xe).declarationProvider.register(n,e)}function mqe(n,e){return St.get(Xe).selectionRangeProvider.register(n,e)}function _qe(n,e){return St.get(Xe).documentSemanticTokensProvider.register(n,e)}function vqe(n,e){return St.get(Xe).documentRangeSemanticTokensProvider.register(n,e)}function bqe(n,e){return St.get(Xe).inlineCompletionsProvider.register(n,e)}function Cqe(n,e){return St.get(Xe).inlineEditProvider.register(n,e)}function wqe(n,e){return St.get(Xe).inlayHintsProvider.register(n,e)}function yqe(){return{register:FKe,getLanguages:BKe,onLanguage:HKe,onLanguageEncountered:VKe,getEncodedLanguageId:WKe,setLanguageConfiguration:zKe,setColorMap:KKe,registerTokensProviderFactory:eU,setTokensProvider:qKe,setMonarchTokensProvider:GKe,registerReferenceProvider:ZKe,registerRenameProvider:YKe,registerNewSymbolNameProvider:XKe,registerCompletionItemProvider:hqe,registerSignatureHelpProvider:QKe,registerHoverProvider:JKe,registerDocumentSymbolProvider:eqe,registerDocumentHighlightProvider:tqe,registerLinkedEditingRangeProvider:iqe,registerDefinitionProvider:nqe,registerImplementationProvider:sqe,registerTypeDefinitionProvider:oqe,registerCodeLensProvider:rqe,registerCodeActionProvider:aqe,registerDocumentFormattingEditProvider:lqe,registerDocumentRangeFormattingEditProvider:cqe,registerOnTypeFormattingEditProvider:dqe,registerLinkProvider:uqe,registerColorProvider:fqe,registerFoldingRangeProvider:gqe,registerDeclarationProvider:pqe,registerSelectionRangeProvider:mqe,registerDocumentSemanticTokensProvider:_qe,registerDocumentRangeSemanticTokensProvider:vqe,registerInlineCompletionsProvider:bqe,registerInlineEditProvider:Cqe,registerInlayHintsProvider:wqe,DocumentHighlightKind:p7,CompletionItemKind:c7,CompletionItemTag:d7,CompletionItemInsertTextRule:l7,SymbolKind:K7,SymbolTag:q7,IndentAction:y7,CompletionTriggerKind:u7,SignatureHelpTriggerKind:j7,InlayHintKind:x7,InlineCompletionTriggerKind:L7,InlineEditTriggerKind:k7,CodeActionTriggerType:a7,NewSymbolNameTag:R7,NewSymbolNameTriggerKind:M7,PartialAcceptTriggerKind:F7,HoverVerbosityAction:w7,FoldingRangeKind:Nr,SelectedSuggestionInfo:gae}}const tU=Jt(\"IEditorCancelService\"),the=new He(\"cancellableOperation\",!1,v(\"cancellableOperation\",\"Whether the editor runs a cancellable operation, e.g. like 'Peek References'\"));ai(tU,class{constructor(){this._tokens=new WeakMap}add(n,e){let t=this._tokens.get(n);t||(t=n.invokeWithinContext(s=>{const o=the.bindTo(s.get(Ct)),r=new Tr;return{key:o,tokens:r}}),this._tokens.set(n,t));let i;return t.key.set(!0),i=t.tokens.push(e),()=>{i&&(i(),t.key.set(!t.tokens.isEmpty()),i=void 0)}}cancel(n){const e=this._tokens.get(n);if(!e)return;const t=e.tokens.pop();t&&(t.cancel(),e.key.set(!e.tokens.isEmpty()))}},1);class Sqe extends $n{constructor(e,t){super(t),this.editor=e,this._unregister=e.invokeWithinContext(i=>i.get(tU).add(e,this))}dispose(){this._unregister(),super.dispose()}}Fe(new class extends Us{constructor(){super({id:\"editor.cancelOperation\",kbOpts:{weight:100,primary:9},precondition:the})}runEditorCommand(n,e){n.get(tU).cancel(e)}});let ihe=class P6{constructor(e,t){if(this.flags=t,this.flags&1){const i=e.getModel();this.modelVersionId=i?l0(\"{0}#{1}\",i.uri.toString(),i.getVersionId()):null}else this.modelVersionId=null;this.flags&4?this.position=e.getPosition():this.position=null,this.flags&2?this.selection=e.getSelection():this.selection=null,this.flags&8?(this.scrollLeft=e.getScrollLeft(),this.scrollTop=e.getScrollTop()):(this.scrollLeft=-1,this.scrollTop=-1)}_equals(e){if(!(e instanceof P6))return!1;const t=e;return!(this.modelVersionId!==t.modelVersionId||this.scrollLeft!==t.scrollLeft||this.scrollTop!==t.scrollTop||!this.position&&t.position||this.position&&!t.position||this.position&&t.position&&!this.position.equals(t.position)||!this.selection&&t.selection||this.selection&&!t.selection||this.selection&&t.selection&&!this.selection.equalsRange(t.selection))}validate(e){return this._equals(new P6(e,this.flags))}};class Km extends Sqe{constructor(e,t,i,s){super(e,s),this._listener=new be,t&4&&this._listener.add(e.onDidChangeCursorPosition(o=>{(!i||!A.containsPosition(i,o.position))&&this.cancel()})),t&2&&this._listener.add(e.onDidChangeCursorSelection(o=>{(!i||!A.containsRange(i,o.selection))&&this.cancel()})),t&8&&this._listener.add(e.onDidScrollChange(o=>this.cancel())),t&1&&(this._listener.add(e.onDidChangeModel(o=>this.cancel())),this._listener.add(e.onDidChangeModelContent(o=>this.cancel())))}dispose(){this._listener.dispose(),super.dispose()}}class iU extends $n{constructor(e,t){super(t),this._listener=e.onDidChangeContent(()=>this.cancel())}dispose(){this._listener.dispose(),super.dispose()}}function Ph(n){return n&&typeof n.getEditorType==\"function\"?n.getEditorType()===mD.ICodeEditor:!1}function nU(n){return n&&typeof n.getEditorType==\"function\"?n.getEditorType()===mD.IDiffEditor:!1}function xqe(n){return!!n&&typeof n==\"object\"&&typeof n.onDidChangeActiveEditor==\"function\"}function nhe(n){return Ph(n)?n:nU(n)?n.getModifiedEditor():xqe(n)&&Ph(n.activeCodeEditor)?n.activeCodeEditor:null}class ow{static _handleEolEdits(e,t){let i;const s=[];for(const o of t)typeof o.eol==\"number\"&&(i=o.eol),o.range&&typeof o.text==\"string\"&&s.push(o);return typeof i==\"number\"&&e.hasModel()&&e.getModel().pushEOL(i),s}static _isFullModelReplaceEdit(e,t){if(!e.hasModel())return!1;const i=e.getModel(),s=i.validateRange(t.range);return i.getFullModelRange().equalsRange(s)}static execute(e,t,i){i&&e.pushUndoStop();const s=uu.capture(e),o=ow._handleEolEdits(e,t);o.length===1&&ow._isFullModelReplaceEdit(e,o[0])?e.executeEdits(\"formatEditsCommand\",o.map(r=>Mn.replace(A.lift(r.range),r.text))):e.executeEdits(\"formatEditsCommand\",o.map(r=>Mn.replaceMove(A.lift(r.range),r.text))),i&&e.pushUndoStop(),s.restoreRelativeVerticalPositionOfCursor(e)}}class Iee{constructor(e){this.value=e,this._lower=e.toLowerCase()}static toKey(e){return typeof e==\"string\"?e.toLowerCase():e._lower}}class Lqe{constructor(e){if(this._set=new Set,e)for(const t of e)this.add(t)}add(e){this._set.add(Iee.toKey(e))}has(e){return this._set.has(Iee.toKey(e))}}function she(n,e,t){const i=[],s=new Lqe,o=n.ordered(t);for(const a of o)i.push(a),a.extensionId&&s.add(a.extensionId);const r=e.ordered(t);for(const a of r){if(a.extensionId){if(s.has(a.extensionId))continue;s.add(a.extensionId)}i.push({displayName:a.displayName,extensionId:a.extensionId,provideDocumentFormattingEdits(l,c,d){return a.provideDocumentRangeFormattingEdits(l,l.getFullModelRange(),c,d)}})}return i}class x0{static setFormatterSelector(e){return{dispose:x0._selectors.unshift(e)}}static async select(e,t,i,s){if(e.length===0)return;const o=oi.first(x0._selectors);if(o)return await o(e,t,i,s)}}x0._selectors=new Tr;async function ohe(n,e,t,i,s,o,r){const a=n.get(ht),{documentRangeFormattingEditProvider:l}=n.get(Xe),c=Ph(e)?e.getModel():e,d=l.ordered(c),u=await x0.select(d,c,i,2);u&&(s.report(u),await a.invokeFunction(kqe,u,e,t,o,r))}async function kqe(n,e,t,i,s,o){var r,a;const l=n.get(bc),c=n.get(er),d=n.get(v_);let u,h;Ph(t)?(u=t.getModel(),h=new Km(t,5,void 0,s)):(u=t,h=new iU(t,s));const f=[];let g=0;for(const y of AV(i).sort(A.compareRangesUsingStarts))g>0&&A.areIntersectingOrTouching(f[g-1],y)?f[g-1]=A.fromPositions(f[g-1].getStartPosition(),y.getEndPosition()):g=f.push(y);const p=async y=>{var S,x;c.trace(\"[format][provideDocumentRangeFormattingEdits] (request)\",(S=e.extensionId)===null||S===void 0?void 0:S.value,y);const k=await e.provideDocumentRangeFormattingEdits(u,y,u.getFormattingOptions(),h.token)||[];return c.trace(\"[format][provideDocumentRangeFormattingEdits] (response)\",(x=e.extensionId)===null||x===void 0?void 0:x.value,k),k},_=(y,S)=>{if(!y.length||!S.length)return!1;const x=y.reduce((k,D)=>A.plusRange(k,D.range),y[0].range);if(!S.some(k=>A.intersectRanges(x,k.range)))return!1;for(const k of y)for(const D of S)if(A.intersectRanges(k.range,D.range))return!0;return!1},b=[],w=[];try{if(typeof e.provideDocumentRangesFormattingEdits==\"function\"){c.trace(\"[format][provideDocumentRangeFormattingEdits] (request)\",(r=e.extensionId)===null||r===void 0?void 0:r.value,f);const y=await e.provideDocumentRangesFormattingEdits(u,f,u.getFormattingOptions(),h.token)||[];c.trace(\"[format][provideDocumentRangeFormattingEdits] (response)\",(a=e.extensionId)===null||a===void 0?void 0:a.value,y),w.push(y)}else{for(const y of f){if(h.token.isCancellationRequested)return!0;w.push(await p(y))}for(let y=0;y<f.length;++y)for(let S=y+1;S<f.length;++S){if(h.token.isCancellationRequested)return!0;if(_(w[y],w[S])){const x=A.plusRange(f[y],f[S]),k=await p(x);f.splice(S,1),f.splice(y,1),f.push(x),w.splice(S,1),w.splice(y,1),w.push(k),y=0,S=0}}}for(const y of w){if(h.token.isCancellationRequested)return!0;const S=await l.computeMoreMinimalEdits(u.uri,y);S&&b.push(...S)}}finally{h.dispose()}if(b.length===0)return!1;if(Ph(t))ow.execute(t,b,!0),t.revealPositionInCenterIfOutsideViewport(t.getPosition(),1);else{const[{range:y}]=b,S=new it(y.startLineNumber,y.startColumn,y.endLineNumber,y.endColumn);u.pushEditOperations([S],b.map(x=>({text:x.text,range:A.lift(x.range),forceMoveMarkers:!0})),x=>{for(const{range:k}of x)if(A.areIntersectingOrTouching(k,S))return[new it(k.startLineNumber,k.startColumn,k.endLineNumber,k.endColumn)];return null})}return d.playSignal(At.format,{userGesture:o}),!0}async function Dqe(n,e,t,i,s,o){const r=n.get(ht),a=n.get(Xe),l=Ph(e)?e.getModel():e,c=she(a.documentFormattingEditProvider,a.documentRangeFormattingEditProvider,l),d=await x0.select(c,l,t,1);d&&(i.report(d),await r.invokeFunction(Iqe,d,e,t,s,o))}async function Iqe(n,e,t,i,s,o){const r=n.get(bc),a=n.get(v_);let l,c;Ph(t)?(l=t.getModel(),c=new Km(t,5,void 0,s)):(l=t,c=new iU(t,s));let d;try{const u=await e.provideDocumentFormattingEdits(l,l.getFormattingOptions(),c.token);if(d=await r.computeMoreMinimalEdits(l.uri,u),c.token.isCancellationRequested)return!0}finally{c.dispose()}if(!d||d.length===0)return!1;if(Ph(t))ow.execute(t,d,i!==2),i!==2&&t.revealPositionInCenterIfOutsideViewport(t.getPosition(),1);else{const[{range:u}]=d,h=new it(u.startLineNumber,u.startColumn,u.endLineNumber,u.endColumn);l.pushEditOperations([h],d.map(f=>({text:f.text,range:A.lift(f.range),forceMoveMarkers:!0})),f=>{for(const{range:g}of f)if(A.areIntersectingOrTouching(g,h))return[new it(g.startLineNumber,g.startColumn,g.endLineNumber,g.endColumn)];return null})}return a.playSignal(At.format,{userGesture:o}),!0}async function Eqe(n,e,t,i,s,o){const r=e.documentRangeFormattingEditProvider.ordered(t);for(const a of r){const l=await Promise.resolve(a.provideDocumentRangeFormattingEdits(t,i,s,o)).catch(as);if(Zo(l))return await n.computeMoreMinimalEdits(t.uri,l)}}async function Tqe(n,e,t,i,s){const o=she(e.documentFormattingEditProvider,e.documentRangeFormattingEditProvider,t);for(const r of o){const a=await Promise.resolve(r.provideDocumentFormattingEdits(t,i,s)).catch(as);if(Zo(a))return await n.computeMoreMinimalEdits(t.uri,a)}}function rhe(n,e,t,i,s,o,r){const a=e.onTypeFormattingEditProvider.ordered(t);return a.length===0||a[0].autoFormatTriggerCharacters.indexOf(s)<0?Promise.resolve(void 0):Promise.resolve(a[0].provideOnTypeFormattingEdits(t,i,s,o,r)).catch(as).then(l=>n.computeMoreMinimalEdits(t.uri,l))}ri.registerCommand(\"_executeFormatRangeProvider\",async function(n,...e){const[t,i,s]=e;mi(pt.isUri(t)),mi(A.isIRange(i));const o=n.get(fa),r=n.get(bc),a=n.get(Xe),l=await o.createModelReference(t);try{return Eqe(r,a,l.object.textEditorModel,A.lift(i),s,Qt.None)}finally{l.dispose()}});ri.registerCommand(\"_executeFormatDocumentProvider\",async function(n,...e){const[t,i]=e;mi(pt.isUri(t));const s=n.get(fa),o=n.get(bc),r=n.get(Xe),a=await s.createModelReference(t);try{return Tqe(o,r,a.object.textEditorModel,i,Qt.None)}finally{a.dispose()}});ri.registerCommand(\"_executeFormatOnTypeProvider\",async function(n,...e){const[t,i,s,o]=e;mi(pt.isUri(t)),mi(ee.isIPosition(i)),mi(typeof s==\"string\");const r=n.get(fa),a=n.get(bc),l=n.get(Xe),c=await r.createModelReference(t);try{return rhe(a,l,c.object.textEditorModel,ee.lift(i),s,o,Qt.None)}finally{c.dispose()}});gu.wrappingIndent.defaultValue=0;gu.glyphMargin.defaultValue=!1;gu.autoIndent.defaultValue=3;gu.overviewRulerLanes.defaultValue=2;x0.setFormatterSelector((n,e,t)=>Promise.resolve(n[0]));const jr=pae();jr.editor=NKe();jr.languages=yqe();const ahe=jr.CancellationTokenSource,lhe=jr.Emitter,che=jr.KeyCode,dhe=jr.KeyMod,uhe=jr.Position,hhe=jr.Range,fhe=jr.Selection,ghe=jr.SelectionDirection,nR=jr.MarkerSeverity,phe=jr.MarkerTag,mhe=jr.Uri,_he=jr.Token,sU=jr.editor,zd=jr.languages,Z5=globalThis.MonacoEnvironment;(Z5!=null&&Z5.globalAPI||typeof define==\"function\"&&define.amd)&&(globalThis.monaco=jr);typeof globalThis.require<\"u\"&&typeof globalThis.require.config==\"function\"&&globalThis.require.config({ignoreDuplicateModules:[\"vscode-languageserver-types\",\"vscode-languageserver-types/main\",\"vscode-languageserver-textdocument\",\"vscode-languageserver-textdocument/main\",\"vscode-nls\",\"vscode-nls/vscode-nls\",\"jsonc-parser\",\"jsonc-parser/main\",\"vscode-uri\",\"vscode-uri/index\",\"vs/basic-languages/typescript/typescript\"]});const HD=Object.freeze(Object.defineProperty({__proto__:null,CancellationTokenSource:ahe,Emitter:lhe,KeyCode:che,KeyMod:dhe,MarkerSeverity:nR,MarkerTag:phe,Position:uhe,Range:hhe,Selection:fhe,SelectionDirection:ghe,Token:_he,Uri:mhe,editor:sU,languages:zd},Symbol.toStringTag,{value:\"Module\"}));/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var Nqe=Object.defineProperty,Aqe=Object.getOwnPropertyDescriptor,Rqe=Object.getOwnPropertyNames,Mqe=Object.prototype.hasOwnProperty,Pqe=(n,e,t,i)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let s of Rqe(e))!Mqe.call(n,s)&&s!==t&&Nqe(n,s,{get:()=>e[s],enumerable:!(i=Aqe(e,s))||i.enumerable});return n},Oqe=(n,e,t)=>(Pqe(n,e,\"default\"),t),PS={};Oqe(PS,HD);var vhe={},Y5={},Fqe=class bhe{static getOrCreate(e){return Y5[e]||(Y5[e]=new bhe(e)),Y5[e]}constructor(e){this._languageId=e,this._loadingTriggered=!1,this._lazyLoadPromise=new Promise((t,i)=>{this._lazyLoadPromiseResolve=t,this._lazyLoadPromiseReject=i})}load(){return this._loadingTriggered||(this._loadingTriggered=!0,vhe[this._languageId].loader().then(e=>this._lazyLoadPromiseResolve(e),e=>this._lazyLoadPromiseReject(e))),this._lazyLoadPromise}};function ft(n){const e=n.id;vhe[e]=n,PS.languages.register(n);const t=Fqe.getOrCreate(e);PS.languages.registerTokensProviderFactory(e,{create:async()=>(await t.load()).language}),PS.languages.onLanguageEncountered(e,async()=>{const i=await t.load();PS.languages.setLanguageConfiguration(e,i.conf)})}ft({id:\"abap\",extensions:[\".abap\"],aliases:[\"abap\",\"ABAP\"],loader:()=>je(()=>import(\"./DRC6TkPh.js\"),[],import.meta.url)});ft({id:\"apex\",extensions:[\".cls\"],aliases:[\"Apex\",\"apex\"],mimetypes:[\"text/x-apex-source\",\"text/x-apex\"],loader:()=>je(()=>import(\"./BuapDI9Y.js\"),[],import.meta.url)});ft({id:\"azcli\",extensions:[\".azcli\"],aliases:[\"Azure CLI\",\"azcli\"],loader:()=>je(()=>import(\"./BypH-vXm.js\"),[],import.meta.url)});ft({id:\"bat\",extensions:[\".bat\",\".cmd\"],aliases:[\"Batch\",\"bat\"],loader:()=>je(()=>import(\"./BY6pwuIY.js\"),[],import.meta.url)});ft({id:\"bicep\",extensions:[\".bicep\"],aliases:[\"Bicep\"],loader:()=>je(()=>import(\"./gRuQeaLk.js\"),[],import.meta.url)});ft({id:\"cameligo\",extensions:[\".mligo\"],aliases:[\"Cameligo\"],loader:()=>je(()=>import(\"./ul-Lp4lw.js\"),[],import.meta.url)});ft({id:\"clojure\",extensions:[\".clj\",\".cljs\",\".cljc\",\".edn\"],aliases:[\"clojure\",\"Clojure\"],loader:()=>je(()=>import(\"./DeYg-96x.js\"),[],import.meta.url)});ft({id:\"coffeescript\",extensions:[\".coffee\"],aliases:[\"CoffeeScript\",\"coffeescript\",\"coffee\"],mimetypes:[\"text/x-coffeescript\",\"text/coffeescript\"],loader:()=>je(()=>import(\"./CfnpWUYo.js\"),[],import.meta.url)});ft({id:\"c\",extensions:[\".c\",\".h\"],aliases:[\"C\",\"c\"],loader:()=>je(()=>import(\"./C9L3yaDO.js\"),[],import.meta.url)});ft({id:\"cpp\",extensions:[\".cpp\",\".cc\",\".cxx\",\".hpp\",\".hh\",\".hxx\"],aliases:[\"C++\",\"Cpp\",\"cpp\"],loader:()=>je(()=>import(\"./C9L3yaDO.js\"),[],import.meta.url)});ft({id:\"csharp\",extensions:[\".cs\",\".csx\",\".cake\"],aliases:[\"C#\",\"csharp\"],loader:()=>je(()=>import(\"./DWGz5Zuj.js\"),[],import.meta.url)});ft({id:\"csp\",extensions:[\".csp\"],aliases:[\"CSP\",\"csp\"],loader:()=>je(()=>import(\"./DrRCxMg5.js\"),[],import.meta.url)});ft({id:\"css\",extensions:[\".css\"],aliases:[\"CSS\",\"css\"],mimetypes:[\"text/css\"],loader:()=>je(()=>import(\"./BfLuTCmN.js\"),[],import.meta.url)});ft({id:\"cypher\",extensions:[\".cypher\",\".cyp\"],aliases:[\"Cypher\",\"OpenCypher\"],loader:()=>je(()=>import(\"./DoFvH58O.js\"),[],import.meta.url)});ft({id:\"dart\",extensions:[\".dart\"],aliases:[\"Dart\",\"dart\"],mimetypes:[\"text/x-dart-source\",\"text/x-dart\"],loader:()=>je(()=>import(\"./DIovg4uR.js\"),[],import.meta.url)});ft({id:\"dockerfile\",extensions:[\".dockerfile\"],filenames:[\"Dockerfile\"],aliases:[\"Dockerfile\"],loader:()=>je(()=>import(\"./D2PfwrvU.js\"),[],import.meta.url)});ft({id:\"ecl\",extensions:[\".ecl\"],aliases:[\"ECL\",\"Ecl\",\"ecl\"],loader:()=>je(()=>import(\"./C_scCXcs.js\"),[],import.meta.url)});ft({id:\"elixir\",extensions:[\".ex\",\".exs\"],aliases:[\"Elixir\",\"elixir\",\"ex\"],loader:()=>je(()=>import(\"./BRk-K-rg.js\"),[],import.meta.url)});ft({id:\"flow9\",extensions:[\".flow\"],aliases:[\"Flow9\",\"Flow\",\"flow9\",\"flow\"],loader:()=>je(()=>import(\"./DLs3tTet.js\"),[],import.meta.url)});ft({id:\"fsharp\",extensions:[\".fs\",\".fsi\",\".ml\",\".mli\",\".fsx\",\".fsscript\"],aliases:[\"F#\",\"FSharp\",\"fsharp\"],loader:()=>je(()=>import(\"./D0UiDa5C.js\"),[],import.meta.url)});ft({id:\"freemarker2\",extensions:[\".ftl\",\".ftlh\",\".ftlx\"],aliases:[\"FreeMarker2\",\"Apache FreeMarker2\"],loader:()=>je(()=>import(\"./D4aGjE-s.js\"),[],import.meta.url).then(n=>n.TagAutoInterpolationDollar)});ft({id:\"freemarker2.tag-angle.interpolation-dollar\",aliases:[\"FreeMarker2 (Angle/Dollar)\",\"Apache FreeMarker2 (Angle/Dollar)\"],loader:()=>je(()=>import(\"./D4aGjE-s.js\"),[],import.meta.url).then(n=>n.TagAngleInterpolationDollar)});ft({id:\"freemarker2.tag-bracket.interpolation-dollar\",aliases:[\"FreeMarker2 (Bracket/Dollar)\",\"Apache FreeMarker2 (Bracket/Dollar)\"],loader:()=>je(()=>import(\"./D4aGjE-s.js\"),[],import.meta.url).then(n=>n.TagBracketInterpolationDollar)});ft({id:\"freemarker2.tag-angle.interpolation-bracket\",aliases:[\"FreeMarker2 (Angle/Bracket)\",\"Apache FreeMarker2 (Angle/Bracket)\"],loader:()=>je(()=>import(\"./D4aGjE-s.js\"),[],import.meta.url).then(n=>n.TagAngleInterpolationBracket)});ft({id:\"freemarker2.tag-bracket.interpolation-bracket\",aliases:[\"FreeMarker2 (Bracket/Bracket)\",\"Apache FreeMarker2 (Bracket/Bracket)\"],loader:()=>je(()=>import(\"./D4aGjE-s.js\"),[],import.meta.url).then(n=>n.TagBracketInterpolationBracket)});ft({id:\"freemarker2.tag-auto.interpolation-dollar\",aliases:[\"FreeMarker2 (Auto/Dollar)\",\"Apache FreeMarker2 (Auto/Dollar)\"],loader:()=>je(()=>import(\"./D4aGjE-s.js\"),[],import.meta.url).then(n=>n.TagAutoInterpolationDollar)});ft({id:\"freemarker2.tag-auto.interpolation-bracket\",aliases:[\"FreeMarker2 (Auto/Bracket)\",\"Apache FreeMarker2 (Auto/Bracket)\"],loader:()=>je(()=>import(\"./D4aGjE-s.js\"),[],import.meta.url).then(n=>n.TagAutoInterpolationBracket)});ft({id:\"go\",extensions:[\".go\"],aliases:[\"Go\"],loader:()=>je(()=>import(\"./CyVeKkvQ.js\"),[],import.meta.url)});ft({id:\"graphql\",extensions:[\".graphql\",\".gql\"],aliases:[\"GraphQL\",\"graphql\",\"gql\"],mimetypes:[\"application/graphql\"],loader:()=>je(()=>import(\"./BygKL3ZF.js\"),[],import.meta.url)});ft({id:\"handlebars\",extensions:[\".handlebars\",\".hbs\"],aliases:[\"Handlebars\",\"handlebars\",\"hbs\"],mimetypes:[\"text/x-handlebars-template\"],loader:()=>je(()=>import(\"./BPUjjr-i.js\"),[],import.meta.url)});ft({id:\"hcl\",extensions:[\".tf\",\".tfvars\",\".hcl\"],aliases:[\"Terraform\",\"tf\",\"HCL\",\"hcl\"],loader:()=>je(()=>import(\"./D_OY6ada.js\"),[],import.meta.url)});ft({id:\"html\",extensions:[\".html\",\".htm\",\".shtml\",\".xhtml\",\".mdoc\",\".jsp\",\".asp\",\".aspx\",\".jshtm\"],aliases:[\"HTML\",\"htm\",\"html\",\"xhtml\"],mimetypes:[\"text/html\",\"text/x-jshtm\",\"text/template\",\"text/ng-template\"],loader:()=>je(()=>import(\"./Cq2jzwMq.js\"),[],import.meta.url)});ft({id:\"ini\",extensions:[\".ini\",\".properties\",\".gitconfig\"],filenames:[\"config\",\".gitattributes\",\".gitconfig\",\".editorconfig\"],aliases:[\"Ini\",\"ini\"],loader:()=>je(()=>import(\"./BTpWsGps.js\"),[],import.meta.url)});ft({id:\"java\",extensions:[\".java\",\".jav\"],aliases:[\"Java\",\"java\"],mimetypes:[\"text/x-java-source\",\"text/x-java\"],loader:()=>je(()=>import(\"./3TATJI7h.js\"),[],import.meta.url)});ft({id:\"javascript\",extensions:[\".js\",\".es6\",\".jsx\",\".mjs\",\".cjs\"],firstLine:\"^#!.*\\\\bnode\",filenames:[\"jakefile\"],aliases:[\"JavaScript\",\"javascript\",\"js\"],mimetypes:[\"text/javascript\"],loader:()=>je(()=>import(\"./DXXGBMMv.js\"),__vite__mapDeps([65,66]),import.meta.url)});ft({id:\"julia\",extensions:[\".jl\"],aliases:[\"julia\",\"Julia\"],loader:()=>je(()=>import(\"./DDpSJMW6.js\"),[],import.meta.url)});ft({id:\"kotlin\",extensions:[\".kt\",\".kts\"],aliases:[\"Kotlin\",\"kotlin\"],mimetypes:[\"text/x-kotlin-source\",\"text/x-kotlin\"],loader:()=>je(()=>import(\"./DVYH6Lj_.js\"),[],import.meta.url)});ft({id:\"less\",extensions:[\".less\"],aliases:[\"Less\",\"less\"],mimetypes:[\"text/x-less\",\"text/less\"],loader:()=>je(()=>import(\"./CuFlys0T.js\"),[],import.meta.url)});ft({id:\"lexon\",extensions:[\".lex\"],aliases:[\"Lexon\"],loader:()=>je(()=>import(\"./m09vb5r-.js\"),[],import.meta.url)});ft({id:\"lua\",extensions:[\".lua\"],aliases:[\"Lua\",\"lua\"],loader:()=>je(()=>import(\"./D2Z7JJdl.js\"),[],import.meta.url)});ft({id:\"liquid\",extensions:[\".liquid\",\".html.liquid\"],aliases:[\"Liquid\",\"liquid\"],mimetypes:[\"application/liquid\"],loader:()=>je(()=>import(\"./DrqOgyji.js\"),[],import.meta.url)});ft({id:\"m3\",extensions:[\".m3\",\".i3\",\".mg\",\".ig\"],aliases:[\"Modula-3\",\"Modula3\",\"modula3\",\"m3\"],loader:()=>je(()=>import(\"./B2Cf9XSq.js\"),[],import.meta.url)});ft({id:\"markdown\",extensions:[\".md\",\".markdown\",\".mdown\",\".mkdn\",\".mkd\",\".mdwn\",\".mdtxt\",\".mdtext\"],aliases:[\"Markdown\",\"markdown\"],loader:()=>je(()=>import(\"./BXYnMxBe.js\"),[],import.meta.url)});ft({id:\"mdx\",extensions:[\".mdx\"],aliases:[\"MDX\",\"mdx\"],loader:()=>je(()=>import(\"./CoJj_PRq.js\"),[],import.meta.url)});ft({id:\"mips\",extensions:[\".s\"],aliases:[\"MIPS\",\"MIPS-V\"],mimetypes:[\"text/x-mips\",\"text/mips\",\"text/plaintext\"],loader:()=>je(()=>import(\"./Ckkbw-AO.js\"),[],import.meta.url)});ft({id:\"msdax\",extensions:[\".dax\",\".msdax\"],aliases:[\"DAX\",\"MSDAX\"],loader:()=>je(()=>import(\"./B5uW3Zvf.js\"),[],import.meta.url)});ft({id:\"mysql\",extensions:[],aliases:[\"MySQL\",\"mysql\"],loader:()=>je(()=>import(\"./B8ssZoUh.js\"),[],import.meta.url)});ft({id:\"objective-c\",extensions:[\".m\"],aliases:[\"Objective-C\"],loader:()=>je(()=>import(\"./CrrKwR0a.js\"),[],import.meta.url)});ft({id:\"pascal\",extensions:[\".pas\",\".p\",\".pp\"],aliases:[\"Pascal\",\"pas\"],mimetypes:[\"text/x-pascal-source\",\"text/x-pascal\"],loader:()=>je(()=>import(\"./BWBTHuhh.js\"),[],import.meta.url)});ft({id:\"pascaligo\",extensions:[\".ligo\"],aliases:[\"Pascaligo\",\"ligo\"],loader:()=>je(()=>import(\"./BGLI1Hdo.js\"),[],import.meta.url)});ft({id:\"perl\",extensions:[\".pl\",\".pm\"],aliases:[\"Perl\",\"pl\"],loader:()=>je(()=>import(\"./DDrv2Hr-.js\"),[],import.meta.url)});ft({id:\"pgsql\",extensions:[],aliases:[\"PostgreSQL\",\"postgres\",\"pg\",\"postgre\"],loader:()=>je(()=>import(\"./DLPipH_Q.js\"),[],import.meta.url)});ft({id:\"php\",extensions:[\".php\",\".php4\",\".php5\",\".phtml\",\".ctp\"],aliases:[\"PHP\",\"php\"],mimetypes:[\"application/x-php\"],loader:()=>je(()=>import(\"./CTNlIIiR.js\"),[],import.meta.url)});ft({id:\"pla\",extensions:[\".pla\"],loader:()=>je(()=>import(\"./2oJWbEOo.js\"),[],import.meta.url)});ft({id:\"postiats\",extensions:[\".dats\",\".sats\",\".hats\"],aliases:[\"ATS\",\"ATS/Postiats\"],loader:()=>je(()=>import(\"./DOk3G3cc.js\"),[],import.meta.url)});ft({id:\"powerquery\",extensions:[\".pq\",\".pqm\"],aliases:[\"PQ\",\"M\",\"Power Query\",\"Power Query M\"],loader:()=>je(()=>import(\"./Dgyr3wWZ.js\"),[],import.meta.url)});ft({id:\"powershell\",extensions:[\".ps1\",\".psm1\",\".psd1\"],aliases:[\"PowerShell\",\"powershell\",\"ps\",\"ps1\"],loader:()=>je(()=>import(\"./B_i9asfM.js\"),[],import.meta.url)});ft({id:\"proto\",extensions:[\".proto\"],aliases:[\"protobuf\",\"Protocol Buffers\"],loader:()=>je(()=>import(\"./CV9EbfTh.js\"),[],import.meta.url)});ft({id:\"pug\",extensions:[\".jade\",\".pug\"],aliases:[\"Pug\",\"Jade\",\"jade\"],loader:()=>je(()=>import(\"./CCBS_C5_.js\"),[],import.meta.url)});ft({id:\"python\",extensions:[\".py\",\".rpy\",\".pyw\",\".cpy\",\".gyp\",\".gypi\"],aliases:[\"Python\",\"py\"],firstLine:\"^#!/.*\\\\bpython[0-9.-]*\\\\b\",loader:()=>je(()=>import(\"./B2nSH5Xk.js\"),[],import.meta.url)});ft({id:\"qsharp\",extensions:[\".qs\"],aliases:[\"Q#\",\"qsharp\"],loader:()=>je(()=>import(\"./BLuZWbUW.js\"),[],import.meta.url)});ft({id:\"r\",extensions:[\".r\",\".rhistory\",\".rmd\",\".rprofile\",\".rt\"],aliases:[\"R\",\"r\"],loader:()=>je(()=>import(\"./CzF1MCbP.js\"),[],import.meta.url)});ft({id:\"razor\",extensions:[\".cshtml\"],aliases:[\"Razor\",\"razor\"],mimetypes:[\"text/x-cshtml\"],loader:()=>je(()=>import(\"./D94h4QjT.js\"),[],import.meta.url)});ft({id:\"redis\",extensions:[\".redis\"],aliases:[\"redis\"],loader:()=>je(()=>import(\"./C75U4IDy.js\"),[],import.meta.url)});ft({id:\"redshift\",extensions:[],aliases:[\"Redshift\",\"redshift\"],loader:()=>je(()=>import(\"./Bc5xkKR1.js\"),[],import.meta.url)});ft({id:\"restructuredtext\",extensions:[\".rst\"],aliases:[\"reStructuredText\",\"restructuredtext\"],loader:()=>je(()=>import(\"./DmdQbaLT.js\"),[],import.meta.url)});ft({id:\"ruby\",extensions:[\".rb\",\".rbx\",\".rjs\",\".gemspec\",\".pp\"],filenames:[\"rakefile\",\"Gemfile\"],aliases:[\"Ruby\",\"rb\"],loader:()=>je(()=>import(\"./DB0RB20n.js\"),[],import.meta.url)});ft({id:\"rust\",extensions:[\".rs\",\".rlib\"],aliases:[\"Rust\",\"rust\"],loader:()=>je(()=>import(\"./UMmp-gVE.js\"),[],import.meta.url)});ft({id:\"sb\",extensions:[\".sb\"],aliases:[\"Small Basic\",\"sb\"],loader:()=>je(()=>import(\"./DVG02705.js\"),[],import.meta.url)});ft({id:\"scala\",extensions:[\".scala\",\".sc\",\".sbt\"],aliases:[\"Scala\",\"scala\",\"SBT\",\"Sbt\",\"sbt\",\"Dotty\",\"dotty\"],mimetypes:[\"text/x-scala-source\",\"text/x-scala\",\"text/x-sbt\",\"text/x-dotty\"],loader:()=>je(()=>import(\"./DvSxYeG4.js\"),[],import.meta.url)});ft({id:\"scheme\",extensions:[\".scm\",\".ss\",\".sch\",\".rkt\"],aliases:[\"scheme\",\"Scheme\"],loader:()=>je(()=>import(\"./yf5bffbF.js\"),[],import.meta.url)});ft({id:\"scss\",extensions:[\".scss\"],aliases:[\"Sass\",\"sass\",\"scss\"],mimetypes:[\"text/x-scss\",\"text/scss\"],loader:()=>je(()=>import(\"./Bzb7OGdO.js\"),[],import.meta.url)});ft({id:\"shell\",extensions:[\".sh\",\".bash\"],aliases:[\"Shell\",\"sh\"],loader:()=>je(()=>import(\"./FNqbgIOG.js\"),[],import.meta.url)});ft({id:\"sol\",extensions:[\".sol\"],aliases:[\"sol\",\"solidity\",\"Solidity\"],loader:()=>je(()=>import(\"./DyKutqhl.js\"),[],import.meta.url)});ft({id:\"aes\",extensions:[\".aes\"],aliases:[\"aes\",\"sophia\",\"Sophia\"],loader:()=>je(()=>import(\"./B4VqtPa2.js\"),[],import.meta.url)});ft({id:\"sparql\",extensions:[\".rq\"],aliases:[\"sparql\",\"SPARQL\"],loader:()=>je(()=>import(\"./B7alP455.js\"),[],import.meta.url)});ft({id:\"sql\",extensions:[\".sql\"],aliases:[\"SQL\"],loader:()=>je(()=>import(\"./D7lU1fdU.js\"),[],import.meta.url)});ft({id:\"st\",extensions:[\".st\",\".iecst\",\".iecplc\",\".lc3lib\",\".TcPOU\",\".TcDUT\",\".TcGVL\",\".TcIO\"],aliases:[\"StructuredText\",\"scl\",\"stl\"],loader:()=>je(()=>import(\"./VuadG5SK.js\"),[],import.meta.url)});ft({id:\"swift\",aliases:[\"Swift\",\"swift\"],extensions:[\".swift\"],mimetypes:[\"text/swift\"],loader:()=>je(()=>import(\"./BYtUz8ZP.js\"),[],import.meta.url)});ft({id:\"systemverilog\",extensions:[\".sv\",\".svh\"],aliases:[\"SV\",\"sv\",\"SystemVerilog\",\"systemverilog\"],loader:()=>je(()=>import(\"./DOAuugfS.js\"),[],import.meta.url)});ft({id:\"verilog\",extensions:[\".v\",\".vh\"],aliases:[\"V\",\"v\",\"Verilog\",\"verilog\"],loader:()=>je(()=>import(\"./DOAuugfS.js\"),[],import.meta.url)});ft({id:\"tcl\",extensions:[\".tcl\"],aliases:[\"tcl\",\"Tcl\",\"tcltk\",\"TclTk\",\"tcl/tk\",\"Tcl/Tk\"],loader:()=>je(()=>import(\"./CXKOl_mN.js\"),[],import.meta.url)});ft({id:\"twig\",extensions:[\".twig\"],aliases:[\"Twig\",\"twig\"],mimetypes:[\"text/x-twig\"],loader:()=>je(()=>import(\"./D9yiNO04.js\"),[],import.meta.url)});ft({id:\"typescript\",extensions:[\".ts\",\".tsx\",\".cts\",\".mts\"],aliases:[\"TypeScript\",\"ts\",\"typescript\"],mimetypes:[\"text/typescript\"],loader:()=>je(()=>import(\"./DmDlXweU.js\"),[],import.meta.url)});ft({id:\"typespec\",extensions:[\".tsp\"],aliases:[\"TypeSpec\"],loader:()=>je(()=>import(\"./BupSXVCO.js\"),[],import.meta.url)});ft({id:\"vb\",extensions:[\".vb\"],aliases:[\"Visual Basic\",\"vb\"],loader:()=>je(()=>import(\"./ZlaFEk-P.js\"),[],import.meta.url)});ft({id:\"wgsl\",extensions:[\".wgsl\"],aliases:[\"WebGPU Shading Language\",\"WGSL\",\"wgsl\"],loader:()=>je(()=>import(\"./B-lZjTdr.js\"),[],import.meta.url)});ft({id:\"xml\",extensions:[\".xml\",\".xsd\",\".dtd\",\".ascx\",\".csproj\",\".config\",\".props\",\".targets\",\".wxi\",\".wxl\",\".wxs\",\".xaml\",\".svg\",\".svgz\",\".opf\",\".xslt\",\".xsl\"],firstLine:\"(\\\\<\\\\?xml.*)|(\\\\<svg)|(\\\\<\\\\!doctype\\\\s+svg)\",aliases:[\"XML\",\"xml\"],mimetypes:[\"text/xml\",\"application/xml\",\"application/xaml+xml\",\"application/xml-dtd\"],loader:()=>je(()=>import(\"./DcXBrGfk.js\"),[],import.meta.url)});ft({id:\"yaml\",extensions:[\".yaml\",\".yml\"],aliases:[\"YAML\",\"yaml\",\"YML\",\"yml\"],mimetypes:[\"application/x-yaml\",\"text/x-yaml\"],loader:()=>je(()=>import(\"./Cc6zh8Uk.js\"),[],import.meta.url)});/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var Bqe=Object.defineProperty,Wqe=Object.getOwnPropertyDescriptor,Hqe=Object.getOwnPropertyNames,Vqe=Object.prototype.hasOwnProperty,zqe=(n,e,t,i)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let s of Hqe(e))!Vqe.call(n,s)&&s!==t&&Bqe(n,s,{get:()=>e[s],enumerable:!(i=Wqe(e,s))||i.enumerable});return n},$qe=(n,e,t)=>(zqe(n,e,\"default\"),t),Uw={};$qe(Uw,HD);var oU=class{constructor(e,t,i){this._onDidChange=new Uw.Emitter,this._languageId=e,this.setOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this.options}get options(){return this._options}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setDiagnosticsOptions(e){this.setOptions(e)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}},rU={validate:!0,lint:{compatibleVendorPrefixes:\"ignore\",vendorPrefix:\"warning\",duplicateProperties:\"warning\",emptyRules:\"warning\",importStatement:\"ignore\",boxModel:\"ignore\",universalSelector:\"ignore\",zeroUnits:\"ignore\",fontFaceProperties:\"warning\",hexColorLength:\"error\",argumentsInColorFunction:\"error\",unknownProperties:\"warning\",ieHack:\"ignore\",unknownVendorSpecificProperties:\"ignore\",propertyIgnoredDueToDisplay:\"warning\",important:\"ignore\",float:\"ignore\",idSelector:\"ignore\"},data:{useDefaultDataProvider:!0},format:{newlineBetweenSelectors:!0,newlineBetweenRules:!0,spaceAroundSelectorSeparator:!1,braceStyle:\"collapse\",maxPreserveNewLines:void 0,preserveNewLines:!0}},aU={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0,documentFormattingEdits:!0,documentRangeFormattingEdits:!0},Che=new oU(\"css\",rU,aU),whe=new oU(\"scss\",rU,aU),yhe=new oU(\"less\",rU,aU);Uw.languages.css={cssDefaults:Che,lessDefaults:yhe,scssDefaults:whe};function lU(){return je(()=>import(\"./B-k8r3hf.js\"),[],import.meta.url)}Uw.languages.onLanguage(\"less\",()=>{lU().then(n=>n.setupMode(yhe))});Uw.languages.onLanguage(\"scss\",()=>{lU().then(n=>n.setupMode(whe))});Uw.languages.onLanguage(\"css\",()=>{lU().then(n=>n.setupMode(Che))});/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var Uqe=Object.defineProperty,jqe=Object.getOwnPropertyDescriptor,Kqe=Object.getOwnPropertyNames,qqe=Object.prototype.hasOwnProperty,Gqe=(n,e,t,i)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let s of Kqe(e))!qqe.call(n,s)&&s!==t&&Uqe(n,s,{get:()=>e[s],enumerable:!(i=jqe(e,s))||i.enumerable});return n},Zqe=(n,e,t)=>(Gqe(n,e,\"default\"),t),yP={};Zqe(yP,HD);var Yqe=class{constructor(e,t,i){this._onDidChange=new yP.Emitter,this._languageId=e,this.setOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get options(){return this._options}get modeConfiguration(){return this._modeConfiguration}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}},Xqe={tabSize:4,insertSpaces:!1,wrapLineLength:120,unformatted:'default\": \"a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',contentUnformatted:\"pre\",indentInnerHtml:!1,preserveNewLines:!0,maxPreserveNewLines:void 0,indentHandlebars:!1,endWithNewline:!1,extraLiners:\"head, body, /html\",wrapAttributes:\"auto\"},SP={format:Xqe,suggest:{},data:{useDefaultDataProvider:!0}};function xP(n){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:n===Ex,documentFormattingEdits:n===Ex,documentRangeFormattingEdits:n===Ex}}var Ex=\"html\",Eee=\"handlebars\",Tee=\"razor\",She=LP(Ex,SP,xP(Ex)),Qqe=She.defaults,xhe=LP(Eee,SP,xP(Eee)),Jqe=xhe.defaults,Lhe=LP(Tee,SP,xP(Tee)),eGe=Lhe.defaults;yP.languages.html={htmlDefaults:Qqe,razorDefaults:eGe,handlebarDefaults:Jqe,htmlLanguageService:She,handlebarLanguageService:xhe,razorLanguageService:Lhe,registerHTMLLanguageService:LP};function tGe(){return je(()=>import(\"./CZogWebk.js\"),[],import.meta.url)}function LP(n,e=SP,t=xP(n)){const i=new Yqe(n,e,t);let s;const o=yP.languages.onLanguage(n,async()=>{s=(await tGe()).setupMode(i)});return{defaults:i,dispose(){o.dispose(),s==null||s.dispose(),s=void 0}}}/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var iGe=Object.defineProperty,nGe=Object.getOwnPropertyDescriptor,sGe=Object.getOwnPropertyNames,oGe=Object.prototype.hasOwnProperty,rGe=(n,e,t,i)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let s of sGe(e))!oGe.call(n,s)&&s!==t&&iGe(n,s,{get:()=>e[s],enumerable:!(i=nGe(e,s))||i.enumerable});return n},aGe=(n,e,t)=>(rGe(n,e,\"default\"),t),VD={};aGe(VD,HD);var lGe=class{constructor(e,t,i){this._onDidChange=new VD.Emitter,this._languageId=e,this.setDiagnosticsOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}},cGe={validate:!0,allowComments:!0,schemas:[],enableSchemaRequest:!1,schemaRequest:\"warning\",schemaValidation:\"warning\",comments:\"error\",trailingCommas:\"error\"},dGe={documentFormattingEdits:!0,documentRangeFormattingEdits:!0,completionItems:!0,hovers:!0,documentSymbols:!0,tokens:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0},khe=new lGe(\"json\",cGe,dGe),uGe=()=>Dhe().then(n=>n.getWorker());VD.languages.json={jsonDefaults:khe,getWorker:uGe};function Dhe(){return je(()=>import(\"./BjtZpFsH.js\"),[],import.meta.url)}VD.languages.register({id:\"json\",extensions:[\".json\",\".bowerrc\",\".jshintrc\",\".jscsrc\",\".eslintrc\",\".babelrc\",\".har\"],aliases:[\"JSON\",\"json\"],mimetypes:[\"application/json\"]});VD.languages.onLanguage(\"json\",()=>{Dhe().then(n=>n.setupMode(khe))});/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var hGe=Object.defineProperty,fGe=Object.getOwnPropertyDescriptor,gGe=Object.getOwnPropertyNames,pGe=Object.prototype.hasOwnProperty,mGe=(n,e,t,i)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let s of gGe(e))!pGe.call(n,s)&&s!==t&&hGe(n,s,{get:()=>e[s],enumerable:!(i=fGe(e,s))||i.enumerable});return n},_Ge=(n,e,t)=>(mGe(n,e,\"default\"),t),vGe=\"5.4.5\",rw={};_Ge(rw,HD);var Ihe=(n=>(n[n.None=0]=\"None\",n[n.CommonJS=1]=\"CommonJS\",n[n.AMD=2]=\"AMD\",n[n.UMD=3]=\"UMD\",n[n.System=4]=\"System\",n[n.ES2015=5]=\"ES2015\",n[n.ESNext=99]=\"ESNext\",n))(Ihe||{}),Ehe=(n=>(n[n.None=0]=\"None\",n[n.Preserve=1]=\"Preserve\",n[n.React=2]=\"React\",n[n.ReactNative=3]=\"ReactNative\",n[n.ReactJSX=4]=\"ReactJSX\",n[n.ReactJSXDev=5]=\"ReactJSXDev\",n))(Ehe||{}),The=(n=>(n[n.CarriageReturnLineFeed=0]=\"CarriageReturnLineFeed\",n[n.LineFeed=1]=\"LineFeed\",n))(The||{}),Nhe=(n=>(n[n.ES3=0]=\"ES3\",n[n.ES5=1]=\"ES5\",n[n.ES2015=2]=\"ES2015\",n[n.ES2016=3]=\"ES2016\",n[n.ES2017=4]=\"ES2017\",n[n.ES2018=5]=\"ES2018\",n[n.ES2019=6]=\"ES2019\",n[n.ES2020=7]=\"ES2020\",n[n.ESNext=99]=\"ESNext\",n[n.JSON=100]=\"JSON\",n[n.Latest=99]=\"Latest\",n))(Nhe||{}),Ahe=(n=>(n[n.Classic=1]=\"Classic\",n[n.NodeJs=2]=\"NodeJs\",n))(Ahe||{}),Rhe=class{constructor(n,e,t,i,s){this._onDidChange=new rw.Emitter,this._onDidExtraLibsChange=new rw.Emitter,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(n),this.setDiagnosticsOptions(e),this.setWorkerOptions(t),this.setInlayHintsOptions(i),this.setModeConfiguration(s),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(n,e){let t;if(typeof e>\"u\"?t=`ts:extralib-${Math.random().toString(36).substring(2,15)}`:t=e,this._extraLibs[t]&&this._extraLibs[t].content===n)return{dispose:()=>{}};let i=1;return this._removedExtraLibs[t]&&(i=this._removedExtraLibs[t]+1),this._extraLibs[t]&&(i=this._extraLibs[t].version+1),this._extraLibs[t]={content:n,version:i},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let s=this._extraLibs[t];s&&s.version===i&&(delete this._extraLibs[t],this._removedExtraLibs[t]=i,this._fireOnDidExtraLibsChangeSoon())}}}setExtraLibs(n){for(const e in this._extraLibs)this._removedExtraLibs[e]=this._extraLibs[e].version;if(this._extraLibs=Object.create(null),n&&n.length>0)for(const e of n){const t=e.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,i=e.content;let s=1;this._removedExtraLibs[t]&&(s=this._removedExtraLibs[t]+1),this._extraLibs[t]={content:i,version:s}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){this._onDidExtraLibsChangeTimeout===-1&&(this._onDidExtraLibsChangeTimeout=window.setTimeout(()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)},0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(n){this._compilerOptions=n||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(n){this._diagnosticsOptions=n||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(n){this._workerOptions=n||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(n){this._inlayHintsOptions=n||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(n){}setEagerModelSync(n){this._eagerModelSync=n}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(n){this._modeConfiguration=n||Object.create(null),this._onDidChange.fire(void 0)}},bGe=vGe,Mhe={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,diagnostics:!0,documentRangeFormattingEdits:!0,signatureHelp:!0,onTypeFormattingEdits:!0,codeActions:!0,inlayHints:!0},Phe=new Rhe({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},Mhe),Ohe=new Rhe({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},Mhe),CGe=()=>kP().then(n=>n.getTypeScriptWorker()),wGe=()=>kP().then(n=>n.getJavaScriptWorker());rw.languages.typescript={ModuleKind:Ihe,JsxEmit:Ehe,NewLineKind:The,ScriptTarget:Nhe,ModuleResolutionKind:Ahe,typescriptVersion:bGe,typescriptDefaults:Phe,javascriptDefaults:Ohe,getTypeScriptWorker:CGe,getJavaScriptWorker:wGe};function kP(){return je(()=>import(\"./3cNudfSz.js\"),[],import.meta.url)}rw.languages.onLanguage(\"typescript\",()=>kP().then(n=>n.setupTypeScript(Phe)));rw.languages.onLanguage(\"javascript\",()=>kP().then(n=>n.setupJavaScript(Ohe)));class yGe extends zr{constructor(){super({id:\"diffEditor.toggleCollapseUnchangedRegions\",title:Nt(\"toggleCollapseUnchangedRegions\",\"Toggle Collapse Unchanged Regions\"),icon:Te.map,toggled:pe.has(\"config.diffEditor.hideUnchangedRegions.enabled\"),precondition:pe.has(\"isInDiffEditor\"),menu:{when:pe.has(\"isInDiffEditor\"),id:R.EditorTitle,order:22,group:\"navigation\"}})}run(e,...t){const i=e.get(qt),s=!i.getValue(\"diffEditor.hideUnchangedRegions.enabled\");i.updateValue(\"diffEditor.hideUnchangedRegions.enabled\",s)}}class Fhe extends zr{constructor(){super({id:\"diffEditor.toggleShowMovedCodeBlocks\",title:Nt(\"toggleShowMovedCodeBlocks\",\"Toggle Show Moved Code Blocks\"),precondition:pe.has(\"isInDiffEditor\")})}run(e,...t){const i=e.get(qt),s=!i.getValue(\"diffEditor.experimental.showMoves\");i.updateValue(\"diffEditor.experimental.showMoves\",s)}}class Bhe extends zr{constructor(){super({id:\"diffEditor.toggleUseInlineViewWhenSpaceIsLimited\",title:Nt(\"toggleUseInlineViewWhenSpaceIsLimited\",\"Toggle Use Inline View When Space Is Limited\"),precondition:pe.has(\"isInDiffEditor\")})}run(e,...t){const i=e.get(qt),s=!i.getValue(\"diffEditor.useInlineViewWhenSpaceIsLimited\");i.updateValue(\"diffEditor.useInlineViewWhenSpaceIsLimited\",s)}}const zD=Nt(\"diffEditor\",\"Diff Editor\");class SGe extends mu{constructor(){super({id:\"diffEditor.switchSide\",title:Nt(\"switchSide\",\"Switch Side\"),icon:Te.arrowSwap,precondition:pe.has(\"isInDiffEditor\"),f1:!0,category:zD})}runEditorCommand(e,t,i){const s=Kw(e);if(s instanceof Tg){if(i&&i.dryRun)return{destinationSelection:s.mapToOtherSide().destinationSelection};s.switchSide()}}}class xGe extends mu{constructor(){super({id:\"diffEditor.exitCompareMove\",title:Nt(\"exitCompareMove\",\"Exit Compare Move\"),icon:Te.close,precondition:W.comparingMovedCode,f1:!1,category:zD,keybinding:{weight:1e4,primary:9}})}runEditorCommand(e,t,...i){const s=Kw(e);s instanceof Tg&&s.exitCompareMove()}}class LGe extends mu{constructor(){super({id:\"diffEditor.collapseAllUnchangedRegions\",title:Nt(\"collapseAllUnchangedRegions\",\"Collapse All Unchanged Regions\"),icon:Te.fold,precondition:pe.has(\"isInDiffEditor\"),f1:!0,category:zD})}runEditorCommand(e,t,...i){const s=Kw(e);s instanceof Tg&&s.collapseAllUnchangedRegions()}}class kGe extends mu{constructor(){super({id:\"diffEditor.showAllUnchangedRegions\",title:Nt(\"showAllUnchangedRegions\",\"Show All Unchanged Regions\"),icon:Te.unfold,precondition:pe.has(\"isInDiffEditor\"),f1:!0,category:zD})}runEditorCommand(e,t,...i){const s=Kw(e);s instanceof Tg&&s.showAllUnchangedRegions()}}class O6 extends zr{constructor(){super({id:\"diffEditor.revert\",title:Nt(\"revert\",\"Revert\"),f1:!1,category:zD})}run(e,t){var i;const s=DGe(e,t.originalUri,t.modifiedUri);s instanceof Tg&&s.revertRangeMappings((i=t.mapping.innerChanges)!==null&&i!==void 0?i:[])}}const Whe=Nt(\"accessibleDiffViewer\",\"Accessible Diff Viewer\");class jw extends zr{constructor(){super({id:jw.id,title:Nt(\"editor.action.accessibleDiffViewer.next\",\"Go to Next Difference\"),category:Whe,precondition:pe.has(\"isInDiffEditor\"),keybinding:{primary:65,weight:100},f1:!0})}run(e){const t=Kw(e);t==null||t.accessibleDiffViewerNext()}}jw.id=\"editor.action.accessibleDiffViewer.next\";class $D extends zr{constructor(){super({id:$D.id,title:Nt(\"editor.action.accessibleDiffViewer.prev\",\"Go to Previous Difference\"),category:Whe,precondition:pe.has(\"isInDiffEditor\"),keybinding:{primary:1089,weight:100},f1:!0})}run(e){const t=Kw(e);t==null||t.accessibleDiffViewerPrev()}}$D.id=\"editor.action.accessibleDiffViewer.prev\";function DGe(n,e,t){return n.get(vi).listDiffEditors().find(o=>{var r,a;const l=o.getModifiedEditor(),c=o.getOriginalEditor();return l&&((r=l.getModel())===null||r===void 0?void 0:r.uri.toString())===t.toString()&&c&&((a=c.getModel())===null||a===void 0?void 0:a.uri.toString())===e.toString()})||null}function Kw(n){const t=n.get(vi).listDiffEditors(),i=Ao();if(i)for(const s of t){const o=s.getContainerDomNode();if(IGe(o,i))return s}return null}function IGe(n,e){let t=e;for(;t;){if(t===n)return!0;t=t.parentElement}return!1}dn(yGe);dn(Fhe);dn(Bhe);ao.appendMenuItem(R.EditorTitle,{command:{id:new Bhe().desc.id,title:v(\"useInlineViewWhenSpaceIsLimited\",\"Use Inline View When Space Is Limited\"),toggled:pe.has(\"config.diffEditor.useInlineViewWhenSpaceIsLimited\"),precondition:pe.has(\"isInDiffEditor\")},order:11,group:\"1_diff\",when:pe.and(W.diffEditorRenderSideBySideInlineBreakpointReached,pe.has(\"isInDiffEditor\"))});ao.appendMenuItem(R.EditorTitle,{command:{id:new Fhe().desc.id,title:v(\"showMoves\",\"Show Moved Code Blocks\"),icon:Te.move,toggled:Mw.create(\"config.diffEditor.experimental.showMoves\",!0),precondition:pe.has(\"isInDiffEditor\")},order:10,group:\"1_diff\",when:pe.has(\"isInDiffEditor\")});dn(O6);for(const n of[{icon:Te.arrowRight,key:W.diffEditorInlineMode.toNegated()},{icon:Te.discard,key:W.diffEditorInlineMode}])ao.appendMenuItem(R.DiffEditorHunkToolbar,{command:{id:new O6().desc.id,title:v(\"revertHunk\",\"Revert Block\"),icon:n.icon},when:pe.and(W.diffEditorModifiedWritable,n.key),order:5,group:\"primary\"}),ao.appendMenuItem(R.DiffEditorSelectionToolbar,{command:{id:new O6().desc.id,title:v(\"revertSelection\",\"Revert Selection\"),icon:n.icon},when:pe.and(W.diffEditorModifiedWritable,n.key),order:5,group:\"primary\"});dn(SGe);dn(xGe);dn(LGe);dn(kGe);ao.appendMenuItem(R.EditorTitle,{command:{id:jw.id,title:v(\"Open Accessible Diff Viewer\",\"Open Accessible Diff Viewer\"),precondition:pe.has(\"isInDiffEditor\")},order:10,group:\"2_diff\",when:pe.and(W.accessibleDiffViewerVisible.negate(),pe.has(\"isInDiffEditor\"))});ri.registerCommandAlias(\"editor.action.diffReview.next\",jw.id);dn(jw);ri.registerCommandAlias(\"editor.action.diffReview.prev\",$D.id);dn($D);var EGe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},TGe=function(n,e){return function(t,i){e(t,i,n)}},F6;const DP=new He(\"selectionAnchorSet\",!1);let Ng=F6=class{static get(e){return e.getContribution(F6.ID)}constructor(e,t){this.editor=e,this.selectionAnchorSetContextKey=DP.bindTo(t),this.modelChangeListener=e.onDidChangeModel(()=>this.selectionAnchorSetContextKey.reset())}setSelectionAnchor(){if(this.editor.hasModel()){const e=this.editor.getPosition();this.editor.changeDecorations(t=>{this.decorationId&&t.removeDecoration(this.decorationId),this.decorationId=t.addDecoration(it.fromPositions(e,e),{description:\"selection-anchor\",stickiness:1,hoverMessage:new $o().appendText(v(\"selectionAnchor\",\"Selection Anchor\")),className:\"selection-anchor\"})}),this.selectionAnchorSetContextKey.set(!!this.decorationId),la(v(\"anchorSet\",\"Anchor set at {0}:{1}\",e.lineNumber,e.column))}}goToSelectionAnchor(){if(this.editor.hasModel()&&this.decorationId){const e=this.editor.getModel().getDecorationRange(this.decorationId);e&&this.editor.setPosition(e.getStartPosition())}}selectFromAnchorToCursor(){if(this.editor.hasModel()&&this.decorationId){const e=this.editor.getModel().getDecorationRange(this.decorationId);if(e){const t=this.editor.getPosition();this.editor.setSelection(it.fromPositions(e.getStartPosition(),t)),this.cancelSelectionAnchor()}}}cancelSelectionAnchor(){if(this.decorationId){const e=this.decorationId;this.editor.changeDecorations(t=>{t.removeDecoration(e),this.decorationId=void 0}),this.selectionAnchorSetContextKey.set(!1)}}dispose(){this.cancelSelectionAnchor(),this.modelChangeListener.dispose()}};Ng.ID=\"editor.contrib.selectionAnchorController\";Ng=F6=EGe([TGe(1,Ct)],Ng);class NGe extends Ke{constructor(){super({id:\"editor.action.setSelectionAnchor\",label:v(\"setSelectionAnchor\",\"Set Selection Anchor\"),alias:\"Set Selection Anchor\",precondition:void 0,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2080),weight:100}})}async run(e,t){var i;(i=Ng.get(t))===null||i===void 0||i.setSelectionAnchor()}}class AGe extends Ke{constructor(){super({id:\"editor.action.goToSelectionAnchor\",label:v(\"goToSelectionAnchor\",\"Go to Selection Anchor\"),alias:\"Go to Selection Anchor\",precondition:DP})}async run(e,t){var i;(i=Ng.get(t))===null||i===void 0||i.goToSelectionAnchor()}}class RGe extends Ke{constructor(){super({id:\"editor.action.selectFromAnchorToCursor\",label:v(\"selectFromAnchorToCursor\",\"Select from Anchor to Cursor\"),alias:\"Select from Anchor to Cursor\",precondition:DP,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2089),weight:100}})}async run(e,t){var i;(i=Ng.get(t))===null||i===void 0||i.selectFromAnchorToCursor()}}class MGe extends Ke{constructor(){super({id:\"editor.action.cancelSelectionAnchor\",label:v(\"cancelSelectionAnchor\",\"Cancel Selection Anchor\"),alias:\"Cancel Selection Anchor\",precondition:DP,kbOpts:{kbExpr:W.editorTextFocus,primary:9,weight:100}})}async run(e,t){var i;(i=Ng.get(t))===null||i===void 0||i.cancelSelectionAnchor()}}bi(Ng.ID,Ng,4);xe(NGe);xe(AGe);xe(RGe);xe(MGe);const PGe=V(\"editorOverviewRuler.bracketMatchForeground\",{dark:\"#A0A0A0\",light:\"#A0A0A0\",hcDark:\"#A0A0A0\",hcLight:\"#A0A0A0\"},v(\"overviewRulerBracketMatchForeground\",\"Overview ruler marker color for matching brackets.\"));class OGe extends Ke{constructor(){super({id:\"editor.action.jumpToBracket\",label:v(\"smartSelect.jumpBracket\",\"Go to Bracket\"),alias:\"Go to Bracket\",precondition:void 0,kbOpts:{kbExpr:W.editorTextFocus,primary:3165,weight:100}})}run(e,t){var i;(i=ed.get(t))===null||i===void 0||i.jumpToBracket()}}class FGe extends Ke{constructor(){super({id:\"editor.action.selectToBracket\",label:v(\"smartSelect.selectToBracket\",\"Select to Bracket\"),alias:\"Select to Bracket\",precondition:void 0,metadata:{description:Nt(\"smartSelect.selectToBracketDescription\",\"Select the text inside and including the brackets or curly braces\"),args:[{name:\"args\",schema:{type:\"object\",properties:{selectBrackets:{type:\"boolean\",default:!0}}}}]}})}run(e,t,i){var s;let o=!0;i&&i.selectBrackets===!1&&(o=!1),(s=ed.get(t))===null||s===void 0||s.selectToBracket(o)}}class BGe extends Ke{constructor(){super({id:\"editor.action.removeBrackets\",label:v(\"smartSelect.removeBrackets\",\"Remove Brackets\"),alias:\"Remove Brackets\",precondition:void 0,kbOpts:{kbExpr:W.editorTextFocus,primary:2561,weight:100}})}run(e,t){var i;(i=ed.get(t))===null||i===void 0||i.removeBrackets(this.id)}}class WGe{constructor(e,t,i){this.position=e,this.brackets=t,this.options=i}}class ed extends ne{static get(e){return e.getContribution(ed.ID)}constructor(e){super(),this._editor=e,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new Xi(()=>this._updateBrackets(),50)),this._matchBrackets=this._editor.getOption(72),this._updateBracketsSoon.schedule(),this._register(e.onDidChangeCursorPosition(t=>{this._matchBrackets!==\"never\"&&this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModelContent(t=>{this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModel(t=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModelLanguageConfiguration(t=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeConfiguration(t=>{t.hasChanged(72)&&(this._matchBrackets=this._editor.getOption(72),this._decorations.clear(),this._lastBracketsData=[],this._lastVersionId=0,this._updateBracketsSoon.schedule())})),this._register(e.onDidBlurEditorWidget(()=>{this._updateBracketsSoon.schedule()})),this._register(e.onDidFocusEditorWidget(()=>{this._updateBracketsSoon.schedule()}))}jumpToBracket(){if(!this._editor.hasModel())return;const e=this._editor.getModel(),t=this._editor.getSelections().map(i=>{const s=i.getStartPosition(),o=e.bracketPairs.matchBracket(s);let r=null;if(o)o[0].containsPosition(s)&&!o[1].containsPosition(s)?r=o[1].getStartPosition():o[1].containsPosition(s)&&(r=o[0].getStartPosition());else{const a=e.bracketPairs.findEnclosingBrackets(s);if(a)r=a[1].getStartPosition();else{const l=e.bracketPairs.findNextBracket(s);l&&l.range&&(r=l.range.getStartPosition())}}return r?new it(r.lineNumber,r.column,r.lineNumber,r.column):new it(s.lineNumber,s.column,s.lineNumber,s.column)});this._editor.setSelections(t),this._editor.revealRange(t[0])}selectToBracket(e){if(!this._editor.hasModel())return;const t=this._editor.getModel(),i=[];this._editor.getSelections().forEach(s=>{const o=s.getStartPosition();let r=t.bracketPairs.matchBracket(o);if(!r&&(r=t.bracketPairs.findEnclosingBrackets(o),!r)){const c=t.bracketPairs.findNextBracket(o);c&&c.range&&(r=t.bracketPairs.matchBracket(c.range.getStartPosition()))}let a=null,l=null;if(r){r.sort(A.compareRangesUsingStarts);const[c,d]=r;if(a=e?c.getStartPosition():c.getEndPosition(),l=e?d.getEndPosition():d.getStartPosition(),d.containsPosition(o)){const u=a;a=l,l=u}}a&&l&&i.push(new it(a.lineNumber,a.column,l.lineNumber,l.column))}),i.length>0&&(this._editor.setSelections(i),this._editor.revealRange(i[0]))}removeBrackets(e){if(!this._editor.hasModel())return;const t=this._editor.getModel();this._editor.getSelections().forEach(i=>{const s=i.getPosition();let o=t.bracketPairs.matchBracket(s);o||(o=t.bracketPairs.findEnclosingBrackets(s)),o&&(this._editor.pushUndoStop(),this._editor.executeEdits(e,[{range:o[0],text:\"\"},{range:o[1],text:\"\"}]),this._editor.pushUndoStop())})}_updateBrackets(){if(this._matchBrackets===\"never\")return;this._recomputeBrackets();const e=[];let t=0;for(const i of this._lastBracketsData){const s=i.brackets;s&&(e[t++]={range:s[0],options:i.options},e[t++]={range:s[1],options:i.options})}this._decorations.set(e)}_recomputeBrackets(){if(!this._editor.hasModel()||!this._editor.hasWidgetFocus()){this._lastBracketsData=[],this._lastVersionId=0;return}const e=this._editor.getSelections();if(e.length>100){this._lastBracketsData=[],this._lastVersionId=0;return}const t=this._editor.getModel(),i=t.getVersionId();let s=[];this._lastVersionId===i&&(s=this._lastBracketsData);const o=[];let r=0;for(let u=0,h=e.length;u<h;u++){const f=e[u];f.isEmpty()&&(o[r++]=f.getStartPosition())}o.length>1&&o.sort(ee.compare);const a=[];let l=0,c=0;const d=s.length;for(let u=0,h=o.length;u<h;u++){const f=o[u];for(;c<d&&s[c].position.isBefore(f);)c++;if(c<d&&s[c].position.equals(f))a[l++]=s[c];else{let g=t.bracketPairs.matchBracket(f,20),p=ed._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;!g&&this._matchBrackets===\"always\"&&(g=t.bracketPairs.findEnclosingBrackets(f,20),p=ed._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER),a[l++]=new WGe(f,g,p)}}this._lastBracketsData=a,this._lastVersionId=i}}ed.ID=\"editor.contrib.bracketMatchingController\";ed._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=Wt.register({description:\"bracket-match-overview\",stickiness:1,className:\"bracket-match\",overviewRuler:{color:Yn(PGe),position:Sl.Center}});ed._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=Wt.register({description:\"bracket-match-no-overview\",stickiness:1,className:\"bracket-match\"});bi(ed.ID,ed,1);xe(FGe);xe(OGe);xe(BGe);ao.appendMenuItem(R.MenubarGoMenu,{group:\"5_infile_nav\",command:{id:\"editor.action.jumpToBracket\",title:v({},\"Go to &&Bracket\")},order:2});class HGe{constructor(e,t){this._selection=e,this._isMovingLeft=t}getEditOperations(e,t){if(this._selection.startLineNumber!==this._selection.endLineNumber||this._selection.isEmpty())return;const i=this._selection.startLineNumber,s=this._selection.startColumn,o=this._selection.endColumn;if(!(this._isMovingLeft&&s===1)&&!(!this._isMovingLeft&&o===e.getLineMaxColumn(i)))if(this._isMovingLeft){const r=new A(i,s-1,i,s),a=e.getValueInRange(r);t.addEditOperation(r,null),t.addEditOperation(new A(i,o,i,o),a)}else{const r=new A(i,o,i,o+1),a=e.getValueInRange(r);t.addEditOperation(r,null),t.addEditOperation(new A(i,s,i,s),a)}}computeCursorState(e,t){return this._isMovingLeft?new it(this._selection.startLineNumber,this._selection.startColumn-1,this._selection.endLineNumber,this._selection.endColumn-1):new it(this._selection.startLineNumber,this._selection.startColumn+1,this._selection.endLineNumber,this._selection.endColumn+1)}}class Hhe extends Ke{constructor(e,t){super(t),this.left=e}run(e,t){if(!t.hasModel())return;const i=[],s=t.getSelections();for(const o of s)i.push(new HGe(o,this.left));t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop()}}class VGe extends Hhe{constructor(){super(!0,{id:\"editor.action.moveCarretLeftAction\",label:v(\"caret.moveLeft\",\"Move Selected Text Left\"),alias:\"Move Selected Text Left\",precondition:W.writable})}}class zGe extends Hhe{constructor(){super(!1,{id:\"editor.action.moveCarretRightAction\",label:v(\"caret.moveRight\",\"Move Selected Text Right\"),alias:\"Move Selected Text Right\",precondition:W.writable})}}xe(VGe);xe(zGe);class $Ge extends Ke{constructor(){super({id:\"editor.action.transposeLetters\",label:v(\"transposeLetters.label\",\"Transpose Letters\"),alias:\"Transpose Letters\",precondition:W.writable,kbOpts:{kbExpr:W.textInputFocus,primary:0,mac:{primary:306},weight:100}})}run(e,t){if(!t.hasModel())return;const i=t.getModel(),s=[],o=t.getSelections();for(const r of o){if(!r.isEmpty())continue;const a=r.startLineNumber,l=r.startColumn,c=i.getLineMaxColumn(a);if(a===1&&(l===1||l===2&&c===2))continue;const d=l===c?r.getPosition():Mi.rightPosition(i,r.getPosition().lineNumber,r.getPosition().column),u=Mi.leftPosition(i,d),h=Mi.leftPosition(i,u),f=i.getValueInRange(A.fromPositions(h,u)),g=i.getValueInRange(A.fromPositions(u,d)),p=A.fromPositions(h,d);s.push(new Io(p,g+f))}s.length>0&&(t.pushUndoStop(),t.executeCommands(this.id,s),t.pushUndoStop())}}xe($Ge);const IP=function(){if(typeof crypto==\"object\"&&typeof crypto.randomUUID==\"function\")return crypto.randomUUID.bind(crypto);let n;typeof crypto==\"object\"&&typeof crypto.getRandomValues==\"function\"?n=crypto.getRandomValues.bind(crypto):n=function(i){for(let s=0;s<i.length;s++)i[s]=Math.floor(Math.random()*256);return i};const e=new Uint8Array(16),t=[];for(let i=0;i<256;i++)t.push(i.toString(16).padStart(2,\"0\"));return function(){n(e),e[6]=e[6]&15|64,e[8]=e[8]&63|128;let s=0,o=\"\";return o+=t[e[s++]],o+=t[e[s++]],o+=t[e[s++]],o+=t[e[s++]],o+=\"-\",o+=t[e[s++]],o+=t[e[s++]],o+=\"-\",o+=t[e[s++]],o+=t[e[s++]],o+=\"-\",o+=t[e[s++]],o+=t[e[s++]],o+=\"-\",o+=t[e[s++]],o+=t[e[s++]],o+=t[e[s++]],o+=t[e[s++]],o+=t[e[s++]],o+=t[e[s++]],o}}();function cU(n){return{asString:async()=>n,asFile:()=>{},value:typeof n==\"string\"?n:void 0}}function UGe(n,e,t){const i={id:IP(),name:n,uri:e,data:t};return{asString:async()=>\"\",asFile:()=>i,value:void 0}}class Vhe{constructor(){this._entries=new Map}get size(){let e=0;for(const t of this._entries)e++;return e}has(e){return this._entries.has(this.toKey(e))}matches(e){const t=[...this._entries.keys()];return oi.some(this,([i,s])=>s.asFile())&&t.push(\"files\"),$he(sR(e),t)}get(e){var t;return(t=this._entries.get(this.toKey(e)))===null||t===void 0?void 0:t[0]}append(e,t){const i=this._entries.get(e);i?i.push(t):this._entries.set(this.toKey(e),[t])}replace(e,t){this._entries.set(this.toKey(e),[t])}delete(e){this._entries.delete(this.toKey(e))}*[Symbol.iterator](){for(const[e,t]of this._entries)for(const i of t)yield[e,i]}toKey(e){return sR(e)}}function sR(n){return n.toLowerCase()}function zhe(n,e){return $he(sR(n),e.map(sR))}function $he(n,e){if(n===\"*/*\")return e.length>0;if(e.includes(n))return!0;const t=n.match(/^([a-z]+)\\/([a-z]+|\\*)$/i);if(!t)return!1;const[i,s,o]=t;return o===\"*\"?e.some(r=>r.startsWith(s+\"/\")):!1}const EP=Object.freeze({create:n=>xg(n.map(e=>e.toString())).join(`\\r\n`),split:n=>n.split(`\\r\n`),parse:n=>EP.split(n).filter(e=>!e.startsWith(\"#\"))});class Yi{constructor(e){this.value=e}equals(e){return this.value===e.value}contains(e){return this.equals(e)||this.value===\"\"||e.value.startsWith(this.value+Yi.sep)}intersects(e){return this.contains(e)||e.contains(this)}append(...e){return new Yi((this.value?[this.value,...e]:e).join(Yi.sep))}}Yi.sep=\".\";Yi.None=new Yi(\"@@none@@\");Yi.Empty=new Yi(\"\");const Nee={EDITORS:\"CodeEditors\",FILES:\"CodeFiles\"};class jGe{}const KGe={DragAndDropContribution:\"workbench.contributions.dragAndDrop\"};Un.add(KGe.DragAndDropContribution,new jGe);class ck{constructor(){}static getInstance(){return ck.INSTANCE}hasData(e){return e&&e===this.proto}getData(e){if(this.hasData(e))return this.data}}ck.INSTANCE=new ck;function Uhe(n){const e=new Vhe;for(const t of n.items){const i=t.type;if(t.kind===\"string\"){const s=new Promise(o=>t.getAsString(o));e.append(i,cU(s))}else if(t.kind===\"file\"){const s=t.getAsFile();s&&e.append(i,qGe(s))}}return e}function qGe(n){const e=n.path?pt.parse(n.path):void 0;return UGe(n.name,e,async()=>new Uint8Array(await n.arrayBuffer()))}const GGe=Object.freeze([Nee.EDITORS,Nee.FILES,UL.RESOURCES,UL.INTERNAL_URI_LIST]);function jhe(n,e=!1){const t=Uhe(n),i=t.get(UL.INTERNAL_URI_LIST);if(i)t.replace(ss.uriList,i);else if(e||!t.has(ss.uriList)){const s=[];for(const o of n.items){const r=o.getAsFile();if(r){const a=r.path;try{a?s.push(pt.file(a).toString()):s.push(pt.parse(r.name,!0).toString())}catch{}}}s.length&&t.replace(ss.uriList,cU(EP.create(s)))}for(const s of GGe)t.delete(s);return t}var dU=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},dk=function(n,e){return function(t,i){e(t,i,n)}};class uU{async provideDocumentPasteEdits(e,t,i,s,o){const r=await this.getEdit(i,o);if(r)return{dispose(){},edits:[{insertText:r.insertText,title:r.title,kind:r.kind,handledMimeType:r.handledMimeType,yieldTo:r.yieldTo}]}}async provideDocumentDropEdits(e,t,i,s){const o=await this.getEdit(i,s);return o?[{insertText:o.insertText,title:o.title,kind:o.kind,handledMimeType:o.handledMimeType,yieldTo:o.yieldTo}]:void 0}}class Ag extends uU{constructor(){super(...arguments),this.kind=Ag.kind,this.dropMimeTypes=[ss.text],this.pasteMimeTypes=[ss.text]}async getEdit(e,t){const i=e.get(ss.text);if(!i||e.has(ss.uriList))return;const s=await i.asString();return{handledMimeType:ss.text,title:v(\"text.label\",\"Insert Plain Text\"),insertText:s,kind:this.kind}}}Ag.id=\"text\";Ag.kind=new Yi(\"text.plain\");class Khe extends uU{constructor(){super(...arguments),this.kind=new Yi(\"uri.absolute\"),this.dropMimeTypes=[ss.uriList],this.pasteMimeTypes=[ss.uriList]}async getEdit(e,t){const i=await qhe(e);if(!i.length||t.isCancellationRequested)return;let s=0;const o=i.map(({uri:a,originalText:l})=>a.scheme===Tt.file?a.fsPath:(s++,l)).join(\" \");let r;return s>0?r=i.length>1?v(\"defaultDropProvider.uriList.uris\",\"Insert Uris\"):v(\"defaultDropProvider.uriList.uri\",\"Insert Uri\"):r=i.length>1?v(\"defaultDropProvider.uriList.paths\",\"Insert Paths\"):v(\"defaultDropProvider.uriList.path\",\"Insert Path\"),{handledMimeType:ss.uriList,insertText:o,title:r,kind:this.kind}}}let oR=class extends uU{constructor(e){super(),this._workspaceContextService=e,this.kind=new Yi(\"uri.relative\"),this.dropMimeTypes=[ss.uriList],this.pasteMimeTypes=[ss.uriList]}async getEdit(e,t){const i=await qhe(e);if(!i.length||t.isCancellationRequested)return;const s=tu(i.map(({uri:o})=>{const r=this._workspaceContextService.getWorkspaceFolder(o);return r?uBe(r.uri,o):void 0}));if(s.length)return{handledMimeType:ss.uriList,insertText:s.join(\" \"),title:i.length>1?v(\"defaultDropProvider.uriList.relativePaths\",\"Insert Relative Paths\"):v(\"defaultDropProvider.uriList.relativePath\",\"Insert Relative Path\"),kind:this.kind}}};oR=dU([dk(0,b0)],oR);class ZGe{constructor(){this.kind=new Yi(\"html\"),this.pasteMimeTypes=[\"text/html\"],this._yieldTo=[{mimeType:ss.text}]}async provideDocumentPasteEdits(e,t,i,s,o){var r;if(s.triggerKind!==aL.PasteAs&&!(!((r=s.only)===null||r===void 0)&&r.contains(this.kind)))return;const a=i.get(\"text/html\"),l=await(a==null?void 0:a.asString());if(!(!l||o.isCancellationRequested))return{dispose(){},edits:[{insertText:l,yieldTo:this._yieldTo,title:v(\"pasteHtmlLabel\",\"Insert HTML\"),kind:this.kind}]}}}async function qhe(n){const e=n.get(ss.uriList);if(!e)return[];const t=await e.asString(),i=[];for(const s of EP.parse(t))try{i.push({uri:pt.parse(s),originalText:s})}catch{}return i}let B6=class extends ne{constructor(e,t){super(),this._register(e.documentDropEditProvider.register(\"*\",new Ag)),this._register(e.documentDropEditProvider.register(\"*\",new Khe)),this._register(e.documentDropEditProvider.register(\"*\",new oR(t)))}};B6=dU([dk(0,Xe),dk(1,b0)],B6);let W6=class extends ne{constructor(e,t){super(),this._register(e.documentPasteEditProvider.register(\"*\",new Ag)),this._register(e.documentPasteEditProvider.register(\"*\",new Khe)),this._register(e.documentPasteEditProvider.register(\"*\",new oR(t))),this._register(e.documentPasteEditProvider.register(\"*\",new ZGe))}};W6=dU([dk(0,Xe),dk(1,b0)],W6);class Bc{constructor(){this.value=\"\",this.pos=0}static isDigitCharacter(e){return e>=48&&e<=57}static isVariableCharacter(e){return e===95||e>=97&&e<=122||e>=65&&e<=90}text(e){this.value=e,this.pos=0}tokenText(e){return this.value.substr(e.pos,e.len)}next(){if(this.pos>=this.value.length)return{type:14,pos:this.pos,len:0};const e=this.pos;let t=0,i=this.value.charCodeAt(e),s;if(s=Bc._table[i],typeof s==\"number\")return this.pos+=1,{type:s,pos:e,len:1};if(Bc.isDigitCharacter(i)){s=8;do t+=1,i=this.value.charCodeAt(e+t);while(Bc.isDigitCharacter(i));return this.pos+=t,{type:s,pos:e,len:t}}if(Bc.isVariableCharacter(i)){s=9;do i=this.value.charCodeAt(e+ ++t);while(Bc.isVariableCharacter(i)||Bc.isDigitCharacter(i));return this.pos+=t,{type:s,pos:e,len:t}}s=10;do t+=1,i=this.value.charCodeAt(e+t);while(!isNaN(i)&&typeof Bc._table[i]>\"u\"&&!Bc.isDigitCharacter(i)&&!Bc.isVariableCharacter(i));return this.pos+=t,{type:s,pos:e,len:t}}}Bc._table={36:0,58:1,44:2,123:3,125:4,92:5,47:6,124:7,43:11,45:12,63:13};class qw{constructor(){this._children=[]}appendChild(e){return e instanceof Dr&&this._children[this._children.length-1]instanceof Dr?this._children[this._children.length-1].value+=e.value:(e.parent=this,this._children.push(e)),this}replace(e,t){const{parent:i}=e,s=i.children.indexOf(e),o=i.children.slice(0);o.splice(s,1,...t),i._children=o,function r(a,l){for(const c of a)c.parent=l,r(c.children,c)}(t,i)}get children(){return this._children}get rightMostDescendant(){return this._children.length>0?this._children[this._children.length-1].rightMostDescendant:this}get snippet(){let e=this;for(;;){if(!e)return;if(e instanceof UD)return e;e=e.parent}}toString(){return this.children.reduce((e,t)=>e+t.toString(),\"\")}len(){return 0}}class Dr extends qw{constructor(e){super(),this.value=e}toString(){return this.value}len(){return this.value.length}clone(){return new Dr(this.value)}}class Ghe extends qw{}class Ul extends Ghe{static compareByIndex(e,t){return e.index===t.index?0:e.isFinalTabstop?1:t.isFinalTabstop||e.index<t.index?-1:e.index>t.index?1:0}constructor(e){super(),this.index=e}get isFinalTabstop(){return this.index===0}get choice(){return this._children.length===1&&this._children[0]instanceof Gw?this._children[0]:void 0}clone(){const e=new Ul(this.index);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map(t=>t.clone()),e}}class Gw extends qw{constructor(){super(...arguments),this.options=[]}appendChild(e){return e instanceof Dr&&(e.parent=this,this.options.push(e)),this}toString(){return this.options[0].value}len(){return this.options[0].len()}clone(){const e=new Gw;return this.options.forEach(e.appendChild,e),e}}class hU extends qw{constructor(){super(...arguments),this.regexp=new RegExp(\"\")}resolve(e){const t=this;let i=!1,s=e.replace(this.regexp,function(){return i=!0,t._replace(Array.prototype.slice.call(arguments,0,-2))});return!i&&this._children.some(o=>o instanceof Td&&!!o.elseValue)&&(s=this._replace([])),s}_replace(e){let t=\"\";for(const i of this._children)if(i instanceof Td){let s=e[i.index]||\"\";s=i.resolve(s),t+=s}else t+=i.toString();return t}toString(){return\"\"}clone(){const e=new hU;return e.regexp=new RegExp(this.regexp.source,(this.regexp.ignoreCase?\"i\":\"\")+(this.regexp.global?\"g\":\"\")),e._children=this.children.map(t=>t.clone()),e}}class Td extends qw{constructor(e,t,i,s){super(),this.index=e,this.shorthandName=t,this.ifValue=i,this.elseValue=s}resolve(e){return this.shorthandName===\"upcase\"?e?e.toLocaleUpperCase():\"\":this.shorthandName===\"downcase\"?e?e.toLocaleLowerCase():\"\":this.shorthandName===\"capitalize\"?e?e[0].toLocaleUpperCase()+e.substr(1):\"\":this.shorthandName===\"pascalcase\"?e?this._toPascalCase(e):\"\":this.shorthandName===\"camelcase\"?e?this._toCamelCase(e):\"\":e&&typeof this.ifValue==\"string\"?this.ifValue:!e&&typeof this.elseValue==\"string\"?this.elseValue:e||\"\"}_toPascalCase(e){const t=e.match(/[a-z0-9]+/gi);return t?t.map(i=>i.charAt(0).toUpperCase()+i.substr(1)).join(\"\"):e}_toCamelCase(e){const t=e.match(/[a-z0-9]+/gi);return t?t.map((i,s)=>s===0?i.charAt(0).toLowerCase()+i.substr(1):i.charAt(0).toUpperCase()+i.substr(1)).join(\"\"):e}clone(){return new Td(this.index,this.shorthandName,this.ifValue,this.elseValue)}}class uk extends Ghe{constructor(e){super(),this.name=e}resolve(e){let t=e.resolve(this);return this.transform&&(t=this.transform.resolve(t||\"\")),t!==void 0?(this._children=[new Dr(t)],!0):!1}clone(){const e=new uk(this.name);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map(t=>t.clone()),e}}function Aee(n,e){const t=[...n];for(;t.length>0;){const i=t.shift();if(!e(i))break;t.unshift(...i.children)}}class UD extends qw{get placeholderInfo(){if(!this._placeholders){const e=[];let t;this.walk(function(i){return i instanceof Ul&&(e.push(i),t=!t||t.index<i.index?i:t),!0}),this._placeholders={all:e,last:t}}return this._placeholders}get placeholders(){const{all:e}=this.placeholderInfo;return e}offset(e){let t=0,i=!1;return this.walk(s=>s===e?(i=!0,!1):(t+=s.len(),!0)),i?t:-1}fullLen(e){let t=0;return Aee([e],i=>(t+=i.len(),!0)),t}enclosingPlaceholders(e){const t=[];let{parent:i}=e;for(;i;)i instanceof Ul&&t.push(i),i=i.parent;return t}resolveVariables(e){return this.walk(t=>(t instanceof uk&&t.resolve(e)&&(this._placeholders=void 0),!0)),this}appendChild(e){return this._placeholders=void 0,super.appendChild(e)}replace(e,t){return this._placeholders=void 0,super.replace(e,t)}clone(){const e=new UD;return this._children=this.children.map(t=>t.clone()),e}walk(e){Aee(this.children,e)}}class L0{constructor(){this._scanner=new Bc,this._token={type:14,pos:0,len:0}}static escape(e){return e.replace(/\\$|}|\\\\/g,\"\\\\$&\")}static guessNeedsClipboard(e){return/\\${?CLIPBOARD/.test(e)}parse(e,t,i){const s=new UD;return this.parseFragment(e,s),this.ensureFinalTabstop(s,i??!1,t??!1),s}parseFragment(e,t){const i=t.children.length;for(this._scanner.text(e),this._token=this._scanner.next();this._parse(t););const s=new Map,o=[];t.walk(l=>(l instanceof Ul&&(l.isFinalTabstop?s.set(0,void 0):!s.has(l.index)&&l.children.length>0?s.set(l.index,l.children):o.push(l)),!0));const r=(l,c)=>{const d=s.get(l.index);if(!d)return;const u=new Ul(l.index);u.transform=l.transform;for(const h of d){const f=h.clone();u.appendChild(f),f instanceof Ul&&s.has(f.index)&&!c.has(f.index)&&(c.add(f.index),r(f,c),c.delete(f.index))}t.replace(l,[u])},a=new Set;for(const l of o)r(l,a);return t.children.slice(i)}ensureFinalTabstop(e,t,i){(t||i&&e.placeholders.length>0)&&(e.placeholders.find(o=>o.index===0)||e.appendChild(new Ul(0)))}_accept(e,t){if(e===void 0||this._token.type===e){const i=t?this._scanner.tokenText(this._token):!0;return this._token=this._scanner.next(),i}return!1}_backTo(e){return this._scanner.pos=e.pos+e.len,this._token=e,!1}_until(e){const t=this._token;for(;this._token.type!==e;){if(this._token.type===14)return!1;if(this._token.type===5){const s=this._scanner.next();if(s.type!==0&&s.type!==4&&s.type!==5)return!1}this._token=this._scanner.next()}const i=this._scanner.value.substring(t.pos,this._token.pos).replace(/\\\\(\\$|}|\\\\)/g,\"$1\");return this._token=this._scanner.next(),i}_parse(e){return this._parseEscaped(e)||this._parseTabstopOrVariableName(e)||this._parseComplexPlaceholder(e)||this._parseComplexVariable(e)||this._parseAnything(e)}_parseEscaped(e){let t;return(t=this._accept(5,!0))?(t=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||t,e.appendChild(new Dr(t)),!0):!1}_parseTabstopOrVariableName(e){let t;const i=this._token;return this._accept(0)&&(t=this._accept(9,!0)||this._accept(8,!0))?(e.appendChild(/^\\d+$/.test(t)?new Ul(Number(t)):new uk(t)),!0):this._backTo(i)}_parseComplexPlaceholder(e){let t;const i=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(8,!0))))return this._backTo(i);const o=new Ul(Number(t));if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(o),!0;if(!this._parse(o))return e.appendChild(new Dr(\"${\"+t+\":\")),o.children.forEach(e.appendChild,e),!0}else if(o.index>0&&this._accept(7)){const r=new Gw;for(;;){if(this._parseChoiceElement(r)){if(this._accept(2))continue;if(this._accept(7)&&(o.appendChild(r),this._accept(4)))return e.appendChild(o),!0}return this._backTo(i),!1}}else return this._accept(6)?this._parseTransform(o)?(e.appendChild(o),!0):(this._backTo(i),!1):this._accept(4)?(e.appendChild(o),!0):this._backTo(i)}_parseChoiceElement(e){const t=this._token,i=[];for(;!(this._token.type===2||this._token.type===7);){let s;if((s=this._accept(5,!0))?s=this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||s:s=this._accept(void 0,!0),!s)return this._backTo(t),!1;i.push(s)}return i.length===0?(this._backTo(t),!1):(e.appendChild(new Dr(i.join(\"\"))),!0)}_parseComplexVariable(e){let t;const i=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(9,!0))))return this._backTo(i);const o=new uk(t);if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(o),!0;if(!this._parse(o))return e.appendChild(new Dr(\"${\"+t+\":\")),o.children.forEach(e.appendChild,e),!0}else return this._accept(6)?this._parseTransform(o)?(e.appendChild(o),!0):(this._backTo(i),!1):this._accept(4)?(e.appendChild(o),!0):this._backTo(i)}_parseTransform(e){const t=new hU;let i=\"\",s=\"\";for(;!this._accept(6);){let o;if(o=this._accept(5,!0)){o=this._accept(6,!0)||o,i+=o;continue}if(this._token.type!==14){i+=this._accept(void 0,!0);continue}return!1}for(;!this._accept(6);){let o;if(o=this._accept(5,!0)){o=this._accept(5,!0)||this._accept(6,!0)||o,t.appendChild(new Dr(o));continue}if(!(this._parseFormatString(t)||this._parseAnything(t)))return!1}for(;!this._accept(4);){if(this._token.type!==14){s+=this._accept(void 0,!0);continue}return!1}try{t.regexp=new RegExp(i,s)}catch{return!1}return e.transform=t,!0}_parseFormatString(e){const t=this._token;if(!this._accept(0))return!1;let i=!1;this._accept(3)&&(i=!0);const s=this._accept(8,!0);if(s)if(i){if(this._accept(4))return e.appendChild(new Td(Number(s))),!0;if(!this._accept(1))return this._backTo(t),!1}else return e.appendChild(new Td(Number(s))),!0;else return this._backTo(t),!1;if(this._accept(6)){const o=this._accept(9,!0);return!o||!this._accept(4)?(this._backTo(t),!1):(e.appendChild(new Td(Number(s),o)),!0)}else if(this._accept(11)){const o=this._until(4);if(o)return e.appendChild(new Td(Number(s),void 0,o,void 0)),!0}else if(this._accept(12)){const o=this._until(4);if(o)return e.appendChild(new Td(Number(s),void 0,void 0,o)),!0}else if(this._accept(13)){const o=this._until(1);if(o){const r=this._until(4);if(r)return e.appendChild(new Td(Number(s),void 0,o,r)),!0}}else{const o=this._until(4);if(o)return e.appendChild(new Td(Number(s),void 0,void 0,o)),!0}return this._backTo(t),!1}_parseAnything(e){return this._token.type!==14?(e.appendChild(new Dr(this._scanner.tokenText(this._token))),this._accept(void 0),!0):!1}}function Zhe(n,e,t){var i,s,o,r;return(typeof t.insertText==\"string\"?t.insertText===\"\":t.insertText.snippet===\"\")?{edits:(s=(i=t.additionalEdit)===null||i===void 0?void 0:i.edits)!==null&&s!==void 0?s:[]}:{edits:[...e.map(a=>new pm(n,{range:a,text:typeof t.insertText==\"string\"?L0.escape(t.insertText)+\"$0\":t.insertText.snippet,insertAsSnippet:!0})),...(r=(o=t.additionalEdit)===null||o===void 0?void 0:o.edits)!==null&&r!==void 0?r:[]]}}function Yhe(n){var e;function t(a,l){return\"mimeType\"in a?a.mimeType===l.handledMimeType:!!l.kind&&a.kind.contains(l.kind)}const i=new Map;for(const a of n)for(const l of(e=a.yieldTo)!==null&&e!==void 0?e:[])for(const c of n)if(c!==a&&t(l,c)){let d=i.get(a);d||(d=[],i.set(a,d)),d.push(c)}if(!i.size)return Array.from(n);const s=new Set,o=[];function r(a){if(!a.length)return[];const l=a[0];if(o.includes(l))return console.warn(\"Yield to cycle detected\",l),a;if(s.has(l))return r(a.slice(1));let c=[];const d=i.get(l);return d&&(o.push(l),c=r(d),o.pop()),s.add(l),[...c,l,...r(a.slice(1))]}return r(Array.from(n))}var YGe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},XGe=function(n,e){return function(t,i){e(t,i,n)}};const QGe=Wt.register({description:\"inline-progress-widget\",stickiness:1,showIfCollapsed:!0,after:{content:xae,inlineClassName:\"inline-editor-progress-decoration\",inlineClassNameAffectsLetterSpacing:!0}});class TP extends ne{constructor(e,t,i,s,o){super(),this.typeId=e,this.editor=t,this.range=i,this.delegate=o,this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this.create(s),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this)}create(e){this.domNode=ke(\".inline-progress-widget\"),this.domNode.role=\"button\",this.domNode.title=e;const t=ke(\"span.icon\");this.domNode.append(t),t.classList.add(..._t.asClassNameArray(Te.loading),\"codicon-modifier-spin\");const i=()=>{const s=this.editor.getOption(67);this.domNode.style.height=`${s}px`,this.domNode.style.width=`${Math.ceil(.8*s)}px`};i(),this._register(this.editor.onDidChangeConfiguration(s=>{(s.hasChanged(52)||s.hasChanged(67))&&i()})),this._register(ce(this.domNode,Le.CLICK,s=>{this.delegate.cancel()}))}getId(){return TP.baseId+\".\"+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:{lineNumber:this.range.startLineNumber,column:this.range.startColumn},preference:[0]}}dispose(){super.dispose(),this.editor.removeContentWidget(this)}}TP.baseId=\"editor.widget.inlineProgressWidget\";let rR=class extends ne{constructor(e,t,i){super(),this.id=e,this._editor=t,this._instantiationService=i,this._showDelay=500,this._showPromise=this._register(new Qs),this._currentWidget=new Qs,this._operationIdPool=0,this._currentDecorations=t.createDecorationsCollection()}async showWhile(e,t,i){const s=this._operationIdPool++;this._currentOperation=s,this.clear(),this._showPromise.value=Om(()=>{const o=A.fromPositions(e);this._currentDecorations.set([{range:o,options:QGe}]).length>0&&(this._currentWidget.value=this._instantiationService.createInstance(TP,this.id,this._editor,o,t,i))},this._showDelay);try{return await i}finally{this._currentOperation===s&&(this.clear(),this._currentOperation=void 0)}}clear(){this._showPromise.clear(),this._currentDecorations.clear(),this._currentWidget.clear()}};rR=YGe([XGe(2,ht)],rR);var JGe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Ree=function(n,e){return function(t,i){e(t,i,n)}},PN;let Or=PN=class{static get(e){return e.getContribution(PN.ID)}constructor(e,t,i){this._openerService=i,this._messageWidget=new Qs,this._messageListeners=new be,this._mouseOverMessage=!1,this._editor=e,this._visible=PN.MESSAGE_VISIBLE.bindTo(t)}dispose(){var e;(e=this._message)===null||e===void 0||e.dispose(),this._messageListeners.dispose(),this._messageWidget.dispose(),this._visible.reset()}showMessage(e,t){la(Xd(e)?e.value:e),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),this._message=Xd(e)?GM(e,{actionHandler:{callback:s=>{this.closeMessage(),b$(this._openerService,s,Xd(e)?e.isTrusted:void 0)},disposables:this._messageListeners}}):void 0,this._messageWidget.value=new Mee(this._editor,t,typeof e==\"string\"?e:this._message.element),this._messageListeners.add(Ae.debounce(this._editor.onDidBlurEditorText,(s,o)=>o,0)(()=>{this._mouseOverMessage||this._messageWidget.value&&Zs(Ao(),this._messageWidget.value.getDomNode())||this.closeMessage()})),this._messageListeners.add(this._editor.onDidChangeCursorPosition(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidDispose(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidChangeModel(()=>this.closeMessage())),this._messageListeners.add(ce(this._messageWidget.value.getDomNode(),Le.MOUSE_ENTER,()=>this._mouseOverMessage=!0,!0)),this._messageListeners.add(ce(this._messageWidget.value.getDomNode(),Le.MOUSE_LEAVE,()=>this._mouseOverMessage=!1,!0));let i;this._messageListeners.add(this._editor.onMouseMove(s=>{s.target.position&&(i?i.containsPosition(s.target.position)||this.closeMessage():i=new A(t.lineNumber-3,1,s.target.position.lineNumber+3,1))}))}closeMessage(){this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value&&this._messageListeners.add(Mee.fadeOut(this._messageWidget.value))}};Or.ID=\"editor.contrib.messageController\";Or.MESSAGE_VISIBLE=new He(\"messageVisible\",!1,v(\"messageVisible\",\"Whether the editor is currently showing an inline message\"));Or=PN=JGe([Ree(1,Ct),Ree(2,$a)],Or);const eZe=Us.bindToContribution(Or.get);Fe(new eZe({id:\"leaveEditorMessage\",precondition:Or.MESSAGE_VISIBLE,handler:n=>n.closeMessage(),kbOpts:{weight:130,primary:9}}));let Mee=class{static fadeOut(e){const t=()=>{e.dispose(),clearTimeout(i),e.getDomNode().removeEventListener(\"animationend\",t)},i=setTimeout(t,110);return e.getDomNode().addEventListener(\"animationend\",t),e.getDomNode().classList.add(\"fadeOut\"),{dispose:t}}constructor(e,{lineNumber:t,column:i},s){this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._editor=e,this._editor.revealLinesInCenterIfOutsideViewport(t,t,0),this._position={lineNumber:t,column:i},this._domNode=document.createElement(\"div\"),this._domNode.classList.add(\"monaco-editor-overlaymessage\"),this._domNode.style.marginLeft=\"-6px\";const o=document.createElement(\"div\");o.classList.add(\"anchor\",\"top\"),this._domNode.appendChild(o);const r=document.createElement(\"div\");typeof s==\"string\"?(r.classList.add(\"message\"),r.textContent=s):(s.classList.add(\"message\"),r.appendChild(s)),this._domNode.appendChild(r);const a=document.createElement(\"div\");a.classList.add(\"anchor\",\"below\"),this._domNode.appendChild(a),this._editor.addContentWidget(this),this._domNode.classList.add(\"fadeIn\")}dispose(){this._editor.removeContentWidget(this)}getId(){return\"messageoverlay\"}getDomNode(){return this._domNode}getPosition(){return{position:this._position,preference:[1,2],positionAffinity:1}}afterRender(e){this._domNode.classList.toggle(\"below\",e===2)}};bi(Or.ID,Or,4);function X5(n,e){return e&&(n.stack||n.stacktrace)?v(\"stackTrace.format\",\"{0}: {1}\",Oee(n),Pee(n.stack)||Pee(n.stacktrace)):Oee(n)}function Pee(n){return Array.isArray(n)?n.join(`\n`):n}function Oee(n){return n.code===\"ERR_UNC_HOST_NOT_ALLOWED\"?`${n.message}. Please update the 'security.allowedUNCHosts' setting if you want to allow this host.`:typeof n.code==\"string\"&&typeof n.errno==\"number\"&&typeof n.syscall==\"string\"?v(\"nodeExceptionMessage\",\"A system error occurred ({0})\",n.message):n.message||v(\"error.defaultMessage\",\"An unknown error occurred. Please consult the log for more details.\")}function aR(n=null,e=!1){if(!n)return v(\"error.defaultMessage\",\"An unknown error occurred. Please consult the log for more details.\");if(Array.isArray(n)){const t=tu(n),i=aR(t[0],e);return t.length>1?v(\"error.moreErrors\",\"{0} ({1} errors in total)\",i,t.length):i}if(Pr(n))return n;if(n.detail){const t=n.detail;if(t.error)return X5(t.error,e);if(t.exception)return X5(t.exception,e)}return n.stack?X5(n,e):n.message?n.message:v(\"error.defaultMessage\",\"An unknown error occurred. Please consult the log for more details.\")}var Xhe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},fC=function(n,e){return function(t,i){e(t,i,n)}},H6;let lR=H6=class extends ne{constructor(e,t,i,s,o,r,a,l,c,d){super(),this.typeId=e,this.editor=t,this.showCommand=s,this.range=o,this.edits=r,this.onSelectNewEdit=a,this._contextMenuService=l,this._keybindingService=d,this.allowEditorOverflow=!0,this.suppressMouseDown=!0,this.create(),this.visibleContext=i.bindTo(c),this.visibleContext.set(!0),this._register(dt(()=>this.visibleContext.reset())),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this),this._register(dt(()=>this.editor.removeContentWidget(this))),this._register(this.editor.onDidChangeCursorPosition(u=>{o.containsPosition(u.position)||this.dispose()})),this._register(Ae.runAndSubscribe(d.onDidUpdateKeybindings,()=>{this._updateButtonTitle()}))}_updateButtonTitle(){var e;const t=(e=this._keybindingService.lookupKeybinding(this.showCommand.id))===null||e===void 0?void 0:e.getLabel();this.button.element.title=this.showCommand.label+(t?` (${t})`:\"\")}create(){this.domNode=ke(\".post-edit-widget\"),this.button=this._register(new RA(this.domNode,{supportIcons:!0})),this.button.label=\"$(insert)\",this._register(ce(this.domNode,Le.CLICK,()=>this.showSelector()))}getId(){return H6.baseId+\".\"+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:this.range.getEndPosition(),preference:[2]}}showSelector(){this._contextMenuService.showContextMenu({getAnchor:()=>{const e=bs(this.button.element);return{x:e.left+e.width,y:e.top+e.height}},getActions:()=>this.edits.allEdits.map((e,t)=>$v({id:\"\",label:e.title,checked:t===this.edits.activeEditIndex,run:()=>{if(t!==this.edits.activeEditIndex)return this.onSelectNewEdit(t)}}))})}};lR.baseId=\"editor.widget.postEditWidget\";lR=H6=Xhe([fC(7,za),fC(8,Ct),fC(9,Li)],lR);let cR=class extends ne{constructor(e,t,i,s,o,r,a){super(),this._id=e,this._editor=t,this._visibleContext=i,this._showCommand=s,this._instantiationService=o,this._bulkEditService=r,this._notificationService=a,this._currentWidget=this._register(new Qs),this._register(Ae.any(t.onDidChangeModel,t.onDidChangeModelContent)(()=>this.clear()))}async applyEditAndShowIfNeeded(e,t,i,s,o){const r=this._editor.getModel();if(!r||!e.length)return;const a=t.allEdits.at(t.activeEditIndex);if(!a)return;const l=async _=>{const b=this._editor.getModel();b&&(await b.undo(),this.applyEditAndShowIfNeeded(e,{activeEditIndex:_,allEdits:t.allEdits},i,s,o))},c=(_,b)=>{ld(_)||(this._notificationService.error(b),i&&this.show(e[0],t,l))};let d;try{d=await s(a,o)}catch(_){return c(_,v(\"resolveError\",`Error resolving edit '{0}':\n{1}`,a.title,aR(_)))}if(o.isCancellationRequested)return;const u=Zhe(r.uri,e,d),h=e[0],f=r.deltaDecorations([],[{range:h,options:{description:\"paste-line-suffix\",stickiness:0}}]);this._editor.focus();let g,p;try{g=await this._bulkEditService.apply(u,{editor:this._editor,token:o}),p=r.getDecorationRange(f[0])}catch(_){return c(_,v(\"applyError\",`Error applying edit '{0}':\n{1}`,a.title,aR(_)))}finally{r.deltaDecorations(f,[])}o.isCancellationRequested||i&&g.isApplied&&t.allEdits.length>1&&this.show(p??h,t,l)}show(e,t,i){this.clear(),this._editor.hasModel()&&(this._currentWidget.value=this._instantiationService.createInstance(lR,this._id,this._editor,this._visibleContext,this._showCommand,e,t,i))}clear(){this._currentWidget.clear()}tryShowSelector(){var e;(e=this._currentWidget.value)===null||e===void 0||e.showSelector()}};cR=Xhe([fC(4,ht),fC(5,ED),fC(6,ps)],cR);var tZe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Vb=function(n,e){return function(t,i){e(t,i,n)}},av;const Qhe=\"editor.changePasteType\",fU=new He(\"pasteWidgetVisible\",!1,v(\"pasteWidgetVisible\",\"Whether the paste widget is showing\")),Q5=\"application/vnd.code.copyMetadata\";let Oh=av=class extends ne{static get(e){return e.getContribution(av.ID)}constructor(e,t,i,s,o,r,a){super(),this._bulkEditService=i,this._clipboardService=s,this._languageFeaturesService=o,this._quickInputService=r,this._progressService=a,this._editor=e;const l=e.getContainerDomNode();this._register(ce(l,\"copy\",c=>this.handleCopy(c))),this._register(ce(l,\"cut\",c=>this.handleCopy(c))),this._register(ce(l,\"paste\",c=>this.handlePaste(c),!0)),this._pasteProgressManager=this._register(new rR(\"pasteIntoEditor\",e,t)),this._postPasteWidgetManager=this._register(t.createInstance(cR,\"pasteIntoEditor\",e,fU,{id:Qhe,label:v(\"postPasteWidgetTitle\",\"Show paste options...\")}))}changePasteType(){this._postPasteWidgetManager.tryShowSelector()}pasteAs(e){this._editor.focus();try{this._pasteAsActionContext={preferred:e},Rw().execCommand(\"paste\")}finally{this._pasteAsActionContext=void 0}}clearWidgets(){this._postPasteWidgetManager.clear()}isPasteAsEnabled(){return this._editor.getOption(85).enabled&&!this._editor.getOption(91)}async finishedPaste(){await this._currentPasteOperation}handleCopy(e){var t,i;if(!this._editor.hasTextFocus()||(u_&&this._clipboardService.writeResources([]),!e.clipboardData||!this.isPasteAsEnabled()))return;const s=this._editor.getModel(),o=this._editor.getSelections();if(!s||!(o!=null&&o.length))return;const r=this._editor.getOption(37);let a=o;const l=o.length===1&&o[0].isEmpty();if(l){if(!r)return;a=[new A(a[0].startLineNumber,1,a[0].startLineNumber,1+s.getLineLength(a[0].startLineNumber))]}const c=(t=this._editor._getViewModel())===null||t===void 0?void 0:t.getPlainTextToCopy(o,r,Mo),u={multicursorText:Array.isArray(c)?c:null,pasteOnNewLine:l,mode:null},h=this._languageFeaturesService.documentPasteEditProvider.ordered(s).filter(b=>!!b.prepareDocumentPaste);if(!h.length){this.setCopyMetadata(e.clipboardData,{defaultPastePayload:u});return}const f=Uhe(e.clipboardData),g=h.flatMap(b=>{var w;return(w=b.copyMimeTypes)!==null&&w!==void 0?w:[]}),p=IP();this.setCopyMetadata(e.clipboardData,{id:p,providerCopyMimeTypes:g,defaultPastePayload:u});const _=Xs(async b=>{const w=tu(await Promise.all(h.map(async y=>{try{return await y.prepareDocumentPaste(s,a,f,b)}catch(S){console.error(S);return}})));w.reverse();for(const y of w)for(const[S,x]of y)f.replace(S,x);return f});(i=av._currentCopyOperation)===null||i===void 0||i.dataTransferPromise.cancel(),av._currentCopyOperation={handle:p,dataTransferPromise:_}}async handlePaste(e){var t,i,s,o;if(!e.clipboardData||!this._editor.hasTextFocus())return;(t=Or.get(this._editor))===null||t===void 0||t.closeMessage(),(i=this._currentPasteOperation)===null||i===void 0||i.cancel(),this._currentPasteOperation=void 0;const r=this._editor.getModel(),a=this._editor.getSelections();if(!(a!=null&&a.length)||!r||!this.isPasteAsEnabled()&&!this._pasteAsActionContext)return;const l=this.fetchCopyMetadata(e),c=jhe(e.clipboardData);c.delete(Q5);const d=[...e.clipboardData.types,...(s=l==null?void 0:l.providerCopyMimeTypes)!==null&&s!==void 0?s:[],ss.uriList],u=this._languageFeaturesService.documentPasteEditProvider.ordered(r).filter(h=>{var f,g;const p=(f=this._pasteAsActionContext)===null||f===void 0?void 0:f.preferred;return p&&h.providedPasteEditKinds&&!this.providerMatchesPreference(h,p)?!1:(g=h.pasteMimeTypes)===null||g===void 0?void 0:g.some(_=>zhe(_,d))});if(!u.length){!((o=this._pasteAsActionContext)===null||o===void 0)&&o.preferred&&this.showPasteAsNoEditMessage(a,this._pasteAsActionContext.preferred);return}e.preventDefault(),e.stopImmediatePropagation(),this._pasteAsActionContext?this.showPasteAsPick(this._pasteAsActionContext.preferred,u,a,c,l):this.doPasteInline(u,a,c,l,e)}showPasteAsNoEditMessage(e,t){var i;(i=Or.get(this._editor))===null||i===void 0||i.showMessage(v(\"pasteAsError\",\"No paste edits for '{0}' found\",t instanceof Yi?t.value:t.providerId),e[0].getStartPosition())}doPasteInline(e,t,i,s,o){const r=Xs(async a=>{const l=this._editor;if(!l.hasModel())return;const c=l.getModel(),d=new Km(l,3,void 0,a);try{if(await this.mergeInDataFromCopy(i,s,d.token),d.token.isCancellationRequested)return;const u=e.filter(g=>this.isSupportedPasteProvider(g,i));if(!u.length||u.length===1&&u[0]instanceof Ag)return this.applyDefaultPasteHandler(i,s,d.token,o);const h={triggerKind:aL.Automatic},f=await this.getPasteEdits(u,i,c,t,h,d.token);if(d.token.isCancellationRequested)return;if(f.length===1&&f[0].provider instanceof Ag)return this.applyDefaultPasteHandler(i,s,d.token,o);if(f.length){const g=l.getOption(85).showPasteSelector===\"afterPaste\";return this._postPasteWidgetManager.applyEditAndShowIfNeeded(t,{activeEditIndex:0,allEdits:f},g,async(p,_)=>{var b,w;const y=await((w=(b=p.provider).resolveDocumentPasteEdit)===null||w===void 0?void 0:w.call(b,p,_));return y&&(p.additionalEdit=y.additionalEdit),p},d.token)}await this.applyDefaultPasteHandler(i,s,d.token,o)}finally{d.dispose(),this._currentPasteOperation===r&&(this._currentPasteOperation=void 0)}});this._pasteProgressManager.showWhile(t[0].getEndPosition(),v(\"pasteIntoEditorProgress\",\"Running paste handlers. Click to cancel\"),r),this._currentPasteOperation=r}showPasteAsPick(e,t,i,s,o){const r=Xs(async a=>{const l=this._editor;if(!l.hasModel())return;const c=l.getModel(),d=new Km(l,3,void 0,a);try{if(await this.mergeInDataFromCopy(s,o,d.token),d.token.isCancellationRequested)return;let u=t.filter(_=>this.isSupportedPasteProvider(_,s,e));e&&(u=u.filter(_=>this.providerMatchesPreference(_,e)));const h={triggerKind:aL.PasteAs,only:e&&e instanceof Yi?e:void 0};let f=await this.getPasteEdits(u,s,c,i,h,d.token);if(d.token.isCancellationRequested)return;if(e&&(f=f.filter(_=>e instanceof Yi?e.contains(_.kind):e.providerId===_.provider.id)),!f.length){h.only&&this.showPasteAsNoEditMessage(i,h.only);return}let g;if(e)g=f.at(0);else{const _=await this._quickInputService.pick(f.map(b=>{var w;return{label:b.title,description:(w=b.kind)===null||w===void 0?void 0:w.value,edit:b}}),{placeHolder:v(\"pasteAsPickerPlaceholder\",\"Select Paste Action\")});g=_==null?void 0:_.edit}if(!g)return;const p=Zhe(c.uri,i,g);await this._bulkEditService.apply(p,{editor:this._editor})}finally{d.dispose(),this._currentPasteOperation===r&&(this._currentPasteOperation=void 0)}});this._progressService.withProgress({location:10,title:v(\"pasteAsProgress\",\"Running paste handlers\")},()=>r)}setCopyMetadata(e,t){e.setData(Q5,JSON.stringify(t))}fetchCopyMetadata(e){var t;if(!e.clipboardData)return;const i=e.clipboardData.getData(Q5);if(i)try{return JSON.parse(i)}catch{return}const[s,o]=RB.getTextData(e.clipboardData);if(o)return{defaultPastePayload:{mode:o.mode,multicursorText:(t=o.multicursorText)!==null&&t!==void 0?t:null,pasteOnNewLine:!!o.isFromEmptySelection}}}async mergeInDataFromCopy(e,t,i){var s;if(t!=null&&t.id&&((s=av._currentCopyOperation)===null||s===void 0?void 0:s.handle)===t.id){const o=await av._currentCopyOperation.dataTransferPromise;if(i.isCancellationRequested)return;for(const[r,a]of o)e.replace(r,a)}if(!e.has(ss.uriList)){const o=await this._clipboardService.readResources();if(i.isCancellationRequested)return;o.length&&e.append(ss.uriList,cU(EP.create(o)))}}async getPasteEdits(e,t,i,s,o,r){const a=await uD(Promise.all(e.map(async c=>{var d,u;try{const h=await((d=c.provideDocumentPasteEdits)===null||d===void 0?void 0:d.call(c,i,s,t,o,r));return(u=h==null?void 0:h.edits)===null||u===void 0?void 0:u.map(f=>({...f,provider:c}))}catch(h){console.error(h)}})),r),l=tu(a??[]).flat().filter(c=>!o.only||o.only.contains(c.kind));return Yhe(l)}async applyDefaultPasteHandler(e,t,i,s){var o,r,a,l;const c=(o=e.get(ss.text))!==null&&o!==void 0?o:e.get(\"text\"),d=(r=await(c==null?void 0:c.asString()))!==null&&r!==void 0?r:\"\";if(i.isCancellationRequested)return;const u={clipboardEvent:s,text:d,pasteOnNewLine:(a=t==null?void 0:t.defaultPastePayload.pasteOnNewLine)!==null&&a!==void 0?a:!1,multicursorText:(l=t==null?void 0:t.defaultPastePayload.multicursorText)!==null&&l!==void 0?l:null,mode:null};this._editor.trigger(\"keyboard\",\"paste\",u)}isSupportedPasteProvider(e,t,i){var s;return!((s=e.pasteMimeTypes)===null||s===void 0)&&s.some(o=>t.matches(o))?!i||this.providerMatchesPreference(e,i):!1}providerMatchesPreference(e,t){return t instanceof Yi?e.providedPasteEditKinds?e.providedPasteEditKinds.some(i=>t.contains(i)):!0:e.id===t.providerId}};Oh.ID=\"editor.contrib.copyPasteActionController\";Oh=av=tZe([Vb(1,ht),Vb(2,ED),Vb(3,zg),Vb(4,Xe),Vb(5,Cc),Vb(6,kde)],Oh);const k0=\"9_cutcopypaste\",iZe=Lh||document.queryCommandSupported(\"cut\"),Jhe=Lh||document.queryCommandSupported(\"copy\"),nZe=typeof navigator.clipboard>\"u\"||lc?document.queryCommandSupported(\"paste\"):!0;function gU(n){return n.register(),n}const sZe=iZe?gU(new Pw({id:\"editor.action.clipboardCutAction\",precondition:void 0,kbOpts:Lh?{primary:2102,win:{primary:2102,secondary:[1044]},weight:100}:void 0,menuOpts:[{menuId:R.MenubarEditMenu,group:\"2_ccp\",title:v({},\"Cu&&t\"),order:1},{menuId:R.EditorContext,group:k0,title:v(\"actions.clipboard.cutLabel\",\"Cut\"),when:W.writable,order:1},{menuId:R.CommandPalette,group:\"\",title:v(\"actions.clipboard.cutLabel\",\"Cut\"),order:1},{menuId:R.SimpleEditorContext,group:k0,title:v(\"actions.clipboard.cutLabel\",\"Cut\"),when:W.writable,order:1}]})):void 0,oZe=Jhe?gU(new Pw({id:\"editor.action.clipboardCopyAction\",precondition:void 0,kbOpts:Lh?{primary:2081,win:{primary:2081,secondary:[2067]},weight:100}:void 0,menuOpts:[{menuId:R.MenubarEditMenu,group:\"2_ccp\",title:v({},\"&&Copy\"),order:2},{menuId:R.EditorContext,group:k0,title:v(\"actions.clipboard.copyLabel\",\"Copy\"),order:2},{menuId:R.CommandPalette,group:\"\",title:v(\"actions.clipboard.copyLabel\",\"Copy\"),order:1},{menuId:R.SimpleEditorContext,group:k0,title:v(\"actions.clipboard.copyLabel\",\"Copy\"),order:2}]})):void 0;ao.appendMenuItem(R.MenubarEditMenu,{submenu:R.MenubarCopy,title:Nt(\"copy as\",\"Copy As\"),group:\"2_ccp\",order:3});ao.appendMenuItem(R.EditorContext,{submenu:R.EditorContextCopy,title:Nt(\"copy as\",\"Copy As\"),group:k0,order:3});ao.appendMenuItem(R.EditorContext,{submenu:R.EditorContextShare,title:Nt(\"share\",\"Share\"),group:\"11_share\",order:-1,when:pe.and(pe.notEquals(\"resourceScheme\",\"output\"),W.editorTextFocus)});ao.appendMenuItem(R.ExplorerContext,{submenu:R.ExplorerContextShare,title:Nt(\"share\",\"Share\"),group:\"11_share\",order:-1});const J5=nZe?gU(new Pw({id:\"editor.action.clipboardPasteAction\",precondition:void 0,kbOpts:Lh?{primary:2100,win:{primary:2100,secondary:[1043]},linux:{primary:2100,secondary:[1043]},weight:100}:void 0,menuOpts:[{menuId:R.MenubarEditMenu,group:\"2_ccp\",title:v({},\"&&Paste\"),order:4},{menuId:R.EditorContext,group:k0,title:v(\"actions.clipboard.pasteLabel\",\"Paste\"),when:W.writable,order:4},{menuId:R.CommandPalette,group:\"\",title:v(\"actions.clipboard.pasteLabel\",\"Paste\"),order:1},{menuId:R.SimpleEditorContext,group:k0,title:v(\"actions.clipboard.pasteLabel\",\"Paste\"),when:W.writable,order:4}]})):void 0;class rZe extends Ke{constructor(){super({id:\"editor.action.clipboardCopyWithSyntaxHighlightingAction\",label:v(\"actions.clipboard.copyWithSyntaxHighlightingLabel\",\"Copy With Syntax Highlighting\"),alias:\"Copy With Syntax Highlighting\",precondition:void 0,kbOpts:{kbExpr:W.textInputFocus,primary:0,weight:100}})}run(e,t){!t.hasModel()||!t.getOption(37)&&t.getSelection().isEmpty()||(NB.forceCopyWithSyntaxHighlighting=!0,t.focus(),t.getContainerDomNode().ownerDocument.execCommand(\"copy\"),NB.forceCopyWithSyntaxHighlighting=!1)}}function efe(n,e){n&&(n.addImplementation(1e4,\"code-editor\",(t,i)=>{const s=t.get(vi).getFocusedCodeEditor();if(s&&s.hasTextFocus()){const o=s.getOption(37),r=s.getSelection();return r&&r.isEmpty()&&!o||s.getContainerDomNode().ownerDocument.execCommand(e),!0}return!1}),n.addImplementation(0,\"generic-dom\",(t,i)=>(Rw().execCommand(e),!0)))}efe(sZe,\"cut\");efe(oZe,\"copy\");J5&&(J5.addImplementation(1e4,\"code-editor\",(n,e)=>{var t,i;const s=n.get(vi),o=n.get(zg),r=s.getFocusedCodeEditor();return r&&r.hasTextFocus()?r.getContainerDomNode().ownerDocument.execCommand(\"paste\")?(i=(t=Oh.get(r))===null||t===void 0?void 0:t.finishedPaste())!==null&&i!==void 0?i:Promise.resolve():u_?(async()=>{const l=await o.readText();if(l!==\"\"){const c=EL.INSTANCE.get(l);let d=!1,u=null,h=null;c&&(d=r.getOption(37)&&!!c.isFromEmptySelection,u=typeof c.multicursorText<\"u\"?c.multicursorText:null,h=c.mode),r.trigger(\"keyboard\",\"paste\",{text:l,pasteOnNewLine:d,multicursorText:u,mode:h})}})():!0:!1}),J5.addImplementation(0,\"generic-dom\",(n,e)=>(Rw().execCommand(\"paste\"),!0)));Jhe&&xe(rZe);const kn=new class{constructor(){this.QuickFix=new Yi(\"quickfix\"),this.Refactor=new Yi(\"refactor\"),this.RefactorExtract=this.Refactor.append(\"extract\"),this.RefactorInline=this.Refactor.append(\"inline\"),this.RefactorMove=this.Refactor.append(\"move\"),this.RefactorRewrite=this.Refactor.append(\"rewrite\"),this.Notebook=new Yi(\"notebook\"),this.Source=new Yi(\"source\"),this.SourceOrganizeImports=this.Source.append(\"organizeImports\"),this.SourceFixAll=this.Source.append(\"fixAll\"),this.SurroundWith=this.Refactor.append(\"surround\")}};var Fa;(function(n){n.Refactor=\"refactor\",n.RefactorPreview=\"refactor preview\",n.Lightbulb=\"lightbulb\",n.Default=\"other (default)\",n.SourceAction=\"source action\",n.QuickFix=\"quick fix action\",n.FixAll=\"fix all\",n.OrganizeImports=\"organize imports\",n.AutoFix=\"auto fix\",n.QuickFixHover=\"quick fix hover window\",n.OnSave=\"save participants\",n.ProblemsView=\"problems view\"})(Fa||(Fa={}));function aZe(n,e){return!(n.include&&!n.include.intersects(e)||n.excludes&&n.excludes.some(t=>tfe(e,t,n.include))||!n.includeSourceActions&&kn.Source.contains(e))}function lZe(n,e){const t=e.kind?new Yi(e.kind):void 0;return!(n.include&&(!t||!n.include.contains(t))||n.excludes&&t&&n.excludes.some(i=>tfe(t,i,n.include))||!n.includeSourceActions&&t&&kn.Source.contains(t)||n.onlyIncludePreferredActions&&!e.isPreferred)}function tfe(n,e,t){return!(!e.contains(n)||t&&e.contains(t))}class sh{static fromUser(e,t){return!e||typeof e!=\"object\"?new sh(t.kind,t.apply,!1):new sh(sh.getKindFromUser(e,t.kind),sh.getApplyFromUser(e,t.apply),sh.getPreferredUser(e))}static getApplyFromUser(e,t){switch(typeof e.apply==\"string\"?e.apply.toLowerCase():\"\"){case\"first\":return\"first\";case\"never\":return\"never\";case\"ifsingle\":return\"ifSingle\";default:return t}}static getKindFromUser(e,t){return typeof e.kind==\"string\"?new Yi(e.kind):t}static getPreferredUser(e){return typeof e.preferred==\"boolean\"?e.preferred:!1}constructor(e,t,i){this.kind=e,this.apply=t,this.preferred=i}}class cZe{constructor(e,t,i){this.action=e,this.provider=t,this.highlightRange=i}async resolve(e){var t;if(!((t=this.provider)===null||t===void 0)&&t.resolveCodeAction&&!this.action.edit){let i;try{i=await this.provider.resolveCodeAction(this.action,e)}catch(s){as(s)}i&&(this.action.edit=i.edit)}return this}}const ife=\"editor.action.codeAction\",pU=\"editor.action.quickFix\",nfe=\"editor.action.autoFix\",sfe=\"editor.action.refactor\",ofe=\"editor.action.sourceAction\",mU=\"editor.action.organizeImports\",_U=\"editor.action.fixAll\";class Tx extends ne{static codeActionsPreferredComparator(e,t){return e.isPreferred&&!t.isPreferred?-1:!e.isPreferred&&t.isPreferred?1:0}static codeActionsComparator({action:e},{action:t}){return e.isAI&&!t.isAI?1:!e.isAI&&t.isAI?-1:Zo(e.diagnostics)?Zo(t.diagnostics)?Tx.codeActionsPreferredComparator(e,t):-1:Zo(t.diagnostics)?1:Tx.codeActionsPreferredComparator(e,t)}constructor(e,t,i){super(),this.documentation=t,this._register(i),this.allActions=[...e].sort(Tx.codeActionsComparator),this.validActions=this.allActions.filter(({action:s})=>!s.disabled)}get hasAutoFix(){return this.validActions.some(({action:e})=>!!e.kind&&kn.QuickFix.contains(new Yi(e.kind))&&!!e.isPreferred)}get hasAIFix(){return this.validActions.some(({action:e})=>!!e.isAI)}get allAIFixes(){return this.validActions.every(({action:e})=>!!e.isAI)}}const Fee={actions:[],documentation:void 0};async function Nx(n,e,t,i,s,o){var r;const a=i.filter||{},l={...a,excludes:[...a.excludes||[],kn.Notebook]},c={only:(r=a.include)===null||r===void 0?void 0:r.value,trigger:i.type},d=new iU(e,o),u=i.type===2,h=dZe(n,e,u?l:a),f=new be,g=h.map(async _=>{try{s.report(_);const b=await _.provideCodeActions(e,t,c,d.token);if(b&&f.add(b),d.token.isCancellationRequested)return Fee;const w=((b==null?void 0:b.actions)||[]).filter(S=>S&&lZe(a,S)),y=hZe(_,w,a.include);return{actions:w.map(S=>new cZe(S,_)),documentation:y}}catch(b){if(ld(b))throw b;return as(b),Fee}}),p=n.onDidChange(()=>{const _=n.all(e);zn(_,h)||d.cancel()});try{const _=await Promise.all(g),b=_.map(y=>y.actions).flat(),w=[...tu(_.map(y=>y.documentation)),...uZe(n,e,i,b)];return new Tx(b,w,f)}finally{p.dispose(),d.dispose()}}function dZe(n,e,t){return n.all(e).filter(i=>i.providedCodeActionKinds?i.providedCodeActionKinds.some(s=>aZe(t,new Yi(s))):!0)}function*uZe(n,e,t,i){var s,o,r;if(e&&i.length)for(const a of n.all(e))a._getAdditionalMenuItems&&(yield*(s=a._getAdditionalMenuItems)===null||s===void 0?void 0:s.call(a,{trigger:t.type,only:(r=(o=t.filter)===null||o===void 0?void 0:o.include)===null||r===void 0?void 0:r.value},i.map(l=>l.action)))}function hZe(n,e,t){if(!n.documentation)return;const i=n.documentation.map(s=>({kind:new Yi(s.kind),command:s.command}));if(t){let s;for(const o of i)o.kind.contains(t)&&(s?s.kind.contains(o.kind)&&(s=o):s=o);if(s)return s==null?void 0:s.command}for(const s of e)if(s.kind){for(const o of i)if(o.kind.contains(new Yi(s.kind)))return o.command}}var Av;(function(n){n.OnSave=\"onSave\",n.FromProblemsView=\"fromProblemsView\",n.FromCodeActions=\"fromCodeActions\",n.FromAILightbulb=\"fromAILightbulb\"})(Av||(Av={}));async function fZe(n,e,t,i,s=Qt.None){var o;const r=n.get(ED),a=n.get(Sn),l=n.get(Po),c=n.get(ps);if(l.publicLog2(\"codeAction.applyCodeAction\",{codeActionTitle:e.action.title,codeActionKind:e.action.kind,codeActionIsPreferred:!!e.action.isPreferred,reason:t}),await e.resolve(s),!s.isCancellationRequested&&!(!((o=e.action.edit)===null||o===void 0)&&o.edits.length&&!(await r.apply(e.action.edit,{editor:i==null?void 0:i.editor,label:e.action.title,quotableLabel:e.action.title,code:\"undoredo.codeAction\",respectAutoSaveConfig:t!==Av.OnSave,showPreview:i==null?void 0:i.preview})).isApplied)&&e.action.command)try{await a.executeCommand(e.action.command.id,...e.action.command.arguments||[])}catch(d){const u=gZe(d);c.error(typeof u==\"string\"?u:v(\"applyCodeActionFailed\",\"An unknown error occurred while applying the code action\"))}}function gZe(n){return typeof n==\"string\"?n:n instanceof Error&&typeof n.message==\"string\"?n.message:void 0}ri.registerCommand(\"_executeCodeActionProvider\",async function(n,e,t,i,s){if(!(e instanceof pt))throw ic();const{codeActionProvider:o}=n.get(Xe),r=n.get(Pn).getModel(e);if(!r)throw ic();const a=it.isISelection(t)?it.liftSelection(t):A.isIRange(t)?r.validateRange(t):void 0;if(!a)throw ic();const l=typeof i==\"string\"?new Yi(i):void 0,c=await Nx(o,r,a,{type:1,triggerAction:Fa.Default,filter:{includeSourceActions:!0,include:l}},bg.None,Qt.None),d=[],u=Math.min(c.validActions.length,typeof s==\"number\"?s:0);for(let h=0;h<u;h++)d.push(c.validActions[h].resolve(Qt.None));try{return await Promise.all(d),c.validActions.map(h=>h.action)}finally{setTimeout(()=>c.dispose(),100)}});var pZe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},mZe=function(n,e){return function(t,i){e(t,i,n)}},V6;let dR=V6=class{constructor(e){this.keybindingService=e}getResolver(){const e=new pu(()=>this.keybindingService.getKeybindings().filter(t=>V6.codeActionCommands.indexOf(t.command)>=0).filter(t=>t.resolvedKeybinding).map(t=>{let i=t.commandArgs;return t.command===mU?i={kind:kn.SourceOrganizeImports.value}:t.command===_U&&(i={kind:kn.SourceFixAll.value}),{resolvedKeybinding:t.resolvedKeybinding,...sh.fromUser(i,{kind:Yi.None,apply:\"never\"})}}));return t=>{if(t.kind){const i=this.bestKeybindingForCodeAction(t,e.value);return i==null?void 0:i.resolvedKeybinding}}}bestKeybindingForCodeAction(e,t){if(!e.kind)return;const i=new Yi(e.kind);return t.filter(s=>s.kind.contains(i)).filter(s=>s.preferred?e.isPreferred:!0).reduceRight((s,o)=>s?s.kind.contains(o.kind)?o:s:o,void 0)}};dR.codeActionCommands=[sfe,ife,ofe,mU,_U];dR=V6=pZe([mZe(0,Li)],dR);V(\"symbolIcon.arrayForeground\",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v(\"symbolIcon.arrayForeground\",\"The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.booleanForeground\",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v(\"symbolIcon.booleanForeground\",\"The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.classForeground\",{dark:\"#EE9D28\",light:\"#D67E00\",hcDark:\"#EE9D28\",hcLight:\"#D67E00\"},v(\"symbolIcon.classForeground\",\"The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.colorForeground\",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v(\"symbolIcon.colorForeground\",\"The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.constantForeground\",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v(\"symbolIcon.constantForeground\",\"The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.constructorForeground\",{dark:\"#B180D7\",light:\"#652D90\",hcDark:\"#B180D7\",hcLight:\"#652D90\"},v(\"symbolIcon.constructorForeground\",\"The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.enumeratorForeground\",{dark:\"#EE9D28\",light:\"#D67E00\",hcDark:\"#EE9D28\",hcLight:\"#D67E00\"},v(\"symbolIcon.enumeratorForeground\",\"The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.enumeratorMemberForeground\",{dark:\"#75BEFF\",light:\"#007ACC\",hcDark:\"#75BEFF\",hcLight:\"#007ACC\"},v(\"symbolIcon.enumeratorMemberForeground\",\"The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.eventForeground\",{dark:\"#EE9D28\",light:\"#D67E00\",hcDark:\"#EE9D28\",hcLight:\"#D67E00\"},v(\"symbolIcon.eventForeground\",\"The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.fieldForeground\",{dark:\"#75BEFF\",light:\"#007ACC\",hcDark:\"#75BEFF\",hcLight:\"#007ACC\"},v(\"symbolIcon.fieldForeground\",\"The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.fileForeground\",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v(\"symbolIcon.fileForeground\",\"The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.folderForeground\",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v(\"symbolIcon.folderForeground\",\"The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.functionForeground\",{dark:\"#B180D7\",light:\"#652D90\",hcDark:\"#B180D7\",hcLight:\"#652D90\"},v(\"symbolIcon.functionForeground\",\"The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.interfaceForeground\",{dark:\"#75BEFF\",light:\"#007ACC\",hcDark:\"#75BEFF\",hcLight:\"#007ACC\"},v(\"symbolIcon.interfaceForeground\",\"The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.keyForeground\",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v(\"symbolIcon.keyForeground\",\"The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.keywordForeground\",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v(\"symbolIcon.keywordForeground\",\"The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.methodForeground\",{dark:\"#B180D7\",light:\"#652D90\",hcDark:\"#B180D7\",hcLight:\"#652D90\"},v(\"symbolIcon.methodForeground\",\"The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.moduleForeground\",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v(\"symbolIcon.moduleForeground\",\"The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.namespaceForeground\",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v(\"symbolIcon.namespaceForeground\",\"The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.nullForeground\",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v(\"symbolIcon.nullForeground\",\"The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.numberForeground\",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v(\"symbolIcon.numberForeground\",\"The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.objectForeground\",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v(\"symbolIcon.objectForeground\",\"The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.operatorForeground\",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v(\"symbolIcon.operatorForeground\",\"The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.packageForeground\",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v(\"symbolIcon.packageForeground\",\"The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.propertyForeground\",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v(\"symbolIcon.propertyForeground\",\"The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.referenceForeground\",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v(\"symbolIcon.referenceForeground\",\"The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.snippetForeground\",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v(\"symbolIcon.snippetForeground\",\"The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.stringForeground\",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v(\"symbolIcon.stringForeground\",\"The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.structForeground\",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v(\"symbolIcon.structForeground\",\"The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.textForeground\",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v(\"symbolIcon.textForeground\",\"The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.typeParameterForeground\",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v(\"symbolIcon.typeParameterForeground\",\"The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.unitForeground\",{dark:Ne,light:Ne,hcDark:Ne,hcLight:Ne},v(\"symbolIcon.unitForeground\",\"The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));V(\"symbolIcon.variableForeground\",{dark:\"#75BEFF\",light:\"#007ACC\",hcDark:\"#75BEFF\",hcLight:\"#007ACC\"},v(\"symbolIcon.variableForeground\",\"The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));const rfe=Object.freeze({kind:Yi.Empty,title:v(\"codeAction.widget.id.more\",\"More Actions...\")}),_Ze=Object.freeze([{kind:kn.QuickFix,title:v(\"codeAction.widget.id.quickfix\",\"Quick Fix\")},{kind:kn.RefactorExtract,title:v(\"codeAction.widget.id.extract\",\"Extract\"),icon:Te.wrench},{kind:kn.RefactorInline,title:v(\"codeAction.widget.id.inline\",\"Inline\"),icon:Te.wrench},{kind:kn.RefactorRewrite,title:v(\"codeAction.widget.id.convert\",\"Rewrite\"),icon:Te.wrench},{kind:kn.RefactorMove,title:v(\"codeAction.widget.id.move\",\"Move\"),icon:Te.wrench},{kind:kn.SurroundWith,title:v(\"codeAction.widget.id.surround\",\"Surround With\"),icon:Te.surroundWith},{kind:kn.Source,title:v(\"codeAction.widget.id.source\",\"Source Action\"),icon:Te.symbolFile},rfe]);function vZe(n,e,t){if(!e)return n.map(o=>{var r;return{kind:\"action\",item:o,group:rfe,disabled:!!o.action.disabled,label:o.action.disabled||o.action.title,canPreview:!!(!((r=o.action.edit)===null||r===void 0)&&r.edits.length)}});const i=_Ze.map(o=>({group:o,actions:[]}));for(const o of n){const r=o.action.kind?new Yi(o.action.kind):Yi.None;for(const a of i)if(a.group.kind.contains(r)){a.actions.push(o);break}}const s=[];for(const o of i)if(o.actions.length){s.push({kind:\"header\",group:o.group});for(const r of o.actions){const a=o.group;s.push({kind:\"action\",item:r,group:r.action.isAI?{title:a.title,kind:a.kind,icon:Te.sparkle}:a,label:r.action.title,disabled:!!r.action.disabled,keybinding:t(r.action)})}}return s}var bZe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Bee=function(n,e){return function(t,i){e(t,i,n)}},z6,A1;(function(n){n.Hidden={type:0};class e{constructor(i,s,o,r){this.actions=i,this.trigger=s,this.editorPosition=o,this.widgetPosition=r,this.type=1}}n.Showing=e})(A1||(A1={}));let D0=z6=class extends ne{constructor(e,t,i){super(),this._editor=e,this._keybindingService=t,this._onClick=this._register(new X),this.onClick=this._onClick.event,this._state=A1.Hidden,this._iconClasses=[],this._domNode=ke(\"div.lightBulbWidget\"),this._domNode.role=\"listbox\",this._register(hn.ignoreTarget(this._domNode)),this._editor.addContentWidget(this),this._register(this._editor.onDidChangeModelContent(s=>{const o=this._editor.getModel();(this.state.type!==1||!o||this.state.editorPosition.lineNumber>=o.getLineCount())&&this.hide()})),this._register(wMe(this._domNode,s=>{if(this.state.type!==1)return;this._editor.focus(),s.preventDefault();const{top:o,height:r}=bs(this._domNode),a=this._editor.getOption(67);let l=Math.floor(a/3);this.state.widgetPosition.position!==null&&this.state.widgetPosition.position.lineNumber<this.state.editorPosition.lineNumber&&(l+=a),this._onClick.fire({x:s.posx,y:o+r+l,actions:this.state.actions,trigger:this.state.trigger})})),this._register(ce(this._domNode,\"mouseenter\",s=>{(s.buttons&1)===1&&this.hide()})),this._register(Ae.runAndSubscribe(this._keybindingService.onDidUpdateKeybindings,()=>{var s,o,r,a;this._preferredKbLabel=(o=(s=this._keybindingService.lookupKeybinding(nfe))===null||s===void 0?void 0:s.getLabel())!==null&&o!==void 0?o:void 0,this._quickFixKbLabel=(a=(r=this._keybindingService.lookupKeybinding(pU))===null||r===void 0?void 0:r.getLabel())!==null&&a!==void 0?a:void 0,this._updateLightBulbTitleAndIcon()}))}dispose(){super.dispose(),this._editor.removeContentWidget(this)}getId(){return\"LightBulbWidget\"}getDomNode(){return this._domNode}getPosition(){return this._state.type===1?this._state.widgetPosition:null}update(e,t,i){if(e.validActions.length<=0)return this.hide();if(!this._editor.getOptions().get(65).enabled)return this.hide();const o=this._editor.getModel();if(!o)return this.hide();const{lineNumber:r,column:a}=o.validatePosition(i),l=o.getOptions().tabSize,c=this._editor.getOptions().get(50),d=o.getLineContent(r),u=WM(d,l),h=c.spaceWidth*u>22,f=w=>w>2&&this._editor.getTopForLineNumber(w)===this._editor.getTopForLineNumber(w-1);let g=r,p=1;if(!h){if(r>1&&!f(r-1))g-=1;else if(r<o.getLineCount()&&!f(r+1))g+=1;else if(a*c.spaceWidth<22)return this.hide();p=/^\\S\\s*$/.test(o.getLineContent(g))?2:1}this.state=new A1.Showing(e,t,i,{position:{lineNumber:g,column:p},preference:z6._posPref});const _=e.validActions,b=e.validActions[0].action.kind;if(_.length!==1||!b){this._editor.layoutContentWidget(this);return}this._editor.layoutContentWidget(this)}hide(){this.state!==A1.Hidden&&(this.state=A1.Hidden,this._editor.layoutContentWidget(this))}get state(){return this._state}set state(e){this._state=e,this._updateLightBulbTitleAndIcon()}_updateLightBulbTitleAndIcon(){if(this._domNode.classList.remove(...this._iconClasses),this._iconClasses=[],this.state.type!==1)return;let e,t=!1;this.state.actions.allAIFixes?(e=Te.sparkleFilled,this.state.actions.validActions.length===1&&(t=!0)):this.state.actions.hasAutoFix?this.state.actions.hasAIFix?e=Te.lightbulbSparkleAutofix:e=Te.lightbulbAutofix:this.state.actions.hasAIFix?e=Te.lightbulbSparkle:e=Te.lightBulb,this._updateLightbulbTitle(this.state.actions.hasAutoFix,t),this._iconClasses=_t.asClassNameArray(e),this._domNode.classList.add(...this._iconClasses)}_updateLightbulbTitle(e,t){this.state.type===1&&(t?this.title=v(\"codeActionAutoRun\",\"Run: {0}\",this.state.actions.validActions[0].action.title):e&&this._preferredKbLabel?this.title=v(\"preferredcodeActionWithKb\",\"Show Code Actions. Preferred Quick Fix Available ({0})\",this._preferredKbLabel):!e&&this._quickFixKbLabel?this.title=v(\"codeActionWithKb\",\"Show Code Actions ({0})\",this._quickFixKbLabel):e||(this.title=v(\"codeAction\",\"Show Code Actions\")))}set title(e){this._domNode.title=e}};D0.ID=\"editor.contrib.lightbulbWidget\";D0._posPref=[0];D0=z6=bZe([Bee(1,Li),Bee(2,Sn)],D0);var afe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},$6=function(n,e){return function(t,i){e(t,i,n)}};const lfe=\"acceptSelectedCodeAction\",cfe=\"previewSelectedCodeAction\";class CZe{get templateId(){return\"header\"}renderTemplate(e){e.classList.add(\"group-header\");const t=document.createElement(\"span\");return e.append(t),{container:e,text:t}}renderElement(e,t,i){var s,o;i.text.textContent=(o=(s=e.group)===null||s===void 0?void 0:s.title)!==null&&o!==void 0?o:\"\"}disposeTemplate(e){}}let U6=class{get templateId(){return\"action\"}constructor(e,t){this._supportsPreview=e,this._keybindingService=t}renderTemplate(e){e.classList.add(this.templateId);const t=document.createElement(\"div\");t.className=\"icon\",e.append(t);const i=document.createElement(\"span\");i.className=\"title\",e.append(i);const s=new $w(e,Da);return{container:e,icon:t,text:i,keybinding:s}}renderElement(e,t,i){var s,o,r;if(!((s=e.group)===null||s===void 0)&&s.icon?(i.icon.className=_t.asClassName(e.group.icon),e.group.icon.color&&(i.icon.style.color=Ge(e.group.icon.color.id))):(i.icon.className=_t.asClassName(Te.lightBulb),i.icon.style.color=\"var(--vscode-editorLightBulb-foreground)\"),!e.item||!e.label)return;i.text.textContent=dfe(e.label),i.keybinding.set(e.keybinding),PMe(!!e.keybinding,i.keybinding.element);const a=(o=this._keybindingService.lookupKeybinding(lfe))===null||o===void 0?void 0:o.getLabel(),l=(r=this._keybindingService.lookupKeybinding(cfe))===null||r===void 0?void 0:r.getLabel();i.container.classList.toggle(\"option-disabled\",e.disabled),e.disabled?i.container.title=e.label:a&&l?this._supportsPreview&&e.canPreview?i.container.title=v({},\"{0} to Apply, {1} to Preview\",a,l):i.container.title=v({},\"{0} to Apply\",a):i.container.title=\"\"}disposeTemplate(e){e.keybinding.dispose()}};U6=afe([$6(1,Li)],U6);class wZe extends UIEvent{constructor(){super(\"acceptSelectedAction\")}}class Wee extends UIEvent{constructor(){super(\"previewSelectedAction\")}}function yZe(n){if(n.kind===\"action\")return n.label}let j6=class extends ne{constructor(e,t,i,s,o,r){super(),this._delegate=s,this._contextViewService=o,this._keybindingService=r,this._actionLineHeight=24,this._headerLineHeight=26,this.cts=this._register(new $n),this.domNode=document.createElement(\"div\"),this.domNode.classList.add(\"actionList\");const a={getHeight:l=>l.kind===\"header\"?this._headerLineHeight:this._actionLineHeight,getTemplateId:l=>l.kind};this._list=this._register(new El(e,this.domNode,a,[new U6(t,this._keybindingService),new CZe],{keyboardSupport:!1,typeNavigationEnabled:!0,keyboardNavigationLabelProvider:{getKeyboardNavigationLabel:yZe},accessibilityProvider:{getAriaLabel:l=>{if(l.kind===\"action\"){let c=l.label?dfe(l==null?void 0:l.label):\"\";return l.disabled&&(c=v({},\"{0}, Disabled Reason: {1}\",c,l.disabled)),c}return null},getWidgetAriaLabel:()=>v({},\"Action Widget\"),getRole:l=>l.kind===\"action\"?\"option\":\"separator\",getWidgetRole:()=>\"listbox\"}})),this._list.style(eb),this._register(this._list.onMouseClick(l=>this.onListClick(l))),this._register(this._list.onMouseOver(l=>this.onListHover(l))),this._register(this._list.onDidChangeFocus(()=>this.onFocus())),this._register(this._list.onDidChangeSelection(l=>this.onListSelection(l))),this._allMenuItems=i,this._list.splice(0,this._list.length,this._allMenuItems),this._list.length&&this.focusNext()}focusCondition(e){return!e.disabled&&e.kind===\"action\"}hide(e){this._delegate.onHide(e),this.cts.cancel(),this._contextViewService.hideContextView()}layout(e){const t=this._allMenuItems.filter(l=>l.kind===\"header\").length,s=this._allMenuItems.length*this._actionLineHeight+t*this._headerLineHeight-t*this._actionLineHeight;this._list.layout(s);let o=e;if(this._allMenuItems.length>=50)o=380;else{const l=this._allMenuItems.map((c,d)=>{const u=this.domNode.ownerDocument.getElementById(this._list.getElementID(d));if(u){u.style.width=\"auto\";const h=u.getBoundingClientRect().width;return u.style.width=\"\",h}return 0});o=Math.max(...l,e)}const a=Math.min(s,this.domNode.ownerDocument.body.clientHeight*.7);return this._list.layout(a,o),this.domNode.style.height=`${a}px`,this._list.domFocus(),o}focusPrevious(){this._list.focusPrevious(1,!0,void 0,this.focusCondition)}focusNext(){this._list.focusNext(1,!0,void 0,this.focusCondition)}acceptSelected(e){const t=this._list.getFocus();if(t.length===0)return;const i=t[0],s=this._list.element(i);if(!this.focusCondition(s))return;const o=e?new Wee:new wZe;this._list.setSelection([i],o)}onListSelection(e){if(!e.elements.length)return;const t=e.elements[0];t.item&&this.focusCondition(t)?this._delegate.onSelect(t.item,e.browserEvent instanceof Wee):this._list.setSelection([])}onFocus(){var e,t;const i=this._list.getFocus();if(i.length===0)return;const s=i[0],o=this._list.element(s);(t=(e=this._delegate).onFocus)===null||t===void 0||t.call(e,o.item)}async onListHover(e){const t=e.element;if(t&&t.item&&this.focusCondition(t)){if(this._delegate.onHover&&!t.disabled&&t.kind===\"action\"){const i=await this._delegate.onHover(t.item,this.cts.token);t.canPreview=i?i.canPreview:void 0}e.index&&this._list.splice(e.index,1,[t])}this._list.setFocus(typeof e.index==\"number\"?[e.index]:[])}onListClick(e){e.element&&this.focusCondition(e.element)&&this._list.setFocus([])}};j6=afe([$6(4,Wg),$6(5,Li)],j6);function dfe(n){return n.replace(/\\r\\n|\\r|\\n/g,\" \")}var SZe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},e3=function(n,e){return function(t,i){e(t,i,n)}};V(\"actionBar.toggledBackground\",{dark:Lv,light:Lv,hcDark:Lv,hcLight:Lv},v(\"actionBar.toggledBackground\",\"Background color for toggled action items in action bar.\"));const I0={Visible:new He(\"codeActionMenuVisible\",!1,v(\"codeActionMenuVisible\",\"Whether the action widget list is visible\"))},ob=Jt(\"actionWidgetService\");let E0=class extends ne{get isVisible(){return I0.Visible.getValue(this._contextKeyService)||!1}constructor(e,t,i){super(),this._contextViewService=e,this._contextKeyService=t,this._instantiationService=i,this._list=this._register(new Qs)}show(e,t,i,s,o,r,a){const l=I0.Visible.bindTo(this._contextKeyService),c=this._instantiationService.createInstance(j6,e,t,i,s);this._contextViewService.showContextView({getAnchor:()=>o,render:d=>(l.set(!0),this._renderWidget(d,c,a??[])),onHide:d=>{l.reset(),this._onWidgetClosed(d)}},r,!1)}acceptSelected(e){var t;(t=this._list.value)===null||t===void 0||t.acceptSelected(e)}focusPrevious(){var e,t;(t=(e=this._list)===null||e===void 0?void 0:e.value)===null||t===void 0||t.focusPrevious()}focusNext(){var e,t;(t=(e=this._list)===null||e===void 0?void 0:e.value)===null||t===void 0||t.focusNext()}hide(e){var t;(t=this._list.value)===null||t===void 0||t.hide(e),this._list.clear()}_renderWidget(e,t,i){var s;const o=document.createElement(\"div\");if(o.classList.add(\"action-widget\"),e.appendChild(o),this._list.value=t,this._list.value)o.appendChild(this._list.value.domNode);else throw new Error(\"List has no value\");const r=new be,a=document.createElement(\"div\"),l=e.appendChild(a);l.classList.add(\"context-view-block\"),r.add(ce(l,Le.MOUSE_DOWN,g=>g.stopPropagation()));const c=document.createElement(\"div\"),d=e.appendChild(c);d.classList.add(\"context-view-pointerBlock\"),r.add(ce(d,Le.POINTER_MOVE,()=>d.remove())),r.add(ce(d,Le.MOUSE_DOWN,()=>d.remove()));let u=0;if(i.length){const g=this._createActionBar(\".action-widget-action-bar\",i);g&&(o.appendChild(g.getContainer().parentElement),r.add(g),u=g.getContainer().offsetWidth)}const h=(s=this._list.value)===null||s===void 0?void 0:s.layout(u);o.style.width=`${h}px`;const f=r.add(ou(e));return r.add(f.onDidBlur(()=>this.hide(!0))),r}_createActionBar(e,t){if(!t.length)return;const i=ke(e),s=new hc(i);return s.push(t,{icon:!1,label:!0}),s}_onWidgetClosed(e){var t;(t=this._list.value)===null||t===void 0||t.hide(e)}};E0=SZe([e3(0,Wg),e3(1,Ct),e3(2,ht)],E0);ai(ob,E0,1);const jD=1100;dn(class extends zr{constructor(){super({id:\"hideCodeActionWidget\",title:Nt(\"hideCodeActionWidget.title\",\"Hide action widget\"),precondition:I0.Visible,keybinding:{weight:jD,primary:9,secondary:[1033]}})}run(n){n.get(ob).hide(!0)}});dn(class extends zr{constructor(){super({id:\"selectPrevCodeAction\",title:Nt(\"selectPrevCodeAction.title\",\"Select previous action\"),precondition:I0.Visible,keybinding:{weight:jD,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})}run(n){const e=n.get(ob);e instanceof E0&&e.focusPrevious()}});dn(class extends zr{constructor(){super({id:\"selectNextCodeAction\",title:Nt(\"selectNextCodeAction.title\",\"Select next action\"),precondition:I0.Visible,keybinding:{weight:jD,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})}run(n){const e=n.get(ob);e instanceof E0&&e.focusNext()}});dn(class extends zr{constructor(){super({id:lfe,title:Nt(\"acceptSelected.title\",\"Accept selected action\"),precondition:I0.Visible,keybinding:{weight:jD,primary:3,secondary:[2137]}})}run(n){const e=n.get(ob);e instanceof E0&&e.acceptSelected()}});dn(class extends zr{constructor(){super({id:cfe,title:Nt(\"previewSelected.title\",\"Preview selected action\"),precondition:I0.Visible,keybinding:{weight:jD,primary:2051}})}run(n){const e=n.get(ob);e instanceof E0&&e.acceptSelected(!0)}});const ufe=new He(\"supportedCodeAction\",\"\"),Hee=\"_typescript.applyFixAllCodeAction\";class xZe extends ne{constructor(e,t,i,s=250){super(),this._editor=e,this._markerService=t,this._signalChange=i,this._delay=s,this._autoTriggerTimer=this._register(new cd),this._register(this._markerService.onMarkerChanged(o=>this._onMarkerChanges(o))),this._register(this._editor.onDidChangeCursorPosition(()=>this._tryAutoTrigger()))}trigger(e){const t=this._getRangeOfSelectionUnlessWhitespaceEnclosed(e);this._signalChange(t?{trigger:e,selection:t}:void 0)}_onMarkerChanges(e){const t=this._editor.getModel();t&&e.some(i=>Kz(i,t.uri))&&this._tryAutoTrigger()}_tryAutoTrigger(){this._autoTriggerTimer.cancelAndSet(()=>{this.trigger({type:2,triggerAction:Fa.Default})},this._delay)}_getRangeOfSelectionUnlessWhitespaceEnclosed(e){if(!this._editor.hasModel())return;const t=this._editor.getSelection();if(e.type===1)return t;const i=this._editor.getOption(65).enabled;if(i!==Hc.Off){{if(i===Hc.On)return t;if(i===Hc.OnCode){if(!t.isEmpty())return t;const o=this._editor.getModel(),{lineNumber:r,column:a}=t.getPosition(),l=o.getLineContent(r);if(l.length===0)return;if(a===1){if(/\\s/.test(l[0]))return}else if(a===o.getLineMaxColumn(r)){if(/\\s/.test(l[l.length-1]))return}else if(/\\s/.test(l[a-2])&&/\\s/.test(l[a-1]))return}}return t}}}var Cv;(function(n){n.Empty={type:0};class e{constructor(i,s,o){this.trigger=i,this.position=s,this._cancellablePromise=o,this.type=1,this.actions=o.catch(r=>{if(ld(r))return hfe;throw r})}cancel(){this._cancellablePromise.cancel()}}n.Triggered=e})(Cv||(Cv={}));const hfe=Object.freeze({allActions:[],validActions:[],dispose:()=>{},documentation:[],hasAutoFix:!1,hasAIFix:!1,allAIFixes:!1});class LZe extends ne{constructor(e,t,i,s,o,r){super(),this._editor=e,this._registry=t,this._markerService=i,this._progressService=o,this._configurationService=r,this._codeActionOracle=this._register(new Qs),this._state=Cv.Empty,this._onDidChangeState=this._register(new X),this.onDidChangeState=this._onDidChangeState.event,this._disposed=!1,this._supportedCodeActions=ufe.bindTo(s),this._register(this._editor.onDidChangeModel(()=>this._update())),this._register(this._editor.onDidChangeModelLanguage(()=>this._update())),this._register(this._registry.onDidChange(()=>this._update())),this._register(this._editor.onDidChangeConfiguration(a=>{a.hasChanged(65)&&this._update()})),this._update()}dispose(){this._disposed||(this._disposed=!0,super.dispose(),this.setState(Cv.Empty,!0))}_settingEnabledNearbyQuickfixes(){var e;const t=(e=this._editor)===null||e===void 0?void 0:e.getModel();return this._configurationService?this._configurationService.getValue(\"editor.codeActionWidget.includeNearbyQuickFixes\",{resource:t==null?void 0:t.uri}):!1}_update(){if(this._disposed)return;this._codeActionOracle.value=void 0,this.setState(Cv.Empty);const e=this._editor.getModel();if(e&&this._registry.has(e)&&!this._editor.getOption(91)){const t=this._registry.all(e).flatMap(i=>{var s;return(s=i.providedCodeActionKinds)!==null&&s!==void 0?s:[]});this._supportedCodeActions.set(t.join(\" \")),this._codeActionOracle.value=new xZe(this._editor,this._markerService,i=>{var s;if(!i){this.setState(Cv.Empty);return}const o=i.selection.getStartPosition(),r=Xs(async c=>{var d,u,h,f,g,p,_,b,w,y;if(this._settingEnabledNearbyQuickfixes()&&i.trigger.type===1&&(i.trigger.triggerAction===Fa.QuickFix||!((u=(d=i.trigger.filter)===null||d===void 0?void 0:d.include)===null||u===void 0)&&u.contains(kn.QuickFix))){const S=await Nx(this._registry,e,i.selection,i.trigger,bg.None,c),x=[...S.allActions];if(c.isCancellationRequested)return hfe;const k=(h=S.validActions)===null||h===void 0?void 0:h.some(I=>I.action.kind?kn.QuickFix.contains(new Yi(I.action.kind)):!1),D=this._markerService.read({resource:e.uri});if(k){for(const I of S.validActions)!((g=(f=I.action.command)===null||f===void 0?void 0:f.arguments)===null||g===void 0)&&g.some(N=>typeof N==\"string\"&&N.includes(Hee))&&(I.action.diagnostics=[...D.filter(N=>N.relatedInformation)]);return{validActions:S.validActions,allActions:x,documentation:S.documentation,hasAutoFix:S.hasAutoFix,hasAIFix:S.hasAIFix,allAIFixes:S.allAIFixes,dispose:()=>{S.dispose()}}}else if(!k&&D.length>0){const I=i.selection.getPosition();let N=I,P=Number.MAX_VALUE;const O=[...S.validActions];for(const z of D){const K=z.endColumn,ae=z.endLineNumber,se=z.startLineNumber;if(ae===I.lineNumber||se===I.lineNumber){N=new ee(ae,K);const he={type:i.trigger.type,triggerAction:i.trigger.triggerAction,filter:{include:!((p=i.trigger.filter)===null||p===void 0)&&p.include?(_=i.trigger.filter)===null||_===void 0?void 0:_.include:kn.QuickFix},autoApply:i.trigger.autoApply,context:{notAvailableMessage:((b=i.trigger.context)===null||b===void 0?void 0:b.notAvailableMessage)||\"\",position:N}},me=new it(N.lineNumber,N.column,N.lineNumber,N.column),De=await Nx(this._registry,e,me,he,bg.None,c);if(De.validActions.length!==0){for(const lt of De.validActions)!((y=(w=lt.action.command)===null||w===void 0?void 0:w.arguments)===null||y===void 0)&&y.some(We=>typeof We==\"string\"&&We.includes(Hee))&&(lt.action.diagnostics=[...D.filter(We=>We.relatedInformation)]);S.allActions.length===0&&x.push(...De.allActions),Math.abs(I.column-K)<P?O.unshift(...De.validActions):O.push(...De.validActions)}P=Math.abs(I.column-K)}}const M=O.filter((z,K,ae)=>ae.findIndex(se=>se.action.title===z.action.title)===K);return M.sort((z,K)=>z.action.isPreferred&&!K.action.isPreferred?-1:!z.action.isPreferred&&K.action.isPreferred||z.action.isAI&&!K.action.isAI?1:!z.action.isAI&&K.action.isAI?-1:0),{validActions:M,allActions:x,documentation:S.documentation,hasAutoFix:S.hasAutoFix,hasAIFix:S.hasAIFix,allAIFixes:S.allAIFixes,dispose:()=>{S.dispose()}}}}return Nx(this._registry,e,i.selection,i.trigger,bg.None,c)});i.trigger.type===1&&((s=this._progressService)===null||s===void 0||s.showWhile(r,250));const a=new Cv.Triggered(i.trigger,o,r);let l=!1;this._state.type===1&&(l=this._state.trigger.type===1&&a.type===1&&a.trigger.type===2&&this._state.position!==a.position),l?setTimeout(()=>{this.setState(a)},500):this.setState(a)},void 0),this._codeActionOracle.value.trigger({type:2,triggerAction:Fa.Default})}else this._supportedCodeActions.reset()}trigger(e){var t;(t=this._codeActionOracle.value)===null||t===void 0||t.trigger(e)}setState(e,t){e!==this._state&&(this._state.type===1&&this._state.cancel(),this._state=e,!t&&!this._disposed&&this._onDidChangeState.fire(e))}}var kZe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Nu=function(n,e){return function(t,i){e(t,i,n)}},s1;const DZe=\"quickfix-edit-highlight\";let qm=s1=class extends ne{static get(e){return e.getContribution(s1.ID)}constructor(e,t,i,s,o,r,a,l,c,d,u){super(),this._commandService=a,this._configurationService=l,this._actionWidgetService=c,this._instantiationService=d,this._telemetryService=u,this._activeCodeActions=this._register(new Qs),this._showDisabled=!1,this._disposed=!1,this._editor=e,this._model=this._register(new LZe(this._editor,o.codeActionProvider,t,i,r,l)),this._register(this._model.onDidChangeState(h=>this.update(h))),this._lightBulbWidget=new pu(()=>{const h=this._editor.getContribution(D0.ID);return h&&this._register(h.onClick(f=>this.showCodeActionsFromLightbulb(f.actions,f))),h}),this._resolver=s.createInstance(dR),this._register(this._editor.onDidLayoutChange(()=>this._actionWidgetService.hide()))}dispose(){this._disposed=!0,super.dispose()}async showCodeActionsFromLightbulb(e,t){if(this._telemetryService.publicLog2(\"codeAction.showCodeActionsFromLightbulb\",{codeActionListLength:e.validActions.length,codeActions:e.validActions.map(i=>i.action.title),codeActionProviders:e.validActions.map(i=>{var s,o;return(o=(s=i.provider)===null||s===void 0?void 0:s.displayName)!==null&&o!==void 0?o:\"\"})}),e.allAIFixes&&e.validActions.length===1){const i=e.validActions[0],s=i.action.command;s&&s.id===\"inlineChat.start\"&&s.arguments&&s.arguments.length>=1&&(s.arguments[0]={...s.arguments[0],autoSend:!1}),await this._applyCodeAction(i,!1,!1,Av.FromAILightbulb);return}await this.showCodeActionList(e,t,{includeDisabledActions:!1,fromLightbulb:!0})}showCodeActions(e,t,i){return this.showCodeActionList(t,i,{includeDisabledActions:!1,fromLightbulb:!1})}manualTriggerAtCurrentPosition(e,t,i,s){var o;if(!this._editor.hasModel())return;(o=Or.get(this._editor))===null||o===void 0||o.closeMessage();const r=this._editor.getPosition();this._trigger({type:1,triggerAction:t,filter:i,autoApply:s,context:{notAvailableMessage:e,position:r}})}_trigger(e){return this._model.trigger(e)}async _applyCodeAction(e,t,i,s){try{await this._instantiationService.invokeFunction(fZe,e,s,{preview:i,editor:this._editor})}finally{t&&this._trigger({type:2,triggerAction:Fa.QuickFix,filter:{}})}}async update(e){var t,i,s,o,r,a,l;if(e.type!==1){(t=this._lightBulbWidget.rawValue)===null||t===void 0||t.hide();return}let c;try{c=await e.actions}catch(d){Mt(d);return}if(!this._disposed)if((i=this._lightBulbWidget.value)===null||i===void 0||i.update(c,e.trigger,e.position),e.trigger.type===1){if(!((s=e.trigger.filter)===null||s===void 0)&&s.include){const u=this.tryGetValidActionToApply(e.trigger,c);if(u){try{(o=this._lightBulbWidget.value)===null||o===void 0||o.hide(),await this._applyCodeAction(u,!1,!1,Av.FromCodeActions)}finally{c.dispose()}return}if(e.trigger.context){const h=this.getInvalidActionThatWouldHaveBeenApplied(e.trigger,c);if(h&&h.action.disabled){(r=Or.get(this._editor))===null||r===void 0||r.showMessage(h.action.disabled,e.trigger.context.position),c.dispose();return}}}const d=!!(!((a=e.trigger.filter)===null||a===void 0)&&a.include);if(e.trigger.context&&(!c.allActions.length||!d&&!c.validActions.length)){(l=Or.get(this._editor))===null||l===void 0||l.showMessage(e.trigger.context.notAvailableMessage,e.trigger.context.position),this._activeCodeActions.value=c,c.dispose();return}this._activeCodeActions.value=c,this.showCodeActionList(c,this.toCoords(e.position),{includeDisabledActions:d,fromLightbulb:!1})}else this._actionWidgetService.isVisible?c.dispose():this._activeCodeActions.value=c}getInvalidActionThatWouldHaveBeenApplied(e,t){if(t.allActions.length&&(e.autoApply===\"first\"&&t.validActions.length===0||e.autoApply===\"ifSingle\"&&t.allActions.length===1))return t.allActions.find(({action:i})=>i.disabled)}tryGetValidActionToApply(e,t){if(t.validActions.length&&(e.autoApply===\"first\"&&t.validActions.length>0||e.autoApply===\"ifSingle\"&&t.validActions.length===1))return t.validActions[0]}async showCodeActionList(e,t,i){const s=this._editor.createDecorationsCollection(),o=this._editor.getDomNode();if(!o)return;const r=i.includeDisabledActions&&(this._showDisabled||e.validActions.length===0)?e.allActions:e.validActions;if(!r.length)return;const a=ee.isIPosition(t)?this.toCoords(t):t,l={onSelect:async(c,d)=>{this._applyCodeAction(c,!0,!!d,i.fromLightbulb?Av.FromAILightbulb:Av.FromCodeActions),this._actionWidgetService.hide(!1),s.clear()},onHide:c=>{var d;(d=this._editor)===null||d===void 0||d.focus(),s.clear(),i.fromLightbulb&&c!==void 0&&this._telemetryService.publicLog2(\"codeAction.showCodeActionList.onHide\",{codeActionListLength:e.validActions.length,didCancel:c,codeActions:e.validActions.map(u=>u.action.title)})},onHover:async(c,d)=>{var u;if(d.isCancellationRequested)return;let h=!1;const f=c.action.kind;if(f){const g=new Yi(f);h=[kn.RefactorExtract,kn.RefactorInline,kn.RefactorRewrite,kn.RefactorMove,kn.Source].some(_=>_.contains(g))}return{canPreview:h||!!(!((u=c.action.edit)===null||u===void 0)&&u.edits.length)}},onFocus:c=>{var d,u;if(c&&c.action){const h=c.action.ranges,f=c.action.diagnostics;if(s.clear(),h&&h.length>0){const g=f&&(f==null?void 0:f.length)>1?f.map(p=>({range:p,options:s1.DECORATION})):h.map(p=>({range:p,options:s1.DECORATION}));s.set(g)}else if(f&&f.length>0){const g=f.map(_=>({range:_,options:s1.DECORATION}));s.set(g);const p=f[0];if(p.startLineNumber&&p.startColumn){const _=(u=(d=this._editor.getModel())===null||d===void 0?void 0:d.getWordAtPosition({lineNumber:p.startLineNumber,column:p.startColumn}))===null||u===void 0?void 0:u.word;Ih(v(\"editingNewSelection\",\"Context: {0} at line {1} and column {2}.\",_,p.startLineNumber,p.startColumn))}}}else s.clear()}};this._actionWidgetService.show(\"codeActionWidget\",!0,vZe(r,this._shouldShowHeaders(),this._resolver.getResolver()),l,a,o,this._getActionBarActions(e,t,i))}toCoords(e){if(!this._editor.hasModel())return{x:0,y:0};this._editor.revealPosition(e,1),this._editor.render();const t=this._editor.getScrolledVisiblePosition(e),i=bs(this._editor.getDomNode()),s=i.left+t.left,o=i.top+t.top+t.height;return{x:s,y:o}}_shouldShowHeaders(){var e;const t=(e=this._editor)===null||e===void 0?void 0:e.getModel();return this._configurationService.getValue(\"editor.codeActionWidget.showHeaders\",{resource:t==null?void 0:t.uri})}_getActionBarActions(e,t,i){if(i.fromLightbulb)return[];const s=e.documentation.map(o=>{var r;return{id:o.id,label:o.title,tooltip:(r=o.tooltip)!==null&&r!==void 0?r:\"\",class:void 0,enabled:!0,run:()=>{var a;return this._commandService.executeCommand(o.id,...(a=o.arguments)!==null&&a!==void 0?a:[])}}});return i.includeDisabledActions&&e.validActions.length>0&&e.allActions.length!==e.validActions.length&&s.push(this._showDisabled?{id:\"hideMoreActions\",label:v(\"hideMoreActions\",\"Hide Disabled\"),enabled:!0,tooltip:\"\",class:void 0,run:()=>(this._showDisabled=!1,this.showCodeActionList(e,t,i))}:{id:\"showMoreActions\",label:v(\"showMoreActions\",\"Show Disabled\"),enabled:!0,tooltip:\"\",class:void 0,run:()=>(this._showDisabled=!0,this.showCodeActionList(e,t,i))}),s}};qm.ID=\"editor.contrib.codeActionController\";qm.DECORATION=Wt.register({description:\"quickfix-highlight\",className:DZe});qm=s1=kZe([Nu(1,Uh),Nu(2,Ct),Nu(3,ht),Nu(4,Xe),Nu(5,m_),Nu(6,Sn),Nu(7,qt),Nu(8,ob),Nu(9,ht),Nu(10,Po)],qm);mc((n,e)=>{((s,o)=>{o&&e.addRule(`.monaco-editor ${s} { background-color: ${o}; }`)})(\".quickfix-edit-highlight\",n.getColor(Jf));const i=n.getColor(Kp);i&&e.addRule(`.monaco-editor .quickfix-edit-highlight { border: 1px ${Zd(n.type)?\"dotted\":\"solid\"} ${i}; box-sizing: border-box; }`)});function KD(n){return pe.regex(ufe.keys()[0],new RegExp(\"(\\\\s|^)\"+wl(n.value)+\"\\\\b\"))}const vU={type:\"object\",defaultSnippets:[{body:{kind:\"\"}}],properties:{kind:{type:\"string\",description:v(\"args.schema.kind\",\"Kind of the code action to run.\")},apply:{type:\"string\",description:v(\"args.schema.apply\",\"Controls when the returned actions are applied.\"),default:\"ifSingle\",enum:[\"first\",\"ifSingle\",\"never\"],enumDescriptions:[v(\"args.schema.apply.first\",\"Always apply the first returned code action.\"),v(\"args.schema.apply.ifSingle\",\"Apply the first returned code action if it is the only one.\"),v(\"args.schema.apply.never\",\"Do not apply the returned code actions.\")]},preferred:{type:\"boolean\",default:!1,description:v(\"args.schema.preferred\",\"Controls if only preferred code actions should be returned.\")}}};function rb(n,e,t,i,s=Fa.Default){if(n.hasModel()){const o=qm.get(n);o==null||o.manualTriggerAtCurrentPosition(e,s,t,i)}}class IZe extends Ke{constructor(){super({id:pU,label:v(\"quickfix.trigger.label\",\"Quick Fix...\"),alias:\"Quick Fix...\",precondition:pe.and(W.writable,W.hasCodeActionsProvider),kbOpts:{kbExpr:W.textInputFocus,primary:2137,weight:100}})}run(e,t){return rb(t,v(\"editor.action.quickFix.noneMessage\",\"No code actions available\"),void 0,void 0,Fa.QuickFix)}}class EZe extends Us{constructor(){super({id:ife,precondition:pe.and(W.writable,W.hasCodeActionsProvider),metadata:{description:\"Trigger a code action\",args:[{name:\"args\",schema:vU}]}})}runEditorCommand(e,t,i){const s=sh.fromUser(i,{kind:Yi.Empty,apply:\"ifSingle\"});return rb(t,typeof(i==null?void 0:i.kind)==\"string\"?s.preferred?v(\"editor.action.codeAction.noneMessage.preferred.kind\",\"No preferred code actions for '{0}' available\",i.kind):v(\"editor.action.codeAction.noneMessage.kind\",\"No code actions for '{0}' available\",i.kind):s.preferred?v(\"editor.action.codeAction.noneMessage.preferred\",\"No preferred code actions available\"):v(\"editor.action.codeAction.noneMessage\",\"No code actions available\"),{include:s.kind,includeSourceActions:!0,onlyIncludePreferredActions:s.preferred},s.apply)}}class TZe extends Ke{constructor(){super({id:sfe,label:v(\"refactor.label\",\"Refactor...\"),alias:\"Refactor...\",precondition:pe.and(W.writable,W.hasCodeActionsProvider),kbOpts:{kbExpr:W.textInputFocus,primary:3120,mac:{primary:1328},weight:100},contextMenuOpts:{group:\"1_modification\",order:2,when:pe.and(W.writable,KD(kn.Refactor))},metadata:{description:\"Refactor...\",args:[{name:\"args\",schema:vU}]}})}run(e,t,i){const s=sh.fromUser(i,{kind:kn.Refactor,apply:\"never\"});return rb(t,typeof(i==null?void 0:i.kind)==\"string\"?s.preferred?v(\"editor.action.refactor.noneMessage.preferred.kind\",\"No preferred refactorings for '{0}' available\",i.kind):v(\"editor.action.refactor.noneMessage.kind\",\"No refactorings for '{0}' available\",i.kind):s.preferred?v(\"editor.action.refactor.noneMessage.preferred\",\"No preferred refactorings available\"):v(\"editor.action.refactor.noneMessage\",\"No refactorings available\"),{include:kn.Refactor.contains(s.kind)?s.kind:Yi.None,onlyIncludePreferredActions:s.preferred},s.apply,Fa.Refactor)}}class NZe extends Ke{constructor(){super({id:ofe,label:v(\"source.label\",\"Source Action...\"),alias:\"Source Action...\",precondition:pe.and(W.writable,W.hasCodeActionsProvider),contextMenuOpts:{group:\"1_modification\",order:2.1,when:pe.and(W.writable,KD(kn.Source))},metadata:{description:\"Source Action...\",args:[{name:\"args\",schema:vU}]}})}run(e,t,i){const s=sh.fromUser(i,{kind:kn.Source,apply:\"never\"});return rb(t,typeof(i==null?void 0:i.kind)==\"string\"?s.preferred?v(\"editor.action.source.noneMessage.preferred.kind\",\"No preferred source actions for '{0}' available\",i.kind):v(\"editor.action.source.noneMessage.kind\",\"No source actions for '{0}' available\",i.kind):s.preferred?v(\"editor.action.source.noneMessage.preferred\",\"No preferred source actions available\"):v(\"editor.action.source.noneMessage\",\"No source actions available\"),{include:kn.Source.contains(s.kind)?s.kind:Yi.None,includeSourceActions:!0,onlyIncludePreferredActions:s.preferred},s.apply,Fa.SourceAction)}}class AZe extends Ke{constructor(){super({id:mU,label:v(\"organizeImports.label\",\"Organize Imports\"),alias:\"Organize Imports\",precondition:pe.and(W.writable,KD(kn.SourceOrganizeImports)),kbOpts:{kbExpr:W.textInputFocus,primary:1581,weight:100}})}run(e,t){return rb(t,v(\"editor.action.organize.noneMessage\",\"No organize imports action available\"),{include:kn.SourceOrganizeImports,includeSourceActions:!0},\"ifSingle\",Fa.OrganizeImports)}}class RZe extends Ke{constructor(){super({id:_U,label:v(\"fixAll.label\",\"Fix All\"),alias:\"Fix All\",precondition:pe.and(W.writable,KD(kn.SourceFixAll))})}run(e,t){return rb(t,v(\"fixAll.noneMessage\",\"No fix all action available\"),{include:kn.SourceFixAll,includeSourceActions:!0},\"ifSingle\",Fa.FixAll)}}class MZe extends Ke{constructor(){super({id:nfe,label:v(\"autoFix.label\",\"Auto Fix...\"),alias:\"Auto Fix...\",precondition:pe.and(W.writable,KD(kn.QuickFix)),kbOpts:{kbExpr:W.textInputFocus,primary:1625,mac:{primary:2649},weight:100}})}run(e,t){return rb(t,v(\"editor.action.autoFix.noneMessage\",\"No auto fixes available\"),{include:kn.QuickFix,onlyIncludePreferredActions:!0},\"ifSingle\",Fa.AutoFix)}}bi(qm.ID,qm,3);bi(D0.ID,D0,4);xe(IZe);xe(TZe);xe(NZe);xe(AZe);xe(MZe);xe(RZe);Fe(new EZe);Un.as(_u.Configuration).registerConfiguration({...ZM,properties:{\"editor.codeActionWidget.showHeaders\":{type:\"boolean\",scope:5,description:v(\"showCodeActionHeaders\",\"Enable/disable showing group headers in the Code Action menu.\"),default:!0}}});Un.as(_u.Configuration).registerConfiguration({...ZM,properties:{\"editor.codeActionWidget.includeNearbyQuickFixes\":{type:\"boolean\",scope:5,description:v(\"includeNearbyQuickFixes\",\"Enable/disable showing nearest Quick Fix within a line when not currently on a diagnostic.\"),default:!0}}});class K6{constructor(){this.lenses=[],this._disposables=new be}dispose(){this._disposables.dispose()}get isDisposed(){return this._disposables.isDisposed}add(e,t){this._disposables.add(e);for(const i of e.lenses)this.lenses.push({symbol:i,provider:t})}}async function ffe(n,e,t){const i=n.ordered(e),s=new Map,o=new K6,r=i.map(async(a,l)=>{s.set(a,l);try{const c=await Promise.resolve(a.provideCodeLenses(e,t));c&&o.add(c,a)}catch(c){as(c)}});return await Promise.all(r),o.lenses=o.lenses.sort((a,l)=>a.symbol.range.startLineNumber<l.symbol.range.startLineNumber?-1:a.symbol.range.startLineNumber>l.symbol.range.startLineNumber?1:s.get(a.provider)<s.get(l.provider)?-1:s.get(a.provider)>s.get(l.provider)?1:a.symbol.range.startColumn<l.symbol.range.startColumn?-1:a.symbol.range.startColumn>l.symbol.range.startColumn?1:0),o}ri.registerCommand(\"_executeCodeLensProvider\",function(n,...e){let[t,i]=e;mi(pt.isUri(t)),mi(typeof i==\"number\"||!i);const{codeLensProvider:s}=n.get(Xe),o=n.get(Pn).getModel(t);if(!o)throw ic();const r=[],a=new be;return ffe(s,o,Qt.None).then(l=>{a.add(l);const c=[];for(const d of l.lenses)i==null||d.symbol.command?r.push(d.symbol):i-- >0&&d.provider.resolveCodeLens&&c.push(Promise.resolve(d.provider.resolveCodeLens(o,d.symbol,Qt.None)).then(u=>r.push(u||d.symbol)));return Promise.all(c)}).then(()=>r).finally(()=>{setTimeout(()=>a.dispose(),100)})});var PZe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},OZe=function(n,e){return function(t,i){e(t,i,n)}};const gfe=Jt(\"ICodeLensCache\");class Vee{constructor(e,t){this.lineCount=e,this.data=t}}let q6=class{constructor(e){this._fakeProvider=new class{provideCodeLenses(){throw new Error(\"not supported\")}},this._cache=new zh(20,.75);const t=\"codelens/cache\";_S(Ji,()=>e.remove(t,1));const i=\"codelens/cache2\",s=e.get(i,1,\"{}\");this._deserialize(s),Ae.once(e.onWillSaveState)(o=>{o.reason===GL.SHUTDOWN&&e.store(i,this._serialize(),1,1)})}put(e,t){const i=t.lenses.map(r=>{var a;return{range:r.symbol.range,command:r.symbol.command&&{id:\"\",title:(a=r.symbol.command)===null||a===void 0?void 0:a.title}}}),s=new K6;s.add({lenses:i,dispose:()=>{}},this._fakeProvider);const o=new Vee(e.getLineCount(),s);this._cache.set(e.uri.toString(),o)}get(e){const t=this._cache.get(e.uri.toString());return t&&t.lineCount===e.getLineCount()?t.data:void 0}delete(e){this._cache.delete(e.uri.toString())}_serialize(){const e=Object.create(null);for(const[t,i]of this._cache){const s=new Set;for(const o of i.data.lenses)s.add(o.symbol.range.startLineNumber);e[t]={lineCount:i.lineCount,lines:[...s.values()]}}return JSON.stringify(e)}_deserialize(e){try{const t=JSON.parse(e);for(const i in t){const s=t[i],o=[];for(const a of s.lines)o.push({range:new A(a,1,a,11)});const r=new K6;r.add({lenses:o,dispose(){}},this._fakeProvider),this._cache.set(i,new Vee(s.lineCount,r))}}catch{}}};q6=PZe([OZe(0,dd)],q6);ai(gfe,q6,1);class FZe{constructor(e,t,i){this.afterColumn=1073741824,this.afterLineNumber=e,this.heightInPx=t,this._onHeight=i,this.suppressMouseDown=!0,this.domNode=document.createElement(\"div\")}onComputedHeight(e){this._lastHeight===void 0?this._lastHeight=e:this._lastHeight!==e&&(this._lastHeight=e,this._onHeight())}isVisible(){return this._lastHeight!==0&&this.domNode.hasAttribute(\"monaco-visible-view-zone\")}}class hk{constructor(e,t){this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this._commands=new Map,this._isEmpty=!0,this._editor=e,this._id=`codelens.widget-${hk._idPool++}`,this.updatePosition(t),this._domNode=document.createElement(\"span\"),this._domNode.className=\"codelens-decoration\"}withCommands(e,t){this._commands.clear();const i=[];let s=!1;for(let o=0;o<e.length;o++){const r=e[o];if(r&&(s=!0,r.command)){const a=gm(r.command.title.trim());if(r.command.id){const l=`c${hk._idPool++}`;i.push(ke(\"a\",{id:l,title:r.command.tooltip,role:\"button\"},...a)),this._commands.set(l,r.command)}else i.push(ke(\"span\",{title:r.command.tooltip},...a));o+1<e.length&&i.push(ke(\"span\",void 0,\" | \"))}}s?(yo(this._domNode,...i),this._isEmpty&&t&&this._domNode.classList.add(\"fadein\"),this._isEmpty=!1):yo(this._domNode,ke(\"span\",void 0,\"no commands\"))}getCommand(e){return e.parentElement===this._domNode?this._commands.get(e.id):void 0}getId(){return this._id}getDomNode(){return this._domNode}updatePosition(e){const t=this._editor.getModel().getLineFirstNonWhitespaceColumn(e);this._widgetPosition={position:{lineNumber:e,column:t},preference:[1]}}getPosition(){return this._widgetPosition||null}}hk._idPool=0;class t3{constructor(){this._removeDecorations=[],this._addDecorations=[],this._addDecorationsCallbacks=[]}addDecoration(e,t){this._addDecorations.push(e),this._addDecorationsCallbacks.push(t)}removeDecoration(e){this._removeDecorations.push(e)}commit(e){const t=e.deltaDecorations(this._removeDecorations,this._addDecorations);for(let i=0,s=t.length;i<s;i++)this._addDecorationsCallbacks[i](t[i])}}const zee=Wt.register({collapseOnReplaceEdit:!0,description:\"codelens\"});class $ee{constructor(e,t,i,s,o,r){this._isDisposed=!1,this._editor=t,this._data=e,this._decorationIds=[];let a;const l=[];this._data.forEach((c,d)=>{c.symbol.command&&l.push(c.symbol),i.addDecoration({range:c.symbol.range,options:zee},u=>this._decorationIds[d]=u),a?a=A.plusRange(a,c.symbol.range):a=A.lift(c.symbol.range)}),this._viewZone=new FZe(a.startLineNumber-1,o,r),this._viewZoneId=s.addZone(this._viewZone),l.length>0&&(this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(l,!1))}_createContentWidgetIfNecessary(){this._contentWidget?this._editor.layoutContentWidget(this._contentWidget):(this._contentWidget=new hk(this._editor,this._viewZone.afterLineNumber+1),this._editor.addContentWidget(this._contentWidget))}dispose(e,t){this._decorationIds.forEach(e.removeDecoration,e),this._decorationIds=[],t==null||t.removeZone(this._viewZoneId),this._contentWidget&&(this._editor.removeContentWidget(this._contentWidget),this._contentWidget=void 0),this._isDisposed=!0}isDisposed(){return this._isDisposed}isValid(){return this._decorationIds.some((e,t)=>{const i=this._editor.getModel().getDecorationRange(e),s=this._data[t].symbol;return!!(i&&A.isEmpty(s.range)===i.isEmpty())})}updateCodeLensSymbols(e,t){this._decorationIds.forEach(t.removeDecoration,t),this._decorationIds=[],this._data=e,this._data.forEach((i,s)=>{t.addDecoration({range:i.symbol.range,options:zee},o=>this._decorationIds[s]=o)})}updateHeight(e,t){this._viewZone.heightInPx=e,t.layoutZone(this._viewZoneId),this._contentWidget&&this._editor.layoutContentWidget(this._contentWidget)}computeIfNecessary(e){if(!this._viewZone.isVisible())return null;for(let t=0;t<this._decorationIds.length;t++){const i=e.getDecorationRange(this._decorationIds[t]);i&&(this._data[t].symbol.range=i)}return this._data}updateCommands(e){this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(e,!0);for(let t=0;t<this._data.length;t++){const i=e[t];if(i){const{symbol:s}=this._data[t];s.command=i.command||s.command}}}getCommand(e){var t;return(t=this._contentWidget)===null||t===void 0?void 0:t.getCommand(e)}getLineNumber(){const e=this._editor.getModel().getDecorationRange(this._decorationIds[0]);return e?e.startLineNumber:-1}update(e){if(this.isValid()){const t=this._editor.getModel().getDecorationRange(this._decorationIds[0]);t&&(this._viewZone.afterLineNumber=t.startLineNumber-1,e.layoutZone(this._viewZoneId),this._contentWidget&&(this._contentWidget.updatePosition(t.startLineNumber),this._editor.layoutContentWidget(this._contentWidget)))}}}var BZe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Yy=function(n,e){return function(t,i){e(t,i,n)}};let aw=class{constructor(e,t,i,s,o,r){this._editor=e,this._languageFeaturesService=t,this._commandService=s,this._notificationService=o,this._codeLensCache=r,this._disposables=new be,this._localToDispose=new be,this._lenses=[],this._oldCodeLensModels=new be,this._provideCodeLensDebounce=i.for(t.codeLensProvider,\"CodeLensProvide\",{min:250}),this._resolveCodeLensesDebounce=i.for(t.codeLensProvider,\"CodeLensResolve\",{min:250,salt:\"resolve\"}),this._resolveCodeLensesScheduler=new Xi(()=>this._resolveCodeLensesInViewport(),this._resolveCodeLensesDebounce.default()),this._disposables.add(this._editor.onDidChangeModel(()=>this._onModelChange())),this._disposables.add(this._editor.onDidChangeModelLanguage(()=>this._onModelChange())),this._disposables.add(this._editor.onDidChangeConfiguration(a=>{(a.hasChanged(50)||a.hasChanged(19)||a.hasChanged(18))&&this._updateLensStyle(),a.hasChanged(17)&&this._onModelChange()})),this._disposables.add(t.codeLensProvider.onDidChange(this._onModelChange,this)),this._onModelChange(),this._updateLensStyle()}dispose(){var e;this._localDispose(),this._disposables.dispose(),this._oldCodeLensModels.dispose(),(e=this._currentCodeLensModel)===null||e===void 0||e.dispose()}_getLayoutInfo(){const e=Math.max(1.3,this._editor.getOption(67)/this._editor.getOption(52));let t=this._editor.getOption(19);return(!t||t<5)&&(t=this._editor.getOption(52)*.9|0),{fontSize:t,codeLensHeight:t*e|0}}_updateLensStyle(){const{codeLensHeight:e,fontSize:t}=this._getLayoutInfo(),i=this._editor.getOption(18),s=this._editor.getOption(50),{style:o}=this._editor.getContainerDomNode();o.setProperty(\"--vscode-editorCodeLens-lineHeight\",`${e}px`),o.setProperty(\"--vscode-editorCodeLens-fontSize\",`${t}px`),o.setProperty(\"--vscode-editorCodeLens-fontFeatureSettings\",s.fontFeatureSettings),i&&(o.setProperty(\"--vscode-editorCodeLens-fontFamily\",i),o.setProperty(\"--vscode-editorCodeLens-fontFamilyDefault\",ra.fontFamily)),this._editor.changeViewZones(r=>{for(const a of this._lenses)a.updateHeight(e,r)})}_localDispose(){var e,t,i;(e=this._getCodeLensModelPromise)===null||e===void 0||e.cancel(),this._getCodeLensModelPromise=void 0,(t=this._resolveCodeLensesPromise)===null||t===void 0||t.cancel(),this._resolveCodeLensesPromise=void 0,this._localToDispose.clear(),this._oldCodeLensModels.clear(),(i=this._currentCodeLensModel)===null||i===void 0||i.dispose()}_onModelChange(){this._localDispose();const e=this._editor.getModel();if(!e||!this._editor.getOption(17)||e.isTooLargeForTokenization())return;const t=this._codeLensCache.get(e);if(t&&this._renderCodeLensSymbols(t),!this._languageFeaturesService.codeLensProvider.has(e)){t&&Om(()=>{const s=this._codeLensCache.get(e);t===s&&(this._codeLensCache.delete(e),this._onModelChange())},30*1e3,this._localToDispose);return}for(const s of this._languageFeaturesService.codeLensProvider.all(e))if(typeof s.onDidChange==\"function\"){const o=s.onDidChange(()=>i.schedule());this._localToDispose.add(o)}const i=new Xi(()=>{var s;const o=Date.now();(s=this._getCodeLensModelPromise)===null||s===void 0||s.cancel(),this._getCodeLensModelPromise=Xs(r=>ffe(this._languageFeaturesService.codeLensProvider,e,r)),this._getCodeLensModelPromise.then(r=>{this._currentCodeLensModel&&this._oldCodeLensModels.add(this._currentCodeLensModel),this._currentCodeLensModel=r,this._codeLensCache.put(e,r);const a=this._provideCodeLensDebounce.update(e,Date.now()-o);i.delay=a,this._renderCodeLensSymbols(r),this._resolveCodeLensesInViewportSoon()},Mt)},this._provideCodeLensDebounce.get(e));this._localToDispose.add(i),this._localToDispose.add(dt(()=>this._resolveCodeLensesScheduler.cancel())),this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{var s;this._editor.changeDecorations(o=>{this._editor.changeViewZones(r=>{const a=[];let l=-1;this._lenses.forEach(d=>{!d.isValid()||l===d.getLineNumber()?a.push(d):(d.update(r),l=d.getLineNumber())});const c=new t3;a.forEach(d=>{d.dispose(c,r),this._lenses.splice(this._lenses.indexOf(d),1)}),c.commit(o)})}),i.schedule(),this._resolveCodeLensesScheduler.cancel(),(s=this._resolveCodeLensesPromise)===null||s===void 0||s.cancel(),this._resolveCodeLensesPromise=void 0})),this._localToDispose.add(this._editor.onDidFocusEditorText(()=>{i.schedule()})),this._localToDispose.add(this._editor.onDidBlurEditorText(()=>{i.cancel()})),this._localToDispose.add(this._editor.onDidScrollChange(s=>{s.scrollTopChanged&&this._lenses.length>0&&this._resolveCodeLensesInViewportSoon()})),this._localToDispose.add(this._editor.onDidLayoutChange(()=>{this._resolveCodeLensesInViewportSoon()})),this._localToDispose.add(dt(()=>{if(this._editor.getModel()){const s=uu.capture(this._editor);this._editor.changeDecorations(o=>{this._editor.changeViewZones(r=>{this._disposeAllLenses(o,r)})}),s.restore(this._editor)}else this._disposeAllLenses(void 0,void 0)})),this._localToDispose.add(this._editor.onMouseDown(s=>{if(s.target.type!==9)return;let o=s.target.element;if((o==null?void 0:o.tagName)===\"SPAN\"&&(o=o.parentElement),(o==null?void 0:o.tagName)===\"A\")for(const r of this._lenses){const a=r.getCommand(o);if(a){this._commandService.executeCommand(a.id,...a.arguments||[]).catch(l=>this._notificationService.error(l));break}}})),i.schedule()}_disposeAllLenses(e,t){const i=new t3;for(const s of this._lenses)s.dispose(i,t);e&&i.commit(e),this._lenses.length=0}_renderCodeLensSymbols(e){if(!this._editor.hasModel())return;const t=this._editor.getModel().getLineCount(),i=[];let s;for(const a of e.lenses){const l=a.symbol.range.startLineNumber;l<1||l>t||(s&&s[s.length-1].symbol.range.startLineNumber===l?s.push(a):(s=[a],i.push(s)))}if(!i.length&&!this._lenses.length)return;const o=uu.capture(this._editor),r=this._getLayoutInfo();this._editor.changeDecorations(a=>{this._editor.changeViewZones(l=>{const c=new t3;let d=0,u=0;for(;u<i.length&&d<this._lenses.length;){const h=i[u][0].symbol.range.startLineNumber,f=this._lenses[d].getLineNumber();f<h?(this._lenses[d].dispose(c,l),this._lenses.splice(d,1)):f===h?(this._lenses[d].updateCodeLensSymbols(i[u],c),u++,d++):(this._lenses.splice(d,0,new $ee(i[u],this._editor,c,l,r.codeLensHeight,()=>this._resolveCodeLensesInViewportSoon())),d++,u++)}for(;d<this._lenses.length;)this._lenses[d].dispose(c,l),this._lenses.splice(d,1);for(;u<i.length;)this._lenses.push(new $ee(i[u],this._editor,c,l,r.codeLensHeight,()=>this._resolveCodeLensesInViewportSoon())),u++;c.commit(a)})}),o.restore(this._editor)}_resolveCodeLensesInViewportSoon(){this._editor.getModel()&&this._resolveCodeLensesScheduler.schedule()}_resolveCodeLensesInViewport(){var e;(e=this._resolveCodeLensesPromise)===null||e===void 0||e.cancel(),this._resolveCodeLensesPromise=void 0;const t=this._editor.getModel();if(!t)return;const i=[],s=[];if(this._lenses.forEach(a=>{const l=a.computeIfNecessary(t);l&&(i.push(l),s.push(a))}),i.length===0)return;const o=Date.now(),r=Xs(a=>{const l=i.map((c,d)=>{const u=new Array(c.length),h=c.map((f,g)=>!f.symbol.command&&typeof f.provider.resolveCodeLens==\"function\"?Promise.resolve(f.provider.resolveCodeLens(t,f.symbol,a)).then(p=>{u[g]=p},as):(u[g]=f.symbol,Promise.resolve(void 0)));return Promise.all(h).then(()=>{!a.isCancellationRequested&&!s[d].isDisposed()&&s[d].updateCommands(u)})});return Promise.all(l)});this._resolveCodeLensesPromise=r,this._resolveCodeLensesPromise.then(()=>{const a=this._resolveCodeLensesDebounce.update(t,Date.now()-o);this._resolveCodeLensesScheduler.delay=a,this._currentCodeLensModel&&this._codeLensCache.put(t,this._currentCodeLensModel),this._oldCodeLensModels.clear(),r===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)},a=>{Mt(a),r===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)})}async getModel(){var e;return await this._getCodeLensModelPromise,await this._resolveCodeLensesPromise,!((e=this._currentCodeLensModel)===null||e===void 0)&&e.isDisposed?void 0:this._currentCodeLensModel}};aw.ID=\"css.editor.codeLens\";aw=BZe([Yy(1,Xe),Yy(2,_c),Yy(3,Sn),Yy(4,ps),Yy(5,gfe)],aw);bi(aw.ID,aw,1);xe(class extends Ke{constructor(){super({id:\"codelens.showLensesInCurrentLine\",precondition:W.hasCodeLensProvider,label:v(\"showLensOnLine\",\"Show CodeLens Commands For Current Line\"),alias:\"Show CodeLens Commands For Current Line\"})}async run(e,t){if(!t.hasModel())return;const i=e.get(Cc),s=e.get(Sn),o=e.get(ps),r=t.getSelection().positionLineNumber,a=t.getContribution(aw.ID);if(!a)return;const l=await a.getModel();if(!l)return;const c=[];for(const h of l.lenses)h.symbol.command&&h.symbol.range.startLineNumber===r&&c.push({label:h.symbol.command.title,command:h.symbol.command});if(c.length===0)return;const d=await i.pick(c,{canPickMany:!1,placeHolder:v(\"placeHolder\",\"Select a command\")});if(!d)return;let u=d.command;if(l.isDisposed){const h=await a.getModel(),f=h==null?void 0:h.lenses.find(g=>{var p;return g.symbol.range.startLineNumber===r&&((p=g.symbol.command)===null||p===void 0?void 0:p.title)===u.title});if(!f||!f.symbol.command)return;u=f.symbol.command}try{await s.executeCommand(u.id,...u.arguments||[])}catch(h){o.error(h)}}});var WZe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},i3=function(n,e){return function(t,i){e(t,i,n)}};class bU{constructor(e,t){this._editorWorkerClient=new bz(e,!1,\"editorWorkerService\",t)}async provideDocumentColors(e,t){return this._editorWorkerClient.computeDefaultDocumentColors(e.uri)}provideColorPresentations(e,t,i){const s=t.range,o=t.color,r=o.alpha,a=new le(new ci(Math.round(255*o.red),Math.round(255*o.green),Math.round(255*o.blue),r)),l=r?le.Format.CSS.formatRGB(a):le.Format.CSS.formatRGBA(a),c=r?le.Format.CSS.formatHSL(a):le.Format.CSS.formatHSLA(a),d=r?le.Format.CSS.formatHex(a):le.Format.CSS.formatHexA(a),u=[];return u.push({label:l,textEdit:{range:s,text:l}}),u.push({label:c,textEdit:{range:s,text:c}}),u.push({label:d,textEdit:{range:s,text:d}}),u}}let G6=class extends ne{constructor(e,t,i){super(),this._register(i.colorProvider.register(\"*\",new bU(e,t)))}};G6=WZe([i3(0,Pn),i3(1,gn),i3(2,Xe)],G6);WD(G6);async function pfe(n,e,t,i=!0){return CU(new HZe,n,e,t,i)}function mfe(n,e,t,i){return Promise.resolve(t.provideColorPresentations(n,e,i))}class HZe{constructor(){}async compute(e,t,i,s){const o=await e.provideDocumentColors(t,i);if(Array.isArray(o))for(const r of o)s.push({colorInfo:r,provider:e});return Array.isArray(o)}}class VZe{constructor(){}async compute(e,t,i,s){const o=await e.provideDocumentColors(t,i);if(Array.isArray(o))for(const r of o)s.push({range:r.range,color:[r.color.red,r.color.green,r.color.blue,r.color.alpha]});return Array.isArray(o)}}class zZe{constructor(e){this.colorInfo=e}async compute(e,t,i,s){const o=await e.provideColorPresentations(t,this.colorInfo,Qt.None);return Array.isArray(o)&&s.push(...o),Array.isArray(o)}}async function CU(n,e,t,i,s){let o=!1,r;const a=[],l=e.ordered(t);for(let c=l.length-1;c>=0;c--){const d=l[c];if(d instanceof bU)r=d;else try{await n.compute(d,t,i,a)&&(o=!0)}catch(u){as(u)}}return o?a:r&&s?(await n.compute(r,t,i,a),a):[]}function _fe(n,e){const{colorProvider:t}=n.get(Xe),i=n.get(Pn).getModel(e);if(!i)throw ic();const s=n.get(qt).getValue(\"editor.defaultColorDecorators\",{resource:e});return{model:i,colorProviderRegistry:t,isDefaultColorDecoratorsEnabled:s}}ri.registerCommand(\"_executeDocumentColorProvider\",function(n,...e){const[t]=e;if(!(t instanceof pt))throw ic();const{model:i,colorProviderRegistry:s,isDefaultColorDecoratorsEnabled:o}=_fe(n,t);return CU(new VZe,s,i,Qt.None,o)});ri.registerCommand(\"_executeColorPresentationProvider\",function(n,...e){const[t,i]=e,{uri:s,range:o}=i;if(!(s instanceof pt)||!Array.isArray(t)||t.length!==4||!A.isIRange(o))throw ic();const{model:r,colorProviderRegistry:a,isDefaultColorDecoratorsEnabled:l}=_fe(n,s),[c,d,u,h]=t;return CU(new zZe({range:o,color:{red:c,green:d,blue:u,alpha:h}}),a,r,Qt.None,l)});var $Ze=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},n3=function(n,e){return function(t,i){e(t,i,n)}},Z6;const vfe=Object.create({});let Gm=Z6=class extends ne{constructor(e,t,i,s){super(),this._editor=e,this._configurationService=t,this._languageFeaturesService=i,this._localToDispose=this._register(new be),this._decorationsIds=[],this._colorDatas=new Map,this._colorDecoratorIds=this._editor.createDecorationsCollection(),this._ruleFactory=new bD(this._editor),this._decoratorLimitReporter=new UZe,this._colorDecorationClassRefs=this._register(new be),this._debounceInformation=s.for(i.colorProvider,\"Document Colors\",{min:Z6.RECOMPUTE_TIME}),this._register(e.onDidChangeModel(()=>{this._isColorDecoratorsEnabled=this.isEnabled(),this.updateColors()})),this._register(e.onDidChangeModelLanguage(()=>this.updateColors())),this._register(i.colorProvider.onDidChange(()=>this.updateColors())),this._register(e.onDidChangeConfiguration(o=>{const r=this._isColorDecoratorsEnabled;this._isColorDecoratorsEnabled=this.isEnabled(),this._isDefaultColorDecoratorsEnabled=this._editor.getOption(147);const a=r!==this._isColorDecoratorsEnabled||o.hasChanged(21),l=o.hasChanged(147);(a||l)&&(this._isColorDecoratorsEnabled?this.updateColors():this.removeAllDecorations())})),this._timeoutTimer=null,this._computePromise=null,this._isColorDecoratorsEnabled=this.isEnabled(),this._isDefaultColorDecoratorsEnabled=this._editor.getOption(147),this.updateColors()}isEnabled(){const e=this._editor.getModel();if(!e)return!1;const t=e.getLanguageId(),i=this._configurationService.getValue(t);if(i&&typeof i==\"object\"){const s=i.colorDecorators;if(s&&s.enable!==void 0&&!s.enable)return s.enable}return this._editor.getOption(20)}static get(e){return e.getContribution(this.ID)}dispose(){this.stop(),this.removeAllDecorations(),super.dispose()}updateColors(){if(this.stop(),!this._isColorDecoratorsEnabled)return;const e=this._editor.getModel();!e||!this._languageFeaturesService.colorProvider.has(e)||(this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{this._timeoutTimer||(this._timeoutTimer=new cd,this._timeoutTimer.cancelAndSet(()=>{this._timeoutTimer=null,this.beginCompute()},this._debounceInformation.get(e)))})),this.beginCompute())}async beginCompute(){this._computePromise=Xs(async e=>{const t=this._editor.getModel();if(!t)return[];const i=new xo(!1),s=await pfe(this._languageFeaturesService.colorProvider,t,e,this._isDefaultColorDecoratorsEnabled);return this._debounceInformation.update(t,i.elapsed()),s});try{const e=await this._computePromise;this.updateDecorations(e),this.updateColorDecorators(e),this._computePromise=null}catch(e){Mt(e)}}stop(){this._timeoutTimer&&(this._timeoutTimer.cancel(),this._timeoutTimer=null),this._computePromise&&(this._computePromise.cancel(),this._computePromise=null),this._localToDispose.clear()}updateDecorations(e){const t=e.map(i=>({range:{startLineNumber:i.colorInfo.range.startLineNumber,startColumn:i.colorInfo.range.startColumn,endLineNumber:i.colorInfo.range.endLineNumber,endColumn:i.colorInfo.range.endColumn},options:Wt.EMPTY}));this._editor.changeDecorations(i=>{this._decorationsIds=i.deltaDecorations(this._decorationsIds,t),this._colorDatas=new Map,this._decorationsIds.forEach((s,o)=>this._colorDatas.set(s,e[o]))})}updateColorDecorators(e){this._colorDecorationClassRefs.clear();const t=[],i=this._editor.getOption(21);for(let o=0;o<e.length&&t.length<i;o++){const{red:r,green:a,blue:l,alpha:c}=e[o].colorInfo.color,d=new ci(Math.round(r*255),Math.round(a*255),Math.round(l*255),c),u=`rgba(${d.r}, ${d.g}, ${d.b}, ${d.a})`,h=this._colorDecorationClassRefs.add(this._ruleFactory.createClassNameRef({backgroundColor:u}));t.push({range:{startLineNumber:e[o].colorInfo.range.startLineNumber,startColumn:e[o].colorInfo.range.startColumn,endLineNumber:e[o].colorInfo.range.endLineNumber,endColumn:e[o].colorInfo.range.endColumn},options:{description:\"colorDetector\",before:{content:xae,inlineClassName:`${h.className} colorpicker-color-decoration`,inlineClassNameAffectsLetterSpacing:!0,attachedData:vfe}}})}const s=i<e.length?i:!1;this._decoratorLimitReporter.update(e.length,s),this._colorDecoratorIds.set(t)}removeAllDecorations(){this._editor.removeDecorations(this._decorationsIds),this._decorationsIds=[],this._colorDecoratorIds.clear(),this._colorDecorationClassRefs.clear()}getColorData(e){const t=this._editor.getModel();if(!t)return null;const i=t.getDecorationsInRange(A.fromPositions(e,e)).filter(s=>this._colorDatas.has(s.id));return i.length===0?null:this._colorDatas.get(i[0].id)}isColorDecoration(e){return this._colorDecoratorIds.has(e)}};Gm.ID=\"editor.contrib.colorDetector\";Gm.RECOMPUTE_TIME=1e3;Gm=Z6=$Ze([n3(1,qt),n3(2,Xe),n3(3,_c)],Gm);class UZe{constructor(){this._onDidChange=new X,this._computed=0,this._limited=!1}update(e,t){(e!==this._computed||t!==this._limited)&&(this._computed=e,this._limited=t,this._onDidChange.fire())}}bi(Gm.ID,Gm,1);class jZe{get color(){return this._color}set color(e){this._color.equals(e)||(this._color=e,this._onDidChangeColor.fire(e))}get presentation(){return this.colorPresentations[this.presentationIndex]}get colorPresentations(){return this._colorPresentations}set colorPresentations(e){this._colorPresentations=e,this.presentationIndex>e.length-1&&(this.presentationIndex=0),this._onDidChangePresentation.fire(this.presentation)}constructor(e,t,i){this.presentationIndex=i,this._onColorFlushed=new X,this.onColorFlushed=this._onColorFlushed.event,this._onDidChangeColor=new X,this.onDidChangeColor=this._onDidChangeColor.event,this._onDidChangePresentation=new X,this.onDidChangePresentation=this._onDidChangePresentation.event,this.originalColor=e,this._color=e,this._colorPresentations=t}selectNextColorPresentation(){this.presentationIndex=(this.presentationIndex+1)%this.colorPresentations.length,this.flushColor(),this._onDidChangePresentation.fire(this.presentation)}guessColorPresentation(e,t){let i=-1;for(let s=0;s<this.colorPresentations.length;s++)if(t.toLowerCase()===this.colorPresentations[s].label){i=s;break}if(i===-1){const s=t.split(\"(\")[0].toLowerCase();for(let o=0;o<this.colorPresentations.length;o++)if(this.colorPresentations[o].label.toLowerCase().startsWith(s)){i=o;break}}i!==-1&&i!==this.presentationIndex&&(this.presentationIndex=i,this._onDidChangePresentation.fire(this.presentation))}flushColor(){this._onColorFlushed.fire(this._color)}}const ul=ke;class KZe extends ne{constructor(e,t,i,s=!1){super(),this.model=t,this.showingStandaloneColorPicker=s,this._closeButton=null,this._domNode=ul(\".colorpicker-header\"),we(e,this._domNode),this._pickedColorNode=we(this._domNode,ul(\".picked-color\")),we(this._pickedColorNode,ul(\"span.codicon.codicon-color-mode\")),this._pickedColorPresentation=we(this._pickedColorNode,document.createElement(\"span\")),this._pickedColorPresentation.classList.add(\"picked-color-presentation\");const o=v(\"clickToToggleColorOptions\",\"Click to toggle color options (rgb/hsl/hex)\");this._pickedColorNode.setAttribute(\"title\",o),this._originalColorNode=we(this._domNode,ul(\".original-color\")),this._originalColorNode.style.backgroundColor=le.Format.CSS.format(this.model.originalColor)||\"\",this.backgroundColor=i.getColorTheme().getColor(X2)||le.white,this._register(i.onDidColorThemeChange(r=>{this.backgroundColor=r.getColor(X2)||le.white})),this._register(ce(this._pickedColorNode,Le.CLICK,()=>this.model.selectNextColorPresentation())),this._register(ce(this._originalColorNode,Le.CLICK,()=>{this.model.color=this.model.originalColor,this.model.flushColor()})),this._register(t.onDidChangeColor(this.onDidChangeColor,this)),this._register(t.onDidChangePresentation(this.onDidChangePresentation,this)),this._pickedColorNode.style.backgroundColor=le.Format.CSS.format(t.color)||\"\",this._pickedColorNode.classList.toggle(\"light\",t.color.rgba.a<.5?this.backgroundColor.isLighter():t.color.isLighter()),this.onDidChangeColor(this.model.color),this.showingStandaloneColorPicker&&(this._domNode.classList.add(\"standalone-colorpicker\"),this._closeButton=this._register(new qZe(this._domNode)))}get closeButton(){return this._closeButton}get pickedColorNode(){return this._pickedColorNode}get originalColorNode(){return this._originalColorNode}onDidChangeColor(e){this._pickedColorNode.style.backgroundColor=le.Format.CSS.format(e)||\"\",this._pickedColorNode.classList.toggle(\"light\",e.rgba.a<.5?this.backgroundColor.isLighter():e.isLighter()),this.onDidChangePresentation()}onDidChangePresentation(){this._pickedColorPresentation.textContent=this.model.presentation?this.model.presentation.label:\"\"}}class qZe extends ne{constructor(e){super(),this._onClicked=this._register(new X),this.onClicked=this._onClicked.event,this._button=document.createElement(\"div\"),this._button.classList.add(\"close-button\"),we(e,this._button);const t=document.createElement(\"div\");t.classList.add(\"close-button-inner-div\"),we(this._button,t),we(t,ul(\".button\"+_t.asCSSSelector(Jn(\"color-picker-close\",Te.close,v(\"closeIcon\",\"Icon to close the color picker\"))))).classList.add(\"close-icon\"),this._register(ce(this._button,Le.CLICK,()=>{this._onClicked.fire()}))}}class GZe extends ne{constructor(e,t,i,s=!1){super(),this.model=t,this.pixelRatio=i,this._insertButton=null,this._domNode=ul(\".colorpicker-body\"),we(e,this._domNode),this._saturationBox=new ZZe(this._domNode,this.model,this.pixelRatio),this._register(this._saturationBox),this._register(this._saturationBox.onDidChange(this.onDidSaturationValueChange,this)),this._register(this._saturationBox.onColorFlushed(this.flushColor,this)),this._opacityStrip=new YZe(this._domNode,this.model,s),this._register(this._opacityStrip),this._register(this._opacityStrip.onDidChange(this.onDidOpacityChange,this)),this._register(this._opacityStrip.onColorFlushed(this.flushColor,this)),this._hueStrip=new XZe(this._domNode,this.model,s),this._register(this._hueStrip),this._register(this._hueStrip.onDidChange(this.onDidHueChange,this)),this._register(this._hueStrip.onColorFlushed(this.flushColor,this)),s&&(this._insertButton=this._register(new QZe(this._domNode)),this._domNode.classList.add(\"standalone-colorpicker\"))}flushColor(){this.model.flushColor()}onDidSaturationValueChange({s:e,v:t}){const i=this.model.color.hsva;this.model.color=new le(new rh(i.h,e,t,i.a))}onDidOpacityChange(e){const t=this.model.color.hsva;this.model.color=new le(new rh(t.h,t.s,t.v,e))}onDidHueChange(e){const t=this.model.color.hsva,i=(1-e)*360;this.model.color=new le(new rh(i===360?0:i,t.s,t.v,t.a))}get domNode(){return this._domNode}get saturationBox(){return this._saturationBox}get enterButton(){return this._insertButton}layout(){this._saturationBox.layout(),this._opacityStrip.layout(),this._hueStrip.layout()}}class ZZe extends ne{constructor(e,t,i){super(),this.model=t,this.pixelRatio=i,this._onDidChange=new X,this.onDidChange=this._onDidChange.event,this._onColorFlushed=new X,this.onColorFlushed=this._onColorFlushed.event,this._domNode=ul(\".saturation-wrap\"),we(e,this._domNode),this._canvas=document.createElement(\"canvas\"),this._canvas.className=\"saturation-box\",we(this._domNode,this._canvas),this.selection=ul(\".saturation-selection\"),we(this._domNode,this.selection),this.layout(),this._register(ce(this._domNode,Le.POINTER_DOWN,s=>this.onPointerDown(s))),this._register(this.model.onDidChangeColor(this.onDidChangeColor,this)),this.monitor=null}get domNode(){return this._domNode}onPointerDown(e){if(!e.target||!(e.target instanceof Element))return;this.monitor=this._register(new Bw);const t=bs(this._domNode);e.target!==this.selection&&this.onDidChangePosition(e.offsetX,e.offsetY),this.monitor.startMonitoring(e.target,e.pointerId,e.buttons,s=>this.onDidChangePosition(s.pageX-t.left,s.pageY-t.top),()=>null);const i=ce(e.target.ownerDocument,Le.POINTER_UP,()=>{this._onColorFlushed.fire(),i.dispose(),this.monitor&&(this.monitor.stopMonitoring(!0),this.monitor=null)},!0)}onDidChangePosition(e,t){const i=Math.max(0,Math.min(1,e/this.width)),s=Math.max(0,Math.min(1,1-t/this.height));this.paintSelection(i,s),this._onDidChange.fire({s:i,v:s})}layout(){this.width=this._domNode.offsetWidth,this.height=this._domNode.offsetHeight,this._canvas.width=this.width*this.pixelRatio,this._canvas.height=this.height*this.pixelRatio,this.paint();const e=this.model.color.hsva;this.paintSelection(e.s,e.v)}paint(){const e=this.model.color.hsva,t=new le(new rh(e.h,1,1,1)),i=this._canvas.getContext(\"2d\"),s=i.createLinearGradient(0,0,this._canvas.width,0);s.addColorStop(0,\"rgba(255, 255, 255, 1)\"),s.addColorStop(.5,\"rgba(255, 255, 255, 0.5)\"),s.addColorStop(1,\"rgba(255, 255, 255, 0)\");const o=i.createLinearGradient(0,0,0,this._canvas.height);o.addColorStop(0,\"rgba(0, 0, 0, 0)\"),o.addColorStop(1,\"rgba(0, 0, 0, 1)\"),i.rect(0,0,this._canvas.width,this._canvas.height),i.fillStyle=le.Format.CSS.format(t),i.fill(),i.fillStyle=s,i.fill(),i.fillStyle=o,i.fill()}paintSelection(e,t){this.selection.style.left=`${e*this.width}px`,this.selection.style.top=`${this.height-t*this.height}px`}onDidChangeColor(e){if(this.monitor&&this.monitor.isMonitoring())return;this.paint();const t=e.hsva;this.paintSelection(t.s,t.v)}}class bfe extends ne{constructor(e,t,i=!1){super(),this.model=t,this._onDidChange=new X,this.onDidChange=this._onDidChange.event,this._onColorFlushed=new X,this.onColorFlushed=this._onColorFlushed.event,i?(this.domNode=we(e,ul(\".standalone-strip\")),this.overlay=we(this.domNode,ul(\".standalone-overlay\"))):(this.domNode=we(e,ul(\".strip\")),this.overlay=we(this.domNode,ul(\".overlay\"))),this.slider=we(this.domNode,ul(\".slider\")),this.slider.style.top=\"0px\",this._register(ce(this.domNode,Le.POINTER_DOWN,s=>this.onPointerDown(s))),this._register(t.onDidChangeColor(this.onDidChangeColor,this)),this.layout()}layout(){this.height=this.domNode.offsetHeight-this.slider.offsetHeight;const e=this.getValue(this.model.color);this.updateSliderPosition(e)}onDidChangeColor(e){const t=this.getValue(e);this.updateSliderPosition(t)}onPointerDown(e){if(!e.target||!(e.target instanceof Element))return;const t=this._register(new Bw),i=bs(this.domNode);this.domNode.classList.add(\"grabbing\"),e.target!==this.slider&&this.onDidChangeTop(e.offsetY),t.startMonitoring(e.target,e.pointerId,e.buttons,o=>this.onDidChangeTop(o.pageY-i.top),()=>null);const s=ce(e.target.ownerDocument,Le.POINTER_UP,()=>{this._onColorFlushed.fire(),s.dispose(),t.stopMonitoring(!0),this.domNode.classList.remove(\"grabbing\")},!0)}onDidChangeTop(e){const t=Math.max(0,Math.min(1,1-e/this.height));this.updateSliderPosition(t),this._onDidChange.fire(t)}updateSliderPosition(e){this.slider.style.top=`${(1-e)*this.height}px`}}class YZe extends bfe{constructor(e,t,i=!1){super(e,t,i),this.domNode.classList.add(\"opacity-strip\"),this.onDidChangeColor(this.model.color)}onDidChangeColor(e){super.onDidChangeColor(e);const{r:t,g:i,b:s}=e.rgba,o=new le(new ci(t,i,s,1)),r=new le(new ci(t,i,s,0));this.overlay.style.background=`linear-gradient(to bottom, ${o} 0%, ${r} 100%)`}getValue(e){return e.hsva.a}}class XZe extends bfe{constructor(e,t,i=!1){super(e,t,i),this.domNode.classList.add(\"hue-strip\")}getValue(e){return 1-e.hsva.h/360}}class QZe extends ne{constructor(e){super(),this._onClicked=this._register(new X),this.onClicked=this._onClicked.event,this._button=we(e,document.createElement(\"button\")),this._button.classList.add(\"insert-button\"),this._button.textContent=\"Insert\",this._register(ce(this._button,Le.CLICK,()=>{this._onClicked.fire()}))}get button(){return this._button}}class JZe extends Il{constructor(e,t,i,s,o=!1){super(),this.model=t,this.pixelRatio=i,this._register(fL.getInstance(gt(e)).onDidChange(()=>this.layout()));const r=ul(\".colorpicker-widget\");e.appendChild(r),this.header=this._register(new KZe(r,this.model,s,o)),this.body=this._register(new GZe(r,this.model,this.pixelRatio,o))}layout(){this.body.layout()}}var Cfe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},wfe=function(n,e){return function(t,i){e(t,i,n)}};class eYe{constructor(e,t,i,s){this.owner=e,this.range=t,this.model=i,this.provider=s,this.forceShowAtRange=!0}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}let uR=class{constructor(e,t){this._editor=e,this._themeService=t,this.hoverOrdinal=2}computeSync(e,t){return[]}computeAsync(e,t,i){return Ls.fromPromise(this._computeAsync(e,t,i))}async _computeAsync(e,t,i){if(!this._editor.hasModel())return[];const s=Gm.get(this._editor);if(!s)return[];for(const o of t){if(!s.isColorDecoration(o))continue;const r=s.getColorData(o.range.getStartPosition());if(r)return[await yfe(this,this._editor.getModel(),r.colorInfo,r.provider)]}return[]}renderHoverParts(e,t){return Sfe(this,this._editor,this._themeService,t,e)}};uR=Cfe([wfe(1,js)],uR);class tYe{constructor(e,t,i,s){this.owner=e,this.range=t,this.model=i,this.provider=s}}let fk=class{constructor(e,t){this._editor=e,this._themeService=t,this._color=null}async createColorHover(e,t,i){if(!this._editor.hasModel()||!Gm.get(this._editor))return null;const o=await pfe(i,this._editor.getModel(),Qt.None);let r=null,a=null;for(const u of o){const h=u.colorInfo;A.containsRange(h.range,e.range)&&(r=h,a=u.provider)}const l=r??e,c=a??t,d=!!r;return{colorHover:await yfe(this,this._editor.getModel(),l,c),foundInEditor:d}}async updateEditorModel(e){if(!this._editor.hasModel())return;const t=e.model;let i=new A(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn);this._color&&(await ON(this._editor.getModel(),t,this._color,i,e),i=xfe(this._editor,i,t))}renderHoverParts(e,t){return Sfe(this,this._editor,this._themeService,t,e)}set color(e){this._color=e}get color(){return this._color}};fk=Cfe([wfe(1,js)],fk);async function yfe(n,e,t,i){const s=e.getValueInRange(t.range),{red:o,green:r,blue:a,alpha:l}=t.color,c=new ci(Math.round(o*255),Math.round(r*255),Math.round(a*255),l),d=new le(c),u=await mfe(e,t,i,Qt.None),h=new jZe(d,[],0);return h.colorPresentations=u||[],h.guessColorPresentation(d,s),n instanceof uR?new eYe(n,A.lift(t.range),h,i):new tYe(n,A.lift(t.range),h,i)}function Sfe(n,e,t,i,s){if(i.length===0||!e.hasModel())return ne.None;if(s.setMinimumDimensions){const h=e.getOption(67)+8;s.setMinimumDimensions(new yi(302,h))}const o=new be,r=i[0],a=e.getModel(),l=r.model,c=o.add(new JZe(s.fragment,l,e.getOption(143),t,n instanceof fk));s.setColorPicker(c);let d=!1,u=new A(r.range.startLineNumber,r.range.startColumn,r.range.endLineNumber,r.range.endColumn);if(n instanceof fk){const h=i[0].model.color;n.color=h,ON(a,l,h,u,r),o.add(l.onColorFlushed(f=>{n.color=f}))}else o.add(l.onColorFlushed(async h=>{await ON(a,l,h,u,r),d=!0,u=xfe(e,u,l)}));return o.add(l.onDidChangeColor(h=>{ON(a,l,h,u,r)})),o.add(e.onDidChangeModelContent(h=>{d?d=!1:(s.hide(),e.focus())})),o}function xfe(n,e,t){var i,s;const o=[],r=(i=t.presentation.textEdit)!==null&&i!==void 0?i:{range:e,text:t.presentation.label,forceMoveMarkers:!1};o.push(r),t.presentation.additionalTextEdits&&o.push(...t.presentation.additionalTextEdits);const a=A.lift(r.range),l=n.getModel()._setTrackedRange(null,a,3);return n.executeEdits(\"colorpicker\",o),n.pushUndoStop(),(s=n.getModel()._getTrackedRange(l))!==null&&s!==void 0?s:a}async function ON(n,e,t,i,s){const o=await mfe(n,{range:i,color:{red:t.rgba.r/255,green:t.rgba.g/255,blue:t.rgba.b/255,alpha:t.rgba.a}},s.provider,Qt.None);e.colorPresentations=o||[]}const Lfe=\"editor.action.showHover\",iYe=\"editor.action.showDefinitionPreviewHover\",nYe=\"editor.action.scrollUpHover\",sYe=\"editor.action.scrollDownHover\",oYe=\"editor.action.scrollLeftHover\",rYe=\"editor.action.scrollRightHover\",aYe=\"editor.action.pageUpHover\",lYe=\"editor.action.pageDownHover\",cYe=\"editor.action.goToTopHover\",dYe=\"editor.action.goToBottomHover\",NP=\"editor.action.increaseHoverVerbosityLevel\",uYe=v({},\"Increase Hover Verbosity Level\"),AP=\"editor.action.decreaseHoverVerbosityLevel\",hYe=v({},\"Decrease Hover Verbosity Level\"),kfe=\"editor.action.inlineSuggest.commit\",Dfe=\"editor.action.inlineSuggest.showPrevious\",Ife=\"editor.action.inlineSuggest.showNext\";var wU=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},$c=function(n,e){return function(t,i){e(t,i,n)}},FN;let Y6=class extends ne{constructor(e,t,i){super(),this.editor=e,this.model=t,this.instantiationService=i,this.alwaysShowToolbar=qi(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(62).showToolbar===\"always\"),this.sessionPosition=void 0,this.position=Rt(this,s=>{var o,r,a;const l=(o=this.model.read(s))===null||o===void 0?void 0:o.primaryGhostText.read(s);if(!this.alwaysShowToolbar.read(s)||!l||l.parts.length===0)return this.sessionPosition=void 0,null;const c=l.parts[0].column;this.sessionPosition&&this.sessionPosition.lineNumber!==l.lineNumber&&(this.sessionPosition=void 0);const d=new ee(l.lineNumber,Math.min(c,(a=(r=this.sessionPosition)===null||r===void 0?void 0:r.column)!==null&&a!==void 0?a:Number.MAX_SAFE_INTEGER));return this.sessionPosition=d,d}),this._register(uc((s,o)=>{const r=this.model.read(s);if(!r||!this.alwaysShowToolbar.read(s))return;const a=J0((c,d)=>{const u=d.add(this.instantiationService.createInstance(Zm,this.editor,!0,this.position,r.selectedInlineCompletionIndex,r.inlineCompletionsCount,r.activeCommands));return e.addContentWidget(u),d.add(dt(()=>e.removeContentWidget(u))),d.add(Ut(h=>{this.position.read(h)&&r.lastTriggerKind.read(h)!==pg.Explicit&&r.triggerExplicitly()})),u}),l=vVe(this,(c,d)=>!!this.position.read(c)||!!d);o.add(Ut(c=>{l.read(c)&&a.read(c)}))}))}};Y6=wU([$c(2,ht)],Y6);const fYe=Jn(\"inline-suggestion-hints-next\",Te.chevronRight,v(\"parameterHintsNextIcon\",\"Icon for show next parameter hint.\")),gYe=Jn(\"inline-suggestion-hints-previous\",Te.chevronLeft,v(\"parameterHintsPreviousIcon\",\"Icon for show previous parameter hint.\"));let Zm=FN=class extends ne{static get dropDownVisible(){return this._dropDownVisible}createCommandAction(e,t,i){const s=new Ta(e,t,i,!0,()=>this._commandService.executeCommand(e)),o=this.keybindingService.lookupKeybinding(e,this._contextKeyService);let r=t;return o&&(r=v({},\"{0} ({1})\",t,o.getLabel())),s.tooltip=r,s}constructor(e,t,i,s,o,r,a,l,c,d,u){super(),this.editor=e,this.withBorder=t,this._position=i,this._currentSuggestionIdx=s,this._suggestionCount=o,this._extraCommands=r,this._commandService=a,this.keybindingService=c,this._contextKeyService=d,this._menuService=u,this.id=`InlineSuggestionHintsContentWidget${FN.id++}`,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this.nodes=wi(\"div.inlineSuggestionsHints\",{className:this.withBorder?\".withBorder\":\"\"},[wi(\"div@toolBar\")]),this.previousAction=this.createCommandAction(Dfe,v(\"previous\",\"Previous\"),_t.asClassName(gYe)),this.availableSuggestionCountAction=new Ta(\"inlineSuggestionHints.availableSuggestionCount\",\"\",void 0,!1),this.nextAction=this.createCommandAction(Ife,v(\"next\",\"Next\"),_t.asClassName(fYe)),this.inlineCompletionsActionsMenus=this._register(this._menuService.createMenu(R.InlineCompletionsActions,this._contextKeyService)),this.clearAvailableSuggestionCountLabelDebounced=this._register(new Xi(()=>{this.availableSuggestionCountAction.label=\"\"},100)),this.disableButtonsDebounced=this._register(new Xi(()=>{this.previousAction.enabled=this.nextAction.enabled=!1},100)),this.toolBar=this._register(l.createInstance(X6,this.nodes.toolBar,R.InlineSuggestionToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:h=>h.startsWith(\"primary\")},actionViewItemProvider:(h,f)=>{if(h instanceof Na)return l.createInstance(mYe,h,void 0);if(h===this.availableSuggestionCountAction){const g=new pYe(void 0,h,{label:!0,icon:!1});return g.setClass(\"availableSuggestionCount\"),g}},telemetrySource:\"InlineSuggestionToolbar\"})),this.toolBar.setPrependedPrimaryActions([this.previousAction,this.availableSuggestionCountAction,this.nextAction]),this._register(this.toolBar.onDidChangeDropdownVisibility(h=>{FN._dropDownVisible=h})),this._register(Ut(h=>{this._position.read(h),this.editor.layoutContentWidget(this)})),this._register(Ut(h=>{const f=this._suggestionCount.read(h),g=this._currentSuggestionIdx.read(h);f!==void 0?(this.clearAvailableSuggestionCountLabelDebounced.cancel(),this.availableSuggestionCountAction.label=`${g+1}/${f}`):this.clearAvailableSuggestionCountLabelDebounced.schedule(),f!==void 0&&f>1?(this.disableButtonsDebounced.cancel(),this.previousAction.enabled=this.nextAction.enabled=!0):this.disableButtonsDebounced.schedule()})),this._register(Ut(h=>{const g=this._extraCommands.read(h).map(p=>({class:void 0,id:p.id,enabled:!0,tooltip:p.tooltip||\"\",label:p.title,run:_=>this._commandService.executeCommand(p.id)}));for(const[p,_]of this.inlineCompletionsActionsMenus.getActions())for(const b of _)b instanceof Na&&g.push(b);g.length>0&&g.unshift(new Ms),this.toolBar.setAdditionalSecondaryActions(g)}))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}};Zm._dropDownVisible=!1;Zm.id=0;Zm=FN=wU([$c(6,Sn),$c(7,ht),$c(8,Li),$c(9,Ct),$c(10,Dl)],Zm);class pYe extends QC{constructor(){super(...arguments),this._className=void 0}setClass(e){this._className=e}render(e){super.render(e),this._className&&e.classList.add(this._className)}updateTooltip(){}}let mYe=class extends Um{updateLabel(){const e=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!e)return super.updateLabel();if(this.label){const t=wi(\"div.keybinding\").root;this._register(new $w(t,Da,{disableTitle:!0,...Sue})).set(e),this.label.textContent=this._action.label,this.label.appendChild(t),this.label.classList.add(\"inlineSuggestionStatusBarItemLabel\")}}updateTooltip(){}},X6=class extends ok{constructor(e,t,i,s,o,r,a,l,c){super(e,{resetMenu:t,...i},s,o,r,a,l,c),this.menuId=t,this.options2=i,this.menuService=s,this.contextKeyService=o,this.menu=this._store.add(this.menuService.createMenu(this.menuId,this.contextKeyService,{emitEventsForSubmenuChanges:!0})),this.additionalActions=[],this.prependedPrimaryActions=[],this._store.add(this.menu.onDidChange(()=>this.updateToolbar())),this.updateToolbar()}updateToolbar(){var e,t,i,s,o,r,a;const l=[],c=[];rP(this.menu,(e=this.options2)===null||e===void 0?void 0:e.menuOptions,{primary:l,secondary:c},(i=(t=this.options2)===null||t===void 0?void 0:t.toolbarOptions)===null||i===void 0?void 0:i.primaryGroup,(o=(s=this.options2)===null||s===void 0?void 0:s.toolbarOptions)===null||o===void 0?void 0:o.shouldInlineSubmenu,(a=(r=this.options2)===null||r===void 0?void 0:r.toolbarOptions)===null||a===void 0?void 0:a.useSeparatorsInPrimaryActions),c.push(...this.additionalActions),l.unshift(...this.prependedPrimaryActions),this.setActions(l,c)}setPrependedPrimaryActions(e){zn(this.prependedPrimaryActions,e,(t,i)=>t===i)||(this.prependedPrimaryActions=e,this.updateToolbar())}setAdditionalSecondaryActions(e){zn(this.additionalActions,e,(t,i)=>t===i)||(this.additionalActions=e,this.updateToolbar())}};X6=wU([$c(3,Dl),$c(4,Ct),$c(5,za),$c(6,Li),$c(7,Sn),$c(8,Po)],X6);class yU{constructor(){this._onDidWillResize=new X,this.onDidWillResize=this._onDidWillResize.event,this._onDidResize=new X,this.onDidResize=this._onDidResize.event,this._sashListener=new be,this._size=new yi(0,0),this._minSize=new yi(0,0),this._maxSize=new yi(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),this.domNode=document.createElement(\"div\"),this._eastSash=new Vo(this.domNode,{getVerticalSashLeft:()=>this._size.width},{orientation:0}),this._westSash=new Vo(this.domNode,{getVerticalSashLeft:()=>0},{orientation:0}),this._northSash=new Vo(this.domNode,{getHorizontalSashTop:()=>0},{orientation:1,orthogonalEdge:MA.North}),this._southSash=new Vo(this.domNode,{getHorizontalSashTop:()=>this._size.height},{orientation:1,orthogonalEdge:MA.South}),this._northSash.orthogonalStartSash=this._westSash,this._northSash.orthogonalEndSash=this._eastSash,this._southSash.orthogonalStartSash=this._westSash,this._southSash.orthogonalEndSash=this._eastSash;let e,t=0,i=0;this._sashListener.add(Ae.any(this._northSash.onDidStart,this._eastSash.onDidStart,this._southSash.onDidStart,this._westSash.onDidStart)(()=>{e===void 0&&(this._onDidWillResize.fire(),e=this._size,t=0,i=0)})),this._sashListener.add(Ae.any(this._northSash.onDidEnd,this._eastSash.onDidEnd,this._southSash.onDidEnd,this._westSash.onDidEnd)(()=>{e!==void 0&&(e=void 0,t=0,i=0,this._onDidResize.fire({dimension:this._size,done:!0}))})),this._sashListener.add(this._eastSash.onDidChange(s=>{e&&(i=s.currentX-s.startX,this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,east:!0}))})),this._sashListener.add(this._westSash.onDidChange(s=>{e&&(i=-(s.currentX-s.startX),this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,west:!0}))})),this._sashListener.add(this._northSash.onDidChange(s=>{e&&(t=-(s.currentY-s.startY),this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,north:!0}))})),this._sashListener.add(this._southSash.onDidChange(s=>{e&&(t=s.currentY-s.startY,this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,south:!0}))})),this._sashListener.add(Ae.any(this._eastSash.onDidReset,this._westSash.onDidReset)(s=>{this._preferredSize&&(this.layout(this._size.height,this._preferredSize.width),this._onDidResize.fire({dimension:this._size,done:!0}))})),this._sashListener.add(Ae.any(this._northSash.onDidReset,this._southSash.onDidReset)(s=>{this._preferredSize&&(this.layout(this._preferredSize.height,this._size.width),this._onDidResize.fire({dimension:this._size,done:!0}))}))}dispose(){this._northSash.dispose(),this._southSash.dispose(),this._eastSash.dispose(),this._westSash.dispose(),this._sashListener.dispose(),this._onDidResize.dispose(),this._onDidWillResize.dispose(),this.domNode.remove()}enableSashes(e,t,i,s){this._northSash.state=e?3:0,this._eastSash.state=t?3:0,this._southSash.state=i?3:0,this._westSash.state=s?3:0}layout(e=this.size.height,t=this.size.width){const{height:i,width:s}=this._minSize,{height:o,width:r}=this._maxSize;e=Math.max(i,Math.min(o,e)),t=Math.max(s,Math.min(r,t));const a=new yi(t,e);yi.equals(a,this._size)||(this.domNode.style.height=e+\"px\",this.domNode.style.width=t+\"px\",this._size=a,this._northSash.layout(),this._eastSash.layout(),this._southSash.layout(),this._westSash.layout())}clearSashHoverState(){this._eastSash.clearSashHoverState(),this._westSash.clearSashHoverState(),this._northSash.clearSashHoverState(),this._southSash.clearSashHoverState()}get size(){return this._size}set maxSize(e){this._maxSize=e}get maxSize(){return this._maxSize}set minSize(e){this._minSize=e}get minSize(){return this._minSize}set preferredSize(e){this._preferredSize=e}get preferredSize(){return this._preferredSize}}const _Ye=30,vYe=24;class bYe extends ne{constructor(e,t=new yi(10,10)){super(),this._editor=e,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._resizableNode=this._register(new yU),this._contentPosition=null,this._isResizing=!1,this._resizableNode.domNode.style.position=\"absolute\",this._resizableNode.minSize=yi.lift(t),this._resizableNode.layout(t.height,t.width),this._resizableNode.enableSashes(!0,!0,!0,!0),this._register(this._resizableNode.onDidResize(i=>{this._resize(new yi(i.dimension.width,i.dimension.height)),i.done&&(this._isResizing=!1)})),this._register(this._resizableNode.onDidWillResize(()=>{this._isResizing=!0}))}get isResizing(){return this._isResizing}getDomNode(){return this._resizableNode.domNode}getPosition(){return this._contentPosition}get position(){var e;return!((e=this._contentPosition)===null||e===void 0)&&e.position?ee.lift(this._contentPosition.position):void 0}_availableVerticalSpaceAbove(e){const t=this._editor.getDomNode(),i=this._editor.getScrolledVisiblePosition(e);return!t||!i?void 0:bs(t).top+i.top-_Ye}_availableVerticalSpaceBelow(e){const t=this._editor.getDomNode(),i=this._editor.getScrolledVisiblePosition(e);if(!t||!i)return;const s=bs(t),o=Fm(t.ownerDocument.body),r=s.top+i.top+i.height;return o.height-r-vYe}_findPositionPreference(e,t){var i,s;const o=Math.min((i=this._availableVerticalSpaceBelow(t))!==null&&i!==void 0?i:1/0,e),r=Math.min((s=this._availableVerticalSpaceAbove(t))!==null&&s!==void 0?s:1/0,e),a=Math.min(Math.max(r,o),e),l=Math.min(e,a);let c;return this._editor.getOption(60).above?c=l<=r?1:2:c=l<=o?2:1,c===1?this._resizableNode.enableSashes(!0,!0,!1,!1):this._resizableNode.enableSashes(!1,!0,!0,!1),c}_resize(e){this._resizableNode.layout(e.height,e.width)}}var CYe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},mT=function(n,e){return function(t,i){e(t,i,n)}},Wu;const Uee=30,wYe=6;let lw=Wu=class extends bYe{get isColorPickerVisible(){var e;return!!(!((e=this._visibleData)===null||e===void 0)&&e.colorPicker)}get isVisibleFromKeyboard(){var e;return((e=this._visibleData)===null||e===void 0?void 0:e.source)===1}get isVisible(){var e;return(e=this._hoverVisibleKey.get())!==null&&e!==void 0?e:!1}get isFocused(){var e;return(e=this._hoverFocusedKey.get())!==null&&e!==void 0?e:!1}constructor(e,t,i,s,o){const r=e.getOption(67)+8,a=150,l=new yi(a,r);super(e,l),this._configurationService=i,this._accessibilityService=s,this._keybindingService=o,this._hover=this._register(new c$),this._minimumSize=l,this._hoverVisibleKey=W.hoverVisible.bindTo(t),this._hoverFocusedKey=W.hoverFocused.bindTo(t),we(this._resizableNode.domNode,this._hover.containerDomNode),this._resizableNode.domNode.style.zIndex=\"50\",this._register(this._editor.onDidLayoutChange(()=>{this.isVisible&&this._updateMaxDimensions()})),this._register(this._editor.onDidChangeConfiguration(d=>{d.hasChanged(50)&&this._updateFont()}));const c=this._register(ou(this._resizableNode.domNode));this._register(c.onDidFocus(()=>{this._hoverFocusedKey.set(!0)})),this._register(c.onDidBlur(()=>{this._hoverFocusedKey.set(!1)})),this._setHoverData(void 0),this._editor.addContentWidget(this)}dispose(){var e;super.dispose(),(e=this._visibleData)===null||e===void 0||e.disposables.dispose(),this._editor.removeContentWidget(this)}getId(){return Wu.ID}static _applyDimensions(e,t,i){const s=typeof t==\"number\"?`${t}px`:t,o=typeof i==\"number\"?`${i}px`:i;e.style.width=s,e.style.height=o}_setContentsDomNodeDimensions(e,t){const i=this._hover.contentsDomNode;return Wu._applyDimensions(i,e,t)}_setContainerDomNodeDimensions(e,t){const i=this._hover.containerDomNode;return Wu._applyDimensions(i,e,t)}_setHoverWidgetDimensions(e,t){this._setContentsDomNodeDimensions(e,t),this._setContainerDomNodeDimensions(e,t),this._layoutContentWidget()}static _applyMaxDimensions(e,t,i){const s=typeof t==\"number\"?`${t}px`:t,o=typeof i==\"number\"?`${i}px`:i;e.style.maxWidth=s,e.style.maxHeight=o}_setHoverWidgetMaxDimensions(e,t){Wu._applyMaxDimensions(this._hover.contentsDomNode,e,t),Wu._applyMaxDimensions(this._hover.containerDomNode,e,t),this._hover.containerDomNode.style.setProperty(\"--vscode-hover-maxWidth\",typeof e==\"number\"?`${e}px`:e),this._layoutContentWidget()}_setAdjustedHoverWidgetDimensions(e){this._setHoverWidgetMaxDimensions(\"none\",\"none\");const t=e.width,i=e.height;this._setHoverWidgetDimensions(t,i)}_updateResizableNodeMaxDimensions(){var e,t;const i=(e=this._findMaximumRenderingWidth())!==null&&e!==void 0?e:1/0,s=(t=this._findMaximumRenderingHeight())!==null&&t!==void 0?t:1/0;this._resizableNode.maxSize=new yi(i,s),this._setHoverWidgetMaxDimensions(i,s)}_resize(e){var t,i;Wu._lastDimensions=new yi(e.width,e.height),this._setAdjustedHoverWidgetDimensions(e),this._resizableNode.layout(e.height,e.width),this._updateResizableNodeMaxDimensions(),this._hover.scrollbar.scanDomNode(),this._editor.layoutContentWidget(this),(i=(t=this._visibleData)===null||t===void 0?void 0:t.colorPicker)===null||i===void 0||i.layout()}_findAvailableSpaceVertically(){var e;const t=(e=this._visibleData)===null||e===void 0?void 0:e.showAtPosition;if(t)return this._positionPreference===1?this._availableVerticalSpaceAbove(t):this._availableVerticalSpaceBelow(t)}_findMaximumRenderingHeight(){const e=this._findAvailableSpaceVertically();if(!e)return;let t=wYe;return Array.from(this._hover.contentsDomNode.children).forEach(i=>{t+=i.clientHeight}),Math.min(e,t)}_isHoverTextOverflowing(){this._hover.containerDomNode.style.setProperty(\"--vscode-hover-whiteSpace\",\"nowrap\"),this._hover.containerDomNode.style.setProperty(\"--vscode-hover-sourceWhiteSpace\",\"nowrap\");const e=Array.from(this._hover.contentsDomNode.children).some(t=>t.scrollWidth>t.clientWidth);return this._hover.containerDomNode.style.removeProperty(\"--vscode-hover-whiteSpace\"),this._hover.containerDomNode.style.removeProperty(\"--vscode-hover-sourceWhiteSpace\"),e}_findMaximumRenderingWidth(){if(!this._editor||!this._editor.hasModel())return;const e=this._isHoverTextOverflowing(),t=typeof this._contentWidth>\"u\"?0:this._contentWidth-2;return e||this._hover.containerDomNode.clientWidth<t?Fm(this._hover.containerDomNode.ownerDocument.body).width-14:this._hover.containerDomNode.clientWidth+2}isMouseGettingCloser(e,t){if(!this._visibleData)return!1;if(typeof this._visibleData.initialMousePosX>\"u\"||typeof this._visibleData.initialMousePosY>\"u\")return this._visibleData.initialMousePosX=e,this._visibleData.initialMousePosY=t,!1;const i=bs(this.getDomNode());typeof this._visibleData.closestMouseDistance>\"u\"&&(this._visibleData.closestMouseDistance=jee(this._visibleData.initialMousePosX,this._visibleData.initialMousePosY,i.left,i.top,i.width,i.height));const s=jee(e,t,i.left,i.top,i.width,i.height);return s>this._visibleData.closestMouseDistance+4?!1:(this._visibleData.closestMouseDistance=Math.min(this._visibleData.closestMouseDistance,s),!0)}_setHoverData(e){var t;(t=this._visibleData)===null||t===void 0||t.disposables.dispose(),this._visibleData=e,this._hoverVisibleKey.set(!!e),this._hover.containerDomNode.classList.toggle(\"hidden\",!e)}_updateFont(){const{fontSize:e,lineHeight:t}=this._editor.getOption(50),i=this._hover.contentsDomNode;i.style.fontSize=`${e}px`,i.style.lineHeight=`${t/e}`,Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName(\"code\")).forEach(o=>this._editor.applyFontInfo(o))}_updateContent(e){const t=this._hover.contentsDomNode;t.style.paddingBottom=\"\",t.textContent=\"\",t.appendChild(e)}_layoutContentWidget(){this._editor.layoutContentWidget(this),this._hover.onContentsChanged()}_updateMaxDimensions(){const e=Math.max(this._editor.getLayoutInfo().height/4,250,Wu._lastDimensions.height),t=Math.max(this._editor.getLayoutInfo().width*.66,500,Wu._lastDimensions.width);this._setHoverWidgetMaxDimensions(t,e)}_render(e,t){this._setHoverData(t),this._updateFont(),this._updateContent(e),this._updateMaxDimensions(),this.onContentsChanged(),this._editor.render()}getPosition(){var e;return this._visibleData?{position:this._visibleData.showAtPosition,secondaryPosition:this._visibleData.showAtSecondaryPosition,positionAffinity:this._visibleData.isBeforeContent?3:void 0,preference:[(e=this._positionPreference)!==null&&e!==void 0?e:1]}:null}showAt(e,t){var i,s,o,r;if(!this._editor||!this._editor.hasModel())return;this._render(e,t);const a=Zf(this._hover.containerDomNode),l=t.showAtPosition;this._positionPreference=(i=this._findPositionPreference(a,l))!==null&&i!==void 0?i:1,this.onContentsChanged(),t.stoleFocus&&this._hover.containerDomNode.focus(),(s=t.colorPicker)===null||s===void 0||s.layout();const d=this._hover.containerDomNode.ownerDocument.activeElement===this._hover.containerDomNode&&cde(this._configurationService.getValue(\"accessibility.verbosity.hover\")===!0&&this._accessibilityService.isScreenReaderOptimized(),(r=(o=this._keybindingService.lookupKeybinding(\"editor.action.accessibleView\"))===null||o===void 0?void 0:o.getAriaLabel())!==null&&r!==void 0?r:\"\");d&&(this._hover.contentsDomNode.ariaLabel=this._hover.contentsDomNode.textContent+\", \"+d)}hide(){if(!this._visibleData)return;const e=this._visibleData.stoleFocus||this._hoverFocusedKey.get();this._setHoverData(void 0),this._resizableNode.maxSize=new yi(1/0,1/0),this._resizableNode.clearSashHoverState(),this._hoverFocusedKey.set(!1),this._editor.layoutContentWidget(this),e&&this._editor.focus()}_removeConstraintsRenderNormally(){const e=this._editor.getLayoutInfo();this._resizableNode.layout(e.height,e.width),this._setHoverWidgetDimensions(\"auto\",\"auto\")}setMinimumDimensions(e){this._minimumSize=new yi(Math.max(this._minimumSize.width,e.width),Math.max(this._minimumSize.height,e.height)),this._updateMinimumWidth()}_updateMinimumWidth(){const e=typeof this._contentWidth>\"u\"?this._minimumSize.width:Math.min(this._contentWidth,this._minimumSize.width);this._resizableNode.minSize=new yi(e,this._minimumSize.height)}onContentsChanged(){var e;this._removeConstraintsRenderNormally();const t=this._hover.containerDomNode;let i=Zf(t),s=Sa(t);if(this._resizableNode.layout(i,s),this._setHoverWidgetDimensions(s,i),i=Zf(t),s=Sa(t),this._contentWidth=s,this._updateMinimumWidth(),this._resizableNode.layout(i,s),!((e=this._visibleData)===null||e===void 0)&&e.showAtPosition){const o=Zf(this._hover.containerDomNode);this._positionPreference=this._findPositionPreference(o,this._visibleData.showAtPosition)}this._layoutContentWidget()}focus(){this._hover.containerDomNode.focus()}scrollUp(){const e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._editor.getOption(50);this._hover.scrollbar.setScrollPosition({scrollTop:e-t.lineHeight})}scrollDown(){const e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._editor.getOption(50);this._hover.scrollbar.setScrollPosition({scrollTop:e+t.lineHeight})}scrollLeft(){const e=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:e-Uee})}scrollRight(){const e=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:e+Uee})}pageUp(){const e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:e-t})}pageDown(){const e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:e+t})}goToTop(){this._hover.scrollbar.setScrollPosition({scrollTop:0})}goToBottom(){this._hover.scrollbar.setScrollPosition({scrollTop:this._hover.scrollbar.getScrollDimensions().scrollHeight})}};lw.ID=\"editor.contrib.resizableContentHoverWidget\";lw._lastDimensions=new yi(0,0);lw=Wu=CYe([mT(1,Ct),mT(2,qt),mT(3,Ha),mT(4,Li)],lw);function jee(n,e,t,i,s,o){const r=t+s/2,a=i+o/2,l=Math.max(Math.abs(n-r)-s/2,0),c=Math.max(Math.abs(e-a)-o/2,0);return Math.sqrt(l*l+c*c)}let yYe=class{constructor(e,t,i){this.value=e,this.isComplete=t,this.hasLoadingMessage=i}};class Efe extends ne{constructor(e,t){super(),this._editor=e,this._computer=t,this._onResult=this._register(new X),this.onResult=this._onResult.event,this._firstWaitScheduler=this._register(new Xi(()=>this._triggerAsyncComputation(),0)),this._secondWaitScheduler=this._register(new Xi(()=>this._triggerSyncComputation(),0)),this._loadingMessageScheduler=this._register(new Xi(()=>this._triggerLoadingMessage(),0)),this._state=0,this._asyncIterable=null,this._asyncIterableDone=!1,this._result=[]}dispose(){this._asyncIterable&&(this._asyncIterable.cancel(),this._asyncIterable=null),super.dispose()}get _hoverTime(){return this._editor.getOption(60).delay}get _firstWaitTime(){return this._hoverTime/2}get _secondWaitTime(){return this._hoverTime-this._firstWaitTime}get _loadingMessageTime(){return 3*this._hoverTime}_setState(e,t=!0){this._state=e,t&&this._fireResult()}_triggerAsyncComputation(){this._setState(2),this._secondWaitScheduler.schedule(this._secondWaitTime),this._computer.computeAsync?(this._asyncIterableDone=!1,this._asyncIterable=zRe(e=>this._computer.computeAsync(e)),(async()=>{try{for await(const e of this._asyncIterable)e&&(this._result.push(e),this._fireResult());this._asyncIterableDone=!0,(this._state===3||this._state===4)&&this._setState(0)}catch(e){Mt(e)}})()):this._asyncIterableDone=!0}_triggerSyncComputation(){this._computer.computeSync&&(this._result=this._result.concat(this._computer.computeSync())),this._setState(this._asyncIterableDone?0:3)}_triggerLoadingMessage(){this._state===3&&this._setState(4)}_fireResult(){if(this._state===1||this._state===2)return;const e=this._state===0,t=this._state===4;this._onResult.fire(new yYe(this._result.slice(0),e,t))}start(e){if(e===0)this._state===0&&(this._setState(1),this._firstWaitScheduler.schedule(this._firstWaitTime),this._loadingMessageScheduler.schedule(this._loadingMessageTime));else switch(this._state){case 0:this._triggerAsyncComputation(),this._secondWaitScheduler.cancel(),this._triggerSyncComputation();break;case 2:this._secondWaitScheduler.cancel(),this._triggerSyncComputation();break}}cancel(){this._firstWaitScheduler.cancel(),this._secondWaitScheduler.cancel(),this._loadingMessageScheduler.cancel(),this._asyncIterable&&(this._asyncIterable.cancel(),this._asyncIterable=null),this._result=[],this._setState(0,!1)}}class s3{constructor(e,t,i,s){this.priority=e,this.range=t,this.initialMousePosX=i,this.initialMousePosY=s,this.type=1}equals(e){return e.type===1&&this.range.equalsRange(e.range)}canAdoptVisibleHover(e,t){return e.type===1&&t.lineNumber===this.range.startLineNumber}}class Yv{constructor(e,t,i,s,o,r){this.priority=e,this.owner=t,this.range=i,this.initialMousePosX=s,this.initialMousePosY=o,this.supportsMarkerHover=r,this.type=2}equals(e){return e.type===2&&this.owner===e.owner}canAdoptVisibleHover(e,t){return e.type===2&&this.owner===e.owner}}const b_=new class{constructor(){this._participants=[]}register(e){this._participants.push(e)}getAll(){return this._participants}};class SYe{constructor(e,t,i){this.provider=e,this.hover=t,this.ordinal=i}}async function xYe(n,e,t,i,s){const o=await Promise.resolve(n.provideHover(t,i,s)).catch(as);if(!(!o||!kYe(o)))return new SYe(n,o,e)}function SU(n,e,t,i){const o=n.ordered(e).map((r,a)=>xYe(r,a,e,t,i));return Ls.fromPromises(o).coalesce()}function LYe(n,e,t,i){return SU(n,e,t,i).map(s=>s.hover).toPromise()}Vh(\"_executeHoverProvider\",(n,e,t)=>{const i=n.get(Xe);return LYe(i.hoverProvider,e,t,Qt.None)});function kYe(n){const e=typeof n.range<\"u\",t=typeof n.contents<\"u\"&&n.contents&&n.contents.length>0;return e&&t}var DYe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},zb=function(n,e){return function(t,i){e(t,i,n)}};const R1=ke,IYe=Jn(\"hover-increase-verbosity\",Te.add,v(\"increaseHoverVerbosity\",\"Icon for increaseing hover verbosity.\")),EYe=Jn(\"hover-decrease-verbosity\",Te.remove,v(\"decreaseHoverVerbosity\",\"Icon for decreasing hover verbosity.\"));class Wd{constructor(e,t,i,s,o,r=void 0){this.owner=e,this.range=t,this.contents=i,this.isBeforeContent=s,this.ordinal=o,this.source=r}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}class Tfe{constructor(e,t,i){this.hover=e,this.hoverProvider=t,this.hoverPosition=i}supportsVerbosityAction(e){var t,i;switch(e){case rl.Increase:return(t=this.hover.canIncreaseVerbosity)!==null&&t!==void 0?t:!1;case rl.Decrease:return(i=this.hover.canDecreaseVerbosity)!==null&&i!==void 0?i:!1}}}let gk=class{constructor(e,t,i,s,o,r,a){this._editor=e,this._languageService=t,this._openerService=i,this._configurationService=s,this._languageFeaturesService=o,this._keybindingService=r,this._hoverService=a,this.hoverOrdinal=3}createLoadingMessage(e){return new Wd(this,e.range,[new $o().appendText(v(\"modesContentHover.loading\",\"Loading...\"))],!1,2e3)}computeSync(e,t){if(!this._editor.hasModel()||e.type!==1)return[];const i=this._editor.getModel(),s=e.range.startLineNumber,o=i.getLineMaxColumn(s),r=[];let a=1e3;const l=i.getLineLength(s),c=i.getLanguageIdAtPosition(e.range.startLineNumber,e.range.startColumn),d=this._editor.getOption(117),u=this._configurationService.getValue(\"editor.maxTokenizationLineLength\",{overrideIdentifier:c});let h=!1;d>=0&&l>d&&e.range.startColumn>=d&&(h=!0,r.push(new Wd(this,e.range,[{value:v(\"stopped rendering\",\"Rendering paused for long line for performance reasons. This can be configured via `editor.stopRenderingLineAfter`.\")}],!1,a++))),!h&&typeof u==\"number\"&&l>=u&&r.push(new Wd(this,e.range,[{value:v(\"too many characters\",\"Tokenization is skipped for long lines for performance reasons. This can be configured via `editor.maxTokenizationLineLength`.\")}],!1,a++));let f=!1;for(const g of t){const p=g.range.startLineNumber===s?g.range.startColumn:1,_=g.range.endLineNumber===s?g.range.endColumn:o,b=g.options.hoverMessage;if(!b||qC(b))continue;g.options.beforeContentClassName&&(f=!0);const w=new A(e.range.startLineNumber,p,e.range.startLineNumber,_);r.push(new Wd(this,w,AV(b),f,a++))}return r}computeAsync(e,t,i){if(!this._editor.hasModel()||e.type!==1)return Ls.EMPTY;const s=this._editor.getModel(),o=this._languageFeaturesService.hoverProvider;return o.has(s)?this._getMarkdownHovers(o,s,e,i):Ls.EMPTY}_getMarkdownHovers(e,t,i,s){const o=i.range.getStartPosition();return SU(e,t,o,s).filter(l=>!qC(l.hover.contents)).map(l=>{const c=l.hover.range?A.lift(l.hover.range):i.range,d=new Tfe(l.hover,l.provider,o);return new Wd(this,c,l.hover.contents,!1,l.ordinal,d)})}renderHoverParts(e,t){return this._renderedHoverParts=new TYe(t,e.fragment,this._editor,this._languageService,this._openerService,this._keybindingService,this._hoverService,this._configurationService,e.onContentsChanged),this._renderedHoverParts}markdownHoverContentAtIndex(e){var t,i;return(i=(t=this._renderedHoverParts)===null||t===void 0?void 0:t.markdownHoverContentAtIndex(e))!==null&&i!==void 0?i:\"\"}doesMarkdownHoverAtIndexSupportVerbosityAction(e,t){var i,s;return(s=(i=this._renderedHoverParts)===null||i===void 0?void 0:i.doesMarkdownHoverAtIndexSupportVerbosityAction(e,t))!==null&&s!==void 0?s:!1}updateMarkdownHoverVerbosityLevel(e,t,i){var s;(s=this._renderedHoverParts)===null||s===void 0||s.updateMarkdownHoverPartVerbosityLevel(e,t,i)}};gk=DYe([zb(1,An),zb(2,$a),zb(3,qt),zb(4,Xe),zb(5,Li),zb(6,$h)],gk);class TYe extends ne{constructor(e,t,i,s,o,r,a,l,c){super(),this._editor=i,this._languageService=s,this._openerService=o,this._keybindingService=r,this._hoverService=a,this._configurationService=l,this._onFinishedRendering=c,this._focusedHoverPartIndex=-1,this._ongoingHoverOperations=new Map,this._renderedHoverParts=this._renderHoverParts(e,t,this._onFinishedRendering),this._register(dt(()=>{this._renderedHoverParts.forEach(d=>{d.disposables.dispose()})})),this._register(dt(()=>{this._ongoingHoverOperations.forEach(d=>{d.tokenSource.dispose(!0)})}))}_renderHoverParts(e,t,i){return e.sort(oa(s=>s.ordinal,Qc)),e.map((s,o)=>{const r=this._renderHoverPart(o,s.contents,s.source,i);return t.appendChild(r.renderedMarkdown),r})}_renderHoverPart(e,t,i,s){const{renderedMarkdown:o,disposables:r}=this._renderMarkdownContent(t,s);if(!i)return{renderedMarkdown:o,disposables:r};const a=i.supportsVerbosityAction(rl.Increase),l=i.supportsVerbosityAction(rl.Decrease);if(!a&&!l)return{renderedMarkdown:o,disposables:r,hoverSource:i};const c=R1(\"div.verbosity-actions\");return o.prepend(c),r.add(this._renderHoverExpansionAction(c,rl.Increase,a)),r.add(this._renderHoverExpansionAction(c,rl.Decrease,l)),this._register(ce(o,Le.FOCUS_IN,d=>{d.stopPropagation(),this._focusedHoverPartIndex=e})),this._register(ce(o,Le.FOCUS_OUT,d=>{d.stopPropagation(),this._focusedHoverPartIndex=-1})),{renderedMarkdown:o,disposables:r,hoverSource:i}}_renderMarkdownContent(e,t){const i=R1(\"div.hover-row\");i.tabIndex=0;const s=R1(\"div.hover-row-contents\");i.appendChild(s);const o=new be;return o.add(Nfe(this._editor,s,e,this._languageService,this._openerService,t)),{renderedMarkdown:i,disposables:o}}_renderHoverExpansionAction(e,t,i){const s=new be,o=t===rl.Increase,r=we(e,R1(_t.asCSSSelector(o?IYe:EYe)));r.tabIndex=0;const a=new KC(\"mouse\",!1,{target:e,position:{hoverPosition:0}},this._configurationService,this._hoverService);if(s.add(this._hoverService.setupUpdatableHover(a,r,AYe(this._keybindingService,t))),!i)return r.classList.add(\"disabled\"),s;r.classList.add(\"enabled\");const l=()=>this.updateMarkdownHoverPartVerbosityLevel(t);return s.add(new dde(r,l)),s.add(new ude(r,l,[3,10])),s}async updateMarkdownHoverPartVerbosityLevel(e,t=-1,i=!0){var s;const o=this._editor.getModel();if(!o)return;const r=t!==-1?t:this._focusedHoverPartIndex,a=this._getRenderedHoverPartAtIndex(r);if(!a||!(!((s=a.hoverSource)===null||s===void 0)&&s.supportsVerbosityAction(e)))return;const l=a.hoverSource,c=await this._fetchHover(l,o,e);if(!c)return;const d=new Tfe(c,l.hoverProvider,l.hoverPosition),u=this._renderHoverPart(r,c.contents,d,this._onFinishedRendering);this._replaceRenderedHoverPartAtIndex(r,u),i&&this._focusOnHoverPartWithIndex(r),this._onFinishedRendering()}markdownHoverContentAtIndex(e){var t;const i=this._getRenderedHoverPartAtIndex(e);return(t=i==null?void 0:i.renderedMarkdown.innerText)!==null&&t!==void 0?t:\"\"}doesMarkdownHoverAtIndexSupportVerbosityAction(e,t){var i;const s=this._getRenderedHoverPartAtIndex(e);return!(!s||!(!((i=s.hoverSource)===null||i===void 0)&&i.supportsVerbosityAction(t)))}async _fetchHover(e,t,i){let s=i===rl.Increase?1:-1;const o=e.hoverProvider,r=this._ongoingHoverOperations.get(o);r&&(r.tokenSource.cancel(),s+=r.verbosityDelta);const a=new $n;this._ongoingHoverOperations.set(o,{verbosityDelta:s,tokenSource:a});const l={verbosityRequest:{verbosityDelta:s,previousHover:e.hover}};let c;try{c=await Promise.resolve(o.provideHover(t,e.hoverPosition,a.token,l))}catch(d){as(d)}return a.dispose(),this._ongoingHoverOperations.delete(o),c}_replaceRenderedHoverPartAtIndex(e,t){if(e>=this._renderHoverParts.length||e<0)return;const i=this._renderedHoverParts[e];i.renderedMarkdown.replaceWith(t.renderedMarkdown),i.disposables.dispose(),this._renderedHoverParts[e]=t}_focusOnHoverPartWithIndex(e){this._renderedHoverParts[e].renderedMarkdown.focus()}_getRenderedHoverPartAtIndex(e){return this._renderedHoverParts[e]}}function NYe(n,e,t,i,s){e.sort(oa(r=>r.ordinal,Qc));const o=new be;for(const r of e)o.add(Nfe(t,n.fragment,r.contents,i,s,n.onContentsChanged));return o}function Nfe(n,e,t,i,s,o){const r=new be;for(const a of t){if(qC(a))continue;const l=R1(\"div.markdown-hover\"),c=we(l,R1(\"div.hover-contents\")),d=r.add(new Nh({editor:n},i,s));r.add(d.onDidRenderAsync(()=>{c.className=\"hover-contents code-hover-contents\",o()}));const u=r.add(d.render(a));c.appendChild(u.element),e.appendChild(l)}return r}function AYe(n,e){switch(e){case rl.Increase:{const t=n.lookupKeybinding(NP);return t?v(\"increaseVerbosityWithKb\",\"Increase Hover Verbosity ({0})\",t.getLabel()):v(\"increaseVerbosity\",\"Increase Hover Verbosity\")}case rl.Decrease:{const t=n.lookupKeybinding(AP);return t?v(\"decreaseVerbosityWithKb\",\"Decrease Hover Verbosity ({0})\",t.getLabel()):v(\"decreaseVerbosity\",\"Decrease Hover Verbosity\")}}}function Q6(n,e){return!!n[e]}class o3{constructor(e,t){this.target=e.target,this.isLeftClick=e.event.leftButton,this.isMiddleClick=e.event.middleButton,this.isRightClick=e.event.rightButton,this.hasTriggerModifier=Q6(e.event,t.triggerModifier),this.hasSideBySideModifier=Q6(e.event,t.triggerSideBySideModifier),this.isNoneOrSingleMouseDown=e.event.detail<=1}}class Kee{constructor(e,t){this.keyCodeIsTriggerKey=e.keyCode===t.triggerKey,this.keyCodeIsSideBySideKey=e.keyCode===t.triggerSideBySideKey,this.hasTriggerModifier=Q6(e,t.triggerModifier)}}class _T{constructor(e,t,i,s){this.triggerKey=e,this.triggerModifier=t,this.triggerSideBySideKey=i,this.triggerSideBySideModifier=s}equals(e){return this.triggerKey===e.triggerKey&&this.triggerModifier===e.triggerModifier&&this.triggerSideBySideKey===e.triggerSideBySideKey&&this.triggerSideBySideModifier===e.triggerSideBySideModifier}}function qee(n){return n===\"altKey\"?Xt?new _T(57,\"metaKey\",6,\"altKey\"):new _T(5,\"ctrlKey\",6,\"altKey\"):Xt?new _T(6,\"altKey\",57,\"metaKey\"):new _T(6,\"altKey\",5,\"ctrlKey\")}class RP extends ne{constructor(e,t){var i;super(),this._onMouseMoveOrRelevantKeyDown=this._register(new X),this.onMouseMoveOrRelevantKeyDown=this._onMouseMoveOrRelevantKeyDown.event,this._onExecute=this._register(new X),this.onExecute=this._onExecute.event,this._onCancel=this._register(new X),this.onCancel=this._onCancel.event,this._editor=e,this._extractLineNumberFromMouseEvent=(i=t==null?void 0:t.extractLineNumberFromMouseEvent)!==null&&i!==void 0?i:s=>s.target.position?s.target.position.lineNumber:0,this._opts=qee(this._editor.getOption(78)),this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._register(this._editor.onDidChangeConfiguration(s=>{if(s.hasChanged(78)){const o=qee(this._editor.getOption(78));if(this._opts.equals(o))return;this._opts=o,this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._onCancel.fire()}})),this._register(this._editor.onMouseMove(s=>this._onEditorMouseMove(new o3(s,this._opts)))),this._register(this._editor.onMouseDown(s=>this._onEditorMouseDown(new o3(s,this._opts)))),this._register(this._editor.onMouseUp(s=>this._onEditorMouseUp(new o3(s,this._opts)))),this._register(this._editor.onKeyDown(s=>this._onEditorKeyDown(new Kee(s,this._opts)))),this._register(this._editor.onKeyUp(s=>this._onEditorKeyUp(new Kee(s,this._opts)))),this._register(this._editor.onMouseDrag(()=>this._resetHandler())),this._register(this._editor.onDidChangeCursorSelection(s=>this._onDidChangeCursorSelection(s))),this._register(this._editor.onDidChangeModel(s=>this._resetHandler())),this._register(this._editor.onDidChangeModelContent(()=>this._resetHandler())),this._register(this._editor.onDidScrollChange(s=>{(s.scrollTopChanged||s.scrollLeftChanged)&&this._resetHandler()}))}_onDidChangeCursorSelection(e){e.selection&&e.selection.startColumn!==e.selection.endColumn&&this._resetHandler()}_onEditorMouseMove(e){this._lastMouseMoveEvent=e,this._onMouseMoveOrRelevantKeyDown.fire([e,null])}_onEditorMouseDown(e){this._hasTriggerKeyOnMouseDown=e.hasTriggerModifier,this._lineNumberOnMouseDown=this._extractLineNumberFromMouseEvent(e)}_onEditorMouseUp(e){const t=this._extractLineNumberFromMouseEvent(e);this._hasTriggerKeyOnMouseDown&&this._lineNumberOnMouseDown&&this._lineNumberOnMouseDown===t&&this._onExecute.fire(e)}_onEditorKeyDown(e){this._lastMouseMoveEvent&&(e.keyCodeIsTriggerKey||e.keyCodeIsSideBySideKey&&e.hasTriggerModifier)?this._onMouseMoveOrRelevantKeyDown.fire([this._lastMouseMoveEvent,e]):e.hasTriggerModifier&&this._onCancel.fire()}_onEditorKeyUp(e){e.keyCodeIsTriggerKey&&this._onCancel.fire()}_resetHandler(){this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._onCancel.fire()}}class Afe{constructor(e,t){this.range=e,this.direction=t}}class xU{constructor(e,t,i){this.hint=e,this.anchor=t,this.provider=i,this._isResolved=!1}with(e){const t=new xU(this.hint,e.anchor,this.provider);return t._isResolved=this._isResolved,t._currentResolve=this._currentResolve,t}async resolve(e){if(typeof this.provider.resolveInlayHint==\"function\"){if(this._currentResolve)return await this._currentResolve,e.isCancellationRequested?void 0:this.resolve(e);this._isResolved||(this._currentResolve=this._doResolve(e).finally(()=>this._currentResolve=void 0)),await this._currentResolve}}async _doResolve(e){var t,i,s;try{const o=await Promise.resolve(this.provider.resolveInlayHint(this.hint,e));this.hint.tooltip=(t=o==null?void 0:o.tooltip)!==null&&t!==void 0?t:this.hint.tooltip,this.hint.label=(i=o==null?void 0:o.label)!==null&&i!==void 0?i:this.hint.label,this.hint.textEdits=(s=o==null?void 0:o.textEdits)!==null&&s!==void 0?s:this.hint.textEdits,this._isResolved=!0}catch(o){as(o),this._isResolved=!1}}}class Xv{static async create(e,t,i,s){const o=[],r=e.ordered(t).reverse().map(a=>i.map(async l=>{try{const c=await a.provideInlayHints(t,l,s);(c!=null&&c.hints.length||a.onDidChangeInlayHints)&&o.push([c??Xv._emptyInlayHintList,a])}catch(c){as(c)}}));if(await Promise.all(r.flat()),s.isCancellationRequested||t.isDisposed())throw new nu;return new Xv(i,o,t)}constructor(e,t,i){this._disposables=new be,this.ranges=e,this.provider=new Set;const s=[];for(const[o,r]of t){this._disposables.add(o),this.provider.add(r);for(const a of o.hints){const l=i.validatePosition(a.position);let c=\"before\";const d=Xv._getRangeAtPosition(i,l);let u;d.getStartPosition().isBefore(l)?(u=A.fromPositions(d.getStartPosition(),l),c=\"after\"):(u=A.fromPositions(l,d.getEndPosition()),c=\"before\"),s.push(new xU(a,new Afe(u,c),r))}}this.items=s.sort((o,r)=>ee.compare(o.hint.position,r.hint.position))}dispose(){this._disposables.dispose()}static _getRangeAtPosition(e,t){const i=t.lineNumber,s=e.getWordAtPosition(t);if(s)return new A(i,s.startColumn,i,s.endColumn);e.tokenization.tokenizeIfCheap(i);const o=e.tokenization.getLineTokens(i),r=t.column-1,a=o.findTokenIndexAtOffset(r);let l=o.getStartOffset(a),c=o.getEndOffset(a);return c-l===1&&(l===r&&a>1?(l=o.getStartOffset(a-1),c=o.getEndOffset(a-1)):c===r&&a<o.getCount()-1&&(l=o.getStartOffset(a+1),c=o.getEndOffset(a+1))),new A(i,l+1,i,c+1)}}Xv._emptyInlayHintList=Object.freeze({dispose(){},hints:[]});function RYe(n){return pt.from({scheme:Tt.command,path:n.id,query:n.arguments&&encodeURIComponent(JSON.stringify(n.arguments))}).toString()}var MYe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},pf=function(n,e){return function(t,i){e(t,i,n)}};let Ym=class extends jC{constructor(e,t,i,s,o,r,a,l,c,d,u,h,f){super(e,{...s.getRawOptions(),overflowWidgetsDomNode:s.getOverflowWidgetsDomNode()},i,o,r,a,l,c,d,u,h,f),this._parentEditor=s,this._overwriteOptions=t,super.updateOptions(this._overwriteOptions),this._register(s.onDidChangeConfiguration(g=>this._onParentConfigurationChanged(g)))}getParentEditor(){return this._parentEditor}_onParentConfigurationChanged(e){super.updateOptions(this._parentEditor.getRawOptions()),super.updateOptions(this._overwriteOptions)}updateOptions(e){tM(this._overwriteOptions,e,!0),super.updateOptions(this._overwriteOptions)}};Ym=MYe([pf(4,ht),pf(5,vi),pf(6,Sn),pf(7,Ct),pf(8,js),pf(9,ps),pf(10,Ha),pf(11,gn),pf(12,Xe)],Ym);const Gee=new le(new ci(0,122,204)),PYe={showArrow:!0,showFrame:!0,className:\"\",frameColor:Gee,arrowColor:Gee,keepEditorSelection:!1},OYe=\"vs.editor.contrib.zoneWidget\";class FYe{constructor(e,t,i,s,o,r,a,l){this.id=\"\",this.domNode=e,this.afterLineNumber=t,this.afterColumn=i,this.heightInLines=s,this.showInHiddenAreas=a,this.ordinal=l,this._onDomNodeTop=o,this._onComputedHeight=r}onDomNodeTop(e){this._onDomNodeTop(e)}onComputedHeight(e){this._onComputedHeight(e)}}class BYe{constructor(e,t){this._id=e,this._domNode=t}getId(){return this._id}getDomNode(){return this._domNode}getPosition(){return null}}class MP{constructor(e){this._editor=e,this._ruleName=MP._IdGenerator.nextId(),this._decorations=this._editor.createDecorationsCollection(),this._color=null,this._height=-1}dispose(){this.hide(),rB(this._ruleName)}set color(e){this._color!==e&&(this._color=e,this._updateStyle())}set height(e){this._height!==e&&(this._height=e,this._updateStyle())}_updateStyle(){rB(this._ruleName),H2(`.monaco-editor ${this._ruleName}`,`border-style: solid; border-color: transparent; border-bottom-color: ${this._color}; border-width: ${this._height}px; bottom: -${this._height}px !important; margin-left: -${this._height}px; `)}show(e){e.column===1&&(e={lineNumber:e.lineNumber,column:2}),this._decorations.set([{range:A.fromPositions(e),options:{description:\"zone-widget-arrow\",className:this._ruleName,stickiness:1}}])}hide(){this._decorations.clear()}}MP._IdGenerator=new v$(\".arrow-decoration-\");class WYe{constructor(e,t={}){this._arrow=null,this._overlayWidget=null,this._resizeSash=null,this._viewZone=null,this._disposables=new be,this.container=null,this._isShowing=!1,this.editor=e,this._positionMarkerId=this.editor.createDecorationsCollection(),this.options=Tf(t),tM(this.options,PYe,!1),this.domNode=document.createElement(\"div\"),this.options.isAccessible||(this.domNode.setAttribute(\"aria-hidden\",\"true\"),this.domNode.setAttribute(\"role\",\"presentation\")),this._disposables.add(this.editor.onDidLayoutChange(i=>{const s=this._getWidth(i);this.domNode.style.width=s+\"px\",this.domNode.style.left=this._getLeft(i)+\"px\",this._onWidth(s)}))}dispose(){this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this._viewZone&&this.editor.changeViewZones(e=>{this._viewZone&&e.removeZone(this._viewZone.id),this._viewZone=null}),this._positionMarkerId.clear(),this._disposables.dispose()}create(){this.domNode.classList.add(\"zone-widget\"),this.options.className&&this.domNode.classList.add(this.options.className),this.container=document.createElement(\"div\"),this.container.classList.add(\"zone-widget-container\"),this.domNode.appendChild(this.container),this.options.showArrow&&(this._arrow=new MP(this.editor),this._disposables.add(this._arrow)),this._fillContainer(this.container),this._initSash(),this._applyStyles()}style(e){e.frameColor&&(this.options.frameColor=e.frameColor),e.arrowColor&&(this.options.arrowColor=e.arrowColor),this._applyStyles()}_applyStyles(){if(this.container&&this.options.frameColor){const e=this.options.frameColor.toString();this.container.style.borderTopColor=e,this.container.style.borderBottomColor=e}if(this._arrow&&this.options.arrowColor){const e=this.options.arrowColor.toString();this._arrow.color=e}}_getWidth(e){return e.width-e.minimap.minimapWidth-e.verticalScrollbarWidth}_getLeft(e){return e.minimap.minimapWidth>0&&e.minimap.minimapLeft===0?e.minimap.minimapWidth:0}_onViewZoneTop(e){this.domNode.style.top=e+\"px\"}_onViewZoneHeight(e){var t;if(this.domNode.style.height=`${e}px`,this.container){const i=e-this._decoratingElementsHeight();this.container.style.height=`${i}px`;const s=this.editor.getLayoutInfo();this._doLayout(i,this._getWidth(s))}(t=this._resizeSash)===null||t===void 0||t.layout()}get position(){const e=this._positionMarkerId.getRange(0);if(e)return e.getStartPosition()}show(e,t){const i=A.isIRange(e)?A.lift(e):A.fromPositions(e);this._isShowing=!0,this._showImpl(i,t),this._isShowing=!1,this._positionMarkerId.set([{range:i,options:Wt.EMPTY}])}hide(){var e;this._viewZone&&(this.editor.changeViewZones(t=>{this._viewZone&&t.removeZone(this._viewZone.id)}),this._viewZone=null),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),(e=this._arrow)===null||e===void 0||e.hide(),this._positionMarkerId.clear()}_decoratingElementsHeight(){const e=this.editor.getOption(67);let t=0;if(this.options.showArrow){const i=Math.round(e/3);t+=2*i}if(this.options.showFrame){const i=Math.round(e/9);t+=2*i}return t}_showImpl(e,t){const i=e.getStartPosition(),s=this.editor.getLayoutInfo(),o=this._getWidth(s);this.domNode.style.width=`${o}px`,this.domNode.style.left=this._getLeft(s)+\"px\";const r=document.createElement(\"div\");r.style.overflow=\"hidden\";const a=this.editor.getOption(67);if(!this.options.allowUnlimitedHeight){const h=Math.max(12,this.editor.getLayoutInfo().height/a*.8);t=Math.min(t,h)}let l=0,c=0;if(this._arrow&&this.options.showArrow&&(l=Math.round(a/3),this._arrow.height=l,this._arrow.show(i)),this.options.showFrame&&(c=Math.round(a/9)),this.editor.changeViewZones(h=>{this._viewZone&&h.removeZone(this._viewZone.id),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this.domNode.style.top=\"-1000px\",this._viewZone=new FYe(r,i.lineNumber,i.column,t,f=>this._onViewZoneTop(f),f=>this._onViewZoneHeight(f),this.options.showInHiddenAreas,this.options.ordinal),this._viewZone.id=h.addZone(this._viewZone),this._overlayWidget=new BYe(OYe+this._viewZone.id,this.domNode),this.editor.addOverlayWidget(this._overlayWidget)}),this.container&&this.options.showFrame){const h=this.options.frameWidth?this.options.frameWidth:c;this.container.style.borderTopWidth=h+\"px\",this.container.style.borderBottomWidth=h+\"px\"}const d=t*a-this._decoratingElementsHeight();this.container&&(this.container.style.top=l+\"px\",this.container.style.height=d+\"px\",this.container.style.overflow=\"hidden\"),this._doLayout(d,o),this.options.keepEditorSelection||this.editor.setSelection(e);const u=this.editor.getModel();if(u){const h=u.validateRange(new A(e.startLineNumber,1,e.endLineNumber+1,1));this.revealRange(h,h.startLineNumber===u.getLineCount())}}revealRange(e,t){t?this.editor.revealLineNearTop(e.endLineNumber,0):this.editor.revealRange(e,0)}setCssClass(e,t){this.container&&(t&&this.container.classList.remove(t),this.container.classList.add(e))}_onWidth(e){}_doLayout(e,t){}_relayout(e){this._viewZone&&this._viewZone.heightInLines!==e&&this.editor.changeViewZones(t=>{this._viewZone&&(this._viewZone.heightInLines=e,t.layoutZone(this._viewZone.id))})}_initSash(){if(this._resizeSash)return;this._resizeSash=this._disposables.add(new Vo(this.domNode,this,{orientation:1})),this.options.isResizeable||(this._resizeSash.state=0);let e;this._disposables.add(this._resizeSash.onDidStart(t=>{this._viewZone&&(e={startY:t.startY,heightInLines:this._viewZone.heightInLines})})),this._disposables.add(this._resizeSash.onDidEnd(()=>{e=void 0})),this._disposables.add(this._resizeSash.onDidChange(t=>{if(e){const i=(t.currentY-e.startY)/this.editor.getOption(67),s=i<0?Math.ceil(i):Math.floor(i),o=e.heightInLines+s;o>5&&o<35&&this._relayout(o)}}))}getHorizontalSashLeft(){return 0}getHorizontalSashTop(){return(this.domNode.style.height===null?0:parseInt(this.domNode.style.height))-this._decoratingElementsHeight()/2}getHorizontalSashWidth(){const e=this.editor.getLayoutInfo();return e.width-e.minimap.minimapWidth}}var Rfe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Mfe=function(n,e){return function(t,i){e(t,i,n)}};const Pfe=Jt(\"IPeekViewService\");ai(Pfe,class{constructor(){this._widgets=new Map}addExclusiveWidget(n,e){const t=this._widgets.get(n);t&&(t.listener.dispose(),t.widget.dispose());const i=()=>{const s=this._widgets.get(n);s&&s.widget===e&&(s.listener.dispose(),this._widgets.delete(n))};this._widgets.set(n,{widget:e,listener:e.onDidClose(i)})}},1);var da;(function(n){n.inPeekEditor=new He(\"inReferenceSearchEditor\",!0,v(\"inReferenceSearchEditor\",\"Whether the current code editor is embedded inside peek\")),n.notInPeekEditor=n.inPeekEditor.toNegated()})(da||(da={}));let pk=class{constructor(e,t){e instanceof Ym&&da.inPeekEditor.bindTo(t)}dispose(){}};pk.ID=\"editor.contrib.referenceController\";pk=Rfe([Mfe(1,Ct)],pk);bi(pk.ID,pk,0);function HYe(n){const e=n.get(vi).getFocusedCodeEditor();return e instanceof Ym?e.getParentEditor():e}const VYe={headerBackgroundColor:le.white,primaryHeadingColor:le.fromHex(\"#333333\"),secondaryHeadingColor:le.fromHex(\"#6c6c6cb3\")};let hR=class extends WYe{constructor(e,t,i){super(e,t),this.instantiationService=i,this._onDidClose=new X,this.onDidClose=this._onDidClose.event,tM(this.options,VYe,!1)}dispose(){this.disposed||(this.disposed=!0,super.dispose(),this._onDidClose.fire(this))}style(e){const t=this.options;e.headerBackgroundColor&&(t.headerBackgroundColor=e.headerBackgroundColor),e.primaryHeadingColor&&(t.primaryHeadingColor=e.primaryHeadingColor),e.secondaryHeadingColor&&(t.secondaryHeadingColor=e.secondaryHeadingColor),super.style(e)}_applyStyles(){super._applyStyles();const e=this.options;this._headElement&&e.headerBackgroundColor&&(this._headElement.style.backgroundColor=e.headerBackgroundColor.toString()),this._primaryHeading&&e.primaryHeadingColor&&(this._primaryHeading.style.color=e.primaryHeadingColor.toString()),this._secondaryHeading&&e.secondaryHeadingColor&&(this._secondaryHeading.style.color=e.secondaryHeadingColor.toString()),this._bodyElement&&e.frameColor&&(this._bodyElement.style.borderColor=e.frameColor.toString())}_fillContainer(e){this.setCssClass(\"peekview-widget\"),this._headElement=ke(\".head\"),this._bodyElement=ke(\".body\"),this._fillHead(this._headElement),this._fillBody(this._bodyElement),e.appendChild(this._headElement),e.appendChild(this._bodyElement)}_fillHead(e,t){this._titleElement=ke(\".peekview-title\"),this.options.supportOnTitleClick&&(this._titleElement.classList.add(\"clickable\"),rs(this._titleElement,\"click\",o=>this._onTitleClick(o))),we(this._headElement,this._titleElement),this._fillTitleIcon(this._titleElement),this._primaryHeading=ke(\"span.filename\"),this._secondaryHeading=ke(\"span.dirname\"),this._metaHeading=ke(\"span.meta\"),we(this._titleElement,this._primaryHeading,this._secondaryHeading,this._metaHeading);const i=ke(\".peekview-actions\");we(this._headElement,i);const s=this._getActionBarOptions();this._actionbarWidget=new hc(i,s),this._disposables.add(this._actionbarWidget),t||this._actionbarWidget.push(new Ta(\"peekview.close\",v(\"label.close\",\"Close\"),_t.asClassName(Te.close),!0,()=>(this.dispose(),Promise.resolve())),{label:!1,icon:!0})}_fillTitleIcon(e){}_getActionBarOptions(){return{actionViewItemProvider:Kde.bind(void 0,this.instantiationService),orientation:0}}_onTitleClick(e){}setTitle(e,t){this._primaryHeading&&this._secondaryHeading&&(this._primaryHeading.innerText=e,this._primaryHeading.setAttribute(\"title\",e),t?this._secondaryHeading.innerText=t:wo(this._secondaryHeading))}setMetaTitle(e){this._metaHeading&&(e?(this._metaHeading.innerText=e,ka(this._metaHeading)):Lr(this._metaHeading))}_doLayout(e,t){if(!this._isShowing&&e<0){this.dispose();return}const i=Math.ceil(this.editor.getOption(67)*1.2),s=Math.round(e-(i+2));this._doLayoutHead(i,t),this._doLayoutBody(s,t)}_doLayoutHead(e,t){this._headElement&&(this._headElement.style.height=`${e}px`,this._headElement.style.lineHeight=this._headElement.style.height)}_doLayoutBody(e,t){this._bodyElement&&(this._bodyElement.style.height=`${e}px`)}};hR=Rfe([Mfe(2,ht)],hR);const zYe=V(\"peekViewTitle.background\",{dark:\"#252526\",light:\"#F3F3F3\",hcDark:le.black,hcLight:le.white},v(\"peekViewTitleBackground\",\"Background color of the peek view title area.\")),Ofe=V(\"peekViewTitleLabel.foreground\",{dark:le.white,light:le.black,hcDark:le.white,hcLight:Ql},v(\"peekViewTitleForeground\",\"Color of the peek view title.\")),Ffe=V(\"peekViewTitleDescription.foreground\",{dark:\"#ccccccb3\",light:\"#616161\",hcDark:\"#FFFFFF99\",hcLight:\"#292929\"},v(\"peekViewTitleInfoForeground\",\"Color of the peek view title info.\")),$Ye=V(\"peekView.border\",{dark:sa,light:sa,hcDark:ti,hcLight:ti},v(\"peekViewBorder\",\"Color of the peek view borders and arrow.\")),UYe=V(\"peekViewResult.background\",{dark:\"#252526\",light:\"#F3F3F3\",hcDark:le.black,hcLight:le.white},v(\"peekViewResultsBackground\",\"Background color of the peek view result list.\"));V(\"peekViewResult.lineForeground\",{dark:\"#bbbbbb\",light:\"#646465\",hcDark:le.white,hcLight:Ql},v(\"peekViewResultsMatchForeground\",\"Foreground color for line nodes in the peek view result list.\"));V(\"peekViewResult.fileForeground\",{dark:le.white,light:\"#1E1E1E\",hcDark:le.white,hcLight:Ql},v(\"peekViewResultsFileForeground\",\"Foreground color for file nodes in the peek view result list.\"));V(\"peekViewResult.selectionBackground\",{dark:\"#3399ff33\",light:\"#3399ff33\",hcDark:null,hcLight:null},v(\"peekViewResultsSelectionBackground\",\"Background color of the selected entry in the peek view result list.\"));V(\"peekViewResult.selectionForeground\",{dark:le.white,light:\"#6C6C6C\",hcDark:le.white,hcLight:Ql},v(\"peekViewResultsSelectionForeground\",\"Foreground color of the selected entry in the peek view result list.\"));const tm=V(\"peekViewEditor.background\",{dark:\"#001F33\",light:\"#F2F8FC\",hcDark:le.black,hcLight:le.white},v(\"peekViewEditorBackground\",\"Background color of the peek view editor.\"));V(\"peekViewEditorGutter.background\",{dark:tm,light:tm,hcDark:tm,hcLight:tm},v(\"peekViewEditorGutterBackground\",\"Background color of the gutter in the peek view editor.\"));V(\"peekViewEditorStickyScroll.background\",{dark:tm,light:tm,hcDark:tm,hcLight:tm},v(\"peekViewEditorStickScrollBackground\",\"Background color of sticky scroll in the peek view editor.\"));V(\"peekViewResult.matchHighlightBackground\",{dark:\"#ea5c004d\",light:\"#ea5c004d\",hcDark:null,hcLight:null},v(\"peekViewResultsMatchHighlight\",\"Match highlight color in the peek view result list.\"));V(\"peekViewEditor.matchHighlightBackground\",{dark:\"#ff8f0099\",light:\"#f5d802de\",hcDark:null,hcLight:null},v(\"peekViewEditorMatchHighlight\",\"Match highlight color in the peek view editor.\"));V(\"peekViewEditor.matchHighlightBorder\",{dark:null,light:null,hcDark:En,hcLight:En},v(\"peekViewEditorMatchHighlightBorder\",\"Match highlight border in the peek view editor.\"));class Xm{constructor(e,t,i,s){this.isProviderFirst=e,this.parent=t,this.link=i,this._rangeCallback=s,this.id=h9.nextId()}get uri(){return this.link.uri}get range(){var e,t;return(t=(e=this._range)!==null&&e!==void 0?e:this.link.targetSelectionRange)!==null&&t!==void 0?t:this.link.range}set range(e){this._range=e,this._rangeCallback(this)}get ariaMessage(){var e;const t=(e=this.parent.getPreview(this))===null||e===void 0?void 0:e.preview(this.range);return t?v({},\"{0} in {1} on line {2} at column {3}\",t.value,dc(this.uri),this.range.startLineNumber,this.range.startColumn):v(\"aria.oneReference\",\"in {0} on line {1} at column {2}\",dc(this.uri),this.range.startLineNumber,this.range.startColumn)}}class jYe{constructor(e){this._modelReference=e}dispose(){this._modelReference.dispose()}preview(e,t=8){const i=this._modelReference.object.textEditorModel;if(!i)return;const{startLineNumber:s,startColumn:o,endLineNumber:r,endColumn:a}=e,l=i.getWordUntilPosition({lineNumber:s,column:o-t}),c=new A(s,l.startColumn,s,o),d=new A(r,a,r,1073741824),u=i.getValueInRange(c).replace(/^\\s+/,\"\"),h=i.getValueInRange(e),f=i.getValueInRange(d).replace(/\\s+$/,\"\");return{value:u+h+f,highlight:{start:u.length,end:u.length+h.length}}}}class mk{constructor(e,t){this.parent=e,this.uri=t,this.children=[],this._previews=new hs}dispose(){tn(this._previews.values()),this._previews.clear()}getPreview(e){return this._previews.get(e.uri)}get ariaMessage(){const e=this.children.length;return e===1?v(\"aria.fileReferences.1\",\"1 symbol in {0}, full path {1}\",dc(this.uri),this.uri.fsPath):v(\"aria.fileReferences.N\",\"{0} symbols in {1}, full path {2}\",e,dc(this.uri),this.uri.fsPath)}async resolve(e){if(this._previews.size!==0)return this;for(const t of this.children)if(!this._previews.has(t.uri))try{const i=await e.createModelReference(t.uri);this._previews.set(t.uri,new jYe(i))}catch(i){Mt(i)}return this}}class Aa{constructor(e,t){this.groups=[],this.references=[],this._onDidChangeReferenceRange=new X,this.onDidChangeReferenceRange=this._onDidChangeReferenceRange.event,this._links=e,this._title=t;const[i]=e;e.sort(Aa._compareReferences);let s;for(const o of e)if((!s||!Tn.isEqual(s.uri,o.uri,!0))&&(s=new mk(this,o.uri),this.groups.push(s)),s.children.length===0||Aa._compareReferences(o,s.children[s.children.length-1])!==0){const r=new Xm(i===o,s,o,a=>this._onDidChangeReferenceRange.fire(a));this.references.push(r),s.children.push(r)}}dispose(){tn(this.groups),this._onDidChangeReferenceRange.dispose(),this.groups.length=0}clone(){return new Aa(this._links,this._title)}get title(){return this._title}get isEmpty(){return this.groups.length===0}get ariaMessage(){return this.isEmpty?v(\"aria.result.0\",\"No results found\"):this.references.length===1?v(\"aria.result.1\",\"Found 1 symbol in {0}\",this.references[0].uri.fsPath):this.groups.length===1?v(\"aria.result.n1\",\"Found {0} symbols in {1}\",this.references.length,this.groups[0].uri.fsPath):v(\"aria.result.nm\",\"Found {0} symbols in {1} files\",this.references.length,this.groups.length)}nextOrPreviousReference(e,t){const{parent:i}=e;let s=i.children.indexOf(e);const o=i.children.length,r=i.parent.groups.length;return r===1||t&&s+1<o||!t&&s>0?(t?s=(s+1)%o:s=(s+o-1)%o,i.children[s]):(s=i.parent.groups.indexOf(i),t?(s=(s+1)%r,i.parent.groups[s].children[0]):(s=(s+r-1)%r,i.parent.groups[s].children[i.parent.groups[s].children.length-1]))}nearestReference(e,t){const i=this.references.map((s,o)=>({idx:o,prefixLen:Rm(s.uri.toString(),e.toString()),offsetDist:Math.abs(s.range.startLineNumber-t.lineNumber)*100+Math.abs(s.range.startColumn-t.column)})).sort((s,o)=>s.prefixLen>o.prefixLen?-1:s.prefixLen<o.prefixLen?1:s.offsetDist<o.offsetDist?-1:s.offsetDist>o.offsetDist?1:0)[0];if(i)return this.references[i.idx]}referenceAt(e,t){for(const i of this.references)if(i.uri.toString()===e.toString()&&A.containsPosition(i.range,t))return i}firstReference(){for(const e of this.references)if(e.isProviderFirst)return e;return this.references[0]}static _compareReferences(e,t){return Tn.compare(e.uri,t.uri)||A.compareRangesUsingStarts(e.range,t.range)}}var PP=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},OP=function(n,e){return function(t,i){e(t,i,n)}},J6;let eW=class{constructor(e){this._resolverService=e}hasChildren(e){return e instanceof Aa||e instanceof mk}getChildren(e){if(e instanceof Aa)return e.groups;if(e instanceof mk)return e.resolve(this._resolverService).then(t=>t.children);throw new Error(\"bad tree\")}};eW=PP([OP(0,fa)],eW);class KYe{getHeight(){return 23}getTemplateId(e){return e instanceof mk?_k.id:qD.id}}let tW=class{constructor(e){this._keybindingService=e}getKeyboardNavigationLabel(e){var t;if(e instanceof Xm){const i=(t=e.parent.getPreview(e))===null||t===void 0?void 0:t.preview(e.range);if(i)return i.value}return dc(e.uri)}};tW=PP([OP(0,Li)],tW);class qYe{getId(e){return e instanceof Xm?e.id:e.uri}}let iW=class extends ne{constructor(e,t){super(),this._labelService=t;const i=document.createElement(\"div\");i.classList.add(\"reference-file\"),this.file=this._register(new zA(i,{supportHighlights:!0})),this.badge=new j9(we(i,ke(\".count\")),{},Ude),e.appendChild(i)}set(e,t){const i=VM(e.uri);this.file.setLabel(this._labelService.getUriBasenameLabel(e.uri),this._labelService.getUriLabel(i,{relative:!0}),{title:this._labelService.getUriLabel(e.uri),matches:t});const s=e.children.length;this.badge.setCount(s),s>1?this.badge.setTitleFormat(v(\"referencesCount\",\"{0} references\",s)):this.badge.setTitleFormat(v(\"referenceCount\",\"{0} reference\",s))}};iW=PP([OP(1,ZC)],iW);let _k=J6=class{constructor(e){this._instantiationService=e,this.templateId=J6.id}renderTemplate(e){return this._instantiationService.createInstance(iW,e)}renderElement(e,t,i){i.set(e.element,ID(e.filterData))}disposeTemplate(e){e.dispose()}};_k.id=\"FileReferencesRenderer\";_k=J6=PP([OP(0,ht)],_k);class GYe extends ne{constructor(e){super(),this.label=this._register(new _m(e))}set(e,t){var i;const s=(i=e.parent.getPreview(e))===null||i===void 0?void 0:i.preview(e.range);if(!s||!s.value)this.label.set(`${dc(e.uri)}:${e.range.startLineNumber+1}:${e.range.startColumn+1}`);else{const{value:o,highlight:r}=s;t&&!Yd.isDefault(t)?(this.label.element.classList.toggle(\"referenceMatch\",!1),this.label.set(o,ID(t))):(this.label.element.classList.toggle(\"referenceMatch\",!0),this.label.set(o,[r]))}}}class qD{constructor(){this.templateId=qD.id}renderTemplate(e){return new GYe(e)}renderElement(e,t,i){i.set(e.element,e.filterData)}disposeTemplate(e){e.dispose()}}qD.id=\"OneReferenceRenderer\";class ZYe{getWidgetAriaLabel(){return v(\"treeAriaLabel\",\"References\")}getAriaLabel(e){return e.ariaMessage}}var YYe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},mf=function(n,e){return function(t,i){e(t,i,n)}};class FP{constructor(e,t){this._editor=e,this._model=t,this._decorations=new Map,this._decorationIgnoreSet=new Set,this._callOnDispose=new be,this._callOnModelChange=new be,this._callOnDispose.add(this._editor.onDidChangeModel(()=>this._onModelChanged())),this._onModelChanged()}dispose(){this._callOnModelChange.dispose(),this._callOnDispose.dispose(),this.removeDecorations()}_onModelChanged(){this._callOnModelChange.clear();const e=this._editor.getModel();if(e){for(const t of this._model.references)if(t.uri.toString()===e.uri.toString()){this._addDecorations(t.parent);return}}}_addDecorations(e){if(!this._editor.hasModel())return;this._callOnModelChange.add(this._editor.getModel().onDidChangeDecorations(()=>this._onDecorationChanged()));const t=[],i=[];for(let s=0,o=e.children.length;s<o;s++){const r=e.children[s];this._decorationIgnoreSet.has(r.id)||r.uri.toString()===this._editor.getModel().uri.toString()&&(t.push({range:r.range,options:FP.DecorationOptions}),i.push(s))}this._editor.changeDecorations(s=>{const o=s.deltaDecorations([],t);for(let r=0;r<o.length;r++)this._decorations.set(o[r],e.children[i[r]])})}_onDecorationChanged(){const e=[],t=this._editor.getModel();if(t){for(const[i,s]of this._decorations){const o=t.getDecorationRange(i);if(!o)continue;let r=!1;if(!A.equalsRange(o,s.range)){if(A.spansMultipleLines(o))r=!0;else{const a=s.range.endColumn-s.range.startColumn,l=o.endColumn-o.startColumn;a!==l&&(r=!0)}r?(this._decorationIgnoreSet.add(s.id),e.push(i)):s.range=o}}for(let i=0,s=e.length;i<s;i++)this._decorations.delete(e[i]);this._editor.removeDecorations(e)}}removeDecorations(){this._editor.removeDecorations([...this._decorations.keys()]),this._decorations.clear()}}FP.DecorationOptions=Wt.register({description:\"reference-decoration\",stickiness:1,className:\"reference-decoration\"});class XYe{constructor(){this.ratio=.7,this.heightInLines=18}static fromJSON(e){let t,i;try{const s=JSON.parse(e);t=s.ratio,i=s.heightInLines}catch{}return{ratio:t||.7,heightInLines:i||18}}}class QYe extends Y9{}let nW=class extends hR{constructor(e,t,i,s,o,r,a,l,c,d,u,h){super(e,{showFrame:!1,showArrow:!0,isResizeable:!0,isAccessible:!0,supportOnTitleClick:!0},r),this._defaultTreeKeyboardSupport=t,this.layoutData=i,this._textModelResolverService=o,this._instantiationService=r,this._peekViewService=a,this._uriLabel=l,this._undoRedoService=c,this._keybindingService=d,this._languageService=u,this._languageConfigurationService=h,this._disposeOnNewModel=new be,this._callOnDispose=new be,this._onDidSelectReference=new X,this.onDidSelectReference=this._onDidSelectReference.event,this._dim=new yi(0,0),this._applyTheme(s.getColorTheme()),this._callOnDispose.add(s.onDidColorThemeChange(this._applyTheme.bind(this))),this._peekViewService.addExclusiveWidget(e,this),this.create()}dispose(){this.setModel(void 0),this._callOnDispose.dispose(),this._disposeOnNewModel.dispose(),tn(this._preview),tn(this._previewNotAvailableMessage),tn(this._tree),tn(this._previewModelReference),this._splitView.dispose(),super.dispose()}_applyTheme(e){const t=e.getColor($Ye)||le.transparent;this.style({arrowColor:t,frameColor:t,headerBackgroundColor:e.getColor(zYe)||le.transparent,primaryHeadingColor:e.getColor(Ofe),secondaryHeadingColor:e.getColor(Ffe)})}show(e){super.show(e,this.layoutData.heightInLines||18)}focusOnReferenceTree(){this._tree.domFocus()}focusOnPreviewEditor(){this._preview.focus()}isPreviewEditorFocused(){return this._preview.hasTextFocus()}_onTitleClick(e){this._preview&&this._preview.getModel()&&this._onDidSelectReference.fire({element:this._getFocusedReference(),kind:e.ctrlKey||e.metaKey||e.altKey?\"side\":\"open\",source:\"title\"})}_fillBody(e){this.setCssClass(\"reference-zone-widget\"),this._messageContainer=we(e,ke(\"div.messages\")),Lr(this._messageContainer),this._splitView=new sue(e,{orientation:1}),this._previewContainer=we(e,ke(\"div.preview.inline\"));const t={scrollBeyondLastLine:!1,scrollbar:{verticalScrollbarSize:14,horizontal:\"auto\",useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,alwaysConsumeMouseWheel:!0},overviewRulerLanes:2,fixedOverflowWidgets:!0,minimap:{enabled:!1}};this._preview=this._instantiationService.createInstance(Ym,this._previewContainer,t,{},this.editor),Lr(this._previewContainer),this._previewNotAvailableMessage=new Th(v(\"missingPreviewMessage\",\"no preview available\"),bl,Th.DEFAULT_CREATION_OPTIONS,null,this._undoRedoService,this._languageService,this._languageConfigurationService),this._treeContainer=we(e,ke(\"div.ref-tree.inline\"));const i={keyboardSupport:this._defaultTreeKeyboardSupport,accessibilityProvider:new ZYe,keyboardNavigationLabelProvider:this._instantiationService.createInstance(tW),identityProvider:new qYe,openOnSingleClick:!0,selectionNavigation:!0,overrideStyles:{listBackground:UYe}};this._defaultTreeKeyboardSupport&&this._callOnDispose.add(rs(this._treeContainer,\"keydown\",o=>{o.equals(9)&&(this._keybindingService.dispatchEvent(o,o.target),o.stopPropagation())},!0)),this._tree=this._instantiationService.createInstance(QYe,\"ReferencesWidget\",this._treeContainer,new KYe,[this._instantiationService.createInstance(_k),this._instantiationService.createInstance(qD)],this._instantiationService.createInstance(eW),i),this._splitView.addView({onDidChange:Ae.None,element:this._previewContainer,minimumSize:200,maximumSize:Number.MAX_VALUE,layout:o=>{this._preview.layout({height:this._dim.height,width:o})}},OA.Distribute),this._splitView.addView({onDidChange:Ae.None,element:this._treeContainer,minimumSize:100,maximumSize:Number.MAX_VALUE,layout:o=>{this._treeContainer.style.height=`${this._dim.height}px`,this._treeContainer.style.width=`${o}px`,this._tree.layout(this._dim.height,o)}},OA.Distribute),this._disposables.add(this._splitView.onDidSashChange(()=>{this._dim.width&&(this.layoutData.ratio=this._splitView.getViewSize(0)/this._dim.width)},void 0));const s=(o,r)=>{o instanceof Xm&&(r===\"show\"&&this._revealReference(o,!1),this._onDidSelectReference.fire({element:o,kind:r,source:\"tree\"}))};this._tree.onDidOpen(o=>{o.sideBySide?s(o.element,\"side\"):o.editorOptions.pinned?s(o.element,\"goto\"):s(o.element,\"show\")}),Lr(this._treeContainer)}_onWidth(e){this._dim&&this._doLayoutBody(this._dim.height,e)}_doLayoutBody(e,t){super._doLayoutBody(e,t),this._dim=new yi(t,e),this.layoutData.heightInLines=this._viewZone?this._viewZone.heightInLines:this.layoutData.heightInLines,this._splitView.layout(t),this._splitView.resizeView(0,t*this.layoutData.ratio)}setSelection(e){return this._revealReference(e,!0).then(()=>{this._model&&(this._tree.setSelection([e]),this._tree.setFocus([e]))})}setModel(e){return this._disposeOnNewModel.clear(),this._model=e,this._model?this._onNewModel():Promise.resolve()}_onNewModel(){return this._model?this._model.isEmpty?(this.setTitle(\"\"),this._messageContainer.innerText=v(\"noResults\",\"No results\"),ka(this._messageContainer),Promise.resolve(void 0)):(Lr(this._messageContainer),this._decorationsManager=new FP(this._preview,this._model),this._disposeOnNewModel.add(this._decorationsManager),this._disposeOnNewModel.add(this._model.onDidChangeReferenceRange(e=>this._tree.rerender(e))),this._disposeOnNewModel.add(this._preview.onMouseDown(e=>{const{event:t,target:i}=e;if(t.detail!==2)return;const s=this._getFocusedReference();s&&this._onDidSelectReference.fire({element:{uri:s.uri,range:i.range},kind:t.ctrlKey||t.metaKey||t.altKey?\"side\":\"open\",source:\"editor\"})})),this.container.classList.add(\"results-loaded\"),ka(this._treeContainer),ka(this._previewContainer),this._splitView.layout(this._dim.width),this.focusOnReferenceTree(),this._tree.setInput(this._model.groups.length===1?this._model.groups[0]:this._model)):Promise.resolve(void 0)}_getFocusedReference(){const[e]=this._tree.getFocus();if(e instanceof Xm)return e;if(e instanceof mk&&e.children.length>0)return e.children[0]}async revealReference(e){await this._revealReference(e,!1),this._onDidSelectReference.fire({element:e,kind:\"goto\",source:\"tree\"})}async _revealReference(e,t){if(this._revealedReference===e)return;this._revealedReference=e,e.uri.scheme!==Tt.inMemory?this.setTitle(aBe(e.uri),this._uriLabel.getUriLabel(VM(e.uri))):this.setTitle(v(\"peekView.alternateTitle\",\"References\"));const i=this._textModelResolverService.createModelReference(e.uri);this._tree.getInput()===e.parent?this._tree.reveal(e):(t&&this._tree.reveal(e.parent),await this._tree.expand(e.parent),this._tree.reveal(e));const s=await i;if(!this._model){s.dispose();return}tn(this._previewModelReference);const o=s.object;if(o){const r=this._preview.getModel()===o.textEditorModel?0:1,a=A.lift(e.range).collapseToStart();this._previewModelReference=s,this._preview.setModel(o.textEditorModel),this._preview.setSelection(a),this._preview.revealRangeInCenter(a,r)}else this._preview.setModel(this._previewNotAvailableMessage),s.dispose()}};nW=YYe([mf(3,js),mf(4,fa),mf(5,ht),mf(6,Pfe),mf(7,ZC),mf(8,zM),mf(9,Li),mf(10,An),mf(11,gn)],nW);var JYe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},$b=function(n,e){return function(t,i){e(t,i,n)}},BN;const ab=new He(\"referenceSearchVisible\",!1,v(\"referenceSearchVisible\",\"Whether reference peek is visible, like 'Peek References' or 'Peek Definition'\"));let Qm=BN=class{static get(e){return e.getContribution(BN.ID)}constructor(e,t,i,s,o,r,a,l){this._defaultTreeKeyboardSupport=e,this._editor=t,this._editorService=s,this._notificationService=o,this._instantiationService=r,this._storageService=a,this._configurationService=l,this._disposables=new be,this._requestIdPool=0,this._ignoreModelChangeEvent=!1,this._referenceSearchVisible=ab.bindTo(i)}dispose(){var e,t;this._referenceSearchVisible.reset(),this._disposables.dispose(),(e=this._widget)===null||e===void 0||e.dispose(),(t=this._model)===null||t===void 0||t.dispose(),this._widget=void 0,this._model=void 0}toggleWidget(e,t,i){let s;if(this._widget&&(s=this._widget.position),this.closeWidget(),s&&e.containsPosition(s))return;this._peekMode=i,this._referenceSearchVisible.set(!0),this._disposables.add(this._editor.onDidChangeModelLanguage(()=>{this.closeWidget()})),this._disposables.add(this._editor.onDidChangeModel(()=>{this._ignoreModelChangeEvent||this.closeWidget()}));const o=\"peekViewLayout\",r=XYe.fromJSON(this._storageService.get(o,0,\"{}\"));this._widget=this._instantiationService.createInstance(nW,this._editor,this._defaultTreeKeyboardSupport,r),this._widget.setTitle(v(\"labelLoading\",\"Loading...\")),this._widget.show(e),this._disposables.add(this._widget.onDidClose(()=>{t.cancel(),this._widget&&(this._storageService.store(o,JSON.stringify(this._widget.layoutData),0,1),this._widget=void 0),this.closeWidget()})),this._disposables.add(this._widget.onDidSelectReference(l=>{const{element:c,kind:d}=l;if(c)switch(d){case\"open\":(l.source!==\"editor\"||!this._configurationService.getValue(\"editor.stablePeek\"))&&this.openReference(c,!1,!1);break;case\"side\":this.openReference(c,!0,!1);break;case\"goto\":i?this._gotoReference(c,!0):this.openReference(c,!1,!0);break}}));const a=++this._requestIdPool;t.then(l=>{var c;if(a!==this._requestIdPool||!this._widget){l.dispose();return}return(c=this._model)===null||c===void 0||c.dispose(),this._model=l,this._widget.setModel(this._model).then(()=>{if(this._widget&&this._model&&this._editor.hasModel()){this._model.isEmpty?this._widget.setMetaTitle(\"\"):this._widget.setMetaTitle(v(\"metaTitle.N\",\"{0} ({1})\",this._model.title,this._model.references.length));const d=this._editor.getModel().uri,u=new ee(e.startLineNumber,e.startColumn),h=this._model.nearestReference(d,u);if(h)return this._widget.setSelection(h).then(()=>{this._widget&&this._editor.getOption(87)===\"editor\"&&this._widget.focusOnPreviewEditor()})}})},l=>{this._notificationService.error(l)})}changeFocusBetweenPreviewAndReferences(){this._widget&&(this._widget.isPreviewEditorFocused()?this._widget.focusOnReferenceTree():this._widget.focusOnPreviewEditor())}async goToNextOrPreviousReference(e){if(!this._editor.hasModel()||!this._model||!this._widget)return;const t=this._widget.position;if(!t)return;const i=this._model.nearestReference(this._editor.getModel().uri,t);if(!i)return;const s=this._model.nextOrPreviousReference(i,e),o=this._editor.hasTextFocus(),r=this._widget.isPreviewEditorFocused();await this._widget.setSelection(s),await this._gotoReference(s,!1),o?this._editor.focus():this._widget&&r&&this._widget.focusOnPreviewEditor()}async revealReference(e){!this._editor.hasModel()||!this._model||!this._widget||await this._widget.revealReference(e)}closeWidget(e=!0){var t,i;(t=this._widget)===null||t===void 0||t.dispose(),(i=this._model)===null||i===void 0||i.dispose(),this._referenceSearchVisible.reset(),this._disposables.clear(),this._widget=void 0,this._model=void 0,e&&this._editor.focus(),this._requestIdPool+=1}_gotoReference(e,t){var i;(i=this._widget)===null||i===void 0||i.hide(),this._ignoreModelChangeEvent=!0;const s=A.lift(e.range).collapseToStart();return this._editorService.openCodeEditor({resource:e.uri,options:{selection:s,selectionSource:\"code.jump\",pinned:t}},this._editor).then(o=>{var r;if(this._ignoreModelChangeEvent=!1,!o||!this._widget){this.closeWidget();return}if(this._editor===o)this._widget.show(s),this._widget.focusOnReferenceTree();else{const a=BN.get(o),l=this._model.clone();this.closeWidget(),o.focus(),a==null||a.toggleWidget(s,Xs(c=>Promise.resolve(l)),(r=this._peekMode)!==null&&r!==void 0?r:!1)}},o=>{this._ignoreModelChangeEvent=!1,Mt(o)})}openReference(e,t,i){t||this.closeWidget();const{uri:s,range:o}=e;this._editorService.openCodeEditor({resource:s,options:{selection:o,selectionSource:\"code.jump\",pinned:i}},this._editor,t)}};Qm.ID=\"editor.contrib.referencesController\";Qm=BN=JYe([$b(2,Ct),$b(3,vi),$b(4,ps),$b(5,ht),$b(6,dd),$b(7,qt)],Qm);function lb(n,e){const t=HYe(n);if(!t)return;const i=Qm.get(t);i&&e(i)}Hr.registerCommandAndKeybindingRule({id:\"togglePeekWidgetFocus\",weight:100,primary:Os(2089,60),when:pe.or(ab,da.inPeekEditor),handler(n){lb(n,e=>{e.changeFocusBetweenPreviewAndReferences()})}});Hr.registerCommandAndKeybindingRule({id:\"goToNextReference\",weight:90,primary:62,secondary:[70],when:pe.or(ab,da.inPeekEditor),handler(n){lb(n,e=>{e.goToNextOrPreviousReference(!0)})}});Hr.registerCommandAndKeybindingRule({id:\"goToPreviousReference\",weight:90,primary:1086,secondary:[1094],when:pe.or(ab,da.inPeekEditor),handler(n){lb(n,e=>{e.goToNextOrPreviousReference(!1)})}});ri.registerCommandAlias(\"goToNextReferenceFromEmbeddedEditor\",\"goToNextReference\");ri.registerCommandAlias(\"goToPreviousReferenceFromEmbeddedEditor\",\"goToPreviousReference\");ri.registerCommandAlias(\"closeReferenceSearchEditor\",\"closeReferenceSearch\");ri.registerCommand(\"closeReferenceSearch\",n=>lb(n,e=>e.closeWidget()));Hr.registerKeybindingRule({id:\"closeReferenceSearch\",weight:-1,primary:9,secondary:[1033],when:pe.and(da.inPeekEditor,pe.not(\"config.editor.stablePeek\"))});Hr.registerKeybindingRule({id:\"closeReferenceSearch\",weight:250,primary:9,secondary:[1033],when:pe.and(ab,pe.not(\"config.editor.stablePeek\"),pe.or(W.editorTextFocus,gue.negate()))});Hr.registerCommandAndKeybindingRule({id:\"revealReference\",weight:200,primary:3,mac:{primary:3,secondary:[2066]},when:pe.and(ab,_ue,B$.negate(),W$.negate()),handler(n){var e;const i=(e=n.get(wc).lastFocusedList)===null||e===void 0?void 0:e.getFocus();Array.isArray(i)&&i[0]instanceof Xm&&lb(n,s=>s.revealReference(i[0]))}});Hr.registerCommandAndKeybindingRule({id:\"openReferenceToSide\",weight:100,primary:2051,mac:{primary:259},when:pe.and(ab,_ue,B$.negate(),W$.negate()),handler(n){var e;const i=(e=n.get(wc).lastFocusedList)===null||e===void 0?void 0:e.getFocus();Array.isArray(i)&&i[0]instanceof Xm&&lb(n,s=>s.openReference(i[0],!0,!0))}});ri.registerCommand(\"openReference\",n=>{var e;const i=(e=n.get(wc).lastFocusedList)===null||e===void 0?void 0:e.getFocus();Array.isArray(i)&&i[0]instanceof Xm&&lb(n,s=>s.openReference(i[0],!1,!0))});var Bfe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},OS=function(n,e){return function(t,i){e(t,i,n)}};const LU=new He(\"hasSymbols\",!1,v(\"hasSymbols\",\"Whether there are symbol locations that can be navigated via keyboard-only.\")),BP=Jt(\"ISymbolNavigationService\");let sW=class{constructor(e,t,i,s){this._editorService=t,this._notificationService=i,this._keybindingService=s,this._currentModel=void 0,this._currentIdx=-1,this._ignoreEditorChange=!1,this._ctxHasSymbols=LU.bindTo(e)}reset(){var e,t;this._ctxHasSymbols.reset(),(e=this._currentState)===null||e===void 0||e.dispose(),(t=this._currentMessage)===null||t===void 0||t.dispose(),this._currentModel=void 0,this._currentIdx=-1}put(e){const t=e.parent.parent;if(t.references.length<=1){this.reset();return}this._currentModel=t,this._currentIdx=t.references.indexOf(e),this._ctxHasSymbols.set(!0),this._showMessage();const i=new oW(this._editorService),s=i.onDidChange(o=>{if(this._ignoreEditorChange)return;const r=this._editorService.getActiveCodeEditor();if(!r)return;const a=r.getModel(),l=r.getPosition();if(!a||!l)return;let c=!1,d=!1;for(const u of t.references)if(Kz(u.uri,a.uri))c=!0,d=d||A.containsPosition(u.range,l);else if(c)break;(!c||!d)&&this.reset()});this._currentState=Jc(i,s)}revealNext(e){if(!this._currentModel)return Promise.resolve();this._currentIdx+=1,this._currentIdx%=this._currentModel.references.length;const t=this._currentModel.references[this._currentIdx];return this._showMessage(),this._ignoreEditorChange=!0,this._editorService.openCodeEditor({resource:t.uri,options:{selection:A.collapseToStart(t.range),selectionRevealType:3}},e).finally(()=>{this._ignoreEditorChange=!1})}_showMessage(){var e;(e=this._currentMessage)===null||e===void 0||e.dispose();const t=this._keybindingService.lookupKeybinding(\"editor.gotoNextSymbolFromResult\"),i=t?v(\"location.kb\",\"Symbol {0} of {1}, {2} for next\",this._currentIdx+1,this._currentModel.references.length,t.getLabel()):v(\"location\",\"Symbol {0} of {1}\",this._currentIdx+1,this._currentModel.references.length);this._currentMessage=this._notificationService.status(i)}};sW=Bfe([OS(0,Ct),OS(1,vi),OS(2,ps),OS(3,Li)],sW);ai(BP,sW,1);Fe(new class extends Us{constructor(){super({id:\"editor.gotoNextSymbolFromResult\",precondition:LU,kbOpts:{weight:100,primary:70}})}runEditorCommand(n,e){return n.get(BP).revealNext(e)}});Hr.registerCommandAndKeybindingRule({id:\"editor.gotoNextSymbolFromResult.cancel\",weight:100,when:LU,primary:9,handler(n){n.get(BP).reset()}});let oW=class{constructor(e){this._listener=new Map,this._disposables=new be,this._onDidChange=new X,this.onDidChange=this._onDidChange.event,this._disposables.add(e.onCodeEditorRemove(this._onDidRemoveEditor,this)),this._disposables.add(e.onCodeEditorAdd(this._onDidAddEditor,this)),e.listCodeEditors().forEach(this._onDidAddEditor,this)}dispose(){this._disposables.dispose(),this._onDidChange.dispose(),tn(this._listener.values())}_onDidAddEditor(e){this._listener.set(e,Jc(e.onDidChangeCursorPosition(t=>this._onDidChange.fire({editor:e})),e.onDidChangeModelContent(t=>this._onDidChange.fire({editor:e}))))}_onDidRemoveEditor(e){var t;(t=this._listener.get(e))===null||t===void 0||t.dispose(),this._listener.delete(e)}};oW=Bfe([OS(0,vi)],oW);function rW(n,e){return e.uri.scheme===n.uri.scheme?!0:!oB(e.uri,Tt.walkThroughSnippet,Tt.vscodeChatCodeBlock,Tt.vscodeChatCodeCompareBlock,Tt.vscodeCopilotBackingChatCodeBlock)}async function GD(n,e,t,i){const o=t.ordered(n).map(a=>Promise.resolve(i(a,n,e)).then(void 0,l=>{as(l)})),r=await Promise.all(o);return tu(r.flat()).filter(a=>rW(n,a))}function WP(n,e,t,i){return GD(e,t,n,(s,o,r)=>s.provideDefinition(o,r,i))}function Wfe(n,e,t,i){return GD(e,t,n,(s,o,r)=>s.provideDeclaration(o,r,i))}function Hfe(n,e,t,i){return GD(e,t,n,(s,o,r)=>s.provideImplementation(o,r,i))}function Vfe(n,e,t,i){return GD(e,t,n,(s,o,r)=>s.provideTypeDefinition(o,r,i))}function HP(n,e,t,i,s){return GD(e,t,n,async(o,r,a)=>{var l,c;const d=(l=await o.provideReferences(r,a,{includeDeclaration:!0},s))===null||l===void 0?void 0:l.filter(h=>rW(r,h));if(!i||!d||d.length!==2)return d;const u=(c=await o.provideReferences(r,a,{includeDeclaration:!1},s))===null||c===void 0?void 0:c.filter(h=>rW(r,h));return u&&u.length===1?u:d})}async function ZD(n){const e=await n(),t=new Aa(e,\"\"),i=t.references.map(s=>s.link);return t.dispose(),i}Vh(\"_executeDefinitionProvider\",(n,e,t)=>{const i=n.get(Xe),s=WP(i.definitionProvider,e,t,Qt.None);return ZD(()=>s)});Vh(\"_executeTypeDefinitionProvider\",(n,e,t)=>{const i=n.get(Xe),s=Vfe(i.typeDefinitionProvider,e,t,Qt.None);return ZD(()=>s)});Vh(\"_executeDeclarationProvider\",(n,e,t)=>{const i=n.get(Xe),s=Wfe(i.declarationProvider,e,t,Qt.None);return ZD(()=>s)});Vh(\"_executeReferenceProvider\",(n,e,t)=>{const i=n.get(Xe),s=HP(i.referenceProvider,e,t,!1,Qt.None);return ZD(()=>s)});Vh(\"_executeImplementationProvider\",(n,e,t)=>{const i=n.get(Xe),s=Hfe(i.implementationProvider,e,t,Qt.None);return ZD(()=>s)});var Xy,Qy,Jy,vT,bT,CT,wT,yT;ao.appendMenuItem(R.EditorContext,{submenu:R.EditorContextPeek,title:v(\"peek.submenu\",\"Peek\"),group:\"navigation\",order:100});class cw{static is(e){return!e||typeof e!=\"object\"?!1:!!(e instanceof cw||ee.isIPosition(e.position)&&e.model)}constructor(e,t){this.model=e,this.position=t}}class ur extends mu{static all(){return ur._allSymbolNavigationCommands.values()}static _patchConfig(e){const t={...e,f1:!0};if(t.menu)for(const i of oi.wrap(t.menu))(i.id===R.EditorContext||i.id===R.EditorContextPeek)&&(i.when=pe.and(e.precondition,i.when));return t}constructor(e,t){super(ur._patchConfig(t)),this.configuration=e,ur._allSymbolNavigationCommands.set(t.id,this)}runEditorCommand(e,t,i,s){if(!t.hasModel())return Promise.resolve(void 0);const o=e.get(ps),r=e.get(vi),a=e.get(m_),l=e.get(BP),c=e.get(Xe),d=e.get(ht),u=t.getModel(),h=t.getPosition(),f=cw.is(i)?i:new cw(u,h),g=new Km(t,5),p=uD(this._getLocationModel(c,f.model,f.position,g.token),g.token).then(async _=>{var b;if(!_||g.token.isCancellationRequested)return;la(_.ariaMessage);let w;if(_.referenceAt(u.uri,h)){const S=this._getAlternativeCommand(t);!ur._activeAlternativeCommands.has(S)&&ur._allSymbolNavigationCommands.has(S)&&(w=ur._allSymbolNavigationCommands.get(S))}const y=_.references.length;if(y===0){if(!this.configuration.muteMessage){const S=u.getWordAtPosition(h);(b=Or.get(t))===null||b===void 0||b.showMessage(this._getNoResultFoundMessage(S),h)}}else if(y===1&&w)ur._activeAlternativeCommands.add(this.desc.id),d.invokeFunction(S=>w.runEditorCommand(S,t,i,s).finally(()=>{ur._activeAlternativeCommands.delete(this.desc.id)}));else return this._onResult(r,l,t,_,s)},_=>{o.error(_)}).finally(()=>{g.dispose()});return a.showWhile(p,250),p}async _onResult(e,t,i,s,o){const r=this._getGoToPreference(i);if(!(i instanceof Ym)&&(this.configuration.openInPeek||r===\"peek\"&&s.references.length>1))this._openInPeek(i,s,o);else{const a=s.firstReference(),l=s.references.length>1&&r===\"gotoAndPeek\",c=await this._openReference(i,e,a,this.configuration.openToSide,!l);l&&c?this._openInPeek(c,s,o):s.dispose(),r===\"goto\"&&t.put(a)}}async _openReference(e,t,i,s,o){let r;if(sRe(i)&&(r=i.targetSelectionRange),r||(r=i.range),!r)return;const a=await t.openCodeEditor({resource:i.uri,options:{selection:A.collapseToStart(r),selectionRevealType:3,selectionSource:\"code.jump\"}},e,s);if(a){if(o){const l=a.getModel(),c=a.createDecorationsCollection([{range:r,options:{description:\"symbol-navigate-action-highlight\",className:\"symbolHighlight\"}}]);setTimeout(()=>{a.getModel()===l&&c.clear()},350)}return a}}_openInPeek(e,t,i){const s=Qm.get(e);s&&e.hasModel()?s.toggleWidget(i??e.getSelection(),Xs(o=>Promise.resolve(t)),this.configuration.openInPeek):t.dispose()}}ur._allSymbolNavigationCommands=new Map;ur._activeAlternativeCommands=new Set;class YD extends ur{async _getLocationModel(e,t,i,s){return new Aa(await WP(e.definitionProvider,t,i,s),v(\"def.title\",\"Definitions\"))}_getNoResultFoundMessage(e){return e&&e.word?v(\"noResultWord\",\"No definition found for '{0}'\",e.word):v(\"generic.noResults\",\"No definition found\")}_getAlternativeCommand(e){return e.getOption(58).alternativeDefinitionCommand}_getGoToPreference(e){return e.getOption(58).multipleDefinitions}}dn((Xy=class extends YD{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:Xy.id,title:{...Nt(\"actions.goToDecl.label\",\"Go to Definition\"),mnemonicTitle:v({},\"Go to &&Definition\")},precondition:W.hasDefinitionProvider,keybinding:[{when:W.editorTextFocus,primary:70,weight:100},{when:pe.and(W.editorTextFocus,hue),primary:2118,weight:100}],menu:[{id:R.EditorContext,group:\"navigation\",order:1.1},{id:R.MenubarGoMenu,precondition:null,group:\"4_symbol_nav\",order:2}]}),ri.registerCommandAlias(\"editor.action.goToDeclaration\",Xy.id)}},Xy.id=\"editor.action.revealDefinition\",Xy));dn((Qy=class extends YD{constructor(){super({openToSide:!0,openInPeek:!1,muteMessage:!1},{id:Qy.id,title:Nt(\"actions.goToDeclToSide.label\",\"Open Definition to the Side\"),precondition:pe.and(W.hasDefinitionProvider,W.isInEmbeddedEditor.toNegated()),keybinding:[{when:W.editorTextFocus,primary:Os(2089,70),weight:100},{when:pe.and(W.editorTextFocus,hue),primary:Os(2089,2118),weight:100}]}),ri.registerCommandAlias(\"editor.action.openDeclarationToTheSide\",Qy.id)}},Qy.id=\"editor.action.revealDefinitionAside\",Qy));dn((Jy=class extends YD{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:Jy.id,title:Nt(\"actions.previewDecl.label\",\"Peek Definition\"),precondition:pe.and(W.hasDefinitionProvider,da.notInPeekEditor,W.isInEmbeddedEditor.toNegated()),keybinding:{when:W.editorTextFocus,primary:582,linux:{primary:3140},weight:100},menu:{id:R.EditorContextPeek,group:\"peek\",order:2}}),ri.registerCommandAlias(\"editor.action.previewDeclaration\",Jy.id)}},Jy.id=\"editor.action.peekDefinition\",Jy));class zfe extends ur{async _getLocationModel(e,t,i,s){return new Aa(await Wfe(e.declarationProvider,t,i,s),v(\"decl.title\",\"Declarations\"))}_getNoResultFoundMessage(e){return e&&e.word?v(\"decl.noResultWord\",\"No declaration found for '{0}'\",e.word):v(\"decl.generic.noResults\",\"No declaration found\")}_getAlternativeCommand(e){return e.getOption(58).alternativeDeclarationCommand}_getGoToPreference(e){return e.getOption(58).multipleDeclarations}}dn((vT=class extends zfe{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:vT.id,title:{...Nt(\"actions.goToDeclaration.label\",\"Go to Declaration\"),mnemonicTitle:v({},\"Go to &&Declaration\")},precondition:pe.and(W.hasDeclarationProvider,W.isInEmbeddedEditor.toNegated()),menu:[{id:R.EditorContext,group:\"navigation\",order:1.3},{id:R.MenubarGoMenu,precondition:null,group:\"4_symbol_nav\",order:3}]})}_getNoResultFoundMessage(e){return e&&e.word?v(\"decl.noResultWord\",\"No declaration found for '{0}'\",e.word):v(\"decl.generic.noResults\",\"No declaration found\")}},vT.id=\"editor.action.revealDeclaration\",vT));dn(class extends zfe{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:\"editor.action.peekDeclaration\",title:Nt(\"actions.peekDecl.label\",\"Peek Declaration\"),precondition:pe.and(W.hasDeclarationProvider,da.notInPeekEditor,W.isInEmbeddedEditor.toNegated()),menu:{id:R.EditorContextPeek,group:\"peek\",order:3}})}});class $fe extends ur{async _getLocationModel(e,t,i,s){return new Aa(await Vfe(e.typeDefinitionProvider,t,i,s),v(\"typedef.title\",\"Type Definitions\"))}_getNoResultFoundMessage(e){return e&&e.word?v(\"goToTypeDefinition.noResultWord\",\"No type definition found for '{0}'\",e.word):v(\"goToTypeDefinition.generic.noResults\",\"No type definition found\")}_getAlternativeCommand(e){return e.getOption(58).alternativeTypeDefinitionCommand}_getGoToPreference(e){return e.getOption(58).multipleTypeDefinitions}}dn((bT=class extends $fe{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:bT.ID,title:{...Nt(\"actions.goToTypeDefinition.label\",\"Go to Type Definition\"),mnemonicTitle:v({},\"Go to &&Type Definition\")},precondition:W.hasTypeDefinitionProvider,keybinding:{when:W.editorTextFocus,primary:0,weight:100},menu:[{id:R.EditorContext,group:\"navigation\",order:1.4},{id:R.MenubarGoMenu,precondition:null,group:\"4_symbol_nav\",order:3}]})}},bT.ID=\"editor.action.goToTypeDefinition\",bT));dn((CT=class extends $fe{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:CT.ID,title:Nt(\"actions.peekTypeDefinition.label\",\"Peek Type Definition\"),precondition:pe.and(W.hasTypeDefinitionProvider,da.notInPeekEditor,W.isInEmbeddedEditor.toNegated()),menu:{id:R.EditorContextPeek,group:\"peek\",order:4}})}},CT.ID=\"editor.action.peekTypeDefinition\",CT));class Ufe extends ur{async _getLocationModel(e,t,i,s){return new Aa(await Hfe(e.implementationProvider,t,i,s),v(\"impl.title\",\"Implementations\"))}_getNoResultFoundMessage(e){return e&&e.word?v(\"goToImplementation.noResultWord\",\"No implementation found for '{0}'\",e.word):v(\"goToImplementation.generic.noResults\",\"No implementation found\")}_getAlternativeCommand(e){return e.getOption(58).alternativeImplementationCommand}_getGoToPreference(e){return e.getOption(58).multipleImplementations}}dn((wT=class extends Ufe{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:wT.ID,title:{...Nt(\"actions.goToImplementation.label\",\"Go to Implementations\"),mnemonicTitle:v({},\"Go to &&Implementations\")},precondition:W.hasImplementationProvider,keybinding:{when:W.editorTextFocus,primary:2118,weight:100},menu:[{id:R.EditorContext,group:\"navigation\",order:1.45},{id:R.MenubarGoMenu,precondition:null,group:\"4_symbol_nav\",order:4}]})}},wT.ID=\"editor.action.goToImplementation\",wT));dn((yT=class extends Ufe{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:yT.ID,title:Nt(\"actions.peekImplementation.label\",\"Peek Implementations\"),precondition:pe.and(W.hasImplementationProvider,da.notInPeekEditor,W.isInEmbeddedEditor.toNegated()),keybinding:{when:W.editorTextFocus,primary:3142,weight:100},menu:{id:R.EditorContextPeek,group:\"peek\",order:5}})}},yT.ID=\"editor.action.peekImplementation\",yT));class jfe extends ur{_getNoResultFoundMessage(e){return e?v(\"references.no\",\"No references found for '{0}'\",e.word):v(\"references.noGeneric\",\"No references found\")}_getAlternativeCommand(e){return e.getOption(58).alternativeReferenceCommand}_getGoToPreference(e){return e.getOption(58).multipleReferences}}dn(class extends jfe{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:\"editor.action.goToReferences\",title:{...Nt(\"goToReferences.label\",\"Go to References\"),mnemonicTitle:v({},\"Go to &&References\")},precondition:pe.and(W.hasReferenceProvider,da.notInPeekEditor,W.isInEmbeddedEditor.toNegated()),keybinding:{when:W.editorTextFocus,primary:1094,weight:100},menu:[{id:R.EditorContext,group:\"navigation\",order:1.45},{id:R.MenubarGoMenu,precondition:null,group:\"4_symbol_nav\",order:5}]})}async _getLocationModel(e,t,i,s){return new Aa(await HP(e.referenceProvider,t,i,!0,s),v(\"ref.title\",\"References\"))}});dn(class extends jfe{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:\"editor.action.referenceSearch.trigger\",title:Nt(\"references.action.label\",\"Peek References\"),precondition:pe.and(W.hasReferenceProvider,da.notInPeekEditor,W.isInEmbeddedEditor.toNegated()),menu:{id:R.EditorContextPeek,group:\"peek\",order:6}})}async _getLocationModel(e,t,i,s){return new Aa(await HP(e.referenceProvider,t,i,!1,s),v(\"ref.title\",\"References\"))}});class eXe extends ur{constructor(e,t,i){super(e,{id:\"editor.action.goToLocation\",title:Nt(\"label.generic\",\"Go to Any Symbol\"),precondition:pe.and(da.notInPeekEditor,W.isInEmbeddedEditor.toNegated())}),this._references=t,this._gotoMultipleBehaviour=i}async _getLocationModel(e,t,i,s){return new Aa(this._references,v(\"generic.title\",\"Locations\"))}_getNoResultFoundMessage(e){return e&&v(\"generic.noResult\",\"No results for '{0}'\",e.word)||\"\"}_getGoToPreference(e){var t;return(t=this._gotoMultipleBehaviour)!==null&&t!==void 0?t:e.getOption(58).multipleReferences}_getAlternativeCommand(){return\"\"}}ri.registerCommand({id:\"editor.action.goToLocations\",metadata:{description:\"Go to locations from a position in a file\",args:[{name:\"uri\",description:\"The text document in which to start\",constraint:pt},{name:\"position\",description:\"The position at which to start\",constraint:ee.isIPosition},{name:\"locations\",description:\"An array of locations.\",constraint:Array},{name:\"multiple\",description:\"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`\"},{name:\"noResultsMessage\",description:\"Human readable message that shows when locations is empty.\"}]},handler:async(n,e,t,i,s,o,r)=>{mi(pt.isUri(e)),mi(ee.isIPosition(t)),mi(Array.isArray(i)),mi(typeof s>\"u\"||typeof s==\"string\"),mi(typeof r>\"u\"||typeof r==\"boolean\");const a=n.get(vi),l=await a.openCodeEditor({resource:e},a.getFocusedCodeEditor());if(Ph(l))return l.setPosition(t),l.revealPositionInCenterIfOutsideViewport(t,0),l.invokeWithinContext(c=>{const d=new class extends eXe{_getNoResultFoundMessage(u){return o||super._getNoResultFoundMessage(u)}}({muteMessage:!o,openInPeek:!!r,openToSide:!1},i,s);c.get(ht).invokeFunction(d.run.bind(d),l)})}});ri.registerCommand({id:\"editor.action.peekLocations\",metadata:{description:\"Peek locations from a position in a file\",args:[{name:\"uri\",description:\"The text document in which to start\",constraint:pt},{name:\"position\",description:\"The position at which to start\",constraint:ee.isIPosition},{name:\"locations\",description:\"An array of locations.\",constraint:Array},{name:\"multiple\",description:\"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`\"}]},handler:async(n,e,t,i,s)=>{n.get(Sn).executeCommand(\"editor.action.goToLocations\",e,t,i,s,void 0,!0)}});ri.registerCommand({id:\"editor.action.findReferences\",handler:(n,e,t)=>{mi(pt.isUri(e)),mi(ee.isIPosition(t));const i=n.get(Xe),s=n.get(vi);return s.openCodeEditor({resource:e},s.getFocusedCodeEditor()).then(o=>{if(!Ph(o)||!o.hasModel())return;const r=Qm.get(o);if(!r)return;const a=Xs(c=>HP(i.referenceProvider,o.getModel(),ee.lift(t),!1,c).then(d=>new Aa(d,v(\"ref.title\",\"References\")))),l=new A(t.lineNumber,t.column,t.lineNumber,t.column);return Promise.resolve(r.toggleWidget(l,a,!1))})}});ri.registerCommandAlias(\"editor.action.showReferences\",\"editor.action.peekLocations\");async function tXe(n,e,t,i){var s;const o=n.get(fa),r=n.get(za),a=n.get(Sn),l=n.get(ht),c=n.get(ps);if(await i.item.resolve(Qt.None),!i.part.location)return;const d=i.part.location,u=[],h=new Set(ao.getMenuItems(R.EditorContext).map(g=>g1(g)?g.command.id:IP()));for(const g of ur.all())h.has(g.desc.id)&&u.push(new Ta(g.desc.id,Na.label(g.desc,{renderShortTitle:!0}),void 0,!0,async()=>{const p=await o.createModelReference(d.uri);try{const _=new cw(p.object.textEditorModel,A.getStartPosition(d.range)),b=i.item.anchor.range;await l.invokeFunction(g.runEditorCommand.bind(g),e,_,b)}finally{p.dispose()}}));if(i.part.command){const{command:g}=i.part;u.push(new Ms),u.push(new Ta(g.id,g.title,void 0,!0,async()=>{var p;try{await a.executeCommand(g.id,...(p=g.arguments)!==null&&p!==void 0?p:[])}catch(_){c.notify({severity:$M.Error,source:i.item.provider.displayName,message:_})}}))}const f=e.getOption(127);r.showContextMenu({domForShadowRoot:f&&(s=e.getDomNode())!==null&&s!==void 0?s:void 0,getAnchor:()=>{const g=bs(t);return{x:g.left,y:g.top+g.height+8}},getActions:()=>u,onHide:()=>{e.focus()},autoSelectFirstItem:!0})}async function Kfe(n,e,t,i){const o=await n.get(fa).createModelReference(i.uri);await t.invokeWithinContext(async r=>{const a=e.hasSideBySideModifier,l=r.get(Ct),c=da.inPeekEditor.getValue(l),d=!a&&t.getOption(88)&&!c;return new YD({openToSide:a,openInPeek:d,muteMessage:!0},{title:{value:\"\",original:\"\"},id:\"\",precondition:void 0}).run(r,new cw(o.object.textEditorModel,A.getStartPosition(i.range)),A.lift(i.range))}),o.dispose()}var iXe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Ub=function(n,e){return function(t,i){e(t,i,n)}},o1;class fR{constructor(){this._entries=new zh(50)}get(e){const t=fR._key(e);return this._entries.get(t)}set(e,t){const i=fR._key(e);this._entries.set(i,t)}static _key(e){return`${e.uri.toString()}/${e.getVersionId()}`}}const qfe=Jt(\"IInlayHintsCache\");ai(qfe,fR,1);class aW{constructor(e,t){this.item=e,this.index=t}get part(){const e=this.item.hint.label;return typeof e==\"string\"?{label:e}:e[this.index]}}class nXe{constructor(e,t){this.part=e,this.hasTriggerModifier=t}}let Jm=o1=class{static get(e){var t;return(t=e.getContribution(o1.ID))!==null&&t!==void 0?t:void 0}constructor(e,t,i,s,o,r,a){this._editor=e,this._languageFeaturesService=t,this._inlayHintsCache=s,this._commandService=o,this._notificationService=r,this._instaService=a,this._disposables=new be,this._sessionDisposables=new be,this._decorationsMetadata=new Map,this._ruleFactory=new bD(this._editor),this._activeRenderMode=0,this._debounceInfo=i.for(t.inlayHintsProvider,\"InlayHint\",{min:25}),this._disposables.add(t.inlayHintsProvider.onDidChange(()=>this._update())),this._disposables.add(e.onDidChangeModel(()=>this._update())),this._disposables.add(e.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(e.onDidChangeConfiguration(l=>{l.hasChanged(141)&&this._update()})),this._update()}dispose(){this._sessionDisposables.dispose(),this._removeAllDecorations(),this._disposables.dispose()}_update(){this._sessionDisposables.clear(),this._removeAllDecorations();const e=this._editor.getOption(141);if(e.enabled===\"off\")return;const t=this._editor.getModel();if(!t||!this._languageFeaturesService.inlayHintsProvider.has(t))return;if(e.enabled===\"on\")this._activeRenderMode=0;else{let a,l;e.enabled===\"onUnlessPressed\"?(a=0,l=1):(a=1,l=0),this._activeRenderMode=a,this._sessionDisposables.add(Yf.getInstance().event(c=>{if(!this._editor.hasModel())return;const d=c.altKey&&c.ctrlKey&&!(c.shiftKey||c.metaKey)?l:a;if(d!==this._activeRenderMode){this._activeRenderMode=d;const u=this._editor.getModel(),h=this._copyInlayHintsWithCurrentAnchor(u);this._updateHintsDecorators([u.getFullModelRange()],h),r.schedule(0)}}))}const i=this._inlayHintsCache.get(t);i&&this._updateHintsDecorators([t.getFullModelRange()],i),this._sessionDisposables.add(dt(()=>{t.isDisposed()||this._cacheHintsForFastRestore(t)}));let s;const o=new Set,r=new Xi(async()=>{const a=Date.now();s==null||s.dispose(!0),s=new $n;const l=t.onWillDispose(()=>s==null?void 0:s.cancel());try{const c=s.token,d=await Xv.create(this._languageFeaturesService.inlayHintsProvider,t,this._getHintsRanges(),c);if(r.delay=this._debounceInfo.update(t,Date.now()-a),c.isCancellationRequested){d.dispose();return}for(const u of d.provider)typeof u.onDidChangeInlayHints==\"function\"&&!o.has(u)&&(o.add(u),this._sessionDisposables.add(u.onDidChangeInlayHints(()=>{r.isScheduled()||r.schedule()})));this._sessionDisposables.add(d),this._updateHintsDecorators(d.ranges,d.items),this._cacheHintsForFastRestore(t)}catch(c){Mt(c)}finally{s.dispose(),l.dispose()}},this._debounceInfo.get(t));this._sessionDisposables.add(r),this._sessionDisposables.add(dt(()=>s==null?void 0:s.dispose(!0))),r.schedule(0),this._sessionDisposables.add(this._editor.onDidScrollChange(a=>{(a.scrollTopChanged||!r.isScheduled())&&r.schedule()})),this._sessionDisposables.add(this._editor.onDidChangeModelContent(a=>{s==null||s.cancel();const l=Math.max(r.delay,1250);r.schedule(l)})),this._sessionDisposables.add(this._installDblClickGesture(()=>r.schedule(0))),this._sessionDisposables.add(this._installLinkGesture()),this._sessionDisposables.add(this._installContextMenu())}_installLinkGesture(){const e=new be,t=e.add(new RP(this._editor)),i=new be;return e.add(i),e.add(t.onMouseMoveOrRelevantKeyDown(s=>{const[o]=s,r=this._getInlayHintLabelPart(o),a=this._editor.getModel();if(!r||!a){i.clear();return}const l=new $n;i.add(dt(()=>l.dispose(!0))),r.item.resolve(l.token),this._activeInlayHintPart=r.part.command||r.part.location?new nXe(r,o.hasTriggerModifier):void 0;const c=a.validatePosition(r.item.hint.position).lineNumber,d=new A(c,1,c,a.getLineMaxColumn(c)),u=this._getInlineHintsForRange(d);this._updateHintsDecorators([d],u),i.add(dt(()=>{this._activeInlayHintPart=void 0,this._updateHintsDecorators([d],u)}))})),e.add(t.onCancel(()=>i.clear())),e.add(t.onExecute(async s=>{const o=this._getInlayHintLabelPart(s);if(o){const r=o.part;r.location?this._instaService.invokeFunction(Kfe,s,this._editor,r.location):o7.is(r.command)&&await this._invokeCommand(r.command,o.item)}})),e}_getInlineHintsForRange(e){const t=new Set;for(const i of this._decorationsMetadata.values())e.containsRange(i.item.anchor.range)&&t.add(i.item);return Array.from(t)}_installDblClickGesture(e){return this._editor.onMouseUp(async t=>{if(t.event.detail!==2)return;const i=this._getInlayHintLabelPart(t);if(i&&(t.event.preventDefault(),await i.item.resolve(Qt.None),Zo(i.item.hint.textEdits))){const s=i.item.hint.textEdits.map(o=>Mn.replace(A.lift(o.range),o.text));this._editor.executeEdits(\"inlayHint.default\",s),e()}})}_installContextMenu(){return this._editor.onContextMenu(async e=>{if(!co(e.event.target))return;const t=this._getInlayHintLabelPart(e);t&&await this._instaService.invokeFunction(tXe,this._editor,e.event.target,t)})}_getInlayHintLabelPart(e){var t;if(e.target.type!==6)return;const i=(t=e.target.detail.injectedText)===null||t===void 0?void 0:t.options;if(i instanceof $m&&(i==null?void 0:i.attachedData)instanceof aW)return i.attachedData}async _invokeCommand(e,t){var i;try{await this._commandService.executeCommand(e.id,...(i=e.arguments)!==null&&i!==void 0?i:[])}catch(s){this._notificationService.notify({severity:$M.Error,source:t.provider.displayName,message:s})}}_cacheHintsForFastRestore(e){const t=this._copyInlayHintsWithCurrentAnchor(e);this._inlayHintsCache.set(e,t)}_copyInlayHintsWithCurrentAnchor(e){const t=new Map;for(const[i,s]of this._decorationsMetadata){if(t.has(s.item))continue;const o=e.getDecorationRange(i);if(o){const r=new Afe(o,s.item.anchor.direction),a=s.item.with({anchor:r});t.set(s.item,a)}}return Array.from(t.values())}_getHintsRanges(){const t=this._editor.getModel(),i=this._editor.getVisibleRangesPlusViewportAboveBelow(),s=[];for(const o of i.sort(A.compareRangesUsingStarts)){const r=t.validateRange(new A(o.startLineNumber-30,o.startColumn,o.endLineNumber+30,o.endColumn));s.length===0||!A.areIntersectingOrTouching(s[s.length-1],r)?s.push(r):s[s.length-1]=A.plusRange(s[s.length-1],r)}return s}_updateHintsDecorators(e,t){var i,s;const o=[],r=(_,b,w,y,S)=>{const x={content:w,inlineClassNameAffectsLetterSpacing:!0,inlineClassName:b.className,cursorStops:y,attachedData:S};o.push({item:_,classNameRef:b,decoration:{range:_.anchor.range,options:{description:\"InlayHint\",showIfCollapsed:_.anchor.range.isEmpty(),collapseOnReplaceEdit:!_.anchor.range.isEmpty(),stickiness:0,[_.anchor.direction]:this._activeRenderMode===0?x:void 0}}})},a=(_,b)=>{const w=this._ruleFactory.createClassNameRef({width:`${l/3|0}px`,display:\"inline-block\"});r(_,w,\" \",b?qc.Right:qc.None)},{fontSize:l,fontFamily:c,padding:d,isUniform:u}=this._getLayoutInfo(),h=\"--code-editorInlayHintsFontFamily\";this._editor.getContainerDomNode().style.setProperty(h,c);let f={line:0,totalLen:0};for(const _ of t){if(f.line!==_.anchor.range.startLineNumber&&(f={line:_.anchor.range.startLineNumber,totalLen:0}),f.totalLen>o1._MAX_LABEL_LEN)continue;_.hint.paddingLeft&&a(_,!1);const b=typeof _.hint.label==\"string\"?[{label:_.hint.label}]:_.hint.label;for(let w=0;w<b.length;w++){const y=b[w],S=w===0,x=w===b.length-1,k={fontSize:`${l}px`,fontFamily:`var(${h}), ${ra.fontFamily}`,verticalAlign:u?\"baseline\":\"middle\",unicodeBidi:\"isolate\"};Zo(_.hint.textEdits)&&(k.cursor=\"default\"),this._fillInColors(k,_.hint),(y.command||y.location)&&((i=this._activeInlayHintPart)===null||i===void 0?void 0:i.part.item)===_&&this._activeInlayHintPart.part.index===w&&(k.textDecoration=\"underline\",this._activeInlayHintPart.hasTriggerModifier&&(k.color=Yn(wFe),k.cursor=\"pointer\")),d&&(S&&x?(k.padding=`1px ${Math.max(1,l/4)|0}px`,k.borderRadius=`${l/4|0}px`):S?(k.padding=`1px 0 1px ${Math.max(1,l/4)|0}px`,k.borderRadius=`${l/4|0}px 0 0 ${l/4|0}px`):x?(k.padding=`1px ${Math.max(1,l/4)|0}px 1px 0`,k.borderRadius=`0 ${l/4|0}px ${l/4|0}px 0`):k.padding=\"1px 0 1px 0\");let D=y.label;f.totalLen+=D.length;let I=!1;const N=f.totalLen-o1._MAX_LABEL_LEN;if(N>0&&(D=D.slice(0,-N)+\"…\",I=!0),r(_,this._ruleFactory.createClassNameRef(k),sXe(D),x&&!_.hint.paddingRight?qc.Right:qc.None,new aW(_,w)),I)break}if(_.hint.paddingRight&&a(_,!0),o.length>o1._MAX_DECORATORS)break}const g=[];for(const[_,b]of this._decorationsMetadata){const w=(s=this._editor.getModel())===null||s===void 0?void 0:s.getDecorationRange(_);w&&e.some(y=>y.containsRange(w))&&(g.push(_),b.classNameRef.dispose(),this._decorationsMetadata.delete(_))}const p=uu.capture(this._editor);this._editor.changeDecorations(_=>{const b=_.deltaDecorations(g,o.map(w=>w.decoration));for(let w=0;w<b.length;w++){const y=o[w];this._decorationsMetadata.set(b[w],y)}}),p.restore(this._editor)}_fillInColors(e,t){t.kind===A2.Parameter?(e.backgroundColor=Yn(EFe),e.color=Yn(IFe)):t.kind===A2.Type?(e.backgroundColor=Yn(DFe),e.color=Yn(kFe)):(e.backgroundColor=Yn(tg),e.color=Yn(eg))}_getLayoutInfo(){const e=this._editor.getOption(141),t=e.padding,i=this._editor.getOption(52),s=this._editor.getOption(49);let o=e.fontSize;(!o||o<5||o>i)&&(o=i);const r=e.fontFamily||s;return{fontSize:o,fontFamily:r,padding:t,isUniform:!t&&r===s&&o===i}}_removeAllDecorations(){this._editor.removeDecorations(Array.from(this._decorationsMetadata.keys()));for(const e of this._decorationsMetadata.values())e.classNameRef.dispose();this._decorationsMetadata.clear()}};Jm.ID=\"editor.contrib.InlayHints\";Jm._MAX_DECORATORS=1500;Jm._MAX_LABEL_LEN=43;Jm=o1=iXe([Ub(1,Xe),Ub(2,_c),Ub(3,qfe),Ub(4,Sn),Ub(5,ps),Ub(6,ht)],Jm);function sXe(n){return n.replace(/[ \\t]/g,\" \")}ri.registerCommand(\"_executeInlayHintProvider\",async(n,...e)=>{const[t,i]=e;mi(pt.isUri(t)),mi(A.isIRange(i));const{inlayHintsProvider:s}=n.get(Xe),o=await n.get(fa).createModelReference(t);try{const r=await Xv.create(s,o.object.textEditorModel,[A.lift(i)],Qt.None),a=r.items.map(l=>l.hint);return setTimeout(()=>r.dispose(),0),a}finally{o.dispose()}});var oXe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},G_=function(n,e){return function(t,i){e(t,i,n)}};class Zee extends Yv{constructor(e,t,i,s){super(10,t,e.item.anchor.range,i,s,!0),this.part=e}}let gR=class extends gk{constructor(e,t,i,s,o,r,a,l){super(e,t,i,r,l,s,o),this._resolverService=a,this.hoverOrdinal=6}suggestHoverAnchor(e){var t;if(!Jm.get(this._editor)||e.target.type!==6)return null;const s=(t=e.target.detail.injectedText)===null||t===void 0?void 0:t.options;return s instanceof $m&&s.attachedData instanceof aW?new Zee(s.attachedData,this,e.event.posx,e.event.posy):null}computeSync(){return[]}computeAsync(e,t,i){return e instanceof Zee?new Ls(async s=>{const{part:o}=e;if(await o.item.resolve(i),i.isCancellationRequested)return;let r;typeof o.item.hint.tooltip==\"string\"?r=new $o().appendText(o.item.hint.tooltip):o.item.hint.tooltip&&(r=o.item.hint.tooltip),r&&s.emitOne(new Wd(this,e.range,[r],!1,0)),Zo(o.item.hint.textEdits)&&s.emitOne(new Wd(this,e.range,[new $o().appendText(v(\"hint.dbl\",\"Double-click to insert\"))],!1,10001));let a;if(typeof o.part.tooltip==\"string\"?a=new $o().appendText(o.part.tooltip):o.part.tooltip&&(a=o.part.tooltip),a&&s.emitOne(new Wd(this,e.range,[a],!1,1)),o.part.location||o.part.command){let c;const u=this._editor.getOption(78)===\"altKey\"?Xt?v(\"links.navigate.kb.meta.mac\",\"cmd + click\"):v(\"links.navigate.kb.meta\",\"ctrl + click\"):Xt?v(\"links.navigate.kb.alt.mac\",\"option + click\"):v(\"links.navigate.kb.alt\",\"alt + click\");o.part.location&&o.part.command?c=new $o().appendText(v(\"hint.defAndCommand\",\"Go to Definition ({0}), right click for more\",u)):o.part.location?c=new $o().appendText(v(\"hint.def\",\"Go to Definition ({0})\",u)):o.part.command&&(c=new $o(`[${v(\"hint.cmd\",\"Execute Command\")}](${RYe(o.part.command)} \"${o.part.command.title}\") (${u})`,{isTrusted:!0})),c&&s.emitOne(new Wd(this,e.range,[c],!1,1e4))}const l=await this._resolveInlayHintLabelPartHover(o,i);for await(const c of l)s.emitOne(c)}):Ls.EMPTY}async _resolveInlayHintLabelPartHover(e,t){if(!e.part.location)return Ls.EMPTY;const{uri:i,range:s}=e.part.location,o=await this._resolverService.createModelReference(i);try{const r=o.object.textEditorModel;return this._languageFeaturesService.hoverProvider.has(r)?SU(this._languageFeaturesService.hoverProvider,r,new ee(s.startLineNumber,s.startColumn),t).filter(a=>!qC(a.hover.contents)).map(a=>new Wd(this,e.item.anchor.range,a.hover.contents,!1,2+a.ordinal)):Ls.EMPTY}finally{o.dispose()}}};gR=oXe([G_(1,An),G_(2,$a),G_(3,Li),G_(4,$h),G_(5,qt),G_(6,fa),G_(7,Xe)],gR);class pR{get anchor(){return this._anchor}set anchor(e){this._anchor=e}get shouldFocus(){return this._shouldFocus}set shouldFocus(e){this._shouldFocus=e}get source(){return this._source}set source(e){this._source=e}get insistOnKeepingHoverVisible(){return this._insistOnKeepingHoverVisible}set insistOnKeepingHoverVisible(e){this._insistOnKeepingHoverVisible=e}constructor(e,t){this._editor=e,this._participants=t,this._anchor=null,this._shouldFocus=!1,this._source=0,this._insistOnKeepingHoverVisible=!1}static _getLineDecorations(e,t){if(t.type!==1&&!t.supportsMarkerHover)return[];const i=e.getModel(),s=t.range.startLineNumber;if(s>i.getLineCount())return[];const o=i.getLineMaxColumn(s);return e.getLineDecorations(s).filter(r=>{if(r.options.isWholeLine)return!0;const a=r.range.startLineNumber===s?r.range.startColumn:1,l=r.range.endLineNumber===s?r.range.endColumn:o;if(r.options.showIfCollapsed){if(a>t.range.startColumn+1||t.range.endColumn-1>l)return!1}else if(a>t.range.startColumn||t.range.endColumn>l)return!1;return!0})}computeAsync(e){const t=this._anchor;if(!this._editor.hasModel()||!t)return Ls.EMPTY;const i=pR._getLineDecorations(this._editor,t);return Ls.merge(this._participants.map(s=>s.computeAsync?s.computeAsync(t,i,e):Ls.EMPTY))}computeSync(){if(!this._editor.hasModel()||!this._anchor)return[];const e=pR._getLineDecorations(this._editor,this._anchor);let t=[];for(const i of this._participants)t=t.concat(i.computeSync(this._anchor,e));return tu(t)}}class Gfe{constructor(e,t,i){this.anchor=e,this.messages=t,this.isComplete=i}filter(e){const t=this.messages.filter(i=>i.isValidForHoverAnchor(e));return t.length===this.messages.length?this:new rXe(this,this.anchor,t,this.isComplete)}}class rXe extends Gfe{constructor(e,t,i,s){super(t,i,s),this.original=e}filter(e){return this.original.filter(e)}}class aXe{constructor(e,t,i,s,o,r,a,l,c,d){this.initialMousePosX=e,this.initialMousePosY=t,this.colorPicker=i,this.showAtPosition=s,this.showAtSecondaryPosition=o,this.preferAbove=r,this.stoleFocus=a,this.source=l,this.isBeforeContent=c,this.disposables=d,this.closestMouseDistance=void 0}}var lXe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},cXe=function(n,e){return function(t,i){e(t,i,n)}};const Yee=ke;let mR=class extends ne{get hasContent(){return this._hasContent}constructor(e){super(),this._keybindingService=e,this._hasContent=!1,this.hoverElement=Yee(\"div.hover-row.status-bar\"),this.hoverElement.tabIndex=0,this.actionsElement=we(this.hoverElement,Yee(\"div.actions\"))}addAction(e){const t=this._keybindingService.lookupKeybinding(e.commandId),i=t?t.getLabel():null;return this._hasContent=!0,this._register(jM.render(this.actionsElement,e,i))}append(e){const t=we(this.actionsElement,e);return this._hasContent=!0,t}};mR=lXe([cXe(0,Li)],mR);var dXe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Xee=function(n,e){return function(t,i){e(t,i,n)}},WN;let _R=WN=class extends ne{constructor(e,t,i){super(),this._editor=e,this._instantiationService=t,this._keybindingService=i,this._currentResult=null,this._onContentsChanged=this._register(new X),this.onContentsChanged=this._onContentsChanged.event,this._widget=this._register(this._instantiationService.createInstance(lw,this._editor)),this._participants=[];for(const s of b_.getAll()){const o=this._instantiationService.createInstance(s,this._editor);o instanceof gk&&!(o instanceof gR)&&(this._markdownHoverParticipant=o),this._participants.push(o)}this._participants.sort((s,o)=>s.hoverOrdinal-o.hoverOrdinal),this._computer=new pR(this._editor,this._participants),this._hoverOperation=this._register(new Efe(this._editor,this._computer)),this._register(this._hoverOperation.onResult(s=>{if(!this._computer.anchor)return;const o=s.hasLoadingMessage?this._addLoadingMessage(s.value):s.value;this._withResult(new Gfe(this._computer.anchor,o,s.isComplete))})),this._register(rs(this._widget.getDomNode(),\"keydown\",s=>{s.equals(9)&&this.hide()})),this._register(Zn.onDidChange(()=>{this._widget.position&&this._currentResult&&this._setCurrentResult(this._currentResult)}))}_startShowingOrUpdateHover(e,t,i,s,o){return!this._widget.position||!this._currentResult?e?(this._startHoverOperationIfNecessary(e,t,i,s,!1),!0):!1:this._editor.getOption(60).sticky&&o&&this._widget.isMouseGettingCloser(o.event.posx,o.event.posy)?(e&&this._startHoverOperationIfNecessary(e,t,i,s,!0),!0):e?e&&this._currentResult.anchor.equals(e)?!0:e.canAdoptVisibleHover(this._currentResult.anchor,this._widget.position)?(this._setCurrentResult(this._currentResult.filter(e)),this._startHoverOperationIfNecessary(e,t,i,s,!1),!0):(this._setCurrentResult(null),this._startHoverOperationIfNecessary(e,t,i,s,!1),!0):(this._setCurrentResult(null),!1)}_startHoverOperationIfNecessary(e,t,i,s,o){this._computer.anchor&&this._computer.anchor.equals(e)||(this._hoverOperation.cancel(),this._computer.anchor=e,this._computer.shouldFocus=s,this._computer.source=i,this._computer.insistOnKeepingHoverVisible=o,this._hoverOperation.start(t))}_setCurrentResult(e){this._currentResult!==e&&(e&&e.messages.length===0&&(e=null),this._currentResult=e,this._currentResult?this._renderMessages(this._currentResult.anchor,this._currentResult.messages):this._widget.hide())}_addLoadingMessage(e){if(this._computer.anchor){for(const t of this._participants)if(t.createLoadingMessage){const i=t.createLoadingMessage(this._computer.anchor);if(i)return e.slice(0).concat([i])}}return e}_withResult(e){this._widget.position&&this._currentResult&&this._currentResult.isComplete&&(!e.isComplete||this._computer.insistOnKeepingHoverVisible&&e.messages.length===0)||this._setCurrentResult(e)}_renderMessages(e,t){const{showAtPosition:i,showAtSecondaryPosition:s,highlightRange:o}=WN.computeHoverRanges(this._editor,e.range,t),r=new be,a=r.add(new mR(this._keybindingService)),l=document.createDocumentFragment();let c=null;const d={fragment:l,statusBar:a,setColorPicker:h=>c=h,onContentsChanged:()=>this._doOnContentsChanged(),setMinimumDimensions:h=>this._widget.setMinimumDimensions(h),hide:()=>this.hide()};for(const h of this._participants){const f=t.filter(g=>g.owner===h);f.length>0&&r.add(h.renderHoverParts(d,f))}const u=t.some(h=>h.isBeforeContent);if(a.hasContent&&l.appendChild(a.hoverElement),l.hasChildNodes()){if(o){const h=this._editor.createDecorationsCollection();h.set([{range:o,options:WN._DECORATION_OPTIONS}]),r.add(dt(()=>{h.clear()}))}this._widget.showAt(l,new aXe(e.initialMousePosX,e.initialMousePosY,c,i,s,this._editor.getOption(60).above,this._computer.shouldFocus,this._computer.source,u,r))}else r.dispose()}_doOnContentsChanged(){this._onContentsChanged.fire(),this._widget.onContentsChanged()}static computeHoverRanges(e,t,i){let s=1;if(e.hasModel()){const u=e._getViewModel(),h=u.coordinatesConverter,f=h.convertModelRangeToViewRange(t),g=new ee(f.startLineNumber,u.getLineMinColumn(f.startLineNumber));s=h.convertViewPositionToModelPosition(g).column}const o=t.startLineNumber;let r=t.startColumn,a=i[0].range,l=null;for(const u of i)a=A.plusRange(a,u.range),u.range.startLineNumber===o&&u.range.endLineNumber===o&&(r=Math.max(Math.min(r,u.range.startColumn),s)),u.forceShowAtRange&&(l=u.range);const c=l?l.getStartPosition():new ee(o,t.startColumn),d=l?l.getStartPosition():new ee(o,r);return{showAtPosition:c,showAtSecondaryPosition:d,highlightRange:a}}showsOrWillShow(e){if(this._widget.isResizing)return!0;const t=[];for(const s of this._participants)if(s.suggestHoverAnchor){const o=s.suggestHoverAnchor(e);o&&t.push(o)}const i=e.target;if(i.type===6&&t.push(new s3(0,i.range,e.event.posx,e.event.posy)),i.type===7){const s=this._editor.getOption(50).typicalHalfwidthCharacterWidth/2;!i.detail.isAfterLines&&typeof i.detail.horizontalDistanceToText==\"number\"&&i.detail.horizontalDistanceToText<s&&t.push(new s3(0,i.range,e.event.posx,e.event.posy))}return t.length===0?this._startShowingOrUpdateHover(null,0,0,!1,e):(t.sort((s,o)=>o.priority-s.priority),this._startShowingOrUpdateHover(t[0],0,0,!1,e))}startShowingAtRange(e,t,i,s){this._startShowingOrUpdateHover(new s3(0,e,void 0,void 0),t,i,s,null)}async updateMarkdownHoverVerbosityLevel(e,t,i){var s;(s=this._markdownHoverParticipant)===null||s===void 0||s.updateMarkdownHoverVerbosityLevel(e,t,i)}markdownHoverContentAtIndex(e){var t,i;return(i=(t=this._markdownHoverParticipant)===null||t===void 0?void 0:t.markdownHoverContentAtIndex(e))!==null&&i!==void 0?i:\"\"}doesMarkdownHoverAtIndexSupportVerbosityAction(e,t){var i,s;return(s=(i=this._markdownHoverParticipant)===null||i===void 0?void 0:i.doesMarkdownHoverAtIndexSupportVerbosityAction(e,t))!==null&&s!==void 0?s:!1}containsNode(e){return e?this._widget.getDomNode().contains(e):!1}focus(){this._widget.focus()}scrollUp(){this._widget.scrollUp()}scrollDown(){this._widget.scrollDown()}scrollLeft(){this._widget.scrollLeft()}scrollRight(){this._widget.scrollRight()}pageUp(){this._widget.pageUp()}pageDown(){this._widget.pageDown()}goToTop(){this._widget.goToTop()}goToBottom(){this._widget.goToBottom()}hide(){this._computer.anchor=null,this._hoverOperation.cancel(),this._setCurrentResult(null)}get isColorPickerVisible(){return this._widget.isColorPickerVisible}get isVisibleFromKeyboard(){return this._widget.isVisibleFromKeyboard}get isVisible(){return this._widget.isVisible}get isFocused(){return this._widget.isFocused}get isResizing(){return this._widget.isResizing}get widget(){return this._widget}};_R._DECORATION_OPTIONS=Wt.register({description:\"content-hover-highlight\",className:\"hoverHighlight\"});_R=WN=dXe([Xee(1,ht),Xee(2,Li)],_R);class uXe{get lineNumber(){return this._lineNumber}set lineNumber(e){this._lineNumber=e}get lane(){return this._laneOrLine}set lane(e){this._laneOrLine=e}constructor(e){this._editor=e,this._lineNumber=-1,this._laneOrLine=Dh.Center}computeSync(){var e,t;const i=a=>({value:a}),s=this._editor.getLineDecorations(this._lineNumber),o=[],r=this._laneOrLine===\"lineNo\";if(!s)return o;for(const a of s){const l=(t=(e=a.options.glyphMargin)===null||e===void 0?void 0:e.position)!==null&&t!==void 0?t:Dh.Center;if(!r&&l!==this._laneOrLine)continue;const c=r?a.options.lineNumberHoverMessage:a.options.glyphMarginHoverMessage;!c||qC(c)||o.push(...AV(c).map(i))}return o}}const Qee=ke;class vk extends ne{constructor(e,t,i){super(),this._renderDisposeables=this._register(new be),this._editor=e,this._isVisible=!1,this._messages=[],this._hover=this._register(new c$),this._hover.containerDomNode.classList.toggle(\"hidden\",!this._isVisible),this._markdownRenderer=this._register(new Nh({editor:this._editor},t,i)),this._computer=new uXe(this._editor),this._hoverOperation=this._register(new Efe(this._editor,this._computer)),this._register(this._hoverOperation.onResult(s=>{this._withResult(s.value)})),this._register(this._editor.onDidChangeModelDecorations(()=>this._onModelDecorationsChanged())),this._register(this._editor.onDidChangeConfiguration(s=>{s.hasChanged(50)&&this._updateFont()})),this._editor.addOverlayWidget(this)}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return vk.ID}getDomNode(){return this._hover.containerDomNode}getPosition(){return null}_updateFont(){Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName(\"code\")).forEach(t=>this._editor.applyFontInfo(t))}_onModelDecorationsChanged(){this._isVisible&&(this._hoverOperation.cancel(),this._hoverOperation.start(0))}showsOrWillShow(e){const t=e.target;return t.type===2&&t.detail.glyphMarginLane?(this._startShowingAt(t.position.lineNumber,t.detail.glyphMarginLane),!0):t.type===3?(this._startShowingAt(t.position.lineNumber,\"lineNo\"),!0):!1}_startShowingAt(e,t){this._computer.lineNumber===e&&this._computer.lane===t||(this._hoverOperation.cancel(),this.hide(),this._computer.lineNumber=e,this._computer.lane=t,this._hoverOperation.start(0))}hide(){this._computer.lineNumber=-1,this._hoverOperation.cancel(),this._isVisible&&(this._isVisible=!1,this._hover.containerDomNode.classList.toggle(\"hidden\",!this._isVisible))}_withResult(e){this._messages=e,this._messages.length>0?this._renderMessages(this._computer.lineNumber,this._messages):this.hide()}_renderMessages(e,t){this._renderDisposeables.clear();const i=document.createDocumentFragment();for(const s of t){const o=Qee(\"div.hover-row.markdown-hover\"),r=we(o,Qee(\"div.hover-contents\")),a=this._renderDisposeables.add(this._markdownRenderer.render(s.value));r.appendChild(a.element),i.appendChild(o)}this._updateContents(i),this._showAt(e)}_updateContents(e){this._hover.contentsDomNode.textContent=\"\",this._hover.contentsDomNode.appendChild(e),this._updateFont()}_showAt(e){this._isVisible||(this._isVisible=!0,this._hover.containerDomNode.classList.toggle(\"hidden\",!this._isVisible));const t=this._editor.getLayoutInfo(),i=this._editor.getTopForLineNumber(e),s=this._editor.getScrollTop(),o=this._editor.getOption(67),r=this._hover.containerDomNode.clientHeight,a=i-s-(r-o)/2,l=t.glyphMarginLeft+t.glyphMarginWidth+(this._computer.lane===\"lineNo\"?t.lineNumbersWidth:0);this._hover.containerDomNode.style.left=`${l}px`,this._hover.containerDomNode.style.top=`${Math.max(Math.round(a),0)}px`}}vk.ID=\"editor.contrib.modesGlyphHoverWidget\";var hXe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Jee=function(n,e){return function(t,i){e(t,i,n)}},lW;let gr=lW=class extends ne{constructor(e,t,i){super(),this._editor=e,this._instantiationService=t,this._keybindingService=i,this._onHoverContentsChanged=this._register(new X),this.shouldKeepOpenOnEditorMouseMoveOrLeave=!1,this._listenersStore=new be,this._hoverState={mouseDown:!1,activatedByDecoratorClick:!1},this._reactToEditorMouseMoveRunner=this._register(new Xi(()=>this._reactToEditorMouseMove(this._mouseMoveEvent),0)),this._hookListeners(),this._register(this._editor.onDidChangeConfiguration(s=>{s.hasChanged(60)&&(this._unhookListeners(),this._hookListeners())}))}static get(e){return e.getContribution(lW.ID)}_hookListeners(){const e=this._editor.getOption(60);this._hoverSettings={enabled:e.enabled,sticky:e.sticky,hidingDelay:e.delay},e.enabled?(this._listenersStore.add(this._editor.onMouseDown(t=>this._onEditorMouseDown(t))),this._listenersStore.add(this._editor.onMouseUp(()=>this._onEditorMouseUp())),this._listenersStore.add(this._editor.onMouseMove(t=>this._onEditorMouseMove(t))),this._listenersStore.add(this._editor.onKeyDown(t=>this._onKeyDown(t)))):(this._listenersStore.add(this._editor.onMouseMove(t=>this._onEditorMouseMove(t))),this._listenersStore.add(this._editor.onKeyDown(t=>this._onKeyDown(t)))),this._listenersStore.add(this._editor.onMouseLeave(t=>this._onEditorMouseLeave(t))),this._listenersStore.add(this._editor.onDidChangeModel(()=>{this._cancelScheduler(),this._hideWidgets()})),this._listenersStore.add(this._editor.onDidChangeModelContent(()=>this._cancelScheduler())),this._listenersStore.add(this._editor.onDidScrollChange(t=>this._onEditorScrollChanged(t)))}_unhookListeners(){this._listenersStore.clear()}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_onEditorScrollChanged(e){(e.scrollTopChanged||e.scrollLeftChanged)&&this._hideWidgets()}_onEditorMouseDown(e){this._hoverState.mouseDown=!0,!this._shouldNotHideCurrentHoverWidget(e)&&this._hideWidgets()}_shouldNotHideCurrentHoverWidget(e){return!!(this._isMouseOnContentHoverWidget(e)||this._isMouseOnMarginHoverWidget(e)||this._isContentWidgetResizing())}_isMouseOnMarginHoverWidget(e){const t=e.target;return t?t.type===12&&t.detail===vk.ID:!1}_isMouseOnContentHoverWidget(e){const t=e.target;return t?t.type===9&&t.detail===lw.ID:!1}_onEditorMouseUp(){this._hoverState.mouseDown=!1}_onEditorMouseLeave(e){this.shouldKeepOpenOnEditorMouseMoveOrLeave||(this._cancelScheduler(),this._shouldNotHideCurrentHoverWidget(e))||this._hideWidgets()}_shouldNotRecomputeCurrentHoverWidget(e){const t=this._hoverSettings.sticky,i=(a,l)=>{const c=this._isMouseOnMarginHoverWidget(a);return l&&c},s=(a,l)=>{const c=this._isMouseOnContentHoverWidget(a);return l&&c},o=a=>{var l;const c=this._isMouseOnContentHoverWidget(a),d=(l=this._contentWidget)===null||l===void 0?void 0:l.isColorPickerVisible;return c&&d},r=(a,l)=>{var c,d,u,h;return l&&((c=this._contentWidget)===null||c===void 0?void 0:c.containsNode((d=a.event.browserEvent.view)===null||d===void 0?void 0:d.document.activeElement))&&!(!((h=(u=a.event.browserEvent.view)===null||u===void 0?void 0:u.getSelection())===null||h===void 0)&&h.isCollapsed)};return!!(i(e,t)||s(e,t)||o(e)||r(e,t))}_onEditorMouseMove(e){var t,i,s,o;if(this.shouldKeepOpenOnEditorMouseMoveOrLeave||(this._mouseMoveEvent=e,!((t=this._contentWidget)===null||t===void 0)&&t.isFocused||!((i=this._contentWidget)===null||i===void 0)&&i.isResizing))return;const r=this._hoverSettings.sticky;if(r&&(!((s=this._contentWidget)===null||s===void 0)&&s.isVisibleFromKeyboard))return;if(this._shouldNotRecomputeCurrentHoverWidget(e)){this._reactToEditorMouseMoveRunner.cancel();return}const l=this._hoverSettings.hidingDelay;if(((o=this._contentWidget)===null||o===void 0?void 0:o.isVisible)&&r&&l>0){this._reactToEditorMouseMoveRunner.isScheduled()||this._reactToEditorMouseMoveRunner.schedule(l);return}this._reactToEditorMouseMove(e)}_reactToEditorMouseMove(e){var t;if(!e)return;const s=(t=e.target.element)===null||t===void 0?void 0:t.classList.contains(\"colorpicker-color-decoration\"),o=this._editor.getOption(148),r=this._hoverSettings.enabled,a=this._hoverState.activatedByDecoratorClick;if(s&&(o===\"click\"&&!a||o===\"hover\"&&!r||o===\"clickAndHover\"&&!r&&!a)||!s&&!r&&!a){this._hideWidgets();return}this._tryShowHoverWidget(e,0)||this._tryShowHoverWidget(e,1)||this._hideWidgets()}_tryShowHoverWidget(e,t){const i=this._getOrCreateContentWidget(),s=this._getOrCreateGlyphWidget();let o,r;switch(t){case 0:o=i,r=s;break;case 1:o=s,r=i;break;default:throw new Error(`HoverWidgetType ${t} is unrecognized`)}const a=o.showsOrWillShow(e);return a&&r.hide(),a}_onKeyDown(e){var t;if(!this._editor.hasModel())return;const i=this._keybindingService.softDispatch(e,this._editor.getDomNode()),s=i.kind===1||i.kind===2&&(i.commandId===Lfe||i.commandId===NP||i.commandId===AP)&&((t=this._contentWidget)===null||t===void 0?void 0:t.isVisible);e.keyCode===5||e.keyCode===6||e.keyCode===57||e.keyCode===4||s||this._hideWidgets()}_hideWidgets(){var e,t,i;this._hoverState.mouseDown&&(!((e=this._contentWidget)===null||e===void 0)&&e.isColorPickerVisible)||Zm.dropDownVisible||(this._hoverState.activatedByDecoratorClick=!1,(t=this._glyphWidget)===null||t===void 0||t.hide(),(i=this._contentWidget)===null||i===void 0||i.hide())}_getOrCreateContentWidget(){return this._contentWidget||(this._contentWidget=this._instantiationService.createInstance(_R,this._editor),this._listenersStore.add(this._contentWidget.onContentsChanged(()=>this._onHoverContentsChanged.fire()))),this._contentWidget}_getOrCreateGlyphWidget(){return this._glyphWidget||(this._glyphWidget=this._instantiationService.createInstance(vk,this._editor)),this._glyphWidget}showContentHover(e,t,i,s,o=!1){this._hoverState.activatedByDecoratorClick=o,this._getOrCreateContentWidget().startShowingAtRange(e,t,i,s)}_isContentWidgetResizing(){var e;return((e=this._contentWidget)===null||e===void 0?void 0:e.widget.isResizing)||!1}markdownHoverContentAtIndex(e){return this._getOrCreateContentWidget().markdownHoverContentAtIndex(e)}doesMarkdownHoverAtIndexSupportVerbosityAction(e,t){return this._getOrCreateContentWidget().doesMarkdownHoverAtIndexSupportVerbosityAction(e,t)}updateMarkdownHoverVerbosityLevel(e,t,i){this._getOrCreateContentWidget().updateMarkdownHoverVerbosityLevel(e,t,i)}focus(){var e;(e=this._contentWidget)===null||e===void 0||e.focus()}scrollUp(){var e;(e=this._contentWidget)===null||e===void 0||e.scrollUp()}scrollDown(){var e;(e=this._contentWidget)===null||e===void 0||e.scrollDown()}scrollLeft(){var e;(e=this._contentWidget)===null||e===void 0||e.scrollLeft()}scrollRight(){var e;(e=this._contentWidget)===null||e===void 0||e.scrollRight()}pageUp(){var e;(e=this._contentWidget)===null||e===void 0||e.pageUp()}pageDown(){var e;(e=this._contentWidget)===null||e===void 0||e.pageDown()}goToTop(){var e;(e=this._contentWidget)===null||e===void 0||e.goToTop()}goToBottom(){var e;(e=this._contentWidget)===null||e===void 0||e.goToBottom()}get isColorPickerVisible(){var e;return(e=this._contentWidget)===null||e===void 0?void 0:e.isColorPickerVisible}get isHoverVisible(){var e;return(e=this._contentWidget)===null||e===void 0?void 0:e.isVisible}dispose(){var e,t;super.dispose(),this._unhookListeners(),this._listenersStore.dispose(),(e=this._glyphWidget)===null||e===void 0||e.dispose(),(t=this._contentWidget)===null||t===void 0||t.dispose()}};gr.ID=\"editor.contrib.hover\";gr=lW=hXe([Jee(1,ht),Jee(2,Li)],gr);class cW extends ne{constructor(e){super(),this._editor=e,this._register(e.onMouseDown(t=>this.onMouseDown(t)))}dispose(){super.dispose()}onMouseDown(e){const t=this._editor.getOption(148);if(t!==\"click\"&&t!==\"clickAndHover\")return;const i=e.target;if(i.type!==6||!i.detail.injectedText||i.detail.injectedText.options.attachedData!==vfe||!i.range)return;const s=this._editor.getContribution(gr.ID);if(s&&!s.isColorPickerVisible){const o=new A(i.range.startLineNumber,i.range.startColumn+1,i.range.endLineNumber,i.range.endColumn+1);s.showContentHover(o,1,0,!1,!0)}}}cW.ID=\"editor.contrib.colorContribution\";bi(cW.ID,cW,2);b_.register(uR);var Zfe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Md=function(n,e){return function(t,i){e(t,i,n)}},dW,uW;let e_=dW=class extends ne{constructor(e,t,i,s,o,r,a){super(),this._editor=e,this._modelService=i,this._keybindingService=s,this._instantiationService=o,this._languageFeatureService=r,this._languageConfigurationService=a,this._standaloneColorPickerWidget=null,this._standaloneColorPickerVisible=W.standaloneColorPickerVisible.bindTo(t),this._standaloneColorPickerFocused=W.standaloneColorPickerFocused.bindTo(t)}showOrFocus(){var e;this._editor.hasModel()&&(this._standaloneColorPickerVisible.get()?this._standaloneColorPickerFocused.get()||(e=this._standaloneColorPickerWidget)===null||e===void 0||e.focus():this._standaloneColorPickerWidget=new vR(this._editor,this._standaloneColorPickerVisible,this._standaloneColorPickerFocused,this._instantiationService,this._modelService,this._keybindingService,this._languageFeatureService,this._languageConfigurationService))}hide(){var e;this._standaloneColorPickerFocused.set(!1),this._standaloneColorPickerVisible.set(!1),(e=this._standaloneColorPickerWidget)===null||e===void 0||e.hide(),this._editor.focus()}insertColor(){var e;(e=this._standaloneColorPickerWidget)===null||e===void 0||e.updateEditor(),this.hide()}static get(e){return e.getContribution(dW.ID)}};e_.ID=\"editor.contrib.standaloneColorPickerController\";e_=dW=Zfe([Md(1,Ct),Md(2,Pn),Md(3,Li),Md(4,ht),Md(5,Xe),Md(6,gn)],e_);bi(e_.ID,e_,1);const ete=8,fXe=22;let vR=uW=class extends ne{constructor(e,t,i,s,o,r,a,l){var c;super(),this._editor=e,this._standaloneColorPickerVisible=t,this._standaloneColorPickerFocused=i,this._modelService=o,this._keybindingService=r,this._languageFeaturesService=a,this._languageConfigurationService=l,this.allowEditorOverflow=!0,this._position=void 0,this._body=document.createElement(\"div\"),this._colorHover=null,this._selectionSetInEditor=!1,this._onResult=this._register(new X),this.onResult=this._onResult.event,this._standaloneColorPickerVisible.set(!0),this._standaloneColorPickerParticipant=s.createInstance(fk,this._editor),this._position=(c=this._editor._getViewModel())===null||c===void 0?void 0:c.getPrimaryCursorState().modelState.position;const d=this._editor.getSelection(),u=d?{startLineNumber:d.startLineNumber,startColumn:d.startColumn,endLineNumber:d.endLineNumber,endColumn:d.endColumn}:{startLineNumber:0,endLineNumber:0,endColumn:0,startColumn:0},h=this._register(ou(this._body));this._register(h.onDidBlur(f=>{this.hide()})),this._register(h.onDidFocus(f=>{this.focus()})),this._register(this._editor.onDidChangeCursorPosition(()=>{this._selectionSetInEditor?this._selectionSetInEditor=!1:this.hide()})),this._register(this._editor.onMouseMove(f=>{var g;const p=(g=f.target.element)===null||g===void 0?void 0:g.classList;p&&p.contains(\"colorpicker-color-decoration\")&&this.hide()})),this._register(this.onResult(f=>{this._render(f.value,f.foundInEditor)})),this._start(u),this._body.style.zIndex=\"50\",this._editor.addContentWidget(this)}updateEditor(){this._colorHover&&this._standaloneColorPickerParticipant.updateEditorModel(this._colorHover)}getId(){return uW.ID}getDomNode(){return this._body}getPosition(){if(!this._position)return null;const e=this._editor.getOption(60).above;return{position:this._position,secondaryPosition:this._position,preference:e?[1,2]:[2,1],positionAffinity:2}}hide(){this.dispose(),this._standaloneColorPickerVisible.set(!1),this._standaloneColorPickerFocused.set(!1),this._editor.removeContentWidget(this),this._editor.focus()}focus(){this._standaloneColorPickerFocused.set(!0),this._body.focus()}async _start(e){const t=await this._computeAsync(e);t&&this._onResult.fire(new gXe(t.result,t.foundInEditor))}async _computeAsync(e){if(!this._editor.hasModel())return null;const t={range:e,color:{red:0,green:0,blue:0,alpha:1}},i=await this._standaloneColorPickerParticipant.createColorHover(t,new bU(this._modelService,this._languageConfigurationService),this._languageFeaturesService.colorProvider);return i?{result:i.colorHover,foundInEditor:i.foundInEditor}:null}_render(e,t){const i=document.createDocumentFragment(),s=this._register(new mR(this._keybindingService));let o;const r={fragment:i,statusBar:s,setColorPicker:p=>o=p,onContentsChanged:()=>{},hide:()=>this.hide()};if(this._colorHover=e,this._register(this._standaloneColorPickerParticipant.renderHoverParts(r,[e])),o===void 0)return;this._body.classList.add(\"standalone-colorpicker-body\"),this._body.style.maxHeight=Math.max(this._editor.getLayoutInfo().height/4,250)+\"px\",this._body.style.maxWidth=Math.max(this._editor.getLayoutInfo().width*.66,500)+\"px\",this._body.tabIndex=0,this._body.appendChild(i),o.layout();const a=o.body,l=a.saturationBox.domNode.clientWidth,c=a.domNode.clientWidth-l-fXe-ete,d=o.body.enterButton;d==null||d.onClicked(()=>{this.updateEditor(),this.hide()});const u=o.header,h=u.pickedColorNode;h.style.width=l+ete+\"px\";const f=u.originalColorNode;f.style.width=c+\"px\";const g=o.header.closeButton;g==null||g.onClicked(()=>{this.hide()}),t&&(d&&(d.button.textContent=\"Replace\"),this._selectionSetInEditor=!0,this._editor.setSelection(e.range)),this._editor.layoutContentWidget(this)}};vR.ID=\"editor.contrib.standaloneColorPickerWidget\";vR=uW=Zfe([Md(3,ht),Md(4,Pn),Md(5,Li),Md(6,Xe),Md(7,gn)],vR);class gXe{constructor(e,t){this.value=e,this.foundInEditor=t}}class pXe extends mu{constructor(){super({id:\"editor.action.showOrFocusStandaloneColorPicker\",title:{...Nt(\"showOrFocusStandaloneColorPicker\",\"Show or Focus Standalone Color Picker\"),mnemonicTitle:v({},\"&&Show or Focus Standalone Color Picker\")},precondition:void 0,menu:[{id:R.CommandPalette}],metadata:{description:Nt(\"showOrFocusStandaloneColorPickerDescription\",\"Show or focus a standalone color picker which uses the default color provider. It displays hex/rgb/hsl colors.\")}})}runEditorCommand(e,t){var i;(i=e_.get(t))===null||i===void 0||i.showOrFocus()}}class mXe extends Ke{constructor(){super({id:\"editor.action.hideColorPicker\",label:v({},\"Hide the Color Picker\"),alias:\"Hide the Color Picker\",precondition:W.standaloneColorPickerVisible.isEqualTo(!0),kbOpts:{primary:9,weight:100},metadata:{description:Nt(\"hideColorPickerDescription\",\"Hide the standalone color picker.\")}})}run(e,t){var i;(i=e_.get(t))===null||i===void 0||i.hide()}}class _Xe extends Ke{constructor(){super({id:\"editor.action.insertColorWithStandaloneColorPicker\",label:v({},\"Insert Color with Standalone Color Picker\"),alias:\"Insert Color with Standalone Color Picker\",precondition:W.standaloneColorPickerFocused.isEqualTo(!0),kbOpts:{primary:3,weight:100},metadata:{description:Nt(\"insertColorWithStandaloneColorPickerDescription\",\"Insert hex/rgb/hsl colors with the focused standalone color picker.\")}})}run(e,t){var i;(i=e_.get(t))===null||i===void 0||i.insertColor()}}xe(mXe);xe(_Xe);dn(pXe);class im{constructor(e,t,i){this.languageConfigurationService=i,this._selection=e,this._insertSpace=t,this._usedEndToken=null}static _haystackHasNeedleAtOffset(e,t,i){if(i<0)return!1;const s=t.length,o=e.length;if(i+s>o)return!1;for(let r=0;r<s;r++){const a=e.charCodeAt(i+r),l=t.charCodeAt(r);if(a!==l&&!(a>=65&&a<=90&&a+32===l)&&!(l>=65&&l<=90&&l+32===a))return!1}return!0}_createOperationsForBlockComment(e,t,i,s,o,r){const a=e.startLineNumber,l=e.startColumn,c=e.endLineNumber,d=e.endColumn,u=o.getLineContent(a),h=o.getLineContent(c);let f=u.lastIndexOf(t,l-1+t.length),g=h.indexOf(i,d-1-i.length);if(f!==-1&&g!==-1)if(a===c)u.substring(f+t.length,g).indexOf(i)>=0&&(f=-1,g=-1);else{const _=u.substring(f+t.length),b=h.substring(0,g);(_.indexOf(i)>=0||b.indexOf(i)>=0)&&(f=-1,g=-1)}let p;f!==-1&&g!==-1?(s&&f+t.length<u.length&&u.charCodeAt(f+t.length)===32&&(t=t+\" \"),s&&g>0&&h.charCodeAt(g-1)===32&&(i=\" \"+i,g-=1),p=im._createRemoveBlockCommentOperations(new A(a,f+t.length+1,c,g+1),t,i)):(p=im._createAddBlockCommentOperations(e,t,i,this._insertSpace),this._usedEndToken=p.length===1?i:null);for(const _ of p)r.addTrackedEditOperation(_.range,_.text)}static _createRemoveBlockCommentOperations(e,t,i){const s=[];return A.isEmpty(e)?s.push(Mn.delete(new A(e.startLineNumber,e.startColumn-t.length,e.endLineNumber,e.endColumn+i.length))):(s.push(Mn.delete(new A(e.startLineNumber,e.startColumn-t.length,e.startLineNumber,e.startColumn))),s.push(Mn.delete(new A(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn+i.length)))),s}static _createAddBlockCommentOperations(e,t,i,s){const o=[];return A.isEmpty(e)?o.push(Mn.replace(new A(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),t+\"  \"+i)):(o.push(Mn.insert(new ee(e.startLineNumber,e.startColumn),t+(s?\" \":\"\"))),o.push(Mn.insert(new ee(e.endLineNumber,e.endColumn),(s?\" \":\"\")+i))),o}getEditOperations(e,t){const i=this._selection.startLineNumber,s=this._selection.startColumn;e.tokenization.tokenizeIfCheap(i);const o=e.getLanguageIdAtPosition(i,s),r=this.languageConfigurationService.getLanguageConfiguration(o).comments;!r||!r.blockCommentStartToken||!r.blockCommentEndToken||this._createOperationsForBlockComment(this._selection,r.blockCommentStartToken,r.blockCommentEndToken,this._insertSpace,e,t)}computeCursorState(e,t){const i=t.getInverseEditOperations();if(i.length===2){const s=i[0],o=i[1];return new it(s.range.endLineNumber,s.range.endColumn,o.range.startLineNumber,o.range.startColumn)}else{const s=i[0].range,o=this._usedEndToken?-this._usedEndToken.length-1:0;return new it(s.endLineNumber,s.endColumn+o,s.endLineNumber,s.endColumn+o)}}}class If{constructor(e,t,i,s,o,r,a){this.languageConfigurationService=e,this._selection=t,this._indentSize=i,this._type=s,this._insertSpace=o,this._selectionId=null,this._deltaColumn=0,this._moveEndPositionDown=!1,this._ignoreEmptyLines=r,this._ignoreFirstLine=a||!1}static _gatherPreflightCommentStrings(e,t,i,s){e.tokenization.tokenizeIfCheap(t);const o=e.getLanguageIdAtPosition(t,1),r=s.getLanguageConfiguration(o).comments,a=r?r.lineCommentToken:null;if(!a)return null;const l=[];for(let c=0,d=i-t+1;c<d;c++)l[c]={ignore:!1,commentStr:a,commentStrOffset:0,commentStrLength:a.length};return l}static _analyzeLines(e,t,i,s,o,r,a,l){let c=!0,d;e===0?d=!0:e===1?d=!1:d=!0;for(let u=0,h=s.length;u<h;u++){const f=s[u],g=o+u;if(g===o&&a){f.ignore=!0;continue}const p=i.getLineContent(g),_=fr(p);if(_===-1){f.ignore=r,f.commentStrOffset=p.length;continue}if(c=!1,f.ignore=!1,f.commentStrOffset=_,d&&!im._haystackHasNeedleAtOffset(p,f.commentStr,_)&&(e===0?d=!1:e===1||(f.ignore=!0)),d&&t){const b=_+f.commentStrLength;b<p.length&&p.charCodeAt(b)===32&&(f.commentStrLength+=1)}}if(e===0&&c){d=!1;for(let u=0,h=s.length;u<h;u++)s[u].ignore=!1}return{supported:!0,shouldRemoveComments:d,lines:s}}static _gatherPreflightData(e,t,i,s,o,r,a,l){const c=If._gatherPreflightCommentStrings(i,s,o,l);return c===null?{supported:!1}:If._analyzeLines(e,t,i,c,s,r,a,l)}_executeLineComments(e,t,i,s){let o;i.shouldRemoveComments?o=If._createRemoveLineCommentsOperations(i.lines,s.startLineNumber):(If._normalizeInsertionPoint(e,i.lines,s.startLineNumber,this._indentSize),o=this._createAddLineCommentsOperations(i.lines,s.startLineNumber));const r=new ee(s.positionLineNumber,s.positionColumn);for(let a=0,l=o.length;a<l;a++)t.addEditOperation(o[a].range,o[a].text),A.isEmpty(o[a].range)&&A.getStartPosition(o[a].range).equals(r)&&e.getLineContent(r.lineNumber).length+1===r.column&&(this._deltaColumn=(o[a].text||\"\").length);this._selectionId=t.trackSelection(s)}_attemptRemoveBlockComment(e,t,i,s){let o=t.startLineNumber,r=t.endLineNumber;const a=s.length+Math.max(e.getLineFirstNonWhitespaceColumn(t.startLineNumber),t.startColumn);let l=e.getLineContent(o).lastIndexOf(i,a-1),c=e.getLineContent(r).indexOf(s,t.endColumn-1-i.length);return l!==-1&&c===-1&&(c=e.getLineContent(o).indexOf(s,l+i.length),r=o),l===-1&&c!==-1&&(l=e.getLineContent(r).lastIndexOf(i,c),o=r),t.isEmpty()&&(l===-1||c===-1)&&(l=e.getLineContent(o).indexOf(i),l!==-1&&(c=e.getLineContent(o).indexOf(s,l+i.length))),l!==-1&&e.getLineContent(o).charCodeAt(l+i.length)===32&&(i+=\" \"),c!==-1&&e.getLineContent(r).charCodeAt(c-1)===32&&(s=\" \"+s,c-=1),l!==-1&&c!==-1?im._createRemoveBlockCommentOperations(new A(o,l+i.length+1,r,c+1),i,s):null}_executeBlockComment(e,t,i){e.tokenization.tokenizeIfCheap(i.startLineNumber);const s=e.getLanguageIdAtPosition(i.startLineNumber,1),o=this.languageConfigurationService.getLanguageConfiguration(s).comments;if(!o||!o.blockCommentStartToken||!o.blockCommentEndToken)return;const r=o.blockCommentStartToken,a=o.blockCommentEndToken;let l=this._attemptRemoveBlockComment(e,i,r,a);if(!l){if(i.isEmpty()){const c=e.getLineContent(i.startLineNumber);let d=fr(c);d===-1&&(d=c.length),l=im._createAddBlockCommentOperations(new A(i.startLineNumber,d+1,i.startLineNumber,c.length+1),r,a,this._insertSpace)}else l=im._createAddBlockCommentOperations(new A(i.startLineNumber,e.getLineFirstNonWhitespaceColumn(i.startLineNumber),i.endLineNumber,e.getLineMaxColumn(i.endLineNumber)),r,a,this._insertSpace);l.length===1&&(this._deltaColumn=r.length+1)}this._selectionId=t.trackSelection(i);for(const c of l)t.addEditOperation(c.range,c.text)}getEditOperations(e,t){let i=this._selection;if(this._moveEndPositionDown=!1,i.startLineNumber===i.endLineNumber&&this._ignoreFirstLine){t.addEditOperation(new A(i.startLineNumber,e.getLineMaxColumn(i.startLineNumber),i.startLineNumber+1,1),i.startLineNumber===e.getLineCount()?\"\":`\n`),this._selectionId=t.trackSelection(i);return}i.startLineNumber<i.endLineNumber&&i.endColumn===1&&(this._moveEndPositionDown=!0,i=i.setEndPosition(i.endLineNumber-1,e.getLineMaxColumn(i.endLineNumber-1)));const s=If._gatherPreflightData(this._type,this._insertSpace,e,i.startLineNumber,i.endLineNumber,this._ignoreEmptyLines,this._ignoreFirstLine,this.languageConfigurationService);return s.supported?this._executeLineComments(e,t,s,i):this._executeBlockComment(e,t,i)}computeCursorState(e,t){let i=t.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(i=i.setEndPosition(i.endLineNumber+1,1)),new it(i.selectionStartLineNumber,i.selectionStartColumn+this._deltaColumn,i.positionLineNumber,i.positionColumn+this._deltaColumn)}static _createRemoveLineCommentsOperations(e,t){const i=[];for(let s=0,o=e.length;s<o;s++){const r=e[s];r.ignore||i.push(Mn.delete(new A(t+s,r.commentStrOffset+1,t+s,r.commentStrOffset+r.commentStrLength+1)))}return i}_createAddLineCommentsOperations(e,t){const i=[],s=this._insertSpace?\" \":\"\";for(let o=0,r=e.length;o<r;o++){const a=e[o];a.ignore||i.push(Mn.insert(new ee(t+o,a.commentStrOffset+1),a.commentStr+s))}return i}static nextVisibleColumn(e,t,i,s){return i?e+(t-e%t):e+s}static _normalizeInsertionPoint(e,t,i,s){let o=1073741824,r,a;for(let l=0,c=t.length;l<c;l++){if(t[l].ignore)continue;const d=e.getLineContent(i+l);let u=0;for(let h=0,f=t[l].commentStrOffset;u<o&&h<f;h++)u=If.nextVisibleColumn(u,s,d.charCodeAt(h)===9,1);u<o&&(o=u)}o=Math.floor(o/s)*s;for(let l=0,c=t.length;l<c;l++){if(t[l].ignore)continue;const d=e.getLineContent(i+l);let u=0;for(r=0,a=t[l].commentStrOffset;u<o&&r<a;r++)u=If.nextVisibleColumn(u,s,d.charCodeAt(r)===9,1);u>o?t[l].commentStrOffset=r-1:t[l].commentStrOffset=r}}}class kU extends Ke{constructor(e,t){super(t),this._type=e}run(e,t){const i=e.get(gn);if(!t.hasModel())return;const s=t.getModel(),o=[],r=s.getOptions(),a=t.getOption(23),l=t.getSelections().map((d,u)=>({selection:d,index:u,ignoreFirstLine:!1}));l.sort((d,u)=>A.compareRangesUsingStarts(d.selection,u.selection));let c=l[0];for(let d=1;d<l.length;d++){const u=l[d];c.selection.endLineNumber===u.selection.startLineNumber&&(c.index<u.index?u.ignoreFirstLine=!0:(c.ignoreFirstLine=!0,c=u))}for(const d of l)o.push(new If(i,d.selection,r.indentSize,this._type,a.insertSpace,a.ignoreEmptyLines,d.ignoreFirstLine));t.pushUndoStop(),t.executeCommands(this.id,o),t.pushUndoStop()}}class vXe extends kU{constructor(){super(0,{id:\"editor.action.commentLine\",label:v(\"comment.line\",\"Toggle Line Comment\"),alias:\"Toggle Line Comment\",precondition:W.writable,kbOpts:{kbExpr:W.editorTextFocus,primary:2138,weight:100},menuOpts:{menuId:R.MenubarEditMenu,group:\"5_insert\",title:v({},\"&&Toggle Line Comment\"),order:1}})}}class bXe extends kU{constructor(){super(1,{id:\"editor.action.addCommentLine\",label:v(\"comment.line.add\",\"Add Line Comment\"),alias:\"Add Line Comment\",precondition:W.writable,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2081),weight:100}})}}class CXe extends kU{constructor(){super(2,{id:\"editor.action.removeCommentLine\",label:v(\"comment.line.remove\",\"Remove Line Comment\"),alias:\"Remove Line Comment\",precondition:W.writable,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2099),weight:100}})}}class wXe extends Ke{constructor(){super({id:\"editor.action.blockComment\",label:v(\"comment.block\",\"Toggle Block Comment\"),alias:\"Toggle Block Comment\",precondition:W.writable,kbOpts:{kbExpr:W.editorTextFocus,primary:1567,linux:{primary:3103},weight:100},menuOpts:{menuId:R.MenubarEditMenu,group:\"5_insert\",title:v({},\"Toggle &&Block Comment\"),order:2}})}run(e,t){const i=e.get(gn);if(!t.hasModel())return;const s=t.getOption(23),o=[],r=t.getSelections();for(const a of r)o.push(new im(a,s.insertSpace,i));t.pushUndoStop(),t.executeCommands(this.id,o),t.pushUndoStop()}}xe(vXe);xe(bXe);xe(CXe);xe(wXe);var yXe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Z_=function(n,e){return function(t,i){e(t,i,n)}},hW;let dw=hW=class{static get(e){return e.getContribution(hW.ID)}constructor(e,t,i,s,o,r,a,l){this._contextMenuService=t,this._contextViewService=i,this._contextKeyService=s,this._keybindingService=o,this._menuService=r,this._configurationService=a,this._workspaceContextService=l,this._toDispose=new be,this._contextMenuIsBeingShownCount=0,this._editor=e,this._toDispose.add(this._editor.onContextMenu(c=>this._onContextMenu(c))),this._toDispose.add(this._editor.onMouseWheel(c=>{if(this._contextMenuIsBeingShownCount>0){const d=this._contextViewService.getContextViewElement(),u=c.srcElement;u.shadowRoot&&h0(d)===u.shadowRoot||this._contextViewService.hideContextView()}})),this._toDispose.add(this._editor.onKeyDown(c=>{this._editor.getOption(24)&&c.keyCode===58&&(c.preventDefault(),c.stopPropagation(),this.showContextMenu())}))}_onContextMenu(e){if(!this._editor.hasModel())return;if(!this._editor.getOption(24)){this._editor.focus(),e.target.position&&!this._editor.getSelection().containsPosition(e.target.position)&&this._editor.setPosition(e.target.position);return}if(e.target.type===12||e.target.type===6&&e.target.detail.injectedText)return;if(e.event.preventDefault(),e.event.stopPropagation(),e.target.type===11)return this._showScrollbarContextMenu(e.event);if(e.target.type!==6&&e.target.type!==7&&e.target.type!==1)return;if(this._editor.focus(),e.target.position){let i=!1;for(const s of this._editor.getSelections())if(s.containsPosition(e.target.position)){i=!0;break}i||this._editor.setPosition(e.target.position)}let t=null;e.target.type!==1&&(t=e.event),this.showContextMenu(t)}showContextMenu(e){if(!this._editor.getOption(24)||!this._editor.hasModel())return;const t=this._getMenuActions(this._editor.getModel(),this._editor.contextMenuId);t.length>0&&this._doShowContextMenu(t,e)}_getMenuActions(e,t){const i=[],s=this._menuService.createMenu(t,this._contextKeyService),o=s.getActions({arg:e.uri});s.dispose();for(const r of o){const[,a]=r;let l=0;for(const c of a)if(c instanceof q1){const d=this._getMenuActions(e,c.item.submenu);d.length>0&&(i.push(new NC(c.id,c.label,d)),l++)}else i.push(c),l++;l&&i.push(new Ms)}return i.length&&i.pop(),i}_doShowContextMenu(e,t=null){if(!this._editor.hasModel())return;const i=this._editor.getOption(60);this._editor.updateOptions({hover:{enabled:!1}});let s=t;if(!s){this._editor.revealPosition(this._editor.getPosition(),1),this._editor.render();const r=this._editor.getScrolledVisiblePosition(this._editor.getPosition()),a=bs(this._editor.getDomNode()),l=a.left+r.left,c=a.top+r.top+r.height;s={x:l,y:c}}const o=this._editor.getOption(127)&&!iu;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:o?this._editor.getDomNode():void 0,getAnchor:()=>s,getActions:()=>e,getActionViewItem:r=>{const a=this._keybindingFor(r);if(a)return new QC(r,r,{label:!0,keybinding:a.getLabel(),isMenu:!0});const l=r;return typeof l.getActionViewItem==\"function\"?l.getActionViewItem():new QC(r,r,{icon:!0,label:!0,isMenu:!0})},getKeyBinding:r=>this._keybindingFor(r),onHide:r=>{this._contextMenuIsBeingShownCount--,this._editor.updateOptions({hover:i})}})}_showScrollbarContextMenu(e){if(!this._editor.hasModel()||AHe(this._workspaceContextService.getWorkspace()))return;const t=this._editor.getOption(73);let i=0;const s=c=>({id:`menu-action-${++i}`,label:c.label,tooltip:\"\",class:void 0,enabled:typeof c.enabled>\"u\"?!0:c.enabled,checked:c.checked,run:c.run}),o=(c,d)=>new NC(`menu-action-${++i}`,c,d,void 0),r=(c,d,u,h,f)=>{if(!d)return s({label:c,enabled:d,run:()=>{}});const g=_=>()=>{this._configurationService.updateValue(u,_)},p=[];for(const _ of f)p.push(s({label:_.label,checked:h===_.value,run:g(_.value)}));return o(c,p)},a=[];a.push(s({label:v(\"context.minimap.minimap\",\"Minimap\"),checked:t.enabled,run:()=>{this._configurationService.updateValue(\"editor.minimap.enabled\",!t.enabled)}})),a.push(new Ms),a.push(s({label:v(\"context.minimap.renderCharacters\",\"Render Characters\"),enabled:t.enabled,checked:t.renderCharacters,run:()=>{this._configurationService.updateValue(\"editor.minimap.renderCharacters\",!t.renderCharacters)}})),a.push(r(v(\"context.minimap.size\",\"Vertical size\"),t.enabled,\"editor.minimap.size\",t.size,[{label:v(\"context.minimap.size.proportional\",\"Proportional\"),value:\"proportional\"},{label:v(\"context.minimap.size.fill\",\"Fill\"),value:\"fill\"},{label:v(\"context.minimap.size.fit\",\"Fit\"),value:\"fit\"}])),a.push(r(v(\"context.minimap.slider\",\"Slider\"),t.enabled,\"editor.minimap.showSlider\",t.showSlider,[{label:v(\"context.minimap.slider.mouseover\",\"Mouse Over\"),value:\"mouseover\"},{label:v(\"context.minimap.slider.always\",\"Always\"),value:\"always\"}]));const l=this._editor.getOption(127)&&!iu;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:l?this._editor.getDomNode():void 0,getAnchor:()=>e,getActions:()=>a,onHide:c=>{this._contextMenuIsBeingShownCount--,this._editor.focus()}})}_keybindingFor(e){return this._keybindingService.lookupKeybinding(e.id)}dispose(){this._contextMenuIsBeingShownCount>0&&this._contextViewService.hideContextView(),this._toDispose.dispose()}};dw.ID=\"editor.contrib.contextmenu\";dw=hW=yXe([Z_(1,za),Z_(2,Wg),Z_(3,Ct),Z_(4,Li),Z_(5,Dl),Z_(6,qt),Z_(7,b0)],dw);class SXe extends Ke{constructor(){super({id:\"editor.action.showContextMenu\",label:v(\"action.showContextMenu.label\",\"Show Editor Context Menu\"),alias:\"Show Editor Context Menu\",precondition:void 0,kbOpts:{kbExpr:W.textInputFocus,primary:1092,weight:100}})}run(e,t){var i;(i=dw.get(t))===null||i===void 0||i.showContextMenu()}}bi(dw.ID,dw,2);xe(SXe);class r3{constructor(e){this.selections=e}equals(e){const t=this.selections.length,i=e.selections.length;if(t!==i)return!1;for(let s=0;s<t;s++)if(!this.selections[s].equalsSelection(e.selections[s]))return!1;return!0}}class a3{constructor(e,t,i){this.cursorState=e,this.scrollTop=t,this.scrollLeft=i}}class T0 extends ne{static get(e){return e.getContribution(T0.ID)}constructor(e){super(),this._editor=e,this._isCursorUndoRedo=!1,this._undoStack=[],this._redoStack=[],this._register(e.onDidChangeModel(t=>{this._undoStack=[],this._redoStack=[]})),this._register(e.onDidChangeModelContent(t=>{this._undoStack=[],this._redoStack=[]})),this._register(e.onDidChangeCursorSelection(t=>{if(this._isCursorUndoRedo||!t.oldSelections||t.oldModelVersionId!==t.modelVersionId)return;const i=new r3(t.oldSelections);this._undoStack.length>0&&this._undoStack[this._undoStack.length-1].cursorState.equals(i)||(this._undoStack.push(new a3(i,e.getScrollTop(),e.getScrollLeft())),this._redoStack=[],this._undoStack.length>50&&this._undoStack.shift())}))}cursorUndo(){!this._editor.hasModel()||this._undoStack.length===0||(this._redoStack.push(new a3(new r3(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._undoStack.pop()))}cursorRedo(){!this._editor.hasModel()||this._redoStack.length===0||(this._undoStack.push(new a3(new r3(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._redoStack.pop()))}_applyState(e){this._isCursorUndoRedo=!0,this._editor.setSelections(e.cursorState.selections),this._editor.setScrollPosition({scrollTop:e.scrollTop,scrollLeft:e.scrollLeft}),this._isCursorUndoRedo=!1}}T0.ID=\"editor.contrib.cursorUndoRedoController\";class xXe extends Ke{constructor(){super({id:\"cursorUndo\",label:v(\"cursor.undo\",\"Cursor Undo\"),alias:\"Cursor Undo\",precondition:void 0,kbOpts:{kbExpr:W.textInputFocus,primary:2099,weight:100}})}run(e,t,i){var s;(s=T0.get(t))===null||s===void 0||s.cursorUndo()}}class LXe extends Ke{constructor(){super({id:\"cursorRedo\",label:v(\"cursor.redo\",\"Cursor Redo\"),alias:\"Cursor Redo\",precondition:void 0})}run(e,t,i){var s;(s=T0.get(t))===null||s===void 0||s.cursorRedo()}}bi(T0.ID,T0,0);xe(xXe);xe(LXe);class kXe{constructor(e,t,i){this.selection=e,this.targetPosition=t,this.copy=i,this.targetSelection=null}getEditOperations(e,t){const i=e.getValueInRange(this.selection);if(this.copy||t.addEditOperation(this.selection,null),t.addEditOperation(new A(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column),i),this.selection.containsPosition(this.targetPosition)&&!(this.copy&&(this.selection.getEndPosition().equals(this.targetPosition)||this.selection.getStartPosition().equals(this.targetPosition)))){this.targetSelection=this.selection;return}if(this.copy){this.targetSelection=new it(this.targetPosition.lineNumber,this.targetPosition.column,this.selection.endLineNumber-this.selection.startLineNumber+this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.targetPosition.lineNumber>this.selection.endLineNumber){this.targetSelection=new it(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.targetPosition.lineNumber<this.selection.endLineNumber){this.targetSelection=new it(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber+this.selection.endLineNumber-this.selection.startLineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}this.selection.endColumn<=this.targetPosition.column?this.targetSelection=new it(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column-this.selection.endColumn+this.selection.startColumn:this.targetPosition.column-this.selection.endColumn+this.selection.startColumn,this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column:this.selection.endColumn):this.targetSelection=new it(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column+this.selection.endColumn-this.selection.startColumn)}computeCursorState(e,t){return this.targetSelection}}function jb(n){return Xt?n.altKey:n.ctrlKey}class Cg extends ne{constructor(e){super(),this._editor=e,this._dndDecorationIds=this._editor.createDecorationsCollection(),this._register(this._editor.onMouseDown(t=>this._onEditorMouseDown(t))),this._register(this._editor.onMouseUp(t=>this._onEditorMouseUp(t))),this._register(this._editor.onMouseDrag(t=>this._onEditorMouseDrag(t))),this._register(this._editor.onMouseDrop(t=>this._onEditorMouseDrop(t))),this._register(this._editor.onMouseDropCanceled(()=>this._onEditorMouseDropCanceled())),this._register(this._editor.onKeyDown(t=>this.onEditorKeyDown(t))),this._register(this._editor.onKeyUp(t=>this.onEditorKeyUp(t))),this._register(this._editor.onDidBlurEditorWidget(()=>this.onEditorBlur())),this._register(this._editor.onDidBlurEditorText(()=>this.onEditorBlur())),this._mouseDown=!1,this._modifierPressed=!1,this._dragSelection=null}onEditorBlur(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1}onEditorKeyDown(e){!this._editor.getOption(35)||this._editor.getOption(22)||(jb(e)&&(this._modifierPressed=!0),this._mouseDown&&jb(e)&&this._editor.updateOptions({mouseStyle:\"copy\"}))}onEditorKeyUp(e){!this._editor.getOption(35)||this._editor.getOption(22)||(jb(e)&&(this._modifierPressed=!1),this._mouseDown&&e.keyCode===Cg.TRIGGER_KEY_VALUE&&this._editor.updateOptions({mouseStyle:\"default\"}))}_onEditorMouseDown(e){this._mouseDown=!0}_onEditorMouseUp(e){this._mouseDown=!1,this._editor.updateOptions({mouseStyle:\"text\"})}_onEditorMouseDrag(e){const t=e.target;if(this._dragSelection===null){const s=(this._editor.getSelections()||[]).filter(o=>t.position&&o.containsPosition(t.position));if(s.length===1)this._dragSelection=s[0];else return}jb(e.event)?this._editor.updateOptions({mouseStyle:\"copy\"}):this._editor.updateOptions({mouseStyle:\"default\"}),t.position&&(this._dragSelection.containsPosition(t.position)?this._removeDecoration():this.showAt(t.position))}_onEditorMouseDropCanceled(){this._editor.updateOptions({mouseStyle:\"text\"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}_onEditorMouseDrop(e){if(e.target&&(this._hitContent(e.target)||this._hitMargin(e.target))&&e.target.position){const t=new ee(e.target.position.lineNumber,e.target.position.column);if(this._dragSelection===null){let i=null;if(e.event.shiftKey){const s=this._editor.getSelection();if(s){const{selectionStartLineNumber:o,selectionStartColumn:r}=s;i=[new it(o,r,t.lineNumber,t.column)]}}else i=(this._editor.getSelections()||[]).map(s=>s.containsPosition(t)?new it(t.lineNumber,t.column,t.lineNumber,t.column):s);this._editor.setSelections(i||[],\"mouse\",3)}else(!this._dragSelection.containsPosition(t)||(jb(e.event)||this._modifierPressed)&&(this._dragSelection.getEndPosition().equals(t)||this._dragSelection.getStartPosition().equals(t)))&&(this._editor.pushUndoStop(),this._editor.executeCommand(Cg.ID,new kXe(this._dragSelection,t,jb(e.event)||this._modifierPressed)),this._editor.pushUndoStop())}this._editor.updateOptions({mouseStyle:\"text\"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}showAt(e){this._dndDecorationIds.set([{range:new A(e.lineNumber,e.column,e.lineNumber,e.column),options:Cg._DECORATION_OPTIONS}]),this._editor.revealPosition(e,1)}_removeDecoration(){this._dndDecorationIds.clear()}_hitContent(e){return e.type===6||e.type===7}_hitMargin(e){return e.type===2||e.type===3||e.type===4}dispose(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1,super.dispose()}}Cg.ID=\"editor.contrib.dragAndDrop\";Cg.TRIGGER_KEY_VALUE=Xt?6:5;Cg._DECORATION_OPTIONS=Wt.register({description:\"dnd-target\",className:\"dnd-target\"});bi(Cg.ID,Cg,2);var ST;bi(Oh.ID,Oh,0);WD(W6);Fe(new class extends Us{constructor(){super({id:Qhe,precondition:fU,kbOpts:{weight:100,primary:2137}})}runEditorCommand(n,e){var t;return(t=Oh.get(e))===null||t===void 0?void 0:t.changePasteType()}});Fe(new class extends Us{constructor(){super({id:\"editor.hidePasteWidget\",precondition:fU,kbOpts:{weight:100,primary:9}})}runEditorCommand(n,e){var t;(t=Oh.get(e))===null||t===void 0||t.clearWidgets()}});xe((ST=class extends Ke{constructor(){super({id:\"editor.action.pasteAs\",label:v(\"pasteAs\",\"Paste As...\"),alias:\"Paste As...\",precondition:W.writable,metadata:{description:\"Paste as\",args:[{name:\"args\",schema:ST.argsSchema}]}})}run(e,t,i){var s;let o=typeof(i==null?void 0:i.kind)==\"string\"?i.kind:void 0;return!o&&i&&(o=typeof i.id==\"string\"?i.id:void 0),(s=Oh.get(t))===null||s===void 0?void 0:s.pasteAs(o?new Yi(o):void 0)}},ST.argsSchema={type:\"object\",properties:{kind:{type:\"string\",description:v(\"pasteAs.kind\",\"The kind of the paste edit to try applying. If not provided or there are multiple edits for this kind, the editor will show a picker.\")}}},ST));xe(class extends Ke{constructor(){super({id:\"editor.action.pasteAsText\",label:v(\"pasteAsText\",\"Paste as Text\"),alias:\"Paste as Text\",precondition:W.writable})}run(n,e){var t;return(t=Oh.get(e))===null||t===void 0?void 0:t.pasteAs({providerId:Ag.id})}});class DXe{constructor(){this._dragOperations=new Map}removeDragOperationTransfer(e){if(e&&this._dragOperations.has(e)){const t=this._dragOperations.get(e);return this._dragOperations.delete(e),t}}}class tte{constructor(e){this.identifier=e}}const Yfe=Jt(\"treeViewsDndService\");ai(Yfe,DXe,1);var IXe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},xT=function(n,e){return function(t,i){e(t,i,n)}},fW;const Xfe=\"editor.experimental.dropIntoEditor.defaultProvider\",Qfe=\"editor.changeDropType\",DU=new He(\"dropWidgetVisible\",!1,v(\"dropWidgetVisible\",\"Whether the drop widget is showing\"));let N0=fW=class extends ne{static get(e){return e.getContribution(fW.ID)}constructor(e,t,i,s,o){super(),this._configService=i,this._languageFeaturesService=s,this._treeViewsDragAndDropService=o,this.treeItemsTransfer=ck.getInstance(),this._dropProgressManager=this._register(t.createInstance(rR,\"dropIntoEditor\",e)),this._postDropWidgetManager=this._register(t.createInstance(cR,\"dropIntoEditor\",e,DU,{id:Qfe,label:v(\"postDropWidgetTitle\",\"Show drop options...\")})),this._register(e.onDropIntoEditor(r=>this.onDropIntoEditor(e,r.position,r.event)))}clearWidgets(){this._postDropWidgetManager.clear()}changeDropType(){this._postDropWidgetManager.tryShowSelector()}async onDropIntoEditor(e,t,i){var s;if(!i.dataTransfer||!e.hasModel())return;(s=this._currentOperation)===null||s===void 0||s.cancel(),e.focus(),e.setPosition(t);const o=Xs(async r=>{const a=new Km(e,1,void 0,r);try{const l=await this.extractDataTransferData(i);if(l.size===0||a.token.isCancellationRequested)return;const c=e.getModel();if(!c)return;const d=this._languageFeaturesService.documentDropEditProvider.ordered(c).filter(h=>h.dropMimeTypes?h.dropMimeTypes.some(f=>l.matches(f)):!0),u=await this.getDropEdits(d,c,t,l,a);if(a.token.isCancellationRequested)return;if(u.length){const h=this.getInitialActiveEditIndex(c,u),f=e.getOption(36).showDropSelector===\"afterDrop\";await this._postDropWidgetManager.applyEditAndShowIfNeeded([A.fromPositions(t)],{activeEditIndex:h,allEdits:u},f,async g=>g,r)}}finally{a.dispose(),this._currentOperation===o&&(this._currentOperation=void 0)}});this._dropProgressManager.showWhile(t,v(\"dropIntoEditorProgress\",\"Running drop handlers. Click to cancel\"),o),this._currentOperation=o}async getDropEdits(e,t,i,s,o){const r=await uD(Promise.all(e.map(async l=>{try{const c=await l.provideDocumentDropEdits(t,i,s,o.token);return c==null?void 0:c.map(d=>({...d,providerId:l.id}))}catch(c){console.error(c)}})),o.token),a=tu(r??[]).flat();return Yhe(a)}getInitialActiveEditIndex(e,t){const i=this._configService.getValue(Xfe,{resource:e.uri});for(const[s,o]of Object.entries(i)){const r=new Yi(o),a=t.findIndex(l=>r.value===l.providerId&&l.handledMimeType&&zhe(s,[l.handledMimeType]));if(a>=0)return a}return 0}async extractDataTransferData(e){if(!e.dataTransfer)return new Vhe;const t=jhe(e.dataTransfer);if(this.treeItemsTransfer.hasData(tte.prototype)){const i=this.treeItemsTransfer.getData(tte.prototype);if(Array.isArray(i))for(const s of i){const o=await this._treeViewsDragAndDropService.removeDragOperationTransfer(s.identifier);if(o)for(const[r,a]of o)t.replace(r,a)}}return t}};N0.ID=\"editor.contrib.dropIntoEditorController\";N0=fW=IXe([xT(1,ht),xT(2,qt),xT(3,Xe),xT(4,Yfe)],N0);bi(N0.ID,N0,2);WD(B6);Fe(new class extends Us{constructor(){super({id:Qfe,precondition:DU,kbOpts:{weight:100,primary:2137}})}runEditorCommand(n,e,t){var i;(i=N0.get(e))===null||i===void 0||i.changeDropType()}});Fe(new class extends Us{constructor(){super({id:\"editor.hideDropWidget\",precondition:DU,kbOpts:{weight:100,primary:9}})}runEditorCommand(n,e,t){var i;(i=N0.get(e))===null||i===void 0||i.clearWidgets()}});Un.as(_u.Configuration).registerConfiguration({...ZM,properties:{[Xfe]:{type:\"object\",scope:5,description:v(\"defaultProviderDescription\",\"Configures the default drop provider to use for content of a given mime type.\"),default:{},additionalProperties:{type:\"string\"}}}});class lr{constructor(e){this._editor=e,this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null,this._startPosition=this._editor.getPosition()}dispose(){this._editor.removeDecorations(this._allDecorations()),this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}reset(){this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}getCount(){return this._decorations.length}getFindScope(){return this._findScopeDecorationIds[0]?this._editor.getModel().getDecorationRange(this._findScopeDecorationIds[0]):null}getFindScopes(){if(this._findScopeDecorationIds.length){const e=this._findScopeDecorationIds.map(t=>this._editor.getModel().getDecorationRange(t)).filter(t=>!!t);if(e.length)return e}return null}getStartPosition(){return this._startPosition}setStartPosition(e){this._startPosition=e,this.setCurrentFindMatch(null)}_getDecorationIndex(e){const t=this._decorations.indexOf(e);return t>=0?t+1:1}getDecorationRangeAt(e){const t=e<this._decorations.length?this._decorations[e]:null;return t?this._editor.getModel().getDecorationRange(t):null}getCurrentMatchesPosition(e){const t=this._editor.getModel().getDecorationsInRange(e);for(const i of t){const s=i.options;if(s===lr._FIND_MATCH_DECORATION||s===lr._CURRENT_FIND_MATCH_DECORATION)return this._getDecorationIndex(i.id)}return 0}setCurrentFindMatch(e){let t=null,i=0;if(e)for(let s=0,o=this._decorations.length;s<o;s++){const r=this._editor.getModel().getDecorationRange(this._decorations[s]);if(e.equalsRange(r)){t=this._decorations[s],i=s+1;break}}return(this._highlightedDecorationId!==null||t!==null)&&this._editor.changeDecorations(s=>{if(this._highlightedDecorationId!==null&&(s.changeDecorationOptions(this._highlightedDecorationId,lr._FIND_MATCH_DECORATION),this._highlightedDecorationId=null),t!==null&&(this._highlightedDecorationId=t,s.changeDecorationOptions(this._highlightedDecorationId,lr._CURRENT_FIND_MATCH_DECORATION)),this._rangeHighlightDecorationId!==null&&(s.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null),t!==null){let o=this._editor.getModel().getDecorationRange(t);if(o.startLineNumber!==o.endLineNumber&&o.endColumn===1){const r=o.endLineNumber-1,a=this._editor.getModel().getLineMaxColumn(r);o=new A(o.startLineNumber,o.startColumn,r,a)}this._rangeHighlightDecorationId=s.addDecoration(o,lr._RANGE_HIGHLIGHT_DECORATION)}}),i}set(e,t){this._editor.changeDecorations(i=>{let s=lr._FIND_MATCH_DECORATION;const o=[];if(e.length>1e3){s=lr._FIND_MATCH_NO_OVERVIEW_DECORATION;const a=this._editor.getModel().getLineCount(),c=this._editor.getLayoutInfo().height/a,d=Math.max(2,Math.ceil(3/c));let u=e[0].range.startLineNumber,h=e[0].range.endLineNumber;for(let f=1,g=e.length;f<g;f++){const p=e[f].range;h+d>=p.startLineNumber?p.endLineNumber>h&&(h=p.endLineNumber):(o.push({range:new A(u,1,h,1),options:lr._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),u=p.startLineNumber,h=p.endLineNumber)}o.push({range:new A(u,1,h,1),options:lr._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}const r=new Array(e.length);for(let a=0,l=e.length;a<l;a++)r[a]={range:e[a].range,options:s};this._decorations=i.deltaDecorations(this._decorations,r),this._overviewRulerApproximateDecorations=i.deltaDecorations(this._overviewRulerApproximateDecorations,o),this._rangeHighlightDecorationId&&(i.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null),this._findScopeDecorationIds.length&&(this._findScopeDecorationIds.forEach(a=>i.removeDecoration(a)),this._findScopeDecorationIds=[]),t!=null&&t.length&&(this._findScopeDecorationIds=t.map(a=>i.addDecoration(a,lr._FIND_SCOPE_DECORATION)))})}matchBeforePosition(e){if(this._decorations.length===0)return null;for(let t=this._decorations.length-1;t>=0;t--){const i=this._decorations[t],s=this._editor.getModel().getDecorationRange(i);if(!(!s||s.endLineNumber>e.lineNumber)){if(s.endLineNumber<e.lineNumber)return s;if(!(s.endColumn>e.column))return s}}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])}matchAfterPosition(e){if(this._decorations.length===0)return null;for(let t=0,i=this._decorations.length;t<i;t++){const s=this._decorations[t],o=this._editor.getModel().getDecorationRange(s);if(!(!o||o.startLineNumber<e.lineNumber)){if(o.startLineNumber>e.lineNumber)return o;if(!(o.startColumn<e.column))return o}}return this._editor.getModel().getDecorationRange(this._decorations[0])}_allDecorations(){let e=[];return e=e.concat(this._decorations),e=e.concat(this._overviewRulerApproximateDecorations),this._findScopeDecorationIds.length&&e.push(...this._findScopeDecorationIds),this._rangeHighlightDecorationId&&e.push(this._rangeHighlightDecorationId),e}}lr._CURRENT_FIND_MATCH_DECORATION=Wt.register({description:\"current-find-match\",stickiness:1,zIndex:13,className:\"currentFindMatch\",inlineClassName:\"currentFindMatchInline\",showIfCollapsed:!0,overviewRuler:{color:Yn(Dz),position:Sl.Center},minimap:{color:Yn(w1),position:1}});lr._FIND_MATCH_DECORATION=Wt.register({description:\"find-match\",stickiness:1,zIndex:10,className:\"findMatch\",inlineClassName:\"findMatchInline\",showIfCollapsed:!0,overviewRuler:{color:Yn(Dz),position:Sl.Center},minimap:{color:Yn(w1),position:1}});lr._FIND_MATCH_NO_OVERVIEW_DECORATION=Wt.register({description:\"find-match-no-overview\",stickiness:1,className:\"findMatch\",showIfCollapsed:!0});lr._FIND_MATCH_ONLY_OVERVIEW_DECORATION=Wt.register({description:\"find-match-only-overview\",stickiness:1,overviewRuler:{color:Yn(Dz),position:Sl.Center}});lr._RANGE_HIGHLIGHT_DECORATION=Wt.register({description:\"find-range-highlight\",stickiness:1,className:\"rangeHighlight\",isWholeLine:!0});lr._FIND_SCOPE_DECORATION=Wt.register({description:\"find-scope\",className:\"findScope\",isWholeLine:!0});class EXe{constructor(e,t,i){this._editorSelection=e,this._ranges=t,this._replaceStrings=i,this._trackedEditorSelectionId=null}getEditOperations(e,t){if(this._ranges.length>0){const i=[];for(let r=0;r<this._ranges.length;r++)i.push({range:this._ranges[r],text:this._replaceStrings[r]});i.sort((r,a)=>A.compareRangesUsingStarts(r.range,a.range));const s=[];let o=i[0];for(let r=1;r<i.length;r++)o.range.endLineNumber===i[r].range.startLineNumber&&o.range.endColumn===i[r].range.startColumn?(o.range=o.range.plusRange(i[r].range),o.text=o.text+i[r].text):(s.push(o),o=i[r]);s.push(o);for(const r of s)t.addEditOperation(r.range,r.text)}this._trackedEditorSelectionId=t.trackSelection(this._editorSelection)}computeCursorState(e,t){return t.getTrackedSelection(this._trackedEditorSelectionId)}}function Jfe(n,e){if(n&&n[0]!==\"\"){const t=ite(n,e,\"-\"),i=ite(n,e,\"_\");return t&&!i?nte(n,e,\"-\"):!t&&i?nte(n,e,\"_\"):n[0].toUpperCase()===n[0]?e.toUpperCase():n[0].toLowerCase()===n[0]?e.toLowerCase():yRe(n[0][0])&&e.length>0?e[0].toUpperCase()+e.substr(1):n[0][0].toUpperCase()!==n[0][0]&&e.length>0?e[0].toLowerCase()+e.substr(1):e}else return e}function ite(n,e,t){return n[0].indexOf(t)!==-1&&e.indexOf(t)!==-1&&n[0].split(t).length===e.split(t).length}function nte(n,e,t){const i=e.split(t),s=n[0].split(t);let o=\"\";return i.forEach((r,a)=>{o+=Jfe([s[a]],r)+t}),o.slice(0,-1)}class ste{constructor(e){this.staticValue=e,this.kind=0}}class TXe{constructor(e){this.pieces=e,this.kind=1}}class uw{static fromStaticValue(e){return new uw([Qv.staticValue(e)])}get hasReplacementPatterns(){return this._state.kind===1}constructor(e){!e||e.length===0?this._state=new ste(\"\"):e.length===1&&e[0].staticValue!==null?this._state=new ste(e[0].staticValue):this._state=new TXe(e)}buildReplaceString(e,t){if(this._state.kind===0)return t?Jfe(e,this._state.staticValue):this._state.staticValue;let i=\"\";for(let s=0,o=this._state.pieces.length;s<o;s++){const r=this._state.pieces[s];if(r.staticValue!==null){i+=r.staticValue;continue}let a=uw._substitute(r.matchIndex,e);if(r.caseOps!==null&&r.caseOps.length>0){const l=[],c=r.caseOps.length;let d=0;for(let u=0,h=a.length;u<h;u++){if(d>=c){l.push(a.slice(u));break}switch(r.caseOps[d]){case\"U\":l.push(a[u].toUpperCase());break;case\"u\":l.push(a[u].toUpperCase()),d++;break;case\"L\":l.push(a[u].toLowerCase());break;case\"l\":l.push(a[u].toLowerCase()),d++;break;default:l.push(a[u])}}a=l.join(\"\")}i+=a}return i}static _substitute(e,t){if(t===null)return\"\";if(e===0)return t[0];let i=\"\";for(;e>0;){if(e<t.length)return(t[e]||\"\")+i;i=String(e%10)+i,e=Math.floor(e/10)}return\"$\"+i}}class Qv{static staticValue(e){return new Qv(e,-1,null)}static caseOps(e,t){return new Qv(null,e,t)}constructor(e,t,i){this.staticValue=e,this.matchIndex=t,!i||i.length===0?this.caseOps=null:this.caseOps=i.slice(0)}}class NXe{constructor(e){this._source=e,this._lastCharIndex=0,this._result=[],this._resultLen=0,this._currentStaticPiece=\"\"}emitUnchanged(e){this._emitStatic(this._source.substring(this._lastCharIndex,e)),this._lastCharIndex=e}emitStatic(e,t){this._emitStatic(e),this._lastCharIndex=t}_emitStatic(e){e.length!==0&&(this._currentStaticPiece+=e)}emitMatchIndex(e,t,i){this._currentStaticPiece.length!==0&&(this._result[this._resultLen++]=Qv.staticValue(this._currentStaticPiece),this._currentStaticPiece=\"\"),this._result[this._resultLen++]=Qv.caseOps(e,i),this._lastCharIndex=t}finalize(){return this.emitUnchanged(this._source.length),this._currentStaticPiece.length!==0&&(this._result[this._resultLen++]=Qv.staticValue(this._currentStaticPiece),this._currentStaticPiece=\"\"),new uw(this._result)}}function AXe(n){if(!n||n.length===0)return new uw(null);const e=[],t=new NXe(n);for(let i=0,s=n.length;i<s;i++){const o=n.charCodeAt(i);if(o===92){if(i++,i>=s)break;const r=n.charCodeAt(i);switch(r){case 92:t.emitUnchanged(i-1),t.emitStatic(\"\\\\\",i+1);break;case 110:t.emitUnchanged(i-1),t.emitStatic(`\n`,i+1);break;case 116:t.emitUnchanged(i-1),t.emitStatic(\"\t\",i+1);break;case 117:case 85:case 108:case 76:t.emitUnchanged(i-1),t.emitStatic(\"\",i+1),e.push(String.fromCharCode(r));break}continue}if(o===36){if(i++,i>=s)break;const r=n.charCodeAt(i);if(r===36){t.emitUnchanged(i-1),t.emitStatic(\"$\",i+1);continue}if(r===48||r===38){t.emitUnchanged(i-1),t.emitMatchIndex(0,i+1,e),e.length=0;continue}if(49<=r&&r<=57){let a=r-48;if(i+1<s){const l=n.charCodeAt(i+1);if(48<=l&&l<=57){i++,a=a*10+(l-48),t.emitUnchanged(i-2),t.emitMatchIndex(a,i+1,e),e.length=0;continue}}t.emitUnchanged(i-1),t.emitMatchIndex(a,i+1,e),e.length=0;continue}}}return t.finalize()}const Ug=new He(\"findWidgetVisible\",!1);Ug.toNegated();const VP=new He(\"findInputFocussed\",!1),IU=new He(\"replaceInputFocussed\",!1),LT={primary:545,mac:{primary:2593}},kT={primary:565,mac:{primary:2613}},DT={primary:560,mac:{primary:2608}},IT={primary:554,mac:{primary:2602}},ET={primary:558,mac:{primary:2606}},vn={StartFindAction:\"actions.find\",StartFindWithSelection:\"actions.findWithSelection\",StartFindWithArgs:\"editor.actions.findWithArgs\",NextMatchFindAction:\"editor.action.nextMatchFindAction\",PreviousMatchFindAction:\"editor.action.previousMatchFindAction\",GoToMatchFindAction:\"editor.action.goToMatchFindAction\",NextSelectionMatchFindAction:\"editor.action.nextSelectionMatchFindAction\",PreviousSelectionMatchFindAction:\"editor.action.previousSelectionMatchFindAction\",StartFindReplaceAction:\"editor.action.startFindReplaceAction\",CloseFindWidgetCommand:\"closeFindWidget\",ToggleCaseSensitiveCommand:\"toggleFindCaseSensitive\",ToggleWholeWordCommand:\"toggleFindWholeWord\",ToggleRegexCommand:\"toggleFindRegex\",ToggleSearchScopeCommand:\"toggleFindInSelection\",TogglePreserveCaseCommand:\"togglePreserveCase\",ReplaceOneAction:\"editor.action.replaceOne\",ReplaceAllAction:\"editor.action.replaceAll\",SelectAllMatchesAction:\"editor.action.selectAllMatches\"},nm=19999,RXe=240;class Ax{constructor(e,t){this._toDispose=new be,this._editor=e,this._state=t,this._isDisposed=!1,this._startSearchingTimer=new cd,this._decorations=new lr(e),this._toDispose.add(this._decorations),this._updateDecorationsScheduler=new Xi(()=>this.research(!1),100),this._toDispose.add(this._updateDecorationsScheduler),this._toDispose.add(this._editor.onDidChangeCursorPosition(i=>{(i.reason===3||i.reason===5||i.reason===6)&&this._decorations.setStartPosition(this._editor.getPosition())})),this._ignoreModelContentChanged=!1,this._toDispose.add(this._editor.onDidChangeModelContent(i=>{this._ignoreModelContentChanged||(i.isFlush&&this._decorations.reset(),this._decorations.setStartPosition(this._editor.getPosition()),this._updateDecorationsScheduler.schedule())})),this._toDispose.add(this._state.onFindReplaceStateChange(i=>this._onStateChanged(i))),this.research(!1,this._state.searchScope)}dispose(){this._isDisposed=!0,tn(this._startSearchingTimer),this._toDispose.dispose()}_onStateChanged(e){this._isDisposed||this._editor.hasModel()&&(e.searchString||e.isReplaceRevealed||e.isRegex||e.wholeWord||e.matchCase||e.searchScope)&&(this._editor.getModel().isTooLargeForSyncing()?(this._startSearchingTimer.cancel(),this._startSearchingTimer.setIfNotSet(()=>{e.searchScope?this.research(e.moveCursor,this._state.searchScope):this.research(e.moveCursor)},RXe)):e.searchScope?this.research(e.moveCursor,this._state.searchScope):this.research(e.moveCursor))}static _getSearchRange(e,t){return t||e.getFullModelRange()}research(e,t){let i=null;typeof t<\"u\"?t!==null&&(Array.isArray(t)?i=t:i=[t]):i=this._decorations.getFindScopes(),i!==null&&(i=i.map(a=>{if(a.startLineNumber!==a.endLineNumber){let l=a.endLineNumber;return a.endColumn===1&&(l=l-1),new A(a.startLineNumber,1,l,this._editor.getModel().getLineMaxColumn(l))}return a}));const s=this._findMatches(i,!1,nm);this._decorations.set(s,i);const o=this._editor.getSelection();let r=this._decorations.getCurrentMatchesPosition(o);if(r===0&&s.length>0){const a=vL(s.map(l=>l.range),l=>A.compareRangesUsingStarts(l,o)>=0);r=a>0?a-1+1:r}this._state.changeMatchInfo(r,this._decorations.getCount(),void 0),e&&this._editor.getOption(41).cursorMoveOnType&&this._moveToNextMatch(this._decorations.getStartPosition())}_hasMatches(){return this._state.matchesCount>0}_cannotFind(){if(!this._hasMatches()){const e=this._decorations.getFindScope();return e&&this._editor.revealRangeInCenterIfOutsideViewport(e,0),!0}return!1}_setCurrentFindMatch(e){const t=this._decorations.setCurrentFindMatch(e);this._state.changeMatchInfo(t,this._decorations.getCount(),e),this._editor.setSelection(e),this._editor.revealRangeInCenterIfOutsideViewport(e,0)}_prevSearchPosition(e){const t=this._state.isRegex&&(this._state.searchString.indexOf(\"^\")>=0||this._state.searchString.indexOf(\"$\")>=0);let{lineNumber:i,column:s}=e;const o=this._editor.getModel();return t||s===1?(i===1?i=o.getLineCount():i--,s=o.getLineMaxColumn(i)):s--,new ee(i,s)}_moveToPrevMatch(e,t=!1){if(!this._state.canNavigateBack()){const d=this._decorations.matchAfterPosition(e);d&&this._setCurrentFindMatch(d);return}if(this._decorations.getCount()<nm){let d=this._decorations.matchBeforePosition(e);d&&d.isEmpty()&&d.getStartPosition().equals(e)&&(e=this._prevSearchPosition(e),d=this._decorations.matchBeforePosition(e)),d&&this._setCurrentFindMatch(d);return}if(this._cannotFind())return;const i=this._decorations.getFindScope(),s=Ax._getSearchRange(this._editor.getModel(),i);s.getEndPosition().isBefore(e)&&(e=s.getEndPosition()),e.isBefore(s.getStartPosition())&&(e=s.getEndPosition());const{lineNumber:o,column:r}=e,a=this._editor.getModel();let l=new ee(o,r),c=a.findPreviousMatch(this._state.searchString,l,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(131):null,!1);if(c&&c.range.isEmpty()&&c.range.getStartPosition().equals(l)&&(l=this._prevSearchPosition(l),c=a.findPreviousMatch(this._state.searchString,l,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(131):null,!1)),!!c){if(!t&&!s.containsRange(c.range))return this._moveToPrevMatch(c.range.getStartPosition(),!0);this._setCurrentFindMatch(c.range)}}moveToPrevMatch(){this._moveToPrevMatch(this._editor.getSelection().getStartPosition())}_nextSearchPosition(e){const t=this._state.isRegex&&(this._state.searchString.indexOf(\"^\")>=0||this._state.searchString.indexOf(\"$\")>=0);let{lineNumber:i,column:s}=e;const o=this._editor.getModel();return t||s===o.getLineMaxColumn(i)?(i===o.getLineCount()?i=1:i++,s=1):s++,new ee(i,s)}_moveToNextMatch(e){if(!this._state.canNavigateForward()){const i=this._decorations.matchBeforePosition(e);i&&this._setCurrentFindMatch(i);return}if(this._decorations.getCount()<nm){let i=this._decorations.matchAfterPosition(e);i&&i.isEmpty()&&i.getStartPosition().equals(e)&&(e=this._nextSearchPosition(e),i=this._decorations.matchAfterPosition(e)),i&&this._setCurrentFindMatch(i);return}const t=this._getNextMatch(e,!1,!0);t&&this._setCurrentFindMatch(t.range)}_getNextMatch(e,t,i,s=!1){if(this._cannotFind())return null;const o=this._decorations.getFindScope(),r=Ax._getSearchRange(this._editor.getModel(),o);r.getEndPosition().isBefore(e)&&(e=r.getStartPosition()),e.isBefore(r.getStartPosition())&&(e=r.getStartPosition());const{lineNumber:a,column:l}=e,c=this._editor.getModel();let d=new ee(a,l),u=c.findNextMatch(this._state.searchString,d,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(131):null,t);return i&&u&&u.range.isEmpty()&&u.range.getStartPosition().equals(d)&&(d=this._nextSearchPosition(d),u=c.findNextMatch(this._state.searchString,d,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(131):null,t)),u?!s&&!r.containsRange(u.range)?this._getNextMatch(u.range.getEndPosition(),t,i,!0):u:null}moveToNextMatch(){this._moveToNextMatch(this._editor.getSelection().getEndPosition())}_moveToMatch(e){const t=this._decorations.getDecorationRangeAt(e);t&&this._setCurrentFindMatch(t)}moveToMatch(e){this._moveToMatch(e)}_getReplacePattern(){return this._state.isRegex?AXe(this._state.replaceString):uw.fromStaticValue(this._state.replaceString)}replace(){if(!this._hasMatches())return;const e=this._getReplacePattern(),t=this._editor.getSelection(),i=this._getNextMatch(t.getStartPosition(),!0,!1);if(i)if(t.equalsRange(i.range)){const s=e.buildReplaceString(i.matches,this._state.preserveCase),o=new Io(t,s);this._executeEditorCommand(\"replace\",o),this._decorations.setStartPosition(new ee(t.startLineNumber,t.startColumn+s.length)),this.research(!0)}else this._decorations.setStartPosition(this._editor.getPosition()),this._setCurrentFindMatch(i.range)}_findMatches(e,t,i){const s=(e||[null]).map(o=>Ax._getSearchRange(this._editor.getModel(),o));return this._editor.getModel().findMatches(this._state.searchString,s,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(131):null,t,i)}replaceAll(){if(!this._hasMatches())return;const e=this._decorations.getFindScopes();e===null&&this._state.matchesCount>=nm?this._largeReplaceAll():this._regularReplaceAll(e),this.research(!1)}_largeReplaceAll(){const t=new nv(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(131):null).parseSearchRequest();if(!t)return;let i=t.regex;if(!i.multiline){let u=\"mu\";i.ignoreCase&&(u+=\"i\"),i.global&&(u+=\"g\"),i=new RegExp(i.source,u)}const s=this._editor.getModel(),o=s.getValue(1),r=s.getFullModelRange(),a=this._getReplacePattern();let l;const c=this._state.preserveCase;a.hasReplacementPatterns||c?l=o.replace(i,function(){return a.buildReplaceString(arguments,c)}):l=o.replace(i,a.buildReplaceString(null,c));const d=new Oz(r,l,this._editor.getSelection());this._executeEditorCommand(\"replaceAll\",d)}_regularReplaceAll(e){const t=this._getReplacePattern(),i=this._findMatches(e,t.hasReplacementPatterns||this._state.preserveCase,1073741824),s=[];for(let r=0,a=i.length;r<a;r++)s[r]=t.buildReplaceString(i[r].matches,this._state.preserveCase);const o=new EXe(this._editor.getSelection(),i.map(r=>r.range),s);this._executeEditorCommand(\"replaceAll\",o)}selectAllMatches(){if(!this._hasMatches())return;const e=this._decorations.getFindScopes();let i=this._findMatches(e,!1,1073741824).map(o=>new it(o.range.startLineNumber,o.range.startColumn,o.range.endLineNumber,o.range.endColumn));const s=this._editor.getSelection();for(let o=0,r=i.length;o<r;o++)if(i[o].equalsRange(s)){i=[s].concat(i.slice(0,o)).concat(i.slice(o+1));break}this._editor.setSelections(i)}_executeEditorCommand(e,t){try{this._ignoreModelContentChanged=!0,this._editor.pushUndoStop(),this._editor.executeCommand(e,t),this._editor.pushUndoStop()}finally{this._ignoreModelContentChanged=!1}}}class zP extends Il{constructor(e,t,i){super(),this._hideSoon=this._register(new Xi(()=>this._hide(),2e3)),this._isVisible=!1,this._editor=e,this._state=t,this._keybindingService=i,this._domNode=document.createElement(\"div\"),this._domNode.className=\"findOptionsWidget\",this._domNode.style.display=\"none\",this._domNode.style.top=\"10px\",this._domNode.style.zIndex=\"12\",this._domNode.setAttribute(\"role\",\"presentation\"),this._domNode.setAttribute(\"aria-hidden\",\"true\");const s={inputActiveOptionBorder:Ge(Iz),inputActiveOptionForeground:Ge(Ez),inputActiveOptionBackground:Ge(Lv)},o=this._register(XC());this.caseSensitive=this._register(new Qde({appendTitle:this._keybindingLabelFor(vn.ToggleCaseSensitiveCommand),isChecked:this._state.matchCase,hoverDelegate:o,...s})),this._domNode.appendChild(this.caseSensitive.domNode),this._register(this.caseSensitive.onChange(()=>{this._state.change({matchCase:this.caseSensitive.checked},!1)})),this.wholeWords=this._register(new Jde({appendTitle:this._keybindingLabelFor(vn.ToggleWholeWordCommand),isChecked:this._state.wholeWord,hoverDelegate:o,...s})),this._domNode.appendChild(this.wholeWords.domNode),this._register(this.wholeWords.onChange(()=>{this._state.change({wholeWord:this.wholeWords.checked},!1)})),this.regex=this._register(new eue({appendTitle:this._keybindingLabelFor(vn.ToggleRegexCommand),isChecked:this._state.isRegex,hoverDelegate:o,...s})),this._domNode.appendChild(this.regex.domNode),this._register(this.regex.onChange(()=>{this._state.change({isRegex:this.regex.checked},!1)})),this._editor.addOverlayWidget(this),this._register(this._state.onFindReplaceStateChange(r=>{let a=!1;r.isRegex&&(this.regex.checked=this._state.isRegex,a=!0),r.wholeWord&&(this.wholeWords.checked=this._state.wholeWord,a=!0),r.matchCase&&(this.caseSensitive.checked=this._state.matchCase,a=!0),!this._state.isRevealed&&a&&this._revealTemporarily()})),this._register(ce(this._domNode,Le.MOUSE_LEAVE,r=>this._onMouseLeave())),this._register(ce(this._domNode,\"mouseover\",r=>this._onMouseOver()))}_keybindingLabelFor(e){const t=this._keybindingService.lookupKeybinding(e);return t?` (${t.getLabel()})`:\"\"}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return zP.ID}getDomNode(){return this._domNode}getPosition(){return{preference:0}}highlightFindOptions(){this._revealTemporarily()}_revealTemporarily(){this._show(),this._hideSoon.schedule()}_onMouseLeave(){this._hideSoon.schedule()}_onMouseOver(){this._hideSoon.cancel()}_show(){this._isVisible||(this._isVisible=!0,this._domNode.style.display=\"block\")}_hide(){this._isVisible&&(this._isVisible=!1,this._domNode.style.display=\"none\")}}zP.ID=\"editor.contrib.findOptionsWidget\";function TT(n,e){return n===1?!0:n===2?!1:e}class MXe extends ne{get searchString(){return this._searchString}get replaceString(){return this._replaceString}get isRevealed(){return this._isRevealed}get isReplaceRevealed(){return this._isReplaceRevealed}get isRegex(){return TT(this._isRegexOverride,this._isRegex)}get wholeWord(){return TT(this._wholeWordOverride,this._wholeWord)}get matchCase(){return TT(this._matchCaseOverride,this._matchCase)}get preserveCase(){return TT(this._preserveCaseOverride,this._preserveCase)}get actualIsRegex(){return this._isRegex}get actualWholeWord(){return this._wholeWord}get actualMatchCase(){return this._matchCase}get actualPreserveCase(){return this._preserveCase}get searchScope(){return this._searchScope}get matchesPosition(){return this._matchesPosition}get matchesCount(){return this._matchesCount}get currentMatch(){return this._currentMatch}constructor(){super(),this._onFindReplaceStateChange=this._register(new X),this.onFindReplaceStateChange=this._onFindReplaceStateChange.event,this._searchString=\"\",this._replaceString=\"\",this._isRevealed=!1,this._isReplaceRevealed=!1,this._isRegex=!1,this._isRegexOverride=0,this._wholeWord=!1,this._wholeWordOverride=0,this._matchCase=!1,this._matchCaseOverride=0,this._preserveCase=!1,this._preserveCaseOverride=0,this._searchScope=null,this._matchesPosition=0,this._matchesCount=0,this._currentMatch=null,this._loop=!0,this._isSearching=!1,this._filters=null}changeMatchInfo(e,t,i){const s={moveCursor:!1,updateHistory:!1,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1};let o=!1;t===0&&(e=0),e>t&&(e=t),this._matchesPosition!==e&&(this._matchesPosition=e,s.matchesPosition=!0,o=!0),this._matchesCount!==t&&(this._matchesCount=t,s.matchesCount=!0,o=!0),typeof i<\"u\"&&(A.equalsRange(this._currentMatch,i)||(this._currentMatch=i,s.currentMatch=!0,o=!0)),o&&this._onFindReplaceStateChange.fire(s)}change(e,t,i=!0){var s;const o={moveCursor:t,updateHistory:i,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1};let r=!1;const a=this.isRegex,l=this.wholeWord,c=this.matchCase,d=this.preserveCase;typeof e.searchString<\"u\"&&this._searchString!==e.searchString&&(this._searchString=e.searchString,o.searchString=!0,r=!0),typeof e.replaceString<\"u\"&&this._replaceString!==e.replaceString&&(this._replaceString=e.replaceString,o.replaceString=!0,r=!0),typeof e.isRevealed<\"u\"&&this._isRevealed!==e.isRevealed&&(this._isRevealed=e.isRevealed,o.isRevealed=!0,r=!0),typeof e.isReplaceRevealed<\"u\"&&this._isReplaceRevealed!==e.isReplaceRevealed&&(this._isReplaceRevealed=e.isReplaceRevealed,o.isReplaceRevealed=!0,r=!0),typeof e.isRegex<\"u\"&&(this._isRegex=e.isRegex),typeof e.wholeWord<\"u\"&&(this._wholeWord=e.wholeWord),typeof e.matchCase<\"u\"&&(this._matchCase=e.matchCase),typeof e.preserveCase<\"u\"&&(this._preserveCase=e.preserveCase),typeof e.searchScope<\"u\"&&(!((s=e.searchScope)===null||s===void 0)&&s.every(u=>{var h;return(h=this._searchScope)===null||h===void 0?void 0:h.some(f=>!A.equalsRange(f,u))})||(this._searchScope=e.searchScope,o.searchScope=!0,r=!0)),typeof e.loop<\"u\"&&this._loop!==e.loop&&(this._loop=e.loop,o.loop=!0,r=!0),typeof e.isSearching<\"u\"&&this._isSearching!==e.isSearching&&(this._isSearching=e.isSearching,o.isSearching=!0,r=!0),typeof e.filters<\"u\"&&(this._filters?this._filters.update(e.filters):this._filters=e.filters,o.filters=!0,r=!0),this._isRegexOverride=typeof e.isRegexOverride<\"u\"?e.isRegexOverride:0,this._wholeWordOverride=typeof e.wholeWordOverride<\"u\"?e.wholeWordOverride:0,this._matchCaseOverride=typeof e.matchCaseOverride<\"u\"?e.matchCaseOverride:0,this._preserveCaseOverride=typeof e.preserveCaseOverride<\"u\"?e.preserveCaseOverride:0,a!==this.isRegex&&(r=!0,o.isRegex=!0),l!==this.wholeWord&&(r=!0,o.wholeWord=!0),c!==this.matchCase&&(r=!0,o.matchCase=!0),d!==this.preserveCase&&(r=!0,o.preserveCase=!0),r&&this._onFindReplaceStateChange.fire(o)}canNavigateBack(){return this.canNavigateInLoop()||this.matchesPosition!==1}canNavigateForward(){return this.canNavigateInLoop()||this.matchesPosition<this.matchesCount}canNavigateInLoop(){return this._loop||this.matchesCount>=nm}}const PXe=v(\"defaultLabel\",\"input\"),OXe=v(\"label.preserveCaseToggle\",\"Preserve Case\");class FXe extends Vw{constructor(e){var t;super({icon:Te.preserveCase,title:OXe+e.appendTitle,isChecked:e.isChecked,hoverDelegate:(t=e.hoverDelegate)!==null&&t!==void 0?t:Ur(\"element\"),inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class BXe extends Il{constructor(e,t,i,s){super(),this._showOptionButtons=i,this.fixFocusOnOptionClickEnabled=!0,this.cachedOptionsWidth=0,this._onDidOptionChange=this._register(new X),this.onDidOptionChange=this._onDidOptionChange.event,this._onKeyDown=this._register(new X),this.onKeyDown=this._onKeyDown.event,this._onMouseDown=this._register(new X),this._onInput=this._register(new X),this._onKeyUp=this._register(new X),this._onPreserveCaseKeyDown=this._register(new X),this.onPreserveCaseKeyDown=this._onPreserveCaseKeyDown.event,this.contextViewProvider=t,this.placeholder=s.placeholder||\"\",this.validation=s.validation,this.label=s.label||PXe;const o=s.appendPreserveCaseLabel||\"\",r=s.history||[],a=!!s.flexibleHeight,l=!!s.flexibleWidth,c=s.flexibleMaxHeight;this.domNode=document.createElement(\"div\"),this.domNode.classList.add(\"monaco-findInput\"),this.inputBox=this._register(new tue(this.domNode,this.contextViewProvider,{ariaLabel:this.label||\"\",placeholder:this.placeholder||\"\",validationOptions:{validation:this.validation},history:r,showHistoryHint:s.showHistoryHint,flexibleHeight:a,flexibleWidth:l,flexibleMaxHeight:c,inputBoxStyles:s.inputBoxStyles})),this.preserveCase=this._register(new FXe({appendTitle:o,isChecked:!1,...s.toggleStyles})),this._register(this.preserveCase.onChange(h=>{this._onDidOptionChange.fire(h),!h&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.preserveCase.onKeyDown(h=>{this._onPreserveCaseKeyDown.fire(h)})),this._showOptionButtons?this.cachedOptionsWidth=this.preserveCase.width():this.cachedOptionsWidth=0;const d=[this.preserveCase.domNode];this.onkeydown(this.domNode,h=>{if(h.equals(15)||h.equals(17)||h.equals(9)){const f=d.indexOf(this.domNode.ownerDocument.activeElement);if(f>=0){let g=-1;h.equals(17)?g=(f+1)%d.length:h.equals(15)&&(f===0?g=d.length-1:g=f-1),h.equals(9)?(d[f].blur(),this.inputBox.focus()):g>=0&&d[g].focus(),ii.stop(h,!0)}}});const u=document.createElement(\"div\");u.className=\"controls\",u.style.display=this._showOptionButtons?\"block\":\"none\",u.appendChild(this.preserveCase.domNode),this.domNode.appendChild(u),e==null||e.appendChild(this.domNode),this.onkeydown(this.inputBox.inputElement,h=>this._onKeyDown.fire(h)),this.onkeyup(this.inputBox.inputElement,h=>this._onKeyUp.fire(h)),this.oninput(this.inputBox.inputElement,h=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,h=>this._onMouseDown.fire(h))}enable(){this.domNode.classList.remove(\"disabled\"),this.inputBox.enable(),this.preserveCase.enable()}disable(){this.domNode.classList.add(\"disabled\"),this.inputBox.disable(),this.preserveCase.disable()}setEnabled(e){e?this.enable():this.disable()}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getPreserveCase(){return this.preserveCase.checked}setPreserveCase(e){this.preserveCase.checked=e}focusOnPreserve(){this.preserveCase.focus()}validate(){var e;(e=this.inputBox)===null||e===void 0||e.validate()}set width(e){this.inputBox.paddingRight=this.cachedOptionsWidth,this.domNode.style.width=e+\"px\"}dispose(){super.dispose()}}var ege=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},tge=function(n,e){return function(t,i){e(t,i,n)}};const EU=new He(\"suggestWidgetVisible\",!1,v(\"suggestWidgetVisible\",\"Whether suggestion are visible\")),TU=\"historyNavigationWidgetFocus\",ige=\"historyNavigationForwardsEnabled\",nge=\"historyNavigationBackwardsEnabled\";let wg;const NT=[];function sge(n,e){if(NT.includes(e))throw new Error(\"Cannot register the same widget multiple times\");NT.push(e);const t=new be,i=new He(TU,!1).bindTo(n),s=new He(ige,!0).bindTo(n),o=new He(nge,!0).bindTo(n),r=()=>{i.set(!0),wg=e},a=()=>{i.set(!1),wg===e&&(wg=void 0)};return hM(e.element)&&r(),t.add(e.onDidFocus(()=>r())),t.add(e.onDidBlur(()=>a())),t.add(dt(()=>{NT.splice(NT.indexOf(e),1),a()})),{historyNavigationForwardsEnablement:s,historyNavigationBackwardsEnablement:o,dispose(){t.dispose()}}}let gW=class extends iue{constructor(e,t,i,s){super(e,t,i);const o=this._register(s.createScoped(this.inputBox.element));this._register(sge(o,this.inputBox))}};gW=ege([tge(3,Ct)],gW);let pW=class extends BXe{constructor(e,t,i,s,o=!1){super(e,t,o,i);const r=this._register(s.createScoped(this.inputBox.element));this._register(sge(r,this.inputBox))}};pW=ege([tge(3,Ct)],pW);Hr.registerCommandAndKeybindingRule({id:\"history.showPrevious\",weight:200,when:pe.and(pe.has(TU),pe.equals(nge,!0),pe.not(\"isComposing\"),EU.isEqualTo(!1)),primary:16,secondary:[528],handler:n=>{wg==null||wg.showPreviousValue()}});Hr.registerCommandAndKeybindingRule({id:\"history.showNext\",weight:200,when:pe.and(pe.has(TU),pe.equals(ige,!0),pe.not(\"isComposing\"),EU.isEqualTo(!1)),primary:18,secondary:[530],handler:n=>{wg==null||wg.showNextValue()}});function ote(n){var e,t;return((e=n.lookupKeybinding(\"history.showPrevious\"))===null||e===void 0?void 0:e.getElectronAccelerator())===\"Up\"&&((t=n.lookupKeybinding(\"history.showNext\"))===null||t===void 0?void 0:t.getElectronAccelerator())===\"Down\"}const rte=Jn(\"find-collapsed\",Te.chevronRight,v(\"findCollapsedIcon\",\"Icon to indicate that the editor find widget is collapsed.\")),ate=Jn(\"find-expanded\",Te.chevronDown,v(\"findExpandedIcon\",\"Icon to indicate that the editor find widget is expanded.\")),WXe=Jn(\"find-selection\",Te.selection,v(\"findSelectionIcon\",\"Icon for 'Find in Selection' in the editor find widget.\")),HXe=Jn(\"find-replace\",Te.replace,v(\"findReplaceIcon\",\"Icon for 'Replace' in the editor find widget.\")),VXe=Jn(\"find-replace-all\",Te.replaceAll,v(\"findReplaceAllIcon\",\"Icon for 'Replace All' in the editor find widget.\")),zXe=Jn(\"find-previous-match\",Te.arrowUp,v(\"findPreviousMatchIcon\",\"Icon for 'Find Previous' in the editor find widget.\")),$Xe=Jn(\"find-next-match\",Te.arrowDown,v(\"findNextMatchIcon\",\"Icon for 'Find Next' in the editor find widget.\")),UXe=v(\"label.findDialog\",\"Find / Replace\"),jXe=v(\"label.find\",\"Find\"),KXe=v(\"placeholder.find\",\"Find\"),qXe=v(\"label.previousMatchButton\",\"Previous Match\"),GXe=v(\"label.nextMatchButton\",\"Next Match\"),ZXe=v(\"label.toggleSelectionFind\",\"Find in Selection\"),YXe=v(\"label.closeButton\",\"Close\"),XXe=v(\"label.replace\",\"Replace\"),QXe=v(\"placeholder.replace\",\"Replace\"),JXe=v(\"label.replaceButton\",\"Replace\"),eQe=v(\"label.replaceAllButton\",\"Replace All\"),tQe=v(\"label.toggleReplaceButton\",\"Toggle Replace\"),iQe=v(\"title.matchesCountLimit\",\"Only the first {0} results are highlighted, but all find operations work on the entire text.\",nm),nQe=v(\"label.matchesLocation\",\"{0} of {1}\"),lte=v(\"label.noResults\",\"No results\"),Au=419,sQe=275,oQe=sQe-54;let eS=69;const rQe=33,cte=\"ctrlEnterReplaceAll.windows.donotask\",dte=Xt?256:2048;class l3{constructor(e){this.afterLineNumber=e,this.heightInPx=rQe,this.suppressMouseDown=!1,this.domNode=document.createElement(\"div\"),this.domNode.className=\"dock-find-viewzone\"}}function ute(n,e,t){const i=!!e.match(/\\n/);if(t&&i&&t.selectionStart>0){n.stopPropagation();return}}function hte(n,e,t){const i=!!e.match(/\\n/);if(t&&i&&t.selectionEnd<t.value.length){n.stopPropagation();return}}class $P extends Il{constructor(e,t,i,s,o,r,a,l,c,d){super(),this._hoverService=d,this._cachedHeight=null,this._revealTimeouts=[],this._codeEditor=e,this._controller=t,this._state=i,this._contextViewProvider=s,this._keybindingService=o,this._contextKeyService=r,this._storageService=l,this._notificationService=c,this._ctrlEnterReplaceAllWarningPrompted=!!l.getBoolean(cte,0),this._isVisible=!1,this._isReplaceVisible=!1,this._ignoreChangeEvent=!1,this._updateHistoryDelayer=new sd(500),this._register(dt(()=>this._updateHistoryDelayer.cancel())),this._register(this._state.onFindReplaceStateChange(u=>this._onStateChanged(u))),this._buildDomNode(),this._updateButtons(),this._tryUpdateWidgetWidth(),this._findInput.inputBox.layout(),this._register(this._codeEditor.onDidChangeConfiguration(u=>{if(u.hasChanged(91)&&(this._codeEditor.getOption(91)&&this._state.change({isReplaceRevealed:!1},!1),this._updateButtons()),u.hasChanged(145)&&this._tryUpdateWidgetWidth(),u.hasChanged(2)&&this.updateAccessibilitySupport(),u.hasChanged(41)){const h=this._codeEditor.getOption(41).loop;this._state.change({loop:h},!1);const f=this._codeEditor.getOption(41).addExtraSpaceOnTop;f&&!this._viewZone&&(this._viewZone=new l3(0),this._showViewZone()),!f&&this._viewZone&&this._removeViewZone()}})),this.updateAccessibilitySupport(),this._register(this._codeEditor.onDidChangeCursorSelection(()=>{this._isVisible&&this._updateToggleSelectionFindButton()})),this._register(this._codeEditor.onDidFocusEditorWidget(async()=>{if(this._isVisible){const u=await this._controller.getGlobalBufferTerm();u&&u!==this._state.searchString&&(this._state.change({searchString:u},!1),this._findInput.select())}})),this._findInputFocused=VP.bindTo(r),this._findFocusTracker=this._register(ou(this._findInput.inputBox.inputElement)),this._register(this._findFocusTracker.onDidFocus(()=>{this._findInputFocused.set(!0),this._updateSearchScope()})),this._register(this._findFocusTracker.onDidBlur(()=>{this._findInputFocused.set(!1)})),this._replaceInputFocused=IU.bindTo(r),this._replaceFocusTracker=this._register(ou(this._replaceInput.inputBox.inputElement)),this._register(this._replaceFocusTracker.onDidFocus(()=>{this._replaceInputFocused.set(!0),this._updateSearchScope()})),this._register(this._replaceFocusTracker.onDidBlur(()=>{this._replaceInputFocused.set(!1)})),this._codeEditor.addOverlayWidget(this),this._codeEditor.getOption(41).addExtraSpaceOnTop&&(this._viewZone=new l3(0)),this._register(this._codeEditor.onDidChangeModel(()=>{this._isVisible&&(this._viewZoneId=void 0)})),this._register(this._codeEditor.onDidScrollChange(u=>{if(u.scrollTopChanged){this._layoutViewZone();return}setTimeout(()=>{this._layoutViewZone()},0)}))}getId(){return $P.ID}getDomNode(){return this._domNode}getPosition(){return this._isVisible?{preference:0}:null}_onStateChanged(e){if(e.searchString){try{this._ignoreChangeEvent=!0,this._findInput.setValue(this._state.searchString)}finally{this._ignoreChangeEvent=!1}this._updateButtons()}if(e.replaceString&&(this._replaceInput.inputBox.value=this._state.replaceString),e.isRevealed&&(this._state.isRevealed?this._reveal():this._hide(!0)),e.isReplaceRevealed&&(this._state.isReplaceRevealed?!this._codeEditor.getOption(91)&&!this._isReplaceVisible&&(this._isReplaceVisible=!0,this._replaceInput.width=Sa(this._findInput.domNode),this._updateButtons(),this._replaceInput.inputBox.layout()):this._isReplaceVisible&&(this._isReplaceVisible=!1,this._updateButtons())),(e.isRevealed||e.isReplaceRevealed)&&(this._state.isRevealed||this._state.isReplaceRevealed)&&this._tryUpdateHeight()&&this._showViewZone(),e.isRegex&&this._findInput.setRegex(this._state.isRegex),e.wholeWord&&this._findInput.setWholeWords(this._state.wholeWord),e.matchCase&&this._findInput.setCaseSensitive(this._state.matchCase),e.preserveCase&&this._replaceInput.setPreserveCase(this._state.preserveCase),e.searchScope&&(this._state.searchScope?this._toggleSelectionFind.checked=!0:this._toggleSelectionFind.checked=!1,this._updateToggleSelectionFindButton()),e.searchString||e.matchesCount||e.matchesPosition){const t=this._state.searchString.length>0&&this._state.matchesCount===0;this._domNode.classList.toggle(\"no-results\",t),this._updateMatchesCount(),this._updateButtons()}(e.searchString||e.currentMatch)&&this._layoutViewZone(),e.updateHistory&&this._delayedUpdateHistory(),e.loop&&this._updateButtons()}_delayedUpdateHistory(){this._updateHistoryDelayer.trigger(this._updateHistory.bind(this)).then(void 0,Mt)}_updateHistory(){this._state.searchString&&this._findInput.inputBox.addToHistory(),this._state.replaceString&&this._replaceInput.inputBox.addToHistory()}_updateMatchesCount(){this._matchesCount.style.minWidth=eS+\"px\",this._state.matchesCount>=nm?this._matchesCount.title=iQe:this._matchesCount.title=\"\",this._matchesCount.firstChild&&this._matchesCount.removeChild(this._matchesCount.firstChild);let e;if(this._state.matchesCount>0){let t=String(this._state.matchesCount);this._state.matchesCount>=nm&&(t+=\"+\");let i=String(this._state.matchesPosition);i===\"0\"&&(i=\"?\"),e=l0(nQe,i,t)}else e=lte;this._matchesCount.appendChild(document.createTextNode(e)),la(this._getAriaLabel(e,this._state.currentMatch,this._state.searchString)),eS=Math.max(eS,this._matchesCount.clientWidth)}_getAriaLabel(e,t,i){if(e===lte)return i===\"\"?v(\"ariaSearchNoResultEmpty\",\"{0} found\",e):v(\"ariaSearchNoResult\",\"{0} found for '{1}'\",e,i);if(t){const s=v(\"ariaSearchNoResultWithLineNum\",\"{0} found for '{1}', at {2}\",e,i,t.startLineNumber+\":\"+t.startColumn),o=this._codeEditor.getModel();return o&&t.startLineNumber<=o.getLineCount()&&t.startLineNumber>=1?`${o.getLineContent(t.startLineNumber)}, ${s}`:s}return v(\"ariaSearchNoResultWithLineNumNoCurrentMatch\",\"{0} found for '{1}'\",e,i)}_updateToggleSelectionFindButton(){const e=this._codeEditor.getSelection(),t=e?e.startLineNumber!==e.endLineNumber||e.startColumn!==e.endColumn:!1,i=this._toggleSelectionFind.checked;this._isVisible&&(i||t)?this._toggleSelectionFind.enable():this._toggleSelectionFind.disable()}_updateButtons(){this._findInput.setEnabled(this._isVisible),this._replaceInput.setEnabled(this._isVisible&&this._isReplaceVisible),this._updateToggleSelectionFindButton(),this._closeBtn.setEnabled(this._isVisible);const e=this._state.searchString.length>0,t=!!this._state.matchesCount;this._prevBtn.setEnabled(this._isVisible&&e&&t&&this._state.canNavigateBack()),this._nextBtn.setEnabled(this._isVisible&&e&&t&&this._state.canNavigateForward()),this._replaceBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),this._replaceAllBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),this._domNode.classList.toggle(\"replaceToggled\",this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);const i=!this._codeEditor.getOption(91);this._toggleReplaceBtn.setEnabled(this._isVisible&&i)}_reveal(){if(this._revealTimeouts.forEach(e=>{clearTimeout(e)}),this._revealTimeouts=[],!this._isVisible){this._isVisible=!0;const e=this._codeEditor.getSelection();switch(this._codeEditor.getOption(41).autoFindInSelection){case\"always\":this._toggleSelectionFind.checked=!0;break;case\"never\":this._toggleSelectionFind.checked=!1;break;case\"multiline\":{const i=!!e&&e.startLineNumber!==e.endLineNumber;this._toggleSelectionFind.checked=i;break}}this._tryUpdateWidgetWidth(),this._updateButtons(),this._revealTimeouts.push(setTimeout(()=>{this._domNode.classList.add(\"visible\"),this._domNode.setAttribute(\"aria-hidden\",\"false\")},0)),this._revealTimeouts.push(setTimeout(()=>{this._findInput.validate()},200)),this._codeEditor.layoutOverlayWidget(this);let t=!0;if(this._codeEditor.getOption(41).seedSearchStringFromSelection&&e){const i=this._codeEditor.getDomNode();if(i){const s=bs(i),o=this._codeEditor.getScrolledVisiblePosition(e.getStartPosition()),r=s.left+(o?o.left:0),a=o?o.top:0;if(this._viewZone&&a<this._viewZone.heightInPx){e.endLineNumber>e.startLineNumber&&(t=!1);const l=zae(this._domNode).left;r>l&&(t=!1);const c=this._codeEditor.getScrolledVisiblePosition(e.getEndPosition());s.left+(c?c.left:0)>l&&(t=!1)}}}this._showViewZone(t)}}_hide(e){this._revealTimeouts.forEach(t=>{clearTimeout(t)}),this._revealTimeouts=[],this._isVisible&&(this._isVisible=!1,this._updateButtons(),this._domNode.classList.remove(\"visible\"),this._domNode.setAttribute(\"aria-hidden\",\"true\"),this._findInput.clearMessage(),e&&this._codeEditor.focus(),this._codeEditor.layoutOverlayWidget(this),this._removeViewZone())}_layoutViewZone(e){if(!this._codeEditor.getOption(41).addExtraSpaceOnTop){this._removeViewZone();return}if(!this._isVisible)return;const i=this._viewZone;this._viewZoneId!==void 0||!i||this._codeEditor.changeViewZones(s=>{i.heightInPx=this._getHeight(),this._viewZoneId=s.addZone(i),this._codeEditor.setScrollTop(e||this._codeEditor.getScrollTop()+i.heightInPx)})}_showViewZone(e=!0){if(!this._isVisible||!this._codeEditor.getOption(41).addExtraSpaceOnTop)return;this._viewZone===void 0&&(this._viewZone=new l3(0));const i=this._viewZone;this._codeEditor.changeViewZones(s=>{if(this._viewZoneId!==void 0){const o=this._getHeight();if(o===i.heightInPx)return;const r=o-i.heightInPx;i.heightInPx=o,s.layoutZone(this._viewZoneId),e&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+r);return}else{let o=this._getHeight();if(o-=this._codeEditor.getOption(84).top,o<=0)return;i.heightInPx=o,this._viewZoneId=s.addZone(i),e&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+o)}})}_removeViewZone(){this._codeEditor.changeViewZones(e=>{this._viewZoneId!==void 0&&(e.removeZone(this._viewZoneId),this._viewZoneId=void 0,this._viewZone&&(this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()-this._viewZone.heightInPx),this._viewZone=void 0))})}_tryUpdateWidgetWidth(){if(!this._isVisible||!this._domNode.isConnected)return;const e=this._codeEditor.getLayoutInfo();if(e.contentWidth<=0){this._domNode.classList.add(\"hiddenEditor\");return}else this._domNode.classList.contains(\"hiddenEditor\")&&this._domNode.classList.remove(\"hiddenEditor\");const i=e.width,s=e.minimap.minimapWidth;let o=!1,r=!1,a=!1;if(this._resized&&Sa(this._domNode)>Au){this._domNode.style.maxWidth=`${i-28-s-15}px`,this._replaceInput.width=Sa(this._findInput.domNode);return}if(Au+28+s>=i&&(r=!0),Au+28+s-eS>=i&&(a=!0),Au+28+s-eS>=i+50&&(o=!0),this._domNode.classList.toggle(\"collapsed-find-widget\",o),this._domNode.classList.toggle(\"narrow-find-widget\",a),this._domNode.classList.toggle(\"reduced-find-widget\",r),!a&&!o&&(this._domNode.style.maxWidth=`${i-28-s-15}px`),this._findInput.layout({collapsedFindWidget:o,narrowFindWidget:a,reducedFindWidget:r}),this._resized){const l=this._findInput.inputBox.element.clientWidth;l>0&&(this._replaceInput.width=l)}else this._isReplaceVisible&&(this._replaceInput.width=Sa(this._findInput.domNode))}_getHeight(){let e=0;return e+=4,e+=this._findInput.inputBox.height+2,this._isReplaceVisible&&(e+=4,e+=this._replaceInput.inputBox.height+2),e+=4,e}_tryUpdateHeight(){const e=this._getHeight();return this._cachedHeight!==null&&this._cachedHeight===e?!1:(this._cachedHeight=e,this._domNode.style.height=`${e}px`,!0)}focusFindInput(){this._findInput.select(),this._findInput.focus()}focusReplaceInput(){this._replaceInput.select(),this._replaceInput.focus()}highlightFindOptions(){this._findInput.highlightFindOptions()}_updateSearchScope(){if(this._codeEditor.hasModel()&&this._toggleSelectionFind.checked){const e=this._codeEditor.getSelections();e.map(t=>{t.endColumn===1&&t.endLineNumber>t.startLineNumber&&(t=t.setEndPosition(t.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(t.endLineNumber-1)));const i=this._state.currentMatch;return t.startLineNumber!==t.endLineNumber&&!A.equalsRange(t,i)?t:null}).filter(t=>!!t),e.length&&this._state.change({searchScope:e},!0)}}_onFindInputMouseDown(e){e.middleButton&&e.stopPropagation()}_onFindInputKeyDown(e){if(e.equals(dte|3))if(this._keybindingService.dispatchEvent(e,e.target)){e.preventDefault();return}else{this._findInput.inputBox.insertAtCursor(`\n`),e.preventDefault();return}if(e.equals(2)){this._isReplaceVisible?this._replaceInput.focus():this._findInput.focusOnCaseSensitive(),e.preventDefault();return}if(e.equals(2066)){this._codeEditor.focus(),e.preventDefault();return}if(e.equals(16))return ute(e,this._findInput.getValue(),this._findInput.domNode.querySelector(\"textarea\"));if(e.equals(18))return hte(e,this._findInput.getValue(),this._findInput.domNode.querySelector(\"textarea\"))}_onReplaceInputKeyDown(e){if(e.equals(dte|3))if(this._keybindingService.dispatchEvent(e,e.target)){e.preventDefault();return}else{Mo&&Lh&&!this._ctrlEnterReplaceAllWarningPrompted&&(this._notificationService.info(v(\"ctrlEnter.keybindingChanged\",\"Ctrl+Enter now inserts line break instead of replacing all. You can modify the keybinding for editor.action.replaceAll to override this behavior.\")),this._ctrlEnterReplaceAllWarningPrompted=!0,this._storageService.store(cte,!0,0,0)),this._replaceInput.inputBox.insertAtCursor(`\n`),e.preventDefault();return}if(e.equals(2)){this._findInput.focusOnCaseSensitive(),e.preventDefault();return}if(e.equals(1026)){this._findInput.focus(),e.preventDefault();return}if(e.equals(2066)){this._codeEditor.focus(),e.preventDefault();return}if(e.equals(16))return ute(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector(\"textarea\"));if(e.equals(18))return hte(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector(\"textarea\"))}getVerticalSashLeft(e){return 0}_keybindingLabelFor(e){const t=this._keybindingService.lookupKeybinding(e);return t?` (${t.getLabel()})`:\"\"}_buildDomNode(){this._findInput=this._register(new gW(null,this._contextViewProvider,{width:oQe,label:jXe,placeholder:KXe,appendCaseSensitiveLabel:this._keybindingLabelFor(vn.ToggleCaseSensitiveCommand),appendWholeWordsLabel:this._keybindingLabelFor(vn.ToggleWholeWordCommand),appendRegexLabel:this._keybindingLabelFor(vn.ToggleRegexCommand),validation:d=>{if(d.length===0||!this._findInput.getRegex())return null;try{return new RegExp(d,\"gu\"),null}catch(u){return{content:u.message}}},flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showCommonFindToggles:!0,showHistoryHint:()=>ote(this._keybindingService),inputBoxStyles:kA,toggleStyles:LA},this._contextKeyService)),this._findInput.setRegex(!!this._state.isRegex),this._findInput.setCaseSensitive(!!this._state.matchCase),this._findInput.setWholeWords(!!this._state.wholeWord),this._register(this._findInput.onKeyDown(d=>this._onFindInputKeyDown(d))),this._register(this._findInput.inputBox.onDidChange(()=>{this._ignoreChangeEvent||this._state.change({searchString:this._findInput.getValue()},!0)})),this._register(this._findInput.onDidOptionChange(()=>{this._state.change({isRegex:this._findInput.getRegex(),wholeWord:this._findInput.getWholeWords(),matchCase:this._findInput.getCaseSensitive()},!0)})),this._register(this._findInput.onCaseSensitiveKeyDown(d=>{d.equals(1026)&&this._isReplaceVisible&&(this._replaceInput.focus(),d.preventDefault())})),this._register(this._findInput.onRegexKeyDown(d=>{d.equals(2)&&this._isReplaceVisible&&(this._replaceInput.focusOnPreserve(),d.preventDefault())})),this._register(this._findInput.inputBox.onDidHeightChange(d=>{this._tryUpdateHeight()&&this._showViewZone()})),Br&&this._register(this._findInput.onMouseDown(d=>this._onFindInputMouseDown(d))),this._matchesCount=document.createElement(\"div\"),this._matchesCount.className=\"matchesCount\",this._updateMatchesCount();const i=this._register(XC());this._prevBtn=this._register(new Kb({label:qXe+this._keybindingLabelFor(vn.PreviousMatchFindAction),icon:zXe,hoverDelegate:i,onTrigger:()=>{Vp(this._codeEditor.getAction(vn.PreviousMatchFindAction)).run().then(void 0,Mt)}},this._hoverService)),this._nextBtn=this._register(new Kb({label:GXe+this._keybindingLabelFor(vn.NextMatchFindAction),icon:$Xe,hoverDelegate:i,onTrigger:()=>{Vp(this._codeEditor.getAction(vn.NextMatchFindAction)).run().then(void 0,Mt)}},this._hoverService));const s=document.createElement(\"div\");s.className=\"find-part\",s.appendChild(this._findInput.domNode);const o=document.createElement(\"div\");o.className=\"find-actions\",s.appendChild(o),o.appendChild(this._matchesCount),o.appendChild(this._prevBtn.domNode),o.appendChild(this._nextBtn.domNode),this._toggleSelectionFind=this._register(new Vw({icon:WXe,title:ZXe+this._keybindingLabelFor(vn.ToggleSearchScopeCommand),isChecked:!1,hoverDelegate:i,inputActiveOptionBackground:Ge(Lv),inputActiveOptionBorder:Ge(Iz),inputActiveOptionForeground:Ge(Ez)})),this._register(this._toggleSelectionFind.onChange(()=>{if(this._toggleSelectionFind.checked){if(this._codeEditor.hasModel()){let d=this._codeEditor.getSelections();d=d.map(u=>(u.endColumn===1&&u.endLineNumber>u.startLineNumber&&(u=u.setEndPosition(u.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(u.endLineNumber-1))),u.isEmpty()?null:u)).filter(u=>!!u),d.length&&this._state.change({searchScope:d},!0)}}else this._state.change({searchScope:null},!0)})),o.appendChild(this._toggleSelectionFind.domNode),this._closeBtn=this._register(new Kb({label:YXe+this._keybindingLabelFor(vn.CloseFindWidgetCommand),icon:Aue,hoverDelegate:i,onTrigger:()=>{this._state.change({isRevealed:!1,searchScope:null},!1)},onKeyDown:d=>{d.equals(2)&&this._isReplaceVisible&&(this._replaceBtn.isEnabled()?this._replaceBtn.focus():this._codeEditor.focus(),d.preventDefault())}},this._hoverService)),this._replaceInput=this._register(new pW(null,void 0,{label:XXe,placeholder:QXe,appendPreserveCaseLabel:this._keybindingLabelFor(vn.TogglePreserveCaseCommand),history:[],flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showHistoryHint:()=>ote(this._keybindingService),inputBoxStyles:kA,toggleStyles:LA},this._contextKeyService,!0)),this._replaceInput.setPreserveCase(!!this._state.preserveCase),this._register(this._replaceInput.onKeyDown(d=>this._onReplaceInputKeyDown(d))),this._register(this._replaceInput.inputBox.onDidChange(()=>{this._state.change({replaceString:this._replaceInput.inputBox.value},!1)})),this._register(this._replaceInput.inputBox.onDidHeightChange(d=>{this._isReplaceVisible&&this._tryUpdateHeight()&&this._showViewZone()})),this._register(this._replaceInput.onDidOptionChange(()=>{this._state.change({preserveCase:this._replaceInput.getPreserveCase()},!0)})),this._register(this._replaceInput.onPreserveCaseKeyDown(d=>{d.equals(2)&&(this._prevBtn.isEnabled()?this._prevBtn.focus():this._nextBtn.isEnabled()?this._nextBtn.focus():this._toggleSelectionFind.enabled?this._toggleSelectionFind.focus():this._closeBtn.isEnabled()&&this._closeBtn.focus(),d.preventDefault())}));const r=this._register(XC());this._replaceBtn=this._register(new Kb({label:JXe+this._keybindingLabelFor(vn.ReplaceOneAction),icon:HXe,hoverDelegate:r,onTrigger:()=>{this._controller.replace()},onKeyDown:d=>{d.equals(1026)&&(this._closeBtn.focus(),d.preventDefault())}},this._hoverService)),this._replaceAllBtn=this._register(new Kb({label:eQe+this._keybindingLabelFor(vn.ReplaceAllAction),icon:VXe,hoverDelegate:r,onTrigger:()=>{this._controller.replaceAll()}},this._hoverService));const a=document.createElement(\"div\");a.className=\"replace-part\",a.appendChild(this._replaceInput.domNode);const l=document.createElement(\"div\");l.className=\"replace-actions\",a.appendChild(l),l.appendChild(this._replaceBtn.domNode),l.appendChild(this._replaceAllBtn.domNode),this._toggleReplaceBtn=this._register(new Kb({label:tQe,className:\"codicon toggle left\",onTrigger:()=>{this._state.change({isReplaceRevealed:!this._isReplaceVisible},!1),this._isReplaceVisible&&(this._replaceInput.width=Sa(this._findInput.domNode),this._replaceInput.inputBox.layout()),this._showViewZone()}},this._hoverService)),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible),this._domNode=document.createElement(\"div\"),this._domNode.className=\"editor-widget find-widget\",this._domNode.setAttribute(\"aria-hidden\",\"true\"),this._domNode.ariaLabel=UXe,this._domNode.role=\"dialog\",this._domNode.style.width=`${Au}px`,this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(s),this._domNode.appendChild(this._closeBtn.domNode),this._domNode.appendChild(a),this._resizeSash=this._register(new Vo(this._domNode,this,{orientation:0,size:2})),this._resized=!1;let c=Au;this._register(this._resizeSash.onDidStart(()=>{c=Sa(this._domNode)})),this._register(this._resizeSash.onDidChange(d=>{this._resized=!0;const u=c+d.startX-d.currentX;if(u<Au)return;const h=parseFloat(uM(this._domNode).maxWidth)||0;u>h||(this._domNode.style.width=`${u}px`,this._isReplaceVisible&&(this._replaceInput.width=Sa(this._findInput.domNode)),this._findInput.inputBox.layout(),this._tryUpdateHeight())})),this._register(this._resizeSash.onDidReset(()=>{const d=Sa(this._domNode);if(d<Au)return;let u=Au;if(!this._resized||d===Au){const h=this._codeEditor.getLayoutInfo();u=h.width-28-h.minimap.minimapWidth-15,this._resized=!0}this._domNode.style.width=`${u}px`,this._isReplaceVisible&&(this._replaceInput.width=Sa(this._findInput.domNode)),this._findInput.inputBox.layout()}))}updateAccessibilitySupport(){const e=this._codeEditor.getOption(2);this._findInput.setFocusInputOnOptionClick(e!==2)}}$P.ID=\"editor.contrib.findWidget\";class Kb extends Il{constructor(e,t){var i;super(),this._opts=e;let s=\"button\";this._opts.className&&(s=s+\" \"+this._opts.className),this._opts.icon&&(s=s+\" \"+_t.asClassName(this._opts.icon)),this._domNode=document.createElement(\"div\"),this._domNode.tabIndex=0,this._domNode.className=s,this._domNode.setAttribute(\"role\",\"button\"),this._domNode.setAttribute(\"aria-label\",this._opts.label),this._register(t.setupUpdatableHover((i=e.hoverDelegate)!==null&&i!==void 0?i:Ur(\"element\"),this._domNode,this._opts.label)),this.onclick(this._domNode,o=>{this._opts.onTrigger(),o.preventDefault()}),this.onkeydown(this._domNode,o=>{var r,a;if(o.equals(10)||o.equals(3)){this._opts.onTrigger(),o.preventDefault();return}(a=(r=this._opts).onKeyDown)===null||a===void 0||a.call(r,o)})}get domNode(){return this._domNode}isEnabled(){return this._domNode.tabIndex>=0}focus(){this._domNode.focus()}setEnabled(e){this._domNode.classList.toggle(\"disabled\",!e),this._domNode.setAttribute(\"aria-disabled\",String(!e)),this._domNode.tabIndex=e?0:-1}setExpanded(e){this._domNode.setAttribute(\"aria-expanded\",String(!!e)),e?(this._domNode.classList.remove(..._t.asClassNameArray(rte)),this._domNode.classList.add(..._t.asClassNameArray(ate))):(this._domNode.classList.remove(..._t.asClassNameArray(ate)),this._domNode.classList.add(..._t.asClassNameArray(rte)))}}mc((n,e)=>{const t=n.getColor(Kp);t&&e.addRule(`.monaco-editor .findMatch { border: 1px ${Zd(n.type)?\"dotted\":\"solid\"} ${t}; box-sizing: border-box; }`);const i=n.getColor(LFe);i&&e.addRule(`.monaco-editor .findScope { border: 1px ${Zd(n.type)?\"dashed\":\"solid\"} ${i}; }`);const s=n.getColor(ti);s&&e.addRule(`.monaco-editor .find-widget { border: 1px solid ${s}; }`);const o=n.getColor(SFe);o&&e.addRule(`.monaco-editor .findMatchInline { color: ${o}; }`);const r=n.getColor(xFe);r&&e.addRule(`.monaco-editor .currentFindMatchInline { color: ${r}; }`)});var oge=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},zl=function(n,e){return function(t,i){e(t,i,n)}},mW;const aQe=524288;function _W(n,e=\"single\",t=!1){if(!n.hasModel())return null;const i=n.getSelection();if(e===\"single\"&&i.startLineNumber===i.endLineNumber||e===\"multiple\"){if(i.isEmpty()){const s=n.getConfiguredWordAtPosition(i.getStartPosition());if(s&&t===!1)return s.word}else if(n.getModel().getValueLengthInRange(i)<aQe)return n.getModel().getValueInRange(i)}return null}let Vr=mW=class extends ne{get editor(){return this._editor}static get(e){return e.getContribution(mW.ID)}constructor(e,t,i,s,o,r){super(),this._editor=e,this._findWidgetVisible=Ug.bindTo(t),this._contextKeyService=t,this._storageService=i,this._clipboardService=s,this._notificationService=o,this._hoverService=r,this._updateHistoryDelayer=new sd(500),this._state=this._register(new MXe),this.loadQueryState(),this._register(this._state.onFindReplaceStateChange(a=>this._onStateChanged(a))),this._model=null,this._register(this._editor.onDidChangeModel(()=>{const a=this._editor.getModel()&&this._state.isRevealed;this.disposeModel(),this._state.change({searchScope:null,matchCase:this._storageService.getBoolean(\"editor.matchCase\",1,!1),wholeWord:this._storageService.getBoolean(\"editor.wholeWord\",1,!1),isRegex:this._storageService.getBoolean(\"editor.isRegex\",1,!1),preserveCase:this._storageService.getBoolean(\"editor.preserveCase\",1,!1)},!1),a&&this._start({forceRevealReplace:!1,seedSearchStringFromSelection:\"none\",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!1,updateSearchScope:!1,loop:this._editor.getOption(41).loop})}))}dispose(){this.disposeModel(),super.dispose()}disposeModel(){this._model&&(this._model.dispose(),this._model=null)}_onStateChanged(e){this.saveQueryState(e),e.isRevealed&&(this._state.isRevealed?this._findWidgetVisible.set(!0):(this._findWidgetVisible.reset(),this.disposeModel())),e.searchString&&this.setGlobalBufferTerm(this._state.searchString)}saveQueryState(e){e.isRegex&&this._storageService.store(\"editor.isRegex\",this._state.actualIsRegex,1,1),e.wholeWord&&this._storageService.store(\"editor.wholeWord\",this._state.actualWholeWord,1,1),e.matchCase&&this._storageService.store(\"editor.matchCase\",this._state.actualMatchCase,1,1),e.preserveCase&&this._storageService.store(\"editor.preserveCase\",this._state.actualPreserveCase,1,1)}loadQueryState(){this._state.change({matchCase:this._storageService.getBoolean(\"editor.matchCase\",1,this._state.matchCase),wholeWord:this._storageService.getBoolean(\"editor.wholeWord\",1,this._state.wholeWord),isRegex:this._storageService.getBoolean(\"editor.isRegex\",1,this._state.isRegex),preserveCase:this._storageService.getBoolean(\"editor.preserveCase\",1,this._state.preserveCase)},!1)}isFindInputFocused(){return!!VP.getValue(this._contextKeyService)}getState(){return this._state}closeFindWidget(){this._state.change({isRevealed:!1,searchScope:null},!1),this._editor.focus()}toggleCaseSensitive(){this._state.change({matchCase:!this._state.matchCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleWholeWords(){this._state.change({wholeWord:!this._state.wholeWord},!1),this._state.isRevealed||this.highlightFindOptions()}toggleRegex(){this._state.change({isRegex:!this._state.isRegex},!1),this._state.isRevealed||this.highlightFindOptions()}togglePreserveCase(){this._state.change({preserveCase:!this._state.preserveCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleSearchScope(){if(this._state.searchScope)this._state.change({searchScope:null},!0);else if(this._editor.hasModel()){let e=this._editor.getSelections();e=e.map(t=>(t.endColumn===1&&t.endLineNumber>t.startLineNumber&&(t=t.setEndPosition(t.endLineNumber-1,this._editor.getModel().getLineMaxColumn(t.endLineNumber-1))),t.isEmpty()?null:t)).filter(t=>!!t),e.length&&this._state.change({searchScope:e},!0)}}setSearchString(e){this._state.isRegex&&(e=wl(e)),this._state.change({searchString:e},!1)}highlightFindOptions(e=!1){}async _start(e,t){if(this.disposeModel(),!this._editor.hasModel())return;const i={...t,isRevealed:!0};if(e.seedSearchStringFromSelection===\"single\"){const s=_W(this._editor,e.seedSearchStringFromSelection,e.seedSearchStringFromNonEmptySelection);s&&(this._state.isRegex?i.searchString=wl(s):i.searchString=s)}else if(e.seedSearchStringFromSelection===\"multiple\"&&!e.updateSearchScope){const s=_W(this._editor,e.seedSearchStringFromSelection);s&&(i.searchString=s)}if(!i.searchString&&e.seedSearchStringFromGlobalClipboard){const s=await this.getGlobalBufferTerm();if(!this._editor.hasModel())return;s&&(i.searchString=s)}if(e.forceRevealReplace||i.isReplaceRevealed?i.isReplaceRevealed=!0:this._findWidgetVisible.get()||(i.isReplaceRevealed=!1),e.updateSearchScope){const s=this._editor.getSelections();s.some(o=>!o.isEmpty())&&(i.searchScope=s)}i.loop=e.loop,this._state.change(i,!1),this._model||(this._model=new Ax(this._editor,this._state))}start(e,t){return this._start(e,t)}moveToNextMatch(){return this._model?(this._model.moveToNextMatch(),!0):!1}moveToPrevMatch(){return this._model?(this._model.moveToPrevMatch(),!0):!1}goToMatch(e){return this._model?(this._model.moveToMatch(e),!0):!1}replace(){return this._model?(this._model.replace(),!0):!1}replaceAll(){var e;return this._model?!((e=this._editor.getModel())===null||e===void 0)&&e.isTooLargeForHeapOperation()?(this._notificationService.warn(v(\"too.large.for.replaceall\",\"The file is too large to perform a replace all operation.\")),!1):(this._model.replaceAll(),!0):!1}selectAllMatches(){return this._model?(this._model.selectAllMatches(),this._editor.focus(),!0):!1}async getGlobalBufferTerm(){return this._editor.getOption(41).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()?this._clipboardService.readFindText():\"\"}setGlobalBufferTerm(e){this._editor.getOption(41).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()&&this._clipboardService.writeFindText(e)}};Vr.ID=\"editor.contrib.findController\";Vr=mW=oge([zl(1,Ct),zl(2,dd),zl(3,zg),zl(4,ps),zl(5,$h)],Vr);let vW=class extends Vr{constructor(e,t,i,s,o,r,a,l,c){super(e,i,a,l,r,c),this._contextViewService=t,this._keybindingService=s,this._themeService=o,this._widget=null,this._findOptionsWidget=null}async _start(e,t){this._widget||this._createFindWidget();const i=this._editor.getSelection();let s=!1;switch(this._editor.getOption(41).autoFindInSelection){case\"always\":s=!0;break;case\"never\":s=!1;break;case\"multiline\":{s=!!i&&i.startLineNumber!==i.endLineNumber;break}}e.updateSearchScope=e.updateSearchScope||s,await super._start(e,t),this._widget&&(e.shouldFocus===2?this._widget.focusReplaceInput():e.shouldFocus===1&&this._widget.focusFindInput())}highlightFindOptions(e=!1){this._widget||this._createFindWidget(),this._state.isRevealed&&!e?this._widget.highlightFindOptions():this._findOptionsWidget.highlightFindOptions()}_createFindWidget(){this._widget=this._register(new $P(this._editor,this,this._state,this._contextViewService,this._keybindingService,this._contextKeyService,this._themeService,this._storageService,this._notificationService,this._hoverService)),this._findOptionsWidget=this._register(new zP(this._editor,this._state,this._keybindingService))}};vW=oge([zl(1,Wg),zl(2,Ct),zl(3,Li),zl(4,js),zl(5,ps),zl(6,dd),zl(7,zg),zl(8,$h)],vW);const lQe=ole(new sle({id:vn.StartFindAction,label:v(\"startFindAction\",\"Find\"),alias:\"Find\",precondition:pe.or(W.focus,pe.has(\"editorIsOpen\")),kbOpts:{kbExpr:null,primary:2084,weight:100},menuOpts:{menuId:R.MenubarEditMenu,group:\"3_find\",title:v({},\"&&Find\"),order:1}}));lQe.addImplementation(0,(n,e,t)=>{const i=Vr.get(e);return i?i.start({forceRevealReplace:!1,seedSearchStringFromSelection:e.getOption(41).seedSearchStringFromSelection!==\"never\"?\"single\":\"none\",seedSearchStringFromNonEmptySelection:e.getOption(41).seedSearchStringFromSelection===\"selection\",seedSearchStringFromGlobalClipboard:e.getOption(41).globalFindClipboard,shouldFocus:1,shouldAnimate:!0,updateSearchScope:!1,loop:e.getOption(41).loop}):!1});const cQe={description:\"Open a new In-Editor Find Widget.\",args:[{name:\"Open a new In-Editor Find Widget args\",schema:{properties:{searchString:{type:\"string\"},replaceString:{type:\"string\"},isRegex:{type:\"boolean\"},matchWholeWord:{type:\"boolean\"},isCaseSensitive:{type:\"boolean\"},preserveCase:{type:\"boolean\"},findInSelection:{type:\"boolean\"}}}}]};class dQe extends Ke{constructor(){super({id:vn.StartFindWithArgs,label:v(\"startFindWithArgsAction\",\"Find With Arguments\"),alias:\"Find With Arguments\",precondition:void 0,kbOpts:{kbExpr:null,primary:0,weight:100},metadata:cQe})}async run(e,t,i){const s=Vr.get(t);if(s){const o=i?{searchString:i.searchString,replaceString:i.replaceString,isReplaceRevealed:i.replaceString!==void 0,isRegex:i.isRegex,wholeWord:i.matchWholeWord,matchCase:i.isCaseSensitive,preserveCase:i.preserveCase}:{};await s.start({forceRevealReplace:!1,seedSearchStringFromSelection:s.getState().searchString.length===0&&t.getOption(41).seedSearchStringFromSelection!==\"never\"?\"single\":\"none\",seedSearchStringFromNonEmptySelection:t.getOption(41).seedSearchStringFromSelection===\"selection\",seedSearchStringFromGlobalClipboard:!0,shouldFocus:1,shouldAnimate:!0,updateSearchScope:(i==null?void 0:i.findInSelection)||!1,loop:t.getOption(41).loop},o),s.setGlobalBufferTerm(s.getState().searchString)}}}class uQe extends Ke{constructor(){super({id:vn.StartFindWithSelection,label:v(\"startFindWithSelectionAction\",\"Find With Selection\"),alias:\"Find With Selection\",precondition:void 0,kbOpts:{kbExpr:null,primary:0,mac:{primary:2083},weight:100}})}async run(e,t){const i=Vr.get(t);i&&(await i.start({forceRevealReplace:!1,seedSearchStringFromSelection:\"multiple\",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(41).loop}),i.setGlobalBufferTerm(i.getState().searchString))}}class rge extends Ke{async run(e,t){const i=Vr.get(t);i&&!this._run(i)&&(await i.start({forceRevealReplace:!1,seedSearchStringFromSelection:i.getState().searchString.length===0&&t.getOption(41).seedSearchStringFromSelection!==\"never\"?\"single\":\"none\",seedSearchStringFromNonEmptySelection:t.getOption(41).seedSearchStringFromSelection===\"selection\",seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(41).loop}),this._run(i))}}class hQe extends rge{constructor(){super({id:vn.NextMatchFindAction,label:v(\"findNextMatchAction\",\"Find Next\"),alias:\"Find Next\",precondition:void 0,kbOpts:[{kbExpr:W.focus,primary:61,mac:{primary:2085,secondary:[61]},weight:100},{kbExpr:pe.and(W.focus,VP),primary:3,weight:100}]})}_run(e){return e.moveToNextMatch()?(e.editor.pushUndoStop(),!0):!1}}class fQe extends rge{constructor(){super({id:vn.PreviousMatchFindAction,label:v(\"findPreviousMatchAction\",\"Find Previous\"),alias:\"Find Previous\",precondition:void 0,kbOpts:[{kbExpr:W.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100},{kbExpr:pe.and(W.focus,VP),primary:1027,weight:100}]})}_run(e){return e.moveToPrevMatch()}}class gQe extends Ke{constructor(){super({id:vn.GoToMatchFindAction,label:v(\"findMatchAction.goToMatch\",\"Go to Match...\"),alias:\"Go to Match...\",precondition:Ug}),this._highlightDecorations=[]}run(e,t,i){const s=Vr.get(t);if(!s)return;const o=s.getState().matchesCount;if(o<1){e.get(ps).notify({severity:$M.Warning,message:v(\"findMatchAction.noResults\",\"No matches. Try searching for something else.\")});return}const a=e.get(Cc).createInputBox();a.placeholder=v(\"findMatchAction.inputPlaceHolder\",\"Type a number to go to a specific match (between 1 and {0})\",o);const l=d=>{const u=parseInt(d);if(isNaN(u))return;const h=s.getState().matchesCount;if(u>0&&u<=h)return u-1;if(u<0&&u>=-h)return h+u},c=d=>{const u=l(d);if(typeof u==\"number\"){a.validationMessage=void 0,s.goToMatch(u);const h=s.getState().currentMatch;h&&this.addDecorations(t,h)}else a.validationMessage=v(\"findMatchAction.inputValidationMessage\",\"Please type a number between 1 and {0}\",s.getState().matchesCount),this.clearDecorations(t)};a.onDidChangeValue(d=>{c(d)}),a.onDidAccept(()=>{const d=l(a.value);typeof d==\"number\"?(s.goToMatch(d),a.hide()):a.validationMessage=v(\"findMatchAction.inputValidationMessage\",\"Please type a number between 1 and {0}\",s.getState().matchesCount)}),a.onDidHide(()=>{this.clearDecorations(t),a.dispose()}),a.show()}clearDecorations(e){e.changeDecorations(t=>{this._highlightDecorations=t.deltaDecorations(this._highlightDecorations,[])})}addDecorations(e,t){e.changeDecorations(i=>{this._highlightDecorations=i.deltaDecorations(this._highlightDecorations,[{range:t,options:{description:\"find-match-quick-access-range-highlight\",className:\"rangeHighlight\",isWholeLine:!0}},{range:t,options:{description:\"find-match-quick-access-range-highlight-overview\",overviewRuler:{color:Yn(ace),position:Sl.Full}}}])})}}class age extends Ke{async run(e,t){const i=Vr.get(t);if(!i)return;const s=_W(t,\"single\",!1);s&&i.setSearchString(s),this._run(i)||(await i.start({forceRevealReplace:!1,seedSearchStringFromSelection:\"none\",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(41).loop}),this._run(i))}}class pQe extends age{constructor(){super({id:vn.NextSelectionMatchFindAction,label:v(\"nextSelectionMatchFindAction\",\"Find Next Selection\"),alias:\"Find Next Selection\",precondition:void 0,kbOpts:{kbExpr:W.focus,primary:2109,weight:100}})}_run(e){return e.moveToNextMatch()}}class mQe extends age{constructor(){super({id:vn.PreviousSelectionMatchFindAction,label:v(\"previousSelectionMatchFindAction\",\"Find Previous Selection\"),alias:\"Find Previous Selection\",precondition:void 0,kbOpts:{kbExpr:W.focus,primary:3133,weight:100}})}_run(e){return e.moveToPrevMatch()}}const _Qe=ole(new sle({id:vn.StartFindReplaceAction,label:v(\"startReplace\",\"Replace\"),alias:\"Replace\",precondition:pe.or(W.focus,pe.has(\"editorIsOpen\")),kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menuOpts:{menuId:R.MenubarEditMenu,group:\"3_find\",title:v({},\"&&Replace\"),order:2}}));_Qe.addImplementation(0,(n,e,t)=>{if(!e.hasModel()||e.getOption(91))return!1;const i=Vr.get(e);if(!i)return!1;const s=e.getSelection(),o=i.isFindInputFocused(),r=!s.isEmpty()&&s.startLineNumber===s.endLineNumber&&e.getOption(41).seedSearchStringFromSelection!==\"never\"&&!o,a=o||r?2:1;return i.start({forceRevealReplace:!0,seedSearchStringFromSelection:r?\"single\":\"none\",seedSearchStringFromNonEmptySelection:e.getOption(41).seedSearchStringFromSelection===\"selection\",seedSearchStringFromGlobalClipboard:e.getOption(41).seedSearchStringFromSelection!==\"never\",shouldFocus:a,shouldAnimate:!0,updateSearchScope:!1,loop:e.getOption(41).loop})});bi(Vr.ID,vW,0);xe(dQe);xe(uQe);xe(hQe);xe(fQe);xe(gQe);xe(pQe);xe(mQe);const Cu=Us.bindToContribution(Vr.get);Fe(new Cu({id:vn.CloseFindWidgetCommand,precondition:Ug,handler:n=>n.closeFindWidget(),kbOpts:{weight:105,kbExpr:pe.and(W.focus,pe.not(\"isComposing\")),primary:9,secondary:[1033]}}));Fe(new Cu({id:vn.ToggleCaseSensitiveCommand,precondition:void 0,handler:n=>n.toggleCaseSensitive(),kbOpts:{weight:105,kbExpr:W.focus,primary:LT.primary,mac:LT.mac,win:LT.win,linux:LT.linux}}));Fe(new Cu({id:vn.ToggleWholeWordCommand,precondition:void 0,handler:n=>n.toggleWholeWords(),kbOpts:{weight:105,kbExpr:W.focus,primary:kT.primary,mac:kT.mac,win:kT.win,linux:kT.linux}}));Fe(new Cu({id:vn.ToggleRegexCommand,precondition:void 0,handler:n=>n.toggleRegex(),kbOpts:{weight:105,kbExpr:W.focus,primary:DT.primary,mac:DT.mac,win:DT.win,linux:DT.linux}}));Fe(new Cu({id:vn.ToggleSearchScopeCommand,precondition:void 0,handler:n=>n.toggleSearchScope(),kbOpts:{weight:105,kbExpr:W.focus,primary:IT.primary,mac:IT.mac,win:IT.win,linux:IT.linux}}));Fe(new Cu({id:vn.TogglePreserveCaseCommand,precondition:void 0,handler:n=>n.togglePreserveCase(),kbOpts:{weight:105,kbExpr:W.focus,primary:ET.primary,mac:ET.mac,win:ET.win,linux:ET.linux}}));Fe(new Cu({id:vn.ReplaceOneAction,precondition:Ug,handler:n=>n.replace(),kbOpts:{weight:105,kbExpr:W.focus,primary:3094}}));Fe(new Cu({id:vn.ReplaceOneAction,precondition:Ug,handler:n=>n.replace(),kbOpts:{weight:105,kbExpr:pe.and(W.focus,IU),primary:3}}));Fe(new Cu({id:vn.ReplaceAllAction,precondition:Ug,handler:n=>n.replaceAll(),kbOpts:{weight:105,kbExpr:W.focus,primary:2563}}));Fe(new Cu({id:vn.ReplaceAllAction,precondition:Ug,handler:n=>n.replaceAll(),kbOpts:{weight:105,kbExpr:pe.and(W.focus,IU),primary:void 0,mac:{primary:2051}}}));Fe(new Cu({id:vn.SelectAllMatchesAction,precondition:Ug,handler:n=>n.selectAllMatches(),kbOpts:{weight:105,kbExpr:W.focus,primary:515}}));const vQe={0:\" \",1:\"u\",2:\"r\"},fte=65535,Nd=16777215,gte=4278190080;class c3{constructor(e){const t=Math.ceil(e/32);this._states=new Uint32Array(t)}get(e){const t=e/32|0,i=e%32;return(this._states[t]&1<<i)!==0}set(e,t){const i=e/32|0,s=e%32,o=this._states[i];t?this._states[i]=o|1<<s:this._states[i]=o&~(1<<s)}}class al{constructor(e,t,i){if(e.length!==t.length||e.length>fte)throw new Error(\"invalid startIndexes or endIndexes size\");this._startIndexes=e,this._endIndexes=t,this._collapseStates=new c3(e.length),this._userDefinedStates=new c3(e.length),this._recoveredStates=new c3(e.length),this._types=i,this._parentsComputed=!1}ensureParentIndices(){if(!this._parentsComputed){this._parentsComputed=!0;const e=[],t=(i,s)=>{const o=e[e.length-1];return this.getStartLineNumber(o)<=i&&this.getEndLineNumber(o)>=s};for(let i=0,s=this._startIndexes.length;i<s;i++){const o=this._startIndexes[i],r=this._endIndexes[i];if(o>Nd||r>Nd)throw new Error(\"startLineNumber or endLineNumber must not exceed \"+Nd);for(;e.length>0&&!t(o,r);)e.pop();const a=e.length>0?e[e.length-1]:-1;e.push(i),this._startIndexes[i]=o+((a&255)<<24),this._endIndexes[i]=r+((a&65280)<<16)}}}get length(){return this._startIndexes.length}getStartLineNumber(e){return this._startIndexes[e]&Nd}getEndLineNumber(e){return this._endIndexes[e]&Nd}getType(e){return this._types?this._types[e]:void 0}hasTypes(){return!!this._types}isCollapsed(e){return this._collapseStates.get(e)}setCollapsed(e,t){this._collapseStates.set(e,t)}isUserDefined(e){return this._userDefinedStates.get(e)}setUserDefined(e,t){return this._userDefinedStates.set(e,t)}isRecovered(e){return this._recoveredStates.get(e)}setRecovered(e,t){return this._recoveredStates.set(e,t)}getSource(e){return this.isUserDefined(e)?1:this.isRecovered(e)?2:0}setSource(e,t){t===1?(this.setUserDefined(e,!0),this.setRecovered(e,!1)):t===2?(this.setUserDefined(e,!1),this.setRecovered(e,!0)):(this.setUserDefined(e,!1),this.setRecovered(e,!1))}setCollapsedAllOfType(e,t){let i=!1;if(this._types)for(let s=0;s<this._types.length;s++)this._types[s]===e&&(this.setCollapsed(s,t),i=!0);return i}toRegion(e){return new bQe(this,e)}getParentIndex(e){this.ensureParentIndices();const t=((this._startIndexes[e]&gte)>>>24)+((this._endIndexes[e]&gte)>>>16);return t===fte?-1:t}contains(e,t){return this.getStartLineNumber(e)<=t&&this.getEndLineNumber(e)>=t}findIndex(e){let t=0,i=this._startIndexes.length;if(i===0)return-1;for(;t<i;){const s=Math.floor((t+i)/2);e<this.getStartLineNumber(s)?i=s:t=s+1}return t-1}findRange(e){let t=this.findIndex(e);if(t>=0){if(this.getEndLineNumber(t)>=e)return t;for(t=this.getParentIndex(t);t!==-1;){if(this.contains(t,e))return t;t=this.getParentIndex(t)}}return-1}toString(){const e=[];for(let t=0;t<this.length;t++)e[t]=`[${vQe[this.getSource(t)]}${this.isCollapsed(t)?\"+\":\"-\"}] ${this.getStartLineNumber(t)}/${this.getEndLineNumber(t)}`;return e.join(\", \")}toFoldRange(e){return{startLineNumber:this._startIndexes[e]&Nd,endLineNumber:this._endIndexes[e]&Nd,type:this._types?this._types[e]:void 0,isCollapsed:this.isCollapsed(e),source:this.getSource(e)}}static fromFoldRanges(e){const t=e.length,i=new Uint32Array(t),s=new Uint32Array(t);let o=[],r=!1;for(let l=0;l<t;l++){const c=e[l];i[l]=c.startLineNumber,s[l]=c.endLineNumber,o.push(c.type),c.type&&(r=!0)}r||(o=void 0);const a=new al(i,s,o);for(let l=0;l<t;l++)e[l].isCollapsed&&a.setCollapsed(l,!0),a.setSource(l,e[l].source);return a}static sanitizeAndMerge(e,t,i){i=i??Number.MAX_VALUE;const s=(p,_)=>Array.isArray(p)?b=>b<_?p[b]:void 0:b=>b<_?p.toFoldRange(b):void 0,o=s(e,e.length),r=s(t,t.length);let a=0,l=0,c=o(0),d=r(0);const u=[];let h,f=0;const g=[];for(;c||d;){let p;if(d&&(!c||c.startLineNumber>=d.startLineNumber))c&&c.startLineNumber===d.startLineNumber?(d.source===1?p=d:(p=c,p.isCollapsed=d.isCollapsed&&c.endLineNumber===d.endLineNumber,p.source=0),c=o(++a)):(p=d,d.isCollapsed&&d.source===0&&(p.source=2)),d=r(++l);else{let _=l,b=d;for(;;){if(!b||b.startLineNumber>c.endLineNumber){p=c;break}if(b.source===1&&b.endLineNumber>c.endLineNumber)break;b=r(++_)}c=o(++a)}if(p){for(;h&&h.endLineNumber<p.startLineNumber;)h=u.pop();p.endLineNumber>p.startLineNumber&&p.startLineNumber>f&&p.endLineNumber<=i&&(!h||h.endLineNumber>=p.endLineNumber)&&(g.push(p),f=p.startLineNumber,h&&u.push(h),h=p)}}return g}}class bQe{constructor(e,t){this.ranges=e,this.index=t}get startLineNumber(){return this.ranges.getStartLineNumber(this.index)}get endLineNumber(){return this.ranges.getEndLineNumber(this.index)}get regionIndex(){return this.index}get parentIndex(){return this.ranges.getParentIndex(this.index)}get isCollapsed(){return this.ranges.isCollapsed(this.index)}containedBy(e){return e.startLineNumber<=this.startLineNumber&&e.endLineNumber>=this.endLineNumber}containsLine(e){return this.startLineNumber<=e&&e<=this.endLineNumber}}class CQe{get regions(){return this._regions}get textModel(){return this._textModel}constructor(e,t){this._updateEventEmitter=new X,this.onDidChange=this._updateEventEmitter.event,this._textModel=e,this._decorationProvider=t,this._regions=new al(new Uint32Array(0),new Uint32Array(0)),this._editorDecorationIds=[]}toggleCollapseState(e){if(!e.length)return;e=e.sort((i,s)=>i.regionIndex-s.regionIndex);const t={};this._decorationProvider.changeDecorations(i=>{let s=0,o=-1,r=-1;const a=l=>{for(;s<l;){const c=this._regions.getEndLineNumber(s),d=this._regions.isCollapsed(s);if(c<=o){const u=this.regions.getSource(s)!==0;i.changeDecorationOptions(this._editorDecorationIds[s],this._decorationProvider.getDecorationOption(d,c<=r,u))}d&&c>r&&(r=c),s++}};for(const l of e){const c=l.regionIndex,d=this._editorDecorationIds[c];if(d&&!t[d]){t[d]=!0,a(c);const u=!this._regions.isCollapsed(c);this._regions.setCollapsed(c,u),o=Math.max(o,this._regions.getEndLineNumber(c))}}a(this._regions.length)}),this._updateEventEmitter.fire({model:this,collapseStateChanged:e})}removeManualRanges(e){const t=new Array,i=s=>{for(const o of e)if(!(o.startLineNumber>s.endLineNumber||s.startLineNumber>o.endLineNumber))return!0;return!1};for(let s=0;s<this._regions.length;s++){const o=this._regions.toFoldRange(s);(o.source===0||!i(o))&&t.push(o)}this.updatePost(al.fromFoldRanges(t))}update(e,t=[]){const i=this._currentFoldedOrManualRanges(t),s=al.sanitizeAndMerge(e,i,this._textModel.getLineCount());this.updatePost(al.fromFoldRanges(s))}updatePost(e){const t=[];let i=-1;for(let s=0,o=e.length;s<o;s++){const r=e.getStartLineNumber(s),a=e.getEndLineNumber(s),l=e.isCollapsed(s),c=e.getSource(s)!==0,d={startLineNumber:r,startColumn:this._textModel.getLineMaxColumn(r),endLineNumber:a,endColumn:this._textModel.getLineMaxColumn(a)+1};t.push({range:d,options:this._decorationProvider.getDecorationOption(l,a<=i,c)}),l&&a>i&&(i=a)}this._decorationProvider.changeDecorations(s=>this._editorDecorationIds=s.deltaDecorations(this._editorDecorationIds,t)),this._regions=e,this._updateEventEmitter.fire({model:this})}_currentFoldedOrManualRanges(e=[]){const t=(s,o)=>{for(const r of e)if(s<r&&r<=o)return!0;return!1},i=[];for(let s=0,o=this._regions.length;s<o;s++){let r=this.regions.isCollapsed(s);const a=this.regions.getSource(s);if(r||a!==0){const l=this._regions.toFoldRange(s),c=this._textModel.getDecorationRange(this._editorDecorationIds[s]);c&&(r&&t(c.startLineNumber,c.endLineNumber)&&(r=!1),i.push({startLineNumber:c.startLineNumber,endLineNumber:c.endLineNumber,type:l.type,isCollapsed:r,source:a}))}}return i}getMemento(){const e=this._currentFoldedOrManualRanges(),t=[],i=this._textModel.getLineCount();for(let s=0,o=e.length;s<o;s++){const r=e[s];if(r.startLineNumber>=r.endLineNumber||r.startLineNumber<1||r.endLineNumber>i)continue;const a=this._getLinesChecksum(r.startLineNumber+1,r.endLineNumber);t.push({startLineNumber:r.startLineNumber,endLineNumber:r.endLineNumber,isCollapsed:r.isCollapsed,source:r.source,checksum:a})}return t.length>0?t:void 0}applyMemento(e){var t,i;if(!Array.isArray(e))return;const s=[],o=this._textModel.getLineCount();for(const a of e){if(a.startLineNumber>=a.endLineNumber||a.startLineNumber<1||a.endLineNumber>o)continue;const l=this._getLinesChecksum(a.startLineNumber+1,a.endLineNumber);(!a.checksum||l===a.checksum)&&s.push({startLineNumber:a.startLineNumber,endLineNumber:a.endLineNumber,type:void 0,isCollapsed:(t=a.isCollapsed)!==null&&t!==void 0?t:!0,source:(i=a.source)!==null&&i!==void 0?i:0})}const r=al.sanitizeAndMerge(this._regions,s,o);this.updatePost(al.fromFoldRanges(r))}_getLinesChecksum(e,t){return aM(this._textModel.getLineContent(e)+this._textModel.getLineContent(t))%1e6}dispose(){this._decorationProvider.removeDecorations(this._editorDecorationIds)}getAllRegionsAtLine(e,t){const i=[];if(this._regions){let s=this._regions.findRange(e),o=1;for(;s>=0;){const r=this._regions.toRegion(s);(!t||t(r,o))&&i.push(r),o++,s=r.parentIndex}}return i}getRegionAtLine(e){if(this._regions){const t=this._regions.findRange(e);if(t>=0)return this._regions.toRegion(t)}return null}getRegionsInside(e,t){const i=[],s=e?e.regionIndex+1:0,o=e?e.endLineNumber:Number.MAX_VALUE;if(t&&t.length===2){const r=[];for(let a=s,l=this._regions.length;a<l;a++){const c=this._regions.toRegion(a);if(this._regions.getStartLineNumber(a)<o){for(;r.length>0&&!c.containedBy(r[r.length-1]);)r.pop();r.push(c),t(c,r.length)&&i.push(c)}else break}}else for(let r=s,a=this._regions.length;r<a;r++){const l=this._regions.toRegion(r);if(this._regions.getStartLineNumber(r)<o)(!t||t(l))&&i.push(l);else break}return i}}function lge(n,e,t){const i=[];for(const s of t){const o=n.getRegionAtLine(s);if(o){const r=!o.isCollapsed;if(i.push(o),e>1){const a=n.getRegionsInside(o,(l,c)=>l.isCollapsed!==r&&c<e);i.push(...a)}}}n.toggleCollapseState(i)}function Zw(n,e,t=Number.MAX_VALUE,i){const s=[];if(i&&i.length>0)for(const o of i){const r=n.getRegionAtLine(o);if(r&&(r.isCollapsed!==e&&s.push(r),t>1)){const a=n.getRegionsInside(r,(l,c)=>l.isCollapsed!==e&&c<t);s.push(...a)}}else{const o=n.getRegionsInside(null,(r,a)=>r.isCollapsed!==e&&a<t);s.push(...o)}n.toggleCollapseState(s)}function cge(n,e,t,i){const s=[];for(const o of i){const r=n.getAllRegionsAtLine(o,(a,l)=>a.isCollapsed!==e&&l<=t);s.push(...r)}n.toggleCollapseState(s)}function wQe(n,e,t){const i=[];for(const s of t){const o=n.getAllRegionsAtLine(s,r=>r.isCollapsed!==e);o.length>0&&i.push(o[0])}n.toggleCollapseState(i)}function yQe(n,e,t,i){const s=(r,a)=>a===e&&r.isCollapsed!==t&&!i.some(l=>r.containsLine(l)),o=n.getRegionsInside(null,s);n.toggleCollapseState(o)}function dge(n,e,t){const i=[];for(const r of t){const a=n.getAllRegionsAtLine(r,void 0);a.length>0&&i.push(a[0])}const s=r=>i.every(a=>!a.containedBy(r)&&!r.containedBy(a))&&r.isCollapsed!==e,o=n.getRegionsInside(null,s);n.toggleCollapseState(o)}function NU(n,e,t){const i=n.textModel,s=n.regions,o=[];for(let r=s.length-1;r>=0;r--)if(t!==s.isCollapsed(r)){const a=s.getStartLineNumber(r);e.test(i.getLineContent(a))&&o.push(s.toRegion(r))}n.toggleCollapseState(o)}function AU(n,e,t){const i=n.regions,s=[];for(let o=i.length-1;o>=0;o--)t!==i.isCollapsed(o)&&e===i.getType(o)&&s.push(i.toRegion(o));n.toggleCollapseState(s)}function SQe(n,e){let t=null;const i=e.getRegionAtLine(n);if(i!==null&&(t=i.startLineNumber,n===t)){const s=i.parentIndex;s!==-1?t=e.regions.getStartLineNumber(s):t=null}return t}function xQe(n,e){let t=e.getRegionAtLine(n);if(t!==null&&t.startLineNumber===n){if(n!==t.startLineNumber)return t.startLineNumber;{const i=t.parentIndex;let s=0;for(i!==-1&&(s=e.regions.getStartLineNumber(t.parentIndex));t!==null;)if(t.regionIndex>0){if(t=e.regions.toRegion(t.regionIndex-1),t.startLineNumber<=s)return null;if(t.parentIndex===i)return t.startLineNumber}else return null}}else if(e.regions.length>0)for(t=e.regions.toRegion(e.regions.length-1);t!==null;){if(t.startLineNumber<n)return t.startLineNumber;t.regionIndex>0?t=e.regions.toRegion(t.regionIndex-1):t=null}return null}function LQe(n,e){let t=e.getRegionAtLine(n);if(t!==null&&t.startLineNumber===n){const i=t.parentIndex;let s=0;if(i!==-1)s=e.regions.getEndLineNumber(t.parentIndex);else{if(e.regions.length===0)return null;s=e.regions.getEndLineNumber(e.regions.length-1)}for(;t!==null;)if(t.regionIndex<e.regions.length){if(t=e.regions.toRegion(t.regionIndex+1),t.startLineNumber>=s)return null;if(t.parentIndex===i)return t.startLineNumber}else return null}else if(e.regions.length>0)for(t=e.regions.toRegion(0);t!==null;){if(t.startLineNumber>n)return t.startLineNumber;t.regionIndex<e.regions.length?t=e.regions.toRegion(t.regionIndex+1):t=null}return null}class kQe{get onDidChange(){return this._updateEventEmitter.event}get hiddenRanges(){return this._hiddenRanges}constructor(e){this._updateEventEmitter=new X,this._hasLineChanges=!1,this._foldingModel=e,this._foldingModelListener=e.onDidChange(t=>this.updateHiddenRanges()),this._hiddenRanges=[],e.regions.length&&this.updateHiddenRanges()}notifyChangeModelContent(e){this._hiddenRanges.length&&!this._hasLineChanges&&(this._hasLineChanges=e.changes.some(t=>t.range.endLineNumber!==t.range.startLineNumber||Hm(t.text)[0]!==0))}updateHiddenRanges(){let e=!1;const t=[];let i=0,s=0,o=Number.MAX_VALUE,r=-1;const a=this._foldingModel.regions;for(;i<a.length;i++){if(!a.isCollapsed(i))continue;const l=a.getStartLineNumber(i)+1,c=a.getEndLineNumber(i);o<=l&&c<=r||(!e&&s<this._hiddenRanges.length&&this._hiddenRanges[s].startLineNumber===l&&this._hiddenRanges[s].endLineNumber===c?(t.push(this._hiddenRanges[s]),s++):(e=!0,t.push(new A(l,1,c,1))),o=l,r=c)}(this._hasLineChanges||e||s<this._hiddenRanges.length)&&this.applyHiddenRanges(t)}applyHiddenRanges(e){this._hiddenRanges=e,this._hasLineChanges=!1,this._updateEventEmitter.fire(e)}hasRanges(){return this._hiddenRanges.length>0}isHidden(e){return pte(this._hiddenRanges,e)!==null}adjustSelections(e){let t=!1;const i=this._foldingModel.textModel;let s=null;const o=r=>((!s||!DQe(r,s))&&(s=pte(this._hiddenRanges,r)),s?s.startLineNumber-1:null);for(let r=0,a=e.length;r<a;r++){let l=e[r];const c=o(l.startLineNumber);c&&(l=l.setStartPosition(c,i.getLineMaxColumn(c)),t=!0);const d=o(l.endLineNumber);d&&(l=l.setEndPosition(d,i.getLineMaxColumn(d)),t=!0),e[r]=l}return t}dispose(){this.hiddenRanges.length>0&&(this._hiddenRanges=[],this._updateEventEmitter.fire(this._hiddenRanges)),this._foldingModelListener&&(this._foldingModelListener.dispose(),this._foldingModelListener=null)}}function DQe(n,e){return n>=e.startLineNumber&&n<=e.endLineNumber}function pte(n,e){const t=vL(n,i=>e<i.startLineNumber)-1;return t>=0&&n[t].endLineNumber>=e?n[t]:null}const IQe=5e3,EQe=\"indent\";class RU{constructor(e,t,i){this.editorModel=e,this.languageConfigurationService=t,this.foldingRangesLimit=i,this.id=EQe}dispose(){}compute(e){const t=this.languageConfigurationService.getLanguageConfiguration(this.editorModel.getLanguageId()).foldingRules,i=t&&!!t.offSide,s=t&&t.markers;return Promise.resolve(AQe(this.editorModel,i,s,this.foldingRangesLimit))}}let TQe=class{constructor(e){this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=e}insertFirst(e,t,i){if(e>Nd||t>Nd)return;const s=this._length;this._startIndexes[s]=e,this._endIndexes[s]=t,this._length++,i<1e3&&(this._indentOccurrences[i]=(this._indentOccurrences[i]||0)+1)}toIndentRanges(e){const t=this._foldingRangesLimit.limit;if(this._length<=t){this._foldingRangesLimit.update(this._length,!1);const i=new Uint32Array(this._length),s=new Uint32Array(this._length);for(let o=this._length-1,r=0;o>=0;o--,r++)i[r]=this._startIndexes[o],s[r]=this._endIndexes[o];return new al(i,s)}else{this._foldingRangesLimit.update(this._length,t);let i=0,s=this._indentOccurrences.length;for(let l=0;l<this._indentOccurrences.length;l++){const c=this._indentOccurrences[l];if(c){if(c+i>t){s=l;break}i+=c}}const o=e.getOptions().tabSize,r=new Uint32Array(t),a=new Uint32Array(t);for(let l=this._length-1,c=0;l>=0;l--){const d=this._startIndexes[l],u=e.getLineContent(d),h=WM(u,o);(h<s||h===s&&i++<t)&&(r[c]=d,a[c]=this._endIndexes[l],c++)}return new al(r,a)}}};const NQe={limit:IQe,update:()=>{}};function AQe(n,e,t,i=NQe){const s=n.getOptions().tabSize,o=new TQe(i);let r;t&&(r=new RegExp(`(${t.start.source})|(?:${t.end.source})`));const a=[],l=n.getLineCount()+1;a.push({indent:-1,endAbove:l,line:l});for(let c=n.getLineCount();c>0;c--){const d=n.getLineContent(c),u=WM(d,s);let h=a[a.length-1];if(u===-1){e&&(h.endAbove=c);continue}let f;if(r&&(f=d.match(r)))if(f[1]){let g=a.length-1;for(;g>0&&a[g].indent!==-2;)g--;if(g>0){a.length=g+1,h=a[g],o.insertFirst(c,h.line,u),h.line=c,h.indent=u,h.endAbove=c;continue}}else{a.push({indent:-2,endAbove:c,line:c});continue}if(h.indent>u){do a.pop(),h=a[a.length-1];while(h.indent>u);const g=h.endAbove-1;g-c>=1&&o.insertFirst(c,g,u)}h.indent===u?h.endAbove=c:a.push({indent:u,endAbove:c,line:c})}return o.toIndentRanges(n)}const RQe=V(\"editor.foldBackground\",{light:ut(jp,.3),dark:ut(jp,.3),hcDark:null,hcLight:null},v(\"foldBackgroundBackground\",\"Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations.\"),!0);V(\"editorGutter.foldingControlForeground\",{dark:ah,light:ah,hcDark:ah,hcLight:ah},v(\"editorGutter.foldingControlForeground\",\"Color of the folding control in the editor gutter.\"));const UP=Jn(\"folding-expanded\",Te.chevronDown,v(\"foldingExpandedIcon\",\"Icon for expanded ranges in the editor glyph margin.\")),jP=Jn(\"folding-collapsed\",Te.chevronRight,v(\"foldingCollapsedIcon\",\"Icon for collapsed ranges in the editor glyph margin.\")),uge=Jn(\"folding-manual-collapsed\",jP,v(\"foldingManualCollapedIcon\",\"Icon for manually collapsed ranges in the editor glyph margin.\")),hge=Jn(\"folding-manual-expanded\",UP,v(\"foldingManualExpandedIcon\",\"Icon for manually expanded ranges in the editor glyph margin.\")),MU={color:Yn(RQe),position:1},Yw=v(\"linesCollapsed\",\"Click to expand the range.\"),KP=v(\"linesExpanded\",\"Click to collapse the range.\");class xs{constructor(e){this.editor=e,this.showFoldingControls=\"mouseover\",this.showFoldingHighlights=!0}getDecorationOption(e,t,i){return t?xs.HIDDEN_RANGE_DECORATION:this.showFoldingControls===\"never\"?e?this.showFoldingHighlights?xs.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION:xs.NO_CONTROLS_COLLAPSED_RANGE_DECORATION:xs.NO_CONTROLS_EXPANDED_RANGE_DECORATION:e?i?this.showFoldingHighlights?xs.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:xs.MANUALLY_COLLAPSED_VISUAL_DECORATION:this.showFoldingHighlights?xs.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:xs.COLLAPSED_VISUAL_DECORATION:this.showFoldingControls===\"mouseover\"?i?xs.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION:xs.EXPANDED_AUTO_HIDE_VISUAL_DECORATION:i?xs.MANUALLY_EXPANDED_VISUAL_DECORATION:xs.EXPANDED_VISUAL_DECORATION}changeDecorations(e){return this.editor.changeDecorations(e)}removeDecorations(e){this.editor.removeDecorations(e)}}xs.COLLAPSED_VISUAL_DECORATION=Wt.register({description:\"folding-collapsed-visual-decoration\",stickiness:0,afterContentClassName:\"inline-folded\",isWholeLine:!0,linesDecorationsTooltip:Yw,firstLineDecorationClassName:_t.asClassName(jP)});xs.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=Wt.register({description:\"folding-collapsed-highlighted-visual-decoration\",stickiness:0,afterContentClassName:\"inline-folded\",className:\"folded-background\",minimap:MU,isWholeLine:!0,linesDecorationsTooltip:Yw,firstLineDecorationClassName:_t.asClassName(jP)});xs.MANUALLY_COLLAPSED_VISUAL_DECORATION=Wt.register({description:\"folding-manually-collapsed-visual-decoration\",stickiness:0,afterContentClassName:\"inline-folded\",isWholeLine:!0,linesDecorationsTooltip:Yw,firstLineDecorationClassName:_t.asClassName(uge)});xs.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=Wt.register({description:\"folding-manually-collapsed-highlighted-visual-decoration\",stickiness:0,afterContentClassName:\"inline-folded\",className:\"folded-background\",minimap:MU,isWholeLine:!0,linesDecorationsTooltip:Yw,firstLineDecorationClassName:_t.asClassName(uge)});xs.NO_CONTROLS_COLLAPSED_RANGE_DECORATION=Wt.register({description:\"folding-no-controls-range-decoration\",stickiness:0,afterContentClassName:\"inline-folded\",isWholeLine:!0,linesDecorationsTooltip:Yw});xs.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION=Wt.register({description:\"folding-no-controls-range-decoration\",stickiness:0,afterContentClassName:\"inline-folded\",className:\"folded-background\",minimap:MU,isWholeLine:!0,linesDecorationsTooltip:Yw});xs.EXPANDED_VISUAL_DECORATION=Wt.register({description:\"folding-expanded-visual-decoration\",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:\"alwaysShowFoldIcons \"+_t.asClassName(UP),linesDecorationsTooltip:KP});xs.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=Wt.register({description:\"folding-expanded-auto-hide-visual-decoration\",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:_t.asClassName(UP),linesDecorationsTooltip:KP});xs.MANUALLY_EXPANDED_VISUAL_DECORATION=Wt.register({description:\"folding-manually-expanded-visual-decoration\",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:\"alwaysShowFoldIcons \"+_t.asClassName(hge),linesDecorationsTooltip:KP});xs.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION=Wt.register({description:\"folding-manually-expanded-auto-hide-visual-decoration\",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:_t.asClassName(hge),linesDecorationsTooltip:KP});xs.NO_CONTROLS_EXPANDED_RANGE_DECORATION=Wt.register({description:\"folding-no-controls-range-decoration\",stickiness:0,isWholeLine:!0});xs.HIDDEN_RANGE_DECORATION=Wt.register({description:\"folding-hidden-range-decoration\",stickiness:1});const MQe={},PQe=\"syntax\";class PU{constructor(e,t,i,s,o){this.editorModel=e,this.providers=t,this.handleFoldingRangesChange=i,this.foldingRangesLimit=s,this.fallbackRangeProvider=o,this.id=PQe,this.disposables=new be,o&&this.disposables.add(o);for(const r of t)typeof r.onDidChange==\"function\"&&this.disposables.add(r.onDidChange(i))}compute(e){return OQe(this.providers,this.editorModel,e).then(t=>{var i,s;return t?BQe(t,this.foldingRangesLimit):(s=(i=this.fallbackRangeProvider)===null||i===void 0?void 0:i.compute(e))!==null&&s!==void 0?s:null})}dispose(){this.disposables.dispose()}}function OQe(n,e,t){let i=null;const s=n.map((o,r)=>Promise.resolve(o.provideFoldingRanges(e,MQe,t)).then(a=>{if(!t.isCancellationRequested&&Array.isArray(a)){Array.isArray(i)||(i=[]);const l=e.getLineCount();for(const c of a)c.start>0&&c.end>c.start&&c.end<=l&&i.push({start:c.start,end:c.end,rank:r,kind:c.kind})}},as));return Promise.all(s).then(o=>i)}class FQe{constructor(e){this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=e}add(e,t,i,s){if(e>Nd||t>Nd)return;const o=this._length;this._startIndexes[o]=e,this._endIndexes[o]=t,this._nestingLevels[o]=s,this._types[o]=i,this._length++,s<30&&(this._nestingLevelCounts[s]=(this._nestingLevelCounts[s]||0)+1)}toIndentRanges(){const e=this._foldingRangesLimit.limit;if(this._length<=e){this._foldingRangesLimit.update(this._length,!1);const t=new Uint32Array(this._length),i=new Uint32Array(this._length);for(let s=0;s<this._length;s++)t[s]=this._startIndexes[s],i[s]=this._endIndexes[s];return new al(t,i,this._types)}else{this._foldingRangesLimit.update(this._length,e);let t=0,i=this._nestingLevelCounts.length;for(let a=0;a<this._nestingLevelCounts.length;a++){const l=this._nestingLevelCounts[a];if(l){if(l+t>e){i=a;break}t+=l}}const s=new Uint32Array(e),o=new Uint32Array(e),r=[];for(let a=0,l=0;a<this._length;a++){const c=this._nestingLevels[a];(c<i||c===i&&t++<e)&&(s[l]=this._startIndexes[a],o[l]=this._endIndexes[a],r[l]=this._types[a],l++)}return new al(s,o,r)}}}function BQe(n,e){const t=n.sort((r,a)=>{let l=r.start-a.start;return l===0&&(l=r.rank-a.rank),l}),i=new FQe(e);let s;const o=[];for(const r of t)if(!s)s=r,i.add(r.start,r.end,r.kind&&r.kind.value,o.length);else if(r.start>s.start)if(r.end<=s.end)o.push(s),s=r,i.add(r.start,r.end,r.kind&&r.kind.value,o.length);else{if(r.start>s.end){do s=o.pop();while(s&&r.start>s.end);s&&o.push(s),s=r}i.add(r.start,r.end,r.kind&&r.kind.value,o.length)}return i.toIndentRanges()}var WQe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},tS=function(n,e){return function(t,i){e(t,i,n)}},r1;const tr=new He(\"foldingEnabled\",!1);let Rg=r1=class extends ne{static get(e){return e.getContribution(r1.ID)}static getFoldingRangeProviders(e,t){var i,s;const o=e.foldingRangeProvider.ordered(t);return(s=(i=r1._foldingRangeSelector)===null||i===void 0?void 0:i.call(r1,o,t))!==null&&s!==void 0?s:o}constructor(e,t,i,s,o,r){super(),this.contextKeyService=t,this.languageConfigurationService=i,this.languageFeaturesService=r,this.localToDispose=this._register(new be),this.editor=e,this._foldingLimitReporter=new fge(e);const a=this.editor.getOptions();this._isEnabled=a.get(43),this._useFoldingProviders=a.get(44)!==\"indentation\",this._unfoldOnClickAfterEndOfLine=a.get(48),this._restoringViewState=!1,this._currentModelHasFoldedImports=!1,this._foldingImportsByDefault=a.get(46),this.updateDebounceInfo=o.for(r.foldingRangeProvider,\"Folding\",{min:200}),this.foldingModel=null,this.hiddenRangeModel=null,this.rangeProvider=null,this.foldingRegionPromise=null,this.foldingModelPromise=null,this.updateScheduler=null,this.cursorChangedScheduler=null,this.mouseDownInfo=null,this.foldingDecorationProvider=new xs(e),this.foldingDecorationProvider.showFoldingControls=a.get(110),this.foldingDecorationProvider.showFoldingHighlights=a.get(45),this.foldingEnabled=tr.bindTo(this.contextKeyService),this.foldingEnabled.set(this._isEnabled),this._register(this.editor.onDidChangeModel(()=>this.onModelChanged())),this._register(this.editor.onDidChangeConfiguration(l=>{if(l.hasChanged(43)&&(this._isEnabled=this.editor.getOptions().get(43),this.foldingEnabled.set(this._isEnabled),this.onModelChanged()),l.hasChanged(47)&&this.onModelChanged(),l.hasChanged(110)||l.hasChanged(45)){const c=this.editor.getOptions();this.foldingDecorationProvider.showFoldingControls=c.get(110),this.foldingDecorationProvider.showFoldingHighlights=c.get(45),this.triggerFoldingModelChanged()}l.hasChanged(44)&&(this._useFoldingProviders=this.editor.getOptions().get(44)!==\"indentation\",this.onFoldingStrategyChanged()),l.hasChanged(48)&&(this._unfoldOnClickAfterEndOfLine=this.editor.getOptions().get(48)),l.hasChanged(46)&&(this._foldingImportsByDefault=this.editor.getOptions().get(46))})),this.onModelChanged()}saveViewState(){const e=this.editor.getModel();if(!e||!this._isEnabled||e.isTooLargeForTokenization())return{};if(this.foldingModel){const t=this.foldingModel.getMemento(),i=this.rangeProvider?this.rangeProvider.id:void 0;return{collapsedRegions:t,lineCount:e.getLineCount(),provider:i,foldedImports:this._currentModelHasFoldedImports}}}restoreViewState(e){const t=this.editor.getModel();if(!(!t||!this._isEnabled||t.isTooLargeForTokenization()||!this.hiddenRangeModel)&&e&&(this._currentModelHasFoldedImports=!!e.foldedImports,e.collapsedRegions&&e.collapsedRegions.length>0&&this.foldingModel)){this._restoringViewState=!0;try{this.foldingModel.applyMemento(e.collapsedRegions)}finally{this._restoringViewState=!1}}}onModelChanged(){this.localToDispose.clear();const e=this.editor.getModel();!this._isEnabled||!e||e.isTooLargeForTokenization()||(this._currentModelHasFoldedImports=!1,this.foldingModel=new CQe(e,this.foldingDecorationProvider),this.localToDispose.add(this.foldingModel),this.hiddenRangeModel=new kQe(this.foldingModel),this.localToDispose.add(this.hiddenRangeModel),this.localToDispose.add(this.hiddenRangeModel.onDidChange(t=>this.onHiddenRangesChanges(t))),this.updateScheduler=new sd(this.updateDebounceInfo.get(e)),this.cursorChangedScheduler=new Xi(()=>this.revealCursor(),200),this.localToDispose.add(this.cursorChangedScheduler),this.localToDispose.add(this.languageFeaturesService.foldingRangeProvider.onDidChange(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelLanguageConfiguration(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelContent(t=>this.onDidChangeModelContent(t))),this.localToDispose.add(this.editor.onDidChangeCursorPosition(()=>this.onCursorPositionChanged())),this.localToDispose.add(this.editor.onMouseDown(t=>this.onEditorMouseDown(t))),this.localToDispose.add(this.editor.onMouseUp(t=>this.onEditorMouseUp(t))),this.localToDispose.add({dispose:()=>{var t,i;this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),(t=this.updateScheduler)===null||t===void 0||t.cancel(),this.updateScheduler=null,this.foldingModel=null,this.foldingModelPromise=null,this.hiddenRangeModel=null,this.cursorChangedScheduler=null,(i=this.rangeProvider)===null||i===void 0||i.dispose(),this.rangeProvider=null}}),this.triggerFoldingModelChanged())}onFoldingStrategyChanged(){var e;(e=this.rangeProvider)===null||e===void 0||e.dispose(),this.rangeProvider=null,this.triggerFoldingModelChanged()}getRangeProvider(e){if(this.rangeProvider)return this.rangeProvider;const t=new RU(e,this.languageConfigurationService,this._foldingLimitReporter);if(this.rangeProvider=t,this._useFoldingProviders&&this.foldingModel){const i=r1.getFoldingRangeProviders(this.languageFeaturesService,e);i.length>0&&(this.rangeProvider=new PU(e,i,()=>this.triggerFoldingModelChanged(),this._foldingLimitReporter,t))}return this.rangeProvider}getFoldingModel(){return this.foldingModelPromise}onDidChangeModelContent(e){var t;(t=this.hiddenRangeModel)===null||t===void 0||t.notifyChangeModelContent(e),this.triggerFoldingModelChanged()}triggerFoldingModelChanged(){this.updateScheduler&&(this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),this.foldingModelPromise=this.updateScheduler.trigger(()=>{const e=this.foldingModel;if(!e)return null;const t=new xo,i=this.getRangeProvider(e.textModel),s=this.foldingRegionPromise=Xs(o=>i.compute(o));return s.then(o=>{if(o&&s===this.foldingRegionPromise){let r;if(this._foldingImportsByDefault&&!this._currentModelHasFoldedImports){const d=o.setCollapsedAllOfType(Nr.Imports.value,!0);d&&(r=uu.capture(this.editor),this._currentModelHasFoldedImports=d)}const a=this.editor.getSelections(),l=a?a.map(d=>d.startLineNumber):[];e.update(o,l),r==null||r.restore(this.editor);const c=this.updateDebounceInfo.update(e.textModel,t.elapsed());this.updateScheduler&&(this.updateScheduler.defaultDelay=c)}return e})}).then(void 0,e=>(Mt(e),null)))}onHiddenRangesChanges(e){if(this.hiddenRangeModel&&e.length&&!this._restoringViewState){const t=this.editor.getSelections();t&&this.hiddenRangeModel.adjustSelections(t)&&this.editor.setSelections(t)}this.editor.setHiddenAreas(e,this)}onCursorPositionChanged(){this.hiddenRangeModel&&this.hiddenRangeModel.hasRanges()&&this.cursorChangedScheduler.schedule()}revealCursor(){const e=this.getFoldingModel();e&&e.then(t=>{if(t){const i=this.editor.getSelections();if(i&&i.length>0){const s=[];for(const o of i){const r=o.selectionStartLineNumber;this.hiddenRangeModel&&this.hiddenRangeModel.isHidden(r)&&s.push(...t.getAllRegionsAtLine(r,a=>a.isCollapsed&&r>a.startLineNumber))}s.length&&(t.toggleCollapseState(s),this.reveal(i[0].getPosition()))}}}).then(void 0,Mt)}onEditorMouseDown(e){if(this.mouseDownInfo=null,!this.hiddenRangeModel||!e.target||!e.target.range||!e.event.leftButton&&!e.event.middleButton)return;const t=e.target.range;let i=!1;switch(e.target.type){case 4:{const s=e.target.detail,o=e.target.element.offsetLeft;if(s.offsetX-o<4)return;i=!0;break}case 7:{if(this._unfoldOnClickAfterEndOfLine&&this.hiddenRangeModel.hasRanges()&&!e.target.detail.isAfterLines)break;return}case 6:{if(this.hiddenRangeModel.hasRanges()){const s=this.editor.getModel();if(s&&t.startColumn===s.getLineMaxColumn(t.startLineNumber))break}return}default:return}this.mouseDownInfo={lineNumber:t.startLineNumber,iconClicked:i}}onEditorMouseUp(e){const t=this.foldingModel;if(!t||!this.mouseDownInfo||!e.target)return;const i=this.mouseDownInfo.lineNumber,s=this.mouseDownInfo.iconClicked,o=e.target.range;if(!o||o.startLineNumber!==i)return;if(s){if(e.target.type!==4)return}else{const a=this.editor.getModel();if(!a||o.startColumn!==a.getLineMaxColumn(i))return}const r=t.getRegionAtLine(i);if(r&&r.startLineNumber===i){const a=r.isCollapsed;if(s||a){const l=e.event.altKey;let c=[];if(l){const d=h=>!h.containedBy(r)&&!r.containedBy(h),u=t.getRegionsInside(null,d);for(const h of u)h.isCollapsed&&c.push(h);c.length===0&&(c=u)}else{const d=e.event.middleButton||e.event.shiftKey;if(d)for(const u of t.getRegionsInside(r))u.isCollapsed===a&&c.push(u);(a||!d||c.length===0)&&c.push(r)}t.toggleCollapseState(c),this.reveal({lineNumber:i,column:1})}}}reveal(e){this.editor.revealPositionInCenterIfOutsideViewport(e,0)}};Rg.ID=\"editor.contrib.folding\";Rg=r1=WQe([tS(1,Ct),tS(2,gn),tS(3,ps),tS(4,_c),tS(5,Xe)],Rg);class fge{constructor(e){this.editor=e,this._onDidChange=new X,this._computed=0,this._limited=!1}get limit(){return this.editor.getOptions().get(47)}update(e,t){(e!==this._computed||t!==this._limited)&&(this._computed=e,this._limited=t,this._onDidChange.fire())}}class pr extends Ke{runEditorCommand(e,t,i){const s=e.get(gn),o=Rg.get(t);if(!o)return;const r=o.getFoldingModel();if(r)return this.reportTelemetry(e,t),r.then(a=>{if(a){this.invoke(o,a,t,i,s);const l=t.getSelection();l&&o.reveal(l.getStartPosition())}})}getSelectedLines(e){const t=e.getSelections();return t?t.map(i=>i.startLineNumber):[]}getLineNumbers(e,t){return e&&e.selectionLines?e.selectionLines.map(i=>i+1):this.getSelectedLines(t)}run(e,t){}}function gge(n){if(!na(n)){if(!Er(n))return!1;const e=n;if(!na(e.levels)&&!Nm(e.levels)||!na(e.direction)&&!Pr(e.direction)||!na(e.selectionLines)&&(!Array.isArray(e.selectionLines)||!e.selectionLines.every(Nm)))return!1}return!0}class HQe extends pr{constructor(){super({id:\"editor.unfold\",label:v(\"unfoldAction.label\",\"Unfold\"),alias:\"Unfold\",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,primary:3166,mac:{primary:2654},weight:100},metadata:{description:\"Unfold the content in the editor\",args:[{name:\"Unfold editor argument\",description:`Property-value pairs that can be passed through this argument:\n\t\t\t\t\t\t* 'levels': Number of levels to unfold. If not set, defaults to 1.\n\t\t\t\t\t\t* 'direction': If 'up', unfold given number of levels up otherwise unfolds down.\n\t\t\t\t\t\t* 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the unfold action to. If not set, the active selection(s) will be used.\n\t\t\t\t\t\t`,constraint:gge,schema:{type:\"object\",properties:{levels:{type:\"number\",default:1},direction:{type:\"string\",enum:[\"up\",\"down\"],default:\"down\"},selectionLines:{type:\"array\",items:{type:\"number\"}}}}}]}})}invoke(e,t,i,s){const o=s&&s.levels||1,r=this.getLineNumbers(s,i);s&&s.direction===\"up\"?cge(t,!1,o,r):Zw(t,!1,o,r)}}class VQe extends pr{constructor(){super({id:\"editor.unfoldRecursively\",label:v(\"unFoldRecursivelyAction.label\",\"Unfold Recursively\"),alias:\"Unfold Recursively\",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2142),weight:100}})}invoke(e,t,i,s){Zw(t,!1,Number.MAX_VALUE,this.getSelectedLines(i))}}class zQe extends pr{constructor(){super({id:\"editor.fold\",label:v(\"foldAction.label\",\"Fold\"),alias:\"Fold\",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,primary:3164,mac:{primary:2652},weight:100},metadata:{description:\"Fold the content in the editor\",args:[{name:\"Fold editor argument\",description:`Property-value pairs that can be passed through this argument:\n\t\t\t\t\t\t\t* 'levels': Number of levels to fold.\n\t\t\t\t\t\t\t* 'direction': If 'up', folds given number of levels up otherwise folds down.\n\t\t\t\t\t\t\t* 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the fold action to. If not set, the active selection(s) will be used.\n\t\t\t\t\t\t\tIf no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead.\n\t\t\t\t\t\t`,constraint:gge,schema:{type:\"object\",properties:{levels:{type:\"number\"},direction:{type:\"string\",enum:[\"up\",\"down\"]},selectionLines:{type:\"array\",items:{type:\"number\"}}}}}]}})}invoke(e,t,i,s){const o=this.getLineNumbers(s,i),r=s&&s.levels,a=s&&s.direction;typeof r!=\"number\"&&typeof a!=\"string\"?wQe(t,!0,o):a===\"up\"?cge(t,!0,r||1,o):Zw(t,!0,r||1,o)}}class $Qe extends pr{constructor(){super({id:\"editor.toggleFold\",label:v(\"toggleFoldAction.label\",\"Toggle Fold\"),alias:\"Toggle Fold\",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2090),weight:100}})}invoke(e,t,i){const s=this.getSelectedLines(i);lge(t,1,s)}}class UQe extends pr{constructor(){super({id:\"editor.foldRecursively\",label:v(\"foldRecursivelyAction.label\",\"Fold Recursively\"),alias:\"Fold Recursively\",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2140),weight:100}})}invoke(e,t,i){const s=this.getSelectedLines(i);Zw(t,!0,Number.MAX_VALUE,s)}}class jQe extends pr{constructor(){super({id:\"editor.foldAllBlockComments\",label:v(\"foldAllBlockComments.label\",\"Fold All Block Comments\"),alias:\"Fold All Block Comments\",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2138),weight:100}})}invoke(e,t,i,s,o){if(t.regions.hasTypes())AU(t,Nr.Comment.value,!0);else{const r=i.getModel();if(!r)return;const a=o.getLanguageConfiguration(r.getLanguageId()).comments;if(a&&a.blockCommentStartToken){const l=new RegExp(\"^\\\\s*\"+wl(a.blockCommentStartToken));NU(t,l,!0)}}}}class KQe extends pr{constructor(){super({id:\"editor.foldAllMarkerRegions\",label:v(\"foldAllMarkerRegions.label\",\"Fold All Regions\"),alias:\"Fold All Regions\",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2077),weight:100}})}invoke(e,t,i,s,o){if(t.regions.hasTypes())AU(t,Nr.Region.value,!0);else{const r=i.getModel();if(!r)return;const a=o.getLanguageConfiguration(r.getLanguageId()).foldingRules;if(a&&a.markers&&a.markers.start){const l=new RegExp(a.markers.start);NU(t,l,!0)}}}}class qQe extends pr{constructor(){super({id:\"editor.unfoldAllMarkerRegions\",label:v(\"unfoldAllMarkerRegions.label\",\"Unfold All Regions\"),alias:\"Unfold All Regions\",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2078),weight:100}})}invoke(e,t,i,s,o){if(t.regions.hasTypes())AU(t,Nr.Region.value,!1);else{const r=i.getModel();if(!r)return;const a=o.getLanguageConfiguration(r.getLanguageId()).foldingRules;if(a&&a.markers&&a.markers.start){const l=new RegExp(a.markers.start);NU(t,l,!1)}}}}class GQe extends pr{constructor(){super({id:\"editor.foldAllExcept\",label:v(\"foldAllExcept.label\",\"Fold All Except Selected\"),alias:\"Fold All Except Selected\",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2136),weight:100}})}invoke(e,t,i){const s=this.getSelectedLines(i);dge(t,!0,s)}}class ZQe extends pr{constructor(){super({id:\"editor.unfoldAllExcept\",label:v(\"unfoldAllExcept.label\",\"Unfold All Except Selected\"),alias:\"Unfold All Except Selected\",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2134),weight:100}})}invoke(e,t,i){const s=this.getSelectedLines(i);dge(t,!1,s)}}class YQe extends pr{constructor(){super({id:\"editor.foldAll\",label:v(\"foldAllAction.label\",\"Fold All\"),alias:\"Fold All\",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2069),weight:100}})}invoke(e,t,i){Zw(t,!0)}}class XQe extends pr{constructor(){super({id:\"editor.unfoldAll\",label:v(\"unfoldAllAction.label\",\"Unfold All\"),alias:\"Unfold All\",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2088),weight:100}})}invoke(e,t,i){Zw(t,!1)}}class A0 extends pr{getFoldingLevel(){return parseInt(this.id.substr(A0.ID_PREFIX.length))}invoke(e,t,i){yQe(t,this.getFoldingLevel(),!0,this.getSelectedLines(i))}}A0.ID_PREFIX=\"editor.foldLevel\";A0.ID=n=>A0.ID_PREFIX+n;class QQe extends pr{constructor(){super({id:\"editor.gotoParentFold\",label:v(\"gotoParentFold.label\",\"Go to Parent Fold\"),alias:\"Go to Parent Fold\",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,weight:100}})}invoke(e,t,i){const s=this.getSelectedLines(i);if(s.length>0){const o=SQe(s[0],t);o!==null&&i.setSelection({startLineNumber:o,startColumn:1,endLineNumber:o,endColumn:1})}}}class JQe extends pr{constructor(){super({id:\"editor.gotoPreviousFold\",label:v(\"gotoPreviousFold.label\",\"Go to Previous Folding Range\"),alias:\"Go to Previous Folding Range\",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,weight:100}})}invoke(e,t,i){const s=this.getSelectedLines(i);if(s.length>0){const o=xQe(s[0],t);o!==null&&i.setSelection({startLineNumber:o,startColumn:1,endLineNumber:o,endColumn:1})}}}class eJe extends pr{constructor(){super({id:\"editor.gotoNextFold\",label:v(\"gotoNextFold.label\",\"Go to Next Folding Range\"),alias:\"Go to Next Folding Range\",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,weight:100}})}invoke(e,t,i){const s=this.getSelectedLines(i);if(s.length>0){const o=LQe(s[0],t);o!==null&&i.setSelection({startLineNumber:o,startColumn:1,endLineNumber:o,endColumn:1})}}}class tJe extends pr{constructor(){super({id:\"editor.createFoldingRangeFromSelection\",label:v(\"createManualFoldRange.label\",\"Create Folding Range from Selection\"),alias:\"Create Folding Range from Selection\",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2135),weight:100}})}invoke(e,t,i){var s;const o=[],r=i.getSelections();if(r){for(const a of r){let l=a.endLineNumber;a.endColumn===1&&--l,l>a.startLineNumber&&(o.push({startLineNumber:a.startLineNumber,endLineNumber:l,type:void 0,isCollapsed:!0,source:1}),i.setSelection({startLineNumber:a.startLineNumber,startColumn:1,endLineNumber:a.startLineNumber,endColumn:1}))}if(o.length>0){o.sort((l,c)=>l.startLineNumber-c.startLineNumber);const a=al.sanitizeAndMerge(t.regions,o,(s=i.getModel())===null||s===void 0?void 0:s.getLineCount());t.updatePost(al.fromFoldRanges(a))}}}}class iJe extends pr{constructor(){super({id:\"editor.removeManualFoldingRanges\",label:v(\"removeManualFoldingRanges.label\",\"Remove Manual Folding Ranges\"),alias:\"Remove Manual Folding Ranges\",precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2137),weight:100}})}invoke(e,t,i){const s=i.getSelections();if(s){const o=[];for(const r of s){const{startLineNumber:a,endLineNumber:l}=r;o.push(l>=a?{startLineNumber:a,endLineNumber:l}:{endLineNumber:l,startLineNumber:a})}t.removeManualRanges(o),e.triggerFoldingModelChanged()}}}bi(Rg.ID,Rg,0);xe(HQe);xe(VQe);xe(zQe);xe(UQe);xe(YQe);xe(XQe);xe(jQe);xe(KQe);xe(qQe);xe(GQe);xe(ZQe);xe($Qe);xe(QQe);xe(JQe);xe(eJe);xe(tJe);xe(iJe);for(let n=1;n<=7;n++)_Pe(new A0({id:A0.ID(n),label:v(\"foldLevelAction.label\",\"Fold Level {0}\",n),alias:`Fold Level ${n}`,precondition:tr,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2048|21+n),weight:100}}));ri.registerCommand(\"_executeFoldingRangeProvider\",async function(n,...e){const[t]=e;if(!(t instanceof pt))throw ic();const i=n.get(Xe),s=n.get(Pn).getModel(t);if(!s)throw ic();const o=n.get(qt);if(!o.getValue(\"editor.folding\",{resource:t}))return[];const r=n.get(gn),a=o.getValue(\"editor.foldingStrategy\",{resource:t}),l={get limit(){return o.getValue(\"editor.foldingMaximumRegions\",{resource:t})},update:(f,g)=>{}},c=new RU(s,r,l);let d=c;if(a!==\"indentation\"){const f=Rg.getFoldingRangeProviders(i,s);f.length&&(d=new PU(s,f,()=>{},l,c))}const u=await d.compute(Qt.None),h=[];try{if(u)for(let f=0;f<u.length;f++){const g=u.getType(f);h.push({start:u.getStartLineNumber(f),end:u.getEndLineNumber(f),kind:g?Nr.fromValue(g):void 0})}return h}finally{d.dispose()}});class nJe extends Ke{constructor(){super({id:\"editor.action.fontZoomIn\",label:v(\"EditorFontZoomIn.label\",\"Increase Editor Font Size\"),alias:\"Increase Editor Font Size\",precondition:void 0})}run(e,t){Kl.setZoomLevel(Kl.getZoomLevel()+1)}}class sJe extends Ke{constructor(){super({id:\"editor.action.fontZoomOut\",label:v(\"EditorFontZoomOut.label\",\"Decrease Editor Font Size\"),alias:\"Decrease Editor Font Size\",precondition:void 0})}run(e,t){Kl.setZoomLevel(Kl.getZoomLevel()-1)}}class oJe extends Ke{constructor(){super({id:\"editor.action.fontZoomReset\",label:v(\"EditorFontZoomReset.label\",\"Reset Editor Font Size\"),alias:\"Reset Editor Font Size\",precondition:void 0})}run(e,t){Kl.setZoomLevel(0)}}xe(nJe);xe(sJe);xe(oJe);var pge=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Rx=function(n,e){return function(t,i){e(t,i,n)}};let bk=class{constructor(e,t,i,s){this._editor=e,this._languageFeaturesService=t,this._workerService=i,this._accessibilitySignalService=s,this._disposables=new be,this._sessionDisposables=new be,this._disposables.add(t.onTypeFormattingEditProvider.onDidChange(this._update,this)),this._disposables.add(e.onDidChangeModel(()=>this._update())),this._disposables.add(e.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(e.onDidChangeConfiguration(o=>{o.hasChanged(56)&&this._update()})),this._update()}dispose(){this._disposables.dispose(),this._sessionDisposables.dispose()}_update(){if(this._sessionDisposables.clear(),!this._editor.getOption(56)||!this._editor.hasModel())return;const e=this._editor.getModel(),[t]=this._languageFeaturesService.onTypeFormattingEditProvider.ordered(e);if(!t||!t.autoFormatTriggerCharacters)return;const i=new j2;for(const s of t.autoFormatTriggerCharacters)i.add(s.charCodeAt(0));this._sessionDisposables.add(this._editor.onDidType(s=>{const o=s.charCodeAt(s.length-1);i.has(o)&&this._trigger(String.fromCharCode(o))}))}_trigger(e){if(!this._editor.hasModel()||this._editor.getSelections().length>1||!this._editor.getSelection().isEmpty())return;const t=this._editor.getModel(),i=this._editor.getPosition(),s=new $n,o=this._editor.onDidChangeModelContent(r=>{if(r.isFlush){s.cancel(),o.dispose();return}for(let a=0,l=r.changes.length;a<l;a++)if(r.changes[a].range.endLineNumber<=i.lineNumber){s.cancel(),o.dispose();return}});rhe(this._workerService,this._languageFeaturesService,t,i,e,t.getFormattingOptions(),s.token).then(r=>{s.token.isCancellationRequested||Zo(r)&&(this._accessibilitySignalService.playSignal(At.format,{userGesture:!1}),ow.execute(this._editor,r,!0))}).finally(()=>{o.dispose()})}};bk.ID=\"editor.contrib.autoFormat\";bk=pge([Rx(1,Xe),Rx(2,bc),Rx(3,v_)],bk);let Ck=class{constructor(e,t,i){this.editor=e,this._languageFeaturesService=t,this._instantiationService=i,this._callOnDispose=new be,this._callOnModel=new be,this._callOnDispose.add(e.onDidChangeConfiguration(()=>this._update())),this._callOnDispose.add(e.onDidChangeModel(()=>this._update())),this._callOnDispose.add(e.onDidChangeModelLanguage(()=>this._update())),this._callOnDispose.add(t.documentRangeFormattingEditProvider.onDidChange(this._update,this))}dispose(){this._callOnDispose.dispose(),this._callOnModel.dispose()}_update(){this._callOnModel.clear(),this.editor.getOption(55)&&this.editor.hasModel()&&this._languageFeaturesService.documentRangeFormattingEditProvider.has(this.editor.getModel())&&this._callOnModel.add(this.editor.onDidPaste(({range:e})=>this._trigger(e)))}_trigger(e){this.editor.hasModel()&&(this.editor.getSelections().length>1||this._instantiationService.invokeFunction(ohe,this.editor,e,2,bg.None,Qt.None,!1).catch(Mt))}};Ck.ID=\"editor.contrib.formatOnPaste\";Ck=pge([Rx(1,Xe),Rx(2,ht)],Ck);class rJe extends Ke{constructor(){super({id:\"editor.action.formatDocument\",label:v(\"formatDocument.label\",\"Format Document\"),alias:\"Format Document\",precondition:pe.and(W.notInCompositeEditor,W.writable,W.hasDocumentFormattingProvider),kbOpts:{kbExpr:W.editorTextFocus,primary:1572,linux:{primary:3111},weight:100},contextMenuOpts:{group:\"1_modification\",order:1.3}})}async run(e,t){if(t.hasModel()){const i=e.get(ht);await e.get(m_).showWhile(i.invokeFunction(Dqe,t,1,bg.None,Qt.None,!0),250)}}}class aJe extends Ke{constructor(){super({id:\"editor.action.formatSelection\",label:v(\"formatSelection.label\",\"Format Selection\"),alias:\"Format Selection\",precondition:pe.and(W.writable,W.hasDocumentSelectionFormattingProvider),kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2084),weight:100},contextMenuOpts:{when:W.hasNonEmptySelection,group:\"1_modification\",order:1.31}})}async run(e,t){if(!t.hasModel())return;const i=e.get(ht),s=t.getModel(),o=t.getSelections().map(a=>a.isEmpty()?new A(a.startLineNumber,1,a.startLineNumber,s.getLineMaxColumn(a.startLineNumber)):a);await e.get(m_).showWhile(i.invokeFunction(ohe,t,o,1,bg.None,Qt.None,!0),250)}}bi(bk.ID,bk,2);bi(Ck.ID,Ck,2);xe(rJe);xe(aJe);ri.registerCommand(\"editor.action.format\",async n=>{const e=n.get(vi).getFocusedCodeEditor();if(!e||!e.hasModel())return;const t=n.get(Sn);e.getSelection().isEmpty()?await t.executeCommand(\"editor.action.formatDocument\"):await t.executeCommand(\"editor.action.formatSelection\")});var lJe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},d3=function(n,e){return function(t,i){e(t,i,n)}};class M1{remove(){var e;(e=this.parent)===null||e===void 0||e.children.delete(this.id)}static findId(e,t){let i;typeof e==\"string\"?i=`${t.id}/${e}`:(i=`${t.id}/${e.name}`,t.children.get(i)!==void 0&&(i=`${t.id}/${e.name}_${e.range.startLineNumber}_${e.range.startColumn}`));let s=i;for(let o=0;t.children.get(s)!==void 0;o++)s=`${i}_${o}`;return s}static empty(e){return e.children.size===0}}class bW extends M1{constructor(e,t,i){super(),this.id=e,this.parent=t,this.symbol=i,this.children=new Map}}class mge extends M1{constructor(e,t,i,s){super(),this.id=e,this.parent=t,this.label=i,this.order=s,this.children=new Map}}class Mf extends M1{static create(e,t,i){const s=new $n(i),o=new Mf(t.uri),r=e.ordered(t),a=r.map((c,d)=>{var u;const h=M1.findId(`provider_${d}`,o),f=new mge(h,o,(u=c.displayName)!==null&&u!==void 0?u:\"Unknown Outline Provider\",d);return Promise.resolve(c.provideDocumentSymbols(t,s.token)).then(g=>{for(const p of g||[])Mf._makeOutlineElement(p,f);return f},g=>(as(g),f)).then(g=>{M1.empty(g)?g.remove():o._groups.set(h,g)})}),l=e.onDidChange(()=>{const c=e.ordered(t);zn(c,r)||s.cancel()});return Promise.all(a).then(()=>s.token.isCancellationRequested&&!i.isCancellationRequested?Mf.create(e,t,i):o._compact()).finally(()=>{s.dispose(),l.dispose(),s.dispose()})}static _makeOutlineElement(e,t){const i=M1.findId(e,t),s=new bW(i,t,e);if(e.children)for(const o of e.children)Mf._makeOutlineElement(o,s);t.children.set(s.id,s)}constructor(e){super(),this.uri=e,this.id=\"root\",this.parent=void 0,this._groups=new Map,this.children=new Map,this.id=\"root\",this.parent=void 0}_compact(){let e=0;for(const[t,i]of this._groups)i.children.size===0?this._groups.delete(t):e+=1;if(e!==1)this.children=this._groups;else{const t=oi.first(this._groups.values());for(const[,i]of t.children)i.parent=this,this.children.set(i.id,i)}return this}getTopLevelSymbols(){const e=[];for(const t of this.children.values())t instanceof bW?e.push(t.symbol):e.push(...oi.map(t.children.values(),i=>i.symbol));return e.sort((t,i)=>A.compareRangesUsingStarts(t.range,i.range))}asListOfDocumentSymbols(){const e=this.getTopLevelSymbols(),t=[];return Mf._flattenDocumentSymbols(t,e,\"\"),t.sort((i,s)=>ee.compare(A.getStartPosition(i.range),A.getStartPosition(s.range))||ee.compare(A.getEndPosition(s.range),A.getEndPosition(i.range)))}static _flattenDocumentSymbols(e,t,i){for(const s of t)e.push({kind:s.kind,tags:s.tags,name:s.name,detail:s.detail,containerName:s.containerName||i,range:s.range,selectionRange:s.selectionRange,children:void 0}),s.children&&Mf._flattenDocumentSymbols(e,s.children,s.name)}}const XD=Jt(\"IOutlineModelService\");let CW=class{constructor(e,t,i){this._languageFeaturesService=e,this._disposables=new be,this._cache=new zh(10,.7),this._debounceInformation=t.for(e.documentSymbolProvider,\"DocumentSymbols\",{min:350}),this._disposables.add(i.onModelRemoved(s=>{this._cache.delete(s.id)}))}dispose(){this._disposables.dispose()}async getOrCreate(e,t){const i=this._languageFeaturesService.documentSymbolProvider,s=i.ordered(e);let o=this._cache.get(e.id);if(!o||o.versionId!==e.getVersionId()||!zn(o.provider,s)){const a=new $n;o={versionId:e.getVersionId(),provider:s,promiseCnt:0,source:a,promise:Mf.create(i,e,a.token),model:void 0},this._cache.set(e.id,o);const l=Date.now();o.promise.then(c=>{o.model=c,this._debounceInformation.update(e,Date.now()-l)}).catch(c=>{this._cache.delete(e.id)})}if(o.model)return o.model;o.promiseCnt+=1;const r=t.onCancellationRequested(()=>{--o.promiseCnt===0&&(o.source.cancel(),this._cache.delete(e.id))});try{return await o.promise}finally{r.dispose()}}};CW=lJe([d3(0,Xe),d3(1,_c),d3(2,Pn)],CW);ai(XD,CW,1);ri.registerCommand(\"_executeDocumentSymbolProvider\",async function(n,...e){const[t]=e;mi(pt.isUri(t));const i=n.get(XD),o=await n.get(fa).createModelReference(t);try{return(await i.getOrCreate(o.object.textEditorModel,Qt.None)).getTopLevelSymbols()}finally{o.dispose()}});class lo extends ne{constructor(e,t){super(),this.contextKeyService=e,this.model=t,this.inlineCompletionVisible=lo.inlineSuggestionVisible.bindTo(this.contextKeyService),this.inlineCompletionSuggestsIndentation=lo.inlineSuggestionHasIndentation.bindTo(this.contextKeyService),this.inlineCompletionSuggestsIndentationLessThanTabSize=lo.inlineSuggestionHasIndentationLessThanTabSize.bindTo(this.contextKeyService),this.suppressSuggestions=lo.suppressSuggestions.bindTo(this.contextKeyService),this._register(Ut(i=>{const s=this.model.read(i),o=s==null?void 0:s.state.read(i),r=!!(o!=null&&o.inlineCompletion)&&(o==null?void 0:o.primaryGhostText)!==void 0&&!(o!=null&&o.primaryGhostText.isEmpty());this.inlineCompletionVisible.set(r),o!=null&&o.primaryGhostText&&(o!=null&&o.inlineCompletion)&&this.suppressSuggestions.set(o.inlineCompletion.inlineCompletion.source.inlineCompletions.suppressSuggestions)})),this._register(Ut(i=>{const s=this.model.read(i);let o=!1,r=!0;const a=s==null?void 0:s.primaryGhostText.read(i);if(s!=null&&s.selectedSuggestItem&&a&&a.parts.length>0){const{column:l,lines:c}=a.parts[0],d=c[0],u=s.textModel.getLineIndentColumn(a.lineNumber);if(l<=u){let f=fr(d);f===-1&&(f=d.length-1),o=f>0;const g=s.textModel.getOptions().tabSize;r=zs.visibleColumnFromColumn(d,f+1,g)<g}}this.inlineCompletionSuggestsIndentation.set(o),this.inlineCompletionSuggestsIndentationLessThanTabSize.set(r)}))}}lo.inlineSuggestionVisible=new He(\"inlineSuggestionVisible\",!1,v(\"inlineSuggestionVisible\",\"Whether an inline suggestion is visible\"));lo.inlineSuggestionHasIndentation=new He(\"inlineSuggestionHasIndentation\",!1,v(\"inlineSuggestionHasIndentation\",\"Whether the inline suggestion starts with whitespace\"));lo.inlineSuggestionHasIndentationLessThanTabSize=new He(\"inlineSuggestionHasIndentationLessThanTabSize\",!0,v(\"inlineSuggestionHasIndentationLessThanTabSize\",\"Whether the inline suggestion starts with whitespace that is less than what would be inserted by tab\"));lo.suppressSuggestions=new He(\"inlineSuggestionSuppressSuggestions\",void 0,v(\"suppressSuggestions\",\"Whether suggestions should be suppressed for the current suggestion\"));class wk{constructor(e,t){this.lineNumber=e,this.parts=t}equals(e){return this.lineNumber===e.lineNumber&&this.parts.length===e.parts.length&&this.parts.every((t,i)=>t.equals(e.parts[i]))}renderForScreenReader(e){if(this.parts.length===0)return\"\";const t=this.parts[this.parts.length-1],i=e.substr(0,t.column-1);return new mz([...this.parts.map(o=>new Eg(A.fromPositions(new ee(1,o.column)),o.lines.join(`\n`)))]).applyToString(i).substring(this.parts[0].column-1)}isEmpty(){return this.parts.every(e=>e.lines.length===0)}get lineCount(){return 1+this.parts.reduce((e,t)=>e+t.lines.length-1,0)}}class bR{constructor(e,t,i){this.column=e,this.text=t,this.preview=i,this.lines=Wh(this.text)}equals(e){return this.column===e.column&&this.lines.length===e.lines.length&&this.lines.every((t,i)=>t===e.lines[i])}}class wW{constructor(e,t,i,s=0){this.lineNumber=e,this.columnRange=t,this.text=i,this.additionalReservedLineCount=s,this.parts=[new bR(this.columnRange.endColumnExclusive,this.text,!1)],this.newLines=Wh(this.text)}renderForScreenReader(e){return this.newLines.join(`\n`)}get lineCount(){return this.newLines.length}isEmpty(){return this.parts.every(e=>e.lines.length===0)}equals(e){return this.lineNumber===e.lineNumber&&this.columnRange.equals(e.columnRange)&&this.newLines.length===e.newLines.length&&this.newLines.every((t,i)=>t===e.newLines[i])&&this.additionalReservedLineCount===e.additionalReservedLineCount}}function mte(n,e){return zn(n,e,_ge)}function _ge(n,e){return n===e?!0:!n||!e?!1:n instanceof wk&&e instanceof wk||n instanceof wW&&e instanceof wW?n.equals(e):!1}const cJe=[];function dJe(){return cJe}class vge{constructor(e,t){if(this.startColumn=e,this.endColumnExclusive=t,e>t)throw new Gi(`startColumn ${e} cannot be after endColumnExclusive ${t}`)}toRange(e){return new A(e,this.startColumn,e,this.endColumnExclusive)}equals(e){return this.startColumn===e.startColumn&&this.endColumnExclusive===e.endColumnExclusive}}function bge(n,e){const t=new be,i=n.createDecorationsCollection();return t.add(tP({debugName:()=>`Apply decorations from ${e.debugName}`},s=>{const o=e.read(s);i.set(o)})),t.add({dispose:()=>{i.clear()}}),t}function uJe(n,e){return new ee(n.lineNumber+e.lineNumber-1,e.lineNumber===1?n.column+e.column-1:e.column)}function _te(n,e){return new ee(n.lineNumber-e.lineNumber+1,n.lineNumber-e.lineNumber===0?n.column-e.column+1:n.column)}var hJe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},fJe=function(n,e){return function(t,i){e(t,i,n)}};const vte=\"ghost-text\";let yW=class extends ne{constructor(e,t,i){super(),this.editor=e,this.model=t,this.languageService=i,this.isDisposed=li(this,!1),this.currentTextModel=qi(this.editor.onDidChangeModel,()=>this.editor.getModel()),this.uiState=Rt(this,s=>{if(this.isDisposed.read(s))return;const o=this.currentTextModel.read(s);if(o!==this.model.targetTextModel.read(s))return;const r=this.model.ghostText.read(s);if(!r)return;const a=r instanceof wW?r.columnRange:void 0,l=[],c=[];function d(p,_){if(c.length>0){const b=c[c.length-1];_&&b.decorations.push(new Rr(b.content.length+1,b.content.length+1+p[0].length,_,0)),b.content+=p[0],p=p.slice(1)}for(const b of p)c.push({content:b,decorations:_?[new Rr(1,b.length+1,_,0)]:[]})}const u=o.getLineContent(r.lineNumber);let h,f=0;for(const p of r.parts){let _=p.lines;h===void 0?(l.push({column:p.column,text:_[0],preview:p.preview}),_=_.slice(1)):d([u.substring(f,p.column-1)],void 0),_.length>0&&(d(_,vte),h===void 0&&p.column<=u.length&&(h=p.column)),f=p.column-1}h!==void 0&&d([u.substring(f)],void 0);const g=h!==void 0?new vge(h,u.length+1):void 0;return{replacedRange:a,inlineTexts:l,additionalLines:c,hiddenRange:g,lineNumber:r.lineNumber,additionalReservedLineCount:this.model.minReservedLineCount.read(s),targetTextModel:o}}),this.decorations=Rt(this,s=>{const o=this.uiState.read(s);if(!o)return[];const r=[];o.replacedRange&&r.push({range:o.replacedRange.toRange(o.lineNumber),options:{inlineClassName:\"inline-completion-text-to-replace\",description:\"GhostTextReplacement\"}}),o.hiddenRange&&r.push({range:o.hiddenRange.toRange(o.lineNumber),options:{inlineClassName:\"ghost-text-hidden\",description:\"ghost-text-hidden\"}});for(const a of o.inlineTexts)r.push({range:A.fromPositions(new ee(o.lineNumber,a.column)),options:{description:vte,after:{content:a.text,inlineClassName:a.preview?\"ghost-text-decoration-preview\":\"ghost-text-decoration\",cursorStops:qc.Left},showIfCollapsed:!0}});return r}),this.additionalLinesWidget=this._register(new Cge(this.editor,this.languageService.languageIdCodec,Rt(s=>{const o=this.uiState.read(s);return o?{lineNumber:o.lineNumber,additionalLines:o.additionalLines,minReservedLineCount:o.additionalReservedLineCount,targetTextModel:o.targetTextModel}:void 0}))),this._register(dt(()=>{this.isDisposed.set(!0,void 0)})),this._register(bge(this.editor,this.decorations))}ownsViewZone(e){return this.additionalLinesWidget.viewZoneId===e}};yW=hJe([fJe(2,An)],yW);class Cge extends ne{get viewZoneId(){return this._viewZoneId}constructor(e,t,i){super(),this.editor=e,this.languageIdCodec=t,this.lines=i,this._viewZoneId=void 0,this.editorOptionsChanged=Ko(\"editorOptionChanged\",Ae.filter(this.editor.onDidChangeConfiguration,s=>s.hasChanged(33)||s.hasChanged(117)||s.hasChanged(99)||s.hasChanged(94)||s.hasChanged(51)||s.hasChanged(50)||s.hasChanged(67))),this._register(Ut(s=>{const o=this.lines.read(s);this.editorOptionsChanged.read(s),o?this.updateLines(o.lineNumber,o.additionalLines,o.minReservedLineCount):this.clear()}))}dispose(){super.dispose(),this.clear()}clear(){this.editor.changeViewZones(e=>{this._viewZoneId&&(e.removeZone(this._viewZoneId),this._viewZoneId=void 0)})}updateLines(e,t,i){const s=this.editor.getModel();if(!s)return;const{tabSize:o}=s.getOptions();this.editor.changeViewZones(r=>{this._viewZoneId&&(r.removeZone(this._viewZoneId),this._viewZoneId=void 0);const a=Math.max(t.length,i);if(a>0){const l=document.createElement(\"div\");gJe(l,o,t,this.editor.getOptions(),this.languageIdCodec),this._viewZoneId=r.addZone({afterLineNumber:e,heightInLines:a,domNode:l,afterColumnAffinity:1})}})}}function gJe(n,e,t,i,s){const o=i.get(33),r=i.get(117),a=\"none\",l=i.get(94),c=i.get(51),d=i.get(50),u=i.get(67),h=new Ow(1e4);h.appendString('<div class=\"suggest-preview-text\">');for(let p=0,_=t.length;p<_;p++){const b=t[p],w=b.content;h.appendString('<div class=\"view-line'),h.appendString('\" style=\"top:'),h.appendString(String(p*u)),h.appendString('px;width:1000000px;\">');const y=cD(w),S=TC(w),x=Is.createEmpty(w,s);_D(new f_(d.isMonospace&&!o,d.canUseHalfwidthRightwardsArrow,w,!1,y,S,0,x,b.decorations,e,0,d.spaceWidth,d.middotWidth,d.wsmiddotWidth,r,a,l,c!==cl.OFF,null),h),h.appendString(\"</div>\")}h.appendString(\"</div>\"),So(n,d);const f=h.build(),g=bte?bte.createHTML(f):f;n.innerHTML=g}const bte=Bg(\"editorGhostText\",{createHTML:n=>n});function pJe(n,e){const t=new Ece,i=new Nce(t,c=>e.getLanguageConfiguration(c)),s=new Tce(new mJe([n]),i),o=VB(s,[],void 0,!0);let r=\"\";const a=n.getLineContent();function l(c,d){if(c.kind===2)if(l(c.openingBracket,d),d=Xn(d,c.openingBracket.length),c.child&&(l(c.child,d),d=Xn(d,c.child.length)),c.closingBracket)l(c.closingBracket,d),d=Xn(d,c.closingBracket.length);else{const h=i.getSingleLanguageBracketTokens(c.openingBracket.languageId).findClosingTokenText(c.openingBracket.bracketIds);r+=h}else if(c.kind!==3){if(c.kind===0||c.kind===1)r+=a.substring(d,Xn(d,c.length));else if(c.kind===4)for(const u of c.children)l(u,d),d=Xn(d,u.length)}}return l(o,Mr),r}class mJe{constructor(e){this.lines=e,this.tokenization={getLineTokens:t=>this.lines[t-1]}}getLineCount(){return this.lines.length}getLineLength(e){return this.lines[e-1].getLineContent().length}}async function _Je(n,e,t,i,s=Qt.None,o){const r=CJe(e,t),a=n.all(t),l=new uz;for(const b of a)b.groupId&&l.add(b.groupId,b);function c(b){if(!b.yieldsToGroupIds)return[];const w=[];for(const y of b.yieldsToGroupIds||[]){const S=l.get(y);for(const x of S)w.push(x)}return w}const d=new Map,u=new Set;function h(b,w){if(w=[...w,b],u.has(b))return w;u.add(b);try{const y=c(b);for(const S of y){const x=h(S,w);if(x)return x}}finally{u.delete(b)}}function f(b){const w=d.get(b);if(w)return w;const y=h(b,[]);y&&as(new Error(`Inline completions: cyclic yield-to dependency detected. Path: ${y.map(x=>x.toString?x.toString():\"\"+x).join(\" -> \")}`));const S=new hD;return d.set(b,S.p),(async()=>{if(!y){const x=c(b);for(const k of x){const D=await f(k);if(D&&D.items.length>0)return}}try{return await b.provideInlineCompletions(t,e,i,s)}catch(x){as(x);return}})().then(x=>S.complete(x),x=>S.error(x)),S.p}const g=await Promise.all(a.map(async b=>({provider:b,completions:await f(b)}))),p=new Map,_=[];for(const b of g){const w=b.completions;if(!w)continue;const y=new bJe(w,b.provider);_.push(y);for(const S of w.items){const x=CR.from(S,y,r,t,o);p.set(x.hash(),x)}}return new vJe(Array.from(p.values()),new Set(p.keys()),_)}class vJe{constructor(e,t,i){this.completions=e,this.hashs=t,this.providerResults=i}has(e){return this.hashs.has(e.hash())}dispose(){for(const e of this.providerResults)e.removeRef()}}class bJe{constructor(e,t){this.inlineCompletions=e,this.provider=t,this.refCount=1}addRef(){this.refCount++}removeRef(){this.refCount--,this.refCount===0&&this.provider.freeInlineCompletions(this.inlineCompletions)}}class CR{static from(e,t,i,s,o){let r,a,l=e.range?A.lift(e.range):i;if(typeof e.insertText==\"string\"){if(r=e.insertText,o&&e.completeBracketPairs){r=Cte(r,l.getStartPosition(),s,o);const c=r.length-e.insertText.length;c!==0&&(l=new A(l.startLineNumber,l.startColumn,l.endLineNumber,l.endColumn+c))}a=void 0}else if(\"snippet\"in e.insertText){const c=e.insertText.snippet.length;if(o&&e.completeBracketPairs){e.insertText.snippet=Cte(e.insertText.snippet,l.getStartPosition(),s,o);const u=e.insertText.snippet.length-c;u!==0&&(l=new A(l.startLineNumber,l.startColumn,l.endLineNumber,l.endColumn+u))}const d=new L0().parse(e.insertText.snippet);d.children.length===1&&d.children[0]instanceof Dr?(r=d.children[0].value,a=void 0):(r=d.toString(),a={snippet:e.insertText.snippet,range:l})}else yM(e.insertText);return new CR(r,e.command,l,r,a,e.additionalTextEdits||dJe(),e,t)}constructor(e,t,i,s,o,r,a,l){this.filterText=e,this.command=t,this.range=i,this.insertText=s,this.snippetInfo=o,this.additionalTextEdits=r,this.sourceInlineCompletion=a,this.source=l,e=e.replace(/\\r\\n|\\r/g,`\n`),s=e.replace(/\\r\\n|\\r/g,`\n`)}withRange(e){return new CR(this.filterText,this.command,e,this.insertText,this.snippetInfo,this.additionalTextEdits,this.sourceInlineCompletion,this.source)}hash(){return JSON.stringify({insertText:this.insertText,range:this.range.toString()})}}function CJe(n,e){const t=e.getWordAtPosition(n),i=e.getLineMaxColumn(n.lineNumber);return t?new A(n.lineNumber,t.startColumn,n.lineNumber,i):A.fromPositions(n,n.with(void 0,i))}function Cte(n,e,t,i){const o=t.getLineContent(e.lineNumber).substring(0,e.column-1)+n,r=t.tokenization.tokenizeLineWithEdit(e,o.length-(e.column-1),n),a=r==null?void 0:r.sliceAndInflate(e.column-1,o.length,0);return a?pJe(a,i):n}function Jv(n,e,t){const i=t?n.range.intersectRanges(t):n.range;if(!i)return n;const s=e.getValueInRange(i,1),o=Rm(s,n.text),r=Ar.ofText(s.substring(0,o)).addToPosition(n.range.getStartPosition()),a=n.text.substring(o),l=A.fromPositions(r,n.range.getEndPosition());return new Eg(l,a)}function wge(n,e){return n.text.startsWith(e.text)&&wJe(n.range,e.range)}function wte(n,e,t,i,s=0){let o=Jv(n,e);if(o.range.endLineNumber!==o.range.startLineNumber)return;const r=e.getLineContent(o.range.startLineNumber),a=on(r).length;if(o.range.startColumn-1<=a){const g=on(o.text).length,p=r.substring(o.range.startColumn-1,a),[_,b]=[o.range.getStartPosition(),o.range.getEndPosition()],w=_.column+p.length<=b.column?_.delta(0,p.length):b,y=A.fromPositions(w,b),S=o.text.startsWith(p)?o.text.substring(p.length):o.text.substring(g);o=new Eg(y,S)}const c=e.getValueInRange(o.range),d=yJe(c,o.text);if(!d)return;const u=o.range.startLineNumber,h=new Array;if(t===\"prefix\"){const g=d.filter(p=>p.originalLength===0);if(g.length>1||g.length===1&&g[0].originalStart!==c.length)return}const f=o.text.length-s;for(const g of d){const p=o.range.startColumn+g.originalStart+g.originalLength;if(t===\"subwordSmart\"&&i&&i.lineNumber===o.range.startLineNumber&&p<i.column||g.originalLength>0)return;if(g.modifiedLength===0)continue;const _=g.modifiedStart+g.modifiedLength,b=Math.max(g.modifiedStart,Math.min(_,f)),w=o.text.substring(g.modifiedStart,b),y=o.text.substring(b,Math.max(g.modifiedStart,_));w.length>0&&h.push(new bR(p,w,!1)),y.length>0&&h.push(new bR(p,y,!0))}return new wk(u,h)}function wJe(n,e){return e.getStartPosition().equals(n.getStartPosition())&&e.getEndPosition().isBeforeOrEqual(n.getEndPosition())}let Ru;function yJe(n,e){if((Ru==null?void 0:Ru.originalValue)===n&&(Ru==null?void 0:Ru.newValue)===e)return Ru==null?void 0:Ru.changes;{let t=Ste(n,e,!0);if(t){const i=yte(t);if(i>0){const s=Ste(n,e,!1);s&&yte(s)<i&&(t=s)}}return Ru={originalValue:n,newValue:e,changes:t},t}}function yte(n){let e=0;for(const t of n)e+=t.originalLength;return e}function Ste(n,e,t){if(n.length>5e3||e.length>5e3)return;function i(c){let d=0;for(let u=0,h=c.length;u<h;u++){const f=c.charCodeAt(u);f>d&&(d=f)}return d}const s=Math.max(i(n),i(e));function o(c){if(c<0)throw new Error(\"unexpected\");return s+c+1}function r(c){let d=0,u=0;const h=new Int32Array(c.length);for(let f=0,g=c.length;f<g;f++)if(t&&c[f]===\"(\"){const p=u*100+d;h[f]=o(2*p),d++}else if(t&&c[f]===\")\"){d=Math.max(d-1,0);const p=u*100+d;h[f]=o(2*p+1),d===0&&u++}else h[f]=c.charCodeAt(f);return h}const a=r(n),l=r(e);return new Ju({getElements:()=>a},{getElements:()=>l}).ComputeDiff(!1).changes}var SJe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},xte=function(n,e){return function(t,i){e(t,i,n)}};let SW=class extends ne{constructor(e,t,i,s,o){super(),this.textModel=e,this.versionId=t,this._debounceValue=i,this.languageFeaturesService=s,this.languageConfigurationService=o,this._updateOperation=this._register(new Qs),this.inlineCompletions=KL(\"inlineCompletions\",void 0),this.suggestWidgetInlineCompletions=KL(\"suggestWidgetInlineCompletions\",void 0),this._register(this.textModel.onDidChangeContent(()=>{this._updateOperation.clear()}))}fetch(e,t,i){var s,o;const r=new LJe(e,t,this.textModel.getVersionId()),a=t.selectedSuggestionInfo?this.suggestWidgetInlineCompletions:this.inlineCompletions;if(!((s=this._updateOperation.value)===null||s===void 0)&&s.request.satisfies(r))return this._updateOperation.value.promise;if(!((o=a.get())===null||o===void 0)&&o.request.satisfies(r))return Promise.resolve(!0);const l=!!this._updateOperation.value;this._updateOperation.clear();const c=new $n,d=(async()=>{if((l||t.triggerKind===pg.Automatic)&&await xJe(this._debounceValue.get(this.textModel),c.token),c.token.isCancellationRequested||this.textModel.getVersionId()!==r.versionId)return!1;const f=new Date,g=await _Je(this.languageFeaturesService.inlineCompletionsProvider,e,this.textModel,t,c.token,this.languageConfigurationService);if(c.token.isCancellationRequested||this.textModel.getVersionId()!==r.versionId)return!1;const p=new Date;this._debounceValue.update(this.textModel,p.getTime()-f.getTime());const _=new DJe(g,r,this.textModel,this.versionId);if(i){const b=i.toInlineCompletion(void 0);i.canBeReused(this.textModel,e)&&!g.has(b)&&_.prepend(i.inlineCompletion,b.range,!0)}return this._updateOperation.clear(),rn(b=>{a.set(_,b)}),!0})(),u=new kJe(r,c,d);return this._updateOperation.value=u,d}clear(e){this._updateOperation.clear(),this.inlineCompletions.set(void 0,e),this.suggestWidgetInlineCompletions.set(void 0,e)}clearSuggestWidgetInlineCompletions(e){var t;!((t=this._updateOperation.value)===null||t===void 0)&&t.request.context.selectedSuggestionInfo&&this._updateOperation.clear(),this.suggestWidgetInlineCompletions.set(void 0,e)}cancelUpdate(){this._updateOperation.clear()}};SW=SJe([xte(3,Xe),xte(4,gn)],SW);function xJe(n,e){return new Promise(t=>{let i;const s=setTimeout(()=>{i&&i.dispose(),t()},n);e&&(i=e.onCancellationRequested(()=>{clearTimeout(s),i&&i.dispose(),t()}))})}class LJe{constructor(e,t,i){this.position=e,this.context=t,this.versionId=i}satisfies(e){return this.position.equals(e.position)&&tVe(this.context.selectedSuggestionInfo,e.context.selectedSuggestionInfo,Nde())&&(e.context.triggerKind===pg.Automatic||this.context.triggerKind===pg.Explicit)&&this.versionId===e.versionId}}class kJe{constructor(e,t,i){this.request=e,this.cancellationTokenSource=t,this.promise=i}dispose(){this.cancellationTokenSource.cancel()}}class DJe{get inlineCompletions(){return this._inlineCompletions}constructor(e,t,i,s){this.inlineCompletionProviderResult=e,this.request=t,this._textModel=i,this._versionId=s,this._refCount=1,this._prependedInlineCompletionItems=[];const o=i.deltaDecorations([],e.completions.map(r=>({range:r.range,options:{description:\"inline-completion-tracking-range\"}})));this._inlineCompletions=e.completions.map((r,a)=>new Lte(r,o[a],this._textModel,this._versionId))}clone(){return this._refCount++,this}dispose(){if(this._refCount--,this._refCount===0){setTimeout(()=>{this._textModel.isDisposed()||this._textModel.deltaDecorations(this._inlineCompletions.map(e=>e.decorationId),[])},0),this.inlineCompletionProviderResult.dispose();for(const e of this._prependedInlineCompletionItems)e.source.removeRef()}}prepend(e,t,i){i&&e.source.addRef();const s=this._textModel.deltaDecorations([],[{range:t,options:{description:\"inline-completion-tracking-range\"}}])[0];this._inlineCompletions.unshift(new Lte(e,s,this._textModel,this._versionId)),this._prependedInlineCompletionItems.push(e)}}class Lte{get forwardStable(){var e;return(e=this.inlineCompletion.source.inlineCompletions.enableForwardStability)!==null&&e!==void 0?e:!1}constructor(e,t,i,s){this.inlineCompletion=e,this.decorationId=t,this._textModel=i,this._modelVersion=s,this.semanticId=JSON.stringify([this.inlineCompletion.filterText,this.inlineCompletion.insertText,this.inlineCompletion.range.getStartPosition().toString()]),this._updatedRange=Uf({owner:this,equalsFn:A.equalsRange},o=>(this._modelVersion.read(o),this._textModel.getDecorationRange(this.decorationId)))}toInlineCompletion(e){var t;return this.inlineCompletion.withRange((t=this._updatedRange.read(e))!==null&&t!==void 0?t:u3)}toSingleTextEdit(e){var t;return new Eg((t=this._updatedRange.read(e))!==null&&t!==void 0?t:u3,this.inlineCompletion.insertText)}isVisible(e,t,i){const s=Jv(this._toFilterTextReplacement(i),e),o=this._updatedRange.read(i);if(!o||!this.inlineCompletion.range.getStartPosition().equals(o.getStartPosition())||t.lineNumber!==s.range.startLineNumber)return!1;const r=e.getValueInRange(s.range,1),a=s.text,l=Math.max(0,t.column-s.range.startColumn);let c=a.substring(0,l),d=a.substring(l),u=r.substring(0,l),h=r.substring(l);const f=e.getLineIndentColumn(s.range.startLineNumber);return s.range.startColumn<=f&&(u=u.trimStart(),u.length===0&&(h=h.trimStart()),c=c.trimStart(),c.length===0&&(d=d.trimStart())),c.startsWith(u)&&!!pde(h,d)}canBeReused(e,t){const i=this._updatedRange.read(void 0);return!!i&&i.containsPosition(t)&&this.isVisible(e,t,void 0)&&Ar.ofRange(i).isGreaterThanOrEqualTo(Ar.ofRange(this.inlineCompletion.range))}_toFilterTextReplacement(e){var t;return new Eg((t=this._updatedRange.read(e))!==null&&t!==void 0?t:u3,this.inlineCompletion.filterText)}}const u3=new A(1,1,1,1),$t={Visible:EU,HasFocusedSuggestion:new He(\"suggestWidgetHasFocusedSuggestion\",!1,v(\"suggestWidgetHasSelection\",\"Whether any suggestion is focused\")),DetailsVisible:new He(\"suggestWidgetDetailsVisible\",!1,v(\"suggestWidgetDetailsVisible\",\"Whether suggestion details are visible\")),MultipleSuggestions:new He(\"suggestWidgetMultipleSuggestions\",!1,v(\"suggestWidgetMultipleSuggestions\",\"Whether there are multiple suggestions to pick from\")),MakesTextEdit:new He(\"suggestionMakesTextEdit\",!0,v(\"suggestionMakesTextEdit\",\"Whether inserting the current suggestion yields in a change or has everything already been typed\")),AcceptSuggestionsOnEnter:new He(\"acceptSuggestionOnEnter\",!0,v(\"acceptSuggestionOnEnter\",\"Whether suggestions are inserted when pressing Enter\")),HasInsertAndReplaceRange:new He(\"suggestionHasInsertAndReplaceRange\",!1,v(\"suggestionHasInsertAndReplaceRange\",\"Whether the current suggestion has insert and replace behaviour\")),InsertMode:new He(\"suggestionInsertMode\",void 0,{type:\"string\",description:v(\"suggestionInsertMode\",\"Whether the default behaviour is to insert or replace\")}),CanResolve:new He(\"suggestionCanResolve\",!1,v(\"suggestionCanResolve\",\"Whether the current suggestion supports to resolve further details\"))},bm=new R(\"suggestWidgetStatusBar\");class IJe{constructor(e,t,i,s){var o;this.position=e,this.completion=t,this.container=i,this.provider=s,this.isInvalid=!1,this.score=Yd.Default,this.distance=0,this.textLabel=typeof t.label==\"string\"?t.label:(o=t.label)===null||o===void 0?void 0:o.label,this.labelLow=this.textLabel.toLowerCase(),this.isInvalid=!this.textLabel,this.sortTextLow=t.sortText&&t.sortText.toLowerCase(),this.filterTextLow=t.filterText&&t.filterText.toLowerCase(),this.extensionId=t.extensionId,A.isIRange(t.range)?(this.editStart=new ee(t.range.startLineNumber,t.range.startColumn),this.editInsertEnd=new ee(t.range.endLineNumber,t.range.endColumn),this.editReplaceEnd=new ee(t.range.endLineNumber,t.range.endColumn),this.isInvalid=this.isInvalid||A.spansMultipleLines(t.range)||t.range.startLineNumber!==e.lineNumber):(this.editStart=new ee(t.range.insert.startLineNumber,t.range.insert.startColumn),this.editInsertEnd=new ee(t.range.insert.endLineNumber,t.range.insert.endColumn),this.editReplaceEnd=new ee(t.range.replace.endLineNumber,t.range.replace.endColumn),this.isInvalid=this.isInvalid||A.spansMultipleLines(t.range.insert)||A.spansMultipleLines(t.range.replace)||t.range.insert.startLineNumber!==e.lineNumber||t.range.replace.startLineNumber!==e.lineNumber||t.range.insert.startColumn!==t.range.replace.startColumn),typeof s.resolveCompletionItem!=\"function\"&&(this._resolveCache=Promise.resolve(),this._resolveDuration=0)}get isResolved(){return this._resolveDuration!==void 0}get resolveDuration(){return this._resolveDuration!==void 0?this._resolveDuration:-1}async resolve(e){if(!this._resolveCache){const t=e.onCancellationRequested(()=>{this._resolveCache=void 0,this._resolveDuration=void 0}),i=new xo(!0);this._resolveCache=Promise.resolve(this.provider.resolveCompletionItem(this.completion,e)).then(s=>{Object.assign(this.completion,s),this._resolveDuration=i.elapsed()},s=>{ld(s)&&(this._resolveCache=void 0,this._resolveDuration=void 0)}).finally(()=>{t.dispose()})}return this._resolveCache}}class yk{constructor(e=2,t=new Set,i=new Set,s=new Map,o=!0){this.snippetSortOrder=e,this.kindFilter=t,this.providerFilter=i,this.providerItemsToReuse=s,this.showDeprecated=o}}yk.default=new yk;let EJe;function TJe(){return EJe}class NJe{constructor(e,t,i,s){this.items=e,this.needsClipboard=t,this.durations=i,this.disposable=s}}async function OU(n,e,t,i=yk.default,s={triggerKind:0},o=Qt.None){const r=new xo;t=t.clone();const a=e.getWordAtPosition(t),l=a?new A(t.lineNumber,a.startColumn,t.lineNumber,a.endColumn):A.fromPositions(t),c={replace:l,insert:l.setEndPosition(t.lineNumber,t.column)},d=[],u=new be,h=[];let f=!1;const g=(_,b,w)=>{var y,S,x;let k=!1;if(!b)return k;for(const D of b.suggestions)if(!i.kindFilter.has(D.kind)){if(!i.showDeprecated&&(!((y=D==null?void 0:D.tags)===null||y===void 0)&&y.includes(1)))continue;D.range||(D.range=c),D.sortText||(D.sortText=typeof D.label==\"string\"?D.label:D.label.label),!f&&D.insertTextRules&&D.insertTextRules&4&&(f=L0.guessNeedsClipboard(D.insertText)),d.push(new IJe(t,D,b,_)),k=!0}return nM(b)&&u.add(b),h.push({providerName:(S=_._debugDisplayName)!==null&&S!==void 0?S:\"unknown_provider\",elapsedProvider:(x=b.duration)!==null&&x!==void 0?x:-1,elapsedOverall:w.elapsed()}),k},p=(async()=>{})();for(const _ of n.orderedGroups(e)){let b=!1;if(await Promise.all(_.map(async w=>{if(i.providerItemsToReuse.has(w)){const y=i.providerItemsToReuse.get(w);y.forEach(S=>d.push(S)),b=b||y.length>0;return}if(!(i.providerFilter.size>0&&!i.providerFilter.has(w)))try{const y=new xo,S=await w.provideCompletionItems(e,t,s,o);b=g(w,S,y)||b}catch(y){as(y)}})),b||o.isCancellationRequested)break}return await p,o.isCancellationRequested?(u.dispose(),Promise.reject(new nu)):new NJe(d.sort(MJe(i.snippetSortOrder)),f,{entries:h,elapsed:r.elapsed()},u)}function FU(n,e){if(n.sortTextLow&&e.sortTextLow){if(n.sortTextLow<e.sortTextLow)return-1;if(n.sortTextLow>e.sortTextLow)return 1}return n.textLabel<e.textLabel?-1:n.textLabel>e.textLabel?1:n.completion.kind-e.completion.kind}function AJe(n,e){if(n.completion.kind!==e.completion.kind){if(n.completion.kind===27)return-1;if(e.completion.kind===27)return 1}return FU(n,e)}function RJe(n,e){if(n.completion.kind!==e.completion.kind){if(n.completion.kind===27)return 1;if(e.completion.kind===27)return-1}return FU(n,e)}const qP=new Map;qP.set(0,AJe);qP.set(2,RJe);qP.set(1,FU);function MJe(n){return qP.get(n)}ri.registerCommand(\"_executeCompletionItemProvider\",async(n,...e)=>{const[t,i,s,o]=e;mi(pt.isUri(t)),mi(ee.isIPosition(i)),mi(typeof s==\"string\"||!s),mi(typeof o==\"number\"||!o);const{completionProvider:r}=n.get(Xe),a=await n.get(fa).createModelReference(t);try{const l={incomplete:!1,suggestions:[]},c=[],d=a.object.textEditorModel.validatePosition(i),u=await OU(r,a.object.textEditorModel,d,void 0,{triggerCharacter:s??void 0,triggerKind:s?1:0});for(const h of u.items)c.length<(o??0)&&c.push(h.resolve(Qt.None)),l.incomplete=l.incomplete||h.container.incomplete,l.suggestions.push(h.completion);try{return await Promise.all(c),l}finally{setTimeout(()=>u.disposable.dispose(),100)}}finally{a.dispose()}});function PJe(n,e){var t;(t=n.getContribution(\"editor.contrib.suggestController\"))===null||t===void 0||t.triggerSuggest(new Set().add(e),void 0,!0)}class P1{static isAllOff(e){return e.other===\"off\"&&e.comments===\"off\"&&e.strings===\"off\"}static isAllOn(e){return e.other===\"on\"&&e.comments===\"on\"&&e.strings===\"on\"}static valueFor(e,t){switch(t){case 1:return e.comments;case 2:return e.strings;default:return e.other}}}function kte(n,e=Mo){return oBe(n,e)?n.charAt(0).toUpperCase()+n.slice(1):n}var OJe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},FJe=function(n,e){return function(t,i){e(t,i,n)}};class Dte{constructor(e){this._delegates=e}resolve(e){for(const t of this._delegates){const i=t.resolve(e);if(i!==void 0)return i}}}class Ite{constructor(e,t,i,s){this._model=e,this._selection=t,this._selectionIdx=i,this._overtypingCapturer=s}resolve(e){const{name:t}=e;if(t===\"SELECTION\"||t===\"TM_SELECTED_TEXT\"){let i=this._model.getValueInRange(this._selection)||void 0,s=this._selection.startLineNumber!==this._selection.endLineNumber;if(!i&&this._overtypingCapturer){const o=this._overtypingCapturer.getLastOvertypedInfo(this._selectionIdx);o&&(i=o.value,s=o.multiline)}if(i&&s&&e.snippet){const o=this._model.getLineContent(this._selection.startLineNumber),r=on(o,0,this._selection.startColumn-1);let a=r;e.snippet.walk(c=>c===e?!1:(c instanceof Dr&&(a=on(Wh(c.value).pop())),!0));const l=Rm(a,r);i=i.replace(/(\\r\\n|\\r|\\n)(.*)/g,(c,d,u)=>`${d}${a.substr(l)}${u}`)}return i}else{if(t===\"TM_CURRENT_LINE\")return this._model.getLineContent(this._selection.positionLineNumber);if(t===\"TM_CURRENT_WORD\"){const i=this._model.getWordAtPosition({lineNumber:this._selection.positionLineNumber,column:this._selection.positionColumn});return i&&i.word||void 0}else{if(t===\"TM_LINE_INDEX\")return String(this._selection.positionLineNumber-1);if(t===\"TM_LINE_NUMBER\")return String(this._selection.positionLineNumber);if(t===\"CURSOR_INDEX\")return String(this._selectionIdx);if(t===\"CURSOR_NUMBER\")return String(this._selectionIdx+1)}}}}class Ete{constructor(e,t){this._labelService=e,this._model=t}resolve(e){const{name:t}=e;if(t===\"TM_FILENAME\")return dm(this._model.uri.fsPath);if(t===\"TM_FILENAME_BASE\"){const i=dm(this._model.uri.fsPath),s=i.lastIndexOf(\".\");return s<=0?i:i.slice(0,s)}else{if(t===\"TM_DIRECTORY\")return cae(this._model.uri.fsPath)===\".\"?\"\":this._labelService.getUriLabel(VM(this._model.uri));if(t===\"TM_FILEPATH\")return this._labelService.getUriLabel(this._model.uri);if(t===\"RELATIVE_FILEPATH\")return this._labelService.getUriLabel(this._model.uri,{relative:!0,noPrefix:!0})}}}class Tte{constructor(e,t,i,s){this._readClipboardText=e,this._selectionIdx=t,this._selectionCount=i,this._spread=s}resolve(e){if(e.name!==\"CLIPBOARD\")return;const t=this._readClipboardText();if(t){if(this._spread){const i=t.split(/\\r\\n|\\n|\\r/).filter(s=>!_ae(s));if(i.length===this._selectionCount)return i[this._selectionIdx]}return t}}}let wR=class{constructor(e,t,i){this._model=e,this._selection=t,this._languageConfigurationService=i}resolve(e){const{name:t}=e,i=this._model.getLanguageIdAtPosition(this._selection.selectionStartLineNumber,this._selection.selectionStartColumn),s=this._languageConfigurationService.getLanguageConfiguration(i).comments;if(s){if(t===\"LINE_COMMENT\")return s.lineCommentToken||void 0;if(t===\"BLOCK_COMMENT_START\")return s.blockCommentStartToken||void 0;if(t===\"BLOCK_COMMENT_END\")return s.blockCommentEndToken||void 0}}};wR=OJe([FJe(2,gn)],wR);class $d{constructor(){this._date=new Date}resolve(e){const{name:t}=e;if(t===\"CURRENT_YEAR\")return String(this._date.getFullYear());if(t===\"CURRENT_YEAR_SHORT\")return String(this._date.getFullYear()).slice(-2);if(t===\"CURRENT_MONTH\")return String(this._date.getMonth().valueOf()+1).padStart(2,\"0\");if(t===\"CURRENT_DATE\")return String(this._date.getDate().valueOf()).padStart(2,\"0\");if(t===\"CURRENT_HOUR\")return String(this._date.getHours().valueOf()).padStart(2,\"0\");if(t===\"CURRENT_MINUTE\")return String(this._date.getMinutes().valueOf()).padStart(2,\"0\");if(t===\"CURRENT_SECOND\")return String(this._date.getSeconds().valueOf()).padStart(2,\"0\");if(t===\"CURRENT_DAY_NAME\")return $d.dayNames[this._date.getDay()];if(t===\"CURRENT_DAY_NAME_SHORT\")return $d.dayNamesShort[this._date.getDay()];if(t===\"CURRENT_MONTH_NAME\")return $d.monthNames[this._date.getMonth()];if(t===\"CURRENT_MONTH_NAME_SHORT\")return $d.monthNamesShort[this._date.getMonth()];if(t===\"CURRENT_SECONDS_UNIX\")return String(Math.floor(this._date.getTime()/1e3));if(t===\"CURRENT_TIMEZONE_OFFSET\"){const i=this._date.getTimezoneOffset(),s=i>0?\"-\":\"+\",o=Math.trunc(Math.abs(i/60)),r=o<10?\"0\"+o:o,a=Math.abs(i)-o*60,l=a<10?\"0\"+a:a;return s+r+\":\"+l}}}$d.dayNames=[v(\"Sunday\",\"Sunday\"),v(\"Monday\",\"Monday\"),v(\"Tuesday\",\"Tuesday\"),v(\"Wednesday\",\"Wednesday\"),v(\"Thursday\",\"Thursday\"),v(\"Friday\",\"Friday\"),v(\"Saturday\",\"Saturday\")];$d.dayNamesShort=[v(\"SundayShort\",\"Sun\"),v(\"MondayShort\",\"Mon\"),v(\"TuesdayShort\",\"Tue\"),v(\"WednesdayShort\",\"Wed\"),v(\"ThursdayShort\",\"Thu\"),v(\"FridayShort\",\"Fri\"),v(\"SaturdayShort\",\"Sat\")];$d.monthNames=[v(\"January\",\"January\"),v(\"February\",\"February\"),v(\"March\",\"March\"),v(\"April\",\"April\"),v(\"May\",\"May\"),v(\"June\",\"June\"),v(\"July\",\"July\"),v(\"August\",\"August\"),v(\"September\",\"September\"),v(\"October\",\"October\"),v(\"November\",\"November\"),v(\"December\",\"December\")];$d.monthNamesShort=[v(\"JanuaryShort\",\"Jan\"),v(\"FebruaryShort\",\"Feb\"),v(\"MarchShort\",\"Mar\"),v(\"AprilShort\",\"Apr\"),v(\"MayShort\",\"May\"),v(\"JuneShort\",\"Jun\"),v(\"JulyShort\",\"Jul\"),v(\"AugustShort\",\"Aug\"),v(\"SeptemberShort\",\"Sep\"),v(\"OctoberShort\",\"Oct\"),v(\"NovemberShort\",\"Nov\"),v(\"DecemberShort\",\"Dec\")];class Nte{constructor(e){this._workspaceService=e}resolve(e){if(!this._workspaceService)return;const t=EHe(this._workspaceService.getWorkspace());if(!DHe(t)){if(e.name===\"WORKSPACE_NAME\")return this._resolveWorkspaceName(t);if(e.name===\"WORKSPACE_FOLDER\")return this._resoveWorkspacePath(t)}}_resolveWorkspaceName(e){if(C9(e))return dm(e.uri.path);let t=dm(e.configPath.path);return t.endsWith(w9)&&(t=t.substr(0,t.length-w9.length-1)),t}_resoveWorkspacePath(e){if(C9(e))return kte(e.uri.fsPath);const t=dm(e.configPath.path);let i=e.configPath.fsPath;return i.endsWith(t)&&(i=i.substr(0,i.length-t.length-1)),i?kte(i):\"/\"}}class Ate{resolve(e){const{name:t}=e;if(t===\"RANDOM\")return Math.random().toString().slice(-6);if(t===\"RANDOM_HEX\")return Math.random().toString(16).slice(-6);if(t===\"UUID\")return IP()}}var BJe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},WJe=function(n,e){return function(t,i){e(t,i,n)}},Sd;class Vl{constructor(e,t,i){this._editor=e,this._snippet=t,this._snippetLineLeadingWhitespace=i,this._offset=-1,this._nestingLevel=1,this._placeholderGroups=GZ(t.placeholders,Ul.compareByIndex),this._placeholderGroupsIdx=-1}initialize(e){this._offset=e.newPosition}dispose(){this._placeholderDecorations&&this._editor.removeDecorations([...this._placeholderDecorations.values()]),this._placeholderGroups.length=0}_initDecorations(){if(this._offset===-1)throw new Error(\"Snippet not initialized!\");if(this._placeholderDecorations)return;this._placeholderDecorations=new Map;const e=this._editor.getModel();this._editor.changeDecorations(t=>{for(const i of this._snippet.placeholders){const s=this._snippet.offset(i),o=this._snippet.fullLen(i),r=A.fromPositions(e.getPositionAt(this._offset+s),e.getPositionAt(this._offset+s+o)),a=i.isFinalTabstop?Vl._decor.inactiveFinal:Vl._decor.inactive,l=t.addDecoration(r,a);this._placeholderDecorations.set(i,l)}})}move(e){if(!this._editor.hasModel())return[];if(this._initDecorations(),this._placeholderGroupsIdx>=0){const s=[];for(const o of this._placeholderGroups[this._placeholderGroupsIdx])if(o.transform){const r=this._placeholderDecorations.get(o),a=this._editor.getModel().getDecorationRange(r),l=this._editor.getModel().getValueInRange(a),c=o.transform.resolve(l).split(/\\r\\n|\\r|\\n/);for(let d=1;d<c.length;d++)c[d]=this._editor.getModel().normalizeIndentation(this._snippetLineLeadingWhitespace+c[d]);s.push(Mn.replace(a,c.join(this._editor.getModel().getEOL())))}s.length>0&&this._editor.executeEdits(\"snippet.placeholderTransform\",s)}let t=!1;e===!0&&this._placeholderGroupsIdx<this._placeholderGroups.length-1?(this._placeholderGroupsIdx+=1,t=!0):e===!1&&this._placeholderGroupsIdx>0&&(this._placeholderGroupsIdx-=1,t=!0);const i=this._editor.getModel().changeDecorations(s=>{const o=new Set,r=[];for(const a of this._placeholderGroups[this._placeholderGroupsIdx]){const l=this._placeholderDecorations.get(a),c=this._editor.getModel().getDecorationRange(l);r.push(new it(c.startLineNumber,c.startColumn,c.endLineNumber,c.endColumn)),t=t&&this._hasPlaceholderBeenCollapsed(a),s.changeDecorationOptions(l,a.isFinalTabstop?Vl._decor.activeFinal:Vl._decor.active),o.add(a);for(const d of this._snippet.enclosingPlaceholders(a)){const u=this._placeholderDecorations.get(d);s.changeDecorationOptions(u,d.isFinalTabstop?Vl._decor.activeFinal:Vl._decor.active),o.add(d)}}for(const[a,l]of this._placeholderDecorations)o.has(a)||s.changeDecorationOptions(l,a.isFinalTabstop?Vl._decor.inactiveFinal:Vl._decor.inactive);return r});return t?this.move(e):i??[]}_hasPlaceholderBeenCollapsed(e){let t=e;for(;t;){if(t instanceof Ul){const i=this._placeholderDecorations.get(t);if(this._editor.getModel().getDecorationRange(i).isEmpty()&&t.toString().length>0)return!0}t=t.parent}return!1}get isAtFirstPlaceholder(){return this._placeholderGroupsIdx<=0||this._placeholderGroups.length===0}get isAtLastPlaceholder(){return this._placeholderGroupsIdx===this._placeholderGroups.length-1}get hasPlaceholder(){return this._snippet.placeholders.length>0}get isTrivialSnippet(){if(this._snippet.placeholders.length===0)return!0;if(this._snippet.placeholders.length===1){const[e]=this._snippet.placeholders;if(e.isFinalTabstop&&this._snippet.rightMostDescendant===e)return!0}return!1}computePossibleSelections(){const e=new Map;for(const t of this._placeholderGroups){let i;for(const s of t){if(s.isFinalTabstop)break;i||(i=[],e.set(s.index,i));const o=this._placeholderDecorations.get(s),r=this._editor.getModel().getDecorationRange(o);if(!r){e.delete(s.index);break}i.push(r)}}return e}get activeChoice(){if(!this._placeholderDecorations)return;const e=this._placeholderGroups[this._placeholderGroupsIdx][0];if(!(e!=null&&e.choice))return;const t=this._placeholderDecorations.get(e);if(!t)return;const i=this._editor.getModel().getDecorationRange(t);if(i)return{range:i,choice:e.choice}}get hasChoice(){let e=!1;return this._snippet.walk(t=>(e=t instanceof Gw,!e)),e}merge(e){const t=this._editor.getModel();this._nestingLevel*=10,this._editor.changeDecorations(i=>{for(const s of this._placeholderGroups[this._placeholderGroupsIdx]){const o=e.shift();console.assert(o._offset!==-1),console.assert(!o._placeholderDecorations);const r=o._snippet.placeholderInfo.last.index;for(const l of o._snippet.placeholderInfo.all)l.isFinalTabstop?l.index=s.index+(r+1)/this._nestingLevel:l.index=s.index+l.index/this._nestingLevel;this._snippet.replace(s,o._snippet.children);const a=this._placeholderDecorations.get(s);i.removeDecoration(a),this._placeholderDecorations.delete(s);for(const l of o._snippet.placeholders){const c=o._snippet.offset(l),d=o._snippet.fullLen(l),u=A.fromPositions(t.getPositionAt(o._offset+c),t.getPositionAt(o._offset+c+d)),h=i.addDecoration(u,Vl._decor.inactive);this._placeholderDecorations.set(l,h)}}this._placeholderGroups=GZ(this._snippet.placeholders,Ul.compareByIndex)})}}Vl._decor={active:Wt.register({description:\"snippet-placeholder-1\",stickiness:0,className:\"snippet-placeholder\"}),inactive:Wt.register({description:\"snippet-placeholder-2\",stickiness:1,className:\"snippet-placeholder\"}),activeFinal:Wt.register({description:\"snippet-placeholder-3\",stickiness:1,className:\"finish-snippet-placeholder\"}),inactiveFinal:Wt.register({description:\"snippet-placeholder-4\",stickiness:1,className:\"finish-snippet-placeholder\"})};const Rte={overwriteBefore:0,overwriteAfter:0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};let yR=Sd=class{static adjustWhitespace(e,t,i,s,o){const r=e.getLineContent(t.lineNumber),a=on(r,0,t.column-1);let l;return s.walk(c=>{if(!(c instanceof Dr)||c.parent instanceof Gw||o&&!o.has(c))return!0;const d=c.value.split(/\\r\\n|\\r|\\n/);if(i){const h=s.offset(c);if(h===0)d[0]=e.normalizeIndentation(d[0]);else{l=l??s.toString();const f=l.charCodeAt(h-1);(f===10||f===13)&&(d[0]=e.normalizeIndentation(a+d[0]))}for(let f=1;f<d.length;f++)d[f]=e.normalizeIndentation(a+d[f])}const u=d.join(e.getEOL());return u!==c.value&&(c.parent.replace(c,[new Dr(u)]),l=void 0),!0}),a}static adjustSelection(e,t,i,s){if(i!==0||s!==0){const{positionLineNumber:o,positionColumn:r}=t,a=r-i,l=r+s,c=e.validateRange({startLineNumber:o,startColumn:a,endLineNumber:o,endColumn:l});t=it.createWithDirection(c.startLineNumber,c.startColumn,c.endLineNumber,c.endColumn,t.getDirection())}return t}static createEditsAndSnippetsFromSelections(e,t,i,s,o,r,a,l,c){const d=[],u=[];if(!e.hasModel())return{edits:d,snippets:u};const h=e.getModel(),f=e.invokeWithinContext(S=>S.get(b0)),g=e.invokeWithinContext(S=>new Ete(S.get(ZC),h)),p=()=>a,_=h.getValueInRange(Sd.adjustSelection(h,e.getSelection(),i,0)),b=h.getValueInRange(Sd.adjustSelection(h,e.getSelection(),0,s)),w=h.getLineFirstNonWhitespaceColumn(e.getSelection().positionLineNumber),y=e.getSelections().map((S,x)=>({selection:S,idx:x})).sort((S,x)=>A.compareRangesUsingStarts(S.selection,x.selection));for(const{selection:S,idx:x}of y){let k=Sd.adjustSelection(h,S,i,0),D=Sd.adjustSelection(h,S,0,s);_!==h.getValueInRange(k)&&(k=S),b!==h.getValueInRange(D)&&(D=S);const I=S.setStartPosition(k.startLineNumber,k.startColumn).setEndPosition(D.endLineNumber,D.endColumn),N=new L0().parse(t,!0,o),P=I.getStartPosition(),O=Sd.adjustWhitespace(h,P,r||x>0&&w!==h.getLineFirstNonWhitespaceColumn(S.positionLineNumber),N);N.resolveVariables(new Dte([g,new Tte(p,x,y.length,e.getOption(79)===\"spread\"),new Ite(h,S,x,l),new wR(h,S,c),new $d,new Nte(f),new Ate])),d[x]=Mn.replace(I,N.toString()),d[x].identifier={major:x,minor:0},d[x]._isTracked=!0,u[x]=new Vl(e,N,O)}return{edits:d,snippets:u}}static createEditsAndSnippetsFromEdits(e,t,i,s,o,r,a){if(!e.hasModel()||t.length===0)return{edits:[],snippets:[]};const l=[],c=e.getModel(),d=new L0,u=new UD,h=new Dte([e.invokeWithinContext(g=>new Ete(g.get(ZC),c)),new Tte(()=>o,0,e.getSelections().length,e.getOption(79)===\"spread\"),new Ite(c,e.getSelection(),0,r),new wR(c,e.getSelection(),a),new $d,new Nte(e.invokeWithinContext(g=>g.get(b0))),new Ate]);t=t.sort((g,p)=>A.compareRangesUsingStarts(g.range,p.range));let f=0;for(let g=0;g<t.length;g++){const{range:p,template:_}=t[g];if(g>0){const x=t[g-1].range,k=A.fromPositions(x.getEndPosition(),p.getStartPosition()),D=new Dr(c.getValueInRange(k));u.appendChild(D),f+=D.value.length}const b=d.parseFragment(_,u);Sd.adjustWhitespace(c,p.getStartPosition(),!0,u,new Set(b)),u.resolveVariables(h);const w=u.toString(),y=w.slice(f);f=w.length;const S=Mn.replace(p,y);S.identifier={major:g,minor:0},S._isTracked=!0,l.push(S)}return d.ensureFinalTabstop(u,i,!0),{edits:l,snippets:[new Vl(e,u,\"\")]}}constructor(e,t,i=Rte,s){this._editor=e,this._template=t,this._options=i,this._languageConfigurationService=s,this._templateMerges=[],this._snippets=[]}dispose(){tn(this._snippets)}_logInfo(){return`template=\"${this._template}\", merged_templates=\"${this._templateMerges.join(\" -> \")}\"`}insert(){if(!this._editor.hasModel())return;const{edits:e,snippets:t}=typeof this._template==\"string\"?Sd.createEditsAndSnippetsFromSelections(this._editor,this._template,this._options.overwriteBefore,this._options.overwriteAfter,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService):Sd.createEditsAndSnippetsFromEdits(this._editor,this._template,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService);this._snippets=t,this._editor.executeEdits(\"snippet\",e,i=>{const s=i.filter(o=>!!o.identifier);for(let o=0;o<t.length;o++)t[o].initialize(s[o].textChange);return this._snippets[0].hasPlaceholder?this._move(!0):s.map(o=>it.fromPositions(o.range.getEndPosition()))}),this._editor.revealRange(this._editor.getSelections()[0])}merge(e,t=Rte){if(!this._editor.hasModel())return;this._templateMerges.push([this._snippets[0]._nestingLevel,this._snippets[0]._placeholderGroupsIdx,e]);const{edits:i,snippets:s}=Sd.createEditsAndSnippetsFromSelections(this._editor,e,t.overwriteBefore,t.overwriteAfter,!0,t.adjustWhitespace,t.clipboardText,t.overtypingCapturer,this._languageConfigurationService);this._editor.executeEdits(\"snippet\",i,o=>{const r=o.filter(l=>!!l.identifier);for(let l=0;l<s.length;l++)s[l].initialize(r[l].textChange);const a=s[0].isTrivialSnippet;if(!a){for(const l of this._snippets)l.merge(s);console.assert(s.length===0)}return this._snippets[0].hasPlaceholder&&!a?this._move(void 0):r.map(l=>it.fromPositions(l.range.getEndPosition()))})}next(){const e=this._move(!0);this._editor.setSelections(e),this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition())}prev(){const e=this._move(!1);this._editor.setSelections(e),this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition())}_move(e){const t=[];for(const i of this._snippets){const s=i.move(e);t.push(...s)}return t}get isAtFirstPlaceholder(){return this._snippets[0].isAtFirstPlaceholder}get isAtLastPlaceholder(){return this._snippets[0].isAtLastPlaceholder}get hasPlaceholder(){return this._snippets[0].hasPlaceholder}get hasChoice(){return this._snippets[0].hasChoice}get activeChoice(){return this._snippets[0].activeChoice}isSelectionWithinPlaceholders(){if(!this.hasPlaceholder)return!1;const e=this._editor.getSelections();if(e.length<this._snippets.length)return!1;const t=new Map;for(const i of this._snippets){const s=i.computePossibleSelections();if(t.size===0)for(const[o,r]of s){r.sort(A.compareRangesUsingStarts);for(const a of e)if(r[0].containsRange(a)){t.set(o,[]);break}}if(t.size===0)return!1;t.forEach((o,r)=>{o.push(...s.get(r))})}e.sort(A.compareRangesUsingStarts);for(const[i,s]of t){if(s.length!==e.length){t.delete(i);continue}s.sort(A.compareRangesUsingStarts);for(let o=0;o<s.length;o++)if(!s[o].containsRange(e[o])){t.delete(i);continue}}return t.size>0}};yR=Sd=BJe([WJe(3,gn)],yR);var HJe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},AT=function(n,e){return function(t,i){e(t,i,n)}},a1;const Mte={overwriteBefore:0,overwriteAfter:0,undoStopBefore:!0,undoStopAfter:!0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};let Lo=a1=class{static get(e){return e.getContribution(a1.ID)}constructor(e,t,i,s,o){this._editor=e,this._logService=t,this._languageFeaturesService=i,this._languageConfigurationService=o,this._snippetListener=new be,this._modelVersionId=-1,this._inSnippet=a1.InSnippetMode.bindTo(s),this._hasNextTabstop=a1.HasNextTabstop.bindTo(s),this._hasPrevTabstop=a1.HasPrevTabstop.bindTo(s)}dispose(){var e;this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),(e=this._session)===null||e===void 0||e.dispose(),this._snippetListener.dispose()}insert(e,t){try{this._doInsert(e,typeof t>\"u\"?Mte:{...Mte,...t})}catch(i){this.cancel(),this._logService.error(i),this._logService.error(\"snippet_error\"),this._logService.error(\"insert_template=\",e),this._logService.error(\"existing_template=\",this._session?this._session._logInfo():\"<no_session>\")}}_doInsert(e,t){var i;if(this._editor.hasModel()){if(this._snippetListener.clear(),t.undoStopBefore&&this._editor.getModel().pushStackElement(),this._session&&typeof e!=\"string\"&&this.cancel(),this._session?(mi(typeof e==\"string\"),this._session.merge(e,t)):(this._modelVersionId=this._editor.getModel().getAlternativeVersionId(),this._session=new yR(this._editor,e,t,this._languageConfigurationService),this._session.insert()),t.undoStopAfter&&this._editor.getModel().pushStackElement(),!((i=this._session)===null||i===void 0)&&i.hasChoice){const s={_debugDisplayName:\"snippetChoiceCompletions\",provideCompletionItems:(d,u)=>{if(!this._session||d!==this._editor.getModel()||!ee.equals(this._editor.getPosition(),u))return;const{activeChoice:h}=this._session;if(!h||h.choice.options.length===0)return;const f=d.getValueInRange(h.range),g=!!h.choice.options.find(_=>_.value===f),p=[];for(let _=0;_<h.choice.options.length;_++){const b=h.choice.options[_];p.push({kind:13,label:b.value,insertText:b.value,sortText:\"a\".repeat(_+1),range:h.range,filterText:g?`${f}_${b.value}`:void 0,command:{id:\"jumpToNextSnippetPlaceholder\",title:v(\"next\",\"Go to next placeholder...\")}})}return{suggestions:p}}},o=this._editor.getModel();let r,a=!1;const l=()=>{r==null||r.dispose(),a=!1},c=()=>{a||(r=this._languageFeaturesService.completionProvider.register({language:o.getLanguageId(),pattern:o.uri.fsPath,scheme:o.uri.scheme,exclusive:!0},s),this._snippetListener.add(r),a=!0)};this._choiceCompletions={provider:s,enable:c,disable:l}}this._updateState(),this._snippetListener.add(this._editor.onDidChangeModelContent(s=>s.isFlush&&this.cancel())),this._snippetListener.add(this._editor.onDidChangeModel(()=>this.cancel())),this._snippetListener.add(this._editor.onDidChangeCursorSelection(()=>this._updateState()))}}_updateState(){if(!(!this._session||!this._editor.hasModel())){if(this._modelVersionId===this._editor.getModel().getAlternativeVersionId())return this.cancel();if(!this._session.hasPlaceholder)return this.cancel();if(this._session.isAtLastPlaceholder||!this._session.isSelectionWithinPlaceholders())return this._editor.getModel().pushStackElement(),this.cancel();this._inSnippet.set(!0),this._hasPrevTabstop.set(!this._session.isAtFirstPlaceholder),this._hasNextTabstop.set(!this._session.isAtLastPlaceholder),this._handleChoice()}}_handleChoice(){var e;if(!this._session||!this._editor.hasModel()){this._currentChoice=void 0;return}const{activeChoice:t}=this._session;if(!t||!this._choiceCompletions){(e=this._choiceCompletions)===null||e===void 0||e.disable(),this._currentChoice=void 0;return}this._currentChoice!==t.choice&&(this._currentChoice=t.choice,this._choiceCompletions.enable(),queueMicrotask(()=>{PJe(this._editor,this._choiceCompletions.provider)}))}finish(){for(;this._inSnippet.get();)this.next()}cancel(e=!1){var t;this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),this._snippetListener.clear(),this._currentChoice=void 0,(t=this._session)===null||t===void 0||t.dispose(),this._session=void 0,this._modelVersionId=-1,e&&this._editor.setSelections([this._editor.getSelection()])}prev(){var e;(e=this._session)===null||e===void 0||e.prev(),this._updateState()}next(){var e;(e=this._session)===null||e===void 0||e.next(),this._updateState()}isInSnippet(){return!!this._inSnippet.get()}};Lo.ID=\"snippetController2\";Lo.InSnippetMode=new He(\"inSnippetMode\",!1,v(\"inSnippetMode\",\"Whether the editor in current in snippet mode\"));Lo.HasNextTabstop=new He(\"hasNextTabstop\",!1,v(\"hasNextTabstop\",\"Whether there is a next tab stop when in snippet mode\"));Lo.HasPrevTabstop=new He(\"hasPrevTabstop\",!1,v(\"hasPrevTabstop\",\"Whether there is a previous tab stop when in snippet mode\"));Lo=a1=HJe([AT(1,er),AT(2,Xe),AT(3,Ct),AT(4,gn)],Lo);bi(Lo.ID,Lo,4);const GP=Us.bindToContribution(Lo.get);Fe(new GP({id:\"jumpToNextSnippetPlaceholder\",precondition:pe.and(Lo.InSnippetMode,Lo.HasNextTabstop),handler:n=>n.next(),kbOpts:{weight:130,kbExpr:W.textInputFocus,primary:2}}));Fe(new GP({id:\"jumpToPrevSnippetPlaceholder\",precondition:pe.and(Lo.InSnippetMode,Lo.HasPrevTabstop),handler:n=>n.prev(),kbOpts:{weight:130,kbExpr:W.textInputFocus,primary:1026}}));Fe(new GP({id:\"leaveSnippet\",precondition:Lo.InSnippetMode,handler:n=>n.cancel(!0),kbOpts:{weight:130,kbExpr:W.textInputFocus,primary:9,secondary:[1033]}}));Fe(new GP({id:\"acceptSnippet\",precondition:Lo.InSnippetMode,handler:n=>n.finish()}));var VJe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},h3=function(n,e){return function(t,i){e(t,i,n)}},tl;(function(n){n[n.Undo=0]=\"Undo\",n[n.Redo=1]=\"Redo\",n[n.AcceptWord=2]=\"AcceptWord\",n[n.Other=3]=\"Other\"})(tl||(tl={}));let xW=class extends ne{get isAcceptingPartially(){return this._isAcceptingPartially}constructor(e,t,i,s,o,r,a,l,c,d,u,h){super(),this.textModel=e,this.selectedSuggestItem=t,this.textModelVersionId=i,this._positions=s,this._debounceValue=o,this._suggestPreviewEnabled=r,this._suggestPreviewMode=a,this._inlineSuggestMode=l,this._enabled=c,this._instantiationService=d,this._commandService=u,this._languageConfigurationService=h,this._source=this._register(this._instantiationService.createInstance(SW,this.textModel,this.textModelVersionId,this._debounceValue)),this._isActive=li(this,!1),this._forceUpdateExplicitlySignal=nP(this),this._selectedInlineCompletionId=li(this,void 0),this._primaryPosition=Rt(this,g=>{var p;return(p=this._positions.read(g)[0])!==null&&p!==void 0?p:new ee(1,1)}),this._isAcceptingPartially=!1,this._preserveCurrentCompletionReasons=new Set([tl.Redo,tl.Undo,tl.AcceptWord]),this._fetchInlineCompletionsPromise=fVe({owner:this,createEmptyChangeSummary:()=>({preserveCurrentCompletion:!1,inlineCompletionTriggerKind:pg.Automatic}),handleChange:(g,p)=>(g.didChange(this.textModelVersionId)&&this._preserveCurrentCompletionReasons.has(g.change)?p.preserveCurrentCompletion=!0:g.didChange(this._forceUpdateExplicitlySignal)&&(p.inlineCompletionTriggerKind=pg.Explicit),!0)},(g,p)=>{if(this._forceUpdateExplicitlySignal.read(g),!(this._enabled.read(g)&&this.selectedSuggestItem.read(g)||this._isActive.read(g))){this._source.cancelUpdate();return}this.textModelVersionId.read(g);const b=this._source.suggestWidgetInlineCompletions.get(),w=this.selectedSuggestItem.read(g);if(b&&!w){const D=this._source.inlineCompletions.get();rn(I=>{(!D||b.request.versionId>D.request.versionId)&&this._source.inlineCompletions.set(b.clone(),I),this._source.clearSuggestWidgetInlineCompletions(I)})}const y=this._primaryPosition.read(g),S={triggerKind:p.inlineCompletionTriggerKind,selectedSuggestionInfo:w==null?void 0:w.toSelectedSuggestionInfo()},x=this.selectedInlineCompletion.get(),k=p.preserveCurrentCompletion||x!=null&&x.forwardStable?x:void 0;return this._source.fetch(y,S,k)}),this._filteredInlineCompletionItems=Uf({owner:this,equalsFn:D9()},g=>{const p=this._source.inlineCompletions.read(g);if(!p)return[];const _=this._primaryPosition.read(g);return p.inlineCompletions.filter(w=>w.isVisible(this.textModel,_,g))}),this.selectedInlineCompletionIndex=Rt(this,g=>{const p=this._selectedInlineCompletionId.read(g),_=this._filteredInlineCompletionItems.read(g),b=this._selectedInlineCompletionId===void 0?-1:_.findIndex(w=>w.semanticId===p);return b===-1?(this._selectedInlineCompletionId.set(void 0,void 0),0):b}),this.selectedInlineCompletion=Rt(this,g=>{const p=this._filteredInlineCompletionItems.read(g),_=this.selectedInlineCompletionIndex.read(g);return p[_]}),this.activeCommands=Uf({owner:this,equalsFn:D9()},g=>{var p,_;return(_=(p=this.selectedInlineCompletion.read(g))===null||p===void 0?void 0:p.inlineCompletion.source.inlineCompletions.commands)!==null&&_!==void 0?_:[]}),this.lastTriggerKind=this._source.inlineCompletions.map(this,g=>g==null?void 0:g.request.context.triggerKind),this.inlineCompletionsCount=Rt(this,g=>{if(this.lastTriggerKind.read(g)===pg.Explicit)return this._filteredInlineCompletionItems.read(g).length}),this.state=Uf({owner:this,equalsFn:(g,p)=>!g||!p?g===p:mte(g.ghostTexts,p.ghostTexts)&&g.inlineCompletion===p.inlineCompletion&&g.suggestItem===p.suggestItem},g=>{var p,_;const b=this.textModel,w=this.selectedSuggestItem.read(g);if(w){const y=Jv(w.toSingleTextEdit(),b),S=this._computeAugmentation(y,g);if(!this._suggestPreviewEnabled.read(g)&&!S)return;const k=(p=S==null?void 0:S.edit)!==null&&p!==void 0?p:y,D=S?S.edit.text.length-y.text.length:0,I=this._suggestPreviewMode.read(g),N=this._positions.read(g),P=[k,...f3(this.textModel,N,k)],O=P.map((z,K)=>wte(z,b,I,N[K],D)).filter(gh),M=(_=O[0])!==null&&_!==void 0?_:new wk(k.range.endLineNumber,[]);return{edits:P,primaryGhostText:M,ghostTexts:O,inlineCompletion:S==null?void 0:S.completion,suggestItem:w}}else{if(!this._isActive.read(g))return;const y=this.selectedInlineCompletion.read(g);if(!y)return;const S=y.toSingleTextEdit(g),x=this._inlineSuggestMode.read(g),k=this._positions.read(g),D=[S,...f3(this.textModel,k,S)],I=D.map((N,P)=>wte(N,b,x,k[P],0)).filter(gh);return I[0]?{edits:D,primaryGhostText:I[0],ghostTexts:I,inlineCompletion:y,suggestItem:void 0}:void 0}}),this.ghostTexts=Uf({owner:this,equalsFn:mte},g=>{const p=this.state.read(g);if(p)return p.ghostTexts}),this.primaryGhostText=Uf({owner:this,equalsFn:_ge},g=>{const p=this.state.read(g);if(p)return p==null?void 0:p.primaryGhostText}),this._register(RD(this._fetchInlineCompletionsPromise));let f;this._register(Ut(g=>{var p,_;const b=this.state.read(g),w=b==null?void 0:b.inlineCompletion;if((w==null?void 0:w.semanticId)!==(f==null?void 0:f.semanticId)&&(f=w,w)){const y=w.inlineCompletion,S=y.source;(_=(p=S.provider).handleItemDidShow)===null||_===void 0||_.call(p,S.inlineCompletions,y.sourceInlineCompletion,y.insertText)}}))}async trigger(e){this._isActive.set(!0,e),await this._fetchInlineCompletionsPromise.get()}async triggerExplicitly(e){jL(e,t=>{this._isActive.set(!0,t),this._forceUpdateExplicitlySignal.trigger(t)}),await this._fetchInlineCompletionsPromise.get()}stop(e){jL(e,t=>{this._isActive.set(!1,t),this._source.clear(t)})}_computeAugmentation(e,t){const i=this.textModel,s=this._source.suggestWidgetInlineCompletions.read(t),o=s?s.inlineCompletions:[this.selectedInlineCompletion.read(t)].filter(gh);return VOe(o,a=>{let l=a.toSingleTextEdit(t);return l=Jv(l,i,A.fromPositions(l.range.getStartPosition(),e.range.getEndPosition())),wge(l,e)?{completion:a,edit:l}:void 0})}async _deltaSelectedInlineCompletionIndex(e){await this.triggerExplicitly();const t=this._filteredInlineCompletionItems.get()||[];if(t.length>0){const i=(this.selectedInlineCompletionIndex.get()+e+t.length)%t.length;this._selectedInlineCompletionId.set(t[i].semanticId,void 0)}else this._selectedInlineCompletionId.set(void 0,void 0)}async next(){await this._deltaSelectedInlineCompletionIndex(1)}async previous(){await this._deltaSelectedInlineCompletionIndex(-1)}async accept(e){var t;if(e.getModel()!==this.textModel)throw new Gi;const i=this.state.get();if(!i||i.primaryGhostText.isEmpty()||!i.inlineCompletion)return;const s=i.inlineCompletion.toInlineCompletion(void 0);if(e.pushUndoStop(),s.snippetInfo)e.executeEdits(\"inlineSuggestion.accept\",[Mn.replace(s.range,\"\"),...s.additionalTextEdits]),e.setPosition(s.snippetInfo.range.getStartPosition(),\"inlineCompletionAccept\"),(t=Lo.get(e))===null||t===void 0||t.insert(s.snippetInfo.snippet,{undoStopBefore:!1});else{const o=i.edits,r=Pte(o).map(a=>it.fromPositions(a));e.executeEdits(\"inlineSuggestion.accept\",[...o.map(a=>Mn.replace(a.range,a.text)),...s.additionalTextEdits]),e.setSelections(r,\"inlineCompletionAccept\")}s.command&&s.source.addRef(),rn(o=>{this._source.clear(o),this._isActive.set(!1,o)}),s.command&&(await this._commandService.executeCommand(s.command.id,...s.command.arguments||[]).then(void 0,as),s.source.removeRef())}async acceptNextWord(e){await this._acceptNext(e,(t,i)=>{const s=this.textModel.getLanguageIdAtPosition(t.lineNumber,t.column),o=this._languageConfigurationService.getLanguageConfiguration(s),r=new RegExp(o.wordDefinition.source,o.wordDefinition.flags.replace(\"g\",\"\")),a=i.match(r);let l=0;a&&a.index!==void 0?a.index===0?l=a[0].length:l=a.index:l=i.length;const d=/\\s+/g.exec(i);return d&&d.index!==void 0&&d.index+d[0].length<l&&(l=d.index+d[0].length),l},0)}async acceptNextLine(e){await this._acceptNext(e,(t,i)=>{const s=i.match(/\\n/);return s&&s.index!==void 0?s.index+1:i.length},1)}async _acceptNext(e,t,i){if(e.getModel()!==this.textModel)throw new Gi;const s=this.state.get();if(!s||s.primaryGhostText.isEmpty()||!s.inlineCompletion)return;const o=s.primaryGhostText,r=s.inlineCompletion.toInlineCompletion(void 0);if(r.snippetInfo||r.filterText!==r.insertText){await this.accept(e);return}const a=o.parts[0],l=new ee(o.lineNumber,a.column),c=a.text,d=t(l,c);if(d===c.length&&o.parts.length===1){this.accept(e);return}const u=c.substring(0,d),h=this._positions.get(),f=h[0];r.source.addRef();try{this._isAcceptingPartially=!0;try{e.pushUndoStop();const g=A.fromPositions(f,l),p=e.getModel().getValueInRange(g)+u,_=new Eg(g,p),b=[_,...f3(this.textModel,h,_)],w=Pte(b).map(y=>it.fromPositions(y));e.executeEdits(\"inlineSuggestion.accept\",b.map(y=>Mn.replace(y.range,y.text))),e.setSelections(w,\"inlineCompletionPartialAccept\"),e.revealPositionInCenterIfOutsideViewport(e.getPosition(),1)}finally{this._isAcceptingPartially=!1}if(r.source.provider.handlePartialAccept){const g=A.fromPositions(r.range.getStartPosition(),Ar.ofText(u).addToPosition(l)),p=e.getModel().getValueInRange(g,1);r.source.provider.handlePartialAccept(r.source.inlineCompletions,r.sourceInlineCompletion,p.length,{kind:i})}}finally{r.source.removeRef()}}handleSuggestAccepted(e){var t,i;const s=Jv(e.toSingleTextEdit(),this.textModel),o=this._computeAugmentation(s,void 0);if(!o)return;const r=o.completion.inlineCompletion;(i=(t=r.source.provider).handlePartialAccept)===null||i===void 0||i.call(t,r.source.inlineCompletions,r.sourceInlineCompletion,s.text.length,{kind:2})}};xW=VJe([h3(9,ht),h3(10,Sn),h3(11,gn)],xW);function f3(n,e,t){if(e.length===1)return[];const i=e[0],s=e.slice(1),o=t.range.getStartPosition(),r=t.range.getEndPosition(),a=n.getValueInRange(A.fromPositions(i,r)),l=_te(i,o);if(l.lineNumber<1)return Mt(new Gi(`positionWithinTextEdit line number should be bigger than 0.\n\t\t\tInvalid subtraction between ${i.toString()} and ${o.toString()}`)),[];const c=zJe(t.text,l);return s.map(d=>{const u=uJe(_te(d,o),r),h=n.getValueInRange(A.fromPositions(d,u)),f=Rm(a,h),g=A.fromPositions(d,d.delta(0,f));return new Eg(g,c)})}function zJe(n,e){let t=\"\";const i=mRe(n);for(let s=e.lineNumber-1;s<i.length;s++)t+=i[s].substring(s===e.lineNumber-1?e.column-1:0);return t}function Pte(n){const e=S2.createSortPermutation(n,(o,r)=>A.compareRangesUsingStarts(o.range,r.range)),i=new mz(e.apply(n)).getNewRanges();return e.inverse().apply(i).map(o=>o.getEndPosition())}var $Je=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Ote=function(n,e){return function(t,i){e(t,i,n)}},FS;class BU{constructor(e){this.name=e}select(e,t,i){if(i.length===0)return 0;const s=i[0].score[0];for(let o=0;o<i.length;o++){const{score:r,completion:a}=i[o];if(r[0]!==s)break;if(a.preselect)return o}return 0}}class yge extends BU{constructor(){super(\"first\")}memorize(e,t,i){}toJSON(){}fromJSON(){}}class UJe extends BU{constructor(){super(\"recentlyUsed\"),this._cache=new zh(300,.66),this._seq=0}memorize(e,t,i){const s=`${e.getLanguageId()}/${i.textLabel}`;this._cache.set(s,{touch:this._seq++,type:i.completion.kind,insertText:i.completion.insertText})}select(e,t,i){if(i.length===0)return 0;const s=e.getLineContent(t.lineNumber).substr(t.column-10,t.column-1);if(/\\s$/.test(s))return super.select(e,t,i);const o=i[0].score[0];let r=-1,a=-1,l=-1;for(let c=0;c<i.length&&i[c].score[0]===o;c++){const d=`${e.getLanguageId()}/${i[c].textLabel}`,u=this._cache.peek(d);if(u&&u.touch>l&&u.type===i[c].completion.kind&&u.insertText===i[c].completion.insertText&&(l=u.touch,a=c),i[c].completion.preselect&&r===-1)return r=c}return a!==-1?a:r!==-1?r:0}toJSON(){return this._cache.toJSON()}fromJSON(e){this._cache.clear();const t=0;for(const[i,s]of e)s.touch=t,s.type=typeof s.type==\"number\"?s.type:rL.fromString(s.type),this._cache.set(i,s);this._seq=this._cache.size}}class jJe extends BU{constructor(){super(\"recentlyUsedByPrefix\"),this._trie=lC.forStrings(),this._seq=0}memorize(e,t,i){const{word:s}=e.getWordUntilPosition(t),o=`${e.getLanguageId()}/${s}`;this._trie.set(o,{type:i.completion.kind,insertText:i.completion.insertText,touch:this._seq++})}select(e,t,i){const{word:s}=e.getWordUntilPosition(t);if(!s)return super.select(e,t,i);const o=`${e.getLanguageId()}/${s}`;let r=this._trie.get(o);if(r||(r=this._trie.findSubstr(o)),r)for(let a=0;a<i.length;a++){const{kind:l,insertText:c}=i[a].completion;if(l===r.type&&c===r.insertText)return a}return super.select(e,t,i)}toJSON(){const e=[];return this._trie.forEach((t,i)=>e.push([i,t])),e.sort((t,i)=>-(t[1].touch-i[1].touch)).forEach((t,i)=>t[1].touch=i),e.slice(0,200)}fromJSON(e){if(this._trie.clear(),e.length>0){this._seq=e[0][1].touch+1;for(const[t,i]of e)i.type=typeof i.type==\"number\"?i.type:rL.fromString(i.type),this._trie.set(t,i)}}}let Sk=FS=class{constructor(e,t){this._storageService=e,this._configService=t,this._disposables=new be,this._persistSoon=new Xi(()=>this._saveState(),500),this._disposables.add(e.onWillSaveState(i=>{i.reason===GL.SHUTDOWN&&this._saveState()}))}dispose(){this._disposables.dispose(),this._persistSoon.dispose()}memorize(e,t,i){this._withStrategy(e,t).memorize(e,t,i),this._persistSoon.schedule()}select(e,t,i){return this._withStrategy(e,t).select(e,t,i)}_withStrategy(e,t){var i;const s=this._configService.getValue(\"editor.suggestSelection\",{overrideIdentifier:e.getLanguageIdAtPosition(t.lineNumber,t.column),resource:e.uri});if(((i=this._strategy)===null||i===void 0?void 0:i.name)!==s){this._saveState();const o=FS._strategyCtors.get(s)||yge;this._strategy=new o;try{const a=this._configService.getValue(\"editor.suggest.shareSuggestSelections\")?0:1,l=this._storageService.get(`${FS._storagePrefix}/${s}`,a);l&&this._strategy.fromJSON(JSON.parse(l))}catch{}}return this._strategy}_saveState(){if(this._strategy){const t=this._configService.getValue(\"editor.suggest.shareSuggestSelections\")?0:1,i=JSON.stringify(this._strategy);this._storageService.store(`${FS._storagePrefix}/${this._strategy.name}`,i,t,1)}}};Sk._strategyCtors=new Map([[\"recentlyUsedByPrefix\",jJe],[\"recentlyUsed\",UJe],[\"first\",yge]]);Sk._storagePrefix=\"suggest/memories\";Sk=FS=$Je([Ote(0,dd),Ote(1,qt)],Sk);const ZP=Jt(\"ISuggestMemories\");ai(ZP,Sk,1);var KJe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},qJe=function(n,e){return function(t,i){e(t,i,n)}},LW;let xk=LW=class{constructor(e,t){this._editor=e,this._enabled=!1,this._ckAtEnd=LW.AtEnd.bindTo(t),this._configListener=this._editor.onDidChangeConfiguration(i=>i.hasChanged(123)&&this._update()),this._update()}dispose(){var e;this._configListener.dispose(),(e=this._selectionListener)===null||e===void 0||e.dispose(),this._ckAtEnd.reset()}_update(){const e=this._editor.getOption(123)===\"on\";if(this._enabled!==e)if(this._enabled=e,this._enabled){const t=()=>{if(!this._editor.hasModel()){this._ckAtEnd.set(!1);return}const i=this._editor.getModel(),s=this._editor.getSelection(),o=i.getWordAtPosition(s.getStartPosition());if(!o){this._ckAtEnd.set(!1);return}this._ckAtEnd.set(o.endColumn===s.getStartPosition().column)};this._selectionListener=this._editor.onDidChangeCursorSelection(t),t()}else this._selectionListener&&(this._ckAtEnd.reset(),this._selectionListener.dispose(),this._selectionListener=void 0)}};xk.AtEnd=new He(\"atEndOfWord\",!1);xk=LW=KJe([qJe(1,Ct)],xk);var GJe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},ZJe=function(n,e){return function(t,i){e(t,i,n)}},BS;let R0=BS=class{constructor(e,t){this._editor=e,this._index=0,this._ckOtherSuggestions=BS.OtherSuggestions.bindTo(t)}dispose(){this.reset()}reset(){var e;this._ckOtherSuggestions.reset(),(e=this._listener)===null||e===void 0||e.dispose(),this._model=void 0,this._acceptNext=void 0,this._ignore=!1}set({model:e,index:t},i){if(e.items.length===0){this.reset();return}if(BS._moveIndex(!0,e,t)===t){this.reset();return}this._acceptNext=i,this._model=e,this._index=t,this._listener=this._editor.onDidChangeCursorPosition(()=>{this._ignore||this.reset()}),this._ckOtherSuggestions.set(!0)}static _moveIndex(e,t,i){let s=i;for(let o=t.items.length;o>0&&(s=(s+t.items.length+(e?1:-1))%t.items.length,!(s===i||!t.items[s].completion.additionalTextEdits));o--);return s}next(){this._move(!0)}prev(){this._move(!1)}_move(e){if(this._model)try{this._ignore=!0,this._index=BS._moveIndex(e,this._model,this._index),this._acceptNext({index:this._index,item:this._model.items[this._index],model:this._model})}finally{this._ignore=!1}}};R0.OtherSuggestions=new He(\"hasOtherSuggestions\",!1);R0=BS=GJe([ZJe(1,Ct)],R0);class YJe{constructor(e,t,i,s){this._disposables=new be,this._disposables.add(i.onDidSuggest(o=>{o.completionModel.items.length===0&&this.reset()})),this._disposables.add(i.onDidCancel(o=>{this.reset()})),this._disposables.add(t.onDidShow(()=>this._onItem(t.getFocusedItem()))),this._disposables.add(t.onDidFocus(this._onItem,this)),this._disposables.add(t.onDidHide(this.reset,this)),this._disposables.add(e.onWillType(o=>{if(this._active&&!t.isFrozen()&&i.state!==0){const r=o.charCodeAt(o.length-1);this._active.acceptCharacters.has(r)&&e.getOption(0)&&s(this._active.item)}}))}_onItem(e){if(!e||!Zo(e.item.completion.commitCharacters)){this.reset();return}if(this._active&&this._active.item.item===e.item)return;const t=new j2;for(const i of e.item.completion.commitCharacters)i.length>0&&t.add(i.charCodeAt(0));this._active={acceptCharacters:t,item:e}}reset(){this._active=void 0}dispose(){this._disposables.dispose()}}class il{async provideSelectionRanges(e,t){const i=[];for(const s of t){const o=[];i.push(o);const r=new Map;await new Promise(a=>il._bracketsRightYield(a,0,e,s,r)),await new Promise(a=>il._bracketsLeftYield(a,0,e,s,r,o))}return i}static _bracketsRightYield(e,t,i,s,o){const r=new Map,a=Date.now();for(;;){if(t>=il._maxRounds){e();break}if(!s){e();break}const l=i.bracketPairs.findNextBracket(s);if(!l){e();break}if(Date.now()-a>il._maxDuration){setTimeout(()=>il._bracketsRightYield(e,t+1,i,s,o));break}if(l.bracketInfo.isOpeningBracket){const d=l.bracketInfo.bracketText,u=r.has(d)?r.get(d):0;r.set(d,u+1)}else{const d=l.bracketInfo.getOpeningBrackets()[0].bracketText;let u=r.has(d)?r.get(d):0;if(u-=1,r.set(d,Math.max(0,u)),u<0){let h=o.get(d);h||(h=new Tr,o.set(d,h)),h.push(l.range)}}s=l.range.getEndPosition()}}static _bracketsLeftYield(e,t,i,s,o,r){const a=new Map,l=Date.now();for(;;){if(t>=il._maxRounds&&o.size===0){e();break}if(!s){e();break}const c=i.bracketPairs.findPrevBracket(s);if(!c){e();break}if(Date.now()-l>il._maxDuration){setTimeout(()=>il._bracketsLeftYield(e,t+1,i,s,o,r));break}if(c.bracketInfo.isOpeningBracket){const u=c.bracketInfo.bracketText;let h=a.has(u)?a.get(u):0;if(h-=1,a.set(u,Math.max(0,h)),h<0){const f=o.get(u);if(f){const g=f.shift();f.size===0&&o.delete(u);const p=A.fromPositions(c.range.getEndPosition(),g.getStartPosition()),_=A.fromPositions(c.range.getStartPosition(),g.getEndPosition());r.push({range:p}),r.push({range:_}),il._addBracketLeading(i,_,r)}}}else{const u=c.bracketInfo.getOpeningBrackets()[0].bracketText,h=a.has(u)?a.get(u):0;a.set(u,h+1)}s=c.range.getStartPosition()}}static _addBracketLeading(e,t,i){if(t.startLineNumber===t.endLineNumber)return;const s=t.startLineNumber,o=e.getLineFirstNonWhitespaceColumn(s);o!==0&&o!==t.startColumn&&(i.push({range:A.fromPositions(new ee(s,o),t.getEndPosition())}),i.push({range:A.fromPositions(new ee(s,1),t.getEndPosition())}));const r=s-1;if(r>0){const a=e.getLineFirstNonWhitespaceColumn(r);a===t.startColumn&&a!==e.getLineLastNonWhitespaceColumn(r)&&(i.push({range:A.fromPositions(new ee(r,a),t.getEndPosition())}),i.push({range:A.fromPositions(new ee(r,1),t.getEndPosition())}))}}}il._maxDuration=30;il._maxRounds=2;class Pd{static async create(e,t){if(!t.getOption(118).localityBonus||!t.hasModel())return Pd.None;const i=t.getModel(),s=t.getPosition();if(!e.canComputeWordRanges(i.uri))return Pd.None;const[o]=await new il().provideSelectionRanges(i,[s]);if(o.length===0)return Pd.None;const r=await e.computeWordRanges(i.uri,o[0].range);if(!r)return Pd.None;const a=i.getWordUntilPosition(s);return delete r[a.word],new class extends Pd{distance(l,c){if(!s.equals(t.getPosition()))return 0;if(c.kind===17)return 2<<20;const d=typeof c.label==\"string\"?c.label:c.label.label,u=r[d];if(Bre(u))return 2<<20;const h=tL(u,A.fromPositions(l),A.compareRangesUsingStarts),f=h>=0?u[h]:u[Math.max(0,~h-1)];let g=o.length;for(const p of o){if(!A.containsRange(p.range,f))break;g-=1}return g}}}}Pd.None=new class extends Pd{distance(){return 0}};let Fte=class{constructor(e,t){this.leadingLineContent=e,this.characterCountDelta=t}};class Fp{constructor(e,t,i,s,o,r,a=qM.default,l=void 0){this.clipboardText=l,this._snippetCompareFn=Fp._compareCompletionItems,this._items=e,this._column=t,this._wordDistance=s,this._options=o,this._refilterKind=1,this._lineContext=i,this._fuzzyScoreOptions=a,r===\"top\"?this._snippetCompareFn=Fp._compareCompletionItemsSnippetsUp:r===\"bottom\"&&(this._snippetCompareFn=Fp._compareCompletionItemsSnippetsDown)}get lineContext(){return this._lineContext}set lineContext(e){(this._lineContext.leadingLineContent!==e.leadingLineContent||this._lineContext.characterCountDelta!==e.characterCountDelta)&&(this._refilterKind=this._lineContext.characterCountDelta<e.characterCountDelta&&this._filteredItems?2:1,this._lineContext=e)}get items(){return this._ensureCachedState(),this._filteredItems}getItemsByProvider(){return this._ensureCachedState(),this._itemsByProvider}getIncompleteProvider(){this._ensureCachedState();const e=new Set;for(const[t,i]of this.getItemsByProvider())i.length>0&&i[0].container.incomplete&&e.add(t);return e}get stats(){return this._ensureCachedState(),this._stats}_ensureCachedState(){this._refilterKind!==0&&this._createCachedState()}_createCachedState(){this._itemsByProvider=new Map;const e=[],{leadingLineContent:t,characterCountDelta:i}=this._lineContext;let s=\"\",o=\"\";const r=this._refilterKind===1?this._items:this._filteredItems,a=[],l=!this._options.filterGraceful||r.length>2e3?v0:cWe;for(let c=0;c<r.length;c++){const d=r[c];if(d.isInvalid)continue;const u=this._itemsByProvider.get(d.provider);u?u.push(d):this._itemsByProvider.set(d.provider,[d]);const h=d.position.column-d.editStart.column,f=h+i-(d.position.column-this._column);if(s.length!==f&&(s=f===0?\"\":t.slice(-f),o=s.toLowerCase()),d.word=s,f===0)d.score=Yd.Default;else{let g=0;for(;g<h;){const p=s.charCodeAt(g);if(p===32||p===9)g+=1;else break}if(g>=f)d.score=Yd.Default;else if(typeof d.completion.filterText==\"string\"){const p=l(s,o,g,d.completion.filterText,d.filterTextLow,0,this._fuzzyScoreOptions);if(!p)continue;Q7(d.completion.filterText,d.textLabel)===0?d.score=p:(d.score=oWe(s,o,g,d.textLabel,d.labelLow,0),d.score[0]=p[0])}else{const p=l(s,o,g,d.textLabel,d.labelLow,0,this._fuzzyScoreOptions);if(!p)continue;d.score=p}}d.idx=c,d.distance=this._wordDistance.distance(d.position,d.completion),a.push(d),e.push(d.textLabel.length)}this._filteredItems=a.sort(this._snippetCompareFn),this._refilterKind=0,this._stats={pLabelLen:e.length?G8(e.length-.85,e,(c,d)=>c-d):0}}static _compareCompletionItems(e,t){return e.score[0]>t.score[0]?-1:e.score[0]<t.score[0]?1:e.distance<t.distance?-1:e.distance>t.distance?1:e.idx<t.idx?-1:e.idx>t.idx?1:0}static _compareCompletionItemsSnippetsDown(e,t){if(e.completion.kind!==t.completion.kind){if(e.completion.kind===27)return 1;if(t.completion.kind===27)return-1}return Fp._compareCompletionItems(e,t)}static _compareCompletionItemsSnippetsUp(e,t){if(e.completion.kind!==t.completion.kind){if(e.completion.kind===27)return-1;if(t.completion.kind===27)return 1}return Fp._compareCompletionItems(e,t)}}var XJe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},up=function(n,e){return function(t,i){e(t,i,n)}},kW;class Y_{static shouldAutoTrigger(e){if(!e.hasModel())return!1;const t=e.getModel(),i=e.getPosition();t.tokenization.tokenizeIfCheap(i.lineNumber);const s=t.getWordAtPosition(i);return!(!s||s.endColumn!==i.column&&s.startColumn+1!==i.column||!isNaN(Number(s.word)))}constructor(e,t,i){this.leadingLineContent=e.getLineContent(t.lineNumber).substr(0,t.column-1),this.leadingWord=e.getWordUntilPosition(t),this.lineNumber=t.lineNumber,this.column=t.column,this.triggerOptions=i}}function QJe(n,e,t){if(!e.getContextKeyValue(lo.inlineSuggestionVisible.key))return!0;const i=e.getContextKeyValue(lo.suppressSuggestions.key);return i!==void 0?!i:!n.getOption(62).suppressSuggestions}function JJe(n,e,t){if(!e.getContextKeyValue(\"inlineSuggestionVisible\"))return!0;const i=e.getContextKeyValue(lo.suppressSuggestions.key);return i!==void 0?!i:!n.getOption(62).suppressSuggestions}let SR=kW=class{constructor(e,t,i,s,o,r,a,l,c){this._editor=e,this._editorWorkerService=t,this._clipboardService=i,this._telemetryService=s,this._logService=o,this._contextKeyService=r,this._configurationService=a,this._languageFeaturesService=l,this._envService=c,this._toDispose=new be,this._triggerCharacterListener=new be,this._triggerQuickSuggest=new cd,this._triggerState=void 0,this._completionDisposables=new be,this._onDidCancel=new X,this._onDidTrigger=new X,this._onDidSuggest=new X,this.onDidCancel=this._onDidCancel.event,this.onDidTrigger=this._onDidTrigger.event,this.onDidSuggest=this._onDidSuggest.event,this._telemetryGate=0,this._currentSelection=this._editor.getSelection()||new it(1,1,1,1),this._toDispose.add(this._editor.onDidChangeModel(()=>{this._updateTriggerCharacters(),this.cancel()})),this._toDispose.add(this._editor.onDidChangeModelLanguage(()=>{this._updateTriggerCharacters(),this.cancel()})),this._toDispose.add(this._editor.onDidChangeConfiguration(()=>{this._updateTriggerCharacters()})),this._toDispose.add(this._languageFeaturesService.completionProvider.onDidChange(()=>{this._updateTriggerCharacters(),this._updateActiveSuggestSession()}));let d=!1;this._toDispose.add(this._editor.onDidCompositionStart(()=>{d=!0})),this._toDispose.add(this._editor.onDidCompositionEnd(()=>{d=!1,this._onCompositionEnd()})),this._toDispose.add(this._editor.onDidChangeCursorSelection(u=>{d||this._onCursorChange(u)})),this._toDispose.add(this._editor.onDidChangeModelContent(()=>{!d&&this._triggerState!==void 0&&this._refilterCompletionItems()})),this._updateTriggerCharacters()}dispose(){tn(this._triggerCharacterListener),tn([this._onDidCancel,this._onDidSuggest,this._onDidTrigger,this._triggerQuickSuggest]),this._toDispose.dispose(),this._completionDisposables.dispose(),this.cancel()}_updateTriggerCharacters(){if(this._triggerCharacterListener.clear(),this._editor.getOption(91)||!this._editor.hasModel()||!this._editor.getOption(121))return;const e=new Map;for(const i of this._languageFeaturesService.completionProvider.all(this._editor.getModel()))for(const s of i.triggerCharacters||[]){let o=e.get(s);o||(o=new Set,o.add(TJe()),e.set(s,o)),o.add(i)}const t=i=>{var s;if(!JJe(this._editor,this._contextKeyService,this._configurationService)||Y_.shouldAutoTrigger(this._editor))return;if(!i){const a=this._editor.getPosition();i=this._editor.getModel().getLineContent(a.lineNumber).substr(0,a.column-1)}let o=\"\";c0(i.charCodeAt(i.length-1))?Gs(i.charCodeAt(i.length-2))&&(o=i.substr(i.length-2)):o=i.charAt(i.length-1);const r=e.get(o);if(r){const a=new Map;if(this._completionModel)for(const[l,c]of this._completionModel.getItemsByProvider())r.has(l)||a.set(l,c);this.trigger({auto:!0,triggerKind:1,triggerCharacter:o,retrigger:!!this._completionModel,clipboardText:(s=this._completionModel)===null||s===void 0?void 0:s.clipboardText,completionOptions:{providerFilter:r,providerItemsToReuse:a}})}};this._triggerCharacterListener.add(this._editor.onDidType(t)),this._triggerCharacterListener.add(this._editor.onDidCompositionEnd(()=>t()))}get state(){return this._triggerState?this._triggerState.auto?2:1:0}cancel(e=!1){var t;this._triggerState!==void 0&&(this._triggerQuickSuggest.cancel(),(t=this._requestToken)===null||t===void 0||t.cancel(),this._requestToken=void 0,this._triggerState=void 0,this._completionModel=void 0,this._context=void 0,this._onDidCancel.fire({retrigger:e}))}clear(){this._completionDisposables.clear()}_updateActiveSuggestSession(){this._triggerState!==void 0&&(!this._editor.hasModel()||!this._languageFeaturesService.completionProvider.has(this._editor.getModel())?this.cancel():this.trigger({auto:this._triggerState.auto,retrigger:!0}))}_onCursorChange(e){if(!this._editor.hasModel())return;const t=this._currentSelection;if(this._currentSelection=this._editor.getSelection(),!e.selection.isEmpty()||e.reason!==0&&e.reason!==3||e.source!==\"keyboard\"&&e.source!==\"deleteLeft\"){this.cancel();return}this._triggerState===void 0&&e.reason===0?(t.containsRange(this._currentSelection)||t.getEndPosition().isBeforeOrEqual(this._currentSelection.getPosition()))&&this._doTriggerQuickSuggest():this._triggerState!==void 0&&e.reason===3&&this._refilterCompletionItems()}_onCompositionEnd(){this._triggerState===void 0?this._doTriggerQuickSuggest():this._refilterCompletionItems()}_doTriggerQuickSuggest(){var e;P1.isAllOff(this._editor.getOption(89))||this._editor.getOption(118).snippetsPreventQuickSuggestions&&(!((e=Lo.get(this._editor))===null||e===void 0)&&e.isInSnippet())||(this.cancel(),this._triggerQuickSuggest.cancelAndSet(()=>{if(this._triggerState!==void 0||!Y_.shouldAutoTrigger(this._editor)||!this._editor.hasModel()||!this._editor.hasWidgetFocus())return;const t=this._editor.getModel(),i=this._editor.getPosition(),s=this._editor.getOption(89);if(!P1.isAllOff(s)){if(!P1.isAllOn(s)){t.tokenization.tokenizeIfCheap(i.lineNumber);const o=t.tokenization.getLineTokens(i.lineNumber),r=o.getStandardTokenType(o.findTokenIndexAtOffset(Math.max(i.column-1-1,0)));if(P1.valueFor(s,r)!==\"on\")return}QJe(this._editor,this._contextKeyService,this._configurationService)&&this._languageFeaturesService.completionProvider.has(t)&&this.trigger({auto:!0})}},this._editor.getOption(90)))}_refilterCompletionItems(){mi(this._editor.hasModel()),mi(this._triggerState!==void 0);const e=this._editor.getModel(),t=this._editor.getPosition(),i=new Y_(e,t,{...this._triggerState,refilter:!0});this._onNewContext(i)}trigger(e){var t,i,s,o,r,a;if(!this._editor.hasModel())return;const l=this._editor.getModel(),c=new Y_(l,this._editor.getPosition(),e);this.cancel(e.retrigger),this._triggerState=e,this._onDidTrigger.fire({auto:e.auto,shy:(t=e.shy)!==null&&t!==void 0?t:!1,position:this._editor.getPosition()}),this._context=c;let d={triggerKind:(i=e.triggerKind)!==null&&i!==void 0?i:0};e.triggerCharacter&&(d={triggerKind:1,triggerCharacter:e.triggerCharacter}),this._requestToken=new $n;const u=this._editor.getOption(112);let h=1;switch(u){case\"top\":h=0;break;case\"bottom\":h=2;break}const{itemKind:f,showDeprecated:g}=kW.createSuggestFilter(this._editor),p=new yk(h,(o=(s=e.completionOptions)===null||s===void 0?void 0:s.kindFilter)!==null&&o!==void 0?o:f,(r=e.completionOptions)===null||r===void 0?void 0:r.providerFilter,(a=e.completionOptions)===null||a===void 0?void 0:a.providerItemsToReuse,g),_=Pd.create(this._editorWorkerService,this._editor),b=OU(this._languageFeaturesService.completionProvider,l,this._editor.getPosition(),p,d,this._requestToken.token);Promise.all([b,_]).then(async([w,y])=>{var S;if((S=this._requestToken)===null||S===void 0||S.dispose(),!this._editor.hasModel())return;let x=e==null?void 0:e.clipboardText;if(!x&&w.needsClipboard&&(x=await this._clipboardService.readText()),this._triggerState===void 0)return;const k=this._editor.getModel(),D=new Y_(k,this._editor.getPosition(),e),I={...qM.default,firstMatchCanBeWeak:!this._editor.getOption(118).matchOnWordStartOnly};if(this._completionModel=new Fp(w.items,this._context.column,{leadingLineContent:D.leadingLineContent,characterCountDelta:D.column-this._context.column},y,this._editor.getOption(118),this._editor.getOption(112),I,x),this._completionDisposables.add(w.disposable),this._onNewContext(D),this._reportDurationsTelemetry(w.durations),!this._envService.isBuilt||this._envService.isExtensionDevelopment)for(const N of w.items)N.isInvalid&&this._logService.warn(`[suggest] did IGNORE invalid completion item from ${N.provider._debugDisplayName}`,N.completion)}).catch(Mt)}_reportDurationsTelemetry(e){this._telemetryGate++%230===0&&setTimeout(()=>{this._telemetryService.publicLog2(\"suggest.durations.json\",{data:JSON.stringify(e)}),this._logService.debug(\"suggest.durations.json\",e)})}static createSuggestFilter(e){const t=new Set;e.getOption(112)===\"none\"&&t.add(27);const s=e.getOption(118);return s.showMethods||t.add(0),s.showFunctions||t.add(1),s.showConstructors||t.add(2),s.showFields||t.add(3),s.showVariables||t.add(4),s.showClasses||t.add(5),s.showStructs||t.add(6),s.showInterfaces||t.add(7),s.showModules||t.add(8),s.showProperties||t.add(9),s.showEvents||t.add(10),s.showOperators||t.add(11),s.showUnits||t.add(12),s.showValues||t.add(13),s.showConstants||t.add(14),s.showEnums||t.add(15),s.showEnumMembers||t.add(16),s.showKeywords||t.add(17),s.showWords||t.add(18),s.showColors||t.add(19),s.showFiles||t.add(20),s.showReferences||t.add(21),s.showColors||t.add(22),s.showFolders||t.add(23),s.showTypeParameters||t.add(24),s.showSnippets||t.add(27),s.showUsers||t.add(25),s.showIssues||t.add(26),{itemKind:t,showDeprecated:s.showDeprecated}}_onNewContext(e){if(this._context){if(e.lineNumber!==this._context.lineNumber){this.cancel();return}if(on(e.leadingLineContent)!==on(this._context.leadingLineContent)){this.cancel();return}if(e.column<this._context.column){e.leadingWord.word?this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0}):this.cancel();return}if(this._completionModel){if(e.leadingWord.word.length!==0&&e.leadingWord.startColumn>this._context.leadingWord.startColumn){if(Y_.shouldAutoTrigger(this._editor)&&this._context){const i=this._completionModel.getItemsByProvider();this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerItemsToReuse:i}})}return}if(e.column>this._context.column&&this._completionModel.getIncompleteProvider().size>0&&e.leadingWord.word.length!==0){const t=new Map,i=new Set;for(const[s,o]of this._completionModel.getItemsByProvider())o.length>0&&o[0].container.incomplete?i.add(s):t.set(s,o);this.trigger({auto:this._context.triggerOptions.auto,triggerKind:2,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerFilter:i,providerItemsToReuse:t}})}else{const t=this._completionModel.lineContext;let i=!1;if(this._completionModel.lineContext={leadingLineContent:e.leadingLineContent,characterCountDelta:e.column-this._context.column},this._completionModel.items.length===0){const s=Y_.shouldAutoTrigger(this._editor);if(!this._context){this.cancel();return}if(s&&this._context.leadingWord.endColumn<e.leadingWord.startColumn){this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0});return}if(this._context.triggerOptions.auto){this.cancel();return}else if(this._completionModel.lineContext=t,i=this._completionModel.items.length>0,i&&e.leadingWord.word.length===0){this.cancel();return}}this._onDidSuggest.fire({completionModel:this._completionModel,triggerOptions:e.triggerOptions,isFrozen:i})}}}}};SR=kW=XJe([up(1,bc),up(2,zg),up(3,Po),up(4,er),up(5,Ct),up(6,qt),up(7,Xe),up(8,r$)],SR);class YP{constructor(e,t){this._disposables=new be,this._lastOvertyped=[],this._locked=!1,this._disposables.add(e.onWillType(()=>{if(this._locked||!e.hasModel())return;const i=e.getSelections(),s=i.length;let o=!1;for(let a=0;a<s;a++)if(!i[a].isEmpty()){o=!0;break}if(!o){this._lastOvertyped.length!==0&&(this._lastOvertyped.length=0);return}this._lastOvertyped=[];const r=e.getModel();for(let a=0;a<s;a++){const l=i[a];if(r.getValueLengthInRange(l)>YP._maxSelectionLength)return;this._lastOvertyped[a]={value:r.getValueInRange(l),multiline:l.startLineNumber!==l.endLineNumber}}})),this._disposables.add(t.onDidTrigger(i=>{this._locked=!0})),this._disposables.add(t.onDidCancel(i=>{this._locked=!1}))}getLastOvertypedInfo(e){if(e>=0&&e<this._lastOvertyped.length)return this._lastOvertyped[e]}dispose(){this._disposables.dispose()}}YP._maxSelectionLength=51200;var eet=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},g3=function(n,e){return function(t,i){e(t,i,n)}};let tet=class Sge extends Um{updateLabel(){const e=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!e)return super.updateLabel();this.label&&(this.label.textContent=v({},\"{0} ({1})\",this._action.label,Sge.symbolPrintEnter(e)))}static symbolPrintEnter(e){var t;return(t=e.getLabel())===null||t===void 0?void 0:t.replace(/\\benter\\b/gi,\"⏎\")}},DW=class{constructor(e,t,i,s,o){this._menuId=t,this._menuService=s,this._contextKeyService=o,this._menuDisposables=new be,this.element=we(e,ke(\".suggest-status-bar\"));const r=a=>a instanceof Na?i.createInstance(tet,a,void 0):void 0;this._leftActions=new hc(this.element,{actionViewItemProvider:r}),this._rightActions=new hc(this.element,{actionViewItemProvider:r}),this._leftActions.domNode.classList.add(\"left\"),this._rightActions.domNode.classList.add(\"right\")}dispose(){this._menuDisposables.dispose(),this._leftActions.dispose(),this._rightActions.dispose(),this.element.remove()}show(){const e=this._menuService.createMenu(this._menuId,this._contextKeyService),t=()=>{const i=[],s=[];for(const[o,r]of e.getActions())o===\"left\"?i.push(...r):s.push(...r);this._leftActions.clear(),this._leftActions.push(i),this._rightActions.clear(),this._rightActions.push(s)};this._menuDisposables.add(e.onDidChange(()=>t())),this._menuDisposables.add(e)}hide(){this._menuDisposables.clear()}};DW=eet([g3(2,ht),g3(3,Dl),g3(4,Ct)],DW);var iet=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},net=function(n,e){return function(t,i){e(t,i,n)}};function WU(n){return!!n&&!!(n.completion.documentation||n.completion.detail&&n.completion.detail!==n.completion.label)}let IW=class{constructor(e,t){this._editor=e,this._onDidClose=new X,this.onDidClose=this._onDidClose.event,this._onDidChangeContents=new X,this.onDidChangeContents=this._onDidChangeContents.event,this._disposables=new be,this._renderDisposeable=new be,this._borderWidth=1,this._size=new yi(330,0),this.domNode=ke(\".suggest-details\"),this.domNode.classList.add(\"no-docs\"),this._markdownRenderer=t.createInstance(Nh,{editor:e}),this._body=ke(\".body\"),this._scrollbar=new wD(this._body,{alwaysConsumeMouseWheel:!0}),we(this.domNode,this._scrollbar.getDomNode()),this._disposables.add(this._scrollbar),this._header=we(this._body,ke(\".header\")),this._close=we(this._header,ke(\"span\"+_t.asCSSSelector(Te.close))),this._close.title=v(\"details.close\",\"Close\"),this._type=we(this._header,ke(\"p.type\")),this._docs=we(this._body,ke(\"p.docs\")),this._configureFont(),this._disposables.add(this._editor.onDidChangeConfiguration(i=>{i.hasChanged(50)&&this._configureFont()}))}dispose(){this._disposables.dispose(),this._renderDisposeable.dispose()}_configureFont(){const e=this._editor.getOptions(),t=e.get(50),i=t.getMassagedFontFamily(),s=e.get(119)||t.fontSize,o=e.get(120)||t.lineHeight,r=t.fontWeight,a=`${s}px`,l=`${o}px`;this.domNode.style.fontSize=a,this.domNode.style.lineHeight=`${o/s}`,this.domNode.style.fontWeight=r,this.domNode.style.fontFeatureSettings=t.fontFeatureSettings,this._type.style.fontFamily=i,this._close.style.height=l,this._close.style.width=l}getLayoutInfo(){const e=this._editor.getOption(120)||this._editor.getOption(50).lineHeight,t=this._borderWidth,i=t*2;return{lineHeight:e,borderWidth:t,borderHeight:i,verticalPadding:22,horizontalPadding:14}}renderLoading(){this._type.textContent=v(\"loading\",\"Loading...\"),this._docs.textContent=\"\",this.domNode.classList.remove(\"no-docs\",\"no-type\"),this.layout(this.size.width,this.getLayoutInfo().lineHeight*2),this._onDidChangeContents.fire(this)}renderItem(e,t){var i,s;this._renderDisposeable.clear();let{detail:o,documentation:r}=e.completion;if(t){let a=\"\";a+=`score: ${e.score[0]}\n`,a+=`prefix: ${(i=e.word)!==null&&i!==void 0?i:\"(no prefix)\"}\n`,a+=`word: ${e.completion.filterText?e.completion.filterText+\" (filterText)\":e.textLabel}\n`,a+=`distance: ${e.distance} (localityBonus-setting)\n`,a+=`index: ${e.idx}, based on ${e.completion.sortText&&`sortText: \"${e.completion.sortText}\"`||\"label\"}\n`,a+=`commit_chars: ${(s=e.completion.commitCharacters)===null||s===void 0?void 0:s.join(\"\")}\n`,r=new $o().appendCodeblock(\"empty\",a),o=`Provider: ${e.provider._debugDisplayName}`}if(!t&&!WU(e)){this.clearContents();return}if(this.domNode.classList.remove(\"no-docs\",\"no-type\"),o){const a=o.length>1e5?`${o.substr(0,1e5)}…`:o;this._type.textContent=a,this._type.title=a,ka(this._type),this._type.classList.toggle(\"auto-wrap\",!/\\r?\\n^\\s+/gmi.test(a))}else wo(this._type),this._type.title=\"\",Lr(this._type),this.domNode.classList.add(\"no-type\");if(wo(this._docs),typeof r==\"string\")this._docs.classList.remove(\"markdown-docs\"),this._docs.textContent=r;else if(r){this._docs.classList.add(\"markdown-docs\"),wo(this._docs);const a=this._markdownRenderer.render(r);this._docs.appendChild(a.element),this._renderDisposeable.add(a),this._renderDisposeable.add(this._markdownRenderer.onDidRenderAsync(()=>{this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}))}this.domNode.style.userSelect=\"text\",this.domNode.tabIndex=-1,this._close.onmousedown=a=>{a.preventDefault(),a.stopPropagation()},this._close.onclick=a=>{a.preventDefault(),a.stopPropagation(),this._onDidClose.fire()},this._body.scrollTop=0,this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}clearContents(){this.domNode.classList.add(\"no-docs\"),this._type.textContent=\"\",this._docs.textContent=\"\"}get isEmpty(){return this.domNode.classList.contains(\"no-docs\")}get size(){return this._size}layout(e,t){const i=new yi(e,t);yi.equals(i,this._size)||(this._size=i,SMe(this.domNode,e,t)),this._scrollbar.scanDomNode()}scrollDown(e=8){this._body.scrollTop+=e}scrollUp(e=8){this._body.scrollTop-=e}scrollTop(){this._body.scrollTop=0}scrollBottom(){this._body.scrollTop=this._body.scrollHeight}pageDown(){this.scrollDown(80)}pageUp(){this.scrollUp(80)}set borderWidth(e){this._borderWidth=e}get borderWidth(){return this._borderWidth}};IW=iet([net(1,ht)],IW);class set{constructor(e,t){this.widget=e,this._editor=t,this.allowEditorOverflow=!0,this._disposables=new be,this._added=!1,this._preferAlignAtTop=!0,this._resizable=new yU,this._resizable.domNode.classList.add(\"suggest-details-container\"),this._resizable.domNode.appendChild(e.domNode),this._resizable.enableSashes(!1,!0,!0,!1);let i,s,o=0,r=0;this._disposables.add(this._resizable.onDidWillResize(()=>{i=this._topLeft,s=this._resizable.size})),this._disposables.add(this._resizable.onDidResize(a=>{if(i&&s){this.widget.layout(a.dimension.width,a.dimension.height);let l=!1;a.west&&(r=s.width-a.dimension.width,l=!0),a.north&&(o=s.height-a.dimension.height,l=!0),l&&this._applyTopLeft({top:i.top+o,left:i.left+r})}a.done&&(i=void 0,s=void 0,o=0,r=0,this._userSize=a.dimension)})),this._disposables.add(this.widget.onDidChangeContents(()=>{var a;this._anchorBox&&this._placeAtAnchor(this._anchorBox,(a=this._userSize)!==null&&a!==void 0?a:this.widget.size,this._preferAlignAtTop)}))}dispose(){this._resizable.dispose(),this._disposables.dispose(),this.hide()}getId(){return\"suggest.details\"}getDomNode(){return this._resizable.domNode}getPosition(){return this._topLeft?{preference:this._topLeft}:null}show(){this._added||(this._editor.addOverlayWidget(this),this._added=!0)}hide(e=!1){this._resizable.clearSashHoverState(),this._added&&(this._editor.removeOverlayWidget(this),this._added=!1,this._anchorBox=void 0,this._topLeft=void 0),e&&(this._userSize=void 0,this.widget.clearContents())}placeAtAnchor(e,t){var i;const s=e.getBoundingClientRect();this._anchorBox=s,this._preferAlignAtTop=t,this._placeAtAnchor(this._anchorBox,(i=this._userSize)!==null&&i!==void 0?i:this.widget.size,t)}_placeAtAnchor(e,t,i){var s;const o=Fm(this.getDomNode().ownerDocument.body),r=this.widget.getLayoutInfo(),a=new yi(220,2*r.lineHeight),l=e.top,c=function(){const k=o.width-(e.left+e.width+r.borderWidth+r.horizontalPadding),D=-r.borderWidth+e.left+e.width,I=new yi(k,o.height-e.top-r.borderHeight-r.verticalPadding),N=I.with(void 0,e.top+e.height-r.borderHeight-r.verticalPadding);return{top:l,left:D,fit:k-t.width,maxSizeTop:I,maxSizeBottom:N,minSize:a.with(Math.min(k,a.width))}}(),d=function(){const k=e.left-r.borderWidth-r.horizontalPadding,D=Math.max(r.horizontalPadding,e.left-t.width-r.borderWidth),I=new yi(k,o.height-e.top-r.borderHeight-r.verticalPadding),N=I.with(void 0,e.top+e.height-r.borderHeight-r.verticalPadding);return{top:l,left:D,fit:k-t.width,maxSizeTop:I,maxSizeBottom:N,minSize:a.with(Math.min(k,a.width))}}(),u=function(){const k=e.left,D=-r.borderWidth+e.top+e.height,I=new yi(e.width-r.borderHeight,o.height-e.top-e.height-r.verticalPadding);return{top:D,left:k,fit:I.height-t.height,maxSizeBottom:I,maxSizeTop:I,minSize:a.with(I.width)}}(),h=[c,d,u],f=(s=h.find(k=>k.fit>=0))!==null&&s!==void 0?s:h.sort((k,D)=>D.fit-k.fit)[0],g=e.top+e.height-r.borderHeight;let p,_=t.height;const b=Math.max(f.maxSizeTop.height,f.maxSizeBottom.height);_>b&&(_=b);let w;i?_<=f.maxSizeTop.height?(p=!0,w=f.maxSizeTop):(p=!1,w=f.maxSizeBottom):_<=f.maxSizeBottom.height?(p=!1,w=f.maxSizeBottom):(p=!0,w=f.maxSizeTop);let{top:y,left:S}=f;!p&&_>e.height&&(y=g-_);const x=this._editor.getDomNode();if(x){const k=x.getBoundingClientRect();y-=k.top,S-=k.left}this._applyTopLeft({left:S,top:y}),this._resizable.enableSashes(!p,f===c,p,f!==c),this._resizable.minSize=f.minSize,this._resizable.maxSize=w,this._resizable.layout(_,Math.min(w.width,t.width)),this.widget.layout(this._resizable.size.width,this._resizable.size.height)}_applyTopLeft(e){this._topLeft=e,this._editor.layoutOverlayWidget(this)}}var hh;(function(n){n[n.FILE=0]=\"FILE\",n[n.FOLDER=1]=\"FOLDER\",n[n.ROOT_FOLDER=2]=\"ROOT_FOLDER\"})(hh||(hh={}));const oet=/(?:\\/|^)(?:([^\\/]+)\\/)?([^\\/]+)$/;function RT(n,e,t,i,s){if(_t.isThemeIcon(s))return[`codicon-${s.id}`,\"predefined-file-icon\"];if(pt.isUri(s))return[];const o=i===hh.ROOT_FOLDER?[\"rootfolder-icon\"]:i===hh.FOLDER?[\"folder-icon\"]:[\"file-icon\"];if(t){let r;if(t.scheme===Tt.data)r=Vm.parseMetaData(t).get(Vm.META_DATA_LABEL);else{const a=t.path.match(oet);a?(r=MT(a[2].toLowerCase()),a[1]&&o.push(`${MT(a[1].toLowerCase())}-name-dir-icon`)):r=MT(t.authority.toLowerCase())}if(i===hh.ROOT_FOLDER)o.push(`${r}-root-name-folder-icon`);else if(i===hh.FOLDER)o.push(`${r}-name-folder-icon`);else{if(r){if(o.push(`${r}-name-file-icon`),o.push(\"name-file-icon\"),r.length<=255){const l=r.split(\".\");for(let c=1;c<l.length;c++)o.push(`${l.slice(c).join(\".\")}-ext-file-icon`)}o.push(\"ext-file-icon\")}const a=ret(n,e,t);a&&o.push(`${MT(a)}-lang-file-icon`)}}return o}function ret(n,e,t){if(!t)return null;let i=null;if(t.scheme===Tt.data){const o=Vm.parseMetaData(t).get(Vm.META_DATA_MIME);o&&(i=e.getLanguageIdByMimeType(o))}else{const s=n.getModel(t);s&&(i=s.getLanguageId())}return i&&i!==bl?i:e.guessLanguageIdByFilepathOrFirstLine(t)}function MT(n){return n.replace(/[\\11\\12\\14\\15\\40]/g,\"/\")}var aet=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},p3=function(n,e){return function(t,i){e(t,i,n)}},hp;function xge(n){return`suggest-aria-id:${n}`}const cet=Jn(\"suggest-more-info\",Te.chevronRight,v(\"suggestMoreInfoIcon\",\"Icon for more information in the suggest widget.\")),det=new(hp=class{extract(e,t){if(e.textLabel.match(hp._regexStrict))return t[0]=e.textLabel,!0;if(e.completion.detail&&e.completion.detail.match(hp._regexStrict))return t[0]=e.completion.detail,!0;if(e.completion.documentation){const i=typeof e.completion.documentation==\"string\"?e.completion.documentation:e.completion.documentation.value,s=hp._regexRelaxed.exec(i);if(s&&(s.index===0||s.index+s[0].length===i.length))return t[0]=s[0],!0}return!1}},hp._regexRelaxed=/(#([\\da-fA-F]{3}){1,2}|(rgb|hsl)a\\(\\s*(\\d{1,3}%?\\s*,\\s*){3}(1|0?\\.\\d+)\\)|(rgb|hsl)\\(\\s*\\d{1,3}%?(\\s*,\\s*\\d{1,3}%?){2}\\s*\\))/,hp._regexStrict=new RegExp(`^${hp._regexRelaxed.source}$`,\"i\"),hp);let EW=class{constructor(e,t,i,s){this._editor=e,this._modelService=t,this._languageService=i,this._themeService=s,this._onDidToggleDetails=new X,this.onDidToggleDetails=this._onDidToggleDetails.event,this.templateId=\"suggestion\"}dispose(){this._onDidToggleDetails.dispose()}renderTemplate(e){const t=new be,i=e;i.classList.add(\"show-file-icons\");const s=we(e,ke(\".icon\")),o=we(s,ke(\"span.colorspan\")),r=we(e,ke(\".contents\")),a=we(r,ke(\".main\")),l=we(a,ke(\".icon-label.codicon\")),c=we(a,ke(\"span.left\")),d=we(a,ke(\"span.right\")),u=new zA(c,{supportHighlights:!0,supportIcons:!0});t.add(u);const h=we(c,ke(\"span.signature-label\")),f=we(c,ke(\"span.qualifier-label\")),g=we(d,ke(\"span.details-label\")),p=we(d,ke(\"span.readMore\"+_t.asCSSSelector(cet)));return p.title=v(\"readMore\",\"Read More\"),{root:i,left:c,right:d,icon:s,colorspan:o,iconLabel:u,iconContainer:l,parametersLabel:h,qualifierLabel:f,detailsLabel:g,readMore:p,disposables:t,configureFont:()=>{const b=this._editor.getOptions(),w=b.get(50),y=w.getMassagedFontFamily(),S=w.fontFeatureSettings,x=b.get(119)||w.fontSize,k=b.get(120)||w.lineHeight,D=w.fontWeight,I=w.letterSpacing,N=`${x}px`,P=`${k}px`,O=`${I}px`;i.style.fontSize=N,i.style.fontWeight=D,i.style.letterSpacing=O,a.style.fontFamily=y,a.style.fontFeatureSettings=S,a.style.lineHeight=P,s.style.height=P,s.style.width=P,p.style.height=P,p.style.width=P}}}renderElement(e,t,i){i.configureFont();const{completion:s}=e;i.root.id=xge(t),i.colorspan.style.backgroundColor=\"\";const o={labelEscapeNewLines:!0,matches:ID(e.score)},r=[];if(s.kind===19&&det.extract(e,r))i.icon.className=\"icon customcolor\",i.iconContainer.className=\"icon hide\",i.colorspan.style.backgroundColor=r[0];else if(s.kind===20&&this._themeService.getFileIconTheme().hasFileIcons){i.icon.className=\"icon hide\",i.iconContainer.className=\"icon hide\";const a=RT(this._modelService,this._languageService,pt.from({scheme:\"fake\",path:e.textLabel}),hh.FILE),l=RT(this._modelService,this._languageService,pt.from({scheme:\"fake\",path:s.detail}),hh.FILE);o.extraClasses=a.length>l.length?a:l}else s.kind===23&&this._themeService.getFileIconTheme().hasFolderIcons?(i.icon.className=\"icon hide\",i.iconContainer.className=\"icon hide\",o.extraClasses=[RT(this._modelService,this._languageService,pt.from({scheme:\"fake\",path:e.textLabel}),hh.FOLDER),RT(this._modelService,this._languageService,pt.from({scheme:\"fake\",path:s.detail}),hh.FOLDER)].flat()):(i.icon.className=\"icon hide\",i.iconContainer.className=\"\",i.iconContainer.classList.add(\"suggest-icon\",..._t.asClassNameArray(rL.toIcon(s.kind))));s.tags&&s.tags.indexOf(1)>=0&&(o.extraClasses=(o.extraClasses||[]).concat([\"deprecated\"]),o.matches=[]),i.iconLabel.setLabel(e.textLabel,void 0,o),typeof s.label==\"string\"?(i.parametersLabel.textContent=\"\",i.detailsLabel.textContent=m3(s.detail||\"\"),i.root.classList.add(\"string-label\")):(i.parametersLabel.textContent=m3(s.label.detail||\"\"),i.detailsLabel.textContent=m3(s.label.description||\"\"),i.root.classList.remove(\"string-label\")),this._editor.getOption(118).showInlineDetails?ka(i.detailsLabel):Lr(i.detailsLabel),WU(e)?(i.right.classList.add(\"can-expand-details\"),ka(i.readMore),i.readMore.onmousedown=a=>{a.stopPropagation(),a.preventDefault()},i.readMore.onclick=a=>{a.stopPropagation(),a.preventDefault(),this._onDidToggleDetails.fire()}):(i.right.classList.remove(\"can-expand-details\"),Lr(i.readMore),i.readMore.onmousedown=null,i.readMore.onclick=null)}disposeTemplate(e){e.disposables.dispose()}};EW=aet([p3(1,Pn),p3(2,An),p3(3,js)],EW);function m3(n){return n.replace(/\\r\\n|\\r|\\n/g,\"\")}var uet=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},PT=function(n,e){return function(t,i){e(t,i,n)}},l1;V(\"editorSuggestWidget.background\",{dark:fs,light:fs,hcDark:fs,hcLight:fs},v(\"editorSuggestWidgetBackground\",\"Background color of the suggest widget.\"));V(\"editorSuggestWidget.border\",{dark:Qf,light:Qf,hcDark:Qf,hcLight:Qf},v(\"editorSuggestWidgetBorder\",\"Border color of the suggest widget.\"));const OT=V(\"editorSuggestWidget.foreground\",{dark:Ql,light:Ql,hcDark:Ql,hcLight:Ql},v(\"editorSuggestWidgetForeground\",\"Foreground color of the suggest widget.\"));V(\"editorSuggestWidget.selectedForeground\",{dark:qp,light:qp,hcDark:qp,hcLight:qp},v(\"editorSuggestWidgetSelectedForeground\",\"Foreground color of the selected entry in the suggest widget.\"));V(\"editorSuggestWidget.selectedIconForeground\",{dark:S1,light:S1,hcDark:S1,hcLight:S1},v(\"editorSuggestWidgetSelectedIconForeground\",\"Icon foreground color of the selected entry in the suggest widget.\"));const het=V(\"editorSuggestWidget.selectedBackground\",{dark:Gp,light:Gp,hcDark:Gp,hcLight:Gp},v(\"editorSuggestWidgetSelectedBackground\",\"Background color of the selected entry in the suggest widget.\"));V(\"editorSuggestWidget.highlightForeground\",{dark:Zc,light:Zc,hcDark:Zc,hcLight:Zc},v(\"editorSuggestWidgetHighlightForeground\",\"Color of the match highlights in the suggest widget.\"));V(\"editorSuggestWidget.focusHighlightForeground\",{dark:RE,light:RE,hcDark:RE,hcLight:RE},v(\"editorSuggestWidgetFocusHighlightForeground\",\"Color of the match highlights in the suggest widget when an item is focused.\"));V(\"editorSuggestWidgetStatus.foreground\",{dark:ut(OT,.5),light:ut(OT,.5),hcDark:ut(OT,.5),hcLight:ut(OT,.5)},v(\"editorSuggestWidgetStatusForeground\",\"Foreground color of the suggest widget status.\"));class fet{constructor(e,t){this._service=e,this._key=`suggestWidget.size/${t.getEditorType()}/${t instanceof Ym}`}restore(){var e;const t=(e=this._service.get(this._key,0))!==null&&e!==void 0?e:\"\";try{const i=JSON.parse(t);if(yi.is(i))return yi.lift(i)}catch{}}store(e){this._service.store(this._key,JSON.stringify(e),0,1)}reset(){this._service.remove(this._key,0)}}let Lk=l1=class{constructor(e,t,i,s,o){this.editor=e,this._storageService=t,this._state=0,this._isAuto=!1,this._pendingLayout=new Qs,this._pendingShowDetails=new Qs,this._ignoreFocusEvents=!1,this._forceRenderingAbove=!1,this._explainMode=!1,this._showTimeout=new cd,this._disposables=new be,this._onDidSelect=new a0,this._onDidFocus=new a0,this._onDidHide=new X,this._onDidShow=new X,this.onDidSelect=this._onDidSelect.event,this.onDidFocus=this._onDidFocus.event,this.onDidHide=this._onDidHide.event,this.onDidShow=this._onDidShow.event,this._onDetailsKeydown=new X,this.onDetailsKeyDown=this._onDetailsKeydown.event,this.element=new yU,this.element.domNode.classList.add(\"editor-widget\",\"suggest-widget\"),this._contentWidget=new get(this,e),this._persistedSize=new fet(t,e);class r{constructor(f,g,p=!1,_=!1){this.persistedSize=f,this.currentSize=g,this.persistHeight=p,this.persistWidth=_}}let a;this._disposables.add(this.element.onDidWillResize(()=>{this._contentWidget.lockPreference(),a=new r(this._persistedSize.restore(),this.element.size)})),this._disposables.add(this.element.onDidResize(h=>{var f,g,p,_;if(this._resize(h.dimension.width,h.dimension.height),a&&(a.persistHeight=a.persistHeight||!!h.north||!!h.south,a.persistWidth=a.persistWidth||!!h.east||!!h.west),!!h.done){if(a){const{itemHeight:b,defaultSize:w}=this.getLayoutInfo(),y=Math.round(b/2);let{width:S,height:x}=this.element.size;(!a.persistHeight||Math.abs(a.currentSize.height-x)<=y)&&(x=(g=(f=a.persistedSize)===null||f===void 0?void 0:f.height)!==null&&g!==void 0?g:w.height),(!a.persistWidth||Math.abs(a.currentSize.width-S)<=y)&&(S=(_=(p=a.persistedSize)===null||p===void 0?void 0:p.width)!==null&&_!==void 0?_:w.width),this._persistedSize.store(new yi(S,x))}this._contentWidget.unlockPreference(),a=void 0}})),this._messageElement=we(this.element.domNode,ke(\".message\")),this._listElement=we(this.element.domNode,ke(\".tree\"));const l=this._disposables.add(o.createInstance(IW,this.editor));l.onDidClose(this.toggleDetails,this,this._disposables),this._details=new set(l,this.editor);const c=()=>this.element.domNode.classList.toggle(\"no-icons\",!this.editor.getOption(118).showIcons);c();const d=o.createInstance(EW,this.editor);this._disposables.add(d),this._disposables.add(d.onDidToggleDetails(()=>this.toggleDetails())),this._list=new El(\"SuggestWidget\",this._listElement,{getHeight:h=>this.getLayoutInfo().itemHeight,getTemplateId:h=>\"suggestion\"},[d],{alwaysConsumeMouseWheel:!0,useShadows:!1,mouseSupport:!1,multipleSelectionSupport:!1,accessibilityProvider:{getRole:()=>\"option\",getWidgetAriaLabel:()=>v(\"suggest\",\"Suggest\"),getWidgetRole:()=>\"listbox\",getAriaLabel:h=>{let f=h.textLabel;if(typeof h.completion.label!=\"string\"){const{detail:b,description:w}=h.completion.label;b&&w?f=v(\"label.full\",\"{0} {1}, {2}\",f,b,w):b?f=v(\"label.detail\",\"{0} {1}\",f,b):w&&(f=v(\"label.desc\",\"{0}, {1}\",f,w))}if(!h.isResolved||!this._isDetailsVisible())return f;const{documentation:g,detail:p}=h.completion,_=l0(\"{0}{1}\",p||\"\",g?typeof g==\"string\"?g:g.value:\"\");return v(\"ariaCurrenttSuggestionReadDetails\",\"{0}, docs: {1}\",f,_)}}}),this._list.style(tb({listInactiveFocusBackground:het,listInactiveFocusOutline:En})),this._status=o.createInstance(DW,this.element.domNode,bm);const u=()=>this.element.domNode.classList.toggle(\"with-status-bar\",this.editor.getOption(118).showStatusBar);u(),this._disposables.add(s.onDidColorThemeChange(h=>this._onThemeChange(h))),this._onThemeChange(s.getColorTheme()),this._disposables.add(this._list.onMouseDown(h=>this._onListMouseDownOrTap(h))),this._disposables.add(this._list.onTap(h=>this._onListMouseDownOrTap(h))),this._disposables.add(this._list.onDidChangeSelection(h=>this._onListSelection(h))),this._disposables.add(this._list.onDidChangeFocus(h=>this._onListFocus(h))),this._disposables.add(this.editor.onDidChangeCursorSelection(()=>this._onCursorSelectionChanged())),this._disposables.add(this.editor.onDidChangeConfiguration(h=>{h.hasChanged(118)&&(u(),c()),this._completionModel&&(h.hasChanged(50)||h.hasChanged(119)||h.hasChanged(120))&&this._list.splice(0,this._list.length,this._completionModel.items)})),this._ctxSuggestWidgetVisible=$t.Visible.bindTo(i),this._ctxSuggestWidgetDetailsVisible=$t.DetailsVisible.bindTo(i),this._ctxSuggestWidgetMultipleSuggestions=$t.MultipleSuggestions.bindTo(i),this._ctxSuggestWidgetHasFocusedSuggestion=$t.HasFocusedSuggestion.bindTo(i),this._disposables.add(rs(this._details.widget.domNode,\"keydown\",h=>{this._onDetailsKeydown.fire(h)})),this._disposables.add(this.editor.onMouseDown(h=>this._onEditorMouseDown(h)))}dispose(){var e;this._details.widget.dispose(),this._details.dispose(),this._list.dispose(),this._status.dispose(),this._disposables.dispose(),(e=this._loadingTimeout)===null||e===void 0||e.dispose(),this._pendingLayout.dispose(),this._pendingShowDetails.dispose(),this._showTimeout.dispose(),this._contentWidget.dispose(),this.element.dispose()}_onEditorMouseDown(e){this._details.widget.domNode.contains(e.target.element)?this._details.widget.domNode.focus():this.element.domNode.contains(e.target.element)&&this.editor.focus()}_onCursorSelectionChanged(){this._state!==0&&this._contentWidget.layout()}_onListMouseDownOrTap(e){typeof e.element>\"u\"||typeof e.index>\"u\"||(e.browserEvent.preventDefault(),e.browserEvent.stopPropagation(),this._select(e.element,e.index))}_onListSelection(e){e.elements.length&&this._select(e.elements[0],e.indexes[0])}_select(e,t){const i=this._completionModel;i&&(this._onDidSelect.fire({item:e,index:t,model:i}),this.editor.focus())}_onThemeChange(e){this._details.widget.borderWidth=Zd(e.type)?2:1}_onListFocus(e){var t;if(this._ignoreFocusEvents)return;if(!e.elements.length){this._currentSuggestionDetails&&(this._currentSuggestionDetails.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=void 0),this.editor.setAriaOptions({activeDescendant:void 0}),this._ctxSuggestWidgetHasFocusedSuggestion.set(!1);return}if(!this._completionModel)return;this._ctxSuggestWidgetHasFocusedSuggestion.set(!0);const i=e.elements[0],s=e.indexes[0];i!==this._focusedItem&&((t=this._currentSuggestionDetails)===null||t===void 0||t.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=i,this._list.reveal(s),this._currentSuggestionDetails=Xs(async o=>{const r=Om(()=>{this._isDetailsVisible()&&this.showDetails(!0)},250),a=o.onCancellationRequested(()=>r.dispose());try{return await i.resolve(o)}finally{r.dispose(),a.dispose()}}),this._currentSuggestionDetails.then(()=>{s>=this._list.length||i!==this._list.element(s)||(this._ignoreFocusEvents=!0,this._list.splice(s,1,[i]),this._list.setFocus([s]),this._ignoreFocusEvents=!1,this._isDetailsVisible()?this.showDetails(!1):this.element.domNode.classList.remove(\"docs-side\"),this.editor.setAriaOptions({activeDescendant:xge(s)}))}).catch(Mt)),this._onDidFocus.fire({item:i,index:s,model:this._completionModel})}_setState(e){if(this._state!==e)switch(this._state=e,this.element.domNode.classList.toggle(\"frozen\",e===4),this.element.domNode.classList.remove(\"message\"),e){case 0:Lr(this._messageElement,this._listElement,this._status.element),this._details.hide(!0),this._status.hide(),this._contentWidget.hide(),this._ctxSuggestWidgetVisible.reset(),this._ctxSuggestWidgetMultipleSuggestions.reset(),this._ctxSuggestWidgetHasFocusedSuggestion.reset(),this._showTimeout.cancel(),this.element.domNode.classList.remove(\"visible\"),this._list.splice(0,this._list.length),this._focusedItem=void 0,this._cappedHeight=void 0,this._explainMode=!1;break;case 1:this.element.domNode.classList.add(\"message\"),this._messageElement.textContent=l1.LOADING_MESSAGE,Lr(this._listElement,this._status.element),ka(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,Ih(l1.LOADING_MESSAGE);break;case 2:this.element.domNode.classList.add(\"message\"),this._messageElement.textContent=l1.NO_SUGGESTIONS_MESSAGE,Lr(this._listElement,this._status.element),ka(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,Ih(l1.NO_SUGGESTIONS_MESSAGE);break;case 3:Lr(this._messageElement),ka(this._listElement,this._status.element),this._show();break;case 4:Lr(this._messageElement),ka(this._listElement,this._status.element),this._show();break;case 5:Lr(this._messageElement),ka(this._listElement,this._status.element),this._details.show(),this._show();break}}_show(){this._status.show(),this._contentWidget.show(),this._layout(this._persistedSize.restore()),this._ctxSuggestWidgetVisible.set(!0),this._showTimeout.cancelAndSet(()=>{this.element.domNode.classList.add(\"visible\"),this._onDidShow.fire(this)},100)}showTriggered(e,t){this._state===0&&(this._contentWidget.setPosition(this.editor.getPosition()),this._isAuto=!!e,this._isAuto||(this._loadingTimeout=Om(()=>this._setState(1),t)))}showSuggestions(e,t,i,s,o){var r,a;if(this._contentWidget.setPosition(this.editor.getPosition()),(r=this._loadingTimeout)===null||r===void 0||r.dispose(),(a=this._currentSuggestionDetails)===null||a===void 0||a.cancel(),this._currentSuggestionDetails=void 0,this._completionModel!==e&&(this._completionModel=e),i&&this._state!==2&&this._state!==0){this._setState(4);return}const l=this._completionModel.items.length,c=l===0;if(this._ctxSuggestWidgetMultipleSuggestions.set(l>1),c){this._setState(s?0:2),this._completionModel=void 0;return}this._focusedItem=void 0,this._onDidFocus.pause(),this._onDidSelect.pause();try{this._list.splice(0,this._list.length,this._completionModel.items),this._setState(i?4:3),this._list.reveal(t,0),this._list.setFocus(o?[]:[t])}finally{this._onDidFocus.resume(),this._onDidSelect.resume()}this._pendingLayout.value=B2(gt(this.element.domNode),()=>{this._pendingLayout.clear(),this._layout(this.element.size),this._details.widget.domNode.classList.remove(\"focused\")})}focusSelected(){this._list.length>0&&this._list.setFocus([0])}selectNextPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageDown(),!0;case 1:return!this._isAuto;default:return this._list.focusNextPage(),!0}}selectNext(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusNext(1,!0),!0}}selectLast(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollBottom(),!0;case 1:return!this._isAuto;default:return this._list.focusLast(),!0}}selectPreviousPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageUp(),!0;case 1:return!this._isAuto;default:return this._list.focusPreviousPage(),!0}}selectPrevious(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusPrevious(1,!0),!1}}selectFirst(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollTop(),!0;case 1:return!this._isAuto;default:return this._list.focusFirst(),!0}}getFocusedItem(){if(this._state!==0&&this._state!==2&&this._state!==1&&this._completionModel&&this._list.getFocus().length>0)return{item:this._list.getFocusedElements()[0],index:this._list.getFocus()[0],model:this._completionModel}}toggleDetailsFocus(){this._state===5?(this._setState(3),this._details.widget.domNode.classList.remove(\"focused\")):this._state===3&&this._isDetailsVisible()&&(this._setState(5),this._details.widget.domNode.classList.add(\"focused\"))}toggleDetails(){this._isDetailsVisible()?(this._pendingShowDetails.clear(),this._ctxSuggestWidgetDetailsVisible.set(!1),this._setDetailsVisible(!1),this._details.hide(),this.element.domNode.classList.remove(\"shows-details\")):(WU(this._list.getFocusedElements()[0])||this._explainMode)&&(this._state===3||this._state===5||this._state===4)&&(this._ctxSuggestWidgetDetailsVisible.set(!0),this._setDetailsVisible(!0),this.showDetails(!1))}showDetails(e){this._pendingShowDetails.value=B2(gt(this.element.domNode),()=>{this._pendingShowDetails.clear(),this._details.show(),e?this._details.widget.renderLoading():this._details.widget.renderItem(this._list.getFocusedElements()[0],this._explainMode),this._details.widget.isEmpty?this._details.hide():(this._positionDetails(),this.element.domNode.classList.add(\"shows-details\")),this.editor.focus()})}toggleExplainMode(){this._list.getFocusedElements()[0]&&(this._explainMode=!this._explainMode,this._isDetailsVisible()?this.showDetails(!1):this.toggleDetails())}resetPersistedSize(){this._persistedSize.reset()}hideWidget(){var e;this._pendingLayout.clear(),this._pendingShowDetails.clear(),(e=this._loadingTimeout)===null||e===void 0||e.dispose(),this._setState(0),this._onDidHide.fire(this),this.element.clearSashHoverState();const t=this._persistedSize.restore(),i=Math.ceil(this.getLayoutInfo().itemHeight*4.3);t&&t.height<i&&this._persistedSize.store(t.with(void 0,i))}isFrozen(){return this._state===4}_afterRender(e){if(e===null){this._isDetailsVisible()&&this._details.hide();return}this._state===2||this._state===1||(this._isDetailsVisible()&&!this._details.widget.isEmpty&&this._details.show(),this._positionDetails())}_layout(e){var t,i,s;if(!this.editor.hasModel()||!this.editor.getDomNode())return;const o=Fm(this.element.domNode.ownerDocument.body),r=this.getLayoutInfo();e||(e=r.defaultSize);let a=e.height,l=e.width;if(this._status.element.style.height=`${r.itemHeight}px`,this._state===2||this._state===1)a=r.itemHeight+r.borderHeight,l=r.defaultSize.width/2,this.element.enableSashes(!1,!1,!1,!1),this.element.minSize=this.element.maxSize=new yi(l,a),this._contentWidget.setPreference(2);else{const c=o.width-r.borderHeight-2*r.horizontalPadding;l>c&&(l=c);const d=this._completionModel?this._completionModel.stats.pLabelLen*r.typicalHalfwidthCharacterWidth:l,u=r.statusBarHeight+this._list.contentHeight+r.borderHeight,h=r.itemHeight+r.statusBarHeight,f=bs(this.editor.getDomNode()),g=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),p=f.top+g.top+g.height,_=Math.min(o.height-p-r.verticalPadding,u),b=f.top+g.top-r.verticalPadding,w=Math.min(b,u);let y=Math.min(Math.max(w,_)+r.borderHeight,u);a===((t=this._cappedHeight)===null||t===void 0?void 0:t.capped)&&(a=this._cappedHeight.wanted),a<h&&(a=h),a>y&&(a=y),a>_||this._forceRenderingAbove&&b>150?(this._contentWidget.setPreference(1),this.element.enableSashes(!0,!0,!1,!1),y=w):(this._contentWidget.setPreference(2),this.element.enableSashes(!1,!0,!0,!1),y=_),this.element.preferredSize=new yi(d,r.defaultSize.height),this.element.maxSize=new yi(c,y),this.element.minSize=new yi(220,h),this._cappedHeight=a===u?{wanted:(s=(i=this._cappedHeight)===null||i===void 0?void 0:i.wanted)!==null&&s!==void 0?s:e.height,capped:a}:void 0}this._resize(l,a)}_resize(e,t){const{width:i,height:s}=this.element.maxSize;e=Math.min(i,e),t=Math.min(s,t);const{statusBarHeight:o}=this.getLayoutInfo();this._list.layout(t-o,e),this._listElement.style.height=`${t-o}px`,this.element.layout(t,e),this._contentWidget.layout(),this._positionDetails()}_positionDetails(){var e;this._isDetailsVisible()&&this._details.placeAtAnchor(this.element.domNode,((e=this._contentWidget.getPosition())===null||e===void 0?void 0:e.preference[0])===2)}getLayoutInfo(){const e=this.editor.getOption(50),t=Sr(this.editor.getOption(120)||e.lineHeight,8,1e3),i=!this.editor.getOption(118).showStatusBar||this._state===2||this._state===1?0:t,s=this._details.widget.borderWidth,o=2*s;return{itemHeight:t,statusBarHeight:i,borderWidth:s,borderHeight:o,typicalHalfwidthCharacterWidth:e.typicalHalfwidthCharacterWidth,verticalPadding:22,horizontalPadding:14,defaultSize:new yi(430,i+12*t+o)}}_isDetailsVisible(){return this._storageService.getBoolean(\"expandSuggestionDocs\",0,!1)}_setDetailsVisible(e){this._storageService.store(\"expandSuggestionDocs\",e,0,0)}forceRenderingAbove(){this._forceRenderingAbove||(this._forceRenderingAbove=!0,this._layout(this._persistedSize.restore()))}stopForceRenderingAbove(){this._forceRenderingAbove=!1}};Lk.LOADING_MESSAGE=v(\"suggestWidget.loading\",\"Loading...\");Lk.NO_SUGGESTIONS_MESSAGE=v(\"suggestWidget.noSuggestions\",\"No suggestions.\");Lk=l1=uet([PT(1,dd),PT(2,Ct),PT(3,js),PT(4,ht)],Lk);class get{constructor(e,t){this._widget=e,this._editor=t,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._preferenceLocked=!1,this._added=!1,this._hidden=!1}dispose(){this._added&&(this._added=!1,this._editor.removeContentWidget(this))}getId(){return\"editor.widget.suggestWidget\"}getDomNode(){return this._widget.element.domNode}show(){this._hidden=!1,this._added||(this._added=!0,this._editor.addContentWidget(this))}hide(){this._hidden||(this._hidden=!0,this.layout())}layout(){this._editor.layoutContentWidget(this)}getPosition(){return this._hidden||!this._position||!this._preference?null:{position:this._position,preference:[this._preference]}}beforeRender(){const{height:e,width:t}=this._widget.element.size,{borderWidth:i,horizontalPadding:s}=this._widget.getLayoutInfo();return new yi(t+2*i+s,e+2*i)}afterRender(e){this._widget._afterRender(e)}setPreference(e){this._preferenceLocked||(this._preference=e)}lockPreference(){this._preferenceLocked=!0}unlockPreference(){this._preferenceLocked=!1}setPosition(e){this._position=e}}var pet=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},qb=function(n,e){return function(t,i){e(t,i,n)}},TW;class met{constructor(e,t){if(this._model=e,this._position=t,this._decorationOptions=Wt.register({description:\"suggest-line-suffix\",stickiness:1}),e.getLineMaxColumn(t.lineNumber)!==t.column){const s=e.getOffsetAt(t),o=e.getPositionAt(s+1);e.changeDecorations(r=>{this._marker&&r.removeDecoration(this._marker),this._marker=r.addDecoration(A.fromPositions(t,o),this._decorationOptions)})}}dispose(){this._marker&&!this._model.isDisposed()&&this._model.changeDecorations(e=>{e.removeDecoration(this._marker),this._marker=void 0})}delta(e){if(this._model.isDisposed()||this._position.lineNumber!==e.lineNumber)return 0;if(this._marker){const t=this._model.getDecorationRange(this._marker);return this._model.getOffsetAt(t.getStartPosition())-this._model.getOffsetAt(e)}else return this._model.getLineMaxColumn(e.lineNumber)-e.column}}let Yc=TW=class{static get(e){return e.getContribution(TW.ID)}constructor(e,t,i,s,o,r,a){this._memoryService=t,this._commandService=i,this._contextKeyService=s,this._instantiationService=o,this._logService=r,this._telemetryService=a,this._lineSuffix=new Qs,this._toDispose=new be,this._selectors=new _et(u=>u.priority),this._onWillInsertSuggestItem=new X,this.onWillInsertSuggestItem=this._onWillInsertSuggestItem.event,this.editor=e,this.model=o.createInstance(SR,this.editor),this._selectors.register({priority:0,select:(u,h,f)=>this._memoryService.select(u,h,f)});const l=$t.InsertMode.bindTo(s);l.set(e.getOption(118).insertMode),this._toDispose.add(this.model.onDidTrigger(()=>l.set(e.getOption(118).insertMode))),this.widget=this._toDispose.add(new AF(gt(e.getDomNode()),()=>{const u=this._instantiationService.createInstance(Lk,this.editor);this._toDispose.add(u),this._toDispose.add(u.onDidSelect(_=>this._insertSuggestion(_,0),this));const h=new YJe(this.editor,u,this.model,_=>this._insertSuggestion(_,2));this._toDispose.add(h);const f=$t.MakesTextEdit.bindTo(this._contextKeyService),g=$t.HasInsertAndReplaceRange.bindTo(this._contextKeyService),p=$t.CanResolve.bindTo(this._contextKeyService);return this._toDispose.add(dt(()=>{f.reset(),g.reset(),p.reset()})),this._toDispose.add(u.onDidFocus(({item:_})=>{const b=this.editor.getPosition(),w=_.editStart.column,y=b.column;let S=!0;this.editor.getOption(1)===\"smart\"&&this.model.state===2&&!_.completion.additionalTextEdits&&!(_.completion.insertTextRules&4)&&y-w===_.completion.insertText.length&&(S=this.editor.getModel().getValueInRange({startLineNumber:b.lineNumber,startColumn:w,endLineNumber:b.lineNumber,endColumn:y})!==_.completion.insertText),f.set(S),g.set(!ee.equals(_.editInsertEnd,_.editReplaceEnd)),p.set(!!_.provider.resolveCompletionItem||!!_.completion.documentation||_.completion.detail!==_.completion.label)})),this._toDispose.add(u.onDetailsKeyDown(_=>{if(_.toKeyCodeChord().equals(new kg(!0,!1,!1,!1,33))||Xt&&_.toKeyCodeChord().equals(new kg(!1,!1,!1,!0,33))){_.stopPropagation();return}_.toKeyCodeChord().isModifierKey()||this.editor.focus()})),u})),this._overtypingCapturer=this._toDispose.add(new AF(gt(e.getDomNode()),()=>this._toDispose.add(new YP(this.editor,this.model)))),this._alternatives=this._toDispose.add(new AF(gt(e.getDomNode()),()=>this._toDispose.add(new R0(this.editor,this._contextKeyService)))),this._toDispose.add(o.createInstance(xk,e)),this._toDispose.add(this.model.onDidTrigger(u=>{this.widget.value.showTriggered(u.auto,u.shy?250:50),this._lineSuffix.value=new met(this.editor.getModel(),u.position)})),this._toDispose.add(this.model.onDidSuggest(u=>{if(u.triggerOptions.shy)return;let h=-1;for(const g of this._selectors.itemsOrderedByPriorityDesc)if(h=g.select(this.editor.getModel(),this.editor.getPosition(),u.completionModel.items),h!==-1)break;if(h===-1&&(h=0),this.model.state===0)return;let f=!1;if(u.triggerOptions.auto){const g=this.editor.getOption(118);g.selectionMode===\"never\"||g.selectionMode===\"always\"?f=g.selectionMode===\"never\":g.selectionMode===\"whenTriggerCharacter\"?f=u.triggerOptions.triggerKind!==1:g.selectionMode===\"whenQuickSuggestion\"&&(f=u.triggerOptions.triggerKind===1&&!u.triggerOptions.refilter)}this.widget.value.showSuggestions(u.completionModel,h,u.isFrozen,u.triggerOptions.auto,f)})),this._toDispose.add(this.model.onDidCancel(u=>{u.retrigger||this.widget.value.hideWidget()})),this._toDispose.add(this.editor.onDidBlurEditorWidget(()=>{this.model.cancel(),this.model.clear()}));const c=$t.AcceptSuggestionsOnEnter.bindTo(s),d=()=>{const u=this.editor.getOption(1);c.set(u===\"on\"||u===\"smart\")};this._toDispose.add(this.editor.onDidChangeConfiguration(()=>d())),d()}dispose(){this._alternatives.dispose(),this._toDispose.dispose(),this.widget.dispose(),this.model.dispose(),this._lineSuffix.dispose(),this._onWillInsertSuggestItem.dispose()}_insertSuggestion(e,t){if(!e||!e.item){this._alternatives.value.reset(),this.model.cancel(),this.model.clear();return}if(!this.editor.hasModel())return;const i=Lo.get(this.editor);if(!i)return;this._onWillInsertSuggestItem.fire({item:e.item});const s=this.editor.getModel(),o=s.getAlternativeVersionId(),{item:r}=e,a=[],l=new $n;t&1||this.editor.pushUndoStop();const c=this.getOverwriteInfo(r,!!(t&8));this._memoryService.memorize(s,this.editor.getPosition(),r);const d=r.isResolved;let u=-1,h=-1;if(Array.isArray(r.completion.additionalTextEdits)){this.model.cancel();const g=uu.capture(this.editor);this.editor.executeEdits(\"suggestController.additionalTextEdits.sync\",r.completion.additionalTextEdits.map(p=>{let _=A.lift(p.range);if(_.startLineNumber===r.position.lineNumber&&_.startColumn>r.position.column){const b=this.editor.getPosition().column-r.position.column,w=b,y=A.spansMultipleLines(_)?0:b;_=new A(_.startLineNumber,_.startColumn+w,_.endLineNumber,_.endColumn+y)}return Mn.replaceMove(_,p.text)})),g.restoreRelativeVerticalPositionOfCursor(this.editor)}else if(!d){const g=new xo;let p;const _=s.onDidChangeContent(S=>{if(S.isFlush){l.cancel(),_.dispose();return}for(const x of S.changes){const k=A.getEndPosition(x.range);(!p||ee.isBefore(k,p))&&(p=k)}}),b=t;t|=2;let w=!1;const y=this.editor.onWillType(()=>{y.dispose(),w=!0,b&2||this.editor.pushUndoStop()});a.push(r.resolve(l.token).then(()=>{if(!r.completion.additionalTextEdits||l.token.isCancellationRequested)return;if(p&&r.completion.additionalTextEdits.some(x=>ee.isBefore(p,A.getStartPosition(x.range))))return!1;w&&this.editor.pushUndoStop();const S=uu.capture(this.editor);return this.editor.executeEdits(\"suggestController.additionalTextEdits.async\",r.completion.additionalTextEdits.map(x=>Mn.replaceMove(A.lift(x.range),x.text))),S.restoreRelativeVerticalPositionOfCursor(this.editor),(w||!(b&2))&&this.editor.pushUndoStop(),!0}).then(S=>{this._logService.trace(\"[suggest] async resolving of edits DONE (ms, applied?)\",g.elapsed(),S),h=S===!0?1:S===!1?0:-2}).finally(()=>{_.dispose(),y.dispose()}))}let{insertText:f}=r.completion;if(r.completion.insertTextRules&4||(f=L0.escape(f)),this.model.cancel(),i.insert(f,{overwriteBefore:c.overwriteBefore,overwriteAfter:c.overwriteAfter,undoStopBefore:!1,undoStopAfter:!1,adjustWhitespace:!(r.completion.insertTextRules&1),clipboardText:e.model.clipboardText,overtypingCapturer:this._overtypingCapturer.value}),t&2||this.editor.pushUndoStop(),r.completion.command)if(r.completion.command.id===QD.id)this.model.trigger({auto:!0,retrigger:!0});else{const g=new xo;a.push(this._commandService.executeCommand(r.completion.command.id,...r.completion.command.arguments?[...r.completion.command.arguments]:[]).catch(p=>{r.completion.extensionId?as(p):Mt(p)}).finally(()=>{u=g.elapsed()}))}t&4&&this._alternatives.value.set(e,g=>{for(l.cancel();s.canUndo();){o!==s.getAlternativeVersionId()&&s.undo(),this._insertSuggestion(g,3|(t&8?8:0));break}}),this._alertCompletionItem(r),Promise.all(a).finally(()=>{this._reportSuggestionAcceptedTelemetry(r,s,d,u,h),this.model.clear(),l.dispose()})}_reportSuggestionAcceptedTelemetry(e,t,i,s,o){var r,a,l;Math.floor(Math.random()*100)!==0&&this._telemetryService.publicLog2(\"suggest.acceptedSuggestion\",{extensionId:(a=(r=e.extensionId)===null||r===void 0?void 0:r.value)!==null&&a!==void 0?a:\"unknown\",providerId:(l=e.provider._debugDisplayName)!==null&&l!==void 0?l:\"unknown\",kind:e.completion.kind,basenameHash:aM(dc(t.uri)).toString(16),languageId:t.getLanguageId(),fileExtension:lBe(t.uri),resolveInfo:e.provider.resolveCompletionItem?i?1:0:-1,resolveDuration:e.resolveDuration,commandDuration:s,additionalEditsAsync:o})}getOverwriteInfo(e,t){mi(this.editor.hasModel());let i=this.editor.getOption(118).insertMode===\"replace\";t&&(i=!i);const s=e.position.column-e.editStart.column,o=(i?e.editReplaceEnd.column:e.editInsertEnd.column)-e.position.column,r=this.editor.getPosition().column-e.position.column,a=this._lineSuffix.value?this._lineSuffix.value.delta(this.editor.getPosition()):0;return{overwriteBefore:s+r,overwriteAfter:o+a}}_alertCompletionItem(e){if(Zo(e.completion.additionalTextEdits)){const t=v(\"aria.alert.snippet\",\"Accepting '{0}' made {1} additional edits\",e.textLabel,e.completion.additionalTextEdits.length);la(t)}}triggerSuggest(e,t,i){this.editor.hasModel()&&(this.model.trigger({auto:t??!1,completionOptions:{providerFilter:e,kindFilter:i?new Set:void 0}}),this.editor.revealPosition(this.editor.getPosition(),0),this.editor.focus())}triggerSuggestAndAcceptBest(e){if(!this.editor.hasModel())return;const t=this.editor.getPosition(),i=()=>{t.equals(this.editor.getPosition())&&this._commandService.executeCommand(e.fallback)},s=o=>{if(o.completion.insertTextRules&4||o.completion.additionalTextEdits)return!0;const r=this.editor.getPosition(),a=o.editStart.column,l=r.column;return l-a!==o.completion.insertText.length?!0:this.editor.getModel().getValueInRange({startLineNumber:r.lineNumber,startColumn:a,endLineNumber:r.lineNumber,endColumn:l})!==o.completion.insertText};Ae.once(this.model.onDidTrigger)(o=>{const r=[];Ae.any(this.model.onDidTrigger,this.model.onDidCancel)(()=>{tn(r),i()},void 0,r),this.model.onDidSuggest(({completionModel:a})=>{if(tn(r),a.items.length===0){i();return}const l=this._memoryService.select(this.editor.getModel(),this.editor.getPosition(),a.items),c=a.items[l];if(!s(c)){i();return}this.editor.pushUndoStop(),this._insertSuggestion({index:l,item:c,model:a},7)},void 0,r)}),this.model.trigger({auto:!1,shy:!0}),this.editor.revealPosition(t,0),this.editor.focus()}acceptSelectedSuggestion(e,t){const i=this.widget.value.getFocusedItem();let s=0;e&&(s|=4),t&&(s|=8),this._insertSuggestion(i,s)}acceptNextSuggestion(){this._alternatives.value.next()}acceptPrevSuggestion(){this._alternatives.value.prev()}cancelSuggestWidget(){this.model.cancel(),this.model.clear(),this.widget.value.hideWidget()}focusSuggestion(){this.widget.value.focusSelected()}selectNextSuggestion(){this.widget.value.selectNext()}selectNextPageSuggestion(){this.widget.value.selectNextPage()}selectLastSuggestion(){this.widget.value.selectLast()}selectPrevSuggestion(){this.widget.value.selectPrevious()}selectPrevPageSuggestion(){this.widget.value.selectPreviousPage()}selectFirstSuggestion(){this.widget.value.selectFirst()}toggleSuggestionDetails(){this.widget.value.toggleDetails()}toggleExplainMode(){this.widget.value.toggleExplainMode()}toggleSuggestionFocus(){this.widget.value.toggleDetailsFocus()}resetWidgetSize(){this.widget.value.resetPersistedSize()}forceRenderingAbove(){this.widget.value.forceRenderingAbove()}stopForceRenderingAbove(){this.widget.isInitialized&&this.widget.value.stopForceRenderingAbove()}registerSelector(e){return this._selectors.register(e)}};Yc.ID=\"editor.contrib.suggestController\";Yc=TW=pet([qb(1,ZP),qb(2,Sn),qb(3,Ct),qb(4,ht),qb(5,er),qb(6,Po)],Yc);class _et{constructor(e){this.prioritySelector=e,this._items=new Array}register(e){if(this._items.indexOf(e)!==-1)throw new Error(\"Value is already registered\");return this._items.push(e),this._items.sort((t,i)=>this.prioritySelector(i)-this.prioritySelector(t)),{dispose:()=>{const t=this._items.indexOf(e);t>=0&&this._items.splice(t,1)}}}get itemsOrderedByPriorityDesc(){return this._items}}class QD extends Ke{constructor(){super({id:QD.id,label:v(\"suggest.trigger.label\",\"Trigger Suggest\"),alias:\"Trigger Suggest\",precondition:pe.and(W.writable,W.hasCompletionItemProvider,$t.Visible.toNegated()),kbOpts:{kbExpr:W.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[521,2087]},weight:100}})}run(e,t,i){const s=Yc.get(t);if(!s)return;let o;i&&typeof i==\"object\"&&i.auto===!0&&(o=!0),s.triggerSuggest(void 0,o,void 0)}}QD.id=\"editor.action.triggerSuggest\";bi(Yc.ID,Yc,2);xe(QD);const Ll=190,Kr=Us.bindToContribution(Yc.get);Fe(new Kr({id:\"acceptSelectedSuggestion\",precondition:pe.and($t.Visible,$t.HasFocusedSuggestion),handler(n){n.acceptSelectedSuggestion(!0,!1)},kbOpts:[{primary:2,kbExpr:pe.and($t.Visible,W.textInputFocus),weight:Ll},{primary:3,kbExpr:pe.and($t.Visible,W.textInputFocus,$t.AcceptSuggestionsOnEnter,$t.MakesTextEdit),weight:Ll}],menuOpts:[{menuId:bm,title:v(\"accept.insert\",\"Insert\"),group:\"left\",order:1,when:$t.HasInsertAndReplaceRange.toNegated()},{menuId:bm,title:v(\"accept.insert\",\"Insert\"),group:\"left\",order:1,when:pe.and($t.HasInsertAndReplaceRange,$t.InsertMode.isEqualTo(\"insert\"))},{menuId:bm,title:v(\"accept.replace\",\"Replace\"),group:\"left\",order:1,when:pe.and($t.HasInsertAndReplaceRange,$t.InsertMode.isEqualTo(\"replace\"))}]}));Fe(new Kr({id:\"acceptAlternativeSelectedSuggestion\",precondition:pe.and($t.Visible,W.textInputFocus,$t.HasFocusedSuggestion),kbOpts:{weight:Ll,kbExpr:W.textInputFocus,primary:1027,secondary:[1026]},handler(n){n.acceptSelectedSuggestion(!1,!0)},menuOpts:[{menuId:bm,group:\"left\",order:2,when:pe.and($t.HasInsertAndReplaceRange,$t.InsertMode.isEqualTo(\"insert\")),title:v(\"accept.replace\",\"Replace\")},{menuId:bm,group:\"left\",order:2,when:pe.and($t.HasInsertAndReplaceRange,$t.InsertMode.isEqualTo(\"replace\")),title:v(\"accept.insert\",\"Insert\")}]}));ri.registerCommandAlias(\"acceptSelectedSuggestionOnEnter\",\"acceptSelectedSuggestion\");Fe(new Kr({id:\"hideSuggestWidget\",precondition:$t.Visible,handler:n=>n.cancelSuggestWidget(),kbOpts:{weight:Ll,kbExpr:W.textInputFocus,primary:9,secondary:[1033]}}));Fe(new Kr({id:\"selectNextSuggestion\",precondition:pe.and($t.Visible,pe.or($t.MultipleSuggestions,$t.HasFocusedSuggestion.negate())),handler:n=>n.selectNextSuggestion(),kbOpts:{weight:Ll,kbExpr:W.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}}));Fe(new Kr({id:\"selectNextPageSuggestion\",precondition:pe.and($t.Visible,pe.or($t.MultipleSuggestions,$t.HasFocusedSuggestion.negate())),handler:n=>n.selectNextPageSuggestion(),kbOpts:{weight:Ll,kbExpr:W.textInputFocus,primary:12,secondary:[2060]}}));Fe(new Kr({id:\"selectLastSuggestion\",precondition:pe.and($t.Visible,pe.or($t.MultipleSuggestions,$t.HasFocusedSuggestion.negate())),handler:n=>n.selectLastSuggestion()}));Fe(new Kr({id:\"selectPrevSuggestion\",precondition:pe.and($t.Visible,pe.or($t.MultipleSuggestions,$t.HasFocusedSuggestion.negate())),handler:n=>n.selectPrevSuggestion(),kbOpts:{weight:Ll,kbExpr:W.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}}));Fe(new Kr({id:\"selectPrevPageSuggestion\",precondition:pe.and($t.Visible,pe.or($t.MultipleSuggestions,$t.HasFocusedSuggestion.negate())),handler:n=>n.selectPrevPageSuggestion(),kbOpts:{weight:Ll,kbExpr:W.textInputFocus,primary:11,secondary:[2059]}}));Fe(new Kr({id:\"selectFirstSuggestion\",precondition:pe.and($t.Visible,pe.or($t.MultipleSuggestions,$t.HasFocusedSuggestion.negate())),handler:n=>n.selectFirstSuggestion()}));Fe(new Kr({id:\"focusSuggestion\",precondition:pe.and($t.Visible,$t.HasFocusedSuggestion.negate()),handler:n=>n.focusSuggestion(),kbOpts:{weight:Ll,kbExpr:W.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}}}));Fe(new Kr({id:\"focusAndAcceptSuggestion\",precondition:pe.and($t.Visible,$t.HasFocusedSuggestion.negate()),handler:n=>{n.focusSuggestion(),n.acceptSelectedSuggestion(!0,!1)}}));Fe(new Kr({id:\"toggleSuggestionDetails\",precondition:pe.and($t.Visible,$t.HasFocusedSuggestion),handler:n=>n.toggleSuggestionDetails(),kbOpts:{weight:Ll,kbExpr:W.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}},menuOpts:[{menuId:bm,group:\"right\",order:1,when:pe.and($t.DetailsVisible,$t.CanResolve),title:v(\"detail.more\",\"show less\")},{menuId:bm,group:\"right\",order:1,when:pe.and($t.DetailsVisible.toNegated(),$t.CanResolve),title:v(\"detail.less\",\"show more\")}]}));Fe(new Kr({id:\"toggleExplainMode\",precondition:$t.Visible,handler:n=>n.toggleExplainMode(),kbOpts:{weight:100,primary:2138}}));Fe(new Kr({id:\"toggleSuggestionFocus\",precondition:$t.Visible,handler:n=>n.toggleSuggestionFocus(),kbOpts:{weight:Ll,kbExpr:W.textInputFocus,primary:2570,mac:{primary:778}}}));Fe(new Kr({id:\"insertBestCompletion\",precondition:pe.and(W.textInputFocus,pe.equals(\"config.editor.tabCompletion\",\"on\"),xk.AtEnd,$t.Visible.toNegated(),R0.OtherSuggestions.toNegated(),Lo.InSnippetMode.toNegated()),handler:(n,e)=>{n.triggerSuggestAndAcceptBest(Er(e)?{fallback:\"tab\",...e}:{fallback:\"tab\"})},kbOpts:{weight:Ll,primary:2}}));Fe(new Kr({id:\"insertNextSuggestion\",precondition:pe.and(W.textInputFocus,pe.equals(\"config.editor.tabCompletion\",\"on\"),R0.OtherSuggestions,$t.Visible.toNegated(),Lo.InSnippetMode.toNegated()),handler:n=>n.acceptNextSuggestion(),kbOpts:{weight:Ll,kbExpr:W.textInputFocus,primary:2}}));Fe(new Kr({id:\"insertPrevSuggestion\",precondition:pe.and(W.textInputFocus,pe.equals(\"config.editor.tabCompletion\",\"on\"),R0.OtherSuggestions,$t.Visible.toNegated(),Lo.InSnippetMode.toNegated()),handler:n=>n.acceptPrevSuggestion(),kbOpts:{weight:Ll,kbExpr:W.textInputFocus,primary:1026}}));xe(class extends Ke{constructor(){super({id:\"editor.action.resetSuggestSize\",label:v(\"suggest.reset.label\",\"Reset Suggest Widget Size\"),alias:\"Reset Suggest Widget Size\",precondition:void 0})}run(n,e){var t;(t=Yc.get(e))===null||t===void 0||t.resetWidgetSize()}});class vet extends ne{get selectedItem(){return this._selectedItem}constructor(e,t,i,s){super(),this.editor=e,this.suggestControllerPreselector=t,this.checkModelVersion=i,this.onWillAccept=s,this.isSuggestWidgetVisible=!1,this.isShiftKeyPressed=!1,this._isActive=!1,this._currentSuggestItemInfo=void 0,this._selectedItem=li(this,void 0),this._register(e.onKeyDown(r=>{r.shiftKey&&!this.isShiftKeyPressed&&(this.isShiftKeyPressed=!0,this.update(this._isActive))})),this._register(e.onKeyUp(r=>{r.shiftKey&&this.isShiftKeyPressed&&(this.isShiftKeyPressed=!1,this.update(this._isActive))}));const o=Yc.get(this.editor);if(o){this._register(o.registerSelector({priority:100,select:(l,c,d)=>{rn(b=>this.checkModelVersion(b));const u=this.editor.getModel();if(!u)return-1;const h=this.suggestControllerPreselector(),f=h?Jv(h,u):void 0;if(!f)return-1;const g=ee.lift(c),p=d.map((b,w)=>{const y=Mx.fromSuggestion(o,u,g,b,this.isShiftKeyPressed),S=Jv(y.toSingleTextEdit(),u),x=wge(f,S);return{index:w,valid:x,prefixLength:S.text.length,suggestItem:b}}).filter(b=>b&&b.valid&&b.prefixLength>0),_=pz(p,oa(b=>b.prefixLength,Qc));return _?_.index:-1}}));let r=!1;const a=()=>{r||(r=!0,this._register(o.widget.value.onDidShow(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})),this._register(o.widget.value.onDidHide(()=>{this.isSuggestWidgetVisible=!1,this.update(!1)})),this._register(o.widget.value.onDidFocus(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})))};this._register(Ae.once(o.model.onDidTrigger)(l=>{a()})),this._register(o.onWillInsertSuggestItem(l=>{const c=this.editor.getPosition(),d=this.editor.getModel();if(!c||!d)return;const u=Mx.fromSuggestion(o,d,c,l.item,this.isShiftKeyPressed);this.onWillAccept(u)}))}this.update(this._isActive)}update(e){const t=this.getSuggestItemInfo();(this._isActive!==e||!bet(this._currentSuggestItemInfo,t))&&(this._isActive=e,this._currentSuggestItemInfo=t,rn(i=>{this.checkModelVersion(i),this._selectedItem.set(this._isActive?this._currentSuggestItemInfo:void 0,i)}))}getSuggestItemInfo(){const e=Yc.get(this.editor);if(!e||!this.isSuggestWidgetVisible)return;const t=e.widget.value.getFocusedItem(),i=this.editor.getPosition(),s=this.editor.getModel();if(!(!t||!i||!s))return Mx.fromSuggestion(e,s,i,t.item,this.isShiftKeyPressed)}stopForceRenderingAbove(){const e=Yc.get(this.editor);e==null||e.stopForceRenderingAbove()}forceRenderingAbove(){const e=Yc.get(this.editor);e==null||e.forceRenderingAbove()}}class Mx{static fromSuggestion(e,t,i,s,o){let{insertText:r}=s.completion,a=!1;if(s.completion.insertTextRules&4){const c=new L0().parse(r);c.children.length<100&&yR.adjustWhitespace(t,i,!0,c),r=c.toString(),a=!0}const l=e.getOverwriteInfo(s,o);return new Mx(A.fromPositions(i.delta(0,-l.overwriteBefore),i.delta(0,Math.max(l.overwriteAfter,0))),r,s.completion.kind,a)}constructor(e,t,i,s){this.range=e,this.insertText=t,this.completionItemKind=i,this.isSnippetText=s}equals(e){return this.range.equalsRange(e.range)&&this.insertText===e.insertText&&this.completionItemKind===e.completionItemKind&&this.isSnippetText===e.isSnippetText}toSelectedSuggestionInfo(){return new gae(this.range,this.insertText,this.completionItemKind,this.isSnippetText)}toSingleTextEdit(){return new Eg(this.range,this.insertText)}}function bet(n,e){return n===e?!0:!n||!e?!1:n.equals(e)}var Cet=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},_f=function(n,e){return function(t,i){e(t,i,n)}},NW;let kl=NW=class extends ne{static get(e){return e.getContribution(NW.ID)}constructor(e,t,i,s,o,r,a,l,c,d){super(),this.editor=e,this._instantiationService=t,this._contextKeyService=i,this._configurationService=s,this._commandService=o,this._debounceService=r,this._languageFeaturesService=a,this._accessibilitySignalService=l,this._keybindingService=c,this._accessibilityService=d,this.model=this._register(KL(\"inlineCompletionModel\",void 0)),this._textModelVersionId=li(this,-1),this._positions=uVe({owner:this,equalsFn:D9(Nde())},[new ee(1,1)]),this._suggestWidgetAdaptor=this._register(new vet(this.editor,()=>{var p,_;return(_=(p=this.model.get())===null||p===void 0?void 0:p.selectedInlineCompletion.get())===null||_===void 0?void 0:_.toSingleTextEdit(void 0)},p=>this.updateObservables(p,tl.Other),p=>{rn(_=>{var b;this.updateObservables(_,tl.Other),(b=this.model.get())===null||b===void 0||b.handleSuggestAccepted(p)})})),this._enabledInConfig=qi(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(62).enabled),this._isScreenReaderEnabled=qi(this._accessibilityService.onDidChangeScreenReaderOptimized,()=>this._accessibilityService.isScreenReaderOptimized()),this._editorDictationInProgress=qi(this._contextKeyService.onDidChangeContext,()=>this._contextKeyService.getContext(this.editor.getDomNode()).getValue(\"editorDictation.inProgress\")===!0),this._enabled=Rt(this,p=>this._enabledInConfig.read(p)&&(!this._isScreenReaderEnabled.read(p)||!this._editorDictationInProgress.read(p))),this._fontFamily=qi(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(62).fontFamily),this._ghostTexts=Rt(this,p=>{var _;const b=this.model.read(p);return(_=b==null?void 0:b.ghostTexts.read(p))!==null&&_!==void 0?_:[]}),this._stablizedGhostTexts=wet(this._ghostTexts,this._store),this._ghostTextWidgets=bVe(this,this._stablizedGhostTexts,(p,_)=>_.add(this._instantiationService.createInstance(yW,this.editor,{ghostText:p,minReservedLineCount:Vd(0),targetTextModel:this.model.map(b=>b==null?void 0:b.textModel)}))).recomputeInitiallyAndOnChange(this._store),this._debounceValue=this._debounceService.for(this._languageFeaturesService.inlineCompletionsProvider,\"InlineCompletionsDebounce\",{min:50,max:50}),this._playAccessibilitySignal=nP(this),this._isReadonly=qi(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(91)),this._textModel=qi(this.editor.onDidChangeModel,()=>this.editor.getModel()),this._textModelIfWritable=Rt(p=>this._isReadonly.read(p)?void 0:this._textModel.read(p)),this._register(new lo(this._contextKeyService,this.model)),this._register(Ut(p=>{const _=this._textModelIfWritable.read(p);rn(b=>{if(this.model.set(void 0,b),this.updateObservables(b,tl.Other),_){const w=t.createInstance(xW,_,this._suggestWidgetAdaptor.selectedItem,this._textModelVersionId,this._positions,this._debounceValue,qi(e.onDidChangeConfiguration,()=>e.getOption(118).preview),qi(e.onDidChangeConfiguration,()=>e.getOption(118).previewMode),qi(e.onDidChangeConfiguration,()=>e.getOption(62).mode),this._enabled);this.model.set(w,b)}})}));const u=this._register(Kae());this._register(Ut(p=>{const _=this._fontFamily.read(p);u.setStyle(_===\"\"||_===\"default\"?\"\":`\n.monaco-editor .ghost-text-decoration,\n.monaco-editor .ghost-text-decoration-preview,\n.monaco-editor .ghost-text {\n\tfont-family: ${_};\n}`)}));const h=p=>{var _;return p.isUndoing?tl.Undo:p.isRedoing?tl.Redo:!((_=this.model.get())===null||_===void 0)&&_.isAcceptingPartially?tl.AcceptWord:tl.Other};this._register(e.onDidChangeModelContent(p=>rn(_=>this.updateObservables(_,h(p))))),this._register(e.onDidChangeCursorPosition(p=>rn(_=>{var b;this.updateObservables(_,tl.Other),(p.reason===3||p.source===\"api\")&&((b=this.model.get())===null||b===void 0||b.stop(_))}))),this._register(e.onDidType(()=>rn(p=>{var _;this.updateObservables(p,tl.Other),this._enabled.get()&&((_=this.model.get())===null||_===void 0||_.trigger(p))}))),this._register(this._commandService.onDidExecuteCommand(p=>{new Set([tC.Tab.id,tC.DeleteLeft.id,tC.DeleteRight.id,kfe,\"acceptSelectedSuggestion\"]).has(p.commandId)&&e.hasTextFocus()&&this._enabled.get()&&rn(b=>{var w;(w=this.model.get())===null||w===void 0||w.trigger(b)})})),this._register(this.editor.onDidBlurEditorWidget(()=>{this._contextKeyService.getContextKeyValue(\"accessibleViewIsShown\")||this._configurationService.getValue(\"editor.inlineSuggest.keepOnBlur\")||e.getOption(62).keepOnBlur||Zm.dropDownVisible||rn(p=>{var _;(_=this.model.get())===null||_===void 0||_.stop(p)})})),this._register(Ut(p=>{var _;const b=(_=this.model.read(p))===null||_===void 0?void 0:_.state.read(p);b!=null&&b.suggestItem?b.primaryGhostText.lineCount>=2&&this._suggestWidgetAdaptor.forceRenderingAbove():this._suggestWidgetAdaptor.stopForceRenderingAbove()})),this._register(dt(()=>{this._suggestWidgetAdaptor.stopForceRenderingAbove()}));const f=this._register(new be);let g;this._register(AD({handleChange:(p,_)=>(p.didChange(this._playAccessibilitySignal)&&(g=void 0),!0)},async(p,_)=>{this._playAccessibilitySignal.read(p);const b=this.model.read(p),w=b==null?void 0:b.state.read(p);if(!b||!w||!w.inlineCompletion){g=void 0;return}if(w.inlineCompletion.semanticId!==g){f.clear(),g=w.inlineCompletion.semanticId;const y=b.textModel.getLineContent(w.primaryGhostText.lineNumber);await Dg(50,sY(f)),await Ode(this._suggestWidgetAdaptor.selectedItem,na,()=>!1,sY(f)),await this._accessibilitySignalService.playSignal(At.inlineSuggestion),this.editor.getOption(8)&&this.provideScreenReaderUpdate(w.primaryGhostText.renderForScreenReader(y))}})),this._register(new Y6(this.editor,this.model,this._instantiationService)),this._register(this._configurationService.onDidChangeConfiguration(p=>{p.affectsConfiguration(\"accessibility.verbosity.inlineCompletions\")&&this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue(\"accessibility.verbosity.inlineCompletions\")})})),this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue(\"accessibility.verbosity.inlineCompletions\")})}playAccessibilitySignal(e){this._playAccessibilitySignal.trigger(e)}provideScreenReaderUpdate(e){const t=this._contextKeyService.getContextKeyValue(\"accessibleViewIsShown\"),i=this._keybindingService.lookupKeybinding(\"editor.action.accessibleView\");let s;!t&&i&&this.editor.getOption(149)&&(s=v(\"showAccessibleViewHint\",\"Inspect this in the accessible view ({0})\",i.getAriaLabel())),la(s?e+\", \"+s:e)}updateObservables(e,t){var i,s,o;const r=this.editor.getModel();this._textModelVersionId.set((i=r==null?void 0:r.getVersionId())!==null&&i!==void 0?i:-1,e,t),this._positions.set((o=(s=this.editor.getSelections())===null||s===void 0?void 0:s.map(a=>a.getPosition()))!==null&&o!==void 0?o:[new ee(1,1)],e)}shouldShowHoverAt(e){var t;const i=(t=this.model.get())===null||t===void 0?void 0:t.primaryGhostText.get();return i?i.parts.some(s=>e.containsPosition(new ee(i.lineNumber,s.column))):!1}shouldShowHoverAtViewZone(e){var t,i;return(i=(t=this._ghostTextWidgets.get()[0])===null||t===void 0?void 0:t.ownsViewZone(e))!==null&&i!==void 0?i:!1}};kl.ID=\"editor.contrib.inlineCompletionsController\";kl=NW=Cet([_f(1,ht),_f(2,Ct),_f(3,qt),_f(4,Sn),_f(5,_c),_f(6,Xe),_f(7,v_),_f(8,Li),_f(9,Ha)],kl);function wet(n,e){const t=li(\"result\",[]),i=[];return e.add(Ut(s=>{const o=n.read(s);rn(r=>{if(o.length!==i.length){i.length=o.length;for(let a=0;a<i.length;a++)i[a]||(i[a]=li(\"item\",o[a]));t.set([...i],r)}i.forEach((a,l)=>a.set(o[l],r))})})),t}class XP extends Ke{constructor(){super({id:XP.ID,label:v(\"action.inlineSuggest.showNext\",\"Show Next Inline Suggestion\"),alias:\"Show Next Inline Suggestion\",precondition:pe.and(W.writable,lo.inlineSuggestionVisible),kbOpts:{weight:100,primary:606}})}async run(e,t){var i;const s=kl.get(t);(i=s==null?void 0:s.model.get())===null||i===void 0||i.next()}}XP.ID=Ife;class QP extends Ke{constructor(){super({id:QP.ID,label:v(\"action.inlineSuggest.showPrevious\",\"Show Previous Inline Suggestion\"),alias:\"Show Previous Inline Suggestion\",precondition:pe.and(W.writable,lo.inlineSuggestionVisible),kbOpts:{weight:100,primary:604}})}async run(e,t){var i;const s=kl.get(t);(i=s==null?void 0:s.model.get())===null||i===void 0||i.previous()}}QP.ID=Dfe;class yet extends Ke{constructor(){super({id:\"editor.action.inlineSuggest.trigger\",label:v(\"action.inlineSuggest.trigger\",\"Trigger Inline Suggestion\"),alias:\"Trigger Inline Suggestion\",precondition:W.writable})}async run(e,t){const i=kl.get(t);await dVe(async s=>{var o;await((o=i==null?void 0:i.model.get())===null||o===void 0?void 0:o.triggerExplicitly(s)),i==null||i.playAccessibilitySignal(s)})}}class xet extends Ke{constructor(){super({id:\"editor.action.inlineSuggest.acceptNextWord\",label:v(\"action.inlineSuggest.acceptNextWord\",\"Accept Next Word Of Inline Suggestion\"),alias:\"Accept Next Word Of Inline Suggestion\",precondition:pe.and(W.writable,lo.inlineSuggestionVisible),kbOpts:{weight:101,primary:2065,kbExpr:pe.and(W.writable,lo.inlineSuggestionVisible)},menuOpts:[{menuId:R.InlineSuggestionToolbar,title:v(\"acceptWord\",\"Accept Word\"),group:\"primary\",order:2}]})}async run(e,t){var i;const s=kl.get(t);await((i=s==null?void 0:s.model.get())===null||i===void 0?void 0:i.acceptNextWord(s.editor))}}class Let extends Ke{constructor(){super({id:\"editor.action.inlineSuggest.acceptNextLine\",label:v(\"action.inlineSuggest.acceptNextLine\",\"Accept Next Line Of Inline Suggestion\"),alias:\"Accept Next Line Of Inline Suggestion\",precondition:pe.and(W.writable,lo.inlineSuggestionVisible),kbOpts:{weight:101},menuOpts:[{menuId:R.InlineSuggestionToolbar,title:v(\"acceptLine\",\"Accept Line\"),group:\"secondary\",order:2}]})}async run(e,t){var i;const s=kl.get(t);await((i=s==null?void 0:s.model.get())===null||i===void 0?void 0:i.acceptNextLine(s.editor))}}class ket extends Ke{constructor(){super({id:kfe,label:v(\"action.inlineSuggest.accept\",\"Accept Inline Suggestion\"),alias:\"Accept Inline Suggestion\",precondition:lo.inlineSuggestionVisible,menuOpts:[{menuId:R.InlineSuggestionToolbar,title:v(\"accept\",\"Accept\"),group:\"primary\",order:1}],kbOpts:{primary:2,weight:200,kbExpr:pe.and(lo.inlineSuggestionVisible,W.tabMovesFocus.toNegated(),lo.inlineSuggestionHasIndentationLessThanTabSize,$t.Visible.toNegated(),W.hoverFocused.toNegated())}})}async run(e,t){var i;const s=kl.get(t);s&&((i=s.model.get())===null||i===void 0||i.accept(s.editor),s.editor.focus())}}class JP extends Ke{constructor(){super({id:JP.ID,label:v(\"action.inlineSuggest.hide\",\"Hide Inline Suggestion\"),alias:\"Hide Inline Suggestion\",precondition:lo.inlineSuggestionVisible,kbOpts:{weight:100,primary:9}})}async run(e,t){const i=kl.get(t);rn(s=>{var o;(o=i==null?void 0:i.model.get())===null||o===void 0||o.stop(s)})}}JP.ID=\"editor.action.inlineSuggest.hide\";class eO extends zr{constructor(){super({id:eO.ID,title:v(\"action.inlineSuggest.alwaysShowToolbar\",\"Always Show Toolbar\"),f1:!1,precondition:void 0,menu:[{id:R.InlineSuggestionToolbar,group:\"secondary\",order:10}],toggled:pe.equals(\"config.editor.inlineSuggest.showToolbar\",\"always\")})}async run(e,t){const i=e.get(qt),o=i.getValue(\"editor.inlineSuggest.showToolbar\")===\"always\"?\"onHover\":\"always\";i.updateValue(\"editor.inlineSuggest.showToolbar\",o)}}eO.ID=\"editor.action.inlineSuggest.toggleAlwaysShowToolbar\";var Det=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},iS=function(n,e){return function(t,i){e(t,i,n)}};class Iet{constructor(e,t,i){this.owner=e,this.range=t,this.controller=i}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}let AW=class{constructor(e,t,i,s,o,r){this._editor=e,this._languageService=t,this._openerService=i,this.accessibilityService=s,this._instantiationService=o,this._telemetryService=r,this.hoverOrdinal=4}suggestHoverAnchor(e){const t=kl.get(this._editor);if(!t)return null;const i=e.target;if(i.type===8){const s=i.detail;if(t.shouldShowHoverAtViewZone(s.viewZoneId))return new Yv(1e3,this,A.fromPositions(this._editor.getModel().validatePosition(s.positionBefore||s.position)),e.event.posx,e.event.posy,!1)}return i.type===7&&t.shouldShowHoverAt(i.range)?new Yv(1e3,this,i.range,e.event.posx,e.event.posy,!1):i.type===6&&i.detail.mightBeForeignElement&&t.shouldShowHoverAt(i.range)?new Yv(1e3,this,i.range,e.event.posx,e.event.posy,!1):null}computeSync(e,t){if(this._editor.getOption(62).showToolbar!==\"onHover\")return[];const i=kl.get(this._editor);return i&&i.shouldShowHoverAt(e.range)?[new Iet(this,e.range,i)]:[]}renderHoverParts(e,t){const i=new be,s=t[0];this._telemetryService.publicLog2(\"inlineCompletionHover.shown\"),this.accessibilityService.isScreenReaderOptimized()&&!this._editor.getOption(8)&&this.renderScreenReaderText(e,s,i);const o=s.controller.model.get(),r=this._instantiationService.createInstance(Zm,this._editor,!1,Vd(null),o.selectedInlineCompletionIndex,o.inlineCompletionsCount,o.activeCommands);return e.fragment.appendChild(r.getDomNode()),o.triggerExplicitly(),i.add(r),i}renderScreenReaderText(e,t,i){const s=ke,o=s(\"div.hover-row.markdown-hover\"),r=we(o,s(\"div.hover-contents\",{\"aria-live\":\"assertive\"})),a=i.add(new Nh({editor:this._editor},this._languageService,this._openerService)),l=c=>{i.add(a.onDidRenderAsync(()=>{r.className=\"hover-contents code-hover-contents\",e.onContentsChanged()}));const d=v(\"inlineSuggestionFollows\",\"Suggestion:\"),u=i.add(a.render(new $o().appendText(d).appendCodeblock(\"text\",c)));r.replaceChildren(u.element)};i.add(Ut(c=>{var d;const u=(d=t.controller.model.read(c))===null||d===void 0?void 0:d.primaryGhostText.read(c);if(u){const h=this._editor.getModel().getLineContent(u.lineNumber);l(u.renderForScreenReader(h))}else yo(r)})),e.fragment.appendChild(o)}};AW=Det([iS(1,An),iS(2,$a),iS(3,Ha),iS(4,ht),iS(5,Po)],AW);class Eet extends ne{constructor(){super()}}const tO=new class{constructor(){this._implementations=[]}register(e){return this._implementations.push(e),{dispose:()=>{const t=this._implementations.indexOf(e);t!==-1&&this._implementations.splice(t,1),e.dispose()}}}getImplementations(){return this._implementations}};bi(kl.ID,kl,3);xe(yet);xe(XP);xe(QP);xe(xet);xe(Let);xe(ket);xe(JP);dn(eO);b_.register(AW);tO.register(new Eet);var Tet=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},_3=function(n,e){return function(t,i){e(t,i,n)}},WS;let M0=WS=class{constructor(e,t,i,s){this.textModelResolverService=t,this.languageService=i,this.languageFeaturesService=s,this.toUnhook=new be,this.toUnhookForKeyboard=new be,this.currentWordAtPosition=null,this.previousPromise=null,this.editor=e,this.linkDecorations=this.editor.createDecorationsCollection();const o=new RP(e);this.toUnhook.add(o),this.toUnhook.add(o.onMouseMoveOrRelevantKeyDown(([r,a])=>{this.startFindDefinitionFromMouse(r,a??void 0)})),this.toUnhook.add(o.onExecute(r=>{this.isEnabled(r)&&this.gotoDefinition(r.target.position,r.hasSideBySideModifier).catch(a=>{Mt(a)}).finally(()=>{this.removeLinkDecorations()})})),this.toUnhook.add(o.onCancel(()=>{this.removeLinkDecorations(),this.currentWordAtPosition=null}))}static get(e){return e.getContribution(WS.ID)}async startFindDefinitionFromCursor(e){await this.startFindDefinition(e),this.toUnhookForKeyboard.add(this.editor.onDidChangeCursorPosition(()=>{this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear()})),this.toUnhookForKeyboard.add(this.editor.onKeyDown(t=>{t&&(this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear())}))}startFindDefinitionFromMouse(e,t){if(e.target.type===9&&this.linkDecorations.length>0)return;if(!this.editor.hasModel()||!this.isEnabled(e,t)){this.currentWordAtPosition=null,this.removeLinkDecorations();return}const i=e.target.position;this.startFindDefinition(i)}async startFindDefinition(e){var t;this.toUnhookForKeyboard.clear();const i=e?(t=this.editor.getModel())===null||t===void 0?void 0:t.getWordAtPosition(e):null;if(!i){this.currentWordAtPosition=null,this.removeLinkDecorations();return}if(this.currentWordAtPosition&&this.currentWordAtPosition.startColumn===i.startColumn&&this.currentWordAtPosition.endColumn===i.endColumn&&this.currentWordAtPosition.word===i.word)return;this.currentWordAtPosition=i;const s=new ihe(this.editor,15);this.previousPromise&&(this.previousPromise.cancel(),this.previousPromise=null),this.previousPromise=Xs(a=>this.findDefinition(e,a));let o;try{o=await this.previousPromise}catch(a){Mt(a);return}if(!o||!o.length||!s.validate(this.editor)){this.removeLinkDecorations();return}const r=o[0].originSelectionRange?A.lift(o[0].originSelectionRange):new A(e.lineNumber,i.startColumn,e.lineNumber,i.endColumn);if(o.length>1){let a=r;for(const{originSelectionRange:l}of o)l&&(a=A.plusRange(a,l));this.addDecoration(a,new $o().appendText(v(\"multipleResults\",\"Click to show {0} definitions.\",o.length)))}else{const a=o[0];if(!a.uri)return;this.textModelResolverService.createModelReference(a.uri).then(l=>{if(!l.object||!l.object.textEditorModel){l.dispose();return}const{object:{textEditorModel:c}}=l,{startLineNumber:d}=a.range;if(d<1||d>c.getLineCount()){l.dispose();return}const u=this.getPreviewValue(c,d,a),h=this.languageService.guessLanguageIdByFilepathOrFirstLine(c.uri);this.addDecoration(r,u?new $o().appendCodeblock(h||\"\",u):void 0),l.dispose()})}}getPreviewValue(e,t,i){let s=i.range;return s.endLineNumber-s.startLineNumber>=WS.MAX_SOURCE_PREVIEW_LINES&&(s=this.getPreviewRangeBasedOnIndentation(e,t)),this.stripIndentationFromPreviewRange(e,t,s)}stripIndentationFromPreviewRange(e,t,i){let o=e.getLineFirstNonWhitespaceColumn(t);for(let a=t+1;a<i.endLineNumber;a++){const l=e.getLineFirstNonWhitespaceColumn(a);o=Math.min(o,l)}return e.getValueInRange(i).replace(new RegExp(`^\\\\s{${o-1}}`,\"gm\"),\"\").trim()}getPreviewRangeBasedOnIndentation(e,t){const i=e.getLineFirstNonWhitespaceColumn(t),s=Math.min(e.getLineCount(),t+WS.MAX_SOURCE_PREVIEW_LINES);let o=t+1;for(;o<s;o++){const r=e.getLineFirstNonWhitespaceColumn(o);if(i===r)break}return new A(t,1,o+1,1)}addDecoration(e,t){const i={range:e,options:{description:\"goto-definition-link\",inlineClassName:\"goto-definition-link\",hoverMessage:t}};this.linkDecorations.set([i])}removeLinkDecorations(){this.linkDecorations.clear()}isEnabled(e,t){var i;return this.editor.hasModel()&&e.isLeftClick&&e.isNoneOrSingleMouseDown&&e.target.type===6&&!(((i=e.target.detail.injectedText)===null||i===void 0?void 0:i.options)instanceof $m)&&(e.hasTriggerModifier||(t?t.keyCodeIsTriggerKey:!1))&&this.languageFeaturesService.definitionProvider.has(this.editor.getModel())}findDefinition(e,t){const i=this.editor.getModel();return i?WP(this.languageFeaturesService.definitionProvider,i,e,t):Promise.resolve(null)}gotoDefinition(e,t){return this.editor.setPosition(e),this.editor.invokeWithinContext(i=>{const s=!t&&this.editor.getOption(88)&&!this.isInPeekEditor(i);return new YD({openToSide:t,openInPeek:s,muteMessage:!0},{title:{value:\"\",original:\"\"},id:\"\",precondition:void 0}).run(i)})}isInPeekEditor(e){const t=e.get(Ct);return da.inPeekEditor.getValue(t)}dispose(){this.toUnhook.dispose(),this.toUnhookForKeyboard.dispose()}};M0.ID=\"editor.contrib.gotodefinitionatposition\";M0.MAX_SOURCE_PREVIEW_LINES=8;M0=WS=Tet([_3(1,fa),_3(2,An),_3(3,Xe)],M0);bi(M0.ID,M0,2);var Lge=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},xR=function(n,e){return function(t,i){e(t,i,n)}};class Bte{constructor(e,t,i){this.marker=e,this.index=t,this.total=i}}let RW=class{constructor(e,t,i){this._markerService=t,this._configService=i,this._onDidChange=new X,this.onDidChange=this._onDidChange.event,this._dispoables=new be,this._markers=[],this._nextIdx=-1,pt.isUri(e)?this._resourceFilter=a=>a.toString()===e.toString():e&&(this._resourceFilter=e);const s=this._configService.getValue(\"problems.sortOrder\"),o=(a,l)=>{let c=dL(a.resource.toString(),l.resource.toString());return c===0&&(s===\"position\"?c=A.compareRangesUsingStarts(a,l)||Qn.compare(a.severity,l.severity):c=Qn.compare(a.severity,l.severity)||A.compareRangesUsingStarts(a,l)),c},r=()=>{this._markers=this._markerService.read({resource:pt.isUri(e)?e:void 0,severities:Qn.Error|Qn.Warning|Qn.Info}),typeof e==\"function\"&&(this._markers=this._markers.filter(a=>this._resourceFilter(a.resource))),this._markers.sort(o)};r(),this._dispoables.add(t.onMarkerChanged(a=>{(!this._resourceFilter||a.some(l=>this._resourceFilter(l)))&&(r(),this._nextIdx=-1,this._onDidChange.fire())}))}dispose(){this._dispoables.dispose(),this._onDidChange.dispose()}matches(e){return!this._resourceFilter&&!e?!0:!this._resourceFilter||!e?!1:this._resourceFilter(e)}get selected(){const e=this._markers[this._nextIdx];return e&&new Bte(e,this._nextIdx+1,this._markers.length)}_initIdx(e,t,i){let s=!1,o=this._markers.findIndex(r=>r.resource.toString()===e.uri.toString());o<0&&(o=tL(this._markers,{resource:e.uri},(r,a)=>dL(r.resource.toString(),a.resource.toString())),o<0&&(o=~o));for(let r=o;r<this._markers.length;r++){let a=A.lift(this._markers[r]);if(a.isEmpty()){const l=e.getWordAtPosition(a.getStartPosition());l&&(a=new A(a.startLineNumber,l.startColumn,a.startLineNumber,l.endColumn))}if(t&&(a.containsPosition(t)||t.isBeforeOrEqual(a.getStartPosition()))){this._nextIdx=r,s=!0;break}if(this._markers[r].resource.toString()!==e.uri.toString())break}s||(this._nextIdx=i?0:this._markers.length-1),this._nextIdx<0&&(this._nextIdx=this._markers.length-1)}resetIndex(){this._nextIdx=-1}move(e,t,i){if(this._markers.length===0)return!1;const s=this._nextIdx;return this._nextIdx===-1?this._initIdx(t,i,e):e?this._nextIdx=(this._nextIdx+1)%this._markers.length:e||(this._nextIdx=(this._nextIdx-1+this._markers.length)%this._markers.length),s!==this._nextIdx}find(e,t){let i=this._markers.findIndex(s=>s.resource.toString()===e.toString());if(!(i<0)){for(;i<this._markers.length;i++)if(A.containsPosition(this._markers[i],t))return new Bte(this._markers[i],i+1,this._markers.length)}}};RW=Lge([xR(1,Uh),xR(2,qt)],RW);const kge=Jt(\"IMarkerNavigationService\");let MW=class{constructor(e,t){this._markerService=e,this._configService=t,this._provider=new Tr}getMarkerList(e){for(const t of this._provider){const i=t.getMarkerList(e);if(i)return i}return new RW(e,this._markerService,this._configService)}};MW=Lge([xR(0,Uh),xR(1,qt)],MW);ai(kge,MW,1);var PW;(function(n){function e(t){switch(t){case us.Ignore:return\"severity-ignore \"+_t.asClassName(Te.info);case us.Info:return _t.asClassName(Te.info);case us.Warning:return _t.asClassName(Te.warning);case us.Error:return _t.asClassName(Te.error);default:return\"\"}}n.className=e})(PW||(PW={}));var Net=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Gb=function(n,e){return function(t,i){e(t,i,n)}},OW;class Aet{constructor(e,t,i,s,o){this._openerService=s,this._labelService=o,this._lines=0,this._longestLineLength=0,this._relatedDiagnostics=new WeakMap,this._disposables=new be,this._editor=t;const r=document.createElement(\"div\");r.className=\"descriptioncontainer\",this._messageBlock=document.createElement(\"div\"),this._messageBlock.classList.add(\"message\"),this._messageBlock.setAttribute(\"aria-live\",\"assertive\"),this._messageBlock.setAttribute(\"role\",\"alert\"),r.appendChild(this._messageBlock),this._relatedBlock=document.createElement(\"div\"),r.appendChild(this._relatedBlock),this._disposables.add(rs(this._relatedBlock,\"click\",a=>{a.preventDefault();const l=this._relatedDiagnostics.get(a.target);l&&i(l)})),this._scrollable=new tce(r,{horizontal:1,vertical:1,useShadows:!1,horizontalScrollbarSize:6,verticalScrollbarSize:6}),e.appendChild(this._scrollable.getDomNode()),this._disposables.add(this._scrollable.onScroll(a=>{r.style.left=`-${a.scrollLeft}px`,r.style.top=`-${a.scrollTop}px`})),this._disposables.add(this._scrollable)}dispose(){tn(this._disposables)}update(e){const{source:t,message:i,relatedInformation:s,code:o}=e;let r=((t==null?void 0:t.length)||0)+2;o&&(typeof o==\"string\"?r+=o.length:r+=o.value.length);const a=Wh(i);this._lines=a.length,this._longestLineLength=0;for(const h of a)this._longestLineLength=Math.max(h.length+r,this._longestLineLength);wo(this._messageBlock),this._messageBlock.setAttribute(\"aria-label\",this.getAriaLabel(e)),this._editor.applyFontInfo(this._messageBlock);let l=this._messageBlock;for(const h of a)l=document.createElement(\"div\"),l.innerText=h,h===\"\"&&(l.style.height=this._messageBlock.style.lineHeight),this._messageBlock.appendChild(l);if(t||o){const h=document.createElement(\"span\");if(h.classList.add(\"details\"),l.appendChild(h),t){const f=document.createElement(\"span\");f.innerText=t,f.classList.add(\"source\"),h.appendChild(f)}if(o)if(typeof o==\"string\"){const f=document.createElement(\"span\");f.innerText=`(${o})`,f.classList.add(\"code\"),h.appendChild(f)}else{this._codeLink=ke(\"a.code-link\"),this._codeLink.setAttribute(\"href\",`${o.target.toString()}`),this._codeLink.onclick=g=>{this._openerService.open(o.target,{allowCommands:!0}),g.preventDefault(),g.stopPropagation()};const f=we(this._codeLink,ke(\"span\"));f.innerText=o.value,h.appendChild(this._codeLink)}}if(wo(this._relatedBlock),this._editor.applyFontInfo(this._relatedBlock),Zo(s)){const h=this._relatedBlock.appendChild(document.createElement(\"div\"));h.style.paddingTop=`${Math.floor(this._editor.getOption(67)*.66)}px`,this._lines+=1;for(const f of s){const g=document.createElement(\"div\"),p=document.createElement(\"a\");p.classList.add(\"filename\"),p.innerText=`${this._labelService.getUriBasenameLabel(f.resource)}(${f.startLineNumber}, ${f.startColumn}): `,p.title=this._labelService.getUriLabel(f.resource),this._relatedDiagnostics.set(p,f);const _=document.createElement(\"span\");_.innerText=f.message,g.appendChild(p),g.appendChild(_),this._lines+=1,h.appendChild(g)}}const c=this._editor.getOption(50),d=Math.ceil(c.typicalFullwidthCharacterWidth*this._longestLineLength*.75),u=c.lineHeight*this._lines;this._scrollable.setScrollDimensions({scrollWidth:d,scrollHeight:u})}layout(e,t){this._scrollable.getDomNode().style.height=`${e}px`,this._scrollable.getDomNode().style.width=`${t}px`,this._scrollable.setScrollDimensions({width:t,height:e})}getHeightInLines(){return Math.min(17,this._lines)}getAriaLabel(e){let t=\"\";switch(e.severity){case Qn.Error:t=v(\"Error\",\"Error\");break;case Qn.Warning:t=v(\"Warning\",\"Warning\");break;case Qn.Info:t=v(\"Info\",\"Info\");break;case Qn.Hint:t=v(\"Hint\",\"Hint\");break}let i=v(\"marker aria\",\"{0} at {1}. \",t,e.startLineNumber+\":\"+e.startColumn);const s=this._editor.getModel();return s&&e.startLineNumber<=s.getLineCount()&&e.startLineNumber>=1&&(i=`${s.getLineContent(e.startLineNumber)}, ${i}`),i}}let hw=OW=class extends hR{constructor(e,t,i,s,o,r,a){super(e,{showArrow:!0,showFrame:!0,isAccessible:!0,frameWidth:1},o),this._themeService=t,this._openerService=i,this._menuService=s,this._contextKeyService=r,this._labelService=a,this._callOnDispose=new be,this._onDidSelectRelatedInformation=new X,this.onDidSelectRelatedInformation=this._onDidSelectRelatedInformation.event,this._severity=Qn.Warning,this._backgroundColor=le.white,this._applyTheme(t.getColorTheme()),this._callOnDispose.add(t.onDidColorThemeChange(this._applyTheme.bind(this))),this.create()}_applyTheme(e){this._backgroundColor=e.getColor(Oet);let t=FW,i=Ret;this._severity===Qn.Warning?(t=HN,i=Met):this._severity===Qn.Info&&(t=BW,i=Pet);const s=e.getColor(t),o=e.getColor(i);this.style({arrowColor:s,frameColor:s,headerBackgroundColor:o,primaryHeadingColor:e.getColor(Ofe),secondaryHeadingColor:e.getColor(Ffe)})}_applyStyles(){this._parentContainer&&(this._parentContainer.style.backgroundColor=this._backgroundColor?this._backgroundColor.toString():\"\"),super._applyStyles()}dispose(){this._callOnDispose.dispose(),super.dispose()}_fillHead(e){super._fillHead(e),this._disposables.add(this._actionbarWidget.actionRunner.onWillRun(s=>this.editor.focus()));const t=[],i=this._menuService.createMenu(OW.TitleMenu,this._contextKeyService);rP(i,void 0,t),this._actionbarWidget.push(t,{label:!1,icon:!0,index:0}),i.dispose()}_fillTitleIcon(e){this._icon=we(e,ke(\"\"))}_fillBody(e){this._parentContainer=e,e.classList.add(\"marker-widget\"),this._parentContainer.tabIndex=0,this._parentContainer.setAttribute(\"role\",\"tooltip\"),this._container=document.createElement(\"div\"),e.appendChild(this._container),this._message=new Aet(this._container,this.editor,t=>this._onDidSelectRelatedInformation.fire(t),this._openerService,this._labelService),this._disposables.add(this._message)}show(){throw new Error(\"call showAtMarker\")}showAtMarker(e,t,i){this._container.classList.remove(\"stale\"),this._message.update(e),this._severity=e.severity,this._applyTheme(this._themeService.getColorTheme());const s=A.lift(e),o=this.editor.getPosition(),r=o&&s.containsPosition(o)?o:s.getStartPosition();super.show(r,this.computeRequiredHeight());const a=this.editor.getModel();if(a){const l=i>1?v(\"problems\",\"{0} of {1} problems\",t,i):v(\"change\",\"{0} of {1} problem\",t,i);this.setTitle(dc(a.uri),l)}this._icon.className=`codicon ${PW.className(Qn.toSeverity(this._severity))}`,this.editor.revealPositionNearTop(r,0),this.editor.focus()}updateMarker(e){this._container.classList.remove(\"stale\"),this._message.update(e)}showStale(){this._container.classList.add(\"stale\"),this._relayout()}_doLayoutBody(e,t){super._doLayoutBody(e,t),this._heightInPixel=e,this._message.layout(e,t),this._container.style.height=`${e}px`}_onWidth(e){this._message.layout(this._heightInPixel,e)}_relayout(){super._relayout(this.computeRequiredHeight())}computeRequiredHeight(){return 3+this._message.getHeightInLines()}};hw.TitleMenu=new R(\"gotoErrorTitleMenu\");hw=OW=Net([Gb(1,js),Gb(2,$a),Gb(3,Dl),Gb(4,ht),Gb(5,Ct),Gb(6,ZC)],hw);const Wte=xL(lh,bFe),Hte=xL(hr,LL),Vte=xL(sa,kL),FW=V(\"editorMarkerNavigationError.background\",{dark:Wte,light:Wte,hcDark:ti,hcLight:ti},v(\"editorMarkerNavigationError\",\"Editor marker navigation widget error color.\")),Ret=V(\"editorMarkerNavigationError.headerBackground\",{dark:ut(FW,.1),light:ut(FW,.1),hcDark:null,hcLight:null},v(\"editorMarkerNavigationErrorHeaderBackground\",\"Editor marker navigation widget error heading background.\")),HN=V(\"editorMarkerNavigationWarning.background\",{dark:Hte,light:Hte,hcDark:ti,hcLight:ti},v(\"editorMarkerNavigationWarning\",\"Editor marker navigation widget warning color.\")),Met=V(\"editorMarkerNavigationWarning.headerBackground\",{dark:ut(HN,.1),light:ut(HN,.1),hcDark:\"#0C141F\",hcLight:ut(HN,.2)},v(\"editorMarkerNavigationWarningBackground\",\"Editor marker navigation widget warning heading background.\")),BW=V(\"editorMarkerNavigationInfo.background\",{dark:Vte,light:Vte,hcDark:ti,hcLight:ti},v(\"editorMarkerNavigationInfo\",\"Editor marker navigation widget info color.\")),Pet=V(\"editorMarkerNavigationInfo.headerBackground\",{dark:ut(BW,.1),light:ut(BW,.1),hcDark:null,hcLight:null},v(\"editorMarkerNavigationInfoHeaderBackground\",\"Editor marker navigation widget info heading background.\")),Oet=V(\"editorMarkerNavigation.background\",{dark:Ys,light:Ys,hcDark:Ys,hcLight:Ys},v(\"editorMarkerNavigationBackground\",\"Editor marker navigation widget background.\"));var Fet=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},FT=function(n,e){return function(t,i){e(t,i,n)}},HS;let t_=HS=class{static get(e){return e.getContribution(HS.ID)}constructor(e,t,i,s,o){this._markerNavigationService=t,this._contextKeyService=i,this._editorService=s,this._instantiationService=o,this._sessionDispoables=new be,this._editor=e,this._widgetVisible=Dge.bindTo(this._contextKeyService)}dispose(){this._cleanUp(),this._sessionDispoables.dispose()}_cleanUp(){this._widgetVisible.reset(),this._sessionDispoables.clear(),this._widget=void 0,this._model=void 0}_getOrCreateModel(e){if(this._model&&this._model.matches(e))return this._model;let t=!1;return this._model&&(t=!0,this._cleanUp()),this._model=this._markerNavigationService.getMarkerList(e),t&&this._model.move(!0,this._editor.getModel(),this._editor.getPosition()),this._widget=this._instantiationService.createInstance(hw,this._editor),this._widget.onDidClose(()=>this.close(),this,this._sessionDispoables),this._widgetVisible.set(!0),this._sessionDispoables.add(this._model),this._sessionDispoables.add(this._widget),this._sessionDispoables.add(this._editor.onDidChangeCursorPosition(i=>{var s,o,r;(!(!((s=this._model)===null||s===void 0)&&s.selected)||!A.containsPosition((o=this._model)===null||o===void 0?void 0:o.selected.marker,i.position))&&((r=this._model)===null||r===void 0||r.resetIndex())})),this._sessionDispoables.add(this._model.onDidChange(()=>{if(!this._widget||!this._widget.position||!this._model)return;const i=this._model.find(this._editor.getModel().uri,this._widget.position);i?this._widget.updateMarker(i.marker):this._widget.showStale()})),this._sessionDispoables.add(this._widget.onDidSelectRelatedInformation(i=>{this._editorService.openCodeEditor({resource:i.resource,options:{pinned:!0,revealIfOpened:!0,selection:A.lift(i).collapseToStart()}},this._editor),this.close(!1)})),this._sessionDispoables.add(this._editor.onDidChangeModel(()=>this._cleanUp())),this._model}close(e=!0){this._cleanUp(),e&&this._editor.focus()}showAtMarker(e){if(this._editor.hasModel()){const t=this._getOrCreateModel(this._editor.getModel().uri);t.resetIndex(),t.move(!0,this._editor.getModel(),new ee(e.startLineNumber,e.startColumn)),t.selected&&this._widget.showAtMarker(t.selected.marker,t.selected.index,t.selected.total)}}async nagivate(e,t){var i,s;if(this._editor.hasModel()){const o=this._getOrCreateModel(t?void 0:this._editor.getModel().uri);if(o.move(e,this._editor.getModel(),this._editor.getPosition()),!o.selected)return;if(o.selected.marker.resource.toString()!==this._editor.getModel().uri.toString()){this._cleanUp();const r=await this._editorService.openCodeEditor({resource:o.selected.marker.resource,options:{pinned:!1,revealIfOpened:!0,selectionRevealType:2,selection:o.selected.marker}},this._editor);r&&((i=HS.get(r))===null||i===void 0||i.close(),(s=HS.get(r))===null||s===void 0||s.nagivate(e,t))}else this._widget.showAtMarker(o.selected.marker,o.selected.index,o.selected.total)}}};t_.ID=\"editor.contrib.markerController\";t_=HS=Fet([FT(1,kge),FT(2,Ct),FT(3,vi),FT(4,ht)],t_);class iO extends Ke{constructor(e,t,i){super(i),this._next=e,this._multiFile=t}async run(e,t){var i;t.hasModel()&&((i=t_.get(t))===null||i===void 0||i.nagivate(this._next,this._multiFile))}}class Cm extends iO{constructor(){super(!0,!1,{id:Cm.ID,label:Cm.LABEL,alias:\"Go to Next Problem (Error, Warning, Info)\",precondition:void 0,kbOpts:{kbExpr:W.focus,primary:578,weight:100},menuOpts:{menuId:hw.TitleMenu,title:Cm.LABEL,icon:Jn(\"marker-navigation-next\",Te.arrowDown,v(\"nextMarkerIcon\",\"Icon for goto next marker.\")),group:\"navigation\",order:1}})}}Cm.ID=\"editor.action.marker.next\";Cm.LABEL=v(\"markerAction.next.label\",\"Go to Next Problem (Error, Warning, Info)\");class e0 extends iO{constructor(){super(!1,!1,{id:e0.ID,label:e0.LABEL,alias:\"Go to Previous Problem (Error, Warning, Info)\",precondition:void 0,kbOpts:{kbExpr:W.focus,primary:1602,weight:100},menuOpts:{menuId:hw.TitleMenu,title:e0.LABEL,icon:Jn(\"marker-navigation-previous\",Te.arrowUp,v(\"previousMarkerIcon\",\"Icon for goto previous marker.\")),group:\"navigation\",order:2}})}}e0.ID=\"editor.action.marker.prev\";e0.LABEL=v(\"markerAction.previous.label\",\"Go to Previous Problem (Error, Warning, Info)\");class Bet extends iO{constructor(){super(!0,!0,{id:\"editor.action.marker.nextInFiles\",label:v(\"markerAction.nextInFiles.label\",\"Go to Next Problem in Files (Error, Warning, Info)\"),alias:\"Go to Next Problem in Files (Error, Warning, Info)\",precondition:void 0,kbOpts:{kbExpr:W.focus,primary:66,weight:100},menuOpts:{menuId:R.MenubarGoMenu,title:v({},\"Next &&Problem\"),group:\"6_problem_nav\",order:1}})}}class Wet extends iO{constructor(){super(!1,!0,{id:\"editor.action.marker.prevInFiles\",label:v(\"markerAction.previousInFiles.label\",\"Go to Previous Problem in Files (Error, Warning, Info)\"),alias:\"Go to Previous Problem in Files (Error, Warning, Info)\",precondition:void 0,kbOpts:{kbExpr:W.focus,primary:1090,weight:100},menuOpts:{menuId:R.MenubarGoMenu,title:v({},\"Previous &&Problem\"),group:\"6_problem_nav\",order:2}})}}bi(t_.ID,t_,4);xe(Cm);xe(e0);xe(Bet);xe(Wet);const Dge=new He(\"markersNavigationVisible\",!1),Het=Us.bindToContribution(t_.get);Fe(new Het({id:\"closeMarkersNavigation\",precondition:Dge,handler:n=>n.close(),kbOpts:{weight:150,kbExpr:W.focus,primary:9,secondary:[1033]}}));var xd;(function(n){n.NoAutoFocus=\"noAutoFocus\",n.FocusIfVisible=\"focusIfVisible\",n.AutoFocusImmediately=\"autoFocusImmediately\"})(xd||(xd={}));class Vet extends Ke{constructor(){super({id:Lfe,label:v({},\"Show or Focus Hover\"),metadata:{description:Nt(\"showOrFocusHoverDescription\",\"Show or focus the editor hover which shows documentation, references, and other content for a symbol at the current cursor position.\"),args:[{name:\"args\",schema:{type:\"object\",properties:{focus:{description:\"Controls if and when the hover should take focus upon being triggered by this action.\",enum:[xd.NoAutoFocus,xd.FocusIfVisible,xd.AutoFocusImmediately],enumDescriptions:[v(\"showOrFocusHover.focus.noAutoFocus\",\"The hover will not automatically take focus.\"),v(\"showOrFocusHover.focus.focusIfVisible\",\"The hover will take focus only if it is already visible.\"),v(\"showOrFocusHover.focus.autoFocusImmediately\",\"The hover will automatically take focus when it appears.\")],default:xd.FocusIfVisible}}}}]},alias:\"Show or Focus Hover\",precondition:void 0,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2087),weight:100}})}run(e,t,i){if(!t.hasModel())return;const s=gr.get(t);if(!s)return;const o=i==null?void 0:i.focus;let r=xd.FocusIfVisible;Object.values(xd).includes(o)?r=o:typeof o==\"boolean\"&&o&&(r=xd.AutoFocusImmediately);const a=c=>{const d=t.getPosition(),u=new A(d.lineNumber,d.column,d.lineNumber,d.column);s.showContentHover(u,1,1,c)},l=t.getOption(2)===2;s.isHoverVisible?r!==xd.NoAutoFocus?s.focus():a(l):a(l||r===xd.AutoFocusImmediately)}}class zet extends Ke{constructor(){super({id:iYe,label:v({},\"Show Definition Preview Hover\"),alias:\"Show Definition Preview Hover\",precondition:void 0,metadata:{description:Nt(\"showDefinitionPreviewHoverDescription\",\"Show the definition preview hover in the editor.\")}})}run(e,t){const i=gr.get(t);if(!i)return;const s=t.getPosition();if(!s)return;const o=new A(s.lineNumber,s.column,s.lineNumber,s.column),r=M0.get(t);if(!r)return;r.startFindDefinitionFromCursor(s).then(()=>{i.showContentHover(o,1,1,!0)})}}class $et extends Ke{constructor(){super({id:nYe,label:v({},\"Scroll Up Hover\"),alias:\"Scroll Up Hover\",precondition:W.hoverFocused,kbOpts:{kbExpr:W.hoverFocused,primary:16,weight:100},metadata:{description:Nt(\"scrollUpHoverDescription\",\"Scroll up the editor hover.\")}})}run(e,t){const i=gr.get(t);i&&i.scrollUp()}}class Uet extends Ke{constructor(){super({id:sYe,label:v({},\"Scroll Down Hover\"),alias:\"Scroll Down Hover\",precondition:W.hoverFocused,kbOpts:{kbExpr:W.hoverFocused,primary:18,weight:100},metadata:{description:Nt(\"scrollDownHoverDescription\",\"Scroll down the editor hover.\")}})}run(e,t){const i=gr.get(t);i&&i.scrollDown()}}class jet extends Ke{constructor(){super({id:oYe,label:v({},\"Scroll Left Hover\"),alias:\"Scroll Left Hover\",precondition:W.hoverFocused,kbOpts:{kbExpr:W.hoverFocused,primary:15,weight:100},metadata:{description:Nt(\"scrollLeftHoverDescription\",\"Scroll left the editor hover.\")}})}run(e,t){const i=gr.get(t);i&&i.scrollLeft()}}class Ket extends Ke{constructor(){super({id:rYe,label:v({},\"Scroll Right Hover\"),alias:\"Scroll Right Hover\",precondition:W.hoverFocused,kbOpts:{kbExpr:W.hoverFocused,primary:17,weight:100},metadata:{description:Nt(\"scrollRightHoverDescription\",\"Scroll right the editor hover.\")}})}run(e,t){const i=gr.get(t);i&&i.scrollRight()}}class qet extends Ke{constructor(){super({id:aYe,label:v({},\"Page Up Hover\"),alias:\"Page Up Hover\",precondition:W.hoverFocused,kbOpts:{kbExpr:W.hoverFocused,primary:11,secondary:[528],weight:100},metadata:{description:Nt(\"pageUpHoverDescription\",\"Page up the editor hover.\")}})}run(e,t){const i=gr.get(t);i&&i.pageUp()}}class Get extends Ke{constructor(){super({id:lYe,label:v({},\"Page Down Hover\"),alias:\"Page Down Hover\",precondition:W.hoverFocused,kbOpts:{kbExpr:W.hoverFocused,primary:12,secondary:[530],weight:100},metadata:{description:Nt(\"pageDownHoverDescription\",\"Page down the editor hover.\")}})}run(e,t){const i=gr.get(t);i&&i.pageDown()}}class Zet extends Ke{constructor(){super({id:cYe,label:v({},\"Go To Top Hover\"),alias:\"Go To Bottom Hover\",precondition:W.hoverFocused,kbOpts:{kbExpr:W.hoverFocused,primary:14,secondary:[2064],weight:100},metadata:{description:Nt(\"goToTopHoverDescription\",\"Go to the top of the editor hover.\")}})}run(e,t){const i=gr.get(t);i&&i.goToTop()}}class Yet extends Ke{constructor(){super({id:dYe,label:v({},\"Go To Bottom Hover\"),alias:\"Go To Bottom Hover\",precondition:W.hoverFocused,kbOpts:{kbExpr:W.hoverFocused,primary:13,secondary:[2066],weight:100},metadata:{description:Nt(\"goToBottomHoverDescription\",\"Go to the bottom of the editor hover.\")}})}run(e,t){const i=gr.get(t);i&&i.goToBottom()}}class Xet extends Ke{constructor(){super({id:NP,label:uYe,alias:\"Increase Hover Verbosity Level\",precondition:W.hoverVisible})}run(e,t,i){var s;(s=gr.get(t))===null||s===void 0||s.updateMarkdownHoverVerbosityLevel(rl.Increase,i==null?void 0:i.index,i==null?void 0:i.focus)}}class Qet extends Ke{constructor(){super({id:AP,label:hYe,alias:\"Decrease Hover Verbosity Level\",precondition:W.hoverVisible})}run(e,t,i){var s;(s=gr.get(t))===null||s===void 0||s.updateMarkdownHoverVerbosityLevel(rl.Decrease,i==null?void 0:i.index,i==null?void 0:i.focus)}}var Jet=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},v3=function(n,e){return function(t,i){e(t,i,n)}};const Mc=ke;class ett{constructor(e,t,i){this.owner=e,this.range=t,this.marker=i}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}const zte={type:1,filter:{include:kn.QuickFix},triggerAction:Fa.QuickFixHover};let WW=class{constructor(e,t,i,s){this._editor=e,this._markerDecorationsService=t,this._openerService=i,this._languageFeaturesService=s,this.hoverOrdinal=1,this.recentMarkerCodeActionsInfo=void 0}computeSync(e,t){if(!this._editor.hasModel()||e.type!==1&&!e.supportsMarkerHover)return[];const i=this._editor.getModel(),s=e.range.startLineNumber,o=i.getLineMaxColumn(s),r=[];for(const a of t){const l=a.range.startLineNumber===s?a.range.startColumn:1,c=a.range.endLineNumber===s?a.range.endColumn:o,d=this._markerDecorationsService.getMarker(i.uri,a);if(!d)continue;const u=new A(e.range.startLineNumber,l,e.range.startLineNumber,c);r.push(new ett(this,u,d))}return r}renderHoverParts(e,t){if(!t.length)return ne.None;const i=new be;t.forEach(o=>e.fragment.appendChild(this.renderMarkerHover(o,i)));const s=t.length===1?t[0]:t.sort((o,r)=>Qn.compare(o.marker.severity,r.marker.severity))[0];return this.renderMarkerStatusbar(e,s,i),i}renderMarkerHover(e,t){const i=Mc(\"div.hover-row\");i.tabIndex=0;const s=we(i,Mc(\"div.marker.hover-contents\")),{source:o,message:r,code:a,relatedInformation:l}=e.marker;this._editor.applyFontInfo(s);const c=we(s,Mc(\"span\"));if(c.style.whiteSpace=\"pre-wrap\",c.innerText=r,o||a)if(a&&typeof a!=\"string\"){const d=Mc(\"span\");if(o){const g=we(d,Mc(\"span\"));g.innerText=o}const u=we(d,Mc(\"a.code-link\"));u.setAttribute(\"href\",a.target.toString()),t.add(ce(u,\"click\",g=>{this._openerService.open(a.target,{allowCommands:!0}),g.preventDefault(),g.stopPropagation()}));const h=we(u,Mc(\"span\"));h.innerText=a.value;const f=we(s,d);f.style.opacity=\"0.6\",f.style.paddingLeft=\"6px\"}else{const d=we(s,Mc(\"span\"));d.style.opacity=\"0.6\",d.style.paddingLeft=\"6px\",d.innerText=o&&a?`${o}(${a})`:o||`(${a})`}if(Zo(l))for(const{message:d,resource:u,startLineNumber:h,startColumn:f}of l){const g=we(s,Mc(\"div\"));g.style.marginTop=\"8px\";const p=we(g,Mc(\"a\"));p.innerText=`${dc(u)}(${h}, ${f}): `,p.style.cursor=\"pointer\",t.add(ce(p,\"click\",b=>{b.stopPropagation(),b.preventDefault(),this._openerService&&this._openerService.open(u,{fromUserGesture:!0,editorOptions:{selection:{startLineNumber:h,startColumn:f}}}).catch(Mt)}));const _=we(g,Mc(\"span\"));_.innerText=d,this._editor.applyFontInfo(_)}return i}renderMarkerStatusbar(e,t,i){if(t.marker.severity===Qn.Error||t.marker.severity===Qn.Warning||t.marker.severity===Qn.Info){const s=t_.get(this._editor);s&&e.statusBar.addAction({label:v(\"view problem\",\"View Problem\"),commandId:Cm.ID,run:()=>{e.hide(),s.showAtMarker(t.marker),this._editor.focus()}})}if(!this._editor.getOption(91)){const s=e.statusBar.append(Mc(\"div\"));this.recentMarkerCodeActionsInfo&&(TA.makeKey(this.recentMarkerCodeActionsInfo.marker)===TA.makeKey(t.marker)?this.recentMarkerCodeActionsInfo.hasCodeActions||(s.textContent=v(\"noQuickFixes\",\"No quick fixes available\")):this.recentMarkerCodeActionsInfo=void 0);const o=this.recentMarkerCodeActionsInfo&&!this.recentMarkerCodeActionsInfo.hasCodeActions?ne.None:Om(()=>s.textContent=v(\"checkingForQuickFixes\",\"Checking for quick fixes...\"),200,i);s.textContent||(s.textContent=\" \");const r=this.getCodeActions(t.marker);i.add(dt(()=>r.cancel())),r.then(a=>{if(o.dispose(),this.recentMarkerCodeActionsInfo={marker:t.marker,hasCodeActions:a.validActions.length>0},!this.recentMarkerCodeActionsInfo.hasCodeActions){a.dispose(),s.textContent=v(\"noQuickFixes\",\"No quick fixes available\");return}s.style.display=\"none\";let l=!1;i.add(dt(()=>{l||a.dispose()})),e.statusBar.addAction({label:v(\"quick fixes\",\"Quick Fix...\"),commandId:pU,run:c=>{l=!0;const d=qm.get(this._editor),u=bs(c);e.hide(),d==null||d.showCodeActions(zte,a,{x:u.left,y:u.top,width:u.width,height:u.height})}})},Mt)}}getCodeActions(e){return Xs(t=>Nx(this._languageFeaturesService.codeActionProvider,this._editor.getModel(),new A(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),zte,bg.None,t))}};WW=Jet([v3(1,xz),v3(2,$a),v3(3,Xe)],WW);var $te;(function(n){n.intro=v(\"intro\",\"Focus on the hover widget to cycle through the hover parts with the Tab key.\"),n.increaseVerbosity=v(\"increaseVerbosity\",\"- The focused hover part verbosity level can be increased with the Increase Hover Verbosity command<keybinding:{0}>.\",NP),n.decreaseVerbosity=v(\"decreaseVerbosity\",\"- The focused hover part verbosity level can be decreased with the Decrease Hover Verbosity command<keybinding:{0}>.\",AP),n.hoverContent=v(\"contentHover\",\"The last focused hover content is the following.\")})($te||($te={}));class ttt{dispose(){var e;(e=this._provider)===null||e===void 0||e.dispose()}}class itt{dispose(){var e;(e=this._provider)===null||e===void 0||e.dispose()}}class ntt{dispose(){}}bi(gr.ID,gr,2);xe(Vet);xe(zet);xe($et);xe(Uet);xe(jet);xe(Ket);xe(qet);xe(Get);xe(Zet);xe(Yet);xe(Xet);xe(Qet);b_.register(gk);b_.register(WW);mc((n,e)=>{const t=n.getColor(zle);t&&(e.addRule(`.monaco-editor .monaco-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${t.transparent(.5)}; }`),e.addRule(`.monaco-editor .monaco-hover hr { border-top: 1px solid ${t.transparent(.5)}; }`),e.addRule(`.monaco-editor .monaco-hover hr { border-bottom: 0px solid ${t.transparent(.5)}; }`))});tO.register(new ttt);tO.register(new itt);tO.register(new ntt);function wa(n,e){let t=0;for(let i=0;i<n.length;i++)n.charAt(i)===\"\t\"?t+=e:t++;return t}function Px(n,e,t){n=n<0?0:n;let i=\"\";if(!t){const s=Math.floor(n/e);n=n%e;for(let o=0;o<s;o++)i+=\"\t\"}for(let s=0;s<n;s++)i+=\" \";return i}function Ige(n,e,t,i){if(n.getLineCount()===1&&n.getLineMaxColumn(1)===1)return[];const s=e.getLanguageConfiguration(n.getLanguageId()).indentRulesSupport;if(!s)return[];const o=new Fz(n,s,e);for(i=Math.min(i,n.getLineCount());t<=i&&o.shouldIgnore(t);)t++;if(t>i-1)return[];const{tabSize:r,indentSize:a,insertSpaces:l}=n.getOptions(),c=(p,_)=>(_=_||1,Zl.shiftIndent(p,p.length+_,r,a,l)),d=(p,_)=>(_=_||1,Zl.unshiftIndent(p,p.length+_,r,a,l)),u=[],h=n.getLineContent(t);let f=on(h),g=f;o.shouldIncrease(t)?(g=c(g),f=c(f)):o.shouldIndentNextLine(t)&&(g=c(g)),t++;for(let p=t;p<=i;p++){if(stt(n,p))continue;const _=n.getLineContent(p),b=on(_),w=g;o.shouldDecrease(p,w)&&(g=d(g),f=d(f)),b!==g&&u.push(Mn.replaceMove(new it(p,1,p,b.length+1),Pz(g,a,l))),!o.shouldIgnore(p)&&(o.shouldIncrease(p,w)?(f=c(f),g=f):o.shouldIndentNextLine(p,w)?g=c(g):g=f)}return u}function stt(n,e){return n.tokenization.isCheapToTokenize(e)?n.tokenization.getLineTokens(e).getStandardTokenType(0)===2:!1}var ott=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},rtt=function(n,e){return function(t,i){e(t,i,n)}};class nO extends Ke{constructor(){super({id:nO.ID,label:v(\"indentationToSpaces\",\"Convert Indentation to Spaces\"),alias:\"Convert Indentation to Spaces\",precondition:W.writable,metadata:{description:Nt(\"indentationToSpacesDescription\",\"Convert the tab indentation to spaces.\")}})}run(e,t){const i=t.getModel();if(!i)return;const s=i.getOptions(),o=t.getSelection();if(!o)return;const r=new utt(o,s.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[r]),t.pushUndoStop(),i.updateOptions({insertSpaces:!0})}}nO.ID=\"editor.action.indentationToSpaces\";class sO extends Ke{constructor(){super({id:sO.ID,label:v(\"indentationToTabs\",\"Convert Indentation to Tabs\"),alias:\"Convert Indentation to Tabs\",precondition:W.writable,metadata:{description:Nt(\"indentationToTabsDescription\",\"Convert the spaces indentation to tabs.\")}})}run(e,t){const i=t.getModel();if(!i)return;const s=i.getOptions(),o=t.getSelection();if(!o)return;const r=new htt(o,s.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[r]),t.pushUndoStop(),i.updateOptions({insertSpaces:!1})}}sO.ID=\"editor.action.indentationToTabs\";class HU extends Ke{constructor(e,t,i){super(i),this.insertSpaces=e,this.displaySizeOnly=t}run(e,t){const i=e.get(Cc),s=e.get(Pn),o=t.getModel();if(!o)return;const r=s.getCreationOptions(o.getLanguageId(),o.uri,o.isForSimpleWidget),a=o.getOptions(),l=[1,2,3,4,5,6,7,8].map(d=>({id:d.toString(),label:d.toString(),description:d===r.tabSize&&d===a.tabSize?v(\"configuredTabSize\",\"Configured Tab Size\"):d===r.tabSize?v(\"defaultTabSize\",\"Default Tab Size\"):d===a.tabSize?v(\"currentTabSize\",\"Current Tab Size\"):void 0})),c=Math.min(o.getOptions().tabSize-1,7);setTimeout(()=>{i.pick(l,{placeHolder:v({},\"Select Tab Size for Current File\"),activeItem:l[c]}).then(d=>{if(d&&o&&!o.isDisposed()){const u=parseInt(d.label,10);this.displaySizeOnly?o.updateOptions({tabSize:u}):o.updateOptions({tabSize:u,indentSize:u,insertSpaces:this.insertSpaces})}})},50)}}class oO extends HU{constructor(){super(!1,!1,{id:oO.ID,label:v(\"indentUsingTabs\",\"Indent Using Tabs\"),alias:\"Indent Using Tabs\",precondition:void 0,metadata:{description:Nt(\"indentUsingTabsDescription\",\"Use indentation with tabs.\")}})}}oO.ID=\"editor.action.indentUsingTabs\";class rO extends HU{constructor(){super(!0,!1,{id:rO.ID,label:v(\"indentUsingSpaces\",\"Indent Using Spaces\"),alias:\"Indent Using Spaces\",precondition:void 0,metadata:{description:Nt(\"indentUsingSpacesDescription\",\"Use indentation with spaces.\")}})}}rO.ID=\"editor.action.indentUsingSpaces\";class aO extends HU{constructor(){super(!0,!0,{id:aO.ID,label:v(\"changeTabDisplaySize\",\"Change Tab Display Size\"),alias:\"Change Tab Display Size\",precondition:void 0,metadata:{description:Nt(\"changeTabDisplaySizeDescription\",\"Change the space size equivalent of the tab.\")}})}}aO.ID=\"editor.action.changeTabDisplaySize\";class lO extends Ke{constructor(){super({id:lO.ID,label:v(\"detectIndentation\",\"Detect Indentation from Content\"),alias:\"Detect Indentation from Content\",precondition:void 0,metadata:{description:Nt(\"detectIndentationDescription\",\"Detect the indentation from content.\")}})}run(e,t){const i=e.get(Pn),s=t.getModel();if(!s)return;const o=i.getCreationOptions(s.getLanguageId(),s.uri,s.isForSimpleWidget);s.detectIndentation(o.insertSpaces,o.tabSize)}}lO.ID=\"editor.action.detectIndentation\";class att extends Ke{constructor(){super({id:\"editor.action.reindentlines\",label:v(\"editor.reindentlines\",\"Reindent Lines\"),alias:\"Reindent Lines\",precondition:W.writable,metadata:{description:Nt(\"editor.reindentlinesDescription\",\"Reindent the lines of the editor.\")}})}run(e,t){const i=e.get(gn),s=t.getModel();if(!s)return;const o=Ige(s,i,1,s.getLineCount());o.length>0&&(t.pushUndoStop(),t.executeEdits(this.id,o),t.pushUndoStop())}}class ltt extends Ke{constructor(){super({id:\"editor.action.reindentselectedlines\",label:v(\"editor.reindentselectedlines\",\"Reindent Selected Lines\"),alias:\"Reindent Selected Lines\",precondition:W.writable,metadata:{description:Nt(\"editor.reindentselectedlinesDescription\",\"Reindent the selected lines of the editor.\")}})}run(e,t){const i=e.get(gn),s=t.getModel();if(!s)return;const o=t.getSelections();if(o===null)return;const r=[];for(const a of o){let l=a.startLineNumber,c=a.endLineNumber;if(l!==c&&a.endColumn===1&&c--,l===1){if(l===c)continue}else l--;const d=Ige(s,i,l,c);r.push(...d)}r.length>0&&(t.pushUndoStop(),t.executeEdits(this.id,r),t.pushUndoStop())}}class ctt{constructor(e,t){this._initialSelection=t,this._edits=[],this._selectionId=null;for(const i of e)i.range&&typeof i.text==\"string\"&&this._edits.push(i)}getEditOperations(e,t){for(const s of this._edits)t.addEditOperation(A.lift(s.range),s.text);let i=!1;Array.isArray(this._edits)&&this._edits.length===1&&this._initialSelection.isEmpty()&&(this._edits[0].range.startColumn===this._initialSelection.endColumn&&this._edits[0].range.startLineNumber===this._initialSelection.endLineNumber?(i=!0,this._selectionId=t.trackSelection(this._initialSelection,!0)):this._edits[0].range.endColumn===this._initialSelection.startColumn&&this._edits[0].range.endLineNumber===this._initialSelection.startLineNumber&&(i=!0,this._selectionId=t.trackSelection(this._initialSelection,!1))),i||(this._selectionId=t.trackSelection(this._initialSelection))}computeCursorState(e,t){return t.getTrackedSelection(this._selectionId)}}let kk=class{constructor(e,t){this.editor=e,this._languageConfigurationService=t,this.callOnDispose=new be,this.callOnModel=new be,this.callOnDispose.add(e.onDidChangeConfiguration(()=>this.update())),this.callOnDispose.add(e.onDidChangeModel(()=>this.update())),this.callOnDispose.add(e.onDidChangeModelLanguage(()=>this.update()))}update(){this.callOnModel.clear(),!(this.editor.getOption(12)<4||this.editor.getOption(55))&&this.editor.hasModel()&&this.callOnModel.add(this.editor.onDidPaste(({range:e})=>{this.trigger(e)}))}trigger(e){const t=this.editor.getSelections();if(t===null||t.length>1)return;const i=this.editor.getModel();if(!i||dtt(i,e)||!i.tokenization.isCheapToTokenize(e.getStartPosition().lineNumber))return;const s=this.editor.getOption(12),{tabSize:o,indentSize:r,insertSpaces:a}=i.getOptions(),l=[],c={shiftIndent:f=>Zl.shiftIndent(f,f.length+1,o,r,a),unshiftIndent:f=>Zl.unshiftIndent(f,f.length+1,o,r,a)};let d=e.startLineNumber;for(;d<=e.endLineNumber;){if(this.shouldIgnoreLine(i,d)){d++;continue}break}if(d>e.endLineNumber)return;let u=i.getLineContent(d);if(!/\\S/.test(u.substring(0,e.startColumn-1))){const f=hx(s,i,i.getLanguageId(),d,c,this._languageConfigurationService);if(f!==null){const g=on(u),p=wa(f,o),_=wa(g,o);if(p!==_){const b=Px(p,o,a);l.push({range:new A(d,1,d,g.length+1),text:b}),u=b+u.substr(g.length)}else{const b=mce(i,d,this._languageConfigurationService);if(b===0||b===8)return}}}const h=d;for(;d<e.endLineNumber;){if(!/\\S/.test(i.getLineContent(d+1))){d++;continue}break}if(d!==e.endLineNumber){const g=hx(s,{tokenization:{getLineTokens:p=>i.tokenization.getLineTokens(p),getLanguageId:()=>i.getLanguageId(),getLanguageIdAtPosition:(p,_)=>i.getLanguageIdAtPosition(p,_)},getLineContent:p=>p===h?u:i.getLineContent(p)},i.getLanguageId(),d+1,c,this._languageConfigurationService);if(g!==null){const p=wa(g,o),_=wa(on(i.getLineContent(d+1)),o);if(p!==_){const b=p-_;for(let w=d+1;w<=e.endLineNumber;w++){const y=i.getLineContent(w),S=on(y),k=wa(S,o)+b,D=Px(k,o,a);D!==S&&l.push({range:new A(w,1,w,S.length+1),text:D})}}}}if(l.length>0){this.editor.pushUndoStop();const f=new ctt(l,this.editor.getSelection());this.editor.executeCommand(\"autoIndentOnPaste\",f),this.editor.pushUndoStop()}}shouldIgnoreLine(e,t){e.tokenization.forceTokenization(t);const i=e.getLineFirstNonWhitespaceColumn(t);if(i===0)return!0;const s=e.tokenization.getLineTokens(t);if(s.getCount()>0){const o=s.findTokenIndexAtOffset(i);if(o>=0&&s.getStandardTokenType(o)===1)return!0}return!1}dispose(){this.callOnDispose.dispose(),this.callOnModel.dispose()}};kk.ID=\"editor.contrib.autoIndentOnPaste\";kk=ott([rtt(1,gn)],kk);function dtt(n,e){const t=i=>I4e(n,i)===2;return t(e.getStartPosition())||t(e.getEndPosition())}function Ege(n,e,t,i){if(n.getLineCount()===1&&n.getLineMaxColumn(1)===1)return;let s=\"\";for(let r=0;r<t;r++)s+=\" \";const o=new RegExp(s,\"gi\");for(let r=1,a=n.getLineCount();r<=a;r++){let l=n.getLineFirstNonWhitespaceColumn(r);if(l===0&&(l=n.getLineMaxColumn(r)),l===1)continue;const c=new A(r,1,r,l),d=n.getValueInRange(c),u=i?d.replace(/\\t/ig,s):d.replace(o,\"\t\");e.addEditOperation(c,u)}}class utt{constructor(e,t){this.selection=e,this.tabSize=t,this.selectionId=null}getEditOperations(e,t){this.selectionId=t.trackSelection(this.selection),Ege(e,t,this.tabSize,!0)}computeCursorState(e,t){return t.getTrackedSelection(this.selectionId)}}class htt{constructor(e,t){this.selection=e,this.tabSize=t,this.selectionId=null}getEditOperations(e,t){this.selectionId=t.trackSelection(this.selection),Ege(e,t,this.tabSize,!1)}computeCursorState(e,t){return t.getTrackedSelection(this.selectionId)}}bi(kk.ID,kk,2);xe(nO);xe(sO);xe(oO);xe(rO);xe(aO);xe(lO);xe(att);xe(ltt);bi(Jm.ID,Jm,1);b_.register(gR);class ftt{constructor(e,t,i){this._editRange=e,this._originalSelection=t,this._text=i}getEditOperations(e,t){t.addTrackedEditOperation(this._editRange,this._text)}computeCursorState(e,t){const s=t.getInverseEditOperations()[0].range;return this._originalSelection.isEmpty()?new it(s.endLineNumber,Math.min(this._originalSelection.positionColumn,s.endColumn),s.endLineNumber,Math.min(this._originalSelection.positionColumn,s.endColumn)):new it(s.endLineNumber,s.endColumn-this._text.length,s.endLineNumber,s.endColumn)}}var gtt=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},ptt=function(n,e){return function(t,i){e(t,i,n)}},VN;let i_=VN=class{static get(e){return e.getContribution(VN.ID)}constructor(e,t){this.editor=e,this.editorWorkerService=t,this.decorations=this.editor.createDecorationsCollection()}dispose(){}run(e,t){var i;(i=this.currentRequest)===null||i===void 0||i.cancel();const s=this.editor.getSelection(),o=this.editor.getModel();if(!o||!s)return;let r=s;if(r.startLineNumber!==r.endLineNumber)return;const a=new ihe(this.editor,5),l=o.uri;return this.editorWorkerService.canNavigateValueSet(l)?(this.currentRequest=Xs(c=>this.editorWorkerService.navigateValueSet(l,r,t)),this.currentRequest.then(c=>{var d;if(!c||!c.range||!c.value||!a.validate(this.editor))return;const u=A.lift(c.range);let h=c.range;const f=c.value.length-(r.endColumn-r.startColumn);h={startLineNumber:h.startLineNumber,startColumn:h.startColumn,endLineNumber:h.endLineNumber,endColumn:h.startColumn+c.value.length},f>1&&(r=new it(r.startLineNumber,r.startColumn,r.endLineNumber,r.endColumn+f-1));const g=new ftt(u,r,c.value);this.editor.pushUndoStop(),this.editor.executeCommand(e,g),this.editor.pushUndoStop(),this.decorations.set([{range:h,options:VN.DECORATION}]),(d=this.decorationRemover)===null||d===void 0||d.cancel(),this.decorationRemover=Dg(350),this.decorationRemover.then(()=>this.decorations.clear()).catch(Mt)}).catch(Mt)):Promise.resolve(void 0)}};i_.ID=\"editor.contrib.inPlaceReplaceController\";i_.DECORATION=Wt.register({description:\"in-place-replace\",className:\"valueSetReplacement\"});i_=VN=gtt([ptt(1,bc)],i_);class mtt extends Ke{constructor(){super({id:\"editor.action.inPlaceReplace.up\",label:v(\"InPlaceReplaceAction.previous.label\",\"Replace with Previous Value\"),alias:\"Replace with Previous Value\",precondition:W.writable,kbOpts:{kbExpr:W.editorTextFocus,primary:3159,weight:100}})}run(e,t){const i=i_.get(t);return i?i.run(this.id,!1):Promise.resolve(void 0)}}class _tt extends Ke{constructor(){super({id:\"editor.action.inPlaceReplace.down\",label:v(\"InPlaceReplaceAction.next.label\",\"Replace with Next Value\"),alias:\"Replace with Next Value\",precondition:W.writable,kbOpts:{kbExpr:W.editorTextFocus,primary:3161,weight:100}})}run(e,t){const i=i_.get(t);return i?i.run(this.id,!0):Promise.resolve(void 0)}}bi(i_.ID,i_,4);xe(mtt);xe(_tt);class vtt extends Ke{constructor(){super({id:\"expandLineSelection\",label:v(\"expandLineSelection\",\"Expand Line Selection\"),alias:\"Expand Line Selection\",precondition:void 0,kbOpts:{weight:0,kbExpr:W.textInputFocus,primary:2090}})}run(e,t,i){if(i=i||{},!t.hasModel())return;const s=t._getViewModel();s.model.pushStackElement(),s.setCursorStates(i.source,3,po.expandLineSelection(s,s.getCursorStates())),s.revealAllCursors(i.source,!0)}}xe(vtt);class btt{constructor(e,t,i){this._selection=e,this._cursors=t,this._selectionId=null,this._trimInRegexesAndStrings=i}getEditOperations(e,t){const i=Ctt(e,this._cursors,this._trimInRegexesAndStrings);for(let s=0,o=i.length;s<o;s++){const r=i[s];t.addEditOperation(r.range,r.text)}this._selectionId=t.trackSelection(this._selection)}computeCursorState(e,t){return t.getTrackedSelection(this._selectionId)}}function Ctt(n,e,t){e.sort((a,l)=>a.lineNumber===l.lineNumber?a.column-l.column:a.lineNumber-l.lineNumber);for(let a=e.length-2;a>=0;a--)e[a].lineNumber===e[a+1].lineNumber&&e.splice(a,1);const i=[];let s=0,o=0;const r=e.length;for(let a=1,l=n.getLineCount();a<=l;a++){const c=n.getLineContent(a),d=c.length+1;let u=0;if(o<r&&e[o].lineNumber===a&&(u=e[o].column,o++,u===d)||c.length===0)continue;const h=Kd(c);let f=0;if(h===-1)f=1;else if(h!==c.length-1)f=h+2;else continue;if(!t){if(!n.tokenization.hasAccurateTokensForLine(a))continue;const g=n.tokenization.getLineTokens(a),p=g.getStandardTokenType(g.findTokenIndexAtOffset(f));if(p===2||p===3)continue}f=Math.max(u,f),i[s++]=Mn.delete(new A(a,f,a,d))}return i}class Tge{constructor(e,t,i){this._selection=e,this._isCopyingDown=t,this._noop=i||!1,this._selectionDirection=0,this._selectionId=null,this._startLineNumberDelta=0,this._endLineNumberDelta=0}getEditOperations(e,t){let i=this._selection;this._startLineNumberDelta=0,this._endLineNumberDelta=0,i.startLineNumber<i.endLineNumber&&i.endColumn===1&&(this._endLineNumberDelta=1,i=i.setEndPosition(i.endLineNumber-1,e.getLineMaxColumn(i.endLineNumber-1)));const s=[];for(let r=i.startLineNumber;r<=i.endLineNumber;r++)s.push(e.getLineContent(r));const o=s.join(`\n`);o===\"\"&&this._isCopyingDown&&(this._startLineNumberDelta++,this._endLineNumberDelta++),this._noop?t.addEditOperation(new A(i.endLineNumber,e.getLineMaxColumn(i.endLineNumber),i.endLineNumber+1,1),i.endLineNumber===e.getLineCount()?\"\":`\n`):this._isCopyingDown?t.addEditOperation(new A(i.startLineNumber,1,i.startLineNumber,1),o+`\n`):t.addEditOperation(new A(i.endLineNumber,e.getLineMaxColumn(i.endLineNumber),i.endLineNumber,e.getLineMaxColumn(i.endLineNumber)),`\n`+o),this._selectionId=t.trackSelection(i),this._selectionDirection=this._selection.getDirection()}computeCursorState(e,t){let i=t.getTrackedSelection(this._selectionId);if(this._startLineNumberDelta!==0||this._endLineNumberDelta!==0){let s=i.startLineNumber,o=i.startColumn,r=i.endLineNumber,a=i.endColumn;this._startLineNumberDelta!==0&&(s=s+this._startLineNumberDelta,o=1),this._endLineNumberDelta!==0&&(r=r+this._endLineNumberDelta,a=1),i=it.createWithDirection(s,o,r,a,this._selectionDirection)}return i}}var wtt=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},ytt=function(n,e){return function(t,i){e(t,i,n)}};let HW=class{constructor(e,t,i,s){this._languageConfigurationService=s,this._selection=e,this._isMovingDown=t,this._autoIndent=i,this._selectionId=null,this._moveEndLineSelectionShrink=!1}getEditOperations(e,t){const i=()=>e.getLanguageId(),s=(u,h)=>e.getLanguageIdAtPosition(u,h),o=e.getLineCount();if(this._isMovingDown&&this._selection.endLineNumber===o){this._selectionId=t.trackSelection(this._selection);return}if(!this._isMovingDown&&this._selection.startLineNumber===1){this._selectionId=t.trackSelection(this._selection);return}this._moveEndPositionDown=!1;let r=this._selection;r.startLineNumber<r.endLineNumber&&r.endColumn===1&&(this._moveEndPositionDown=!0,r=r.setEndPosition(r.endLineNumber-1,e.getLineMaxColumn(r.endLineNumber-1)));const{tabSize:a,indentSize:l,insertSpaces:c}=e.getOptions(),d=this.buildIndentConverter(a,l,c);if(r.startLineNumber===r.endLineNumber&&e.getLineMaxColumn(r.startLineNumber)===1){const u=r.startLineNumber,h=this._isMovingDown?u+1:u-1;e.getLineMaxColumn(h)===1?t.addEditOperation(new A(1,1,1,1),null):(t.addEditOperation(new A(u,1,u,1),e.getLineContent(h)),t.addEditOperation(new A(h,1,h,e.getLineMaxColumn(h)),null)),r=new it(h,1,h,1)}else{let u,h;if(this._isMovingDown){u=r.endLineNumber+1,h=e.getLineContent(u),t.addEditOperation(new A(u-1,e.getLineMaxColumn(u-1),u,e.getLineMaxColumn(u)),null);let f=h;if(this.shouldAutoIndent(e,r)){const g=this.matchEnterRule(e,d,a,u,r.startLineNumber-1);if(g!==null){const _=on(e.getLineContent(u)),b=g+wa(_,a);f=Px(b,a,c)+this.trimStart(h)}else{const _={tokenization:{getLineTokens:w=>w===r.startLineNumber?e.tokenization.getLineTokens(u):e.tokenization.getLineTokens(w),getLanguageId:i,getLanguageIdAtPosition:s},getLineContent:w=>w===r.startLineNumber?e.getLineContent(u):e.getLineContent(w)},b=hx(this._autoIndent,_,e.getLanguageIdAtPosition(u,1),r.startLineNumber,d,this._languageConfigurationService);if(b!==null){const w=on(e.getLineContent(u)),y=wa(b,a),S=wa(w,a);y!==S&&(f=Px(y,a,c)+this.trimStart(h))}}t.addEditOperation(new A(r.startLineNumber,1,r.startLineNumber,1),f+`\n`);const p=this.matchEnterRuleMovingDown(e,d,a,r.startLineNumber,u,f);if(p!==null)p!==0&&this.getIndentEditsOfMovingBlock(e,t,r,a,c,p);else{const _={tokenization:{getLineTokens:w=>w===r.startLineNumber?e.tokenization.getLineTokens(u):w>=r.startLineNumber+1&&w<=r.endLineNumber+1?e.tokenization.getLineTokens(w-1):e.tokenization.getLineTokens(w),getLanguageId:i,getLanguageIdAtPosition:s},getLineContent:w=>w===r.startLineNumber?f:w>=r.startLineNumber+1&&w<=r.endLineNumber+1?e.getLineContent(w-1):e.getLineContent(w)},b=hx(this._autoIndent,_,e.getLanguageIdAtPosition(u,1),r.startLineNumber+1,d,this._languageConfigurationService);if(b!==null){const w=on(e.getLineContent(r.startLineNumber)),y=wa(b,a),S=wa(w,a);if(y!==S){const x=y-S;this.getIndentEditsOfMovingBlock(e,t,r,a,c,x)}}}}else t.addEditOperation(new A(r.startLineNumber,1,r.startLineNumber,1),f+`\n`)}else if(u=r.startLineNumber-1,h=e.getLineContent(u),t.addEditOperation(new A(u,1,u+1,1),null),t.addEditOperation(new A(r.endLineNumber,e.getLineMaxColumn(r.endLineNumber),r.endLineNumber,e.getLineMaxColumn(r.endLineNumber)),`\n`+h),this.shouldAutoIndent(e,r)){const f={tokenization:{getLineTokens:p=>p===u?e.tokenization.getLineTokens(r.startLineNumber):e.tokenization.getLineTokens(p),getLanguageId:i,getLanguageIdAtPosition:s},getLineContent:p=>p===u?e.getLineContent(r.startLineNumber):e.getLineContent(p)},g=this.matchEnterRule(e,d,a,r.startLineNumber,r.startLineNumber-2);if(g!==null)g!==0&&this.getIndentEditsOfMovingBlock(e,t,r,a,c,g);else{const p=hx(this._autoIndent,f,e.getLanguageIdAtPosition(r.startLineNumber,1),u,d,this._languageConfigurationService);if(p!==null){const _=on(e.getLineContent(r.startLineNumber)),b=wa(p,a),w=wa(_,a);if(b!==w){const y=b-w;this.getIndentEditsOfMovingBlock(e,t,r,a,c,y)}}}}}this._selectionId=t.trackSelection(r)}buildIndentConverter(e,t,i){return{shiftIndent:s=>Zl.shiftIndent(s,s.length+1,e,t,i),unshiftIndent:s=>Zl.unshiftIndent(s,s.length+1,e,t,i)}}parseEnterResult(e,t,i,s,o){if(o){let r=o.indentation;o.indentAction===Ds.None||o.indentAction===Ds.Indent?r=o.indentation+o.appendText:o.indentAction===Ds.IndentOutdent?r=o.indentation:o.indentAction===Ds.Outdent&&(r=t.unshiftIndent(o.indentation)+o.appendText);const a=e.getLineContent(s);if(this.trimStart(a).indexOf(this.trimStart(r))>=0){const l=on(e.getLineContent(s));let c=on(r);const d=mce(e,s,this._languageConfigurationService);d!==null&&d&2&&(c=t.unshiftIndent(c));const u=wa(c,i),h=wa(l,i);return u-h}}return null}matchEnterRuleMovingDown(e,t,i,s,o,r){if(Kd(r)>=0){const a=e.getLineMaxColumn(o),l=eC(this._autoIndent,e,new A(o,a,o,a),this._languageConfigurationService);return this.parseEnterResult(e,t,i,s,l)}else{let a=s-1;for(;a>=1;){const d=e.getLineContent(a);if(Kd(d)>=0)break;a--}if(a<1||s>e.getLineCount())return null;const l=e.getLineMaxColumn(a),c=eC(this._autoIndent,e,new A(a,l,a,l),this._languageConfigurationService);return this.parseEnterResult(e,t,i,s,c)}}matchEnterRule(e,t,i,s,o,r){let a=o;for(;a>=1;){let d;if(a===o&&r!==void 0?d=r:d=e.getLineContent(a),Kd(d)>=0)break;a--}if(a<1||s>e.getLineCount())return null;const l=e.getLineMaxColumn(a),c=eC(this._autoIndent,e,new A(a,l,a,l),this._languageConfigurationService);return this.parseEnterResult(e,t,i,s,c)}trimStart(e){return e.replace(/^\\s+/,\"\")}shouldAutoIndent(e,t){if(this._autoIndent<4||!e.tokenization.isCheapToTokenize(t.startLineNumber))return!1;const i=e.getLanguageIdAtPosition(t.startLineNumber,1),s=e.getLanguageIdAtPosition(t.endLineNumber,1);return!(i!==s||this._languageConfigurationService.getLanguageConfiguration(i).indentRulesSupport===null)}getIndentEditsOfMovingBlock(e,t,i,s,o,r){for(let a=i.startLineNumber;a<=i.endLineNumber;a++){const l=e.getLineContent(a),c=on(l),u=wa(c,s)+r,h=Px(u,s,o);h!==c&&(t.addEditOperation(new A(a,1,a,c.length+1),h),a===i.endLineNumber&&i.endColumn<=c.length+1&&h===\"\"&&(this._moveEndLineSelectionShrink=!0))}}computeCursorState(e,t){let i=t.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(i=i.setEndPosition(i.endLineNumber+1,1)),this._moveEndLineSelectionShrink&&i.startLineNumber<i.endLineNumber&&(i=i.setEndPosition(i.endLineNumber,2)),i}};HW=wtt([ytt(3,gn)],HW);class wm{static getCollator(){return wm._COLLATOR||(wm._COLLATOR=new Intl.Collator),wm._COLLATOR}constructor(e,t){this.selection=e,this.descending=t,this.selectionId=null}getEditOperations(e,t){const i=Stt(e,this.selection,this.descending);i&&t.addEditOperation(i.range,i.text),this.selectionId=t.trackSelection(this.selection)}computeCursorState(e,t){return t.getTrackedSelection(this.selectionId)}static canRun(e,t,i){if(e===null)return!1;const s=Nge(e,t,i);if(!s)return!1;for(let o=0,r=s.before.length;o<r;o++)if(s.before[o]!==s.after[o])return!0;return!1}}wm._COLLATOR=null;function Nge(n,e,t){const i=e.startLineNumber;let s=e.endLineNumber;if(e.endColumn===1&&s--,i>=s)return null;const o=[];for(let a=i;a<=s;a++)o.push(n.getLineContent(a));let r=o.slice(0);return r.sort(wm.getCollator().compare),t===!0&&(r=r.reverse()),{startLineNumber:i,endLineNumber:s,before:o,after:r}}function Stt(n,e,t){const i=Nge(n,e,t);return i?Mn.replace(new A(i.startLineNumber,1,i.endLineNumber,n.getLineMaxColumn(i.endLineNumber)),i.after.join(`\n`)):null}class Age extends Ke{constructor(e,t){super(t),this.down=e}run(e,t){if(!t.hasModel())return;const i=t.getSelections().map((r,a)=>({selection:r,index:a,ignore:!1}));i.sort((r,a)=>A.compareRangesUsingStarts(r.selection,a.selection));let s=i[0];for(let r=1;r<i.length;r++){const a=i[r];s.selection.endLineNumber===a.selection.startLineNumber&&(s.index<a.index?a.ignore=!0:(s.ignore=!0,s=a))}const o=[];for(const r of i)o.push(new Tge(r.selection,this.down,r.ignore));t.pushUndoStop(),t.executeCommands(this.id,o),t.pushUndoStop()}}class xtt extends Age{constructor(){super(!1,{id:\"editor.action.copyLinesUpAction\",label:v(\"lines.copyUp\",\"Copy Line Up\"),alias:\"Copy Line Up\",precondition:W.writable,kbOpts:{kbExpr:W.editorTextFocus,primary:1552,linux:{primary:3600},weight:100},menuOpts:{menuId:R.MenubarSelectionMenu,group:\"2_line\",title:v({},\"&&Copy Line Up\"),order:1}})}}class Ltt extends Age{constructor(){super(!0,{id:\"editor.action.copyLinesDownAction\",label:v(\"lines.copyDown\",\"Copy Line Down\"),alias:\"Copy Line Down\",precondition:W.writable,kbOpts:{kbExpr:W.editorTextFocus,primary:1554,linux:{primary:3602},weight:100},menuOpts:{menuId:R.MenubarSelectionMenu,group:\"2_line\",title:v({},\"Co&&py Line Down\"),order:2}})}}class ktt extends Ke{constructor(){super({id:\"editor.action.duplicateSelection\",label:v(\"duplicateSelection\",\"Duplicate Selection\"),alias:\"Duplicate Selection\",precondition:W.writable,menuOpts:{menuId:R.MenubarSelectionMenu,group:\"2_line\",title:v({},\"&&Duplicate Selection\"),order:5}})}run(e,t,i){if(!t.hasModel())return;const s=[],o=t.getSelections(),r=t.getModel();for(const a of o)if(a.isEmpty())s.push(new Tge(a,!0));else{const l=new it(a.endLineNumber,a.endColumn,a.endLineNumber,a.endColumn);s.push(new b8e(l,r.getValueInRange(a)))}t.pushUndoStop(),t.executeCommands(this.id,s),t.pushUndoStop()}}class Rge extends Ke{constructor(e,t){super(t),this.down=e}run(e,t){const i=e.get(gn),s=[],o=t.getSelections()||[],r=t.getOption(12);for(const a of o)s.push(new HW(a,this.down,r,i));t.pushUndoStop(),t.executeCommands(this.id,s),t.pushUndoStop()}}class Dtt extends Rge{constructor(){super(!1,{id:\"editor.action.moveLinesUpAction\",label:v(\"lines.moveUp\",\"Move Line Up\"),alias:\"Move Line Up\",precondition:W.writable,kbOpts:{kbExpr:W.editorTextFocus,primary:528,linux:{primary:528},weight:100},menuOpts:{menuId:R.MenubarSelectionMenu,group:\"2_line\",title:v({},\"Mo&&ve Line Up\"),order:3}})}}class Itt extends Rge{constructor(){super(!0,{id:\"editor.action.moveLinesDownAction\",label:v(\"lines.moveDown\",\"Move Line Down\"),alias:\"Move Line Down\",precondition:W.writable,kbOpts:{kbExpr:W.editorTextFocus,primary:530,linux:{primary:530},weight:100},menuOpts:{menuId:R.MenubarSelectionMenu,group:\"2_line\",title:v({},\"Move &&Line Down\"),order:4}})}}class Mge extends Ke{constructor(e,t){super(t),this.descending=e}run(e,t){if(!t.hasModel())return;const i=t.getModel();let s=t.getSelections();s.length===1&&s[0].isEmpty()&&(s=[new it(1,1,i.getLineCount(),i.getLineMaxColumn(i.getLineCount()))]);for(const r of s)if(!wm.canRun(t.getModel(),r,this.descending))return;const o=[];for(let r=0,a=s.length;r<a;r++)o[r]=new wm(s[r],this.descending);t.pushUndoStop(),t.executeCommands(this.id,o),t.pushUndoStop()}}class Ett extends Mge{constructor(){super(!1,{id:\"editor.action.sortLinesAscending\",label:v(\"lines.sortAscending\",\"Sort Lines Ascending\"),alias:\"Sort Lines Ascending\",precondition:W.writable})}}class Ttt extends Mge{constructor(){super(!0,{id:\"editor.action.sortLinesDescending\",label:v(\"lines.sortDescending\",\"Sort Lines Descending\"),alias:\"Sort Lines Descending\",precondition:W.writable})}}class Ntt extends Ke{constructor(){super({id:\"editor.action.removeDuplicateLines\",label:v(\"lines.deleteDuplicates\",\"Delete Duplicate Lines\"),alias:\"Delete Duplicate Lines\",precondition:W.writable})}run(e,t){if(!t.hasModel())return;const i=t.getModel();if(i.getLineCount()===1&&i.getLineMaxColumn(1)===1)return;const s=[],o=[];let r=0,a=!0,l=t.getSelections();l.length===1&&l[0].isEmpty()&&(l=[new it(1,1,i.getLineCount(),i.getLineMaxColumn(i.getLineCount()))],a=!1);for(const c of l){const d=new Set,u=[];for(let p=c.startLineNumber;p<=c.endLineNumber;p++){const _=i.getLineContent(p);d.has(_)||(u.push(_),d.add(_))}const h=new it(c.startLineNumber,1,c.endLineNumber,i.getLineMaxColumn(c.endLineNumber)),f=c.startLineNumber-r,g=new it(f,1,f+u.length-1,u[u.length-1].length);s.push(Mn.replace(h,u.join(`\n`))),o.push(g),r+=c.endLineNumber-c.startLineNumber+1-u.length}t.pushUndoStop(),t.executeEdits(this.id,s,a?o:void 0),t.pushUndoStop()}}class cO extends Ke{constructor(){super({id:cO.ID,label:v(\"lines.trimTrailingWhitespace\",\"Trim Trailing Whitespace\"),alias:\"Trim Trailing Whitespace\",precondition:W.writable,kbOpts:{kbExpr:W.editorTextFocus,primary:Os(2089,2102),weight:100}})}run(e,t,i){let s=[];i.reason===\"auto-save\"&&(s=(t.getSelections()||[]).map(d=>new ee(d.positionLineNumber,d.positionColumn)));const o=t.getSelection();if(o===null)return;const r=e.get(qt),a=t.getModel(),l=r.getValue(\"files.trimTrailingWhitespaceInRegexAndStrings\",{overrideIdentifier:a==null?void 0:a.getLanguageId(),resource:a==null?void 0:a.uri}),c=new btt(o,s,l);t.pushUndoStop(),t.executeCommands(this.id,[c]),t.pushUndoStop()}}cO.ID=\"editor.action.trimTrailingWhitespace\";class Att extends Ke{constructor(){super({id:\"editor.action.deleteLines\",label:v(\"lines.delete\",\"Delete Line\"),alias:\"Delete Line\",precondition:W.writable,kbOpts:{kbExpr:W.textInputFocus,primary:3113,weight:100}})}run(e,t){if(!t.hasModel())return;const i=this._getLinesToRemove(t),s=t.getModel();if(s.getLineCount()===1&&s.getLineMaxColumn(1)===1)return;let o=0;const r=[],a=[];for(let l=0,c=i.length;l<c;l++){const d=i[l];let u=d.startLineNumber,h=d.endLineNumber,f=1,g=s.getLineMaxColumn(h);h<s.getLineCount()?(h+=1,g=1):u>1&&(u-=1,f=s.getLineMaxColumn(u)),r.push(Mn.replace(new it(u,f,h,g),\"\")),a.push(new it(u-o,d.positionColumn,u-o,d.positionColumn)),o+=d.endLineNumber-d.startLineNumber+1}t.pushUndoStop(),t.executeEdits(this.id,r,a),t.pushUndoStop()}_getLinesToRemove(e){const t=e.getSelections().map(o=>{let r=o.endLineNumber;return o.startLineNumber<o.endLineNumber&&o.endColumn===1&&(r-=1),{startLineNumber:o.startLineNumber,selectionStartColumn:o.selectionStartColumn,endLineNumber:r,positionColumn:o.positionColumn}});t.sort((o,r)=>o.startLineNumber===r.startLineNumber?o.endLineNumber-r.endLineNumber:o.startLineNumber-r.startLineNumber);const i=[];let s=t[0];for(let o=1;o<t.length;o++)s.endLineNumber+1>=t[o].startLineNumber?s.endLineNumber=t[o].endLineNumber:(i.push(s),s=t[o]);return i.push(s),i}}class Rtt extends Ke{constructor(){super({id:\"editor.action.indentLines\",label:v(\"lines.indent\",\"Indent Line\"),alias:\"Indent Line\",precondition:W.writable,kbOpts:{kbExpr:W.editorTextFocus,primary:2142,weight:100}})}run(e,t){const i=t._getViewModel();i&&(t.pushUndoStop(),t.executeCommands(this.id,Bn.indent(i.cursorConfig,t.getModel(),t.getSelections())),t.pushUndoStop())}}class Mtt extends Ke{constructor(){super({id:\"editor.action.outdentLines\",label:v(\"lines.outdent\",\"Outdent Line\"),alias:\"Outdent Line\",precondition:W.writable,kbOpts:{kbExpr:W.editorTextFocus,primary:2140,weight:100}})}run(e,t){tC.Outdent.runEditorCommand(e,t,null)}}class Ptt extends Ke{constructor(){super({id:\"editor.action.insertLineBefore\",label:v(\"lines.insertBefore\",\"Insert Line Above\"),alias:\"Insert Line Above\",precondition:W.writable,kbOpts:{kbExpr:W.editorTextFocus,primary:3075,weight:100}})}run(e,t){const i=t._getViewModel();i&&(t.pushUndoStop(),t.executeCommands(this.id,Bn.lineInsertBefore(i.cursorConfig,t.getModel(),t.getSelections())))}}class Ott extends Ke{constructor(){super({id:\"editor.action.insertLineAfter\",label:v(\"lines.insertAfter\",\"Insert Line Below\"),alias:\"Insert Line Below\",precondition:W.writable,kbOpts:{kbExpr:W.editorTextFocus,primary:2051,weight:100}})}run(e,t){const i=t._getViewModel();i&&(t.pushUndoStop(),t.executeCommands(this.id,Bn.lineInsertAfter(i.cursorConfig,t.getModel(),t.getSelections())))}}class Pge extends Ke{run(e,t){if(!t.hasModel())return;const i=t.getSelection(),s=this._getRangesToDelete(t),o=[];for(let l=0,c=s.length-1;l<c;l++){const d=s[l],u=s[l+1];A.intersectRanges(d,u)===null?o.push(d):s[l+1]=A.plusRange(d,u)}o.push(s[s.length-1]);const r=this._getEndCursorState(i,o),a=o.map(l=>Mn.replace(l,\"\"));t.pushUndoStop(),t.executeEdits(this.id,a,r),t.pushUndoStop()}}class Ftt extends Pge{constructor(){super({id:\"deleteAllLeft\",label:v(\"lines.deleteAllLeft\",\"Delete All Left\"),alias:\"Delete All Left\",precondition:W.writable,kbOpts:{kbExpr:W.textInputFocus,primary:0,mac:{primary:2049},weight:100}})}_getEndCursorState(e,t){let i=null;const s=[];let o=0;return t.forEach(r=>{let a;if(r.endColumn===1&&o>0){const l=r.startLineNumber-o;a=new it(l,r.startColumn,l,r.startColumn)}else a=new it(r.startLineNumber,r.startColumn,r.startLineNumber,r.startColumn);o+=r.endLineNumber-r.startLineNumber,r.intersectRanges(e)?i=a:s.push(a)}),i&&s.unshift(i),s}_getRangesToDelete(e){const t=e.getSelections();if(t===null)return[];let i=t;const s=e.getModel();return s===null?[]:(i.sort(A.compareRangesUsingStarts),i=i.map(o=>{if(o.isEmpty())if(o.startColumn===1){const r=Math.max(1,o.startLineNumber-1),a=o.startLineNumber===1?1:s.getLineLength(r)+1;return new A(r,a,o.startLineNumber,1)}else return new A(o.startLineNumber,1,o.startLineNumber,o.startColumn);else return new A(o.startLineNumber,1,o.endLineNumber,o.endColumn)}),i)}}class Btt extends Pge{constructor(){super({id:\"deleteAllRight\",label:v(\"lines.deleteAllRight\",\"Delete All Right\"),alias:\"Delete All Right\",precondition:W.writable,kbOpts:{kbExpr:W.textInputFocus,primary:0,mac:{primary:297,secondary:[2068]},weight:100}})}_getEndCursorState(e,t){let i=null;const s=[];for(let o=0,r=t.length,a=0;o<r;o++){const l=t[o],c=new it(l.startLineNumber-a,l.startColumn,l.startLineNumber-a,l.startColumn);l.intersectRanges(e)?i=c:s.push(c)}return i&&s.unshift(i),s}_getRangesToDelete(e){const t=e.getModel();if(t===null)return[];const i=e.getSelections();if(i===null)return[];const s=i.map(o=>{if(o.isEmpty()){const r=t.getLineMaxColumn(o.startLineNumber);return o.startColumn===r?new A(o.startLineNumber,o.startColumn,o.startLineNumber+1,1):new A(o.startLineNumber,o.startColumn,o.startLineNumber,r)}return o});return s.sort(A.compareRangesUsingStarts),s}}class Wtt extends Ke{constructor(){super({id:\"editor.action.joinLines\",label:v(\"lines.joinLines\",\"Join Lines\"),alias:\"Join Lines\",precondition:W.writable,kbOpts:{kbExpr:W.editorTextFocus,primary:0,mac:{primary:296},weight:100}})}run(e,t){const i=t.getSelections();if(i===null)return;let s=t.getSelection();if(s===null)return;i.sort(A.compareRangesUsingStarts);const o=[],r=i.reduce((h,f)=>h.isEmpty()?h.endLineNumber===f.startLineNumber?(s.equalsSelection(h)&&(s=f),f):f.startLineNumber>h.endLineNumber+1?(o.push(h),f):new it(h.startLineNumber,h.startColumn,f.endLineNumber,f.endColumn):f.startLineNumber>h.endLineNumber?(o.push(h),f):new it(h.startLineNumber,h.startColumn,f.endLineNumber,f.endColumn));o.push(r);const a=t.getModel();if(a===null)return;const l=[],c=[];let d=s,u=0;for(let h=0,f=o.length;h<f;h++){const g=o[h],p=g.startLineNumber,_=1;let b=0,w,y;const S=a.getLineLength(g.endLineNumber)-g.endColumn;if(g.isEmpty()||g.startLineNumber===g.endLineNumber){const D=g.getStartPosition();D.lineNumber<a.getLineCount()?(w=p+1,y=a.getLineMaxColumn(w)):(w=D.lineNumber,y=a.getLineMaxColumn(D.lineNumber))}else w=g.endLineNumber,y=a.getLineMaxColumn(w);let x=a.getLineContent(p);for(let D=p+1;D<=w;D++){const I=a.getLineContent(D),N=a.getLineFirstNonWhitespaceColumn(D);if(N>=1){let P=!0;x===\"\"&&(P=!1),P&&(x.charAt(x.length-1)===\" \"||x.charAt(x.length-1)===\"\t\")&&(P=!1,x=x.replace(/[\\s\\uFEFF\\xA0]+$/g,\" \"));const O=I.substr(N-1);x+=(P?\" \":\"\")+O,P?b=O.length+1:b=O.length}else b=0}const k=new A(p,_,w,y);if(!k.isEmpty()){let D;g.isEmpty()?(l.push(Mn.replace(k,x)),D=new it(k.startLineNumber-u,x.length-b+1,p-u,x.length-b+1)):g.startLineNumber===g.endLineNumber?(l.push(Mn.replace(k,x)),D=new it(g.startLineNumber-u,g.startColumn,g.endLineNumber-u,g.endColumn)):(l.push(Mn.replace(k,x)),D=new it(g.startLineNumber-u,g.startColumn,g.startLineNumber-u,x.length-S)),A.intersectRanges(k,s)!==null?d=D:c.push(D)}u+=k.endLineNumber-k.startLineNumber}c.unshift(d),t.pushUndoStop(),t.executeEdits(this.id,l,c),t.pushUndoStop()}}class Htt extends Ke{constructor(){super({id:\"editor.action.transpose\",label:v(\"editor.transpose\",\"Transpose Characters around the Cursor\"),alias:\"Transpose Characters around the Cursor\",precondition:W.writable})}run(e,t){const i=t.getSelections();if(i===null)return;const s=t.getModel();if(s===null)return;const o=[];for(let r=0,a=i.length;r<a;r++){const l=i[r];if(!l.isEmpty())continue;const c=l.getStartPosition(),d=s.getLineMaxColumn(c.lineNumber);if(c.column>=d){if(c.lineNumber===s.getLineCount())continue;const u=new A(c.lineNumber,Math.max(1,c.column-1),c.lineNumber+1,1),h=s.getValueInRange(u).split(\"\").reverse().join(\"\");o.push(new Io(new it(c.lineNumber,Math.max(1,c.column-1),c.lineNumber+1,1),h))}else{const u=new A(c.lineNumber,Math.max(1,c.column-1),c.lineNumber,c.column+1),h=s.getValueInRange(u).split(\"\").reverse().join(\"\");o.push(new Oz(u,h,new it(c.lineNumber,c.column+1,c.lineNumber,c.column+1)))}}t.pushUndoStop(),t.executeCommands(this.id,o),t.pushUndoStop()}}class cb extends Ke{run(e,t){const i=t.getSelections();if(i===null)return;const s=t.getModel();if(s===null)return;const o=t.getOption(131),r=[];for(const a of i)if(a.isEmpty()){const l=a.getStartPosition(),c=t.getConfiguredWordAtPosition(l);if(!c)continue;const d=new A(l.lineNumber,c.startColumn,l.lineNumber,c.endColumn),u=s.getValueInRange(d);r.push(Mn.replace(d,this._modifyText(u,o)))}else{const l=s.getValueInRange(a);r.push(Mn.replace(a,this._modifyText(l,o)))}t.pushUndoStop(),t.executeEdits(this.id,r),t.pushUndoStop()}}class Vtt extends cb{constructor(){super({id:\"editor.action.transformToUppercase\",label:v(\"editor.transformToUppercase\",\"Transform to Uppercase\"),alias:\"Transform to Uppercase\",precondition:W.writable})}_modifyText(e,t){return e.toLocaleUpperCase()}}class ztt extends cb{constructor(){super({id:\"editor.action.transformToLowercase\",label:v(\"editor.transformToLowercase\",\"Transform to Lowercase\"),alias:\"Transform to Lowercase\",precondition:W.writable})}_modifyText(e,t){return e.toLocaleLowerCase()}}class jg{constructor(e,t){this._pattern=e,this._flags=t,this._actual=null,this._evaluated=!1}get(){if(!this._evaluated){this._evaluated=!0;try{this._actual=new RegExp(this._pattern,this._flags)}catch{}}return this._actual}isSupported(){return this.get()!==null}}class Dk extends cb{constructor(){super({id:\"editor.action.transformToTitlecase\",label:v(\"editor.transformToTitlecase\",\"Transform to Title Case\"),alias:\"Transform to Title Case\",precondition:W.writable})}_modifyText(e,t){const i=Dk.titleBoundary.get();return i?e.toLocaleLowerCase().replace(i,s=>s.toLocaleUpperCase()):e}}Dk.titleBoundary=new jg(\"(^|[^\\\\p{L}\\\\p{N}']|((^|\\\\P{L})'))\\\\p{L}\",\"gmu\");class ym extends cb{constructor(){super({id:\"editor.action.transformToSnakecase\",label:v(\"editor.transformToSnakecase\",\"Transform to Snake Case\"),alias:\"Transform to Snake Case\",precondition:W.writable})}_modifyText(e,t){const i=ym.caseBoundary.get(),s=ym.singleLetters.get();return!i||!s?e:e.replace(i,\"$1_$2\").replace(s,\"$1_$2$3\").toLocaleLowerCase()}}ym.caseBoundary=new jg(\"(\\\\p{Ll})(\\\\p{Lu})\",\"gmu\");ym.singleLetters=new jg(\"(\\\\p{Lu}|\\\\p{N})(\\\\p{Lu})(\\\\p{Ll})\",\"gmu\");class Ik extends cb{constructor(){super({id:\"editor.action.transformToCamelcase\",label:v(\"editor.transformToCamelcase\",\"Transform to Camel Case\"),alias:\"Transform to Camel Case\",precondition:W.writable})}_modifyText(e,t){const i=Ik.wordBoundary.get();if(!i)return e;const s=e.split(i);return s.shift()+s.map(r=>r.substring(0,1).toLocaleUpperCase()+r.substring(1)).join(\"\")}}Ik.wordBoundary=new jg(\"[_\\\\s-]\",\"gm\");class P0 extends cb{constructor(){super({id:\"editor.action.transformToPascalcase\",label:v(\"editor.transformToPascalcase\",\"Transform to Pascal Case\"),alias:\"Transform to Pascal Case\",precondition:W.writable})}_modifyText(e,t){const i=P0.wordBoundary.get(),s=P0.wordBoundaryToMaintain.get();return!i||!s?e:e.split(s).map(a=>a.split(i)).flat().map(a=>a.substring(0,1).toLocaleUpperCase()+a.substring(1)).join(\"\")}}P0.wordBoundary=new jg(\"[_\\\\s-]\",\"gm\");P0.wordBoundaryToMaintain=new jg(\"(?<=\\\\.)\",\"gm\");class yg extends cb{static isSupported(){return[this.caseBoundary,this.singleLetters,this.underscoreBoundary].every(t=>t.isSupported())}constructor(){super({id:\"editor.action.transformToKebabcase\",label:v(\"editor.transformToKebabcase\",\"Transform to Kebab Case\"),alias:\"Transform to Kebab Case\",precondition:W.writable})}_modifyText(e,t){const i=yg.caseBoundary.get(),s=yg.singleLetters.get(),o=yg.underscoreBoundary.get();return!i||!s||!o?e:e.replace(o,\"$1-$3\").replace(i,\"$1-$2\").replace(s,\"$1-$2\").toLocaleLowerCase()}}yg.caseBoundary=new jg(\"(\\\\p{Ll})(\\\\p{Lu})\",\"gmu\");yg.singleLetters=new jg(\"(\\\\p{Lu}|\\\\p{N})(\\\\p{Lu}\\\\p{Ll})\",\"gmu\");yg.underscoreBoundary=new jg(\"(\\\\S)(_)(\\\\S)\",\"gm\");xe(xtt);xe(Ltt);xe(ktt);xe(Dtt);xe(Itt);xe(Ett);xe(Ttt);xe(Ntt);xe(cO);xe(Att);xe(Rtt);xe(Mtt);xe(Ptt);xe(Ott);xe(Ftt);xe(Btt);xe(Wtt);xe(Htt);xe(Vtt);xe(ztt);ym.caseBoundary.isSupported()&&ym.singleLetters.isSupported()&&xe(ym);Ik.wordBoundary.isSupported()&&xe(Ik);P0.wordBoundary.isSupported()&&xe(P0);Dk.titleBoundary.isSupported()&&xe(Dk);yg.isSupported()&&xe(yg);var $tt=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},BT=function(n,e){return function(t,i){e(t,i,n)}},zN;const Oge=new He(\"LinkedEditingInputVisible\",!1),Utt=\"linked-editing-decoration\";let n_=zN=class extends ne{static get(e){return e.getContribution(zN.ID)}constructor(e,t,i,s,o){super(),this.languageConfigurationService=s,this._syncRangesToken=0,this._localToDispose=this._register(new be),this._editor=e,this._providers=i.linkedEditingRangeProvider,this._enabled=!1,this._visibleContextKey=Oge.bindTo(t),this._debounceInformation=o.for(this._providers,\"Linked Editing\",{max:200}),this._currentDecorations=this._editor.createDecorationsCollection(),this._languageWordPattern=null,this._currentWordPattern=null,this._ignoreChangeEvent=!1,this._localToDispose=this._register(new be),this._rangeUpdateTriggerPromise=null,this._rangeSyncTriggerPromise=null,this._currentRequestCts=null,this._currentRequestPosition=null,this._currentRequestModelVersion=null,this._register(this._editor.onDidChangeModel(()=>this.reinitialize(!0))),this._register(this._editor.onDidChangeConfiguration(r=>{(r.hasChanged(70)||r.hasChanged(93))&&this.reinitialize(!1)})),this._register(this._providers.onDidChange(()=>this.reinitialize(!1))),this._register(this._editor.onDidChangeModelLanguage(()=>this.reinitialize(!0))),this.reinitialize(!0)}reinitialize(e){const t=this._editor.getModel(),i=t!==null&&(this._editor.getOption(70)||this._editor.getOption(93))&&this._providers.has(t);if(i===this._enabled&&!e||(this._enabled=i,this.clearRanges(),this._localToDispose.clear(),!i||t===null))return;this._localToDispose.add(Ae.runAndSubscribe(t.onDidChangeLanguageConfiguration,()=>{this._languageWordPattern=this.languageConfigurationService.getLanguageConfiguration(t.getLanguageId()).getWordDefinition()}));const s=new sd(this._debounceInformation.get(t)),o=()=>{var l;this._rangeUpdateTriggerPromise=s.trigger(()=>this.updateRanges(),(l=this._debounceDuration)!==null&&l!==void 0?l:this._debounceInformation.get(t))},r=new sd(0),a=l=>{this._rangeSyncTriggerPromise=r.trigger(()=>this._syncRanges(l))};this._localToDispose.add(this._editor.onDidChangeCursorPosition(()=>{o()})),this._localToDispose.add(this._editor.onDidChangeModelContent(l=>{if(!this._ignoreChangeEvent&&this._currentDecorations.length>0){const c=this._currentDecorations.getRange(0);if(c&&l.changes.every(d=>c.intersectRanges(d.range))){a(this._syncRangesToken);return}}o()})),this._localToDispose.add({dispose:()=>{s.dispose(),r.dispose()}}),this.updateRanges()}_syncRanges(e){if(!this._editor.hasModel()||e!==this._syncRangesToken||this._currentDecorations.length===0)return;const t=this._editor.getModel(),i=this._currentDecorations.getRange(0);if(!i||i.startLineNumber!==i.endLineNumber)return this.clearRanges();const s=t.getValueInRange(i);if(this._currentWordPattern){const r=s.match(this._currentWordPattern);if((r?r[0].length:0)!==s.length)return this.clearRanges()}const o=[];for(let r=1,a=this._currentDecorations.length;r<a;r++){const l=this._currentDecorations.getRange(r);if(l)if(l.startLineNumber!==l.endLineNumber)o.push({range:l,text:s});else{let c=t.getValueInRange(l),d=s,u=l.startColumn,h=l.endColumn;const f=Rm(c,d);u+=f,c=c.substr(f),d=d.substr(f);const g=M2(c,d);h-=g,c=c.substr(0,c.length-g),d=d.substr(0,d.length-g),(u!==h||d.length!==0)&&o.push({range:new A(l.startLineNumber,u,l.endLineNumber,h),text:d})}}if(o.length!==0)try{this._editor.popUndoStop(),this._ignoreChangeEvent=!0;const r=this._editor._getViewModel().getPrevEditOperationType();this._editor.executeEdits(\"linkedEditing\",o),this._editor._getViewModel().setPrevEditOperationType(r)}finally{this._ignoreChangeEvent=!1}}dispose(){this.clearRanges(),super.dispose()}clearRanges(){this._visibleContextKey.set(!1),this._currentDecorations.clear(),this._currentRequestCts&&(this._currentRequestCts.cancel(),this._currentRequestCts=null,this._currentRequestPosition=null)}async updateRanges(e=!1){if(!this._editor.hasModel()){this.clearRanges();return}const t=this._editor.getPosition();if(!this._enabled&&!e||this._editor.getSelections().length>1){this.clearRanges();return}const i=this._editor.getModel(),s=i.getVersionId();if(this._currentRequestPosition&&this._currentRequestModelVersion===s){if(t.equals(this._currentRequestPosition))return;if(this._currentDecorations.length>0){const r=this._currentDecorations.getRange(0);if(r&&r.containsPosition(t))return}}this.clearRanges(),this._currentRequestPosition=t,this._currentRequestModelVersion=s;const o=this._currentRequestCts=new $n;try{const r=new xo(!1),a=await Fge(this._providers,i,t,o.token);if(this._debounceInformation.update(i,r.elapsed()),o!==this._currentRequestCts||(this._currentRequestCts=null,s!==i.getVersionId()))return;let l=[];a!=null&&a.ranges&&(l=a.ranges),this._currentWordPattern=(a==null?void 0:a.wordPattern)||this._languageWordPattern;let c=!1;for(let u=0,h=l.length;u<h;u++)if(A.containsPosition(l[u],t)){if(c=!0,u!==0){const f=l[u];l.splice(u,1),l.unshift(f)}break}if(!c){this.clearRanges();return}const d=l.map(u=>({range:u,options:zN.DECORATION}));this._visibleContextKey.set(!0),this._currentDecorations.set(d),this._syncRangesToken++}catch(r){ld(r)||Mt(r),(this._currentRequestCts===o||!this._currentRequestCts)&&this.clearRanges()}}};n_.ID=\"editor.contrib.linkedEditing\";n_.DECORATION=Wt.register({description:\"linked-editing\",stickiness:0,className:Utt});n_=zN=$tt([BT(1,Ct),BT(2,Xe),BT(3,gn),BT(4,_c)],n_);class jtt extends Ke{constructor(){super({id:\"editor.action.linkedEditing\",label:v(\"linkedEditing.label\",\"Start Linked Editing\"),alias:\"Start Linked Editing\",precondition:pe.and(W.writable,W.hasRenameProvider),kbOpts:{kbExpr:W.editorTextFocus,primary:3132,weight:100}})}runCommand(e,t){const i=e.get(vi),[s,o]=Array.isArray(t)&&t||[void 0,void 0];return pt.isUri(s)&&ee.isIPosition(o)?i.openCodeEditor({resource:s},i.getActiveCodeEditor()).then(r=>{r&&(r.setPosition(o),r.invokeWithinContext(a=>(this.reportTelemetry(a,r),this.run(a,r))))},Mt):super.runCommand(e,t)}run(e,t){const i=n_.get(t);return i?Promise.resolve(i.updateRanges(!0)):Promise.resolve()}}const Ktt=Us.bindToContribution(n_.get);Fe(new Ktt({id:\"cancelLinkedEditingInput\",precondition:Oge,handler:n=>n.clearRanges(),kbOpts:{kbExpr:W.editorTextFocus,weight:199,primary:9,secondary:[1033]}}));function Fge(n,e,t,i){const s=n.ordered(e);return QV(s.map(o=>async()=>{try{return await o.provideLinkedEditingRanges(e,t,i)}catch(r){as(r);return}}),o=>!!o&&Zo(o==null?void 0:o.ranges))}V(\"editor.linkedEditingBackground\",{dark:le.fromHex(\"#f00\").transparent(.3),light:le.fromHex(\"#f00\").transparent(.3),hcDark:le.fromHex(\"#f00\").transparent(.3),hcLight:le.white},v(\"editorLinkedEditingBackground\",\"Background color when the editor auto renames on type.\"));Vh(\"_executeLinkedEditingProvider\",(n,e,t)=>{const{linkedEditingRangeProvider:i}=n.get(Xe);return Fge(i,e,t,Qt.None)});bi(n_.ID,n_,1);xe(jtt);let qtt=class{constructor(e,t){this._link=e,this._provider=t}toJSON(){return{range:this.range,url:this.url,tooltip:this.tooltip}}get range(){return this._link.range}get url(){return this._link.url}get tooltip(){return this._link.tooltip}async resolve(e){return this._link.url?this._link.url:typeof this._provider.resolveLink==\"function\"?Promise.resolve(this._provider.resolveLink(this._link,e)).then(t=>(this._link=t||this._link,this._link.url?this.resolve(e):Promise.reject(new Error(\"missing\")))):Promise.reject(new Error(\"missing\"))}};class LR{constructor(e){this._disposables=new be;let t=[];for(const[i,s]of e){const o=i.links.map(r=>new qtt(r,s));t=LR._union(t,o),nM(i)&&this._disposables.add(i)}this.links=t}dispose(){this._disposables.dispose(),this.links.length=0}static _union(e,t){const i=[];let s,o,r,a;for(s=0,r=0,o=e.length,a=t.length;s<o&&r<a;){const l=e[s],c=t[r];if(A.areIntersectingOrTouching(l.range,c.range)){s++;continue}A.compareRangesUsingStarts(l.range,c.range)<0?(i.push(l),s++):(i.push(c),r++)}for(;s<o;s++)i.push(e[s]);for(;r<a;r++)i.push(t[r]);return i}}function Bge(n,e,t){const i=[],s=n.ordered(e).reverse().map((o,r)=>Promise.resolve(o.provideLinks(e,t)).then(a=>{a&&(i[r]=[a,o])},as));return Promise.all(s).then(()=>{const o=new LR(tu(i));return t.isCancellationRequested?(o.dispose(),new LR([])):o})}ri.registerCommand(\"_executeLinkProvider\",async(n,...e)=>{let[t,i]=e;mi(t instanceof pt),typeof i!=\"number\"&&(i=0);const{linkProvider:s}=n.get(Xe),o=n.get(Pn).getModel(t);if(!o)return[];const r=await Bge(s,o,Qt.None);if(!r)return[];for(let l=0;l<Math.min(i,r.links.length);l++)await r.links[l].resolve(Qt.None);const a=r.links.slice(0);return r.dispose(),a});var Gtt=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},WT=function(n,e){return function(t,i){e(t,i,n)}},VW;let fw=VW=class extends ne{static get(e){return e.getContribution(VW.ID)}constructor(e,t,i,s,o){super(),this.editor=e,this.openerService=t,this.notificationService=i,this.languageFeaturesService=s,this.providers=this.languageFeaturesService.linkProvider,this.debounceInformation=o.for(this.providers,\"Links\",{min:1e3,max:4e3}),this.computeLinks=this._register(new Xi(()=>this.computeLinksNow(),1e3)),this.computePromise=null,this.activeLinksList=null,this.currentOccurrences={},this.activeLinkDecorationId=null;const r=this._register(new RP(e));this._register(r.onMouseMoveOrRelevantKeyDown(([a,l])=>{this._onEditorMouseMove(a,l)})),this._register(r.onExecute(a=>{this.onEditorMouseUp(a)})),this._register(r.onCancel(a=>{this.cleanUpActiveLinkDecoration()})),this._register(e.onDidChangeConfiguration(a=>{a.hasChanged(71)&&(this.updateDecorations([]),this.stop(),this.computeLinks.schedule(0))})),this._register(e.onDidChangeModelContent(a=>{this.editor.hasModel()&&this.computeLinks.schedule(this.debounceInformation.get(this.editor.getModel()))})),this._register(e.onDidChangeModel(a=>{this.currentOccurrences={},this.activeLinkDecorationId=null,this.stop(),this.computeLinks.schedule(0)})),this._register(e.onDidChangeModelLanguage(a=>{this.stop(),this.computeLinks.schedule(0)})),this._register(this.providers.onDidChange(a=>{this.stop(),this.computeLinks.schedule(0)})),this.computeLinks.schedule(0)}async computeLinksNow(){if(!this.editor.hasModel()||!this.editor.getOption(71))return;const e=this.editor.getModel();if(!e.isTooLargeForSyncing()&&this.providers.has(e)){this.activeLinksList&&(this.activeLinksList.dispose(),this.activeLinksList=null),this.computePromise=Xs(t=>Bge(this.providers,e,t));try{const t=new xo(!1);if(this.activeLinksList=await this.computePromise,this.debounceInformation.update(e,t.elapsed()),e.isDisposed())return;this.updateDecorations(this.activeLinksList.links)}catch(t){Mt(t)}finally{this.computePromise=null}}}updateDecorations(e){const t=this.editor.getOption(78)===\"altKey\",i=[],s=Object.keys(this.currentOccurrences);for(const r of s){const a=this.currentOccurrences[r];i.push(a.decorationId)}const o=[];if(e)for(const r of e)o.push(gC.decoration(r,t));this.editor.changeDecorations(r=>{const a=r.deltaDecorations(i,o);this.currentOccurrences={},this.activeLinkDecorationId=null;for(let l=0,c=a.length;l<c;l++){const d=new gC(e[l],a[l]);this.currentOccurrences[d.decorationId]=d}})}_onEditorMouseMove(e,t){const i=this.editor.getOption(78)===\"altKey\";if(this.isEnabled(e,t)){this.cleanUpActiveLinkDecoration();const s=this.getLinkOccurrence(e.target.position);s&&this.editor.changeDecorations(o=>{s.activate(o,i),this.activeLinkDecorationId=s.decorationId})}else this.cleanUpActiveLinkDecoration()}cleanUpActiveLinkDecoration(){const e=this.editor.getOption(78)===\"altKey\";if(this.activeLinkDecorationId){const t=this.currentOccurrences[this.activeLinkDecorationId];t&&this.editor.changeDecorations(i=>{t.deactivate(i,e)}),this.activeLinkDecorationId=null}}onEditorMouseUp(e){if(!this.isEnabled(e))return;const t=this.getLinkOccurrence(e.target.position);t&&this.openLinkOccurrence(t,e.hasSideBySideModifier,!0)}openLinkOccurrence(e,t,i=!1){if(!this.openerService)return;const{link:s}=e;s.resolve(Qt.None).then(o=>{if(typeof o==\"string\"&&this.editor.hasModel()){const r=this.editor.getModel().uri;if(r.scheme===Tt.file&&o.startsWith(`${Tt.file}:`)){const a=pt.parse(o);if(a.scheme===Tt.file){const l=Bu(a);let c=null;l.startsWith(\"/./\")||l.startsWith(\"\\\\.\\\\\")?c=`.${l.substr(1)}`:(l.startsWith(\"//./\")||l.startsWith(\"\\\\\\\\.\\\\\"))&&(c=`.${l.substr(2)}`),c&&(o=cBe(r,c))}}}return this.openerService.open(o,{openToSide:t,fromUserGesture:i,allowContributedOpeners:!0,allowCommands:!0,fromWorkspace:!0})},o=>{const r=o instanceof Error?o.message:o;r===\"invalid\"?this.notificationService.warn(v(\"invalid.url\",\"Failed to open this link because it is not well-formed: {0}\",s.url.toString())):r===\"missing\"?this.notificationService.warn(v(\"missing.url\",\"Failed to open this link because its target is missing.\")):Mt(o)})}getLinkOccurrence(e){if(!this.editor.hasModel()||!e)return null;const t=this.editor.getModel().getDecorationsInRange({startLineNumber:e.lineNumber,startColumn:e.column,endLineNumber:e.lineNumber,endColumn:e.column},0,!0);for(const i of t){const s=this.currentOccurrences[i.id];if(s)return s}return null}isEnabled(e,t){return!!(e.target.type===6&&(e.hasTriggerModifier||t&&t.keyCodeIsTriggerKey))}stop(){var e;this.computeLinks.cancel(),this.activeLinksList&&((e=this.activeLinksList)===null||e===void 0||e.dispose(),this.activeLinksList=null),this.computePromise&&(this.computePromise.cancel(),this.computePromise=null)}dispose(){super.dispose(),this.stop()}};fw.ID=\"editor.linkDetector\";fw=VW=Gtt([WT(1,$a),WT(2,ps),WT(3,Xe),WT(4,_c)],fw);const Ute={general:Wt.register({description:\"detected-link\",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:\"detected-link\"}),active:Wt.register({description:\"detected-link-active\",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:\"detected-link-active\"})};class gC{static decoration(e,t){return{range:e.range,options:gC._getOptions(e,t,!1)}}static _getOptions(e,t,i){const s={...i?Ute.active:Ute.general};return s.hoverMessage=Ztt(e,t),s}constructor(e,t){this.link=e,this.decorationId=t}activate(e,t){e.changeDecorationOptions(this.decorationId,gC._getOptions(this.link,t,!0))}deactivate(e,t){e.changeDecorationOptions(this.decorationId,gC._getOptions(this.link,t,!1))}}function Ztt(n,e){const t=n.url&&/^command:/i.test(n.url.toString()),i=n.tooltip?n.tooltip:t?v(\"links.navigate.executeCmd\",\"Execute command\"):v(\"links.navigate.follow\",\"Follow link\"),s=e?Xt?v(\"links.navigate.kb.meta.mac\",\"cmd + click\"):v(\"links.navigate.kb.meta\",\"ctrl + click\"):Xt?v(\"links.navigate.kb.alt.mac\",\"option + click\"):v(\"links.navigate.kb.alt\",\"alt + click\");if(n.url){let o=\"\";if(/^command:/i.test(n.url.toString())){const a=n.url.toString().match(/^command:([^?#]+)/);if(a){const l=a[1];o=v(\"tooltip.explanation\",\"Execute command {0}\",l)}}return new $o(\"\",!0).appendLink(n.url.toString(!0).replace(/ /g,\"%20\"),i,o).appendMarkdown(` (${s})`)}else return new $o().appendText(`${i} (${s})`)}class Ytt extends Ke{constructor(){super({id:\"editor.action.openLink\",label:v(\"label\",\"Open Link\"),alias:\"Open Link\",precondition:void 0})}run(e,t){const i=fw.get(t);if(!i||!t.hasModel())return;const s=t.getSelections();for(const o of s){const r=i.getLinkOccurrence(o.getEndPosition());r&&i.openLinkOccurrence(r,!1)}}}bi(fw.ID,fw,1);xe(Ytt);class zW extends ne{constructor(e){super(),this._editor=e,this._register(this._editor.onMouseDown(t=>{const i=this._editor.getOption(117);i>=0&&t.target.type===6&&t.target.position.column>=i&&this._editor.updateOptions({stopRenderingLineAfter:-1})}))}}zW.ID=\"editor.contrib.longLinesHelper\";bi(zW.ID,zW,2);const HT=V(\"editor.wordHighlightBackground\",{dark:\"#575757B8\",light:\"#57575740\",hcDark:null,hcLight:null},v(\"wordHighlight\",\"Background color of a symbol during read-access, like reading a variable. The color must not be opaque so as not to hide underlying decorations.\"),!0);V(\"editor.wordHighlightStrongBackground\",{dark:\"#004972B8\",light:\"#0e639c40\",hcDark:null,hcLight:null},v(\"wordHighlightStrong\",\"Background color of a symbol during write-access, like writing to a variable. The color must not be opaque so as not to hide underlying decorations.\"),!0);V(\"editor.wordHighlightTextBackground\",{light:HT,dark:HT,hcDark:HT,hcLight:HT},v(\"wordHighlightText\",\"Background color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations.\"),!0);const VT=V(\"editor.wordHighlightBorder\",{light:null,dark:null,hcDark:En,hcLight:En},v(\"wordHighlightBorder\",\"Border color of a symbol during read-access, like reading a variable.\"));V(\"editor.wordHighlightStrongBorder\",{light:null,dark:null,hcDark:En,hcLight:En},v(\"wordHighlightStrongBorder\",\"Border color of a symbol during write-access, like writing to a variable.\"));V(\"editor.wordHighlightTextBorder\",{light:VT,dark:VT,hcDark:VT,hcLight:VT},v(\"wordHighlightTextBorder\",\"Border color of a textual occurrence for a symbol.\"));const Xtt=V(\"editorOverviewRuler.wordHighlightForeground\",{dark:\"#A0A0A0CC\",light:\"#A0A0A0CC\",hcDark:\"#A0A0A0CC\",hcLight:\"#A0A0A0CC\"},v(\"overviewRulerWordHighlightForeground\",\"Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations.\"),!0),Qtt=V(\"editorOverviewRuler.wordHighlightStrongForeground\",{dark:\"#C0A0C0CC\",light:\"#C0A0C0CC\",hcDark:\"#C0A0C0CC\",hcLight:\"#C0A0C0CC\"},v(\"overviewRulerWordHighlightStrongForeground\",\"Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations.\"),!0),Jtt=V(\"editorOverviewRuler.wordHighlightTextForeground\",{dark:SS,light:SS,hcDark:SS,hcLight:SS},v(\"overviewRulerWordHighlightTextForeground\",\"Overview ruler marker color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations.\"),!0),eit=Wt.register({description:\"word-highlight-strong\",stickiness:1,className:\"wordHighlightStrong\",overviewRuler:{color:Yn(Qtt),position:Sl.Center},minimap:{color:Yn(NM),position:1}}),tit=Wt.register({description:\"word-highlight-text\",stickiness:1,className:\"wordHighlightText\",overviewRuler:{color:Yn(Jtt),position:Sl.Center},minimap:{color:Yn(NM),position:1}}),iit=Wt.register({description:\"selection-highlight-overview\",stickiness:1,className:\"selectionHighlight\",overviewRuler:{color:Yn(SS),position:Sl.Center},minimap:{color:Yn(NM),position:1}}),nit=Wt.register({description:\"selection-highlight\",stickiness:1,className:\"selectionHighlight\"}),sit=Wt.register({description:\"word-highlight\",stickiness:1,className:\"wordHighlight\",overviewRuler:{color:Yn(Xtt),position:Sl.Center},minimap:{color:Yn(NM),position:1}});function oit(n){return n===lL.Write?eit:n===lL.Text?tit:sit}function rit(n){return n?nit:iit}mc((n,e)=>{const t=n.getColor(kz);t&&e.addRule(`.monaco-editor .selectionHighlight { background-color: ${t.transparent(.5)}; }`)});var ait=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},lit=function(n,e){return function(t,i){e(t,i,n)}},$W;function C_(n,e){const t=e.filter(i=>!n.find(s=>s.equals(i)));if(t.length>=1){const i=t.map(o=>`line ${o.viewState.position.lineNumber} column ${o.viewState.position.column}`).join(\", \"),s=t.length===1?v(\"cursorAdded\",\"Cursor added: {0}\",i):v(\"cursorsAdded\",\"Cursors added: {0}\",i);Ih(s)}}class cit extends Ke{constructor(){super({id:\"editor.action.insertCursorAbove\",label:v(\"mutlicursor.insertAbove\",\"Add Cursor Above\"),alias:\"Add Cursor Above\",precondition:void 0,kbOpts:{kbExpr:W.editorTextFocus,primary:2576,linux:{primary:1552,secondary:[3088]},weight:100},menuOpts:{menuId:R.MenubarSelectionMenu,group:\"3_multi\",title:v({},\"&&Add Cursor Above\"),order:2}})}run(e,t,i){if(!t.hasModel())return;let s=!0;i&&i.logicalLine===!1&&(s=!1);const o=t._getViewModel();if(o.cursorConfig.readOnly)return;o.model.pushStackElement();const r=o.getCursorStates();o.setCursorStates(i.source,3,po.addCursorUp(o,r,s)),o.revealTopMostCursor(i.source),C_(r,o.getCursorStates())}}class dit extends Ke{constructor(){super({id:\"editor.action.insertCursorBelow\",label:v(\"mutlicursor.insertBelow\",\"Add Cursor Below\"),alias:\"Add Cursor Below\",precondition:void 0,kbOpts:{kbExpr:W.editorTextFocus,primary:2578,linux:{primary:1554,secondary:[3090]},weight:100},menuOpts:{menuId:R.MenubarSelectionMenu,group:\"3_multi\",title:v({},\"A&&dd Cursor Below\"),order:3}})}run(e,t,i){if(!t.hasModel())return;let s=!0;i&&i.logicalLine===!1&&(s=!1);const o=t._getViewModel();if(o.cursorConfig.readOnly)return;o.model.pushStackElement();const r=o.getCursorStates();o.setCursorStates(i.source,3,po.addCursorDown(o,r,s)),o.revealBottomMostCursor(i.source),C_(r,o.getCursorStates())}}class uit extends Ke{constructor(){super({id:\"editor.action.insertCursorAtEndOfEachLineSelected\",label:v(\"mutlicursor.insertAtEndOfEachLineSelected\",\"Add Cursors to Line Ends\"),alias:\"Add Cursors to Line Ends\",precondition:void 0,kbOpts:{kbExpr:W.editorTextFocus,primary:1575,weight:100},menuOpts:{menuId:R.MenubarSelectionMenu,group:\"3_multi\",title:v({},\"Add C&&ursors to Line Ends\"),order:4}})}getCursorsForSelection(e,t,i){if(!e.isEmpty()){for(let s=e.startLineNumber;s<e.endLineNumber;s++){const o=t.getLineMaxColumn(s);i.push(new it(s,o,s,o))}e.endColumn>1&&i.push(new it(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn))}}run(e,t){if(!t.hasModel())return;const i=t.getModel(),s=t.getSelections(),o=t._getViewModel(),r=o.getCursorStates(),a=[];s.forEach(l=>this.getCursorsForSelection(l,i,a)),a.length>0&&t.setSelections(a),C_(r,o.getCursorStates())}}class hit extends Ke{constructor(){super({id:\"editor.action.addCursorsToBottom\",label:v(\"mutlicursor.addCursorsToBottom\",\"Add Cursors To Bottom\"),alias:\"Add Cursors To Bottom\",precondition:void 0})}run(e,t){if(!t.hasModel())return;const i=t.getSelections(),s=t.getModel().getLineCount(),o=[];for(let l=i[0].startLineNumber;l<=s;l++)o.push(new it(l,i[0].startColumn,l,i[0].endColumn));const r=t._getViewModel(),a=r.getCursorStates();o.length>0&&t.setSelections(o),C_(a,r.getCursorStates())}}class fit extends Ke{constructor(){super({id:\"editor.action.addCursorsToTop\",label:v(\"mutlicursor.addCursorsToTop\",\"Add Cursors To Top\"),alias:\"Add Cursors To Top\",precondition:void 0})}run(e,t){if(!t.hasModel())return;const i=t.getSelections(),s=[];for(let a=i[0].startLineNumber;a>=1;a--)s.push(new it(a,i[0].startColumn,a,i[0].endColumn));const o=t._getViewModel(),r=o.getCursorStates();s.length>0&&t.setSelections(s),C_(r,o.getCursorStates())}}class zT{constructor(e,t,i){this.selections=e,this.revealRange=t,this.revealScrollType=i}}class Ek{static create(e,t){if(!e.hasModel())return null;const i=t.getState();if(!e.hasTextFocus()&&i.isRevealed&&i.searchString.length>0)return new Ek(e,t,!1,i.searchString,i.wholeWord,i.matchCase,null);let s=!1,o,r;const a=e.getSelections();a.length===1&&a[0].isEmpty()?(s=!0,o=!0,r=!0):(o=i.wholeWord,r=i.matchCase);const l=e.getSelection();let c,d=null;if(l.isEmpty()){const u=e.getConfiguredWordAtPosition(l.getStartPosition());if(!u)return null;c=u.word,d=new it(l.startLineNumber,u.startColumn,l.startLineNumber,u.endColumn)}else c=e.getModel().getValueInRange(l).replace(/\\r\\n/g,`\n`);return new Ek(e,t,s,c,o,r,d)}constructor(e,t,i,s,o,r,a){this._editor=e,this.findController=t,this.isDisconnectedFromFindController=i,this.searchText=s,this.wholeWord=o,this.matchCase=r,this.currentMatch=a}addSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const e=this._getNextMatch();if(!e)return null;const t=this._editor.getSelections();return new zT(t.concat(e),e,0)}moveSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const e=this._getNextMatch();if(!e)return null;const t=this._editor.getSelections();return new zT(t.slice(0,t.length-1).concat(e),e,0)}_getNextMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const s=this.currentMatch;return this.currentMatch=null,s}this.findController.highlightFindOptions();const e=this._editor.getSelections(),t=e[e.length-1],i=this._editor.getModel().findNextMatch(this.searchText,t.getEndPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(131):null,!1);return i?new it(i.range.startLineNumber,i.range.startColumn,i.range.endLineNumber,i.range.endColumn):null}addSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;const e=this._getPreviousMatch();if(!e)return null;const t=this._editor.getSelections();return new zT(t.concat(e),e,0)}moveSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;const e=this._getPreviousMatch();if(!e)return null;const t=this._editor.getSelections();return new zT(t.slice(0,t.length-1).concat(e),e,0)}_getPreviousMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const s=this.currentMatch;return this.currentMatch=null,s}this.findController.highlightFindOptions();const e=this._editor.getSelections(),t=e[e.length-1],i=this._editor.getModel().findPreviousMatch(this.searchText,t.getStartPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(131):null,!1);return i?new it(i.range.startLineNumber,i.range.startColumn,i.range.endLineNumber,i.range.endColumn):null}selectAll(e){if(!this._editor.hasModel())return[];this.findController.highlightFindOptions();const t=this._editor.getModel();return e?t.findMatches(this.searchText,e,!1,this.matchCase,this.wholeWord?this._editor.getOption(131):null,!1,1073741824):t.findMatches(this.searchText,!0,!1,this.matchCase,this.wholeWord?this._editor.getOption(131):null,!1,1073741824)}}class O0 extends ne{static get(e){return e.getContribution(O0.ID)}constructor(e){super(),this._sessionDispose=this._register(new be),this._editor=e,this._ignoreSelectionChange=!1,this._session=null}dispose(){this._endSession(),super.dispose()}_beginSessionIfNeeded(e){if(!this._session){const t=Ek.create(this._editor,e);if(!t)return;this._session=t;const i={searchString:this._session.searchText};this._session.isDisconnectedFromFindController&&(i.wholeWordOverride=1,i.matchCaseOverride=1,i.isRegexOverride=2),e.getState().change(i,!1),this._sessionDispose.add(this._editor.onDidChangeCursorSelection(s=>{this._ignoreSelectionChange||this._endSession()})),this._sessionDispose.add(this._editor.onDidBlurEditorText(()=>{this._endSession()})),this._sessionDispose.add(e.getState().onFindReplaceStateChange(s=>{(s.matchCase||s.wholeWord)&&this._endSession()}))}}_endSession(){if(this._sessionDispose.clear(),this._session&&this._session.isDisconnectedFromFindController){const e={wholeWordOverride:0,matchCaseOverride:0,isRegexOverride:0};this._session.findController.getState().change(e,!1)}this._session=null}_setSelections(e){this._ignoreSelectionChange=!0,this._editor.setSelections(e),this._ignoreSelectionChange=!1}_expandEmptyToWord(e,t){if(!t.isEmpty())return t;const i=this._editor.getConfiguredWordAtPosition(t.getStartPosition());return i?new it(t.startLineNumber,i.startColumn,t.startLineNumber,i.endColumn):t}_applySessionResult(e){e&&(this._setSelections(e.selections),e.revealRange&&this._editor.revealRangeInCenterIfOutsideViewport(e.revealRange,e.revealScrollType))}getSession(e){return this._session}addSelectionToNextFindMatch(e){if(this._editor.hasModel()){if(!this._session){const t=this._editor.getSelections();if(t.length>1){const s=e.getState().matchCase;if(!Wge(this._editor.getModel(),t,s)){const r=this._editor.getModel(),a=[];for(let l=0,c=t.length;l<c;l++)a[l]=this._expandEmptyToWord(r,t[l]);this._editor.setSelections(a);return}}}this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.addSelectionToNextFindMatch())}}addSelectionToPreviousFindMatch(e){this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.addSelectionToPreviousFindMatch())}moveSelectionToNextFindMatch(e){this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.moveSelectionToNextFindMatch())}moveSelectionToPreviousFindMatch(e){this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.moveSelectionToPreviousFindMatch())}selectAll(e){if(!this._editor.hasModel())return;let t=null;const i=e.getState();if(i.isRevealed&&i.searchString.length>0&&i.isRegex){const s=this._editor.getModel();i.searchScope?t=s.findMatches(i.searchString,i.searchScope,i.isRegex,i.matchCase,i.wholeWord?this._editor.getOption(131):null,!1,1073741824):t=s.findMatches(i.searchString,!0,i.isRegex,i.matchCase,i.wholeWord?this._editor.getOption(131):null,!1,1073741824)}else{if(this._beginSessionIfNeeded(e),!this._session)return;t=this._session.selectAll(i.searchScope)}if(t.length>0){const s=this._editor.getSelection();for(let o=0,r=t.length;o<r;o++){const a=t[o];if(a.range.intersectRanges(s)){t[o]=t[0],t[0]=a;break}}this._setSelections(t.map(o=>new it(o.range.startLineNumber,o.range.startColumn,o.range.endLineNumber,o.range.endColumn)))}}}O0.ID=\"editor.contrib.multiCursorController\";class Xw extends Ke{run(e,t){const i=O0.get(t);if(!i)return;const s=t._getViewModel();if(s){const o=s.getCursorStates(),r=Vr.get(t);if(r)this._run(i,r);else{const a=e.get(ht).createInstance(Vr,t);this._run(i,a),a.dispose()}C_(o,s.getCursorStates())}}}class git extends Xw{constructor(){super({id:\"editor.action.addSelectionToNextFindMatch\",label:v(\"addSelectionToNextFindMatch\",\"Add Selection To Next Find Match\"),alias:\"Add Selection To Next Find Match\",precondition:void 0,kbOpts:{kbExpr:W.focus,primary:2082,weight:100},menuOpts:{menuId:R.MenubarSelectionMenu,group:\"3_multi\",title:v({},\"Add &&Next Occurrence\"),order:5}})}_run(e,t){e.addSelectionToNextFindMatch(t)}}class pit extends Xw{constructor(){super({id:\"editor.action.addSelectionToPreviousFindMatch\",label:v(\"addSelectionToPreviousFindMatch\",\"Add Selection To Previous Find Match\"),alias:\"Add Selection To Previous Find Match\",precondition:void 0,menuOpts:{menuId:R.MenubarSelectionMenu,group:\"3_multi\",title:v({},\"Add P&&revious Occurrence\"),order:6}})}_run(e,t){e.addSelectionToPreviousFindMatch(t)}}class mit extends Xw{constructor(){super({id:\"editor.action.moveSelectionToNextFindMatch\",label:v(\"moveSelectionToNextFindMatch\",\"Move Last Selection To Next Find Match\"),alias:\"Move Last Selection To Next Find Match\",precondition:void 0,kbOpts:{kbExpr:W.focus,primary:Os(2089,2082),weight:100}})}_run(e,t){e.moveSelectionToNextFindMatch(t)}}class _it extends Xw{constructor(){super({id:\"editor.action.moveSelectionToPreviousFindMatch\",label:v(\"moveSelectionToPreviousFindMatch\",\"Move Last Selection To Previous Find Match\"),alias:\"Move Last Selection To Previous Find Match\",precondition:void 0})}_run(e,t){e.moveSelectionToPreviousFindMatch(t)}}class vit extends Xw{constructor(){super({id:\"editor.action.selectHighlights\",label:v(\"selectAllOccurrencesOfFindMatch\",\"Select All Occurrences of Find Match\"),alias:\"Select All Occurrences of Find Match\",precondition:void 0,kbOpts:{kbExpr:W.focus,primary:3114,weight:100},menuOpts:{menuId:R.MenubarSelectionMenu,group:\"3_multi\",title:v({},\"Select All &&Occurrences\"),order:7}})}_run(e,t){e.selectAll(t)}}class bit extends Xw{constructor(){super({id:\"editor.action.changeAll\",label:v(\"changeAll.label\",\"Change All Occurrences\"),alias:\"Change All Occurrences\",precondition:pe.and(W.writable,W.editorTextFocus),kbOpts:{kbExpr:W.editorTextFocus,primary:2108,weight:100},contextMenuOpts:{group:\"1_modification\",order:1.2}})}_run(e,t){e.selectAll(t)}}class Cit{constructor(e,t,i,s,o){this._model=e,this._searchText=t,this._matchCase=i,this._wordSeparators=s,this._modelVersionId=this._model.getVersionId(),this._cachedFindMatches=null,o&&this._model===o._model&&this._searchText===o._searchText&&this._matchCase===o._matchCase&&this._wordSeparators===o._wordSeparators&&this._modelVersionId===o._modelVersionId&&(this._cachedFindMatches=o._cachedFindMatches)}findMatches(){return this._cachedFindMatches===null&&(this._cachedFindMatches=this._model.findMatches(this._searchText,!0,!1,this._matchCase,this._wordSeparators,!1).map(e=>e.range),this._cachedFindMatches.sort(A.compareRangesUsingStarts)),this._cachedFindMatches}}let Tk=$W=class extends ne{constructor(e,t){super(),this._languageFeaturesService=t,this.editor=e,this._isEnabled=e.getOption(108),this._decorations=e.createDecorationsCollection(),this.updateSoon=this._register(new Xi(()=>this._update(),300)),this.state=null,this._register(e.onDidChangeConfiguration(s=>{this._isEnabled=e.getOption(108)})),this._register(e.onDidChangeCursorSelection(s=>{this._isEnabled&&(s.selection.isEmpty()?s.reason===3?(this.state&&this._setState(null),this.updateSoon.schedule()):this._setState(null):this._update())})),this._register(e.onDidChangeModel(s=>{this._setState(null)})),this._register(e.onDidChangeModelContent(s=>{this._isEnabled&&this.updateSoon.schedule()}));const i=Vr.get(e);i&&this._register(i.getState().onFindReplaceStateChange(s=>{this._update()})),this.updateSoon.schedule()}_update(){this._setState($W._createState(this.state,this._isEnabled,this.editor))}static _createState(e,t,i){if(!t||!i.hasModel())return null;const s=i.getSelection();if(s.startLineNumber!==s.endLineNumber)return null;const o=O0.get(i);if(!o)return null;const r=Vr.get(i);if(!r)return null;let a=o.getSession(r);if(!a){const d=i.getSelections();if(d.length>1){const h=r.getState().matchCase;if(!Wge(i.getModel(),d,h))return null}a=Ek.create(i,r)}if(!a||a.currentMatch||/^[ \\t]+$/.test(a.searchText)||a.searchText.length>200)return null;const l=r.getState(),c=l.matchCase;if(l.isRevealed){let d=l.searchString;c||(d=d.toLowerCase());let u=a.searchText;if(c||(u=u.toLowerCase()),d===u&&a.matchCase===l.matchCase&&a.wholeWord===l.wholeWord&&!l.isRegex)return null}return new Cit(i.getModel(),a.searchText,a.matchCase,a.wholeWord?i.getOption(131):null,e)}_setState(e){if(this.state=e,!this.state){this._decorations.clear();return}if(!this.editor.hasModel())return;const t=this.editor.getModel();if(t.isTooLargeForTokenization())return;const i=this.state.findMatches(),s=this.editor.getSelections();s.sort(A.compareRangesUsingStarts);const o=[];for(let c=0,d=0,u=i.length,h=s.length;c<u;){const f=i[c];if(d>=h)o.push(f),c++;else{const g=A.compareRangesUsingStarts(f,s[d]);g<0?((s[d].isEmpty()||!A.areIntersecting(f,s[d]))&&o.push(f),c++):(g>0||c++,d++)}}const r=this.editor.getOption(81)!==\"off\",a=this._languageFeaturesService.documentHighlightProvider.has(t)&&r,l=o.map(c=>({range:c,options:rit(a)}));this._decorations.set(l)}dispose(){this._setState(null),super.dispose()}};Tk.ID=\"editor.contrib.selectionHighlighter\";Tk=$W=ait([lit(1,Xe)],Tk);function Wge(n,e,t){const i=jte(n,e[0],!t);for(let s=1,o=e.length;s<o;s++){const r=e[s];if(r.isEmpty())return!1;const a=jte(n,r,!t);if(i!==a)return!1}return!0}function jte(n,e,t){const i=n.getValueInRange(e);return t?i.toLowerCase():i}class wit extends Ke{constructor(){super({id:\"editor.action.focusNextCursor\",label:v(\"mutlicursor.focusNextCursor\",\"Focus Next Cursor\"),metadata:{description:v(\"mutlicursor.focusNextCursor.description\",\"Focuses the next cursor\"),args:[]},alias:\"Focus Next Cursor\",precondition:void 0})}run(e,t,i){if(!t.hasModel())return;const s=t._getViewModel();if(s.cursorConfig.readOnly)return;s.model.pushStackElement();const o=Array.from(s.getCursorStates()),r=o.shift();r&&(o.push(r),s.setCursorStates(i.source,3,o),s.revealPrimaryCursor(i.source,!0),C_(o,s.getCursorStates()))}}class yit extends Ke{constructor(){super({id:\"editor.action.focusPreviousCursor\",label:v(\"mutlicursor.focusPreviousCursor\",\"Focus Previous Cursor\"),metadata:{description:v(\"mutlicursor.focusPreviousCursor.description\",\"Focuses the previous cursor\"),args:[]},alias:\"Focus Previous Cursor\",precondition:void 0})}run(e,t,i){if(!t.hasModel())return;const s=t._getViewModel();if(s.cursorConfig.readOnly)return;s.model.pushStackElement();const o=Array.from(s.getCursorStates()),r=o.pop();r&&(o.unshift(r),s.setCursorStates(i.source,3,o),s.revealPrimaryCursor(i.source,!0),C_(o,s.getCursorStates()))}}bi(O0.ID,O0,4);bi(Tk.ID,Tk,1);xe(cit);xe(dit);xe(uit);xe(git);xe(pit);xe(mit);xe(_it);xe(vit);xe(bit);xe(hit);xe(fit);xe(wit);xe(yit);const Sit=\"editor.action.inlineEdit.accept\",xit=\"editor.action.inlineEdit.reject\",Lit=\"editor.action.inlineEdit.jumpTo\",kit=\"editor.action.inlineEdit.jumpBack\";var Dit=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Iit=function(n,e){return function(t,i){e(t,i,n)}};const b3=\"inline-edit\";let UW=class extends ne{constructor(e,t,i){super(),this.editor=e,this.model=t,this.languageService=i,this.isDisposed=li(this,!1),this.currentTextModel=qi(this.editor.onDidChangeModel,()=>this.editor.getModel()),this.uiState=Rt(this,s=>{var o;if(this.isDisposed.read(s))return;const r=this.currentTextModel.read(s);if(r!==this.model.targetTextModel.read(s))return;const a=this.model.ghostText.read(s);if(!a)return;let l=(o=this.model.range)===null||o===void 0?void 0:o.read(s);l&&l.startLineNumber===l.endLineNumber&&l.startColumn===l.endColumn&&(l=void 0);const c=(l?l.startLineNumber===l.endLineNumber:!0)&&a.parts.length===1&&a.parts[0].lines.length===1,d=a.parts.length===1&&a.parts[0].lines.every(y=>y.length===0),u=[],h=[];function f(y,S){if(h.length>0){const x=h[h.length-1];S&&x.decorations.push(new Rr(x.content.length+1,x.content.length+1+y[0].length,S,0)),x.content+=y[0],y=y.slice(1)}for(const x of y)h.push({content:x,decorations:S?[new Rr(1,x.length+1,S,0)]:[]})}const g=r.getLineContent(a.lineNumber);let p,_=0;if(!d){for(const y of a.parts){let S=y.lines;l&&!c&&(f(S,b3),S=[]),p===void 0?(u.push({column:y.column,text:S[0],preview:y.preview}),S=S.slice(1)):f([g.substring(_,y.column-1)],void 0),S.length>0&&(f(S,b3),p===void 0&&y.column<=g.length&&(p=y.column)),_=y.column-1}p!==void 0&&f([g.substring(_)],void 0)}const b=p!==void 0?new vge(p,g.length+1):void 0,w=c||!l?a.lineNumber:l.endLineNumber-1;return{inlineTexts:u,additionalLines:h,hiddenRange:b,lineNumber:w,additionalReservedLineCount:this.model.minReservedLineCount.read(s),targetTextModel:r,range:l,isSingleLine:c,isPureRemove:d,backgroundColoring:this.model.backgroundColoring.read(s)}}),this.decorations=Rt(this,s=>{const o=this.uiState.read(s);if(!o)return[];const r=[];if(o.hiddenRange&&r.push({range:o.hiddenRange.toRange(o.lineNumber),options:{inlineClassName:\"inline-edit-hidden\",description:\"inline-edit-hidden\"}}),o.range){const a=[];if(o.isSingleLine)a.push(o.range);else if(o.isPureRemove){const c=o.range.endLineNumber-o.range.startLineNumber;for(let d=0;d<c;d++){const u=o.range.startLineNumber+d,h=o.targetTextModel.getLineFirstNonWhitespaceColumn(u),f=o.targetTextModel.getLineLastNonWhitespaceColumn(u),g=new A(u,h,u,f);a.push(g)}}else{const c=o.range.endLineNumber-o.range.startLineNumber;for(let d=0;d<c;d++){const u=o.range.startLineNumber+d,h=o.targetTextModel.getLineFirstNonWhitespaceColumn(u),f=o.targetTextModel.getLineLastNonWhitespaceColumn(u),g=new A(u,h,u,f);a.push(g)}}const l=o.backgroundColoring?\"inline-edit-remove backgroundColoring\":\"inline-edit-remove\";for(const c of a)r.push({range:c,options:{inlineClassName:l,description:\"inline-edit-remove\"}})}for(const a of o.inlineTexts)r.push({range:A.fromPositions(new ee(o.lineNumber,a.column)),options:{description:b3,after:{content:a.text,inlineClassName:a.preview?\"inline-edit-decoration-preview\":\"inline-edit-decoration\",cursorStops:qc.Left},showIfCollapsed:!0}});return r}),this.additionalLinesWidget=this._register(new Cge(this.editor,this.languageService.languageIdCodec,Rt(s=>{const o=this.uiState.read(s);return o&&!o.isPureRemove?{lineNumber:o.lineNumber,additionalLines:o.additionalLines,minReservedLineCount:o.additionalReservedLineCount,targetTextModel:o.targetTextModel}:void 0}))),this._register(dt(()=>{this.isDisposed.set(!0,void 0)})),this._register(bge(this.editor,this.decorations))}ownsViewZone(e){return this.additionalLinesWidget.viewZoneId===e}};UW=Dit([Iit(2,An)],UW);var VU=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Zu=function(n,e){return function(t,i){e(t,i,n)}},$N;let jW=class extends ne{constructor(e,t,i){super(),this.editor=e,this.model=t,this.instantiationService=i,this.alwaysShowToolbar=qi(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(63).showToolbar===\"always\"),this.sessionPosition=void 0,this.position=Rt(this,s=>{var o,r,a;const l=(o=this.model.read(s))===null||o===void 0?void 0:o.widget.model.ghostText.read(s);if(!this.alwaysShowToolbar.read(s)||!l||l.parts.length===0)return this.sessionPosition=void 0,null;const c=l.parts[0].column;this.sessionPosition&&this.sessionPosition.lineNumber!==l.lineNumber&&(this.sessionPosition=void 0);const d=new ee(l.lineNumber,Math.min(c,(a=(r=this.sessionPosition)===null||r===void 0?void 0:r.column)!==null&&a!==void 0?a:Number.MAX_SAFE_INTEGER));return this.sessionPosition=d,d}),this._register(uc((s,o)=>{if(!this.model.read(s)||!this.alwaysShowToolbar.read(s))return;const a=o.add(this.instantiationService.createInstance(gw,this.editor,!0,this.position));e.addContentWidget(a),o.add(dt(()=>e.removeContentWidget(a)))}))}};jW=VU([Zu(2,ht)],jW);let gw=$N=class extends ne{constructor(e,t,i,s,o,r){super(),this.editor=e,this.withBorder=t,this._position=i,this._contextKeyService=o,this._menuService=r,this.id=`InlineEditHintsContentWidget${$N.id++}`,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this.nodes=wi(\"div.inlineEditHints\",{className:this.withBorder?\".withBorder\":\"\"},[wi(\"div@toolBar\")]),this.inlineCompletionsActionsMenus=this._register(this._menuService.createMenu(R.InlineEditActions,this._contextKeyService)),this.toolBar=this._register(s.createInstance(KW,this.nodes.toolBar,this.editor,R.InlineEditToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:a=>a.startsWith(\"primary\")},actionViewItemProvider:(a,l)=>{if(a instanceof Na)return s.createInstance(Eit,a,void 0)},telemetrySource:\"InlineEditToolbar\"})),this._register(this.toolBar.onDidChangeDropdownVisibility(a=>{$N._dropDownVisible=a})),this._register(Ut(a=>{this._position.read(a),this.editor.layoutContentWidget(this)})),this._register(Ut(a=>{const l=[];for(const[c,d]of this.inlineCompletionsActionsMenus.getActions())for(const u of d)u instanceof Na&&l.push(u);l.length>0&&l.unshift(new Ms),this.toolBar.setAdditionalSecondaryActions(l)}))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}};gw._dropDownVisible=!1;gw.id=0;gw=$N=VU([Zu(3,ht),Zu(4,Ct),Zu(5,Dl)],gw);class Eit extends Um{updateLabel(){const e=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!e)return super.updateLabel();if(this.label){const t=wi(\"div.keybinding\").root;this._register(new $w(t,Da,{disableTitle:!0,...Sue})).set(e),this.label.textContent=this._action.label,this.label.appendChild(t),this.label.classList.add(\"inlineEditStatusBarItemLabel\")}}updateTooltip(){}}let KW=class extends ok{constructor(e,t,i,s,o,r,a,l,c,d){super(e,{resetMenu:i,...s},o,r,a,l,c,d),this.editor=t,this.menuId=i,this.options2=s,this.menuService=o,this.contextKeyService=r,this.menu=this._store.add(this.menuService.createMenu(this.menuId,this.contextKeyService,{emitEventsForSubmenuChanges:!0})),this.additionalActions=[],this.prependedPrimaryActions=[],this._store.add(this.menu.onDidChange(()=>this.updateToolbar())),this._store.add(this.editor.onDidChangeCursorPosition(()=>this.updateToolbar())),this.updateToolbar()}updateToolbar(){var e,t,i,s,o,r,a;const l=[],c=[];rP(this.menu,(e=this.options2)===null||e===void 0?void 0:e.menuOptions,{primary:l,secondary:c},(i=(t=this.options2)===null||t===void 0?void 0:t.toolbarOptions)===null||i===void 0?void 0:i.primaryGroup,(o=(s=this.options2)===null||s===void 0?void 0:s.toolbarOptions)===null||o===void 0?void 0:o.shouldInlineSubmenu,(a=(r=this.options2)===null||r===void 0?void 0:r.toolbarOptions)===null||a===void 0?void 0:a.useSeparatorsInPrimaryActions),c.push(...this.additionalActions),l.unshift(...this.prependedPrimaryActions),this.setActions(l,c)}setAdditionalSecondaryActions(e){zn(this.additionalActions,e,(t,i)=>t===i)||(this.additionalActions=e,this.updateToolbar())}};KW=VU([Zu(4,Dl),Zu(5,Ct),Zu(6,za),Zu(7,Li),Zu(8,Sn),Zu(9,Po)],KW);var Tit=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},nS=function(n,e){return function(t,i){e(t,i,n)}},Rv;class Nit{constructor(e,t){this.widget=e,this.edit=t}dispose(){this.widget.dispose()}}let $s=Rv=class extends ne{static get(e){return e.getContribution(Rv.ID)}constructor(e,t,i,s,o,r){super(),this.editor=e,this.instantiationService=t,this.contextKeyService=i,this.languageFeaturesService=s,this._commandService=o,this._configurationService=r,this._isVisibleContext=Rv.inlineEditVisibleContext.bindTo(this.contextKeyService),this._isCursorAtInlineEditContext=Rv.cursorAtInlineEditContext.bindTo(this.contextKeyService),this._currentEdit=this._register(KL(this,void 0)),this._isAccepting=li(this,!1),this._enabled=qi(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(63).enabled),this._fontFamily=qi(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(63).fontFamily),this._backgroundColoring=qi(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(63).backgroundColoring);const a=Ko(\"InlineEditController.modelContentChangedSignal\",e.onDidChangeModelContent);this._register(Ut(h=>{this._enabled.read(h)&&(a.read(h),!this._isAccepting.read(h)&&this.getInlineEdit(e,!0))}));const l=qi(e.onDidChangeCursorPosition,()=>e.getPosition());this._register(Ut(h=>{if(!this._enabled.read(h))return;const f=l.read(h);f&&this.checkCursorPosition(f)})),this._register(Ut(h=>{const f=this._currentEdit.read(h);if(this._isCursorAtInlineEditContext.set(!1),!f){this._isVisibleContext.set(!1);return}this._isVisibleContext.set(!0);const g=e.getPosition();g&&this.checkCursorPosition(g)}));const c=Ko(\"InlineEditController.editorBlurSignal\",e.onDidBlurEditorWidget);this._register(Ut(async h=>{var f;this._enabled.read(h)&&(c.read(h),!(this._configurationService.getValue(\"editor.experimentalInlineEdit.keepOnBlur\")||e.getOption(63).keepOnBlur)&&((f=this._currentRequestCts)===null||f===void 0||f.dispose(!0),this._currentRequestCts=void 0,await this.clear(!1)))}));const d=Ko(\"InlineEditController.editorFocusSignal\",e.onDidFocusEditorText);this._register(Ut(h=>{this._enabled.read(h)&&(d.read(h),this.getInlineEdit(e,!0))}));const u=this._register(Kae());this._register(Ut(h=>{const f=this._fontFamily.read(h);u.setStyle(f===\"\"||f===\"default\"?\"\":`\n.monaco-editor .inline-edit-decoration,\n.monaco-editor .inline-edit-decoration-preview,\n.monaco-editor .inline-edit {\n\tfont-family: ${f};\n}`)})),this._register(new jW(this.editor,this._currentEdit,this.instantiationService))}checkCursorPosition(e){var t;if(!this._currentEdit){this._isCursorAtInlineEditContext.set(!1);return}const i=(t=this._currentEdit.get())===null||t===void 0?void 0:t.edit;if(!i){this._isCursorAtInlineEditContext.set(!1);return}this._isCursorAtInlineEditContext.set(A.containsPosition(i.range,e))}validateInlineEdit(e,t){var i,s;if(t.text.includes(`\n`)&&t.range.startLineNumber!==t.range.endLineNumber&&t.range.startColumn!==t.range.endColumn){if(t.range.startColumn!==1)return!1;const r=t.range.endLineNumber,a=t.range.endColumn,l=(s=(i=e.getModel())===null||i===void 0?void 0:i.getLineLength(r))!==null&&s!==void 0?s:0;if(a!==l+1)return!1}return!0}async fetchInlineEdit(e,t){this._currentRequestCts&&this._currentRequestCts.dispose(!0);const i=e.getModel();if(!i)return;const s=i.getVersionId(),o=this.languageFeaturesService.inlineEditProvider.all(i);if(o.length===0)return;const r=o[0];this._currentRequestCts=new $n;const a=this._currentRequestCts.token,l=t?R2.Automatic:R2.Invoke;if(t&&await Ait(50,a),a.isCancellationRequested||i.isDisposed()||i.getVersionId()!==s)return;const d=await r.provideInlineEdit(i,{triggerKind:l},a);if(d&&!(a.isCancellationRequested||i.isDisposed()||i.getVersionId()!==s)&&this.validateInlineEdit(e,d))return d}async getInlineEdit(e,t){var i;this._isCursorAtInlineEditContext.set(!1),await this.clear();const s=await this.fetchInlineEdit(e,t);if(!s)return;const o=s.range.endLineNumber,r=s.range.endColumn,a=s.text.endsWith(`\n`)&&!(s.range.startLineNumber===s.range.endLineNumber&&s.range.startColumn===s.range.endColumn)?s.text.slice(0,-1):s.text,l=new wk(o,[new bR(r,a,!1)]),c=this.instantiationService.createInstance(UW,this.editor,{ghostText:Vd(l),minReservedLineCount:Vd(0),targetTextModel:Vd((i=this.editor.getModel())!==null&&i!==void 0?i:void 0),range:Vd(s.range),backgroundColoring:this._backgroundColoring});this._currentEdit.set(new Nit(c,s),void 0)}async trigger(){await this.getInlineEdit(this.editor,!1)}async jumpBack(){this._jumpBackPosition&&(this.editor.setPosition(this._jumpBackPosition),this.editor.revealPositionInCenterIfOutsideViewport(this._jumpBackPosition))}async accept(){var e;this._isAccepting.set(!0,void 0);const t=(e=this._currentEdit.get())===null||e===void 0?void 0:e.edit;if(!t)return;let i=t.text;t.text.startsWith(`\n`)&&(i=t.text.substring(1)),this.editor.pushUndoStop(),this.editor.executeEdits(\"acceptCurrent\",[Mn.replace(A.lift(t.range),i)]),t.accepted&&await this._commandService.executeCommand(t.accepted.id,...t.accepted.arguments||[]).then(void 0,as),this.freeEdit(t),rn(s=>{this._currentEdit.set(void 0,s),this._isAccepting.set(!1,s)})}jumpToCurrent(){var e,t;this._jumpBackPosition=(e=this.editor.getSelection())===null||e===void 0?void 0:e.getStartPosition();const i=(t=this._currentEdit.get())===null||t===void 0?void 0:t.edit;if(!i)return;const s=ee.lift({lineNumber:i.range.startLineNumber,column:i.range.startColumn});this.editor.setPosition(s),this.editor.revealPositionInCenterIfOutsideViewport(s)}async clear(e=!0){var t;const i=(t=this._currentEdit.get())===null||t===void 0?void 0:t.edit;i&&(i!=null&&i.rejected)&&e&&await this._commandService.executeCommand(i.rejected.id,...i.rejected.arguments||[]).then(void 0,as),i&&this.freeEdit(i),this._currentEdit.set(void 0,void 0)}freeEdit(e){const t=this.editor.getModel();if(!t)return;const i=this.languageFeaturesService.inlineEditProvider.all(t);i.length!==0&&i[0].freeInlineEdit(e)}shouldShowHoverAt(e){const t=this._currentEdit.get();if(!t)return!1;const i=t.edit,s=t.widget.model;if(A.containsPosition(i.range,e.getStartPosition())||A.containsPosition(i.range,e.getEndPosition()))return!0;const r=s.ghostText.get();return r?r.parts.some(a=>e.containsPosition(new ee(r.lineNumber,a.column))):!1}shouldShowHoverAtViewZone(e){var t,i;return(i=(t=this._currentEdit.get())===null||t===void 0?void 0:t.widget.ownsViewZone(e))!==null&&i!==void 0?i:!1}};$s.ID=\"editor.contrib.inlineEditController\";$s.inlineEditVisibleKey=\"inlineEditVisible\";$s.inlineEditVisibleContext=new He(Rv.inlineEditVisibleKey,!1);$s.cursorAtInlineEditKey=\"cursorAtInlineEdit\";$s.cursorAtInlineEditContext=new He(Rv.cursorAtInlineEditKey,!1);$s=Rv=Tit([nS(1,ht),nS(2,Ct),nS(3,Xe),nS(4,Sn),nS(5,qt)],$s);function Ait(n,e){return new Promise(t=>{let i;const s=setTimeout(()=>{i&&i.dispose(),t()},n);e&&(i=e.onCancellationRequested(()=>{clearTimeout(s),i&&i.dispose(),t()}))})}class Rit extends Ke{constructor(){super({id:Sit,label:\"Accept Inline Edit\",alias:\"Accept Inline Edit\",precondition:pe.and(W.writable,$s.inlineEditVisibleContext),kbOpts:[{weight:101,primary:2,kbExpr:pe.and(W.writable,$s.inlineEditVisibleContext,$s.cursorAtInlineEditContext)}],menuOpts:[{menuId:R.InlineEditToolbar,title:\"Accept\",group:\"primary\",order:1}]})}async run(e,t){const i=$s.get(t);await(i==null?void 0:i.accept())}}class Mit extends Ke{constructor(){const e=pe.and(W.writable,pe.not($s.inlineEditVisibleKey));super({id:\"editor.action.inlineEdit.trigger\",label:\"Trigger Inline Edit\",alias:\"Trigger Inline Edit\",precondition:e,kbOpts:{weight:101,primary:2646,kbExpr:e}})}async run(e,t){const i=$s.get(t);i==null||i.trigger()}}class Pit extends Ke{constructor(){const e=pe.and(W.writable,$s.inlineEditVisibleContext,pe.not($s.cursorAtInlineEditKey));super({id:Lit,label:\"Jump to Inline Edit\",alias:\"Jump to Inline Edit\",precondition:e,kbOpts:{weight:101,primary:2646,kbExpr:e},menuOpts:[{menuId:R.InlineEditToolbar,title:\"Jump To Edit\",group:\"primary\",order:3,when:e}]})}async run(e,t){const i=$s.get(t);i==null||i.jumpToCurrent()}}class Oit extends Ke{constructor(){const e=pe.and(W.writable,$s.cursorAtInlineEditContext);super({id:kit,label:\"Jump Back from Inline Edit\",alias:\"Jump Back from Inline Edit\",precondition:e,kbOpts:{weight:110,primary:2646,kbExpr:e},menuOpts:[{menuId:R.InlineEditToolbar,title:\"Jump Back\",group:\"primary\",order:3,when:e}]})}async run(e,t){const i=$s.get(t);i==null||i.jumpBack()}}class Fit extends Ke{constructor(){const e=pe.and(W.writable,$s.inlineEditVisibleContext);super({id:xit,label:\"Reject Inline Edit\",alias:\"Reject Inline Edit\",precondition:e,kbOpts:{weight:100,primary:9,kbExpr:e},menuOpts:[{menuId:R.InlineEditToolbar,title:\"Reject\",group:\"secondary\",order:2}]})}async run(e,t){const i=$s.get(t);await(i==null?void 0:i.clear())}}var Bit=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Kte=function(n,e){return function(t,i){e(t,i,n)}};class Wit{constructor(e,t,i){this.owner=e,this.range=t,this.controller=i}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}let qW=class{constructor(e,t,i){this._editor=e,this._instantiationService=t,this._telemetryService=i,this.hoverOrdinal=5}suggestHoverAnchor(e){const t=$s.get(this._editor);if(!t)return null;const i=e.target;if(i.type===8){const s=i.detail;if(t.shouldShowHoverAtViewZone(s.viewZoneId)){const o=i.range;return new Yv(1e3,this,o,e.event.posx,e.event.posy,!1)}}return i.type===7&&t.shouldShowHoverAt(i.range)?new Yv(1e3,this,i.range,e.event.posx,e.event.posy,!1):i.type===6&&i.detail.mightBeForeignElement&&t.shouldShowHoverAt(i.range)?new Yv(1e3,this,i.range,e.event.posx,e.event.posy,!1):null}computeSync(e,t){if(this._editor.getOption(63).showToolbar!==\"onHover\")return[];const i=$s.get(this._editor);return i&&i.shouldShowHoverAt(e.range)?[new Wit(this,e.range,i)]:[]}renderHoverParts(e,t){const i=new be;this._telemetryService.publicLog2(\"inlineEditHover.shown\");const s=this._instantiationService.createInstance(gw,this._editor,!1,Vd(null));return e.fragment.appendChild(s.getDomNode()),i.add(s),i}};qW=Bit([Kte(1,ht),Kte(2,Po)],qW);xe(Rit);xe(Fit);xe(Pit);xe(Oit);xe(Mit);bi($s.ID,$s,3);b_.register(qW);const F0={Visible:new He(\"parameterHintsVisible\",!1),MultipleSignatures:new He(\"parameterHintsMultipleSignatures\",!1)};async function Hge(n,e,t,i,s){const o=n.ordered(e);for(const r of o)try{const a=await r.provideSignatureHelp(e,t,s,i);if(a)return a}catch(a){as(a)}}ri.registerCommand(\"_executeSignatureHelpProvider\",async(n,...e)=>{const[t,i,s]=e;mi(pt.isUri(t)),mi(ee.isIPosition(i)),mi(typeof s==\"string\"||!s);const o=n.get(Xe),r=await n.get(fa).createModelReference(t);try{const a=await Hge(o.signatureHelpProvider,r.object.textEditorModel,ee.lift(i),{triggerKind:ph.Invoke,isRetrigger:!1,triggerCharacter:s},Qt.None);return a?(setTimeout(()=>a.dispose(),0),a.value):void 0}finally{r.dispose()}});var Ep;(function(n){n.Default={type:0};class e{constructor(s,o){this.request=s,this.previouslyActiveHints=o,this.type=2}}n.Pending=e;class t{constructor(s){this.hints=s,this.type=1}}n.Active=t})(Ep||(Ep={}));class dO extends ne{constructor(e,t,i=dO.DEFAULT_DELAY){super(),this._onChangedHints=this._register(new X),this.onChangedHints=this._onChangedHints.event,this.triggerOnType=!1,this._state=Ep.Default,this._pendingTriggers=[],this._lastSignatureHelpResult=this._register(new Qs),this.triggerChars=new j2,this.retriggerChars=new j2,this.triggerId=0,this.editor=e,this.providers=t,this.throttledDelayer=new sd(i),this._register(this.editor.onDidBlurEditorWidget(()=>this.cancel())),this._register(this.editor.onDidChangeConfiguration(()=>this.onEditorConfigurationChange())),this._register(this.editor.onDidChangeModel(s=>this.onModelChanged())),this._register(this.editor.onDidChangeModelLanguage(s=>this.onModelChanged())),this._register(this.editor.onDidChangeCursorSelection(s=>this.onCursorChange(s))),this._register(this.editor.onDidChangeModelContent(s=>this.onModelContentChange())),this._register(this.providers.onDidChange(this.onModelChanged,this)),this._register(this.editor.onDidType(s=>this.onDidType(s))),this.onEditorConfigurationChange(),this.onModelChanged()}get state(){return this._state}set state(e){this._state.type===2&&this._state.request.cancel(),this._state=e}cancel(e=!1){this.state=Ep.Default,this.throttledDelayer.cancel(),e||this._onChangedHints.fire(void 0)}trigger(e,t){const i=this.editor.getModel();if(!i||!this.providers.has(i))return;const s=++this.triggerId;this._pendingTriggers.push(e),this.throttledDelayer.trigger(()=>this.doTrigger(s),t).catch(Mt)}next(){if(this.state.type!==1)return;const e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,i=t%e===e-1,s=this.editor.getOption(86).cycle;if((e<2||i)&&!s){this.cancel();return}this.updateActiveSignature(i&&s?0:t+1)}previous(){if(this.state.type!==1)return;const e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,i=t===0,s=this.editor.getOption(86).cycle;if((e<2||i)&&!s){this.cancel();return}this.updateActiveSignature(i&&s?e-1:t-1)}updateActiveSignature(e){this.state.type===1&&(this.state=new Ep.Active({...this.state.hints,activeSignature:e}),this._onChangedHints.fire(this.state.hints))}async doTrigger(e){const t=this.state.type===1||this.state.type===2,i=this.getLastActiveHints();if(this.cancel(!0),this._pendingTriggers.length===0)return!1;const s=this._pendingTriggers.reduce(Hit);this._pendingTriggers=[];const o={triggerKind:s.triggerKind,triggerCharacter:s.triggerCharacter,isRetrigger:t,activeSignatureHelp:i};if(!this.editor.hasModel())return!1;const r=this.editor.getModel(),a=this.editor.getPosition();this.state=new Ep.Pending(Xs(l=>Hge(this.providers,r,a,o,l)),i);try{const l=await this.state.request;return e!==this.triggerId?(l==null||l.dispose(),!1):!l||!l.value.signatures||l.value.signatures.length===0?(l==null||l.dispose(),this._lastSignatureHelpResult.clear(),this.cancel(),!1):(this.state=new Ep.Active(l.value),this._lastSignatureHelpResult.value=l,this._onChangedHints.fire(this.state.hints),!0)}catch(l){return e===this.triggerId&&(this.state=Ep.Default),Mt(l),!1}}getLastActiveHints(){switch(this.state.type){case 1:return this.state.hints;case 2:return this.state.previouslyActiveHints;default:return}}get isTriggered(){return this.state.type===1||this.state.type===2||this.throttledDelayer.isTriggered()}onModelChanged(){this.cancel(),this.triggerChars.clear(),this.retriggerChars.clear();const e=this.editor.getModel();if(e)for(const t of this.providers.ordered(e)){for(const i of t.signatureHelpTriggerCharacters||[])if(i.length){const s=i.charCodeAt(0);this.triggerChars.add(s),this.retriggerChars.add(s)}for(const i of t.signatureHelpRetriggerCharacters||[])i.length&&this.retriggerChars.add(i.charCodeAt(0))}}onDidType(e){if(!this.triggerOnType)return;const t=e.length-1,i=e.charCodeAt(t);(this.triggerChars.has(i)||this.isTriggered&&this.retriggerChars.has(i))&&this.trigger({triggerKind:ph.TriggerCharacter,triggerCharacter:e.charAt(t)})}onCursorChange(e){e.source===\"mouse\"?this.cancel():this.isTriggered&&this.trigger({triggerKind:ph.ContentChange})}onModelContentChange(){this.isTriggered&&this.trigger({triggerKind:ph.ContentChange})}onEditorConfigurationChange(){this.triggerOnType=this.editor.getOption(86).enabled,this.triggerOnType||this.cancel()}dispose(){this.cancel(!0),super.dispose()}}dO.DEFAULT_DELAY=120;function Hit(n,e){switch(e.triggerKind){case ph.Invoke:return e;case ph.ContentChange:return n;case ph.TriggerCharacter:default:return e}}var Vit=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},$T=function(n,e){return function(t,i){e(t,i,n)}},GW;const Ya=ke,zit=Jn(\"parameter-hints-next\",Te.chevronDown,v(\"parameterHintsNextIcon\",\"Icon for show next parameter hint.\")),$it=Jn(\"parameter-hints-previous\",Te.chevronUp,v(\"parameterHintsPreviousIcon\",\"Icon for show previous parameter hint.\"));let kR=GW=class extends ne{constructor(e,t,i,s,o,r){super(),this.editor=e,this.model=t,this.telemetryService=r,this.renderDisposeables=this._register(new be),this.visible=!1,this.announcedLabel=null,this.allowEditorOverflow=!0,this.markdownRenderer=this._register(new Nh({editor:e},o,s)),this.keyVisible=F0.Visible.bindTo(i),this.keyMultipleSignatures=F0.MultipleSignatures.bindTo(i)}createParameterHintDOMNodes(){const e=Ya(\".editor-widget.parameter-hints-widget\"),t=we(e,Ya(\".phwrapper\"));t.tabIndex=-1;const i=we(t,Ya(\".controls\")),s=we(i,Ya(\".button\"+_t.asCSSSelector($it))),o=we(i,Ya(\".overloads\")),r=we(i,Ya(\".button\"+_t.asCSSSelector(zit)));this._register(ce(s,\"click\",h=>{ii.stop(h),this.previous()})),this._register(ce(r,\"click\",h=>{ii.stop(h),this.next()}));const a=Ya(\".body\"),l=new wD(a,{alwaysConsumeMouseWheel:!0});this._register(l),t.appendChild(l.getDomNode());const c=we(a,Ya(\".signature\")),d=we(a,Ya(\".docs\"));e.style.userSelect=\"text\",this.domNodes={element:e,signature:c,overloads:o,docs:d,scrollbar:l},this.editor.addContentWidget(this),this.hide(),this._register(this.editor.onDidChangeCursorSelection(h=>{this.visible&&this.editor.layoutContentWidget(this)}));const u=()=>{if(!this.domNodes)return;const h=this.editor.getOption(50);this.domNodes.element.style.fontSize=`${h.fontSize}px`,this.domNodes.element.style.lineHeight=`${h.lineHeight/h.fontSize}`};u(),this._register(Ae.chain(this.editor.onDidChangeConfiguration.bind(this.editor),h=>h.filter(f=>f.hasChanged(50)))(u)),this._register(this.editor.onDidLayoutChange(h=>this.updateMaxHeight())),this.updateMaxHeight()}show(){this.visible||(this.domNodes||this.createParameterHintDOMNodes(),this.keyVisible.set(!0),this.visible=!0,setTimeout(()=>{var e;(e=this.domNodes)===null||e===void 0||e.element.classList.add(\"visible\")},100),this.editor.layoutContentWidget(this))}hide(){var e;this.renderDisposeables.clear(),this.visible&&(this.keyVisible.reset(),this.visible=!1,this.announcedLabel=null,(e=this.domNodes)===null||e===void 0||e.element.classList.remove(\"visible\"),this.editor.layoutContentWidget(this))}getPosition(){return this.visible?{position:this.editor.getPosition(),preference:[1,2]}:null}render(e){var t;if(this.renderDisposeables.clear(),!this.domNodes)return;const i=e.signatures.length>1;this.domNodes.element.classList.toggle(\"multiple\",i),this.keyMultipleSignatures.set(i),this.domNodes.signature.innerText=\"\",this.domNodes.docs.innerText=\"\";const s=e.signatures[e.activeSignature];if(!s)return;const o=we(this.domNodes.signature,Ya(\".code\")),r=this.editor.getOption(50);o.style.fontSize=`${r.fontSize}px`,o.style.fontFamily=r.fontFamily;const a=s.parameters.length>0,l=(t=s.activeParameter)!==null&&t!==void 0?t:e.activeParameter;if(a)this.renderParameters(o,s,l);else{const u=we(o,Ya(\"span\"));u.textContent=s.label}const c=s.parameters[l];if(c!=null&&c.documentation){const u=Ya(\"span.documentation\");if(typeof c.documentation==\"string\")u.textContent=c.documentation;else{const h=this.renderMarkdownDocs(c.documentation);u.appendChild(h.element)}we(this.domNodes.docs,Ya(\"p\",{},u))}if(s.documentation!==void 0)if(typeof s.documentation==\"string\")we(this.domNodes.docs,Ya(\"p\",{},s.documentation));else{const u=this.renderMarkdownDocs(s.documentation);we(this.domNodes.docs,u.element)}const d=this.hasDocs(s,c);if(this.domNodes.signature.classList.toggle(\"has-docs\",d),this.domNodes.docs.classList.toggle(\"empty\",!d),this.domNodes.overloads.textContent=String(e.activeSignature+1).padStart(e.signatures.length.toString().length,\"0\")+\"/\"+e.signatures.length,c){let u=\"\";const h=s.parameters[l];Array.isArray(h.label)?u=s.label.substring(h.label[0],h.label[1]):u=h.label,h.documentation&&(u+=typeof h.documentation==\"string\"?`, ${h.documentation}`:`, ${h.documentation.value}`),s.documentation&&(u+=typeof s.documentation==\"string\"?`, ${s.documentation}`:`, ${s.documentation.value}`),this.announcedLabel!==u&&(la(v(\"hint\",\"{0}, hint\",u)),this.announcedLabel=u)}this.editor.layoutContentWidget(this),this.domNodes.scrollbar.scanDomNode()}renderMarkdownDocs(e){const t=new xo,i=this.renderDisposeables.add(this.markdownRenderer.render(e,{asyncRenderCallback:()=>{var o;(o=this.domNodes)===null||o===void 0||o.scrollbar.scanDomNode()}}));i.element.classList.add(\"markdown-docs\");const s=t.elapsed();return s>300&&this.telemetryService.publicLog2(\"parameterHints.parseMarkdown\",{renderDuration:s}),i}hasDocs(e,t){return!!(t&&typeof t.documentation==\"string\"&&Vp(t.documentation).length>0||t&&typeof t.documentation==\"object\"&&Vp(t.documentation).value.length>0||e.documentation&&typeof e.documentation==\"string\"&&Vp(e.documentation).length>0||e.documentation&&typeof e.documentation==\"object\"&&Vp(e.documentation.value).length>0)}renderParameters(e,t,i){const[s,o]=this.getParameterLabelOffsets(t,i),r=document.createElement(\"span\");r.textContent=t.label.substring(0,s);const a=document.createElement(\"span\");a.textContent=t.label.substring(s,o),a.className=\"parameter active\";const l=document.createElement(\"span\");l.textContent=t.label.substring(o),we(e,r,a,l)}getParameterLabelOffsets(e,t){const i=e.parameters[t];if(i){if(Array.isArray(i.label))return i.label;if(i.label.length){const s=new RegExp(`(\\\\W|^)${wl(i.label)}(?=\\\\W|$)`,\"g\");s.test(e.label);const o=s.lastIndex-i.label.length;return o>=0?[o,s.lastIndex]:[0,0]}else return[0,0]}else return[0,0]}next(){this.editor.focus(),this.model.next()}previous(){this.editor.focus(),this.model.previous()}getDomNode(){return this.domNodes||this.createParameterHintDOMNodes(),this.domNodes.element}getId(){return GW.ID}updateMaxHeight(){if(!this.domNodes)return;const t=`${Math.max(this.editor.getLayoutInfo().height/4,250)}px`;this.domNodes.element.style.maxHeight=t;const i=this.domNodes.element.getElementsByClassName(\"phwrapper\");i.length&&(i[0].style.maxHeight=t)}};kR.ID=\"editor.widget.parameterHintsWidget\";kR=GW=Vit([$T(2,Ct),$T(3,$a),$T(4,An),$T(5,Po)],kR);V(\"editorHoverWidget.highlightForeground\",{dark:Zc,light:Zc,hcDark:Zc,hcLight:Zc},v(\"editorHoverWidgetHighlightForeground\",\"Foreground color of the active item in the parameter hint.\"));var Uit=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},qte=function(n,e){return function(t,i){e(t,i,n)}},ZW;let B0=ZW=class extends ne{static get(e){return e.getContribution(ZW.ID)}constructor(e,t,i){super(),this.editor=e,this.model=this._register(new dO(e,i.signatureHelpProvider)),this._register(this.model.onChangedHints(s=>{var o;s?(this.widget.value.show(),this.widget.value.render(s)):(o=this.widget.rawValue)===null||o===void 0||o.hide()})),this.widget=new pu(()=>this._register(t.createInstance(kR,this.editor,this.model)))}cancel(){this.model.cancel()}previous(){var e;(e=this.widget.rawValue)===null||e===void 0||e.previous()}next(){var e;(e=this.widget.rawValue)===null||e===void 0||e.next()}trigger(e){this.model.trigger(e,0)}};B0.ID=\"editor.controller.parameterHints\";B0=ZW=Uit([qte(1,ht),qte(2,Xe)],B0);class jit extends Ke{constructor(){super({id:\"editor.action.triggerParameterHints\",label:v(\"parameterHints.trigger.label\",\"Trigger Parameter Hints\"),alias:\"Trigger Parameter Hints\",precondition:W.hasSignatureHelpProvider,kbOpts:{kbExpr:W.editorTextFocus,primary:3082,weight:100}})}run(e,t){const i=B0.get(t);i==null||i.trigger({triggerKind:ph.Invoke})}}bi(B0.ID,B0,2);xe(jit);const zU=175,$U=Us.bindToContribution(B0.get);Fe(new $U({id:\"closeParameterHints\",precondition:F0.Visible,handler:n=>n.cancel(),kbOpts:{weight:zU,kbExpr:W.focus,primary:9,secondary:[1033]}}));Fe(new $U({id:\"showPrevParameterHint\",precondition:pe.and(F0.Visible,F0.MultipleSignatures),handler:n=>n.previous(),kbOpts:{weight:zU,kbExpr:W.focus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}}));Fe(new $U({id:\"showNextParameterHint\",precondition:pe.and(F0.Visible,F0.MultipleSignatures),handler:n=>n.next(),kbOpts:{weight:zU,kbExpr:W.focus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}));var Kit=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},UT=function(n,e){return function(t,i){e(t,i,n)}};const Qw=new He(\"renameInputVisible\",!1,v(\"renameInputVisible\",\"Whether the rename input widget is visible\"));new He(\"renameInputFocused\",!1,v(\"renameInputFocused\",\"Whether the rename input widget is focused\"));let YW=class{constructor(e,t,i,s,o,r){this._editor=e,this._acceptKeybindings=t,this._themeService=i,this._keybindingService=s,this._logService=r,this.allowEditorOverflow=!0,this._disposables=new be,this._visibleContextKey=Qw.bindTo(o),this._isEditingRenameCandidate=!1,this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,this._candidates=new Set,this._beforeFirstInputFieldEditSW=new xo,this._inputWithButton=new qit,this._disposables.add(this._inputWithButton),this._editor.addContentWidget(this),this._disposables.add(this._editor.onDidChangeConfiguration(a=>{a.hasChanged(50)&&this._updateFont()})),this._disposables.add(i.onDidColorThemeChange(this._updateStyles,this))}dispose(){this._disposables.dispose(),this._editor.removeContentWidget(this)}getId(){return\"__renameInputWidget\"}getDomNode(){return this._domNode||(this._domNode=document.createElement(\"div\"),this._domNode.className=\"monaco-editor rename-box\",this._domNode.appendChild(this._inputWithButton.domNode),this._renameCandidateListView=this._disposables.add(new UU(this._domNode,{fontInfo:this._editor.getOption(50),onFocusChange:e=>{this._inputWithButton.input.value=e,this._isEditingRenameCandidate=!1},onSelectionChange:()=>{this._isEditingRenameCandidate=!1,this.acceptInput(!1)}})),this._disposables.add(this._inputWithButton.onDidInputChange(()=>{var e,t,i,s;((e=this._renameCandidateListView)===null||e===void 0?void 0:e.focusedCandidate)!==void 0&&(this._isEditingRenameCandidate=!0),(t=this._timeBeforeFirstInputFieldEdit)!==null&&t!==void 0||(this._timeBeforeFirstInputFieldEdit=this._beforeFirstInputFieldEditSW.elapsed()),((i=this._renameCandidateProvidersCts)===null||i===void 0?void 0:i.token.isCancellationRequested)===!1&&this._renameCandidateProvidersCts.cancel(),(s=this._renameCandidateListView)===null||s===void 0||s.clearFocus()})),this._label=document.createElement(\"div\"),this._label.className=\"rename-label\",this._domNode.appendChild(this._label),this._updateFont(),this._updateStyles(this._themeService.getColorTheme())),this._domNode}_updateStyles(e){var t,i,s,o,r;if(!this._domNode)return;const a=e.getColor(ig),l=e.getColor($le);this._domNode.style.backgroundColor=String((t=e.getColor(fs))!==null&&t!==void 0?t:\"\"),this._domNode.style.boxShadow=a?` 0 0 8px 2px ${a}`:\"\",this._domNode.style.border=l?`1px solid ${l}`:\"\",this._domNode.style.color=String((i=e.getColor(jle))!==null&&i!==void 0?i:\"\");const c=e.getColor(Kle);this._inputWithButton.domNode.style.backgroundColor=String((s=e.getColor(EB))!==null&&s!==void 0?s:\"\"),this._inputWithButton.input.style.backgroundColor=String((o=e.getColor(EB))!==null&&o!==void 0?o:\"\"),this._inputWithButton.domNode.style.borderWidth=c?\"1px\":\"0px\",this._inputWithButton.domNode.style.borderStyle=c?\"solid\":\"none\",this._inputWithButton.domNode.style.borderColor=(r=c==null?void 0:c.toString())!==null&&r!==void 0?r:\"none\"}_updateFont(){if(this._domNode===void 0)return;mi(this._label!==void 0,\"RenameWidget#_updateFont: _label must not be undefined given _domNode is defined\"),this._editor.applyFontInfo(this._inputWithButton.input);const e=this._editor.getOption(50);this._label.style.fontSize=`${this._computeLabelFontSize(e.fontSize)}px`}_computeLabelFontSize(e){return e*.8}getPosition(){if(!this._visible||!this._editor.hasModel()||!this._editor.getDomNode())return null;const e=Fm(this.getDomNode().ownerDocument.body),t=bs(this._editor.getDomNode()),i=this._getTopForPosition();this._nPxAvailableAbove=i+t.top,this._nPxAvailableBelow=e.height-this._nPxAvailableAbove;const s=this._editor.getOption(67),{totalHeight:o}=W0.getLayoutInfo({lineHeight:s}),r=this._nPxAvailableBelow>o*6?[2,1]:[1,2];return{position:this._position,preference:r}}beforeRender(){var e,t;const[i,s]=this._acceptKeybindings;return this._label.innerText=v({},\"{0} to Rename, {1} to Preview\",(e=this._keybindingService.lookupKeybinding(i))===null||e===void 0?void 0:e.getLabel(),(t=this._keybindingService.lookupKeybinding(s))===null||t===void 0?void 0:t.getLabel()),this._domNode.style.minWidth=\"200px\",null}afterRender(e){if(this._trace(\"invoking afterRender, position: \",e?\"not null\":\"null\"),e===null){this.cancelInput(!0,\"afterRender (because position is null)\");return}if(!this._editor.hasModel()||!this._editor.getDomNode())return;mi(this._renameCandidateListView),mi(this._nPxAvailableAbove!==void 0),mi(this._nPxAvailableBelow!==void 0);const t=Zf(this._inputWithButton.domNode),i=Zf(this._label);let s;e===2?s=this._nPxAvailableBelow:s=this._nPxAvailableAbove,this._renameCandidateListView.layout({height:s-i-t,width:Sa(this._inputWithButton.domNode)})}acceptInput(e){var t;this._trace(\"invoking acceptInput\"),(t=this._currentAcceptInput)===null||t===void 0||t.call(this,e)}cancelInput(e,t){var i;this._trace(`invoking cancelInput, caller: ${t}, _currentCancelInput: ${this._currentAcceptInput?\"not undefined\":\"undefined\"}`),(i=this._currentCancelInput)===null||i===void 0||i.call(this,e)}focusNextRenameSuggestion(){var e;!((e=this._renameCandidateListView)===null||e===void 0)&&e.focusNext()||(this._inputWithButton.input.value=this._currentName)}focusPreviousRenameSuggestion(){var e;!((e=this._renameCandidateListView)===null||e===void 0)&&e.focusPrevious()||(this._inputWithButton.input.value=this._currentName)}getInput(e,t,i,s,o){const{start:r,end:a}=this._getSelection(e,t);this._renameCts=o;const l=new be;this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,s===void 0?this._inputWithButton.button.style.display=\"none\":(this._inputWithButton.button.style.display=\"flex\",this._requestRenameCandidatesOnce=s,this._requestRenameCandidates(t,!1),l.add(ce(this._inputWithButton.button,\"click\",()=>this._requestRenameCandidates(t,!0))),l.add(ce(this._inputWithButton.button,Le.KEY_DOWN,d=>{const u=new ln(d);(u.equals(3)||u.equals(10))&&(u.stopPropagation(),u.preventDefault(),this._requestRenameCandidates(t,!0))}))),this._isEditingRenameCandidate=!1,this._domNode.classList.toggle(\"preview\",i),this._position=new ee(e.startLineNumber,e.startColumn),this._currentName=t,this._inputWithButton.input.value=t,this._inputWithButton.input.setAttribute(\"selectionStart\",r.toString()),this._inputWithButton.input.setAttribute(\"selectionEnd\",a.toString()),this._inputWithButton.input.size=Math.max((e.endColumn-e.startColumn)*1.1,20),this._beforeFirstInputFieldEditSW.reset(),l.add(dt(()=>{this._renameCts=void 0,o.dispose(!0)})),l.add(dt(()=>{this._renameCandidateProvidersCts!==void 0&&(this._renameCandidateProvidersCts.dispose(!0),this._renameCandidateProvidersCts=void 0)})),l.add(dt(()=>this._candidates.clear()));const c=new hD;return c.p.finally(()=>{l.dispose(),this._hide()}),this._currentCancelInput=d=>{var u;return this._trace(\"invoking _currentCancelInput\"),this._currentAcceptInput=void 0,this._currentCancelInput=void 0,(u=this._renameCandidateListView)===null||u===void 0||u.clearCandidates(),c.complete(d),!0},this._currentAcceptInput=d=>{this._trace(\"invoking _currentAcceptInput\"),mi(this._renameCandidateListView!==void 0);const u=this._renameCandidateListView.nCandidates;let h,f;const g=this._renameCandidateListView.focusedCandidate;if(g!==void 0?(this._trace(\"using new name from renameSuggestion\"),h=g,f={k:\"renameSuggestion\"}):(this._trace(\"using new name from inputField\"),h=this._inputWithButton.input.value,f=this._isEditingRenameCandidate?{k:\"userEditedRenameSuggestion\"}:{k:\"inputField\"}),h===t||h.trim().length===0){this.cancelInput(!0,\"_currentAcceptInput (because newName === value || newName.trim().length === 0)\");return}this._currentAcceptInput=void 0,this._currentCancelInput=void 0,this._renameCandidateListView.clearCandidates(),c.complete({newName:h,wantsPreview:i&&d,stats:{source:f,nRenameSuggestions:u,timeBeforeFirstInputFieldEdit:this._timeBeforeFirstInputFieldEdit,nRenameSuggestionsInvocations:this._nRenameSuggestionsInvocations,hadAutomaticRenameSuggestionsInvocation:this._hadAutomaticRenameSuggestionsInvocation}})},l.add(o.token.onCancellationRequested(()=>this.cancelInput(!0,\"cts.token.onCancellationRequested\"))),l.add(this._editor.onDidBlurEditorWidget(()=>{var d;return this.cancelInput(!(!((d=this._domNode)===null||d===void 0)&&d.ownerDocument.hasFocus()),\"editor.onDidBlurEditorWidget\")})),this._show(),c.p}_requestRenameCandidates(e,t){if(this._requestRenameCandidatesOnce!==void 0&&(this._renameCandidateProvidersCts!==void 0&&this._renameCandidateProvidersCts.dispose(!0),mi(this._renameCts),this._inputWithButton.buttonState!==\"stop\")){this._renameCandidateProvidersCts=new $n;const i=t?cL.Invoke:cL.Automatic,s=this._requestRenameCandidatesOnce(i,this._renameCandidateProvidersCts.token);if(s.length===0){this._inputWithButton.setSparkleButton();return}t||(this._hadAutomaticRenameSuggestionsInvocation=!0),this._nRenameSuggestionsInvocations+=1,this._inputWithButton.setStopButton(),this._updateRenameCandidates(s,e,this._renameCts.token)}}_getSelection(e,t){mi(this._editor.hasModel());const i=this._editor.getSelection();let s=0,o=t.length;return!A.isEmpty(i)&&!A.spansMultipleLines(i)&&A.containsRange(e,i)&&(s=Math.max(0,i.startColumn-e.startColumn),o=Math.min(e.endColumn,i.endColumn)-e.startColumn),{start:s,end:o}}_show(){this._trace(\"invoking _show\"),this._editor.revealLineInCenterIfOutsideViewport(this._position.lineNumber,0),this._visible=!0,this._visibleContextKey.set(!0),this._editor.layoutContentWidget(this),setTimeout(()=>{this._inputWithButton.input.focus(),this._inputWithButton.input.setSelectionRange(parseInt(this._inputWithButton.input.getAttribute(\"selectionStart\")),parseInt(this._inputWithButton.input.getAttribute(\"selectionEnd\")))},100)}async _updateRenameCandidates(e,t,i){const s=(...c)=>this._trace(\"_updateRenameCandidates\",...c);s(\"start\");const o=await uD(Promise.allSettled(e),i);if(this._inputWithButton.setSparkleButton(),o===void 0){s(\"returning early - received updateRenameCandidates results - undefined\");return}const r=o.flatMap(c=>c.status===\"fulfilled\"&&gh(c.value)?c.value:[]);s(`received updateRenameCandidates results - total (unfiltered) ${r.length} candidates.`);const a=xg(r,c=>c.newSymbolName);s(`distinct candidates - ${a.length} candidates.`);const l=a.filter(({newSymbolName:c})=>c.trim().length>0&&c!==this._inputWithButton.input.value&&c!==t&&!this._candidates.has(c));if(s(`valid distinct candidates - ${r.length} candidates.`),l.forEach(c=>this._candidates.add(c.newSymbolName)),l.length<1){s(\"returning early - no valid distinct candidates\");return}s(\"setting candidates\"),this._renameCandidateListView.setCandidates(l),s(\"asking editor to re-layout\"),this._editor.layoutContentWidget(this)}_hide(){this._trace(\"invoked _hide\"),this._visible=!1,this._visibleContextKey.reset(),this._editor.layoutContentWidget(this)}_getTopForPosition(){const e=this._editor.getVisibleRanges();let t;return e.length>0?t=e[0].startLineNumber:(this._logService.warn(\"RenameWidget#_getTopForPosition: this should not happen - visibleRanges is empty\"),t=Math.max(1,this._position.lineNumber-5)),this._editor.getTopForLineNumber(this._position.lineNumber)-this._editor.getTopForLineNumber(t)}_trace(...e){this._logService.trace(\"RenameWidget\",...e)}};YW=Kit([UT(2,js),UT(3,Li),UT(4,Ct),UT(5,er)],YW);class UU{constructor(e,t){this._disposables=new be,this._availableHeight=0,this._minimumWidth=0,this._lineHeight=t.fontInfo.lineHeight,this._typicalHalfwidthCharacterWidth=t.fontInfo.typicalHalfwidthCharacterWidth,this._listContainer=document.createElement(\"div\"),this._listContainer.className=\"rename-box rename-candidate-list-container\",e.appendChild(this._listContainer),this._listWidget=UU._createListWidget(this._listContainer,this._candidateViewHeight,t.fontInfo),this._listWidget.onDidChangeFocus(i=>{i.elements.length===1&&t.onFocusChange(i.elements[0].newSymbolName)},this._disposables),this._listWidget.onDidChangeSelection(i=>{i.elements.length===1&&t.onSelectionChange()},this._disposables),this._disposables.add(this._listWidget.onDidBlur(i=>{this._listWidget.setFocus([])})),this._listWidget.style(tb({listInactiveFocusForeground:qp,listInactiveFocusBackground:Gp}))}dispose(){this._listWidget.dispose(),this._disposables.dispose()}layout({height:e,width:t}){this._availableHeight=e,this._minimumWidth=t}setCandidates(e){this._listWidget.splice(0,0,e);const t=this._pickListHeight(this._listWidget.length),i=this._pickListWidth(e);this._listWidget.layout(t,i),this._listContainer.style.height=`${t}px`,this._listContainer.style.width=`${i}px`,Ih(v(\"renameSuggestionsReceivedAria\",\"Received {0} rename suggestions\",e.length))}clearCandidates(){this._listContainer.style.height=\"0px\",this._listContainer.style.width=\"0px\",this._listWidget.splice(0,this._listWidget.length,[])}get nCandidates(){return this._listWidget.length}get focusedCandidate(){if(this._listWidget.length===0)return;const e=this._listWidget.getSelectedElements()[0];if(e!==void 0)return e.newSymbolName;const t=this._listWidget.getFocusedElements()[0];if(t!==void 0)return t.newSymbolName}focusNext(){if(this._listWidget.length===0)return!1;const e=this._listWidget.getFocus();if(e.length===0)return this._listWidget.focusFirst(),this._listWidget.reveal(0),!0;if(e[0]===this._listWidget.length-1)return this._listWidget.setFocus([]),this._listWidget.reveal(0),!1;{this._listWidget.focusNext();const t=this._listWidget.getFocus()[0];return this._listWidget.reveal(t),!0}}focusPrevious(){if(this._listWidget.length===0)return!1;const e=this._listWidget.getFocus();if(e.length===0){this._listWidget.focusLast();const t=this._listWidget.getFocus()[0];return this._listWidget.reveal(t),!0}else{if(e[0]===0)return this._listWidget.setFocus([]),!1;{this._listWidget.focusPrevious();const t=this._listWidget.getFocus()[0];return this._listWidget.reveal(t),!0}}}clearFocus(){this._listWidget.setFocus([])}get _candidateViewHeight(){const{totalHeight:e}=W0.getLayoutInfo({lineHeight:this._lineHeight});return e}_pickListHeight(e){const t=this._candidateViewHeight*e;return Math.min(t,this._availableHeight,this._candidateViewHeight*7)}_pickListWidth(e){const t=Math.ceil(Math.max(...e.map(s=>s.newSymbolName.length))*this._typicalHalfwidthCharacterWidth);return Math.max(this._minimumWidth,25+t+10)}static _createListWidget(e,t,i){const s=new class{getTemplateId(r){return\"candidate\"}getHeight(r){return t}},o=new class{constructor(){this.templateId=\"candidate\"}renderTemplate(r){return new W0(r,i)}renderElement(r,a,l){l.populate(r)}disposeTemplate(r){r.dispose()}};return new El(\"NewSymbolNameCandidates\",e,s,[o],{keyboardSupport:!1,mouseSupport:!0,multipleSelectionSupport:!1})}}class qit{constructor(){this._onDidInputChange=new X,this.onDidInputChange=this._onDidInputChange.event,this._disposables=new be}get domNode(){return this._domNode||(this._domNode=document.createElement(\"div\"),this._domNode.className=\"rename-input-with-button\",this._domNode.style.display=\"flex\",this._domNode.style.flexDirection=\"row\",this._domNode.style.alignItems=\"center\",this._inputNode=document.createElement(\"input\"),this._inputNode.className=\"rename-input\",this._inputNode.type=\"text\",this._inputNode.style.border=\"none\",this._inputNode.setAttribute(\"aria-label\",v(\"renameAriaLabel\",\"Rename input. Type new name and press Enter to commit.\")),this._domNode.appendChild(this._inputNode),this._buttonNode=document.createElement(\"div\"),this._buttonNode.className=\"rename-suggestions-button\",this._buttonNode.setAttribute(\"tabindex\",\"0\"),this._buttonGenHoverText=v(\"generateRenameSuggestionsButton\",\"Generate new name suggestions\"),this._buttonCancelHoverText=v(\"cancelRenameSuggestionsButton\",\"Cancel\"),this._buttonHover=bu().setupUpdatableHover(Ur(\"element\"),this._buttonNode,this._buttonGenHoverText),this._disposables.add(this._buttonHover),this._domNode.appendChild(this._buttonNode),this._disposables.add(ce(this.input,Le.INPUT,()=>this._onDidInputChange.fire())),this._disposables.add(ce(this.input,Le.KEY_DOWN,e=>{const t=new ln(e);(t.keyCode===15||t.keyCode===17)&&this._onDidInputChange.fire()})),this._disposables.add(ce(this.input,Le.CLICK,()=>this._onDidInputChange.fire())),this._disposables.add(ce(this.input,Le.FOCUS,()=>{this.domNode.style.outlineWidth=\"1px\",this.domNode.style.outlineStyle=\"solid\",this.domNode.style.outlineOffset=\"-1px\",this.domNode.style.outlineColor=\"var(--vscode-focusBorder)\"})),this._disposables.add(ce(this.input,Le.BLUR,()=>{this.domNode.style.outline=\"none\"}))),this._domNode}get input(){return mi(this._inputNode),this._inputNode}get button(){return mi(this._buttonNode),this._buttonNode}get buttonState(){return this._buttonState}setSparkleButton(){var e,t;this._buttonState=\"sparkle\",(e=this._sparkleIcon)!==null&&e!==void 0||(this._sparkleIcon=_0(Te.sparkle)),wo(this.button),this.button.appendChild(this._sparkleIcon),this.button.setAttribute(\"aria-label\",\"Generating new name suggestions\"),(t=this._buttonHover)===null||t===void 0||t.update(this._buttonGenHoverText),this.input.focus()}setStopButton(){var e,t;this._buttonState=\"stop\",(e=this._stopIcon)!==null&&e!==void 0||(this._stopIcon=_0(Te.primitiveSquare)),wo(this.button),this.button.appendChild(this._stopIcon),this.button.setAttribute(\"aria-label\",\"Cancel generating new name suggestions\"),(t=this._buttonHover)===null||t===void 0||t.update(this._buttonCancelHoverText),this.input.focus()}dispose(){this._disposables.dispose()}}class W0{constructor(e,t){this._domNode=document.createElement(\"div\"),this._domNode.className=\"rename-box rename-candidate\",this._domNode.style.display=\"flex\",this._domNode.style.columnGap=\"5px\",this._domNode.style.alignItems=\"center\",this._domNode.style.height=`${t.lineHeight}px`,this._domNode.style.padding=`${W0._PADDING}px`;const i=document.createElement(\"div\");i.style.display=\"flex\",i.style.alignItems=\"center\",i.style.width=i.style.height=`${t.lineHeight*.8}px`,this._domNode.appendChild(i),this._icon=_0(Te.sparkle),this._icon.style.display=\"none\",i.appendChild(this._icon),this._label=document.createElement(\"div\"),So(this._label,t),this._domNode.appendChild(this._label),e.appendChild(this._domNode)}populate(e){this._updateIcon(e),this._updateLabel(e)}_updateIcon(e){var t;const i=!!(!((t=e.tags)===null||t===void 0)&&t.includes(s7.AIGenerated));this._icon.style.display=i?\"inherit\":\"none\"}_updateLabel(e){this._label.innerText=e.newSymbolName}static getLayoutInfo({lineHeight:e}){return{totalHeight:e+W0._PADDING*2}}dispose(){}}W0._PADDING=2;var Git=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},fp=function(n,e){return function(t,i){e(t,i,n)}},XW;class jU{constructor(e,t,i){this.model=e,this.position=t,this._providerRenameIdx=0,this._providers=i.ordered(e)}hasProvider(){return this._providers.length>0}async resolveRenameLocation(e){const t=[];for(this._providerRenameIdx=0;this._providerRenameIdx<this._providers.length;this._providerRenameIdx++){const s=this._providers[this._providerRenameIdx];if(!s.resolveRenameLocation)break;const o=await s.resolveRenameLocation(this.model,this.position,e);if(o){if(o.rejectReason){t.push(o.rejectReason);continue}return o}}this._providerRenameIdx=0;const i=this.model.getWordAtPosition(this.position);return i?{range:new A(this.position.lineNumber,i.startColumn,this.position.lineNumber,i.endColumn),text:i.word,rejectReason:t.length>0?t.join(`\n`):void 0}:{range:A.fromPositions(this.position),text:\"\",rejectReason:t.length>0?t.join(`\n`):void 0}}async provideRenameEdits(e,t){return this._provideRenameEdits(e,this._providerRenameIdx,[],t)}async _provideRenameEdits(e,t,i,s){const o=this._providers[t];if(!o)return{edits:[],rejectReason:i.join(`\n`)};const r=await o.provideRenameEdits(this.model,this.position,e,s);if(r){if(r.rejectReason)return this._provideRenameEdits(e,t+1,i.concat(r.rejectReason),s)}else return this._provideRenameEdits(e,t+1,i.concat(v(\"no result\",\"No result.\")),s);return r}}async function Zit(n,e,t,i){const s=new jU(e,t,n),o=await s.resolveRenameLocation(Qt.None);return o!=null&&o.rejectReason?{edits:[],rejectReason:o.rejectReason}:s.provideRenameEdits(i,Qt.None)}let Mg=XW=class{static get(e){return e.getContribution(XW.ID)}constructor(e,t,i,s,o,r,a,l,c){this.editor=e,this._instaService=t,this._notificationService=i,this._bulkEditService=s,this._progressService=o,this._logService=r,this._configService=a,this._languageFeaturesService=l,this._telemetryService=c,this._disposableStore=new be,this._cts=new $n,this._renameWidget=this._disposableStore.add(this._instaService.createInstance(YW,this.editor,[\"acceptRenameInput\",\"acceptRenameInputWithPreview\"]))}dispose(){this._disposableStore.dispose(),this._cts.dispose(!0)}async run(){var e,t;const i=this._logService.trace.bind(this._logService,\"[rename]\");if(this._cts.dispose(!0),this._cts=new $n,!this.editor.hasModel()){i(\"editor has no model\");return}const s=this.editor.getPosition(),o=new jU(this.editor.getModel(),s,this._languageFeaturesService.renameProvider);if(!o.hasProvider()){i(\"skeleton has no provider\");return}const r=new Km(this.editor,5,void 0,this._cts.token);let a;try{i(\"resolving rename location\");const _=o.resolveRenameLocation(r.token);this._progressService.showWhile(_,250),a=await _,i(\"resolved rename location\")}catch(_){_ instanceof nu?i(\"resolve rename location cancelled\",JSON.stringify(_,null,\"\t\")):(i(\"resolve rename location failed\",_ instanceof Error?_:JSON.stringify(_,null,\"\t\")),(typeof _==\"string\"||Xd(_))&&((e=Or.get(this.editor))===null||e===void 0||e.showMessage(_||v(\"resolveRenameLocationFailed\",\"An unknown error occurred while resolving rename location\"),s)));return}finally{r.dispose()}if(!a){i(\"returning early - no loc\");return}if(a.rejectReason){i(`returning early - rejected with reason: ${a.rejectReason}`,a.rejectReason),(t=Or.get(this.editor))===null||t===void 0||t.showMessage(a.rejectReason,s);return}if(r.token.isCancellationRequested){i(\"returning early - cts1 cancelled\");return}const l=new Km(this.editor,5,a.range,this._cts.token),c=this.editor.getModel(),d=this._languageFeaturesService.newSymbolNamesProvider.all(c),u=await Promise.all(d.map(async _=>{var b;return[_,(b=await _.supportsAutomaticNewSymbolNamesTriggerKind)!==null&&b!==void 0?b:!1]})),h=(_,b)=>{let w=u.slice();return _===cL.Automatic&&(w=w.filter(([y,S])=>S)),w.map(([y])=>y.provideNewSymbolNames(c,a.range,_,b))};i(\"creating rename input field and awaiting its result\");const f=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,\"editor.rename.enablePreview\"),g=await this._renameWidget.getInput(a.range,a.text,f,d.length>0?h:void 0,l);if(i(\"received response from rename input field\"),d.length>0&&this._reportTelemetry(d.length,c.getLanguageId(),g),typeof g==\"boolean\"){i(`returning early - rename input field response - ${g}`),g&&this.editor.focus(),l.dispose();return}this.editor.focus(),i(\"requesting rename edits\");const p=uD(o.provideRenameEdits(g.newName,l.token),l.token).then(async _=>{if(!_){i(\"returning early - no rename edits result\");return}if(!this.editor.hasModel()){i(\"returning early - no model after rename edits are provided\");return}if(_.rejectReason){i(`returning early - rejected with reason: ${_.rejectReason}`),this._notificationService.info(_.rejectReason);return}this.editor.setSelection(A.fromPositions(this.editor.getSelection().getPosition())),i(\"applying edits\"),this._bulkEditService.apply(_,{editor:this.editor,showPreview:g.wantsPreview,label:v(\"label\",\"Renaming '{0}' to '{1}'\",a==null?void 0:a.text,g.newName),code:\"undoredo.rename\",quotableLabel:v(\"quotableLabel\",\"Renaming {0} to {1}\",a==null?void 0:a.text,g.newName),respectAutoSaveConfig:!0}).then(b=>{i(\"edits applied\"),b.ariaSummary&&la(v(\"aria\",\"Successfully renamed '{0}' to '{1}'. Summary: {2}\",a.text,g.newName,b.ariaSummary))}).catch(b=>{i(`error when applying edits ${JSON.stringify(b,null,\"\t\")}`),this._notificationService.error(v(\"rename.failedApply\",\"Rename failed to apply edits\")),this._logService.error(b)})},_=>{i(\"error when providing rename edits\",JSON.stringify(_,null,\"\t\")),this._notificationService.error(v(\"rename.failed\",\"Rename failed to compute edits\")),this._logService.error(_)}).finally(()=>{l.dispose()});return i(\"returning rename operation\"),this._progressService.showWhile(p,250),p}acceptRenameInput(e){this._renameWidget.acceptInput(e)}cancelRenameInput(){this._renameWidget.cancelInput(!0,\"cancelRenameInput command\")}focusNextRenameSuggestion(){this._renameWidget.focusNextRenameSuggestion()}focusPreviousRenameSuggestion(){this._renameWidget.focusPreviousRenameSuggestion()}_reportTelemetry(e,t,i){const s=typeof i==\"boolean\"?{kind:\"cancelled\",languageId:t,nRenameSuggestionProviders:e}:{kind:\"accepted\",languageId:t,nRenameSuggestionProviders:e,source:i.stats.source.k,nRenameSuggestions:i.stats.nRenameSuggestions,timeBeforeFirstInputFieldEdit:i.stats.timeBeforeFirstInputFieldEdit,wantsPreview:i.wantsPreview,nRenameSuggestionsInvocations:i.stats.nRenameSuggestionsInvocations,hadAutomaticRenameSuggestionsInvocation:i.stats.hadAutomaticRenameSuggestionsInvocation};this._telemetryService.publicLog2(\"renameInvokedEvent\",s)}};Mg.ID=\"editor.contrib.renameController\";Mg=XW=Git([fp(1,ht),fp(2,ps),fp(3,ED),fp(4,m_),fp(5,er),fp(6,vz),fp(7,Xe),fp(8,Po)],Mg);class Yit extends Ke{constructor(){super({id:\"editor.action.rename\",label:v(\"rename.label\",\"Rename Symbol\"),alias:\"Rename Symbol\",precondition:pe.and(W.writable,W.hasRenameProvider),kbOpts:{kbExpr:W.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:\"1_modification\",order:1.1}})}runCommand(e,t){const i=e.get(vi),[s,o]=Array.isArray(t)&&t||[void 0,void 0];return pt.isUri(s)&&ee.isIPosition(o)?i.openCodeEditor({resource:s},i.getActiveCodeEditor()).then(r=>{r&&(r.setPosition(o),r.invokeWithinContext(a=>(this.reportTelemetry(a,r),this.run(a,r))))},Mt):super.runCommand(e,t)}run(e,t){const i=e.get(er),s=Mg.get(t);return s?(i.trace(\"[RenameAction] got controller, running...\"),s.run()):(i.trace(\"[RenameAction] returning early - controller missing\"),Promise.resolve())}}bi(Mg.ID,Mg,4);xe(Yit);const KU=Us.bindToContribution(Mg.get);Fe(new KU({id:\"acceptRenameInput\",precondition:Qw,handler:n=>n.acceptRenameInput(!1),kbOpts:{weight:199,kbExpr:pe.and(W.focus,pe.not(\"isComposing\")),primary:3}}));Fe(new KU({id:\"acceptRenameInputWithPreview\",precondition:pe.and(Qw,pe.has(\"config.editor.rename.enablePreview\")),handler:n=>n.acceptRenameInput(!0),kbOpts:{weight:199,kbExpr:pe.and(W.focus,pe.not(\"isComposing\")),primary:2051}}));Fe(new KU({id:\"cancelRenameInput\",precondition:Qw,handler:n=>n.cancelRenameInput(),kbOpts:{weight:199,kbExpr:W.focus,primary:9,secondary:[1033]}}));dn(class extends zr{constructor(){super({id:\"focusNextRenameSuggestion\",title:{...Nt(\"focusNextRenameSuggestion\",\"Focus Next Rename Suggestion\")},precondition:Qw,keybinding:[{primary:18,weight:199}]})}run(e){const t=e.get(vi).getFocusedCodeEditor();if(!t)return;const i=Mg.get(t);i&&i.focusNextRenameSuggestion()}});dn(class extends zr{constructor(){super({id:\"focusPreviousRenameSuggestion\",title:{...Nt(\"focusPreviousRenameSuggestion\",\"Focus Previous Rename Suggestion\")},precondition:Qw,keybinding:[{primary:16,weight:199}]})}run(e){const t=e.get(vi).getFocusedCodeEditor();if(!t)return;const i=Mg.get(t);i&&i.focusPreviousRenameSuggestion()}});Vh(\"_executeDocumentRenameProvider\",function(n,e,t,...i){const[s]=i;mi(typeof s==\"string\");const{renameProvider:o}=n.get(Xe);return Zit(o,e,t,s)});Vh(\"_executePrepareRename\",async function(n,e,t){const{renameProvider:i}=n.get(Xe),o=await new jU(e,t,i).resolveRenameLocation(Qt.None);if(o!=null&&o.rejectReason)throw new Error(o.rejectReason);return o});Un.as(_u.Configuration).registerConfiguration({id:\"editor\",properties:{\"editor.rename.enablePreview\":{scope:5,description:v(\"enablePreview\",\"Enable/disable the ability to preview changes before renaming\"),default:!0,type:\"boolean\"}}});var Xit=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Gte=function(n,e){return function(t,i){e(t,i,n)}};let Nk=class extends ne{constructor(e,t,i){super(),this.editor=e,this.languageConfigurationService=t,this.editorWorkerService=i,this.decorations=this.editor.createDecorationsCollection(),this.options=this.createOptions(e.getOption(73)),this.computePromise=null,this.currentOccurrences={},this._register(e.onDidChangeModel(s=>{this.currentOccurrences={},this.options=this.createOptions(e.getOption(73)),this.stop(),this.computeSectionHeaders.schedule(0)})),this._register(e.onDidChangeModelLanguage(s=>{this.currentOccurrences={},this.options=this.createOptions(e.getOption(73)),this.stop(),this.computeSectionHeaders.schedule(0)})),this._register(t.onDidChange(s=>{var o;const r=(o=this.editor.getModel())===null||o===void 0?void 0:o.getLanguageId();r&&s.affects(r)&&(this.currentOccurrences={},this.options=this.createOptions(e.getOption(73)),this.stop(),this.computeSectionHeaders.schedule(0))})),this._register(e.onDidChangeConfiguration(s=>{this.options&&!s.hasChanged(73)||(this.options=this.createOptions(e.getOption(73)),this.updateDecorations([]),this.stop(),this.computeSectionHeaders.schedule(0))})),this._register(this.editor.onDidChangeModelContent(s=>{this.computeSectionHeaders.schedule()})),this._register(e.onDidChangeModelTokens(s=>{this.computeSectionHeaders.isScheduled()||this.computeSectionHeaders.schedule(1e3)})),this.computeSectionHeaders=this._register(new Xi(()=>{this.findSectionHeaders()},250)),this.computeSectionHeaders.schedule(0)}createOptions(e){if(!e||!this.editor.hasModel())return;const t=this.editor.getModel().getLanguageId();if(!t)return;const i=this.languageConfigurationService.getLanguageConfiguration(t).comments,s=this.languageConfigurationService.getLanguageConfiguration(t).foldingRules;if(!(!i&&!(s!=null&&s.markers)))return{foldingRules:s,findMarkSectionHeaders:e.showMarkSectionHeaders,findRegionSectionHeaders:e.showRegionSectionHeaders}}findSectionHeaders(){var e,t;if(!this.editor.hasModel()||!(!((e=this.options)===null||e===void 0)&&e.findMarkSectionHeaders)&&!(!((t=this.options)===null||t===void 0)&&t.findRegionSectionHeaders))return;const i=this.editor.getModel();if(i.isDisposed()||i.isTooLargeForSyncing())return;const s=i.getVersionId();this.editorWorkerService.findSectionHeaders(i.uri,this.options).then(o=>{i.isDisposed()||i.getVersionId()!==s||this.updateDecorations(o)})}updateDecorations(e){const t=this.editor.getModel();t&&(e=e.filter(o=>{if(!o.shouldBeInComments)return!0;const r=t.validateRange(o.range),a=t.tokenization.getLineTokens(r.startLineNumber),l=a.findTokenIndexAtOffset(r.startColumn-1),c=a.getStandardTokenType(l);return a.getLanguageId(l)===t.getLanguageId()&&c===1}));const i=Object.values(this.currentOccurrences).map(o=>o.decorationId),s=e.map(o=>Qit(o));this.editor.changeDecorations(o=>{const r=o.deltaDecorations(i,s);this.currentOccurrences={};for(let a=0,l=r.length;a<l;a++){const c={sectionHeader:e[a],decorationId:r[a]};this.currentOccurrences[c.decorationId]=c}})}stop(){this.computeSectionHeaders.cancel(),this.computePromise&&(this.computePromise.cancel(),this.computePromise=null)}dispose(){super.dispose(),this.stop(),this.decorations.clear()}};Nk.ID=\"editor.sectionHeaderDetector\";Nk=Xit([Gte(1,gn),Gte(2,bc)],Nk);function Qit(n){return{range:n.range,options:Wt.createDynamic({description:\"section-header\",stickiness:3,collapseOnReplaceEdit:!0,minimap:{color:void 0,position:1,sectionHeaderStyle:n.hasSeparatorLine?2:1,sectionHeaderText:n.text}})}}bi(Nk.ID,Nk,1);function Jit(n){for(let e=0,t=n.length;e<t;e+=4){const i=n[e+0],s=n[e+1],o=n[e+2],r=n[e+3];n[e+0]=r,n[e+1]=o,n[e+2]=s,n[e+3]=i}}function ent(n){const e=new Uint8Array(n.buffer,n.byteOffset,n.length*4);return Zre()||Jit(e),LM.wrap(e)}function Vge(n){const e=new Uint32Array(tnt(n));let t=0;if(e[t++]=n.id,n.type===\"full\")e[t++]=1,e[t++]=n.data.length,e.set(n.data,t),t+=n.data.length;else{e[t++]=2,e[t++]=n.deltas.length;for(const i of n.deltas)e[t++]=i.start,e[t++]=i.deleteCount,i.data?(e[t++]=i.data.length,e.set(i.data,t),t+=i.data.length):e[t++]=0}return ent(e)}function tnt(n){let e=0;if(e+=2,n.type===\"full\")e+=1+n.data.length;else{e+=1,e+=3*n.deltas.length;for(const t of n.deltas)t.data&&(e+=t.data.length)}return e}function uO(n){return n&&!!n.data}function zge(n){return n&&Array.isArray(n.edits)}class int{constructor(e,t,i){this.provider=e,this.tokens=t,this.error=i}}function $ge(n,e){return n.has(e)}function nnt(n,e){const t=n.orderedGroups(e);return t.length>0?t[0]:[]}async function Uge(n,e,t,i,s){const o=nnt(n,e),r=await Promise.all(o.map(async a=>{let l,c=null;try{l=await a.provideDocumentSemanticTokens(e,a===t?i:null,s)}catch(d){c=d,l=null}return(!l||!uO(l)&&!zge(l))&&(l=null),new int(a,l,c)}));for(const a of r){if(a.error)throw a.error;if(a.tokens)return a}return r.length>0?r[0]:null}function snt(n,e){const t=n.orderedGroups(e);return t.length>0?t[0]:null}class ont{constructor(e,t){this.provider=e,this.tokens=t}}function rnt(n,e){return n.has(e)}function jge(n,e){const t=n.orderedGroups(e);return t.length>0?t[0]:[]}async function qU(n,e,t,i){const s=jge(n,e),o=await Promise.all(s.map(async r=>{let a;try{a=await r.provideDocumentRangeSemanticTokens(e,t,i)}catch(l){as(l),a=null}return(!a||!uO(a))&&(a=null),new ont(r,a)}));for(const r of o)if(r.tokens)return r;return o.length>0?o[0]:null}ri.registerCommand(\"_provideDocumentSemanticTokensLegend\",async(n,...e)=>{const[t]=e;mi(t instanceof pt);const i=n.get(Pn).getModel(t);if(!i)return;const{documentSemanticTokensProvider:s}=n.get(Xe),o=snt(s,i);return o?o[0].getLegend():n.get(Sn).executeCommand(\"_provideDocumentRangeSemanticTokensLegend\",t)});ri.registerCommand(\"_provideDocumentSemanticTokens\",async(n,...e)=>{const[t]=e;mi(t instanceof pt);const i=n.get(Pn).getModel(t);if(!i)return;const{documentSemanticTokensProvider:s}=n.get(Xe);if(!$ge(s,i))return n.get(Sn).executeCommand(\"_provideDocumentRangeSemanticTokens\",t,i.getFullModelRange());const o=await Uge(s,i,null,null,Qt.None);if(!o)return;const{provider:r,tokens:a}=o;if(!a||!uO(a))return;const l=Vge({id:0,type:\"full\",data:a.data});return a.resultId&&r.releaseDocumentSemanticTokens(a.resultId),l});ri.registerCommand(\"_provideDocumentRangeSemanticTokensLegend\",async(n,...e)=>{const[t,i]=e;mi(t instanceof pt);const s=n.get(Pn).getModel(t);if(!s)return;const{documentRangeSemanticTokensProvider:o}=n.get(Xe),r=jge(o,s);if(r.length===0)return;if(r.length===1)return r[0].getLegend();if(!i||!A.isIRange(i))return console.warn(\"provideDocumentRangeSemanticTokensLegend might be out-of-sync with provideDocumentRangeSemanticTokens unless a range argument is passed in\"),r[0].getLegend();const a=await qU(o,s,A.lift(i),Qt.None);if(a)return a.provider.getLegend()});ri.registerCommand(\"_provideDocumentRangeSemanticTokens\",async(n,...e)=>{const[t,i]=e;mi(t instanceof pt),mi(A.isIRange(i));const s=n.get(Pn).getModel(t);if(!s)return;const{documentRangeSemanticTokensProvider:o}=n.get(Xe),r=await qU(o,s,A.lift(i),Qt.None);if(!(!r||!r.tokens))return Vge({id:0,type:\"full\",data:r.tokens.data})});const GU=\"editor.semanticHighlighting\";function UN(n,e,t){var i;const s=(i=t.getValue(GU,{overrideIdentifier:n.getLanguageId(),resource:n.uri}))===null||i===void 0?void 0:i.enabled;return typeof s==\"boolean\"?s:e.getColorTheme().semanticHighlighting}var Kge=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Yu=function(n,e){return function(t,i){e(t,i,n)}},yp;let QW=class extends ne{constructor(e,t,i,s,o,r){super(),this._watchers=Object.create(null);const a=d=>{this._watchers[d.uri.toString()]=new Ak(d,e,i,o,r)},l=(d,u)=>{u.dispose(),delete this._watchers[d.uri.toString()]},c=()=>{for(const d of t.getModels()){const u=this._watchers[d.uri.toString()];UN(d,i,s)?u||a(d):u&&l(d,u)}};t.getModels().forEach(d=>{UN(d,i,s)&&a(d)}),this._register(t.onModelAdded(d=>{UN(d,i,s)&&a(d)})),this._register(t.onModelRemoved(d=>{const u=this._watchers[d.uri.toString()];u&&l(d,u)})),this._register(s.onDidChangeConfiguration(d=>{d.affectsConfiguration(GU)&&c()})),this._register(i.onDidColorThemeChange(c))}dispose(){for(const e of Object.values(this._watchers))e.dispose();super.dispose()}};QW=Kge([Yu(0,UM),Yu(1,Pn),Yu(2,js),Yu(3,qt),Yu(4,_c),Yu(5,Xe)],QW);let Ak=yp=class extends ne{constructor(e,t,i,s,o){super(),this._semanticTokensStylingService=t,this._isDisposed=!1,this._model=e,this._provider=o.documentSemanticTokensProvider,this._debounceInformation=s.for(this._provider,\"DocumentSemanticTokens\",{min:yp.REQUEST_MIN_DELAY,max:yp.REQUEST_MAX_DELAY}),this._fetchDocumentSemanticTokens=this._register(new Xi(()=>this._fetchDocumentSemanticTokensNow(),yp.REQUEST_MIN_DELAY)),this._currentDocumentResponse=null,this._currentDocumentRequestCancellationTokenSource=null,this._documentProvidersChangeListeners=[],this._providersChangedDuringRequest=!1,this._register(this._model.onDidChangeContent(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(this._model.onDidChangeAttached(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(this._model.onDidChangeLanguage(()=>{this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(0)}));const r=()=>{tn(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[];for(const a of this._provider.all(e))typeof a.onDidChange==\"function\"&&this._documentProvidersChangeListeners.push(a.onDidChange(()=>{if(this._currentDocumentRequestCancellationTokenSource){this._providersChangedDuringRequest=!0;return}this._fetchDocumentSemanticTokens.schedule(0)}))};r(),this._register(this._provider.onDidChange(()=>{r(),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(i.onDidColorThemeChange(a=>{this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._fetchDocumentSemanticTokens.schedule(0)}dispose(){this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),tn(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[],this._setDocumentSemanticTokens(null,null,null,[]),this._isDisposed=!0,super.dispose()}_fetchDocumentSemanticTokensNow(){if(this._currentDocumentRequestCancellationTokenSource)return;if(!$ge(this._provider,this._model)){this._currentDocumentResponse&&this._model.tokenization.setSemanticTokens(null,!1);return}if(!this._model.isAttachedToEditor())return;const e=new $n,t=this._currentDocumentResponse?this._currentDocumentResponse.provider:null,i=this._currentDocumentResponse&&this._currentDocumentResponse.resultId||null,s=Uge(this._provider,this._model,t,i,e.token);this._currentDocumentRequestCancellationTokenSource=e,this._providersChangedDuringRequest=!1;const o=[],r=this._model.onDidChangeContent(l=>{o.push(l)}),a=new xo(!1);s.then(l=>{if(this._debounceInformation.update(this._model,a.elapsed()),this._currentDocumentRequestCancellationTokenSource=null,r.dispose(),!l)this._setDocumentSemanticTokens(null,null,null,o);else{const{provider:c,tokens:d}=l,u=this._semanticTokensStylingService.getStyling(c);this._setDocumentSemanticTokens(c,d||null,u,o)}},l=>{l&&(ld(l)||typeof l.message==\"string\"&&l.message.indexOf(\"busy\")!==-1)||Mt(l),this._currentDocumentRequestCancellationTokenSource=null,r.dispose(),(o.length>0||this._providersChangedDuringRequest)&&(this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model)))})}static _copy(e,t,i,s,o){o=Math.min(o,i.length-s,e.length-t);for(let r=0;r<o;r++)i[s+r]=e[t+r]}_setDocumentSemanticTokens(e,t,i,s){const o=this._currentDocumentResponse,r=()=>{(s.length>0||this._providersChangedDuringRequest)&&!this._fetchDocumentSemanticTokens.isScheduled()&&this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))};if(this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._isDisposed){e&&t&&e.releaseDocumentSemanticTokens(t.resultId);return}if(!e||!i){this._model.tokenization.setSemanticTokens(null,!1);return}if(!t){this._model.tokenization.setSemanticTokens(null,!0),r();return}if(zge(t)){if(!o){this._model.tokenization.setSemanticTokens(null,!0);return}if(t.edits.length===0)t={resultId:t.resultId,data:o.data};else{let a=0;for(const h of t.edits)a+=(h.data?h.data.length:0)-h.deleteCount;const l=o.data,c=new Uint32Array(l.length+a);let d=l.length,u=c.length;for(let h=t.edits.length-1;h>=0;h--){const f=t.edits[h];if(f.start>l.length){i.warnInvalidEditStart(o.resultId,t.resultId,h,f.start,l.length),this._model.tokenization.setSemanticTokens(null,!0);return}const g=d-(f.start+f.deleteCount);g>0&&(yp._copy(l,d-g,c,u-g,g),u-=g),f.data&&(yp._copy(f.data,0,c,u-f.data.length,f.data.length),u-=f.data.length),d=f.start}d>0&&yp._copy(l,0,c,0,d),t={resultId:t.resultId,data:c}}}if(uO(t)){this._currentDocumentResponse=new ant(e,t.resultId,t.data);const a=sde(t,i,this._model.getLanguageId());if(s.length>0)for(const l of s)for(const c of a)for(const d of l.changes)c.applyEdit(d.range,d.text);this._model.tokenization.setSemanticTokens(a,!0)}else this._model.tokenization.setSemanticTokens(null,!0);r()}};Ak.REQUEST_MIN_DELAY=300;Ak.REQUEST_MAX_DELAY=2e3;Ak=yp=Kge([Yu(1,UM),Yu(2,js),Yu(3,_c),Yu(4,Xe)],Ak);class ant{constructor(e,t,i){this.provider=e,this.resultId=t,this.data=i}dispose(){this.provider.releaseDocumentSemanticTokens(this.resultId)}}WD(QW);var lnt=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},sS=function(n,e){return function(t,i){e(t,i,n)}};let Rk=class extends ne{constructor(e,t,i,s,o,r){super(),this._semanticTokensStylingService=t,this._themeService=i,this._configurationService=s,this._editor=e,this._provider=r.documentRangeSemanticTokensProvider,this._debounceInformation=o.for(this._provider,\"DocumentRangeSemanticTokens\",{min:100,max:500}),this._tokenizeViewport=this._register(new Xi(()=>this._tokenizeViewportNow(),100)),this._outstandingRequests=[];const a=()=>{this._editor.hasModel()&&this._tokenizeViewport.schedule(this._debounceInformation.get(this._editor.getModel()))};this._register(this._editor.onDidScrollChange(()=>{a()})),this._register(this._editor.onDidChangeModel(()=>{this._cancelAll(),a()})),this._register(this._editor.onDidChangeModelContent(l=>{this._cancelAll(),a()})),this._register(this._provider.onDidChange(()=>{this._cancelAll(),a()})),this._register(this._configurationService.onDidChangeConfiguration(l=>{l.affectsConfiguration(GU)&&(this._cancelAll(),a())})),this._register(this._themeService.onDidColorThemeChange(()=>{this._cancelAll(),a()})),a()}_cancelAll(){for(const e of this._outstandingRequests)e.cancel();this._outstandingRequests=[]}_removeOutstandingRequest(e){for(let t=0,i=this._outstandingRequests.length;t<i;t++)if(this._outstandingRequests[t]===e){this._outstandingRequests.splice(t,1);return}}_tokenizeViewportNow(){if(!this._editor.hasModel())return;const e=this._editor.getModel();if(e.tokenization.hasCompleteSemanticTokens())return;if(!UN(e,this._themeService,this._configurationService)){e.tokenization.hasSomeSemanticTokens()&&e.tokenization.setSemanticTokens(null,!1);return}if(!rnt(this._provider,e)){e.tokenization.hasSomeSemanticTokens()&&e.tokenization.setSemanticTokens(null,!1);return}const t=this._editor.getVisibleRangesPlusViewportAboveBelow();this._outstandingRequests=this._outstandingRequests.concat(t.map(i=>this._requestRange(e,i)))}_requestRange(e,t){const i=e.getVersionId(),s=Xs(r=>Promise.resolve(qU(this._provider,e,t,r))),o=new xo(!1);return s.then(r=>{if(this._debounceInformation.update(e,o.elapsed()),!r||!r.tokens||e.isDisposed()||e.getVersionId()!==i)return;const{provider:a,tokens:l}=r,c=this._semanticTokensStylingService.getStyling(a);e.tokenization.setPartialSemanticTokens(t,sde(l,c,e.getLanguageId()))}).then(()=>this._removeOutstandingRequest(s),()=>this._removeOutstandingRequest(s)),s}};Rk.ID=\"editor.contrib.viewportSemanticTokens\";Rk=lnt([sS(1,UM),sS(2,js),sS(3,qt),sS(4,_c),sS(5,Xe)],Rk);bi(Rk.ID,Rk,1);class cnt{constructor(e=!0){this.selectSubwords=e}provideSelectionRanges(e,t){const i=[];for(const s of t){const o=[];i.push(o),this.selectSubwords&&this._addInWordRanges(o,e,s),this._addWordRanges(o,e,s),this._addWhitespaceLine(o,e,s),o.push({range:e.getFullModelRange()})}return i}_addInWordRanges(e,t,i){const s=t.getWordAtPosition(i);if(!s)return;const{word:o,startColumn:r}=s,a=i.column-r;let l=a,c=a,d=0;for(;l>=0;l--){const u=o.charCodeAt(l);if(l!==a&&(u===95||u===45))break;if(zp(u)&&Ku(d))break;d=u}for(l+=1;c<o.length;c++){const u=o.charCodeAt(c);if(Ku(u)&&zp(d))break;if(u===95||u===45)break;d=u}l<c&&e.push({range:new A(i.lineNumber,r+l,i.lineNumber,r+c)})}_addWordRanges(e,t,i){const s=t.getWordAtPosition(i);s&&e.push({range:new A(i.lineNumber,s.startColumn,i.lineNumber,s.endColumn)})}_addWhitespaceLine(e,t,i){t.getLineLength(i.lineNumber)>0&&t.getLineFirstNonWhitespaceColumn(i.lineNumber)===0&&t.getLineLastNonWhitespaceColumn(i.lineNumber)===0&&e.push({range:new A(i.lineNumber,1,i.lineNumber,t.getLineMaxColumn(i.lineNumber))})}}var dnt=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},unt=function(n,e){return function(t,i){e(t,i,n)}},JW;class ZU{constructor(e,t){this.index=e,this.ranges=t}mov(e){const t=this.index+(e?1:-1);if(t<0||t>=this.ranges.length)return this;const i=new ZU(t,this.ranges);return i.ranges[t].equalsRange(this.ranges[this.index])?i.mov(e):i}}let pw=JW=class{static get(e){return e.getContribution(JW.ID)}constructor(e,t){this._editor=e,this._languageFeaturesService=t,this._ignoreSelection=!1}dispose(){var e;(e=this._selectionListener)===null||e===void 0||e.dispose()}async run(e){if(!this._editor.hasModel())return;const t=this._editor.getSelections(),i=this._editor.getModel();if(this._state||await Gge(this._languageFeaturesService.selectionRangeProvider,i,t.map(o=>o.getPosition()),this._editor.getOption(113),Qt.None).then(o=>{var r;if(!(!Zo(o)||o.length!==t.length)&&!(!this._editor.hasModel()||!zn(this._editor.getSelections(),t,(a,l)=>a.equalsSelection(l)))){for(let a=0;a<o.length;a++)o[a]=o[a].filter(l=>l.containsPosition(t[a].getStartPosition())&&l.containsPosition(t[a].getEndPosition())),o[a].unshift(t[a]);this._state=o.map(a=>new ZU(0,a)),(r=this._selectionListener)===null||r===void 0||r.dispose(),this._selectionListener=this._editor.onDidChangeCursorPosition(()=>{var a;this._ignoreSelection||((a=this._selectionListener)===null||a===void 0||a.dispose(),this._state=void 0)})}}),!this._state)return;this._state=this._state.map(o=>o.mov(e));const s=this._state.map(o=>it.fromPositions(o.ranges[o.index].getStartPosition(),o.ranges[o.index].getEndPosition()));this._ignoreSelection=!0;try{this._editor.setSelections(s)}finally{this._ignoreSelection=!1}}};pw.ID=\"editor.contrib.smartSelectController\";pw=JW=dnt([unt(1,Xe)],pw);class qge extends Ke{constructor(e,t){super(t),this._forward=e}async run(e,t){const i=pw.get(t);i&&await i.run(this._forward)}}class hnt extends qge{constructor(){super(!0,{id:\"editor.action.smartSelect.expand\",label:v(\"smartSelect.expand\",\"Expand Selection\"),alias:\"Expand Selection\",precondition:void 0,kbOpts:{kbExpr:W.editorTextFocus,primary:1553,mac:{primary:3345,secondary:[1297]},weight:100},menuOpts:{menuId:R.MenubarSelectionMenu,group:\"1_basic\",title:v({},\"&&Expand Selection\"),order:2}})}}ri.registerCommandAlias(\"editor.action.smartSelect.grow\",\"editor.action.smartSelect.expand\");class fnt extends qge{constructor(){super(!1,{id:\"editor.action.smartSelect.shrink\",label:v(\"smartSelect.shrink\",\"Shrink Selection\"),alias:\"Shrink Selection\",precondition:void 0,kbOpts:{kbExpr:W.editorTextFocus,primary:1551,mac:{primary:3343,secondary:[1295]},weight:100},menuOpts:{menuId:R.MenubarSelectionMenu,group:\"1_basic\",title:v({},\"&&Shrink Selection\"),order:3}})}}bi(pw.ID,pw,4);xe(hnt);xe(fnt);async function Gge(n,e,t,i,s){const o=n.all(e).concat(new cnt(i.selectSubwords));o.length===1&&o.unshift(new il);const r=[],a=[];for(const l of o)r.push(Promise.resolve(l.provideSelectionRanges(e,t,s)).then(c=>{if(Zo(c)&&c.length===t.length)for(let d=0;d<t.length;d++){a[d]||(a[d]=[]);for(const u of c[d])A.isIRange(u.range)&&A.containsPosition(u.range,t[d])&&a[d].push(A.lift(u.range))}},as));return await Promise.all(r),a.map(l=>{if(l.length===0)return[];l.sort((h,f)=>ee.isBefore(h.getStartPosition(),f.getStartPosition())?1:ee.isBefore(f.getStartPosition(),h.getStartPosition())||ee.isBefore(h.getEndPosition(),f.getEndPosition())?-1:ee.isBefore(f.getEndPosition(),h.getEndPosition())?1:0);const c=[];let d;for(const h of l)(!d||A.containsRange(h,d)&&!A.equalsRange(h,d))&&(c.push(h),d=h);if(!i.selectLeadingAndTrailingWhitespace)return c;const u=[c[0]];for(let h=1;h<c.length;h++){const f=c[h-1],g=c[h];if(g.startLineNumber!==f.startLineNumber||g.endLineNumber!==f.endLineNumber){const p=new A(f.startLineNumber,e.getLineFirstNonWhitespaceColumn(f.startLineNumber),f.endLineNumber,e.getLineLastNonWhitespaceColumn(f.endLineNumber));p.containsRange(f)&&!p.equalsRange(f)&&g.containsRange(p)&&!g.equalsRange(p)&&u.push(p);const _=new A(f.startLineNumber,1,f.endLineNumber,e.getLineMaxColumn(f.endLineNumber));_.containsRange(f)&&!_.equalsRange(p)&&g.containsRange(_)&&!g.equalsRange(_)&&u.push(_)}u.push(g)}return u})}ri.registerCommand(\"_executeSelectionRangeProvider\",async function(n,...e){const[t,i]=e;mi(pt.isUri(t));const s=n.get(Xe).selectionRangeProvider,o=await n.get(fa).createModelReference(t);try{return Gge(s,o.object.textEditorModel,i,{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},Qt.None)}finally{o.dispose()}});const gnt=Object.freeze({View:Nt(\"view\",\"View\"),Help:Nt(\"help\",\"Help\"),Test:Nt(\"test\",\"Test\"),File:Nt(\"file\",\"File\"),Preferences:Nt(\"preferences\",\"Preferences\"),Developer:Nt({},\"Developer\")});class Zte{constructor(e,t,i,s=null){this.startLineNumbers=e,this.endLineNumbers=t,this.lastLineRelativePosition=i,this.showEndForLine=s}equals(e){return!!e&&this.lastLineRelativePosition===e.lastLineRelativePosition&&this.showEndForLine===e.showEndForLine&&zn(this.startLineNumbers,e.startLineNumbers)&&zn(this.endLineNumbers,e.endLineNumbers)}}const Yte=Bg(\"stickyScrollViewLayer\",{createHTML:n=>n}),C3=\"data-sticky-line-index\",Xte=\"data-sticky-is-line\",pnt=\"data-sticky-is-line-number\",Qte=\"data-sticky-is-folding-icon\";class mnt extends ne{constructor(e){super(),this._editor=e,this._foldingIconStore=new be,this._rootDomNode=document.createElement(\"div\"),this._lineNumbersDomNode=document.createElement(\"div\"),this._linesDomNodeScrollable=document.createElement(\"div\"),this._linesDomNode=document.createElement(\"div\"),this._lineHeight=this._editor.getOption(67),this._renderedStickyLines=[],this._lineNumbers=[],this._lastLineRelativePosition=0,this._minContentWidthInPx=0,this._isOnGlyphMargin=!1,this._lineNumbersDomNode.className=\"sticky-widget-line-numbers\",this._lineNumbersDomNode.setAttribute(\"role\",\"none\"),this._linesDomNode.className=\"sticky-widget-lines\",this._linesDomNode.setAttribute(\"role\",\"list\"),this._linesDomNodeScrollable.className=\"sticky-widget-lines-scrollable\",this._linesDomNodeScrollable.appendChild(this._linesDomNode),this._rootDomNode.className=\"sticky-widget\",this._rootDomNode.classList.toggle(\"peek\",e instanceof Ym),this._rootDomNode.appendChild(this._lineNumbersDomNode),this._rootDomNode.appendChild(this._linesDomNodeScrollable);const t=()=>{this._linesDomNode.style.left=this._editor.getOption(115).scrollWithEditor?`-${this._editor.getScrollLeft()}px`:\"0px\"};this._register(this._editor.onDidChangeConfiguration(i=>{i.hasChanged(115)&&t(),i.hasChanged(67)&&(this._lineHeight=this._editor.getOption(67))})),this._register(this._editor.onDidScrollChange(i=>{i.scrollLeftChanged&&t(),i.scrollWidthChanged&&this._updateWidgetWidth()})),this._register(this._editor.onDidChangeModel(()=>{t(),this._updateWidgetWidth()})),this._register(this._foldingIconStore),t(),this._register(this._editor.onDidLayoutChange(i=>{this._updateWidgetWidth()})),this._updateWidgetWidth()}get lineNumbers(){return this._lineNumbers}get lineNumberCount(){return this._lineNumbers.length}getRenderedStickyLine(e){return this._renderedStickyLines.find(t=>t.lineNumber===e)}getCurrentLines(){return this._lineNumbers}setState(e,t,i){if(i===void 0&&(!this._previousState&&!e||this._previousState&&this._previousState.equals(e)))return;const s=this._isWidgetHeightZero(e),o=s?void 0:e,r=s?0:this._findLineToRebuildWidgetFrom(e,i);this._renderRootNode(o,t,r),this._previousState=e}_isWidgetHeightZero(e){if(!e)return!0;const t=e.startLineNumbers.length*this._lineHeight+e.lastLineRelativePosition;if(t>0){this._lastLineRelativePosition=e.lastLineRelativePosition;const i=[...e.startLineNumbers];e.showEndForLine!==null&&(i[e.showEndForLine]=e.endLineNumbers[e.showEndForLine]),this._lineNumbers=i}else this._lastLineRelativePosition=0,this._lineNumbers=[];return t===0}_findLineToRebuildWidgetFrom(e,t){if(!e||!this._previousState)return 0;if(t!==void 0)return t;const i=this._previousState,s=e.startLineNumbers.findIndex(o=>!i.startLineNumbers.includes(o));return s===-1?0:s}_updateWidgetWidth(){const e=this._editor.getLayoutInfo(),t=e.contentLeft;this._lineNumbersDomNode.style.width=`${t}px`,this._linesDomNodeScrollable.style.setProperty(\"--vscode-editorStickyScroll-scrollableWidth\",`${this._editor.getScrollWidth()-e.verticalScrollbarWidth}px`),this._rootDomNode.style.width=`${e.width-e.verticalScrollbarWidth}px`}_clearStickyLinesFromLine(e){this._foldingIconStore.clear();for(let t=e;t<this._renderedStickyLines.length;t++){const i=this._renderedStickyLines[t];i.lineNumberDomNode.remove(),i.lineDomNode.remove()}this._renderedStickyLines=this._renderedStickyLines.slice(0,e),this._rootDomNode.style.display=\"none\"}_useFoldingOpacityTransition(e){this._lineNumbersDomNode.style.setProperty(\"--vscode-editorStickyScroll-foldingOpacityTransition\",`opacity ${e?.5:0}s`)}_setFoldingIconsVisibility(e){for(const t of this._renderedStickyLines){const i=t.foldingIcon;i&&i.setVisible(e?!0:i.isCollapsed)}}async _renderRootNode(e,t,i){if(this._clearStickyLinesFromLine(i),!e)return;for(const a of this._renderedStickyLines)this._updateTopAndZIndexOfStickyLine(a);const s=this._editor.getLayoutInfo(),o=this._lineNumbers.slice(i);for(const[a,l]of o.entries()){const c=this._renderChildNode(a+i,l,t,s);c&&(this._linesDomNode.appendChild(c.lineDomNode),this._lineNumbersDomNode.appendChild(c.lineNumberDomNode),this._renderedStickyLines.push(c))}t&&(this._setFoldingHoverListeners(),this._useFoldingOpacityTransition(!this._isOnGlyphMargin));const r=this._lineNumbers.length*this._lineHeight+this._lastLineRelativePosition;this._rootDomNode.style.display=\"block\",this._lineNumbersDomNode.style.height=`${r}px`,this._linesDomNodeScrollable.style.height=`${r}px`,this._rootDomNode.style.height=`${r}px`,this._rootDomNode.style.marginLeft=\"0px\",this._minContentWidthInPx=Math.max(...this._renderedStickyLines.map(a=>a.scrollWidth))+s.verticalScrollbarWidth,this._editor.layoutOverlayWidget(this)}_setFoldingHoverListeners(){this._editor.getOption(110)===\"mouseover\"&&(this._foldingIconStore.add(ce(this._lineNumbersDomNode,Le.MOUSE_ENTER,()=>{this._isOnGlyphMargin=!0,this._setFoldingIconsVisibility(!0)})),this._foldingIconStore.add(ce(this._lineNumbersDomNode,Le.MOUSE_LEAVE,()=>{this._isOnGlyphMargin=!1,this._useFoldingOpacityTransition(!0),this._setFoldingIconsVisibility(!1)})))}_renderChildNode(e,t,i,s){const o=this._editor._getViewModel();if(!o)return;const r=o.coordinatesConverter.convertModelPositionToViewPosition(new ee(t,1)).lineNumber,a=o.getViewLineRenderingData(r),l=this._editor.getOption(68);let c;try{c=Rr.filter(a.inlineDecorations,r,a.minColumn,a.maxColumn)}catch{c=[]}const d=new f_(!0,!0,a.content,a.continuesWithWrappedLine,a.isBasicASCII,a.containsRTL,0,a.tokens,c,a.tabSize,a.startVisibleColumn,1,1,1,500,\"none\",!0,!0,null),u=new Ow(2e3),h=_D(d,u);let f;Yte?f=Yte.createHTML(u.build()):f=u.build();const g=document.createElement(\"span\");g.setAttribute(C3,String(e)),g.setAttribute(Xte,\"\"),g.setAttribute(\"role\",\"listitem\"),g.tabIndex=0,g.className=\"sticky-line-content\",g.classList.add(`stickyLine${t}`),g.style.lineHeight=`${this._lineHeight}px`,g.innerHTML=f;const p=document.createElement(\"span\");p.setAttribute(C3,String(e)),p.setAttribute(pnt,\"\"),p.className=\"sticky-line-number\",p.style.lineHeight=`${this._lineHeight}px`;const _=s.contentLeft;p.style.width=`${_}px`;const b=document.createElement(\"span\");l.renderType===1||l.renderType===3&&t%10===0?b.innerText=t.toString():l.renderType===2&&(b.innerText=Math.abs(t-this._editor.getPosition().lineNumber).toString()),b.className=\"sticky-line-number-inner\",b.style.lineHeight=`${this._lineHeight}px`,b.style.width=`${s.lineNumbersWidth}px`,b.style.paddingLeft=`${s.lineNumbersLeft}px`,p.appendChild(b);const w=this._renderFoldingIconForLine(i,t);w&&p.appendChild(w.domNode),this._editor.applyFontInfo(g),this._editor.applyFontInfo(b),p.style.lineHeight=`${this._lineHeight}px`,g.style.lineHeight=`${this._lineHeight}px`,p.style.height=`${this._lineHeight}px`,g.style.height=`${this._lineHeight}px`;const y=new _nt(e,t,g,p,w,h.characterMapping,g.scrollWidth);return this._updateTopAndZIndexOfStickyLine(y)}_updateTopAndZIndexOfStickyLine(e){var t;const i=e.index,s=e.lineDomNode,o=e.lineNumberDomNode,r=i===this._lineNumbers.length-1,a=\"0\",l=\"1\";s.style.zIndex=r?a:l,o.style.zIndex=r?a:l;const c=`${i*this._lineHeight+this._lastLineRelativePosition+(!((t=e.foldingIcon)===null||t===void 0)&&t.isCollapsed?1:0)}px`,d=`${i*this._lineHeight}px`;return s.style.top=r?c:d,o.style.top=r?c:d,e}_renderFoldingIconForLine(e,t){const i=this._editor.getOption(110);if(!e||i===\"never\")return;const s=e.regions,o=s.findRange(t),r=s.getStartLineNumber(o);if(!(t===r))return;const l=s.isCollapsed(o),c=new vnt(l,r,s.getEndLineNumber(o),this._lineHeight);return c.setVisible(this._isOnGlyphMargin?!0:l||i===\"always\"),c.domNode.setAttribute(Qte,\"\"),c}getId(){return\"editor.contrib.stickyScrollWidget\"}getDomNode(){return this._rootDomNode}getPosition(){return{preference:2,stackOridinal:10}}getMinContentWidthInPx(){return this._minContentWidthInPx}focusLineWithIndex(e){0<=e&&e<this._renderedStickyLines.length&&this._renderedStickyLines[e].lineDomNode.focus()}getEditorPositionFromNode(e){if(!e||e.children.length>0)return null;const t=this._getRenderedStickyLineFromChildDomNode(e);if(!t)return null;const i=Az(t.characterMapping,e,0);return new ee(t.lineNumber,i)}getLineNumberFromChildDomNode(e){var t,i;return(i=(t=this._getRenderedStickyLineFromChildDomNode(e))===null||t===void 0?void 0:t.lineNumber)!==null&&i!==void 0?i:null}_getRenderedStickyLineFromChildDomNode(e){const t=this.getLineIndexFromChildDomNode(e);return t===null||t<0||t>=this._renderedStickyLines.length?null:this._renderedStickyLines[t]}getLineIndexFromChildDomNode(e){const t=this._getAttributeValue(e,C3);return t?parseInt(t,10):null}isInStickyLine(e){return this._getAttributeValue(e,Xte)!==void 0}isInFoldingIconDomNode(e){return this._getAttributeValue(e,Qte)!==void 0}_getAttributeValue(e,t){for(;e&&e!==this._rootDomNode;){const i=e.getAttribute(t);if(i!==null)return i;e=e.parentElement}}}class _nt{constructor(e,t,i,s,o,r,a){this.index=e,this.lineNumber=t,this.lineDomNode=i,this.lineNumberDomNode=s,this.foldingIcon=o,this.characterMapping=r,this.scrollWidth=a}}class vnt{constructor(e,t,i,s){this.isCollapsed=e,this.foldingStartLine=t,this.foldingEndLine=i,this.dimension=s,this.domNode=document.createElement(\"div\"),this.domNode.style.width=`${s}px`,this.domNode.style.height=`${s}px`,this.domNode.className=_t.asClassName(e?jP:UP)}setVisible(e){this.domNode.style.cursor=e?\"pointer\":\"default\",this.domNode.style.opacity=e?\"1\":\"0\"}}class Ox{constructor(e,t){this.startLineNumber=e,this.endLineNumber=t}}class DR{constructor(e,t,i){this.range=e,this.children=t,this.parent=i}}class Zge{constructor(e,t,i,s){this.uri=e,this.version=t,this.element=i,this.outlineProviderId=s}}var hO=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Mk=function(n,e){return function(t,i){e(t,i,n)}},Fx;(function(n){n.OUTLINE_MODEL=\"outlineModel\",n.FOLDING_PROVIDER_MODEL=\"foldingProviderModel\",n.INDENTATION_MODEL=\"indentationModel\"})(Fx||(Fx={}));var sm;(function(n){n[n.VALID=0]=\"VALID\",n[n.INVALID=1]=\"INVALID\",n[n.CANCELED=2]=\"CANCELED\"})(sm||(sm={}));let eH=class extends ne{constructor(e,t,i,s){switch(super(),this._editor=e,this._modelProviders=[],this._modelPromise=null,this._updateScheduler=this._register(new sd(300)),this._updateOperation=this._register(new be),this._editor.getOption(115).defaultModel){case Fx.OUTLINE_MODEL:this._modelProviders.push(new tH(this._editor,s));case Fx.FOLDING_PROVIDER_MODEL:this._modelProviders.push(new nH(this._editor,t,s));case Fx.INDENTATION_MODEL:this._modelProviders.push(new iH(this._editor,i));break}}dispose(){this._modelProviders.forEach(e=>e.dispose()),this._updateOperation.clear(),this._cancelModelPromise(),super.dispose()}_cancelModelPromise(){this._modelPromise&&(this._modelPromise.cancel(),this._modelPromise=null)}async update(e){return this._updateOperation.clear(),this._updateOperation.add({dispose:()=>{this._cancelModelPromise(),this._updateScheduler.cancel()}}),this._cancelModelPromise(),await this._updateScheduler.trigger(async()=>{for(const t of this._modelProviders){const{statusPromise:i,modelPromise:s}=t.computeStickyModel(e);this._modelPromise=s;const o=await i;if(this._modelPromise!==s)return null;switch(o){case sm.CANCELED:return this._updateOperation.clear(),null;case sm.VALID:return t.stickyModel}}return null}).catch(t=>(Mt(t),null))}};eH=hO([Mk(2,ht),Mk(3,Xe)],eH);class Yge extends ne{constructor(e){super(),this._editor=e,this._stickyModel=null}get stickyModel(){return this._stickyModel}_invalid(){return this._stickyModel=null,sm.INVALID}computeStickyModel(e){if(e.isCancellationRequested||!this.isProviderValid())return{statusPromise:this._invalid(),modelPromise:null};const t=Xs(i=>this.createModelFromProvider(i));return{statusPromise:t.then(i=>this.isModelValid(i)?e.isCancellationRequested?sm.CANCELED:(this._stickyModel=this.createStickyModel(e,i),sm.VALID):this._invalid()).then(void 0,i=>(Mt(i),sm.CANCELED)),modelPromise:t}}isModelValid(e){return!0}isProviderValid(){return!0}}let tH=class extends Yge{constructor(e,t){super(e),this._languageFeaturesService=t}createModelFromProvider(e){return Mf.create(this._languageFeaturesService.documentSymbolProvider,this._editor.getModel(),e)}createStickyModel(e,t){var i;const{stickyOutlineElement:s,providerID:o}=this._stickyModelFromOutlineModel(t,(i=this._stickyModel)===null||i===void 0?void 0:i.outlineProviderId),r=this._editor.getModel();return new Zge(r.uri,r.getVersionId(),s,o)}isModelValid(e){return e&&e.children.size>0}_stickyModelFromOutlineModel(e,t){let i;if(oi.first(e.children.values())instanceof mge){const a=oi.find(e.children.values(),l=>l.id===t);if(a)i=a.children;else{let l=\"\",c=-1,d;for(const[u,h]of e.children.entries()){const f=this._findSumOfRangesOfGroup(h);f>c&&(d=h,c=f,l=h.id)}t=l,i=d.children}}else i=e.children;const s=[],o=Array.from(i.values()).sort((a,l)=>{const c=new Ox(a.symbol.range.startLineNumber,a.symbol.range.endLineNumber),d=new Ox(l.symbol.range.startLineNumber,l.symbol.range.endLineNumber);return this._comparator(c,d)});for(const a of o)s.push(this._stickyModelFromOutlineElement(a,a.symbol.selectionRange.startLineNumber));return{stickyOutlineElement:new DR(void 0,s,void 0),providerID:t}}_stickyModelFromOutlineElement(e,t){const i=[];for(const o of e.children.values())if(o.symbol.selectionRange.startLineNumber!==o.symbol.range.endLineNumber)if(o.symbol.selectionRange.startLineNumber!==t)i.push(this._stickyModelFromOutlineElement(o,o.symbol.selectionRange.startLineNumber));else for(const r of o.children.values())i.push(this._stickyModelFromOutlineElement(r,o.symbol.selectionRange.startLineNumber));i.sort((o,r)=>this._comparator(o.range,r.range));const s=new Ox(e.symbol.selectionRange.startLineNumber,e.symbol.range.endLineNumber);return new DR(s,i,void 0)}_comparator(e,t){return e.startLineNumber!==t.startLineNumber?e.startLineNumber-t.startLineNumber:t.endLineNumber-e.endLineNumber}_findSumOfRangesOfGroup(e){let t=0;for(const i of e.children.values())t+=this._findSumOfRangesOfGroup(i);return e instanceof bW?t+e.symbol.range.endLineNumber-e.symbol.selectionRange.startLineNumber:t}};tH=hO([Mk(1,Xe)],tH);class Xge extends Yge{constructor(e){super(e),this._foldingLimitReporter=new fge(e)}createStickyModel(e,t){const i=this._fromFoldingRegions(t),s=this._editor.getModel();return new Zge(s.uri,s.getVersionId(),i,void 0)}isModelValid(e){return e!==null}_fromFoldingRegions(e){const t=e.length,i=[],s=new DR(void 0,[],void 0);for(let o=0;o<t;o++){const r=e.getParentIndex(o);let a;r!==-1?a=i[r]:a=s;const l=new DR(new Ox(e.getStartLineNumber(o),e.getEndLineNumber(o)+1),[],a);a.children.push(l),i.push(l)}return s}}let iH=class extends Xge{constructor(e,t){super(e),this._languageConfigurationService=t,this.provider=this._register(new RU(e.getModel(),this._languageConfigurationService,this._foldingLimitReporter))}async createModelFromProvider(e){return this.provider.compute(e)}};iH=hO([Mk(1,gn)],iH);let nH=class extends Xge{constructor(e,t,i){super(e),this._languageFeaturesService=i;const s=Rg.getFoldingRangeProviders(this._languageFeaturesService,e.getModel());s.length>0&&(this.provider=this._register(new PU(e.getModel(),s,t,this._foldingLimitReporter,void 0)))}isProviderValid(){return this.provider!==void 0}async createModelFromProvider(e){var t,i;return(i=(t=this.provider)===null||t===void 0?void 0:t.compute(e))!==null&&i!==void 0?i:null}};nH=hO([Mk(2,Xe)],nH);var bnt=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Jte=function(n,e){return function(t,i){e(t,i,n)}};class Cnt{constructor(e,t,i){this.startLineNumber=e,this.endLineNumber=t,this.nestingDepth=i}}let sH=class extends ne{constructor(e,t,i){super(),this._languageFeaturesService=t,this._languageConfigurationService=i,this._onDidChangeStickyScroll=this._register(new X),this.onDidChangeStickyScroll=this._onDidChangeStickyScroll.event,this._model=null,this._cts=null,this._stickyModelProvider=null,this._editor=e,this._sessionStore=this._register(new be),this._updateSoon=this._register(new Xi(()=>this.update(),50)),this._register(this._editor.onDidChangeConfiguration(s=>{s.hasChanged(115)&&this.readConfiguration()})),this.readConfiguration()}readConfiguration(){this._sessionStore.clear(),this._editor.getOption(115).enabled&&(this._sessionStore.add(this._editor.onDidChangeModel(()=>{this._model=null,this.updateStickyModelProvider(),this._onDidChangeStickyScroll.fire(),this.update()})),this._sessionStore.add(this._editor.onDidChangeHiddenAreas(()=>this.update())),this._sessionStore.add(this._editor.onDidChangeModelContent(()=>this._updateSoon.schedule())),this._sessionStore.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>this.update())),this._sessionStore.add(dt(()=>{var t;(t=this._stickyModelProvider)===null||t===void 0||t.dispose(),this._stickyModelProvider=null})),this.updateStickyModelProvider(),this.update())}getVersionId(){var e;return(e=this._model)===null||e===void 0?void 0:e.version}updateStickyModelProvider(){var e;(e=this._stickyModelProvider)===null||e===void 0||e.dispose(),this._stickyModelProvider=null;const t=this._editor;t.hasModel()&&(this._stickyModelProvider=new eH(t,()=>this._updateSoon.schedule(),this._languageConfigurationService,this._languageFeaturesService))}async update(){var e;(e=this._cts)===null||e===void 0||e.dispose(!0),this._cts=new $n,await this.updateStickyModel(this._cts.token),this._onDidChangeStickyScroll.fire()}async updateStickyModel(e){if(!this._editor.hasModel()||!this._stickyModelProvider||this._editor.getModel().isTooLargeForTokenization()){this._model=null;return}const t=await this._stickyModelProvider.update(e);e.isCancellationRequested||(this._model=t)}updateIndex(e){return e===-1?e=0:e<0&&(e=-e-2),e}getCandidateStickyLinesIntersectingFromStickyModel(e,t,i,s,o){if(t.children.length===0)return;let r=o;const a=[];for(let d=0;d<t.children.length;d++){const u=t.children[d];u.range&&a.push(u.range.startLineNumber)}const l=this.updateIndex(tL(a,e.startLineNumber,(d,u)=>d-u)),c=this.updateIndex(tL(a,e.startLineNumber+s,(d,u)=>d-u));for(let d=l;d<=c;d++){const u=t.children[d];if(!u)return;if(u.range){const h=u.range.startLineNumber,f=u.range.endLineNumber;e.startLineNumber<=f+1&&h-1<=e.endLineNumber&&h!==r&&(r=h,i.push(new Cnt(h,f-1,s+1)),this.getCandidateStickyLinesIntersectingFromStickyModel(e,u,i,s+1,h))}else this.getCandidateStickyLinesIntersectingFromStickyModel(e,u,i,s,o)}}getCandidateStickyLinesIntersecting(e){var t,i;if(!(!((t=this._model)===null||t===void 0)&&t.element))return[];let s=[];this.getCandidateStickyLinesIntersectingFromStickyModel(e,this._model.element,s,0,-1);const o=(i=this._editor._getViewModel())===null||i===void 0?void 0:i.getHiddenAreas();if(o)for(const r of o)s=s.filter(a=>!(a.startLineNumber>=r.startLineNumber&&a.endLineNumber<=r.endLineNumber+1));return s}};sH=bnt([Jte(1,Xe),Jte(2,gn)],sH);var wnt=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Zb=function(n,e){return function(t,i){e(t,i,n)}},oH;let Fh=oH=class extends ne{constructor(e,t,i,s,o,r,a){super(),this._editor=e,this._contextMenuService=t,this._languageFeaturesService=i,this._instaService=s,this._contextKeyService=a,this._sessionStore=new be,this._foldingModel=null,this._maxStickyLines=Number.MAX_SAFE_INTEGER,this._candidateDefinitionsLength=-1,this._focusedStickyElementIndex=-1,this._enabled=!1,this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1,this._endLineNumbers=[],this._showEndForLine=null,this._stickyScrollWidget=new mnt(this._editor),this._stickyLineCandidateProvider=new sH(this._editor,i,o),this._register(this._stickyScrollWidget),this._register(this._stickyLineCandidateProvider),this._widgetState=new Zte([],[],0),this._onDidResize(),this._readConfiguration();const l=this._stickyScrollWidget.getDomNode();this._register(this._editor.onDidChangeConfiguration(d=>{this._readConfigurationChange(d)})),this._register(ce(l,Le.CONTEXT_MENU,async d=>{this._onContextMenu(gt(l),d)})),this._stickyScrollFocusedContextKey=W.stickyScrollFocused.bindTo(this._contextKeyService),this._stickyScrollVisibleContextKey=W.stickyScrollVisible.bindTo(this._contextKeyService);const c=this._register(ou(l));this._register(c.onDidBlur(d=>{this._positionRevealed===!1&&l.clientHeight===0?(this._focusedStickyElementIndex=-1,this.focus()):this._disposeFocusStickyScrollStore()})),this._register(c.onDidFocus(d=>{this.focus()})),this._registerMouseListeners(),this._register(ce(l,Le.MOUSE_DOWN,d=>{this._onMouseDown=!0}))}static get(e){return e.getContribution(oH.ID)}_disposeFocusStickyScrollStore(){var e;this._stickyScrollFocusedContextKey.set(!1),(e=this._focusDisposableStore)===null||e===void 0||e.dispose(),this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1}focus(){if(this._onMouseDown){this._onMouseDown=!1,this._editor.focus();return}this._stickyScrollFocusedContextKey.get()!==!0&&(this._focused=!0,this._focusDisposableStore=new be,this._stickyScrollFocusedContextKey.set(!0),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumbers.length-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}focusNext(){this._focusedStickyElementIndex<this._stickyScrollWidget.lineNumberCount-1&&this._focusNav(!0)}focusPrevious(){this._focusedStickyElementIndex>0&&this._focusNav(!1)}selectEditor(){this._editor.focus()}_focusNav(e){this._focusedStickyElementIndex=e?this._focusedStickyElementIndex+1:this._focusedStickyElementIndex-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}goToFocused(){const e=this._stickyScrollWidget.lineNumbers;this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:e[this._focusedStickyElementIndex],column:1})}_revealPosition(e){this._reveaInEditor(e,()=>this._editor.revealPosition(e))}_revealLineInCenterIfOutsideViewport(e){this._reveaInEditor(e,()=>this._editor.revealLineInCenterIfOutsideViewport(e.lineNumber,0))}_reveaInEditor(e,t){this._focused&&this._disposeFocusStickyScrollStore(),this._positionRevealed=!0,t(),this._editor.setSelection(A.fromPositions(e)),this._editor.focus()}_registerMouseListeners(){const e=this._register(new be),t=this._register(new RP(this._editor,{extractLineNumberFromMouseEvent:o=>{const r=this._stickyScrollWidget.getEditorPositionFromNode(o.target.element);return r?r.lineNumber:0}})),i=o=>{if(!this._editor.hasModel()||o.target.type!==12||o.target.detail!==this._stickyScrollWidget.getId())return null;const r=o.target.element;if(!r||r.innerText!==r.innerHTML)return null;const a=this._stickyScrollWidget.getEditorPositionFromNode(r);return a?{range:new A(a.lineNumber,a.column,a.lineNumber,a.column+r.innerText.length),textElement:r}:null},s=this._stickyScrollWidget.getDomNode();this._register(rs(s,Le.CLICK,o=>{if(o.ctrlKey||o.altKey||o.metaKey||!o.leftButton)return;if(o.shiftKey){const c=this._stickyScrollWidget.getLineIndexFromChildDomNode(o.target);if(c===null)return;const d=new ee(this._endLineNumbers[c],1);this._revealLineInCenterIfOutsideViewport(d);return}if(this._stickyScrollWidget.isInFoldingIconDomNode(o.target)){const c=this._stickyScrollWidget.getLineNumberFromChildDomNode(o.target);this._toggleFoldingRegionForLine(c);return}if(!this._stickyScrollWidget.isInStickyLine(o.target))return;let l=this._stickyScrollWidget.getEditorPositionFromNode(o.target);if(!l){const c=this._stickyScrollWidget.getLineNumberFromChildDomNode(o.target);if(c===null)return;l=new ee(c,1)}this._revealPosition(l)})),this._register(rs(s,Le.MOUSE_MOVE,o=>{if(o.shiftKey){const r=this._stickyScrollWidget.getLineIndexFromChildDomNode(o.target);if(r===null||this._showEndForLine!==null&&this._showEndForLine===r)return;this._showEndForLine=r,this._renderStickyScroll();return}this._showEndForLine!==null&&(this._showEndForLine=null,this._renderStickyScroll())})),this._register(ce(s,Le.MOUSE_LEAVE,o=>{this._showEndForLine!==null&&(this._showEndForLine=null,this._renderStickyScroll())})),this._register(t.onMouseMoveOrRelevantKeyDown(([o,r])=>{const a=i(o);if(!a||!o.hasTriggerModifier||!this._editor.hasModel()){e.clear();return}const{range:l,textElement:c}=a;if(!l.equalsRange(this._stickyRangeProjectedOnEditor))this._stickyRangeProjectedOnEditor=l,e.clear();else if(c.style.textDecoration===\"underline\")return;const d=new $n;e.add(dt(()=>d.dispose(!0)));let u;WP(this._languageFeaturesService.definitionProvider,this._editor.getModel(),new ee(l.startLineNumber,l.startColumn+1),d.token).then(h=>{if(!d.token.isCancellationRequested)if(h.length!==0){this._candidateDefinitionsLength=h.length;const f=c;u!==f?(e.clear(),u=f,u.style.textDecoration=\"underline\",e.add(dt(()=>{u.style.textDecoration=\"none\"}))):u||(u=f,u.style.textDecoration=\"underline\",e.add(dt(()=>{u.style.textDecoration=\"none\"})))}else e.clear()})})),this._register(t.onCancel(()=>{e.clear()})),this._register(t.onExecute(async o=>{if(o.target.type!==12||o.target.detail!==this._stickyScrollWidget.getId())return;const r=this._stickyScrollWidget.getEditorPositionFromNode(o.target.element);r&&(!this._editor.hasModel()||!this._stickyRangeProjectedOnEditor||(this._candidateDefinitionsLength>1&&(this._focused&&this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:r.lineNumber,column:1})),this._instaService.invokeFunction(Kfe,o,this._editor,{uri:this._editor.getModel().uri,range:this._stickyRangeProjectedOnEditor})))}))}_onContextMenu(e,t){const i=new Kc(e,t);this._contextMenuService.showContextMenu({menuId:R.StickyScrollContext,getAnchor:()=>i})}_toggleFoldingRegionForLine(e){if(!this._foldingModel||e===null)return;const t=this._stickyScrollWidget.getRenderedStickyLine(e),i=t==null?void 0:t.foldingIcon;if(!i)return;lge(this._foldingModel,Number.MAX_VALUE,[e]),i.isCollapsed=!i.isCollapsed;const s=(i.isCollapsed?this._editor.getTopForLineNumber(i.foldingEndLine):this._editor.getTopForLineNumber(i.foldingStartLine))-this._editor.getOption(67)*t.index+1;this._editor.setScrollTop(s),this._renderStickyScroll(e)}_readConfiguration(){const e=this._editor.getOption(115);if(e.enabled===!1){this._editor.removeOverlayWidget(this._stickyScrollWidget),this._sessionStore.clear(),this._enabled=!1;return}else e.enabled&&!this._enabled&&(this._editor.addOverlayWidget(this._stickyScrollWidget),this._sessionStore.add(this._editor.onDidScrollChange(i=>{i.scrollTopChanged&&(this._showEndForLine=null,this._renderStickyScroll())})),this._sessionStore.add(this._editor.onDidLayoutChange(()=>this._onDidResize())),this._sessionStore.add(this._editor.onDidChangeModelTokens(i=>this._onTokensChange(i))),this._sessionStore.add(this._stickyLineCandidateProvider.onDidChangeStickyScroll(()=>{this._showEndForLine=null,this._renderStickyScroll()})),this._enabled=!0);this._editor.getOption(68).renderType===2&&this._sessionStore.add(this._editor.onDidChangeCursorPosition(()=>{this._showEndForLine=null,this._renderStickyScroll(0)}))}_readConfigurationChange(e){(e.hasChanged(115)||e.hasChanged(73)||e.hasChanged(67)||e.hasChanged(110)||e.hasChanged(68))&&this._readConfiguration(),e.hasChanged(68)&&this._renderStickyScroll(0)}_needsUpdate(e){const t=this._stickyScrollWidget.getCurrentLines();for(const i of t)for(const s of e.ranges)if(i>=s.fromLineNumber&&i<=s.toLineNumber)return!0;return!1}_onTokensChange(e){this._needsUpdate(e)&&this._renderStickyScroll(0)}_onDidResize(){const t=this._editor.getLayoutInfo().height/this._editor.getOption(67);this._maxStickyLines=Math.round(t*.25)}async _renderStickyScroll(e){var t,i;const s=this._editor.getModel();if(!s||s.isTooLargeForTokenization()){this._foldingModel=null,this._stickyScrollWidget.setState(void 0,null);return}const o=this._stickyLineCandidateProvider.getVersionId();if(o===void 0||o===s.getVersionId())if(this._foldingModel=(i=await((t=Rg.get(this._editor))===null||t===void 0?void 0:t.getFoldingModel()))!==null&&i!==void 0?i:null,this._widgetState=this.findScrollWidgetState(),this._stickyScrollVisibleContextKey.set(this._widgetState.startLineNumbers.length!==0),!this._focused)this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,e);else if(this._focusedStickyElementIndex===-1)this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,e),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1,this._focusedStickyElementIndex!==-1&&this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex);else{const r=this._stickyScrollWidget.lineNumbers[this._focusedStickyElementIndex];this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,e),this._stickyScrollWidget.lineNumberCount===0?this._focusedStickyElementIndex=-1:(this._stickyScrollWidget.lineNumbers.includes(r)||(this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1),this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}}findScrollWidgetState(){const e=this._editor.getOption(67),t=Math.min(this._maxStickyLines,this._editor.getOption(115).maxLineCount),i=this._editor.getScrollTop();let s=0;const o=[],r=[],a=this._editor.getVisibleRanges();if(a.length!==0){const l=new Ox(a[0].startLineNumber,a[a.length-1].endLineNumber),c=this._stickyLineCandidateProvider.getCandidateStickyLinesIntersecting(l);for(const d of c){const u=d.startLineNumber,h=d.endLineNumber,f=d.nestingDepth;if(h-u>0){const g=(f-1)*e,p=f*e,_=this._editor.getBottomForLineNumber(u)-i,b=this._editor.getTopForLineNumber(h)-i,w=this._editor.getBottomForLineNumber(h)-i;if(g>b&&g<=w){o.push(u),r.push(h+1),s=w-p;break}else p>_&&p<=w&&(o.push(u),r.push(h+1));if(o.length===t)break}}}return this._endLineNumbers=r,new Zte(o,r,s,this._showEndForLine)}dispose(){super.dispose(),this._sessionStore.dispose()}};Fh.ID=\"store.contrib.stickyScrollController\";Fh=oH=wnt([Zb(1,za),Zb(2,Xe),Zb(3,ht),Zb(4,gn),Zb(5,_c),Zb(6,Ct)],Fh);class ynt extends zr{constructor(){super({id:\"editor.action.toggleStickyScroll\",title:{...Nt(\"toggleEditorStickyScroll\",\"Toggle Editor Sticky Scroll\"),mnemonicTitle:v({},\"&&Toggle Editor Sticky Scroll\")},metadata:{description:Nt(\"toggleEditorStickyScroll.description\",\"Toggle/enable the editor sticky scroll which shows the nested scopes at the top of the viewport\")},category:gnt.View,toggled:{condition:pe.equals(\"config.editor.stickyScroll.enabled\",!0),title:v(\"stickyScroll\",\"Sticky Scroll\"),mnemonicTitle:v({},\"&&Sticky Scroll\")},menu:[{id:R.CommandPalette},{id:R.MenubarAppearanceMenu,group:\"4_editor\",order:3},{id:R.StickyScrollContext}]})}async run(e){const t=e.get(qt),i=!t.getValue(\"editor.stickyScroll.enabled\");return t.updateValue(\"editor.stickyScroll.enabled\",i)}}const fO=100;class Snt extends mu{constructor(){super({id:\"editor.action.focusStickyScroll\",title:{...Nt(\"focusStickyScroll\",\"Focus on the editor sticky scroll\"),mnemonicTitle:v({},\"&&Focus Sticky Scroll\")},precondition:pe.and(pe.has(\"config.editor.stickyScroll.enabled\"),W.stickyScrollVisible),menu:[{id:R.CommandPalette}]})}runEditorCommand(e,t){var i;(i=Fh.get(t))===null||i===void 0||i.focus()}}class xnt extends mu{constructor(){super({id:\"editor.action.selectNextStickyScrollLine\",title:Nt(\"selectNextStickyScrollLine.title\",\"Select the next editor sticky scroll line\"),precondition:W.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:fO,primary:18}})}runEditorCommand(e,t){var i;(i=Fh.get(t))===null||i===void 0||i.focusNext()}}class Lnt extends mu{constructor(){super({id:\"editor.action.selectPreviousStickyScrollLine\",title:Nt(\"selectPreviousStickyScrollLine.title\",\"Select the previous sticky scroll line\"),precondition:W.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:fO,primary:16}})}runEditorCommand(e,t){var i;(i=Fh.get(t))===null||i===void 0||i.focusPrevious()}}class knt extends mu{constructor(){super({id:\"editor.action.goToFocusedStickyScrollLine\",title:Nt(\"goToFocusedStickyScrollLine.title\",\"Go to the focused sticky scroll line\"),precondition:W.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:fO,primary:3}})}runEditorCommand(e,t){var i;(i=Fh.get(t))===null||i===void 0||i.goToFocused()}}class Dnt extends mu{constructor(){super({id:\"editor.action.selectEditor\",title:Nt(\"selectEditor.title\",\"Select Editor\"),precondition:W.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:fO,primary:9}})}runEditorCommand(e,t){var i;(i=Fh.get(t))===null||i===void 0||i.selectEditor()}}bi(Fh.ID,Fh,1);dn(ynt);dn(Snt);dn(Lnt);dn(xnt);dn(knt);dn(Dnt);var Qge=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},VS=function(n,e){return function(t,i){e(t,i,n)}};class Int{constructor(e,t,i,s,o,r){this.range=e,this.insertText=t,this.filterText=i,this.additionalTextEdits=s,this.command=o,this.completion=r}}let rH=class extends yAe{constructor(e,t,i,s,o,r){super(o.disposable),this.model=e,this.line=t,this.word=i,this.completionModel=s,this._suggestMemoryService=r}canBeReused(e,t,i){return this.model===e&&this.line===t&&this.word.word.length>0&&this.word.startColumn===i.startColumn&&this.word.endColumn<i.endColumn&&this.completionModel.getIncompleteProvider().size===0}get items(){var e;const t=[],{items:i}=this.completionModel,s=this._suggestMemoryService.select(this.model,{lineNumber:this.line,column:this.word.endColumn+this.completionModel.lineContext.characterCountDelta},i),o=oi.slice(i,s),r=oi.slice(i,0,s);let a=5;for(const l of oi.concat(o,r)){if(l.score===Yd.Default)continue;const c=new A(l.editStart.lineNumber,l.editStart.column,l.editInsertEnd.lineNumber,l.editInsertEnd.column+this.completionModel.lineContext.characterCountDelta),d=l.completion.insertTextRules&&l.completion.insertTextRules&4?{snippet:l.completion.insertText}:l.completion.insertText;t.push(new Int(c,d,(e=l.filterTextLow)!==null&&e!==void 0?e:l.labelLow,l.completion.additionalTextEdits,l.completion.command,l)),a-->=0&&l.resolve(Qt.None)}return t}};rH=Qge([VS(5,ZP)],rH);let aH=class extends ne{constructor(e,t,i,s){super(),this._languageFeatureService=e,this._clipboardService=t,this._suggestMemoryService=i,this._editorService=s,this._store.add(e.inlineCompletionsProvider.register(\"*\",this))}async provideInlineCompletions(e,t,i,s){var o;if(i.selectedSuggestionInfo)return;let r;for(const g of this._editorService.listCodeEditors())if(g.getModel()===e){r=g;break}if(!r)return;const a=r.getOption(89);if(P1.isAllOff(a))return;e.tokenization.tokenizeIfCheap(t.lineNumber);const l=e.tokenization.getLineTokens(t.lineNumber),c=l.getStandardTokenType(l.findTokenIndexAtOffset(Math.max(t.column-1-1,0)));if(P1.valueFor(a,c)!==\"inline\")return;let d=e.getWordAtPosition(t),u;if(d!=null&&d.word||(u=this._getTriggerCharacterInfo(e,t)),!(d!=null&&d.word)&&!u||(d||(d=e.getWordUntilPosition(t)),d.endColumn!==t.column))return;let h;const f=e.getValueInRange(new A(t.lineNumber,1,t.lineNumber,t.column));if(!u&&(!((o=this._lastResult)===null||o===void 0)&&o.canBeReused(e,t.lineNumber,d))){const g=new Fte(f,t.column-this._lastResult.word.endColumn);this._lastResult.completionModel.lineContext=g,this._lastResult.acquire(),h=this._lastResult}else{const g=await OU(this._languageFeatureService.completionProvider,e,t,new yk(void 0,SR.createSuggestFilter(r).itemKind,u==null?void 0:u.providers),u&&{triggerKind:1,triggerCharacter:u.ch},s);let p;g.needsClipboard&&(p=await this._clipboardService.readText());const _=new Fp(g.items,t.column,new Fte(f,0),Pd.None,r.getOption(118),r.getOption(112),{boostFullMatch:!1,firstMatchCanBeWeak:!1},p);h=new rH(e,t.lineNumber,d,_,g,this._suggestMemoryService)}return this._lastResult=h,h}handleItemDidShow(e,t){t.completion.resolve(Qt.None)}freeInlineCompletions(e){e.release()}_getTriggerCharacterInfo(e,t){var i;const s=e.getValueInRange(A.fromPositions({lineNumber:t.lineNumber,column:t.column-1},t)),o=new Set;for(const r of this._languageFeatureService.completionProvider.all(e))!((i=r.triggerCharacters)===null||i===void 0)&&i.includes(s)&&o.add(r);if(o.size!==0)return{providers:o,ch:s}}};aH=Qge([VS(0,Xe),VS(1,zg),VS(2,ZP),VS(3,vi)],aH);WD(aH);class Ent extends Ke{constructor(){super({id:\"editor.action.forceRetokenize\",label:v(\"forceRetokenize\",\"Developer: Force Retokenize\"),alias:\"Developer: Force Retokenize\",precondition:void 0})}run(e,t){if(!t.hasModel())return;const i=t.getModel();i.tokenization.resetTokenization();const s=new xo;i.tokenization.forceTokenization(i.getLineCount()),s.stop(),console.log(`tokenization took ${s.elapsed()}`)}}xe(Ent);class gO extends zr{constructor(){super({id:gO.ID,title:Nt({},\"Toggle Tab Key Moves Focus\"),precondition:void 0,keybinding:{primary:2091,mac:{primary:1323},weight:100},metadata:{description:Nt(\"tabMovesFocusDescriptions\",\"Determines whether the tab key moves focus around the workbench or inserts the tab character in the current editor. This is also called tab trapping, tab navigation, or tab focus mode.\")},f1:!0})}run(){const t=!FC.getTabFocusMode();FC.setTabFocusMode(t),la(t?v(\"toggle.tabMovesFocus.on\",\"Pressing Tab will now move focus to the next focusable element\"):v(\"toggle.tabMovesFocus.off\",\"Pressing Tab will now insert the tab character\"))}}gO.ID=\"editor.action.toggleTabFocusMode\";dn(gO);var Tnt=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},eie=function(n,e){return function(t,i){e(t,i,n)}};let lH=class extends ne{get enabled(){return this._enabled}set enabled(e){e?(this.el.setAttribute(\"aria-disabled\",\"false\"),this.el.tabIndex=0,this.el.style.pointerEvents=\"auto\",this.el.style.opacity=\"1\",this.el.style.cursor=\"pointer\",this._enabled=!1):(this.el.setAttribute(\"aria-disabled\",\"true\"),this.el.tabIndex=-1,this.el.style.pointerEvents=\"none\",this.el.style.opacity=\"0.4\",this.el.style.cursor=\"default\",this._enabled=!0),this._enabled=e}constructor(e,t,i={},s,o){var r,a;super(),this._link=t,this._hoverService=s,this._enabled=!0,this.el=we(e,ke(\"a.monaco-link\",{tabIndex:(r=t.tabIndex)!==null&&r!==void 0?r:0,href:t.href},t.label)),this.hoverDelegate=(a=i.hoverDelegate)!==null&&a!==void 0?a:Ur(\"mouse\"),this.setTooltip(t.title),this.el.setAttribute(\"role\",\"button\");const l=this._register(new ei(this.el,\"click\")),c=this._register(new ei(this.el,\"keypress\")),d=Ae.chain(c.event,f=>f.map(g=>new ln(g)).filter(g=>g.keyCode===3)),u=this._register(new ei(this.el,fn.Tap)).event;this._register(hn.addTarget(this.el));const h=Ae.any(l.event,d,u);this._register(h(f=>{this.enabled&&(ii.stop(f,!0),i!=null&&i.opener?i.opener(this._link.href):o.open(this._link.href,{allowCommands:!0}))})),this.enabled=!0}setTooltip(e){this.hoverDelegate.showNativeHover?this.el.title=e??\"\":!this.hover&&e?this.hover=this._register(this._hoverService.setupUpdatableHover(this.hoverDelegate,this.el,e)):this.hover&&this.hover.update(e)}};lH=Tnt([eie(3,$h),eie(4,$a)],lH);var Jge=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},epe=function(n,e){return function(t,i){e(t,i,n)}};const Nnt=26;let cH=class extends ne{constructor(e,t){super(),this._editor=e,this.instantiationService=t,this.banner=this._register(this.instantiationService.createInstance(dH))}hide(){this._editor.setBanner(null,0),this.banner.clear()}show(e){this.banner.show({...e,onClose:()=>{var t;this.hide(),(t=e.onClose)===null||t===void 0||t.call(e)}}),this._editor.setBanner(this.banner.element,Nnt)}};cH=Jge([epe(1,ht)],cH);let dH=class extends ne{constructor(e){super(),this.instantiationService=e,this.markdownRenderer=this.instantiationService.createInstance(Nh,{}),this.element=ke(\"div.editor-banner\"),this.element.tabIndex=0}getAriaLabel(e){if(e.ariaLabel)return e.ariaLabel;if(typeof e.message==\"string\")return e.message}getBannerMessage(e){if(typeof e==\"string\"){const t=ke(\"span\");return t.innerText=e,t}return this.markdownRenderer.render(e).element}clear(){wo(this.element)}show(e){wo(this.element);const t=this.getAriaLabel(e);t&&this.element.setAttribute(\"aria-label\",t);const i=we(this.element,ke(\"div.icon-container\"));i.setAttribute(\"aria-hidden\",\"true\"),e.icon&&i.appendChild(ke(`div${_t.asCSSSelector(e.icon)}`));const s=we(this.element,ke(\"div.message-container\"));if(s.setAttribute(\"aria-hidden\",\"true\"),s.appendChild(this.getBannerMessage(e.message)),this.messageActionsContainer=we(this.element,ke(\"div.message-actions-container\")),e.actions)for(const r of e.actions)this._register(this.instantiationService.createInstance(lH,this.messageActionsContainer,{...r,tabIndex:-1},{}));const o=we(this.element,ke(\"div.action-container\"));this.actionBar=this._register(new hc(o)),this.actionBar.push(this._register(new Ta(\"banner.close\",\"Close Banner\",_t.asClassName(Aue),!0,()=>{typeof e.onClose==\"function\"&&e.onClose()})),{icon:!0,label:!1}),this.actionBar.setFocusable(!1)}};dH=Jge([epe(0,ht)],dH);var YU=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},pC=function(n,e){return function(t,i){e(t,i,n)}};const Ant=Jn(\"extensions-warning-message\",Te.warning,v(\"warningIcon\",\"Icon shown with a warning message in the extensions editor.\"));let mw=class extends ne{constructor(e,t,i,s){super(),this._editor=e,this._editorWorkerService=t,this._workspaceTrustService=i,this._highlighter=null,this._bannerClosed=!1,this._updateState=o=>{if(o&&o.hasMore){if(this._bannerClosed)return;const r=Math.max(o.ambiguousCharacterCount,o.nonBasicAsciiCharacterCount,o.invisibleCharacterCount);let a;if(o.nonBasicAsciiCharacterCount>=r)a={message:v(\"unicodeHighlighting.thisDocumentHasManyNonBasicAsciiUnicodeCharacters\",\"This document contains many non-basic ASCII unicode characters\"),command:new ey};else if(o.ambiguousCharacterCount>=r)a={message:v(\"unicodeHighlighting.thisDocumentHasManyAmbiguousUnicodeCharacters\",\"This document contains many ambiguous unicode characters\"),command:new w_};else if(o.invisibleCharacterCount>=r)a={message:v(\"unicodeHighlighting.thisDocumentHasManyInvisibleUnicodeCharacters\",\"This document contains many invisible unicode characters\"),command:new Jw};else throw new Error(\"Unreachable\");this._bannerController.show({id:\"unicodeHighlightBanner\",message:a.message,icon:Ant,actions:[{label:a.command.shortLabel,href:`command:${a.command.id}`}],onClose:()=>{this._bannerClosed=!0}})}else this._bannerController.hide()},this._bannerController=this._register(s.createInstance(cH,e)),this._register(this._editor.onDidChangeModel(()=>{this._bannerClosed=!1,this._updateHighlighter()})),this._options=e.getOption(125),this._register(i.onDidChangeTrust(o=>{this._updateHighlighter()})),this._register(e.onDidChangeConfiguration(o=>{o.hasChanged(125)&&(this._options=e.getOption(125),this._updateHighlighter())})),this._updateHighlighter()}dispose(){this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),super.dispose()}_updateHighlighter(){if(this._updateState(null),this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),!this._editor.hasModel())return;const e=Rnt(this._workspaceTrustService.isWorkspaceTrusted(),this._options);if([e.nonBasicASCII,e.ambiguousCharacters,e.invisibleCharacters].every(i=>i===!1))return;const t={nonBasicASCII:e.nonBasicASCII,ambiguousCharacters:e.ambiguousCharacters,invisibleCharacters:e.invisibleCharacters,includeComments:e.includeComments,includeStrings:e.includeStrings,allowedCodePoints:Object.keys(e.allowedCharacters).map(i=>i.codePointAt(0)),allowedLocales:Object.keys(e.allowedLocales).map(i=>i===\"_os\"?new Intl.NumberFormat().resolvedOptions().locale:i===\"_vscode\"?w2e:i)};this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri)?this._highlighter=new uH(this._editor,t,this._updateState,this._editorWorkerService):this._highlighter=new Mnt(this._editor,t,this._updateState)}getDecorationInfo(e){return this._highlighter?this._highlighter.getDecorationInfo(e):null}};mw.ID=\"editor.contrib.unicodeHighlighter\";mw=YU([pC(1,bc),pC(2,Ide),pC(3,ht)],mw);function Rnt(n,e){return{nonBasicASCII:e.nonBasicASCII===Qa?!n:e.nonBasicASCII,ambiguousCharacters:e.ambiguousCharacters,invisibleCharacters:e.invisibleCharacters,includeComments:e.includeComments===Qa?!n:e.includeComments,includeStrings:e.includeStrings===Qa?!n:e.includeStrings,allowedCharacters:e.allowedCharacters,allowedLocales:e.allowedLocales}}let uH=class extends ne{constructor(e,t,i,s){super(),this._editor=e,this._options=t,this._updateState=i,this._editorWorkerService=s,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new Xi(()=>this._update(),250)),this._register(this._editor.onDidChangeModelContent(()=>{this._updateSoon.schedule()})),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII()){this._decorations.clear();return}const e=this._model.getVersionId();this._editorWorkerService.computedUnicodeHighlights(this._model.uri,this._options).then(t=>{if(this._model.isDisposed()||this._model.getVersionId()!==e)return;this._updateState(t);const i=[];if(!t.hasMore)for(const s of t.ranges)i.push({range:s,options:IR.instance.getDecorationFromOptions(this._options)});this._decorations.set(i)})}getDecorationInfo(e){if(!this._decorations.has(e))return null;const t=this._editor.getModel();if(!i$(t,e))return null;const i=t.getValueInRange(e.range);return{reason:ipe(i,this._options),inComment:n$(t,e),inString:s$(t,e)}}};uH=YU([pC(3,bc)],uH);class Mnt extends ne{constructor(e,t,i){super(),this._editor=e,this._options=t,this._updateState=i,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new Xi(()=>this._update(),250)),this._register(this._editor.onDidLayoutChange(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidScrollChange(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidChangeHiddenAreas(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidChangeModelContent(()=>{this._updateSoon.schedule()})),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII()){this._decorations.clear();return}const e=this._editor.getVisibleRanges(),t=[],i={ranges:[],ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0,hasMore:!1};for(const s of e){const o=fz.computeUnicodeHighlights(this._model,this._options,s);for(const r of o.ranges)i.ranges.push(r);i.ambiguousCharacterCount+=i.ambiguousCharacterCount,i.invisibleCharacterCount+=i.invisibleCharacterCount,i.nonBasicAsciiCharacterCount+=i.nonBasicAsciiCharacterCount,i.hasMore=i.hasMore||o.hasMore}if(!i.hasMore)for(const s of i.ranges)t.push({range:s,options:IR.instance.getDecorationFromOptions(this._options)});this._updateState(i),this._decorations.set(t)}getDecorationInfo(e){if(!this._decorations.has(e))return null;const t=this._editor.getModel(),i=t.getValueInRange(e.range);return i$(t,e)?{reason:ipe(i,this._options),inComment:n$(t,e),inString:s$(t,e)}:null}}const tpe=v(\"unicodeHighlight.configureUnicodeHighlightOptions\",\"Configure Unicode Highlight Options\");let hH=class{constructor(e,t,i){this._editor=e,this._languageService=t,this._openerService=i,this.hoverOrdinal=5}computeSync(e,t){if(!this._editor.hasModel()||e.type!==1)return[];const i=this._editor.getModel(),s=this._editor.getContribution(mw.ID);if(!s)return[];const o=[],r=new Set;let a=300;for(const l of t){const c=s.getDecorationInfo(l);if(!c)continue;const u=i.getValueInRange(l.range).codePointAt(0),h=w3(u);let f;switch(c.reason.kind){case 0:{cD(c.reason.confusableWith)?f=v(\"unicodeHighlight.characterIsAmbiguousASCII\",\"The character {0} could be confused with the ASCII character {1}, which is more common in source code.\",h,w3(c.reason.confusableWith.codePointAt(0))):f=v(\"unicodeHighlight.characterIsAmbiguous\",\"The character {0} could be confused with the character {1}, which is more common in source code.\",h,w3(c.reason.confusableWith.codePointAt(0)));break}case 1:f=v(\"unicodeHighlight.characterIsInvisible\",\"The character {0} is invisible.\",h);break;case 2:f=v(\"unicodeHighlight.characterIsNonBasicAscii\",\"The character {0} is not a basic ASCII character.\",h);break}if(r.has(f))continue;r.add(f);const g={codePoint:u,reason:c.reason,inComment:c.inComment,inString:c.inString},p=v(\"unicodeHighlight.adjustSettings\",\"Adjust settings\"),_=`command:${JD.ID}?${encodeURIComponent(JSON.stringify(g))}`,b=new $o(\"\",!0).appendMarkdown(f).appendText(\" \").appendLink(_,p,tpe);o.push(new Wd(this,l.range,[b],!1,a++))}return o}renderHoverParts(e,t){return NYe(e,t,this._editor,this._languageService,this._openerService)}};hH=YU([pC(1,An),pC(2,$a)],hH);function fH(n){return`U+${n.toString(16).padStart(4,\"0\")}`}function w3(n){let e=`\\`${fH(n)}\\``;return mh.isInvisibleCharacter(n)||(e+=` \"${`${Pnt(n)}`}\"`),e}function Pnt(n){return n===96?\"`` ` ``\":\"`\"+String.fromCodePoint(n)+\"`\"}function ipe(n,e){return fz.computeUnicodeHighlightReason(n,e)}class IR{constructor(){this.map=new Map}getDecorationFromOptions(e){return this.getDecoration(!e.includeComments,!e.includeStrings)}getDecoration(e,t){const i=`${e}${t}`;let s=this.map.get(i);return s||(s=Wt.createDynamic({description:\"unicode-highlight\",stickiness:1,className:\"unicode-highlight\",showIfCollapsed:!0,overviewRuler:null,minimap:null,hideInCommentTokens:e,hideInStringTokens:t}),this.map.set(i,s)),s}}IR.instance=new IR;class Ont extends Ke{constructor(){super({id:w_.ID,label:v(\"action.unicodeHighlight.disableHighlightingInComments\",\"Disable highlighting of characters in comments\"),alias:\"Disable highlighting of characters in comments\",precondition:void 0}),this.shortLabel=v(\"unicodeHighlight.disableHighlightingInComments.shortLabel\",\"Disable Highlight In Comments\")}async run(e,t,i){const s=e==null?void 0:e.get(qt);s&&this.runAction(s)}async runAction(e){await e.updateValue(Jr.includeComments,!1,2)}}class Fnt extends Ke{constructor(){super({id:w_.ID,label:v(\"action.unicodeHighlight.disableHighlightingInStrings\",\"Disable highlighting of characters in strings\"),alias:\"Disable highlighting of characters in strings\",precondition:void 0}),this.shortLabel=v(\"unicodeHighlight.disableHighlightingInStrings.shortLabel\",\"Disable Highlight In Strings\")}async run(e,t,i){const s=e==null?void 0:e.get(qt);s&&this.runAction(s)}async runAction(e){await e.updateValue(Jr.includeStrings,!1,2)}}class w_ extends Ke{constructor(){super({id:w_.ID,label:v(\"action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters\",\"Disable highlighting of ambiguous characters\"),alias:\"Disable highlighting of ambiguous characters\",precondition:void 0}),this.shortLabel=v(\"unicodeHighlight.disableHighlightingOfAmbiguousCharacters.shortLabel\",\"Disable Ambiguous Highlight\")}async run(e,t,i){const s=e==null?void 0:e.get(qt);s&&this.runAction(s)}async runAction(e){await e.updateValue(Jr.ambiguousCharacters,!1,2)}}w_.ID=\"editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters\";class Jw extends Ke{constructor(){super({id:Jw.ID,label:v(\"action.unicodeHighlight.disableHighlightingOfInvisibleCharacters\",\"Disable highlighting of invisible characters\"),alias:\"Disable highlighting of invisible characters\",precondition:void 0}),this.shortLabel=v(\"unicodeHighlight.disableHighlightingOfInvisibleCharacters.shortLabel\",\"Disable Invisible Highlight\")}async run(e,t,i){const s=e==null?void 0:e.get(qt);s&&this.runAction(s)}async runAction(e){await e.updateValue(Jr.invisibleCharacters,!1,2)}}Jw.ID=\"editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters\";class ey extends Ke{constructor(){super({id:ey.ID,label:v(\"action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters\",\"Disable highlighting of non basic ASCII characters\"),alias:\"Disable highlighting of non basic ASCII characters\",precondition:void 0}),this.shortLabel=v(\"unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters.shortLabel\",\"Disable Non ASCII Highlight\")}async run(e,t,i){const s=e==null?void 0:e.get(qt);s&&this.runAction(s)}async runAction(e){await e.updateValue(Jr.nonBasicASCII,!1,2)}}ey.ID=\"editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters\";class JD extends Ke{constructor(){super({id:JD.ID,label:v(\"action.unicodeHighlight.showExcludeOptions\",\"Show Exclude Options\"),alias:\"Show Exclude Options\",precondition:void 0})}async run(e,t,i){const{codePoint:s,reason:o,inString:r,inComment:a}=i,l=String.fromCodePoint(s),c=e.get(Cc),d=e.get(qt);function u(g){return mh.isInvisibleCharacter(g)?v(\"unicodeHighlight.excludeInvisibleCharFromBeingHighlighted\",\"Exclude {0} (invisible character) from being highlighted\",fH(g)):v(\"unicodeHighlight.excludeCharFromBeingHighlighted\",\"Exclude {0} from being highlighted\",`${fH(g)} \"${l}\"`)}const h=[];if(o.kind===0)for(const g of o.notAmbiguousInLocales)h.push({label:v(\"unicodeHighlight.allowCommonCharactersInLanguage\",'Allow unicode characters that are more common in the language \"{0}\".',g),run:async()=>{Wnt(d,[g])}});if(h.push({label:u(s),run:()=>Bnt(d,[s])}),a){const g=new Ont;h.push({label:g.label,run:async()=>g.runAction(d)})}else if(r){const g=new Fnt;h.push({label:g.label,run:async()=>g.runAction(d)})}if(o.kind===0){const g=new w_;h.push({label:g.label,run:async()=>g.runAction(d)})}else if(o.kind===1){const g=new Jw;h.push({label:g.label,run:async()=>g.runAction(d)})}else if(o.kind===2){const g=new ey;h.push({label:g.label,run:async()=>g.runAction(d)})}else Hnt(o);const f=await c.pick(h,{title:tpe});f&&await f.run()}}JD.ID=\"editor.action.unicodeHighlight.showExcludeOptions\";async function Bnt(n,e){const t=n.getValue(Jr.allowedCharacters);let i;typeof t==\"object\"&&t?i=t:i={};for(const s of e)i[String.fromCodePoint(s)]=!0;await n.updateValue(Jr.allowedCharacters,i,2)}async function Wnt(n,e){var t;const i=(t=n.inspect(Jr.allowedLocales).user)===null||t===void 0?void 0:t.value;let s;typeof i==\"object\"&&i?s=Object.assign({},i):s={};for(const o of e)s[o]=!0;await n.updateValue(Jr.allowedLocales,s,2)}function Hnt(n){throw new Error(`Unexpected value: ${n}`)}xe(w_);xe(Jw);xe(ey);xe(JD);bi(mw.ID,mw,1);b_.register(hH);var Vnt=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},tie=function(n,e){return function(t,i){e(t,i,n)}};const npe=\"ignoreUnusualLineTerminators\";function znt(n,e,t){n.setModelProperty(e.uri,npe,t)}function $nt(n,e){return n.getModelProperty(e.uri,npe)}let Pk=class extends ne{constructor(e,t,i){super(),this._editor=e,this._dialogService=t,this._codeEditorService=i,this._isPresentingDialog=!1,this._config=this._editor.getOption(126),this._register(this._editor.onDidChangeConfiguration(s=>{s.hasChanged(126)&&(this._config=this._editor.getOption(126),this._checkForUnusualLineTerminators())})),this._register(this._editor.onDidChangeModel(()=>{this._checkForUnusualLineTerminators()})),this._register(this._editor.onDidChangeModelContent(s=>{s.isUndoing||this._checkForUnusualLineTerminators()})),this._checkForUnusualLineTerminators()}async _checkForUnusualLineTerminators(){if(this._config===\"off\"||!this._editor.hasModel())return;const e=this._editor.getModel();if(!e.mightContainUnusualLineTerminators()||$nt(this._codeEditorService,e)===!0||this._editor.getOption(91))return;if(this._config===\"auto\"){e.removeUnusualLineTerminators(this._editor.getSelections());return}if(this._isPresentingDialog)return;let i;try{this._isPresentingDialog=!0,i=await this._dialogService.confirm({title:v(\"unusualLineTerminators.title\",\"Unusual Line Terminators\"),message:v(\"unusualLineTerminators.message\",\"Detected unusual line terminators\"),detail:v(\"unusualLineTerminators.detail\",\"The file '{0}' contains one or more unusual line terminator characters, like Line Separator (LS) or Paragraph Separator (PS).\\n\\nIt is recommended to remove them from the file. This can be configured via `editor.unusualLineTerminators`.\",dc(e.uri)),primaryButton:v({key:\"unusualLineTerminators.fix\",comment:[\"&& denotes a mnemonic\"]},\"&&Remove Unusual Line Terminators\"),cancelButton:v(\"unusualLineTerminators.ignore\",\"Ignore\")})}finally{this._isPresentingDialog=!1}if(!i.confirmed){znt(this._codeEditorService,e,!0);return}e.removeUnusualLineTerminators(this._editor.getSelections())}};Pk.ID=\"editor.contrib.unusualLineTerminatorsDetector\";Pk=Vnt([tie(1,DD),tie(2,vi)],Pk);bi(Pk.ID,Pk,1);var spe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},jN=function(n,e){return function(t,i){e(t,i,n)}},Hs,gH;const pO=new He(\"hasWordHighlights\",!1);function ope(n,e,t,i){const s=n.ordered(e);return QV(s.map(o=>()=>Promise.resolve(o.provideDocumentHighlights(e,t,i)).then(void 0,as)),Zo).then(o=>{if(o){const r=new hs;return r.set(e.uri,o),r}return new hs})}function Unt(n,e,t,i,s,o){const r=n.ordered(e);return QV(r.map(a=>()=>{const l=o.filter(c=>yle(c)).filter(c=>l$(a.selector,c.uri,c.getLanguageId(),!0,void 0,void 0)>0);return Promise.resolve(a.provideMultiDocumentHighlights(e,t,l,s)).then(void 0,as)}),a=>a instanceof hs&&a.size>0)}class XU{constructor(e,t,i){this._model=e,this._selection=t,this._wordSeparators=i,this._wordRange=this._getCurrentWordRange(e,t),this._result=null}get result(){return this._result||(this._result=Xs(e=>this._compute(this._model,this._selection,this._wordSeparators,e))),this._result}_getCurrentWordRange(e,t){const i=e.getWordAtPosition(t.getPosition());return i?new A(t.startLineNumber,i.startColumn,t.startLineNumber,i.endColumn):null}isValid(e,t,i){const s=t.startLineNumber,o=t.startColumn,r=t.endColumn,a=this._getCurrentWordRange(e,t);let l=!!(this._wordRange&&this._wordRange.equalsRange(a));for(let c=0,d=i.length;!l&&c<d;c++){const u=i.getRange(c);u&&u.startLineNumber===s&&u.startColumn<=o&&u.endColumn>=r&&(l=!0)}return l}cancel(){this.result.cancel()}}class jnt extends XU{constructor(e,t,i,s){super(e,t,i),this._providers=s}_compute(e,t,i,s){return ope(this._providers,e,t.getPosition(),s).then(o=>o||new hs)}}class Knt extends XU{constructor(e,t,i,s,o){super(e,t,i),this._providers=s,this._otherModels=o}_compute(e,t,i,s){return Unt(this._providers,e,t.getPosition(),i,s,this._otherModels).then(o=>o||new hs)}}class rpe extends XU{constructor(e,t,i,s,o){super(e,t,s),this._otherModels=o,this._selectionIsEmpty=t.isEmpty(),this._word=i}_compute(e,t,i,s){return Dg(250,s).then(()=>{const o=new hs;let r;if(this._word?r=this._word:r=e.getWordAtPosition(t.getPosition()),!r)return new hs;const a=[e,...this._otherModels];for(const l of a){if(l.isDisposed())continue;const d=l.findMatches(r.word,!0,!1,!0,i,!1).map(u=>({range:u.range,kind:lL.Text}));d&&o.set(l.uri,d)}return o})}isValid(e,t,i){const s=t.isEmpty();return this._selectionIsEmpty!==s?!1:super.isValid(e,t,i)}}function qnt(n,e,t,i,s){return n.has(e)?new jnt(e,t,s,n):new rpe(e,t,i,s,[])}function Gnt(n,e,t,i,s,o){return n.has(e)?new Knt(e,t,s,n,o):new rpe(e,t,i,s,o)}Vh(\"_executeDocumentHighlights\",async(n,e,t)=>{const i=n.get(Xe),s=await ope(i.documentHighlightProvider,e,t,Qt.None);return s==null?void 0:s.get(e.uri)});let Ok=Hs=class{constructor(e,t,i,s,o){this.toUnhook=new be,this.workerRequestTokenId=0,this.workerRequestCompleted=!1,this.workerRequestValue=new hs,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,this.editor=e,this.providers=t,this.multiDocumentProviders=i,this.codeEditorService=o,this._hasWordHighlights=pO.bindTo(s),this._ignorePositionChangeEvent=!1,this.occurrencesHighlight=this.editor.getOption(81),this.model=this.editor.getModel(),this.toUnhook.add(e.onDidChangeCursorPosition(r=>{this._ignorePositionChangeEvent||this.occurrencesHighlight!==\"off\"&&this._onPositionChanged(r)})),this.toUnhook.add(e.onDidFocusEditorText(r=>{this.occurrencesHighlight!==\"off\"&&(this.workerRequest||this._run())})),this.toUnhook.add(e.onDidChangeModelContent(r=>{this._stopAll()})),this.toUnhook.add(e.onDidChangeModel(r=>{!r.newModelUrl&&r.oldModelUrl?this._stopSingular():Hs.query&&this._run()})),this.toUnhook.add(e.onDidChangeConfiguration(r=>{const a=this.editor.getOption(81);this.occurrencesHighlight!==a&&(this.occurrencesHighlight=a,this._stopAll())})),this.decorations=this.editor.createDecorationsCollection(),this.workerRequestTokenId=0,this.workerRequest=null,this.workerRequestCompleted=!1,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,Hs.query&&this._run()}hasDecorations(){return this.decorations.length>0}restore(){this.occurrencesHighlight!==\"off\"&&this._run()}_getSortedHighlights(){return this.decorations.getRanges().sort(A.compareRangesUsingStarts)}moveNext(){const e=this._getSortedHighlights(),i=(e.findIndex(o=>o.containsPosition(this.editor.getPosition()))+1)%e.length,s=e[i];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(s.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(s);const o=this._getWord();if(o){const r=this.editor.getModel().getLineContent(s.startLineNumber);la(`${r}, ${i+1} of ${e.length} for '${o.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}moveBack(){const e=this._getSortedHighlights(),i=(e.findIndex(o=>o.containsPosition(this.editor.getPosition()))-1+e.length)%e.length,s=e[i];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(s.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(s);const o=this._getWord();if(o){const r=this.editor.getModel().getLineContent(s.startLineNumber);la(`${r}, ${i+1} of ${e.length} for '${o.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}_removeSingleDecorations(){if(!this.editor.hasModel())return;const e=Hs.storedDecorations.get(this.editor.getModel().uri);e&&(this.editor.removeDecorations(e),Hs.storedDecorations.delete(this.editor.getModel().uri),this.decorations.length>0&&(this.decorations.clear(),this._hasWordHighlights.set(!1)))}_removeAllDecorations(){const e=this.codeEditorService.listCodeEditors(),t=[];for(const i of e){if(!i.hasModel())continue;const s=Hs.storedDecorations.get(i.getModel().uri);if(!s)continue;i.removeDecorations(s),t.push(i.getModel().uri);const o=Pg.get(i);o!=null&&o.wordHighlighter&&o.wordHighlighter.decorations.length>0&&(o.wordHighlighter.decorations.clear(),o.wordHighlighter.workerRequest=null,o.wordHighlighter._hasWordHighlights.set(!1))}for(const i of t)Hs.storedDecorations.delete(i)}_stopSingular(){var e,t,i,s;this._removeSingleDecorations(),this.editor.hasTextFocus()&&(((e=this.editor.getModel())===null||e===void 0?void 0:e.uri.scheme)!==Tt.vscodeNotebookCell&&((i=(t=Hs.query)===null||t===void 0?void 0:t.modelInfo)===null||i===void 0?void 0:i.model.uri.scheme)!==Tt.vscodeNotebookCell?(Hs.query=null,this._run()):!((s=Hs.query)===null||s===void 0)&&s.modelInfo&&(Hs.query.modelInfo=null)),this.renderDecorationsTimer!==-1&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),this.workerRequest!==null&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_stopAll(){this._removeAllDecorations(),this.renderDecorationsTimer!==-1&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),this.workerRequest!==null&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_onPositionChanged(e){var t;if(this.occurrencesHighlight===\"off\"){this._stopAll();return}if(e.reason!==3&&((t=this.editor.getModel())===null||t===void 0?void 0:t.uri.scheme)!==Tt.vscodeNotebookCell){this._stopAll();return}this._run()}_getWord(){const e=this.editor.getSelection(),t=e.startLineNumber,i=e.startColumn;return this.model.isDisposed()?null:this.model.getWordAtPosition({lineNumber:t,column:i})}getOtherModelsToHighlight(e){if(!e)return[];if(e.uri.scheme===Tt.vscodeNotebookCell){const o=[],r=this.codeEditorService.listCodeEditors();for(const a of r){const l=a.getModel();l&&l!==e&&l.uri.scheme===Tt.vscodeNotebookCell&&o.push(l)}return o}const i=[],s=this.codeEditorService.listCodeEditors();for(const o of s){if(!nU(o))continue;const r=o.getModel();r&&e===r.modified&&i.push(r.modified)}if(i.length)return i;if(this.occurrencesHighlight===\"singleFile\")return[];for(const o of s){const r=o.getModel();r&&r!==e&&i.push(r)}return i}_run(){var e;let t;if(this.editor.hasTextFocus()){const s=this.editor.getSelection();if(!s||s.startLineNumber!==s.endLineNumber){Hs.query=null,this._stopAll();return}const o=s.startColumn,r=s.endColumn,a=this._getWord();if(!a||a.startColumn>o||a.endColumn<r){Hs.query=null,this._stopAll();return}t=this.workerRequest&&this.workerRequest.isValid(this.model,s,this.decorations),Hs.query={modelInfo:{model:this.model,selection:s},word:a}}else if(!Hs.query)return;if(this.lastCursorPositionChangeTime=new Date().getTime(),t)this.workerRequestCompleted&&this.renderDecorationsTimer!==-1&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1,this._beginRenderDecorations());else{this._stopAll();const s=++this.workerRequestTokenId;this.workerRequestCompleted=!1;const o=this.getOtherModelsToHighlight(this.editor.getModel());if(!Hs.query.modelInfo||Hs.query.modelInfo.model.isDisposed())return;this.workerRequest=this.computeWithModel(Hs.query.modelInfo.model,Hs.query.modelInfo.selection,Hs.query.word,o),(e=this.workerRequest)===null||e===void 0||e.result.then(r=>{s===this.workerRequestTokenId&&(this.workerRequestCompleted=!0,this.workerRequestValue=r||[],this._beginRenderDecorations())},Mt)}}computeWithModel(e,t,i,s){return s.length?Gnt(this.multiDocumentProviders,e,t,i,this.editor.getOption(131),s):qnt(this.providers,e,t,i,this.editor.getOption(131))}_beginRenderDecorations(){const e=new Date().getTime(),t=this.lastCursorPositionChangeTime+250;e>=t?(this.renderDecorationsTimer=-1,this.renderDecorations()):this.renderDecorationsTimer=setTimeout(()=>{this.renderDecorations()},t-e)}renderDecorations(){var e,t,i;this.renderDecorationsTimer=-1;const s=this.codeEditorService.listCodeEditors();for(const o of s){const r=Pg.get(o);if(!r)continue;const a=[],l=(e=o.getModel())===null||e===void 0?void 0:e.uri;if(l&&this.workerRequestValue.has(l)){const c=Hs.storedDecorations.get(l),d=this.workerRequestValue.get(l);if(d)for(const h of d)h.range&&a.push({range:h.range,options:oit(h.kind)});let u=[];o.changeDecorations(h=>{u=h.deltaDecorations(c??[],a)}),Hs.storedDecorations=Hs.storedDecorations.set(l,u),a.length>0&&((t=r.wordHighlighter)===null||t===void 0||t.decorations.set(a),(i=r.wordHighlighter)===null||i===void 0||i._hasWordHighlights.set(!0))}}}dispose(){this._stopSingular(),this.toUnhook.dispose()}};Ok.storedDecorations=new hs;Ok.query=null;Ok=Hs=spe([jN(4,vi)],Ok);let Pg=gH=class extends ne{static get(e){return e.getContribution(gH.ID)}constructor(e,t,i,s){super(),this._wordHighlighter=null;const o=()=>{e.hasModel()&&!e.getModel().isTooLargeForTokenization()&&(this._wordHighlighter=new Ok(e,i.documentHighlightProvider,i.multiDocumentHighlightProvider,t,s))};this._register(e.onDidChangeModel(r=>{this._wordHighlighter&&(this._wordHighlighter.dispose(),this._wordHighlighter=null),o()})),o()}get wordHighlighter(){return this._wordHighlighter}saveViewState(){return!!(this._wordHighlighter&&this._wordHighlighter.hasDecorations())}moveNext(){var e;(e=this._wordHighlighter)===null||e===void 0||e.moveNext()}moveBack(){var e;(e=this._wordHighlighter)===null||e===void 0||e.moveBack()}restoreViewState(e){this._wordHighlighter&&e&&this._wordHighlighter.restore()}dispose(){this._wordHighlighter&&(this._wordHighlighter.dispose(),this._wordHighlighter=null),super.dispose()}};Pg.ID=\"editor.contrib.wordHighlighter\";Pg=gH=spe([jN(1,Ct),jN(2,Xe),jN(3,vi)],Pg);class ape extends Ke{constructor(e,t){super(t),this._isNext=e}run(e,t){const i=Pg.get(t);i&&(this._isNext?i.moveNext():i.moveBack())}}class Znt extends ape{constructor(){super(!0,{id:\"editor.action.wordHighlight.next\",label:v(\"wordHighlight.next.label\",\"Go to Next Symbol Highlight\"),alias:\"Go to Next Symbol Highlight\",precondition:pO,kbOpts:{kbExpr:W.editorTextFocus,primary:65,weight:100}})}}class Ynt extends ape{constructor(){super(!1,{id:\"editor.action.wordHighlight.prev\",label:v(\"wordHighlight.previous.label\",\"Go to Previous Symbol Highlight\"),alias:\"Go to Previous Symbol Highlight\",precondition:pO,kbOpts:{kbExpr:W.editorTextFocus,primary:1089,weight:100}})}}class Xnt extends Ke{constructor(){super({id:\"editor.action.wordHighlight.trigger\",label:v(\"wordHighlight.trigger.label\",\"Trigger Symbol Highlight\"),alias:\"Trigger Symbol Highlight\",precondition:pO.toNegated(),kbOpts:{kbExpr:W.editorTextFocus,primary:0,weight:100}})}run(e,t,i){const s=Pg.get(t);s&&s.restoreViewState(!0)}}bi(Pg.ID,Pg,0);xe(Znt);xe(Ynt);xe(Xnt);class mO extends Us{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode,this._wordNavigationType=e.wordNavigationType}runEditorCommand(e,t,i){if(!t.hasModel())return;const s=cc(t.getOption(131),t.getOption(130)),o=t.getModel(),a=t.getSelections().map(l=>{const c=new ee(l.positionLineNumber,l.positionColumn),d=this._move(s,o,c,this._wordNavigationType);return this._moveTo(l,d,this._inSelectionMode)});if(o.pushStackElement(),t._getViewModel().setCursorStates(\"moveWordCommand\",3,a.map(l=>gi.fromModelSelection(l))),a.length===1){const l=new ee(a[0].positionLineNumber,a[0].positionColumn);t.revealPosition(l,0)}}_moveTo(e,t,i){return i?new it(e.selectionStartLineNumber,e.selectionStartColumn,t.lineNumber,t.column):new it(t.lineNumber,t.column,t.lineNumber,t.column)}}class y_ extends mO{_move(e,t,i,s){return ki.moveWordLeft(e,t,i,s)}}class S_ extends mO{_move(e,t,i,s){return ki.moveWordRight(e,t,i,s)}}class Qnt extends y_{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:\"cursorWordStartLeft\",precondition:void 0})}}class Jnt extends y_{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:\"cursorWordEndLeft\",precondition:void 0})}}class est extends y_{constructor(){var e;super({inSelectionMode:!1,wordNavigationType:1,id:\"cursorWordLeft\",precondition:void 0,kbOpts:{kbExpr:pe.and(W.textInputFocus,(e=pe.and(vD,dP))===null||e===void 0?void 0:e.negate()),primary:2063,mac:{primary:527},weight:100}})}}class tst extends y_{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:\"cursorWordStartLeftSelect\",precondition:void 0})}}class ist extends y_{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:\"cursorWordEndLeftSelect\",precondition:void 0})}}class nst extends y_{constructor(){var e;super({inSelectionMode:!0,wordNavigationType:1,id:\"cursorWordLeftSelect\",precondition:void 0,kbOpts:{kbExpr:pe.and(W.textInputFocus,(e=pe.and(vD,dP))===null||e===void 0?void 0:e.negate()),primary:3087,mac:{primary:1551},weight:100}})}}class sst extends y_{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:\"cursorWordAccessibilityLeft\",precondition:void 0})}_move(e,t,i,s){return super._move(cc(gu.wordSeparators.defaultValue,e.intlSegmenterLocales),t,i,s)}}class ost extends y_{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:\"cursorWordAccessibilityLeftSelect\",precondition:void 0})}_move(e,t,i,s){return super._move(cc(gu.wordSeparators.defaultValue,e.intlSegmenterLocales),t,i,s)}}class rst extends S_{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:\"cursorWordStartRight\",precondition:void 0})}}class ast extends S_{constructor(){var e;super({inSelectionMode:!1,wordNavigationType:2,id:\"cursorWordEndRight\",precondition:void 0,kbOpts:{kbExpr:pe.and(W.textInputFocus,(e=pe.and(vD,dP))===null||e===void 0?void 0:e.negate()),primary:2065,mac:{primary:529},weight:100}})}}class lst extends S_{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:\"cursorWordRight\",precondition:void 0})}}class cst extends S_{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:\"cursorWordStartRightSelect\",precondition:void 0})}}class dst extends S_{constructor(){var e;super({inSelectionMode:!0,wordNavigationType:2,id:\"cursorWordEndRightSelect\",precondition:void 0,kbOpts:{kbExpr:pe.and(W.textInputFocus,(e=pe.and(vD,dP))===null||e===void 0?void 0:e.negate()),primary:3089,mac:{primary:1553},weight:100}})}}class ust extends S_{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:\"cursorWordRightSelect\",precondition:void 0})}}class hst extends S_{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:\"cursorWordAccessibilityRight\",precondition:void 0})}_move(e,t,i,s){return super._move(cc(gu.wordSeparators.defaultValue,e.intlSegmenterLocales),t,i,s)}}class fst extends S_{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:\"cursorWordAccessibilityRightSelect\",precondition:void 0})}_move(e,t,i,s){return super._move(cc(gu.wordSeparators.defaultValue,e.intlSegmenterLocales),t,i,s)}}class _O extends Us{constructor(e){super(e),this._whitespaceHeuristics=e.whitespaceHeuristics,this._wordNavigationType=e.wordNavigationType}runEditorCommand(e,t,i){const s=e.get(gn);if(!t.hasModel())return;const o=cc(t.getOption(131),t.getOption(130)),r=t.getModel(),a=t.getSelections(),l=t.getOption(6),c=t.getOption(11),d=s.getLanguageConfiguration(r.getLanguageId()).getAutoClosingPairs(),u=t._getViewModel(),h=a.map(f=>{const g=this._delete({wordSeparators:o,model:r,selection:f,whitespaceHeuristics:this._whitespaceHeuristics,autoClosingDelete:t.getOption(9),autoClosingBrackets:l,autoClosingQuotes:c,autoClosingPairs:d,autoClosedCharacters:u.getCursorAutoClosedCharacters()},this._wordNavigationType);return new Io(g,\"\")});t.pushUndoStop(),t.executeCommands(this.id,h),t.pushUndoStop()}}class QU extends _O{_delete(e,t){const i=ki.deleteWordLeft(e,t);return i||new A(1,1,1,1)}}class JU extends _O{_delete(e,t){const i=ki.deleteWordRight(e,t);if(i)return i;const s=e.model.getLineCount(),o=e.model.getLineMaxColumn(s);return new A(s,o,s,o)}}class gst extends QU{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:\"deleteWordStartLeft\",precondition:W.writable})}}class pst extends QU{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:\"deleteWordEndLeft\",precondition:W.writable})}}class mst extends QU{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:\"deleteWordLeft\",precondition:W.writable,kbOpts:{kbExpr:W.textInputFocus,primary:2049,mac:{primary:513},weight:100}})}}class _st extends JU{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:\"deleteWordStartRight\",precondition:W.writable})}}class vst extends JU{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:\"deleteWordEndRight\",precondition:W.writable})}}class bst extends JU{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:\"deleteWordRight\",precondition:W.writable,kbOpts:{kbExpr:W.textInputFocus,primary:2068,mac:{primary:532},weight:100}})}}class Cst extends Ke{constructor(){super({id:\"deleteInsideWord\",precondition:W.writable,label:v(\"deleteInsideWord\",\"Delete Word\"),alias:\"Delete Word\"})}run(e,t,i){if(!t.hasModel())return;const s=cc(t.getOption(131),t.getOption(130)),o=t.getModel(),a=t.getSelections().map(l=>{const c=ki.deleteInsideWord(s,o,l);return new Io(c,\"\")});t.pushUndoStop(),t.executeCommands(this.id,a),t.pushUndoStop()}}Fe(new Qnt);Fe(new Jnt);Fe(new est);Fe(new tst);Fe(new ist);Fe(new nst);Fe(new rst);Fe(new ast);Fe(new lst);Fe(new cst);Fe(new dst);Fe(new ust);Fe(new sst);Fe(new ost);Fe(new hst);Fe(new fst);Fe(new gst);Fe(new pst);Fe(new mst);Fe(new _st);Fe(new vst);Fe(new bst);xe(Cst);class wst extends _O{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:\"deleteWordPartLeft\",precondition:W.writable,kbOpts:{kbExpr:W.textInputFocus,primary:0,mac:{primary:769},weight:100}})}_delete(e,t){const i=OM.deleteWordPartLeft(e);return i||new A(1,1,1,1)}}class yst extends _O{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:\"deleteWordPartRight\",precondition:W.writable,kbOpts:{kbExpr:W.textInputFocus,primary:0,mac:{primary:788},weight:100}})}_delete(e,t){const i=OM.deleteWordPartRight(e);if(i)return i;const s=e.model.getLineCount(),o=e.model.getLineMaxColumn(s);return new A(s,o,s,o)}}class lpe extends mO{_move(e,t,i,s){return OM.moveWordPartLeft(e,t,i)}}class Sst extends lpe{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:\"cursorWordPartLeft\",precondition:void 0,kbOpts:{kbExpr:W.textInputFocus,primary:0,mac:{primary:783},weight:100}})}}ri.registerCommandAlias(\"cursorWordPartStartLeft\",\"cursorWordPartLeft\");class xst extends lpe{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:\"cursorWordPartLeftSelect\",precondition:void 0,kbOpts:{kbExpr:W.textInputFocus,primary:0,mac:{primary:1807},weight:100}})}}ri.registerCommandAlias(\"cursorWordPartStartLeftSelect\",\"cursorWordPartLeftSelect\");class cpe extends mO{_move(e,t,i,s){return OM.moveWordPartRight(e,t,i)}}class Lst extends cpe{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:\"cursorWordPartRight\",precondition:void 0,kbOpts:{kbExpr:W.textInputFocus,primary:0,mac:{primary:785},weight:100}})}}class kst extends cpe{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:\"cursorWordPartRightSelect\",precondition:void 0,kbOpts:{kbExpr:W.textInputFocus,primary:0,mac:{primary:1809},weight:100}})}}Fe(new wst);Fe(new yst);Fe(new Sst);Fe(new xst);Fe(new Lst);Fe(new kst);class pH extends ne{constructor(e){super(),this.editor=e,this._register(this.editor.onDidAttemptReadOnlyEdit(()=>this._onDidAttemptReadOnlyEdit()))}_onDidAttemptReadOnlyEdit(){const e=Or.get(this.editor);if(e&&this.editor.hasModel()){let t=this.editor.getOptions().get(92);t||(this.editor.isSimpleWidget?t=new $o(v(\"editor.simple.readonly\",\"Cannot edit in read-only input\")):t=new $o(v(\"editor.readonly\",\"Cannot edit in read-only editor\"))),e.showMessage(t,this.editor.getPosition())}}}pH.ID=\"editor.contrib.readOnlyMessageController\";bi(pH.ID,pH,2);var Dst=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},iie=function(n,e){return function(t,i){e(t,i,n)}};let mH=class extends ne{constructor(e,t,i){super(),this._textModel=e,this._languageFeaturesService=t,this._outlineModelService=i,this._currentModel=li(this,void 0);const s=Ko(\"documentSymbolProvider.onDidChange\",this._languageFeaturesService.documentSymbolProvider.onDidChange),o=Ko(\"_textModel.onDidChangeContent\",Ae.debounce(r=>this._textModel.onDidChangeContent(r),()=>{},100));this._register(uc(async(r,a)=>{s.read(r),o.read(r);const l=a.add(new eje),c=await this._outlineModelService.getOrCreate(this._textModel,l.token);a.isDisposed||this._currentModel.set(c,void 0)}))}getBreadcrumbItems(e,t){const i=this._currentModel.read(t);if(!i)return[];const s=i.asListOfDocumentSymbols().filter(o=>e.contains(o.range.startLineNumber)&&!e.contains(o.range.endLineNumber));return s.sort(Hre(oa(o=>o.range.endLineNumber-o.range.startLineNumber,Qc))),s.map(o=>({name:o.name,kind:o.kind,startLineNumber:o.range.startLineNumber}))}};mH=Dst([iie(1,Xe),iie(2,XD)],mH);rk.setBreadcrumbsSourceFactory((n,e)=>e.createInstance(mH,n));class _H extends ne{constructor(e){super(),this.editor=e,this.widget=null,iu&&(this._register(e.onDidChangeConfiguration(()=>this.update())),this.update())}update(){const e=!this.editor.getOption(91);!this.widget&&e?this.widget=new vO(this.editor):this.widget&&!e&&(this.widget.dispose(),this.widget=null)}dispose(){super.dispose(),this.widget&&(this.widget.dispose(),this.widget=null)}}_H.ID=\"editor.contrib.iPadShowKeyboard\";class vO extends ne{constructor(e){super(),this.editor=e,this._domNode=document.createElement(\"textarea\"),this._domNode.className=\"iPadShowKeyboard\",this._register(ce(this._domNode,\"touchstart\",t=>{this.editor.focus()})),this._register(ce(this._domNode,\"focus\",t=>{this.editor.focus()})),this.editor.addOverlayWidget(this)}dispose(){this.editor.removeOverlayWidget(this),super.dispose()}getId(){return vO.ID}getDomNode(){return this._domNode}getPosition(){return{preference:1}}}vO.ID=\"editor.contrib.ShowKeyboardWidget\";bi(_H.ID,_H,3);var Ist=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},nie=function(n,e){return function(t,i){e(t,i,n)}},vH;let _w=vH=class extends ne{static get(e){return e.getContribution(vH.ID)}constructor(e,t,i){super(),this._editor=e,this._languageService=i,this._widget=null,this._register(this._editor.onDidChangeModel(s=>this.stop())),this._register(this._editor.onDidChangeModelLanguage(s=>this.stop())),this._register(Zn.onDidChange(s=>this.stop())),this._register(this._editor.onKeyUp(s=>s.keyCode===9&&this.stop()))}dispose(){this.stop(),super.dispose()}launch(){this._widget||this._editor.hasModel()&&(this._widget=new bO(this._editor,this._languageService))}stop(){this._widget&&(this._widget.dispose(),this._widget=null)}};_w.ID=\"editor.contrib.inspectTokens\";_w=vH=Ist([nie(1,Tl),nie(2,An)],_w);class Est extends Ke{constructor(){super({id:\"editor.action.inspectTokens\",label:y9.inspectTokensAction,alias:\"Developer: Inspect Tokens\",precondition:void 0})}run(e,t){const i=_w.get(t);i==null||i.launch()}}function Tst(n){let e=\"\";for(let t=0,i=n.length;t<i;t++){const s=n.charCodeAt(t);switch(s){case 9:e+=\"→\";break;case 32:e+=\"·\";break;default:e+=String.fromCharCode(s)}}return e}function Nst(n,e){const t=Zn.get(e);if(t)return t;const i=n.encodeLanguageId(e);return{getInitialState:()=>OC,tokenize:(s,o,r)=>Cz(e,r),tokenizeEncoded:(s,o,r)=>IM(i,r)}}class bO extends ne{constructor(e,t){super(),this.allowEditorOverflow=!0,this._editor=e,this._languageService=t,this._model=this._editor.getModel(),this._domNode=document.createElement(\"div\"),this._domNode.className=\"tokens-inspect-widget\",this._tokenizationSupport=Nst(this._languageService.languageIdCodec,this._model.getLanguageId()),this._compute(this._editor.getPosition()),this._register(this._editor.onDidChangeCursorPosition(i=>this._compute(this._editor.getPosition()))),this._editor.addContentWidget(this)}dispose(){this._editor.removeContentWidget(this),super.dispose()}getId(){return bO._ID}_compute(e){const t=this._getTokensAtLine(e.lineNumber);let i=0;for(let l=t.tokens1.length-1;l>=0;l--){const c=t.tokens1[l];if(e.column-1>=c.offset){i=l;break}}let s=0;for(let l=t.tokens2.length>>>1;l>=0;l--)if(e.column-1>=t.tokens2[l<<1]){s=l;break}const o=this._model.getLineContent(e.lineNumber);let r=\"\";if(i<t.tokens1.length){const l=t.tokens1[i].offset,c=i+1<t.tokens1.length?t.tokens1[i+1].offset:o.length;r=o.substring(l,c)}yo(this._domNode,ke(\"h2.tm-token\",void 0,Tst(r),ke(\"span.tm-token-length\",void 0,`${r.length} ${r.length===1?\"char\":\"chars\"}`))),we(this._domNode,ke(\"hr.tokens-inspect-separator\",{style:\"clear:both\"}));const a=(s<<1)+1<t.tokens2.length?this._decodeMetadata(t.tokens2[(s<<1)+1]):null;we(this._domNode,ke(\"table.tm-metadata-table\",void 0,ke(\"tbody\",void 0,ke(\"tr\",void 0,ke(\"td.tm-metadata-key\",void 0,\"language\"),ke(\"td.tm-metadata-value\",void 0,`${a?a.languageId:\"-?-\"}`)),ke(\"tr\",void 0,ke(\"td.tm-metadata-key\",void 0,\"token type\"),ke(\"td.tm-metadata-value\",void 0,`${a?this._tokenTypeToString(a.tokenType):\"-?-\"}`)),ke(\"tr\",void 0,ke(\"td.tm-metadata-key\",void 0,\"font style\"),ke(\"td.tm-metadata-value\",void 0,`${a?this._fontStyleToString(a.fontStyle):\"-?-\"}`)),ke(\"tr\",void 0,ke(\"td.tm-metadata-key\",void 0,\"foreground\"),ke(\"td.tm-metadata-value\",void 0,`${a?le.Format.CSS.formatHex(a.foreground):\"-?-\"}`)),ke(\"tr\",void 0,ke(\"td.tm-metadata-key\",void 0,\"background\"),ke(\"td.tm-metadata-value\",void 0,`${a?le.Format.CSS.formatHex(a.background):\"-?-\"}`))))),we(this._domNode,ke(\"hr.tokens-inspect-separator\")),i<t.tokens1.length&&we(this._domNode,ke(\"span.tm-token-type\",void 0,t.tokens1[i].type)),this._editor.layoutContentWidget(this)}_decodeMetadata(e){const t=Zn.getColorMap(),i=No.getLanguageId(e),s=No.getTokenType(e),o=No.getFontStyle(e),r=No.getForeground(e),a=No.getBackground(e);return{languageId:this._languageService.languageIdCodec.decodeLanguageId(i),tokenType:s,fontStyle:o,foreground:t[r],background:t[a]}}_tokenTypeToString(e){switch(e){case 0:return\"Other\";case 1:return\"Comment\";case 2:return\"String\";case 3:return\"RegEx\";default:return\"??\"}}_fontStyleToString(e){let t=\"\";return e&1&&(t+=\"italic \"),e&2&&(t+=\"bold \"),e&4&&(t+=\"underline \"),e&8&&(t+=\"strikethrough \"),t.length===0&&(t=\"---\"),t}_getTokensAtLine(e){const t=this._getStateBeforeLine(e),i=this._tokenizationSupport.tokenize(this._model.getLineContent(e),!0,t),s=this._tokenizationSupport.tokenizeEncoded(this._model.getLineContent(e),!0,t);return{startState:t,tokens1:i.tokens,tokens2:s.tokens,endState:i.endState}}_getStateBeforeLine(e){let t=this._tokenizationSupport.getInitialState();for(let i=1;i<e;i++)t=this._tokenizationSupport.tokenize(this._model.getLineContent(i),!0,t).endState;return t}getDomNode(){return this._domNode}getPosition(){return{position:this._editor.getPosition(),preference:[2,1]}}}bO._ID=\"editor.contrib.inspectTokensWidget\";bi(_w.ID,_w,4);xe(Est);var Ast=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},sie=function(n,e){return function(t,i){e(t,i,n)}},zS;let ER=zS=class{constructor(e,t){this.quickInputService=e,this.keybindingService=t,this.registry=Un.as(ib.Quickaccess)}provide(e){const t=new be;return t.add(e.onDidAccept(()=>{const[i]=e.selectedItems;i&&this.quickInputService.quickAccess.show(i.prefix,{preserveValue:!0})})),t.add(e.onDidChangeValue(i=>{const s=this.registry.getQuickAccessProvider(i.substr(zS.PREFIX.length));s&&s.prefix&&s.prefix!==zS.PREFIX&&this.quickInputService.quickAccess.show(s.prefix,{preserveValue:!0})})),e.items=this.getQuickAccessProviders().filter(i=>i.prefix!==zS.PREFIX),t}getQuickAccessProviders(){return this.registry.getQuickAccessProviders().sort((t,i)=>t.prefix.localeCompare(i.prefix)).flatMap(t=>this.createPicks(t))}createPicks(e){return e.helpEntries.map(t=>{const i=t.prefix||e.prefix,s=i||\"…\";return{prefix:i,label:s,keybinding:t.commandId?this.keybindingService.lookupKeybinding(t.commandId):void 0,ariaLabel:v(\"helpPickAriaLabel\",\"{0}, {1}\",s,t.description),description:t.description}})}};ER.PREFIX=\"?\";ER=zS=Ast([sie(0,Cc),sie(1,Li)],ER);Un.as(ib.Quickaccess).registerQuickAccessProvider({ctor:ER,prefix:\"\",helpEntries:[{description:S9.helpQuickAccessActionLabel}]});class dpe{constructor(e){this.options=e,this.rangeHighlightDecorationId=void 0}provide(e,t,i){var s;const o=new be;e.canAcceptInBackground=!!(!((s=this.options)===null||s===void 0)&&s.canAcceptInBackground),e.matchOnLabel=e.matchOnDescription=e.matchOnDetail=e.sortByLabel=!1;const r=o.add(new Qs);return r.value=this.doProvide(e,t,i),o.add(this.onDidActiveTextEditorControlChange(()=>{r.value=void 0,r.value=this.doProvide(e,t)})),o}doProvide(e,t,i){var s;const o=new be,r=this.activeTextEditorControl;if(r&&this.canProvideWithTextEditor(r)){const a={editor:r},l=nhe(r);if(l){let c=(s=r.saveViewState())!==null&&s!==void 0?s:void 0;o.add(l.onDidChangeCursorPosition(()=>{var d;c=(d=r.saveViewState())!==null&&d!==void 0?d:void 0})),a.restoreViewState=()=>{c&&r===this.activeTextEditorControl&&r.restoreViewState(c)},o.add(Am(t.onCancellationRequested)(()=>{var d;return(d=a.restoreViewState)===null||d===void 0?void 0:d.call(a)}))}o.add(dt(()=>this.clearDecorations(r))),o.add(this.provideWithTextEditor(a,e,t,i))}else o.add(this.provideWithoutTextEditor(e,t));return o}canProvideWithTextEditor(e){return!0}gotoLocation({editor:e},t){e.setSelection(t.range,\"code.jump\"),e.revealRangeInCenter(t.range,0),t.preserveFocus||e.focus();const i=e.getModel();i&&\"getLineContent\"in i&&Ih(`${i.getLineContent(t.range.startLineNumber)}`)}getModel(e){var t;return nU(e)?(t=e.getModel())===null||t===void 0?void 0:t.modified:e.getModel()}addDecorations(e,t){e.changeDecorations(i=>{const s=[];this.rangeHighlightDecorationId&&(s.push(this.rangeHighlightDecorationId.overviewRulerDecorationId),s.push(this.rangeHighlightDecorationId.rangeHighlightId),this.rangeHighlightDecorationId=void 0);const o=[{range:t,options:{description:\"quick-access-range-highlight\",className:\"rangeHighlight\",isWholeLine:!0}},{range:t,options:{description:\"quick-access-range-highlight-overview\",overviewRuler:{color:Yn(ace),position:Sl.Full}}}],[r,a]=i.deltaDecorations(s,o);this.rangeHighlightDecorationId={rangeHighlightId:r,overviewRulerDecorationId:a}})}clearDecorations(e){const t=this.rangeHighlightDecorationId;t&&(e.changeDecorations(i=>{i.deltaDecorations([t.overviewRulerDecorationId,t.rangeHighlightId],[])}),this.rangeHighlightDecorationId=void 0)}}class CO extends dpe{constructor(){super({canAcceptInBackground:!0})}provideWithoutTextEditor(e){const t=v(\"cannotRunGotoLine\",\"Open a text editor first to go to a line.\");return e.items=[{label:t}],e.ariaLabel=t,ne.None}provideWithTextEditor(e,t,i){const s=e.editor,o=new be;o.add(t.onDidAccept(l=>{const[c]=t.selectedItems;if(c){if(!this.isValidLineNumber(s,c.lineNumber))return;this.gotoLocation(e,{range:this.toRange(c.lineNumber,c.column),keyMods:t.keyMods,preserveFocus:l.inBackground}),l.inBackground||t.hide()}}));const r=()=>{const l=this.parsePosition(s,t.value.trim().substr(CO.PREFIX.length)),c=this.getPickLabel(s,l.lineNumber,l.column);if(t.items=[{lineNumber:l.lineNumber,column:l.column,label:c}],t.ariaLabel=c,!this.isValidLineNumber(s,l.lineNumber)){this.clearDecorations(s);return}const d=this.toRange(l.lineNumber,l.column);s.revealRangeInCenter(d,0),this.addDecorations(s,d)};r(),o.add(t.onDidChangeValue(()=>r()));const a=nhe(s);return a&&a.getOptions().get(68).renderType===2&&(a.updateOptions({lineNumbers:\"on\"}),o.add(dt(()=>a.updateOptions({lineNumbers:\"relative\"})))),o}toRange(e=1,t=1){return{startLineNumber:e,startColumn:t,endLineNumber:e,endColumn:t}}parsePosition(e,t){const i=t.split(/,|:|#/).map(o=>parseInt(o,10)).filter(o=>!isNaN(o)),s=this.lineCount(e)+1;return{lineNumber:i[0]>0?i[0]:s+i[0],column:i[1]}}getPickLabel(e,t,i){if(this.isValidLineNumber(e,t))return this.isValidColumn(e,t,i)?v(\"gotoLineColumnLabel\",\"Go to line {0} and character {1}.\",t,i):v(\"gotoLineLabel\",\"Go to line {0}.\",t);const s=e.getPosition()||{lineNumber:1,column:1},o=this.lineCount(e);return o>1?v(\"gotoLineLabelEmptyWithLimit\",\"Current Line: {0}, Character: {1}. Type a line number between 1 and {2} to navigate to.\",s.lineNumber,s.column,o):v(\"gotoLineLabelEmpty\",\"Current Line: {0}, Character: {1}. Type a line number to navigate to.\",s.lineNumber,s.column)}isValidLineNumber(e,t){return!t||typeof t!=\"number\"?!1:t>0&&t<=this.lineCount(e)}isValidColumn(e,t,i){if(!i||typeof i!=\"number\")return!1;const s=this.getModel(e);if(!s)return!1;const o={lineNumber:t,column:i};return s.validatePosition(o).equals(o)}lineCount(e){var t,i;return(i=(t=this.getModel(e))===null||t===void 0?void 0:t.getLineCount())!==null&&i!==void 0?i:0}}CO.PREFIX=\":\";var Rst=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Mst=function(n,e){return function(t,i){e(t,i,n)}};let Fk=class extends CO{constructor(e){super(),this.editorService=e,this.onDidActiveTextEditorControlChange=Ae.None}get activeTextEditorControl(){var e;return(e=this.editorService.getFocusedCodeEditor())!==null&&e!==void 0?e:void 0}};Fk=Rst([Mst(0,vi)],Fk);let ej=class upe extends Ke{constructor(){super({id:upe.ID,label:CA.gotoLineActionLabel,alias:\"Go to Line/Column...\",precondition:void 0,kbOpts:{kbExpr:W.focus,primary:2085,mac:{primary:293},weight:100}})}run(e){e.get(Cc).quickAccess.show(Fk.PREFIX)}};ej.ID=\"editor.action.gotoLine\";xe(ej);Un.as(ib.Quickaccess).registerQuickAccessProvider({ctor:Fk,prefix:Fk.PREFIX,helpEntries:[{description:CA.gotoLineActionLabel,commandId:ej.ID}]});const hpe=[void 0,[]];function y3(n,e,t=0,i=0){const s=e;return s.values&&s.values.length>1?Pst(n,s.values,t,i):fpe(n,e,t,i)}function Pst(n,e,t,i){let s=0;const o=[];for(const r of e){const[a,l]=fpe(n,r,t,i);if(typeof a!=\"number\")return hpe;s+=a,o.push(...l)}return[s,Ost(o)]}function fpe(n,e,t,i){const s=v0(e.original,e.originalLowercase,t,n,n.toLowerCase(),i,{firstMatchCanBeWeak:!0,boostFullMatch:!0});return s?[s[0],ID(s)]:hpe}function Ost(n){const e=n.sort((s,o)=>s.start-o.start),t=[];let i;for(const s of e)!i||!Fst(i,s)?(i=s,t.push(s)):(i.start=Math.min(i.start,s.start),i.end=Math.max(i.end,s.end));return t}function Fst(n,e){return!(n.end<e.start||e.end<n.start)}function oie(n){return n.startsWith('\"')&&n.endsWith('\"')}const gpe=\" \";function bH(n){typeof n!=\"string\"&&(n=\"\");const e=n.toLowerCase(),{pathNormalized:t,normalized:i,normalizedLowercase:s}=rie(n),o=t.indexOf(jd)>=0,r=oie(n);let a;const l=n.split(gpe);if(l.length>1)for(const c of l){const d=oie(c),{pathNormalized:u,normalized:h,normalizedLowercase:f}=rie(c);h&&(a||(a=[]),a.push({original:c,originalLowercase:c.toLowerCase(),pathNormalized:u,normalized:h,normalizedLowercase:f,expectContiguousMatch:d}))}return{original:n,originalLowercase:e,pathNormalized:t,normalized:i,normalizedLowercase:s,values:a,containsPathSeparator:o,expectContiguousMatch:r}}function rie(n){let e;Mo?e=n.replace(/\\//g,jd):e=n.replace(/\\\\/g,jd);const t=gRe(e).replace(/\\s|\"/g,\"\");return{pathNormalized:e,normalized:t,normalizedLowercase:t.toLowerCase()}}function aie(n){return Array.isArray(n)?bH(n.map(e=>e.original).join(gpe)):bH(n.original)}var Bst=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},lie=function(n,e){return function(t,i){e(t,i,n)}},mC;let Ch=mC=class extends dpe{constructor(e,t,i=Object.create(null)){super(i),this._languageFeaturesService=e,this._outlineModelService=t,this.options=i,this.options.canAcceptInBackground=!0}provideWithoutTextEditor(e){return this.provideLabelPick(e,v(\"cannotRunGotoSymbolWithoutEditor\",\"To go to a symbol, first open a text editor with symbol information.\")),ne.None}provideWithTextEditor(e,t,i,s){const o=e.editor,r=this.getModel(o);return r?this._languageFeaturesService.documentSymbolProvider.has(r)?this.doProvideWithEditorSymbols(e,r,t,i,s):this.doProvideWithoutEditorSymbols(e,r,t,i):ne.None}doProvideWithoutEditorSymbols(e,t,i,s){const o=new be;return this.provideLabelPick(i,v(\"cannotRunGotoSymbolWithoutSymbolProvider\",\"The active text editor does not provide symbol information.\")),(async()=>!await this.waitForLanguageSymbolRegistry(t,o)||s.isCancellationRequested||o.add(this.doProvideWithEditorSymbols(e,t,i,s)))(),o}provideLabelPick(e,t){e.items=[{label:t,index:0,kind:14}],e.ariaLabel=t}async waitForLanguageSymbolRegistry(e,t){if(this._languageFeaturesService.documentSymbolProvider.has(e))return!0;const i=new hD,s=t.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>{this._languageFeaturesService.documentSymbolProvider.has(e)&&(s.dispose(),i.complete(!0))}));return t.add(dt(()=>i.complete(!1))),i.p}doProvideWithEditorSymbols(e,t,i,s,o){var r;const a=e.editor,l=new be;l.add(i.onDidAccept(h=>{var f;const[g]=i.selectedItems;g&&g.range&&(this.gotoLocation(e,{range:g.range.selection,keyMods:i.keyMods,preserveFocus:h.inBackground}),(f=o==null?void 0:o.handleAccept)===null||f===void 0||f.call(o,g),h.inBackground||i.hide())})),l.add(i.onDidTriggerItemButton(({item:h})=>{h&&h.range&&(this.gotoLocation(e,{range:h.range.selection,keyMods:i.keyMods,forceSideBySide:!0}),i.hide())}));const c=this.getDocumentSymbols(t,s);let d;const u=async h=>{d==null||d.dispose(!0),i.busy=!1,d=new $n(s),i.busy=!0;try{const f=bH(i.value.substr(mC.PREFIX.length).trim()),g=await this.doGetSymbolPicks(c,f,void 0,d.token,t);if(s.isCancellationRequested)return;if(g.length>0){if(i.items=g,h&&f.original.length===0){const p=mL(g,_=>!!(_.type!==\"separator\"&&_.range&&A.containsPosition(_.range.decoration,h)));p&&(i.activeItems=[p])}}else f.original.length>0?this.provideLabelPick(i,v(\"noMatchingSymbolResults\",\"No matching editor symbols\")):this.provideLabelPick(i,v(\"noSymbolResults\",\"No editor symbols\"))}finally{s.isCancellationRequested||(i.busy=!1)}};return l.add(i.onDidChangeValue(()=>u(void 0))),u((r=a.getSelection())===null||r===void 0?void 0:r.getPosition()),l.add(i.onDidChangeActive(()=>{const[h]=i.activeItems;h&&h.range&&(a.revealRangeInCenter(h.range.selection,0),this.addDecorations(a,h.range.decoration))})),l}async doGetSymbolPicks(e,t,i,s,o){var r,a;const l=await e;if(s.isCancellationRequested)return[];const c=t.original.indexOf(mC.SCOPE_PREFIX)===0,d=c?1:0;let u,h;t.values&&t.values.length>1?(u=aie(t.values[0]),h=aie(t.values.slice(1))):u=t;let f;const g=(a=(r=this.options)===null||r===void 0?void 0:r.openSideBySideDirection)===null||a===void 0?void 0:a.call(r);g&&(f=[{iconClass:g===\"right\"?_t.asClassName(Te.splitHorizontal):_t.asClassName(Te.splitVertical),tooltip:g===\"right\"?v(\"openToSide\",\"Open to the Side\"):v(\"openToBottom\",\"Open to the Bottom\")}]);const p=[];for(let w=0;w<l.length;w++){const y=l[w],S=hRe(y.name),x=`$(${N2.toIcon(y.kind).id}) ${S}`,k=x.length-S.length;let D=y.containerName;i!=null&&i.extraContainerLabel&&(D?D=`${i.extraContainerLabel} • ${D}`:D=i.extraContainerLabel);let I,N,P,O;if(t.original.length>d){let z=!1;if(u!==t&&([I,N]=y3(x,{...t,values:void 0},d,k),typeof I==\"number\"&&(z=!0)),typeof I!=\"number\"&&([I,N]=y3(x,u,d,k),typeof I!=\"number\"))continue;if(!z&&h){if(D&&h.original.length>0&&([P,O]=y3(D,h)),typeof P!=\"number\")continue;typeof I==\"number\"&&(I+=P)}}const M=y.tags&&y.tags.indexOf(1)>=0;p.push({index:w,kind:y.kind,score:I,label:x,ariaLabel:rRe(y.name,y.kind),description:D,highlights:M?void 0:{label:N,description:O},range:{selection:A.collapseToStart(y.selectionRange),decoration:y.range},uri:o.uri,symbolName:S,strikethrough:M,buttons:f})}const _=p.sort((w,y)=>c?this.compareByKindAndScore(w,y):this.compareByScore(w,y));let b=[];if(c){let x=function(){y&&typeof w==\"number\"&&S>0&&(y.label=l0(x3[w]||S3,S))},w,y,S=0;for(const k of _)w!==k.kind?(x(),w=k.kind,S=1,y={type:\"separator\"},b.push(y)):S++,b.push(k);x()}else _.length>0&&(b=[{label:v(\"symbols\",\"symbols ({0})\",p.length),type:\"separator\"},..._]);return b}compareByScore(e,t){if(typeof e.score!=\"number\"&&typeof t.score==\"number\")return 1;if(typeof e.score==\"number\"&&typeof t.score!=\"number\")return-1;if(typeof e.score==\"number\"&&typeof t.score==\"number\"){if(e.score>t.score)return-1;if(e.score<t.score)return 1}return e.index<t.index?-1:e.index>t.index?1:0}compareByKindAndScore(e,t){const i=x3[e.kind]||S3,s=x3[t.kind]||S3,o=i.localeCompare(s);return o===0?this.compareByScore(e,t):o}async getDocumentSymbols(e,t){const i=await this._outlineModelService.getOrCreate(e,t);return t.isCancellationRequested?[]:i.asListOfDocumentSymbols()}};Ch.PREFIX=\"@\";Ch.SCOPE_PREFIX=\":\";Ch.PREFIX_BY_CATEGORY=`${mC.PREFIX}${mC.SCOPE_PREFIX}`;Ch=mC=Bst([lie(0,Xe),lie(1,XD)],Ch);const S3=v(\"property\",\"properties ({0})\"),x3={5:v(\"method\",\"methods ({0})\"),11:v(\"function\",\"functions ({0})\"),8:v(\"_constructor\",\"constructors ({0})\"),12:v(\"variable\",\"variables ({0})\"),4:v(\"class\",\"classes ({0})\"),22:v(\"struct\",\"structs ({0})\"),23:v(\"event\",\"events ({0})\"),24:v(\"operator\",\"operators ({0})\"),10:v(\"interface\",\"interfaces ({0})\"),2:v(\"namespace\",\"namespaces ({0})\"),3:v(\"package\",\"packages ({0})\"),25:v(\"typeParameter\",\"type parameters ({0})\"),1:v(\"modules\",\"modules ({0})\"),6:v(\"property\",\"properties ({0})\"),9:v(\"enum\",\"enumerations ({0})\"),21:v(\"enumMember\",\"enumeration members ({0})\"),14:v(\"string\",\"strings ({0})\"),0:v(\"file\",\"files ({0})\"),17:v(\"array\",\"arrays ({0})\"),15:v(\"number\",\"numbers ({0})\"),16:v(\"boolean\",\"booleans ({0})\"),18:v(\"object\",\"objects ({0})\"),19:v(\"key\",\"keys ({0})\"),7:v(\"field\",\"fields ({0})\"),13:v(\"constant\",\"constants ({0})\")};var Wst=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},L3=function(n,e){return function(t,i){e(t,i,n)}};let CH=class extends Ch{constructor(e,t,i){super(t,i),this.editorService=e,this.onDidActiveTextEditorControlChange=Ae.None}get activeTextEditorControl(){var e;return(e=this.editorService.getFocusedCodeEditor())!==null&&e!==void 0?e:void 0}};CH=Wst([L3(0,vi),L3(1,Xe),L3(2,XD)],CH);class eI extends Ke{constructor(){super({id:eI.ID,label:VL.quickOutlineActionLabel,alias:\"Go to Symbol...\",precondition:W.hasDocumentSymbolProvider,kbOpts:{kbExpr:W.focus,primary:3117,weight:100},contextMenuOpts:{group:\"navigation\",order:3}})}run(e){e.get(Cc).quickAccess.show(Ch.PREFIX,{itemActivation:Ed.NONE})}}eI.ID=\"editor.action.quickOutline\";xe(eI);Un.as(ib.Quickaccess).registerQuickAccessProvider({ctor:CH,prefix:Ch.PREFIX,helpEntries:[{description:VL.quickOutlineActionLabel,prefix:Ch.PREFIX,commandId:eI.ID},{description:VL.quickOutlineByCategoryActionLabel,prefix:Ch.PREFIX_BY_CATEGORY}]});function Hst(n){var e;const t=new Map;for(const i of n)t.set(i,((e=t.get(i))!==null&&e!==void 0?e:0)+1);return t}class Bx{constructor(){this.chunkCount=0,this.chunkOccurrences=new Map,this.documents=new Map}calculateScores(e,t){const i=this.computeEmbedding(e),s=new Map,o=[];for(const[r,a]of this.documents){if(t.isCancellationRequested)return[];for(const l of a.chunks){const c=this.computeSimilarityScore(l,i,s);c>0&&o.push({key:r,score:c})}}return o}static termFrequencies(e){return Hst(Bx.splitTerms(e))}static*splitTerms(e){const t=i=>i.toLowerCase();for(const[i]of e.matchAll(new RegExp(\"\\\\b\\\\p{Letter}[\\\\p{Letter}\\\\d]{2,}\\\\b\",\"gu\"))){yield t(i);const s=i.replace(/([a-z])([A-Z])/g,\"$1 $2\").split(/\\s+/g);if(s.length>1)for(const o of s)o.length>2&&new RegExp(\"\\\\p{Letter}{3,}\",\"gu\").test(o)&&(yield t(o))}}updateDocuments(e){var t;for(const{key:i}of e)this.deleteDocument(i);for(const i of e){const s=[];for(const o of i.textChunks){const r=Bx.termFrequencies(o);for(const a of r.keys())this.chunkOccurrences.set(a,((t=this.chunkOccurrences.get(a))!==null&&t!==void 0?t:0)+1);s.push({text:o,tf:r})}this.chunkCount+=s.length,this.documents.set(i.key,{chunks:s})}return this}deleteDocument(e){const t=this.documents.get(e);if(t){this.documents.delete(e),this.chunkCount-=t.chunks.length;for(const i of t.chunks)for(const s of i.tf.keys()){const o=this.chunkOccurrences.get(s);if(typeof o==\"number\"){const r=o-1;r<=0?this.chunkOccurrences.delete(s):this.chunkOccurrences.set(s,r)}}}}computeSimilarityScore(e,t,i){let s=0;for(const[o,r]of Object.entries(t)){const a=e.tf.get(o);if(!a)continue;let l=i.get(o);typeof l!=\"number\"&&(l=this.computeIdf(o),i.set(o,l));const c=a*l;s+=c*r}return s}computeEmbedding(e){const t=Bx.termFrequencies(e);return this.computeTfidf(t)}computeIdf(e){var t;const i=(t=this.chunkOccurrences.get(e))!==null&&t!==void 0?t:0;return i>0?Math.log((this.chunkCount+1)/i):0}computeTfidf(e){const t=Object.create(null);for(const[i,s]of e){const o=this.computeIdf(i);o>0&&(t[i]=s*o)}return t}}function Vst(n){var e,t;const i=n.slice(0);i.sort((o,r)=>r.score-o.score);const s=(t=(e=i[0])===null||e===void 0?void 0:e.score)!==null&&t!==void 0?t:0;if(s>0)for(const o of i)o.score/=s;return i}var O1;(function(n){n[n.NO_ACTION=0]=\"NO_ACTION\",n[n.CLOSE_PICKER=1]=\"CLOSE_PICKER\",n[n.REFRESH_PICKER=2]=\"REFRESH_PICKER\",n[n.REMOVE_ITEM=3]=\"REMOVE_ITEM\"})(O1||(O1={}));function k3(n){const e=n;return Array.isArray(e.items)}function cie(n){const e=n;return!!e.picks&&e.additionalPicks instanceof Promise}class zst extends ne{constructor(e,t){super(),this.prefix=e,this.options=t}provide(e,t,i){var s;const o=new be;e.canAcceptInBackground=!!(!((s=this.options)===null||s===void 0)&&s.canAcceptInBackground),e.matchOnLabel=e.matchOnDescription=e.matchOnDetail=e.sortByLabel=!1;let r;const a=o.add(new Qs),l=async()=>{var d;const u=a.value=new be;r==null||r.dispose(!0),e.busy=!1,r=new $n(t);const h=r.token;let f=e.value.substring(this.prefix.length);!((d=this.options)===null||d===void 0)&&d.shouldSkipTrimPickFilter||(f=f.trim());const g=this._getPicks(f,u,h,i),p=(b,w)=>{var y;let S,x;if(k3(b)?(S=b.items,x=b.active):S=b,S.length===0){if(w)return!1;(f.length>0||e.hideInput)&&(!((y=this.options)===null||y===void 0)&&y.noResultsPick)&&(nL(this.options.noResultsPick)?S=[this.options.noResultsPick(f)]:S=[this.options.noResultsPick])}return e.items=S,x&&(e.activeItems=[x]),!0},_=async b=>{let w=!1,y=!1;await Promise.all([(async()=>{typeof b.mergeDelay==\"number\"&&(await Dg(b.mergeDelay),h.isCancellationRequested)||y||(w=p(b.picks,!0))})(),(async()=>{e.busy=!0;try{const S=await b.additionalPicks;if(h.isCancellationRequested)return;let x,k;k3(b.picks)?(x=b.picks.items,k=b.picks.active):x=b.picks;let D,I;if(k3(S)?(D=S.items,I=S.active):D=S,D.length>0||!w){let N;if(!k&&!I){const P=e.activeItems[0];P&&x.indexOf(P)!==-1&&(N=P)}p({items:[...x,...D],active:k||I||N})}}finally{h.isCancellationRequested||(e.busy=!1),y=!0}})()])};if(g!==null)if(cie(g))await _(g);else if(!(g instanceof Promise))p(g);else{e.busy=!0;try{const b=await g;if(h.isCancellationRequested)return;cie(b)?await _(b):p(b)}finally{h.isCancellationRequested||(e.busy=!1)}}};o.add(e.onDidChangeValue(()=>l())),l(),o.add(e.onDidAccept(d=>{var u;if(i!=null&&i.handleAccept){d.inBackground||e.hide(),(u=i.handleAccept)===null||u===void 0||u.call(i,e.activeItems[0]);return}const[h]=e.selectedItems;typeof(h==null?void 0:h.accept)==\"function\"&&(d.inBackground||e.hide(),h.accept(e.keyMods,d))}));const c=async(d,u)=>{var h,f;if(typeof u.trigger!=\"function\")return;const g=(f=(h=u.buttons)===null||h===void 0?void 0:h.indexOf(d))!==null&&f!==void 0?f:-1;if(g>=0){const p=u.trigger(g,e.keyMods),_=typeof p==\"number\"?p:await p;if(t.isCancellationRequested)return;switch(_){case O1.NO_ACTION:break;case O1.CLOSE_PICKER:e.hide();break;case O1.REFRESH_PICKER:l();break;case O1.REMOVE_ITEM:{const b=e.items.indexOf(u);if(b!==-1){const w=e.items.slice(),y=w.splice(b,1),S=e.activeItems.filter(k=>k!==y[0]),x=e.keepScrollPosition;e.keepScrollPosition=!0,e.items=w,S&&(e.activeItems=S),e.keepScrollPosition=x}break}}}};return o.add(e.onDidTriggerItemButton(({button:d,item:u})=>c(d,u))),o.add(e.onDidTriggerSeparatorButton(({button:d,separator:u})=>c(d,u))),o}}var ppe=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Bp=function(n,e){return function(t,i){e(t,i,n)}},lv,Ns;let H0=lv=class extends zst{constructor(e,t,i,s,o,r){super(lv.PREFIX,e),this.instantiationService=t,this.keybindingService=i,this.commandService=s,this.telemetryService=o,this.dialogService=r,this.commandsHistory=this._register(this.instantiationService.createInstance(s_)),this.options=e}async _getPicks(e,t,i,s){var o,r,a,l;const c=await this.getCommandPicks(i);if(i.isCancellationRequested)return[];const d=Am(()=>{const b=new Bx;b.updateDocuments(c.map(y=>({key:y.commandId,textChunks:[this.getTfIdfChunk(y)]})));const w=b.calculateScores(e,i);return Vst(w).filter(y=>y.score>lv.TFIDF_THRESHOLD).slice(0,lv.TFIDF_MAX_RESULTS)}),u=[];for(const b of c){const w=(o=lv.WORD_FILTER(e,b.label))!==null&&o!==void 0?o:void 0,y=b.commandAlias&&(r=lv.WORD_FILTER(e,b.commandAlias))!==null&&r!==void 0?r:void 0;if(w||y)b.highlights={label:w,detail:this.options.showAlias?y:void 0},u.push(b);else if(e===b.commandId)u.push(b);else if(e.length>=3){const S=d();if(i.isCancellationRequested)return[];const x=S.find(k=>k.key===b.commandId);x&&(b.tfIdfScore=x.score,u.push(b))}}const h=new Map;for(const b of u){const w=h.get(b.label);w?(b.description=b.commandId,w.description=w.commandId):h.set(b.label,b)}u.sort((b,w)=>{if(b.tfIdfScore&&w.tfIdfScore)return b.tfIdfScore===w.tfIdfScore?b.label.localeCompare(w.label):w.tfIdfScore-b.tfIdfScore;if(b.tfIdfScore)return 1;if(w.tfIdfScore)return-1;const y=this.commandsHistory.peek(b.commandId),S=this.commandsHistory.peek(w.commandId);if(y&&S)return y>S?-1:1;if(y)return-1;if(S)return 1;if(this.options.suggestedCommandIds){const x=this.options.suggestedCommandIds.has(b.commandId),k=this.options.suggestedCommandIds.has(w.commandId);if(x&&k)return 0;if(x)return-1;if(k)return 1}return b.label.localeCompare(w.label)});const f=[];let g=!1,p=!0,_=!!this.options.suggestedCommandIds;for(let b=0;b<u.length;b++){const w=u[b];b===0&&this.commandsHistory.peek(w.commandId)&&(f.push({type:\"separator\",label:v(\"recentlyUsed\",\"recently used\")}),g=!0),p&&w.tfIdfScore!==void 0&&(f.push({type:\"separator\",label:v(\"suggested\",\"similar commands\")}),p=!1),_&&w.tfIdfScore===void 0&&!this.commandsHistory.peek(w.commandId)&&(!((a=this.options.suggestedCommandIds)===null||a===void 0)&&a.has(w.commandId))&&(f.push({type:\"separator\",label:v(\"commonlyUsed\",\"commonly used\")}),g=!0,_=!1),g&&w.tfIdfScore===void 0&&!this.commandsHistory.peek(w.commandId)&&!(!((l=this.options.suggestedCommandIds)===null||l===void 0)&&l.has(w.commandId))&&(f.push({type:\"separator\",label:v(\"morecCommands\",\"other commands\")}),g=!1),f.push(this.toCommandPick(w,s))}return this.hasAdditionalCommandPicks(e,i)?{picks:f,additionalPicks:(async()=>{var b;const w=await this.getAdditionalCommandPicks(c,u,e,i);if(i.isCancellationRequested)return[];const y=w.map(S=>this.toCommandPick(S,s));return p&&((b=y[0])===null||b===void 0?void 0:b.type)!==\"separator\"&&y.unshift({type:\"separator\",label:v(\"suggested\",\"similar commands\")}),y})()}:f}toCommandPick(e,t){if(e.type===\"separator\")return e;const i=this.keybindingService.lookupKeybinding(e.commandId),s=i?v(\"commandPickAriaLabelWithKeybinding\",\"{0}, {1}\",e.label,i.getAriaLabel()):e.label;return{...e,ariaLabel:s,detail:this.options.showAlias&&e.commandAlias!==e.label?e.commandAlias:void 0,keybinding:i,accept:async()=>{var o,r;this.commandsHistory.push(e.commandId),this.telemetryService.publicLog2(\"workbenchActionExecuted\",{id:e.commandId,from:(o=t==null?void 0:t.from)!==null&&o!==void 0?o:\"quick open\"});try{!((r=e.args)===null||r===void 0)&&r.length?await this.commandService.executeCommand(e.commandId,...e.args):await this.commandService.executeCommand(e.commandId)}catch(a){ld(a)||this.dialogService.error(v(\"canNotRun\",\"Command '{0}' resulted in an error\",e.label),aR(a))}}}}getTfIdfChunk({label:e,commandAlias:t,commandDescription:i}){let s=e;return t&&t!==e&&(s+=` - ${t}`),i&&i.value!==e&&(s+=` - ${i.value===i.original?i.value:`${i.value} (${i.original})`}`),s}};H0.PREFIX=\">\";H0.TFIDF_THRESHOLD=.5;H0.TFIDF_MAX_RESULTS=5;H0.WORD_FILTER=u$(BL,tWe,gde);H0=lv=ppe([Bp(1,ht),Bp(2,Li),Bp(3,Sn),Bp(4,Po),Bp(5,DD)],H0);let s_=Ns=class extends ne{constructor(e,t,i){super(),this.storageService=e,this.configurationService=t,this.logService=i,this.configuredCommandsHistoryLength=0,this.updateConfiguration(),this.load(),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration(e=>this.updateConfiguration(e))),this._register(this.storageService.onWillSaveState(e=>{e.reason===GL.SHUTDOWN&&this.saveState()}))}updateConfiguration(e){e&&!e.affectsConfiguration(\"workbench.commandPalette.history\")||(this.configuredCommandsHistoryLength=Ns.getConfiguredCommandHistoryLength(this.configurationService),Ns.cache&&Ns.cache.limit!==this.configuredCommandsHistoryLength&&(Ns.cache.limit=this.configuredCommandsHistoryLength,Ns.hasChanges=!0))}load(){const e=this.storageService.get(Ns.PREF_KEY_CACHE,0);let t;if(e)try{t=JSON.parse(e)}catch(s){this.logService.error(`[CommandsHistory] invalid data: ${s}`)}const i=Ns.cache=new zh(this.configuredCommandsHistoryLength,1);if(t){let s;t.usesLRU?s=t.entries:s=t.entries.sort((o,r)=>o.value-r.value),s.forEach(o=>i.set(o.key,o.value))}Ns.counter=this.storageService.getNumber(Ns.PREF_KEY_COUNTER,0,Ns.counter)}push(e){Ns.cache&&(Ns.cache.set(e,Ns.counter++),Ns.hasChanges=!0)}peek(e){var t;return(t=Ns.cache)===null||t===void 0?void 0:t.peek(e)}saveState(){if(!Ns.cache||!Ns.hasChanges)return;const e={usesLRU:!0,entries:[]};Ns.cache.forEach((t,i)=>e.entries.push({key:i,value:t})),this.storageService.store(Ns.PREF_KEY_CACHE,JSON.stringify(e),0,0),this.storageService.store(Ns.PREF_KEY_COUNTER,Ns.counter,0,0),Ns.hasChanges=!1}static getConfiguredCommandHistoryLength(e){var t,i;const o=(i=(t=e.getValue().workbench)===null||t===void 0?void 0:t.commandPalette)===null||i===void 0?void 0:i.history;return typeof o==\"number\"?o:Ns.DEFAULT_COMMANDS_HISTORY_LENGTH}};s_.DEFAULT_COMMANDS_HISTORY_LENGTH=50;s_.PREF_KEY_CACHE=\"commandPalette.mru.cache\";s_.PREF_KEY_COUNTER=\"commandPalette.mru.counter\";s_.counter=1;s_.hasChanges=!1;s_=Ns=ppe([Bp(0,dd),Bp(1,qt),Bp(2,er)],s_);class $st extends H0{constructor(e,t,i,s,o,r){super(e,t,i,s,o,r)}getCodeEditorCommandPicks(){var e;const t=this.activeTextEditorControl;if(!t)return[];const i=[];for(const s of t.getSupportedActions()){let o;!((e=s.metadata)===null||e===void 0)&&e.description&&(VVe(s.metadata.description)?o=s.metadata.description:o={original:s.metadata.description,value:s.metadata.description}),i.push({commandId:s.id,commandAlias:s.alias,commandDescription:o,label:_$(s.label)||s.id})}return i}}var Ust=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Yb=function(n,e){return function(t,i){e(t,i,n)}};let Bk=class extends $st{get activeTextEditorControl(){var e;return(e=this.codeEditorService.getFocusedCodeEditor())!==null&&e!==void 0?e:void 0}constructor(e,t,i,s,o,r){super({showAlias:!1},e,i,s,o,r),this.codeEditorService=t}async getCommandPicks(){return this.getCodeEditorCommandPicks()}hasAdditionalCommandPicks(){return!1}async getAdditionalCommandPicks(){return[]}};Bk=Ust([Yb(0,ht),Yb(1,vi),Yb(2,Li),Yb(3,Sn),Yb(4,Po),Yb(5,DD)],Bk);class tI extends Ke{constructor(){super({id:tI.ID,label:wA.quickCommandActionLabel,alias:\"Command Palette\",precondition:void 0,kbOpts:{kbExpr:W.focus,primary:59,weight:100},contextMenuOpts:{group:\"z_commands\",order:1}})}run(e){e.get(Cc).quickAccess.show(Bk.PREFIX)}}tI.ID=\"editor.action.quickCommand\";xe(tI);Un.as(ib.Quickaccess).registerQuickAccessProvider({ctor:Bk,prefix:Bk.PREFIX,helpEntries:[{description:wA.quickCommandHelp,commandId:tI.ID}]});var jst=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Xb=function(n,e){return function(t,i){e(t,i,n)}};let wH=class extends Qm{constructor(e,t,i,s,o,r,a){super(!0,e,t,i,s,o,r,a)}};wH=jst([Xb(1,Ct),Xb(2,vi),Xb(3,ps),Xb(4,ht),Xb(5,dd),Xb(6,qt)],wH);bi(Qm.ID,wH,4);class Kst extends Ke{constructor(){super({id:\"editor.action.toggleHighContrast\",label:x9.toggleHighContrast,alias:\"Toggle High Contrast Theme\",precondition:void 0}),this._originalThemeName=null}run(e,t){const i=e.get(Tl),s=i.getColorTheme();Zd(s.type)?(i.setTheme(this._originalThemeName||(HC(s.type)?hC:jf)),this._originalThemeName=null):(i.setTheme(HC(s.type)?Gv:Zv),this._originalThemeName=s.themeName)}}xe(Kst);const qst=Object.freeze(Object.defineProperty({__proto__:null,CancellationTokenSource:ahe,Emitter:lhe,KeyCode:che,KeyMod:dhe,MarkerSeverity:nR,MarkerTag:phe,Position:uhe,Range:hhe,Selection:fhe,SelectionDirection:ghe,Token:_he,Uri:mhe,editor:sU,languages:zd},Symbol.toStringTag,{value:\"Module\"})),tj={position(n,e){return{lineNumber:n+1,column:e+1}},range(n){return{startLineNumber:n.start.line+1,startColumn:n.start.character+1,endLineNumber:n.end.line+1,endColumn:n.end.character+1}}},wO={position(n){return{line:n.lineNumber-1,character:n.column-1}},range(n){return{start:{line:n.startLineNumber-1,character:n.startColumn-1},end:{line:n.endLineNumber-1,character:n.endColumn-1}}}};function die(n,e,t){const i=async(s,o,r)=>{if(!n.isInitialized||!n.socket||n.socket.readyState!==WebSocket.OPEN)return{suggestions:[]};const a=s.getWordUntilPosition(o),l={startLineNumber:o.lineNumber,startColumn:a.startColumn,endLineNumber:o.lineNumber,endColumn:o.column};return new Promise(c=>{var h,f;const d=n.messageId++,u=g=>{var _,b;const p=JSON.parse(g.data);if(p.id===d){(_=n.socket)==null||_.removeEventListener(\"message\",u);const w=a.word.toLowerCase(),y=(((b=p.result)==null?void 0:b.items)||[]).filter(S=>{if(!w)return!0;const x=(S.filterText||S.label).toLowerCase();return x.startsWith(w)||x.includes(\"_\"+w)||x.includes(\".\"+w)}).map(S=>{const x=S.insertText||S.label;return{label:S.label,kind:S.kind||zd.CompletionItemKind.Text,detail:S.detail,documentation:S.documentation,insertText:x,filterText:w,sortText:S.sortText,range:l}});c({suggestions:y})}};(h=n.socket)==null||h.addEventListener(\"message\",u),(f=n.socket)==null||f.send(JSON.stringify({jsonrpc:\"2.0\",id:d,method:\"textDocument/completion\",params:{textDocument:{uri:t.toString()},position:wO.position(o)}})),setTimeout(()=>{var g;(g=n.socket)==null||g.removeEventListener(\"message\",u),c({suggestions:[]})},5e3)})};return zd.registerCompletionItemProvider(e.languageId,{provideCompletionItems:i,triggerCharacters:e.completionTriggerCharacters})}function uie(n,e,t){const i=async(s,o)=>!n.isInitialized||!n.socket||n.socket.readyState!==WebSocket.OPEN?null:new Promise(r=>{var c,d;const a=n.messageId++,l=u=>{var f;const h=JSON.parse(u.data);if(h.id===a){if((f=n.socket)==null||f.removeEventListener(\"message\",l),h.result&&h.result.contents){let g=\"\";const p=h.result.contents;if(typeof p==\"string\"?g=p:p.kind===\"markdown\"||p.kind===\"plaintext\"?g=p.value:Array.isArray(p)?g=p.map(_=>typeof _==\"string\"?_:_.value||\"\").join(`\n\n`):p.value&&(g=p.value),g){r({contents:[{value:g}],range:h.result.range?tj.range(h.result.range):void 0});return}}r(null)}};(c=n.socket)==null||c.addEventListener(\"message\",l),(d=n.socket)==null||d.send(JSON.stringify({jsonrpc:\"2.0\",id:a,method:\"textDocument/hover\",params:{textDocument:{uri:t.toString()},position:wO.position(o)}})),setTimeout(()=>{var u;(u=n.socket)==null||u.removeEventListener(\"message\",l),r(null)},5e3)});return zd.registerHoverProvider(e.languageId,{provideHover:i})}function hie(n,e,t){const i=async(s,o,r,a)=>!n.isInitialized||!n.socket||n.socket.readyState!==WebSocket.OPEN?null:new Promise(l=>{var u,h;const c=n.messageId++,d=f=>{var p;const g=JSON.parse(f.data);if(g.id===c){if((p=n.socket)==null||p.removeEventListener(\"message\",d),g.result&&g.result.signatures){const _=g.result.signatures.map(b=>{var w;return{label:b.label,documentation:b.documentation?{value:typeof b.documentation==\"string\"?b.documentation:b.documentation.value}:void 0,parameters:((w=b.parameters)==null?void 0:w.map(y=>({label:y.label,documentation:y.documentation?{value:typeof y.documentation==\"string\"?y.documentation:y.documentation.value}:void 0})))||[]}});l({value:{signatures:_,activeSignature:g.result.activeSignature||0,activeParameter:g.result.activeParameter||0},dispose:()=>{}});return}l(null)}};(u=n.socket)==null||u.addEventListener(\"message\",d),(h=n.socket)==null||h.send(JSON.stringify({jsonrpc:\"2.0\",id:c,method:\"textDocument/signatureHelp\",params:{textDocument:{uri:t.toString()},position:wO.position(o),context:{triggerKind:a.triggerKind,triggerCharacter:a.triggerCharacter,isRetrigger:a.isRetrigger,activeSignatureHelp:a.activeSignatureHelp}}})),setTimeout(()=>{var f;(f=n.socket)==null||f.removeEventListener(\"message\",d),l(null)},5e3)});return zd.registerSignatureHelpProvider(e.languageId,{signatureHelpTriggerCharacters:[\"(\",\",\"],signatureHelpRetriggerCharacters:[\",\"],provideSignatureHelp:i})}function fie(n,e,t){const i=async(s,o,r)=>!n.isInitialized||!n.socket||n.socket.readyState!==WebSocket.OPEN?null:new Promise(a=>{var d,u;const l=n.messageId++,c=h=>{var g;const f=JSON.parse(h.data);if(f.id===l){if((g=n.socket)==null||g.removeEventListener(\"message\",c),f.error){a(null);return}if(!f.result){a(null);return}const p=f.result.map(_=>({range:tj.range(_.range),text:_.newText}));a(p)}};(d=n.socket)==null||d.addEventListener(\"message\",c),(u=n.socket)==null||u.send(JSON.stringify({jsonrpc:\"2.0\",id:l,method:\"textDocument/formatting\",params:{textDocument:{uri:t.toString()},options:{tabSize:o.tabSize,insertSpaces:o.insertSpaces}}})),setTimeout(()=>{var h;(h=n.socket)==null||h.removeEventListener(\"message\",c),a(null)},1e4)});return zd.registerDocumentFormattingEditProvider(e.languageId,{provideDocumentFormattingEdits:i})}function gie(n,e,t){const i=async(s,o,r)=>!n.isInitialized||!n.socket||n.socket.readyState!==WebSocket.OPEN?null:new Promise(a=>{var d,u;const l=n.messageId++,c=h=>{var g;const f=JSON.parse(h.data);if(f.id===l){if((g=n.socket)==null||g.removeEventListener(\"message\",c),f.error){a(null);return}if(!f.result||!Array.isArray(f.result)||f.result.length===0){a(null);return}const p=f.result.map(_=>({range:tj.range(_.range),kind:_.kind===1?zd.DocumentHighlightKind.Write:_.kind===2?zd.DocumentHighlightKind.Read:zd.DocumentHighlightKind.Text}));a(p)}};(d=n.socket)==null||d.addEventListener(\"message\",c),(u=n.socket)==null||u.send(JSON.stringify({jsonrpc:\"2.0\",id:l,method:\"textDocument/documentHighlight\",params:{textDocument:{uri:t.toString()},position:wO.position(o)}})),setTimeout(()=>{var h;(h=n.socket)==null||h.removeEventListener(\"message\",c),a(null)},3e3)});return zd.registerDocumentHighlightProvider(e.languageId,{provideDocumentHighlights:i})}function Gst(n){if(!n)throw new Error(\"apiBaseUrl is not defined\");return n===\"/\"?\"\":n}function mpe(n,e){return e.startsWith(\"https://\")?e:Gst(n)+e}function _pe(n){var i;const e=(n==null?void 0:n.statusCode)||((i=n==null?void 0:n.response)==null?void 0:i.status)||(n==null?void 0:n.status)||500,t=n!=null&&n.data&&typeof n.data==\"object\"?n.data:{message:(n==null?void 0:n.message)||\"Request failed\"};return{statusCode:e,data:t}}async function jl(n,e=!1,t=!1){const i=Tm().public.apiBaseUrl,s=mpe(i,n),o={};if(e&&(o.Authorization=`${pi().authToken}`,t)){const l=pi().jesseTradeBearer;l&&(o[\"X-Jesse-Trade-Token\"]=l)}const r=Ue(null),a=Ue(null);try{r.value=await $fetch(s,{headers:o})}catch(l){a.value=_pe(l)}return{data:r,error:a}}async function Ot(n,e,t=!1,i=!1){const s=Tm().public.apiBaseUrl,o=mpe(s,n),r={\"Content-Type\":\"application/json\"};if(t&&(r.Authorization=`${pi().authToken}`,i)){const c=pi().jesseTradeBearer;c&&(r[\"X-Jesse-Trade-Token\"]=c)}const a=Ue(null),l=Ue(null);try{a.value=await $fetch(o,{method:\"POST\",body:e,headers:r})}catch(c){l.value=_pe(c)}return{data:a,error:l}}function vpe(){const n=Ew(\"notifications\",()=>[]);function e(i){const s={id:new Date().getTime().toString(),...i};return n.value.findIndex(r=>r.id===s.id)===-1&&n.value.push(s),s}function t(i){n.value=n.value.filter(s=>s.id!==i)}return{add:e,remove:t}}function Lt(n,e){if(typeof window>\"u\")return;const t=vpe(),i=n.charAt(0).toUpperCase()+n.slice(1),s=n===\"error\"?\"red\":n===\"success\"?\"green\":\"blue\",o=n===\"error\"?\"i-heroicons i-heroicons-x-circle\":n===\"success\"?\"i-heroicons i-heroicons-check-circle\":\"i-heroicons i-heroicons-information-circle\";t.add({title:i,description:e,color:s,icon:o})}function Pt(n){n.response?n.response.data&&n.response.data.message&&Lt(\"error\",n.response.data.message):n.value?n.value.data&&n.value.data.message?Lt(\"error\",n.value.data.message):n.value.data&&n.value.data.error&&Lt(\"error\",n.value.data.error):n.message?Lt(\"error\",n.message):Lt(\"error\",\"An error occurred\")}var oS=typeof globalThis<\"u\"?globalThis:typeof window<\"u\"?window:typeof global<\"u\"?global:typeof self<\"u\"?self:{};function Zst(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,\"default\")?n.default:n}var TR={exports:{}};/**\n * @license\n * Lodash <https://lodash.com/>\n * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */TR.exports;(function(n,e){(function(){var t,i=\"4.17.21\",s=200,o=\"Unsupported core-js use. Try https://npms.io/search?q=ponyfill.\",r=\"Expected a function\",a=\"Invalid `variable` option passed into `_.template`\",l=\"__lodash_hash_undefined__\",c=500,d=\"__lodash_placeholder__\",u=1,h=2,f=4,g=1,p=2,_=1,b=2,w=4,y=8,S=16,x=32,k=64,D=128,I=256,N=512,P=30,O=\"...\",M=800,z=16,K=1,ae=2,se=3,he=1/0,me=9007199254740991,De=17976931348623157e292,lt=NaN,We=4294967295,Ve=We-1,Me=We>>>1,Zt=[[\"ary\",D],[\"bind\",_],[\"bindKey\",b],[\"curry\",y],[\"curryRight\",S],[\"flip\",N],[\"partial\",x],[\"partialRight\",k],[\"rearg\",I]],Oi=\"[object Arguments]\",ni=\"[object Array]\",Se=\"[object AsyncFunction]\",Qe=\"[object Boolean]\",nt=\"[object Date]\",mt=\"[object DOMException]\",Je=\"[object Error]\",Ii=\"[object Function]\",J=\"[object GeneratorFunction]\",ie=\"[object Map]\",ye=\"[object Number]\",ze=\"[object Null]\",Oe=\"[object Object]\",et=\"[object Promise]\",vt=\"[object Proxy]\",re=\"[object RegExp]\",Q=\"[object Set]\",Z=\"[object String]\",B=\"[object Symbol]\",H=\"[object Undefined]\",Y=\"[object WeakMap]\",G=\"[object WeakSet]\",ge=\"[object ArrayBuffer]\",Ie=\"[object DataView]\",qe=\"[object Float32Array]\",ot=\"[object Float64Array]\",bt=\"[object Int8Array]\",xt=\"[object Int16Array]\",si=\"[object Int32Array]\",Ci=\"[object Uint8Array]\",Dt=\"[object Uint8ClampedArray]\",Si=\"[object Uint16Array]\",Ai=\"[object Uint32Array]\",mr=/\\b__p \\+= '';/g,Ei=/\\b(__p \\+=) '' \\+/g,Cs=/(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g,wu=/&(?:amp|lt|gt|quot|#39);/g,yu=/[&<>\"']/g,Nl=RegExp(wu.source),Su=RegExp(yu.source),Kh=/<%-([\\s\\S]+?)%>/g,qh=/<%([\\s\\S]+?)%>/g,Gh=/<%=([\\s\\S]+?)%>/g,Zh=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,ry=/^\\w*$/,yc=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,Yh=/[\\\\^$.*+?()[\\]{}|]/g,k_=RegExp(Yh.source),Kg=/^\\s+/,MO=/\\s/,hb=/\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,hd=/\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,gI=/,? & /,pI=/[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g,mI=/[()=,{}\\[\\]\\/\\s]/,_I=/\\\\(\\\\)?/g,PO=/\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g,Gt=/\\w*$/,_e=/^[-+]0x[0-9a-f]+$/i,ct=/^0b[01]+$/i,Et=/^\\[object .+?Constructor\\]$/,jn=/^0o[0-7]+$/i,ko=/^(?:0|[1-9]\\d*)$/,ja=/[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g,ls=/($^)/,Sc=/['\\n\\r\\u2028\\u2029\\\\]/g,qg=\"\\\\ud800-\\\\udfff\",vI=\"\\\\u0300-\\\\u036f\",$j=\"\\\\ufe20-\\\\ufe2f\",I_e=\"\\\\u20d0-\\\\u20ff\",Uj=vI+$j+I_e,jj=\"\\\\u2700-\\\\u27bf\",Kj=\"a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff\",E_e=\"\\\\xac\\\\xb1\\\\xd7\\\\xf7\",T_e=\"\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\",N_e=\"\\\\u2000-\\\\u206f\",A_e=\" \\\\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\",qj=\"A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde\",Gj=\"\\\\ufe0e\\\\ufe0f\",Zj=E_e+T_e+N_e+A_e,OO=\"['’]\",R_e=\"[\"+qg+\"]\",Yj=\"[\"+Zj+\"]\",bI=\"[\"+Uj+\"]\",Xj=\"\\\\d+\",M_e=\"[\"+jj+\"]\",Qj=\"[\"+Kj+\"]\",Jj=\"[^\"+qg+Zj+Xj+jj+Kj+qj+\"]\",FO=\"\\\\ud83c[\\\\udffb-\\\\udfff]\",P_e=\"(?:\"+bI+\"|\"+FO+\")\",eK=\"[^\"+qg+\"]\",BO=\"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",WO=\"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",fb=\"[\"+qj+\"]\",tK=\"\\\\u200d\",iK=\"(?:\"+Qj+\"|\"+Jj+\")\",O_e=\"(?:\"+fb+\"|\"+Jj+\")\",nK=\"(?:\"+OO+\"(?:d|ll|m|re|s|t|ve))?\",sK=\"(?:\"+OO+\"(?:D|LL|M|RE|S|T|VE))?\",oK=P_e+\"?\",rK=\"[\"+Gj+\"]?\",F_e=\"(?:\"+tK+\"(?:\"+[eK,BO,WO].join(\"|\")+\")\"+rK+oK+\")*\",B_e=\"\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])\",W_e=\"\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])\",aK=rK+oK+F_e,H_e=\"(?:\"+[M_e,BO,WO].join(\"|\")+\")\"+aK,V_e=\"(?:\"+[eK+bI+\"?\",bI,BO,WO,R_e].join(\"|\")+\")\",z_e=RegExp(OO,\"g\"),$_e=RegExp(bI,\"g\"),HO=RegExp(FO+\"(?=\"+FO+\")|\"+V_e+aK,\"g\"),U_e=RegExp([fb+\"?\"+Qj+\"+\"+nK+\"(?=\"+[Yj,fb,\"$\"].join(\"|\")+\")\",O_e+\"+\"+sK+\"(?=\"+[Yj,fb+iK,\"$\"].join(\"|\")+\")\",fb+\"?\"+iK+\"+\"+nK,fb+\"+\"+sK,W_e,B_e,Xj,H_e].join(\"|\"),\"g\"),j_e=RegExp(\"[\"+tK+qg+Uj+Gj+\"]\"),K_e=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,q_e=[\"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\"],G_e=-1,Es={};Es[qe]=Es[ot]=Es[bt]=Es[xt]=Es[si]=Es[Ci]=Es[Dt]=Es[Si]=Es[Ai]=!0,Es[Oi]=Es[ni]=Es[ge]=Es[Qe]=Es[Ie]=Es[nt]=Es[Je]=Es[Ii]=Es[ie]=Es[ye]=Es[Oe]=Es[re]=Es[Q]=Es[Z]=Es[Y]=!1;var ws={};ws[Oi]=ws[ni]=ws[ge]=ws[Ie]=ws[Qe]=ws[nt]=ws[qe]=ws[ot]=ws[bt]=ws[xt]=ws[si]=ws[ie]=ws[ye]=ws[Oe]=ws[re]=ws[Q]=ws[Z]=ws[B]=ws[Ci]=ws[Dt]=ws[Si]=ws[Ai]=!0,ws[Je]=ws[Ii]=ws[Y]=!1;var Z_e={À:\"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\",Œ:\"Oe\",œ:\"oe\",ŉ:\"'n\",ſ:\"s\"},Y_e={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\"},X_e={\"&amp;\":\"&\",\"&lt;\":\"<\",\"&gt;\":\">\",\"&quot;\":'\"',\"&#39;\":\"'\"},Q_e={\"\\\\\":\"\\\\\",\"'\":\"'\",\"\\n\":\"n\",\"\\r\":\"r\",\"\\u2028\":\"u2028\",\"\\u2029\":\"u2029\"},J_e=parseFloat,eve=parseInt,lK=typeof oS==\"object\"&&oS&&oS.Object===Object&&oS,tve=typeof self==\"object\"&&self&&self.Object===Object&&self,_r=lK||tve||Function(\"return this\")(),VO=e&&!e.nodeType&&e,D_=VO&&!0&&n&&!n.nodeType&&n,cK=D_&&D_.exports===VO,zO=cK&&lK.process,xc=function(){try{var ve=D_&&D_.require&&D_.require(\"util\").types;return ve||zO&&zO.binding&&zO.binding(\"util\")}catch{}}(),dK=xc&&xc.isArrayBuffer,uK=xc&&xc.isDate,hK=xc&&xc.isMap,fK=xc&&xc.isRegExp,gK=xc&&xc.isSet,pK=xc&&xc.isTypedArray;function Al(ve,$e,Pe){switch(Pe.length){case 0:return ve.call($e);case 1:return ve.call($e,Pe[0]);case 2:return ve.call($e,Pe[0],Pe[1]);case 3:return ve.call($e,Pe[0],Pe[1],Pe[2])}return ve.apply($e,Pe)}function ive(ve,$e,Pe,Ft){for(var Ti=-1,On=ve==null?0:ve.length;++Ti<On;){var Fo=ve[Ti];$e(Ft,Fo,Pe(Fo),ve)}return Ft}function Lc(ve,$e){for(var Pe=-1,Ft=ve==null?0:ve.length;++Pe<Ft&&$e(ve[Pe],Pe,ve)!==!1;);return ve}function nve(ve,$e){for(var Pe=ve==null?0:ve.length;Pe--&&$e(ve[Pe],Pe,ve)!==!1;);return ve}function mK(ve,$e){for(var Pe=-1,Ft=ve==null?0:ve.length;++Pe<Ft;)if(!$e(ve[Pe],Pe,ve))return!1;return!0}function Gg(ve,$e){for(var Pe=-1,Ft=ve==null?0:ve.length,Ti=0,On=[];++Pe<Ft;){var Fo=ve[Pe];$e(Fo,Pe,ve)&&(On[Ti++]=Fo)}return On}function CI(ve,$e){var Pe=ve==null?0:ve.length;return!!Pe&&gb(ve,$e,0)>-1}function $O(ve,$e,Pe){for(var Ft=-1,Ti=ve==null?0:ve.length;++Ft<Ti;)if(Pe($e,ve[Ft]))return!0;return!1}function Fs(ve,$e){for(var Pe=-1,Ft=ve==null?0:ve.length,Ti=Array(Ft);++Pe<Ft;)Ti[Pe]=$e(ve[Pe],Pe,ve);return Ti}function Zg(ve,$e){for(var Pe=-1,Ft=$e.length,Ti=ve.length;++Pe<Ft;)ve[Ti+Pe]=$e[Pe];return ve}function UO(ve,$e,Pe,Ft){var Ti=-1,On=ve==null?0:ve.length;for(Ft&&On&&(Pe=ve[++Ti]);++Ti<On;)Pe=$e(Pe,ve[Ti],Ti,ve);return Pe}function sve(ve,$e,Pe,Ft){var Ti=ve==null?0:ve.length;for(Ft&&Ti&&(Pe=ve[--Ti]);Ti--;)Pe=$e(Pe,ve[Ti],Ti,ve);return Pe}function jO(ve,$e){for(var Pe=-1,Ft=ve==null?0:ve.length;++Pe<Ft;)if($e(ve[Pe],Pe,ve))return!0;return!1}var ove=KO(\"length\");function rve(ve){return ve.split(\"\")}function ave(ve){return ve.match(pI)||[]}function _K(ve,$e,Pe){var Ft;return Pe(ve,function(Ti,On,Fo){if($e(Ti,On,Fo))return Ft=On,!1}),Ft}function wI(ve,$e,Pe,Ft){for(var Ti=ve.length,On=Pe+(Ft?1:-1);Ft?On--:++On<Ti;)if($e(ve[On],On,ve))return On;return-1}function gb(ve,$e,Pe){return $e===$e?bve(ve,$e,Pe):wI(ve,vK,Pe)}function lve(ve,$e,Pe,Ft){for(var Ti=Pe-1,On=ve.length;++Ti<On;)if(Ft(ve[Ti],$e))return Ti;return-1}function vK(ve){return ve!==ve}function bK(ve,$e){var Pe=ve==null?0:ve.length;return Pe?GO(ve,$e)/Pe:lt}function KO(ve){return function($e){return $e==null?t:$e[ve]}}function qO(ve){return function($e){return ve==null?t:ve[$e]}}function CK(ve,$e,Pe,Ft,Ti){return Ti(ve,function(On,Fo,ms){Pe=Ft?(Ft=!1,On):$e(Pe,On,Fo,ms)}),Pe}function cve(ve,$e){var Pe=ve.length;for(ve.sort($e);Pe--;)ve[Pe]=ve[Pe].value;return ve}function GO(ve,$e){for(var Pe,Ft=-1,Ti=ve.length;++Ft<Ti;){var On=$e(ve[Ft]);On!==t&&(Pe=Pe===t?On:Pe+On)}return Pe}function ZO(ve,$e){for(var Pe=-1,Ft=Array(ve);++Pe<ve;)Ft[Pe]=$e(Pe);return Ft}function dve(ve,$e){return Fs($e,function(Pe){return[Pe,ve[Pe]]})}function wK(ve){return ve&&ve.slice(0,LK(ve)+1).replace(Kg,\"\")}function Rl(ve){return function($e){return ve($e)}}function YO(ve,$e){return Fs($e,function(Pe){return ve[Pe]})}function ay(ve,$e){return ve.has($e)}function yK(ve,$e){for(var Pe=-1,Ft=ve.length;++Pe<Ft&&gb($e,ve[Pe],0)>-1;);return Pe}function SK(ve,$e){for(var Pe=ve.length;Pe--&&gb($e,ve[Pe],0)>-1;);return Pe}function uve(ve,$e){for(var Pe=ve.length,Ft=0;Pe--;)ve[Pe]===$e&&++Ft;return Ft}var hve=qO(Z_e),fve=qO(Y_e);function gve(ve){return\"\\\\\"+Q_e[ve]}function pve(ve,$e){return ve==null?t:ve[$e]}function pb(ve){return j_e.test(ve)}function mve(ve){return K_e.test(ve)}function _ve(ve){for(var $e,Pe=[];!($e=ve.next()).done;)Pe.push($e.value);return Pe}function XO(ve){var $e=-1,Pe=Array(ve.size);return ve.forEach(function(Ft,Ti){Pe[++$e]=[Ti,Ft]}),Pe}function xK(ve,$e){return function(Pe){return ve($e(Pe))}}function Yg(ve,$e){for(var Pe=-1,Ft=ve.length,Ti=0,On=[];++Pe<Ft;){var Fo=ve[Pe];(Fo===$e||Fo===d)&&(ve[Pe]=d,On[Ti++]=Pe)}return On}function yI(ve){var $e=-1,Pe=Array(ve.size);return ve.forEach(function(Ft){Pe[++$e]=Ft}),Pe}function vve(ve){var $e=-1,Pe=Array(ve.size);return ve.forEach(function(Ft){Pe[++$e]=[Ft,Ft]}),Pe}function bve(ve,$e,Pe){for(var Ft=Pe-1,Ti=ve.length;++Ft<Ti;)if(ve[Ft]===$e)return Ft;return-1}function Cve(ve,$e,Pe){for(var Ft=Pe+1;Ft--;)if(ve[Ft]===$e)return Ft;return Ft}function mb(ve){return pb(ve)?yve(ve):ove(ve)}function fd(ve){return pb(ve)?Sve(ve):rve(ve)}function LK(ve){for(var $e=ve.length;$e--&&MO.test(ve.charAt($e)););return $e}var wve=qO(X_e);function yve(ve){for(var $e=HO.lastIndex=0;HO.test(ve);)++$e;return $e}function Sve(ve){return ve.match(HO)||[]}function xve(ve){return ve.match(U_e)||[]}var Lve=function ve($e){$e=$e==null?_r:_b.defaults(_r.Object(),$e,_b.pick(_r,q_e));var Pe=$e.Array,Ft=$e.Date,Ti=$e.Error,On=$e.Function,Fo=$e.Math,ms=$e.Object,QO=$e.RegExp,kve=$e.String,kc=$e.TypeError,SI=Pe.prototype,Dve=On.prototype,vb=ms.prototype,xI=$e[\"__core-js_shared__\"],LI=Dve.toString,es=vb.hasOwnProperty,Ive=0,kK=function(){var m=/[^.]+$/.exec(xI&&xI.keys&&xI.keys.IE_PROTO||\"\");return m?\"Symbol(src)_1.\"+m:\"\"}(),kI=vb.toString,Eve=LI.call(ms),Tve=_r._,Nve=QO(\"^\"+LI.call(es).replace(Yh,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),DI=cK?$e.Buffer:t,Xg=$e.Symbol,II=$e.Uint8Array,DK=DI?DI.allocUnsafe:t,EI=xK(ms.getPrototypeOf,ms),IK=ms.create,EK=vb.propertyIsEnumerable,TI=SI.splice,TK=Xg?Xg.isConcatSpreadable:t,ly=Xg?Xg.iterator:t,I_=Xg?Xg.toStringTag:t,NI=function(){try{var m=R_(ms,\"defineProperty\");return m({},\"\",{}),m}catch{}}(),Ave=$e.clearTimeout!==_r.clearTimeout&&$e.clearTimeout,Rve=Ft&&Ft.now!==_r.Date.now&&Ft.now,Mve=$e.setTimeout!==_r.setTimeout&&$e.setTimeout,AI=Fo.ceil,RI=Fo.floor,JO=ms.getOwnPropertySymbols,Pve=DI?DI.isBuffer:t,NK=$e.isFinite,Ove=SI.join,Fve=xK(ms.keys,ms),Bo=Fo.max,qr=Fo.min,Bve=Ft.now,Wve=$e.parseInt,AK=Fo.random,Hve=SI.reverse,e4=R_($e,\"DataView\"),cy=R_($e,\"Map\"),t4=R_($e,\"Promise\"),bb=R_($e,\"Set\"),dy=R_($e,\"WeakMap\"),uy=R_(ms,\"create\"),MI=dy&&new dy,Cb={},Vve=M_(e4),zve=M_(cy),$ve=M_(t4),Uve=M_(bb),jve=M_(dy),PI=Xg?Xg.prototype:t,hy=PI?PI.valueOf:t,RK=PI?PI.toString:t;function $(m){if(eo(m)&&!Ri(m)&&!(m instanceof un)){if(m instanceof Dc)return m;if(es.call(m,\"__wrapped__\"))return Mq(m)}return new Dc(m)}var wb=function(){function m(){}return function(C){if(!Ks(C))return{};if(IK)return IK(C);m.prototype=C;var L=new m;return m.prototype=t,L}}();function OI(){}function Dc(m,C){this.__wrapped__=m,this.__actions__=[],this.__chain__=!!C,this.__index__=0,this.__values__=t}$.templateSettings={escape:Kh,evaluate:qh,interpolate:Gh,variable:\"\",imports:{_:$}},$.prototype=OI.prototype,$.prototype.constructor=$,Dc.prototype=wb(OI.prototype),Dc.prototype.constructor=Dc;function un(m){this.__wrapped__=m,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=We,this.__views__=[]}function Kve(){var m=new un(this.__wrapped__);return m.__actions__=Ka(this.__actions__),m.__dir__=this.__dir__,m.__filtered__=this.__filtered__,m.__iteratees__=Ka(this.__iteratees__),m.__takeCount__=this.__takeCount__,m.__views__=Ka(this.__views__),m}function qve(){if(this.__filtered__){var m=new un(this);m.__dir__=-1,m.__filtered__=!0}else m=this.clone(),m.__dir__*=-1;return m}function Gve(){var m=this.__wrapped__.value(),C=this.__dir__,L=Ri(m),T=C<0,F=L?m.length:0,U=rbe(0,F,this.__views__),oe=U.start,de=U.end,Ce=de-oe,Ze=T?de:oe-1,Ye=this.__iteratees__,tt=Ye.length,It=0,Kt=qr(Ce,this.__takeCount__);if(!L||!T&&F==Ce&&Kt==Ce)return nq(m,this.__actions__);var ui=[];e:for(;Ce--&&It<Kt;){Ze+=C;for(var ji=-1,hi=m[Ze];++ji<tt;){var nn=Ye[ji],pn=nn.iteratee,Ol=nn.type,ma=pn(hi);if(Ol==ae)hi=ma;else if(!ma){if(Ol==K)continue e;break e}}ui[It++]=hi}return ui}un.prototype=wb(OI.prototype),un.prototype.constructor=un;function E_(m){var C=-1,L=m==null?0:m.length;for(this.clear();++C<L;){var T=m[C];this.set(T[0],T[1])}}function Zve(){this.__data__=uy?uy(null):{},this.size=0}function Yve(m){var C=this.has(m)&&delete this.__data__[m];return this.size-=C?1:0,C}function Xve(m){var C=this.__data__;if(uy){var L=C[m];return L===l?t:L}return es.call(C,m)?C[m]:t}function Qve(m){var C=this.__data__;return uy?C[m]!==t:es.call(C,m)}function Jve(m,C){var L=this.__data__;return this.size+=this.has(m)?0:1,L[m]=uy&&C===t?l:C,this}E_.prototype.clear=Zve,E_.prototype.delete=Yve,E_.prototype.get=Xve,E_.prototype.has=Qve,E_.prototype.set=Jve;function Xh(m){var C=-1,L=m==null?0:m.length;for(this.clear();++C<L;){var T=m[C];this.set(T[0],T[1])}}function e0e(){this.__data__=[],this.size=0}function t0e(m){var C=this.__data__,L=FI(C,m);if(L<0)return!1;var T=C.length-1;return L==T?C.pop():TI.call(C,L,1),--this.size,!0}function i0e(m){var C=this.__data__,L=FI(C,m);return L<0?t:C[L][1]}function n0e(m){return FI(this.__data__,m)>-1}function s0e(m,C){var L=this.__data__,T=FI(L,m);return T<0?(++this.size,L.push([m,C])):L[T][1]=C,this}Xh.prototype.clear=e0e,Xh.prototype.delete=t0e,Xh.prototype.get=i0e,Xh.prototype.has=n0e,Xh.prototype.set=s0e;function Qh(m){var C=-1,L=m==null?0:m.length;for(this.clear();++C<L;){var T=m[C];this.set(T[0],T[1])}}function o0e(){this.size=0,this.__data__={hash:new E_,map:new(cy||Xh),string:new E_}}function r0e(m){var C=ZI(this,m).delete(m);return this.size-=C?1:0,C}function a0e(m){return ZI(this,m).get(m)}function l0e(m){return ZI(this,m).has(m)}function c0e(m,C){var L=ZI(this,m),T=L.size;return L.set(m,C),this.size+=L.size==T?0:1,this}Qh.prototype.clear=o0e,Qh.prototype.delete=r0e,Qh.prototype.get=a0e,Qh.prototype.has=l0e,Qh.prototype.set=c0e;function T_(m){var C=-1,L=m==null?0:m.length;for(this.__data__=new Qh;++C<L;)this.add(m[C])}function d0e(m){return this.__data__.set(m,l),this}function u0e(m){return this.__data__.has(m)}T_.prototype.add=T_.prototype.push=d0e,T_.prototype.has=u0e;function gd(m){var C=this.__data__=new Xh(m);this.size=C.size}function h0e(){this.__data__=new Xh,this.size=0}function f0e(m){var C=this.__data__,L=C.delete(m);return this.size=C.size,L}function g0e(m){return this.__data__.get(m)}function p0e(m){return this.__data__.has(m)}function m0e(m,C){var L=this.__data__;if(L instanceof Xh){var T=L.__data__;if(!cy||T.length<s-1)return T.push([m,C]),this.size=++L.size,this;L=this.__data__=new Qh(T)}return L.set(m,C),this.size=L.size,this}gd.prototype.clear=h0e,gd.prototype.delete=f0e,gd.prototype.get=g0e,gd.prototype.has=p0e,gd.prototype.set=m0e;function MK(m,C){var L=Ri(m),T=!L&&P_(m),F=!L&&!T&&ip(m),U=!L&&!T&&!F&&Lb(m),oe=L||T||F||U,de=oe?ZO(m.length,kve):[],Ce=de.length;for(var Ze in m)(C||es.call(m,Ze))&&!(oe&&(Ze==\"length\"||F&&(Ze==\"offset\"||Ze==\"parent\")||U&&(Ze==\"buffer\"||Ze==\"byteLength\"||Ze==\"byteOffset\")||nf(Ze,Ce)))&&de.push(Ze);return de}function PK(m){var C=m.length;return C?m[h4(0,C-1)]:t}function _0e(m,C){return YI(Ka(m),N_(C,0,m.length))}function v0e(m){return YI(Ka(m))}function i4(m,C,L){(L!==t&&!pd(m[C],L)||L===t&&!(C in m))&&Jh(m,C,L)}function fy(m,C,L){var T=m[C];(!(es.call(m,C)&&pd(T,L))||L===t&&!(C in m))&&Jh(m,C,L)}function FI(m,C){for(var L=m.length;L--;)if(pd(m[L][0],C))return L;return-1}function b0e(m,C,L,T){return Qg(m,function(F,U,oe){C(T,F,L(F),oe)}),T}function OK(m,C){return m&&Lu(C,ir(C),m)}function C0e(m,C){return m&&Lu(C,Ga(C),m)}function Jh(m,C,L){C==\"__proto__\"&&NI?NI(m,C,{configurable:!0,enumerable:!0,value:L,writable:!0}):m[C]=L}function n4(m,C){for(var L=-1,T=C.length,F=Pe(T),U=m==null;++L<T;)F[L]=U?t:F4(m,C[L]);return F}function N_(m,C,L){return m===m&&(L!==t&&(m=m<=L?m:L),C!==t&&(m=m>=C?m:C)),m}function Ic(m,C,L,T,F,U){var oe,de=C&u,Ce=C&h,Ze=C&f;if(L&&(oe=F?L(m,T,F,U):L(m)),oe!==t)return oe;if(!Ks(m))return m;var Ye=Ri(m);if(Ye){if(oe=lbe(m),!de)return Ka(m,oe)}else{var tt=Gr(m),It=tt==Ii||tt==J;if(ip(m))return rq(m,de);if(tt==Oe||tt==Oi||It&&!F){if(oe=Ce||It?{}:Lq(m),!de)return Ce?X0e(m,C0e(oe,m)):Y0e(m,OK(oe,m))}else{if(!ws[tt])return F?m:{};oe=cbe(m,tt,de)}}U||(U=new gd);var Kt=U.get(m);if(Kt)return Kt;U.set(m,oe),eG(m)?m.forEach(function(hi){oe.add(Ic(hi,C,L,hi,m,U))}):Qq(m)&&m.forEach(function(hi,nn){oe.set(nn,Ic(hi,C,L,nn,m,U))});var ui=Ze?Ce?S4:y4:Ce?Ga:ir,ji=Ye?t:ui(m);return Lc(ji||m,function(hi,nn){ji&&(nn=hi,hi=m[nn]),fy(oe,nn,Ic(hi,C,L,nn,m,U))}),oe}function w0e(m){var C=ir(m);return function(L){return FK(L,m,C)}}function FK(m,C,L){var T=L.length;if(m==null)return!T;for(m=ms(m);T--;){var F=L[T],U=C[F],oe=m[F];if(oe===t&&!(F in m)||!U(oe))return!1}return!0}function BK(m,C,L){if(typeof m!=\"function\")throw new kc(r);return Cy(function(){m.apply(t,L)},C)}function gy(m,C,L,T){var F=-1,U=CI,oe=!0,de=m.length,Ce=[],Ze=C.length;if(!de)return Ce;L&&(C=Fs(C,Rl(L))),T?(U=$O,oe=!1):C.length>=s&&(U=ay,oe=!1,C=new T_(C));e:for(;++F<de;){var Ye=m[F],tt=L==null?Ye:L(Ye);if(Ye=T||Ye!==0?Ye:0,oe&&tt===tt){for(var It=Ze;It--;)if(C[It]===tt)continue e;Ce.push(Ye)}else U(C,tt,T)||Ce.push(Ye)}return Ce}var Qg=uq(xu),WK=uq(o4,!0);function y0e(m,C){var L=!0;return Qg(m,function(T,F,U){return L=!!C(T,F,U),L}),L}function BI(m,C,L){for(var T=-1,F=m.length;++T<F;){var U=m[T],oe=C(U);if(oe!=null&&(de===t?oe===oe&&!Pl(oe):L(oe,de)))var de=oe,Ce=U}return Ce}function S0e(m,C,L,T){var F=m.length;for(L=Wi(L),L<0&&(L=-L>F?0:F+L),T=T===t||T>F?F:Wi(T),T<0&&(T+=F),T=L>T?0:iG(T);L<T;)m[L++]=C;return m}function HK(m,C){var L=[];return Qg(m,function(T,F,U){C(T,F,U)&&L.push(T)}),L}function vr(m,C,L,T,F){var U=-1,oe=m.length;for(L||(L=ube),F||(F=[]);++U<oe;){var de=m[U];C>0&&L(de)?C>1?vr(de,C-1,L,T,F):Zg(F,de):T||(F[F.length]=de)}return F}var s4=hq(),VK=hq(!0);function xu(m,C){return m&&s4(m,C,ir)}function o4(m,C){return m&&VK(m,C,ir)}function WI(m,C){return Gg(C,function(L){return sf(m[L])})}function A_(m,C){C=ep(C,m);for(var L=0,T=C.length;m!=null&&L<T;)m=m[ku(C[L++])];return L&&L==T?m:t}function zK(m,C,L){var T=C(m);return Ri(m)?T:Zg(T,L(m))}function ga(m){return m==null?m===t?H:ze:I_&&I_ in ms(m)?obe(m):vbe(m)}function r4(m,C){return m>C}function x0e(m,C){return m!=null&&es.call(m,C)}function L0e(m,C){return m!=null&&C in ms(m)}function k0e(m,C,L){return m>=qr(C,L)&&m<Bo(C,L)}function a4(m,C,L){for(var T=L?$O:CI,F=m[0].length,U=m.length,oe=U,de=Pe(U),Ce=1/0,Ze=[];oe--;){var Ye=m[oe];oe&&C&&(Ye=Fs(Ye,Rl(C))),Ce=qr(Ye.length,Ce),de[oe]=!L&&(C||F>=120&&Ye.length>=120)?new T_(oe&&Ye):t}Ye=m[0];var tt=-1,It=de[0];e:for(;++tt<F&&Ze.length<Ce;){var Kt=Ye[tt],ui=C?C(Kt):Kt;if(Kt=L||Kt!==0?Kt:0,!(It?ay(It,ui):T(Ze,ui,L))){for(oe=U;--oe;){var ji=de[oe];if(!(ji?ay(ji,ui):T(m[oe],ui,L)))continue e}It&&It.push(ui),Ze.push(Kt)}}return Ze}function D0e(m,C,L,T){return xu(m,function(F,U,oe){C(T,L(F),U,oe)}),T}function py(m,C,L){C=ep(C,m),m=Eq(m,C);var T=m==null?m:m[ku(Tc(C))];return T==null?t:Al(T,m,L)}function $K(m){return eo(m)&&ga(m)==Oi}function I0e(m){return eo(m)&&ga(m)==ge}function E0e(m){return eo(m)&&ga(m)==nt}function my(m,C,L,T,F){return m===C?!0:m==null||C==null||!eo(m)&&!eo(C)?m!==m&&C!==C:T0e(m,C,L,T,my,F)}function T0e(m,C,L,T,F,U){var oe=Ri(m),de=Ri(C),Ce=oe?ni:Gr(m),Ze=de?ni:Gr(C);Ce=Ce==Oi?Oe:Ce,Ze=Ze==Oi?Oe:Ze;var Ye=Ce==Oe,tt=Ze==Oe,It=Ce==Ze;if(It&&ip(m)){if(!ip(C))return!1;oe=!0,Ye=!1}if(It&&!Ye)return U||(U=new gd),oe||Lb(m)?yq(m,C,L,T,F,U):nbe(m,C,Ce,L,T,F,U);if(!(L&g)){var Kt=Ye&&es.call(m,\"__wrapped__\"),ui=tt&&es.call(C,\"__wrapped__\");if(Kt||ui){var ji=Kt?m.value():m,hi=ui?C.value():C;return U||(U=new gd),F(ji,hi,L,T,U)}}return It?(U||(U=new gd),sbe(m,C,L,T,F,U)):!1}function N0e(m){return eo(m)&&Gr(m)==ie}function l4(m,C,L,T){var F=L.length,U=F,oe=!T;if(m==null)return!U;for(m=ms(m);F--;){var de=L[F];if(oe&&de[2]?de[1]!==m[de[0]]:!(de[0]in m))return!1}for(;++F<U;){de=L[F];var Ce=de[0],Ze=m[Ce],Ye=de[1];if(oe&&de[2]){if(Ze===t&&!(Ce in m))return!1}else{var tt=new gd;if(T)var It=T(Ze,Ye,Ce,m,C,tt);if(!(It===t?my(Ye,Ze,g|p,T,tt):It))return!1}}return!0}function UK(m){if(!Ks(m)||fbe(m))return!1;var C=sf(m)?Nve:Et;return C.test(M_(m))}function A0e(m){return eo(m)&&ga(m)==re}function R0e(m){return eo(m)&&Gr(m)==Q}function M0e(m){return eo(m)&&iE(m.length)&&!!Es[ga(m)]}function jK(m){return typeof m==\"function\"?m:m==null?Za:typeof m==\"object\"?Ri(m)?GK(m[0],m[1]):qK(m):fG(m)}function c4(m){if(!by(m))return Fve(m);var C=[];for(var L in ms(m))es.call(m,L)&&L!=\"constructor\"&&C.push(L);return C}function P0e(m){if(!Ks(m))return _be(m);var C=by(m),L=[];for(var T in m)T==\"constructor\"&&(C||!es.call(m,T))||L.push(T);return L}function d4(m,C){return m<C}function KK(m,C){var L=-1,T=qa(m)?Pe(m.length):[];return Qg(m,function(F,U,oe){T[++L]=C(F,U,oe)}),T}function qK(m){var C=L4(m);return C.length==1&&C[0][2]?Dq(C[0][0],C[0][1]):function(L){return L===m||l4(L,m,C)}}function GK(m,C){return D4(m)&&kq(C)?Dq(ku(m),C):function(L){var T=F4(L,m);return T===t&&T===C?B4(L,m):my(C,T,g|p)}}function HI(m,C,L,T,F){m!==C&&s4(C,function(U,oe){if(F||(F=new gd),Ks(U))O0e(m,C,oe,L,HI,T,F);else{var de=T?T(E4(m,oe),U,oe+\"\",m,C,F):t;de===t&&(de=U),i4(m,oe,de)}},Ga)}function O0e(m,C,L,T,F,U,oe){var de=E4(m,L),Ce=E4(C,L),Ze=oe.get(Ce);if(Ze){i4(m,L,Ze);return}var Ye=U?U(de,Ce,L+\"\",m,C,oe):t,tt=Ye===t;if(tt){var It=Ri(Ce),Kt=!It&&ip(Ce),ui=!It&&!Kt&&Lb(Ce);Ye=Ce,It||Kt||ui?Ri(de)?Ye=de:ho(de)?Ye=Ka(de):Kt?(tt=!1,Ye=rq(Ce,!0)):ui?(tt=!1,Ye=aq(Ce,!0)):Ye=[]:wy(Ce)||P_(Ce)?(Ye=de,P_(de)?Ye=nG(de):(!Ks(de)||sf(de))&&(Ye=Lq(Ce))):tt=!1}tt&&(oe.set(Ce,Ye),F(Ye,Ce,T,U,oe),oe.delete(Ce)),i4(m,L,Ye)}function ZK(m,C){var L=m.length;if(L)return C+=C<0?L:0,nf(C,L)?m[C]:t}function YK(m,C,L){C.length?C=Fs(C,function(U){return Ri(U)?function(oe){return A_(oe,U.length===1?U[0]:U)}:U}):C=[Za];var T=-1;C=Fs(C,Rl(di()));var F=KK(m,function(U,oe,de){var Ce=Fs(C,function(Ze){return Ze(U)});return{criteria:Ce,index:++T,value:U}});return cve(F,function(U,oe){return Z0e(U,oe,L)})}function F0e(m,C){return XK(m,C,function(L,T){return B4(m,T)})}function XK(m,C,L){for(var T=-1,F=C.length,U={};++T<F;){var oe=C[T],de=A_(m,oe);L(de,oe)&&_y(U,ep(oe,m),de)}return U}function B0e(m){return function(C){return A_(C,m)}}function u4(m,C,L,T){var F=T?lve:gb,U=-1,oe=C.length,de=m;for(m===C&&(C=Ka(C)),L&&(de=Fs(m,Rl(L)));++U<oe;)for(var Ce=0,Ze=C[U],Ye=L?L(Ze):Ze;(Ce=F(de,Ye,Ce,T))>-1;)de!==m&&TI.call(de,Ce,1),TI.call(m,Ce,1);return m}function QK(m,C){for(var L=m?C.length:0,T=L-1;L--;){var F=C[L];if(L==T||F!==U){var U=F;nf(F)?TI.call(m,F,1):p4(m,F)}}return m}function h4(m,C){return m+RI(AK()*(C-m+1))}function W0e(m,C,L,T){for(var F=-1,U=Bo(AI((C-m)/(L||1)),0),oe=Pe(U);U--;)oe[T?U:++F]=m,m+=L;return oe}function f4(m,C){var L=\"\";if(!m||C<1||C>me)return L;do C%2&&(L+=m),C=RI(C/2),C&&(m+=m);while(C);return L}function Qi(m,C){return T4(Iq(m,C,Za),m+\"\")}function H0e(m){return PK(kb(m))}function V0e(m,C){var L=kb(m);return YI(L,N_(C,0,L.length))}function _y(m,C,L,T){if(!Ks(m))return m;C=ep(C,m);for(var F=-1,U=C.length,oe=U-1,de=m;de!=null&&++F<U;){var Ce=ku(C[F]),Ze=L;if(Ce===\"__proto__\"||Ce===\"constructor\"||Ce===\"prototype\")return m;if(F!=oe){var Ye=de[Ce];Ze=T?T(Ye,Ce,de):t,Ze===t&&(Ze=Ks(Ye)?Ye:nf(C[F+1])?[]:{})}fy(de,Ce,Ze),de=de[Ce]}return m}var JK=MI?function(m,C){return MI.set(m,C),m}:Za,z0e=NI?function(m,C){return NI(m,\"toString\",{configurable:!0,enumerable:!1,value:H4(C),writable:!0})}:Za;function $0e(m){return YI(kb(m))}function Ec(m,C,L){var T=-1,F=m.length;C<0&&(C=-C>F?0:F+C),L=L>F?F:L,L<0&&(L+=F),F=C>L?0:L-C>>>0,C>>>=0;for(var U=Pe(F);++T<F;)U[T]=m[T+C];return U}function U0e(m,C){var L;return Qg(m,function(T,F,U){return L=C(T,F,U),!L}),!!L}function VI(m,C,L){var T=0,F=m==null?T:m.length;if(typeof C==\"number\"&&C===C&&F<=Me){for(;T<F;){var U=T+F>>>1,oe=m[U];oe!==null&&!Pl(oe)&&(L?oe<=C:oe<C)?T=U+1:F=U}return F}return g4(m,C,Za,L)}function g4(m,C,L,T){var F=0,U=m==null?0:m.length;if(U===0)return 0;C=L(C);for(var oe=C!==C,de=C===null,Ce=Pl(C),Ze=C===t;F<U;){var Ye=RI((F+U)/2),tt=L(m[Ye]),It=tt!==t,Kt=tt===null,ui=tt===tt,ji=Pl(tt);if(oe)var hi=T||ui;else Ze?hi=ui&&(T||It):de?hi=ui&&It&&(T||!Kt):Ce?hi=ui&&It&&!Kt&&(T||!ji):Kt||ji?hi=!1:hi=T?tt<=C:tt<C;hi?F=Ye+1:U=Ye}return qr(U,Ve)}function eq(m,C){for(var L=-1,T=m.length,F=0,U=[];++L<T;){var oe=m[L],de=C?C(oe):oe;if(!L||!pd(de,Ce)){var Ce=de;U[F++]=oe===0?0:oe}}return U}function tq(m){return typeof m==\"number\"?m:Pl(m)?lt:+m}function Ml(m){if(typeof m==\"string\")return m;if(Ri(m))return Fs(m,Ml)+\"\";if(Pl(m))return RK?RK.call(m):\"\";var C=m+\"\";return C==\"0\"&&1/m==-he?\"-0\":C}function Jg(m,C,L){var T=-1,F=CI,U=m.length,oe=!0,de=[],Ce=de;if(L)oe=!1,F=$O;else if(U>=s){var Ze=C?null:tbe(m);if(Ze)return yI(Ze);oe=!1,F=ay,Ce=new T_}else Ce=C?[]:de;e:for(;++T<U;){var Ye=m[T],tt=C?C(Ye):Ye;if(Ye=L||Ye!==0?Ye:0,oe&&tt===tt){for(var It=Ce.length;It--;)if(Ce[It]===tt)continue e;C&&Ce.push(tt),de.push(Ye)}else F(Ce,tt,L)||(Ce!==de&&Ce.push(tt),de.push(Ye))}return de}function p4(m,C){return C=ep(C,m),m=Eq(m,C),m==null||delete m[ku(Tc(C))]}function iq(m,C,L,T){return _y(m,C,L(A_(m,C)),T)}function zI(m,C,L,T){for(var F=m.length,U=T?F:-1;(T?U--:++U<F)&&C(m[U],U,m););return L?Ec(m,T?0:U,T?U+1:F):Ec(m,T?U+1:0,T?F:U)}function nq(m,C){var L=m;return L instanceof un&&(L=L.value()),UO(C,function(T,F){return F.func.apply(F.thisArg,Zg([T],F.args))},L)}function m4(m,C,L){var T=m.length;if(T<2)return T?Jg(m[0]):[];for(var F=-1,U=Pe(T);++F<T;)for(var oe=m[F],de=-1;++de<T;)de!=F&&(U[F]=gy(U[F]||oe,m[de],C,L));return Jg(vr(U,1),C,L)}function sq(m,C,L){for(var T=-1,F=m.length,U=C.length,oe={};++T<F;){var de=T<U?C[T]:t;L(oe,m[T],de)}return oe}function _4(m){return ho(m)?m:[]}function v4(m){return typeof m==\"function\"?m:Za}function ep(m,C){return Ri(m)?m:D4(m,C)?[m]:Rq(Kn(m))}var j0e=Qi;function tp(m,C,L){var T=m.length;return L=L===t?T:L,!C&&L>=T?m:Ec(m,C,L)}var oq=Ave||function(m){return _r.clearTimeout(m)};function rq(m,C){if(C)return m.slice();var L=m.length,T=DK?DK(L):new m.constructor(L);return m.copy(T),T}function b4(m){var C=new m.constructor(m.byteLength);return new II(C).set(new II(m)),C}function K0e(m,C){var L=C?b4(m.buffer):m.buffer;return new m.constructor(L,m.byteOffset,m.byteLength)}function q0e(m){var C=new m.constructor(m.source,Gt.exec(m));return C.lastIndex=m.lastIndex,C}function G0e(m){return hy?ms(hy.call(m)):{}}function aq(m,C){var L=C?b4(m.buffer):m.buffer;return new m.constructor(L,m.byteOffset,m.length)}function lq(m,C){if(m!==C){var L=m!==t,T=m===null,F=m===m,U=Pl(m),oe=C!==t,de=C===null,Ce=C===C,Ze=Pl(C);if(!de&&!Ze&&!U&&m>C||U&&oe&&Ce&&!de&&!Ze||T&&oe&&Ce||!L&&Ce||!F)return 1;if(!T&&!U&&!Ze&&m<C||Ze&&L&&F&&!T&&!U||de&&L&&F||!oe&&F||!Ce)return-1}return 0}function Z0e(m,C,L){for(var T=-1,F=m.criteria,U=C.criteria,oe=F.length,de=L.length;++T<oe;){var Ce=lq(F[T],U[T]);if(Ce){if(T>=de)return Ce;var Ze=L[T];return Ce*(Ze==\"desc\"?-1:1)}}return m.index-C.index}function cq(m,C,L,T){for(var F=-1,U=m.length,oe=L.length,de=-1,Ce=C.length,Ze=Bo(U-oe,0),Ye=Pe(Ce+Ze),tt=!T;++de<Ce;)Ye[de]=C[de];for(;++F<oe;)(tt||F<U)&&(Ye[L[F]]=m[F]);for(;Ze--;)Ye[de++]=m[F++];return Ye}function dq(m,C,L,T){for(var F=-1,U=m.length,oe=-1,de=L.length,Ce=-1,Ze=C.length,Ye=Bo(U-de,0),tt=Pe(Ye+Ze),It=!T;++F<Ye;)tt[F]=m[F];for(var Kt=F;++Ce<Ze;)tt[Kt+Ce]=C[Ce];for(;++oe<de;)(It||F<U)&&(tt[Kt+L[oe]]=m[F++]);return tt}function Ka(m,C){var L=-1,T=m.length;for(C||(C=Pe(T));++L<T;)C[L]=m[L];return C}function Lu(m,C,L,T){var F=!L;L||(L={});for(var U=-1,oe=C.length;++U<oe;){var de=C[U],Ce=T?T(L[de],m[de],de,L,m):t;Ce===t&&(Ce=m[de]),F?Jh(L,de,Ce):fy(L,de,Ce)}return L}function Y0e(m,C){return Lu(m,k4(m),C)}function X0e(m,C){return Lu(m,Sq(m),C)}function $I(m,C){return function(L,T){var F=Ri(L)?ive:b0e,U=C?C():{};return F(L,m,di(T,2),U)}}function yb(m){return Qi(function(C,L){var T=-1,F=L.length,U=F>1?L[F-1]:t,oe=F>2?L[2]:t;for(U=m.length>3&&typeof U==\"function\"?(F--,U):t,oe&&pa(L[0],L[1],oe)&&(U=F<3?t:U,F=1),C=ms(C);++T<F;){var de=L[T];de&&m(C,de,T,U)}return C})}function uq(m,C){return function(L,T){if(L==null)return L;if(!qa(L))return m(L,T);for(var F=L.length,U=C?F:-1,oe=ms(L);(C?U--:++U<F)&&T(oe[U],U,oe)!==!1;);return L}}function hq(m){return function(C,L,T){for(var F=-1,U=ms(C),oe=T(C),de=oe.length;de--;){var Ce=oe[m?de:++F];if(L(U[Ce],Ce,U)===!1)break}return C}}function Q0e(m,C,L){var T=C&_,F=vy(m);function U(){var oe=this&&this!==_r&&this instanceof U?F:m;return oe.apply(T?L:this,arguments)}return U}function fq(m){return function(C){C=Kn(C);var L=pb(C)?fd(C):t,T=L?L[0]:C.charAt(0),F=L?tp(L,1).join(\"\"):C.slice(1);return T[m]()+F}}function Sb(m){return function(C){return UO(uG(dG(C).replace(z_e,\"\")),m,\"\")}}function vy(m){return function(){var C=arguments;switch(C.length){case 0:return new m;case 1:return new m(C[0]);case 2:return new m(C[0],C[1]);case 3:return new m(C[0],C[1],C[2]);case 4:return new m(C[0],C[1],C[2],C[3]);case 5:return new m(C[0],C[1],C[2],C[3],C[4]);case 6:return new m(C[0],C[1],C[2],C[3],C[4],C[5]);case 7:return new m(C[0],C[1],C[2],C[3],C[4],C[5],C[6])}var L=wb(m.prototype),T=m.apply(L,C);return Ks(T)?T:L}}function J0e(m,C,L){var T=vy(m);function F(){for(var U=arguments.length,oe=Pe(U),de=U,Ce=xb(F);de--;)oe[de]=arguments[de];var Ze=U<3&&oe[0]!==Ce&&oe[U-1]!==Ce?[]:Yg(oe,Ce);if(U-=Ze.length,U<L)return vq(m,C,UI,F.placeholder,t,oe,Ze,t,t,L-U);var Ye=this&&this!==_r&&this instanceof F?T:m;return Al(Ye,this,oe)}return F}function gq(m){return function(C,L,T){var F=ms(C);if(!qa(C)){var U=di(L,3);C=ir(C),L=function(de){return U(F[de],de,F)}}var oe=m(C,L,T);return oe>-1?F[U?C[oe]:oe]:t}}function pq(m){return tf(function(C){var L=C.length,T=L,F=Dc.prototype.thru;for(m&&C.reverse();T--;){var U=C[T];if(typeof U!=\"function\")throw new kc(r);if(F&&!oe&&GI(U)==\"wrapper\")var oe=new Dc([],!0)}for(T=oe?T:L;++T<L;){U=C[T];var de=GI(U),Ce=de==\"wrapper\"?x4(U):t;Ce&&I4(Ce[0])&&Ce[1]==(D|y|x|I)&&!Ce[4].length&&Ce[9]==1?oe=oe[GI(Ce[0])].apply(oe,Ce[3]):oe=U.length==1&&I4(U)?oe[de]():oe.thru(U)}return function(){var Ze=arguments,Ye=Ze[0];if(oe&&Ze.length==1&&Ri(Ye))return oe.plant(Ye).value();for(var tt=0,It=L?C[tt].apply(this,Ze):Ye;++tt<L;)It=C[tt].call(this,It);return It}})}function UI(m,C,L,T,F,U,oe,de,Ce,Ze){var Ye=C&D,tt=C&_,It=C&b,Kt=C&(y|S),ui=C&N,ji=It?t:vy(m);function hi(){for(var nn=arguments.length,pn=Pe(nn),Ol=nn;Ol--;)pn[Ol]=arguments[Ol];if(Kt)var ma=xb(hi),Fl=uve(pn,ma);if(T&&(pn=cq(pn,T,F,Kt)),U&&(pn=dq(pn,U,oe,Kt)),nn-=Fl,Kt&&nn<Ze){var fo=Yg(pn,ma);return vq(m,C,UI,hi.placeholder,L,pn,fo,de,Ce,Ze-nn)}var md=tt?L:this,rf=It?md[m]:m;return nn=pn.length,de?pn=bbe(pn,de):ui&&nn>1&&pn.reverse(),Ye&&Ce<nn&&(pn.length=Ce),this&&this!==_r&&this instanceof hi&&(rf=ji||vy(rf)),rf.apply(md,pn)}return hi}function mq(m,C){return function(L,T){return D0e(L,m,C(T),{})}}function jI(m,C){return function(L,T){var F;if(L===t&&T===t)return C;if(L!==t&&(F=L),T!==t){if(F===t)return T;typeof L==\"string\"||typeof T==\"string\"?(L=Ml(L),T=Ml(T)):(L=tq(L),T=tq(T)),F=m(L,T)}return F}}function C4(m){return tf(function(C){return C=Fs(C,Rl(di())),Qi(function(L){var T=this;return m(C,function(F){return Al(F,T,L)})})})}function KI(m,C){C=C===t?\" \":Ml(C);var L=C.length;if(L<2)return L?f4(C,m):C;var T=f4(C,AI(m/mb(C)));return pb(C)?tp(fd(T),0,m).join(\"\"):T.slice(0,m)}function ebe(m,C,L,T){var F=C&_,U=vy(m);function oe(){for(var de=-1,Ce=arguments.length,Ze=-1,Ye=T.length,tt=Pe(Ye+Ce),It=this&&this!==_r&&this instanceof oe?U:m;++Ze<Ye;)tt[Ze]=T[Ze];for(;Ce--;)tt[Ze++]=arguments[++de];return Al(It,F?L:this,tt)}return oe}function _q(m){return function(C,L,T){return T&&typeof T!=\"number\"&&pa(C,L,T)&&(L=T=t),C=of(C),L===t?(L=C,C=0):L=of(L),T=T===t?C<L?1:-1:of(T),W0e(C,L,T,m)}}function qI(m){return function(C,L){return typeof C==\"string\"&&typeof L==\"string\"||(C=Nc(C),L=Nc(L)),m(C,L)}}function vq(m,C,L,T,F,U,oe,de,Ce,Ze){var Ye=C&y,tt=Ye?oe:t,It=Ye?t:oe,Kt=Ye?U:t,ui=Ye?t:U;C|=Ye?x:k,C&=~(Ye?k:x),C&w||(C&=-4);var ji=[m,C,F,Kt,tt,ui,It,de,Ce,Ze],hi=L.apply(t,ji);return I4(m)&&Tq(hi,ji),hi.placeholder=T,Nq(hi,m,C)}function w4(m){var C=Fo[m];return function(L,T){if(L=Nc(L),T=T==null?0:qr(Wi(T),292),T&&NK(L)){var F=(Kn(L)+\"e\").split(\"e\"),U=C(F[0]+\"e\"+(+F[1]+T));return F=(Kn(U)+\"e\").split(\"e\"),+(F[0]+\"e\"+(+F[1]-T))}return C(L)}}var tbe=bb&&1/yI(new bb([,-0]))[1]==he?function(m){return new bb(m)}:$4;function bq(m){return function(C){var L=Gr(C);return L==ie?XO(C):L==Q?vve(C):dve(C,m(C))}}function ef(m,C,L,T,F,U,oe,de){var Ce=C&b;if(!Ce&&typeof m!=\"function\")throw new kc(r);var Ze=T?T.length:0;if(Ze||(C&=-97,T=F=t),oe=oe===t?oe:Bo(Wi(oe),0),de=de===t?de:Wi(de),Ze-=F?F.length:0,C&k){var Ye=T,tt=F;T=F=t}var It=Ce?t:x4(m),Kt=[m,C,L,T,F,Ye,tt,U,oe,de];if(It&&mbe(Kt,It),m=Kt[0],C=Kt[1],L=Kt[2],T=Kt[3],F=Kt[4],de=Kt[9]=Kt[9]===t?Ce?0:m.length:Bo(Kt[9]-Ze,0),!de&&C&(y|S)&&(C&=-25),!C||C==_)var ui=Q0e(m,C,L);else C==y||C==S?ui=J0e(m,C,de):(C==x||C==(_|x))&&!F.length?ui=ebe(m,C,L,T):ui=UI.apply(t,Kt);var ji=It?JK:Tq;return Nq(ji(ui,Kt),m,C)}function Cq(m,C,L,T){return m===t||pd(m,vb[L])&&!es.call(T,L)?C:m}function wq(m,C,L,T,F,U){return Ks(m)&&Ks(C)&&(U.set(C,m),HI(m,C,t,wq,U),U.delete(C)),m}function ibe(m){return wy(m)?t:m}function yq(m,C,L,T,F,U){var oe=L&g,de=m.length,Ce=C.length;if(de!=Ce&&!(oe&&Ce>de))return!1;var Ze=U.get(m),Ye=U.get(C);if(Ze&&Ye)return Ze==C&&Ye==m;var tt=-1,It=!0,Kt=L&p?new T_:t;for(U.set(m,C),U.set(C,m);++tt<de;){var ui=m[tt],ji=C[tt];if(T)var hi=oe?T(ji,ui,tt,C,m,U):T(ui,ji,tt,m,C,U);if(hi!==t){if(hi)continue;It=!1;break}if(Kt){if(!jO(C,function(nn,pn){if(!ay(Kt,pn)&&(ui===nn||F(ui,nn,L,T,U)))return Kt.push(pn)})){It=!1;break}}else if(!(ui===ji||F(ui,ji,L,T,U))){It=!1;break}}return U.delete(m),U.delete(C),It}function nbe(m,C,L,T,F,U,oe){switch(L){case Ie:if(m.byteLength!=C.byteLength||m.byteOffset!=C.byteOffset)return!1;m=m.buffer,C=C.buffer;case ge:return!(m.byteLength!=C.byteLength||!U(new II(m),new II(C)));case Qe:case nt:case ye:return pd(+m,+C);case Je:return m.name==C.name&&m.message==C.message;case re:case Z:return m==C+\"\";case ie:var de=XO;case Q:var Ce=T&g;if(de||(de=yI),m.size!=C.size&&!Ce)return!1;var Ze=oe.get(m);if(Ze)return Ze==C;T|=p,oe.set(m,C);var Ye=yq(de(m),de(C),T,F,U,oe);return oe.delete(m),Ye;case B:if(hy)return hy.call(m)==hy.call(C)}return!1}function sbe(m,C,L,T,F,U){var oe=L&g,de=y4(m),Ce=de.length,Ze=y4(C),Ye=Ze.length;if(Ce!=Ye&&!oe)return!1;for(var tt=Ce;tt--;){var It=de[tt];if(!(oe?It in C:es.call(C,It)))return!1}var Kt=U.get(m),ui=U.get(C);if(Kt&&ui)return Kt==C&&ui==m;var ji=!0;U.set(m,C),U.set(C,m);for(var hi=oe;++tt<Ce;){It=de[tt];var nn=m[It],pn=C[It];if(T)var Ol=oe?T(pn,nn,It,C,m,U):T(nn,pn,It,m,C,U);if(!(Ol===t?nn===pn||F(nn,pn,L,T,U):Ol)){ji=!1;break}hi||(hi=It==\"constructor\")}if(ji&&!hi){var ma=m.constructor,Fl=C.constructor;ma!=Fl&&\"constructor\"in m&&\"constructor\"in C&&!(typeof ma==\"function\"&&ma instanceof ma&&typeof Fl==\"function\"&&Fl instanceof Fl)&&(ji=!1)}return U.delete(m),U.delete(C),ji}function tf(m){return T4(Iq(m,t,Fq),m+\"\")}function y4(m){return zK(m,ir,k4)}function S4(m){return zK(m,Ga,Sq)}var x4=MI?function(m){return MI.get(m)}:$4;function GI(m){for(var C=m.name+\"\",L=Cb[C],T=es.call(Cb,C)?L.length:0;T--;){var F=L[T],U=F.func;if(U==null||U==m)return F.name}return C}function xb(m){var C=es.call($,\"placeholder\")?$:m;return C.placeholder}function di(){var m=$.iteratee||V4;return m=m===V4?jK:m,arguments.length?m(arguments[0],arguments[1]):m}function ZI(m,C){var L=m.__data__;return hbe(C)?L[typeof C==\"string\"?\"string\":\"hash\"]:L.map}function L4(m){for(var C=ir(m),L=C.length;L--;){var T=C[L],F=m[T];C[L]=[T,F,kq(F)]}return C}function R_(m,C){var L=pve(m,C);return UK(L)?L:t}function obe(m){var C=es.call(m,I_),L=m[I_];try{m[I_]=t;var T=!0}catch{}var F=kI.call(m);return T&&(C?m[I_]=L:delete m[I_]),F}var k4=JO?function(m){return m==null?[]:(m=ms(m),Gg(JO(m),function(C){return EK.call(m,C)}))}:U4,Sq=JO?function(m){for(var C=[];m;)Zg(C,k4(m)),m=EI(m);return C}:U4,Gr=ga;(e4&&Gr(new e4(new ArrayBuffer(1)))!=Ie||cy&&Gr(new cy)!=ie||t4&&Gr(t4.resolve())!=et||bb&&Gr(new bb)!=Q||dy&&Gr(new dy)!=Y)&&(Gr=function(m){var C=ga(m),L=C==Oe?m.constructor:t,T=L?M_(L):\"\";if(T)switch(T){case Vve:return Ie;case zve:return ie;case $ve:return et;case Uve:return Q;case jve:return Y}return C});function rbe(m,C,L){for(var T=-1,F=L.length;++T<F;){var U=L[T],oe=U.size;switch(U.type){case\"drop\":m+=oe;break;case\"dropRight\":C-=oe;break;case\"take\":C=qr(C,m+oe);break;case\"takeRight\":m=Bo(m,C-oe);break}}return{start:m,end:C}}function abe(m){var C=m.match(hd);return C?C[1].split(gI):[]}function xq(m,C,L){C=ep(C,m);for(var T=-1,F=C.length,U=!1;++T<F;){var oe=ku(C[T]);if(!(U=m!=null&&L(m,oe)))break;m=m[oe]}return U||++T!=F?U:(F=m==null?0:m.length,!!F&&iE(F)&&nf(oe,F)&&(Ri(m)||P_(m)))}function lbe(m){var C=m.length,L=new m.constructor(C);return C&&typeof m[0]==\"string\"&&es.call(m,\"index\")&&(L.index=m.index,L.input=m.input),L}function Lq(m){return typeof m.constructor==\"function\"&&!by(m)?wb(EI(m)):{}}function cbe(m,C,L){var T=m.constructor;switch(C){case ge:return b4(m);case Qe:case nt:return new T(+m);case Ie:return K0e(m,L);case qe:case ot:case bt:case xt:case si:case Ci:case Dt:case Si:case Ai:return aq(m,L);case ie:return new T;case ye:case Z:return new T(m);case re:return q0e(m);case Q:return new T;case B:return G0e(m)}}function dbe(m,C){var L=C.length;if(!L)return m;var T=L-1;return C[T]=(L>1?\"& \":\"\")+C[T],C=C.join(L>2?\", \":\" \"),m.replace(hb,`{\n/* [wrapped with `+C+`] */\n`)}function ube(m){return Ri(m)||P_(m)||!!(TK&&m&&m[TK])}function nf(m,C){var L=typeof m;return C=C??me,!!C&&(L==\"number\"||L!=\"symbol\"&&ko.test(m))&&m>-1&&m%1==0&&m<C}function pa(m,C,L){if(!Ks(L))return!1;var T=typeof C;return(T==\"number\"?qa(L)&&nf(C,L.length):T==\"string\"&&C in L)?pd(L[C],m):!1}function D4(m,C){if(Ri(m))return!1;var L=typeof m;return L==\"number\"||L==\"symbol\"||L==\"boolean\"||m==null||Pl(m)?!0:ry.test(m)||!Zh.test(m)||C!=null&&m in ms(C)}function hbe(m){var C=typeof m;return C==\"string\"||C==\"number\"||C==\"symbol\"||C==\"boolean\"?m!==\"__proto__\":m===null}function I4(m){var C=GI(m),L=$[C];if(typeof L!=\"function\"||!(C in un.prototype))return!1;if(m===L)return!0;var T=x4(L);return!!T&&m===T[0]}function fbe(m){return!!kK&&kK in m}var gbe=xI?sf:j4;function by(m){var C=m&&m.constructor,L=typeof C==\"function\"&&C.prototype||vb;return m===L}function kq(m){return m===m&&!Ks(m)}function Dq(m,C){return function(L){return L==null?!1:L[m]===C&&(C!==t||m in ms(L))}}function pbe(m){var C=eE(m,function(T){return L.size===c&&L.clear(),T}),L=C.cache;return C}function mbe(m,C){var L=m[1],T=C[1],F=L|T,U=F<(_|b|D),oe=T==D&&L==y||T==D&&L==I&&m[7].length<=C[8]||T==(D|I)&&C[7].length<=C[8]&&L==y;if(!(U||oe))return m;T&_&&(m[2]=C[2],F|=L&_?0:w);var de=C[3];if(de){var Ce=m[3];m[3]=Ce?cq(Ce,de,C[4]):de,m[4]=Ce?Yg(m[3],d):C[4]}return de=C[5],de&&(Ce=m[5],m[5]=Ce?dq(Ce,de,C[6]):de,m[6]=Ce?Yg(m[5],d):C[6]),de=C[7],de&&(m[7]=de),T&D&&(m[8]=m[8]==null?C[8]:qr(m[8],C[8])),m[9]==null&&(m[9]=C[9]),m[0]=C[0],m[1]=F,m}function _be(m){var C=[];if(m!=null)for(var L in ms(m))C.push(L);return C}function vbe(m){return kI.call(m)}function Iq(m,C,L){return C=Bo(C===t?m.length-1:C,0),function(){for(var T=arguments,F=-1,U=Bo(T.length-C,0),oe=Pe(U);++F<U;)oe[F]=T[C+F];F=-1;for(var de=Pe(C+1);++F<C;)de[F]=T[F];return de[C]=L(oe),Al(m,this,de)}}function Eq(m,C){return C.length<2?m:A_(m,Ec(C,0,-1))}function bbe(m,C){for(var L=m.length,T=qr(C.length,L),F=Ka(m);T--;){var U=C[T];m[T]=nf(U,L)?F[U]:t}return m}function E4(m,C){if(!(C===\"constructor\"&&typeof m[C]==\"function\")&&C!=\"__proto__\")return m[C]}var Tq=Aq(JK),Cy=Mve||function(m,C){return _r.setTimeout(m,C)},T4=Aq(z0e);function Nq(m,C,L){var T=C+\"\";return T4(m,dbe(T,Cbe(abe(T),L)))}function Aq(m){var C=0,L=0;return function(){var T=Bve(),F=z-(T-L);if(L=T,F>0){if(++C>=M)return arguments[0]}else C=0;return m.apply(t,arguments)}}function YI(m,C){var L=-1,T=m.length,F=T-1;for(C=C===t?T:C;++L<C;){var U=h4(L,F),oe=m[U];m[U]=m[L],m[L]=oe}return m.length=C,m}var Rq=pbe(function(m){var C=[];return m.charCodeAt(0)===46&&C.push(\"\"),m.replace(yc,function(L,T,F,U){C.push(F?U.replace(_I,\"$1\"):T||L)}),C});function ku(m){if(typeof m==\"string\"||Pl(m))return m;var C=m+\"\";return C==\"0\"&&1/m==-he?\"-0\":C}function M_(m){if(m!=null){try{return LI.call(m)}catch{}try{return m+\"\"}catch{}}return\"\"}function Cbe(m,C){return Lc(Zt,function(L){var T=\"_.\"+L[0];C&L[1]&&!CI(m,T)&&m.push(T)}),m.sort()}function Mq(m){if(m instanceof un)return m.clone();var C=new Dc(m.__wrapped__,m.__chain__);return C.__actions__=Ka(m.__actions__),C.__index__=m.__index__,C.__values__=m.__values__,C}function wbe(m,C,L){(L?pa(m,C,L):C===t)?C=1:C=Bo(Wi(C),0);var T=m==null?0:m.length;if(!T||C<1)return[];for(var F=0,U=0,oe=Pe(AI(T/C));F<T;)oe[U++]=Ec(m,F,F+=C);return oe}function ybe(m){for(var C=-1,L=m==null?0:m.length,T=0,F=[];++C<L;){var U=m[C];U&&(F[T++]=U)}return F}function Sbe(){var m=arguments.length;if(!m)return[];for(var C=Pe(m-1),L=arguments[0],T=m;T--;)C[T-1]=arguments[T];return Zg(Ri(L)?Ka(L):[L],vr(C,1))}var xbe=Qi(function(m,C){return ho(m)?gy(m,vr(C,1,ho,!0)):[]}),Lbe=Qi(function(m,C){var L=Tc(C);return ho(L)&&(L=t),ho(m)?gy(m,vr(C,1,ho,!0),di(L,2)):[]}),kbe=Qi(function(m,C){var L=Tc(C);return ho(L)&&(L=t),ho(m)?gy(m,vr(C,1,ho,!0),t,L):[]});function Dbe(m,C,L){var T=m==null?0:m.length;return T?(C=L||C===t?1:Wi(C),Ec(m,C<0?0:C,T)):[]}function Ibe(m,C,L){var T=m==null?0:m.length;return T?(C=L||C===t?1:Wi(C),C=T-C,Ec(m,0,C<0?0:C)):[]}function Ebe(m,C){return m&&m.length?zI(m,di(C,3),!0,!0):[]}function Tbe(m,C){return m&&m.length?zI(m,di(C,3),!0):[]}function Nbe(m,C,L,T){var F=m==null?0:m.length;return F?(L&&typeof L!=\"number\"&&pa(m,C,L)&&(L=0,T=F),S0e(m,C,L,T)):[]}function Pq(m,C,L){var T=m==null?0:m.length;if(!T)return-1;var F=L==null?0:Wi(L);return F<0&&(F=Bo(T+F,0)),wI(m,di(C,3),F)}function Oq(m,C,L){var T=m==null?0:m.length;if(!T)return-1;var F=T-1;return L!==t&&(F=Wi(L),F=L<0?Bo(T+F,0):qr(F,T-1)),wI(m,di(C,3),F,!0)}function Fq(m){var C=m==null?0:m.length;return C?vr(m,1):[]}function Abe(m){var C=m==null?0:m.length;return C?vr(m,he):[]}function Rbe(m,C){var L=m==null?0:m.length;return L?(C=C===t?1:Wi(C),vr(m,C)):[]}function Mbe(m){for(var C=-1,L=m==null?0:m.length,T={};++C<L;){var F=m[C];T[F[0]]=F[1]}return T}function Bq(m){return m&&m.length?m[0]:t}function Pbe(m,C,L){var T=m==null?0:m.length;if(!T)return-1;var F=L==null?0:Wi(L);return F<0&&(F=Bo(T+F,0)),gb(m,C,F)}function Obe(m){var C=m==null?0:m.length;return C?Ec(m,0,-1):[]}var Fbe=Qi(function(m){var C=Fs(m,_4);return C.length&&C[0]===m[0]?a4(C):[]}),Bbe=Qi(function(m){var C=Tc(m),L=Fs(m,_4);return C===Tc(L)?C=t:L.pop(),L.length&&L[0]===m[0]?a4(L,di(C,2)):[]}),Wbe=Qi(function(m){var C=Tc(m),L=Fs(m,_4);return C=typeof C==\"function\"?C:t,C&&L.pop(),L.length&&L[0]===m[0]?a4(L,t,C):[]});function Hbe(m,C){return m==null?\"\":Ove.call(m,C)}function Tc(m){var C=m==null?0:m.length;return C?m[C-1]:t}function Vbe(m,C,L){var T=m==null?0:m.length;if(!T)return-1;var F=T;return L!==t&&(F=Wi(L),F=F<0?Bo(T+F,0):qr(F,T-1)),C===C?Cve(m,C,F):wI(m,vK,F,!0)}function zbe(m,C){return m&&m.length?ZK(m,Wi(C)):t}var $be=Qi(Wq);function Wq(m,C){return m&&m.length&&C&&C.length?u4(m,C):m}function Ube(m,C,L){return m&&m.length&&C&&C.length?u4(m,C,di(L,2)):m}function jbe(m,C,L){return m&&m.length&&C&&C.length?u4(m,C,t,L):m}var Kbe=tf(function(m,C){var L=m==null?0:m.length,T=n4(m,C);return QK(m,Fs(C,function(F){return nf(F,L)?+F:F}).sort(lq)),T});function qbe(m,C){var L=[];if(!(m&&m.length))return L;var T=-1,F=[],U=m.length;for(C=di(C,3);++T<U;){var oe=m[T];C(oe,T,m)&&(L.push(oe),F.push(T))}return QK(m,F),L}function N4(m){return m==null?m:Hve.call(m)}function Gbe(m,C,L){var T=m==null?0:m.length;return T?(L&&typeof L!=\"number\"&&pa(m,C,L)?(C=0,L=T):(C=C==null?0:Wi(C),L=L===t?T:Wi(L)),Ec(m,C,L)):[]}function Zbe(m,C){return VI(m,C)}function Ybe(m,C,L){return g4(m,C,di(L,2))}function Xbe(m,C){var L=m==null?0:m.length;if(L){var T=VI(m,C);if(T<L&&pd(m[T],C))return T}return-1}function Qbe(m,C){return VI(m,C,!0)}function Jbe(m,C,L){return g4(m,C,di(L,2),!0)}function e1e(m,C){var L=m==null?0:m.length;if(L){var T=VI(m,C,!0)-1;if(pd(m[T],C))return T}return-1}function t1e(m){return m&&m.length?eq(m):[]}function i1e(m,C){return m&&m.length?eq(m,di(C,2)):[]}function n1e(m){var C=m==null?0:m.length;return C?Ec(m,1,C):[]}function s1e(m,C,L){return m&&m.length?(C=L||C===t?1:Wi(C),Ec(m,0,C<0?0:C)):[]}function o1e(m,C,L){var T=m==null?0:m.length;return T?(C=L||C===t?1:Wi(C),C=T-C,Ec(m,C<0?0:C,T)):[]}function r1e(m,C){return m&&m.length?zI(m,di(C,3),!1,!0):[]}function a1e(m,C){return m&&m.length?zI(m,di(C,3)):[]}var l1e=Qi(function(m){return Jg(vr(m,1,ho,!0))}),c1e=Qi(function(m){var C=Tc(m);return ho(C)&&(C=t),Jg(vr(m,1,ho,!0),di(C,2))}),d1e=Qi(function(m){var C=Tc(m);return C=typeof C==\"function\"?C:t,Jg(vr(m,1,ho,!0),t,C)});function u1e(m){return m&&m.length?Jg(m):[]}function h1e(m,C){return m&&m.length?Jg(m,di(C,2)):[]}function f1e(m,C){return C=typeof C==\"function\"?C:t,m&&m.length?Jg(m,t,C):[]}function A4(m){if(!(m&&m.length))return[];var C=0;return m=Gg(m,function(L){if(ho(L))return C=Bo(L.length,C),!0}),ZO(C,function(L){return Fs(m,KO(L))})}function Hq(m,C){if(!(m&&m.length))return[];var L=A4(m);return C==null?L:Fs(L,function(T){return Al(C,t,T)})}var g1e=Qi(function(m,C){return ho(m)?gy(m,C):[]}),p1e=Qi(function(m){return m4(Gg(m,ho))}),m1e=Qi(function(m){var C=Tc(m);return ho(C)&&(C=t),m4(Gg(m,ho),di(C,2))}),_1e=Qi(function(m){var C=Tc(m);return C=typeof C==\"function\"?C:t,m4(Gg(m,ho),t,C)}),v1e=Qi(A4);function b1e(m,C){return sq(m||[],C||[],fy)}function C1e(m,C){return sq(m||[],C||[],_y)}var w1e=Qi(function(m){var C=m.length,L=C>1?m[C-1]:t;return L=typeof L==\"function\"?(m.pop(),L):t,Hq(m,L)});function Vq(m){var C=$(m);return C.__chain__=!0,C}function y1e(m,C){return C(m),m}function XI(m,C){return C(m)}var S1e=tf(function(m){var C=m.length,L=C?m[0]:0,T=this.__wrapped__,F=function(U){return n4(U,m)};return C>1||this.__actions__.length||!(T instanceof un)||!nf(L)?this.thru(F):(T=T.slice(L,+L+(C?1:0)),T.__actions__.push({func:XI,args:[F],thisArg:t}),new Dc(T,this.__chain__).thru(function(U){return C&&!U.length&&U.push(t),U}))});function x1e(){return Vq(this)}function L1e(){return new Dc(this.value(),this.__chain__)}function k1e(){this.__values__===t&&(this.__values__=tG(this.value()));var m=this.__index__>=this.__values__.length,C=m?t:this.__values__[this.__index__++];return{done:m,value:C}}function D1e(){return this}function I1e(m){for(var C,L=this;L instanceof OI;){var T=Mq(L);T.__index__=0,T.__values__=t,C?F.__wrapped__=T:C=T;var F=T;L=L.__wrapped__}return F.__wrapped__=m,C}function E1e(){var m=this.__wrapped__;if(m instanceof un){var C=m;return this.__actions__.length&&(C=new un(this)),C=C.reverse(),C.__actions__.push({func:XI,args:[N4],thisArg:t}),new Dc(C,this.__chain__)}return this.thru(N4)}function T1e(){return nq(this.__wrapped__,this.__actions__)}var N1e=$I(function(m,C,L){es.call(m,L)?++m[L]:Jh(m,L,1)});function A1e(m,C,L){var T=Ri(m)?mK:y0e;return L&&pa(m,C,L)&&(C=t),T(m,di(C,3))}function R1e(m,C){var L=Ri(m)?Gg:HK;return L(m,di(C,3))}var M1e=gq(Pq),P1e=gq(Oq);function O1e(m,C){return vr(QI(m,C),1)}function F1e(m,C){return vr(QI(m,C),he)}function B1e(m,C,L){return L=L===t?1:Wi(L),vr(QI(m,C),L)}function zq(m,C){var L=Ri(m)?Lc:Qg;return L(m,di(C,3))}function $q(m,C){var L=Ri(m)?nve:WK;return L(m,di(C,3))}var W1e=$I(function(m,C,L){es.call(m,L)?m[L].push(C):Jh(m,L,[C])});function H1e(m,C,L,T){m=qa(m)?m:kb(m),L=L&&!T?Wi(L):0;var F=m.length;return L<0&&(L=Bo(F+L,0)),nE(m)?L<=F&&m.indexOf(C,L)>-1:!!F&&gb(m,C,L)>-1}var V1e=Qi(function(m,C,L){var T=-1,F=typeof C==\"function\",U=qa(m)?Pe(m.length):[];return Qg(m,function(oe){U[++T]=F?Al(C,oe,L):py(oe,C,L)}),U}),z1e=$I(function(m,C,L){Jh(m,L,C)});function QI(m,C){var L=Ri(m)?Fs:KK;return L(m,di(C,3))}function $1e(m,C,L,T){return m==null?[]:(Ri(C)||(C=C==null?[]:[C]),L=T?t:L,Ri(L)||(L=L==null?[]:[L]),YK(m,C,L))}var U1e=$I(function(m,C,L){m[L?0:1].push(C)},function(){return[[],[]]});function j1e(m,C,L){var T=Ri(m)?UO:CK,F=arguments.length<3;return T(m,di(C,4),L,F,Qg)}function K1e(m,C,L){var T=Ri(m)?sve:CK,F=arguments.length<3;return T(m,di(C,4),L,F,WK)}function q1e(m,C){var L=Ri(m)?Gg:HK;return L(m,tE(di(C,3)))}function G1e(m){var C=Ri(m)?PK:H0e;return C(m)}function Z1e(m,C,L){(L?pa(m,C,L):C===t)?C=1:C=Wi(C);var T=Ri(m)?_0e:V0e;return T(m,C)}function Y1e(m){var C=Ri(m)?v0e:$0e;return C(m)}function X1e(m){if(m==null)return 0;if(qa(m))return nE(m)?mb(m):m.length;var C=Gr(m);return C==ie||C==Q?m.size:c4(m).length}function Q1e(m,C,L){var T=Ri(m)?jO:U0e;return L&&pa(m,C,L)&&(C=t),T(m,di(C,3))}var J1e=Qi(function(m,C){if(m==null)return[];var L=C.length;return L>1&&pa(m,C[0],C[1])?C=[]:L>2&&pa(C[0],C[1],C[2])&&(C=[C[0]]),YK(m,vr(C,1),[])}),JI=Rve||function(){return _r.Date.now()};function eCe(m,C){if(typeof C!=\"function\")throw new kc(r);return m=Wi(m),function(){if(--m<1)return C.apply(this,arguments)}}function Uq(m,C,L){return C=L?t:C,C=m&&C==null?m.length:C,ef(m,D,t,t,t,t,C)}function jq(m,C){var L;if(typeof C!=\"function\")throw new kc(r);return m=Wi(m),function(){return--m>0&&(L=C.apply(this,arguments)),m<=1&&(C=t),L}}var R4=Qi(function(m,C,L){var T=_;if(L.length){var F=Yg(L,xb(R4));T|=x}return ef(m,T,C,L,F)}),Kq=Qi(function(m,C,L){var T=_|b;if(L.length){var F=Yg(L,xb(Kq));T|=x}return ef(C,T,m,L,F)});function qq(m,C,L){C=L?t:C;var T=ef(m,y,t,t,t,t,t,C);return T.placeholder=qq.placeholder,T}function Gq(m,C,L){C=L?t:C;var T=ef(m,S,t,t,t,t,t,C);return T.placeholder=Gq.placeholder,T}function Zq(m,C,L){var T,F,U,oe,de,Ce,Ze=0,Ye=!1,tt=!1,It=!0;if(typeof m!=\"function\")throw new kc(r);C=Nc(C)||0,Ks(L)&&(Ye=!!L.leading,tt=\"maxWait\"in L,U=tt?Bo(Nc(L.maxWait)||0,C):U,It=\"trailing\"in L?!!L.trailing:It);function Kt(fo){var md=T,rf=F;return T=F=t,Ze=fo,oe=m.apply(rf,md),oe}function ui(fo){return Ze=fo,de=Cy(nn,C),Ye?Kt(fo):oe}function ji(fo){var md=fo-Ce,rf=fo-Ze,gG=C-md;return tt?qr(gG,U-rf):gG}function hi(fo){var md=fo-Ce,rf=fo-Ze;return Ce===t||md>=C||md<0||tt&&rf>=U}function nn(){var fo=JI();if(hi(fo))return pn(fo);de=Cy(nn,ji(fo))}function pn(fo){return de=t,It&&T?Kt(fo):(T=F=t,oe)}function Ol(){de!==t&&oq(de),Ze=0,T=Ce=F=de=t}function ma(){return de===t?oe:pn(JI())}function Fl(){var fo=JI(),md=hi(fo);if(T=arguments,F=this,Ce=fo,md){if(de===t)return ui(Ce);if(tt)return oq(de),de=Cy(nn,C),Kt(Ce)}return de===t&&(de=Cy(nn,C)),oe}return Fl.cancel=Ol,Fl.flush=ma,Fl}var tCe=Qi(function(m,C){return BK(m,1,C)}),iCe=Qi(function(m,C,L){return BK(m,Nc(C)||0,L)});function nCe(m){return ef(m,N)}function eE(m,C){if(typeof m!=\"function\"||C!=null&&typeof C!=\"function\")throw new kc(r);var L=function(){var T=arguments,F=C?C.apply(this,T):T[0],U=L.cache;if(U.has(F))return U.get(F);var oe=m.apply(this,T);return L.cache=U.set(F,oe)||U,oe};return L.cache=new(eE.Cache||Qh),L}eE.Cache=Qh;function tE(m){if(typeof m!=\"function\")throw new kc(r);return function(){var C=arguments;switch(C.length){case 0:return!m.call(this);case 1:return!m.call(this,C[0]);case 2:return!m.call(this,C[0],C[1]);case 3:return!m.call(this,C[0],C[1],C[2])}return!m.apply(this,C)}}function sCe(m){return jq(2,m)}var oCe=j0e(function(m,C){C=C.length==1&&Ri(C[0])?Fs(C[0],Rl(di())):Fs(vr(C,1),Rl(di()));var L=C.length;return Qi(function(T){for(var F=-1,U=qr(T.length,L);++F<U;)T[F]=C[F].call(this,T[F]);return Al(m,this,T)})}),M4=Qi(function(m,C){var L=Yg(C,xb(M4));return ef(m,x,t,C,L)}),Yq=Qi(function(m,C){var L=Yg(C,xb(Yq));return ef(m,k,t,C,L)}),rCe=tf(function(m,C){return ef(m,I,t,t,t,C)});function aCe(m,C){if(typeof m!=\"function\")throw new kc(r);return C=C===t?C:Wi(C),Qi(m,C)}function lCe(m,C){if(typeof m!=\"function\")throw new kc(r);return C=C==null?0:Bo(Wi(C),0),Qi(function(L){var T=L[C],F=tp(L,0,C);return T&&Zg(F,T),Al(m,this,F)})}function cCe(m,C,L){var T=!0,F=!0;if(typeof m!=\"function\")throw new kc(r);return Ks(L)&&(T=\"leading\"in L?!!L.leading:T,F=\"trailing\"in L?!!L.trailing:F),Zq(m,C,{leading:T,maxWait:C,trailing:F})}function dCe(m){return Uq(m,1)}function uCe(m,C){return M4(v4(C),m)}function hCe(){if(!arguments.length)return[];var m=arguments[0];return Ri(m)?m:[m]}function fCe(m){return Ic(m,f)}function gCe(m,C){return C=typeof C==\"function\"?C:t,Ic(m,f,C)}function pCe(m){return Ic(m,u|f)}function mCe(m,C){return C=typeof C==\"function\"?C:t,Ic(m,u|f,C)}function _Ce(m,C){return C==null||FK(m,C,ir(C))}function pd(m,C){return m===C||m!==m&&C!==C}var vCe=qI(r4),bCe=qI(function(m,C){return m>=C}),P_=$K(function(){return arguments}())?$K:function(m){return eo(m)&&es.call(m,\"callee\")&&!EK.call(m,\"callee\")},Ri=Pe.isArray,CCe=dK?Rl(dK):I0e;function qa(m){return m!=null&&iE(m.length)&&!sf(m)}function ho(m){return eo(m)&&qa(m)}function wCe(m){return m===!0||m===!1||eo(m)&&ga(m)==Qe}var ip=Pve||j4,yCe=uK?Rl(uK):E0e;function SCe(m){return eo(m)&&m.nodeType===1&&!wy(m)}function xCe(m){if(m==null)return!0;if(qa(m)&&(Ri(m)||typeof m==\"string\"||typeof m.splice==\"function\"||ip(m)||Lb(m)||P_(m)))return!m.length;var C=Gr(m);if(C==ie||C==Q)return!m.size;if(by(m))return!c4(m).length;for(var L in m)if(es.call(m,L))return!1;return!0}function LCe(m,C){return my(m,C)}function kCe(m,C,L){L=typeof L==\"function\"?L:t;var T=L?L(m,C):t;return T===t?my(m,C,t,L):!!T}function P4(m){if(!eo(m))return!1;var C=ga(m);return C==Je||C==mt||typeof m.message==\"string\"&&typeof m.name==\"string\"&&!wy(m)}function DCe(m){return typeof m==\"number\"&&NK(m)}function sf(m){if(!Ks(m))return!1;var C=ga(m);return C==Ii||C==J||C==Se||C==vt}function Xq(m){return typeof m==\"number\"&&m==Wi(m)}function iE(m){return typeof m==\"number\"&&m>-1&&m%1==0&&m<=me}function Ks(m){var C=typeof m;return m!=null&&(C==\"object\"||C==\"function\")}function eo(m){return m!=null&&typeof m==\"object\"}var Qq=hK?Rl(hK):N0e;function ICe(m,C){return m===C||l4(m,C,L4(C))}function ECe(m,C,L){return L=typeof L==\"function\"?L:t,l4(m,C,L4(C),L)}function TCe(m){return Jq(m)&&m!=+m}function NCe(m){if(gbe(m))throw new Ti(o);return UK(m)}function ACe(m){return m===null}function RCe(m){return m==null}function Jq(m){return typeof m==\"number\"||eo(m)&&ga(m)==ye}function wy(m){if(!eo(m)||ga(m)!=Oe)return!1;var C=EI(m);if(C===null)return!0;var L=es.call(C,\"constructor\")&&C.constructor;return typeof L==\"function\"&&L instanceof L&&LI.call(L)==Eve}var O4=fK?Rl(fK):A0e;function MCe(m){return Xq(m)&&m>=-me&&m<=me}var eG=gK?Rl(gK):R0e;function nE(m){return typeof m==\"string\"||!Ri(m)&&eo(m)&&ga(m)==Z}function Pl(m){return typeof m==\"symbol\"||eo(m)&&ga(m)==B}var Lb=pK?Rl(pK):M0e;function PCe(m){return m===t}function OCe(m){return eo(m)&&Gr(m)==Y}function FCe(m){return eo(m)&&ga(m)==G}var BCe=qI(d4),WCe=qI(function(m,C){return m<=C});function tG(m){if(!m)return[];if(qa(m))return nE(m)?fd(m):Ka(m);if(ly&&m[ly])return _ve(m[ly]());var C=Gr(m),L=C==ie?XO:C==Q?yI:kb;return L(m)}function of(m){if(!m)return m===0?m:0;if(m=Nc(m),m===he||m===-he){var C=m<0?-1:1;return C*De}return m===m?m:0}function Wi(m){var C=of(m),L=C%1;return C===C?L?C-L:C:0}function iG(m){return m?N_(Wi(m),0,We):0}function Nc(m){if(typeof m==\"number\")return m;if(Pl(m))return lt;if(Ks(m)){var C=typeof m.valueOf==\"function\"?m.valueOf():m;m=Ks(C)?C+\"\":C}if(typeof m!=\"string\")return m===0?m:+m;m=wK(m);var L=ct.test(m);return L||jn.test(m)?eve(m.slice(2),L?2:8):_e.test(m)?lt:+m}function nG(m){return Lu(m,Ga(m))}function HCe(m){return m?N_(Wi(m),-me,me):m===0?m:0}function Kn(m){return m==null?\"\":Ml(m)}var VCe=yb(function(m,C){if(by(C)||qa(C)){Lu(C,ir(C),m);return}for(var L in C)es.call(C,L)&&fy(m,L,C[L])}),sG=yb(function(m,C){Lu(C,Ga(C),m)}),sE=yb(function(m,C,L,T){Lu(C,Ga(C),m,T)}),zCe=yb(function(m,C,L,T){Lu(C,ir(C),m,T)}),$Ce=tf(n4);function UCe(m,C){var L=wb(m);return C==null?L:OK(L,C)}var jCe=Qi(function(m,C){m=ms(m);var L=-1,T=C.length,F=T>2?C[2]:t;for(F&&pa(C[0],C[1],F)&&(T=1);++L<T;)for(var U=C[L],oe=Ga(U),de=-1,Ce=oe.length;++de<Ce;){var Ze=oe[de],Ye=m[Ze];(Ye===t||pd(Ye,vb[Ze])&&!es.call(m,Ze))&&(m[Ze]=U[Ze])}return m}),KCe=Qi(function(m){return m.push(t,wq),Al(oG,t,m)});function qCe(m,C){return _K(m,di(C,3),xu)}function GCe(m,C){return _K(m,di(C,3),o4)}function ZCe(m,C){return m==null?m:s4(m,di(C,3),Ga)}function YCe(m,C){return m==null?m:VK(m,di(C,3),Ga)}function XCe(m,C){return m&&xu(m,di(C,3))}function QCe(m,C){return m&&o4(m,di(C,3))}function JCe(m){return m==null?[]:WI(m,ir(m))}function ewe(m){return m==null?[]:WI(m,Ga(m))}function F4(m,C,L){var T=m==null?t:A_(m,C);return T===t?L:T}function twe(m,C){return m!=null&&xq(m,C,x0e)}function B4(m,C){return m!=null&&xq(m,C,L0e)}var iwe=mq(function(m,C,L){C!=null&&typeof C.toString!=\"function\"&&(C=kI.call(C)),m[C]=L},H4(Za)),nwe=mq(function(m,C,L){C!=null&&typeof C.toString!=\"function\"&&(C=kI.call(C)),es.call(m,C)?m[C].push(L):m[C]=[L]},di),swe=Qi(py);function ir(m){return qa(m)?MK(m):c4(m)}function Ga(m){return qa(m)?MK(m,!0):P0e(m)}function owe(m,C){var L={};return C=di(C,3),xu(m,function(T,F,U){Jh(L,C(T,F,U),T)}),L}function rwe(m,C){var L={};return C=di(C,3),xu(m,function(T,F,U){Jh(L,F,C(T,F,U))}),L}var awe=yb(function(m,C,L){HI(m,C,L)}),oG=yb(function(m,C,L,T){HI(m,C,L,T)}),lwe=tf(function(m,C){var L={};if(m==null)return L;var T=!1;C=Fs(C,function(U){return U=ep(U,m),T||(T=U.length>1),U}),Lu(m,S4(m),L),T&&(L=Ic(L,u|h|f,ibe));for(var F=C.length;F--;)p4(L,C[F]);return L});function cwe(m,C){return rG(m,tE(di(C)))}var dwe=tf(function(m,C){return m==null?{}:F0e(m,C)});function rG(m,C){if(m==null)return{};var L=Fs(S4(m),function(T){return[T]});return C=di(C),XK(m,L,function(T,F){return C(T,F[0])})}function uwe(m,C,L){C=ep(C,m);var T=-1,F=C.length;for(F||(F=1,m=t);++T<F;){var U=m==null?t:m[ku(C[T])];U===t&&(T=F,U=L),m=sf(U)?U.call(m):U}return m}function hwe(m,C,L){return m==null?m:_y(m,C,L)}function fwe(m,C,L,T){return T=typeof T==\"function\"?T:t,m==null?m:_y(m,C,L,T)}var aG=bq(ir),lG=bq(Ga);function gwe(m,C,L){var T=Ri(m),F=T||ip(m)||Lb(m);if(C=di(C,4),L==null){var U=m&&m.constructor;F?L=T?new U:[]:Ks(m)?L=sf(U)?wb(EI(m)):{}:L={}}return(F?Lc:xu)(m,function(oe,de,Ce){return C(L,oe,de,Ce)}),L}function pwe(m,C){return m==null?!0:p4(m,C)}function mwe(m,C,L){return m==null?m:iq(m,C,v4(L))}function _we(m,C,L,T){return T=typeof T==\"function\"?T:t,m==null?m:iq(m,C,v4(L),T)}function kb(m){return m==null?[]:YO(m,ir(m))}function vwe(m){return m==null?[]:YO(m,Ga(m))}function bwe(m,C,L){return L===t&&(L=C,C=t),L!==t&&(L=Nc(L),L=L===L?L:0),C!==t&&(C=Nc(C),C=C===C?C:0),N_(Nc(m),C,L)}function Cwe(m,C,L){return C=of(C),L===t?(L=C,C=0):L=of(L),m=Nc(m),k0e(m,C,L)}function wwe(m,C,L){if(L&&typeof L!=\"boolean\"&&pa(m,C,L)&&(C=L=t),L===t&&(typeof C==\"boolean\"?(L=C,C=t):typeof m==\"boolean\"&&(L=m,m=t)),m===t&&C===t?(m=0,C=1):(m=of(m),C===t?(C=m,m=0):C=of(C)),m>C){var T=m;m=C,C=T}if(L||m%1||C%1){var F=AK();return qr(m+F*(C-m+J_e(\"1e-\"+((F+\"\").length-1))),C)}return h4(m,C)}var ywe=Sb(function(m,C,L){return C=C.toLowerCase(),m+(L?cG(C):C)});function cG(m){return W4(Kn(m).toLowerCase())}function dG(m){return m=Kn(m),m&&m.replace(ja,hve).replace($_e,\"\")}function Swe(m,C,L){m=Kn(m),C=Ml(C);var T=m.length;L=L===t?T:N_(Wi(L),0,T);var F=L;return L-=C.length,L>=0&&m.slice(L,F)==C}function xwe(m){return m=Kn(m),m&&Su.test(m)?m.replace(yu,fve):m}function Lwe(m){return m=Kn(m),m&&k_.test(m)?m.replace(Yh,\"\\\\$&\"):m}var kwe=Sb(function(m,C,L){return m+(L?\"-\":\"\")+C.toLowerCase()}),Dwe=Sb(function(m,C,L){return m+(L?\" \":\"\")+C.toLowerCase()}),Iwe=fq(\"toLowerCase\");function Ewe(m,C,L){m=Kn(m),C=Wi(C);var T=C?mb(m):0;if(!C||T>=C)return m;var F=(C-T)/2;return KI(RI(F),L)+m+KI(AI(F),L)}function Twe(m,C,L){m=Kn(m),C=Wi(C);var T=C?mb(m):0;return C&&T<C?m+KI(C-T,L):m}function Nwe(m,C,L){m=Kn(m),C=Wi(C);var T=C?mb(m):0;return C&&T<C?KI(C-T,L)+m:m}function Awe(m,C,L){return L||C==null?C=0:C&&(C=+C),Wve(Kn(m).replace(Kg,\"\"),C||0)}function Rwe(m,C,L){return(L?pa(m,C,L):C===t)?C=1:C=Wi(C),f4(Kn(m),C)}function Mwe(){var m=arguments,C=Kn(m[0]);return m.length<3?C:C.replace(m[1],m[2])}var Pwe=Sb(function(m,C,L){return m+(L?\"_\":\"\")+C.toLowerCase()});function Owe(m,C,L){return L&&typeof L!=\"number\"&&pa(m,C,L)&&(C=L=t),L=L===t?We:L>>>0,L?(m=Kn(m),m&&(typeof C==\"string\"||C!=null&&!O4(C))&&(C=Ml(C),!C&&pb(m))?tp(fd(m),0,L):m.split(C,L)):[]}var Fwe=Sb(function(m,C,L){return m+(L?\" \":\"\")+W4(C)});function Bwe(m,C,L){return m=Kn(m),L=L==null?0:N_(Wi(L),0,m.length),C=Ml(C),m.slice(L,L+C.length)==C}function Wwe(m,C,L){var T=$.templateSettings;L&&pa(m,C,L)&&(C=t),m=Kn(m),C=sE({},C,T,Cq);var F=sE({},C.imports,T.imports,Cq),U=ir(F),oe=YO(F,U),de,Ce,Ze=0,Ye=C.interpolate||ls,tt=\"__p += '\",It=QO((C.escape||ls).source+\"|\"+Ye.source+\"|\"+(Ye===Gh?PO:ls).source+\"|\"+(C.evaluate||ls).source+\"|$\",\"g\"),Kt=\"//# sourceURL=\"+(es.call(C,\"sourceURL\")?(C.sourceURL+\"\").replace(/\\s/g,\" \"):\"lodash.templateSources[\"+ ++G_e+\"]\")+`\n`;m.replace(It,function(hi,nn,pn,Ol,ma,Fl){return pn||(pn=Ol),tt+=m.slice(Ze,Fl).replace(Sc,gve),nn&&(de=!0,tt+=`' +\n__e(`+nn+`) +\n'`),ma&&(Ce=!0,tt+=`';\n`+ma+`;\n__p += '`),pn&&(tt+=`' +\n((__t = (`+pn+`)) == null ? '' : __t) +\n'`),Ze=Fl+hi.length,hi}),tt+=`';\n`;var ui=es.call(C,\"variable\")&&C.variable;if(!ui)tt=`with (obj) {\n`+tt+`\n}\n`;else if(mI.test(ui))throw new Ti(a);tt=(Ce?tt.replace(mr,\"\"):tt).replace(Ei,\"$1\").replace(Cs,\"$1;\"),tt=\"function(\"+(ui||\"obj\")+`) {\n`+(ui?\"\":`obj || (obj = {});\n`)+\"var __t, __p = ''\"+(de?\", __e = _.escape\":\"\")+(Ce?`, __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n`:`;\n`)+tt+`return __p\n}`;var ji=hG(function(){return On(U,Kt+\"return \"+tt).apply(t,oe)});if(ji.source=tt,P4(ji))throw ji;return ji}function Hwe(m){return Kn(m).toLowerCase()}function Vwe(m){return Kn(m).toUpperCase()}function zwe(m,C,L){if(m=Kn(m),m&&(L||C===t))return wK(m);if(!m||!(C=Ml(C)))return m;var T=fd(m),F=fd(C),U=yK(T,F),oe=SK(T,F)+1;return tp(T,U,oe).join(\"\")}function $we(m,C,L){if(m=Kn(m),m&&(L||C===t))return m.slice(0,LK(m)+1);if(!m||!(C=Ml(C)))return m;var T=fd(m),F=SK(T,fd(C))+1;return tp(T,0,F).join(\"\")}function Uwe(m,C,L){if(m=Kn(m),m&&(L||C===t))return m.replace(Kg,\"\");if(!m||!(C=Ml(C)))return m;var T=fd(m),F=yK(T,fd(C));return tp(T,F).join(\"\")}function jwe(m,C){var L=P,T=O;if(Ks(C)){var F=\"separator\"in C?C.separator:F;L=\"length\"in C?Wi(C.length):L,T=\"omission\"in C?Ml(C.omission):T}m=Kn(m);var U=m.length;if(pb(m)){var oe=fd(m);U=oe.length}if(L>=U)return m;var de=L-mb(T);if(de<1)return T;var Ce=oe?tp(oe,0,de).join(\"\"):m.slice(0,de);if(F===t)return Ce+T;if(oe&&(de+=Ce.length-de),O4(F)){if(m.slice(de).search(F)){var Ze,Ye=Ce;for(F.global||(F=QO(F.source,Kn(Gt.exec(F))+\"g\")),F.lastIndex=0;Ze=F.exec(Ye);)var tt=Ze.index;Ce=Ce.slice(0,tt===t?de:tt)}}else if(m.indexOf(Ml(F),de)!=de){var It=Ce.lastIndexOf(F);It>-1&&(Ce=Ce.slice(0,It))}return Ce+T}function Kwe(m){return m=Kn(m),m&&Nl.test(m)?m.replace(wu,wve):m}var qwe=Sb(function(m,C,L){return m+(L?\" \":\"\")+C.toUpperCase()}),W4=fq(\"toUpperCase\");function uG(m,C,L){return m=Kn(m),C=L?t:C,C===t?mve(m)?xve(m):ave(m):m.match(C)||[]}var hG=Qi(function(m,C){try{return Al(m,t,C)}catch(L){return P4(L)?L:new Ti(L)}}),Gwe=tf(function(m,C){return Lc(C,function(L){L=ku(L),Jh(m,L,R4(m[L],m))}),m});function Zwe(m){var C=m==null?0:m.length,L=di();return m=C?Fs(m,function(T){if(typeof T[1]!=\"function\")throw new kc(r);return[L(T[0]),T[1]]}):[],Qi(function(T){for(var F=-1;++F<C;){var U=m[F];if(Al(U[0],this,T))return Al(U[1],this,T)}})}function Ywe(m){return w0e(Ic(m,u))}function H4(m){return function(){return m}}function Xwe(m,C){return m==null||m!==m?C:m}var Qwe=pq(),Jwe=pq(!0);function Za(m){return m}function V4(m){return jK(typeof m==\"function\"?m:Ic(m,u))}function eye(m){return qK(Ic(m,u))}function tye(m,C){return GK(m,Ic(C,u))}var iye=Qi(function(m,C){return function(L){return py(L,m,C)}}),nye=Qi(function(m,C){return function(L){return py(m,L,C)}});function z4(m,C,L){var T=ir(C),F=WI(C,T);L==null&&!(Ks(C)&&(F.length||!T.length))&&(L=C,C=m,m=this,F=WI(C,ir(C)));var U=!(Ks(L)&&\"chain\"in L)||!!L.chain,oe=sf(m);return Lc(F,function(de){var Ce=C[de];m[de]=Ce,oe&&(m.prototype[de]=function(){var Ze=this.__chain__;if(U||Ze){var Ye=m(this.__wrapped__),tt=Ye.__actions__=Ka(this.__actions__);return tt.push({func:Ce,args:arguments,thisArg:m}),Ye.__chain__=Ze,Ye}return Ce.apply(m,Zg([this.value()],arguments))})}),m}function sye(){return _r._===this&&(_r._=Tve),this}function $4(){}function oye(m){return m=Wi(m),Qi(function(C){return ZK(C,m)})}var rye=C4(Fs),aye=C4(mK),lye=C4(jO);function fG(m){return D4(m)?KO(ku(m)):B0e(m)}function cye(m){return function(C){return m==null?t:A_(m,C)}}var dye=_q(),uye=_q(!0);function U4(){return[]}function j4(){return!1}function hye(){return{}}function fye(){return\"\"}function gye(){return!0}function pye(m,C){if(m=Wi(m),m<1||m>me)return[];var L=We,T=qr(m,We);C=di(C),m-=We;for(var F=ZO(T,C);++L<m;)C(L);return F}function mye(m){return Ri(m)?Fs(m,ku):Pl(m)?[m]:Ka(Rq(Kn(m)))}function _ye(m){var C=++Ive;return Kn(m)+C}var vye=jI(function(m,C){return m+C},0),bye=w4(\"ceil\"),Cye=jI(function(m,C){return m/C},1),wye=w4(\"floor\");function yye(m){return m&&m.length?BI(m,Za,r4):t}function Sye(m,C){return m&&m.length?BI(m,di(C,2),r4):t}function xye(m){return bK(m,Za)}function Lye(m,C){return bK(m,di(C,2))}function kye(m){return m&&m.length?BI(m,Za,d4):t}function Dye(m,C){return m&&m.length?BI(m,di(C,2),d4):t}var Iye=jI(function(m,C){return m*C},1),Eye=w4(\"round\"),Tye=jI(function(m,C){return m-C},0);function Nye(m){return m&&m.length?GO(m,Za):0}function Aye(m,C){return m&&m.length?GO(m,di(C,2)):0}return $.after=eCe,$.ary=Uq,$.assign=VCe,$.assignIn=sG,$.assignInWith=sE,$.assignWith=zCe,$.at=$Ce,$.before=jq,$.bind=R4,$.bindAll=Gwe,$.bindKey=Kq,$.castArray=hCe,$.chain=Vq,$.chunk=wbe,$.compact=ybe,$.concat=Sbe,$.cond=Zwe,$.conforms=Ywe,$.constant=H4,$.countBy=N1e,$.create=UCe,$.curry=qq,$.curryRight=Gq,$.debounce=Zq,$.defaults=jCe,$.defaultsDeep=KCe,$.defer=tCe,$.delay=iCe,$.difference=xbe,$.differenceBy=Lbe,$.differenceWith=kbe,$.drop=Dbe,$.dropRight=Ibe,$.dropRightWhile=Ebe,$.dropWhile=Tbe,$.fill=Nbe,$.filter=R1e,$.flatMap=O1e,$.flatMapDeep=F1e,$.flatMapDepth=B1e,$.flatten=Fq,$.flattenDeep=Abe,$.flattenDepth=Rbe,$.flip=nCe,$.flow=Qwe,$.flowRight=Jwe,$.fromPairs=Mbe,$.functions=JCe,$.functionsIn=ewe,$.groupBy=W1e,$.initial=Obe,$.intersection=Fbe,$.intersectionBy=Bbe,$.intersectionWith=Wbe,$.invert=iwe,$.invertBy=nwe,$.invokeMap=V1e,$.iteratee=V4,$.keyBy=z1e,$.keys=ir,$.keysIn=Ga,$.map=QI,$.mapKeys=owe,$.mapValues=rwe,$.matches=eye,$.matchesProperty=tye,$.memoize=eE,$.merge=awe,$.mergeWith=oG,$.method=iye,$.methodOf=nye,$.mixin=z4,$.negate=tE,$.nthArg=oye,$.omit=lwe,$.omitBy=cwe,$.once=sCe,$.orderBy=$1e,$.over=rye,$.overArgs=oCe,$.overEvery=aye,$.overSome=lye,$.partial=M4,$.partialRight=Yq,$.partition=U1e,$.pick=dwe,$.pickBy=rG,$.property=fG,$.propertyOf=cye,$.pull=$be,$.pullAll=Wq,$.pullAllBy=Ube,$.pullAllWith=jbe,$.pullAt=Kbe,$.range=dye,$.rangeRight=uye,$.rearg=rCe,$.reject=q1e,$.remove=qbe,$.rest=aCe,$.reverse=N4,$.sampleSize=Z1e,$.set=hwe,$.setWith=fwe,$.shuffle=Y1e,$.slice=Gbe,$.sortBy=J1e,$.sortedUniq=t1e,$.sortedUniqBy=i1e,$.split=Owe,$.spread=lCe,$.tail=n1e,$.take=s1e,$.takeRight=o1e,$.takeRightWhile=r1e,$.takeWhile=a1e,$.tap=y1e,$.throttle=cCe,$.thru=XI,$.toArray=tG,$.toPairs=aG,$.toPairsIn=lG,$.toPath=mye,$.toPlainObject=nG,$.transform=gwe,$.unary=dCe,$.union=l1e,$.unionBy=c1e,$.unionWith=d1e,$.uniq=u1e,$.uniqBy=h1e,$.uniqWith=f1e,$.unset=pwe,$.unzip=A4,$.unzipWith=Hq,$.update=mwe,$.updateWith=_we,$.values=kb,$.valuesIn=vwe,$.without=g1e,$.words=uG,$.wrap=uCe,$.xor=p1e,$.xorBy=m1e,$.xorWith=_1e,$.zip=v1e,$.zipObject=b1e,$.zipObjectDeep=C1e,$.zipWith=w1e,$.entries=aG,$.entriesIn=lG,$.extend=sG,$.extendWith=sE,z4($,$),$.add=vye,$.attempt=hG,$.camelCase=ywe,$.capitalize=cG,$.ceil=bye,$.clamp=bwe,$.clone=fCe,$.cloneDeep=pCe,$.cloneDeepWith=mCe,$.cloneWith=gCe,$.conformsTo=_Ce,$.deburr=dG,$.defaultTo=Xwe,$.divide=Cye,$.endsWith=Swe,$.eq=pd,$.escape=xwe,$.escapeRegExp=Lwe,$.every=A1e,$.find=M1e,$.findIndex=Pq,$.findKey=qCe,$.findLast=P1e,$.findLastIndex=Oq,$.findLastKey=GCe,$.floor=wye,$.forEach=zq,$.forEachRight=$q,$.forIn=ZCe,$.forInRight=YCe,$.forOwn=XCe,$.forOwnRight=QCe,$.get=F4,$.gt=vCe,$.gte=bCe,$.has=twe,$.hasIn=B4,$.head=Bq,$.identity=Za,$.includes=H1e,$.indexOf=Pbe,$.inRange=Cwe,$.invoke=swe,$.isArguments=P_,$.isArray=Ri,$.isArrayBuffer=CCe,$.isArrayLike=qa,$.isArrayLikeObject=ho,$.isBoolean=wCe,$.isBuffer=ip,$.isDate=yCe,$.isElement=SCe,$.isEmpty=xCe,$.isEqual=LCe,$.isEqualWith=kCe,$.isError=P4,$.isFinite=DCe,$.isFunction=sf,$.isInteger=Xq,$.isLength=iE,$.isMap=Qq,$.isMatch=ICe,$.isMatchWith=ECe,$.isNaN=TCe,$.isNative=NCe,$.isNil=RCe,$.isNull=ACe,$.isNumber=Jq,$.isObject=Ks,$.isObjectLike=eo,$.isPlainObject=wy,$.isRegExp=O4,$.isSafeInteger=MCe,$.isSet=eG,$.isString=nE,$.isSymbol=Pl,$.isTypedArray=Lb,$.isUndefined=PCe,$.isWeakMap=OCe,$.isWeakSet=FCe,$.join=Hbe,$.kebabCase=kwe,$.last=Tc,$.lastIndexOf=Vbe,$.lowerCase=Dwe,$.lowerFirst=Iwe,$.lt=BCe,$.lte=WCe,$.max=yye,$.maxBy=Sye,$.mean=xye,$.meanBy=Lye,$.min=kye,$.minBy=Dye,$.stubArray=U4,$.stubFalse=j4,$.stubObject=hye,$.stubString=fye,$.stubTrue=gye,$.multiply=Iye,$.nth=zbe,$.noConflict=sye,$.noop=$4,$.now=JI,$.pad=Ewe,$.padEnd=Twe,$.padStart=Nwe,$.parseInt=Awe,$.random=wwe,$.reduce=j1e,$.reduceRight=K1e,$.repeat=Rwe,$.replace=Mwe,$.result=uwe,$.round=Eye,$.runInContext=ve,$.sample=G1e,$.size=X1e,$.snakeCase=Pwe,$.some=Q1e,$.sortedIndex=Zbe,$.sortedIndexBy=Ybe,$.sortedIndexOf=Xbe,$.sortedLastIndex=Qbe,$.sortedLastIndexBy=Jbe,$.sortedLastIndexOf=e1e,$.startCase=Fwe,$.startsWith=Bwe,$.subtract=Tye,$.sum=Nye,$.sumBy=Aye,$.template=Wwe,$.times=pye,$.toFinite=of,$.toInteger=Wi,$.toLength=iG,$.toLower=Hwe,$.toNumber=Nc,$.toSafeInteger=HCe,$.toString=Kn,$.toUpper=Vwe,$.trim=zwe,$.trimEnd=$we,$.trimStart=Uwe,$.truncate=jwe,$.unescape=Kwe,$.uniqueId=_ye,$.upperCase=qwe,$.upperFirst=W4,$.each=zq,$.eachRight=$q,$.first=Bq,z4($,function(){var m={};return xu($,function(C,L){es.call($.prototype,L)||(m[L]=C)}),m}(),{chain:!1}),$.VERSION=i,Lc([\"bind\",\"bindKey\",\"curry\",\"curryRight\",\"partial\",\"partialRight\"],function(m){$[m].placeholder=$}),Lc([\"drop\",\"take\"],function(m,C){un.prototype[m]=function(L){L=L===t?1:Bo(Wi(L),0);var T=this.__filtered__&&!C?new un(this):this.clone();return T.__filtered__?T.__takeCount__=qr(L,T.__takeCount__):T.__views__.push({size:qr(L,We),type:m+(T.__dir__<0?\"Right\":\"\")}),T},un.prototype[m+\"Right\"]=function(L){return this.reverse()[m](L).reverse()}}),Lc([\"filter\",\"map\",\"takeWhile\"],function(m,C){var L=C+1,T=L==K||L==se;un.prototype[m]=function(F){var U=this.clone();return U.__iteratees__.push({iteratee:di(F,3),type:L}),U.__filtered__=U.__filtered__||T,U}}),Lc([\"head\",\"last\"],function(m,C){var L=\"take\"+(C?\"Right\":\"\");un.prototype[m]=function(){return this[L](1).value()[0]}}),Lc([\"initial\",\"tail\"],function(m,C){var L=\"drop\"+(C?\"\":\"Right\");un.prototype[m]=function(){return this.__filtered__?new un(this):this[L](1)}}),un.prototype.compact=function(){return this.filter(Za)},un.prototype.find=function(m){return this.filter(m).head()},un.prototype.findLast=function(m){return this.reverse().find(m)},un.prototype.invokeMap=Qi(function(m,C){return typeof m==\"function\"?new un(this):this.map(function(L){return py(L,m,C)})}),un.prototype.reject=function(m){return this.filter(tE(di(m)))},un.prototype.slice=function(m,C){m=Wi(m);var L=this;return L.__filtered__&&(m>0||C<0)?new un(L):(m<0?L=L.takeRight(-m):m&&(L=L.drop(m)),C!==t&&(C=Wi(C),L=C<0?L.dropRight(-C):L.take(C-m)),L)},un.prototype.takeRightWhile=function(m){return this.reverse().takeWhile(m).reverse()},un.prototype.toArray=function(){return this.take(We)},xu(un.prototype,function(m,C){var L=/^(?:filter|find|map|reject)|While$/.test(C),T=/^(?:head|last)$/.test(C),F=$[T?\"take\"+(C==\"last\"?\"Right\":\"\"):C],U=T||/^find/.test(C);F&&($.prototype[C]=function(){var oe=this.__wrapped__,de=T?[1]:arguments,Ce=oe instanceof un,Ze=de[0],Ye=Ce||Ri(oe),tt=function(nn){var pn=F.apply($,Zg([nn],de));return T&&It?pn[0]:pn};Ye&&L&&typeof Ze==\"function\"&&Ze.length!=1&&(Ce=Ye=!1);var It=this.__chain__,Kt=!!this.__actions__.length,ui=U&&!It,ji=Ce&&!Kt;if(!U&&Ye){oe=ji?oe:new un(this);var hi=m.apply(oe,de);return hi.__actions__.push({func:XI,args:[tt],thisArg:t}),new Dc(hi,It)}return ui&&ji?m.apply(this,de):(hi=this.thru(tt),ui?T?hi.value()[0]:hi.value():hi)})}),Lc([\"pop\",\"push\",\"shift\",\"sort\",\"splice\",\"unshift\"],function(m){var C=SI[m],L=/^(?:push|sort|unshift)$/.test(m)?\"tap\":\"thru\",T=/^(?:pop|shift)$/.test(m);$.prototype[m]=function(){var F=arguments;if(T&&!this.__chain__){var U=this.value();return C.apply(Ri(U)?U:[],F)}return this[L](function(oe){return C.apply(Ri(oe)?oe:[],F)})}}),xu(un.prototype,function(m,C){var L=$[C];if(L){var T=L.name+\"\";es.call(Cb,T)||(Cb[T]=[]),Cb[T].push({name:C,func:L})}}),Cb[UI(t,b).name]=[{name:\"wrapper\",func:t}],un.prototype.clone=Kve,un.prototype.reverse=qve,un.prototype.value=Gve,$.prototype.at=S1e,$.prototype.chain=x1e,$.prototype.commit=L1e,$.prototype.next=k1e,$.prototype.plant=I1e,$.prototype.reverse=E1e,$.prototype.toJSON=$.prototype.valueOf=$.prototype.value=T1e,$.prototype.first=$.prototype.head,ly&&($.prototype[ly]=D1e),$},_b=Lve();D_?((D_.exports=_b)._=_b,VO._=_b):_r._=_b}).call(oS)})(TR,TR.exports);var Yst=TR.exports;const wt=Zst(Yst);let jT;const Xst=new Uint8Array(16);function Qst(){if(!jT&&(jT=typeof crypto<\"u\"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!jT))throw new Error(\"crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported\");return jT(Xst)}const Cr=[];for(let n=0;n<256;++n)Cr.push((n+256).toString(16).slice(1));function Jst(n,e=0){return Cr[n[e+0]]+Cr[n[e+1]]+Cr[n[e+2]]+Cr[n[e+3]]+\"-\"+Cr[n[e+4]]+Cr[n[e+5]]+\"-\"+Cr[n[e+6]]+Cr[n[e+7]]+\"-\"+Cr[n[e+8]]+Cr[n[e+9]]+\"-\"+Cr[n[e+10]]+Cr[n[e+11]]+Cr[n[e+12]]+Cr[n[e+13]]+Cr[n[e+14]]+Cr[n[e+15]]}const eot=typeof crypto<\"u\"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),pie={randomUUID:eot};function tot(n,e,t){if(pie.randomUUID&&!n)return pie.randomUUID();n=n||{};const i=n.random||(n.rng||Qst)();return i[6]=i[6]&15|64,i[8]=i[8]&63|128,Jst(i)}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const iot=4,mie=0,_ie=1,not=2;function ty(n){let e=n.length;for(;--e>=0;)n[e]=0}const sot=0,bpe=1,oot=2,rot=3,aot=258,ij=29,iI=256,Wk=iI+1+ij,_C=30,nj=19,Cpe=2*Wk+1,Mv=15,D3=16,lot=7,sj=256,wpe=16,ype=17,Spe=18,yH=new Uint8Array([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]),KN=new Uint8Array([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]),cot=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),xpe=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),dot=512,Pf=new Array((Wk+2)*2);ty(Pf);const Wx=new Array(_C*2);ty(Wx);const Hk=new Array(dot);ty(Hk);const Vk=new Array(aot-rot+1);ty(Vk);const oj=new Array(ij);ty(oj);const NR=new Array(_C);ty(NR);function I3(n,e,t,i,s){this.static_tree=n,this.extra_bits=e,this.extra_base=t,this.elems=i,this.max_length=s,this.has_stree=n&&n.length}let Lpe,kpe,Dpe;function E3(n,e){this.dyn_tree=n,this.max_code=0,this.stat_desc=e}const Ipe=n=>n<256?Hk[n]:Hk[256+(n>>>7)],zk=(n,e)=>{n.pending_buf[n.pending++]=e&255,n.pending_buf[n.pending++]=e>>>8&255},_l=(n,e,t)=>{n.bi_valid>D3-t?(n.bi_buf|=e<<n.bi_valid&65535,zk(n,n.bi_buf),n.bi_buf=e>>D3-n.bi_valid,n.bi_valid+=t-D3):(n.bi_buf|=e<<n.bi_valid&65535,n.bi_valid+=t)},oh=(n,e,t)=>{_l(n,t[e*2],t[e*2+1])},Epe=(n,e)=>{let t=0;do t|=n&1,n>>>=1,t<<=1;while(--e>0);return t>>>1},uot=n=>{n.bi_valid===16?(zk(n,n.bi_buf),n.bi_buf=0,n.bi_valid=0):n.bi_valid>=8&&(n.pending_buf[n.pending++]=n.bi_buf&255,n.bi_buf>>=8,n.bi_valid-=8)},hot=(n,e)=>{const t=e.dyn_tree,i=e.max_code,s=e.stat_desc.static_tree,o=e.stat_desc.has_stree,r=e.stat_desc.extra_bits,a=e.stat_desc.extra_base,l=e.stat_desc.max_length;let c,d,u,h,f,g,p=0;for(h=0;h<=Mv;h++)n.bl_count[h]=0;for(t[n.heap[n.heap_max]*2+1]=0,c=n.heap_max+1;c<Cpe;c++)d=n.heap[c],h=t[t[d*2+1]*2+1]+1,h>l&&(h=l,p++),t[d*2+1]=h,!(d>i)&&(n.bl_count[h]++,f=0,d>=a&&(f=r[d-a]),g=t[d*2],n.opt_len+=g*(h+f),o&&(n.static_len+=g*(s[d*2+1]+f)));if(p!==0){do{for(h=l-1;n.bl_count[h]===0;)h--;n.bl_count[h]--,n.bl_count[h+1]+=2,n.bl_count[l]--,p-=2}while(p>0);for(h=l;h!==0;h--)for(d=n.bl_count[h];d!==0;)u=n.heap[--c],!(u>i)&&(t[u*2+1]!==h&&(n.opt_len+=(h-t[u*2+1])*t[u*2],t[u*2+1]=h),d--)}},Tpe=(n,e,t)=>{const i=new Array(Mv+1);let s=0,o,r;for(o=1;o<=Mv;o++)s=s+t[o-1]<<1,i[o]=s;for(r=0;r<=e;r++){let a=n[r*2+1];a!==0&&(n[r*2]=Epe(i[a]++,a))}},fot=()=>{let n,e,t,i,s;const o=new Array(Mv+1);for(t=0,i=0;i<ij-1;i++)for(oj[i]=t,n=0;n<1<<yH[i];n++)Vk[t++]=i;for(Vk[t-1]=i,s=0,i=0;i<16;i++)for(NR[i]=s,n=0;n<1<<KN[i];n++)Hk[s++]=i;for(s>>=7;i<_C;i++)for(NR[i]=s<<7,n=0;n<1<<KN[i]-7;n++)Hk[256+s++]=i;for(e=0;e<=Mv;e++)o[e]=0;for(n=0;n<=143;)Pf[n*2+1]=8,n++,o[8]++;for(;n<=255;)Pf[n*2+1]=9,n++,o[9]++;for(;n<=279;)Pf[n*2+1]=7,n++,o[7]++;for(;n<=287;)Pf[n*2+1]=8,n++,o[8]++;for(Tpe(Pf,Wk+1,o),n=0;n<_C;n++)Wx[n*2+1]=5,Wx[n*2]=Epe(n,5);Lpe=new I3(Pf,yH,iI+1,Wk,Mv),kpe=new I3(Wx,KN,0,_C,Mv),Dpe=new I3(new Array(0),cot,0,nj,lot)},Npe=n=>{let e;for(e=0;e<Wk;e++)n.dyn_ltree[e*2]=0;for(e=0;e<_C;e++)n.dyn_dtree[e*2]=0;for(e=0;e<nj;e++)n.bl_tree[e*2]=0;n.dyn_ltree[sj*2]=1,n.opt_len=n.static_len=0,n.sym_next=n.matches=0},Ape=n=>{n.bi_valid>8?zk(n,n.bi_buf):n.bi_valid>0&&(n.pending_buf[n.pending++]=n.bi_buf),n.bi_buf=0,n.bi_valid=0},vie=(n,e,t,i)=>{const s=e*2,o=t*2;return n[s]<n[o]||n[s]===n[o]&&i[e]<=i[t]},T3=(n,e,t)=>{const i=n.heap[t];let s=t<<1;for(;s<=n.heap_len&&(s<n.heap_len&&vie(e,n.heap[s+1],n.heap[s],n.depth)&&s++,!vie(e,i,n.heap[s],n.depth));)n.heap[t]=n.heap[s],t=s,s<<=1;n.heap[t]=i},bie=(n,e,t)=>{let i,s,o=0,r,a;if(n.sym_next!==0)do i=n.pending_buf[n.sym_buf+o++]&255,i+=(n.pending_buf[n.sym_buf+o++]&255)<<8,s=n.pending_buf[n.sym_buf+o++],i===0?oh(n,s,e):(r=Vk[s],oh(n,r+iI+1,e),a=yH[r],a!==0&&(s-=oj[r],_l(n,s,a)),i--,r=Ipe(i),oh(n,r,t),a=KN[r],a!==0&&(i-=NR[r],_l(n,i,a)));while(o<n.sym_next);oh(n,sj,e)},SH=(n,e)=>{const t=e.dyn_tree,i=e.stat_desc.static_tree,s=e.stat_desc.has_stree,o=e.stat_desc.elems;let r,a,l=-1,c;for(n.heap_len=0,n.heap_max=Cpe,r=0;r<o;r++)t[r*2]!==0?(n.heap[++n.heap_len]=l=r,n.depth[r]=0):t[r*2+1]=0;for(;n.heap_len<2;)c=n.heap[++n.heap_len]=l<2?++l:0,t[c*2]=1,n.depth[c]=0,n.opt_len--,s&&(n.static_len-=i[c*2+1]);for(e.max_code=l,r=n.heap_len>>1;r>=1;r--)T3(n,t,r);c=o;do r=n.heap[1],n.heap[1]=n.heap[n.heap_len--],T3(n,t,1),a=n.heap[1],n.heap[--n.heap_max]=r,n.heap[--n.heap_max]=a,t[c*2]=t[r*2]+t[a*2],n.depth[c]=(n.depth[r]>=n.depth[a]?n.depth[r]:n.depth[a])+1,t[r*2+1]=t[a*2+1]=c,n.heap[1]=c++,T3(n,t,1);while(n.heap_len>=2);n.heap[--n.heap_max]=n.heap[1],hot(n,e),Tpe(t,l,n.bl_count)},Cie=(n,e,t)=>{let i,s=-1,o,r=e[0*2+1],a=0,l=7,c=4;for(r===0&&(l=138,c=3),e[(t+1)*2+1]=65535,i=0;i<=t;i++)o=r,r=e[(i+1)*2+1],!(++a<l&&o===r)&&(a<c?n.bl_tree[o*2]+=a:o!==0?(o!==s&&n.bl_tree[o*2]++,n.bl_tree[wpe*2]++):a<=10?n.bl_tree[ype*2]++:n.bl_tree[Spe*2]++,a=0,s=o,r===0?(l=138,c=3):o===r?(l=6,c=3):(l=7,c=4))},wie=(n,e,t)=>{let i,s=-1,o,r=e[0*2+1],a=0,l=7,c=4;for(r===0&&(l=138,c=3),i=0;i<=t;i++)if(o=r,r=e[(i+1)*2+1],!(++a<l&&o===r)){if(a<c)do oh(n,o,n.bl_tree);while(--a!==0);else o!==0?(o!==s&&(oh(n,o,n.bl_tree),a--),oh(n,wpe,n.bl_tree),_l(n,a-3,2)):a<=10?(oh(n,ype,n.bl_tree),_l(n,a-3,3)):(oh(n,Spe,n.bl_tree),_l(n,a-11,7));a=0,s=o,r===0?(l=138,c=3):o===r?(l=6,c=3):(l=7,c=4)}},got=n=>{let e;for(Cie(n,n.dyn_ltree,n.l_desc.max_code),Cie(n,n.dyn_dtree,n.d_desc.max_code),SH(n,n.bl_desc),e=nj-1;e>=3&&n.bl_tree[xpe[e]*2+1]===0;e--);return n.opt_len+=3*(e+1)+5+5+4,e},pot=(n,e,t,i)=>{let s;for(_l(n,e-257,5),_l(n,t-1,5),_l(n,i-4,4),s=0;s<i;s++)_l(n,n.bl_tree[xpe[s]*2+1],3);wie(n,n.dyn_ltree,e-1),wie(n,n.dyn_dtree,t-1)},mot=n=>{let e=4093624447,t;for(t=0;t<=31;t++,e>>>=1)if(e&1&&n.dyn_ltree[t*2]!==0)return mie;if(n.dyn_ltree[9*2]!==0||n.dyn_ltree[10*2]!==0||n.dyn_ltree[13*2]!==0)return _ie;for(t=32;t<iI;t++)if(n.dyn_ltree[t*2]!==0)return _ie;return mie};let yie=!1;const _ot=n=>{yie||(fot(),yie=!0),n.l_desc=new E3(n.dyn_ltree,Lpe),n.d_desc=new E3(n.dyn_dtree,kpe),n.bl_desc=new E3(n.bl_tree,Dpe),n.bi_buf=0,n.bi_valid=0,Npe(n)},Rpe=(n,e,t,i)=>{_l(n,(sot<<1)+(i?1:0),3),Ape(n),zk(n,t),zk(n,~t),t&&n.pending_buf.set(n.window.subarray(e,e+t),n.pending),n.pending+=t},vot=n=>{_l(n,bpe<<1,3),oh(n,sj,Pf),uot(n)},bot=(n,e,t,i)=>{let s,o,r=0;n.level>0?(n.strm.data_type===not&&(n.strm.data_type=mot(n)),SH(n,n.l_desc),SH(n,n.d_desc),r=got(n),s=n.opt_len+3+7>>>3,o=n.static_len+3+7>>>3,o<=s&&(s=o)):s=o=t+5,t+4<=s&&e!==-1?Rpe(n,e,t,i):n.strategy===iot||o===s?(_l(n,(bpe<<1)+(i?1:0),3),bie(n,Pf,Wx)):(_l(n,(oot<<1)+(i?1:0),3),pot(n,n.l_desc.max_code+1,n.d_desc.max_code+1,r+1),bie(n,n.dyn_ltree,n.dyn_dtree)),Npe(n),i&&Ape(n)},Cot=(n,e,t)=>(n.pending_buf[n.sym_buf+n.sym_next++]=e,n.pending_buf[n.sym_buf+n.sym_next++]=e>>8,n.pending_buf[n.sym_buf+n.sym_next++]=t,e===0?n.dyn_ltree[t*2]++:(n.matches++,e--,n.dyn_ltree[(Vk[t]+iI+1)*2]++,n.dyn_dtree[Ipe(e)*2]++),n.sym_next===n.sym_end);var wot=_ot,yot=Rpe,Sot=bot,xot=Cot,Lot=vot,kot={_tr_init:wot,_tr_stored_block:yot,_tr_flush_block:Sot,_tr_tally:xot,_tr_align:Lot};const Dot=(n,e,t,i)=>{let s=n&65535|0,o=n>>>16&65535|0,r=0;for(;t!==0;){r=t>2e3?2e3:t,t-=r;do s=s+e[i++]|0,o=o+s|0;while(--r);s%=65521,o%=65521}return s|o<<16|0};var $k=Dot;const Iot=()=>{let n,e=[];for(var t=0;t<256;t++){n=t;for(var i=0;i<8;i++)n=n&1?3988292384^n>>>1:n>>>1;e[t]=n}return e},Eot=new Uint32Array(Iot()),Tot=(n,e,t,i)=>{const s=Eot,o=i+t;n^=-1;for(let r=i;r<o;r++)n=n>>>8^s[(n^e[r])&255];return n^-1};var cr=Tot,V0={2:\"need dictionary\",1:\"stream end\",0:\"\",\"-1\":\"file error\",\"-2\":\"stream error\",\"-3\":\"data error\",\"-4\":\"insufficient memory\",\"-5\":\"buffer error\",\"-6\":\"incompatible version\"},nI={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:Not,_tr_stored_block:xH,_tr_flush_block:Aot,_tr_tally:Sm,_tr_align:Rot}=kot,{Z_NO_FLUSH:xm,Z_PARTIAL_FLUSH:Mot,Z_FULL_FLUSH:Pot,Z_FINISH:Uc,Z_BLOCK:Sie,Z_OK:wr,Z_STREAM_END:xie,Z_STREAM_ERROR:wh,Z_DATA_ERROR:Oot,Z_BUF_ERROR:N3,Z_DEFAULT_COMPRESSION:Fot,Z_FILTERED:Bot,Z_HUFFMAN_ONLY:KT,Z_RLE:Wot,Z_FIXED:Hot,Z_DEFAULT_STRATEGY:Vot,Z_UNKNOWN:zot,Z_DEFLATED:yO}=nI,$ot=9,Uot=15,jot=8,Kot=29,qot=256,LH=qot+1+Kot,Got=30,Zot=19,Yot=2*LH+1,Xot=15,bn=3,om=258,yh=om+bn+1,Qot=32,vw=42,rj=57,kH=69,DH=73,IH=91,EH=103,Pv=113,$S=666,Ea=1,iy=2,z0=3,ny=4,Jot=3,Ov=(n,e)=>(n.msg=V0[e],e),Lie=n=>n*2-(n>4?9:0),Wp=n=>{let e=n.length;for(;--e>=0;)n[e]=0},ert=n=>{let e,t,i,s=n.w_size;e=n.hash_size,i=e;do t=n.head[--i],n.head[i]=t>=s?t-s:0;while(--e);e=s,i=e;do t=n.prev[--i],n.prev[i]=t>=s?t-s:0;while(--e)};let trt=(n,e,t)=>(e<<n.hash_shift^t)&n.hash_mask,Lm=trt;const Hl=n=>{const e=n.state;let t=e.pending;t>n.avail_out&&(t=n.avail_out),t!==0&&(n.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+t),n.next_out),n.next_out+=t,e.pending_out+=t,n.total_out+=t,n.avail_out-=t,e.pending-=t,e.pending===0&&(e.pending_out=0))},ec=(n,e)=>{Aot(n,n.block_start>=0?n.block_start:-1,n.strstart-n.block_start,e),n.block_start=n.strstart,Hl(n.strm)},Fn=(n,e)=>{n.pending_buf[n.pending++]=e},rS=(n,e)=>{n.pending_buf[n.pending++]=e>>>8&255,n.pending_buf[n.pending++]=e&255},TH=(n,e,t,i)=>{let s=n.avail_in;return s>i&&(s=i),s===0?0:(n.avail_in-=s,e.set(n.input.subarray(n.next_in,n.next_in+s),t),n.state.wrap===1?n.adler=$k(n.adler,e,s,t):n.state.wrap===2&&(n.adler=cr(n.adler,e,s,t)),n.next_in+=s,n.total_in+=s,s)},Mpe=(n,e)=>{let t=n.max_chain_length,i=n.strstart,s,o,r=n.prev_length,a=n.nice_match;const l=n.strstart>n.w_size-yh?n.strstart-(n.w_size-yh):0,c=n.window,d=n.w_mask,u=n.prev,h=n.strstart+om;let f=c[i+r-1],g=c[i+r];n.prev_length>=n.good_match&&(t>>=2),a>n.lookahead&&(a=n.lookahead);do if(s=e,!(c[s+r]!==g||c[s+r-1]!==f||c[s]!==c[i]||c[++s]!==c[i+1])){i+=2,s++;do;while(c[++i]===c[++s]&&c[++i]===c[++s]&&c[++i]===c[++s]&&c[++i]===c[++s]&&c[++i]===c[++s]&&c[++i]===c[++s]&&c[++i]===c[++s]&&c[++i]===c[++s]&&i<h);if(o=om-(h-i),i=h-om,o>r){if(n.match_start=e,r=o,o>=a)break;f=c[i+r-1],g=c[i+r]}}while((e=u[e&d])>l&&--t!==0);return r<=n.lookahead?r:n.lookahead},bw=n=>{const e=n.w_size;let t,i,s;do{if(i=n.window_size-n.lookahead-n.strstart,n.strstart>=e+(e-yh)&&(n.window.set(n.window.subarray(e,e+e-i),0),n.match_start-=e,n.strstart-=e,n.block_start-=e,n.insert>n.strstart&&(n.insert=n.strstart),ert(n),i+=e),n.strm.avail_in===0)break;if(t=TH(n.strm,n.window,n.strstart+n.lookahead,i),n.lookahead+=t,n.lookahead+n.insert>=bn)for(s=n.strstart-n.insert,n.ins_h=n.window[s],n.ins_h=Lm(n,n.ins_h,n.window[s+1]);n.insert&&(n.ins_h=Lm(n,n.ins_h,n.window[s+bn-1]),n.prev[s&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=s,s++,n.insert--,!(n.lookahead+n.insert<bn)););}while(n.lookahead<yh&&n.strm.avail_in!==0)},Ppe=(n,e)=>{let t=n.pending_buf_size-5>n.w_size?n.w_size:n.pending_buf_size-5,i,s,o,r=0,a=n.strm.avail_in;do{if(i=65535,o=n.bi_valid+42>>3,n.strm.avail_out<o||(o=n.strm.avail_out-o,s=n.strstart-n.block_start,i>s+n.strm.avail_in&&(i=s+n.strm.avail_in),i>o&&(i=o),i<t&&(i===0&&e!==Uc||e===xm||i!==s+n.strm.avail_in)))break;r=e===Uc&&i===s+n.strm.avail_in?1:0,xH(n,0,0,r),n.pending_buf[n.pending-4]=i,n.pending_buf[n.pending-3]=i>>8,n.pending_buf[n.pending-2]=~i,n.pending_buf[n.pending-1]=~i>>8,Hl(n.strm),s&&(s>i&&(s=i),n.strm.output.set(n.window.subarray(n.block_start,n.block_start+s),n.strm.next_out),n.strm.next_out+=s,n.strm.avail_out-=s,n.strm.total_out+=s,n.block_start+=s,i-=s),i&&(TH(n.strm,n.strm.output,n.strm.next_out,i),n.strm.next_out+=i,n.strm.avail_out-=i,n.strm.total_out+=i)}while(r===0);return a-=n.strm.avail_in,a&&(a>=n.w_size?(n.matches=2,n.window.set(n.strm.input.subarray(n.strm.next_in-n.w_size,n.strm.next_in),0),n.strstart=n.w_size,n.insert=n.strstart):(n.window_size-n.strstart<=a&&(n.strstart-=n.w_size,n.window.set(n.window.subarray(n.w_size,n.w_size+n.strstart),0),n.matches<2&&n.matches++,n.insert>n.strstart&&(n.insert=n.strstart)),n.window.set(n.strm.input.subarray(n.strm.next_in-a,n.strm.next_in),n.strstart),n.strstart+=a,n.insert+=a>n.w_size-n.insert?n.w_size-n.insert:a),n.block_start=n.strstart),n.high_water<n.strstart&&(n.high_water=n.strstart),r?ny:e!==xm&&e!==Uc&&n.strm.avail_in===0&&n.strstart===n.block_start?iy:(o=n.window_size-n.strstart,n.strm.avail_in>o&&n.block_start>=n.w_size&&(n.block_start-=n.w_size,n.strstart-=n.w_size,n.window.set(n.window.subarray(n.w_size,n.w_size+n.strstart),0),n.matches<2&&n.matches++,o+=n.w_size,n.insert>n.strstart&&(n.insert=n.strstart)),o>n.strm.avail_in&&(o=n.strm.avail_in),o&&(TH(n.strm,n.window,n.strstart,o),n.strstart+=o,n.insert+=o>n.w_size-n.insert?n.w_size-n.insert:o),n.high_water<n.strstart&&(n.high_water=n.strstart),o=n.bi_valid+42>>3,o=n.pending_buf_size-o>65535?65535:n.pending_buf_size-o,t=o>n.w_size?n.w_size:o,s=n.strstart-n.block_start,(s>=t||(s||e===Uc)&&e!==xm&&n.strm.avail_in===0&&s<=o)&&(i=s>o?o:s,r=e===Uc&&n.strm.avail_in===0&&i===s?1:0,xH(n,n.block_start,i,r),n.block_start+=i,Hl(n.strm)),r?z0:Ea)},A3=(n,e)=>{let t,i;for(;;){if(n.lookahead<yh){if(bw(n),n.lookahead<yh&&e===xm)return Ea;if(n.lookahead===0)break}if(t=0,n.lookahead>=bn&&(n.ins_h=Lm(n,n.ins_h,n.window[n.strstart+bn-1]),t=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),t!==0&&n.strstart-t<=n.w_size-yh&&(n.match_length=Mpe(n,t)),n.match_length>=bn)if(i=Sm(n,n.strstart-n.match_start,n.match_length-bn),n.lookahead-=n.match_length,n.match_length<=n.max_lazy_match&&n.lookahead>=bn){n.match_length--;do n.strstart++,n.ins_h=Lm(n,n.ins_h,n.window[n.strstart+bn-1]),t=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart;while(--n.match_length!==0);n.strstart++}else n.strstart+=n.match_length,n.match_length=0,n.ins_h=n.window[n.strstart],n.ins_h=Lm(n,n.ins_h,n.window[n.strstart+1]);else i=Sm(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++;if(i&&(ec(n,!1),n.strm.avail_out===0))return Ea}return n.insert=n.strstart<bn-1?n.strstart:bn-1,e===Uc?(ec(n,!0),n.strm.avail_out===0?z0:ny):n.sym_next&&(ec(n,!1),n.strm.avail_out===0)?Ea:iy},Qb=(n,e)=>{let t,i,s;for(;;){if(n.lookahead<yh){if(bw(n),n.lookahead<yh&&e===xm)return Ea;if(n.lookahead===0)break}if(t=0,n.lookahead>=bn&&(n.ins_h=Lm(n,n.ins_h,n.window[n.strstart+bn-1]),t=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),n.prev_length=n.match_length,n.prev_match=n.match_start,n.match_length=bn-1,t!==0&&n.prev_length<n.max_lazy_match&&n.strstart-t<=n.w_size-yh&&(n.match_length=Mpe(n,t),n.match_length<=5&&(n.strategy===Bot||n.match_length===bn&&n.strstart-n.match_start>4096)&&(n.match_length=bn-1)),n.prev_length>=bn&&n.match_length<=n.prev_length){s=n.strstart+n.lookahead-bn,i=Sm(n,n.strstart-1-n.prev_match,n.prev_length-bn),n.lookahead-=n.prev_length-1,n.prev_length-=2;do++n.strstart<=s&&(n.ins_h=Lm(n,n.ins_h,n.window[n.strstart+bn-1]),t=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart);while(--n.prev_length!==0);if(n.match_available=0,n.match_length=bn-1,n.strstart++,i&&(ec(n,!1),n.strm.avail_out===0))return Ea}else if(n.match_available){if(i=Sm(n,0,n.window[n.strstart-1]),i&&ec(n,!1),n.strstart++,n.lookahead--,n.strm.avail_out===0)return Ea}else n.match_available=1,n.strstart++,n.lookahead--}return n.match_available&&(i=Sm(n,0,n.window[n.strstart-1]),n.match_available=0),n.insert=n.strstart<bn-1?n.strstart:bn-1,e===Uc?(ec(n,!0),n.strm.avail_out===0?z0:ny):n.sym_next&&(ec(n,!1),n.strm.avail_out===0)?Ea:iy},irt=(n,e)=>{let t,i,s,o;const r=n.window;for(;;){if(n.lookahead<=om){if(bw(n),n.lookahead<=om&&e===xm)return Ea;if(n.lookahead===0)break}if(n.match_length=0,n.lookahead>=bn&&n.strstart>0&&(s=n.strstart-1,i=r[s],i===r[++s]&&i===r[++s]&&i===r[++s])){o=n.strstart+om;do;while(i===r[++s]&&i===r[++s]&&i===r[++s]&&i===r[++s]&&i===r[++s]&&i===r[++s]&&i===r[++s]&&i===r[++s]&&s<o);n.match_length=om-(o-s),n.match_length>n.lookahead&&(n.match_length=n.lookahead)}if(n.match_length>=bn?(t=Sm(n,1,n.match_length-bn),n.lookahead-=n.match_length,n.strstart+=n.match_length,n.match_length=0):(t=Sm(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++),t&&(ec(n,!1),n.strm.avail_out===0))return Ea}return n.insert=0,e===Uc?(ec(n,!0),n.strm.avail_out===0?z0:ny):n.sym_next&&(ec(n,!1),n.strm.avail_out===0)?Ea:iy},nrt=(n,e)=>{let t;for(;;){if(n.lookahead===0&&(bw(n),n.lookahead===0)){if(e===xm)return Ea;break}if(n.match_length=0,t=Sm(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++,t&&(ec(n,!1),n.strm.avail_out===0))return Ea}return n.insert=0,e===Uc?(ec(n,!0),n.strm.avail_out===0?z0:ny):n.sym_next&&(ec(n,!1),n.strm.avail_out===0)?Ea:iy};function Mu(n,e,t,i,s){this.good_length=n,this.max_lazy=e,this.nice_length=t,this.max_chain=i,this.func=s}const US=[new Mu(0,0,0,0,Ppe),new Mu(4,4,8,4,A3),new Mu(4,5,16,8,A3),new Mu(4,6,32,32,A3),new Mu(4,4,16,16,Qb),new Mu(8,16,32,32,Qb),new Mu(8,16,128,128,Qb),new Mu(8,32,128,256,Qb),new Mu(32,128,258,1024,Qb),new Mu(32,258,258,4096,Qb)],srt=n=>{n.window_size=2*n.w_size,Wp(n.head),n.max_lazy_match=US[n.level].max_lazy,n.good_match=US[n.level].good_length,n.nice_match=US[n.level].nice_length,n.max_chain_length=US[n.level].max_chain,n.strstart=0,n.block_start=0,n.lookahead=0,n.insert=0,n.match_length=n.prev_length=bn-1,n.match_available=0,n.ins_h=0};function ort(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=yO,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(Yot*2),this.dyn_dtree=new Uint16Array((2*Got+1)*2),this.bl_tree=new Uint16Array((2*Zot+1)*2),Wp(this.dyn_ltree),Wp(this.dyn_dtree),Wp(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(Xot+1),this.heap=new Uint16Array(2*LH+1),Wp(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*LH+1),Wp(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const sI=n=>{if(!n)return 1;const e=n.state;return!e||e.strm!==n||e.status!==vw&&e.status!==rj&&e.status!==kH&&e.status!==DH&&e.status!==IH&&e.status!==EH&&e.status!==Pv&&e.status!==$S?1:0},Ope=n=>{if(sI(n))return Ov(n,wh);n.total_in=n.total_out=0,n.data_type=zot;const e=n.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap===2?rj:e.wrap?vw:Pv,n.adler=e.wrap===2?0:1,e.last_flush=-2,Not(e),wr},Fpe=n=>{const e=Ope(n);return e===wr&&srt(n.state),e},rrt=(n,e)=>sI(n)||n.state.wrap!==2?wh:(n.state.gzhead=e,wr),Bpe=(n,e,t,i,s,o)=>{if(!n)return wh;let r=1;if(e===Fot&&(e=6),i<0?(r=0,i=-i):i>15&&(r=2,i-=16),s<1||s>$ot||t!==yO||i<8||i>15||e<0||e>9||o<0||o>Hot||i===8&&r!==1)return Ov(n,wh);i===8&&(i=9);const a=new ort;return n.state=a,a.strm=n,a.status=vw,a.wrap=r,a.gzhead=null,a.w_bits=i,a.w_size=1<<a.w_bits,a.w_mask=a.w_size-1,a.hash_bits=s+7,a.hash_size=1<<a.hash_bits,a.hash_mask=a.hash_size-1,a.hash_shift=~~((a.hash_bits+bn-1)/bn),a.window=new Uint8Array(a.w_size*2),a.head=new Uint16Array(a.hash_size),a.prev=new Uint16Array(a.w_size),a.lit_bufsize=1<<s+6,a.pending_buf_size=a.lit_bufsize*4,a.pending_buf=new Uint8Array(a.pending_buf_size),a.sym_buf=a.lit_bufsize,a.sym_end=(a.lit_bufsize-1)*3,a.level=e,a.strategy=o,a.method=t,Fpe(n)},art=(n,e)=>Bpe(n,e,yO,Uot,jot,Vot),lrt=(n,e)=>{if(sI(n)||e>Sie||e<0)return n?Ov(n,wh):wh;const t=n.state;if(!n.output||n.avail_in!==0&&!n.input||t.status===$S&&e!==Uc)return Ov(n,n.avail_out===0?N3:wh);const i=t.last_flush;if(t.last_flush=e,t.pending!==0){if(Hl(n),n.avail_out===0)return t.last_flush=-1,wr}else if(n.avail_in===0&&Lie(e)<=Lie(i)&&e!==Uc)return Ov(n,N3);if(t.status===$S&&n.avail_in!==0)return Ov(n,N3);if(t.status===vw&&t.wrap===0&&(t.status=Pv),t.status===vw){let s=yO+(t.w_bits-8<<4)<<8,o=-1;if(t.strategy>=KT||t.level<2?o=0:t.level<6?o=1:t.level===6?o=2:o=3,s|=o<<6,t.strstart!==0&&(s|=Qot),s+=31-s%31,rS(t,s),t.strstart!==0&&(rS(t,n.adler>>>16),rS(t,n.adler&65535)),n.adler=1,t.status=Pv,Hl(n),t.pending!==0)return t.last_flush=-1,wr}if(t.status===rj){if(n.adler=0,Fn(t,31),Fn(t,139),Fn(t,8),t.gzhead)Fn(t,(t.gzhead.text?1:0)+(t.gzhead.hcrc?2:0)+(t.gzhead.extra?4:0)+(t.gzhead.name?8:0)+(t.gzhead.comment?16:0)),Fn(t,t.gzhead.time&255),Fn(t,t.gzhead.time>>8&255),Fn(t,t.gzhead.time>>16&255),Fn(t,t.gzhead.time>>24&255),Fn(t,t.level===9?2:t.strategy>=KT||t.level<2?4:0),Fn(t,t.gzhead.os&255),t.gzhead.extra&&t.gzhead.extra.length&&(Fn(t,t.gzhead.extra.length&255),Fn(t,t.gzhead.extra.length>>8&255)),t.gzhead.hcrc&&(n.adler=cr(n.adler,t.pending_buf,t.pending,0)),t.gzindex=0,t.status=kH;else if(Fn(t,0),Fn(t,0),Fn(t,0),Fn(t,0),Fn(t,0),Fn(t,t.level===9?2:t.strategy>=KT||t.level<2?4:0),Fn(t,Jot),t.status=Pv,Hl(n),t.pending!==0)return t.last_flush=-1,wr}if(t.status===kH){if(t.gzhead.extra){let s=t.pending,o=(t.gzhead.extra.length&65535)-t.gzindex;for(;t.pending+o>t.pending_buf_size;){let a=t.pending_buf_size-t.pending;if(t.pending_buf.set(t.gzhead.extra.subarray(t.gzindex,t.gzindex+a),t.pending),t.pending=t.pending_buf_size,t.gzhead.hcrc&&t.pending>s&&(n.adler=cr(n.adler,t.pending_buf,t.pending-s,s)),t.gzindex+=a,Hl(n),t.pending!==0)return t.last_flush=-1,wr;s=0,o-=a}let r=new Uint8Array(t.gzhead.extra);t.pending_buf.set(r.subarray(t.gzindex,t.gzindex+o),t.pending),t.pending+=o,t.gzhead.hcrc&&t.pending>s&&(n.adler=cr(n.adler,t.pending_buf,t.pending-s,s)),t.gzindex=0}t.status=DH}if(t.status===DH){if(t.gzhead.name){let s=t.pending,o;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>s&&(n.adler=cr(n.adler,t.pending_buf,t.pending-s,s)),Hl(n),t.pending!==0)return t.last_flush=-1,wr;s=0}t.gzindex<t.gzhead.name.length?o=t.gzhead.name.charCodeAt(t.gzindex++)&255:o=0,Fn(t,o)}while(o!==0);t.gzhead.hcrc&&t.pending>s&&(n.adler=cr(n.adler,t.pending_buf,t.pending-s,s)),t.gzindex=0}t.status=IH}if(t.status===IH){if(t.gzhead.comment){let s=t.pending,o;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>s&&(n.adler=cr(n.adler,t.pending_buf,t.pending-s,s)),Hl(n),t.pending!==0)return t.last_flush=-1,wr;s=0}t.gzindex<t.gzhead.comment.length?o=t.gzhead.comment.charCodeAt(t.gzindex++)&255:o=0,Fn(t,o)}while(o!==0);t.gzhead.hcrc&&t.pending>s&&(n.adler=cr(n.adler,t.pending_buf,t.pending-s,s))}t.status=EH}if(t.status===EH){if(t.gzhead.hcrc){if(t.pending+2>t.pending_buf_size&&(Hl(n),t.pending!==0))return t.last_flush=-1,wr;Fn(t,n.adler&255),Fn(t,n.adler>>8&255),n.adler=0}if(t.status=Pv,Hl(n),t.pending!==0)return t.last_flush=-1,wr}if(n.avail_in!==0||t.lookahead!==0||e!==xm&&t.status!==$S){let s=t.level===0?Ppe(t,e):t.strategy===KT?nrt(t,e):t.strategy===Wot?irt(t,e):US[t.level].func(t,e);if((s===z0||s===ny)&&(t.status=$S),s===Ea||s===z0)return n.avail_out===0&&(t.last_flush=-1),wr;if(s===iy&&(e===Mot?Rot(t):e!==Sie&&(xH(t,0,0,!1),e===Pot&&(Wp(t.head),t.lookahead===0&&(t.strstart=0,t.block_start=0,t.insert=0))),Hl(n),n.avail_out===0))return t.last_flush=-1,wr}return e!==Uc?wr:t.wrap<=0?xie:(t.wrap===2?(Fn(t,n.adler&255),Fn(t,n.adler>>8&255),Fn(t,n.adler>>16&255),Fn(t,n.adler>>24&255),Fn(t,n.total_in&255),Fn(t,n.total_in>>8&255),Fn(t,n.total_in>>16&255),Fn(t,n.total_in>>24&255)):(rS(t,n.adler>>>16),rS(t,n.adler&65535)),Hl(n),t.wrap>0&&(t.wrap=-t.wrap),t.pending!==0?wr:xie)},crt=n=>{if(sI(n))return wh;const e=n.state.status;return n.state=null,e===Pv?Ov(n,Oot):wr},drt=(n,e)=>{let t=e.length;if(sI(n))return wh;const i=n.state,s=i.wrap;if(s===2||s===1&&i.status!==vw||i.lookahead)return wh;if(s===1&&(n.adler=$k(n.adler,e,t,0)),i.wrap=0,t>=i.w_size){s===0&&(Wp(i.head),i.strstart=0,i.block_start=0,i.insert=0);let l=new Uint8Array(i.w_size);l.set(e.subarray(t-i.w_size,t),0),e=l,t=i.w_size}const o=n.avail_in,r=n.next_in,a=n.input;for(n.avail_in=t,n.next_in=0,n.input=e,bw(i);i.lookahead>=bn;){let l=i.strstart,c=i.lookahead-(bn-1);do i.ins_h=Lm(i,i.ins_h,i.window[l+bn-1]),i.prev[l&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=l,l++;while(--c);i.strstart=l,i.lookahead=bn-1,bw(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=bn-1,i.match_available=0,n.next_in=r,n.input=a,n.avail_in=o,i.wrap=s,wr};var urt=art,hrt=Bpe,frt=Fpe,grt=Ope,prt=rrt,mrt=lrt,_rt=crt,vrt=drt,brt=\"pako deflate (from Nodeca project)\",Hx={deflateInit:urt,deflateInit2:hrt,deflateReset:frt,deflateResetKeep:grt,deflateSetHeader:prt,deflate:mrt,deflateEnd:_rt,deflateSetDictionary:vrt,deflateInfo:brt};const Crt=(n,e)=>Object.prototype.hasOwnProperty.call(n,e);var wrt=function(n){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const t=e.shift();if(t){if(typeof t!=\"object\")throw new TypeError(t+\"must be non-object\");for(const i in t)Crt(t,i)&&(n[i]=t[i])}}return n},yrt=n=>{let e=0;for(let i=0,s=n.length;i<s;i++)e+=n[i].length;const t=new Uint8Array(e);for(let i=0,s=0,o=n.length;i<o;i++){let r=n[i];t.set(r,s),s+=r.length}return t},SO={assign:wrt,flattenChunks:yrt};let Wpe=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{Wpe=!1}const Uk=new Uint8Array(256);for(let n=0;n<256;n++)Uk[n]=n>=252?6:n>=248?5:n>=240?4:n>=224?3:n>=192?2:1;Uk[254]=Uk[254]=1;var Srt=n=>{if(typeof TextEncoder==\"function\"&&TextEncoder.prototype.encode)return new TextEncoder().encode(n);let e,t,i,s,o,r=n.length,a=0;for(s=0;s<r;s++)t=n.charCodeAt(s),(t&64512)===55296&&s+1<r&&(i=n.charCodeAt(s+1),(i&64512)===56320&&(t=65536+(t-55296<<10)+(i-56320),s++)),a+=t<128?1:t<2048?2:t<65536?3:4;for(e=new Uint8Array(a),o=0,s=0;o<a;s++)t=n.charCodeAt(s),(t&64512)===55296&&s+1<r&&(i=n.charCodeAt(s+1),(i&64512)===56320&&(t=65536+(t-55296<<10)+(i-56320),s++)),t<128?e[o++]=t:t<2048?(e[o++]=192|t>>>6,e[o++]=128|t&63):t<65536?(e[o++]=224|t>>>12,e[o++]=128|t>>>6&63,e[o++]=128|t&63):(e[o++]=240|t>>>18,e[o++]=128|t>>>12&63,e[o++]=128|t>>>6&63,e[o++]=128|t&63);return e};const xrt=(n,e)=>{if(e<65534&&n.subarray&&Wpe)return String.fromCharCode.apply(null,n.length===e?n:n.subarray(0,e));let t=\"\";for(let i=0;i<e;i++)t+=String.fromCharCode(n[i]);return t};var Lrt=(n,e)=>{const t=e||n.length;if(typeof TextDecoder==\"function\"&&TextDecoder.prototype.decode)return new TextDecoder().decode(n.subarray(0,e));let i,s;const o=new Array(t*2);for(s=0,i=0;i<t;){let r=n[i++];if(r<128){o[s++]=r;continue}let a=Uk[r];if(a>4){o[s++]=65533,i+=a-1;continue}for(r&=a===2?31:a===3?15:7;a>1&&i<t;)r=r<<6|n[i++]&63,a--;if(a>1){o[s++]=65533;continue}r<65536?o[s++]=r:(r-=65536,o[s++]=55296|r>>10&1023,o[s++]=56320|r&1023)}return xrt(o,s)},krt=(n,e)=>{e=e||n.length,e>n.length&&(e=n.length);let t=e-1;for(;t>=0&&(n[t]&192)===128;)t--;return t<0||t===0?e:t+Uk[n[t]]>e?t:e},jk={string2buf:Srt,buf2string:Lrt,utf8border:krt};function Drt(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}var Hpe=Drt;const Vpe=Object.prototype.toString,{Z_NO_FLUSH:Irt,Z_SYNC_FLUSH:Ert,Z_FULL_FLUSH:Trt,Z_FINISH:Nrt,Z_OK:AR,Z_STREAM_END:Art,Z_DEFAULT_COMPRESSION:Rrt,Z_DEFAULT_STRATEGY:Mrt,Z_DEFLATED:Prt}=nI;function oI(n){this.options=SO.assign({level:Rrt,method:Prt,chunkSize:16384,windowBits:15,memLevel:8,strategy:Mrt},n||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new Hpe,this.strm.avail_out=0;let t=Hx.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(t!==AR)throw new Error(V0[t]);if(e.header&&Hx.deflateSetHeader(this.strm,e.header),e.dictionary){let i;if(typeof e.dictionary==\"string\"?i=jk.string2buf(e.dictionary):Vpe.call(e.dictionary)===\"[object ArrayBuffer]\"?i=new Uint8Array(e.dictionary):i=e.dictionary,t=Hx.deflateSetDictionary(this.strm,i),t!==AR)throw new Error(V0[t]);this._dict_set=!0}}oI.prototype.push=function(n,e){const t=this.strm,i=this.options.chunkSize;let s,o;if(this.ended)return!1;for(e===~~e?o=e:o=e===!0?Nrt:Irt,typeof n==\"string\"?t.input=jk.string2buf(n):Vpe.call(n)===\"[object ArrayBuffer]\"?t.input=new Uint8Array(n):t.input=n,t.next_in=0,t.avail_in=t.input.length;;){if(t.avail_out===0&&(t.output=new Uint8Array(i),t.next_out=0,t.avail_out=i),(o===Ert||o===Trt)&&t.avail_out<=6){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(s=Hx.deflate(t,o),s===Art)return t.next_out>0&&this.onData(t.output.subarray(0,t.next_out)),s=Hx.deflateEnd(this.strm),this.onEnd(s),this.ended=!0,s===AR;if(t.avail_out===0){this.onData(t.output);continue}if(o>0&&t.next_out>0){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(t.avail_in===0)break}return!0};oI.prototype.onData=function(n){this.chunks.push(n)};oI.prototype.onEnd=function(n){n===AR&&(this.result=SO.flattenChunks(this.chunks)),this.chunks=[],this.err=n,this.msg=this.strm.msg};function aj(n,e){const t=new oI(e);if(t.push(n,!0),t.err)throw t.msg||V0[t.err];return t.result}function Ort(n,e){return e=e||{},e.raw=!0,aj(n,e)}function Frt(n,e){return e=e||{},e.gzip=!0,aj(n,e)}var Brt=oI,Wrt=aj,Hrt=Ort,Vrt=Frt,zrt={Deflate:Brt,deflate:Wrt,deflateRaw:Hrt,gzip:Vrt};const qT=16209,$rt=16191;var Urt=function(e,t){let i,s,o,r,a,l,c,d,u,h,f,g,p,_,b,w,y,S,x,k,D,I,N,P;const O=e.state;i=e.next_in,N=e.input,s=i+(e.avail_in-5),o=e.next_out,P=e.output,r=o-(t-e.avail_out),a=o+(e.avail_out-257),l=O.dmax,c=O.wsize,d=O.whave,u=O.wnext,h=O.window,f=O.hold,g=O.bits,p=O.lencode,_=O.distcode,b=(1<<O.lenbits)-1,w=(1<<O.distbits)-1;e:do{g<15&&(f+=N[i++]<<g,g+=8,f+=N[i++]<<g,g+=8),y=p[f&b];t:for(;;){if(S=y>>>24,f>>>=S,g-=S,S=y>>>16&255,S===0)P[o++]=y&65535;else if(S&16){x=y&65535,S&=15,S&&(g<S&&(f+=N[i++]<<g,g+=8),x+=f&(1<<S)-1,f>>>=S,g-=S),g<15&&(f+=N[i++]<<g,g+=8,f+=N[i++]<<g,g+=8),y=_[f&w];i:for(;;){if(S=y>>>24,f>>>=S,g-=S,S=y>>>16&255,S&16){if(k=y&65535,S&=15,g<S&&(f+=N[i++]<<g,g+=8,g<S&&(f+=N[i++]<<g,g+=8)),k+=f&(1<<S)-1,k>l){e.msg=\"invalid distance too far back\",O.mode=qT;break e}if(f>>>=S,g-=S,S=o-r,k>S){if(S=k-S,S>d&&O.sane){e.msg=\"invalid distance too far back\",O.mode=qT;break e}if(D=0,I=h,u===0){if(D+=c-S,S<x){x-=S;do P[o++]=h[D++];while(--S);D=o-k,I=P}}else if(u<S){if(D+=c+u-S,S-=u,S<x){x-=S;do P[o++]=h[D++];while(--S);if(D=0,u<x){S=u,x-=S;do P[o++]=h[D++];while(--S);D=o-k,I=P}}}else if(D+=u-S,S<x){x-=S;do P[o++]=h[D++];while(--S);D=o-k,I=P}for(;x>2;)P[o++]=I[D++],P[o++]=I[D++],P[o++]=I[D++],x-=3;x&&(P[o++]=I[D++],x>1&&(P[o++]=I[D++]))}else{D=o-k;do P[o++]=P[D++],P[o++]=P[D++],P[o++]=P[D++],x-=3;while(x>2);x&&(P[o++]=P[D++],x>1&&(P[o++]=P[D++]))}}else if(S&64){e.msg=\"invalid distance code\",O.mode=qT;break e}else{y=_[(y&65535)+(f&(1<<S)-1)];continue i}break}}else if(S&64)if(S&32){O.mode=$rt;break e}else{e.msg=\"invalid literal/length code\",O.mode=qT;break e}else{y=p[(y&65535)+(f&(1<<S)-1)];continue t}break}}while(i<s&&o<a);x=g>>3,i-=x,g-=x<<3,f&=(1<<g)-1,e.next_in=i,e.next_out=o,e.avail_in=i<s?5+(s-i):5-(i-s),e.avail_out=o<a?257+(a-o):257-(o-a),O.hold=f,O.bits=g};const Jb=15,kie=852,Die=592,Iie=0,R3=1,Eie=2,jrt=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),Krt=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),qrt=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),Grt=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),Zrt=(n,e,t,i,s,o,r,a)=>{const l=a.bits;let c=0,d=0,u=0,h=0,f=0,g=0,p=0,_=0,b=0,w=0,y,S,x,k,D,I=null,N;const P=new Uint16Array(Jb+1),O=new Uint16Array(Jb+1);let M=null,z,K,ae;for(c=0;c<=Jb;c++)P[c]=0;for(d=0;d<i;d++)P[e[t+d]]++;for(f=l,h=Jb;h>=1&&P[h]===0;h--);if(f>h&&(f=h),h===0)return s[o++]=1<<24|64<<16|0,s[o++]=1<<24|64<<16|0,a.bits=1,0;for(u=1;u<h&&P[u]===0;u++);for(f<u&&(f=u),_=1,c=1;c<=Jb;c++)if(_<<=1,_-=P[c],_<0)return-1;if(_>0&&(n===Iie||h!==1))return-1;for(O[1]=0,c=1;c<Jb;c++)O[c+1]=O[c]+P[c];for(d=0;d<i;d++)e[t+d]!==0&&(r[O[e[t+d]]++]=d);if(n===Iie?(I=M=r,N=20):n===R3?(I=jrt,M=Krt,N=257):(I=qrt,M=Grt,N=0),w=0,d=0,c=u,D=o,g=f,p=0,x=-1,b=1<<f,k=b-1,n===R3&&b>kie||n===Eie&&b>Die)return 1;for(;;){z=c-p,r[d]+1<N?(K=0,ae=r[d]):r[d]>=N?(K=M[r[d]-N],ae=I[r[d]-N]):(K=96,ae=0),y=1<<c-p,S=1<<g,u=S;do S-=y,s[D+(w>>p)+S]=z<<24|K<<16|ae|0;while(S!==0);for(y=1<<c-1;w&y;)y>>=1;if(y!==0?(w&=y-1,w+=y):w=0,d++,--P[c]===0){if(c===h)break;c=e[t+r[d]]}if(c>f&&(w&k)!==x){for(p===0&&(p=f),D+=u,g=c-p,_=1<<g;g+p<h&&(_-=P[g+p],!(_<=0));)g++,_<<=1;if(b+=1<<g,n===R3&&b>kie||n===Eie&&b>Die)return 1;x=w&k,s[x]=f<<24|g<<16|D-o|0}}return w!==0&&(s[D+w]=c-p<<24|64<<16|0),a.bits=f,0};var Vx=Zrt;const Yrt=0,zpe=1,$pe=2,{Z_FINISH:Tie,Z_BLOCK:Xrt,Z_TREES:GT,Z_OK:$0,Z_STREAM_END:Qrt,Z_NEED_DICT:Jrt,Z_STREAM_ERROR:rd,Z_DATA_ERROR:Upe,Z_MEM_ERROR:jpe,Z_BUF_ERROR:eat,Z_DEFLATED:Nie}=nI,xO=16180,Aie=16181,Rie=16182,Mie=16183,Pie=16184,Oie=16185,Fie=16186,Bie=16187,Wie=16188,Hie=16189,RR=16190,vf=16191,M3=16192,Vie=16193,P3=16194,zie=16195,$ie=16196,Uie=16197,jie=16198,ZT=16199,YT=16200,Kie=16201,qie=16202,Gie=16203,Zie=16204,Yie=16205,O3=16206,Xie=16207,Qie=16208,Bs=16209,Kpe=16210,qpe=16211,tat=852,iat=592,nat=15,sat=nat,Jie=n=>(n>>>24&255)+(n>>>8&65280)+((n&65280)<<8)+((n&255)<<24);function oat(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const db=n=>{if(!n)return 1;const e=n.state;return!e||e.strm!==n||e.mode<xO||e.mode>qpe?1:0},Gpe=n=>{if(db(n))return rd;const e=n.state;return n.total_in=n.total_out=e.total=0,n.msg=\"\",e.wrap&&(n.adler=e.wrap&1),e.mode=xO,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(tat),e.distcode=e.distdyn=new Int32Array(iat),e.sane=1,e.back=-1,$0},Zpe=n=>{if(db(n))return rd;const e=n.state;return e.wsize=0,e.whave=0,e.wnext=0,Gpe(n)},Ype=(n,e)=>{let t;if(db(n))return rd;const i=n.state;return e<0?(t=0,e=-e):(t=(e>>4)+5,e<48&&(e&=15)),e&&(e<8||e>15)?rd:(i.window!==null&&i.wbits!==e&&(i.window=null),i.wrap=t,i.wbits=e,Zpe(n))},Xpe=(n,e)=>{if(!n)return rd;const t=new oat;n.state=t,t.strm=n,t.window=null,t.mode=xO;const i=Ype(n,e);return i!==$0&&(n.state=null),i},rat=n=>Xpe(n,sat);let ene=!0,F3,B3;const aat=n=>{if(ene){F3=new Int32Array(512),B3=new Int32Array(32);let e=0;for(;e<144;)n.lens[e++]=8;for(;e<256;)n.lens[e++]=9;for(;e<280;)n.lens[e++]=7;for(;e<288;)n.lens[e++]=8;for(Vx(zpe,n.lens,0,288,F3,0,n.work,{bits:9}),e=0;e<32;)n.lens[e++]=5;Vx($pe,n.lens,0,32,B3,0,n.work,{bits:5}),ene=!1}n.lencode=F3,n.lenbits=9,n.distcode=B3,n.distbits=5},Qpe=(n,e,t,i)=>{let s;const o=n.state;return o.window===null&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new Uint8Array(o.wsize)),i>=o.wsize?(o.window.set(e.subarray(t-o.wsize,t),0),o.wnext=0,o.whave=o.wsize):(s=o.wsize-o.wnext,s>i&&(s=i),o.window.set(e.subarray(t-i,t-i+s),o.wnext),i-=s,i?(o.window.set(e.subarray(t-i,t),0),o.wnext=i,o.whave=o.wsize):(o.wnext+=s,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=s))),0},lat=(n,e)=>{let t,i,s,o,r,a,l,c,d,u,h,f,g,p,_=0,b,w,y,S,x,k,D,I;const N=new Uint8Array(4);let P,O;const M=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(db(n)||!n.output||!n.input&&n.avail_in!==0)return rd;t=n.state,t.mode===vf&&(t.mode=M3),r=n.next_out,s=n.output,l=n.avail_out,o=n.next_in,i=n.input,a=n.avail_in,c=t.hold,d=t.bits,u=a,h=l,I=$0;e:for(;;)switch(t.mode){case xO:if(t.wrap===0){t.mode=M3;break}for(;d<16;){if(a===0)break e;a--,c+=i[o++]<<d,d+=8}if(t.wrap&2&&c===35615){t.wbits===0&&(t.wbits=15),t.check=0,N[0]=c&255,N[1]=c>>>8&255,t.check=cr(t.check,N,2,0),c=0,d=0,t.mode=Aie;break}if(t.head&&(t.head.done=!1),!(t.wrap&1)||(((c&255)<<8)+(c>>8))%31){n.msg=\"incorrect header check\",t.mode=Bs;break}if((c&15)!==Nie){n.msg=\"unknown compression method\",t.mode=Bs;break}if(c>>>=4,d-=4,D=(c&15)+8,t.wbits===0&&(t.wbits=D),D>15||D>t.wbits){n.msg=\"invalid window size\",t.mode=Bs;break}t.dmax=1<<t.wbits,t.flags=0,n.adler=t.check=1,t.mode=c&512?Hie:vf,c=0,d=0;break;case Aie:for(;d<16;){if(a===0)break e;a--,c+=i[o++]<<d,d+=8}if(t.flags=c,(t.flags&255)!==Nie){n.msg=\"unknown compression method\",t.mode=Bs;break}if(t.flags&57344){n.msg=\"unknown header flags set\",t.mode=Bs;break}t.head&&(t.head.text=c>>8&1),t.flags&512&&t.wrap&4&&(N[0]=c&255,N[1]=c>>>8&255,t.check=cr(t.check,N,2,0)),c=0,d=0,t.mode=Rie;case Rie:for(;d<32;){if(a===0)break e;a--,c+=i[o++]<<d,d+=8}t.head&&(t.head.time=c),t.flags&512&&t.wrap&4&&(N[0]=c&255,N[1]=c>>>8&255,N[2]=c>>>16&255,N[3]=c>>>24&255,t.check=cr(t.check,N,4,0)),c=0,d=0,t.mode=Mie;case Mie:for(;d<16;){if(a===0)break e;a--,c+=i[o++]<<d,d+=8}t.head&&(t.head.xflags=c&255,t.head.os=c>>8),t.flags&512&&t.wrap&4&&(N[0]=c&255,N[1]=c>>>8&255,t.check=cr(t.check,N,2,0)),c=0,d=0,t.mode=Pie;case Pie:if(t.flags&1024){for(;d<16;){if(a===0)break e;a--,c+=i[o++]<<d,d+=8}t.length=c,t.head&&(t.head.extra_len=c),t.flags&512&&t.wrap&4&&(N[0]=c&255,N[1]=c>>>8&255,t.check=cr(t.check,N,2,0)),c=0,d=0}else t.head&&(t.head.extra=null);t.mode=Oie;case Oie:if(t.flags&1024&&(f=t.length,f>a&&(f=a),f&&(t.head&&(D=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(i.subarray(o,o+f),D)),t.flags&512&&t.wrap&4&&(t.check=cr(t.check,i,f,o)),a-=f,o+=f,t.length-=f),t.length))break e;t.length=0,t.mode=Fie;case Fie:if(t.flags&2048){if(a===0)break e;f=0;do D=i[o+f++],t.head&&D&&t.length<65536&&(t.head.name+=String.fromCharCode(D));while(D&&f<a);if(t.flags&512&&t.wrap&4&&(t.check=cr(t.check,i,f,o)),a-=f,o+=f,D)break e}else t.head&&(t.head.name=null);t.length=0,t.mode=Bie;case Bie:if(t.flags&4096){if(a===0)break e;f=0;do D=i[o+f++],t.head&&D&&t.length<65536&&(t.head.comment+=String.fromCharCode(D));while(D&&f<a);if(t.flags&512&&t.wrap&4&&(t.check=cr(t.check,i,f,o)),a-=f,o+=f,D)break e}else t.head&&(t.head.comment=null);t.mode=Wie;case Wie:if(t.flags&512){for(;d<16;){if(a===0)break e;a--,c+=i[o++]<<d,d+=8}if(t.wrap&4&&c!==(t.check&65535)){n.msg=\"header crc mismatch\",t.mode=Bs;break}c=0,d=0}t.head&&(t.head.hcrc=t.flags>>9&1,t.head.done=!0),n.adler=t.check=0,t.mode=vf;break;case Hie:for(;d<32;){if(a===0)break e;a--,c+=i[o++]<<d,d+=8}n.adler=t.check=Jie(c),c=0,d=0,t.mode=RR;case RR:if(t.havedict===0)return n.next_out=r,n.avail_out=l,n.next_in=o,n.avail_in=a,t.hold=c,t.bits=d,Jrt;n.adler=t.check=1,t.mode=vf;case vf:if(e===Xrt||e===GT)break e;case M3:if(t.last){c>>>=d&7,d-=d&7,t.mode=O3;break}for(;d<3;){if(a===0)break e;a--,c+=i[o++]<<d,d+=8}switch(t.last=c&1,c>>>=1,d-=1,c&3){case 0:t.mode=Vie;break;case 1:if(aat(t),t.mode=ZT,e===GT){c>>>=2,d-=2;break e}break;case 2:t.mode=$ie;break;case 3:n.msg=\"invalid block type\",t.mode=Bs}c>>>=2,d-=2;break;case Vie:for(c>>>=d&7,d-=d&7;d<32;){if(a===0)break e;a--,c+=i[o++]<<d,d+=8}if((c&65535)!==(c>>>16^65535)){n.msg=\"invalid stored block lengths\",t.mode=Bs;break}if(t.length=c&65535,c=0,d=0,t.mode=P3,e===GT)break e;case P3:t.mode=zie;case zie:if(f=t.length,f){if(f>a&&(f=a),f>l&&(f=l),f===0)break e;s.set(i.subarray(o,o+f),r),a-=f,o+=f,l-=f,r+=f,t.length-=f;break}t.mode=vf;break;case $ie:for(;d<14;){if(a===0)break e;a--,c+=i[o++]<<d,d+=8}if(t.nlen=(c&31)+257,c>>>=5,d-=5,t.ndist=(c&31)+1,c>>>=5,d-=5,t.ncode=(c&15)+4,c>>>=4,d-=4,t.nlen>286||t.ndist>30){n.msg=\"too many length or distance symbols\",t.mode=Bs;break}t.have=0,t.mode=Uie;case Uie:for(;t.have<t.ncode;){for(;d<3;){if(a===0)break e;a--,c+=i[o++]<<d,d+=8}t.lens[M[t.have++]]=c&7,c>>>=3,d-=3}for(;t.have<19;)t.lens[M[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,P={bits:t.lenbits},I=Vx(Yrt,t.lens,0,19,t.lencode,0,t.work,P),t.lenbits=P.bits,I){n.msg=\"invalid code lengths set\",t.mode=Bs;break}t.have=0,t.mode=jie;case jie:for(;t.have<t.nlen+t.ndist;){for(;_=t.lencode[c&(1<<t.lenbits)-1],b=_>>>24,w=_>>>16&255,y=_&65535,!(b<=d);){if(a===0)break e;a--,c+=i[o++]<<d,d+=8}if(y<16)c>>>=b,d-=b,t.lens[t.have++]=y;else{if(y===16){for(O=b+2;d<O;){if(a===0)break e;a--,c+=i[o++]<<d,d+=8}if(c>>>=b,d-=b,t.have===0){n.msg=\"invalid bit length repeat\",t.mode=Bs;break}D=t.lens[t.have-1],f=3+(c&3),c>>>=2,d-=2}else if(y===17){for(O=b+3;d<O;){if(a===0)break e;a--,c+=i[o++]<<d,d+=8}c>>>=b,d-=b,D=0,f=3+(c&7),c>>>=3,d-=3}else{for(O=b+7;d<O;){if(a===0)break e;a--,c+=i[o++]<<d,d+=8}c>>>=b,d-=b,D=0,f=11+(c&127),c>>>=7,d-=7}if(t.have+f>t.nlen+t.ndist){n.msg=\"invalid bit length repeat\",t.mode=Bs;break}for(;f--;)t.lens[t.have++]=D}}if(t.mode===Bs)break;if(t.lens[256]===0){n.msg=\"invalid code -- missing end-of-block\",t.mode=Bs;break}if(t.lenbits=9,P={bits:t.lenbits},I=Vx(zpe,t.lens,0,t.nlen,t.lencode,0,t.work,P),t.lenbits=P.bits,I){n.msg=\"invalid literal/lengths set\",t.mode=Bs;break}if(t.distbits=6,t.distcode=t.distdyn,P={bits:t.distbits},I=Vx($pe,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,P),t.distbits=P.bits,I){n.msg=\"invalid distances set\",t.mode=Bs;break}if(t.mode=ZT,e===GT)break e;case ZT:t.mode=YT;case YT:if(a>=6&&l>=258){n.next_out=r,n.avail_out=l,n.next_in=o,n.avail_in=a,t.hold=c,t.bits=d,Urt(n,h),r=n.next_out,s=n.output,l=n.avail_out,o=n.next_in,i=n.input,a=n.avail_in,c=t.hold,d=t.bits,t.mode===vf&&(t.back=-1);break}for(t.back=0;_=t.lencode[c&(1<<t.lenbits)-1],b=_>>>24,w=_>>>16&255,y=_&65535,!(b<=d);){if(a===0)break e;a--,c+=i[o++]<<d,d+=8}if(w&&!(w&240)){for(S=b,x=w,k=y;_=t.lencode[k+((c&(1<<S+x)-1)>>S)],b=_>>>24,w=_>>>16&255,y=_&65535,!(S+b<=d);){if(a===0)break e;a--,c+=i[o++]<<d,d+=8}c>>>=S,d-=S,t.back+=S}if(c>>>=b,d-=b,t.back+=b,t.length=y,w===0){t.mode=Yie;break}if(w&32){t.back=-1,t.mode=vf;break}if(w&64){n.msg=\"invalid literal/length code\",t.mode=Bs;break}t.extra=w&15,t.mode=Kie;case Kie:if(t.extra){for(O=t.extra;d<O;){if(a===0)break e;a--,c+=i[o++]<<d,d+=8}t.length+=c&(1<<t.extra)-1,c>>>=t.extra,d-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=qie;case qie:for(;_=t.distcode[c&(1<<t.distbits)-1],b=_>>>24,w=_>>>16&255,y=_&65535,!(b<=d);){if(a===0)break e;a--,c+=i[o++]<<d,d+=8}if(!(w&240)){for(S=b,x=w,k=y;_=t.distcode[k+((c&(1<<S+x)-1)>>S)],b=_>>>24,w=_>>>16&255,y=_&65535,!(S+b<=d);){if(a===0)break e;a--,c+=i[o++]<<d,d+=8}c>>>=S,d-=S,t.back+=S}if(c>>>=b,d-=b,t.back+=b,w&64){n.msg=\"invalid distance code\",t.mode=Bs;break}t.offset=y,t.extra=w&15,t.mode=Gie;case Gie:if(t.extra){for(O=t.extra;d<O;){if(a===0)break e;a--,c+=i[o++]<<d,d+=8}t.offset+=c&(1<<t.extra)-1,c>>>=t.extra,d-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){n.msg=\"invalid distance too far back\",t.mode=Bs;break}t.mode=Zie;case Zie:if(l===0)break e;if(f=h-l,t.offset>f){if(f=t.offset-f,f>t.whave&&t.sane){n.msg=\"invalid distance too far back\",t.mode=Bs;break}f>t.wnext?(f-=t.wnext,g=t.wsize-f):g=t.wnext-f,f>t.length&&(f=t.length),p=t.window}else p=s,g=r-t.offset,f=t.length;f>l&&(f=l),l-=f,t.length-=f;do s[r++]=p[g++];while(--f);t.length===0&&(t.mode=YT);break;case Yie:if(l===0)break e;s[r++]=t.length,l--,t.mode=YT;break;case O3:if(t.wrap){for(;d<32;){if(a===0)break e;a--,c|=i[o++]<<d,d+=8}if(h-=l,n.total_out+=h,t.total+=h,t.wrap&4&&h&&(n.adler=t.check=t.flags?cr(t.check,s,h,r-h):$k(t.check,s,h,r-h)),h=l,t.wrap&4&&(t.flags?c:Jie(c))!==t.check){n.msg=\"incorrect data check\",t.mode=Bs;break}c=0,d=0}t.mode=Xie;case Xie:if(t.wrap&&t.flags){for(;d<32;){if(a===0)break e;a--,c+=i[o++]<<d,d+=8}if(t.wrap&4&&c!==(t.total&4294967295)){n.msg=\"incorrect length check\",t.mode=Bs;break}c=0,d=0}t.mode=Qie;case Qie:I=Qrt;break e;case Bs:I=Upe;break e;case Kpe:return jpe;case qpe:default:return rd}return n.next_out=r,n.avail_out=l,n.next_in=o,n.avail_in=a,t.hold=c,t.bits=d,(t.wsize||h!==n.avail_out&&t.mode<Bs&&(t.mode<O3||e!==Tie))&&Qpe(n,n.output,n.next_out,h-n.avail_out),u-=n.avail_in,h-=n.avail_out,n.total_in+=u,n.total_out+=h,t.total+=h,t.wrap&4&&h&&(n.adler=t.check=t.flags?cr(t.check,s,h,n.next_out-h):$k(t.check,s,h,n.next_out-h)),n.data_type=t.bits+(t.last?64:0)+(t.mode===vf?128:0)+(t.mode===ZT||t.mode===P3?256:0),(u===0&&h===0||e===Tie)&&I===$0&&(I=eat),I},cat=n=>{if(db(n))return rd;let e=n.state;return e.window&&(e.window=null),n.state=null,$0},dat=(n,e)=>{if(db(n))return rd;const t=n.state;return t.wrap&2?(t.head=e,e.done=!1,$0):rd},uat=(n,e)=>{const t=e.length;let i,s,o;return db(n)||(i=n.state,i.wrap!==0&&i.mode!==RR)?rd:i.mode===RR&&(s=1,s=$k(s,e,t,0),s!==i.check)?Upe:(o=Qpe(n,e,t,t),o?(i.mode=Kpe,jpe):(i.havedict=1,$0))};var hat=Zpe,fat=Ype,gat=Gpe,pat=rat,mat=Xpe,_at=lat,vat=cat,bat=dat,Cat=uat,wat=\"pako inflate (from Nodeca project)\",Of={inflateReset:hat,inflateReset2:fat,inflateResetKeep:gat,inflateInit:pat,inflateInit2:mat,inflate:_at,inflateEnd:vat,inflateGetHeader:bat,inflateSetDictionary:Cat,inflateInfo:wat};function yat(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name=\"\",this.comment=\"\",this.hcrc=0,this.done=!1}var Sat=yat;const Jpe=Object.prototype.toString,{Z_NO_FLUSH:xat,Z_FINISH:Lat,Z_OK:Kk,Z_STREAM_END:W3,Z_NEED_DICT:H3,Z_STREAM_ERROR:kat,Z_DATA_ERROR:tne,Z_MEM_ERROR:Dat}=nI;function rI(n){this.options=SO.assign({chunkSize:1024*64,windowBits:15,to:\"\"},n||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,e.windowBits===0&&(e.windowBits=-15)),e.windowBits>=0&&e.windowBits<16&&!(n&&n.windowBits)&&(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(e.windowBits&15||(e.windowBits|=15)),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new Hpe,this.strm.avail_out=0;let t=Of.inflateInit2(this.strm,e.windowBits);if(t!==Kk)throw new Error(V0[t]);if(this.header=new Sat,Of.inflateGetHeader(this.strm,this.header),e.dictionary&&(typeof e.dictionary==\"string\"?e.dictionary=jk.string2buf(e.dictionary):Jpe.call(e.dictionary)===\"[object ArrayBuffer]\"&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(t=Of.inflateSetDictionary(this.strm,e.dictionary),t!==Kk)))throw new Error(V0[t])}rI.prototype.push=function(n,e){const t=this.strm,i=this.options.chunkSize,s=this.options.dictionary;let o,r,a;if(this.ended)return!1;for(e===~~e?r=e:r=e===!0?Lat:xat,Jpe.call(n)===\"[object ArrayBuffer]\"?t.input=new Uint8Array(n):t.input=n,t.next_in=0,t.avail_in=t.input.length;;){for(t.avail_out===0&&(t.output=new Uint8Array(i),t.next_out=0,t.avail_out=i),o=Of.inflate(t,r),o===H3&&s&&(o=Of.inflateSetDictionary(t,s),o===Kk?o=Of.inflate(t,r):o===tne&&(o=H3));t.avail_in>0&&o===W3&&t.state.wrap>0&&n[t.next_in]!==0;)Of.inflateReset(t),o=Of.inflate(t,r);switch(o){case kat:case tne:case H3:case Dat:return this.onEnd(o),this.ended=!0,!1}if(a=t.avail_out,t.next_out&&(t.avail_out===0||o===W3))if(this.options.to===\"string\"){let l=jk.utf8border(t.output,t.next_out),c=t.next_out-l,d=jk.buf2string(t.output,l);t.next_out=c,t.avail_out=i-c,c&&t.output.set(t.output.subarray(l,l+c),0),this.onData(d)}else this.onData(t.output.length===t.next_out?t.output:t.output.subarray(0,t.next_out));if(!(o===Kk&&a===0)){if(o===W3)return o=Of.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(t.avail_in===0)break}}return!0};rI.prototype.onData=function(n){this.chunks.push(n)};rI.prototype.onEnd=function(n){n===Kk&&(this.options.to===\"string\"?this.result=this.chunks.join(\"\"):this.result=SO.flattenChunks(this.chunks)),this.chunks=[],this.err=n,this.msg=this.strm.msg};function lj(n,e){const t=new rI(e);if(t.push(n),t.err)throw t.msg||V0[t.err];return t.result}function Iat(n,e){return e=e||{},e.raw=!0,lj(n,e)}var Eat=rI,Tat=lj,Nat=Iat,Aat=lj,Rat={Inflate:Eat,inflate:Tat,inflateRaw:Nat,ungzip:Aat};const{Deflate:Mat,deflate:Pat,deflateRaw:Oat,gzip:Fat}=zrt,{Inflate:Bat,inflate:Wat,inflateRaw:Hat,ungzip:Vat}=Rat;var zat=Mat,$at=Pat,Uat=Oat,jat=Fat,Kat=Bat,qat=Wat,Gat=Hat,Zat=Vat,Yat=nI,eme={Deflate:zat,deflate:$at,deflateRaw:Uat,gzip:jat,Inflate:Kat,inflate:qat,inflateRaw:Gat,ungzip:Zat,constants:Yat};const Wn={timestampToTime(n){const e=new Date(Number(n)),t=e.getUTCFullYear(),i=String(e.getUTCMonth()+1).padStart(2,\"0\"),s=String(e.getUTCDate()).padStart(2,\"0\");return`${t}-${i}-${s} ${e.toUTCString().slice(17,25)}`},timestampToTimeOnly(n){return`${new Date(Number(n)).toUTCString().slice(17,25)}`},timestampToDate(n){const e=new Date(Number(n)),t=e.getUTCFullYear(),i=String(e.getUTCMonth()+1).padStart(2,\"0\"),s=String(e.getUTCDate()).padStart(2,\"0\");return`${t}-${i}-${s}`},timestampToReadableDateTime(n){return new Date(n).toLocaleString(void 0,{month:\"short\",day:\"numeric\",hour:\"2-digit\",minute:\"2-digit\",hour12:!1})},currentTime(){return new Date().toISOString().slice(11,19)},secondsToHumanReadable(n){const e=Math.floor(n/3600),t=Math.floor((n-e*3600)/60),i=wt.round(n-e*3600-t*60,2);return`${e}h ${t}m ${i}s`},remainingTimeText(n){return Math.round(n)===0?\"Please wait...\":n>60?`${this.secondsToHumanReadable(n)} remaining...`:`${Math.round(n)} seconds remaining...`},roundPrice(n){return n>1?wt.round(n,2):n},colorBasedOnSide(n){return n===\"buy\"?\"text-green-600 dark:text-green-400\":n===\"sell\"?\"text-red-500 dark:text-red-400\":\"text-gray-900 dark:text-gray-200\"},colorBasedOnType(n){return n===\"long\"?\"text-green-600 dark:text-green-400\":n===\"short\"?\"text-red-500 dark:text-red-400\":\"text-gray-900 dark:text-gray-200\"},colorBasedOnNumber(n){return n>0?\"text-green-600 dark:text-green-400\":n<0?\"text-red-500 dark:text-red-400\":\"text-gray-900 dark:text-gray-200\"},decompressData(n){const e=Uint8Array.from(atob(n.data),t=>t.charCodeAt(0));return JSON.parse(eme.inflate(e,{to:\"string\"}))},async copyToClipboard(n){try{return await navigator.clipboard.writeText(n),{success:!0}}catch(e){console.error(\"Modern clipboard API failed:\",e);try{const t=document.createElement(\"textarea\");t.value=n,t.style.position=\"fixed\",t.style.opacity=\"0\",document.body.appendChild(t),t.focus(),t.select();const i=document.execCommand(\"copy\");return document.body.removeChild(t),i?{success:!0}:{success:!1,error:\"Clipboard copying failed with execCommand fallback\"}}catch{return{success:!1,error:\"All clipboard methods failed\"}}}},uuid(){return tot()}},Ws={candles:{},orders:{},lines:{},extraChartLines:{},horizontalLines:{},horizontalExtraLines:{}};async function cj(n){const{data:e,error:t}=await Ot(\"/tabs/list\",{module:n},!0);return t.value&&t.value.statusCode!==200?(Pt(t),[]):e.value.ids||[]}async function wv(n,e){const{data:t,error:i}=await Ot(\"/tabs/add\",{module:n,id:e},!0);return i.value&&i.value.statusCode!==200?(Pt(i),[]):t.value.ids||[]}async function qN(n,e){const{data:t,error:i}=await Ot(\"/tabs/remove\",{module:n,id:e},!0);return i.value&&i.value.statusCode!==200?(Pt(i),[]):t.value.ids||[]}async function Xat(n,e){const{data:t,error:i}=await Ot(\"/tabs/reorder\",{module:n,ids:e},!0);return i.value&&i.value.statusCode!==200?(Pt(i),[]):t.value.ids||[]}function bd(){return wt.cloneDeep({id:Wn.uuid(),form:{start_date:\"2024-01-01\",finish_date:\"2024-03-01\",debug_mode:!1,export_chart:!1,export_tradingview:!1,export_csv:!1,export_json:!1,fast_mode:!1,benchmark:!0,exchange:\"\",routes:[],data_routes:[]},results:{showResults:!1,executing:!1,logsModal:!1,progressbar:{current:0,estimated_remaining_seconds:0},routes_info:[],metrics:{},hyperparameters:[],generalInfo:{},infoLogs:\"\",exception:{error:\"\",traceback:\"\"},charts:{equity_curve:[]},selectedRoute:{},alert:{message:\"\",type:\"\"},info:[],trades:[]}})}const tme=d_(\"backtest\",{state:()=>({tabs:{},tabIds:[],recentlyClosedTabIds:[],recentlyClosedRedirectTargets:{},benchmarkColumns:[{key:\"strategy\",label:\"Strategy\"},{key:\"progress\",label:\"Progress\"},{key:\"start_date\",label:\"Start Date\"},{key:\"finish_date\",label:\"Finish Date\"},{key:\"exchange\",label:\"Exchange\"},{key:\"symbol\",label:\"Symbol\"},{key:\"timeframe\",label:\"Timeframe\"},{key:\"total_closed_trades\",label:\"Total Trades\"},{key:\"net_profit\",label:\"Net Profit\"},{key:\"net_profit_percentage\",label:\"Net Profit %\"},{key:\"max_drawdown\",label:\"Max Drawdown\"},{key:\"sharpe_ratio\",label:\"Sharpe Ratio\"},{key:\"sortino_ratio\",label:\"Sortino Ratio\"},{key:\"calmar_ratio\",label:\"Calmar Ratio\"},{key:\"omega_ratio\",label:\"Omega Ratio\"},{key:\"annual_return\",label:\"Annual Return\"},{key:\"total_paid_fees\",label:\"Total Paid Fees\"},{key:\"expectancy\",label:\"Expectancy\"},{key:\"ratio_avg_win_loss\",label:\"Ratio Avg Win Loss\"},{key:\"win_rate\",label:\"Win Rate\"},{key:\"longs_percentage\",label:\"Longs %\"},{key:\"shorts_percentage\",label:\"Shorts %\"},{key:\"average_holding_hours\",label:\"Average Holding Hours\"}],benchmarkFilters:[],benchmarkSorts:[{key:\"none\",label:\"None\"},{key:\"total_closed_trades\",label:\"Total Trades\"},{key:\"net_profit\",label:\"Net Profit\"},{key:\"net_profit_percentage\",label:\"Net Profit %\"},{key:\"sharpe_ratio\",label:\"Sharpe Ratio\"},{key:\"sortino_ratio\",label:\"Sortino Ratio\"},{key:\"calmar_ratio\",label:\"Calmar Ratio\"},{key:\"omega_ratio\",label:\"Omega Ratio\"},{key:\"annual_return\",label:\"Annual Return\"},{key:\"expectancy\",label:\"Expectancy\"},{key:\"ratio_avg_win_loss\",label:\"Ratio Avg Win Loss\"},{key:\"win_rate\",label:\"Win Rate\"}],benchmarkSelectedSort:{},missingCandlesErrors:{}}),persist:{storage:eL.localStorage,pick:[\"benchmarkColumns\",\"benchmarkFilters\",\"benchmarkSorts\",\"benchmarkSelectedSort\"]},actions:{markTabClosedRecently(n,e=\"\"){n&&(this.recentlyClosedTabIds.includes(n)||this.recentlyClosedTabIds.push(n),this.recentlyClosedRedirectTargets[n]=e,setTimeout(()=>{this.recentlyClosedTabIds=this.recentlyClosedTabIds.filter(t=>t!==n),delete this.recentlyClosedRedirectTargets[n]},2e3))},setBenchmarkFilters(n){this.benchmarkFilters=n},setBenchmarkSort(n){this.benchmarkSelectedSort=n},async init(){const n=await cj(\"backtest\");this.tabIds=n,await this.loadAllSessions()},async loadAllSessions(){var n,e,t,i,s,o,r,a,l,c,d,u;if(this.tabIds.length===0){const h=bd();this.tabs[h.id]=h,this.tabIds=[h.id],await this.saveStateDraft(h.id),await wv(\"backtest\",h.id);return}for(const h of this.tabIds)try{const{data:f,error:g}=await Ot(`/backtest/sessions/${h}`,{},!0);if(g.value){if(g.value.statusCode===404){this.tabs[h]=bd(),this.tabs[h].id=h;continue}Pt(g.value),this.tabs[h]=bd(),this.tabs[h].id=h;continue}if(!f.value){this.tabs[h]=bd(),this.tabs[h].id=h;continue}const p=(n=f.value)==null?void 0:n.session;if(!p){this.tabs[h]=bd(),this.tabs[h].id=h;continue}this.tabs[h]||(this.tabs[h]=bd(),this.tabs[h].id=h),this.tabs[h].form=((e=p.state)==null?void 0:e.form)||this.tabs[h].form;const _=!!(p.exception||p.traceback),b=p.status===\"finished\"&&!_,w=p.status===\"running\"||p.status===\"stopped\"||_;this.tabs[h].results={...this.tabs[h].results,showResults:b,executing:w,metrics:p.metrics||{},hyperparameters:p.hyperparameters||[],charts:{equity_curve:p.equity_curve||[]},trades:p.trades||[],exception:{error:p.exception||\"\",traceback:p.traceback||\"\"},info:((i=(t=p.state)==null?void 0:t.results)==null?void 0:i.info)||this.tabs[h].results.info,routes_info:((o=(s=p.state)==null?void 0:s.results)==null?void 0:o.routes_info)||this.tabs[h].results.routes_info,generalInfo:{...((a=(r=p.state)==null?void 0:r.results)==null?void 0:a.generalInfo)||this.tabs[h].results.generalInfo,title:p.title||null,description:p.description||null},alert:((c=(l=p.state)==null?void 0:l.results)==null?void 0:c.alert)||this.tabs[h].results.alert,selectedRoute:((u=(d=p.state)==null?void 0:d.results)==null?void 0:u.selectedRoute)||this.tabs[h].results.selectedRoute,progressbar:this.tabs[h].results.progressbar,infoLogs:this.tabs[h].results.infoLogs}}catch(f){console.error(`Error loading session ${h}:`,f),this.tabs[h]=bd(),this.tabs[h].id=h}},async saveStateDraft(n){const e=this.tabs[n];e&&await Ot(\"/backtest/update-state\",{id:n,state:{form:e.form,results:e.results}},!0)},async addTab(n){const e=bd();if(this.tabs[e.id]=e,this.tabIds.push(e.id),n){const t=this.tabs[n];e.form=JSON.parse(JSON.stringify(t.form))}await this.saveStateDraft(e.id),await wv(\"backtest\",e.id),await Vs(`/backtest/${e.id}`)},async closeTab(n,e){if(!this.tabs[n])return;if(Object.keys(this.tabs).length<=1){Lt(\"error\",\"Cannot close the last tab\");return}const i=this.tabIds,s=i.indexOf(n),o=s>0?i[s-1]:\"\",r=s>=0&&s+1<i.length?i[s+1]:\"\",a=e||\"\",l=a===`/backtest/${n}`,c=r||o;if(this.markTabClosedRecently(n,c),l&&(c&&this.tabs[c]?Vs(`/backtest/${c}`):Vs(\"/backtest\")),qN(\"backtest\",n),this.tabIds=this.tabIds.filter(d=>d!==n),delete Ws.orders[n],delete Ws.lines[n],delete Ws.candles[n],delete this.tabs[n],!(a===\"/backtest/benchmark\"||a===\"/backtest/history\")&&!l){if(r&&this.tabs[r]){Vs(`/backtest/${r}`);return}if(o&&this.tabs[o]){Vs(`/backtest/${o}`);return}Vs(\"/backtest\")}},async startInNewTab(n){const e=bd();e.form=wt.cloneDeep(this.tabs[n].form),this.tabs[e.id]=e,this.tabIds.push(e.id),this.start(e.id),await Vs(`/backtest/${e.id}`)},duplicateTab(n){const e=bd();e.form=wt.cloneDeep(this.tabs[n].form);const t=this.tabIds.indexOf(n);this.tabIds.splice(t+1,0,e.id);const i=this.tabIds,s={};for(const o of i)this.tabs[o]?s[o]=this.tabs[o]:s[o]=e;this.tabs=s},closeTabsFromCurrent(n){const e=this.tabIds.indexOf(n);if(e===-1)return;const t=this.tabIds.slice(e),i=e>0?this.tabIds[e-1]:\"\";this.tabIds=this.tabIds.slice(0,e);for(const s of t){const o=this.tabs[s];o&&o.results.executing&&!o.results.exception.error&&this.cancel(s),delete Ws.orders[s],delete Ws.lines[s],delete Ws.candles[s],delete this.tabs[s]}i&&this.tabs[i]?Vs(`/backtest/${i}`):Vs(\"/backtest\")},goToNextTab(n){const e=this.tabIds;if(e.length===0)return;let t=e.indexOf(n);t===-1&&(t=0);const i=(t+1)%e.length,s=e[i];s&&Vs(`/backtest/${s}`)},goToPrevTab(n){const e=this.tabIds;if(e.length===0)return;let t=e.indexOf(n);t===-1&&(t=0);const i=(t-1+e.length)%e.length,s=e[i];s&&Vs(`/backtest/${s}`)},async start(n){if(delete this.missingCandlesErrors[n],delete Ws.candles[n],delete Ws.orders[n],delete Ws.lines[n],delete Ws.extraChartLines[n],delete Ws.horizontalLines[n],delete Ws.horizontalExtraLines[n],this.tabs[n].results.progressbar.current=0,this.tabs[n].results.executing=!0,this.tabs[n].results.infoLogs=\"\",this.tabs[n].results.exception.traceback=\"\",this.tabs[n].results.exception.error=\"\",this.tabs[n].results.alert||(this.tabs[n].results.alert={message:\"\",type:\"\"}),this.tabs[n].results.alert.message=\"\",this.tabs[n].results.selectedRoute=this.tabs[n].form.routes[0],this.tabs[n].results.metrics={},this.tabs[n].form.fast_mode&&this.tabs[n].form.routes.length>1){Lt(\"error\",\"For the moment, the fast mode can only be used with one trading route\"),this.tabs[n].results.executing=!1;return}const{data:e,error:t}=await Ot(\"/backtest\",{id:n,exchange:this.tabs[n].form.exchange,routes:this.tabs[n].form.routes,data_routes:this.tabs[n].form.data_routes,config:pi().settings.backtest,start_date:this.tabs[n].form.start_date,finish_date:this.tabs[n].form.finish_date,debug_mode:this.tabs[n].form.debug_mode,export_csv:this.tabs[n].form.export_csv,export_chart:this.tabs[n].form.export_chart,export_tradingview:this.tabs[n].form.export_tradingview,export_json:this.tabs[n].form.export_json,fast_mode:this.tabs[n].form.fast_mode,benchmark:this.tabs[n].form.benchmark},!0);if(t.value&&t.value.statusCode!==200){ZR().path!==\"/backtest/benchmark\"&&Lt(\"error\",t.value.data.message),this.tabs[n].results.executing=!1;return}},async cancel(n){if(delete this.missingCandlesErrors[n],this.tabs[n].results.exception.error){this.tabs[n].results.executing=!1,this.tabs[n].results.exception.error=\"\";return}const{data:e,error:t}=await Ot(\"/backtest/cancel\",{id:n},!0);t.value&&t.value.statusCode!==200&&Lt(\"error\",t.value.data.message),this.tabs[n].results.executing=!1,await this.saveState(n)},rerun(n){this.tabs[n].results.showResults=!1,this.start(n)},rerunAll(){for(const n in this.tabs)this.tabs[n].results.executing&&!this.tabs[n].results.exception.error||this.rerun(n)},rerunFailed(){for(const n in this.tabs)this.tabs[n].results.exception.error&&this.rerun(n)},cancelAllRunning(){for(const n in this.tabs)this.tabs[n].results.executing&&this.cancel(n)},newBacktest(n){this.tabs[n].results.showResults=!1},candlesInfoEvent(n,e){const t=[[\"Period\",e.duration],[\"Starting Date\",Wn.timestampToDate(e.starting_time)],[\"Ending Date\",Wn.timestampToDate(e.finishing_time)],[\"Exchange\",e.exchange],[\"Exchange Type\",e.exchange_type]];e.exchange_type===\"futures\"&&(t.push([\"Leverage\",e.leverage]),t.push([\"Leverage Mode\",e.leverage_mode])),this.tabs[n].results.info=t},routesInfoEvent(n,e){const t=[];e.forEach(i=>{t.push([{value:i.symbol,style:\"\"},{value:i.timeframe,style:\"\"},{value:i.strategy_name,style:\"\"}])}),this.tabs[n].results.routes_info=t},progressbarEvent(n,e){this.tabs[n].results.progressbar=e},infoLogEvent(n,e){this.tabs[n].results.infoLogs+=`[${Wn.timestampToTime(e.timestamp)}] ${e.message}\n`},setInfoLogs(n,e){this.tabs[n].results.infoLogs=e},getInfoLogs(n){return this.tabs[n].results.infoLogs},exceptionEvent(n,e){this.tabs[n].results.exception.error=e.error,this.tabs[n].results.exception.traceback=e.traceback,this.saveState(n)},generalInfoEvent(n,e){this.tabs[n].results.generalInfo={...this.tabs[n].results.generalInfo,...e}},hyperparametersEvent(n,e){this.tabs[n].results.hyperparameters=e},metricsEvent(n,e){if(e===null){this.tabs[n].results.metrics={};return}this.tabs[n].results.metrics=e},tradesEvent(n,e){this.tabs[n].results.trades=e},equityCurveEvent(n,e){this.tabs[n].results.charts.equity_curve=e,this.tabs[n].results.executing=!1,this.tabs[n].results.showResults=!0,this.saveState(n)},terminationEvent(n,e){this.tabs[n].results.executing&&(this.tabs[n].results.executing=!1,Lt(\"success\",\"Session terminated successfully\"))},alertEvent(n,e){this.tabs[n].results.alert=e},notificationEvent(n,e){Lt(e.type,e.message)},candlesChartEvent(n,e){Ws.candles[n]=e},ordersChartEvent(n,e){Ws.orders[n]=e},chartLinesEvent(n,e){Ws.lines[n]=e},extraChartLinesEvent(n,e){Ws.extraChartLines[n]=e},horizontalChartLinesEvent(n,e){Ws.horizontalLines[n]=e},horizontalExtraChartLinesEvent(n,e){Ws.horizontalExtraLines[n]=e},missingCandlesEvent(n,e){var t;this.tabs[n]&&(this.tabs[n].results.executing=!1,this.tabs[n].results.exception.error=\"\",this.tabs[n].results.exception.traceback=\"\"),this.missingCandlesErrors[n]={symbol:e.symbol,exchange:((t=this.tabs[n])==null?void 0:t.form.exchange)||e.exchange,start_date:e.start_date}},formattedMetrics(n){const e=this.tabs[n].results.metrics;return Object.keys(e).length===0?[]:[[\"Total Closed Trades\",e.total],[\"Total Net Profit\",`${wt.round(e.net_profit,2)} (${wt.round(e.net_profit_percentage,2)}%)`],[\"Starting => Finishing Balance\",`${wt.round(e.starting_balance,2)} => ${wt.round(e.finishing_balance,2)}`],[\"Open Trades\",e.total_open_trades],[\"Total Paid Fees\",wt.round(e.fee,2)],[\"Max Drawdown\",`${wt.round(e.max_drawdown,2)}%`],[\"Max Underwater Period\",`${wt.round(e.max_underwater_period,2)} days`],[\"Annual Return\",`${wt.round(e.annual_return,2)}%`],[\"Expectancy\",`${wt.round(e.expectancy,2)} (${wt.round(e.expectancy_percentage,2)}%)`],[\"Avg Win | Avg Loss\",`${wt.round(e.average_win,2)} | ${wt.round(e.average_loss,2)}`],[\"Ratio Avg Win / Avg Loss\",wt.round(e.ratio_avg_win_loss,2)],[\"Win-rate\",`${wt.round(e.win_rate*100,2)}%`],[\"Win-rate Shorts\",`${wt.round(e.win_rate_shorts*100,2)}%`],[\"Win-rate Longs\",`${wt.round(e.win_rate_longs*100,2)}%`],[\"Longs | Shorts\",`${wt.round(e.longs_percentage,2)}% | ${wt.round(e.shorts_percentage,2)}%`],[\"Avg Holding Time\",Wn.secondsToHumanReadable(e.average_holding_period)],[\"Winning Trades Avg Holding Time\",Wn.secondsToHumanReadable(e.average_winning_holding_period)],[\"Losing Trades Avg Holding Time\",Wn.secondsToHumanReadable(e.average_losing_holding_period)],[\"Sharpe Ratio\",wt.round(e.sharpe_ratio,2)],[\"Calmar Ratio\",wt.round(e.calmar_ratio,2)],[\"Sortino Ratio\",wt.round(e.sortino_ratio,2)],[\"Omega Ratio\",wt.round(e.omega_ratio,2)],[\"Winning Streak\",e.winning_streak],[\"Losing Streak\",e.losing_streak],[\"Largest Winning Trade\",wt.round(e.largest_winning_trade,2)],[\"Largest Losing Trade\",wt.round(e.largest_losing_trade,2)],[\"Total Winning Trades\",e.total_winning_trades],[\"Total Losing Trades\",e.total_losing_trades]]},async handleMissingCandles(n,e){var t,i;((t=e==null?void 0:e.data)==null?void 0:t.type)===\"missing_candles\"&&(this.missingCandlesErrors[n]={symbol:e.data.symbol,exchange:((i=this.tabs[n])==null?void 0:i.form.exchange)||e.data.exchange,start_date:e.data.start_date})},async retry(n){await this.cancel(n),await this.start(n)},async saveState(n){try{if(!this.tabs[n])return;const e=this.tabs[n],{data:t,error:i}=await Ot(\"/backtest/update-state\",{id:n,state:{form:e.form,results:e.results}},!0);i.value&&Pt(i.value)}catch(e){Pt(e)}},async loadSession(n){var e,t,i,s,o,r,a,l,c,d,u;try{const{data:h,error:f}=await Ot(`/backtest/sessions/${n}`,{},!0);if(f.value)return Pt(f.value),!1;const g=h.value,p=g==null?void 0:g.session;if(!p||!p.state)return Lt(\"error\",\"Session state not found\"),!1;const _=n;this.tabs[_]||(this.tabs[_]=bd(),this.tabs[_].id=_);const b=!!(p.exception||p.traceback),w=p.status===\"finished\"&&!b,y=p.status===\"running\"||p.status===\"stopped\"||b;return this.tabs[_].form=((e=p.state)==null?void 0:e.form)||this.tabs[_].form,this.tabs[_].results={...this.tabs[_].results,showResults:w,executing:y,metrics:p.metrics||{},hyperparameters:p.hyperparameters||[],charts:{equity_curve:p.equity_curve||[]},trades:p.trades||[],exception:{error:p.exception||\"\",traceback:p.traceback||\"\"},info:((i=(t=p.state)==null?void 0:t.results)==null?void 0:i.info)||this.tabs[_].results.info,routes_info:((o=(s=p.state)==null?void 0:s.results)==null?void 0:o.routes_info)||this.tabs[_].results.routes_info,generalInfo:{...((a=(r=p.state)==null?void 0:r.results)==null?void 0:a.generalInfo)||this.tabs[_].results.generalInfo,title:p.title||null,description:p.description||null},alert:((c=(l=p.state)==null?void 0:l.results)==null?void 0:c.alert)||this.tabs[_].results.alert,selectedRoute:((u=(d=p.state)==null?void 0:d.results)==null?void 0:u.selectedRoute)||this.tabs[_].results.selectedRoute},this.tabIds.includes(_)||this.tabIds.push(_),await Vs(`/backtest/${_}`),Lt(\"success\",\"Session loaded successfully\"),!0}catch(h){return console.error(\"Error loading session:\",h),Lt(\"error\",\"Failed to load session\"),!1}},async updateSessionNotes(n,e,t,i){try{const s={id:n,title:e,description:t};i&&Object.keys(i).length>0&&(s.strategy_codes=i);const{data:o,error:r}=await Ot(`/backtest/sessions/${n}/notes`,s,!0);return r.value?(Pt(r.value),!1):(this.tabs[n]&&(this.tabs[n].results.generalInfo.title=e,this.tabs[n].results.generalInfo.description=t),!0)}catch(s){return Pt(s),!1}},async getSessionData(n){try{const{data:e,error:t}=await Ot(`/backtest/sessions/${n}`,{},!0);if(t.value)return Pt(t.value),null;const i=e.value;return(i==null?void 0:i.session)||null}catch(e){return Pt(e),null}},async loadChartData(n){try{const{data:e,error:t}=await Ot(`/backtest/sessions/${n}/chart-data`,{},!0);if(t.value)return Pt(t.value),!1;const i=e.value,s=i==null?void 0:i.chart_data;return s&&(s.candles_chart&&(Ws.candles[n]=s.candles_chart),s.orders_chart&&(Ws.orders[n]=s.orders_chart),s.add_line_to_candle_chart&&(Ws.lines[n]=s.add_line_to_candle_chart),s.add_extra_line_chart&&(Ws.extraChartLines[n]=s.add_extra_line_chart),s.add_horizontal_line_to_candle_chart&&(Ws.horizontalLines[n]=s.add_horizontal_line_to_candle_chart),s.add_horizontal_line_to_extra_chart&&(Ws.horizontalExtraLines[n]=s.add_horizontal_line_to_extra_chart)),!0}catch(e){return Pt(e),!1}},async getStrategyCode(n){try{const{data:e,error:t}=await Ot(`/backtest/sessions/${n}/strategy-code`,{},!0);return e.value.strategy_code}catch(e){return Pt(e),null}}}}),ime=d_(\"optimization\",{state:()=>({_autosaveInitialized:!1,_suspendAutosave:!1,form:{id:Wn.uuid(),training_start_date:\"2024-01-01\",training_finish_date:\"2024-08-01\",testing_start_date:\"2024-08-01\",testing_finish_date:\"2025-01-01\",export_csv:!1,export_json:!1,exchange:\"\",routes:[],data_routes:[],optimal_total:50,fast_mode:!1,debug_mode:!1},results:{showResults:!1,executing:!1,logsModal:!1,status:\"\",progressbar:{current:0,estimated_remaining_seconds:0},routes_info:[],best_candidates:[],metrics:[],generalInfo:[],objective_curve:[],selectedObjectiveMetric:\"\",infoLogs:\"\",info:[],exception:{error:\"\",traceback:\"\"},alert:{message:\"\",type:\"\"}}}),actions:{async getRunningSession(){const{data:n,error:e}=await jl(\"/optimization/running-session\",!0);return e.value?null:n.value&&n.value.session_id!==null?n.value.session_id:null},clearCurrentSession(){this.results.showResults=!1,this.results.executing=!1,this.results.progressbar.current=0,this.results.progressbar.estimated_remaining_seconds=0,this.results.alert.message=\"\",this.results.alert.type=\"\",this.results.best_candidates=[],this.results.generalInfo=[],this.results.objective_curve=[],this.results.selectedObjectiveMetric=\"\",this.results.infoLogs=\"\",this.results.exception.error=\"\",this.results.exception.traceback=\"\",this.results.status=\"\",this.results.metrics=[],this.results.routes_info=[]},async init(){const n=await cj(\"optimization\");if(n.length===0||(n[0],this.form.id),!this._autosaveInitialized){this._autosaveInitialized=!0;const e=Lre(()=>{this._suspendAutosave||this.form.id&&this.results.executing},1e3);Dn(()=>this.form,()=>{e()},{deep:!0})}},async start(){var o;pi();const n=this.form.optimal_total,e=this._resetResults();delete e.id;const{data:t,error:i}=await Ot(\"/optimization\",e,!0);if(i.value&&i.value.statusCode===500)return Lt(\"error\",i.value.data.message),this.form.optimal_total=n,{status:\"fail\"};if(i.value&&i.value.statusCode!==200)return Pt(i.value),this.form.optimal_total=n,{status:\"fail\"};const s=(o=t.value)==null?void 0:o.session_id;return s&&(this.form.id=s,await this.saveState()),{status:\"success\",id:s}},async rerun(){pi();const n=this.form.optimal_total,e=this._resetResults(),{data:t,error:i}=await Ot(\"/optimization/rerun\",e,!0);if(i.value&&i.value.statusCode===500){Lt(\"error\",i.value.data.message),this.form.optimal_total=n;return}if(i.value&&i.value.statusCode!==200){Pt(i.value),this.form.optimal_total=n;return}},async saveState(){try{if(!this.form.id)return;const n=this.$state,{error:e}=await Ot(\"/optimization/update-state\",{id:this.form.id,state:{form:n.form}},!0);e.value&&Pt(e.value)}catch(n){Pt(n)}},async loadSession(n){try{this._suspendAutosave=!0,this._resetResults();const{data:e,error:t}=await Ot(`/optimization/sessions/${n}`,{},!0);if(t.value)return Pt(t.value),!1;const i=e.value,s=i==null?void 0:i.session;return!s||!s.state?(Lt(\"error\",\"Session state not found\"),!1):(this.$patch(s.state),this.results.progressbar.current=Number((s.completed_trials/s.total_trials*100).toFixed(1)),this.results.generalInfo=[[\"Started at\",null],[\"Progress\",`${s.completed_trials}/${s.total_trials}`],[\"Objective Function\",pi().settings.optimization.objective_function],[\"Exchange Type\",pi().settings.optimization.exchange.type],[\"Leverage Mode\",pi().settings.optimization.exchange.futures_leverage_mode],[\"Leverage\",pi().settings.optimization.exchange.futures_leverage],[\"CPU Cores\",pi().settings.optimization.cpu_cores],[\"Optimal Trades\",s.state.form.optimal_total]],s.status===\"finished\"?(this.results.executing=!1,this.results.showResults=!0,this.results.status=\"finished\"):s.status===\"running\"?(this.results.executing=!0,this.results.status=\"running\"):s.status===\"terminated\"?(this.results.executing=!0,this.results.status=\"terminated\",this.results.showResults=!0):s.status===\"stopped\"&&(this.results.executing=!0,this.results.status=\"stopped\",this.results.showResults=!1,this.results.exception.error=s.exception,this.results.exception.traceback=s.traceback),Lt(\"success\",\"Session loaded successfully\"),this.results.best_candidates=s.best_candidates,this.results.objective_curve=s.objective_curve,this.form={...s.state.form,id:n},!0)}catch(e){return console.error(\"Error loading session:\",e),Lt(\"error\",\"Failed to load session\"),!1}finally{this._suspendAutosave=!1}},async cancel(){if(this.results.exception.error){this.results.executing=!1;return}this.results.executing=!1;const{data:n,error:e}=await Ot(\"/optimization/cancel\",{id:this.form.id},!0);if(e.value&&e.value.statusCode!==200){Lt(\"error\",e.value.data.message);return}},async resume(){const n=this.form.optimal_total,e=this._resetResults(),t=await Ot(\"/optimization/resume\",e,!0);if(t.error.value){Pt(t.error.value),this.results.executing=!1,this.results.showResults=!0,this.results.status=\"terminated\",this.form.optimal_total=n;return}const i=t.data.value,s=i==null?void 0:i.session;this.results.best_candidates=s.best_candidates,this.results.objective_curve=s.objective_curve,Lt(\"success\",\"Optimization resumed successfully\")},candlesInfoEvent(n,e){this.results.info=[[\"Period\",e.duration],[\"Starting-Ending Date\",`${Wn.timestampToDate(e.starting_time)} => ${Wn.timestampToDate(e.finishing_time)}`]]},routesInfoEvent(n,e){const t=[];e.forEach(i=>{t.push([{value:i.symbol,style:\"\"},{value:i.timeframe,style:\"\"},{value:i.strategy_name,style:\"\"}])}),this.results.routes_info=t},progressbarEvent(n,e){this.results.progressbar=e},infoLogEvent(n,e){this.logEvent(n,e)},exceptionEvent(n,e){this.results.exception.error=e.error,this.results.exception.traceback=e.traceback},generalInfoEvent(n,e){this.results.executing||(this.results.executing=!0);const t=this.form.optimal_total;this.results.generalInfo=[[\"Started at\",e.started_at],[\"Progress\",e.trial],[\"Objective Function\",e.objective_function],[\"Exchange Type\",e.exchange_type],[\"Leverage Mode\",e.leverage_mode],[\"Leverage\",e.leverage],[\"CPU Cores\",pi().settings.optimization.cpu_cores],[\"Optimal Trades\",t]]},metricsEvent(n,e){if(e===null){this.results.metrics=[];return}this.results.metrics=[[\"Total Closed Trades\",e.total],[\"Total Net Profit\",`${wt.round(e.net_profit,2)} (${wt.round(e.net_profit_percentage,2)}%)`],[\"Starting => Finishing Balance\",`${wt.round(e.starting_balance,2)} => ${wt.round(e.finishing_balance,2)}`],[\"Open Trades\",e.total_open_trades],[\"Total Paid Fees\",wt.round(e.fee,2)],[\"Max Drawdown\",wt.round(e.max_drawdown,2)],[\"Annual Return\",`${wt.round(e.annual_return,2)}%`],[\"Expectancy\",`${wt.round(e.expectancy,2)} (${wt.round(e.expectancy_percentage,2)}%)`],[\"Avg Win | Avg Loss\",`${wt.round(e.average_win,2)} | ${wt.round(e.average_loss,2)}`],[\"Ratio Avg Win / Avg Loss\",wt.round(e.ratio_avg_win_loss,2)],[\"Win-rate\",`${wt.round(e.win_rate*100,2)}%`],[\"Longs | Shorts\",`${wt.round(e.longs_percentage,2)}% | ${wt.round(e.shorts_percentage,2)}%`],[\"Avg Holding Time\",e.average_holding_period],[\"Winning Trades Avg Holding Time\",e.average_winning_holding_period],[\"Losing Trades Avg Holding Time\",e.average_losing_holding_period],[\"Sharpe Ratio\",wt.round(e.sharpe_ratio,2)],[\"Calmar Ratio\",wt.round(e.calmar_ratio,2)],[\"Sortino Ratio\",wt.round(e.sortino_ratio,2)],[\"Omega Ratio\",wt.round(e.omega_ratio,2)],[\"Winning Streak\",e.winning_streak],[\"Losing Streak\",e.losing_streak],[\"Largest Winning Trade\",wt.round(e.largest_winning_trade,2)],[\"Largest Losing Trade\",wt.round(e.largest_losing_trade,2)],[\"Total Winning Trades\",e.total_winning_trades],[\"Total Losing Trades\",e.total_losing_trades]]},terminationEvent(n){this.results.executing&&(this.results.executing=!1)},bestCandidatesEvent(n,e){this.results.best_candidates=e},logEvent(n,e){const t=`[${Wn.timestampToTime(e.timestamp)}] ${e.message}\n`;this.results.infoLogs+=t},alertEvent(n,e){this.results.alert=e,this.results.executing=!1,this.results.showResults=!0},async terminate(){try{this.results.executing=!1,this.results.showResults=!0,this.results.status=\"terminated\";const{data:n,error:e}=await Ot(\"/optimization/terminate\",{id:this.form.id},!0);if(e.value){Pt(e.value);return}Lt(\"success\",\"Optimization terminated successfully\")}catch(n){Pt(n)}},newSession(){const n=this.form.optimal_total,e=this.form.exchange,t=[...this.form.routes],i=[...this.form.data_routes],s=this.form.fast_mode;this.form.id=Wn.uuid(),this.results.showResults=!1,this.results.executing=!1,this.results.progressbar.current=0,this.results.progressbar.estimated_remaining_seconds=0,this.results.alert.message=\"\",this.results.alert.type=\"\",this.results.best_candidates=[],this.results.generalInfo=[],this.results.objective_curve=[],this.results.selectedObjectiveMetric=\"\",this.results.infoLogs=\"\",this.results.exception.error=\"\",this.results.exception.traceback=\"\",this.results.status=\"\",this.form.optimal_total=n,this.form.exchange=e,this.form.routes=t,this.form.data_routes=i,this.form.fast_mode=s},objectiveCurveEvent(n,e){this.results.objective_curve=this.results.objective_curve.concat(e)},_resetResults(){return this.results.progressbar.current=0,this.results.executing=!0,this.results.infoLogs=\"\",this.results.exception.traceback=\"\",this.results.exception.error=\"\",this.results.alert.message=\"\",this.results.alert.type=\"\",this.results.metrics=[],this.results.generalInfo=[],this.results.best_candidates=[],this.results.routes_info=[],this.results.showResults=!1,this.results.status=\"running\",this.results.objective_curve=[],{id:this.form.id,exchange:this.form.exchange,routes:this.form.routes,data_routes:this.form.data_routes,config:pi().settings.optimization,training_start_date:this.form.training_start_date,training_finish_date:this.form.training_finish_date,testing_start_date:this.form.testing_start_date,testing_finish_date:this.form.testing_finish_date,optimal_total:this.form.optimal_total,fast_mode:this.form.fast_mode,cpu_cores:pi().settings.optimization.cpu_cores,state:this.$state}},async updateSessionNotes(n,e,t){try{const{data:i,error:s}=await Ot(`/optimization/sessions/${n}/notes`,{id:n,title:e,description:t},!0);return s.value?(Pt(s.value),!1):!0}catch(i){return Pt(i),!1}},async purgeOptimizationSessions(n){var e;try{const{data:t,error:i}=await Ot(\"/optimization/purge-sessions\",{days_old:n},!0);return i.value?(Pt(i.value),{success:!1,deleted_count:0}):{success:!0,deleted_count:((e=t.value)==null?void 0:e.deleted_count)||0}}catch(t){return Pt(t),{success:!1,deleted_count:0}}},async getSessions(n=50,e=0,t={}){var i;try{const{data:s,error:o}=await Ot(\"/optimization/sessions\",{limit:n,offset:e,title_search:t.title_search,status_filter:t.status_filter,date_filter:t.date_filter},!0);return o.value?(Pt(o.value),[]):((i=s.value)==null?void 0:i.sessions)||[]}catch(s){return Pt(s),[]}},async getSessionData(n){try{const{data:e,error:t}=await Ot(`/optimization/sessions/${n}`,{},!0);if(t.value)return null;const i=e.value;return(i==null?void 0:i.session)||null}catch{return null}},async getSessionStrategyCodes(n){try{const{data:e,error:t}=await Ot(`/optimization/sessions/${n}/strategy-codes`,{},!0);return e.value.strategy_codes}catch(e){return Pt(e),null}},async getSessionLogs(n){try{const{data:e,error:t}=await Ot(`/optimization/sessions/${n}/logs`,{},!0);return e.value.logs}catch(e){return Pt(e),null}},async getSessionNotes(n){try{const{data:e,error:t}=await Ot(`/optimization/sessions/${n}/get-notes`,{},!0);return t.value?(Pt(t.value),null):e.value}catch(e){return Pt(e),null}}}}),Xu=d_(\"temp\",{state:()=>({initiated:!1,makeStrategy:!1})});function Qat(n){const e=[];(n.paper_mode&&!n.exchange||!n.paper_mode&&!n.exchange_api_key_id)&&e.push(\"Please select an exchange\"),n.routes.length===0&&e.push(\"At least one trading route is required\");const t={uniqueRoutesErrorMessage:\"each exchange-symbol pair can be traded only once! More info: https://docs.jesse.trade/docs/routes.html#trading-multiple-routes\",timeframeMustBeDifferentErrorMessage:\"Data routes' timeframe and trading routes' timeframe must be different\",emptyParameter:\"You must fill all the parameters\"};for(const a of n.routes)(!a.symbol||!a.timeframe||!a.strategy)&&(e.includes(t.emptyParameter)||e.push(t.emptyParameter));for(const a of n.data_routes)(!a.symbol||!a.timeframe)&&(e.includes(t.emptyParameter)||e.push(t.emptyParameter));const i=n.routes;let s=!1;for(let a=0;a<i.length;a++){for(let l=a+1;l<i.length;l++)if(i[a].strategy===i[l].strategy&&i[a].symbol===i[l].symbol&&i[a].symbol.length!==0){s||(e.push(t.uniqueRoutesErrorMessage),s=!0);break}if(s)break}const o=n.data_routes;let r=!1;for(let a=0;a<o.length;a++){for(let l=a+1;l<o.length;l++)if(o[a].timeframe===o[l].timeframe&&o[a].symbol===o[l].symbol){r||(e.push(t.uniqueRoutesErrorMessage),r=!0);break}if(r)break}if(n.data_routes.length>0){let a=!1;for(const l of n.data_routes){for(const c of n.routes)if(l.symbol===c.symbol&&l.timeframe===c.timeframe){a||(e.push(t.timeframeMustBeDifferentErrorMessage),a=!0);break}if(a)break}}if(e.length>0){for(const a of e)Lt(\"error\",a);return!1}return!0}function NH(){try{const n=i=>{const s=i.indexOf(\"/live/\");return s===-1?null:i.slice(s+6).split(/[?#/]/)[0]||null},e=typeof window<\"u\"?n(window.location.href):null;if(e)return e;const t=typeof window<\"u\"?n(window.location.hash):null;if(t)return t}catch{}return null}function cv(n){const e=NH();return!!(e&&n===e)}function nme(){try{if(typeof window>\"u\")return!1;const n=window.location.href,e=window.location.hash;return n.includes(\"/live/overview\")||e.includes(\"/live/overview\")}catch{return!1}}function Jat(n){return cv(n)||nme()}function ine(n){if(typeof n==\"boolean\")return n;if(typeof n==\"number\")return n===1;if(typeof n==\"string\"){const e=n.trim().toLowerCase();if(e===\"1\"||e===\"true\")return!0;if(e===\"0\"||e===\"false\")return!1}return!!n}function V3(n){n&&(n.debug_mode=ine(n.debug_mode),n.paper_mode=ine(n.paper_mode),n.exchange_api_key_id=n.exchange_api_key_id??\"\",n.notification_api_key_id=n.notification_api_key_id??\"\",n.exchange=n.exchange??\"\",n.routes=Array.isArray(n.routes)?n.routes:[],n.data_routes=Array.isArray(n.data_routes)?n.data_routes:[])}function to(n=\"\"){return wt.cloneDeep({id:n||Wn.uuid(),form:{debug_mode:!0,paper_mode:!0,exchange_api_key_id:\"\",notification_api_key_id:\"\",exchange:\"\",routes:[],data_routes:[]},results:{showResults:!1,phase:\"editing\",progressbar:{current:0,estimated_remaining_seconds:0},routes_info:[],routes:[],metrics:[],generalInfo:{},positions:[],orders:[],trades:[],watchlist:{},candles:[],currentCandles:{},infoLogs:\"\",errorLogs:\"\",exception:{error:\"\",traceback:\"\"},charts:{equity_curve:[]},selectedRoute:{},info:[]}})}const dj=d_(\"Live\",{state:()=>({tabs:{},recentlyClosedTabIds:[],showStopConfirmModal:!1,sessionToStop:null}),actions:{markTabClosedRecently(n){n&&(this.recentlyClosedTabIds.includes(n)||this.recentlyClosedTabIds.push(n),setTimeout(()=>{this.recentlyClosedTabIds=this.recentlyClosedTabIds.filter(e=>e!==n)},2e3))},async init(){const n=await cj(\"live\"),e={};for(const t of n)await this.loadSession(t,!0)&&this.tabs[t]?e[t]=this.tabs[t]:e[t]=to(t);this.tabs=e,Object.keys(this.tabs).length===0&&await this.addTab()},async ensureTab(n){return n?this.tabs[n]?(V3(this.tabs[n].form),await wv(\"live\",n),!0):await this.loadSession(n,!0)&&this.tabs[n]?(await wv(\"live\",n),!0):(this.tabs[n]=to(n),await this.saveState(n),await wv(\"live\",n),!0):!1},async saveState(n){const e=this.tabs[n];e&&await Ot(\"/live/update-state\",{id:n,state:{form:e.form}},!0)},async addTab(n){const e=to();if(this.tabs[e.id]=e,n){const t=this.tabs[n];t!=null&&t.form&&(e.form=JSON.parse(JSON.stringify(t.form)))}await this.saveState(e.id),await wv(\"live\",e.id),await Vs(`/live/${e.id}`)},async closeTabsFromCurrent(n){const e=Object.keys(this.tabs),t=e.indexOf(n);if(t===-1)return;const i=NH(),s=e.slice(t),o=s.includes(i||\"\"),r=t>0?e[t-1]:\"\";for(const a of s){const l=this.tabs[a];l&&[\"starting\",\"running\",\"stopping\"].includes(l.results.phase)&&!l.results.exception.error&&this.stop(a),await qN(\"live\",a),delete this.tabs[a]}o&&(r&&this.tabs[r]?Vs(`/live/${r}`):Vs(\"/live\"))},goToNextTab(n){const e=Object.keys(this.tabs);if(e.length<=1)return;const t=[\"overview\",...e],i=n||\"overview\";let s=t.indexOf(i);s===-1&&(s=0);const o=(s+1)%t.length,r=t[o];Vs(r===\"overview\"?\"/live/overview\":`/live/${r}`)},goToPrevTab(n){const e=Object.keys(this.tabs);if(e.length<=1)return;const t=[\"overview\",...e],i=n||\"overview\";let s=t.indexOf(i);s===-1&&(s=0);const o=(s-1+t.length)%t.length,r=t[o];Vs(r===\"overview\"?\"/live/overview\":`/live/${r}`)},async closeTab(n){if(!this.tabs[n])return;this.markTabClosedRecently(n);const e=this.tabs[n];if([\"starting\",\"running\",\"stopping\"].includes(e.results.phase)&&!e.results.exception.error){Lt(\"error\",\"Cannot close a live session tab that is currently running\");return}if(Object.keys(this.tabs).length<=1){Lt(\"error\",\"Cannot close the last tab\");return}const i=NH(),s=n===i,o=Object.keys(this.tabs),r=o.indexOf(n),a=r>0?o[r-1]:\"\",l=r>=0&&r+1<o.length?o[r+1]:\"\";s&&(l&&this.tabs[l]?Vs(`/live/${l}`):a&&this.tabs[a]?Vs(`/live/${a}`):Vs(\"/live\")),delete this.tabs[n],qN(\"live\",n)},requestCloseOrStopTab(n){const e=this.tabs[n];if(e){if([\"starting\",\"running\",\"stopping\"].includes(e.results.phase)&&!e.results.exception.error){this.openStopConfirmModal(n);return}this.closeTab(n)}},reset(n){var i,s;const e=((i=this.tabs[n].results.generalInfo)==null?void 0:i.title)??null,t=((s=this.tabs[n].results.generalInfo)==null?void 0:s.description)??null;this.tabs[n].results.progressbar.current=0,this.tabs[n].results.phase=\"starting\",this.tabs[n].results.infoLogs=\"\",this.tabs[n].results.errorLogs=\"\",this.tabs[n].results.exception.traceback=\"\",this.tabs[n].results.exception.error=\"\",this.tabs[n].results.routes_info=[],this.tabs[n].results.metrics=[],this.tabs[n].results.generalInfo={title:e,description:t,count_info_logs:0,count_error_logs:0},this.tabs[n].results.positions=[],this.tabs[n].results.orders=[],this.tabs[n].results.candles=[],this.tabs[n].results.currentCandles={},this.tabs[n].results.watchlist={}},async start(n){const e=this.tabs[n];if(!e||!Qat(e.form))return!1;this.reset(n);const t=pi(),i=this.tabs[n].form.paper_mode?\"\":this.tabs[n].form.exchange_api_key_id,s=this.tabs[n].form.exchange,o=this.tabs[n].form.notification_api_key_id?this.tabs[n].form.notification_api_key_id:\"\";this.tabs[n].results.selectedRoute=this.tabs[n].form.routes[0];const{data:r,error:a}=await Ot(\"/live\",{id:n,exchange:s,exchange_api_key_id:i,notification_api_key_id:o,routes:this.tabs[n].form.routes,data_routes:this.tabs[n].form.data_routes,config:t.settings.live,debug_mode:this.tabs[n].form.debug_mode,paper_mode:this.tabs[n].form.paper_mode},!0);return a.value&&a.value.statusCode!==200?(Lt(\"error\",a.value.data.message),!1):!0},async cancel(n){const{data:e,error:t}=await Ot(\"/live/cancel\",{id:n,paper_mode:this.tabs[n].form.paper_mode},!0);if(t.value&&t.value.statusCode!==200){Lt(\"error\",t.value.data.message);return}this.tabs[n].results.phase=\"editing\"},async stop(n){this.showStopConfirmModal=!1,this.sessionToStop=null;const{data:e,error:t}=await Ot(\"/live/cancel\",{id:n,paper_mode:this.tabs[n].form.paper_mode},!0);if(t.value&&t.value.statusCode!==200){Lt(\"error\",t.value.data.message);return}this.tabs[n].results.phase=\"stopping\"},openStopConfirmModal(n){this.sessionToStop=n,this.showStopConfirmModal=!0},closeStopConfirmModal(){this.sessionToStop=null,this.showStopConfirmModal=!1},confirmStop(){this.sessionToStop&&this.stop(this.sessionToStop)},async newLive(n,e){const t=this.tabs[n],i=Object.keys(this.tabs),s=i.indexOf(n),o=(e==null?void 0:e.navigate)??!0;if(!t||s===-1)return await this.addTab(),null;const r=to();r.form=JSON.parse(JSON.stringify(t.form)),V3(r.form),this.tabs[r.id]=r,await this.saveState(r.id),await wv(\"live\",r.id),await qN(\"live\",n);const a={};for(const c of i)c===n?a[r.id]=r:a[c]=this.tabs[c];this.tabs=a;const l=i.map(c=>c===n?r.id:c);return await Xat(\"live\",l),o&&await Vs(`/live/${r.id}`),r.id},async rerunAndStart(n,e){const t=this.tabs[n];if(!t)return!1;const i=t.results.phase;if(i===\"ended\"||i===\"error\"){const s=await this.newLive(n,{navigate:(e==null?void 0:e.navigate)??!1});return s?await this.start(s):!1}return await this.start(n)},candlesInfoEvent(n,e){this.tabs[n]===void 0&&(this.tabs[n]=to(n)),this.tabs[n].results.info=[[\"Period\",e.duration],[\"Starting-Ending Date\",`${Wn.timestampToDate(e.starting_time)} => ${Wn.timestampToDate(e.finishing_time)}`]]},routesInfoEvent(n,e){this.tabs[n]===void 0&&(this.tabs[n]=to(n));const t=[];e.forEach(i=>{t.push([{value:i.symbol,style:\"\"},{value:i.timeframe,style:\"\"},{value:i.strategy_name,style:\"\"}])}),this.tabs[n].results.routes_info=t},progressbarEvent(n,e){this.tabs[n]===void 0&&(this.tabs[n]=to(n)),this.tabs[n].results.progressbar=e},infoLogEvent(n,e){this.tabs[n]===void 0&&(this.tabs[n]=to(n)),cv(n)&&(this.tabs[n].results.infoLogs+=`[${Wn.timestampToTime(e.timestamp)}] ${e.message}\n`,this.tabs[n].results.generalInfo&&(this.tabs[n].results.generalInfo.count_info_logs+=1))},errorLogEvent(n,e){this.tabs[n]===void 0&&(this.tabs[n]=to(n)),Lt(\"error\",e.message),this.tabs[n].results.errorLogs+=`[${Wn.timestampToTime(e.timestamp)}] ${e.message}\n`,this.tabs[n].results.generalInfo&&(this.tabs[n].results.generalInfo.count_error_logs+=1)},exceptionEvent(n,e){this.tabs[n]===void 0&&(this.tabs[n]=to(n)),this.tabs[n].results.exception.error=e.error,this.tabs[n].results.exception.traceback=e.traceback,this.tabs[n].results.phase=\"error\"},generalInfoEvent(n,e){var o,r;this.tabs[n]===void 0&&(this.tabs[n]=to(n));const t=cv(n);if(!t&&!nme()&&this.tabs[n].results.phase===\"running\")return;const i={...e,started_balance:Number(e.started_balance),current_balance:Number(e.current_balance),count_error_logs:Number(e.count_error_logs),count_info_logs:Number(e.count_info_logs),count_active_orders:Number(e.count_active_orders),open_positions:Number(e.open_positions),pnl:Number(e.pnl),pnl_perc:Number(e.pnl_perc),count_trades:Number(e.count_trades),count_winning_trades:Number(e.count_winning_trades),count_losing_trades:Number(e.count_losing_trades),leverage:Number(e.leverage),available_margin:Number(e.available_margin)};this.tabs[n].results.generalInfo={...this.tabs[n].results.generalInfo,...i};const s=this.tabs[n].results.phase!==\"running\";this.tabs[n].results.phase=\"running\",this.tabs[n].form.routes=this.tabs[n].results.generalInfo.routes,this.tabs[n].results.routes=[];for(const a of this.tabs[n].form.routes)this.tabs[n].results.routes.push([{value:a.symbol,style:\"\"},{value:a.timeframe,style:\"\"},{value:a.strategy,style:\"\"}]);!((o=this.tabs[n].results.selectedRoute)!=null&&o.symbol)&&((r=this.tabs[n].form.routes)!=null&&r.length)&&(this.tabs[n].results.selectedRoute=this.tabs[n].form.routes[0]),t&&s&&this.fetchLogs(n)},async fetchCandles(n){var r,a,l;const e=this.tabs[n];if(!e)return;const t=(r=e.results.selectedRoute)!=null&&r.symbol?e.results.selectedRoute:(a=e.form.routes)==null?void 0:a[0];if(!(t!=null&&t.symbol)||!(t!=null&&t.timeframe))return;const{data:i,error:s}=await Ot(\"/candles/get\",{id:n,exchange:e.form.exchange,symbol:t.symbol,timeframe:t.timeframe},!0);if(s.value&&s.value.statusCode!==200){Lt(\"error\",((l=s.value.data)==null?void 0:l.message)||\"Failed to fetch candles\");return}if(!i.value)return;const o=i.value;e.results.candles=(o==null?void 0:o.data)||[]},async fetchLogs(n){this.tabs[n]===void 0&&(this.tabs[n]=to(n)),this.tabs[n].results.infoLogs=\"\",this.tabs[n].results.errorLogs=\"\";const{data:e,error:t}=await Ot(\"/live/logs\",{id:n,type:\"info\",start_time:this.tabs[n].results.generalInfo.started_at},!0);if(t.value&&t.value.statusCode!==200){Lt(\"error\",t.value.data.message);return}const s=e.value.data;this.tabs[n].results.infoLogs=\"\",s.forEach(c=>{this.tabs[n].results.infoLogs+=`[${Wn.timestampToTime(c.timestamp)}] ${c.message}\n`}),this.tabs[n].results.generalInfo.count_info_logs=s.length;const{data:o,error:r}=await Ot(\"/live/logs\",{id:n,type:\"error\",start_time:this.tabs[n].results.generalInfo.started_at},!0);if(r.value&&r.value.statusCode!==200){Lt(\"error\",r.value.data.message);return}const l=o.value.data;this.tabs[n].results.errorLogs=\"\",l.forEach(c=>{this.tabs[n].results.errorLogs+=`[${Wn.timestampToTime(c.timestamp)}] ${c.message}\n`}),this.tabs[n].results.generalInfo.count_error_logs=l.length},async fetchTrades(n){const{data:e,error:t}=await jl(`/closed-trades/list?session_id=${n}`,!0);return t.value&&t.value.statusCode!==200?(Lt(\"error\",t.value.data.message||\"Failed to fetch trades\"),[]):e.value.data||[]},async fetchTradeDetails(n){const{data:e,error:t}=await jl(`/closed-trades/${n}`,!0);return t.value&&t.value.statusCode!==200?(Lt(\"error\",t.value.data.message||\"Failed to fetch trade details\"),null):e.value.data},async fetchOrderDetails(n){const{data:e,error:t}=await jl(`/orders/${n}`,!0);return t.value&&t.value.statusCode!==200?(Lt(\"error\",t.value.data.message||\"Failed to fetch order details\"),null):e.value.data},async fetchOrdersHistory(n){var s;const{data:e,error:t}=await Ot(\"/orders/live-history\",n,!0);if(t.value&&t.value.statusCode!==200)return Lt(\"error\",t.value.data.message||\"Failed to fetch orders history\"),{orders:[],hasMore:!1};const i=e.value;return{orders:i.orders||[],hasMore:((s=i.orders)==null?void 0:s.length)===n.limit}},async fetchTradesHistory(n){var s;const{data:e,error:t}=await Ot(\"/closed-trades/live-history\",n,!0);if(t.value&&t.value.statusCode!==200)return Lt(\"error\",t.value.data.message||\"Failed to fetch trades history\"),{trades:[],hasMore:!1};const i=e.value;return{trades:i.trades||[],hasMore:((s=i.trades)==null?void 0:s.length)===n.limit}},currentCandlesEvent(n,e){cv(n)&&(this.tabs[n]===void 0&&(this.tabs[n]=to(n)),this.tabs[n].results.currentCandles=e)},watchlistEvent(n,e){cv(n)&&(this.tabs[n]===void 0&&(this.tabs[n]=to(n)),this.tabs[n].results.watchlist=e)},equitySnapshotEvent(n,e){var c,d;if(!Jat(n))return;this.tabs[n]===void 0&&(this.tabs[n]=to(n));const t=Number(e==null?void 0:e.timestamp),i=Number(e==null?void 0:e.equity),s=String((e==null?void 0:e.currency)||\"\").toUpperCase();if(!t||Number.isNaN(t)||!Number.isFinite(i))return;const o={time:Math.floor(t/1e3),value:wt.round(i,2),color:\"#818CF8\"};if(!((c=this.tabs[n].results.charts.equity_curve)!=null&&c.length)){this.tabs[n].results.charts.equity_curve=[{name:s?`Equity (${s})`:\"Equity\",color:\"#818CF8\",data:[o]}];return}const r=this.tabs[n].results.charts.equity_curve[0];s&&(r.name=`Equity (${s})`);const a=(d=r.data)==null?void 0:d[r.data.length-1];(a==null?void 0:a.time)===o.time?r.data[r.data.length-1]=o:r.data.push(o);const l=2e3;r.data.length>l&&(r.data=r.data.slice(r.data.length-l))},positionsEvent(n,e){if(cv(n)){this.tabs[n]===void 0&&(this.tabs[n]=to(n)),this.tabs[n].results.positions=[];for(const t of e){const i=t.type===\"close\"?\"\":t.qty;this.tabs[n].results.positions.push([{value:t.symbol,style:\"\"},{value:i,style:Wn.colorBasedOnType(t.type),tooltip:`${t.value} ${t.currency}`},{value:Wn.roundPrice(t.entry),style:\"\"},{value:Wn.roundPrice(t.current_price),style:\"\"},{value:t.liquidation_price?Wn.roundPrice(t.liquidation_price):\"\",style:\"\"},{value:`${wt.round(t.pnl,2)} (${wt.round(t.pnl_perc,2)}%)`,style:Wn.colorBasedOnNumber(t.pnl)}])}}},ordersEvent(n,e){cv(n)&&(this.tabs[n]===void 0&&(this.tabs[n]=to(n)),this.tabs[n].results.orders=e)},metricsEvent(n,e){this.tabs[n]===void 0&&(this.tabs[n]=to(n)),this.tabs[n].results.metrics=[[\"Total Closed Trades\",e.total],[\"Total Net Profit\",`${wt.round(e.net_profit,2)} (${wt.round(e.net_profit_percentage,2)}%)`],[\"Starting => Finishing Balance\",`${wt.round(e.starting_balance,2)} => ${wt.round(e.finishing_balance,2)}`],[\"Open Trades\",e.total_open_trades],[\"Total Paid Fees\",wt.round(e.fee,2)],[\"Max Drawdown\",wt.round(e.max_drawdown,2)],[\"Annual Return\",`${wt.round(e.annual_return,2)}%`],[\"Expectancy\",`${wt.round(e.expectancy,2)} (${wt.round(e.expectancy_percentage,2)}%)`],[\"Avg Win | Avg Loss\",`${wt.round(e.average_win,2)} | ${wt.round(e.average_loss,2)}`],[\"Ratio Avg Win / Avg Loss\",wt.round(e.ratio_avg_win_loss,2)],[\"Win-rate\",`${wt.round(e.win_rate*100,2)}%`],[\"Longs | Shorts\",`${wt.round(e.longs_percentage,2)}% | ${wt.round(e.shorts_percentage,2)}%`],[\"Avg Holding Time\",e.average_holding_period],[\"Winning Trades Avg Holding Time\",e.average_winning_holding_period],[\"Losing Trades Avg Holding Time\",e.average_losing_holding_period],[\"Sharpe Ratio\",wt.round(e.sharpe_ratio,2)],[\"Calmar Ratio\",wt.round(e.calmar_ratio,2)],[\"Sortino Ratio\",wt.round(e.sortino_ratio,2)],[\"Omega Ratio\",wt.round(e.omega_ratio,2)],[\"Winning Streak\",e.winning_streak],[\"Losing Streak\",e.losing_streak],[\"Largest Winning Trade\",wt.round(e.largest_winning_trade,2)],[\"Largest Losing Trade\",wt.round(e.largest_losing_trade,2)],[\"Total Winning Trades\",e.total_winning_trades],[\"Total Losing Trades\",e.total_losing_trades]]},equityCurveEvent(n,e){this.tabs[n].results.charts.equity_curve=e,this.tabs[n].results.showResults=!0},async fetchEquityCurve(n,e=\"auto\"){var r,a;if(!this.tabs[n])return;const t=new URLSearchParams({session_id:n,timeframe:e,max_points:\"1000\"}),{data:i,error:s}=await jl(`/live/equity-curve?${t.toString()}`,!0);if(s.value&&s.value.statusCode!==200){Lt(\"error\",((r=s.value.data)==null?void 0:r.message)||\"Failed to fetch equity curve\");return}if(!i.value)return;const o=i.value;if(!((a=o==null?void 0:o.data)!=null&&a.length)){this.tabs[n].results.charts.equity_curve=[];return}this.tabs[n].results.charts.equity_curve=[{name:`Equity (${o.currency})`,color:\"#818CF8\",data:o.data}]},unexpectedTerminationEvent(n){this.tabs[n]===void 0&&(this.tabs[n]=to(n)),this.tabs[n].results.phase=\"ended\"},terminationEvent(n){this.tabs[n]===void 0&&(this.tabs[n]=to(n)),this.tabs[n].results.phase!==\"ended\"&&(this.tabs[n].results.phase=\"ended\",Lt(\"success\",\"Session terminated successfully\"))},forceClose(n){this.tabs[n]===void 0&&(this.tabs[n]=to(n)),this.tabs[n].results.phase=\"ended\"},async startAll(){const n=Object.values(this.tabs).filter(i=>[\"editing\",\"ended\"].includes(i.results.phase)).map(i=>i.id);if(n.length===0){Lt(\"info\",\"No startable sessions found\");return}let e=0,t=0;for(const i of n)try{await this.rerunAndStart(i,{navigate:!1})?e++:t++}catch(s){t++,console.error(`Failed to start session ${i}:`,s)}e>0?Lt(\"success\",`Started ${e} session${e>1?\"s\":\"\"} successfully${t>0?`, ${t} failed`:\"\"}`):t>0&&Lt(\"error\",`Failed to start ${t} session${t>1?\"s\":\"\"}`)},async stopAll(){const n=Object.values(this.tabs).filter(i=>[\"running\",\"starting\"].includes(i.results.phase));if(n.length===0){Lt(\"info\",\"No active sessions to stop\");return}let e=0,t=0;for(const i of n)try{await this.stop(i.id),e++}catch(s){t++,console.error(`Failed to stop session ${i.id}:`,s)}e>0?Lt(\"success\",`Stopped ${e} session${e>1?\"s\":\"\"} successfully${t>0?`, ${t} failed`:\"\"}`):t>0&&Lt(\"error\",`Failed to stop ${t} session${t>1?\"s\":\"\"}`)},async updateSessionNotes(n,e,t){try{const i={id:n,title:e,description:t},{data:s,error:o}=await Ot(`/live/sessions/${n}/notes`,i,!0);return o.value?(Pt(o.value),!1):(this.tabs[n]&&(this.tabs[n].results.generalInfo.title=e,this.tabs[n].results.generalInfo.description=t),!0)}catch(i){return Pt(i),!1}},async getSessionData(n){try{const{data:e,error:t}=await Ot(`/live/sessions/${n}`,{},!0);return t.value?(Pt(t.value),null):e.value}catch(e){return Pt(e),null}},async loadSession(n,e=!1){var t,i;try{const{data:s,error:o}=await Ot(`/live/sessions/${n}`,{},!0);if(o.value&&o.value.statusCode!==200)return e||Lt(\"error\",((t=o.value.data)==null?void 0:t.message)||\"Failed to load session\"),!1;const a=s.value.session;if(!a)return e||Lt(\"error\",\"Session not found\"),!1;const l=to(n);a.state&&a.state.form&&(l.form=a.state.form),V3(l.form);const c=(a.status||\"\").toLowerCase(),d=!!a.is_active;(a.exception||a.traceback)&&(l.results.exception.error=a.exception||\"\",l.results.exception.traceback=a.traceback||\"\"),l.results.generalInfo={...l.results.generalInfo||{},exchange:a.exchange||l.form.exchange||\"\",started_at:a.created_at,current_time:a.updated_at||a.created_at,debug_mode:!!l.form.debug_mode,paper_mode:!!l.form.paper_mode,routes:l.form.routes||[],open_positions:0,count_trades:0,count_active_orders:0,count_info_logs:0,count_error_logs:0,pnl:0,pnl_perc:0,started_balance:0,current_balance:0,leverage_type:\"spot\",leverage:0,available_margin:0,title:a.title||null,description:a.description||null};const u=c===\"starting\",h=c===\"running\"||d,f=[\"terminated\",\"stopped\"].includes(c)&&!d;return l.results.exception.error?l.results.phase=\"error\":u?l.results.phase=\"starting\":h?l.results.phase=\"running\":f?l.results.phase=\"ended\":l.results.phase=\"editing\",[\"running\",\"stopping\",\"ended\",\"error\"].includes(l.results.phase)&&(l.results.selectedRoute=((i=l.form.routes)==null?void 0:i[0])||{}),this.tabs[l.id]=l,[\"running\",\"stopping\",\"ended\",\"error\"].includes(l.results.phase)&&l.results.generalInfo.started_at&&await this.fetchLogs(n),e||Lt(\"success\",\"Session loaded successfully\"),!0}catch(s){return e||Lt(\"error\",(s==null?void 0:s.message)||\"Failed to load session\"),!1}}}}),sme=d_(\"monteCarlo\",{state:()=>({form:{id:\"\",start_date:\"2024-01-01\",finish_date:\"2025-01-01\",run_trades:!0,run_candles:!0,num_scenarios:200,pipeline_type:\"moving_block_bootstrap\",pipeline_params:{batch_size:10080,close_sigma:.001,high_sigma:1e-4,low_sigma:1e-4},exchange:\"\",routes:[],data_routes:[],fast_mode:!1},results:{showResults:!1,executing:!1,status:\"\",trades:{summary_metrics:[],results:null,original_equity_curve:null,scenario_equity_curves:[],progressbar:{current:0,total:0,estimated_remaining_seconds:0},exception:{error:\"\",traceback:\"\"}},candles:{summary_metrics:[],results:null,original_equity_curve:null,scenario_equity_curves:[],progressbar:{current:0,total:0,estimated_remaining_seconds:0},exception:{error:\"\",traceback:\"\"}},generalInfo:[],infoLogs:\"\",info:[]},status:\"stopped\"}),actions:{async init(){this.form.id||(this.form.id=Wn.uuid())},async getRunningSession(){const{data:n,error:e}=await jl(\"/monte-carlo/running-session\",!0);return e.value?null:n.value&&n.value.session_id!==null?n.value.session_id:null},async saveState(){if(this.form.id)try{const{error:n}=await Ot(\"/monte-carlo/update-state\",{id:this.form.id,state:{form:this.form}},!0);n.value&&Pt(n.value)}catch(n){Pt(n)}},async start(){var o;pi();const n=this.form.num_scenarios,e=this._resetResults();delete e.id;const{data:t,error:i}=await Ot(\"/monte-carlo\",e,!0);if(i.value&&i.value.statusCode===500)return Lt(\"error\",i.value.data.message),this.form.num_scenarios=n,{status:\"fail\"};if(i.value&&i.value.statusCode!==200)return Pt(i.value),this.form.num_scenarios=n,{status:\"fail\"};const s=(o=t.value)==null?void 0:o.session_id;return s&&(this.form.id=s,await this.saveState()),{status:\"success\",id:s}},async cancel(){if(this.results.trades.exception.error||this.results.candles.exception.error){this.results.executing=!1;return}this.results.executing=!1;const{data:n,error:e}=await Ot(\"/monte-carlo/cancel\",{id:this.form.id},!0);if(e.value&&e.value.statusCode!==200){Lt(\"error\",e.value.data.message);return}},async loadSession(n){try{this._resetResults();const{data:e,error:t}=await Ot(`/monte-carlo/sessions/${n}`,{},!0);if(t.value)return Pt(t.value),!1;const i=e.value,s=i==null?void 0:i.session;return!s||!s.state?(Lt(\"error\",\"Session state not found\"),!1):(this.status=s.status,this.$patch(s.state),this.results.generalInfo=[[\"Started at\",Wn.timestampToReadableDateTime(s.created_at)],[\"Run Trades\",s.state.form.run_trades?\"Yes\":\"No\"],[\"Run Candles\",s.state.form.run_candles?\"Yes\":\"No\"],[\"Scenarios\",s.state.form.num_scenarios],[\"Exchange Type\",pi().settings.monte_carlo.exchange.type],[\"Leverage Mode\",pi().settings.monte_carlo.exchange.futures_leverage_mode],[\"Leverage\",pi().settings.monte_carlo.exchange.futures_leverage],[\"CPU Cores\",pi().settings.monte_carlo.cpu_cores]],s.trades_session&&(this.results.trades.summary_metrics=s.trades_session.summary_metrics||[],s.trades_session.results&&(this.results.trades.results=s.trades_session.results),s.trades_session.exception&&(this.results.trades.exception.error=s.trades_session.exception,this.results.trades.exception.traceback=s.trades_session.traceback)),s.candles_session&&(this.results.candles.summary_metrics=s.candles_session.summary_metrics||[],s.candles_session.exception&&(this.results.candles.exception.error=s.candles_session.exception,this.results.candles.exception.traceback=s.candles_session.traceback)),await this.fetchEquityCurves(n),s.status===\"finished\"?(this.results.executing=!1,this.results.showResults=!0,this.results.status=\"finished\"):s.status===\"running\"?(this.results.executing=!0,this.results.status=\"running\"):s.status===\"terminated\"?(this.results.executing=!0,this.results.status=\"terminated\",this.results.showResults=!0):s.status===\"stopped\"&&(this.results.executing=!0,this.results.status=\"stopped\",this.results.showResults=!1),Lt(\"success\",\"Session loaded successfully\"),this.form=s.state.form,!0)}catch(e){return console.error(\"Error loading session:\",e),Lt(\"error\",\"Failed to load session\"),!1}},async terminate(){try{this.results.executing=!1,this.results.showResults=!0,this.results.status=\"terminated\";const{data:n,error:e}=await Ot(\"/monte-carlo/terminate\",{id:this.form.id},!0);if(e.value){Pt(e.value);return}Lt(\"success\",\"Monte Carlo simulation terminated successfully\")}catch(n){Pt(n)}},async resume(){const n=this.form.num_scenarios,e=this._resetResults(),t=await Ot(\"/monte-carlo/resume\",e,!0);if(t.error.value){Pt(t.error.value),this.results.executing=!1,this.results.showResults=!0,this.results.status=\"terminated\",this.form.num_scenarios=n;return}const i=t.data.value,s=i==null?void 0:i.session;s.trades_session&&s.trades_session.results&&(this.results.trades.results=s.trades_session.results),s.candles_session&&s.candles_session.results&&(this.results.candles.results=s.candles_session.results),Lt(\"success\",\"Monte Carlo simulation resumed successfully\")},newSession(){const n=Number(this.form.num_scenarios),e=this.form.exchange,t=[...this.form.routes],i=[...this.form.data_routes],s=this.form.fast_mode,o=this.form.run_trades,r=this.form.run_candles,a=this.form.pipeline_type,l={batch_size:Number(this.form.pipeline_params.batch_size),close_sigma:Number(this.form.pipeline_params.close_sigma),high_sigma:Number(this.form.pipeline_params.high_sigma),low_sigma:Number(this.form.pipeline_params.low_sigma)};this.form.id=\"\",this.results.showResults=!1,this.results.executing=!1,this.results.status=\"\",this.results.trades.summary_metrics=[],this.results.trades.results=null,this.results.trades.exception.error=\"\",this.results.trades.exception.traceback=\"\",this.results.candles.summary_metrics=[],this.results.candles.results=null,this.results.candles.exception.error=\"\",this.results.candles.exception.traceback=\"\",this.results.generalInfo=[],this.results.infoLogs=\"\",this.form.num_scenarios=n,this.form.exchange=e,this.form.routes=t,this.form.data_routes=i,this.form.fast_mode=s,this.form.run_trades=o,this.form.run_candles=r,this.form.pipeline_type=a,this.form.pipeline_params=l},candlesInfoEvent(n,e){this.results.info=[[\"Period\",e.duration],[\"Starting-Ending Date\",`${Wn.timestampToDate(e.starting_time)} => ${Wn.timestampToDate(e.finishing_time)}`]]},generalInfoEvent(n,e){this.results.executing||(this.results.executing=!0),this.results.generalInfo=[[\"Started at\",e.started_at],[\"Run Trades\",e.run_trades?\"Yes\":\"No\"],[\"Run Candles\",e.run_candles?\"Yes\":\"No\"],[\"Scenarios\",e.num_scenarios],[\"Exchange Type\",e.exchange_type],[\"Leverage Mode\",e.leverage_mode],[\"Leverage\",e.leverage],[\"CPU Cores\",e.cpu_cores]]},tradesResultsEvent(n,e){this.results.trades.results=e},candlesResultsEvent(n,e){this.results.candles.results=e},async fetchEquityCurves(n,e=null){try{const t={};e&&(t.type=e);const{data:i,error:s}=await Ot(`/monte-carlo/sessions/${n}/equity-curves`,t,!0);if(s.value)return Pt(s.value),!1;const o=i.value;return o.trades&&(this.results.trades.original_equity_curve=o.trades.original,this.results.trades.scenario_equity_curves=o.trades.scenarios||[]),o.candles&&(this.results.candles.original_equity_curve=o.candles.original,this.results.candles.scenario_equity_curves=o.candles.scenarios||[]),!0}catch(t){return Pt(t),!1}},async fetchTradesEquityCurves(n){try{const{data:e,error:t}=await Ot(`/monte-carlo/sessions/${n}/equity-curves`,{},!0);if(t.value)return Pt(t.value),!1;const i=e.value;return i.trades&&(this.results.trades.original_equity_curve=i.trades.original,this.results.trades.scenario_equity_curves=i.trades.scenarios||[]),!0}catch(e){return Pt(e),!1}},async fetchCandlesEquityCurves(n){try{const{data:e,error:t}=await Ot(`/monte-carlo/sessions/${n}/equity-curves`,{},!0);if(t.value)return Pt(t.value),!1;const i=e.value;return i.candles&&(this.results.candles.original_equity_curve=i.candles.original,this.results.candles.scenario_equity_curves=i.candles.scenarios||[]),!0}catch(e){return Pt(e),!1}},async tradesSummaryEvent(n,e){this.results.trades.summary_metrics=e,await this.fetchTradesEquityCurves(n)},async candlesSummaryEvent(n,e){this.results.candles.summary_metrics=e,await this.fetchCandlesEquityCurves(n)},terminationEvent(n){this.results.executing&&(this.results.executing=!1,this.results.showResults=!0)},exceptionEvent(n,e){this.results.trades.exception.error=e.error,this.results.trades.exception.traceback=e.traceback},tradesProgressbarEvent(n,e){this.results.trades.progressbar.current=e.current,this.results.trades.progressbar.total=e.total,this.results.trades.progressbar.estimated_remaining_seconds=e.estimated_remaining_seconds||0},candlesProgressbarEvent(n,e){this.results.candles.progressbar.current=e.current,this.results.candles.progressbar.total=e.total,this.results.candles.progressbar.estimated_remaining_seconds=e.estimated_remaining_seconds||0},logEvent(n,e){const t=`${e.message}\n`;this.results.infoLogs+=t},alertEvent(n,e){this.results.executing=!1,this.results.showResults=!0},_resetResults(){var e;this.results.executing=!0,this.results.infoLogs=\"\",this.results.trades.progressbar.current=0,this.results.trades.progressbar.total=0,this.results.trades.progressbar.estimated_remaining_seconds=0,this.results.candles.progressbar.current=0,this.results.candles.progressbar.total=0,this.results.candles.progressbar.estimated_remaining_seconds=0,this.results.trades.exception.traceback=\"\",this.results.trades.exception.error=\"\",this.results.candles.exception.traceback=\"\",this.results.candles.exception.error=\"\",this.results.trades.summary_metrics=[],this.results.candles.summary_metrics=[],this.results.trades.results=null,this.results.candles.results=null,this.results.trades.original_equity_curve=null,this.results.trades.scenario_equity_curves=[],this.results.candles.original_equity_curve=null,this.results.candles.scenario_equity_curves=[],this.results.generalInfo=[],this.results.showResults=!1,this.results.status=\"running\";const n=typeof this.form.pipeline_type==\"string\"?this.form.pipeline_type:((e=this.form.pipeline_type)==null?void 0:e.value)||\"moving_block_bootstrap\";return{id:this.form.id,exchange:this.form.exchange,routes:this.form.routes,data_routes:this.form.data_routes,config:pi().settings.monte_carlo,start_date:this.form.start_date,finish_date:this.form.finish_date,run_trades:this.form.run_trades,run_candles:this.form.run_candles,num_scenarios:Number(this.form.num_scenarios),pipeline_type:n,pipeline_params:{batch_size:Number(this.form.pipeline_params.batch_size),close_sigma:Number(this.form.pipeline_params.close_sigma),high_sigma:Number(this.form.pipeline_params.high_sigma),low_sigma:Number(this.form.pipeline_params.low_sigma)},fast_mode:this.form.fast_mode,cpu_cores:Number(pi().settings.monte_carlo.cpu_cores),state:this.$state}},async updateSessionNotes(n,e,t){try{const{data:i,error:s}=await Ot(`/monte-carlo/sessions/${n}/notes`,{id:n,title:e,description:t},!0);return s.value?(Pt(s.value),!1):!0}catch(i){return Pt(i),!1}},async getSessionData(n){var e;try{const{data:t,error:i}=await Ot(`/monte-carlo/sessions/${n}`,{},!0);if(i.value)return((e=i.value)==null?void 0:e.statusCode)===404||Pt(i.value),null;const s=t.value;return(s==null?void 0:s.session)||null}catch(t){return Pt(t),null}},async getStrategyCode(n){try{const{data:e,error:t}=await Ot(`/monte-carlo/sessions/${n}/strategy-code`,{},!0);return e.value.strategy_code}catch(e){return Pt(e),null}},async getSessionLogs(n){try{const{data:e,error:t}=await Ot(`/monte-carlo/sessions/${n}/logs`,{},!0);return e.value.logs}catch(e){return Pt(e),null}},clearCurrentSession(){this._resetResults()}}}),pi=d_(\"main\",{state:()=>({loadingVar:!1,authToken:\"\",jesseTradeBearer:\"\",jesseTradeUser:null,hasLivePluginInstalled:!1,systemInfo:{},updateInfo:{},plan:\"\",planLimits:{},settings:{backtest:{logging:{order_submission:!0,order_cancellation:!0,order_execution:!0,position_opened:!0,position_increased:!0,position_reduced:!0,position_closed:!0,shorter_period_candles:!1,trading_candles:!0,balance_update:!0},warm_up_candles:210,exchanges:{}},live:{persistency:!0,generate_candles_from_1m:!1,logging:{strategy_execution:!0,order_submission:!0,order_cancellation:!0,order_execution:!0,position_opened:!0,position_increased:!0,position_reduced:!0,position_closed:!0,shorter_period_candles:!1,trading_candles:!0,balance_update:!0},warm_up_candles:210,exchanges:{},notifications:{enabled:!0,position_report_timeframe:\"1h\",events:{errors:!0,started_session:!0,terminated_session:!0,submitted_orders:!0,cancelled_orders:!0,executed_orders:!0,opened_position:!0,updated_position:!0,exchange_ws_reconnection:!0}}},optimization:{objective_function:\"sharpe\",warm_up_candles:210,trials:200,cpu_cores:1,best_candidates_count:20,exchange:{balance:1e4,fee:6e-4,type:\"futures\",futures_leverage:5,futures_leverage_mode:\"cross\"}},monte_carlo:{warm_up_candles:210,cpu_cores:1,exchange:{balance:1e4,fee:6e-4,type:\"futures\",futures_leverage:5,futures_leverage_mode:\"cross\"}},editor:{fontSize:16,cursorStyle:\"line\",minimap:!1,lineHeight:24,cursorWidth:2,cursorBlinking:\"blink\",renderLineHighlight:\"line\",autoCompletion:!0,documentHighlight:!0,documentHover:!0,signatureHelp:!0}},strategies:[],exchangeInfo:{},jesseSupportedTimeframes:[],exchangeSupportedSymbols:{},skippedJesseVersions:[],skippedLivePluginVersions:[],exchangeApiKeys:[],notificationApiKeys:[],isInitiated:!1}),persist:{storage:eL.localStorage},getters:{backtestingExchangeNames(){const n=[];for(const e in this.exchangeInfo)this.exchangeInfo[e].modes.backtesting&&n.push(e);return n.sort()},liveTradingExchangeNames(){const n=[];for(const e in this.exchangeInfo)this.exchangeInfo[e].modes.live_trading&&n.push(e);return n.sort()},isAuthenticated(){return this.authToken!==\"\"}},actions:{async initiate(){const n=this.isInitiated,{data:e,error:t}=await Ot(\"/system/general-info\",{},!0);if(t&&t.value&&t.value.statusCode!==200){Pt(t);return}const i=e.value;if(this.systemInfo=i.system_info,this.updateInfo=i.update_info,this.strategies=i.strategies,this.exchangeInfo=i.exchanges,this.jesseSupportedTimeframes=i.jesse_supported_timeframes,this.hasLivePluginInstalled=i.has_live_plugin_installed,this.plan=i.plan,this.planLimits=i.limits,this.plan===\"guest\"&&(this.jesseTradeBearer=\"\",this.jesseTradeUser=null),n)return;await this.authenticateJesseTrade();for(const a in this.exchangeInfo){const l=this.exchangeInfo[a];l.modes.backtesting&&(this.settings.backtest.exchanges[a]={name:a,fee:l.fee,balance:1e4,type:l.type},l.type===\"futures\"&&(this.settings.backtest.exchanges[a].futures_leverage_mode=\"cross\",this.settings.backtest.exchanges[a].futures_leverage=2)),l.modes.live_trading&&(this.settings.live.exchanges[l.name]={name:a,fee:l.fee,futures_leverage_mode:\"cross\",futures_leverage:2,balance:1e4})}const{data:s,error:o}=await Ot(\"/config/get\",{current_config:this.settings},!0);if(o.value&&o.value.statusCode!==200){Pt(o);return}const r=s.value;this.settings=r.data.data,await this.syncOpenTabs(),await this.fetchExchangeApiKeys(),await this.fetchNotificationApiKeys(),Xu().initiated=!0,this.isInitiated=!0},async syncOpenTabs(){await tme().init(),await ime().init(),await sme().init(),await dj().init()},updateConfig:CTe(async()=>{if(!pi().settings)return;const{data:n,error:e}=await Ot(\"/config/update\",{current_config:pi().settings},!0);e.value&&e.value.statusCode!==200&&Pt(e)},1e3,!0,!0),async fetchExchangeApiKeys(){const{data:n,error:e}=await jl(\"/exchange/api-keys\",!0);if(e.value&&e.value.statusCode!==200){Pt(e);return}const t=n.value;this.exchangeApiKeys=t.data},async fetchNotificationApiKeys(){const{data:n,error:e}=await jl(\"/notification/api-keys\",!0);if(e.value&&e.value.statusCode!==200){Pt(e);return}const t=n.value;this.notificationApiKeys=t.data},setAuthToken(n){this.authToken=n},async updateSupportedSymbols(n){const{data:e,error:t}=await Ot(\"/exchange/supported-symbols\",{exchange:n},!0);if(t.value&&t.value.statusCode!==200){Pt(t);return}const i=e.value;if(!i){console.log(\"resuslt of updateSupportedSymbols is null\");return}this.exchangeSupportedSymbols[n]={data:i.data,updated_at:new Date}},async getExchangeSupportedSymbols(n){var e;return await this.updateSupportedSymbols(n),(e=this.exchangeSupportedSymbols[n])==null?void 0:e.data},async authenticateJesseTrade(){const{data:n,error:e}=await Ot(\"/auth/jesse-trade-token\",{},!0);if(e.value){this.jesseTradeBearer=\"\",this.jesseTradeUser=null,console.log(\"Error authenticating with jesse.trade:\",e.value);return}const t=n.value;t&&t.status===\"success\"?(this.jesseTradeBearer=t.access_token,this.jesseTradeUser=t.user,console.log(\"Successfully authenticated with jesse.trade\")):(this.jesseTradeBearer=\"\",this.jesseTradeUser=null,console.log(\"Authentication response:\",t))},async fetchJesseTradeStrategies(n,e,t,i){let s=`/strategy/index?period=${encodeURIComponent(n)}&sort_by=${encodeURIComponent(e)}`;t&&(s+=`&submitted_after=${encodeURIComponent(t)}`),i&&(s+=`&submitted_before=${encodeURIComponent(i)}`);const{data:o,error:r}=await jl(s,!0,!0);return r&&r.value&&r.value.statusCode!==200?(Pt(r),[]):o.value.strategies||[]},async fetchJesseTradePeriods(){const{data:n,error:e}=await jl(\"/strategy/periods\",!0);return e&&e.value&&e.value.statusCode!==200?(Pt(e),[]):n.value.periods||[]},async getJesseTradeStrategy(n){const{data:e,error:t}=await jl(`/strategy/jesse-trade/${n}`,!0);return t&&t.value&&t.value.statusCode!==200?(Pt(t),null):e.value},async importStrategy(n){const{data:e,error:t}=await Ot(\"/strategy/import\",{slug:n},!0,!0);if(t&&t.value&&t.value.statusCode!==200)return Pt(t),null;const i=e.value;if(i.status===\"success\"){const{data:s}=await Ot(\"/strategy/all\",{},!0);s.value&&(this.strategies=s.value.strategies||[])}return i},async getJesseTradeStrategyMetrics(n,e,t,i){const{data:s,error:o}=await jl(`/strategy/jesse-trade/${n}/metrics?period=${encodeURIComponent(e)}&symbol=${t}&timeframe=${i}`,!0);return o&&o.value&&o.value.statusCode!==200?(Pt(o),null):s.value}}});function elt(n){const e=pi();return{createClient:i=>{const s=i.getModel();if(!s)return;const o=s.uri;console.log(\"📝 Monaco model URI:\",o.toString()),console.log(\"📝 URI scheme:\",o.scheme),console.log(\"📝 URI path:\",o.path);const r={socket:null,isInitialized:!1,messageId:0,providers:{},settingsWatcher:()=>{}},a=new WebSocket(n.wsUrl);r.socket=a,a.onopen=()=>{console.log(\"✅ Connected to Pyright LSP\"),a.send(JSON.stringify({jsonrpc:\"2.0\",id:r.messageId++,method:\"initialize\",params:{processId:null,capabilities:{textDocument:{completion:{completionItem:{snippetSupport:!0}},hover:{contentFormat:[\"markdown\",\"plaintext\"]},signatureHelp:{signatureInformation:{documentationFormat:[\"markdown\",\"plaintext\"],parameterInformation:{labelOffsetSupport:!0}}},documentHighlight:{},formatting:{dynamicRegistration:!0},rangeFormatting:{dynamicRegistration:!0}}},initializationOptions:n.initializationOptions}}))};let l=1;const c=s.onDidChangeContent(()=>{r.isInitialized&&(l++,a.send(JSON.stringify({jsonrpc:\"2.0\",method:\"textDocument/didChange\",params:{textDocument:{uri:o.toString(),version:l},contentChanges:[{text:s.getValue()}]}})))});a.onmessage=u=>{const h=JSON.parse(u.data);if(h.id===0&&h.result){console.log(\"✅ LSP initialized\"),a.send(JSON.stringify({jsonrpc:\"2.0\",method:\"initialized\",params:{}})),a.send(JSON.stringify({jsonrpc:\"2.0\",method:\"textDocument/didOpen\",params:{textDocument:{uri:o.toString(),languageId:\"python\",version:1,text:s.getValue()}}})),r.isInitialized=!0,e.settings.editor.autoCompletion&&(r.providers.completion=die(r,n,o)),e.settings.editor.documentHover&&(r.providers.hover=uie(r,n,o)),e.settings.editor.signatureHelp&&(r.providers.signatureHelp=hie(r,n,o)),e.settings.editor.documentFormatting&&n.isFormattingAvailableOnCurrentPlatform&&(r.providers.documentFormatting=fie(r,n,o)),e.settings.editor.documentHighlight&&(r.providers.documentHighlight=gie(r,n,o));const f=Dn(()=>e.settings.editor,g=>{r.isInitialized&&(!g.autoCompletion&&r.providers.completion&&(r.providers.completion.dispose(),delete r.providers.completion),!g.documentHover&&r.providers.hover&&(r.providers.hover.dispose(),delete r.providers.hover),!g.signatureHelp&&r.providers.signatureHelp&&(r.providers.signatureHelp.dispose(),delete r.providers.signatureHelp),!g.documentFormatting&&r.providers.documentFormatting&&(r.providers.documentFormatting.dispose(),delete r.providers.documentFormatting),!g.documentHighlight&&r.providers.documentHighlight&&(r.providers.documentHighlight.dispose(),delete r.providers.documentHighlight),g.autoCompletion&&!r.providers.completion&&(r.providers.completion=die(r,n,o)),g.documentHover&&!r.providers.hover&&(r.providers.hover=uie(r,n,o)),g.signatureHelp&&!r.providers.signatureHelp&&(r.providers.signatureHelp=hie(r,n,o)),g.documentFormatting&&!r.providers.documentFormatting&&n.isFormattingAvailableOnCurrentPlatform&&(r.providers.documentFormatting=fie(r,n,o)),g.documentHighlight&&!r.providers.documentHighlight&&(r.providers.documentHighlight=gie(r,n,o)))},{deep:!0,immediate:!1});r.settingsWatcher=f}if(h.method===\"textDocument/publishDiagnostics\"){const f=h.params.diagnostics.map(g=>({message:g.message,severity:g.severity===1?nR.Error:nR.Warning,startLineNumber:g.range.start.line+1,startColumn:g.range.start.character+1,endLineNumber:g.range.end.line+1,endColumn:g.range.end.character+1}));sU.setModelMarkers(s,\"pyright\",f)}},a.onerror=u=>{console.error(\"❌ LSP WebSocket error:\",u)},a.onclose=()=>{console.log(\"🔌 LSP connection closed\")};const d=()=>{console.log(\"🧹 Cleaning up LSP connection\"),c.dispose(),Object.values(r.providers).forEach(u=>{u.dispose()}),r.settingsWatcher(),a.readyState===WebSocket.OPEN&&(a.send(JSON.stringify({jsonrpc:\"2.0\",method:\"textDocument/didClose\",params:{textDocument:{uri:o.toString()}}})),a.close())};return i.onDidDispose(d),d}}}const tlt=ua(async n=>{let e,t,i=\"\",s=!1;const{data:o,error:r}=([e,t]=Vv(()=>jl(\"/lsp-config\",!0)),e=await e,t(),e);if(o.value){const l=o.value;i=`ws://localhost:${l.ws_port}${l.ws_path}`,s=l.is_formatting_available}else console.log(\"🔌 Failed to get LSP config, using default values\"),i=\"ws://localhost:9011/lsp\",s=!1;const a=elt({languageId:\"python\",wsUrl:i,completionTriggerCharacters:[\".\"],isFormattingAvailableOnCurrentPlatform:s});n.provide(\"connectPyrightLsp\",a.createClient)}),ilt=ua(()=>{Fr().beforeEach((e,t)=>{t.path&&t.path!==e.path&&sessionStorage.setItem(\"previousRoute\",t.path)})}),nlt=[vIe,CIe,WEe,VEe,$Ee,dTe,gTe,pTe,mTe,NTe,RTe,KNe,ZNe,t2e,tlt,ilt];function slt(n,e){const t=e/n*100;return 2/Math.PI*100*Math.atan(t/50)}function olt(n={}){const{duration:e=2e3,throttle:t=200,hideDelay:i=500,resetDelay:s=400}=n,o=n.estimatedProgress||slt,r=In(),a=Ue(0),l=Ue(!1),c=Ue(!1);let d=!1,u,h,f,g;const p=()=>{c.value=!1,_(0)};function _(D=0){if(!r.isHydrating){if(D>=100)return w();S(),a.value=D<0?0:D,t?h=setTimeout(()=>{l.value=!0,x()},t):(l.value=!0,x())}}function b(){f=setTimeout(()=>{l.value=!1,g=setTimeout(()=>{a.value=0},s)},i)}function w(D={}){a.value=100,d=!0,S(),y(),D.error&&(c.value=!0),D.force?(a.value=0,l.value=!1):b()}function y(){clearTimeout(f),clearTimeout(g)}function S(){clearTimeout(h),cancelAnimationFrame(u)}function x(){d=!1;let D;function I(N){if(d)return;D??(D=N);const P=N-D;a.value=Math.max(0,Math.min(100,o(e,P))),u=requestAnimationFrame(I)}u=requestAnimationFrame(I)}let k=()=>{};{const D=r.hook(\"page:loading:start\",()=>{p()}),I=r.hook(\"page:loading:end\",()=>{w()}),N=r.hook(\"vue:error\",()=>w());k=()=>{N(),D(),I(),S()}}return{_cleanup:k,progress:ue(()=>a.value),isLoading:ue(()=>l.value),error:ue(()=>c.value),start:p,set:_,finish:w,clear:S}}function rlt(n={}){const e=In(),t=e._loadingIndicator=e._loadingIndicator||olt(n);return r_()&&(e._loadingIndicatorDeps=e._loadingIndicatorDeps||0,e._loadingIndicatorDeps++,vC(()=>{e._loadingIndicatorDeps--,e._loadingIndicatorDeps===0&&(t._cleanup(),delete e._loadingIndicator)})),t}const alt=kt({name:\"NuxtLoadingIndicator\",props:{throttle:{type:Number,default:200},duration:{type:Number,default:2e3},height:{type:Number,default:3},color:{type:[String,Boolean],default:\"repeating-linear-gradient(to right,#00dc82 0%,#34cdfe 50%,#0047e1 100%)\"},errorColor:{type:String,default:\"repeating-linear-gradient(to right,#f87171 0%,#ef4444 100%)\"},estimatedProgress:{type:Function,required:!1}},setup(n,{slots:e,expose:t}){const{progress:i,isLoading:s,error:o,start:r,finish:a,clear:l}=rlt({duration:n.duration,throttle:n.throttle,estimatedProgress:n.estimatedProgress});return t({progress:i,isLoading:s,error:o,start:r,finish:a,clear:l}),()=>$i(\"div\",{class:\"nuxt-loading-indicator\",style:{position:\"fixed\",top:0,right:0,left:0,pointerEvents:\"none\",width:\"auto\",height:`${n.height}px`,opacity:s.value?1:0,background:o.value?n.errorColor:n.color||void 0,backgroundSize:`${100/i.value*100}% auto`,transform:`scaleX(${i.value}%)`,transformOrigin:\"left\",transition:\"transform 0.1s, height 0.4s, opacity 0.4s\",zIndex:999999}},e)}});function llt(n,e){return fe(),Re(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[q(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3\"})])}function nne(n,e){return fe(),Re(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[q(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"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\"})])}function ome(n,e){return fe(),Re(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[q(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99\"})])}function clt(n,e){return fe(),Re(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[q(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5\"})])}function sne(n,e){return fe(),Re(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[q(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M14.857 17.082a23.848 23.848 0 0 0 5.454-1.31A8.967 8.967 0 0 1 18 9.75V9A6 6 0 0 0 6 9v.75a8.967 8.967 0 0 1-2.312 6.022c1.733.64 3.56 1.085 5.455 1.31m5.714 0a24.255 24.255 0 0 1-5.714 0m5.714 0a3 3 0 1 1-5.714 0M3.124 7.5A8.969 8.969 0 0 1 5.292 3m13.416 0a8.969 8.969 0 0 1 2.168 4.5\"})])}function rme(n,e){return fe(),Re(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[q(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M15.75 15.75V18m-7.5-6.75h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V13.5Zm0 2.25h.008v.008H8.25v-.008Zm0 2.25h.008v.008H8.25V18Zm2.498-6.75h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V13.5Zm0 2.25h.007v.008h-.007v-.008Zm0 2.25h.007v.008h-.007V18Zm2.504-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5Zm0 2.25h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V18Zm2.498-6.75h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V13.5ZM8.25 6h7.5v2.25h-7.5V6ZM12 2.25c-1.892 0-3.758.11-5.593.322C5.307 2.7 4.5 3.65 4.5 4.757V19.5a2.25 2.25 0 0 0 2.25 2.25h10.5a2.25 2.25 0 0 0 2.25-2.25V4.757c0-1.108-.806-2.057-1.907-2.185A48.507 48.507 0 0 0 12 2.25Z\"})])}function one(n,e){return fe(),Re(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[q(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M2.25 12.76c0 1.6 1.123 2.994 2.707 3.227 1.087.16 2.185.283 3.293.369V21l4.076-4.076a1.526 1.526 0 0 1 1.037-.443 48.282 48.282 0 0 0 5.68-.494c1.584-.233 2.707-1.626 2.707-3.228V6.741c0-1.602-1.123-2.995-2.707-3.228A48.394 48.394 0 0 0 12 3c-2.392 0-4.744.175-7.043.513C3.373 3.746 2.25 5.14 2.25 6.741v6.018Z\"})])}function dlt(n,e){return fe(),Re(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[q(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"m4.5 12.75 6 6 9-13.5\"})])}function rne(n,e){return fe(),Re(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[q(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M20.25 6.375c0 2.278-3.694 4.125-8.25 4.125S3.75 8.653 3.75 6.375m16.5 0c0-2.278-3.694-4.125-8.25-4.125S3.75 4.097 3.75 6.375m16.5 0v11.25c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125V6.375m16.5 0v3.75m-16.5-3.75v3.75m16.5 0v3.75C20.25 16.153 16.556 18 12 18s-8.25-1.847-8.25-4.125v-3.75m16.5 0c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125\"})])}function ame(n,e){return fe(),Re(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[q(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"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\"})])}function ane(n,e){return fe(),Re(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[q(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M4.5 12a7.5 7.5 0 0 0 15 0m-15 0a7.5 7.5 0 1 1 15 0m-15 0H3m16.5 0H21m-1.5 0H12m-8.457 3.077 1.41-.513m14.095-5.13 1.41-.513M5.106 17.785l1.15-.964m11.49-9.642 1.149-.964M7.501 19.795l.75-1.3m7.5-12.99.75-1.3m-6.063 16.658.26-1.477m2.605-14.772.26-1.477m0 17.726-.26-1.477M10.698 4.614l-.26-1.477M16.5 19.794l-.75-1.299M7.5 4.205 12 12m6.894 5.785-1.149-.964M6.256 7.178l-1.15-.964m15.352 8.864-1.41-.513M4.954 9.435l-1.41-.514M12.002 12l-3.75 6.495\"})])}function lme(n,e){return fe(),Re(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[q(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M8.25 3v1.5M4.5 8.25H3m18 0h-1.5M4.5 12H3m18 0h-1.5m-15 3.75H3m18 0h-1.5M8.25 19.5V21M12 3v1.5m0 15V21m3.75-18v1.5m0 15V21m-9-1.5h10.5a2.25 2.25 0 0 0 2.25-2.25V6.75a2.25 2.25 0 0 0-2.25-2.25H6.75A2.25 2.25 0 0 0 4.5 6.75v10.5a2.25 2.25 0 0 0 2.25 2.25Zm.75-12h9v9h-9v-9Z\"})])}function cme(n,e){return fe(),Re(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[q(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M12 6v12m-3-2.818.879.659c1.171.879 3.07.879 4.242 0 1.172-.879 1.172-2.303 0-3.182C13.536 12.219 12.768 12 12 12c-.725 0-1.45-.22-2.003-.659-1.106-.879-1.106-2.303 0-3.182s2.9-.879 4.006 0l.415.33M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z\"})])}function lne(n,e){return fe(),Re(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[q(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m3.75 9v6m3-3H9m1.5-12H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z\"})])}function ult(n,e){return fe(),Re(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[q(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M12 6.75a.75.75 0 1 1 0-1.5.75.75 0 0 1 0 1.5ZM12 12.75a.75.75 0 1 1 0-1.5.75.75 0 0 1 0 1.5ZM12 18.75a.75.75 0 1 1 0-1.5.75.75 0 0 1 0 1.5Z\"})])}function cne(n,e){return fe(),Re(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[q(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"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\"})])}function dne(n,e){return fe(),Re(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[q(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M15 9h3.75M15 12h3.75M15 15h3.75M4.5 19.5h15a2.25 2.25 0 0 0 2.25-2.25V6.75A2.25 2.25 0 0 0 19.5 4.5h-15a2.25 2.25 0 0 0-2.25 2.25v10.5A2.25 2.25 0 0 0 4.5 19.5Zm6-10.125a1.875 1.875 0 1 1-3.75 0 1.875 1.875 0 0 1 3.75 0Zm1.294 6.336a6.721 6.721 0 0 1-3.17.789 6.721 6.721 0 0 1-3.168-.789 3.376 3.376 0 0 1 6.338 0Z\"})])}function dme(n,e){return fe(),Re(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[q(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"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\"})])}function une(n,e){return fe(),Re(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[q(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M15.75 5.25a3 3 0 0 1 3 3m3 0a6 6 0 0 1-7.029 5.912c-.563-.097-1.159.026-1.563.43L10.5 17.25H8.25v2.25H6v2.25H2.25v-2.818c0-.597.237-1.17.659-1.591l6.499-6.499c.404-.404.527-1 .43-1.563A6 6 0 1 1 21.75 8.25Z\"})])}function hlt(n,e){return fe(),Re(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[q(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z\"})])}function flt(n,e){return fe(),Re(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[q(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M18.364 18.364A9 9 0 0 0 5.636 5.636m12.728 12.728A9 9 0 0 1 5.636 5.636m12.728 12.728L5.636 5.636\"})])}function z3(n,e){return fe(),Re(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[q(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"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\"})])}function glt(n,e){return fe(),Re(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[q(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z\"})])}function hne(n,e){return fe(),Re(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[q(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M15.75 6a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0ZM4.501 20.118a7.5 7.5 0 0 1 14.998 0A17.933 17.933 0 0 1 12 21.75c-2.676 0-5.216-.584-7.499-1.632Z\"})])}function LO(n,e){return fe(),Re(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[q(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M6 18 18 6M6 6l12 12\"})])}const plt={key:0,class:\"relative bg-indigo-600 dark:bg-indigo-400 select-none text-white dark:text-black\"},mlt={class:\"max-w-7xl mx-auto py-3 px-3 sm:px-6 lg:px-8\"},_lt={class:\"pr-16 sm:text-center sm:px-16\"},vlt={class:\"font-medium\"},blt={class:\"md:inline\"},Clt={class:\"absolute inset-y-0 right-0 pt-1 pr-1 flex items-start sm:pt-1 sm:pr-2 sm:items-start\"},wlt=kt({__name:\"UpdateBanner\",setup(n){const e=Ue(!1),t=pi(),i=ue(()=>t.updateInfo),s=ue(()=>t.systemInfo),o=ue(()=>{if(e.value||!i.value||!i.value.is_update_info_available)return{flag:!1,message:\"\",type:\"\",version:\"\"};const a=t.skippedJesseVersions,l=t.skippedLivePluginVersions;return i.value.jesse_latest_version>s.value.jesse_version&&!a.includes(i.value.jesse_latest_version)?{flag:!0,message:`Version \"${i.value.jesse_latest_version}\" of Jesse is available. You are currently running version \"${s.value.jesse_version}\".`,type:\"jesse\",version:i.value.jesse_latest_version}:s.value.live_plugin_version&&i.value.jesse_live_latest_version>s.value.live_plugin_version&&!l.includes(i.value.jesse_live_latest_version)?{flag:!0,message:`Version \"${i.value.jesse_live_latest_version}\" of the live plugin is available. You are running \"${s.value.live_plugin_version}\".`,type:\"live\",version:i.value.jesse_live_latest_version}:{flag:!1,message:\"\",type:\"\",version:\"\"}}),r=(a,l)=>{if(a===\"jesse\"){const c=t.skippedJesseVersions||[];c.push(l),t.skippedJesseVersions=c,e.value=!0}if(a===\"live\"){const c=t.skippedLivePluginVersions||[];c.push(l),t.skippedLivePluginVersions=c,e.value=!0}};return(a,l)=>j(o).flag?(fe(),Re(\"div\",plt,[q(\"div\",mlt,[q(\"div\",_lt,[q(\"p\",vlt,[q(\"span\",blt,Ni(j(o).message),1),l[1]||(l[1]=q(\"span\",{class:\"block sm:ml-2 sm:inline-block\"},[q(\"a\",{href:\"https://docs.jesse.trade/docs/getting-started/update.html\",target:\"_blank\",class:\"font-bold underline\"},[at(\" Update Guide \"),q(\"span\",{\"aria-hidden\":\"true\"},\"→\")])],-1))])]),q(\"div\",Clt,[q(\"button\",{type:\"button\",class:\"flex p-2 rounded-md hover:bg-indigo-500 focus:outline-none focus:ring-0\",onClick:l[0]||(l[0]=c=>r(j(o).type,j(o).version))},[te(j(LO),{class:\"h-6 w-6\",\"aria-hidden\":\"true\"})])])])])):Bt(\"\",!0)}}),Js=(n,e)=>{const t=n.__vccOpts||n;for(const[i,s]of e)t[i]=s;return t},ylt={},Slt={class:\"text-2xl mb-4\"};function xlt(n,e){return fe(),Re(\"h3\",Slt,[en(n.$slots,\"default\")])}const sy=Js(ylt,[[\"render\",xlt]]),Ua=(n,e,t,i,s=!1)=>{const o=axe(),r=JR(),a=ue(()=>{var h;const c=Z4(e),d=Z4(t),u=Z4(i);return ha((c==null?void 0:c.strategy)||((h=r.ui)==null?void 0:h.strategy),u?{wrapper:u}:{},c||{},s?mS(r.ui,n,{}):{},d||{})}),l=ue(()=>hNe(o,[\"class\"]));return{ui:a,attrs:l}},aI=(n,e)=>{const t=Ui(\"form-events\",void 0),i=Ui(\"form-group\",void 0),s=Ui(\"form-inputs\",void 0);i&&(n!=null&&n.id&&(i.inputId.value=n==null?void 0:n.id),s&&(s.value[i.name.value]=i.inputId.value));const o=Ue(!1);function r(d,u){t&&t.emit({type:d,path:u})}function a(){r(\"blur\",i==null?void 0:i.name.value),o.value=!0}function l(){r(\"change\",i==null?void 0:i.name.value)}const c=Lre(()=>{(o.value||i!=null&&i.eagerValidation.value)&&r(\"input\",i==null?void 0:i.name.value)},300);return{inputId:ue(()=>(n==null?void 0:n.id)??(i==null?void 0:i.inputId.value)),name:ue(()=>(n==null?void 0:n.name)??(i==null?void 0:i.name.value)),size:ue(()=>{var u;const d=e.size[i==null?void 0:i.size.value]?i==null?void 0:i.size.value:null;return(n==null?void 0:n.size)??d??((u=e==null?void 0:e.default)==null?void 0:u.size)}),color:ue(()=>{var d;return(d=i==null?void 0:i.error)!=null&&d.value?\"red\":n==null?void 0:n.color}),emitFormBlur:a,emitFormInput:c,emitFormChange:l}},Llt={wrapper:\"relative inline-flex items-center justify-center flex-shrink-0\",background:\"bg-gray-100 dark:bg-gray-800\",rounded:\"rounded-full\",text:\"font-medium leading-none text-gray-900 dark:text-white truncate\",placeholder:\"font-medium leading-none text-gray-500 dark:text-gray-400 truncate\",size:{\"3xs\":\"h-4 w-4 text-[8px]\",\"2xs\":\"h-5 w-5 text-[10px]\",xs:\"h-6 w-6 text-xs\",sm:\"h-8 w-8 text-sm\",md:\"h-10 w-10 text-base\",lg:\"h-12 w-12 text-lg\",xl:\"h-14 w-14 text-xl\",\"2xl\":\"h-16 w-16 text-2xl\",\"3xl\":\"h-20 w-20 text-3xl\"},chip:{base:\"absolute rounded-full ring-1 ring-white dark:ring-gray-900 flex items-center justify-center text-white dark:text-gray-900 font-medium\",background:\"bg-{color}-500 dark:bg-{color}-400\",position:{\"top-right\":\"top-0 right-0\",\"bottom-right\":\"bottom-0 right-0\",\"top-left\":\"top-0 left-0\",\"bottom-left\":\"bottom-0 left-0\"},size:{\"3xs\":\"h-[4px] min-w-[4px] text-[4px] p-px\",\"2xs\":\"h-[5px] min-w-[5px] text-[5px] p-px\",xs:\"h-1.5 min-w-[0.375rem] text-[6px] p-px\",sm:\"h-2 min-w-[0.5rem] text-[7px] p-0.5\",md:\"h-2.5 min-w-[0.625rem] text-[8px] p-0.5\",lg:\"h-3 min-w-[0.75rem] text-[10px] p-0.5\",xl:\"h-3.5 min-w-[0.875rem] text-[11px] p-1\",\"2xl\":\"h-4 min-w-[1rem] text-[12px] p-1\",\"3xl\":\"h-5 min-w-[1.25rem] text-[14px] p-1\"}},icon:{base:\"text-gray-500 dark:text-gray-400 flex-shrink-0\",size:{\"3xs\":\"h-2 w-2\",\"2xs\":\"h-2.5 w-2.5\",xs:\"h-3 w-3\",sm:\"h-4 w-4\",md:\"h-5 w-5\",lg:\"h-6 w-6\",xl:\"h-7 w-7\",\"2xl\":\"h-8 w-8\",\"3xl\":\"h-10 w-10\"}},default:{size:\"sm\",icon:null,chipColor:null,chipPosition:\"top-right\"}},klt={base:\"focus:outline-none focus-visible:outline-0 disabled:cursor-not-allowed disabled:opacity-75 flex-shrink-0\",font:\"font-medium\",rounded:\"rounded-md\",truncate:\"text-left break-all line-clamp-1\",block:\"w-full flex justify-center items-center\",inline:\"inline-flex items-center\",size:{\"2xs\":\"text-xs\",xs:\"text-xs\",sm:\"text-sm\",md:\"text-sm\",lg:\"text-sm\",xl:\"text-base\"},gap:{\"2xs\":\"gap-x-1\",xs:\"gap-x-1.5\",sm:\"gap-x-1.5\",md:\"gap-x-2\",lg:\"gap-x-2.5\",xl:\"gap-x-2.5\"},padding:{\"2xs\":\"px-2 py-1\",xs:\"px-2.5 py-1.5\",sm:\"px-2.5 py-1.5\",md:\"px-3 py-2\",lg:\"px-3.5 py-2.5\",xl:\"px-3.5 py-2.5\"},square:{\"2xs\":\"p-1\",xs:\"p-1.5\",sm:\"p-1.5\",md:\"p-2\",lg:\"p-2.5\",xl:\"p-2.5\"},color:{white:{solid:\"shadow-sm ring-1 ring-inset ring-gray-300 dark:ring-gray-700 text-gray-900 dark:text-white bg-white hover:bg-gray-50 disabled:bg-white dark:bg-gray-900 dark:hover:bg-gray-800/50 dark:disabled:bg-gray-900 focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400\",ghost:\"text-gray-900 dark:text-white hover:bg-white dark:hover:bg-gray-900 focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400\"},gray:{solid:\"shadow-sm ring-1 ring-inset ring-gray-300 dark:ring-gray-700 text-gray-700 dark:text-gray-200 bg-gray-50 hover:bg-gray-100 disabled:bg-gray-50 dark:bg-gray-800 dark:hover:bg-gray-700/50 dark:disabled:bg-gray-800 focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400\",ghost:\"text-gray-700 dark:text-gray-200 hover:text-gray-900 dark:hover:text-white hover:bg-gray-50 dark:hover:bg-gray-800 focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400\",link:\"text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-200 underline-offset-4 hover:underline focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400\"},black:{solid:\"shadow-sm text-white dark:text-gray-900 bg-gray-900 hover:bg-gray-800 disabled:bg-gray-900 dark:bg-white dark:hover:bg-gray-100 dark:disabled:bg-white focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400\",link:\"text-gray-900 dark:text-white underline-offset-4 hover:underline focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400\"}},variant:{solid:\"shadow-sm text-white dark:text-gray-900 bg-{color}-500 hover:bg-{color}-600 disabled:bg-{color}-500 dark:bg-{color}-400 dark:hover:bg-{color}-500 dark:disabled:bg-{color}-400 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-{color}-500 dark:focus-visible:outline-{color}-400\",outline:\"ring-1 ring-inset ring-current text-{color}-500 dark:text-{color}-400 hover:bg-{color}-50 disabled:bg-transparent dark:hover:bg-{color}-950 dark:disabled:bg-transparent focus-visible:ring-2 focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400\",soft:\"text-{color}-500 dark:text-{color}-400 bg-{color}-50 hover:bg-{color}-100 disabled:bg-{color}-50 dark:bg-{color}-950 dark:hover:bg-{color}-900 dark:disabled:bg-{color}-950 focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400\",ghost:\"text-{color}-500 dark:text-{color}-400 hover:bg-{color}-50 disabled:bg-transparent dark:hover:bg-{color}-950 dark:disabled:bg-transparent focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400\",link:\"text-{color}-500 hover:text-{color}-600 disabled:text-{color}-500 dark:text-{color}-400 dark:hover:text-{color}-500 dark:disabled:text-{color}-400 underline-offset-4 hover:underline focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400\"},icon:{base:\"flex-shrink-0\",loading:\"animate-spin\",size:{\"2xs\":\"h-4 w-4\",xs:\"h-4 w-4\",sm:\"h-5 w-5\",md:\"h-5 w-5\",lg:\"h-5 w-5\",xl:\"h-6 w-6\"}},default:{size:\"sm\",variant:\"solid\",color:\"primary\",loadingIcon:\"i-heroicons-arrow-path-20-solid\"}},kO={base:\"invisible before:visible before:block before:rotate-45 before:z-[-1] before:w-2 before:h-2\",ring:\"before:ring-1 before:ring-gray-200 dark:before:ring-gray-800\",rounded:\"before:rounded-sm\",background:\"before:bg-gray-200 dark:before:bg-gray-800\",shadow:\"before:shadow\",placement:\"group-data-[popper-placement*='right']:-left-1 group-data-[popper-placement*='left']:-right-1 group-data-[popper-placement*='top']:-bottom-1 group-data-[popper-placement*='bottom']:-top-1\"};({...kO});const Dlt={base:\"inline-flex items-center justify-center text-gray-900 dark:text-white\",padding:\"px-1\",size:{xs:\"h-4 min-w-[16px] text-[10px]\",sm:\"h-5 min-w-[20px] text-[11px]\",md:\"h-6 min-w-[24px] text-[12px]\"},rounded:\"rounded\",font:\"font-medium font-sans\",background:\"bg-gray-100 dark:bg-gray-800\",ring:\"ring-1 ring-gray-300 dark:ring-gray-700 ring-inset\",default:{size:\"sm\"}},uj={wrapper:\"relative\",base:\"relative block w-full disabled:cursor-not-allowed disabled:opacity-75 focus:outline-none border-0\",form:\"form-input\",rounded:\"rounded-md\",placeholder:\"placeholder-gray-400 dark:placeholder-gray-500\",file:{base:\"file:cursor-pointer file:rounded-l-md file:absolute file:left-0 file:inset-y-0 file:font-medium file:m-0 file:border-0 file:ring-1 file:ring-gray-300 dark:file:ring-gray-700 file:text-gray-900 dark:file:text-white file:bg-gray-50 hover:file:bg-gray-100 dark:file:bg-gray-800 dark:hover:file:bg-gray-700/50\",padding:{\"2xs\":\"ps-[85px]\",xs:\"ps-[87px]\",sm:\"ps-[96px]\",md:\"ps-[98px]\",lg:\"ps-[100px]\",xl:\"ps-[109px]\"}},size:{\"2xs\":\"text-xs\",xs:\"text-xs\",sm:\"text-sm\",md:\"text-sm\",lg:\"text-sm\",xl:\"text-base\"},gap:{\"2xs\":\"gap-x-1\",xs:\"gap-x-1.5\",sm:\"gap-x-1.5\",md:\"gap-x-2\",lg:\"gap-x-2.5\",xl:\"gap-x-2.5\"},padding:{\"2xs\":\"px-2 py-1\",xs:\"px-2.5 py-1.5\",sm:\"px-2.5 py-1.5\",md:\"px-3 py-2\",lg:\"px-3.5 py-2.5\",xl:\"px-3.5 py-2.5\"},leading:{padding:{\"2xs\":\"ps-7\",xs:\"ps-8\",sm:\"ps-9\",md:\"ps-10\",lg:\"ps-11\",xl:\"ps-12\"}},trailing:{padding:{\"2xs\":\"pe-7\",xs:\"pe-8\",sm:\"pe-9\",md:\"pe-10\",lg:\"pe-11\",xl:\"pe-12\"}},color:{white:{outline:\"shadow-sm bg-white dark:bg-gray-900 text-gray-900 dark:text-white ring-1 ring-inset ring-gray-300 dark:ring-gray-700 focus:ring-2 focus:ring-primary-500 dark:focus:ring-primary-400\"},gray:{outline:\"shadow-sm bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-white ring-1 ring-inset ring-gray-300 dark:ring-gray-700 focus:ring-2 focus:ring-primary-500 dark:focus:ring-primary-400\"}},variant:{outline:\"shadow-sm bg-transparent text-gray-900 dark:text-white ring-1 ring-inset ring-{color}-500 dark:ring-{color}-400 focus:ring-2 focus:ring-{color}-500 dark:focus:ring-{color}-400\",none:\"bg-transparent focus:ring-0 focus:shadow-none\"},icon:{base:\"flex-shrink-0 text-gray-400 dark:text-gray-500\",color:\"text-{color}-500 dark:text-{color}-400\",loading:\"animate-spin\",size:{\"2xs\":\"h-4 w-4\",xs:\"h-4 w-4\",sm:\"h-5 w-5\",md:\"h-5 w-5\",lg:\"h-5 w-5\",xl:\"h-6 w-6\"},leading:{wrapper:\"absolute inset-y-0 start-0 flex items-center\",pointer:\"pointer-events-none\",padding:{\"2xs\":\"px-2\",xs:\"px-2.5\",sm:\"px-2.5\",md:\"px-3\",lg:\"px-3.5\",xl:\"px-3.5\"}},trailing:{wrapper:\"absolute inset-y-0 end-0 flex items-center\",pointer:\"pointer-events-none\",padding:{\"2xs\":\"px-2\",xs:\"px-2.5\",sm:\"px-2.5\",md:\"px-3\",lg:\"px-3.5\",xl:\"px-3.5\"}}},default:{size:\"sm\",color:\"white\",variant:\"outline\",loadingIcon:\"i-heroicons-arrow-path-20-solid\"}},fne={container:\"z-20 group\",trigger:\"flex items-center w-full\",width:\"w-full\",height:\"max-h-60\",base:\"relative focus:outline-none overflow-y-auto scroll-py-1\",background:\"bg-white dark:bg-gray-800\",shadow:\"shadow-lg\",rounded:\"rounded-md\",padding:\"p-1\",ring:\"ring-1 ring-gray-200 dark:ring-gray-700\",empty:\"text-sm text-gray-400 dark:text-gray-500 px-2 py-1.5\",option:{base:\"cursor-default select-none relative flex items-center justify-between gap-1\",rounded:\"rounded-md\",padding:\"px-1.5 py-1.5\",size:\"text-sm\",color:\"text-gray-900 dark:text-white\",container:\"flex items-center gap-1.5 min-w-0\",active:\"bg-gray-100 dark:bg-gray-900\",inactive:\"\",selected:\"pe-7\",disabled:\"cursor-not-allowed opacity-50\",empty:\"text-sm text-gray-400 dark:text-gray-500 px-2 py-1.5\",icon:{base:\"flex-shrink-0 h-5 w-5\",active:\"text-gray-900 dark:text-white\",inactive:\"text-gray-400 dark:text-gray-500\"},selectedIcon:{wrapper:\"absolute inset-y-0 end-0 flex items-center\",padding:\"pe-2\",base:\"h-5 w-5 text-gray-900 dark:text-white flex-shrink-0\"},avatar:{base:\"flex-shrink-0\",size:\"2xs\"},chip:{base:\"flex-shrink-0 w-2 h-2 mx-1 rounded-full\"}},transition:{leaveActiveClass:\"transition ease-in duration-100\",leaveFromClass:\"opacity-100\",leaveToClass:\"opacity-0\"},popper:{placement:\"bottom-end\"},default:{selectedIcon:\"i-heroicons-check-20-solid\",trailingIcon:\"i-heroicons-chevron-down-20-solid\"},arrow:{...kO,ring:\"before:ring-1 before:ring-gray-200 dark:before:ring-gray-700\",background:\"before:bg-white dark:before:bg-gray-700\"}},Ilt={wrapper:\"\",inner:\"\",label:{wrapper:\"flex content-center items-center justify-between\",base:\"block font-medium text-gray-700 dark:text-gray-200\",required:\"after:content-['*'] after:ms-0.5 after:text-red-500 dark:after:text-red-400\"},size:{\"2xs\":\"text-xs\",xs:\"text-xs\",sm:\"text-sm\",md:\"text-sm\",lg:\"text-sm\",xl:\"text-base\"},container:\"mt-1 relative\",description:\"text-gray-500 dark:text-gray-400\",hint:\"text-gray-500 dark:text-gray-400\",help:\"mt-2 text-gray-500 dark:text-gray-400\",error:\"mt-2 text-red-500 dark:text-red-400\",default:{size:\"sm\"}},Elt={...uj,form:\"form-textarea\",default:{size:\"sm\",color:\"white\",variant:\"outline\"}},Tlt={...uj,form:\"form-select\",placeholder:\"text-gray-400 dark:text-gray-500\",default:{size:\"sm\",color:\"white\",variant:\"outline\",loadingIcon:\"i-heroicons-arrow-path-20-solid\",trailingIcon:\"i-heroicons-chevron-down-20-solid\"}},M1t={...fne,select:\"inline-flex items-center text-left cursor-default\",input:\"block w-[calc(100%+0.5rem)] focus:ring-transparent text-sm px-3 py-1.5 text-gray-700 dark:text-gray-200 bg-white dark:bg-gray-800 border-0 border-b border-gray-200 dark:border-gray-700 sticky -top-1 -mt-1 mb-1 -mx-1 z-10 placeholder-gray-400 dark:placeholder-gray-500 focus:outline-none\",required:\"absolute inset-0 w-px opacity-0 cursor-default\",label:\"block truncate\",option:{...fne.option,create:\"block truncate\"},transition:{leaveActiveClass:\"transition ease-in duration-100\",leaveFromClass:\"opacity-100\",leaveToClass:\"opacity-0\"},popper:{placement:\"bottom-end\"},default:{selectedIcon:\"i-heroicons-check-20-solid\",clearSearchOnClose:!1,showCreateOptionWhen:\"empty\"},arrow:{...kO,ring:\"before:ring-1 before:ring-gray-200 dark:before:ring-gray-700\",background:\"before:bg-white dark:before:bg-gray-700\"}},Nlt={wrapper:\"relative flex items-start\",container:\"flex items-center h-5\",base:\"h-4 w-4 dark:checked:bg-current dark:checked:border-transparent dark:indeterminate:bg-current dark:indeterminate:border-transparent disabled:opacity-50 disabled:cursor-not-allowed focus:ring-0 focus:ring-transparent focus:ring-offset-transparent\",form:\"form-checkbox\",rounded:\"rounded\",color:\"text-{color}-500 dark:text-{color}-400\",background:\"bg-white dark:bg-gray-900\",border:\"border border-gray-300 dark:border-gray-700\",ring:\"focus-visible:ring-2 focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400 focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:focus-visible:ring-offset-gray-900\",inner:\"ms-3 flex flex-col\",label:\"text-sm font-medium text-gray-700 dark:text-gray-200\",required:\"text-sm text-red-500 dark:text-red-400\",help:\"text-sm text-gray-500 dark:text-gray-400\",default:{color:\"primary\"}},Alt={base:\"relative inline-flex flex-shrink-0 border-2 border-transparent disabled:cursor-not-allowed disabled:opacity-50 focus:outline-none\",rounded:\"rounded-full\",ring:\"focus-visible:ring-2 focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400 focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:focus-visible:ring-offset-gray-900\",active:\"bg-{color}-500 dark:bg-{color}-400\",inactive:\"bg-gray-200 dark:bg-gray-700\",size:{\"2xs\":\"h-3 w-5\",xs:\"h-3.5 w-6\",sm:\"h-4 w-7\",md:\"h-5 w-9\",lg:\"h-6 w-11\",xl:\"h-7 w-[3.25rem]\",\"2xl\":\"h-8 w-[3.75rem]\"},container:{base:\"pointer-events-none relative inline-block rounded-full bg-white dark:bg-gray-900 shadow transform ring-0 transition ease-in-out duration-200\",active:{\"2xs\":\"translate-x-2 rtl:-translate-x-2\",xs:\"translate-x-2.5 rtl:-translate-x-2.5\",sm:\"translate-x-3 rtl:-translate-x-3\",md:\"translate-x-4 rtl:-translate-x-4\",lg:\"translate-x-5 rtl:-translate-x-5\",xl:\"translate-x-6 rtl:-translate-x-6\",\"2xl\":\"translate-x-7 rtl:-translate-x-7\"},inactive:\"translate-x-0 rtl:-translate-x-0\",size:{\"2xs\":\"h-2 w-2\",xs:\"h-2.5 w-2.5\",sm:\"h-3 w-3\",md:\"h-4 w-4\",lg:\"h-5 w-5\",xl:\"h-6 w-6\",\"2xl\":\"h-7 w-7\"}},icon:{base:\"absolute inset-0 h-full w-full flex items-center justify-center transition-opacity\",active:\"opacity-100 ease-in duration-200\",inactive:\"opacity-0 ease-out duration-100\",size:{\"2xs\":\"h-2 w-2\",xs:\"h-2 w-2\",sm:\"h-2 w-2\",md:\"h-3 w-3\",lg:\"h-4 w-4\",xl:\"h-5 w-5\",\"2xl\":\"h-6 w-6\"},on:\"text-{color}-500 dark:text-{color}-400\",off:\"text-gray-400 dark:text-gray-500\",loading:\"animate-spin text-{color}-500 dark:text-{color}-400\"},default:{onIcon:null,offIcon:null,loadingIcon:\"i-heroicons-arrow-path-20-solid\",color:\"primary\",size:\"md\"}},Rlt={base:\"\",background:\"bg-white dark:bg-gray-900\",divide:\"divide-y divide-gray-200 dark:divide-gray-800\",ring:\"ring-1 ring-gray-200 dark:ring-gray-800\",rounded:\"rounded-lg\",shadow:\"shadow\",body:{base:\"\",background:\"\",padding:\"px-4 py-5 sm:p-6\"},header:{base:\"\",background:\"\",padding:\"px-4 py-5 sm:px-6\"},footer:{base:\"\",background:\"\",padding:\"px-4 py-4 sm:px-6\"}},Mlt={wrapper:\"relative z-50\",inner:\"fixed inset-0 overflow-y-auto\",container:\"flex min-h-full items-end sm:items-center justify-center text-center\",padding:\"p-4 sm:p-0\",margin:\"sm:my-8\",base:\"relative text-left rtl:text-right flex flex-col\",overlay:{base:\"fixed inset-0 transition-opacity\",background:\"bg-gray-200/75 dark:bg-gray-800/75\",transition:{enter:\"ease-out duration-300\",enterFrom:\"opacity-0\",enterTo:\"opacity-100\",leave:\"ease-in duration-200\",leaveFrom:\"opacity-100\",leaveTo:\"opacity-0\"}},background:\"bg-white dark:bg-gray-900\",ring:\"\",rounded:\"rounded-lg\",shadow:\"shadow-xl\",width:\"w-full sm:max-w-lg\",height:\"\",fullscreen:\"w-screen h-screen\",transition:{enter:\"ease-out duration-300\",enterFrom:\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\",enterTo:\"opacity-100 translate-y-0 sm:scale-100\",leave:\"ease-in duration-200\",leaveFrom:\"opacity-100 translate-y-0 sm:scale-100\",leaveTo:\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\"}},Plt={wrapper:\"fixed inset-0 flex z-50\",overlay:{base:\"fixed inset-0 transition-opacity\",background:\"bg-gray-200/75 dark:bg-gray-800/75\",transition:{enter:\"ease-in-out duration-500\",enterFrom:\"opacity-0\",enterTo:\"opacity-100\",leave:\"ease-in-out duration-500\",leaveFrom:\"opacity-100\",leaveTo:\"opacity-0\"}},base:\"relative flex-1 flex flex-col w-full focus:outline-none\",background:\"bg-white dark:bg-gray-900\",ring:\"\",rounded:\"\",padding:\"\",shadow:\"shadow-xl\",width:\"w-screen max-w-md\",translate:{base:\"translate-x-0\",left:\"-translate-x-full rtl:translate-x-full\",right:\"translate-x-full rtl:-translate-x-full\"},transition:{enter:\"transform transition ease-in-out duration-300\",leave:\"transform transition ease-in-out duration-200\"}},Olt={wrapper:\"relative inline-flex\",container:\"z-20 group\",width:\"max-w-xs\",background:\"bg-white dark:bg-gray-900\",color:\"text-gray-900 dark:text-white\",shadow:\"shadow\",rounded:\"rounded\",ring:\"ring-1 ring-gray-200 dark:ring-gray-800\",base:\"[@media(pointer:coarse)]:hidden h-6 px-2 py-1 text-xs font-normal truncate relative\",shortcuts:\"hidden md:inline-flex flex-shrink-0 gap-0.5\",middot:\"mx-1 text-gray-700 dark:text-gray-200\",transition:{enterActiveClass:\"transition ease-out duration-200\",enterFromClass:\"opacity-0 translate-y-1\",enterToClass:\"opacity-100 translate-y-0\",leaveActiveClass:\"transition ease-in duration-150\",leaveFromClass:\"opacity-100 translate-y-0\",leaveToClass:\"opacity-0 translate-y-1\"},popper:{strategy:\"fixed\"},default:{openDelay:0,closeDelay:0},arrow:{...kO,base:\"[@media(pointer:coarse)]:hidden invisible before:visible before:block before:rotate-45 before:z-[-1] before:w-2 before:h-2\"}},Flt={wrapper:\"w-full pointer-events-auto\",container:\"relative overflow-hidden\",inner:\"w-0 flex-1\",title:\"text-sm font-medium text-gray-900 dark:text-white\",description:\"mt-1 text-sm leading-4 text-gray-500 dark:text-gray-400\",actions:\"flex items-center gap-2 mt-3 flex-shrink-0\",background:\"bg-white dark:bg-gray-900\",shadow:\"shadow-lg\",rounded:\"rounded-lg\",padding:\"p-4\",gap:\"gap-3\",ring:\"ring-1 ring-gray-200 dark:ring-gray-800\",icon:{base:\"flex-shrink-0 w-5 h-5\",color:\"text-{color}-500 dark:text-{color}-400\"},avatar:{base:\"flex-shrink-0 self-center\",size:\"md\"},progress:{base:\"absolute bottom-0 end-0 start-0 h-1\",background:\"bg-{color}-500 dark:bg-{color}-400\"},transition:{enterActiveClass:\"transform ease-out duration-300 transition\",enterFromClass:\"translate-y-2 opacity-0 sm:translate-y-0 sm:translate-x-2\",enterToClass:\"translate-y-0 opacity-100 sm:translate-x-0\",leaveActiveClass:\"transition ease-in duration-100\",leaveFromClass:\"opacity-100\",leaveToClass:\"opacity-0\"},default:{color:\"primary\",icon:null,timeout:5e3,closeButton:{icon:\"i-heroicons-x-mark-20-solid\",color:\"gray\",variant:\"link\",padded:!1},actionButton:{size:\"xs\",color:\"white\"}}},Blt={wrapper:\"fixed flex flex-col justify-end z-[55]\",position:\"bottom-0 end-0\",width:\"w-full sm:w-96\",container:\"px-4 sm:px-6 py-6 space-y-3 overflow-y-auto\"},gne=ha(Pi.ui.strategy,Pi.ui.checkbox,Nlt),Wlt=kt({inheritAttrs:!1,props:{id:{type:String,default:()=>null},value:{type:[String,Number,Boolean,Object],default:null},modelValue:{type:[Boolean,Array],default:null},name:{type:String,default:null},disabled:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:void 0},help:{type:String,default:null},label:{type:String,default:null},required:{type:Boolean,default:!1},color:{type:String,default:()=>gne.default.color,validator(n){return Pi.ui.colors.includes(n)}},inputClass:{type:String,default:\"\"},class:{type:[String,Object,Array],default:()=>\"\"},ui:{type:Object,default:()=>({})}},emits:[\"update:modelValue\",\"change\"],setup(n,{emit:e}){const{ui:t,attrs:i}=Ua(\"checkbox\",Ps(n,\"ui\"),gne,Ps(n,\"class\")),{emitFormChange:s,color:o,name:r,inputId:a}=aI(n),l=a.value??nTe(),c=ue({get(){return n.modelValue},set(h){e(\"update:modelValue\",h)}}),d=h=>{e(\"change\",h.target.value),s()},u=ue(()=>ac(Vn(t.value.base,t.value.form,t.value.rounded,t.value.background,t.value.border,o.value&&t.value.ring.replaceAll(\"{color}\",o.value),o.value&&t.value.color.replaceAll(\"{color}\",o.value)),n.inputClass));return{ui:t,attrs:i,toggle:c,inputId:l,name:r,inputClass:u,onChange:d}}}),Hlt=[\"data-n-ids\"],Vlt=[\"id\",\"name\",\"required\",\"value\",\"disabled\",\"indeterminate\"],zlt=[\"for\"];function $lt(n,e,t,i,s,o){return fe(),Re(\"div\",{class:st(n.ui.wrapper),\"data-n-ids\":n.attrs[\"data-n-ids\"]},[q(\"div\",{class:st(n.ui.container)},[HSe(q(\"input\",an({id:n.inputId,\"onUpdate:modelValue\":e[0]||(e[0]=r=>n.toggle=r),name:n.name,required:n.required,value:n.value,disabled:n.disabled,indeterminate:n.indeterminate,type:\"checkbox\",class:n.inputClass},n.attrs,{onChange:e[1]||(e[1]=(...r)=>n.onChange&&n.onChange(...r))}),null,16,Vlt),[[RLe,n.toggle]])],2),n.label||n.$slots.label?(fe(),Re(\"div\",{key:0,class:st(n.ui.inner)},[q(\"label\",{for:n.inputId,class:st(n.ui.label)},[en(n.$slots,\"label\",{},()=>[at(Ni(n.label),1)]),n.required?(fe(),Re(\"span\",{key:0,class:st(n.ui.required)},\"*\",2)):Bt(\"\",!0)],10,zlt),n.help?(fe(),Re(\"p\",{key:0,class:st(n.ui.help)},Ni(n.help),3)):Bt(\"\",!0)],2)):Bt(\"\",!0)],10,Hlt)}const ume=Js(Wlt,[[\"render\",$lt]]),Ult={},jlt={class:\"bg-gray-50 dark:bg-gray-700 dark:border-gray-800 overflow-hidden border sm:rounded-lg\"},Klt={class:\"px-4 py-5 sm:p-6\"};function qlt(n,e){return fe(),Re(\"div\",jlt,[q(\"div\",Klt,[en(n.$slots,\"default\")])])}const oy=Js(Ult,[[\"render\",qlt]]),hme=Object.freeze({left:0,top:0,width:16,height:16}),fme=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),hj=Object.freeze({...hme,...fme});Object.freeze({...hj,body:\"\",hidden:!1});({...hme});const gme=Object.freeze({width:null,height:null}),pme=Object.freeze({...gme,...fme});function Glt(n,e){const t={...n};for(const i in e){const s=e[i],o=typeof s;i in gme?(s===null||s&&(o===\"string\"||o===\"number\"))&&(t[i]=s):o===typeof t[i]&&(t[i]=i===\"rotate\"?s%4:s)}return t}const Zlt=/[\\s,]+/;function Ylt(n,e){e.split(Zlt).forEach(t=>{switch(t.trim()){case\"horizontal\":n.hFlip=!0;break;case\"vertical\":n.vFlip=!0;break}})}function Xlt(n,e=0){const t=n.replace(/^-?[0-9.]*/,\"\");function i(s){for(;s<0;)s+=4;return s%4}if(t===\"\"){const s=parseInt(n);return isNaN(s)?0:i(s)}else if(t!==n){let s=0;switch(t){case\"%\":s=25;break;case\"deg\":s=90}if(s){let o=parseFloat(n.slice(0,n.length-t.length));return isNaN(o)?0:(o=o/s,o%1===0?i(o):0)}}return e}const Qlt=/(-?[0-9.]*[0-9]+[0-9.]*)/g,Jlt=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function pne(n,e,t){if(e===1)return n;if(t=t||100,typeof n==\"number\")return Math.ceil(n*e*t)/t;if(typeof n!=\"string\")return n;const i=n.split(Qlt);if(i===null||!i.length)return n;const s=[];let o=i.shift(),r=Jlt.test(o);for(;;){if(r){const a=parseFloat(o);isNaN(a)?s.push(o):s.push(Math.ceil(a*e*t)/t)}else s.push(o);if(o=i.shift(),o===void 0)return s.join(\"\");r=!r}}function ect(n,e=\"defs\"){let t=\"\";const i=n.indexOf(\"<\"+e);for(;i>=0;){const s=n.indexOf(\">\",i),o=n.indexOf(\"</\"+e);if(s===-1||o===-1)break;const r=n.indexOf(\">\",o);if(r===-1)break;t+=n.slice(s+1,o).trim(),n=n.slice(0,i).trim()+n.slice(r+1)}return{defs:t,content:n}}function tct(n,e){return n?\"<defs>\"+n+\"</defs>\"+e:e}function ict(n,e,t){const i=ect(n);return tct(i.defs,e+i.content+t)}const nct=n=>n===\"unset\"||n===\"undefined\"||n===\"none\";function sct(n,e){const t={...hj,...n},i={...pme,...e},s={left:t.left,top:t.top,width:t.width,height:t.height};let o=t.body;[t,i].forEach(p=>{const _=[],b=p.hFlip,w=p.vFlip;let y=p.rotate;b?w?y+=2:(_.push(\"translate(\"+(s.width+s.left).toString()+\" \"+(0-s.top).toString()+\")\"),_.push(\"scale(-1 1)\"),s.top=s.left=0):w&&(_.push(\"translate(\"+(0-s.left).toString()+\" \"+(s.height+s.top).toString()+\")\"),_.push(\"scale(1 -1)\"),s.top=s.left=0);let S;switch(y<0&&(y-=Math.floor(y/4)*4),y=y%4,y){case 1:S=s.height/2+s.top,_.unshift(\"rotate(90 \"+S.toString()+\" \"+S.toString()+\")\");break;case 2:_.unshift(\"rotate(180 \"+(s.width/2+s.left).toString()+\" \"+(s.height/2+s.top).toString()+\")\");break;case 3:S=s.width/2+s.left,_.unshift(\"rotate(-90 \"+S.toString()+\" \"+S.toString()+\")\");break}y%2===1&&(s.left!==s.top&&(S=s.left,s.left=s.top,s.top=S),s.width!==s.height&&(S=s.width,s.width=s.height,s.height=S)),_.length&&(o=ict(o,'<g transform=\"'+_.join(\" \")+'\">',\"</g>\"))});const r=i.width,a=i.height,l=s.width,c=s.height;let d,u;r===null?(u=a===null?\"1em\":a===\"auto\"?c:a,d=pne(u,l/c)):(d=r===\"auto\"?l:r,u=a===null?pne(d,c/l):a===\"auto\"?c:a);const h={},f=(p,_)=>{nct(_)||(h[p]=_.toString())};f(\"width\",d),f(\"height\",u);const g=[s.left,s.top,l,c];return h.viewBox=g.join(\" \"),{attributes:h,viewBox:g,body:o}}const oct=/\\sid=\"(\\S+)\"/g,rct=\"IconifyId\"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let act=0;function lct(n,e=rct){const t=[];let i;for(;i=oct.exec(n);)t.push(i[1]);if(!t.length)return n;const s=\"suffix\"+(Math.random()*16777216|Date.now()).toString(16);return t.forEach(o=>{const r=typeof e==\"function\"?e(o):e+(act++).toString(),a=o.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\");n=n.replace(new RegExp('([#;\"])('+a+')([\")]|\\\\.[a-z])',\"g\"),\"$1\"+r+s+\"$3\")}),n=n.replace(new RegExp(s,\"g\"),\"\"),n}function cct(n,e){let t=n.indexOf(\"xlink:\")===-1?\"\":' xmlns:xlink=\"http://www.w3.org/1999/xlink\"';for(const i in e)t+=\" \"+i+'=\"'+e[i]+'\"';return'<svg xmlns=\"http://www.w3.org/2000/svg\"'+t+\">\"+n+\"</svg>\"}function dct(n){return n.replace(/\"/g,\"'\").replace(/%/g,\"%25\").replace(/#/g,\"%23\").replace(/</g,\"%3C\").replace(/>/g,\"%3E\").replace(/\\s+/g,\" \")}function uct(n){return\"data:image/svg+xml,\"+dct(n)}function hct(n){return'url(\"'+uct(n)+'\")'}const mne={...pme,inline:!1},fct={xmlns:\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"aria-hidden\":!0,role:\"img\"},gct={display:\"inline-block\"},AH={backgroundColor:\"currentColor\"},mme={backgroundColor:\"transparent\"},_ne={Image:\"var(--svg)\",Repeat:\"no-repeat\",Size:\"100% 100%\"},vne={webkitMask:AH,mask:AH,background:mme};for(const n in vne){const e=vne[n];for(const t in _ne)e[n+t]=_ne[t]}const GN={};[\"horizontal\",\"vertical\"].forEach(n=>{const e=n.slice(0,1)+\"Flip\";GN[n+\"-flip\"]=e,GN[n.slice(0,1)+\"-flip\"]=e,GN[n+\"Flip\"]=e});function bne(n){return n+(n.match(/^[-0-9.]+$/)?\"px\":\"\")}const pct=(n,e)=>{const t=Glt(mne,e),i={...fct},s=e.mode||\"svg\",o={},r=e.style,a=typeof r==\"object\"&&!(r instanceof Array)?r:{};for(let p in e){const _=e[p];if(_!==void 0)switch(p){case\"icon\":case\"style\":case\"onLoad\":case\"mode\":case\"ssr\":break;case\"inline\":case\"hFlip\":case\"vFlip\":t[p]=_===!0||_===\"true\"||_===1;break;case\"flip\":typeof _==\"string\"&&Ylt(t,_);break;case\"color\":o.color=_;break;case\"rotate\":typeof _==\"string\"?t[p]=Xlt(_):typeof _==\"number\"&&(t[p]=_);break;case\"ariaHidden\":case\"aria-hidden\":_!==!0&&_!==\"true\"&&delete i[\"aria-hidden\"];break;default:{const b=GN[p];b?(_===!0||_===\"true\"||_===1)&&(t[b]=!0):mne[p]===void 0&&(i[p]=_)}}}const l=sct(n,t),c=l.attributes;if(t.inline&&(o.verticalAlign=\"-0.125em\"),s===\"svg\"){i.style={...o,...a},Object.assign(i,c);let p=0,_=e.id;return typeof _==\"string\"&&(_=_.replace(/-/g,\"_\")),i.innerHTML=lct(l.body,_?()=>_+\"ID\"+p++:\"iconifyVue\"),$i(\"svg\",i)}const{body:d,width:u,height:h}=n,f=s===\"mask\"||(s===\"bg\"?!1:d.indexOf(\"currentColor\")!==-1),g=cct(d,{...c,width:u+\"\",height:h+\"\"});return i.style={...o,\"--svg\":hct(g),width:bne(c.width),height:bne(c.height),...gct,...f?AH:mme,...a},$i(\"span\",i)},mct=Object.create(null),_ct=kt({inheritAttrs:!1,render(){const n=this.$attrs,e=n.icon,t=typeof e==\"string\"?mct[e]:typeof e==\"object\"?e:null;return t===null||typeof t!=\"object\"||typeof t.body!=\"string\"?this.$slots.default?this.$slots.default():null:pct({...hj,...t},n)}}),_me=/^[a-z0-9]+(-[a-z0-9]+)*$/,DO=(n,e,t,i=\"\")=>{const s=n.split(\":\");if(n.slice(0,1)===\"@\"){if(s.length<2||s.length>3)return null;i=s.shift().slice(1)}if(s.length>3||!s.length)return null;if(s.length>1){const a=s.pop(),l=s.pop(),c={provider:s.length>0?s[0]:i,prefix:l,name:a};return e&&!ZN(c)?null:c}const o=s[0],r=o.split(\"-\");if(r.length>1){const a={provider:i,prefix:r.shift(),name:r.join(\"-\")};return e&&!ZN(a)?null:a}if(t&&i===\"\"){const a={provider:i,prefix:\"\",name:o};return e&&!ZN(a,t)?null:a}return null},ZN=(n,e)=>n?!!((e&&n.prefix===\"\"||n.prefix)&&n.name):!1,vme=Object.freeze({left:0,top:0,width:16,height:16}),MR=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),fj=Object.freeze({...vme,...MR}),RH=Object.freeze({...fj,body:\"\",hidden:!1});function vct(n,e){const t={};!n.hFlip!=!e.hFlip&&(t.hFlip=!0),!n.vFlip!=!e.vFlip&&(t.vFlip=!0);const i=((n.rotate||0)+(e.rotate||0))%4;return i&&(t.rotate=i),t}function Cne(n,e){const t=vct(n,e);for(const i in RH)i in MR?i in n&&!(i in t)&&(t[i]=MR[i]):i in e?t[i]=e[i]:i in n&&(t[i]=n[i]);return t}function bct(n,e){const t=n.icons,i=n.aliases||Object.create(null),s=Object.create(null);function o(r){if(t[r])return s[r]=[];if(!(r in s)){s[r]=null;const a=i[r]&&i[r].parent,l=a&&o(a);l&&(s[r]=[a].concat(l))}return s[r]}return Object.keys(t).concat(Object.keys(i)).forEach(o),s}function Cct(n,e,t){const i=n.icons,s=n.aliases||Object.create(null);let o={};function r(a){o=Cne(i[a]||s[a],o)}return r(e),t.forEach(r),Cne(n,o)}function bme(n,e){const t=[];if(typeof n!=\"object\"||typeof n.icons!=\"object\")return t;n.not_found instanceof Array&&n.not_found.forEach(s=>{e(s,null),t.push(s)});const i=bct(n);for(const s in i){const o=i[s];o&&(e(s,Cct(n,s,o)),t.push(s))}return t}const wct={provider:\"\",aliases:{},not_found:{},...vme};function $3(n,e){for(const t in e)if(t in n&&typeof n[t]!=typeof e[t])return!1;return!0}function Cme(n){if(typeof n!=\"object\"||n===null)return null;const e=n;if(typeof e.prefix!=\"string\"||!n.icons||typeof n.icons!=\"object\"||!$3(n,wct))return null;const t=e.icons;for(const s in t){const o=t[s];if(!s||typeof o.body!=\"string\"||!$3(o,RH))return null}const i=e.aliases||Object.create(null);for(const s in i){const o=i[s],r=o.parent;if(!s||typeof r!=\"string\"||!t[r]&&!i[r]||!$3(o,RH))return null}return e}const wne=Object.create(null);function yct(n,e){return{provider:n,prefix:e,icons:Object.create(null),missing:new Set}}function Cw(n,e){const t=wne[n]||(wne[n]=Object.create(null));return t[e]||(t[e]=yct(n,e))}function wme(n,e){return Cme(e)?bme(e,(t,i)=>{i?n.icons[t]=i:n.missing.add(t)}):[]}function Sct(n,e,t){try{if(typeof t.body==\"string\")return n.icons[e]={...t},!0}catch{}return!1}let qk=!1;function yme(n){return typeof n==\"boolean\"&&(qk=n),qk}function xct(n){const e=typeof n==\"string\"?DO(n,!0,qk):n;if(e){const t=Cw(e.provider,e.prefix),i=e.name;return t.icons[i]||(t.missing.has(i)?null:void 0)}}function Lct(n,e){const t=DO(n,!0,qk);if(!t)return!1;const i=Cw(t.provider,t.prefix);return e?Sct(i,t.name,e):(i.missing.add(t.name),!0)}function kct(n,e){if(typeof n!=\"object\")return!1;if(typeof e!=\"string\"&&(e=n.provider||\"\"),qk&&!e&&!n.prefix){let s=!1;return Cme(n)&&(n.prefix=\"\",bme(n,(o,r)=>{Lct(o,r)&&(s=!0)})),s}const t=n.prefix;if(!ZN({prefix:t,name:\"a\"}))return!1;const i=Cw(e,t);return!!wme(i,n)}const Dct=Object.freeze({width:null,height:null}),Ict=Object.freeze({...Dct,...MR});\"\"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);const MH=Object.create(null);function Ect(n,e){MH[n]=e}function PH(n){return MH[n]||MH[\"\"]}function gj(n){let e;if(typeof n.resources==\"string\")e=[n.resources];else if(e=n.resources,!(e instanceof Array)||!e.length)return null;return{resources:e,path:n.path||\"/\",maxURL:n.maxURL||500,rotate:n.rotate||750,timeout:n.timeout||5e3,random:n.random===!0,index:n.index||0,dataAfterTimeout:n.dataAfterTimeout!==!1}}const pj=Object.create(null),aS=[\"https://api.simplesvg.com\",\"https://api.unisvg.com\"],YN=[];for(;aS.length>0;)aS.length===1||Math.random()>.5?YN.push(aS.shift()):YN.push(aS.pop());pj[\"\"]=gj({resources:[\"https://api.iconify.design\"].concat(YN)});function OH(n,e){const t=gj(e);return t===null?!1:(pj[n]=t,!0)}function mj(n){return pj[n]}const Tct=()=>{let n;try{if(n=fetch,typeof n==\"function\")return n}catch{}};let yne=Tct();function Nct(n,e){const t=mj(n);if(!t)return 0;let i;if(!t.maxURL)i=0;else{let s=0;t.resources.forEach(r=>{s=Math.max(s,r.length)});const o=e+\".json?icons=\";i=t.maxURL-s-t.path.length-o.length}return i}function Act(n){return n===404}const Rct=(n,e,t)=>{const i=[],s=Nct(n,e),o=\"icons\";let r={type:o,provider:n,prefix:e,icons:[]},a=0;return t.forEach((l,c)=>{a+=l.length+1,a>=s&&c>0&&(i.push(r),r={type:o,provider:n,prefix:e,icons:[]},a=l.length),r.icons.push(l)}),i.push(r),i};function Mct(n){if(typeof n==\"string\"){const e=mj(n);if(e)return e.path}return\"/\"}const Pct=(n,e,t)=>{if(!yne){t(\"abort\",424);return}let i=Mct(e.provider);switch(e.type){case\"icons\":{const o=e.prefix,a=e.icons.join(\",\"),l=new URLSearchParams({icons:a});i+=o+\".json?\"+l.toString();break}case\"custom\":{const o=e.uri;i+=o.slice(0,1)===\"/\"?o.slice(1):o;break}default:t(\"abort\",400);return}let s=503;yne(n+i).then(o=>{const r=o.status;if(r!==200){setTimeout(()=>{t(Act(r)?\"abort\":\"next\",r)});return}return s=501,o.json()}).then(o=>{if(typeof o!=\"object\"||o===null){setTimeout(()=>{o===404?t(\"abort\",o):t(\"next\",s)});return}setTimeout(()=>{t(\"success\",o)})}).catch(()=>{t(\"next\",s)})},Oct={prepare:Rct,send:Pct};function Fct(n){const e={loaded:[],missing:[],pending:[]},t=Object.create(null);n.sort((s,o)=>s.provider!==o.provider?s.provider.localeCompare(o.provider):s.prefix!==o.prefix?s.prefix.localeCompare(o.prefix):s.name.localeCompare(o.name));let i={provider:\"\",prefix:\"\",name:\"\"};return n.forEach(s=>{if(i.name===s.name&&i.prefix===s.prefix&&i.provider===s.provider)return;i=s;const o=s.provider,r=s.prefix,a=s.name,l=t[o]||(t[o]=Object.create(null)),c=l[r]||(l[r]=Cw(o,r));let d;a in c.icons?d=e.loaded:r===\"\"||c.missing.has(a)?d=e.missing:d=e.pending;const u={provider:o,prefix:r,name:a};d.push(u)}),e}function Sme(n,e){n.forEach(t=>{const i=t.loaderCallbacks;i&&(t.loaderCallbacks=i.filter(s=>s.id!==e))})}function Bct(n){n.pendingCallbacksFlag||(n.pendingCallbacksFlag=!0,setTimeout(()=>{n.pendingCallbacksFlag=!1;const e=n.loaderCallbacks?n.loaderCallbacks.slice(0):[];if(!e.length)return;let t=!1;const i=n.provider,s=n.prefix;e.forEach(o=>{const r=o.icons,a=r.pending.length;r.pending=r.pending.filter(l=>{if(l.prefix!==s)return!0;const c=l.name;if(n.icons[c])r.loaded.push({provider:i,prefix:s,name:c});else if(n.missing.has(c))r.missing.push({provider:i,prefix:s,name:c});else return t=!0,!0;return!1}),r.pending.length!==a&&(t||Sme([n],o.id),o.callback(r.loaded.slice(0),r.missing.slice(0),r.pending.slice(0),o.abort))})}))}let Wct=0;function Hct(n,e,t){const i=Wct++,s=Sme.bind(null,t,i);if(!e.pending.length)return s;const o={id:i,icons:e,callback:n,abort:s};return t.forEach(r=>{(r.loaderCallbacks||(r.loaderCallbacks=[])).push(o)}),s}function Vct(n,e=!0,t=!1){const i=[];return n.forEach(s=>{const o=typeof s==\"string\"?DO(s,e,t):s;o&&i.push(o)}),i}var zct={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function $ct(n,e,t,i){const s=n.resources.length,o=n.random?Math.floor(Math.random()*s):n.index;let r;if(n.random){let k=n.resources.slice(0);for(r=[];k.length>1;){const D=Math.floor(Math.random()*k.length);r.push(k[D]),k=k.slice(0,D).concat(k.slice(D+1))}r=r.concat(k)}else r=n.resources.slice(o).concat(n.resources.slice(0,o));const a=Date.now();let l=\"pending\",c=0,d,u=null,h=[],f=[];typeof i==\"function\"&&f.push(i);function g(){u&&(clearTimeout(u),u=null)}function p(){l===\"pending\"&&(l=\"aborted\"),g(),h.forEach(k=>{k.status===\"pending\"&&(k.status=\"aborted\")}),h=[]}function _(k,D){D&&(f=[]),typeof k==\"function\"&&f.push(k)}function b(){return{startTime:a,payload:e,status:l,queriesSent:c,queriesPending:h.length,subscribe:_,abort:p}}function w(){l=\"failed\",f.forEach(k=>{k(void 0,d)})}function y(){h.forEach(k=>{k.status===\"pending\"&&(k.status=\"aborted\")}),h=[]}function S(k,D,I){const N=D!==\"success\";switch(h=h.filter(P=>P!==k),l){case\"pending\":break;case\"failed\":if(N||!n.dataAfterTimeout)return;break;default:return}if(D===\"abort\"){d=I,w();return}if(N){d=I,h.length||(r.length?x():w());return}if(g(),y(),!n.random){const P=n.resources.indexOf(k.resource);P!==-1&&P!==n.index&&(n.index=P)}l=\"completed\",f.forEach(P=>{P(I)})}function x(){if(l!==\"pending\")return;g();const k=r.shift();if(k===void 0){if(h.length){u=setTimeout(()=>{g(),l===\"pending\"&&(y(),w())},n.timeout);return}w();return}const D={status:\"pending\",resource:k,callback:(I,N)=>{S(D,I,N)}};h.push(D),c++,u=setTimeout(x,n.rotate),t(k,e,D.callback)}return setTimeout(x),b}function xme(n){const e={...zct,...n};let t=[];function i(){t=t.filter(a=>a().status===\"pending\")}function s(a,l,c){const d=$ct(e,a,l,(u,h)=>{i(),c&&c(u,h)});return t.push(d),d}function o(a){return t.find(l=>a(l))||null}return{query:s,find:o,setIndex:a=>{e.index=a},getIndex:()=>e.index,cleanup:i}}function Sne(){}const U3=Object.create(null);function Uct(n){if(!U3[n]){const e=mj(n);if(!e)return;const t=xme(e),i={config:e,redundancy:t};U3[n]=i}return U3[n]}function jct(n,e,t){let i,s;if(typeof n==\"string\"){const o=PH(n);if(!o)return t(void 0,424),Sne;s=o.send;const r=Uct(n);r&&(i=r.redundancy)}else{const o=gj(n);if(o){i=xme(o);const r=n.resources?n.resources[0]:\"\",a=PH(r);a&&(s=a.send)}}return!i||!s?(t(void 0,424),Sne):i.query(e,s,t)().abort}function xne(){}function Kct(n){n.iconsLoaderFlag||(n.iconsLoaderFlag=!0,setTimeout(()=>{n.iconsLoaderFlag=!1,Bct(n)}))}function qct(n){const e=[],t=[];return n.forEach(i=>{(i.match(_me)?e:t).push(i)}),{valid:e,invalid:t}}function lS(n,e,t){function i(){const s=n.pendingIcons;e.forEach(o=>{s&&s.delete(o),n.icons[o]||n.missing.add(o)})}if(t&&typeof t==\"object\")try{if(!wme(n,t).length){i();return}}catch(s){console.error(s)}i(),Kct(n)}function Lne(n,e){n instanceof Promise?n.then(t=>{e(t)}).catch(()=>{e(null)}):e(n)}function Gct(n,e){n.iconsToLoad?n.iconsToLoad=n.iconsToLoad.concat(e).sort():n.iconsToLoad=e,n.iconsQueueFlag||(n.iconsQueueFlag=!0,setTimeout(()=>{n.iconsQueueFlag=!1;const{provider:t,prefix:i}=n,s=n.iconsToLoad;if(delete n.iconsToLoad,!s||!s.length)return;const o=n.loadIcon;if(n.loadIcons&&(s.length>1||!o)){Lne(n.loadIcons(s,i,t),d=>{lS(n,s,d)});return}if(o){s.forEach(d=>{const u=o(d,i,t);Lne(u,h=>{const f=h?{prefix:i,icons:{[d]:h}}:null;lS(n,[d],f)})});return}const{valid:r,invalid:a}=qct(s);if(a.length&&lS(n,a,null),!r.length)return;const l=i.match(_me)?PH(t):null;if(!l){lS(n,r,null);return}l.prepare(t,i,r).forEach(d=>{jct(t,d,u=>{lS(n,d.icons,u)})})}))}const Zct=(n,e)=>{const t=Vct(n,!0,yme()),i=Fct(t);if(!i.pending.length){let l=!0;return e&&setTimeout(()=>{l&&e(i.loaded,i.missing,i.pending,xne)}),()=>{l=!1}}const s=Object.create(null),o=[];let r,a;return i.pending.forEach(l=>{const{provider:c,prefix:d}=l;if(d===a&&c===r)return;r=c,a=d,o.push(Cw(c,d));const u=s[c]||(s[c]=Object.create(null));u[d]||(u[d]=[])}),i.pending.forEach(l=>{const{provider:c,prefix:d,name:u}=l,h=Cw(c,d),f=h.pendingIcons||(h.pendingIcons=new Set);f.has(u)||(f.add(u),s[c][d].push(u))}),o.forEach(l=>{const c=s[l.provider][l.prefix];c.length&&Gct(l,c)}),e?Hct(e,i,o):xne},Yct=n=>new Promise((e,t)=>{const i=typeof n==\"string\"?DO(n,!0):n;if(!i){t(n);return}Zct([i||n],s=>{if(s.length&&i){const o=xct(i);if(o){e({...fj,...o});return}}t(n)})});({...Ict});const kne={backgroundColor:\"currentColor\"},Xct={backgroundColor:\"transparent\"},Dne={Image:\"var(--svg)\",Repeat:\"no-repeat\",Size:\"100% 100%\"},Ine={webkitMask:kne,mask:kne,background:Xct};for(const n in Ine){const e=Ine[n];for(const t in Dne)e[n+t]=Dne[t]}const j3={};[\"horizontal\",\"vertical\"].forEach(n=>{const e=n.slice(0,1)+\"Flip\";j3[n+\"-flip\"]=e,j3[n.slice(0,1)+\"-flip\"]=e,j3[n+\"Flip\"]=e});yme(!0);Ect(\"\",Oct);if(typeof document<\"u\"&&typeof window<\"u\"){const n=window;if(n.IconifyPreload!==void 0){const e=n.IconifyPreload,t=\"Invalid IconifyPreload syntax.\";typeof e==\"object\"&&e!==null&&(e instanceof Array?e:[e]).forEach(i=>{try{(typeof i!=\"object\"||i===null||i instanceof Array||typeof i.icons!=\"object\"||typeof i.prefix!=\"string\"||!kct(i))&&console.error(t)}catch{console.error(t)}})}if(n.IconifyProviders!==void 0){const e=n.IconifyProviders;if(typeof e==\"object\"&&e!==null)for(let t in e){const i=\"IconifyProviders[\"+t+\"] is invalid.\";try{const s=e[t];if(typeof s!=\"object\"||!s||s.resources===void 0)continue;OH(t,s)||console.error(i)}catch{console.error(i)}}}}({...fj});const Qct=[\"fluent-emoji-high-contrast\",\"streamline-ultimate-color\",\"streamline-freehand-color\",\"streamline-kameleon-color\",\"streamline-stickies-color\",\"material-symbols-light\",\"streamline-plump-color\",\"streamline-sharp-color\",\"streamline-cyber-color\",\"streamline-flex-color\",\"cryptocurrency-color\",\"streamline-ultimate\",\"streamline-freehand\",\"material-icon-theme\",\"icon-park-outline\",\"icon-park-twotone\",\"fluent-emoji-flat\",\"emojione-monotone\",\"streamline-emojis\",\"heroicons-outline\",\"simple-line-icons\",\"material-symbols\",\"streamline-plump\",\"streamline-sharp\",\"streamline-cyber\",\"streamline-pixel\",\"streamline-block\",\"qlementine-icons\",\"streamline-color\",\"streamline-logos\",\"flat-color-icons\",\"icon-park-solid\",\"pepicons-pencil\",\"streamline-flex\",\"heroicons-solid\",\"pepicons-print\",\"cryptocurrency\",\"pixelarticons\",\"bitcoin-icons\",\"system-uicons\",\"sidekickicons\",\"devicon-plain\",\"entypo-social\",\"token-branded\",\"grommet-icons\",\"meteor-icons\",\"svg-spinners\",\"pepicons-pop\",\"dinkie-icons\",\"fluent-color\",\"vscode-icons\",\"simple-icons\",\"circle-flags\",\"medical-icon\",\"icomoon-free\",\"fluent-emoji\",\"majesticons\",\"humbleicons\",\"rivet-icons\",\"radix-icons\",\"fa7-regular\",\"skill-icons\",\"emojione-v1\",\"academicons\",\"healthicons\",\"fa6-regular\",\"fluent-mdl2\",\"lucide-lab\",\"akar-icons\",\"lets-icons\",\"ant-design\",\"gravity-ui\",\"teenyicons\",\"streamline\",\"file-icons\",\"catppuccin\",\"fa7-brands\",\"game-icons\",\"foundation\",\"fa6-brands\",\"fa-regular\",\"mono-icons\",\"mdi-light\",\"iconamoon\",\"eos-icons\",\"gridicons\",\"duo-icons\",\"hugeicons\",\"lineicons\",\"zondicons\",\"heroicons\",\"fa7-solid\",\"icon-park\",\"arcticons\",\"meteocons\",\"dashicons\",\"fa6-solid\",\"fa-brands\",\"websymbol\",\"fontelico\",\"mingcute\",\"flowbite\",\"proicons\",\"guidance\",\"famicons\",\"bytesize\",\"marketeq\",\"nonicons\",\"brandico\",\"openmoji\",\"emojione\",\"flagpack\",\"fa-solid\",\"fontisto\",\"si-glyph\",\"pepicons\",\"line-md\",\"iconoir\",\"tdesign\",\"formkit\",\"clarity\",\"octicon\",\"pajamas\",\"codicon\",\"devicon\",\"twemoji\",\"noto-v1\",\"fxemoji\",\"raphael\",\"flat-ui\",\"topcoat\",\"feather\",\"tabler\",\"mynaui\",\"lucide\",\"circum\",\"carbon\",\"lsicon\",\"nimbus\",\"fluent\",\"memory\",\"garden\",\"entypo\",\"icons8\",\"subway\",\"vaadin\",\"solar\",\"basil\",\"pixel\",\"typcn\",\"prime\",\"cuida\",\"stash\",\"charm\",\"quill\",\"codex\",\"picon\",\"logos\",\"token\",\"covid\",\"weui\",\"mage\",\"maki\",\"ooui\",\"unjs\",\"noto\",\"flag\",\"iwwa\",\"gala\",\"zmdi\",\"bpmn\",\"mdi\",\"uil\",\"bxs\",\"uim\",\"uit\",\"uis\",\"jam\",\"ion\",\"cil\",\"uiw\",\"oui\",\"nrk\",\"cib\",\"bxl\",\"cbi\",\"cif\",\"gis\",\"map\",\"geo\",\"fad\",\"eva\",\"wpf\",\"whh\",\"ic\",\"ri\",\"si\",\"bx\",\"gg\",\"ci\",\"fe\",\"mi\",\"ep\",\"bi\",\"ph\",\"ix\",\"ei\",\"f7\",\"wi\",\"la\",\"fa\",\"oi\",\"et\",\"el\",\"ls\",\"vs\",\"il\",\"ps\"];function Jct(n=\"\"){let e,t=\"\";if(n[0]===\"@\"&&n.includes(\":\")&&(t=n.split(\":\")[0].slice(1),n=n.split(\":\").slice(1).join(\":\")),n.startsWith(\"i-\")){n=n.replace(/^i-/,\"\");for(const i of Qct)if(n.startsWith(i)){e=i,n=n.slice(i.length+1);break}}else if(n.includes(\":\")){const[i,s]=n.split(\":\");e=i,n=s}return{provider:t,prefix:e||\"\",name:n||\"\"}}const edt=kt({__name:\"Icon\",props:{name:{type:String,required:!0},size:{type:String,default:\"\"}},async setup(n){let e,t;const i=In(),s=JR(),o=n;Dn(()=>{var _;return(_=s.nuxtIcon)==null?void 0:_.iconifyApiOptions},()=>{var _,b,w,y,S,x;if((b=(_=s.nuxtIcon)==null?void 0:_.iconifyApiOptions)!=null&&b.url){try{new URL(s.nuxtIcon.iconifyApiOptions.url)}catch{console.warn(\"Nuxt Icon: Invalid custom Iconify API URL\");return}if((y=(w=s.nuxtIcon)==null?void 0:w.iconifyApiOptions)!=null&&y.publicApiFallback){OH(\"custom\",{resources:[(S=s.nuxtIcon)==null?void 0:S.iconifyApiOptions.url],index:0});return}OH(\"\",{resources:[(x=s.nuxtIcon)==null?void 0:x.iconifyApiOptions.url]})}},{immediate:!0});const r=Ew(\"icons\",()=>({})),a=Ue(!1),l=ue(()=>{var _,b;return(b=(_=s.nuxtIcon)==null?void 0:_.aliases)!=null&&b[o.name]?s.nuxtIcon.aliases[o.name]:o.name}),c=ue(()=>Jct(l.value)),d=ue(()=>[c.value.provider,c.value.prefix,c.value.name].filter(Boolean).join(\":\")),u=ue(()=>{var _;return(_=r.value)==null?void 0:_[d.value]}),h=ue(()=>{var _;return(_=i.vueApp)==null?void 0:_.component(l.value)}),f=ue(()=>{var b,w,y;if(!o.size&&typeof((b=s.nuxtIcon)==null?void 0:b.size)==\"boolean\"&&!((w=s.nuxtIcon)!=null&&w.size))return;const _=o.size||((y=s.nuxtIcon)==null?void 0:y.size)||\"1em\";return String(Number(_))===_?`${_}px`:_}),g=ue(()=>{var _;return((_=s==null?void 0:s.nuxtIcon)==null?void 0:_.class)??\"icon\"});async function p(){var _;h.value||(_=r.value)!=null&&_[d.value]||(a.value=!0,r.value[d.value]=await Yct(c.value).catch(()=>{}),a.value=!1)}return Dn(l,p),!h.value&&([e,t]=cxe(()=>p()),e=await e,t()),(_,b)=>a.value?(fe(),Re(\"span\",{key:0,class:st(g.value),style:Im({width:f.value,height:f.value})},null,6)):u.value?(fe(),jt(j(_ct),{key:1,icon:u.value,class:st(g.value),width:f.value,height:f.value},null,8,[\"icon\",\"class\",\"width\",\"height\"])):h.value?(fe(),jt(Em(h.value),{key:2,class:st(g.value),width:f.value,height:f.value},null,8,[\"class\",\"width\",\"height\"])):(fe(),Re(\"span\",{key:3,class:st(g.value),style:Im({fontSize:f.value,lineHeight:f.value,width:f.value,height:f.value})},[en(_.$slots,\"default\",{},()=>[at(Ni(n.name),1)],!0)],6))}}),Lme=Js(edt,[[\"__scopeId\",\"data-v-e8d572f6\"]]),tdt=Object.freeze(Object.defineProperty({__proto__:null,default:Lme},Symbol.toStringTag,{value:\"Module\"})),idt=kt({props:{name:{type:String,required:!0},dynamic:{type:Boolean,default:!1}},setup(n){const e=JR();return{dynamic:ue(()=>{var i,s;return n.dynamic||((s=(i=e.ui)==null?void 0:i.icons)==null?void 0:s.dynamic)})}}});function ndt(n,e,t,i,s,o){const r=Lme;return n.dynamic?(fe(),jt(r,{key:0,name:n.name},null,8,[\"name\"])):(fe(),Re(\"span\",{key:1,class:st(n.name)},null,2))}const ud=Js(idt,[[\"render\",ndt]]);function _j({ui:n,props:e}){const t=pc();if(os(\"ButtonGroupContextConsumer\",!0),Ui(\"ButtonGroupContextConsumer\",!1))return{size:ue(()=>e.size),rounded:ue(()=>n.value.rounded)};let s=t.parent,o;for(;s&&!o;){if(s.type.name===\"ButtonGroup\"){o=Ui(`group-${s.uid}`);break}s=s.parent}const r=ue(()=>o==null?void 0:o.value.children.indexOf(t));return cn(()=>{o==null||o.value.register(t)}),uo(()=>{o==null||o.value.unregister(t)}),{size:ue(()=>(o==null?void 0:o.value.size)||e.size),rounded:ue(()=>!o||r.value===-1?n.value.rounded:o.value.children.length===1?o.value.ui.rounded:r.value===0?o.value.rounded.start:r.value===o.value.children.length-1?o.value.rounded.end:\"rounded-none\")}}const bf=ha(Pi.ui.strategy,Pi.ui.input,uj),sdt=kt({components:{UIcon:ud},inheritAttrs:!1,props:{modelValue:{type:[String,Number],default:\"\"},type:{type:String,default:\"text\"},id:{type:String,default:null},name:{type:String,default:null},placeholder:{type:String,default:null},required:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},autofocus:{type:Boolean,default:!1},autofocusDelay:{type:Number,default:100},icon:{type:String,default:null},loadingIcon:{type:String,default:()=>bf.default.loadingIcon},leadingIcon:{type:String,default:null},trailingIcon:{type:String,default:null},trailing:{type:Boolean,default:!1},leading:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},padded:{type:Boolean,default:!0},size:{type:String,default:null,validator(n){return Object.keys(bf.size).includes(n)}},color:{type:String,default:()=>bf.default.color,validator(n){return[...Pi.ui.colors,...Object.keys(bf.color)].includes(n)}},variant:{type:String,default:()=>bf.default.variant,validator(n){return[...Object.keys(bf.variant),...Object.values(bf.color).flatMap(e=>Object.keys(e))].includes(n)}},inputClass:{type:String,default:null},class:{type:[String,Object,Array],default:()=>\"\"},ui:{type:Object,default:()=>({})},modelModifiers:{type:Object,default:()=>({})}},emits:[\"update:modelValue\",\"blur\",\"change\"],setup(n,{emit:e,slots:t}){const{ui:i,attrs:s}=Ua(\"input\",Ps(n,\"ui\"),bf,Ps(n,\"class\")),{size:o,rounded:r}=_j({ui:i,props:n}),{emitFormBlur:a,emitFormInput:l,size:c,color:d,inputId:u,name:h}=aI(n,bf),f=ue(()=>o.value||c.value),g=Ue(nD({},n.modelModifiers,{trim:!1,lazy:!1,number:!1})),p=Ue(null),_=()=>{var K;n.autofocus&&((K=p.value)==null||K.focus())},b=K=>{g.value.trim&&(K=K.trim()),(g.value.number||n.type===\"number\")&&(K=Rre(K)),e(\"update:modelValue\",K),l()},w=K=>{g.value.lazy||b(K.target.value)},y=K=>{const ae=K.target.value;e(\"change\",ae),g.value.lazy&&b(ae),g.value.trim&&(K.target.value=ae.trim())},S=K=>{a(),e(\"blur\",K)};cn(()=>{setTimeout(()=>{_()},n.autofocusDelay)});const x=ue(()=>{var ae,se;const K=((se=(ae=i.value.color)==null?void 0:ae[d.value])==null?void 0:se[n.variant])||i.value.variant[n.variant];return ac(Vn(i.value.base,i.value.form,r.value,i.value.placeholder,n.type===\"file\"&&[i.value.file.base,i.value.file.padding[f.value]],i.value.size[f.value],n.padded?i.value.padding[f.value]:\"p-0\",K==null?void 0:K.replaceAll(\"{color}\",d.value),(k.value||t.leading)&&i.value.leading.padding[f.value],(D.value||t.trailing)&&i.value.trailing.padding[f.value]),n.inputClass)}),k=ue(()=>n.icon&&n.leading||n.icon&&!n.trailing||n.loading&&!n.trailing||n.leadingIcon),D=ue(()=>n.icon&&n.trailing||n.loading&&n.trailing||n.trailingIcon),I=ue(()=>n.loading?n.loadingIcon:n.leadingIcon||n.icon),N=ue(()=>n.loading&&!k.value?n.loadingIcon:n.trailingIcon||n.icon),P=ue(()=>Vn(i.value.icon.leading.wrapper,i.value.icon.leading.pointer,i.value.icon.leading.padding[f.value])),O=ue(()=>Vn(i.value.icon.base,d.value&&Pi.ui.colors.includes(d.value)&&i.value.icon.color.replaceAll(\"{color}\",d.value),i.value.icon.size[f.value],n.loading&&i.value.icon.loading)),M=ue(()=>Vn(i.value.icon.trailing.wrapper,i.value.icon.trailing.pointer,i.value.icon.trailing.padding[f.value])),z=ue(()=>Vn(i.value.icon.base,d.value&&Pi.ui.colors.includes(d.value)&&i.value.icon.color.replaceAll(\"{color}\",d.value),i.value.icon.size[f.value],n.loading&&!k.value&&i.value.icon.loading));return{ui:i,attrs:s,name:h,inputId:u,input:p,isLeading:k,isTrailing:D,inputClass:x,leadingIconName:I,leadingIconClass:O,leadingWrapperIconClass:P,trailingIconName:N,trailingIconClass:z,trailingWrapperIconClass:M,onInput:w,onChange:y,onBlur:S}}}),odt=[\"id\",\"name\",\"value\",\"type\",\"required\",\"placeholder\",\"disabled\"];function rdt(n,e,t,i,s,o){const r=ud;return fe(),Re(\"div\",{class:st(n.ui.wrapper)},[q(\"input\",an({id:n.inputId,ref:\"input\",name:n.name,value:n.modelValue,type:n.type,required:n.required,placeholder:n.placeholder,disabled:n.disabled,class:n.inputClass},n.attrs,{onInput:e[0]||(e[0]=(...a)=>n.onInput&&n.onInput(...a)),onBlur:e[1]||(e[1]=(...a)=>n.onBlur&&n.onBlur(...a)),onChange:e[2]||(e[2]=(...a)=>n.onChange&&n.onChange(...a))}),null,16,odt),en(n.$slots,\"default\"),n.isLeading&&n.leadingIconName||n.$slots.leading?(fe(),Re(\"span\",{key:0,class:st(n.leadingWrapperIconClass)},[en(n.$slots,\"leading\",{disabled:n.disabled,loading:n.loading},()=>[te(r,{name:n.leadingIconName,class:st(n.leadingIconClass)},null,8,[\"name\",\"class\"])])],2)):Bt(\"\",!0),n.isTrailing&&n.trailingIconName||n.$slots.trailing?(fe(),Re(\"span\",{key:1,class:st(n.trailingWrapperIconClass)},[en(n.$slots,\"trailing\",{disabled:n.disabled,loading:n.loading},()=>[te(r,{name:n.trailingIconName,class:st(n.trailingIconClass)},null,8,[\"name\",\"class\"])])],2)):Bt(\"\",!0)],2)}const ub=Js(sdt,[[\"render\",rdt]]),K3=ha(Pi.ui.strategy,Pi.ui.formGroup,Ilt),adt=kt({inheritAttrs:!1,props:{name:{type:String,default:null},size:{type:String,default:null,validator(n){return Object.keys(K3.size).includes(n)}},label:{type:String,default:null},description:{type:String,default:null},required:{type:Boolean,default:!1},help:{type:String,default:null},error:{type:[String,Boolean],default:null},hint:{type:String,default:null},class:{type:[String,Object,Array],default:()=>\"\"},ui:{type:Object,default:()=>({})},eagerValidation:{type:Boolean,default:!1}},setup(n){const{ui:e,attrs:t}=Ua(\"formGroup\",Ps(n,\"ui\"),K3,Ps(n,\"class\")),i=Ui(\"form-errors\",null),s=ue(()=>{var a,l;return n.error&&typeof n.error==\"string\"||typeof n.error==\"boolean\"?n.error:(l=(a=i==null?void 0:i.value)==null?void 0:a.find(c=>c.path===n.name))==null?void 0:l.message}),o=ue(()=>e.value.size[n.size??K3.default.size]),r=Ue(j0());return os(\"form-group\",{error:s,inputId:r,name:ue(()=>n.name),size:ue(()=>n.size),eagerValidation:ue(()=>n.eagerValidation)}),{ui:e,attrs:t,inputId:r,size:o,error:s}}}),ldt=[\"for\"];function cdt(n,e,t,i,s,o){return fe(),Re(\"div\",an({class:n.ui.wrapper},n.attrs),[q(\"div\",{class:st(n.ui.inner)},[n.label||n.$slots.label?(fe(),Re(\"div\",{key:0,class:st([n.ui.label.wrapper,n.size])},[q(\"label\",{for:n.inputId,class:st([n.ui.label.base,n.required?n.ui.label.required:\"\"])},[n.$slots.label?en(n.$slots,\"label\",Ef(an({key:0},{error:n.error,label:n.label,name:n.name,hint:n.hint,description:n.description,help:n.help}))):(fe(),Re(Bi,{key:1},[at(Ni(n.label),1)],64))],10,ldt),n.hint||n.$slots.hint?(fe(),Re(\"span\",{key:0,class:st([n.ui.hint])},[n.$slots.hint?en(n.$slots,\"hint\",Ef(an({key:0},{error:n.error,label:n.label,name:n.name,hint:n.hint,description:n.description,help:n.help}))):(fe(),Re(Bi,{key:1},[at(Ni(n.hint),1)],64))],2)):Bt(\"\",!0)],2)):Bt(\"\",!0),n.description||n.$slots.description?(fe(),Re(\"p\",{key:1,class:st([n.ui.description,n.size])},[n.$slots.description?en(n.$slots,\"description\",Ef(an({key:0},{error:n.error,label:n.label,name:n.name,hint:n.hint,description:n.description,help:n.help}))):(fe(),Re(Bi,{key:1},[at(Ni(n.description),1)],64))],2)):Bt(\"\",!0)],2),q(\"div\",{class:st([n.label?n.ui.container:\"\"])},[en(n.$slots,\"default\",Ef(Zx({error:n.error}))),typeof n.error==\"string\"&&n.error||n.$slots.error?(fe(),Re(\"p\",{key:0,class:st([n.ui.error,n.size])},[n.$slots.error?en(n.$slots,\"error\",Ef(an({key:0},{error:n.error,label:n.label,name:n.name,hint:n.hint,description:n.description,help:n.help}))):(fe(),Re(Bi,{key:1},[at(Ni(n.error),1)],64))],2)):n.help||n.$slots.help?(fe(),Re(\"p\",{key:1,class:st([n.ui.help,n.size])},[n.$slots.help?en(n.$slots,\"help\",Ef(an({key:0},{error:n.error,label:n.label,name:n.name,hint:n.hint,description:n.description,help:n.help}))):(fe(),Re(Bi,{key:1},[at(Ni(n.help),1)],64))],2)):Bt(\"\",!0)],2)],16)}const x_=Js(adt,[[\"render\",cdt]]),ddt={class:\"w-full flex justify-between items-center\"},udt={class:\"relative flex justify-start bg-inherit z-10\"},hdt=[\"textContent\"],kme=kt({__name:\"Divider\",props:{title:{type:String,required:!0}},setup(n){return(e,t)=>(fe(),Re(\"div\",ddt,[q(\"div\",udt,[q(\"span\",{class:\"pr-3 text-lg font-bold text-gray-900 dark:text-gray-100 whitespace-nowrap\",textContent:Ni(n.title)},null,8,hdt)]),t[0]||(t[0]=q(\"div\",{class:\"w-full border-t-2 border-dashed border-gray-300 dark:border-gray-600\"},null,-1))]))}});function Dme(n,e,t){let i=Ue(t==null?void 0:t.value),s=ue(()=>n.value!==void 0);return[ue(()=>s.value?n.value:i.value),function(o){return s.value||(i.value=o),e==null?void 0:e(o)}]}function vj(n){typeof queueMicrotask==\"function\"?queueMicrotask(n):Promise.resolve().then(n).catch(e=>setTimeout(()=>{throw e}))}function lI(){let n=[],e={addEventListener(t,i,s,o){return t.addEventListener(i,s,o),e.add(()=>t.removeEventListener(i,s,o))},requestAnimationFrame(...t){let i=requestAnimationFrame(...t);e.add(()=>cancelAnimationFrame(i))},nextFrame(...t){e.requestAnimationFrame(()=>{e.requestAnimationFrame(...t)})},setTimeout(...t){let i=setTimeout(...t);e.add(()=>clearTimeout(i))},microTask(...t){let i={current:!0};return vj(()=>{i.current&&t[0]()}),e.add(()=>{i.current=!1})},style(t,i,s){let o=t.style.getPropertyValue(i);return Object.assign(t.style,{[i]:s}),this.add(()=>{Object.assign(t.style,{[i]:o})})},group(t){let i=lI();return t(i),this.add(()=>i.dispose())},add(t){return n.push(t),()=>{let i=n.indexOf(t);if(i>=0)for(let s of n.splice(i,1))s()}},dispose(){for(let t of n.splice(0))t()}};return e}var Ene;let Ime=Symbol(\"headlessui.useid\"),fdt=0;const ad=(Ene=j0)!=null?Ene:function(){return Ui(Ime,()=>`${++fdt}`)()};function bj(n){os(Ime,n)}function _i(n){var e;if(n==null||n.value==null)return null;let t=(e=n.value.$el)!=null?e:n.value;return t instanceof Node?t:null}function fc(n,e,...t){if(n in e){let s=e[n];return typeof s==\"function\"?s(...t):s}let i=new Error(`Tried to handle \"${n}\" but there is no handler defined. Only defined handlers are: ${Object.keys(e).map(s=>`\"${s}\"`).join(\", \")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(i,fc),i}var gdt=Object.defineProperty,pdt=(n,e,t)=>e in n?gdt(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Tne=(n,e,t)=>(pdt(n,typeof e!=\"symbol\"?e+\"\":e,t),t);let mdt=class{constructor(){Tne(this,\"current\",this.detect()),Tne(this,\"currentId\",0)}set(e){this.current!==e&&(this.currentId=0,this.current=e)}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\"}},cI=new mdt;function Qd(n){if(cI.isServer)return null;if(n instanceof Node)return n.ownerDocument;if(n!=null&&n.hasOwnProperty(\"value\")){let e=_i(n);if(e)return e.ownerDocument}return document}let FH=[\"[contentEditable=true]\",\"[tabindex]\",\"a[href]\",\"area[href]\",\"button:not([disabled])\",\"iframe\",\"input:not([disabled])\",\"select:not([disabled])\",\"textarea:not([disabled])\"].map(n=>`${n}:not([tabindex='-1'])`).join(\",\");var hl=(n=>(n[n.First=1]=\"First\",n[n.Previous=2]=\"Previous\",n[n.Next=4]=\"Next\",n[n.Last=8]=\"Last\",n[n.WrapAround=16]=\"WrapAround\",n[n.NoScroll=32]=\"NoScroll\",n))(hl||{}),PR=(n=>(n[n.Error=0]=\"Error\",n[n.Overflow=1]=\"Overflow\",n[n.Success=2]=\"Success\",n[n.Underflow=3]=\"Underflow\",n))(PR||{}),_dt=(n=>(n[n.Previous=-1]=\"Previous\",n[n.Next=1]=\"Next\",n))(_dt||{});function Eme(n=document.body){return n==null?[]:Array.from(n.querySelectorAll(FH)).sort((e,t)=>Math.sign((e.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}var Cj=(n=>(n[n.Strict=0]=\"Strict\",n[n.Loose=1]=\"Loose\",n))(Cj||{});function wj(n,e=0){var t;return n===((t=Qd(n))==null?void 0:t.body)?!1:fc(e,{0(){return n.matches(FH)},1(){let i=n;for(;i!==null;){if(i.matches(FH))return!0;i=i.parentElement}return!1}})}function Tme(n){let e=Qd(n);Go(()=>{e&&!wj(e.activeElement,0)&&km(n)})}var vdt=(n=>(n[n.Keyboard=0]=\"Keyboard\",n[n.Mouse=1]=\"Mouse\",n))(vdt||{});typeof window<\"u\"&&typeof document<\"u\"&&(document.addEventListener(\"keydown\",n=>{n.metaKey||n.altKey||n.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible=\"\")},!0),document.addEventListener(\"click\",n=>{n.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:n.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible=\"\")},!0));function km(n){n==null||n.focus({preventScroll:!0})}let bdt=[\"textarea\",\"input\"].join(\",\");function Cdt(n){var e,t;return(t=(e=n==null?void 0:n.matches)==null?void 0:e.call(n,bdt))!=null?t:!1}function yj(n,e=t=>t){return n.slice().sort((t,i)=>{let s=e(t),o=e(i);if(s===null||o===null)return 0;let r=s.compareDocumentPosition(o);return r&Node.DOCUMENT_POSITION_FOLLOWING?-1:r&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function wdt(n,e){return t0(Eme(),e,{relativeTo:n})}function t0(n,e,{sorted:t=!0,relativeTo:i=null,skipElements:s=[]}={}){var o;let r=(o=Array.isArray(n)?n.length>0?n[0].ownerDocument:document:n==null?void 0:n.ownerDocument)!=null?o:document,a=Array.isArray(n)?t?yj(n):n:Eme(n);s.length>0&&a.length>1&&(a=a.filter(g=>!s.includes(g))),i=i??r.activeElement;let l=(()=>{if(e&5)return 1;if(e&10)return-1;throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\")})(),c=(()=>{if(e&1)return 0;if(e&2)return Math.max(0,a.indexOf(i))-1;if(e&4)return Math.max(0,a.indexOf(i))+1;if(e&8)return a.length-1;throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\")})(),d=e&32?{preventScroll:!0}:{},u=0,h=a.length,f;do{if(u>=h||u+h<=0)return 0;let g=c+u;if(e&16)g=(g+h)%h;else{if(g<0)return 3;if(g>=h)return 1}f=a[g],f==null||f.focus(d),u+=l}while(f!==r.activeElement);return e&6&&Cdt(f)&&f.select(),2}function Nme(){return/iPhone/gi.test(window.navigator.platform)||/Mac/gi.test(window.navigator.platform)&&window.navigator.maxTouchPoints>0}function ydt(){return/Android/gi.test(window.navigator.userAgent)}function Sdt(){return Nme()||ydt()}function XT(n,e,t){cI.isServer||Qo(i=>{document.addEventListener(n,e,t),i(()=>document.removeEventListener(n,e,t))})}function Ame(n,e,t){cI.isServer||Qo(i=>{window.addEventListener(n,e,t),i(()=>window.removeEventListener(n,e,t))})}function Rme(n,e,t=ue(()=>!0)){function i(o,r){if(!t.value||o.defaultPrevented)return;let a=r(o);if(a===null||!a.getRootNode().contains(a))return;let l=function c(d){return typeof d==\"function\"?c(d()):Array.isArray(d)||d instanceof Set?d:[d]}(n);for(let c of l){if(c===null)continue;let d=c instanceof HTMLElement?c:_i(c);if(d!=null&&d.contains(a)||o.composed&&o.composedPath().includes(d))return}return!wj(a,Cj.Loose)&&a.tabIndex!==-1&&o.preventDefault(),e(o,a)}let s=Ue(null);XT(\"pointerdown\",o=>{var r,a;t.value&&(s.value=((a=(r=o.composedPath)==null?void 0:r.call(o))==null?void 0:a[0])||o.target)},!0),XT(\"mousedown\",o=>{var r,a;t.value&&(s.value=((a=(r=o.composedPath)==null?void 0:r.call(o))==null?void 0:a[0])||o.target)},!0),XT(\"click\",o=>{Sdt()||s.value&&(i(o,()=>s.value),s.value=null)},!0),XT(\"touchend\",o=>i(o,()=>o.target instanceof HTMLElement?o.target:null),!0),Ame(\"blur\",o=>i(o,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0)}function Nne(n,e){if(n)return n;let t=e??\"button\";if(typeof t==\"string\"&&t.toLowerCase()===\"button\")return\"button\"}function Sj(n,e){let t=Ue(Nne(n.value.type,n.value.as));return cn(()=>{t.value=Nne(n.value.type,n.value.as)}),Qo(()=>{var i;t.value||_i(e)&&_i(e)instanceof HTMLButtonElement&&!((i=_i(e))!=null&&i.hasAttribute(\"type\"))&&(t.value=\"button\")}),t}function Ane(n){return[n.screenX,n.screenY]}function xdt(){let n=Ue([-1,-1]);return{wasMoved(e){let t=Ane(e);return n.value[0]===t[0]&&n.value[1]===t[1]?!1:(n.value=t,!0)},update(e){n.value=Ane(e)}}}function Mme({container:n,accept:e,walk:t,enabled:i}){Qo(()=>{let s=n.value;if(!s||i!==void 0&&!i.value)return;let o=Qd(n);if(!o)return;let r=Object.assign(l=>e(l),{acceptNode:e}),a=o.createTreeWalker(s,NodeFilter.SHOW_ELEMENT,r,!1);for(;a.nextNode();)t(a.currentNode)})}var o_=(n=>(n[n.None=0]=\"None\",n[n.RenderStrategy=1]=\"RenderStrategy\",n[n.Static=2]=\"Static\",n))(o_||{}),rm=(n=>(n[n.Unmount=0]=\"Unmount\",n[n.Hidden=1]=\"Hidden\",n))(rm||{});function Oo({visible:n=!0,features:e=0,ourProps:t,theirProps:i,...s}){var o;let r=Ome(i,t),a=Object.assign(s,{props:r});if(n||e&2&&r.static)return q3(a);if(e&1){let l=(o=r.unmount)==null||o?0:1;return fc(l,{0(){return null},1(){return q3({...s,props:{...r,hidden:!0,style:{display:\"none\"}}})}})}return q3(a)}function q3({props:n,attrs:e,slots:t,slot:i,name:s}){var o,r;let{as:a,...l}=IO(n,[\"unmount\",\"static\"]),c=(o=t.default)==null?void 0:o.call(t,i),d={};if(i){let u=!1,h=[];for(let[f,g]of Object.entries(i))typeof g==\"boolean\"&&(u=!0),g===!0&&h.push(f);u&&(d[\"data-headlessui-state\"]=h.join(\" \"))}if(a===\"template\"){if(c=Pme(c??[]),Object.keys(l).length>0||Object.keys(e).length>0){let[u,...h]=c??[];if(!Ldt(u)||h.length>0)throw new Error(['Passing props on \"template\"!',\"\",`The current component <${s} /> is rendering a \"template\".`,\"However we need to passthrough the following props:\",Object.keys(l).concat(Object.keys(e)).map(p=>p.trim()).filter((p,_,b)=>b.indexOf(p)===_).sort((p,_)=>p.localeCompare(_)).map(p=>`  - ${p}`).join(`\n`),\"\",\"You can apply a few solutions:\",['Add an `as=\"...\"` prop, to ensure that we render an actual element instead of a \"template\".',\"Render a single element as the child so that we can forward the props onto that element.\"].map(p=>`  - ${p}`).join(`\n`)].join(`\n`));let f=Ome((r=u.props)!=null?r:{},l,d),g=nd(u,f,!0);for(let p in f)p.startsWith(\"on\")&&(g.props||(g.props={}),g.props[p]=f[p]);return g}return Array.isArray(c)&&c.length===1?c[0]:c}return $i(a,Object.assign({},l,d),{default:()=>c})}function Pme(n){return n.flatMap(e=>e.type===Bi?Pme(e.children):[e])}function Ome(...n){if(n.length===0)return{};if(n.length===1)return n[0];let e={},t={};for(let i of n)for(let s in i)s.startsWith(\"on\")&&typeof i[s]==\"function\"?(t[s]!=null||(t[s]=[]),t[s].push(i[s])):e[s]=i[s];if(e.disabled||e[\"aria-disabled\"])return Object.assign(e,Object.fromEntries(Object.keys(t).map(i=>[i,void 0])));for(let i in t)Object.assign(e,{[i](s,...o){let r=t[i];for(let a of r){if(s instanceof Event&&s.defaultPrevented)return;a(s,...o)}}});return e}function Fme(n){let e=Object.assign({},n);for(let t in e)e[t]===void 0&&delete e[t];return e}function IO(n,e=[]){let t=Object.assign({},n);for(let i of e)i in t&&delete t[i];return t}function Ldt(n){return n==null?!1:typeof n.type==\"string\"||typeof n.type==\"object\"||typeof n.type==\"function\"}var ww=(n=>(n[n.None=1]=\"None\",n[n.Focusable=2]=\"Focusable\",n[n.Hidden=4]=\"Hidden\",n))(ww||{});let Gk=kt({name:\"Hidden\",props:{as:{type:[Object,String],default:\"div\"},features:{type:Number,default:1}},setup(n,{slots:e,attrs:t}){return()=>{var i;let{features:s,...o}=n,r={\"aria-hidden\":(s&2)===2?!0:(i=o[\"aria-hidden\"])!=null?i:void 0,hidden:(s&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\",...(s&4)===4&&(s&2)!==2&&{display:\"none\"}}};return Oo({ourProps:r,theirProps:o,slot:{},attrs:t,slots:e,name:\"Hidden\"})}}}),Bme=Symbol(\"Context\");var Co=(n=>(n[n.Open=1]=\"Open\",n[n.Closed=2]=\"Closed\",n[n.Closing=4]=\"Closing\",n[n.Opening=8]=\"Opening\",n))(Co||{});function kdt(){return dI()!==null}function dI(){return Ui(Bme,null)}function xj(n){os(Bme,n)}var Hn=(n=>(n.Space=\" \",n.Enter=\"Enter\",n.Escape=\"Escape\",n.Backspace=\"Backspace\",n.Delete=\"Delete\",n.ArrowLeft=\"ArrowLeft\",n.ArrowUp=\"ArrowUp\",n.ArrowRight=\"ArrowRight\",n.ArrowDown=\"ArrowDown\",n.Home=\"Home\",n.End=\"End\",n.PageUp=\"PageUp\",n.PageDown=\"PageDown\",n.Tab=\"Tab\",n))(Hn||{});function Ddt(n){function e(){document.readyState!==\"loading\"&&(n(),document.removeEventListener(\"DOMContentLoaded\",e))}typeof window<\"u\"&&typeof document<\"u\"&&(document.addEventListener(\"DOMContentLoaded\",e),e())}let yv=[];Ddt(()=>{function n(e){e.target instanceof HTMLElement&&e.target!==document.body&&yv[0]!==e.target&&(yv.unshift(e.target),yv=yv.filter(t=>t!=null&&t.isConnected),yv.splice(10))}window.addEventListener(\"click\",n,{capture:!0}),window.addEventListener(\"mousedown\",n,{capture:!0}),window.addEventListener(\"focus\",n,{capture:!0}),document.body.addEventListener(\"click\",n,{capture:!0}),document.body.addEventListener(\"mousedown\",n,{capture:!0}),document.body.addEventListener(\"focus\",n,{capture:!0})});function Idt(n){throw new Error(\"Unexpected object: \"+n)}var tc=(n=>(n[n.First=0]=\"First\",n[n.Previous=1]=\"Previous\",n[n.Next=2]=\"Next\",n[n.Last=3]=\"Last\",n[n.Specific=4]=\"Specific\",n[n.Nothing=5]=\"Nothing\",n))(tc||{});function Edt(n,e){let t=e.resolveItems();if(t.length<=0)return null;let i=e.resolveActiveIndex(),s=i??-1;switch(n.focus){case 0:{for(let o=0;o<t.length;++o)if(!e.resolveDisabled(t[o],o,t))return o;return i}case 1:{s===-1&&(s=t.length);for(let o=s-1;o>=0;--o)if(!e.resolveDisabled(t[o],o,t))return o;return i}case 2:{for(let o=s+1;o<t.length;++o)if(!e.resolveDisabled(t[o],o,t))return o;return i}case 3:{for(let o=t.length-1;o>=0;--o)if(!e.resolveDisabled(t[o],o,t))return o;return i}case 4:{for(let o=0;o<t.length;++o)if(e.resolveId(t[o],o,t)===n.id)return o;return i}case 5:return null;default:Idt(n)}}function Wme(n={},e=null,t=[]){for(let[i,s]of Object.entries(n))Vme(t,Hme(e,i),s);return t}function Hme(n,e){return n?n+\"[\"+e+\"]\":e}function Vme(n,e,t){if(Array.isArray(t))for(let[i,s]of t.entries())Vme(n,Hme(e,i.toString()),s);else t instanceof Date?n.push([e,t.toISOString()]):typeof t==\"boolean\"?n.push([e,t?\"1\":\"0\"]):typeof t==\"string\"?n.push([e,t]):typeof t==\"number\"?n.push([e,`${t}`]):t==null?n.push([e,\"\"]):Wme(t,e,n)}function zme(n){var e,t;let i=(e=n==null?void 0:n.form)!=null?e:n.closest(\"form\");if(i){for(let s of i.elements)if(s!==n&&(s.tagName===\"INPUT\"&&s.type===\"submit\"||s.tagName===\"BUTTON\"&&s.type===\"submit\"||s.nodeName===\"INPUT\"&&s.type===\"image\")){s.click();return}(t=i.requestSubmit)==null||t.call(i)}}function $me(n,e,t,i){cI.isServer||Qo(s=>{n=n??window,n.addEventListener(e,t,i),s(()=>n.removeEventListener(e,t,i))})}var jS=(n=>(n[n.Forwards=0]=\"Forwards\",n[n.Backwards=1]=\"Backwards\",n))(jS||{});function Tdt(){let n=Ue(0);return Ame(\"keydown\",e=>{e.key===\"Tab\"&&(n.value=e.shiftKey?1:0)}),n}function Ume(n){if(!n)return new Set;if(typeof n==\"function\")return new Set(n());let e=new Set;for(let t of n.value){let i=_i(t);i instanceof HTMLElement&&e.add(i)}return e}var jme=(n=>(n[n.None=1]=\"None\",n[n.InitialFocus=2]=\"InitialFocus\",n[n.TabLock=4]=\"TabLock\",n[n.FocusLock=8]=\"FocusLock\",n[n.RestoreFocus=16]=\"RestoreFocus\",n[n.All=30]=\"All\",n))(jme||{});let cS=Object.assign(kt({name:\"FocusTrap\",props:{as:{type:[Object,String],default:\"div\"},initialFocus:{type:Object,default:null},features:{type:Number,default:30},containers:{type:[Object,Function],default:Ue(new Set)}},inheritAttrs:!1,setup(n,{attrs:e,slots:t,expose:i}){let s=Ue(null);i({el:s,$el:s});let o=ue(()=>Qd(s)),r=Ue(!1);cn(()=>r.value=!0),uo(()=>r.value=!1),Adt({ownerDocument:o},ue(()=>r.value&&!!(n.features&16)));let a=Rdt({ownerDocument:o,container:s,initialFocus:ue(()=>n.initialFocus)},ue(()=>r.value&&!!(n.features&2)));Mdt({ownerDocument:o,container:s,containers:n.containers,previousActiveElement:a},ue(()=>r.value&&!!(n.features&8)));let l=Tdt();function c(f){let g=_i(s);g&&(p=>p())(()=>{fc(l.value,{[jS.Forwards]:()=>{t0(g,hl.First,{skipElements:[f.relatedTarget]})},[jS.Backwards]:()=>{t0(g,hl.Last,{skipElements:[f.relatedTarget]})}})})}let d=Ue(!1);function u(f){f.key===\"Tab\"&&(d.value=!0,requestAnimationFrame(()=>{d.value=!1}))}function h(f){if(!r.value)return;let g=Ume(n.containers);_i(s)instanceof HTMLElement&&g.add(_i(s));let p=f.relatedTarget;p instanceof HTMLElement&&p.dataset.headlessuiFocusGuard!==\"true\"&&(Kme(g,p)||(d.value?t0(_i(s),fc(l.value,{[jS.Forwards]:()=>hl.Next,[jS.Backwards]:()=>hl.Previous})|hl.WrapAround,{relativeTo:f.target}):f.target instanceof HTMLElement&&km(f.target)))}return()=>{let f={},g={ref:s,onKeydown:u,onFocusout:h},{features:p,initialFocus:_,containers:b,...w}=n;return $i(Bi,[!!(p&4)&&$i(Gk,{as:\"button\",type:\"button\",\"data-headlessui-focus-guard\":!0,onFocus:c,features:ww.Focusable}),Oo({ourProps:g,theirProps:{...e,...w},slot:f,attrs:e,slots:t,name:\"FocusTrap\"}),!!(p&4)&&$i(Gk,{as:\"button\",type:\"button\",\"data-headlessui-focus-guard\":!0,onFocus:c,features:ww.Focusable})])}}}),{features:jme});function Ndt(n){let e=Ue(yv.slice());return Dn([n],([t],[i])=>{i===!0&&t===!1?vj(()=>{e.value.splice(0)}):i===!1&&t===!0&&(e.value=yv.slice())},{flush:\"post\"}),()=>{var t;return(t=e.value.find(i=>i!=null&&i.isConnected))!=null?t:null}}function Adt({ownerDocument:n},e){let t=Ndt(e);cn(()=>{Qo(()=>{var i,s;e.value||((i=n.value)==null?void 0:i.activeElement)===((s=n.value)==null?void 0:s.body)&&km(t())},{flush:\"post\"})}),uo(()=>{e.value&&km(t())})}function Rdt({ownerDocument:n,container:e,initialFocus:t},i){let s=Ue(null),o=Ue(!1);return cn(()=>o.value=!0),uo(()=>o.value=!1),cn(()=>{Dn([e,t,i],(r,a)=>{if(r.every((c,d)=>(a==null?void 0:a[d])===c)||!i.value)return;let l=_i(e);l&&vj(()=>{var c,d;if(!o.value)return;let u=_i(t),h=(c=n.value)==null?void 0:c.activeElement;if(u){if(u===h){s.value=h;return}}else if(l.contains(h)){s.value=h;return}u?km(u):t0(l,hl.First|hl.NoScroll)===PR.Error&&console.warn(\"There are no focusable elements inside the <FocusTrap />\"),s.value=(d=n.value)==null?void 0:d.activeElement})},{immediate:!0,flush:\"post\"})}),s}function Mdt({ownerDocument:n,container:e,containers:t,previousActiveElement:i},s){var o;$me((o=n.value)==null?void 0:o.defaultView,\"focus\",r=>{if(!s.value)return;let a=Ume(t);_i(e)instanceof HTMLElement&&a.add(_i(e));let l=i.value;if(!l)return;let c=r.target;c&&c instanceof HTMLElement?Kme(a,c)?(i.value=c,km(c)):(r.preventDefault(),r.stopPropagation(),km(l)):km(i.value)},!0)}function Kme(n,e){for(let t of n)if(t.contains(e))return!0;return!1}function Pdt(n){let e=Sg(n.getSnapshot());return uo(n.subscribe(()=>{e.value=n.getSnapshot()})),e}function Odt(n,e){let t=n(),i=new Set;return{getSnapshot(){return t},subscribe(s){return i.add(s),()=>i.delete(s)},dispatch(s,...o){let r=e[s].call(t,...o);r&&(t=r,i.forEach(a=>a()))}}}function Fdt(){let n;return{before({doc:e}){var t;let i=e.documentElement;n=((t=e.defaultView)!=null?t:window).innerWidth-i.clientWidth},after({doc:e,d:t}){let i=e.documentElement,s=i.clientWidth-i.offsetWidth,o=n-s;t.style(i,\"paddingRight\",`${o}px`)}}}function Bdt(){return Nme()?{before({doc:n,d:e,meta:t}){function i(s){return t.containers.flatMap(o=>o()).some(o=>o.contains(s))}e.microTask(()=>{var s;if(window.getComputedStyle(n.documentElement).scrollBehavior!==\"auto\"){let a=lI();a.style(n.documentElement,\"scrollBehavior\",\"auto\"),e.add(()=>e.microTask(()=>a.dispose()))}let o=(s=window.scrollY)!=null?s:window.pageYOffset,r=null;e.addEventListener(n,\"click\",a=>{if(a.target instanceof HTMLElement)try{let l=a.target.closest(\"a\");if(!l)return;let{hash:c}=new URL(l.href),d=n.querySelector(c);d&&!i(d)&&(r=d)}catch{}},!0),e.addEventListener(n,\"touchstart\",a=>{if(a.target instanceof HTMLElement)if(i(a.target)){let l=a.target;for(;l.parentElement&&i(l.parentElement);)l=l.parentElement;e.style(l,\"overscrollBehavior\",\"contain\")}else e.style(a.target,\"touchAction\",\"none\")}),e.addEventListener(n,\"touchmove\",a=>{if(a.target instanceof HTMLElement){if(a.target.tagName===\"INPUT\")return;if(i(a.target)){let l=a.target;for(;l.parentElement&&l.dataset.headlessuiPortal!==\"\"&&!(l.scrollHeight>l.clientHeight||l.scrollWidth>l.clientWidth);)l=l.parentElement;l.dataset.headlessuiPortal===\"\"&&a.preventDefault()}else a.preventDefault()}},{passive:!1}),e.add(()=>{var a;let l=(a=window.scrollY)!=null?a:window.pageYOffset;o!==l&&window.scrollTo(0,o),r&&r.isConnected&&(r.scrollIntoView({block:\"nearest\"}),r=null)})})}}:{}}function Wdt(){return{before({doc:n,d:e}){e.style(n.documentElement,\"overflow\",\"hidden\")}}}function Hdt(n){let e={};for(let t of n)Object.assign(e,t(e));return e}let Fv=Odt(()=>new Map,{PUSH(n,e){var t;let i=(t=this.get(n))!=null?t:{doc:n,count:0,d:lI(),meta:new Set};return i.count++,i.meta.add(e),this.set(n,i),this},POP(n,e){let t=this.get(n);return t&&(t.count--,t.meta.delete(e)),this},SCROLL_PREVENT({doc:n,d:e,meta:t}){let i={doc:n,d:e,meta:Hdt(t)},s=[Bdt(),Fdt(),Wdt()];s.forEach(({before:o})=>o==null?void 0:o(i)),s.forEach(({after:o})=>o==null?void 0:o(i))},SCROLL_ALLOW({d:n}){n.dispose()},TEARDOWN({doc:n}){this.delete(n)}});Fv.subscribe(()=>{let n=Fv.getSnapshot(),e=new Map;for(let[t]of n)e.set(t,t.documentElement.style.overflow);for(let t of n.values()){let i=e.get(t.doc)===\"hidden\",s=t.count!==0;(s&&!i||!s&&i)&&Fv.dispatch(t.count>0?\"SCROLL_PREVENT\":\"SCROLL_ALLOW\",t),t.count===0&&Fv.dispatch(\"TEARDOWN\",t)}});function Vdt(n,e,t){let i=Pdt(Fv),s=ue(()=>{let o=n.value?i.value.get(n.value):void 0;return o?o.count>0:!1});return Dn([n,e],([o,r],[a],l)=>{if(!o||!r)return;Fv.dispatch(\"PUSH\",o,t);let c=!1;l(()=>{c||(Fv.dispatch(\"POP\",a??o,t),c=!0)})},{immediate:!0}),s}let G3=new Map,dS=new Map;function Rne(n,e=Ue(!0)){Qo(t=>{var i;if(!e.value)return;let s=_i(n);if(!s)return;t(function(){var r;if(!s)return;let a=(r=dS.get(s))!=null?r:1;if(a===1?dS.delete(s):dS.set(s,a-1),a!==1)return;let l=G3.get(s);l&&(l[\"aria-hidden\"]===null?s.removeAttribute(\"aria-hidden\"):s.setAttribute(\"aria-hidden\",l[\"aria-hidden\"]),s.inert=l.inert,G3.delete(s))});let o=(i=dS.get(s))!=null?i:0;dS.set(s,o+1),o===0&&(G3.set(s,{\"aria-hidden\":s.getAttribute(\"aria-hidden\"),inert:s.inert}),s.setAttribute(\"aria-hidden\",\"true\"),s.inert=!0)})}function zdt({defaultContainers:n=[],portals:e,mainTreeNodeRef:t}={}){let i=Ue(null),s=Qd(i);function o(){var r,a,l;let c=[];for(let d of n)d!==null&&(d instanceof HTMLElement?c.push(d):\"value\"in d&&d.value instanceof HTMLElement&&c.push(d.value));if(e!=null&&e.value)for(let d of e.value)c.push(d);for(let d of(r=s==null?void 0:s.querySelectorAll(\"html > *, body > *\"))!=null?r:[])d!==document.body&&d!==document.head&&d instanceof HTMLElement&&d.id!==\"headlessui-portal-root\"&&(d.contains(_i(i))||d.contains((l=(a=_i(i))==null?void 0:a.getRootNode())==null?void 0:l.host)||c.some(u=>d.contains(u))||c.push(d));return c}return{resolveContainers:o,contains(r){return o().some(a=>a.contains(r))},mainTreeNodeRef:i,MainTreeNode(){return t!=null?null:$i(Gk,{features:ww.Hidden,ref:i})}}}let qme=Symbol(\"ForcePortalRootContext\");function $dt(){return Ui(qme,!1)}let Mne=kt({name:\"ForcePortalRoot\",props:{as:{type:[Object,String],default:\"template\"},force:{type:Boolean,default:!1}},setup(n,{slots:e,attrs:t}){return os(qme,n.force),()=>{let{force:i,...s}=n;return Oo({theirProps:s,ourProps:{},slot:{},slots:e,attrs:t,name:\"ForcePortalRoot\"})}}}),Gme=Symbol(\"StackContext\");var BH=(n=>(n[n.Add=0]=\"Add\",n[n.Remove=1]=\"Remove\",n))(BH||{});function Udt(){return Ui(Gme,()=>{})}function jdt({type:n,enabled:e,element:t,onUpdate:i}){let s=Udt();function o(...r){i==null||i(...r),s(...r)}cn(()=>{Dn(e,(r,a)=>{r?o(0,n,t):a===!0&&o(1,n,t)},{immediate:!0,flush:\"sync\"})}),uo(()=>{e.value&&o(1,n,t)}),os(Gme,o)}let Kdt=Symbol(\"DescriptionContext\");function Lj({slot:n=Ue({}),name:e=\"Description\",props:t={}}={}){let i=Ue([]);function s(o){return i.value.push(o),()=>{let r=i.value.indexOf(o);r!==-1&&i.value.splice(r,1)}}return os(Kdt,{register:s,slot:n,name:e,props:t}),ue(()=>i.value.length>0?i.value.join(\" \"):void 0)}function qdt(n){let e=Qd(n);if(!e){if(n===null)return null;throw new Error(`[Headless UI]: Cannot find ownerDocument for contextElement: ${n}`)}let t=e.getElementById(\"headlessui-portal-root\");if(t)return t;let i=e.createElement(\"div\");return i.setAttribute(\"id\",\"headlessui-portal-root\"),e.body.appendChild(i)}const WH=new WeakMap;function Gdt(n){var e;return(e=WH.get(n))!=null?e:0}function Pne(n,e){let t=e(Gdt(n));return t<=0?WH.delete(n):WH.set(n,t),t}let Zdt=kt({name:\"Portal\",props:{as:{type:[Object,String],default:\"div\"}},setup(n,{slots:e,attrs:t}){let i=Ue(null),s=ue(()=>Qd(i)),o=$dt(),r=Ui(Zme,null),a=Ue(o===!0||r==null?qdt(i.value):r.resolveTarget());a.value&&Pne(a.value,h=>h+1);let l=Ue(!1);cn(()=>{l.value=!0}),Qo(()=>{o||r!=null&&(a.value=r.resolveTarget())});let c=Ui(HH,null),d=!1,u=pc();return Dn(i,()=>{if(d||!c)return;let h=_i(i);h&&(uo(c.register(h),u),d=!0)}),uo(()=>{var h,f;let g=(h=s.value)==null?void 0:h.getElementById(\"headlessui-portal-root\");!g||a.value!==g||Pne(a.value,p=>p-1)||a.value.children.length>0||(f=a.value.parentElement)==null||f.removeChild(a.value)}),()=>{if(!l.value||a.value===null)return null;let h={ref:i,\"data-headlessui-portal\":\"\"};return $i(Lse,{to:a.value},Oo({ourProps:h,theirProps:n,slot:{},attrs:t,slots:e,name:\"Portal\"}))}}}),HH=Symbol(\"PortalParentContext\");function Ydt(){let n=Ui(HH,null),e=Ue([]);function t(o){return e.value.push(o),n&&n.register(o),()=>i(o)}function i(o){let r=e.value.indexOf(o);r!==-1&&e.value.splice(r,1),n&&n.unregister(o)}let s={register:t,unregister:i,portals:e};return[e,kt({name:\"PortalWrapper\",setup(o,{slots:r}){return os(HH,s),()=>{var a;return(a=r.default)==null?void 0:a.call(r)}}})]}let Zme=Symbol(\"PortalGroupContext\"),Xdt=kt({name:\"PortalGroup\",props:{as:{type:[Object,String],default:\"template\"},target:{type:Object,default:null}},setup(n,{attrs:e,slots:t}){let i=Ba({resolveTarget(){return n.target}});return os(Zme,i),()=>{let{target:s,...o}=n;return Oo({theirProps:o,ourProps:{},slot:{},attrs:e,slots:t,name:\"PortalGroup\"})}}});var Qdt=(n=>(n[n.Open=0]=\"Open\",n[n.Closed=1]=\"Closed\",n))(Qdt||{});let VH=Symbol(\"DialogContext\");function Yme(n){let e=Ui(VH,null);if(e===null){let t=new Error(`<${n} /> is missing a parent <Dialog /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,Yme),t}return e}let QT=\"DC8F892D-2EBD-447C-A4C8-A03058436FF4\",Xme=kt({name:\"Dialog\",inheritAttrs:!1,props:{as:{type:[Object,String],default:\"div\"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},open:{type:[Boolean,String],default:QT},initialFocus:{type:Object,default:null},id:{type:String,default:null},role:{type:String,default:\"dialog\"}},emits:{close:n=>!0},setup(n,{emit:e,attrs:t,slots:i,expose:s}){var o,r;let a=(o=n.id)!=null?o:`headlessui-dialog-${ad()}`,l=Ue(!1);cn(()=>{l.value=!0});let c=!1,d=ue(()=>n.role===\"dialog\"||n.role===\"alertdialog\"?n.role:(c||(c=!0,console.warn(`Invalid role [${d}] passed to <Dialog />. Only \\`dialog\\` and and \\`alertdialog\\` are supported. Using \\`dialog\\` instead.`)),\"dialog\")),u=Ue(0),h=dI(),f=ue(()=>n.open===QT&&h!==null?(h.value&Co.Open)===Co.Open:n.open),g=Ue(null),p=ue(()=>Qd(g));if(s({el:g,$el:g}),!(n.open!==QT||h!==null))throw new Error(\"You forgot to provide an `open` prop to the `Dialog`.\");if(typeof f.value!=\"boolean\")throw new Error(`You provided an \\`open\\` prop to the \\`Dialog\\`, but the value is not a boolean. Received: ${f.value===QT?void 0:n.open}`);let _=ue(()=>l.value&&f.value?0:1),b=ue(()=>_.value===0),w=ue(()=>u.value>1),y=Ui(VH,null)!==null,[S,x]=Ydt(),{resolveContainers:k,mainTreeNodeRef:D,MainTreeNode:I}=zdt({portals:S,defaultContainers:[ue(()=>{var We;return(We=he.panelRef.value)!=null?We:g.value})]}),N=ue(()=>w.value?\"parent\":\"leaf\"),P=ue(()=>h!==null?(h.value&Co.Closing)===Co.Closing:!1),O=ue(()=>y||P.value?!1:b.value),M=ue(()=>{var We,Ve,Me;return(Me=Array.from((Ve=(We=p.value)==null?void 0:We.querySelectorAll(\"body > *\"))!=null?Ve:[]).find(Zt=>Zt.id===\"headlessui-portal-root\"?!1:Zt.contains(_i(D))&&Zt instanceof HTMLElement))!=null?Me:null});Rne(M,O);let z=ue(()=>w.value?!0:b.value),K=ue(()=>{var We,Ve,Me;return(Me=Array.from((Ve=(We=p.value)==null?void 0:We.querySelectorAll(\"[data-headlessui-portal]\"))!=null?Ve:[]).find(Zt=>Zt.contains(_i(D))&&Zt instanceof HTMLElement))!=null?Me:null});Rne(K,z),jdt({type:\"Dialog\",enabled:ue(()=>_.value===0),element:g,onUpdate:(We,Ve)=>{if(Ve===\"Dialog\")return fc(We,{[BH.Add]:()=>u.value+=1,[BH.Remove]:()=>u.value-=1})}});let ae=Lj({name:\"DialogDescription\",slot:ue(()=>({open:f.value}))}),se=Ue(null),he={titleId:se,panelRef:Ue(null),dialogState:_,setTitleId(We){se.value!==We&&(se.value=We)},close(){e(\"close\",!1)}};os(VH,he);let me=ue(()=>!(!b.value||w.value));Rme(k,(We,Ve)=>{We.preventDefault(),he.close(),Go(()=>Ve==null?void 0:Ve.focus())},me);let De=ue(()=>!(w.value||_.value!==0));$me((r=p.value)==null?void 0:r.defaultView,\"keydown\",We=>{De.value&&(We.defaultPrevented||We.key===Hn.Escape&&(We.preventDefault(),We.stopPropagation(),he.close()))});let lt=ue(()=>!(P.value||_.value!==0||y));return Vdt(p,lt,We=>{var Ve;return{containers:[...(Ve=We.containers)!=null?Ve:[],k]}}),Qo(We=>{if(_.value!==0)return;let Ve=_i(g);if(!Ve)return;let Me=new ResizeObserver(Zt=>{for(let Oi of Zt){let ni=Oi.target.getBoundingClientRect();ni.x===0&&ni.y===0&&ni.width===0&&ni.height===0&&he.close()}});Me.observe(Ve),We(()=>Me.disconnect())}),()=>{let{open:We,initialFocus:Ve,...Me}=n,Zt={...t,ref:g,id:a,role:d.value,\"aria-modal\":_.value===0?!0:void 0,\"aria-labelledby\":se.value,\"aria-describedby\":ae.value},Oi={open:_.value===0};return $i(Mne,{force:!0},()=>[$i(Zdt,()=>$i(Xdt,{target:g.value},()=>$i(Mne,{force:!1},()=>$i(cS,{initialFocus:Ve,containers:k,features:b.value?fc(N.value,{parent:cS.features.RestoreFocus,leaf:cS.features.All&~cS.features.FocusLock}):cS.features.None},()=>$i(x,{},()=>Oo({ourProps:Zt,theirProps:{...Me,...t},slot:Oi,attrs:t,slots:i,visible:_.value===0,features:o_.RenderStrategy|o_.Static,name:\"Dialog\"})))))),$i(I)])}}}),Qme=kt({name:\"DialogPanel\",props:{as:{type:[Object,String],default:\"div\"},id:{type:String,default:null}},setup(n,{attrs:e,slots:t,expose:i}){var s;let o=(s=n.id)!=null?s:`headlessui-dialog-panel-${ad()}`,r=Yme(\"DialogPanel\");i({el:r.panelRef,$el:r.panelRef});function a(l){l.stopPropagation()}return()=>{let{...l}=n,c={id:o,ref:r.panelRef,onClick:a};return Oo({ourProps:c,theirProps:l,slot:{open:r.dialogState.value===0},attrs:e,slots:t,name:\"DialogPanel\"})}}});var Jdt=(n=>(n[n.Open=0]=\"Open\",n[n.Closed=1]=\"Closed\",n))(Jdt||{});let Jme=Symbol(\"DisclosureContext\");function kj(n){let e=Ui(Jme,null);if(e===null){let t=new Error(`<${n} /> is missing a parent <Disclosure /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,kj),t}return e}let e_e=Symbol(\"DisclosurePanelContext\");function eut(){return Ui(e_e,null)}let tut=kt({name:\"Disclosure\",props:{as:{type:[Object,String],default:\"template\"},defaultOpen:{type:[Boolean],default:!1}},setup(n,{slots:e,attrs:t}){let i=Ue(n.defaultOpen?0:1),s=Ue(null),o=Ue(null),r={buttonId:Ue(`headlessui-disclosure-button-${ad()}`),panelId:Ue(`headlessui-disclosure-panel-${ad()}`),disclosureState:i,panel:s,button:o,toggleDisclosure(){i.value=fc(i.value,{0:1,1:0})},closeDisclosure(){i.value!==1&&(i.value=1)},close(a){r.closeDisclosure();let l=a?a instanceof HTMLElement?a:a.value instanceof HTMLElement?_i(a):_i(r.button):_i(r.button);l==null||l.focus()}};return os(Jme,r),xj(ue(()=>fc(i.value,{0:Co.Open,1:Co.Closed}))),()=>{let{defaultOpen:a,...l}=n,c={open:i.value===0,close:r.close};return Oo({theirProps:l,ourProps:{},slot:c,slots:e,attrs:t,name:\"Disclosure\"})}}}),iut=kt({name:\"DisclosureButton\",props:{as:{type:[Object,String],default:\"button\"},disabled:{type:[Boolean],default:!1},id:{type:String,default:null}},setup(n,{attrs:e,slots:t,expose:i}){let s=kj(\"DisclosureButton\"),o=eut(),r=ue(()=>o===null?!1:o.value===s.panelId.value);cn(()=>{r.value||n.id!==null&&(s.buttonId.value=n.id)}),uo(()=>{r.value||(s.buttonId.value=null)});let a=Ue(null);i({el:a,$el:a}),r.value||Qo(()=>{s.button.value=a.value});let l=Sj(ue(()=>({as:n.as,type:e.type})),a);function c(){var h;n.disabled||(r.value?(s.toggleDisclosure(),(h=_i(s.button))==null||h.focus()):s.toggleDisclosure())}function d(h){var f;if(!n.disabled)if(r.value)switch(h.key){case Hn.Space:case Hn.Enter:h.preventDefault(),h.stopPropagation(),s.toggleDisclosure(),(f=_i(s.button))==null||f.focus();break}else switch(h.key){case Hn.Space:case Hn.Enter:h.preventDefault(),h.stopPropagation(),s.toggleDisclosure();break}}function u(h){switch(h.key){case Hn.Space:h.preventDefault();break}}return()=>{var h;let f={open:s.disclosureState.value===0},{id:g,...p}=n,_=r.value?{ref:a,type:l.value,onClick:c,onKeydown:d}:{id:(h=s.buttonId.value)!=null?h:g,ref:a,type:l.value,\"aria-expanded\":s.disclosureState.value===0,\"aria-controls\":s.disclosureState.value===0||_i(s.panel)?s.panelId.value:void 0,disabled:n.disabled?!0:void 0,onClick:c,onKeydown:d,onKeyup:u};return Oo({ourProps:_,theirProps:p,slot:f,attrs:e,slots:t,name:\"DisclosureButton\"})}}}),nut=kt({name:\"DisclosurePanel\",props:{as:{type:[Object,String],default:\"div\"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},id:{type:String,default:null}},setup(n,{attrs:e,slots:t,expose:i}){let s=kj(\"DisclosurePanel\");cn(()=>{n.id!==null&&(s.panelId.value=n.id)}),uo(()=>{s.panelId.value=null}),i({el:s.panel,$el:s.panel}),os(e_e,s.panelId);let o=dI(),r=ue(()=>o!==null?(o.value&Co.Open)===Co.Open:s.disclosureState.value===0);return()=>{var a;let l={open:s.disclosureState.value===0,close:s.close},{id:c,...d}=n,u={id:(a=s.panelId.value)!=null?a:c,ref:s.panel};return Oo({ourProps:u,theirProps:d,slot:l,attrs:e,slots:t,features:o_.RenderStrategy|o_.Static,visible:r.value,name:\"DisclosurePanel\"})}}}),One=/([\\u2700-\\u27BF]|[\\uE000-\\uF8FF]|\\uD83C[\\uDC00-\\uDFFF]|\\uD83D[\\uDC00-\\uDFFF]|[\\u2011-\\u26FF]|\\uD83E[\\uDD10-\\uDDFF])/g;function Fne(n){var e,t;let i=(e=n.innerText)!=null?e:\"\",s=n.cloneNode(!0);if(!(s instanceof HTMLElement))return i;let o=!1;for(let a of s.querySelectorAll('[hidden],[aria-hidden],[role=\"img\"]'))a.remove(),o=!0;let r=o?(t=s.innerText)!=null?t:\"\":i;return One.test(r)&&(r=r.replace(One,\"\")),r}function sut(n){let e=n.getAttribute(\"aria-label\");if(typeof e==\"string\")return e.trim();let t=n.getAttribute(\"aria-labelledby\");if(t){let i=t.split(\" \").map(s=>{let o=document.getElementById(s);if(o){let r=o.getAttribute(\"aria-label\");return typeof r==\"string\"?r.trim():Fne(o).trim()}return null}).filter(Boolean);if(i.length>0)return i.join(\", \")}return Fne(n).trim()}function out(n){let e=Ue(\"\"),t=Ue(\"\");return()=>{let i=_i(n);if(!i)return\"\";let s=i.innerText;if(e.value===s)return t.value;let o=sut(i).trim().toLowerCase();return e.value=s,t.value=o,o}}var rut=(n=>(n[n.Open=0]=\"Open\",n[n.Closed=1]=\"Closed\",n))(rut||{}),aut=(n=>(n[n.Pointer=0]=\"Pointer\",n[n.Other=1]=\"Other\",n))(aut||{});function lut(n){requestAnimationFrame(()=>requestAnimationFrame(n))}let t_e=Symbol(\"MenuContext\");function EO(n){let e=Ui(t_e,null);if(e===null){let t=new Error(`<${n} /> is missing a parent <Menu /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,EO),t}return e}let cut=kt({name:\"Menu\",props:{as:{type:[Object,String],default:\"template\"}},setup(n,{slots:e,attrs:t}){let i=Ue(1),s=Ue(null),o=Ue(null),r=Ue([]),a=Ue(\"\"),l=Ue(null),c=Ue(1);function d(h=f=>f){let f=l.value!==null?r.value[l.value]:null,g=yj(h(r.value.slice()),_=>_i(_.dataRef.domRef)),p=f?g.indexOf(f):null;return p===-1&&(p=null),{items:g,activeItemIndex:p}}let u={menuState:i,buttonRef:s,itemsRef:o,items:r,searchQuery:a,activeItemIndex:l,activationTrigger:c,closeMenu:()=>{i.value=1,l.value=null},openMenu:()=>i.value=0,goToItem(h,f,g){let p=d(),_=Edt(h===tc.Specific?{focus:tc.Specific,id:f}:{focus:h},{resolveItems:()=>p.items,resolveActiveIndex:()=>p.activeItemIndex,resolveId:b=>b.id,resolveDisabled:b=>b.dataRef.disabled});a.value=\"\",l.value=_,c.value=g??1,r.value=p.items},search(h){let f=a.value!==\"\"?0:1;a.value+=h.toLowerCase();let g=(l.value!==null?r.value.slice(l.value+f).concat(r.value.slice(0,l.value+f)):r.value).find(_=>_.dataRef.textValue.startsWith(a.value)&&!_.dataRef.disabled),p=g?r.value.indexOf(g):-1;p===-1||p===l.value||(l.value=p,c.value=1)},clearSearch(){a.value=\"\"},registerItem(h,f){let g=d(p=>[...p,{id:h,dataRef:f}]);r.value=g.items,l.value=g.activeItemIndex,c.value=1},unregisterItem(h){let f=d(g=>{let p=g.findIndex(_=>_.id===h);return p!==-1&&g.splice(p,1),g});r.value=f.items,l.value=f.activeItemIndex,c.value=1}};return Rme([s,o],(h,f)=>{var g;u.closeMenu(),wj(f,Cj.Loose)||(h.preventDefault(),(g=_i(s))==null||g.focus())},ue(()=>i.value===0)),os(t_e,u),xj(ue(()=>fc(i.value,{0:Co.Open,1:Co.Closed}))),()=>{let h={open:i.value===0,close:u.closeMenu};return Oo({ourProps:{},theirProps:n,slot:h,slots:e,attrs:t,name:\"Menu\"})}}}),dut=kt({name:\"MenuButton\",props:{disabled:{type:Boolean,default:!1},as:{type:[Object,String],default:\"button\"},id:{type:String,default:null}},setup(n,{attrs:e,slots:t,expose:i}){var s;let o=(s=n.id)!=null?s:`headlessui-menu-button-${ad()}`,r=EO(\"MenuButton\");i({el:r.buttonRef,$el:r.buttonRef});function a(u){switch(u.key){case Hn.Space:case Hn.Enter:case Hn.ArrowDown:u.preventDefault(),u.stopPropagation(),r.openMenu(),Go(()=>{var h;(h=_i(r.itemsRef))==null||h.focus({preventScroll:!0}),r.goToItem(tc.First)});break;case Hn.ArrowUp:u.preventDefault(),u.stopPropagation(),r.openMenu(),Go(()=>{var h;(h=_i(r.itemsRef))==null||h.focus({preventScroll:!0}),r.goToItem(tc.Last)});break}}function l(u){switch(u.key){case Hn.Space:u.preventDefault();break}}function c(u){n.disabled||(r.menuState.value===0?(r.closeMenu(),Go(()=>{var h;return(h=_i(r.buttonRef))==null?void 0:h.focus({preventScroll:!0})})):(u.preventDefault(),r.openMenu(),lut(()=>{var h;return(h=_i(r.itemsRef))==null?void 0:h.focus({preventScroll:!0})})))}let d=Sj(ue(()=>({as:n.as,type:e.type})),r.buttonRef);return()=>{var u;let h={open:r.menuState.value===0},{...f}=n,g={ref:r.buttonRef,id:o,type:d.value,\"aria-haspopup\":\"menu\",\"aria-controls\":(u=_i(r.itemsRef))==null?void 0:u.id,\"aria-expanded\":r.menuState.value===0,onKeydown:a,onKeyup:l,onClick:c};return Oo({ourProps:g,theirProps:f,slot:h,attrs:e,slots:t,name:\"MenuButton\"})}}}),uut=kt({name:\"MenuItems\",props:{as:{type:[Object,String],default:\"div\"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},id:{type:String,default:null}},setup(n,{attrs:e,slots:t,expose:i}){var s;let o=(s=n.id)!=null?s:`headlessui-menu-items-${ad()}`,r=EO(\"MenuItems\"),a=Ue(null);i({el:r.itemsRef,$el:r.itemsRef}),Mme({container:ue(()=>_i(r.itemsRef)),enabled:ue(()=>r.menuState.value===0),accept(h){return h.getAttribute(\"role\")===\"menuitem\"?NodeFilter.FILTER_REJECT:h.hasAttribute(\"role\")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(h){h.setAttribute(\"role\",\"none\")}});function l(h){var f;switch(a.value&&clearTimeout(a.value),h.key){case Hn.Space:if(r.searchQuery.value!==\"\")return h.preventDefault(),h.stopPropagation(),r.search(h.key);case Hn.Enter:if(h.preventDefault(),h.stopPropagation(),r.activeItemIndex.value!==null){let g=r.items.value[r.activeItemIndex.value];(f=_i(g.dataRef.domRef))==null||f.click()}r.closeMenu(),Tme(_i(r.buttonRef));break;case Hn.ArrowDown:return h.preventDefault(),h.stopPropagation(),r.goToItem(tc.Next);case Hn.ArrowUp:return h.preventDefault(),h.stopPropagation(),r.goToItem(tc.Previous);case Hn.Home:case Hn.PageUp:return h.preventDefault(),h.stopPropagation(),r.goToItem(tc.First);case Hn.End:case Hn.PageDown:return h.preventDefault(),h.stopPropagation(),r.goToItem(tc.Last);case Hn.Escape:h.preventDefault(),h.stopPropagation(),r.closeMenu(),Go(()=>{var g;return(g=_i(r.buttonRef))==null?void 0:g.focus({preventScroll:!0})});break;case Hn.Tab:h.preventDefault(),h.stopPropagation(),r.closeMenu(),Go(()=>wdt(_i(r.buttonRef),h.shiftKey?hl.Previous:hl.Next));break;default:h.key.length===1&&(r.search(h.key),a.value=setTimeout(()=>r.clearSearch(),350));break}}function c(h){switch(h.key){case Hn.Space:h.preventDefault();break}}let d=dI(),u=ue(()=>d!==null?(d.value&Co.Open)===Co.Open:r.menuState.value===0);return()=>{var h,f;let g={open:r.menuState.value===0},{...p}=n,_={\"aria-activedescendant\":r.activeItemIndex.value===null||(h=r.items.value[r.activeItemIndex.value])==null?void 0:h.id,\"aria-labelledby\":(f=_i(r.buttonRef))==null?void 0:f.id,id:o,onKeydown:l,onKeyup:c,role:\"menu\",tabIndex:0,ref:r.itemsRef};return Oo({ourProps:_,theirProps:p,slot:g,attrs:e,slots:t,features:o_.RenderStrategy|o_.Static,visible:u.value,name:\"MenuItems\"})}}}),Cf=kt({name:\"MenuItem\",inheritAttrs:!1,props:{as:{type:[Object,String],default:\"template\"},disabled:{type:Boolean,default:!1},id:{type:String,default:null}},setup(n,{slots:e,attrs:t,expose:i}){var s;let o=(s=n.id)!=null?s:`headlessui-menu-item-${ad()}`,r=EO(\"MenuItem\"),a=Ue(null);i({el:a,$el:a});let l=ue(()=>r.activeItemIndex.value!==null?r.items.value[r.activeItemIndex.value].id===o:!1),c=out(a),d=ue(()=>({disabled:n.disabled,get textValue(){return c()},domRef:a}));cn(()=>r.registerItem(o,d)),uo(()=>r.unregisterItem(o)),Qo(()=>{r.menuState.value===0&&l.value&&r.activationTrigger.value!==0&&Go(()=>{var b,w;return(w=(b=_i(a))==null?void 0:b.scrollIntoView)==null?void 0:w.call(b,{block:\"nearest\"})})});function u(b){if(n.disabled)return b.preventDefault();r.closeMenu(),Tme(_i(r.buttonRef))}function h(){if(n.disabled)return r.goToItem(tc.Nothing);r.goToItem(tc.Specific,o)}let f=xdt();function g(b){f.update(b)}function p(b){f.wasMoved(b)&&(n.disabled||l.value||r.goToItem(tc.Specific,o,0))}function _(b){f.wasMoved(b)&&(n.disabled||l.value&&r.goToItem(tc.Nothing))}return()=>{let{disabled:b,...w}=n,y={active:l.value,disabled:b,close:r.closeMenu};return Oo({ourProps:{id:o,ref:a,role:\"menuitem\",tabIndex:b===!0?void 0:-1,\"aria-disabled\":b===!0?!0:void 0,onClick:u,onFocus:h,onPointerenter:g,onMouseenter:g,onPointermove:p,onMousemove:p,onPointerleave:_,onMouseleave:_},theirProps:{...t,...w},slot:y,attrs:t,slots:e,name:\"MenuItem\"})}}}),i_e=Symbol(\"LabelContext\");function n_e(){let n=Ui(i_e,null);if(n===null){let e=new Error(\"You used a <Label /> component, but it is not inside a parent.\");throw Error.captureStackTrace&&Error.captureStackTrace(e,n_e),e}return n}function s_e({slot:n={},name:e=\"Label\",props:t={}}={}){let i=Ue([]);function s(o){return i.value.push(o),()=>{let r=i.value.indexOf(o);r!==-1&&i.value.splice(r,1)}}return os(i_e,{register:s,slot:n,name:e,props:t}),ue(()=>i.value.length>0?i.value.join(\" \"):void 0)}let hut=kt({name:\"Label\",props:{as:{type:[Object,String],default:\"label\"},passive:{type:[Boolean],default:!1},id:{type:String,default:null}},setup(n,{slots:e,attrs:t}){var i;let s=(i=n.id)!=null?i:`headlessui-label-${ad()}`,o=n_e();return cn(()=>uo(o.register(s))),()=>{let{name:r=\"Label\",slot:a={},props:l={}}=o,{passive:c,...d}=n,u={...Object.entries(l).reduce((h,[f,g])=>Object.assign(h,{[f]:j(g)}),{}),id:s};return c&&(delete u.onClick,delete u.htmlFor,delete d.onClick),Oo({ourProps:u,theirProps:d,slot:a,attrs:t,slots:e,name:r})}}});function fut(n,e){return n===e}let o_e=Symbol(\"RadioGroupContext\");function r_e(n){let e=Ui(o_e,null);if(e===null){let t=new Error(`<${n} /> is missing a parent <RadioGroup /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,r_e),t}return e}let gut=kt({name:\"RadioGroup\",emits:{\"update:modelValue\":n=>!0},props:{as:{type:[Object,String],default:\"div\"},disabled:{type:[Boolean],default:!1},by:{type:[String,Function],default:()=>fut},modelValue:{type:[Object,String,Number,Boolean],default:void 0},defaultValue:{type:[Object,String,Number,Boolean],default:void 0},form:{type:String,optional:!0},name:{type:String,optional:!0},id:{type:String,default:null}},inheritAttrs:!1,setup(n,{emit:e,attrs:t,slots:i,expose:s}){var o;let r=(o=n.id)!=null?o:`headlessui-radiogroup-${ad()}`,a=Ue(null),l=Ue([]),c=s_e({name:\"RadioGroupLabel\"}),d=Lj({name:\"RadioGroupDescription\"});s({el:a,$el:a});let[u,h]=Dme(ue(()=>n.modelValue),_=>e(\"update:modelValue\",_),ue(()=>n.defaultValue)),f={options:l,value:u,disabled:ue(()=>n.disabled),firstOption:ue(()=>l.value.find(_=>!_.propsRef.disabled)),containsCheckedOption:ue(()=>l.value.some(_=>f.compare(zi(_.propsRef.value),zi(n.modelValue)))),compare(_,b){if(typeof n.by==\"string\"){let w=n.by;return(_==null?void 0:_[w])===(b==null?void 0:b[w])}return n.by(_,b)},change(_){var b;if(n.disabled||f.compare(zi(u.value),zi(_)))return!1;let w=(b=l.value.find(y=>f.compare(zi(y.propsRef.value),zi(_))))==null?void 0:b.propsRef;return w!=null&&w.disabled?!1:(h(_),!0)},registerOption(_){l.value.push(_),l.value=yj(l.value,b=>b.element)},unregisterOption(_){let b=l.value.findIndex(w=>w.id===_);b!==-1&&l.value.splice(b,1)}};os(o_e,f),Mme({container:ue(()=>_i(a)),accept(_){return _.getAttribute(\"role\")===\"radio\"?NodeFilter.FILTER_REJECT:_.hasAttribute(\"role\")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(_){_.setAttribute(\"role\",\"none\")}});function g(_){if(!a.value||!a.value.contains(_.target))return;let b=l.value.filter(w=>w.propsRef.disabled===!1).map(w=>w.element);switch(_.key){case Hn.Enter:zme(_.currentTarget);break;case Hn.ArrowLeft:case Hn.ArrowUp:if(_.preventDefault(),_.stopPropagation(),t0(b,hl.Previous|hl.WrapAround)===PR.Success){let w=l.value.find(y=>{var S;return y.element===((S=Qd(a))==null?void 0:S.activeElement)});w&&f.change(w.propsRef.value)}break;case Hn.ArrowRight:case Hn.ArrowDown:if(_.preventDefault(),_.stopPropagation(),t0(b,hl.Next|hl.WrapAround)===PR.Success){let w=l.value.find(y=>{var S;return y.element===((S=Qd(y.element))==null?void 0:S.activeElement)});w&&f.change(w.propsRef.value)}break;case Hn.Space:{_.preventDefault(),_.stopPropagation();let w=l.value.find(y=>{var S;return y.element===((S=Qd(y.element))==null?void 0:S.activeElement)});w&&f.change(w.propsRef.value)}break}}let p=ue(()=>{var _;return(_=_i(a))==null?void 0:_.closest(\"form\")});return cn(()=>{Dn([p],()=>{if(!p.value||n.defaultValue===void 0)return;function _(){f.change(n.defaultValue)}return p.value.addEventListener(\"reset\",_),()=>{var b;(b=p.value)==null||b.removeEventListener(\"reset\",_)}},{immediate:!0})}),()=>{let{disabled:_,name:b,form:w,...y}=n,S={ref:a,id:r,role:\"radiogroup\",\"aria-labelledby\":c.value,\"aria-describedby\":d.value,onKeydown:g};return $i(Bi,[...b!=null&&u.value!=null?Wme({[b]:u.value}).map(([x,k])=>$i(Gk,Fme({features:ww.Hidden,key:x,as:\"input\",type:\"hidden\",hidden:!0,readOnly:!0,form:w,disabled:_,name:x,value:k}))):[],Oo({ourProps:S,theirProps:{...t,...IO(y,[\"modelValue\",\"defaultValue\",\"by\"])},slot:{},attrs:t,slots:i,name:\"RadioGroup\"})])}}});var put=(n=>(n[n.Empty=1]=\"Empty\",n[n.Active=2]=\"Active\",n))(put||{});let mut=kt({name:\"RadioGroupOption\",props:{as:{type:[Object,String],default:\"div\"},value:{type:[Object,String,Number,Boolean]},disabled:{type:Boolean,default:!1},id:{type:String,default:null}},setup(n,{attrs:e,slots:t,expose:i}){var s;let o=(s=n.id)!=null?s:`headlessui-radiogroup-option-${ad()}`,r=r_e(\"RadioGroupOption\"),a=s_e({name:\"RadioGroupLabel\"}),l=Lj({name:\"RadioGroupDescription\"}),c=Ue(null),d=ue(()=>({value:n.value,disabled:n.disabled})),u=Ue(1);i({el:c,$el:c});let h=ue(()=>_i(c));cn(()=>r.registerOption({id:o,element:h,propsRef:d})),uo(()=>r.unregisterOption(o));let f=ue(()=>{var S;return((S=r.firstOption.value)==null?void 0:S.id)===o}),g=ue(()=>r.disabled.value||n.disabled),p=ue(()=>r.compare(zi(r.value.value),zi(n.value))),_=ue(()=>g.value?-1:p.value||!r.containsCheckedOption.value&&f.value?0:-1);function b(){var S;r.change(n.value)&&(u.value|=2,(S=_i(c))==null||S.focus())}function w(){u.value|=2}function y(){u.value&=-3}return()=>{let{value:S,disabled:x,...k}=n,D={checked:p.value,disabled:g.value,active:!!(u.value&2)},I={id:o,ref:c,role:\"radio\",\"aria-checked\":p.value?\"true\":\"false\",\"aria-labelledby\":a.value,\"aria-describedby\":l.value,\"aria-disabled\":g.value?!0:void 0,tabIndex:_.value,onClick:g.value?void 0:b,onFocus:g.value?void 0:w,onBlur:g.value?void 0:y};return Oo({ourProps:I,theirProps:k,slot:D,attrs:e,slots:t,name:\"RadioGroupOption\"})}}}),Bne=hut,_ut=Symbol(\"GroupContext\"),vut=kt({name:\"Switch\",emits:{\"update:modelValue\":n=>!0},props:{as:{type:[Object,String],default:\"button\"},modelValue:{type:Boolean,default:void 0},defaultChecked:{type:Boolean,optional:!0},form:{type:String,optional:!0},name:{type:String,optional:!0},value:{type:String,optional:!0},id:{type:String,default:null},disabled:{type:Boolean,default:!1},tabIndex:{type:Number,default:0}},inheritAttrs:!1,setup(n,{emit:e,attrs:t,slots:i,expose:s}){var o;let r=(o=n.id)!=null?o:`headlessui-switch-${ad()}`,a=Ui(_ut,null),[l,c]=Dme(ue(()=>n.modelValue),w=>e(\"update:modelValue\",w),ue(()=>n.defaultChecked));function d(){c(!l.value)}let u=Ue(null),h=a===null?u:a.switchRef,f=Sj(ue(()=>({as:n.as,type:t.type})),h);s({el:h,$el:h});function g(w){w.preventDefault(),d()}function p(w){w.key===Hn.Space?(w.preventDefault(),d()):w.key===Hn.Enter&&zme(w.currentTarget)}function _(w){w.preventDefault()}let b=ue(()=>{var w,y;return(y=(w=_i(h))==null?void 0:w.closest)==null?void 0:y.call(w,\"form\")});return cn(()=>{Dn([b],()=>{if(!b.value||n.defaultChecked===void 0)return;function w(){c(n.defaultChecked)}return b.value.addEventListener(\"reset\",w),()=>{var y;(y=b.value)==null||y.removeEventListener(\"reset\",w)}},{immediate:!0})}),()=>{let{name:w,value:y,form:S,tabIndex:x,...k}=n,D={checked:l.value},I={id:r,ref:h,role:\"switch\",type:f.value,tabIndex:x===-1?0:x,\"aria-checked\":l.value,\"aria-labelledby\":a==null?void 0:a.labelledby.value,\"aria-describedby\":a==null?void 0:a.describedby.value,onClick:g,onKeyup:p,onKeypress:_};return $i(Bi,[w!=null&&l.value!=null?$i(Gk,Fme({features:ww.Hidden,as:\"input\",type:\"checkbox\",hidden:!0,readOnly:!0,checked:l.value,form:S,disabled:k.disabled,name:w,value:y})):null,Oo({ourProps:I,theirProps:{...t,...IO(k,[\"modelValue\",\"defaultChecked\"])},slot:D,attrs:t,slots:i,name:\"Switch\"})])}}});function but(n){let e={called:!1};return(...t)=>{if(!e.called)return e.called=!0,n(...t)}}function Z3(n,...e){n&&e.length>0&&n.classList.add(...e)}function JT(n,...e){n&&e.length>0&&n.classList.remove(...e)}var zH=(n=>(n.Finished=\"finished\",n.Cancelled=\"cancelled\",n))(zH||{});function Cut(n,e){let t=lI();if(!n)return t.dispose;let{transitionDuration:i,transitionDelay:s}=getComputedStyle(n),[o,r]=[i,s].map(a=>{let[l=0]=a.split(\",\").filter(Boolean).map(c=>c.includes(\"ms\")?parseFloat(c):parseFloat(c)*1e3).sort((c,d)=>d-c);return l});return o!==0?t.setTimeout(()=>e(\"finished\"),o+r):e(\"finished\"),t.add(()=>e(\"cancelled\")),t.dispose}function Wne(n,e,t,i,s,o){let r=lI(),a=o!==void 0?but(o):()=>{};return JT(n,...s),Z3(n,...e,...t),r.nextFrame(()=>{JT(n,...t),Z3(n,...i),r.add(Cut(n,l=>(JT(n,...i,...e),Z3(n,...s),a(l))))}),r.add(()=>JT(n,...e,...t,...i,...s)),r.add(()=>a(\"cancelled\")),r.dispose}function X_(n=\"\"){return n.split(/\\s+/).filter(e=>e.length>1)}let Dj=Symbol(\"TransitionContext\");var wut=(n=>(n.Visible=\"visible\",n.Hidden=\"hidden\",n))(wut||{});function yut(){return Ui(Dj,null)!==null}function Sut(){let n=Ui(Dj,null);if(n===null)throw new Error(\"A <TransitionChild /> is used but it is missing a parent <TransitionRoot />.\");return n}function xut(){let n=Ui(Ij,null);if(n===null)throw new Error(\"A <TransitionChild /> is used but it is missing a parent <TransitionRoot />.\");return n}let Ij=Symbol(\"NestingContext\");function TO(n){return\"children\"in n?TO(n.children):n.value.filter(({state:e})=>e===\"visible\").length>0}function a_e(n){let e=Ue([]),t=Ue(!1);cn(()=>t.value=!0),uo(()=>t.value=!1);function i(o,r=rm.Hidden){let a=e.value.findIndex(({id:l})=>l===o);a!==-1&&(fc(r,{[rm.Unmount](){e.value.splice(a,1)},[rm.Hidden](){e.value[a].state=\"hidden\"}}),!TO(e)&&t.value&&(n==null||n()))}function s(o){let r=e.value.find(({id:a})=>a===o);return r?r.state!==\"visible\"&&(r.state=\"visible\"):e.value.push({id:o,state:\"visible\"}),()=>i(o,rm.Unmount)}return{children:e,register:s,unregister:i}}let l_e=o_.RenderStrategy,Ej=kt({props:{as:{type:[Object,String],default:\"div\"},show:{type:[Boolean],default:null},unmount:{type:[Boolean],default:!0},appear:{type:[Boolean],default:!1},enter:{type:[String],default:\"\"},enterFrom:{type:[String],default:\"\"},enterTo:{type:[String],default:\"\"},entered:{type:[String],default:\"\"},leave:{type:[String],default:\"\"},leaveFrom:{type:[String],default:\"\"},leaveTo:{type:[String],default:\"\"}},emits:{beforeEnter:()=>!0,afterEnter:()=>!0,beforeLeave:()=>!0,afterLeave:()=>!0},setup(n,{emit:e,attrs:t,slots:i,expose:s}){let o=Ue(0);function r(){o.value|=Co.Opening,e(\"beforeEnter\")}function a(){o.value&=~Co.Opening,e(\"afterEnter\")}function l(){o.value|=Co.Closing,e(\"beforeLeave\")}function c(){o.value&=~Co.Closing,e(\"afterLeave\")}if(!yut()&&kdt())return()=>$i(Tj,{...n,onBeforeEnter:r,onAfterEnter:a,onBeforeLeave:l,onAfterLeave:c},i);let d=Ue(null),u=ue(()=>n.unmount?rm.Unmount:rm.Hidden);s({el:d,$el:d});let{show:h,appear:f}=Sut(),{register:g,unregister:p}=xut(),_=Ue(h.value?\"visible\":\"hidden\"),b={value:!0},w=ad(),y={value:!1},S=a_e(()=>{!y.value&&_.value!==\"hidden\"&&(_.value=\"hidden\",p(w),c())});cn(()=>{let z=g(w);uo(z)}),Qo(()=>{if(u.value===rm.Hidden&&w){if(h.value&&_.value!==\"visible\"){_.value=\"visible\";return}fc(_.value,{hidden:()=>p(w),visible:()=>g(w)})}});let x=X_(n.enter),k=X_(n.enterFrom),D=X_(n.enterTo),I=X_(n.entered),N=X_(n.leave),P=X_(n.leaveFrom),O=X_(n.leaveTo);cn(()=>{Qo(()=>{if(_.value===\"visible\"){let z=_i(d);if(z instanceof Comment&&z.data===\"\")throw new Error(\"Did you forget to passthrough the `ref` to the actual DOM node?\")}})});function M(z){let K=b.value&&!f.value,ae=_i(d);!ae||!(ae instanceof HTMLElement)||K||(y.value=!0,h.value&&r(),h.value||l(),z(h.value?Wne(ae,x,k,D,I,se=>{y.value=!1,se===zH.Finished&&a()}):Wne(ae,N,P,O,I,se=>{y.value=!1,se===zH.Finished&&(TO(S)||(_.value=\"hidden\",p(w),c()))})))}return cn(()=>{Dn([h],(z,K,ae)=>{M(ae),b.value=!1},{immediate:!0})}),os(Ij,S),xj(ue(()=>fc(_.value,{visible:Co.Open,hidden:Co.Closed})|o.value)),()=>{let{appear:z,show:K,enter:ae,enterFrom:se,enterTo:he,entered:me,leave:De,leaveFrom:lt,leaveTo:We,...Ve}=n,Me={ref:d},Zt={...Ve,...f.value&&h.value&&cI.isServer?{class:st([t.class,Ve.class,...x,...k])}:{}};return Oo({theirProps:Zt,ourProps:Me,slot:{},slots:i,attrs:t,features:l_e,visible:_.value===\"visible\",name:\"TransitionChild\"})}}}),Lut=Ej,Tj=kt({inheritAttrs:!1,props:{as:{type:[Object,String],default:\"div\"},show:{type:[Boolean],default:null},unmount:{type:[Boolean],default:!0},appear:{type:[Boolean],default:!1},enter:{type:[String],default:\"\"},enterFrom:{type:[String],default:\"\"},enterTo:{type:[String],default:\"\"},entered:{type:[String],default:\"\"},leave:{type:[String],default:\"\"},leaveFrom:{type:[String],default:\"\"},leaveTo:{type:[String],default:\"\"}},emits:{beforeEnter:()=>!0,afterEnter:()=>!0,beforeLeave:()=>!0,afterLeave:()=>!0},setup(n,{emit:e,attrs:t,slots:i}){let s=dI(),o=ue(()=>n.show===null&&s!==null?(s.value&Co.Open)===Co.Open:n.show);Qo(()=>{if(![!0,!1].includes(o.value))throw new Error('A <Transition /> is used but it is missing a `:show=\"true | false\"` prop.')});let r=Ue(o.value?\"visible\":\"hidden\"),a=a_e(()=>{r.value=\"hidden\"}),l=Ue(!0),c={show:o,appear:ue(()=>n.appear||!l.value)};return cn(()=>{Qo(()=>{l.value=!1,o.value?r.value=\"visible\":TO(a)||(r.value=\"hidden\")})}),os(Ij,a),os(Dj,c),()=>{let d=IO(n,[\"show\",\"appear\",\"unmount\",\"onBeforeEnter\",\"onBeforeLeave\",\"onAfterEnter\",\"onAfterLeave\"]),u={unmount:n.unmount};return Oo({ourProps:{...u,as:\"template\"},theirProps:{},slot:{},slots:{...i,default:()=>[$i(Lut,{onBeforeEnter:()=>e(\"beforeEnter\"),onAfterEnter:()=>e(\"afterEnter\"),onBeforeLeave:()=>e(\"beforeLeave\"),onAfterLeave:()=>e(\"afterLeave\"),...t,...u,...d},i.default)]},attrs:{},features:l_e,visible:r.value===\"visible\",name:\"Transition\"})}}});const kut={class:\"flex items-center justify-between\"},Dut={class:\"font-semibold\"},Iut={class:\"bg-white dark:bg-gray-900 rounded-md flex\"},Eut={class:\"ml-3 flex flex-col\"},NO=kt({__name:\"RadioGroups\",props:eD({title:{},options:{},default:{}},{modelValue:{},modelModifiers:{}}),emits:[\"update:modelValue\"],setup(n){const e=c_(n,\"modelValue\"),t=n;return Dn(()=>[t.default,t.options,e.value],()=>{t.default&&!t.options.includes(t.default)&&console.error(`The default value \"${t.default}\" is not in the options array. options: ${t.options}`),e.value||(e.value=t.default)},{immediate:!0}),(s,o)=>(fe(),Re(\"div\",kut,[q(\"div\",Dut,Ni(s.title),1),q(\"div\",null,[te(j(gut),{modelValue:e.value,\"onUpdate:modelValue\":o[0]||(o[0]=r=>e.value=r)},{default:Be(()=>[te(j(Bne),{class:\"sr-only\"},{default:Be(()=>[at(Ni(s.title),1)]),_:1}),q(\"div\",Iut,[(fe(!0),Re(Bi,null,Ma(s.options,(r,a)=>(fe(),jt(j(mut),{key:r,class:\"flex-1\",as:\"template\",value:r},{default:Be(({checked:l})=>[q(\"div\",{class:st([a===0?\"rounded-l-md\":\"\",a===s.options.length-1?\"rounded-r-md\":\"\",l?\"bg-indigo-50 dark:bg-gray-800 border-indigo-200 dark:border-indigo-400 z-10\":\"border-gray-200 dark:border-gray-800\",\"relative border px-4 py-3 flex cursor-pointer focus:outline-none\"])},[q(\"span\",{class:st([l?\"bg-indigo-600 dark:bg-indigo-400 border-transparent\":\"bg-white dark:bg-backdrop-dark border-gray-300 dark:border-gray-700\",\"h-4 w-4 mt-0.5 cursor-pointer rounded-full border flex items-center justify-center\"]),\"aria-hidden\":\"true\"},o[1]||(o[1]=[q(\"span\",{class:\"rounded-full bg-white w-1.5 h-1.5\"},null,-1)]),2),q(\"div\",Eut,[te(j(Bne),{as:\"span\",class:st([l?\"text-indigo-900 dark:text-gray-100\":\"text-gray-900 dark:text-gray-100\",\"capitalize block text-sm font-medium\"])},{default:Be(()=>[at(Ni(r),1)]),_:2},1032,[\"class\"])])],2)]),_:2},1032,[\"value\"]))),128))])]),_:1},8,[\"modelValue\"])])]))}}),Tut={class:\"flex items-center justify-between\"},Nut={class:\"font-bold text-gray-700 dark:text-gray-200\"},Aut={class:\"flex\"},Rut=[\"value\"],uI=kt({__name:\"NumberInput\",props:eD({title:{},min:{},max:{},default:{},step:{}},{modelValue:{default:1},modelModifiers:{}}),emits:[\"update:modelValue\"],setup(n){const e=c_(n,\"modelValue\",{get(r){return Number(r)||0},set(r){return Number(r)||0}}),t=n;t.default!==void 0?e.value=Number(t.default):e.value=Number(e.value);const i=r=>{const a=r.target,l=a.value;if(l===\"\"){e.value=t.min||0;return}const c=Number(l);if(isNaN(c)){a.value=String(e.value);return}let d=c;t.max!==void 0&&d>t.max&&(d=t.max),t.min!==void 0&&d<t.min&&(d=t.min),e.value=d},s=()=>{const r=t.step??1,a=Number(e.value)+r;t.max!==void 0&&a>t.max||(e.value=a)},o=()=>{const r=t.step??1,a=Number(e.value)-r;t.min!==void 0&&a<t.min||(e.value=a)};return(r,a)=>(fe(),Re(\"div\",Tut,[q(\"div\",Nut,Ni(r.title),1),q(\"div\",Aut,[q(\"button\",{class:\"select-none border py-2 px-4 cursor-pointer bg-gray-100 hover:bg-gray-50 dark:bg-black dark:hover:bg-gray-900 dark:border-gray-900 rounded-l\",onClick:o},\" - \"),q(\"input\",{value:e.value,class:\"border border-gray-200 p-2 text-center focus:outline-none focus:ring-0 dark:bg-gray-800 dark:border-gray-900\",type:\"text\",onInput:i},null,40,Rut),q(\"button\",{class:\"select-none border py-2 px-4 cursor-pointer bg-gray-100 hover:bg-gray-50 dark:bg-black dark:hover:bg-gray-900 dark:border-gray-900 rounded-r\",onClick:s},\" + \")])]))}}),Mut={class:\"space-y-6 sm:px-6 lg:px-0 lg:col-span-9 w-full\"},Put={class:\"grid grid-cols-1 md:grid-cols-3 gap-4\"},Out={class:\"grid grid-cols-1 sm:grid-cols-2 gap-6\"},Fut={key:0},But=kt({__name:\"BacktestSettings\",setup(n){const e=pi(),t=ue(()=>e.settings);return(i,s)=>{const o=sy,r=ume,a=oy,l=ub,c=x_,d=kme,u=NO,h=uI;return fe(),Re(\"div\",Mut,[te(a,null,{default:Be(()=>[te(o,null,{default:Be(()=>s[10]||(s[10]=[at(\"Logs\")])),_:1}),s[11]||(s[11]=q(\"p\",null,[at(\" Below configurations are used to filter out the extra logging info that are displayed when the \"),q(\"code\",null,'\"--debug\"'),at(\" flag is enabled. \")],-1)),s[12]||(s[12]=q(\"br\",null,null,-1)),q(\"div\",Put,[te(r,{modelValue:j(t).backtest.logging.order_submission,\"onUpdate:modelValue\":s[0]||(s[0]=f=>j(t).backtest.logging.order_submission=f),label:\"Order Submission\"},null,8,[\"modelValue\"]),te(r,{modelValue:j(t).backtest.logging.order_cancellation,\"onUpdate:modelValue\":s[1]||(s[1]=f=>j(t).backtest.logging.order_cancellation=f),label:\"Order Cancellation\"},null,8,[\"modelValue\"]),te(r,{modelValue:j(t).backtest.logging.order_execution,\"onUpdate:modelValue\":s[2]||(s[2]=f=>j(t).backtest.logging.order_execution=f),label:\"Order Execution\"},null,8,[\"modelValue\"]),te(r,{modelValue:j(t).backtest.logging.position_opened,\"onUpdate:modelValue\":s[3]||(s[3]=f=>j(t).backtest.logging.position_opened=f),label:\"Position Opened\"},null,8,[\"modelValue\"]),te(r,{modelValue:j(t).backtest.logging.position_increased,\"onUpdate:modelValue\":s[4]||(s[4]=f=>j(t).backtest.logging.position_increased=f),label:\"Position Increased\"},null,8,[\"modelValue\"]),te(r,{modelValue:j(t).backtest.logging.position_reduced,\"onUpdate:modelValue\":s[5]||(s[5]=f=>j(t).backtest.logging.position_reduced=f),label:\"Position Reduced\"},null,8,[\"modelValue\"]),te(r,{modelValue:j(t).backtest.logging.position_closed,\"onUpdate:modelValue\":s[6]||(s[6]=f=>j(t).backtest.logging.position_closed=f),label:\"Position Closed\"},null,8,[\"modelValue\"]),te(r,{modelValue:j(t).backtest.logging.shorter_period_candles,\"onUpdate:modelValue\":s[7]||(s[7]=f=>j(t).backtest.logging.shorter_period_candles=f),label:\"1m candles\"},null,8,[\"modelValue\"]),te(r,{modelValue:j(t).backtest.logging.trading_candles,\"onUpdate:modelValue\":s[8]||(s[8]=f=>j(t).backtest.logging.trading_candles=f),label:\"Trading Candles\"},null,8,[\"modelValue\"])])]),_:1}),te(a,null,{default:Be(()=>[te(o,null,{default:Be(()=>s[13]||(s[13]=[at(\"Data\")])),_:1}),q(\"div\",null,[te(c,{label:\"Warmup Candles\",help:\"Number of warmup candles that is loaded before starting each session\"},{default:Be(()=>[te(l,{modelValue:j(t).backtest.warm_up_candles,\"onUpdate:modelValue\":s[9]||(s[9]=f=>j(t).backtest.warm_up_candles=f),type:\"number\",placeholder:\"ex: 210\"},null,8,[\"modelValue\"])]),_:1})])]),_:1}),te(a,null,{default:Be(()=>[te(o,null,{default:Be(()=>s[14]||(s[14]=[at(\"Exchanges\")])),_:1}),s[19]||(s[19]=q(\"p\",null,\" Below you can modify configuration per each exchange. You can even choose to use a spot exchange's data for backtestig in futures mode (just because spot exchanges usually have more historical data), and vice versa. \",-1)),s[20]||(s[20]=q(\"br\",null,null,-1)),s[21]||(s[21]=q(\"br\",null,null,-1)),(fe(!0),Re(Bi,null,Ma(j(t).backtest.exchanges,(f,g)=>(fe(),Re(\"div\",{key:g},[te(d,{title:f.name,class:\"mb-4\"},null,8,[\"title\"]),q(\"div\",Out,[te(c,{label:\"Starting Capital\",class:\"w-full\"},{default:Be(()=>[te(l,{modelValue:f.balance,\"onUpdate:modelValue\":p=>f.balance=p,type:\"number\",step:\"1000\",class:\"w-full\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024),te(c,{label:`Trading Fee (${j(wt).round(f.fee*100,2)}%)`,class:\"w-full\"},{default:Be(()=>[te(l,{modelValue:f.fee,\"onUpdate:modelValue\":p=>f.fee=p,type:\"number\",step:\"0.0001\",class:\"w-full\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1032,[\"label\"])]),s[17]||(s[17]=q(\"br\",null,null,-1)),te(u,{modelValue:f.type,\"onUpdate:modelValue\":p=>f.type=p,title:\"Type:\",options:[\"spot\",\"futures\"]},null,8,[\"modelValue\",\"onUpdate:modelValue\"]),s[18]||(s[18]=q(\"br\",null,null,-1)),f.type===\"futures\"?(fe(),Re(\"div\",Fut,[te(u,{modelValue:f.futures_leverage_mode,\"onUpdate:modelValue\":p=>f.futures_leverage_mode=p,title:\"Leverage Mode:\",options:[\"cross\",\"isolated\"],default:\"isolated\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"]),s[15]||(s[15]=q(\"br\",null,null,-1)),f.type===\"futures\"?(fe(),jt(h,{key:0,modelValue:f.futures_leverage,\"onUpdate:modelValue\":p=>f.futures_leverage=p,title:\"Leverage (x):\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])):Bt(\"\",!0),s[16]||(s[16]=q(\"br\",null,null,-1))])):Bt(\"\",!0)]))),128))]),_:1})])}}}),Wut={class:\"space-y-6 sm:px-6 lg:px-0 lg:col-span-9 w-full\"},Hut={class:\"select-none\"},Vut={class:\"text-sm text-gray-500 dark:text-gray-400 mb-4\"},zut={key:0,class:\"italic font-bold\"},$ut={class:\"grid grid-cols-1 sm:grid-cols-2 gap-6 my-4\"},Uut={key:0},jut=kt({__name:\"OptimizationSettings\",setup(n){const e=pi(),t=ue(()=>e.settings),i=ue(()=>e.systemInfo),s=ue(()=>{const r=pi().plan;return r===\"free\"||r===\"guest\"||r===\"\"}),o=ue(()=>{const r=i.value.cpu_cores||1;return s.value?Math.min(6,r):r});return(r,a)=>{const l=sy,c=NO,d=oy,u=ub,h=x_,f=uI;return fe(),Re(\"div\",Wut,[te(d,null,{default:Be(()=>[te(l,null,{default:Be(()=>a[10]||(a[10]=[at(\"Fitness Function\")])),_:1}),te(c,{modelValue:j(t).optimization.objective_function,\"onUpdate:modelValue\":a[0]||(a[0]=g=>j(t).optimization.objective_function=g),title:\"Objective Function:\",options:[\"sharpe\",\"calmar\",\"sortino\",\"omega\"]},null,8,[\"modelValue\"])]),_:1}),te(d,null,{default:Be(()=>[te(l,null,{default:Be(()=>a[11]||(a[11]=[at(\"Data\")])),_:1}),q(\"div\",null,[te(h,{label:\"Warmup Candles\",name:\"Warmup Candles\",help:\"Number of warmup candles that is loaded before starting each session\"},{default:Be(()=>[te(u,{modelValue:j(t).optimization.warm_up_candles,\"onUpdate:modelValue\":a[1]||(a[1]=g=>j(t).optimization.warm_up_candles=g),typ:\"number\",placeholder:\"ex: 210\"},null,8,[\"modelValue\"])]),_:1}),a[13]||(a[13]=q(\"br\",null,null,-1)),te(h,{label:\"Trials\",name:\"Number of Trials\",help:\"The number of trials per each hyperparameter\"},{default:Be(()=>[te(u,{modelValue:j(t).optimization.trials,\"onUpdate:modelValue\":a[2]||(a[2]=g=>j(t).optimization.trials=g),typ:\"number\",placeholder:\"ex: 200\"},null,8,[\"modelValue\"])]),_:1}),a[14]||(a[14]=q(\"br\",null,null,-1)),te(h,{label:\"Best Candidates\",name:\"Count of Best Candidates\",help:\"Count of best candidates to be displayed in the results\"},{default:Be(()=>[te(u,{modelValue:j(t).optimization.best_candidates_count,\"onUpdate:modelValue\":a[3]||(a[3]=g=>j(t).optimization.best_candidates_count=g),typ:\"number\",placeholder:\"ex: 20\"},null,8,[\"modelValue\"])]),_:1}),a[15]||(a[15]=q(\"br\",null,null,-1)),q(\"div\",Hut,[q(\"p\",Vut,[a[12]||(a[12]=at(\" How many CPU cores of your machine would you like to be used for optimization? \")),j(s)?(fe(),Re(\"span\",zut,\" (Limited to 6 cores on free plan) \")):Bt(\"\",!0)]),te(f,{modelValue:j(t).optimization.cpu_cores,\"onUpdate:modelValue\":a[4]||(a[4]=g=>j(t).optimization.cpu_cores=g),title:`CPU cores to use (${j(t).optimization.cpu_cores} / ${j(e).systemInfo.cpu_cores}):`,min:1,max:j(o)},null,8,[\"modelValue\",\"title\",\"max\"])])])]),_:1}),te(d,null,{default:Be(()=>[te(l,null,{default:Be(()=>a[16]||(a[16]=[at(\"Exchange\")])),_:1}),a[18]||(a[18]=q(\"p\",null,\" Because the optimize mode is limited to one route only, it makes sense to have only one configuration section for the exchange values. Depending on the exchange you define in your route, these configurations will be used. \",-1)),q(\"div\",$ut,[te(h,{label:\"Starting Capital\",name:\"Starting Capital\"},{default:Be(()=>[te(u,{modelValue:j(t).optimization.exchange.balance,\"onUpdate:modelValue\":a[5]||(a[5]=g=>j(t).optimization.exchange.balance=g),typ:\"number\",step:\"1000\"},null,8,[\"modelValue\"])]),_:1}),te(h,{label:`Trading Fee (${j(wt).round(j(t).optimization.exchange.fee*100,2)}%)`},{default:Be(()=>[te(u,{modelValue:j(t).optimization.exchange.fee,\"onUpdate:modelValue\":a[6]||(a[6]=g=>j(t).optimization.exchange.fee=g),typ:\"number\",step:\"0.0001\"},null,8,[\"modelValue\"])]),_:1},8,[\"label\"])]),a[19]||(a[19]=q(\"br\",null,null,-1)),te(c,{modelValue:j(t).optimization.exchange.type,\"onUpdate:modelValue\":a[7]||(a[7]=g=>j(t).optimization.exchange.type=g),title:\"Type:\",options:[\"spot\",\"futures\"],default:\"futures\"},null,8,[\"modelValue\"]),a[20]||(a[20]=q(\"br\",null,null,-1)),j(t).optimization.exchange.type===\"futures\"?(fe(),Re(\"div\",Uut,[te(c,{modelValue:j(t).optimization.exchange.futures_leverage_mode,\"onUpdate:modelValue\":a[8]||(a[8]=g=>j(t).optimization.exchange.futures_leverage_mode=g),title:\"Leverage Mode:\",options:[\"cross\",\"isolated\"],default:\"isolated\"},null,8,[\"modelValue\"]),a[17]||(a[17]=q(\"br\",null,null,-1)),te(f,{modelValue:j(t).optimization.exchange.futures_leverage,\"onUpdate:modelValue\":a[9]||(a[9]=g=>j(t).optimization.exchange.futures_leverage=g),title:\"Leverage (x):\"},null,8,[\"modelValue\"])])):Bt(\"\",!0)]),_:1})])}}}),Kut={class:\"space-y-6 sm:px-6 lg:px-0 lg:col-span-9 w-full\"},qut={class:\"select-none\"},Gut={class:\"text-sm text-gray-500 dark:text-gray-400 mb-4\"},Zut={key:0,class:\"italic font-bold\"},Yut={class:\"grid grid-cols-1 sm:grid-cols-2 gap-6 my-4\"},Xut={key:0},Qut=kt({__name:\"MonteCarloSettings\",setup(n){const e=pi(),t=ue(()=>e.settings),i=ue(()=>e.systemInfo),s=ue(()=>{const r=pi().plan;return r===\"free\"||r===\"guest\"||r===\"\"}),o=ue(()=>{const r=i.value.cpu_cores||1;return s.value?Math.min(6,r):r});return(r,a)=>{const l=sy,c=ub,d=x_,u=uI,h=oy,f=NO;return fe(),Re(\"div\",Kut,[te(h,null,{default:Be(()=>[te(l,null,{default:Be(()=>a[7]||(a[7]=[at(\"Data\")])),_:1}),q(\"div\",null,[te(d,{label:\"Warmup Candles\",name:\"Warmup Candles\",help:\"Number of warmup candles that is loaded before starting each session\"},{default:Be(()=>[te(c,{modelValue:j(t).monte_carlo.warm_up_candles,\"onUpdate:modelValue\":a[0]||(a[0]=g=>j(t).monte_carlo.warm_up_candles=g),typ:\"number\",placeholder:\"ex: 210\"},null,8,[\"modelValue\"])]),_:1}),a[9]||(a[9]=q(\"br\",null,null,-1)),q(\"div\",qut,[q(\"p\",Gut,[a[8]||(a[8]=at(\" How many CPU cores of your machine would you like to be used for Monte Carlo simulations? \")),j(s)?(fe(),Re(\"span\",Zut,\" (Limited to 6 cores on free plan) \")):Bt(\"\",!0)]),te(u,{modelValue:j(t).monte_carlo.cpu_cores,\"onUpdate:modelValue\":a[1]||(a[1]=g=>j(t).monte_carlo.cpu_cores=g),title:`CPU cores to use (${j(t).monte_carlo.cpu_cores} / ${(\"useMainStore\"in r?r.useMainStore:j(pi))().systemInfo.cpu_cores}):`,min:1,max:j(o)},null,8,[\"modelValue\",\"title\",\"max\"])])])]),_:1}),te(h,null,{default:Be(()=>[te(l,null,{default:Be(()=>a[10]||(a[10]=[at(\"Exchange\")])),_:1}),a[12]||(a[12]=q(\"p\",null,\" These configurations will be used for all Monte Carlo simulations. \",-1)),q(\"div\",Yut,[te(d,{label:\"Starting Capital\",name:\"Starting Capital\"},{default:Be(()=>[te(c,{modelValue:j(t).monte_carlo.exchange.balance,\"onUpdate:modelValue\":a[2]||(a[2]=g=>j(t).monte_carlo.exchange.balance=g),typ:\"number\",step:\"1000\"},null,8,[\"modelValue\"])]),_:1}),te(d,{label:`Trading Fee (${j(wt).round(j(t).monte_carlo.exchange.fee*100,2)}%)`},{default:Be(()=>[te(c,{modelValue:j(t).monte_carlo.exchange.fee,\"onUpdate:modelValue\":a[3]||(a[3]=g=>j(t).monte_carlo.exchange.fee=g),typ:\"number\",step:\"0.0001\"},null,8,[\"modelValue\"])]),_:1},8,[\"label\"])]),a[13]||(a[13]=q(\"br\",null,null,-1)),te(f,{modelValue:j(t).monte_carlo.exchange.type,\"onUpdate:modelValue\":a[4]||(a[4]=g=>j(t).monte_carlo.exchange.type=g),title:\"Type:\",options:[\"spot\",\"futures\"],default:\"futures\"},null,8,[\"modelValue\"]),a[14]||(a[14]=q(\"br\",null,null,-1)),j(t).monte_carlo.exchange.type===\"futures\"?(fe(),Re(\"div\",Xut,[te(f,{modelValue:j(t).monte_carlo.exchange.futures_leverage_mode,\"onUpdate:modelValue\":a[5]||(a[5]=g=>j(t).monte_carlo.exchange.futures_leverage_mode=g),title:\"Leverage Mode:\",options:[\"cross\",\"isolated\"],default:\"isolated\"},null,8,[\"modelValue\"]),a[11]||(a[11]=q(\"br\",null,null,-1)),te(u,{modelValue:j(t).monte_carlo.exchange.futures_leverage,\"onUpdate:modelValue\":a[6]||(a[6]=g=>j(t).monte_carlo.exchange.futures_leverage=g),title:\"Leverage (x):\"},null,8,[\"modelValue\"])])):Bt(\"\",!0)]),_:1})])}}}),Q_=ha(Pi.ui.strategy,Pi.ui.toggle,Alt),Jut=kt({components:{HSwitch:vut,UIcon:ud},inheritAttrs:!1,props:{id:{type:String,default:null},name:{type:String,default:null},modelValue:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},onIcon:{type:String,default:()=>Q_.default.onIcon},offIcon:{type:String,default:()=>Q_.default.offIcon},loadingIcon:{type:String,default:()=>Q_.default.loadingIcon},color:{type:String,default:()=>Q_.default.color,validator(n){return Pi.ui.colors.includes(n)}},size:{type:String,default:()=>Q_.default.size,validator(n){return Object.keys(Q_.size).includes(n)}},class:{type:[String,Object,Array],default:()=>\"\"},ui:{type:Object,default:()=>({})}},emits:[\"update:modelValue\",\"change\"],setup(n,{emit:e}){const{ui:t,attrs:i}=Ua(\"toggle\",Ps(n,\"ui\"),Q_),{emitFormChange:s,color:o,inputId:r,name:a}=aI(n),l=ue({get(){return n.modelValue},set(g){e(\"update:modelValue\",g),e(\"change\",g),s()}}),c=ue(()=>ac(Vn(t.value.base,t.value.size[n.size],t.value.rounded,o.value&&t.value.ring.replaceAll(\"{color}\",o.value),o.value&&(l.value?t.value.active:t.value.inactive).replaceAll(\"{color}\",o.value)),n.class)),d=ue(()=>Vn(t.value.container.base,t.value.container.size[n.size],l.value?t.value.container.active[n.size]:t.value.container.inactive)),u=ue(()=>Vn(t.value.icon.size[n.size],o.value&&t.value.icon.on.replaceAll(\"{color}\",o.value))),h=ue(()=>Vn(t.value.icon.size[n.size],o.value&&t.value.icon.off.replaceAll(\"{color}\",o.value))),f=ue(()=>Vn(t.value.icon.size[n.size],o.value&&t.value.icon.loading.replaceAll(\"{color}\",o.value)));return bj(()=>j0()),{ui:t,attrs:i,name:a,inputId:r,active:l,switchClass:c,containerClass:d,onIconClass:u,offIconClass:h,loadingIconClass:f}}});function eht(n,e,t,i,s,o){const r=ud,a=jc(\"HSwitch\");return fe(),jt(a,an({id:n.inputId,modelValue:n.active,\"onUpdate:modelValue\":e[0]||(e[0]=l=>n.active=l),name:n.name,disabled:n.disabled||n.loading,class:n.switchClass},n.attrs),{default:Be(()=>[q(\"span\",{class:st(n.containerClass)},[n.loading?(fe(),Re(\"span\",{key:0,class:st([n.ui.icon.active,n.ui.icon.base]),\"aria-hidden\":\"true\"},[te(r,{name:n.loadingIcon,class:st(n.loadingIconClass)},null,8,[\"name\",\"class\"])],2)):Bt(\"\",!0),!n.loading&&n.onIcon?(fe(),Re(\"span\",{key:1,class:st([n.active?n.ui.icon.active:n.ui.icon.inactive,n.ui.icon.base]),\"aria-hidden\":\"true\"},[te(r,{name:n.onIcon,class:st(n.onIconClass)},null,8,[\"name\",\"class\"])],2)):Bt(\"\",!0),!n.loading&&n.offIcon?(fe(),Re(\"span\",{key:2,class:st([n.active?n.ui.icon.inactive:n.ui.icon.active,n.ui.icon.base]),\"aria-hidden\":\"true\"},[te(r,{name:n.offIcon,class:st(n.offIconClass)},null,8,[\"name\",\"class\"])],2)):Bt(\"\",!0)],2)]),_:1},16,[\"id\",\"modelValue\",\"name\",\"disabled\",\"class\"])}const tht=Js(Jut,[[\"render\",eht]]),iht={class:\"flex justify-between items-center\"},nht={class:\"font-medium text-gray-700 dark:text-gray-200\"},sht={key:0,class:\"opacity-70 text-sm\"},oht={key:0,class:\"text-sm text-gray-500 dark:text-gray-400\"},c_e=kt({__name:\"ToggleButton\",props:eD({title:{},description:{},disabled:{type:Boolean},disabledGuide:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:[\"update:modelValue\"],setup(n){const e=c_(n,\"modelValue\");return n.disabled&&(e.value=!1),(i,s)=>{const o=tht;return fe(),Re(\"div\",null,[q(\"div\",iht,[q(\"div\",nht,[at(Ni(i.title)+\" \",1),i.disabled?(fe(),Re(\"span\",sht,\"(\"+Ni(i.disabledGuide)+\")\",1)):Bt(\"\",!0)]),te(o,{modelValue:e.value,\"onUpdate:modelValue\":s[0]||(s[0]=r=>e.value=r),disabled:i.disabled},null,8,[\"modelValue\",\"disabled\"])]),i.description?(fe(),Re(\"div\",oht,Ni(i.description),1)):Bt(\"\",!0)])}}}),Pu=ha(Pi.ui.strategy,Pi.ui.select,Tlt),rht=kt({components:{UIcon:ud},inheritAttrs:!1,props:{modelValue:{type:[String,Number,Object],default:\"\"},id:{type:String,default:null},name:{type:String,default:null},placeholder:{type:String,default:null},required:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},icon:{type:String,default:null},loadingIcon:{type:String,default:()=>Pu.default.loadingIcon},leadingIcon:{type:String,default:null},trailingIcon:{type:String,default:()=>Pu.default.trailingIcon},trailing:{type:Boolean,default:!1},leading:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},padded:{type:Boolean,default:!0},options:{type:Array,default:()=>[]},size:{type:String,default:null,validator(n){return Object.keys(Pu.size).includes(n)}},color:{type:String,default:()=>Pu.default.color,validator(n){return[...Pi.ui.colors,...Object.keys(Pu.color)].includes(n)}},variant:{type:String,default:()=>Pu.default.variant,validator(n){return[...Object.keys(Pu.variant),...Object.values(Pu.color).flatMap(e=>Object.keys(e))].includes(n)}},optionAttribute:{type:String,default:\"label\"},valueAttribute:{type:String,default:\"value\"},selectClass:{type:String,default:null},class:{type:[String,Object,Array],default:()=>\"\"},ui:{type:Object,default:()=>({})}},emits:[\"update:modelValue\",\"change\"],setup(n,{emit:e,slots:t}){const{ui:i,attrs:s}=Ua(\"select\",Ps(n,\"ui\"),Pu,Ps(n,\"class\")),{size:o,rounded:r}=_j({ui:i,props:n}),{emitFormChange:a,inputId:l,color:c,size:d,name:u}=aI(n,Pu),h=ue(()=>o.value||d.value),f=K=>{e(\"update:modelValue\",K.target.value)},g=K=>{e(\"change\",K.target.value),a()},p=K=>mS(K,n.valueAttribute,mS(K,n.optionAttribute)),_=K=>mS(K,n.optionAttribute,mS(K,n.valueAttribute)),b=K=>[\"string\",\"number\",\"boolean\"].includes(typeof K)?{[n.valueAttribute]:K,[n.optionAttribute]:K}:{...K,[n.valueAttribute]:p(K),[n.optionAttribute]:_(K)},w=ue(()=>n.options.map(K=>b(K))),y=ue(()=>n.placeholder?[{[n.valueAttribute]:\"\",[n.optionAttribute]:n.placeholder,disabled:!0},...w.value]:w.value),S=ue(()=>{const K=b(n.modelValue),ae=y.value.find(se=>se[n.valueAttribute]===K[n.valueAttribute]);return ae?ae[n.valueAttribute]:\"\"}),x=ue(()=>{var ae,se;const K=((se=(ae=i.value.color)==null?void 0:ae[c.value])==null?void 0:se[n.variant])||i.value.variant[n.variant];return ac(Vn(i.value.base,i.value.form,r.value,i.value.size[h.value],n.padded?i.value.padding[h.value]:\"p-0\",K==null?void 0:K.replaceAll(\"{color}\",c.value),(k.value||t.leading)&&i.value.leading.padding[h.value],(D.value||t.trailing)&&i.value.trailing.padding[h.value]),n.placeholder&&!n.modelValue&&i.value.placeholder,n.selectClass)}),k=ue(()=>n.icon&&n.leading||n.icon&&!n.trailing||n.loading&&!n.trailing||n.leadingIcon),D=ue(()=>n.icon&&n.trailing||n.loading&&n.trailing||n.trailingIcon),I=ue(()=>n.loading?n.loadingIcon:n.leadingIcon||n.icon),N=ue(()=>n.loading&&!k.value?n.loadingIcon:n.trailingIcon||n.icon),P=ue(()=>Vn(i.value.icon.leading.wrapper,i.value.icon.leading.pointer,i.value.icon.leading.padding[h.value])),O=ue(()=>Vn(i.value.icon.base,c.value&&Pi.ui.colors.includes(c.value)&&i.value.icon.color.replaceAll(\"{color}\",c.value),i.value.icon.size[h.value],n.loading&&i.value.icon.loading)),M=ue(()=>Vn(i.value.icon.trailing.wrapper,i.value.icon.trailing.pointer,i.value.icon.trailing.padding[h.value])),z=ue(()=>Vn(i.value.icon.base,c.value&&Pi.ui.colors.includes(c.value)&&i.value.icon.color.replaceAll(\"{color}\",c.value),i.value.icon.size[h.value],n.loading&&!k.value&&i.value.icon.loading));return{ui:i,attrs:s,name:u,inputId:l,normalizedOptionsWithPlaceholder:y,normalizedValue:S,isLeading:k,isTrailing:D,selectClass:x,leadingIconName:I,leadingIconClass:O,leadingWrapperIconClass:P,trailingIconName:N,trailingIconClass:z,trailingWrapperIconClass:M,onInput:f,onChange:g}}}),aht=[\"id\",\"name\",\"value\",\"required\",\"disabled\"],lht=[\"value\",\"label\"],cht=[\"value\",\"selected\",\"disabled\",\"textContent\"],dht=[\"value\",\"selected\",\"disabled\",\"textContent\"];function uht(n,e,t,i,s,o){const r=ud;return fe(),Re(\"div\",{class:st(n.ui.wrapper)},[q(\"select\",an({id:n.inputId,name:n.name,value:n.modelValue,required:n.required,disabled:n.disabled,class:n.selectClass},n.attrs,{onInput:e[0]||(e[0]=(...a)=>n.onInput&&n.onInput(...a)),onChange:e[1]||(e[1]=(...a)=>n.onChange&&n.onChange(...a))}),[(fe(!0),Re(Bi,null,Ma(n.normalizedOptionsWithPlaceholder,(a,l)=>(fe(),Re(Bi,null,[a.children?(fe(),Re(\"optgroup\",{key:`${a[n.valueAttribute]}-optgroup-${l}`,value:a[n.valueAttribute],label:a[n.optionAttribute]},[(fe(!0),Re(Bi,null,Ma(a.children,(c,d)=>(fe(),Re(\"option\",{key:`${c[n.valueAttribute]}-${l}-${d}`,value:c[n.valueAttribute],selected:c[n.valueAttribute]===n.normalizedValue,disabled:c.disabled,textContent:Ni(c[n.optionAttribute])},null,8,cht))),128))],8,lht)):(fe(),Re(\"option\",{key:`${a[n.valueAttribute]}-${l}`,value:a[n.valueAttribute],selected:a[n.valueAttribute]===n.normalizedValue,disabled:a.disabled,textContent:Ni(a[n.optionAttribute])},null,8,dht))],64))),256))],16,aht),n.isLeading&&n.leadingIconName||n.$slots.leading?(fe(),Re(\"span\",{key:0,class:st(n.leadingWrapperIconClass)},[en(n.$slots,\"leading\",{disabled:n.disabled,loading:n.loading},()=>[te(r,{name:n.leadingIconName,class:st(n.leadingIconClass)},null,8,[\"name\",\"class\"])],!0)],2)):Bt(\"\",!0),n.isTrailing&&n.trailingIconName||n.$slots.trailing?(fe(),Re(\"span\",{key:1,class:st(n.trailingWrapperIconClass)},[en(n.$slots,\"trailing\",{disabled:n.disabled,loading:n.loading},()=>[te(r,{name:n.trailingIconName,class:st(n.trailingIconClass),\"aria-hidden\":\"true\"},null,8,[\"name\",\"class\"])],!0)],2)):Bt(\"\",!0)],2)}const d_e=Js(rht,[[\"render\",uht],[\"__scopeId\",\"data-v-931b50ef\"]]),hht={class:\"space-y-6 sm:px-6 lg:px-0 lg:col-span-9 w-full\"},fht={class:\"grid grid-cols-1 md:grid-cols-3 gap-4\"},ght={class:\"grid grid-cols-1 md:grid-cols-3 gap-4\"},pht={key:0},mht={class:\"grid grid-cols-1 md:grid-cols-3 gap-4\"},_ht={class:\"grid grid-cols-1 sm:grid-cols-2 gap-6\"},vht=kt({__name:\"LiveSettings\",setup(n){const e=pi(),t=ue(()=>e.settings),i=Ue([\"1m\",\"3m\",\"5m\",\"15m\",\"30m\",\"45m\",\"1h\",\"2h\",\"3h\",\"4h\",\"6h\",\"8h\",\"12h\",\"1D\"]);return(s,o)=>{const r=sy,a=c_e,l=oy,c=ume,d=ub,u=x_,h=y2,f=d_e,g=kme,p=NO,_=uI;return fe(),Re(\"div\",hht,[te(l,null,{default:Be(()=>[te(r,null,{default:Be(()=>o[24]||(o[24]=[at(\"Persistency\")])),_:1}),o[25]||(o[25]=q(\"p\",null,[at(\" If persistency is \"),q(\"b\",null,\"enabled\"),at(\", on new live session, Jesse will try to \"),q(\"b\",null,\"continue\"),at(\" the previous running session based on the existing positions and orders on the exchange. \"),q(\"br\"),q(\"br\"),at(\" If it's \"),q(\"b\",null,\"disabled\"),at(\", Jesse will first \"),q(\"b\",null,\"close\"),at(\" all existing positions and orders before \"),q(\"b\",null,\"starting\"),at(\" or \"),q(\"b\",null,\"terminating\"),at(\" live sessions. \")],-1)),o[26]||(o[26]=q(\"br\",null,null,-1)),te(a,{modelValue:j(t).live.persistency,\"onUpdate:modelValue\":o[0]||(o[0]=b=>j(t).live.persistency=b),title:\"Enable Persistency\"},null,8,[\"modelValue\"])]),_:1}),te(l,null,{default:Be(()=>[te(r,null,{default:Be(()=>o[27]||(o[27]=[at(\"Candle Generation\")])),_:1}),o[28]||(o[28]=q(\"p\",null,[at(\" If the bellow option is \"),q(\"b\",null,\"disabled\"),at(\", Jesse will fetch candles for all timeframes (based on your routes) from the exchange. This ensures faster session start times and similar result in Jesse's chart and the one you see on the exchange (or TradingView). \"),q(\"br\"),q(\"br\"),at(\" If the bellow option is \"),q(\"b\",null,\"enabled\"),at(\", Jesse will fetch 1m candles from the exchange, and generate bigger timeframes by its own. Doing so, Jesse is able to offer timeframes that are not supported by the exchange. It also captures the real price action that a shady exchange might be covering up later. In such case, you'll see different candle chart in Jesse and the one you see on the exchange. \")],-1)),o[29]||(o[29]=q(\"br\",null,null,-1)),te(a,{modelValue:j(t).live.generate_candles_from_1m,\"onUpdate:modelValue\":o[1]||(o[1]=b=>j(t).live.generate_candles_from_1m=b),title:\"Generate Candles Locally\"},null,8,[\"modelValue\"])]),_:1}),te(l,null,{default:Be(()=>[te(r,null,{default:Be(()=>o[30]||(o[30]=[at(\"Logs\")])),_:1}),o[31]||(o[31]=q(\"p\",null,\" You can filter the types of events that you want to be logged. Logging is often useful for debugging and recommended. Hence, it doesn't hurt to enable them all: \",-1)),o[32]||(o[32]=q(\"br\",null,null,-1)),q(\"div\",fht,[te(c,{modelValue:j(t).live.logging.strategy_execution,\"onUpdate:modelValue\":o[2]||(o[2]=b=>j(t).live.logging.strategy_execution=b),label:\"Strategy Execution\"},null,8,[\"modelValue\"]),te(c,{modelValue:j(t).live.logging.order_submission,\"onUpdate:modelValue\":o[3]||(o[3]=b=>j(t).live.logging.order_submission=b),label:\"Order Submission\"},null,8,[\"modelValue\"]),te(c,{modelValue:j(t).live.logging.order_cancellation,\"onUpdate:modelValue\":o[4]||(o[4]=b=>j(t).live.logging.order_cancellation=b),label:\"Order Cancellation\"},null,8,[\"modelValue\"]),te(c,{modelValue:j(t).live.logging.order_execution,\"onUpdate:modelValue\":o[5]||(o[5]=b=>j(t).live.logging.order_execution=b),label:\"Order Execution\"},null,8,[\"modelValue\"]),te(c,{modelValue:j(t).live.logging.position_opened,\"onUpdate:modelValue\":o[6]||(o[6]=b=>j(t).live.logging.position_opened=b),label:\"Position Opened\"},null,8,[\"modelValue\"]),te(c,{modelValue:j(t).live.logging.position_increased,\"onUpdate:modelValue\":o[7]||(o[7]=b=>j(t).live.logging.position_increased=b),label:\"Position Increased\"},null,8,[\"modelValue\"]),te(c,{modelValue:j(t).live.logging.position_reduced,\"onUpdate:modelValue\":o[8]||(o[8]=b=>j(t).live.logging.position_reduced=b),label:\"Position Reduced\"},null,8,[\"modelValue\"]),te(c,{modelValue:j(t).live.logging.position_closed,\"onUpdate:modelValue\":o[9]||(o[9]=b=>j(t).live.logging.position_closed=b),label:\"Position Closed\"},null,8,[\"modelValue\"]),te(c,{modelValue:j(t).live.logging.shorter_period_candles,\"onUpdate:modelValue\":o[10]||(o[10]=b=>j(t).live.logging.shorter_period_candles=b),label:\"1m candles\"},null,8,[\"modelValue\"]),te(c,{modelValue:j(t).live.logging.trading_candles,\"onUpdate:modelValue\":o[11]||(o[11]=b=>j(t).live.logging.trading_candles=b),label:\"Trading Candles\"},null,8,[\"modelValue\"]),te(c,{modelValue:j(t).live.logging.exchange_ws_reconnection,\"onUpdate:modelValue\":o[12]||(o[12]=b=>j(t).live.logging.exchange_ws_reconnection=b),label:\"Exchange WebSocket Reconnection\"},null,8,[\"modelValue\"])])]),_:1}),o[55]||(o[55]=q(\"br\",null,null,-1)),te(l,null,{default:Be(()=>[te(r,null,{default:Be(()=>o[33]||(o[33]=[at(\"Data\")])),_:1}),q(\"div\",null,[te(u,{label:\"Warmup Candles\",help:\"Number of warmup candles that is loaded before starting each session\"},{default:Be(()=>[te(d,{modelValue:j(t).live.warm_up_candles,\"onUpdate:modelValue\":o[13]||(o[13]=b=>j(t).live.warm_up_candles=b),type:\"number\",min:\"1\",placeholder:\"ex: 210\"},null,8,[\"modelValue\"])]),_:1})])]),_:1}),o[56]||(o[56]=q(\"br\",null,null,-1)),te(l,null,{default:Be(()=>[te(r,null,{default:Be(()=>o[34]||(o[34]=[at(\" Notifications \")])),_:1}),q(\"p\",null,[o[36]||(o[36]=at(\" Jesse can notify every time something interesting happens so you don't have to monitor your bots 24/7. Currently, Telegram and Discord drivers are supported. \")),o[37]||(o[37]=q(\"br\",null,null,-1)),o[38]||(o[38]=q(\"br\",null,null,-1)),o[39]||(o[39]=at(\" To enter API keys for your driver, go to \")),te(h,{class:\"underline\",to:\"/notification-api-keys\"},{default:Be(()=>o[35]||(o[35]=[at(\"Notifications API Keys\")])),_:1}),o[40]||(o[40]=at(\". \"))]),o[49]||(o[49]=q(\"br\",null,null,-1)),q(\"div\",ght,[te(c,{modelValue:j(t).live.notifications.enabled,\"onUpdate:modelValue\":o[14]||(o[14]=b=>j(t).live.notifications.enabled=b),label:\"Enable Notifications\"},null,8,[\"modelValue\"])]),o[50]||(o[50]=q(\"br\",null,null,-1)),j(t).live.notifications.enabled?(fe(),Re(\"div\",pht,[o[42]||(o[42]=q(\"p\",null,\" You can choose for which events you want to receive notifications: \",-1)),o[43]||(o[43]=q(\"br\",null,null,-1)),q(\"div\",mht,[te(c,{modelValue:j(t).live.notifications.events.errors,\"onUpdate:modelValue\":o[15]||(o[15]=b=>j(t).live.notifications.events.errors=b),label:\"Errors\"},null,8,[\"modelValue\"]),te(c,{modelValue:j(t).live.notifications.events.started_session,\"onUpdate:modelValue\":o[16]||(o[16]=b=>j(t).live.notifications.events.started_session=b),label:\"Session Start\"},null,8,[\"modelValue\"]),te(c,{modelValue:j(t).live.notifications.events.terminated_session,\"onUpdate:modelValue\":o[17]||(o[17]=b=>j(t).live.notifications.events.terminated_session=b),label:\"Session Termination\"},null,8,[\"modelValue\"]),te(c,{modelValue:j(t).live.notifications.events.submitted_orders,\"onUpdate:modelValue\":o[18]||(o[18]=b=>j(t).live.notifications.events.submitted_orders=b),label:\"Order Submission\"},null,8,[\"modelValue\"]),te(c,{modelValue:j(t).live.notifications.events.cancelled_orders,\"onUpdate:modelValue\":o[19]||(o[19]=b=>j(t).live.notifications.events.cancelled_orders=b),label:\"Order Cancellation\"},null,8,[\"modelValue\"]),te(c,{modelValue:j(t).live.notifications.events.executed_orders,\"onUpdate:modelValue\":o[20]||(o[20]=b=>j(t).live.notifications.events.executed_orders=b),label:\"Order Execution\"},null,8,[\"modelValue\"]),te(c,{modelValue:j(t).live.notifications.events.opened_position,\"onUpdate:modelValue\":o[21]||(o[21]=b=>j(t).live.notifications.events.opened_position=b),label:\"Opened Positions\"},null,8,[\"modelValue\"]),te(c,{modelValue:j(t).live.notifications.events.updated_position,\"onUpdate:modelValue\":o[22]||(o[22]=b=>j(t).live.notifications.events.updated_position=b),label:\"Updated Position\"},null,8,[\"modelValue\"])]),o[44]||(o[44]=q(\"br\",null,null,-1)),te(r,null,{default:Be(()=>o[41]||(o[41]=[at(\" Recurring Position Reports \")])),_:1}),o[45]||(o[45]=q(\"p\",null,\" You will also receive recurring reports about your positions as notifications. This gives you a little ease of mind so you don't have to constantly check your positions. \",-1)),o[46]||(o[46]=q(\"br\",null,null,-1)),o[47]||(o[47]=q(\"p\",null,[at(\"You can choose the \"),q(\"strong\",null,\"timeframe\"),at(\" for how frequently you want to receive them:\")],-1)),te(f,{modelValue:j(t).live.notifications.position_report_timeframe,\"onUpdate:modelValue\":o[23]||(o[23]=b=>j(t).live.notifications.position_report_timeframe=b),options:j(i)},null,8,[\"modelValue\",\"options\"]),o[48]||(o[48]=q(\"br\",null,null,-1))])):Bt(\"\",!0)]),_:1}),Object.keys(j(t).live.exchanges).length?(fe(),jt(l,{key:0},{default:Be(()=>[te(r,{class:\"mb-8\"},{default:Be(()=>o[51]||(o[51]=[at(\"Exchanges\")])),_:1}),(fe(!0),Re(Bi,null,Ma(j(t).live.exchanges,(b,w)=>(fe(),Re(\"div\",{key:w},[te(g,{title:b.name,class:\"mb-4\"},null,8,[\"title\"]),j(e).exchangeInfo[b.name].type===\"futures\"?(fe(),jt(p,{key:0,modelValue:b.futures_leverage_mode,\"onUpdate:modelValue\":y=>b.futures_leverage_mode=y,class:\"mb-4\",title:\"Leverage Mode:\",options:[\"cross\",\"isolated\"]},null,8,[\"modelValue\",\"onUpdate:modelValue\"])):Bt(\"\",!0),j(e).exchangeInfo[b.name].type===\"futures\"?(fe(),jt(_,{key:1,modelValue:b.futures_leverage,\"onUpdate:modelValue\":y=>b.futures_leverage=y,class:\"mb-4\",title:\"Leverage (x):\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])):Bt(\"\",!0),o[52]||(o[52]=q(\"p\",null,[at(\" Balances and fees will be fetched from the exchange in live trading. But for \"),q(\"b\",null,\"paper trading\"),at(\" you can set them here: \")],-1)),o[53]||(o[53]=q(\"br\",null,null,-1)),q(\"div\",_ht,[te(u,{label:\"Starting Capital\"},{default:Be(()=>[te(d,{modelValue:b.balance,\"onUpdate:modelValue\":y=>b.balance=y,type:\"number\",step:\"1000\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1024),te(u,{label:`Trading Fee (${j(wt).round(b.fee*100,2)}%)`},{default:Be(()=>[te(d,{modelValue:b.fee,\"onUpdate:modelValue\":y=>b.fee=y,type:\"number\",step:\"0.0001\"},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),_:2},1032,[\"label\"])]),o[54]||(o[54]=q(\"br\",null,null,-1))]))),128))]),_:1})):Bt(\"\",!0)])}}}),bht=kt({inheritAttrs:!1,props:{...IV,as:{type:String,default:\"button\"},type:{type:String,default:\"button\"},disabled:{type:Boolean,default:null},active:{type:Boolean,default:void 0},exact:{type:Boolean,default:!1},exactQuery:{type:Boolean,default:!1},exactHash:{type:Boolean,default:!1},inactiveClass:{type:String,default:void 0}},setup(n){function e(t,i,{isActive:s,isExactActive:o}){return n.exactQuery&&!wre(t.query,i.query)||n.exactHash&&t.hash!==i.hash?n.inactiveClass:n.exact&&o||!n.exact&&s?n.activeClass:n.inactiveClass}return{resolveLinkClass:e}}}),Cht=[\"href\",\"aria-disabled\",\"role\",\"rel\",\"target\",\"onClick\"];function wht(n,e,t,i,s,o){const r=y2;return n.to?(fe(),jt(r,an({key:1},n.$props,{custom:\"\"}),{default:Be(({route:a,href:l,target:c,rel:d,navigate:u,isActive:h,isExactActive:f,isExternal:g})=>[q(\"a\",an(n.$attrs,{href:n.disabled?void 0:l,\"aria-disabled\":n.disabled?\"true\":void 0,role:n.disabled?\"link\":void 0,rel:d,target:c,class:n.active!==void 0?n.active?n.activeClass:n.inactiveClass:n.resolveLinkClass(a,n._.provides[nl]||n.$route,{isActive:h,isExactActive:f}),onClick:p=>!g&&!n.disabled&&u(p)}),[en(n.$slots,\"default\",Ef(Zx({isActive:n.active!==void 0?n.active:n.exact?f:h})))],16,Cht)]),_:3},16)):(fe(),jt(Em(n.as),an({key:0,type:n.type,disabled:n.disabled},n.$attrs,{class:n.active?n.activeClass:n.inactiveClass}),{default:Be(()=>[en(n.$slots,\"default\",Ef(Zx({isActive:n.active})))]),_:3},16,[\"type\",\"disabled\",\"class\"]))}const u_e=Js(bht,[[\"render\",wht]]),wf=ha(Pi.ui.strategy,Pi.ui.button,klt),yht=kt({components:{UIcon:ud,ULink:u_e},inheritAttrs:!1,props:{...IV,type:{type:String,default:\"button\"},block:{type:Boolean,default:!1},label:{type:String,default:null},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},padded:{type:Boolean,default:!0},size:{type:String,default:()=>wf.default.size,validator(n){return Object.keys(wf.size).includes(n)}},color:{type:String,default:()=>wf.default.color,validator(n){return[...Pi.ui.colors,...Object.keys(wf.color)].includes(n)}},variant:{type:String,default:()=>wf.default.variant,validator(n){return[...Object.keys(wf.variant),...Object.values(wf.color).flatMap(e=>Object.keys(e))].includes(n)}},icon:{type:String,default:null},loadingIcon:{type:String,default:()=>wf.default.loadingIcon},leadingIcon:{type:String,default:null},trailingIcon:{type:String,default:null},trailing:{type:Boolean,default:!1},leading:{type:Boolean,default:!1},square:{type:Boolean,default:!1},truncate:{type:Boolean,default:!1},class:{type:[String,Object,Array],default:()=>\"\"},ui:{type:Object,default:()=>({})}},setup(n,{slots:e}){const{ui:t,attrs:i}=Ua(\"button\",Ps(n,\"ui\"),wf),{size:s,rounded:o}=_j({ui:t,props:n}),r=ue(()=>n.icon&&n.leading||n.icon&&!n.trailing||n.loading&&!n.trailing||n.leadingIcon),a=ue(()=>n.icon&&n.trailing||n.loading&&n.trailing||n.trailingIcon),l=ue(()=>n.square||!e.default&&!n.label),c=ue(()=>{var _,b;const p=((b=(_=t.value.color)==null?void 0:_[n.color])==null?void 0:b[n.variant])||t.value.variant[n.variant];return ac(Vn(t.value.base,t.value.font,o.value,t.value.size[s.value],t.value.gap[s.value],n.padded&&t.value[l.value?\"square\":\"padding\"][s.value],p==null?void 0:p.replaceAll(\"{color}\",n.color),n.block?t.value.block:t.value.inline),n.class)}),d=ue(()=>n.loading?n.loadingIcon:n.leadingIcon||n.icon),u=ue(()=>n.loading&&!r.value?n.loadingIcon:n.trailingIcon||n.icon),h=ue(()=>Vn(t.value.icon.base,t.value.icon.size[s.value],n.loading&&t.value.icon.loading)),f=ue(()=>Vn(t.value.icon.base,t.value.icon.size[s.value],n.loading&&!r.value&&t.value.icon.loading)),g=ue(()=>fNe(n));return{ui:t,attrs:i,isLeading:r,isTrailing:a,isSquare:l,buttonClass:c,leadingIconName:d,trailingIconName:u,leadingIconClass:h,trailingIconClass:f,linkProps:g}}});function Sht(n,e,t,i,s,o){const r=ud,a=u_e;return fe(),jt(a,an({type:n.type,disabled:n.disabled||n.loading,class:n.buttonClass},{...n.linkProps,...n.attrs}),{default:Be(()=>[en(n.$slots,\"leading\",{disabled:n.disabled,loading:n.loading},()=>[n.isLeading&&n.leadingIconName?(fe(),jt(r,{key:0,name:n.leadingIconName,class:st(n.leadingIconClass),\"aria-hidden\":\"true\"},null,8,[\"name\",\"class\"])):Bt(\"\",!0)]),en(n.$slots,\"default\",{},()=>[n.label?(fe(),Re(\"span\",{key:0,class:st([n.truncate?n.ui.truncate:\"\"])},Ni(n.label),3)):Bt(\"\",!0)]),en(n.$slots,\"trailing\",{disabled:n.disabled,loading:n.loading},()=>[n.isTrailing&&n.trailingIconName?(fe(),jt(r,{key:0,name:n.trailingIconName,class:st(n.trailingIconClass),\"aria-hidden\":\"true\"},null,8,[\"name\",\"class\"])):Bt(\"\",!0)])]),_:3},16,[\"type\",\"disabled\",\"class\"])}const jh=Js(yht,[[\"render\",Sht]]),Y3=ha(Pi.ui.strategy,Pi.ui.kbd,Dlt),xht=kt({inheritAttrs:!1,props:{value:{type:String,default:null},size:{type:String,default:()=>Y3.default.size,validator(n){return Object.keys(Y3.size).includes(n)}},class:{type:[String,Object,Array],default:()=>\"\"},ui:{type:Object,default:()=>({})}},setup(n){const{ui:e,attrs:t}=Ua(\"kbd\",Ps(n,\"ui\"),Y3),i=ue(()=>ac(Vn(e.value.base,e.value.size[n.size],e.value.padding,e.value.rounded,e.value.font,e.value.background,e.value.ring),n.class));return{ui:e,attrs:t,kbdClass:i}}});function Lht(n,e,t,i,s,o){return fe(),Re(\"kbd\",an({class:n.kbdClass},n.attrs),[en(n.$slots,\"default\",{},()=>[at(Ni(n.value),1)])],16)}const h_e=Js(xht,[[\"render\",Lht]]);function gc(n){if(n==null)return window;if(n.toString()!==\"[object Window]\"){var e=n.ownerDocument;return e&&e.defaultView||window}return n}function U0(n){var e=gc(n).Element;return n instanceof e||n instanceof Element}function td(n){var e=gc(n).HTMLElement;return n instanceof e||n instanceof HTMLElement}function Nj(n){if(typeof ShadowRoot>\"u\")return!1;var e=gc(n).ShadowRoot;return n instanceof e||n instanceof ShadowRoot}var i0=Math.max,OR=Math.min,yw=Math.round;function $H(){var n=navigator.userAgentData;return n!=null&&n.brands&&Array.isArray(n.brands)?n.brands.map(function(e){return e.brand+\"/\"+e.version}).join(\" \"):navigator.userAgent}function f_e(){return!/^((?!chrome|android).)*safari/i.test($H())}function Sw(n,e,t){e===void 0&&(e=!1),t===void 0&&(t=!1);var i=n.getBoundingClientRect(),s=1,o=1;e&&td(n)&&(s=n.offsetWidth>0&&yw(i.width)/n.offsetWidth||1,o=n.offsetHeight>0&&yw(i.height)/n.offsetHeight||1);var r=U0(n)?gc(n):window,a=r.visualViewport,l=!f_e()&&t,c=(i.left+(l&&a?a.offsetLeft:0))/s,d=(i.top+(l&&a?a.offsetTop:0))/o,u=i.width/s,h=i.height/o;return{width:u,height:h,top:d,right:c+u,bottom:d+h,left:c,x:c,y:d}}function Aj(n){var e=gc(n),t=e.pageXOffset,i=e.pageYOffset;return{scrollLeft:t,scrollTop:i}}function kht(n){return{scrollLeft:n.scrollLeft,scrollTop:n.scrollTop}}function Dht(n){return n===gc(n)||!td(n)?Aj(n):kht(n)}function Bh(n){return n?(n.nodeName||\"\").toLowerCase():null}function L_(n){return((U0(n)?n.ownerDocument:n.document)||window.document).documentElement}function Rj(n){return Sw(L_(n)).left+Aj(n).scrollLeft}function Og(n){return gc(n).getComputedStyle(n)}function Mj(n){var e=Og(n),t=e.overflow,i=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(t+s+i)}function Iht(n){var e=n.getBoundingClientRect(),t=yw(e.width)/n.offsetWidth||1,i=yw(e.height)/n.offsetHeight||1;return t!==1||i!==1}function Eht(n,e,t){t===void 0&&(t=!1);var i=td(e),s=td(e)&&Iht(e),o=L_(e),r=Sw(n,s,t),a={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(i||!i&&!t)&&((Bh(e)!==\"body\"||Mj(o))&&(a=Dht(e)),td(e)?(l=Sw(e,!0),l.x+=e.clientLeft,l.y+=e.clientTop):o&&(l.x=Rj(o))),{x:r.left+a.scrollLeft-l.x,y:r.top+a.scrollTop-l.y,width:r.width,height:r.height}}function Pj(n){var e=Sw(n),t=n.offsetWidth,i=n.offsetHeight;return Math.abs(e.width-t)<=1&&(t=e.width),Math.abs(e.height-i)<=1&&(i=e.height),{x:n.offsetLeft,y:n.offsetTop,width:t,height:i}}function AO(n){return Bh(n)===\"html\"?n:n.assignedSlot||n.parentNode||(Nj(n)?n.host:null)||L_(n)}function g_e(n){return[\"html\",\"body\",\"#document\"].indexOf(Bh(n))>=0?n.ownerDocument.body:td(n)&&Mj(n)?n:g_e(AO(n))}function zx(n,e){var t;e===void 0&&(e=[]);var i=g_e(n),s=i===((t=n.ownerDocument)==null?void 0:t.body),o=gc(i),r=s?[o].concat(o.visualViewport||[],Mj(i)?i:[]):i,a=e.concat(r);return s?a:a.concat(zx(AO(r)))}function Tht(n){return[\"table\",\"td\",\"th\"].indexOf(Bh(n))>=0}function Hne(n){return!td(n)||Og(n).position===\"fixed\"?null:n.offsetParent}function Nht(n){var e=/firefox/i.test($H()),t=/Trident/i.test($H());if(t&&td(n)){var i=Og(n);if(i.position===\"fixed\")return null}var s=AO(n);for(Nj(s)&&(s=s.host);td(s)&&[\"html\",\"body\"].indexOf(Bh(s))<0;){var o=Og(s);if(o.transform!==\"none\"||o.perspective!==\"none\"||o.contain===\"paint\"||[\"transform\",\"perspective\"].indexOf(o.willChange)!==-1||e&&o.willChange===\"filter\"||e&&o.filter&&o.filter!==\"none\")return s;s=s.parentNode}return null}function hI(n){for(var e=gc(n),t=Hne(n);t&&Tht(t)&&Og(t).position===\"static\";)t=Hne(t);return t&&(Bh(t)===\"html\"||Bh(t)===\"body\"&&Og(t).position===\"static\")?e:t||Nht(n)||e}var oc=\"top\",hu=\"bottom\",fu=\"right\",rc=\"left\",Oj=\"auto\",fI=[oc,hu,fu,rc],xw=\"start\",Zk=\"end\",Aht=\"clippingParents\",p_e=\"viewport\",uS=\"popper\",Rht=\"reference\",Vne=fI.reduce(function(n,e){return n.concat([e+\"-\"+xw,e+\"-\"+Zk])},[]),m_e=[].concat(fI,[Oj]).reduce(function(n,e){return n.concat([e,e+\"-\"+xw,e+\"-\"+Zk])},[]),Mht=\"beforeRead\",Pht=\"read\",Oht=\"afterRead\",Fht=\"beforeMain\",Bht=\"main\",Wht=\"afterMain\",Hht=\"beforeWrite\",Vht=\"write\",zht=\"afterWrite\",$ht=[Mht,Pht,Oht,Fht,Bht,Wht,Hht,Vht,zht];function Uht(n){var e=new Map,t=new Set,i=[];n.forEach(function(o){e.set(o.name,o)});function s(o){t.add(o.name);var r=[].concat(o.requires||[],o.requiresIfExists||[]);r.forEach(function(a){if(!t.has(a)){var l=e.get(a);l&&s(l)}}),i.push(o)}return n.forEach(function(o){t.has(o.name)||s(o)}),i}function jht(n){var e=Uht(n);return $ht.reduce(function(t,i){return t.concat(e.filter(function(s){return s.phase===i}))},[])}function Kht(n){var e;return function(){return e||(e=new Promise(function(t){Promise.resolve().then(function(){e=void 0,t(n())})})),e}}function qht(n){var e=n.reduce(function(t,i){var s=t[i.name];return t[i.name]=s?Object.assign({},s,i,{options:Object.assign({},s.options,i.options),data:Object.assign({},s.data,i.data)}):i,t},{});return Object.keys(e).map(function(t){return e[t]})}function Ght(n,e){var t=gc(n),i=L_(n),s=t.visualViewport,o=i.clientWidth,r=i.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=f_e();(c||!c&&e===\"fixed\")&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+Rj(n),y:l}}function Zht(n){var e,t=L_(n),i=Aj(n),s=(e=n.ownerDocument)==null?void 0:e.body,o=i0(t.scrollWidth,t.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=i0(t.scrollHeight,t.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-i.scrollLeft+Rj(n),l=-i.scrollTop;return Og(s||t).direction===\"rtl\"&&(a+=i0(t.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}function __e(n,e){var t=e.getRootNode&&e.getRootNode();if(n.contains(e))return!0;if(t&&Nj(t)){var i=e;do{if(i&&n.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function UH(n){return Object.assign({},n,{left:n.x,top:n.y,right:n.x+n.width,bottom:n.y+n.height})}function Yht(n,e){var t=Sw(n,!1,e===\"fixed\");return t.top=t.top+n.clientTop,t.left=t.left+n.clientLeft,t.bottom=t.top+n.clientHeight,t.right=t.left+n.clientWidth,t.width=n.clientWidth,t.height=n.clientHeight,t.x=t.left,t.y=t.top,t}function zne(n,e,t){return e===p_e?UH(Ght(n,t)):U0(e)?Yht(e,t):UH(Zht(L_(n)))}function Xht(n){var e=zx(AO(n)),t=[\"absolute\",\"fixed\"].indexOf(Og(n).position)>=0,i=t&&td(n)?hI(n):n;return U0(i)?e.filter(function(s){return U0(s)&&__e(s,i)&&Bh(s)!==\"body\"}):[]}function Qht(n,e,t,i){var s=e===\"clippingParents\"?Xht(n):[].concat(e),o=[].concat(s,[t]),r=o[0],a=o.reduce(function(l,c){var d=zne(n,c,i);return l.top=i0(d.top,l.top),l.right=OR(d.right,l.right),l.bottom=OR(d.bottom,l.bottom),l.left=i0(d.left,l.left),l},zne(n,r,i));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function Sh(n){return n.split(\"-\")[0]}function Lw(n){return n.split(\"-\")[1]}function Fj(n){return[\"top\",\"bottom\"].indexOf(n)>=0?\"x\":\"y\"}function v_e(n){var e=n.reference,t=n.element,i=n.placement,s=i?Sh(i):null,o=i?Lw(i):null,r=e.x+e.width/2-t.width/2,a=e.y+e.height/2-t.height/2,l;switch(s){case oc:l={x:r,y:e.y-t.height};break;case hu:l={x:r,y:e.y+e.height};break;case fu:l={x:e.x+e.width,y:a};break;case rc:l={x:e.x-t.width,y:a};break;default:l={x:e.x,y:e.y}}var c=s?Fj(s):null;if(c!=null){var d=c===\"y\"?\"height\":\"width\";switch(o){case xw:l[c]=l[c]-(e[d]/2-t[d]/2);break;case Zk:l[c]=l[c]+(e[d]/2-t[d]/2);break}}return l}function b_e(){return{top:0,right:0,bottom:0,left:0}}function C_e(n){return Object.assign({},b_e(),n)}function w_e(n,e){return e.reduce(function(t,i){return t[i]=n,t},{})}function Bj(n,e){e===void 0&&(e={});var t=e,i=t.placement,s=i===void 0?n.placement:i,o=t.strategy,r=o===void 0?n.strategy:o,a=t.boundary,l=a===void 0?Aht:a,c=t.rootBoundary,d=c===void 0?p_e:c,u=t.elementContext,h=u===void 0?uS:u,f=t.altBoundary,g=f===void 0?!1:f,p=t.padding,_=p===void 0?0:p,b=C_e(typeof _!=\"number\"?_:w_e(_,fI)),w=h===uS?Rht:uS,y=n.rects.popper,S=n.elements[g?w:h],x=Qht(U0(S)?S:S.contextElement||L_(n.elements.popper),l,d,r),k=Sw(n.elements.reference),D=v_e({reference:k,element:y,placement:s}),I=UH(Object.assign({},y,D)),N=h===uS?I:k,P={top:x.top-N.top+b.top,bottom:N.bottom-x.bottom+b.bottom,left:x.left-N.left+b.left,right:N.right-x.right+b.right},O=n.modifiersData.offset;if(h===uS&&O){var M=O[s];Object.keys(P).forEach(function(z){var K=[fu,hu].indexOf(z)>=0?1:-1,ae=[oc,hu].indexOf(z)>=0?\"y\":\"x\";P[z]+=M[ae]*K})}return P}var $ne={placement:\"bottom\",modifiers:[],strategy:\"absolute\"};function Une(){for(var n=arguments.length,e=new Array(n),t=0;t<n;t++)e[t]=arguments[t];return!e.some(function(i){return!(i&&typeof i.getBoundingClientRect==\"function\")})}function Jht(n){n===void 0&&(n={});var e=n,t=e.defaultModifiers,i=t===void 0?[]:t,s=e.defaultOptions,o=s===void 0?$ne:s;return function(a,l,c){c===void 0&&(c=o);var d={placement:\"bottom\",orderedModifiers:[],options:Object.assign({},$ne,o),modifiersData:{},elements:{reference:a,popper:l},attributes:{},styles:{}},u=[],h=!1,f={state:d,setOptions:function(b){var w=typeof b==\"function\"?b(d.options):b;p(),d.options=Object.assign({},o,d.options,w),d.scrollParents={reference:U0(a)?zx(a):a.contextElement?zx(a.contextElement):[],popper:zx(l)};var y=jht(qht([].concat(i,d.options.modifiers)));return d.orderedModifiers=y.filter(function(S){return S.enabled}),g(),f.update()},forceUpdate:function(){if(!h){var b=d.elements,w=b.reference,y=b.popper;if(Une(w,y)){d.rects={reference:Eht(w,hI(y),d.options.strategy===\"fixed\"),popper:Pj(y)},d.reset=!1,d.placement=d.options.placement,d.orderedModifiers.forEach(function(P){return d.modifiersData[P.name]=Object.assign({},P.data)});for(var S=0;S<d.orderedModifiers.length;S++){if(d.reset===!0){d.reset=!1,S=-1;continue}var x=d.orderedModifiers[S],k=x.fn,D=x.options,I=D===void 0?{}:D,N=x.name;typeof k==\"function\"&&(d=k({state:d,options:I,name:N,instance:f})||d)}}}},update:Kht(function(){return new Promise(function(_){f.forceUpdate(),_(d)})}),destroy:function(){p(),h=!0}};if(!Une(a,l))return f;f.setOptions(c).then(function(_){!h&&c.onFirstUpdate&&c.onFirstUpdate(_)});function g(){d.orderedModifiers.forEach(function(_){var b=_.name,w=_.options,y=w===void 0?{}:w,S=_.effect;if(typeof S==\"function\"){var x=S({state:d,name:b,instance:f,options:y}),k=function(){};u.push(x||k)}})}function p(){u.forEach(function(_){return _()}),u=[]}return f}}var eN={passive:!0};function eft(n){var e=n.state,t=n.instance,i=n.options,s=i.scroll,o=s===void 0?!0:s,r=i.resize,a=r===void 0?!0:r,l=gc(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach(function(d){d.addEventListener(\"scroll\",t.update,eN)}),a&&l.addEventListener(\"resize\",t.update,eN),function(){o&&c.forEach(function(d){d.removeEventListener(\"scroll\",t.update,eN)}),a&&l.removeEventListener(\"resize\",t.update,eN)}}const y_e={name:\"eventListeners\",enabled:!0,phase:\"write\",fn:function(){},effect:eft,data:{}};function tft(n){var e=n.state,t=n.name;e.modifiersData[t]=v_e({reference:e.rects.reference,element:e.rects.popper,placement:e.placement})}const ift={name:\"popperOffsets\",enabled:!0,phase:\"read\",fn:tft,data:{}};var nft={top:\"auto\",right:\"auto\",bottom:\"auto\",left:\"auto\"};function sft(n,e){var t=n.x,i=n.y,s=e.devicePixelRatio||1;return{x:yw(t*s)/s||0,y:yw(i*s)/s||0}}function jne(n){var e,t=n.popper,i=n.popperRect,s=n.placement,o=n.variation,r=n.offsets,a=n.position,l=n.gpuAcceleration,c=n.adaptive,d=n.roundOffsets,u=n.isFixed,h=r.x,f=h===void 0?0:h,g=r.y,p=g===void 0?0:g,_=typeof d==\"function\"?d({x:f,y:p}):{x:f,y:p};f=_.x,p=_.y;var b=r.hasOwnProperty(\"x\"),w=r.hasOwnProperty(\"y\"),y=rc,S=oc,x=window;if(c){var k=hI(t),D=\"clientHeight\",I=\"clientWidth\";if(k===gc(t)&&(k=L_(t),Og(k).position!==\"static\"&&a===\"absolute\"&&(D=\"scrollHeight\",I=\"scrollWidth\")),k=k,s===oc||(s===rc||s===fu)&&o===Zk){S=hu;var N=u&&k===x&&x.visualViewport?x.visualViewport.height:k[D];p-=N-i.height,p*=l?1:-1}if(s===rc||(s===oc||s===hu)&&o===Zk){y=fu;var P=u&&k===x&&x.visualViewport?x.visualViewport.width:k[I];f-=P-i.width,f*=l?1:-1}}var O=Object.assign({position:a},c&&nft),M=d===!0?sft({x:f,y:p},gc(t)):{x:f,y:p};if(f=M.x,p=M.y,l){var z;return Object.assign({},O,(z={},z[S]=w?\"0\":\"\",z[y]=b?\"0\":\"\",z.transform=(x.devicePixelRatio||1)<=1?\"translate(\"+f+\"px, \"+p+\"px)\":\"translate3d(\"+f+\"px, \"+p+\"px, 0)\",z))}return Object.assign({},O,(e={},e[S]=w?p+\"px\":\"\",e[y]=b?f+\"px\":\"\",e.transform=\"\",e))}function oft(n){var e=n.state,t=n.options,i=t.gpuAcceleration,s=i===void 0?!0:i,o=t.adaptive,r=o===void 0?!0:o,a=t.roundOffsets,l=a===void 0?!0:a,c={placement:Sh(e.placement),variation:Lw(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:e.options.strategy===\"fixed\"};e.modifiersData.popperOffsets!=null&&(e.styles.popper=Object.assign({},e.styles.popper,jne(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),e.modifiersData.arrow!=null&&(e.styles.arrow=Object.assign({},e.styles.arrow,jne(Object.assign({},c,{offsets:e.modifiersData.arrow,position:\"absolute\",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{\"data-popper-placement\":e.placement})}const S_e={name:\"computeStyles\",enabled:!0,phase:\"beforeWrite\",fn:oft,data:{}};function rft(n){var e=n.state;Object.keys(e.elements).forEach(function(t){var i=e.styles[t]||{},s=e.attributes[t]||{},o=e.elements[t];!td(o)||!Bh(o)||(Object.assign(o.style,i),Object.keys(s).forEach(function(r){var a=s[r];a===!1?o.removeAttribute(r):o.setAttribute(r,a===!0?\"\":a)}))})}function aft(n){var e=n.state,t={popper:{position:e.options.strategy,left:\"0\",top:\"0\",margin:\"0\"},arrow:{position:\"absolute\"},reference:{}};return Object.assign(e.elements.popper.style,t.popper),e.styles=t,e.elements.arrow&&Object.assign(e.elements.arrow.style,t.arrow),function(){Object.keys(e.elements).forEach(function(i){var s=e.elements[i],o=e.attributes[i]||{},r=Object.keys(e.styles.hasOwnProperty(i)?e.styles[i]:t[i]),a=r.reduce(function(l,c){return l[c]=\"\",l},{});!td(s)||!Bh(s)||(Object.assign(s.style,a),Object.keys(o).forEach(function(l){s.removeAttribute(l)}))})}}const lft={name:\"applyStyles\",enabled:!0,phase:\"write\",fn:rft,effect:aft,requires:[\"computeStyles\"]};var cft=[y_e,ift,S_e,lft],dft={left:\"right\",right:\"left\",bottom:\"top\",top:\"bottom\"};function XN(n){return n.replace(/left|right|bottom|top/g,function(e){return dft[e]})}var uft={start:\"end\",end:\"start\"};function Kne(n){return n.replace(/start|end/g,function(e){return uft[e]})}function hft(n,e){e===void 0&&(e={});var t=e,i=t.placement,s=t.boundary,o=t.rootBoundary,r=t.padding,a=t.flipVariations,l=t.allowedAutoPlacements,c=l===void 0?m_e:l,d=Lw(i),u=d?a?Vne:Vne.filter(function(g){return Lw(g)===d}):fI,h=u.filter(function(g){return c.indexOf(g)>=0});h.length===0&&(h=u);var f=h.reduce(function(g,p){return g[p]=Bj(n,{placement:p,boundary:s,rootBoundary:o,padding:r})[Sh(p)],g},{});return Object.keys(f).sort(function(g,p){return f[g]-f[p]})}function fft(n){if(Sh(n)===Oj)return[];var e=XN(n);return[Kne(n),e,Kne(e)]}function gft(n){var e=n.state,t=n.options,i=n.name;if(!e.modifiersData[i]._skip){for(var s=t.mainAxis,o=s===void 0?!0:s,r=t.altAxis,a=r===void 0?!0:r,l=t.fallbackPlacements,c=t.padding,d=t.boundary,u=t.rootBoundary,h=t.altBoundary,f=t.flipVariations,g=f===void 0?!0:f,p=t.allowedAutoPlacements,_=e.options.placement,b=Sh(_),w=b===_,y=l||(w||!g?[XN(_)]:fft(_)),S=[_].concat(y).reduce(function(Zt,Oi){return Zt.concat(Sh(Oi)===Oj?hft(e,{placement:Oi,boundary:d,rootBoundary:u,padding:c,flipVariations:g,allowedAutoPlacements:p}):Oi)},[]),x=e.rects.reference,k=e.rects.popper,D=new Map,I=!0,N=S[0],P=0;P<S.length;P++){var O=S[P],M=Sh(O),z=Lw(O)===xw,K=[oc,hu].indexOf(M)>=0,ae=K?\"width\":\"height\",se=Bj(e,{placement:O,boundary:d,rootBoundary:u,altBoundary:h,padding:c}),he=K?z?fu:rc:z?hu:oc;x[ae]>k[ae]&&(he=XN(he));var me=XN(he),De=[];if(o&&De.push(se[M]<=0),a&&De.push(se[he]<=0,se[me]<=0),De.every(function(Zt){return Zt})){N=O,I=!1;break}D.set(O,De)}if(I)for(var lt=g?3:1,We=function(Oi){var ni=S.find(function(Se){var Qe=D.get(Se);if(Qe)return Qe.slice(0,Oi).every(function(nt){return nt})});if(ni)return N=ni,\"break\"},Ve=lt;Ve>0;Ve--){var Me=We(Ve);if(Me===\"break\")break}e.placement!==N&&(e.modifiersData[i]._skip=!0,e.placement=N,e.reset=!0)}}const pft={name:\"flip\",enabled:!0,phase:\"main\",fn:gft,requiresIfExists:[\"offset\"],data:{_skip:!1}};function mft(n,e,t){var i=Sh(n),s=[rc,oc].indexOf(i)>=0?-1:1,o=typeof t==\"function\"?t(Object.assign({},e,{placement:n})):t,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[rc,fu].indexOf(i)>=0?{x:a,y:r}:{x:r,y:a}}function _ft(n){var e=n.state,t=n.options,i=n.name,s=t.offset,o=s===void 0?[0,0]:s,r=m_e.reduce(function(d,u){return d[u]=mft(u,e.rects,o),d},{}),a=r[e.placement],l=a.x,c=a.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[i]=r}const vft={name:\"offset\",enabled:!0,phase:\"main\",requires:[\"popperOffsets\"],fn:_ft};function bft(n){return n===\"x\"?\"y\":\"x\"}function $x(n,e,t){return i0(n,OR(e,t))}function Cft(n,e,t){var i=$x(n,e,t);return i>t?t:i}function wft(n){var e=n.state,t=n.options,i=n.name,s=t.mainAxis,o=s===void 0?!0:s,r=t.altAxis,a=r===void 0?!1:r,l=t.boundary,c=t.rootBoundary,d=t.altBoundary,u=t.padding,h=t.tether,f=h===void 0?!0:h,g=t.tetherOffset,p=g===void 0?0:g,_=Bj(e,{boundary:l,rootBoundary:c,padding:u,altBoundary:d}),b=Sh(e.placement),w=Lw(e.placement),y=!w,S=Fj(b),x=bft(S),k=e.modifiersData.popperOffsets,D=e.rects.reference,I=e.rects.popper,N=typeof p==\"function\"?p(Object.assign({},e.rects,{placement:e.placement})):p,P=typeof N==\"number\"?{mainAxis:N,altAxis:N}:Object.assign({mainAxis:0,altAxis:0},N),O=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,M={x:0,y:0};if(k){if(o){var z,K=S===\"y\"?oc:rc,ae=S===\"y\"?hu:fu,se=S===\"y\"?\"height\":\"width\",he=k[S],me=he+_[K],De=he-_[ae],lt=f?-I[se]/2:0,We=w===xw?D[se]:I[se],Ve=w===xw?-I[se]:-D[se],Me=e.elements.arrow,Zt=f&&Me?Pj(Me):{width:0,height:0},Oi=e.modifiersData[\"arrow#persistent\"]?e.modifiersData[\"arrow#persistent\"].padding:b_e(),ni=Oi[K],Se=Oi[ae],Qe=$x(0,D[se],Zt[se]),nt=y?D[se]/2-lt-Qe-ni-P.mainAxis:We-Qe-ni-P.mainAxis,mt=y?-D[se]/2+lt+Qe+Se+P.mainAxis:Ve+Qe+Se+P.mainAxis,Je=e.elements.arrow&&hI(e.elements.arrow),Ii=Je?S===\"y\"?Je.clientTop||0:Je.clientLeft||0:0,J=(z=O==null?void 0:O[S])!=null?z:0,ie=he+nt-J-Ii,ye=he+mt-J,ze=$x(f?OR(me,ie):me,he,f?i0(De,ye):De);k[S]=ze,M[S]=ze-he}if(a){var Oe,et=S===\"x\"?oc:rc,vt=S===\"x\"?hu:fu,re=k[x],Q=x===\"y\"?\"height\":\"width\",Z=re+_[et],B=re-_[vt],H=[oc,rc].indexOf(b)!==-1,Y=(Oe=O==null?void 0:O[x])!=null?Oe:0,G=H?Z:re-D[Q]-I[Q]-Y+P.altAxis,ge=H?re+D[Q]+I[Q]-Y-P.altAxis:B,Ie=f&&H?Cft(G,re,ge):$x(f?G:Z,re,f?ge:B);k[x]=Ie,M[x]=Ie-re}e.modifiersData[i]=M}}const yft={name:\"preventOverflow\",enabled:!0,phase:\"main\",fn:wft,requiresIfExists:[\"offset\"]};var Sft=function(e,t){return e=typeof e==\"function\"?e(Object.assign({},t.rects,{placement:t.placement})):e,C_e(typeof e!=\"number\"?e:w_e(e,fI))};function xft(n){var e,t=n.state,i=n.name,s=n.options,o=t.elements.arrow,r=t.modifiersData.popperOffsets,a=Sh(t.placement),l=Fj(a),c=[rc,fu].indexOf(a)>=0,d=c?\"height\":\"width\";if(!(!o||!r)){var u=Sft(s.padding,t),h=Pj(o),f=l===\"y\"?oc:rc,g=l===\"y\"?hu:fu,p=t.rects.reference[d]+t.rects.reference[l]-r[l]-t.rects.popper[d],_=r[l]-t.rects.reference[l],b=hI(o),w=b?l===\"y\"?b.clientHeight||0:b.clientWidth||0:0,y=p/2-_/2,S=u[f],x=w-h[d]-u[g],k=w/2-h[d]/2+y,D=$x(S,k,x),I=l;t.modifiersData[i]=(e={},e[I]=D,e.centerOffset=D-k,e)}}function Lft(n){var e=n.state,t=n.options,i=t.element,s=i===void 0?\"[data-popper-arrow]\":i;s!=null&&(typeof s==\"string\"&&(s=e.elements.popper.querySelector(s),!s)||__e(e.elements.popper,s)&&(e.elements.arrow=s))}const kft={name:\"arrow\",enabled:!0,phase:\"main\",fn:xft,effect:Lft,requires:[\"popperOffsets\"],requiresIfExists:[\"preventOverflow\"]},Dft=Jht({defaultModifiers:[...cft,vft,pft,yft,S_e,y_e,kft]});function Ift({locked:n=!1,overflowPadding:e=8,offsetDistance:t=8,offsetSkid:i=0,gpuAcceleration:s=!0,adaptive:o=!0,scroll:r=!0,resize:a=!0,arrow:l=!1,placement:c,strategy:d},u){const h=Ue(null),f=Ue(null),g=Ue(null);return cn(()=>{Qo(p=>{if(!f.value||!h.value)return;const _=VZ(f),b=VZ(h);if(!(_ instanceof HTMLElement)||!b)return;const w={modifiers:[{name:\"flip\",enabled:!n},{name:\"preventOverflow\",options:{padding:e}},{name:\"offset\",options:{offset:[i,t]}},{name:\"computeStyles\",options:{adaptive:o,gpuAcceleration:s}},{name:\"eventListeners\",options:{scroll:r,resize:a}},{name:\"arrow\",enabled:l}]};c&&(w.placement=c),d&&(w.strategy=d),g.value=Dft(b,_,w),p(g.value.destroy)})}),[h,f,g]}const X3=ha(Pi.ui.strategy,Pi.ui.tooltip,Olt),Eft=kt({components:{UKbd:h_e},inheritAttrs:!1,props:{text:{type:String,default:null},prevent:{type:Boolean,default:!1},shortcuts:{type:Array,default:()=>[]},openDelay:{type:Number,default:()=>X3.default.openDelay},closeDelay:{type:Number,default:()=>X3.default.closeDelay},popper:{type:Object,default:()=>({})},class:{type:[String,Object,Array],default:()=>\"\"},ui:{type:Object,default:()=>({})}},setup(n){const{ui:e,attrs:t}=Ua(\"tooltip\",Ps(n,\"ui\"),X3,Ps(n,\"class\")),i=ue(()=>nD({},n.popper,e.value.popper)),[s,o]=Ift(i.value),r=Ue(!1);let a=null,l=null;function c(){l&&(clearTimeout(l),l=null),!r.value&&(a=a||setTimeout(()=>{r.value=!0,a=null},n.openDelay))}function d(){a&&(clearTimeout(a),a=null),r.value&&(l=l||setTimeout(()=>{r.value=!1,l=null},n.closeDelay))}return{ui:e,attrs:t,popper:i,trigger:s,container:o,open:r,onMouseEnter:c,onMouseLeave:d}}});function Tft(n,e,t,i,s,o){const r=h_e;return fe(),Re(\"div\",an({ref:\"trigger\",class:n.ui.wrapper},n.attrs,{onMouseenter:e[0]||(e[0]=(...a)=>n.onMouseEnter&&n.onMouseEnter(...a)),onMouseleave:e[1]||(e[1]=(...a)=>n.onMouseLeave&&n.onMouseLeave(...a))}),[en(n.$slots,\"default\",{open:n.open},()=>[e[2]||(e[2]=at(\" Hover \"))]),n.open&&!n.prevent?(fe(),Re(\"div\",{key:0,ref:\"container\",class:st([n.ui.container,n.ui.width])},[te(o0,an({appear:\"\"},n.ui.transition),{default:Be(()=>{var a;return[q(\"div\",null,[n.popper.arrow?(fe(),Re(\"div\",{key:0,\"data-popper-arrow\":\"\",class:st(Object.values(n.ui.arrow))},null,2)):Bt(\"\",!0),q(\"div\",{class:st([n.ui.base,n.ui.background,n.ui.color,n.ui.rounded,n.ui.shadow,n.ui.ring])},[en(n.$slots,\"text\",{},()=>[at(Ni(n.text),1)]),(a=n.shortcuts)!=null&&a.length?(fe(),Re(\"span\",{key:0,class:st(n.ui.shortcuts)},[q(\"span\",{class:st(n.ui.middot)},\"·\",2),(fe(!0),Re(Bi,null,Ma(n.shortcuts,l=>(fe(),jt(r,{key:l,size:\"xs\"},{default:Be(()=>[at(Ni(l),1)]),_:2},1024))),128))],2)):Bt(\"\",!0)],2)])]}),_:3},16)],2)):Bt(\"\",!0)],16)}const RO=Js(Eft,[[\"render\",Tft]]),Nft=ha(Pi.ui.strategy,Pi.ui.modal,Mlt),Aft=kt({components:{HDialog:Xme,HDialogPanel:Qme,TransitionRoot:Tj,TransitionChild:Ej},inheritAttrs:!1,props:{modelValue:{type:Boolean,default:!1},appear:{type:Boolean,default:!1},overlay:{type:Boolean,default:!0},transition:{type:Boolean,default:!0},preventClose:{type:Boolean,default:!1},fullscreen:{type:Boolean,default:!1},class:{type:[String,Object,Array],default:()=>\"\"},ui:{type:Object,default:()=>({})}},emits:[\"update:modelValue\",\"close\",\"close-prevented\"],setup(n,{emit:e}){const{ui:t,attrs:i}=Ua(\"modal\",Ps(n,\"ui\"),Nft,Ps(n,\"class\")),s=ue({get(){return n.modelValue},set(a){e(\"update:modelValue\",a)}}),o=ue(()=>n.transition?{...t.value.transition}:{});function r(a){if(n.preventClose){e(\"close-prevented\");return}s.value=a,e(\"close\")}return bj(()=>j0()),{ui:t,attrs:i,isOpen:s,transitionClass:o,close:r}}});function Rft(n,e,t,i,s,o){const r=jc(\"TransitionChild\"),a=jc(\"HDialogPanel\"),l=jc(\"HDialog\"),c=jc(\"TransitionRoot\");return fe(),jt(c,{appear:n.appear,show:n.isOpen,as:\"template\"},{default:Be(()=>[te(l,an({class:n.ui.wrapper},n.attrs,{onClose:n.close}),{default:Be(()=>[n.overlay?(fe(),jt(r,an({key:0,as:\"template\",appear:n.appear},n.ui.overlay.transition),{default:Be(()=>[q(\"div\",{class:st([n.ui.overlay.base,n.ui.overlay.background])},null,2)]),_:1},16,[\"appear\"])):Bt(\"\",!0),q(\"div\",{class:st(n.ui.inner)},[q(\"div\",{class:st([n.ui.container,!n.fullscreen&&n.ui.padding])},[te(r,an({as:\"template\",appear:n.appear},n.transitionClass),{default:Be(()=>[te(a,{class:st([n.ui.base,n.ui.background,n.ui.ring,n.ui.shadow,n.fullscreen?n.ui.fullscreen:[n.ui.width,n.ui.height,n.ui.rounded,n.ui.margin]])},{default:Be(()=>[en(n.$slots,\"default\")]),_:3},8,[\"class\"])]),_:3},16,[\"appear\"])],2)],2)]),_:3},16,[\"class\",\"onClose\"])]),_:3},8,[\"appear\",\"show\"])}const x_e=Js(Aft,[[\"render\",Rft]]),Mft={class:\"p-6\"},Pft={class:\"flex items-start justify-between\"},Oft={class:\"flex items-center gap-3\"},Fft={class:\"text-xl font-semibold text-gray-900 dark:text-white leading-6\"},Bft={key:0,class:\"mt-4\"},Wft={class:\"text-sm text-gray-500 dark:text-gray-400\"},Wj=kt({__name:\"ConfirmModal\",props:eD({title:{},description:{},type:{},cancelBtnContent:{}},{modelValue:{type:Boolean},modelModifiers:{}}),emits:[\"update:modelValue\"],setup(n){const e=c_(n,\"modelValue\"),t=Ue(),i=n,s=ue(()=>{switch(i.type){case\"info\":return{text:\"text-blue-600 dark:text-blue-400\",bg:\"bg-blue-50 dark:bg-blue-900/20\"};case\"warning\":return{text:\"text-orange-600 dark:text-orange-400\",bg:\"bg-orange-50 dark:bg-orange-900/20\"};case\"success\":return{text:\"text-green-600 dark:text-green-400\",bg:\"bg-green-50 dark:bg-green-900/20\"};case\"danger\":return{text:\"text-red-600 dark:text-red-400\",bg:\"bg-red-50 dark:bg-red-900/20\"};default:return{text:\"text-gray-600 dark:text-gray-400\",bg:\"bg-gray-50 dark:bg-gray-900/20\"}}}),o=ue(()=>{switch(i.type){case\"info\":return dme;case\"warning\":return cne;case\"success\":return dlt;case\"danger\":return flt;default:return cne}});return Dn(e,r=>{r&&setTimeout(()=>{var l;const a=(l=t.value)==null?void 0:l.querySelector(\"button:last-child\");a&&a.focus()},100)}),(r,a)=>{const l=RO,c=jh,d=x_e;return fe(),jt(d,{modelValue:e.value,\"onUpdate:modelValue\":a[2]||(a[2]=u=>e.value=u)},{default:Be(()=>[q(\"div\",Mft,[q(\"div\",Pft,[q(\"div\",Oft,[q(\"div\",{class:st([j(s).bg,\"flex-shrink-0 flex items-center justify-center h-10 w-10 rounded-full\"])},[(fe(),jt(Em(j(o)),{class:st([j(s).text,\"h-6 w-6\"]),\"aria-hidden\":\"true\"},null,8,[\"class\"]))],2),q(\"h3\",Fft,Ni(r.title),1)]),te(l,{text:\"Close\",popper:{arrow:!0,offsetDistance:10}},{default:Be(()=>[q(\"button\",{class:\"p-2 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-full text-gray-400 hover:text-gray-700 dark:hover:text-gray-200 focus:outline-none transition-all duration-300\",onClick:a[0]||(a[0]=u=>e.value=!1)},[te(j(LO),{class:\"h-6 w-6\",\"aria-hidden\":\"true\"})])]),_:1})]),r.description?(fe(),Re(\"div\",Bft,[q(\"p\",Wft,Ni(r.description),1)])):Bt(\"\",!0),en(r.$slots,\"fields\"),q(\"div\",{ref_key:\"actionsContainer\",ref:t,class:\"mt-6 flex flex-col-reverse sm:flex-row justify-end gap-2 sm:gap-3\"},[te(c,{variant:\"ghost\",color:\"gray\",block:\"\",class:\"sm:w-auto\",label:r.cancelBtnContent?r.cancelBtnContent:r.type===\"danger\"?\"Cancel\":\"Close\",onClick:a[1]||(a[1]=u=>e.value=!1)},null,8,[\"label\"]),en(r.$slots,\"default\")],512)])]),_:3},8,[\"modelValue\"])}}}),Hft={class:\"space-y-6 sm:px-6 lg:px-0 lg:col-span-9 w-full\"},Vft={class:\"flex justify-end items-center\"},zft={class:\"flex justify-end items-center\"},$ft=kt({__name:\"GeneralSettings\",setup(n){const e=Ue(!1),t=Ue(!1);function i(){localStorage.clear(),location.reload(),e.value=!1}async function s(){const{data:o,error:r}=await Ot(\"/candles/clear-cache\",{},!0);if(r.value){Pt(r.value);return}const a=o.value;a.status===\"success\"?(t.value=!1,Lt(\"success\",a.message)):Lt(\"error\",\"Failed to clear the candle database cache\")}return(o,r)=>{const a=sy,l=jh,c=Wj,d=oy;return fe(),Re(\"div\",Hft,[te(d,null,{default:Be(()=>[te(a,null,{default:Be(()=>r[4]||(r[4]=[at(\" Browser Cache \")])),_:1}),r[6]||(r[6]=q(\"p\",null,[at(\" Jesse uses browser cache to store some data to speed up the app. However, sometimes this cache might get corrupted or outdated for example after an update. \"),q(\"br\"),q(\"br\"),at(\"In such cases, you can clear the cache by clicking the button below. \")],-1)),r[7]||(r[7]=q(\"br\",null,null,-1)),q(\"div\",Vft,[te(l,{color:\"rose\",size:\"xl\",variant:\"outline\",onClick:r[0]||(r[0]=u=>e.value=!0)},{default:Be(()=>r[5]||(r[5]=[at(\" Clear Browser Cache \")])),_:1})]),te(c,{modelValue:j(e),\"onUpdate:modelValue\":r[1]||(r[1]=u=>Cn(e)?e.value=u:null),title:\"Clear Browser Cache\",description:\"Are you sure you want to clear the cache? This will remove all the data stored in the browser cache and reload the app.\",type:\"info\"},{default:Be(()=>[te(l,{variant:\"solid\",color:\"rose\",block:\"\",class:\"sm:w-auto\",label:\"Clear Browser Cache\",size:\"lg\",onClick:i})]),_:1},8,[\"modelValue\"])]),_:1}),te(d,null,{default:Be(()=>[te(a,null,{default:Be(()=>r[8]||(r[8]=[at(\" Database Cache \")])),_:1}),r[10]||(r[10]=q(\"p\",null,[at(\" When you execute a backtest, Jesse caches those candles so that when you change your strategy and rerun your backtest on the same dataset, your future reruns would be significantly faster. \"),q(\"br\"),q(\"br\"),at(\" However, sometimes there could be some issues that might require you to clear this cache in order to fix it. \")],-1)),r[11]||(r[11]=q(\"br\",null,null,-1)),q(\"div\",zft,[te(l,{color:\"rose\",size:\"xl\",variant:\"outline\",onClick:r[2]||(r[2]=u=>t.value=!0)},{default:Be(()=>r[9]||(r[9]=[at(\" Clear Database Cache \")])),_:1})]),te(c,{modelValue:j(t),\"onUpdate:modelValue\":r[3]||(r[3]=u=>Cn(t)?t.value=u:null),title:\"Clear Database Cache\",description:\"Are you sure you want to clear the candle database cache?\",type:\"info\"},{default:Be(()=>[te(l,{variant:\"solid\",color:\"rose\",block:\"\",class:\"sm:w-auto\",size:\"lg\",label:\"Clear Database Cache\",onClick:s})]),_:1},8,[\"modelValue\"])]),_:1})])}}}),Uft={class:\"space-y-6 sm:px-6 lg:px-0 lg:col-span-9 w-full\"},jft={key:1},Kft=kt({__name:\"EditorSettings\",setup(n){const e=pi(),t=ue(()=>e.settings);return(i,s)=>{const o=sy,r=c_e,a=uI,l=d_e,c=x_,d=oy;return fe(),Re(\"div\",Uft,[te(d,null,{default:Be(()=>[te(o,null,{default:Be(()=>s[12]||(s[12]=[at(\" Strategy Editor \")])),_:1}),s[13]||(s[13]=q(\"p\",null,\" Jesse uses a limited version of the VS Code Editor. You can change some of the settings to your liking: \",-1)),s[14]||(s[14]=q(\"br\",null,null,-1)),te(r,{modelValue:j(t).editor.minimap,\"onUpdate:modelValue\":s[0]||(s[0]=u=>j(t).editor.minimap=u),title:\"Editor Minimap\",description:\"Shows file overview on right edge. Click to navigate.\"},null,8,[\"modelValue\"]),s[15]||(s[15]=q(\"br\",null,null,-1)),te(r,{modelValue:j(t).editor.autoCompletion,\"onUpdate:modelValue\":s[1]||(s[1]=u=>j(t).editor.autoCompletion=u),title:\"Code Completion\",description:\"Intelligent suggestions as you type. Tab/Enter to accept, Ctrl+Space to trigger.\"},null,8,[\"modelValue\"]),s[16]||(s[16]=q(\"br\",null,null,-1)),j(e).systemInfo.operating_system!==\"windows\"?(fe(),jt(r,{key:0,modelValue:j(t).editor.documentFormatting,\"onUpdate:modelValue\":s[2]||(s[2]=u=>j(t).editor.documentFormatting=u),title:\"Formatting Actions\",description:\"Language server formatting. Shift+Alt+F for document, Ctrl+K Ctrl+F for selection.\"},null,8,[\"modelValue\"])):Bt(\"\",!0),j(e).systemInfo.operating_system!==\"windows\"?(fe(),Re(\"br\",jft)):Bt(\"\",!0),te(r,{modelValue:j(t).editor.documentHighlight,\"onUpdate:modelValue\":s[3]||(s[3]=u=>j(t).editor.documentHighlight=u),title:\"Symbol Highlighting\",description:\"Highlights all occurrences of symbol under cursor.\"},null,8,[\"modelValue\"]),s[17]||(s[17]=q(\"br\",null,null,-1)),te(r,{modelValue:j(t).editor.documentHover,\"onUpdate:modelValue\":s[4]||(s[4]=u=>j(t).editor.documentHover=u),title:\"Hover Details\",description:\"Shows type hints, docs, and parameters on hover.\"},null,8,[\"modelValue\"]),s[18]||(s[18]=q(\"br\",null,null,-1)),te(r,{modelValue:j(t).editor.signatureHelp,\"onUpdate:modelValue\":s[5]||(s[5]=u=>j(t).editor.signatureHelp=u),title:\"Signature Help\",description:\"Shows parameter info and types while typing function calls.\"},null,8,[\"modelValue\"]),s[19]||(s[19]=q(\"br\",null,null,-1)),te(a,{modelValue:j(t).editor.fontSize,\"onUpdate:modelValue\":s[6]||(s[6]=u=>j(t).editor.fontSize=u),class:\"mb-4\",title:\"Font Size\"},null,8,[\"modelValue\"]),te(a,{modelValue:j(t).editor.lineHeight,\"onUpdate:modelValue\":s[7]||(s[7]=u=>j(t).editor.lineHeight=u),class:\"mb-4\",title:\"Line Height\"},null,8,[\"modelValue\"]),te(c,{label:\"Cursor Style\",help:\"Controls the cursor style.\"},{default:Be(()=>[te(l,{modelValue:j(t).editor.cursorStyle,\"onUpdate:modelValue\":s[8]||(s[8]=u=>j(t).editor.cursorStyle=u),options:[\"line\",\"block\",\"underline\",\"line-thin\",\"block-outline\",\"underline-thin\"]},null,8,[\"modelValue\"])]),_:1}),s[20]||(s[20]=q(\"br\",null,null,-1)),te(a,{modelValue:j(t).editor.cursorWidth,\"onUpdate:modelValue\":s[9]||(s[9]=u=>j(t).editor.cursorWidth=u),class:\"mb-4\",title:\"Cursor Width\"},null,8,[\"modelValue\"]),te(c,{label:\"Cursor Blinking\",help:\"Controls the cursor blinking animation.\"},{default:Be(()=>[te(l,{modelValue:j(t).editor.cursorBlinking,\"onUpdate:modelValue\":s[10]||(s[10]=u=>j(t).editor.cursorBlinking=u),options:[\"blink\",\"smooth\",\"phase\",\"expand\",\"solid\"]},null,8,[\"modelValue\"])]),_:1}),s[21]||(s[21]=q(\"br\",null,null,-1)),te(c,{label:\"Render Line Highlight\",help:\"Controls the rendering of the current line highlight.\"},{default:Be(()=>[te(l,{modelValue:j(t).editor.renderLineHighlight,\"onUpdate:modelValue\":s[11]||(s[11]=u=>j(t).editor.renderLineHighlight=u),options:[\"none\",\"gutter\",\"line\",\"all\"]},null,8,[\"modelValue\"])]),_:1})]),_:1})])}}}),qft={class:\"lg:grid lg:grid-cols-12 lg:gap-x-5 select-none\"},Gft={class:\"py-6 px-2 sm:px-6 lg:py-0 lg:px-0 lg:col-span-3\"},Zft={class:\"space-y-1\"},Yft=[\"onClick\"],Xft={class:\"truncate\"},Qft=kt({__name:\"Settings\",setup(n){const e=pi(),t=ZR(),i=Ue([\"Optimization\",\"Backtest\",\"Live\"].includes(t.name)?t.name:\"Backtest\"),s=ue(()=>e.settings),o=ue(()=>e.hasLivePluginInstalled),r=ue(()=>e.planInfo),a=ue(()=>e.exchangeInfo),l=ue(()=>t.name===\"Live\"),c=ue(()=>{const f=[{name:\"General\",icon:dme},{name:\"Editor\",icon:ame},{name:\"Backtest\",icon:rme},{name:\"Optimization\",icon:lme},{name:\"Monte Carlo\",icon:ome}];return o.value&&f.push({name:\"Live\",icon:cme}),f});String(t.name).includes(\"backtest\")?i.value=\"Backtest\":String(t.name).includes(\"optimization\")?i.value=\"Optimization\":String(t.name).includes(\"monte-carlo\")?i.value=\"Monte Carlo\":String(t.name).includes(\"live\")?i.value=\"Live\":String(t.name).includes(\"strategies\")?i.value=\"Editor\":i.value=\"General\",d(),u();function d(){const f=Object.keys(s.value.backtest.exchanges).sort(),g=Object.keys(s.value.live.exchanges).sort(),p={},_={};for(const b of f)p[b]=s.value.backtest.exchanges[b];s.value.backtest.exchanges=p;for(const b of g)_[b]=s.value.live.exchanges[b];s.value.live.exchanges=_}function u(){for(const f of Object.keys(s.value.live.exchanges))h(f)||delete s.value.live.exchanges[f]}function h(f){return!l.value||r.value.plan===\"premium\"?!0:a.value[f].required_live_plan===\"free\"}return(f,g)=>(fe(),Re(\"div\",qft,[q(\"aside\",Gft,[q(\"nav\",Zft,[(fe(!0),Re(Bi,null,Ma(j(c),p=>(fe(),Re(\"button\",{key:p.name,class:st([\"block w-full\",[j(i)===p.name?\"bg-gray-100 dark:bg-gray-800 text-indigo-700 dark:text-indigo-400 hover:text-indigo-700\":\"hover:bg-gray-50 dark:hover:bg-gray-700 text-gray-900 dark:text-gray-300\",\"group rounded-md px-3 py-2 flex items-center text-sm font-medium\"]]),onClick:_=>i.value=p.name},[(fe(),jt(Em(p.icon),{class:st([j(i)===p.name?\"text-indigo-500 dark:text-indigo-400 group-hover:text-indigo-500\":\"text-gray-400 group-hover:text-gray-500 dark:group-hover:text-gray-400\",\"flex-shrink-0 -ml-1 mr-3 h-6 w-6\"]),\"aria-hidden\":\"true\"},null,8,[\"class\"])),q(\"span\",Xft,Ni(p.name),1)],10,Yft))),128))])]),j(i)===\"General\"?(fe(),jt($ft,{key:0})):Bt(\"\",!0),j(i)===\"Editor\"?(fe(),jt(Kft,{key:1})):Bt(\"\",!0),j(i)===\"Backtest\"?(fe(),jt(But,{key:2})):Bt(\"\",!0),j(i)===\"Live\"?(fe(),jt(vht,{key:3})):Bt(\"\",!0),j(i)===\"Optimization\"?(fe(),jt(jut,{key:4})):Bt(\"\",!0),j(i)===\"Monte Carlo\"?(fe(),jt(Qut,{key:5})):Bt(\"\",!0)]))}}),Jft=ha(Pi.ui.strategy,Pi.ui.card,Rlt),egt=kt({inheritAttrs:!1,props:{as:{type:String,default:\"div\"},class:{type:[String,Object,Array],default:()=>\"\"},ui:{type:Object,default:()=>({})}},setup(n){const{ui:e,attrs:t}=Ua(\"card\",Ps(n,\"ui\"),Jft),i=ue(()=>ac(Vn(e.value.base,e.value.rounded,e.value.divide,e.value.ring,e.value.shadow,e.value.background),n.class));return{ui:e,attrs:t,cardClass:i}}});function tgt(n,e,t,i,s,o){return fe(),jt(Em(n.$attrs.onSubmit?\"form\":n.as),an({class:n.cardClass},n.attrs),{default:Be(()=>[n.$slots.header?(fe(),Re(\"div\",{key:0,class:st([n.ui.header.base,n.ui.header.padding,n.ui.header.background])},[en(n.$slots,\"header\")],2)):Bt(\"\",!0),n.$slots.default?(fe(),Re(\"div\",{key:1,class:st([n.ui.body.base,n.ui.body.padding,n.ui.body.background])},[en(n.$slots,\"default\")],2)):Bt(\"\",!0),n.$slots.footer?(fe(),Re(\"div\",{key:2,class:st([n.ui.footer.base,n.ui.footer.padding,n.ui.footer.background])},[en(n.$slots,\"footer\")],2)):Bt(\"\",!0)]),_:3},16,[\"class\"])}const L_e=Js(egt,[[\"render\",tgt]]),igt=ha(Pi.ui.strategy,Pi.ui.slideover,Plt),ngt=kt({components:{HDialog:Xme,HDialogPanel:Qme,TransitionRoot:Tj,TransitionChild:Ej},inheritAttrs:!1,props:{modelValue:{type:Boolean,default:!1},appear:{type:Boolean,default:!1},side:{type:String,default:\"right\",validator:n=>[\"left\",\"right\"].includes(n)},overlay:{type:Boolean,default:!0},transition:{type:Boolean,default:!0},preventClose:{type:Boolean,default:!1},class:{type:[String,Object,Array],default:()=>\"\"},ui:{type:Object,default:()=>({})}},emits:[\"update:modelValue\",\"close\",\"close-prevented\"],setup(n,{emit:e}){const{ui:t,attrs:i}=Ua(\"slideover\",Ps(n,\"ui\"),igt,Ps(n,\"class\")),s=ue({get(){return n.modelValue},set(a){e(\"update:modelValue\",a)}}),o=ue(()=>n.transition?{...t.value.transition,enterFrom:n.side===\"left\"?t.value.translate.left:t.value.translate.right,enterTo:t.value.translate.base,leaveFrom:t.value.translate.base,leaveTo:n.side===\"left\"?t.value.translate.left:t.value.translate.right}:{});function r(a){if(n.preventClose){e(\"close-prevented\");return}s.value=a,e(\"close\")}return bj(()=>j0()),{ui:t,attrs:i,isOpen:s,transitionClass:o,close:r}}});function sgt(n,e,t,i,s,o){const r=jc(\"TransitionChild\"),a=jc(\"HDialogPanel\"),l=jc(\"HDialog\"),c=jc(\"TransitionRoot\");return fe(),jt(c,{as:\"template\",appear:n.appear,show:n.isOpen},{default:Be(()=>[te(l,an({class:[n.ui.wrapper,{\"justify-end\":n.side===\"right\"}]},n.attrs,{onClose:n.close}),{default:Be(()=>[n.overlay?(fe(),jt(r,an({key:0,as:\"template\",appear:n.appear},n.ui.overlay.transition),{default:Be(()=>[q(\"div\",{class:st([n.ui.overlay.base,n.ui.overlay.background])},null,2)]),_:1},16,[\"appear\"])):Bt(\"\",!0),te(r,an({as:\"template\",appear:n.appear},n.transitionClass),{default:Be(()=>[te(a,{class:st([n.ui.base,n.ui.width,n.ui.background,n.ui.ring,n.ui.padding])},{default:Be(()=>[en(n.$slots,\"default\")]),_:3},8,[\"class\"])]),_:3},16,[\"appear\"])]),_:3},16,[\"class\",\"onClose\"])]),_:3},8,[\"appear\",\"show\"])}const ogt=Js(ngt,[[\"render\",sgt]]),rgt={class:\"sticky top-0 z-10\"},agt={class:\"relative flex items-center justify-between\"},lgt={class:\"text-xl font-semibold leading-6 text-gray-900 dark:text-white\"},cgt=kt({__name:\"SlideOver\",props:eD({title:String,size:{type:String,default:\"medium\"}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:[\"update:modelValue\"],setup(n){const e=c_(n,\"modelValue\"),t=n,i=ue(()=>t.size===\"small\"?\"max-w-2xl\":t.size===\"big\"?\"max-w-4xl\":t.size===\"ultra\"?\"max-w-6xl\":\"max-w-3xl\");return(s,o)=>{const r=RO,a=L_e,l=ogt;return fe(),jt(l,{modelValue:e.value,\"onUpdate:modelValue\":o[1]||(o[1]=c=>e.value=c),ui:{width:\"w-screen \"+j(i)}},{default:Be(()=>[te(a,{class:\"flex flex-col flex-1 overflow-auto\",ui:{body:{base:\"flex-1\"},ring:\"\",divide:\"divide-y divide-gray-200 dark:divide-gray-700\"}},{header:Be(()=>[q(\"div\",rgt,[o[2]||(o[2]=q(\"div\",{\"aria-hidden\":\"true\",class:\"absolute inset-0 bg-white/70 dark:bg-gray-900/30 backdrop-blur-sm pointer-events-none\"},null,-1)),q(\"div\",agt,[q(\"h3\",lgt,Ni(n.title),1),q(\"div\",null,[en(s.$slots,\"buttons\"),te(r,{text:\"Close\",popper:{arrow:!0,offsetDistance:10},class:\"inline-block ml-2\"},{default:Be(()=>[q(\"button\",{class:\"p-2 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-full text-gray-400 hover:text-gray-700 dark:hover:text-gray-200 focus:outline-none transition-all duration-300\",onClick:o[0]||(o[0]=c=>e.value=!1)},[te(j(LO),{class:\"h-6 w-6\",\"aria-hidden\":\"true\"})])]),_:1})])])])]),default:Be(()=>[en(s.$slots,\"default\")]),_:3})]),_:3},8,[\"modelValue\",\"ui\"])}}}),gp=ha(Pi.ui.strategy,Pi.ui.textarea,Elt),dgt=kt({inheritAttrs:!1,props:{modelValue:{type:[String,Number],default:\"\"},id:{type:String,default:null},name:{type:String,default:null},placeholder:{type:String,default:null},required:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},rows:{type:Number,default:3},maxrows:{type:Number,default:0},autoresize:{type:Boolean,default:!1},autofocus:{type:Boolean,default:!1},autofocusDelay:{type:Number,default:100},resize:{type:Boolean,default:!1},padded:{type:Boolean,default:!0},size:{type:String,default:null,validator(n){return Object.keys(gp.size).includes(n)}},color:{type:String,default:()=>gp.default.color,validator(n){return[...Pi.ui.colors,...Object.keys(gp.color)].includes(n)}},variant:{type:String,default:()=>gp.default.variant,validator(n){return[...Object.keys(gp.variant),...Object.values(gp.color).flatMap(e=>Object.keys(e))].includes(n)}},textareaClass:{type:String,default:null},class:{type:[String,Object,Array],default:()=>\"\"},ui:{type:Object,default:()=>({})},modelModifiers:{type:Object,default:()=>({})}},emits:[\"update:modelValue\",\"blur\",\"change\"],setup(n,{emit:e}){const{ui:t,attrs:i}=Ua(\"textarea\",Ps(n,\"ui\"),gp,Ps(n,\"class\")),{emitFormBlur:s,emitFormInput:o,inputId:r,color:a,size:l,name:c}=aI(n,gp),d=Ue(nD({},n.modelModifiers,{trim:!1,lazy:!1,number:!1})),u=Ue(null),h=()=>{var y;n.autofocus&&((y=u.value)==null||y.focus())},f=()=>{if(n.autoresize){if(!u.value)return;u.value.rows=n.rows;const y=window.getComputedStyle(u.value),S=parseInt(y.paddingTop),x=parseInt(y.paddingBottom),k=S+x,D=parseInt(y.lineHeight),{scrollHeight:I}=u.value,N=(I-k)/D;N>n.rows&&(u.value.rows=n.maxrows?Math.min(N,n.maxrows):N)}},g=y=>{d.value.trim&&(y=y.trim()),d.value.number&&(y=Rre(y)),e(\"update:modelValue\",y),o()},p=y=>{f(),d.value.lazy||g(y.target.value)},_=y=>{const S=y.target.value;e(\"change\",S),d.value.lazy&&g(S),d.value.trim&&(y.target.value=S.trim())},b=y=>{e(\"blur\",y),s()};cn(()=>{setTimeout(()=>{h()},n.autofocusDelay)}),Dn(()=>n.modelValue,()=>{Go(f)}),cn(()=>{setTimeout(()=>{h(),f()},100)});const w=ue(()=>{var S,x;const y=((x=(S=t.value.color)==null?void 0:S[a.value])==null?void 0:x[n.variant])||t.value.variant[n.variant];return ac(Vn(t.value.base,t.value.form,t.value.rounded,t.value.placeholder,t.value.size[l.value],n.padded?t.value.padding[l.value]:\"p-0\",y==null?void 0:y.replaceAll(\"{color}\",a.value),!n.resize&&\"resize-none\"),n.textareaClass)});return{ui:t,attrs:i,name:c,inputId:r,textarea:u,textareaClass:w,onInput:p,onChange:_,onBlur:b}}}),ugt=[\"id\",\"value\",\"name\",\"rows\",\"required\",\"disabled\",\"placeholder\"];function hgt(n,e,t,i,s,o){return fe(),Re(\"div\",{class:st(n.ui.wrapper)},[q(\"textarea\",an({id:n.inputId,ref:\"textarea\",value:n.modelValue,name:n.name,rows:n.rows,required:n.required,disabled:n.disabled,placeholder:n.placeholder,class:n.textareaClass},n.attrs,{onInput:e[0]||(e[0]=(...r)=>n.onInput&&n.onInput(...r)),onBlur:e[1]||(e[1]=(...r)=>n.onBlur&&n.onBlur(...r)),onChange:e[2]||(e[2]=(...r)=>n.onChange&&n.onChange(...r))}),null,16,ugt),en(n.$slots,\"default\")],2)}const fgt=Js(dgt,[[\"render\",hgt]]);class FR extends Error{constructor(e){super(e),this.message=e,Object.setPrototypeOf(this,FR.prototype)}}const ggt=kt({props:{schema:{type:Object,default:void 0},state:{type:Object,required:!0},validate:{type:Function,default:()=>[]},validateOn:{type:Array,default:()=>[\"blur\",\"input\",\"change\",\"submit\"]}},emits:[\"submit\",\"error\"],setup(n,{expose:e,emit:t}){const i=j0(),s=STe(`form-${i}`);cn(()=>{s.on(async d=>{var u;d.type!==\"submit\"&&((u=n.validateOn)!=null&&u.includes(d.type))&&await l(d.path,{silent:!0})})}),uo(()=>{s.reset()});const o=Ue([]);os(\"form-errors\",o),os(\"form-events\",s);const r=Ue({});os(\"form-inputs\",r);async function a(){let d=await n.validate(n.state);if(n.schema)if(vgt(n.schema))d=d.concat(await bgt(n.state,n.schema));else if(pgt(n.schema))d=d.concat(await _gt(n.state,n.schema));else if(Cgt(n.schema))d=d.concat(await ygt(n.state,n.schema));else if(Sgt(n.schema))d=d.concat(await xgt(n.state,n.schema));else throw new Error(\"Form validation failed: Unsupported form schema\");return d}async function l(d,u={silent:!1}){let h=d;if(d&&!Array.isArray(d)&&(h=[d]),h){const f=o.value.filter(p=>!h.includes(p.path)),g=(await a()).filter(p=>h.includes(p.path));o.value=f.concat(g)}else o.value=await a();if(o.value.length>0){if(u.silent)return!1;throw new FR(`Form validation failed: ${JSON.stringify(o.value,null,2)}`)}return n.state}async function c(d){var h;const u=d;try{(h=n.validateOn)!=null&&h.includes(\"submit\")&&await l();const f={...u,data:n.state};t(\"submit\",f)}catch(f){if(!(f instanceof FR))throw f;const g={...u,errors:o.value.map(p=>({...p,id:r.value[p.path]}))};t(\"error\",g)}}return e({validate:l,errors:o,setErrors(d,u){o.value=d,u?o.value=o.value.filter(h=>h.path!==u).concat(d):o.value=d},async submit(){await c(new Event(\"submit\"))},getErrors(d){return d?o.value.filter(u=>u.path===d):o.value},clear(d){d?o.value=o.value.filter(u=>u.path!==d):o.value=[]}}),{onSubmit:c}}});function pgt(n){return n.validate&&n.__isYupSchema__}function mgt(n){return n.inner!==void 0}async function _gt(n,e){try{return await e.validate(n,{abortEarly:!1}),[]}catch(t){if(mgt(t))return t.inner.map(i=>({path:i.path??\"\",message:i.message}));throw t}}function vgt(n){return n.parse!==void 0}async function bgt(n,e){const t=await e.safeParseAsync(n);return t.success===!1?t.error.issues.map(i=>({path:i.path.join(\".\"),message:i.message})):[]}function Cgt(n){return n.validateAsync!==void 0&&n.id!==void 0}function wgt(n){return n.isJoi===!0}async function ygt(n,e){try{return await e.validateAsync(n,{abortEarly:!1}),[]}catch(t){if(wgt(t))return t.details.map(i=>({path:i.path.join(\".\"),message:i.message}));throw t}}function Sgt(n){return n._parse!==void 0}async function xgt(n,e){const t=await e._parse(n);return t.issues?t.issues.map(i=>{var s;return{path:((s=i.path)==null?void 0:s.map(o=>o.key).join(\".\"))||\"\",message:i.message}}):[]}function Lgt(n,e,t,i,s,o){return fe(),Re(\"form\",{onSubmit:e[0]||(e[0]=sN((...r)=>n.onSubmit&&n.onSubmit(...r),[\"prevent\"]))},[en(n.$slots,\"default\")],32)}const Hj=Js(ggt,[[\"render\",Lgt]]),kgt={class:\"w-full\"},Dgt={class:\"flex justify-end\"},Igt=kt({__name:\"Feedback\",props:{modelValue:{},modelModifiers:{}},emits:[\"update:modelValue\"],setup(n){const e=c_(n,\"modelValue\"),t=Ue(!1),i=pi(),s=Ba({email:\"\",description:\"\"}),o=ue(()=>i.hasLivePluginInstalled);async function r(){t.value=!0;const{data:l,error:c}=await Ot(\"/system/feedback\",{description:s.description,email:s.email},!0);t.value=!1,c.value&&c.value.statusCode!==200&&Lt(\"error\",`[${c.value.statusCode}]: Something went wrong. If this persists, please contact support.`);const d=l.value;d.status===\"success\"?(s.description=\"\",s.email=\"\",Lt(\"success\",d.message),a()):d.status===\"error\"&&Lt(\"error\",d.message)}function a(){e.value=!1}return(l,c)=>{const d=fgt,u=x_,h=ub,f=jh,g=Hj;return fe(),Re(\"div\",kgt,[c[3]||(c[3]=q(\"p\",{id:\"feedback-description\"},\" I would love to hear your feedback whether it's about a bug, suggestion, something you like, or something you hate about Jesse! \",-1)),c[4]||(c[4]=q(\"br\",null,null,-1)),te(g,{state:j(s),class:\"space-y-4\",onSubmit:r},{default:Be(()=>[te(u,{label:\"Description\",name:\"Description\"},{default:Be(()=>[te(d,{modelValue:j(s).description,\"onUpdate:modelValue\":c[0]||(c[0]=p=>j(s).description=p),rows:6,placeholder:\"Type here...\"},null,8,[\"modelValue\"])]),_:1}),te(u,{label:\"Email (must be registered with on Jesse.Trade)\",help:\"Enter your email address for us to know who sent the feedback and possibly reply back to you. It must be the email address of your account on Jesse.Trade\",required:\"\"},{default:Be(()=>[te(h,{modelValue:j(s).email,\"onUpdate:modelValue\":c[1]||(c[1]=p=>j(s).email=p),placeholder:\"Email address...\",type:\"email\"},null,8,[\"modelValue\"])]),_:1}),q(\"div\",Dgt,[te(f,{id:\"feedback-cancel-button\",color:\"gray\",variant:\"link\",class:\"mr-8\",label:\"Cancel\",onClick:c[2]||(c[2]=p=>a())}),te(f,{id:\"feedback-submit-button\",type:\"submit\",class:\"w-48 flex justify-center\",label:\"Submit\",loading:j(t),disabled:!j(s).description.length||!j(s).email.length&&!j(o)},null,8,[\"loading\",\"disabled\"])])]),_:1},8,[\"state\"])])}}}),Egt={id:\"make-strategy-modal\",class:\"w-full select-none\"},Tgt={class:\"flex justify-end\"},Ngt=kt({__name:\"MakeStrategy\",props:{modelValue:{},modelModifiers:{}},emits:[\"update:modelValue\"],setup(n){const e=Ue(!1),t=c_(n,\"modelValue\"),i=pi(),s=Ba({name:\"\"}),o=ue(()=>i.strategies);async function r(){if(!s.name.length){Lt(\"error\",\"Please enter a name for the strategy\");return}if(e.value=!0,!/^[A-Za-z_][A-Za-z0-9_]*$/.test(s.name)){Lt(\"error\",\"Invalid strategy name. Must be a valid Python class name.\"),e.value=!1;return}const{data:a,error:l}=await Ot(\"/strategy/make\",{name:s.name},!0);if(e.value=!1,l.value&&l.value.statusCode===409){Lt(\"error\",\"A strategy with this name already exists. Please choose a different name.\");return}l.value&&l.value.statusCode!==200&&Lt(\"error\",`[${l.value.statusCode}]: Something went wrong. If this persists, please contact support.`);const c=a.value;c.status===\"success\"?(Lt(\"success\",\"Successfully created strategy\"),o.value.push(s.name),o.value.sort(),t.value=!1,await Fr().push(`/strategies/${s.name}`)):c.status===\"error\"&&Lt(\"error\",c.message)}return(a,l)=>{const c=ub,d=x_,u=jh,h=RO,f=Hj;return fe(),Re(\"div\",Egt,[l[2]||(l[2]=q(\"p\",null,\" Filling this form will create a new strategy class with all the starting methods in it. You can then edit it either in your local IDE or in the built-in code editor. \",-1)),l[3]||(l[3]=q(\"br\",null,null,-1)),te(f,{state:j(s),class:\"space-y-10\",onSubmit:r},{default:Be(()=>[te(d,{label:\"Strategy name:\",required:\"\",help:\"Must be the same as your strategy's class name. Ex: MyFirstStrategy, Strategy1, etc.\"},{default:Be(()=>[te(c,{modelValue:j(s).name,\"onUpdate:modelValue\":l[0]||(l[0]=g=>j(s).name=g),placeholder:\"ex: MyAwesomeStrategy01\",type:\"text\"},null,8,[\"modelValue\"])]),_:1}),q(\"div\",Tgt,[te(u,{id:\"make-strategy-cancel-button\",color:\"gray\",variant:\"ghost\",class:\"mr-2\",label:\"Cancel\",onClick:l[1]||(l[1]=g=>t.value=!1)}),te(h,{text:\"Create new strategy\",shortcuts:[\"Enter\"],popper:{placement:\"top\"}},{default:Be(()=>[te(u,{id:\"make-strategy-submit-button\",type:\"submit\",class:\"w-48 flex justify-center\",label:\"Create\",loading:j(e),disabled:!j(s).name.length},null,8,[\"loading\",\"disabled\"])]),_:1})])]),_:1},8,[\"state\"])])}}}),Agt={class:\"flex flex-col\"},Rgt={class:\"-my-2 overflow-x-auto\"},Mgt={class:\"py-2 align-middle inline-block min-w-full\"},Pgt={class:\"min-w-full\"},Ogt={class:\"px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-500 dark:text-gray-400\"},Fgt={class:\"px-6 py-4 whitespace-nowrap text-sm font-bold text-gray-900 dark:text-gray-100\"},Bgt=kt({__name:\"KeyValueTable\",props:{data:{},noContainer:{type:Boolean}},setup(n){return(e,t)=>(fe(),Re(\"div\",Agt,[q(\"div\",Rgt,[q(\"div\",Mgt,[q(\"div\",{class:st([e.noContainer?\"overflow-hidden rounded-b-lg bg-white dark:bg-gray-800\":\"border dark:border-gray-700 overflow-hidden rounded-lg bg-white dark:bg-gray-800\"])},[q(\"table\",Pgt,[q(\"tbody\",null,[(fe(!0),Re(Bi,null,Ma(e.data,(i,s)=>(fe(),Re(\"tr\",{key:s,class:st(s%2===0?\"bg-white dark:bg-gray-800\":\"bg-gray-100/70 dark:bg-gray-700/60\")},[q(\"td\",Ogt,Ni(i[0]),1),q(\"td\",Fgt,Ni(i[1]),1)],2))),128))])])],2)])])]))}}),Wgt={id:\"make-strategy-modal\",class:\"w-full select-none\"},Hgt={class:\"flex justify-end mt-8\"},Vgt=kt({__name:\"About\",props:{modelValue:{},modelModifiers:{}},emits:[\"update:modelValue\"],setup(n){const e=c_(n,\"modelValue\"),t=pi(),i=ue(()=>t.systemInfo),s=ue(()=>Object.entries(i.value).map(([o,r])=>[o,r]));return(o,r)=>{const a=Bgt,l=jh;return fe(),Re(\"div\",Wgt,[te(a,{data:j(s)},null,8,[\"data\"]),q(\"div\",Hgt,[te(l,{id:\"feedback-cancel-button\",color:\"gray\",block:\"\",label:\"Close\",onClick:r[0]||(r[0]=c=>e.value=!1)})])])}}}),zgt=()=>Ew(\"color-mode\").value,$gt=kt({__name:\"ThemeSwitch\",setup(n){const e=zgt(),t=()=>{e.preference=e.preference===\"dark\"?\"light\":\"dark\"};return(i,s)=>(fe(),Re(\"button\",{id:\"theme-switch-button\",class:\"ml-2 p-2 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-full text-gray-400 hover:text-gray-500 dark:hover:text-gray-300 focus:outline-none\",onClick:t},[te(j(glt),{class:\"hidden dark:block h-6 w-6\",\"aria-hidden\":\"true\"}),te(j(hlt),{class:\"dark:hidden h-6 w-6\",\"aria-hidden\":\"true\"})]))}}),Vj=\"\"+new URL(\"logo-light.CS4l4ePq.png\",import.meta.url).href,zj=\"\"+new URL(\"logo-dark.tKoQPl1k.svg\",import.meta.url).href,Ugt={class:\"flex items-center justify-between\"},jgt={class:\"flex justify-end\"},Kgt={class:\"mx-auto px-4 lg:px-8\"},qgt={class:\"flex items-center justify-between h-16\"},Ggt={class:\"flex items-center\"},Zgt={class:\"flex-shrink-0\"},Ygt={class:\"hidden lg:block lg:ml-6\"},Xgt={class:\"flex space-x-4\"},Qgt={class:\"hidden lg:ml-6 lg:block\"},Jgt={class:\"flex items-center\"},ept={key:0,class:\"space-y-3\"},tpt={class:\"flex items-center space-x-2.5\"},ipt={class:\"flex-shrink-0 w-9 h-9 rounded-full overflow-hidden border-2 border-gray-200 dark:border-gray-600\"},npt=[\"src\",\"alt\"],spt={class:\"flex-1 min-w-0\"},opt={class:\"text-sm font-semibold text-gray-900 dark:text-white truncate\"},rpt={key:0,class:\"text-xs text-gray-500 dark:text-gray-400 truncate mt-0.5\"},apt={class:\"flex items-center justify-between\"},lpt={key:1,class:\"flex items-center justify-between\"},cpt={class:\"text-sm text-gray-500 dark:text-gray-300\"},dpt={class:\"truncate text-sm font-medium text-gray-800 dark:text-gray-200 opacity-100 uppercase\"},upt={class:\"py-1\"},hpt={class:\"py-1\"},fpt={class:\"-mr-2 flex lg:hidden\"},gpt={class:\"px-2 pt-2 pb-3 space-y-1\"},ppt=[\"id\",\"onClick\"],mpt={class:\"flex items-center w-full p-2\"},_pt={class:\"px-2 py-2 space-y-1 border-t border-gray-200 dark:border-gray-900\"},vpt={class:\"px-2 py-2 space-y-1 border-t border-gray-200 dark:border-gray-900\"},bpt=[\"onClick\"],Cpt={href:\"https://jesse.trade/pricing\",target:\"_blank\",class:\"flex justify-start items-center w-full text-left px-2 py-2 text-sm text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-700 hover:text-gray-600 dark:hover:text-gray-200 rounded-md\"},wpt=[\"onClick\"],ypt=[\"onClick\"],Spt=[\"onClick\"],xpt={href:\"https://docs.jesse.trade/\",class:\"flex justify-start items-center w-full text-left px-2 py-2 text-sm text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-700 hover:text-gray-600 dark:hover:text-gray-200 rounded-md\",target:\"_blank\"},Lpt=[\"onClick\"],kpt={href:\"https://jesse.trade/help\",class:\"flex justify-start items-center w-full text-left px-2 py-2 text-sm text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-700 hover:text-gray-600 dark:hover:text-gray-200 rounded-md\",target:\"_blank\"},Dpt=[\"onClick\"],Ipt=[\"onClick\"],Ept={class:\"flex justify-between items-center px-2 py-2 space-y-1 border-t border-gray-200 dark:border-gray-900\"},Tpt=kt({__name:\"Nav\",setup(n){const e=pi(),t=Ue(!1),i=Ue(!1),s=Ue(!1),o=Ue(!1),r=ue(()=>e.hasLivePluginInstalled),a=ue(()=>{const p=e.jesseTradeUser;return p&&p.license_plan||e.plan});function l(p){const _=p.toLowerCase();return _===\"guest\"?\"bg-gray-100 text-gray-800 dark:bg-gray-700 dark:text-gray-200\":_===\"free\"?\"bg-primary-100 text-primary-800 dark:bg-primary-900 dark:text-primary-200\":\"bg-teal-100 text-teal-800 dark:bg-teal-900 dark:text-teal-200\"}function c(p){e.plan===\"guest\"&&(p&&p.stopPropagation(),o.value=!0)}const d=ue(()=>{const p=[{name:\"Strategies\",to:\"/strategies\",icon:ame},{name:\"Import Candles\",to:\"/candles/\",icon:llt},{name:\"Backtest\",to:\"/backtest/\",icon:rme},{name:\"Optimization\",to:\"/optimization/\",icon:lme},{name:\"Monte Carlo\",to:\"/monte-carlo/\",icon:ome}];return r.value&&p.push({name:\"Live\",to:\"/live/\",icon:cme}),p}),u=p=>p.toLowerCase().replace(/ /g,\"-\").replace(/[^\\w-]+/g,\"\"),h=()=>{i.value=!0},f=Ue(!1);function g(){localStorage.clear(),location.reload(),f.value=!1,Lt(\"success\",\"Logged out successfully\")}return(p,_)=>{const b=wlt,w=Qft,y=cgt,S=Igt,x=Ngt,k=Vgt,D=jh,I=Wj,N=L_e,P=x_e,O=y2,M=jc(\"router-link\"),z=$gt,K=RO,ae=y2;return fe(),Re(Bi,null,[te(b),te(y,{modelValue:j(t),\"onUpdate:modelValue\":_[0]||(_[0]=se=>Cn(t)?t.value=se:null),title:\"Settings\",size:\"ultra\"},{default:Be(()=>[te(w)]),_:1},8,[\"modelValue\"]),te(y,{modelValue:j(i),\"onUpdate:modelValue\":_[2]||(_[2]=se=>Cn(i)?i.value=se:null),title:\"Feedback\"},{default:Be(()=>[te(S,{modelValue:j(i),\"onUpdate:modelValue\":_[1]||(_[1]=se=>Cn(i)?i.value=se:null)},null,8,[\"modelValue\"])]),_:1},8,[\"modelValue\"]),te(y,{modelValue:(\"useTempStore\"in p?p.useTempStore:j(Xu))().makeStrategy,\"onUpdate:modelValue\":_[4]||(_[4]=se=>(\"useTempStore\"in p?p.useTempStore:j(Xu))().makeStrategy=se),title:\"Make a new strategy\",size:\"small\"},{default:Be(()=>[te(x,{modelValue:(\"useTempStore\"in p?p.useTempStore:j(Xu))().makeStrategy,\"onUpdate:modelValue\":_[3]||(_[3]=se=>(\"useTempStore\"in p?p.useTempStore:j(Xu))().makeStrategy=se)},null,8,[\"modelValue\"])]),_:1},8,[\"modelValue\"]),te(y,{modelValue:j(s),\"onUpdate:modelValue\":_[6]||(_[6]=se=>Cn(s)?s.value=se:null),title:\"About\",size:\"small\"},{default:Be(()=>[te(k,{modelValue:j(s),\"onUpdate:modelValue\":_[5]||(_[5]=se=>Cn(s)?s.value=se:null)},null,8,[\"modelValue\"])]),_:1},8,[\"modelValue\"]),te(I,{modelValue:j(f),\"onUpdate:modelValue\":_[7]||(_[7]=se=>Cn(f)?f.value=se:null),title:\"Logout\",description:\"Are you sure you want to logout?\",type:\"info\"},{default:Be(()=>[te(D,{variant:\"solid\",color:\"rose\",block:\"\",class:\"sm:w-auto\",size:\"lg\",label:\"Logout\",onClick:g})]),_:1},8,[\"modelValue\"]),te(P,{modelValue:j(o),\"onUpdate:modelValue\":_[10]||(_[10]=se=>Cn(o)?o.value=se:null)},{default:Be(()=>[te(N,null,{header:Be(()=>[q(\"div\",Ugt,[_[22]||(_[22]=q(\"h3\",{class:\"text-lg font-semibold\"},\" Authentication Required \",-1)),te(D,{color:\"gray\",variant:\"ghost\",icon:\"i-heroicons-x-mark-20-solid\",onClick:_[8]||(_[8]=se=>o.value=!1)})])]),footer:Be(()=>[q(\"div\",jgt,[te(D,{color:\"primary\",onClick:_[9]||(_[9]=se=>o.value=!1)},{default:Be(()=>_[23]||(_[23]=[at(\" Got it \")])),_:1})])]),default:Be(()=>[_[24]||(_[24]=q(\"div\",{class:\"space-y-4\"},[q(\"p\",{class:\"text-gray-700 dark:text-gray-300\"},[at(\" To access premium features from jesse.trade, you need to authenticate with your \"),q(\"code\",{class:\"px-1 py-0.5 bg-gray-100 dark:bg-gray-800 rounded\"},\"LICENSE_API_TOKEN\"),at(\". This applies to both free and premium users. \")]),q(\"div\",{class:\"space-y-2\"},[q(\"h4\",{class:\"font-semibold\"},\" How to get started: \"),q(\"ol\",{class:\"list-decimal list-inside space-y-2\"},[q(\"li\",null,[at(\"Visit \"),q(\"a\",{href:\"https://jesse.trade/user/api-tokens\",target:\"_blank\",class:\"text-primary-500 hover:underline\"},\"jesse.trade/user/api-tokens\")]),q(\"li\",null,[at(\"Generate a new \"),q(\"code\",{class:\"px-1 py-0.5 bg-gray-100 dark:bg-gray-800 rounded text-xs\"},\"LICENSE_API_TOKEN\")]),q(\"li\",null,[at(\"Copy the token and add it to your project's \"),q(\"code\",{class:\"px-1 py-0.5 bg-gray-100 dark:bg-gray-800 rounded text-xs\"},\".env\"),at(\" file:\")])])]),q(\"div\",{class:\"bg-gray-50 dark:bg-gray-800 p-3 rounded-lg\"},[q(\"code\",null,\" LICENSE_API_TOKEN=your-token-here \")]),q(\"p\",null,[at(\" After adding the token to your \"),q(\"code\",{class:\"px-1 py-0.5 bg-gray-100 dark:bg-gray-800 rounded\"},\".env\"),at(\" file, restart Jesse and you'll be authenticated automatically. \")])],-1))]),_:1})]),_:1},8,[\"modelValue\"]),te(j(tut),{as:\"nav\",class:\"bg-gray-100 dark:bg-gray-800 border-b dark:border-gray-900 select-none\"},{default:Be(({open:se})=>[q(\"div\",Kgt,[q(\"div\",qgt,[q(\"div\",Ggt,[q(\"div\",Zgt,[te(O,{to:\"/\"},{default:Be(()=>_[25]||(_[25]=[q(\"img\",{class:\"h-9 w-auto dark:hidden\",src:Vj,alt:\"Jesse Logo\"},null,-1),q(\"img\",{class:\"hidden dark:block h-10 w-auto\",src:zj,alt:\"Jesse Logo\"},null,-1)])),_:1})]),q(\"div\",Ygt,[q(\"div\",Xgt,[(fe(!0),Re(Bi,null,Ma(j(d),he=>(fe(),jt(M,{id:u(he.name)+\"-page-button\",key:he.name,to:he.to,class:st([\"flex items-center text-gray-700 dark:text-gray-300 px-3 py-2 rounded-md text-sm font-medium\",(p._.provides[nl]||p.$route).path.startsWith(he.to)&&he.to!==\"/\"||(p._.provides[nl]||p.$route).path===he.to?\"bg-gray-200 dark:bg-gray-900\":\"hover:bg-gray-200 dark:hover:bg-gray-700 hover:text-gray-600 dark:hover:text-gray-200\"])},{default:Be(()=>[(fe(),jt(Em(he.icon),{class:st([(p._.provides[nl]||p.$route).path.startsWith(he.to)&&he.to!==\"/\"||(p._.provides[nl]||p.$route).path===he.to?\"text-gray-700 dark:text-gray-300\":\"text-gray-400 group-hover:text-gray-500 dark:group-hover:text-gray-400\",\"flex-shrink-0 -ml-1 mr-2 h-6 w-6\"]),\"aria-hidden\":\"true\"},null,8,[\"class\"])),at(\" \"+Ni(he.name),1)]),_:2},1032,[\"id\",\"to\",\"class\"]))),128))])])]),q(\"div\",Qgt,[q(\"div\",Jgt,[te(K,{text:\"Switch theme\",popper:{arrow:!0}},{default:Be(()=>[te(z)]),_:1}),te(K,{text:\"Settings\",popper:{arrow:!0}},{default:Be(()=>[q(\"button\",{class:\"ml-2 p-2 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-full text-gray-400 hover:text-gray-500 dark:hover:text-gray-300 focus:outline-none\",onClick:_[11]||(_[11]=he=>t.value=!0)},[_[26]||(_[26]=q(\"span\",{class:\"sr-only\"},\"Settings\",-1)),te(j(ane),{class:\"h-6 w-6\",\"aria-hidden\":\"true\"})])]),_:1}),te(K,{text:\"More options\",popper:{arrow:!0}},{default:Be(()=>[te(j(cut),{as:\"div\",class:\"relative z-40\"},{default:Be(()=>[te(j(dut),{class:\"ml-2 p-2 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-full text-gray-400 hover:text-gray-500 dark:hover:text-gray-300 focus:outline-none\"},{default:Be(()=>[_[27]||(_[27]=q(\"span\",{class:\"sr-only\"},\"Settings\",-1)),te(j(ult),{class:\"h-6 w-6\",\"aria-hidden\":\"true\"})]),_:1}),te(o0,{\"enter-active-class\":\"transition ease-out duration-100\",\"enter-from-class\":\"transform opacity-0 scale-95\",\"enter-to-class\":\"transform opacity-100 scale-100\",\"leave-active-class\":\"transition ease-in duration-75\",\"leave-from-class\":\"transform opacity-100 scale-100\",\"leave-to-class\":\"transform opacity-0 scale-95\"},{default:Be(()=>[te(j(uut),{class:\"bg-white dark:bg-gray-700 origin-top-right absolute right-0 mt-2 w-64 rounded-md border-gray-200 dark:border-gray-900 shadow-lg py-1 ring-1 ring-black ring-opacity-5 focus:outline-none divide-y divide-gray-100 dark:divide-gray-900\"},{default:Be(()=>[q(\"div\",{class:st([\"px-4 py-3\",j(e).plan===\"guest\"?\"cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800\":\"select-text\"]),onClick:c},[j(e).jesseTradeUser&&j(e).plan!==\"guest\"?(fe(),Re(\"div\",ept,[q(\"div\",tpt,[q(\"div\",ipt,[q(\"img\",{src:j(e).jesseTradeUser.profile_photo_url,alt:j(e).jesseTradeUser.name,class:\"w-full h-full object-contain\",referrerpolicy:\"no-referrer\"},null,8,npt)]),q(\"div\",spt,[q(\"p\",opt,Ni(j(e).jesseTradeUser.name||\"User\"),1),j(e).jesseTradeUser.username?(fe(),Re(\"p\",rpt,\" @\"+Ni(j(e).jesseTradeUser.username),1)):Bt(\"\",!0)])]),q(\"div\",apt,[_[28]||(_[28]=q(\"span\",{class:\"text-xs text-gray-500 dark:text-gray-400\"},\" License: \",-1)),q(\"span\",{class:st([\"inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-semibold uppercase\",l(j(a))])},Ni(j(a)),3)])])):(fe(),Re(\"div\",lpt,[q(\"p\",cpt,[_[29]||(_[29]=at(\" Active License: \")),q(\"span\",dpt,Ni(j(e).plan),1)]),te(j(z3),{class:\"w-4 h-4 text-gray-400\"})]))],2),q(\"div\",upt,[te(j(Cf),null,{default:Be(({active:he})=>[q(\"button\",{class:st([he?\"bg-gray-100 dark:bg-gray-800\":\"\",\"flex justify-left items-center w-full text-left px-4 py-2 text-sm text-indigo-700 dark:text-indigo-300\"]),onClick:_[12]||(_[12]=me=>(\"useTempStore\"in p?p.useTempStore:j(Xu))().makeStrategy=!0)},[te(j(lne),{class:\"w-5 h-5 mr-2\"}),_[30]||(_[30]=at(\" New Strategy \"))],2)]),_:1})]),q(\"div\",hpt,[te(j(Cf),null,{default:Be(({active:he})=>[q(\"a\",{href:\"https://jesse.trade/pricing\",class:st([he?\"bg-gray-100 dark:bg-gray-800\":\"\",\"flex justify-left items-center w-full text-left px-4 py-2 text-sm text-gray-700 dark:text-gray-300\"]),target:\"_blank\"},[te(j(hne),{class:\"w-5 h-5 mr-2\"}),at(\" \"+Ni(j(r)?\"Manage License\":\"Upgrade Account\"),1)],2)]),_:1}),j(r)?(fe(),jt(j(Cf),{key:0},{default:Be(({active:he})=>[q(\"button\",{class:st([he?\"bg-gray-100 dark:bg-gray-800\":\"\",\"flex justify-left items-center w-full text-left px-4 py-2 text-sm text-gray-700 dark:text-gray-300\"]),onClick:_[13]||(_[13]=me=>p.$router.push(\"/exchange-api-keys\"))},[te(j(une),{class:\"w-5 h-5 mr-2\"}),_[31]||(_[31]=at(\" Exchange API keys \"))],2)]),_:1})):Bt(\"\",!0),j(r)?(fe(),jt(j(Cf),{key:1},{default:Be(({active:he})=>[q(\"button\",{class:st([he?\"bg-gray-100 dark:bg-gray-800\":\"\",\"flex justify-left items-center w-full text-left px-4 py-2 text-sm text-gray-700 dark:text-gray-300\"]),onClick:_[14]||(_[14]=me=>p.$router.push(\"/notification-api-keys\"))},[te(j(sne),{class:\"w-5 h-5 mr-2\"}),_[32]||(_[32]=at(\" Notification API keys \"))],2)]),_:1})):Bt(\"\",!0),te(j(Cf),null,{default:Be(({active:he})=>[q(\"button\",{class:st([he?\"bg-gray-100 dark:bg-gray-800\":\"\",\"flex justify-left items-center w-full text-left px-4 py-2 text-sm text-gray-700 dark:text-gray-300\"]),onClick:h},[te(j(one),{class:\"w-5 h-5 mr-2\"}),_[33]||(_[33]=at(\" Feedback \"))],2)]),_:1}),te(j(Cf),null,{default:Be(({active:he})=>[q(\"a\",{href:\"https://docs.jesse.trade/\",class:st([he?\"bg-gray-100 dark:bg-gray-800\":\"\",\"flex justify-start items-center w-full text-left px-4 py-2 text-sm text-gray-700 dark:text-gray-300\"]),target:\"_blank\"},[te(j(rne),{class:\"w-5 h-5 mr-2\"}),_[34]||(_[34]=at(\" Documentation \"))],2)]),_:1}),te(j(Cf),null,{default:Be(({active:he})=>[q(\"a\",{href:\"https://jesse.trade/help\",class:st([he?\"bg-gray-100 dark:bg-gray-800\":\"\",\"flex justify-start items-center w-full text-left px-4 py-2 text-sm text-gray-700 dark:text-gray-300\"]),target:\"_blank\"},[te(j(z3),{class:\"w-5 h-5 mr-2\"}),_[35]||(_[35]=at(\" Help Center \"))],2)]),_:1}),te(j(Cf),null,{default:Be(({active:he})=>[q(\"button\",{class:st([he?\"bg-gray-100 dark:bg-gray-800\":\"\",\"flex justify-start items-center w-full text-left px-4 py-2 text-sm text-gray-700 dark:text-gray-300\"]),onClick:_[15]||(_[15]=me=>s.value=!0)},[te(j(dne),{class:\"w-5 h-5 mr-2\"}),_[36]||(_[36]=at(\" About \"))],2)]),_:1}),te(j(Cf),null,{default:Be(({active:he})=>[q(\"button\",{class:st([he?\"bg-gray-100 dark:bg-gray-800\":\"\",\"flex justify-start items-center w-full text-left px-4 py-2 text-sm text-rose-600 dark:text-rose-300\"]),onClick:_[16]||(_[16]=me=>f.value=!0)},[te(j(nne),{class:\"w-5 h-5 mr-2\"}),_[37]||(_[37]=at(\" Logout \"))],2)]),_:1})])]),_:1})]),_:1})]),_:1})]),_:1})])]),q(\"div\",fpt,[te(j(iut),{class:\"inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 dark:hover:text-gray-300 dark:hover:bg-gray-600 hover:bg-gray-300 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-white dark:focus:ring-gray-800\"},{default:Be(()=>[_[38]||(_[38]=q(\"span\",{class:\"sr-only\"},\"Open main menu\",-1)),se?(fe(),jt(j(LO),{key:1,class:\"block h-6 w-6\",\"aria-hidden\":\"true\"})):(fe(),jt(j(clt),{key:0,class:\"block h-6 w-6\",\"aria-hidden\":\"true\"}))]),_:2},1024)])])]),te(j(nut),{class:\"lg:hidden\"},{default:Be(({close:he})=>[q(\"div\",gpt,[(fe(!0),Re(Bi,null,Ma(j(d),me=>(fe(),Re(\"div\",{id:u(me.name)+\"-page-button\",key:me.name,class:st([(p._.provides[nl]||p.$route).path.startsWith(me.to)&&me.to!=\"/\"||(p._.provides[nl]||p.$route).path==\"/\"&&me.to==\"/\"?\"bg-gray-200 dark:bg-gray-900\":\"hover:bg-gray-200 dark:hover:bg-gray-700 hover:text-gray-600 dark:hover:text-gray-200\",\"rounded-md\"]),onClick:he},[te(ae,{to:me.to,class:\"text-gray-700 dark:text-gray-300 text-sm font-medium\"},{default:Be(()=>[q(\"div\",mpt,[(fe(),jt(Em(me.icon),{class:st([(p._.provides[nl]||p.$route).path.startsWith(me.to)&&me.to!=\"/\"||(p._.provides[nl]||p.$route).path==\"/\"&&me.to==\"/\"?\"text-gray-700 dark:text-gray-300\":\"text-gray-400 group-hover:text-gray-500 dark:group-hover:text-gray-400\",\"flex-shrink-0 mr-2 h-6 w-6\"]),\"aria-hidden\":\"true\"},null,8,[\"class\"])),at(\" \"+Ni(me.name),1)])]),_:2},1032,[\"to\"])],10,ppt))),128))]),q(\"div\",_pt,[q(\"button\",{class:\"flex justify-start items-center w-full text-left px-2 py-2 text-sm text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-700 hover:text-gray-600 dark:hover:text-gray-200 rounded-md\",onClick:_[17]||(_[17]=me=>(\"useTempStore\"in p?p.useTempStore:j(Xu))().makeStrategy=!0)},[te(j(lne),{class:\"w-5 h-5 mr-2\"}),_[39]||(_[39]=at(\" New Strategy \"))])]),q(\"div\",vpt,[q(\"div\",{class:\"w-full\",onClick:he},[q(\"a\",Cpt,[te(j(hne),{class:\"w-5 h-5 mr-2\"}),at(\" \"+Ni(j(r)?\"Manage License\":\"Upgrade Account\"),1)])],8,bpt),j(r)?(fe(),Re(\"div\",{key:0,class:\"w-full\",onClick:he},[te(O,{to:\"/exchange-api-keys\",class:\"flex justify-start items-center w-full text-left px-2 py-2 text-sm text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-700 hover:text-gray-600 dark:hover:text-gray-200 rounded-md\"},{default:Be(()=>[te(j(une),{class:\"w-5 h-5 mr-2\"}),_[40]||(_[40]=at(\" Exchange API keys \"))]),_:1})],8,wpt)):Bt(\"\",!0),j(r)?(fe(),Re(\"div\",{key:1,class:\"w-full\",onClick:he},[te(O,{to:\"/notification-api-keys\",class:\"flex justify-start items-center w-full text-left px-2 py-2 text-sm text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-700 hover:text-gray-600 dark:hover:text-gray-200 rounded-md\"},{default:Be(()=>[te(j(sne),{class:\"w-5 h-5 mr-2\"}),_[41]||(_[41]=at(\" Notification API keys \"))]),_:1})],8,ypt)):Bt(\"\",!0),q(\"div\",{class:\"w-full\",onClick:he},[q(\"a\",xpt,[te(j(rne),{class:\"w-5 h-5 mr-2\"}),_[42]||(_[42]=at(\" Documentation \"))])],8,Spt),q(\"div\",{class:\"w-full\",onClick:he},[q(\"a\",kpt,[te(j(z3),{class:\"w-5 h-5 mr-2\"}),_[43]||(_[43]=at(\" Help Center \"))])],8,Lpt),q(\"div\",{class:\"w-full\",onClick:he},[q(\"button\",{class:\"flex justify-start items-start w-full text-left px-2 py-2 text-sm text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-700 hover:text-gray-600 dark:hover:text-gray-200 rounded-md\",onClick:_[18]||(_[18]=me=>s.value=!0)},[te(j(dne),{class:\"w-5 h-5 mr-2\"}),_[44]||(_[44]=at(\" About \"))])],8,Dpt),q(\"div\",{class:\"w-full\",onClick:he},[q(\"button\",{class:\"flex justify-start items-start w-full text-left px-2 py-2 text-sm text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-700 hover:text-gray-600 dark:hover:text-gray-200 rounded-md\",onClick:_[19]||(_[19]=me=>f.value=!0)},[te(j(nne),{class:\"w-5 h-5 mr-2\"}),_[45]||(_[45]=at(\" Logout \"))])],8,Ipt)]),q(\"div\",Ept,[q(\"button\",{class:\"p-2 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-full text-gray-400 hover:text-gray-500 dark:hover:text-gray-300 focus:outline-none ml-0\",onClick:_[20]||(_[20]=me=>t.value=!0)},[_[46]||(_[46]=q(\"span\",{class:\"sr-only\"},\"Feedback\",-1)),te(j(ane),{class:\"h-6 w-6\",\"aria-hidden\":\"true\"})]),q(\"button\",{class:\"p-2 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-full text-gray-400 hover:text-gray-500 dark:hover:text-gray-300 focus:outline-none ml-0\",onClick:_[21]||(_[21]=me=>h())},[_[47]||(_[47]=q(\"span\",{class:\"sr-only\"},\"Settings\",-1)),te(j(one),{class:\"h-6 w-6\",\"aria-hidden\":\"true\"})]),te(z)])]),_:1})]),_:1})],64)}}}),Npt={key:0,class:\"fixed inset-0 z-50 flex flex-col items-center justify-center bg-white dark:bg-backdrop-dark transition-colors duration-300\"},Apt={key:0,class:\"fixed inset-0 pointer-events-none overflow-hidden z-[60]\"},Rpt={class:\"relative flex flex-col items-center max-w-sm w-full px-6\"},Mpt={class:\"text-center w-full space-y-6\"},Ppt={class:\"space-y-2 min-h-[80px] flex flex-col justify-center\"},Opt={key:\"welcome\"},Fpt={key:\"loading\",class:\"space-y-2\"},Bpt={class:\"min-h-[160px] flex flex-col justify-start\"},Wpt={key:\"loading-bar\",class:\"pt-8\"},Hpt=kt({__name:\"Login\",setup(n){const e=Ue(!0),t=Ue(!1),i=Ue(!1),s=Ue(!1),o=Ba({password:void 0}),r=pi(),a=u=>{const h=[\"#4f46e5\",\"#f9b537\",\"#10b981\",\"#ef4444\",\"#3b82f6\"],f=Math.random()*12+8;return{left:`${Math.random()*100}vw`,width:`${f}px`,height:`${f*.6}px`,backgroundColor:h[u%h.length],animationDelay:`${Math.random()*.8}s`,animationDuration:`${Math.random()*2+2}s`,transform:`rotate(${Math.random()*360}deg)`,zIndex:100}},l=(u,h=!1)=>{r.setAuthToken(u),r.initiate(),h||(e.value=!1)},c=async()=>{if(!o.password)return Lt(\"error\",\"Password is required\"),d(),!0;s.value=!0;const{data:u,error:h}=await Ot(\"/auth/login\",{password:o.password});if(s.value=!1,h.value&&h.value.statusCode!==200){d(),h.value.data.message?h.value.statusCode===401?Lt(\"error\",\"Incorrect password\"):Lt(\"error\",`[${h.value.statusCode}]: ${h.value.data.message}`):Lt(\"error\",h.value.data);return}i.value=!0;const f=u.value;l(f.auth_token,!0),Lt(\"success\",\"Logged in successfully\"),setTimeout(()=>{window.location.reload()},2e3)},d=()=>{t.value=!0,setTimeout(()=>{t.value=!1},600)};return(u,h)=>{const f=ub,g=x_,p=jh,_=Hj;return j(e)?(fe(),Re(\"section\",Npt,[j(i)?(fe(),Re(\"div\",Apt,[(fe(),Re(Bi,null,Ma(50,b=>q(\"div\",{key:b,class:\"confetti\",style:Im(a(b))},null,4)),64))])):Bt(\"\",!0),q(\"div\",Rpt,[h[5]||(h[5]=z1('<div class=\"logo-wrapper mb-12 relative\" data-v-d4934b6a><div class=\"absolute inset-0 -m-6 bg-primary-500/10 dark:bg-primary-400/10 rounded-full animate-pulse-slow\" data-v-d4934b6a></div><div class=\"absolute inset-0 -m-12 bg-primary-500/5 dark:bg-primary-400/5 rounded-full animate-pulse-slower\" data-v-d4934b6a></div><img class=\"h-32 w-auto dark:hidden relative z-10\" src=\"'+Vj+'\" alt=\"Jesse Logo\" data-v-d4934b6a><img class=\"hidden dark:block h-32 w-auto relative z-10\" src=\"'+zj+'\" alt=\"Jesse Logo\" data-v-d4934b6a></div>',1)),q(\"div\",Mpt,[q(\"div\",Ppt,[te(o0,{name:\"fade-slide\",mode:\"out-in\"},{default:Be(()=>[j(i)?(fe(),Re(\"div\",Fpt,h[2]||(h[2]=[q(\"div\",{class:\"flex items-center justify-center space-x-3\"},[q(\"h1\",{class:\"text-2xl font-bold tracking-tight text-gray-900 dark:text-white\"},\" Jesse \"),q(\"div\",{class:\"flex space-x-1.5 pt-1.5\"},[q(\"div\",{class:\"w-2 h-2 rounded-full bg-primary-500 animate-bounce-custom-1\"}),q(\"div\",{class:\"w-2 h-2 rounded-full bg-primary-500 animate-bounce-custom-2\"}),q(\"div\",{class:\"w-2 h-2 rounded-full bg-primary-500 animate-bounce-custom-3\"})])],-1),q(\"p\",{class:\"text-gray-500 dark:text-gray-400 font-medium animate-fade\"},\" Starting your trading session... \",-1)]))):(fe(),Re(\"div\",Opt,h[1]||(h[1]=[q(\"h1\",{class:\"text-2xl font-bold tracking-tight text-gray-900 dark:text-white\"},\" Welcome Back! \",-1),q(\"p\",{class:\"text-gray-500 dark:text-gray-400\"},\" Enter your password to continue \",-1)])))]),_:1})]),q(\"div\",Bpt,[te(o0,{name:\"fade-slide\",mode:\"out-in\"},{default:Be(()=>[j(i)?(fe(),Re(\"div\",Wpt,h[3]||(h[3]=[q(\"div\",{class:\"w-full max-w-[320px] h-3 bg-gray-100 dark:bg-gray-800 rounded-full mx-auto overflow-hidden shadow-inner relative\"},[q(\"div\",{class:\"h-full bg-primary-500 rounded-full animate-progress-indefinite shadow-[0_0_15px_rgba(79,70,229,0.4)] dark:shadow-[0_0_15px_rgba(249,181,55,0.3)]\"})],-1)]))):(fe(),Re(\"div\",{key:\"form\",class:st([\"bg-gray-50/50 dark:bg-gray-800/30 p-6 rounded-2xl border border-gray-100 dark:border-gray-700/50 backdrop-blur-sm transition-all duration-300\",{\"animate-shake border-rose-500/50 dark:border-rose-400/50\":j(t)}])},[te(_,{state:j(o),class:\"flex flex-col space-y-4\",onSubmit:c},{default:Be(()=>[te(g,{name:\"password\"},{default:Be(()=>[te(f,{modelValue:j(o).password,\"onUpdate:modelValue\":h[0]||(h[0]=b=>j(o).password=b),autofocus:\"\",placeholder:\"Password\",icon:\"i-heroicons-lock-closed\",size:\"xl\",type:\"password\",class:\"w-full\",ui:{rounded:\"rounded-xl\"},color:j(t)?\"red\":\"white\"},null,8,[\"modelValue\",\"color\"])]),_:1}),te(p,{label:\"Sign In\",\"trailing-icon\":\"i-heroicons-arrow-right\",type:\"submit\",size:\"xl\",color:\"primary\",block:\"\",ui:{rounded:\"rounded-xl\"},class:\"font-semibold shadow-lg shadow-primary-500/20 dark:shadow-primary-400/10\",loading:j(s)},null,8,[\"loading\"])]),_:1},8,[\"state\"])],2))]),_:1})]),h[4]||(h[4]=q(\"p\",{class:\"text-xs text-gray-400 dark:text-gray-500 pt-4\"},\" Jesse Trading Framework \",-1))])])])):Bt(\"\",!0)}}}),Vpt=Js(Hpt,[[\"__scopeId\",\"data-v-d4934b6a\"]]),zpt=window.setInterval,$pt={class:\"fixed inset-0 z-50 flex flex-col items-center justify-center bg-white dark:bg-backdrop-dark transition-colors duration-300\"},Upt={class:\"relative flex flex-col items-center max-w-sm w-full px-6\"},jpt={class:\"text-center w-full space-y-6\"},Kpt={class:\"space-y-2\"},qpt={class:\"text-gray-500 dark:text-gray-400 font-medium animate-fade min-h-[1.5rem]\"},Gpt=kt({__name:\"Loading\",setup(n){const e=[\"Starting your trading session...\",\"Connecting to Jesse engine...\",\"Preparing strategy environment...\",\"Syncing market data...\",\"Loading dashboard components...\"],t=Ue(e[0]);let i=null;return cn(()=>{let s=0;i=zpt(()=>{s=(s+1)%e.length,t.value=e[s]},2500)}),uo(()=>{i&&clearInterval(i)}),(s,o)=>(fe(),Re(\"div\",$pt,[q(\"div\",Upt,[o[3]||(o[3]=z1('<div class=\"logo-wrapper mb-12 relative\" data-v-9d7d34a0><div class=\"absolute inset-0 -m-6 bg-primary-500/10 dark:bg-primary-400/10 rounded-full animate-pulse-slow\" data-v-9d7d34a0></div><div class=\"absolute inset-0 -m-12 bg-primary-500/5 dark:bg-primary-400/5 rounded-full animate-pulse-slower\" data-v-9d7d34a0></div><img class=\"h-32 w-auto dark:hidden relative z-10\" src=\"'+Vj+'\" alt=\"Jesse Logo\" data-v-9d7d34a0><img class=\"hidden dark:block h-32 w-auto relative z-10\" src=\"'+zj+'\" alt=\"Jesse Logo\" data-v-9d7d34a0></div>',1)),q(\"div\",jpt,[q(\"div\",Kpt,[o[0]||(o[0]=z1('<div class=\"flex items-center justify-center space-x-3\" data-v-9d7d34a0><h1 class=\"text-2xl font-bold tracking-tight text-gray-900 dark:text-white\" data-v-9d7d34a0> Jesse </h1><div class=\"flex space-x-1.5 pt-1.5\" data-v-9d7d34a0><div class=\"w-2 h-2 rounded-full bg-primary-500 animate-bounce-custom-1\" data-v-9d7d34a0></div><div class=\"w-2 h-2 rounded-full bg-primary-500 animate-bounce-custom-2\" data-v-9d7d34a0></div><div class=\"w-2 h-2 rounded-full bg-primary-500 animate-bounce-custom-3\" data-v-9d7d34a0></div></div></div>',1)),q(\"p\",qpt,Ni(j(t)),1)]),o[1]||(o[1]=q(\"div\",{class:\"w-full max-w-[320px] h-3 bg-gray-100 dark:bg-gray-800 rounded-full mx-auto overflow-hidden shadow-inner relative\"},[q(\"div\",{class:\"h-full bg-primary-500 rounded-full animate-progress-indefinite shadow-[0_0_15px_rgba(79,70,229,0.4)] dark:shadow-[0_0_15px_rgba(249,181,55,0.3)]\"})],-1)),o[2]||(o[2]=q(\"p\",{class:\"text-xs text-gray-400 dark:text-gray-500 pt-4 opacity-0\"},\" Jesse Trading Framework \",-1))])])]))}}),Zpt=Js(Gpt,[[\"__scopeId\",\"data-v-9d7d34a0\"]]),Ypt=kt({props:{vnode:{type:Object,required:!0},route:{type:Object,required:!0},vnodeRef:Object,renderKey:String,trackRootNodes:Boolean},setup(n){const e=n.renderKey,t=n.route,i={};for(const s in n.route)Object.defineProperty(i,s,{get:()=>e===n.renderKey?n.route[s]:t[s],enumerable:!0});return os(nl,Kf(i)),()=>$i(n.vnode,{ref:n.vnodeRef})}}),Xpt=kt({name:\"NuxtPage\",inheritAttrs:!1,props:{name:{type:String},transition:{type:[Boolean,Object],default:void 0},keepalive:{type:[Boolean,Object],default:void 0},route:{type:Object},pageKey:{type:[Function,String],default:null}},setup(n,{attrs:e,slots:t,expose:i}){const s=In(),o=Ue(),r=Ui(nl,null);let a;i({pageRef:o});const l=Ui(Ooe,null);let c;const d=s.deferHydration();if(s.isHydrating){const u=s.hooks.hookOnce(\"app:error\",d);Fr().beforeEach(u)}return n.pageKey&&Dn(()=>n.pageKey,(u,h)=>{u!==h&&s.callHook(\"page:loading:start\")}),()=>$i(ure,{name:n.name,route:n.route,...e},{default:u=>{const h=Jpt(r,u.route,u.Component),f=r&&r.matched.length===u.route.matched.length;if(!u.Component){if(c&&!f)return c;d();return}if(c&&l&&!l.isCurrent(u.route))return c;if(h&&r&&(!l||l!=null&&l.isCurrent(r)))return f?c:null;const g=W8(u,n.pageKey);!s.isHydrating&&!emt(r,u.route,u.Component)&&a===g&&s.callHook(\"page:loading:end\"),a=g;const p=!!(n.transition??u.route.meta.pageTransition??L8),_=p&&Qpt([n.transition,u.route.meta.pageTransition,L8,{onAfterLeave:()=>{s.callHook(\"page:transition:finish\",u.Component)}}].filter(Boolean)),b=n.keepalive??u.route.meta.keepalive??Gke;return c=hre(o0,p&&_,LEe(b,$i(hV,{suspensible:!0,onPending:()=>s.callHook(\"page:start\",u.Component),onResolve:()=>{Go(()=>s.callHook(\"page:finish\",u.Component).then(()=>s.callHook(\"page:loading:end\")).finally(d))}},{default:()=>{const w=$i(Ypt,{key:g||void 0,vnode:t.default?$i(Bi,void 0,t.default(u)):u.Component,route:u.route,renderKey:g||void 0,trackRootNodes:p,vnodeRef:o});return b&&(w.type.name=u.Component.type.name||u.Component.type.__name||\"RouteProvider\"),w}}))).default(),c}})}});function Qpt(n){const e=n.map(t=>({...t,onAfterLeave:t.onAfterLeave?kV(t.onAfterLeave):void 0}));return nD(...e)}function Jpt(n,e,t){if(!n)return!1;const i=e.matched.findIndex(s=>{var o;return((o=s.components)==null?void 0:o.default)===(t==null?void 0:t.type)});return!i||i===-1?!1:e.matched.slice(0,i).some((s,o)=>{var r,a,l;return((r=s.components)==null?void 0:r.default)!==((l=(a=n.matched[o])==null?void 0:a.components)==null?void 0:l.default)})||t&&W8({route:e,Component:t})!==W8({route:n,Component:t})}function emt(n,e,t){return n?e.matched.findIndex(s=>{var o;return((o=s.components)==null?void 0:o.default)===(t==null?void 0:t.type)})<e.matched.length-1:!1}const tmt=kt({name:\"LayoutLoader\",inheritAttrs:!1,props:{name:String,layoutProps:Object},async setup(n,e){const t=await Hp[n.name]().then(i=>i.default||i);return()=>$i(t,n.layoutProps,e.slots)}}),imt=kt({name:\"NuxtLayout\",inheritAttrs:!1,props:{name:{type:[String,Boolean,Object],default:null},fallback:{type:[String,Object],default:null}},setup(n,e){const t=In(),i=Ui(nl),s=i===ZR()?SEe():i,o=ue(()=>{let l=j(n.name)??s.meta.layout??\"default\";return l&&!(l in Hp)&&n.fallback&&(l=j(n.fallback)),l}),r=Ue();e.expose({layoutRef:r});const a=t.deferHydration();if(t.isHydrating){const l=t.hooks.hookOnce(\"app:error\",a);Fr().beforeEach(l)}return()=>{const l=o.value&&o.value in Hp,c=s.meta.layoutTransition??qke;return hre(o0,l&&c,{default:()=>$i(hV,{suspensible:!0,onResolve:()=>{Go(a)}},{default:()=>$i(nmt,{layoutProps:an(e.attrs,{ref:r}),key:o.value||void 0,name:o.value,shouldProvide:!n.name,hasTransition:!!c},e.slots)})}).default()}}}),nmt=kt({name:\"NuxtLayoutProvider\",inheritAttrs:!1,props:{name:{type:[String,Boolean]},layoutProps:{type:Object},hasTransition:{type:Boolean},shouldProvide:{type:Boolean}},setup(n,e){const t=n.name;return n.shouldProvide&&os(Ooe,{isCurrent:i=>t===(i.meta.layout??\"default\")}),()=>{var i,s;return!t||typeof t==\"string\"&&!(t in Hp)?(s=(i=e.slots).default)==null?void 0:s.call(i):$i(tmt,{key:t,layoutProps:n.layoutProps,name:t},e.slots)}}}),J_=ha(Pi.ui.strategy,Pi.ui.avatar,Llt),smt=kt({components:{UIcon:ud},inheritAttrs:!1,props:{src:{type:[String,Boolean],default:null},alt:{type:String,default:null},text:{type:String,default:null},icon:{type:String,default:()=>J_.default.icon},size:{type:String,default:()=>J_.default.size,validator(n){return Object.keys(J_.size).includes(n)}},chipColor:{type:String,default:()=>J_.default.chipColor,validator(n){return[\"gray\",...Pi.ui.colors].includes(n)}},chipPosition:{type:String,default:()=>J_.default.chipPosition,validator(n){return Object.keys(J_.chip.position).includes(n)}},chipText:{type:[String,Number],default:null},imgClass:{type:String,default:\"\"},class:{type:[String,Object,Array],default:()=>\"\"},ui:{type:Object,default:()=>({})}},setup(n){const{ui:e,attrs:t}=Ua(\"avatar\",Ps(n,\"ui\"),J_),i=ue(()=>typeof n.src==\"boolean\"?null:n.src),s=ue(()=>(n.alt||\"\").split(\" \").map(u=>u.charAt(0)).join(\"\").substring(0,2)),o=ue(()=>ac(Vn(e.value.wrapper,(c.value||!i.value)&&e.value.background,e.value.rounded,e.value.size[n.size]),n.class)),r=ue(()=>ac(Vn(e.value.rounded,e.value.size[n.size]),n.imgClass)),a=ue(()=>Vn(e.value.icon.base,e.value.icon.size[n.size])),l=ue(()=>Vn(e.value.chip.base,e.value.chip.size[n.size],e.value.chip.position[n.chipPosition],e.value.chip.background.replaceAll(\"{color}\",n.chipColor))),c=Ue(!1);Dn(()=>n.src,()=>{c.value&&(c.value=!1)});function d(){c.value=!0}return{ui:e,attrs:t,wrapperClass:o,imgClass:r,iconClass:a,chipClass:l,url:i,placeholder:s,error:c,onError:d}}}),omt=[\"alt\",\"src\"];function rmt(n,e,t,i,s,o){const r=ud;return fe(),Re(\"span\",{class:st(n.wrapperClass)},[n.url&&!n.error?(fe(),Re(\"img\",an({key:0,class:n.imgClass,alt:n.alt,src:n.url},n.attrs,{onError:e[0]||(e[0]=(...a)=>n.onError&&n.onError(...a))}),null,16,omt)):n.text?(fe(),Re(\"span\",{key:1,class:st(n.ui.text)},Ni(n.text),3)):n.icon?(fe(),jt(r,{key:2,name:n.icon,class:st(n.iconClass)},null,8,[\"name\",\"class\"])):n.placeholder?(fe(),Re(\"span\",{key:3,class:st(n.ui.placeholder)},Ni(n.placeholder),3)):Bt(\"\",!0),n.chipColor?(fe(),Re(\"span\",{key:4,class:st(n.chipClass)},Ni(n.chipText),3)):Bt(\"\",!0),en(n.$slots,\"default\")],2)}const k_e=Js(smt,[[\"render\",rmt]]);function amt(n,e,t){let i=null;const{pause:s,resume:o,timestamp:r}=ETe({controls:!0}),a=Ue(null),l=ue(()=>a.value?e-(r.value-a.value):0);function c(...p){i=setTimeout(()=>{i=null,a.value=null,n(...p)},l.value)}function d(){i&&(clearTimeout(i),i=null)}function u(){a.value=Date.now(),c()}function h(){d(),s()}function f(){d(),s()}function g(){c(),o(),a.value=(a.value||0)+(Date.now()-r.value)}return u(),{start:u,stop:h,pause:f,resume:g,remaining:l}}const hS=ha(Pi.ui.strategy,Pi.ui.notification,Flt),lmt=kt({components:{UIcon:ud,UAvatar:k_e,UButton:jh},inheritAttrs:!1,props:{id:{type:[String,Number],required:!0},title:{type:String,default:null},description:{type:String,default:null},icon:{type:String,default:()=>hS.default.icon},avatar:{type:Object,default:null},closeButton:{type:Object,default:()=>hS.default.closeButton},timeout:{type:Number,default:()=>hS.default.timeout},actions:{type:Array,default:()=>[]},callback:{type:Function,default:null},color:{type:String,default:()=>hS.default.color,validator(n){return[\"gray\",...Pi.ui.colors].includes(n)}},class:{type:[String,Object,Array],default:()=>\"\"},ui:{type:Object,default:()=>({})}},emits:[\"close\"],setup(n,{emit:e}){const{ui:t,attrs:i}=Ua(\"notification\",Ps(n,\"ui\"),hS);let s=null;const o=Ue(n.timeout),r=ue(()=>{var g;return ac(Vn(t.value.wrapper,(g=t.value.background)==null?void 0:g.replaceAll(\"{color}\",n.color),t.value.rounded,t.value.shadow),n.class)}),a=ue(()=>{var g;return Vn(t.value.progress.base,(g=t.value.progress.background)==null?void 0:g.replaceAll(\"{color}\",n.color))}),l=ue(()=>({width:`${o.value/n.timeout*100||0}%`})),c=ue(()=>{var g;return Vn(t.value.icon.base,(g=t.value.icon.color)==null?void 0:g.replaceAll(\"{color}\",n.color))});function d(){s&&s.pause()}function u(){s&&s.resume()}function h(){s&&s.stop(),n.callback&&n.callback(),e(\"close\")}function f(g){s&&s.stop(),g.click&&g.click(),e(\"close\")}return cn(()=>{n.timeout&&(s=amt(()=>{h()},n.timeout),Qo(()=>{o.value=s.remaining.value}))}),uo(()=>{s&&s.stop()}),{ui:t,attrs:i,wrapperClass:r,progressClass:a,progressStyle:l,iconClass:c,onMouseover:d,onMouseleave:u,onClose:h,onAction:f,twMerge:ac}}});function cmt(n,e,t,i,s,o){const r=ud,a=k_e,l=jh;return fe(),jt(o0,an({appear:\"\"},n.ui.transition),{default:Be(()=>[q(\"div\",an({class:n.wrapperClass,role:\"status\"},n.attrs,{onMouseover:e[0]||(e[0]=(...c)=>n.onMouseover&&n.onMouseover(...c)),onMouseleave:e[1]||(e[1]=(...c)=>n.onMouseleave&&n.onMouseleave(...c))}),[q(\"div\",{class:st([n.ui.container,n.ui.rounded,n.ui.ring])},[q(\"div\",{class:st([\"flex\",[n.ui.padding,n.ui.gap,{\"items-start\":n.description||n.$slots.description,\"items-center\":!n.description&&!n.$slots.description}]])},[n.icon?(fe(),jt(r,{key:0,name:n.icon,class:st(n.iconClass)},null,8,[\"name\",\"class\"])):Bt(\"\",!0),n.avatar?(fe(),jt(a,an({key:1},{size:n.ui.avatar.size,...n.avatar},{class:n.ui.avatar.base}),null,16,[\"class\"])):Bt(\"\",!0),q(\"div\",{class:st(n.ui.inner)},[n.title||n.$slots.title?(fe(),Re(\"p\",{key:0,class:st(n.ui.title)},[en(n.$slots,\"title\",{title:n.title},()=>[at(Ni(n.title),1)])],2)):Bt(\"\",!0),n.description||n.$slots.description?(fe(),Re(\"p\",{key:1,class:st(n.twMerge(n.ui.description,!(n.title&&n.$slots.title)&&\"mt-0 leading-5\"))},[en(n.$slots,\"description\",{description:n.description},()=>[at(Ni(n.description),1)])],2)):Bt(\"\",!0),(n.description||n.$slots.description)&&n.actions.length?(fe(),Re(\"div\",{key:2,class:st(n.ui.actions)},[(fe(!0),Re(Bi,null,Ma(n.actions,(c,d)=>(fe(),jt(l,an({key:d,ref_for:!0},{...n.ui.default.actionButton||{},...c},{onClick:sN(u=>n.onAction(c),[\"stop\"])}),null,16,[\"onClick\"]))),128))],2)):Bt(\"\",!0)],2),n.closeButton||!n.description&&!n.$slots.description&&n.actions.length?(fe(),Re(\"div\",{key:2,class:st(n.twMerge(n.ui.actions,\"mt-0\"))},[!n.description&&!n.$slots.description&&n.actions.length?(fe(!0),Re(Bi,{key:0},Ma(n.actions,(c,d)=>(fe(),jt(l,an({key:d,ref_for:!0},{...n.ui.default.actionButton||{},...c},{onClick:sN(u=>n.onAction(c),[\"stop\"])}),null,16,[\"onClick\"]))),128)):Bt(\"\",!0),n.closeButton?(fe(),jt(l,an({key:1,\"aria-label\":\"Close\"},{...n.ui.default.closeButton||{},...n.closeButton},{onClick:sN(n.onClose,[\"stop\"])}),null,16,[\"onClick\"])):Bt(\"\",!0)],2)):Bt(\"\",!0)],2),n.timeout?(fe(),Re(\"div\",{key:0,class:st(n.progressClass),style:Im(n.progressStyle)},null,6)):Bt(\"\",!0)],2)],16)]),_:3},16)}const D_e=Js(lmt,[[\"render\",cmt]]),dmt=ha(Pi.ui.strategy,Pi.ui.notifications,Blt),umt=kt({components:{UNotification:D_e},inheritAttrs:!1,props:{class:{type:[String,Object,Array],default:()=>\"\"},ui:{type:Object,default:()=>({})}},setup(n){const{ui:e,attrs:t}=Ua(\"notifications\",Ps(n,\"ui\"),dmt),i=vpe(),s=Ew(\"notifications\",()=>[]),o=ue(()=>ac(Vn(e.value.wrapper,e.value.position,e.value.width),n.class));return{ui:e,attrs:t,toast:i,notifications:s,wrapperClass:o}}});function hmt(n,e,t,i,s,o){const r=D_e;return fe(),jt(Lse,{to:\"body\"},[q(\"div\",an({class:n.wrapperClass,role:\"region\"},n.attrs),[n.notifications.length?(fe(),Re(\"div\",{key:0,class:st(n.ui.container)},[(fe(!0),Re(Bi,null,Ma(n.notifications,a=>(fe(),Re(\"div\",{key:a.id},[te(r,an({ref_for:!0},a,{class:a.click&&\"cursor-pointer\",onClick:l=>a.click&&a.click(a),onClose:l=>n.toast.remove(a.id)}),oxe({_:2},[Ma(n.$slots,(l,c)=>({name:c,fn:Be(d=>[en(n.$slots,c,an({ref_for:!0},d))])}))]),1040,[\"class\",\"onClick\",\"onClose\"])]))),128))],2)):Bt(\"\",!0)],16)])}const fmt=Js(umt,[[\"render\",hmt]]),gmt=kt({__name:\"LiveStopConfirmModal\",setup(n){const e=dj();return(t,i)=>{const s=jh,o=Wj;return fe(),jt(o,{modelValue:j(e).showStopConfirmModal,\"onUpdate:modelValue\":i[0]||(i[0]=r=>j(e).showStopConfirmModal=r),title:\"Stop Session\",description:\"Are you sure you want to terminate this session?\",type:\"info\"},{default:Be(()=>[te(s,{variant:\"solid\",color:\"red\",block:\"\",class:\"sm:w-auto\",label:\"Terminate\",onClick:j(e).confirmStop},null,8,[\"onClick\"])]),_:1},8,[\"modelValue\"])}}}),pmt=Symbol.for(\"nuxt:client-only\"),mmt=kt({name:\"ClientOnly\",inheritAttrs:!1,props:[\"fallback\",\"placeholder\",\"placeholderTag\",\"fallbackTag\"],setup(n,{slots:e,attrs:t}){const i=Ue(!1);return cn(()=>{i.value=!0}),os(pmt,!0),s=>{var l;if(i.value)return(l=e.default)==null?void 0:l.call(e);const o=e.fallback||e.placeholder;if(o)return o();const r=s.fallback||s.placeholder||\"\",a=s.fallbackTag||s.placeholderTag||\"span\";return Re(a,t,r)}}}),Q3=new WeakMap;function O1t(n){if(Q3.has(n))return Q3.get(n);const e={...n};return e.render?e.render=(t,i,s,o,r,a)=>{var l;if(o.mounted$??t.mounted$){const c=(l=n.render)==null?void 0:l.bind(t)(t,i,s,o,r,a);return c.children===null||typeof c.children==\"string\"?nd(c):$i(c)}else{const c=mF(t._.vnode.el??null)??[\"<div></div>\"];return z1(c.join(\"\"),c.length)}}:e.template&&(e.template=`\n      <template v-if=\"mounted$\">${n.template}</template>\n      <template v-else><div></div></template>\n    `),e.setup=(t,i)=>{var l;const s=In(),o=Ue(s.isHydrating===!1),r=pc();if(s.isHydrating){const c={...r.attrs},d=_mt(r);for(const u in c)delete r.attrs[u];cn(()=>{Object.assign(r.attrs,c),r.vnode.dirs=d})}cn(()=>{o.value=!0});const a=((l=n.setup)==null?void 0:l.call(n,t,i))||{};return TEe(a)?Promise.resolve(a).then(c=>typeof c!=\"function\"?(c=c||{},c.mounted$=o,c):(...d)=>{if(o.value||!s.isHydrating){const u=c(...d);return u.children===null||typeof u.children==\"string\"?nd(u):$i(u)}else{const u=mF((r==null?void 0:r.vnode.el)??null)??[\"<div></div>\"];return z1(u.join(\"\"),u.length)}}):typeof a==\"function\"?(...c)=>{if(o.value)return $i(a(...c),i.attrs);const d=mF((r==null?void 0:r.vnode.el)??null)??[\"<div></div>\"];return z1(d.join(\"\"),d.length)}:Object.assign(a,{mounted$:o})},Q3.set(n,e),e}function _mt(n){if(!n||!n.vnode.dirs)return null;const e=n.vnode.dirs;return n.vnode.dirs=null,e}const vmt=d_(\"candles\",{state:()=>({forms:[{id:Wn.uuid(),start_date:\"2024-01-01\",exchange:\"\",symbol:\"\",executing:!1,waiting:!1,progressbar:{current:0,estimated_remaining_seconds:0},exception:{error:\"\",traceback:\"\"},alert:{message:\"\",type:\"\"}}],results:{infoLogs:\"\"},activeExchanges:new Set,existingCandles:[],updatingSymbols:new Set}),persist:{storage:eL.localStorage,pick:[\"forms\",\"results\",\"existingCandles\"]},actions:{async checkWaitingImports(n){const e=this.forms.find(t=>t.waiting&&t.executing&&t.exchange===n);e&&(e.waiting=!1,await this.start(e.id))},async start(n){const e=this.forms.find(t=>t.id===n);if(e){if(this.activeExchanges.has(e.exchange)){e.waiting=!0,e.executing=!0;return}this.activeExchanges.add(e.exchange),e.progressbar.current=0,e.executing=!0,e.exception.traceback=\"\",e.exception.error=\"\",e.alert.message=\"\";try{const{data:t,error:i}=await Ot(\"/candles/import\",{id:n,exchange:e.exchange,symbol:e.symbol,start_date:e.start_date},!0)}finally{e.executing||(this.activeExchanges.delete(e.exchange),await this.checkWaitingImports(e.exchange))}}},async cancel(n){const e=this.forms.find(r=>r.id===n);if(!e)return;const t=e.exchange,i=this.getSymbolKey(e.exchange,e.symbol);if(e.exception.error){e.executing=!1,e.exception.error=\"\",e.exception.traceback=\"\",this.updatingSymbols.delete(i);return}const{data:s,error:o}=await Ot(\"/candles/cancel-import\",{id:n},!0);e.executing=!1,e.waiting=!1,this.activeExchanges.delete(t),this.updatingSymbols.delete(i),e.exception.error=\"\",e.exception.traceback=\"\",e.alert.message=\"\",e.alert.type=\"\",await this.checkWaitingImports(t)},progressbarEvent(n,e){const t=this.forms.find(i=>i.id===n);t&&(t.progressbar=e)},alertEvent(n,e){const t=this.forms.find(i=>i.id===n);if(t){const i=t.exchange,s=this.getSymbolKey(t.exchange,t.symbol);t.alert=e,e.type!==\"info\"&&(t.executing=!1,this.activeExchanges.delete(i),this.updatingSymbols.delete(s),this.checkWaitingImports(i))}},exceptionEvent(n,e){const t=this.forms.find(i=>i.id===n);if(t){const i=this.getSymbolKey(t.exchange,t.symbol);t.exception.error=e.error,t.exception.traceback=e.traceback,t.executing=!1,t.waiting=!1,this.activeExchanges.has(t.exchange)&&this.activeExchanges.delete(t.exchange),this.updatingSymbols.delete(i)}},terminationEvent(n){const e=this.forms.find(t=>t.id===n);if(e!=null&&e.executing){const t=e.exchange,i=this.getSymbolKey(e.exchange,e.symbol);e.executing=!1,e.waiting=!1,this.activeExchanges.delete(t),this.updatingSymbols.delete(i),this.checkWaitingImports(t)}},infoLogEvent(n,e){this.results.infoLogs+=`[${Wn.timestampToTime(e.timestamp)}] ${e.message}\n`},createForm(n=\"\",e=\"\",t=\"2024-01-01\"){return{id:Wn.uuid(),exchange:n,symbol:e,start_date:t,executing:!1,waiting:!1,progressbar:{current:0,estimated_remaining_seconds:0},exception:{error:\"\",traceback:\"\"},alert:{message:\"\",type:\"\"}}},addImport(){const n=this.forms[this.forms.length-1];this.forms.push(this.createForm(n.exchange,n.symbol,n.start_date))},duplicateImport(n){const e=this.forms.indexOf(n);this.forms.splice(e+1,0,this.createForm(n.exchange,n.symbol,n.start_date))},async fetchExistingCandles(){const{data:n,error:e}=await Ot(\"/candles/existing\",{},!0);if(e.value)throw e.value;if(n.value){const t=n.value;this.existingCandles=t.data}else this.existingCandles=[]},async deleteCandles(n,e){const{data:t,error:i}=await Ot(\"/candles/delete\",{exchange:n,symbol:e},!0);if(i.value)throw i.value;if(!t.value)throw new Error(\"Failed to delete candles\");this.existingCandles=this.existingCandles.filter(s=>!(s.exchange===n&&s.symbol===e))},getSymbolKey(n,e){return`${n}-${e}`},isSymbolUpdating(n,e){return this.updatingSymbols.has(this.getSymbolKey(n,e))},async updateCandles(n,e,t){const i=this.getSymbolKey(n,e),s=this.createForm(n,e,t);this.forms.push(s),this.updatingSymbols.add(i),await this.start(s.id)}}});let J3=null;function bmt(){const n=tme(),e=vmt(),t=dj(),i=ime(),s=sme(),o={},r=(l,c)=>{o[l]=c},a=(l,c)=>{r(`livetrade.${l}`,c),r(`papertrade.${l}`,c)};return r(\"backtest.candles_info\",n.candlesInfoEvent),r(\"backtest.routes_info\",n.routesInfoEvent),r(\"backtest.progressbar\",n.progressbarEvent),r(\"backtest.metrics\",n.metricsEvent),r(\"backtest.trades\",n.tradesEvent),r(\"backtest.hyperparameters\",n.hyperparametersEvent),r(\"backtest.info_log\",n.infoLogEvent),r(\"backtest.equity_curve\",n.equityCurveEvent),r(\"backtest.exception\",n.exceptionEvent),r(\"backtest.general_info\",n.generalInfoEvent),r(\"backtest.termination\",n.terminationEvent),r(\"backtest.alert\",n.alertEvent),r(\"backtest.notification\",n.notificationEvent),r(\"backtest.candles_chart\",n.candlesChartEvent),r(\"backtest.orders_chart\",n.ordersChartEvent),r(\"backtest.add_line_to_candle_chart\",n.chartLinesEvent),r(\"backtest.add_extra_line_chart\",n.extraChartLinesEvent),r(\"backtest.add_horizontal_line_to_candle_chart\",n.horizontalChartLinesEvent),r(\"backtest.add_horizontal_line_to_extra_chart\",n.horizontalExtraChartLinesEvent),r(\"backtest.missing_candles\",n.missingCandlesEvent),r(\"candles.progressbar\",e.progressbarEvent),r(\"candles.alert\",e.alertEvent),r(\"candles.exception\",e.exceptionEvent),r(\"candles.termination\",e.terminationEvent),a(\"progressbar\",t.progressbarEvent),a(\"positions\",t.positionsEvent),a(\"orders\",t.ordersEvent),a(\"general_info\",t.generalInfoEvent),a(\"watch_list\",t.watchlistEvent),a(\"current_candles\",t.currentCandlesEvent),a(\"equity_snapshot\",t.equitySnapshotEvent),a(\"info_log\",t.infoLogEvent),a(\"error_log\",t.errorLogEvent),a(\"exception\",t.exceptionEvent),a(\"unexpectedTermination\",t.unexpectedTerminationEvent),a(\"termination\",t.terminationEvent),r(\"optimize.progressbar\",i.progressbarEvent),r(\"optimize.general_info\",i.generalInfoEvent),r(\"optimize.metrics\",i.metricsEvent),r(\"optimize.exception\",i.exceptionEvent),r(\"optimize.termination\",i.terminationEvent),r(\"optimize.alert\",i.alertEvent),r(\"optimize.best_candidates\",i.bestCandidatesEvent),r(\"optimize.log\",i.logEvent),r(\"optimize.objective_curve\",i.objectiveCurveEvent),r(\"monte-carlo.general_info\",s.generalInfoEvent),r(\"monte-carlo.candles_info\",s.candlesInfoEvent),r(\"monte-carlo.trades_progressbar\",s.tradesProgressbarEvent),r(\"monte-carlo.candles_progressbar\",s.candlesProgressbarEvent),r(\"monte-carlo.monte_carlo_trades_summary\",s.tradesSummaryEvent),r(\"monte-carlo.monte_carlo_candles_summary\",s.candlesSummaryEvent),r(\"monte-carlo.monte_carlo_trades_results\",s.tradesResultsEvent),r(\"monte-carlo.monte_carlo_candles_results\",s.candlesResultsEvent),r(\"monte-carlo.exception\",s.exceptionEvent),r(\"monte-carlo.termination\",s.terminationEvent),r(\"monte-carlo.alert\",s.alertEvent),r(\"monte-carlo.log\",s.logEvent),o}function Cmt(n){return J3||(J3=bmt()),J3[n]}function wmt(n){const e=atob(n),t=e.length,i=new Uint8Array(t);for(let s=0;s<t;s++)i[s]=e.charCodeAt(s);return i}const ymt=d_(\"socket\",{state:()=>({isConnected:!1,socket:null,reconnectInterval:2e3,reconnectAttempts:0}),actions:{handleError(n,e){console.error(n,e),Lt(\"error\",n)},initiate(){try{let n=\"\";Tm().public.appEnv===\"production\"?n=(window.location.protocol===\"https:\"?\"wss://\":\"ws://\")+window.location.host+\"/ws\":n=`${Tm().public.wsUrl}`,this.socket=new WebSocket(`${n}?token=${pi().authToken}`),this.socket.addEventListener(\"open\",()=>{var e;this.isConnected=!0,this.reconnectAttempts>0?Lt(\"success\",\"Reconnected to the websocket server\"):Lt(\"success\",\"Connected to the websocket server\"),this.reconnectAttempts=0,(e=this.socket)==null||e.addEventListener(\"message\",this.handleMessage)}),this.socket.addEventListener(\"close\",()=>{this.handleError(\"Websocket connection closed. Trying to reconnect...\",null),this.disconnect(),this.reconnect()}),this.reconnectAttempts===0&&this.socket.addEventListener(\"error\",e=>{this.handleError(\"An error occurred with the websocket\",e)})}catch(n){this.handleError(\"An error occurred while initiating the websocket connection\",n)}},disconnect(){var n;try{(n=this.socket)==null||n.close(),this.isConnected=!1,this.reconnectAttempts=0}catch(e){this.handleError(\"An error occurred while disconnecting the websocket connection\",e)}},reconnect(){try{this.reconnectAttempts<10?setTimeout(()=>{this.reconnectAttempts++,this.initiate()},this.reconnectInterval):this.handleError(\"Failed to reconnect to the websocket server\",null)}catch(n){this.handleError(\"An error occurred while reconnecting the websocket connection\",n)}},handleMessage(n){try{const e=JSON.parse(n.data);let t=e.data;if(e.is_compressed){const s=wmt(e.data),o=eme.inflate(s,{to:\"string\"});t=JSON.parse(o)}const i=Cmt(e.event);i&&i(e.id,t)}catch(e){this.handleError(\"Error parsing websocket message data:\",e)}}}}),Smt=kt({__name:\"app\",setup(n){pi().isInitiated=!1;const e=Ue(!1),t=Ue(!0),i=ue(()=>pi().settings),s=ue(()=>pi().authToken),o=ue(()=>Xu().initiated);return pi().isAuthenticated?(o.value&&(t.value=!1),ymt().initiate(),setTimeout(()=>{pi().initiate()},300)):(e.value=!0,Xu().initiated=!1),Dn(s,(r,a)=>{r!==a&&pi().initiate()}),Dn(o,r=>{r&&(t.value=!1)}),Dn(i,()=>{Xu().initiated&&pi().updateConfig()},{deep:!0}),cn(()=>{document.documentElement.classList.add(\"h-full\",\"bg-gray-50\"),document.body.classList.add(\"h-full\")}),(r,a)=>{const l=alt,c=Tpt,d=Vpt,u=Zpt,h=Xpt,f=imt,g=fmt,p=gmt,_=mmt;return fe(),jt(_,null,{default:Be(()=>[te(l),te(f,null,{default:Be(()=>[j(pi)().isAuthenticated?(fe(),jt(c,{key:0})):Bt(\"\",!0),j(e)?(fe(),jt(d,{key:1})):j(t)?(fe(),jt(u,{key:2})):(fe(),jt(h,{key:3}))]),_:1}),te(g),te(p)]),_:1})}}}),xmt={__name:\"nuxt-error-page\",props:{error:Object},setup(n){const t=n.error;t.stack&&t.stack.split(`\n`).splice(1).map(u=>({text:u.replace(\"webpack:/\",\"\").replace(\".vue\",\".js\").trim(),internal:u.includes(\"node_modules\")&&!u.includes(\".cache\")||u.includes(\"internal\")||u.includes(\"new Promise\")})).map(u=>`<span class=\"stack${u.internal?\" internal\":\"\"}\">${u.text}</span>`).join(`\n`);const i=Number(t.statusCode||500),s=i===404,o=t.statusMessage??(s?\"Page Not Found\":\"Internal Server Error\"),r=t.message||t.toString(),a=void 0,d=s?o2(()=>je(()=>import(\"./DQ5Sj-RJ.js\"),__vite__mapDeps([67,68]),import.meta.url)):o2(()=>je(()=>import(\"./CfBo882q.js\"),__vite__mapDeps([69,70]),import.meta.url));return(u,h)=>(fe(),jt(j(d),Ef(Zx({statusCode:j(i),statusMessage:j(o),description:j(r),stack:j(a)})),null,16))}},Lmt={key:0},qne={__name:\"nuxt-root\",setup(n){const e=()=>null,t=In(),i=t.deferHydration();if(t.isHydrating){const l=t.hooks.hookOnce(\"app:error\",i);Fr().beforeEach(l)}const s=!1;os(nl,ZR()),t.hooks.callHookWith(l=>l.map(c=>c()),\"vue:setup\");const o=YR(),r=!1;Pse((l,c,d)=>{if(t.hooks.callHook(\"vue:error\",l,c,d).catch(u=>console.error(\"[nuxt] Error in `vue:error` hook\",u)),pDe(l)&&(l.fatal||l.unhandled))return t.runWithContext(()=>d1(l)),!1});const a=!1;return(l,c)=>(fe(),jt(hV,{onResolve:j(i)},{default:Be(()=>[j(r)?(fe(),Re(\"div\",Lmt)):j(o)?(fe(),jt(j(xmt),{key:1,error:j(o)},null,8,[\"error\"])):j(a)?(fe(),jt(j(e),{key:2,context:j(a)},null,8,[\"context\"])):j(s)?(fe(),jt(Em(j(s)),{key:3})):(fe(),jt(j(Smt),{key:4}))]),_:1},8,[\"onResolve\"]))}};let Gne;{let n;Gne=async function(){var r,a;if(n)return n;const i=!!(((r=window.__NUXT__)==null?void 0:r.serverRendered)??((a=document.getElementById(\"__NUXT_DATA__\"))==null?void 0:a.dataset.ssr)===\"true\")?HLe(qne):WLe(qne),s=eDe({vueApp:i});async function o(l){await s.callHook(\"app:error\",l),s.payload.error=s.payload.error||XR(l)}i.config.errorHandler=o;try{await nDe(s,nlt)}catch(l){o(l)}try{await s.hooks.callHook(\"app:created\",i),await s.hooks.callHook(\"app:beforeMount\",i),i.mount(Xke),await s.hooks.callHook(\"app:mounted\",i),await Go()}catch(l){o(l)}return i.config.errorHandler===o&&(i.config.errorHandler=void 0),i},n=Gne().catch(e=>{throw console.error(\"Error while mounting app:\",e),e})}export{Mmt as $,dj as A,cn as B,Re as C,Cn as D,Bt as E,Bi as F,Ni as G,st as H,Vs as I,Wn as J,wt as K,cgt as L,Bgt as M,kme as N,Ma as O,sme as P,Js as Q,en as R,ime as S,Sg as T,Omt as U,nD as V,Jk as W,Im as X,hIe as Y,joe as Z,x_e as _,zgt as a,$i as a$,pi as a0,HD as a1,Phe as a2,y2 as a3,Fr as a4,vmt as a5,ZR as a6,Lre as a7,Ot as a8,d_e as a9,mS as aA,zi as aB,Ef as aC,In as aD,mhe as aE,sU as aF,Yst as aG,JR as aH,Jct as aI,Tmt as aJ,SEe as aK,dme as aL,Pmt as aM,fgt as aN,dlt as aO,kO as aP,ad as aQ,Qd as aR,os as aS,_i as aT,t0 as aU,hl as aV,dI as aW,Co as aX,Tdt as aY,Oo as aZ,o_ as a_,Wj as aa,x_ as ab,ud as ac,HSe as ad,Emt as ae,uI as af,c_e as ag,Ba as ah,Qo as ai,an as aj,ha as ak,k_e as al,Ua as am,Ps as an,ac as ao,Vn as ap,Pi as aq,sN as ar,_j as as,oy as at,Bmt as au,sy as av,Hj as aw,Rmt as ax,ume as ay,Wmt as az,tme as b,Gk as b0,ww as b1,Hn as b2,Sj as b3,Eme as b4,xj as b5,fc as b6,Ydt as b7,zdt as b8,$me as b9,tc as bA,yv as bB,xdt as bC,IO as bD,Sdt as bE,Mme as bF,Dme as bG,Wme as bH,Fme as bI,Edt as bJ,nd as bK,yj as bL,out as bM,aI as bN,Fmt as bO,Tlt as bP,M1t as bQ,je as bR,Xu as bS,Rme as ba,wj as bb,Cj as bc,Ui as bd,jS as be,PR as bf,jc as bg,o0 as bh,Ift as bi,bj,j0 as bk,z1 as bl,Amt as bm,nl as bn,d_ as bo,eL as bp,jl as bq,Nmt as br,Ws as bs,Tm as bt,llt as bu,ame as bv,Em as bw,Imt as bx,vC as by,lI as bz,ue as c,kt as d,jt as e,Be as f,fe as g,Pt as h,te as i,q as j,ub as k,mmt as l,eD as m,Go as n,uo as o,O1t as p,at as q,Ue as r,Lt as s,jh as t,c_ as u,RO as v,Dn as w,j as x,LO as y,L_e as z};\n"
  },
  {
    "path": "jesse/static/_nuxt/CUnW07Te.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Systemd Units\",\"name\":\"systemd\",\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\"^\\\\\\\\s*(InaccessableDirectories|InaccessibleDirectories|ReadOnlyDirectories|ReadWriteDirectories|Capabilities|TableId|UseDomainName|IPv6AcceptRouterAdvertisements|SysVStartPriority|StartLimitInterval|RequiresOverridable|RequisiteOverridable|PropagateReloadTo|PropagateReloadFrom|OnFailureIsolate|BindTo)\\\\\\\\s*(=)[ \\\\\\\\t]*\",\"beginCaptures\":{\"1\":{\"name\":\"invalid.deprecated\"},\"2\":{\"name\":\"keyword.operator.assignment\"}},\"end\":\"(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#variables\"},{\"include\":\"#quotedString\"},{\"include\":\"#booleans\"},{\"include\":\"#timeSpans\"},{\"include\":\"#sizes\"},{\"include\":\"#numbers\"}]},{\"begin\":\"^\\\\\\\\s*(Environment)\\\\\\\\s*(=)[ \\\\\\\\t]*\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag\"},\"2\":{\"name\":\"keyword.operator.assignment\"}},\"end\":\"(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n\",\"name\":\"meta.config-entry.systemd\",\"patterns\":[{\"include\":\"#comments\"},{\"captures\":{\"1\":{\"name\":\"variable.parameter\"},\"2\":{\"name\":\"keyword.operator.assignment\"}},\"match\":\"(?<=\\\\\\\\G|[\\\\\\\\s\\\\\"'])([A-Za-z0-9\\\\\\\\_]+)(=)(?=[^\\\\\\\\s\\\\\"'])\"},{\"include\":\"#variables\"},{\"include\":\"#booleans\"},{\"include\":\"#numbers\"}]},{\"begin\":\"^\\\\\\\\s*(OnCalendar)\\\\\\\\s*(=)[ \\\\\\\\t]*\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag\"},\"2\":{\"name\":\"keyword.operator.assignment\"}},\"end\":\"(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n\",\"name\":\"meta.config-entry.systemd\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#variables\"},{\"include\":\"#calendarShorthands\"},{\"include\":\"#numbers\"}]},{\"begin\":\"^\\\\\\\\s*(CapabilityBoundingSet|AmbientCapabilities|AddCapability|DropCapability)\\\\\\\\s*(=)[ \\\\\\\\t]*\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag\"},\"2\":{\"name\":\"keyword.operator.assignment\"}},\"end\":\"(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n\",\"name\":\"meta.config-entry.systemd\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#capabilities\"}]},{\"begin\":\"^\\\\\\\\s*(Restart)\\\\\\\\s*(=)[ \\\\\\\\t]*\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag\"},\"2\":{\"name\":\"keyword.operator.assignment\"}},\"end\":\"(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n\",\"name\":\"meta.config-entry.systemd\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#variables\"},{\"include\":\"#restartOptions\"}]},{\"begin\":\"^\\\\\\\\s*(Type)\\\\\\\\s*(=)[ \\\\\\\\t]*\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag\"},\"2\":{\"name\":\"keyword.operator.assignment\"}},\"end\":\"(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n\",\"name\":\"meta.config-entry.systemd\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#variables\"},{\"include\":\"#typeOptions\"}]},{\"begin\":\"^\\\\\\\\s*(Exec(?:Start(?:Pre|Post)?|Reload|Stop(?:Post)?))\\\\\\\\s*(=)[ \\\\\\\\t]*\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag\"},\"2\":{\"name\":\"keyword.operator.assignment\"}},\"end\":\"(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n\",\"name\":\"meta.config-entry.systemd\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#executablePrefixes\"},{\"include\":\"#variables\"},{\"include\":\"#quotedString\"},{\"include\":\"#booleans\"},{\"include\":\"#numbers\"}]},{\"begin\":\"^\\\\\\\\s*([\\\\\\\\w\\\\\\\\-\\\\\\\\.]+)\\\\\\\\s*(=)[ \\\\\\\\t]*\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag\"},\"2\":{\"name\":\"keyword.operator.assignment\"}},\"end\":\"(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n\",\"name\":\"meta.config-entry.systemd\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#variables\"},{\"include\":\"#quotedString\"},{\"include\":\"#booleans\"},{\"include\":\"#timeSpans\"},{\"include\":\"#sizes\"},{\"include\":\"#numbers\"}]},{\"include\":\"#sections\"}],\"repository\":{\"booleans\":{\"patterns\":[{\"match\":\"\\\\\\\\b(?<![-\\\\\\\\/\\\\\\\\.])(true|false|on|off|yes|no)(?![-\\\\\\\\/\\\\\\\\.])\\\\\\\\b\",\"name\":\"constant.language\"}]},\"calendarShorthands\":{\"patterns\":[{\"match\":\"\\\\\\\\b(?:minute|hour|dai|month|week|quarter|semiannual)ly\\\\\\\\b\",\"name\":\"constant.language\"}]},\"capabilities\":{\"patterns\":[{\"match\":\"\\\\\\\\b(?:CAP_(?:AUDIT_CONTROL|AUDIT_READ|AUDIT_WRITE|BLOCK_SUSPEND|BPF|CHECKPOINT_RESTORE|CHOWN|DAC_OVERRIDE|DAC_READ_SEARCH|FOWNER|FSETID|IPC_LOCK|IPC_OWNER|KILL|LEASE|LINUX_IMMUTABLE|MAC_ADMIN|MAC_OVERRIDE|MKNOD|NET_ADMIN|NET_BIND_SERVICE|NET_BROADCAST|NET_RAW|PERFMON|SETFCAP|SETGID|SETPCAP|SETUID|SYS_ADMIN|SYS_BOOT|SYS_CHROOT|SYS_MODULE|SYS_NICE|SYS_PACCT|SYS_PTRACE|SYS_RAWIO|SYS_RESOURCE|SYS_TIME|SYS_TTY_CONFIG|SYSLOG|WAKE_ALARM))\\\\\\\\b\",\"name\":\"constant.other.systemd\"}]},\"comments\":{\"patterns\":[{\"match\":\"^\\\\\\\\s*[#;].*\\\\\\\\n\",\"name\":\"comment.line.number-sign\"}]},\"executablePrefixes\":{\"patterns\":[{\"match\":\"\\\\\\\\G([@\\\\\\\\-\\\\\\\\:]+(?:\\\\\\\\+|\\\\\\\\!\\\\\\\\!?)?|(?:\\\\\\\\+|\\\\\\\\!\\\\\\\\!?)[@\\\\\\\\-\\\\\\\\:]*)\",\"name\":\"keyword.operator.prefix.systemd\"}]},\"numbers\":{\"patterns\":[{\"match\":\"(?<=\\\\\\\\s|=)\\\\\\\\d+(?:\\\\\\\\.\\\\\\\\d+)?(?=[\\\\\\\\s:]|$)\",\"name\":\"constant.numeric\"}]},\"quotedString\":{\"patterns\":[{\"begin\":\"(?<=\\\\\\\\G|\\\\\\\\s)'\",\"end\":\"['\\\\\\\\n]\",\"name\":\"string.quoted.single\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(?:[abfnrtvs\\\\\\\\\\\\\\\\\\\\\"'\\\\\\\\n]|x[0-9A-Fa-f]{2}|[0-8]{3}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})\",\"name\":\"constant.character.escape\"}]},{\"begin\":\"(?<=\\\\\\\\G|\\\\\\\\s)\\\\\"\",\"end\":\"[\\\\\"\\\\\\\\n]\",\"name\":\"string.quoted.double\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(?:[abfnrtvs\\\\\\\\\\\\\\\\\\\\\"'\\\\\\\\n]|x[0-9A-Fa-f]{2}|[0-8]{3}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})\",\"name\":\"constant.character.escape\"}]}]},\"restartOptions\":{\"patterns\":[{\"match\":\"\\\\\\\\b(no|always|on\\\\\\\\-(?:success|failure|abnormal|abort|watchdog))\\\\\\\\b\",\"name\":\"constant.language\"}]},\"sections\":{\"patterns\":[{\"match\":\"^\\\\\\\\s*\\\\\\\\[(Address|Automount|BFIFO|BandMultiQueueing|BareUDP|BatmanAdvanced|Bond|Bridge|BridgeFDB|BridgeMDB|BridgeVLAN|CAKE|CAN|ClassfulMultiQueueing|Container|Content|ControlledDelay|Coredump|D-BUS Service|DHCP|DHCPPrefixDelegation|DHCPServer|DHCPServerStaticLease|DHCPv4|DHCPv6|DHCPv6PrefixDelegation|DeficitRoundRobinScheduler|DeficitRoundRobinSchedulerClass|Distribution|EnhancedTransmissionSelection|Exec|FairQueueing|FairQueueingControlledDelay|Feature|Files|FlowQueuePIE|FooOverUDP|GENEVE|GenericRandomEarlyDetection|HeavyHitterFilter|HierarchyTokenBucket|HierarchyTokenBucketClass|Home|IOCost|IPVLAN|IPVTAP|IPoIB|IPv6AcceptRA|IPv6AddressLabel|IPv6PREF64Prefix|IPv6Prefix|IPv6PrefixDelegation|IPv6RoutePrefix|IPv6SendRA|Image|Install|Journal|Kube|L2TP|L2TPSession|LLDP|Link|Login|MACVLAN|MACVTAP|MACsec|MACsecReceiveAssociation|MACsecReceiveChannel|MACsecTransmitAssociation|Manager|Match|Mount|Neighbor|NetDev|Network|NetworkEmulator|NextHop|OOM|Output|PFIFO|PFIFOFast|PFIFOHeadDrop|PIE|PStore|Packages|Partition|Path|Peer|Pod|QDisc|Quadlet|QuickFairQueueing|QuickFairQueueingClass|Remote|Resolve|Route|RoutingPolicyRule|SR-IOV|Scope|Service|Sleep|Socket|Source|StochasticFairBlue|StochasticFairnessQueueing|Swap|Tap|Target|Time|Timer|TokenBucketFilter|TrafficControlQueueingDiscipline|Transfer|TrivialLinkEqualizer|Tun|Tunnel|UKI|Unit|Upload|VLAN|VRF|VXCAN|VXLAN|Volume|WLAN|WireGuard|WireGuardPeer|Xfrm)\\\\\\\\]\",\"name\":\"entity.name.section\"},{\"match\":\"\\\\\\\\s*\\\\\\\\[[\\\\\\\\w-]+\\\\\\\\]\",\"name\":\"entity.name.unknown-section\"}]},\"sizes\":{\"patterns\":[{\"match\":\"(?<=\\\\\\\\s|=)\\\\\\\\d+(?:\\\\\\\\.\\\\\\\\d+)?[KMGT](?=[\\\\\\\\s:]|$)\",\"name\":\"constant.numeric\"},{\"match\":\"(?<==)infinity(?=[\\\\\\\\s:]|$)\",\"name\":\"constant.numeric\"}]},\"timeSpans\":{\"patterns\":[{\"match\":\"\\\\\\\\b(?:\\\\\\\\d+(?:[uμ]s(?:ec)?|ms(?:ec)?|s(?:ec|econds?)?|m(?:in|inutes?)?|h(?:r|ours?)?|d(?:ays?)?|w(?:eeks)?|M|months?|y(?:ears?)?)){1,}\\\\\\\\b\",\"name\":\"constant.numeric\"}]},\"typeOptions\":{\"patterns\":[{\"match\":\"\\\\\\\\b(?:simple|exec|forking|oneshot|dbus|notify(?:-reload)?|idle|unicast|local|broadcast|anycast|multicast|blackhole|unreachable|prohibit|throw|nat|xresolve|blackhole|unreachable|prohibit|ad-hoc|station|ap(?:-vlan)?|wds|monitor|mesh-point|p2p-(?:client|go|device)|ocb|nan)\\\\\\\\b\",\"name\":\"constant.language\"}]},\"variables\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.systemd\"},\"2\":{\"name\":\"variable.other\"}},\"match\":\"(\\\\\\\\$)([A-Za-z0-9\\\\\\\\_]+)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.systemd\"},\"2\":{\"name\":\"variable.other\"},\"3\":{\"name\":\"punctuation.definition.variable.systemd\"}},\"match\":\"(\\\\\\\\$\\\\\\\\{)([A-Za-z0-9\\\\\\\\_]+)(\\\\\\\\})\"},{\"match\":\"%%\",\"name\":\"constant.other.placeholder\"},{\"match\":\"%[aAbBCEfgGhHiIjJlLmMnNopPsStTuUvVwW]\\\\\\\\b\",\"name\":\"constant.other.placeholder\"}]}},\"scopeName\":\"source.systemd\"}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CV9EbfTh.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e=[\"true\",\"false\"],t={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"],[\"<\",\">\"]],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"},{open:'\"',close:'\"',notIn:[\"string\"]},{open:\"'\",close:\"'\",notIn:[\"string\"]}],autoCloseBefore:`.,=}])>' \n\t`,indentationRules:{increaseIndentPattern:new RegExp(\"^((?!\\\\/\\\\/).)*(\\\\{[^}\\\"'`]*|\\\\([^)\\\"'`]*|\\\\[[^\\\\]\\\"'`]*)$\"),decreaseIndentPattern:new RegExp(\"^((?!.*?\\\\/\\\\*).*\\\\*/)?\\\\s*[\\\\}\\\\]].*$\")}},n={defaultToken:\"\",tokenPostfix:\".proto\",brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"}],symbols:/[=><!~?:&|+\\-*/^%]+/,keywords:[\"syntax\",\"import\",\"weak\",\"public\",\"package\",\"option\",\"repeated\",\"oneof\",\"map\",\"reserved\",\"to\",\"max\",\"enum\",\"message\",\"service\",\"rpc\",\"stream\",\"returns\",\"package\",\"optional\",\"true\",\"false\"],builtinTypes:[\"double\",\"float\",\"int32\",\"int64\",\"uint32\",\"uint64\",\"sint32\",\"sint64\",\"fixed32\",\"fixed64\",\"sfixed32\",\"sfixed64\",\"bool\",\"string\",\"bytes\"],operators:[\"=\",\"+\",\"-\"],namedLiterals:e,escapes:\"\\\\\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\\\\\|'|\\\\${)\",identifier:/[a-zA-Z]\\w*/,fullIdentifier:/@identifier(?:\\s*\\.\\s*@identifier)*/,optionName:/(?:@identifier|\\(\\s*@fullIdentifier\\s*\\))(?:\\s*\\.\\s*@identifier)*/,messageName:/@identifier/,enumName:/@identifier/,messageType:/\\.?\\s*(?:@identifier\\s*\\.\\s*)*@messageName/,enumType:/\\.?\\s*(?:@identifier\\s*\\.\\s*)*@enumName/,floatLit:/[0-9]+\\s*\\.\\s*[0-9]*(?:@exponent)?|[0-9]+@exponent|\\.[0-9]+(?:@exponent)?/,exponent:/[eE]\\s*[+-]?\\s*[0-9]+/,boolLit:/true\\b|false\\b/,decimalLit:/[1-9][0-9]*/,octalLit:/0[0-7]*/,hexLit:/0[xX][0-9a-fA-F]+/,type:/double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes|@messageType|@enumType/,keyType:/int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string/,tokenizer:{root:[{include:\"@whitespace\"},[/syntax/,\"keyword\"],[/=/,\"operators\"],[/;/,\"delimiter\"],[/(\")(proto3)(\")/,[\"string.quote\",\"string\",{token:\"string.quote\",switchTo:\"@topLevel.proto3\"}]],[/(\")(proto2)(\")/,[\"string.quote\",\"string\",{token:\"string.quote\",switchTo:\"@topLevel.proto2\"}]],[/.*?/,{token:\"\",switchTo:\"@topLevel.proto2\"}]],topLevel:[{include:\"@whitespace\"},{include:\"@constant\"},[/=/,\"operators\"],[/[;.]/,\"delimiter\"],[/@fullIdentifier/,{cases:{option:{token:\"keyword\",next:\"@option.$S2\"},enum:{token:\"keyword\",next:\"@enumDecl.$S2\"},message:{token:\"keyword\",next:\"@messageDecl.$S2\"},service:{token:\"keyword\",next:\"@serviceDecl.$S2\"},extend:{cases:{\"$S2==proto2\":{token:\"keyword\",next:\"@extendDecl.$S2\"}}},\"@keywords\":\"keyword\",\"@default\":\"identifier\"}}]],enumDecl:[{include:\"@whitespace\"},[/@identifier/,\"type.identifier\"],[/{/,{token:\"@brackets\",bracket:\"@open\",switchTo:\"@enumBody.$S2\"}]],enumBody:[{include:\"@whitespace\"},{include:\"@constant\"},[/=/,\"operators\"],[/;/,\"delimiter\"],[/option\\b/,\"keyword\",\"@option.$S2\"],[/@identifier/,\"identifier\"],[/\\[/,{token:\"@brackets\",bracket:\"@open\",next:\"@options.$S2\"}],[/}/,{token:\"@brackets\",bracket:\"@close\",next:\"@pop\"}]],messageDecl:[{include:\"@whitespace\"},[/@identifier/,\"type.identifier\"],[/{/,{token:\"@brackets\",bracket:\"@open\",switchTo:\"@messageBody.$S2\"}]],messageBody:[{include:\"@whitespace\"},{include:\"@constant\"},[/=/,\"operators\"],[/;/,\"delimiter\"],[\"(map)(s*)(<)\",[\"keyword\",\"white\",{token:\"@brackets\",bracket:\"@open\",next:\"@map.$S2\"}]],[/@identifier/,{cases:{option:{token:\"keyword\",next:\"@option.$S2\"},enum:{token:\"keyword\",next:\"@enumDecl.$S2\"},message:{token:\"keyword\",next:\"@messageDecl.$S2\"},oneof:{token:\"keyword\",next:\"@oneofDecl.$S2\"},extensions:{cases:{\"$S2==proto2\":{token:\"keyword\",next:\"@reserved.$S2\"}}},reserved:{token:\"keyword\",next:\"@reserved.$S2\"},\"(?:repeated|optional)\":{token:\"keyword\",next:\"@field.$S2\"},required:{cases:{\"$S2==proto2\":{token:\"keyword\",next:\"@field.$S2\"}}},\"$S2==proto3\":{token:\"@rematch\",next:\"@field.$S2\"}}}],[/\\[/,{token:\"@brackets\",bracket:\"@open\",next:\"@options.$S2\"}],[/}/,{token:\"@brackets\",bracket:\"@close\",next:\"@pop\"}]],extendDecl:[{include:\"@whitespace\"},[/@identifier/,\"type.identifier\"],[/{/,{token:\"@brackets\",bracket:\"@open\",switchTo:\"@extendBody.$S2\"}]],extendBody:[{include:\"@whitespace\"},{include:\"@constant\"},[/;/,\"delimiter\"],[/(?:repeated|optional|required)/,\"keyword\",\"@field.$S2\"],[/\\[/,{token:\"@brackets\",bracket:\"@open\",next:\"@options.$S2\"}],[/}/,{token:\"@brackets\",bracket:\"@close\",next:\"@pop\"}]],options:[{include:\"@whitespace\"},{include:\"@constant\"},[/;/,\"delimiter\"],[/@optionName/,\"annotation\"],[/[()]/,\"annotation.brackets\"],[/=/,\"operator\"],[/\\]/,{token:\"@brackets\",bracket:\"@close\",next:\"@pop\"}]],option:[{include:\"@whitespace\"},[/@optionName/,\"annotation\"],[/[()]/,\"annotation.brackets\"],[/=/,\"operator\",\"@pop\"]],oneofDecl:[{include:\"@whitespace\"},[/@identifier/,\"identifier\"],[/{/,{token:\"@brackets\",bracket:\"@open\",switchTo:\"@oneofBody.$S2\"}]],oneofBody:[{include:\"@whitespace\"},{include:\"@constant\"},[/;/,\"delimiter\"],[/(@identifier)(\\s*)(=)/,[\"identifier\",\"white\",\"delimiter\"]],[/@fullIdentifier|\\./,{cases:{\"@builtinTypes\":\"keyword\",\"@default\":\"type.identifier\"}}],[/\\[/,{token:\"@brackets\",bracket:\"@open\",next:\"@options.$S2\"}],[/}/,{token:\"@brackets\",bracket:\"@close\",next:\"@pop\"}]],reserved:[{include:\"@whitespace\"},[/,/,\"delimiter\"],[/;/,\"delimiter\",\"@pop\"],{include:\"@constant\"},[/to\\b|max\\b/,\"keyword\"]],map:[{include:\"@whitespace\"},[/@fullIdentifier|\\./,{cases:{\"@builtinTypes\":\"keyword\",\"@default\":\"type.identifier\"}}],[/,/,\"delimiter\"],[/>/,{token:\"@brackets\",bracket:\"@close\",switchTo:\"identifier\"}]],field:[{include:\"@whitespace\"},[\"group\",{cases:{\"$S2==proto2\":{token:\"keyword\",switchTo:\"@groupDecl.$S2\"}}}],[/(@identifier)(\\s*)(=)/,[\"identifier\",\"white\",{token:\"delimiter\",next:\"@pop\"}]],[/@fullIdentifier|\\./,{cases:{\"@builtinTypes\":\"keyword\",\"@default\":\"type.identifier\"}}]],groupDecl:[{include:\"@whitespace\"},[/@identifier/,\"identifier\"],[\"=\",\"operator\"],[/{/,{token:\"@brackets\",bracket:\"@open\",switchTo:\"@messageBody.$S2\"}],{include:\"@constant\"}],type:[{include:\"@whitespace\"},[/@identifier/,\"type.identifier\",\"@pop\"],[/./,\"delimiter\"]],identifier:[{include:\"@whitespace\"},[/@identifier/,\"identifier\",\"@pop\"]],serviceDecl:[{include:\"@whitespace\"},[/@identifier/,\"identifier\"],[/{/,{token:\"@brackets\",bracket:\"@open\",switchTo:\"@serviceBody.$S2\"}]],serviceBody:[{include:\"@whitespace\"},{include:\"@constant\"},[/;/,\"delimiter\"],[/option\\b/,\"keyword\",\"@option.$S2\"],[/rpc\\b/,\"keyword\",\"@rpc.$S2\"],[/\\[/,{token:\"@brackets\",bracket:\"@open\",next:\"@options.$S2\"}],[/}/,{token:\"@brackets\",bracket:\"@close\",next:\"@pop\"}]],rpc:[{include:\"@whitespace\"},[/@identifier/,\"identifier\"],[/\\(/,{token:\"@brackets\",bracket:\"@open\",switchTo:\"@request.$S2\"}],[/{/,{token:\"@brackets\",bracket:\"@open\",next:\"@methodOptions.$S2\"}],[/;/,\"delimiter\",\"@pop\"]],request:[{include:\"@whitespace\"},[/@messageType/,{cases:{stream:{token:\"keyword\",next:\"@type.$S2\"},\"@default\":\"type.identifier\"}}],[/\\)/,{token:\"@brackets\",bracket:\"@close\",switchTo:\"@returns.$S2\"}]],returns:[{include:\"@whitespace\"},[/returns\\b/,\"keyword\"],[/\\(/,{token:\"@brackets\",bracket:\"@open\",switchTo:\"@response.$S2\"}]],response:[{include:\"@whitespace\"},[/@messageType/,{cases:{stream:{token:\"keyword\",next:\"@type.$S2\"},\"@default\":\"type.identifier\"}}],[/\\)/,{token:\"@brackets\",bracket:\"@close\",switchTo:\"@rpc.$S2\"}]],methodOptions:[{include:\"@whitespace\"},{include:\"@constant\"},[/;/,\"delimiter\"],[\"option\",\"keyword\"],[/@optionName/,\"annotation\"],[/[()]/,\"annotation.brackets\"],[/=/,\"operator\"],[/}/,{token:\"@brackets\",bracket:\"@close\",next:\"@pop\"}]],comment:[[/[^\\/*]+/,\"comment\"],[/\\/\\*/,\"comment\",\"@push\"],[\"\\\\*/\",\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,{token:\"string.quote\",bracket:\"@close\",next:\"@pop\"}]],stringSingle:[[/[^\\\\']+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/'/,{token:\"string.quote\",bracket:\"@close\",next:\"@pop\"}]],constant:[[\"@boolLit\",\"keyword.constant\"],[\"@hexLit\",\"number.hex\"],[\"@octalLit\",\"number.octal\"],[\"@decimalLit\",\"number\"],[\"@floatLit\",\"number.float\"],[/(\"([^\"\\\\]|\\\\.)*|'([^'\\\\]|\\\\.)*)$/,\"string.invalid\"],[/\"/,{token:\"string.quote\",bracket:\"@open\",next:\"@string\"}],[/'/,{token:\"string.quote\",bracket:\"@open\",next:\"@stringSingle\"}],[/{/,{token:\"@brackets\",bracket:\"@open\",next:\"@prototext\"}],[/identifier/,\"identifier\"]],whitespace:[[/[ \\t\\r\\n]+/,\"white\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],prototext:[{include:\"@whitespace\"},{include:\"@constant\"},[/@identifier/,\"identifier\"],[/[:;]/,\"delimiter\"],[/}/,{token:\"@brackets\",bracket:\"@close\",next:\"@pop\"}]]}};export{t as conf,n as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/CVO1_9PV.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBorder\":\"#1c6b48\",\"activityBar.background\":\"#ffffff\",\"activityBar.border\":\"#f0f0f0\",\"activityBar.foreground\":\"#393a34\",\"activityBar.inactiveForeground\":\"#393a3450\",\"activityBarBadge.background\":\"#4e4f47\",\"activityBarBadge.foreground\":\"#ffffff\",\"badge.background\":\"#393a3490\",\"badge.foreground\":\"#ffffff\",\"breadcrumb.activeSelectionForeground\":\"#22222218\",\"breadcrumb.background\":\"#f7f7f7\",\"breadcrumb.focusForeground\":\"#393a34\",\"breadcrumb.foreground\":\"#6a737d\",\"breadcrumbPicker.background\":\"#ffffff\",\"button.background\":\"#1c6b48\",\"button.foreground\":\"#ffffff\",\"button.hoverBackground\":\"#1c6b48\",\"checkbox.background\":\"#f7f7f7\",\"checkbox.border\":\"#d1d5da\",\"debugToolBar.background\":\"#ffffff\",\"descriptionForeground\":\"#393a3490\",\"diffEditor.insertedTextBackground\":\"#1c6b4830\",\"diffEditor.removedTextBackground\":\"#ab595940\",\"dropdown.background\":\"#ffffff\",\"dropdown.border\":\"#f0f0f0\",\"dropdown.foreground\":\"#393a34\",\"dropdown.listBackground\":\"#f7f7f7\",\"editor.background\":\"#ffffff\",\"editor.findMatchBackground\":\"#e6cc7744\",\"editor.findMatchHighlightBackground\":\"#e6cc7766\",\"editor.focusedStackFrameHighlightBackground\":\"#fff5b1\",\"editor.foldBackground\":\"#22222210\",\"editor.foreground\":\"#393a34\",\"editor.inactiveSelectionBackground\":\"#22222210\",\"editor.lineHighlightBackground\":\"#f7f7f7\",\"editor.selectionBackground\":\"#22222218\",\"editor.selectionHighlightBackground\":\"#22222210\",\"editor.stackFrameHighlightBackground\":\"#fffbdd\",\"editor.wordHighlightBackground\":\"#1c6b4805\",\"editor.wordHighlightStrongBackground\":\"#1c6b4810\",\"editorBracketHighlight.foreground1\":\"#2993a3\",\"editorBracketHighlight.foreground2\":\"#1e754f\",\"editorBracketHighlight.foreground3\":\"#a65e2b\",\"editorBracketHighlight.foreground4\":\"#a13865\",\"editorBracketHighlight.foreground5\":\"#bda437\",\"editorBracketHighlight.foreground6\":\"#296aa3\",\"editorBracketMatch.background\":\"#1c6b4820\",\"editorError.foreground\":\"#ab5959\",\"editorGroup.border\":\"#f0f0f0\",\"editorGroupHeader.tabsBackground\":\"#ffffff\",\"editorGroupHeader.tabsBorder\":\"#f0f0f0\",\"editorGutter.addedBackground\":\"#1e754f\",\"editorGutter.commentRangeForeground\":\"#393a3450\",\"editorGutter.deletedBackground\":\"#ab5959\",\"editorGutter.foldingControlForeground\":\"#393a3490\",\"editorGutter.modifiedBackground\":\"#296aa3\",\"editorHint.foreground\":\"#1e754f\",\"editorIndentGuide.activeBackground\":\"#00000030\",\"editorIndentGuide.background\":\"#00000015\",\"editorInfo.foreground\":\"#296aa3\",\"editorInlayHint.background\":\"#f7f7f7\",\"editorInlayHint.foreground\":\"#999999\",\"editorLineNumber.activeForeground\":\"#4e4f47\",\"editorLineNumber.foreground\":\"#393a3450\",\"editorOverviewRuler.border\":\"#fff\",\"editorStickyScroll.background\":\"#f7f7f7\",\"editorStickyScrollHover.background\":\"#f7f7f7\",\"editorWarning.foreground\":\"#a65e2b\",\"editorWhitespace.foreground\":\"#00000015\",\"editorWidget.background\":\"#ffffff\",\"errorForeground\":\"#ab5959\",\"focusBorder\":\"#00000000\",\"foreground\":\"#393a34\",\"gitDecoration.addedResourceForeground\":\"#1e754f\",\"gitDecoration.conflictingResourceForeground\":\"#a65e2b\",\"gitDecoration.deletedResourceForeground\":\"#ab5959\",\"gitDecoration.ignoredResourceForeground\":\"#393a3450\",\"gitDecoration.modifiedResourceForeground\":\"#296aa3\",\"gitDecoration.submoduleResourceForeground\":\"#393a3490\",\"gitDecoration.untrackedResourceForeground\":\"#2993a3\",\"input.background\":\"#f7f7f7\",\"input.border\":\"#f0f0f0\",\"input.foreground\":\"#393a34\",\"input.placeholderForeground\":\"#393a3490\",\"inputOption.activeBackground\":\"#393a3450\",\"list.activeSelectionBackground\":\"#f7f7f7\",\"list.activeSelectionForeground\":\"#393a34\",\"list.focusBackground\":\"#f7f7f7\",\"list.highlightForeground\":\"#1c6b48\",\"list.hoverBackground\":\"#f7f7f7\",\"list.hoverForeground\":\"#393a34\",\"list.inactiveFocusBackground\":\"#ffffff\",\"list.inactiveSelectionBackground\":\"#f7f7f7\",\"list.inactiveSelectionForeground\":\"#393a34\",\"menu.separatorBackground\":\"#f0f0f0\",\"notificationCenterHeader.background\":\"#ffffff\",\"notificationCenterHeader.foreground\":\"#6a737d\",\"notifications.background\":\"#ffffff\",\"notifications.border\":\"#f0f0f0\",\"notifications.foreground\":\"#393a34\",\"notificationsErrorIcon.foreground\":\"#ab5959\",\"notificationsInfoIcon.foreground\":\"#296aa3\",\"notificationsWarningIcon.foreground\":\"#a65e2b\",\"panel.background\":\"#ffffff\",\"panel.border\":\"#f0f0f0\",\"panelInput.border\":\"#e1e4e8\",\"panelTitle.activeBorder\":\"#1c6b48\",\"panelTitle.activeForeground\":\"#393a34\",\"panelTitle.inactiveForeground\":\"#6a737d\",\"peekViewEditor.background\":\"#ffffff\",\"peekViewResult.background\":\"#ffffff\",\"pickerGroup.border\":\"#f0f0f0\",\"pickerGroup.foreground\":\"#393a34\",\"problemsErrorIcon.foreground\":\"#ab5959\",\"problemsInfoIcon.foreground\":\"#296aa3\",\"problemsWarningIcon.foreground\":\"#a65e2b\",\"progressBar.background\":\"#1c6b48\",\"quickInput.background\":\"#ffffff\",\"quickInput.foreground\":\"#393a34\",\"quickInputList.focusBackground\":\"#f7f7f7\",\"scrollbar.shadow\":\"#6a737d33\",\"scrollbarSlider.activeBackground\":\"#393a3450\",\"scrollbarSlider.background\":\"#393a3410\",\"scrollbarSlider.hoverBackground\":\"#393a3450\",\"settings.headerForeground\":\"#393a34\",\"settings.modifiedItemIndicator\":\"#1c6b48\",\"sideBar.background\":\"#ffffff\",\"sideBar.border\":\"#f0f0f0\",\"sideBar.foreground\":\"#4e4f47\",\"sideBarSectionHeader.background\":\"#ffffff\",\"sideBarSectionHeader.border\":\"#f0f0f0\",\"sideBarSectionHeader.foreground\":\"#393a34\",\"sideBarTitle.foreground\":\"#393a34\",\"statusBar.background\":\"#ffffff\",\"statusBar.border\":\"#f0f0f0\",\"statusBar.debuggingBackground\":\"#f7f7f7\",\"statusBar.debuggingForeground\":\"#4e4f47\",\"statusBar.foreground\":\"#4e4f47\",\"statusBar.noFolderBackground\":\"#ffffff\",\"statusBarItem.prominentBackground\":\"#f7f7f7\",\"tab.activeBackground\":\"#ffffff\",\"tab.activeBorder\":\"#f0f0f0\",\"tab.activeBorderTop\":\"#393a3490\",\"tab.activeForeground\":\"#393a34\",\"tab.border\":\"#f0f0f0\",\"tab.hoverBackground\":\"#f7f7f7\",\"tab.inactiveBackground\":\"#ffffff\",\"tab.inactiveForeground\":\"#6a737d\",\"tab.unfocusedActiveBorder\":\"#f0f0f0\",\"tab.unfocusedActiveBorderTop\":\"#f0f0f0\",\"tab.unfocusedHoverBackground\":\"#ffffff\",\"terminal.ansiBlack\":\"#121212\",\"terminal.ansiBlue\":\"#296aa3\",\"terminal.ansiBrightBlack\":\"#aaaaaa\",\"terminal.ansiBrightBlue\":\"#296aa3\",\"terminal.ansiBrightCyan\":\"#2993a3\",\"terminal.ansiBrightGreen\":\"#1e754f\",\"terminal.ansiBrightMagenta\":\"#a13865\",\"terminal.ansiBrightRed\":\"#ab5959\",\"terminal.ansiBrightWhite\":\"#dddddd\",\"terminal.ansiBrightYellow\":\"#bda437\",\"terminal.ansiCyan\":\"#2993a3\",\"terminal.ansiGreen\":\"#1e754f\",\"terminal.ansiMagenta\":\"#a13865\",\"terminal.ansiRed\":\"#ab5959\",\"terminal.ansiWhite\":\"#dbd7ca\",\"terminal.ansiYellow\":\"#bda437\",\"terminal.foreground\":\"#393a34\",\"terminal.selectionBackground\":\"#22222218\",\"textBlockQuote.background\":\"#ffffff\",\"textBlockQuote.border\":\"#f0f0f0\",\"textCodeBlock.background\":\"#ffffff\",\"textLink.activeForeground\":\"#1c6b48\",\"textLink.foreground\":\"#1c6b48\",\"textPreformat.foreground\":\"#586069\",\"textSeparator.foreground\":\"#d1d5da\",\"titleBar.activeBackground\":\"#ffffff\",\"titleBar.activeForeground\":\"#4e4f47\",\"titleBar.border\":\"#f7f7f7\",\"titleBar.inactiveBackground\":\"#ffffff\",\"titleBar.inactiveForeground\":\"#6a737d\",\"tree.indentGuidesStroke\":\"#e1e4e8\",\"welcomePage.buttonBackground\":\"#f6f8fa\",\"welcomePage.buttonHoverBackground\":\"#e1e4e8\"},\"displayName\":\"Vitesse Light\",\"name\":\"vitesse-light\",\"semanticHighlighting\":true,\"semanticTokenColors\":{\"class\":\"#5a6aa6\",\"interface\":\"#2e808f\",\"namespace\":\"#b05a78\",\"property\":\"#998418\",\"type\":\"#2e808f\"},\"tokenColors\":[{\"scope\":[\"comment\",\"punctuation.definition.comment\",\"string.comment\"],\"settings\":{\"foreground\":\"#a0ada0\"}},{\"scope\":[\"delimiter.bracket\",\"delimiter\",\"invalid.illegal.character-not-allowed-here.html\",\"keyword.operator.rest\",\"keyword.operator.spread\",\"keyword.operator.type.annotation\",\"keyword.operator.relational\",\"keyword.operator.assignment\",\"keyword.operator.type\",\"meta.brace\",\"meta.tag.block.any.html\",\"meta.tag.inline.any.html\",\"meta.tag.structure.input.void.html\",\"meta.type.annotation\",\"meta.embedded.block.github-actions-expression\",\"storage.type.function.arrow\",\"meta.objectliteral.ts\",\"punctuation\",\"punctuation.definition.string.begin.html.vue\",\"punctuation.definition.string.end.html.vue\"],\"settings\":{\"foreground\":\"#999999\"}},{\"scope\":[\"constant\",\"entity.name.constant\",\"variable.language\",\"meta.definition.variable\"],\"settings\":{\"foreground\":\"#a65e2b\"}},{\"scope\":[\"entity\",\"entity.name\"],\"settings\":{\"foreground\":\"#59873a\"}},{\"scope\":\"variable.parameter.function\",\"settings\":{\"foreground\":\"#393a34\"}},{\"scope\":[\"entity.name.tag\",\"tag.html\"],\"settings\":{\"foreground\":\"#1e754f\"}},{\"scope\":\"entity.name.function\",\"settings\":{\"foreground\":\"#59873a\"}},{\"scope\":[\"keyword\",\"storage.type.class.jsdoc\",\"punctuation.definition.template-expression\"],\"settings\":{\"foreground\":\"#1e754f\"}},{\"scope\":[\"storage\",\"storage.type\",\"support.type.builtin\",\"constant.language.undefined\",\"constant.language.null\",\"constant.language.import-export-all.ts\"],\"settings\":{\"foreground\":\"#ab5959\"}},{\"scope\":[\"text.html.derivative\",\"storage.modifier.package\",\"storage.modifier.import\",\"storage.type.java\"],\"settings\":{\"foreground\":\"#393a34\"}},{\"scope\":[\"string\",\"string punctuation.section.embedded source\",\"attribute.value\"],\"settings\":{\"foreground\":\"#b56959\"}},{\"scope\":[\"punctuation.definition.string\"],\"settings\":{\"foreground\":\"#b5695977\"}},{\"scope\":[\"punctuation.support.type.property-name\"],\"settings\":{\"foreground\":\"#99841877\"}},{\"scope\":\"support\",\"settings\":{\"foreground\":\"#998418\"}},{\"scope\":[\"property\",\"meta.property-name\",\"meta.object-literal.key\",\"entity.name.tag.yaml\",\"attribute.name\"],\"settings\":{\"foreground\":\"#998418\"}},{\"scope\":[\"entity.other.attribute-name\",\"invalid.deprecated.entity.other.attribute-name.html\"],\"settings\":{\"foreground\":\"#b07d48\"}},{\"scope\":[\"variable\",\"identifier\"],\"settings\":{\"foreground\":\"#b07d48\"}},{\"scope\":[\"support.type.primitive\",\"entity.name.type\"],\"settings\":{\"foreground\":\"#2e8f82\"}},{\"scope\":\"namespace\",\"settings\":{\"foreground\":\"#b05a78\"}},{\"scope\":[\"keyword.operator\",\"keyword.operator.assignment.compound\",\"meta.var.expr.ts\"],\"settings\":{\"foreground\":\"#ab5959\"}},{\"scope\":\"invalid.broken\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#b31d28\"}},{\"scope\":\"invalid.deprecated\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#b31d28\"}},{\"scope\":\"invalid.illegal\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#b31d28\"}},{\"scope\":\"invalid.unimplemented\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#b31d28\"}},{\"scope\":\"carriage-return\",\"settings\":{\"background\":\"#d73a49\",\"content\":\"^M\",\"fontStyle\":\"italic underline\",\"foreground\":\"#fafbfc\"}},{\"scope\":\"message.error\",\"settings\":{\"foreground\":\"#b31d28\"}},{\"scope\":\"string variable\",\"settings\":{\"foreground\":\"#b56959\"}},{\"scope\":[\"source.regexp\",\"string.regexp\"],\"settings\":{\"foreground\":\"#ab5e3f\"}},{\"scope\":[\"string.regexp.character-class\",\"string.regexp constant.character.escape\",\"string.regexp source.ruby.embedded\",\"string.regexp string.regexp.arbitrary-repitition\"],\"settings\":{\"foreground\":\"#b56959\"}},{\"scope\":\"string.regexp constant.character.escape\",\"settings\":{\"foreground\":\"#bda437\"}},{\"scope\":[\"support.constant\"],\"settings\":{\"foreground\":\"#a65e2b\"}},{\"scope\":[\"keyword.operator.quantifier.regexp\",\"constant.numeric\",\"number\"],\"settings\":{\"foreground\":\"#2f798a\"}},{\"scope\":[\"keyword.other.unit\"],\"settings\":{\"foreground\":\"#ab5959\"}},{\"scope\":[\"constant.language.boolean\",\"constant.language\"],\"settings\":{\"foreground\":\"#1e754f\"}},{\"scope\":\"meta.module-reference\",\"settings\":{\"foreground\":\"#1c6b48\"}},{\"scope\":\"punctuation.definition.list.begin.markdown\",\"settings\":{\"foreground\":\"#a65e2b\"}},{\"scope\":[\"markup.heading\",\"markup.heading entity.name\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#1c6b48\"}},{\"scope\":\"markup.quote\",\"settings\":{\"foreground\":\"#2e808f\"}},{\"scope\":\"markup.italic\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#393a34\"}},{\"scope\":\"markup.bold\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#393a34\"}},{\"scope\":\"markup.raw\",\"settings\":{\"foreground\":\"#1c6b48\"}},{\"scope\":[\"markup.deleted\",\"meta.diff.header.from-file\",\"punctuation.definition.deleted\"],\"settings\":{\"background\":\"#ffeef0\",\"foreground\":\"#b31d28\"}},{\"scope\":[\"markup.inserted\",\"meta.diff.header.to-file\",\"punctuation.definition.inserted\"],\"settings\":{\"background\":\"#f0fff4\",\"foreground\":\"#22863a\"}},{\"scope\":[\"markup.changed\",\"punctuation.definition.changed\"],\"settings\":{\"background\":\"#ffebda\",\"foreground\":\"#e36209\"}},{\"scope\":[\"markup.ignored\",\"markup.untracked\"],\"settings\":{\"background\":\"#005cc5\",\"foreground\":\"#f6f8fa\"}},{\"scope\":\"meta.diff.range\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#6f42c1\"}},{\"scope\":\"meta.diff.header\",\"settings\":{\"foreground\":\"#005cc5\"}},{\"scope\":\"meta.separator\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#005cc5\"}},{\"scope\":\"meta.output\",\"settings\":{\"foreground\":\"#005cc5\"}},{\"scope\":[\"brackethighlighter.tag\",\"brackethighlighter.curly\",\"brackethighlighter.round\",\"brackethighlighter.square\",\"brackethighlighter.angle\",\"brackethighlighter.quote\"],\"settings\":{\"foreground\":\"#586069\"}},{\"scope\":\"brackethighlighter.unmatched\",\"settings\":{\"foreground\":\"#b31d28\"}},{\"scope\":[\"constant.other.reference.link\",\"string.other.link\",\"punctuation.definition.string.begin.markdown\",\"punctuation.definition.string.end.markdown\"],\"settings\":{\"foreground\":\"#b56959\"}},{\"scope\":[\"markup.underline.link.markdown\",\"markup.underline.link.image.markdown\"],\"settings\":{\"fontStyle\":\"underline\",\"foreground\":\"#393a3490\"}},{\"scope\":[\"type.identifier\",\"constant.other.character-class.regexp\"],\"settings\":{\"foreground\":\"#5a6aa6\"}},{\"scope\":[\"entity.other.attribute-name.html.vue\"],\"settings\":{\"foreground\":\"#59873a\"}},{\"scope\":[\"invalid.illegal.unrecognized-tag.html\"],\"settings\":{\"fontStyle\":\"normal\"}}],\"type\":\"light\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CViTd9PT.js",
    "content": "import{C as e,g as r,j as a}from\"./CU_MfyYc.js\";function n(l,o){return r(),e(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 24 24\",fill:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[a(\"path\",{\"fill-rule\":\"evenodd\",d:\"M19.916 4.626a.75.75 0 0 1 .208 1.04l-9 13.5a.75.75 0 0 1-1.154.114l-6-6a.75.75 0 0 1 1.06-1.06l5.353 5.353 8.493-12.74a.75.75 0 0 1 1.04-.207Z\",\"clip-rule\":\"evenodd\"})])}function c(l,o){return r(),e(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 24 24\",fill:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[a(\"path\",{\"fill-rule\":\"evenodd\",d:\"M10.5 3A1.501 1.501 0 0 0 9 4.5h6A1.5 1.5 0 0 0 13.5 3h-3Zm-2.693.178A3 3 0 0 1 10.5 1.5h3a3 3 0 0 1 2.694 1.678c.497.042.992.092 1.486.15 1.497.173 2.57 1.46 2.57 2.929V19.5a3 3 0 0 1-3 3H6.75a3 3 0 0 1-3-3V6.257c0-1.47 1.073-2.756 2.57-2.93.493-.057.989-.107 1.487-.15Z\",\"clip-rule\":\"evenodd\"})])}export{c as a,n as r};\n"
  },
  {
    "path": "jesse/static/_nuxt/CVw76BM1.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"YAML\",\"fileTypes\":[\"yaml\",\"yml\",\"rviz\",\"reek\",\"clang-format\",\"yaml-tmlanguage\",\"syntax\",\"sublime-syntax\"],\"firstLineMatch\":\"^%YAML( ?1.\\\\\\\\d+)?\",\"name\":\"yaml\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#property\"},{\"include\":\"#directive\"},{\"match\":\"^---\",\"name\":\"entity.other.document.begin.yaml\"},{\"match\":\"^\\\\\\\\.{3}\",\"name\":\"entity.other.document.end.yaml\"},{\"include\":\"#node\"}],\"repository\":{\"block-collection\":{\"patterns\":[{\"include\":\"#block-sequence\"},{\"include\":\"#block-mapping\"}]},\"block-mapping\":{\"patterns\":[{\"include\":\"#block-pair\"}]},\"block-node\":{\"patterns\":[{\"include\":\"#prototype\"},{\"include\":\"#block-scalar\"},{\"include\":\"#block-collection\"},{\"include\":\"#flow-scalar-plain-out\"},{\"include\":\"#flow-node\"}]},\"block-pair\":{\"patterns\":[{\"begin\":\"\\\\\\\\?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.key-value.begin.yaml\"}},\"end\":\"(?=\\\\\\\\?)|^ *(:)|(:)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.key-value.mapping.yaml\"},\"2\":{\"name\":\"invalid.illegal.expected-newline.yaml\"}},\"name\":\"meta.block-mapping.yaml\",\"patterns\":[{\"include\":\"#block-node\"}]},{\"begin\":\"(?=(?:[^\\\\\\\\s[-?:,\\\\\\\\[\\\\\\\\]{}#&*!|>'\\\\\"%@\\`]]|[?:-]\\\\\\\\S)([^\\\\\\\\s:]|:\\\\\\\\S|\\\\\\\\s+(?![#\\\\\\\\s]))*\\\\\\\\s*:(\\\\\\\\s|$))\",\"end\":\"(?=\\\\\\\\s*$|\\\\\\\\s+\\\\\\\\#|\\\\\\\\s*:(\\\\\\\\s|$))\",\"patterns\":[{\"include\":\"#flow-scalar-plain-out-implicit-type\"},{\"begin\":\"[^\\\\\\\\s[-?:,\\\\\\\\[\\\\\\\\]{}#&*!|>'\\\\\"%@\\`]]|[?:-]\\\\\\\\S\",\"beginCaptures\":{\"0\":{\"name\":\"entity.name.tag.yaml\"}},\"contentName\":\"entity.name.tag.yaml\",\"end\":\"(?=\\\\\\\\s*$|\\\\\\\\s+\\\\\\\\#|\\\\\\\\s*:(\\\\\\\\s|$))\",\"name\":\"string.unquoted.plain.out.yaml\"}]},{\"match\":\":(?=\\\\\\\\s|$)\",\"name\":\"punctuation.separator.key-value.mapping.yaml\"}]},\"block-scalar\":{\"begin\":\"(?:(\\\\\\\\|)|(>))([1-9])?([-+])?(.*\\\\\\\\n?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.flow.block-scalar.literal.yaml\"},\"2\":{\"name\":\"keyword.control.flow.block-scalar.folded.yaml\"},\"3\":{\"name\":\"constant.numeric.indentation-indicator.yaml\"},\"4\":{\"name\":\"storage.modifier.chomping-indicator.yaml\"},\"5\":{\"patterns\":[{\"include\":\"#comment\"},{\"match\":\".+\",\"name\":\"invalid.illegal.expected-comment-or-newline.yaml\"}]}},\"end\":\"^(?=\\\\\\\\S)|(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"^([ ]+)(?! )\",\"end\":\"^(?!\\\\\\\\1|\\\\\\\\s*$)\",\"name\":\"string.unquoted.block.yaml\"}]},\"block-sequence\":{\"match\":\"(-)(?!\\\\\\\\S)\",\"name\":\"punctuation.definition.block.sequence.item.yaml\"},\"comment\":{\"begin\":\"(?:(^[ \\\\\\\\t]*)|[ \\\\\\\\t]+)(?=#\\\\\\\\p{Print}*$)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.yaml\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.yaml\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.number-sign.yaml\"}]},\"directive\":{\"begin\":\"^%\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.directive.begin.yaml\"}},\"end\":\"(?=$|[ \\\\\\\\t]+($|#))\",\"name\":\"meta.directive.yaml\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.directive.yaml.yaml\"},\"2\":{\"name\":\"constant.numeric.yaml-version.yaml\"}},\"match\":\"\\\\\\\\G(YAML)[ \\\\\\\\t]+(\\\\\\\\d+\\\\\\\\.\\\\\\\\d+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.directive.tag.yaml\"},\"2\":{\"name\":\"storage.type.tag-handle.yaml\"},\"3\":{\"name\":\"support.type.tag-prefix.yaml\"}},\"match\":\"\\\\\\\\G(TAG)(?:[ \\\\\\\\t]+((?:!(?:[0-9A-Za-z\\\\\\\\-]*!)?))(?:[ \\\\\\\\t]+(!(?:%[0-9A-Fa-f]{2}|[0-9A-Za-z\\\\\\\\-#;/?:@&=+$,_.!~*'()\\\\\\\\[\\\\\\\\]])*|(?![,!\\\\\\\\[\\\\\\\\]{}])(?:%[0-9A-Fa-f]{2}|[0-9A-Za-z\\\\\\\\-#;/?:@&=+$,_.!~*'()\\\\\\\\[\\\\\\\\]])+))?)?\"},{\"captures\":{\"1\":{\"name\":\"support.other.directive.reserved.yaml\"},\"2\":{\"name\":\"string.unquoted.directive-name.yaml\"},\"3\":{\"name\":\"string.unquoted.directive-parameter.yaml\"}},\"match\":\"\\\\\\\\G(\\\\\\\\w+)(?:[ \\\\\\\\t]+(\\\\\\\\w+)(?:[ \\\\\\\\t]+(\\\\\\\\w+))?)?\"},{\"match\":\"\\\\\\\\S+\",\"name\":\"invalid.illegal.unrecognized.yaml\"}]},\"flow-alias\":{\"captures\":{\"1\":{\"name\":\"keyword.control.flow.alias.yaml\"},\"2\":{\"name\":\"punctuation.definition.alias.yaml\"},\"3\":{\"name\":\"variable.other.alias.yaml\"},\"4\":{\"name\":\"invalid.illegal.character.anchor.yaml\"}},\"match\":\"((\\\\\\\\*))([^\\\\\\\\s\\\\\\\\[\\\\\\\\]/{/},]+)([^\\\\\\\\s\\\\\\\\]},]\\\\\\\\S*)?\"},\"flow-collection\":{\"patterns\":[{\"include\":\"#flow-sequence\"},{\"include\":\"#flow-mapping\"}]},\"flow-mapping\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.mapping.begin.yaml\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.mapping.end.yaml\"}},\"name\":\"meta.flow-mapping.yaml\",\"patterns\":[{\"include\":\"#prototype\"},{\"match\":\",\",\"name\":\"punctuation.separator.mapping.yaml\"},{\"include\":\"#flow-pair\"}]},\"flow-node\":{\"patterns\":[{\"include\":\"#prototype\"},{\"include\":\"#flow-alias\"},{\"include\":\"#flow-collection\"},{\"include\":\"#flow-scalar\"}]},\"flow-pair\":{\"patterns\":[{\"begin\":\"\\\\\\\\?\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.key-value.begin.yaml\"}},\"end\":\"(?=[},\\\\\\\\]])\",\"name\":\"meta.flow-pair.explicit.yaml\",\"patterns\":[{\"include\":\"#prototype\"},{\"include\":\"#flow-pair\"},{\"include\":\"#flow-node\"},{\"begin\":\":(?=\\\\\\\\s|$|[\\\\\\\\[\\\\\\\\]{},])\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.key-value.mapping.yaml\"}},\"end\":\"(?=[},\\\\\\\\]])\",\"patterns\":[{\"include\":\"#flow-value\"}]}]},{\"begin\":\"(?=(?:[^\\\\\\\\s[-?:,\\\\\\\\[\\\\\\\\]{}#&*!|>'\\\\\"%@\\`]]|[?:-][^\\\\\\\\s[\\\\\\\\[\\\\\\\\]{},]])([^\\\\\\\\s:[\\\\\\\\[\\\\\\\\]{},]]|:[^\\\\\\\\s[\\\\\\\\[\\\\\\\\]{},]]|\\\\\\\\s+(?![#\\\\\\\\s]))*\\\\\\\\s*:(\\\\\\\\s|$))\",\"end\":\"(?=\\\\\\\\s*$|\\\\\\\\s+\\\\\\\\#|\\\\\\\\s*:(\\\\\\\\s|$)|\\\\\\\\s*:[\\\\\\\\[\\\\\\\\]{},]|\\\\\\\\s*[\\\\\\\\[\\\\\\\\]{},])\",\"name\":\"meta.flow-pair.key.yaml\",\"patterns\":[{\"include\":\"#flow-scalar-plain-in-implicit-type\"},{\"begin\":\"[^\\\\\\\\s[-?:,\\\\\\\\[\\\\\\\\]{}#&*!|>'\\\\\"%@\\`]]|[?:-][^\\\\\\\\s[\\\\\\\\[\\\\\\\\]{},]]\",\"beginCaptures\":{\"0\":{\"name\":\"entity.name.tag.yaml\"}},\"contentName\":\"entity.name.tag.yaml\",\"end\":\"(?=\\\\\\\\s*$|\\\\\\\\s+\\\\\\\\#|\\\\\\\\s*:(\\\\\\\\s|$)|\\\\\\\\s*:[\\\\\\\\[\\\\\\\\]{},]|\\\\\\\\s*[\\\\\\\\[\\\\\\\\]{},])\",\"name\":\"string.unquoted.plain.in.yaml\"}]},{\"include\":\"#flow-node\"},{\"begin\":\":(?=\\\\\\\\s|$|[\\\\\\\\[\\\\\\\\]{},])\",\"captures\":{\"0\":{\"name\":\"punctuation.separator.key-value.mapping.yaml\"}},\"end\":\"(?=[},\\\\\\\\]])\",\"name\":\"meta.flow-pair.yaml\",\"patterns\":[{\"include\":\"#flow-value\"}]}]},\"flow-scalar\":{\"patterns\":[{\"include\":\"#flow-scalar-double-quoted\"},{\"include\":\"#flow-scalar-single-quoted\"},{\"include\":\"#flow-scalar-plain-in\"}]},\"flow-scalar-double-quoted\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.yaml\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.yaml\"}},\"name\":\"string.quoted.double.yaml\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\([0abtnvfre \\\\\"/\\\\\\\\\\\\\\\\N_Lp]|x\\\\\\\\d\\\\\\\\d|u\\\\\\\\d{4}|U\\\\\\\\d{8})\",\"name\":\"constant.character.escape.yaml\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\n\",\"name\":\"constant.character.escape.double-quoted.newline.yaml\"}]},\"flow-scalar-plain-in\":{\"patterns\":[{\"include\":\"#flow-scalar-plain-in-implicit-type\"},{\"begin\":\"[^\\\\\\\\s[-?:,\\\\\\\\[\\\\\\\\]{}#&*!|>'\\\\\"%@\\`]]|[?:-][^\\\\\\\\s[\\\\\\\\[\\\\\\\\]{},]]\",\"end\":\"(?=\\\\\\\\s*$|\\\\\\\\s+\\\\\\\\#|\\\\\\\\s*:(\\\\\\\\s|$)|\\\\\\\\s*:[\\\\\\\\[\\\\\\\\]{},]|\\\\\\\\s*[\\\\\\\\[\\\\\\\\]{},])\",\"name\":\"string.unquoted.plain.in.yaml\"}]},\"flow-scalar-plain-in-implicit-type\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.language.null.yaml\"},\"2\":{\"name\":\"constant.language.boolean.yaml\"},\"3\":{\"name\":\"constant.numeric.integer.yaml\"},\"4\":{\"name\":\"constant.numeric.float.yaml\"},\"5\":{\"name\":\"constant.other.timestamp.yaml\"},\"6\":{\"name\":\"constant.language.value.yaml\"},\"7\":{\"name\":\"constant.language.merge.yaml\"}},\"match\":\"(?:(null|Null|NULL|~)|(y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)|((?:[-+]?0b[0-1_]+|[-+]?0[0-7_]+|[-+]?(?:0|[1-9][0-9_]*)|[-+]?0x[0-9a-fA-F_]+|[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+))|((?:[-+]?(?:[0-9][0-9_]*)?\\\\\\\\.[0-9.]*(?:[eE][-+][0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\\\\\\\.[0-9_]*|[-+]?\\\\\\\\.(?:inf|Inf|INF)|\\\\\\\\.(?:nan|NaN|NAN)))|((?:\\\\\\\\d{4}-\\\\\\\\d{2}-\\\\\\\\d{2}|\\\\\\\\d{4}-\\\\\\\\d{1,2}-\\\\\\\\d{1,2}(?:[Tt]|[ \\\\\\\\t]+)\\\\\\\\d{1,2}:\\\\\\\\d{2}:\\\\\\\\d{2}(?:\\\\\\\\.\\\\\\\\d*)?(?:(?:[ \\\\\\\\t]*)Z|[-+]\\\\\\\\d{1,2}(?::\\\\\\\\d{1,2})?)?))|(=)|(<<))(?:(?=\\\\\\\\s*$|\\\\\\\\s+\\\\\\\\#|\\\\\\\\s*:(\\\\\\\\s|$)|\\\\\\\\s*:[\\\\\\\\[\\\\\\\\]{},]|\\\\\\\\s*[\\\\\\\\[\\\\\\\\]{},]))\"}]},\"flow-scalar-plain-out\":{\"patterns\":[{\"include\":\"#flow-scalar-plain-out-implicit-type\"},{\"begin\":\"[^\\\\\\\\s[-?:,\\\\\\\\[\\\\\\\\]{}#&*!|>'\\\\\"%@\\`]]|[?:-]\\\\\\\\S\",\"end\":\"(?=\\\\\\\\s*$|\\\\\\\\s+\\\\\\\\#|\\\\\\\\s*:(\\\\\\\\s|$))\",\"name\":\"string.unquoted.plain.out.yaml\"}]},\"flow-scalar-plain-out-implicit-type\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.language.null.yaml\"},\"2\":{\"name\":\"constant.language.boolean.yaml\"},\"3\":{\"name\":\"constant.numeric.integer.yaml\"},\"4\":{\"name\":\"constant.numeric.float.yaml\"},\"5\":{\"name\":\"constant.other.timestamp.yaml\"},\"6\":{\"name\":\"constant.language.value.yaml\"},\"7\":{\"name\":\"constant.language.merge.yaml\"}},\"match\":\"(?:(null|Null|NULL|~)|(y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)|((?:[-+]?0b[0-1_]+|[-+]?0[0-7_]+|[-+]?(?:0|[1-9][0-9_]*)|[-+]?0x[0-9a-fA-F_]+|[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+))|((?:[-+]?(?:[0-9][0-9_]*)?\\\\\\\\.[0-9.]*(?:[eE][-+][0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\\\\\\\.[0-9_]*|[-+]?\\\\\\\\.(?:inf|Inf|INF)|\\\\\\\\.(?:nan|NaN|NAN)))|((?:\\\\\\\\d{4}-\\\\\\\\d{2}-\\\\\\\\d{2}|\\\\\\\\d{4}-\\\\\\\\d{1,2}-\\\\\\\\d{1,2}(?:[Tt]|[ \\\\\\\\t]+)\\\\\\\\d{1,2}:\\\\\\\\d{2}:\\\\\\\\d{2}(?:\\\\\\\\.\\\\\\\\d*)?(?:(?:[ \\\\\\\\t]*)Z|[-+]\\\\\\\\d{1,2}(?::\\\\\\\\d{1,2})?)?))|(=)|(<<))(?:(?=\\\\\\\\s*$|\\\\\\\\s+\\\\\\\\#|\\\\\\\\s*:(\\\\\\\\s|$)))\"}]},\"flow-scalar-single-quoted\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.yaml\"}},\"end\":\"'(?!')\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.yaml\"}},\"name\":\"string.quoted.single.yaml\",\"patterns\":[{\"match\":\"''\",\"name\":\"constant.character.escape.single-quoted.yaml\"}]},\"flow-sequence\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.sequence.begin.yaml\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.sequence.end.yaml\"}},\"name\":\"meta.flow-sequence.yaml\",\"patterns\":[{\"include\":\"#prototype\"},{\"match\":\",\",\"name\":\"punctuation.separator.sequence.yaml\"},{\"include\":\"#flow-pair\"},{\"include\":\"#flow-node\"}]},\"flow-value\":{\"patterns\":[{\"begin\":\"\\\\\\\\G(?![},\\\\\\\\]])\",\"end\":\"(?=[},\\\\\\\\]])\",\"name\":\"meta.flow-pair.value.yaml\",\"patterns\":[{\"include\":\"#flow-node\"}]}]},\"node\":{\"patterns\":[{\"include\":\"#block-node\"}]},\"property\":{\"begin\":\"(?=!|&)\",\"end\":\"(?!\\\\\\\\G)\",\"name\":\"meta.property.yaml\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.property.anchor.yaml\"},\"2\":{\"name\":\"punctuation.definition.anchor.yaml\"},\"3\":{\"name\":\"entity.name.type.anchor.yaml\"},\"4\":{\"name\":\"invalid.illegal.character.anchor.yaml\"}},\"match\":\"\\\\\\\\G((&))([^\\\\\\\\s\\\\\\\\[\\\\\\\\]/{/},]+)(\\\\\\\\S+)?\"},{\"match\":\"\\\\\\\\G(?:!<(?:%[0-9A-Fa-f]{2}|[0-9A-Za-z\\\\\\\\-#;/?:@&=+$,_.!~*'()\\\\\\\\[\\\\\\\\]])+>|(?:!(?:[0-9A-Za-z\\\\\\\\-]*!)?)(?:%[0-9A-Fa-f]{2}|[0-9A-Za-z\\\\\\\\-#;/?:@&=+$_.~*'()])+|!)(?=\\\\\\\\ |\\\\\\\\t|$)\",\"name\":\"storage.type.tag-handle.yaml\"},{\"match\":\"\\\\\\\\S+\",\"name\":\"invalid.illegal.tag-handle.yaml\"}]},\"prototype\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#property\"}]}},\"scopeName\":\"source.yaml\",\"aliases\":[\"yml\"]}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CXKOl_mN.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},t={tokenPostfix:\".tcl\",specialFunctions:[\"set\",\"unset\",\"rename\",\"variable\",\"proc\",\"coroutine\",\"foreach\",\"incr\",\"append\",\"lappend\",\"linsert\",\"lreplace\"],mainFunctions:[\"if\",\"then\",\"elseif\",\"else\",\"case\",\"switch\",\"while\",\"for\",\"break\",\"continue\",\"return\",\"package\",\"namespace\",\"catch\",\"exit\",\"eval\",\"expr\",\"uplevel\",\"upvar\"],builtinFunctions:[\"file\",\"info\",\"concat\",\"join\",\"lindex\",\"list\",\"llength\",\"lrange\",\"lsearch\",\"lsort\",\"split\",\"array\",\"parray\",\"binary\",\"format\",\"regexp\",\"regsub\",\"scan\",\"string\",\"subst\",\"dict\",\"cd\",\"clock\",\"exec\",\"glob\",\"pid\",\"pwd\",\"close\",\"eof\",\"fblocked\",\"fconfigure\",\"fcopy\",\"fileevent\",\"flush\",\"gets\",\"open\",\"puts\",\"read\",\"seek\",\"socket\",\"tell\",\"interp\",\"after\",\"auto_execok\",\"auto_load\",\"auto_mkindex\",\"auto_reset\",\"bgerror\",\"error\",\"global\",\"history\",\"load\",\"source\",\"time\",\"trace\",\"unknown\",\"unset\",\"update\",\"vwait\",\"winfo\",\"wm\",\"bind\",\"event\",\"pack\",\"place\",\"grid\",\"font\",\"bell\",\"clipboard\",\"destroy\",\"focus\",\"grab\",\"lower\",\"option\",\"raise\",\"selection\",\"send\",\"tk\",\"tkwait\",\"tk_bisque\",\"tk_focusNext\",\"tk_focusPrev\",\"tk_focusFollowsMouse\",\"tk_popup\",\"tk_setPalette\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,brackets:[{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"}],escapes:/\\\\(?:[abfnrtv\\\\\"'\\[\\]\\{\\};\\$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,variables:/(?:\\$+(?:(?:\\:\\:?)?[a-zA-Z_]\\w*)+)/,tokenizer:{root:[[/[a-zA-Z_]\\w*/,{cases:{\"@specialFunctions\":{token:\"keyword.flow\",next:\"@specialFunc\"},\"@mainFunctions\":\"keyword\",\"@builtinFunctions\":\"variable\",\"@default\":\"operator.scss\"}}],[/\\s+\\-+(?!\\d|\\.)\\w*|{\\*}/,\"metatag\"],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"@brackets\"],[/@symbols/,\"operator\"],[/\\$+(?:\\:\\:)?\\{/,{token:\"identifier\",next:\"@nestedVariable\"}],[/@variables/,\"type.identifier\"],[/\\.(?!\\d|\\.)[\\w\\-]*/,\"operator.sql\"],[/\\d+(\\.\\d+)?/,\"number\"],[/\\d+/,\"number\"],[/;/,\"delimiter\"],[/\"/,{token:\"string.quote\",bracket:\"@open\",next:\"@dstring\"}],[/'/,{token:\"string.quote\",bracket:\"@open\",next:\"@sstring\"}]],dstring:[[/\\[/,{token:\"@brackets\",next:\"@nestedCall\"}],[/\\$+(?:\\:\\:)?\\{/,{token:\"identifier\",next:\"@nestedVariable\"}],[/@variables/,\"type.identifier\"],[/[^\\\\$\\[\\]\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\"/,{token:\"string.quote\",bracket:\"@close\",next:\"@pop\"}]],sstring:[[/\\[/,{token:\"@brackets\",next:\"@nestedCall\"}],[/\\$+(?:\\:\\:)?\\{/,{token:\"identifier\",next:\"@nestedVariable\"}],[/@variables/,\"type.identifier\"],[/[^\\\\$\\[\\]']+/,\"string\"],[/@escapes/,\"string.escape\"],[/'/,{token:\"string.quote\",bracket:\"@close\",next:\"@pop\"}]],whitespace:[[/[ \\t\\r\\n]+/,\"white\"],[/#.*\\\\$/,{token:\"comment\",next:\"@newlineComment\"}],[/#.*(?!\\\\)$/,\"comment\"]],newlineComment:[[/.*\\\\$/,\"comment\"],[/.*(?!\\\\)$/,{token:\"comment\",next:\"@pop\"}]],nestedVariable:[[/[^\\{\\}\\$]+/,\"type.identifier\"],[/\\}/,{token:\"identifier\",next:\"@pop\"}]],nestedCall:[[/\\[/,{token:\"@brackets\",next:\"@nestedCall\"}],[/\\]/,{token:\"@brackets\",next:\"@pop\"}],{include:\"root\"}],specialFunc:[[/\"/,{token:\"string\",next:\"@dstring\"}],[/'/,{token:\"string\",next:\"@sstring\"}],[/\\S+/,{token:\"type\",next:\"@pop\"}]]}};export{e as conf,t as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/CYFUjXW1.js",
    "content": "import e from\"./BMYPR7BL.js\";import n from\"./m4gc_qpA.js\";import t from\"./cPjAOO0u.js\";import a from\"./COK4E0Yg.js\";import r from\"./DjHMNizO.js\";import i from\"./BPhBrDlE.js\";import u from\"./BEhvmC7f.js\";import c from\"./C3t2pwGQ.js\";import o from\"./ySlJ1b_l.js\";import s from\"./atvbtKCR.js\";import d from\"./Dbxjm_CC.js\";import m from\"./CVw76BM1.js\";import\"./xI-RfyKK.js\";import\"./Dj6nwHGl.js\";import\"./BAng5TT0.js\";import\"./B6W0miNI.js\";import\"./DWJ3fJO_.js\";import\"./COyJrUc7.js\";const b=Object.freeze(JSON.parse(`{\"displayName\":\"Ruby\",\"name\":\"ruby\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.class.ruby\"},\"2\":{\"name\":\"entity.name.type.class.ruby\"},\"5\":{\"name\":\"punctuation.separator.namespace.ruby\"},\"7\":{\"name\":\"punctuation.separator.inheritance.ruby\"},\"8\":{\"name\":\"entity.other.inherited-class.ruby\"},\"11\":{\"name\":\"punctuation.separator.namespace.ruby\"}},\"comment\":\"class Namespace::ClassName < OtherNamespace::OtherClassName\",\"match\":\"\\\\b(class)\\\\\\\\s+(([a-zA-Z0-9_]+)((::)[a-zA-Z0-9_]+)*)\\\\\\\\s*((<)\\\\\\\\s*(([a-zA-Z0-9_]+)((::)[a-zA-Z0-9_]+)*))?\",\"name\":\"meta.class.ruby\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.module.ruby\"},\"2\":{\"name\":\"entity.name.type.module.ruby\"},\"5\":{\"name\":\"punctuation.separator.namespace.ruby\"}},\"match\":\"\\\\b(module)\\\\\\\\s+(([a-zA-Z0-9_]+)((::)[a-zA-Z0-9_]+)*)\",\"name\":\"meta.module.ruby\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.class.ruby\"},\"2\":{\"name\":\"punctuation.separator.inheritance.ruby\"}},\"match\":\"\\\\b(class)\\\\\\\\s*(<<)\\\\\\\\s*\",\"name\":\"meta.class.ruby\"},{\"comment\":\"else if is a common mistake carried over from other languages. it works if you put in a second end, but it’s never what you want.\",\"match\":\"(?<!\\\\\\\\.)\\\\\\\\belse(\\\\\\\\s)+if\\\\\\\\b\",\"name\":\"invalid.deprecated.ruby\"},{\"captures\":{\"1\":{\"name\":\"variable.ruby\"},\"3\":{\"name\":\"keyword.operator.assignment.augmented.ruby\"}},\"comment\":\"A local variable and/or assignment\",\"match\":\"^\\\\\\\\s*([a-z]([A-Za-z0-9_])*)\\\\\\\\s*((&&|\\\\\\\\|\\\\\\\\|)=)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.ruby\"},\"3\":{\"name\":\"variable.ruby\"},\"5\":{\"name\":\"keyword.operator.assignment.augmented.ruby\"}},\"comment\":\"A local variable and/or assignment in a condition\",\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(case|if|elsif|unless|until|while)\\\\\\\\b\\\\\\\\s*(\\\\\\\\()*?\\\\\\\\s*([a-z]([A-Za-z0-9_])*)\\\\\\\\s*((&&|\\\\\\\\|\\\\\\\\|)=)\"},{\"captures\":{\"1\":{\"name\":\"variable.ruby\"},\"3\":{\"name\":\"keyword.operator.assignment.augmented.ruby\"}},\"comment\":\"A local variable operation assignment (+=, -=, *=, /=)\",\"match\":\"^\\\\\\\\s*([a-z]([A-Za-z0-9_])*)\\\\\\\\s*((\\\\\\\\+|\\\\\\\\*|-|\\\\\\\\/|%|\\\\\\\\*\\\\\\\\*|&|\\\\\\\\||\\\\\\\\^|<<|>>)=)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.ruby\"},\"3\":{\"name\":\"variable.ruby\"},\"5\":{\"name\":\"keyword.operator.assignment.augmented.ruby\"}},\"comment\":\"A local variable operation assignment in a condition\",\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(case|if|elsif|unless|until|while)\\\\\\\\b\\\\\\\\s*(\\\\\\\\()*?\\\\\\\\s*([a-z]([A-Za-z0-9_])*)\\\\\\\\s*((\\\\\\\\+|\\\\\\\\*|-|\\\\\\\\/|%|\\\\\\\\*\\\\\\\\*|&|\\\\\\\\||\\\\\\\\^|<<|>>)=)\"},{\"captures\":{\"1\":{\"name\":\"variable.ruby\"}},\"comment\":\"A local variable assignment\",\"match\":\"^\\\\\\\\s*([a-z]([A-Za-z0-9_])*)\\\\\\\\s*=[^=>]\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.ruby\"},\"3\":{\"name\":\"variable.ruby\"}},\"comment\":\"A local variable assignment in a condition\",\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(case|if|elsif|unless|until|while)\\\\\\\\b\\\\\\\\s*(\\\\\\\\()*?\\\\\\\\s*([a-z]([A-Za-z0-9_])*)\\\\\\\\s*=[^=>]\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.constant.hashkey.ruby\"}},\"comment\":\"symbols as hash key (1.9 syntax)\",\"match\":\"(?>[a-zA-Z_]\\\\\\\\w*(?>[?!])?)(:)(?!:)\",\"name\":\"constant.language.symbol.hashkey.ruby\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.constant.ruby\"}},\"comment\":\"symbols as hash key (1.8 syntax)\",\"match\":\"(?<!:)(:)(?>[a-zA-Z_]\\\\\\\\w*(?>[?!])?)(?=\\\\\\\\s*=>)\",\"name\":\"constant.language.symbol.hashkey.ruby\"},{\"comment\":\"everything being a reserved word, not a value and needing a 'end' is a..\",\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(BEGIN|begin|case|class|else|elsif|END|end|ensure|for|if|in|module|rescue|then|unless|until|when|while)\\\\\\\\b(?![?!])\",\"name\":\"keyword.control.ruby\"},{\"comment\":\"contextual smart pair support for block parameters\",\"match\":\"(?<!\\\\\\\\.)\\\\\\\\bdo\\\\\\\\b\",\"name\":\"keyword.control.start-block.ruby\"},{\"comment\":\"contextual smart pair support\",\"match\":\"(?<={)(\\\\\\\\s+)\",\"name\":\"meta.syntax.ruby.start-block\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(alias|alias_method|break|next|redo|retry|return|super|undef|yield)\\\\\\\\b(?![?!])|\\\\\\\\bdefined\\\\\\\\?|\\\\\\\\b(block_given|iterator)\\\\\\\\?\",\"name\":\"keyword.control.pseudo-method.ruby\"},{\"match\":\"\\\\\\\\bnil\\\\\\\\b(?![?!])\",\"name\":\"constant.language.nil.ruby\"},{\"match\":\"\\\\\\\\b(true|false)\\\\\\\\b(?![?!])\",\"name\":\"constant.language.boolean.ruby\"},{\"match\":\"\\\\\\\\b(__(FILE|LINE)__)\\\\\\\\b(?![?!])\",\"name\":\"variable.language.ruby\"},{\"match\":\"\\\\\\\\bself\\\\\\\\b(?![?!])\",\"name\":\"variable.language.self.ruby\"},{\"comment\":\" everything being a method but having a special function is a..\",\"match\":\"\\\\\\\\b(initialize|new|loop|include|extend|prepend|raise|fail|attr_reader|attr_writer|attr_accessor|attr|catch|throw|private|private_class_method|module_function|public|public_class_method|protected|refine|using)\\\\\\\\b(?![?!])\",\"name\":\"keyword.other.special-method.ruby\"},{\"begin\":\"\\\\\\\\b(?<!\\\\\\\\.|::)(require|require_relative)\\\\\\\\b(?![?!])\",\"captures\":{\"1\":{\"name\":\"keyword.other.special-method.ruby\"}},\"end\":\"$|(?=#|})\",\"name\":\"meta.require.ruby\",\"patterns\":[{\"include\":\"$self\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.ruby\"}},\"match\":\"(@)[a-zA-Z_]\\\\\\\\w*\",\"name\":\"variable.other.readwrite.instance.ruby\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.ruby\"}},\"match\":\"(@@)[a-zA-Z_]\\\\\\\\w*\",\"name\":\"variable.other.readwrite.class.ruby\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.ruby\"}},\"match\":\"(\\\\\\\\$)[a-zA-Z_]\\\\\\\\w*\",\"name\":\"variable.other.readwrite.global.ruby\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.ruby\"}},\"match\":\"(\\\\\\\\$)(!|@|&|\\`|'|\\\\\\\\+|\\\\\\\\d+|~|=|/|\\\\\\\\\\\\\\\\|,|;|\\\\\\\\.|<|>|_|\\\\\\\\*|\\\\\\\\$|\\\\\\\\?|:|\\\\\"|-[0adFiIlpv])\",\"name\":\"variable.other.readwrite.global.pre-defined.ruby\"},{\"begin\":\"\\\\\\\\b(ENV)\\\\\\\\[\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.constant.ruby\"}},\"end\":\"]\",\"name\":\"meta.environment-variable.ruby\",\"patterns\":[{\"include\":\"$self\"}]},{\"match\":\"\\\\\\\\b[A-Z]\\\\\\\\w*(?=((\\\\\\\\.|::)[A-Za-z]|\\\\\\\\[))\",\"name\":\"support.class.ruby\"},{\"match\":\"\\\\\\\\b((abort|at_exit|autoload|binding|callcc|caller|caller_locations|chomp|chop|eval|exec|exit|fork|format|gets|global_variables|gsub|lambda|load|local_variables|open|p|print|printf|proc|putc|puts|rand|readline|readlines|select|set_trace_func|sleep|spawn|sprintf|srand|sub|syscall|system|test|trace_var|trap|untrace_var|warn)\\\\\\\\b(?![?!])|autoload\\\\\\\\?|exit!)\",\"name\":\"support.function.kernel.ruby\"},{\"match\":\"\\\\\\\\b[_A-Z]\\\\\\\\w*\\\\\\\\b\",\"name\":\"variable.other.constant.ruby\"},{\"begin\":\"(->)\\\\\\\\(\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.kernel.ruby\"}},\"comment\":\"Lambda parameters.\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"begin\":\"(?=[&*_a-zA-Z])\",\"end\":\"(?=[,)])\",\"patterns\":[{\"include\":\"#method_parameters\"}]},{\"include\":\"#method_parameters\"}]},{\"begin\":\"(?=def\\\\\\\\b)(?<=^|\\\\\\\\s)(def)\\\\\\\\s+((?>[a-zA-Z_]\\\\\\\\w*(?>\\\\\\\\.|::))?(?>[a-zA-Z_]\\\\\\\\w*(?>[?!]|=(?!>))?|===?|!=|>[>=]?|<=>|<[<=]?|[%&\\`/\\\\\\\\|]|\\\\\\\\*\\\\\\\\*?|=?~|[-+]@?|\\\\\\\\[]=?))\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.def.ruby\"},\"2\":{\"name\":\"entity.name.function.ruby\"},\"3\":{\"name\":\"punctuation.definition.parameters.ruby\"}},\"comment\":\"The method pattern comes from the symbol pattern. See there for an explanation.\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.ruby\"}},\"name\":\"meta.function.method.with-arguments.ruby\",\"patterns\":[{\"begin\":\"(?=[&*_a-zA-Z])\",\"end\":\"(?=[,)])\",\"patterns\":[{\"include\":\"#method_parameters\"}]},{\"include\":\"#method_parameters\"}]},{\"begin\":\"(?=def\\\\\\\\b)(?<=^|\\\\\\\\s)(def)\\\\\\\\s+((?>[a-zA-Z_]\\\\\\\\w*(?>\\\\\\\\.|::))?(?>[a-zA-Z_]\\\\\\\\w*(?>[?!]|=(?!>))?|===?|!=|>[>=]?|<=>|<[<=]?|[%&\\`/\\\\\\\\|]|\\\\\\\\*\\\\\\\\*?|=?~|[-+]@?|\\\\\\\\[]=?))[ \\\\\\\\t](?=[ \\\\\\\\t]*[^\\\\\\\\s#;])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.def.ruby\"},\"2\":{\"name\":\"entity.name.function.ruby\"}},\"comment\":\"same as the previous rule, but without parentheses around the arguments\",\"end\":\"(?=;)|(?<=[\\\\\\\\w\\\\\\\\])}\\`'\\\\\"!?])(?=\\\\\\\\s*#|\\\\\\\\s*$)\",\"name\":\"meta.function.method.with-arguments.ruby\",\"patterns\":[{\"begin\":\"(?=[&*_a-zA-Z])\",\"end\":\"(?=,|;|\\\\\\\\s*#|\\\\\\\\s*$)\",\"patterns\":[{\"include\":\"#method_parameters\"}]},{\"include\":\"#method_parameters\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.def.ruby\"},\"3\":{\"name\":\"entity.name.function.ruby\"}},\"comment\":\" the optional name is just to catch the def also without a method-name\",\"match\":\"(?=def\\\\\\\\b)(?<=^|\\\\\\\\s)(def)\\\\\\\\b(\\\\\\\\s+((?>[a-zA-Z_]\\\\\\\\w*(?>\\\\\\\\.|::))?(?>[a-zA-Z_]\\\\\\\\w*(?>[?!]|=(?!>))?|===?|!=|>[>=]?|<=>|<[<=]?|[%&\\`/\\\\\\\\|]|\\\\\\\\*\\\\\\\\*?|=?~|[-+]@?|\\\\\\\\[]=?)))?\",\"name\":\"meta.function.method.without-arguments.ruby\"},{\"match\":\"\\\\\\\\b([\\\\\\\\d](?>_?\\\\\\\\d)*(\\\\\\\\.(?![^[:space:][:digit:]])(?>_?\\\\\\\\d)*)?([eE][-+]?\\\\\\\\d(?>_?\\\\\\\\d)*)?|0(?:[xX]\\\\\\\\h(?>_?\\\\\\\\h)*|[oO]?[0-7](?>_?[0-7])*|[bB][01](?>_?[01])*|[dD]\\\\\\\\d(?>_?\\\\\\\\d)*))\\\\\\\\b\",\"name\":\"constant.numeric.ruby\"},{\"begin\":\":'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.symbol.begin.ruby\"}},\"comment\":\"symbol literal with '' delimiter\",\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.symbol.end.ruby\"}},\"name\":\"constant.language.symbol.ruby\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\['\\\\\\\\\\\\\\\\]\",\"name\":\"constant.character.escape.ruby\"}]},{\"begin\":\":\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.symbol.begin.ruby\"}},\"comment\":\"symbol literal with \\\\\"\\\\\" delimiter\",\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.symbol.end.ruby\"}},\"name\":\"constant.language.symbol.interpolated.ruby\",\"patterns\":[{\"include\":\"#interpolated_ruby\"},{\"include\":\"#escaped_char\"}]},{\"comment\":\"Needs higher precedence than regular expressions.\",\"match\":\"(?<!\\\\\\\\()/=\",\"name\":\"keyword.operator.assignment.augmented.ruby\"},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ruby\"}},\"comment\":\"string literal with '' delimiter\",\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ruby\"}},\"name\":\"string.quoted.single.ruby\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\'|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\"name\":\"constant.character.escape.ruby\"}]},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ruby\"}},\"comment\":\"string literal with interpolation and \\\\\"\\\\\" delimiter\",\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ruby\"}},\"name\":\"string.quoted.double.interpolated.ruby\",\"patterns\":[{\"include\":\"#interpolated_ruby\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"(?<!\\\\\\\\.)\\`\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ruby\"}},\"comment\":\"execute string (allows for interpolation)\",\"end\":\"\\`\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ruby\"}},\"name\":\"string.interpolated.ruby\",\"patterns\":[{\"include\":\"#interpolated_ruby\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"(?<![\\\\\\\\w)])((/))(?![?*+])(?=(?:\\\\\\\\\\\\\\\\/|[^/])*+/[eimnosux]*\\\\\\\\s*(?:[)\\\\\\\\]}#.,?:]|\\\\\\\\|\\\\\\\\||&&|<=>|=>|==|=~|!~|!=|;|$|if|else|elsif|then|do|end|unless|while|until|or|and)|$)\",\"captures\":{\"1\":{\"name\":\"string.regexp.interpolated.ruby\"},\"2\":{\"name\":\"punctuation.section.regexp.ruby\"}},\"comment\":\"regular expression literal with interpolation\",\"contentName\":\"string.regexp.interpolated.ruby\",\"end\":\"((/[eimnosux]*))\",\"patterns\":[{\"include\":\"#regex_sub\"}]},{\"begin\":\"%r{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.regexp.begin.ruby\"}},\"end\":\"}[eimnosux]*\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.regexp.end.ruby\"}},\"name\":\"string.regexp.interpolated.ruby\",\"patterns\":[{\"include\":\"#regex_sub\"},{\"include\":\"#nest_curly_r\"}]},{\"begin\":\"%r\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.regexp.begin.ruby\"}},\"end\":\"][eimnosux]*\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.regexp.end.ruby\"}},\"name\":\"string.regexp.interpolated.ruby\",\"patterns\":[{\"include\":\"#regex_sub\"},{\"include\":\"#nest_brackets_r\"}]},{\"begin\":\"%r\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.regexp.begin.ruby\"}},\"end\":\"\\\\\\\\)[eimnosux]*\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.regexp.end.ruby\"}},\"name\":\"string.regexp.interpolated.ruby\",\"patterns\":[{\"include\":\"#regex_sub\"},{\"include\":\"#nest_parens_r\"}]},{\"begin\":\"%r<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.regexp.begin.ruby\"}},\"end\":\">[eimnosux]*\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.regexp.end.ruby\"}},\"name\":\"string.regexp.interpolated.ruby\",\"patterns\":[{\"include\":\"#regex_sub\"},{\"include\":\"#nest_ltgt_r\"}]},{\"begin\":\"%r([^\\\\\\\\w])\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.regexp.begin.ruby\"}},\"end\":\"\\\\\\\\1[eimnosux]*\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.regexp.end.ruby\"}},\"name\":\"string.regexp.interpolated.ruby\",\"patterns\":[{\"include\":\"#regex_sub\"}]},{\"begin\":\"%I\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.array.begin.ruby\"}},\"end\":\"]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.array.end.ruby\"}},\"name\":\"constant.language.symbol.interpolated.ruby\",\"patterns\":[{\"include\":\"#interpolated_ruby\"},{\"include\":\"#escaped_char\"},{\"include\":\"#nest_brackets_i\"}]},{\"begin\":\"%I\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.array.begin.ruby\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.array.end.ruby\"}},\"name\":\"constant.language.symbol.interpolated.ruby\",\"patterns\":[{\"include\":\"#interpolated_ruby\"},{\"include\":\"#escaped_char\"},{\"include\":\"#nest_parens_i\"}]},{\"begin\":\"%I<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.array.begin.ruby\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.array.end.ruby\"}},\"name\":\"constant.language.symbol.interpolated.ruby\",\"patterns\":[{\"include\":\"#interpolated_ruby\"},{\"include\":\"#escaped_char\"},{\"include\":\"#nest_ltgt_i\"}]},{\"begin\":\"%I{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.array.begin.ruby\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.array.end.ruby\"}},\"name\":\"constant.language.symbol.interpolated.ruby\",\"patterns\":[{\"include\":\"#interpolated_ruby\"},{\"include\":\"#escaped_char\"},{\"include\":\"#nest_curly_i\"}]},{\"begin\":\"%I([^\\\\\\\\w])\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.array.begin.ruby\"}},\"end\":\"\\\\\\\\1\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.array.end.ruby\"}},\"name\":\"constant.language.symbol.interpolated.ruby\",\"patterns\":[{\"include\":\"#interpolated_ruby\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"%i\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.array.begin.ruby\"}},\"end\":\"]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.array.end.ruby\"}},\"name\":\"constant.language.symbol.ruby\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\"name\":\"constant.character.escape.ruby\"},{\"include\":\"#nest_brackets\"}]},{\"begin\":\"%i\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.array.begin.ruby\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.array.end.ruby\"}},\"name\":\"constant.language.symbol.ruby\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\)|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\"name\":\"constant.character.escape.ruby\"},{\"include\":\"#nest_parens\"}]},{\"begin\":\"%i<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.array.begin.ruby\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.array.end.ruby\"}},\"name\":\"constant.language.symbol.ruby\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\>|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\"name\":\"constant.character.escape.ruby\"},{\"include\":\"#nest_ltgt\"}]},{\"begin\":\"%i{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.array.begin.ruby\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.array.end.ruby\"}},\"name\":\"constant.language.symbol.ruby\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\}|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\"name\":\"constant.character.escape.ruby\"},{\"include\":\"#nest_curly\"}]},{\"begin\":\"%i([^\\\\\\\\w])\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.array.begin.ruby\"}},\"end\":\"\\\\\\\\1\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.array.end.ruby\"}},\"name\":\"constant.language.symbol.ruby\",\"patterns\":[{\"comment\":\"Cant be named because its not necessarily an escape.\",\"match\":\"\\\\\\\\\\\\\\\\.\"}]},{\"begin\":\"%W\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.array.begin.ruby\"}},\"end\":\"]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.array.end.ruby\"}},\"name\":\"string.quoted.other.interpolated.ruby\",\"patterns\":[{\"include\":\"#interpolated_ruby\"},{\"include\":\"#escaped_char\"},{\"include\":\"#nest_brackets_i\"}]},{\"begin\":\"%W\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.array.begin.ruby\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.array.end.ruby\"}},\"name\":\"string.quoted.other.interpolated.ruby\",\"patterns\":[{\"include\":\"#interpolated_ruby\"},{\"include\":\"#escaped_char\"},{\"include\":\"#nest_parens_i\"}]},{\"begin\":\"%W<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.array.begin.ruby\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.array.end.ruby\"}},\"name\":\"string.quoted.other.interpolated.ruby\",\"patterns\":[{\"include\":\"#interpolated_ruby\"},{\"include\":\"#escaped_char\"},{\"include\":\"#nest_ltgt_i\"}]},{\"begin\":\"%W{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.array.begin.ruby\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.array.end.ruby\"}},\"name\":\"string.quoted.other.interpolated.ruby\",\"patterns\":[{\"include\":\"#interpolated_ruby\"},{\"include\":\"#escaped_char\"},{\"include\":\"#nest_curly_i\"}]},{\"begin\":\"%W([^\\\\\\\\w])\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.array.begin.ruby\"}},\"end\":\"\\\\\\\\1\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.array.end.ruby\"}},\"name\":\"string.quoted.other.interpolated.ruby\",\"patterns\":[{\"include\":\"#interpolated_ruby\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"%w\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.array.begin.ruby\"}},\"end\":\"]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.array.end.ruby\"}},\"name\":\"string.quoted.other.ruby\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\"name\":\"constant.character.escape.ruby\"},{\"include\":\"#nest_brackets\"}]},{\"begin\":\"%w\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.array.begin.ruby\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.array.end.ruby\"}},\"name\":\"string.quoted.other.ruby\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\)|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\"name\":\"constant.character.escape.ruby\"},{\"include\":\"#nest_parens\"}]},{\"begin\":\"%w<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.array.begin.ruby\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.array.end.ruby\"}},\"name\":\"string.quoted.other.ruby\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\>|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\"name\":\"constant.character.escape.ruby\"},{\"include\":\"#nest_ltgt\"}]},{\"begin\":\"%w{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.array.begin.ruby\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.array.end.ruby\"}},\"name\":\"string.quoted.other.ruby\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\}|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\"name\":\"constant.character.escape.ruby\"},{\"include\":\"#nest_curly\"}]},{\"begin\":\"%w([^\\\\\\\\w])\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.array.begin.ruby\"}},\"end\":\"\\\\\\\\1\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.array.end.ruby\"}},\"name\":\"string.quoted.other.ruby\",\"patterns\":[{\"comment\":\"Cant be named because its not necessarily an escape.\",\"match\":\"\\\\\\\\\\\\\\\\.\"}]},{\"begin\":\"%[Qx]?\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ruby\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ruby\"}},\"name\":\"string.quoted.other.interpolated.ruby\",\"patterns\":[{\"include\":\"#interpolated_ruby\"},{\"include\":\"#escaped_char\"},{\"include\":\"#nest_parens_i\"}]},{\"begin\":\"%[Qx]?\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ruby\"}},\"end\":\"]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ruby\"}},\"name\":\"string.quoted.other.interpolated.ruby\",\"patterns\":[{\"include\":\"#interpolated_ruby\"},{\"include\":\"#escaped_char\"},{\"include\":\"#nest_brackets_i\"}]},{\"begin\":\"%[Qx]?{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ruby\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ruby\"}},\"name\":\"string.quoted.other.interpolated.ruby\",\"patterns\":[{\"include\":\"#interpolated_ruby\"},{\"include\":\"#escaped_char\"},{\"include\":\"#nest_curly_i\"}]},{\"begin\":\"%[Qx]?<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ruby\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ruby\"}},\"name\":\"string.quoted.other.interpolated.ruby\",\"patterns\":[{\"include\":\"#interpolated_ruby\"},{\"include\":\"#escaped_char\"},{\"include\":\"#nest_ltgt_i\"}]},{\"begin\":\"%[Qx]([^\\\\\\\\w])\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ruby\"}},\"end\":\"\\\\\\\\1\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ruby\"}},\"name\":\"string.quoted.other.interpolated.ruby\",\"patterns\":[{\"include\":\"#interpolated_ruby\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"%([^\\\\\\\\w\\\\\\\\s=])\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ruby\"}},\"end\":\"\\\\\\\\1\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ruby\"}},\"name\":\"string.quoted.other.interpolated.ruby\",\"patterns\":[{\"include\":\"#interpolated_ruby\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"%q\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ruby\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ruby\"}},\"name\":\"string.quoted.other.ruby\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\)|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\"name\":\"constant.character.escape.ruby\"},{\"include\":\"#nest_parens\"}]},{\"begin\":\"%q<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ruby\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ruby\"}},\"name\":\"string.quoted.other.ruby\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\>|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\"name\":\"constant.character.escape.ruby\"},{\"include\":\"#nest_ltgt\"}]},{\"begin\":\"%q\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ruby\"}},\"end\":\"]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ruby\"}},\"name\":\"string.quoted.other.ruby\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\"name\":\"constant.character.escape.ruby\"},{\"include\":\"#nest_brackets\"}]},{\"begin\":\"%q{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ruby\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ruby\"}},\"name\":\"string.quoted.other.ruby\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\}|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\"name\":\"constant.character.escape.ruby\"},{\"include\":\"#nest_curly\"}]},{\"begin\":\"%q([^\\\\\\\\w])\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ruby\"}},\"end\":\"\\\\\\\\1\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ruby\"}},\"name\":\"string.quoted.other.ruby\",\"patterns\":[{\"comment\":\"Cant be named because its not necessarily an escape.\",\"match\":\"\\\\\\\\\\\\\\\\.\"}]},{\"begin\":\"%s\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.symbol.begin.ruby\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.symbol.end.ruby\"}},\"name\":\"constant.language.symbol.ruby\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\)|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\"name\":\"constant.character.escape.ruby\"},{\"include\":\"#nest_parens\"}]},{\"begin\":\"%s<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.symbol.begin.ruby\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.symbol.end.ruby\"}},\"name\":\"constant.language.symbol.ruby\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\>|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\"name\":\"constant.character.escape.ruby\"},{\"include\":\"#nest_ltgt\"}]},{\"begin\":\"%s\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.symbol.begin.ruby\"}},\"end\":\"]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.symbol.end.ruby\"}},\"name\":\"constant.language.symbol.ruby\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\"name\":\"constant.character.escape.ruby\"},{\"include\":\"#nest_brackets\"}]},{\"begin\":\"%s{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.symbol.begin.ruby\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.symbol.end.ruby\"}},\"name\":\"constant.language.symbol.ruby\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\}|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\"name\":\"constant.character.escape.ruby\"},{\"include\":\"#nest_curly\"}]},{\"begin\":\"%s([^\\\\\\\\w])\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.symbol.begin.ruby\"}},\"end\":\"\\\\\\\\1\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.symbol.end.ruby\"}},\"name\":\"constant.language.symbol.ruby\",\"patterns\":[{\"comment\":\"Cant be named because its not necessarily an escape.\",\"match\":\"\\\\\\\\\\\\\\\\.\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.constant.ruby\"}},\"comment\":\"symbols\",\"match\":\"(?<!:)(:)(?>[$a-zA-Z_]\\\\\\\\w*(?>[?!]|=(?![>=]))?|===?|<=>|>[>=]?|<[<=]?|[%&\\`/\\\\\\\\|]|\\\\\\\\*\\\\\\\\*?|=?~|[-+]@?|\\\\\\\\[]=?|@@?[a-zA-Z_]\\\\\\\\w*)\",\"name\":\"constant.language.symbol.ruby\"},{\"begin\":\"^=begin\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.ruby\"}},\"comment\":\"multiline comments\",\"end\":\"^=end\",\"name\":\"comment.block.documentation.ruby\"},{\"include\":\"#yard\"},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.ruby\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.ruby\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.number-sign.ruby\"}]},{\"comment\":\"\\\\n\\\\t\\\\t\\\\tmatches questionmark-letters.\\\\n\\\\n\\\\t\\\\t\\\\texamples (1st alternation = hex):\\\\n\\\\t\\\\t\\\\t?\\\\\\\\x1     ?\\\\\\\\x61\\\\n\\\\n\\\\t\\\\t\\\\texamples (2nd alternation = octal):\\\\n\\\\t\\\\t\\\\t?\\\\\\\\0      ?\\\\\\\\07     ?\\\\\\\\017\\\\n\\\\n\\\\t\\\\t\\\\texamples (3rd alternation = escaped):\\\\n\\\\t\\\\t\\\\t?\\\\\\\\n      ?\\\\\\\\b\\\\n\\\\n\\\\t\\\\t\\\\texamples (4th alternation = meta-ctrl):\\\\n\\\\t\\\\t\\\\t?\\\\\\\\C-a    ?\\\\\\\\M-a    ?\\\\\\\\C-\\\\\\\\M-\\\\\\\\C-\\\\\\\\M-a\\\\n\\\\n\\\\t\\\\t\\\\texamples (4th alternation = normal):\\\\n\\\\t\\\\t\\\\t?a       ?A       ?0 \\\\n\\\\t\\\\t\\\\t?*       ?\\\\\"       ?( \\\\n\\\\t\\\\t\\\\t?.       ?#\\\\n\\\\t\\\\t\\\\t\\\\n\\\\t\\\\t\\\\t\\\\n\\\\t\\\\t\\\\tthe negative lookbehind prevents against matching\\\\n\\\\t\\\\t\\\\tp(42.tainted?)\\\\n\\\\t\\\\t\\\\t\",\"match\":\"(?<!\\\\\\\\w)\\\\\\\\?(\\\\\\\\\\\\\\\\(x\\\\\\\\h{1,2}(?!\\\\\\\\h)\\\\\\\\b|0[0-7]{0,2}(?![0-7])\\\\\\\\b|[^x0MC])|(\\\\\\\\\\\\\\\\[MC]-)+\\\\\\\\w|[^\\\\\\\\s\\\\\\\\\\\\\\\\])\",\"name\":\"constant.numeric.ruby\"},{\"begin\":\"^__END__\\\\\\\\n\",\"captures\":{\"0\":{\"name\":\"string.unquoted.program-block.ruby\"}},\"comment\":\"__END__ marker\",\"contentName\":\"text.plain\",\"end\":\"(?=not)impossible\",\"patterns\":[{\"begin\":\"(?=<?xml|<(?i:html\\\\\\\\b)|!DOCTYPE (?i:html\\\\\\\\b))\",\"end\":\"(?=not)impossible\",\"name\":\"text.html.embedded.ruby\",\"patterns\":[{\"include\":\"text.html.basic\"}]}]},{\"begin\":\"(?=(?><<[-~]([\\\\\"'\\`]?)((?:[_\\\\\\\\w]+_|)HTML)\\\\\\\\b\\\\\\\\1))\",\"comment\":\"Heredoc with embedded HTML\",\"end\":\"(?!\\\\\\\\G)\",\"name\":\"meta.embedded.block.html\",\"patterns\":[{\"begin\":\"(?><<[-~]([\\\\\"'\\`]?)((?:[_\\\\\\\\w]+_|)HTML)\\\\\\\\b\\\\\\\\1)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ruby\"}},\"contentName\":\"text.html\",\"end\":\"^\\\\\\\\s*\\\\\\\\2$\\\\\\\\n?\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ruby\"}},\"name\":\"string.unquoted.heredoc.ruby\",\"patterns\":[{\"include\":\"#heredoc\"},{\"include\":\"#interpolated_ruby\"},{\"include\":\"text.html.basic\"},{\"include\":\"#escaped_char\"}]}]},{\"begin\":\"(?=(?><<[-~]([\\\\\"'\\`]?)((?:[_\\\\\\\\w]+_|)HAML)\\\\\\\\b\\\\\\\\1))\",\"comment\":\"Heredoc with embedded HAML\",\"end\":\"(?!\\\\\\\\G)\",\"name\":\"meta.embedded.block.haml\",\"patterns\":[{\"begin\":\"(?><<[-~]([\\\\\"'\\`]?)((?:[_\\\\\\\\w]+_|)HAML)\\\\\\\\b\\\\\\\\1)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ruby\"}},\"contentName\":\"text.haml\",\"end\":\"^\\\\\\\\s*\\\\\\\\2$\\\\\\\\n?\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ruby\"}},\"name\":\"string.unquoted.heredoc.ruby\",\"patterns\":[{\"include\":\"#heredoc\"},{\"include\":\"#interpolated_ruby\"},{\"include\":\"text.haml\"},{\"include\":\"#escaped_char\"}]}]},{\"begin\":\"(?=(?><<[-~]([\\\\\"'\\`]?)((?:[_\\\\\\\\w]+_|)XML)\\\\\\\\b\\\\\\\\1))\",\"comment\":\"Heredoc with embedded XML\",\"end\":\"(?!\\\\\\\\G)\",\"name\":\"meta.embedded.block.xml\",\"patterns\":[{\"begin\":\"(?><<[-~]([\\\\\"'\\`]?)((?:[_\\\\\\\\w]+_|)XML)\\\\\\\\b\\\\\\\\1)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ruby\"}},\"contentName\":\"text.xml\",\"end\":\"^\\\\\\\\s*\\\\\\\\2$\\\\\\\\n?\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ruby\"}},\"name\":\"string.unquoted.heredoc.ruby\",\"patterns\":[{\"include\":\"#heredoc\"},{\"include\":\"#interpolated_ruby\"},{\"include\":\"text.xml\"},{\"include\":\"#escaped_char\"}]}]},{\"begin\":\"(?=(?><<[-~]([\\\\\"'\\`]?)((?:[_\\\\\\\\w]+_|)SQL)\\\\\\\\b\\\\\\\\1))\",\"comment\":\"Heredoc with embedded SQL\",\"end\":\"(?!\\\\\\\\G)\",\"name\":\"meta.embedded.block.sql\",\"patterns\":[{\"begin\":\"(?><<[-~]([\\\\\"'\\`]?)((?:[_\\\\\\\\w]+_|)SQL)\\\\\\\\b\\\\\\\\1)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ruby\"}},\"contentName\":\"source.sql\",\"end\":\"^\\\\\\\\s*\\\\\\\\2$\\\\\\\\n?\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ruby\"}},\"name\":\"string.unquoted.heredoc.ruby\",\"patterns\":[{\"include\":\"#heredoc\"},{\"include\":\"#interpolated_ruby\"},{\"include\":\"source.sql\"},{\"include\":\"#escaped_char\"}]}]},{\"begin\":\"(?=(?><<[-~]([\\\\\"'\\`]?)((?:[_\\\\\\\\w]+_|)(?:GRAPHQL|GQL))\\\\\\\\b\\\\\\\\1))\",\"comment\":\"Heredoc with embedded GraphQL\",\"end\":\"(?!\\\\\\\\G)\",\"name\":\"meta.embedded.block.graphql\",\"patterns\":[{\"begin\":\"(?><<[-~]([\\\\\"'\\`]?)((?:[_\\\\\\\\w]+_|)(?:GRAPHQL|GQL))\\\\\\\\b\\\\\\\\1)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ruby\"}},\"contentName\":\"source.graphql\",\"end\":\"^\\\\\\\\s*\\\\\\\\2$\\\\\\\\n?\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ruby\"}},\"name\":\"string.unquoted.heredoc.ruby\",\"patterns\":[{\"include\":\"#heredoc\"},{\"include\":\"#interpolated_ruby\"},{\"include\":\"source.graphql\"},{\"include\":\"#escaped_char\"}]}]},{\"begin\":\"(?=(?><<[-~]([\\\\\"'\\`]?)((?:[_\\\\\\\\w]+_|)CSS)\\\\\\\\b\\\\\\\\1))\",\"comment\":\"Heredoc with embedded CSS\",\"end\":\"(?!\\\\\\\\G)\",\"name\":\"meta.embedded.block.css\",\"patterns\":[{\"begin\":\"(?><<[-~]([\\\\\"'\\`]?)((?:[_\\\\\\\\w]+_|)CSS)\\\\\\\\b\\\\\\\\1)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ruby\"}},\"contentName\":\"source.css\",\"end\":\"^\\\\\\\\s*\\\\\\\\2$\\\\\\\\n?\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ruby\"}},\"name\":\"string.unquoted.heredoc.ruby\",\"patterns\":[{\"include\":\"#heredoc\"},{\"include\":\"#interpolated_ruby\"},{\"include\":\"source.css\"},{\"include\":\"#escaped_char\"}]}]},{\"begin\":\"(?=(?><<[-~]([\\\\\"'\\`]?)((?:[_\\\\\\\\w]+_|)CPP)\\\\\\\\b\\\\\\\\1))\",\"comment\":\"Heredoc with embedded C++\",\"end\":\"(?!\\\\\\\\G)\",\"name\":\"meta.embedded.block.cpp\",\"patterns\":[{\"begin\":\"(?><<[-~]([\\\\\"'\\`]?)((?:[_\\\\\\\\w]+_|)CPP)\\\\\\\\b\\\\\\\\1)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ruby\"}},\"contentName\":\"source.cpp\",\"end\":\"^\\\\\\\\s*\\\\\\\\2$\\\\\\\\n?\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ruby\"}},\"name\":\"string.unquoted.heredoc.ruby\",\"patterns\":[{\"include\":\"#heredoc\"},{\"include\":\"#interpolated_ruby\"},{\"include\":\"source.cpp\"},{\"include\":\"#escaped_char\"}]}]},{\"begin\":\"(?=(?><<[-~]([\\\\\"'\\`]?)((?:[_\\\\\\\\w]+_|)C)\\\\\\\\b\\\\\\\\1))\",\"comment\":\"Heredoc with embedded C\",\"end\":\"(?!\\\\\\\\G)\",\"name\":\"meta.embedded.block.c\",\"patterns\":[{\"begin\":\"(?><<[-~]([\\\\\"'\\`]?)((?:[_\\\\\\\\w]+_|)C)\\\\\\\\b\\\\\\\\1)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ruby\"}},\"contentName\":\"source.c\",\"end\":\"^\\\\\\\\s*\\\\\\\\2$\\\\\\\\n?\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ruby\"}},\"name\":\"string.unquoted.heredoc.ruby\",\"patterns\":[{\"include\":\"#heredoc\"},{\"include\":\"#interpolated_ruby\"},{\"include\":\"source.c\"},{\"include\":\"#escaped_char\"}]}]},{\"begin\":\"(?=(?><<[-~]([\\\\\"'\\`]?)((?:[_\\\\\\\\w]+_|)(?:JS|JAVASCRIPT))\\\\\\\\b\\\\\\\\1))\",\"comment\":\"Heredoc with embedded Javascript\",\"end\":\"(?!\\\\\\\\G)\",\"name\":\"meta.embedded.block.js\",\"patterns\":[{\"begin\":\"(?><<[-~]([\\\\\"'\\`]?)((?:[_\\\\\\\\w]+_|)(?:JS|JAVASCRIPT))\\\\\\\\b\\\\\\\\1)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ruby\"}},\"contentName\":\"source.js\",\"end\":\"^\\\\\\\\s*\\\\\\\\2$\\\\\\\\n?\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ruby\"}},\"name\":\"string.unquoted.heredoc.ruby\",\"patterns\":[{\"include\":\"#heredoc\"},{\"include\":\"#interpolated_ruby\"},{\"include\":\"source.js\"},{\"include\":\"#escaped_char\"}]}]},{\"begin\":\"(?=(?><<[-~]([\\\\\"'\\`]?)((?:[_\\\\\\\\w]+_|)JQUERY)\\\\\\\\b\\\\\\\\1))\",\"comment\":\"Heredoc with embedded jQuery Javascript\",\"end\":\"(?!\\\\\\\\G)\",\"name\":\"meta.embedded.block.js.jquery\",\"patterns\":[{\"begin\":\"(?><<[-~]([\\\\\"'\\`]?)((?:[_\\\\\\\\w]+_|)JQUERY)\\\\\\\\b\\\\\\\\1)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ruby\"}},\"contentName\":\"source.js.jquery\",\"end\":\"^\\\\\\\\s*\\\\\\\\2$\\\\\\\\n?\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ruby\"}},\"name\":\"string.unquoted.heredoc.ruby\",\"patterns\":[{\"include\":\"#heredoc\"},{\"include\":\"#interpolated_ruby\"},{\"include\":\"source.js.jquery\"},{\"include\":\"#escaped_char\"}]}]},{\"begin\":\"(?=(?><<[-~]([\\\\\"'\\`]?)((?:[_\\\\\\\\w]+_|)(?:SH|SHELL))\\\\\\\\b\\\\\\\\1))\",\"comment\":\"Heredoc with embedded Shell\",\"end\":\"(?!\\\\\\\\G)\",\"name\":\"meta.embedded.block.shell\",\"patterns\":[{\"begin\":\"(?><<[-~]([\\\\\"'\\`]?)((?:[_\\\\\\\\w]+_|)(?:SH|SHELL))\\\\\\\\b\\\\\\\\1)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ruby\"}},\"contentName\":\"source.shell\",\"end\":\"^\\\\\\\\s*\\\\\\\\2$\\\\\\\\n?\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ruby\"}},\"name\":\"string.unquoted.heredoc.ruby\",\"patterns\":[{\"include\":\"#heredoc\"},{\"include\":\"#interpolated_ruby\"},{\"include\":\"source.shell\"},{\"include\":\"#escaped_char\"}]}]},{\"begin\":\"(?=(?><<[-~]([\\\\\"'\\`]?)((?:[_\\\\\\\\w]+_|)LUA)\\\\\\\\b\\\\\\\\1))\",\"comment\":\"Heredoc with embedded Lua\",\"end\":\"(?!\\\\\\\\G)\",\"name\":\"meta.embedded.block.lua\",\"patterns\":[{\"begin\":\"(?><<[-~]([\\\\\"'\\`]?)((?:[_\\\\\\\\w]+_|)LUA)\\\\\\\\b\\\\\\\\1)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ruby\"}},\"contentName\":\"source.lua\",\"end\":\"^\\\\\\\\s*\\\\\\\\2$\\\\\\\\n?\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ruby\"}},\"name\":\"string.unquoted.heredoc.ruby\",\"patterns\":[{\"include\":\"#heredoc\"},{\"include\":\"#interpolated_ruby\"},{\"include\":\"source.lua\"},{\"include\":\"#escaped_char\"}]}]},{\"begin\":\"(?=(?><<[-~]([\\\\\"'\\`]?)((?:[_\\\\\\\\w]+_|)RUBY)\\\\\\\\b\\\\\\\\1))\",\"comment\":\"Heredoc with embedded Ruby\",\"end\":\"(?!\\\\\\\\G)\",\"name\":\"meta.embedded.block.ruby\",\"patterns\":[{\"begin\":\"(?><<[-~]([\\\\\"'\\`]?)((?:[_\\\\\\\\w]+_|)RUBY)\\\\\\\\b\\\\\\\\1)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ruby\"}},\"contentName\":\"source.ruby\",\"end\":\"^\\\\\\\\s*\\\\\\\\2$\\\\\\\\n?\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ruby\"}},\"name\":\"string.unquoted.heredoc.ruby\",\"patterns\":[{\"include\":\"#heredoc\"},{\"include\":\"#interpolated_ruby\"},{\"include\":\"source.ruby\"},{\"include\":\"#escaped_char\"}]}]},{\"begin\":\"(?=(?><<[-~]([\\\\\"'\\`]?)((?:[_\\\\\\\\w]+_|)(?:YAML|YML))\\\\\\\\b\\\\\\\\1))\",\"comment\":\"Heredoc with embedded YAML\",\"end\":\"(?!\\\\\\\\G)\",\"name\":\"meta.embedded.block.yaml\",\"patterns\":[{\"begin\":\"(?><<[-~]([\\\\\"'\\`]?)((?:[_\\\\\\\\w]+_|)(?:YAML|YML))\\\\\\\\b\\\\\\\\1)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ruby\"}},\"contentName\":\"source.yaml\",\"end\":\"^\\\\\\\\s*\\\\\\\\2$\\\\\\\\n?\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ruby\"}},\"name\":\"string.unquoted.heredoc.ruby\",\"patterns\":[{\"include\":\"#heredoc\"},{\"include\":\"#interpolated_ruby\"},{\"include\":\"source.yaml\"},{\"include\":\"#escaped_char\"}]}]},{\"begin\":\"(?=(?><<[-~]([\\\\\"'\\`]?)((?:[_\\\\\\\\w]+_|)SLIM)\\\\\\\\b\\\\\\\\1))\",\"comment\":\"Heredoc with embedded Slim\",\"end\":\"(?!\\\\\\\\G)\",\"name\":\"meta.embedded.block.slim\",\"patterns\":[{\"begin\":\"(?><<[-~]([\\\\\"'\\`]?)((?:[_\\\\\\\\w]+_|)SLIM)\\\\\\\\b\\\\\\\\1)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ruby\"}},\"contentName\":\"text.slim\",\"end\":\"^\\\\\\\\s*\\\\\\\\2$\\\\\\\\n?\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ruby\"}},\"name\":\"string.unquoted.heredoc.ruby\",\"patterns\":[{\"include\":\"#heredoc\"},{\"include\":\"#interpolated_ruby\"},{\"include\":\"text.slim\"},{\"include\":\"#escaped_char\"}]}]},{\"begin\":\"(?>=\\\\\\\\s*<<([\\\\\"'\\`]?)(\\\\\\\\w+)\\\\\\\\1)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ruby\"}},\"end\":\"^\\\\\\\\2$\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ruby\"}},\"name\":\"string.unquoted.heredoc.ruby\",\"patterns\":[{\"include\":\"#heredoc\"},{\"include\":\"#interpolated_ruby\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"(?>((<<[-~]([\\\\\"'\\`]?)(\\\\\\\\w+)\\\\\\\\3,\\\\\\\\s?)*<<[-~]([\\\\\"'\\`]?)(\\\\\\\\w+)\\\\\\\\5))(.*)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.ruby\"},\"7\":{\"patterns\":[{\"include\":\"source.ruby\"}]}},\"comment\":\"heredoc with multiple inputs and indented terminator\",\"end\":\"^\\\\\\\\s*\\\\\\\\6$\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.ruby\"}},\"name\":\"string.unquoted.heredoc.ruby\",\"patterns\":[{\"include\":\"#heredoc\"},{\"include\":\"#interpolated_ruby\"},{\"include\":\"#escaped_char\"}]},{\"begin\":\"(?<={|{\\\\\\\\s|[^A-Za-z0-9_:@$]do|^do|[^A-Za-z0-9_:@$]do\\\\\\\\s|^do\\\\\\\\s)(\\\\\\\\|)\",\"captures\":{\"1\":{\"name\":\"punctuation.separator.variable.ruby\"}},\"end\":\"(?<!\\\\\\\\|)(\\\\\\\\|)(?!\\\\\\\\|)\",\"name\":\"meta.block.parameters.ruby\",\"patterns\":[{\"begin\":\"(?![\\\\\\\\s,|(])\",\"end\":\"(?=,|\\\\\\\\|\\\\\\\\s*)\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.variable.ruby\"},\"2\":{\"name\":\"variable.other.block.ruby\"},\"3\":{\"name\":\"variable.other.block.unused.ruby variable.other.constant.ruby\"}},\"match\":\"\\\\\\\\G([&*]?)([a-zA-Z][\\\\\\\\w_]*)|(_[\\\\\\\\w_]*)\"}]},{\"match\":\",\",\"name\":\"punctuation.separator.variable.ruby\"}]},{\"match\":\"=>\",\"name\":\"punctuation.separator.key-value\"},{\"match\":\"->\",\"name\":\"support.function.kernel.ruby\"},{\"match\":\"<<=|%=|&{1,2}=|\\\\\\\\*=|\\\\\\\\*\\\\\\\\*=|\\\\\\\\+=|-=|\\\\\\\\^=|\\\\\\\\|{1,2}=|<<\",\"name\":\"keyword.operator.assignment.augmented.ruby\"},{\"match\":\"<=>|<(?!<|=)|>(?!<|=|>)|<=|>=|===|==|=~|!=|!~|(?<=[ \\\\\\\\t])\\\\\\\\?\",\"name\":\"keyword.operator.comparison.ruby\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(and|not|or)\\\\\\\\b(?![?!])\",\"name\":\"keyword.operator.logical.ruby\"},{\"match\":\"(?<=^|[ \\\\\\\\t!])!|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\^\",\"name\":\"keyword.operator.logical.ruby\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.logical.ruby\"}},\"comment\":\"Safe navigation operator\",\"match\":\"(&\\\\\\\\.)\\\\\\\\s*(?![A-Z])\"},{\"match\":\"(%|&|\\\\\\\\*\\\\\\\\*|\\\\\\\\*|\\\\\\\\+|-|/)\",\"name\":\"keyword.operator.arithmetic.ruby\"},{\"match\":\"=\",\"name\":\"keyword.operator.assignment.ruby\"},{\"match\":\"\\\\\\\\||~|>>\",\"name\":\"keyword.operator.other.ruby\"},{\"match\":\";\",\"name\":\"punctuation.separator.statement.ruby\"},{\"match\":\",\",\"name\":\"punctuation.separator.object.ruby\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.namespace.ruby\"}},\"comment\":\"Mark as namespace separator if double colons followed by capital letter\",\"match\":\"(::)\\\\\\\\s*(?=[A-Z])\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.method.ruby\"}},\"comment\":\"Mark as method separator if double colons not followed by capital letter\",\"match\":\"(\\\\\\\\.|::)\\\\\\\\s*(?![A-Z])\"},{\"comment\":\"Must come after method and constant separators to prefer double colons\",\"match\":\":\",\"name\":\"punctuation.separator.other.ruby\"},{\"match\":\"{\",\"name\":\"punctuation.section.scope.begin.ruby\"},{\"match\":\"}\",\"name\":\"punctuation.section.scope.end.ruby\"},{\"match\":\"\\\\\\\\[\",\"name\":\"punctuation.section.array.begin.ruby\"},{\"match\":\"]\",\"name\":\"punctuation.section.array.end.ruby\"},{\"match\":\"\\\\\\\\(|\\\\\\\\)\",\"name\":\"punctuation.section.function.ruby\"},{\"begin\":\"(?<=[^\\\\\\\\.]\\\\\\\\.|::)(?=[a-zA-Z][a-zA-Z0-9_!?]*[^a-zA-Z0-9_!?])\",\"end\":\"(?<=[a-zA-Z0-9_!?])(?=[^a-zA-Z0-9_!?])\",\"name\":\"meta.function-call.ruby\",\"patterns\":[{\"match\":\"([a-zA-Z][a-zA-Z0-9_!?]*)(?=[^a-zA-Z0-9_!?])\",\"name\":\"entity.name.function.ruby\"}]},{\"begin\":\"([a-zA-Z]\\\\\\\\w*[!?]?)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.ruby\"},\"2\":{\"name\":\"punctuation.section.function.ruby\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.function.ruby\"}},\"name\":\"meta.function-call.ruby\",\"patterns\":[{\"include\":\"$self\"}]}],\"repository\":{\"escaped_char\":{\"match\":\"\\\\\\\\\\\\\\\\(?:[0-7]{1,3}|x[\\\\\\\\da-fA-F]{1,2}|.)\",\"name\":\"constant.character.escape.ruby\"},\"heredoc\":{\"begin\":\"^<<[-~]?\\\\\\\\w+\",\"end\":\"$\",\"patterns\":[{\"include\":\"$self\"}]},\"interpolated_ruby\":{\"patterns\":[{\"begin\":\"#{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.ruby\"}},\"contentName\":\"source.ruby\",\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.ruby\"}},\"name\":\"meta.embedded.line.ruby\",\"patterns\":[{\"include\":\"#nest_curly_and_self\"},{\"include\":\"$self\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.ruby\"}},\"match\":\"(#@)[a-zA-Z_]\\\\\\\\w*\",\"name\":\"variable.other.readwrite.instance.ruby\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.ruby\"}},\"match\":\"(#@@)[a-zA-Z_]\\\\\\\\w*\",\"name\":\"variable.other.readwrite.class.ruby\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.ruby\"}},\"match\":\"(#\\\\\\\\$)[a-zA-Z_]\\\\\\\\w*\",\"name\":\"variable.other.readwrite.global.ruby\"}]},\"method_parameters\":{\"patterns\":[{\"include\":\"#parens\"},{\"include\":\"#braces\"},{\"include\":\"#brackets\"},{\"include\":\"#params\"},{\"include\":\"$self\"}],\"repository\":{\"braces\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.scope.begin.ruby\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.scope.end.ruby\"}},\"patterns\":[{\"include\":\"#parens\"},{\"include\":\"#braces\"},{\"include\":\"#brackets\"},{\"include\":\"$self\"}]},\"brackets\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.array.begin.ruby\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.array.end.ruby\"}},\"patterns\":[{\"include\":\"#parens\"},{\"include\":\"#braces\"},{\"include\":\"#brackets\"},{\"include\":\"$self\"}]},\"params\":{\"captures\":{\"1\":{\"name\":\"storage.type.variable.ruby\"},\"2\":{\"name\":\"constant.other.symbol.hashkey.parameter.function.ruby\"},\"3\":{\"name\":\"punctuation.definition.constant.ruby\"},\"4\":{\"name\":\"variable.parameter.function.ruby\"}},\"match\":\"\\\\\\\\G(&|\\\\\\\\*\\\\\\\\*?)?(?:([_a-zA-Z]\\\\\\\\w*[?!]?(:))|([_a-zA-Z]\\\\\\\\w*))\"},\"parens\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.function.begin.ruby\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.function.end.ruby\"}},\"patterns\":[{\"include\":\"#parens\"},{\"include\":\"#braces\"},{\"include\":\"#brackets\"},{\"include\":\"$self\"}]}}},\"nest_brackets\":{\"begin\":\"\\\\\\\\[\",\"captures\":{\"0\":{\"name\":\"punctuation.section.scope.ruby\"}},\"end\":\"]\",\"patterns\":[{\"include\":\"#nest_brackets\"}]},\"nest_brackets_i\":{\"begin\":\"\\\\\\\\[\",\"captures\":{\"0\":{\"name\":\"punctuation.section.scope.ruby\"}},\"end\":\"]\",\"patterns\":[{\"include\":\"#interpolated_ruby\"},{\"include\":\"#escaped_char\"},{\"include\":\"#nest_brackets_i\"}]},\"nest_brackets_r\":{\"begin\":\"\\\\\\\\[\",\"captures\":{\"0\":{\"name\":\"punctuation.section.scope.ruby\"}},\"end\":\"]\",\"patterns\":[{\"include\":\"#regex_sub\"},{\"include\":\"#nest_brackets_r\"}]},\"nest_curly\":{\"begin\":\"{\",\"captures\":{\"0\":{\"name\":\"punctuation.section.scope.ruby\"}},\"end\":\"}\",\"patterns\":[{\"include\":\"#nest_curly\"}]},\"nest_curly_and_self\":{\"patterns\":[{\"begin\":\"{\",\"captures\":{\"0\":{\"name\":\"punctuation.section.scope.ruby\"}},\"end\":\"}\",\"patterns\":[{\"include\":\"#nest_curly_and_self\"}]},{\"include\":\"$self\"}]},\"nest_curly_i\":{\"begin\":\"{\",\"captures\":{\"0\":{\"name\":\"punctuation.section.scope.ruby\"}},\"end\":\"}\",\"patterns\":[{\"include\":\"#interpolated_ruby\"},{\"include\":\"#escaped_char\"},{\"include\":\"#nest_curly_i\"}]},\"nest_curly_r\":{\"begin\":\"{\",\"captures\":{\"0\":{\"name\":\"punctuation.section.scope.ruby\"}},\"end\":\"}\",\"patterns\":[{\"include\":\"#regex_sub\"},{\"include\":\"#nest_curly_r\"}]},\"nest_ltgt\":{\"begin\":\"<\",\"captures\":{\"0\":{\"name\":\"punctuation.section.scope.ruby\"}},\"end\":\">\",\"patterns\":[{\"include\":\"#nest_ltgt\"}]},\"nest_ltgt_i\":{\"begin\":\"<\",\"captures\":{\"0\":{\"name\":\"punctuation.section.scope.ruby\"}},\"end\":\">\",\"patterns\":[{\"include\":\"#interpolated_ruby\"},{\"include\":\"#escaped_char\"},{\"include\":\"#nest_ltgt_i\"}]},\"nest_ltgt_r\":{\"begin\":\"<\",\"captures\":{\"0\":{\"name\":\"punctuation.section.scope.ruby\"}},\"end\":\">\",\"patterns\":[{\"include\":\"#regex_sub\"},{\"include\":\"#nest_ltgt_r\"}]},\"nest_parens\":{\"begin\":\"\\\\\\\\(\",\"captures\":{\"0\":{\"name\":\"punctuation.section.scope.ruby\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#nest_parens\"}]},\"nest_parens_i\":{\"begin\":\"\\\\\\\\(\",\"captures\":{\"0\":{\"name\":\"punctuation.section.scope.ruby\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#interpolated_ruby\"},{\"include\":\"#escaped_char\"},{\"include\":\"#nest_parens_i\"}]},\"nest_parens_r\":{\"begin\":\"\\\\\\\\(\",\"captures\":{\"0\":{\"name\":\"punctuation.section.scope.ruby\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#regex_sub\"},{\"include\":\"#nest_parens_r\"}]},\"regex_sub\":{\"patterns\":[{\"include\":\"#interpolated_ruby\"},{\"include\":\"#escaped_char\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.arbitrary-repetition.ruby\"},\"3\":{\"name\":\"punctuation.definition.arbitrary-repetition.ruby\"}},\"match\":\"({)\\\\\\\\d+(,\\\\\\\\d+)?(})\",\"name\":\"string.regexp.arbitrary-repetition.ruby\"},{\"begin\":\"\\\\\\\\[(?:\\\\\\\\^?])?\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.character-class.ruby\"}},\"end\":\"]\",\"name\":\"string.regexp.character-class.ruby\",\"patterns\":[{\"include\":\"#escaped_char\"}]},{\"begin\":\"\\\\\\\\(\\\\\\\\?#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.ruby\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.ruby\"}},\"name\":\"comment.line.number-sign.ruby\",\"patterns\":[{\"include\":\"#escaped_char\"}]},{\"begin\":\"\\\\\\\\(\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.group.ruby\"}},\"end\":\"\\\\\\\\)\",\"name\":\"string.regexp.group.ruby\",\"patterns\":[{\"include\":\"#regex_sub\"}]},{\"begin\":\"(?<=^|\\\\\\\\s)(#)\\\\\\\\s(?=[[a-zA-Z0-9,. \\\\\\\\t?!-][^\\\\\\\\x{00}-\\\\\\\\x{7F}]]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.ruby\"}},\"comment\":\"We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.\",\"end\":\"$\\\\\\\\n?\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.ruby\"}},\"name\":\"comment.line.number-sign.ruby\"}]},\"yard\":{\"patterns\":[{\"include\":\"#yard_comment\"},{\"include\":\"#yard_param_types\"},{\"include\":\"#yard_option\"},{\"include\":\"#yard_tag\"},{\"include\":\"#yard_types\"},{\"include\":\"#yard_directive\"},{\"include\":\"#yard_see\"},{\"include\":\"#yard_macro_attribute\"}]},\"yard_comment\":{\"begin\":\"^(\\\\\\\\s*)(#)(\\\\\\\\s*)(@)(abstract|api|author|deprecated|example|macro|note|overload|since|todo|version)(?=\\\\\\\\s|$)\",\"beginCaptures\":{\"2\":{\"name\":\"punctuation.definition.comment.ruby\"},\"4\":{\"name\":\"comment.line.keyword.punctuation.yard.ruby\"},\"5\":{\"name\":\"comment.line.keyword.yard.ruby\"}},\"comment\":\"For YARD tags that follow the tag-comment pattern\",\"contentName\":\"comment.line.string.yard.ruby\",\"end\":\"^(?!\\\\\\\\s*#\\\\\\\\3\\\\\\\\s{2,}|\\\\\\\\s*#\\\\\\\\s*$)\",\"name\":\"comment.line.number-sign.ruby\",\"patterns\":[{\"include\":\"#yard\"},{\"include\":\"#yard_continuation\"}]},\"yard_continuation\":{\"match\":\"^\\\\\\\\s*#\",\"name\":\"punctuation.definition.comment.ruby\"},\"yard_directive\":{\"begin\":\"^(\\\\\\\\s*)(#)(\\\\\\\\s*)(@!)(endgroup|group|method|parse|scope|visibility)(\\\\\\\\s+((\\\\\\\\[).+(])))?(?=\\\\\\\\s)\",\"beginCaptures\":{\"2\":{\"name\":\"punctuation.definition.comment.ruby\"},\"4\":{\"name\":\"comment.line.keyword.punctuation.yard.ruby\"},\"5\":{\"name\":\"comment.line.keyword.yard.ruby\"},\"7\":{\"name\":\"comment.line.type.yard.ruby\"},\"8\":{\"name\":\"comment.line.punctuation.yard.ruby\"},\"9\":{\"name\":\"comment.line.punctuation.yard.ruby\"}},\"comment\":\"For YARD directives\",\"contentName\":\"comment.line.string.yard.ruby\",\"end\":\"^(?!\\\\\\\\s*#\\\\\\\\3\\\\\\\\s{2,}|\\\\\\\\s*#\\\\\\\\s*$)\",\"name\":\"comment.line.number-sign.ruby\",\"patterns\":[{\"include\":\"#yard\"},{\"include\":\"#yard_continuation\"}]},\"yard_macro_attribute\":{\"begin\":\"^(\\\\\\\\s*)(#)(\\\\\\\\s*)(@!)(attribute|macro)(\\\\\\\\s+((\\\\\\\\[).+(])))?(?=\\\\\\\\s)(\\\\\\\\s+([a-z_]\\\\\\\\w*:?))?\",\"beginCaptures\":{\"2\":{\"name\":\"punctuation.definition.comment.ruby\"},\"4\":{\"name\":\"comment.line.keyword.punctuation.yard.ruby\"},\"5\":{\"name\":\"comment.line.keyword.yard.ruby\"},\"7\":{\"name\":\"comment.line.type.yard.ruby\"},\"8\":{\"name\":\"comment.line.punctuation.yard.ruby\"},\"9\":{\"name\":\"comment.line.punctuation.yard.ruby\"},\"11\":{\"name\":\"comment.line.parameter.yard.ruby\"}},\"comment\":\"separate rule for attribute and macro tags because name goes after []\",\"contentName\":\"comment.line.string.yard.ruby\",\"end\":\"^(?!\\\\\\\\s*#\\\\\\\\3\\\\\\\\s{2,}|\\\\\\\\s*#\\\\\\\\s*$)\",\"name\":\"comment.line.number-sign.ruby\",\"patterns\":[{\"include\":\"#yard\"},{\"include\":\"#yard_continuation\"}]},\"yard_option\":{\"begin\":\"^(\\\\\\\\s*)(#)(\\\\\\\\s*)(@)(option)(?=\\\\\\\\s)(?>\\\\\\\\s+([a-z_]\\\\\\\\w*:?))?(?>\\\\\\\\s+((\\\\\\\\[).+(])))?(?>\\\\\\\\s+((\\\\\\\\S*)))?(?>\\\\\\\\s+((\\\\\\\\().+(\\\\\\\\))))?\",\"beginCaptures\":{\"2\":{\"name\":\"punctuation.definition.comment.ruby\"},\"4\":{\"name\":\"comment.line.keyword.punctuation.yard.ruby\"},\"5\":{\"name\":\"comment.line.keyword.yard.ruby\"},\"6\":{\"name\":\"comment.line.parameter.yard.ruby\"},\"7\":{\"name\":\"comment.line.type.yard.ruby\"},\"8\":{\"name\":\"comment.line.punctuation.yard.ruby\"},\"9\":{\"name\":\"comment.line.punctuation.yard.ruby\"},\"10\":{\"name\":\"comment.line.keyword.yard.ruby\"},\"11\":{\"name\":\"comment.line.hashkey.yard.ruby\"},\"12\":{\"name\":\"comment.line.defaultvalue.yard.ruby\"},\"13\":{\"name\":\"comment.line.punctuation.yard.ruby\"},\"14\":{\"name\":\"comment.line.punctuation.yard.ruby\"}},\"comment\":\"For YARD option tag that follow the tag-name-types-key-(value)-description pattern\",\"contentName\":\"comment.line.string.yard.ruby\",\"end\":\"^(?!\\\\\\\\s*#\\\\\\\\3\\\\\\\\s{2,}|\\\\\\\\s*#\\\\\\\\s*$)\",\"name\":\"comment.line.number-sign.ruby\",\"patterns\":[{\"include\":\"#yard\"},{\"include\":\"#yard_continuation\"}]},\"yard_param_types\":{\"begin\":\"^(\\\\\\\\s*)(#)(\\\\\\\\s*)(@)(attr|attr_reader|attr_writer|yieldparam|param)(?=\\\\\\\\s)(?>\\\\\\\\s+(?>([a-z_]\\\\\\\\w*:?)|((\\\\\\\\[).+(]))))?(?>\\\\\\\\s+(?>((\\\\\\\\[).+(]))|([a-z_]\\\\\\\\w*:?)))?\",\"beginCaptures\":{\"2\":{\"name\":\"punctuation.definition.comment.ruby\"},\"4\":{\"name\":\"comment.line.keyword.punctuation.yard.ruby\"},\"5\":{\"name\":\"comment.line.keyword.yard.ruby\"},\"6\":{\"name\":\"comment.line.parameter.yard.ruby\"},\"7\":{\"name\":\"comment.line.type.yard.ruby\"},\"8\":{\"name\":\"comment.line.punctuation.yard.ruby\"},\"9\":{\"name\":\"comment.line.punctuation.yard.ruby\"},\"10\":{\"name\":\"comment.line.type.yard.ruby\"},\"11\":{\"name\":\"comment.line.punctuation.yard.ruby\"},\"12\":{\"name\":\"comment.line.punctuation.yard.ruby\"},\"13\":{\"name\":\"comment.line.parameter.yard.ruby\"}},\"comment\":\"For YARD tags that follow the tag-name-types-description or tag-types-name-description pattern\",\"contentName\":\"comment.line.string.yard.ruby\",\"end\":\"^(?!\\\\\\\\s*#\\\\\\\\3\\\\\\\\s{2,}|\\\\\\\\s*#\\\\\\\\s*$)\",\"name\":\"comment.line.number-sign.ruby\",\"patterns\":[{\"include\":\"#yard\"},{\"include\":\"#yard_continuation\"}]},\"yard_see\":{\"begin\":\"^(\\\\\\\\s*)(#)(\\\\\\\\s*)(@)(see)(?=\\\\\\\\s)(\\\\\\\\s+(.+?))?(?=\\\\\\\\s|$)\",\"beginCaptures\":{\"2\":{\"name\":\"punctuation.definition.comment.ruby\"},\"4\":{\"name\":\"comment.line.keyword.punctuation.yard.ruby\"},\"5\":{\"name\":\"comment.line.keyword.yard.ruby\"},\"7\":{\"name\":\"comment.line.parameter.yard.ruby\"}},\"comment\":\"separate rule for @see because name could contain url\",\"contentName\":\"comment.line.string.yard.ruby\",\"end\":\"^(?!\\\\\\\\s*#\\\\\\\\3\\\\\\\\s{2,}|\\\\\\\\s*#\\\\\\\\s*$)\",\"name\":\"comment.line.number-sign.ruby\",\"patterns\":[{\"include\":\"#yard\"},{\"include\":\"#yard_continuation\"}]},\"yard_tag\":{\"captures\":{\"2\":{\"name\":\"punctuation.definition.comment.ruby\"},\"4\":{\"name\":\"comment.line.keyword.punctuation.yard.ruby\"},\"5\":{\"name\":\"comment.line.keyword.yard.ruby\"}},\"comment\":\"For YARD tags that are just the tag\",\"match\":\"^(\\\\\\\\s*)(#)(\\\\\\\\s*)(@)(private)$\",\"name\":\"comment.line.number-sign.ruby\"},\"yard_types\":{\"begin\":\"^(\\\\\\\\s*)(#)(\\\\\\\\s*)(@)(raise|return|yield(?:return)?)(?=\\\\\\\\s)(\\\\\\\\s+((\\\\\\\\[).+(])))?\",\"beginCaptures\":{\"2\":{\"name\":\"punctuation.definition.comment.ruby\"},\"4\":{\"name\":\"comment.line.keyword.punctuation.yard.ruby\"},\"5\":{\"name\":\"comment.line.keyword.yard.ruby\"},\"7\":{\"name\":\"comment.line.type.yard.ruby\"},\"8\":{\"name\":\"comment.line.punctuation.yard.ruby\"},\"9\":{\"name\":\"comment.line.punctuation.yard.ruby\"}},\"comment\":\"For YARD tags that follow the tag-types-comment pattern\",\"contentName\":\"comment.line.string.yard.ruby\",\"end\":\"^(?!\\\\\\\\s*#\\\\\\\\3\\\\\\\\s{2,}|\\\\\\\\s*#\\\\\\\\s*$)\",\"name\":\"comment.line.number-sign.ruby\",\"patterns\":[{\"include\":\"#yard\"},{\"include\":\"#yard_continuation\"}]}},\"scopeName\":\"source.ruby\",\"embeddedLangs\":[\"html\",\"haml\",\"xml\",\"sql\",\"graphql\",\"css\",\"cpp\",\"c\",\"javascript\",\"shellscript\",\"lua\",\"yaml\"],\"aliases\":[\"rb\"]}`)),L=[...e,...n,...t,...a,...r,...i,...u,...c,...o,...s,...d,...m,b];export{L as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CYcD1Eih.js",
    "content": "import{a as H}from\"./C4bX54si.js\";import{_ as Y}from\"./CqvT4tPC.js\";import{C as y,g as n,j as h,d as Z,r as k,a0 as z,ah as A,c as G,ai as J,w as K,i as d,e as c,E as p,f as R,x as _,F as C,O as E,q as S,t as Q,N as X}from\"./CU_MfyYc.js\";function V(w,e){return n(),y(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 24 24\",fill:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[h(\"path\",{\"fill-rule\":\"evenodd\",d:\"M12 3.75a.75.75 0 0 1 .75.75v6.75h6.75a.75.75 0 0 1 0 1.5h-6.75v6.75a.75.75 0 0 1-1.5 0v-6.75H4.5a.75.75 0 0 1 0-1.5h6.75V4.5a.75.75 0 0 1 .75-.75Z\",\"clip-rule\":\"evenodd\"})])}const ee={id:\"routes-section\",class:\"select-none\"},oe={class:\"w-full flex justify-center\"},ae=Z({__name:\"Routes\",props:{timeframes:{},symbols:{},form:{},totalRoutesError:{}},setup(w){const e=w,b=k([]),g=k(\"\"),l=z(),D=k({data_routes:e.form.data_routes}),M=k({routes:e.form.routes}),f=A({uniqueRoutesErrorMessage:\"each exchange-symbol pair can be traded only once! More info: https://docs.jesse.trade/docs/routes.html#trading-multiple-routes\",maxSymbolLengthErrorMessage:\"Maximum symbol length is exceeded!\",mustContainDashErrorMessage:'Symbol parameter must contain \"-\" character!',timeframeMustBeDifferentErrorMessage:\"Data routes' timeframe and trading routes' timeframe must be different\",emptyParameter:\"You must fill all the parameters\",invalidSymbol:\"Symbol is invalid\"}),O=G(()=>l.strategies);J(()=>{D.value={data_routes:e.form.data_routes},M.value={routes:e.form.routes},U(),$()});function U(){e.form.routes.length||e.form.routes.push({symbol:\"\",timeframe:l.jesseSupportedTimeframes.includes(\"4h\")?\"4h\":l.jesseSupportedTimeframes[l.jesseSupportedTimeframes.length-1],strategy:l.strategies[0]})}function $(){e.totalRoutesError.splice(0,e.totalRoutesError.length);for(const s of e.form.routes)x(s);if(e.form.data_routes.length>0)for(const s of e.form.data_routes)x(s);let t=!1;const o=e.form.routes;for(const s of o.slice(0,-1)){if(e.totalRoutesError.includes(f.uniqueRoutesErrorMessage)||t)break;for(const m of o.slice(o.indexOf(s)+1))if(s.strategy===m.strategy&&s.symbol===m.symbol&&s.symbol.length!==0){e.totalRoutesError.push(f.uniqueRoutesErrorMessage),t=!1;break}}let u=!1;const i=e.form.data_routes;for(const s of i.slice(0,-1)){if(e.totalRoutesError.includes(f.uniqueRoutesErrorMessage)||u)break;for(const m of i.slice(i.indexOf(s)+1))if(s.timeframe===m.timeframe&&s.symbol===m.symbol){e.totalRoutesError.push(f.uniqueRoutesErrorMessage),u=!0;break}}if(e.form.data_routes.length>0)for(const s of i){if(e.totalRoutesError.includes(f.timeframeMustBeDifferentErrorMessage)||t)break;for(const m of e.form.routes)if(s.symbol===m.symbol&&s.timeframe===m.timeframe){e.totalRoutesError.push(f.timeframeMustBeDifferentErrorMessage),u=!0;break}}}function x(t){!e.totalRoutesError.includes(f.emptyParameter)&&(t.symbol.length==0||t.timeframe.length==0)&&e.totalRoutesError.push(f.emptyParameter)}function j(){e.form.routes.push({symbol:\"\",timeframe:l.jesseSupportedTimeframes.includes(\"4h\")?\"4h\":l.jesseSupportedTimeframes[l.jesseSupportedTimeframes.length-1],strategy:l.strategies[0]})}function q(){e.form.data_routes.push({symbol:\"\",timeframe:l.jesseSupportedTimeframes.includes(\"4h\")?\"4h\":l.jesseSupportedTimeframes[l.jesseSupportedTimeframes.length-1]})}function B(t){const o=e.form.routes.indexOf(t);e.form.routes.length!==1&&o>-1&&e.form.routes.splice(o,1)}function T(t){const o=e.form.data_routes.indexOf(t);e.form.data_routes.length!==0&&o>-1&&e.form.data_routes.splice(o,1)}function I(t){const o=e.form.routes.indexOf(t),u={strategy:t.strategy,symbol:\"\",timeframe:t.timeframe};e.form.routes.splice(o+1,0,u)}function L(t){const o=e.form.data_routes.indexOf(t),u={symbol:\"\",timeframe:t.timeframe};e.form.data_routes.splice(o+1,0,u)}function N(t){const o=e.form.routes.indexOf(t);o!==0&&(e.form.routes[o]=e.form.routes[o-1],e.form.routes[o-1]=t)}function P(t){const o=e.form.data_routes.indexOf(t);o!==0&&(e.form.data_routes[o]=e.form.data_routes[o-1],e.form.data_routes[o-1]=t)}function F(t){const o=e.form.routes.indexOf(t);o!==e.form.routes.length-1&&(e.form.routes[o]=e.form.routes[o+1],e.form.routes[o+1]=t)}function W(t){const o=e.form.data_routes.indexOf(t);o!==e.form.data_routes.length-1&&(e.form.data_routes[o]=e.form.data_routes[o+1],e.form.data_routes[o+1]=t)}return K(()=>g.value,t=>{if(t.length==0){b.value=[];return}const o=[];for(const u of e.symbols){if(o.length>50)break;u.toLowerCase().startsWith(t.toLowerCase())&&o.push(u)}b.value=o}),(t,o)=>{const u=H,i=Y,s=Q,m=X;return n(),y(\"div\",ee,[d(u,{title:\"Routes\"},{default:R(()=>[h(\"div\",oe,[h(\"button\",{type:\"button\",class:\"inline-flex items-center shadow-sm px-4 py-1.5 border border-gray-300 dark:border-gray-900 text-sm leading-5 font-medium rounded-l-full text-gray-700 dark:text-gray-100 bg-white dark:bg-backdrop-dark hover:bg-gray-50 dark:hover:bg-gray-700 focus:outline-none\",onClick:j},[d(_(V),{class:\"-ml-1.5 mr-1 h-5 w-5 text-gray-400\",\"aria-hidden\":\"true\"}),o[4]||(o[4]=h(\"span\",null,\"Trading Route\",-1))]),h(\"button\",{type:\"button\",class:\"inline-flex items-center shadow-sm px-4 py-1.5 border border-gray-300 dark:border-gray-900 text-sm leading-5 font-medium rounded-r-full text-gray-700 dark:text-gray-100 bg-white dark:bg-backdrop-dark hover:bg-gray-50 dark:hover:bg-gray-700 focus:outline-none\",onClick:q},[d(_(V),{class:\"-ml-1.5 mr-1 h-5 w-5 text-gray-400\",\"aria-hidden\":\"true\"}),o[5]||(o[5]=h(\"span\",null,\"Data Route\",-1))])])]),_:1}),(n(!0),y(C,null,E(t.form.routes,(r,v)=>(n(),y(\"div\",{key:r.symbol+v,class:\"flex mt-4\"},[d(i,{modelValue:r.symbol,\"onUpdate:modelValue\":a=>r.symbol=a,query:g.value,\"onUpdate:query\":o[0]||(o[0]=a=>g.value=a),\"clear-search-on-close\":\"\",class:\"w-full\",ui:{rounded:\"rounded-none rounded-l\"},searchable:\"\",\"searchable-placeholder\":\"Search symbols...\",options:b.value,placeholder:\"Select a symbol...\",onChange:o[1]||(o[1]=a=>g.value=\"\")},{empty:R(()=>o[6]||(o[6]=[S(\"Start typing...\")])),_:2},1032,[\"modelValue\",\"onUpdate:modelValue\",\"query\",\"options\"]),d(i,{modelValue:r.timeframe,\"onUpdate:modelValue\":a=>r.timeframe=a,class:\"w-full\",ui:{rounded:\"rounded-none\"},\"value-attribute\":\"value\",options:t.timeframes},null,8,[\"modelValue\",\"onUpdate:modelValue\",\"options\"]),d(i,{modelValue:r.strategy,\"onUpdate:modelValue\":a=>r.strategy=a,class:\"w-full\",ui:{rounded:\"rounded-none rounded-r\"},options:O.value,searchable:\"\"},null,8,[\"modelValue\",\"onUpdate:modelValue\",\"options\"]),t.form.routes.length>1?(n(),c(s,{key:0,class:\"\",variant:\"link\",color:\"gray\",icon:\"i-heroicons-trash\",disabled:t.form.routes.length===1,onClick:a=>B(r)},null,8,[\"disabled\",\"onClick\"])):p(\"\",!0),t.form.routes.length>1?(n(),c(s,{key:1,class:\"\",variant:\"link\",color:\"gray\",icon:\"i-heroicons-document-duplicate\",disabled:t.form.routes.length===1,onClick:a=>I(r)},null,8,[\"disabled\",\"onClick\"])):p(\"\",!0),t.form.routes.length>1?(n(),c(s,{key:2,class:\"\",variant:\"link\",color:\"gray\",icon:\"i-heroicons-arrow-down\",disabled:t.form.routes.indexOf(r)===t.form.routes.length-1,onClick:a=>F(r)},null,8,[\"disabled\",\"onClick\"])):p(\"\",!0),t.form.routes.length>1?(n(),c(s,{key:3,class:\"\",variant:\"link\",color:\"gray\",icon:\"i-heroicons-arrow-up\",disabled:t.form.routes.indexOf(r)===0,onClick:a=>N(r)},null,8,[\"disabled\",\"onClick\"])):p(\"\",!0),d(s,{class:\"\",variant:\"link\",color:\"gray\",icon:\"i-heroicons-code-bracket\",to:`/strategies/${r.strategy}`},null,8,[\"to\"])]))),128)),t.form.data_routes.length?(n(),c(m,{key:0,class:\"mt-8 mb-4\",title:\"Data Routes\"})):p(\"\",!0),(n(!0),y(C,null,E(t.form.data_routes,(r,v)=>(n(),y(\"div\",{key:r.symbol+v+r.timeframe,class:\"flex mt-4\"},[d(i,{modelValue:r.symbol,\"onUpdate:modelValue\":a=>r.symbol=a,query:g.value,\"onUpdate:query\":o[2]||(o[2]=a=>g.value=a),\"clear-search-on-close\":\"\",class:\"w-full\",ui:{rounded:\"rounded-none rounded-l\"},searchable:\"\",options:b.value,placeholder:\"Select a symbol...\",onChange:o[3]||(o[3]=a=>g.value=\"\")},{empty:R(()=>o[7]||(o[7]=[S(\"Start typing...\")])),_:2},1032,[\"modelValue\",\"onUpdate:modelValue\",\"query\",\"options\"]),d(i,{modelValue:r.timeframe,\"onUpdate:modelValue\":a=>r.timeframe=a,class:\"w-full\",ui:{rounded:\"rounded-none rounded-r\"},\"value-attribute\":\"value\",options:t.timeframes},null,8,[\"modelValue\",\"onUpdate:modelValue\",\"options\"]),d(s,{variant:\"link\",color:\"gray\",icon:\"i-heroicons-trash\",onClick:a=>T(r)},null,8,[\"onClick\"]),t.form.routes.length>1?(n(),c(s,{key:0,class:\"\",variant:\"link\",color:\"gray\",icon:\"i-heroicons-document-duplicate\",onClick:a=>L(r)},null,8,[\"onClick\"])):p(\"\",!0),t.form.data_routes.length>1?(n(),c(s,{key:1,class:\"\",variant:\"link\",color:\"gray\",icon:\"i-heroicons-arrow-down\",disabled:t.form.data_routes.indexOf(r)===t.form.data_routes.length-1,onClick:a=>W(r)},null,8,[\"disabled\",\"onClick\"])):p(\"\",!0),t.form.data_routes.length>1?(n(),c(s,{key:2,class:\"\",variant:\"link\",color:\"gray\",icon:\"i-heroicons-arrow-up\",disabled:t.form.data_routes.indexOf(r)===0,onClick:a=>P(r)},null,8,[\"disabled\",\"onClick\"])):p(\"\",!0)]))),128))])}}});export{ae as _};\n"
  },
  {
    "path": "jesse/static/_nuxt/CYgUR4L5.js",
    "content": "import e from\"./BMYPR7BL.js\";import t from\"./D9R-vmeu.js\";import\"./ySlJ1b_l.js\";import\"./BPhBrDlE.js\";const n=Object.freeze(JSON.parse(`{\"displayName\":\"ASP.NET Razor\",\"fileTypes\":[\"razor\",\"cshtml\"],\"injections\":{\"string.quoted.double.html\":{\"patterns\":[{\"include\":\"#explicit-razor-expression\"},{\"include\":\"#implicit-expression\"}]},\"string.quoted.single.html\":{\"patterns\":[{\"include\":\"#explicit-razor-expression\"},{\"include\":\"#implicit-expression\"}]}},\"name\":\"razor\",\"patterns\":[{\"include\":\"#razor-control-structures\"},{\"include\":\"text.html.basic\"}],\"repository\":{\"addTagHelper-directive\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.control.razor.directive.addTagHelper\"},\"3\":{\"patterns\":[{\"include\":\"#tagHelper-directive-argument\"}]}},\"match\":\"(@)(addTagHelper)\\\\\\\\s+([^$]+)?\",\"name\":\"meta.directive\"},\"attribute-directive\":{\"begin\":\"(@)(attribute)\\\\\\\\b\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.control.razor.directive.attribute\"}},\"end\":\"(?<=\\\\\\\\])|$\",\"name\":\"meta.directive\",\"patterns\":[{\"include\":\"source.cs#attribute-section\"}]},\"await-prefix\":{\"match\":\"(await)\\\\\\\\s+\",\"name\":\"keyword.other.await.cs\"},\"balanced-brackets-csharp\":{\"begin\":\"(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.squarebracket.open.cs\"}},\"end\":\"(\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.squarebracket.close.cs\"}},\"name\":\"razor.test.balanced.brackets\",\"patterns\":[{\"include\":\"source.cs\"}]},\"balanced-parenthesis-csharp\":{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"name\":\"razor.test.balanced.parenthesis\",\"patterns\":[{\"include\":\"source.cs\"}]},\"catch-clause\":{\"begin\":\"(?:^|(?<=}))\\\\\\\\s*(catch)\\\\\\\\b\\\\\\\\s*?(?=[\\\\\\\\n\\\\\\\\(\\\\\\\\{])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.try.catch.cs\"}},\"end\":\"(?<=})\",\"name\":\"meta.statement.catch.razor\",\"patterns\":[{\"include\":\"#catch-condition\"},{\"include\":\"source.cs#when-clause\"},{\"include\":\"#csharp-code-block\"},{\"include\":\"#razor-codeblock-body\"}]},\"catch-condition\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"source.cs#type\"}]},\"6\":{\"name\":\"entity.name.variable.local.cs\"}},\"match\":\"(?<type-name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name-and-type-args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type-args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type-args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name-and-type-args>)*|(?<tuple>\\\\\\\\s*\\\\\\\\((?:[^\\\\\\\\(\\\\\\\\)]|\\\\\\\\g<tuple>)+\\\\\\\\)))(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*)*))\\\\\\\\s*(?:(\\\\\\\\g<identifier>)\\\\\\\\b)?\"}]},\"code-directive\":{\"begin\":\"(@)(code)((?=\\\\\\\\{)|\\\\\\\\s+)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.control.razor.directive.code\"}},\"end\":\"(?<=})|\\\\\\\\s\",\"patterns\":[{\"include\":\"#directive-codeblock\"}]},\"csharp-code-block\":{\"begin\":\"(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.curlybrace.open.cs\"}},\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.curlybrace.close.cs\"}},\"name\":\"meta.structure.razor.csharp.codeblock\",\"patterns\":[{\"include\":\"#razor-codeblock-body\"}]},\"csharp-condition\":{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"source.cs#local-variable-declaration\"},{\"include\":\"source.cs#expression\"},{\"include\":\"source.cs#punctuation-comma\"},{\"include\":\"source.cs#punctuation-semicolon\"}]},\"directive-codeblock\":{\"begin\":\"(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.razor.directive.codeblock.open\"}},\"contentName\":\"source.cs\",\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.razor.directive.codeblock.close\"}},\"name\":\"meta.structure.razor.directive.codeblock\",\"patterns\":[{\"include\":\"source.cs#class-or-struct-members\"}]},\"directive-markupblock\":{\"begin\":\"(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.razor.directive.codeblock.open\"}},\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.razor.directive.codeblock.close\"}},\"name\":\"meta.structure.razor.directive.markblock\",\"patterns\":[{\"include\":\"$self\"}]},\"directives\":{\"patterns\":[{\"include\":\"#code-directive\"},{\"include\":\"#functions-directive\"},{\"include\":\"#page-directive\"},{\"include\":\"#addTagHelper-directive\"},{\"include\":\"#removeTagHelper-directive\"},{\"include\":\"#tagHelperPrefix-directive\"},{\"include\":\"#model-directive\"},{\"include\":\"#inherits-directive\"},{\"include\":\"#implements-directive\"},{\"include\":\"#namespace-directive\"},{\"include\":\"#inject-directive\"},{\"include\":\"#attribute-directive\"},{\"include\":\"#section-directive\"},{\"include\":\"#layout-directive\"},{\"include\":\"#using-directive\"},{\"include\":\"#rendermode-directive\"},{\"include\":\"#preservewhitespace-directive\"},{\"include\":\"#typeparam-directive\"}]},\"do-statement\":{\"begin\":\"(?:(@))(do)\\\\\\\\b\\\\\\\\s\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.control.loop.do.cs\"}},\"end\":\"(?<=})\",\"name\":\"meta.statement.do.razor\",\"patterns\":[{\"include\":\"#csharp-condition\"},{\"include\":\"#csharp-code-block\"},{\"include\":\"#razor-codeblock-body\"}]},\"do-statement-with-optional-transition\":{\"begin\":\"(?:^\\\\\\\\s*|(@))(do)\\\\\\\\b\\\\\\\\s\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.control.loop.do.cs\"}},\"end\":\"(?<=})\",\"name\":\"meta.statement.do.razor\",\"patterns\":[{\"include\":\"#csharp-condition\"},{\"include\":\"#csharp-code-block\"},{\"include\":\"#razor-codeblock-body\"}]},\"else-part\":{\"begin\":\"(?:^|(?<=}))\\\\\\\\s*(else)\\\\\\\\b\\\\\\\\s*?(?: (if))?\\\\\\\\s*?(?=[\\\\\\\\n\\\\\\\\(\\\\\\\\{])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.conditional.else.cs\"},\"2\":{\"name\":\"keyword.control.conditional.if.cs\"}},\"end\":\"(?<=})\",\"name\":\"meta.statement.else.razor\",\"patterns\":[{\"include\":\"#csharp-condition\"},{\"include\":\"#csharp-code-block\"},{\"include\":\"#razor-codeblock-body\"}]},\"escaped-transition\":{\"match\":\"@@\",\"name\":\"constant.character.escape.razor.transition\"},\"explicit-razor-expression\":{\"begin\":\"(@)\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.cshtml\"},\"1\":{\"patterns\":[{\"include\":\"#transition\"}]}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.cshtml\"}},\"name\":\"meta.expression.explicit.cshtml\",\"patterns\":[{\"include\":\"source.cs#expression\"}]},\"finally-clause\":{\"begin\":\"(?:^|(?<=}))\\\\\\\\s*(finally)\\\\\\\\b\\\\\\\\s*?(?=[\\\\\\\\n\\\\\\\\{])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.try.finally.cs\"}},\"end\":\"(?<=})\",\"name\":\"meta.statement.finally.razor\",\"patterns\":[{\"include\":\"#csharp-code-block\"},{\"include\":\"#razor-codeblock-body\"}]},\"for-statement\":{\"begin\":\"(?:(@))(for)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.control.loop.for.cs\"}},\"end\":\"(?<=})\",\"name\":\"meta.statement.for.razor\",\"patterns\":[{\"include\":\"#csharp-condition\"},{\"include\":\"#csharp-code-block\"},{\"include\":\"#razor-codeblock-body\"}]},\"for-statement-with-optional-transition\":{\"begin\":\"(?:^\\\\\\\\s*|(@))(for)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.control.loop.for.cs\"}},\"end\":\"(?<=})\",\"name\":\"meta.statement.for.razor\",\"patterns\":[{\"include\":\"#csharp-condition\"},{\"include\":\"#csharp-code-block\"},{\"include\":\"#razor-codeblock-body\"}]},\"foreach-condition\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.var.cs\"},\"2\":{\"patterns\":[{\"include\":\"source.cs#type\"}]},\"7\":{\"name\":\"entity.name.variable.local.cs\"},\"8\":{\"name\":\"keyword.control.loop.in.cs\"}},\"match\":\"(?:(\\\\\\\\bvar\\\\\\\\b)|(?<type-name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name-and-type-args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type-args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type-args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name-and-type-args>)*|(?<tuple>\\\\\\\\s*\\\\\\\\((?:[^\\\\\\\\(\\\\\\\\)]|\\\\\\\\g<tuple>)+\\\\\\\\)))(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*)*)))\\\\\\\\s+(\\\\\\\\g<identifier>)\\\\\\\\s+\\\\\\\\b(in)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.var.cs\"},\"2\":{\"patterns\":[{\"include\":\"source.cs#tuple-declaration-deconstruction-element-list\"}]},\"3\":{\"name\":\"keyword.control.loop.in.cs\"}},\"match\":\"(?:\\\\\\\\b(var)\\\\\\\\b\\\\\\\\s*)?(?<tuple>\\\\\\\\((?:[^\\\\\\\\(\\\\\\\\)]|\\\\\\\\g<tuple>)+\\\\\\\\))\\\\\\\\s+\\\\\\\\b(in)\\\\\\\\b\"},{\"include\":\"source.cs#expression\"}]},\"foreach-statement\":{\"begin\":\"(?:(@)(await\\\\\\\\s+)?)(foreach)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"patterns\":[{\"include\":\"#await-prefix\"}]},\"3\":{\"name\":\"keyword.control.loop.foreach.cs\"}},\"end\":\"(?<=})\",\"name\":\"meta.statement.foreach.razor\",\"patterns\":[{\"include\":\"#foreach-condition\"},{\"include\":\"#csharp-code-block\"},{\"include\":\"#razor-codeblock-body\"}]},\"foreach-statement-with-optional-transition\":{\"begin\":\"(?:^\\\\\\\\s*|(@)(await\\\\\\\\s+)?)(foreach)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"patterns\":[{\"include\":\"#await-prefix\"}]},\"3\":{\"name\":\"keyword.control.loop.foreach.cs\"}},\"end\":\"(?<=})\",\"name\":\"meta.statement.foreach.razor\",\"patterns\":[{\"include\":\"#foreach-condition\"},{\"include\":\"#csharp-code-block\"},{\"include\":\"#razor-codeblock-body\"}]},\"functions-directive\":{\"begin\":\"(@)(functions)((?=\\\\\\\\{)|\\\\\\\\s+)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.control.razor.directive.functions\"}},\"end\":\"(?<=})|\\\\\\\\s\",\"patterns\":[{\"include\":\"#directive-codeblock\"}]},\"if-statement\":{\"begin\":\"(?:(@))(if)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.control.conditional.if.cs\"}},\"end\":\"(?<=})\",\"name\":\"meta.statement.if.razor\",\"patterns\":[{\"include\":\"#csharp-condition\"},{\"include\":\"#csharp-code-block\"},{\"include\":\"#razor-codeblock-body\"}]},\"if-statement-with-optional-transition\":{\"begin\":\"(?:^\\\\\\\\s*|(@))(if)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.control.conditional.if.cs\"}},\"end\":\"(?<=})\",\"name\":\"meta.statement.if.razor\",\"patterns\":[{\"include\":\"#csharp-condition\"},{\"include\":\"#csharp-code-block\"},{\"include\":\"#razor-codeblock-body\"}]},\"implements-directive\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.control.razor.directive.implements\"},\"3\":{\"patterns\":[{\"include\":\"source.cs#type\"}]}},\"match\":\"(@)(implements)\\\\\\\\s+([^$]+)?\",\"name\":\"meta.directive\"},\"implicit-expression\":{\"begin\":\"(?<![[:alpha:][:alnum:]])(@)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]}},\"contentName\":\"source.cs\",\"end\":\"(?=[\\\\\\\\s<>\\\\\\\\{\\\\\\\\}\\\\\\\\)\\\\\\\\]'\\\\\"])\",\"name\":\"meta.expression.implicit.cshtml\",\"patterns\":[{\"include\":\"#await-prefix\"},{\"include\":\"#implicit-expression-body\"}]},\"implicit-expression-accessor\":{\"match\":\"(?<=\\\\\\\\.)[_[:alpha:]][_[:alnum:]]*\",\"name\":\"variable.other.object.property.cs\"},\"implicit-expression-accessor-start\":{\"begin\":\"([_[:alpha:]][_[:alnum:]]*)\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.object.cs\"}},\"end\":\"(?=[\\\\\\\\s<>\\\\\\\\{\\\\\\\\}\\\\\\\\)\\\\\\\\]'\\\\\"])\",\"patterns\":[{\"include\":\"#implicit-expression-continuation\"}]},\"implicit-expression-body\":{\"end\":\"(?=[\\\\\\\\s<>\\\\\\\\{\\\\\\\\}\\\\\\\\)\\\\\\\\]'\\\\\"])\",\"patterns\":[{\"include\":\"#implicit-expression-invocation-start\"},{\"include\":\"#implicit-expression-accessor-start\"}]},\"implicit-expression-continuation\":{\"end\":\"(?=[\\\\\\\\s<>\\\\\\\\{\\\\\\\\}\\\\\\\\)\\\\\\\\]'\\\\\"])\",\"patterns\":[{\"include\":\"#balanced-parenthesis-csharp\"},{\"include\":\"#balanced-brackets-csharp\"},{\"include\":\"#implicit-expression-invocation\"},{\"include\":\"#implicit-expression-accessor\"},{\"include\":\"#implicit-expression-extension\"}]},\"implicit-expression-dot-operator\":{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.cs\"}},\"match\":\"(\\\\\\\\.)(?=[_[:alpha:]][_[:alnum:]]*)\"},\"implicit-expression-invocation\":{\"match\":\"(?<=\\\\\\\\.)[_[:alpha:]][_[:alnum:]]*(?=\\\\\\\\()\",\"name\":\"entity.name.function.cs\"},\"implicit-expression-invocation-start\":{\"begin\":\"([_[:alpha:]][_[:alnum:]]*)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.cs\"}},\"end\":\"(?=[\\\\\\\\s<>\\\\\\\\{\\\\\\\\}\\\\\\\\)\\\\\\\\]'\\\\\"])\",\"patterns\":[{\"include\":\"#implicit-expression-continuation\"}]},\"implicit-expression-null-conditional-operator\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.null-conditional.cs\"}},\"match\":\"(\\\\\\\\?)(?=[.\\\\\\\\[])\"},\"implicit-expression-null-forgiveness-operator\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.logical.cs\"}},\"match\":\"(\\\\\\\\!)(?=(?:\\\\\\\\.[_[:alpha:]][_[:alnum:]]*)|\\\\\\\\?|[\\\\\\\\[\\\\\\\\(])\"},\"implicit-expression-operator\":{\"patterns\":[{\"include\":\"#implicit-expression-dot-operator\"},{\"include\":\"#implicit-expression-null-conditional-operator\"},{\"include\":\"#implicit-expression-null-forgiveness-operator\"}]},\"inherits-directive\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.control.razor.directive.inherits\"},\"3\":{\"patterns\":[{\"include\":\"source.cs#type\"}]}},\"match\":\"(@)(inherits)\\\\\\\\s+([^$]+)?\",\"name\":\"meta.directive\"},\"inject-directive\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.control.razor.directive.inject\"},\"3\":{\"patterns\":[{\"include\":\"source.cs#type\"}]},\"4\":{\"name\":\"entity.name.variable.property.cs\"}},\"match\":\"(@)(inject)\\\\\\\\s*([\\\\\\\\S\\\\\\\\s]+?)?\\\\\\\\s*([_[:alpha:]][_[:alnum:]]*)?\\\\\\\\s*(?=$)\",\"name\":\"meta.directive\"},\"layout-directive\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.control.razor.directive.layout\"},\"3\":{\"patterns\":[{\"include\":\"source.cs#type\"}]}},\"match\":\"(@)(layout)\\\\\\\\s+([^$]+)?\",\"name\":\"meta.directive\"},\"lock-statement\":{\"begin\":\"(?:(@))(lock)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.other.lock.cs\"}},\"end\":\"(?<=})\",\"name\":\"meta.statement.lock.razor\",\"patterns\":[{\"include\":\"#csharp-condition\"},{\"include\":\"#csharp-code-block\"},{\"include\":\"#razor-codeblock-body\"}]},\"lock-statement-with-optional-transition\":{\"begin\":\"(?:^\\\\\\\\s*|(@))(lock)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.other.lock.cs\"}},\"end\":\"(?<=})\",\"name\":\"meta.statement.lock.razor\",\"patterns\":[{\"include\":\"#csharp-condition\"},{\"include\":\"#csharp-code-block\"},{\"include\":\"#razor-codeblock-body\"}]},\"model-directive\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.control.razor.directive.model\"},\"3\":{\"patterns\":[{\"include\":\"source.cs#type\"}]}},\"match\":\"(@)(model)\\\\\\\\s+([^$]+)?\",\"name\":\"meta.directive\"},\"namespace-directive\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.control.razor.directive.namespace\"},\"3\":{\"patterns\":[{\"include\":\"#namespace-directive-argument\"}]}},\"match\":\"(@)(namespace)\\\\\\\\s+([^\\\\\\\\s]+)?\",\"name\":\"meta.directive\"},\"namespace-directive-argument\":{\"captures\":{\"1\":{\"name\":\"entity.name.type.namespace.cs\"},\"2\":{\"name\":\"punctuation.accessor.cs\"}},\"match\":\"([_[:alpha:]][_[:alnum:]]*)(\\\\\\\\.)?\"},\"non-void-tag\":{\"begin\":\"(?=<(!)?([^/\\\\\\\\s>]+)(\\\\\\\\s|/?>))\",\"end\":\"(</)(\\\\\\\\2)\\\\\\\\s*(>)|(/>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"},\"3\":{\"name\":\"punctuation.definition.tag.end.html\"},\"4\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"patterns\":[{\"begin\":\"(<)(!)?([^/\\\\\\\\s>]+)(?=\\\\\\\\s|/?>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"constant.character.escape.razor.tagHelperOptOut\"},\"3\":{\"name\":\"entity.name.tag.html\"}},\"end\":\"(?=/?>)\",\"patterns\":[{\"include\":\"#razor-control-structures\"},{\"include\":\"text.html.basic#attribute\"}]},{\"begin\":\">\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"end\":\"(?=</)\",\"patterns\":[{\"include\":\"#wellformed-html\"},{\"include\":\"$self\"}]}]},\"optionally-transitioned-csharp-control-structures\":{\"patterns\":[{\"include\":\"#using-statement-with-optional-transition\"},{\"include\":\"#if-statement-with-optional-transition\"},{\"include\":\"#else-part\"},{\"include\":\"#foreach-statement-with-optional-transition\"},{\"include\":\"#for-statement-with-optional-transition\"},{\"include\":\"#while-statement\"},{\"include\":\"#switch-statement-with-optional-transition\"},{\"include\":\"#lock-statement-with-optional-transition\"},{\"include\":\"#do-statement-with-optional-transition\"},{\"include\":\"#try-statement-with-optional-transition\"}]},\"optionally-transitioned-razor-control-structures\":{\"patterns\":[{\"include\":\"#razor-comment\"},{\"include\":\"#razor-codeblock\"},{\"include\":\"#explicit-razor-expression\"},{\"include\":\"#escaped-transition\"},{\"include\":\"#directives\"},{\"include\":\"#optionally-transitioned-csharp-control-structures\"},{\"include\":\"#implicit-expression\"}]},\"page-directive\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.control.razor.directive.page\"},\"3\":{\"patterns\":[{\"include\":\"source.cs#string-literal\"}]}},\"match\":\"(@)(page)\\\\\\\\s+([^$]+)?\",\"name\":\"meta.directive\"},\"preservewhitespace-directive\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.control.razor.directive.preservewhitespace\"},\"3\":{\"patterns\":[{\"include\":\"source.cs#boolean-literal\"}]}},\"match\":\"(@)(preservewhitespace)\\\\\\\\s+([^$]+)?\",\"name\":\"meta.directive\"},\"razor-codeblock\":{\"begin\":\"(@)(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.control.razor.directive.codeblock.open\"}},\"contentName\":\"source.cs\",\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.razor.directive.codeblock.close\"}},\"name\":\"meta.structure.razor.codeblock\",\"patterns\":[{\"include\":\"#razor-codeblock-body\"}]},\"razor-codeblock-body\":{\"patterns\":[{\"include\":\"#text-tag\"},{\"include\":\"#wellformed-html\"},{\"include\":\"#razor-single-line-markup\"},{\"include\":\"#optionally-transitioned-razor-control-structures\"},{\"include\":\"source.cs\"}]},\"razor-comment\":{\"begin\":\"(@)(\\\\\\\\*)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.control.razor.comment.star\"}},\"contentName\":\"comment.block.razor\",\"end\":\"(\\\\\\\\*)(@)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.razor.comment.star\"},\"2\":{\"patterns\":[{\"include\":\"#transition\"}]}},\"name\":\"meta.comment.razor\"},\"razor-control-structures\":{\"patterns\":[{\"include\":\"#razor-comment\"},{\"include\":\"#razor-codeblock\"},{\"include\":\"#explicit-razor-expression\"},{\"include\":\"#escaped-transition\"},{\"include\":\"#directives\"},{\"include\":\"#transitioned-csharp-control-structures\"},{\"include\":\"#implicit-expression\"}]},\"razor-single-line-markup\":{\"captures\":{\"1\":{\"name\":\"keyword.control.razor.singleLineMarkup\"},\"2\":{\"patterns\":[{\"include\":\"#razor-control-structures\"},{\"include\":\"text.html.basic\"}]}},\"match\":\"(\\\\\\\\@\\\\\\\\:)([^$]*)$\"},\"removeTagHelper-directive\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.control.razor.directive.removeTagHelper\"},\"3\":{\"patterns\":[{\"include\":\"#tagHelper-directive-argument\"}]}},\"match\":\"(@)(removeTagHelper)\\\\\\\\s+([^$]+)?\",\"name\":\"meta.directive\"},\"rendermode-directive\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.control.razor.directive.rendermode\"},\"3\":{\"patterns\":[{\"include\":\"source.cs#type\"}]}},\"match\":\"(@)(rendermode)\\\\\\\\s+([^$]+)?\",\"name\":\"meta.directive\"},\"section-directive\":{\"begin\":\"(@)(section)\\\\\\\\b\\\\\\\\s+([_[:alpha:]][_[:alnum:]]*)?\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.control.razor.directive.section\"},\"3\":{\"name\":\"variable.other.razor.directive.sectionName\"}},\"end\":\"(?<=})\",\"name\":\"meta.directive.block\",\"patterns\":[{\"include\":\"#directive-markupblock\"}]},\"switch-code-block\":{\"begin\":\"(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.curlybrace.open.cs\"}},\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.curlybrace.close.cs\"}},\"name\":\"meta.structure.razor.csharp.codeblock.switch\",\"patterns\":[{\"include\":\"source.cs#switch-label\"},{\"include\":\"#csharp-code-block\"},{\"include\":\"#razor-codeblock-body\"}]},\"switch-statement\":{\"begin\":\"(?:(@))(switch)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.control.switch.cs\"}},\"end\":\"(?<=})\",\"name\":\"meta.statement.switch.razor\",\"patterns\":[{\"include\":\"#csharp-condition\"},{\"include\":\"#switch-code-block\"},{\"include\":\"#razor-codeblock-body\"}]},\"switch-statement-with-optional-transition\":{\"begin\":\"(?:^\\\\\\\\s*|(@))(switch)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.control.switch.cs\"}},\"end\":\"(?<=})\",\"name\":\"meta.statement.switch.razor\",\"patterns\":[{\"include\":\"#csharp-condition\"},{\"include\":\"#switch-code-block\"},{\"include\":\"#razor-codeblock-body\"}]},\"tagHelper-directive-argument\":{\"patterns\":[{\"include\":\"source.cs#string-literal\"},{\"include\":\"#unquoted-string-argument\"}]},\"tagHelperPrefix-directive\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.control.razor.directive.tagHelperPrefix\"},\"3\":{\"patterns\":[{\"include\":\"#tagHelper-directive-argument\"}]}},\"match\":\"(@)(tagHelperPrefix)\\\\\\\\s+([^$]+)?\",\"name\":\"meta.directive\"},\"text-tag\":{\"begin\":\"(<text\\\\\\\\s*>)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.cshtml.transition.textTag.open\"}},\"end\":\"(</text>)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.cshtml.transition.textTag.close\"}},\"patterns\":[{\"include\":\"#wellformed-html\"},{\"include\":\"$self\"}]},\"transition\":{\"match\":\"@\",\"name\":\"keyword.control.cshtml.transition\"},\"transitioned-csharp-control-structures\":{\"patterns\":[{\"include\":\"#using-statement\"},{\"include\":\"#if-statement\"},{\"include\":\"#else-part\"},{\"include\":\"#foreach-statement\"},{\"include\":\"#for-statement\"},{\"include\":\"#while-statement\"},{\"include\":\"#switch-statement\"},{\"include\":\"#lock-statement\"},{\"include\":\"#do-statement\"},{\"include\":\"#try-statement\"}]},\"try-block\":{\"begin\":\"(?:(@))(try)\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.control.try.cs\"}},\"end\":\"(?<=})\",\"name\":\"meta.statement.try.razor\",\"patterns\":[{\"include\":\"#csharp-condition\"},{\"include\":\"#csharp-code-block\"},{\"include\":\"#razor-codeblock-body\"}]},\"try-block-with-optional-transition\":{\"begin\":\"(?:^\\\\\\\\s*|(@))(try)\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.control.try.cs\"}},\"end\":\"(?<=})\",\"name\":\"meta.statement.try.razor\",\"patterns\":[{\"include\":\"#csharp-condition\"},{\"include\":\"#csharp-code-block\"},{\"include\":\"#razor-codeblock-body\"}]},\"try-statement\":{\"patterns\":[{\"include\":\"#try-block\"},{\"include\":\"#catch-clause\"},{\"include\":\"#finally-clause\"}]},\"try-statement-with-optional-transition\":{\"patterns\":[{\"include\":\"#try-block-with-optional-transition\"},{\"include\":\"#catch-clause\"},{\"include\":\"#finally-clause\"}]},\"typeparam-directive\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.control.razor.directive.typeparam\"},\"3\":{\"patterns\":[{\"include\":\"source.cs#type\"}]}},\"match\":\"(@)(typeparam)\\\\\\\\s+([^$]+)?\",\"name\":\"meta.directive\"},\"unquoted-string-argument\":{\"match\":\"[^$]+\",\"name\":\"string.quoted.double.cs\"},\"using-alias-directive\":{\"captures\":{\"1\":{\"name\":\"entity.name.type.alias.cs\"},\"2\":{\"name\":\"keyword.operator.assignment.cs\"},\"3\":{\"patterns\":[{\"include\":\"source.cs#type\"}]}},\"match\":\"([_[:alpha:]][_[:alnum:]]*)\\\\\\\\b\\\\\\\\s*(=)\\\\\\\\s*(.+)\\\\\\\\s*\"},\"using-directive\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.other.using.cs\"},\"3\":{\"patterns\":[{\"include\":\"#using-static-directive\"},{\"include\":\"#using-alias-directive\"},{\"include\":\"#using-standard-directive\"}]},\"4\":{\"name\":\"keyword.control.razor.optionalSemicolon\"}},\"match\":\"(@)(using)\\\\\\\\b\\\\\\\\s+(?!\\\\\\\\(|\\\\\\\\s)(.+?)?(;)?$\",\"name\":\"meta.directive\"},\"using-standard-directive\":{\"captures\":{\"1\":{\"name\":\"entity.name.type.namespace.cs\"}},\"match\":\"([_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\"},\"using-statement\":{\"begin\":\"(?:(@))(using)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.other.using.cs\"}},\"end\":\"(?<=})\",\"name\":\"meta.statement.using.razor\",\"patterns\":[{\"include\":\"#csharp-condition\"},{\"include\":\"#csharp-code-block\"},{\"include\":\"#razor-codeblock-body\"}]},\"using-statement-with-optional-transition\":{\"begin\":\"(?:^\\\\\\\\s*|(@))(using)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.other.using.cs\"}},\"end\":\"(?<=})\",\"name\":\"meta.statement.using.razor\",\"patterns\":[{\"include\":\"#csharp-condition\"},{\"include\":\"#csharp-code-block\"},{\"include\":\"#razor-codeblock-body\"}]},\"using-static-directive\":{\"captures\":{\"1\":{\"name\":\"keyword.other.static.cs\"},\"2\":{\"patterns\":[{\"include\":\"source.cs#type\"}]}},\"match\":\"(static)\\\\\\\\b\\\\\\\\s+(.+)\"},\"void-tag\":{\"begin\":\"(?i)(<)(!)?(area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)(?=\\\\\\\\s|/?>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"constant.character.escape.razor.tagHelperOptOut\"},\"3\":{\"name\":\"entity.name.tag.html\"}},\"end\":\"/?>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.structure.$3.void.html\",\"patterns\":[{\"include\":\"text.html.basic#attribute\"}]},\"wellformed-html\":{\"patterns\":[{\"include\":\"#void-tag\"},{\"include\":\"#non-void-tag\"}]},\"while-statement\":{\"begin\":\"(?:(@)|^\\\\\\\\s*|(?<=})\\\\\\\\s*)(while)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#transition\"}]},\"2\":{\"name\":\"keyword.control.loop.while.cs\"}},\"end\":\"(?<=})|(;)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.cs\"}},\"name\":\"meta.statement.while.razor\",\"patterns\":[{\"include\":\"#csharp-condition\"},{\"include\":\"#csharp-code-block\"},{\"include\":\"#razor-codeblock-body\"}]}},\"scopeName\":\"text.aspnetcorerazor\",\"embeddedLangs\":[\"html\",\"csharp\"]}`)),o=[...e,...t,n];export{o as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CZe0XNBd.js",
    "content": "import e from\"./BMYPR7BL.js\";import n from\"./cPjAOO0u.js\";import t from\"./COK4E0Yg.js\";import a from\"./ySlJ1b_l.js\";import r from\"./BQoSv7ci.js\";import i from\"./BPhBrDlE.js\";import\"./xI-RfyKK.js\";const p=Object.freeze(JSON.parse(`{\"displayName\":\"Blade\",\"fileTypes\":[\"blade.php\"],\"foldingStartMarker\":\"(/\\\\\\\\*|\\\\\\\\{\\\\\\\\s*$|<<<HTML)\",\"foldingStopMarker\":\"(\\\\\\\\*/|^\\\\\\\\s*\\\\\\\\}|^HTML;)\",\"injections\":{\"text.html.php.blade - (meta.embedded | meta.tag | comment.block.blade), L:(text.html.php.blade meta.tag - (comment.block.blade | meta.embedded.block.blade)), L:(source.js.embedded.html - (comment.block.blade | meta.embedded.block.blade))\":{\"patterns\":[{\"include\":\"#blade\"},{\"begin\":\"(^\\\\\\\\s*)(?=<\\\\\\\\?(?![^?]*\\\\\\\\?>))\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.whitespace.embedded.leading.php\"}},\"end\":\"(?!\\\\\\\\G)(\\\\\\\\s*$\\\\\\\\n)?\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.whitespace.embedded.trailing.php\"}},\"patterns\":[{\"begin\":\"<\\\\\\\\?(?i:php|=)?\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"}},\"contentName\":\"source.php\",\"end\":\"(\\\\\\\\?)>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"source.php\"}},\"name\":\"meta.embedded.block.php\",\"patterns\":[{\"include\":\"#language\"}]}]},{\"begin\":\"<\\\\\\\\?(?i:php|=)?(?![^?]*\\\\\\\\?>)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"}},\"contentName\":\"source.php\",\"end\":\"(\\\\\\\\?)>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"source.php\"}},\"name\":\"meta.embedded.block.php\",\"patterns\":[{\"include\":\"#language\"}]},{\"begin\":\"<\\\\\\\\?(?i:php|=)?\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"}},\"name\":\"meta.embedded.line.php\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"source.php\"},\"2\":{\"name\":\"punctuation.section.embedded.end.php\"},\"3\":{\"name\":\"source.php\"}},\"match\":\"\\\\\\\\G(\\\\\\\\s*)((\\\\\\\\?))(?=>)\",\"name\":\"meta.special.empty-tag.php\"},{\"begin\":\"\\\\\\\\G\",\"contentName\":\"source.php\",\"end\":\"(\\\\\\\\?)(?=>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"source.php\"}},\"patterns\":[{\"include\":\"#language\"}]}]}]}},\"name\":\"blade\",\"patterns\":[{\"include\":\"text.html.basic\"}],\"repository\":{\"balance_brackets\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#balance_brackets\"}]},{\"match\":\"[^()]+\"}]},\"blade\":{\"patterns\":[{\"begin\":\"{{--\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.blade\"}},\"end\":\"--}}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.blade\"}},\"name\":\"comment.block.blade\",\"patterns\":[{\"begin\":\"(^\\\\\\\\s*)(?=<\\\\\\\\?(?![^?]*\\\\\\\\?>))\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.whitespace.embedded.leading.php\"}},\"end\":\"(?!\\\\\\\\G)(\\\\\\\\s*$\\\\\\\\n)?\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.whitespace.embedded.trailing.php\"}},\"name\":\"invalid.illegal.php-code-in-comment.blade\",\"patterns\":[{\"begin\":\"<\\\\\\\\?(?i:php|=)?\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"}},\"contentName\":\"source.php\",\"end\":\"(\\\\\\\\?)>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"source.php\"}},\"name\":\"meta.embedded.block.php\",\"patterns\":[{\"include\":\"#language\"}]}]},{\"begin\":\"<\\\\\\\\?(?i:php|=)?(?![^?]*\\\\\\\\?>)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"}},\"contentName\":\"source.php\",\"end\":\"(\\\\\\\\?)>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"source.php\"}},\"name\":\"invalid.illegal.php-code-in-comment.blade.meta.embedded.block.php\",\"patterns\":[{\"include\":\"#language\"}]},{\"begin\":\"<\\\\\\\\?(?i:php|=)?\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"}},\"name\":\"invalid.illegal.php-code-in-comment.blade.meta.embedded.line.php\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"source.php\"},\"2\":{\"name\":\"punctuation.section.embedded.end.php\"},\"3\":{\"name\":\"source.php\"}},\"match\":\"\\\\\\\\G(\\\\\\\\s*)((\\\\\\\\?))(?=>)\",\"name\":\"meta.special.empty-tag.php\"},{\"begin\":\"\\\\\\\\G\",\"contentName\":\"source.php\",\"end\":\"(\\\\\\\\?)(?=>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"source.php\"}},\"patterns\":[{\"include\":\"#language\"}]}]}]},{\"begin\":\"(?<!@){{{\",\"beginCaptures\":{\"0\":{\"name\":\"support.function.construct.begin.blade\"}},\"contentName\":\"source.php\",\"end\":\"}}}\",\"endCaptures\":{\"0\":{\"name\":\"support.function.construct.end.blade\"},\"1\":{\"name\":\"source.php\"}},\"name\":\"meta.function.echo.blade\",\"patterns\":[{\"include\":\"#language\"}]},{\"begin\":\"(?<![@{]){{\",\"beginCaptures\":{\"0\":{\"name\":\"support.function.construct.begin.blade\"}},\"contentName\":\"source.php\",\"end\":\"}}\",\"endCaptures\":{\"0\":{\"name\":\"support.function.construct.end.blade\"},\"1\":{\"name\":\"source.php\"}},\"name\":\"meta.function.echo.blade\",\"patterns\":[{\"include\":\"#language\"}]},{\"begin\":\"(?<!@){!!\",\"beginCaptures\":{\"0\":{\"name\":\"support.function.construct.begin.blade\"}},\"contentName\":\"source.php\",\"end\":\"!!}\",\"endCaptures\":{\"0\":{\"name\":\"support.function.construct.end.blade\"},\"1\":{\"name\":\"source.php\"}},\"name\":\"meta.function.echo.blade\",\"patterns\":[{\"include\":\"#language\"}]},{\"begin\":\"(@){{\",\"beginCaptures\":{\"0\":{\"name\":\"begin.bracket.round.blade\"},\"1\":{\"name\":\"variable.other.index.php\"}},\"contentName\":\"source.php\",\"end\":\"}}\",\"endCaptures\":{\"0\":{\"name\":\"end.bracket.round.blade\"},\"1\":{\"name\":\"source.php\"}},\"name\":\"meta.function.echo.blade\",\"patterns\":[{\"include\":\"#language\"}]},{\"begin\":\"(?<![A-Za-z0-9_@])(@(?i:auth|break|can|cannot|case|choice|component|continue|dd|dump|each|elsecan|elsecannot|elseif|empty|error|extends|for|foreach|forelse|guest|hassection|if|include|includefirst|includeif|includeunless|includewhen|inject|isset|json|lang|once|prepend|push|section|sectionMissing|slot|stack|switch|unless|unset|while|yield|servers|task|story|finished|production|slack|method|props|env|livewire|php)[\\\\\\\\t ]*)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.blade\"},\"2\":{\"name\":\"begin.bracket.round.blade.php\"}},\"contentName\":\"source.php\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"end.bracket.round.blade.php\"}},\"name\":\"meta.directive.blade\",\"patterns\":[{\"include\":\"#language\"}]},{\"begin\":\"(?<![A-Za-z0-9_@])(@(?i:append|default|else|endauth|endcan|endcannot|endcomponent|endempty|enderror|endfor|endforeach|endforelse|endguest|endif|endisset|endlang|endonce|endprepend|endpush|endsection|endslot|endswitch|endunless|endwhile|overwrite|parent|show|stop|endtask|endstory|endfinished|endproduction|endenv)[\\\\\\\\t ]*)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.blade\"},\"2\":{\"name\":\"begin.bracket.round.blade.php\"}},\"contentName\":\"comment.blade\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"end.bracket.round.blade.php\"}},\"name\":\"meta.directive.blade\",\"patterns\":[{\"include\":\"#balance_brackets\"}]},{\"match\":\"(?<![A-Za-z0-9_@])@(?:append|break|continue|csrf|default|each|else|overwrite|parent|sectionMissing|show|stack|stop|livewireStyles|livewireScripts)\\\\\\\\b\",\"name\":\"keyword.blade\"},{\"match\":\"(?<![A-Za-z0-9_@])@(end)?(?i:auth|can|cannot|component|empty|error|for|foreach|forelse|guest|if|isset|lang|prepend|push|section|slot|switch|unless|verbatim|while|task|story|finished|production|env|once)\\\\\\\\b\",\"name\":\"keyword.blade\"},{\"begin\":\"(?<![A-Za-z0-9_@])@(?i:php|setup)\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"}},\"contentName\":\"source.php\",\"end\":\"(?<![A-Za-z0-9_@])(?=@(?i:endphp|endsetup)\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"}},\"name\":\"meta.embedded.block.blade\",\"patterns\":[{\"include\":\"#language\"}]},{\"begin\":\"(?<![A-Za-z0-9_@])(@(?i:endphp|endsetup)[\\\\\\\\t ]*)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.embedded.end.php\"},\"2\":{\"name\":\"begin.bracket.round.blade.php\"}},\"contentName\":\"comment.blade\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"end.bracket.round.blade.php\"}},\"name\":\"meta.directive.blade\",\"patterns\":[{\"include\":\"#balance_brackets\"}]},{\"match\":\"(?<![A-Za-z0-9_@])@(?:(?i)endphp|endsetup)\\\\\\\\b\",\"name\":\"punctuation.section.embedded.end.php\"},{\"begin\":\"(?<![A-Za-z0-9_@])(@\\\\\\\\w+(?:::w+)?[\\\\\\\\t ]*)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.blade\"},\"2\":{\"name\":\"begin.bracket.round.blade.php\"}},\"contentName\":\"source.php\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"end.bracket.round.blade.php\"}},\"name\":\"meta.directive.custom.blade\",\"patterns\":[{\"include\":\"#language\"}]},{\"match\":\"(?<![A-Za-z0-9_@])@\\\\\\\\w+(?:::w+)?\\\\\\\\b\",\"name\":\"entity.name.function.blade\"}]},\"class-builtin\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.inheritance.php\"}},\"match\":\"(?xi)\\\\n(\\\\\\\\\\\\\\\\)?\\\\\\\\b\\\\n((APC|Append)Iterator|Array(Access|Iterator|Object)\\\\n|Bad(Function|Method)CallException\\\\n|(Caching|CallbackFilter)Iterator|Collator|Collectable|Cond|Countable|CURLFile\\\\n|Date(Interval|Period|Time(Interface|Immutable|Zone)?)?|Directory(Iterator)?|DomainException\\\\n|DOM(Attr|CdataSection|CharacterData|Comment|Document(Fragment)?|Element|EntityReference\\\\n    |Implementation|NamedNodeMap|Node(list)?|ProcessingInstruction|Text|XPath)\\\\n|(Error)?Exception|EmptyIterator\\\\n|finfo\\\\n|Ev(Check|Child|Embed|Fork|Idle|Io|Loop|Periodic|Prepare|Signal|Stat|Timer|Watcher)?\\\\n|Event(Base|Buffer(Event)?|SslContext|Http(Request|Connection)?|Config|DnsBase|Util|Listener)?\\\\n|FANNConnection|(Filter|Filesystem)Iterator\\\\n|Gender\\\\\\\\\\\\\\\\Gender|GlobIterator|Gmagick(Draw|Pixel)?\\\\n|Haru(Annotation|Destination|Doc|Encoder|Font|Image|Outline|Page)\\\\n|Http((Inflate|Deflate)?Stream|Message|Request(Pool)?|Response|QueryString)\\\\n|HRTime\\\\\\\\\\\\\\\\(PerformanceCounter|StopWatch)\\\\n|Intl(Calendar|((CodePoint|RuleBased)?Break|Parts)?Iterator|DateFormatter|TimeZone)\\\\n|Imagick(Draw|Pixel(Iterator)?)?\\\\n|InfiniteIterator|InvalidArgumentException|Iterator(Aggregate|Iterator)?\\\\n|JsonSerializable\\\\n|KTaglib_(MPEG_(File|AudioProperties)|Tag|ID3v2_(Tag|(AttachedPicture)?Frame))\\\\n|Lapack|(Length|Locale|Logic)Exception|LimitIterator|Lua(Closure)?\\\\n|Mongo(BinData|Client|Code|Collection|CommandCursor|Cursor(Exception)?|Date|DB(Ref)?|DeleteBatch\\\\n      |Grid(FS(Cursor|File)?)|Id|InsertBatch|Int(32|64)|Log|Pool|Regex|ResultException|Timestamp\\\\n      |UpdateBatch|Write(Batch|ConcernException))?\\\\n|Memcache(d)?|MessageFormatter|MultipleIterator|Mutex\\\\n|mysqli(_(driver|stmt|warning|result))?\\\\n|MysqlndUh(Connection|PreparedStatement)\\\\n|NoRewindIterator|Normalizer|NumberFormatter\\\\n|OCI-(Collection|Lob)|OuterIterator|(OutOf(Bounds|Range)|Overflow)Exception\\\\n|ParentIterator|PDO(Statement)?|Phar(Data|FileInfo)?|php_user_filter|Pool\\\\n|QuickHash(Int(Set|StringHash)|StringIntHash)\\\\n|Recursive(Array|Caching|Directory|Fallback|Filter|Iterator|Regex|Tree)?Iterator\\\\n|Reflection(Class|Function(Abstract)?|Method|Object|Parameter|Property|(Zend)?Extension)?\\\\n|RangeException|Reflector|RegexIterator|ResourceBundle|RuntimeException|RRD(Creator|Graph|Updater)\\\\n|SAM(Connection|Message)|SCA(_(SoapProxy|LocalProxy))?\\\\n|SDO_(DAS_(ChangeSummary|Data(Factory|Object)|Relational|Setting|XML(_Document)?)\\\\n     |Data(Factory|Object)|Exception|List|Model_(Property|ReflectionDataObject|Type)|Sequence)\\\\n|SeekableIterator|Serializable|SessionHandler(Interface)?|SimpleXML(Iterator|Element)|SNMP\\\\n|Soap(Client|Fault|Header|Param|Server|Var)\\\\n|SphinxClient|Spoofchecker\\\\n|Spl(DoublyLinkedList|Enum|File(Info|Object)|FixedArray|(Max|Min)?Heap|Observer|ObjectStorage\\\\n    |(Priority)?Queue|Stack|Subject|Type|TempFileObject)\\\\n|SQLite(3(Result|Stmt)?|Database|Result|Unbuffered)\\\\n|stdClass|streamWrapper|SVM(Model)?|Swish(Result(s)?|Search)?|Sync(Event|Mutex|ReaderWriter|Semaphore)\\\\n|Thread(ed)?|tidy(Node)?|TokyoTyrant(Table|Iterator|Query)?|Transliterator|Traversable\\\\n|UConverter|(Underflow|UnexpectedValue)Exception\\\\n|V8Js(Exception)?|Varnish(Admin|Log|Stat)\\\\n|Worker|Weak(Map|Ref)\\\\n|XML(Diff\\\\\\\\\\\\\\\\(Base|DOM|File|Memory)|Reader|Writer)|XsltProcessor\\\\n|Yaf_(Route_(Interface|Map|Regex|Rewrite|Simple|Supervar)\\\\n     |Action_Abstract|Application|Config_(Simple|Ini|Abstract)|Controller_Abstract\\\\n     |Dispatcher|Exception|Loader|Plugin_Abstract|Registry|Request_(Abstract|Simple|Http)\\\\n     |Response_Abstract|Router|Session|View_(Simple|Interface))\\\\n|Yar_(Client(_Exception)?|Concurrent_Client|Server(_Exception)?)\\\\n|ZipArchive|ZMQ(Context|Device|Poll|Socket)?)\\\\n\\\\\\\\b\",\"name\":\"support.class.builtin.php\"}]},\"class-name\":{\"patterns\":[{\"begin\":\"(?i)(?=\\\\\\\\\\\\\\\\?[a-z_0-9]+\\\\\\\\\\\\\\\\)\",\"end\":\"(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\\\\\\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"support.class.php\"}},\"patterns\":[{\"include\":\"#namespace\"}]},{\"include\":\"#class-builtin\"},{\"begin\":\"(?=[\\\\\\\\\\\\\\\\a-zA-Z_])\",\"end\":\"(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\\\\\\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"support.class.php\"}},\"patterns\":[{\"include\":\"#namespace\"}]}]},\"comments\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\\\\\\\\*(?=\\\\\\\\s)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.php\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.php\"}},\"name\":\"comment.block.documentation.phpdoc.php\",\"patterns\":[{\"include\":\"#php_doc\"}]},{\"begin\":\"/\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.php\"}},\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.php\"},{\"begin\":\"(^\\\\\\\\s+)?(?=//)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.php\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.php\"}},\"end\":\"\\\\\\\\n|(?=\\\\\\\\?>)\",\"name\":\"comment.line.double-slash.php\"}]},{\"begin\":\"(^\\\\\\\\s+)?(?=#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.php\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.php\"}},\"end\":\"\\\\\\\\n|(?=\\\\\\\\?>)\",\"name\":\"comment.line.number-sign.php\"}]}]},\"constants\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(TRUE|FALSE|NULL|__(FILE|DIR|FUNCTION|CLASS|METHOD|LINE|NAMESPACE)__|ON|OFF|YES|NO|NL|BR|TAB)\\\\\\\\b\",\"name\":\"constant.language.php\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.inheritance.php\"}},\"match\":\"(\\\\\\\\\\\\\\\\)?\\\\\\\\b(DEFAULT_INCLUDE_PATH|EAR_(INSTALL|EXTENSION)_DIR|E_(ALL|COMPILE_(ERROR|WARNING)|CORE_(ERROR|WARNING)|DEPRECATED|ERROR|NOTICE|PARSE|RECOVERABLE_ERROR|STRICT|USER_(DEPRECATED|ERROR|NOTICE|WARNING)|WARNING)|PHP_(ROUND_HALF_(DOWN|EVEN|ODD|UP)|(MAJOR|MINOR|RELEASE)_VERSION|MAXPATHLEN|BINDIR|SHLIB_SUFFIX|SYSCONFDIR|SAPI|CONFIG_FILE_(PATH|SCAN_DIR)|INT_(MAX|SIZE)|ZTS|OS|OUTPUT_HANDLER_(START|CONT|END)|DEBUG|DATADIR|URL_(SCHEME|HOST|USER|PORT|PASS|PATH|QUERY|FRAGMENT)|PREFIX|EXTRA_VERSION|EXTENSION_DIR|EOL|VERSION(_ID)?|WINDOWS_(NT_(SERVER|DOMAIN_CONTROLLER|WORKSTATION)|VERSION_(MAJOR|MINOR)|BUILD|SUITEMASK|SP_(MAJOR|MINOR)|PRODUCTTYPE|PLATFORM)|LIBDIR|LOCALSTATEDIR)|STD(ERR|IN|OUT)|ZEND_(DEBUG_BUILD|THREAD_SAFE))\\\\\\\\b\",\"name\":\"support.constant.core.php\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.inheritance.php\"}},\"match\":\"(\\\\\\\\\\\\\\\\)?\\\\\\\\b(__COMPILER_HALT_OFFSET__|AB(MON_(1|2|3|4|5|6|7|8|9|10|11|12)|DAY[1-7])|AM_STR|ASSERT_(ACTIVE|BAIL|CALLBACK_QUIET_EVAL|WARNING)|ALT_DIGITS|CASE_(UPPER|LOWER)|CHAR_MAX|CONNECTION_(ABORTED|NORMAL|TIMEOUT)|CODESET|COUNT_(NORMAL|RECURSIVE)|CREDITS_(ALL|DOCS|FULLPAGE|GENERAL|GROUP|MODULES|QA|SAPI)|CRYPT_(BLOWFISH|EXT_DES|MD5|SHA(256|512)|SALT_LENGTH|STD_DES)|CURRENCY_SYMBOL|D_(T_)?FMT|DATE_(ATOM|COOKIE|ISO8601|RFC(822|850|1036|1123|2822|3339)|RSS|W3C)|DAY_[1-7]|DECIMAL_POINT|DIRECTORY_SEPARATOR|ENT_(COMPAT|IGNORE|(NO)?QUOTES)|EXTR_(IF_EXISTS|OVERWRITE|PREFIX_(ALL|IF_EXISTS|INVALID|SAME)|REFS|SKIP)|ERA(_(D_(T_)?FMT)|T_FMT|YEAR)?|FRAC_DIGITS|GROUPING|HASH_HMAC|HTML_(ENTITIES|SPECIALCHARS)|INF|INFO_(ALL|CREDITS|CONFIGURATION|ENVIRONMENT|GENERAL|LICENSEMODULES|VARIABLES)|INI_(ALL|CANNER_(NORMAL|RAW)|PERDIR|SYSTEM|USER)|INT_(CURR_SYMBOL|FRAC_DIGITS)|LC_(ALL|COLLATE|CTYPE|MESSAGES|MONETARY|NUMERIC|TIME)|LOCK_(EX|NB|SH|UN)|LOG_(ALERT|AUTH(PRIV)?|CRIT|CRON|CONS|DAEMON|DEBUG|EMERG|ERR|INFO|LOCAL[1-7]|LPR|KERN|MAIL|NEWS|NODELAY|NOTICE|NOWAIT|ODELAY|PID|PERROR|WARNING|SYSLOG|UCP|USER)|M_(1_PI|SQRT(1_2|2|3|PI)|2_(SQRT)?PI|PI(_(2|4))?|E(ULER)?|LN(10|2|PI)|LOG(10|2)E)|MON_(1|2|3|4|5|6|7|8|9|10|11|12|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)|N_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN)|NAN|NEGATIVE_SIGN|NO(EXPR|STR)|P_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN)|PM_STR|POSITIVE_SIGN|PATH(_SEPARATOR|INFO_(EXTENSION|(BASE|DIR|FILE)NAME))|RADIXCHAR|SEEK_(CUR|END|SET)|SORT_(ASC|DESC|LOCALE_STRING|REGULAR|STRING)|STR_PAD_(BOTH|LEFT|RIGHT)|T_FMT(_AMPM)?|THOUSEP|THOUSANDS_SEP|UPLOAD_ERR_(CANT_WRITE|EXTENSION|(FORM|INI)_SIZE|NO_(FILE|TMP_DIR)|OK|PARTIAL)|YES(EXPR|STR))\\\\\\\\b\",\"name\":\"support.constant.std.php\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.inheritance.php\"}},\"match\":\"(\\\\\\\\\\\\\\\\)?\\\\\\\\b(GLOB_(MARK|BRACE|NO(SORT|CHECK|ESCAPE)|ONLYDIR|ERR|AVAILABLE_FLAGS)|XML_(SAX_IMPL|(DTD|DOCUMENT(_(FRAG|TYPE))?|HTML_DOCUMENT|NOTATION|NAMESPACE_DECL|PI|COMMENT|DATA_SECTION|TEXT)_NODE|OPTION_(SKIP_(TAGSTART|WHITE)|CASE_FOLDING|TARGET_ENCODING)|ERROR_((BAD_CHAR|(ATTRIBUTE_EXTERNAL|BINARY|PARAM|RECURSIVE)_ENTITY)_REF|MISPLACED_XML_PI|SYNTAX|NONE|NO_(MEMORY|ELEMENTS)|TAG_MISMATCH|INCORRECT_ENCODING|INVALID_TOKEN|DUPLICATE_ATTRIBUTE|UNCLOSED_(CDATA_SECTION|TOKEN)|UNDEFINED_ENTITY|UNKNOWN_ENCODING|JUNK_AFTER_DOC_ELEMENT|PARTIAL_CHAR|EXTERNAL_ENTITY_HANDLING|ASYNC_ENTITY)|ENTITY_(((REF|DECL)_)?NODE)|ELEMENT(_DECL)?_NODE|LOCAL_NAMESPACE|ATTRIBUTE_(NMTOKEN(S)?|NOTATION|NODE)|CDATA|ID(REF(S)?)?|DECL_NODE|ENTITY|ENUMERATION)|MHASH_(RIPEMD(128|160|256|320)|GOST|MD(2|4|5)|SHA(1|224|256|384|512)|SNEFRU256|HAVAL(128|160|192|224|256)|CRC23(B)?|TIGER(128|160)?|WHIRLPOOL|ADLER32)|MYSQL_(BOTH|NUM|CLIENT_(SSL|COMPRESS|IGNORE_SPACE|INTERACTIVE|ASSOC))|MYSQLI_(REPORT_(STRICT|INDEX|OFF|ERROR|ALL)|REFRESH_(GRANT|MASTER|BACKUP_LOG|STATUS|SLAVE|HOSTS|THREADS|TABLES|LOG)|READ_DEFAULT_(FILE|GROUP)|(GROUP|MULTIPLE_KEY|BINARY|BLOB)_FLAG|BOTH|STMT_ATTR_(CURSOR_TYPE|UPDATE_MAX_LENGTH|PREFETCH_ROWS)|STORE_RESULT|SERVER_QUERY_(NO_((GOOD_)?INDEX_USED)|WAS_SLOW)|SET_(CHARSET_NAME|FLAG)|NO_(DEFAULT_VALUE_FLAG|DATA)|NOT_NULL_FLAG|NUM(_FLAG)?|CURSOR_TYPE_(READ_ONLY|SCROLLABLE|NO_CURSOR|FOR_UPDATE)|CLIENT_(SSL|NO_SCHEMA|COMPRESS|IGNORE_SPACE|INTERACTIVE|FOUND_ROWS)|TYPE_(GEOMETRY|((MEDIUM|LONG|TINY)_)?BLOB|BIT|SHORT|STRING|SET|YEAR|NULL|NEWDECIMAL|NEWDATE|CHAR|TIME(STAMP)?|TINY|INT24|INTERVAL|DOUBLE|DECIMAL|DATE(TIME)?|ENUM|VAR_STRING|FLOAT|LONG(LONG)?)|TIME_STAMP_FLAG|INIT_COMMAND|ZEROFILL_FLAG|ON_UPDATE_NOW_FLAG|OPT_(NET_((CMD|READ)_BUFFER_SIZE)|CONNECT_TIMEOUT|INT_AND_FLOAT_NATIVE|LOCAL_INFILE)|DEBUG_TRACE_ENABLED|DATA_TRUNCATED|USE_RESULT|(ENUM|(PART|PRI|UNIQUE)_KEY|UNSIGNED)_FLAG|ASSOC|ASYNC|AUTO_INCREMENT_FLAG)|MCRYPT_(RC(2|6)|RIJNDAEL_(128|192|256)|RAND|GOST|XTEA|MODE_(STREAM|NOFB|CBC|CFB|OFB|ECB)|MARS|BLOWFISH(_COMPAT)?|SERPENT|SKIPJACK|SAFER(64|128|PLUS)|CRYPT|CAST_(128|256)|TRIPLEDES|THREEWAY|TWOFISH|IDEA|(3)?DES|DECRYPT|DEV_(U)?RANDOM|PANAMA|ENCRYPT|ENIGNA|WAKE|LOKI97|ARCFOUR(_IV)?)|STREAM_(REPORT_ERRORS|MUST_SEEK|MKDIR_RECURSIVE|BUFFER_(NONE|FULL|LINE)|SHUT_(RD)?WR|SOCK_(RDM|RAW|STREAM|SEQPACKET|DGRAM)|SERVER_(BIND|LISTEN)|NOTIFY_(REDIRECTED|RESOLVE|MIME_TYPE_IS|SEVERITY_(INFO|ERR|WARN)|COMPLETED|CONNECT|PROGRESS|FILE_SIZE_IS|FAILURE|AUTH_(REQUIRED|RESULT))|CRYPTO_METHOD_((SSLv2(3)?|SSLv3|TLS)_(CLIENT|SERVER))|CLIENT_((ASYNC_)?CONNECT|PERSISTENT)|CAST_(AS_STREAM|FOR_SELECT)|(IGNORE|IS)_URL|IPPROTO_(RAW|TCP|ICMP|IP|UDP)|OOB|OPTION_(READ_(BUFFER|TIMEOUT)|BLOCKING|WRITE_BUFFER)|URL_STAT_(LINK|QUIET)|USE_PATH|PEEK|PF_(INET(6)?|UNIX)|ENFORCE_SAFE_MODE|FILTER_(ALL|READ|WRITE))|SUNFUNCS_RET_(DOUBLE|STRING|TIMESTAMP)|SQLITE_(READONLY|ROW|MISMATCH|MISUSE|BOTH|BUSY|SCHEMA|NOMEM|NOTFOUND|NOTADB|NOLFS|NUM|CORRUPT|CONSTRAINT|CANTOPEN|TOOBIG|INTERRUPT|INTERNAL|IOERR|OK|DONE|PROTOCOL|PERM|ERROR|EMPTY|FORMAT|FULL|LOCKED|ABORT|ASSOC|AUTH)|SQLITE3_(BOTH|BLOB|NUM|NULL|TEXT|INTEGER|OPEN_(READ(ONLY|WRITE)|CREATE)|FLOAT_ASSOC)|CURL(M_(BAD_((EASY)?HANDLE)|CALL_MULTI_PERFORM|INTERNAL_ERROR|OUT_OF_MEMORY|OK)|MSG_DONE|SSH_AUTH_(HOST|NONE|DEFAULT|PUBLICKEY|PASSWORD|KEYBOARD)|CLOSEPOLICY_(SLOWEST|CALLBACK|OLDEST|LEAST_(RECENTLY_USED|TRAFFIC)|INFO_(REDIRECT_(COUNT|TIME)|REQUEST_SIZE|SSL_VERIFYRESULT|STARTTRANSFER_TIME|(SIZE|SPEED)_(DOWNLOAD|UPLOAD)|HTTP_CODE|HEADER_(OUT|SIZE)|NAMELOOKUP_TIME|CONNECT_TIME|CONTENT_(TYPE|LENGTH_(DOWNLOAD|UPLOAD))|CERTINFO|TOTAL_TIME|PRIVATE|PRETRANSFER_TIME|EFFECTIVE_URL|FILETIME)|OPT_(RESUME_FROM|RETURNTRANSFER|REDIR_PROTOCOLS|REFERER|READ(DATA|FUNCTION)|RANGE|RANDOM_FILE|MAX(CONNECTS|REDIRS)|BINARYTRANSFER|BUFFERSIZE|SSH_(HOST_PUBLIC_KEY_MD5|(PRIVATE|PUBLIC)_KEYFILE)|AUTH_TYPES)|SSL(CERT(TYPE|PASSWD)?|ENGINE(_DEFAULT)?|VERSION|KEY(TYPE|PASSWD)?)|SSL_(CIPHER_LIST|VERIFY(HOST|PEER))|STDERR|HTTP(GET|HEADER|200ALIASES|_VERSION|PROXYTUNNEL|AUTH)|HEADER(FUNCTION)?|NO(BODY|SIGNAL|PROGRESS)|NETRC|CRLF|CONNECTTIMEOUT(_MS)?|COOKIE(SESSION|JAR|FILE)?|CUSTOMREQUEST|CERTINFO|CLOSEPOLICY|CA(INFO|PATH)|TRANSFERTEXT|TCP_NODELAY|TIME(CONDITION|OUT(_MS)?|VALUE)|INTERFACE|INFILE(SIZE)?|IPRESOLVE|DNS_(CACHE_TIMEOUT|USE_GLOBAL_CACHE)|URL|USER(AGENT|PWD)|UNRESTRICTED_AUTH|UPLOAD|PRIVATE|PROGRESSFUNCTION|PROXY(TYPE|USERPWD|PORT|AUTH)?|PROTOCOLS|PORT|POST(REDIR|QUOTE|FIELDS)?|PUT|EGDSOCKET|ENCODING|VERBOSE|KRB4LEVEL|KEYPASSWD|QUOTE|FRESH_CONNECT|FTP(APPEND|LISTONLY|PORT|SSLAUTH)|FTP_(SSL|SKIP_PASV_IP|CREATE_MISSING_DIRS|USE_EP(RT|SV)|FILEMETHOD)|FILE(TIME)?|FORBID_REUSE|FOLLOWLOCATION|FAILONERROR|WRITE(FUNCTION|HEADER)|LOW_SPEED_(LIMIT|TIME)|AUTOREFERER)|PROXY_(HTTP|SOCKS(4|5))|PROTO_(SCP|SFTP|HTTP(S)?|TELNET|TFTP|DICT|FTP(S)?|FILE|LDAP(S)?|ALL)|E_((RECV|READ)_ERROR|GOT_NOTHING|MALFORMAT_USER|BAD_(CONTENT_ENCODING|CALLING_ORDER|PASSWORD_ENTERED|FUNCTION_ARGUMENT)|SSH|SSL_(CIPHER|CONNECT_ERROR|CERTPROBLEM|CACERT|PEER_CERTIFICATE|ENGINE_(NOTFOUND|SETFAILED))|SHARE_IN_USE|SEND_ERROR|HTTP_(RANGE_ERROR|NOT_FOUND|PORT_FAILED|POST_ERROR)|COULDNT_(RESOLVE_(HOST|PROXY)|CONNECT)|TOO_MANY_REDIRECTS|TELNET_OPTION_SYNTAX|OBSOLETE|OUT_OF_MEMORY|OPERATION|TIMEOUTED|OK|URL_MALFORMAT(_USER)?|UNSUPPORTED_PROTOCOL|UNKNOWN_TELNET_OPTION|PARTIAL_FILE|FTP_(BAD_DOWNLOAD_RESUME|SSL_FAILED|COULDNT_(RETR_FILE|GET_SIZE|STOR_FILE|SET_(BINARY|ASCII)|USE_REST)|CANT_(GET_HOST|RECONNECT)|USER_PASSWORD_INCORRECT|PORT_FAILED|QUOTE_ERROR|WRITE_ERROR|WEIRD_((PASS|PASV|SERVER|USER)_REPLY|227_FORMAT)|ACCESS_DENIED)|FILESIZE_EXCEEDED|FILE_COULDNT_READ_FILE|FUNCTION_NOT_FOUND|FAILED_INIT|WRITE_ERROR|LIBRARY_NOT_FOUND|LDAP_(SEARCH_FAILED|CANNOT_BIND|INVALID_URL)|ABORTED_BY_CALLBACK)|VERSION_NOW|FTP(METHOD_(MULTI|SINGLE|NO)CWD|SSL_(ALL|NONE|CONTROL|TRY)|AUTH_(DEFAULT|SSL|TLS))|AUTH_(ANY(SAFE)?|BASIC|DIGEST|GSSNEGOTIATE|NTLM))|CURL_(HTTP_VERSION_(1_(0|1)|NONE)|NETRC_(REQUIRED|IGNORED|OPTIONAL)|TIMECOND_(IF(UN)?MODSINCE|LASTMOD)|IPRESOLVE_(V(4|6)|WHATEVER)|VERSION_(SSL|IPV6|KERBEROS4|LIBZ))|IMAGETYPE_(GIF|XBM|BMP|SWF|COUNT|TIFF_(MM|II)|ICO|IFF|UNKNOWN|JB2|JPX|JP2|JPC|JPEG(2000)?|PSD|PNG|WBMP)|INPUT_(REQUEST|GET|SERVER|SESSION|COOKIE|POST|ENV)|ICONV_(MIME_DECODE_(STRICT|CONTINUE_ON_ERROR)|IMPL|VERSION)|DNS_(MX|SRV|SOA|HINFO|NS|NAPTR|CNAME|TXT|PTR|ANY|ALL|AAAA|A(6)?)|DOM(STRING_SIZE_ERR)|DOM_((SYNTAX|HIERARCHY_REQUEST|NO_(MODIFICATION_ALLOWED|DATA_ALLOWED)|NOT_(FOUND|SUPPORTED)|NAMESPACE|INDEX_SIZE|USE_ATTRIBUTE|VALID_(MODIFICATION|STATE|CHARACTER|ACCESS)|PHP|VALIDATION|WRONG_DOCUMENT)_ERR)|JSON_(HEX_(TAG|QUOT|AMP|APOS)|NUMERIC_CHECK|ERROR_(SYNTAX|STATE_MISMATCH|NONE|CTRL_CHAR|DEPTH|UTF8)|FORCE_OBJECT)|PREG_((D_UTF8(_OFFSET)?|NO|INTERNAL|(BACKTRACK|RECURSION)_LIMIT)_ERROR|GREP_INVERT|SPLIT_(NO_EMPTY|(DELIM|OFFSET)_CAPTURE)|SET_ORDER|OFFSET_CAPTURE|PATTERN_ORDER)|PSFS_(PASS_ON|ERR_FATAL|FEED_ME|FLAG_(NORMAL|FLUSH_(CLOSE|INC)))|PCRE_VERSION|POSIX_((F|R|W|X)_OK|S_IF(REG|BLK|SOCK|CHR|IFO))|FNM_(NOESCAPE|CASEFOLD|PERIOD|PATHNAME)|FILTER_(REQUIRE_(SCALAR|ARRAY)|NULL_ON_FAILURE|CALLBACK|DEFAULT|UNSAFE_RAW|SANITIZE_(MAGIC_QUOTES|STRING|STRIPPED|SPECIAL_CHARS|NUMBER_(INT|FLOAT)|URL|EMAIL|ENCODED|FULL_SPCIAL_CHARS)|VALIDATE_(REGEXP|BOOLEAN|INT|IP|URL|EMAIL|FLOAT)|FORCE_ARRAY|FLAG_(SCHEME_REQUIRED|STRIP_(BACKTICK|HIGH|LOW)|HOST_REQUIRED|NONE|NO_(RES|PRIV)_RANGE|ENCODE_QUOTES|IPV(4|6)|PATH_REQUIRED|EMPTY_STRING_NULL|ENCODE_(HIGH|LOW|AMP)|QUERY_REQUIRED|ALLOW_(SCIENTIFIC|HEX|THOUSAND|OCTAL|FRACTION)))|FILE_(BINARY|SKIP_EMPTY_LINES|NO_DEFAULT_CONTEXT|TEXT|IGNORE_NEW_LINES|USE_INCLUDE_PATH|APPEND)|FILEINFO_(RAW|MIME(_(ENCODING|TYPE))?|SYMLINK|NONE|CONTINUE|DEVICES|PRESERVE_ATIME)|FORCE_(DEFLATE|GZIP)|LIBXML_(XINCLUDE|NSCLEAN|NO(XMLDECL|BLANKS|NET|CDATA|ERROR|EMPTYTAG|ENT|WARNING)|COMPACT|DTD(VALID|LOAD|ATTR)|((DOTTED|LOADED)_)?VERSION|PARSEHUGE|ERR_(NONE|ERROR|FATAL|WARNING)))\\\\\\\\b\",\"name\":\"support.constant.ext.php\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.inheritance.php\"}},\"match\":\"(\\\\\\\\\\\\\\\\)?\\\\\\\\b(T_(RETURN|REQUIRE(_ONCE)?|GOTO|GLOBAL|(MINUS|MOD|MUL|XOR)_EQUAL|METHOD_C|ML_COMMENT|BREAK|BOOL_CAST|BOOLEAN_(AND|OR)|BAD_CHARACTER|SR(_EQUAL)?|STRING(_CAST|VARNAME)?|START_HEREDOC|STATIC|SWITCH|SL(_EQUAL)?|HALT_COMPILER|NS_(C|SEPARATOR)|NUM_STRING|NEW|NAMESPACE|CHARACTER|COMMENT|CONSTANT(_ENCAPSED_STRING)?|CONCAT_EQUAL|CONTINUE|CURLY_OPEN|CLOSE_TAG|CLONE|CLASS(_C)?|CASE|CATCH|TRY|THROW|IMPLEMENTS|ISSET|IS_((GREATER|SMALLER)_OR_EQUAL|(NOT_)?(IDENTICAL|EQUAL))|INSTANCEOF|INCLUDE(_ONCE)?|INC|INT_CAST|INTERFACE|INLINE_HTML|IF|OR_EQUAL|OBJECT_(CAST|OPERATOR)|OPEN_TAG(_WITH_ECHO)?|OLD_FUNCTION|DNUMBER|DIR|DIV_EQUAL|DOC_COMMENT|DOUBLE_(ARROW|CAST|COLON)|DOLLAR_OPEN_CURLY_BRACES|DO|DEC|DECLARE|DEFAULT|USE|UNSET(_CAST)?|PRINT|PRIVATE|PROTECTED|PUBLIC|PLUS_EQUAL|PAAMAYIM_NEKUDOTAYIM|EXTENDS|EXIT|EMPTY|ENCAPSED_AND_WHITESPACE|END(SWITCH|IF|DECLARE|FOR(EACH)?|WHILE)|END_HEREDOC|ECHO|EVAL|ELSE(IF)?|VAR(IABLE)?|FINAL|FILE|FOR(EACH)?|FUNC_C|FUNCTION|WHITESPACE|WHILE|LNUMBER|LIST|LINE|LOGICAL_(AND|OR|XOR)|ARRAY_(CAST)?|ABSTRACT|AS|AND_EQUAL))\\\\\\\\b\",\"name\":\"support.constant.parser-token.php\"},{\"match\":\"(?i)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*\",\"name\":\"constant.other.php\"}]},\"function-call\":{\"patterns\":[{\"begin\":\"(?xi)\\\\n(\\\\n  \\\\\\\\\\\\\\\\?\\\\\\\\b                                                # Optional root namespace\\\\n  [a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*          # First namespace\\\\n  (?:\\\\\\\\\\\\\\\\[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)+ # Additional namespaces\\\\n)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#namespace\"},{\"match\":\"(?i)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*\",\"name\":\"entity.name.function.php\"}]},\"2\":{\"name\":\"punctuation.definition.arguments.begin.bracket.round.php\"}},\"end\":\"\\\\\\\\)|(?=\\\\\\\\?>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.bracket.round.php\"}},\"name\":\"meta.function-call.php\",\"patterns\":[{\"include\":\"#language\"}]},{\"begin\":\"(?i)(\\\\\\\\\\\\\\\\)?\\\\\\\\b([a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#namespace\"}]},\"2\":{\"patterns\":[{\"include\":\"#support\"},{\"match\":\"(?i)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*\",\"name\":\"entity.name.function.php\"}]},\"3\":{\"name\":\"punctuation.definition.arguments.begin.bracket.round.php\"}},\"end\":\"\\\\\\\\)|(?=\\\\\\\\?>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.bracket.round.php\"}},\"name\":\"meta.function-call.php\",\"patterns\":[{\"include\":\"#language\"}]},{\"match\":\"(?i)\\\\\\\\b(print|echo)\\\\\\\\b\",\"name\":\"support.function.construct.output.php\"}]},\"function-parameters\":{\"patterns\":[{\"include\":\"#comments\"},{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.php\"},{\"begin\":\"(?xi)\\\\n(array)                                                            # Typehint\\\\n\\\\\\\\s+((&)?\\\\\\\\s*(\\\\\\\\$+)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*) # Variable name with possible reference\\\\n\\\\\\\\s*(=)\\\\\\\\s*(array)\\\\\\\\s*(\\\\\\\\()                                        # Default value\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.php\"},\"2\":{\"name\":\"variable.other.php\"},\"3\":{\"name\":\"storage.modifier.reference.php\"},\"4\":{\"name\":\"punctuation.definition.variable.php\"},\"5\":{\"name\":\"keyword.operator.assignment.php\"},\"6\":{\"name\":\"support.function.construct.php\"},\"7\":{\"name\":\"punctuation.definition.array.begin.bracket.round.php\"}},\"contentName\":\"meta.array.php\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.array.end.bracket.round.php\"}},\"name\":\"meta.function.parameter.array.php\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#strings\"},{\"include\":\"#numbers\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.php\"},\"2\":{\"name\":\"variable.other.php\"},\"3\":{\"name\":\"storage.modifier.reference.php\"},\"4\":{\"name\":\"punctuation.definition.variable.php\"},\"5\":{\"name\":\"keyword.operator.assignment.php\"},\"6\":{\"name\":\"constant.language.php\"},\"7\":{\"name\":\"punctuation.section.array.begin.php\"},\"8\":{\"patterns\":[{\"include\":\"#parameter-default-types\"}]},\"9\":{\"name\":\"punctuation.section.array.end.php\"},\"10\":{\"name\":\"invalid.illegal.non-null-typehinted.php\"}},\"match\":\"(?xi)\\\\n(array|callable)                                                   # Typehint\\\\n\\\\\\\\s+((&)?\\\\\\\\s*(\\\\\\\\$+)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*) # Variable name with possible reference\\\\n(?:                                                                # Optional default value\\\\n  \\\\\\\\s*(=)\\\\\\\\s*\\\\n  (?:\\\\n    (null)\\\\n    |\\\\n    (\\\\\\\\[)((?>[^\\\\\\\\[\\\\\\\\]]+|\\\\\\\\[\\\\\\\\g<8>\\\\\\\\])*)(\\\\\\\\])\\\\n    |((?:\\\\\\\\S*?\\\\\\\\(\\\\\\\\))|(?:\\\\\\\\S*?))\\\\n  )\\\\n)?\\\\n\\\\\\\\s*(?=,|\\\\\\\\)|/[/*]|\\\\\\\\#|$) # A closing parentheses (end of argument list) or a comma or a comment\",\"name\":\"meta.function.parameter.array.php\"},{\"begin\":\"(?xi)\\\\n(\\\\\\\\\\\\\\\\?(?:[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*\\\\\\\\\\\\\\\\)*)                 # Optional namespace\\\\n([a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)                               # Typehinted class name\\\\n\\\\\\\\s+((&)?\\\\\\\\s*(\\\\\\\\.\\\\\\\\.\\\\\\\\.)?(\\\\\\\\$+)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*) # Variable name with possible reference\",\"beginCaptures\":{\"1\":{\"name\":\"support.other.namespace.php\",\"patterns\":[{\"match\":\"(?i)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*\",\"name\":\"storage.type.php\"},{\"match\":\"\\\\\\\\\\\\\\\\\",\"name\":\"punctuation.separator.inheritance.php\"}]},\"2\":{\"name\":\"storage.type.php\"},\"3\":{\"name\":\"variable.other.php\"},\"4\":{\"name\":\"storage.modifier.reference.php\"},\"5\":{\"name\":\"keyword.operator.variadic.php\"},\"6\":{\"name\":\"punctuation.definition.variable.php\"}},\"end\":\"(?=,|\\\\\\\\)|/[/*]|\\\\\\\\#)\",\"name\":\"meta.function.parameter.typehinted.php\",\"patterns\":[{\"begin\":\"=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.assignment.php\"}},\"end\":\"(?=,|\\\\\\\\)|/[/*]|\\\\\\\\#)\",\"patterns\":[{\"include\":\"#language\"}]}]},{\"captures\":{\"1\":{\"name\":\"variable.other.php\"},\"2\":{\"name\":\"storage.modifier.reference.php\"},\"3\":{\"name\":\"keyword.operator.variadic.php\"},\"4\":{\"name\":\"punctuation.definition.variable.php\"}},\"match\":\"(?xi)\\\\n((&)?\\\\\\\\s*(\\\\\\\\.\\\\\\\\.\\\\\\\\.)?(\\\\\\\\$+)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*) # Variable name with possible reference\\\\n\\\\\\\\s*(?=,|\\\\\\\\)|/[/*]|\\\\\\\\#|$) # A closing parentheses (end of argument list) or a comma or a comment\",\"name\":\"meta.function.parameter.no-default.php\"},{\"begin\":\"(?xi)\\\\n((&)?\\\\\\\\s*(\\\\\\\\.\\\\\\\\.\\\\\\\\.)?(\\\\\\\\$+)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*) # Variable name with possible reference\\\\n\\\\\\\\s*(=)\\\\\\\\s*\\\\n(?:(\\\\\\\\[)((?>[^\\\\\\\\[\\\\\\\\]]+|\\\\\\\\[\\\\\\\\g<6>\\\\\\\\])*)(\\\\\\\\]))?                              # Optional default type\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.php\"},\"2\":{\"name\":\"storage.modifier.reference.php\"},\"3\":{\"name\":\"keyword.operator.variadic.php\"},\"4\":{\"name\":\"punctuation.definition.variable.php\"},\"5\":{\"name\":\"keyword.operator.assignment.php\"},\"6\":{\"name\":\"punctuation.section.array.begin.php\"},\"7\":{\"patterns\":[{\"include\":\"#parameter-default-types\"}]},\"8\":{\"name\":\"punctuation.section.array.end.php\"}},\"end\":\"(?=,|\\\\\\\\)|/[/*]|\\\\\\\\#)\",\"name\":\"meta.function.parameter.default.php\",\"patterns\":[{\"include\":\"#parameter-default-types\"}]}]},\"heredoc\":{\"patterns\":[{\"begin\":\"(?i)(?=<<<\\\\\\\\s*(\\\\\"?)([a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)(\\\\\\\\1)\\\\\\\\s*$)\",\"end\":\"(?!\\\\\\\\G)\",\"name\":\"string.unquoted.heredoc.php\",\"patterns\":[{\"include\":\"#heredoc_interior\"}]},{\"begin\":\"(?=<<<\\\\\\\\s*'([a-zA-Z_]+[a-zA-Z0-9_]*)'\\\\\\\\s*$)\",\"end\":\"(?!\\\\\\\\G)\",\"name\":\"string.unquoted.nowdoc.php\",\"patterns\":[{\"include\":\"#nowdoc_interior\"}]}]},\"heredoc_interior\":{\"patterns\":[{\"begin\":\"(<<<)\\\\\\\\s*(\\\\\"?)(HTML)(\\\\\\\\2)(\\\\\\\\s*)$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"},\"1\":{\"name\":\"punctuation.definition.string.php\"},\"3\":{\"name\":\"keyword.operator.heredoc.php\"},\"5\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"contentName\":\"text.html\",\"end\":\"^(\\\\\\\\3)\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"keyword.operator.heredoc.php\"}},\"name\":\"meta.embedded.html\",\"patterns\":[{\"include\":\"#interpolation\"},{\"include\":\"text.html.basic\"}]},{\"begin\":\"(<<<)\\\\\\\\s*(\\\\\"?)(XML)(\\\\\\\\2)(\\\\\\\\s*)$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"},\"1\":{\"name\":\"punctuation.definition.string.php\"},\"3\":{\"name\":\"keyword.operator.heredoc.php\"},\"5\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"contentName\":\"text.xml\",\"end\":\"^(\\\\\\\\3)\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"keyword.operator.heredoc.php\"}},\"name\":\"meta.embedded.xml\",\"patterns\":[{\"include\":\"#interpolation\"},{\"include\":\"text.xml\"}]},{\"begin\":\"(<<<)\\\\\\\\s*(\\\\\"?)(SQL)(\\\\\\\\2)(\\\\\\\\s*)$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"},\"1\":{\"name\":\"punctuation.definition.string.php\"},\"3\":{\"name\":\"keyword.operator.heredoc.php\"},\"5\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"contentName\":\"source.sql\",\"end\":\"^(\\\\\\\\3)\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"keyword.operator.heredoc.php\"}},\"name\":\"meta.embedded.sql\",\"patterns\":[{\"include\":\"#interpolation\"},{\"include\":\"source.sql\"}]},{\"begin\":\"(<<<)\\\\\\\\s*(\\\\\"?)(JAVASCRIPT|JS)(\\\\\\\\2)(\\\\\\\\s*)$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"},\"1\":{\"name\":\"punctuation.definition.string.php\"},\"3\":{\"name\":\"keyword.operator.heredoc.php\"},\"5\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"contentName\":\"source.js\",\"end\":\"^(\\\\\\\\3)\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"keyword.operator.heredoc.php\"}},\"name\":\"meta.embedded.js\",\"patterns\":[{\"include\":\"#interpolation\"},{\"include\":\"source.js\"}]},{\"begin\":\"(<<<)\\\\\\\\s*(\\\\\"?)(JSON)(\\\\\\\\2)(\\\\\\\\s*)$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"},\"1\":{\"name\":\"punctuation.definition.string.php\"},\"3\":{\"name\":\"keyword.operator.heredoc.php\"},\"5\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"contentName\":\"source.json\",\"end\":\"^(\\\\\\\\3)\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"keyword.operator.heredoc.php\"}},\"name\":\"meta.embedded.json\",\"patterns\":[{\"include\":\"#interpolation\"},{\"include\":\"source.json\"}]},{\"begin\":\"(<<<)\\\\\\\\s*(\\\\\"?)(CSS)(\\\\\\\\2)(\\\\\\\\s*)$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"},\"1\":{\"name\":\"punctuation.definition.string.php\"},\"3\":{\"name\":\"keyword.operator.heredoc.php\"},\"5\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"contentName\":\"source.css\",\"end\":\"^(\\\\\\\\3)\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"keyword.operator.heredoc.php\"}},\"name\":\"meta.embedded.css\",\"patterns\":[{\"include\":\"#interpolation\"},{\"include\":\"source.css\"}]},{\"begin\":\"(<<<)\\\\\\\\s*(\\\\\"?)(REGEXP?)(\\\\\\\\2)(\\\\\\\\s*)$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"},\"1\":{\"name\":\"punctuation.definition.string.php\"},\"3\":{\"name\":\"keyword.operator.heredoc.php\"},\"5\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"contentName\":\"string.regexp.heredoc.php\",\"end\":\"^(\\\\\\\\3)\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"keyword.operator.heredoc.php\"}},\"patterns\":[{\"include\":\"#interpolation\"},{\"match\":\"(\\\\\\\\\\\\\\\\){1,2}[.$^\\\\\\\\[\\\\\\\\]{}]\",\"name\":\"constant.character.escape.regex.php\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.arbitrary-repitition.php\"},\"3\":{\"name\":\"punctuation.definition.arbitrary-repitition.php\"}},\"match\":\"({)\\\\\\\\d+(,\\\\\\\\d+)?(})\",\"name\":\"string.regexp.arbitrary-repitition.php\"},{\"begin\":\"\\\\\\\\[(?:\\\\\\\\^?\\\\\\\\])?\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.character-class.php\"}},\"end\":\"\\\\\\\\]\",\"name\":\"string.regexp.character-class.php\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\\\'\\\\\\\\[\\\\\\\\]]\",\"name\":\"constant.character.escape.php\"}]},{\"match\":\"[$^+*]\",\"name\":\"keyword.operator.regexp.php\"},{\"begin\":\"(?i)(?<=^|\\\\\\\\s)(#)\\\\\\\\s(?=[[a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff},. \\\\\\\\t?!-][^\\\\\\\\x{00}-\\\\\\\\x{7f}]]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.php\"}},\"end\":\"$\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.php\"}},\"name\":\"comment.line.number-sign.php\"}]},{\"begin\":\"(?i)(<<<)\\\\\\\\s*(\\\\\"?)([a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}]+[a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)(\\\\\\\\2)(\\\\\\\\s*)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.php\"},\"3\":{\"name\":\"keyword.operator.heredoc.php\"},\"5\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"end\":\"^(\\\\\\\\3)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.heredoc.php\"}},\"patterns\":[{\"include\":\"#interpolation\"}]}]},\"instantiation\":{\"begin\":\"(?i)(new)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.new.php\"}},\"end\":\"(?i)(?=[^a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}\\\\\\\\\\\\\\\\])\",\"patterns\":[{\"match\":\"(?i)(parent|static|self)(?![a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}])\",\"name\":\"storage.type.php\"},{\"include\":\"#class-name\"},{\"include\":\"#variable-name\"}]},\"interpolation\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[0-7]{1,3}\",\"name\":\"constant.character.escape.octal.php\"},{\"match\":\"\\\\\\\\\\\\\\\\x[0-9A-Fa-f]{1,2}\",\"name\":\"constant.character.escape.hex.php\"},{\"match\":\"\\\\\\\\\\\\\\\\u{[0-9A-Fa-f]+}\",\"name\":\"constant.character.escape.unicode.php\"},{\"match\":\"\\\\\\\\\\\\\\\\[nrtvef$\\\\\"\\\\\\\\\\\\\\\\]\",\"name\":\"constant.character.escape.php\"},{\"begin\":\"{(?=\\\\\\\\$.*?})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.variable.php\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.variable.php\"}},\"patterns\":[{\"include\":\"#language\"}]},{\"include\":\"#variable-name\"}]},\"invoke-call\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.php\"},\"2\":{\"name\":\"variable.other.php\"}},\"match\":\"(?i)(\\\\\\\\$+)([a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)(?=\\\\\\\\s*\\\\\\\\()\",\"name\":\"meta.function-call.invoke.php\"},\"language\":{\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\"(?i)^\\\\\\\\s*(interface)\\\\\\\\s+([a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)\\\\\\\\s*(extends)?\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.interface.php\"},\"2\":{\"name\":\"entity.name.type.interface.php\"},\"3\":{\"name\":\"storage.modifier.extends.php\"}},\"end\":\"(?i)((?:[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*\\\\\\\\s*,\\\\\\\\s*)*)([a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)?\\\\\\\\s*(?:(?={)|$)\",\"endCaptures\":{\"1\":{\"patterns\":[{\"match\":\"(?i)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*\",\"name\":\"entity.other.inherited-class.php\"},{\"match\":\",\",\"name\":\"punctuation.separator.classes.php\"}]},\"2\":{\"name\":\"entity.other.inherited-class.php\"}},\"name\":\"meta.interface.php\",\"patterns\":[{\"include\":\"#namespace\"}]},{\"begin\":\"(?i)^\\\\\\\\s*(trait)\\\\\\\\s+([a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.trait.php\"},\"2\":{\"name\":\"entity.name.type.trait.php\"}},\"end\":\"(?={)\",\"name\":\"meta.trait.php\",\"patterns\":[{\"include\":\"#comments\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.other.namespace.php\"},\"2\":{\"name\":\"entity.name.type.namespace.php\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\",\"name\":\"punctuation.separator.inheritance.php\"}]}},\"match\":\"(?i)(?:^|(?<=<\\\\\\\\?php))\\\\\\\\s*(namespace)\\\\\\\\s+([a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}\\\\\\\\\\\\\\\\]+)(?=\\\\\\\\s*;)\",\"name\":\"meta.namespace.php\"},{\"begin\":\"(?i)(?:^|(?<=<\\\\\\\\?php))\\\\\\\\s*(namespace)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.namespace.php\"}},\"end\":\"(?<=})|(?=\\\\\\\\?>)\",\"name\":\"meta.namespace.php\",\"patterns\":[{\"include\":\"#comments\"},{\"captures\":{\"0\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\",\"name\":\"punctuation.separator.inheritance.php\"}]}},\"match\":\"(?i)[a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}\\\\\\\\\\\\\\\\]+\",\"name\":\"entity.name.type.namespace.php\"},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.namespace.begin.bracket.curly.php\"}},\"end\":\"}|(?=\\\\\\\\?>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.namespace.end.bracket.curly.php\"}},\"patterns\":[{\"include\":\"#language\"}]},{\"match\":\"[^\\\\\\\\s]+\",\"name\":\"invalid.illegal.identifier.php\"}]},{\"match\":\"\\\\\\\\s+(?=use\\\\\\\\b)\"},{\"begin\":\"(?i)\\\\\\\\buse\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.use.php\"}},\"end\":\"(?<=})|(?=;)\",\"name\":\"meta.use.php\",\"patterns\":[{\"match\":\"\\\\\\\\b(const|function)\\\\\\\\b\",\"name\":\"storage.type.\\${1:/downcase}.php\"},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.use.begin.bracket.curly.php\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.use.end.bracket.curly.php\"}},\"patterns\":[{\"include\":\"#scope-resolution\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.use-as.php\"},\"2\":{\"name\":\"storage.modifier.php\"},\"3\":{\"name\":\"entity.other.alias.php\"}},\"match\":\"(?xi)\\\\n\\\\\\\\b(as)\\\\n\\\\\\\\s+(final|abstract|public|private|protected|static)\\\\n\\\\\\\\s+([a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)\\\\n\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.use-as.php\"},\"2\":{\"patterns\":[{\"match\":\"^(?:final|abstract|public|private|protected|static)$\",\"name\":\"storage.modifier.php\"},{\"match\":\".+\",\"name\":\"entity.other.alias.php\"}]}},\"match\":\"(?xi)\\\\n\\\\\\\\b(as)\\\\n\\\\\\\\s+([a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)\\\\n\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.use-insteadof.php\"},\"2\":{\"name\":\"support.class.php\"}},\"match\":\"(?i)\\\\\\\\b(insteadof)\\\\\\\\s+([a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)\"},{\"match\":\";\",\"name\":\"punctuation.terminator.expression.php\"},{\"include\":\"#use-inner\"}]},{\"include\":\"#use-inner\"}]},{\"begin\":\"(?i)^\\\\\\\\s*(?:(abstract|final)\\\\\\\\s+)?(class)\\\\\\\\s+([a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.\\${1:/downcase}.php\"},\"2\":{\"name\":\"storage.type.class.php\"},\"3\":{\"name\":\"entity.name.type.class.php\"}},\"end\":\"}|(?=\\\\\\\\?>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.class.end.bracket.curly.php\"}},\"name\":\"meta.class.php\",\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\"(?i)(extends)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.extends.php\"}},\"contentName\":\"meta.other.inherited-class.php\",\"end\":\"(?i)(?=[^a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}\\\\\\\\\\\\\\\\])\",\"patterns\":[{\"begin\":\"(?i)(?=\\\\\\\\\\\\\\\\?[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*\\\\\\\\\\\\\\\\)\",\"end\":\"(?i)([a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)?(?=[^a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}\\\\\\\\\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"entity.other.inherited-class.php\"}},\"patterns\":[{\"include\":\"#namespace\"}]},{\"include\":\"#class-builtin\"},{\"include\":\"#namespace\"},{\"match\":\"(?i)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*\",\"name\":\"entity.other.inherited-class.php\"}]},{\"begin\":\"(?i)(implements)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.implements.php\"}},\"end\":\"(?i)(?=[;{])\",\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\"(?i)(?=[a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}\\\\\\\\\\\\\\\\]+)\",\"contentName\":\"meta.other.inherited-class.php\",\"end\":\"(?i)(?:\\\\\\\\s*(?:,|(?=[^a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}\\\\\\\\\\\\\\\\\\\\\\\\s]))\\\\\\\\s*)\",\"patterns\":[{\"begin\":\"(?i)(?=\\\\\\\\\\\\\\\\?[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*\\\\\\\\\\\\\\\\)\",\"end\":\"(?i)([a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)?(?=[^a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}\\\\\\\\\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"entity.other.inherited-class.php\"}},\"patterns\":[{\"include\":\"#namespace\"}]},{\"include\":\"#class-builtin\"},{\"include\":\"#namespace\"},{\"match\":\"(?i)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*\",\"name\":\"entity.other.inherited-class.php\"}]}]},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.class.begin.bracket.curly.php\"}},\"contentName\":\"meta.class.body.php\",\"end\":\"(?=}|\\\\\\\\?>)\",\"patterns\":[{\"include\":\"#language\"}]}]},{\"include\":\"#switch_statement\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.\\${1:/downcase}.php\"}},\"match\":\"\\\\\\\\s*\\\\\\\\b(break|case|continue|declare|default|die|do|else(if)?|end(declare|for(each)?|if|switch|while)|exit|for(each)?|if|return|switch|use|while|yield)\\\\\\\\b\"},{\"begin\":\"(?i)\\\\\\\\b((?:require|include)(?:_once)?)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.import.include.php\"}},\"end\":\"(?=\\\\\\\\s|;|$|\\\\\\\\?>)\",\"name\":\"meta.include.php\",\"patterns\":[{\"include\":\"#language\"}]},{\"begin\":\"\\\\\\\\b(catch)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.exception.catch.php\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.bracket.round.php\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.bracket.round.php\"}},\"name\":\"meta.catch.php\",\"patterns\":[{\"include\":\"#namespace\"},{\"captures\":{\"1\":{\"name\":\"support.class.exception.php\"},\"2\":{\"patterns\":[{\"match\":\"(?i)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*\",\"name\":\"support.class.exception.php\"},{\"match\":\"\\\\\\\\|\",\"name\":\"punctuation.separator.delimiter.php\"}]},\"3\":{\"name\":\"variable.other.php\"},\"4\":{\"name\":\"punctuation.definition.variable.php\"}},\"match\":\"(?xi)\\\\n([a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)                 # Exception class\\\\n((?:\\\\\\\\s*\\\\\\\\|\\\\\\\\s*[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)*) # Optional additional exception classes\\\\n\\\\\\\\s*\\\\n((\\\\\\\\$+)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)           # Variable\"}]},{\"match\":\"\\\\\\\\b(catch|try|throw|exception|finally)\\\\\\\\b\",\"name\":\"keyword.control.exception.php\"},{\"begin\":\"(?i)\\\\\\\\b(function)\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.php\"}},\"end\":\"(?={)\",\"name\":\"meta.function.closure.php\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.begin.bracket.round.php\"}},\"contentName\":\"meta.function.parameters.php\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.bracket.round.php\"}},\"patterns\":[{\"include\":\"#function-parameters\"}]},{\"begin\":\"(?i)(use)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.function.use.php\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.bracket.round.php\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.bracket.round.php\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.other.php\"},\"2\":{\"name\":\"storage.modifier.reference.php\"},\"3\":{\"name\":\"punctuation.definition.variable.php\"}},\"match\":\"(?i)((&)?\\\\\\\\s*(\\\\\\\\$+)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)\\\\\\\\s*(?=,|\\\\\\\\))\",\"name\":\"meta.function.closure.use.php\"}]}]},{\"begin\":\"((?:(?:final|abstract|public|private|protected|static)\\\\\\\\s+)*)(function)\\\\\\\\s+(?i:(__(?:call|construct|debugInfo|destruct|get|set|isset|unset|tostring|clone|set_state|sleep|wakeup|autoload|invoke|callStatic))|([a-zA-Z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*))\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"match\":\"final|abstract|public|private|protected|static\",\"name\":\"storage.modifier.php\"}]},\"2\":{\"name\":\"storage.type.function.php\"},\"3\":{\"name\":\"support.function.magic.php\"},\"4\":{\"name\":\"entity.name.function.php\"},\"5\":{\"name\":\"punctuation.definition.parameters.begin.bracket.round.php\"}},\"contentName\":\"meta.function.parameters.php\",\"end\":\"(\\\\\\\\))(?:\\\\\\\\s*(:)\\\\\\\\s*([a-zA-Z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*))?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.bracket.round.php\"},\"2\":{\"name\":\"keyword.operator.return-value.php\"},\"3\":{\"name\":\"storage.type.php\"}},\"name\":\"meta.function.php\",\"patterns\":[{\"include\":\"#function-parameters\"}]},{\"include\":\"#invoke-call\"},{\"include\":\"#scope-resolution\"},{\"include\":\"#variables\"},{\"include\":\"#strings\"},{\"captures\":{\"1\":{\"name\":\"support.function.construct.php\"},\"2\":{\"name\":\"punctuation.definition.array.begin.bracket.round.php\"},\"3\":{\"name\":\"punctuation.definition.array.end.bracket.round.php\"}},\"match\":\"(array)(\\\\\\\\()(\\\\\\\\))\",\"name\":\"meta.array.empty.php\"},{\"begin\":\"(array)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.construct.php\"},\"2\":{\"name\":\"punctuation.definition.array.begin.bracket.round.php\"}},\"end\":\"\\\\\\\\)|(?=\\\\\\\\?>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.array.end.bracket.round.php\"}},\"name\":\"meta.array.php\",\"patterns\":[{\"include\":\"#language\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.storage-type.begin.bracket.round.php\"},\"2\":{\"name\":\"storage.type.php\"},\"3\":{\"name\":\"punctuation.definition.storage-type.end.bracket.round.php\"}},\"match\":\"(?i)(\\\\\\\\()\\\\\\\\s*(array|real|double|float|int(?:eger)?|bool(?:ean)?|string|object|binary|unset)\\\\\\\\s*(\\\\\\\\))\"},{\"match\":\"(?i)\\\\\\\\b(array|real|double|float|int(eger)?|bool(ean)?|string|class|var|function|interface|trait|parent|self|object)\\\\\\\\b\",\"name\":\"storage.type.php\"},{\"match\":\"(?i)\\\\\\\\b(global|abstract|const|extends|implements|final|private|protected|public|static)\\\\\\\\b\",\"name\":\"storage.modifier.php\"},{\"include\":\"#object\"},{\"match\":\";\",\"name\":\"punctuation.terminator.expression.php\"},{\"match\":\":\",\"name\":\"punctuation.terminator.statement.php\"},{\"include\":\"#heredoc\"},{\"include\":\"#numbers\"},{\"match\":\"(?i)\\\\\\\\bclone\\\\\\\\b\",\"name\":\"keyword.other.clone.php\"},{\"match\":\"\\\\\\\\.=?\",\"name\":\"keyword.operator.string.php\"},{\"match\":\"=>\",\"name\":\"keyword.operator.key.php\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.assignment.php\"},\"2\":{\"name\":\"storage.modifier.reference.php\"},\"3\":{\"name\":\"storage.modifier.reference.php\"}},\"match\":\"(?i)(\\\\\\\\=)(&)|(&)(?=[$a-z_])\"},{\"match\":\"@\",\"name\":\"keyword.operator.error-control.php\"},{\"match\":\"===|==|!==|!=|<>\",\"name\":\"keyword.operator.comparison.php\"},{\"match\":\"=|\\\\\\\\+=|\\\\\\\\-=|\\\\\\\\*=|/=|%=|&=|\\\\\\\\|=|\\\\\\\\^=|<<=|>>=\",\"name\":\"keyword.operator.assignment.php\"},{\"match\":\"<=>|<=|>=|<|>\",\"name\":\"keyword.operator.comparison.php\"},{\"match\":\"\\\\\\\\-\\\\\\\\-|\\\\\\\\+\\\\\\\\+\",\"name\":\"keyword.operator.increment-decrement.php\"},{\"match\":\"\\\\\\\\-|\\\\\\\\+|\\\\\\\\*|/|%\",\"name\":\"keyword.operator.arithmetic.php\"},{\"match\":\"(?i)(!|&&|\\\\\\\\|\\\\\\\\|)|\\\\\\\\b(and|or|xor|as)\\\\\\\\b\",\"name\":\"keyword.operator.logical.php\"},{\"include\":\"#function-call\"},{\"match\":\"<<|>>|~|\\\\\\\\^|&|\\\\\\\\|\",\"name\":\"keyword.operator.bitwise.php\"},{\"begin\":\"(?i)\\\\\\\\b(instanceof)\\\\\\\\s+(?=[\\\\\\\\\\\\\\\\$a-z_])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.php\"}},\"end\":\"(?=[^\\\\\\\\\\\\\\\\$a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}])\",\"patterns\":[{\"include\":\"#class-name\"},{\"include\":\"#variable-name\"}]},{\"include\":\"#instantiation\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.goto.php\"},\"2\":{\"name\":\"support.other.php\"}},\"match\":\"(?i)(goto)\\\\\\\\s+([a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)\"},{\"captures\":{\"1\":{\"name\":\"entity.name.goto-label.php\"}},\"match\":\"(?i)^\\\\\\\\s*([a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)\\\\\\\\s*:(?!:)\"},{\"include\":\"#string-backtick\"},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.begin.bracket.curly.php\"}},\"end\":\"}|(?=\\\\\\\\?>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.curly.php\"}},\"patterns\":[{\"include\":\"#language\"}]},{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.array.begin.php\"}},\"end\":\"\\\\\\\\]|(?=\\\\\\\\?>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.array.end.php\"}},\"patterns\":[{\"include\":\"#language\"}]},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.begin.bracket.round.php\"}},\"end\":\"\\\\\\\\)|(?=\\\\\\\\?>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.round.php\"}},\"patterns\":[{\"include\":\"#language\"}]},{\"include\":\"#constants\"},{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.php\"}]},\"namespace\":{\"begin\":\"(?i)(?:(namespace)|[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)?(\\\\\\\\\\\\\\\\)(?=.*?[^a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}\\\\\\\\\\\\\\\\])\",\"beginCaptures\":{\"1\":{\"name\":\"variable.language.namespace.php\"},\"2\":{\"name\":\"punctuation.separator.inheritance.php\"}},\"end\":\"(?i)(?=[a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*[^a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}\\\\\\\\\\\\\\\\])\",\"name\":\"support.other.namespace.php\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\",\"name\":\"punctuation.separator.inheritance.php\"}]},\"nowdoc_interior\":{\"patterns\":[{\"begin\":\"(<<<)\\\\\\\\s*'(HTML)'(\\\\\\\\s*)$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"},\"1\":{\"name\":\"punctuation.definition.string.php\"},\"2\":{\"name\":\"keyword.operator.nowdoc.php\"},\"3\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"contentName\":\"text.html\",\"end\":\"^(\\\\\\\\2)\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"keyword.operator.nowdoc.php\"}},\"name\":\"meta.embedded.html\",\"patterns\":[{\"include\":\"text.html.basic\"}]},{\"begin\":\"(<<<)\\\\\\\\s*'(XML)'(\\\\\\\\s*)$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"},\"1\":{\"name\":\"punctuation.definition.string.php\"},\"2\":{\"name\":\"keyword.operator.nowdoc.php\"},\"3\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"contentName\":\"text.xml\",\"end\":\"^(\\\\\\\\2)\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"keyword.operator.nowdoc.php\"}},\"name\":\"meta.embedded.xml\",\"patterns\":[{\"include\":\"text.xml\"}]},{\"begin\":\"(<<<)\\\\\\\\s*'(SQL)'(\\\\\\\\s*)$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"},\"1\":{\"name\":\"punctuation.definition.string.php\"},\"2\":{\"name\":\"keyword.operator.nowdoc.php\"},\"3\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"contentName\":\"source.sql\",\"end\":\"^(\\\\\\\\2)\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"keyword.operator.nowdoc.php\"}},\"name\":\"meta.embedded.sql\",\"patterns\":[{\"include\":\"source.sql\"}]},{\"begin\":\"(<<<)\\\\\\\\s*'(JAVASCRIPT|JS)'(\\\\\\\\s*)$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"},\"1\":{\"name\":\"punctuation.definition.string.php\"},\"2\":{\"name\":\"keyword.operator.nowdoc.php\"},\"3\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"contentName\":\"source.js\",\"end\":\"^(\\\\\\\\2)\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"keyword.operator.nowdoc.php\"}},\"name\":\"meta.embedded.js\",\"patterns\":[{\"include\":\"source.js\"}]},{\"begin\":\"(<<<)\\\\\\\\s*'(JSON)'(\\\\\\\\s*)$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"},\"1\":{\"name\":\"punctuation.definition.string.php\"},\"2\":{\"name\":\"keyword.operator.nowdoc.php\"},\"3\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"contentName\":\"source.json\",\"end\":\"^(\\\\\\\\2)\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"keyword.operator.nowdoc.php\"}},\"name\":\"meta.embedded.json\",\"patterns\":[{\"include\":\"source.json\"}]},{\"begin\":\"(<<<)\\\\\\\\s*'(CSS)'(\\\\\\\\s*)$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"},\"1\":{\"name\":\"punctuation.definition.string.php\"},\"2\":{\"name\":\"keyword.operator.nowdoc.php\"},\"3\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"contentName\":\"source.css\",\"end\":\"^(\\\\\\\\2)\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"keyword.operator.nowdoc.php\"}},\"name\":\"meta.embedded.css\",\"patterns\":[{\"include\":\"source.css\"}]},{\"begin\":\"(<<<)\\\\\\\\s*'(REGEXP?)'(\\\\\\\\s*)$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"},\"1\":{\"name\":\"punctuation.definition.string.php\"},\"2\":{\"name\":\"keyword.operator.nowdoc.php\"},\"3\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"contentName\":\"string.regexp.nowdoc.php\",\"end\":\"^(\\\\\\\\2)\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"keyword.operator.nowdoc.php\"}},\"patterns\":[{\"match\":\"(\\\\\\\\\\\\\\\\){1,2}[.$^\\\\\\\\[\\\\\\\\]{}]\",\"name\":\"constant.character.escape.regex.php\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.arbitrary-repitition.php\"},\"3\":{\"name\":\"punctuation.definition.arbitrary-repitition.php\"}},\"match\":\"({)\\\\\\\\d+(,\\\\\\\\d+)?(})\",\"name\":\"string.regexp.arbitrary-repitition.php\"},{\"begin\":\"\\\\\\\\[(?:\\\\\\\\^?\\\\\\\\])?\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.character-class.php\"}},\"end\":\"\\\\\\\\]\",\"name\":\"string.regexp.character-class.php\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\\\'\\\\\\\\[\\\\\\\\]]\",\"name\":\"constant.character.escape.php\"}]},{\"match\":\"[$^+*]\",\"name\":\"keyword.operator.regexp.php\"},{\"begin\":\"(?i)(?<=^|\\\\\\\\s)(#)\\\\\\\\s(?=[[a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff},. \\\\\\\\t?!-][^\\\\\\\\x{00}-\\\\\\\\x{7f}]]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.php\"}},\"end\":\"$\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.php\"}},\"name\":\"comment.line.number-sign.php\"}]},{\"begin\":\"(?i)(<<<)\\\\\\\\s*'([a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}]+[a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)'(\\\\\\\\s*)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.php\"},\"2\":{\"name\":\"keyword.operator.nowdoc.php\"},\"3\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"end\":\"^(\\\\\\\\2)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.nowdoc.php\"}}}]},\"numbers\":{\"patterns\":[{\"match\":\"0[xX][0-9a-fA-F]+\",\"name\":\"constant.numeric.hex.php\"},{\"match\":\"0[bB][01]+\",\"name\":\"constant.numeric.binary.php\"},{\"match\":\"0[0-7]+\",\"name\":\"constant.numeric.octal.php\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.decimal.period.php\"},\"2\":{\"name\":\"punctuation.separator.decimal.period.php\"}},\"match\":\"(?:[0-9]*(\\\\\\\\.)[0-9]+(?:[eE][+-]?[0-9]+)?|[0-9]+(\\\\\\\\.)[0-9]*(?:[eE][+-]?[0-9]+)?|[0-9]+[eE][+-]?[0-9]+)\",\"name\":\"constant.numeric.decimal.php\"},{\"match\":\"0|[1-9][0-9]*\",\"name\":\"constant.numeric.decimal.php\"}]},\"object\":{\"patterns\":[{\"begin\":\"(->)(\\\\\\\\$?{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.class.php\"},\"2\":{\"name\":\"punctuation.definition.variable.php\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.variable.php\"}},\"patterns\":[{\"include\":\"#language\"}]},{\"begin\":\"(?i)(->)([a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.class.php\"},\"2\":{\"name\":\"entity.name.function.php\"},\"3\":{\"name\":\"punctuation.definition.arguments.begin.bracket.round.php\"}},\"end\":\"\\\\\\\\)|(?=\\\\\\\\?>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.bracket.round.php\"}},\"name\":\"meta.method-call.php\",\"patterns\":[{\"include\":\"#language\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.operator.class.php\"},\"2\":{\"name\":\"variable.other.property.php\"},\"3\":{\"name\":\"punctuation.definition.variable.php\"}},\"match\":\"(?i)(->)((\\\\\\\\$+)?[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)?\"}]},\"parameter-default-types\":{\"patterns\":[{\"include\":\"#strings\"},{\"include\":\"#numbers\"},{\"include\":\"#string-backtick\"},{\"include\":\"#variables\"},{\"match\":\"=>\",\"name\":\"keyword.operator.key.php\"},{\"match\":\"=\",\"name\":\"keyword.operator.assignment.php\"},{\"match\":\"&(?=\\\\\\\\s*\\\\\\\\$)\",\"name\":\"storage.modifier.reference.php\"},{\"begin\":\"(array)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.construct.php\"},\"2\":{\"name\":\"punctuation.definition.array.begin.bracket.round.php\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.array.end.bracket.round.php\"}},\"name\":\"meta.array.php\",\"patterns\":[{\"include\":\"#parameter-default-types\"}]},{\"include\":\"#instantiation\"},{\"begin\":\"(?xi)\\\\n(?=[a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}\\\\\\\\\\\\\\\\]+(::)\\\\n  ([a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)?\\\\n)\",\"end\":\"(?i)(::)([a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)?\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.class.php\"},\"2\":{\"name\":\"constant.other.class.php\"}},\"patterns\":[{\"include\":\"#class-name\"}]},{\"include\":\"#constants\"}]},\"php_doc\":{\"patterns\":[{\"match\":\"^(?!\\\\\\\\s*\\\\\\\\*).*?(?:(?=\\\\\\\\*\\\\\\\\/)|$\\\\\\\\n?)\",\"name\":\"invalid.illegal.missing-asterisk.phpdoc.php\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.phpdoc.php\"},\"3\":{\"name\":\"storage.modifier.php\"},\"4\":{\"name\":\"invalid.illegal.wrong-access-type.phpdoc.php\"}},\"match\":\"^\\\\\\\\s*\\\\\\\\*\\\\\\\\s*(@access)\\\\\\\\s+((public|private|protected)|(.+))\\\\\\\\s*$\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.phpdoc.php\"},\"2\":{\"name\":\"markup.underline.link.php\"}},\"match\":\"(@xlink)\\\\\\\\s+(.+)\\\\\\\\s*$\"},{\"begin\":\"(@(?:global|param|property(-(read|write))?|return|throws|var))\\\\\\\\s+(?=[A-Za-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}\\\\\\\\\\\\\\\\]|\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.phpdoc.php\"}},\"contentName\":\"meta.other.type.phpdoc.php\",\"end\":\"(?=\\\\\\\\s|\\\\\\\\*/)\",\"patterns\":[{\"include\":\"#php_doc_types_array_multiple\"},{\"include\":\"#php_doc_types_array_single\"},{\"include\":\"#php_doc_types\"}]},{\"match\":\"@(api|abstract|author|category|copyright|example|global|inherit[Dd]oc|internal|license|link|method|property(-(read|write))?|package|param|return|see|since|source|static|subpackage|throws|todo|var|version|uses|deprecated|final|ignore)\\\\\\\\b\",\"name\":\"keyword.other.phpdoc.php\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.phpdoc.php\"}},\"match\":\"{(@(link|inherit[Dd]oc)).+?}\",\"name\":\"meta.tag.inline.phpdoc.php\"}]},\"php_doc_types\":{\"captures\":{\"0\":{\"patterns\":[{\"match\":\"\\\\\\\\b(string|integer|int|boolean|bool|float|double|object|mixed|array|resource|void|null|callback|false|true|self)\\\\\\\\b\",\"name\":\"keyword.other.type.php\"},{\"include\":\"#class-name\"},{\"match\":\"\\\\\\\\|\",\"name\":\"punctuation.separator.delimiter.php\"}]}},\"match\":\"(?i)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}\\\\\\\\\\\\\\\\][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}\\\\\\\\\\\\\\\\]*(\\\\\\\\|[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}\\\\\\\\\\\\\\\\][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}\\\\\\\\\\\\\\\\]*)*\"},\"php_doc_types_array_multiple\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.type.begin.bracket.round.phpdoc.php\"}},\"end\":\"(\\\\\\\\))(\\\\\\\\[\\\\\\\\])|(?=\\\\\\\\*/)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.type.end.bracket.round.phpdoc.php\"},\"2\":{\"name\":\"keyword.other.array.phpdoc.php\"}},\"patterns\":[{\"include\":\"#php_doc_types_array_multiple\"},{\"include\":\"#php_doc_types_array_single\"},{\"include\":\"#php_doc_types\"},{\"match\":\"\\\\\\\\|\",\"name\":\"punctuation.separator.delimiter.php\"}]},\"php_doc_types_array_single\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#php_doc_types\"}]},\"2\":{\"name\":\"keyword.other.array.phpdoc.php\"}},\"match\":\"(?i)([a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}\\\\\\\\\\\\\\\\][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}\\\\\\\\\\\\\\\\]*)(\\\\\\\\[\\\\\\\\])\"},\"regex-double-quoted\":{\"begin\":\"\\\\\"/(?=(\\\\\\\\\\\\\\\\.|[^\\\\\"/])++/[imsxeADSUXu]*\\\\\")\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.php\"}},\"end\":\"(/)([imsxeADSUXu]*)(\\\\\")\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.php\"}},\"name\":\"string.regexp.double-quoted.php\",\"patterns\":[{\"match\":\"(\\\\\\\\\\\\\\\\){1,2}[.$^\\\\\\\\[\\\\\\\\]{}]\",\"name\":\"constant.character.escape.regex.php\"},{\"include\":\"#interpolation\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.arbitrary-repetition.php\"},\"3\":{\"name\":\"punctuation.definition.arbitrary-repetition.php\"}},\"match\":\"({)\\\\\\\\d+(,\\\\\\\\d+)?(})\",\"name\":\"string.regexp.arbitrary-repetition.php\"},{\"begin\":\"\\\\\\\\[(?:\\\\\\\\^?\\\\\\\\])?\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.character-class.php\"}},\"end\":\"\\\\\\\\]\",\"name\":\"string.regexp.character-class.php\",\"patterns\":[{\"include\":\"#interpolation\"}]},{\"match\":\"[$^+*]\",\"name\":\"keyword.operator.regexp.php\"}]},\"regex-single-quoted\":{\"begin\":\"'/(?=(\\\\\\\\\\\\\\\\(?:\\\\\\\\\\\\\\\\(?:\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\\\']?|[^'])|.)|[^'/])++/[imsxeADSUXu]*')\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.php\"}},\"end\":\"(/)([imsxeADSUXu]*)(')\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.php\"}},\"name\":\"string.regexp.single-quoted.php\",\"patterns\":[{\"include\":\"#single_quote_regex_escape\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.arbitrary-repetition.php\"},\"3\":{\"name\":\"punctuation.definition.arbitrary-repetition.php\"}},\"match\":\"({)\\\\\\\\d+(,\\\\\\\\d+)?(})\",\"name\":\"string.regexp.arbitrary-repetition.php\"},{\"begin\":\"\\\\\\\\[(?:\\\\\\\\^?\\\\\\\\])?\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.character-class.php\"}},\"end\":\"\\\\\\\\]\",\"name\":\"string.regexp.character-class.php\"},{\"match\":\"[$^+*]\",\"name\":\"keyword.operator.regexp.php\"}]},\"scope-resolution\":{\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"match\":\"\\\\\\\\b(self|static|parent)\\\\\\\\b\",\"name\":\"storage.type.php\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"entity.name.class.php\"},{\"include\":\"#class-name\"},{\"include\":\"#variable-name\"}]}},\"match\":\"(?i)\\\\\\\\b([a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)(?=\\\\\\\\s*::)\"},{\"begin\":\"(?i)(::)\\\\\\\\s*([a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.class.php\"},\"2\":{\"name\":\"entity.name.function.php\"},\"3\":{\"name\":\"punctuation.definition.arguments.begin.bracket.round.php\"}},\"end\":\"\\\\\\\\)|(?=\\\\\\\\?>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.bracket.round.php\"}},\"name\":\"meta.method-call.static.php\",\"patterns\":[{\"include\":\"#language\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.operator.class.php\"},\"2\":{\"name\":\"keyword.other.class.php\"}},\"match\":\"(?i)(::)\\\\\\\\s*(class)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.class.php\"},\"2\":{\"name\":\"variable.other.class.php\"},\"3\":{\"name\":\"punctuation.definition.variable.php\"},\"4\":{\"name\":\"constant.other.class.php\"}},\"match\":\"(?xi)\\\\n(::)\\\\\\\\s*\\\\n(?:\\\\n  ((\\\\\\\\$+)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*) # Variable\\\\n  |\\\\n  ([a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)       # Constant\\\\n)?\"}]},\"single_quote_regex_escape\":{\"match\":\"\\\\\\\\\\\\\\\\(?:\\\\\\\\\\\\\\\\(?:\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\\\']?|[^'])|.)\",\"name\":\"constant.character.escape.php\"},\"sql-string-double-quoted\":{\"begin\":\"\\\\\"\\\\\\\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND)\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.php\"}},\"contentName\":\"source.sql.embedded.php\",\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.php\"}},\"name\":\"string.quoted.double.sql.php\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.sql\"}},\"match\":\"(#)(\\\\\\\\\\\\\\\\\\\\\"|[^\\\\\"])*(?=\\\\\"|$)\",\"name\":\"comment.line.number-sign.sql\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.sql\"}},\"match\":\"(--)(\\\\\\\\\\\\\\\\\\\\\"|[^\\\\\"])*(?=\\\\\"|$)\",\"name\":\"comment.line.double-dash.sql\"},{\"match\":\"\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\"\\`']\",\"name\":\"constant.character.escape.php\"},{\"match\":\"'(?=((\\\\\\\\\\\\\\\\')|[^'\\\\\"])*(\\\\\"|$))\",\"name\":\"string.quoted.single.unclosed.sql\"},{\"match\":\"\\`(?=((\\\\\\\\\\\\\\\\\\`)|[^\\`\\\\\"])*(\\\\\"|$))\",\"name\":\"string.quoted.other.backtick.unclosed.sql\"},{\"begin\":\"'\",\"end\":\"'\",\"name\":\"string.quoted.single.sql\",\"patterns\":[{\"include\":\"#interpolation\"}]},{\"begin\":\"\\`\",\"end\":\"\\`\",\"name\":\"string.quoted.other.backtick.sql\",\"patterns\":[{\"include\":\"#interpolation\"}]},{\"include\":\"#interpolation\"},{\"include\":\"source.sql\"}]},\"sql-string-single-quoted\":{\"begin\":\"'\\\\\\\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND)\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.php\"}},\"contentName\":\"source.sql.embedded.php\",\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.php\"}},\"name\":\"string.quoted.single.sql.php\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.sql\"}},\"match\":\"(#)(\\\\\\\\\\\\\\\\'|[^'])*(?='|$)\",\"name\":\"comment.line.number-sign.sql\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.sql\"}},\"match\":\"(--)(\\\\\\\\\\\\\\\\'|[^'])*(?='|$)\",\"name\":\"comment.line.double-dash.sql\"},{\"match\":\"\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\\\'\\`\\\\\"]\",\"name\":\"constant.character.escape.php\"},{\"match\":\"\\`(?=((\\\\\\\\\\\\\\\\\\`)|[^\\`'])*('|$))\",\"name\":\"string.quoted.other.backtick.unclosed.sql\"},{\"match\":\"\\\\\"(?=((\\\\\\\\\\\\\\\\\\\\\")|[^\\\\\"'])*('|$))\",\"name\":\"string.quoted.double.unclosed.sql\"},{\"include\":\"source.sql\"}]},\"string-backtick\":{\"begin\":\"\\`\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.php\"}},\"end\":\"\\`\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.php\"}},\"name\":\"string.interpolated.php\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.php\"},{\"include\":\"#interpolation\"}]},\"string-double-quoted\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.php\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.php\"}},\"name\":\"string.quoted.double.php\",\"patterns\":[{\"include\":\"#interpolation\"}]},\"string-single-quoted\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.php\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.php\"}},\"name\":\"string.quoted.single.php\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\\\']\",\"name\":\"constant.character.escape.php\"}]},\"strings\":{\"patterns\":[{\"include\":\"#regex-double-quoted\"},{\"include\":\"#sql-string-double-quoted\"},{\"include\":\"#string-double-quoted\"},{\"include\":\"#regex-single-quoted\"},{\"include\":\"#sql-string-single-quoted\"},{\"include\":\"#string-single-quoted\"}]},\"support\":{\"patterns\":[{\"match\":\"(?xi)\\\\n\\\\\\\\b\\\\napc_(\\\\n  store|sma_info|compile_file|clear_cache|cas|cache_info|inc|dec|define_constants|delete(_file)?|\\\\n  exists|fetch|load_constants|add|bin_(dump|load)(file)?\\\\n)\\\\\\\\b\",\"name\":\"support.function.apc.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  shuffle|sizeof|sort|next|nat(case)?sort|count|compact|current|in_array|usort|uksort|uasort|\\\\n  pos|prev|end|each|extract|ksort|key(_exists)?|krsort|list|asort|arsort|rsort|reset|range|\\\\n  array(_(shift|sum|splice|search|slice|chunk|change_key_case|count_values|column|combine|\\\\n          (diff|intersect)(_(u)?(key|assoc))?|u(diff|intersect)(_(u)?assoc)?|unshift|unique|\\\\n          pop|push|pad|product|values|keys|key_exists|filter|fill(_keys)?|flip|walk(_recursive)?|\\\\n          reduce|replace(_recursive)?|reverse|rand|multisort|merge(_recursive)?|map)?)\\\\n)\\\\\\\\b\",\"name\":\"support.function.array.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  show_source|sys_getloadavg|sleep|highlight_(file|string)|constant|connection_(aborted|status)|\\\\n  time_(nanosleep|sleep_until)|ignore_user_abort|die|define(d)?|usleep|uniqid|unpack|__halt_compiler|\\\\n  php_(check_syntax|strip_whitespace)|pack|eval|exit|get_browser\\\\n)\\\\\\\\b\",\"name\":\"support.function.basic_functions.php\"},{\"match\":\"(?i)\\\\\\\\bbc(scale|sub|sqrt|comp|div|pow(mod)?|add|mod|mul)\\\\\\\\b\",\"name\":\"support.function.bcmath.php\"},{\"match\":\"(?i)\\\\\\\\bblenc_encrypt\\\\\\\\b\",\"name\":\"support.function.blenc.php\"},{\"match\":\"(?i)\\\\\\\\bbz(compress|close|open|decompress|errstr|errno|error|flush|write|read)\\\\\\\\b\",\"name\":\"support.function.bz2.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  (French|Gregorian|Jewish|Julian)ToJD|cal_(to_jd|info|days_in_month|from_jd)|unixtojd|\\\\n  jdto(unix|jewish)|easter_(date|days)|JD(MonthName|To(Gregorian|Julian|French)|DayOfWeek)\\\\n)\\\\\\\\b\",\"name\":\"support.function.calendar.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  class_alias|all_user_method(_array)?|is_(a|subclass_of)|__autoload|(class|interface|method|property|trait)_exists|\\\\n  get_(class(_(vars|methods))?|(called|parent)_class|object_vars|declared_(classes|interfaces|traits))\\\\n)\\\\\\\\b\",\"name\":\"support.function.classobj.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  com_(create_guid|print_typeinfo|event_sink|load_typelib|get_active_object|message_pump)|\\\\n  variant_(sub|set(_type)?|not|neg|cast|cat|cmp|int|idiv|imp|or|div|date_(from|to)_timestamp|\\\\n           pow|eqv|fix|and|add|abs|round|get_type|xor|mod|mul)\\\\n)\\\\\\\\b\",\"name\":\"support.function.com.php\"},{\"begin\":\"(?i)\\\\\\\\b(isset|unset|eval|empty|list)\\\\\\\\b\",\"name\":\"support.function.construct.php\"},{\"match\":\"(?i)\\\\\\\\b(print|echo)\\\\\\\\b\",\"name\":\"support.function.construct.output.php\"},{\"match\":\"(?i)\\\\\\\\bctype_(space|cntrl|digit|upper|punct|print|lower|alnum|alpha|graph|xdigit)\\\\\\\\b\",\"name\":\"support.function.ctype.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\ncurl_(\\\\n  share_(close|init|setopt)|strerror|setopt(_array)?|copy_handle|close|init|unescape|pause|escape|\\\\n  errno|error|exec|version|file_create|reset|getinfo|\\\\n  multi_(strerror|setopt|select|close|init|info_read|(add|remove)_handle|getcontent|exec)\\\\n)\\\\\\\\b\",\"name\":\"support.function.curl.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  strtotime|str[fp]time|checkdate|time|timezone_name_(from_abbr|get)|idate|\\\\n  timezone_((location|offset|transitions|version)_get|(abbreviations|identifiers)_list|open)|\\\\n  date(_(sun(rise|set)|sun_info|sub|create(_(immutable_)?from_format)?|timestamp_(get|set)|timezone_(get|set)|time_set|\\\\n         isodate_set|interval_(create_from_date_string|format)|offset_get|diff|default_timezone_(get|set)|date_set|\\\\n         parse(_from_format)?|format|add|get_last_errors|modify))?|\\\\n  localtime|get(date|timeofday)|gm(strftime|date|mktime)|microtime|mktime\\\\n)\\\\\\\\b\",\"name\":\"support.function.datetime.php\"},{\"match\":\"(?i)\\\\\\\\bdba_(sync|handlers|nextkey|close|insert|optimize|open|delete|popen|exists|key_split|firstkey|fetch|list|replace)\\\\\\\\b\",\"name\":\"support.function.dba.php\"},{\"match\":\"(?i)\\\\\\\\bdbx_(sort|connect|compare|close|escape_string|error|query|fetch_row)\\\\\\\\b\",\"name\":\"support.function.dbx.php\"},{\"match\":\"(?i)\\\\\\\\b(scandir|chdir|chroot|closedir|opendir|dir|rewinddir|readdir|getcwd)\\\\\\\\b\",\"name\":\"support.function.dir.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\neio_(\\\\n  sync(fs)?|sync_file_range|symlink|stat(vfs)?|sendfile|set_min_parallel|set_max_(idle|poll_(reqs|time)|parallel)|\\\\n  seek|n(threads|op|pending|reqs|ready)|chown|chmod|custom|close|cancel|truncate|init|open|dup2|unlink|utime|poll|\\\\n  event_loop|f(sync|stat(vfs)?|chown|chmod|truncate|datasync|utime|allocate)|write|lstat|link|rename|realpath|\\\\n  read(ahead|dir|link)?|rmdir|get_(event_stream|last_error)|grp(_(add|cancel|limit))?|mknod|mkdir|busy\\\\n)\\\\\\\\b\",\"name\":\"support.function.eio.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nenchant_(\\\\n  dict_(store_replacement|suggest|check|is_in_session|describe|quick_check|add_to_(personal|session)|get_error)|\\\\n  broker_(set_ordering|init|dict_exists|describe|free(_dict)?|list_dicts|request_(pwl_)?dict|get_error)\\\\n)\\\\\\\\b\",\"name\":\"support.function.enchant.php\"},{\"match\":\"(?i)\\\\\\\\bsplit(i)?|sql_regcase|ereg(i)?(_replace)?\\\\\\\\b\",\"name\":\"support.function.ereg.php\"},{\"match\":\"(?i)\\\\\\\\b((restore|set)_(error_handler|exception_handler)|trigger_error|debug_(print_)?backtrace|user_error|error_(log|reporting|get_last))\\\\\\\\b\",\"name\":\"support.function.errorfunc.php\"},{\"match\":\"(?i)\\\\\\\\bshell_exec|system|passthru|proc_(nice|close|terminate|open|get_status)|escapeshell(arg|cmd)|exec\\\\\\\\b\",\"name\":\"support.function.exec.php\"},{\"match\":\"(?i)\\\\\\\\b(exif_(thumbnail|tagname|imagetype|read_data)|read_exif_data)\\\\\\\\b\",\"name\":\"support.function.exif.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nfann_(\\\\n  (duplicate|length|merge|shuffle|subset)_train_data|scale_(train(_data)?|(input|output)(_train_data)?)|\\\\n  set_(scaling_params|sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)|\\\\n       cascade_(num_candidate_groups|candidate_(change_fraction|limit|stagnation_epochs)|\\\\n                output_(change_fraction|stagnation_epochs)|weight_multiplier|activation_(functions|steepnesses)|\\\\n                (max|min)_(cand|out)_epochs)|\\\\n       callback|training_algorithm|train_(error|stop)_function|(input|output)_scaling_params|error_log|\\\\n       quickprop_(decay|mu)|weight(_array)?|learning_(momentum|rate)|bit_fail_limit|\\\\n       activation_(function|steepness)(_(hidden|layer|output))?|\\\\n       rprop_((decrease|increase)_factor|delta_(max|min|zero)))|\\\\n  save(_train)?|num_(input|output)_train_data|copy|clear_scaling_params|cascadetrain_on_(file|data)|\\\\n  create_((sparse|shortcut|standard)(_array)?|train(_from_callback)?|from_file)|\\\\n  test(_data)?|train(_(on_(file|data)|epoch))?|init_weights|descale_(input|output|train)|destroy(_train)?|\\\\n  print_error|run|reset_(MSE|err(no|str))|read_train_from_file|randomize_weights|\\\\n  get_(sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)|num_(input|output|layers)|\\\\n       network_type|MSE|connection_(array|rate)|bias_array|bit_fail(_limit)?|\\\\n       cascade_(num_(candidates|candidate_groups)|(candidate|output)_(change_fraction|limit|stagnation_epochs)|\\\\n                weight_multiplier|activation_(functions|steepnesses)(_count)?|(max|min)_(cand|out)_epochs)|\\\\n       total_(connections|neurons)|training_algorithm|train_(error|stop)_function|err(no|str)|\\\\n       quickprop_(decay|mu)|learning_(momentum|rate)|layer_array|activation_(function|steepness)|\\\\n       rprop_((decrease|increase)_factor|delta_(max|min|zero)))\\\\n)\\\\\\\\b\",\"name\":\"support.function.fann.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  symlink|stat|set_file_buffer|chown|chgrp|chmod|copy|clearstatcache|touch|tempnam|tmpfile|\\\\n  is_(dir|(uploaded_)?file|executable|link|readable|writ(e)?able)|disk_(free|total)_space|diskfreespace|\\\\n  dirname|delete|unlink|umask|pclose|popen|pathinfo|parse_ini_(file|string)|fscanf|fstat|fseek|fnmatch|\\\\n  fclose|ftell|ftruncate|file(size|[acm]time|type|inode|owner|perms|group)?|file_(exists|(get|put)_contents)|\\\\n  f(open|puts|putcsv|passthru|eof|flush|write|lock|read|gets(s)?|getc(sv)?)|lstat|lchown|lchgrp|link(info)?|\\\\n  rename|rewind|read(file|link)|realpath(_cache_(get|size))?|rmdir|glob|move_uploaded_file|mkdir|basename\\\\n)\\\\\\\\b\",\"name\":\"support.function.file.php\"},{\"match\":\"(?i)\\\\\\\\b(finfo_(set_flags|close|open|file|buffer)|mime_content_type)\\\\\\\\b\",\"name\":\"support.function.fileinfo.php\"},{\"match\":\"(?i)\\\\\\\\bfilter_(has_var|input(_array)?|id|var(_array)?|list)\\\\\\\\b\",\"name\":\"support.function.filter.php\"},{\"match\":\"(?i)\\\\\\\\bfastcgi_finish_request\\\\\\\\b\",\"name\":\"support.function.fpm.php\"},{\"match\":\"(?i)\\\\\\\\b(call_user_(func|method)(_array)?|create_function|unregister_tick_function|forward_static_call(_array)?|function_exists|func_(num_args|get_arg(s)?)|register_(shutdown|tick)_function|get_defined_functions)\\\\\\\\b\",\"name\":\"support.function.funchand.php\"},{\"match\":\"(?i)\\\\\\\\b((n)?gettext|textdomain|d((n)?gettext|c(n)?gettext)|bind(textdomain|_textdomain_codeset))\\\\\\\\b\",\"name\":\"support.function.gettext.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\ngmp_(\\\\n  scan[01]|strval|sign|sub|setbit|sqrt(rem)?|hamdist|neg|nextprime|com|clrbit|cmp|testbit|\\\\n  intval|init|invert|import|or|div(exact)?|div_(q|qr|r)|jacobi|popcount|pow(m)?|perfect_square|\\\\n  prob_prime|export|fact|legendre|and|add|abs|root(rem)?|random(_(bits|range))?|gcd(ext)?|xor|mod|mul\\\\n)\\\\\\\\b\",\"name\":\"support.function.gmp.php\"},{\"match\":\"(?i)\\\\\\\\bhash(_(hmac(_file)?|copy|init|update(_(file|stream))?|pbkdf2|equals|file|final|algos))?\\\\\\\\b\",\"name\":\"support.function.hash.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  http_(support|send_(status|stream|content_(disposition|type)|data|file|last_modified)|head|\\\\n        negotiate_(charset|content_type|language)|chunked_decode|cache_(etag|last_modified)|throttle|\\\\n        inflate|deflate|date|post_(data|fields)|put_(data|file|stream)|persistent_handles_(count|clean|ident)|\\\\n        parse_(cookie|headers|message|params)|redirect|request(_(method_(exists|name|(un)?register)|body_encode))?|\\\\n        get(_request_(headers|body(_stream)?))?|match_(etag|modified|request_header)|build_(cookie|str|url))|\\\\n  ob_(etag|deflate|inflate)handler\\\\n)\\\\\\\\b\",\"name\":\"support.function.http.php\"},{\"match\":\"(?i)\\\\\\\\b(iconv(_(str(pos|len|rpos)|substr|(get|set)_encoding|mime_(decode(_headers)?|encode)))?|ob_iconv_handler)\\\\\\\\b\",\"name\":\"support.function.iconv.php\"},{\"match\":\"(?i)\\\\\\\\biis_((start|stop)_(service|server)|set_(script_map|server_rights|dir_security|app_settings)|(add|remove)_server|get_(script_map|service_state|server_(rights|by_(comment|path))|dir_security))\\\\\\\\b\",\"name\":\"support.function.iisfunc.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  iptc(embed|parse)|(jpeg|png)2wbmp|gd_info|getimagesize(fromstring)?|\\\\n  image(s[xy]|scale|(char|string)(up)?|set(style|thickness|tile|interpolation|pixel|brush)|savealpha|\\\\n        convolution|copy(resampled|resized|merge(gray)?)?|colors(forindex|total)|\\\\n        color(set|closest(alpha|hwb)?|transparent|deallocate|(allocate|exact|resolve)(alpha)?|at|match)|\\\\n        crop(auto)?|create(truecolor|from(string|jpeg|png|wbmp|webp|gif|gd(2(part)?)?|xpm|xbm))?|\\\\n        types|ttf(bbox|text)|truecolortopalette|istruecolor|interlace|2wbmp|destroy|dashedline|jpeg|\\\\n        _type_to_(extension|mime_type)|ps(slantfont|text|(encode|extend|free|load)font|bbox)|png|polygon|\\\\n        palette(copy|totruecolor)|ellipse|ft(text|bbox)|filter|fill|filltoborder|\\\\n        filled(arc|ellipse|polygon|rectangle)|font(height|width)|flip|webp|wbmp|line|loadfont|layereffect|\\\\n        antialias|affine(matrix(concat|get))?|alphablending|arc|rotate|rectangle|gif|gd(2)?|gammacorrect|\\\\n        grab(screen|window)|xbm)\\\\n)\\\\\\\\b\",\"name\":\"support.function.image.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  sys_get_temp_dir|set_(time_limit|include_path|magic_quotes_runtime)|cli_(get|set)_process_title|\\\\n  ini_(alter|get(_all)?|restore|set)|zend_(thread_id|version|logo_guid)|dl|php(credits|info|version)|\\\\n  php_(sapi_name|ini_(scanned_files|loaded_file)|uname|logo_guid)|putenv|extension_loaded|version_compare|\\\\n  assert(_options)?|restore_include_path|gc_(collect_cycles|disable|enable(d)?)|getopt|\\\\n  get_(cfg_var|current_user|defined_constants|extension_funcs|include_path|included_files|loaded_extensions|\\\\n       magic_quotes_(gpc|runtime)|required_files|resources)|\\\\n  get(env|lastmod|rusage|my(inode|[gup]id))|\\\\n  memory_get_(peak_)?usage|main|magic_quotes_runtime\\\\n)\\\\\\\\b\",\"name\":\"support.function.info.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nibase_(\\\\n  set_event_handler|service_(attach|detach)|server_info|num_(fields|params)|name_result|connect|\\\\n  commit(_ret)?|close|trans|delete_user|drop_db|db_info|pconnect|param_info|prepare|err(code|msg)|\\\\n  execute|query|field_info|fetch_(assoc|object|row)|free_(event_handler|query|result)|wait_event|\\\\n  add_user|affected_rows|rollback(_ret)?|restore|gen_id|modify_user|maintain_db|backup|\\\\n  blob_(cancel|close|create|import|info|open|echo|add|get)\\\\n)\\\\\\\\b\",\"name\":\"support.function.interbase.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  normalizer_(normalize|is_normalized)|idn_to_(unicode|utf8|ascii)|\\\\n  numfmt_(set_(symbol|(text_)?attribute|pattern)|create|(parse|format)(_currency)?|\\\\n          get_(symbol|(text_)?attribute|pattern|error_(code|message)|locale))|\\\\n  collator_(sort(_with_sort_keys)?|set_(attribute|strength)|compare|create|asort|\\\\n            get_(strength|sort_key|error_(code|message)|locale|attribute))|\\\\n  transliterator_(create(_(inverse|from_rules))?|transliterate|list_ids|get_error_(code|message))|\\\\n  intl(cal|tz)_get_error_(code|message)|intl_(is_failure|error_name|get_error_(code|message))|\\\\n  datefmt_(set_(calendar|lenient|pattern|timezone(_id)?)|create|is_lenient|parse|format(_object)?|localtime|\\\\n           get_(calendar(_object)?|time(type|zone(_id)?)|datetype|pattern|error_(code|message)|locale))|\\\\n  locale_(set_default|compose|canonicalize|parse|filter_matches|lookup|accept_from_http|\\\\n          get_(script|display_(script|name|variant|language|region)|default|primary_language|keywords|all_variants|region))|\\\\n  resourcebundle_(create|count|locales|get(_(error_(code|message)))?)|\\\\n  grapheme_(str(i?str|r?i?pos|len)|substr|extract)|\\\\n  msgfmt_(set_pattern|create|(format|parse)(_message)?|get_(pattern|error_(code|message)|locale))\\\\n)\\\\\\\\b\",\"name\":\"support.function.intl.php\"},{\"match\":\"(?i)\\\\\\\\bjson_(decode|encode|last_error(_msg)?)\\\\\\\\b\",\"name\":\"support.function.json.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nldap_(\\\\n  start|tls|sort|search|sasl_bind|set_(option|rebind_proc)|(first|next)_(attribute|entry|reference)|\\\\n  connect|control_paged_result(_response)?|count_entries|compare|close|t61_to_8859|8859_to_t61|\\\\n  dn2ufn|delete|unbind|parse_(reference|result)|escape|errno|err2str|error|explode_dn|bind|\\\\n  free_result|list|add|rename|read|get_(option|dn|entries|values(_len)?|attributes)|modify(_batch)?|\\\\n  mod_(add|del|replace)\\\\n)\\\\\\\\b\",\"name\":\"support.function.ldap.php\"},{\"match\":\"(?i)\\\\\\\\blibxml_(set_(streams_context|external_entity_loader)|clear_errors|disable_entity_loader|use_internal_errors|get_(errors|last_error))\\\\\\\\b\",\"name\":\"support.function.libxml.php\"},{\"match\":\"(?i)\\\\\\\\b(ezmlm_hash|mail)\\\\\\\\b\",\"name\":\"support.function.mail.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  (a)?(cos|sin|tan)(h)?|sqrt|srand|hypot|hexdec|ceil|is_(nan|(in)?finite)|octdec|dec(hex|oct|bin)|deg2rad|\\\\n  pi|pow|exp(m1)?|floor|fmod|lcg_value|log(1(p|0))?|atan2|abs|round|rand|rad2deg|getrandmax|\\\\n  mt_(srand|rand|getrandmax)|max|min|bindec|base_convert\\\\n)\\\\\\\\b\",\"name\":\"support.function.math.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nmb_(\\\\n  str(cut|str|to(lower|upper)|istr|ipos|imwidth|pos|width|len|rchr|richr|ripos|rpos)|\\\\n  substitute_character|substr(_count)?|split|send_mail|http_(input|output)|check_encoding|\\\\n  convert_(case|encoding|kana|variables)|internal_encoding|output_handler|decode_(numericentity|mimeheader)|\\\\n  detect_(encoding|order)|parse_str|preferred_mime_name|encoding_aliases|encode_(numericentity|mimeheader)|\\\\n  ereg(i(_replace)?)?|ereg_(search(_(get(pos|regs)|init|regs|(set)?pos))?|replace(_callback)?|match)|\\\\n  list_encodings|language|regex_(set_options|encoding)|get_info\\\\n)\\\\\\\\b\",\"name\":\"support.function.mbstring.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  mcrypt_(\\\\n    cfb|create_iv|cbc|ofb|decrypt|encrypt|ecb|list_(algorithms|modes)|generic(_((de)?init|end))?|\\\\n    enc_(self_test|is_block_(algorithm|algorithm_mode|mode)|\\\\n    get_(supported_key_sizes|(block|iv|key)_size|(algorithms|modes)_name))|\\\\n    get_(cipher_name|(block|iv|key)_size)|\\\\n    module_(close|self_test|is_block_(algorithm|algorithm_mode|mode)|open|\\\\n            get_(supported_key_sizes|algo_(block|key)_size)))|\\\\n  mdecrypt_generic\\\\n)\\\\\\\\b\",\"name\":\"support.function.mcrypt.php\"},{\"match\":\"(?i)\\\\\\\\bmemcache_debug\\\\\\\\b\",\"name\":\"support.function.memcache.php\"},{\"match\":\"(?i)\\\\\\\\bmhash(_(count|keygen_s2k|get_(hash_name|block_size)))?\\\\\\\\b\",\"name\":\"support.function.mhash.php\"},{\"match\":\"(?i)\\\\\\\\b(log_(cmd_(insert|delete|update)|killcursor|write_batch|reply|getmore)|bson_(decode|encode))\\\\\\\\b\",\"name\":\"support.function.mongo.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nmysql_(\\\\n  stat|set_charset|select_db|num_(fields|rows)|connect|client_encoding|close|create_db|escape_string|\\\\n  thread_id|tablename|insert_id|info|data_seek|drop_db|db_(name|query)|unbuffered_query|pconnect|ping|\\\\n  errno|error|query|field_(seek|name|type|table|flags|len)|fetch_(object|field|lengths|assoc|array|row)|\\\\n  free_result|list_(tables|dbs|processes|fields)|affected_rows|result|real_escape_string|\\\\n  get_(client|host|proto|server)_info\\\\n)\\\\\\\\b\",\"name\":\"support.function.mysql.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nmysqli_(\\\\n  ssl_set|store_result|stat|send_(query|long_data)|set_(charset|opt|local_infile_(default|handler))|\\\\n  stmt_(store_result|send_long_data|next_result|close|init|data_seek|prepare|execute|fetch|free_result|\\\\n        attr_(get|set)|result_metadata|reset|get_(result|warnings)|more_results|bind_(param|result))|\\\\n  select_db|slave_query|savepoint|next_result|change_user|character_set_name|connect|commit|\\\\n  client_encoding|close|thread_safe|init|options|(enable|disable)_(reads_from_master|rpl_parse)|\\\\n  dump_debug_info|debug|data_seek|use_result|ping|poll|param_count|prepare|escape_string|execute|\\\\n  embedded_server_(start|end)|kill|query|field_seek|free_result|autocommit|rollback|report|refresh|\\\\n  fetch(_(object|fields|field(_direct)?|assoc|all|array|row))?|rpl_(parse_enabled|probe|query_type)|\\\\n  release_savepoint|reap_async_query|real_(connect|escape_string|query)|more_results|multi_query|\\\\n  get_(charset|connection_stats|client_(stats|info|version)|cache_stats|warnings|links_stats|metadata)|\\\\n  master_query|bind_(param|result)|begin_transaction\\\\n)\\\\\\\\b\",\"name\":\"support.function.mysqli.php\"},{\"match\":\"(?i)\\\\\\\\bmysqlnd_memcache_(set|get_config)\\\\\\\\b\",\"name\":\"support.function.mysqlnd-memcache.php\"},{\"match\":\"(?i)\\\\\\\\bmysqlnd_ms_(set_(user_pick_server|qos)|dump_servers|query_is_select|fabric_select_(shard|global)|get_(stats|last_(used_connection|gtid))|xa_(commit|rollback|gc|begin)|match_wild)\\\\\\\\b\",\"name\":\"support.function.mysqlnd-ms.php\"},{\"match\":\"(?i)\\\\\\\\bmysqlnd_qc_(set_(storage_handler|cache_condition|is_select|user_handlers)|clear_cache|get_(normalized_query_trace_log|core_stats|cache_info|query_trace_log|available_handlers))\\\\\\\\b\",\"name\":\"support.function.mysqlnd-qc.php\"},{\"match\":\"(?i)\\\\\\\\bmysqlnd_uh_(set_(statement|connection)_proxy|convert_to_mysqlnd)\\\\\\\\b\",\"name\":\"support.function.mysqlnd-uh.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  syslog|socket_(set_(blocking|timeout)|get_status)|set(raw)?cookie|http_response_code|openlog|\\\\n  headers_(list|sent)|header(_(register_callback|remove))?|checkdnsrr|closelog|inet_(ntop|pton)|ip2long|\\\\n  openlog|dns_(check_record|get_(record|mx))|define_syslog_variables|(p)?fsockopen|long2ip|\\\\n  get(servby(name|port)|host(name|by(name(l)?|addr))|protoby(name|number)|mxrr)\\\\n)\\\\\\\\b\",\"name\":\"support.function.network.php\"},{\"match\":\"(?i)\\\\\\\\bnsapi_(virtual|response_headers|request_headers)\\\\\\\\b\",\"name\":\"support.function.nsapi.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  oci(statementtype|setprefetch|serverversion|savelob(file)?|numcols|new(collection|cursor|descriptor)|nlogon|\\\\n      column(scale|size|name|type(raw)?|isnull|precision)|coll(size|trim|assign(elem)?|append|getelem|max)|commit|\\\\n      closelob|cancel|internaldebug|definebyname|plogon|parse|error|execute|fetch(statement|into)?|\\\\n      free(statement|collection|cursor|desc)|write(temporarylob|lobtofile)|loadlob|log(on|off)|rowcount|rollback|\\\\n      result|bindbyname)|\\\\n  oci_(statement_type|set_(client_(info|identifier)|prefetch|edition|action|module_name)|server_version|\\\\n       num_(fields|rows)|new_(connect|collection|cursor|descriptor)|connect|commit|client_version|close|cancel|\\\\n       internal_debug|define_by_name|pconnect|password_change|parse|error|execute|bind_(array_)?by_name|\\\\n       field_(scale|size|name|type(_raw)?|is_null|precision)|fetch(_(object|assoc|all|array|row))?|\\\\n       free_(statement|descriptor)|lob_(copy|is_equal)|rollback|result|get_implicit_resultset)\\\\n)\\\\\\\\b\",\"name\":\"support.function.oci8.php\"},{\"match\":\"(?i)\\\\\\\\bopcache_(compile_file|invalidate|reset|get_(status|configuration))\\\\\\\\b\",\"name\":\"support.function.opcache.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nopenssl_(\\\\n  sign|spki_(new|export(_challenge)?|verify)|seal|csr_(sign|new|export(_to_file)?|get_(subject|public_key))|\\\\n  cipher_iv_length|open|dh_compute_key|digest|decrypt|public_(decrypt|encrypt)|encrypt|error_string|\\\\n  pkcs12_(export(_to_file)?|read)|pkcs7_(sign|decrypt|encrypt|verify)|verify|free_key|random_pseudo_bytes|\\\\n  pkey_(new|export(_to_file)?|free|get_(details|public|private))|private_(decrypt|encrypt)|pbkdf2|\\\\n  get_((cipher|md)_methods|cert_locations|(public|private)key)|\\\\n  x509_(check_private_key|checkpurpose|parse|export(_to_file)?|fingerprint|free|read)\\\\n)\\\\\\\\b\",\"name\":\"support.function.openssl.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  output_(add_rewrite_var|reset_rewrite_vars)|flush|\\\\n  ob_(start|clean|implicit_flush|end_(clean|flush)|flush|list_handlers|gzhandler|\\\\n      get_(status|contents|clean|flush|length|level))\\\\n)\\\\\\\\b\",\"name\":\"support.function.output.php\"},{\"match\":\"(?i)\\\\\\\\bpassword_(hash|needs_rehash|verify|get_info)\\\\\\\\b\",\"name\":\"support.function.password.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\npcntl_(\\\\n  strerror|signal(_dispatch)?|sig(timedwait|procmask|waitinfo)|setpriority|errno|exec|fork|\\\\n  w(stopsig|termsig|if(stopped|signaled|exited))|wait(pid)?|alarm|getpriority|get_last_error\\\\n)\\\\\\\\b\",\"name\":\"support.function.pcntl.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\npg_(\\\\n  socket|send_(prepare|execute|query(_params)?)|set_(client_encoding|error_verbosity)|select|host|\\\\n  num_(fields|rows)|consume_input|connection_(status|reset|busy)|connect(_poll)?|convert|copy_(from|to)|\\\\n  client_encoding|close|cancel_query|tty|transaction_status|trace|insert|options|delete|dbname|untrace|\\\\n  unescape_bytea|update|pconnect|ping|port|put_line|parameter_status|prepare|version|query(_params)?|\\\\n  escape_(string|identifier|literal|bytea)|end_copy|execute|flush|free_result|last_(notice|error|oid)|\\\\n  field_(size|num|name|type(_oid)?|table|is_null|prtlen)|affected_rows|result_(status|seek|error(_field)?)|\\\\n  fetch_(object|assoc|all(_columns)?|array|row|result)|get_(notify|pid|result)|meta_data|\\\\n  lo_(seek|close|create|tell|truncate|import|open|unlink|export|write|read(_all)?)|\\\\n)\\\\\\\\b\",\"name\":\"support.function.pgsql.php\"},{\"match\":\"(?i)\\\\\\\\b(virtual|getallheaders|apache_((get|set)env|note|child_terminate|lookup_uri|response_headers|reset_timeout|request_headers|get_(version|modules)))\\\\\\\\b\",\"name\":\"support.function.php_apache.php\"},{\"match\":\"(?i)\\\\\\\\bdom_import_simplexml\\\\\\\\b\",\"name\":\"support.function.php_dom.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nftp_(\\\\n  ssl_connect|systype|site|size|set_option|nlist|nb_(continue|f?(put|get))|ch(dir|mod)|connect|cdup|close|\\\\n  delete|put|pwd|pasv|exec|quit|f(put|get)|login|alloc|rename|raw(list)?|rmdir|get(_option)?|mdtm|mkdir\\\\n)\\\\\\\\b\",\"name\":\"support.function.php_ftp.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nimap_(\\\\n  (create|delete|list|rename|scan)(mailbox)?|status|sort|subscribe|set_quota|set(flag_full|acl)|search|savebody|\\\\n  num_(recent|msg)|check|close|clearflag_full|thread|timeout|open|header(info)?|headers|append|alerts|reopen|\\\\n  8bit|unsubscribe|undelete|utf7_(decode|encode)|utf8|uid|ping|errors|expunge|qprint|gc|\\\\n  fetch(structure|header|text|mime|body)|fetch_overview|lsub|list(scan|subscribed)|last_error|\\\\n  rfc822_(parse_(headers|adrlist)|write_address)|get(subscribed|acl|mailboxes)|get_quota(root)?|\\\\n  msgno|mime_header_decode|mail_(copy|compose|move)|mail|mailboxmsginfo|binary|body(struct)?|base64\\\\n)\\\\\\\\b\",\"name\":\"support.function.php_imap.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nmssql_(\\\\n  select_db|num_(fields|rows)|next_result|connect|close|init|data_seek|pconnect|execute|query|\\\\n  field_(seek|name|type|length)|fetch_(object|field|assoc|array|row|batch)|free_(statement|result)|\\\\n  rows_affected|result|guid_string|get_last_message|min_(error|message)_severity|bind\\\\n)\\\\\\\\b\",\"name\":\"support.function.php_mssql.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nodbc_(\\\\n  statistics|specialcolumns|setoption|num_(fields|rows)|next_result|connect|columns|columnprivileges|commit|\\\\n  cursor|close(_all)?|tables|tableprivileges|do|data_source|pconnect|primarykeys|procedures|procedurecolumns|\\\\n  prepare|error(msg)?|exec(ute)?|field_(scale|num|name|type|precision|len)|foreignkeys|free_result|\\\\n  fetch_(into|object|array|row)|longreadlen|autocommit|rollback|result(_all)?|gettypeinfo|binmode\\\\n)\\\\\\\\b\",\"name\":\"support.function.php_odbc.php\"},{\"match\":\"(?i)\\\\\\\\bpreg_(split|quote|filter|last_error|replace(_callback)?|grep|match(_all)?)\\\\\\\\b\",\"name\":\"support.function.php_pcre.php\"},{\"match\":\"(?i)\\\\\\\\b(spl_(classes|object_hash|autoload(_(call|unregister|extensions|functions|register))?)|class_(implements|uses|parents)|iterator_(count|to_array|apply))\\\\\\\\b\",\"name\":\"support.function.php_spl.php\"},{\"match\":\"(?i)\\\\\\\\bzip_(close|open|entry_(name|compressionmethod|compressedsize|close|open|filesize|read)|read)\\\\\\\\b\",\"name\":\"support.function.php_zip.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nposix_(\\\\n  strerror|set(s|e?u|[ep]?g)id|ctermid|ttyname|times|isatty|initgroups|uname|errno|kill|access|\\\\n  get(sid|cwd|uid|pid|ppid|pwnam|pwuid|pgid|pgrp|euid|egid|login|rlimit|gid|grnam|groups|grgid)|\\\\n  get_last_error|mknod|mkfifo\\\\n)\\\\\\\\b\",\"name\":\"support.function.posix.php\"},{\"match\":\"(?i)\\\\\\\\bset(thread|proc)title\\\\\\\\b\",\"name\":\"support.function.proctitle.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\npspell_(\\\\n  store_replacement|suggest|save_wordlist|new(_(config|personal))?|check|clear_session|\\\\n  config_(save_repl|create|ignore|(data|dict)_dir|personal|runtogether|repl|mode)|add_to_(session|personal)\\\\n)\\\\\\\\b\",\"name\":\"support.function.pspell.php\"},{\"match\":\"(?i)\\\\\\\\breadline(_(completion_function|clear_history|callback_(handler_(install|remove)|read_char)|info|on_new_line|write_history|list_history|add_history|redisplay|read_history))?\\\\\\\\b\",\"name\":\"support.function.readline.php\"},{\"match\":\"(?i)\\\\\\\\brecode(_(string|file))?\\\\\\\\b\",\"name\":\"support.function.recode.php\"},{\"match\":\"(?i)\\\\\\\\brrd(c_disconnect|_(create|tune|info|update|error|version|first|fetch|last(update)?|restore|graph|xport))\\\\\\\\b\",\"name\":\"support.function.rrd.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  shm_((get|has|remove|put)_var|detach|attach|remove)|sem_(acquire|release|remove|get)|ftok|\\\\n  msg_((get|remove|set|stat)_queue|send|queue_exists|receive)\\\\n)\\\\\\\\b\",\"name\":\"support.function.sem.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nsession_(\\\\n  status|start|set_(save_handler|cookie_params)|save_path|name|commit|cache_(expire|limiter)|\\\\n  is_registered|id|destroy|decode|unset|unregister|encode|write_close|abort|reset|register(_shutdown)?|\\\\n  regenerate_id|get_cookie_params|module_name\\\\n)\\\\\\\\b\",\"name\":\"support.function.session.php\"},{\"match\":\"(?i)\\\\\\\\bshmop_(size|close|open|delete|write|read)\\\\\\\\b\",\"name\":\"support.function.shmop.php\"},{\"match\":\"(?i)\\\\\\\\bsimplexml_(import_dom|load_(string|file))\\\\\\\\b\",\"name\":\"support.function.simplexml.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  snmp(walk(oid)?|realwalk|get(next)?|set)|\\\\n  snmp_(set_(valueretrieval|quick_print|enum_print|oid_(numeric_print|output_format))|read_mib|\\\\n        get_(valueretrieval|quick_print))|\\\\n  snmp[23]_(set|walk|real_walk|get(next)?)\\\\n)\\\\\\\\b\",\"name\":\"support.function.snmp.php\"},{\"match\":\"(?i)\\\\\\\\b(is_soap_fault|use_soap_error_handler)\\\\\\\\b\",\"name\":\"support.function.soap.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nsocket_(\\\\n  shutdown|strerror|send(to|msg)?|set_((non)?block|option)|select|connect|close|clear_error|bind|\\\\n  create(_(pair|listen))?|cmsg_space|import_stream|write|listen|last_error|accept|recv(from|msg)?|\\\\n  read|get(peer|sock)name|get_option\\\\n)\\\\\\\\b\",\"name\":\"support.function.sockets.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nsqlite_(\\\\n  single_query|seek|has_(more|prev)|num_(fields|rows)|next|changes|column|current|close|\\\\n  create_(aggregate|function)|open|unbuffered_query|udf_(decode|encode)_binary|popen|prev|\\\\n  escape_string|error_string|exec|valid|key|query|field_name|factory|\\\\n  fetch_(string|single|column_types|object|all|array)|lib(encoding|version)|\\\\n  last_(insert_rowid|error)|array_query|rewind|busy_timeout\\\\n)\\\\\\\\b\",\"name\":\"support.function.sqlite.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nsqlsrv_(\\\\n  send_stream_data|server_info|has_rows|num_(fields|rows)|next_result|connect|configure|commit|\\\\n  client_info|close|cancel|prepare|errors|execute|query|field_metadata|fetch(_(array|object))?|\\\\n  free_stmt|rows_affected|rollback|get_(config|field)|begin_transaction\\\\n)\\\\\\\\b\",\"name\":\"support.function.sqlsrv.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nstats_(\\\\n  harmonic_mean|covariance|standard_deviation|skew|\\\\n  cdf_(noncentral_(chisquare|f)|negative_binomial|chisquare|cauchy|t|uniform|poisson|exponential|f|weibull|\\\\n       logistic|laplace|gamma|binomial|beta)|\\\\n  stat_(noncentral_t|correlation|innerproduct|independent_t|powersum|percentile|paired_t|gennch|binomial_coef)|\\\\n  dens_(normal|negative_binomial|chisquare|cauchy|t|pmf_(hypergeometric|poisson|binomial)|exponential|f|\\\\n        weibull|logistic|laplace|gamma|beta)|\\\\n  den_uniform|variance|kurtosis|absolute_deviation|\\\\n  rand_(setall|phrase_to_seeds|ranf|get_seeds|\\\\n        gen_(noncentral_[ft]|noncenral_chisquare|normal|chisquare|t|int|\\\\n             i(uniform|poisson|binomial(_negative)?)|exponential|f(uniform)?|gamma|beta))\\\\n)\\\\\\\\b\",\"name\":\"support.function.stats.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  set_socket_blocking|\\\\n  stream_(socket_(shutdown|sendto|server|client|pair|enable_crypto|accept|recvfrom|get_name)|\\\\n    set_(chunk_size|timeout|(read|write)_buffer|blocking)|select|notification_callback|supports_lock|\\\\n    context_(set_(option|default|params)|create|get_(options|default|params))|copy_to_stream|is_local|\\\\n    encoding|filter_(append|prepend|register|remove)|wrapper_((un)?register|restore)|\\\\n    resolve_include_path|register_wrapper|get_(contents|transports|filters|wrappers|line|meta_data)|\\\\n    bucket_(new|prepend|append|make_writeable)\\\\n  )\\\\n)\\\\\\\\b\",\"name\":\"support.function.streamsfuncs.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  money_format|md5(_file)?|metaphone|bin2hex|sscanf|sha1(_file)?|\\\\n  str(str|c?spn|n(at)?(case)?cmp|chr|coll|(case)?cmp|to(upper|lower)|tok|tr|istr|pos|pbrk|len|rchr|ri?pos|rev)|\\\\n  str_(getcsv|ireplace|pad|repeat|replace|rot13|shuffle|split|word_count)|\\\\n  strip(c?slashes|os)|strip_tags|similar_text|soundex|substr(_(count|compare|replace))?|setlocale|\\\\n  html(specialchars(_decode)?|entities)|html_entity_decode|hex2bin|hebrev(c)?|number_format|nl2br|nl_langinfo|\\\\n  chop|chunk_split|chr|convert_(cyr_string|uu(decode|encode))|count_chars|crypt|crc32|trim|implode|ord|\\\\n  uc(first|words)|join|parse_str|print(f)?|echo|explode|v?[fs]?printf|quoted_printable_(decode|encode)|\\\\n  quotemeta|wordwrap|lcfirst|[lr]trim|localeconv|levenshtein|addc?slashes|get_html_translation_table\\\\n)\\\\\\\\b\",\"name\":\"support.function.string.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nsybase_(\\\\n  set_message_handler|select_db|num_(fields|rows)|connect|close|deadlock_retry_count|data_seek|\\\\n  unbuffered_query|pconnect|query|field_seek|fetch_(object|field|assoc|array|row)|free_result|\\\\n  affected_rows|result|get_last_message|min_(client|error|message|server)_severity\\\\n)\\\\\\\\b\",\"name\":\"support.function.sybase.php\"},{\"match\":\"(?i)\\\\\\\\b(taint|is_tainted|untaint)\\\\\\\\b\",\"name\":\"support.function.taint.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  tidy_((get|set)opt|set_encoding|save_config|config_count|clean_repair|is_(xhtml|xml)|diagnose|\\\\n        (access|error|warning)_count|load_config|reset_config|(parse|repair)_(string|file)|\\\\n        get_(status|html(_ver)?|head|config|output|opt_doc|root|release|body))|\\\\n  ob_tidyhandler\\\\n)\\\\\\\\b\",\"name\":\"support.function.tidy.php\"},{\"match\":\"(?i)\\\\\\\\btoken_(name|get_all)\\\\\\\\b\",\"name\":\"support.function.tokenizer.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\ntrader_(\\\\n  stoch(f|r|rsi)?|stddev|sin(h)?|sum|sub|set_(compat|unstable_period)|sqrt|sar(ext)?|sma|\\\\n  ht_(sine|trend(line|mode)|dc(period|phase)|phasor)|natr|cci|cos(h)?|correl|\\\\n  cdl(shootingstar|shortline|sticksandwich|stalledpattern|spinningtop|separatinglines|\\\\n      hikkake(mod)?|highwave|homingpigeon|hangingman|harami(cross)?|hammer|concealbabyswall|\\\\n      counterattack|closingmarubozu|thrusting|tasukigap|takuri|tristar|inneck|invertedhammer|\\\\n      identical3crows|2crows|onneck|doji(star)?|darkcloudcover|dragonflydoji|unique3river|\\\\n      upsidegap2crows|3(starsinsouth|inside|outside|whitesoldiers|linestrike|blackcrows)|\\\\n      piercing|engulfing|evening(doji)?star|kicking(bylength)?|longline|longleggeddoji|\\\\n      ladderbottom|advanceblock|abandonedbaby|risefall3methods|rickshawman|gapsidesidewhite|\\\\n      gravestonedoji|xsidegap3methods|morning(doji)?star|mathold|matchinglow|marubozu|\\\\n      belthold|breakaway)|\\\\n  ceil|cmo|tsf|typprice|t3|tema|tan(h)?|trix|trima|trange|obv|div|dema|dx|ultosc|ppo|\\\\n  plus_d[im]|errno|exp|ema|var|kama|floor|wclprice|willr|wma|ln|log10|bop|beta|bbands|\\\\n  linearreg(_(slope|intercept|angle))?|asin|acos|atan|atr|adosc|ad|add|adx(r)?|apo|avgprice|\\\\n  aroon(osc)?|rsi|roc|rocp|rocr(100)?|get_(compat|unstable_period)|min(index)?|minus_d[im]|\\\\n  minmax(index)?|mid(point|price)|mom|mult|medprice|mfi|macd(ext|fix)?|mavp|max(index)?|ma(ma)?\\\\n)\\\\\\\\b\",\"name\":\"support.function.trader.php\"},{\"match\":\"(?i)\\\\\\\\buopz_(copy|compose|implement|overload|delete|undefine|extend|function|flags|restore|rename|redefine|backup)\\\\\\\\b\",\"name\":\"support.function.uopz.php\"},{\"match\":\"(?i)\\\\\\\\b(http_build_query|(raw)?url(decode|encode)|parse_url|get_(headers|meta_tags)|base64_(decode|encode))\\\\\\\\b\",\"name\":\"support.function.url.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  strval|settype|serialize|(bool|double|float)val|debug_zval_dump|intval|import_request_variables|isset|\\\\n  is_(scalar|string|null|numeric|callable|int(eger)?|object|double|float|long|array|resource|real|bool)|\\\\n  unset|unserialize|print_r|empty|var_(dump|export)|gettype|get_(defined_vars|resource_type)\\\\n)\\\\\\\\b\",\"name\":\"support.function.var.php\"},{\"match\":\"(?i)\\\\\\\\bwddx_(serialize_(value|vars)|deserialize|packet_(start|end)|add_vars)\\\\\\\\b\",\"name\":\"support.function.wddx.php\"},{\"match\":\"(?i)\\\\\\\\bxhprof_(sample_)?(disable|enable)\\\\\\\\b\",\"name\":\"support.function.xhprof.php\"},{\"match\":\"(?xi)\\\\n\\\\\\\\b\\\\n(\\\\n  utf8_(decode|encode)|\\\\n  xml_(set_((notation|(end|start)_namespace|unparsed_entity)_decl_handler|\\\\n            (character_data|default|element|external_entity_ref|processing_instruction)_handler|object)|\\\\n       parse(_into_struct)?|parser_((get|set)_option|create(_ns)?|free)|error_string|\\\\n       get_(current_((column|line)_number|byte_index)|error_code))\\\\n)\\\\\\\\b\",\"name\":\"support.function.xml.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nxmlrpc_(\\\\n  server_(call_method|create|destroy|add_introspection_data|register_(introspection_callback|method))|\\\\n  is_fault|decode(_request)?|parse_method_descriptions|encode(_request)?|(get|set)_type\\\\n)\\\\\\\\b\",\"name\":\"support.function.xmlrpc.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nxmlwriter_(\\\\n  (end|start|write)_(comment|cdata|dtd(_(attlist|entity|element))?|document|pi|attribute|element)|\\\\n  (start|write)_(attribute|element)_ns|write_raw|set_indent(_string)?|text|output_memory|open_(memory|uri)|\\\\n  full_end_element|flush|\\\\n)\\\\\\\\b\",\"name\":\"support.function.xmlwriter.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  zlib_(decode|encode|get_coding_type)|readgzfile|\\\\n  gz(seek|compress|close|tell|inflate|open|decode|deflate|uncompress|puts|passthru|encode|eof|file|\\\\n     write|rewind|read|getc|getss?)\\\\n)\\\\\\\\b\",\"name\":\"support.function.zlib.php\"},{\"match\":\"(?i)\\\\\\\\bis_int(eger)?\\\\\\\\b\",\"name\":\"support.function.alias.php\"}]},\"switch_statement\":{\"patterns\":[{\"match\":\"\\\\\\\\s+(?=switch\\\\\\\\b)\"},{\"begin\":\"\\\\\\\\bswitch\\\\\\\\b(?!\\\\\\\\s*\\\\\\\\(.*\\\\\\\\)\\\\\\\\s*:)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.switch.php\"}},\"end\":\"}|(?=\\\\\\\\?>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.section.switch-block.end.bracket.curly.php\"}},\"name\":\"meta.switch-statement.php\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.switch-expression.begin.bracket.round.php\"}},\"end\":\"\\\\\\\\)|(?=\\\\\\\\?>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.switch-expression.end.bracket.round.php\"}},\"patterns\":[{\"include\":\"#language\"}]},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.section.switch-block.begin.bracket.curly.php\"}},\"end\":\"(?=}|\\\\\\\\?>)\",\"patterns\":[{\"include\":\"#language\"}]}]}]},\"use-inner\":{\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\"(?i)\\\\\\\\b(as)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.use-as.php\"}},\"end\":\"(?i)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*\",\"endCaptures\":{\"0\":{\"name\":\"entity.other.alias.php\"}}},{\"include\":\"#class-name\"},{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.php\"}]},\"var_basic\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.php\"}},\"match\":\"(?i)(\\\\\\\\$+)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*\\\\\\\\b\",\"name\":\"variable.other.php\"}]},\"var_global\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.php\"}},\"match\":\"(\\\\\\\\$)((_(COOKIE|FILES|GET|POST|REQUEST))|arg(v|c))\\\\\\\\b\",\"name\":\"variable.other.global.php\"},\"var_global_safer\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.php\"}},\"match\":\"(\\\\\\\\$)((GLOBALS|_(ENV|SERVER|SESSION)))\",\"name\":\"variable.other.global.safer.php\"},\"var_language\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.php\"}},\"match\":\"(\\\\\\\\$)this\\\\\\\\b\",\"name\":\"variable.language.this.php\"},\"variable-name\":{\"patterns\":[{\"include\":\"#var_global\"},{\"include\":\"#var_global_safer\"},{\"captures\":{\"1\":{\"name\":\"variable.other.php\"},\"2\":{\"name\":\"punctuation.definition.variable.php\"},\"4\":{\"name\":\"keyword.operator.class.php\"},\"5\":{\"name\":\"variable.other.property.php\"},\"6\":{\"name\":\"punctuation.section.array.begin.php\"},\"7\":{\"name\":\"constant.numeric.index.php\"},\"8\":{\"name\":\"variable.other.index.php\"},\"9\":{\"name\":\"punctuation.definition.variable.php\"},\"10\":{\"name\":\"string.unquoted.index.php\"},\"11\":{\"name\":\"punctuation.section.array.end.php\"}},\"match\":\"(?xi)\\\\n((\\\\\\\\$)(?<name>[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*))\\\\n(?:\\\\n  (->)(\\\\\\\\g<name>)\\\\n  |\\\\n  (\\\\\\\\[)(?:(\\\\\\\\d+)|((\\\\\\\\$)\\\\\\\\g<name>)|([a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*))(\\\\\\\\])\\\\n)?\"},{\"captures\":{\"1\":{\"name\":\"variable.other.php\"},\"2\":{\"name\":\"punctuation.definition.variable.php\"},\"4\":{\"name\":\"punctuation.definition.variable.php\"}},\"match\":\"(?i)((\\\\\\\\\\${)(?<name>[a-z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)(}))\"}]},\"variables\":{\"patterns\":[{\"include\":\"#var_language\"},{\"include\":\"#var_global\"},{\"include\":\"#var_global_safer\"},{\"include\":\"#var_basic\"},{\"begin\":\"\\\\\\\\\\${(?=.*?})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.variable.php\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.variable.php\"}},\"patterns\":[{\"include\":\"#language\"}]}]}},\"scopeName\":\"text.html.php.blade\",\"embeddedLangs\":[\"html\",\"xml\",\"sql\",\"javascript\",\"json\",\"css\"]}`)),_=[...e,...n,...t,...a,...r,...i,p];export{_ as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CZogWebk.js",
    "content": "import{a1 as lt}from\"./CU_MfyYc.js\";/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var ft=Object.defineProperty,gt=Object.getOwnPropertyDescriptor,ht=Object.getOwnPropertyNames,vt=Object.prototype.hasOwnProperty,pt=(e,n,i,r)=>{if(n&&typeof n==\"object\"||typeof n==\"function\")for(let t of ht(n))!vt.call(e,t)&&t!==i&&ft(e,t,{get:()=>n[t],enumerable:!(r=gt(n,t))||r.enumerable});return e},mt=(e,n,i)=>(pt(e,n,\"default\"),i),c={};mt(c,lt);var _t=2*60*1e3,Qe=class{constructor(e){this._defaults=e,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){if(!this._worker)return;Date.now()-this._lastUsedTime>_t&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||(this._worker=c.editor.createWebWorker({moduleId:\"vs/language/html/htmlWorker\",createData:{languageSettings:this._defaults.options,languageId:this._defaults.languageId},label:this._defaults.languageId}),this._client=this._worker.getProxy()),this._client}getLanguageServiceWorker(...e){let n;return this._getClient().then(i=>{n=i}).then(i=>{if(this._worker)return this._worker.withSyncedResources(e)}).then(i=>n)}},J;(function(e){function n(i){return typeof i==\"string\"}e.is=n})(J||(J={}));var S;(function(e){function n(i){return typeof i==\"string\"}e.is=n})(S||(S={}));var Y;(function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647;function n(i){return typeof i==\"number\"&&e.MIN_VALUE<=i&&i<=e.MAX_VALUE}e.is=n})(Y||(Y={}));var M;(function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647;function n(i){return typeof i==\"number\"&&e.MIN_VALUE<=i&&i<=e.MAX_VALUE}e.is=n})(M||(M={}));var b;(function(e){function n(r,t){return r===Number.MAX_VALUE&&(r=M.MAX_VALUE),t===Number.MAX_VALUE&&(t=M.MAX_VALUE),{line:r,character:t}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&a.uinteger(t.line)&&a.uinteger(t.character)}e.is=i})(b||(b={}));var h;(function(e){function n(r,t,o,s){if(a.uinteger(r)&&a.uinteger(t)&&a.uinteger(o)&&a.uinteger(s))return{start:b.create(r,t),end:b.create(o,s)};if(b.is(r)&&b.is(t))return{start:r,end:t};throw new Error(`Range#create called with invalid arguments[${r}, ${t}, ${o}, ${s}]`)}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&b.is(t.start)&&b.is(t.end)}e.is=i})(h||(h={}));var C;(function(e){function n(r,t){return{uri:r,range:t}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&h.is(t.range)&&(a.string(t.uri)||a.undefined(t.uri))}e.is=i})(C||(C={}));var Z;(function(e){function n(r,t,o,s){return{targetUri:r,targetRange:t,targetSelectionRange:o,originSelectionRange:s}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&h.is(t.targetRange)&&a.string(t.targetUri)&&h.is(t.targetSelectionRange)&&(h.is(t.originSelectionRange)||a.undefined(t.originSelectionRange))}e.is=i})(Z||(Z={}));var O;(function(e){function n(r,t,o,s){return{red:r,green:t,blue:o,alpha:s}}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&a.numberRange(t.red,0,1)&&a.numberRange(t.green,0,1)&&a.numberRange(t.blue,0,1)&&a.numberRange(t.alpha,0,1)}e.is=i})(O||(O={}));var K;(function(e){function n(r,t){return{range:r,color:t}}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&h.is(t.range)&&O.is(t.color)}e.is=i})(K||(K={}));var ee;(function(e){function n(r,t,o){return{label:r,textEdit:t,additionalTextEdits:o}}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&a.string(t.label)&&(a.undefined(t.textEdit)||E.is(t))&&(a.undefined(t.additionalTextEdits)||a.typedArray(t.additionalTextEdits,E.is))}e.is=i})(ee||(ee={}));var A;(function(e){e.Comment=\"comment\",e.Imports=\"imports\",e.Region=\"region\"})(A||(A={}));var te;(function(e){function n(r,t,o,s,u,f){const d={startLine:r,endLine:t};return a.defined(o)&&(d.startCharacter=o),a.defined(s)&&(d.endCharacter=s),a.defined(u)&&(d.kind=u),a.defined(f)&&(d.collapsedText=f),d}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&a.uinteger(t.startLine)&&a.uinteger(t.startLine)&&(a.undefined(t.startCharacter)||a.uinteger(t.startCharacter))&&(a.undefined(t.endCharacter)||a.uinteger(t.endCharacter))&&(a.undefined(t.kind)||a.string(t.kind))}e.is=i})(te||(te={}));var U;(function(e){function n(r,t){return{location:r,message:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&C.is(t.location)&&a.string(t.message)}e.is=i})(U||(U={}));var x;(function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4})(x||(x={}));var re;(function(e){e.Unnecessary=1,e.Deprecated=2})(re||(re={}));var ne;(function(e){function n(i){const r=i;return a.objectLiteral(r)&&a.string(r.href)}e.is=n})(ne||(ne={}));var F;(function(e){function n(r,t,o,s,u,f){let d={range:r,message:t};return a.defined(o)&&(d.severity=o),a.defined(s)&&(d.code=s),a.defined(u)&&(d.source=u),a.defined(f)&&(d.relatedInformation=f),d}e.create=n;function i(r){var t;let o=r;return a.defined(o)&&h.is(o.range)&&a.string(o.message)&&(a.number(o.severity)||a.undefined(o.severity))&&(a.integer(o.code)||a.string(o.code)||a.undefined(o.code))&&(a.undefined(o.codeDescription)||a.string((t=o.codeDescription)===null||t===void 0?void 0:t.href))&&(a.string(o.source)||a.undefined(o.source))&&(a.undefined(o.relatedInformation)||a.typedArray(o.relatedInformation,U.is))}e.is=i})(F||(F={}));var I;(function(e){function n(r,t,...o){let s={title:r,command:t};return a.defined(o)&&o.length>0&&(s.arguments=o),s}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.title)&&a.string(t.command)}e.is=i})(I||(I={}));var E;(function(e){function n(o,s){return{range:o,newText:s}}e.replace=n;function i(o,s){return{range:{start:o,end:o},newText:s}}e.insert=i;function r(o){return{range:o,newText:\"\"}}e.del=r;function t(o){const s=o;return a.objectLiteral(s)&&a.string(s.newText)&&h.is(s.range)}e.is=t})(E||(E={}));var V;(function(e){function n(r,t,o){const s={label:r};return t!==void 0&&(s.needsConfirmation=t),o!==void 0&&(s.description=o),s}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&a.string(t.label)&&(a.boolean(t.needsConfirmation)||t.needsConfirmation===void 0)&&(a.string(t.description)||t.description===void 0)}e.is=i})(V||(V={}));var L;(function(e){function n(i){const r=i;return a.string(r)}e.is=n})(L||(L={}));var ie;(function(e){function n(o,s,u){return{range:o,newText:s,annotationId:u}}e.replace=n;function i(o,s,u){return{range:{start:o,end:o},newText:s,annotationId:u}}e.insert=i;function r(o,s){return{range:o,newText:\"\",annotationId:s}}e.del=r;function t(o){const s=o;return E.is(s)&&(V.is(s.annotationId)||L.is(s.annotationId))}e.is=t})(ie||(ie={}));var W;(function(e){function n(r,t){return{textDocument:r,edits:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&B.is(t.textDocument)&&Array.isArray(t.edits)}e.is=i})(W||(W={}));var H;(function(e){function n(r,t,o){let s={kind:\"create\",uri:r};return t!==void 0&&(t.overwrite!==void 0||t.ignoreIfExists!==void 0)&&(s.options=t),o!==void 0&&(s.annotationId=o),s}e.create=n;function i(r){let t=r;return t&&t.kind===\"create\"&&a.string(t.uri)&&(t.options===void 0||(t.options.overwrite===void 0||a.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||a.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||L.is(t.annotationId))}e.is=i})(H||(H={}));var X;(function(e){function n(r,t,o,s){let u={kind:\"rename\",oldUri:r,newUri:t};return o!==void 0&&(o.overwrite!==void 0||o.ignoreIfExists!==void 0)&&(u.options=o),s!==void 0&&(u.annotationId=s),u}e.create=n;function i(r){let t=r;return t&&t.kind===\"rename\"&&a.string(t.oldUri)&&a.string(t.newUri)&&(t.options===void 0||(t.options.overwrite===void 0||a.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||a.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||L.is(t.annotationId))}e.is=i})(X||(X={}));var $;(function(e){function n(r,t,o){let s={kind:\"delete\",uri:r};return t!==void 0&&(t.recursive!==void 0||t.ignoreIfNotExists!==void 0)&&(s.options=t),o!==void 0&&(s.annotationId=o),s}e.create=n;function i(r){let t=r;return t&&t.kind===\"delete\"&&a.string(t.uri)&&(t.options===void 0||(t.options.recursive===void 0||a.boolean(t.options.recursive))&&(t.options.ignoreIfNotExists===void 0||a.boolean(t.options.ignoreIfNotExists)))&&(t.annotationId===void 0||L.is(t.annotationId))}e.is=i})($||($={}));var z;(function(e){function n(i){let r=i;return r&&(r.changes!==void 0||r.documentChanges!==void 0)&&(r.documentChanges===void 0||r.documentChanges.every(t=>a.string(t.kind)?H.is(t)||X.is(t)||$.is(t):W.is(t)))}e.is=n})(z||(z={}));var oe;(function(e){function n(r){return{uri:r}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.uri)}e.is=i})(oe||(oe={}));var ae;(function(e){function n(r,t){return{uri:r,version:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.uri)&&a.integer(t.version)}e.is=i})(ae||(ae={}));var B;(function(e){function n(r,t){return{uri:r,version:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.uri)&&(t.version===null||a.integer(t.version))}e.is=i})(B||(B={}));var se;(function(e){function n(r,t,o,s){return{uri:r,languageId:t,version:o,text:s}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.uri)&&a.string(t.languageId)&&a.integer(t.version)&&a.string(t.text)}e.is=i})(se||(se={}));var q;(function(e){e.PlainText=\"plaintext\",e.Markdown=\"markdown\";function n(i){const r=i;return r===e.PlainText||r===e.Markdown}e.is=n})(q||(q={}));var P;(function(e){function n(i){const r=i;return a.objectLiteral(i)&&q.is(r.kind)&&a.string(r.value)}e.is=n})(P||(P={}));var v;(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(v||(v={}));var Q;(function(e){e.PlainText=1,e.Snippet=2})(Q||(Q={}));var ue;(function(e){e.Deprecated=1})(ue||(ue={}));var ce;(function(e){function n(r,t,o){return{newText:r,insert:t,replace:o}}e.create=n;function i(r){const t=r;return t&&a.string(t.newText)&&h.is(t.insert)&&h.is(t.replace)}e.is=i})(ce||(ce={}));var de;(function(e){e.asIs=1,e.adjustIndentation=2})(de||(de={}));var le;(function(e){function n(i){const r=i;return r&&(a.string(r.detail)||r.detail===void 0)&&(a.string(r.description)||r.description===void 0)}e.is=n})(le||(le={}));var fe;(function(e){function n(i){return{label:i}}e.create=n})(fe||(fe={}));var ge;(function(e){function n(i,r){return{items:i||[],isIncomplete:!!r}}e.create=n})(ge||(ge={}));var y;(function(e){function n(r){return r.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,\"\\\\$&\")}e.fromPlainText=n;function i(r){const t=r;return a.string(t)||a.objectLiteral(t)&&a.string(t.language)&&a.string(t.value)}e.is=i})(y||(y={}));var he;(function(e){function n(i){let r=i;return!!r&&a.objectLiteral(r)&&(P.is(r.contents)||y.is(r.contents)||a.typedArray(r.contents,y.is))&&(i.range===void 0||h.is(i.range))}e.is=n})(he||(he={}));var ve;(function(e){function n(i,r){return r?{label:i,documentation:r}:{label:i}}e.create=n})(ve||(ve={}));var pe;(function(e){function n(i,r,...t){let o={label:i};return a.defined(r)&&(o.documentation=r),a.defined(t)?o.parameters=t:o.parameters=[],o}e.create=n})(pe||(pe={}));var R;(function(e){e.Text=1,e.Read=2,e.Write=3})(R||(R={}));var me;(function(e){function n(i,r){let t={range:i};return a.number(r)&&(t.kind=r),t}e.create=n})(me||(me={}));var p;(function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26})(p||(p={}));var _e;(function(e){e.Deprecated=1})(_e||(_e={}));var we;(function(e){function n(i,r,t,o,s){let u={name:i,kind:r,location:{uri:o,range:t}};return s&&(u.containerName=s),u}e.create=n})(we||(we={}));var be;(function(e){function n(i,r,t,o){return o!==void 0?{name:i,kind:r,location:{uri:t,range:o}}:{name:i,kind:r,location:{uri:t}}}e.create=n})(be||(be={}));var ke;(function(e){function n(r,t,o,s,u,f){let d={name:r,detail:t,kind:o,range:s,selectionRange:u};return f!==void 0&&(d.children=f),d}e.create=n;function i(r){let t=r;return t&&a.string(t.name)&&a.number(t.kind)&&h.is(t.range)&&h.is(t.selectionRange)&&(t.detail===void 0||a.string(t.detail))&&(t.deprecated===void 0||a.boolean(t.deprecated))&&(t.children===void 0||Array.isArray(t.children))&&(t.tags===void 0||Array.isArray(t.tags))}e.is=i})(ke||(ke={}));var xe;(function(e){e.Empty=\"\",e.QuickFix=\"quickfix\",e.Refactor=\"refactor\",e.RefactorExtract=\"refactor.extract\",e.RefactorInline=\"refactor.inline\",e.RefactorRewrite=\"refactor.rewrite\",e.Source=\"source\",e.SourceOrganizeImports=\"source.organizeImports\",e.SourceFixAll=\"source.fixAll\"})(xe||(xe={}));var j;(function(e){e.Invoked=1,e.Automatic=2})(j||(j={}));var Ie;(function(e){function n(r,t,o){let s={diagnostics:r};return t!=null&&(s.only=t),o!=null&&(s.triggerKind=o),s}e.create=n;function i(r){let t=r;return a.defined(t)&&a.typedArray(t.diagnostics,F.is)&&(t.only===void 0||a.typedArray(t.only,a.string))&&(t.triggerKind===void 0||t.triggerKind===j.Invoked||t.triggerKind===j.Automatic)}e.is=i})(Ie||(Ie={}));var Ee;(function(e){function n(r,t,o){let s={title:r},u=!0;return typeof t==\"string\"?(u=!1,s.kind=t):I.is(t)?s.command=t:s.edit=t,u&&o!==void 0&&(s.kind=o),s}e.create=n;function i(r){let t=r;return t&&a.string(t.title)&&(t.diagnostics===void 0||a.typedArray(t.diagnostics,F.is))&&(t.kind===void 0||a.string(t.kind))&&(t.edit!==void 0||t.command!==void 0)&&(t.command===void 0||I.is(t.command))&&(t.isPreferred===void 0||a.boolean(t.isPreferred))&&(t.edit===void 0||z.is(t.edit))}e.is=i})(Ee||(Ee={}));var Le;(function(e){function n(r,t){let o={range:r};return a.defined(t)&&(o.data=t),o}e.create=n;function i(r){let t=r;return a.defined(t)&&h.is(t.range)&&(a.undefined(t.command)||I.is(t.command))}e.is=i})(Le||(Le={}));var Ae;(function(e){function n(r,t){return{tabSize:r,insertSpaces:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.uinteger(t.tabSize)&&a.boolean(t.insertSpaces)}e.is=i})(Ae||(Ae={}));var Re;(function(e){function n(r,t,o){return{range:r,target:t,data:o}}e.create=n;function i(r){let t=r;return a.defined(t)&&h.is(t.range)&&(a.undefined(t.target)||a.string(t.target))}e.is=i})(Re||(Re={}));var Pe;(function(e){function n(r,t){return{range:r,parent:t}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&h.is(t.range)&&(t.parent===void 0||e.is(t.parent))}e.is=i})(Pe||(Pe={}));var De;(function(e){e.namespace=\"namespace\",e.type=\"type\",e.class=\"class\",e.enum=\"enum\",e.interface=\"interface\",e.struct=\"struct\",e.typeParameter=\"typeParameter\",e.parameter=\"parameter\",e.variable=\"variable\",e.property=\"property\",e.enumMember=\"enumMember\",e.event=\"event\",e.function=\"function\",e.method=\"method\",e.macro=\"macro\",e.keyword=\"keyword\",e.modifier=\"modifier\",e.comment=\"comment\",e.string=\"string\",e.number=\"number\",e.regexp=\"regexp\",e.operator=\"operator\",e.decorator=\"decorator\"})(De||(De={}));var Me;(function(e){e.declaration=\"declaration\",e.definition=\"definition\",e.readonly=\"readonly\",e.static=\"static\",e.deprecated=\"deprecated\",e.abstract=\"abstract\",e.async=\"async\",e.modification=\"modification\",e.documentation=\"documentation\",e.defaultLibrary=\"defaultLibrary\"})(Me||(Me={}));var Ce;(function(e){function n(i){const r=i;return a.objectLiteral(r)&&(r.resultId===void 0||typeof r.resultId==\"string\")&&Array.isArray(r.data)&&(r.data.length===0||typeof r.data[0]==\"number\")}e.is=n})(Ce||(Ce={}));var Fe;(function(e){function n(r,t){return{range:r,text:t}}e.create=n;function i(r){const t=r;return t!=null&&h.is(t.range)&&a.string(t.text)}e.is=i})(Fe||(Fe={}));var ye;(function(e){function n(r,t,o){return{range:r,variableName:t,caseSensitiveLookup:o}}e.create=n;function i(r){const t=r;return t!=null&&h.is(t.range)&&a.boolean(t.caseSensitiveLookup)&&(a.string(t.variableName)||t.variableName===void 0)}e.is=i})(ye||(ye={}));var je;(function(e){function n(r,t){return{range:r,expression:t}}e.create=n;function i(r){const t=r;return t!=null&&h.is(t.range)&&(a.string(t.expression)||t.expression===void 0)}e.is=i})(je||(je={}));var Ne;(function(e){function n(r,t){return{frameId:r,stoppedLocation:t}}e.create=n;function i(r){const t=r;return a.defined(t)&&h.is(r.stoppedLocation)}e.is=i})(Ne||(Ne={}));var T;(function(e){e.Type=1,e.Parameter=2;function n(i){return i===1||i===2}e.is=n})(T||(T={}));var G;(function(e){function n(r){return{value:r}}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&(t.tooltip===void 0||a.string(t.tooltip)||P.is(t.tooltip))&&(t.location===void 0||C.is(t.location))&&(t.command===void 0||I.is(t.command))}e.is=i})(G||(G={}));var Se;(function(e){function n(r,t,o){const s={position:r,label:t};return o!==void 0&&(s.kind=o),s}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&b.is(t.position)&&(a.string(t.label)||a.typedArray(t.label,G.is))&&(t.kind===void 0||T.is(t.kind))&&t.textEdits===void 0||a.typedArray(t.textEdits,E.is)&&(t.tooltip===void 0||a.string(t.tooltip)||P.is(t.tooltip))&&(t.paddingLeft===void 0||a.boolean(t.paddingLeft))&&(t.paddingRight===void 0||a.boolean(t.paddingRight))}e.is=i})(Se||(Se={}));var Oe;(function(e){function n(i){return{kind:\"snippet\",value:i}}e.createSnippet=n})(Oe||(Oe={}));var Ue;(function(e){function n(i,r,t,o){return{insertText:i,filterText:r,range:t,command:o}}e.create=n})(Ue||(Ue={}));var Ve;(function(e){function n(i){return{items:i}}e.create=n})(Ve||(Ve={}));var We;(function(e){e.Invoked=0,e.Automatic=1})(We||(We={}));var He;(function(e){function n(i,r){return{range:i,text:r}}e.create=n})(He||(He={}));var Xe;(function(e){function n(i,r){return{triggerKind:i,selectedCompletionInfo:r}}e.create=n})(Xe||(Xe={}));var $e;(function(e){function n(i){const r=i;return a.objectLiteral(r)&&S.is(r.uri)&&a.string(r.name)}e.is=n})($e||($e={}));var ze;(function(e){function n(o,s,u,f){return new wt(o,s,u,f)}e.create=n;function i(o){let s=o;return!!(a.defined(s)&&a.string(s.uri)&&(a.undefined(s.languageId)||a.string(s.languageId))&&a.uinteger(s.lineCount)&&a.func(s.getText)&&a.func(s.positionAt)&&a.func(s.offsetAt))}e.is=i;function r(o,s){let u=o.getText(),f=t(s,(g,_)=>{let w=g.range.start.line-_.range.start.line;return w===0?g.range.start.character-_.range.start.character:w}),d=u.length;for(let g=f.length-1;g>=0;g--){let _=f[g],w=o.offsetAt(_.range.start),l=o.offsetAt(_.range.end);if(l<=d)u=u.substring(0,w)+_.newText+u.substring(l,u.length);else throw new Error(\"Overlapping edit\");d=w}return u}e.applyEdits=r;function t(o,s){if(o.length<=1)return o;const u=o.length/2|0,f=o.slice(0,u),d=o.slice(u);t(f,s),t(d,s);let g=0,_=0,w=0;for(;g<f.length&&_<d.length;)s(f[g],d[_])<=0?o[w++]=f[g++]:o[w++]=d[_++];for(;g<f.length;)o[w++]=f[g++];for(;_<d.length;)o[w++]=d[_++];return o}})(ze||(ze={}));var wt=class{constructor(e,n,i,r){this._uri=e,this._languageId=n,this._version=i,this._content=r,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let n=this.offsetAt(e.start),i=this.offsetAt(e.end);return this._content.substring(n,i)}return this._content}update(e,n){this._content=e.text,this._version=n,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let e=[],n=this._content,i=!0;for(let r=0;r<n.length;r++){i&&(e.push(r),i=!1);let t=n.charAt(r);i=t===\"\\r\"||t===`\n`,t===\"\\r\"&&r+1<n.length&&n.charAt(r+1)===`\n`&&r++}i&&n.length>0&&e.push(n.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let n=this.getLineOffsets(),i=0,r=n.length;if(r===0)return b.create(0,e);for(;i<r;){let o=Math.floor((i+r)/2);n[o]>e?r=o:i=o+1}let t=i-1;return b.create(t,e-n[t])}offsetAt(e){let n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;let i=n[e.line],r=e.line+1<n.length?n[e.line+1]:this._content.length;return Math.max(Math.min(i+e.character,r),i)}get lineCount(){return this.getLineOffsets().length}},a;(function(e){const n=Object.prototype.toString;function i(l){return typeof l<\"u\"}e.defined=i;function r(l){return typeof l>\"u\"}e.undefined=r;function t(l){return l===!0||l===!1}e.boolean=t;function o(l){return n.call(l)===\"[object String]\"}e.string=o;function s(l){return n.call(l)===\"[object Number]\"}e.number=s;function u(l,N,dt){return n.call(l)===\"[object Number]\"&&N<=l&&l<=dt}e.numberRange=u;function f(l){return n.call(l)===\"[object Number]\"&&-2147483648<=l&&l<=2147483647}e.integer=f;function d(l){return n.call(l)===\"[object Number]\"&&0<=l&&l<=2147483647}e.uinteger=d;function g(l){return n.call(l)===\"[object Function]\"}e.func=g;function _(l){return l!==null&&typeof l==\"object\"}e.objectLiteral=_;function w(l,N){return Array.isArray(l)&&l.every(N)}e.typedArray=w})(a||(a={}));var yt=class{constructor(e,n,i){this._languageId=e,this._worker=n,this._disposables=[],this._listener=Object.create(null);const r=o=>{let s=o.getLanguageId();if(s!==this._languageId)return;let u;this._listener[o.uri.toString()]=o.onDidChangeContent(()=>{window.clearTimeout(u),u=window.setTimeout(()=>this._doValidate(o.uri,s),500)}),this._doValidate(o.uri,s)},t=o=>{c.editor.setModelMarkers(o,this._languageId,[]);let s=o.uri.toString(),u=this._listener[s];u&&(u.dispose(),delete this._listener[s])};this._disposables.push(c.editor.onDidCreateModel(r)),this._disposables.push(c.editor.onWillDisposeModel(t)),this._disposables.push(c.editor.onDidChangeModelLanguage(o=>{t(o.model),r(o.model)})),this._disposables.push(i(o=>{c.editor.getModels().forEach(s=>{s.getLanguageId()===this._languageId&&(t(s),r(s))})})),this._disposables.push({dispose:()=>{c.editor.getModels().forEach(t);for(let o in this._listener)this._listener[o].dispose()}}),c.editor.getModels().forEach(r)}dispose(){this._disposables.forEach(e=>e&&e.dispose()),this._disposables.length=0}_doValidate(e,n){this._worker(e).then(i=>i.doValidation(e.toString())).then(i=>{const r=i.map(o=>kt(e,o));let t=c.editor.getModel(e);t&&t.getLanguageId()===n&&c.editor.setModelMarkers(t,n,r)}).then(void 0,i=>{console.error(i)})}};function bt(e){switch(e){case x.Error:return c.MarkerSeverity.Error;case x.Warning:return c.MarkerSeverity.Warning;case x.Information:return c.MarkerSeverity.Info;case x.Hint:return c.MarkerSeverity.Hint;default:return c.MarkerSeverity.Info}}function kt(e,n){let i=typeof n.code==\"number\"?String(n.code):n.code;return{severity:bt(n.severity),startLineNumber:n.range.start.line+1,startColumn:n.range.start.character+1,endLineNumber:n.range.end.line+1,endColumn:n.range.end.character+1,message:n.message,code:i,source:n.source}}var xt=class{constructor(e,n){this._worker=e,this._triggerCharacters=n}get triggerCharacters(){return this._triggerCharacters}provideCompletionItems(e,n,i,r){const t=e.uri;return this._worker(t).then(o=>o.doComplete(t.toString(),k(n))).then(o=>{if(!o)return;const s=e.getWordUntilPosition(n),u=new c.Range(n.lineNumber,s.startColumn,n.lineNumber,s.endColumn),f=o.items.map(d=>{const g={label:d.label,insertText:d.insertText||d.label,sortText:d.sortText,filterText:d.filterText,documentation:d.documentation,detail:d.detail,command:Lt(d.command),range:u,kind:Et(d.kind)};return d.textEdit&&(It(d.textEdit)?g.range={insert:m(d.textEdit.insert),replace:m(d.textEdit.replace)}:g.range=m(d.textEdit.range),g.insertText=d.textEdit.newText),d.additionalTextEdits&&(g.additionalTextEdits=d.additionalTextEdits.map(D)),d.insertTextFormat===Q.Snippet&&(g.insertTextRules=c.languages.CompletionItemInsertTextRule.InsertAsSnippet),g});return{isIncomplete:o.isIncomplete,suggestions:f}})}};function k(e){if(e)return{character:e.column-1,line:e.lineNumber-1}}function Te(e){if(e)return{start:{line:e.startLineNumber-1,character:e.startColumn-1},end:{line:e.endLineNumber-1,character:e.endColumn-1}}}function m(e){if(e)return new c.Range(e.start.line+1,e.start.character+1,e.end.line+1,e.end.character+1)}function It(e){return typeof e.insert<\"u\"&&typeof e.replace<\"u\"}function Et(e){const n=c.languages.CompletionItemKind;switch(e){case v.Text:return n.Text;case v.Method:return n.Method;case v.Function:return n.Function;case v.Constructor:return n.Constructor;case v.Field:return n.Field;case v.Variable:return n.Variable;case v.Class:return n.Class;case v.Interface:return n.Interface;case v.Module:return n.Module;case v.Property:return n.Property;case v.Unit:return n.Unit;case v.Value:return n.Value;case v.Enum:return n.Enum;case v.Keyword:return n.Keyword;case v.Snippet:return n.Snippet;case v.Color:return n.Color;case v.File:return n.File;case v.Reference:return n.Reference}return n.Property}function D(e){if(e)return{range:m(e.range),text:e.newText}}function Lt(e){return e&&e.command===\"editor.action.triggerSuggest\"?{id:e.command,title:e.title,arguments:e.arguments}:void 0}var Ge=class{constructor(e){this._worker=e}provideHover(e,n,i){let r=e.uri;return this._worker(r).then(t=>t.doHover(r.toString(),k(n))).then(t=>{if(t)return{range:m(t.range),contents:Rt(t.contents)}})}};function At(e){return e&&typeof e==\"object\"&&typeof e.kind==\"string\"}function Be(e){return typeof e==\"string\"?{value:e}:At(e)?e.kind===\"plaintext\"?{value:e.value.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,\"\\\\$&\")}:{value:e.value}:{value:\"```\"+e.language+`\n`+e.value+\"\\n```\\n\"}}function Rt(e){if(e)return Array.isArray(e)?e.map(Be):[Be(e)]}var Je=class{constructor(e){this._worker=e}provideDocumentHighlights(e,n,i){const r=e.uri;return this._worker(r).then(t=>t.findDocumentHighlights(r.toString(),k(n))).then(t=>{if(t)return t.map(o=>({range:m(o.range),kind:Pt(o.kind)}))})}};function Pt(e){switch(e){case R.Read:return c.languages.DocumentHighlightKind.Read;case R.Write:return c.languages.DocumentHighlightKind.Write;case R.Text:return c.languages.DocumentHighlightKind.Text}return c.languages.DocumentHighlightKind.Text}var jt=class{constructor(e){this._worker=e}provideDefinition(e,n,i){const r=e.uri;return this._worker(r).then(t=>t.findDefinition(r.toString(),k(n))).then(t=>{if(t)return[Ye(t)]})}};function Ye(e){return{uri:c.Uri.parse(e.uri),range:m(e.range)}}var Nt=class{constructor(e){this._worker=e}provideReferences(e,n,i,r){const t=e.uri;return this._worker(t).then(o=>o.findReferences(t.toString(),k(n))).then(o=>{if(o)return o.map(Ye)})}},Ze=class{constructor(e){this._worker=e}provideRenameEdits(e,n,i,r){const t=e.uri;return this._worker(t).then(o=>o.doRename(t.toString(),k(n),i)).then(o=>Dt(o))}};function Dt(e){if(!e||!e.changes)return;let n=[];for(let i in e.changes){const r=c.Uri.parse(i);for(let t of e.changes[i])n.push({resource:r,versionId:void 0,textEdit:{range:m(t.range),text:t.newText}})}return{edits:n}}var Ke=class{constructor(e){this._worker=e}provideDocumentSymbols(e,n){const i=e.uri;return this._worker(i).then(r=>r.findDocumentSymbols(i.toString())).then(r=>{if(r)return r.map(t=>Mt(t)?et(t):{name:t.name,detail:\"\",containerName:t.containerName,kind:tt(t.kind),range:m(t.location.range),selectionRange:m(t.location.range),tags:[]})})}};function Mt(e){return\"children\"in e}function et(e){return{name:e.name,detail:e.detail??\"\",kind:tt(e.kind),range:m(e.range),selectionRange:m(e.selectionRange),tags:e.tags??[],children:(e.children??[]).map(n=>et(n))}}function tt(e){let n=c.languages.SymbolKind;switch(e){case p.File:return n.File;case p.Module:return n.Module;case p.Namespace:return n.Namespace;case p.Package:return n.Package;case p.Class:return n.Class;case p.Method:return n.Method;case p.Property:return n.Property;case p.Field:return n.Field;case p.Constructor:return n.Constructor;case p.Enum:return n.Enum;case p.Interface:return n.Interface;case p.Function:return n.Function;case p.Variable:return n.Variable;case p.Constant:return n.Constant;case p.String:return n.String;case p.Number:return n.Number;case p.Boolean:return n.Boolean;case p.Array:return n.Array}return n.Function}var rt=class{constructor(e){this._worker=e}provideLinks(e,n){const i=e.uri;return this._worker(i).then(r=>r.findDocumentLinks(i.toString())).then(r=>{if(r)return{links:r.map(t=>({range:m(t.range),url:t.target}))}})}},nt=class{constructor(e){this._worker=e}provideDocumentFormattingEdits(e,n,i){const r=e.uri;return this._worker(r).then(t=>t.format(r.toString(),null,ot(n)).then(o=>{if(!(!o||o.length===0))return o.map(D)}))}},it=class{constructor(e){this._worker=e,this.canFormatMultipleRanges=!1}provideDocumentRangeFormattingEdits(e,n,i,r){const t=e.uri;return this._worker(t).then(o=>o.format(t.toString(),Te(n),ot(i)).then(s=>{if(!(!s||s.length===0))return s.map(D)}))}};function ot(e){return{tabSize:e.tabSize,insertSpaces:e.insertSpaces}}var St=class{constructor(e){this._worker=e}provideDocumentColors(e,n){const i=e.uri;return this._worker(i).then(r=>r.findDocumentColors(i.toString())).then(r=>{if(r)return r.map(t=>({color:t.color,range:m(t.range)}))})}provideColorPresentations(e,n,i){const r=e.uri;return this._worker(r).then(t=>t.getColorPresentations(r.toString(),n.color,Te(n.range))).then(t=>{if(t)return t.map(o=>{let s={label:o.label};return o.textEdit&&(s.textEdit=D(o.textEdit)),o.additionalTextEdits&&(s.additionalTextEdits=o.additionalTextEdits.map(D)),s})})}},at=class{constructor(e){this._worker=e}provideFoldingRanges(e,n,i){const r=e.uri;return this._worker(r).then(t=>t.getFoldingRanges(r.toString(),n)).then(t=>{if(t)return t.map(o=>{const s={start:o.startLine+1,end:o.endLine+1};return typeof o.kind<\"u\"&&(s.kind=Ct(o.kind)),s})})}};function Ct(e){switch(e){case A.Comment:return c.languages.FoldingRangeKind.Comment;case A.Imports:return c.languages.FoldingRangeKind.Imports;case A.Region:return c.languages.FoldingRangeKind.Region}}var st=class{constructor(e){this._worker=e}provideSelectionRanges(e,n,i){const r=e.uri;return this._worker(r).then(t=>t.getSelectionRanges(r.toString(),n.map(k))).then(t=>{if(t)return t.map(o=>{const s=[];for(;o;)s.push({range:m(o.range)}),o=o.parent;return s})})}},ut=class extends xt{constructor(e){super(e,[\".\",\":\",\"<\",'\"',\"=\",\"/\"])}};function Ot(e){const n=new Qe(e),i=(...t)=>n.getLanguageServiceWorker(...t);let r=e.languageId;c.languages.registerCompletionItemProvider(r,new ut(i)),c.languages.registerHoverProvider(r,new Ge(i)),c.languages.registerDocumentHighlightProvider(r,new Je(i)),c.languages.registerLinkProvider(r,new rt(i)),c.languages.registerFoldingRangeProvider(r,new at(i)),c.languages.registerDocumentSymbolProvider(r,new Ke(i)),c.languages.registerSelectionRangeProvider(r,new st(i)),c.languages.registerRenameProvider(r,new Ze(i)),r===\"html\"&&(c.languages.registerDocumentFormattingEditProvider(r,new nt(i)),c.languages.registerDocumentRangeFormattingEditProvider(r,new it(i)))}function Ut(e){const n=[],i=[],r=new Qe(e);n.push(r);const t=(...s)=>r.getLanguageServiceWorker(...s);function o(){const{languageId:s,modeConfiguration:u}=e;ct(i),u.completionItems&&i.push(c.languages.registerCompletionItemProvider(s,new ut(t))),u.hovers&&i.push(c.languages.registerHoverProvider(s,new Ge(t))),u.documentHighlights&&i.push(c.languages.registerDocumentHighlightProvider(s,new Je(t))),u.links&&i.push(c.languages.registerLinkProvider(s,new rt(t))),u.documentSymbols&&i.push(c.languages.registerDocumentSymbolProvider(s,new Ke(t))),u.rename&&i.push(c.languages.registerRenameProvider(s,new Ze(t))),u.foldingRanges&&i.push(c.languages.registerFoldingRangeProvider(s,new at(t))),u.selectionRanges&&i.push(c.languages.registerSelectionRangeProvider(s,new st(t))),u.documentFormattingEdits&&i.push(c.languages.registerDocumentFormattingEditProvider(s,new nt(t))),u.documentRangeFormattingEdits&&i.push(c.languages.registerDocumentRangeFormattingEditProvider(s,new it(t)))}return o(),n.push(qe(i)),qe(n)}function qe(e){return{dispose:()=>ct(e)}}function ct(e){for(;e.length;)e.pop().dispose()}export{xt as CompletionAdapter,jt as DefinitionAdapter,yt as DiagnosticsAdapter,St as DocumentColorAdapter,nt as DocumentFormattingEditProvider,Je as DocumentHighlightAdapter,rt as DocumentLinkAdapter,it as DocumentRangeFormattingEditProvider,Ke as DocumentSymbolAdapter,at as FoldingRangeAdapter,Ge as HoverAdapter,Nt as ReferenceAdapter,Ze as RenameAdapter,st as SelectionRangeAdapter,Qe as WorkerManager,k as fromPosition,Te as fromRange,Ut as setupMode,Ot as setupMode1,m as toRange,D as toTextEdit};\n"
  },
  {
    "path": "jesse/static/_nuxt/C_scCXcs.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]},{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"},{open:\"'\",close:\"'\"},{open:'\"',close:'\"'}]},o={defaultToken:\"\",tokenPostfix:\".ecl\",ignoreCase:!0,brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"}],pounds:[\"append\",\"break\",\"declare\",\"demangle\",\"end\",\"for\",\"getdatatype\",\"if\",\"inmodule\",\"loop\",\"mangle\",\"onwarning\",\"option\",\"set\",\"stored\",\"uniquename\"].join(\"|\"),keywords:[\"__compressed__\",\"after\",\"all\",\"and\",\"any\",\"as\",\"atmost\",\"before\",\"beginc\",\"best\",\"between\",\"case\",\"cluster\",\"compressed\",\"compression\",\"const\",\"counter\",\"csv\",\"default\",\"descend\",\"embed\",\"encoding\",\"encrypt\",\"end\",\"endc\",\"endembed\",\"endmacro\",\"enum\",\"escape\",\"except\",\"exclusive\",\"expire\",\"export\",\"extend\",\"fail\",\"few\",\"fileposition\",\"first\",\"flat\",\"forward\",\"from\",\"full\",\"function\",\"functionmacro\",\"group\",\"grouped\",\"heading\",\"hole\",\"ifblock\",\"import\",\"in\",\"inner\",\"interface\",\"internal\",\"joined\",\"keep\",\"keyed\",\"last\",\"left\",\"limit\",\"linkcounted\",\"literal\",\"little_endian\",\"load\",\"local\",\"locale\",\"lookup\",\"lzw\",\"macro\",\"many\",\"maxcount\",\"maxlength\",\"min skew\",\"module\",\"mofn\",\"multiple\",\"named\",\"namespace\",\"nocase\",\"noroot\",\"noscan\",\"nosort\",\"not\",\"noxpath\",\"of\",\"onfail\",\"only\",\"opt\",\"or\",\"outer\",\"overwrite\",\"packed\",\"partition\",\"penalty\",\"physicallength\",\"pipe\",\"prefetch\",\"quote\",\"record\",\"repeat\",\"retry\",\"return\",\"right\",\"right1\",\"right2\",\"rows\",\"rowset\",\"scan\",\"scope\",\"self\",\"separator\",\"service\",\"shared\",\"skew\",\"skip\",\"smart\",\"soapaction\",\"sql\",\"stable\",\"store\",\"terminator\",\"thor\",\"threshold\",\"timelimit\",\"timeout\",\"token\",\"transform\",\"trim\",\"type\",\"unicodeorder\",\"unordered\",\"unsorted\",\"unstable\",\"update\",\"use\",\"validate\",\"virtual\",\"whole\",\"width\",\"wild\",\"within\",\"wnotrim\",\"xml\",\"xpath\"],functions:[\"abs\",\"acos\",\"aggregate\",\"allnodes\",\"apply\",\"ascii\",\"asin\",\"assert\",\"asstring\",\"atan\",\"atan2\",\"ave\",\"build\",\"buildindex\",\"case\",\"catch\",\"choose\",\"choosen\",\"choosesets\",\"clustersize\",\"combine\",\"correlation\",\"cos\",\"cosh\",\"count\",\"covariance\",\"cron\",\"dataset\",\"dedup\",\"define\",\"denormalize\",\"dictionary\",\"distribute\",\"distributed\",\"distribution\",\"ebcdic\",\"enth\",\"error\",\"evaluate\",\"event\",\"eventextra\",\"eventname\",\"exists\",\"exp\",\"fail\",\"failcode\",\"failmessage\",\"fetch\",\"fromunicode\",\"fromxml\",\"getenv\",\"getisvalid\",\"global\",\"graph\",\"group\",\"hash\",\"hash32\",\"hash64\",\"hashcrc\",\"hashmd5\",\"having\",\"httpcall\",\"httpheader\",\"if\",\"iff\",\"index\",\"intformat\",\"isvalid\",\"iterate\",\"join\",\"keydiff\",\"keypatch\",\"keyunicode\",\"length\",\"library\",\"limit\",\"ln\",\"loadxml\",\"local\",\"log\",\"loop\",\"map\",\"matched\",\"matchlength\",\"matchposition\",\"matchtext\",\"matchunicode\",\"max\",\"merge\",\"mergejoin\",\"min\",\"nofold\",\"nolocal\",\"nonempty\",\"normalize\",\"nothor\",\"notify\",\"output\",\"parallel\",\"parse\",\"pipe\",\"power\",\"preload\",\"process\",\"project\",\"pull\",\"random\",\"range\",\"rank\",\"ranked\",\"realformat\",\"recordof\",\"regexfind\",\"regexreplace\",\"regroup\",\"rejected\",\"rollup\",\"round\",\"roundup\",\"row\",\"rowdiff\",\"sample\",\"sequential\",\"set\",\"sin\",\"sinh\",\"sizeof\",\"soapcall\",\"sort\",\"sorted\",\"sqrt\",\"stepped\",\"stored\",\"sum\",\"table\",\"tan\",\"tanh\",\"thisnode\",\"topn\",\"tounicode\",\"toxml\",\"transfer\",\"transform\",\"trim\",\"truncate\",\"typeof\",\"ungroup\",\"unicodeorder\",\"variance\",\"wait\",\"which\",\"workunit\",\"xmldecode\",\"xmlencode\",\"xmltext\",\"xmlunicode\"],typesint:[\"integer\",\"unsigned\"].join(\"|\"),typesnum:[\"data\",\"qstring\",\"string\",\"unicode\",\"utf8\",\"varstring\",\"varunicode\"],typesone:[\"ascii\",\"big_endian\",\"boolean\",\"data\",\"decimal\",\"ebcdic\",\"grouped\",\"integer\",\"linkcounted\",\"pattern\",\"qstring\",\"real\",\"record\",\"rule\",\"set of\",\"streamed\",\"string\",\"token\",\"udecimal\",\"unicode\",\"unsigned\",\"utf8\",\"varstring\",\"varunicode\"].join(\"|\"),operators:[\"+\",\"-\",\"/\",\":=\",\"<\",\"<>\",\"=\",\">\",\"\\\\\",\"and\",\"in\",\"not\",\"or\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/@typesint[4|8]/,\"type\"],[/#(@pounds)/,\"type\"],[/@typesone/,\"type\"],[/[a-zA-Z_$][\\w-$]*/,{cases:{\"@functions\":\"keyword.function\",\"@keywords\":\"keyword\",\"@operators\":\"operator\"}}],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/[0-9_]*\\.[0-9_]+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F_]+/,\"number.hex\"],[/0[bB][01]+/,\"number.hex\"],[/[0-9_]+/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",\"@string\"],[/'[^\\\\']'/,\"string\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",\"string\"]],[/'/,\"string.invalid\"]],whitespace:[[/[ \\t\\v\\f\\r\\n]+/,\"\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],string:[[/[^\\\\']+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/'/,\"string\",\"@pop\"]]}};export{e as conf,o as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/CafNBF8u.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.background\":\"#1A1A1A\",\"activityBar.foreground\":\"#7D7D7D\",\"activityBarBadge.background\":\"#383838\",\"badge.background\":\"#383838\",\"badge.foreground\":\"#C1C1C1\",\"button.background\":\"#333\",\"debugIcon.breakpointCurrentStackframeForeground\":\"#79b8ff\",\"debugIcon.breakpointDisabledForeground\":\"#848484\",\"debugIcon.breakpointForeground\":\"#FF7A84\",\"debugIcon.breakpointStackframeForeground\":\"#79b8ff\",\"debugIcon.breakpointUnverifiedForeground\":\"#848484\",\"debugIcon.continueForeground\":\"#FF7A84\",\"debugIcon.disconnectForeground\":\"#FF7A84\",\"debugIcon.pauseForeground\":\"#FF7A84\",\"debugIcon.restartForeground\":\"#79b8ff\",\"debugIcon.startForeground\":\"#79b8ff\",\"debugIcon.stepBackForeground\":\"#FF7A84\",\"debugIcon.stepIntoForeground\":\"#FF7A84\",\"debugIcon.stepOutForeground\":\"#FF7A84\",\"debugIcon.stepOverForeground\":\"#FF7A84\",\"debugIcon.stopForeground\":\"#79b8ff\",\"diffEditor.insertedTextBackground\":\"#3a632a4b\",\"diffEditor.removedTextBackground\":\"#88063852\",\"editor.background\":\"#1f1f1f\",\"editor.lineHighlightBorder\":\"#303030\",\"editorGroupHeader.tabsBackground\":\"#1A1A1A\",\"editorGroupHeader.tabsBorder\":\"#1A1A1A\",\"editorIndentGuide.activeBackground\":\"#383838\",\"editorIndentGuide.background\":\"#2A2A2A\",\"editorLineNumber.foreground\":\"#727272\",\"editorRuler.foreground\":\"#2A2A2A\",\"editorSuggestWidget.background\":\"#1A1A1A\",\"focusBorder\":\"#444\",\"foreground\":\"#888888\",\"gitDecoration.ignoredResourceForeground\":\"#444444\",\"input.background\":\"#2A2A2A\",\"input.foreground\":\"#E0E0E0\",\"inputOption.activeBackground\":\"#3a3a3a\",\"list.activeSelectionBackground\":\"#212121\",\"list.activeSelectionForeground\":\"#F5F5F5\",\"list.focusBackground\":\"#292929\",\"list.highlightForeground\":\"#EAEAEA\",\"list.hoverBackground\":\"#262626\",\"list.hoverForeground\":\"#9E9E9E\",\"list.inactiveSelectionBackground\":\"#212121\",\"list.inactiveSelectionForeground\":\"#F5F5F5\",\"panelTitle.activeBorder\":\"#1f1f1f\",\"panelTitle.activeForeground\":\"#FAFAFA\",\"panelTitle.inactiveForeground\":\"#484848\",\"peekView.border\":\"#444\",\"peekViewEditor.background\":\"#242424\",\"pickerGroup.border\":\"#363636\",\"pickerGroup.foreground\":\"#EAEAEA\",\"progressBar.background\":\"#FAFAFA\",\"scrollbar.shadow\":\"#1f1f1f\",\"sideBar.background\":\"#1A1A1A\",\"sideBarSectionHeader.background\":\"#202020\",\"statusBar.background\":\"#1A1A1A\",\"statusBar.debuggingBackground\":\"#1A1A1A\",\"statusBar.foreground\":\"#7E7E7E\",\"statusBar.noFolderBackground\":\"#1A1A1A\",\"statusBarItem.prominentBackground\":\"#fafafa1a\",\"statusBarItem.remoteBackground\":\"#1a1a1a00\",\"statusBarItem.remoteForeground\":\"#7E7E7E\",\"symbolIcon.classForeground\":\"#FF9800\",\"symbolIcon.constructorForeground\":\"#b392f0\",\"symbolIcon.enumeratorForeground\":\"#FF9800\",\"symbolIcon.enumeratorMemberForeground\":\"#79b8ff\",\"symbolIcon.eventForeground\":\"#FF9800\",\"symbolIcon.fieldForeground\":\"#79b8ff\",\"symbolIcon.functionForeground\":\"#b392f0\",\"symbolIcon.interfaceForeground\":\"#79b8ff\",\"symbolIcon.methodForeground\":\"#b392f0\",\"symbolIcon.variableForeground\":\"#79b8ff\",\"tab.activeBorder\":\"#1e1e1e\",\"tab.activeForeground\":\"#FAFAFA\",\"tab.border\":\"#1A1A1A\",\"tab.inactiveBackground\":\"#1A1A1A\",\"tab.inactiveForeground\":\"#727272\",\"terminal.ansiBrightBlack\":\"#5c5c5c\",\"textLink.activeForeground\":\"#fafafa\",\"textLink.foreground\":\"#CCC\",\"titleBar.activeBackground\":\"#1A1A1A\",\"titleBar.border\":\"#00000000\"},\"displayName\":\"Min Dark\",\"name\":\"min-dark\",\"semanticHighlighting\":true,\"tokenColors\":[{\"settings\":{\"foreground\":\"#b392f0\"}},{\"scope\":[\"support.function\",\"keyword.operator.accessor\",\"meta.group.braces.round.function.arguments\",\"meta.template.expression\",\"markup.fenced_code meta.embedded.block\"],\"settings\":{\"foreground\":\"#b392f0\"}},{\"scope\":\"emphasis\",\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":[\"strong\",\"markup.heading.markdown\",\"markup.bold.markdown\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#FF7A84\"}},{\"scope\":[\"markup.italic.markdown\"],\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":\"meta.link.inline.markdown\",\"settings\":{\"fontStyle\":\"underline\",\"foreground\":\"#1976D2\"}},{\"scope\":[\"string\",\"markup.fenced_code\",\"markup.inline\"],\"settings\":{\"foreground\":\"#9db1c5\"}},{\"scope\":[\"comment\",\"string.quoted.docstring.multi\"],\"settings\":{\"foreground\":\"#6b737c\"}},{\"scope\":[\"constant.language\",\"variable.language.this\",\"variable.other.object\",\"variable.other.class\",\"variable.other.constant\",\"meta.property-name\",\"support\",\"string.other.link.title.markdown\"],\"settings\":{\"foreground\":\"#79b8ff\"}},{\"scope\":[\"constant.numeric\",\"constant.other.placeholder\",\"constant.character.format.placeholder\",\"meta.property-value\",\"keyword.other.unit\",\"keyword.other.template\",\"entity.name.tag.yaml\",\"entity.other.attribute-name\",\"support.type.property-name.json\"],\"settings\":{\"foreground\":\"#f8f8f8\"}},{\"scope\":[\"keyword\",\"storage.modifier\",\"storage.type\",\"storage.control.clojure\",\"entity.name.function.clojure\",\"support.function.node\",\"punctuation.separator.key-value\",\"punctuation.definition.template-expression\"],\"settings\":{\"foreground\":\"#f97583\"}},{\"scope\":\"variable.parameter.function\",\"settings\":{\"foreground\":\"#FF9800\"}},{\"scope\":[\"entity.name.type\",\"entity.other.inherited-class\",\"meta.function-call\",\"meta.instance.constructor\",\"entity.other.attribute-name\",\"entity.name.function\",\"constant.keyword.clojure\"],\"settings\":{\"foreground\":\"#b392f0\"}},{\"scope\":[\"entity.name.tag\",\"string.quoted\",\"string.regexp\",\"string.interpolated\",\"string.template\",\"string.unquoted.plain.out.yaml\",\"keyword.other.template\"],\"settings\":{\"foreground\":\"#ffab70\"}},{\"scope\":\"token.info-token\",\"settings\":{\"foreground\":\"#316bcd\"}},{\"scope\":\"token.warn-token\",\"settings\":{\"foreground\":\"#cd9731\"}},{\"scope\":\"token.error-token\",\"settings\":{\"foreground\":\"#cd3131\"}},{\"scope\":\"token.debug-token\",\"settings\":{\"foreground\":\"#800080\"}},{\"scope\":[\"punctuation.definition.arguments\",\"punctuation.definition.dict\",\"punctuation.separator\",\"meta.function-call.arguments\"],\"settings\":{\"foreground\":\"#bbbbbb\"}},{\"scope\":\"markup.underline.link\",\"settings\":{\"foreground\":\"#ffab70\"}},{\"scope\":[\"beginning.punctuation.definition.list.markdown\"],\"settings\":{\"foreground\":\"#FF7A84\"}},{\"scope\":\"punctuation.definition.metadata.markdown\",\"settings\":{\"foreground\":\"#ffab70\"}},{\"scope\":[\"punctuation.definition.string.begin.markdown\",\"punctuation.definition.string.end.markdown\"],\"settings\":{\"foreground\":\"#79b8ff\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CbfX1IO0.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"colors\":{\"activityBar.background\":\"#171520\",\"activityBar.dropBackground\":\"#34294f66\",\"activityBar.foreground\":\"#ffffffCC\",\"activityBarBadge.background\":\"#f97e72\",\"activityBarBadge.foreground\":\"#2a2139\",\"badge.background\":\"#2a2139\",\"badge.foreground\":\"#ffffff\",\"breadcrumbPicker.background\":\"#232530\",\"button.background\":\"#614D85\",\"debugToolBar.background\":\"#463465\",\"diffEditor.insertedTextBackground\":\"#0beb9935\",\"diffEditor.removedTextBackground\":\"#fe445035\",\"dropdown.background\":\"#232530\",\"dropdown.listBackground\":\"#2a2139\",\"editor.background\":\"#262335\",\"editor.findMatchBackground\":\"#D18616bb\",\"editor.findMatchHighlightBackground\":\"#D1861655\",\"editor.findRangeHighlightBackground\":\"#34294f1a\",\"editor.hoverHighlightBackground\":\"#463564\",\"editor.lineHighlightBorder\":\"#7059AB66\",\"editor.rangeHighlightBackground\":\"#49549539\",\"editor.selectionBackground\":\"#ffffff20\",\"editor.selectionHighlightBackground\":\"#ffffff20\",\"editor.wordHighlightBackground\":\"#34294f88\",\"editor.wordHighlightStrongBackground\":\"#34294f88\",\"editorBracketMatch.background\":\"#34294f66\",\"editorBracketMatch.border\":\"#495495\",\"editorCodeLens.foreground\":\"#ffffff7c\",\"editorCursor.background\":\"#241b2f\",\"editorCursor.foreground\":\"#f97e72\",\"editorError.foreground\":\"#fe4450\",\"editorGroup.border\":\"#495495\",\"editorGroup.dropBackground\":\"#4954954a\",\"editorGroupHeader.tabsBackground\":\"#241b2f\",\"editorGutter.addedBackground\":\"#206d4bd6\",\"editorGutter.deletedBackground\":\"#fa2e46a4\",\"editorGutter.modifiedBackground\":\"#b893ce8f\",\"editorIndentGuide.activeBackground\":\"#A148AB80\",\"editorIndentGuide.background\":\"#444251\",\"editorLineNumber.activeForeground\":\"#ffffffcc\",\"editorLineNumber.foreground\":\"#ffffff73\",\"editorOverviewRuler.addedForeground\":\"#09f7a099\",\"editorOverviewRuler.border\":\"#34294fb3\",\"editorOverviewRuler.deletedForeground\":\"#fe445099\",\"editorOverviewRuler.errorForeground\":\"#fe4450dd\",\"editorOverviewRuler.findMatchForeground\":\"#D1861699\",\"editorOverviewRuler.modifiedForeground\":\"#b893ce99\",\"editorOverviewRuler.warningForeground\":\"#72f1b8cc\",\"editorRuler.foreground\":\"#A148AB80\",\"editorSuggestWidget.highlightForeground\":\"#f97e72\",\"editorSuggestWidget.selectedBackground\":\"#ffffff36\",\"editorWarning.foreground\":\"#72f1b8cc\",\"editorWidget.background\":\"#171520DC\",\"editorWidget.border\":\"#ffffff22\",\"editorWidget.resizeBorder\":\"#ffffff44\",\"errorForeground\":\"#fe4450\",\"extensionButton.prominentBackground\":\"#f97e72\",\"extensionButton.prominentHoverBackground\":\"#ff7edb\",\"focusBorder\":\"#1f212b\",\"foreground\":\"#ffffff\",\"gitDecoration.addedResourceForeground\":\"#72f1b8cc\",\"gitDecoration.deletedResourceForeground\":\"#fe4450\",\"gitDecoration.ignoredResourceForeground\":\"#ffffff59\",\"gitDecoration.modifiedResourceForeground\":\"#b893ceee\",\"gitDecoration.untrackedResourceForeground\":\"#72f1b8\",\"input.background\":\"#2a2139\",\"inputOption.activeBorder\":\"#ff7edb99\",\"inputValidation.errorBackground\":\"#fe445080\",\"inputValidation.errorBorder\":\"#fe445000\",\"list.activeSelectionBackground\":\"#ffffff20\",\"list.activeSelectionForeground\":\"#ffffff\",\"list.dropBackground\":\"#34294f66\",\"list.errorForeground\":\"#fe4450E6\",\"list.focusBackground\":\"#ffffff20\",\"list.focusForeground\":\"#ffffff\",\"list.highlightForeground\":\"#f97e72\",\"list.hoverBackground\":\"#37294d99\",\"list.hoverForeground\":\"#ffffff\",\"list.inactiveFocusBackground\":\"#2a213999\",\"list.inactiveSelectionBackground\":\"#ffffff20\",\"list.inactiveSelectionForeground\":\"#ffffff\",\"list.warningForeground\":\"#72f1b8bb\",\"menu.background\":\"#463465\",\"minimapGutter.addedBackground\":\"#09f7a099\",\"minimapGutter.deletedBackground\":\"#fe4450\",\"minimapGutter.modifiedBackground\":\"#b893ce\",\"panelTitle.activeBorder\":\"#f97e72\",\"peekView.border\":\"#495495\",\"peekViewEditor.background\":\"#232530\",\"peekViewEditor.matchHighlightBackground\":\"#D18616bb\",\"peekViewResult.background\":\"#232530\",\"peekViewResult.matchHighlightBackground\":\"#D1861655\",\"peekViewResult.selectionBackground\":\"#2a213980\",\"peekViewTitle.background\":\"#232530\",\"pickerGroup.foreground\":\"#f97e72ea\",\"progressBar.background\":\"#f97e72\",\"scrollbar.shadow\":\"#2a2139\",\"scrollbarSlider.activeBackground\":\"#9d8bca20\",\"scrollbarSlider.background\":\"#9d8bca30\",\"scrollbarSlider.hoverBackground\":\"#9d8bca50\",\"selection.background\":\"#ffffff20\",\"sideBar.background\":\"#241b2f\",\"sideBar.dropBackground\":\"#34294f4c\",\"sideBar.foreground\":\"#ffffff99\",\"sideBarSectionHeader.background\":\"#241b2f\",\"sideBarSectionHeader.foreground\":\"#ffffffca\",\"statusBar.background\":\"#241b2f\",\"statusBar.debuggingBackground\":\"#f97e72\",\"statusBar.debuggingForeground\":\"#08080f\",\"statusBar.foreground\":\"#ffffff80\",\"statusBar.noFolderBackground\":\"#241b2f\",\"statusBarItem.prominentBackground\":\"#2a2139\",\"statusBarItem.prominentHoverBackground\":\"#34294f\",\"tab.activeBorder\":\"#880088\",\"tab.border\":\"#241b2f00\",\"tab.inactiveBackground\":\"#262335\",\"terminal.ansiBlue\":\"#03edf9\",\"terminal.ansiBrightBlue\":\"#03edf9\",\"terminal.ansiBrightCyan\":\"#03edf9\",\"terminal.ansiBrightGreen\":\"#72f1b8\",\"terminal.ansiBrightMagenta\":\"#ff7edb\",\"terminal.ansiBrightRed\":\"#fe4450\",\"terminal.ansiBrightYellow\":\"#fede5d\",\"terminal.ansiCyan\":\"#03edf9\",\"terminal.ansiGreen\":\"#72f1b8\",\"terminal.ansiMagenta\":\"#ff7edb\",\"terminal.ansiRed\":\"#fe4450\",\"terminal.ansiYellow\":\"#f3e70f\",\"terminal.foreground\":\"#ffffff\",\"terminal.selectionBackground\":\"#ffffff20\",\"terminalCursor.background\":\"#ffffff\",\"terminalCursor.foreground\":\"#03edf9\",\"textLink.activeForeground\":\"#ff7edb\",\"textLink.foreground\":\"#f97e72\",\"titleBar.activeBackground\":\"#241b2f\",\"titleBar.inactiveBackground\":\"#241b2f\",\"walkThrough.embeddedEditorBackground\":\"#232530\",\"widget.shadow\":\"#2a2139\"},\"displayName\":\"Synthwave '84\",\"name\":\"synthwave-84\",\"semanticHighlighting\":true,\"tokenColors\":[{\"scope\":[\"comment\",\"string.quoted.docstring.multi.python\",\"string.quoted.docstring.multi.python punctuation.definition.string.begin.python\",\"string.quoted.docstring.multi.python punctuation.definition.string.end.python\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#848bbd\"}},{\"scope\":[\"string.quoted\",\"string.template\",\"punctuation.definition.string\"],\"settings\":{\"foreground\":\"#ff8b39\"}},{\"scope\":\"string.template meta.embedded.line\",\"settings\":{\"foreground\":\"#b6b1b1\"}},{\"scope\":[\"variable\",\"entity.name.variable\"],\"settings\":{\"foreground\":\"#ff7edb\"}},{\"scope\":\"variable.language\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#fe4450\"}},{\"scope\":\"variable.parameter\",\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":[\"storage.type\",\"storage.modifier\"],\"settings\":{\"foreground\":\"#fede5d\"}},{\"scope\":\"constant\",\"settings\":{\"foreground\":\"#f97e72\"}},{\"scope\":\"string.regexp\",\"settings\":{\"foreground\":\"#f97e72\"}},{\"scope\":\"constant.numeric\",\"settings\":{\"foreground\":\"#f97e72\"}},{\"scope\":\"constant.language\",\"settings\":{\"foreground\":\"#f97e72\"}},{\"scope\":\"constant.character.escape\",\"settings\":{\"foreground\":\"#36f9f6\"}},{\"scope\":\"entity.name\",\"settings\":{\"foreground\":\"#fe4450\"}},{\"scope\":\"entity.name.tag\",\"settings\":{\"foreground\":\"#72f1b8\"}},{\"scope\":[\"punctuation.definition.tag\"],\"settings\":{\"foreground\":\"#36f9f6\"}},{\"scope\":\"entity.other.attribute-name\",\"settings\":{\"foreground\":\"#fede5d\"}},{\"scope\":\"entity.other.attribute-name.html\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#fede5d\"}},{\"scope\":[\"entity.name.type\",\"meta.attribute.class.html\"],\"settings\":{\"foreground\":\"#fe4450\"}},{\"scope\":\"entity.other.inherited-class\",\"settings\":{\"foreground\":\"#D50\"}},{\"scope\":[\"entity.name.function\",\"variable.function\"],\"settings\":{\"foreground\":\"#36f9f6\"}},{\"scope\":[\"keyword.control.export.js\",\"keyword.control.import.js\"],\"settings\":{\"foreground\":\"#72f1b8\"}},{\"scope\":[\"constant.numeric.decimal.js\"],\"settings\":{\"foreground\":\"#2EE2FA\"}},{\"scope\":\"keyword\",\"settings\":{\"foreground\":\"#fede5d\"}},{\"scope\":\"keyword.control\",\"settings\":{\"foreground\":\"#fede5d\"}},{\"scope\":\"keyword.operator\",\"settings\":{\"foreground\":\"#fede5d\"}},{\"scope\":[\"keyword.operator.new\",\"keyword.operator.expression\",\"keyword.operator.logical\"],\"settings\":{\"foreground\":\"#fede5d\"}},{\"scope\":\"keyword.other.unit\",\"settings\":{\"foreground\":\"#f97e72\"}},{\"scope\":\"support\",\"settings\":{\"foreground\":\"#fe4450\"}},{\"scope\":\"support.function\",\"settings\":{\"foreground\":\"#36f9f6\"}},{\"scope\":\"support.variable\",\"settings\":{\"foreground\":\"#ff7edb\"}},{\"scope\":[\"meta.object-literal.key\",\"support.type.property-name\"],\"settings\":{\"foreground\":\"#ff7edb\"}},{\"scope\":\"punctuation.separator.key-value\",\"settings\":{\"foreground\":\"#b6b1b1\"}},{\"scope\":\"punctuation.section.embedded\",\"settings\":{\"foreground\":\"#fede5d\"}},{\"scope\":[\"punctuation.definition.template-expression.begin\",\"punctuation.definition.template-expression.end\"],\"settings\":{\"foreground\":\"#72f1b8\"}},{\"scope\":[\"support.type.property-name.css\",\"support.type.property-name.json\"],\"settings\":{\"foreground\":\"#72f1b8\"}},{\"scope\":\"switch-block.expr.js\",\"settings\":{\"foreground\":\"#72f1b8\"}},{\"scope\":\"variable.other.constant.property.js, variable.other.property.js\",\"settings\":{\"foreground\":\"#2ee2fa\"}},{\"scope\":\"constant.other.color\",\"settings\":{\"foreground\":\"#f97e72\"}},{\"scope\":\"support.constant.font-name\",\"settings\":{\"foreground\":\"#f97e72\"}},{\"scope\":\"entity.other.attribute-name.id\",\"settings\":{\"foreground\":\"#36f9f6\"}},{\"scope\":[\"entity.other.attribute-name.pseudo-element\",\"entity.other.attribute-name.pseudo-class\"],\"settings\":{\"foreground\":\"#D50\"}},{\"scope\":\"support.function.misc.css\",\"settings\":{\"foreground\":\"#fe4450\"}},{\"scope\":[\"markup.heading\",\"entity.name.section\"],\"settings\":{\"foreground\":\"#ff7edb\"}},{\"scope\":[\"text.html\",\"keyword.operator.assignment\"],\"settings\":{\"foreground\":\"#ffffffee\"}},{\"scope\":\"markup.quote\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#b6b1b1cc\"}},{\"scope\":\"beginning.punctuation.definition.list\",\"settings\":{\"foreground\":\"#ff7edb\"}},{\"scope\":\"markup.underline.link\",\"settings\":{\"foreground\":\"#D50\"}},{\"scope\":\"string.other.link.description\",\"settings\":{\"foreground\":\"#f97e72\"}},{\"scope\":\"meta.function-call.generic.python\",\"settings\":{\"foreground\":\"#36f9f6\"}},{\"scope\":\"variable.parameter.function-call.python\",\"settings\":{\"foreground\":\"#72f1b8\"}},{\"scope\":\"storage.type.cs\",\"settings\":{\"foreground\":\"#fe4450\"}},{\"scope\":\"entity.name.variable.local.cs\",\"settings\":{\"foreground\":\"#ff7edb\"}},{\"scope\":[\"entity.name.variable.field.cs\",\"entity.name.variable.property.cs\"],\"settings\":{\"foreground\":\"#ff7edb\"}},{\"scope\":\"constant.other.placeholder.c\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#72f1b8\"}},{\"scope\":[\"keyword.control.directive.include.c\",\"keyword.control.directive.define.c\"],\"settings\":{\"foreground\":\"#72f1b8\"}},{\"scope\":\"storage.modifier.c\",\"settings\":{\"foreground\":\"#fe4450\"}},{\"scope\":\"source.cpp keyword.operator\",\"settings\":{\"foreground\":\"#fede5d\"}},{\"scope\":\"constant.other.placeholder.cpp\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#72f1b8\"}},{\"scope\":[\"keyword.control.directive.include.cpp\",\"keyword.control.directive.define.cpp\"],\"settings\":{\"foreground\":\"#72f1b8\"}},{\"scope\":\"storage.modifier.specifier.const.cpp\",\"settings\":{\"foreground\":\"#fe4450\"}},{\"scope\":[\"source.elixir support.type.elixir\",\"source.elixir meta.module.elixir entity.name.class.elixir\"],\"settings\":{\"foreground\":\"#36f9f6\"}},{\"scope\":\"source.elixir entity.name.function\",\"settings\":{\"foreground\":\"#72f1b8\"}},{\"scope\":[\"source.elixir constant.other.symbol.elixir\",\"source.elixir constant.other.keywords.elixir\"],\"settings\":{\"foreground\":\"#36f9f6\"}},{\"scope\":\"source.elixir punctuation.definition.string\",\"settings\":{\"foreground\":\"#72f1b8\"}},{\"scope\":[\"source.elixir variable.other.readwrite.module.elixir\",\"source.elixir variable.other.readwrite.module.elixir punctuation.definition.variable.elixir\"],\"settings\":{\"foreground\":\"#72f1b8\"}},{\"scope\":\"source.elixir .punctuation.binary.elixir\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#ff7edb\"}},{\"scope\":[\"entity.global.clojure\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#36f9f6\"}},{\"scope\":[\"storage.control.clojure\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#36f9f6\"}},{\"scope\":[\"meta.metadata.simple.clojure\",\"meta.metadata.map.clojure\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#fe4450\"}},{\"scope\":[\"meta.quoted-expression.clojure\"],\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":[\"meta.symbol.clojure\"],\"settings\":{\"foreground\":\"#ff7edbff\"}},{\"scope\":\"source.go\",\"settings\":{\"foreground\":\"#ff7edbff\"}},{\"scope\":\"source.go meta.function-call.go\",\"settings\":{\"foreground\":\"#36f9f6\"}},{\"scope\":[\"source.go keyword.package.go\",\"source.go keyword.import.go\",\"source.go keyword.function.go\",\"source.go keyword.type.go\",\"source.go keyword.const.go\",\"source.go keyword.var.go\",\"source.go keyword.map.go\",\"source.go keyword.channel.go\",\"source.go keyword.control.go\"],\"settings\":{\"foreground\":\"#fede5d\"}},{\"scope\":[\"source.go storage.type\",\"source.go keyword.struct.go\",\"source.go keyword.interface.go\"],\"settings\":{\"foreground\":\"#72f1b8\"}},{\"scope\":[\"source.go constant.language.go\",\"source.go constant.other.placeholder.go\",\"source.go variable\"],\"settings\":{\"foreground\":\"#2EE2FA\"}},{\"scope\":[\"markup.underline.link.markdown\",\"markup.inline.raw.string.markdown\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#72f1b8\"}},{\"scope\":[\"string.other.link.title.markdown\"],\"settings\":{\"foreground\":\"#fede5d\"}},{\"scope\":[\"markup.heading.markdown\",\"entity.name.section.markdown\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#ff7edb\"}},{\"scope\":[\"markup.italic.markdown\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#2EE2FA\"}},{\"scope\":[\"markup.bold.markdown\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#2EE2FA\"}},{\"scope\":[\"punctuation.definition.quote.begin.markdown\",\"markup.quote.markdown\"],\"settings\":{\"foreground\":\"#72f1b8\"}},{\"scope\":[\"source.dart\",\"source.python\",\"source.scala\"],\"settings\":{\"foreground\":\"#ff7edbff\"}},{\"scope\":[\"string.interpolated.single.dart\"],\"settings\":{\"foreground\":\"#f97e72\"}},{\"scope\":[\"variable.parameter.dart\"],\"settings\":{\"foreground\":\"#72f1b8\"}},{\"scope\":[\"constant.numeric.dart\"],\"settings\":{\"foreground\":\"#2EE2FA\"}},{\"scope\":[\"variable.parameter.scala\"],\"settings\":{\"foreground\":\"#2EE2FA\"}},{\"scope\":[\"meta.template.expression.scala\"],\"settings\":{\"foreground\":\"#72f1b8\"}}],\"type\":\"dark\"}`));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Cc5clBb7.js",
    "content": "const a=Object.freeze(JSON.parse(`{\"displayName\":\"Log file\",\"fileTypes\":[\"log\"],\"name\":\"log\",\"patterns\":[{\"match\":\"\\\\\\\\b(Trace)\\\\\\\\b:\",\"name\":\"comment log.verbose\"},{\"match\":\"(?i)\\\\\\\\[(verbose|verb|vrb|vb|v)\\\\\\\\]\",\"name\":\"comment log.verbose\"},{\"match\":\"(?<=^[\\\\\\\\s\\\\\\\\d\\\\\\\\p]*)\\\\\\\\bV\\\\\\\\b\",\"name\":\"comment log.verbose\"},{\"match\":\"\\\\\\\\b(DEBUG|Debug)\\\\\\\\b|(?i)\\\\\\\\b(debug)\\\\\\\\:\",\"name\":\"markup.changed log.debug\"},{\"match\":\"(?i)\\\\\\\\[(debug|dbug|dbg|de|d)\\\\\\\\]\",\"name\":\"markup.changed log.debug\"},{\"match\":\"(?<=^[\\\\\\\\s\\\\\\\\d\\\\\\\\p]*)\\\\\\\\bD\\\\\\\\b\",\"name\":\"markup.changed log.debug\"},{\"match\":\"\\\\\\\\b(HINT|INFO|INFORMATION|Info|NOTICE|II)\\\\\\\\b|(?i)\\\\\\\\b(info|information)\\\\\\\\:\",\"name\":\"markup.inserted log.info\"},{\"match\":\"(?i)\\\\\\\\[(information|info|inf|in|i)\\\\\\\\]\",\"name\":\"markup.inserted log.info\"},{\"match\":\"(?<=^[\\\\\\\\s\\\\\\\\d\\\\\\\\p]*)\\\\\\\\bI\\\\\\\\b\",\"name\":\"markup.inserted log.info\"},{\"match\":\"\\\\\\\\b(WARNING|WARN|Warn|WW)\\\\\\\\b|(?i)\\\\\\\\b(warning)\\\\\\\\:\",\"name\":\"markup.deleted log.warning\"},{\"match\":\"(?i)\\\\\\\\[(warning|warn|wrn|wn|w)\\\\\\\\]\",\"name\":\"markup.deleted log.warning\"},{\"match\":\"(?<=^[\\\\\\\\s\\\\\\\\d\\\\\\\\p]*)\\\\\\\\bW\\\\\\\\b\",\"name\":\"markup.deleted log.warning\"},{\"match\":\"\\\\\\\\b(ALERT|CRITICAL|EMERGENCY|ERROR|FAILURE|FAIL|Fatal|FATAL|Error|EE)\\\\\\\\b|(?i)\\\\\\\\b(error)\\\\\\\\:\",\"name\":\"string.regexp, strong log.error\"},{\"match\":\"(?i)\\\\\\\\[(error|eror|err|er|e|fatal|fatl|ftl|fa|f)\\\\\\\\]\",\"name\":\"string.regexp, strong log.error\"},{\"match\":\"(?<=^[\\\\\\\\s\\\\\\\\d\\\\\\\\p]*)\\\\\\\\bE\\\\\\\\b\",\"name\":\"string.regexp, strong log.error\"},{\"match\":\"\\\\\\\\b\\\\\\\\d{4}-\\\\\\\\d{2}-\\\\\\\\d{2}(?=T|\\\\\\\\b)\",\"name\":\"comment log.date\"},{\"match\":\"(?<=(^|\\\\\\\\s))\\\\\\\\d{2}[^\\\\\\\\w\\\\\\\\s]\\\\\\\\d{2}[^\\\\\\\\w\\\\\\\\s]\\\\\\\\d{4}\\\\\\\\b\",\"name\":\"comment log.date\"},{\"match\":\"T?\\\\\\\\d{1,2}:\\\\\\\\d{2}(:\\\\\\\\d{2}([.,]\\\\\\\\d{1,})?)?(Z| ?[+-]\\\\\\\\d{1,2}:\\\\\\\\d{2})?\\\\\\\\b\",\"name\":\"comment log.date\"},{\"match\":\"T\\\\\\\\d{2}\\\\\\\\d{2}(\\\\\\\\d{2}([.,]\\\\\\\\d{1,})?)?(Z| ?[+-]\\\\\\\\d{1,2}\\\\\\\\d{2})?\\\\\\\\b\",\"name\":\"comment log.date\"},{\"match\":\"\\\\\\\\b([0-9a-fA-F]{40}|[0-9a-fA-F]{10}|[0-9a-fA-F]{7})\\\\\\\\b\",\"name\":\"constant.language\"},{\"match\":\"\\\\\\\\b[0-9a-fA-F]{8}[-]?([0-9a-fA-F]{4}[-]?){3}[0-9a-fA-F]{12}\\\\\\\\b\",\"name\":\"constant.language log.constant\"},{\"match\":\"\\\\\\\\b([0-9a-fA-F]{2,}[:-])+[0-9a-fA-F]{2,}+\\\\\\\\b\",\"name\":\"constant.language log.constant\"},{\"match\":\"\\\\\\\\b([0-9]+|true|false|null)\\\\\\\\b\",\"name\":\"constant.language log.constant\"},{\"match\":\"\\\\\\\\b(0x[a-fA-F0-9]+)\\\\\\\\b\",\"name\":\"constant.language log.constant\"},{\"match\":\"\\\\\"[^\\\\\"]*\\\\\"\",\"name\":\"string log.string\"},{\"match\":\"(?<![\\\\\\\\w])'[^']*'\",\"name\":\"string log.string\"},{\"match\":\"\\\\\\\\b([a-zA-Z.]*Exception)\\\\\\\\b\",\"name\":\"string.regexp, emphasis log.exceptiontype\"},{\"begin\":\"^[\\\\\\\\t ]*at[\\\\\\\\t ]\",\"end\":\"$\",\"name\":\"string.key, emphasis log.exception\"},{\"match\":\"\\\\\\\\b[a-z]+://\\\\\\\\S+\\\\\\\\b/?\",\"name\":\"constant.language log.constant\"},{\"match\":\"(?<![\\\\\\\\w/\\\\\\\\\\\\\\\\])([\\\\\\\\w-]+\\\\\\\\.)+([\\\\\\\\w-])+(?![\\\\\\\\w/\\\\\\\\\\\\\\\\])\",\"name\":\"constant.language log.constant\"}],\"scopeName\":\"text.log\"}`)),e=[a];export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Cc6zh8Uk.js",
    "content": "import{a1 as l}from\"./CU_MfyYc.js\";/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var i=Object.defineProperty,c=Object.getOwnPropertyDescriptor,u=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,d=(n,e,r,o)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let t of u(e))!s.call(n,t)&&t!==r&&i(n,t,{get:()=>e[t],enumerable:!(o=c(e,t))||o.enumerable});return n},m=(n,e,r)=>(d(n,e,\"default\"),r),a={};m(a,l);var p={comments:{lineComment:\"#\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],folding:{offSide:!0},onEnterRules:[{beforeText:/:\\s*$/,action:{indentAction:a.languages.IndentAction.Indent}}]},f={tokenPostfix:\".yaml\",brackets:[{token:\"delimiter.bracket\",open:\"{\",close:\"}\"},{token:\"delimiter.square\",open:\"[\",close:\"]\"}],keywords:[\"true\",\"True\",\"TRUE\",\"false\",\"False\",\"FALSE\",\"null\",\"Null\",\"Null\",\"~\"],numberInteger:/(?:0|[+-]?[0-9]+)/,numberFloat:/(?:0|[+-]?[0-9]+)(?:\\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,numberOctal:/0o[0-7]+/,numberHex:/0x[0-9a-fA-F]+/,numberInfinity:/[+-]?\\.(?:inf|Inf|INF)/,numberNaN:/\\.(?:nan|Nan|NAN)/,numberDate:/\\d{4}-\\d\\d-\\d\\d([Tt ]\\d\\d:\\d\\d:\\d\\d(\\.\\d+)?(( ?[+-]\\d\\d?(:\\d\\d)?)|Z)?)?/,escapes:/\\\\(?:[btnfr\\\\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,tokenizer:{root:[{include:\"@whitespace\"},{include:\"@comment\"},[/%[^ ]+.*$/,\"meta.directive\"],[/---/,\"operators.directivesEnd\"],[/\\.{3}/,\"operators.documentEnd\"],[/[-?:](?= )/,\"operators\"],{include:\"@anchor\"},{include:\"@tagHandle\"},{include:\"@flowCollections\"},{include:\"@blockStyle\"},[/@numberInteger(?![ \\t]*\\S+)/,\"number\"],[/@numberFloat(?![ \\t]*\\S+)/,\"number.float\"],[/@numberOctal(?![ \\t]*\\S+)/,\"number.octal\"],[/@numberHex(?![ \\t]*\\S+)/,\"number.hex\"],[/@numberInfinity(?![ \\t]*\\S+)/,\"number.infinity\"],[/@numberNaN(?![ \\t]*\\S+)/,\"number.nan\"],[/@numberDate(?![ \\t]*\\S+)/,\"number.date\"],[/(\".*?\"|'.*?'|[^#'\"]*?)([ \\t]*)(:)( |$)/,[\"type\",\"white\",\"operators\",\"white\"]],{include:\"@flowScalars\"},[/.+?(?=(\\s+#|$))/,{cases:{\"@keywords\":\"keyword\",\"@default\":\"string\"}}]],object:[{include:\"@whitespace\"},{include:\"@comment\"},[/\\}/,\"@brackets\",\"@pop\"],[/,/,\"delimiter.comma\"],[/:(?= )/,\"operators\"],[/(?:\".*?\"|'.*?'|[^,\\{\\[]+?)(?=: )/,\"type\"],{include:\"@flowCollections\"},{include:\"@flowScalars\"},{include:\"@tagHandle\"},{include:\"@anchor\"},{include:\"@flowNumber\"},[/[^\\},]+/,{cases:{\"@keywords\":\"keyword\",\"@default\":\"string\"}}]],array:[{include:\"@whitespace\"},{include:\"@comment\"},[/\\]/,\"@brackets\",\"@pop\"],[/,/,\"delimiter.comma\"],{include:\"@flowCollections\"},{include:\"@flowScalars\"},{include:\"@tagHandle\"},{include:\"@anchor\"},{include:\"@flowNumber\"},[/[^\\],]+/,{cases:{\"@keywords\":\"keyword\",\"@default\":\"string\"}}]],multiString:[[/^( +).+$/,\"string\",\"@multiStringContinued.$1\"]],multiStringContinued:[[/^( *).+$/,{cases:{\"$1==$S2\":\"string\",\"@default\":{token:\"@rematch\",next:\"@popall\"}}}]],whitespace:[[/[ \\t\\r\\n]+/,\"white\"]],comment:[[/#.*$/,\"comment\"]],flowCollections:[[/\\[/,\"@brackets\",\"@array\"],[/\\{/,\"@brackets\",\"@object\"]],flowScalars:[[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/'([^'\\\\]|\\\\.)*$/,\"string.invalid\"],[/'[^']*'/,\"string\"],[/\"/,\"string\",\"@doubleQuotedString\"]],doubleQuotedString:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string\",\"@pop\"]],blockStyle:[[/[>|][0-9]*[+-]?$/,\"operators\",\"@multiString\"]],flowNumber:[[/@numberInteger(?=[ \\t]*[,\\]\\}])/,\"number\"],[/@numberFloat(?=[ \\t]*[,\\]\\}])/,\"number.float\"],[/@numberOctal(?=[ \\t]*[,\\]\\}])/,\"number.octal\"],[/@numberHex(?=[ \\t]*[,\\]\\}])/,\"number.hex\"],[/@numberInfinity(?=[ \\t]*[,\\]\\}])/,\"number.infinity\"],[/@numberNaN(?=[ \\t]*[,\\]\\}])/,\"number.nan\"],[/@numberDate(?=[ \\t]*[,\\]\\}])/,\"number.date\"]],tagHandle:[[/\\![^ ]*/,\"tag\"]],anchor:[[/[&*][^ ]+/,\"namespace\"]]}};export{p as conf,f as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/CdO5JTpU.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Visual Basic\",\"name\":\"vb\",\"patterns\":[{\"match\":\"\\\\\\\\n\",\"name\":\"meta.ending-space\"},{\"include\":\"#round-brackets\"},{\"begin\":\"^(?=\\\\\\\\t)\",\"end\":\"(?=[^\\\\\\\\t])\",\"name\":\"meta.leading-space\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"meta.odd-tab.tabs\"},\"2\":{\"name\":\"meta.even-tab.tabs\"}},\"match\":\"(\\\\\\\\t)(\\\\\\\\t)?\"}]},{\"begin\":\"^(?= )\",\"end\":\"(?=[^ ])\",\"name\":\"meta.leading-space\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"meta.odd-tab.spaces\"},\"2\":{\"name\":\"meta.even-tab.spaces\"}},\"match\":\"(  )(  )?\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.function.asp\"},\"2\":{\"name\":\"entity.name.function.asp\"},\"3\":{\"name\":\"punctuation.definition.parameters.asp\"},\"4\":{\"name\":\"variable.parameter.function.asp\"},\"5\":{\"name\":\"punctuation.definition.parameters.asp\"}},\"match\":\"^\\\\\\\\s*((?i:function|sub))\\\\\\\\s*([a-zA-Z_]\\\\\\\\w*)\\\\\\\\s*(\\\\\\\\()([^)]*)(\\\\\\\\)).*\\\\\\\\n?\",\"name\":\"meta.function.asp\"},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=')\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.asp\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.asp\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.apostrophe.asp\"}]},{\"match\":\"(?i:\\\\\\\\b(If|Then|Else|ElseIf|Else If|End If|While|Wend|For|To|Each|Case|Select|End Select|Return|Continue|Do|Until|Loop|Next|With|Exit Do|Exit For|Exit Function|Exit Property|Exit Sub|IIf)\\\\\\\\b)\",\"name\":\"keyword.control.asp\"},{\"match\":\"(?i:\\\\\\\\b(Mod|And|Not|Or|Xor|as)\\\\\\\\b)\",\"name\":\"keyword.operator.asp\"},{\"captures\":{\"1\":{\"name\":\"storage.type.asp\"},\"2\":{\"name\":\"variable.other.bfeac.asp\"},\"3\":{\"name\":\"meta.separator.comma.asp\"}},\"match\":\"(?i:(dim)\\\\\\\\s*(?:(\\\\\\\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\\\\\\\b)\\\\\\\\s*(,?)))\",\"name\":\"variable.other.dim.asp\"},{\"match\":\"(?i:\\\\\\\\s*\\\\\\\\b(Call|Class|Const|Dim|Redim|Function|Sub|Private Sub|Public Sub|End Sub|End Function|End Class|End Property|Public Property|Private Property|Set|Let|Get|New|Randomize|Option Explicit|On Error Resume Next|On Error GoTo)\\\\\\\\b\\\\\\\\s*)\",\"name\":\"storage.type.asp\"},{\"match\":\"(?i:\\\\\\\\b(Private|Public|Default)\\\\\\\\b)\",\"name\":\"storage.modifier.asp\"},{\"match\":\"(?i:\\\\\\\\s*\\\\\\\\b(Empty|False|Nothing|Null|True)\\\\\\\\b)\",\"name\":\"constant.language.asp\"},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.asp\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.asp\"}},\"name\":\"string.quoted.double.asp\",\"patterns\":[{\"match\":\"\\\\\"\\\\\"\",\"name\":\"constant.character.escape.apostrophe.asp\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.asp\"}},\"match\":\"(\\\\\\\\$)[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\\\\\\\b\\\\\\\\s*\",\"name\":\"variable.other.asp\"},{\"match\":\"(?i:\\\\\\\\b(Application|ObjectContext|Request|Response|Server|Session)\\\\\\\\b)\",\"name\":\"support.class.asp\"},{\"match\":\"(?i:\\\\\\\\b(Contents|StaticObjects|ClientCertificate|Cookies|Form|QueryString|ServerVariables)\\\\\\\\b)\",\"name\":\"support.class.collection.asp\"},{\"match\":\"(?i:\\\\\\\\b(TotalBytes|Buffer|CacheControl|Charset|ContentType|Expires|ExpiresAbsolute|IsClientConnected|PICS|Status|ScriptTimeout|CodePage|LCID|SessionID|Timeout)\\\\\\\\b)\",\"name\":\"support.constant.asp\"},{\"match\":\"(?i:\\\\\\\\b(Lock|Unlock|SetAbort|SetComplete|BinaryRead|AddHeader|AppendToLog|BinaryWrite|Clear|End|Flush|Redirect|Write|CreateObject|HTMLEncode|MapPath|URLEncode|Abandon|Convert|Regex)\\\\\\\\b)\",\"name\":\"support.function.asp\"},{\"match\":\"(?i:\\\\\\\\b(Application_OnEnd|Application_OnStart|OnTransactionAbort|OnTransactionCommit|Session_OnEnd|Session_OnStart)\\\\\\\\b)\",\"name\":\"support.function.event.asp\"},{\"match\":\"(?i:(?<=as )(\\\\\\\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\\\\\\\b))\",\"name\":\"support.type.vb.asp\"},{\"match\":\"(?i:\\\\\\\\b(Array|Add|Asc|Atn|CBool|CByte|CCur|CDate|CDbl|Chr|CInt|CLng|Conversions|Cos|CreateObject|CSng|CStr|Date|DateAdd|DateDiff|DatePart|DateSerial|DateValue|Day|Derived|Math|Escape|Eval|Exists|Exp|Filter|FormatCurrency|FormatDateTime|FormatNumber|FormatPercent|GetLocale|GetObject|GetRef|Hex|Hour|InputBox|InStr|InStrRev|Int|Fix|IsArray|IsDate|IsEmpty|IsNull|IsNumeric|IsObject|Item|Items|Join|Keys|LBound|LCase|Left|Len|LoadPicture|Log|LTrim|RTrim|Trim|Maths|Mid|Minute|Month|MonthName|MsgBox|Now|Oct|Remove|RemoveAll|Replace|RGB|Right|Rnd|Round|ScriptEngine|ScriptEngineBuildVersion|ScriptEngineMajorVersion|ScriptEngineMinorVersion|Second|SetLocale|Sgn|Sin|Space|Split|Sqr|StrComp|String|StrReverse|Tan|Time|Timer|TimeSerial|TimeValue|TypeName|UBound|UCase|Unescape|VarType|Weekday|WeekdayName|Year)\\\\\\\\b)\",\"name\":\"support.function.vb.asp\"},{\"match\":\"-?\\\\\\\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\\\\\\\.?[0-9]*)|(\\\\\\\\.[0-9]+))((e|E)(\\\\\\\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\\\\\\\b\",\"name\":\"constant.numeric.asp\"},{\"match\":\"(?i:\\\\\\\\b(vbtrue|vbfalse|vbcr|vbcrlf|vbformfeed|vblf|vbnewline|vbnullchar|vbnullstring|int32|vbtab|vbverticaltab|vbbinarycompare|vbtextcomparevbsunday|vbmonday|vbtuesday|vbwednesday|vbthursday|vbfriday|vbsaturday|vbusesystemdayofweek|vbfirstjan1|vbfirstfourdays|vbfirstfullweek|vbgeneraldate|vblongdate|vbshortdate|vblongtime|vbshorttime|vbobjecterror|vbEmpty|vbNull|vbInteger|vbLong|vbSingle|vbDouble|vbCurrency|vbDate|vbString|vbObject|vbError|vbBoolean|vbVariant|vbDataObject|vbDecimal|vbByte|vbArray)\\\\\\\\b)\",\"name\":\"support.type.vb.asp\"},{\"captures\":{\"1\":{\"name\":\"entity.name.function.asp\"}},\"match\":\"(?i:(\\\\\\\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\\\\\\\b)(?=\\\\\\\\(\\\\\\\\)?))\",\"name\":\"support.function.asp\"},{\"match\":\"(?i:((?<=(\\\\\\\\+|=|-|\\\\\\\\&|\\\\\\\\\\\\\\\\|/|<|>|\\\\\\\\(|,))\\\\\\\\s*\\\\\\\\b([a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?)\\\\\\\\b(?!(\\\\\\\\(|\\\\\\\\.))|\\\\\\\\b([a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?)\\\\\\\\b(?=\\\\\\\\s*(\\\\\\\\+|=|-|\\\\\\\\&|\\\\\\\\\\\\\\\\|/|<|>|\\\\\\\\(|\\\\\\\\)))))\",\"name\":\"variable.other.asp\"},{\"match\":\"!|\\\\\\\\$|%|&|\\\\\\\\*|\\\\\\\\-\\\\\\\\-|\\\\\\\\-|\\\\\\\\+\\\\\\\\+|\\\\\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\?\\\\\\\\:|\\\\\\\\*=|/=|%=|\\\\\\\\+=|\\\\\\\\-=|&=|\\\\\\\\^=|\\\\\\\\b(in|instanceof|new|delete|typeof|void)\\\\\\\\b\",\"name\":\"keyword.operator.js\"}],\"repository\":{\"round-brackets\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.round-brackets.begin.asp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.round-brackets.end.asp\"}},\"name\":\"meta.round-brackets\",\"patterns\":[{\"include\":\"source.asp.vb.net\"}]}},\"scopeName\":\"source.asp.vb.net\",\"aliases\":[\"cmd\"]}`)),a=[e];export{a as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Cf8iN4DR.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Splunk Query Language\",\"fileTypes\":[\"splunk\",\"spl\"],\"name\":\"splunk\",\"patterns\":[{\"comment\":\"Splunk Built-in functions\",\"match\":\"(?<=(\\\\\\\\||\\\\\\\\[))([\\\\\\\\s]*)\\\\\\\\b(abstract|accum|addcoltotals|addinfo|addtotals|analyzefields|anomalies|anomalousvalue|append|appendcols|appendpipe|arules|associate|audit|autoregress|bucket|bucketdir|chart|cluster|collect|concurrency|contingency|convert|correlate|crawl|datamodel|dbinspect|dbxquery|dbxlookup|dedup|delete|delta|diff|dispatch|erex|eval|eventcount|eventstats|extract|fieldformat|fields|fieldsummary|file|filldown|fillnull|findtypes|folderize|foreach|format|from|gauge|gentimes|geostats|head|highlight|history|input|inputcsv|inputlookup|iplocation|join|kmeans|kvform|loadjob|localize|localop|lookup|makecontinuous|makemv|makeresults|map|metadata|metasearch|multikv|multisearch|mvcombine|mvexpand|nomv|outlier|outputcsv|outputlookup|outputtext|overlap|pivot|predict|rangemap|rare|regex|relevancy|reltime|rename|replace|rest|return|reverse|rex|rtorder|run|savedsearch|script|scrub|search|searchtxn|selfjoin|sendemail|set|setfields|sichart|sirare|sistats|sitimechart|sitop|sort|spath|stats|strcat|streamstats|table|tags|tail|timechart|top|transaction|transpose|trendline|tscollect|tstats|typeahead|typelearner|typer|uniq|untable|where|x11|xmlkv|xmlunescape|xpath|xyseries)\\\\\\\\b(?=[\\\\\\\\s])\",\"name\":\"support.class.splunk_search\"},{\"comment\":\"Splunk Eval functions\",\"match\":\"\\\\\\\\b(abs|acos|acosh|asin|asinh|atan|atan2|atanh|case|cidrmatch|ceiling|coalesce|commands|cos|cosh|exact|exp|floor|hypot|if|in|isbool|isint|isnotnull|isnull|isnum|isstr|len|like|ln|log|lower|ltrim|match|max|md5|min|mvappend|mvcount|mvdedup|mvfilter|mvfind|mvindex|mvjoin|mvrange|mvsort|mvzip|now|null|nullif|pi|pow|printf|random|relative_time|replace|round|rtrim|searchmatch|sha1|sha256|sha512|sigfig|sin|sinh|spath|split|sqrt|strftime|strptime|substr|tan|tanh|time|tonumber|tostring|trim|typeof|upper|urldecode|validate)(?=\\\\\\\\()\\\\\\\\b\",\"name\":\"support.function.splunk_search\"},{\"comment\":\"Splunk Transforming functions\",\"match\":\"\\\\\\\\b(avg|count|distinct_count|estdc|estdc_error|eval|max|mean|median|min|mode|percentile|range|stdev|stdevp|sum|sumsq|var|varp|first|last|list|values|earliest|earliest_time|latest|latest_time|per_day|per_hour|per_minute|per_second|rate)\\\\\\\\b\",\"name\":\"support.function.splunk_search\"},{\"comment\":\"Splunk Macro Names\",\"match\":\"(?<=\\\\\\\\`)[\\\\\\\\w]+(?=\\\\\\\\(|\\\\\\\\`)\",\"name\":\"entity.name.function.splunk_search\"},{\"comment\":\"Digits\",\"match\":\"\\\\\\\\b(\\\\\\\\d+)\\\\\\\\b\",\"name\":\"constant.numeric.splunk_search\"},{\"comment\":\"Escape Characters\",\"match\":\"(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\|\\\\\\\\\\\\\\\\\\\\\\\\||\\\\\\\\\\\\\\\\\\\\\\\\*|\\\\\\\\\\\\\\\\\\\\\\\\=)\",\"name\":\"contant.character.escape.splunk_search\"},{\"comment\":\"Splunk Operators\",\"match\":\"(\\\\\\\\|,)\",\"name\":\"keyword.operator.splunk_search\"},{\"comment\":\"Splunk Language Constants\",\"match\":\"(?i)\\\\\\\\b(as|by|or|and|over|where|output|outputnew)\\\\\\\\b|(?-i)\\\\\\\\b(NOT|true|false)\\\\\\\\b\",\"name\":\"constant.language.splunk_search\"},{\"comment\":\"Splunk Macro Parameters\",\"match\":\"(?<=\\\\\\\\(|,|[^=]\\\\\\\\s{300})([^\\\\\\\\(\\\\\\\\)\\\\\\\\\\\\\",=]+)(?=\\\\\\\\)|,)\",\"name\":\"variable.parameter.splunk_search\"},{\"comment\":\"Splunk Variables\",\"match\":\"([\\\\\\\\w\\\\\\\\.]+)(\\\\\\\\[\\\\\\\\]|\\\\\\\\{\\\\\\\\})?([\\\\\\\\s]*)(?=\\\\\\\\=)\",\"name\":\"variable.splunk_search\"},{\"comment\":\"Comparison or assignment\",\"match\":\"=\",\"name\":\"keyword.operator.splunk_search\"},{\"begin\":\"(?<!\\\\\\\\\\\\\\\\)\\\\\"\",\"end\":\"(?<!\\\\\\\\\\\\\\\\)\\\\\"\",\"name\":\"string.quoted.double.splunk_search\"},{\"begin\":\"(?<!\\\\\\\\\\\\\\\\)\\'\",\"end\":\"(?<!\\\\\\\\\\\\\\\\)\\'\",\"name\":\"string.quoted.single.splunk_search\"},{\"begin\":\"query=\\\\\\\\\\\\\"\",\"end\":\"(?<!\\\\\\\\\\\\\\\\)\\\\\"\",\"name\":\"meta.embedded.block.sql\"},{\"begin\":\"(?<!\\\\\\\\\\\\\\\\)```\",\"end\":\"(?<!\\\\\\\\\\\\\\\\)```\",\"name\":\"comment.block.splunk_search\"},{\"begin\":\"`comment\\\\\\\\(\",\"end\":\"\\\\\\\\)`\",\"name\":\"comment.block.splunk_search\"}],\"scopeName\":\"source.splunk_search\",\"aliases\":[\"spl\"]}')),a=[e];export{a as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CfBo882q.js",
    "content": "import{Q as s,Y as a,C as i,g as u,j as e,G as o}from\"./CU_MfyYc.js\";const l={class:\"antialiased bg-white dark:bg-black dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-black\"},c={class:\"max-w-520px text-center\"},d=[\"textContent\"],p=[\"textContent\"],f={__name:\"error-500\",props:{appName:{type:String,default:\"Nuxt\"},version:{type:String,default:\"\"},statusCode:{type:Number,default:500},statusMessage:{type:String,default:\"Server error\"},description:{type:String,default:\"This page is temporarily unavailable.\"}},setup(t){const r=t;return a({title:`${r.statusCode} - ${r.statusMessage} | ${r.appName}`,script:[{children:`!function(){const e=document.createElement(\"link\").relList;if(!(e&&e.supports&&e.supports(\"modulepreload\"))){for(const e of document.querySelectorAll('link[rel=\"modulepreload\"]'))r(e);new MutationObserver((e=>{for(const o of e)if(\"childList\"===o.type)for(const e of o.addedNodes)\"LINK\"===e.tagName&&\"modulepreload\"===e.rel&&r(e)})).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),\"use-credentials\"===e.crossOrigin?r.credentials=\"include\":\"anonymous\"===e.crossOrigin?r.credentials=\"omit\":r.credentials=\"same-origin\",r}(e);fetch(e.href,r)}}();`}],style:[{children:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:\"\"}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1{font-size:inherit;font-weight:inherit}h1,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(g,n)=>(u(),i(\"div\",l,[n[0]||(n[0]=e(\"div\",{class:\"-bottom-1/2 fixed h-1/2 left-0 right-0 spotlight\"},null,-1)),e(\"div\",c,[e(\"h1\",{class:\"font-medium mb-8 sm:text-10xl text-8xl\",textContent:o(t.statusCode)},null,8,d),e(\"p\",{class:\"font-light leading-tight mb-16 px-8 sm:px-0 sm:text-4xl text-xl\",textContent:o(t.description)},null,8,p)])]))}},m=s(f,[[\"__scopeId\",\"data-v-f7ad9679\"]]);export{m as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CfQXZHmo.js",
    "content": "const t=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.background\":\"#E7DBA0\",\"activityBar.foreground\":\"#545464\",\"activityBarBadge.background\":\"#5A7785\",\"activityBarBadge.foreground\":\"#545464\",\"badge.background\":\"#E7DBA0\",\"button.background\":\"#E7DBA0\",\"button.foreground\":\"#43436C\",\"button.secondaryBackground\":\"#C7D7E0\",\"button.secondaryForeground\":\"#545464\",\"checkbox.border\":\"#C7D7E0\",\"debugToolBar.background\":\"#D5CEA3\",\"descriptionForeground\":\"#545464\",\"diffEditor.insertedTextBackground\":\"#B7D0AE80\",\"dropdown.background\":\"#D5CEA3\",\"dropdown.border\":\"#D5CEA3\",\"editor.background\":\"#F2ECBC\",\"editor.findMatchBackground\":\"#B5CBD2\",\"editor.findMatchBorder\":\"#E98A00\",\"editor.findMatchHighlightBackground\":\"#B5CBD280\",\"editor.foreground\":\"#545464\",\"editor.lineHighlightBackground\":\"#E4D794\",\"editor.selectionBackground\":\"#C7D7E0\",\"editor.selectionHighlightBackground\":\"#E4D79480\",\"editor.selectionHighlightBorder\":\"#766B90\",\"editor.wordHighlightBackground\":\"#E4D7944D\",\"editor.wordHighlightBorder\":\"#766B90\",\"editor.wordHighlightStrongBackground\":\"#E4D7944D\",\"editor.wordHighlightStrongBorder\":\"#766B90\",\"editorBracketHighlight.foreground1\":\"#624C83\",\"editorBracketHighlight.foreground2\":\"#CC6D00\",\"editorBracketHighlight.foreground3\":\"#4D699B\",\"editorBracketHighlight.foreground4\":\"#B35B79\",\"editorBracketHighlight.foreground5\":\"#77713F\",\"editorBracketHighlight.foreground6\":\"#597B75\",\"editorBracketHighlight.unexpectedBracket.foreground\":\"#D9A594\",\"editorBracketMatch.background\":\"#D5CEA3\",\"editorBracketMatch.border\":\"#766B90\",\"editorBracketPairGuide.activeBackground1\":\"#624C83\",\"editorBracketPairGuide.activeBackground2\":\"#CC6D00\",\"editorBracketPairGuide.activeBackground3\":\"#4D699B\",\"editorBracketPairGuide.activeBackground4\":\"#B35B79\",\"editorBracketPairGuide.activeBackground5\":\"#77713F\",\"editorBracketPairGuide.activeBackground6\":\"#597B75\",\"editorCursor.background\":\"#F2ECBC\",\"editorCursor.foreground\":\"#545464\",\"editorError.foreground\":\"#E82424\",\"editorGroup.border\":\"#D5CEA3\",\"editorGroupHeader.tabsBackground\":\"#D5CEA3\",\"editorGutter.addedBackground\":\"#6E915F\",\"editorGutter.deletedBackground\":\"#D7474B\",\"editorGutter.modifiedBackground\":\"#DE9800\",\"editorHoverWidget.background\":\"#F2ECBC\",\"editorHoverWidget.border\":\"#E7DBA0\",\"editorHoverWidget.highlightForeground\":\"#5A7785\",\"editorIndentGuide.activeBackground1\":\"#E4D794\",\"editorIndentGuide.background1\":\"#E7DBA0\",\"editorInlayHint.background\":\"#F2ECBC\",\"editorInlayHint.foreground\":\"#716E61\",\"editorLineNumber.activeForeground\":\"#CC6D00\",\"editorLineNumber.foreground\":\"#766B90\",\"editorMarkerNavigation.background\":\"#E4D794\",\"editorRuler.foreground\":\"#ff0000\",\"editorSuggestWidget.background\":\"#C7D7E0\",\"editorSuggestWidget.border\":\"#C7D7E0\",\"editorSuggestWidget.selectedBackground\":\"#B5CBD2\",\"editorWarning.foreground\":\"#E98A00\",\"editorWhitespace.foreground\":\"#F2ECBC\",\"editorWidget.background\":\"#F2ECBC\",\"focusBorder\":\"#C7D7E0\",\"foreground\":\"#545464\",\"gitDecoration.ignoredResourceForeground\":\"#716E61\",\"input.background\":\"#D5CEA3\",\"list.activeSelectionBackground\":\"#E4D794\",\"list.activeSelectionForeground\":\"#545464\",\"list.focusBackground\":\"#E7DBA0\",\"list.focusForeground\":\"#545464\",\"list.highlightForeground\":\"#4D699B\",\"list.hoverBackground\":\"#E4D794\",\"list.hoverForeground\":\"#545464\",\"list.inactiveSelectionBackground\":\"#E7DBA0\",\"list.inactiveSelectionForeground\":\"#545464\",\"list.warningForeground\":\"#E98A00\",\"menu.background\":\"#E4D794\",\"menu.border\":\"#D5CEA3\",\"menu.foreground\":\"#545464\",\"menu.selectionBackground\":\"#D5CEA3\",\"menu.selectionForeground\":\"#545464\",\"menu.separatorBackground\":\"#766B90\",\"menubar.selectionBackground\":\"#D5CEA3\",\"menubar.selectionForeground\":\"#545464\",\"minimapGutter.addedBackground\":\"#6E915F\",\"minimapGutter.deletedBackground\":\"#D7474B\",\"minimapGutter.modifiedBackground\":\"#DE9800\",\"panel.border\":\"#D5CEA3\",\"panelSectionHeader.background\":\"#F2ECBC\",\"peekView.border\":\"#766B90\",\"peekViewEditor.background\":\"#E7DBA0\",\"peekViewEditor.matchHighlightBackground\":\"#B5CBD2\",\"peekViewResult.background\":\"#E4D794\",\"scrollbar.shadow\":\"#E4D794\",\"scrollbarSlider.activeBackground\":\"#E7DBA080\",\"scrollbarSlider.background\":\"#766B9066\",\"scrollbarSlider.hoverBackground\":\"#766B9080\",\"settings.focusedRowBackground\":\"#E4D794\",\"settings.headerForeground\":\"#545464\",\"sideBar.background\":\"#F2ECBC\",\"sideBar.border\":\"#D5CEA3\",\"sideBar.foreground\":\"#545464\",\"sideBarSectionHeader.background\":\"#E4D794\",\"sideBarSectionHeader.foreground\":\"#545464\",\"statusBar.background\":\"#D5CEA3\",\"statusBar.debuggingBackground\":\"#E82424\",\"statusBar.debuggingBorder\":\"#624C83\",\"statusBar.debuggingForeground\":\"#545464\",\"statusBar.foreground\":\"#43436C\",\"statusBar.noFolderBackground\":\"#F2ECBC\",\"statusBarItem.hoverBackground\":\"#E4D794\",\"statusBarItem.remoteBackground\":\"#B5CBD2\",\"statusBarItem.remoteForeground\":\"#545464\",\"tab.activeBackground\":\"#E7DBA0\",\"tab.activeForeground\":\"#4D699B\",\"tab.border\":\"#E7DBA0\",\"tab.hoverBackground\":\"#E4D794\",\"tab.inactiveBackground\":\"#E5DDB0\",\"tab.unfocusedHoverBackground\":\"#F2ECBC\",\"terminal.ansiBlack\":\"#1F1F28\",\"terminal.ansiBlue\":\"#4D699B\",\"terminal.ansiBrightBlack\":\"#8A8980\",\"terminal.ansiBrightBlue\":\"#6693BF\",\"terminal.ansiBrightCyan\":\"#5E857A\",\"terminal.ansiBrightGreen\":\"#6E915F\",\"terminal.ansiBrightMagenta\":\"#624C83\",\"terminal.ansiBrightRed\":\"#D7474B\",\"terminal.ansiBrightWhite\":\"#43436C\",\"terminal.ansiBrightYellow\":\"#836F4A\",\"terminal.ansiCyan\":\"#597B75\",\"terminal.ansiGreen\":\"#6F894E\",\"terminal.ansiMagenta\":\"#B35B79\",\"terminal.ansiRed\":\"#C84053\",\"terminal.ansiWhite\":\"#545464\",\"terminal.ansiYellow\":\"#77713F\",\"terminal.background\":\"#F2ECBC\",\"terminal.border\":\"#D5CEA3\",\"terminal.foreground\":\"#545464\",\"terminal.selectionBackground\":\"#C7D7E0\",\"textBlockQuote.background\":\"#F2ECBC\",\"textBlockQuote.border\":\"#D5CEA3\",\"textLink.foreground\":\"#5E857A\",\"textPreformat.foreground\":\"#E98A00\",\"titleBar.activeBackground\":\"#E4D794\",\"titleBar.activeForeground\":\"#545464\",\"titleBar.inactiveBackground\":\"#F2ECBC\",\"titleBar.inactiveForeground\":\"#545464\",\"walkThrough.embeddedEditorBackground\":\"#F2ECBC\"},\"displayName\":\"Kanagawa Lotus\",\"name\":\"kanagawa-lotus\",\"semanticHighlighting\":true,\"semanticTokenColors\":{\"arithmetic\":\"#836F4A\",\"function\":\"#4D699B\",\"keyword.controlFlow\":{\"fontStyle\":\"bold\",\"foreground\":\"#624C83\"},\"macro\":\"#C84053\",\"method\":\"#6693BF\",\"operator\":\"#836F4A\",\"parameter\":\"#5D57A3\",\"parameter.declaration\":\"#5D57A3\",\"parameter.definition\":\"#5D57A3\",\"variable\":\"#545464\",\"variable.readonly\":\"#545464\",\"variable.readonly.defaultLibrary\":\"#545464\",\"variable.readonly.local\":\"#545464\"},\"tokenColors\":[{\"scope\":[\"comment\",\"punctuation.definition.comment\"],\"settings\":{\"foreground\":\"#716E61\"}},{\"scope\":[\"variable\",\"string constant.other.placeholder\"],\"settings\":{\"foreground\":\"#545464\"}},{\"scope\":[\"constant.other.color\"],\"settings\":{\"foreground\":\"#CC6D00\"}},{\"scope\":[\"invalid\",\"invalid.illegal\"],\"settings\":{\"foreground\":\"#E82424\"}},{\"scope\":[\"storage.type\"],\"settings\":{\"foreground\":\"#624C83\"}},{\"scope\":[\"storage.modifier\"],\"settings\":{\"foreground\":\"#624C83\"}},{\"scope\":[\"keyword.control.flow\",\"keyword.control.conditional\",\"keyword.control.loop\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#624C83\"}},{\"scope\":[\"keyword.control\",\"constant.other.color\",\"meta.tag\",\"keyword.other.template\",\"keyword.other.substitution\",\"keyword.other\"],\"settings\":{\"foreground\":\"#624C83\"}},{\"scope\":[\"keyword.other.definition.ini\"],\"settings\":{\"foreground\":\"#CC6D00\"}},{\"scope\":[\"keyword.control.trycatch\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#D9A594\"}},{\"scope\":[\"keyword.other.unit\",\"keyword.operator\"],\"settings\":{\"foreground\":\"#77713F\"}},{\"scope\":[\"punctuation\",\"punctuation.definition.tag\",\"punctuation.separator.inheritance.php\",\"punctuation.definition.tag.html\",\"punctuation.definition.tag.begin.html\",\"punctuation.definition.tag.end.html\",\"punctuation.section.embedded\",\"meta.brace\",\"keyword.operator.type.annotation\",\"keyword.operator.namespace\"],\"settings\":{\"foreground\":\"#4E8CA2\"}},{\"scope\":[\"entity.name.tag\",\"meta.tag.sgml\"],\"settings\":{\"foreground\":\"#77713F\"}},{\"scope\":[\"entity.name.function\",\"meta.function-call\",\"variable.function\",\"support.function\"],\"settings\":{\"foreground\":\"#4D699B\"}},{\"scope\":[\"keyword.other.special-method\"],\"settings\":{\"foreground\":\"#6693BF\"}},{\"scope\":[\"entity.name.function.macro\"],\"settings\":{\"foreground\":\"#C84053\"}},{\"scope\":[\"meta.block variable.other\"],\"settings\":{\"foreground\":\"#545464\"}},{\"scope\":[\"variable.other.enummember\"],\"settings\":{\"foreground\":\"#CC6D00\"}},{\"scope\":[\"support.other.variable\"],\"settings\":{\"foreground\":\"#545464\"}},{\"scope\":[\"string.other.link\"],\"settings\":{\"foreground\":\"#6693BF\"}},{\"scope\":[\"constant.numeric\",\"constant.language\",\"support.constant\",\"constant.character\",\"constant.escape\"],\"settings\":{\"foreground\":\"#CC6D00\"}},{\"scope\":[\"constant.language.boolean\"],\"settings\":{\"foreground\":\"#CC6D00\"}},{\"scope\":[\"constant.numeric\"],\"settings\":{\"foreground\":\"#B35B79\"}},{\"scope\":[\"string\",\"punctuation.definition.string\",\"constant.other.symbol\",\"constant.other.key\",\"entity.other.inherited-class\",\"markup.heading\",\"markup.inserted.git_gutter\",\"meta.group.braces.curly constant.other.object.key.js string.unquoted.label.js\",\"markup.inline.raw.string\"],\"settings\":{\"foreground\":\"#6F894E\"}},{\"scope\":[\"entity.name\",\"support.type\",\"support.class\",\"support.other.namespace.use.php\",\"meta.use.php\",\"support.other.namespace.php\",\"support.type.sys-types\"],\"settings\":{\"foreground\":\"#597B75\"}},{\"scope\":[\"entity.name.type.module\",\"entity.name.namespace\"],\"settings\":{\"foreground\":\"#77713F\"}},{\"scope\":[\"entity.name.import.go\"],\"settings\":{\"foreground\":\"#6F894E\"}},{\"scope\":[\"keyword.blade\"],\"settings\":{\"foreground\":\"#624C83\"}},{\"scope\":[\"variable.other.property\"],\"settings\":{\"foreground\":\"#77713F\"}},{\"scope\":[\"keyword.control.import\",\"keyword.import\",\"meta.import\"],\"settings\":{\"foreground\":\"#CC6D00\"}},{\"scope\":[\"source.css support.type.property-name\",\"source.sass support.type.property-name\",\"source.scss support.type.property-name\",\"source.less support.type.property-name\",\"source.stylus support.type.property-name\",\"source.postcss support.type.property-name\"],\"settings\":{\"foreground\":\"#597B75\"}},{\"scope\":[\"entity.name.module.js\",\"variable.import.parameter.js\",\"variable.other.class.js\"],\"settings\":{\"foreground\":\"#D9A594\"}},{\"scope\":[\"variable.language\"],\"settings\":{\"foreground\":\"#D9A594\"}},{\"scope\":[\"entity.name.method.js\"],\"settings\":{\"foreground\":\"#6693BF\"}},{\"scope\":[\"meta.class-method.js entity.name.function.js\",\"variable.function.constructor\"],\"settings\":{\"foreground\":\"#6693BF\"}},{\"scope\":[\"entity.other.attribute-name\"],\"settings\":{\"foreground\":\"#624C83\"}},{\"scope\":[\"entity.other.attribute-name.class\"],\"settings\":{\"foreground\":\"#77713F\"}},{\"scope\":[\"source.sass keyword.control\"],\"settings\":{\"foreground\":\"#6693BF\"}},{\"scope\":[\"markup.inserted\"],\"settings\":{\"foreground\":\"#6E915F\"}},{\"scope\":[\"markup.deleted\"],\"settings\":{\"foreground\":\"#D7474B\"}},{\"scope\":[\"markup.changed\"],\"settings\":{\"foreground\":\"#DE9800\"}},{\"scope\":[\"string.regexp\"],\"settings\":{\"foreground\":\"#836F4A\"}},{\"scope\":[\"constant.character.escape\"],\"settings\":{\"foreground\":\"#6693BF\"}},{\"scope\":[\"*url*\",\"*link*\",\"*uri*\"],\"settings\":{\"fontStyle\":\"underline\"}},{\"scope\":[\"tag.decorator.js entity.name.tag.js\",\"tag.decorator.js punctuation.definition.tag.js\"],\"settings\":{\"foreground\":\"#624C83\"}},{\"scope\":[\"source.js constant.other.object.key.js string.unquoted.label.js\"],\"settings\":{\"foreground\":\"#D9A594\"}},{\"scope\":[\"source.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#B35B79\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#77713F\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#CC6D00\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#D9A594\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#CC6D00\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#4D699B\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#B35B79\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#624C83\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#6F894E\"}},{\"scope\":[\"meta.tag JSXNested\",\"meta.jsx.children\",\"text.html\",\"text.log\"],\"settings\":{\"foreground\":\"#545464\"}},{\"scope\":[\"text.html.markdown\",\"punctuation.definition.list_item.markdown\"],\"settings\":{\"foreground\":\"#545464\"}},{\"scope\":[\"text.html.markdown markup.inline.raw.markdown\"],\"settings\":{\"foreground\":\"#624C83\"}},{\"scope\":[\"text.html.markdown markup.inline.raw.markdown punctuation.definition.raw.markdown\"],\"settings\":{\"foreground\":\"#624C83\"}},{\"scope\":[\"markdown.heading\",\"entity.name.section.markdown\",\"markup.heading.markdown\"],\"settings\":{\"foreground\":\"#4D699B\"}},{\"scope\":[\"markup.italic\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#C84053\"}},{\"scope\":[\"markup.bold\",\"markup.bold string\"],\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":[\"markup.bold markup.italic\",\"markup.italic markup.bold\",\"markup.quote markup.bold\",\"markup.bold markup.italic string\",\"markup.italic markup.bold string\",\"markup.quote markup.bold string\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#C84053\"}},{\"scope\":[\"markup.underline\"],\"settings\":{\"fontStyle\":\"underline\",\"foreground\":\"#6693BF\"}},{\"scope\":[\"markup.quote punctuation.definition.blockquote.markdown\"],\"settings\":{\"foreground\":\"#716E61\"}},{\"scope\":[\"markup.quote\"],\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":[\"string.other.link.title.markdown\"],\"settings\":{\"foreground\":\"#CC6D00\"}},{\"scope\":[\"string.other.link.description.title.markdown\"],\"settings\":{\"foreground\":\"#624C83\"}},{\"scope\":[\"constant.other.reference.link.markdown\"],\"settings\":{\"foreground\":\"#77713F\"}},{\"scope\":[\"markup.raw.block\"],\"settings\":{\"foreground\":\"#624C83\"}},{\"scope\":[\"markup.raw.block.fenced.markdown\"],\"settings\":{\"foreground\":\"#716E61\"}},{\"scope\":[\"punctuation.definition.fenced.markdown\"],\"settings\":{\"foreground\":\"#716E61\"}},{\"scope\":[\"markup.raw.block.fenced.markdown\",\"variable.language.fenced.markdown\",\"punctuation.section.class.end\"],\"settings\":{\"foreground\":\"#545464\"}},{\"scope\":[\"variable.language.fenced.markdown\"],\"settings\":{\"foreground\":\"#716E61\"}},{\"scope\":[\"meta.separator\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#4E8CA2\"}},{\"scope\":[\"markup.table\"],\"settings\":{\"foreground\":\"#545464\"}}],\"type\":\"light\"}'));export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CfnpWUYo.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#%\\^\\&\\*\\(\\)\\=\\$\\-\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{blockComment:[\"###\",\"###\"],lineComment:\"#\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],folding:{markers:{start:new RegExp(\"^\\\\s*#region\\\\b\"),end:new RegExp(\"^\\\\s*#endregion\\\\b\")}}},r={defaultToken:\"\",ignoreCase:!0,tokenPostfix:\".coffee\",brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],regEx:/\\/(?!\\/\\/)(?:[^\\/\\\\]|\\\\.)*\\/[igm]*/,keywords:[\"and\",\"or\",\"is\",\"isnt\",\"not\",\"on\",\"yes\",\"@\",\"no\",\"off\",\"true\",\"false\",\"null\",\"this\",\"new\",\"delete\",\"typeof\",\"in\",\"instanceof\",\"return\",\"throw\",\"break\",\"continue\",\"debugger\",\"if\",\"else\",\"switch\",\"for\",\"while\",\"do\",\"try\",\"catch\",\"finally\",\"class\",\"extends\",\"super\",\"undefined\",\"then\",\"unless\",\"until\",\"loop\",\"of\",\"by\",\"when\"],symbols:/[=><!~?&%|+\\-*\\/\\^\\.,\\:]+/,escapes:/\\\\(?:[abfnrtv\\\\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/\\@[a-zA-Z_]\\w*/,\"variable.predefined\"],[/[a-zA-Z_]\\w*/,{cases:{this:\"variable.predefined\",\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"\"}}],[/[ \\t\\r\\n]+/,\"\"],[/###/,\"comment\",\"@comment\"],[/#.*$/,\"comment\"],[\"///\",{token:\"regexp\",next:\"@hereregexp\"}],[/^(\\s*)(@regEx)/,[\"\",\"regexp\"]],[/(\\()(\\s*)(@regEx)/,[\"@brackets\",\"\",\"regexp\"]],[/(\\,)(\\s*)(@regEx)/,[\"delimiter\",\"\",\"regexp\"]],[/(\\=)(\\s*)(@regEx)/,[\"delimiter\",\"\",\"regexp\"]],[/(\\:)(\\s*)(@regEx)/,[\"delimiter\",\"\",\"regexp\"]],[/(\\[)(\\s*)(@regEx)/,[\"@brackets\",\"\",\"regexp\"]],[/(\\!)(\\s*)(@regEx)/,[\"delimiter\",\"\",\"regexp\"]],[/(\\&)(\\s*)(@regEx)/,[\"delimiter\",\"\",\"regexp\"]],[/(\\|)(\\s*)(@regEx)/,[\"delimiter\",\"\",\"regexp\"]],[/(\\?)(\\s*)(@regEx)/,[\"delimiter\",\"\",\"regexp\"]],[/(\\{)(\\s*)(@regEx)/,[\"@brackets\",\"\",\"regexp\"]],[/(\\;)(\\s*)(@regEx)/,[\"\",\"\",\"regexp\"]],[/}/,{cases:{\"$S2==interpolatedstring\":{token:\"string\",next:\"@pop\"},\"@default\":\"@brackets\"}}],[/[{}()\\[\\]]/,\"@brackets\"],[/@symbols/,\"delimiter\"],[/\\d+[eE]([\\-+]?\\d+)?/,\"number.float\"],[/\\d+\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F]+/,\"number.hex\"],[/0[0-7]+(?!\\d)/,\"number.octal\"],[/\\d+/,\"number\"],[/[,.]/,\"delimiter\"],[/\"\"\"/,\"string\",'@herestring.\"\"\"'],[/'''/,\"string\",\"@herestring.'''\"],[/\"/,{cases:{\"@eos\":\"string\",\"@default\":{token:\"string\",next:'@string.\"'}}}],[/'/,{cases:{\"@eos\":\"string\",\"@default\":{token:\"string\",next:\"@string.'\"}}}]],string:[[/[^\"'\\#\\\\]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\./,\"string.escape.invalid\"],[/\\./,\"string.escape.invalid\"],[/#{/,{cases:{'$S2==\"':{token:\"string\",next:\"root.interpolatedstring\"},\"@default\":\"string\"}}],[/[\"']/,{cases:{\"$#==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":\"string\"}}],[/#/,\"string\"]],herestring:[[/(\"\"\"|''')/,{cases:{\"$1==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":\"string\"}}],[/[^#\\\\'\"]+/,\"string\"],[/['\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\./,\"string.escape.invalid\"],[/#{/,{token:\"string.quote\",next:\"root.interpolatedstring\"}],[/#/,\"string\"]],comment:[[/[^#]+/,\"comment\"],[/###/,\"comment\",\"@pop\"],[/#/,\"comment\"]],hereregexp:[[/[^\\\\\\/#]+/,\"regexp\"],[/\\\\./,\"regexp\"],[/#.*$/,\"comment\"],[\"///[igm]*\",{token:\"regexp\",next:\"@pop\"}],[/\\//,\"regexp\"]]}};export{e as conf,r as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/Ci6OQyBP.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Mermaid\",\"fileTypes\":[],\"injectionSelector\":\"L:text.html.markdown\",\"name\":\"mermaid\",\"patterns\":[{\"include\":\"#mermaid-code-block\"},{\"include\":\"#mermaid-code-block-with-attributes\"},{\"include\":\"#mermaid-ado-code-block\"}],\"repository\":{\"mermaid\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*(architecture-beta)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"Architecture Diagram\",\"end\":\"(^|\\\\\\\\G)(?=\\\\\\\\s*[\\`:~]{3,}\\\\\\\\s*$)\",\"patterns\":[{\"match\":\"\\\\\\\\%%.*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"4\":{\"name\":\"string\"},\"5\":{\"name\":\"keyword.control.mermaid\"},\"6\":{\"name\":\"string\"},\"7\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"},\"8\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"9\":{\"name\":\"string\"},\"10\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"},\"11\":{\"name\":\"keyword.control.mermaid\"},\"12\":{\"name\":\"variable\"}},\"comment\":\"(group|service)(group id)(icon name)?(title)(in)?(parent)?\",\"match\":\"(?i)\\\\\\\\s*(group|service)\\\\\\\\s+([\\\\\\\\w-]+)\\\\\\\\s*(\\\\\\\\()?([\\\\\\\\w\\\\\\\\s-]+)?(:)?([\\\\\\\\w\\\\\\\\s-]+)?(\\\\\\\\))?\\\\\\\\s*(\\\\\\\\[)?([\\\\\\\\w\\\\\\\\s-]+)?\\\\\\\\s*(\\\\\\\\])?\\\\\\\\s*(in)?\\\\\\\\s*([\\\\\\\\w-]+)?\"},{\"captures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"3\":{\"name\":\"variable\"},\"4\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"},\"5\":{\"name\":\"keyword.control.mermaid\"},\"6\":{\"name\":\"entity.name.function.mermaid\"},\"7\":{\"name\":\"keyword.control.mermaid\"},\"8\":{\"name\":\"entity.name.function.mermaid\"},\"9\":{\"name\":\"keyword.control.mermaid\"},\"10\":{\"name\":\"variable\"},\"11\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"12\":{\"name\":\"variable\"},\"13\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"}},\"comment\":\"(service id)(group id)?:(T|B|L|R) <?-->? (T|B|L|R):(service id)(group id)?\",\"match\":\"(?i)\\\\\\\\s*([\\\\\\\\w-]+)\\\\\\\\s*(\\\\\\\\{)?\\\\\\\\s*(group)?(\\\\\\\\})?\\\\\\\\s*(:)\\\\\\\\s*(T|B|L|R)\\\\\\\\s+(<?-->?)\\\\\\\\s+(T|B|L|R)\\\\\\\\s*(:)\\\\\\\\s*([\\\\\\\\w-]+)\\\\\\\\s*(\\\\\\\\{)?\\\\\\\\s*(group)?(\\\\\\\\})?\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"variable\"}},\"comment\":\"(junction)(junction id)(in)?(group)\",\"match\":\"(?i)\\\\\\\\s*(junction)\\\\\\\\s+([\\\\\\\\w-]+)\\\\\\\\s*(in)?\\\\\\\\s*([\\\\\\\\w-]+)?\"}]},{\"begin\":\"^\\\\\\\\s*(classDiagram)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"Class Diagram\",\"end\":\"(^|\\\\\\\\G)(?=\\\\\\\\s*[\\`:~]{3,}\\\\\\\\s*$)\",\"patterns\":[{\"match\":\"\\\\\\\\%%.*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.class.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"keyword.control.mermaid\"},\"5\":{\"name\":\"entity.name.type.class.mermaid\"},\"6\":{\"name\":\"keyword.control.mermaid\"},\"7\":{\"name\":\"string\"}},\"comment\":\"(class name) (\\\\\"multiplicity relationship\\\\\")? (relationship) (\\\\\"multiplicity relationship\\\\\")? (class name) :? (labelText)?\",\"match\":\"(?i)([\\\\\\\\w-]+)\\\\\\\\s(\\\\\"(?:\\\\\\\\d+|\\\\\\\\*|0..\\\\\\\\d+|1..\\\\\\\\d+|1..\\\\\\\\*)\\\\\")?\\\\\\\\s?(--o|--\\\\\\\\*|\\\\\\\\<--|--\\\\\\\\>|<\\\\\\\\.\\\\\\\\.|\\\\\\\\.\\\\\\\\.\\\\\\\\>|\\\\\\\\<\\\\\\\\|\\\\\\\\.\\\\\\\\.|\\\\\\\\.\\\\\\\\.\\\\\\\\|\\\\\\\\>|\\\\\\\\<\\\\\\\\|--|--\\\\\\\\|>|--\\\\\\\\*|--|\\\\\\\\.\\\\\\\\.|\\\\\\\\*--|o--)\\\\\\\\s(\\\\\"(?:\\\\\\\\d+|\\\\\\\\*|0..\\\\\\\\d+|1..\\\\\\\\d+|1..\\\\\\\\*)\\\\\")?\\\\\\\\s?([\\\\\\\\w-]+)\\\\\\\\s?(:)?\\\\\\\\s(.*)$\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.class.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"entity.name.function.mermaid\"},\"5\":{\"name\":\"punctuation.parenthesis.open.mermaid\"},\"6\":{\"name\":\"storage.type.mermaid\"},\"7\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"8\":{\"name\":\"storage.type.mermaid\"},\"9\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"},\"10\":{\"name\":\"entity.name.variable.parameter.mermaid\"},\"11\":{\"name\":\"punctuation.parenthesis.closed.mermaid\"},\"12\":{\"name\":\"keyword.control.mermaid\"},\"13\":{\"name\":\"storage.type.mermaid\"},\"14\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"15\":{\"name\":\"storage.type.mermaid\"},\"16\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"}},\"comment\":\"(class name) : (visibility)?(function)( (function param/generic param)? )(classifier)? (return/generic return)?$\",\"match\":\"(?i)([\\\\\\\\w-]+)\\\\\\\\s?(:)\\\\\\\\s([\\\\\\\\+~#-])?([\\\\\\\\w-]+)(\\\\\\\\()([\\\\\\\\w-]+)?(~)?([\\\\\\\\w-]+)?(~)?\\\\\\\\s?([\\\\\\\\w-]+)?(\\\\\\\\))([*\\\\\\\\$]{0,2})\\\\\\\\s?([\\\\\\\\w-]+)?(~)?([\\\\\\\\w-]+)?(~)?$\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.class.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"storage.type.mermaid\"},\"5\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"6\":{\"name\":\"storage.type.mermaid\"},\"7\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"},\"8\":{\"name\":\"entity.name.variable.field.mermaid\"}},\"comment\":\"(class name) : (visibility)?(datatype/generic data type) (attribute name)$\",\"match\":\"(?i)([\\\\\\\\w-]+)\\\\\\\\s?(:)\\\\\\\\s([\\\\\\\\+~#-])?([\\\\\\\\w-]+)(~)?([\\\\\\\\w-]+)?(~)?\\\\\\\\s([\\\\\\\\w-]+)?$\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"2\":{\"name\":\"storage.type.mermaid\"},\"3\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"},\"4\":{\"name\":\"entity.name.type.class.mermaid\"}},\"comment\":\"<<(Annotation)>> (class name)\",\"match\":\"(?i)(<<)([\\\\\\\\w-]+)(>>)\\\\\\\\s?([\\\\\\\\w-]+)?\"},{\"begin\":\"(?i)(class)\\\\\\\\s+([\\\\\\\\w-]+)(~)?([\\\\\\\\w-]+)?(~)?\\\\\\\\s?({)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.type.class.mermaid\"},\"3\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"4\":{\"name\":\"storage.type.mermaid\"},\"5\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"},\"6\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"class (class name) ~?(generic type)?~? ({)\",\"end\":\"(})\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"patterns\":[{\"match\":\"\\\\\\\\%%.*\",\"name\":\"comment\"},{\"begin\":\"(?i)\\\\\\\\s([\\\\\\\\+~#-])?([\\\\\\\\w-]+)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.function.mermaid\"},\"3\":{\"name\":\"punctuation.parenthesis.open.mermaid\"}},\"comment\":\"(visibility)?(function)( (function param/generic param)? )(classifier)? (return/generic return)?$\",\"end\":\"(?i)(\\\\\\\\))([*\\\\\\\\$]{0,2})\\\\\\\\s?([\\\\\\\\w-]+)?(~)?([\\\\\\\\w-]+)?(~)?$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parenthesis.closed.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"storage.type.mermaid\"},\"4\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"5\":{\"name\":\"storage.type.mermaid\"},\"6\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.mermaid\"},\"2\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"3\":{\"name\":\"storage.type.mermaid\"},\"4\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"},\"5\":{\"name\":\"entity.name.variable.parameter.mermaid\"}},\"comment\":\"(TBD)\",\"match\":\"(?i)\\\\\\\\s*,?\\\\\\\\s*([\\\\\\\\w-]+)?(~)?([\\\\\\\\w-]+)?(~)?\\\\\\\\s?([\\\\\\\\w-]+)?\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"storage.type.mermaid\"},\"3\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"4\":{\"name\":\"storage.type.mermaid\"},\"5\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"},\"6\":{\"name\":\"entity.name.variable.field.mermaid\"}},\"comment\":\"(visibility)?(datatype/generic data type) (attribute name)$\",\"match\":\"(?i)\\\\\\\\s([\\\\\\\\+~#-])?([\\\\\\\\w-]+)(~)?([\\\\\\\\w-]+)?(~)?\\\\\\\\s([\\\\\\\\w-]+)?$\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"2\":{\"name\":\"storage.type.mermaid\"},\"3\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"},\"4\":{\"name\":\"entity.name.type.class.mermaid\"}},\"comment\":\"<<(Annotation)>> (class name)\",\"match\":\"(?i)(<<)([\\\\\\\\w-]+)(>>)\\\\\\\\s?([\\\\\\\\w-]+)?\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.type.class.mermaid\"},\"3\":{\"name\":\"punctuation.definition.typeparameters.begin.mermaid\"},\"4\":{\"name\":\"storage.type.mermaid\"},\"5\":{\"name\":\"punctuation.definition.typeparameters.end.mermaid\"}},\"comment\":\"class (class name) ~?(generic type)?~?\",\"match\":\"(?i)(class)\\\\\\\\s+([\\\\\\\\w-]+)(~)?([\\\\\\\\w-]+)?(~)?\"}]},{\"begin\":\"^\\\\\\\\s*(erDiagram)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"Entity Relationship Diagram\",\"end\":\"(^|\\\\\\\\G)(?=\\\\\\\\s*[\\`:~]{3,}\\\\\\\\s*$)\",\"patterns\":[{\"match\":\"\\\\\\\\%%.*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"string\"},\"4\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"(entity)\",\"match\":\"(?i)^\\\\\\\\s*([\\\\\\\\w-]+)\\\\\\\\s*(\\\\\\\\[)?\\\\\\\\s*((?:[\\\\\\\\w-]+)|(?:\\\\\"[\\\\\\\\w\\\\\\\\s-]+\\\\\"))?\\\\\\\\s*(\\\\\\\\])?$\"},{\"begin\":\"(?i)\\\\\\\\s+([\\\\\\\\w-]+)\\\\\\\\s*(\\\\\\\\[)?\\\\\\\\s*((?:[\\\\\\\\w-]+)|(?:\\\\\"[\\\\\\\\w\\\\\\\\s-]+\\\\\"))?\\\\\\\\s*(\\\\\\\\])?\\\\\\\\s*({)\",\"beginCaptures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"string\"},\"4\":{\"name\":\"keyword.control.mermaid\"},\"5\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"(entity) {\",\"end\":\"(})\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"string\"}},\"comment\":\"(type) (name) (PK|FK)? (\\\\\"comment\\\\\")?\",\"match\":\"(?i)\\\\\\\\s*([\\\\\\\\w-]+)\\\\\\\\s+([\\\\\\\\w-]+)\\\\\\\\s+(PK|FK)?\\\\\\\\s*(\\\\\"[\\\\\"\\\\\\\\($&%\\\\\\\\^/#.,?!;:*+=<>\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\-\\\\\\\\w\\\\\\\\s]*\\\\\")?\\\\\\\\s*\"},{\"match\":\"\\\\\\\\%%.*\",\"name\":\"comment\"}]},{\"captures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"variable\"},\"4\":{\"name\":\"keyword.control.mermaid\"},\"5\":{\"name\":\"string\"}},\"comment\":\"(entity) (relationship) (entity) : (label)\",\"match\":\"(?i)\\\\\\\\s*([\\\\\\\\w-]+)\\\\\\\\s*((?:\\\\\\\\|o|\\\\\\\\|\\\\\\\\||}o|}\\\\\\\\||one or (?:zero|more|many)|zero or (?:one|more|many)|many\\\\\\\\((?:0|1)\\\\\\\\)|only one|0\\\\\\\\+|1\\\\\\\\+?)(?:..|--)(?:o\\\\\\\\||\\\\\\\\|\\\\\\\\||o{|\\\\\\\\|{|one or (?:zero|more|many)|zero or (?:one|more|many)|many\\\\\\\\((?:0|1)\\\\\\\\)|only one|0\\\\\\\\+|1\\\\\\\\+?))\\\\\\\\s*([\\\\\\\\w-]+)\\\\\\\\s*(:)\\\\\\\\s*((?:\\\\\"[\\\\\\\\w\\\\\\\\s]*\\\\\")|(?:[\\\\\\\\w-]+))\"}]},{\"begin\":\"^\\\\\\\\s*(gantt)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"Gantt Diagram\",\"end\":\"(^|\\\\\\\\G)(?=\\\\\\\\s*[\\`:~]{3,}\\\\\\\\s*$)\",\"patterns\":[{\"match\":\"\\\\\\\\%%.*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.function.mermaid\"}},\"match\":\"(?i)^\\\\\\\\s*(dateFormat)\\\\\\\\s+([\\\\\\\\w\\\\\\\\-\\\\\\\\.]+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.function.mermaid\"}},\"match\":\"(?i)^\\\\\\\\s*(axisFormat)\\\\\\\\s+([\\\\\\\\w\\\\\\\\%\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\\\-\\\\\\\\.]+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)(tickInterval)\\\\\\\\s+(([1-9][0-9]*)(millisecond|second|minute|hour|day|week|month))\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\\\\\s*(title)\\\\\\\\s+(\\\\\\\\s*[\\\\\"\\\\\\\\(\\\\\\\\)$&%\\\\\\\\^/#.,?!;:*+=<>\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\-\\\\\\\\w\\\\\\\\s]*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\\\\\s*(excludes)\\\\\\\\s+((?:[\\\\\\\\d\\\\\\\\-,\\\\\\\\s]+|monday|tuesday|wednesday|thursday|friday|saturday|sunday|weekends)+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\\\\\s+(todayMarker)\\\\\\\\s+(.*)$\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\\\\\s*(section)\\\\\\\\s+(\\\\\\\\s*[\\\\\"\\\\\\\\(\\\\\\\\)$&%\\\\\\\\^/#.,?!;:*+=<>\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\-\\\\\\\\w\\\\\\\\s]*)\"},{\"begin\":\"(?i)^\\\\\\\\s(.*)(:)\",\"beginCaptures\":{\"1\":{\"name\":\"string\"},\"2\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"$\",\"patterns\":[{\"match\":\"(crit|done|active|after)\",\"name\":\"entity.name.function.mermaid\"},{\"match\":\"\\\\\\\\%%.*\",\"name\":\"comment\"}]}]},{\"begin\":\"^\\\\\\\\s*(gitGraph)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"Git Graph\",\"end\":\"(^|\\\\\\\\G)(?=\\\\\\\\s*[\\`:~]{3,}\\\\\\\\s*$)\",\"patterns\":[{\"match\":\"\\\\\\\\%%.*\",\"name\":\"comment\"},{\"begin\":\"(?i)^\\\\\\\\s*(commit)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"commit\",\"end\":\"$\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"string\"}},\"comment\":\"(id)(:) (\\\\\"id\\\\\")\",\"match\":\"(?i)\\\\\\\\s*(id)(:)\\\\\\\\s?(\\\\\"[^\\\\\"\\\\\\\\n]*\\\\\")\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"entity.name.function.mermaid\"}},\"comment\":\"(type)(:) (COMMIT_TYPE)\",\"match\":\"(?i)\\\\\\\\s*(type)(:)\\\\\\\\s?(NORMAL|REVERSE|HIGHLIGHT)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"string\"}},\"comment\":\"(tag)(:) (\\\\\"tag\\\\\")\",\"match\":\"(?i)\\\\\\\\s*(tag)(:)\\\\\\\\s?(\\\\\"[\\\\\\\\($&%\\\\\\\\^/#.,?!;:*+=<>\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\-\\\\\\\\w\\\\\\\\s]*\\\\\")\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"}},\"comment\":\"(checkout) (branch-name)\",\"match\":\"(?i)^\\\\\\\\s*(checkout)\\\\\\\\s*([^\\\\\\\\s\\\\\"]*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"keyword.control.mermaid\"},\"5\":{\"name\":\"constant.numeric.decimal.mermaid\"}},\"comment\":\"(branch) (branch-name) (order)?(:) (number)\",\"match\":\"(?i)^\\\\\\\\s*(branch)\\\\\\\\s*([^\\\\\\\\s\\\\\"]*)\\\\\\\\s*(?:(order)(:)\\\\\\\\s?(\\\\\\\\d+))?\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"keyword.control.mermaid\"},\"5\":{\"name\":\"string\"}},\"comment\":\"(merge) (branch-name) (tag: \\\\\"tag-name\\\\\")?\",\"match\":\"(?i)^\\\\\\\\s*(merge)\\\\\\\\s*([^\\\\\\\\s\\\\\"]*)\\\\\\\\s*(?:(tag)(:)\\\\\\\\s?(\\\\\"[^\\\\\"\\\\\\\\n]*\\\\\"))?\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"string\"}},\"comment\":\"(cherry-pick) (id)(:)(\\\\\"commit-id\\\\\")\",\"match\":\"(?i)^\\\\\\\\s*(cherry-pick)\\\\\\\\s+(id)(:)\\\\\\\\s*(\\\\\"[^\\\\\"\\\\\\\\n]*\\\\\")\"}]},{\"begin\":\"^\\\\\\\\s*(graph|flowchart)\\\\\\\\s+([\\\\\\\\p{Letter}\\\\\\\\ 0-9]+)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.function.mermaid\"}},\"comment\":\"Graph\",\"end\":\"(^|\\\\\\\\G)(?=\\\\\\\\s*[\\`:~]{3,}\\\\\\\\s*$)\",\"patterns\":[{\"match\":\"\\\\\\\\%%.*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"string\"},\"5\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"\",\"match\":\"(?i)^\\\\\\\\s*(subgraph)\\\\\\\\s+(\\\\\\\\w+)(\\\\\\\\[)(\\\\\"?[\\\\\\\\w\\\\\\\\s*+%=\\\\\\\\\\\\\\\\/:\\\\\\\\.\\\\\\\\-'\\`,&^#$!?<>]*\\\\\"?)(\\\\\\\\])\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.function.mermaid\"}},\"match\":\"^\\\\\\\\s*(subgraph)\\\\\\\\s+([\\\\\\\\p{Letter}\\\\\\\\ 0-9<>]+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.function.mermaid\"}},\"match\":\"^(?i)\\\\\\\\s*(direction)\\\\\\\\s+(RB|BT|RL|TD|LR)\"},{\"match\":\"\\\\\\\\b(end)\\\\\\\\b\",\"name\":\"keyword.control.mermaid\"},{\"begin\":\"(?i)(\\\\\\\\b(?:(?!--|==)[-\\\\\\\\w])+\\\\\\\\b\\\\\\\\s*)(\\\\\\\\(\\\\\\\\[|\\\\\\\\[\\\\\\\\[|\\\\\\\\[\\\\\\\\(|\\\\\\\\[|\\\\\\\\(+|\\\\\\\\>|\\\\\\\\{|\\\\\\\\(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"string\"}},\"comment\":\"(Entity)(Edge/Shape)(Text)(Edge/Shape)\",\"end\":\"(?i)(\\\\\\\\]\\\\\\\\)|\\\\\\\\]\\\\\\\\]|\\\\\\\\)\\\\\\\\]|\\\\\\\\]|\\\\\\\\)+|\\\\\\\\}|\\\\\\\\)\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"patterns\":[{\"begin\":\"\\\\\\\\s*(\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"string\"}},\"comment\":\"(\\\\\"multi-line text\\\\\")\",\"end\":\"(\\\\\")\",\"endCaptures\":{\"1\":{\"name\":\"string\"}},\"patterns\":[{\"begin\":\"(?i)([^\\\\\"]*)\",\"beginCaptures\":{\"1\":{\"name\":\"string\"}},\"comment\":\"capture inner text between quotes\",\"end\":\"(?=\\\\\")\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment\"}},\"match\":\"([^\\\\\"]*)\"}]}]},{\"captures\":{\"1\":{\"name\":\"string\"}},\"comment\":\"(single line text)\",\"match\":\"(?i)\\\\\\\\s*([$&%\\\\\\\\^/#.,?!;:*+<>_\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\w\\\\\\\\s]+)\"}]},{\"begin\":\"(?i)\\\\\\\\s*((?:-{2,5}|={2,5})[xo>]?\\\\\\\\|)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"(Graph Link)(\\\\\"Multiline text\\\\\")(Graph Link)\",\"end\":\"(?i)(\\\\\\\\|)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"patterns\":[{\"begin\":\"\\\\\\\\s*(\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"string\"}},\"comment\":\"(\\\\\"multi-line text\\\\\")\",\"end\":\"(\\\\\")\",\"endCaptures\":{\"1\":{\"name\":\"string\"}},\"patterns\":[{\"begin\":\"(?i)([^\\\\\"]*)\",\"beginCaptures\":{\"1\":{\"name\":\"string\"}},\"comment\":\"capture inner text between quotes\",\"end\":\"(?=\\\\\")\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment\"}},\"match\":\"([^\\\\\"]*)\"}]}]},{\"captures\":{\"1\":{\"name\":\"string\"}},\"comment\":\"(single line text)\",\"match\":\"(?i)\\\\\\\\s*([$&%\\\\\\\\^/#.,?!;:*+<>_\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\w\\\\\\\\s]+)\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"},\"3\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"(Graph Link Start Arrow)(Text)(Graph Link End Arrow)\",\"match\":\"(?i)\\\\\\\\s*([xo<]?(?:-{2,5}|={2,5}|-\\\\\\\\.{1,3}|-\\\\\\\\.))((?:(?!--|==)[\\\\\\\\w\\\\\\\\s*+%=\\\\\\\\\\\\\\\\/:\\\\\\\\.\\\\\\\\-'\\`,\\\\\"&^#$!?<>\\\\\\\\[\\\\\\\\]])*)((?:-{2,5}|={2,5}|\\\\\\\\.{1,3}-|\\\\\\\\.-)[xo>]?)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"(Graph Link)\",\"match\":\"(?i)\\\\\\\\s*([ox<]?(?:-.{1,3}-|-{1,3}|={1,3})[ox>]?)\"},{\"comment\":\"Entity\",\"match\":\"(\\\\\\\\b(?:(?!--|==)[-\\\\\\\\w])+\\\\\\\\b\\\\\\\\s*)\",\"name\":\"variable\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"string\"}},\"comment\":\"(Class)(Node(s))(ClassName)\",\"match\":\"(?i)\\\\\\\\s*(class)\\\\\\\\s+(\\\\\\\\b[-,\\\\\\\\w]+)\\\\\\\\s+(\\\\\\\\b\\\\\\\\w+\\\\\\\\b)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"string\"}},\"comment\":\"(ClassDef)(ClassName)(Styles)\",\"match\":\"(?i)\\\\\\\\s*(classDef)\\\\\\\\s+(\\\\\\\\b\\\\\\\\w+\\\\\\\\b)\\\\\\\\s+(\\\\\\\\b[-,:;#\\\\\\\\w]+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"variable\"},\"4\":{\"name\":\"string\"}},\"comment\":\"(Click)(Entity)(Link)?(Tooltip)\",\"match\":\"(?i)\\\\\\\\s*(click)\\\\\\\\s+(\\\\\\\\b[-\\\\\\\\w]+\\\\\\\\b\\\\\\\\s*)(\\\\\\\\b\\\\\\\\w+\\\\\\\\b)?\\\\\\\\s(\\\\\"*.*\\\\\")\"}]},{\"begin\":\"^\\\\\\\\s*(pie)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"Pie Chart\",\"end\":\"(^|\\\\\\\\G)(?=\\\\\\\\s*[\\`:~]{3,}\\\\\\\\s*$)\",\"patterns\":[{\"match\":\"\\\\\\\\%%.*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\\\\\s*(title)\\\\\\\\s+(\\\\\\\\s*[\\\\\"\\\\\\\\(\\\\\\\\)$&%\\\\\\\\^/#.,?!;:*+=<>\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\-\\\\\\\\w\\\\\\\\s]*)\"},{\"begin\":\"(?i)\\\\\\\\s(.*)(:)\",\"beginCaptures\":{\"1\":{\"name\":\"string\"},\"2\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"$\",\"patterns\":[{\"match\":\"\\\\\\\\%%.*\",\"name\":\"comment\"}]}]},{\"begin\":\"^\\\\\\\\s*(quadrantChart)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"Quadrant Chart\",\"end\":\"(^|\\\\\\\\G)(?=\\\\\\\\s*[\\`:~]{3,}\\\\\\\\s*$)\",\"patterns\":[{\"match\":\"\\\\\\\\%%.*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\\\\\s*(title)\\\\\\\\s*([\\\\\"\\\\\\\\(\\\\\\\\)$&%\\\\\\\\^/#.,?!;:*+=<>\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\-\\\\\\\\w\\\\\\\\s]*)\"},{\"begin\":\"(?i)^\\\\\\\\s*([xy]-axis)\\\\\\\\s+((?:(?!-->)[$&%/#.,?!*+=\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\-\\\\\\\\w\\\\\\\\s])*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"comment\":\"(x|y-axis) (text) (-->)? (text)?\",\"end\":\"$\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"comment\":\"(-->) (text)\",\"match\":\"(?i)\\\\\\\\s*(-->)\\\\\\\\s*([$&%/#.,?!*+=\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\-\\\\\\\\w\\\\\\\\s]*)\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\\\\\s*(quadrant-[1234])\\\\\\\\s*([\\\\\"\\\\\\\\(\\\\\\\\)$&%\\\\\\\\^/#.,?!;:*+=<>\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\-\\\\\\\\w\\\\\\\\s]*)\"},{\"captures\":{\"1\":{\"name\":\"string\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"constant.numeric.decimal.mermaid\"},\"5\":{\"name\":\"keyword.control.mermaid\"},\"6\":{\"name\":\"constant.numeric.decimal.mermaid\"},\"7\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"(text)(:) ([)(decimal)(,) (decimal)(])\",\"match\":\"(?i)\\\\\\\\s*([$&%/#.,?!*+=\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\-\\\\\\\\w\\\\\\\\s]*)\\\\\\\\s*(:)\\\\\\\\s*(\\\\\\\\[)\\\\\\\\s*(\\\\\\\\d\\\\\\\\.\\\\\\\\d+)\\\\\\\\s*(,)\\\\\\\\s*(\\\\\\\\d\\\\\\\\.\\\\\\\\d+)\\\\\\\\s*(\\\\\\\\])\"}]},{\"begin\":\"^\\\\\\\\s*(requirementDiagram)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"Requirement Diagram\",\"end\":\"(^|\\\\\\\\G)(?=\\\\\\\\s*[\\`:~]{3,}\\\\\\\\s*$)\",\"patterns\":[{\"match\":\"\\\\\\\\%%.*\",\"name\":\"comment\"},{\"begin\":\"(?i)^\\\\\\\\s*((?:functional|interface|performance|physical)?requirement|designConstraint)\\\\\\\\s*([\\\\\"\\\\\\\\(\\\\\\\\)$&%\\\\\\\\^/#.,?!;:*+=<>\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\-\\\\\\\\w\\\\\\\\s]*)\\\\\\\\s*({)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"(requirement) (name) ({)\",\"end\":\"(?i)\\\\\\\\s*(})\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"}},\"comment\":\"(id:) (variable id)\",\"match\":\"(?i)\\\\\\\\s*(id:)\\\\\\\\s*([$&%\\\\\\\\^/#.,?!;:*+<>_\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\w\\\\\\\\s]+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"comment\":\"(text:) (text string)\",\"match\":\"(?i)\\\\\\\\s*(text:)\\\\\\\\s*([$&%\\\\\\\\^/#.,?!;:*+<>_\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\w\\\\\\\\s]+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.function.mermaid\"}},\"comment\":\"(risk:) (risk option)\",\"match\":\"(?i)\\\\\\\\s*(risk:)\\\\\\\\s*(low|medium|high)\\\\\\\\s*$\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.function.mermaid\"}},\"comment\":\"(verifyMethod)(:) (method)\",\"match\":\"(?i)\\\\\\\\s*(verifymethod:)\\\\\\\\s*(analysis|inspection|test|demonstration)\\\\\\\\s*$\"}]},{\"begin\":\"(?i)^\\\\\\\\s*(element)\\\\\\\\s*([\\\\\"\\\\\\\\(\\\\\\\\)$&%\\\\\\\\^/#.,?!;:*+=<>\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\-\\\\\\\\w\\\\\\\\s]*)\\\\\\\\s*({)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"(element) (name) ({)\",\"end\":\"(?i)\\\\\\\\s*(})\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"}},\"comment\":\"(type:) (user type)\",\"match\":\"(?i)\\\\\\\\s*(type:)\\\\\\\\s*([\\\\\"$&%\\\\\\\\^/#.,?!;:*+<>_\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\w\\\\\\\\s]+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"}},\"comment\":\"(docref:) (user ref)\",\"match\":\"(?i)\\\\\\\\s*(docref:)\\\\\\\\s*([$&%\\\\\\\\^/#.,?!;:*+<>_\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\w\\\\\\\\s]+)\"}]},{\"captures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"keyword.control.mermaid\"},\"5\":{\"name\":\"variable\"}},\"comment\":\"(source) (-) (type) (->) (destination)\",\"match\":\"(?i)^\\\\\\\\s*([\\\\\\\\w]+)\\\\\\\\s*(-)\\\\\\\\s*(contains|copies|derives|satisfies|verifies|refines|traces)\\\\\\\\s*(->)\\\\\\\\s*([\\\\\\\\w]+)\\\\\\\\s*$\"},{\"captures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"keyword.control.mermaid\"},\"5\":{\"name\":\"variable\"}},\"comment\":\"(destination) (<-) (type) (-) (source)\",\"match\":\"(?i)^\\\\\\\\s*([\\\\\\\\w]+)\\\\\\\\s*(<-)\\\\\\\\s*(contains|copies|derives|satisfies|verifies|refines|traces)\\\\\\\\s*(-)\\\\\\\\s*([\\\\\\\\w]+)\\\\\\\\s*$\"}]},{\"begin\":\"^\\\\\\\\s*(sequenceDiagram)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"Sequence Diagram\",\"end\":\"(^|\\\\\\\\G)(?=\\\\\\\\s*[\\`:~]{3,}\\\\\\\\s*$)\",\"patterns\":[{\"match\":\"(\\\\\\\\%%|#).*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"string\"}},\"comment\":\"(title)(title text)\",\"match\":\"(?i)(title)\\\\\\\\s*(:)?\\\\\\\\s+(\\\\\\\\s*[\\\\\"\\\\\\\\(\\\\\\\\)$&%\\\\\\\\^/#.,?!:*+=<>\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\-\\\\\\\\w\\\\\\\\s]*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"string\"}},\"comment\":\"(participant)(Actor)(as)?(Label)?\",\"match\":\"(?i)\\\\\\\\s*(participant|actor)\\\\\\\\s+((?:(?! as )[\\\\\"\\\\\\\\(\\\\\\\\)$&%\\\\\\\\^/#.?!*=<>\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\w\\\\\\\\s])+)\\\\\\\\s*(as)?\\\\\\\\s([\\\\\"\\\\\\\\(\\\\\\\\)$&%\\\\\\\\^/#.,?!*=<>\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\w\\\\\\\\s]+)?\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"}},\"comment\":\"(activate/deactivate)(Actor)\",\"match\":\"(?i)\\\\\\\\s*((?:de)?activate)\\\\\\\\s+(\\\\\\\\b[\\\\\"()$&%^/#.?!*=<>'\\\\\\\\\\\\\\\\\\\\\\\\w\\\\\\\\s]+\\\\\\\\b\\\\\\\\)?\\\\\\\\s*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.function.mermaid\"},\"3\":{\"name\":\"variable\"},\"4\":{\"name\":\"keyword.control.mermaid\"},\"5\":{\"name\":\"variable\"},\"6\":{\"name\":\"keyword.control.mermaid\"},\"7\":{\"name\":\"string\"}},\"comment\":\"(Note)(direction)(Actor)(,)?(Actor)?(:)(Message)\",\"match\":\"(?i)\\\\\\\\s*(Note)\\\\\\\\s+((?:left|right)\\\\\\\\sof|over)\\\\\\\\s+(\\\\\\\\b[\\\\\"()$&%^/#.?!*=<>'\\\\\\\\\\\\\\\\\\\\\\\\w\\\\\\\\s]+\\\\\\\\b\\\\\\\\)?\\\\\\\\s*)(,)?(\\\\\\\\b[\\\\\"()$&%^/#.?!*=<>'\\\\\\\\\\\\\\\\\\\\\\\\w\\\\\\\\s]+\\\\\\\\b\\\\\\\\)?\\\\\\\\s*)?(:)(?:\\\\\\\\s+([^;#]*))?\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"comment\":\"(loop)(loop text)\",\"match\":\"(?i)\\\\\\\\s*(loop)(?:\\\\\\\\s+([^;#]*))?\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"(end)\",\"match\":\"\\\\\\\\s*(end)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"comment\":\"(alt/else/option/par/and/autonumber/critical/opt)(text)\",\"match\":\"(?i)\\\\\\\\s*(alt|else|option|par|and|rect|autonumber|critical|opt)(?:\\\\\\\\s+([^#;]*))?$\"},{\"captures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"variable\"},\"4\":{\"name\":\"keyword.control.mermaid\"},\"5\":{\"name\":\"string\"}},\"comment\":\"(Actor)(Arrow)(Actor)(:)(Message)\",\"match\":\"(?i)\\\\\\\\s*(\\\\\\\\b[\\\\\"()$&%^/#.?!*=<>'\\\\\\\\\\\\\\\\\\\\\\\\w\\\\\\\\s]+\\\\\\\\b\\\\\\\\)?)\\\\\\\\s*(-?-(?:\\\\\\\\>|x|\\\\\\\\))\\\\\\\\>?[+-]?)\\\\\\\\s*([\\\\\"()$&%^/#.?!*=<>'\\\\\\\\\\\\\\\\\\\\\\\\w\\\\\\\\s]+\\\\\\\\b\\\\\\\\)?)\\\\\\\\s*(:)\\\\\\\\s*([^;#]*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"entity.name.function.mermaid\"},\"3\":{\"name\":\"string\"}},\"comment\":\"(box transparent text)\",\"match\":\"(?i)\\\\\\\\s*(box)\\\\\\\\s+(transparent)(?:\\\\\\\\s+([^;#]*))?\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"comment\":\"(box text)\",\"match\":\"(?i)\\\\\\\\s*(box)(?:\\\\\\\\s+([^;#]*))?\"}]},{\"begin\":\"^\\\\\\\\s*(stateDiagram(?:-v2)?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"State Diagram\",\"end\":\"(^|\\\\\\\\G)(?=\\\\\\\\s*[\\`:~]{3,}\\\\\\\\s*$)\",\"patterns\":[{\"match\":\"\\\\\\\\%%.*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"}\",\"match\":\"\\\\\\\\s+(})\\\\\\\\s+\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"--\",\"match\":\"\\\\\\\\s+(--)\\\\\\\\s+\"},{\"comment\":\"(state)\",\"match\":\"^\\\\\\\\s*([\\\\\\\\w-]+)$\",\"name\":\"variable\"},{\"captures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"string\"}},\"comment\":\"(state) : (description)\",\"match\":\"(?i)([\\\\\\\\w-]+)\\\\\\\\s+(:)\\\\\\\\s+(\\\\\\\\s*[-\\\\\\\\w\\\\\\\\s]+\\\\\\\\b)\"},{\"begin\":\"(?i)^\\\\\\\\s*(state)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"state\",\"end\":\"$\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"string\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"variable\"}},\"comment\":\"\\\\\"(description)\\\\\" as (state)\",\"match\":\"(?i)\\\\\\\\s*(\\\\\"[-\\\\\\\\w\\\\\\\\s]+\\\\\\\\b\\\\\")\\\\\\\\s+(as)\\\\\\\\s+([\\\\\\\\w-]+)\"},{\"captures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"(state name) {\",\"match\":\"(?i)\\\\\\\\s*([\\\\\\\\w-]+)\\\\\\\\s+({)\"},{\"captures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"(state name) <<fork|join>>\",\"match\":\"(?i)\\\\\\\\s*([\\\\\\\\w-]+)\\\\\\\\s+(<<(?:fork|join)>>)\"}]},{\"begin\":\"(?i)([\\\\\\\\w-]+)\\\\\\\\s+(-->)\",\"beginCaptures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"(state) -->\",\"end\":\"$\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"string\"}},\"comment\":\"(state) (:)? (transition text)?\",\"match\":\"(?i)\\\\\\\\s+([\\\\\\\\w-]+)\\\\\\\\s*(:)?\\\\\\\\s*([^\\\\\\\\n:]+)?\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"string\"}},\"comment\":\"[*] (:)? (transition text)?\",\"match\":\"(?i)(\\\\\\\\[\\\\\\\\*\\\\\\\\])\\\\\\\\s*(:)?\\\\\\\\s*([^\\\\\\\\n:]+)?\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"variable\"},\"4\":{\"name\":\"keyword.control.mermaid\"},\"5\":{\"name\":\"string\"}},\"comment\":\"[*] --> (state) (:)? (transition text)?\",\"match\":\"(?i)(\\\\\\\\[\\\\\\\\*\\\\\\\\])\\\\\\\\s+(-->)\\\\\\\\s+([\\\\\\\\w-]+)\\\\\\\\s*(:)?\\\\\\\\s*([^\\\\\\\\n:]+)?\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"},\"3\":{\"name\":\"keyword.control.mermaid\"},\"4\":{\"name\":\"string\"}},\"comment\":\"note left|right of (state name)\",\"match\":\"(?i)^\\\\\\\\s*(note (?:left|right) of)\\\\\\\\s+([\\\\\\\\w-]+)\\\\\\\\s+(:)\\\\\\\\s*([^\\\\\\\\n:]+)\"},{\"begin\":\"(?i)^\\\\\\\\s*(note (?:left|right) of)\\\\\\\\s+([\\\\\\\\w-]+)(.|\\\\\\\\n)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"variable\"}},\"comment\":\"note left|right of (state name) (note text) end note\",\"contentName\":\"string\",\"end\":\"(?i)(end note)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}}}]},{\"begin\":\"^\\\\\\\\s*(journey)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"User Journey\",\"end\":\"(^|\\\\\\\\G)(?=\\\\\\\\s*[\\`:~]{3,}\\\\\\\\s*$)\",\"patterns\":[{\"match\":\"\\\\\\\\%%.*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\\\\\s*(title|section)\\\\\\\\s+(\\\\\\\\s*[\\\\\"\\\\\\\\(\\\\\\\\)$&%\\\\\\\\^/#.,?!;:*+=<>\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\-\\\\\\\\w\\\\\\\\s]*)\"},{\"begin\":\"(?i)\\\\\\\\s*([\\\\\"\\\\\\\\(\\\\\\\\)$&%\\\\\\\\^/.,?!*+=<>\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\-\\\\\\\\w\\\\\\\\s]*)\\\\\\\\s*(:)\\\\\\\\s*(\\\\\\\\d+)\\\\\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"string\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"constant.numeric.decimal.mermaid\"},\"4\":{\"name\":\"keyword.control.mermaid\"}},\"end\":\"$\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable\"}},\"comment\":\"(taskName)\",\"match\":\"(?i)\\\\\\\\s*,?\\\\\\\\s*([^,#\\\\\\\\n]+)\"}]}]},{\"begin\":\"^\\\\\\\\s*(xychart(?:-beta)?(?:\\\\\\\\s+horizontal)?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"XY Chart\",\"end\":\"(^|\\\\\\\\G)(?=\\\\\\\\s*[\\`:~]{3,}\\\\\\\\s*$)\",\"patterns\":[{\"match\":\"\\\\\\\\%%.*\",\"name\":\"comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"string\"}},\"match\":\"(?i)^\\\\\\\\s*(title)\\\\\\\\s+(\\\\\\\\s*[\\\\\"\\\\\\\\(\\\\\\\\)$&%\\\\\\\\^/#.,?!;:*+=<>\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\-\\\\\\\\w\\\\\\\\s]*)\"},{\"begin\":\"(?i)^\\\\\\\\s*(x-axis)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"(x-axis)\",\"end\":\"$\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"constant.numeric.decimal.mermaid\"}},\"comment\":\"(decimal) (-->) (decimal)\",\"match\":\"(?i)\\\\\\\\s*([-+]?\\\\\\\\d+\\\\\\\\.?\\\\\\\\d*)\\\\\\\\s*(-->)\\\\\\\\s*([-+]?\\\\\\\\d+\\\\\\\\.?\\\\\\\\d*)\"},{\"captures\":{\"1\":{\"name\":\"string\"}},\"comment\":\"(\\\\\"text\\\\\")\",\"match\":\"(?i)\\\\\\\\s+(\\\\\"[\\\\\\\\($&%\\\\\\\\^/#.,?!;:*+=<>\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\-\\\\\\\\w\\\\\\\\s]*\\\\\")\"},{\"captures\":{\"1\":{\"name\":\"string\"}},\"comment\":\"(text)\",\"match\":\"(?i)\\\\\\\\s+([\\\\\\\\($&%\\\\\\\\^/#.,?!;:*+=<>\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\-\\\\\\\\w]*)\"},{\"begin\":\"\\\\\\\\s*(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"([)(text)(,)(text)*(])\",\"end\":\"\\\\\\\\s*(\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.mermaid\"}},\"comment\":\"(decimal)\",\"match\":\"(?i)\\\\\\\\s*([-+]?\\\\\\\\d+\\\\\\\\.?\\\\\\\\d*)\"},{\"captures\":{\"1\":{\"name\":\"string\"}},\"comment\":\"(\\\\\"text\\\\\")\",\"match\":\"(?i)\\\\\\\\s*(\\\\\"[\\\\\\\\($&%\\\\\\\\^/#.,?!;:*+=<>\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\-\\\\\\\\w\\\\\\\\s]*\\\\\")\"},{\"captures\":{\"1\":{\"name\":\"string\"}},\"comment\":\"(text)\",\"match\":\"(?i)\\\\\\\\s*([\\\\\\\\($&%\\\\\\\\^/#.?!;:*+=<>\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\-\\\\\\\\w\\\\\\\\s]+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"(,)\",\"match\":\"(?i)\\\\\\\\s*(,)\"}]}]},{\"begin\":\"(?i)^\\\\\\\\s*(y-axis)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"(y-axis)\",\"end\":\"$\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"},\"3\":{\"name\":\"constant.numeric.decimal.mermaid\"}},\"comment\":\"(decimal) (-->) (decimal)\",\"match\":\"(?i)\\\\\\\\s*([-+]?\\\\\\\\d+\\\\\\\\.?\\\\\\\\d*)\\\\\\\\s*(-->)\\\\\\\\s*([-+]?\\\\\\\\d+\\\\\\\\.?\\\\\\\\d*)\"},{\"captures\":{\"1\":{\"name\":\"string\"}},\"comment\":\"(\\\\\"text\\\\\")\",\"match\":\"(?i)\\\\\\\\s+(\\\\\"[\\\\\\\\($&%\\\\\\\\^/#.,?!;:*+=<>\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\-\\\\\\\\w\\\\\\\\s]*\\\\\")\"},{\"captures\":{\"1\":{\"name\":\"string\"}},\"comment\":\"(text)\",\"match\":\"(?i)\\\\\\\\s+([\\\\\\\\($&%\\\\\\\\^/#.,?!;:*+=<>\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\-\\\\\\\\w]*)\"}]},{\"begin\":\"(?i)^\\\\\\\\s*(line|bar)\\\\\\\\s*(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"},\"2\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"(line|bar) ([)(decimal)+(])\",\"end\":\"\\\\\\\\s*(\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.mermaid\"}},\"comment\":\"(decimal)\",\"match\":\"(?i)\\\\\\\\s*([-+]?\\\\\\\\d+\\\\\\\\.?\\\\\\\\d*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.mermaid\"}},\"comment\":\"(,)\",\"match\":\"(?i)\\\\\\\\s*(,)\"}]}]}]},\"mermaid-ado-code-block\":{\"begin\":\"(?i)\\\\\\\\s*:::\\\\\\\\s*mermaid\\\\\\\\s*$\",\"contentName\":\"meta.embedded.block.mermaid\",\"end\":\"\\\\\\\\s*:::\\\\\\\\s*\",\"patterns\":[{\"include\":\"#mermaid\"}]},\"mermaid-code-block\":{\"begin\":\"(?i)(?<=[\\`~])mermaid(\\\\\\\\s+[^\\`~]*)?$\",\"contentName\":\"meta.embedded.block.mermaid\",\"end\":\"(^|\\\\\\\\G)(?=\\\\\\\\s*[\\`~]{3,}\\\\\\\\s*$)\",\"patterns\":[{\"include\":\"#mermaid\"}]},\"mermaid-code-block-with-attributes\":{\"begin\":\"(?i)(?<=[\\`~])\\\\\\\\{\\\\\\\\s*\\\\\\\\.?mermaid(\\\\\\\\s+[^\\`~]*)?$\",\"contentName\":\"meta.embedded.block.mermaid\",\"end\":\"(^|\\\\\\\\G)(?=\\\\\\\\s*[\\`~]{3,}\\\\\\\\s*$)\",\"patterns\":[{\"include\":\"#mermaid\"}]}},\"scopeName\":\"markdown.mermaid.codeblock\",\"aliases\":[\"mmd\"]}`)),a=[e];export{a as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CircleProgressbar.Bqs-YaMH.css",
    "content": ".progress-circle[data-v-88f4951a]{background-color:#f2e9e1;border-radius:50%;font-size:40px;height:5em;line-height:5em;margin:20px;padding:0;position:relative;width:5em}.progress-circle[data-v-88f4951a]:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-gray-600)/1);background-color:rgb(var(--color-gray-600)/var(--tw-bg-opacity,1))}.progress-circle[data-v-88f4951a]:after{border:none;border-radius:50%;content:\" \";display:block;height:4.3em;left:.35em;position:absolute;text-align:center;top:.35em;width:4.3em;--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.progress-circle[data-v-88f4951a]:is(.dark *):after{--tw-bg-opacity:1;background-color:#333;background-color:rgb(51 51 51/var(--tw-bg-opacity,1))}.progress-circle span[data-v-88f4951a]{color:#4f46e5;display:block;line-height:5em;position:absolute;text-align:center;width:5em;z-index:2}.progress-circle span[data-v-88f4951a]:is(.dark *){--tw-text-opacity:1;color:#818cf8;color:rgb(129 140 248/var(--tw-text-opacity,1))}.left-half-clipper[data-v-88f4951a]{border-radius:50%;height:5em;position:absolute;width:5em;clip:rect(0,5em,5em,2.5em)}.progress-circle.over50 .left-half-clipper[data-v-88f4951a]{clip:rect(auto,auto,auto,auto)}.value-bar[data-v-88f4951a]{position:absolute;clip:rect(0,2.5em,5em,0);border:.45em solid #4f46e5;border-radius:50%;box-sizing:border-box;height:5em;width:5em}.value-bar[data-v-88f4951a]:is(.dark *){--tw-border-opacity:1;border-color:#818cf8;border-color:rgb(129 140 248/var(--tw-border-opacity,1))}.progress-circle.over50 .first50-bar[data-v-88f4951a]{position:absolute;clip:rect(0,5em,5em,2.5em);background-color:#4f46e5;border-radius:50%;height:5em;width:5em}.progress-circle.over50 .first50-bar[data-v-88f4951a]:is(.dark *){--tw-bg-opacity:1;background-color:#818cf8;background-color:rgb(129 140 248/var(--tw-bg-opacity,1))}.progress-circle.p0 .value-bar[data-v-88f4951a],.progress-circle:not(.over50) .first50-bar[data-v-88f4951a]{display:none}.progress-circle.p1 .value-bar[data-v-88f4951a]{transform:rotate(4deg)}.progress-circle.p2 .value-bar[data-v-88f4951a]{transform:rotate(7deg)}.progress-circle.p3 .value-bar[data-v-88f4951a]{transform:rotate(11deg)}.progress-circle.p4 .value-bar[data-v-88f4951a]{transform:rotate(14deg)}.progress-circle.p5 .value-bar[data-v-88f4951a]{transform:rotate(18deg)}.progress-circle.p6 .value-bar[data-v-88f4951a]{transform:rotate(22deg)}.progress-circle.p7 .value-bar[data-v-88f4951a]{transform:rotate(25deg)}.progress-circle.p8 .value-bar[data-v-88f4951a]{transform:rotate(29deg)}.progress-circle.p9 .value-bar[data-v-88f4951a]{transform:rotate(32deg)}.progress-circle.p10 .value-bar[data-v-88f4951a]{transform:rotate(36deg)}.progress-circle.p11 .value-bar[data-v-88f4951a]{transform:rotate(40deg)}.progress-circle.p12 .value-bar[data-v-88f4951a]{transform:rotate(43deg)}.progress-circle.p13 .value-bar[data-v-88f4951a]{transform:rotate(47deg)}.progress-circle.p14 .value-bar[data-v-88f4951a]{transform:rotate(50deg)}.progress-circle.p15 .value-bar[data-v-88f4951a]{transform:rotate(54deg)}.progress-circle.p16 .value-bar[data-v-88f4951a]{transform:rotate(58deg)}.progress-circle.p17 .value-bar[data-v-88f4951a]{transform:rotate(61deg)}.progress-circle.p18 .value-bar[data-v-88f4951a]{transform:rotate(65deg)}.progress-circle.p19 .value-bar[data-v-88f4951a]{transform:rotate(68deg)}.progress-circle.p20 .value-bar[data-v-88f4951a]{transform:rotate(72deg)}.progress-circle.p21 .value-bar[data-v-88f4951a]{transform:rotate(76deg)}.progress-circle.p22 .value-bar[data-v-88f4951a]{transform:rotate(79deg)}.progress-circle.p23 .value-bar[data-v-88f4951a]{transform:rotate(83deg)}.progress-circle.p24 .value-bar[data-v-88f4951a]{transform:rotate(86deg)}.progress-circle.p25 .value-bar[data-v-88f4951a]{transform:rotate(90deg)}.progress-circle.p26 .value-bar[data-v-88f4951a]{transform:rotate(94deg)}.progress-circle.p27 .value-bar[data-v-88f4951a]{transform:rotate(97deg)}.progress-circle.p28 .value-bar[data-v-88f4951a]{transform:rotate(101deg)}.progress-circle.p29 .value-bar[data-v-88f4951a]{transform:rotate(104deg)}.progress-circle.p30 .value-bar[data-v-88f4951a]{transform:rotate(108deg)}.progress-circle.p31 .value-bar[data-v-88f4951a]{transform:rotate(112deg)}.progress-circle.p32 .value-bar[data-v-88f4951a]{transform:rotate(115deg)}.progress-circle.p33 .value-bar[data-v-88f4951a]{transform:rotate(119deg)}.progress-circle.p34 .value-bar[data-v-88f4951a]{transform:rotate(122deg)}.progress-circle.p35 .value-bar[data-v-88f4951a]{transform:rotate(126deg)}.progress-circle.p36 .value-bar[data-v-88f4951a]{transform:rotate(130deg)}.progress-circle.p37 .value-bar[data-v-88f4951a]{transform:rotate(133deg)}.progress-circle.p38 .value-bar[data-v-88f4951a]{transform:rotate(137deg)}.progress-circle.p39 .value-bar[data-v-88f4951a]{transform:rotate(140deg)}.progress-circle.p40 .value-bar[data-v-88f4951a]{transform:rotate(144deg)}.progress-circle.p41 .value-bar[data-v-88f4951a]{transform:rotate(148deg)}.progress-circle.p42 .value-bar[data-v-88f4951a]{transform:rotate(151deg)}.progress-circle.p43 .value-bar[data-v-88f4951a]{transform:rotate(155deg)}.progress-circle.p44 .value-bar[data-v-88f4951a]{transform:rotate(158deg)}.progress-circle.p45 .value-bar[data-v-88f4951a]{transform:rotate(162deg)}.progress-circle.p46 .value-bar[data-v-88f4951a]{transform:rotate(166deg)}.progress-circle.p47 .value-bar[data-v-88f4951a]{transform:rotate(169deg)}.progress-circle.p48 .value-bar[data-v-88f4951a]{transform:rotate(173deg)}.progress-circle.p49 .value-bar[data-v-88f4951a]{transform:rotate(176deg)}.progress-circle.p50 .value-bar[data-v-88f4951a]{transform:rotate(180deg)}.progress-circle.p51 .value-bar[data-v-88f4951a]{transform:rotate(184deg)}.progress-circle.p52 .value-bar[data-v-88f4951a]{transform:rotate(187deg)}.progress-circle.p53 .value-bar[data-v-88f4951a]{transform:rotate(191deg)}.progress-circle.p54 .value-bar[data-v-88f4951a]{transform:rotate(194deg)}.progress-circle.p55 .value-bar[data-v-88f4951a]{transform:rotate(198deg)}.progress-circle.p56 .value-bar[data-v-88f4951a]{transform:rotate(202deg)}.progress-circle.p57 .value-bar[data-v-88f4951a]{transform:rotate(205deg)}.progress-circle.p58 .value-bar[data-v-88f4951a]{transform:rotate(209deg)}.progress-circle.p59 .value-bar[data-v-88f4951a]{transform:rotate(212deg)}.progress-circle.p60 .value-bar[data-v-88f4951a]{transform:rotate(216deg)}.progress-circle.p61 .value-bar[data-v-88f4951a]{transform:rotate(220deg)}.progress-circle.p62 .value-bar[data-v-88f4951a]{transform:rotate(223deg)}.progress-circle.p63 .value-bar[data-v-88f4951a]{transform:rotate(227deg)}.progress-circle.p64 .value-bar[data-v-88f4951a]{transform:rotate(230deg)}.progress-circle.p65 .value-bar[data-v-88f4951a]{transform:rotate(234deg)}.progress-circle.p66 .value-bar[data-v-88f4951a]{transform:rotate(238deg)}.progress-circle.p67 .value-bar[data-v-88f4951a]{transform:rotate(241deg)}.progress-circle.p68 .value-bar[data-v-88f4951a]{transform:rotate(245deg)}.progress-circle.p69 .value-bar[data-v-88f4951a]{transform:rotate(248deg)}.progress-circle.p70 .value-bar[data-v-88f4951a]{transform:rotate(252deg)}.progress-circle.p71 .value-bar[data-v-88f4951a]{transform:rotate(256deg)}.progress-circle.p72 .value-bar[data-v-88f4951a]{transform:rotate(259deg)}.progress-circle.p73 .value-bar[data-v-88f4951a]{transform:rotate(263deg)}.progress-circle.p74 .value-bar[data-v-88f4951a]{transform:rotate(266deg)}.progress-circle.p75 .value-bar[data-v-88f4951a]{transform:rotate(270deg)}.progress-circle.p76 .value-bar[data-v-88f4951a]{transform:rotate(274deg)}.progress-circle.p77 .value-bar[data-v-88f4951a]{transform:rotate(277deg)}.progress-circle.p78 .value-bar[data-v-88f4951a]{transform:rotate(281deg)}.progress-circle.p79 .value-bar[data-v-88f4951a]{transform:rotate(284deg)}.progress-circle.p80 .value-bar[data-v-88f4951a]{transform:rotate(288deg)}.progress-circle.p81 .value-bar[data-v-88f4951a]{transform:rotate(292deg)}.progress-circle.p82 .value-bar[data-v-88f4951a]{transform:rotate(295deg)}.progress-circle.p83 .value-bar[data-v-88f4951a]{transform:rotate(299deg)}.progress-circle.p84 .value-bar[data-v-88f4951a]{transform:rotate(302deg)}.progress-circle.p85 .value-bar[data-v-88f4951a]{transform:rotate(306deg)}.progress-circle.p86 .value-bar[data-v-88f4951a]{transform:rotate(310deg)}.progress-circle.p87 .value-bar[data-v-88f4951a]{transform:rotate(313deg)}.progress-circle.p88 .value-bar[data-v-88f4951a]{transform:rotate(317deg)}.progress-circle.p89 .value-bar[data-v-88f4951a]{transform:rotate(320deg)}.progress-circle.p90 .value-bar[data-v-88f4951a]{transform:rotate(324deg)}.progress-circle.p91 .value-bar[data-v-88f4951a]{transform:rotate(328deg)}.progress-circle.p92 .value-bar[data-v-88f4951a]{transform:rotate(331deg)}.progress-circle.p93 .value-bar[data-v-88f4951a]{transform:rotate(335deg)}.progress-circle.p94 .value-bar[data-v-88f4951a]{transform:rotate(338deg)}.progress-circle.p95 .value-bar[data-v-88f4951a]{transform:rotate(342deg)}.progress-circle.p96 .value-bar[data-v-88f4951a]{transform:rotate(346deg)}.progress-circle.p97 .value-bar[data-v-88f4951a]{transform:rotate(349deg)}.progress-circle.p98 .value-bar[data-v-88f4951a]{transform:rotate(353deg)}.progress-circle.p99 .value-bar[data-v-88f4951a]{transform:rotate(356deg)}.progress-circle.p100 .value-bar[data-v-88f4951a]{transform:rotate(1turn)}\n"
  },
  {
    "path": "jesse/static/_nuxt/CjDtw9vr.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBorder\":\"#e0def4\",\"activityBar.background\":\"#232136\",\"activityBar.dropBorder\":\"#393552\",\"activityBar.foreground\":\"#e0def4\",\"activityBar.inactiveForeground\":\"#908caa\",\"activityBarBadge.background\":\"#ea9a97\",\"activityBarBadge.foreground\":\"#232136\",\"badge.background\":\"#ea9a97\",\"badge.foreground\":\"#232136\",\"banner.background\":\"#2a273f\",\"banner.foreground\":\"#e0def4\",\"banner.iconForeground\":\"#908caa\",\"breadcrumb.activeSelectionForeground\":\"#ea9a97\",\"breadcrumb.background\":\"#232136\",\"breadcrumb.focusForeground\":\"#908caa\",\"breadcrumb.foreground\":\"#6e6a86\",\"breadcrumbPicker.background\":\"#2a273f\",\"button.background\":\"#ea9a97\",\"button.foreground\":\"#232136\",\"button.hoverBackground\":\"#ea9a97e6\",\"button.secondaryBackground\":\"#2a273f\",\"button.secondaryForeground\":\"#e0def4\",\"button.secondaryHoverBackground\":\"#393552\",\"charts.blue\":\"#9ccfd8\",\"charts.foreground\":\"#e0def4\",\"charts.green\":\"#3e8fb0\",\"charts.lines\":\"#908caa\",\"charts.orange\":\"#ea9a97\",\"charts.purple\":\"#c4a7e7\",\"charts.red\":\"#eb6f92\",\"charts.yellow\":\"#f6c177\",\"checkbox.background\":\"#2a273f\",\"checkbox.border\":\"#817c9c26\",\"checkbox.foreground\":\"#e0def4\",\"debugExceptionWidget.background\":\"#2a273f\",\"debugExceptionWidget.border\":\"#817c9c26\",\"debugIcon.breakpointCurrentStackframeForeground\":\"#908caa\",\"debugIcon.breakpointDisabledForeground\":\"#908caa\",\"debugIcon.breakpointForeground\":\"#908caa\",\"debugIcon.breakpointStackframeForeground\":\"#908caa\",\"debugIcon.breakpointUnverifiedForeground\":\"#908caa\",\"debugIcon.continueForeground\":\"#908caa\",\"debugIcon.disconnectForeground\":\"#908caa\",\"debugIcon.pauseForeground\":\"#908caa\",\"debugIcon.restartForeground\":\"#908caa\",\"debugIcon.startForeground\":\"#908caa\",\"debugIcon.stepBackForeground\":\"#908caa\",\"debugIcon.stepIntoForeground\":\"#908caa\",\"debugIcon.stepOutForeground\":\"#908caa\",\"debugIcon.stepOverForeground\":\"#908caa\",\"debugIcon.stopForeground\":\"#eb6f92\",\"debugToolBar.background\":\"#2a273f\",\"debugToolBar.border\":\"#393552\",\"descriptionForeground\":\"#908caa\",\"diffEditor.border\":\"#393552\",\"diffEditor.diagonalFill\":\"#817c9c4d\",\"diffEditor.insertedLineBackground\":\"#9ccfd826\",\"diffEditor.insertedTextBackground\":\"#9ccfd826\",\"diffEditor.removedLineBackground\":\"#eb6f9226\",\"diffEditor.removedTextBackground\":\"#eb6f9226\",\"diffEditorOverview.insertedForeground\":\"#9ccfd880\",\"diffEditorOverview.removedForeground\":\"#eb6f9280\",\"dropdown.background\":\"#2a273f\",\"dropdown.border\":\"#817c9c26\",\"dropdown.foreground\":\"#e0def4\",\"dropdown.listBackground\":\"#2a273f\",\"editor.background\":\"#232136\",\"editor.findMatchBackground\":\"#f6c17733\",\"editor.findMatchBorder\":\"#f6c17780\",\"editor.findMatchForeground\":\"#e0def4\",\"editor.findMatchHighlightBackground\":\"#817c9c4d\",\"editor.findMatchHighlightForeground\":\"#e0def4\",\"editor.findRangeHighlightBackground\":\"#817c9c4d\",\"editor.findRangeHighlightBorder\":\"#0000\",\"editor.focusedStackFrameHighlightBackground\":\"#817c9c26\",\"editor.foldBackground\":\"#2a273f\",\"editor.foreground\":\"#e0def4\",\"editor.hoverHighlightBackground\":\"#0000\",\"editor.inactiveSelectionBackground\":\"#817c9c14\",\"editor.inlineValuesBackground\":\"#0000\",\"editor.inlineValuesForeground\":\"#908caa\",\"editor.lineHighlightBackground\":\"#817c9c14\",\"editor.lineHighlightBorder\":\"#0000\",\"editor.linkedEditingBackground\":\"#2a273f\",\"editor.rangeHighlightBackground\":\"#817c9c14\",\"editor.selectionBackground\":\"#817c9c26\",\"editor.selectionForeground\":\"#e0def4\",\"editor.selectionHighlightBackground\":\"#817c9c26\",\"editor.selectionHighlightBorder\":\"#232136\",\"editor.snippetFinalTabstopHighlightBackground\":\"#817c9c26\",\"editor.snippetFinalTabstopHighlightBorder\":\"#2a273f\",\"editor.snippetTabstopHighlightBackground\":\"#817c9c26\",\"editor.snippetTabstopHighlightBorder\":\"#2a273f\",\"editor.stackFrameHighlightBackground\":\"#817c9c26\",\"editor.symbolHighlightBackground\":\"#817c9c26\",\"editor.symbolHighlightBorder\":\"#0000\",\"editor.wordHighlightBackground\":\"#817c9c26\",\"editor.wordHighlightBorder\":\"#0000\",\"editor.wordHighlightStrongBackground\":\"#817c9c26\",\"editor.wordHighlightStrongBorder\":\"#817c9c26\",\"editorBracketHighlight.foreground1\":\"#eb6f9280\",\"editorBracketHighlight.foreground2\":\"#3e8fb080\",\"editorBracketHighlight.foreground3\":\"#f6c17780\",\"editorBracketHighlight.foreground4\":\"#9ccfd880\",\"editorBracketHighlight.foreground5\":\"#ea9a9780\",\"editorBracketHighlight.foreground6\":\"#c4a7e780\",\"editorBracketMatch.background\":\"#0000\",\"editorBracketMatch.border\":\"#908caa\",\"editorBracketPairGuide.activeBackground1\":\"#3e8fb0\",\"editorBracketPairGuide.activeBackground2\":\"#ea9a97\",\"editorBracketPairGuide.activeBackground3\":\"#c4a7e7\",\"editorBracketPairGuide.activeBackground4\":\"#9ccfd8\",\"editorBracketPairGuide.activeBackground5\":\"#f6c177\",\"editorBracketPairGuide.activeBackground6\":\"#eb6f92\",\"editorBracketPairGuide.background1\":\"#3e8fb080\",\"editorBracketPairGuide.background2\":\"#ea9a9780\",\"editorBracketPairGuide.background3\":\"#c4a7e780\",\"editorBracketPairGuide.background4\":\"#9ccfd880\",\"editorBracketPairGuide.background5\":\"#f6c17780\",\"editorBracketPairGuide.background6\":\"#eb6f9280\",\"editorCodeLens.foreground\":\"#ea9a97\",\"editorCursor.background\":\"#e0def4\",\"editorCursor.foreground\":\"#6e6a86\",\"editorError.border\":\"#0000\",\"editorError.foreground\":\"#eb6f92\",\"editorGhostText.foreground\":\"#908caa\",\"editorGroup.border\":\"#0000\",\"editorGroup.dropBackground\":\"#2a273f\",\"editorGroup.emptyBackground\":\"#0000\",\"editorGroup.focusedEmptyBorder\":\"#0000\",\"editorGroupHeader.noTabsBackground\":\"#0000\",\"editorGroupHeader.tabsBackground\":\"#0000\",\"editorGroupHeader.tabsBorder\":\"#0000\",\"editorGutter.addedBackground\":\"#9ccfd8\",\"editorGutter.background\":\"#232136\",\"editorGutter.commentRangeForeground\":\"#393552\",\"editorGutter.deletedBackground\":\"#eb6f92\",\"editorGutter.foldingControlForeground\":\"#c4a7e7\",\"editorGutter.modifiedBackground\":\"#ea9a97\",\"editorHint.border\":\"#0000\",\"editorHint.foreground\":\"#908caa\",\"editorHoverWidget.background\":\"#2a273f\",\"editorHoverWidget.border\":\"#6e6a8680\",\"editorHoverWidget.foreground\":\"#908caa\",\"editorHoverWidget.highlightForeground\":\"#e0def4\",\"editorHoverWidget.statusBarBackground\":\"#0000\",\"editorIndentGuide.activeBackground\":\"#6e6a86\",\"editorIndentGuide.background\":\"#817c9c4d\",\"editorInfo.border\":\"#393552\",\"editorInfo.foreground\":\"#9ccfd8\",\"editorInlayHint.background\":\"#393552\",\"editorInlayHint.foreground\":\"#908caa\",\"editorInlayHint.parameterBackground\":\"#393552\",\"editorInlayHint.parameterForeground\":\"#c4a7e7\",\"editorInlayHint.typeBackground\":\"#393552\",\"editorInlayHint.typeForeground\":\"#9ccfd8\",\"editorLightBulb.foreground\":\"#3e8fb0\",\"editorLightBulbAutoFix.foreground\":\"#ea9a97\",\"editorLineNumber.activeForeground\":\"#e0def4\",\"editorLineNumber.foreground\":\"#908caa\",\"editorLink.activeForeground\":\"#ea9a97\",\"editorMarkerNavigation.background\":\"#2a273f\",\"editorMarkerNavigationError.background\":\"#2a273f\",\"editorMarkerNavigationInfo.background\":\"#2a273f\",\"editorMarkerNavigationWarning.background\":\"#2a273f\",\"editorOverviewRuler.addedForeground\":\"#9ccfd880\",\"editorOverviewRuler.background\":\"#232136\",\"editorOverviewRuler.border\":\"#817c9c4d\",\"editorOverviewRuler.bracketMatchForeground\":\"#908caa\",\"editorOverviewRuler.commentForeground\":\"#908caa80\",\"editorOverviewRuler.commentUnresolvedForeground\":\"#f6c17780\",\"editorOverviewRuler.commonContentForeground\":\"#817c9c14\",\"editorOverviewRuler.currentContentForeground\":\"#817c9c26\",\"editorOverviewRuler.deletedForeground\":\"#eb6f9280\",\"editorOverviewRuler.errorForeground\":\"#eb6f9280\",\"editorOverviewRuler.findMatchForeground\":\"#817c9c4d\",\"editorOverviewRuler.incomingContentForeground\":\"#c4a7e780\",\"editorOverviewRuler.infoForeground\":\"#9ccfd880\",\"editorOverviewRuler.modifiedForeground\":\"#ea9a9780\",\"editorOverviewRuler.rangeHighlightForeground\":\"#817c9c4d\",\"editorOverviewRuler.selectionHighlightForeground\":\"#817c9c4d\",\"editorOverviewRuler.warningForeground\":\"#f6c17780\",\"editorOverviewRuler.wordHighlightForeground\":\"#817c9c26\",\"editorOverviewRuler.wordHighlightStrongForeground\":\"#817c9c4d\",\"editorPane.background\":\"#0000\",\"editorRuler.foreground\":\"#817c9c4d\",\"editorSuggestWidget.background\":\"#2a273f\",\"editorSuggestWidget.border\":\"#0000\",\"editorSuggestWidget.focusHighlightForeground\":\"#ea9a97\",\"editorSuggestWidget.foreground\":\"#908caa\",\"editorSuggestWidget.highlightForeground\":\"#ea9a97\",\"editorSuggestWidget.selectedBackground\":\"#817c9c26\",\"editorSuggestWidget.selectedForeground\":\"#e0def4\",\"editorSuggestWidget.selectedIconForeground\":\"#e0def4\",\"editorUnnecessaryCode.border\":\"#0000\",\"editorUnnecessaryCode.opacity\":\"#e0def480\",\"editorWarning.border\":\"#0000\",\"editorWarning.foreground\":\"#f6c177\",\"editorWhitespace.foreground\":\"#6e6a86\",\"editorWidget.background\":\"#2a273f\",\"editorWidget.border\":\"#393552\",\"editorWidget.foreground\":\"#908caa\",\"editorWidget.resizeBorder\":\"#6e6a86\",\"errorForeground\":\"#eb6f92\",\"extensionBadge.remoteBackground\":\"#c4a7e7\",\"extensionBadge.remoteForeground\":\"#232136\",\"extensionButton.prominentBackground\":\"#ea9a97\",\"extensionButton.prominentForeground\":\"#232136\",\"extensionButton.prominentHoverBackground\":\"#ea9a97e6\",\"extensionIcon.preReleaseForeground\":\"#3e8fb0\",\"extensionIcon.starForeground\":\"#ea9a97\",\"extensionIcon.verifiedForeground\":\"#c4a7e7\",\"focusBorder\":\"#817c9c26\",\"foreground\":\"#e0def4\",\"gitDecoration.addedResourceForeground\":\"#9ccfd8\",\"gitDecoration.conflictingResourceForeground\":\"#eb6f92\",\"gitDecoration.deletedResourceForeground\":\"#908caa\",\"gitDecoration.ignoredResourceForeground\":\"#6e6a86\",\"gitDecoration.modifiedResourceForeground\":\"#ea9a97\",\"gitDecoration.renamedResourceForeground\":\"#3e8fb0\",\"gitDecoration.stageDeletedResourceForeground\":\"#eb6f92\",\"gitDecoration.stageModifiedResourceForeground\":\"#c4a7e7\",\"gitDecoration.submoduleResourceForeground\":\"#f6c177\",\"gitDecoration.untrackedResourceForeground\":\"#f6c177\",\"icon.foreground\":\"#908caa\",\"input.background\":\"#39355280\",\"input.border\":\"#817c9c26\",\"input.foreground\":\"#e0def4\",\"input.placeholderForeground\":\"#908caa\",\"inputOption.activeBackground\":\"#ea9a9726\",\"inputOption.activeBorder\":\"#0000\",\"inputOption.activeForeground\":\"#ea9a97\",\"inputValidation.errorBackground\":\"#2a273f\",\"inputValidation.errorBorder\":\"#817c9c4d\",\"inputValidation.errorForeground\":\"#eb6f92\",\"inputValidation.infoBackground\":\"#2a273f\",\"inputValidation.infoBorder\":\"#817c9c4d\",\"inputValidation.infoForeground\":\"#9ccfd8\",\"inputValidation.warningBackground\":\"#2a273f\",\"inputValidation.warningBorder\":\"#817c9c4d\",\"inputValidation.warningForeground\":\"#9ccfd880\",\"keybindingLabel.background\":\"#393552\",\"keybindingLabel.border\":\"#817c9c4d\",\"keybindingLabel.bottomBorder\":\"#817c9c4d\",\"keybindingLabel.foreground\":\"#c4a7e7\",\"keybindingTable.headerBackground\":\"#393552\",\"keybindingTable.rowsBackground\":\"#2a273f\",\"list.activeSelectionBackground\":\"#817c9c26\",\"list.activeSelectionForeground\":\"#e0def4\",\"list.deemphasizedForeground\":\"#908caa\",\"list.dropBackground\":\"#2a273f\",\"list.errorForeground\":\"#eb6f92\",\"list.filterMatchBackground\":\"#2a273f\",\"list.filterMatchBorder\":\"#ea9a97\",\"list.focusBackground\":\"#817c9c4d\",\"list.focusForeground\":\"#e0def4\",\"list.focusOutline\":\"#817c9c26\",\"list.highlightForeground\":\"#ea9a97\",\"list.hoverBackground\":\"#817c9c14\",\"list.hoverForeground\":\"#e0def4\",\"list.inactiveFocusBackground\":\"#817c9c14\",\"list.inactiveSelectionBackground\":\"#2a273f\",\"list.inactiveSelectionForeground\":\"#e0def4\",\"list.invalidItemForeground\":\"#eb6f92\",\"list.warningForeground\":\"#f6c177\",\"listFilterWidget.background\":\"#2a273f\",\"listFilterWidget.noMatchesOutline\":\"#eb6f92\",\"listFilterWidget.outline\":\"#393552\",\"menu.background\":\"#2a273f\",\"menu.border\":\"#817c9c14\",\"menu.foreground\":\"#e0def4\",\"menu.selectionBackground\":\"#817c9c26\",\"menu.selectionBorder\":\"#393552\",\"menu.selectionForeground\":\"#e0def4\",\"menu.separatorBackground\":\"#817c9c4d\",\"menubar.selectionBackground\":\"#817c9c26\",\"menubar.selectionBorder\":\"#817c9c14\",\"menubar.selectionForeground\":\"#e0def4\",\"merge.border\":\"#393552\",\"merge.commonContentBackground\":\"#817c9c26\",\"merge.commonHeaderBackground\":\"#817c9c26\",\"merge.currentContentBackground\":\"#f6c17780\",\"merge.currentHeaderBackground\":\"#f6c17780\",\"merge.incomingContentBackground\":\"#9ccfd880\",\"merge.incomingHeaderBackground\":\"#9ccfd880\",\"minimap.background\":\"#2a273f\",\"minimap.errorHighlight\":\"#eb6f9280\",\"minimap.findMatchHighlight\":\"#817c9c26\",\"minimap.selectionHighlight\":\"#817c9c26\",\"minimap.warningHighlight\":\"#f6c17780\",\"minimapGutter.addedBackground\":\"#9ccfd8\",\"minimapGutter.deletedBackground\":\"#eb6f92\",\"minimapGutter.modifiedBackground\":\"#ea9a97\",\"minimapSlider.activeBackground\":\"#817c9c4d\",\"minimapSlider.background\":\"#817c9c26\",\"minimapSlider.hoverBackground\":\"#817c9c26\",\"notebook.cellBorderColor\":\"#9ccfd880\",\"notebook.cellEditorBackground\":\"#2a273f\",\"notebook.cellHoverBackground\":\"#39355280\",\"notebook.focusedCellBackground\":\"#817c9c14\",\"notebook.focusedCellBorder\":\"#9ccfd8\",\"notebook.outputContainerBackgroundColor\":\"#817c9c14\",\"notificationCenter.border\":\"#817c9c26\",\"notificationCenterHeader.background\":\"#2a273f\",\"notificationCenterHeader.foreground\":\"#908caa\",\"notificationLink.foreground\":\"#c4a7e7\",\"notificationToast.border\":\"#817c9c26\",\"notifications.background\":\"#2a273f\",\"notifications.border\":\"#817c9c26\",\"notifications.foreground\":\"#e0def4\",\"notificationsErrorIcon.foreground\":\"#eb6f92\",\"notificationsInfoIcon.foreground\":\"#9ccfd8\",\"notificationsWarningIcon.foreground\":\"#f6c177\",\"panel.background\":\"#2a273f\",\"panel.border\":\"#0000\",\"panel.dropBorder\":\"#393552\",\"panelInput.border\":\"#2a273f\",\"panelSection.dropBackground\":\"#817c9c26\",\"panelSectionHeader.background\":\"#2a273f\",\"panelSectionHeader.foreground\":\"#e0def4\",\"panelTitle.activeBorder\":\"#817c9c4d\",\"panelTitle.activeForeground\":\"#e0def4\",\"panelTitle.inactiveForeground\":\"#908caa\",\"peekView.border\":\"#393552\",\"peekViewEditor.background\":\"#2a273f\",\"peekViewEditor.matchHighlightBackground\":\"#817c9c4d\",\"peekViewResult.background\":\"#2a273f\",\"peekViewResult.fileForeground\":\"#908caa\",\"peekViewResult.lineForeground\":\"#908caa\",\"peekViewResult.matchHighlightBackground\":\"#817c9c4d\",\"peekViewResult.selectionBackground\":\"#817c9c26\",\"peekViewResult.selectionForeground\":\"#e0def4\",\"peekViewTitle.background\":\"#393552\",\"peekViewTitleDescription.foreground\":\"#908caa\",\"pickerGroup.border\":\"#817c9c4d\",\"pickerGroup.foreground\":\"#c4a7e7\",\"ports.iconRunningProcessForeground\":\"#ea9a97\",\"problemsErrorIcon.foreground\":\"#eb6f92\",\"problemsInfoIcon.foreground\":\"#9ccfd8\",\"problemsWarningIcon.foreground\":\"#f6c177\",\"progressBar.background\":\"#ea9a97\",\"quickInput.background\":\"#2a273f\",\"quickInput.foreground\":\"#908caa\",\"quickInputList.focusBackground\":\"#817c9c26\",\"quickInputList.focusForeground\":\"#e0def4\",\"quickInputList.focusIconForeground\":\"#e0def4\",\"scrollbar.shadow\":\"#2a273f4d\",\"scrollbarSlider.activeBackground\":\"#3e8fb080\",\"scrollbarSlider.background\":\"#817c9c26\",\"scrollbarSlider.hoverBackground\":\"#817c9c4d\",\"searchEditor.findMatchBackground\":\"#817c9c26\",\"selection.background\":\"#817c9c4d\",\"settings.focusedRowBackground\":\"#2a273f\",\"settings.focusedRowBorder\":\"#817c9c26\",\"settings.headerForeground\":\"#e0def4\",\"settings.modifiedItemIndicator\":\"#ea9a97\",\"settings.rowHoverBackground\":\"#2a273f\",\"sideBar.background\":\"#232136\",\"sideBar.dropBackground\":\"#2a273f\",\"sideBar.foreground\":\"#908caa\",\"sideBarSectionHeader.background\":\"#0000\",\"sideBarSectionHeader.border\":\"#817c9c26\",\"statusBar.background\":\"#232136\",\"statusBar.debuggingBackground\":\"#c4a7e7\",\"statusBar.debuggingForeground\":\"#232136\",\"statusBar.foreground\":\"#908caa\",\"statusBar.noFolderBackground\":\"#232136\",\"statusBar.noFolderForeground\":\"#908caa\",\"statusBarItem.activeBackground\":\"#817c9c4d\",\"statusBarItem.errorBackground\":\"#232136\",\"statusBarItem.errorForeground\":\"#eb6f92\",\"statusBarItem.hoverBackground\":\"#817c9c26\",\"statusBarItem.prominentBackground\":\"#393552\",\"statusBarItem.prominentForeground\":\"#e0def4\",\"statusBarItem.prominentHoverBackground\":\"#817c9c26\",\"statusBarItem.remoteBackground\":\"#232136\",\"statusBarItem.remoteForeground\":\"#f6c177\",\"symbolIcon.arrayForeground\":\"#908caa\",\"symbolIcon.classForeground\":\"#908caa\",\"symbolIcon.colorForeground\":\"#908caa\",\"symbolIcon.constantForeground\":\"#908caa\",\"symbolIcon.constructorForeground\":\"#908caa\",\"symbolIcon.enumeratorForeground\":\"#908caa\",\"symbolIcon.enumeratorMemberForeground\":\"#908caa\",\"symbolIcon.eventForeground\":\"#908caa\",\"symbolIcon.fieldForeground\":\"#908caa\",\"symbolIcon.fileForeground\":\"#908caa\",\"symbolIcon.folderForeground\":\"#908caa\",\"symbolIcon.functionForeground\":\"#908caa\",\"symbolIcon.interfaceForeground\":\"#908caa\",\"symbolIcon.keyForeground\":\"#908caa\",\"symbolIcon.keywordForeground\":\"#908caa\",\"symbolIcon.methodForeground\":\"#908caa\",\"symbolIcon.moduleForeground\":\"#908caa\",\"symbolIcon.namespaceForeground\":\"#908caa\",\"symbolIcon.nullForeground\":\"#908caa\",\"symbolIcon.numberForeground\":\"#908caa\",\"symbolIcon.objectForeground\":\"#908caa\",\"symbolIcon.operatorForeground\":\"#908caa\",\"symbolIcon.packageForeground\":\"#908caa\",\"symbolIcon.propertyForeground\":\"#908caa\",\"symbolIcon.referenceForeground\":\"#908caa\",\"symbolIcon.snippetForeground\":\"#908caa\",\"symbolIcon.stringForeground\":\"#908caa\",\"symbolIcon.structForeground\":\"#908caa\",\"symbolIcon.textForeground\":\"#908caa\",\"symbolIcon.typeParameterForeground\":\"#908caa\",\"symbolIcon.unitForeground\":\"#908caa\",\"symbolIcon.variableForeground\":\"#908caa\",\"tab.activeBackground\":\"#817c9c14\",\"tab.activeForeground\":\"#e0def4\",\"tab.activeModifiedBorder\":\"#9ccfd8\",\"tab.border\":\"#0000\",\"tab.hoverBackground\":\"#817c9c26\",\"tab.inactiveBackground\":\"#0000\",\"tab.inactiveForeground\":\"#908caa\",\"tab.inactiveModifiedBorder\":\"#9ccfd880\",\"tab.lastPinnedBorder\":\"#6e6a86\",\"tab.unfocusedActiveBackground\":\"#0000\",\"tab.unfocusedHoverBackground\":\"#0000\",\"tab.unfocusedInactiveBackground\":\"#0000\",\"tab.unfocusedInactiveModifiedBorder\":\"#9ccfd880\",\"terminal.ansiBlack\":\"#393552\",\"terminal.ansiBlue\":\"#9ccfd8\",\"terminal.ansiBrightBlack\":\"#908caa\",\"terminal.ansiBrightBlue\":\"#9ccfd8\",\"terminal.ansiBrightCyan\":\"#ea9a97\",\"terminal.ansiBrightGreen\":\"#3e8fb0\",\"terminal.ansiBrightMagenta\":\"#c4a7e7\",\"terminal.ansiBrightRed\":\"#eb6f92\",\"terminal.ansiBrightWhite\":\"#e0def4\",\"terminal.ansiBrightYellow\":\"#f6c177\",\"terminal.ansiCyan\":\"#ea9a97\",\"terminal.ansiGreen\":\"#3e8fb0\",\"terminal.ansiMagenta\":\"#c4a7e7\",\"terminal.ansiRed\":\"#eb6f92\",\"terminal.ansiWhite\":\"#e0def4\",\"terminal.ansiYellow\":\"#f6c177\",\"terminal.dropBackground\":\"#817c9c26\",\"terminal.foreground\":\"#e0def4\",\"terminal.selectionBackground\":\"#817c9c26\",\"terminal.tab.activeBorder\":\"#e0def4\",\"terminalCursor.background\":\"#e0def4\",\"terminalCursor.foreground\":\"#6e6a86\",\"textBlockQuote.background\":\"#2a273f\",\"textBlockQuote.border\":\"#817c9c26\",\"textCodeBlock.background\":\"#2a273f\",\"textLink.activeForeground\":\"#c4a7e7e6\",\"textLink.foreground\":\"#c4a7e7\",\"textPreformat.foreground\":\"#f6c177\",\"textSeparator.foreground\":\"#908caa\",\"titleBar.activeBackground\":\"#232136\",\"titleBar.activeForeground\":\"#908caa\",\"titleBar.inactiveBackground\":\"#2a273f\",\"titleBar.inactiveForeground\":\"#908caa\",\"toolbar.activeBackground\":\"#817c9c4d\",\"toolbar.hoverBackground\":\"#817c9c26\",\"tree.indentGuidesStroke\":\"#908caa\",\"walkThrough.embeddedEditorBackground\":\"#232136\",\"welcomePage.background\":\"#232136\",\"welcomePage.buttonBackground\":\"#2a273f\",\"welcomePage.buttonHoverBackground\":\"#393552\",\"widget.shadow\":\"#2a273f4d\",\"window.activeBorder\":\"#2a273f\",\"window.inactiveBorder\":\"#2a273f\"},\"displayName\":\"Rosé Pine Moon\",\"name\":\"rose-pine-moon\",\"tokenColors\":[{\"scope\":[\"comment\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#6e6a86\"}},{\"scope\":[\"constant\"],\"settings\":{\"foreground\":\"#3e8fb0\"}},{\"scope\":[\"constant.numeric\",\"constant.language\"],\"settings\":{\"foreground\":\"#ea9a97\"}},{\"scope\":[\"entity.name\"],\"settings\":{\"foreground\":\"#ea9a97\"}},{\"scope\":[\"entity.name.section\",\"entity.name.tag\",\"entity.name.namespace\",\"entity.name.type\"],\"settings\":{\"foreground\":\"#9ccfd8\"}},{\"scope\":[\"entity.other.attribute-name\",\"entity.other.inherited-class\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#c4a7e7\"}},{\"scope\":[\"invalid\"],\"settings\":{\"foreground\":\"#eb6f92\"}},{\"scope\":[\"invalid.deprecated\"],\"settings\":{\"foreground\":\"#908caa\"}},{\"scope\":[\"keyword\",\"variable.language.this\"],\"settings\":{\"foreground\":\"#3e8fb0\"}},{\"scope\":[\"markup.inserted.diff\"],\"settings\":{\"foreground\":\"#9ccfd8\"}},{\"scope\":[\"markup.deleted.diff\"],\"settings\":{\"foreground\":\"#eb6f92\"}},{\"scope\":\"markup.heading\",\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":\"markup.bold.markdown\",\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":\"markup.italic.markdown\",\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":[\"meta.diff.range\"],\"settings\":{\"foreground\":\"#c4a7e7\"}},{\"scope\":[\"meta.tag\",\"meta.brace\"],\"settings\":{\"foreground\":\"#e0def4\"}},{\"scope\":[\"meta.import\",\"meta.export\"],\"settings\":{\"foreground\":\"#3e8fb0\"}},{\"scope\":\"meta.directive.vue\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#c4a7e7\"}},{\"scope\":\"meta.property-name.css\",\"settings\":{\"foreground\":\"#9ccfd8\"}},{\"scope\":\"meta.property-value.css\",\"settings\":{\"foreground\":\"#f6c177\"}},{\"scope\":\"meta.tag.other.html\",\"settings\":{\"foreground\":\"#908caa\"}},{\"scope\":[\"punctuation\"],\"settings\":{\"foreground\":\"#908caa\"}},{\"scope\":[\"punctuation.accessor\"],\"settings\":{\"foreground\":\"#3e8fb0\"}},{\"scope\":[\"punctuation.definition.string\"],\"settings\":{\"foreground\":\"#f6c177\"}},{\"scope\":[\"punctuation.definition.tag\"],\"settings\":{\"foreground\":\"#6e6a86\"}},{\"scope\":[\"storage.type\",\"storage.modifier\"],\"settings\":{\"foreground\":\"#3e8fb0\"}},{\"scope\":[\"string\"],\"settings\":{\"foreground\":\"#f6c177\"}},{\"scope\":[\"support\"],\"settings\":{\"foreground\":\"#9ccfd8\"}},{\"scope\":[\"support.constant\"],\"settings\":{\"foreground\":\"#f6c177\"}},{\"scope\":[\"support.function\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#eb6f92\"}},{\"scope\":[\"variable\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#ea9a97\"}},{\"scope\":[\"variable.other\",\"variable.language\",\"variable.function\",\"variable.argument\"],\"settings\":{\"foreground\":\"#e0def4\"}},{\"scope\":[\"variable.parameter\"],\"settings\":{\"foreground\":\"#c4a7e7\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CkXjmgJE.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.background\":\"#282727\",\"activityBar.foreground\":\"#C5C9C5\",\"activityBarBadge.background\":\"#658594\",\"activityBarBadge.foreground\":\"#C5C9C5\",\"badge.background\":\"#282727\",\"button.background\":\"#282727\",\"button.foreground\":\"#C8C093\",\"button.secondaryBackground\":\"#223249\",\"button.secondaryForeground\":\"#C5C9C5\",\"checkbox.border\":\"#223249\",\"debugToolBar.background\":\"#0D0C0C\",\"descriptionForeground\":\"#C5C9C5\",\"diffEditor.insertedTextBackground\":\"#2B332880\",\"dropdown.background\":\"#0D0C0C\",\"dropdown.border\":\"#0D0C0C\",\"editor.background\":\"#181616\",\"editor.findMatchBackground\":\"#2D4F67\",\"editor.findMatchBorder\":\"#FF9E3B\",\"editor.findMatchHighlightBackground\":\"#2D4F6780\",\"editor.foreground\":\"#C5C9C5\",\"editor.lineHighlightBackground\":\"#393836\",\"editor.selectionBackground\":\"#223249\",\"editor.selectionHighlightBackground\":\"#39383680\",\"editor.selectionHighlightBorder\":\"#625E5A\",\"editor.wordHighlightBackground\":\"#3938364D\",\"editor.wordHighlightBorder\":\"#625E5A\",\"editor.wordHighlightStrongBackground\":\"#3938364D\",\"editor.wordHighlightStrongBorder\":\"#625E5A\",\"editorBracketHighlight.foreground1\":\"#8992A7\",\"editorBracketHighlight.foreground2\":\"#B6927B\",\"editorBracketHighlight.foreground3\":\"#8BA4B0\",\"editorBracketHighlight.foreground4\":\"#A292A3\",\"editorBracketHighlight.foreground5\":\"#C4B28A\",\"editorBracketHighlight.foreground6\":\"#8EA4A2\",\"editorBracketHighlight.unexpectedBracket.foreground\":\"#C4746E\",\"editorBracketMatch.background\":\"#0D0C0C\",\"editorBracketMatch.border\":\"#625E5A\",\"editorBracketPairGuide.activeBackground1\":\"#8992A7\",\"editorBracketPairGuide.activeBackground2\":\"#B6927B\",\"editorBracketPairGuide.activeBackground3\":\"#8BA4B0\",\"editorBracketPairGuide.activeBackground4\":\"#A292A3\",\"editorBracketPairGuide.activeBackground5\":\"#C4B28A\",\"editorBracketPairGuide.activeBackground6\":\"#8EA4A2\",\"editorCursor.background\":\"#181616\",\"editorCursor.foreground\":\"#C5C9C5\",\"editorError.foreground\":\"#E82424\",\"editorGroup.border\":\"#0D0C0C\",\"editorGroupHeader.tabsBackground\":\"#0D0C0C\",\"editorGutter.addedBackground\":\"#76946A\",\"editorGutter.deletedBackground\":\"#C34043\",\"editorGutter.modifiedBackground\":\"#DCA561\",\"editorHoverWidget.background\":\"#181616\",\"editorHoverWidget.border\":\"#282727\",\"editorHoverWidget.highlightForeground\":\"#658594\",\"editorIndentGuide.activeBackground1\":\"#393836\",\"editorIndentGuide.background1\":\"#282727\",\"editorInlayHint.background\":\"#181616\",\"editorInlayHint.foreground\":\"#737C73\",\"editorLineNumber.activeForeground\":\"#FFA066\",\"editorLineNumber.foreground\":\"#625E5A\",\"editorMarkerNavigation.background\":\"#393836\",\"editorRuler.foreground\":\"#393836\",\"editorSuggestWidget.background\":\"#223249\",\"editorSuggestWidget.border\":\"#223249\",\"editorSuggestWidget.selectedBackground\":\"#2D4F67\",\"editorWarning.foreground\":\"#FF9E3B\",\"editorWhitespace.foreground\":\"#181616\",\"editorWidget.background\":\"#181616\",\"focusBorder\":\"#223249\",\"foreground\":\"#C5C9C5\",\"gitDecoration.ignoredResourceForeground\":\"#737C73\",\"input.background\":\"#0D0C0C\",\"list.activeSelectionBackground\":\"#393836\",\"list.activeSelectionForeground\":\"#C5C9C5\",\"list.focusBackground\":\"#282727\",\"list.focusForeground\":\"#C5C9C5\",\"list.highlightForeground\":\"#8BA4B0\",\"list.hoverBackground\":\"#393836\",\"list.hoverForeground\":\"#C5C9C5\",\"list.inactiveSelectionBackground\":\"#282727\",\"list.inactiveSelectionForeground\":\"#C5C9C5\",\"list.warningForeground\":\"#FF9E3B\",\"menu.background\":\"#393836\",\"menu.border\":\"#0D0C0C\",\"menu.foreground\":\"#C5C9C5\",\"menu.selectionBackground\":\"#0D0C0C\",\"menu.selectionForeground\":\"#C5C9C5\",\"menu.separatorBackground\":\"#625E5A\",\"menubar.selectionBackground\":\"#0D0C0C\",\"menubar.selectionForeground\":\"#C5C9C5\",\"minimapGutter.addedBackground\":\"#76946A\",\"minimapGutter.deletedBackground\":\"#C34043\",\"minimapGutter.modifiedBackground\":\"#DCA561\",\"panel.border\":\"#0D0C0C\",\"panelSectionHeader.background\":\"#181616\",\"peekView.border\":\"#625E5A\",\"peekViewEditor.background\":\"#282727\",\"peekViewEditor.matchHighlightBackground\":\"#2D4F67\",\"peekViewResult.background\":\"#393836\",\"scrollbar.shadow\":\"#393836\",\"scrollbarSlider.activeBackground\":\"#28272780\",\"scrollbarSlider.background\":\"#625E5A66\",\"scrollbarSlider.hoverBackground\":\"#625E5A80\",\"settings.focusedRowBackground\":\"#393836\",\"settings.headerForeground\":\"#C5C9C5\",\"sideBar.background\":\"#181616\",\"sideBar.border\":\"#0D0C0C\",\"sideBar.foreground\":\"#C5C9C5\",\"sideBarSectionHeader.background\":\"#393836\",\"sideBarSectionHeader.foreground\":\"#C5C9C5\",\"statusBar.background\":\"#0D0C0C\",\"statusBar.debuggingBackground\":\"#E82424\",\"statusBar.debuggingBorder\":\"#8992A7\",\"statusBar.debuggingForeground\":\"#C5C9C5\",\"statusBar.foreground\":\"#C8C093\",\"statusBar.noFolderBackground\":\"#181616\",\"statusBarItem.hoverBackground\":\"#393836\",\"statusBarItem.remoteBackground\":\"#2D4F67\",\"statusBarItem.remoteForeground\":\"#C5C9C5\",\"tab.activeBackground\":\"#282727\",\"tab.activeForeground\":\"#8BA4B0\",\"tab.border\":\"#282727\",\"tab.hoverBackground\":\"#393836\",\"tab.inactiveBackground\":\"#1D1C19\",\"tab.unfocusedHoverBackground\":\"#181616\",\"terminal.ansiBlack\":\"#0D0C0C\",\"terminal.ansiBlue\":\"#8BA4B0\",\"terminal.ansiBrightBlack\":\"#A6A69C\",\"terminal.ansiBrightBlue\":\"#7FB4CA\",\"terminal.ansiBrightCyan\":\"#7AA89F\",\"terminal.ansiBrightGreen\":\"#87A987\",\"terminal.ansiBrightMagenta\":\"#938AA9\",\"terminal.ansiBrightRed\":\"#E46876\",\"terminal.ansiBrightWhite\":\"#C5C9C5\",\"terminal.ansiBrightYellow\":\"#E6C384\",\"terminal.ansiCyan\":\"#8EA4A2\",\"terminal.ansiGreen\":\"#8A9A7B\",\"terminal.ansiMagenta\":\"#A292A3\",\"terminal.ansiRed\":\"#C4746E\",\"terminal.ansiWhite\":\"#C8C093\",\"terminal.ansiYellow\":\"#C4B28A\",\"terminal.background\":\"#181616\",\"terminal.border\":\"#0D0C0C\",\"terminal.foreground\":\"#C5C9C5\",\"terminal.selectionBackground\":\"#223249\",\"textBlockQuote.background\":\"#181616\",\"textBlockQuote.border\":\"#0D0C0C\",\"textLink.foreground\":\"#6A9589\",\"textPreformat.foreground\":\"#FF9E3B\",\"titleBar.activeBackground\":\"#393836\",\"titleBar.activeForeground\":\"#C5C9C5\",\"titleBar.inactiveBackground\":\"#181616\",\"titleBar.inactiveForeground\":\"#C5C9C5\",\"walkThrough.embeddedEditorBackground\":\"#181616\"},\"displayName\":\"Kanagawa Dragon\",\"name\":\"kanagawa-dragon\",\"semanticHighlighting\":true,\"semanticTokenColors\":{\"arithmetic\":\"#B98D7B\",\"function\":\"#8BA4B0\",\"keyword.controlFlow\":{\"fontStyle\":\"bold\",\"foreground\":\"#8992A7\"},\"macro\":\"#C4746E\",\"method\":\"#949FB5\",\"operator\":\"#B98D7B\",\"parameter\":\"#A6A69C\",\"parameter.declaration\":\"#A6A69C\",\"parameter.definition\":\"#A6A69C\",\"variable\":\"#C5C9C5\",\"variable.readonly\":\"#C5C9C5\",\"variable.readonly.defaultLibrary\":\"#C5C9C5\",\"variable.readonly.local\":\"#C5C9C5\"},\"tokenColors\":[{\"scope\":[\"comment\",\"punctuation.definition.comment\"],\"settings\":{\"foreground\":\"#737C73\"}},{\"scope\":[\"variable\",\"string constant.other.placeholder\"],\"settings\":{\"foreground\":\"#C5C9C5\"}},{\"scope\":[\"constant.other.color\"],\"settings\":{\"foreground\":\"#B6927B\"}},{\"scope\":[\"invalid\",\"invalid.illegal\"],\"settings\":{\"foreground\":\"#E82424\"}},{\"scope\":[\"storage.type\"],\"settings\":{\"foreground\":\"#8992A7\"}},{\"scope\":[\"storage.modifier\"],\"settings\":{\"foreground\":\"#8992A7\"}},{\"scope\":[\"keyword.control.flow\",\"keyword.control.conditional\",\"keyword.control.loop\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#8992A7\"}},{\"scope\":[\"keyword.control\",\"constant.other.color\",\"meta.tag\",\"keyword.other.template\",\"keyword.other.substitution\",\"keyword.other\"],\"settings\":{\"foreground\":\"#8992A7\"}},{\"scope\":[\"keyword.other.definition.ini\"],\"settings\":{\"foreground\":\"#B6927B\"}},{\"scope\":[\"keyword.control.trycatch\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#C4746E\"}},{\"scope\":[\"keyword.other.unit\",\"keyword.operator\"],\"settings\":{\"foreground\":\"#C4B28A\"}},{\"scope\":[\"punctuation\",\"punctuation.definition.tag\",\"punctuation.separator.inheritance.php\",\"punctuation.definition.tag.html\",\"punctuation.definition.tag.begin.html\",\"punctuation.definition.tag.end.html\",\"punctuation.section.embedded\",\"meta.brace\",\"keyword.operator.type.annotation\",\"keyword.operator.namespace\"],\"settings\":{\"foreground\":\"#9E9B93\"}},{\"scope\":[\"entity.name.tag\",\"meta.tag.sgml\"],\"settings\":{\"foreground\":\"#C4B28A\"}},{\"scope\":[\"entity.name.function\",\"meta.function-call\",\"variable.function\",\"support.function\"],\"settings\":{\"foreground\":\"#8BA4B0\"}},{\"scope\":[\"keyword.other.special-method\"],\"settings\":{\"foreground\":\"#949FB5\"}},{\"scope\":[\"entity.name.function.macro\"],\"settings\":{\"foreground\":\"#C4746E\"}},{\"scope\":[\"meta.block variable.other\"],\"settings\":{\"foreground\":\"#C5C9C5\"}},{\"scope\":[\"variable.other.enummember\"],\"settings\":{\"foreground\":\"#B6927B\"}},{\"scope\":[\"support.other.variable\"],\"settings\":{\"foreground\":\"#C5C9C5\"}},{\"scope\":[\"string.other.link\"],\"settings\":{\"foreground\":\"#949FB5\"}},{\"scope\":[\"constant.numeric\",\"constant.language\",\"support.constant\",\"constant.character\",\"constant.escape\"],\"settings\":{\"foreground\":\"#B6927B\"}},{\"scope\":[\"constant.language.boolean\"],\"settings\":{\"foreground\":\"#B6927B\"}},{\"scope\":[\"constant.numeric\"],\"settings\":{\"foreground\":\"#A292A3\"}},{\"scope\":[\"string\",\"punctuation.definition.string\",\"constant.other.symbol\",\"constant.other.key\",\"entity.other.inherited-class\",\"markup.heading\",\"markup.inserted.git_gutter\",\"meta.group.braces.curly constant.other.object.key.js string.unquoted.label.js\",\"markup.inline.raw.string\"],\"settings\":{\"foreground\":\"#8A9A7B\"}},{\"scope\":[\"entity.name\",\"support.type\",\"support.class\",\"support.other.namespace.use.php\",\"meta.use.php\",\"support.other.namespace.php\",\"support.type.sys-types\"],\"settings\":{\"foreground\":\"#8EA4A2\"}},{\"scope\":[\"entity.name.type.module\",\"entity.name.namespace\"],\"settings\":{\"foreground\":\"#C4B28A\"}},{\"scope\":[\"entity.name.import.go\"],\"settings\":{\"foreground\":\"#8A9A7B\"}},{\"scope\":[\"keyword.blade\"],\"settings\":{\"foreground\":\"#8992A7\"}},{\"scope\":[\"variable.other.property\"],\"settings\":{\"foreground\":\"#C4B28A\"}},{\"scope\":[\"keyword.control.import\",\"keyword.import\",\"meta.import\"],\"settings\":{\"foreground\":\"#B6927B\"}},{\"scope\":[\"source.css support.type.property-name\",\"source.sass support.type.property-name\",\"source.scss support.type.property-name\",\"source.less support.type.property-name\",\"source.stylus support.type.property-name\",\"source.postcss support.type.property-name\"],\"settings\":{\"foreground\":\"#8EA4A2\"}},{\"scope\":[\"entity.name.module.js\",\"variable.import.parameter.js\",\"variable.other.class.js\"],\"settings\":{\"foreground\":\"#C4746E\"}},{\"scope\":[\"variable.language\"],\"settings\":{\"foreground\":\"#C4746E\"}},{\"scope\":[\"entity.name.method.js\"],\"settings\":{\"foreground\":\"#949FB5\"}},{\"scope\":[\"meta.class-method.js entity.name.function.js\",\"variable.function.constructor\"],\"settings\":{\"foreground\":\"#949FB5\"}},{\"scope\":[\"entity.other.attribute-name\"],\"settings\":{\"foreground\":\"#8992A7\"}},{\"scope\":[\"entity.other.attribute-name.class\"],\"settings\":{\"foreground\":\"#C4B28A\"}},{\"scope\":[\"source.sass keyword.control\"],\"settings\":{\"foreground\":\"#949FB5\"}},{\"scope\":[\"markup.inserted\"],\"settings\":{\"foreground\":\"#76946A\"}},{\"scope\":[\"markup.deleted\"],\"settings\":{\"foreground\":\"#C34043\"}},{\"scope\":[\"markup.changed\"],\"settings\":{\"foreground\":\"#DCA561\"}},{\"scope\":[\"string.regexp\"],\"settings\":{\"foreground\":\"#B98D7B\"}},{\"scope\":[\"constant.character.escape\"],\"settings\":{\"foreground\":\"#949FB5\"}},{\"scope\":[\"*url*\",\"*link*\",\"*uri*\"],\"settings\":{\"fontStyle\":\"underline\"}},{\"scope\":[\"tag.decorator.js entity.name.tag.js\",\"tag.decorator.js punctuation.definition.tag.js\"],\"settings\":{\"foreground\":\"#8992A7\"}},{\"scope\":[\"source.js constant.other.object.key.js string.unquoted.label.js\"],\"settings\":{\"foreground\":\"#C4746E\"}},{\"scope\":[\"source.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#A292A3\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#C4B28A\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#B6927B\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#C4746E\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#B6927B\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#8BA4B0\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#A292A3\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#8992A7\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#8A9A7B\"}},{\"scope\":[\"meta.tag JSXNested\",\"meta.jsx.children\",\"text.html\",\"text.log\"],\"settings\":{\"foreground\":\"#C5C9C5\"}},{\"scope\":[\"text.html.markdown\",\"punctuation.definition.list_item.markdown\"],\"settings\":{\"foreground\":\"#C5C9C5\"}},{\"scope\":[\"text.html.markdown markup.inline.raw.markdown\"],\"settings\":{\"foreground\":\"#8992A7\"}},{\"scope\":[\"text.html.markdown markup.inline.raw.markdown punctuation.definition.raw.markdown\"],\"settings\":{\"foreground\":\"#8992A7\"}},{\"scope\":[\"markdown.heading\",\"entity.name.section.markdown\",\"markup.heading.markdown\"],\"settings\":{\"foreground\":\"#8BA4B0\"}},{\"scope\":[\"markup.italic\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#C4746E\"}},{\"scope\":[\"markup.bold\",\"markup.bold string\"],\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":[\"markup.bold markup.italic\",\"markup.italic markup.bold\",\"markup.quote markup.bold\",\"markup.bold markup.italic string\",\"markup.italic markup.bold string\",\"markup.quote markup.bold string\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#C4746E\"}},{\"scope\":[\"markup.underline\"],\"settings\":{\"fontStyle\":\"underline\",\"foreground\":\"#949FB5\"}},{\"scope\":[\"markup.quote punctuation.definition.blockquote.markdown\"],\"settings\":{\"foreground\":\"#737C73\"}},{\"scope\":[\"markup.quote\"],\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":[\"string.other.link.title.markdown\"],\"settings\":{\"foreground\":\"#B6927B\"}},{\"scope\":[\"string.other.link.description.title.markdown\"],\"settings\":{\"foreground\":\"#8992A7\"}},{\"scope\":[\"constant.other.reference.link.markdown\"],\"settings\":{\"foreground\":\"#C4B28A\"}},{\"scope\":[\"markup.raw.block\"],\"settings\":{\"foreground\":\"#8992A7\"}},{\"scope\":[\"markup.raw.block.fenced.markdown\"],\"settings\":{\"foreground\":\"#737C73\"}},{\"scope\":[\"punctuation.definition.fenced.markdown\"],\"settings\":{\"foreground\":\"#737C73\"}},{\"scope\":[\"markup.raw.block.fenced.markdown\",\"variable.language.fenced.markdown\",\"punctuation.section.class.end\"],\"settings\":{\"foreground\":\"#C5C9C5\"}},{\"scope\":[\"variable.language.fenced.markdown\"],\"settings\":{\"foreground\":\"#737C73\"}},{\"scope\":[\"meta.separator\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#9E9B93\"}},{\"scope\":[\"markup.table\"],\"settings\":{\"foreground\":\"#C5C9C5\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Ckkbw-AO.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#%\\^\\&\\*\\(\\)\\=\\$\\-\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{blockComment:[\"###\",\"###\"],lineComment:\"#\"},folding:{markers:{start:new RegExp(\"^\\\\s*#region\\\\b\"),end:new RegExp(\"^\\\\s*#endregion\\\\b\")}}},t={defaultToken:\"\",ignoreCase:!1,tokenPostfix:\".mips\",regEx:/\\/(?!\\/\\/)(?:[^\\/\\\\]|\\\\.)*\\/[igm]*/,keywords:[\".data\",\".text\",\"syscall\",\"trap\",\"add\",\"addu\",\"addi\",\"addiu\",\"and\",\"andi\",\"div\",\"divu\",\"mult\",\"multu\",\"nor\",\"or\",\"ori\",\"sll\",\"slv\",\"sra\",\"srav\",\"srl\",\"srlv\",\"sub\",\"subu\",\"xor\",\"xori\",\"lhi\",\"lho\",\"lhi\",\"llo\",\"slt\",\"slti\",\"sltu\",\"sltiu\",\"beq\",\"bgtz\",\"blez\",\"bne\",\"j\",\"jal\",\"jalr\",\"jr\",\"lb\",\"lbu\",\"lh\",\"lhu\",\"lw\",\"li\",\"la\",\"sb\",\"sh\",\"sw\",\"mfhi\",\"mflo\",\"mthi\",\"mtlo\",\"move\"],symbols:/[\\.,\\:]+/,escapes:/\\\\(?:[abfnrtv\\\\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/\\$[a-zA-Z_]\\w*/,\"variable.predefined\"],[/[.a-zA-Z_]\\w*/,{cases:{this:\"variable.predefined\",\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"\"}}],[/[ \\t\\r\\n]+/,\"\"],[/#.*$/,\"comment\"],[\"///\",{token:\"regexp\",next:\"@hereregexp\"}],[/^(\\s*)(@regEx)/,[\"\",\"regexp\"]],[/(\\,)(\\s*)(@regEx)/,[\"delimiter\",\"\",\"regexp\"]],[/(\\:)(\\s*)(@regEx)/,[\"delimiter\",\"\",\"regexp\"]],[/@symbols/,\"delimiter\"],[/\\d+[eE]([\\-+]?\\d+)?/,\"number.float\"],[/\\d+\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F]+/,\"number.hex\"],[/0[0-7]+(?!\\d)/,\"number.octal\"],[/\\d+/,\"number\"],[/[,.]/,\"delimiter\"],[/\"\"\"/,\"string\",'@herestring.\"\"\"'],[/'''/,\"string\",\"@herestring.'''\"],[/\"/,{cases:{\"@eos\":\"string\",\"@default\":{token:\"string\",next:'@string.\"'}}}],[/'/,{cases:{\"@eos\":\"string\",\"@default\":{token:\"string\",next:\"@string.'\"}}}]],string:[[/[^\"'\\#\\\\]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\./,\"string.escape.invalid\"],[/\\./,\"string.escape.invalid\"],[/#{/,{cases:{'$S2==\"':{token:\"string\",next:\"root.interpolatedstring\"},\"@default\":\"string\"}}],[/[\"']/,{cases:{\"$#==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":\"string\"}}],[/#/,\"string\"]],herestring:[[/(\"\"\"|''')/,{cases:{\"$1==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":\"string\"}}],[/[^#\\\\'\"]+/,\"string\"],[/['\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\./,\"string.escape.invalid\"],[/#{/,{token:\"string.quote\",next:\"root.interpolatedstring\"}],[/#/,\"string\"]],comment:[[/[^#]+/,\"comment\"],[/#/,\"comment\"]],hereregexp:[[/[^\\\\\\/#]+/,\"regexp\"],[/\\\\./,\"regexp\"],[/#.*$/,\"comment\"],[\"///[igm]*\",{token:\"regexp\",next:\"@pop\"}],[/\\//,\"regexp\"]]}};export{e as conf,t as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/ClGRhx96.js",
    "content": "const E=Object.freeze(JSON.parse(`{\"displayName\":\"DAX\",\"name\":\"dax\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#keywords\"},{\"include\":\"#labels\"},{\"include\":\"#parameters\"},{\"include\":\"#strings\"},{\"include\":\"#numbers\"}],\"repository\":{\"comments\":{\"patterns\":[{\"begin\":\"//\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.dax\"}},\"end\":\"\\\\n\",\"name\":\"comment.line.dax\"},{\"begin\":\"--\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.dax\"}},\"end\":\"\\\\n\",\"name\":\"comment.line.dax\"},{\"begin\":\"/\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.dax\"}},\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.dax\"}]},\"keywords\":{\"patterns\":[{\"match\":\"\\\\\\\\b(YIELDMAT|YIELDDISC|YIELD|YEARFRAC|YEAR|XNPV|XIRR|WEEKNUM|WEEKDAY|VDB|VARX.S|VARX.P|VAR.S|VAR.P|VALUES|VALUE|UTCTODAY|UTCNOW|USERPRINCIPALNAME|USEROBJECTID|USERNAME|USERELATIONSHIP|USERCULTURE|UPPER|UNION|UNICODE|UNICHAR|TRUNC|TRUE|TRIM|TREATAS|TOTALYTD|TOTALQTD|TOTALMTD|TOPNSKIP|TOPNPERLEVEL|TOPN|TODAY|TIMEVALUE|TIME|TBILLYIELD|TBILLPRICE|TBILLEQ|TANH|TAN|T.INV.2T|T.INV|T.DIST.RT|T.DIST.2T|T.DIST|SYD|SWITCH|SUMX|SUMMARIZECOLUMNS|SUMMARIZE|SUM|SUBSTITUTEWITHINDEX|SUBSTITUTE|STDEVX.S|STDEVX.P|STDEV.S|STDEV.P|STARTOFYEAR|STARTOFQUARTER|STARTOFMONTH|SQRTPI|SQRT|SLN|SINH|SIN|SIGN|SELECTEDVALUE|SELECTEDMEASURENAME|SELECTEDMEASUREFORMATSTRING|SELECTEDMEASURE|SELECTCOLUMNS|SECOND|SEARCH|SAMPLE|SAMEPERIODLASTYEAR|RRI|ROW|ROUNDUP|ROUNDDOWN|ROUND|ROLLUPISSUBTOTAL|ROLLUPGROUP|ROLLUPADDISSUBTOTAL|ROLLUP|RIGHT|REPT|REPLACE|REMOVEFILTERS|RELATEDTABLE|RELATED|RECEIVED|RATE|RANKX|RANK.EQ|RANDBETWEEN|RAND|RADIANS|QUOTIENT|QUARTER|PV|PRODUCTX|PRODUCT|PRICEMAT|PRICEDISC|PRICE|PREVIOUSYEAR|PREVIOUSQUARTER|PREVIOUSMONTH|PREVIOUSDAY|PPMT|POWER|POISSON.DIST|PMT|PI|PERMUT|PERCENTILEX.INC|PERCENTILEX.EXC|PERCENTILE.INC|PERCENTILE.EXC|PDURATION|PATHLENGTH|PATHITEMREVERSE|PATHITEM|PATHCONTAINS|PATH|PARALLELPERIOD|OR|OPENINGBALANCEYEAR|OPENINGBALANCEQUARTER|OPENINGBALANCEMONTH|ODDLYIELD|ODDLPRICE|ODDFYIELD|ODDFPRICE|ODD|NPER|NOW|NOT|NORM.S.INV|NORM.S.DIST|NORM.INV|NORM.DIST|NONVISUAL|NOMINAL|NEXTYEAR|NEXTQUARTER|NEXTMONTH|NEXTDAY|NATURALLEFTOUTERJOIN|NATURALINNERJOIN|MROUND|MONTH|MOD|MINX|MINUTE|MINA|MIN|MID|MEDIANX|MEDIAN|MDURATION|MAXX|MAXA|MAX|LOWER|LOOKUPVALUE|LOG10|LOG|LN|LEN|LEFT|LCM|LASTNONBLANKVALUE|LASTNONBLANK|LASTDATE|KEYWORDMATCH|KEEPFILTERS|ISTEXT|ISSUBTOTAL|ISSELECTEDMEASURE|ISPMT|ISONORAFTER|ISODD|ISO.CEILING|ISNUMBER|ISNONTEXT|ISLOGICAL|ISINSCOPE|ISFILTERED|ISEVEN|ISERROR|ISEMPTY|ISCROSSFILTERED|ISBLANK|ISAFTER|IPMT|INTRATE|INTERSECT|INT|IGNORE|IFERROR|IF.EAGER|IF|HOUR|HASONEVALUE|HASONEFILTER|HASH|GROUPBY|GEOMEANX|GEOMEAN|GENERATESERIES|GENERATEALL|GENERATE|GCD|FV|FORMAT|FLOOR|FIXED|FIRSTNONBLANKVALUE|FIRSTNONBLANK|FIRSTDATE|FIND|FILTERS|FILTER|FALSE|FACT|EXPON.DIST|EXP|EXCEPT|EXACT|EVEN|ERROR|EOMONTH|ENDOFYEAR|ENDOFQUARTER|ENDOFMONTH|EFFECT|EDATE|EARLIEST|EARLIER|DURATION|DOLLARFR|DOLLARDE|DIVIDE|DISTINCTCOUNTNOBLANK|DISTINCTCOUNT|DISTINCT|DISC|DETAILROWS|DEGREES|DDB|DB|DAY|DATEVALUE|DATESYTD|DATESQTD|DATESMTD|DATESINPERIOD|DATESBETWEEN|DATEDIFF|DATEADD|DATE|DATATABLE|CUSTOMDATA|CURRENTGROUP|CURRENCY|CUMPRINC|CUMIPMT|CROSSJOIN|CROSSFILTER|COUPPCD|COUPNUM|COUPNCD|COUPDAYSNC|COUPDAYS|COUPDAYBS|COUNTX|COUNTROWS|COUNTBLANK|COUNTAX|COUNTA|COUNT|COTH|COT|COSH|COS|CONVERT|CONTAINSSTRINGEXACT|CONTAINSSTRING|CONTAINSROW|CONTAINS|CONFIDENCE.T|CONFIDENCE.NORM|CONCATENATEX|CONCATENATE|COMBINEVALUES|COMBINA|COMBIN|COLUMNSTATISTICS|COALESCE|CLOSINGBALANCEYEAR|CLOSINGBALANCEQUARTER|CLOSINGBALANCEMONTH|CHISQ.INV.RT|CHISQ.INV|CHISQ.DIST.RT|CHISQ.DIST|CEILING|CALENDARAUTO|CALENDAR|CALCULATETABLE|CALCULATE|BLANK|BETA.INV|BETA.DIST|AVERAGEX|AVERAGEA|AVERAGE|ATANH|ATAN|ASINH|ASIN|APPROXIMATEDISTINCTCOUNT|AND|AMORLINC|AMORDEGRC|ALLSELECTED|ALLNOBLANKROW|ALLEXCEPT|ALLCROSSFILTERED|ALL|ADDMISSINGITEMS|ADDCOLUMNS|ACOTH|ACOT|ACOSH|ACOS|ACCRINTM|ACCRINT|ABS)\\\\\\\\b\",\"name\":\"variable.language.dax\"},{\"match\":\"\\\\\\\\b(DEFINE|EVALUATE|ORDER BY|RETURN|VAR)\\\\\\\\b\",\"name\":\"keyword.control.dax\"},{\"match\":\"{|}\",\"name\":\"keyword.array.constructor.dax\"},{\"match\":\">|<|>=|<=|=(?!==)\",\"name\":\"keyword.operator.comparison.dax\"},{\"match\":\"&&|IN|NOT|\\\\\\\\|\\\\\\\\|\",\"name\":\"keyword.operator.logical.dax\"},{\"match\":\"\\\\\\\\+|\\\\\\\\-|\\\\\\\\*|\\\\\\\\/\",\"name\":\"keyword.arithmetic.operator.dax\"},{\"begin\":\"\\\\\\\\[\",\"end\":\"\\\\\\\\]\",\"name\":\"support.function.dax\"},{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.dax\"},{\"begin\":\"\\\\\\\\'\",\"end\":\"\\\\\\\\'\",\"name\":\"support.class.dax\"}]},\"labels\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.label.dax\"},\"2\":{\"name\":\"entity.name.label.dax\"}},\"match\":\"(^(.*?)\\\\\\\\s*(:=|!=))\"}]},\"metas\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.dax\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.dax\"}}}]},\"numbers\":{\"match\":\"-?(?:0|[1-9]\\\\\\\\d*)(?:(?:\\\\\\\\.\\\\\\\\d+)?(?:[eE][+-]?\\\\\\\\d+)?)?\",\"name\":\"constant.numeric.dax\"},\"parameters\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(?<!\\\\\\\\.)(VAR)\\\\\\\\b(?<!\\\\\\\\.)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.dax\"},\"2\":{\"name\":\"variable.other.readwrite.dax\"}},\"comment\":\"build out variable assignment\",\"end\":\"=\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.assignment.dax\"}},\"name\":\"meta.function.definition.parameters.dax\",\"patterns\":[{\"match\":\"=\",\"name\":\"keyword.control.dax\"}]},{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"variable.other.constant.dax\"}]},\"strings\":{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.dax\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.dax\"}]}},\"scopeName\":\"source.dax\"}`)),T=[E];export{T as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CmCqftbK.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBorder\":\"#e0def4\",\"activityBar.background\":\"#191724\",\"activityBar.dropBorder\":\"#26233a\",\"activityBar.foreground\":\"#e0def4\",\"activityBar.inactiveForeground\":\"#908caa\",\"activityBarBadge.background\":\"#ebbcba\",\"activityBarBadge.foreground\":\"#191724\",\"badge.background\":\"#ebbcba\",\"badge.foreground\":\"#191724\",\"banner.background\":\"#1f1d2e\",\"banner.foreground\":\"#e0def4\",\"banner.iconForeground\":\"#908caa\",\"breadcrumb.activeSelectionForeground\":\"#ebbcba\",\"breadcrumb.background\":\"#191724\",\"breadcrumb.focusForeground\":\"#908caa\",\"breadcrumb.foreground\":\"#6e6a86\",\"breadcrumbPicker.background\":\"#1f1d2e\",\"button.background\":\"#ebbcba\",\"button.foreground\":\"#191724\",\"button.hoverBackground\":\"#ebbcbae6\",\"button.secondaryBackground\":\"#1f1d2e\",\"button.secondaryForeground\":\"#e0def4\",\"button.secondaryHoverBackground\":\"#26233a\",\"charts.blue\":\"#9ccfd8\",\"charts.foreground\":\"#e0def4\",\"charts.green\":\"#31748f\",\"charts.lines\":\"#908caa\",\"charts.orange\":\"#ebbcba\",\"charts.purple\":\"#c4a7e7\",\"charts.red\":\"#eb6f92\",\"charts.yellow\":\"#f6c177\",\"checkbox.background\":\"#1f1d2e\",\"checkbox.border\":\"#6e6a8633\",\"checkbox.foreground\":\"#e0def4\",\"debugExceptionWidget.background\":\"#1f1d2e\",\"debugExceptionWidget.border\":\"#6e6a8633\",\"debugIcon.breakpointCurrentStackframeForeground\":\"#908caa\",\"debugIcon.breakpointDisabledForeground\":\"#908caa\",\"debugIcon.breakpointForeground\":\"#908caa\",\"debugIcon.breakpointStackframeForeground\":\"#908caa\",\"debugIcon.breakpointUnverifiedForeground\":\"#908caa\",\"debugIcon.continueForeground\":\"#908caa\",\"debugIcon.disconnectForeground\":\"#908caa\",\"debugIcon.pauseForeground\":\"#908caa\",\"debugIcon.restartForeground\":\"#908caa\",\"debugIcon.startForeground\":\"#908caa\",\"debugIcon.stepBackForeground\":\"#908caa\",\"debugIcon.stepIntoForeground\":\"#908caa\",\"debugIcon.stepOutForeground\":\"#908caa\",\"debugIcon.stepOverForeground\":\"#908caa\",\"debugIcon.stopForeground\":\"#eb6f92\",\"debugToolBar.background\":\"#1f1d2e\",\"debugToolBar.border\":\"#26233a\",\"descriptionForeground\":\"#908caa\",\"diffEditor.border\":\"#26233a\",\"diffEditor.diagonalFill\":\"#6e6a8666\",\"diffEditor.insertedLineBackground\":\"#9ccfd826\",\"diffEditor.insertedTextBackground\":\"#9ccfd826\",\"diffEditor.removedLineBackground\":\"#eb6f9226\",\"diffEditor.removedTextBackground\":\"#eb6f9226\",\"diffEditorOverview.insertedForeground\":\"#9ccfd880\",\"diffEditorOverview.removedForeground\":\"#eb6f9280\",\"dropdown.background\":\"#1f1d2e\",\"dropdown.border\":\"#6e6a8633\",\"dropdown.foreground\":\"#e0def4\",\"dropdown.listBackground\":\"#1f1d2e\",\"editor.background\":\"#191724\",\"editor.findMatchBackground\":\"#f6c17733\",\"editor.findMatchBorder\":\"#f6c17780\",\"editor.findMatchForeground\":\"#e0def4\",\"editor.findMatchHighlightBackground\":\"#6e6a8666\",\"editor.findMatchHighlightForeground\":\"#e0def4\",\"editor.findRangeHighlightBackground\":\"#6e6a8666\",\"editor.findRangeHighlightBorder\":\"#0000\",\"editor.focusedStackFrameHighlightBackground\":\"#6e6a8633\",\"editor.foldBackground\":\"#1f1d2e\",\"editor.foreground\":\"#e0def4\",\"editor.hoverHighlightBackground\":\"#0000\",\"editor.inactiveSelectionBackground\":\"#6e6a861a\",\"editor.inlineValuesBackground\":\"#0000\",\"editor.inlineValuesForeground\":\"#908caa\",\"editor.lineHighlightBackground\":\"#6e6a861a\",\"editor.lineHighlightBorder\":\"#0000\",\"editor.linkedEditingBackground\":\"#1f1d2e\",\"editor.rangeHighlightBackground\":\"#6e6a861a\",\"editor.selectionBackground\":\"#6e6a8633\",\"editor.selectionForeground\":\"#e0def4\",\"editor.selectionHighlightBackground\":\"#6e6a8633\",\"editor.selectionHighlightBorder\":\"#191724\",\"editor.snippetFinalTabstopHighlightBackground\":\"#6e6a8633\",\"editor.snippetFinalTabstopHighlightBorder\":\"#1f1d2e\",\"editor.snippetTabstopHighlightBackground\":\"#6e6a8633\",\"editor.snippetTabstopHighlightBorder\":\"#1f1d2e\",\"editor.stackFrameHighlightBackground\":\"#6e6a8633\",\"editor.symbolHighlightBackground\":\"#6e6a8633\",\"editor.symbolHighlightBorder\":\"#0000\",\"editor.wordHighlightBackground\":\"#6e6a8633\",\"editor.wordHighlightBorder\":\"#0000\",\"editor.wordHighlightStrongBackground\":\"#6e6a8633\",\"editor.wordHighlightStrongBorder\":\"#6e6a8633\",\"editorBracketHighlight.foreground1\":\"#eb6f9280\",\"editorBracketHighlight.foreground2\":\"#31748f80\",\"editorBracketHighlight.foreground3\":\"#f6c17780\",\"editorBracketHighlight.foreground4\":\"#9ccfd880\",\"editorBracketHighlight.foreground5\":\"#ebbcba80\",\"editorBracketHighlight.foreground6\":\"#c4a7e780\",\"editorBracketMatch.background\":\"#0000\",\"editorBracketMatch.border\":\"#908caa\",\"editorBracketPairGuide.activeBackground1\":\"#31748f\",\"editorBracketPairGuide.activeBackground2\":\"#ebbcba\",\"editorBracketPairGuide.activeBackground3\":\"#c4a7e7\",\"editorBracketPairGuide.activeBackground4\":\"#9ccfd8\",\"editorBracketPairGuide.activeBackground5\":\"#f6c177\",\"editorBracketPairGuide.activeBackground6\":\"#eb6f92\",\"editorBracketPairGuide.background1\":\"#31748f80\",\"editorBracketPairGuide.background2\":\"#ebbcba80\",\"editorBracketPairGuide.background3\":\"#c4a7e780\",\"editorBracketPairGuide.background4\":\"#9ccfd880\",\"editorBracketPairGuide.background5\":\"#f6c17780\",\"editorBracketPairGuide.background6\":\"#eb6f9280\",\"editorCodeLens.foreground\":\"#ebbcba\",\"editorCursor.background\":\"#e0def4\",\"editorCursor.foreground\":\"#6e6a86\",\"editorError.border\":\"#0000\",\"editorError.foreground\":\"#eb6f92\",\"editorGhostText.foreground\":\"#908caa\",\"editorGroup.border\":\"#0000\",\"editorGroup.dropBackground\":\"#1f1d2e\",\"editorGroup.emptyBackground\":\"#0000\",\"editorGroup.focusedEmptyBorder\":\"#0000\",\"editorGroupHeader.noTabsBackground\":\"#0000\",\"editorGroupHeader.tabsBackground\":\"#0000\",\"editorGroupHeader.tabsBorder\":\"#0000\",\"editorGutter.addedBackground\":\"#9ccfd8\",\"editorGutter.background\":\"#191724\",\"editorGutter.commentRangeForeground\":\"#26233a\",\"editorGutter.deletedBackground\":\"#eb6f92\",\"editorGutter.foldingControlForeground\":\"#c4a7e7\",\"editorGutter.modifiedBackground\":\"#ebbcba\",\"editorHint.border\":\"#0000\",\"editorHint.foreground\":\"#908caa\",\"editorHoverWidget.background\":\"#1f1d2e\",\"editorHoverWidget.border\":\"#6e6a8680\",\"editorHoverWidget.foreground\":\"#908caa\",\"editorHoverWidget.highlightForeground\":\"#e0def4\",\"editorHoverWidget.statusBarBackground\":\"#0000\",\"editorIndentGuide.activeBackground\":\"#6e6a86\",\"editorIndentGuide.background\":\"#6e6a8666\",\"editorInfo.border\":\"#26233a\",\"editorInfo.foreground\":\"#9ccfd8\",\"editorInlayHint.background\":\"#26233a\",\"editorInlayHint.foreground\":\"#908caa\",\"editorInlayHint.parameterBackground\":\"#26233a\",\"editorInlayHint.parameterForeground\":\"#c4a7e7\",\"editorInlayHint.typeBackground\":\"#26233a\",\"editorInlayHint.typeForeground\":\"#9ccfd8\",\"editorLightBulb.foreground\":\"#31748f\",\"editorLightBulbAutoFix.foreground\":\"#ebbcba\",\"editorLineNumber.activeForeground\":\"#e0def4\",\"editorLineNumber.foreground\":\"#908caa\",\"editorLink.activeForeground\":\"#ebbcba\",\"editorMarkerNavigation.background\":\"#1f1d2e\",\"editorMarkerNavigationError.background\":\"#1f1d2e\",\"editorMarkerNavigationInfo.background\":\"#1f1d2e\",\"editorMarkerNavigationWarning.background\":\"#1f1d2e\",\"editorOverviewRuler.addedForeground\":\"#9ccfd880\",\"editorOverviewRuler.background\":\"#191724\",\"editorOverviewRuler.border\":\"#6e6a8666\",\"editorOverviewRuler.bracketMatchForeground\":\"#908caa\",\"editorOverviewRuler.commentForeground\":\"#908caa80\",\"editorOverviewRuler.commentUnresolvedForeground\":\"#f6c17780\",\"editorOverviewRuler.commonContentForeground\":\"#6e6a861a\",\"editorOverviewRuler.currentContentForeground\":\"#6e6a8633\",\"editorOverviewRuler.deletedForeground\":\"#eb6f9280\",\"editorOverviewRuler.errorForeground\":\"#eb6f9280\",\"editorOverviewRuler.findMatchForeground\":\"#6e6a8666\",\"editorOverviewRuler.incomingContentForeground\":\"#c4a7e780\",\"editorOverviewRuler.infoForeground\":\"#9ccfd880\",\"editorOverviewRuler.modifiedForeground\":\"#ebbcba80\",\"editorOverviewRuler.rangeHighlightForeground\":\"#6e6a8666\",\"editorOverviewRuler.selectionHighlightForeground\":\"#6e6a8666\",\"editorOverviewRuler.warningForeground\":\"#f6c17780\",\"editorOverviewRuler.wordHighlightForeground\":\"#6e6a8633\",\"editorOverviewRuler.wordHighlightStrongForeground\":\"#6e6a8666\",\"editorPane.background\":\"#0000\",\"editorRuler.foreground\":\"#6e6a8666\",\"editorSuggestWidget.background\":\"#1f1d2e\",\"editorSuggestWidget.border\":\"#0000\",\"editorSuggestWidget.focusHighlightForeground\":\"#ebbcba\",\"editorSuggestWidget.foreground\":\"#908caa\",\"editorSuggestWidget.highlightForeground\":\"#ebbcba\",\"editorSuggestWidget.selectedBackground\":\"#6e6a8633\",\"editorSuggestWidget.selectedForeground\":\"#e0def4\",\"editorSuggestWidget.selectedIconForeground\":\"#e0def4\",\"editorUnnecessaryCode.border\":\"#0000\",\"editorUnnecessaryCode.opacity\":\"#e0def480\",\"editorWarning.border\":\"#0000\",\"editorWarning.foreground\":\"#f6c177\",\"editorWhitespace.foreground\":\"#6e6a86\",\"editorWidget.background\":\"#1f1d2e\",\"editorWidget.border\":\"#26233a\",\"editorWidget.foreground\":\"#908caa\",\"editorWidget.resizeBorder\":\"#6e6a86\",\"errorForeground\":\"#eb6f92\",\"extensionBadge.remoteBackground\":\"#c4a7e7\",\"extensionBadge.remoteForeground\":\"#191724\",\"extensionButton.prominentBackground\":\"#ebbcba\",\"extensionButton.prominentForeground\":\"#191724\",\"extensionButton.prominentHoverBackground\":\"#ebbcbae6\",\"extensionIcon.preReleaseForeground\":\"#31748f\",\"extensionIcon.starForeground\":\"#ebbcba\",\"extensionIcon.verifiedForeground\":\"#c4a7e7\",\"focusBorder\":\"#6e6a8633\",\"foreground\":\"#e0def4\",\"gitDecoration.addedResourceForeground\":\"#9ccfd8\",\"gitDecoration.conflictingResourceForeground\":\"#eb6f92\",\"gitDecoration.deletedResourceForeground\":\"#908caa\",\"gitDecoration.ignoredResourceForeground\":\"#6e6a86\",\"gitDecoration.modifiedResourceForeground\":\"#ebbcba\",\"gitDecoration.renamedResourceForeground\":\"#31748f\",\"gitDecoration.stageDeletedResourceForeground\":\"#eb6f92\",\"gitDecoration.stageModifiedResourceForeground\":\"#c4a7e7\",\"gitDecoration.submoduleResourceForeground\":\"#f6c177\",\"gitDecoration.untrackedResourceForeground\":\"#f6c177\",\"icon.foreground\":\"#908caa\",\"input.background\":\"#26233a80\",\"input.border\":\"#6e6a8633\",\"input.foreground\":\"#e0def4\",\"input.placeholderForeground\":\"#908caa\",\"inputOption.activeBackground\":\"#ebbcba26\",\"inputOption.activeBorder\":\"#0000\",\"inputOption.activeForeground\":\"#ebbcba\",\"inputValidation.errorBackground\":\"#1f1d2e\",\"inputValidation.errorBorder\":\"#6e6a8666\",\"inputValidation.errorForeground\":\"#eb6f92\",\"inputValidation.infoBackground\":\"#1f1d2e\",\"inputValidation.infoBorder\":\"#6e6a8666\",\"inputValidation.infoForeground\":\"#9ccfd8\",\"inputValidation.warningBackground\":\"#1f1d2e\",\"inputValidation.warningBorder\":\"#6e6a8666\",\"inputValidation.warningForeground\":\"#9ccfd880\",\"keybindingLabel.background\":\"#26233a\",\"keybindingLabel.border\":\"#6e6a8666\",\"keybindingLabel.bottomBorder\":\"#6e6a8666\",\"keybindingLabel.foreground\":\"#c4a7e7\",\"keybindingTable.headerBackground\":\"#26233a\",\"keybindingTable.rowsBackground\":\"#1f1d2e\",\"list.activeSelectionBackground\":\"#6e6a8633\",\"list.activeSelectionForeground\":\"#e0def4\",\"list.deemphasizedForeground\":\"#908caa\",\"list.dropBackground\":\"#1f1d2e\",\"list.errorForeground\":\"#eb6f92\",\"list.filterMatchBackground\":\"#1f1d2e\",\"list.filterMatchBorder\":\"#ebbcba\",\"list.focusBackground\":\"#6e6a8666\",\"list.focusForeground\":\"#e0def4\",\"list.focusOutline\":\"#6e6a8633\",\"list.highlightForeground\":\"#ebbcba\",\"list.hoverBackground\":\"#6e6a861a\",\"list.hoverForeground\":\"#e0def4\",\"list.inactiveFocusBackground\":\"#6e6a861a\",\"list.inactiveSelectionBackground\":\"#1f1d2e\",\"list.inactiveSelectionForeground\":\"#e0def4\",\"list.invalidItemForeground\":\"#eb6f92\",\"list.warningForeground\":\"#f6c177\",\"listFilterWidget.background\":\"#1f1d2e\",\"listFilterWidget.noMatchesOutline\":\"#eb6f92\",\"listFilterWidget.outline\":\"#26233a\",\"menu.background\":\"#1f1d2e\",\"menu.border\":\"#6e6a861a\",\"menu.foreground\":\"#e0def4\",\"menu.selectionBackground\":\"#6e6a8633\",\"menu.selectionBorder\":\"#26233a\",\"menu.selectionForeground\":\"#e0def4\",\"menu.separatorBackground\":\"#6e6a8666\",\"menubar.selectionBackground\":\"#6e6a8633\",\"menubar.selectionBorder\":\"#6e6a861a\",\"menubar.selectionForeground\":\"#e0def4\",\"merge.border\":\"#26233a\",\"merge.commonContentBackground\":\"#6e6a8633\",\"merge.commonHeaderBackground\":\"#6e6a8633\",\"merge.currentContentBackground\":\"#f6c17780\",\"merge.currentHeaderBackground\":\"#f6c17780\",\"merge.incomingContentBackground\":\"#9ccfd880\",\"merge.incomingHeaderBackground\":\"#9ccfd880\",\"minimap.background\":\"#1f1d2e\",\"minimap.errorHighlight\":\"#eb6f9280\",\"minimap.findMatchHighlight\":\"#6e6a8633\",\"minimap.selectionHighlight\":\"#6e6a8633\",\"minimap.warningHighlight\":\"#f6c17780\",\"minimapGutter.addedBackground\":\"#9ccfd8\",\"minimapGutter.deletedBackground\":\"#eb6f92\",\"minimapGutter.modifiedBackground\":\"#ebbcba\",\"minimapSlider.activeBackground\":\"#6e6a8666\",\"minimapSlider.background\":\"#6e6a8633\",\"minimapSlider.hoverBackground\":\"#6e6a8633\",\"notebook.cellBorderColor\":\"#9ccfd880\",\"notebook.cellEditorBackground\":\"#1f1d2e\",\"notebook.cellHoverBackground\":\"#26233a80\",\"notebook.focusedCellBackground\":\"#6e6a861a\",\"notebook.focusedCellBorder\":\"#9ccfd8\",\"notebook.outputContainerBackgroundColor\":\"#6e6a861a\",\"notificationCenter.border\":\"#6e6a8633\",\"notificationCenterHeader.background\":\"#1f1d2e\",\"notificationCenterHeader.foreground\":\"#908caa\",\"notificationLink.foreground\":\"#c4a7e7\",\"notificationToast.border\":\"#6e6a8633\",\"notifications.background\":\"#1f1d2e\",\"notifications.border\":\"#6e6a8633\",\"notifications.foreground\":\"#e0def4\",\"notificationsErrorIcon.foreground\":\"#eb6f92\",\"notificationsInfoIcon.foreground\":\"#9ccfd8\",\"notificationsWarningIcon.foreground\":\"#f6c177\",\"panel.background\":\"#1f1d2e\",\"panel.border\":\"#0000\",\"panel.dropBorder\":\"#26233a\",\"panelInput.border\":\"#1f1d2e\",\"panelSection.dropBackground\":\"#6e6a8633\",\"panelSectionHeader.background\":\"#1f1d2e\",\"panelSectionHeader.foreground\":\"#e0def4\",\"panelTitle.activeBorder\":\"#6e6a8666\",\"panelTitle.activeForeground\":\"#e0def4\",\"panelTitle.inactiveForeground\":\"#908caa\",\"peekView.border\":\"#26233a\",\"peekViewEditor.background\":\"#1f1d2e\",\"peekViewEditor.matchHighlightBackground\":\"#6e6a8666\",\"peekViewResult.background\":\"#1f1d2e\",\"peekViewResult.fileForeground\":\"#908caa\",\"peekViewResult.lineForeground\":\"#908caa\",\"peekViewResult.matchHighlightBackground\":\"#6e6a8666\",\"peekViewResult.selectionBackground\":\"#6e6a8633\",\"peekViewResult.selectionForeground\":\"#e0def4\",\"peekViewTitle.background\":\"#26233a\",\"peekViewTitleDescription.foreground\":\"#908caa\",\"pickerGroup.border\":\"#6e6a8666\",\"pickerGroup.foreground\":\"#c4a7e7\",\"ports.iconRunningProcessForeground\":\"#ebbcba\",\"problemsErrorIcon.foreground\":\"#eb6f92\",\"problemsInfoIcon.foreground\":\"#9ccfd8\",\"problemsWarningIcon.foreground\":\"#f6c177\",\"progressBar.background\":\"#ebbcba\",\"quickInput.background\":\"#1f1d2e\",\"quickInput.foreground\":\"#908caa\",\"quickInputList.focusBackground\":\"#6e6a8633\",\"quickInputList.focusForeground\":\"#e0def4\",\"quickInputList.focusIconForeground\":\"#e0def4\",\"scrollbar.shadow\":\"#1f1d2e4d\",\"scrollbarSlider.activeBackground\":\"#31748f80\",\"scrollbarSlider.background\":\"#6e6a8633\",\"scrollbarSlider.hoverBackground\":\"#6e6a8666\",\"searchEditor.findMatchBackground\":\"#6e6a8633\",\"selection.background\":\"#6e6a8666\",\"settings.focusedRowBackground\":\"#1f1d2e\",\"settings.focusedRowBorder\":\"#6e6a8633\",\"settings.headerForeground\":\"#e0def4\",\"settings.modifiedItemIndicator\":\"#ebbcba\",\"settings.rowHoverBackground\":\"#1f1d2e\",\"sideBar.background\":\"#191724\",\"sideBar.dropBackground\":\"#1f1d2e\",\"sideBar.foreground\":\"#908caa\",\"sideBarSectionHeader.background\":\"#0000\",\"sideBarSectionHeader.border\":\"#6e6a8633\",\"statusBar.background\":\"#191724\",\"statusBar.debuggingBackground\":\"#c4a7e7\",\"statusBar.debuggingForeground\":\"#191724\",\"statusBar.foreground\":\"#908caa\",\"statusBar.noFolderBackground\":\"#191724\",\"statusBar.noFolderForeground\":\"#908caa\",\"statusBarItem.activeBackground\":\"#6e6a8666\",\"statusBarItem.errorBackground\":\"#191724\",\"statusBarItem.errorForeground\":\"#eb6f92\",\"statusBarItem.hoverBackground\":\"#6e6a8633\",\"statusBarItem.prominentBackground\":\"#26233a\",\"statusBarItem.prominentForeground\":\"#e0def4\",\"statusBarItem.prominentHoverBackground\":\"#6e6a8633\",\"statusBarItem.remoteBackground\":\"#191724\",\"statusBarItem.remoteForeground\":\"#f6c177\",\"symbolIcon.arrayForeground\":\"#908caa\",\"symbolIcon.classForeground\":\"#908caa\",\"symbolIcon.colorForeground\":\"#908caa\",\"symbolIcon.constantForeground\":\"#908caa\",\"symbolIcon.constructorForeground\":\"#908caa\",\"symbolIcon.enumeratorForeground\":\"#908caa\",\"symbolIcon.enumeratorMemberForeground\":\"#908caa\",\"symbolIcon.eventForeground\":\"#908caa\",\"symbolIcon.fieldForeground\":\"#908caa\",\"symbolIcon.fileForeground\":\"#908caa\",\"symbolIcon.folderForeground\":\"#908caa\",\"symbolIcon.functionForeground\":\"#908caa\",\"symbolIcon.interfaceForeground\":\"#908caa\",\"symbolIcon.keyForeground\":\"#908caa\",\"symbolIcon.keywordForeground\":\"#908caa\",\"symbolIcon.methodForeground\":\"#908caa\",\"symbolIcon.moduleForeground\":\"#908caa\",\"symbolIcon.namespaceForeground\":\"#908caa\",\"symbolIcon.nullForeground\":\"#908caa\",\"symbolIcon.numberForeground\":\"#908caa\",\"symbolIcon.objectForeground\":\"#908caa\",\"symbolIcon.operatorForeground\":\"#908caa\",\"symbolIcon.packageForeground\":\"#908caa\",\"symbolIcon.propertyForeground\":\"#908caa\",\"symbolIcon.referenceForeground\":\"#908caa\",\"symbolIcon.snippetForeground\":\"#908caa\",\"symbolIcon.stringForeground\":\"#908caa\",\"symbolIcon.structForeground\":\"#908caa\",\"symbolIcon.textForeground\":\"#908caa\",\"symbolIcon.typeParameterForeground\":\"#908caa\",\"symbolIcon.unitForeground\":\"#908caa\",\"symbolIcon.variableForeground\":\"#908caa\",\"tab.activeBackground\":\"#6e6a861a\",\"tab.activeForeground\":\"#e0def4\",\"tab.activeModifiedBorder\":\"#9ccfd8\",\"tab.border\":\"#0000\",\"tab.hoverBackground\":\"#6e6a8633\",\"tab.inactiveBackground\":\"#0000\",\"tab.inactiveForeground\":\"#908caa\",\"tab.inactiveModifiedBorder\":\"#9ccfd880\",\"tab.lastPinnedBorder\":\"#6e6a86\",\"tab.unfocusedActiveBackground\":\"#0000\",\"tab.unfocusedHoverBackground\":\"#0000\",\"tab.unfocusedInactiveBackground\":\"#0000\",\"tab.unfocusedInactiveModifiedBorder\":\"#9ccfd880\",\"terminal.ansiBlack\":\"#26233a\",\"terminal.ansiBlue\":\"#9ccfd8\",\"terminal.ansiBrightBlack\":\"#908caa\",\"terminal.ansiBrightBlue\":\"#9ccfd8\",\"terminal.ansiBrightCyan\":\"#ebbcba\",\"terminal.ansiBrightGreen\":\"#31748f\",\"terminal.ansiBrightMagenta\":\"#c4a7e7\",\"terminal.ansiBrightRed\":\"#eb6f92\",\"terminal.ansiBrightWhite\":\"#e0def4\",\"terminal.ansiBrightYellow\":\"#f6c177\",\"terminal.ansiCyan\":\"#ebbcba\",\"terminal.ansiGreen\":\"#31748f\",\"terminal.ansiMagenta\":\"#c4a7e7\",\"terminal.ansiRed\":\"#eb6f92\",\"terminal.ansiWhite\":\"#e0def4\",\"terminal.ansiYellow\":\"#f6c177\",\"terminal.dropBackground\":\"#6e6a8633\",\"terminal.foreground\":\"#e0def4\",\"terminal.selectionBackground\":\"#6e6a8633\",\"terminal.tab.activeBorder\":\"#e0def4\",\"terminalCursor.background\":\"#e0def4\",\"terminalCursor.foreground\":\"#6e6a86\",\"textBlockQuote.background\":\"#1f1d2e\",\"textBlockQuote.border\":\"#6e6a8633\",\"textCodeBlock.background\":\"#1f1d2e\",\"textLink.activeForeground\":\"#c4a7e7e6\",\"textLink.foreground\":\"#c4a7e7\",\"textPreformat.foreground\":\"#f6c177\",\"textSeparator.foreground\":\"#908caa\",\"titleBar.activeBackground\":\"#191724\",\"titleBar.activeForeground\":\"#908caa\",\"titleBar.inactiveBackground\":\"#1f1d2e\",\"titleBar.inactiveForeground\":\"#908caa\",\"toolbar.activeBackground\":\"#6e6a8666\",\"toolbar.hoverBackground\":\"#6e6a8633\",\"tree.indentGuidesStroke\":\"#908caa\",\"walkThrough.embeddedEditorBackground\":\"#191724\",\"welcomePage.background\":\"#191724\",\"welcomePage.buttonBackground\":\"#1f1d2e\",\"welcomePage.buttonHoverBackground\":\"#26233a\",\"widget.shadow\":\"#1f1d2e4d\",\"window.activeBorder\":\"#1f1d2e\",\"window.inactiveBorder\":\"#1f1d2e\"},\"displayName\":\"Rosé Pine\",\"name\":\"rose-pine\",\"tokenColors\":[{\"scope\":[\"comment\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#6e6a86\"}},{\"scope\":[\"constant\"],\"settings\":{\"foreground\":\"#31748f\"}},{\"scope\":[\"constant.numeric\",\"constant.language\"],\"settings\":{\"foreground\":\"#ebbcba\"}},{\"scope\":[\"entity.name\"],\"settings\":{\"foreground\":\"#ebbcba\"}},{\"scope\":[\"entity.name.section\",\"entity.name.tag\",\"entity.name.namespace\",\"entity.name.type\"],\"settings\":{\"foreground\":\"#9ccfd8\"}},{\"scope\":[\"entity.other.attribute-name\",\"entity.other.inherited-class\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#c4a7e7\"}},{\"scope\":[\"invalid\"],\"settings\":{\"foreground\":\"#eb6f92\"}},{\"scope\":[\"invalid.deprecated\"],\"settings\":{\"foreground\":\"#908caa\"}},{\"scope\":[\"keyword\",\"variable.language.this\"],\"settings\":{\"foreground\":\"#31748f\"}},{\"scope\":[\"markup.inserted.diff\"],\"settings\":{\"foreground\":\"#9ccfd8\"}},{\"scope\":[\"markup.deleted.diff\"],\"settings\":{\"foreground\":\"#eb6f92\"}},{\"scope\":\"markup.heading\",\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":\"markup.bold.markdown\",\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":\"markup.italic.markdown\",\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":[\"meta.diff.range\"],\"settings\":{\"foreground\":\"#c4a7e7\"}},{\"scope\":[\"meta.tag\",\"meta.brace\"],\"settings\":{\"foreground\":\"#e0def4\"}},{\"scope\":[\"meta.import\",\"meta.export\"],\"settings\":{\"foreground\":\"#31748f\"}},{\"scope\":\"meta.directive.vue\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#c4a7e7\"}},{\"scope\":\"meta.property-name.css\",\"settings\":{\"foreground\":\"#9ccfd8\"}},{\"scope\":\"meta.property-value.css\",\"settings\":{\"foreground\":\"#f6c177\"}},{\"scope\":\"meta.tag.other.html\",\"settings\":{\"foreground\":\"#908caa\"}},{\"scope\":[\"punctuation\"],\"settings\":{\"foreground\":\"#908caa\"}},{\"scope\":[\"punctuation.accessor\"],\"settings\":{\"foreground\":\"#31748f\"}},{\"scope\":[\"punctuation.definition.string\"],\"settings\":{\"foreground\":\"#f6c177\"}},{\"scope\":[\"punctuation.definition.tag\"],\"settings\":{\"foreground\":\"#6e6a86\"}},{\"scope\":[\"storage.type\",\"storage.modifier\"],\"settings\":{\"foreground\":\"#31748f\"}},{\"scope\":[\"string\"],\"settings\":{\"foreground\":\"#f6c177\"}},{\"scope\":[\"support\"],\"settings\":{\"foreground\":\"#9ccfd8\"}},{\"scope\":[\"support.constant\"],\"settings\":{\"foreground\":\"#f6c177\"}},{\"scope\":[\"support.function\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#eb6f92\"}},{\"scope\":[\"variable\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#ebbcba\"}},{\"scope\":[\"variable.other\",\"variable.language\",\"variable.function\",\"variable.argument\"],\"settings\":{\"foreground\":\"#e0def4\"}},{\"scope\":[\"variable.parameter\"],\"settings\":{\"foreground\":\"#c4a7e7\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CoJj_PRq.js",
    "content": "import{a1 as s}from\"./CU_MfyYc.js\";/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var d=Object.defineProperty,c=Object.getOwnPropertyDescriptor,p=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,k=(n,e,i,r)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let o of p(e))!a.call(n,o)&&o!==i&&d(n,o,{get:()=>e[o],enumerable:!(r=c(e,o))||r.enumerable});return n},l=(n,e,i)=>(k(n,e,\"default\"),i),t={};l(t,s);var m={comments:{blockComment:[\"{/*\",\"*/}\"]},brackets:[[\"{\",\"}\"]],autoClosingPairs:[{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"“\",close:\"”\"},{open:\"‘\",close:\"’\"},{open:\"`\",close:\"`\"},{open:\"{\",close:\"}\"},{open:\"(\",close:\")\"},{open:\"_\",close:\"_\"},{open:\"**\",close:\"**\"},{open:\"<\",close:\">\"}],onEnterRules:[{beforeText:/^\\s*- .+/,action:{indentAction:t.languages.IndentAction.None,appendText:\"- \"}},{beforeText:/^\\s*\\+ .+/,action:{indentAction:t.languages.IndentAction.None,appendText:\"+ \"}},{beforeText:/^\\s*\\* .+/,action:{indentAction:t.languages.IndentAction.None,appendText:\"* \"}},{beforeText:/^> /,action:{indentAction:t.languages.IndentAction.None,appendText:\"> \"}},{beforeText:/<\\w+/,action:{indentAction:t.languages.IndentAction.Indent}},{beforeText:/\\s+>\\s*$/,action:{indentAction:t.languages.IndentAction.Indent}},{beforeText:/<\\/\\w+>/,action:{indentAction:t.languages.IndentAction.Outdent}},...Array.from({length:100},(n,e)=>({beforeText:new RegExp(`^${e}\\\\. .+`),action:{indentAction:t.languages.IndentAction.None,appendText:`${e+1}. `}}))]},b={defaultToken:\"\",tokenPostfix:\".mdx\",control:/[!#()*+.[\\\\\\]_`{}\\-]/,escapes:/\\\\@control/,tokenizer:{root:[[/^---$/,{token:\"meta.content\",next:\"@frontmatter\",nextEmbedded:\"yaml\"}],[/^\\s*import/,{token:\"keyword\",next:\"@import\",nextEmbedded:\"js\"}],[/^\\s*export/,{token:\"keyword\",next:\"@export\",nextEmbedded:\"js\"}],[/<\\w+/,{token:\"type.identifier\",next:\"@jsx\"}],[/<\\/?\\w+>/,\"type.identifier\"],[/^(\\s*)(>*\\s*)(#{1,6}\\s)/,[{token:\"white\"},{token:\"comment\"},{token:\"keyword\",next:\"@header\"}]],[/^(\\s*)(>*\\s*)([*+-])(\\s+)/,[\"white\",\"comment\",\"keyword\",\"white\"]],[/^(\\s*)(>*\\s*)(\\d{1,9}\\.)(\\s+)/,[\"white\",\"comment\",\"number\",\"white\"]],[/^(\\s*)(>*\\s*)(\\d{1,9}\\.)(\\s+)/,[\"white\",\"comment\",\"number\",\"white\"]],[/^(\\s*)(>*\\s*)(-{3,}|\\*{3,}|_{3,})$/,[\"white\",\"comment\",\"keyword\"]],[/`{3,}(\\s.*)?$/,{token:\"string\",next:\"@codeblock_backtick\"}],[/~{3,}(\\s.*)?$/,{token:\"string\",next:\"@codeblock_tilde\"}],[/`{3,}(\\S+).*$/,{token:\"string\",next:\"@codeblock_highlight_backtick\",nextEmbedded:\"$1\"}],[/~{3,}(\\S+).*$/,{token:\"string\",next:\"@codeblock_highlight_tilde\",nextEmbedded:\"$1\"}],[/^(\\s*)(-{4,})$/,[\"white\",\"comment\"]],[/^(\\s*)(>+)/,[\"white\",\"comment\"]],{include:\"content\"}],content:[[/(\\[)(.+)(]\\()(.+)(\\s+\".*\")(\\))/,[\"\",\"string.link\",\"\",\"type.identifier\",\"string.link\",\"\"]],[/(\\[)(.+)(]\\()(.+)(\\))/,[\"\",\"type.identifier\",\"\",\"string.link\",\"\"]],[/(\\[)(.+)(]\\[)(.+)(])/,[\"\",\"type.identifier\",\"\",\"type.identifier\",\"\"]],[/(\\[)(.+)(]:\\s+)(\\S*)/,[\"\",\"type.identifier\",\"\",\"string.link\"]],[/(\\[)(.+)(])/,[\"\",\"type.identifier\",\"\"]],[/`.*`/,\"variable.source\"],[/_/,{token:\"emphasis\",next:\"@emphasis_underscore\"}],[/\\*(?!\\*)/,{token:\"emphasis\",next:\"@emphasis_asterisk\"}],[/\\*\\*/,{token:\"strong\",next:\"@strong\"}],[/{/,{token:\"delimiter.bracket\",next:\"@expression\",nextEmbedded:\"js\"}]],import:[[/'\\s*(;|$)/,{token:\"string\",next:\"@pop\",nextEmbedded:\"@pop\"}]],expression:[[/{/,{token:\"delimiter.bracket\",next:\"@expression\"}],[/}/,{token:\"delimiter.bracket\",next:\"@pop\",nextEmbedded:\"@pop\"}]],export:[[/^\\s*$/,{token:\"delimiter.bracket\",next:\"@pop\",nextEmbedded:\"@pop\"}]],jsx:[[/\\s+/,\"\"],[/(\\w+)(=)(\"(?:[^\"\\\\]|\\\\.)*\")/,[\"attribute.name\",\"operator\",\"string\"]],[/(\\w+)(=)('(?:[^'\\\\]|\\\\.)*')/,[\"attribute.name\",\"operator\",\"string\"]],[/(\\w+(?=\\s|>|={|$))/,[\"attribute.name\"]],[/={/,{token:\"delimiter.bracket\",next:\"@expression\",nextEmbedded:\"js\"}],[/>/,{token:\"type.identifier\",next:\"@pop\"}]],header:[[/.$/,{token:\"keyword\",next:\"@pop\"}],{include:\"content\"},[/./,{token:\"keyword\"}]],strong:[[/\\*\\*/,{token:\"strong\",next:\"@pop\"}],{include:\"content\"},[/./,{token:\"strong\"}]],emphasis_underscore:[[/_/,{token:\"emphasis\",next:\"@pop\"}],{include:\"content\"},[/./,{token:\"emphasis\"}]],emphasis_asterisk:[[/\\*(?!\\*)/,{token:\"emphasis\",next:\"@pop\"}],{include:\"content\"},[/./,{token:\"emphasis\"}]],frontmatter:[[/^---$/,{token:\"meta.content\",nextEmbedded:\"@pop\",next:\"@pop\"}]],codeblock_highlight_backtick:[[/\\s*`{3,}\\s*$/,{token:\"string\",next:\"@pop\",nextEmbedded:\"@pop\"}],[/.*$/,\"variable.source\"]],codeblock_highlight_tilde:[[/\\s*~{3,}\\s*$/,{token:\"string\",next:\"@pop\",nextEmbedded:\"@pop\"}],[/.*$/,\"variable.source\"]],codeblock_backtick:[[/\\s*`{3,}\\s*$/,{token:\"string\",next:\"@pop\"}],[/.*$/,\"variable.source\"]],codeblock_tilde:[[/\\s*~{3,}\\s*$/,{token:\"string\",next:\"@pop\"}],[/.*$/,\"variable.source\"]]}};export{m as conf,b as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/Cq2jzwMq.js",
    "content": "import{a1 as s}from\"./CU_MfyYc.js\";/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var d=Object.defineProperty,p=Object.getOwnPropertyDescriptor,m=Object.getOwnPropertyNames,l=Object.prototype.hasOwnProperty,c=(t,e,n,o)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let r of m(e))!l.call(t,r)&&r!==n&&d(t,r,{get:()=>e[r],enumerable:!(o=p(e,r))||o.enumerable});return t},u=(t,e,n)=>(c(t,e,\"default\"),n),i={};u(i,s);var a=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"menuitem\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"],x={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\$\\^\\&\\*\\(\\)\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\s]+)/g,comments:{blockComment:[\"<!--\",\"-->\"]},brackets:[[\"<!--\",\"-->\"],[\"<\",\">\"],[\"{\",\"}\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${a.join(\"|\")}))([_:\\\\w][_:\\\\w-.\\\\d]*)([^/>]*(?!/)>)[^<]*$`,\"i\"),afterText:/^<\\/([_:\\w][_:\\w-.\\d]*)\\s*>$/i,action:{indentAction:i.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${a.join(\"|\")}))(\\\\w[\\\\w\\\\d]*)([^/>]*(?!/)>)[^<]*$`,\"i\"),action:{indentAction:i.languages.IndentAction.Indent}}],folding:{markers:{start:new RegExp(\"^\\\\s*<!--\\\\s*#region\\\\b.*-->\"),end:new RegExp(\"^\\\\s*<!--\\\\s*#endregion\\\\b.*-->\")}}},y={defaultToken:\"\",tokenPostfix:\".html\",ignoreCase:!0,tokenizer:{root:[[/<!DOCTYPE/,\"metatag\",\"@doctype\"],[/<!--/,\"comment\",\"@comment\"],[/(<)((?:[\\w\\-]+:)?[\\w\\-]+)(\\s*)(\\/>)/,[\"delimiter\",\"tag\",\"\",\"delimiter\"]],[/(<)(script)/,[\"delimiter\",{token:\"tag\",next:\"@script\"}]],[/(<)(style)/,[\"delimiter\",{token:\"tag\",next:\"@style\"}]],[/(<)((?:[\\w\\-]+:)?[\\w\\-]+)/,[\"delimiter\",{token:\"tag\",next:\"@otherTag\"}]],[/(<\\/)((?:[\\w\\-]+:)?[\\w\\-]+)/,[\"delimiter\",{token:\"tag\",next:\"@otherTag\"}]],[/</,\"delimiter\"],[/[^<]+/]],doctype:[[/[^>]+/,\"metatag.content\"],[/>/,\"metatag\",\"@pop\"]],comment:[[/-->/,\"comment\",\"@pop\"],[/[^-]+/,\"comment.content\"],[/./,\"comment.content\"]],otherTag:[[/\\/?>/,\"delimiter\",\"@pop\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/]],script:[[/type/,\"attribute.name\",\"@scriptAfterType\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/>/,{token:\"delimiter\",next:\"@scriptEmbedded\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/(<\\/)(script\\s*)(>)/,[\"delimiter\",\"tag\",{token:\"delimiter\",next:\"@pop\"}]]],scriptAfterType:[[/=/,\"delimiter\",\"@scriptAfterTypeEquals\"],[/>/,{token:\"delimiter\",next:\"@scriptEmbedded\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptAfterTypeEquals:[[/\"module\"/,{token:\"attribute.value\",switchTo:\"@scriptWithCustomType.text/javascript\"}],[/'module'/,{token:\"attribute.value\",switchTo:\"@scriptWithCustomType.text/javascript\"}],[/\"([^\"]*)\"/,{token:\"attribute.value\",switchTo:\"@scriptWithCustomType.$1\"}],[/'([^']*)'/,{token:\"attribute.value\",switchTo:\"@scriptWithCustomType.$1\"}],[/>/,{token:\"delimiter\",next:\"@scriptEmbedded\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptWithCustomType:[[/>/,{token:\"delimiter\",next:\"@scriptEmbedded.$S2\",nextEmbedded:\"$S2\"}],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptEmbedded:[[/<\\/script/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}],[/[^<]+/,\"\"]],style:[[/type/,\"attribute.name\",\"@styleAfterType\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/>/,{token:\"delimiter\",next:\"@styleEmbedded\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/(<\\/)(style\\s*)(>)/,[\"delimiter\",\"tag\",{token:\"delimiter\",next:\"@pop\"}]]],styleAfterType:[[/=/,\"delimiter\",\"@styleAfterTypeEquals\"],[/>/,{token:\"delimiter\",next:\"@styleEmbedded\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleAfterTypeEquals:[[/\"([^\"]*)\"/,{token:\"attribute.value\",switchTo:\"@styleWithCustomType.$1\"}],[/'([^']*)'/,{token:\"attribute.value\",switchTo:\"@styleWithCustomType.$1\"}],[/>/,{token:\"delimiter\",next:\"@styleEmbedded\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleWithCustomType:[[/>/,{token:\"delimiter\",next:\"@styleEmbedded.$S2\",nextEmbedded:\"$S2\"}],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleEmbedded:[[/<\\/style/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}],[/[^<]+/,\"\"]]}};export{x as conf,y as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/CqvT4tPC.js",
    "content": "import{c as h,x as ge,T as at,w as Q,bx as ke,by as ot,bz as Re,o as Me,d as K,aQ as ae,aR as it,aT as R,B as ue,r as D,aZ as X,a_ as se,b2 as $,bA as k,b6 as q,n as N,bB as $e,bd as Ee,ai as fe,bC as Le,bD as ye,bE as ut,aW as je,aX as te,bF as st,a$ as re,b3 as Ne,bG as qe,ba as He,b5 as We,bH as Ue,b0 as Ke,bI as Ge,F as Ae,aB as j,ah as rt,bJ as we,aS as Te,bK as dt,bL as Qe,b1 as Je,bM as ct,bb as vt,bc as pt,Q as ft,bg as bt,e as Z,g as L,f as oe,C as W,E as J,H as P,bw as ce,R as _,j as ee,aj as Ie,i as me,ac as Xe,G as ve,bh as mt,O as ht,al as Ye,X as gt,q as ze,ak as Ze,am as Ve,an as Ce,V as yt,bi as Ot,as as St,bN as xt,ao as It,ap as pe,aq as ne,a7 as Ct,bO as Rt,bP as wt,bQ as Mt,aA as Et,bj as At,bk as Tt}from\"./CU_MfyYc.js\";function ie(e,c,a){let o=a.initialDeps??[],l;function i(){var t,n,f,v;let s;a.key&&((t=a.debug)!=null&&t.call(a))&&(s=Date.now());const u=e();if(!(u.length!==o.length||u.some((x,E)=>o[E]!==x)))return l;o=u;let w;if(a.key&&((n=a.debug)!=null&&n.call(a))&&(w=Date.now()),l=c(...u),a.key&&((f=a.debug)!=null&&f.call(a))){const x=Math.round((Date.now()-s)*100)/100,E=Math.round((Date.now()-w)*100)/100,F=E/16,A=(S,r)=>{for(S=String(S);S.length<r;)S=\" \"+S;return S};console.info(`%c⏱ ${A(E,5)} /${A(x,5)} ms`,`\n            font-size: .6rem;\n            font-weight: bold;\n            color: hsl(${Math.max(0,Math.min(120-120*F,120))}deg 100% 31%);`,a==null?void 0:a.key)}return(v=a==null?void 0:a.onChange)==null||v.call(a,l),l}return i.updateDeps=t=>{o=t},i}function Pe(e,c){if(e===void 0)throw new Error(\"Unexpected undefined\");return e}const kt=(e,c)=>Math.abs(e-c)<1.01,$t=(e,c,a)=>{let o;return function(...l){e.clearTimeout(o),o=e.setTimeout(()=>c.apply(this,l),a)}},De=e=>{const{offsetWidth:c,offsetHeight:a}=e;return{width:c,height:a}},zt=e=>e,Vt=e=>{const c=Math.max(e.startIndex-e.overscan,0),a=Math.min(e.endIndex+e.overscan,e.count-1),o=[];for(let l=c;l<=a;l++)o.push(l);return o},Pt=(e,c)=>{const a=e.scrollElement;if(!a)return;const o=e.targetWindow;if(!o)return;const l=t=>{const{width:n,height:f}=t;c({width:Math.round(n),height:Math.round(f)})};if(l(De(a)),!o.ResizeObserver)return()=>{};const i=new o.ResizeObserver(t=>{const n=()=>{const f=t[0];if(f!=null&&f.borderBoxSize){const v=f.borderBoxSize[0];if(v){l({width:v.inlineSize,height:v.blockSize});return}}l(De(a))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(n):n()});return i.observe(a,{box:\"border-box\"}),()=>{i.unobserve(a)}},Fe={passive:!0},Be=typeof window>\"u\"?!0:\"onscrollend\"in window,Dt=(e,c)=>{const a=e.scrollElement;if(!a)return;const o=e.targetWindow;if(!o)return;let l=0;const i=e.options.useScrollendEvent&&Be?()=>{}:$t(o,()=>{c(l,!1)},e.options.isScrollingResetDelay),t=s=>()=>{const{horizontal:u,isRtl:p}=e.options;l=u?a.scrollLeft*(p&&-1||1):a.scrollTop,i(),c(l,s)},n=t(!0),f=t(!1);f(),a.addEventListener(\"scroll\",n,Fe);const v=e.options.useScrollendEvent&&Be;return v&&a.addEventListener(\"scrollend\",f,Fe),()=>{a.removeEventListener(\"scroll\",n),v&&a.removeEventListener(\"scrollend\",f)}},Ft=(e,c,a)=>{if(c!=null&&c.borderBoxSize){const o=c.borderBoxSize[0];if(o)return Math.round(o[a.options.horizontal?\"inlineSize\":\"blockSize\"])}return e[a.options.horizontal?\"offsetWidth\":\"offsetHeight\"]},Bt=(e,{adjustments:c=0,behavior:a},o)=>{var l,i;const t=e+c;(i=(l=o.scrollElement)==null?void 0:l.scrollTo)==null||i.call(l,{[o.options.horizontal?\"left\":\"top\"]:t,behavior:a})};class Lt{constructor(c){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let a=null;const o=()=>a||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:a=new this.targetWindow.ResizeObserver(l=>{l.forEach(i=>{const t=()=>{this._measureElement(i.target,i)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}));return{disconnect:()=>{var l;(l=o())==null||l.disconnect(),a=null},observe:l=>{var i;return(i=o())==null?void 0:i.observe(l,{box:\"border-box\"})},unobserve:l=>{var i;return(i=o())==null?void 0:i.unobserve(l)}}})(),this.range=null,this.setOptions=a=>{Object.entries(a).forEach(([o,l])=>{typeof l>\"u\"&&delete a[o]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:zt,rangeExtractor:Vt,onChange:()=>{},measureElement:Ft,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:\"data-index\",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...a}},this.notify=a=>{var o,l;(l=(o=this.options).onChange)==null||l.call(o,this,a)},this.maybeNotify=ie(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),a=>{this.notify(a)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(a=>a()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var a;const o=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==o){if(this.cleanup(),!o){this.maybeNotify();return}this.scrollElement=o,this.scrollElement&&\"ownerDocument\"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((a=this.scrollElement)==null?void 0:a.window)??null,this.elementsCache.forEach(l=>{this.observer.observe(l)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,l=>{this.scrollRect=l,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(l,i)=>{this.scrollAdjustments=0,this.scrollDirection=i?this.getScrollOffset()<l?\"forward\":\"backward\":null,this.scrollOffset=l,this.isScrolling=i,this.maybeNotify()}))}},this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?\"width\":\"height\"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset==\"function\"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(a,o)=>{const l=new Map,i=new Map;for(let t=o-1;t>=0;t--){const n=a[t];if(l.has(n.lane))continue;const f=i.get(n.lane);if(f==null||n.end>f.end?i.set(n.lane,n):n.end<f.end&&l.set(n.lane,!0),l.size===this.options.lanes)break}return i.size===this.options.lanes?Array.from(i.values()).sort((t,n)=>t.end===n.end?t.index-n.index:t.end-n.end)[0]:void 0},this.getMeasurementOptions=ie(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(a,o,l,i,t)=>(this.pendingMeasuredCacheIndexes=[],{count:a,paddingStart:o,scrollMargin:l,getItemKey:i,enabled:t}),{key:!1}),this.getMeasurements=ie(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:a,paddingStart:o,scrollMargin:l,getItemKey:i,enabled:t},n)=>{if(!t)return this.measurementsCache=[],this.itemSizeCache.clear(),[];this.measurementsCache.length===0&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(s=>{this.itemSizeCache.set(s.key,s.size)}));const f=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];const v=this.measurementsCache.slice(0,f);for(let s=f;s<a;s++){const u=i(s),p=this.options.lanes===1?v[s-1]:this.getFurthestMeasurement(v,s),w=p?p.end+this.options.gap:o+l,x=n.get(u),E=typeof x==\"number\"?x:this.options.estimateSize(s),F=w+E,A=p?p.lane:s%this.options.lanes;v[s]={index:s,start:w,size:E,end:F,key:u,lane:A}}return this.measurementsCache=v,v},{key:!1,debug:()=>this.options.debug}),this.calculateRange=ie(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(a,o,l,i)=>this.range=a.length>0&&o>0?jt({measurements:a,outerSize:o,scrollOffset:l,lanes:i}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=ie(()=>{let a=null,o=null;const l=this.calculateRange();return l&&(a=l.startIndex,o=l.endIndex),this.maybeNotify.updateDeps([this.isScrolling,a,o]),[this.options.rangeExtractor,this.options.overscan,this.options.count,a,o]},(a,o,l,i,t)=>i===null||t===null?[]:a({startIndex:i,endIndex:t,overscan:o,count:l}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=a=>{const o=this.options.indexAttribute,l=a.getAttribute(o);return l?parseInt(l,10):(console.warn(`Missing attribute name '${o}={index}' on measured element.`),-1)},this._measureElement=(a,o)=>{const l=this.indexFromElement(a),i=this.measurementsCache[l];if(!i)return;const t=i.key,n=this.elementsCache.get(t);n!==a&&(n&&this.observer.unobserve(n),this.observer.observe(a),this.elementsCache.set(t,a)),a.isConnected&&this.resizeItem(l,this.options.measureElement(a,o,this))},this.resizeItem=(a,o)=>{const l=this.measurementsCache[a];if(!l)return;const i=this.itemSizeCache.get(l.key)??l.size,t=o-i;t!==0&&((this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(l,t,this):l.start<this.getScrollOffset()+this.scrollAdjustments)&&this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=t,behavior:void 0}),this.pendingMeasuredCacheIndexes.push(l.index),this.itemSizeCache=new Map(this.itemSizeCache.set(l.key,o)),this.notify(!1))},this.measureElement=a=>{if(!a){this.elementsCache.forEach((o,l)=>{o.isConnected||(this.observer.unobserve(o),this.elementsCache.delete(l))});return}this._measureElement(a,void 0)},this.getVirtualItems=ie(()=>[this.getVirtualIndexes(),this.getMeasurements()],(a,o)=>{const l=[];for(let i=0,t=a.length;i<t;i++){const n=a[i],f=o[n];l.push(f)}return l},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=a=>{const o=this.getMeasurements();if(o.length!==0)return Pe(o[_e(0,o.length-1,l=>Pe(o[l]).start,a)])},this.getOffsetForAlignment=(a,o,l=0)=>{const i=this.getSize(),t=this.getScrollOffset();o===\"auto\"&&(o=a>=t+i?\"end\":\"start\"),o===\"center\"?a+=(l-i)/2:o===\"end\"&&(a-=i);const n=this.getTotalSize()+this.options.scrollMargin-i;return Math.max(Math.min(n,a),0)},this.getOffsetForIndex=(a,o=\"auto\")=>{a=Math.max(0,Math.min(a,this.options.count-1));const l=this.measurementsCache[a];if(!l)return;const i=this.getSize(),t=this.getScrollOffset();if(o===\"auto\")if(l.end>=t+i-this.options.scrollPaddingEnd)o=\"end\";else if(l.start<=t+this.options.scrollPaddingStart)o=\"start\";else return[t,o];const n=o===\"end\"?l.end+this.options.scrollPaddingEnd:l.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(n,o,l.size),o]},this.isDynamicMode=()=>this.elementsCache.size>0,this.scrollToOffset=(a,{align:o=\"start\",behavior:l}={})=>{l===\"smooth\"&&this.isDynamicMode()&&console.warn(\"The `smooth` scroll behavior is not fully supported with dynamic size.\"),this._scrollToOffset(this.getOffsetForAlignment(a,o),{adjustments:void 0,behavior:l})},this.scrollToIndex=(a,{align:o=\"auto\",behavior:l}={})=>{l===\"smooth\"&&this.isDynamicMode()&&console.warn(\"The `smooth` scroll behavior is not fully supported with dynamic size.\"),a=Math.max(0,Math.min(a,this.options.count-1));let i=0;const t=10,n=v=>{if(!this.targetWindow)return;const s=this.getOffsetForIndex(a,v);if(!s){console.warn(\"Failed to get offset for index:\",a);return}const[u,p]=s;this._scrollToOffset(u,{adjustments:void 0,behavior:l}),this.targetWindow.requestAnimationFrame(()=>{const w=this.getScrollOffset(),x=this.getOffsetForIndex(a,p);if(!x){console.warn(\"Failed to get offset for index:\",a);return}kt(x[0],w)||f(p)})},f=v=>{this.targetWindow&&(i++,i<t?this.targetWindow.requestAnimationFrame(()=>n(v)):console.warn(`Failed to scroll to index ${a} after ${t} attempts.`))};n(o)},this.scrollBy=(a,{behavior:o}={})=>{o===\"smooth\"&&this.isDynamicMode()&&console.warn(\"The `smooth` scroll behavior is not fully supported with dynamic size.\"),this._scrollToOffset(this.getScrollOffset()+a,{adjustments:void 0,behavior:o})},this.getTotalSize=()=>{var a;const o=this.getMeasurements();let l;if(o.length===0)l=this.options.paddingStart;else if(this.options.lanes===1)l=((a=o[o.length-1])==null?void 0:a.end)??0;else{const i=Array(this.options.lanes).fill(null);let t=o.length-1;for(;t>=0&&i.some(n=>n===null);){const n=o[t];i[n.lane]===null&&(i[n.lane]=n.end),t--}l=Math.max(...i.filter(n=>n!==null))}return Math.max(l-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(a,{adjustments:o,behavior:l})=>{this.options.scrollToFn(a,{behavior:l,adjustments:o},this)},this.measure=()=>{this.itemSizeCache=new Map,this.notify(!1)},this.setOptions(c)}}const _e=(e,c,a,o)=>{for(;e<=c;){const l=(e+c)/2|0,i=a(l);if(i<o)e=l+1;else if(i>o)c=l-1;else return l}return e>0?e-1:0};function jt({measurements:e,outerSize:c,scrollOffset:a,lanes:o}){const l=e.length-1,i=f=>e[f].start;if(e.length<=o)return{startIndex:0,endIndex:l};let t=_e(0,l,i,a),n=t;if(o===1)for(;n<l&&e[n].end<a+c;)n++;else if(o>1){const f=Array(o).fill(0);for(;n<l&&f.some(s=>s<a+c);){const s=e[n];f[s.lane]=s.end,n++}const v=Array(o).fill(a+c);for(;t>=0&&v.some(s=>s>=a);){const s=e[t];v[s.lane]=s.start,t--}t=Math.max(0,t-t%o),n=Math.min(l,n+(o-1-n%o))}return{startIndex:t,endIndex:n}}function Nt(e){const c=new Lt(ge(e)),a=at(c),o=c._didMount();return Q(()=>ge(e).getScrollElement(),l=>{l&&c._willUpdate()},{immediate:!0}),Q(()=>ge(e),l=>{c.setOptions({...l,onChange:(i,t)=>{var n;ke(a),(n=l.onChange)==null||n.call(l,i,t)}}),c._willUpdate(),ke(a)},{immediate:!0}),ot(o),a}function qt(e){return Nt(h(()=>({observeElementRect:Pt,observeElementOffset:Dt,scrollToFn:Bt,...ge(e)})))}function Ht(){let e=Re();return Me(()=>e.dispose()),e}function Wt(){let e=Ht();return c=>{e.dispose(),e.nextFrame(c)}}var et=(e=>(e[e.Left=0]=\"Left\",e[e.Right=2]=\"Right\",e))(et||{}),Ut={};function Kt(e,c){return e===c}var Gt=(e=>(e[e.Open=0]=\"Open\",e[e.Closed=1]=\"Closed\",e))(Gt||{}),Qt=(e=>(e[e.Single=0]=\"Single\",e[e.Multi=1]=\"Multi\",e))(Qt||{}),Jt=(e=>(e[e.Pointer=0]=\"Pointer\",e[e.Focus=1]=\"Focus\",e[e.Other=2]=\"Other\",e))(Jt||{});let tt=Symbol(\"ComboboxContext\");function de(e){let c=Ee(tt,null);if(c===null){let a=new Error(`<${e} /> is missing a parent <Combobox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(a,de),a}return c}let lt=Symbol(\"VirtualContext\"),Xt=K({name:\"VirtualProvider\",setup(e,{slots:c}){let a=de(\"VirtualProvider\"),o=h(()=>{let n=R(a.optionsRef);if(!n)return{start:0,end:0};let f=window.getComputedStyle(n);return{start:parseFloat(f.paddingBlockStart||f.paddingTop),end:parseFloat(f.paddingBlockEnd||f.paddingBottom)}}),l=qt(h(()=>({scrollPaddingStart:o.value.start,scrollPaddingEnd:o.value.end,count:a.virtual.value.options.length,estimateSize(){return 40},getScrollElement(){return R(a.optionsRef)},overscan:12}))),i=h(()=>{var n;return(n=a.virtual.value)==null?void 0:n.options}),t=D(0);return Q([i],()=>{t.value+=1}),Te(lt,a.virtual.value?l:null),()=>[re(\"div\",{style:{position:\"relative\",width:\"100%\",height:`${l.value.getTotalSize()}px`},ref:n=>{if(n){if(typeof process<\"u\"&&Ut.JEST_WORKER_ID!==void 0||a.activationTrigger.value===0)return;a.activeOptionIndex.value!==null&&a.virtual.value.options.length>a.activeOptionIndex.value&&l.value.scrollToIndex(a.activeOptionIndex.value)}}},l.value.getVirtualItems().map(n=>dt(c.default({option:a.virtual.value.options[n.index],open:a.comboboxState.value===0})[0],{key:`${t.value}-${n.index}`,\"data-index\":n.index,\"aria-setsize\":a.virtual.value.options.length,\"aria-posinset\":n.index+1,style:{position:\"absolute\",top:0,left:0,transform:`translateY(${n.start}px)`,overflowAnchor:\"none\"}})))]}}),Yt=K({name:\"Combobox\",emits:{\"update:modelValue\":e=>!0},props:{as:{type:[Object,String],default:\"template\"},disabled:{type:[Boolean],default:!1},by:{type:[String,Function],nullable:!0,default:null},modelValue:{type:[Object,String,Number,Boolean],default:void 0},defaultValue:{type:[Object,String,Number,Boolean],default:void 0},form:{type:String,optional:!0},name:{type:String,optional:!0},nullable:{type:Boolean,default:!1},multiple:{type:[Boolean],default:!1},immediate:{type:[Boolean],default:!1},virtual:{type:Object,default:null}},inheritAttrs:!1,setup(e,{slots:c,attrs:a,emit:o}){let l=D(1),i=D(null),t=D(null),n=D(null),f=D(null),v=D({static:!1,hold:!1}),s=D([]),u=D(null),p=D(2),w=D(!1);function x(m=g=>g){let g=u.value!==null?s.value[u.value]:null,C=m(s.value.slice()),M=C.length>0&&C[0].dataRef.order.value!==null?C.sort((V,H)=>V.dataRef.order.value-H.dataRef.order.value):Qe(C,V=>R(V.dataRef.domRef)),z=g?M.indexOf(g):null;return z===-1&&(z=null),{options:M,activeOptionIndex:z}}let E=h(()=>e.multiple?1:0),F=h(()=>e.nullable),[A,S]=qe(h(()=>e.modelValue),m=>o(\"update:modelValue\",m),h(()=>e.defaultValue)),r=h(()=>A.value===void 0?q(E.value,{1:[],0:void 0}):A.value),O=null,d=null;function y(m){return q(E.value,{0(){return S==null?void 0:S(m)},1:()=>{let g=j(b.value.value).slice(),C=j(m),M=g.findIndex(z=>b.compare(C,j(z)));return M===-1?g.push(C):g.splice(M,1),S==null?void 0:S(g)}})}let I=h(()=>{});Q([I],([m],[g])=>{if(b.virtual.value&&m&&g&&u.value!==null){let C=m.indexOf(g[u.value]);C!==-1?u.value=C:u.value=null}});let b={comboboxState:l,value:r,mode:E,compare(m,g){if(typeof e.by==\"string\"){let C=e.by;return(m==null?void 0:m[C])===(g==null?void 0:g[C])}return e.by===null?Kt(m,g):e.by(m,g)},calculateIndex(m){return b.virtual.value?e.by===null?b.virtual.value.options.indexOf(m):b.virtual.value.options.findIndex(g=>b.compare(g,m)):s.value.findIndex(g=>b.compare(g.dataRef.value,m))},defaultValue:h(()=>e.defaultValue),nullable:F,immediate:h(()=>!1),virtual:h(()=>null),inputRef:t,labelRef:i,buttonRef:n,optionsRef:f,disabled:h(()=>e.disabled),options:s,change(m){S(m)},activeOptionIndex:h(()=>{if(w.value&&u.value===null&&(b.virtual.value?b.virtual.value.options.length>0:s.value.length>0)){if(b.virtual.value){let g=b.virtual.value.options.findIndex(C=>{var M;return!((M=b.virtual.value)!=null&&M.disabled(C))});if(g!==-1)return g}let m=s.value.findIndex(g=>!g.dataRef.disabled);if(m!==-1)return m}return u.value}),activationTrigger:p,optionsPropsRef:v,closeCombobox(){w.value=!1,!e.disabled&&l.value!==1&&(l.value=1,u.value=null)},openCombobox(){if(w.value=!0,!e.disabled&&l.value!==0){if(b.value.value){let m=b.calculateIndex(b.value.value);m!==-1&&(u.value=m)}l.value=0}},setActivationTrigger(m){p.value=m},goToOption(m,g,C){w.value=!1,O!==null&&cancelAnimationFrame(O),O=requestAnimationFrame(()=>{if(e.disabled||f.value&&!v.value.static&&l.value===1)return;if(b.virtual.value){u.value=m===k.Specific?g:we({focus:m},{resolveItems:()=>b.virtual.value.options,resolveActiveIndex:()=>{var V,H;return(H=(V=b.activeOptionIndex.value)!=null?V:b.virtual.value.options.findIndex(Y=>{var le;return!((le=b.virtual.value)!=null&&le.disabled(Y))}))!=null?H:null},resolveDisabled:V=>b.virtual.value.disabled(V),resolveId(){throw new Error(\"Function not implemented.\")}}),p.value=C??2;return}let M=x();if(M.activeOptionIndex===null){let V=M.options.findIndex(H=>!H.dataRef.disabled);V!==-1&&(M.activeOptionIndex=V)}let z=m===k.Specific?g:we({focus:m},{resolveItems:()=>M.options,resolveActiveIndex:()=>M.activeOptionIndex,resolveId:V=>V.id,resolveDisabled:V=>V.dataRef.disabled});u.value=z,p.value=C??2,s.value=M.options})},selectOption(m){let g=s.value.find(M=>M.id===m);if(!g)return;let{dataRef:C}=g;y(C.value)},selectActiveOption(){if(b.activeOptionIndex.value!==null){if(b.virtual.value)y(b.virtual.value.options[b.activeOptionIndex.value]);else{let{dataRef:m}=s.value[b.activeOptionIndex.value];y(m.value)}b.goToOption(k.Specific,b.activeOptionIndex.value)}},registerOption(m,g){let C=rt({id:m,dataRef:g});if(b.virtual.value){s.value.push(C);return}d&&cancelAnimationFrame(d);let M=x(z=>(z.push(C),z));u.value===null&&b.isSelected(g.value.value)&&(M.activeOptionIndex=M.options.indexOf(C)),s.value=M.options,u.value=M.activeOptionIndex,p.value=2,M.options.some(z=>!R(z.dataRef.domRef))&&(d=requestAnimationFrame(()=>{let z=x();s.value=z.options,u.value=z.activeOptionIndex}))},unregisterOption(m,g){if(O!==null&&cancelAnimationFrame(O),g&&(w.value=!0),b.virtual.value){s.value=s.value.filter(M=>M.id!==m);return}let C=x(M=>{let z=M.findIndex(V=>V.id===m);return z!==-1&&M.splice(z,1),M});s.value=C.options,u.value=C.activeOptionIndex,p.value=2},isSelected(m){return q(E.value,{0:()=>b.compare(j(b.value.value),j(m)),1:()=>j(b.value.value).some(g=>b.compare(j(g),j(m)))})},isActive(m){return u.value===b.calculateIndex(m)}};He([t,n,f],()=>b.closeCombobox(),h(()=>l.value===0)),Te(tt,b),We(h(()=>q(l.value,{0:te.Open,1:te.Closed})));let T=h(()=>{var m;return(m=R(t))==null?void 0:m.closest(\"form\")});return ue(()=>{Q([T],()=>{if(!T.value||e.defaultValue===void 0)return;function m(){b.change(e.defaultValue)}return T.value.addEventListener(\"reset\",m),()=>{var g;(g=T.value)==null||g.removeEventListener(\"reset\",m)}},{immediate:!0})}),()=>{var m,g,C;let{name:M,disabled:z,form:V,...H}=e,Y={open:l.value===0,disabled:z,activeIndex:b.activeOptionIndex.value,activeOption:b.activeOptionIndex.value===null?null:b.virtual.value?b.virtual.value.options[(m=b.activeOptionIndex.value)!=null?m:0]:(C=(g=b.options.value[b.activeOptionIndex.value])==null?void 0:g.dataRef.value)!=null?C:null,value:r.value};return re(Ae,[...M!=null&&r.value!=null?Ue({[M]:r.value}).map(([le,Se])=>re(Ke,Ge({features:Je.Hidden,key:le,as:\"input\",type:\"hidden\",hidden:!0,readOnly:!0,form:V,disabled:z,name:le,value:Se}))):[],X({theirProps:{...a,...ye(H,[\"by\",\"defaultValue\",\"immediate\",\"modelValue\",\"multiple\",\"nullable\",\"onUpdate:modelValue\",\"virtual\"])},ourProps:{},slot:Y,slots:c,attrs:a,name:\"Combobox\"})])}}}),Zt=K({name:\"ComboboxButton\",props:{as:{type:[Object,String],default:\"button\"},id:{type:String,default:null}},setup(e,{attrs:c,slots:a,expose:o}){var l;let i=(l=e.id)!=null?l:`headlessui-combobox-button-${ae()}`,t=de(\"ComboboxButton\");o({el:t.buttonRef,$el:t.buttonRef});function n(s){t.disabled.value||(t.comboboxState.value===0?t.closeCombobox():(s.preventDefault(),t.openCombobox()),N(()=>{var u;return(u=R(t.inputRef))==null?void 0:u.focus({preventScroll:!0})}))}function f(s){switch(s.key){case $.ArrowDown:s.preventDefault(),s.stopPropagation(),t.comboboxState.value===1&&t.openCombobox(),N(()=>{var u;return(u=t.inputRef.value)==null?void 0:u.focus({preventScroll:!0})});return;case $.ArrowUp:s.preventDefault(),s.stopPropagation(),t.comboboxState.value===1&&(t.openCombobox(),N(()=>{t.value.value||t.goToOption(k.Last)})),N(()=>{var u;return(u=t.inputRef.value)==null?void 0:u.focus({preventScroll:!0})});return;case $.Escape:if(t.comboboxState.value!==0)return;s.preventDefault(),t.optionsRef.value&&!t.optionsPropsRef.value.static&&s.stopPropagation(),t.closeCombobox(),N(()=>{var u;return(u=t.inputRef.value)==null?void 0:u.focus({preventScroll:!0})});return}}let v=Ne(h(()=>({as:e.as,type:c.type})),t.buttonRef);return()=>{var s,u;let p={open:t.comboboxState.value===0,disabled:t.disabled.value,value:t.value.value},{...w}=e,x={ref:t.buttonRef,id:i,type:v.value,tabindex:\"-1\",\"aria-haspopup\":\"listbox\",\"aria-controls\":(s=R(t.optionsRef))==null?void 0:s.id,\"aria-expanded\":t.comboboxState.value===0,\"aria-labelledby\":t.labelRef.value?[(u=R(t.labelRef))==null?void 0:u.id,i].join(\" \"):void 0,disabled:t.disabled.value===!0?!0:void 0,onKeydown:f,onClick:n};return X({ourProps:x,theirProps:w,slot:p,attrs:c,slots:a,name:\"ComboboxButton\"})}}}),_t=K({name:\"ComboboxInput\",props:{as:{type:[Object,String],default:\"input\"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},displayValue:{type:Function},defaultValue:{type:String,default:void 0},id:{type:String,default:null}},emits:{change:e=>!0},setup(e,{emit:c,attrs:a,slots:o,expose:l}){var i;let t=(i=e.id)!=null?i:`headlessui-combobox-input-${ae()}`,n=de(\"ComboboxInput\"),f=h(()=>it(R(n.inputRef))),v={value:!1};l({el:n.inputRef,$el:n.inputRef});function s(){n.change(null);let d=R(n.optionsRef);d&&(d.scrollTop=0),n.goToOption(k.Nothing)}let u=h(()=>{var d;let y=n.value.value;return R(n.inputRef)?typeof e.displayValue<\"u\"&&y!==void 0?(d=e.displayValue(y))!=null?d:\"\":typeof y==\"string\"?y:\"\":\"\"});ue(()=>{Q([u,n.comboboxState,f],([d,y],[I,b])=>{if(v.value)return;let T=R(n.inputRef);T&&((b===0&&y===1||d!==I)&&(T.value=d),requestAnimationFrame(()=>{var m;if(v.value||!T||((m=f.value)==null?void 0:m.activeElement)!==T)return;let{selectionStart:g,selectionEnd:C}=T;Math.abs((C??0)-(g??0))===0&&g===0&&T.setSelectionRange(T.value.length,T.value.length)}))},{immediate:!0}),Q([n.comboboxState],([d],[y])=>{if(d===0&&y===1){if(v.value)return;let I=R(n.inputRef);if(!I)return;let b=I.value,{selectionStart:T,selectionEnd:m,selectionDirection:g}=I;I.value=\"\",I.value=b,g!==null?I.setSelectionRange(T,m,g):I.setSelectionRange(T,m)}})});let p=D(!1);function w(){p.value=!0}function x(){Re().nextFrame(()=>{p.value=!1})}let E=Wt();function F(d){switch(v.value=!0,E(()=>{v.value=!1}),d.key){case $.Enter:if(v.value=!1,n.comboboxState.value!==0||p.value)return;if(d.preventDefault(),d.stopPropagation(),n.activeOptionIndex.value===null){n.closeCombobox();return}n.selectActiveOption(),n.mode.value===0&&n.closeCombobox();break;case $.ArrowDown:return v.value=!1,d.preventDefault(),d.stopPropagation(),q(n.comboboxState.value,{0:()=>n.goToOption(k.Next),1:()=>n.openCombobox()});case $.ArrowUp:return v.value=!1,d.preventDefault(),d.stopPropagation(),q(n.comboboxState.value,{0:()=>n.goToOption(k.Previous),1:()=>{n.openCombobox(),N(()=>{n.value.value||n.goToOption(k.Last)})}});case $.Home:if(d.shiftKey)break;return v.value=!1,d.preventDefault(),d.stopPropagation(),n.goToOption(k.First);case $.PageUp:return v.value=!1,d.preventDefault(),d.stopPropagation(),n.goToOption(k.First);case $.End:if(d.shiftKey)break;return v.value=!1,d.preventDefault(),d.stopPropagation(),n.goToOption(k.Last);case $.PageDown:return v.value=!1,d.preventDefault(),d.stopPropagation(),n.goToOption(k.Last);case $.Escape:if(v.value=!1,n.comboboxState.value!==0)return;d.preventDefault(),n.optionsRef.value&&!n.optionsPropsRef.value.static&&d.stopPropagation(),n.nullable.value&&n.mode.value===0&&n.value.value===null&&s(),n.closeCombobox();break;case $.Tab:if(v.value=!1,n.comboboxState.value!==0)return;n.mode.value===0&&n.activationTrigger.value!==1&&n.selectActiveOption(),n.closeCombobox();break}}function A(d){c(\"change\",d),n.nullable.value&&n.mode.value===0&&d.target.value===\"\"&&s(),n.openCombobox()}function S(d){var y,I,b;let T=(y=d.relatedTarget)!=null?y:$e.find(m=>m!==d.currentTarget);if(v.value=!1,!((I=R(n.optionsRef))!=null&&I.contains(T))&&!((b=R(n.buttonRef))!=null&&b.contains(T))&&n.comboboxState.value===0)return d.preventDefault(),n.mode.value===0&&(n.nullable.value&&n.value.value===null?s():n.activationTrigger.value!==1&&n.selectActiveOption()),n.closeCombobox()}function r(d){var y,I,b;let T=(y=d.relatedTarget)!=null?y:$e.find(m=>m!==d.currentTarget);(I=R(n.buttonRef))!=null&&I.contains(T)||(b=R(n.optionsRef))!=null&&b.contains(T)||n.disabled.value||n.immediate.value&&n.comboboxState.value!==0&&(n.openCombobox(),Re().nextFrame(()=>{n.setActivationTrigger(1)}))}let O=h(()=>{var d,y,I,b;return(b=(I=(y=e.defaultValue)!=null?y:n.defaultValue.value!==void 0?(d=e.displayValue)==null?void 0:d.call(e,n.defaultValue.value):null)!=null?I:n.defaultValue.value)!=null?b:\"\"});return()=>{var d,y,I,b,T,m,g;let C={open:n.comboboxState.value===0},{displayValue:M,onChange:z,...V}=e,H={\"aria-controls\":(d=n.optionsRef.value)==null?void 0:d.id,\"aria-expanded\":n.comboboxState.value===0,\"aria-activedescendant\":n.activeOptionIndex.value===null?void 0:n.virtual.value?(y=n.options.value.find(Y=>!n.virtual.value.disabled(Y.dataRef.value)&&n.compare(Y.dataRef.value,n.virtual.value.options[n.activeOptionIndex.value])))==null?void 0:y.id:(I=n.options.value[n.activeOptionIndex.value])==null?void 0:I.id,\"aria-labelledby\":(m=(b=R(n.labelRef))==null?void 0:b.id)!=null?m:(T=R(n.buttonRef))==null?void 0:T.id,\"aria-autocomplete\":\"list\",id:t,onCompositionstart:w,onCompositionend:x,onKeydown:F,onInput:A,onFocus:r,onBlur:S,role:\"combobox\",type:(g=a.type)!=null?g:\"text\",tabIndex:0,ref:n.inputRef,defaultValue:O.value,disabled:n.disabled.value===!0?!0:void 0};return X({ourProps:H,theirProps:V,slot:C,attrs:a,slots:o,features:se.RenderStrategy|se.Static,name:\"ComboboxInput\"})}}}),el=K({name:\"ComboboxOptions\",props:{as:{type:[Object,String],default:\"ul\"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},hold:{type:[Boolean],default:!1}},setup(e,{attrs:c,slots:a,expose:o}){let l=de(\"ComboboxOptions\"),i=`headlessui-combobox-options-${ae()}`;o({el:l.optionsRef,$el:l.optionsRef}),fe(()=>{l.optionsPropsRef.value.static=e.static}),fe(()=>{l.optionsPropsRef.value.hold=e.hold});let t=je(),n=h(()=>t!==null?(t.value&te.Open)===te.Open:l.comboboxState.value===0);st({container:h(()=>R(l.optionsRef)),enabled:h(()=>l.comboboxState.value===0),accept(v){return v.getAttribute(\"role\")===\"option\"?NodeFilter.FILTER_REJECT:v.hasAttribute(\"role\")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(v){v.setAttribute(\"role\",\"none\")}});function f(v){v.preventDefault()}return()=>{var v,s,u;let p={open:l.comboboxState.value===0},w={\"aria-labelledby\":(u=(v=R(l.labelRef))==null?void 0:v.id)!=null?u:(s=R(l.buttonRef))==null?void 0:s.id,id:i,ref:l.optionsRef,role:\"listbox\",\"aria-multiselectable\":l.mode.value===1?!0:void 0,onMousedown:f},x=ye(e,[\"hold\"]);return X({ourProps:w,theirProps:x,slot:p,attrs:c,slots:l.virtual.value&&l.comboboxState.value===0?{...a,default:()=>[re(Xt,{},a.default)]}:a,features:se.RenderStrategy|se.Static,visible:n.value,name:\"ComboboxOptions\"})}}}),tl=K({name:\"ComboboxOption\",props:{as:{type:[Object,String],default:\"li\"},value:{type:[Object,String,Number,Boolean]},disabled:{type:Boolean,default:!1},order:{type:[Number],default:null}},setup(e,{slots:c,attrs:a,expose:o}){let l=de(\"ComboboxOption\"),i=`headlessui-combobox-option-${ae()}`,t=D(null),n=h(()=>e.disabled);o({el:t,$el:t});let f=h(()=>{var S;return l.virtual.value?l.activeOptionIndex.value===l.calculateIndex(e.value):l.activeOptionIndex.value===null?!1:((S=l.options.value[l.activeOptionIndex.value])==null?void 0:S.id)===i}),v=h(()=>l.isSelected(e.value)),s=Ee(lt,null),u=h(()=>({disabled:e.disabled,value:e.value,domRef:t,order:h(()=>e.order)}));ue(()=>l.registerOption(i,u)),Me(()=>l.unregisterOption(i,f.value)),fe(()=>{let S=R(t);S&&(s==null||s.value.measureElement(S))}),fe(()=>{l.comboboxState.value===0&&f.value&&(l.virtual.value||l.activationTrigger.value!==0&&N(()=>{var S,r;return(r=(S=R(t))==null?void 0:S.scrollIntoView)==null?void 0:r.call(S,{block:\"nearest\"})}))});function p(S){S.preventDefault(),S.button===et.Left&&(n.value||(l.selectOption(i),ut()||requestAnimationFrame(()=>{var r;return(r=R(l.inputRef))==null?void 0:r.focus({preventScroll:!0})}),l.mode.value===0&&l.closeCombobox()))}function w(){var S;if(e.disabled||(S=l.virtual.value)!=null&&S.disabled(e.value))return l.goToOption(k.Nothing);let r=l.calculateIndex(e.value);l.goToOption(k.Specific,r)}let x=Le();function E(S){x.update(S)}function F(S){var r;if(!x.wasMoved(S)||e.disabled||(r=l.virtual.value)!=null&&r.disabled(e.value)||f.value)return;let O=l.calculateIndex(e.value);l.goToOption(k.Specific,O,0)}function A(S){var r;x.wasMoved(S)&&(e.disabled||(r=l.virtual.value)!=null&&r.disabled(e.value)||f.value&&(l.optionsPropsRef.value.hold||l.goToOption(k.Nothing)))}return()=>{let{disabled:S}=e,r={active:f.value,selected:v.value,disabled:S},O={id:i,ref:t,role:\"option\",tabIndex:S===!0?void 0:-1,\"aria-disabled\":S===!0?!0:void 0,\"aria-selected\":v.value,disabled:void 0,onMousedown:p,onFocus:w,onPointerenter:E,onMouseenter:E,onPointermove:F,onMousemove:F,onPointerleave:A,onMouseleave:A},d=ye(e,[\"order\",\"value\"]);return X({ourProps:O,theirProps:d,slot:r,attrs:a,slots:c,name:\"ComboboxOption\"})}}});function ll(e,c){return e===c}var nl=(e=>(e[e.Open=0]=\"Open\",e[e.Closed=1]=\"Closed\",e))(nl||{}),al=(e=>(e[e.Single=0]=\"Single\",e[e.Multi=1]=\"Multi\",e))(al||{}),ol=(e=>(e[e.Pointer=0]=\"Pointer\",e[e.Other=1]=\"Other\",e))(ol||{});function il(e){requestAnimationFrame(()=>requestAnimationFrame(e))}let nt=Symbol(\"ListboxContext\");function Oe(e){let c=Ee(nt,null);if(c===null){let a=new Error(`<${e} /> is missing a parent <Listbox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(a,Oe),a}return c}let ul=K({name:\"Listbox\",emits:{\"update:modelValue\":e=>!0},props:{as:{type:[Object,String],default:\"template\"},disabled:{type:[Boolean],default:!1},by:{type:[String,Function],default:()=>ll},horizontal:{type:[Boolean],default:!1},modelValue:{type:[Object,String,Number,Boolean],default:void 0},defaultValue:{type:[Object,String,Number,Boolean],default:void 0},form:{type:String,optional:!0},name:{type:String,optional:!0},multiple:{type:[Boolean],default:!1}},inheritAttrs:!1,setup(e,{slots:c,attrs:a,emit:o}){let l=D(1),i=D(null),t=D(null),n=D(null),f=D([]),v=D(\"\"),s=D(null),u=D(1);function p(r=O=>O){let O=s.value!==null?f.value[s.value]:null,d=Qe(r(f.value.slice()),I=>R(I.dataRef.domRef)),y=O?d.indexOf(O):null;return y===-1&&(y=null),{options:d,activeOptionIndex:y}}let w=h(()=>e.multiple?1:0),[x,E]=qe(h(()=>e.modelValue),r=>o(\"update:modelValue\",r),h(()=>e.defaultValue)),F=h(()=>x.value===void 0?q(w.value,{1:[],0:void 0}):x.value),A={listboxState:l,value:F,mode:w,compare(r,O){if(typeof e.by==\"string\"){let d=e.by;return(r==null?void 0:r[d])===(O==null?void 0:O[d])}return e.by(r,O)},orientation:h(()=>e.horizontal?\"horizontal\":\"vertical\"),labelRef:i,buttonRef:t,optionsRef:n,disabled:h(()=>e.disabled),options:f,searchQuery:v,activeOptionIndex:s,activationTrigger:u,closeListbox(){e.disabled||l.value!==1&&(l.value=1,s.value=null)},openListbox(){e.disabled||l.value!==0&&(l.value=0)},goToOption(r,O,d){if(e.disabled||l.value===1)return;let y=p(),I=we(r===k.Specific?{focus:k.Specific,id:O}:{focus:r},{resolveItems:()=>y.options,resolveActiveIndex:()=>y.activeOptionIndex,resolveId:b=>b.id,resolveDisabled:b=>b.dataRef.disabled});v.value=\"\",s.value=I,u.value=d??1,f.value=y.options},search(r){if(e.disabled||l.value===1)return;let O=v.value!==\"\"?0:1;v.value+=r.toLowerCase();let d=(s.value!==null?f.value.slice(s.value+O).concat(f.value.slice(0,s.value+O)):f.value).find(I=>I.dataRef.textValue.startsWith(v.value)&&!I.dataRef.disabled),y=d?f.value.indexOf(d):-1;y===-1||y===s.value||(s.value=y,u.value=1)},clearSearch(){e.disabled||l.value!==1&&v.value!==\"\"&&(v.value=\"\")},registerOption(r,O){let d=p(y=>[...y,{id:r,dataRef:O}]);f.value=d.options,s.value=d.activeOptionIndex},unregisterOption(r){let O=p(d=>{let y=d.findIndex(I=>I.id===r);return y!==-1&&d.splice(y,1),d});f.value=O.options,s.value=O.activeOptionIndex,u.value=1},theirOnChange(r){e.disabled||E(r)},select(r){e.disabled||E(q(w.value,{0:()=>r,1:()=>{let O=j(A.value.value).slice(),d=j(r),y=O.findIndex(I=>A.compare(d,j(I)));return y===-1?O.push(d):O.splice(y,1),O}}))}};He([t,n],(r,O)=>{var d;A.closeListbox(),vt(O,pt.Loose)||(r.preventDefault(),(d=R(t))==null||d.focus())},h(()=>l.value===0)),Te(nt,A),We(h(()=>q(l.value,{0:te.Open,1:te.Closed})));let S=h(()=>{var r;return(r=R(t))==null?void 0:r.closest(\"form\")});return ue(()=>{Q([S],()=>{if(!S.value||e.defaultValue===void 0)return;function r(){A.theirOnChange(e.defaultValue)}return S.value.addEventListener(\"reset\",r),()=>{var O;(O=S.value)==null||O.removeEventListener(\"reset\",r)}},{immediate:!0})}),()=>{let{name:r,modelValue:O,disabled:d,form:y,...I}=e,b={open:l.value===0,disabled:d,value:F.value};return re(Ae,[...r!=null&&F.value!=null?Ue({[r]:F.value}).map(([T,m])=>re(Ke,Ge({features:Je.Hidden,key:T,as:\"input\",type:\"hidden\",hidden:!0,readOnly:!0,form:y,disabled:d,name:T,value:m}))):[],X({ourProps:{},theirProps:{...a,...ye(I,[\"defaultValue\",\"onUpdate:modelValue\",\"horizontal\",\"multiple\",\"by\"])},slot:b,slots:c,attrs:a,name:\"Listbox\"})])}}}),sl=K({name:\"ListboxButton\",props:{as:{type:[Object,String],default:\"button\"},id:{type:String,default:null}},setup(e,{attrs:c,slots:a,expose:o}){var l;let i=(l=e.id)!=null?l:`headlessui-listbox-button-${ae()}`,t=Oe(\"ListboxButton\");o({el:t.buttonRef,$el:t.buttonRef});function n(u){switch(u.key){case $.Space:case $.Enter:case $.ArrowDown:u.preventDefault(),t.openListbox(),N(()=>{var p;(p=R(t.optionsRef))==null||p.focus({preventScroll:!0}),t.value.value||t.goToOption(k.First)});break;case $.ArrowUp:u.preventDefault(),t.openListbox(),N(()=>{var p;(p=R(t.optionsRef))==null||p.focus({preventScroll:!0}),t.value.value||t.goToOption(k.Last)});break}}function f(u){switch(u.key){case $.Space:u.preventDefault();break}}function v(u){t.disabled.value||(t.listboxState.value===0?(t.closeListbox(),N(()=>{var p;return(p=R(t.buttonRef))==null?void 0:p.focus({preventScroll:!0})})):(u.preventDefault(),t.openListbox(),il(()=>{var p;return(p=R(t.optionsRef))==null?void 0:p.focus({preventScroll:!0})})))}let s=Ne(h(()=>({as:e.as,type:c.type})),t.buttonRef);return()=>{var u,p;let w={open:t.listboxState.value===0,disabled:t.disabled.value,value:t.value.value},{...x}=e,E={ref:t.buttonRef,id:i,type:s.value,\"aria-haspopup\":\"listbox\",\"aria-controls\":(u=R(t.optionsRef))==null?void 0:u.id,\"aria-expanded\":t.listboxState.value===0,\"aria-labelledby\":t.labelRef.value?[(p=R(t.labelRef))==null?void 0:p.id,i].join(\" \"):void 0,disabled:t.disabled.value===!0?!0:void 0,onKeydown:n,onKeyup:f,onClick:v};return X({ourProps:E,theirProps:x,slot:w,attrs:c,slots:a,name:\"ListboxButton\"})}}}),rl=K({name:\"ListboxOptions\",props:{as:{type:[Object,String],default:\"ul\"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},id:{type:String,default:null}},setup(e,{attrs:c,slots:a,expose:o}){var l;let i=(l=e.id)!=null?l:`headlessui-listbox-options-${ae()}`,t=Oe(\"ListboxOptions\"),n=D(null);o({el:t.optionsRef,$el:t.optionsRef});function f(u){switch(n.value&&clearTimeout(n.value),u.key){case $.Space:if(t.searchQuery.value!==\"\")return u.preventDefault(),u.stopPropagation(),t.search(u.key);case $.Enter:if(u.preventDefault(),u.stopPropagation(),t.activeOptionIndex.value!==null){let p=t.options.value[t.activeOptionIndex.value];t.select(p.dataRef.value)}t.mode.value===0&&(t.closeListbox(),N(()=>{var p;return(p=R(t.buttonRef))==null?void 0:p.focus({preventScroll:!0})}));break;case q(t.orientation.value,{vertical:$.ArrowDown,horizontal:$.ArrowRight}):return u.preventDefault(),u.stopPropagation(),t.goToOption(k.Next);case q(t.orientation.value,{vertical:$.ArrowUp,horizontal:$.ArrowLeft}):return u.preventDefault(),u.stopPropagation(),t.goToOption(k.Previous);case $.Home:case $.PageUp:return u.preventDefault(),u.stopPropagation(),t.goToOption(k.First);case $.End:case $.PageDown:return u.preventDefault(),u.stopPropagation(),t.goToOption(k.Last);case $.Escape:u.preventDefault(),u.stopPropagation(),t.closeListbox(),N(()=>{var p;return(p=R(t.buttonRef))==null?void 0:p.focus({preventScroll:!0})});break;case $.Tab:u.preventDefault(),u.stopPropagation();break;default:u.key.length===1&&(t.search(u.key),n.value=setTimeout(()=>t.clearSearch(),350));break}}let v=je(),s=h(()=>v!==null?(v.value&te.Open)===te.Open:t.listboxState.value===0);return()=>{var u,p;let w={open:t.listboxState.value===0},{...x}=e,E={\"aria-activedescendant\":t.activeOptionIndex.value===null||(u=t.options.value[t.activeOptionIndex.value])==null?void 0:u.id,\"aria-multiselectable\":t.mode.value===1?!0:void 0,\"aria-labelledby\":(p=R(t.buttonRef))==null?void 0:p.id,\"aria-orientation\":t.orientation.value,id:i,onKeydown:f,role:\"listbox\",tabIndex:0,ref:t.optionsRef};return X({ourProps:E,theirProps:x,slot:w,attrs:c,slots:a,features:se.RenderStrategy|se.Static,visible:s.value,name:\"ListboxOptions\"})}}}),dl=K({name:\"ListboxOption\",props:{as:{type:[Object,String],default:\"li\"},value:{type:[Object,String,Number,Boolean]},disabled:{type:Boolean,default:!1},id:{type:String,default:null}},setup(e,{slots:c,attrs:a,expose:o}){var l;let i=(l=e.id)!=null?l:`headlessui-listbox-option-${ae()}`,t=Oe(\"ListboxOption\"),n=D(null);o({el:n,$el:n});let f=h(()=>t.activeOptionIndex.value!==null?t.options.value[t.activeOptionIndex.value].id===i:!1),v=h(()=>q(t.mode.value,{0:()=>t.compare(j(t.value.value),j(e.value)),1:()=>j(t.value.value).some(r=>t.compare(j(r),j(e.value)))})),s=h(()=>q(t.mode.value,{1:()=>{var r;let O=j(t.value.value);return((r=t.options.value.find(d=>O.some(y=>t.compare(j(y),j(d.dataRef.value)))))==null?void 0:r.id)===i},0:()=>v.value})),u=ct(n),p=h(()=>({disabled:e.disabled,value:e.value,get textValue(){return u()},domRef:n}));ue(()=>t.registerOption(i,p)),Me(()=>t.unregisterOption(i)),ue(()=>{Q([t.listboxState,v],()=>{t.listboxState.value===0&&v.value&&q(t.mode.value,{1:()=>{s.value&&t.goToOption(k.Specific,i)},0:()=>{t.goToOption(k.Specific,i)}})},{immediate:!0})}),fe(()=>{t.listboxState.value===0&&f.value&&t.activationTrigger.value!==0&&N(()=>{var r,O;return(O=(r=R(n))==null?void 0:r.scrollIntoView)==null?void 0:O.call(r,{block:\"nearest\"})})});function w(r){if(e.disabled)return r.preventDefault();t.select(e.value),t.mode.value===0&&(t.closeListbox(),N(()=>{var O;return(O=R(t.buttonRef))==null?void 0:O.focus({preventScroll:!0})}))}function x(){if(e.disabled)return t.goToOption(k.Nothing);t.goToOption(k.Specific,i)}let E=Le();function F(r){E.update(r)}function A(r){E.wasMoved(r)&&(e.disabled||f.value||t.goToOption(k.Specific,i,0))}function S(r){E.wasMoved(r)&&(e.disabled||f.value&&t.goToOption(k.Nothing))}return()=>{let{disabled:r}=e,O={active:f.value,selected:v.value,disabled:r},{value:d,disabled:y,...I}=e,b={id:i,ref:n,role:\"option\",tabIndex:r===!0?void 0:-1,\"aria-disabled\":r===!0?!0:void 0,\"aria-selected\":v.value,disabled:void 0,onClick:w,onFocus:x,onPointerenter:F,onMouseenter:F,onPointermove:A,onMousemove:A,onPointerleave:S,onMouseleave:S};return X({ourProps:b,theirProps:I,slot:O,attrs:a,slots:c,name:\"ListboxOption\"})}}});const G=Ze(ne.ui.strategy,ne.ui.select,wt),he=Ze(ne.ui.strategy,ne.ui.selectMenu,Mt),cl=K({components:{HCombobox:Yt,HComboboxButton:Zt,HComboboxOptions:el,HComboboxOption:tl,HComboboxInput:_t,HListbox:ul,HListboxButton:sl,HListboxOptions:rl,HListboxOption:dl,UIcon:Xe,UAvatar:Ye},inheritAttrs:!1,props:{modelValue:{type:[String,Number,Object,Array,Boolean],default:\"\"},query:{type:String,default:null},by:{type:String,default:void 0},options:{type:Array,default:()=>[]},id:{type:String,default:null},name:{type:String,default:null},required:{type:Boolean,default:!1},icon:{type:String,default:null},loadingIcon:{type:String,default:()=>G.default.loadingIcon},leadingIcon:{type:String,default:null},trailingIcon:{type:String,default:()=>G.default.trailingIcon},trailing:{type:Boolean,default:!1},leading:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},selectedIcon:{type:String,default:()=>he.default.selectedIcon},disabled:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},searchable:{type:[Boolean,Function],default:!1},searchablePlaceholder:{type:String,default:\"Search...\"},clearSearchOnClose:{type:Boolean,default:()=>he.default.clearSearchOnClose},debounce:{type:Number,default:200},creatable:{type:Boolean,default:!1},showCreateOptionWhen:{type:String,default:()=>he.default.showCreateOptionWhen},placeholder:{type:String,default:null},padded:{type:Boolean,default:!0},size:{type:String,default:null,validator(e){return Object.keys(G.size).includes(e)}},color:{type:String,default:()=>G.default.color,validator(e){return[...ne.ui.colors,...Object.keys(G.color)].includes(e)}},variant:{type:String,default:()=>G.default.variant,validator(e){return[...Object.keys(G.variant),...Object.values(G.color).flatMap(c=>Object.keys(c))].includes(e)}},optionAttribute:{type:String,default:\"label\"},valueAttribute:{type:String,default:null},searchAttributes:{type:Array,default:null},popper:{type:Object,default:()=>({})},selectClass:{type:String,default:null},class:{type:[String,Object,Array],default:()=>\"\"},ui:{type:Object,default:()=>({})},uiMenu:{type:Object,default:()=>({})}},emits:[\"update:modelValue\",\"update:query\",\"open\",\"close\",\"change\"],setup(e,{emit:c,slots:a}){const{ui:o,attrs:l}=Ve(\"select\",Ce(e,\"ui\"),G,Ce(e,\"class\")),{ui:i}=Ve(\"selectMenu\",Ce(e,\"uiMenu\"),he),t=h(()=>yt({},e.popper,i.value.popper)),[n,f]=Ot(t.value),{size:v,rounded:s}=St({ui:o,props:e}),{emitFormBlur:u,emitFormChange:p,inputId:w,color:x,size:E,name:F}=xt(e,G),A=h(()=>v.value||E.value),S=D(\"\"),r=h({get(){return e.query??S.value},set(B){S.value=B,c(\"update:query\",B)}}),O=h(()=>{if(e.multiple)return Array.isArray(e.modelValue)&&e.modelValue.length?`${e.modelValue.length} selected`:null;if(e.modelValue!==void 0&&e.modelValue!==null)if(e.valueAttribute){const B=e.options.find(U=>U[e.valueAttribute]===e.modelValue);return B?B[e.optionAttribute]:null}else return[\"string\",\"number\"].includes(typeof e.modelValue)?e.modelValue:e.modelValue[e.optionAttribute];return null}),d=h(()=>{var U,be;const B=((be=(U=o.value.color)==null?void 0:U[x.value])==null?void 0:be[e.variant])||o.value.variant[e.variant];return It(pe(o.value.base,i.value.select,s.value,o.value.size[A.value],o.value.gap[A.value],e.padded?o.value.padding[A.value]:\"p-0\",B==null?void 0:B.replaceAll(\"{color}\",x.value),(y.value||a.leading)&&o.value.leading.padding[A.value],(I.value||a.trailing)&&o.value.trailing.padding[A.value]),e.placeholder&&e.modelValue===void 0&&e.modelValue===null&&o.value.placeholder,e.selectClass)}),y=h(()=>e.icon&&e.leading||e.icon&&!e.trailing||e.loading&&!e.trailing||e.leadingIcon),I=h(()=>e.icon&&e.trailing||e.loading&&e.trailing||e.trailingIcon),b=h(()=>e.loading?e.loadingIcon:e.leadingIcon||e.icon),T=h(()=>e.loading&&!y.value?e.loadingIcon:e.trailingIcon||e.icon),m=h(()=>pe(o.value.icon.leading.wrapper,o.value.icon.leading.pointer,o.value.icon.leading.padding[A.value])),g=h(()=>pe(o.value.icon.base,x.value&&ne.ui.colors.includes(x.value)&&o.value.icon.color.replaceAll(\"{color}\",x.value),o.value.icon.size[A.value],e.loading&&o.value.icon.loading)),C=h(()=>pe(o.value.icon.trailing.wrapper,o.value.icon.trailing.pointer,o.value.icon.trailing.padding[A.value])),M=h(()=>pe(o.value.icon.base,x.value&&ne.ui.colors.includes(x.value)&&o.value.icon.color.replaceAll(\"{color}\",x.value),o.value.icon.size[A.value],e.loading&&!y.value&&o.value.icon.loading)),z=typeof e.searchable==\"function\"?Ct(e.searchable,e.debounce):void 0,V=Rt(async()=>e.searchable&&z?await z(r.value):r.value===\"\"?e.options:e.options.filter(B=>{var U;return((U=e.searchAttributes)!=null&&U.length?e.searchAttributes:[e.optionAttribute]).some(be=>{if([\"string\",\"number\"].includes(typeof B))return String(B).search(new RegExp(r.value,\"i\"))!==-1;const xe=Et(B,be);return xe!=null&&String(xe).search(new RegExp(r.value,\"i\"))!==-1})})),H=h(()=>r.value===\"\"||e.showCreateOptionWhen===\"empty\"&&V.value.length||e.showCreateOptionWhen===\"always\"&&V.value.find(U=>[\"string\",\"number\"].includes(typeof U)?U===r.value:U[e.optionAttribute]===r.value)?null:[\"string\",\"number\"].includes(typeof e.modelValue)?r.value:{[e.optionAttribute]:r.value});function Y(){e.clearSearchOnClose&&(r.value=\"\")}Q(f,B=>{B?c(\"open\"):(Y(),c(\"close\"),u())});function le(B){c(\"update:modelValue\",B)}function Se(B){c(\"change\",B.target.value),p(),r.value=B.target.value}return At(()=>Tt()),{ui:o,uiMenu:i,attrs:l,name:F,inputId:w,popper:t,trigger:n,container:f,label:O,isLeading:y,isTrailing:I,selectClass:d,leadingIconName:b,leadingIconClass:g,leadingWrapperIconClass:m,trailingIconName:T,trailingIconClass:M,trailingWrapperIconClass:C,filteredOptions:V,createOption:H,query:r,onUpdate:le,onChange:Se}}}),vl=[\"value\",\"required\"],pl=[\"id\",\"disabled\"],fl={class:\"truncate\"};function bl(e,c,a,o,l,i){const t=Xe,n=bt(\"HComboboxInput\"),f=Ye;return L(),Z(ce(e.searchable?\"HCombobox\":\"HListbox\"),{by:e.by,name:e.name,\"model-value\":e.modelValue,multiple:e.multiple,disabled:e.disabled,as:\"div\",class:P(e.ui.wrapper),\"onUpdate:modelValue\":e.onUpdate},{default:oe(({open:v})=>[e.required?(L(),W(\"input\",{key:0,value:e.modelValue,required:e.required,class:P(e.uiMenu.required),tabindex:\"-1\",\"aria-hidden\":\"true\"},null,10,vl)):J(\"\",!0),(L(),Z(ce(e.searchable?\"HComboboxButton\":\"HListboxButton\"),{ref:\"trigger\",as:\"div\",role:\"button\",class:P(e.uiMenu.trigger)},{default:oe(()=>[_(e.$slots,\"default\",{open:v,disabled:e.disabled,loading:e.loading},()=>[ee(\"button\",Ie({id:e.inputId,class:e.selectClass,disabled:e.disabled,type:\"button\"},e.attrs),[e.isLeading&&e.leadingIconName||e.$slots.leading?(L(),W(\"span\",{key:0,class:P(e.leadingWrapperIconClass)},[_(e.$slots,\"leading\",{disabled:e.disabled,loading:e.loading},()=>[me(t,{name:e.leadingIconName,class:P(e.leadingIconClass)},null,8,[\"name\",\"class\"])])],2)):J(\"\",!0),_(e.$slots,\"label\",{},()=>[e.label?(L(),W(\"span\",{key:0,class:P(e.uiMenu.label)},ve(e.label),3)):(L(),W(\"span\",{key:1,class:P(e.uiMenu.label)},ve(e.placeholder||\" \"),3))]),e.isTrailing&&e.trailingIconName||e.$slots.trailing?(L(),W(\"span\",{key:1,class:P(e.trailingWrapperIconClass)},[_(e.$slots,\"trailing\",{disabled:e.disabled,loading:e.loading},()=>[me(t,{name:e.trailingIconName,class:P(e.trailingIconClass),\"aria-hidden\":\"true\"},null,8,[\"name\",\"class\"])])],2)):J(\"\",!0)],16,pl)])]),_:2},1032,[\"class\"])),v?(L(),W(\"div\",{key:1,ref:\"container\",class:P([e.uiMenu.container,e.uiMenu.width])},[me(mt,Ie({appear:\"\"},e.uiMenu.transition),{default:oe(()=>[ee(\"div\",null,[e.popper.arrow?(L(),W(\"div\",{key:0,\"data-popper-arrow\":\"\",class:P(Object.values(e.uiMenu.arrow))},null,2)):J(\"\",!0),(L(),Z(ce(e.searchable?\"HComboboxOptions\":\"HListboxOptions\"),{static:\"\",class:P([e.uiMenu.base,e.uiMenu.ring,e.uiMenu.rounded,e.uiMenu.shadow,e.uiMenu.background,e.uiMenu.padding,e.uiMenu.height])},{default:oe(()=>{var s,u;return[e.searchable?(L(),Z(n,{key:0,\"display-value\":()=>e.query,name:\"q\",placeholder:e.searchablePlaceholder,autofocus:\"\",autocomplete:\"off\",class:P(e.uiMenu.input),onChange:e.onChange},null,8,[\"display-value\",\"placeholder\",\"class\",\"onChange\"])):J(\"\",!0),(L(!0),W(Ae,null,ht(e.filteredOptions,(p,w)=>(L(),Z(ce(e.searchable?\"HComboboxOption\":\"HListboxOption\"),{key:w,as:\"template\",value:e.valueAttribute?p[e.valueAttribute]:p,disabled:p.disabled},{default:oe(({active:x,selected:E,disabled:F})=>[ee(\"li\",{class:P([e.uiMenu.option.base,e.uiMenu.option.rounded,e.uiMenu.option.padding,e.uiMenu.option.size,e.uiMenu.option.color,x?e.uiMenu.option.active:e.uiMenu.option.inactive,E&&e.uiMenu.option.selected,F&&e.uiMenu.option.disabled])},[ee(\"div\",{class:P(e.uiMenu.option.container)},[_(e.$slots,\"option\",{option:p,active:x,selected:E},()=>[p.icon?(L(),Z(t,{key:0,name:p.icon,class:P([e.uiMenu.option.icon.base,x?e.uiMenu.option.icon.active:e.uiMenu.option.icon.inactive,p.iconClass]),\"aria-hidden\":\"true\"},null,8,[\"name\",\"class\"])):p.avatar?(L(),Z(f,Ie({key:1,ref_for:!0},{size:e.uiMenu.option.avatar.size,...p.avatar},{class:e.uiMenu.option.avatar.base,\"aria-hidden\":\"true\"}),null,16,[\"class\"])):p.chip?(L(),W(\"span\",{key:2,class:P(e.uiMenu.option.chip.base),style:gt({background:`#${p.chip}`})},null,6)):J(\"\",!0),ee(\"span\",fl,ve([\"string\",\"number\"].includes(typeof p)?p:p[e.optionAttribute]),1)])],2),E?(L(),W(\"span\",{key:0,class:P([e.uiMenu.option.selectedIcon.wrapper,e.uiMenu.option.selectedIcon.padding])},[me(t,{name:e.selectedIcon,class:P(e.uiMenu.option.selectedIcon.base),\"aria-hidden\":\"true\"},null,8,[\"name\",\"class\"])],2)):J(\"\",!0)],2)]),_:2},1032,[\"value\",\"disabled\"]))),128)),e.creatable&&e.createOption?(L(),Z(ce(e.searchable?\"HComboboxOption\":\"HListboxOption\"),{key:1,value:e.createOption,as:\"template\"},{default:oe(({active:p,selected:w})=>[ee(\"li\",{class:P([e.uiMenu.option.base,e.uiMenu.option.rounded,e.uiMenu.option.padding,e.uiMenu.option.size,e.uiMenu.option.color,p?e.uiMenu.option.active:e.uiMenu.option.inactive])},[ee(\"div\",{class:P(e.uiMenu.option.container)},[_(e.$slots,\"option-create\",{option:e.createOption,active:p,selected:w},()=>[ee(\"span\",{class:P(e.uiMenu.option.create)},'Create \"'+ve(e.createOption[e.optionAttribute])+'\"',3)])],2)],2)]),_:3},8,[\"value\"])):e.searchable&&e.query&&!((s=e.filteredOptions)!=null&&s.length)?(L(),W(\"p\",{key:2,class:P(e.uiMenu.option.empty)},[_(e.$slots,\"option-empty\",{query:e.query},()=>[ze(' No results for \"'+ve(e.query)+'\". ',1)])],2)):(u=e.filteredOptions)!=null&&u.length?J(\"\",!0):(L(),W(\"p\",{key:3,class:P(e.uiMenu.empty)},[_(e.$slots,\"empty\",{query:e.query},()=>[c[0]||(c[0]=ze(\" No options. \"))])],2))]}),_:3},8,[\"class\"]))])]),_:3},16)],2)):J(\"\",!0)]),_:3},8,[\"by\",\"name\",\"model-value\",\"multiple\",\"disabled\",\"class\",\"onUpdate:modelValue\"])}const hl=ft(cl,[[\"render\",bl]]);export{hl as _};\n"
  },
  {
    "path": "jesse/static/_nuxt/CrrKwR0a.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},n={defaultToken:\"\",tokenPostfix:\".objective-c\",keywords:[\"#import\",\"#include\",\"#define\",\"#else\",\"#endif\",\"#if\",\"#ifdef\",\"#ifndef\",\"#ident\",\"#undef\",\"@class\",\"@defs\",\"@dynamic\",\"@encode\",\"@end\",\"@implementation\",\"@interface\",\"@package\",\"@private\",\"@protected\",\"@property\",\"@protocol\",\"@public\",\"@selector\",\"@synthesize\",\"__declspec\",\"assign\",\"auto\",\"BOOL\",\"break\",\"bycopy\",\"byref\",\"case\",\"char\",\"Class\",\"const\",\"copy\",\"continue\",\"default\",\"do\",\"double\",\"else\",\"enum\",\"extern\",\"FALSE\",\"false\",\"float\",\"for\",\"goto\",\"if\",\"in\",\"int\",\"id\",\"inout\",\"IMP\",\"long\",\"nil\",\"nonatomic\",\"NULL\",\"oneway\",\"out\",\"private\",\"public\",\"protected\",\"readwrite\",\"readonly\",\"register\",\"return\",\"SEL\",\"self\",\"short\",\"signed\",\"sizeof\",\"static\",\"struct\",\"super\",\"switch\",\"typedef\",\"TRUE\",\"true\",\"union\",\"unsigned\",\"volatile\",\"void\",\"while\"],decpart:/\\d(_?\\d)*/,decimal:/0|@decpart/,tokenizer:{root:[{include:\"@comments\"},{include:\"@whitespace\"},{include:\"@numbers\"},{include:\"@strings\"},[/[,:;]/,\"delimiter\"],[/[{}\\[\\]()<>]/,\"@brackets\"],[/[a-zA-Z@#]\\w*/,{cases:{\"@keywords\":\"keyword\",\"@default\":\"identifier\"}}],[/[<>=\\\\+\\\\-\\\\*\\\\/\\\\^\\\\|\\\\~,]|and\\\\b|or\\\\b|not\\\\b]/,\"operator\"]],whitespace:[[/\\s+/,\"white\"]],comments:[[\"\\\\/\\\\*\",\"comment\",\"@comment\"],[\"\\\\/\\\\/+.*\",\"comment\"]],comment:[[\"\\\\*\\\\/\",\"comment\",\"@pop\"],[\".\",\"comment\"]],numbers:[[/0[xX][0-9a-fA-F]*(_?[0-9a-fA-F])*/,\"number.hex\"],[/@decimal((\\.@decpart)?([eE][\\-+]?@decpart)?)[fF]*/,{cases:{\"(\\\\d)*\":\"number\",$0:\"number.float\"}}]],strings:[[/'$/,\"string.escape\",\"@popall\"],[/'/,\"string.escape\",\"@stringBody\"],[/\"$/,\"string.escape\",\"@popall\"],[/\"/,\"string.escape\",\"@dblStringBody\"]],stringBody:[[/[^\\\\']+$/,\"string\",\"@popall\"],[/[^\\\\']+/,\"string\"],[/\\\\./,\"string\"],[/'/,\"string.escape\",\"@popall\"],[/\\\\$/,\"string\"]],dblStringBody:[[/[^\\\\\"]+$/,\"string\",\"@popall\"],[/[^\\\\\"]+/,\"string\"],[/\\\\./,\"string\"],[/\"/,\"string.escape\",\"@popall\"],[/\\\\$/,\"string\"]]}};export{e as conf,n as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/CsSk9TLD.js",
    "content": "import e from\"./ySlJ1b_l.js\";const n=Object.freeze(JSON.parse(`{\"displayName\":\"Jison\",\"fileTypes\":[\"jison\"],\"injections\":{\"L:(meta.action.jison - (comment | string)), source.js.embedded.jison - (comment | string), source.js.embedded.source - (comment | string.quoted.double | string.quoted.single)\":{\"patterns\":[{\"match\":\"\\\\\\\\\\${2}\",\"name\":\"variable.language.semantic-value.jison\"},{\"match\":\"@\\\\\\\\$\",\"name\":\"variable.language.result-location.jison\"},{\"match\":\"##\\\\\\\\$|\\\\\\\\byysp\\\\\\\\b\",\"name\":\"variable.language.stack-index-0.jison\"},{\"match\":\"#\\\\\\\\S+#\",\"name\":\"support.variable.token-reference.jison\"},{\"match\":\"#\\\\\\\\$\",\"name\":\"variable.language.result-id.jison\"},{\"match\":\"\\\\\\\\$(?:-?\\\\\\\\d+|[[:alpha:]_](?:[\\\\\\\\w-]*\\\\\\\\w)?)\",\"name\":\"support.variable.token-value.jison\"},{\"match\":\"@(?:-?\\\\\\\\d+|[[:alpha:]_](?:[\\\\\\\\w-]*\\\\\\\\w)?)\",\"name\":\"support.variable.token-location.jison\"},{\"match\":\"##(?:-?\\\\\\\\d+|[[:alpha:]_](?:[\\\\\\\\w-]*\\\\\\\\w)?)\",\"name\":\"support.variable.stack-index.jison\"},{\"match\":\"#(?:-?\\\\\\\\d+|[[:alpha:]_](?:[\\\\\\\\w-]*\\\\\\\\w)?)\",\"name\":\"support.variable.token-id.jison\"},{\"match\":\"\\\\\\\\byy(?:l(?:eng|ineno|oc|stack)|rulelength|s(?:tate|s?tack)|text|vstack)\\\\\\\\b\",\"name\":\"variable.language.jison\"},{\"match\":\"\\\\\\\\byy(?:clearin|erro[kr])\\\\\\\\b\",\"name\":\"keyword.other.jison\"}]}},\"name\":\"jison\",\"patterns\":[{\"begin\":\"%%\",\"beginCaptures\":{\"0\":{\"name\":\"meta.separator.section.jison\"}},\"end\":\"\\\\\\\\z\",\"patterns\":[{\"begin\":\"%%\",\"beginCaptures\":{\"0\":{\"name\":\"meta.separator.section.jison\"}},\"end\":\"\\\\\\\\z\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"contentName\":\"source.js.embedded.jison\",\"end\":\"\\\\\\\\z\",\"name\":\"meta.section.epilogue.jison\",\"patterns\":[{\"include\":\"#epilogue_section\"}]}]},{\"begin\":\"\\\\\\\\G\",\"end\":\"(?=%%)\",\"name\":\"meta.section.rules.jison\",\"patterns\":[{\"include\":\"#rules_section\"}]}]},{\"begin\":\"^\",\"end\":\"(?=%%)\",\"name\":\"meta.section.declarations.jison\",\"patterns\":[{\"include\":\"#declarations_section\"}]}],\"repository\":{\"actions\":{\"patterns\":[{\"begin\":\"\\\\\\\\{\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.action.begin.jison\"}},\"contentName\":\"source.js.embedded.jison\",\"end\":\"\\\\\\\\}\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.action.end.jison\"}},\"name\":\"meta.action.jison\",\"patterns\":[{\"include\":\"source.js\"}]},{\"begin\":\"(?=%\\\\\\\\{)\",\"end\":\"(?<=%\\\\\\\\})\",\"name\":\"meta.action.jison\",\"patterns\":[{\"include\":\"#user_code_blocks\"}]}]},\"comments\":{\"patterns\":[{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.jison\"}},\"end\":\"$\",\"name\":\"comment.line.double-slash.jison\"},{\"begin\":\"/\\\\\\\\*\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.jison\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.jison\"}},\"name\":\"comment.block.jison\"}]},\"declarations_section\":{\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\"^\\\\\\\\s*(%lex)\\\\\\\\s*$\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.lexer.begin.jison\"}},\"end\":\"^\\\\\\\\s*(/lex)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"entity.name.tag.lexer.end.jison\"}},\"patterns\":[{\"begin\":\"%%\",\"beginCaptures\":{\"0\":{\"name\":\"meta.separator.section.jisonlex\"}},\"end\":\"(?=/lex)\",\"patterns\":[{\"begin\":\"^%%\",\"beginCaptures\":{\"0\":{\"name\":\"meta.separator.section.jisonlex\"}},\"end\":\"(?=/lex)\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"contentName\":\"source.js.embedded.jisonlex\",\"end\":\"(?=/lex)\",\"name\":\"meta.section.user-code.jisonlex\",\"patterns\":[{\"include\":\"source.jisonlex#user_code_section\"}]}]},{\"begin\":\"\\\\\\\\G\",\"end\":\"^(?=%%|/lex)\",\"name\":\"meta.section.rules.jisonlex\",\"patterns\":[{\"include\":\"source.jisonlex#rules_section\"}]}]},{\"begin\":\"^\",\"end\":\"(?=%%|/lex)\",\"name\":\"meta.section.definitions.jisonlex\",\"patterns\":[{\"include\":\"source.jisonlex#definitions_section\"}]}]},{\"begin\":\"(?=%\\\\\\\\{)\",\"end\":\"(?<=%\\\\\\\\})\",\"name\":\"meta.section.prologue.jison\",\"patterns\":[{\"include\":\"#user_code_blocks\"}]},{\"include\":\"#options_declarations\"},{\"match\":\"%(ebnf|left|nonassoc|parse-param|right|start)\\\\\\\\b\",\"name\":\"keyword.other.declaration.$1.jison\"},{\"include\":\"#include_declarations\"},{\"begin\":\"%(code)\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.declaration.$1.jison\"}},\"end\":\"$\",\"name\":\"meta.code.jison\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#rule_actions\"},{\"match\":\"(init|required)\",\"name\":\"keyword.other.code-qualifier.$1.jison\"},{\"include\":\"#quoted_strings\"},{\"match\":\"\\\\\\\\b[[:alpha:]_](?:[\\\\\\\\w-]*\\\\\\\\w)?\\\\\\\\b\",\"name\":\"string.unquoted.jison\"}]},{\"begin\":\"%(parser-type)\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.declaration.$1.jison\"}},\"end\":\"$\",\"name\":\"meta.parser-type.jison\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#quoted_strings\"},{\"match\":\"\\\\\\\\b[[:alpha:]_](?:[\\\\\\\\w-]*\\\\\\\\w)?\\\\\\\\b\",\"name\":\"string.unquoted.jison\"}]},{\"begin\":\"%(token)\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.declaration.$1.jison\"}},\"end\":\"$|(%%|;)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.declaration.token.jison\"}},\"name\":\"meta.token.jison\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#numbers\"},{\"include\":\"#quoted_strings\"},{\"match\":\"<[[:alpha:]_](?:[\\\\\\\\w-]*\\\\\\\\w)?>\",\"name\":\"invalid.unimplemented.jison\"},{\"match\":\"\\\\\\\\S+\",\"name\":\"entity.other.token.jison\"}]},{\"match\":\"%(debug|import)\\\\\\\\b\",\"name\":\"keyword.other.declaration.$1.jison\"},{\"match\":\"%prec\\\\\\\\b\",\"name\":\"invalid.illegal.jison\"},{\"match\":\"%[[:alpha:]_](?:[\\\\\\\\w-]*\\\\\\\\w)?\\\\\\\\b\",\"name\":\"invalid.unimplemented.jison\"},{\"include\":\"#numbers\"},{\"include\":\"#quoted_strings\"}]},\"epilogue_section\":{\"patterns\":[{\"include\":\"#user_code_include_declarations\"},{\"include\":\"source.js\"}]},\"include_declarations\":{\"patterns\":[{\"begin\":\"(%(include))\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.declaration.$2.jison\"}},\"end\":\"(?<=['\\\\\"])|(?=\\\\\\\\s)\",\"name\":\"meta.include.jison\",\"patterns\":[{\"include\":\"#include_paths\"}]}]},\"include_paths\":{\"patterns\":[{\"include\":\"#quoted_strings\"},{\"begin\":\"(?=\\\\\\\\S)\",\"end\":\"(?=\\\\\\\\s)\",\"name\":\"string.unquoted.jison\",\"patterns\":[{\"include\":\"source.js#string_escapes\"}]}]},\"numbers\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.number.jison\"},\"2\":{\"name\":\"constant.numeric.integer.hexadecimal.jison\"}},\"match\":\"(0[Xx])([0-9A-Fa-f]+)\"},{\"match\":\"\\\\\\\\d+\",\"name\":\"constant.numeric.integer.decimal.jison\"}]},\"options_declarations\":{\"patterns\":[{\"begin\":\"%options\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.options.jison\"}},\"end\":\"^(?=\\\\\\\\S|\\\\\\\\s*$)\",\"name\":\"meta.options.jison\",\"patterns\":[{\"include\":\"#comments\"},{\"match\":\"\\\\\\\\b[[:alpha:]_](?:[\\\\\\\\w-]*\\\\\\\\w)?\\\\\\\\b\",\"name\":\"entity.name.constant.jison\"},{\"begin\":\"(=)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.option.assignment.jison\"}},\"end\":\"(?<=['\\\\\"])|(?=\\\\\\\\s)\",\"patterns\":[{\"include\":\"#comments\"},{\"match\":\"\\\\\\\\b(true|false)\\\\\\\\b\",\"name\":\"constant.language.boolean.$1.jison\"},{\"include\":\"#numbers\"},{\"include\":\"#quoted_strings\"},{\"match\":\"\\\\\\\\S+\",\"name\":\"string.unquoted.jison\"}]},{\"include\":\"#quoted_strings\"}]}]},\"quoted_strings\":{\"patterns\":[{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.jison\",\"patterns\":[{\"include\":\"source.js#string_escapes\"}]},{\"begin\":\"'\",\"end\":\"'\",\"name\":\"string.quoted.single.jison\",\"patterns\":[{\"include\":\"source.js#string_escapes\"}]}]},\"rule_actions\":{\"patterns\":[{\"include\":\"#actions\"},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.action.begin.jison\"}},\"contentName\":\"source.js.embedded.jison\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.action.end.jison\"}},\"name\":\"meta.action.jison\",\"patterns\":[{\"include\":\"source.js\"}]},{\"include\":\"#include_declarations\"},{\"begin\":\"->|→\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.action.arrow.jison\"}},\"contentName\":\"source.js.embedded.jison\",\"end\":\"$\",\"name\":\"meta.action.jison\",\"patterns\":[{\"include\":\"source.js\"}]}]},\"rules_section\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#actions\"},{\"include\":\"#include_declarations\"},{\"begin\":\"\\\\\\\\b[[:alpha:]_](?:[\\\\\\\\w-]*\\\\\\\\w)?\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"entity.name.constant.rule-result.jison\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.rule.jison\"}},\"name\":\"meta.rule.jison\",\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\":\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.rule-components.assignment.jison\"}},\"end\":\"(?=;)\",\"name\":\"meta.rule-components.jison\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#quoted_strings\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.named-reference.begin.jison\"},\"2\":{\"name\":\"entity.name.other.reference.jison\"},\"3\":{\"name\":\"punctuation.definition.named-reference.end.jison\"}},\"match\":\"(\\\\\\\\[)([[:alpha:]_](?:[\\\\\\\\w-]*\\\\\\\\w)?)(\\\\\\\\])\"},{\"begin\":\"(%(prec))\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.$2.jison\"}},\"end\":\"(?<=['\\\\\"])|(?=\\\\\\\\s)\",\"name\":\"meta.prec.jison\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#quoted_strings\"},{\"begin\":\"(?=\\\\\\\\S)\",\"end\":\"(?=\\\\\\\\s)\",\"name\":\"constant.other.token.jison\"}]},{\"match\":\"\\\\\\\\|\",\"name\":\"keyword.operator.rule-components.separator.jison\"},{\"match\":\"\\\\\\\\b(?:EOF|error)\\\\\\\\b\",\"name\":\"keyword.other.$0.jison\"},{\"match\":\"(?:%(?:e(?:mpty|psilon))|\\\\\\\\b[Ɛɛεϵ])\\\\\\\\b\",\"name\":\"keyword.other.empty.jison\"},{\"include\":\"#rule_actions\"}]}]}]},\"user_code_blocks\":{\"patterns\":[{\"begin\":\"%\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.user-code-block.begin.jison\"}},\"contentName\":\"source.js.embedded.jison\",\"end\":\"%\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.user-code-block.end.jison\"}},\"name\":\"meta.user-code-block.jison\",\"patterns\":[{\"include\":\"source.js\"}]}]},\"user_code_include_declarations\":{\"patterns\":[{\"begin\":\"^(%(include))\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.declaration.$2.jison\"}},\"end\":\"(?<=['\\\\\"])|(?=\\\\\\\\s)\",\"name\":\"meta.include.jison\",\"patterns\":[{\"include\":\"#include_paths\"}]}]}},\"scopeName\":\"source.jison\",\"embeddedLangs\":[\"javascript\"]}`)),i=[...e,n];export{i as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Csfq5Kiy.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBorder\":\"#80CBC4\",\"activityBar.background\":\"#292D3E\",\"activityBar.border\":\"#292D3E60\",\"activityBar.dropBackground\":\"#f0717880\",\"activityBar.foreground\":\"#babed8\",\"activityBarBadge.background\":\"#80CBC4\",\"activityBarBadge.foreground\":\"#000000\",\"badge.background\":\"#00000030\",\"badge.foreground\":\"#676E95\",\"breadcrumb.activeSelectionForeground\":\"#80CBC4\",\"breadcrumb.background\":\"#292D3E\",\"breadcrumb.focusForeground\":\"#babed8\",\"breadcrumb.foreground\":\"#676E95\",\"breadcrumbPicker.background\":\"#292D3E\",\"button.background\":\"#717CB450\",\"button.foreground\":\"#ffffff\",\"debugConsole.errorForeground\":\"#f07178\",\"debugConsole.infoForeground\":\"#89DDFF\",\"debugConsole.warningForeground\":\"#FFCB6B\",\"debugToolBar.background\":\"#292D3E\",\"diffEditor.insertedTextBackground\":\"#89DDFF20\",\"diffEditor.removedTextBackground\":\"#ff9cac20\",\"dropdown.background\":\"#292D3E\",\"dropdown.border\":\"#FFFFFF10\",\"editor.background\":\"#292D3E\",\"editor.findMatchBackground\":\"#000000\",\"editor.findMatchBorder\":\"#80CBC4\",\"editor.findMatchHighlight\":\"#babed8\",\"editor.findMatchHighlightBackground\":\"#00000050\",\"editor.findMatchHighlightBorder\":\"#ffffff30\",\"editor.findRangeHighlightBackground\":\"#FFCB6B30\",\"editor.foreground\":\"#babed8\",\"editor.lineHighlightBackground\":\"#00000050\",\"editor.lineHighlightBorder\":\"#00000000\",\"editor.rangeHighlightBackground\":\"#FFFFFF0d\",\"editor.selectionBackground\":\"#717CB450\",\"editor.selectionHighlightBackground\":\"#FFCC0020\",\"editor.wordHighlightBackground\":\"#ff9cac30\",\"editor.wordHighlightStrongBackground\":\"#C3E88D30\",\"editorBracketMatch.background\":\"#292D3E\",\"editorBracketMatch.border\":\"#FFCC0050\",\"editorCursor.foreground\":\"#FFCC00\",\"editorError.foreground\":\"#f0717870\",\"editorGroup.border\":\"#00000030\",\"editorGroup.dropBackground\":\"#f0717880\",\"editorGroup.focusedEmptyBorder\":\"#f07178\",\"editorGroupHeader.tabsBackground\":\"#292D3E\",\"editorGutter.addedBackground\":\"#C3E88D60\",\"editorGutter.deletedBackground\":\"#f0717860\",\"editorGutter.modifiedBackground\":\"#82AAFF60\",\"editorHoverWidget.background\":\"#292D3E\",\"editorHoverWidget.border\":\"#FFFFFF10\",\"editorIndentGuide.activeBackground\":\"#4E5579\",\"editorIndentGuide.background\":\"#4E557970\",\"editorInfo.foreground\":\"#82AAFF70\",\"editorLineNumber.activeForeground\":\"#676E95\",\"editorLineNumber.foreground\":\"#3A3F58\",\"editorLink.activeForeground\":\"#babed8\",\"editorMarkerNavigation.background\":\"#babed805\",\"editorOverviewRuler.border\":\"#292D3E\",\"editorOverviewRuler.errorForeground\":\"#f0717840\",\"editorOverviewRuler.findMatchForeground\":\"#80CBC4\",\"editorOverviewRuler.infoForeground\":\"#82AAFF40\",\"editorOverviewRuler.warningForeground\":\"#FFCB6B40\",\"editorRuler.foreground\":\"#4E5579\",\"editorSuggestWidget.background\":\"#292D3E\",\"editorSuggestWidget.border\":\"#FFFFFF10\",\"editorSuggestWidget.foreground\":\"#babed8\",\"editorSuggestWidget.highlightForeground\":\"#80CBC4\",\"editorSuggestWidget.selectedBackground\":\"#00000050\",\"editorWarning.foreground\":\"#FFCB6B70\",\"editorWhitespace.foreground\":\"#babed840\",\"editorWidget.background\":\"#292D3E\",\"editorWidget.border\":\"#80CBC4\",\"editorWidget.resizeBorder\":\"#80CBC4\",\"extensionBadge.remoteForeground\":\"#babed8\",\"extensionButton.prominentBackground\":\"#C3E88D90\",\"extensionButton.prominentForeground\":\"#babed8\",\"extensionButton.prominentHoverBackground\":\"#C3E88D\",\"focusBorder\":\"#FFFFFF00\",\"foreground\":\"#babed8\",\"gitDecoration.conflictingResourceForeground\":\"#FFCB6B90\",\"gitDecoration.deletedResourceForeground\":\"#f0717890\",\"gitDecoration.ignoredResourceForeground\":\"#676E9590\",\"gitDecoration.modifiedResourceForeground\":\"#82AAFF90\",\"gitDecoration.untrackedResourceForeground\":\"#C3E88D90\",\"input.background\":\"#333747\",\"input.border\":\"#FFFFFF10\",\"input.foreground\":\"#babed8\",\"input.placeholderForeground\":\"#babed860\",\"inputOption.activeBackground\":\"#babed830\",\"inputOption.activeBorder\":\"#babed830\",\"inputValidation.errorBorder\":\"#f07178\",\"inputValidation.infoBorder\":\"#82AAFF\",\"inputValidation.warningBorder\":\"#FFCB6B\",\"list.activeSelectionBackground\":\"#292D3E\",\"list.activeSelectionForeground\":\"#80CBC4\",\"list.dropBackground\":\"#f0717880\",\"list.focusBackground\":\"#babed820\",\"list.focusForeground\":\"#babed8\",\"list.highlightForeground\":\"#80CBC4\",\"list.hoverBackground\":\"#292D3E\",\"list.hoverForeground\":\"#FFFFFF\",\"list.inactiveSelectionBackground\":\"#00000030\",\"list.inactiveSelectionForeground\":\"#80CBC4\",\"listFilterWidget.background\":\"#00000030\",\"listFilterWidget.noMatchesOutline\":\"#00000030\",\"listFilterWidget.outline\":\"#00000030\",\"menu.background\":\"#292D3E\",\"menu.foreground\":\"#babed8\",\"menu.selectionBackground\":\"#00000050\",\"menu.selectionBorder\":\"#00000030\",\"menu.selectionForeground\":\"#80CBC4\",\"menu.separatorBackground\":\"#babed8\",\"menubar.selectionBackground\":\"#00000030\",\"menubar.selectionBorder\":\"#00000030\",\"menubar.selectionForeground\":\"#80CBC4\",\"notebook.focusedCellBorder\":\"#80CBC4\",\"notebook.inactiveFocusedCellBorder\":\"#80CBC450\",\"notificationLink.foreground\":\"#80CBC4\",\"notifications.background\":\"#292D3E\",\"notifications.foreground\":\"#babed8\",\"panel.background\":\"#292D3E\",\"panel.border\":\"#292D3E60\",\"panel.dropBackground\":\"#babed8\",\"panelTitle.activeBorder\":\"#80CBC4\",\"panelTitle.activeForeground\":\"#FFFFFF\",\"panelTitle.inactiveForeground\":\"#babed8\",\"peekView.border\":\"#00000030\",\"peekViewEditor.background\":\"#333747\",\"peekViewEditor.matchHighlightBackground\":\"#717CB450\",\"peekViewEditorGutter.background\":\"#333747\",\"peekViewResult.background\":\"#333747\",\"peekViewResult.matchHighlightBackground\":\"#717CB450\",\"peekViewResult.selectionBackground\":\"#676E9570\",\"peekViewTitle.background\":\"#333747\",\"peekViewTitleDescription.foreground\":\"#babed860\",\"pickerGroup.border\":\"#FFFFFF1a\",\"pickerGroup.foreground\":\"#80CBC4\",\"progressBar.background\":\"#80CBC4\",\"quickInput.background\":\"#292D3E\",\"quickInput.foreground\":\"#676E95\",\"quickInput.list.focusBackground\":\"#babed820\",\"sash.hoverBorder\":\"#80CBC450\",\"scrollbar.shadow\":\"#00000030\",\"scrollbarSlider.activeBackground\":\"#80CBC4\",\"scrollbarSlider.background\":\"#A6ACCD20\",\"scrollbarSlider.hoverBackground\":\"#A6ACCD10\",\"selection.background\":\"#00000080\",\"settings.checkboxBackground\":\"#292D3E\",\"settings.checkboxForeground\":\"#babed8\",\"settings.dropdownBackground\":\"#292D3E\",\"settings.dropdownForeground\":\"#babed8\",\"settings.headerForeground\":\"#80CBC4\",\"settings.modifiedItemIndicator\":\"#80CBC4\",\"settings.numberInputBackground\":\"#292D3E\",\"settings.numberInputForeground\":\"#babed8\",\"settings.textInputBackground\":\"#292D3E\",\"settings.textInputForeground\":\"#babed8\",\"sideBar.background\":\"#292D3E\",\"sideBar.border\":\"#292D3E60\",\"sideBar.foreground\":\"#676E95\",\"sideBarSectionHeader.background\":\"#292D3E\",\"sideBarSectionHeader.border\":\"#292D3E60\",\"sideBarTitle.foreground\":\"#babed8\",\"statusBar.background\":\"#292D3E\",\"statusBar.border\":\"#292D3E60\",\"statusBar.debuggingBackground\":\"#C792EA\",\"statusBar.debuggingForeground\":\"#ffffff\",\"statusBar.foreground\":\"#676E95\",\"statusBar.noFolderBackground\":\"#292D3E\",\"statusBarItem.activeBackground\":\"#f0717880\",\"statusBarItem.hoverBackground\":\"#676E9520\",\"statusBarItem.remoteBackground\":\"#80CBC4\",\"statusBarItem.remoteForeground\":\"#000000\",\"tab.activeBackground\":\"#292D3E\",\"tab.activeBorder\":\"#80CBC4\",\"tab.activeForeground\":\"#FFFFFF\",\"tab.activeModifiedBorder\":\"#676E95\",\"tab.border\":\"#292D3E\",\"tab.inactiveBackground\":\"#292D3E\",\"tab.inactiveForeground\":\"#676E95\",\"tab.inactiveModifiedBorder\":\"#904348\",\"tab.unfocusedActiveBorder\":\"#676E95\",\"tab.unfocusedActiveForeground\":\"#babed8\",\"tab.unfocusedActiveModifiedBorder\":\"#c05a60\",\"tab.unfocusedInactiveModifiedBorder\":\"#904348\",\"terminal.ansiBlack\":\"#000000\",\"terminal.ansiBlue\":\"#82AAFF\",\"terminal.ansiBrightBlack\":\"#676E95\",\"terminal.ansiBrightBlue\":\"#82AAFF\",\"terminal.ansiBrightCyan\":\"#89DDFF\",\"terminal.ansiBrightGreen\":\"#C3E88D\",\"terminal.ansiBrightMagenta\":\"#C792EA\",\"terminal.ansiBrightRed\":\"#f07178\",\"terminal.ansiBrightWhite\":\"#ffffff\",\"terminal.ansiBrightYellow\":\"#FFCB6B\",\"terminal.ansiCyan\":\"#89DDFF\",\"terminal.ansiGreen\":\"#C3E88D\",\"terminal.ansiMagenta\":\"#C792EA\",\"terminal.ansiRed\":\"#f07178\",\"terminal.ansiWhite\":\"#ffffff\",\"terminal.ansiYellow\":\"#FFCB6B\",\"terminalCursor.background\":\"#000000\",\"terminalCursor.foreground\":\"#FFCB6B\",\"textLink.activeForeground\":\"#babed8\",\"textLink.foreground\":\"#80CBC4\",\"titleBar.activeBackground\":\"#292D3E\",\"titleBar.activeForeground\":\"#babed8\",\"titleBar.border\":\"#292D3E60\",\"titleBar.inactiveBackground\":\"#292D3E\",\"titleBar.inactiveForeground\":\"#676E95\",\"tree.indentGuidesStroke\":\"#4E5579\",\"widget.shadow\":\"#00000030\"},\"displayName\":\"Material Theme Palenight\",\"name\":\"material-theme-palenight\",\"semanticHighlighting\":true,\"tokenColors\":[{\"settings\":{\"background\":\"#292D3E\",\"foreground\":\"#babed8\"}},{\"scope\":\"string\",\"settings\":{\"foreground\":\"#C3E88D\"}},{\"scope\":\"punctuation, constant.other.symbol\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"constant.character.escape, text.html constant.character.entity.named\",\"settings\":{\"foreground\":\"#babed8\"}},{\"scope\":\"constant.language.boolean\",\"settings\":{\"foreground\":\"#ff9cac\"}},{\"scope\":\"constant.numeric\",\"settings\":{\"foreground\":\"#F78C6C\"}},{\"scope\":\"variable, variable.parameter, support.variable, variable.language, support.constant, meta.definition.variable entity.name.function, meta.function-call.arguments\",\"settings\":{\"foreground\":\"#babed8\"}},{\"scope\":\"keyword.other\",\"settings\":{\"foreground\":\"#F78C6C\"}},{\"scope\":\"keyword, modifier, variable.language.this, support.type.object, constant.language\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"entity.name.function, support.function\",\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":\"storage.type, storage.modifier, storage.control\",\"settings\":{\"foreground\":\"#C792EA\"}},{\"scope\":\"support.module, support.node\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#f07178\"}},{\"scope\":\"support.type, constant.other.key\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"entity.name.type, entity.other.inherited-class, entity.other\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"comment\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#676E95\"}},{\"scope\":\"comment punctuation.definition.comment, string.quoted.docstring\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#676E95\"}},{\"scope\":\"punctuation\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"entity.name, entity.name.type.class, support.type, support.class, meta.use\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"variable.object.property, meta.field.declaration entity.name.function\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"meta.definition.method entity.name.function\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"meta.function entity.name.function\",\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":\"template.expression.begin, template.expression.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"meta.embedded, source.groovy.embedded, meta.template.expression\",\"settings\":{\"foreground\":\"#babed8\"}},{\"scope\":\"entity.name.tag.yaml\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"meta.object-literal.key, meta.object-literal.key string, support.type.property-name.json\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"constant.language.json\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"entity.other.attribute-name.class\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"entity.other.attribute-name.id\",\"settings\":{\"foreground\":\"#F78C6C\"}},{\"scope\":\"source.css entity.name.tag\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"support.type.property-name.css\",\"settings\":{\"foreground\":\"#B2CCD6\"}},{\"scope\":\"meta.tag, punctuation.definition.tag\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"entity.name.tag\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"entity.other.attribute-name\",\"settings\":{\"foreground\":\"#C792EA\"}},{\"scope\":\"punctuation.definition.entity.html\",\"settings\":{\"foreground\":\"#babed8\"}},{\"scope\":\"markup.heading\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"text.html.markdown meta.link.inline, meta.link.reference\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"text.html.markdown beginning.punctuation.definition.list\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"markup.italic\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#f07178\"}},{\"scope\":\"markup.bold\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#f07178\"}},{\"scope\":\"markup.bold markup.italic, markup.italic markup.bold\",\"settings\":{\"fontStyle\":\"italic bold\",\"foreground\":\"#f07178\"}},{\"scope\":\"markup.fenced_code.block.markdown punctuation.definition.markdown\",\"settings\":{\"foreground\":\"#C3E88D\"}},{\"scope\":\"markup.inline.raw.string.markdown\",\"settings\":{\"foreground\":\"#C3E88D\"}},{\"scope\":\"keyword.other.definition.ini\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"entity.name.section.group-title.ini\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"source.cs meta.class.identifier storage.type\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"source.cs meta.method.identifier entity.name.function\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"source.cs meta.method-call meta.method, source.cs entity.name.function\",\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":\"source.cs storage.type\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"source.cs meta.method.return-type\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"source.cs meta.preprocessor\",\"settings\":{\"foreground\":\"#676E95\"}},{\"scope\":\"source.cs entity.name.type.namespace\",\"settings\":{\"foreground\":\"#babed8\"}},{\"scope\":\"meta.jsx.children, SXNested\",\"settings\":{\"foreground\":\"#babed8\"}},{\"scope\":\"support.class.component\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"source.cpp meta.block variable.other\",\"settings\":{\"foreground\":\"#babed8\"}},{\"scope\":\"source.python meta.member.access.python\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"source.python meta.function-call.python, meta.function-call.arguments\",\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":\"meta.block\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"entity.name.function.call\",\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":\"source.php support.other.namespace, source.php meta.use support.class\",\"settings\":{\"foreground\":\"#babed8\"}},{\"scope\":\"constant.keyword\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#89DDFF\"}},{\"scope\":\"entity.name.function\",\"settings\":{\"foreground\":\"#82AAFF\"}},{\"settings\":{\"background\":\"#292D3E\",\"foreground\":\"#babed8\"}},{\"scope\":[\"constant.other.placeholder\"],\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":[\"markup.deleted\"],\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":[\"markup.inserted\"],\"settings\":{\"foreground\":\"#C3E88D\"}},{\"scope\":[\"markup.underline\"],\"settings\":{\"fontStyle\":\"underline\"}},{\"scope\":[\"keyword.control\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#89DDFF\"}},{\"scope\":[\"variable.parameter\"],\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":[\"variable.parameter.function.language.special.self.python\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#f07178\"}},{\"scope\":[\"constant.character.format.placeholder.other.python\"],\"settings\":{\"foreground\":\"#F78C6C\"}},{\"scope\":[\"markup.quote\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#89DDFF\"}},{\"scope\":[\"markup.fenced_code.block\"],\"settings\":{\"foreground\":\"#babed890\"}},{\"scope\":[\"punctuation.definition.quote\"],\"settings\":{\"foreground\":\"#ff9cac\"}},{\"scope\":[\"meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#C792EA\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#F78C6C\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#916b53\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#ff9cac\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#C792EA\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#C3E88D\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CuFlys0T.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={wordPattern:/(#?-?\\d*\\.\\d\\w*%?)|([@#!.:]?[\\w-?]+%?)|[@#!.]/g,comments:{blockComment:[\"/*\",\"*/\"],lineComment:\"//\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\",notIn:[\"string\",\"comment\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\"]},{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],folding:{markers:{start:new RegExp(\"^\\\\s*\\\\/\\\\*\\\\s*#region\\\\b\\\\s*(.*?)\\\\s*\\\\*\\\\/\"),end:new RegExp(\"^\\\\s*\\\\/\\\\*\\\\s*#endregion\\\\b.*\\\\*\\\\/\")}}},t={defaultToken:\"\",tokenPostfix:\".less\",identifier:\"-?-?([a-zA-Z]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))([\\\\w\\\\-]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))*\",identifierPlus:\"-?-?([a-zA-Z:.]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))([\\\\w\\\\-:.]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))*\",brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.bracket\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"}],tokenizer:{root:[{include:\"@nestedJSBegin\"},[\"[ \\\\t\\\\r\\\\n]+\",\"\"],{include:\"@comments\"},{include:\"@keyword\"},{include:\"@strings\"},{include:\"@numbers\"},[\"[*_]?[a-zA-Z\\\\-\\\\s]+(?=:.*(;|(\\\\\\\\$)))\",\"attribute.name\",\"@attribute\"],[\"url(\\\\-prefix)?\\\\(\",{token:\"tag\",next:\"@urldeclaration\"}],[\"[{}()\\\\[\\\\]]\",\"@brackets\"],[\"[,:;]\",\"delimiter\"],[\"#@identifierPlus\",\"tag.id\"],[\"&\",\"tag\"],[\"\\\\.@identifierPlus(?=\\\\()\",\"tag.class\",\"@attribute\"],[\"\\\\.@identifierPlus\",\"tag.class\"],[\"@identifierPlus\",\"tag\"],{include:\"@operators\"},[\"@(@identifier(?=[:,\\\\)]))\",\"variable\",\"@attribute\"],[\"@(@identifier)\",\"variable\"],[\"@\",\"key\",\"@atRules\"]],nestedJSBegin:[[\"``\",\"delimiter.backtick\"],[\"`\",{token:\"delimiter.backtick\",next:\"@nestedJSEnd\",nextEmbedded:\"text/javascript\"}]],nestedJSEnd:[[\"`\",{token:\"delimiter.backtick\",next:\"@pop\",nextEmbedded:\"@pop\"}]],operators:[[\"[<>=\\\\+\\\\-\\\\*\\\\/\\\\^\\\\|\\\\~]\",\"operator\"]],keyword:[[\"(@[\\\\s]*import|![\\\\s]*important|true|false|when|iscolor|isnumber|isstring|iskeyword|isurl|ispixel|ispercentage|isem|hue|saturation|lightness|alpha|lighten|darken|saturate|desaturate|fadein|fadeout|fade|spin|mix|round|ceil|floor|percentage)\\\\b\",\"keyword\"]],urldeclaration:[{include:\"@strings\"},[`[^)\\r\n]+`,\"string\"],[\"\\\\)\",{token:\"tag\",next:\"@pop\"}]],attribute:[{include:\"@nestedJSBegin\"},{include:\"@comments\"},{include:\"@strings\"},{include:\"@numbers\"},{include:\"@keyword\"},[\"[a-zA-Z\\\\-]+(?=\\\\()\",\"attribute.value\",\"@attribute\"],[\">\",\"operator\",\"@pop\"],[\"@identifier\",\"attribute.value\"],{include:\"@operators\"},[\"@(@identifier)\",\"variable\"],[\"[)\\\\}]\",\"@brackets\",\"@pop\"],[\"[{}()\\\\[\\\\]>]\",\"@brackets\"],[\"[;]\",\"delimiter\",\"@pop\"],[\"[,=:]\",\"delimiter\"],[\"\\\\s\",\"\"],[\".\",\"attribute.value\"]],comments:[[\"\\\\/\\\\*\",\"comment\",\"@comment\"],[\"\\\\/\\\\/+.*\",\"comment\"]],comment:[[\"\\\\*\\\\/\",\"comment\",\"@pop\"],[\".\",\"comment\"]],numbers:[[\"(\\\\d*\\\\.)?\\\\d+([eE][\\\\-+]?\\\\d+)?\",{token:\"attribute.value.number\",next:\"@units\"}],[\"#[0-9a-fA-F_]+(?!\\\\w)\",\"attribute.value.hex\"]],units:[[\"(em|ex|ch|rem|fr|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?\",\"attribute.value.unit\",\"@pop\"]],strings:[['~?\"',{token:\"string.delimiter\",next:\"@stringsEndDoubleQuote\"}],[\"~?'\",{token:\"string.delimiter\",next:\"@stringsEndQuote\"}]],stringsEndDoubleQuote:[['\\\\\\\\\"',\"string\"],['\"',{token:\"string.delimiter\",next:\"@popall\"}],[\".\",\"string\"]],stringsEndQuote:[[\"\\\\\\\\'\",\"string\"],[\"'\",{token:\"string.delimiter\",next:\"@popall\"}],[\".\",\"string\"]],atRules:[{include:\"@comments\"},{include:\"@strings\"},[\"[()]\",\"delimiter\"],[\"[\\\\{;]\",\"delimiter\",\"@pop\"],[\".\",\"key\"]]}};export{e as conf,t as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/Cuk6v7N8.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBorder\":\"#f78166\",\"activityBar.background\":\"#0d1117\",\"activityBar.border\":\"#30363d\",\"activityBar.foreground\":\"#e6edf3\",\"activityBar.inactiveForeground\":\"#7d8590\",\"activityBarBadge.background\":\"#1f6feb\",\"activityBarBadge.foreground\":\"#ffffff\",\"badge.background\":\"#1f6feb\",\"badge.foreground\":\"#ffffff\",\"breadcrumb.activeSelectionForeground\":\"#7d8590\",\"breadcrumb.focusForeground\":\"#e6edf3\",\"breadcrumb.foreground\":\"#7d8590\",\"breadcrumbPicker.background\":\"#161b22\",\"button.background\":\"#238636\",\"button.foreground\":\"#ffffff\",\"button.hoverBackground\":\"#2ea043\",\"button.secondaryBackground\":\"#282e33\",\"button.secondaryForeground\":\"#c9d1d9\",\"button.secondaryHoverBackground\":\"#30363d\",\"checkbox.background\":\"#161b22\",\"checkbox.border\":\"#30363d\",\"debugConsole.errorForeground\":\"#ffa198\",\"debugConsole.infoForeground\":\"#8b949e\",\"debugConsole.sourceForeground\":\"#e3b341\",\"debugConsole.warningForeground\":\"#d29922\",\"debugConsoleInputIcon.foreground\":\"#bc8cff\",\"debugIcon.breakpointForeground\":\"#f85149\",\"debugTokenExpression.boolean\":\"#56d364\",\"debugTokenExpression.error\":\"#ffa198\",\"debugTokenExpression.name\":\"#79c0ff\",\"debugTokenExpression.number\":\"#56d364\",\"debugTokenExpression.string\":\"#a5d6ff\",\"debugTokenExpression.value\":\"#a5d6ff\",\"debugToolBar.background\":\"#161b22\",\"descriptionForeground\":\"#7d8590\",\"diffEditor.insertedLineBackground\":\"#23863626\",\"diffEditor.insertedTextBackground\":\"#3fb9504d\",\"diffEditor.removedLineBackground\":\"#da363326\",\"diffEditor.removedTextBackground\":\"#ff7b724d\",\"dropdown.background\":\"#161b22\",\"dropdown.border\":\"#30363d\",\"dropdown.foreground\":\"#e6edf3\",\"dropdown.listBackground\":\"#161b22\",\"editor.background\":\"#0d1117\",\"editor.findMatchBackground\":\"#9e6a03\",\"editor.findMatchHighlightBackground\":\"#f2cc6080\",\"editor.focusedStackFrameHighlightBackground\":\"#2ea04366\",\"editor.foldBackground\":\"#6e76811a\",\"editor.foreground\":\"#e6edf3\",\"editor.lineHighlightBackground\":\"#6e76811a\",\"editor.linkedEditingBackground\":\"#2f81f712\",\"editor.selectionHighlightBackground\":\"#3fb95040\",\"editor.stackFrameHighlightBackground\":\"#bb800966\",\"editor.wordHighlightBackground\":\"#6e768180\",\"editor.wordHighlightBorder\":\"#6e768199\",\"editor.wordHighlightStrongBackground\":\"#6e76814d\",\"editor.wordHighlightStrongBorder\":\"#6e768199\",\"editorBracketHighlight.foreground1\":\"#79c0ff\",\"editorBracketHighlight.foreground2\":\"#56d364\",\"editorBracketHighlight.foreground3\":\"#e3b341\",\"editorBracketHighlight.foreground4\":\"#ffa198\",\"editorBracketHighlight.foreground5\":\"#ff9bce\",\"editorBracketHighlight.foreground6\":\"#d2a8ff\",\"editorBracketHighlight.unexpectedBracket.foreground\":\"#7d8590\",\"editorBracketMatch.background\":\"#3fb95040\",\"editorBracketMatch.border\":\"#3fb95099\",\"editorCursor.foreground\":\"#2f81f7\",\"editorGroup.border\":\"#30363d\",\"editorGroupHeader.tabsBackground\":\"#010409\",\"editorGroupHeader.tabsBorder\":\"#30363d\",\"editorGutter.addedBackground\":\"#2ea04366\",\"editorGutter.deletedBackground\":\"#f8514966\",\"editorGutter.modifiedBackground\":\"#bb800966\",\"editorIndentGuide.activeBackground\":\"#e6edf33d\",\"editorIndentGuide.background\":\"#e6edf31f\",\"editorInlayHint.background\":\"#8b949e33\",\"editorInlayHint.foreground\":\"#7d8590\",\"editorInlayHint.paramBackground\":\"#8b949e33\",\"editorInlayHint.paramForeground\":\"#7d8590\",\"editorInlayHint.typeBackground\":\"#8b949e33\",\"editorInlayHint.typeForeground\":\"#7d8590\",\"editorLineNumber.activeForeground\":\"#e6edf3\",\"editorLineNumber.foreground\":\"#6e7681\",\"editorOverviewRuler.border\":\"#010409\",\"editorWhitespace.foreground\":\"#484f58\",\"editorWidget.background\":\"#161b22\",\"errorForeground\":\"#f85149\",\"focusBorder\":\"#1f6feb\",\"foreground\":\"#e6edf3\",\"gitDecoration.addedResourceForeground\":\"#3fb950\",\"gitDecoration.conflictingResourceForeground\":\"#db6d28\",\"gitDecoration.deletedResourceForeground\":\"#f85149\",\"gitDecoration.ignoredResourceForeground\":\"#6e7681\",\"gitDecoration.modifiedResourceForeground\":\"#d29922\",\"gitDecoration.submoduleResourceForeground\":\"#7d8590\",\"gitDecoration.untrackedResourceForeground\":\"#3fb950\",\"icon.foreground\":\"#7d8590\",\"input.background\":\"#0d1117\",\"input.border\":\"#30363d\",\"input.foreground\":\"#e6edf3\",\"input.placeholderForeground\":\"#6e7681\",\"keybindingLabel.foreground\":\"#e6edf3\",\"list.activeSelectionBackground\":\"#6e768166\",\"list.activeSelectionForeground\":\"#e6edf3\",\"list.focusBackground\":\"#388bfd26\",\"list.focusForeground\":\"#e6edf3\",\"list.highlightForeground\":\"#2f81f7\",\"list.hoverBackground\":\"#6e76811a\",\"list.hoverForeground\":\"#e6edf3\",\"list.inactiveFocusBackground\":\"#388bfd26\",\"list.inactiveSelectionBackground\":\"#6e768166\",\"list.inactiveSelectionForeground\":\"#e6edf3\",\"minimapSlider.activeBackground\":\"#8b949e47\",\"minimapSlider.background\":\"#8b949e33\",\"minimapSlider.hoverBackground\":\"#8b949e3d\",\"notificationCenterHeader.background\":\"#161b22\",\"notificationCenterHeader.foreground\":\"#7d8590\",\"notifications.background\":\"#161b22\",\"notifications.border\":\"#30363d\",\"notifications.foreground\":\"#e6edf3\",\"notificationsErrorIcon.foreground\":\"#f85149\",\"notificationsInfoIcon.foreground\":\"#2f81f7\",\"notificationsWarningIcon.foreground\":\"#d29922\",\"panel.background\":\"#010409\",\"panel.border\":\"#30363d\",\"panelInput.border\":\"#30363d\",\"panelTitle.activeBorder\":\"#f78166\",\"panelTitle.activeForeground\":\"#e6edf3\",\"panelTitle.inactiveForeground\":\"#7d8590\",\"peekViewEditor.background\":\"#6e76811a\",\"peekViewEditor.matchHighlightBackground\":\"#bb800966\",\"peekViewResult.background\":\"#0d1117\",\"peekViewResult.matchHighlightBackground\":\"#bb800966\",\"pickerGroup.border\":\"#30363d\",\"pickerGroup.foreground\":\"#7d8590\",\"progressBar.background\":\"#1f6feb\",\"quickInput.background\":\"#161b22\",\"quickInput.foreground\":\"#e6edf3\",\"scrollbar.shadow\":\"#484f5833\",\"scrollbarSlider.activeBackground\":\"#8b949e47\",\"scrollbarSlider.background\":\"#8b949e33\",\"scrollbarSlider.hoverBackground\":\"#8b949e3d\",\"settings.headerForeground\":\"#e6edf3\",\"settings.modifiedItemIndicator\":\"#bb800966\",\"sideBar.background\":\"#010409\",\"sideBar.border\":\"#30363d\",\"sideBar.foreground\":\"#e6edf3\",\"sideBarSectionHeader.background\":\"#010409\",\"sideBarSectionHeader.border\":\"#30363d\",\"sideBarSectionHeader.foreground\":\"#e6edf3\",\"sideBarTitle.foreground\":\"#e6edf3\",\"statusBar.background\":\"#0d1117\",\"statusBar.border\":\"#30363d\",\"statusBar.debuggingBackground\":\"#da3633\",\"statusBar.debuggingForeground\":\"#ffffff\",\"statusBar.focusBorder\":\"#1f6feb80\",\"statusBar.foreground\":\"#7d8590\",\"statusBar.noFolderBackground\":\"#0d1117\",\"statusBarItem.activeBackground\":\"#e6edf31f\",\"statusBarItem.focusBorder\":\"#1f6feb\",\"statusBarItem.hoverBackground\":\"#e6edf314\",\"statusBarItem.prominentBackground\":\"#6e768166\",\"statusBarItem.remoteBackground\":\"#30363d\",\"statusBarItem.remoteForeground\":\"#e6edf3\",\"symbolIcon.arrayForeground\":\"#f0883e\",\"symbolIcon.booleanForeground\":\"#58a6ff\",\"symbolIcon.classForeground\":\"#f0883e\",\"symbolIcon.colorForeground\":\"#79c0ff\",\"symbolIcon.constantForeground\":[\"#aff5b4\",\"#7ee787\",\"#56d364\",\"#3fb950\",\"#2ea043\",\"#238636\",\"#196c2e\",\"#0f5323\",\"#033a16\",\"#04260f\"],\"symbolIcon.constructorForeground\":\"#d2a8ff\",\"symbolIcon.enumeratorForeground\":\"#f0883e\",\"symbolIcon.enumeratorMemberForeground\":\"#58a6ff\",\"symbolIcon.eventForeground\":\"#6e7681\",\"symbolIcon.fieldForeground\":\"#f0883e\",\"symbolIcon.fileForeground\":\"#d29922\",\"symbolIcon.folderForeground\":\"#d29922\",\"symbolIcon.functionForeground\":\"#bc8cff\",\"symbolIcon.interfaceForeground\":\"#f0883e\",\"symbolIcon.keyForeground\":\"#58a6ff\",\"symbolIcon.keywordForeground\":\"#ff7b72\",\"symbolIcon.methodForeground\":\"#bc8cff\",\"symbolIcon.moduleForeground\":\"#ff7b72\",\"symbolIcon.namespaceForeground\":\"#ff7b72\",\"symbolIcon.nullForeground\":\"#58a6ff\",\"symbolIcon.numberForeground\":\"#3fb950\",\"symbolIcon.objectForeground\":\"#f0883e\",\"symbolIcon.operatorForeground\":\"#79c0ff\",\"symbolIcon.packageForeground\":\"#f0883e\",\"symbolIcon.propertyForeground\":\"#f0883e\",\"symbolIcon.referenceForeground\":\"#58a6ff\",\"symbolIcon.snippetForeground\":\"#58a6ff\",\"symbolIcon.stringForeground\":\"#79c0ff\",\"symbolIcon.structForeground\":\"#f0883e\",\"symbolIcon.textForeground\":\"#79c0ff\",\"symbolIcon.typeParameterForeground\":\"#79c0ff\",\"symbolIcon.unitForeground\":\"#58a6ff\",\"symbolIcon.variableForeground\":\"#f0883e\",\"tab.activeBackground\":\"#0d1117\",\"tab.activeBorder\":\"#0d1117\",\"tab.activeBorderTop\":\"#f78166\",\"tab.activeForeground\":\"#e6edf3\",\"tab.border\":\"#30363d\",\"tab.hoverBackground\":\"#0d1117\",\"tab.inactiveBackground\":\"#010409\",\"tab.inactiveForeground\":\"#7d8590\",\"tab.unfocusedActiveBorder\":\"#0d1117\",\"tab.unfocusedActiveBorderTop\":\"#30363d\",\"tab.unfocusedHoverBackground\":\"#6e76811a\",\"terminal.ansiBlack\":\"#484f58\",\"terminal.ansiBlue\":\"#58a6ff\",\"terminal.ansiBrightBlack\":\"#6e7681\",\"terminal.ansiBrightBlue\":\"#79c0ff\",\"terminal.ansiBrightCyan\":\"#56d4dd\",\"terminal.ansiBrightGreen\":\"#56d364\",\"terminal.ansiBrightMagenta\":\"#d2a8ff\",\"terminal.ansiBrightRed\":\"#ffa198\",\"terminal.ansiBrightWhite\":\"#ffffff\",\"terminal.ansiBrightYellow\":\"#e3b341\",\"terminal.ansiCyan\":\"#39c5cf\",\"terminal.ansiGreen\":\"#3fb950\",\"terminal.ansiMagenta\":\"#bc8cff\",\"terminal.ansiRed\":\"#ff7b72\",\"terminal.ansiWhite\":\"#b1bac4\",\"terminal.ansiYellow\":\"#d29922\",\"terminal.foreground\":\"#e6edf3\",\"textBlockQuote.background\":\"#010409\",\"textBlockQuote.border\":\"#30363d\",\"textCodeBlock.background\":\"#6e768166\",\"textLink.activeForeground\":\"#2f81f7\",\"textLink.foreground\":\"#2f81f7\",\"textPreformat.background\":\"#6e768166\",\"textPreformat.foreground\":\"#7d8590\",\"textSeparator.foreground\":\"#21262d\",\"titleBar.activeBackground\":\"#0d1117\",\"titleBar.activeForeground\":\"#7d8590\",\"titleBar.border\":\"#30363d\",\"titleBar.inactiveBackground\":\"#010409\",\"titleBar.inactiveForeground\":\"#7d8590\",\"tree.indentGuidesStroke\":\"#21262d\",\"welcomePage.buttonBackground\":\"#21262d\",\"welcomePage.buttonHoverBackground\":\"#30363d\"},\"displayName\":\"GitHub Dark Default\",\"name\":\"github-dark-default\",\"semanticHighlighting\":true,\"tokenColors\":[{\"scope\":[\"comment\",\"punctuation.definition.comment\",\"string.comment\"],\"settings\":{\"foreground\":\"#8b949e\"}},{\"scope\":[\"constant.other.placeholder\",\"constant.character\"],\"settings\":{\"foreground\":\"#ff7b72\"}},{\"scope\":[\"constant\",\"entity.name.constant\",\"variable.other.constant\",\"variable.other.enummember\",\"variable.language\",\"entity\"],\"settings\":{\"foreground\":\"#79c0ff\"}},{\"scope\":[\"entity.name\",\"meta.export.default\",\"meta.definition.variable\"],\"settings\":{\"foreground\":\"#ffa657\"}},{\"scope\":[\"variable.parameter.function\",\"meta.jsx.children\",\"meta.block\",\"meta.tag.attributes\",\"entity.name.constant\",\"meta.object.member\",\"meta.embedded.expression\"],\"settings\":{\"foreground\":\"#e6edf3\"}},{\"scope\":\"entity.name.function\",\"settings\":{\"foreground\":\"#d2a8ff\"}},{\"scope\":[\"entity.name.tag\",\"support.class.component\"],\"settings\":{\"foreground\":\"#7ee787\"}},{\"scope\":\"keyword\",\"settings\":{\"foreground\":\"#ff7b72\"}},{\"scope\":[\"storage\",\"storage.type\"],\"settings\":{\"foreground\":\"#ff7b72\"}},{\"scope\":[\"storage.modifier.package\",\"storage.modifier.import\",\"storage.type.java\"],\"settings\":{\"foreground\":\"#e6edf3\"}},{\"scope\":[\"string\",\"string punctuation.section.embedded source\"],\"settings\":{\"foreground\":\"#a5d6ff\"}},{\"scope\":\"support\",\"settings\":{\"foreground\":\"#79c0ff\"}},{\"scope\":\"meta.property-name\",\"settings\":{\"foreground\":\"#79c0ff\"}},{\"scope\":\"variable\",\"settings\":{\"foreground\":\"#ffa657\"}},{\"scope\":\"variable.other\",\"settings\":{\"foreground\":\"#e6edf3\"}},{\"scope\":\"invalid.broken\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#ffa198\"}},{\"scope\":\"invalid.deprecated\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#ffa198\"}},{\"scope\":\"invalid.illegal\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#ffa198\"}},{\"scope\":\"invalid.unimplemented\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#ffa198\"}},{\"scope\":\"carriage-return\",\"settings\":{\"background\":\"#ff7b72\",\"content\":\"^M\",\"fontStyle\":\"italic underline\",\"foreground\":\"#f0f6fc\"}},{\"scope\":\"message.error\",\"settings\":{\"foreground\":\"#ffa198\"}},{\"scope\":\"string variable\",\"settings\":{\"foreground\":\"#79c0ff\"}},{\"scope\":[\"source.regexp\",\"string.regexp\"],\"settings\":{\"foreground\":\"#a5d6ff\"}},{\"scope\":[\"string.regexp.character-class\",\"string.regexp constant.character.escape\",\"string.regexp source.ruby.embedded\",\"string.regexp string.regexp.arbitrary-repitition\"],\"settings\":{\"foreground\":\"#a5d6ff\"}},{\"scope\":\"string.regexp constant.character.escape\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#7ee787\"}},{\"scope\":\"support.constant\",\"settings\":{\"foreground\":\"#79c0ff\"}},{\"scope\":\"support.variable\",\"settings\":{\"foreground\":\"#79c0ff\"}},{\"scope\":\"support.type.property-name.json\",\"settings\":{\"foreground\":\"#7ee787\"}},{\"scope\":\"meta.module-reference\",\"settings\":{\"foreground\":\"#79c0ff\"}},{\"scope\":\"punctuation.definition.list.begin.markdown\",\"settings\":{\"foreground\":\"#ffa657\"}},{\"scope\":[\"markup.heading\",\"markup.heading entity.name\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#79c0ff\"}},{\"scope\":\"markup.quote\",\"settings\":{\"foreground\":\"#7ee787\"}},{\"scope\":\"markup.italic\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#e6edf3\"}},{\"scope\":\"markup.bold\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#e6edf3\"}},{\"scope\":[\"markup.underline\"],\"settings\":{\"fontStyle\":\"underline\"}},{\"scope\":[\"markup.strikethrough\"],\"settings\":{\"fontStyle\":\"strikethrough\"}},{\"scope\":\"markup.inline.raw\",\"settings\":{\"foreground\":\"#79c0ff\"}},{\"scope\":[\"markup.deleted\",\"meta.diff.header.from-file\",\"punctuation.definition.deleted\"],\"settings\":{\"background\":\"#490202\",\"foreground\":\"#ffa198\"}},{\"scope\":[\"punctuation.section.embedded\"],\"settings\":{\"foreground\":\"#ff7b72\"}},{\"scope\":[\"markup.inserted\",\"meta.diff.header.to-file\",\"punctuation.definition.inserted\"],\"settings\":{\"background\":\"#04260f\",\"foreground\":\"#7ee787\"}},{\"scope\":[\"markup.changed\",\"punctuation.definition.changed\"],\"settings\":{\"background\":\"#5a1e02\",\"foreground\":\"#ffa657\"}},{\"scope\":[\"markup.ignored\",\"markup.untracked\"],\"settings\":{\"background\":\"#79c0ff\",\"foreground\":\"#161b22\"}},{\"scope\":\"meta.diff.range\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#d2a8ff\"}},{\"scope\":\"meta.diff.header\",\"settings\":{\"foreground\":\"#79c0ff\"}},{\"scope\":\"meta.separator\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#79c0ff\"}},{\"scope\":\"meta.output\",\"settings\":{\"foreground\":\"#79c0ff\"}},{\"scope\":[\"brackethighlighter.tag\",\"brackethighlighter.curly\",\"brackethighlighter.round\",\"brackethighlighter.square\",\"brackethighlighter.angle\",\"brackethighlighter.quote\"],\"settings\":{\"foreground\":\"#8b949e\"}},{\"scope\":\"brackethighlighter.unmatched\",\"settings\":{\"foreground\":\"#ffa198\"}},{\"scope\":[\"constant.other.reference.link\",\"string.other.link\"],\"settings\":{\"foreground\":\"#a5d6ff\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Cv9koXgw.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBorder\":\"#e6b450b3\",\"activityBar.background\":\"#0b0e14\",\"activityBar.border\":\"#0b0e14\",\"activityBar.foreground\":\"#565b66cc\",\"activityBar.inactiveForeground\":\"#565b6699\",\"activityBarBadge.background\":\"#e6b450\",\"activityBarBadge.foreground\":\"#0b0e14\",\"badge.background\":\"#e6b45033\",\"badge.foreground\":\"#e6b450\",\"button.background\":\"#e6b450\",\"button.foreground\":\"#0b0e14\",\"button.hoverBackground\":\"#e1af4b\",\"button.secondaryBackground\":\"#565b6633\",\"button.secondaryForeground\":\"#bfbdb6\",\"button.secondaryHoverBackground\":\"#565b6680\",\"debugConsoleInputIcon.foreground\":\"#e6b450\",\"debugExceptionWidget.background\":\"#0f131a\",\"debugExceptionWidget.border\":\"#11151c\",\"debugIcon.breakpointDisabledForeground\":\"#f2966880\",\"debugIcon.breakpointForeground\":\"#f29668\",\"debugToolBar.background\":\"#0f131a\",\"descriptionForeground\":\"#565b66\",\"diffEditor.diagonalFill\":\"#11151c\",\"diffEditor.insertedTextBackground\":\"#7fd9621f\",\"diffEditor.removedTextBackground\":\"#f26d781f\",\"dropdown.background\":\"#0d1017\",\"dropdown.border\":\"#565b6645\",\"dropdown.foreground\":\"#565b66\",\"editor.background\":\"#0b0e14\",\"editor.findMatchBackground\":\"#6c5980\",\"editor.findMatchBorder\":\"#6c5980\",\"editor.findMatchHighlightBackground\":\"#6c598066\",\"editor.findMatchHighlightBorder\":\"#5f4c7266\",\"editor.findRangeHighlightBackground\":\"#6c598040\",\"editor.foreground\":\"#bfbdb6\",\"editor.inactiveSelectionBackground\":\"#409fff21\",\"editor.lineHighlightBackground\":\"#131721\",\"editor.rangeHighlightBackground\":\"#6c598033\",\"editor.selectionBackground\":\"#409fff4d\",\"editor.selectionHighlightBackground\":\"#7fd96226\",\"editor.selectionHighlightBorder\":\"#7fd96200\",\"editor.snippetTabstopHighlightBackground\":\"#7fd96233\",\"editor.wordHighlightBackground\":\"#73b8ff14\",\"editor.wordHighlightBorder\":\"#73b8ff80\",\"editor.wordHighlightStrongBackground\":\"#7fd96214\",\"editor.wordHighlightStrongBorder\":\"#7fd96280\",\"editorBracketMatch.background\":\"#6c73804d\",\"editorBracketMatch.border\":\"#6c73804d\",\"editorCodeLens.foreground\":\"#acb6bf8c\",\"editorCursor.foreground\":\"#e6b450\",\"editorError.foreground\":\"#d95757\",\"editorGroup.background\":\"#0f131a\",\"editorGroup.border\":\"#11151c\",\"editorGroupHeader.noTabsBackground\":\"#0b0e14\",\"editorGroupHeader.tabsBackground\":\"#0b0e14\",\"editorGroupHeader.tabsBorder\":\"#0b0e14\",\"editorGutter.addedBackground\":\"#7fd962cc\",\"editorGutter.deletedBackground\":\"#f26d78cc\",\"editorGutter.modifiedBackground\":\"#73b8ffcc\",\"editorHoverWidget.background\":\"#0f131a\",\"editorHoverWidget.border\":\"#11151c\",\"editorIndentGuide.activeBackground\":\"#6c738080\",\"editorIndentGuide.background\":\"#6c738033\",\"editorLineNumber.activeForeground\":\"#6c7380e6\",\"editorLineNumber.foreground\":\"#6c738099\",\"editorLink.activeForeground\":\"#e6b450\",\"editorMarkerNavigation.background\":\"#0f131a\",\"editorOverviewRuler.addedForeground\":\"#7fd962\",\"editorOverviewRuler.border\":\"#11151c\",\"editorOverviewRuler.bracketMatchForeground\":\"#6c7380b3\",\"editorOverviewRuler.deletedForeground\":\"#f26d78\",\"editorOverviewRuler.errorForeground\":\"#d95757\",\"editorOverviewRuler.findMatchForeground\":\"#6c5980\",\"editorOverviewRuler.modifiedForeground\":\"#73b8ff\",\"editorOverviewRuler.warningForeground\":\"#e6b450\",\"editorOverviewRuler.wordHighlightForeground\":\"#73b8ff66\",\"editorOverviewRuler.wordHighlightStrongForeground\":\"#7fd96266\",\"editorRuler.foreground\":\"#6c738033\",\"editorSuggestWidget.background\":\"#0f131a\",\"editorSuggestWidget.border\":\"#11151c\",\"editorSuggestWidget.highlightForeground\":\"#e6b450\",\"editorSuggestWidget.selectedBackground\":\"#47526640\",\"editorWarning.foreground\":\"#e6b450\",\"editorWhitespace.foreground\":\"#6c738099\",\"editorWidget.background\":\"#0f131a\",\"editorWidget.border\":\"#11151c\",\"errorForeground\":\"#d95757\",\"extensionButton.prominentBackground\":\"#e6b450\",\"extensionButton.prominentForeground\":\"#0d1017\",\"extensionButton.prominentHoverBackground\":\"#e1af4b\",\"focusBorder\":\"#e6b450b3\",\"foreground\":\"#565b66\",\"gitDecoration.conflictingResourceForeground\":\"\",\"gitDecoration.deletedResourceForeground\":\"#f26d78b3\",\"gitDecoration.ignoredResourceForeground\":\"#565b6680\",\"gitDecoration.modifiedResourceForeground\":\"#73b8ffb3\",\"gitDecoration.submoduleResourceForeground\":\"#d2a6ffb3\",\"gitDecoration.untrackedResourceForeground\":\"#7fd962b3\",\"icon.foreground\":\"#565b66\",\"input.background\":\"#0d1017\",\"input.border\":\"#565b6645\",\"input.foreground\":\"#bfbdb6\",\"input.placeholderForeground\":\"#565b6680\",\"inputOption.activeBackground\":\"#e6b45033\",\"inputOption.activeBorder\":\"#e6b4504d\",\"inputOption.activeForeground\":\"#e6b450\",\"inputValidation.errorBackground\":\"#0d1017\",\"inputValidation.errorBorder\":\"#d95757\",\"inputValidation.infoBackground\":\"#0b0e14\",\"inputValidation.infoBorder\":\"#39bae6\",\"inputValidation.warningBackground\":\"#0b0e14\",\"inputValidation.warningBorder\":\"#ffb454\",\"keybindingLabel.background\":\"#565b661a\",\"keybindingLabel.border\":\"#bfbdb61a\",\"keybindingLabel.bottomBorder\":\"#bfbdb61a\",\"keybindingLabel.foreground\":\"#bfbdb6\",\"list.activeSelectionBackground\":\"#47526640\",\"list.activeSelectionForeground\":\"#bfbdb6\",\"list.deemphasizedForeground\":\"#d95757\",\"list.errorForeground\":\"#d95757\",\"list.filterMatchBackground\":\"#5f4c7266\",\"list.filterMatchBorder\":\"#6c598066\",\"list.focusBackground\":\"#47526640\",\"list.focusForeground\":\"#bfbdb6\",\"list.focusOutline\":\"#47526640\",\"list.highlightForeground\":\"#e6b450\",\"list.hoverBackground\":\"#47526640\",\"list.inactiveSelectionBackground\":\"#47526633\",\"list.inactiveSelectionForeground\":\"#565b66\",\"list.invalidItemForeground\":\"#565b664d\",\"listFilterWidget.background\":\"#0f131a\",\"listFilterWidget.noMatchesOutline\":\"#d95757\",\"listFilterWidget.outline\":\"#e6b450\",\"minimap.background\":\"#0b0e14\",\"minimap.errorHighlight\":\"#d95757\",\"minimap.findMatchHighlight\":\"#6c5980\",\"minimap.selectionHighlight\":\"#409fff4d\",\"minimapGutter.addedBackground\":\"#7fd962\",\"minimapGutter.deletedBackground\":\"#f26d78\",\"minimapGutter.modifiedBackground\":\"#73b8ff\",\"panel.background\":\"#0b0e14\",\"panel.border\":\"#11151c\",\"panelTitle.activeBorder\":\"#e6b450\",\"panelTitle.activeForeground\":\"#bfbdb6\",\"panelTitle.inactiveForeground\":\"#565b66\",\"peekView.border\":\"#47526640\",\"peekViewEditor.background\":\"#0f131a\",\"peekViewEditor.matchHighlightBackground\":\"#6c598066\",\"peekViewEditor.matchHighlightBorder\":\"#5f4c7266\",\"peekViewResult.background\":\"#0f131a\",\"peekViewResult.fileForeground\":\"#bfbdb6\",\"peekViewResult.lineForeground\":\"#565b66\",\"peekViewResult.matchHighlightBackground\":\"#6c598066\",\"peekViewResult.selectionBackground\":\"#47526640\",\"peekViewTitle.background\":\"#47526640\",\"peekViewTitleDescription.foreground\":\"#565b66\",\"peekViewTitleLabel.foreground\":\"#bfbdb6\",\"pickerGroup.border\":\"#11151c\",\"pickerGroup.foreground\":\"#565b6680\",\"progressBar.background\":\"#e6b450\",\"scrollbar.shadow\":\"#11151c00\",\"scrollbarSlider.activeBackground\":\"#565b66b3\",\"scrollbarSlider.background\":\"#565b6666\",\"scrollbarSlider.hoverBackground\":\"#565b6699\",\"selection.background\":\"#409fff4d\",\"settings.headerForeground\":\"#bfbdb6\",\"settings.modifiedItemIndicator\":\"#73b8ff\",\"sideBar.background\":\"#0b0e14\",\"sideBar.border\":\"#0b0e14\",\"sideBarSectionHeader.background\":\"#0b0e14\",\"sideBarSectionHeader.border\":\"#0b0e14\",\"sideBarSectionHeader.foreground\":\"#565b66\",\"sideBarTitle.foreground\":\"#565b66\",\"statusBar.background\":\"#0b0e14\",\"statusBar.border\":\"#0b0e14\",\"statusBar.debuggingBackground\":\"#f29668\",\"statusBar.debuggingForeground\":\"#0d1017\",\"statusBar.foreground\":\"#565b66\",\"statusBar.noFolderBackground\":\"#0f131a\",\"statusBarItem.activeBackground\":\"#565b6633\",\"statusBarItem.hoverBackground\":\"#565b6633\",\"statusBarItem.prominentBackground\":\"#11151c\",\"statusBarItem.prominentHoverBackground\":\"#00000030\",\"statusBarItem.remoteBackground\":\"#e6b450\",\"statusBarItem.remoteForeground\":\"#0d1017\",\"tab.activeBackground\":\"#0b0e14\",\"tab.activeBorder\":\"#e6b450\",\"tab.activeForeground\":\"#bfbdb6\",\"tab.border\":\"#0b0e14\",\"tab.inactiveBackground\":\"#0b0e14\",\"tab.inactiveForeground\":\"#565b66\",\"tab.unfocusedActiveBorder\":\"#565b66\",\"tab.unfocusedActiveForeground\":\"#565b66\",\"tab.unfocusedInactiveForeground\":\"#565b66\",\"terminal.ansiBlack\":\"#11151c\",\"terminal.ansiBlue\":\"#53bdfa\",\"terminal.ansiBrightBlack\":\"#686868\",\"terminal.ansiBrightBlue\":\"#59c2ff\",\"terminal.ansiBrightCyan\":\"#95e6cb\",\"terminal.ansiBrightGreen\":\"#aad94c\",\"terminal.ansiBrightMagenta\":\"#d2a6ff\",\"terminal.ansiBrightRed\":\"#f07178\",\"terminal.ansiBrightWhite\":\"#ffffff\",\"terminal.ansiBrightYellow\":\"#ffb454\",\"terminal.ansiCyan\":\"#90e1c6\",\"terminal.ansiGreen\":\"#7fd962\",\"terminal.ansiMagenta\":\"#cda1fa\",\"terminal.ansiRed\":\"#ea6c73\",\"terminal.ansiWhite\":\"#c7c7c7\",\"terminal.ansiYellow\":\"#f9af4f\",\"terminal.background\":\"#0b0e14\",\"terminal.foreground\":\"#bfbdb6\",\"textBlockQuote.background\":\"#0f131a\",\"textLink.activeForeground\":\"#e6b450\",\"textLink.foreground\":\"#e6b450\",\"textPreformat.foreground\":\"#bfbdb6\",\"titleBar.activeBackground\":\"#0b0e14\",\"titleBar.activeForeground\":\"#bfbdb6\",\"titleBar.border\":\"#0b0e14\",\"titleBar.inactiveBackground\":\"#0b0e14\",\"titleBar.inactiveForeground\":\"#565b66\",\"tree.indentGuidesStroke\":\"#6c738080\",\"walkThrough.embeddedEditorBackground\":\"#0f131a\",\"welcomePage.buttonBackground\":\"#e6b45066\",\"welcomePage.progress.background\":\"#131721\",\"welcomePage.tileBackground\":\"#0b0e14\",\"welcomePage.tileShadow\":\"#00000080\",\"widget.shadow\":\"#00000080\"},\"displayName\":\"Ayu Dark\",\"name\":\"ayu-dark\",\"semanticHighlighting\":true,\"semanticTokenColors\":{\"parameter.label\":\"#bfbdb6\"},\"tokenColors\":[{\"settings\":{\"background\":\"#0b0e14\",\"foreground\":\"#bfbdb6\"}},{\"scope\":[\"comment\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#acb6bf8c\"}},{\"scope\":[\"string\",\"constant.other.symbol\"],\"settings\":{\"foreground\":\"#aad94c\"}},{\"scope\":[\"string.regexp\",\"constant.character\",\"constant.other\"],\"settings\":{\"foreground\":\"#95e6cb\"}},{\"scope\":[\"constant.numeric\"],\"settings\":{\"foreground\":\"#d2a6ff\"}},{\"scope\":[\"constant.language\"],\"settings\":{\"foreground\":\"#d2a6ff\"}},{\"scope\":[\"variable\",\"variable.parameter.function-call\"],\"settings\":{\"foreground\":\"#bfbdb6\"}},{\"scope\":[\"variable.member\"],\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":[\"variable.language\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#39bae6\"}},{\"scope\":[\"storage\"],\"settings\":{\"foreground\":\"#ff8f40\"}},{\"scope\":[\"keyword\"],\"settings\":{\"foreground\":\"#ff8f40\"}},{\"scope\":[\"keyword.operator\"],\"settings\":{\"foreground\":\"#f29668\"}},{\"scope\":[\"punctuation.separator\",\"punctuation.terminator\"],\"settings\":{\"foreground\":\"#bfbdb6b3\"}},{\"scope\":[\"punctuation.section\"],\"settings\":{\"foreground\":\"#bfbdb6\"}},{\"scope\":[\"punctuation.accessor\"],\"settings\":{\"foreground\":\"#f29668\"}},{\"scope\":[\"punctuation.definition.template-expression\"],\"settings\":{\"foreground\":\"#ff8f40\"}},{\"scope\":[\"punctuation.section.embedded\"],\"settings\":{\"foreground\":\"#ff8f40\"}},{\"scope\":[\"meta.embedded\"],\"settings\":{\"foreground\":\"#bfbdb6\"}},{\"scope\":[\"source.java storage.type\",\"source.haskell storage.type\",\"source.c storage.type\"],\"settings\":{\"foreground\":\"#59c2ff\"}},{\"scope\":[\"entity.other.inherited-class\"],\"settings\":{\"foreground\":\"#39bae6\"}},{\"scope\":[\"storage.type.function\"],\"settings\":{\"foreground\":\"#ff8f40\"}},{\"scope\":[\"source.java storage.type.primitive\"],\"settings\":{\"foreground\":\"#39bae6\"}},{\"scope\":[\"entity.name.function\"],\"settings\":{\"foreground\":\"#ffb454\"}},{\"scope\":[\"variable.parameter\",\"meta.parameter\"],\"settings\":{\"foreground\":\"#d2a6ff\"}},{\"scope\":[\"variable.function\",\"variable.annotation\",\"meta.function-call.generic\",\"support.function.go\"],\"settings\":{\"foreground\":\"#ffb454\"}},{\"scope\":[\"support.function\",\"support.macro\"],\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":[\"entity.name.import\",\"entity.name.package\"],\"settings\":{\"foreground\":\"#aad94c\"}},{\"scope\":[\"entity.name\"],\"settings\":{\"foreground\":\"#59c2ff\"}},{\"scope\":[\"entity.name.tag\",\"meta.tag.sgml\"],\"settings\":{\"foreground\":\"#39bae6\"}},{\"scope\":[\"support.class.component\"],\"settings\":{\"foreground\":\"#59c2ff\"}},{\"scope\":[\"punctuation.definition.tag.end\",\"punctuation.definition.tag.begin\",\"punctuation.definition.tag\"],\"settings\":{\"foreground\":\"#39bae680\"}},{\"scope\":[\"entity.other.attribute-name\"],\"settings\":{\"foreground\":\"#ffb454\"}},{\"scope\":[\"support.constant\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#f29668\"}},{\"scope\":[\"support.type\",\"support.class\",\"source.go storage.type\"],\"settings\":{\"foreground\":\"#39bae6\"}},{\"scope\":[\"meta.decorator variable.other\",\"meta.decorator punctuation.decorator\",\"storage.type.annotation\"],\"settings\":{\"foreground\":\"#e6b673\"}},{\"scope\":[\"invalid\"],\"settings\":{\"foreground\":\"#d95757\"}},{\"scope\":[\"meta.diff\",\"meta.diff.header\"],\"settings\":{\"foreground\":\"#c594c5\"}},{\"scope\":[\"source.ruby variable.other.readwrite\"],\"settings\":{\"foreground\":\"#ffb454\"}},{\"scope\":[\"source.css entity.name.tag\",\"source.sass entity.name.tag\",\"source.scss entity.name.tag\",\"source.less entity.name.tag\",\"source.stylus entity.name.tag\"],\"settings\":{\"foreground\":\"#59c2ff\"}},{\"scope\":[\"source.css support.type\",\"source.sass support.type\",\"source.scss support.type\",\"source.less support.type\",\"source.stylus support.type\"],\"settings\":{\"foreground\":\"#acb6bf8c\"}},{\"scope\":[\"support.type.property-name\"],\"settings\":{\"fontStyle\":\"normal\",\"foreground\":\"#39bae6\"}},{\"scope\":[\"constant.numeric.line-number.find-in-files - match\"],\"settings\":{\"foreground\":\"#acb6bf8c\"}},{\"scope\":[\"constant.numeric.line-number.match\"],\"settings\":{\"foreground\":\"#ff8f40\"}},{\"scope\":[\"entity.name.filename.find-in-files\"],\"settings\":{\"foreground\":\"#aad94c\"}},{\"scope\":[\"message.error\"],\"settings\":{\"foreground\":\"#d95757\"}},{\"scope\":[\"markup.heading\",\"markup.heading entity.name\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#aad94c\"}},{\"scope\":[\"markup.underline.link\",\"string.other.link\"],\"settings\":{\"foreground\":\"#39bae6\"}},{\"scope\":[\"markup.italic\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#f07178\"}},{\"scope\":[\"markup.bold\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#f07178\"}},{\"scope\":[\"markup.italic markup.bold\",\"markup.bold markup.italic\"],\"settings\":{\"fontStyle\":\"bold italic\"}},{\"scope\":[\"markup.raw\"],\"settings\":{\"background\":\"#bfbdb605\"}},{\"scope\":[\"markup.raw.inline\"],\"settings\":{\"background\":\"#bfbdb60f\"}},{\"scope\":[\"meta.separator\"],\"settings\":{\"background\":\"#bfbdb60f\",\"fontStyle\":\"bold\",\"foreground\":\"#acb6bf8c\"}},{\"scope\":[\"markup.quote\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#95e6cb\"}},{\"scope\":[\"markup.list punctuation.definition.list.begin\"],\"settings\":{\"foreground\":\"#ffb454\"}},{\"scope\":[\"markup.inserted\"],\"settings\":{\"foreground\":\"#7fd962\"}},{\"scope\":[\"markup.changed\"],\"settings\":{\"foreground\":\"#73b8ff\"}},{\"scope\":[\"markup.deleted\"],\"settings\":{\"foreground\":\"#f26d78\"}},{\"scope\":[\"markup.strike\"],\"settings\":{\"foreground\":\"#e6b673\"}},{\"scope\":[\"markup.table\"],\"settings\":{\"background\":\"#bfbdb60f\",\"foreground\":\"#39bae6\"}},{\"scope\":[\"text.html.markdown markup.inline.raw\"],\"settings\":{\"foreground\":\"#f29668\"}},{\"scope\":[\"text.html.markdown meta.dummy.line-break\"],\"settings\":{\"background\":\"#acb6bf8c\",\"foreground\":\"#acb6bf8c\"}},{\"scope\":[\"punctuation.definition.markdown\"],\"settings\":{\"background\":\"#bfbdb6\",\"foreground\":\"#acb6bf8c\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CvhZxjKo.js",
    "content": "import{Q as o,d as r,C as u,g as c,aj as l,am as d,an as i,c as p,ao as g,ap as f,ak as m,aq as n}from\"./CU_MfyYc.js\";const k={base:\"animate-pulse\",background:\"bg-gray-100 dark:bg-gray-800\",rounded:\"rounded-md\"},_=m(n.ui.strategy,n.ui.skeleton,k),b=r({inheritAttrs:!1,props:{class:{type:[String,Object,Array],default:()=>\"\"},ui:{type:Object,default:()=>({})}},setup(e){const{ui:s,attrs:a}=d(\"skeleton\",i(e,\"ui\"),_),t=p(()=>g(f(s.value.base,s.value.background,s.value.rounded),e.class));return{ui:s,attrs:a,skeletonClass:t}}});function y(e,s,a,t,C,v){return c(),u(\"div\",l({class:e.skeletonClass},e.attrs),null,16)}const j=o(b,[[\"render\",y]]);export{j as _};\n"
  },
  {
    "path": "jesse/static/_nuxt/CvkRSmvA.js",
    "content": "import{_ as fe}from\"./Dr_JbmT0.js\";import{d as ye,A as be,r as _,c,w as K,B as me,C as u,i as d,j as s,x as o,E as N,f as j,G as n,F as Z,O as pe,H as I,q as w,D as Q,t as he,aa as ve,g,ac as _e,s as X}from\"./CU_MfyYc.js\";import{_ as we}from\"./s0YP2YF7.js\";import{_ as ke}from\"./DPg46dy1.js\";import{u as Se}from\"./Cwg39VG_.js\";import{u as Ce}from\"./X3S5orim.js\";import\"./C6794tGI.js\";import\"./9VOnL4Iz.js\";import\"./Cw4FHd9N.js\";import\"./BuljS_lV.js\";import\"./DP9I38t9.js\";const Ae={class:\"bg-gray-50 dark:bg-transparent min-h-screen pb-12\"},je={class:\"container mx-auto px-4 pt-16 pb-6 max-w-7xl\"},Fe={class:\"mb-6\"},Te={class:\"flex flex-col md:flex-row md:items-center justify-between gap-4 mb-6\"},Ne={class:\"flex gap-3 flex-wrap\"},Ie={class:\"grid grid-cols-2 lg:grid-cols-4 gap-4 mb-4\"},Be={class:\"bg-white dark:bg-gray-800/50 border border-gray-200 dark:border-gray-700 rounded-xl p-5 flex flex-col justify-between shadow-sm\"},qe={class:\"flex items-center justify-between mb-3\"},Ee={class:\"text-3xl font-bold text-gray-900 dark:text-gray-100 leading-none\"},Le={class:\"bg-white dark:bg-gray-800/50 border border-gray-200 dark:border-gray-700 rounded-xl p-5 flex flex-col justify-between shadow-sm\"},Oe={class:\"flex items-center justify-between mb-3\"},Ve={class:\"text-3xl font-bold text-gray-900 dark:text-gray-100 leading-none\"},$e={class:\"bg-white dark:bg-gray-800/50 border border-gray-200 dark:border-gray-700 rounded-xl p-5 flex flex-col justify-between shadow-sm\"},De={class:\"flex items-center justify-between mb-3\"},Pe={class:\"text-3xl font-bold text-gray-900 dark:text-gray-100 leading-none\"},Re={class:\"bg-white dark:bg-gray-800/50 border border-gray-200 dark:border-gray-700 rounded-xl p-5 flex flex-col justify-between shadow-sm\"},Me={class:\"flex items-center justify-between mb-3\"},Ue={class:\"text-3xl font-bold text-gray-900 dark:text-gray-100 leading-none\"},We={key:0,class:\"flex items-center gap-2 mb-4\"},ze={class:\"flex gap-2\"},Ge=[\"onClick\"],He={class:\"grid grid-cols-2 lg:grid-cols-4 gap-4 mb-4\"},Je={class:\"bg-white dark:bg-gray-800/50 border border-gray-200 dark:border-gray-700 rounded-xl p-5 flex flex-col justify-between shadow-sm\"},Ke={class:\"flex items-center justify-between mb-3\"},Ze={class:\"text-sm font-semibold ml-1 opacity-70\"},Qe={key:1,class:\"text-2xl font-bold text-gray-400 leading-none\"},Xe={class:\"bg-white dark:bg-gray-800/50 border border-gray-200 dark:border-gray-700 rounded-xl p-5 flex flex-col justify-between shadow-sm\"},Ye={class:\"flex items-center justify-between mb-3\"},et={key:1,class:\"text-2xl font-bold text-gray-400 leading-none\"},tt={class:\"bg-white dark:bg-gray-800/50 border border-gray-200 dark:border-gray-700 rounded-xl p-5 flex flex-col justify-between shadow-sm\"},st={class:\"flex items-center justify-between mb-3\"},rt={key:0,class:\"text-2xl font-bold text-gray-900 dark:text-gray-100 leading-none\"},ot={class:\"text-sm font-semibold ml-1 opacity-50\"},at={key:1,class:\"text-2xl font-bold text-gray-400 leading-none\"},nt={class:\"bg-white dark:bg-gray-800/50 border border-gray-200 dark:border-gray-700 rounded-xl p-5 flex flex-col justify-between shadow-sm\"},lt={class:\"flex items-center justify-between mb-3\"},it={key:0,class:\"leading-none\"},dt={class:\"text-2xl font-bold text-gray-900 dark:text-gray-100\"},ct={class:\"text-sm font-semibold ml-1 opacity-50\"},ut={class:\"text-xs text-gray-500 dark:text-gray-400 mt-1.5\"},gt={key:1,class:\"text-2xl font-bold text-gray-400 leading-none\"},xt={class:\"grid grid-cols-2 lg:grid-cols-4 gap-4 mb-8\"},ft={class:\"bg-white dark:bg-gray-800/50 border border-gray-200 dark:border-gray-700 rounded-xl p-5 flex flex-col justify-between shadow-sm\"},yt={class:\"flex items-center justify-between mb-3\"},bt={class:\"text-3xl font-bold text-gray-900 dark:text-gray-100 leading-none\"},mt={class:\"bg-white dark:bg-gray-800/50 border border-gray-200 dark:border-gray-700 rounded-xl p-5 flex flex-col justify-between shadow-sm\"},pt={class:\"flex items-center justify-between mb-3\"},ht={class:\"text-3xl font-bold text-gray-900 dark:text-gray-100 leading-none\"},vt={class:\"bg-white dark:bg-gray-800/50 border border-gray-200 dark:border-gray-700 rounded-xl p-5 flex flex-col justify-between shadow-sm\"},_t={class:\"flex items-center justify-between mb-3\"},wt={class:\"text-3xl font-bold text-gray-900 dark:text-gray-100 leading-none\"},kt={class:\"bg-white dark:bg-gray-800/50 border border-gray-200 dark:border-gray-700 rounded-xl p-5 flex flex-col justify-between shadow-sm\"},St={class:\"flex items-center justify-between mb-3\"},Ct={key:0,class:\"leading-none\"},At={class:\"text-xs text-gray-500 dark:text-gray-400 mt-1.5\"},jt={key:1,class:\"text-3xl font-bold text-gray-400 leading-none\"},Ft={key:0,class:\"mb-8\"},Tt={class:\"bg-white dark:bg-gray-800/50 border border-gray-200 dark:border-gray-700 rounded-xl p-6 shadow-sm\"},Nt={key:0},It={key:0,class:\"mt-4 text-sm text-gray-500 dark:text-gray-400 italic\"},Bt={key:1,class:\"text-center py-12 text-gray-500 dark:text-gray-400 text-sm\"},qt={key:1},Et={key:2,class:\"text-center py-20 bg-white dark:bg-gray-800/50 border border-gray-200 dark:border-gray-700 rounded-lg shadow-sm\"},Ht=ye({__name:\"overview\",setup(Lt){Se({title:\"Overview - Jesse\"});const f=be(),k=_(!1),S=_(!1),F=_(!1),T=_(!1),b=_(\"USD\"),v=_(new Set),m=c(()=>Object.values(f.tabs)),M=c(()=>m.value.length),x=c(()=>m.value.filter(e=>e.results.phase===\"running\"));c(()=>m.value.filter(e=>e.results.phase===\"starting\"));const Y=c(()=>m.value.filter(e=>e.results.phase===\"editing\")),ee=c(()=>m.value.filter(e=>[\"ended\",\"error\",\"stopping\"].includes(e.results.phase))),B=c(()=>m.value.filter(e=>[\"running\",\"starting\"].includes(e.results.phase))),q=c(()=>m.value.filter(e=>[\"editing\",\"ended\"].includes(e.results.phase))),U=[\"#818CF8\",\"#34D399\",\"#FBBF24\",\"#F87171\",\"#A78BFA\",\"#60A5FA\",\"#FB923C\",\"#2DD4BF\",\"#FB7185\",\"#C084FC\",\"#4ADE80\",\"#FACC15\"];function te(e,t){let r=0;for(let l=0;l<e.length;l++)r=(r<<5)-r+e.charCodeAt(l),r=r&r;return Math.abs(r)%t}function se(e){return U[te(e,U.length)]}function E(e){var l,a,i;const t=(i=(a=(l=e.results.charts)==null?void 0:l.equity_curve)==null?void 0:a[0])==null?void 0:i.name;if(!t)return null;const r=t.match(/\\(([A-Z]+)\\)/);return r?r[1]:null}function re(e){var l,a,i;if((l=e.results.generalInfo)!=null&&l.title)return e.results.generalInfo.title;const t=e.form.exchange||((a=e.results.generalInfo)==null?void 0:a.exchange)||\"\",r=(i=e.form.routes)==null?void 0:i[0];return r?`${t} ${r.symbol} ${r.timeframe}`:e.id.substring(0,8)}const L=c(()=>{const e=new Set;for(const t of x.value){const r=E(t);r&&e.add(r)}return Array.from(e).sort()}),p=c(()=>x.value.filter(e=>E(e)===b.value)),O=c(()=>p.value.reduce((e,t)=>{var r;return e+(Number((r=t.results.generalInfo)==null?void 0:r.pnl)||0)},0)),C=c(()=>p.value.reduce((e,t)=>{var r;return e+(Number((r=t.results.generalInfo)==null?void 0:r.started_balance)||0)},0)),V=c(()=>p.value.reduce((e,t)=>{var r;return e+(Number((r=t.results.generalInfo)==null?void 0:r.current_balance)||0)},0)),$=c(()=>C.value===0?0:(V.value-C.value)/C.value*100),oe=c(()=>x.value.reduce((e,t)=>{var r;return e+(Number((r=t.results.generalInfo)==null?void 0:r.open_positions)||0)},0)),ae=c(()=>x.value.reduce((e,t)=>{var r;return e+(Number((r=t.results.generalInfo)==null?void 0:r.count_active_orders)||0)},0)),D=c(()=>x.value.reduce((e,t)=>{var r;return e+(Number((r=t.results.generalInfo)==null?void 0:r.count_trades)||0)},0)),W=c(()=>x.value.reduce((e,t)=>{var r;return e+(Number((r=t.results.generalInfo)==null?void 0:r.count_winning_trades)||0)},0)),ne=c(()=>x.value.reduce((e,t)=>{var r;return e+(Number((r=t.results.generalInfo)==null?void 0:r.count_losing_trades)||0)},0)),P=c(()=>D.value===0?null:W.value/D.value*100);function z(e){return e>0?\"text-green-600 dark:text-green-400\":e<0?\"text-red-600 dark:text-red-400\":\"text-gray-900 dark:text-gray-100\"}function le(e){return e>=55?\"text-green-600 dark:text-green-400\":e>=45?\"text-gray-900 dark:text-gray-100\":\"text-red-600 dark:text-red-400\"}const R=c(()=>{var r,l,a;const e=p.value.slice().sort((i,h)=>i.id.localeCompare(h.id)),t=[];for(const i of e){const h=(l=(r=i.results.charts)==null?void 0:r.equity_curve)==null?void 0:l[0];if(!((a=h==null?void 0:h.data)!=null&&a.length))continue;const A=se(i.id),y=h.data.map(J=>({...J,color:A}));t.push({name:re(i),color:A,data:y})}return t});K(L,e=>{if(e.length>0&&!e.includes(b.value)){const t=new Map;for(const a of x.value){const i=E(a);i&&t.set(i,(t.get(i)||0)+1)}let r=e[0],l=0;for(const[a,i]of t)i>l&&(l=i,r=a);b.value=r}},{immediate:!0}),K(()=>x.value.map(e=>e.id).sort().join(\",\"),async(e,t)=>{if(e===t)return;const r=new Set(x.value.map(a=>a.id)),l=Array.from(r).filter(a=>!v.value.has(a));for(const a of l){v.value.add(a);try{await f.fetchEquityCurve(a,\"auto\")}catch(i){console.error(`Failed to fetch equity curve for session ${a}:`,i)}}for(const a of v.value)r.has(a)||v.value.delete(a)}),me(async()=>{for(const e of x.value)if(!v.value.has(e.id)){v.value.add(e.id);try{await f.fetchEquityCurve(e.id,\"auto\")}catch(t){console.error(`Failed to fetch equity curve for session ${e.id}:`,t)}}});function ie(){if(q.value.length===0){X(\"info\",\"No sessions to start\");return}k.value=!0}function de(){if(B.value.length===0){X(\"info\",\"No running sessions to stop\");return}S.value=!0}async function ce(){k.value=!1,F.value=!0;try{await f.startAll()}finally{F.value=!1}}async function ue(){S.value=!1,T.value=!0;try{await f.stopAll()}finally{T.value=!1}}async function ge(e){await f.rerunAndStart(e,{navigate:!1})}function G(e){f.openStopConfirmModal(e)}function H(e){f.closeTab(e)}function xe(){f.addTab()}return Ce({ArrowLeft:()=>f.goToPrevTab(null),ArrowRight:()=>f.goToNextTab(null)}),(e,t)=>{const r=fe,l=he,a=_e,i=we,h=ke,A=ve;return g(),u(\"div\",Ae,[d(r,{\"current-tab\":null,tabs:o(f).tabs,onClose:H,onCancel:G},null,8,[\"tabs\"]),s(\"div\",je,[s(\"div\",Fe,[s(\"div\",Te,[t[2]||(t[2]=s(\"h1\",{class:\"text-2xl font-bold text-gray-900 dark:text-gray-100\"},\" Overview \",-1)),s(\"div\",Ne,[d(l,{disabled:o(q).length===0||o(F),loading:o(F),icon:\"i-heroicons-play\",onClick:ie},{default:j(()=>[w(\" Start All (\"+n(o(q).length)+\") \",1)]),_:1},8,[\"disabled\",\"loading\"]),d(l,{disabled:o(B).length===0||o(T),loading:o(T),color:\"rose\",icon:\"i-heroicons-stop\",onClick:de},{default:j(()=>[w(\" Stop All Running (\"+n(o(B).length)+\") \",1)]),_:1},8,[\"disabled\",\"loading\"])])]),s(\"div\",Ie,[s(\"div\",Be,[s(\"div\",qe,[t[3]||(t[3]=s(\"span\",{class:\"text-xs text-gray-500 dark:text-gray-400 uppercase font-bold tracking-wider\"},\"Total Sessions\",-1)),d(a,{name:\"i-heroicons-squares-2x2\",class:\"w-5 h-5 text-gray-400\"})]),s(\"div\",Ee,n(o(M)),1)]),s(\"div\",Le,[s(\"div\",Oe,[t[4]||(t[4]=s(\"span\",{class:\"text-xs text-gray-500 dark:text-gray-400 uppercase font-bold tracking-wider\"},\"Running\",-1)),d(a,{name:\"i-heroicons-play-circle\",class:\"w-6 h-6 text-gray-400\"})]),s(\"div\",Ve,n(o(x).length),1)]),s(\"div\",$e,[s(\"div\",De,[t[5]||(t[5]=s(\"span\",{class:\"text-xs text-gray-500 dark:text-gray-400 uppercase font-bold tracking-wider\"},\"Drafts\",-1)),d(a,{name:\"i-heroicons-pencil-square\",class:\"w-5 h-5 text-gray-400\"})]),s(\"div\",Pe,n(o(Y).length),1)]),s(\"div\",Re,[s(\"div\",Me,[t[6]||(t[6]=s(\"span\",{class:\"text-xs text-gray-500 dark:text-gray-400 uppercase font-bold tracking-wider\"},\"Ended/Error\",-1)),d(a,{name:\"i-heroicons-stop-circle\",class:\"w-6 h-6 text-gray-400\"})]),s(\"div\",Ue,n(o(ee).length),1)])]),o(x).length>0?(g(),u(Z,{key:0},[o(L).length>1?(g(),u(\"div\",We,[t[7]||(t[7]=s(\"span\",{class:\"text-sm text-gray-500 dark:text-gray-400\"},\"Currency:\",-1)),s(\"div\",ze,[(g(!0),u(Z,null,pe(o(L),y=>(g(),u(\"button\",{key:y,class:I([\"px-3 py-1.5 text-xs font-semibold rounded-lg transition-colors duration-200\",[o(b)===y?\"bg-primary-500 text-white\":\"bg-gray-100 dark:bg-gray-700 text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-600\"]]),onClick:J=>b.value=y},n(y),11,Ge))),128))])])):N(\"\",!0),s(\"div\",He,[s(\"div\",Je,[s(\"div\",Ke,[t[8]||(t[8]=s(\"span\",{class:\"text-xs text-gray-500 dark:text-gray-400 uppercase font-bold tracking-wider\"},\"Total P&L\",-1)),d(a,{name:\"i-heroicons-banknotes\",class:\"w-5 h-5 text-gray-400\"})]),o(p).length>0?(g(),u(\"div\",{key:0,class:I([\"text-2xl font-bold leading-none\",z(o(O))])},[w(n(o(O)>=0?\"+\":\"\")+n(o(O).toFixed(2))+\" \",1),s(\"span\",Ze,n(o(b)),1)],2)):(g(),u(\"div\",Qe,\"—\"))]),s(\"div\",Xe,[s(\"div\",Ye,[t[9]||(t[9]=s(\"span\",{class:\"text-xs text-gray-500 dark:text-gray-400 uppercase font-bold tracking-wider\"},\"P&L %\",-1)),d(a,{name:\"i-heroicons-arrow-trending-up\",class:\"w-5 h-5 text-gray-400\"})]),o(p).length>0&&o(C)>0?(g(),u(\"div\",{key:0,class:I([\"text-2xl font-bold leading-none\",z(o($))])},n(o($)>=0?\"+\":\"\")+n(o($).toFixed(2))+\"% \",3)):(g(),u(\"div\",et,\"—\"))]),s(\"div\",tt,[s(\"div\",st,[t[10]||(t[10]=s(\"span\",{class:\"text-xs text-gray-500 dark:text-gray-400 uppercase font-bold tracking-wider\"},\"Current Balance\",-1)),d(a,{name:\"i-heroicons-wallet\",class:\"w-5 h-5 text-gray-400\"})]),o(p).length>0?(g(),u(\"div\",rt,[w(n(o(V).toFixed(2))+\" \",1),s(\"span\",ot,n(o(b)),1)])):(g(),u(\"div\",at,\"—\"))]),s(\"div\",nt,[s(\"div\",lt,[t[11]||(t[11]=s(\"span\",{class:\"text-xs text-gray-500 dark:text-gray-400 uppercase font-bold tracking-wider\"},\"Started Balance\",-1)),d(a,{name:\"i-heroicons-scale\",class:\"w-5 h-5 text-gray-400\"})]),o(p).length>0?(g(),u(\"div\",it,[s(\"div\",dt,[w(n(o(C).toFixed(2))+\" \",1),s(\"span\",ct,n(o(b)),1)]),s(\"div\",ut,\" Current: \"+n(o(V).toFixed(2))+\" \"+n(o(b)),1)])):(g(),u(\"div\",gt,\"—\"))])]),s(\"div\",xt,[s(\"div\",ft,[s(\"div\",yt,[t[12]||(t[12]=s(\"span\",{class:\"text-xs text-gray-500 dark:text-gray-400 uppercase font-bold tracking-wider\"},\"Open Positions\",-1)),d(a,{name:\"i-heroicons-arrow-path\",class:\"w-5 h-5 text-gray-400\"})]),s(\"div\",bt,n(o(oe)),1)]),s(\"div\",mt,[s(\"div\",pt,[t[13]||(t[13]=s(\"span\",{class:\"text-xs text-gray-500 dark:text-gray-400 uppercase font-bold tracking-wider\"},\"Open Orders\",-1)),d(a,{name:\"i-heroicons-queue-list\",class:\"w-5 h-5 text-gray-400\"})]),s(\"div\",ht,n(o(ae)),1)]),s(\"div\",vt,[s(\"div\",_t,[t[14]||(t[14]=s(\"span\",{class:\"text-xs text-gray-500 dark:text-gray-400 uppercase font-bold tracking-wider\"},\"Total Trades\",-1)),d(a,{name:\"i-heroicons-chart-bar\",class:\"w-5 h-5 text-gray-400\"})]),s(\"div\",wt,n(o(D)),1)]),s(\"div\",kt,[s(\"div\",St,[t[15]||(t[15]=s(\"span\",{class:\"text-xs text-gray-500 dark:text-gray-400 uppercase font-bold tracking-wider\"},\"Win Rate\",-1)),d(a,{name:\"i-heroicons-trophy\",class:\"w-5 h-5 text-gray-400\"})]),o(P)!==null?(g(),u(\"div\",Ct,[s(\"div\",{class:I([\"text-3xl font-bold\",le(o(P))])},n(o(P).toFixed(1))+\"% \",3),s(\"div\",At,n(o(W))+\"W / \"+n(o(ne))+\"L \",1)])):(g(),u(\"div\",jt,\"—\"))])])],64)):N(\"\",!0)]),o(x).length>0?(g(),u(\"div\",Ft,[s(\"div\",Tt,[t[16]||(t[16]=s(\"div\",{class:\"flex flex-col sm:flex-row sm:items-center justify-between gap-4 mb-6\"},[s(\"h2\",{class:\"text-lg font-bold text-gray-900 dark:text-gray-100\"},\" Equity Comparison \")],-1)),o(R).length>0?(g(),u(\"div\",Nt,[d(i,{data:o(R)},null,8,[\"data\"]),o(R).length===1?(g(),u(\"div\",It,\" This chart is designed to compare multiple sessions simultaneously. For a detailed view of this single session, visit its individual tab instead. \")):N(\"\",!0)])):(g(),u(\"div\",Bt,\" No equity data yet. Charts will appear shortly after sessions start collecting balance snapshots. \"))])])):N(\"\",!0),o(M)>0?(g(),u(\"div\",qt,[d(h,{sessions:o(m),onStart:ge,onStop:G,onClose:H},null,8,[\"sessions\"])])):(g(),u(\"div\",Et,[t[18]||(t[18]=s(\"div\",{class:\"text-gray-500 dark:text-gray-400 text-lg mb-6\"},\" No live sessions found \",-1)),d(l,{size:\"lg\",variant:\"solid\",icon:\"i-heroicons-plus\",onClick:xe},{default:j(()=>t[17]||(t[17]=[w(\" Create New Session \")])),_:1})]))]),d(A,{modelValue:o(k),\"onUpdate:modelValue\":t[0]||(t[0]=y=>Q(k)?k.value=y:null),title:\"Start All Sessions\",description:\"Are you sure you want to start all eligible sessions? This includes both drafts and ended sessions that don't have errors.\",type:\"info\"},{default:j(()=>[d(l,{variant:\"solid\",color:\"green\",block:\"\",class:\"sm:w-auto\",label:\"Start All\",onClick:ce})]),_:1},8,[\"modelValue\"]),d(A,{modelValue:o(S),\"onUpdate:modelValue\":t[1]||(t[1]=y=>Q(S)?S.value=y:null),title:\"Stop All Running Sessions\",description:\"Are you sure you want to terminate all running sessions? This will stop all active trading.\",type:\"info\"},{default:j(()=>[d(l,{variant:\"solid\",color:\"red\",block:\"\",class:\"sm:w-auto\",label:\"Stop All\",onClick:ue})]),_:1},8,[\"modelValue\"])])}}});export{Ht as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CvlXmOiu.js",
    "content": "import{$ as a,a0 as e,I as t}from\"./CU_MfyYc.js\";const s=a((r,o)=>{if(e().plan===\"free\"||e().plan===\"guest\")return t(\"/\")});export{s as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Cw4FHd9N.js",
    "content": "import{Q as d,d as u,C as y,g as b,R as p,q as f,G as k,aj as x,ak as m,am as v,an as j,as as _,c as h,ao as w,ap as z,aq as o}from\"./CU_MfyYc.js\";const O={base:\"inline-flex items-center\",rounded:\"rounded-md\",font:\"font-medium\",size:{xs:\"text-xs px-1.5 py-0.5\",sm:\"text-xs px-2 py-1\",md:\"text-sm px-2 py-1\",lg:\"text-sm px-2.5 py-1.5\"},color:{white:{solid:\"ring-1 ring-inset ring-gray-300 dark:ring-gray-700 text-gray-900 dark:text-white bg-white dark:bg-gray-900\"},gray:{solid:\"ring-1 ring-inset ring-gray-300 dark:ring-gray-700 text-gray-700 dark:text-gray-200 bg-gray-50 dark:bg-gray-800\"},black:{solid:\"text-white dark:text-gray-900 bg-gray-900 dark:bg-white\"}},variant:{solid:\"bg-{color}-500 dark:bg-{color}-400 text-white dark:text-gray-900\",outline:\"text-{color}-500 dark:text-{color}-400 ring-1 ring-inset ring-{color}-500 dark:ring-{color}-400\",soft:\"bg-{color}-50 dark:bg-{color}-400 dark:bg-opacity-10 text-{color}-500 dark:text-{color}-400\",subtle:\"bg-{color}-50 dark:bg-{color}-400 dark:bg-opacity-10 text-{color}-500 dark:text-{color}-400 ring-1 ring-inset ring-{color}-500 dark:ring-{color}-400 ring-opacity-25 dark:ring-opacity-25\"},default:{size:\"sm\",variant:\"solid\",color:\"primary\"}},a=m(o.ui.strategy,o.ui.badge,O),S=u({inheritAttrs:!1,props:{size:{type:String,default:()=>a.default.size,validator(t){return Object.keys(a.size).includes(t)}},color:{type:String,default:()=>a.default.color,validator(t){return[...o.ui.colors,...Object.keys(a.color)].includes(t)}},variant:{type:String,default:()=>a.default.variant,validator(t){return[...Object.keys(a.variant),...Object.values(a.color).flatMap(e=>Object.keys(e))].includes(t)}},label:{type:[String,Number],default:null},class:{type:[String,Object,Array],default:()=>\"\"},ui:{type:Object,default:()=>({})}},setup(t){const{ui:e,attrs:i}=v(\"badge\",j(t,\"ui\"),a),{size:n,rounded:s}=_({ui:e,props:t}),l=h(()=>{var c,g;const r=((g=(c=e.value.color)==null?void 0:c[t.color])==null?void 0:g[t.variant])||e.value.variant[t.variant];return w(z(e.value.base,e.value.font,s.value,e.value.size[n.value],r==null?void 0:r.replaceAll(\"{color}\",t.color)),t.class)});return{attrs:i,badgeClass:l}}});function C(t,e,i,n,s,l){return b(),y(\"span\",x({class:t.badgeClass},t.attrs),[p(t.$slots,\"default\",{},()=>[f(k(t.label),1)])],16)}const A=d(S,[[\"render\",C]]);export{A as _};\n"
  },
  {
    "path": "jesse/static/_nuxt/CwDv50qJ.js",
    "content": "import{d as n,a4 as r,A as c,C as i,g as p}from\"./CU_MfyYc.js\";const l=n({__name:\"index\",setup(u){const o=r(),e=c(),t=Object.keys(e.tabs);if(t.length>0){const s=t[0],a=e.tabs[s];o.push({path:`/live/${a.id}`})}else e.addTab();return(s,a)=>(p(),i(\"div\"))}});export{l as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Cwg39VG_.js",
    "content": "import{Y as l,Z as m}from\"./CU_MfyYc.js\";function f(e,a){const{title:r,titleTemplate:n,...o}=e;return l({title:r,titleTemplate:n,_flatMeta:o},{...a,transform(t){const s=m({...t._flatMeta});return delete t._flatMeta,{...t,meta:s}}})}export{f as u};\n"
  },
  {
    "path": "jesse/static/_nuxt/CwjWoCRV.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"R\",\"name\":\"r\",\"patterns\":[{\"include\":\"#roxygen\"},{\"include\":\"#comments\"},{\"include\":\"#constants\"},{\"include\":\"#keywords\"},{\"include\":\"#storage-type\"},{\"include\":\"#strings\"},{\"include\":\"#brackets\"},{\"include\":\"#function-declarations\"},{\"include\":\"#lambda-functions\"},{\"include\":\"#builtin-functions\"},{\"include\":\"#function-calls\"},{\"include\":\"#general-variables\"}],\"repository\":{\"brackets\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.r\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.r\"}},\"patterns\":[{\"include\":\"source.r\"}]},{\"begin\":\"\\\\\\\\[(?!\\\\\\\\[)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.brackets.single.begin.r\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.brackets.single.end.r\"}},\"patterns\":[{\"include\":\"source.r\"}]},{\"begin\":\"\\\\\\\\[\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.brackets.double.begin.r\"}},\"contentName\":\"meta.item-access.arguments.r\",\"end\":\"\\\\\\\\]\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.brackets.double.end.r\"}},\"patterns\":[{\"include\":\"source.r\"}]},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.braces.begin.r\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.braces.end.r\"}},\"patterns\":[{\"include\":\"source.r\"}]}]},\"builtin-functions\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"support.function.r\"}},\"match\":\"\\\\\\\\b(abbreviate|abs|acos|acosh|activeBindingFunction|addNA|addTaskCallback|agrep|agrepl|alist|all|all\\\\\\\\.equal|all\\\\\\\\.equal\\\\\\\\.character|all\\\\\\\\.equal\\\\\\\\.default|all\\\\\\\\.equal\\\\\\\\.environment|all\\\\\\\\.equal\\\\\\\\.envRefClass|all\\\\\\\\.equal\\\\\\\\.factor|all\\\\\\\\.equal\\\\\\\\.formula|all\\\\\\\\.equal\\\\\\\\.function|all\\\\\\\\.equal\\\\\\\\.language|all\\\\\\\\.equal\\\\\\\\.list|all\\\\\\\\.equal\\\\\\\\.numeric|all\\\\\\\\.equal\\\\\\\\.POSIXt|all\\\\\\\\.equal\\\\\\\\.raw|all\\\\\\\\.names|allowInterrupts|all\\\\\\\\.vars|any|anyDuplicated|anyDuplicated\\\\\\\\.array|anyDuplicated\\\\\\\\.data\\\\\\\\.frame|anyDuplicated\\\\\\\\.default|anyDuplicated\\\\\\\\.matrix|anyNA|anyNA\\\\\\\\.data\\\\\\\\.frame|anyNA\\\\\\\\.numeric_version|anyNA\\\\\\\\.POSIXlt|aperm|aperm\\\\\\\\.default|aperm\\\\\\\\.table|append|apply|Arg|args|array|arrayInd|as\\\\\\\\.array|as\\\\\\\\.array\\\\\\\\.default|as\\\\\\\\.call|as\\\\\\\\.character|as\\\\\\\\.character\\\\\\\\.condition|as\\\\\\\\.character\\\\\\\\.Date|as\\\\\\\\.character\\\\\\\\.default|as\\\\\\\\.character\\\\\\\\.error|as\\\\\\\\.character\\\\\\\\.factor|as\\\\\\\\.character\\\\\\\\.hexmode|as\\\\\\\\.character\\\\\\\\.numeric_version|as\\\\\\\\.character\\\\\\\\.octmode|as\\\\\\\\.character\\\\\\\\.POSIXt|as\\\\\\\\.character\\\\\\\\.srcref|as\\\\\\\\.complex|as\\\\\\\\.data\\\\\\\\.frame|as\\\\\\\\.data\\\\\\\\.frame\\\\\\\\.array|as\\\\\\\\.data\\\\\\\\.frame\\\\\\\\.AsIs|as\\\\\\\\.data\\\\\\\\.frame\\\\\\\\.character|as\\\\\\\\.data\\\\\\\\.frame\\\\\\\\.complex|as\\\\\\\\.data\\\\\\\\.frame\\\\\\\\.data\\\\\\\\.frame|as\\\\\\\\.data\\\\\\\\.frame\\\\\\\\.Date|as\\\\\\\\.data\\\\\\\\.frame\\\\\\\\.default|as\\\\\\\\.data\\\\\\\\.frame\\\\\\\\.difftime|as\\\\\\\\.data\\\\\\\\.frame\\\\\\\\.factor|as\\\\\\\\.data\\\\\\\\.frame\\\\\\\\.integer|as\\\\\\\\.data\\\\\\\\.frame\\\\\\\\.list|as\\\\\\\\.data\\\\\\\\.frame\\\\\\\\.logical|as\\\\\\\\.data\\\\\\\\.frame\\\\\\\\.matrix|as\\\\\\\\.data\\\\\\\\.frame\\\\\\\\.model\\\\\\\\.matrix|as\\\\\\\\.data\\\\\\\\.frame\\\\\\\\.noquote|as\\\\\\\\.data\\\\\\\\.frame\\\\\\\\.numeric|as\\\\\\\\.data\\\\\\\\.frame\\\\\\\\.numeric_version|as\\\\\\\\.data\\\\\\\\.frame\\\\\\\\.ordered|as\\\\\\\\.data\\\\\\\\.frame\\\\\\\\.POSIXct|as\\\\\\\\.data\\\\\\\\.frame\\\\\\\\.POSIXlt|as\\\\\\\\.data\\\\\\\\.frame\\\\\\\\.raw|as\\\\\\\\.data\\\\\\\\.frame\\\\\\\\.table|as\\\\\\\\.data\\\\\\\\.frame\\\\\\\\.ts|as\\\\\\\\.data\\\\\\\\.frame\\\\\\\\.vector|as\\\\\\\\.Date|as\\\\\\\\.Date\\\\\\\\.character|as\\\\\\\\.Date\\\\\\\\.default|as\\\\\\\\.Date\\\\\\\\.factor|as\\\\\\\\.Date\\\\\\\\.numeric|as\\\\\\\\.Date\\\\\\\\.POSIXct|as\\\\\\\\.Date\\\\\\\\.POSIXlt|as\\\\\\\\.difftime|as\\\\\\\\.double|as\\\\\\\\.double\\\\\\\\.difftime|as\\\\\\\\.double\\\\\\\\.POSIXlt|as\\\\\\\\.environment|as\\\\\\\\.expression|as\\\\\\\\.expression\\\\\\\\.default|as\\\\\\\\.factor|as\\\\\\\\.function|as\\\\\\\\.function\\\\\\\\.default|as\\\\\\\\.hexmode|asin|asinh|as\\\\\\\\.integer|as\\\\\\\\.list|as\\\\\\\\.list\\\\\\\\.data\\\\\\\\.frame|as\\\\\\\\.list\\\\\\\\.Date|as\\\\\\\\.list\\\\\\\\.default|as\\\\\\\\.list\\\\\\\\.difftime|as\\\\\\\\.list\\\\\\\\.environment|as\\\\\\\\.list\\\\\\\\.factor|as\\\\\\\\.list\\\\\\\\.function|as\\\\\\\\.list\\\\\\\\.numeric_version|as\\\\\\\\.list\\\\\\\\.POSIXct|as\\\\\\\\.list\\\\\\\\.POSIXlt|as\\\\\\\\.logical|as\\\\\\\\.logical\\\\\\\\.factor|as\\\\\\\\.matrix|as\\\\\\\\.matrix\\\\\\\\.data\\\\\\\\.frame|as\\\\\\\\.matrix\\\\\\\\.default|as\\\\\\\\.matrix\\\\\\\\.noquote|as\\\\\\\\.matrix\\\\\\\\.POSIXlt|as\\\\\\\\.name|asNamespace|as\\\\\\\\.null|as\\\\\\\\.null\\\\\\\\.default|as\\\\\\\\.numeric|as\\\\\\\\.numeric_version|as\\\\\\\\.octmode|as\\\\\\\\.ordered|as\\\\\\\\.package_version|as\\\\\\\\.pairlist|asplit|as\\\\\\\\.POSIXct|as\\\\\\\\.POSIXct\\\\\\\\.Date|as\\\\\\\\.POSIXct\\\\\\\\.default|as\\\\\\\\.POSIXct\\\\\\\\.numeric|as\\\\\\\\.POSIXct\\\\\\\\.POSIXlt|as\\\\\\\\.POSIXlt|as\\\\\\\\.POSIXlt\\\\\\\\.character|as\\\\\\\\.POSIXlt\\\\\\\\.Date|as\\\\\\\\.POSIXlt\\\\\\\\.default|as\\\\\\\\.POSIXlt\\\\\\\\.factor|as\\\\\\\\.POSIXlt\\\\\\\\.numeric|as\\\\\\\\.POSIXlt\\\\\\\\.POSIXct|as\\\\\\\\.qr|as\\\\\\\\.raw|asS3|asS4|assign|as\\\\\\\\.single|as\\\\\\\\.single\\\\\\\\.default|as\\\\\\\\.symbol|as\\\\\\\\.table|as\\\\\\\\.table\\\\\\\\.default|as\\\\\\\\.vector|as\\\\\\\\.vector\\\\\\\\.factor|atan|atan2|atanh|attach|attachNamespace|attr|attr\\\\\\\\.all\\\\\\\\.equal|attributes|autoload|autoloader|backsolve|baseenv|basename|besselI|besselJ|besselK|besselY|beta|bindingIsActive|bindingIsLocked|bindtextdomain|bitwAnd|bitwNot|bitwOr|bitwShiftL|bitwShiftR|bitwXor|body|bquote|break|browser|browserCondition|browserSetDebug|browserText|builtins|by|by\\\\\\\\.data\\\\\\\\.frame|by\\\\\\\\.default|bzfile|c|call|callCC|capabilities|casefold|cat|cbind|cbind\\\\\\\\.data\\\\\\\\.frame|c\\\\\\\\.Date|c\\\\\\\\.difftime|ceiling|c\\\\\\\\.factor|character|char\\\\\\\\.expand|charmatch|charToRaw|chartr|check_tzones|chkDots|chol|chol2inv|chol\\\\\\\\.default|choose|class|clearPushBack|close|closeAllConnections|close\\\\\\\\.connection|close\\\\\\\\.srcfile|close\\\\\\\\.srcfilealias|c\\\\\\\\.noquote|c\\\\\\\\.numeric_version|col|colMeans|colnames|colSums|commandArgs|comment|complex|computeRestarts|conditionCall|conditionCall\\\\\\\\.condition|conditionMessage|conditionMessage\\\\\\\\.condition|conflictRules|conflicts|Conj|contributors|cos|cosh|cospi|c\\\\\\\\.POSIXct|c\\\\\\\\.POSIXlt|crossprod|Cstack_info|cummax|cummin|cumprod|cumsum|curlGetHeaders|cut|cut\\\\\\\\.Date|cut\\\\\\\\.default|cut\\\\\\\\.POSIXt|c\\\\\\\\.warnings|data\\\\\\\\.class|data\\\\\\\\.frame|data\\\\\\\\.matrix|date|debug|debuggingState|debugonce|default\\\\\\\\.stringsAsFactors|delayedAssign|deparse|deparse1|det|detach|determinant|determinant\\\\\\\\.matrix|dget|diag|diff|diff\\\\\\\\.Date|diff\\\\\\\\.default|diff\\\\\\\\.difftime|diff\\\\\\\\.POSIXt|difftime|digamma|dim|dim\\\\\\\\.data\\\\\\\\.frame|dimnames|dimnames\\\\\\\\.data\\\\\\\\.frame|dir|dir\\\\\\\\.create|dir\\\\\\\\.exists|dirname|do\\\\\\\\.call|dontCheck|double|dput|dQuote|drop|droplevels|droplevels\\\\\\\\.data\\\\\\\\.frame|droplevels\\\\\\\\.factor|dump|duplicated|duplicated\\\\\\\\.array|duplicated\\\\\\\\.data\\\\\\\\.frame|duplicated\\\\\\\\.default|duplicated\\\\\\\\.matrix|duplicated\\\\\\\\.numeric_version|duplicated\\\\\\\\.POSIXlt|duplicated\\\\\\\\.warnings|dynGet|dyn\\\\\\\\.load|dyn\\\\\\\\.unload|eapply|eigen|emptyenv|enc2native|enc2utf8|encodeString|Encoding|endsWith|enquote|environment|environmentIsLocked|environmentName|env\\\\\\\\.profile|errorCondition|eval|eval\\\\\\\\.parent|evalq|exists|exp|expand\\\\\\\\.grid|expm1|expression|extSoftVersion|factor|factorial|fifo|file|file\\\\\\\\.access|file\\\\\\\\.append|file\\\\\\\\.choose|file\\\\\\\\.copy|file\\\\\\\\.create|file\\\\\\\\.exists|file\\\\\\\\.info|file\\\\\\\\.link|file\\\\\\\\.mode|file\\\\\\\\.mtime|file\\\\\\\\.path|file\\\\\\\\.remove|file\\\\\\\\.rename|file\\\\\\\\.show|file\\\\\\\\.size|file\\\\\\\\.symlink|Filter|Find|findInterval|find\\\\\\\\.package|findPackageEnv|findRestart|floor|flush|flush\\\\\\\\.connection|for|force|forceAndCall|formals|format|format\\\\\\\\.AsIs|formatC|format\\\\\\\\.data\\\\\\\\.frame|format\\\\\\\\.Date|format\\\\\\\\.default|format\\\\\\\\.difftime|formatDL|format\\\\\\\\.factor|format\\\\\\\\.hexmode|format\\\\\\\\.info|format\\\\\\\\.libraryIQR|format\\\\\\\\.numeric_version|format\\\\\\\\.octmode|format\\\\\\\\.packageInfo|format\\\\\\\\.POSIXct|format\\\\\\\\.POSIXlt|format\\\\\\\\.pval|format\\\\\\\\.summaryDefault|forwardsolve|function|gamma|gc|gcinfo|gc\\\\\\\\.time|gctorture|gctorture2|get|get0|getAllConnections|getCallingDLL|getCallingDLLe|getConnection|getDLLRegisteredRoutines|getDLLRegisteredRoutines\\\\\\\\.character|getDLLRegisteredRoutines\\\\\\\\.DLLInfo|getElement|geterrmessage|getExportedValue|getHook|getLoadedDLLs|getNamespace|getNamespaceExports|getNamespaceImports|getNamespaceInfo|getNamespaceName|getNamespaceUsers|getNamespaceVersion|getNativeSymbolInfo|getOption|getRversion|getSrcLines|getTaskCallbackNames|gettext|gettextf|getwd|gl|globalCallingHandlers|globalenv|gregexec|gregexpr|grep|grepl|grepRaw|grouping|gsub|gzcon|gzfile|I|iconv|iconvlist|icuGetCollate|icuSetCollate|identical|identity|if|ifelse|Im|importIntoEnv|infoRDS|inherits|integer|interaction|interactive|intersect|intToBits|intToUtf8|inverse\\\\\\\\.rle|invisible|invokeRestart|invokeRestartInteractively|isa|is\\\\\\\\.array|is\\\\\\\\.atomic|isatty|isBaseNamespace|is\\\\\\\\.call|is\\\\\\\\.character|is\\\\\\\\.complex|is\\\\\\\\.data\\\\\\\\.frame|isdebugged|is\\\\\\\\.double|is\\\\\\\\.element|is\\\\\\\\.environment|is\\\\\\\\.expression|is\\\\\\\\.factor|isFALSE|is\\\\\\\\.finite|is\\\\\\\\.function|isIncomplete|is\\\\\\\\.infinite|is\\\\\\\\.integer|is\\\\\\\\.language|is\\\\\\\\.list|is\\\\\\\\.loaded|is\\\\\\\\.logical|is\\\\\\\\.matrix|is\\\\\\\\.na|is\\\\\\\\.na\\\\\\\\.data\\\\\\\\.frame|is\\\\\\\\.name|isNamespace|isNamespaceLoaded|is\\\\\\\\.nan|is\\\\\\\\.na\\\\\\\\.numeric_version|is\\\\\\\\.na\\\\\\\\.POSIXlt|is\\\\\\\\.null|is\\\\\\\\.numeric|is\\\\\\\\.numeric\\\\\\\\.Date|is\\\\\\\\.numeric\\\\\\\\.difftime|is\\\\\\\\.numeric\\\\\\\\.POSIXt|is\\\\\\\\.numeric_version|is\\\\\\\\.object|ISOdate|ISOdatetime|isOpen|is\\\\\\\\.ordered|is\\\\\\\\.package_version|is\\\\\\\\.pairlist|is\\\\\\\\.primitive|is\\\\\\\\.qr|is\\\\\\\\.R|is\\\\\\\\.raw|is\\\\\\\\.recursive|isRestart|isS4|isSeekable|is\\\\\\\\.single|is\\\\\\\\.symbol|isSymmetric|isSymmetric\\\\\\\\.matrix|is\\\\\\\\.table|isTRUE|is\\\\\\\\.unsorted|is\\\\\\\\.vector|jitter|julian|julian\\\\\\\\.Date|julian\\\\\\\\.POSIXt|kappa|kappa\\\\\\\\.default|kappa\\\\\\\\.lm|kappa\\\\\\\\.qr|kronecker|l10n_info|labels|labels\\\\\\\\.default|La_library|lapply|La\\\\\\\\.svd|La_version|lazyLoad|lazyLoadDBexec|lazyLoadDBfetch|lbeta|lchoose|length|length\\\\\\\\.POSIXlt|lengths|levels|levels\\\\\\\\.default|lfactorial|lgamma|libcurlVersion|library|library\\\\\\\\.dynam|library\\\\\\\\.dynam\\\\\\\\.unload|licence|license|list|list2DF|list2env|list\\\\\\\\.dirs|list\\\\\\\\.files|load|loadedNamespaces|loadingNamespaceInfo|loadNamespace|local|lockBinding|lockEnvironment|log|log10|log1p|log2|logb|logical|lower\\\\\\\\.tri|ls|makeActiveBinding|make\\\\\\\\.names|make\\\\\\\\.unique|Map|mapply|marginSums|margin\\\\\\\\.table|match|match\\\\\\\\.arg|match\\\\\\\\.call|match\\\\\\\\.fun|Math\\\\\\\\.data\\\\\\\\.frame|Math\\\\\\\\.Date|Math\\\\\\\\.difftime|Math\\\\\\\\.factor|Math\\\\\\\\.POSIXt|mat\\\\\\\\.or\\\\\\\\.vec|matrix|max|max\\\\\\\\.col|mean|mean\\\\\\\\.Date|mean\\\\\\\\.default|mean\\\\\\\\.difftime|mean\\\\\\\\.POSIXct|mean\\\\\\\\.POSIXlt|memCompress|memDecompress|mem\\\\\\\\.maxNSize|mem\\\\\\\\.maxVSize|memory\\\\\\\\.profile|merge|merge\\\\\\\\.data\\\\\\\\.frame|merge\\\\\\\\.default|message|mget|min|missing|Mod|mode|months|months\\\\\\\\.Date|months\\\\\\\\.POSIXt|names|namespaceExport|namespaceImport|namespaceImportClasses|namespaceImportFrom|namespaceImportMethods|names\\\\\\\\.POSIXlt|nargs|nchar|ncol|NCOL|Negate|new\\\\\\\\.env|next|NextMethod|ngettext|nlevels|noquote|norm|normalizePath|nrow|NROW|nullfile|numeric|numeric_version|numToBits|numToInts|nzchar|objects|oldClass|OlsonNames|on\\\\\\\\.exit|open|open\\\\\\\\.connection|open\\\\\\\\.srcfile|open\\\\\\\\.srcfilealias|open\\\\\\\\.srcfilecopy|Ops\\\\\\\\.data\\\\\\\\.frame|Ops\\\\\\\\.Date|Ops\\\\\\\\.difftime|Ops\\\\\\\\.factor|Ops\\\\\\\\.numeric_version|Ops\\\\\\\\.ordered|Ops\\\\\\\\.POSIXt|options|order|ordered|outer|packageEvent|packageHasNamespace|packageNotFoundError|packageStartupMessage|package_version|packBits|pairlist|parent\\\\\\\\.env|parent\\\\\\\\.frame|parse|parseNamespaceFile|paste|paste0|path\\\\\\\\.expand|path\\\\\\\\.package|pcre_config|pi|pipe|plot|pmatch|pmax|pmax\\\\\\\\.int|pmin|pmin\\\\\\\\.int|polyroot|Position|pos\\\\\\\\.to\\\\\\\\.env|pretty|pretty\\\\\\\\.default|prettyNum|print|print\\\\\\\\.AsIs|print\\\\\\\\.by|print\\\\\\\\.condition|print\\\\\\\\.connection|print\\\\\\\\.data\\\\\\\\.frame|print\\\\\\\\.Date|print\\\\\\\\.default|print\\\\\\\\.difftime|print\\\\\\\\.Dlist|print\\\\\\\\.DLLInfo|print\\\\\\\\.DLLInfoList|print\\\\\\\\.DLLRegisteredRoutines|print\\\\\\\\.eigen|print\\\\\\\\.factor|print\\\\\\\\.function|print\\\\\\\\.hexmode|print\\\\\\\\.libraryIQR|print\\\\\\\\.listof|print\\\\\\\\.NativeRoutineList|print\\\\\\\\.noquote|print\\\\\\\\.numeric_version|print\\\\\\\\.octmode|print\\\\\\\\.packageInfo|print\\\\\\\\.POSIXct|print\\\\\\\\.POSIXlt|print\\\\\\\\.proc_time|print\\\\\\\\.restart|print\\\\\\\\.rle|print\\\\\\\\.simple\\\\\\\\.list|print\\\\\\\\.srcfile|print\\\\\\\\.srcref|print\\\\\\\\.summaryDefault|print\\\\\\\\.summary\\\\\\\\.table|print\\\\\\\\.summary\\\\\\\\.warnings|print\\\\\\\\.table|print\\\\\\\\.warnings|prmatrix|proc\\\\\\\\.time|prod|proportions|prop\\\\\\\\.table|provideDimnames|psigamma|pushBack|pushBackLength|q|qr|qr\\\\\\\\.coef|qr\\\\\\\\.default|qr\\\\\\\\.fitted|qr\\\\\\\\.Q|qr\\\\\\\\.qty|qr\\\\\\\\.qy|qr\\\\\\\\.R|qr\\\\\\\\.resid|qr\\\\\\\\.solve|qr\\\\\\\\.X|quarters|quarters\\\\\\\\.Date|quarters\\\\\\\\.POSIXt|quit|quote|range|range\\\\\\\\.default|rank|rapply|raw|rawConnection|rawConnectionValue|rawShift|rawToBits|rawToChar|rbind|rbind\\\\\\\\.data\\\\\\\\.frame|rcond|Re|readBin|readChar|read\\\\\\\\.dcf|readline|readLines|readRDS|readRenviron|Recall|Reduce|regexec|regexpr|reg\\\\\\\\.finalizer|registerS3method|registerS3methods|regmatches|remove|removeTaskCallback|rep|rep\\\\\\\\.Date|rep\\\\\\\\.difftime|repeat|rep\\\\\\\\.factor|rep\\\\\\\\.int|replace|rep_len|replicate|rep\\\\\\\\.numeric_version|rep\\\\\\\\.POSIXct|rep\\\\\\\\.POSIXlt|require|requireNamespace|restartDescription|restartFormals|retracemem|return|returnValue|rev|rev\\\\\\\\.default|R\\\\\\\\.home|rle|rm|RNGkind|RNGversion|round|round\\\\\\\\.Date|round\\\\\\\\.POSIXt|row|rowMeans|rownames|row\\\\\\\\.names|row\\\\\\\\.names\\\\\\\\.data\\\\\\\\.frame|row\\\\\\\\.names\\\\\\\\.default|rowsum|rowsum\\\\\\\\.data\\\\\\\\.frame|rowsum\\\\\\\\.default|rowSums|R_system_version|R\\\\\\\\.version|R\\\\\\\\.Version|R\\\\\\\\.version\\\\\\\\.string|sample|sample\\\\\\\\.int|sapply|save|save\\\\\\\\.image|saveRDS|scale|scale\\\\\\\\.default|scan|search|searchpaths|seek|seek\\\\\\\\.connection|seq|seq_along|seq\\\\\\\\.Date|seq\\\\\\\\.default|seq\\\\\\\\.int|seq_len|seq\\\\\\\\.POSIXt|sequence|sequence\\\\\\\\.default|serialize|serverSocket|setdiff|setequal|setHook|setNamespaceInfo|set\\\\\\\\.seed|setSessionTimeLimit|setTimeLimit|setwd|showConnections|shQuote|sign|signalCondition|signif|simpleCondition|simpleError|simpleMessage|simpleWarning|simplify2array|sin|single|sinh|sink|sink\\\\\\\\.number|sinpi|slice\\\\\\\\.index|socketAccept|socketConnection|socketSelect|socketTimeout|solve|solve\\\\\\\\.default|solve\\\\\\\\.qr|sort|sort\\\\\\\\.default|sort\\\\\\\\.int|sort\\\\\\\\.list|sort\\\\\\\\.POSIXlt|source|split|split\\\\\\\\.data\\\\\\\\.frame|split\\\\\\\\.Date|split\\\\\\\\.default|split\\\\\\\\.POSIXct|sprintf|sqrt|sQuote|srcfile|srcfilealias|srcfilecopy|srcref|standardGeneric|startsWith|stderr|stdin|stdout|stop|stopifnot|storage\\\\\\\\.mode|str2expression|str2lang|strftime|strptime|strrep|strsplit|strtoi|strtrim|structure|strwrap|sub|subset|subset\\\\\\\\.data\\\\\\\\.frame|subset\\\\\\\\.default|subset\\\\\\\\.matrix|substitute|substr|substring|sum|summary|summary\\\\\\\\.connection|summary\\\\\\\\.data\\\\\\\\.frame|Summary\\\\\\\\.data\\\\\\\\.frame|summary\\\\\\\\.Date|Summary\\\\\\\\.Date|summary\\\\\\\\.default|Summary\\\\\\\\.difftime|summary\\\\\\\\.factor|Summary\\\\\\\\.factor|summary\\\\\\\\.matrix|Summary\\\\\\\\.numeric_version|Summary\\\\\\\\.ordered|summary\\\\\\\\.POSIXct|Summary\\\\\\\\.POSIXct|summary\\\\\\\\.POSIXlt|Summary\\\\\\\\.POSIXlt|summary\\\\\\\\.proc_time|summary\\\\\\\\.srcfile|summary\\\\\\\\.srcref|summary\\\\\\\\.table|summary\\\\\\\\.warnings|suppressMessages|suppressPackageStartupMessages|suppressWarnings|suspendInterrupts|svd|sweep|switch|sys\\\\\\\\.call|sys\\\\\\\\.calls|Sys\\\\\\\\.chmod|Sys\\\\\\\\.Date|sys\\\\\\\\.frame|sys\\\\\\\\.frames|sys\\\\\\\\.function|Sys\\\\\\\\.getenv|Sys\\\\\\\\.getlocale|Sys\\\\\\\\.getpid|Sys\\\\\\\\.glob|Sys\\\\\\\\.info|sys\\\\\\\\.load\\\\\\\\.image|Sys\\\\\\\\.localeconv|sys\\\\\\\\.nframe|sys\\\\\\\\.on\\\\\\\\.exit|sys\\\\\\\\.parent|sys\\\\\\\\.parents|Sys\\\\\\\\.readlink|sys\\\\\\\\.save\\\\\\\\.image|Sys\\\\\\\\.setenv|Sys\\\\\\\\.setFileTime|Sys\\\\\\\\.setlocale|Sys\\\\\\\\.sleep|sys\\\\\\\\.source|sys\\\\\\\\.status|system|system2|system\\\\\\\\.file|system\\\\\\\\.time|Sys\\\\\\\\.time|Sys\\\\\\\\.timezone|Sys\\\\\\\\.umask|Sys\\\\\\\\.unsetenv|Sys\\\\\\\\.which|t|table|tabulate|tan|tanh|tanpi|tapply|taskCallbackManager|tcrossprod|t\\\\\\\\.data\\\\\\\\.frame|t\\\\\\\\.default|tempdir|tempfile|textConnection|textConnectionValue|tolower|topenv|toString|toString\\\\\\\\.default|toupper|trace|traceback|tracemem|tracingState|transform|transform\\\\\\\\.data\\\\\\\\.frame|transform\\\\\\\\.default|trigamma|trimws|trunc|truncate|truncate\\\\\\\\.connection|trunc\\\\\\\\.Date|trunc\\\\\\\\.POSIXt|try|tryCatch|tryInvokeRestart|typeof|unclass|undebug|union|unique|unique\\\\\\\\.array|unique\\\\\\\\.data\\\\\\\\.frame|unique\\\\\\\\.default|unique\\\\\\\\.matrix|unique\\\\\\\\.numeric_version|unique\\\\\\\\.POSIXlt|unique\\\\\\\\.warnings|units|units\\\\\\\\.difftime|unix\\\\\\\\.time|unlink|unlist|unloadNamespace|unlockBinding|unname|unserialize|unsplit|untrace|untracemem|unz|upper\\\\\\\\.tri|url|UseMethod|utf8ToInt|validEnc|validUTF8|vapply|vector|Vectorize|version|warning|warningCondition|warnings|weekdays|weekdays\\\\\\\\.Date|weekdays\\\\\\\\.POSIXt|which|which\\\\\\\\.max|which\\\\\\\\.min|while|with|withAutoprint|withCallingHandlers|with\\\\\\\\.default|within|within\\\\\\\\.data\\\\\\\\.frame|within\\\\\\\\.list|withRestarts|withVisible|write|writeBin|writeChar|write\\\\\\\\.dcf|writeLines|xor|xpdrows\\\\\\\\.data\\\\\\\\.frame|xtfrm|xtfrm\\\\\\\\.AsIs|xtfrm\\\\\\\\.data\\\\\\\\.frame|xtfrm\\\\\\\\.Date|xtfrm\\\\\\\\.default|xtfrm\\\\\\\\.difftime|xtfrm\\\\\\\\.factor|xtfrm\\\\\\\\.numeric_version|xtfrm\\\\\\\\.POSIXct|xtfrm\\\\\\\\.POSIXlt|xzfile|zapsmall)\\\\\\\\s*(\\\\\\\\()\"},{\"captures\":{\"1\":{\"name\":\"support.function.r\"}},\"match\":\"\\\\\\\\b(abline|arrows|assocplot|axis|Axis|axis\\\\\\\\.Date|axis\\\\\\\\.POSIXct|axTicks|barplot|barplot\\\\\\\\.default|box|boxplot|boxplot\\\\\\\\.default|boxplot\\\\\\\\.matrix|bxp|cdplot|clip|close\\\\\\\\.screen|co\\\\\\\\.intervals|contour|contour\\\\\\\\.default|coplot|curve|dotchart|erase\\\\\\\\.screen|filled\\\\\\\\.contour|fourfoldplot|frame|grconvertX|grconvertY|grid|hist|hist\\\\\\\\.default|identify|image|image\\\\\\\\.default|layout|layout\\\\\\\\.show|lcm|legend|lines|lines\\\\\\\\.default|locator|matlines|matplot|matpoints|mosaicplot|mtext|pairs|pairs\\\\\\\\.default|panel\\\\\\\\.smooth|par|persp|pie|plot|plot\\\\\\\\.default|plot\\\\\\\\.design|plot\\\\\\\\.function|plot\\\\\\\\.new|plot\\\\\\\\.window|plot\\\\\\\\.xy|points|points\\\\\\\\.default|polygon|polypath|rasterImage|rect|rug|screen|segments|smoothScatter|spineplot|split\\\\\\\\.screen|stars|stem|strheight|stripchart|strwidth|sunflowerplot|symbols|text|text\\\\\\\\.default|title|xinch|xspline|xyinch|yinch)\\\\\\\\s*(\\\\\\\\()\"},{\"captures\":{\"1\":{\"name\":\"support.function.r\"}},\"match\":\"\\\\\\\\b(adjustcolor|as\\\\\\\\.graphicsAnnot|as\\\\\\\\.raster|axisTicks|bitmap|blues9|bmp|boxplot\\\\\\\\.stats|cairo_pdf|cairo_ps|cairoSymbolFont|check\\\\\\\\.options|chull|CIDFont|cm|cm\\\\\\\\.colors|col2rgb|colorConverter|colorRamp|colorRampPalette|colors|colorspaces|colours|contourLines|convertColor|densCols|dev2bitmap|devAskNewPage|dev\\\\\\\\.capabilities|dev\\\\\\\\.capture|dev\\\\\\\\.control|dev\\\\\\\\.copy|dev\\\\\\\\.copy2eps|dev\\\\\\\\.copy2pdf|dev\\\\\\\\.cur|dev\\\\\\\\.flush|dev\\\\\\\\.hold|deviceIsInteractive|dev\\\\\\\\.interactive|dev\\\\\\\\.list|dev\\\\\\\\.new|dev\\\\\\\\.next|dev\\\\\\\\.off|dev\\\\\\\\.prev|dev\\\\\\\\.print|dev\\\\\\\\.set|dev\\\\\\\\.size|embedFonts|extendrange|getGraphicsEvent|getGraphicsEventEnv|graphics\\\\\\\\.off|gray|gray\\\\\\\\.colors|grey|grey\\\\\\\\.colors|grSoftVersion|hcl|hcl\\\\\\\\.colors|hcl\\\\\\\\.pals|heat\\\\\\\\.colors|Hershey|hsv|is\\\\\\\\.raster|jpeg|make\\\\\\\\.rgb|n2mfrow|nclass\\\\\\\\.FD|nclass\\\\\\\\.scott|nclass\\\\\\\\.Sturges|palette|palette\\\\\\\\.colors|palette\\\\\\\\.pals|pdf|pdfFonts|pdf\\\\\\\\.options|pictex|png|postscript|postscriptFonts|ps\\\\\\\\.options|quartz|quartzFont|quartzFonts|quartz\\\\\\\\.options|quartz\\\\\\\\.save|rainbow|recordGraphics|recordPlot|replayPlot|rgb|rgb2hsv|savePlot|setEPS|setGraphicsEventEnv|setGraphicsEventHandlers|setPS|svg|terrain\\\\\\\\.colors|tiff|topo\\\\\\\\.colors|trans3d|Type1Font|x11|X11|X11Font|X11Fonts|X11\\\\\\\\.options|xfig|xy\\\\\\\\.coords|xyTable|xyz\\\\\\\\.coords)\\\\\\\\s*(\\\\\\\\()\"},{\"captures\":{\"1\":{\"name\":\"support.function.r\"}},\"match\":\"\\\\\\\\b(addNextMethod|allNames|Arith|as|asMethodDefinition|assignClassDef|assignMethodsMetaData|balanceMethodsList|cacheGenericsMetaData|cacheMetaData|cacheMethod|callGeneric|callNextMethod|canCoerce|cbind2|checkAtAssignment|checkSlotAssignment|classesToAM|classLabel|classMetaName|className|coerce|Compare|completeClassDefinition|completeExtends|completeSubclasses|Complex|conformMethod|defaultDumpName|defaultPrototype|doPrimitiveMethod|dumpMethod|dumpMethods|el|elNamed|empty\\\\\\\\.dump|emptyMethodsList|evalOnLoad|evalqOnLoad|evalSource|existsFunction|existsMethod|extends|externalRefMethod|finalDefaultMethod|findClass|findFunction|findMethod|findMethods|findMethodSignatures|findUnique|fixPre1\\\\\\\\.8|formalArgs|functionBody|generic\\\\\\\\.skeleton|getAllSuperClasses|getClass|getClassDef|getClasses|getDataPart|getFunction|getGeneric|getGenerics|getGroup|getGroupMembers|getLoadActions|getMethod|getMethods|getMethodsForDispatch|getMethodsMetaData|getPackageName|getRefClass|getSlots|getValidity|hasArg|hasLoadAction|hasMethod|hasMethods|implicitGeneric|inheritedSlotNames|initFieldArgs|initialize|initRefFields|insertClassMethods|insertMethod|insertSource|is|isClass|isClassDef|isClassUnion|isGeneric|isGrammarSymbol|isGroup|isRematched|isSealedClass|isSealedMethod|isVirtualClass|isXS3Class|kronecker|languageEl|linearizeMlist|listFromMethods|listFromMlist|loadMethod|Logic|makeClassRepresentation|makeExtends|makeGeneric|makeMethodsList|makePrototypeFromClassDef|makeStandardGeneric|matchSignature|Math|Math2|mergeMethods|metaNameUndo|MethodAddCoerce|methodSignatureMatrix|method\\\\\\\\.skeleton|MethodsList|MethodsListSelect|methodsPackageMetaName|missingArg|multipleClasses|new|newBasic|newClassRepresentation|newEmptyObject|Ops|packageSlot|possibleExtends|prohibitGeneric|promptClass|promptMethods|prototype|Quote|rbind2|reconcilePropertiesAndPrototype|registerImplicitGenerics|rematchDefinition|removeClass|removeGeneric|removeMethod|removeMethods|representation|requireMethods|resetClass|resetGeneric|S3Class|S3Part|sealClass|selectMethod|selectSuperClasses|setAs|setClass|setClassUnion|setDataPart|setGeneric|setGenericImplicit|setGroupGeneric|setIs|setLoadAction|setLoadActions|setMethod|setOldClass|setPackageName|setPrimitiveMethods|setRefClass|setReplaceMethod|setValidity|show|showClass|showDefault|showExtends|showMethods|showMlist|signature|SignatureMethod|sigToEnv|slot|slotNames|slotsFromS3|substituteDirect|substituteFunctionArgs|Summary|superClassDepth|testInheritedMethods|testVirtual|tryNew|unRematchDefinition|validObject|validSlotNames)\\\\\\\\s*(\\\\\\\\()\"},{\"captures\":{\"1\":{\"name\":\"support.function.r\"}},\"match\":\"\\\\\\\\b(acf|acf2AR|add1|addmargins|add\\\\\\\\.scope|aggregate|aggregate\\\\\\\\.data\\\\\\\\.frame|aggregate\\\\\\\\.ts|AIC|alias|anova|ansari\\\\\\\\.test|aov|approx|approxfun|ar|ar\\\\\\\\.burg|arima|arima0|arima0\\\\\\\\.diag|arima\\\\\\\\.sim|ARMAacf|ARMAtoMA|ar\\\\\\\\.mle|ar\\\\\\\\.ols|ar\\\\\\\\.yw|as\\\\\\\\.dendrogram|as\\\\\\\\.dist|as\\\\\\\\.formula|as\\\\\\\\.hclust|asOneSidedFormula|as\\\\\\\\.stepfun|as\\\\\\\\.ts|ave|bandwidth\\\\\\\\.kernel|bartlett\\\\\\\\.test|BIC|binomial|binom\\\\\\\\.test|biplot|Box\\\\\\\\.test|bw\\\\\\\\.bcv|bw\\\\\\\\.nrd|bw\\\\\\\\.nrd0|bw\\\\\\\\.SJ|bw\\\\\\\\.ucv|C|cancor|case\\\\\\\\.names|ccf|chisq\\\\\\\\.test|cmdscale|coef|coefficients|complete\\\\\\\\.cases|confint|confint\\\\\\\\.default|confint\\\\\\\\.lm|constrOptim|contrasts|contr\\\\\\\\.helmert|contr\\\\\\\\.poly|contr\\\\\\\\.SAS|contr\\\\\\\\.sum|contr\\\\\\\\.treatment|convolve|cooks\\\\\\\\.distance|cophenetic|cor|cor\\\\\\\\.test|cov|cov2cor|covratio|cov\\\\\\\\.wt|cpgram|cutree|cycle|D|dbeta|dbinom|dcauchy|dchisq|decompose|delete\\\\\\\\.response|deltat|dendrapply|density|density\\\\\\\\.default|deriv|deriv3|deviance|dexp|df|DF2formula|dfbeta|dfbetas|dffits|df\\\\\\\\.kernel|df\\\\\\\\.residual|dgamma|dgeom|dhyper|diffinv|dist|dlnorm|dlogis|dmultinom|dnbinom|dnorm|dpois|drop1|drop\\\\\\\\.scope|drop\\\\\\\\.terms|dsignrank|dt|dummy\\\\\\\\.coef|dummy\\\\\\\\.coef\\\\\\\\.lm|dunif|dweibull|dwilcox|ecdf|eff\\\\\\\\.aovlist|effects|embed|end|estVar|expand\\\\\\\\.model\\\\\\\\.frame|extractAIC|factanal|factor\\\\\\\\.scope|family|fft|filter|fisher\\\\\\\\.test|fitted|fitted\\\\\\\\.values|fivenum|fligner\\\\\\\\.test|formula|frequency|friedman\\\\\\\\.test|ftable|Gamma|gaussian|get_all_vars|getCall|getInitial|glm|glm\\\\\\\\.control|glm\\\\\\\\.fit|hasTsp|hat|hatvalues|hclust|heatmap|HoltWinters|influence|influence\\\\\\\\.measures|integrate|interaction\\\\\\\\.plot|inverse\\\\\\\\.gaussian|IQR|is\\\\\\\\.empty\\\\\\\\.model|is\\\\\\\\.leaf|is\\\\\\\\.mts|isoreg|is\\\\\\\\.stepfun|is\\\\\\\\.ts|is\\\\\\\\.tskernel|KalmanForecast|KalmanLike|KalmanRun|KalmanSmooth|kernapply|kernel|kmeans|knots|kruskal\\\\\\\\.test|ksmooth|ks\\\\\\\\.test|lag|lag\\\\\\\\.plot|line|lm|lm\\\\\\\\.fit|lm\\\\\\\\.influence|lm\\\\\\\\.wfit|loadings|loess|loess\\\\\\\\.control|loess\\\\\\\\.smooth|logLik|loglin|lowess|ls\\\\\\\\.diag|lsfit|ls\\\\\\\\.print|mad|mahalanobis|makeARIMA|make\\\\\\\\.link|makepredictcall|manova|mantelhaen\\\\\\\\.test|mauchly\\\\\\\\.test|mcnemar\\\\\\\\.test|median|median\\\\\\\\.default|medpolish|model\\\\\\\\.extract|model\\\\\\\\.frame|model\\\\\\\\.frame\\\\\\\\.default|model\\\\\\\\.matrix|model\\\\\\\\.matrix\\\\\\\\.default|model\\\\\\\\.matrix\\\\\\\\.lm|model\\\\\\\\.offset|model\\\\\\\\.response|model\\\\\\\\.tables|model\\\\\\\\.weights|monthplot|mood\\\\\\\\.test|mvfft|na\\\\\\\\.action|na\\\\\\\\.contiguous|na\\\\\\\\.exclude|na\\\\\\\\.fail|na\\\\\\\\.omit|na\\\\\\\\.pass|napredict|naprint|naresid|nextn|nlm|nlminb|nls|nls\\\\\\\\.control|NLSstAsymptotic|NLSstClosestX|NLSstLfAsymptote|NLSstRtAsymptote|nobs|numericDeriv|offset|oneway\\\\\\\\.test|optim|optimHess|optimise|optimize|order\\\\\\\\.dendrogram|pacf|p\\\\\\\\.adjust|p\\\\\\\\.adjust\\\\\\\\.methods|Pair|pairwise\\\\\\\\.prop\\\\\\\\.test|pairwise\\\\\\\\.table|pairwise\\\\\\\\.t\\\\\\\\.test|pairwise\\\\\\\\.wilcox\\\\\\\\.test|pbeta|pbinom|pbirthday|pcauchy|pchisq|pexp|pf|pgamma|pgeom|phyper|plclust|plnorm|plogis|plot\\\\\\\\.ecdf|plot\\\\\\\\.spec\\\\\\\\.coherency|plot\\\\\\\\.spec\\\\\\\\.phase|plot\\\\\\\\.stepfun|plot\\\\\\\\.ts|pnbinom|pnorm|poisson|poisson\\\\\\\\.test|poly|polym|power|power\\\\\\\\.anova\\\\\\\\.test|power\\\\\\\\.prop\\\\\\\\.test|power\\\\\\\\.t\\\\\\\\.test|ppoints|ppois|ppr|PP\\\\\\\\.test|prcomp|predict|predict\\\\\\\\.glm|predict\\\\\\\\.lm|preplot|princomp|printCoefmat|profile|proj|promax|prop\\\\\\\\.test|prop\\\\\\\\.trend\\\\\\\\.test|psignrank|pt|ptukey|punif|pweibull|pwilcox|qbeta|qbinom|qbirthday|qcauchy|qchisq|qexp|qf|qgamma|qgeom|qhyper|qlnorm|qlogis|qnbinom|qnorm|qpois|qqline|qqnorm|qqplot|qsignrank|qt|qtukey|quade\\\\\\\\.test|quantile|quasi|quasibinomial|quasipoisson|qunif|qweibull|qwilcox|r2dtable|rbeta|rbinom|rcauchy|rchisq|read\\\\\\\\.ftable|rect\\\\\\\\.hclust|reformulate|relevel|reorder|replications|reshape|resid|residuals|residuals\\\\\\\\.glm|residuals\\\\\\\\.lm|rexp|rf|rgamma|rgeom|rhyper|rlnorm|rlogis|rmultinom|rnbinom|rnorm|rpois|rsignrank|rstandard|rstudent|rt|runif|runmed|rweibull|rwilcox|rWishart|scatter\\\\\\\\.smooth|screeplot|sd|se\\\\\\\\.contrast|selfStart|setNames|shapiro\\\\\\\\.test|sigma|simulate|smooth|smoothEnds|smooth\\\\\\\\.spline|sortedXyData|spec\\\\\\\\.ar|spec\\\\\\\\.pgram|spec\\\\\\\\.taper|spectrum|spline|splinefun|splinefunH|SSasymp|SSasympOff|SSasympOrig|SSbiexp|SSD|SSfol|SSfpl|SSgompertz|SSlogis|SSmicmen|SSweibull|start|stat\\\\\\\\.anova|step|stepfun|stl|StructTS|summary\\\\\\\\.aov|summary\\\\\\\\.glm|summary\\\\\\\\.lm|summary\\\\\\\\.manova|summary\\\\\\\\.stepfun|supsmu|symnum|termplot|terms|terms\\\\\\\\.formula|time|toeplitz|ts|tsdiag|ts\\\\\\\\.intersect|tsp|ts\\\\\\\\.plot|tsSmooth|ts\\\\\\\\.union|t\\\\\\\\.test|TukeyHSD|uniroot|update|update\\\\\\\\.default|update\\\\\\\\.formula|var|variable\\\\\\\\.names|varimax|var\\\\\\\\.test|vcov|weighted\\\\\\\\.mean|weighted\\\\\\\\.residuals|weights|wilcox\\\\\\\\.test|window|write\\\\\\\\.ftable|xtabs)\\\\\\\\s*(\\\\\\\\()\"},{\"captures\":{\"1\":{\"name\":\"support.function.r\"}},\"match\":\"\\\\\\\\b(adist|alarm|apropos|aregexec|argsAnywhere|asDateBuilt|askYesNo|aspell|aspell_package_C_files|aspell_package_Rd_files|aspell_package_R_files|aspell_package_vignettes|aspell_write_personal_dictionary_file|as\\\\\\\\.person|as\\\\\\\\.personList|as\\\\\\\\.relistable|as\\\\\\\\.roman|assignInMyNamespace|assignInNamespace|available\\\\\\\\.packages|bibentry|browseEnv|browseURL|browseVignettes|bug\\\\\\\\.report|capture\\\\\\\\.output|changedFiles|charClass|checkCRAN|chooseBioCmirror|chooseCRANmirror|citation|cite|citeNatbib|citEntry|citFooter|citHeader|close\\\\\\\\.socket|combn|compareVersion|contrib\\\\\\\\.url|count\\\\\\\\.fields|create\\\\\\\\.post|data|dataentry|data\\\\\\\\.entry|de|debugcall|debugger|demo|de\\\\\\\\.ncols|de\\\\\\\\.restore|de\\\\\\\\.setup|download\\\\\\\\.file|download\\\\\\\\.packages|dump\\\\\\\\.frames|edit|emacs|example|file\\\\\\\\.edit|fileSnapshot|file_test|find|findLineNum|fix|fixInNamespace|flush\\\\\\\\.console|formatOL|formatUL|getAnywhere|getCRANmirrors|getFromNamespace|getParseData|getParseText|getS3method|getSrcDirectory|getSrcFilename|getSrcLocation|getSrcref|getTxtProgressBar|glob2rx|globalVariables|hasName|head|head\\\\\\\\.matrix|help|help\\\\\\\\.request|help\\\\\\\\.search|help\\\\\\\\.start|history|hsearch_db|hsearch_db_concepts|hsearch_db_keywords|installed\\\\\\\\.packages|install\\\\\\\\.packages|is\\\\\\\\.relistable|isS3method|isS3stdGeneric|limitedLabels|loadhistory|localeToCharset|lsf\\\\\\\\.str|ls\\\\\\\\.str|maintainer|make\\\\\\\\.packages\\\\\\\\.html|makeRweaveLatexCodeRunner|make\\\\\\\\.socket|memory\\\\\\\\.limit|memory\\\\\\\\.size|menu|methods|mirror2html|modifyList|new\\\\\\\\.packages|news|nsl|object\\\\\\\\.size|old\\\\\\\\.packages|osVersion|packageDate|packageDescription|packageName|package\\\\\\\\.skeleton|packageStatus|packageVersion|page|person|personList|pico|process\\\\\\\\.events|prompt|promptData|promptImport|promptPackage|rc\\\\\\\\.getOption|rc\\\\\\\\.options|rc\\\\\\\\.settings|rc\\\\\\\\.status|readCitationFile|read\\\\\\\\.csv|read\\\\\\\\.csv2|read\\\\\\\\.delim|read\\\\\\\\.delim2|read\\\\\\\\.DIF|read\\\\\\\\.fortran|read\\\\\\\\.fwf|read\\\\\\\\.socket|read\\\\\\\\.table|recover|relist|remove\\\\\\\\.packages|removeSource|Rprof|Rprofmem|RShowDoc|RSiteSearch|rtags|Rtangle|RtangleFinish|RtangleRuncode|RtangleSetup|RtangleWritedoc|RweaveChunkPrefix|RweaveEvalWithOpt|RweaveLatex|RweaveLatexFinish|RweaveLatexOptions|RweaveLatexSetup|RweaveLatexWritedoc|RweaveTryStop|savehistory|select\\\\\\\\.list|sessionInfo|setBreakpoint|setRepositories|setTxtProgressBar|stack|Stangle|str|strcapture|strOptions|summaryRprof|suppressForeignCheck|Sweave|SweaveHooks|SweaveSyntaxLatex|SweaveSyntaxNoweb|SweaveSyntConv|tail|tail\\\\\\\\.matrix|tar|timestamp|toBibtex|toLatex|txtProgressBar|type\\\\\\\\.convert|undebugcall|unstack|untar|unzip|update\\\\\\\\.packages|upgrade|URLdecode|URLencode|url\\\\\\\\.show|vi|View|vignette|warnErrList|write\\\\\\\\.csv|write\\\\\\\\.csv2|write\\\\\\\\.socket|write\\\\\\\\.table|xedit|xemacs|zip)\\\\\\\\s*(\\\\\\\\()\"}]},\"comments\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.line.pragma.r\"},\"2\":{\"name\":\"entity.name.pragma.name.r\"}},\"match\":\"^(#pragma[ \\\\\\\\t]+mark)[ \\\\\\\\t](.*)\",\"name\":\"comment.line.pragma-mark.r\"},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.r\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.r\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.number-sign.r\"}]}]},\"constants\":{\"patterns\":[{\"match\":\"\\\\\\\\b(pi|letters|LETTERS|month\\\\\\\\.abb|month\\\\\\\\.name)\\\\\\\\b\",\"name\":\"support.constant.misc.r\"},{\"match\":\"\\\\\\\\b(TRUE|FALSE|NULL|NA|NA_integer_|NA_real_|NA_complex_|NA_character_|Inf|NaN)\\\\\\\\b\",\"name\":\"constant.language.r\"},{\"match\":\"\\\\\\\\b0(x|X)[0-9a-fA-F]+i\\\\\\\\b\",\"name\":\"constant.numeric.imaginary.hexadecimal.r\"},{\"match\":\"\\\\\\\\b[0-9]+\\\\\\\\.?[0-9]*(?:(e|E)(\\\\\\\\+|-)?[0-9]+)?i\\\\\\\\b\",\"name\":\"constant.numeric.imaginary.decimal.r\"},{\"match\":\"\\\\\\\\.[0-9]+(?:(e|E)(\\\\\\\\+|-)?[0-9]+)?i\\\\\\\\b\",\"name\":\"constant.numeric.imaginary.decimal.r\"},{\"match\":\"\\\\\\\\b0(x|X)[0-9a-fA-F]+L\\\\\\\\b\",\"name\":\"constant.numeric.integer.hexadecimal.r\"},{\"match\":\"\\\\\\\\b(?:[0-9]+\\\\\\\\.?[0-9]*)(?:(e|E)(\\\\\\\\+|-)?[0-9]+)?L\\\\\\\\b\",\"name\":\"constant.numeric.integer.decimal.r\"},{\"match\":\"\\\\\\\\b0(x|X)[0-9a-fA-F]+\\\\\\\\b\",\"name\":\"constant.numeric.float.hexadecimal.r\"},{\"match\":\"\\\\\\\\b[0-9]+\\\\\\\\.?[0-9]*(?:(e|E)(\\\\\\\\+|-)?[0-9]+)?\\\\\\\\b\",\"name\":\"constant.numeric.float.decimal.r\"},{\"match\":\"\\\\\\\\.[0-9]+(?:(e|E)(\\\\\\\\+|-)?[0-9]+)?\\\\\\\\b\",\"name\":\"constant.numeric.float.decimal.r\"}]},\"function-calls\":{\"begin\":\"(?:\\\\\\\\b|(?=\\\\\\\\.))((?:[a-zA-Z._][\\\\\\\\w.]*|`[^`]+`))\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"variable.function.r\"},\"2\":{\"name\":\"punctuation.section.parens.begin.r\"}},\"contentName\":\"meta.function-call.arguments.r\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.parens.end.r\"}},\"name\":\"meta.function-call.r\",\"patterns\":[{\"include\":\"#function-parameters\"}]},\"function-declarations\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.function.r\"},\"2\":{\"name\":\"keyword.operator.assignment.r\"},\"3\":{\"name\":\"keyword.control.r\"}},\"match\":\"((?:`[^`\\\\\\\\\\\\\\\\]*(?:\\\\\\\\\\\\\\\\.[^`\\\\\\\\\\\\\\\\]*)*`)|(?:[[:alpha:].][[:alnum:]._]*))\\\\\\\\s*(<?<-|=(?!=))\\\\\\\\s*(function|\\\\\\\\\\\\\\\\)(?!\\\\\\\\w)\",\"name\":\"meta.function.r\",\"patterns\":[{\"include\":\"#lambda-functions\"}]}]},\"function-parameters\":{\"patterns\":[{\"contentName\":\"meta.function-call.parameters.r\",\"name\":\"meta.function-call.r\"},{\"match\":\"(?:[a-zA-Z._][\\\\\\\\w.]*|`[^`]+`)(?=\\\\\\\\s[^=])\",\"name\":\"variable.other.r\"},{\"begin\":\"(?==)\",\"end\":\"(?=[,)])\",\"patterns\":[{\"include\":\"source.r\"}]},{\"match\":\",\",\"name\":\"punctuation.separator.parameters.r\"},{\"include\":\"source.r\"}]},\"general-variables\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.parameter.r\"},\"2\":{\"name\":\"keyword.operator.assignment.r\"}},\"match\":\"([[:alpha:].][[:alnum:]._]*)\\\\\\\\s*(=)(?=[^=])\"},{\"captures\":{\"1\":{\"name\":\"variable.parameter.r\"},\"2\":{\"name\":\"keyword.operator.assignment.r\"}},\"match\":\"(`[^`]+`)\\\\\\\\s*(=)(?=[^=])\"},{\"match\":\"\\\\\\\\b([\\\\\\\\d_][[:alnum:]._]+)\\\\\\\\b\",\"name\":\"invalid.illegal.variable.other.r\"},{\"match\":\"\\\\\\\\b([[:alnum:]_]+)(?=::)\",\"name\":\"entity.namespace.r\"}]},\"keywords\":{\"patterns\":[{\"match\":\"\\\\\\\\b(break|next|repeat|else|in)\\\\\\\\b\",\"name\":\"keyword.control.r\"},{\"match\":\"\\\\\\\\b(ifelse|if|for|return|switch|while|invisible)\\\\\\\\b(?=\\\\\\\\s*\\\\\\\\()\",\"name\":\"keyword.control.r\"},{\"match\":\"(\\\\\\\\-|\\\\\\\\+|\\\\\\\\*|\\\\\\\\/|%\\\\\\\\/%|%%|%\\\\\\\\*%|%o%|%x%|\\\\\\\\^)\",\"name\":\"keyword.operator.arithmetic.r\"},{\"match\":\"(:=|<-|<<-|->|->>)\",\"name\":\"keyword.operator.assignment.r\"},{\"match\":\"(==|<=|>=|!=|<>|<|>|%in%)\",\"name\":\"keyword.operator.comparison.r\"},{\"match\":\"(!|&{1,2}|[|]{1,2})\",\"name\":\"keyword.operator.logical.r\"},{\"match\":\"(\\\\\\\\|>)\",\"name\":\"keyword.operator.pipe.r\"},{\"match\":\"(%between%|%chin%|%like%|%\\\\\\\\+%|%\\\\\\\\+replace%|%:%|%do%|%dopar%|%>%|%<>%|%T>%|%\\\\\\\\$%)\",\"name\":\"keyword.operator.other.r\"},{\"match\":\"(\\\\\\\\.\\\\\\\\.\\\\\\\\.|\\\\\\\\$|:|\\\\\\\\~|@)\",\"name\":\"keyword.other.r\"}]},\"lambda-functions\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(function)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.r\"},\"2\":{\"name\":\"punctuation.section.parens.begin.r\"}},\"contentName\":\"meta.function.parameters.r\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.r\"}},\"name\":\"meta.function.r\",\"patterns\":[{\"include\":\"#comments\"},{\"match\":\"(?:[a-zA-Z._][\\\\\\\\w.]*|`[^`]+`)\",\"name\":\"variable.other.r\"},{\"begin\":\"(?==)\",\"end\":\"(?=[,)])\",\"patterns\":[{\"include\":\"source.r\"}]},{\"match\":\",\",\"name\":\"punctuation.separator.parameters.r\"}]}]},\"roxygen\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*(#\\')\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.r\"}},\"end\":\"$\\\\\\\\n?\",\"name\":\"comment.line.roxygen.r\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.r\"},\"2\":{\"name\":\"variable.parameter.r\"}},\"match\":\"(@param)\\\\\\\\s*((?:[a-zA-Z._][\\\\\\\\w.]*|`[^`]+`))\"},{\"match\":\"@[a-zA-Z0-9]+\",\"name\":\"keyword.other.r\"}]}]},\"storage-type\":{\"patterns\":[{\"match\":\"\\\\\\\\b(character|complex|double|expression|integer|list|logical|numeric|single|raw)\\\\\\\\b(?=\\\\\\\\s*\\\\\\\\()\",\"name\":\"storage.type.r\"}]},\"strings\":{\"patterns\":[{\"begin\":\"[rR]\\\\\"(-*)\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.raw.begin.r\"}},\"end\":\"\\\\\\\\]\\\\\\\\1\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.raw.end.r\"}},\"name\":\"string.quoted.double.raw.r\"},{\"begin\":\"[rR]\\'(-*)\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.raw.begin.r\"}},\"end\":\"\\\\\\\\]\\\\\\\\1\\'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.raw.end.r\"}},\"name\":\"string.quoted.single.raw.r\"},{\"begin\":\"[rR]\\\\\"(-*)\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.raw.begin.r\"}},\"end\":\"\\\\\\\\}\\\\\\\\1\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.raw.end.r\"}},\"name\":\"string.quoted.double.raw.r\"},{\"begin\":\"[rR]\\'(-*)\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.raw.begin.r\"}},\"end\":\"\\\\\\\\}\\\\\\\\1\\'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.raw.end.r\"}},\"name\":\"string.quoted.single.raw.r\"},{\"begin\":\"[rR]\\\\\"(-*)\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.raw.begin.r\"}},\"end\":\"\\\\\\\\)\\\\\\\\1\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.raw.end.r\"}},\"name\":\"string.quoted.double.raw.r\"},{\"begin\":\"[rR]\\'(-*)\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.raw.begin.r\"}},\"end\":\"\\\\\\\\)\\\\\\\\1\\'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.raw.end.r\"}},\"name\":\"string.quoted.single.raw.r\"},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.r\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.r\"}},\"name\":\"string.quoted.double.r\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.r\"}]},{\"begin\":\"\\'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.r\"}},\"end\":\"\\'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.r\"}},\"name\":\"string.quoted.single.r\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.r\"}]}]}},\"scopeName\":\"source.r\"}')),a=[e];export{a as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CyIGOvEh.js",
    "content": "import e from\"./atvbtKCR.js\";const a=Object.freeze(JSON.parse('{\"displayName\":\"Git Rebase Message\",\"name\":\"git-rebase\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.git-rebase\"}},\"match\":\"^\\\\\\\\s*(#).*$\\\\\\\\n?\",\"name\":\"comment.line.number-sign.git-rebase\"},{\"captures\":{\"1\":{\"name\":\"support.function.git-rebase\"},\"2\":{\"name\":\"constant.sha.git-rebase\"},\"3\":{\"name\":\"meta.commit-message.git-rebase\"}},\"match\":\"^\\\\\\\\s*(pick|p|reword|r|edit|e|squash|s|fixup|f|drop|d)\\\\\\\\s+([0-9a-f]+)\\\\\\\\s+(.*)$\",\"name\":\"meta.commit-command.git-rebase\"},{\"captures\":{\"1\":{\"name\":\"support.function.git-rebase\"},\"2\":{\"patterns\":[{\"include\":\"source.shell\"}]}},\"match\":\"^\\\\\\\\s*(exec|x)\\\\\\\\s+(.*)$\",\"name\":\"meta.commit-command.git-rebase\"},{\"captures\":{\"1\":{\"name\":\"support.function.git-rebase\"}},\"match\":\"^\\\\\\\\s*(break|b)\\\\\\\\s*$\",\"name\":\"meta.commit-command.git-rebase\"}],\"scopeName\":\"text.git-rebase\",\"embeddedLangs\":[\"shellscript\"]}')),s=[...e,a];export{s as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CyVeKkvQ.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"`\",close:\"`\",notIn:[\"string\"]},{open:'\"',close:'\"',notIn:[\"string\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"`\",close:\"`\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},n={defaultToken:\"\",tokenPostfix:\".go\",keywords:[\"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\",\"bool\",\"true\",\"false\",\"uint8\",\"uint16\",\"uint32\",\"uint64\",\"int8\",\"int16\",\"int32\",\"int64\",\"float32\",\"float64\",\"complex64\",\"complex128\",\"byte\",\"rune\",\"uint\",\"int\",\"uintptr\",\"string\",\"nil\"],operators:[\"+\",\"-\",\"*\",\"/\",\"%\",\"&\",\"|\",\"^\",\"<<\",\">>\",\"&^\",\"+=\",\"-=\",\"*=\",\"/=\",\"%=\",\"&=\",\"|=\",\"^=\",\"<<=\",\">>=\",\"&^=\",\"&&\",\"||\",\"<-\",\"++\",\"--\",\"==\",\"<\",\">\",\"=\",\"!\",\"!=\",\"<=\",\">=\",\":=\",\"...\",\"(\",\")\",\"\",\"]\",\"{\",\"}\",\",\",\";\",\".\",\":\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/[a-zA-Z_]\\w*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/\\[\\[.*\\]\\]/,\"annotation\"],[/^\\s*#\\w+/,\"keyword\"],[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/\\d*\\d+[eE]([\\-+]?\\d+)?/,\"number.float\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,\"number.hex\"],[/0[0-7']*[0-7]/,\"number.octal\"],[/0[bB][0-1']*[0-1]/,\"number.binary\"],[/\\d[\\d']*/,\"number\"],[/\\d/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",\"@string\"],[/`/,\"string\",\"@rawstring\"],[/'[^\\\\']'/,\"string\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",\"string\"]],[/'/,\"string.invalid\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\/\\*\\*(?!\\/)/,\"comment.doc\",\"@doccomment\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],doccomment:[[/[^\\/*]+/,\"comment.doc\"],[/\\/\\*/,\"comment.doc.invalid\"],[/\\*\\//,\"comment.doc\",\"@pop\"],[/[\\/*]/,\"comment.doc\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string\",\"@pop\"]],rawstring:[[/[^\\`]/,\"string\"],[/`/,\"string\",\"@pop\"]]}};export{e as conf,n as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/CyktbL80.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBorder\":\"#80CBC4\",\"activityBar.background\":\"#0F111A\",\"activityBar.border\":\"#0F111A60\",\"activityBar.dropBackground\":\"#f0717880\",\"activityBar.foreground\":\"#babed8\",\"activityBarBadge.background\":\"#80CBC4\",\"activityBarBadge.foreground\":\"#000000\",\"badge.background\":\"#00000030\",\"badge.foreground\":\"#464B5D\",\"breadcrumb.activeSelectionForeground\":\"#80CBC4\",\"breadcrumb.background\":\"#0F111A\",\"breadcrumb.focusForeground\":\"#babed8\",\"breadcrumb.foreground\":\"#525975\",\"breadcrumbPicker.background\":\"#0F111A\",\"button.background\":\"#717CB450\",\"button.foreground\":\"#ffffff\",\"debugConsole.errorForeground\":\"#f07178\",\"debugConsole.infoForeground\":\"#89DDFF\",\"debugConsole.warningForeground\":\"#FFCB6B\",\"debugToolBar.background\":\"#0F111A\",\"diffEditor.insertedTextBackground\":\"#89DDFF20\",\"diffEditor.removedTextBackground\":\"#ff9cac20\",\"dropdown.background\":\"#0F111A\",\"dropdown.border\":\"#FFFFFF10\",\"editor.background\":\"#0F111A\",\"editor.findMatchBackground\":\"#000000\",\"editor.findMatchBorder\":\"#80CBC4\",\"editor.findMatchHighlight\":\"#babed8\",\"editor.findMatchHighlightBackground\":\"#00000050\",\"editor.findMatchHighlightBorder\":\"#ffffff30\",\"editor.findRangeHighlightBackground\":\"#FFCB6B30\",\"editor.foreground\":\"#babed8\",\"editor.lineHighlightBackground\":\"#00000050\",\"editor.lineHighlightBorder\":\"#00000000\",\"editor.rangeHighlightBackground\":\"#FFFFFF0d\",\"editor.selectionBackground\":\"#717CB450\",\"editor.selectionHighlightBackground\":\"#FFCC0020\",\"editor.wordHighlightBackground\":\"#ff9cac30\",\"editor.wordHighlightStrongBackground\":\"#C3E88D30\",\"editorBracketMatch.background\":\"#0F111A\",\"editorBracketMatch.border\":\"#FFCC0050\",\"editorCursor.foreground\":\"#FFCC00\",\"editorError.foreground\":\"#f0717870\",\"editorGroup.border\":\"#00000030\",\"editorGroup.dropBackground\":\"#f0717880\",\"editorGroup.focusedEmptyBorder\":\"#f07178\",\"editorGroupHeader.tabsBackground\":\"#0F111A\",\"editorGutter.addedBackground\":\"#C3E88D60\",\"editorGutter.deletedBackground\":\"#f0717860\",\"editorGutter.modifiedBackground\":\"#82AAFF60\",\"editorHoverWidget.background\":\"#0F111A\",\"editorHoverWidget.border\":\"#FFFFFF10\",\"editorIndentGuide.activeBackground\":\"#3B3F51\",\"editorIndentGuide.background\":\"#3B3F5170\",\"editorInfo.foreground\":\"#82AAFF70\",\"editorLineNumber.activeForeground\":\"#525975\",\"editorLineNumber.foreground\":\"#3B3F5180\",\"editorLink.activeForeground\":\"#babed8\",\"editorMarkerNavigation.background\":\"#babed805\",\"editorOverviewRuler.border\":\"#0F111A\",\"editorOverviewRuler.errorForeground\":\"#f0717840\",\"editorOverviewRuler.findMatchForeground\":\"#80CBC4\",\"editorOverviewRuler.infoForeground\":\"#82AAFF40\",\"editorOverviewRuler.warningForeground\":\"#FFCB6B40\",\"editorRuler.foreground\":\"#3B3F51\",\"editorSuggestWidget.background\":\"#0F111A\",\"editorSuggestWidget.border\":\"#FFFFFF10\",\"editorSuggestWidget.foreground\":\"#babed8\",\"editorSuggestWidget.highlightForeground\":\"#80CBC4\",\"editorSuggestWidget.selectedBackground\":\"#00000050\",\"editorWarning.foreground\":\"#FFCB6B70\",\"editorWhitespace.foreground\":\"#babed840\",\"editorWidget.background\":\"#0F111A\",\"editorWidget.border\":\"#80CBC4\",\"editorWidget.resizeBorder\":\"#80CBC4\",\"extensionBadge.remoteForeground\":\"#babed8\",\"extensionButton.prominentBackground\":\"#C3E88D90\",\"extensionButton.prominentForeground\":\"#babed8\",\"extensionButton.prominentHoverBackground\":\"#C3E88D\",\"focusBorder\":\"#FFFFFF00\",\"foreground\":\"#babed8\",\"gitDecoration.conflictingResourceForeground\":\"#FFCB6B90\",\"gitDecoration.deletedResourceForeground\":\"#f0717890\",\"gitDecoration.ignoredResourceForeground\":\"#52597590\",\"gitDecoration.modifiedResourceForeground\":\"#82AAFF90\",\"gitDecoration.untrackedResourceForeground\":\"#C3E88D90\",\"input.background\":\"#1A1C25\",\"input.border\":\"#FFFFFF10\",\"input.foreground\":\"#babed8\",\"input.placeholderForeground\":\"#babed860\",\"inputOption.activeBackground\":\"#babed830\",\"inputOption.activeBorder\":\"#babed830\",\"inputValidation.errorBorder\":\"#f07178\",\"inputValidation.infoBorder\":\"#82AAFF\",\"inputValidation.warningBorder\":\"#FFCB6B\",\"list.activeSelectionBackground\":\"#0F111A\",\"list.activeSelectionForeground\":\"#80CBC4\",\"list.dropBackground\":\"#f0717880\",\"list.focusBackground\":\"#babed820\",\"list.focusForeground\":\"#babed8\",\"list.highlightForeground\":\"#80CBC4\",\"list.hoverBackground\":\"#0F111A\",\"list.hoverForeground\":\"#FFFFFF\",\"list.inactiveSelectionBackground\":\"#00000030\",\"list.inactiveSelectionForeground\":\"#80CBC4\",\"listFilterWidget.background\":\"#00000030\",\"listFilterWidget.noMatchesOutline\":\"#00000030\",\"listFilterWidget.outline\":\"#00000030\",\"menu.background\":\"#0F111A\",\"menu.foreground\":\"#babed8\",\"menu.selectionBackground\":\"#00000050\",\"menu.selectionBorder\":\"#00000030\",\"menu.selectionForeground\":\"#80CBC4\",\"menu.separatorBackground\":\"#babed8\",\"menubar.selectionBackground\":\"#00000030\",\"menubar.selectionBorder\":\"#00000030\",\"menubar.selectionForeground\":\"#80CBC4\",\"notebook.focusedCellBorder\":\"#80CBC4\",\"notebook.inactiveFocusedCellBorder\":\"#80CBC450\",\"notificationLink.foreground\":\"#80CBC4\",\"notifications.background\":\"#0F111A\",\"notifications.foreground\":\"#babed8\",\"panel.background\":\"#0F111A\",\"panel.border\":\"#0F111A60\",\"panel.dropBackground\":\"#babed8\",\"panelTitle.activeBorder\":\"#80CBC4\",\"panelTitle.activeForeground\":\"#FFFFFF\",\"panelTitle.inactiveForeground\":\"#babed8\",\"peekView.border\":\"#00000030\",\"peekViewEditor.background\":\"#1A1C25\",\"peekViewEditor.matchHighlightBackground\":\"#717CB450\",\"peekViewEditorGutter.background\":\"#1A1C25\",\"peekViewResult.background\":\"#1A1C25\",\"peekViewResult.matchHighlightBackground\":\"#717CB450\",\"peekViewResult.selectionBackground\":\"#52597570\",\"peekViewTitle.background\":\"#1A1C25\",\"peekViewTitleDescription.foreground\":\"#babed860\",\"pickerGroup.border\":\"#FFFFFF1a\",\"pickerGroup.foreground\":\"#80CBC4\",\"progressBar.background\":\"#80CBC4\",\"quickInput.background\":\"#0F111A\",\"quickInput.foreground\":\"#525975\",\"quickInput.list.focusBackground\":\"#babed820\",\"sash.hoverBorder\":\"#80CBC450\",\"scrollbar.shadow\":\"#00000030\",\"scrollbarSlider.activeBackground\":\"#80CBC4\",\"scrollbarSlider.background\":\"#8F93A220\",\"scrollbarSlider.hoverBackground\":\"#8F93A210\",\"selection.background\":\"#00000080\",\"settings.checkboxBackground\":\"#0F111A\",\"settings.checkboxForeground\":\"#babed8\",\"settings.dropdownBackground\":\"#0F111A\",\"settings.dropdownForeground\":\"#babed8\",\"settings.headerForeground\":\"#80CBC4\",\"settings.modifiedItemIndicator\":\"#80CBC4\",\"settings.numberInputBackground\":\"#0F111A\",\"settings.numberInputForeground\":\"#babed8\",\"settings.textInputBackground\":\"#0F111A\",\"settings.textInputForeground\":\"#babed8\",\"sideBar.background\":\"#0F111A\",\"sideBar.border\":\"#0F111A60\",\"sideBar.foreground\":\"#525975\",\"sideBarSectionHeader.background\":\"#0F111A\",\"sideBarSectionHeader.border\":\"#0F111A60\",\"sideBarTitle.foreground\":\"#babed8\",\"statusBar.background\":\"#0F111A\",\"statusBar.border\":\"#0F111A60\",\"statusBar.debuggingBackground\":\"#C792EA\",\"statusBar.debuggingForeground\":\"#ffffff\",\"statusBar.foreground\":\"#4B526D\",\"statusBar.noFolderBackground\":\"#0F111A\",\"statusBarItem.activeBackground\":\"#f0717880\",\"statusBarItem.hoverBackground\":\"#464B5D20\",\"statusBarItem.remoteBackground\":\"#80CBC4\",\"statusBarItem.remoteForeground\":\"#000000\",\"tab.activeBackground\":\"#0F111A\",\"tab.activeBorder\":\"#80CBC4\",\"tab.activeForeground\":\"#FFFFFF\",\"tab.activeModifiedBorder\":\"#525975\",\"tab.border\":\"#0F111A\",\"tab.inactiveBackground\":\"#0F111A\",\"tab.inactiveForeground\":\"#525975\",\"tab.inactiveModifiedBorder\":\"#904348\",\"tab.unfocusedActiveBorder\":\"#464B5D\",\"tab.unfocusedActiveForeground\":\"#babed8\",\"tab.unfocusedActiveModifiedBorder\":\"#c05a60\",\"tab.unfocusedInactiveModifiedBorder\":\"#904348\",\"terminal.ansiBlack\":\"#000000\",\"terminal.ansiBlue\":\"#82AAFF\",\"terminal.ansiBrightBlack\":\"#464B5D\",\"terminal.ansiBrightBlue\":\"#82AAFF\",\"terminal.ansiBrightCyan\":\"#89DDFF\",\"terminal.ansiBrightGreen\":\"#C3E88D\",\"terminal.ansiBrightMagenta\":\"#C792EA\",\"terminal.ansiBrightRed\":\"#f07178\",\"terminal.ansiBrightWhite\":\"#ffffff\",\"terminal.ansiBrightYellow\":\"#FFCB6B\",\"terminal.ansiCyan\":\"#89DDFF\",\"terminal.ansiGreen\":\"#C3E88D\",\"terminal.ansiMagenta\":\"#C792EA\",\"terminal.ansiRed\":\"#f07178\",\"terminal.ansiWhite\":\"#ffffff\",\"terminal.ansiYellow\":\"#FFCB6B\",\"terminalCursor.background\":\"#000000\",\"terminalCursor.foreground\":\"#FFCB6B\",\"textLink.activeForeground\":\"#babed8\",\"textLink.foreground\":\"#80CBC4\",\"titleBar.activeBackground\":\"#0F111A\",\"titleBar.activeForeground\":\"#babed8\",\"titleBar.border\":\"#0F111A60\",\"titleBar.inactiveBackground\":\"#0F111A\",\"titleBar.inactiveForeground\":\"#525975\",\"tree.indentGuidesStroke\":\"#3B3F51\",\"widget.shadow\":\"#00000030\"},\"displayName\":\"Material Theme Ocean\",\"name\":\"material-theme-ocean\",\"semanticHighlighting\":true,\"tokenColors\":[{\"settings\":{\"background\":\"#0F111A\",\"foreground\":\"#babed8\"}},{\"scope\":\"string\",\"settings\":{\"foreground\":\"#C3E88D\"}},{\"scope\":\"punctuation, constant.other.symbol\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"constant.character.escape, text.html constant.character.entity.named\",\"settings\":{\"foreground\":\"#babed8\"}},{\"scope\":\"constant.language.boolean\",\"settings\":{\"foreground\":\"#ff9cac\"}},{\"scope\":\"constant.numeric\",\"settings\":{\"foreground\":\"#F78C6C\"}},{\"scope\":\"variable, variable.parameter, support.variable, variable.language, support.constant, meta.definition.variable entity.name.function, meta.function-call.arguments\",\"settings\":{\"foreground\":\"#babed8\"}},{\"scope\":\"keyword.other\",\"settings\":{\"foreground\":\"#F78C6C\"}},{\"scope\":\"keyword, modifier, variable.language.this, support.type.object, constant.language\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"entity.name.function, support.function\",\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":\"storage.type, storage.modifier, storage.control\",\"settings\":{\"foreground\":\"#C792EA\"}},{\"scope\":\"support.module, support.node\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#f07178\"}},{\"scope\":\"support.type, constant.other.key\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"entity.name.type, entity.other.inherited-class, entity.other\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"comment\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#464B5D\"}},{\"scope\":\"comment punctuation.definition.comment, string.quoted.docstring\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#464B5D\"}},{\"scope\":\"punctuation\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"entity.name, entity.name.type.class, support.type, support.class, meta.use\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"variable.object.property, meta.field.declaration entity.name.function\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"meta.definition.method entity.name.function\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"meta.function entity.name.function\",\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":\"template.expression.begin, template.expression.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"meta.embedded, source.groovy.embedded, meta.template.expression\",\"settings\":{\"foreground\":\"#babed8\"}},{\"scope\":\"entity.name.tag.yaml\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"meta.object-literal.key, meta.object-literal.key string, support.type.property-name.json\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"constant.language.json\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"entity.other.attribute-name.class\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"entity.other.attribute-name.id\",\"settings\":{\"foreground\":\"#F78C6C\"}},{\"scope\":\"source.css entity.name.tag\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"support.type.property-name.css\",\"settings\":{\"foreground\":\"#B2CCD6\"}},{\"scope\":\"meta.tag, punctuation.definition.tag\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"entity.name.tag\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"entity.other.attribute-name\",\"settings\":{\"foreground\":\"#C792EA\"}},{\"scope\":\"punctuation.definition.entity.html\",\"settings\":{\"foreground\":\"#babed8\"}},{\"scope\":\"markup.heading\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"text.html.markdown meta.link.inline, meta.link.reference\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"text.html.markdown beginning.punctuation.definition.list\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"markup.italic\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#f07178\"}},{\"scope\":\"markup.bold\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#f07178\"}},{\"scope\":\"markup.bold markup.italic, markup.italic markup.bold\",\"settings\":{\"fontStyle\":\"italic bold\",\"foreground\":\"#f07178\"}},{\"scope\":\"markup.fenced_code.block.markdown punctuation.definition.markdown\",\"settings\":{\"foreground\":\"#C3E88D\"}},{\"scope\":\"markup.inline.raw.string.markdown\",\"settings\":{\"foreground\":\"#C3E88D\"}},{\"scope\":\"keyword.other.definition.ini\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"entity.name.section.group-title.ini\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"source.cs meta.class.identifier storage.type\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"source.cs meta.method.identifier entity.name.function\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"source.cs meta.method-call meta.method, source.cs entity.name.function\",\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":\"source.cs storage.type\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"source.cs meta.method.return-type\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"source.cs meta.preprocessor\",\"settings\":{\"foreground\":\"#464B5D\"}},{\"scope\":\"source.cs entity.name.type.namespace\",\"settings\":{\"foreground\":\"#babed8\"}},{\"scope\":\"meta.jsx.children, SXNested\",\"settings\":{\"foreground\":\"#babed8\"}},{\"scope\":\"support.class.component\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"source.cpp meta.block variable.other\",\"settings\":{\"foreground\":\"#babed8\"}},{\"scope\":\"source.python meta.member.access.python\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"source.python meta.function-call.python, meta.function-call.arguments\",\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":\"meta.block\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"entity.name.function.call\",\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":\"source.php support.other.namespace, source.php meta.use support.class\",\"settings\":{\"foreground\":\"#babed8\"}},{\"scope\":\"constant.keyword\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#89DDFF\"}},{\"scope\":\"entity.name.function\",\"settings\":{\"foreground\":\"#82AAFF\"}},{\"settings\":{\"background\":\"#0F111A\",\"foreground\":\"#babed8\"}},{\"scope\":[\"constant.other.placeholder\"],\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":[\"markup.deleted\"],\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":[\"markup.inserted\"],\"settings\":{\"foreground\":\"#C3E88D\"}},{\"scope\":[\"markup.underline\"],\"settings\":{\"fontStyle\":\"underline\"}},{\"scope\":[\"keyword.control\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#89DDFF\"}},{\"scope\":[\"variable.parameter\"],\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":[\"variable.parameter.function.language.special.self.python\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#f07178\"}},{\"scope\":[\"constant.character.format.placeholder.other.python\"],\"settings\":{\"foreground\":\"#F78C6C\"}},{\"scope\":[\"markup.quote\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#89DDFF\"}},{\"scope\":[\"markup.fenced_code.block\"],\"settings\":{\"foreground\":\"#babed890\"}},{\"scope\":[\"punctuation.definition.quote\"],\"settings\":{\"foreground\":\"#ff9cac\"}},{\"scope\":[\"meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#C792EA\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#F78C6C\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#916b53\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#ff9cac\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#C792EA\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#C3E88D\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Cz8P-rqG.js",
    "content": "import e from\"./BPhBrDlE.js\";import n from\"./BfCpw3nA.js\";import t from\"./Bl1h29GH.js\";import s from\"./ySlJ1b_l.js\";const a=Object.freeze(JSON.parse('{\"displayName\":\"Marko\",\"fileTypes\":[\"marko\"],\"name\":\"marko\",\"patterns\":[{\"begin\":\"^\\\\\\\\s*(style)\\\\\\\\s+(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.marko.css\"},\"2\":{\"name\":\"punctuation.section.scope.begin.marko.css\"}},\"comment\":\"CSS style block, eg: style { color: green }\",\"contentName\":\"source.css\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.scope.end.marko.css\"}},\"name\":\"meta.embedded.css\",\"patterns\":[{\"include\":\"source.css\"}]},{\"begin\":\"^\\\\\\\\s*(style)\\\\\\\\.(less)\\\\\\\\s+(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.marko.css\"},\"2\":{\"name\":\"storage.modifier.marko.css\"},\"3\":{\"name\":\"punctuation.section.scope.begin.marko.css\"}},\"comment\":\"Less style block, eg: style.less { color: green }\",\"contentName\":\"source.less\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.scope.end.marko.css\"}},\"name\":\"meta.embedded.less\",\"patterns\":[{\"include\":\"source.css.less\"}]},{\"begin\":\"^\\\\\\\\s*(style)\\\\\\\\.(scss)\\\\\\\\s+(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.marko.css\"},\"2\":{\"name\":\"storage.modifier.marko.css\"},\"3\":{\"name\":\"punctuation.section.scope.begin.marko.css\"}},\"comment\":\"SCSS style block, eg: style.scss { color: green }\",\"contentName\":\"source.scss\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.scope.end.marko.css\"}},\"name\":\"meta.embedded.scss\",\"patterns\":[{\"include\":\"source.css.scss\"}]},{\"begin\":\"^\\\\\\\\s*(?:(static )|(?=(?:class|import|export) ))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.static.marko\"}},\"comment\":\"Top level blocks parsed as JavaScript\",\"contentName\":\"source.js\",\"end\":\"(?=\\\\\\\\n|$)\",\"name\":\"meta.embedded.js\",\"patterns\":[{\"include\":\"#javascript-statement\"}]},{\"include\":\"#content-concise-mode\"}],\"repository\":{\"attrs\":{\"patterns\":[{\"applyEndPatternLast\":1,\"begin\":\"(?:\\\\\\\\s+|,)(?:(key|on[a-zA-Z0-9_$-]+|[a-zA-Z0-9_$]+Change|no-update(?:-body)?(?:-if)?)|([a-zA-Z0-9_$][a-zA-Z0-9_$-]*))(:[a-zA-Z0-9_$][a-zA-Z0-9_$-]*)?\",\"beginCaptures\":{\"1\":{\"name\":\"support.type.attribute-name.marko\"},\"2\":{\"name\":\"entity.other.attribute-name.marko\"},\"3\":{\"name\":\"support.function.attribute-name.marko\"}},\"comment\":\"Attribute with optional value\",\"end\":\"(?=.|$)\",\"name\":\"meta.marko-attribute\",\"patterns\":[{\"include\":\"#html-args-or-method\"},{\"applyEndPatternLast\":1,\"begin\":\"\\\\\\\\s*(:?=)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"source.js\"}]}},\"comment\":\"Attribute value\",\"contentName\":\"source.js\",\"end\":\"(?=.|$)\",\"name\":\"meta.embedded.js\",\"patterns\":[{\"include\":\"#javascript-expression\"}]}]},{\"applyEndPatternLast\":1,\"begin\":\"(?:\\\\\\\\s+|,)\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.spread.marko\"}},\"comment\":\"A ...spread attribute\",\"contentName\":\"source.js\",\"end\":\"(?=.|$)\",\"name\":\"meta.marko-spread-attribute\",\"patterns\":[{\"include\":\"#javascript-expression\"}]},{\"begin\":\"\\\\\\\\s*(,(?!,))\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"source.js\"}]}},\"comment\":\"Consume any whitespace after a comma\",\"end\":\"(?!\\\\\\\\S)\"},{\"include\":\"#javascript-comment-multiline\"},{\"include\":\"#invalid\"}]},\"concise-html-block\":{\"begin\":\"\\\\\\\\s*(--+)\\\\\\\\s*$\",\"beginCaptures\":{\"2\":{\"name\":\"punctuation.section.scope.begin.marko\"}},\"comment\":\"--- HTML block within concise mode content. ---\",\"end\":\"\\\\\\\\1\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.scope.end.marko\"}},\"name\":\"meta.section.marko-html-block\",\"patterns\":[{\"include\":\"#content-html-mode\"}]},\"concise-html-line\":{\"captures\":{\"1\":{\"name\":\"punctuation.section.scope.begin.marko\"},\"2\":{\"patterns\":[{\"include\":\"#html-comments\"},{\"include\":\"#tag-html\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"string\"},{\"include\":\"#placeholder\"},{\"match\":\".+?\",\"name\":\"string\"}]}},\"comment\":\"-- HTML line within concise mode content. (content-html-mode w/o scriptlet)\",\"match\":\"\\\\\\\\s*(--+)(?=\\\\\\\\s+\\\\\\\\S)(.*$)\",\"name\":\"meta.section.marko-html-line\"},\"concise-open-tag-content\":{\"patterns\":[{\"include\":\"#tag-before-attrs\"},{\"begin\":\"\\\\\\\\s*\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.scope.begin.marko\"}},\"end\":\"]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.scope.end.marko\"}},\"patterns\":[{\"include\":\"#attrs\"},{\"include\":\"#invalid\"}]},{\"begin\":\"(?!^)(?= )\",\"end\":\"(?=--)|(?<!,)(?=\\\\\\\\n)\",\"patterns\":[{\"include\":\"#attrs\"},{\"include\":\"#invalid\"}]}]},\"concise-script-block\":{\"begin\":\"(\\\\\\\\s+)(--+)\\\\\\\\s*$\",\"beginCaptures\":{\"2\":{\"name\":\"punctuation.section.scope.begin.marko\"}},\"comment\":\"--- Embedded concise script content block. ---\",\"end\":\"(\\\\\\\\2)|(?=^(?!\\\\\\\\1)\\\\\\\\s*\\\\\\\\S)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.scope.end.marko\"}},\"name\":\"meta.section.marko-script-block\",\"patterns\":[{\"include\":\"#content-embedded-script\"}]},\"concise-script-line\":{\"applyEndPatternLast\":1,\"begin\":\"\\\\\\\\s*(--+)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.scope.begin.marko\"}},\"comment\":\"-- Embedded concise script content line.\",\"end\":\"$\",\"name\":\"meta.section.marko-script-line\",\"patterns\":[{\"include\":\"#content-embedded-script\"}]},\"concise-style-block\":{\"begin\":\"(\\\\\\\\s+)(--+)\\\\\\\\s*$\",\"beginCaptures\":{\"2\":{\"name\":\"punctuation.section.scope.begin.marko\"}},\"comment\":\"--- Embedded concise style content block. ---\",\"contentName\":\"source.css\",\"end\":\"(\\\\\\\\2)|(?=^(?!\\\\\\\\1)\\\\\\\\s*\\\\\\\\S)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.scope.end.marko\"}},\"name\":\"meta.section.marko-style-block\",\"patterns\":[{\"include\":\"#content-embedded-style\"}]},\"concise-style-block-less\":{\"begin\":\"(\\\\\\\\s+)(--+)\\\\\\\\s*$\",\"beginCaptures\":{\"2\":{\"name\":\"punctuation.section.scope.begin.marko\"}},\"comment\":\"--- Embedded concise style content block. ---\",\"contentName\":\"source.less\",\"end\":\"(\\\\\\\\2)|(?=^(?!\\\\\\\\1)\\\\\\\\s*\\\\\\\\S)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.scope.end.marko\"}},\"name\":\"meta.section.marko-style-block\",\"patterns\":[{\"include\":\"#content-embedded-style-less\"}]},\"concise-style-block-scss\":{\"begin\":\"(\\\\\\\\s+)(--+)\\\\\\\\s*$\",\"beginCaptures\":{\"2\":{\"name\":\"punctuation.section.scope.begin.marko\"}},\"comment\":\"--- Embedded concise style content block. ---\",\"contentName\":\"source.scss\",\"end\":\"(\\\\\\\\2)|(?=^(?!\\\\\\\\1)\\\\\\\\s*\\\\\\\\S)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.scope.end.marko\"}},\"name\":\"meta.section.marko-style-block\",\"patterns\":[{\"include\":\"#content-embedded-style-scss\"}]},\"concise-style-line\":{\"applyEndPatternLast\":1,\"begin\":\"\\\\\\\\s*(--+)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.scope.begin.marko\"}},\"comment\":\"-- Embedded concise style content line.\",\"contentName\":\"source.css\",\"end\":\"$\",\"name\":\"meta.section.marko-style-line\",\"patterns\":[{\"include\":\"#content-embedded-style\"}]},\"concise-style-line-less\":{\"applyEndPatternLast\":1,\"begin\":\"\\\\\\\\s*(--+)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.scope.begin.marko\"}},\"comment\":\"-- Embedded concise style content line.\",\"contentName\":\"source.less\",\"end\":\"$\",\"name\":\"meta.section.marko-style-line\",\"patterns\":[{\"include\":\"#content-embedded-style-less\"}]},\"concise-style-line-scss\":{\"applyEndPatternLast\":1,\"begin\":\"\\\\\\\\s*(--+)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.scope.begin.marko\"}},\"comment\":\"-- Embedded concise style content line.\",\"contentName\":\"source.scss\",\"end\":\"$\",\"name\":\"meta.section.marko-style-line\",\"patterns\":[{\"include\":\"#content-embedded-style-scss\"}]},\"content-concise-mode\":{\"comment\":\"Concise mode content block.\",\"name\":\"meta.marko-concise-content\",\"patterns\":[{\"include\":\"#scriptlet\"},{\"include\":\"#javascript-comments\"},{\"include\":\"#html-comments\"},{\"include\":\"#concise-html-block\"},{\"include\":\"#concise-html-line\"},{\"include\":\"#tag-html\"},{\"comment\":\"A concise html tag.\",\"patterns\":[{\"begin\":\"^(\\\\\\\\s*)(?=style\\\\\\\\.less\\\\\\\\b)\",\"comment\":\"Concise style tag less\",\"patterns\":[{\"include\":\"#concise-open-tag-content\"},{\"include\":\"#concise-style-block-less\"},{\"include\":\"#concise-style-line-less\"}],\"while\":\"(?=^\\\\\\\\1\\\\\\\\s+(\\\\\\\\S|$))\"},{\"begin\":\"^(\\\\\\\\s*)(?=style\\\\\\\\.scss\\\\\\\\b)\",\"comment\":\"Concise style tag scss\",\"patterns\":[{\"include\":\"#concise-open-tag-content\"},{\"include\":\"#concise-style-block-scss\"},{\"include\":\"#concise-style-line-scss\"}],\"while\":\"(?=^\\\\\\\\1\\\\\\\\s+(\\\\\\\\S|$))\"},{\"begin\":\"^(\\\\\\\\s*)(?=style\\\\\\\\b)\",\"comment\":\"Concise style tag\",\"patterns\":[{\"include\":\"#concise-open-tag-content\"},{\"include\":\"#concise-style-block\"},{\"include\":\"#concise-style-line\"}],\"while\":\"(?=^\\\\\\\\1\\\\\\\\s+(\\\\\\\\S|$))\"},{\"begin\":\"^(\\\\\\\\s*)(?=script\\\\\\\\b)\",\"comment\":\"Concise script tag\",\"patterns\":[{\"include\":\"#concise-open-tag-content\"},{\"include\":\"#concise-script-block\"},{\"include\":\"#concise-script-line\"}],\"while\":\"(?=^\\\\\\\\1\\\\\\\\s+(\\\\\\\\S|$))\"},{\"begin\":\"^(\\\\\\\\s*)(?=[a-zA-Z0-9_$@])\",\"comment\":\"Normal concise tag\",\"patterns\":[{\"include\":\"#concise-open-tag-content\"},{\"include\":\"#content-concise-mode\"}],\"while\":\"(?=^\\\\\\\\1\\\\\\\\s+(\\\\\\\\S|$))\"}]},{\"include\":\"#invalid\"}]},\"content-embedded-script\":{\"name\":\"meta.embedded.js\",\"patterns\":[{\"include\":\"#placeholder\"},{\"include\":\"source.js\"}]},\"content-embedded-style\":{\"name\":\"meta.embedded.css\",\"patterns\":[{\"include\":\"#placeholder\"},{\"include\":\"source.css\"}]},\"content-embedded-style-less\":{\"name\":\"meta.embedded.css.less\",\"patterns\":[{\"include\":\"#placeholder\"},{\"include\":\"source.css.less\"}]},\"content-embedded-style-scss\":{\"name\":\"meta.embedded.css.scss\",\"patterns\":[{\"include\":\"#placeholder\"},{\"include\":\"source.css.scss\"}]},\"content-html-mode\":{\"comment\":\"HTML mode content block.\",\"patterns\":[{\"include\":\"#scriptlet\"},{\"include\":\"#html-comments\"},{\"include\":\"#tag-html\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"string\"},{\"include\":\"#placeholder\"},{\"match\":\".+?\",\"name\":\"string\"}]},\"html-args-or-method\":{\"patterns\":[{\"include\":\"#javascript-args\"},{\"begin\":\"(?<=\\\\\\\\))\\\\\\\\s*(?=\\\\\\\\{)\",\"comment\":\"Attribute method shorthand following parens\",\"contentName\":\"source.js\",\"end\":\"(?<=\\\\\\\\})\",\"name\":\"meta.embedded.js\",\"patterns\":[{\"include\":\"source.js\"}]}]},\"html-comments\":{\"patterns\":[{\"begin\":\"\\\\\\\\s*(<!(--)?)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.marko\"}},\"comment\":\"HTML comments, doctypes & cdata\",\"end\":\"\\\\\\\\2>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.marko\"}},\"name\":\"comment.block.marko\"},{\"begin\":\"\\\\\\\\s*(<html-comment>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.marko\"}},\"comment\":\"Preserved HTML comment tag\",\"end\":\"</html-comment>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.marko\"}},\"name\":\"comment.block.marko\"}]},\"invalid\":{\"match\":\"[^\\\\\\\\s]\",\"name\":\"invalid.illegal.character-not-allowed-here.marko\"},\"javascript-args\":{\"begin\":\"(?=\\\\\\\\()\",\"comment\":\"Javascript style arguments\",\"contentName\":\"source.js\",\"end\":\"(?<=\\\\\\\\))\",\"name\":\"meta.embedded.js\",\"patterns\":[{\"include\":\"source.js\"}]},\"javascript-comment-line\":{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"source.js\"}]}},\"comment\":\"JavaScript // single line comment\",\"contentName\":\"source.js\",\"match\":\"\\\\\\\\s*//.*$\"},\"javascript-comment-multiline\":{\"begin\":\"\\\\\\\\s*(?=/\\\\\\\\*)\",\"comment\":\"JavaScript /* block comment */\",\"contentName\":\"source.js\",\"end\":\"(?<=\\\\\\\\*/)\",\"patterns\":[{\"include\":\"source.js\"}]},\"javascript-comments\":{\"patterns\":[{\"include\":\"#javascript-comment-multiline\"},{\"include\":\"#javascript-comment-line\"}]},\"javascript-enclosed\":{\"comment\":\"Matches JavaScript content and ensures enclosed blocks are matched.\",\"patterns\":[{\"include\":\"#javascript-comments\"},{\"include\":\"#javascript-args\"},{\"begin\":\"(?={)\",\"end\":\"(?<=})\",\"patterns\":[{\"include\":\"source.js\"}]},{\"begin\":\"(?=\\\\\\\\[)\",\"end\":\"(?<=])\",\"patterns\":[{\"include\":\"source.js\"}]},{\"begin\":\"(?=\\\\\")\",\"end\":\"(?<=\\\\\")\",\"patterns\":[{\"include\":\"source.js\"}]},{\"begin\":\"(?=\\')\",\"end\":\"(?<=\\')\",\"patterns\":[{\"include\":\"source.js\"}]},{\"begin\":\"(?=`)\",\"end\":\"(?<=`)\",\"patterns\":[{\"include\":\"source.js\"}]},{\"begin\":\"/(?!<[\\\\\\\\]})A-Z0-9.<%]\\\\\\\\s*/)(?!/?>|$)\",\"captures\":{\"0\":{\"name\":\"string.regexp.js\"}},\"contentName\":\"source.js\",\"end\":\"/[gimsuy]*\",\"patterns\":[{\"include\":\"source.js#regexp\"},{\"include\":\"source.js\"}]},{\"begin\":\"\\\\\\\\s*(?:(?:\\\\\\\\b(?:new|typeof|instanceof|in)\\\\\\\\b)|\\\\\\\\&\\\\\\\\&|\\\\\\\\|\\\\\\\\||[\\\\\\\\^|&]|[!=]=|[!=]==|<|<[=<]|=>|[?:]|[-+*%](?!-))\",\"captures\":{\"0\":{\"patterns\":[{\"include\":\"source.js\"}]}},\"end\":\"(?=\\\\\\\\S)\"}]},\"javascript-expression\":{\"patterns\":[{\"include\":\"#javascript-enclosed\"},{\"captures\":{\"0\":{\"patterns\":[{\"include\":\"source.js\"}]}},\"comment\":\"Match identifiers and member expressions\",\"match\":\"[0-9a-zA-Z$_.]+\"}]},\"javascript-statement\":{\"patterns\":[{\"include\":\"#javascript-enclosed\"},{\"include\":\"source.js\"}]},\"open-tag-content\":{\"patterns\":[{\"include\":\"#tag-before-attrs\"},{\"begin\":\"(?= )\",\"comment\":\"Attributes begin after the first space within the tag name\",\"end\":\"(?=/?>)\",\"patterns\":[{\"include\":\"#attrs\"}]}]},\"placeholder\":{\"begin\":\"\\\\\\\\$!?{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.begin.js\"}},\"comment\":\"${ } placeholder\",\"contentName\":\"source.js\",\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.end.js\"}},\"patterns\":[{\"include\":\"source.js\"}]},\"scriptlet\":{\"begin\":\"^\\\\\\\\s*(\\\\\\\\$)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.scriptlet.marko\"}},\"comment\":\"An inline JavaScript scriptlet.\",\"contentName\":\"source.js\",\"end\":\"$\",\"name\":\"meta.embedded.js\",\"patterns\":[{\"include\":\"#javascript-statement\"}]},\"tag-before-attrs\":{\"comment\":\"Everything in a tag before the attributes content\",\"patterns\":[{\"include\":\"#tag-name\"},{\"comment\":\"Shorthand class or ID attribute\",\"match\":\"[#.][a-zA-Z0-9_$][a-zA-Z0-9_$-]*\",\"name\":\"entity.other.attribute-name.marko\"},{\"begin\":\"/(?!/)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.key-value.marko\"}},\"comment\":\"Variable for a tag\",\"contentName\":\"source.js\",\"end\":\"(?=:?\\\\\\\\=|\\\\\\\\s|>|$|\\\\\\\\||\\\\\\\\(|/)\",\"name\":\"meta.embedded.js\",\"patterns\":[{\"comment\":\"Match identifiers\",\"match\":\"[a-zA-Z$_][0-9a-zA-Z$_]*\",\"name\":\"variable.other.constant.object.js\"},{\"include\":\"source.js#object-binding-pattern\"},{\"include\":\"source.js#array-binding-pattern\"},{\"include\":\"source.js#var-single-variable\"},{\"include\":\"#javascript-expression\"}]},{\"applyEndPatternLast\":1,\"begin\":\"\\\\\\\\s*(:?=)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"source.js\"}]}},\"comment\":\"Default attribute value\",\"contentName\":\"source.js\",\"end\":\"(?=.|$)\",\"name\":\"meta.embedded.js\",\"patterns\":[{\"include\":\"#javascript-expression\"}]},{\"begin\":\"\\\\\\\\|\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.scope.begin.marko\"}},\"comment\":\"Parameters for a tag\",\"end\":\"\\\\\\\\|\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.scope.end.marko\"}},\"patterns\":[{\"include\":\"source.js#function-parameters-body\"},{\"include\":\"source.js\"}]},{\"include\":\"#html-args-or-method\"}]},\"tag-html\":{\"comment\":\"Matches an HTML tag and its contents\",\"patterns\":[{\"begin\":\"\\\\\\\\s*(<)(?=(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.marko\"}},\"comment\":\"HTML void elements\",\"end\":\"/?>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.marko\"}},\"patterns\":[{\"include\":\"#open-tag-content\"}]},{\"begin\":\"\\\\\\\\s*(<)(?=style\\\\\\\\.less\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.marko\"}},\"comment\":\"HTML style tag with less\",\"end\":\"/>|(?<=\\\\\\\\>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.marko\"}},\"patterns\":[{\"include\":\"#open-tag-content\"},{\"begin\":\">\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.marko\"}},\"comment\":\"Style body content\",\"contentName\":\"source.less\",\"end\":\"\\\\\\\\s*(</)(style)?(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.marko\"},\"2\":{\"patterns\":[{\"include\":\"#tag-name\"}]},\"3\":{\"name\":\"punctuation.definition.tag.end.marko\"}},\"patterns\":[{\"include\":\"#content-embedded-style-less\"}]}]},{\"begin\":\"\\\\\\\\s*(<)(?=style\\\\\\\\.scss\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.marko\"}},\"comment\":\"HTML style tag with scss\",\"end\":\"/>|(?<=\\\\\\\\>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.marko\"}},\"patterns\":[{\"include\":\"#open-tag-content\"},{\"begin\":\">\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.marko\"}},\"comment\":\"Style body content\",\"contentName\":\"source.less\",\"end\":\"\\\\\\\\s*(</)(style)?(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.marko\"},\"2\":{\"patterns\":[{\"include\":\"#tag-name\"}]},\"3\":{\"name\":\"punctuation.definition.tag.end.marko\"}},\"patterns\":[{\"include\":\"#content-embedded-style-scss\"}]}]},{\"begin\":\"\\\\\\\\s*(<)(?=style\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.marko\"}},\"comment\":\"HTML style tag\",\"end\":\"/>|(?<=\\\\\\\\>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.marko\"}},\"patterns\":[{\"include\":\"#open-tag-content\"},{\"begin\":\">\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.marko\"}},\"comment\":\"Style body content\",\"contentName\":\"source.css\",\"end\":\"\\\\\\\\s*(</)(style)?(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.marko\"},\"2\":{\"patterns\":[{\"include\":\"#tag-name\"}]},\"3\":{\"name\":\"punctuation.definition.tag.end.marko\"}},\"patterns\":[{\"include\":\"#content-embedded-style\"}]}]},{\"begin\":\"\\\\\\\\s*(<)(?=script\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.marko\"}},\"comment\":\"HTML script tag\",\"end\":\"/>|(?<=\\\\\\\\>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.marko\"}},\"patterns\":[{\"include\":\"#open-tag-content\"},{\"begin\":\">\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.marko\"}},\"comment\":\"Script body content\",\"contentName\":\"source.js\",\"end\":\"\\\\\\\\s*(</)(script)?(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.marko\"},\"2\":{\"patterns\":[{\"include\":\"#tag-name\"}]},\"3\":{\"name\":\"punctuation.definition.tag.end.marko\"}},\"patterns\":[{\"include\":\"#content-embedded-script\"}]}]},{\"begin\":\"\\\\\\\\s*(<)(?=[a-zA-Z0-9_$@])\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.marko\"}},\"comment\":\"HTML normal tag\",\"end\":\"/>|(?<=\\\\\\\\>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.marko\"}},\"patterns\":[{\"include\":\"#open-tag-content\"},{\"begin\":\">\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.marko\"}},\"comment\":\"Body content\",\"end\":\"\\\\\\\\s*(</)([a-zA-Z0-9_$:@-]+)?(.*?)(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.marko\"},\"2\":{\"patterns\":[{\"include\":\"#tag-name\"}]},\"3\":{\"patterns\":[{\"include\":\"#invalid\"}]},\"4\":{\"name\":\"punctuation.definition.tag.end.marko\"}},\"patterns\":[{\"include\":\"#content-html-mode\"}]}]}]},\"tag-name\":{\"patterns\":[{\"begin\":\"\\\\\\\\${\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.begin.js\"}},\"comment\":\"Dynamic tag.\",\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.end.js\"}},\"patterns\":[{\"include\":\"source.js\"}]},{\"captures\":{\"1\":{\"name\":\"entity.name.tag.marko\"},\"2\":{\"name\":\"storage.type.marko.css\"},\"3\":{\"patterns\":[{\"comment\":\"Core tag.\",\"match\":\"(attrs|return|import)(?=\\\\\\\\b)\",\"name\":\"support.type.builtin.marko\"},{\"comment\":\"Core tag.\",\"match\":\"(for|if|while|else-if|else|macro|tag|await|let|const|effect|set|get|id|lifecycle)(?=\\\\\\\\b)\",\"name\":\"support.function.marko\"},{\"comment\":\"Attribute tag.\",\"match\":\"@.+\",\"name\":\"entity.other.attribute-name.marko\"},{\"comment\":\"Native or userland tag.\",\"match\":\".+\",\"name\":\"entity.name.tag.marko\"}]}},\"match\":\"(style)\\\\\\\\.([a-zA-Z0-9$_-]+(?:\\\\\\\\.[a-zA-Z0-9$_-]+)*)|([a-zA-Z0-9_$@][a-zA-Z0-9_$@:-]*)\"}]}},\"scopeName\":\"text.marko\",\"embeddedLangs\":[\"css\",\"less\",\"scss\",\"javascript\"]}')),r=[...e,...n,...t,...s,a];export{r as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CzF1MCbP.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"#\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'}]},o={defaultToken:\"\",tokenPostfix:\".r\",roxygen:[\"@alias\",\"@aliases\",\"@assignee\",\"@author\",\"@backref\",\"@callGraph\",\"@callGraphDepth\",\"@callGraphPrimitives\",\"@concept\",\"@describeIn\",\"@description\",\"@details\",\"@docType\",\"@encoding\",\"@evalNamespace\",\"@evalRd\",\"@example\",\"@examples\",\"@export\",\"@exportClass\",\"@exportMethod\",\"@exportPattern\",\"@family\",\"@field\",\"@formals\",\"@format\",\"@import\",\"@importClassesFrom\",\"@importFrom\",\"@importMethodsFrom\",\"@include\",\"@inherit\",\"@inheritDotParams\",\"@inheritParams\",\"@inheritSection\",\"@keywords\",\"@md\",\"@method\",\"@name\",\"@noMd\",\"@noRd\",\"@note\",\"@param\",\"@rawNamespace\",\"@rawRd\",\"@rdname\",\"@references\",\"@return\",\"@S3method\",\"@section\",\"@seealso\",\"@setClass\",\"@slot\",\"@source\",\"@template\",\"@templateVar\",\"@title\",\"@TODO\",\"@usage\",\"@useDynLib\"],constants:[\"NULL\",\"FALSE\",\"TRUE\",\"NA\",\"Inf\",\"NaN\",\"NA_integer_\",\"NA_real_\",\"NA_complex_\",\"NA_character_\",\"T\",\"F\",\"LETTERS\",\"letters\",\"month.abb\",\"month.name\",\"pi\",\"R.version.string\"],keywords:[\"break\",\"next\",\"return\",\"if\",\"else\",\"for\",\"in\",\"repeat\",\"while\",\"array\",\"category\",\"character\",\"complex\",\"double\",\"function\",\"integer\",\"list\",\"logical\",\"matrix\",\"numeric\",\"vector\",\"data.frame\",\"factor\",\"library\",\"require\",\"attach\",\"detach\",\"source\"],special:[\"\\\\n\",\"\\\\r\",\"\\\\t\",\"\\\\b\",\"\\\\a\",\"\\\\f\",\"\\\\v\",\"\\\\'\",'\\\\\"',\"\\\\\\\\\"],brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.bracket\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],tokenizer:{root:[{include:\"@numbers\"},{include:\"@strings\"},[/[{}\\[\\]()]/,\"@brackets\"],{include:\"@operators\"},[/#'$/,\"comment.doc\"],[/#'/,\"comment.doc\",\"@roxygen\"],[/(^#.*$)/,\"comment\"],[/\\s+/,\"white\"],[/[,:;]/,\"delimiter\"],[/@[a-zA-Z]\\w*/,\"tag\"],[/[a-zA-Z]\\w*/,{cases:{\"@keywords\":\"keyword\",\"@constants\":\"constant\",\"@default\":\"identifier\"}}]],roxygen:[[/@\\w+/,{cases:{\"@roxygen\":\"tag\",\"@eos\":{token:\"comment.doc\",next:\"@pop\"},\"@default\":\"comment.doc\"}}],[/\\s+/,{cases:{\"@eos\":{token:\"comment.doc\",next:\"@pop\"},\"@default\":\"comment.doc\"}}],[/.*/,{token:\"comment.doc\",next:\"@pop\"}]],numbers:[[/0[xX][0-9a-fA-F]+/,\"number.hex\"],[/-?(\\d*\\.)?\\d+([eE][+\\-]?\\d+)?/,\"number\"]],operators:[[/<{1,2}-/,\"operator\"],[/->{1,2}/,\"operator\"],[/%[^%\\s]+%/,\"operator\"],[/\\*\\*/,\"operator\"],[/%%/,\"operator\"],[/&&/,\"operator\"],[/\\|\\|/,\"operator\"],[/<</,\"operator\"],[/>>/,\"operator\"],[/[-+=&|!<>^~*/:$]/,\"operator\"]],strings:[[/'/,\"string.escape\",\"@stringBody\"],[/\"/,\"string.escape\",\"@dblStringBody\"]],stringBody:[[/\\\\./,{cases:{\"@special\":\"string\",\"@default\":\"error-token\"}}],[/'/,\"string.escape\",\"@popall\"],[/./,\"string\"]],dblStringBody:[[/\\\\./,{cases:{\"@special\":\"string\",\"@default\":\"error-token\"}}],[/\"/,\"string.escape\",\"@popall\"],[/./,\"string\"]]}};export{e as conf,o as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/Cza_XSSt.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Puppet\",\"fileTypes\":[\"pp\"],\"foldingStartMarker\":\"(^\\\\\\\\s*/\\\\\\\\*|(\\\\\\\\{|\\\\\\\\[|\\\\\\\\()\\\\\\\\s*$)\",\"foldingStopMarker\":\"(\\\\\\\\*/|^\\\\\\\\s*(\\\\\\\\}|\\\\\\\\]|\\\\\\\\)))\",\"name\":\"puppet\",\"patterns\":[{\"include\":\"#line_comment\"},{\"include\":\"#constants\"},{\"begin\":\"^\\\\\\\\s*/\\\\\\\\*\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.puppet\"},{\"begin\":\"\\\\\\\\b(node)\\\\\\\\b\",\"captures\":{\"1\":{\"name\":\"storage.type.puppet\"},\"2\":{\"name\":\"entity.name.type.class.puppet\"}},\"end\":\"(?={)\",\"name\":\"meta.definition.class.puppet\",\"patterns\":[{\"match\":\"\\\\\\\\bdefault\\\\\\\\b\",\"name\":\"keyword.puppet\"},{\"include\":\"#strings\"},{\"include\":\"#regex-literal\"}]},{\"begin\":\"\\\\\\\\b(class)\\\\\\\\s+((?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+|[a-z][a-z0-9_]*)\\\\\\\\s*\",\"captures\":{\"1\":{\"name\":\"storage.type.puppet\"},\"2\":{\"name\":\"entity.name.type.class.puppet\"}},\"end\":\"(?={)\",\"name\":\"meta.definition.class.puppet\",\"patterns\":[{\"begin\":\"\\\\\\\\b(inherits)\\\\\\\\b\\\\\\\\s+\",\"captures\":{\"1\":{\"name\":\"storage.modifier.puppet\"}},\"end\":\"(?=\\\\\\\\(|{)\",\"name\":\"meta.definition.class.inherits.puppet\",\"patterns\":[{\"match\":\"\\\\\\\\b((?:[-_A-Za-z0-9\\\\\".]+::)*[-_A-Za-z0-9\\\\\".]+)\\\\\\\\b\",\"name\":\"support.type.puppet\"}]},{\"include\":\"#line_comment\"},{\"include\":\"#resource-parameters\"},{\"include\":\"#parameter-default-types\"}]},{\"begin\":\"^\\\\\\\\s*(plan)\\\\\\\\s+((?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+|[a-z][a-z0-9_]*)\\\\\\\\s*\",\"captures\":{\"1\":{\"name\":\"storage.type.puppet\"},\"2\":{\"name\":\"entity.name.type.plan.puppet\"}},\"end\":\"(?={)\",\"name\":\"meta.definition.plan.puppet\",\"patterns\":[{\"include\":\"#line_comment\"},{\"include\":\"#resource-parameters\"},{\"include\":\"#parameter-default-types\"}]},{\"begin\":\"^\\\\\\\\s*(define|function)\\\\\\\\s+([a-z][a-z0-9_]*|(?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+)\\\\\\\\s*(\\\\\\\\()\",\"captures\":{\"1\":{\"name\":\"storage.type.function.puppet\"},\"2\":{\"name\":\"entity.name.function.puppet\"}},\"end\":\"(?={)\",\"name\":\"meta.function.puppet\",\"patterns\":[{\"include\":\"#line_comment\"},{\"include\":\"#resource-parameters\"},{\"include\":\"#parameter-default-types\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.puppet\"}},\"match\":\"\\\\\\\\b(case|else|elsif|if|unless)(?!::)\\\\\\\\b\"},{\"include\":\"#keywords\"},{\"include\":\"#resource-definition\"},{\"include\":\"#heredoc\"},{\"include\":\"#strings\"},{\"include\":\"#puppet-datatypes\"},{\"include\":\"#array\"},{\"match\":\"((\\\\\\\\$?)\\\\\"?[a-zA-Z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*\\\\\"?):(?=\\\\\\\\s+|$)\",\"name\":\"entity.name.section.puppet\"},{\"include\":\"#numbers\"},{\"include\":\"#variable\"},{\"begin\":\"\\\\\\\\b(import|include|contain|require)\\\\\\\\s+(?!.*=>)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.import.include.puppet\"}},\"contentName\":\"variable.parameter.include.puppet\",\"end\":\"(?=\\\\\\\\s|$)\",\"name\":\"meta.include.puppet\"},{\"match\":\"\\\\\\\\b\\\\\\\\w+\\\\\\\\s*(?==>)\\\\\\\\s*\",\"name\":\"constant.other.key.puppet\"},{\"match\":\"(?<={)\\\\\\\\s*\\\\\\\\w+\\\\\\\\s*(?=})\",\"name\":\"constant.other.bareword.puppet\"},{\"match\":\"\\\\\\\\b(alert|crit|debug|defined|emerg|err|escape|fail|failed|file|generate|gsub|info|notice|package|realize|search|tag|tagged|template|warning)\\\\\\\\b(?!.*{)\",\"name\":\"support.function.puppet\"},{\"match\":\"=>\",\"name\":\"punctuation.separator.key-value.puppet\"},{\"match\":\"->\",\"name\":\"keyword.control.orderarrow.puppet\"},{\"match\":\"~>\",\"name\":\"keyword.control.notifyarrow.puppet\"},{\"include\":\"#regex-literal\"}],\"repository\":{\"array\":{\"begin\":\"(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.array.begin.puppet\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.array.end.puppet\"}},\"name\":\"meta.array.puppet\",\"patterns\":[{\"match\":\"\\\\\\\\s*,\\\\\\\\s*\"},{\"include\":\"#parameter-default-types\"},{\"include\":\"#line_comment\"}]},\"constants\":{\"patterns\":[{\"match\":\"\\\\\\\\b(absent|directory|false|file|present|running|stopped|true)\\\\\\\\b(?!.*{)\",\"name\":\"constant.language.puppet\"}]},\"double-quoted-string\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.puppet\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.puppet\"}},\"name\":\"string.quoted.double.interpolated.puppet\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#interpolated_puppet\"}]},\"escaped_char\":{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.puppet\"},\"function_call\":{\"begin\":\"([a-zA-Z_][a-zA-Z0-9_]*)(\\\\\\\\()\",\"end\":\"\\\\\\\\)\",\"name\":\"meta.function-call.puppet\",\"patterns\":[{\"include\":\"#parameter-default-types\"},{\"match\":\",\",\"name\":\"punctuation.separator.parameters.puppet\"}]},\"hash\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.hash.begin.puppet\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.hash.end.puppet\"}},\"name\":\"meta.hash.puppet\",\"patterns\":[{\"match\":\"\\\\\\\\b\\\\\\\\w+\\\\\\\\s*(?==>)\\\\\\\\s*\",\"name\":\"constant.other.key.puppet\"},{\"include\":\"#parameter-default-types\"},{\"include\":\"#line_comment\"}]},\"heredoc\":{\"patterns\":[{\"begin\":\"@\\\\\\\\([[:blank:]]*\\\\\"([^:\\\\\\\\/) \\\\\\\\t]+)\\\\\"[[:blank:]]*(:[[:blank:]]*[a-z][a-zA-Z0-9_+]*[[:blank:]]*)?(\\\\\\\\/[[:blank:]]*[tsrnL$]*)?[[:blank:]]*\\\\\\\\)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.puppet\"}},\"end\":\"^[[:blank:]]*(\\\\\\\\|[[:blank:]]*-|\\\\\\\\||-)?[[:blank:]]*\\\\\\\\1\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.puppet\"}},\"name\":\"string.interpolated.heredoc.puppet\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#interpolated_puppet\"}]},{\"begin\":\"@\\\\\\\\([[:blank:]]*([^:\\\\\\\\/) \\\\\\\\t]+)[[:blank:]]*(:[[:blank:]]*[a-z][a-zA-Z0-9_+]*[[:blank:]]*)?(\\\\\\\\/[[:blank:]]*[tsrnL$]*)?[[:blank:]]*\\\\\\\\)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.puppet\"}},\"end\":\"^[[:blank:]]*(\\\\\\\\|[[:blank:]]*-|\\\\\\\\||-)?[[:blank:]]*\\\\\\\\1\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.puppet\"}},\"name\":\"string.unquoted.heredoc.puppet\"}]},\"interpolated_puppet\":{\"patterns\":[{\"begin\":\"(\\\\\\\\${)(\\\\\\\\d+)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.embedded.begin.puppet\"},\"2\":{\"name\":\"source.puppet variable.other.readwrite.global.pre-defined.puppet\"}},\"contentName\":\"source.puppet\",\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.puppet\"}},\"name\":\"meta.embedded.line.puppet\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(\\\\\\\\${)(_[a-zA-Z0-9_]*)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.embedded.begin.puppet\"},\"2\":{\"name\":\"source.puppet variable.other.readwrite.global.puppet\"}},\"contentName\":\"source.puppet\",\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.puppet\"}},\"name\":\"meta.embedded.line.puppet\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(\\\\\\\\${)(([a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)*)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.embedded.begin.puppet\"},\"2\":{\"name\":\"source.puppet variable.other.readwrite.global.puppet\"}},\"contentName\":\"source.puppet\",\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.puppet\"}},\"name\":\"meta.embedded.line.puppet\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\${\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.puppet\"}},\"contentName\":\"source.puppet\",\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.puppet\"}},\"name\":\"meta.embedded.line.puppet\",\"patterns\":[{\"include\":\"$self\"}]}]},\"keywords\":{\"captures\":{\"1\":{\"name\":\"keyword.puppet\"}},\"match\":\"\\\\\\\\b(undef)\\\\\\\\b\"},\"line_comment\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.line.number-sign.puppet\"},\"2\":{\"name\":\"punctuation.definition.comment.puppet\"}},\"match\":\"^((#).*$\\\\\\\\n?)\",\"name\":\"meta.comment.full-line.puppet\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.puppet\"}},\"match\":\"(#).*$\\\\\\\\n?\",\"name\":\"comment.line.number-sign.puppet\"}]},\"nested_braces\":{\"begin\":\"\\\\\\\\{\",\"captures\":{\"1\":{\"name\":\"punctuation.section.scope.puppet\"}},\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#nested_braces\"}]},\"nested_braces_interpolated\":{\"begin\":\"\\\\\\\\{\",\"captures\":{\"1\":{\"name\":\"punctuation.section.scope.puppet\"}},\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"include\":\"#nested_braces_interpolated\"}]},\"nested_brackets\":{\"begin\":\"\\\\\\\\[\",\"captures\":{\"1\":{\"name\":\"punctuation.section.scope.puppet\"}},\"end\":\"\\\\\\\\]\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#nested_brackets\"}]},\"nested_brackets_interpolated\":{\"begin\":\"\\\\\\\\[\",\"captures\":{\"1\":{\"name\":\"punctuation.section.scope.puppet\"}},\"end\":\"\\\\\\\\]\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"include\":\"#nested_brackets_interpolated\"}]},\"nested_parens\":{\"begin\":\"\\\\\\\\(\",\"captures\":{\"1\":{\"name\":\"punctuation.section.scope.puppet\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#nested_parens\"}]},\"nested_parens_interpolated\":{\"begin\":\"\\\\\\\\(\",\"captures\":{\"1\":{\"name\":\"punctuation.section.scope.puppet\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#escaped_char\"},{\"include\":\"#variable\"},{\"include\":\"#nested_parens_interpolated\"}]},\"numbers\":{\"patterns\":[{\"comment\":\"HEX 0x 0-f\",\"match\":\"(?<!\\\\\\\\w|\\\\\\\\d)([-+]?)(?i:0x)(?i:[0-9a-f])+(?!\\\\\\\\w|\\\\\\\\d)\",\"name\":\"constant.numeric.hexadecimal.puppet\"},{\"comment\":\"INTEGERS [(+|-)] digits [e [(+|-)] digits]\",\"match\":\"(?<!\\\\\\\\w|\\\\\\\\.)([-+]?)(?<!\\\\\\\\d)\\\\\\\\d+(?i:e(\\\\\\\\+|-){0,1}\\\\\\\\d+){0,1}(?!\\\\\\\\w|\\\\\\\\d|\\\\\\\\.)\",\"name\":\"constant.numeric.integer.puppet\"},{\"comment\":\"FLOAT [(+|-)] digits . digits [e [(+|-)] digits]\",\"match\":\"(?<!\\\\\\\\w)([-+]?)\\\\\\\\d+\\\\\\\\.\\\\\\\\d+(?i:e(\\\\\\\\+|-){0,1}\\\\\\\\d+){0,1}(?!\\\\\\\\w|\\\\\\\\d)\",\"name\":\"constant.numeric.integer.puppet\"}]},\"parameter-default-types\":{\"patterns\":[{\"include\":\"#strings\"},{\"include\":\"#numbers\"},{\"include\":\"#variable\"},{\"include\":\"#hash\"},{\"include\":\"#array\"},{\"include\":\"#function_call\"},{\"include\":\"#constants\"},{\"include\":\"#puppet-datatypes\"}]},\"puppet-datatypes\":{\"patterns\":[{\"comment\":\"Puppet Data type\",\"match\":\"(?<![a-zA-Z\\\\\\\\$])([A-Z][a-zA-Z0-9_]*)(?![a-zA-Z0-9_])\",\"name\":\"storage.type.puppet\"}]},\"regex-literal\":{\"comment\":\"Puppet Regular expression literal without interpolation\",\"match\":\"(\\\\\\\\/)(.+?)(?:[^\\\\\\\\\\\\\\\\]\\\\\\\\/)\",\"name\":\"string.regexp.literal.puppet\"},\"resource-definition\":{\"begin\":\"(?:^|\\\\\\\\b)(::[a-z][a-z0-9_]*|[a-z][a-z0-9_]*|(?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+)\\\\\\\\s*({)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"meta.definition.resource.puppet storage.type.puppet\"}},\"contentName\":\"entity.name.section.puppet\",\"end\":\":\",\"patterns\":[{\"include\":\"#strings\"},{\"include\":\"#variable\"},{\"include\":\"#array\"}]},\"resource-parameters\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.other.puppet\"},\"2\":{\"name\":\"punctuation.definition.variable.puppet\"}},\"match\":\"((\\\\\\\\$+)[a-zA-Z_][a-zA-Z0-9_]*)\\\\\\\\s*(?=,|\\\\\\\\))\",\"name\":\"meta.function.argument.puppet\"},{\"begin\":\"((\\\\\\\\$+)[a-zA-Z_][a-zA-Z0-9_]*)(?:\\\\\\\\s*(=)\\\\\\\\s*)\\\\\\\\s*\",\"captures\":{\"1\":{\"name\":\"variable.other.puppet\"},\"2\":{\"name\":\"punctuation.definition.variable.puppet\"},\"3\":{\"name\":\"keyword.operator.assignment.puppet\"}},\"end\":\"(?=,|\\\\\\\\))\",\"name\":\"meta.function.argument.puppet\",\"patterns\":[{\"include\":\"#parameter-default-types\"}]}]},\"single-quoted-string\":{\"begin\":\"\\'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.puppet\"}},\"end\":\"\\'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.puppet\"}},\"name\":\"string.quoted.single.puppet\",\"patterns\":[{\"include\":\"#escaped_char\"}]},\"strings\":{\"patterns\":[{\"include\":\"#double-quoted-string\"},{\"include\":\"#single-quoted-string\"}]},\"variable\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.puppet\"}},\"match\":\"(\\\\\\\\$)(\\\\\\\\d+)\",\"name\":\"variable.other.readwrite.global.pre-defined.puppet\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.puppet\"}},\"match\":\"(\\\\\\\\$)_[a-zA-Z0-9_]*\",\"name\":\"variable.other.readwrite.global.puppet\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.puppet\"}},\"match\":\"(\\\\\\\\$)(([a-z][a-zA-Z0-9_]*)?(?:::[a-z][a-zA-Z0-9_]*)*)\",\"name\":\"variable.other.readwrite.global.puppet\"}]}},\"scopeName\":\"source.puppet\"}')),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/CzouJOBO.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Racket\",\"name\":\"racket\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#not-atom\"},{\"include\":\"#atom\"},{\"include\":\"#quote\"},{\"match\":\"^#lang\",\"name\":\"keyword.other.racket\"}],\"repository\":{\"args\":{\"patterns\":[{\"include\":\"#keyword\"},{\"include\":\"#comment\"},{\"include\":\"#default-args\"},{\"match\":\"[^(\\\\\\\\#)\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s][^()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s]*\",\"name\":\"variable.parameter.racket\"}]},\"argument\":{\"patterns\":[{\"begin\":\"(?<=[(\\\\\\\\[{])\\\\\\\\s*(\\\\\\\\|)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.verbatim.begin.racket\"}},\"contentName\":\"variable.parameter.racket\",\"end\":\"\\\\\\\\|\",\"endCaptures\":{\"0\":\"punctuation.verbatim.end.racket\"}},{\"begin\":\"(?<=[(\\\\\\\\[{])\\\\\\\\s*(\\\\\\\\#%|\\\\\\\\\\\\\\\\\\\\\\\\ |[^\\\\\\\\#()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])\",\"beginCaptures\":{\"1\":{\"name\":\"variable.parameter.racket\"}},\"contentName\":\"variable.parameter.racket\",\"end\":\"(?=[()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\ \"},{\"begin\":\"\\\\\\\\|\",\"beginCaptures\":{\"0\":\"punctuation.verbatim.begin.racket\"},\"end\":\"\\\\\\\\|\",\"endCaptures\":{\"0\":\"punctuation.verbatim.end.racket\"}}]}]},\"argument-struct\":{\"patterns\":[{\"begin\":\"(?<=[(\\\\\\\\[{])\\\\\\\\s*(\\\\\\\\|)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.verbatim.begin.racket\"}},\"contentName\":\"variable.other.member.racket\",\"end\":\"\\\\\\\\|\",\"endCaptures\":{\"0\":\"punctuation.verbatim.end.racket\"}},{\"begin\":\"(?<=[(\\\\\\\\[{])\\\\\\\\s*(\\\\\\\\#%|\\\\\\\\\\\\\\\\\\\\\\\\ |[^\\\\\\\\#()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.member.racket\"}},\"contentName\":\"variable.other.member.racket\",\"end\":\"(?=[()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\ \"},{\"begin\":\"\\\\\\\\|\",\"beginCaptures\":{\"0\":\"punctuation.verbatim.begin.racket\"},\"end\":\"\\\\\\\\|\",\"endCaptures\":{\"0\":\"punctuation.verbatim.end.racket\"}}]}]},\"atom\":{\"patterns\":[{\"include\":\"#bool\"},{\"include\":\"#number\"},{\"include\":\"#string\"},{\"include\":\"#keyword\"},{\"include\":\"#character\"},{\"include\":\"#symbol\"},{\"include\":\"#variable\"}]},\"base-string\":{\"patterns\":[{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":[{\"name\":\"punctuation.definition.string.begin.racket\"}]},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":[{\"name\":\"punctuation.definition.string.end.racket\"}]},\"name\":\"string.quoted.double.racket\",\"patterns\":[{\"include\":\"#escape-char\"}]}]},\"binding\":{\"patterns\":[{\"begin\":\"(?<=[(\\\\\\\\[{])\\\\\\\\s*(\\\\\\\\|)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.verbatim.begin.racket\"}},\"contentName\":\"entity.name.constant\",\"end\":\"\\\\\\\\|\",\"endCaptures\":{\"0\":\"punctuation.verbatim.end.racket\"}},{\"begin\":\"(?<=[(\\\\\\\\[{])\\\\\\\\s*(\\\\\\\\#%|\\\\\\\\\\\\\\\\\\\\\\\\ |[^\\\\\\\\#()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.constant\"}},\"contentName\":\"entity.name.constant\",\"end\":\"(?=[()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\ \"},{\"begin\":\"\\\\\\\\|\",\"beginCaptures\":{\"0\":\"punctuation.verbatim.begin.racket\"},\"end\":\"\\\\\\\\|\",\"endCaptures\":{\"0\":\"punctuation.verbatim.end.racket\"}}]}]},\"bool\":{\"patterns\":[{\"match\":\"(?<=^|[()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])\\\\\\\\#(?:[tT](?:rue)?|[fF](?:alse)?)(?=[()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])\",\"name\":\"constant.language.racket\"}]},\"builtin-functions\":{\"patterns\":[{\"include\":\"#format\"},{\"include\":\"#define\"},{\"include\":\"#lambda\"},{\"include\":\"#struct\"},{\"captures\":{\"1\":{\"name\":\"support.function.racket\"}},\"match\":\"(?<=$|[()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])(\\\\\\\\.\\\\\\\\.\\\\\\\\.|_|syntax-id-rules|syntax-rules|\\\\\\\\#%app|\\\\\\\\#%datum|\\\\\\\\#%declare|\\\\\\\\#%expression|\\\\\\\\#%module-begin|\\\\\\\\#%plain-app|\\\\\\\\#%plain-lambda|\\\\\\\\#%plain-module-begin|\\\\\\\\#%printing-module-begin|\\\\\\\\#%provide|\\\\\\\\#%require|\\\\\\\\#%stratified-body|\\\\\\\\#%top|\\\\\\\\#%top-interaction|\\\\\\\\#%variable-reference|\\\\\\\\.\\\\\\\\.\\\\\\\\.|:do-in|=>|_|all-defined-out|all-from-out|and|apply|arity-at-least|begin|begin-for-syntax|begin0|call-with-input-file|call-with-input-file\\\\\\\\*|call-with-output-file|call-with-output-file\\\\\\\\*|case|case-lambda|combine-in|combine-out|cond|date|date\\\\\\\\*|define|define-for-syntax|define-logger|define-namespace-anchor|define-sequence-syntax|define-struct|define-struct\\\\\\\\/derived|define-syntax|define-syntax-rule|define-syntaxes|define-values|define-values-for-syntax|do|else|except-in|except-out|exn|exn:break|exn:break:hang-up|exn:break:terminate|exn:fail|exn:fail:contract|exn:fail:contract:arity|exn:fail:contract:continuation|exn:fail:contract:divide-by-zero|exn:fail:contract:non-fixnum-result|exn:fail:contract:variable|exn:fail:filesystem|exn:fail:filesystem:errno|exn:fail:filesystem:exists|exn:fail:filesystem:missing-module|exn:fail:filesystem:version|exn:fail:network|exn:fail:network:errno|exn:fail:out-of-memory|exn:fail:read|exn:fail:read:eof|exn:fail:read:non-char|exn:fail:syntax|exn:fail:syntax:missing-module|exn:fail:syntax:unbound|exn:fail:unsupported|exn:fail:user|file|for|for\\\\\\\\*|for\\\\\\\\*\\\\\\\\/and|for\\\\\\\\*\\\\\\\\/first|for\\\\\\\\*\\\\\\\\/fold|for\\\\\\\\*\\\\\\\\/fold\\\\\\\\/derived|for\\\\\\\\*\\\\\\\\/hash|for\\\\\\\\*\\\\\\\\/hasheq|for\\\\\\\\*\\\\\\\\/hasheqv|for\\\\\\\\*\\\\\\\\/last|for\\\\\\\\*\\\\\\\\/list|for\\\\\\\\*\\\\\\\\/lists|for\\\\\\\\*\\\\\\\\/or|for\\\\\\\\*\\\\\\\\/product|for\\\\\\\\*\\\\\\\\/sum|for\\\\\\\\*\\\\\\\\/vector|for-label|for-meta|for-syntax|for-template|for\\\\\\\\/and|for\\\\\\\\/first|for\\\\\\\\/fold|for\\\\\\\\/fold\\\\\\\\/derived|for\\\\\\\\/hash|for\\\\\\\\/hasheq|for\\\\\\\\/hasheqv|for\\\\\\\\/last|for\\\\\\\\/list|for\\\\\\\\/lists|for\\\\\\\\/or|for\\\\\\\\/product|for\\\\\\\\/sum|for\\\\\\\\/vector|gen:custom-write|gen:equal\\\\\\\\+hash|if|in-bytes|in-bytes-lines|in-directory|in-hash|in-hash-keys|in-hash-pairs|in-hash-values|in-immutable-hash|in-immutable-hash-keys|in-immutable-hash-pairs|in-immutable-hash-values|in-indexed|in-input-port-bytes|in-input-port-chars|in-lines|in-list|in-mlist|in-mutable-hash|in-mutable-hash-keys|in-mutable-hash-pairs|in-mutable-hash-values|in-naturals|in-port|in-producer|in-range|in-string|in-value|in-vector|in-weak-hash|in-weak-hash-keys|in-weak-hash-pairs|in-weak-hash-values|lambda|let|let\\\\\\\\*|let\\\\\\\\*-values|let-syntax|let-syntaxes|let-values|let\\\\\\\\/cc|let\\\\\\\\/ec|letrec|letrec-syntax|letrec-syntaxes|letrec-syntaxes\\\\\\\\+values|letrec-values|lib|local-require|log-debug|log-error|log-fatal|log-info|log-warning|module|module\\\\\\\\*|module\\\\\\\\+|only-in|only-meta-in|open-input-file|open-input-output-file|open-output-file|or|parameterize|parameterize\\\\\\\\*|parameterize-break|planet|prefix-in|prefix-out|protect-out|provide|quasiquote|quasisyntax|quasisyntax\\\\\\\\/loc|quote|quote-syntax|quote-syntax\\\\\\\\/prune|regexp-match\\\\\\\\*|regexp-match-peek-positions\\\\\\\\*|regexp-match-positions\\\\\\\\*|relative-in|rename-in|rename-out|require|set!|set!-values|sort|srcloc|struct|struct-copy|struct-field-index|struct-out|submod|syntax|syntax-case|syntax-case\\\\\\\\*|syntax-id-rules|syntax-rules|syntax\\\\\\\\/loc|time|unless|unquote|unquote-splicing|unsyntax|unsyntax-splicing|when|with-continuation-mark|with-handlers|with-handlers\\\\\\\\*|with-input-from-file|with-output-to-file|with-syntax|λ|\\\\\\\\#%app|\\\\\\\\#%datum|\\\\\\\\#%declare|\\\\\\\\#%expression|\\\\\\\\#%module-begin|\\\\\\\\#%plain-app|\\\\\\\\#%plain-lambda|\\\\\\\\#%plain-module-begin|\\\\\\\\#%printing-module-begin|\\\\\\\\#%provide|\\\\\\\\#%require|\\\\\\\\#%stratified-body|\\\\\\\\#%top|\\\\\\\\#%top-interaction|\\\\\\\\#%variable-reference|->|->\\\\\\\\*|->\\\\\\\\*m|->d|->dm|->i|->m|\\\\\\\\.\\\\\\\\.\\\\\\\\.|:do-in|<=\\\\\\\\/c|=\\\\\\\\/c|==|=>|>=\\\\\\\\/c|_|absent|abstract|add-between|all-defined-out|all-from-out|and|and\\\\\\\\/c|any|any\\\\\\\\/c|apply|arity-at-least|arrow-contract-info|augment|augment\\\\\\\\*|augment-final|augment-final\\\\\\\\*|augride|augride\\\\\\\\*|bad-number-of-results|begin|begin-for-syntax|begin0|between\\\\\\\\/c|blame-add-context|box-immutable\\\\\\\\/c|box\\\\\\\\/c|call-with-atomic-output-file|call-with-file-lock\\\\\\\\/timeout|call-with-input-file|call-with-input-file\\\\\\\\*|call-with-output-file|call-with-output-file\\\\\\\\*|case|case->|case->m|case-lambda|channel\\\\\\\\/c|char-in\\\\\\\\/c|check-duplicates|class|class\\\\\\\\*|class-field-accessor|class-field-mutator|class\\\\\\\\/c|class\\\\\\\\/derived|combine-in|combine-out|command-line|compound-unit|compound-unit\\\\\\\\/infer|cond|cons\\\\\\\\/c|cons\\\\\\\\/dc|continuation-mark-key\\\\\\\\/c|contract|contract-exercise|contract-out|contract-struct|contracted|copy-directory\\\\\\\\/files|current-contract-region|date|date\\\\\\\\*|define|define-compound-unit|define-compound-unit\\\\\\\\/infer|define-contract-struct|define-custom-hash-types|define-custom-set-types|define-for-syntax|define-local-member-name|define-logger|define-match-expander|define-member-name|define-module-boundary-contract|define-namespace-anchor|define-opt\\\\\\\\/c|define-sequence-syntax|define-serializable-class|define-serializable-class\\\\\\\\*|define-signature|define-signature-form|define-struct|define-struct\\\\\\\\/contract|define-struct\\\\\\\\/derived|define-syntax|define-syntax-rule|define-syntaxes|define-unit|define-unit-binding|define-unit-from-context|define-unit\\\\\\\\/contract|define-unit\\\\\\\\/new-import-export|define-unit\\\\\\\\/s|define-values|define-values-for-export|define-values-for-syntax|define-values\\\\\\\\/invoke-unit|define-values\\\\\\\\/invoke-unit\\\\\\\\/infer|define\\\\\\\\/augment|define\\\\\\\\/augment-final|define\\\\\\\\/augride|define\\\\\\\\/contract|define\\\\\\\\/final-prop|define\\\\\\\\/match|define\\\\\\\\/overment|define\\\\\\\\/override|define\\\\\\\\/override-final|define\\\\\\\\/private|define\\\\\\\\/public|define\\\\\\\\/public-final|define\\\\\\\\/pubment|define\\\\\\\\/subexpression-pos-prop|define\\\\\\\\/subexpression-pos-prop\\\\\\\\/name|delay|delay\\\\\\\\/idle|delay\\\\\\\\/name|delay\\\\\\\\/strict|delay\\\\\\\\/sync|delay\\\\\\\\/thread|delete-directory\\\\\\\\/files|dict->list|dict-can-functional-set\\\\\\\\?|dict-can-remove-keys\\\\\\\\?|dict-clear|dict-clear!|dict-copy|dict-count|dict-empty\\\\\\\\?|dict-for-each|dict-has-key\\\\\\\\?|dict-implements\\\\\\\\/c|dict-implements\\\\\\\\?|dict-iterate-first|dict-iterate-key|dict-iterate-next|dict-iterate-value|dict-keys|dict-map|dict-mutable\\\\\\\\?|dict-ref|dict-ref!|dict-remove|dict-remove!|dict-set|dict-set!|dict-set\\\\\\\\*|dict-set\\\\\\\\*!|dict-update|dict-update!|dict-values|dict\\\\\\\\?|display-lines|display-lines-to-file|display-to-file|do|dynamic->\\\\\\\\*|dynamic-place|dynamic-place\\\\\\\\*|else|eof-evt|except|except-in|except-out|exn|exn:break|exn:break:hang-up|exn:break:terminate|exn:fail|exn:fail:contract|exn:fail:contract:arity|exn:fail:contract:blame|exn:fail:contract:continuation|exn:fail:contract:divide-by-zero|exn:fail:contract:non-fixnum-result|exn:fail:contract:variable|exn:fail:filesystem|exn:fail:filesystem:errno|exn:fail:filesystem:exists|exn:fail:filesystem:missing-module|exn:fail:filesystem:version|exn:fail:network|exn:fail:network:errno|exn:fail:object|exn:fail:out-of-memory|exn:fail:read|exn:fail:read:eof|exn:fail:read:non-char|exn:fail:syntax|exn:fail:syntax:missing-module|exn:fail:syntax:unbound|exn:fail:unsupported|exn:fail:user|export|extends|failure-cont|field|field-bound\\\\\\\\?|file|file->bytes|file->bytes-lines|file->lines|file->list|file->string|file->value|find-files|find-relative-path|first-or\\\\\\\\/c|flat-contract-with-explanation|flat-murec-contract|flat-rec-contract|for|for\\\\\\\\*|for\\\\\\\\*\\\\\\\\/and|for\\\\\\\\*\\\\\\\\/async|for\\\\\\\\*\\\\\\\\/first|for\\\\\\\\*\\\\\\\\/fold|for\\\\\\\\*\\\\\\\\/fold\\\\\\\\/derived|for\\\\\\\\*\\\\\\\\/hash|for\\\\\\\\*\\\\\\\\/hasheq|for\\\\\\\\*\\\\\\\\/hasheqv|for\\\\\\\\*\\\\\\\\/last|for\\\\\\\\*\\\\\\\\/list|for\\\\\\\\*\\\\\\\\/lists|for\\\\\\\\*\\\\\\\\/mutable-set|for\\\\\\\\*\\\\\\\\/mutable-seteq|for\\\\\\\\*\\\\\\\\/mutable-seteqv|for\\\\\\\\*\\\\\\\\/or|for\\\\\\\\*\\\\\\\\/product|for\\\\\\\\*\\\\\\\\/set|for\\\\\\\\*\\\\\\\\/seteq|for\\\\\\\\*\\\\\\\\/seteqv|for\\\\\\\\*\\\\\\\\/stream|for\\\\\\\\*\\\\\\\\/sum|for\\\\\\\\*\\\\\\\\/vector|for\\\\\\\\*\\\\\\\\/weak-set|for\\\\\\\\*\\\\\\\\/weak-seteq|for\\\\\\\\*\\\\\\\\/weak-seteqv|for-label|for-meta|for-syntax|for-template|for\\\\\\\\/and|for\\\\\\\\/async|for\\\\\\\\/first|for\\\\\\\\/fold|for\\\\\\\\/fold\\\\\\\\/derived|for\\\\\\\\/hash|for\\\\\\\\/hasheq|for\\\\\\\\/hasheqv|for\\\\\\\\/last|for\\\\\\\\/list|for\\\\\\\\/lists|for\\\\\\\\/mutable-set|for\\\\\\\\/mutable-seteq|for\\\\\\\\/mutable-seteqv|for\\\\\\\\/or|for\\\\\\\\/product|for\\\\\\\\/set|for\\\\\\\\/seteq|for\\\\\\\\/seteqv|for\\\\\\\\/stream|for\\\\\\\\/sum|for\\\\\\\\/vector|for\\\\\\\\/weak-set|for\\\\\\\\/weak-seteq|for\\\\\\\\/weak-seteqv|gen:custom-write|gen:dict|gen:equal\\\\\\\\+hash|gen:set|gen:stream|generic|get-field|get-preference|hash\\\\\\\\/c|hash\\\\\\\\/dc|if|implies|import|in-bytes|in-bytes-lines|in-dict|in-dict-keys|in-dict-values|in-directory|in-hash|in-hash-keys|in-hash-pairs|in-hash-values|in-immutable-hash|in-immutable-hash-keys|in-immutable-hash-pairs|in-immutable-hash-values|in-immutable-set|in-indexed|in-input-port-bytes|in-input-port-chars|in-lines|in-list|in-mlist|in-mutable-hash|in-mutable-hash-keys|in-mutable-hash-pairs|in-mutable-hash-values|in-mutable-set|in-naturals|in-port|in-producer|in-range|in-set|in-slice|in-stream|in-string|in-syntax|in-value|in-vector|in-weak-hash|in-weak-hash-keys|in-weak-hash-pairs|in-weak-hash-values|in-weak-set|include|include-at\\\\\\\\/relative-to|include-at\\\\\\\\/relative-to\\\\\\\\/reader|include\\\\\\\\/reader|inherit|inherit-field|inherit\\\\\\\\/inner|inherit\\\\\\\\/super|init|init-depend|init-field|init-rest|inner|inspect|instantiate|integer-in|interface|interface\\\\\\\\*|invariant-assertion|invoke-unit|invoke-unit\\\\\\\\/infer|lambda|lazy|let|let\\\\\\\\*|let\\\\\\\\*-values|let-syntax|let-syntaxes|let-values|let\\\\\\\\/cc|let\\\\\\\\/ec|letrec|letrec-syntax|letrec-syntaxes|letrec-syntaxes\\\\\\\\+values|letrec-values|lib|link|list\\\\\\\\*of|list\\\\\\\\/c|listof|local|local-require|log-debug|log-error|log-fatal|log-info|log-warning|make-custom-hash|make-custom-hash-types|make-custom-set|make-custom-set-types|make-handle-get-preference-locked|make-immutable-custom-hash|make-mutable-custom-set|make-object|make-temporary-file|make-weak-custom-hash|make-weak-custom-set|match|match\\\\\\\\*|match\\\\\\\\*\\\\\\\\/derived|match-define|match-define-values|match-lambda|match-lambda\\\\\\\\*|match-lambda\\\\\\\\*\\\\\\\\*|match-let|match-let\\\\\\\\*|match-let\\\\\\\\*-values|match-let-values|match-letrec|match-letrec-values|match\\\\\\\\/derived|match\\\\\\\\/values|member-name-key|mixin|module|module\\\\\\\\*|module\\\\\\\\+|nand|new|new-∀\\\\\\\\/c|new-∃\\\\\\\\/c|non-empty-listof|none\\\\\\\\/c|nor|not\\\\\\\\/c|object-contract|object\\\\\\\\/c|one-of\\\\\\\\/c|only|only-in|only-meta-in|open|open-input-file|open-input-output-file|open-output-file|opt\\\\\\\\/c|or|or\\\\\\\\/c|overment|overment\\\\\\\\*|override|override\\\\\\\\*|override-final|override-final\\\\\\\\*|parameter\\\\\\\\/c|parameterize|parameterize\\\\\\\\*|parameterize-break|parametric->\\\\\\\\/c|pathlist-closure|peek-bytes!-evt|peek-bytes-avail!-evt|peek-bytes-evt|peek-string!-evt|peek-string-evt|peeking-input-port|place|place\\\\\\\\*|place\\\\\\\\/context|planet|port->bytes|port->bytes-lines|port->lines|port->string|prefix|prefix-in|prefix-out|pretty-format|private|private\\\\\\\\*|procedure-arity-includes\\\\\\\\/c|process|process\\\\\\\\*|process\\\\\\\\*\\\\\\\\/ports|process\\\\\\\\/ports|promise\\\\\\\\/c|prompt-tag\\\\\\\\/c|prop:dict\\\\\\\\/contract|protect-out|provide|provide-signature-elements|provide\\\\\\\\/contract|public|public\\\\\\\\*|public-final|public-final\\\\\\\\*|pubment|pubment\\\\\\\\*|quasiquote|quasisyntax|quasisyntax\\\\\\\\/loc|quote|quote-syntax|quote-syntax\\\\\\\\/prune|raise-blame-error|raise-not-cons-blame-error|range|read-bytes!-evt|read-bytes-avail!-evt|read-bytes-evt|read-bytes-line-evt|read-line-evt|read-string!-evt|read-string-evt|real-in|recontract-out|recursive-contract|regexp-match\\\\\\\\*|regexp-match-evt|regexp-match-peek-positions\\\\\\\\*|regexp-match-positions\\\\\\\\*|relative-in|relocate-input-port|relocate-output-port|remove-duplicates|rename|rename-in|rename-inner|rename-out|rename-super|require|send|send\\\\\\\\*|send\\\\\\\\+|send-generic|send\\\\\\\\/apply|send\\\\\\\\/keyword-apply|sequence\\\\\\\\/c|set!|set!-values|set-field!|set\\\\\\\\/c|shared|sort|srcloc|stream|stream\\\\\\\\*|stream-cons|string-join|string-len\\\\\\\\/c|string-normalize-spaces|string-replace|string-split|string-trim|struct|struct\\\\\\\\*|struct-copy|struct-field-index|struct-out|struct\\\\\\\\/c|struct\\\\\\\\/ctc|struct\\\\\\\\/dc|submod|super|super-instantiate|super-make-object|super-new|symbols|syntax|syntax-case|syntax-case\\\\\\\\*|syntax-id-rules|syntax-rules|syntax\\\\\\\\/c|syntax\\\\\\\\/loc|system|system\\\\\\\\*|system\\\\\\\\*\\\\\\\\/exit-code|system\\\\\\\\/exit-code|tag|this|this%|thunk|thunk\\\\\\\\*|time|transplant-input-port|transplant-output-port|unconstrained-domain->|unit|unit-from-context|unit\\\\\\\\/c|unit\\\\\\\\/new-import-export|unit\\\\\\\\/s|unless|unquote|unquote-splicing|unsyntax|unsyntax-splicing|values\\\\\\\\/drop|vector-immutable\\\\\\\\/c|vector-immutableof|vector-sort|vector-sort!|vector\\\\\\\\/c|vectorof|when|with-continuation-mark|with-contract|with-contract-continuation-mark|with-handlers|with-handlers\\\\\\\\*|with-input-from-file|with-method|with-output-to-file|with-syntax|wrapped-extra-arg-arrow|write-to-file|~\\\\\\\\.a|~\\\\\\\\.s|~\\\\\\\\.v|~a|~e|~r|~s|~v|λ|expand-for-clause|for-clause-syntax-protect|syntax-pattern-variable\\\\\\\\?|\\\\\\\\*|\\\\\\\\+|-|\\\\\\\\/|<|<=|=|>|>=|abort-current-continuation|abs|absolute-path\\\\\\\\?|acos|add1|alarm-evt|always-evt|andmap|angle|append|arithmetic-shift|arity-at-least-value|arity-at-least\\\\\\\\?|asin|assf|assoc|assq|assv|atan|banner|bitwise-and|bitwise-bit-field|bitwise-bit-set\\\\\\\\?|bitwise-ior|bitwise-not|bitwise-xor|boolean\\\\\\\\?|bound-identifier=\\\\\\\\?|box|box-cas!|box-immutable|box\\\\\\\\?|break-enabled|break-parameterization\\\\\\\\?|break-thread|build-list|build-path|build-path\\\\\\\\/convention-type|build-string|build-vector|byte-pregexp|byte-pregexp\\\\\\\\?|byte-ready\\\\\\\\?|byte-regexp|byte-regexp\\\\\\\\?|byte\\\\\\\\?|bytes|bytes->immutable-bytes|bytes->list|bytes->path|bytes->path-element|bytes->string\\\\\\\\/latin-1|bytes->string\\\\\\\\/locale|bytes->string\\\\\\\\/utf-8|bytes-append|bytes-close-converter|bytes-convert|bytes-convert-end|bytes-converter\\\\\\\\?|bytes-copy|bytes-copy!|bytes-environment-variable-name\\\\\\\\?|bytes-fill!|bytes-length|bytes-open-converter|bytes-ref|bytes-set!|bytes-utf-8-index|bytes-utf-8-length|bytes-utf-8-ref|bytes<\\\\\\\\?|bytes=\\\\\\\\?|bytes>\\\\\\\\?|bytes\\\\\\\\?|caaaar|caaadr|caaar|caadar|caaddr|caadr|caar|cadaar|cadadr|cadar|caddar|cadddr|caddr|cadr|call-in-nested-thread|call-with-break-parameterization|call-with-composable-continuation|call-with-continuation-barrier|call-with-continuation-prompt|call-with-current-continuation|call-with-default-reading-parameterization|call-with-escape-continuation|call-with-exception-handler|call-with-immediate-continuation-mark|call-with-parameterization|call-with-semaphore|call-with-semaphore\\\\\\\\/enable-break|call-with-values|call\\\\\\\\/cc|call\\\\\\\\/ec|car|cdaaar|cdaadr|cdaar|cdadar|cdaddr|cdadr|cdar|cddaar|cddadr|cddar|cdddar|cddddr|cdddr|cddr|cdr|ceiling|channel-get|channel-put|channel-put-evt|channel-put-evt\\\\\\\\?|channel-try-get|channel\\\\\\\\?|chaperone-box|chaperone-channel|chaperone-continuation-mark-key|chaperone-evt|chaperone-hash|chaperone-of\\\\\\\\?|chaperone-procedure|chaperone-procedure\\\\\\\\*|chaperone-prompt-tag|chaperone-struct|chaperone-struct-type|chaperone-vector|chaperone-vector\\\\\\\\*|chaperone\\\\\\\\?|char->integer|char-alphabetic\\\\\\\\?|char-blank\\\\\\\\?|char-ci<=\\\\\\\\?|char-ci<\\\\\\\\?|char-ci=\\\\\\\\?|char-ci>=\\\\\\\\?|char-ci>\\\\\\\\?|char-downcase|char-foldcase|char-general-category|char-graphic\\\\\\\\?|char-iso-control\\\\\\\\?|char-lower-case\\\\\\\\?|char-numeric\\\\\\\\?|char-punctuation\\\\\\\\?|char-ready\\\\\\\\?|char-symbolic\\\\\\\\?|char-title-case\\\\\\\\?|char-titlecase|char-upcase|char-upper-case\\\\\\\\?|char-utf-8-length|char-whitespace\\\\\\\\?|char<=\\\\\\\\?|char<\\\\\\\\?|char=\\\\\\\\?|char>=\\\\\\\\?|char>\\\\\\\\?|char\\\\\\\\?|check-duplicate-identifier|check-tail-contract|checked-procedure-check-and-extract|choice-evt|cleanse-path|close-input-port|close-output-port|collect-garbage|collection-file-path|collection-path|compile|compile-allow-set!-undefined|compile-context-preservation-enabled|compile-enforce-module-constants|compile-syntax|compiled-expression-recompile|compiled-expression\\\\\\\\?|compiled-module-expression\\\\\\\\?|complete-path\\\\\\\\?|complex\\\\\\\\?|compose|compose1|cons|continuation-mark-key\\\\\\\\?|continuation-mark-set->context|continuation-mark-set->list|continuation-mark-set->list\\\\\\\\*|continuation-mark-set-first|continuation-mark-set\\\\\\\\?|continuation-marks|continuation-prompt-available\\\\\\\\?|continuation-prompt-tag\\\\\\\\?|continuation\\\\\\\\?|copy-file|cos|current-break-parameterization|current-code-inspector|current-command-line-arguments|current-compile|current-compiled-file-roots|current-continuation-marks|current-custodian|current-directory|current-directory-for-user|current-drive|current-environment-variables|current-error-port|current-eval|current-evt-pseudo-random-generator|current-force-delete-permissions|current-gc-milliseconds|current-get-interaction-input-port|current-inexact-milliseconds|current-input-port|current-inspector|current-library-collection-links|current-library-collection-paths|current-load|current-load-extension|current-load-relative-directory|current-load\\\\\\\\/use-compiled|current-locale|current-logger|current-memory-use|current-milliseconds|current-module-declare-name|current-module-declare-source|current-module-name-resolver|current-module-path-for-load|current-namespace|current-output-port|current-parameterization|current-plumber|current-preserved-thread-cell-values|current-print|current-process-milliseconds|current-prompt-read|current-pseudo-random-generator|current-read-interaction|current-reader-guard|current-readtable|current-seconds|current-security-guard|current-subprocess-custodian-mode|current-thread|current-thread-group|current-thread-initial-stack-size|current-write-relative-directory|custodian-box-value|custodian-box\\\\\\\\?|custodian-limit-memory|custodian-managed-list|custodian-memory-accounting-available\\\\\\\\?|custodian-require-memory|custodian-shut-down\\\\\\\\?|custodian-shutdown-all|custodian\\\\\\\\?|custom-print-quotable-accessor|custom-print-quotable\\\\\\\\?|custom-write-accessor|custom-write\\\\\\\\?|date\\\\\\\\*-nanosecond|date\\\\\\\\*-time-zone-name|date\\\\\\\\*\\\\\\\\?|date-day|date-dst\\\\\\\\?|date-hour|date-minute|date-month|date-second|date-time-zone-offset|date-week-day|date-year|date-year-day|date\\\\\\\\?|datum->syntax|datum-intern-literal|default-continuation-prompt-tag|delete-directory|delete-file|denominator|directory-exists\\\\\\\\?|directory-list|display|displayln|double-flonum\\\\\\\\?|dump-memory-stats|dynamic-require|dynamic-require-for-syntax|dynamic-wind|environment-variables-copy|environment-variables-names|environment-variables-ref|environment-variables-set!|environment-variables\\\\\\\\?|eof|eof-object\\\\\\\\?|ephemeron-value|ephemeron\\\\\\\\?|eprintf|eq-hash-code|eq\\\\\\\\?|equal-hash-code|equal-secondary-hash-code|equal\\\\\\\\?|equal\\\\\\\\?\\\\\\\\/recur|eqv-hash-code|eqv\\\\\\\\?|error|error-display-handler|error-escape-handler|error-print-context-length|error-print-source-location|error-print-width|error-value->string-handler|eval|eval-jit-enabled|eval-syntax|even\\\\\\\\?|evt\\\\\\\\?|exact->inexact|exact-integer\\\\\\\\?|exact-nonnegative-integer\\\\\\\\?|exact-positive-integer\\\\\\\\?|exact\\\\\\\\?|executable-yield-handler|exit|exit-handler|exn-continuation-marks|exn-message|exn:break-continuation|exn:break:hang-up\\\\\\\\?|exn:break:terminate\\\\\\\\?|exn:break\\\\\\\\?|exn:fail:contract:arity\\\\\\\\?|exn:fail:contract:continuation\\\\\\\\?|exn:fail:contract:divide-by-zero\\\\\\\\?|exn:fail:contract:non-fixnum-result\\\\\\\\?|exn:fail:contract:variable-id|exn:fail:contract:variable\\\\\\\\?|exn:fail:contract\\\\\\\\?|exn:fail:filesystem:errno-errno|exn:fail:filesystem:errno\\\\\\\\?|exn:fail:filesystem:exists\\\\\\\\?|exn:fail:filesystem:missing-module-path|exn:fail:filesystem:missing-module\\\\\\\\?|exn:fail:filesystem:version\\\\\\\\?|exn:fail:filesystem\\\\\\\\?|exn:fail:network:errno-errno|exn:fail:network:errno\\\\\\\\?|exn:fail:network\\\\\\\\?|exn:fail:out-of-memory\\\\\\\\?|exn:fail:read-srclocs|exn:fail:read:eof\\\\\\\\?|exn:fail:read:non-char\\\\\\\\?|exn:fail:read\\\\\\\\?|exn:fail:syntax-exprs|exn:fail:syntax:missing-module-path|exn:fail:syntax:missing-module\\\\\\\\?|exn:fail:syntax:unbound\\\\\\\\?|exn:fail:syntax\\\\\\\\?|exn:fail:unsupported\\\\\\\\?|exn:fail:user\\\\\\\\?|exn:fail\\\\\\\\?|exn:missing-module-accessor|exn:missing-module\\\\\\\\?|exn:srclocs-accessor|exn:srclocs\\\\\\\\?|exn\\\\\\\\?|exp|expand|expand-for-clause|expand-once|expand-syntax|expand-syntax-once|expand-syntax-to-top-form|expand-to-top-form|expand-user-path|explode-path|expt|file-exists\\\\\\\\?|file-or-directory-identity|file-or-directory-modify-seconds|file-or-directory-permissions|file-position|file-position\\\\\\\\*|file-size|file-stream-buffer-mode|file-stream-port\\\\\\\\?|file-truncate|filesystem-change-evt|filesystem-change-evt-cancel|filesystem-change-evt\\\\\\\\?|filesystem-root-list|filter|find-executable-path|find-library-collection-links|find-library-collection-paths|find-system-path|findf|fixnum\\\\\\\\?|floating-point-bytes->real|flonum\\\\\\\\?|floor|flush-output|foldl|foldr|for-clause-syntax-protect|for-each|format|fprintf|free-identifier=\\\\\\\\?|free-label-identifier=\\\\\\\\?|free-template-identifier=\\\\\\\\?|free-transformer-identifier=\\\\\\\\?|gcd|generate-temporaries|gensym|get-output-bytes|get-output-string|getenv|global-port-print-handler|guard-evt|handle-evt|handle-evt\\\\\\\\?|hash|hash->list|hash-clear|hash-clear!|hash-copy|hash-copy-clear|hash-count|hash-empty\\\\\\\\?|hash-eq\\\\\\\\?|hash-equal\\\\\\\\?|hash-eqv\\\\\\\\?|hash-for-each|hash-has-key\\\\\\\\?|hash-iterate-first|hash-iterate-key|hash-iterate-key\\\\\\\\+value|hash-iterate-next|hash-iterate-pair|hash-iterate-value|hash-keys|hash-keys-subset\\\\\\\\?|hash-map|hash-placeholder\\\\\\\\?|hash-ref|hash-ref!|hash-remove|hash-remove!|hash-set|hash-set!|hash-set\\\\\\\\*|hash-set\\\\\\\\*!|hash-update|hash-update!|hash-values|hash-weak\\\\\\\\?|hash\\\\\\\\?|hasheq|hasheqv|identifier-binding|identifier-binding-symbol|identifier-label-binding|identifier-prune-lexical-context|identifier-prune-to-source-module|identifier-remove-from-definition-context|identifier-template-binding|identifier-transformer-binding|identifier\\\\\\\\?|imag-part|immutable\\\\\\\\?|impersonate-box|impersonate-channel|impersonate-continuation-mark-key|impersonate-hash|impersonate-procedure|impersonate-procedure\\\\\\\\*|impersonate-prompt-tag|impersonate-struct|impersonate-vector|impersonate-vector\\\\\\\\*|impersonator-ephemeron|impersonator-of\\\\\\\\?|impersonator-prop:application-mark|impersonator-property-accessor-procedure\\\\\\\\?|impersonator-property\\\\\\\\?|impersonator\\\\\\\\?|in-cycle|in-parallel|in-sequences|in-values\\\\\\\\*-sequence|in-values-sequence|inexact->exact|inexact-real\\\\\\\\?|inexact\\\\\\\\?|input-port\\\\\\\\?|inspector-superior\\\\\\\\?|inspector\\\\\\\\?|integer->char|integer->integer-bytes|integer-bytes->integer|integer-length|integer-sqrt|integer-sqrt\\\\\\\\/remainder|integer\\\\\\\\?|internal-definition-context-binding-identifiers|internal-definition-context-introduce|internal-definition-context-seal|internal-definition-context\\\\\\\\?|keyword->string|keyword-apply|keyword<\\\\\\\\?|keyword\\\\\\\\?|kill-thread|lcm|legacy-match-expander\\\\\\\\?|length|liberal-define-context\\\\\\\\?|link-exists\\\\\\\\?|list|list\\\\\\\\*|list->bytes|list->string|list->vector|list-ref|list-tail|list\\\\\\\\?|load|load-extension|load-on-demand-enabled|load-relative|load-relative-extension|load\\\\\\\\/cd|load\\\\\\\\/use-compiled|local-expand|local-expand\\\\\\\\/capture-lifts|local-transformer-expand|local-transformer-expand\\\\\\\\/capture-lifts|locale-string-encoding|log|log-all-levels|log-level-evt|log-level\\\\\\\\?|log-max-level|log-message|log-receiver\\\\\\\\?|logger-name|logger\\\\\\\\?|magnitude|make-arity-at-least|make-base-empty-namespace|make-base-namespace|make-bytes|make-channel|make-continuation-mark-key|make-continuation-prompt-tag|make-custodian|make-custodian-box|make-date|make-date\\\\\\\\*|make-derived-parameter|make-directory|make-do-sequence|make-empty-namespace|make-environment-variables|make-ephemeron|make-exn|make-exn:break|make-exn:break:hang-up|make-exn:break:terminate|make-exn:fail|make-exn:fail:contract|make-exn:fail:contract:arity|make-exn:fail:contract:continuation|make-exn:fail:contract:divide-by-zero|make-exn:fail:contract:non-fixnum-result|make-exn:fail:contract:variable|make-exn:fail:filesystem|make-exn:fail:filesystem:errno|make-exn:fail:filesystem:exists|make-exn:fail:filesystem:missing-module|make-exn:fail:filesystem:version|make-exn:fail:network|make-exn:fail:network:errno|make-exn:fail:out-of-memory|make-exn:fail:read|make-exn:fail:read:eof|make-exn:fail:read:non-char|make-exn:fail:syntax|make-exn:fail:syntax:missing-module|make-exn:fail:syntax:unbound|make-exn:fail:unsupported|make-exn:fail:user|make-file-or-directory-link|make-hash|make-hash-placeholder|make-hasheq|make-hasheq-placeholder|make-hasheqv|make-hasheqv-placeholder|make-immutable-hash|make-immutable-hasheq|make-immutable-hasheqv|make-impersonator-property|make-input-port|make-inspector|make-keyword-procedure|make-known-char-range-list|make-log-receiver|make-logger|make-output-port|make-parameter|make-phantom-bytes|make-pipe|make-placeholder|make-plumber|make-polar|make-prefab-struct|make-pseudo-random-generator|make-reader-graph|make-readtable|make-rectangular|make-rename-transformer|make-resolved-module-path|make-security-guard|make-semaphore|make-set!-transformer|make-shared-bytes|make-sibling-inspector|make-special-comment|make-srcloc|make-string|make-struct-field-accessor|make-struct-field-mutator|make-struct-type|make-struct-type-property|make-syntax-delta-introducer|make-syntax-introducer|make-thread-cell|make-thread-group|make-vector|make-weak-box|make-weak-hash|make-weak-hasheq|make-weak-hasheqv|make-will-executor|map|match-\\\\\\\\.\\\\\\\\.\\\\\\\\.-nesting|match-expander\\\\\\\\?|max|mcar|mcdr|mcons|member|memf|memq|memv|min|module->exports|module->imports|module->indirect-exports|module->language-info|module->namespace|module-compiled-cross-phase-persistent\\\\\\\\?|module-compiled-exports|module-compiled-imports|module-compiled-indirect-exports|module-compiled-language-info|module-compiled-name|module-compiled-submodules|module-declared\\\\\\\\?|module-path-index-join|module-path-index-resolve|module-path-index-split|module-path-index-submodule|module-path-index\\\\\\\\?|module-path\\\\\\\\?|module-predefined\\\\\\\\?|module-provide-protected\\\\\\\\?|modulo|mpair\\\\\\\\?|nack-guard-evt|namespace-anchor->empty-namespace|namespace-anchor->namespace|namespace-anchor\\\\\\\\?|namespace-attach-module|namespace-attach-module-declaration|namespace-base-phase|namespace-mapped-symbols|namespace-module-identifier|namespace-module-registry|namespace-require|namespace-require\\\\\\\\/constant|namespace-require\\\\\\\\/copy|namespace-require\\\\\\\\/expansion-time|namespace-set-variable-value!|namespace-symbol->identifier|namespace-syntax-introduce|namespace-undefine-variable!|namespace-unprotect-module|namespace-variable-value|namespace\\\\\\\\?|negative\\\\\\\\?|never-evt|newline|normal-case-path|not|null|null\\\\\\\\?|number->string|number\\\\\\\\?|numerator|object-name|odd\\\\\\\\?|open-input-bytes|open-input-string|open-output-bytes|open-output-string|ormap|output-port\\\\\\\\?|pair\\\\\\\\?|parameter-procedure=\\\\\\\\?|parameter\\\\\\\\?|parameterization\\\\\\\\?|parse-leftover->\\\\\\\\*|path->bytes|path->complete-path|path->directory-path|path->string|path-add-extension|path-add-suffix|path-convention-type|path-element->bytes|path-element->string|path-for-some-system\\\\\\\\?|path-list-string->path-list|path-replace-extension|path-replace-suffix|path-string\\\\\\\\?|path<\\\\\\\\?|path\\\\\\\\?|peek-byte|peek-byte-or-special|peek-bytes|peek-bytes!|peek-bytes-avail!|peek-bytes-avail!\\\\\\\\*|peek-bytes-avail!\\\\\\\\/enable-break|peek-char|peek-char-or-special|peek-string|peek-string!|phantom-bytes\\\\\\\\?|pipe-content-length|placeholder-get|placeholder-set!|placeholder\\\\\\\\?|plumber-add-flush!|plumber-flush-all|plumber-flush-handle-remove!|plumber-flush-handle\\\\\\\\?|plumber\\\\\\\\?|poll-guard-evt|port-closed-evt|port-closed\\\\\\\\?|port-commit-peeked|port-count-lines!|port-count-lines-enabled|port-counts-lines\\\\\\\\?|port-display-handler|port-file-identity|port-file-unlock|port-next-location|port-print-handler|port-progress-evt|port-provides-progress-evts\\\\\\\\?|port-read-handler|port-try-file-lock\\\\\\\\?|port-write-handler|port-writes-atomic\\\\\\\\?|port-writes-special\\\\\\\\?|port\\\\\\\\?|positive\\\\\\\\?|prefab-key->struct-type|prefab-key\\\\\\\\?|prefab-struct-key|pregexp|pregexp\\\\\\\\?|primitive-closure\\\\\\\\?|primitive-result-arity|primitive\\\\\\\\?|print|print-as-expression|print-boolean-long-form|print-box|print-graph|print-hash-table|print-mpair-curly-braces|print-pair-curly-braces|print-reader-abbreviations|print-struct|print-syntax-width|print-unreadable|print-vector-length|printf|println|procedure->method|procedure-arity|procedure-arity-includes\\\\\\\\?|procedure-arity\\\\\\\\?|procedure-closure-contents-eq\\\\\\\\?|procedure-extract-target|procedure-impersonator\\\\\\\\*\\\\\\\\?|procedure-keywords|procedure-reduce-arity|procedure-reduce-keyword-arity|procedure-rename|procedure-result-arity|procedure-specialize|procedure-struct-type\\\\\\\\?|procedure\\\\\\\\?|progress-evt\\\\\\\\?|prop:arity-string|prop:authentic|prop:checked-procedure|prop:custom-print-quotable|prop:custom-write|prop:equal\\\\\\\\+hash|prop:evt|prop:exn:missing-module|prop:exn:srclocs|prop:expansion-contexts|prop:impersonator-of|prop:input-port|prop:legacy-match-expander|prop:liberal-define-context|prop:match-expander|prop:object-name|prop:output-port|prop:procedure|prop:rename-transformer|prop:sequence|prop:set!-transformer|pseudo-random-generator->vector|pseudo-random-generator-vector\\\\\\\\?|pseudo-random-generator\\\\\\\\?|putenv|quotient|quotient\\\\\\\\/remainder|raise|raise-argument-error|raise-arguments-error|raise-arity-error|raise-mismatch-error|raise-range-error|raise-result-error|raise-syntax-error|raise-type-error|raise-user-error|random|random-seed|rational\\\\\\\\?|rationalize|read|read-accept-bar-quote|read-accept-box|read-accept-compiled|read-accept-dot|read-accept-graph|read-accept-infix-dot|read-accept-lang|read-accept-quasiquote|read-accept-reader|read-byte|read-byte-or-special|read-bytes|read-bytes!|read-bytes-avail!|read-bytes-avail!\\\\\\\\*|read-bytes-avail!\\\\\\\\/enable-break|read-bytes-line|read-case-sensitive|read-cdot|read-char|read-char-or-special|read-curly-brace-as-paren|read-curly-brace-with-tag|read-decimal-as-inexact|read-eval-print-loop|read-language|read-line|read-on-demand-source|read-square-bracket-as-paren|read-square-bracket-with-tag|read-string|read-string!|read-syntax|read-syntax\\\\\\\\/recursive|read\\\\\\\\/recursive|readtable-mapping|readtable\\\\\\\\?|real->decimal-string|real->double-flonum|real->floating-point-bytes|real->single-flonum|real-part|real\\\\\\\\?|regexp|regexp-match|regexp-match-exact\\\\\\\\?|regexp-match-peek|regexp-match-peek-immediate|regexp-match-peek-positions|regexp-match-peek-positions-immediate|regexp-match-peek-positions-immediate\\\\\\\\/end|regexp-match-peek-positions\\\\\\\\/end|regexp-match-positions|regexp-match-positions\\\\\\\\/end|regexp-match\\\\\\\\/end|regexp-match\\\\\\\\?|regexp-max-lookbehind|regexp-quote|regexp-replace|regexp-replace\\\\\\\\*|regexp-replace-quote|regexp-replaces|regexp-split|regexp-try-match|regexp\\\\\\\\?|relative-path\\\\\\\\?|remainder|remove|remove\\\\\\\\*|remq|remq\\\\\\\\*|remv|remv\\\\\\\\*|rename-file-or-directory|rename-transformer-target|rename-transformer\\\\\\\\?|replace-evt|reroot-path|resolve-path|resolved-module-path-name|resolved-module-path\\\\\\\\?|reverse|round|seconds->date|security-guard\\\\\\\\?|semaphore-peek-evt|semaphore-peek-evt\\\\\\\\?|semaphore-post|semaphore-try-wait\\\\\\\\?|semaphore-wait|semaphore-wait\\\\\\\\/enable-break|semaphore\\\\\\\\?|sequence->stream|sequence-generate|sequence-generate\\\\\\\\*|sequence\\\\\\\\?|set!-transformer-procedure|set!-transformer\\\\\\\\?|set-box!|set-mcar!|set-mcdr!|set-phantom-bytes!|set-port-next-location!|shared-bytes|shell-execute|simplify-path|sin|single-flonum\\\\\\\\?|sleep|special-comment-value|special-comment\\\\\\\\?|split-path|sqrt|srcloc->string|srcloc-column|srcloc-line|srcloc-position|srcloc-source|srcloc-span|srcloc\\\\\\\\?|stop-after|stop-before|string|string->bytes\\\\\\\\/latin-1|string->bytes\\\\\\\\/locale|string->bytes\\\\\\\\/utf-8|string->immutable-string|string->keyword|string->list|string->number|string->path|string->path-element|string->symbol|string->uninterned-symbol|string->unreadable-symbol|string-append|string-ci<=\\\\\\\\?|string-ci<\\\\\\\\?|string-ci=\\\\\\\\?|string-ci>=\\\\\\\\?|string-ci>\\\\\\\\?|string-copy|string-copy!|string-downcase|string-environment-variable-name\\\\\\\\?|string-fill!|string-foldcase|string-length|string-locale-ci<\\\\\\\\?|string-locale-ci=\\\\\\\\?|string-locale-ci>\\\\\\\\?|string-locale-downcase|string-locale-upcase|string-locale<\\\\\\\\?|string-locale=\\\\\\\\?|string-locale>\\\\\\\\?|string-normalize-nfc|string-normalize-nfd|string-normalize-nfkc|string-normalize-nfkd|string-port\\\\\\\\?|string-ref|string-set!|string-titlecase|string-upcase|string-utf-8-length|string<=\\\\\\\\?|string<\\\\\\\\?|string=\\\\\\\\?|string>=\\\\\\\\?|string>\\\\\\\\?|string\\\\\\\\?|struct->vector|struct-accessor-procedure\\\\\\\\?|struct-constructor-procedure\\\\\\\\?|struct-info|struct-mutator-procedure\\\\\\\\?|struct-predicate-procedure\\\\\\\\?|struct-type-info|struct-type-make-constructor|struct-type-make-predicate|struct-type-property-accessor-procedure\\\\\\\\?|struct-type-property\\\\\\\\?|struct-type\\\\\\\\?|struct:arity-at-least|struct:date|struct:date\\\\\\\\*|struct:exn|struct:exn:break|struct:exn:break:hang-up|struct:exn:break:terminate|struct:exn:fail|struct:exn:fail:contract|struct:exn:fail:contract:arity|struct:exn:fail:contract:continuation|struct:exn:fail:contract:divide-by-zero|struct:exn:fail:contract:non-fixnum-result|struct:exn:fail:contract:variable|struct:exn:fail:filesystem|struct:exn:fail:filesystem:errno|struct:exn:fail:filesystem:exists|struct:exn:fail:filesystem:missing-module|struct:exn:fail:filesystem:version|struct:exn:fail:network|struct:exn:fail:network:errno|struct:exn:fail:out-of-memory|struct:exn:fail:read|struct:exn:fail:read:eof|struct:exn:fail:read:non-char|struct:exn:fail:syntax|struct:exn:fail:syntax:missing-module|struct:exn:fail:syntax:unbound|struct:exn:fail:unsupported|struct:exn:fail:user|struct:srcloc|struct\\\\\\\\?|sub1|subbytes|subprocess|subprocess-group-enabled|subprocess-kill|subprocess-pid|subprocess-status|subprocess-wait|subprocess\\\\\\\\?|substring|symbol->string|symbol-interned\\\\\\\\?|symbol-unreadable\\\\\\\\?|symbol<\\\\\\\\?|symbol\\\\\\\\?|sync|sync\\\\\\\\/enable-break|sync\\\\\\\\/timeout|sync\\\\\\\\/timeout\\\\\\\\/enable-break|syntax->datum|syntax->list|syntax-arm|syntax-column|syntax-debug-info|syntax-disarm|syntax-e|syntax-line|syntax-local-bind-syntaxes|syntax-local-certifier|syntax-local-context|syntax-local-expand-expression|syntax-local-get-shadower|syntax-local-identifier-as-binding|syntax-local-introduce|syntax-local-lift-context|syntax-local-lift-expression|syntax-local-lift-module|syntax-local-lift-module-end-declaration|syntax-local-lift-provide|syntax-local-lift-require|syntax-local-lift-values-expression|syntax-local-make-definition-context|syntax-local-make-delta-introducer|syntax-local-match-introduce|syntax-local-module-defined-identifiers|syntax-local-module-exports|syntax-local-module-required-identifiers|syntax-local-name|syntax-local-phase-level|syntax-local-submodules|syntax-local-transforming-module-provides\\\\\\\\?|syntax-local-value|syntax-local-value\\\\\\\\/immediate|syntax-original\\\\\\\\?|syntax-pattern-variable\\\\\\\\?|syntax-position|syntax-property|syntax-property-preserved\\\\\\\\?|syntax-property-symbol-keys|syntax-protect|syntax-rearm|syntax-recertify|syntax-shift-phase-level|syntax-source|syntax-source-module|syntax-span|syntax-taint|syntax-tainted\\\\\\\\?|syntax-track-origin|syntax-transforming-module-expression\\\\\\\\?|syntax-transforming-with-lifts\\\\\\\\?|syntax-transforming\\\\\\\\?|syntax\\\\\\\\?|system-big-endian\\\\\\\\?|system-idle-evt|system-language\\\\\\\\+country|system-library-subpath|system-path-convention-type|system-type|tan|terminal-port\\\\\\\\?|thread|thread-cell-ref|thread-cell-set!|thread-cell-values\\\\\\\\?|thread-cell\\\\\\\\?|thread-dead-evt|thread-dead\\\\\\\\?|thread-group\\\\\\\\?|thread-receive|thread-receive-evt|thread-resume|thread-resume-evt|thread-rewind-receive|thread-running\\\\\\\\?|thread-send|thread-suspend|thread-suspend-evt|thread-try-receive|thread-wait|thread\\\\\\\\/suspend-to-kill|thread\\\\\\\\?|time-apply|truncate|unbox|uncaught-exception-handler|unquoted-printing-string|unquoted-printing-string-value|unquoted-printing-string\\\\\\\\?|use-collection-link-paths|use-compiled-file-check|use-compiled-file-paths|use-user-specific-search-paths|values|variable-reference->empty-namespace|variable-reference->module-base-phase|variable-reference->module-declaration-inspector|variable-reference->module-path-index|variable-reference->module-source|variable-reference->namespace|variable-reference->phase|variable-reference->resolved-module-path|variable-reference-constant\\\\\\\\?|variable-reference\\\\\\\\?|vector|vector->immutable-vector|vector->list|vector->pseudo-random-generator|vector->pseudo-random-generator!|vector->values|vector-cas!|vector-copy!|vector-fill!|vector-immutable|vector-length|vector-ref|vector-set!|vector-set-performance-stats!|vector\\\\\\\\?|version|void|void\\\\\\\\?|weak-box-value|weak-box\\\\\\\\?|will-execute|will-executor\\\\\\\\?|will-register|will-try-execute|wrap-evt|write|write-byte|write-bytes|write-bytes-avail|write-bytes-avail\\\\\\\\*|write-bytes-avail-evt|write-bytes-avail\\\\\\\\/enable-break|write-char|write-special|write-special-avail\\\\\\\\*|write-special-evt|write-string|writeln|zero\\\\\\\\?|\\\\\\\\*|\\\\\\\\*list\\\\\\\\/c|\\\\\\\\+|-|\\\\\\\\/|<|<\\\\\\\\/c|<=|=|>|>\\\\\\\\/c|>=|abort-current-continuation|abs|absolute-path\\\\\\\\?|acos|add1|alarm-evt|always-evt|andmap|angle|append|append\\\\\\\\*|append-map|argmax|argmin|arithmetic-shift|arity-at-least-value|arity-at-least\\\\\\\\?|arity-checking-wrapper|arity-includes\\\\\\\\?|arity=\\\\\\\\?|arrow-contract-info-accepts-arglist|arrow-contract-info-chaperone-procedure|arrow-contract-info-check-first-order|arrow-contract-info\\\\\\\\?|asin|assf|assoc|assq|assv|atan|banner|base->-doms\\\\\\\\/c|base->-rngs\\\\\\\\/c|base->\\\\\\\\?|bitwise-and|bitwise-bit-field|bitwise-bit-set\\\\\\\\?|bitwise-ior|bitwise-not|bitwise-xor|blame-add-car-context|blame-add-cdr-context|blame-add-missing-party|blame-add-nth-arg-context|blame-add-range-context|blame-add-unknown-context|blame-context|blame-contract|blame-fmt->-string|blame-missing-party\\\\\\\\?|blame-negative|blame-original\\\\\\\\?|blame-positive|blame-replace-negative|blame-source|blame-swap|blame-swapped\\\\\\\\?|blame-update|blame-value|blame\\\\\\\\?|boolean=\\\\\\\\?|boolean\\\\\\\\?|bound-identifier=\\\\\\\\?|box|box-cas!|box-immutable|box\\\\\\\\?|break-enabled|break-parameterization\\\\\\\\?|break-thread|build-chaperone-contract-property|build-compound-type-name|build-contract-property|build-flat-contract-property|build-list|build-path|build-path\\\\\\\\/convention-type|build-string|build-vector|byte-pregexp|byte-pregexp\\\\\\\\?|byte-ready\\\\\\\\?|byte-regexp|byte-regexp\\\\\\\\?|byte\\\\\\\\?|bytes|bytes->immutable-bytes|bytes->list|bytes->path|bytes->path-element|bytes->string\\\\\\\\/latin-1|bytes->string\\\\\\\\/locale|bytes->string\\\\\\\\/utf-8|bytes-append|bytes-append\\\\\\\\*|bytes-close-converter|bytes-convert|bytes-convert-end|bytes-converter\\\\\\\\?|bytes-copy|bytes-copy!|bytes-environment-variable-name\\\\\\\\?|bytes-fill!|bytes-join|bytes-length|bytes-no-nuls\\\\\\\\?|bytes-open-converter|bytes-ref|bytes-set!|bytes-utf-8-index|bytes-utf-8-length|bytes-utf-8-ref|bytes<\\\\\\\\?|bytes=\\\\\\\\?|bytes>\\\\\\\\?|bytes\\\\\\\\?|caaaar|caaadr|caaar|caadar|caaddr|caadr|caar|cadaar|cadadr|cadar|caddar|cadddr|caddr|cadr|call-in-nested-thread|call-with-break-parameterization|call-with-composable-continuation|call-with-continuation-barrier|call-with-continuation-prompt|call-with-current-continuation|call-with-default-reading-parameterization|call-with-escape-continuation|call-with-exception-handler|call-with-immediate-continuation-mark|call-with-input-bytes|call-with-input-string|call-with-output-bytes|call-with-output-string|call-with-parameterization|call-with-semaphore|call-with-semaphore\\\\\\\\/enable-break|call-with-values|call\\\\\\\\/cc|call\\\\\\\\/ec|car|cartesian-product|cdaaar|cdaadr|cdaar|cdadar|cdaddr|cdadr|cdar|cddaar|cddadr|cddar|cdddar|cddddr|cdddr|cddr|cdr|ceiling|channel-get|channel-put|channel-put-evt|channel-put-evt\\\\\\\\?|channel-try-get|channel\\\\\\\\?|chaperone-box|chaperone-channel|chaperone-continuation-mark-key|chaperone-contract-property\\\\\\\\?|chaperone-contract\\\\\\\\?|chaperone-evt|chaperone-hash|chaperone-hash-set|chaperone-of\\\\\\\\?|chaperone-procedure|chaperone-procedure\\\\\\\\*|chaperone-prompt-tag|chaperone-struct|chaperone-struct-type|chaperone-vector|chaperone-vector\\\\\\\\*|chaperone\\\\\\\\?|char->integer|char-alphabetic\\\\\\\\?|char-blank\\\\\\\\?|char-ci<=\\\\\\\\?|char-ci<\\\\\\\\?|char-ci=\\\\\\\\?|char-ci>=\\\\\\\\?|char-ci>\\\\\\\\?|char-downcase|char-foldcase|char-general-category|char-graphic\\\\\\\\?|char-in|char-iso-control\\\\\\\\?|char-lower-case\\\\\\\\?|char-numeric\\\\\\\\?|char-punctuation\\\\\\\\?|char-ready\\\\\\\\?|char-symbolic\\\\\\\\?|char-title-case\\\\\\\\?|char-titlecase|char-upcase|char-upper-case\\\\\\\\?|char-utf-8-length|char-whitespace\\\\\\\\?|char<=\\\\\\\\?|char<\\\\\\\\?|char=\\\\\\\\?|char>=\\\\\\\\?|char>\\\\\\\\?|char\\\\\\\\?|check-duplicate-identifier|checked-procedure-check-and-extract|choice-evt|class->interface|class-info|class-seal|class-unseal|class\\\\\\\\?|cleanse-path|close-input-port|close-output-port|coerce-chaperone-contract|coerce-chaperone-contracts|coerce-contract|coerce-contract\\\\\\\\/f|coerce-contracts|coerce-flat-contract|coerce-flat-contracts|collect-garbage|collection-file-path|collection-path|combinations|compile|compile-allow-set!-undefined|compile-context-preservation-enabled|compile-enforce-module-constants|compile-syntax|compiled-expression-recompile|compiled-expression\\\\\\\\?|compiled-module-expression\\\\\\\\?|complete-path\\\\\\\\?|complex\\\\\\\\?|compose|compose1|conjoin|conjugate|cons|cons\\\\\\\\?|const|continuation-mark-key\\\\\\\\?|continuation-mark-set->context|continuation-mark-set->list|continuation-mark-set->list\\\\\\\\*|continuation-mark-set-first|continuation-mark-set\\\\\\\\?|continuation-marks|continuation-prompt-available\\\\\\\\?|continuation-prompt-tag\\\\\\\\?|continuation\\\\\\\\?|contract-continuation-mark-key|contract-custom-write-property-proc|contract-first-order|contract-first-order-passes\\\\\\\\?|contract-late-neg-projection|contract-name|contract-proc|contract-projection|contract-property\\\\\\\\?|contract-random-generate|contract-random-generate-fail|contract-random-generate-fail\\\\\\\\?|contract-random-generate-get-current-environment|contract-random-generate-stash|contract-random-generate\\\\\\\\/choose|contract-stronger\\\\\\\\?|contract-struct-exercise|contract-struct-generate|contract-struct-late-neg-projection|contract-struct-list-contract\\\\\\\\?|contract-val-first-projection|contract\\\\\\\\?|convert-stream|copy-file|copy-port|cos|cosh|count|current-blame-format|current-break-parameterization|current-code-inspector|current-command-line-arguments|current-compile|current-compiled-file-roots|current-continuation-marks|current-custodian|current-directory|current-directory-for-user|current-drive|current-environment-variables|current-error-port|current-eval|current-evt-pseudo-random-generator|current-force-delete-permissions|current-future|current-gc-milliseconds|current-get-interaction-input-port|current-inexact-milliseconds|current-input-port|current-inspector|current-library-collection-links|current-library-collection-paths|current-load|current-load-extension|current-load-relative-directory|current-load\\\\\\\\/use-compiled|current-locale|current-logger|current-memory-use|current-milliseconds|current-module-declare-name|current-module-declare-source|current-module-name-resolver|current-module-path-for-load|current-namespace|current-output-port|current-parameterization|current-plumber|current-preserved-thread-cell-values|current-print|current-process-milliseconds|current-prompt-read|current-pseudo-random-generator|current-read-interaction|current-reader-guard|current-readtable|current-seconds|current-security-guard|current-subprocess-custodian-mode|current-thread|current-thread-group|current-thread-initial-stack-size|current-write-relative-directory|curry|curryr|custodian-box-value|custodian-box\\\\\\\\?|custodian-limit-memory|custodian-managed-list|custodian-memory-accounting-available\\\\\\\\?|custodian-require-memory|custodian-shut-down\\\\\\\\?|custodian-shutdown-all|custodian\\\\\\\\?|custom-print-quotable-accessor|custom-print-quotable\\\\\\\\?|custom-write-accessor|custom-write-property-proc|custom-write\\\\\\\\?|date\\\\\\\\*-nanosecond|date\\\\\\\\*-time-zone-name|date\\\\\\\\*\\\\\\\\?|date-day|date-dst\\\\\\\\?|date-hour|date-minute|date-month|date-second|date-time-zone-offset|date-week-day|date-year|date-year-day|date\\\\\\\\?|datum->syntax|datum-intern-literal|default-continuation-prompt-tag|degrees->radians|delete-directory|delete-file|denominator|dict-iter-contract|dict-key-contract|dict-value-contract|directory-exists\\\\\\\\?|directory-list|disjoin|display|displayln|double-flonum\\\\\\\\?|drop|drop-common-prefix|drop-right|dropf|dropf-right|dump-memory-stats|dup-input-port|dup-output-port|dynamic-get-field|dynamic-object\\\\\\\\/c|dynamic-require|dynamic-require-for-syntax|dynamic-send|dynamic-set-field!|dynamic-wind|eighth|empty|empty-sequence|empty-stream|empty\\\\\\\\?|environment-variables-copy|environment-variables-names|environment-variables-ref|environment-variables-set!|environment-variables\\\\\\\\?|eof|eof-object\\\\\\\\?|ephemeron-value|ephemeron\\\\\\\\?|eprintf|eq-contract-val|eq-contract\\\\\\\\?|eq-hash-code|eq\\\\\\\\?|equal-contract-val|equal-contract\\\\\\\\?|equal-hash-code|equal-secondary-hash-code|equal<%>|equal\\\\\\\\?|equal\\\\\\\\?\\\\\\\\/recur|eqv-hash-code|eqv\\\\\\\\?|error|error-display-handler|error-escape-handler|error-print-context-length|error-print-source-location|error-print-width|error-value->string-handler|eval|eval-jit-enabled|eval-syntax|even\\\\\\\\?|evt\\\\\\\\/c|evt\\\\\\\\?|exact->inexact|exact-ceiling|exact-floor|exact-integer\\\\\\\\?|exact-nonnegative-integer\\\\\\\\?|exact-positive-integer\\\\\\\\?|exact-round|exact-truncate|exact\\\\\\\\?|executable-yield-handler|exit|exit-handler|exn-continuation-marks|exn-message|exn:break-continuation|exn:break:hang-up\\\\\\\\?|exn:break:terminate\\\\\\\\?|exn:break\\\\\\\\?|exn:fail:contract:arity\\\\\\\\?|exn:fail:contract:blame-object|exn:fail:contract:blame\\\\\\\\?|exn:fail:contract:continuation\\\\\\\\?|exn:fail:contract:divide-by-zero\\\\\\\\?|exn:fail:contract:non-fixnum-result\\\\\\\\?|exn:fail:contract:variable-id|exn:fail:contract:variable\\\\\\\\?|exn:fail:contract\\\\\\\\?|exn:fail:filesystem:errno-errno|exn:fail:filesystem:errno\\\\\\\\?|exn:fail:filesystem:exists\\\\\\\\?|exn:fail:filesystem:missing-module-path|exn:fail:filesystem:missing-module\\\\\\\\?|exn:fail:filesystem:version\\\\\\\\?|exn:fail:filesystem\\\\\\\\?|exn:fail:network:errno-errno|exn:fail:network:errno\\\\\\\\?|exn:fail:network\\\\\\\\?|exn:fail:object\\\\\\\\?|exn:fail:out-of-memory\\\\\\\\?|exn:fail:read-srclocs|exn:fail:read:eof\\\\\\\\?|exn:fail:read:non-char\\\\\\\\?|exn:fail:read\\\\\\\\?|exn:fail:syntax-exprs|exn:fail:syntax:missing-module-path|exn:fail:syntax:missing-module\\\\\\\\?|exn:fail:syntax:unbound\\\\\\\\?|exn:fail:syntax\\\\\\\\?|exn:fail:unsupported\\\\\\\\?|exn:fail:user\\\\\\\\?|exn:fail\\\\\\\\?|exn:misc:match\\\\\\\\?|exn:missing-module-accessor|exn:missing-module\\\\\\\\?|exn:srclocs-accessor|exn:srclocs\\\\\\\\?|exn\\\\\\\\?|exp|expand|expand-once|expand-syntax|expand-syntax-once|expand-syntax-to-top-form|expand-to-top-form|expand-user-path|explode-path|expt|externalizable<%>|failure-result\\\\\\\\/c|false|false\\\\\\\\/c|false\\\\\\\\?|field-names|fifth|file-exists\\\\\\\\?|file-name-from-path|file-or-directory-identity|file-or-directory-modify-seconds|file-or-directory-permissions|file-position|file-position\\\\\\\\*|file-size|file-stream-buffer-mode|file-stream-port\\\\\\\\?|file-truncate|filename-extension|filesystem-change-evt|filesystem-change-evt-cancel|filesystem-change-evt\\\\\\\\?|filesystem-root-list|filter|filter-map|filter-not|filter-read-input-port|find-executable-path|find-library-collection-links|find-library-collection-paths|find-system-path|findf|first|fixnum\\\\\\\\?|flat-contract|flat-contract-predicate|flat-contract-property\\\\\\\\?|flat-contract\\\\\\\\?|flat-named-contract|flatten|floating-point-bytes->real|flonum\\\\\\\\?|floor|flush-output|fold-files|foldl|foldr|for-each|force|format|fourth|fprintf|free-identifier=\\\\\\\\?|free-label-identifier=\\\\\\\\?|free-template-identifier=\\\\\\\\?|free-transformer-identifier=\\\\\\\\?|fsemaphore-count|fsemaphore-post|fsemaphore-try-wait\\\\\\\\?|fsemaphore-wait|fsemaphore\\\\\\\\?|future|future\\\\\\\\?|futures-enabled\\\\\\\\?|gcd|generate-member-key|generate-temporaries|generic-set\\\\\\\\?|generic\\\\\\\\?|gensym|get-output-bytes|get-output-string|get\\\\\\\\/build-late-neg-projection|get\\\\\\\\/build-val-first-projection|getenv|global-port-print-handler|group-by|group-execute-bit|group-read-bit|group-write-bit|guard-evt|handle-evt|handle-evt\\\\\\\\?|has-blame\\\\\\\\?|has-contract\\\\\\\\?|hash|hash->list|hash-clear|hash-clear!|hash-copy|hash-copy-clear|hash-count|hash-empty\\\\\\\\?|hash-eq\\\\\\\\?|hash-equal\\\\\\\\?|hash-eqv\\\\\\\\?|hash-for-each|hash-has-key\\\\\\\\?|hash-iterate-first|hash-iterate-key|hash-iterate-key\\\\\\\\+value|hash-iterate-next|hash-iterate-pair|hash-iterate-value|hash-keys|hash-keys-subset\\\\\\\\?|hash-map|hash-placeholder\\\\\\\\?|hash-ref|hash-ref!|hash-remove|hash-remove!|hash-set|hash-set!|hash-set\\\\\\\\*|hash-set\\\\\\\\*!|hash-update|hash-update!|hash-values|hash-weak\\\\\\\\?|hash\\\\\\\\?|hasheq|hasheqv|identifier-binding|identifier-binding-symbol|identifier-label-binding|identifier-prune-lexical-context|identifier-prune-to-source-module|identifier-remove-from-definition-context|identifier-template-binding|identifier-transformer-binding|identifier\\\\\\\\?|identity|if\\\\\\\\/c|imag-part|immutable\\\\\\\\?|impersonate-box|impersonate-channel|impersonate-continuation-mark-key|impersonate-hash|impersonate-hash-set|impersonate-procedure|impersonate-procedure\\\\\\\\*|impersonate-prompt-tag|impersonate-struct|impersonate-vector|impersonate-vector\\\\\\\\*|impersonator-contract\\\\\\\\?|impersonator-ephemeron|impersonator-of\\\\\\\\?|impersonator-prop:application-mark|impersonator-prop:blame|impersonator-prop:contracted|impersonator-property-accessor-procedure\\\\\\\\?|impersonator-property\\\\\\\\?|impersonator\\\\\\\\?|implementation\\\\\\\\?|implementation\\\\\\\\?\\\\\\\\/c|in-combinations|in-cycle|in-dict-pairs|in-parallel|in-permutations|in-sequences|in-values\\\\\\\\*-sequence|in-values-sequence|index-of|index-where|indexes-of|indexes-where|inexact->exact|inexact-real\\\\\\\\?|inexact\\\\\\\\?|infinite\\\\\\\\?|input-port-append|input-port\\\\\\\\?|inspector-superior\\\\\\\\?|inspector\\\\\\\\?|instanceof\\\\\\\\/c|integer->char|integer->integer-bytes|integer-bytes->integer|integer-length|integer-sqrt|integer-sqrt\\\\\\\\/remainder|integer\\\\\\\\?|interface->method-names|interface-extension\\\\\\\\?|interface\\\\\\\\?|internal-definition-context-binding-identifiers|internal-definition-context-introduce|internal-definition-context-seal|internal-definition-context\\\\\\\\?|is-a\\\\\\\\?|is-a\\\\\\\\?\\\\\\\\/c|keyword->string|keyword-apply|keyword<\\\\\\\\?|keyword\\\\\\\\?|keywords-match|kill-thread|last|last-pair|lcm|length|liberal-define-context\\\\\\\\?|link-exists\\\\\\\\?|list|list\\\\\\\\*|list->bytes|list->mutable-set|list->mutable-seteq|list->mutable-seteqv|list->set|list->seteq|list->seteqv|list->string|list->vector|list->weak-set|list->weak-seteq|list->weak-seteqv|list-contract\\\\\\\\?|list-prefix\\\\\\\\?|list-ref|list-set|list-tail|list-update|list\\\\\\\\?|listen-port-number\\\\\\\\?|load|load-extension|load-on-demand-enabled|load-relative|load-relative-extension|load\\\\\\\\/cd|load\\\\\\\\/use-compiled|local-expand|local-expand\\\\\\\\/capture-lifts|local-transformer-expand|local-transformer-expand\\\\\\\\/capture-lifts|locale-string-encoding|log|log-all-levels|log-level-evt|log-level\\\\\\\\?|log-max-level|log-message|log-receiver\\\\\\\\?|logger-name|logger\\\\\\\\?|magnitude|make-arity-at-least|make-base-empty-namespace|make-base-namespace|make-bytes|make-channel|make-chaperone-contract|make-continuation-mark-key|make-continuation-prompt-tag|make-contract|make-custodian|make-custodian-box|make-date|make-date\\\\\\\\*|make-derived-parameter|make-directory|make-directory\\\\\\\\*|make-do-sequence|make-empty-namespace|make-environment-variables|make-ephemeron|make-exn|make-exn:break|make-exn:break:hang-up|make-exn:break:terminate|make-exn:fail|make-exn:fail:contract|make-exn:fail:contract:arity|make-exn:fail:contract:blame|make-exn:fail:contract:continuation|make-exn:fail:contract:divide-by-zero|make-exn:fail:contract:non-fixnum-result|make-exn:fail:contract:variable|make-exn:fail:filesystem|make-exn:fail:filesystem:errno|make-exn:fail:filesystem:exists|make-exn:fail:filesystem:missing-module|make-exn:fail:filesystem:version|make-exn:fail:network|make-exn:fail:network:errno|make-exn:fail:object|make-exn:fail:out-of-memory|make-exn:fail:read|make-exn:fail:read:eof|make-exn:fail:read:non-char|make-exn:fail:syntax|make-exn:fail:syntax:missing-module|make-exn:fail:syntax:unbound|make-exn:fail:unsupported|make-exn:fail:user|make-file-or-directory-link|make-flat-contract|make-fsemaphore|make-generic|make-hash|make-hash-placeholder|make-hasheq|make-hasheq-placeholder|make-hasheqv|make-hasheqv-placeholder|make-immutable-hash|make-immutable-hasheq|make-immutable-hasheqv|make-impersonator-property|make-input-port|make-input-port\\\\\\\\/read-to-peek|make-inspector|make-keyword-procedure|make-known-char-range-list|make-limited-input-port|make-list|make-lock-file-name|make-log-receiver|make-logger|make-mixin-contract|make-none\\\\\\\\/c|make-output-port|make-parameter|make-parent-directory\\\\\\\\*|make-phantom-bytes|make-pipe|make-pipe-with-specials|make-placeholder|make-plumber|make-polar|make-prefab-struct|make-primitive-class|make-proj-contract|make-pseudo-random-generator|make-reader-graph|make-readtable|make-rectangular|make-rename-transformer|make-resolved-module-path|make-security-guard|make-semaphore|make-set!-transformer|make-shared-bytes|make-sibling-inspector|make-special-comment|make-srcloc|make-string|make-struct-field-accessor|make-struct-field-mutator|make-struct-type|make-struct-type-property|make-syntax-delta-introducer|make-syntax-introducer|make-tentative-pretty-print-output-port|make-thread-cell|make-thread-group|make-vector|make-weak-box|make-weak-hash|make-weak-hasheq|make-weak-hasheqv|make-will-executor|map|match-equality-test|matches-arity-exactly\\\\\\\\?|max|mcar|mcdr|mcons|member|member-name-key-hash-code|member-name-key=\\\\\\\\?|member-name-key\\\\\\\\?|memf|memq|memv|merge-input|method-in-interface\\\\\\\\?|min|mixin-contract|module->exports|module->imports|module->indirect-exports|module->language-info|module->namespace|module-compiled-cross-phase-persistent\\\\\\\\?|module-compiled-exports|module-compiled-imports|module-compiled-indirect-exports|module-compiled-language-info|module-compiled-name|module-compiled-submodules|module-declared\\\\\\\\?|module-path-index-join|module-path-index-resolve|module-path-index-split|module-path-index-submodule|module-path-index\\\\\\\\?|module-path\\\\\\\\?|module-predefined\\\\\\\\?|module-provide-protected\\\\\\\\?|modulo|mpair\\\\\\\\?|mutable-set|mutable-seteq|mutable-seteqv|n->th|nack-guard-evt|namespace-anchor->empty-namespace|namespace-anchor->namespace|namespace-anchor\\\\\\\\?|namespace-attach-module|namespace-attach-module-declaration|namespace-base-phase|namespace-mapped-symbols|namespace-module-identifier|namespace-module-registry|namespace-require|namespace-require\\\\\\\\/constant|namespace-require\\\\\\\\/copy|namespace-require\\\\\\\\/expansion-time|namespace-set-variable-value!|namespace-symbol->identifier|namespace-syntax-introduce|namespace-undefine-variable!|namespace-unprotect-module|namespace-variable-value|namespace\\\\\\\\?|nan\\\\\\\\?|natural-number\\\\\\\\/c|natural\\\\\\\\?|negate|negative-integer\\\\\\\\?|negative\\\\\\\\?|never-evt|newline|ninth|non-empty-string\\\\\\\\?|nonnegative-integer\\\\\\\\?|nonpositive-integer\\\\\\\\?|normal-case-path|normalize-arity|normalize-path|normalized-arity\\\\\\\\?|not|null|null\\\\\\\\?|number->string|number\\\\\\\\?|numerator|object%|object->vector|object-info|object-interface|object-method-arity-includes\\\\\\\\?|object-name|object-or-false=\\\\\\\\?|object=\\\\\\\\?|object\\\\\\\\?|odd\\\\\\\\?|open-input-bytes|open-input-string|open-output-bytes|open-output-nowhere|open-output-string|order-of-magnitude|ormap|other-execute-bit|other-read-bit|other-write-bit|output-port\\\\\\\\?|pair\\\\\\\\?|parameter-procedure=\\\\\\\\?|parameter\\\\\\\\?|parameterization\\\\\\\\?|parse-command-line|partition|path->bytes|path->complete-path|path->directory-path|path->string|path-add-extension|path-add-suffix|path-convention-type|path-element->bytes|path-element->string|path-element\\\\\\\\?|path-for-some-system\\\\\\\\?|path-get-extension|path-has-extension\\\\\\\\?|path-list-string->path-list|path-only|path-replace-extension|path-replace-suffix|path-string\\\\\\\\?|path<\\\\\\\\?|path\\\\\\\\?|peek-byte|peek-byte-or-special|peek-bytes|peek-bytes!|peek-bytes-avail!|peek-bytes-avail!\\\\\\\\*|peek-bytes-avail!\\\\\\\\/enable-break|peek-char|peek-char-or-special|peek-string|peek-string!|permutations|phantom-bytes\\\\\\\\?|pi|pi\\\\\\\\.f|pipe-content-length|place-break|place-channel|place-channel-get|place-channel-put|place-channel-put\\\\\\\\/get|place-channel\\\\\\\\?|place-dead-evt|place-enabled\\\\\\\\?|place-kill|place-location\\\\\\\\?|place-message-allowed\\\\\\\\?|place-sleep|place-wait|place\\\\\\\\?|placeholder-get|placeholder-set!|placeholder\\\\\\\\?|plumber-add-flush!|plumber-flush-all|plumber-flush-handle-remove!|plumber-flush-handle\\\\\\\\?|plumber\\\\\\\\?|poll-guard-evt|port->list|port-closed-evt|port-closed\\\\\\\\?|port-commit-peeked|port-count-lines!|port-count-lines-enabled|port-counts-lines\\\\\\\\?|port-display-handler|port-file-identity|port-file-unlock|port-next-location|port-number\\\\\\\\?|port-print-handler|port-progress-evt|port-provides-progress-evts\\\\\\\\?|port-read-handler|port-try-file-lock\\\\\\\\?|port-write-handler|port-writes-atomic\\\\\\\\?|port-writes-special\\\\\\\\?|port\\\\\\\\?|positive-integer\\\\\\\\?|positive\\\\\\\\?|predicate\\\\\\\\/c|prefab-key->struct-type|prefab-key\\\\\\\\?|prefab-struct-key|preferences-lock-file-mode|pregexp|pregexp\\\\\\\\?|pretty-display|pretty-print|pretty-print-\\\\\\\\.-symbol-without-bars|pretty-print-abbreviate-read-macros|pretty-print-columns|pretty-print-current-style-table|pretty-print-depth|pretty-print-exact-as-decimal|pretty-print-extend-style-table|pretty-print-handler|pretty-print-newline|pretty-print-post-print-hook|pretty-print-pre-print-hook|pretty-print-print-hook|pretty-print-print-line|pretty-print-remap-stylable|pretty-print-show-inexactness|pretty-print-size-hook|pretty-print-style-table\\\\\\\\?|pretty-printing|pretty-write|primitive-closure\\\\\\\\?|primitive-result-arity|primitive\\\\\\\\?|print|print-as-expression|print-boolean-long-form|print-box|print-graph|print-hash-table|print-mpair-curly-braces|print-pair-curly-braces|print-reader-abbreviations|print-struct|print-syntax-width|print-unreadable|print-vector-length|printable\\\\\\\\/c|printable<%>|printf|println|procedure->method|procedure-arity|procedure-arity-includes\\\\\\\\?|procedure-arity\\\\\\\\?|procedure-closure-contents-eq\\\\\\\\?|procedure-extract-target|procedure-impersonator\\\\\\\\*\\\\\\\\?|procedure-keywords|procedure-reduce-arity|procedure-reduce-keyword-arity|procedure-rename|procedure-result-arity|procedure-specialize|procedure-struct-type\\\\\\\\?|procedure\\\\\\\\?|processor-count|progress-evt\\\\\\\\?|promise-forced\\\\\\\\?|promise-running\\\\\\\\?|promise\\\\\\\\/name\\\\\\\\?|promise\\\\\\\\?|prop:arity-string|prop:arrow-contract|prop:arrow-contract-get-info|prop:arrow-contract\\\\\\\\?|prop:authentic|prop:blame|prop:chaperone-contract|prop:checked-procedure|prop:contract|prop:contracted|prop:custom-print-quotable|prop:custom-write|prop:dict|prop:equal\\\\\\\\+hash|prop:evt|prop:exn:missing-module|prop:exn:srclocs|prop:expansion-contexts|prop:flat-contract|prop:impersonator-of|prop:input-port|prop:liberal-define-context|prop:object-name|prop:opt-chaperone-contract|prop:opt-chaperone-contract-get-test|prop:opt-chaperone-contract\\\\\\\\?|prop:orc-contract|prop:orc-contract-get-subcontracts|prop:orc-contract\\\\\\\\?|prop:output-port|prop:place-location|prop:procedure|prop:recursive-contract|prop:recursive-contract-unroll|prop:recursive-contract\\\\\\\\?|prop:rename-transformer|prop:sequence|prop:set!-transformer|prop:stream|proper-subset\\\\\\\\?|pseudo-random-generator->vector|pseudo-random-generator-vector\\\\\\\\?|pseudo-random-generator\\\\\\\\?|put-preferences|putenv|quotient|quotient\\\\\\\\/remainder|radians->degrees|raise|raise-argument-error|raise-arguments-error|raise-arity-error|raise-contract-error|raise-mismatch-error|raise-range-error|raise-result-error|raise-syntax-error|raise-type-error|raise-user-error|random|random-seed|rational\\\\\\\\?|rationalize|read|read-accept-bar-quote|read-accept-box|read-accept-compiled|read-accept-dot|read-accept-graph|read-accept-infix-dot|read-accept-lang|read-accept-quasiquote|read-accept-reader|read-byte|read-byte-or-special|read-bytes|read-bytes!|read-bytes-avail!|read-bytes-avail!\\\\\\\\*|read-bytes-avail!\\\\\\\\/enable-break|read-bytes-line|read-case-sensitive|read-cdot|read-char|read-char-or-special|read-curly-brace-as-paren|read-curly-brace-with-tag|read-decimal-as-inexact|read-eval-print-loop|read-language|read-line|read-on-demand-source|read-square-bracket-as-paren|read-square-bracket-with-tag|read-string|read-string!|read-syntax|read-syntax\\\\\\\\/recursive|read\\\\\\\\/recursive|readtable-mapping|readtable\\\\\\\\?|real->decimal-string|real->double-flonum|real->floating-point-bytes|real->single-flonum|real-part|real\\\\\\\\?|reencode-input-port|reencode-output-port|regexp|regexp-match|regexp-match-exact\\\\\\\\?|regexp-match-peek|regexp-match-peek-immediate|regexp-match-peek-positions|regexp-match-peek-positions-immediate|regexp-match-peek-positions-immediate\\\\\\\\/end|regexp-match-peek-positions\\\\\\\\/end|regexp-match-positions|regexp-match-positions\\\\\\\\/end|regexp-match\\\\\\\\/end|regexp-match\\\\\\\\?|regexp-max-lookbehind|regexp-quote|regexp-replace|regexp-replace\\\\\\\\*|regexp-replace-quote|regexp-replaces|regexp-split|regexp-try-match|regexp\\\\\\\\?|relative-path\\\\\\\\?|remainder|remf|remf\\\\\\\\*|remove|remove\\\\\\\\*|remq|remq\\\\\\\\*|remv|remv\\\\\\\\*|rename-contract|rename-file-or-directory|rename-transformer-target|rename-transformer\\\\\\\\?|replace-evt|reroot-path|resolve-path|resolved-module-path-name|resolved-module-path\\\\\\\\?|rest|reverse|round|second|seconds->date|security-guard\\\\\\\\?|semaphore-peek-evt|semaphore-peek-evt\\\\\\\\?|semaphore-post|semaphore-try-wait\\\\\\\\?|semaphore-wait|semaphore-wait\\\\\\\\/enable-break|semaphore\\\\\\\\?|sequence->list|sequence->stream|sequence-add-between|sequence-andmap|sequence-append|sequence-count|sequence-filter|sequence-fold|sequence-for-each|sequence-generate|sequence-generate\\\\\\\\*|sequence-length|sequence-map|sequence-ormap|sequence-ref|sequence-tail|sequence\\\\\\\\?|set|set!-transformer-procedure|set!-transformer\\\\\\\\?|set->list|set->stream|set-add|set-add!|set-box!|set-clear|set-clear!|set-copy|set-copy-clear|set-count|set-empty\\\\\\\\?|set-eq\\\\\\\\?|set-equal\\\\\\\\?|set-eqv\\\\\\\\?|set-first|set-for-each|set-implements\\\\\\\\/c|set-implements\\\\\\\\?|set-intersect|set-intersect!|set-map|set-mcar!|set-mcdr!|set-member\\\\\\\\?|set-mutable\\\\\\\\?|set-phantom-bytes!|set-port-next-location!|set-remove|set-remove!|set-rest|set-subtract|set-subtract!|set-symmetric-difference|set-symmetric-difference!|set-union|set-union!|set-weak\\\\\\\\?|set=\\\\\\\\?|set\\\\\\\\?|seteq|seteqv|seventh|sgn|shared-bytes|shell-execute|shrink-path-wrt|shuffle|simple-form-path|simplify-path|sin|single-flonum\\\\\\\\?|sinh|sixth|skip-projection-wrapper\\\\\\\\?|sleep|some-system-path->string|special-comment-value|special-comment\\\\\\\\?|special-filter-input-port|split-at|split-at-right|split-common-prefix|split-path|splitf-at|splitf-at-right|sqr|sqrt|srcloc->string|srcloc-column|srcloc-line|srcloc-position|srcloc-source|srcloc-span|srcloc\\\\\\\\?|stop-after|stop-before|stream->list|stream-add-between|stream-andmap|stream-append|stream-count|stream-empty\\\\\\\\?|stream-filter|stream-first|stream-fold|stream-for-each|stream-length|stream-map|stream-ormap|stream-ref|stream-rest|stream-tail|stream\\\\\\\\/c|stream\\\\\\\\?|string|string->bytes\\\\\\\\/latin-1|string->bytes\\\\\\\\/locale|string->bytes\\\\\\\\/utf-8|string->immutable-string|string->keyword|string->list|string->number|string->path|string->path-element|string->some-system-path|string->symbol|string->uninterned-symbol|string->unreadable-symbol|string-append|string-append\\\\\\\\*|string-ci<=\\\\\\\\?|string-ci<\\\\\\\\?|string-ci=\\\\\\\\?|string-ci>=\\\\\\\\?|string-ci>\\\\\\\\?|string-contains\\\\\\\\?|string-copy|string-copy!|string-downcase|string-environment-variable-name\\\\\\\\?|string-fill!|string-foldcase|string-length|string-locale-ci<\\\\\\\\?|string-locale-ci=\\\\\\\\?|string-locale-ci>\\\\\\\\?|string-locale-downcase|string-locale-upcase|string-locale<\\\\\\\\?|string-locale=\\\\\\\\?|string-locale>\\\\\\\\?|string-no-nuls\\\\\\\\?|string-normalize-nfc|string-normalize-nfd|string-normalize-nfkc|string-normalize-nfkd|string-port\\\\\\\\?|string-prefix\\\\\\\\?|string-ref|string-set!|string-suffix\\\\\\\\?|string-titlecase|string-upcase|string-utf-8-length|string<=\\\\\\\\?|string<\\\\\\\\?|string=\\\\\\\\?|string>=\\\\\\\\?|string>\\\\\\\\?|string\\\\\\\\?|struct->vector|struct-accessor-procedure\\\\\\\\?|struct-constructor-procedure\\\\\\\\?|struct-info|struct-mutator-procedure\\\\\\\\?|struct-predicate-procedure\\\\\\\\?|struct-type-info|struct-type-make-constructor|struct-type-make-predicate|struct-type-property-accessor-procedure\\\\\\\\?|struct-type-property\\\\\\\\/c|struct-type-property\\\\\\\\?|struct-type\\\\\\\\?|struct:arity-at-least|struct:arrow-contract-info|struct:date|struct:date\\\\\\\\*|struct:exn|struct:exn:break|struct:exn:break:hang-up|struct:exn:break:terminate|struct:exn:fail|struct:exn:fail:contract|struct:exn:fail:contract:arity|struct:exn:fail:contract:blame|struct:exn:fail:contract:continuation|struct:exn:fail:contract:divide-by-zero|struct:exn:fail:contract:non-fixnum-result|struct:exn:fail:contract:variable|struct:exn:fail:filesystem|struct:exn:fail:filesystem:errno|struct:exn:fail:filesystem:exists|struct:exn:fail:filesystem:missing-module|struct:exn:fail:filesystem:version|struct:exn:fail:network|struct:exn:fail:network:errno|struct:exn:fail:object|struct:exn:fail:out-of-memory|struct:exn:fail:read|struct:exn:fail:read:eof|struct:exn:fail:read:non-char|struct:exn:fail:syntax|struct:exn:fail:syntax:missing-module|struct:exn:fail:syntax:unbound|struct:exn:fail:unsupported|struct:exn:fail:user|struct:srcloc|struct:wrapped-extra-arg-arrow|struct\\\\\\\\?|sub1|subbytes|subclass\\\\\\\\?|subclass\\\\\\\\?\\\\\\\\/c|subprocess|subprocess-group-enabled|subprocess-kill|subprocess-pid|subprocess-status|subprocess-wait|subprocess\\\\\\\\?|subset\\\\\\\\?|substring|suggest\\\\\\\\/c|symbol->string|symbol-interned\\\\\\\\?|symbol-unreadable\\\\\\\\?|symbol<\\\\\\\\?|symbol=\\\\\\\\?|symbol\\\\\\\\?|sync|sync\\\\\\\\/enable-break|sync\\\\\\\\/timeout|sync\\\\\\\\/timeout\\\\\\\\/enable-break|syntax->datum|syntax->list|syntax-arm|syntax-column|syntax-debug-info|syntax-disarm|syntax-e|syntax-line|syntax-local-bind-syntaxes|syntax-local-certifier|syntax-local-context|syntax-local-expand-expression|syntax-local-get-shadower|syntax-local-identifier-as-binding|syntax-local-introduce|syntax-local-lift-context|syntax-local-lift-expression|syntax-local-lift-module|syntax-local-lift-module-end-declaration|syntax-local-lift-provide|syntax-local-lift-require|syntax-local-lift-values-expression|syntax-local-make-definition-context|syntax-local-make-delta-introducer|syntax-local-module-defined-identifiers|syntax-local-module-exports|syntax-local-module-required-identifiers|syntax-local-name|syntax-local-phase-level|syntax-local-submodules|syntax-local-transforming-module-provides\\\\\\\\?|syntax-local-value|syntax-local-value\\\\\\\\/immediate|syntax-original\\\\\\\\?|syntax-position|syntax-property|syntax-property-preserved\\\\\\\\?|syntax-property-symbol-keys|syntax-protect|syntax-rearm|syntax-recertify|syntax-shift-phase-level|syntax-source|syntax-source-module|syntax-span|syntax-taint|syntax-tainted\\\\\\\\?|syntax-track-origin|syntax-transforming-module-expression\\\\\\\\?|syntax-transforming-with-lifts\\\\\\\\?|syntax-transforming\\\\\\\\?|syntax\\\\\\\\?|system-big-endian\\\\\\\\?|system-idle-evt|system-language\\\\\\\\+country|system-library-subpath|system-path-convention-type|system-type|tail-marks-match\\\\\\\\?|take|take-common-prefix|take-right|takef|takef-right|tan|tanh|tcp-abandon-port|tcp-accept|tcp-accept-evt|tcp-accept-ready\\\\\\\\?|tcp-accept\\\\\\\\/enable-break|tcp-addresses|tcp-close|tcp-connect|tcp-connect\\\\\\\\/enable-break|tcp-listen|tcp-listener\\\\\\\\?|tcp-port\\\\\\\\?|tentative-pretty-print-port-cancel|tentative-pretty-print-port-transfer|tenth|terminal-port\\\\\\\\?|the-unsupplied-arg|third|thread|thread-cell-ref|thread-cell-set!|thread-cell-values\\\\\\\\?|thread-cell\\\\\\\\?|thread-dead-evt|thread-dead\\\\\\\\?|thread-group\\\\\\\\?|thread-receive|thread-receive-evt|thread-resume|thread-resume-evt|thread-rewind-receive|thread-running\\\\\\\\?|thread-send|thread-suspend|thread-suspend-evt|thread-try-receive|thread-wait|thread\\\\\\\\/suspend-to-kill|thread\\\\\\\\?|time-apply|touch|true|truncate|udp-addresses|udp-bind!|udp-bound\\\\\\\\?|udp-close|udp-connect!|udp-connected\\\\\\\\?|udp-multicast-interface|udp-multicast-join-group!|udp-multicast-leave-group!|udp-multicast-loopback\\\\\\\\?|udp-multicast-set-interface!|udp-multicast-set-loopback!|udp-multicast-set-ttl!|udp-multicast-ttl|udp-open-socket|udp-receive!|udp-receive!\\\\\\\\*|udp-receive!-evt|udp-receive!\\\\\\\\/enable-break|udp-receive-ready-evt|udp-send|udp-send\\\\\\\\*|udp-send-evt|udp-send-ready-evt|udp-send-to|udp-send-to\\\\\\\\*|udp-send-to-evt|udp-send-to\\\\\\\\/enable-break|udp-send\\\\\\\\/enable-break|udp\\\\\\\\?|unbox|uncaught-exception-handler|unit\\\\\\\\?|unquoted-printing-string|unquoted-printing-string-value|unquoted-printing-string\\\\\\\\?|unspecified-dom|unsupplied-arg\\\\\\\\?|use-collection-link-paths|use-compiled-file-check|use-compiled-file-paths|use-user-specific-search-paths|user-execute-bit|user-read-bit|user-write-bit|value-blame|value-contract|values|variable-reference->empty-namespace|variable-reference->module-base-phase|variable-reference->module-declaration-inspector|variable-reference->module-path-index|variable-reference->module-source|variable-reference->namespace|variable-reference->phase|variable-reference->resolved-module-path|variable-reference-constant\\\\\\\\?|variable-reference\\\\\\\\?|vector|vector->immutable-vector|vector->list|vector->pseudo-random-generator|vector->pseudo-random-generator!|vector->values|vector-append|vector-argmax|vector-argmin|vector-cas!|vector-copy|vector-copy!|vector-count|vector-drop|vector-drop-right|vector-fill!|vector-filter|vector-filter-not|vector-immutable|vector-length|vector-map|vector-map!|vector-member|vector-memq|vector-memv|vector-ref|vector-set!|vector-set\\\\\\\\*!|vector-set-performance-stats!|vector-split-at|vector-split-at-right|vector-take|vector-take-right|vector\\\\\\\\?|version|void|void\\\\\\\\?|weak-box-value|weak-box\\\\\\\\?|weak-set|weak-seteq|weak-seteqv|will-execute|will-executor\\\\\\\\?|will-register|will-try-execute|with-input-from-bytes|with-input-from-string|with-output-to-bytes|with-output-to-string|would-be-future|wrap-evt|wrapped-extra-arg-arrow-extra-neg-party-argument|wrapped-extra-arg-arrow-real-func|wrapped-extra-arg-arrow\\\\\\\\?|writable<%>|write|write-byte|write-bytes|write-bytes-avail|write-bytes-avail\\\\\\\\*|write-bytes-avail-evt|write-bytes-avail\\\\\\\\/enable-break|write-char|write-special|write-special-avail\\\\\\\\*|write-special-evt|write-string|writeln|xor|zero\\\\\\\\?)(?=$|[()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])\"}]},\"byte-string\":{\"patterns\":[{\"begin\":\"#\\\\\"\",\"beginCaptures\":{\"0\":[{\"name\":\"punctuation.definition.string.begin.racket\"}]},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":[{\"name\":\"punctuation.definition.string.end.racket\"}]},\"name\":\"string.byte.racket\",\"patterns\":[{\"include\":\"#escape-char-base\"}]}]},\"character\":{\"patterns\":[{\"match\":\"\\\\\\\\#\\\\\\\\\\\\\\\\(?:(?:[0-7]{3})|(?:u[0-9a-fA-F]{1,4})|(?:U[0-9a-fA-F]{1,6})|(?:(?:null?|newline|linefeed|backspace|v?tab|page|return|space|rubout|(?:[^\\\\\\\\w\\\\\\\\s]|\\\\\\\\d))(?![a-zA-Z]))|(?:[^\\\\\\\\W\\\\\\\\d](?=[\\\\\\\\W\\\\\\\\d])|\\\\\\\\W))\",\"name\":\"string.quoted.single.racket\"}]},\"comment\":{\"patterns\":[{\"include\":\"#comment-line\"},{\"include\":\"#comment-block\"},{\"include\":\"#comment-sexp\"}]},\"comment-block\":{\"patterns\":[{\"begin\":\"#\\\\\\\\|\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.racket\"}},\"end\":\"\\\\\\\\|#\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.racket\"}},\"name\":\"comment.block.racket\",\"patterns\":[{\"include\":\"#comment-block\"}]}]},\"comment-line\":{\"patterns\":[{\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.racket\"}},\"match\":\"(#!)[ /].*$\",\"name\":\"comment.line.unix.racket\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.racket\"}},\"match\":\"(?<=^|[()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])(;).*$\",\"name\":\"comment.line.semicolon.racket\"}]},\"comment-sexp\":{\"patterns\":[{\"match\":\"(?<=^|[()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])#;\",\"name\":\"comment.sexp.racket\"}]},\"default-args\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.begin.racket\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.end.racket\"}},\"patterns\":[{\"include\":\"#default-args-content\"}]},{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.begin.racket\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.end.racket\"}},\"patterns\":[{\"include\":\"#default-args-content\"}]},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.begin.racket\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.end.racket\"}},\"patterns\":[{\"include\":\"#default-args-content\"}]}]},\"default-args-content\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#argument\"},{\"include\":\"$base\"}]},\"default-args-struct\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.begin.racket\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.end.racket\"}},\"patterns\":[{\"include\":\"#default-args-struct-content\"}]},{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.begin.racket\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.end.racket\"}},\"patterns\":[{\"include\":\"#default-args-struct-content\"}]},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.begin.racket\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.end.racket\"}},\"patterns\":[{\"include\":\"#default-args-struct-content\"}]}]},\"default-args-struct-content\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#argument-struct\"},{\"include\":\"$base\"}]},\"define\":{\"patterns\":[{\"include\":\"#define-func\"},{\"include\":\"#define-vals\"},{\"include\":\"#define-val\"}]},\"define-func\":{\"patterns\":[{\"begin\":\"(?<=[(\\\\\\\\[{])\\\\\\\\s*(define(?:(?:-for)?-syntax)?)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.lambda.racket\"},\"2\":{\"name\":\"punctuation.section.begin.racket\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.end.racket\"}},\"patterns\":[{\"include\":\"#func-args\"}]},{\"begin\":\"(?<=[(\\\\\\\\[{])\\\\\\\\s*(define(?:(?:-for)?-syntax)?)\\\\\\\\s*(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.lambda.racket\"},\"2\":{\"name\":\"punctuation.section.begin.racket\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.end.racket\"}},\"patterns\":[{\"include\":\"#func-args\"}]},{\"begin\":\"(?<=[(\\\\\\\\[{])\\\\\\\\s*(define(?:(?:-for)?-syntax)?)\\\\\\\\s*({)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.lambda.racket\"},\"2\":{\"name\":\"punctuation.section.begin.racket\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.end.racket\"}},\"patterns\":[{\"include\":\"#func-args\"}]}]},\"define-val\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.racket\"},\"2\":{\"name\":\"entity.name.constant.racket\"}},\"match\":\"(?<=[(\\\\\\\\[{])\\\\\\\\s*(define(?:(?:-for)?-syntax)?)\\\\\\\\s+([^(\\\\\\\\#)\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s][^()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s]*)\"}]},\"define-vals\":{\"patterns\":[{\"begin\":\"(?<=[(\\\\\\\\[{])\\\\\\\\s*(define-(?:values(?:-for-syntax)?|syntaxes)?)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.racket\"},\"2\":{\"name\":\"punctuation.section.begin.racket\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.end.racket\"}},\"patterns\":[{\"match\":\"[^(\\\\\\\\#)\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s][^()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s]*\",\"name\":\"entity.name.constant\"}]},{\"begin\":\"(?<=[(\\\\\\\\[{])\\\\\\\\s*(define-(?:values(?:-for-syntax)?|syntaxes)?)\\\\\\\\s*(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.racket\"},\"2\":{\"name\":\"punctuation.section.begin.racket\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.end.racket\"}},\"patterns\":[{\"match\":\"[^(\\\\\\\\#)\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s][^()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s]*\",\"name\":\"entity.name.constant\"}]},{\"begin\":\"(?<=[(\\\\\\\\[{])\\\\\\\\s*(define-(?:values(?:-for-syntax)?|syntaxes)?)\\\\\\\\s*({)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.racket\"},\"2\":{\"name\":\"punctuation.section.begin.racket\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.end.racket\"}},\"patterns\":[{\"match\":\"[^(\\\\\\\\#)\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s][^()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s]*\",\"name\":\"entity.name.constant\"}]}]},\"dot\":{\"patterns\":[{\"match\":\"(?<=^|[()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])\\\\\\\\.(?=$|[()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])\",\"name\":\"punctuation.accessor.racket\"}]},\"escape-char\":{\"patterns\":[{\"include\":\"#escape-char-base\"},{\"match\":\"\\\\\\\\\\\\\\\\(?:(?:u[\\\\\\\\da-fA-F]{1,4})|(?:U[\\\\\\\\da-fA-F]{1,8}))\",\"name\":\"constant.character.escape.racket\"},{\"include\":\"#escape-char-error\"}]},\"escape-char-base\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(?:(?:[abtnvfre\\\\\"'\\\\\\\\\\\\\\\\])|(?:[0-7]{1,3})|(?:x[\\\\\\\\da-fA-F]{1,2}))\",\"name\":\"constant.character.escape.racket\"}]},\"escape-char-error\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"invalid.illegal.escape.racket\"}]},\"format\":{\"patterns\":[{\"begin\":\"(?<=[(\\\\\\\\[{])\\\\\\\\s*(e?printf|format)\\\\\\\\s*(\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.racket\"},\"2\":{\"name\":\"string.quoted.double.racket\"}},\"contentName\":\"string.quoted.double.racket\",\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"string.quoted.double.racket\"}},\"patterns\":[{\"include\":\"#format-string\"},{\"include\":\"#escape-char\"}]}]},\"format-string\":{\"patterns\":[{\"match\":\"~(?:(?:\\\\\\\\.?[n%aAsSvV])|[cCbBoOxX~\\\\\\\\s])\",\"name\":\"constant.other.placeholder.racket\"}]},\"func-args\":{\"patterns\":[{\"include\":\"#function-name\"},{\"include\":\"#dot\"},{\"include\":\"#comment\"},{\"include\":\"#args\"}]},\"function-name\":{\"patterns\":[{\"begin\":\"(?<=[(\\\\\\\\[{])\\\\\\\\s*(\\\\\\\\|)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.verbatim.begin.racket\"}},\"contentName\":\"entity.name.function.racket\",\"end\":\"\\\\\\\\|\",\"endCaptures\":{\"0\":\"punctuation.verbatim.end.racket\"},\"name\":\"entity.name.function.racket\"},{\"begin\":\"(?<=[(\\\\\\\\[{])\\\\\\\\s*(\\\\\\\\#%|\\\\\\\\\\\\\\\\\\\\\\\\ |[^\\\\\\\\#()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.racket\"}},\"contentName\":\"entity.name.function.racket\",\"end\":\"(?=[()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\ \"},{\"begin\":\"\\\\\\\\|\",\"beginCaptures\":{\"0\":\"punctuation.verbatim.begin.racket\"},\"end\":\"\\\\\\\\|\",\"endCaptures\":{\"0\":\"punctuation.verbatim.end.racket\"}}]}]},\"hash\":{\"patterns\":[{\"begin\":\"\\\\\\\\#hash(?:eq(?:v)?)?\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.hash.begin.racket\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.hash.end.racket\"}},\"name\":\"meta.hash.racket\",\"patterns\":[{\"include\":\"#hash-content\"}]},{\"begin\":\"\\\\\\\\#hash(?:eq(?:v)?)?\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.hash.begin.racket\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.hash.end.racket\"}},\"name\":\"meta.hash.racket\",\"patterns\":[{\"include\":\"#hash-content\"}]},{\"begin\":\"\\\\\\\\#hash(?:eq(?:v)?)?\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.hash.begin.racket\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.hash.end.racket\"}},\"name\":\"meta.hash.racket\",\"patterns\":[{\"include\":\"#hash-content\"}]}]},\"hash-content\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#pairing\"}]},\"here-string\":{\"patterns\":[{\"begin\":\"#<<(.*)$\",\"end\":\"^\\\\\\\\1$\",\"name\":\"string.here.racket\"}]},\"keyword\":{\"patterns\":[{\"match\":\"(?<=^|[()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])\\\\\\\\#:[^()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s]+\",\"name\":\"keyword.other.racket\"}]},\"lambda\":{\"patterns\":[{\"include\":\"#lambda-onearg\"},{\"include\":\"#lambda-args\"}]},\"lambda-args\":{\"patterns\":[{\"begin\":\"(?<=[(\\\\\\\\[{])\\\\\\\\s*(lambda|λ)\\\\\\\\s+(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.lambda.racket\"},\"2\":{\"name\":\"punctuation.section.begin.racket\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.end.racket\"}},\"name\":\"meta.lambda.racket\",\"patterns\":[{\"include\":\"#args\"}]},{\"begin\":\"(?<=[(\\\\\\\\[{])\\\\\\\\s*(lambda|λ)\\\\\\\\s+({)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.lambda.racket\"},\"2\":{\"name\":\"punctuation.section.begin.racket\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.end.racket\"}},\"name\":\"meta.lambda.racket\",\"patterns\":[{\"include\":\"#args\"}]},{\"begin\":\"(?<=[(\\\\\\\\[{])\\\\\\\\s*(lambda|λ)\\\\\\\\s+(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.lambda.racket\"},\"2\":{\"name\":\"punctuation.section.begin.racket\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.end.racket\"}},\"name\":\"meta.lambda.racket\",\"patterns\":[{\"include\":\"#args\"}]}]},\"lambda-onearg\":[{\"captures\":{\"1\":{\"name\":\"storage.type.lambda.racket\"},\"2\":{\"name\":\"variable.parameter.racket\"}},\"match\":\"(?<=[(\\\\\\\\[{])\\\\\\\\s*(lambda|λ)\\\\\\\\s+([^(\\\\\\\\#)\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s][^()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s]*)\",\"name\":\"meta.lambda.racket\"}],\"list\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.list.begin.racket\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.list.end.racket\"}},\"name\":\"meta.list.racket\",\"patterns\":[{\"include\":\"#list-content\"}]},{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.list.begin.racket\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.list.end.racket\"}},\"name\":\"meta.list.racket\",\"patterns\":[{\"include\":\"#list-content\"}]},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.list.begin.racket\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.list.end.racket\"}},\"name\":\"meta.list.racket\",\"patterns\":[{\"include\":\"#list-content\"}]}]},\"list-content\":{\"patterns\":[{\"include\":\"#builtin-functions\"},{\"include\":\"#dot\"},{\"include\":\"$base\"}]},\"not-atom\":{\"patterns\":[{\"include\":\"#vector\"},{\"include\":\"#hash\"},{\"include\":\"#prefab-struct\"},{\"include\":\"#list\"},{\"match\":\"(?<=^|[()\\\\\\\\[\\\\\\\\]{}\\\\\\\\\\\\\",'\\`;\\\\\\\\s])(?:\\\\\\\\#[cC][iI]|\\\\\\\\#[cC][sS])(?=\\\\\\\\s)\",\"name\":\"keyword.control.racket\"},{\"match\":\"(?<=^|[()\\\\\\\\[\\\\\\\\]{}\\\\\\\\\\\\\",'\\`;\\\\\\\\s])(?:\\\\\\\\#&)\",\"name\":\"support.function.racket\"}]},\"number\":{\"patterns\":[{\"include\":\"#number-dec\"},{\"include\":\"#number-oct\"},{\"include\":\"#number-bin\"},{\"include\":\"#number-hex\"}]},\"number-bin\":{\"patterns\":[{\"match\":\"(?<=^|[()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])(?:\\\\\\\\#[bB](?:\\\\\\\\#[eEiI])?|(?:\\\\\\\\#[eEiI])?\\\\\\\\#[bB])(?:(?:(?:(?:(?:(?:[+-]?[01]+\\\\\\\\#*\\\\\\\\/[01]+\\\\\\\\#*)|(?:[+-]?[01]+\\\\\\\\.[01]+\\\\\\\\#*)|(?:[+-]?[01]+\\\\\\\\#*\\\\\\\\.\\\\\\\\#*)|(?:[+-]?[01]+\\\\\\\\#*))(?:[sldefSLDEF][+-]?[01]+)?)|[+-](?:(?:[iI][nN][fF])\\\\\\\\.[0f]|(?:[nN][aA][nN])\\\\\\\\.[0f]))@(?:(?:(?:(?:[+-]?[01]+\\\\\\\\#*\\\\\\\\/[01]+\\\\\\\\#*)|(?:[+-]?[01]+\\\\\\\\.[01]+\\\\\\\\#*)|(?:[+-]?[01]+\\\\\\\\#*\\\\\\\\.\\\\\\\\#*)|(?:[+-]?[01]+\\\\\\\\#*))(?:[sldefSLDEF][+-]?[01]+)?)|(?:(?:[iI][nN][fF])\\\\\\\\.[0f]|(?:[nN][aA][nN])\\\\\\\\.[0f])))|(?:(?:(?:(?:(?:[+-]?[01]+\\\\\\\\#*\\\\\\\\/[01]+\\\\\\\\#*)|(?:[+-]?[01]+\\\\\\\\.[01]+\\\\\\\\#*)|(?:[+-]?[01]+\\\\\\\\#*\\\\\\\\.\\\\\\\\#*)|(?:[+-]?[01]+\\\\\\\\#*))(?:[sldefSLDEF][+-]?[01]+)?)|[+-](?:(?:[iI][nN][fF])\\\\\\\\.[0f]|(?:[nN][aA][nN])\\\\\\\\.[0f]))?[+-](?:(?:(?:(?:[+-]?[01]+\\\\\\\\#*\\\\\\\\/[01]+\\\\\\\\#*)|(?:[+-]?[01]+\\\\\\\\.[01]+\\\\\\\\#*)|(?:[+-]?[01]+\\\\\\\\#*\\\\\\\\.\\\\\\\\#*)|(?:[+-]?[01]+\\\\\\\\#*))(?:[sldefSLDEF][+-]?[01]+)?)|(?:(?:[iI][nN][fF])\\\\\\\\.[0f]|(?:[nN][aA][nN])\\\\\\\\.[0f])|)i)|[+-](?:(?:[iI][nN][fF])\\\\\\\\.[0f]|(?:[nN][aA][nN])\\\\\\\\.[0f])|(?:(?:[+-]?[01]+\\\\\\\\#*\\\\\\\\/[01]+\\\\\\\\#*)|(?:[+-]?[01]*\\\\\\\\.[01]+\\\\\\\\#*)|(?:[+-]?[01]+\\\\\\\\#*\\\\\\\\.\\\\\\\\#*)|(?:[+-]?[01]+\\\\\\\\#*))(?:[sldefSLDEF][+-]?[01]+)?)(?=$|[()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])\",\"name\":\"constant.numeric.bin.racket\"}]},\"number-dec\":{\"patterns\":[{\"match\":\"(?<=^|[()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])(?:(?:\\\\\\\\#[dD])?(?:\\\\\\\\#[eEiI])?|(?:\\\\\\\\#[eEiI])?(?:\\\\\\\\#[dD])?)(?:(?:(?:(?:(?:(?:[+-]?\\\\\\\\d+\\\\\\\\#*\\\\\\\\/\\\\\\\\d+\\\\\\\\#*)|(?:[+-]?\\\\\\\\d+\\\\\\\\.\\\\\\\\d+\\\\\\\\#*)|(?:[+-]?\\\\\\\\d+\\\\\\\\#*\\\\\\\\.\\\\\\\\#*)|(?:[+-]?\\\\\\\\d+\\\\\\\\#*))(?:[sldefSLDEF][+-]?\\\\\\\\d+)?)|[+-](?:(?:[iI][nN][fF])\\\\\\\\.[0f]|(?:[nN][aA][nN])\\\\\\\\.[0f]))@(?:(?:(?:(?:[+-]?\\\\\\\\d+\\\\\\\\#*\\\\\\\\/\\\\\\\\d+\\\\\\\\#*)|(?:[+-]?\\\\\\\\d+\\\\\\\\.\\\\\\\\d+\\\\\\\\#*)|(?:[+-]?\\\\\\\\d+\\\\\\\\#*\\\\\\\\.\\\\\\\\#*)|(?:[+-]?\\\\\\\\d+\\\\\\\\#*))(?:[sldefSLDEF][+-]?\\\\\\\\d+)?)|[+-](?:(?:[iI][nN][fF])\\\\\\\\.[0f]|(?:[nN][aA][nN])\\\\\\\\.[0f])))|(?:(?:(?:(?:(?:[+-]?\\\\\\\\d+\\\\\\\\#*\\\\\\\\/\\\\\\\\d+\\\\\\\\#*)|(?:[+-]?\\\\\\\\d+\\\\\\\\.\\\\\\\\d+\\\\\\\\#*)|(?:[+-]?\\\\\\\\d+\\\\\\\\#*\\\\\\\\.\\\\\\\\#*)|(?:[+-]?\\\\\\\\d+\\\\\\\\#*))(?:[sldefSLDEF][+-]?\\\\\\\\d+)?)|[+-](?:(?:[iI][nN][fF])\\\\\\\\.[0f]|(?:[nN][aA][nN])\\\\\\\\.[0f]))?[+-](?:(?:(?:(?:[+-]?\\\\\\\\d+\\\\\\\\#*\\\\\\\\/\\\\\\\\d+\\\\\\\\#*)|(?:[+-]?\\\\\\\\d+\\\\\\\\.\\\\\\\\d+\\\\\\\\#*)|(?:[+-]?\\\\\\\\d+\\\\\\\\#*\\\\\\\\.\\\\\\\\#*)|(?:[+-]?\\\\\\\\d+\\\\\\\\#*))(?:[sldefSLDEF][+-]?\\\\\\\\d+)?)|(?:(?:[iI][nN][fF])\\\\\\\\.[0f]|(?:[nN][aA][nN])\\\\\\\\.[0f])|)i)|[+-](?:(?:[iI][nN][fF])\\\\\\\\.[0f]|(?:[nN][aA][nN])\\\\\\\\.[0f])|(?:(?:[+-]?\\\\\\\\d+\\\\\\\\#*\\\\\\\\/\\\\\\\\d+\\\\\\\\#*)|(?:[+-]?\\\\\\\\d*\\\\\\\\.\\\\\\\\d+\\\\\\\\#*)|(?:[+-]?\\\\\\\\d+\\\\\\\\#*\\\\\\\\.\\\\\\\\#*)|(?:[+-]?\\\\\\\\d+\\\\\\\\#*))(?:[sldefSLDEF][+-]?\\\\\\\\d+)?)(?=$|[()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])\",\"name\":\"constant.numeric.racket\"}]},\"number-hex\":{\"patterns\":[{\"match\":\"(?<=^|[()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])(?:\\\\\\\\#[xX](?:\\\\\\\\#[eEiI])?|(?:\\\\\\\\#[eEiI])?\\\\\\\\#[xX])(?:(?:(?:(?:(?:(?:[+-]?[0-9a-fA-F]+\\\\\\\\#*\\\\\\\\/[0-9a-fA-F]+\\\\\\\\#*)|(?:[+-]?[0-9a-fA-F]\\\\\\\\.[0-9a-fA-F]+\\\\\\\\#*)|(?:[+-]?[0-9a-fA-F]+\\\\\\\\#*\\\\\\\\.\\\\\\\\#*)|(?:[+-]?[0-9a-fA-F]+\\\\\\\\#*))(?:[slSL][+-]?[0-9a-fA-F]+)?)|[+-](?:(?:[iI][nN][fF])\\\\\\\\.[0f]|(?:[nN][aA][nN])\\\\\\\\.[0f]))@(?:(?:(?:(?:[+-]?[0-9a-fA-F]+\\\\\\\\#*\\\\\\\\/[0-9a-fA-F]+\\\\\\\\#*)|(?:[+-]?[0-9a-fA-F]+\\\\\\\\.[0-9a-fA-F]+\\\\\\\\#*)|(?:[+-]?[0-9a-fA-F]+\\\\\\\\#*\\\\\\\\.\\\\\\\\#*)|(?:[+-]?[0-9a-fA-F]+\\\\\\\\#*))(?:[slSL][+-]?[0-9a-fA-F]+)?)|(?:(?:[iI][nN][fF])\\\\\\\\.[0f]|(?:[nN][aA][nN])\\\\\\\\.[0f])))|(?:(?:(?:(?:(?:[+-]?[0-9a-fA-F]+\\\\\\\\#*\\\\\\\\/[0-9a-fA-F]+\\\\\\\\#*)|(?:[+-]?[0-9a-fA-F]+\\\\\\\\.[0-9a-fA-F]+\\\\\\\\#*)|(?:[+-]?[0-9a-fA-F]+\\\\\\\\#*\\\\\\\\.\\\\\\\\#*)|(?:[+-]?[0-9a-fA-F]+\\\\\\\\#*))(?:[slSL][+-]?[0-9a-fA-F]+)?)|[+-](?:(?:[iI][nN][fF])\\\\\\\\.[0f]|(?:[nN][aA][nN])\\\\\\\\.[0f]))?[+-](?:(?:(?:(?:[+-]?[0-9a-fA-F]+\\\\\\\\#*\\\\\\\\/[0-9a-fA-F]+\\\\\\\\#*)|(?:[+-]?[0-9a-fA-F]+\\\\\\\\.[0-9a-fA-F]+\\\\\\\\#*)|(?:[+-]?[0-9a-fA-F]+\\\\\\\\#*\\\\\\\\.\\\\\\\\#*)|(?:[+-]?[0-9a-fA-F]+\\\\\\\\#*))(?:[slSL][+-]?[0-9a-fA-F]+)?)|(?:(?:[iI][nN][fF])\\\\\\\\.[0f]|(?:[nN][aA][nN])\\\\\\\\.[0f])|)i)|[+-](?:(?:[iI][nN][fF])\\\\\\\\.[0f]|(?:[nN][aA][nN])\\\\\\\\.[0f])|(?:(?:[+-]?[0-9a-fA-F]+\\\\\\\\#*\\\\\\\\/[0-9a-fA-F]+\\\\\\\\#*)|(?:[+-]?[0-9a-fA-F]*\\\\\\\\.[0-9a-fA-F]+\\\\\\\\#*)|(?:[+-]?[0-9a-fA-F]+\\\\\\\\#*\\\\\\\\.\\\\\\\\#*)|(?:[+-]?[0-9a-fA-F]+\\\\\\\\#*))(?:[slSL][+-]?[0-9a-fA-F]+)?)(?=$|[()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])\",\"name\":\"constant.numeric.hex.racket\"}]},\"number-oct\":{\"patterns\":[{\"match\":\"(?<=^|[()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])(?:\\\\\\\\#[oO](?:\\\\\\\\#[eEiI])?|(?:\\\\\\\\#[eEiI])?\\\\\\\\#[oO])(?:(?:(?:(?:(?:(?:[+-]?[0-7]+\\\\\\\\#*\\\\\\\\/[0-7]+\\\\\\\\#*)|(?:[+-]?[0-7]+\\\\\\\\.[0-7]+\\\\\\\\#*)|(?:[+-]?[0-7]+\\\\\\\\#*\\\\\\\\.\\\\\\\\#*)|(?:[+-]?[0-7]+\\\\\\\\#*))(?:[sldefSLDEF][+-]?[0-7]+)?)|[+-](?:(?:[iI][nN][fF])\\\\\\\\.[0f]|(?:[nN][aA][nN])\\\\\\\\.[0f]))@(?:(?:(?:(?:[+-]?[0-7]+\\\\\\\\#*\\\\\\\\/[0-7]+\\\\\\\\#*)|(?:[+-]?[0-7]+\\\\\\\\.[0-7]+\\\\\\\\#*)|(?:[+-]?[0-7]+\\\\\\\\#*\\\\\\\\.\\\\\\\\#*)|(?:[+-]?[0-7]+\\\\\\\\#*))(?:[sldefSLDEF][+-]?[0-7]+)?)|[+-](?:(?:[iI][nN][fF])\\\\\\\\.[0f]|(?:[nN][aA][nN])\\\\\\\\.[0f])))|(?:(?:(?:(?:(?:[+-]?[0-7]+\\\\\\\\#*\\\\\\\\/[0-7]+\\\\\\\\#*)|(?:[+-]?[0-7]+\\\\\\\\.[0-7]+\\\\\\\\#*)|(?:[+-]?[0-7]+\\\\\\\\#*\\\\\\\\.\\\\\\\\#*)|(?:[+-]?[0-7]+\\\\\\\\#*))(?:[sldefSLDEF][+-]?[0-7]+)?)|[+-](?:(?:[iI][nN][fF])\\\\\\\\.[0f]|(?:[nN][aA][nN])\\\\\\\\.[0f]))?[+-](?:(?:(?:(?:[+-]?[0-7]+\\\\\\\\#*\\\\\\\\/[0-7]+\\\\\\\\#*)|(?:[+-]?[0-7]+\\\\\\\\.[0-7]+\\\\\\\\#*)|(?:[+-]?[0-7]+\\\\\\\\#*\\\\\\\\.\\\\\\\\#*)|(?:[+-]?[0-7]+\\\\\\\\#*))(?:[sldefSLDEF][+-]?[0-7]+)?)|(?:(?:[iI][nN][fF])\\\\\\\\.[0f]|(?:[nN][aA][nN])\\\\\\\\.[0f])|)i)|[+-](?:(?:[iI][nN][fF])\\\\\\\\.[0f]|(?:[nN][aA][nN])\\\\\\\\.[0f])|(?:(?:[+-]?[0-7]+\\\\\\\\#*\\\\\\\\/[0-7]+\\\\\\\\#*)|(?:[+-]?[0-7]*\\\\\\\\.[0-7]+\\\\\\\\#*)|(?:[+-]?[0-7]+\\\\\\\\#*\\\\\\\\.\\\\\\\\#*)|(?:[+-]?[0-7]+\\\\\\\\#*))(?:[sldefSLDEF][+-]?[0-7]+)?)(?=$|[()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])\",\"name\":\"constant.numeric.octal.racket\"}]},\"pair-content\":{\"patterns\":[{\"include\":\"#dot\"},{\"include\":\"#comment\"},{\"include\":\"#atom\"}]},\"pairing\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.pair.begin.racket\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.pair.end.racket\"}},\"name\":\"meta.list.racket\",\"patterns\":[{\"include\":\"#pair-content\"}]},{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.pair.begin.racket\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.pair.end.racket\"}},\"name\":\"meta.list.racket\",\"patterns\":[{\"include\":\"#pair-content\"}]},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.pair.begin.racket\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.pair.end.racket\"}},\"name\":\"meta.list.racket\",\"patterns\":[{\"include\":\"#pair-content\"}]}]},\"prefab-struct\":{\"patterns\":[{\"begin\":\"#s\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.prefab-struct.begin.racket\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.prefab-struct.end.racket\"}},\"name\":\"meta.prefab-struct.racket\",\"patterns\":[{\"include\":\"$base\"}]},{\"begin\":\"#s\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.prefab-struct.begin.racket\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.prefab-struct.end.racket\"}},\"name\":\"meta.prefab-struct.racket\",\"patterns\":[{\"include\":\"$base\"}]},{\"begin\":\"#s{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.prefab-struct.begin.racket\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.prefab-struct.end.racket\"}},\"name\":\"meta.prefab-struct.racket\",\"patterns\":[{\"include\":\"$base\"}]}]},\"quote\":{\"patterns\":[{\"match\":\"(?<=^|[()\\\\\\\\[\\\\\\\\]{}\\\\\\\\\\\\\",'\\`;\\\\\\\\s])(?:,@|'|\\`|,|\\\\\\\\#'|\\\\\\\\#\\`|\\\\\\\\#,|\\\\\\\\#~|\\\\\\\\#,@)+(?=[()\\\\\\\\[\\\\\\\\]{}\\\\\\\\\\\\\",'\\`;\\\\\\\\s]|\\\\\\\\#[^%]|[^()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])\",\"name\":\"support.function.racket\"}]},\"regexp-byte-string\":{\"patterns\":[{\"begin\":\"#(r|p)x#\\\\\"\",\"beginCaptures\":{\"0\":[{\"name\":\"punctuation.definition.string.begin.racket\"}]},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":[{\"name\":\"punctuation.definition.string.end.racket\"}]},\"name\":\"string.regexp.byte.racket\",\"patterns\":[{\"include\":\"#escape-char-base\"}]}]},\"regexp-string\":{\"patterns\":[{\"begin\":\"#(r|p)x\\\\\"\",\"beginCaptures\":{\"0\":[{\"name\":\"punctuation.definition.string.begin.racket\"}]},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":[{\"name\":\"punctuation.definition.string.end.racket\"}]},\"name\":\"string.regexp.racket\",\"patterns\":[{\"include\":\"#escape-char-base\"}]}]},\"string\":{\"patterns\":[{\"include\":\"#byte-string\"},{\"include\":\"#regexp-byte-string\"},{\"include\":\"#regexp-string\"},{\"include\":\"#base-string\"},{\"include\":\"#here-string\"}]},\"struct\":{\"patterns\":[{\"begin\":\"(?<=[(\\\\\\\\[{])\\\\\\\\s*(struct)\\\\\\\\s+([^(\\\\\\\\#)\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s][^()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s]*)(?:\\\\\\\\s+[^(\\\\\\\\#)\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s][^()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s]*)?\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.struct.racket\"},\"2\":{\"name\":\"entity.name.struct.racket\"},\"3\":{\"name\":\"punctuation.section.fields.begin.racket\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.fields.end.racket\"}},\"name\":\"meta.struct.fields.racket\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#default-args-struct\"},{\"include\":\"#struct-field\"}]},{\"begin\":\"(?<=[(\\\\\\\\[{])\\\\\\\\s*(struct)\\\\\\\\s+([^(\\\\\\\\#)\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s][^()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s]*)(?:\\\\\\\\s+[^(\\\\\\\\#)\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s][^()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s]*)?\\\\\\\\s*(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.struct.racket\"},\"2\":{\"name\":\"entity.name.struct.racket\"},\"3\":{\"name\":\"punctuation.section.fields.begin.racket\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.fields.end.racket\"}},\"name\":\"meta.struct.fields.racket\",\"patterns\":[{\"include\":\"#default-args-struct\"},{\"include\":\"#struct-field\"}]},{\"begin\":\"(?<=[(\\\\\\\\[{])\\\\\\\\s*(struct)\\\\\\\\s+([^(\\\\\\\\#)\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s][^()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s]*)(?:\\\\\\\\s+[^(\\\\\\\\#)\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s][^()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s]*)?\\\\\\\\s*(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.struct.racket\"},\"2\":{\"name\":\"entity.name.struct.racket\"},\"3\":{\"name\":\"punctuation.section.fields.begin.racket\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.fields.end.racket\"}},\"name\":\"meta.struct.fields.racket\",\"patterns\":[{\"include\":\"#default-args-struct\"},{\"include\":\"#struct-field\"}]}]},\"struct-field\":{\"patterns\":[{\"begin\":\"(?<=^|[()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])(\\\\\\\\|)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.verbatim.begin.racket\"}},\"contentName\":\"variable.other.member.racket\",\"end\":\"\\\\\\\\|\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.verbatim.end.racket\"}}},{\"begin\":\"(?<=^|[()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])(\\\\\\\\#%|\\\\\\\\\\\\\\\\\\\\\\\\ |[^\\\\\\\\#()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.member.racket\"}},\"contentName\":\"variable.other.member.racket\",\"end\":\"(?=[()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\ \"},{\"begin\":\"\\\\\\\\|\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.verbatim.begin.racket\"}},\"end\":\"\\\\\\\\|\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.verbatim.end.racket\"}}}]}]},\"symbol\":{\"patterns\":[{\"begin\":\"(?<=^|[()\\\\\\\\[\\\\\\\\]{}\\\\\",;\\\\\\\\s])(?:\\`|')+(\\\\\\\\|)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.verbatim.begin.racket\"}},\"end\":\"\\\\\\\\|\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.verbatim.end.racket\"}},\"name\":\"string.quoted.single.racket\"},{\"begin\":\"(?<=^|[()\\\\\\\\[\\\\\\\\]{}\\\\\",;\\\\\\\\s])(?:\\`|')+(?:\\\\\\\\#%|\\\\\\\\\\\\\\\\\\\\\\\\ |[^\\\\\\\\#()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])\",\"end\":\"(?=[()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])\",\"name\":\"string.quoted.single.racket\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\ \"},{\"begin\":\"\\\\\\\\|\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.verbatim.begin.racket\"}},\"end\":\"\\\\\\\\|\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.verbatim.end.racket\"}}}]}]},\"variable\":{\"patterns\":[{\"begin\":\"(?<=^|[()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])(\\\\\\\\|)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.verbatim.begin.racket\"}},\"end\":\"\\\\\\\\|\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.verbatim.end.racket\"}}},{\"begin\":\"(?<=^|[()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])(?:\\\\\\\\#%|\\\\\\\\\\\\\\\\\\\\\\\\ |[^\\\\\\\\#()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])\",\"end\":\"(?=[()\\\\\\\\[\\\\\\\\]{}\\\\\",'\\`;\\\\\\\\s])\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\ \"},{\"begin\":\"\\\\\\\\|\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.verbatim.begin.racket\"}},\"end\":\"\\\\\\\\|\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.verbatim.end.racket\"}}}]}]},\"vector\":{\"patterns\":[{\"begin\":\"\\\\\\\\#(?:fl|Fl|fx|Fx)?[0-9]*\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.vector.begin.racket\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.vector.end.racket\"}},\"name\":\"meta.vector.racket\",\"patterns\":[{\"include\":\"$base\"}]},{\"begin\":\"\\\\\\\\#(?:fl|Fl|fx|Fx)?[0-9]*\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.vector.begin.racket\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.vector.end.racket\"}},\"name\":\"meta.vector.racket\",\"patterns\":[{\"include\":\"$base\"}]},{\"begin\":\"\\\\\\\\#(?:fl|Fl|fx|Fx)?[0-9]*{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.vector.begin.racket\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.vector.end.racket\"}},\"name\":\"meta.vector.racket\",\"patterns\":[{\"include\":\"$base\"}]}]}},\"scopeName\":\"source.racket\"}`)),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/D-1_drer.js",
    "content": "import{_ as N}from\"./DZb6Dd70.js\";import{C as u,g as l,j as o,d as R,m as F,u as J,c as g,a6 as P,a0 as G,ah as O,r as _,i as n,f as m,E as h,x as t,aw as q,e as f,ab as W,aN as Z,k as z,t as K,L as Q,aO as X,G as C,ad as Y,ae as ee,F as te,a8 as oe,s as b,ag as ae}from\"./CU_MfyYc.js\";import{a as se}from\"./C4bX54si.js\";function ne(r,s){return l(),u(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[o(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"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\"})])}function re(r,s){return l(),u(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[o(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M3 3v1.5M3 21v-6m0 0 2.77-.693a9 9 0 0 1 6.208.682l.108.054a9 9 0 0 0 6.086.71l3.114-.732a48.524 48.524 0 0 1-.005-10.499l-3.11.732a9 9 0 0 1-6.085-.711l-.108-.054a9 9 0 0 0-6.208-.682L3 4.5M3 15V4.5\"})])}function le(r,s){return l(),u(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[o(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z\"})])}const ie={key:0,class:\"mb-4\"},de=[\"innerHTML\"],ue={class:\"flex justify-end\"},ce={class:\"rounded-md bg-red-50 p-4 my-4 select-text\"},me={class:\"flex\"},pe={class:\"flex-shrink-0\"},ge={class:\"ml-3 overflow-hidden w-full\"},he=[\"textContent\"],fe=[\"innerHTML\"],be=[\"value\"],ke=R({__name:\"Exception\",props:F({title:String,content:{type:String,default:\"\"},mode:String,debugMode:{type:Boolean,default:!1}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:[\"update:modelValue\"],setup(r){const s=r,c=J(r,\"modelValue\"),M=g(()=>P().params.id),L=G(),a=O({description:\"\",attachLogs:!0,email:\"\"}),B=_(!1),p=_(!1),x=_(!1),y=g(()=>s.mode===\"backtest\"&&!s.debugMode?{message:'It is highly recommended to attach log files with reports. To do that, press cancel, enable \"Debug Mode\", and  run again. ',type:\"warning\"}:{message:\"\",type:\"\"}),T=g(()=>s.mode===\"backtest\"&&s.debugMode||s.mode===\"live\"),k=g(()=>L.hasLivePluginInstalled),U=async()=>{x.value=!0;const{data:v,error:e}=await oe(\"/system/report-exception\",{description:a.description,email:a.email,traceback:s.content,mode:s.mode,attach_logs:a.attachLogs,session_id:M.value},!0);if(x.value=!1,e.value&&e.value.statusCode!==200){b(\"error\",`[${e.value.statusCode}]: ${e.value.message}`);return}const d=v.value;d.status===\"success\"?(a.description=\"\",a.email=\"\",b(\"success\",d.message),c.value=!1):d.status===\"error\"&&b(\"error\",d.message)},$=()=>{navigator.clipboard.writeText(s.content),b(\"success\",\"Copied successfully\"),p.value=!0,setTimeout(()=>{p.value=!1},2e3)},E=()=>{c.value=!0};return(v,e)=>{const d=N,S=Z,w=W,D=z,I=ae,V=K,j=q,A=Q,H=se;return l(),u(te,null,[n(A,{modelValue:c.value,\"onUpdate:modelValue\":e[5]||(e[5]=i=>c.value=i),title:\"Report\"},{default:m(()=>[t(y).message?(l(),u(\"div\",ie,[n(d,{color:\"teal\",icon:\"i-heroicons-check-circle\",title:t(y).message,\"close-button\":{icon:\"i-heroicons-x-mark-20-solid\",color:\"white\",variant:\"link\"},onClose:e[0]||(e[0]=i=>t(y).message=\"\")},null,8,[\"title\"])])):h(\"\",!0),e[6]||(e[6]=o(\"p\",null,\" If the exception you're seeing is not clear and you think it might be a bug, please send us a report to help us debugging and fixing it in a future release. \",-1)),e[7]||(e[7]=o(\"br\",null,null,-1)),e[8]||(e[8]=o(\"label\",{class:\"font-semibold\"},\"Exception:\",-1)),o(\"pre\",{class:\"break-all lg:break-normal mt-2 text-sm whitespace-pre-line px-6 py-6 rounded-md bg-gray-50 dark:bg-gray-700 text-gray-700 dark:text-gray-300 dark:border-gray-800 border border-gray-200\",innerHTML:r.content},null,8,de),n(j,{state:t(a),class:\"space-y-4 mt-4\",onSubmit:U},{default:m(()=>[n(w,{label:\"Description (optional):\",name:\"Description (optional):\"},{default:m(()=>[n(S,{modelValue:t(a).description,\"onUpdate:modelValue\":e[1]||(e[1]=i=>t(a).description=i),rows:10,placeholder:\"Describe how the exception occurred...\"},null,8,[\"modelValue\"])]),_:1}),t(k)?h(\"\",!0):(l(),f(w,{key:0,label:\"Email (must be registered with on Jesse.Trade)\",help:\"Enter your email address for us to know who sent the feedback and possibly reply back to you. It must be the email address of your account on Jesse.Trade\",required:\"\"},{default:m(()=>[n(D,{modelValue:t(a).email,\"onUpdate:modelValue\":e[2]||(e[2]=i=>t(a).email=i),placeholder:\"Email address...\",type:\"email\"},null,8,[\"modelValue\"])]),_:1})),t(T)?(l(),f(I,{key:1,modelValue:t(a).attachLogs,\"onUpdate:modelValue\":e[3]||(e[3]=i=>t(a).attachLogs=i),title:\"Attach Debugging Logs\",help:\"Attach the log file of this session along with this report which helps Jesse's team\"},null,8,[\"modelValue\"])):h(\"\",!0),o(\"div\",ue,[n(V,{id:\"feedback-cancel-button\",color:\"gray\",variant:\"ghost\",class:\"mr-2\",label:\"Cancel\",onClick:e[4]||(e[4]=i=>c.value=!1)}),n(V,{id:\"feedback-submit-button\",type:\"submit\",class:\"w-48 flex justify-center\",label:\"Submit\",loading:t(x),disabled:!t(a).email.length&&!t(k)},null,8,[\"loading\",\"disabled\"])])]),_:1},8,[\"state\"])]),_:1},8,[\"modelValue\"]),n(H,{title:\"Exception\"},{default:m(()=>[o(\"button\",{type:\"button\",class:\"inline-flex items-center shadow-sm px-4 py-1.5 border border-gray-300 dark:border-gray-600 text-sm leading-5 font-medium rounded-l-full text-gray-700 dark:text-gray-100 bg-white dark:bg-backdrop-dark hover:bg-gray-50 dark:hover:bg-gray-800 focus:outline-none\",onClick:E},[n(t(re),{class:\"-ml-1.5 mr-1 h-5 w-5 text-gray-400\",\"aria-hidden\":\"true\"}),e[9]||(e[9]=o(\"span\",null,\"Report\",-1))]),o(\"button\",{type:\"button\",class:\"inline-flex items-center shadow-sm px-4 py-1.5 border border-gray-300 dark:border-gray-600 text-sm leading-5 font-medium rounded-r-full text-gray-700 dark:text-gray-100 bg-white dark:bg-backdrop-dark hover:bg-gray-50 dark:hover:bg-gray-800 focus:outline-none\",onClick:$},[t(p)?(l(),f(t(X),{key:0,class:\"-ml-1.5 mr-1 h-5 w-5 text-gray-400\",\"aria-hidden\":\"true\"})):(l(),f(t(ne),{key:1,class:\"-ml-1.5 mr-1 h-5 w-5 text-gray-400\",\"aria-hidden\":\"true\"})),o(\"span\",null,C(t(p)?\"Copied\":\"Copy\"),1)])]),_:1}),o(\"div\",ce,[o(\"div\",me,[o(\"div\",pe,[n(t(le),{class:\"h-5 w-5 text-red-400\",\"aria-hidden\":\"true\"})]),o(\"div\",ge,[o(\"h3\",{class:\"text-base font-medium text-red-800 mb-6\",textContent:C(r.title)},null,8,he),r.content?(l(),u(\"pre\",{key:0,class:\"mt-2 text-sm text-red-700 whitespace-pre-line px-6 py-6 rounded-md border-2 border-dashed border-red-200\",innerHTML:r.content},null,8,fe)):h(\"\",!0)])]),Y(o(\"textarea\",{id:\"exception-info\",value:r.content,class:\"fixed left-0 bottom-0 opacity-0\"},null,8,be),[[ee,t(B)]])])],64)}}});export{ke as _,ne as r};\n"
  },
  {
    "path": "jesse/static/_nuxt/D-2ljcwZ.js",
    "content": "const t=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.background\":\"#07090F\",\"activityBar.foreground\":\"#86A5FF\",\"activityBar.inactiveForeground\":\"#576dafc5\",\"activityBarBadge.background\":\"#86A5FF\",\"activityBarBadge.foreground\":\"#07090F\",\"badge.background\":\"#86A5FF\",\"badge.foreground\":\"#07090F\",\"breadcrumb.activeSelectionForeground\":\"#86A5FF\",\"breadcrumb.focusForeground\":\"#576daf\",\"breadcrumb.foreground\":\"#576dafa6\",\"breadcrumbPicker.background\":\"#07090F\",\"button.background\":\"#86A5FF\",\"button.foreground\":\"#07090F\",\"button.hoverBackground\":\"#A8BEFF\",\"descriptionForeground\":\"#576daf79\",\"diffEditor.diagonalFill\":\"#15182B\",\"diffEditor.insertedTextBackground\":\"#64d3892c\",\"diffEditor.removedTextBackground\":\"#dd50742c\",\"dropdown.background\":\"#15182B\",\"dropdown.foreground\":\"#c7d5ff99\",\"editor.background\":\"#07090F\",\"editor.findMatchBackground\":\"#576daf\",\"editor.findMatchHighlightBackground\":\"#262E47\",\"editor.inactiveSelectionBackground\":\"#262e47be\",\"editor.selectionBackground\":\"#262E47\",\"editor.selectionHighlightBackground\":\"#262E47\",\"editor.wordHighlightBackground\":\"#262E47\",\"editor.wordHighlightStrongBackground\":\"#262E47\",\"editorCodeLens.foreground\":\"#262E47\",\"editorCursor.background\":\"#01030b\",\"editorCursor.foreground\":\"#86A5FF\",\"editorGroup.background\":\"#07090F\",\"editorGroup.border\":\"#15182B\",\"editorGroup.dropBackground\":\"#0C0E19\",\"editorGroup.emptyBackground\":\"#07090F\",\"editorGroupHeader.tabsBackground\":\"#07090F\",\"editorLineNumber.activeForeground\":\"#576dafd8\",\"editorLineNumber.foreground\":\"#262e47bb\",\"editorWidget.background\":\"#15182B\",\"editorWidget.border\":\"#576daf\",\"extensionButton.prominentBackground\":\"#C7D5FF\",\"extensionButton.prominentForeground\":\"#07090F\",\"focusBorder\":\"#262E47\",\"foreground\":\"#576daf\",\"gitDecoration.addedResourceForeground\":\"#64d389fd\",\"gitDecoration.deletedResourceForeground\":\"#dd5074\",\"gitDecoration.ignoredResourceForeground\":\"#576daf90\",\"gitDecoration.modifiedResourceForeground\":\"#c778db\",\"gitDecoration.untrackedResourceForeground\":\"#576daf90\",\"icon.foreground\":\"#576daf\",\"input.background\":\"#15182B\",\"input.foreground\":\"#86A5FF\",\"inputOption.activeForeground\":\"#86A5FF\",\"inputValidation.errorBackground\":\"#dd5073\",\"inputValidation.errorBorder\":\"#dd5073\",\"inputValidation.errorForeground\":\"#07090F\",\"list.activeSelectionBackground\":\"#000000\",\"list.activeSelectionForeground\":\"#86A5FF\",\"list.dropBackground\":\"#000000\",\"list.errorForeground\":\"#dd5074\",\"list.focusBackground\":\"#01030b\",\"list.focusForeground\":\"#86A5FF\",\"list.highlightForeground\":\"#A8BEFF\",\"list.hoverBackground\":\"#000000\",\"list.hoverForeground\":\"#A8BEFF\",\"list.inactiveFocusBackground\":\"#01030b\",\"list.inactiveSelectionBackground\":\"#000000\",\"list.inactiveSelectionForeground\":\"#86A5FF\",\"list.warningForeground\":\"#e6db7f\",\"notificationCenterHeader.background\":\"#15182B\",\"notifications.background\":\"#15182B\",\"panel.border\":\"#15182B\",\"panelTitle.activeBorder\":\"#86A5FF\",\"panelTitle.activeForeground\":\"#C7D5FF\",\"panelTitle.inactiveForeground\":\"#576daf\",\"peekViewTitle.background\":\"#262E47\",\"quickInput.background\":\"#0C0E19\",\"scrollbar.shadow\":\"#01030b\",\"scrollbarSlider.activeBackground\":\"#576daf\",\"scrollbarSlider.background\":\"#262E47\",\"scrollbarSlider.hoverBackground\":\"#576daf\",\"selection.background\":\"#01030b\",\"sideBar.background\":\"#07090F\",\"sideBar.border\":\"#15182B\",\"sideBarSectionHeader.background\":\"#07090F\",\"sideBarSectionHeader.foreground\":\"#86A5FF\",\"statusBar.background\":\"#86A5FF\",\"statusBar.debuggingBackground\":\"#c778db\",\"statusBar.foreground\":\"#07090F\",\"tab.activeBackground\":\"#07090F\",\"tab.activeBorder\":\"#86A5FF\",\"tab.activeForeground\":\"#C7D5FF\",\"tab.border\":\"#07090F\",\"tab.inactiveBackground\":\"#07090F\",\"tab.inactiveForeground\":\"#576dafd8\",\"terminal.ansiBrightRed\":\"#dd5073\",\"terminal.ansiGreen\":\"#63eb90\",\"terminal.ansiRed\":\"#dd5073\",\"terminal.foreground\":\"#A8BEFF\",\"textLink.foreground\":\"#86A5FF\",\"titleBar.activeBackground\":\"#07090F\",\"titleBar.activeForeground\":\"#86A5FF\",\"titleBar.inactiveBackground\":\"#07090F\",\"tree.indentGuidesStroke\":\"#576daf\",\"widget.shadow\":\"#01030b\"},\"displayName\":\"Aurora X\",\"name\":\"aurora-x\",\"tokenColors\":[{\"scope\":[\"comment\",\"punctuation.definition.comment\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#546E7A\"}},{\"scope\":[\"variable\",\"string constant.other.placeholder\"],\"settings\":{\"foreground\":\"#EEFFFF\"}},{\"scope\":[\"constant.other.color\"],\"settings\":{\"foreground\":\"#ffffff\"}},{\"scope\":[\"invalid\",\"invalid.illegal\"],\"settings\":{\"foreground\":\"#FF5370\"}},{\"scope\":[\"keyword\",\"storage.type\",\"storage.modifier\"],\"settings\":{\"foreground\":\"#C792EA\"}},{\"scope\":[\"keyword.control\",\"constant.other.color\",\"punctuation\",\"meta.tag\",\"punctuation.definition.tag\",\"punctuation.separator.inheritance.php\",\"punctuation.definition.tag.html\",\"punctuation.definition.tag.begin.html\",\"punctuation.definition.tag.end.html\",\"punctuation.section.embedded\",\"keyword.other.template\",\"keyword.other.substitution\"],\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":[\"entity.name.tag\",\"meta.tag.sgml\",\"markup.deleted.git_gutter\"],\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":[\"entity.name.function\",\"meta.function-call\",\"variable.function\",\"support.function\",\"keyword.other.special-method\"],\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":[\"meta.block variable.other\"],\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":[\"support.other.variable\",\"string.other.link\"],\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":[\"constant.numeric\",\"constant.language\",\"support.constant\",\"constant.character\",\"constant.escape\",\"variable.parameter\",\"keyword.other.unit\",\"keyword.other\"],\"settings\":{\"foreground\":\"#F78C6C\"}},{\"scope\":[\"string\",\"constant.other.symbol\",\"constant.other.key\",\"entity.other.inherited-class\",\"markup.heading\",\"markup.inserted.git_gutter\",\"meta.group.braces.curly constant.other.object.key.js string.unquoted.label.js\"],\"settings\":{\"foreground\":\"#C3E88D\"}},{\"scope\":[\"entity.name\",\"support.type\",\"support.class\",\"support.orther.namespace.use.php\",\"meta.use.php\",\"support.other.namespace.php\",\"markup.changed.git_gutter\",\"support.type.sys-types\"],\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":[\"support.type\"],\"settings\":{\"foreground\":\"#B2CCD6\"}},{\"scope\":[\"source.css support.type.property-name\",\"source.sass support.type.property-name\",\"source.scss support.type.property-name\",\"source.less support.type.property-name\",\"source.stylus support.type.property-name\",\"source.postcss support.type.property-name\"],\"settings\":{\"foreground\":\"#B2CCD6\"}},{\"scope\":[\"entity.name.module.js\",\"variable.import.parameter.js\",\"variable.other.class.js\"],\"settings\":{\"foreground\":\"#FF5370\"}},{\"scope\":[\"variable.language\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#FF5370\"}},{\"scope\":[\"entity.name.method.js\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#82AAFF\"}},{\"scope\":[\"meta.class-method.js entity.name.function.js\",\"variable.function.constructor\"],\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":[\"entity.other.attribute-name\"],\"settings\":{\"foreground\":\"#C792EA\"}},{\"scope\":[\"text.html.basic entity.other.attribute-name.html\",\"text.html.basic entity.other.attribute-name\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#FFCB6B\"}},{\"scope\":[\"entity.other.attribute-name.class\"],\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":[\"source.sass keyword.control\"],\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":[\"markup.inserted\"],\"settings\":{\"foreground\":\"#C3E88D\"}},{\"scope\":[\"markup.deleted\"],\"settings\":{\"foreground\":\"#FF5370\"}},{\"scope\":[\"markup.changed\"],\"settings\":{\"foreground\":\"#C792EA\"}},{\"scope\":[\"string.regexp\"],\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":[\"constant.character.escape\"],\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":[\"*url*\",\"*link*\",\"*uri*\"],\"settings\":{\"fontStyle\":\"underline\"}},{\"scope\":[\"tag.decorator.js entity.name.tag.js\",\"tag.decorator.js punctuation.definition.tag.js\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#82AAFF\"}},{\"scope\":[\"source.js constant.other.object.key.js string.unquoted.label.js\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#FF5370\"}},{\"scope\":[\"source.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#C792EA\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#F78C6C\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#FF5370\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#C17E70\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#C792EA\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#C3E88D\"}},{\"scope\":[\"text.html.markdown\",\"punctuation.definition.list_item.markdown\"],\"settings\":{\"foreground\":\"#EEFFFF\"}},{\"scope\":[\"text.html.markdown markup.inline.raw.markdown\"],\"settings\":{\"foreground\":\"#C792EA\"}},{\"scope\":[\"text.html.markdown markup.inline.raw.markdown punctuation.definition.raw.markdown\"],\"settings\":{\"foreground\":\"#65737E\"}},{\"scope\":[\"markdown.heading\",\"markup.heading | markup.heading entity.name\",\"markup.heading.markdown punctuation.definition.heading.markdown\"],\"settings\":{\"foreground\":\"#C3E88D\"}},{\"scope\":[\"markup.italic\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#f07178\"}},{\"scope\":[\"markup.bold\",\"markup.bold string\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#f07178\"}},{\"scope\":[\"markup.bold markup.italic\",\"markup.italic markup.bold\",\"markup.quote markup.bold\",\"markup.bold markup.italic string\",\"markup.italic markup.bold string\",\"markup.quote markup.bold string\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#f07178\"}},{\"scope\":[\"markup.underline\"],\"settings\":{\"fontStyle\":\"underline\",\"foreground\":\"#F78C6C\"}},{\"scope\":[\"markup.quote punctuation.definition.blockquote.markdown\"],\"settings\":{\"foreground\":\"#65737E\"}},{\"scope\":[\"markup.quote\"],\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":[\"string.other.link.title.markdown\"],\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":[\"string.other.link.description.title.markdown\"],\"settings\":{\"foreground\":\"#C792EA\"}},{\"scope\":[\"constant.other.reference.link.markdown\"],\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":[\"markup.raw.block\"],\"settings\":{\"foreground\":\"#C792EA\"}},{\"scope\":[\"markup.raw.block.fenced.markdown\"],\"settings\":{\"foreground\":\"#00000050\"}},{\"scope\":[\"punctuation.definition.fenced.markdown\"],\"settings\":{\"foreground\":\"#00000050\"}},{\"scope\":[\"markup.raw.block.fenced.markdown\",\"variable.language.fenced.markdown\",\"punctuation.section.class.end\"],\"settings\":{\"foreground\":\"#EEFFFF\"}},{\"scope\":[\"variable.language.fenced.markdown\"],\"settings\":{\"foreground\":\"#65737E\"}},{\"scope\":[\"meta.separator\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#65737E\"}},{\"scope\":[\"markup.table\"],\"settings\":{\"foreground\":\"#EEFFFF\"}}],\"type\":\"dark\"}'));export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/D0UiDa5C.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"//\",blockComment:[\"(*\",\"*)\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],folding:{markers:{start:new RegExp(\"^\\\\s*//\\\\s*#region\\\\b|^\\\\s*\\\\(\\\\*\\\\s*#region(.*)\\\\*\\\\)\"),end:new RegExp(\"^\\\\s*//\\\\s*#endregion\\\\b|^\\\\s*\\\\(\\\\*\\\\s*#endregion\\\\s*\\\\*\\\\)\")}}},n={defaultToken:\"\",tokenPostfix:\".fs\",keywords:[\"abstract\",\"and\",\"atomic\",\"as\",\"assert\",\"asr\",\"base\",\"begin\",\"break\",\"checked\",\"component\",\"const\",\"constraint\",\"constructor\",\"continue\",\"class\",\"default\",\"delegate\",\"do\",\"done\",\"downcast\",\"downto\",\"elif\",\"else\",\"end\",\"exception\",\"eager\",\"event\",\"external\",\"extern\",\"false\",\"finally\",\"for\",\"fun\",\"function\",\"fixed\",\"functor\",\"global\",\"if\",\"in\",\"include\",\"inherit\",\"inline\",\"interface\",\"internal\",\"land\",\"lor\",\"lsl\",\"lsr\",\"lxor\",\"lazy\",\"let\",\"match\",\"member\",\"mod\",\"module\",\"mutable\",\"namespace\",\"method\",\"mixin\",\"new\",\"not\",\"null\",\"of\",\"open\",\"or\",\"object\",\"override\",\"private\",\"parallel\",\"process\",\"protected\",\"pure\",\"public\",\"rec\",\"return\",\"static\",\"sealed\",\"struct\",\"sig\",\"then\",\"to\",\"true\",\"tailcall\",\"trait\",\"try\",\"type\",\"upcast\",\"use\",\"val\",\"void\",\"virtual\",\"volatile\",\"when\",\"while\",\"with\",\"yield\"],symbols:/[=><!~?:&|+\\-*\\^%;\\.,\\/]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,integersuffix:/[uU]?[yslnLI]?/,floatsuffix:/[fFmM]?/,tokenizer:{root:[[/[a-zA-Z_]\\w*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/\\[<.*>\\]/,\"annotation\"],[/^#(if|else|endif)/,\"keyword\"],[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,\"delimiter\"],[/\\d*\\d+[eE]([\\-+]?\\d+)?(@floatsuffix)/,\"number.float\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?(@floatsuffix)/,\"number.float\"],[/0x[0-9a-fA-F]+LF/,\"number.float\"],[/0x[0-9a-fA-F]+(@integersuffix)/,\"number.hex\"],[/0b[0-1]+(@integersuffix)/,\"number.bin\"],[/\\d+(@integersuffix)/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"\"\"/,\"string\",'@string.\"\"\"'],[/\"/,\"string\",'@string.\"'],[/\\@\"/,{token:\"string.quote\",next:\"@litstring\"}],[/'[^\\\\']'B?/,\"string\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",\"string\"]],[/'/,\"string.invalid\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\(\\*(?!\\))/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^*(]+/,\"comment\"],[/\\*\\)/,\"comment\",\"@pop\"],[/\\*/,\"comment\"],[/\\(\\*\\)/,\"comment\"],[/\\(/,\"comment\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/(\"\"\"|\"B?)/,{cases:{\"$#==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":\"string\"}}]],litstring:[[/[^\"]+/,\"string\"],[/\"\"/,\"string.escape\"],[/\"/,{token:\"string.quote\",next:\"@pop\"}]]}};export{e as conf,n as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/D0r3Knsf.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBorder\":\"#4d9375\",\"activityBar.background\":\"#121212\",\"activityBar.border\":\"#191919\",\"activityBar.foreground\":\"#dbd7caee\",\"activityBar.inactiveForeground\":\"#dedcd550\",\"activityBarBadge.background\":\"#bfbaaa\",\"activityBarBadge.foreground\":\"#121212\",\"badge.background\":\"#dedcd590\",\"badge.foreground\":\"#121212\",\"breadcrumb.activeSelectionForeground\":\"#eeeeee18\",\"breadcrumb.background\":\"#181818\",\"breadcrumb.focusForeground\":\"#dbd7caee\",\"breadcrumb.foreground\":\"#959da5\",\"breadcrumbPicker.background\":\"#121212\",\"button.background\":\"#4d9375\",\"button.foreground\":\"#121212\",\"button.hoverBackground\":\"#4d9375\",\"checkbox.background\":\"#181818\",\"checkbox.border\":\"#2f363d\",\"debugToolBar.background\":\"#121212\",\"descriptionForeground\":\"#dedcd590\",\"diffEditor.insertedTextBackground\":\"#4d937550\",\"diffEditor.removedTextBackground\":\"#ab595950\",\"dropdown.background\":\"#121212\",\"dropdown.border\":\"#191919\",\"dropdown.foreground\":\"#dbd7caee\",\"dropdown.listBackground\":\"#181818\",\"editor.background\":\"#121212\",\"editor.findMatchBackground\":\"#e6cc7722\",\"editor.findMatchHighlightBackground\":\"#e6cc7744\",\"editor.focusedStackFrameHighlightBackground\":\"#b808\",\"editor.foldBackground\":\"#eeeeee10\",\"editor.foreground\":\"#dbd7caee\",\"editor.inactiveSelectionBackground\":\"#eeeeee10\",\"editor.lineHighlightBackground\":\"#181818\",\"editor.selectionBackground\":\"#eeeeee18\",\"editor.selectionHighlightBackground\":\"#eeeeee10\",\"editor.stackFrameHighlightBackground\":\"#a707\",\"editor.wordHighlightBackground\":\"#1c6b4805\",\"editor.wordHighlightStrongBackground\":\"#1c6b4810\",\"editorBracketHighlight.foreground1\":\"#5eaab5\",\"editorBracketHighlight.foreground2\":\"#4d9375\",\"editorBracketHighlight.foreground3\":\"#d4976c\",\"editorBracketHighlight.foreground4\":\"#d9739f\",\"editorBracketHighlight.foreground5\":\"#e6cc77\",\"editorBracketHighlight.foreground6\":\"#6394bf\",\"editorBracketMatch.background\":\"#4d937520\",\"editorError.foreground\":\"#cb7676\",\"editorGroup.border\":\"#191919\",\"editorGroupHeader.tabsBackground\":\"#121212\",\"editorGroupHeader.tabsBorder\":\"#191919\",\"editorGutter.addedBackground\":\"#4d9375\",\"editorGutter.commentRangeForeground\":\"#dedcd550\",\"editorGutter.deletedBackground\":\"#cb7676\",\"editorGutter.foldingControlForeground\":\"#dedcd590\",\"editorGutter.modifiedBackground\":\"#6394bf\",\"editorHint.foreground\":\"#4d9375\",\"editorIndentGuide.activeBackground\":\"#ffffff30\",\"editorIndentGuide.background\":\"#ffffff15\",\"editorInfo.foreground\":\"#6394bf\",\"editorInlayHint.background\":\"#181818\",\"editorInlayHint.foreground\":\"#666666\",\"editorLineNumber.activeForeground\":\"#bfbaaa\",\"editorLineNumber.foreground\":\"#dedcd550\",\"editorOverviewRuler.border\":\"#111\",\"editorStickyScroll.background\":\"#181818\",\"editorStickyScrollHover.background\":\"#181818\",\"editorWarning.foreground\":\"#d4976c\",\"editorWhitespace.foreground\":\"#ffffff15\",\"editorWidget.background\":\"#121212\",\"errorForeground\":\"#cb7676\",\"focusBorder\":\"#00000000\",\"foreground\":\"#dbd7caee\",\"gitDecoration.addedResourceForeground\":\"#4d9375\",\"gitDecoration.conflictingResourceForeground\":\"#d4976c\",\"gitDecoration.deletedResourceForeground\":\"#cb7676\",\"gitDecoration.ignoredResourceForeground\":\"#dedcd550\",\"gitDecoration.modifiedResourceForeground\":\"#6394bf\",\"gitDecoration.submoduleResourceForeground\":\"#dedcd590\",\"gitDecoration.untrackedResourceForeground\":\"#5eaab5\",\"input.background\":\"#181818\",\"input.border\":\"#191919\",\"input.foreground\":\"#dbd7caee\",\"input.placeholderForeground\":\"#dedcd590\",\"inputOption.activeBackground\":\"#dedcd550\",\"list.activeSelectionBackground\":\"#181818\",\"list.activeSelectionForeground\":\"#dbd7caee\",\"list.focusBackground\":\"#181818\",\"list.highlightForeground\":\"#4d9375\",\"list.hoverBackground\":\"#181818\",\"list.hoverForeground\":\"#dbd7caee\",\"list.inactiveFocusBackground\":\"#121212\",\"list.inactiveSelectionBackground\":\"#181818\",\"list.inactiveSelectionForeground\":\"#dbd7caee\",\"menu.separatorBackground\":\"#191919\",\"notificationCenterHeader.background\":\"#121212\",\"notificationCenterHeader.foreground\":\"#959da5\",\"notifications.background\":\"#121212\",\"notifications.border\":\"#191919\",\"notifications.foreground\":\"#dbd7caee\",\"notificationsErrorIcon.foreground\":\"#cb7676\",\"notificationsInfoIcon.foreground\":\"#6394bf\",\"notificationsWarningIcon.foreground\":\"#d4976c\",\"panel.background\":\"#121212\",\"panel.border\":\"#191919\",\"panelInput.border\":\"#2f363d\",\"panelTitle.activeBorder\":\"#4d9375\",\"panelTitle.activeForeground\":\"#dbd7caee\",\"panelTitle.inactiveForeground\":\"#959da5\",\"peekViewEditor.background\":\"#121212\",\"peekViewEditor.matchHighlightBackground\":\"#ffd33d33\",\"peekViewResult.background\":\"#121212\",\"peekViewResult.matchHighlightBackground\":\"#ffd33d33\",\"pickerGroup.border\":\"#191919\",\"pickerGroup.foreground\":\"#dbd7caee\",\"problemsErrorIcon.foreground\":\"#cb7676\",\"problemsInfoIcon.foreground\":\"#6394bf\",\"problemsWarningIcon.foreground\":\"#d4976c\",\"progressBar.background\":\"#4d9375\",\"quickInput.background\":\"#121212\",\"quickInput.foreground\":\"#dbd7caee\",\"quickInputList.focusBackground\":\"#181818\",\"scrollbar.shadow\":\"#0000\",\"scrollbarSlider.activeBackground\":\"#dedcd550\",\"scrollbarSlider.background\":\"#dedcd510\",\"scrollbarSlider.hoverBackground\":\"#dedcd550\",\"settings.headerForeground\":\"#dbd7caee\",\"settings.modifiedItemIndicator\":\"#4d9375\",\"sideBar.background\":\"#121212\",\"sideBar.border\":\"#191919\",\"sideBar.foreground\":\"#bfbaaa\",\"sideBarSectionHeader.background\":\"#121212\",\"sideBarSectionHeader.border\":\"#191919\",\"sideBarSectionHeader.foreground\":\"#dbd7caee\",\"sideBarTitle.foreground\":\"#dbd7caee\",\"statusBar.background\":\"#121212\",\"statusBar.border\":\"#191919\",\"statusBar.debuggingBackground\":\"#181818\",\"statusBar.debuggingForeground\":\"#bfbaaa\",\"statusBar.foreground\":\"#bfbaaa\",\"statusBar.noFolderBackground\":\"#121212\",\"statusBarItem.prominentBackground\":\"#181818\",\"tab.activeBackground\":\"#121212\",\"tab.activeBorder\":\"#191919\",\"tab.activeBorderTop\":\"#dedcd590\",\"tab.activeForeground\":\"#dbd7caee\",\"tab.border\":\"#191919\",\"tab.hoverBackground\":\"#181818\",\"tab.inactiveBackground\":\"#121212\",\"tab.inactiveForeground\":\"#959da5\",\"tab.unfocusedActiveBorder\":\"#191919\",\"tab.unfocusedActiveBorderTop\":\"#191919\",\"tab.unfocusedHoverBackground\":\"#121212\",\"terminal.ansiBlack\":\"#393a34\",\"terminal.ansiBlue\":\"#6394bf\",\"terminal.ansiBrightBlack\":\"#777777\",\"terminal.ansiBrightBlue\":\"#6394bf\",\"terminal.ansiBrightCyan\":\"#5eaab5\",\"terminal.ansiBrightGreen\":\"#4d9375\",\"terminal.ansiBrightMagenta\":\"#d9739f\",\"terminal.ansiBrightRed\":\"#cb7676\",\"terminal.ansiBrightWhite\":\"#ffffff\",\"terminal.ansiBrightYellow\":\"#e6cc77\",\"terminal.ansiCyan\":\"#5eaab5\",\"terminal.ansiGreen\":\"#4d9375\",\"terminal.ansiMagenta\":\"#d9739f\",\"terminal.ansiRed\":\"#cb7676\",\"terminal.ansiWhite\":\"#dbd7ca\",\"terminal.ansiYellow\":\"#e6cc77\",\"terminal.foreground\":\"#dbd7caee\",\"terminal.selectionBackground\":\"#eeeeee18\",\"textBlockQuote.background\":\"#121212\",\"textBlockQuote.border\":\"#191919\",\"textCodeBlock.background\":\"#121212\",\"textLink.activeForeground\":\"#4d9375\",\"textLink.foreground\":\"#4d9375\",\"textPreformat.foreground\":\"#d1d5da\",\"textSeparator.foreground\":\"#586069\",\"titleBar.activeBackground\":\"#121212\",\"titleBar.activeForeground\":\"#bfbaaa\",\"titleBar.border\":\"#181818\",\"titleBar.inactiveBackground\":\"#121212\",\"titleBar.inactiveForeground\":\"#959da5\",\"tree.indentGuidesStroke\":\"#2f363d\",\"welcomePage.buttonBackground\":\"#2f363d\",\"welcomePage.buttonHoverBackground\":\"#444d56\"},\"displayName\":\"Vitesse Dark\",\"name\":\"vitesse-dark\",\"semanticHighlighting\":true,\"semanticTokenColors\":{\"class\":\"#6872ab\",\"interface\":\"#5d99a9\",\"namespace\":\"#db889a\",\"property\":\"#b8a965\",\"type\":\"#5d99a9\"},\"tokenColors\":[{\"scope\":[\"comment\",\"punctuation.definition.comment\",\"string.comment\"],\"settings\":{\"foreground\":\"#758575dd\"}},{\"scope\":[\"delimiter.bracket\",\"delimiter\",\"invalid.illegal.character-not-allowed-here.html\",\"keyword.operator.rest\",\"keyword.operator.spread\",\"keyword.operator.type.annotation\",\"keyword.operator.relational\",\"keyword.operator.assignment\",\"keyword.operator.type\",\"meta.brace\",\"meta.tag.block.any.html\",\"meta.tag.inline.any.html\",\"meta.tag.structure.input.void.html\",\"meta.type.annotation\",\"meta.embedded.block.github-actions-expression\",\"storage.type.function.arrow\",\"meta.objectliteral.ts\",\"punctuation\",\"punctuation.definition.string.begin.html.vue\",\"punctuation.definition.string.end.html.vue\"],\"settings\":{\"foreground\":\"#666666\"}},{\"scope\":[\"constant\",\"entity.name.constant\",\"variable.language\",\"meta.definition.variable\"],\"settings\":{\"foreground\":\"#c99076\"}},{\"scope\":[\"entity\",\"entity.name\"],\"settings\":{\"foreground\":\"#80a665\"}},{\"scope\":\"variable.parameter.function\",\"settings\":{\"foreground\":\"#dbd7caee\"}},{\"scope\":[\"entity.name.tag\",\"tag.html\"],\"settings\":{\"foreground\":\"#4d9375\"}},{\"scope\":\"entity.name.function\",\"settings\":{\"foreground\":\"#80a665\"}},{\"scope\":[\"keyword\",\"storage.type.class.jsdoc\",\"punctuation.definition.template-expression\"],\"settings\":{\"foreground\":\"#4d9375\"}},{\"scope\":[\"storage\",\"storage.type\",\"support.type.builtin\",\"constant.language.undefined\",\"constant.language.null\",\"constant.language.import-export-all.ts\"],\"settings\":{\"foreground\":\"#cb7676\"}},{\"scope\":[\"text.html.derivative\",\"storage.modifier.package\",\"storage.modifier.import\",\"storage.type.java\"],\"settings\":{\"foreground\":\"#dbd7caee\"}},{\"scope\":[\"string\",\"string punctuation.section.embedded source\",\"attribute.value\"],\"settings\":{\"foreground\":\"#c98a7d\"}},{\"scope\":[\"punctuation.definition.string\"],\"settings\":{\"foreground\":\"#c98a7d77\"}},{\"scope\":[\"punctuation.support.type.property-name\"],\"settings\":{\"foreground\":\"#b8a96577\"}},{\"scope\":\"support\",\"settings\":{\"foreground\":\"#b8a965\"}},{\"scope\":[\"property\",\"meta.property-name\",\"meta.object-literal.key\",\"entity.name.tag.yaml\",\"attribute.name\"],\"settings\":{\"foreground\":\"#b8a965\"}},{\"scope\":[\"entity.other.attribute-name\",\"invalid.deprecated.entity.other.attribute-name.html\"],\"settings\":{\"foreground\":\"#bd976a\"}},{\"scope\":[\"variable\",\"identifier\"],\"settings\":{\"foreground\":\"#bd976a\"}},{\"scope\":[\"support.type.primitive\",\"entity.name.type\"],\"settings\":{\"foreground\":\"#5DA994\"}},{\"scope\":\"namespace\",\"settings\":{\"foreground\":\"#db889a\"}},{\"scope\":[\"keyword.operator\",\"keyword.operator.assignment.compound\",\"meta.var.expr.ts\"],\"settings\":{\"foreground\":\"#cb7676\"}},{\"scope\":\"invalid.broken\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#fdaeb7\"}},{\"scope\":\"invalid.deprecated\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#fdaeb7\"}},{\"scope\":\"invalid.illegal\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#fdaeb7\"}},{\"scope\":\"invalid.unimplemented\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#fdaeb7\"}},{\"scope\":\"carriage-return\",\"settings\":{\"background\":\"#f97583\",\"content\":\"^M\",\"fontStyle\":\"italic underline\",\"foreground\":\"#24292e\"}},{\"scope\":\"message.error\",\"settings\":{\"foreground\":\"#fdaeb7\"}},{\"scope\":\"string variable\",\"settings\":{\"foreground\":\"#c98a7d\"}},{\"scope\":[\"source.regexp\",\"string.regexp\"],\"settings\":{\"foreground\":\"#c4704f\"}},{\"scope\":[\"string.regexp.character-class\",\"string.regexp constant.character.escape\",\"string.regexp source.ruby.embedded\",\"string.regexp string.regexp.arbitrary-repitition\"],\"settings\":{\"foreground\":\"#c98a7d\"}},{\"scope\":\"string.regexp constant.character.escape\",\"settings\":{\"foreground\":\"#e6cc77\"}},{\"scope\":[\"support.constant\"],\"settings\":{\"foreground\":\"#c99076\"}},{\"scope\":[\"keyword.operator.quantifier.regexp\",\"constant.numeric\",\"number\"],\"settings\":{\"foreground\":\"#4C9A91\"}},{\"scope\":[\"keyword.other.unit\"],\"settings\":{\"foreground\":\"#cb7676\"}},{\"scope\":[\"constant.language.boolean\",\"constant.language\"],\"settings\":{\"foreground\":\"#4d9375\"}},{\"scope\":\"meta.module-reference\",\"settings\":{\"foreground\":\"#4d9375\"}},{\"scope\":\"punctuation.definition.list.begin.markdown\",\"settings\":{\"foreground\":\"#d4976c\"}},{\"scope\":[\"markup.heading\",\"markup.heading entity.name\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#4d9375\"}},{\"scope\":\"markup.quote\",\"settings\":{\"foreground\":\"#5d99a9\"}},{\"scope\":\"markup.italic\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#dbd7caee\"}},{\"scope\":\"markup.bold\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#dbd7caee\"}},{\"scope\":\"markup.raw\",\"settings\":{\"foreground\":\"#4d9375\"}},{\"scope\":[\"markup.deleted\",\"meta.diff.header.from-file\",\"punctuation.definition.deleted\"],\"settings\":{\"background\":\"#86181d\",\"foreground\":\"#fdaeb7\"}},{\"scope\":[\"markup.inserted\",\"meta.diff.header.to-file\",\"punctuation.definition.inserted\"],\"settings\":{\"background\":\"#144620\",\"foreground\":\"#85e89d\"}},{\"scope\":[\"markup.changed\",\"punctuation.definition.changed\"],\"settings\":{\"background\":\"#c24e00\",\"foreground\":\"#ffab70\"}},{\"scope\":[\"markup.ignored\",\"markup.untracked\"],\"settings\":{\"background\":\"#79b8ff\",\"foreground\":\"#2f363d\"}},{\"scope\":\"meta.diff.range\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#b392f0\"}},{\"scope\":\"meta.diff.header\",\"settings\":{\"foreground\":\"#79b8ff\"}},{\"scope\":\"meta.separator\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#79b8ff\"}},{\"scope\":\"meta.output\",\"settings\":{\"foreground\":\"#79b8ff\"}},{\"scope\":[\"brackethighlighter.tag\",\"brackethighlighter.curly\",\"brackethighlighter.round\",\"brackethighlighter.square\",\"brackethighlighter.angle\",\"brackethighlighter.quote\"],\"settings\":{\"foreground\":\"#d1d5da\"}},{\"scope\":\"brackethighlighter.unmatched\",\"settings\":{\"foreground\":\"#fdaeb7\"}},{\"scope\":[\"constant.other.reference.link\",\"string.other.link\",\"punctuation.definition.string.begin.markdown\",\"punctuation.definition.string.end.markdown\"],\"settings\":{\"foreground\":\"#c98a7d\"}},{\"scope\":[\"markup.underline.link.markdown\",\"markup.underline.link.image.markdown\"],\"settings\":{\"fontStyle\":\"underline\",\"foreground\":\"#dedcd590\"}},{\"scope\":[\"type.identifier\",\"constant.other.character-class.regexp\"],\"settings\":{\"foreground\":\"#6872ab\"}},{\"scope\":[\"entity.other.attribute-name.html.vue\"],\"settings\":{\"foreground\":\"#80a665\"}},{\"scope\":[\"invalid.illegal.unrecognized-tag.html\"],\"settings\":{\"fontStyle\":\"normal\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/D2PfwrvU.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},o={defaultToken:\"\",tokenPostfix:\".dockerfile\",variable:/\\${?[\\w]+}?/,tokenizer:{root:[{include:\"@whitespace\"},{include:\"@comment\"},[/(ONBUILD)(\\s+)/,[\"keyword\",\"\"]],[/(ENV)(\\s+)([\\w]+)/,[\"keyword\",\"\",{token:\"variable\",next:\"@arguments\"}]],[/(FROM|MAINTAINER|RUN|EXPOSE|ENV|ADD|ARG|VOLUME|LABEL|USER|WORKDIR|COPY|CMD|STOPSIGNAL|SHELL|HEALTHCHECK|ENTRYPOINT)/,{token:\"keyword\",next:\"@arguments\"}]],arguments:[{include:\"@whitespace\"},{include:\"@strings\"},[/(@variable)/,{cases:{\"@eos\":{token:\"variable\",next:\"@popall\"},\"@default\":\"variable\"}}],[/\\\\/,{cases:{\"@eos\":\"\",\"@default\":\"\"}}],[/./,{cases:{\"@eos\":{token:\"\",next:\"@popall\"},\"@default\":\"\"}}]],whitespace:[[/\\s+/,{cases:{\"@eos\":{token:\"\",next:\"@popall\"},\"@default\":\"\"}}]],comment:[[/(^#.*$)/,\"comment\",\"@popall\"]],strings:[[/\\\\'$/,\"\",\"@popall\"],[/\\\\'/,\"\"],[/'$/,\"string\",\"@popall\"],[/'/,\"string\",\"@stringBody\"],[/\"$/,\"string\",\"@popall\"],[/\"/,\"string\",\"@dblStringBody\"]],stringBody:[[/[^\\\\\\$']/,{cases:{\"@eos\":{token:\"string\",next:\"@popall\"},\"@default\":\"string\"}}],[/\\\\./,\"string.escape\"],[/'$/,\"string\",\"@popall\"],[/'/,\"string\",\"@pop\"],[/(@variable)/,\"variable\"],[/\\\\$/,\"string\"],[/$/,\"string\",\"@popall\"]],dblStringBody:[[/[^\\\\\\$\"]/,{cases:{\"@eos\":{token:\"string\",next:\"@popall\"},\"@default\":\"string\"}}],[/\\\\./,\"string.escape\"],[/\"$/,\"string\",\"@popall\"],[/\"/,\"string\",\"@pop\"],[/(@variable)/,\"variable\"],[/\\\\$/,\"string\"],[/$/,\"string\",\"@popall\"]]}};export{e as conf,o as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/D2Z7JJdl.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"--\",blockComment:[\"--[[\",\"]]\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},o={defaultToken:\"\",tokenPostfix:\".lua\",keywords:[\"and\",\"break\",\"do\",\"else\",\"elseif\",\"end\",\"false\",\"for\",\"function\",\"goto\",\"if\",\"in\",\"local\",\"nil\",\"not\",\"or\",\"repeat\",\"return\",\"then\",\"true\",\"until\",\"while\"],brackets:[{token:\"delimiter.bracket\",open:\"{\",close:\"}\"},{token:\"delimiter.array\",open:\"[\",close:\"]\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"}],operators:[\"+\",\"-\",\"*\",\"/\",\"%\",\"^\",\"#\",\"==\",\"~=\",\"<=\",\">=\",\"<\",\">\",\"=\",\";\",\":\",\",\",\".\",\"..\",\"...\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/[a-zA-Z_]\\w*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/(,)(\\s*)([a-zA-Z_]\\w*)(\\s*)(:)(?!:)/,[\"delimiter\",\"\",\"key\",\"\",\"delimiter\"]],[/({)(\\s*)([a-zA-Z_]\\w*)(\\s*)(:)(?!:)/,[\"@brackets\",\"\",\"key\",\"\",\"delimiter\"]],[/[{}()\\[\\]]/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,\"number.hex\"],[/\\d+?/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/'([^'\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",'@string.\"'],[/'/,\"string\",\"@string.'\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/--\\[([=]*)\\[/,\"comment\",\"@comment.$1\"],[/--.*$/,\"comment\"]],comment:[[/[^\\]]+/,\"comment\"],[/\\]([=]*)\\]/,{cases:{\"$1==$S2\":{token:\"comment\",next:\"@pop\"},\"@default\":\"comment\"}}],[/./,\"comment\"]],string:[[/[^\\\\\"']+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/[\"']/,{cases:{\"$#==$S2\":{token:\"string\",next:\"@pop\"},\"@default\":\"string\"}}]]}};export{e as conf,o as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/D35nYK_C.js",
    "content": "import{Q as t,C as s,g as o,R as a,j as n}from\"./CU_MfyYc.js\";const d={},c={class:\"text-center rounded border-2 border-dashed border-gray-300 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 py-4 text-sm\"};function _(r,e){return o(),s(\"div\",c,[a(r.$slots,\"default\",{},()=>[e[0]||(e[0]=n(\"span\",{class:\"text-gray-400\"},\" Empty \",-1))])])}const l=t(d,[[\"render\",_]]);export{l as _};\n"
  },
  {
    "path": "jesse/static/_nuxt/D4Tzg5kh.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"nushell\",\"name\":\"nushell\",\"patterns\":[{\"include\":\"#define-variable\"},{\"include\":\"#define-alias\"},{\"include\":\"#function\"},{\"include\":\"#extern\"},{\"include\":\"#module\"},{\"include\":\"#use-module\"},{\"include\":\"#expression\"},{\"include\":\"#comment\"}],\"repository\":{\"binary\":{\"begin\":\"\\\\\\\\b(0x)(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"constant.numeric.nushell\"},\"2\":{\"name\":\"meta.brace.square.begin.nushell\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.square.begin.nushell\"}},\"name\":\"constant.binary.nushell\",\"patterns\":[{\"match\":\"[0-9a-fA-F]{2}\",\"name\":\"constant.numeric.nushell\"}]},\"braced-expression\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.nushell\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.nushell\"}},\"name\":\"meta.expression.braced.nushell\",\"patterns\":[{\"begin\":\"(?<=\\\\\\\\{)\\\\\\\\s*\\\\\\\\|\",\"end\":\"\\\\\\\\|\",\"name\":\"meta.closure.parameters.nushell\",\"patterns\":[{\"include\":\"#function-parameter\"}]},{\"captures\":{\"1\":{\"name\":\"variable.other.nushell\"},\"2\":{\"name\":\"keyword.control.nushell\"}},\"match\":\"(\\\\\\\\w+)\\\\\\\\s*(:)\\\\\\\\s*\"},{\"captures\":{\"1\":{\"name\":\"variable.other.nushell\"},\"2\":{\"name\":\"variable.other.nushell\",\"patterns\":[{\"include\":\"#paren-expression\"}]},\"3\":{\"name\":\"keyword.control.nushell\"}},\"match\":\"(\\\\\\\\$\\\\\"((?:[^\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*)\\\\\")\\\\\\\\s*(:)\\\\\\\\s*\",\"name\":\"meta.record-entry.nushell\"},{\"captures\":{\"1\":{\"name\":\"variable.other.nushell\"},\"2\":{\"name\":\"keyword.control.nushell\"}},\"match\":\"(\\\\\"(?:[^\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\")\\\\\\\\s*(:)\\\\\\\\s*\",\"name\":\"meta.record-entry.nushell\"},{\"captures\":{\"1\":{\"name\":\"variable.other.nushell\"},\"2\":{\"name\":\"variable.other.nushell\",\"patterns\":[{\"include\":\"#paren-expression\"}]},\"3\":{\"name\":\"keyword.control.nushell\"}},\"match\":\"(\\\\\\\\$'([^']*)')\\\\\\\\s*(:)\\\\\\\\s*\",\"name\":\"meta.record-entry.nushell\"},{\"captures\":{\"1\":{\"name\":\"variable.other.nushell\"},\"2\":{\"name\":\"keyword.control.nushell\"}},\"match\":\"('[^']*')\\\\\\\\s*(:)\\\\\\\\s*\",\"name\":\"meta.record-entry.nushell\"},{\"include\":\"#spread\"},{\"include\":\"source.nushell\"}]},\"command\":{\"begin\":\"(?<!\\\\\\\\w)(?:(\\\\\\\\^)|(?![0-9]|\\\\\\\\$))([\\\\\\\\w.!]+(?:(?: (?!-)[\\\\\\\\w\\\\\\\\-.!]+(?:(?= |\\\\\\\\))|$)|[\\\\\\\\w\\\\\\\\-.!]+))*|(?<=\\\\\\\\^)\\\\\\\\$?(?:\\\\\"[^\\\\\"]+\\\\\"|'[^']+'))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.nushell\"},\"2\":{\"patterns\":[{\"include\":\"#control-keywords\"},{\"captures\":{\"0\":{\"name\":\"keyword.other.builtin.nushell\"}},\"match\":\"(?:ansi|char) \\\\\\\\w+\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.builtin.nushell\"},\"2\":{\"patterns\":[{\"include\":\"#value\"}]}},\"comment\":\"Regex generated with list-to-tree (https://github.com/glcraft/list-to-tree)\",\"match\":\"(a(?:l(?:ias|l)|n(?:si(?: (?:gradient|link|strip))?|y)|ppend|st)|b(?:g|its(?: (?:and|not|or|ro(?:l|r)|sh(?:l|r)|xor))?|reak|ytes(?: (?:a(?:dd|t)|build|collect|ends-with|index-of|length|re(?:move|place|verse)|starts-with))?)|c(?:al|d|h(?:ar|unks)|lear|o(?:l(?:lect|umns)|m(?:mandline(?: (?:edit|get-cursor|set-cursor))?|p(?:act|lete))|n(?:fig(?: (?:env|nu|reset))?|st|tinue))|p)|d(?:ate(?: (?:format|humanize|list-timezone|now|to-(?:record|t(?:able|imezone))))?|e(?:bug(?: (?:info|profile))?|code(?: (?:base(?:32(?:hex)?|64)|hex|new-base64))?|f(?:ault)?|scribe|tect columns)|o|rop(?: (?:column|nth))?|t(?: (?:add|diff|format|now|part|to|utcnow))?|u)|e(?:ach(?: while)?|cho|moji|n(?:code(?: (?:base(?:32(?:hex)?|64)|hex|new-base64))?|umerate)|rror make|very|x(?:ec|it|p(?:l(?:ain|ore)|ort(?: (?:alias|const|def|extern|module|use)|-env)?)|tern))|f(?:i(?:l(?:e|l|ter)|nd|rst)|latten|mt|or(?:mat(?: (?:d(?:ate|uration)|filesize|pattern))?)?|rom(?: (?:csv|eml|i(?:cs|ni)|json|msgpack(?:z)?|nuon|ods|p(?:arquet|list)|ssv|t(?:oml|sv)|url|vcf|x(?:lsx|ml)|y(?:aml|ml)))?)|g(?:e(?:nerate|t)|lob|r(?:id|oup(?:-by)?)|stat)|h(?:ash(?: (?:md5|sha256))?|e(?:aders|lp(?: (?:aliases|commands|e(?:scapes|xterns)|modules|operators))?)|i(?:de(?:-env)?|sto(?:gram|ry(?: session)?))|ttp(?: (?:delete|get|head|options|p(?:atch|ost|ut)))?)|i(?:f|gnore|n(?:c|put(?: list(?:en)?)?|s(?:ert|pect)|t(?:erleave|o(?: (?:b(?:i(?:nary|ts)|ool)|cell-path|d(?:atetime|uration)|f(?:ilesize|loat)|glob|int|record|s(?:qlite|tring)|value))?))|s-(?:admin|empty|not-empty|terminal)|tems)|j(?:oin|son path|walk)|k(?:eybindings(?: (?:default|list(?:en)?))?|ill)|l(?:ast|e(?:ngth|t(?:-env)?)|ines|o(?:ad-env|op)|s)|m(?:at(?:ch|h(?: (?:a(?:bs|rc(?:cos(?:h)?|sin(?:h)?|tan(?:h)?)|vg)|c(?:eil|os(?:h)?)|exp|floor|l(?:n|og)|m(?:ax|edian|in|ode)|product|round|s(?:in(?:h)?|qrt|tddev|um)|tan(?:h)?|variance))?)|d|e(?:rge|tadata(?: (?:access|set))?)|k(?:dir|temp)|o(?:dule|ve)|ut|v)|nu-(?:check|highlight)|o(?:pen|verlay(?: (?:hide|list|new|use))?)|p(?:a(?:nic|r(?:-each|se)|th(?: (?:basename|dirname|ex(?:ists|pand)|join|parse|relative-to|split|type))?)|lugin(?: (?:add|list|rm|stop|use))?|net|o(?:lars(?: (?:a(?:gg(?:-groups)?|ll-(?:false|true)|ppend|rg-(?:m(?:ax|in)|sort|true|unique|where)|s(?:-date(?:time)?)?)|c(?:a(?:che|st)|o(?:l(?:lect|umns)?|n(?:cat(?:-str)?|tains)|unt(?:-null)?)|umulative)|d(?:atepart|ecimal|rop(?:-(?:duplicates|nulls))?|ummies)|exp(?:lode|r-not)|f(?:etch|i(?:l(?:l-n(?:an|ull)|ter(?:-with)?)|rst)|latten)|g(?:et(?:-(?:day|hour|m(?:inute|onth)|nanosecond|ordinal|second|week(?:day)?|year))?|roup-by)|i(?:mplode|nt(?:eger|o-(?:df|lazy|nu))|s-(?:duplicated|in|n(?:ot-null|ull)|unique))|join|l(?:ast|it|owercase)|m(?:ax|e(?:an|dian)|in)|n(?:-unique|ot)|o(?:pen|therwise)|p(?:ivot|rofile)|qu(?:antile|ery)|r(?:e(?:name|place(?:-all)?|verse)|olling)|s(?:a(?:mple|ve)|chema|e(?:lect|t(?:-with-idx)?)|h(?:ape|ift)|lice|ort-by|t(?:d|ore-(?:get|ls|rm)|r(?:-(?:join|lengths|slice)|ftime))|um(?:mary)?)|take|u(?:n(?:ique|pivot)|ppercase)|va(?:lue-counts|r)|w(?:hen|ith-column)))?|rt)|r(?:epend|int)|s)|query(?: (?:db|git|json|web(?:page-info)?|xml))?|r(?:an(?:dom(?: (?:b(?:inary|ool)|chars|dice|float|int|uuid))?|ge)|e(?:duce|g(?:ex|istry query)|ject|name|turn|verse)|m|o(?:ll(?: (?:down|left|right|up))?|tate)|un-external)|s(?:ave|c(?:hema|ope(?: (?:aliases|commands|e(?:ngine-stats|xterns)|modules|variables))?)|e(?:lect|q(?: (?:char|date))?)|huffle|kip(?: (?:until|while))?|leep|o(?:rt(?:-by)?|urce(?:-env)?)|plit(?: (?:c(?:ell-path|hars|olumn)|list|row|words)|-by)?|t(?:art|or(?: (?:create|delete|export|i(?:mport|nsert)|open|reset|update))?|r(?: (?:c(?:a(?:mel-case|pitalize)|ontains)|d(?:istance|owncase)|e(?:nds-with|xpand)|index-of|join|kebab-case|length|pascal-case|re(?:place|verse)|s(?:creaming-snake-case|imilarity|nake-case|ta(?:rts-with|ts)|ubstring)|t(?:itle-case|rim)|upcase)|ess_internals)?)|ys(?: (?:cpu|disks|host|mem|net|temp|users))?)|t(?:a(?:ble|ke(?: (?:until|while))?)|e(?:e|rm size)|imeit|o(?: (?:csv|html|json|m(?:d|sgpack(?:z)?)|nuon|p(?:arquet|list)|t(?:ext|oml|sv)|xml|yaml)|uch)?|r(?:anspose|y)|utor)|u(?:limit|n(?:ame|iq(?:-by)?)|p(?:date(?: cells)?|sert)|rl(?: (?:build-query|decode|encode|join|parse))?|se)|v(?:alues|ersion|iew(?: (?:files|ir|s(?:ource|pan)))?)|w(?:atch|h(?:ere|i(?:ch|le)|oami)|i(?:ndow|th-env)|rap)|zip)(?![\\\\\\\\w-])( (.*))?\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#paren-expression\"}]}},\"match\":\"(?<=\\\\\\\\^)(?:\\\\\\\\$(\\\\\"[^\\\\\"]+\\\\\"|'[^']+')|\\\\\"[^\\\\\"]+\\\\\"|'[^']+')\",\"name\":\"entity.name.type.external.nushell\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.external.nushell\"},\"2\":{\"patterns\":[{\"include\":\"#value\"}]}},\"match\":\"([\\\\\\\\w.]+(?:-[\\\\\\\\w.!]+)*)(?: (.*))?\"},{\"include\":\"#value\"}]}},\"end\":\"(?=\\\\\\\\||\\\\\\\\)|\\\\\\\\}|;)|$\",\"name\":\"meta.command.nushell\",\"patterns\":[{\"include\":\"#parameters\"},{\"include\":\"#spread\"},{\"include\":\"#value\"}]},\"comment\":{\"match\":\"(#.*)$\",\"name\":\"comment.nushell\"},\"constant-keywords\":{\"match\":\"\\\\\\\\b(?:true|false|null)\\\\\\\\b\",\"name\":\"constant.language.nushell\"},\"constant-value\":{\"patterns\":[{\"include\":\"#constant-keywords\"},{\"include\":\"#datetime\"},{\"include\":\"#numbers\"},{\"include\":\"#numbers-hexa\"},{\"include\":\"#binary\"}]},\"control-keywords\":{\"comment\":\"Regex generated with list-to-tree (https://github.com/glcraft/list-to-tree)\",\"match\":\"(?<![0-9a-zA-Z_\\\\\\\\-.\\\\\\\\/:\\\\\\\\\\\\\\\\])(?:break|continue|else(?: if)?|for|if|loop|mut|return|try|while)(?![0-9a-zA-Z_\\\\\\\\-.\\\\\\\\/:\\\\\\\\\\\\\\\\])\",\"name\":\"keyword.control.nushell\"},\"datetime\":{\"match\":\"\\\\\\\\b\\\\\\\\d{4}-\\\\\\\\d{2}-\\\\\\\\d{2}(?:T\\\\\\\\d{2}:\\\\\\\\d{2}:\\\\\\\\d{2}(?:\\\\\\\\.\\\\\\\\d+)?(?:\\\\\\\\+\\\\\\\\d{2}:?\\\\\\\\d{2}|Z)?)?\\\\\\\\b\",\"name\":\"constant.numeric.nushell\"},\"define-alias\":{\"captures\":{\"1\":{\"name\":\"entity.name.function.nushell\"},\"2\":{\"name\":\"entity.name.type.nushell\"},\"3\":{\"patterns\":[{\"include\":\"#operators\"}]}},\"match\":\"((?:export )?alias)\\\\\\\\s+([\\\\\\\\w\\\\\\\\-!]+)\\\\\\\\s*(=)\"},\"define-variable\":{\"captures\":{\"1\":{\"name\":\"keyword.other.nushell\"},\"2\":{\"name\":\"variable.other.nushell\"},\"3\":{\"patterns\":[{\"include\":\"#operators\"}]}},\"match\":\"(let|mut|(?:export\\\\\\\\s+)?const)\\\\\\\\s+(\\\\\\\\w+)\\\\\\\\s+(=)\"},\"expression\":{\"patterns\":[{\"include\":\"#pre-command\"},{\"include\":\"#for-loop\"},{\"include\":\"#operators\"},{\"match\":\"\\\\\\\\|\",\"name\":\"keyword.control.nushell\"},{\"include\":\"#control-keywords\"},{\"include\":\"#constant-value\"},{\"include\":\"#command\"},{\"include\":\"#value\"}]},\"extern\":{\"begin\":\"((?:export\\\\\\\\s+)?extern)\\\\\\\\s+([\\\\\\\\w\\\\\\\\-]+|\\\\\"[\\\\\\\\w\\\\\\\\- ]+\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.nushell\"},\"2\":{\"name\":\"entity.name.type.nushell\"}},\"end\":\"(?<=\\\\\\\\])\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.function.end.nushell\"}},\"patterns\":[{\"include\":\"#function-parameters\"}]},\"for-loop\":{\"begin\":\"(for)\\\\\\\\s+(\\\\\\\\$?\\\\\\\\w+)\\\\\\\\s+(in)\\\\\\\\s+(.+)\\\\\\\\s*(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.nushell\"},\"2\":{\"name\":\"variable.other.nushell\"},\"3\":{\"name\":\"keyword.other.nushell\"},\"4\":{\"patterns\":[{\"include\":\"#value\"}]},\"5\":{\"name\":\"punctuation.section.block.begin.bracket.curly.nushell\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.nushell\"}},\"name\":\"meta.for-loop.nushell\",\"patterns\":[{\"include\":\"source.nushell\"}]},\"function\":{\"begin\":\"((?:export\\\\\\\\s+)?def(?:\\\\\\\\s+--\\\\\\\\w+)*)\\\\\\\\s+([\\\\\\\\w\\\\\\\\-]+|\\\\\"[\\\\\\\\w\\\\\\\\- ]+\\\\\"|'[\\\\\\\\w\\\\\\\\- ]+'|\\`[\\\\\\\\w\\\\\\\\- ]+\\`)(\\\\\\\\s+--\\\\\\\\w+)*\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.nushell\"},\"2\":{\"name\":\"entity.name.type.nushell\"},\"3\":{\"name\":\"entity.name.function.nushell\"}},\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#function-parameters\"},{\"include\":\"#function-body\"},{\"include\":\"#function-inout\"}]},\"function-body\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.function.begin.nushell\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.function.end.nushell\"}},\"name\":\"meta.function.body.nushell\",\"patterns\":[{\"include\":\"source.nushell\"}]},\"function-inout\":{\"patterns\":[{\"include\":\"#types\"},{\"match\":\"->\",\"name\":\"keyword.operator.nushell\"},{\"include\":\"#function-multiple-inout\"}]},\"function-multiple-inout\":{\"begin\":\"(?<=]\\\\\\\\s*)(:)\\\\\\\\s+(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.in-out.nushell\"},\"2\":{\"name\":\"meta.brace.square.begin.nushell\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.square.end.nushell\"}},\"patterns\":[{\"include\":\"#types\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.nushell\"}},\"match\":\"\\\\\\\\s*(,)\\\\\\\\s*\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.nushell\"}},\"match\":\"\\\\\\\\s+(->)\\\\\\\\s+\"}]},\"function-parameter\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.nushell\"}},\"match\":\"(-{0,2}|\\\\\\\\.{3})[\\\\\\\\w-]+(?:\\\\\\\\((-[\\\\\\\\w?])\\\\\\\\))?\",\"name\":\"variable.parameter.nushell\"},{\"begin\":\"\\\\\\\\??:\\\\\\\\s*\",\"end\":\"(?=(?:\\\\\\\\s+(?:-{0,2}|\\\\\\\\.{3})[\\\\\\\\w-]+)|(?:\\\\\\\\s*(?:,|\\\\\\\\]|\\\\\\\\||@|=|#|$)))\",\"patterns\":[{\"include\":\"#types\"}]},{\"begin\":\"@(?=\\\\\"|')\",\"end\":\"(?<=\\\\\"|')\",\"patterns\":[{\"include\":\"#string\"}]},{\"begin\":\"=\\\\\\\\s*\",\"end\":\"(?=(?:\\\\\\\\s+-{0,2}[\\\\\\\\w-]+)|(?:\\\\\\\\s*(?:,|\\\\\\\\]|\\\\\\\\||#|$)))\",\"name\":\"default.value.nushell\",\"patterns\":[{\"include\":\"#value\"}]}]},\"function-parameters\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.square.begin.nushell\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.square.end.nushell\"}},\"name\":\"meta.function.parameters.nushell\",\"patterns\":[{\"include\":\"#function-parameter\"},{\"include\":\"#comment\"}]},\"internal-variables\":{\"match\":\"\\\\\\\\$(?:nu|env)\\\\\\\\b\",\"name\":\"variable.language.nushell\"},\"keyword\":{\"match\":\"(?:def(?:-env)?)\",\"name\":\"keyword.other.nushell\"},\"module\":{\"begin\":\"((?:export\\\\\\\\s+)?module)\\\\\\\\s+([\\\\\\\\w\\\\\\\\-]+)\\\\\\\\s*\\\\\\\\{\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.nushell\"},\"2\":{\"name\":\"entity.name.namespace.nushell\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.module.end.nushell\"}},\"name\":\"meta.module.nushell\",\"patterns\":[{\"include\":\"source.nushell\"}]},\"numbers\":{\"match\":\"(?<![\\\\\\\\w-])[-+]?(?:\\\\\\\\d+|\\\\\\\\d{1,3}(?:_\\\\\\\\d{3})*)(?:\\\\\\\\.\\\\\\\\d*)?(?i:ns|us|ms|sec|min|hr|day|wk|b|kb|mb|gb|tb|pt|eb|zb|kib|mib|gib|tib|pit|eib|zib)?(?:(?![\\\\\\\\w.])|(?=\\\\\\\\.\\\\\\\\.))\",\"name\":\"constant.numeric.nushell\"},\"numbers-hexa\":{\"match\":\"(?<![\\\\\\\\w-])0x[0-9a-fA-F]+(?![\\\\\\\\w.])\",\"name\":\"constant.numeric.nushell\"},\"operators\":{\"patterns\":[{\"include\":\"#operators-word\"},{\"include\":\"#operators-symbols\"},{\"include\":\"#ranges\"}]},\"operators-symbols\":{\"match\":\"(?<= )(?:(?:\\\\\\\\+|\\\\\\\\-|\\\\\\\\*|\\\\\\\\/)=?|\\\\\\\\/\\\\\\\\/|\\\\\\\\*\\\\\\\\*|!=|[<>=]=?|[!=]~|\\\\\\\\+\\\\\\\\+=?)(?= |$)\",\"name\":\"keyword.control.nushell\"},\"operators-word\":{\"match\":\"(?<= |\\\\\\\\()(?:mod|in|not-in|not|and|or|xor|bit-or|bit-and|bit-xor|bit-shl|bit-shr|starts-with|ends-with)(?= |\\\\\\\\)|$)\",\"name\":\"keyword.control.nushell\"},\"parameters\":{\"captures\":{\"1\":{\"name\":\"keyword.control.nushell\"}},\"match\":\"(?<=\\\\\\\\s)(-{1,2})[\\\\\\\\w-]+\",\"name\":\"variable.parameter.nushell\"},\"paren-expression\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.begin.nushell\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.end.nushell\"}},\"name\":\"meta.expression.parenthesis.nushell\",\"patterns\":[{\"include\":\"#expression\"}]},\"pre-command\":{\"begin\":\"(\\\\\\\\w+)(=)\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.nushell\"},\"2\":{\"patterns\":[{\"include\":\"#operators\"}]}},\"end\":\"(?=\\\\\\\\s+)\",\"patterns\":[{\"include\":\"#value\"}]},\"ranges\":{\"match\":\"\\\\\\\\.\\\\\\\\.<?\",\"name\":\"keyword.control.nushell\"},\"spread\":{\"match\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.(?=[^\\\\\\\\s\\\\\\\\]}])\",\"name\":\"keyword.control.nushell\"},\"string\":{\"patterns\":[{\"include\":\"#string-single-quote\"},{\"include\":\"#string-backtick\"},{\"include\":\"#string-double-quote\"},{\"include\":\"#string-interpolated-double\"},{\"include\":\"#string-interpolated-single\"},{\"include\":\"#string-bare\"}]},\"string-backtick\":{\"begin\":\"\\`\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.nushell\"}},\"end\":\"\\`\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.nushell\"}},\"name\":\"string.quoted.single.nushell\"},\"string-bare\":{\"match\":\"[^$\\\\\\\\[{(\\\\\"',|#\\\\\\\\s|][^\\\\\\\\[\\\\\\\\]{}()\\\\\"'\\\\\\\\s#,|]*\",\"name\":\"string.bare.nushell\"},\"string-double-quote\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.nushell\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.nushell\"}},\"name\":\"string.quoted.double.nushell\",\"patterns\":[{\"match\":\"\\\\\\\\w+\"},{\"include\":\"#string-escape\"}]},\"string-escape\":{\"match\":\"\\\\\\\\\\\\\\\\(?:[bfrnt\\\\\\\\\\\\\\\\'\\\\\"/]|u[0-9a-fA-F]{4})\",\"name\":\"constant.character.escape.nushell\"},\"string-interpolated-double\":{\"begin\":\"\\\\\\\\$\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.nushell\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.nushell\"}},\"name\":\"string.interpolated.double.nushell\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[()]\",\"name\":\"constant.character.escape.nushell\"},{\"include\":\"#string-escape\"},{\"include\":\"#paren-expression\"}]},\"string-interpolated-single\":{\"begin\":\"\\\\\\\\$'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.nushell\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.nushell\"}},\"name\":\"string.interpolated.single.nushell\",\"patterns\":[{\"include\":\"#paren-expression\"}]},\"string-single-quote\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.nushell\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.nushell\"}},\"name\":\"string.quoted.single.nushell\"},\"table\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.square.begin.nushell\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.square.end.nushell\"}},\"name\":\"meta.table.nushell\",\"patterns\":[{\"include\":\"#spread\"},{\"include\":\"#value\"},{\"match\":\",\",\"name\":\"punctuation.separator.nushell\"}]},\"types\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(list)\\\\\\\\s*<\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.type.nushell\"}},\"end\":\">\",\"name\":\"meta.list.nushell\",\"patterns\":[{\"include\":\"#types\"}]},{\"begin\":\"\\\\\\\\b(record)\\\\\\\\s*<\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.type.nushell\"}},\"end\":\">\",\"name\":\"meta.record.nushell\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.parameter.nushell\"}},\"match\":\"([\\\\\\\\w\\\\\\\\-]+|\\\\\"[\\\\\\\\w\\\\\\\\- ]+\\\\\"|'[^']+')\\\\\\\\s*:\\\\\\\\s*\"},{\"include\":\"#types\"}]},{\"match\":\"\\\\\\\\b(\\\\\\\\w+)\\\\\\\\b\",\"name\":\"entity.name.type.nushell\"}]},\"use-module\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.function.nushell\"},\"2\":{\"name\":\"entity.name.namespace.nushell\"},\"3\":{\"name\":\"keyword.other.nushell\"}},\"match\":\"^\\\\\\\\s*((?:export )?use)\\\\\\\\s+([\\\\\\\\w\\\\\\\\-]+|\\\\\"[\\\\\\\\w\\\\\\\\- ]+\\\\\"|'[\\\\\\\\w\\\\\\\\- ]+')(?:\\\\\\\\s+([\\\\\\\\w\\\\\\\\-]+|\\\\\"[\\\\\\\\w\\\\\\\\- ]+\\\\\"|'[\\\\\\\\w\\\\\\\\- ]+'|\\\\\\\\*))?\\\\\\\\s*;?$\"},{\"begin\":\"^\\\\\\\\s*((?:export )?use)\\\\\\\\s+([\\\\\\\\w\\\\\\\\-]+|\\\\\"[\\\\\\\\w\\\\\\\\- ]+\\\\\"|'[\\\\\\\\w\\\\\\\\- ]+')\\\\\\\\s*\\\\\\\\[\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.nushell\"},\"2\":{\"name\":\"entity.name.namespace.nushell\"}},\"end\":\"(\\\\\\\\])\\\\\\\\s*;?\\\\\\\\s*$\",\"endCaptures\":{\"1\":{\"name\":\"meta.brace.square.end.nushell\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.nushell\"}},\"match\":\"([\\\\\\\\w\\\\\\\\-]+|\\\\\"[\\\\\\\\w\\\\\\\\- ]+\\\\\"|'[\\\\\\\\w\\\\\\\\- ]+'|\\\\\\\\*),?\"},{\"include\":\"#comment\"}]},{\"captures\":{\"2\":{\"name\":\"entity.name.function.nushell\"},\"3\":{\"name\":\"string.bare.nushell\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.namespace.nushell\"}},\"match\":\"([\\\\\\\\w\\\\\\\\- ]+)(?:\\\\\\\\.nu)?(?=$|\\\\\"|')\"}]},\"4\":{\"name\":\"keyword.other.nushell\"}},\"match\":\"(?<path>(?:/|\\\\\\\\\\\\\\\\|~[\\\\\\\\/\\\\\\\\\\\\\\\\]|\\\\\\\\.\\\\\\\\.?[\\\\\\\\/\\\\\\\\\\\\\\\\])?(?:[^\\\\\\\\/\\\\\\\\\\\\\\\\]+[\\\\\\\\/\\\\\\\\\\\\\\\\])*[\\\\\\\\w\\\\\\\\- ]+(?:\\\\\\\\.nu)?){0}^\\\\\\\\s*((?:export )?use)\\\\\\\\s+(\\\\\"\\\\\\\\g<path>\\\\\"|'\\\\\\\\g<path>\\\\\\\\'|(?![\\\\\"'])\\\\\\\\g<path>)(?:\\\\\\\\s+([\\\\\\\\w\\\\\\\\-]+|\\\\\"[\\\\\\\\w\\\\\\\\- ]+\\\\\"|'[^']+'|\\\\\\\\*))?\\\\\\\\s*;?$\"},{\"begin\":\"(?<path>(?:/|\\\\\\\\\\\\\\\\|~[\\\\\\\\/\\\\\\\\\\\\\\\\]|\\\\\\\\.\\\\\\\\.?[\\\\\\\\/\\\\\\\\\\\\\\\\])?(?:[^\\\\\\\\/\\\\\\\\\\\\\\\\]+[\\\\\\\\/\\\\\\\\\\\\\\\\])*[\\\\\\\\w\\\\\\\\- ]+(?:\\\\\\\\.nu)?){0}^\\\\\\\\s*((?:export )?use)\\\\\\\\s+(\\\\\"\\\\\\\\g<path>\\\\\"|'\\\\\\\\g<path>\\\\\\\\'|(?![\\\\\"'])\\\\\\\\g<path>)\\\\\\\\s+\\\\\\\\[\",\"beginCaptures\":{\"2\":{\"name\":\"entity.name.function.nushell\"},\"3\":{\"name\":\"string.bare.nushell\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.namespace.nushell\"}},\"match\":\"([\\\\\\\\w\\\\\\\\- ]+)(?:\\\\\\\\.nu)?(?=$|\\\\\"|')\"}]}},\"end\":\"(\\\\\\\\])\\\\\\\\s*;?\\\\\\\\s*$\",\"endCaptures\":{\"1\":{\"name\":\"meta.brace.square.end.nushell\"}},\"patterns\":[{\"captures\":{\"0\":{\"name\":\"keyword.other.nushell\"}},\"match\":\"([\\\\\\\\w\\\\\\\\-]+|\\\\\"[\\\\\\\\w\\\\\\\\- ]+\\\\\"|'[\\\\\\\\w\\\\\\\\- ]+'|\\\\\\\\*),?\"},{\"include\":\"#comment\"}]},{\"captures\":{\"0\":{\"name\":\"entity.name.function.nushell\"}},\"match\":\"^\\\\\\\\s*(?:export )?use\\\\\\\\b\"}]},\"value\":{\"patterns\":[{\"include\":\"#variables\"},{\"include\":\"#variable-fields\"},{\"include\":\"#control-keywords\"},{\"include\":\"#constant-value\"},{\"include\":\"#table\"},{\"include\":\"#operators\"},{\"include\":\"#paren-expression\"},{\"include\":\"#braced-expression\"},{\"include\":\"#string\"},{\"include\":\"#comment\"}]},\"variable-fields\":{\"match\":\"(?<=\\\\\\\\)|\\\\\\\\}|\\\\\\\\])(?:\\\\\\\\.(?:[\\\\\\\\w-]+|\\\\\"[\\\\\\\\w\\\\\\\\- ]+\\\\\"))+\",\"name\":\"variable.other.nushell\"},\"variables\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#internal-variables\"},{\"match\":\"\\\\\\\\$.+\",\"name\":\"variable.other.nushell\"}]},\"2\":{\"name\":\"variable.other.nushell\"}},\"match\":\"(\\\\\\\\$[a-zA-Z0-9_]+)((?:\\\\\\\\.(?:[\\\\\\\\w-]+|\\\\\"[\\\\\\\\w\\\\\\\\- ]+\\\\\"))*)\"}},\"scopeName\":\"source.nushell\",\"aliases\":[\"nu\"]}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/D4aGjE-s.js",
    "content": "import{a1 as f}from\"./CU_MfyYc.js\";/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var F=Object.defineProperty,b=Object.getOwnPropertyDescriptor,x=Object.getOwnPropertyNames,$=Object.prototype.hasOwnProperty,v=(t,n,_,e)=>{if(n&&typeof n==\"object\"||typeof n==\"function\")for(let o of x(n))!$.call(t,o)&&o!==_&&F(t,o,{get:()=>n[o],enumerable:!(e=b(n,o))||e.enumerable});return t},E=(t,n,_)=>(v(t,n,\"default\"),_),r={};E(r,f);var d=[\"assign\",\"flush\",\"ftl\",\"return\",\"global\",\"import\",\"include\",\"break\",\"continue\",\"local\",\"nested\",\"nt\",\"setting\",\"stop\",\"t\",\"lt\",\"rt\",\"fallback\"],s=[\"attempt\",\"autoesc\",\"autoEsc\",\"compress\",\"comment\",\"escape\",\"noescape\",\"function\",\"if\",\"list\",\"items\",\"sep\",\"macro\",\"noparse\",\"noParse\",\"noautoesc\",\"noAutoEsc\",\"outputformat\",\"switch\",\"visit\",\"recurse\"],a={close:\">\",id:\"angle\",open:\"<\"},u={close:\"\\\\]\",id:\"bracket\",open:\"\\\\[\"},D={close:\"[>\\\\]]\",id:\"auto\",open:\"[<\\\\[]\"},k={close:\"\\\\}\",id:\"dollar\",open1:\"\\\\$\",open2:\"\\\\{\"},p={close:\"\\\\]\",id:\"bracket\",open1:\"\\\\[\",open2:\"=\"};function l(t){return{brackets:[[\"<\",\">\"],[\"[\",\"]\"],[\"(\",\")\"],[\"{\",\"}\"]],comments:{blockComment:[`${t.open}--`,`--${t.close}`]},autoCloseBefore:`\n\\r\t }]),.:;=`,autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"',notIn:[\"string\"]},{open:\"'\",close:\"'\",notIn:[\"string\"]}],surroundingPairs:[{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"}],folding:{markers:{start:new RegExp(`${t.open}#(?:${s.join(\"|\")})([^/${t.close}]*(?!/)${t.close})[^${t.open}]*$`),end:new RegExp(`${t.open}/#(?:${s.join(\"|\")})[\\\\r\\\\n\\\\t ]*>`)}},onEnterRules:[{beforeText:new RegExp(`${t.open}#(?!(?:${d.join(\"|\")}))([a-zA-Z_]+)([^/${t.close}]*(?!/)${t.close})[^${t.open}]*$`),afterText:new RegExp(`^${t.open}/#([a-zA-Z_]+)[\\\\r\\\\n\\\\t ]*${t.close}$`),action:{indentAction:r.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`${t.open}#(?!(?:${d.join(\"|\")}))([a-zA-Z_]+)([^/${t.close}]*(?!/)${t.close})[^${t.open}]*$`),action:{indentAction:r.languages.IndentAction.Indent}}]}}function g(){return{brackets:[[\"<\",\">\"],[\"[\",\"]\"],[\"(\",\")\"],[\"{\",\"}\"]],autoCloseBefore:`\n\\r\t }]),.:;=`,autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"',notIn:[\"string\"]},{open:\"'\",close:\"'\",notIn:[\"string\"]}],surroundingPairs:[{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"}],folding:{markers:{start:new RegExp(`[<\\\\[]#(?:${s.join(\"|\")})([^/>\\\\]]*(?!/)[>\\\\]])[^<\\\\[]*$`),end:new RegExp(`[<\\\\[]/#(?:${s.join(\"|\")})[\\\\r\\\\n\\\\t ]*>`)}},onEnterRules:[{beforeText:new RegExp(`[<\\\\[]#(?!(?:${d.join(\"|\")}))([a-zA-Z_]+)([^/>\\\\]]*(?!/)[>\\\\]])[^[<\\\\[]]*$`),afterText:new RegExp(\"^[<\\\\[]/#([a-zA-Z_]+)[\\\\r\\\\n\\\\t ]*[>\\\\]]$\"),action:{indentAction:r.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`[<\\\\[]#(?!(?:${d.join(\"|\")}))([a-zA-Z_]+)([^/>\\\\]]*(?!/)[>\\\\]])[^[<\\\\[]]*$`),action:{indentAction:r.languages.IndentAction.Indent}}]}}function i(t,n){const _=`_${t.id}_${n.id}`,e=c=>c.replace(/__id__/g,_),o=c=>{const m=c.source.replace(/__id__/g,_);return new RegExp(m,c.flags)};return{unicode:!0,includeLF:!1,start:e(\"default__id__\"),ignoreCase:!1,defaultToken:\"invalid\",tokenPostfix:\".freemarker2\",brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"}],[e(\"open__id__\")]:new RegExp(t.open),[e(\"close__id__\")]:new RegExp(t.close),[e(\"iOpen1__id__\")]:new RegExp(n.open1),[e(\"iOpen2__id__\")]:new RegExp(n.open2),[e(\"iClose__id__\")]:new RegExp(n.close),[e(\"startTag__id__\")]:o(/(@open__id__)(#)/),[e(\"endTag__id__\")]:o(/(@open__id__)(\\/#)/),[e(\"startOrEndTag__id__\")]:o(/(@open__id__)(\\/?#)/),[e(\"closeTag1__id__\")]:o(/((?:@blank)*)(@close__id__)/),[e(\"closeTag2__id__\")]:o(/((?:@blank)*\\/?)(@close__id__)/),blank:/[ \\t\\n\\r]/,keywords:[\"false\",\"true\",\"in\",\"as\",\"using\"],directiveStartCloseTag1:/attempt|recover|sep|auto[eE]sc|no(?:autoe|AutoE)sc|compress|default|no[eE]scape|comment|no[pP]arse/,directiveStartCloseTag2:/else|break|continue|return|stop|flush|t|lt|rt|nt|nested|recurse|fallback|ftl/,directiveStartBlank:/if|else[iI]f|list|for[eE]ach|switch|case|assign|global|local|include|import|function|macro|transform|visit|stop|return|call|setting|output[fF]ormat|nested|recurse|escape|ftl|items/,directiveEndCloseTag1:/if|list|items|sep|recover|attempt|for[eE]ach|local|global|assign|function|macro|output[fF]ormat|auto[eE]sc|no(?:autoe|AutoE)sc|compress|transform|switch|escape|no[eE]scape/,escapedChar:/\\\\(?:[ntrfbgla\\\\'\"\\{=]|(?:x[0-9A-Fa-f]{1,4}))/,asciiDigit:/[0-9]/,integer:/[0-9]+/,nonEscapedIdStartChar:/[\\$@-Z_a-z\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u1FFF\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183-\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3006\\u3031-\\u3035\\u303B-\\u303C\\u3040-\\u318F\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3300-\\u337F\\u3400-\\u4DB5\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8D0-\\uA8D9\\uA8F2-\\uA8F7\\uA8FB\\uA900-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF-\\uA9D9\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5-\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40-\\uFB41\\uFB43-\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/,escapedIdChar:/\\\\[\\-\\.:#]/,idStartChar:/(?:@nonEscapedIdStartChar)|(?:@escapedIdChar)/,id:/(?:@idStartChar)(?:(?:@idStartChar)|(?:@asciiDigit))*/,specialHashKeys:/\\*\\*|\\*|false|true|in|as|using/,namedSymbols:/&lt;=|&gt;=|\\\\lte|\\\\lt|&lt;|\\\\gte|\\\\gt|&gt;|&amp;&amp;|\\\\and|-&gt;|->|==|!=|\\+=|-=|\\*=|\\/=|%=|\\+\\+|--|<=|&&|\\|\\||:|\\.\\.\\.|\\.\\.\\*|\\.\\.<|\\.\\.!|\\?\\?|=|<|\\+|-|\\*|\\/|%|\\||\\.\\.|\\?|!|&|\\.|,|;/,arrows:[\"->\",\"-&gt;\"],delimiters:[\";\",\":\",\",\",\".\"],stringOperators:[\"lte\",\"lt\",\"gte\",\"gt\"],noParseTags:[\"noparse\",\"noParse\",\"comment\"],tokenizer:{[e(\"default__id__\")]:[{include:e(\"@directive_token__id__\")},{include:e(\"@interpolation_and_text_token__id__\")}],[e(\"fmExpression__id__.directive\")]:[{include:e(\"@blank_and_expression_comment_token__id__\")},{include:e(\"@directive_end_token__id__\")},{include:e(\"@expression_token__id__\")}],[e(\"fmExpression__id__.interpolation\")]:[{include:e(\"@blank_and_expression_comment_token__id__\")},{include:e(\"@expression_token__id__\")},{include:e(\"@greater_operators_token__id__\")}],[e(\"inParen__id__.plain\")]:[{include:e(\"@blank_and_expression_comment_token__id__\")},{include:e(\"@directive_end_token__id__\")},{include:e(\"@expression_token__id__\")}],[e(\"inParen__id__.gt\")]:[{include:e(\"@blank_and_expression_comment_token__id__\")},{include:e(\"@expression_token__id__\")},{include:e(\"@greater_operators_token__id__\")}],[e(\"noSpaceExpression__id__\")]:[{include:e(\"@no_space_expression_end_token__id__\")},{include:e(\"@directive_end_token__id__\")},{include:e(\"@expression_token__id__\")}],[e(\"unifiedCall__id__\")]:[{include:e(\"@unified_call_token__id__\")}],[e(\"singleString__id__\")]:[{include:e(\"@string_single_token__id__\")}],[e(\"doubleString__id__\")]:[{include:e(\"@string_double_token__id__\")}],[e(\"rawSingleString__id__\")]:[{include:e(\"@string_single_raw_token__id__\")}],[e(\"rawDoubleString__id__\")]:[{include:e(\"@string_double_raw_token__id__\")}],[e(\"expressionComment__id__\")]:[{include:e(\"@expression_comment_token__id__\")}],[e(\"noParse__id__\")]:[{include:e(\"@no_parse_token__id__\")}],[e(\"terseComment__id__\")]:[{include:e(\"@terse_comment_token__id__\")}],[e(\"directive_token__id__\")]:[[o(/(?:@startTag__id__)(@directiveStartCloseTag1)(?:@closeTag1__id__)/),t.id===\"auto\"?{cases:{\"$1==<\":{token:\"@rematch\",switchTo:`@default_angle_${n.id}`},\"$1==[\":{token:\"@rematch\",switchTo:`@default_bracket_${n.id}`}}}:[{token:\"@brackets.directive\"},{token:\"delimiter.directive\"},{cases:{\"@noParseTags\":{token:\"tag\",next:e(\"@noParse__id__.$3\")},\"@default\":{token:\"tag\"}}},{token:\"delimiter.directive\"},{token:\"@brackets.directive\"}]],[o(/(?:@startTag__id__)(@directiveStartCloseTag2)(?:@closeTag2__id__)/),t.id===\"auto\"?{cases:{\"$1==<\":{token:\"@rematch\",switchTo:`@default_angle_${n.id}`},\"$1==[\":{token:\"@rematch\",switchTo:`@default_bracket_${n.id}`}}}:[{token:\"@brackets.directive\"},{token:\"delimiter.directive\"},{token:\"tag\"},{token:\"delimiter.directive\"},{token:\"@brackets.directive\"}]],[o(/(?:@startTag__id__)(@directiveStartBlank)(@blank)/),t.id===\"auto\"?{cases:{\"$1==<\":{token:\"@rematch\",switchTo:`@default_angle_${n.id}`},\"$1==[\":{token:\"@rematch\",switchTo:`@default_bracket_${n.id}`}}}:[{token:\"@brackets.directive\"},{token:\"delimiter.directive\"},{token:\"tag\"},{token:\"\",next:e(\"@fmExpression__id__.directive\")}]],[o(/(?:@endTag__id__)(@directiveEndCloseTag1)(?:@closeTag1__id__)/),t.id===\"auto\"?{cases:{\"$1==<\":{token:\"@rematch\",switchTo:`@default_angle_${n.id}`},\"$1==[\":{token:\"@rematch\",switchTo:`@default_bracket_${n.id}`}}}:[{token:\"@brackets.directive\"},{token:\"delimiter.directive\"},{token:\"tag\"},{token:\"delimiter.directive\"},{token:\"@brackets.directive\"}]],[o(/(@open__id__)(@)/),t.id===\"auto\"?{cases:{\"$1==<\":{token:\"@rematch\",switchTo:`@default_angle_${n.id}`},\"$1==[\":{token:\"@rematch\",switchTo:`@default_bracket_${n.id}`}}}:[{token:\"@brackets.directive\"},{token:\"delimiter.directive\",next:e(\"@unifiedCall__id__\")}]],[o(/(@open__id__)(\\/@)((?:(?:@id)(?:\\.(?:@id))*)?)(?:@closeTag1__id__)/),[{token:\"@brackets.directive\"},{token:\"delimiter.directive\"},{token:\"tag\"},{token:\"delimiter.directive\"},{token:\"@brackets.directive\"}]],[o(/(@open__id__)#--/),t.id===\"auto\"?{cases:{\"$1==<\":{token:\"@rematch\",switchTo:`@default_angle_${n.id}`},\"$1==[\":{token:\"@rematch\",switchTo:`@default_bracket_${n.id}`}}}:{token:\"comment\",next:e(\"@terseComment__id__\")}],[o(/(?:@startOrEndTag__id__)([a-zA-Z_]+)/),t.id===\"auto\"?{cases:{\"$1==<\":{token:\"@rematch\",switchTo:`@default_angle_${n.id}`},\"$1==[\":{token:\"@rematch\",switchTo:`@default_bracket_${n.id}`}}}:[{token:\"@brackets.directive\"},{token:\"delimiter.directive\"},{token:\"tag.invalid\",next:e(\"@fmExpression__id__.directive\")}]]],[e(\"interpolation_and_text_token__id__\")]:[[o(/(@iOpen1__id__)(@iOpen2__id__)/),[{token:n.id===\"bracket\"?\"@brackets.interpolation\":\"delimiter.interpolation\"},{token:n.id===\"bracket\"?\"delimiter.interpolation\":\"@brackets.interpolation\",next:e(\"@fmExpression__id__.interpolation\")}]],[/[\\$#<\\[\\{]|(?:@blank)+|[^\\$<#\\[\\{\\n\\r\\t ]+/,{token:\"source\"}]],[e(\"string_single_token__id__\")]:[[/[^'\\\\]/,{token:\"string\"}],[/@escapedChar/,{token:\"string.escape\"}],[/'/,{token:\"string\",next:\"@pop\"}]],[e(\"string_double_token__id__\")]:[[/[^\"\\\\]/,{token:\"string\"}],[/@escapedChar/,{token:\"string.escape\"}],[/\"/,{token:\"string\",next:\"@pop\"}]],[e(\"string_single_raw_token__id__\")]:[[/[^']+/,{token:\"string.raw\"}],[/'/,{token:\"string.raw\",next:\"@pop\"}]],[e(\"string_double_raw_token__id__\")]:[[/[^\"]+/,{token:\"string.raw\"}],[/\"/,{token:\"string.raw\",next:\"@pop\"}]],[e(\"expression_token__id__\")]:[[/(r?)(['\"])/,{cases:{\"r'\":[{token:\"keyword\"},{token:\"string.raw\",next:e(\"@rawSingleString__id__\")}],'r\"':[{token:\"keyword\"},{token:\"string.raw\",next:e(\"@rawDoubleString__id__\")}],\"'\":[{token:\"source\"},{token:\"string\",next:e(\"@singleString__id__\")}],'\"':[{token:\"source\"},{token:\"string\",next:e(\"@doubleString__id__\")}]}}],[/(?:@integer)(?:\\.(?:@integer))?/,{cases:{\"(?:@integer)\":{token:\"number\"},\"@default\":{token:\"number.float\"}}}],[/(\\.)(@blank*)(@specialHashKeys)/,[{token:\"delimiter\"},{token:\"\"},{token:\"identifier\"}]],[/(?:@namedSymbols)/,{cases:{\"@arrows\":{token:\"meta.arrow\"},\"@delimiters\":{token:\"delimiter\"},\"@default\":{token:\"operators\"}}}],[/@id/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@stringOperators\":{token:\"operators\"},\"@default\":{token:\"identifier\"}}}],[/[\\[\\]\\(\\)\\{\\}]/,{cases:{\"\\\\[\":{cases:{\"$S2==gt\":{token:\"@brackets\",next:e(\"@inParen__id__.gt\")},\"@default\":{token:\"@brackets\",next:e(\"@inParen__id__.plain\")}}},\"\\\\]\":{cases:{...n.id===\"bracket\"?{\"$S2==interpolation\":{token:\"@brackets.interpolation\",next:\"@popall\"}}:{},...t.id===\"bracket\"?{\"$S2==directive\":{token:\"@brackets.directive\",next:\"@popall\"}}:{},[e(\"$S1==inParen__id__\")]:{token:\"@brackets\",next:\"@pop\"},\"@default\":{token:\"@brackets\"}}},\"\\\\(\":{token:\"@brackets\",next:e(\"@inParen__id__.gt\")},\"\\\\)\":{cases:{[e(\"$S1==inParen__id__\")]:{token:\"@brackets\",next:\"@pop\"},\"@default\":{token:\"@brackets\"}}},\"\\\\{\":{cases:{\"$S2==gt\":{token:\"@brackets\",next:e(\"@inParen__id__.gt\")},\"@default\":{token:\"@brackets\",next:e(\"@inParen__id__.plain\")}}},\"\\\\}\":{cases:{...n.id===\"bracket\"?{}:{\"$S2==interpolation\":{token:\"@brackets.interpolation\",next:\"@popall\"}},[e(\"$S1==inParen__id__\")]:{token:\"@brackets\",next:\"@pop\"},\"@default\":{token:\"@brackets\"}}}}}],[/\\$\\{/,{token:\"delimiter.invalid\"}]],[e(\"blank_and_expression_comment_token__id__\")]:[[/(?:@blank)+/,{token:\"\"}],[/[<\\[][#!]--/,{token:\"comment\",next:e(\"@expressionComment__id__\")}]],[e(\"directive_end_token__id__\")]:[[/>/,t.id===\"bracket\"?{token:\"operators\"}:{token:\"@brackets.directive\",next:\"@popall\"}],[o(/(\\/)(@close__id__)/),[{token:\"delimiter.directive\"},{token:\"@brackets.directive\",next:\"@popall\"}]]],[e(\"greater_operators_token__id__\")]:[[/>/,{token:\"operators\"}],[/>=/,{token:\"operators\"}]],[e(\"no_space_expression_end_token__id__\")]:[[/(?:@blank)+/,{token:\"\",switchTo:e(\"@fmExpression__id__.directive\")}]],[e(\"unified_call_token__id__\")]:[[/(@id)((?:@blank)+)/,[{token:\"tag\"},{token:\"\",next:e(\"@fmExpression__id__.directive\")}]],[o(/(@id)(\\/?)(@close__id__)/),[{token:\"tag\"},{token:\"delimiter.directive\"},{token:\"@brackets.directive\",next:\"@popall\"}]],[/./,{token:\"@rematch\",next:e(\"@noSpaceExpression__id__\")}]],[e(\"no_parse_token__id__\")]:[[o(/(@open__id__)(\\/#?)([a-zA-Z]+)((?:@blank)*)(@close__id__)/),{cases:{\"$S2==$3\":[{token:\"@brackets.directive\"},{token:\"delimiter.directive\"},{token:\"tag\"},{token:\"\"},{token:\"@brackets.directive\",next:\"@popall\"}],\"$S2==comment\":[{token:\"comment\"},{token:\"comment\"},{token:\"comment\"},{token:\"comment\"},{token:\"comment\"}],\"@default\":[{token:\"source\"},{token:\"source\"},{token:\"source\"},{token:\"source\"},{token:\"source\"}]}}],[/[^<\\[\\-]+|[<\\[\\-]/,{cases:{\"$S2==comment\":{token:\"comment\"},\"@default\":{token:\"source\"}}}]],[e(\"expression_comment_token__id__\")]:[[/--[>\\]]/,{token:\"comment\",next:\"@pop\"}],[/[^\\->\\]]+|[>\\]\\-]/,{token:\"comment\"}]],[e(\"terse_comment_token__id__\")]:[[o(/--(?:@close__id__)/),{token:\"comment\",next:\"@popall\"}],[/[^<\\[\\-]+|[<\\[\\-]/,{token:\"comment\"}]]}}}function A(t){const n=i(a,t),_=i(u,t),e=i(D,t);return{...n,..._,...e,unicode:!0,includeLF:!1,start:`default_auto_${t.id}`,ignoreCase:!1,defaultToken:\"invalid\",tokenPostfix:\".freemarker2\",brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"}],tokenizer:{...n.tokenizer,..._.tokenizer,...e.tokenizer}}}var C={conf:l(a),language:i(a,k)},w={conf:l(u),language:i(u,k)},T={conf:l(a),language:i(a,p)},h={conf:l(u),language:i(u,p)},S={conf:g(),language:A(k)},P={conf:g(),language:A(p)};export{T as TagAngleInterpolationBracket,C as TagAngleInterpolationDollar,P as TagAutoInterpolationBracket,S as TagAutoInterpolationDollar,h as TagBracketInterpolationBracket,w as TagBracketInterpolationDollar};\n"
  },
  {
    "path": "jesse/static/_nuxt/D4h5O-jR.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.background\":\"#272822\",\"activityBar.foreground\":\"#f8f8f2\",\"badge.background\":\"#75715E\",\"badge.foreground\":\"#f8f8f2\",\"button.background\":\"#75715E\",\"debugToolBar.background\":\"#1e1f1c\",\"diffEditor.insertedTextBackground\":\"#4b661680\",\"diffEditor.removedTextBackground\":\"#90274A70\",\"dropdown.background\":\"#414339\",\"dropdown.listBackground\":\"#1e1f1c\",\"editor.background\":\"#272822\",\"editor.foreground\":\"#f8f8f2\",\"editor.lineHighlightBackground\":\"#3e3d32\",\"editor.selectionBackground\":\"#878b9180\",\"editor.selectionHighlightBackground\":\"#575b6180\",\"editor.wordHighlightBackground\":\"#4a4a7680\",\"editor.wordHighlightStrongBackground\":\"#6a6a9680\",\"editorCursor.foreground\":\"#f8f8f0\",\"editorGroup.border\":\"#34352f\",\"editorGroup.dropBackground\":\"#41433980\",\"editorGroupHeader.tabsBackground\":\"#1e1f1c\",\"editorHoverWidget.background\":\"#414339\",\"editorHoverWidget.border\":\"#75715E\",\"editorIndentGuide.activeBackground\":\"#767771\",\"editorIndentGuide.background\":\"#464741\",\"editorLineNumber.activeForeground\":\"#c2c2bf\",\"editorLineNumber.foreground\":\"#90908a\",\"editorSuggestWidget.background\":\"#272822\",\"editorSuggestWidget.border\":\"#75715E\",\"editorWhitespace.foreground\":\"#464741\",\"editorWidget.background\":\"#1e1f1c\",\"focusBorder\":\"#99947c\",\"input.background\":\"#414339\",\"inputOption.activeBorder\":\"#75715E\",\"inputValidation.errorBackground\":\"#90274A\",\"inputValidation.errorBorder\":\"#f92672\",\"inputValidation.infoBackground\":\"#546190\",\"inputValidation.infoBorder\":\"#819aff\",\"inputValidation.warningBackground\":\"#848528\",\"inputValidation.warningBorder\":\"#e2e22e\",\"list.activeSelectionBackground\":\"#75715E\",\"list.dropBackground\":\"#414339\",\"list.highlightForeground\":\"#f8f8f2\",\"list.hoverBackground\":\"#3e3d32\",\"list.inactiveSelectionBackground\":\"#414339\",\"menu.background\":\"#1e1f1c\",\"menu.foreground\":\"#cccccc\",\"minimap.selectionHighlight\":\"#878b9180\",\"panel.border\":\"#414339\",\"panelTitle.activeBorder\":\"#75715E\",\"panelTitle.activeForeground\":\"#f8f8f2\",\"panelTitle.inactiveForeground\":\"#75715E\",\"peekView.border\":\"#75715E\",\"peekViewEditor.background\":\"#272822\",\"peekViewEditor.matchHighlightBackground\":\"#75715E\",\"peekViewResult.background\":\"#1e1f1c\",\"peekViewResult.matchHighlightBackground\":\"#75715E\",\"peekViewResult.selectionBackground\":\"#414339\",\"peekViewTitle.background\":\"#1e1f1c\",\"pickerGroup.foreground\":\"#75715E\",\"ports.iconRunningProcessForeground\":\"#ccccc7\",\"progressBar.background\":\"#75715E\",\"quickInputList.focusBackground\":\"#414339\",\"selection.background\":\"#878b9180\",\"settings.focusedRowBackground\":\"#4143395A\",\"sideBar.background\":\"#1e1f1c\",\"sideBarSectionHeader.background\":\"#272822\",\"statusBar.background\":\"#414339\",\"statusBar.debuggingBackground\":\"#75715E\",\"statusBar.noFolderBackground\":\"#414339\",\"statusBarItem.remoteBackground\":\"#AC6218\",\"tab.border\":\"#1e1f1c\",\"tab.inactiveBackground\":\"#34352f\",\"tab.inactiveForeground\":\"#ccccc7\",\"tab.lastPinnedBorder\":\"#414339\",\"terminal.ansiBlack\":\"#333333\",\"terminal.ansiBlue\":\"#6A7EC8\",\"terminal.ansiBrightBlack\":\"#666666\",\"terminal.ansiBrightBlue\":\"#819aff\",\"terminal.ansiBrightCyan\":\"#66D9EF\",\"terminal.ansiBrightGreen\":\"#A6E22E\",\"terminal.ansiBrightMagenta\":\"#AE81FF\",\"terminal.ansiBrightRed\":\"#f92672\",\"terminal.ansiBrightWhite\":\"#f8f8f2\",\"terminal.ansiBrightYellow\":\"#e2e22e\",\"terminal.ansiCyan\":\"#56ADBC\",\"terminal.ansiGreen\":\"#86B42B\",\"terminal.ansiMagenta\":\"#8C6BC8\",\"terminal.ansiRed\":\"#C4265E\",\"terminal.ansiWhite\":\"#e3e3dd\",\"terminal.ansiYellow\":\"#B3B42B\",\"titleBar.activeBackground\":\"#1e1f1c\",\"widget.shadow\":\"#00000098\"},\"displayName\":\"Monokai\",\"name\":\"monokai\",\"semanticHighlighting\":true,\"tokenColors\":[{\"settings\":{\"foreground\":\"#F8F8F2\"}},{\"scope\":[\"meta.embedded\",\"source.groovy.embedded\",\"string meta.image.inline.markdown\",\"variable.legacy.builtin.python\"],\"settings\":{\"foreground\":\"#F8F8F2\"}},{\"scope\":\"comment\",\"settings\":{\"foreground\":\"#88846f\"}},{\"scope\":\"string\",\"settings\":{\"foreground\":\"#E6DB74\"}},{\"scope\":[\"punctuation.definition.template-expression\",\"punctuation.section.embedded\"],\"settings\":{\"foreground\":\"#F92672\"}},{\"scope\":[\"meta.template.expression\"],\"settings\":{\"foreground\":\"#F8F8F2\"}},{\"scope\":\"constant.numeric\",\"settings\":{\"foreground\":\"#AE81FF\"}},{\"scope\":\"constant.language\",\"settings\":{\"foreground\":\"#AE81FF\"}},{\"scope\":\"constant.character, constant.other\",\"settings\":{\"foreground\":\"#AE81FF\"}},{\"scope\":\"variable\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#F8F8F2\"}},{\"scope\":\"keyword\",\"settings\":{\"foreground\":\"#F92672\"}},{\"scope\":\"storage\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#F92672\"}},{\"scope\":\"storage.type\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#66D9EF\"}},{\"scope\":\"entity.name.type, entity.name.class, entity.name.namespace, entity.name.scope-resolution\",\"settings\":{\"fontStyle\":\"underline\",\"foreground\":\"#A6E22E\"}},{\"scope\":[\"entity.other.inherited-class\",\"punctuation.separator.namespace.ruby\"],\"settings\":{\"fontStyle\":\"italic underline\",\"foreground\":\"#A6E22E\"}},{\"scope\":\"entity.name.function\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#A6E22E\"}},{\"scope\":\"variable.parameter\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#FD971F\"}},{\"scope\":\"entity.name.tag\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#F92672\"}},{\"scope\":\"entity.other.attribute-name\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#A6E22E\"}},{\"scope\":\"support.function\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#66D9EF\"}},{\"scope\":\"support.constant\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#66D9EF\"}},{\"scope\":\"support.type, support.class\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#66D9EF\"}},{\"scope\":\"support.other.variable\",\"settings\":{\"fontStyle\":\"\"}},{\"scope\":\"invalid\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#F44747\"}},{\"scope\":\"invalid.deprecated\",\"settings\":{\"foreground\":\"#F44747\"}},{\"scope\":\"meta.structure.dictionary.json string.quoted.double.json\",\"settings\":{\"foreground\":\"#CFCFC2\"}},{\"scope\":\"meta.diff, meta.diff.header\",\"settings\":{\"foreground\":\"#75715E\"}},{\"scope\":\"markup.deleted\",\"settings\":{\"foreground\":\"#F92672\"}},{\"scope\":\"markup.inserted\",\"settings\":{\"foreground\":\"#A6E22E\"}},{\"scope\":\"markup.changed\",\"settings\":{\"foreground\":\"#E6DB74\"}},{\"scope\":\"constant.numeric.line-number.find-in-files - match\",\"settings\":{\"foreground\":\"#AE81FFA0\"}},{\"scope\":\"entity.name.filename.find-in-files\",\"settings\":{\"foreground\":\"#E6DB74\"}},{\"scope\":\"markup.quote\",\"settings\":{\"foreground\":\"#F92672\"}},{\"scope\":\"markup.list\",\"settings\":{\"foreground\":\"#E6DB74\"}},{\"scope\":\"markup.bold, markup.italic\",\"settings\":{\"foreground\":\"#66D9EF\"}},{\"scope\":\"markup.inline.raw\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#FD971F\"}},{\"scope\":\"markup.heading\",\"settings\":{\"foreground\":\"#A6E22E\"}},{\"scope\":\"markup.heading.setext\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#A6E22E\"}},{\"scope\":\"markup.heading.markdown\",\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":\"markup.quote.markdown\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#75715E\"}},{\"scope\":\"markup.bold.markdown\",\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":\"string.other.link.title.markdown,string.other.link.description.markdown\",\"settings\":{\"foreground\":\"#AE81FF\"}},{\"scope\":\"markup.underline.link.markdown,markup.underline.link.image.markdown\",\"settings\":{\"foreground\":\"#E6DB74\"}},{\"scope\":\"markup.italic.markdown\",\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":\"markup.strikethrough\",\"settings\":{\"fontStyle\":\"strikethrough\"}},{\"scope\":\"markup.list.unnumbered.markdown, markup.list.numbered.markdown\",\"settings\":{\"foreground\":\"#f8f8f2\"}},{\"scope\":[\"punctuation.definition.list.begin.markdown\"],\"settings\":{\"foreground\":\"#A6E22E\"}},{\"scope\":\"token.info-token\",\"settings\":{\"foreground\":\"#6796e6\"}},{\"scope\":\"token.warn-token\",\"settings\":{\"foreground\":\"#cd9731\"}},{\"scope\":\"token.error-token\",\"settings\":{\"foreground\":\"#f44747\"}},{\"scope\":\"token.debug-token\",\"settings\":{\"foreground\":\"#b267e6\"}},{\"scope\":\"variable.language\",\"settings\":{\"foreground\":\"#FD971F\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/D5KoaKCx.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBorder\":\"#80CBC4\",\"activityBar.background\":\"#263238\",\"activityBar.border\":\"#26323860\",\"activityBar.dropBackground\":\"#f0717880\",\"activityBar.foreground\":\"#EEFFFF\",\"activityBarBadge.background\":\"#80CBC4\",\"activityBarBadge.foreground\":\"#000000\",\"badge.background\":\"#00000030\",\"badge.foreground\":\"#546E7A\",\"breadcrumb.activeSelectionForeground\":\"#80CBC4\",\"breadcrumb.background\":\"#263238\",\"breadcrumb.focusForeground\":\"#EEFFFF\",\"breadcrumb.foreground\":\"#6c8692\",\"breadcrumbPicker.background\":\"#263238\",\"button.background\":\"#80CBC420\",\"button.foreground\":\"#ffffff\",\"debugConsole.errorForeground\":\"#f07178\",\"debugConsole.infoForeground\":\"#89DDFF\",\"debugConsole.warningForeground\":\"#FFCB6B\",\"debugToolBar.background\":\"#263238\",\"diffEditor.insertedTextBackground\":\"#89DDFF20\",\"diffEditor.removedTextBackground\":\"#ff9cac20\",\"dropdown.background\":\"#263238\",\"dropdown.border\":\"#FFFFFF10\",\"editor.background\":\"#263238\",\"editor.findMatchBackground\":\"#000000\",\"editor.findMatchBorder\":\"#80CBC4\",\"editor.findMatchHighlight\":\"#EEFFFF\",\"editor.findMatchHighlightBackground\":\"#00000050\",\"editor.findMatchHighlightBorder\":\"#ffffff30\",\"editor.findRangeHighlightBackground\":\"#FFCB6B30\",\"editor.foreground\":\"#EEFFFF\",\"editor.lineHighlightBackground\":\"#00000050\",\"editor.lineHighlightBorder\":\"#00000000\",\"editor.rangeHighlightBackground\":\"#FFFFFF0d\",\"editor.selectionBackground\":\"#80CBC420\",\"editor.selectionHighlightBackground\":\"#FFCC0020\",\"editor.wordHighlightBackground\":\"#ff9cac30\",\"editor.wordHighlightStrongBackground\":\"#C3E88D30\",\"editorBracketMatch.background\":\"#263238\",\"editorBracketMatch.border\":\"#FFCC0050\",\"editorCursor.foreground\":\"#FFCC00\",\"editorError.foreground\":\"#f0717870\",\"editorGroup.border\":\"#00000030\",\"editorGroup.dropBackground\":\"#f0717880\",\"editorGroup.focusedEmptyBorder\":\"#f07178\",\"editorGroupHeader.tabsBackground\":\"#263238\",\"editorGutter.addedBackground\":\"#C3E88D60\",\"editorGutter.deletedBackground\":\"#f0717860\",\"editorGutter.modifiedBackground\":\"#82AAFF60\",\"editorHoverWidget.background\":\"#263238\",\"editorHoverWidget.border\":\"#FFFFFF10\",\"editorIndentGuide.activeBackground\":\"#37474F\",\"editorIndentGuide.background\":\"#37474F70\",\"editorInfo.foreground\":\"#82AAFF70\",\"editorLineNumber.activeForeground\":\"#6c8692\",\"editorLineNumber.foreground\":\"#465A64\",\"editorLink.activeForeground\":\"#EEFFFF\",\"editorMarkerNavigation.background\":\"#EEFFFF05\",\"editorOverviewRuler.border\":\"#263238\",\"editorOverviewRuler.errorForeground\":\"#f0717840\",\"editorOverviewRuler.findMatchForeground\":\"#80CBC4\",\"editorOverviewRuler.infoForeground\":\"#82AAFF40\",\"editorOverviewRuler.warningForeground\":\"#FFCB6B40\",\"editorRuler.foreground\":\"#37474F\",\"editorSuggestWidget.background\":\"#263238\",\"editorSuggestWidget.border\":\"#FFFFFF10\",\"editorSuggestWidget.foreground\":\"#EEFFFF\",\"editorSuggestWidget.highlightForeground\":\"#80CBC4\",\"editorSuggestWidget.selectedBackground\":\"#00000050\",\"editorWarning.foreground\":\"#FFCB6B70\",\"editorWhitespace.foreground\":\"#EEFFFF40\",\"editorWidget.background\":\"#263238\",\"editorWidget.border\":\"#80CBC4\",\"editorWidget.resizeBorder\":\"#80CBC4\",\"extensionBadge.remoteForeground\":\"#EEFFFF\",\"extensionButton.prominentBackground\":\"#C3E88D90\",\"extensionButton.prominentForeground\":\"#EEFFFF\",\"extensionButton.prominentHoverBackground\":\"#C3E88D\",\"focusBorder\":\"#FFFFFF00\",\"foreground\":\"#EEFFFF\",\"gitDecoration.conflictingResourceForeground\":\"#FFCB6B90\",\"gitDecoration.deletedResourceForeground\":\"#f0717890\",\"gitDecoration.ignoredResourceForeground\":\"#6c869290\",\"gitDecoration.modifiedResourceForeground\":\"#82AAFF90\",\"gitDecoration.untrackedResourceForeground\":\"#C3E88D90\",\"input.background\":\"#303C41\",\"input.border\":\"#FFFFFF10\",\"input.foreground\":\"#EEFFFF\",\"input.placeholderForeground\":\"#EEFFFF60\",\"inputOption.activeBackground\":\"#EEFFFF30\",\"inputOption.activeBorder\":\"#EEFFFF30\",\"inputValidation.errorBorder\":\"#f07178\",\"inputValidation.infoBorder\":\"#82AAFF\",\"inputValidation.warningBorder\":\"#FFCB6B\",\"list.activeSelectionBackground\":\"#263238\",\"list.activeSelectionForeground\":\"#80CBC4\",\"list.dropBackground\":\"#f0717880\",\"list.focusBackground\":\"#EEFFFF20\",\"list.focusForeground\":\"#EEFFFF\",\"list.highlightForeground\":\"#80CBC4\",\"list.hoverBackground\":\"#263238\",\"list.hoverForeground\":\"#FFFFFF\",\"list.inactiveSelectionBackground\":\"#00000030\",\"list.inactiveSelectionForeground\":\"#80CBC4\",\"listFilterWidget.background\":\"#00000030\",\"listFilterWidget.noMatchesOutline\":\"#00000030\",\"listFilterWidget.outline\":\"#00000030\",\"menu.background\":\"#263238\",\"menu.foreground\":\"#EEFFFF\",\"menu.selectionBackground\":\"#00000050\",\"menu.selectionBorder\":\"#00000030\",\"menu.selectionForeground\":\"#80CBC4\",\"menu.separatorBackground\":\"#EEFFFF\",\"menubar.selectionBackground\":\"#00000030\",\"menubar.selectionBorder\":\"#00000030\",\"menubar.selectionForeground\":\"#80CBC4\",\"notebook.focusedCellBorder\":\"#80CBC4\",\"notebook.inactiveFocusedCellBorder\":\"#80CBC450\",\"notificationLink.foreground\":\"#80CBC4\",\"notifications.background\":\"#263238\",\"notifications.foreground\":\"#EEFFFF\",\"panel.background\":\"#263238\",\"panel.border\":\"#26323860\",\"panel.dropBackground\":\"#EEFFFF\",\"panelTitle.activeBorder\":\"#80CBC4\",\"panelTitle.activeForeground\":\"#FFFFFF\",\"panelTitle.inactiveForeground\":\"#EEFFFF\",\"peekView.border\":\"#00000030\",\"peekViewEditor.background\":\"#303C41\",\"peekViewEditor.matchHighlightBackground\":\"#80CBC420\",\"peekViewEditorGutter.background\":\"#303C41\",\"peekViewResult.background\":\"#303C41\",\"peekViewResult.matchHighlightBackground\":\"#80CBC420\",\"peekViewResult.selectionBackground\":\"#6c869270\",\"peekViewTitle.background\":\"#303C41\",\"peekViewTitleDescription.foreground\":\"#EEFFFF60\",\"pickerGroup.border\":\"#FFFFFF1a\",\"pickerGroup.foreground\":\"#80CBC4\",\"progressBar.background\":\"#80CBC4\",\"quickInput.background\":\"#263238\",\"quickInput.foreground\":\"#6c8692\",\"quickInput.list.focusBackground\":\"#EEFFFF20\",\"sash.hoverBorder\":\"#80CBC450\",\"scrollbar.shadow\":\"#00000030\",\"scrollbarSlider.activeBackground\":\"#80CBC4\",\"scrollbarSlider.background\":\"#EEFFFF20\",\"scrollbarSlider.hoverBackground\":\"#EEFFFF10\",\"selection.background\":\"#00000080\",\"settings.checkboxBackground\":\"#263238\",\"settings.checkboxForeground\":\"#EEFFFF\",\"settings.dropdownBackground\":\"#263238\",\"settings.dropdownForeground\":\"#EEFFFF\",\"settings.headerForeground\":\"#80CBC4\",\"settings.modifiedItemIndicator\":\"#80CBC4\",\"settings.numberInputBackground\":\"#263238\",\"settings.numberInputForeground\":\"#EEFFFF\",\"settings.textInputBackground\":\"#263238\",\"settings.textInputForeground\":\"#EEFFFF\",\"sideBar.background\":\"#263238\",\"sideBar.border\":\"#26323860\",\"sideBar.foreground\":\"#6c8692\",\"sideBarSectionHeader.background\":\"#263238\",\"sideBarSectionHeader.border\":\"#26323860\",\"sideBarTitle.foreground\":\"#EEFFFF\",\"statusBar.background\":\"#263238\",\"statusBar.border\":\"#26323860\",\"statusBar.debuggingBackground\":\"#C792EA\",\"statusBar.debuggingForeground\":\"#ffffff\",\"statusBar.foreground\":\"#546E7A\",\"statusBar.noFolderBackground\":\"#263238\",\"statusBarItem.activeBackground\":\"#f0717880\",\"statusBarItem.hoverBackground\":\"#546E7A20\",\"statusBarItem.remoteBackground\":\"#80CBC4\",\"statusBarItem.remoteForeground\":\"#000000\",\"tab.activeBackground\":\"#263238\",\"tab.activeBorder\":\"#80CBC4\",\"tab.activeForeground\":\"#FFFFFF\",\"tab.activeModifiedBorder\":\"#6c8692\",\"tab.border\":\"#263238\",\"tab.inactiveBackground\":\"#263238\",\"tab.inactiveForeground\":\"#6c8692\",\"tab.inactiveModifiedBorder\":\"#904348\",\"tab.unfocusedActiveBorder\":\"#546E7A\",\"tab.unfocusedActiveForeground\":\"#EEFFFF\",\"tab.unfocusedActiveModifiedBorder\":\"#c05a60\",\"tab.unfocusedInactiveModifiedBorder\":\"#904348\",\"terminal.ansiBlack\":\"#000000\",\"terminal.ansiBlue\":\"#82AAFF\",\"terminal.ansiBrightBlack\":\"#546E7A\",\"terminal.ansiBrightBlue\":\"#82AAFF\",\"terminal.ansiBrightCyan\":\"#89DDFF\",\"terminal.ansiBrightGreen\":\"#C3E88D\",\"terminal.ansiBrightMagenta\":\"#C792EA\",\"terminal.ansiBrightRed\":\"#f07178\",\"terminal.ansiBrightWhite\":\"#ffffff\",\"terminal.ansiBrightYellow\":\"#FFCB6B\",\"terminal.ansiCyan\":\"#89DDFF\",\"terminal.ansiGreen\":\"#C3E88D\",\"terminal.ansiMagenta\":\"#C792EA\",\"terminal.ansiRed\":\"#f07178\",\"terminal.ansiWhite\":\"#ffffff\",\"terminal.ansiYellow\":\"#FFCB6B\",\"terminalCursor.background\":\"#000000\",\"terminalCursor.foreground\":\"#FFCB6B\",\"textLink.activeForeground\":\"#EEFFFF\",\"textLink.foreground\":\"#80CBC4\",\"titleBar.activeBackground\":\"#263238\",\"titleBar.activeForeground\":\"#EEFFFF\",\"titleBar.border\":\"#26323860\",\"titleBar.inactiveBackground\":\"#263238\",\"titleBar.inactiveForeground\":\"#6c8692\",\"tree.indentGuidesStroke\":\"#37474F\",\"widget.shadow\":\"#00000030\"},\"displayName\":\"Material Theme\",\"name\":\"material-theme\",\"semanticHighlighting\":true,\"tokenColors\":[{\"settings\":{\"background\":\"#263238\",\"foreground\":\"#EEFFFF\"}},{\"scope\":\"string\",\"settings\":{\"foreground\":\"#C3E88D\"}},{\"scope\":\"punctuation, constant.other.symbol\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"constant.character.escape, text.html constant.character.entity.named\",\"settings\":{\"foreground\":\"#EEFFFF\"}},{\"scope\":\"constant.language.boolean\",\"settings\":{\"foreground\":\"#ff9cac\"}},{\"scope\":\"constant.numeric\",\"settings\":{\"foreground\":\"#F78C6C\"}},{\"scope\":\"variable, variable.parameter, support.variable, variable.language, support.constant, meta.definition.variable entity.name.function, meta.function-call.arguments\",\"settings\":{\"foreground\":\"#EEFFFF\"}},{\"scope\":\"keyword.other\",\"settings\":{\"foreground\":\"#F78C6C\"}},{\"scope\":\"keyword, modifier, variable.language.this, support.type.object, constant.language\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"entity.name.function, support.function\",\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":\"storage.type, storage.modifier, storage.control\",\"settings\":{\"foreground\":\"#C792EA\"}},{\"scope\":\"support.module, support.node\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#f07178\"}},{\"scope\":\"support.type, constant.other.key\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"entity.name.type, entity.other.inherited-class, entity.other\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"comment\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#546E7A\"}},{\"scope\":\"comment punctuation.definition.comment, string.quoted.docstring\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#546E7A\"}},{\"scope\":\"punctuation\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"entity.name, entity.name.type.class, support.type, support.class, meta.use\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"variable.object.property, meta.field.declaration entity.name.function\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"meta.definition.method entity.name.function\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"meta.function entity.name.function\",\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":\"template.expression.begin, template.expression.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"meta.embedded, source.groovy.embedded, meta.template.expression\",\"settings\":{\"foreground\":\"#EEFFFF\"}},{\"scope\":\"entity.name.tag.yaml\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"meta.object-literal.key, meta.object-literal.key string, support.type.property-name.json\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"constant.language.json\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"entity.other.attribute-name.class\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"entity.other.attribute-name.id\",\"settings\":{\"foreground\":\"#F78C6C\"}},{\"scope\":\"source.css entity.name.tag\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"support.type.property-name.css\",\"settings\":{\"foreground\":\"#B2CCD6\"}},{\"scope\":\"meta.tag, punctuation.definition.tag\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"entity.name.tag\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"entity.other.attribute-name\",\"settings\":{\"foreground\":\"#C792EA\"}},{\"scope\":\"punctuation.definition.entity.html\",\"settings\":{\"foreground\":\"#EEFFFF\"}},{\"scope\":\"markup.heading\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"text.html.markdown meta.link.inline, meta.link.reference\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"text.html.markdown beginning.punctuation.definition.list\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"markup.italic\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#f07178\"}},{\"scope\":\"markup.bold\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#f07178\"}},{\"scope\":\"markup.bold markup.italic, markup.italic markup.bold\",\"settings\":{\"fontStyle\":\"italic bold\",\"foreground\":\"#f07178\"}},{\"scope\":\"markup.fenced_code.block.markdown punctuation.definition.markdown\",\"settings\":{\"foreground\":\"#C3E88D\"}},{\"scope\":\"markup.inline.raw.string.markdown\",\"settings\":{\"foreground\":\"#C3E88D\"}},{\"scope\":\"keyword.other.definition.ini\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"entity.name.section.group-title.ini\",\"settings\":{\"foreground\":\"#89DDFF\"}},{\"scope\":\"source.cs meta.class.identifier storage.type\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"source.cs meta.method.identifier entity.name.function\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"source.cs meta.method-call meta.method, source.cs entity.name.function\",\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":\"source.cs storage.type\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"source.cs meta.method.return-type\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"source.cs meta.preprocessor\",\"settings\":{\"foreground\":\"#546E7A\"}},{\"scope\":\"source.cs entity.name.type.namespace\",\"settings\":{\"foreground\":\"#EEFFFF\"}},{\"scope\":\"meta.jsx.children, SXNested\",\"settings\":{\"foreground\":\"#EEFFFF\"}},{\"scope\":\"support.class.component\",\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":\"source.cpp meta.block variable.other\",\"settings\":{\"foreground\":\"#EEFFFF\"}},{\"scope\":\"source.python meta.member.access.python\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"source.python meta.function-call.python, meta.function-call.arguments\",\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":\"meta.block\",\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":\"entity.name.function.call\",\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":\"source.php support.other.namespace, source.php meta.use support.class\",\"settings\":{\"foreground\":\"#EEFFFF\"}},{\"scope\":\"constant.keyword\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#89DDFF\"}},{\"scope\":\"entity.name.function\",\"settings\":{\"foreground\":\"#82AAFF\"}},{\"settings\":{\"background\":\"#263238\",\"foreground\":\"#EEFFFF\"}},{\"scope\":[\"constant.other.placeholder\"],\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":[\"markup.deleted\"],\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":[\"markup.inserted\"],\"settings\":{\"foreground\":\"#C3E88D\"}},{\"scope\":[\"markup.underline\"],\"settings\":{\"fontStyle\":\"underline\"}},{\"scope\":[\"keyword.control\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#89DDFF\"}},{\"scope\":[\"variable.parameter\"],\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":[\"variable.parameter.function.language.special.self.python\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#f07178\"}},{\"scope\":[\"constant.character.format.placeholder.other.python\"],\"settings\":{\"foreground\":\"#F78C6C\"}},{\"scope\":[\"markup.quote\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#89DDFF\"}},{\"scope\":[\"markup.fenced_code.block\"],\"settings\":{\"foreground\":\"#EEFFFF90\"}},{\"scope\":[\"punctuation.definition.quote\"],\"settings\":{\"foreground\":\"#ff9cac\"}},{\"scope\":[\"meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#C792EA\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#FFCB6B\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#F78C6C\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#f07178\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#916b53\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#82AAFF\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#ff9cac\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#C792EA\"}},{\"scope\":[\"meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#C3E88D\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/D5pd2Owo.js",
    "content": "import e from\"./C3t2pwGQ.js\";import n from\"./BMYPR7BL.js\";import t from\"./cPjAOO0u.js\";import a from\"./ySlJ1b_l.js\";import i from\"./BPhBrDlE.js\";import m from\"./COyJrUc7.js\";import r from\"./UIAJJxZW.js\";import\"./xI-RfyKK.js\";const o=Object.freeze(JSON.parse(`{\"displayName\":\"Nim\",\"fileTypes\":[\"nim\"],\"name\":\"nim\",\"patterns\":[{\"begin\":\"[ \\\\\\\\t]*##\\\\\\\\[\",\"contentName\":\"comment.block.doc-comment.content.nim\",\"end\":\"\\\\\\\\]##\",\"name\":\"comment.block.doc-comment.nim\",\"patterns\":[{\"include\":\"#multilinedoccomment\",\"name\":\"comment.block.doc-comment.nested.nim\"}]},{\"begin\":\"[ \\\\\\\\t]*#\\\\\\\\[\",\"contentName\":\"comment.block.content.nim\",\"end\":\"\\\\\\\\]#\",\"name\":\"comment.block.nim\",\"patterns\":[{\"include\":\"#multilinecomment\",\"name\":\"comment.block.nested.nim\"}]},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=##)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.nim\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"##\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.nim\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.number-sign.doc-comment.nim\"}]},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=#[^\\\\\\\\[])\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.nim\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.nim\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.number-sign.nim\"}]},{\"comment\":\"A nim procedure or method\",\"name\":\"meta.proc.nim\",\"patterns\":[{\"begin\":\"\\\\\\\\b(proc|method|template|macro|iterator|converter|func)\\\\\\\\s+\\\\\\\\\\`?([^\\\\\\\\:\\\\\\\\{\\\\\\\\s\\\\\\\\\\`\\\\\\\\*\\\\\\\\(]*)\\\\\\\\\\`?(\\\\\\\\s*\\\\\\\\*)?\\\\\\\\s*(?=\\\\\\\\(|\\\\\\\\=|:|\\\\\\\\[|\\\\\\\\n|\\\\\\\\{)\",\"captures\":{\"1\":{\"name\":\"keyword.other\"},\"2\":{\"name\":\"entity.name.function.nim\"},\"3\":{\"name\":\"keyword.control.export\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"source.nim\"}]}]},{\"begin\":\"discard \\\\\"\\\\\"\\\\\"\",\"comment\":\"A discarded triple string literal comment\",\"end\":\"\\\\\"\\\\\"\\\\\"(?!\\\\\")\",\"name\":\"comment.line.discarded.nim\"},{\"include\":\"#float_literal\"},{\"include\":\"#integer_literal\"},{\"comment\":\"Operator as function name\",\"match\":\"(?<=\\\\\\\\\\`)[^\\\\\\\\\\` ]+(?=\\\\\\\\\\`)\",\"name\":\"entity.name.function.nim\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.export\"}},\"comment\":\"Export qualifier.\",\"match\":\"\\\\\\\\b\\\\\\\\s*(\\\\\\\\*)(?:\\\\\\\\s*(?=[,:])|\\\\\\\\s+(?=[=]))\"},{\"captures\":{\"1\":{\"name\":\"support.type.nim\"},\"2\":{\"name\":\"keyword.control.export\"}},\"comment\":\"Export qualifier following a type def.\",\"match\":\"\\\\\\\\b([A-Z]\\\\\\\\w+)(\\\\\\\\*)\"},{\"include\":\"#string_literal\"},{\"comment\":\"Language Constants.\",\"match\":\"\\\\\\\\b(true|false|Inf|NegInf|NaN|nil)\\\\\\\\b\",\"name\":\"constant.language.nim\"},{\"comment\":\"Keywords that affect program control flow or scope.\",\"match\":\"\\\\\\\\b(block|break|case|continue|do|elif|else|end|except|finally|for|if|raise|return|try|when|while|yield)\\\\\\\\b\",\"name\":\"keyword.control.nim\"},{\"comment\":\"Keyword boolean operators for expressions.\",\"match\":\"(\\\\\\\\b(and|in|is|isnot|not|notin|or|xor)\\\\\\\\b)\",\"name\":\"keyword.boolean.nim\"},{\"comment\":\"Generic operators for expressions.\",\"match\":\"(=|\\\\\\\\+|-|\\\\\\\\*|/|<|>|@|\\\\\\\\$|~|&|%|!|\\\\\\\\?|\\\\\\\\^|\\\\\\\\.|:|\\\\\\\\\\\\\\\\)+\",\"name\":\"keyword.operator.nim\"},{\"comment\":\"Other keywords.\",\"match\":\"(\\\\\\\\b(addr|as|asm|atomic|bind|cast|const|converter|concept|defer|discard|distinct|div|enum|export|from|import|include|let|mod|mixin|object|of|ptr|ref|shl|shr|static|type|using|var|tuple|iterator|macro|func|method|proc|template)\\\\\\\\b)\",\"name\":\"keyword.other.nim\"},{\"comment\":\"Invalid and unused keywords.\",\"match\":\"(\\\\\\\\b(generic|interface|lambda|out|shared)\\\\\\\\b)\",\"name\":\"invalid.illegal.invalid-keyword.nim\"},{\"comment\":\"Common functions\",\"match\":\"\\\\\\\\b(new|await|assert|echo|defined|declared|newException|countup|countdown|high|low)\\\\\\\\b\",\"name\":\"keyword.other.common.function.nim\"},{\"comment\":\"Built-in, concrete types.\",\"match\":\"\\\\\\\\b(((uint|int)(8|16|32|64)?)|float(32|64)?|bool|string|auto|cstring|char|byte|tobject|typedesc|stmt|expr|any|untyped|typed)\\\\\\\\b\",\"name\":\"storage.type.concrete.nim\"},{\"comment\":\"Built-in, generic types.\",\"match\":\"\\\\\\\\b(range|array|seq|set|pointer)\\\\\\\\b\",\"name\":\"storage.type.generic.nim\"},{\"comment\":\"Special types.\",\"match\":\"\\\\\\\\b(openarray|varargs|void)\\\\\\\\b\",\"name\":\"storage.type.generic.nim\"},{\"comment\":\"Other constants.\",\"match\":\"\\\\\\\\b[A-Z][A-Z0-9_]+\\\\\\\\b\",\"name\":\"support.constant.nim\"},{\"comment\":\"Other types.\",\"match\":\"\\\\\\\\b[A-Z]\\\\\\\\w+\\\\\\\\b\",\"name\":\"support.type.nim\"},{\"comment\":\"Function call.\",\"match\":\"\\\\\\\\b\\\\\\\\w+\\\\\\\\b(?=(\\\\\\\\[([a-zA-Z0-9_,]|\\\\\\\\s)+\\\\\\\\])?\\\\\\\\()\",\"name\":\"support.function.any-method.nim\"},{\"comment\":\"Function call (no parenthesis).\",\"match\":\"(?!(openarray|varargs|void|range|array|seq|set|pointer|new|await|assert|echo|defined|declared|newException|countup|countdown|high|low|((uint|int)(8|16|32|64)?)|float(32|64)?|bool|string|auto|cstring|char|byte|tobject|typedesc|stmt|expr|any|untyped|typed|addr|as|asm|atomic|bind|cast|const|converter|concept|defer|discard|distinct|div|enum|export|from|import|include|let|mod|mixin|object|of|ptr|ref|shl|shr|static|type|using|var|tuple|iterator|macro|func|method|proc|template|and|in|is|isnot|not|notin|or|xor|proc|method|template|macro|iterator|converter|func|true|false|Inf|NegInf|NaN|nil|block|break|case|continue|do|elif|else|end|except|finally|for|if|raise|return|try|when|while|yield)\\\\\\\\b)\\\\\\\\w+\\\\\\\\s+(?!(and|in|is|isnot|not|notin|or|xor|[^a-zA-Z0-9_\\\\\"'\\`(-+]+)\\\\\\\\b)(?=[a-zA-Z0-9_\\\\\"'\\`(-+])\",\"name\":\"support.function.any-method.nim\"},{\"begin\":\"(^\\\\\\\\s*)?(?=\\\\\\\\{\\\\\\\\.emit: ?\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.whitespace.embedded.leading.nim\"}},\"end\":\"(?!\\\\\\\\G)(\\\\\\\\s*$\\\\\\\\n?)?\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.whitespace.embedded.trailing.nim\"}},\"patterns\":[{\"begin\":\"\\\\\\\\{\\\\\\\\.(emit:) ?(\\\\\"\\\\\"\\\\\")\",\"captures\":{\"1\":{\"name\":\"keyword.other.nim\"},\"2\":{\"name\":\"punctuation.section.embedded.begin.nim\"}},\"contentName\":\"source.c\",\"end\":\"(\\\\\")\\\\\"\\\\\"(?!\\\\\")(\\\\\\\\.{0,1}\\\\\\\\})?\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.nim\"},\"1\":{\"name\":\"source.c\"}},\"name\":\"meta.embedded.block.c\",\"patterns\":[{\"begin\":\"\\\\\\\\\\`\",\"end\":\"\\\\\\\\\\`\",\"name\":\"keyword.operator.nim\"},{\"include\":\"source.c\"}]}]},{\"begin\":\"\\\\\\\\{\\\\\\\\.\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.pragma.start.nim\"}},\"end\":\"\\\\\\\\.?\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.pragma.end.nim\"}},\"patterns\":[{\"begin\":\"\\\\\\\\b([[:alpha:]]\\\\\\\\w*)(?:\\\\\\\\s|\\\\\\\\s*:)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.preprocessor.pragma.nim\"}},\"end\":\"(?=\\\\\\\\.?\\\\\\\\}|,)\",\"patterns\":[{\"include\":\"source.nim\"}]},{\"begin\":\"\\\\\\\\b([[:alpha:]]\\\\\\\\w*)\\\\\\\\(\",\"beginCaptures\":{\"1\":{\"name\":\"meta.preprocessor.pragma.nim\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"source.nim\"}]},{\"captures\":{\"1\":{\"name\":\"meta.preprocessor.pragma.nim\"}},\"match\":\"\\\\\\\\b([[:alpha:]]\\\\\\\\w*)(?=\\\\\\\\.?\\\\\\\\}|,)\"},{\"begin\":\"\\\\\\\\b([[:alpha:]]\\\\\\\\w*)(\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"meta.preprocessor.pragma.nim\"},\"2\":{\"name\":\"punctuation.definition.string.begin.nim\"}},\"end\":\"\\\\\"\\\\\"\\\\\"(?!\\\\\")\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.nim\"}},\"name\":\"string.quoted.triple.raw.nim\"},{\"begin\":\"\\\\\\\\b([[:alpha:]]\\\\\\\\w*)(\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"meta.preprocessor.pragma.nim\"},\"2\":{\"name\":\"punctuation.definition.string.begin.nim\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.nim\"}},\"name\":\"string.quoted.double.raw.nim\"},{\"begin\":\"\\\\\\\\b(hint\\\\\\\\[\\\\\\\\w+\\\\\\\\]):\",\"beginCaptures\":{\"1\":{\"name\":\"meta.preprocessor.pragma.nim\"}},\"end\":\"(?=\\\\\\\\.?\\\\\\\\}|,)\",\"patterns\":[{\"include\":\"source.nim\"}]},{\"match\":\",\",\"name\":\"punctuation.separator.comma.nim\"}]},{\"begin\":\"(^\\\\\\\\s*)?(?=asm \\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.whitespace.embedded.leading.nim\"}},\"end\":\"(?!\\\\\\\\G)(\\\\\\\\s*$\\\\\\\\n?)?\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.whitespace.embedded.trailing.nim\"}},\"patterns\":[{\"begin\":\"(asm) (\\\\\"\\\\\"\\\\\")\",\"captures\":{\"1\":{\"name\":\"keyword.other.nim\"},\"2\":{\"name\":\"punctuation.section.embedded.begin.nim\"}},\"contentName\":\"source.asm\",\"end\":\"(\\\\\")\\\\\"\\\\\"(?!\\\\\")\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.nim\"},\"1\":{\"name\":\"source.asm\"}},\"name\":\"meta.embedded.block.asm\",\"patterns\":[{\"begin\":\"\\\\\\\\\\`\",\"end\":\"\\\\\\\\\\`\",\"name\":\"keyword.operator.nim\"},{\"include\":\"source.asm\"}]}]},{\"captures\":{\"1\":{\"name\":\"storage.type.function.nim\"},\"2\":{\"name\":\"keyword.operator.nim\"}},\"comment\":\"tmpl specifier\",\"match\":\"(tmpl(i)?)(?=( (html|xml|js|css|glsl|md))?\\\\\"\\\\\"\\\\\")\"},{\"begin\":\"(^\\\\\\\\s*)?(?=html\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.whitespace.embedded.leading.nim\"}},\"end\":\"(?!\\\\\\\\G)(\\\\\\\\s*$\\\\\\\\n?)?\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.whitespace.embedded.trailing.nim\"}},\"patterns\":[{\"begin\":\"(html)(\\\\\"\\\\\"\\\\\")\",\"captures\":{\"1\":{\"name\":\"keyword.other.nim\"},\"2\":{\"name\":\"punctuation.section.embedded.begin.nim\"}},\"contentName\":\"text.html\",\"end\":\"(\\\\\")\\\\\"\\\\\"(?!\\\\\")\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.nim\"},\"1\":{\"name\":\"text.html\"}},\"name\":\"meta.embedded.block.html\",\"patterns\":[{\"begin\":\"(?<!\\\\\\\\$)(\\\\\\\\$)\\\\\\\\(\",\"captures\":{\"1\":{\"name\":\"keyword.operator.nim\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"source.nim\"}]},{\"begin\":\"(?<!\\\\\\\\$)(\\\\\\\\$)\\\\\\\\{\",\"captures\":{\"1\":{\"name\":\"keyword.operator.nim\"},\"2\":{\"name\":\"keyword.operator.nim\"}},\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"source.nim\"}]},{\"begin\":\"(?<!\\\\\\\\$)(\\\\\\\\$)(for|while|case|of|when|if|else|elif)( )\",\"captures\":{\"1\":{\"name\":\"keyword.operator.nim\"},\"2\":{\"name\":\"keyword.operator.nim\"}},\"end\":\"(\\\\\\\\{|\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"plain\"}},\"patterns\":[{\"include\":\"source.nim\"}]},{\"match\":\"(?<!\\\\\\\\$)(\\\\\\\\$\\\\\\\\w+)\",\"name\":\"keyword.operator.nim\"},{\"include\":\"text.html.basic\"}]}]},{\"begin\":\"(^\\\\\\\\s*)?(?=xml\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.whitespace.embedded.leading.nim\"}},\"end\":\"(?!\\\\\\\\G)(\\\\\\\\s*$\\\\\\\\n?)?\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.whitespace.embedded.trailing.nim\"}},\"patterns\":[{\"begin\":\"(xml)(\\\\\"\\\\\"\\\\\")\",\"captures\":{\"1\":{\"name\":\"keyword.other.nim\"},\"2\":{\"name\":\"punctuation.section.embedded.begin.nim\"}},\"contentName\":\"text.xml\",\"end\":\"(\\\\\")\\\\\"\\\\\"(?!\\\\\")\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.nim\"},\"1\":{\"name\":\"text.xml\"}},\"name\":\"meta.embedded.block.xml\",\"patterns\":[{\"begin\":\"(?<!\\\\\\\\$)(\\\\\\\\$)\\\\\\\\(\",\"captures\":{\"1\":{\"name\":\"keyword.operator.nim\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"source.nim\"}]},{\"begin\":\"(?<!\\\\\\\\$)(\\\\\\\\$)\\\\\\\\{\",\"captures\":{\"1\":{\"name\":\"keyword.operator.nim\"},\"2\":{\"name\":\"keyword.operator.nim\"}},\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"source.nim\"}]},{\"begin\":\"(?<!\\\\\\\\$)(\\\\\\\\$)(for|while|case|of|when|if|else|elif)( )\",\"captures\":{\"1\":{\"name\":\"keyword.operator.nim\"},\"2\":{\"name\":\"keyword.operator.nim\"}},\"end\":\"(\\\\\\\\{|\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"plain\"}},\"patterns\":[{\"include\":\"source.nim\"}]},{\"match\":\"(?<!\\\\\\\\$)(\\\\\\\\$\\\\\\\\w+)\",\"name\":\"keyword.operator.nim\"},{\"include\":\"text.xml\"}]}]},{\"begin\":\"(^\\\\\\\\s*)?(?=js\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.whitespace.embedded.leading.nim\"}},\"end\":\"(?!\\\\\\\\G)(\\\\\\\\s*$\\\\\\\\n?)?\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.whitespace.embedded.trailing.nim\"}},\"patterns\":[{\"begin\":\"(js)(\\\\\"\\\\\"\\\\\")\",\"captures\":{\"1\":{\"name\":\"keyword.other.nim\"},\"2\":{\"name\":\"punctuation.section.embedded.begin.nim\"}},\"contentName\":\"source.js\",\"end\":\"(\\\\\")\\\\\"\\\\\"(?!\\\\\")\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.nim\"},\"1\":{\"name\":\"source.js\"}},\"name\":\"meta.embedded.block.js\",\"patterns\":[{\"begin\":\"(?<!\\\\\\\\$)(\\\\\\\\$)\\\\\\\\(\",\"captures\":{\"1\":{\"name\":\"keyword.operator.nim\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"source.nim\"}]},{\"begin\":\"(?<!\\\\\\\\$)(\\\\\\\\$)\\\\\\\\{\",\"captures\":{\"1\":{\"name\":\"keyword.operator.nim\"},\"2\":{\"name\":\"keyword.operator.nim\"}},\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"source.nim\"}]},{\"begin\":\"(?<!\\\\\\\\$)(\\\\\\\\$)(for|while|case|of|when|if|else|elif)( )\",\"captures\":{\"1\":{\"name\":\"keyword.operator.nim\"},\"2\":{\"name\":\"keyword.operator.nim\"}},\"end\":\"(\\\\\\\\{|\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"plain\"}},\"patterns\":[{\"include\":\"source.nim\"}]},{\"match\":\"(?<!\\\\\\\\$)(\\\\\\\\$\\\\\\\\w+)\",\"name\":\"keyword.operator.nim\"},{\"include\":\"source.js\"}]}]},{\"begin\":\"(^\\\\\\\\s*)?(?=css\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.whitespace.embedded.leading.nim\"}},\"end\":\"(?!\\\\\\\\G)(\\\\\\\\s*$\\\\\\\\n?)?\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.whitespace.embedded.trailing.nim\"}},\"patterns\":[{\"begin\":\"(css)(\\\\\"\\\\\"\\\\\")\",\"captures\":{\"1\":{\"name\":\"keyword.other.nim\"},\"2\":{\"name\":\"punctuation.section.embedded.begin.nim\"}},\"contentName\":\"source.css\",\"end\":\"(\\\\\")\\\\\"\\\\\"(?!\\\\\")\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.nim\"},\"1\":{\"name\":\"source.css\"}},\"name\":\"meta.embedded.block.css\",\"patterns\":[{\"begin\":\"(?<!\\\\\\\\$)(\\\\\\\\$)\\\\\\\\(\",\"captures\":{\"1\":{\"name\":\"keyword.operator.nim\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"source.nim\"}]},{\"begin\":\"(?<!\\\\\\\\$)(\\\\\\\\$)\\\\\\\\{\",\"captures\":{\"1\":{\"name\":\"keyword.operator.nim\"},\"2\":{\"name\":\"keyword.operator.nim\"}},\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"source.nim\"}]},{\"begin\":\"(?<!\\\\\\\\$)(\\\\\\\\$)(for|while|case|of|when|if|else|elif)( )\",\"captures\":{\"1\":{\"name\":\"keyword.operator.nim\"},\"2\":{\"name\":\"keyword.operator.nim\"}},\"end\":\"(\\\\\\\\{|\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"plain\"}},\"patterns\":[{\"include\":\"source.nim\"}]},{\"match\":\"(?<!\\\\\\\\$)(\\\\\\\\$\\\\\\\\w+)\",\"name\":\"keyword.operator.nim\"},{\"include\":\"source.css\"}]}]},{\"begin\":\"(^\\\\\\\\s*)?(?=glsl\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.whitespace.embedded.leading.nim\"}},\"end\":\"(?!\\\\\\\\G)(\\\\\\\\s*$\\\\\\\\n?)?\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.whitespace.embedded.trailing.nim\"}},\"patterns\":[{\"begin\":\"(glsl)(\\\\\"\\\\\"\\\\\")\",\"captures\":{\"1\":{\"name\":\"keyword.other.nim\"},\"2\":{\"name\":\"punctuation.section.embedded.begin.nim\"}},\"contentName\":\"source.glsl\",\"end\":\"(\\\\\")\\\\\"\\\\\"(?!\\\\\")\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.nim\"},\"1\":{\"name\":\"source.glsl\"}},\"name\":\"meta.embedded.block.glsl\",\"patterns\":[{\"begin\":\"(?<!\\\\\\\\$)(\\\\\\\\$)\\\\\\\\(\",\"captures\":{\"1\":{\"name\":\"keyword.operator.nim\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"source.nim\"}]},{\"begin\":\"(?<!\\\\\\\\$)(\\\\\\\\$)\\\\\\\\{\",\"captures\":{\"1\":{\"name\":\"keyword.operator.nim\"},\"2\":{\"name\":\"keyword.operator.nim\"}},\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"source.nim\"}]},{\"begin\":\"(?<!\\\\\\\\$)(\\\\\\\\$)(for|while|case|of|when|if|else|elif)( )\",\"captures\":{\"1\":{\"name\":\"keyword.operator.nim\"},\"2\":{\"name\":\"keyword.operator.nim\"}},\"end\":\"(\\\\\\\\{|\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"plain\"}},\"patterns\":[{\"include\":\"source.nim\"}]},{\"match\":\"(?<!\\\\\\\\$)(\\\\\\\\$\\\\\\\\w+)\",\"name\":\"keyword.operator.nim\"},{\"include\":\"source.glsl\"}]}]},{\"begin\":\"(^\\\\\\\\s*)?(?=md\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.whitespace.embedded.leading.nim\"}},\"end\":\"(?!\\\\\\\\G)(\\\\\\\\s*$\\\\\\\\n?)?\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.whitespace.embedded.trailing.nim\"}},\"patterns\":[{\"begin\":\"(md)(\\\\\"\\\\\"\\\\\")\",\"captures\":{\"1\":{\"name\":\"keyword.other.nim\"},\"2\":{\"name\":\"punctuation.section.embedded.begin.nim\"}},\"contentName\":\"text.html.markdown\",\"end\":\"(\\\\\")\\\\\"\\\\\"(?!\\\\\")\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.nim\"},\"1\":{\"name\":\"text.html.markdown\"}},\"name\":\"meta.embedded.block.html.markdown\",\"patterns\":[{\"begin\":\"(?<!\\\\\\\\$)(\\\\\\\\$)\\\\\\\\(\",\"captures\":{\"1\":{\"name\":\"keyword.operator.nim\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"source.nim\"}]},{\"begin\":\"(?<!\\\\\\\\$)(\\\\\\\\$)\\\\\\\\{\",\"captures\":{\"1\":{\"name\":\"keyword.operator.nim\"},\"2\":{\"name\":\"keyword.operator.nim\"}},\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"source.nim\"}]},{\"begin\":\"(?<!\\\\\\\\$)(\\\\\\\\$)(for|while|case|of|when|if|else|elif)( )\",\"captures\":{\"1\":{\"name\":\"keyword.operator.nim\"},\"2\":{\"name\":\"keyword.operator.nim\"}},\"end\":\"(\\\\\\\\{|\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"plain\"}},\"patterns\":[{\"include\":\"source.nim\"}]},{\"match\":\"(?<!\\\\\\\\$)(\\\\\\\\$\\\\\\\\w+)\",\"name\":\"keyword.operator.nim\"},{\"include\":\"text.html.markdown\"}]}]}],\"repository\":{\"char_escapes\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[cC]|\\\\\\\\\\\\\\\\[rR]\",\"name\":\"constant.character.escape.carriagereturn.nim\"},{\"match\":\"\\\\\\\\\\\\\\\\[lL]|\\\\\\\\\\\\\\\\[nN]\",\"name\":\"constant.character.escape.linefeed.nim\"},{\"match\":\"\\\\\\\\\\\\\\\\[fF]\",\"name\":\"constant.character.escape.formfeed.nim\"},{\"match\":\"\\\\\\\\\\\\\\\\[tT]\",\"name\":\"constant.character.escape.tabulator.nim\"},{\"match\":\"\\\\\\\\\\\\\\\\[vV]\",\"name\":\"constant.character.escape.verticaltabulator.nim\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\",\"name\":\"constant.character.escape.double-quote.nim\"},{\"match\":\"\\\\\\\\\\\\\\\\'\",\"name\":\"constant.character.escape.single-quote.nim\"},{\"match\":\"\\\\\\\\\\\\\\\\[0-9]+\",\"name\":\"constant.character.escape.chardecimalvalue.nim\"},{\"match\":\"\\\\\\\\\\\\\\\\[aA]\",\"name\":\"constant.character.escape.alert.nim\"},{\"match\":\"\\\\\\\\\\\\\\\\[bB]\",\"name\":\"constant.character.escape.backspace.nim\"},{\"match\":\"\\\\\\\\\\\\\\\\[eE]\",\"name\":\"constant.character.escape.escape.nim\"},{\"match\":\"\\\\\\\\\\\\\\\\[xX]\\\\\\\\h\\\\\\\\h\",\"name\":\"constant.character.escape.hex.nim\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\"name\":\"constant.character.escape.backslash.nim\"}]},\"extended_string_quoted_double_raw\":{\"begin\":\"\\\\\\\\b(\\\\\\\\w+)(\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.any-method.nim\"},\"2\":{\"name\":\"punctuation.definition.string.begin.nim\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.nim\"}},\"name\":\"string.quoted.double.raw.nim\",\"patterns\":[{\"include\":\"#raw_string_escapes\"}]},\"extended_string_quoted_triple_raw\":{\"begin\":\"\\\\\\\\b(\\\\\\\\w+)(\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.any-method.nim\"},\"2\":{\"name\":\"punctuation.definition.string.begin.nim\"}},\"end\":\"\\\\\"\\\\\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.nim\"}},\"name\":\"string.quoted.triple.raw.nim\"},\"float_literal\":{\"patterns\":[{\"match\":\"\\\\\\\\b\\\\\\\\d[_\\\\\\\\d]*((\\\\\\\\.\\\\\\\\d[_\\\\\\\\d]*([eE][\\\\\\\\+\\\\\\\\-]?\\\\\\\\d[_\\\\\\\\d]*)?)|([eE][\\\\\\\\+\\\\\\\\-]?\\\\\\\\d[_\\\\\\\\d]*))('([fF](32|64|128)|[fFdD]))?\",\"name\":\"constant.numeric.float.decimal.nim\"},{\"match\":\"\\\\\\\\b0[xX]\\\\\\\\h[_\\\\\\\\h]*'([fF](32|64|128)|[fFdD])\",\"name\":\"constant.numeric.float.hexadecimal.nim\"},{\"match\":\"\\\\\\\\b0o[0-7][_0-7]*'([fF](32|64|128)|[fFdD])\",\"name\":\"constant.numeric.float.octal.nim\"},{\"match\":\"\\\\\\\\b0(b|B)[01][_01]*'([fF](32|64|128)|[fFdD])\",\"name\":\"constant.numeric.float.binary.nim\"},{\"match\":\"\\\\\\\\b(\\\\\\\\d[_\\\\\\\\d]*)'([fF](32|64|128)|[fFdD])\",\"name\":\"constant.numeric.float.decimal.nim\"}]},\"fmt_interpolation\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.begin.nim\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.end.nim\"}},\"name\":\"meta.template.expression.nim\",\"patterns\":[{\"begin\":\":\",\"end\":\"(?=\\\\\\\\})\",\"name\":\"meta.template.format-specifier.nim\"},{\"include\":\"source.nim\"}]},\"fmt_string\":{\"begin\":\"\\\\\\\\b(fmt)(\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.any-method.nim\"},\"2\":{\"name\":\"punctuation.definition.string.begin.nim\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.nim\"}},\"name\":\"string.quoted.double.raw.nim\",\"patterns\":[{\"match\":\"(?<!\\\\\")\\\\\"(?!\\\\\")\",\"name\":\"invalid.illegal.nim\"},{\"include\":\"#raw_string_escapes\"},{\"include\":\"#fmt_interpolation\"}]},\"fmt_string_call\":{\"begin\":\"(fmt)\\\\\\\\((?=\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.any-method.nim\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.nim\"}},\"end\":\"\\\\\"(?=\\\\\\\\))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.nim\"}},\"name\":\"string.quoted.double.nim\",\"patterns\":[{\"match\":\"\\\\\"\",\"name\":\"invalid.illegal.nim\"},{\"include\":\"#string_escapes\"},{\"include\":\"#fmt_interpolation\"}]}]},\"fmt_string_operator\":{\"begin\":\"(&)(\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.nim\"},\"2\":{\"name\":\"punctuation.definition.string.begin.nim\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.nim\"}},\"name\":\"string.quoted.double.nim\",\"patterns\":[{\"match\":\"\\\\\"\",\"name\":\"invalid.illegal.nim\"},{\"include\":\"#string_escapes\"},{\"include\":\"#fmt_interpolation\"}]},\"fmt_string_triple\":{\"begin\":\"\\\\\\\\b(fmt)(\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.any-method.nim\"},\"2\":{\"name\":\"punctuation.definition.string.begin.nim\"}},\"end\":\"\\\\\"\\\\\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.nim\"}},\"name\":\"string.quoted.triple.raw.nim\",\"patterns\":[{\"include\":\"#fmt_interpolation\"}]},\"fmt_string_triple_operator\":{\"begin\":\"(&)(\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.nim\"},\"2\":{\"name\":\"punctuation.definition.string.begin.nim\"}},\"end\":\"\\\\\"\\\\\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.nim\"}},\"name\":\"string.quoted.triple.raw.nim\",\"patterns\":[{\"include\":\"#fmt_interpolation\"}]},\"integer_literal\":{\"patterns\":[{\"match\":\"\\\\\\\\b(0[xX]\\\\\\\\h[_\\\\\\\\h]*)('(([iIuU](8|16|32|64))|[uU]))?\",\"name\":\"constant.numeric.integer.hexadecimal.nim\"},{\"match\":\"\\\\\\\\b(0o[0-7][_0-7]*)('(([iIuU](8|16|32|64))|[uU]))?\",\"name\":\"constant.numeric.integer.octal.nim\"},{\"match\":\"\\\\\\\\b(0(b|B)[01][_01]*)('(([iIuU](8|16|32|64))|[uU]))?\",\"name\":\"constant.numeric.integer.binary.nim\"},{\"match\":\"\\\\\\\\b(\\\\\\\\d[_\\\\\\\\d]*)('(([iIuU](8|16|32|64))|[uU]))?\",\"name\":\"constant.numeric.integer.decimal.nim\"}]},\"multilinecomment\":{\"begin\":\"#\\\\\\\\[\",\"end\":\"\\\\\\\\]#\",\"patterns\":[{\"include\":\"#multilinecomment\"}]},\"multilinedoccomment\":{\"begin\":\"##\\\\\\\\[\",\"end\":\"\\\\\\\\]##\",\"patterns\":[{\"include\":\"#multilinedoccomment\"}]},\"raw_string_escapes\":{\"captures\":{\"1\":{\"name\":\"constant.character.escape.double-quote.nim\"}},\"match\":\"[^\\\\\"](\\\\\"\\\\\")\"},\"string_escapes\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[pP]\",\"name\":\"constant.character.escape.newline.nim\"},{\"match\":\"\\\\\\\\\\\\\\\\[uU]\\\\\\\\h\\\\\\\\h\\\\\\\\h\\\\\\\\h\",\"name\":\"constant.character.escape.hex.nim\"},{\"match\":\"\\\\\\\\\\\\\\\\[uU]\\\\\\\\{\\\\\\\\h+\\\\\\\\}\",\"name\":\"constant.character.escape.hex.nim\"},{\"include\":\"#char_escapes\"}]},\"string_literal\":{\"patterns\":[{\"include\":\"#fmt_string_triple\"},{\"include\":\"#fmt_string_triple_operator\"},{\"include\":\"#extended_string_quoted_triple_raw\"},{\"include\":\"#string_quoted_triple_raw\"},{\"include\":\"#fmt_string_operator\"},{\"include\":\"#fmt_string\"},{\"include\":\"#fmt_string_call\"},{\"include\":\"#string_quoted_double_raw\"},{\"include\":\"#extended_string_quoted_double_raw\"},{\"include\":\"#string_quoted_single\"},{\"include\":\"#string_quoted_triple\"},{\"include\":\"#string_quoted_double\"}]},\"string_quoted_double\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.nim\"}},\"comment\":\"Double Quoted String\",\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.nim\"}},\"name\":\"string.quoted.double.nim\",\"patterns\":[{\"include\":\"#string_escapes\"}]},\"string_quoted_double_raw\":{\"begin\":\"\\\\\\\\br\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.nim\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.nim\"}},\"name\":\"string.quoted.double.raw.nim\",\"patterns\":[{\"include\":\"#raw_string_escapes\"}]},\"string_quoted_single\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.nim\"}},\"comment\":\"Single quoted character literal\",\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.nim\"}},\"name\":\"string.quoted.single.nim\",\"patterns\":[{\"include\":\"#char_escapes\"},{\"match\":\"([^']{2,}?)\",\"name\":\"invalid.illegal.character.nim\"}]},\"string_quoted_triple\":{\"begin\":\"\\\\\"\\\\\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.nim\"}},\"comment\":\"Triple Quoted String\",\"end\":\"\\\\\"\\\\\"\\\\\"(?!\\\\\")\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.nim\"}},\"name\":\"string.quoted.triple.nim\"},\"string_quoted_triple_raw\":{\"begin\":\"r\\\\\"\\\\\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.nim\"}},\"comment\":\"Raw Triple Quoted String\",\"end\":\"\\\\\"\\\\\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.nim\"}},\"name\":\"string.quoted.triple.raw.nim\"}},\"scopeName\":\"source.nim\",\"embeddedLangs\":[\"c\",\"html\",\"xml\",\"javascript\",\"css\",\"glsl\",\"markdown\"]}`)),h=[...e,...n,...t,...a,...i,...m,...r,o];export{h as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/D7lU1fdU.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var E={comments:{lineComment:\"--\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},T={defaultToken:\"\",tokenPostfix:\".sql\",ignoreCase:!0,brackets:[{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],keywords:[\"ABORT\",\"ABSOLUTE\",\"ACTION\",\"ADA\",\"ADD\",\"AFTER\",\"ALL\",\"ALLOCATE\",\"ALTER\",\"ALWAYS\",\"ANALYZE\",\"AND\",\"ANY\",\"ARE\",\"AS\",\"ASC\",\"ASSERTION\",\"AT\",\"ATTACH\",\"AUTHORIZATION\",\"AUTOINCREMENT\",\"AVG\",\"BACKUP\",\"BEFORE\",\"BEGIN\",\"BETWEEN\",\"BIT\",\"BIT_LENGTH\",\"BOTH\",\"BREAK\",\"BROWSE\",\"BULK\",\"BY\",\"CASCADE\",\"CASCADED\",\"CASE\",\"CAST\",\"CATALOG\",\"CHAR\",\"CHARACTER\",\"CHARACTER_LENGTH\",\"CHAR_LENGTH\",\"CHECK\",\"CHECKPOINT\",\"CLOSE\",\"CLUSTERED\",\"COALESCE\",\"COLLATE\",\"COLLATION\",\"COLUMN\",\"COMMIT\",\"COMPUTE\",\"CONFLICT\",\"CONNECT\",\"CONNECTION\",\"CONSTRAINT\",\"CONSTRAINTS\",\"CONTAINS\",\"CONTAINSTABLE\",\"CONTINUE\",\"CONVERT\",\"CORRESPONDING\",\"COUNT\",\"CREATE\",\"CROSS\",\"CURRENT\",\"CURRENT_DATE\",\"CURRENT_TIME\",\"CURRENT_TIMESTAMP\",\"CURRENT_USER\",\"CURSOR\",\"DATABASE\",\"DATE\",\"DAY\",\"DBCC\",\"DEALLOCATE\",\"DEC\",\"DECIMAL\",\"DECLARE\",\"DEFAULT\",\"DEFERRABLE\",\"DEFERRED\",\"DELETE\",\"DENY\",\"DESC\",\"DESCRIBE\",\"DESCRIPTOR\",\"DETACH\",\"DIAGNOSTICS\",\"DISCONNECT\",\"DISK\",\"DISTINCT\",\"DISTRIBUTED\",\"DO\",\"DOMAIN\",\"DOUBLE\",\"DROP\",\"DUMP\",\"EACH\",\"ELSE\",\"END\",\"END-EXEC\",\"ERRLVL\",\"ESCAPE\",\"EXCEPT\",\"EXCEPTION\",\"EXCLUDE\",\"EXCLUSIVE\",\"EXEC\",\"EXECUTE\",\"EXISTS\",\"EXIT\",\"EXPLAIN\",\"EXTERNAL\",\"EXTRACT\",\"FAIL\",\"FALSE\",\"FETCH\",\"FILE\",\"FILLFACTOR\",\"FILTER\",\"FIRST\",\"FLOAT\",\"FOLLOWING\",\"FOR\",\"FOREIGN\",\"FORTRAN\",\"FOUND\",\"FREETEXT\",\"FREETEXTTABLE\",\"FROM\",\"FULL\",\"FUNCTION\",\"GENERATED\",\"GET\",\"GLOB\",\"GLOBAL\",\"GO\",\"GOTO\",\"GRANT\",\"GROUP\",\"GROUPS\",\"HAVING\",\"HOLDLOCK\",\"HOUR\",\"IDENTITY\",\"IDENTITYCOL\",\"IDENTITY_INSERT\",\"IF\",\"IGNORE\",\"IMMEDIATE\",\"IN\",\"INCLUDE\",\"INDEX\",\"INDEXED\",\"INDICATOR\",\"INITIALLY\",\"INNER\",\"INPUT\",\"INSENSITIVE\",\"INSERT\",\"INSTEAD\",\"INT\",\"INTEGER\",\"INTERSECT\",\"INTERVAL\",\"INTO\",\"IS\",\"ISNULL\",\"ISOLATION\",\"JOIN\",\"KEY\",\"KILL\",\"LANGUAGE\",\"LAST\",\"LEADING\",\"LEFT\",\"LEVEL\",\"LIKE\",\"LIMIT\",\"LINENO\",\"LOAD\",\"LOCAL\",\"LOWER\",\"MATCH\",\"MATERIALIZED\",\"MAX\",\"MERGE\",\"MIN\",\"MINUTE\",\"MODULE\",\"MONTH\",\"NAMES\",\"NATIONAL\",\"NATURAL\",\"NCHAR\",\"NEXT\",\"NO\",\"NOCHECK\",\"NONCLUSTERED\",\"NONE\",\"NOT\",\"NOTHING\",\"NOTNULL\",\"NULL\",\"NULLIF\",\"NULLS\",\"NUMERIC\",\"OCTET_LENGTH\",\"OF\",\"OFF\",\"OFFSET\",\"OFFSETS\",\"ON\",\"ONLY\",\"OPEN\",\"OPENDATASOURCE\",\"OPENQUERY\",\"OPENROWSET\",\"OPENXML\",\"OPTION\",\"OR\",\"ORDER\",\"OTHERS\",\"OUTER\",\"OUTPUT\",\"OVER\",\"OVERLAPS\",\"PAD\",\"PARTIAL\",\"PARTITION\",\"PASCAL\",\"PERCENT\",\"PIVOT\",\"PLAN\",\"POSITION\",\"PRAGMA\",\"PRECEDING\",\"PRECISION\",\"PREPARE\",\"PRESERVE\",\"PRIMARY\",\"PRINT\",\"PRIOR\",\"PRIVILEGES\",\"PROC\",\"PROCEDURE\",\"PUBLIC\",\"QUERY\",\"RAISE\",\"RAISERROR\",\"RANGE\",\"READ\",\"READTEXT\",\"REAL\",\"RECONFIGURE\",\"RECURSIVE\",\"REFERENCES\",\"REGEXP\",\"REINDEX\",\"RELATIVE\",\"RELEASE\",\"RENAME\",\"REPLACE\",\"REPLICATION\",\"RESTORE\",\"RESTRICT\",\"RETURN\",\"RETURNING\",\"REVERT\",\"REVOKE\",\"RIGHT\",\"ROLLBACK\",\"ROW\",\"ROWCOUNT\",\"ROWGUIDCOL\",\"ROWS\",\"RULE\",\"SAVE\",\"SAVEPOINT\",\"SCHEMA\",\"SCROLL\",\"SECOND\",\"SECTION\",\"SECURITYAUDIT\",\"SELECT\",\"SEMANTICKEYPHRASETABLE\",\"SEMANTICSIMILARITYDETAILSTABLE\",\"SEMANTICSIMILARITYTABLE\",\"SESSION\",\"SESSION_USER\",\"SET\",\"SETUSER\",\"SHUTDOWN\",\"SIZE\",\"SMALLINT\",\"SOME\",\"SPACE\",\"SQL\",\"SQLCA\",\"SQLCODE\",\"SQLERROR\",\"SQLSTATE\",\"SQLWARNING\",\"STATISTICS\",\"SUBSTRING\",\"SUM\",\"SYSTEM_USER\",\"TABLE\",\"TABLESAMPLE\",\"TEMP\",\"TEMPORARY\",\"TEXTSIZE\",\"THEN\",\"TIES\",\"TIME\",\"TIMESTAMP\",\"TIMEZONE_HOUR\",\"TIMEZONE_MINUTE\",\"TO\",\"TOP\",\"TRAILING\",\"TRAN\",\"TRANSACTION\",\"TRANSLATE\",\"TRANSLATION\",\"TRIGGER\",\"TRIM\",\"TRUE\",\"TRUNCATE\",\"TRY_CONVERT\",\"TSEQUAL\",\"UNBOUNDED\",\"UNION\",\"UNIQUE\",\"UNKNOWN\",\"UNPIVOT\",\"UPDATE\",\"UPDATETEXT\",\"UPPER\",\"USAGE\",\"USE\",\"USER\",\"USING\",\"VACUUM\",\"VALUE\",\"VALUES\",\"VARCHAR\",\"VARYING\",\"VIEW\",\"VIRTUAL\",\"WAITFOR\",\"WHEN\",\"WHENEVER\",\"WHERE\",\"WHILE\",\"WINDOW\",\"WITH\",\"WITHIN GROUP\",\"WITHOUT\",\"WORK\",\"WRITE\",\"WRITETEXT\",\"YEAR\",\"ZONE\"],operators:[\"ALL\",\"AND\",\"ANY\",\"BETWEEN\",\"EXISTS\",\"IN\",\"LIKE\",\"NOT\",\"OR\",\"SOME\",\"EXCEPT\",\"INTERSECT\",\"UNION\",\"APPLY\",\"CROSS\",\"FULL\",\"INNER\",\"JOIN\",\"LEFT\",\"OUTER\",\"RIGHT\",\"CONTAINS\",\"FREETEXT\",\"IS\",\"NULL\",\"PIVOT\",\"UNPIVOT\",\"MATCHED\"],builtinFunctions:[\"AVG\",\"CHECKSUM_AGG\",\"COUNT\",\"COUNT_BIG\",\"GROUPING\",\"GROUPING_ID\",\"MAX\",\"MIN\",\"SUM\",\"STDEV\",\"STDEVP\",\"VAR\",\"VARP\",\"CUME_DIST\",\"FIRST_VALUE\",\"LAG\",\"LAST_VALUE\",\"LEAD\",\"PERCENTILE_CONT\",\"PERCENTILE_DISC\",\"PERCENT_RANK\",\"COLLATE\",\"COLLATIONPROPERTY\",\"TERTIARY_WEIGHTS\",\"FEDERATION_FILTERING_VALUE\",\"CAST\",\"CONVERT\",\"PARSE\",\"TRY_CAST\",\"TRY_CONVERT\",\"TRY_PARSE\",\"ASYMKEY_ID\",\"ASYMKEYPROPERTY\",\"CERTPROPERTY\",\"CERT_ID\",\"CRYPT_GEN_RANDOM\",\"DECRYPTBYASYMKEY\",\"DECRYPTBYCERT\",\"DECRYPTBYKEY\",\"DECRYPTBYKEYAUTOASYMKEY\",\"DECRYPTBYKEYAUTOCERT\",\"DECRYPTBYPASSPHRASE\",\"ENCRYPTBYASYMKEY\",\"ENCRYPTBYCERT\",\"ENCRYPTBYKEY\",\"ENCRYPTBYPASSPHRASE\",\"HASHBYTES\",\"IS_OBJECTSIGNED\",\"KEY_GUID\",\"KEY_ID\",\"KEY_NAME\",\"SIGNBYASYMKEY\",\"SIGNBYCERT\",\"SYMKEYPROPERTY\",\"VERIFYSIGNEDBYCERT\",\"VERIFYSIGNEDBYASYMKEY\",\"CURSOR_STATUS\",\"DATALENGTH\",\"IDENT_CURRENT\",\"IDENT_INCR\",\"IDENT_SEED\",\"IDENTITY\",\"SQL_VARIANT_PROPERTY\",\"CURRENT_TIMESTAMP\",\"DATEADD\",\"DATEDIFF\",\"DATEFROMPARTS\",\"DATENAME\",\"DATEPART\",\"DATETIME2FROMPARTS\",\"DATETIMEFROMPARTS\",\"DATETIMEOFFSETFROMPARTS\",\"DAY\",\"EOMONTH\",\"GETDATE\",\"GETUTCDATE\",\"ISDATE\",\"MONTH\",\"SMALLDATETIMEFROMPARTS\",\"SWITCHOFFSET\",\"SYSDATETIME\",\"SYSDATETIMEOFFSET\",\"SYSUTCDATETIME\",\"TIMEFROMPARTS\",\"TODATETIMEOFFSET\",\"YEAR\",\"CHOOSE\",\"COALESCE\",\"IIF\",\"NULLIF\",\"ABS\",\"ACOS\",\"ASIN\",\"ATAN\",\"ATN2\",\"CEILING\",\"COS\",\"COT\",\"DEGREES\",\"EXP\",\"FLOOR\",\"LOG\",\"LOG10\",\"PI\",\"POWER\",\"RADIANS\",\"RAND\",\"ROUND\",\"SIGN\",\"SIN\",\"SQRT\",\"SQUARE\",\"TAN\",\"APP_NAME\",\"APPLOCK_MODE\",\"APPLOCK_TEST\",\"ASSEMBLYPROPERTY\",\"COL_LENGTH\",\"COL_NAME\",\"COLUMNPROPERTY\",\"DATABASE_PRINCIPAL_ID\",\"DATABASEPROPERTYEX\",\"DB_ID\",\"DB_NAME\",\"FILE_ID\",\"FILE_IDEX\",\"FILE_NAME\",\"FILEGROUP_ID\",\"FILEGROUP_NAME\",\"FILEGROUPPROPERTY\",\"FILEPROPERTY\",\"FULLTEXTCATALOGPROPERTY\",\"FULLTEXTSERVICEPROPERTY\",\"INDEX_COL\",\"INDEXKEY_PROPERTY\",\"INDEXPROPERTY\",\"OBJECT_DEFINITION\",\"OBJECT_ID\",\"OBJECT_NAME\",\"OBJECT_SCHEMA_NAME\",\"OBJECTPROPERTY\",\"OBJECTPROPERTYEX\",\"ORIGINAL_DB_NAME\",\"PARSENAME\",\"SCHEMA_ID\",\"SCHEMA_NAME\",\"SCOPE_IDENTITY\",\"SERVERPROPERTY\",\"STATS_DATE\",\"TYPE_ID\",\"TYPE_NAME\",\"TYPEPROPERTY\",\"DENSE_RANK\",\"NTILE\",\"RANK\",\"ROW_NUMBER\",\"PUBLISHINGSERVERNAME\",\"OPENDATASOURCE\",\"OPENQUERY\",\"OPENROWSET\",\"OPENXML\",\"CERTENCODED\",\"CERTPRIVATEKEY\",\"CURRENT_USER\",\"HAS_DBACCESS\",\"HAS_PERMS_BY_NAME\",\"IS_MEMBER\",\"IS_ROLEMEMBER\",\"IS_SRVROLEMEMBER\",\"LOGINPROPERTY\",\"ORIGINAL_LOGIN\",\"PERMISSIONS\",\"PWDENCRYPT\",\"PWDCOMPARE\",\"SESSION_USER\",\"SESSIONPROPERTY\",\"SUSER_ID\",\"SUSER_NAME\",\"SUSER_SID\",\"SUSER_SNAME\",\"SYSTEM_USER\",\"USER\",\"USER_ID\",\"USER_NAME\",\"ASCII\",\"CHAR\",\"CHARINDEX\",\"CONCAT\",\"DIFFERENCE\",\"FORMAT\",\"LEFT\",\"LEN\",\"LOWER\",\"LTRIM\",\"NCHAR\",\"PATINDEX\",\"QUOTENAME\",\"REPLACE\",\"REPLICATE\",\"REVERSE\",\"RIGHT\",\"RTRIM\",\"SOUNDEX\",\"SPACE\",\"STR\",\"STUFF\",\"SUBSTRING\",\"UNICODE\",\"UPPER\",\"BINARY_CHECKSUM\",\"CHECKSUM\",\"CONNECTIONPROPERTY\",\"CONTEXT_INFO\",\"CURRENT_REQUEST_ID\",\"ERROR_LINE\",\"ERROR_NUMBER\",\"ERROR_MESSAGE\",\"ERROR_PROCEDURE\",\"ERROR_SEVERITY\",\"ERROR_STATE\",\"FORMATMESSAGE\",\"GETANSINULL\",\"GET_FILESTREAM_TRANSACTION_CONTEXT\",\"HOST_ID\",\"HOST_NAME\",\"ISNULL\",\"ISNUMERIC\",\"MIN_ACTIVE_ROWVERSION\",\"NEWID\",\"NEWSEQUENTIALID\",\"ROWCOUNT_BIG\",\"XACT_STATE\",\"TEXTPTR\",\"TEXTVALID\",\"COLUMNS_UPDATED\",\"EVENTDATA\",\"TRIGGER_NESTLEVEL\",\"UPDATE\",\"CHANGETABLE\",\"CHANGE_TRACKING_CONTEXT\",\"CHANGE_TRACKING_CURRENT_VERSION\",\"CHANGE_TRACKING_IS_COLUMN_IN_MASK\",\"CHANGE_TRACKING_MIN_VALID_VERSION\",\"CONTAINSTABLE\",\"FREETEXTTABLE\",\"SEMANTICKEYPHRASETABLE\",\"SEMANTICSIMILARITYDETAILSTABLE\",\"SEMANTICSIMILARITYTABLE\",\"FILETABLEROOTPATH\",\"GETFILENAMESPACEPATH\",\"GETPATHLOCATOR\",\"PATHNAME\",\"GET_TRANSMISSION_STATUS\"],builtinVariables:[\"@@DATEFIRST\",\"@@DBTS\",\"@@LANGID\",\"@@LANGUAGE\",\"@@LOCK_TIMEOUT\",\"@@MAX_CONNECTIONS\",\"@@MAX_PRECISION\",\"@@NESTLEVEL\",\"@@OPTIONS\",\"@@REMSERVER\",\"@@SERVERNAME\",\"@@SERVICENAME\",\"@@SPID\",\"@@TEXTSIZE\",\"@@VERSION\",\"@@CURSOR_ROWS\",\"@@FETCH_STATUS\",\"@@DATEFIRST\",\"@@PROCID\",\"@@ERROR\",\"@@IDENTITY\",\"@@ROWCOUNT\",\"@@TRANCOUNT\",\"@@CONNECTIONS\",\"@@CPU_BUSY\",\"@@IDLE\",\"@@IO_BUSY\",\"@@PACKET_ERRORS\",\"@@PACK_RECEIVED\",\"@@PACK_SENT\",\"@@TIMETICKS\",\"@@TOTAL_ERRORS\",\"@@TOTAL_READ\",\"@@TOTAL_WRITE\"],pseudoColumns:[\"$ACTION\",\"$IDENTITY\",\"$ROWGUID\",\"$PARTITION\"],tokenizer:{root:[{include:\"@comments\"},{include:\"@whitespace\"},{include:\"@pseudoColumns\"},{include:\"@numbers\"},{include:\"@strings\"},{include:\"@complexIdentifiers\"},{include:\"@scopes\"},[/[;,.]/,\"delimiter\"],[/[()]/,\"@brackets\"],[/[\\w@#$]+/,{cases:{\"@operators\":\"operator\",\"@builtinVariables\":\"predefined\",\"@builtinFunctions\":\"predefined\",\"@keywords\":\"keyword\",\"@default\":\"identifier\"}}],[/[<>=!%&+\\-*/|~^]/,\"operator\"]],whitespace:[[/\\s+/,\"white\"]],comments:[[/--+.*/,\"comment\"],[/\\/\\*/,{token:\"comment.quote\",next:\"@comment\"}]],comment:[[/[^*/]+/,\"comment\"],[/\\*\\//,{token:\"comment.quote\",next:\"@pop\"}],[/./,\"comment\"]],pseudoColumns:[[/[$][A-Za-z_][\\w@#$]*/,{cases:{\"@pseudoColumns\":\"predefined\",\"@default\":\"identifier\"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,\"number\"],[/[$][+-]*\\d*(\\.\\d*)?/,\"number\"],[/((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][\\-+]?\\d+)?/,\"number\"]],strings:[[/N'/,{token:\"string\",next:\"@string\"}],[/'/,{token:\"string\",next:\"@string\"}]],string:[[/[^']+/,\"string\"],[/''/,\"string\"],[/'/,{token:\"string\",next:\"@pop\"}]],complexIdentifiers:[[/\\[/,{token:\"identifier.quote\",next:\"@bracketedIdentifier\"}],[/\"/,{token:\"identifier.quote\",next:\"@quotedIdentifier\"}]],bracketedIdentifier:[[/[^\\]]+/,\"identifier\"],[/]]/,\"identifier\"],[/]/,{token:\"identifier.quote\",next:\"@pop\"}]],quotedIdentifier:[[/[^\"]+/,\"identifier\"],[/\"\"/,\"identifier\"],[/\"/,{token:\"identifier.quote\",next:\"@pop\"}]],scopes:[[/BEGIN\\s+(DISTRIBUTED\\s+)?TRAN(SACTION)?\\b/i,\"keyword\"],[/BEGIN\\s+TRY\\b/i,{token:\"keyword.try\"}],[/END\\s+TRY\\b/i,{token:\"keyword.try\"}],[/BEGIN\\s+CATCH\\b/i,{token:\"keyword.catch\"}],[/END\\s+CATCH\\b/i,{token:\"keyword.catch\"}],[/(BEGIN|CASE)\\b/i,{token:\"keyword.block\"}],[/END\\b/i,{token:\"keyword.block\"}],[/WHEN\\b/i,{token:\"keyword.choice\"}],[/THEN\\b/i,{token:\"keyword.choice\"}]]}};export{E as conf,T as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/D7oLnXFd.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBorder\":\"#fd8c73\",\"activityBar.background\":\"#ffffff\",\"activityBar.border\":\"#d0d7de\",\"activityBar.foreground\":\"#1f2328\",\"activityBar.inactiveForeground\":\"#656d76\",\"activityBarBadge.background\":\"#0969da\",\"activityBarBadge.foreground\":\"#ffffff\",\"badge.background\":\"#0969da\",\"badge.foreground\":\"#ffffff\",\"breadcrumb.activeSelectionForeground\":\"#656d76\",\"breadcrumb.focusForeground\":\"#1f2328\",\"breadcrumb.foreground\":\"#656d76\",\"breadcrumbPicker.background\":\"#ffffff\",\"button.background\":\"#1f883d\",\"button.foreground\":\"#ffffff\",\"button.hoverBackground\":\"#1a7f37\",\"button.secondaryBackground\":\"#ebecf0\",\"button.secondaryForeground\":\"#24292f\",\"button.secondaryHoverBackground\":\"#f3f4f6\",\"checkbox.background\":\"#f6f8fa\",\"checkbox.border\":\"#d0d7de\",\"debugConsole.errorForeground\":\"#cf222e\",\"debugConsole.infoForeground\":\"#57606a\",\"debugConsole.sourceForeground\":\"#9a6700\",\"debugConsole.warningForeground\":\"#7d4e00\",\"debugConsoleInputIcon.foreground\":\"#6639ba\",\"debugIcon.breakpointForeground\":\"#cf222e\",\"debugTokenExpression.boolean\":\"#116329\",\"debugTokenExpression.error\":\"#a40e26\",\"debugTokenExpression.name\":\"#0550ae\",\"debugTokenExpression.number\":\"#116329\",\"debugTokenExpression.string\":\"#0a3069\",\"debugTokenExpression.value\":\"#0a3069\",\"debugToolBar.background\":\"#ffffff\",\"descriptionForeground\":\"#656d76\",\"diffEditor.insertedLineBackground\":\"#aceebb4d\",\"diffEditor.insertedTextBackground\":\"#6fdd8b80\",\"diffEditor.removedLineBackground\":\"#ffcecb4d\",\"diffEditor.removedTextBackground\":\"#ff818266\",\"dropdown.background\":\"#ffffff\",\"dropdown.border\":\"#d0d7de\",\"dropdown.foreground\":\"#1f2328\",\"dropdown.listBackground\":\"#ffffff\",\"editor.background\":\"#ffffff\",\"editor.findMatchBackground\":\"#bf8700\",\"editor.findMatchHighlightBackground\":\"#fae17d80\",\"editor.focusedStackFrameHighlightBackground\":\"#4ac26b66\",\"editor.foldBackground\":\"#6e77811a\",\"editor.foreground\":\"#1f2328\",\"editor.lineHighlightBackground\":\"#eaeef280\",\"editor.linkedEditingBackground\":\"#0969da12\",\"editor.selectionHighlightBackground\":\"#4ac26b40\",\"editor.stackFrameHighlightBackground\":\"#d4a72c66\",\"editor.wordHighlightBackground\":\"#eaeef280\",\"editor.wordHighlightBorder\":\"#afb8c199\",\"editor.wordHighlightStrongBackground\":\"#afb8c14d\",\"editor.wordHighlightStrongBorder\":\"#afb8c199\",\"editorBracketHighlight.foreground1\":\"#0969da\",\"editorBracketHighlight.foreground2\":\"#1a7f37\",\"editorBracketHighlight.foreground3\":\"#9a6700\",\"editorBracketHighlight.foreground4\":\"#cf222e\",\"editorBracketHighlight.foreground5\":\"#bf3989\",\"editorBracketHighlight.foreground6\":\"#8250df\",\"editorBracketHighlight.unexpectedBracket.foreground\":\"#656d76\",\"editorBracketMatch.background\":\"#4ac26b40\",\"editorBracketMatch.border\":\"#4ac26b99\",\"editorCursor.foreground\":\"#0969da\",\"editorGroup.border\":\"#d0d7de\",\"editorGroupHeader.tabsBackground\":\"#f6f8fa\",\"editorGroupHeader.tabsBorder\":\"#d0d7de\",\"editorGutter.addedBackground\":\"#4ac26b66\",\"editorGutter.deletedBackground\":\"#ff818266\",\"editorGutter.modifiedBackground\":\"#d4a72c66\",\"editorIndentGuide.activeBackground\":\"#1f23283d\",\"editorIndentGuide.background\":\"#1f23281f\",\"editorInlayHint.background\":\"#afb8c133\",\"editorInlayHint.foreground\":\"#656d76\",\"editorInlayHint.paramBackground\":\"#afb8c133\",\"editorInlayHint.paramForeground\":\"#656d76\",\"editorInlayHint.typeBackground\":\"#afb8c133\",\"editorInlayHint.typeForeground\":\"#656d76\",\"editorLineNumber.activeForeground\":\"#1f2328\",\"editorLineNumber.foreground\":\"#8c959f\",\"editorOverviewRuler.border\":\"#ffffff\",\"editorWhitespace.foreground\":\"#afb8c1\",\"editorWidget.background\":\"#ffffff\",\"errorForeground\":\"#cf222e\",\"focusBorder\":\"#0969da\",\"foreground\":\"#1f2328\",\"gitDecoration.addedResourceForeground\":\"#1a7f37\",\"gitDecoration.conflictingResourceForeground\":\"#bc4c00\",\"gitDecoration.deletedResourceForeground\":\"#cf222e\",\"gitDecoration.ignoredResourceForeground\":\"#6e7781\",\"gitDecoration.modifiedResourceForeground\":\"#9a6700\",\"gitDecoration.submoduleResourceForeground\":\"#656d76\",\"gitDecoration.untrackedResourceForeground\":\"#1a7f37\",\"icon.foreground\":\"#656d76\",\"input.background\":\"#ffffff\",\"input.border\":\"#d0d7de\",\"input.foreground\":\"#1f2328\",\"input.placeholderForeground\":\"#6e7781\",\"keybindingLabel.foreground\":\"#1f2328\",\"list.activeSelectionBackground\":\"#afb8c133\",\"list.activeSelectionForeground\":\"#1f2328\",\"list.focusBackground\":\"#ddf4ff\",\"list.focusForeground\":\"#1f2328\",\"list.highlightForeground\":\"#0969da\",\"list.hoverBackground\":\"#eaeef280\",\"list.hoverForeground\":\"#1f2328\",\"list.inactiveFocusBackground\":\"#ddf4ff\",\"list.inactiveSelectionBackground\":\"#afb8c133\",\"list.inactiveSelectionForeground\":\"#1f2328\",\"minimapSlider.activeBackground\":\"#8c959f47\",\"minimapSlider.background\":\"#8c959f33\",\"minimapSlider.hoverBackground\":\"#8c959f3d\",\"notificationCenterHeader.background\":\"#f6f8fa\",\"notificationCenterHeader.foreground\":\"#656d76\",\"notifications.background\":\"#ffffff\",\"notifications.border\":\"#d0d7de\",\"notifications.foreground\":\"#1f2328\",\"notificationsErrorIcon.foreground\":\"#cf222e\",\"notificationsInfoIcon.foreground\":\"#0969da\",\"notificationsWarningIcon.foreground\":\"#9a6700\",\"panel.background\":\"#f6f8fa\",\"panel.border\":\"#d0d7de\",\"panelInput.border\":\"#d0d7de\",\"panelTitle.activeBorder\":\"#fd8c73\",\"panelTitle.activeForeground\":\"#1f2328\",\"panelTitle.inactiveForeground\":\"#656d76\",\"pickerGroup.border\":\"#d0d7de\",\"pickerGroup.foreground\":\"#656d76\",\"progressBar.background\":\"#0969da\",\"quickInput.background\":\"#ffffff\",\"quickInput.foreground\":\"#1f2328\",\"scrollbar.shadow\":\"#6e778133\",\"scrollbarSlider.activeBackground\":\"#8c959f47\",\"scrollbarSlider.background\":\"#8c959f33\",\"scrollbarSlider.hoverBackground\":\"#8c959f3d\",\"settings.headerForeground\":\"#1f2328\",\"settings.modifiedItemIndicator\":\"#d4a72c66\",\"sideBar.background\":\"#f6f8fa\",\"sideBar.border\":\"#d0d7de\",\"sideBar.foreground\":\"#1f2328\",\"sideBarSectionHeader.background\":\"#f6f8fa\",\"sideBarSectionHeader.border\":\"#d0d7de\",\"sideBarSectionHeader.foreground\":\"#1f2328\",\"sideBarTitle.foreground\":\"#1f2328\",\"statusBar.background\":\"#ffffff\",\"statusBar.border\":\"#d0d7de\",\"statusBar.debuggingBackground\":\"#cf222e\",\"statusBar.debuggingForeground\":\"#ffffff\",\"statusBar.focusBorder\":\"#0969da80\",\"statusBar.foreground\":\"#656d76\",\"statusBar.noFolderBackground\":\"#ffffff\",\"statusBarItem.activeBackground\":\"#1f23281f\",\"statusBarItem.focusBorder\":\"#0969da\",\"statusBarItem.hoverBackground\":\"#1f232814\",\"statusBarItem.prominentBackground\":\"#afb8c133\",\"statusBarItem.remoteBackground\":\"#eaeef2\",\"statusBarItem.remoteForeground\":\"#1f2328\",\"symbolIcon.arrayForeground\":\"#953800\",\"symbolIcon.booleanForeground\":\"#0550ae\",\"symbolIcon.classForeground\":\"#953800\",\"symbolIcon.colorForeground\":\"#0a3069\",\"symbolIcon.constantForeground\":\"#116329\",\"symbolIcon.constructorForeground\":\"#3e1f79\",\"symbolIcon.enumeratorForeground\":\"#953800\",\"symbolIcon.enumeratorMemberForeground\":\"#0550ae\",\"symbolIcon.eventForeground\":\"#57606a\",\"symbolIcon.fieldForeground\":\"#953800\",\"symbolIcon.fileForeground\":\"#7d4e00\",\"symbolIcon.folderForeground\":\"#7d4e00\",\"symbolIcon.functionForeground\":\"#6639ba\",\"symbolIcon.interfaceForeground\":\"#953800\",\"symbolIcon.keyForeground\":\"#0550ae\",\"symbolIcon.keywordForeground\":\"#a40e26\",\"symbolIcon.methodForeground\":\"#6639ba\",\"symbolIcon.moduleForeground\":\"#a40e26\",\"symbolIcon.namespaceForeground\":\"#a40e26\",\"symbolIcon.nullForeground\":\"#0550ae\",\"symbolIcon.numberForeground\":\"#116329\",\"symbolIcon.objectForeground\":\"#953800\",\"symbolIcon.operatorForeground\":\"#0a3069\",\"symbolIcon.packageForeground\":\"#953800\",\"symbolIcon.propertyForeground\":\"#953800\",\"symbolIcon.referenceForeground\":\"#0550ae\",\"symbolIcon.snippetForeground\":\"#0550ae\",\"symbolIcon.stringForeground\":\"#0a3069\",\"symbolIcon.structForeground\":\"#953800\",\"symbolIcon.textForeground\":\"#0a3069\",\"symbolIcon.typeParameterForeground\":\"#0a3069\",\"symbolIcon.unitForeground\":\"#0550ae\",\"symbolIcon.variableForeground\":\"#953800\",\"tab.activeBackground\":\"#ffffff\",\"tab.activeBorder\":\"#ffffff\",\"tab.activeBorderTop\":\"#fd8c73\",\"tab.activeForeground\":\"#1f2328\",\"tab.border\":\"#d0d7de\",\"tab.hoverBackground\":\"#ffffff\",\"tab.inactiveBackground\":\"#f6f8fa\",\"tab.inactiveForeground\":\"#656d76\",\"tab.unfocusedActiveBorder\":\"#ffffff\",\"tab.unfocusedActiveBorderTop\":\"#d0d7de\",\"tab.unfocusedHoverBackground\":\"#eaeef280\",\"terminal.ansiBlack\":\"#24292f\",\"terminal.ansiBlue\":\"#0969da\",\"terminal.ansiBrightBlack\":\"#57606a\",\"terminal.ansiBrightBlue\":\"#218bff\",\"terminal.ansiBrightCyan\":\"#3192aa\",\"terminal.ansiBrightGreen\":\"#1a7f37\",\"terminal.ansiBrightMagenta\":\"#a475f9\",\"terminal.ansiBrightRed\":\"#a40e26\",\"terminal.ansiBrightWhite\":\"#8c959f\",\"terminal.ansiBrightYellow\":\"#633c01\",\"terminal.ansiCyan\":\"#1b7c83\",\"terminal.ansiGreen\":\"#116329\",\"terminal.ansiMagenta\":\"#8250df\",\"terminal.ansiRed\":\"#cf222e\",\"terminal.ansiWhite\":\"#6e7781\",\"terminal.ansiYellow\":\"#4d2d00\",\"terminal.foreground\":\"#1f2328\",\"textBlockQuote.background\":\"#f6f8fa\",\"textBlockQuote.border\":\"#d0d7de\",\"textCodeBlock.background\":\"#afb8c133\",\"textLink.activeForeground\":\"#0969da\",\"textLink.foreground\":\"#0969da\",\"textPreformat.background\":\"#afb8c133\",\"textPreformat.foreground\":\"#656d76\",\"textSeparator.foreground\":\"#d8dee4\",\"titleBar.activeBackground\":\"#ffffff\",\"titleBar.activeForeground\":\"#656d76\",\"titleBar.border\":\"#d0d7de\",\"titleBar.inactiveBackground\":\"#f6f8fa\",\"titleBar.inactiveForeground\":\"#656d76\",\"tree.indentGuidesStroke\":\"#d8dee4\",\"welcomePage.buttonBackground\":\"#f6f8fa\",\"welcomePage.buttonHoverBackground\":\"#f3f4f6\"},\"displayName\":\"GitHub Light Default\",\"name\":\"github-light-default\",\"semanticHighlighting\":true,\"tokenColors\":[{\"scope\":[\"comment\",\"punctuation.definition.comment\",\"string.comment\"],\"settings\":{\"foreground\":\"#6e7781\"}},{\"scope\":[\"constant.other.placeholder\",\"constant.character\"],\"settings\":{\"foreground\":\"#cf222e\"}},{\"scope\":[\"constant\",\"entity.name.constant\",\"variable.other.constant\",\"variable.other.enummember\",\"variable.language\",\"entity\"],\"settings\":{\"foreground\":\"#0550ae\"}},{\"scope\":[\"entity.name\",\"meta.export.default\",\"meta.definition.variable\"],\"settings\":{\"foreground\":\"#953800\"}},{\"scope\":[\"variable.parameter.function\",\"meta.jsx.children\",\"meta.block\",\"meta.tag.attributes\",\"entity.name.constant\",\"meta.object.member\",\"meta.embedded.expression\"],\"settings\":{\"foreground\":\"#1f2328\"}},{\"scope\":\"entity.name.function\",\"settings\":{\"foreground\":\"#8250df\"}},{\"scope\":[\"entity.name.tag\",\"support.class.component\"],\"settings\":{\"foreground\":\"#116329\"}},{\"scope\":\"keyword\",\"settings\":{\"foreground\":\"#cf222e\"}},{\"scope\":[\"storage\",\"storage.type\"],\"settings\":{\"foreground\":\"#cf222e\"}},{\"scope\":[\"storage.modifier.package\",\"storage.modifier.import\",\"storage.type.java\"],\"settings\":{\"foreground\":\"#1f2328\"}},{\"scope\":[\"string\",\"string punctuation.section.embedded source\"],\"settings\":{\"foreground\":\"#0a3069\"}},{\"scope\":\"support\",\"settings\":{\"foreground\":\"#0550ae\"}},{\"scope\":\"meta.property-name\",\"settings\":{\"foreground\":\"#0550ae\"}},{\"scope\":\"variable\",\"settings\":{\"foreground\":\"#953800\"}},{\"scope\":\"variable.other\",\"settings\":{\"foreground\":\"#1f2328\"}},{\"scope\":\"invalid.broken\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#82071e\"}},{\"scope\":\"invalid.deprecated\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#82071e\"}},{\"scope\":\"invalid.illegal\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#82071e\"}},{\"scope\":\"invalid.unimplemented\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#82071e\"}},{\"scope\":\"carriage-return\",\"settings\":{\"background\":\"#cf222e\",\"content\":\"^M\",\"fontStyle\":\"italic underline\",\"foreground\":\"#f6f8fa\"}},{\"scope\":\"message.error\",\"settings\":{\"foreground\":\"#82071e\"}},{\"scope\":\"string variable\",\"settings\":{\"foreground\":\"#0550ae\"}},{\"scope\":[\"source.regexp\",\"string.regexp\"],\"settings\":{\"foreground\":\"#0a3069\"}},{\"scope\":[\"string.regexp.character-class\",\"string.regexp constant.character.escape\",\"string.regexp source.ruby.embedded\",\"string.regexp string.regexp.arbitrary-repitition\"],\"settings\":{\"foreground\":\"#0a3069\"}},{\"scope\":\"string.regexp constant.character.escape\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#116329\"}},{\"scope\":\"support.constant\",\"settings\":{\"foreground\":\"#0550ae\"}},{\"scope\":\"support.variable\",\"settings\":{\"foreground\":\"#0550ae\"}},{\"scope\":\"support.type.property-name.json\",\"settings\":{\"foreground\":\"#116329\"}},{\"scope\":\"meta.module-reference\",\"settings\":{\"foreground\":\"#0550ae\"}},{\"scope\":\"punctuation.definition.list.begin.markdown\",\"settings\":{\"foreground\":\"#953800\"}},{\"scope\":[\"markup.heading\",\"markup.heading entity.name\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#0550ae\"}},{\"scope\":\"markup.quote\",\"settings\":{\"foreground\":\"#116329\"}},{\"scope\":\"markup.italic\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#1f2328\"}},{\"scope\":\"markup.bold\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#1f2328\"}},{\"scope\":[\"markup.underline\"],\"settings\":{\"fontStyle\":\"underline\"}},{\"scope\":[\"markup.strikethrough\"],\"settings\":{\"fontStyle\":\"strikethrough\"}},{\"scope\":\"markup.inline.raw\",\"settings\":{\"foreground\":\"#0550ae\"}},{\"scope\":[\"markup.deleted\",\"meta.diff.header.from-file\",\"punctuation.definition.deleted\"],\"settings\":{\"background\":\"#ffebe9\",\"foreground\":\"#82071e\"}},{\"scope\":[\"punctuation.section.embedded\"],\"settings\":{\"foreground\":\"#cf222e\"}},{\"scope\":[\"markup.inserted\",\"meta.diff.header.to-file\",\"punctuation.definition.inserted\"],\"settings\":{\"background\":\"#dafbe1\",\"foreground\":\"#116329\"}},{\"scope\":[\"markup.changed\",\"punctuation.definition.changed\"],\"settings\":{\"background\":\"#ffd8b5\",\"foreground\":\"#953800\"}},{\"scope\":[\"markup.ignored\",\"markup.untracked\"],\"settings\":{\"background\":\"#0550ae\",\"foreground\":\"#eaeef2\"}},{\"scope\":\"meta.diff.range\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#8250df\"}},{\"scope\":\"meta.diff.header\",\"settings\":{\"foreground\":\"#0550ae\"}},{\"scope\":\"meta.separator\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#0550ae\"}},{\"scope\":\"meta.output\",\"settings\":{\"foreground\":\"#0550ae\"}},{\"scope\":[\"brackethighlighter.tag\",\"brackethighlighter.curly\",\"brackethighlighter.round\",\"brackethighlighter.square\",\"brackethighlighter.angle\",\"brackethighlighter.quote\"],\"settings\":{\"foreground\":\"#57606a\"}},{\"scope\":\"brackethighlighter.unmatched\",\"settings\":{\"foreground\":\"#82071e\"}},{\"scope\":[\"constant.other.reference.link\",\"string.other.link\"],\"settings\":{\"foreground\":\"#0a3069\"}}],\"type\":\"light\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/D8mZ0lfy.js",
    "content": "import e from\"./DhUJRlN_.js\";const n=Object.freeze(JSON.parse(`{\"displayName\":\"Cairo\",\"name\":\"cairo\",\"patterns\":[{\"begin\":\"\\\\\\\\b(if).*\\\\\\\\(\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.if\"},\"2\":{\"name\":\"entity.name.condition\"}},\"contentName\":\"source.cairo0\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.end\"}},\"name\":\"meta.control.if\",\"patterns\":[{\"include\":\"source.cairo0\"}]},{\"begin\":\"\\\\\\\\b(with)\\\\\\\\s+(.+)\\\\\\\\s*\\\\\\\\{\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.with\"},\"2\":{\"name\":\"entity.name.identifiers\"}},\"contentName\":\"source.cairo0\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.end\"}},\"name\":\"meta.control.with\",\"patterns\":[{\"include\":\"source.cairo0\"}]},{\"begin\":\"\\\\\\\\b(with_attr)\\\\\\\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\\\\\\\s*[({]\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.with_attr\"},\"2\":{\"name\":\"entity.name.function\"}},\"contentName\":\"source.cairo0\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.end\"}},\"name\":\"meta.control.with_attr\",\"patterns\":[{\"include\":\"source.cairo0\"}]},{\"match\":\"\\\\\\\\belse\\\\\\\\b\",\"name\":\"keyword.control.else\"},{\"match\":\"\\\\\\\\b(call|jmp|ret|abs|rel|if)\\\\\\\\b\",\"name\":\"keyword.other.opcode\"},{\"match\":\"\\\\\\\\b(ap|fp)\\\\\\\\b\",\"name\":\"keyword.other.register\"},{\"match\":\"\\\\\\\\b(const|let|local|tempvar|felt|as|from|import|static_assert|return|assert|cast|alloc_locals|with|with_attr|nondet|dw|codeoffset|new|using|and)\\\\\\\\b\",\"name\":\"keyword.other.meta\"},{\"match\":\"\\\\\\\\b(SIZEOF_LOCALS|SIZE)\\\\\\\\b\",\"name\":\"markup.italic\"},{\"match\":\"//[^\\\\n]*\\\\n\",\"name\":\"comment.line.sharp\"},{\"match\":\"\\\\\\\\b[a-zA-Z_][a-zA-Z0-9_]*:\\\\\\\\s*$\",\"name\":\"entity.name.function\"},{\"begin\":\"\\\\\\\\b(func)\\\\\\\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\\\\\\\s*[({]\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.cairo\"},\"2\":{\"name\":\"entity.name.function\"}},\"contentName\":\"source.cairo0\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"storage.type.function.cairo\"}},\"name\":\"meta.function.cairo\",\"patterns\":[{\"include\":\"source.cairo0\"}]},{\"begin\":\"\\\\\\\\b(struct|namespace)\\\\\\\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\\\\\\\s*\\\\\\\\{\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.cairo\"},\"2\":{\"name\":\"entity.name.function\"}},\"contentName\":\"source.cairo0\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"storage.type.function.cairo\"}},\"name\":\"meta.function.cairo\",\"patterns\":[{\"include\":\"source.cairo0\"}]},{\"match\":\"\\\\\\\\b[+-]?[0-9]+\\\\\\\\b\",\"name\":\"constant.numeric.decimal\"},{\"match\":\"\\\\\\\\b[+-]?0x[0-9a-fA-F]+\\\\\\\\b\",\"name\":\"constant.numeric.hexadecimal\"},{\"match\":\"'[^']*'\",\"name\":\"string.quoted.single\"},{\"match\":\"\\\\\"[^\\\\\"]*\\\\\"\",\"name\":\"string.quoted.double\"},{\"begin\":\"%{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.python\"}},\"contentName\":\"source.python\",\"end\":\"%}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.python\"},\"1\":{\"name\":\"source.python\"}},\"name\":\"meta.embedded.block.python\",\"patterns\":[{\"include\":\"source.python\"}]}],\"scopeName\":\"source.cairo0\",\"embeddedLangs\":[\"python\"]}`)),a=[...e,n];export{a as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/D9-PGadD.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"MATLAB\",\"fileTypes\":[\"m\"],\"name\":\"matlab\",\"patterns\":[{\"comment\":\"This and #all_after_command_dual are split out so #command_dual can be excluded in things like (), {}, []\",\"include\":\"#all_before_command_dual\"},{\"include\":\"#command_dual\"},{\"include\":\"#all_after_command_dual\"}],\"repository\":{\"all_after_command_dual\":{\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#line_continuation\"},{\"include\":\"#comments\"},{\"include\":\"#conjugate_transpose\"},{\"include\":\"#transpose\"},{\"include\":\"#constants\"},{\"include\":\"#variables\"},{\"include\":\"#numbers\"},{\"include\":\"#operators\"}]},\"all_before_command_dual\":{\"patterns\":[{\"include\":\"#classdef\"},{\"include\":\"#function\"},{\"include\":\"#blocks\"},{\"include\":\"#control_statements\"},{\"include\":\"#global_persistent\"},{\"include\":\"#parens\"},{\"include\":\"#square_brackets\"},{\"include\":\"#indexing_curly_brackets\"},{\"include\":\"#curly_brackets\"}]},\"blocks\":{\"patterns\":[{\"begin\":\"\\\\\\\\s*(?:^|[\\\\\\\\s,;])(for)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.for.matlab\"}},\"end\":\"\\\\\\\\s*(?:^|[\\\\\\\\s,;])(end)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end.for.matlab\"}},\"name\":\"meta.for.matlab\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\s*(?:^|[\\\\\\\\s,;])(if)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.if.matlab\"}},\"end\":\"\\\\\\\\s*(?:^|[\\\\\\\\s,;])(end)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end.if.matlab\"},\"2\":{\"patterns\":[{\"include\":\"$self\"}]}},\"name\":\"meta.if.matlab\",\"patterns\":[{\"captures\":{\"2\":{\"name\":\"keyword.control.elseif.matlab\"},\"3\":{\"patterns\":[{\"include\":\"$self\"}]}},\"end\":\"^\",\"match\":\"(\\\\\\\\s*)(?:^|[\\\\\\\\s,;])(elseif)\\\\\\\\b(.*)$\\\\\\\\n?\",\"name\":\"meta.elseif.matlab\"},{\"captures\":{\"2\":{\"name\":\"keyword.control.else.matlab\"},\"3\":{\"patterns\":[{\"include\":\"$self\"}]}},\"end\":\"^\",\"match\":\"(\\\\\\\\s*)(?:^|[\\\\\\\\s,;])(else)\\\\\\\\b(.*)?$\\\\\\\\n?\",\"name\":\"meta.else.matlab\"},{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\s*(?:^|[\\\\\\\\s,;])(parfor)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.for.matlab\"}},\"end\":\"\\\\\\\\s*(?:^|[\\\\\\\\s,;])(end)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end.for.matlab\"}},\"name\":\"meta.parfor.matlab\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?!$)\",\"end\":\"$\\\\\\\\n?\",\"name\":\"meta.parfor-quantity.matlab\",\"patterns\":[{\"include\":\"$self\"}]},{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\s*(?:^|[\\\\\\\\s,;])(spmd)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.spmd.matlab\"}},\"end\":\"\\\\\\\\s*(?:^|[\\\\\\\\s,;])(end)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end.spmd.matlab\"}},\"name\":\"meta.spmd.matlab\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?!$)\",\"end\":\"$\\\\\\\\n?\",\"name\":\"meta.spmd-statement.matlab\",\"patterns\":[{\"include\":\"$self\"}]},{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\s*(?:^|[\\\\\\\\s,;])(switch)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.switch.matlab\"}},\"end\":\"\\\\\\\\s*(?:^|[\\\\\\\\s,;])(end)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end.switch.matlab\"}},\"name\":\"meta.switch.matlab\",\"patterns\":[{\"captures\":{\"2\":{\"name\":\"keyword.control.case.matlab\"},\"3\":{\"patterns\":[{\"include\":\"$self\"}]}},\"end\":\"^\",\"match\":\"(\\\\\\\\s*)(?:^|[\\\\\\\\s,;])(case)\\\\\\\\b(.*)$\\\\\\\\n?\",\"name\":\"meta.case.matlab\"},{\"captures\":{\"2\":{\"name\":\"keyword.control.otherwise.matlab\"},\"3\":{\"patterns\":[{\"include\":\"$self\"}]}},\"end\":\"^\",\"match\":\"(\\\\\\\\s*)(?:^|[\\\\\\\\s,;])(otherwise)\\\\\\\\b(.*)?$\\\\\\\\n?\",\"name\":\"meta.otherwise.matlab\"},{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\s*(?:^|[\\\\\\\\s,;])(try)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.try.matlab\"}},\"end\":\"\\\\\\\\s*(?:^|[\\\\\\\\s,;])(end)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end.try.matlab\"}},\"name\":\"meta.try.matlab\",\"patterns\":[{\"captures\":{\"2\":{\"name\":\"keyword.control.catch.matlab\"},\"3\":{\"patterns\":[{\"include\":\"$self\"}]}},\"end\":\"^\",\"match\":\"(\\\\\\\\s*)(?:^|[\\\\\\\\s,;])(catch)\\\\\\\\b(.*)?$\\\\\\\\n?\",\"name\":\"meta.catch.matlab\"},{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\s*(?:^|[\\\\\\\\s,;])(while)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.while.matlab\"}},\"end\":\"\\\\\\\\s*(?:^|[\\\\\\\\s,;])(end)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end.while.matlab\"}},\"name\":\"meta.while.matlab\",\"patterns\":[{\"include\":\"$self\"}]}]},\"braced_validator_list\":{\"begin\":\"\\\\\\\\s*({)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.matlab\"}},\"comment\":\"Validator functions. Treated as a recursive group to permit nested brackets, quotes, etc.\",\"end\":\"(})\",\"endCaptures\":{\"1\":{\"name\":\"storage.type.matlab\"}},\"patterns\":[{\"include\":\"#braced_validator_list\"},{\"include\":\"#validator_strings\"},{\"include\":\"#line_continuation\"},{\"captures\":{\"1\":{\"name\":\"storage.type.matlab\"}},\"match\":\"([^{}}'\\\\\"\\\\\\\\.]+)\"},{\"match\":\"\\\\\\\\.\",\"name\":\"storage.type.matlab\"}]},\"classdef\":{\"patterns\":[{\"begin\":\"(^\\\\\\\\s*)(classdef)\\\\\\\\b\\\\\\\\s*(.*)\",\"beginCaptures\":{\"2\":{\"name\":\"storage.type.class.matlab\"},\"3\":{\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"match\":\"[a-zA-Z][a-zA-Z0-9_]*\",\"name\":\"variable.parameter.class.matlab\"},{\"begin\":\"=\\\\\\\\s*\",\"end\":\",|(?=\\\\\\\\))\",\"patterns\":[{\"match\":\"true|false\",\"name\":\"constant.language.boolean.matlab\"},{\"include\":\"#string\"}]}]},\"2\":{\"name\":\"meta.class-declaration.matlab\"},\"3\":{\"name\":\"entity.name.section.class.matlab\"},\"4\":{\"name\":\"keyword.operator.other.matlab\"},\"5\":{\"patterns\":[{\"match\":\"[a-zA-Z][a-zA-Z0-9_]*(\\\\\\\\.[a-zA-Z][a-zA-Z0-9_]*)*\",\"name\":\"entity.other.inherited-class.matlab\"},{\"match\":\"&\",\"name\":\"keyword.operator.other.matlab\"}]},\"6\":{\"patterns\":[{\"include\":\"$self\"}]}},\"match\":\"(\\\\\\\\([^)]*\\\\\\\\))?\\\\\\\\s*(([a-zA-Z][a-zA-Z0-9_]*)(?:\\\\\\\\s*(<)\\\\\\\\s*([^%]*))?)\\\\\\\\s*($|(?=(%|...)).*)\"}]}},\"end\":\"\\\\\\\\s*(?:^|[\\\\\\\\s,;])(end)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end.class.matlab\"}},\"name\":\"meta.class.matlab\",\"patterns\":[{\"begin\":\"(^\\\\\\\\s*)(properties)\\\\\\\\b([^%]*)\\\\\\\\s*(\\\\\\\\([^)]*\\\\\\\\))?\\\\\\\\s*($|(?=%))\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.control.properties.matlab\"},\"3\":{\"patterns\":[{\"match\":\"[a-zA-Z][a-zA-Z0-9_]*\",\"name\":\"variable.parameter.properties.matlab\"},{\"begin\":\"=\\\\\\\\s*\",\"end\":\",|(?=\\\\\\\\))\",\"patterns\":[{\"match\":\"true|false\",\"name\":\"constant.language.boolean.matlab\"},{\"match\":\"public|protected|private\",\"name\":\"constant.language.access.matlab\"}]}]}},\"end\":\"\\\\\\\\s*(?:^|[\\\\\\\\s,;])(end)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end.properties.matlab\"}},\"name\":\"meta.properties.matlab\",\"patterns\":[{\"include\":\"#validators\"},{\"include\":\"$self\"}]},{\"begin\":\"(^\\\\\\\\s*)(methods)\\\\\\\\b([^%]*)\\\\\\\\s*(\\\\\\\\([^)]*\\\\\\\\))?\\\\\\\\s*($|(?=%))\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.control.methods.matlab\"},\"3\":{\"patterns\":[{\"match\":\"[a-zA-Z][a-zA-Z0-9_]*\",\"name\":\"variable.parameter.methods.matlab\"},{\"begin\":\"=\\\\\\\\s*\",\"end\":\",|(?=\\\\\\\\))\",\"patterns\":[{\"match\":\"true|false\",\"name\":\"constant.language.boolean.matlab\"},{\"match\":\"public|protected|private\",\"name\":\"constant.language.access.matlab\"}]}]}},\"end\":\"\\\\\\\\s*(?:^|[\\\\\\\\s,;])(end)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end.methods.matlab\"}},\"name\":\"meta.methods.matlab\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(^\\\\\\\\s*)(events)\\\\\\\\b([^%]*)\\\\\\\\s*(\\\\\\\\([^)]*\\\\\\\\))?\\\\\\\\s*($|(?=%))\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.control.events.matlab\"},\"3\":{\"patterns\":[{\"match\":\"[a-zA-Z][a-zA-Z0-9_]*\",\"name\":\"variable.parameter.events.matlab\"},{\"begin\":\"=\\\\\\\\s*\",\"end\":\",|(?=\\\\\\\\))\",\"patterns\":[{\"match\":\"true|false\",\"name\":\"constant.language.boolean.matlab\"},{\"match\":\"public|protected|private\",\"name\":\"constant.language.access.matlab\"}]}]}},\"end\":\"\\\\\\\\s*(?:^|[\\\\\\\\s,;])(end)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end.events.matlab\"}},\"name\":\"meta.events.matlab\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(^\\\\\\\\s*)(enumeration)\\\\\\\\b([^%]*)\\\\\\\\s*($|(?=%))\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.control.enumeration.matlab\"}},\"end\":\"\\\\\\\\s*(?:^|[\\\\\\\\s,;])(end)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end.enumeration.matlab\"}},\"name\":\"meta.enumeration.matlab\",\"patterns\":[{\"include\":\"$self\"}]},{\"include\":\"$self\"}]}]},\"command_dual\":{\"captures\":{\"1\":{\"name\":\"string.interpolated.matlab\"},\"2\":{\"name\":\"variable.other.command.matlab\"},\"28\":{\"name\":\"comment.line.percentage.matlab\"}},\"comment\":\"  1        2                                  3                                                    4                                                  5                                                    6                                                         7                                                                             8                 9                            10                   11                      12                         13                   14                                                               1516       17                                                             18                                                                                                                               19                      20                                     21                                    22                                      23                                         24                                         25                                                                         26            27                 28\",\"match\":\"^\\\\\\\\s*(([b-df-hk-moq-zA-HJ-MO-Z]\\\\\\\\w*|a|an|a([A-Za-mo-z0-9_]\\\\\\\\w*|n[A-Za-rt-z0-9_]\\\\\\\\w*|ns\\\\\\\\w+)|e|ep|e([A-Za-oq-z0-9_]\\\\\\\\w*|p[A-Za-rt-z0-9_]\\\\\\\\w*|ps\\\\\\\\w+)|in|i([A-Za-mo-z0-9_]\\\\\\\\w*|n[A-Za-eg-z0-9_]\\\\\\\\w*|nf\\\\\\\\w+)|I|In|I([A-Za-mo-z0-9_]\\\\\\\\w*|n[A-Za-eg-z0-9_]\\\\\\\\w*|nf\\\\\\\\w+)|j\\\\\\\\w+|N|Na|N([A-Zb-z0-9_]\\\\\\\\w*|a[A-MO-Za-z0-9_]\\\\\\\\w*|aN\\\\\\\\w+)|n|na|nar|narg|nargi|nargo|nargou|n([A-Zb-z0-9_]\\\\\\\\w*|a([A-Za-mo-qs-z0-9_]\\\\\\\\w*|n\\\\\\\\w+|r([A-Za-fh-z0-9_]\\\\\\\\w*|g([A-Za-hj-nq-z0-9_]\\\\\\\\w*|i([A-Za-mo-z0-9_]\\\\\\\\w*|n\\\\\\\\w+)|o([A-Za-tv-z0-9_]\\\\\\\\w*|u([A-Za-su-z]\\\\\\\\w*|t\\\\\\\\w+))))))|p|p[A-Za-hj-z0-9_]\\\\\\\\w*|pi\\\\\\\\w+)\\\\\\\\s+((([^\\\\\\\\s;,%()=.{&|~<>:+\\\\\\\\-*/\\\\\\\\\\\\\\\\@^'\\\\\"]|(?=')|(?=\\\\\"))|(\\\\\\\\.\\\\\\\\^|\\\\\\\\.\\\\\\\\*|\\\\\\\\./|\\\\\\\\.\\\\\\\\\\\\\\\\|\\\\\\\\.'|\\\\\\\\.\\\\\\\\(|&&|==|\\\\\\\\|\\\\\\\\||&(?=[^&])|\\\\\\\\|(?=[^\\\\\\\\|])|~=|<=|>=|~(?!=)|<(?!=)|>(?!=)|:|\\\\\\\\+|-|\\\\\\\\*|/|\\\\\\\\\\\\\\\\|@|\\\\\\\\^)([^\\\\\\\\s]|\\\\\\\\s*(?=%)|\\\\\\\\s+$|\\\\\\\\s+(,|;|\\\\\\\\)|}|\\\\\\\\]|&|\\\\\\\\||<|>|=|:|\\\\\\\\*|/|\\\\\\\\\\\\\\\\|\\\\\\\\^|@|(\\\\\\\\.[^\\\\\\\\d.]|\\\\\\\\.\\\\\\\\.[^.])))|(\\\\\\\\.[^^*/\\\\\\\\\\\\\\\\'(\\\\\\\\sA-Za-z]))([^%]|'[^']*'|\\\\\"[^\\\\\"]*\\\\\")*|(\\\\\\\\.(?=\\\\\\\\s)|\\\\\\\\.[A-Za-z]|(?={))([^(=\\\\\\\\'\\\\\"%]|==|'[^']*'|\\\\\"[^\\\\\"]*\\\\\"|\\\\\\\\(|\\\\\\\\([^)%]*\\\\\\\\)|\\\\\\\\[|\\\\\\\\[[^\\\\\\\\]%]*\\\\\\\\]|{|{[^}%]*})*(\\\\\\\\.\\\\\\\\.\\\\\\\\.[^%]*)?((?=%)|$)))(%.*)?$\"},\"comment_block\":{\"begin\":\"(^[\\\\\\\\s]*)%\\\\\\\\{[^\\\\\\\\n\\\\\\\\S]*+\\\\\\\\n\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.matlab\"}},\"end\":\"^[\\\\\\\\s]*%\\\\\\\\}[^\\\\\\\\n\\\\\\\\S]*+(?:\\\\\\\\n|$)\",\"name\":\"comment.block.percentage.matlab\",\"patterns\":[{\"include\":\"#comment_block\"},{\"match\":\"^[^\\\\\\\\n]*\\\\\\\\n\"}]},\"comments\":{\"patterns\":[{\"begin\":\"(^[ \\\\\\\\t]+)?(?=%%\\\\\\\\s)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.matlab\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"%%\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.matlab\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.double-percentage.matlab\",\"patterns\":[{\"begin\":\"\\\\\\\\G[^\\\\\\\\S\\\\\\\\n]*(?![\\\\\\\\n\\\\\\\\s])\",\"contentName\":\"meta.cell.matlab\",\"end\":\"(?=\\\\\\\\n)\"}]}]},{\"include\":\"#comment_block\"},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=%)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.matlab\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"%\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.matlab\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.percentage.matlab\"}]}]},\"conjugate_transpose\":{\"match\":\"((?<=[^\\\\\\\\s])|(?<=\\\\\\\\])|(?<=\\\\\\\\))|(?<=\\\\\\\\}))'\",\"name\":\"keyword.operator.transpose.matlab\"},\"constants\":{\"comment\":\"MATLAB Constants\",\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(eps|false|Inf|inf|intmax|intmin|namelengthmax|NaN|nan|on|off|realmax|realmin|true|pi)\\\\\\\\b\",\"name\":\"constant.language.matlab\"},\"control_statements\":{\"captures\":{\"1\":{\"name\":\"keyword.control.matlab\"}},\"match\":\"\\\\\\\\s*(?:^|[\\\\\\\\s,;])(break|continue|return)\\\\\\\\b\",\"name\":\"meta.control.matlab\"},\"curly_brackets\":{\"begin\":\"\\\\\\\\{\",\"comment\":\"We don't include $self here to avoid matching command syntax inside (), [], {}\",\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"#end_in_parens\"},{\"include\":\"#all_before_command_dual\"},{\"include\":\"#all_after_command_dual\"},{\"include\":\"#end_in_parens\"},{\"comment\":\"These block keywords pick up any such missed keywords when the block matching for things like (), if-end, etc. don't work. Useful for when someone has partially written\",\"include\":\"#block_keywords\"}]},\"end_in_parens\":{\"comment\":\"end as operator symbol\",\"match\":\"\\\\\\\\bend\\\\\\\\b\",\"name\":\"keyword.operator.symbols.matlab\"},\"function\":{\"patterns\":[{\"begin\":\"(^\\\\\\\\s*)(function)\\\\\\\\s+(?:(?:(\\\\\\\\[)([^\\\\\\\\]]*)(\\\\\\\\])|([a-zA-Z][a-zA-Z0-9_]*))\\\\\\\\s*=\\\\\\\\s*)?([a-zA-Z][a-zA-Z0-9_]*(\\\\\\\\.[a-zA-Z][a-zA-Z0-9_]*)*)\\\\\\\\s*\",\"beginCaptures\":{\"2\":{\"name\":\"storage.type.function.matlab\"},\"3\":{\"name\":\"punctuation.definition.arguments.begin.matlab\"},\"4\":{\"patterns\":[{\"match\":\"\\\\\\\\w+\",\"name\":\"variable.parameter.output.matlab\"}]},\"5\":{\"name\":\"punctuation.definition.arguments.end.matlab\"},\"6\":{\"name\":\"variable.parameter.output.function.matlab\"},\"7\":{\"name\":\"entity.name.function.matlab\"}},\"end\":\"\\\\\\\\s*(?:^|[\\\\\\\\s,;])(end)\\\\\\\\b(\\\\\\\\s*\\\\\\\\n)?\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end.function.matlab\"}},\"name\":\"meta.function.matlab\",\"patterns\":[{\"begin\":\"\\\\\\\\G\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"name\":\"meta.arguments.function.matlab\",\"patterns\":[{\"include\":\"#line_continuation\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"variable.parameter.input.matlab\"}]},{\"begin\":\"(^\\\\\\\\s*)(arguments)\\\\\\\\b([^%]*)\\\\\\\\s*(\\\\\\\\([^)]*\\\\\\\\))?\\\\\\\\s*($|(?=%))\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.control.arguments.matlab\"},\"3\":{\"patterns\":[{\"match\":\"[a-zA-Z][a-zA-Z0-9_]*\",\"name\":\"variable.parameter.arguments.matlab\"}]}},\"end\":\"\\\\\\\\s*(?:^|[\\\\\\\\s,;])(end)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end.arguments.matlab\"}},\"name\":\"meta.arguments.matlab\",\"patterns\":[{\"include\":\"#validators\"},{\"include\":\"$self\"}]},{\"include\":\"$self\"}]}]},\"global_persistent\":{\"captures\":{\"1\":{\"name\":\"keyword.control.globalpersistent.matlab\"}},\"match\":\"^\\\\\\\\s*(global|persistent)\\\\\\\\b\",\"name\":\"meta.globalpersistent.matlab\"},\"indexing_curly_brackets\":{\"Comment\":\"Match identifier{idx, idx, } and stop at newline without ... This helps with partially written code like x{idx \",\"begin\":\"([a-zA-Z][a-zA-Z0-9_\\\\\\\\.]*\\\\\\\\s*)\\\\\\\\{\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"$self\"}]}},\"comment\":\"We don't include $self here to avoid matching command syntax inside (), [], {}\",\"end\":\"(\\\\\\\\}|(?<!\\\\\\\\.\\\\\\\\.\\\\\\\\.).\\\\\\\\n)\",\"patterns\":[{\"include\":\"#end_in_parens\"},{\"include\":\"#all_before_command_dual\"},{\"include\":\"#all_after_command_dual\"},{\"include\":\"#end_in_parens\"},{\"comment\":\"These block keywords pick up any such missed keywords when the block matching for things like (), if-end, etc. don't work. Useful for when someone has partially written\",\"include\":\"#block_keywords\"}]},\"line_continuation\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.symbols.matlab\"},\"2\":{\"name\":\"comment.line.continuation.matlab\"}},\"comment\":\"Line continuations\",\"match\":\"(\\\\\\\\.\\\\\\\\.\\\\\\\\.)(.*)$\",\"name\":\"meta.linecontinuation.matlab\"},\"numbers\":{\"comment\":\"Valid numbers: 1, .1, 1.1, .1e1, 1.1e1, 1e1, 1i, 1j, 1e2j\",\"match\":\"(?<=[\\\\\\\\s\\\\\\\\-\\\\\\\\+\\\\\\\\*\\\\\\\\/\\\\\\\\\\\\\\\\=:\\\\\\\\[\\\\\\\\(\\\\\\\\{,]|^)\\\\\\\\d*\\\\\\\\.?\\\\\\\\d+([eE][+-]?\\\\\\\\d)?([0-9&&[^\\\\\\\\.]])*(i|j)?\\\\\\\\b\",\"name\":\"constant.numeric.matlab\"},\"operators\":{\"comment\":\"Operator symbols\",\"match\":\"(?<=\\\\\\\\s)(==|~=|>|>=|<|<=|&|&&|:|\\\\\\\\||\\\\\\\\|\\\\\\\\||\\\\\\\\+|-|\\\\\\\\*|\\\\\\\\.\\\\\\\\*|/|\\\\\\\\./|\\\\\\\\\\\\\\\\|\\\\\\\\.\\\\\\\\\\\\\\\\|\\\\\\\\^|\\\\\\\\.\\\\\\\\^)(?=\\\\\\\\s)\",\"name\":\"keyword.operator.symbols.matlab\"},\"parens\":{\"begin\":\"\\\\\\\\(\",\"comment\":\"We don't include $self here to avoid matching command syntax inside (), [], {}\",\"end\":\"(\\\\\\\\)|(?<!\\\\\\\\.\\\\\\\\.\\\\\\\\.).\\\\\\\\n)\",\"patterns\":[{\"include\":\"#end_in_parens\"},{\"include\":\"#all_before_command_dual\"},{\"include\":\"#all_after_command_dual\"},{\"comment\":\"These block keywords pick up any such missed keywords when the block matching for things like (), if-end, etc. don't work. Useful for when someone has partially written\",\"include\":\"#block_keywords\"}]},\"square_brackets\":{\"begin\":\"\\\\\\\\[\",\"comment\":\"We don't include $self here to avoid matching command syntax inside (), [], {}\",\"end\":\"\\\\\\\\]\",\"patterns\":[{\"include\":\"#all_before_command_dual\"},{\"include\":\"#all_after_command_dual\"},{\"comment\":\"These block keywords pick up any such missed keywords when the block matching for things like (), if-end, etc. don't work. Useful for when someone has partially written\",\"include\":\"#block_keywords\"}]},\"string\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"string.interpolated.matlab\"},\"2\":{\"name\":\"punctuation.definition.string.begin.matlab\"}},\"comment\":\"Shell command\",\"match\":\"^\\\\\\\\s*((!).*$\\\\\\\\n?)\"},{\"begin\":\"((?<=(\\\\\\\\[|\\\\\\\\(|\\\\\\\\{|=|\\\\\\\\s|;|:|,|~|<|>|&|\\\\\\\\||-|\\\\\\\\+|\\\\\\\\*|/|\\\\\\\\\\\\\\\\|\\\\\\\\.|\\\\\\\\^))|^)'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.matlab\"}},\"comment\":\"Character vector literal (single-quoted)\",\"end\":\"'(?=(\\\\\\\\[|\\\\\\\\(|\\\\\\\\{|\\\\\\\\]|\\\\\\\\)|\\\\\\\\}|=|~|<|>|&|\\\\\\\\||-|\\\\\\\\+|\\\\\\\\*|/|\\\\\\\\\\\\\\\\|\\\\\\\\.|\\\\\\\\^|\\\\\\\\s|;|:|,))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.matlab\"}},\"name\":\"string.quoted.single.matlab\",\"patterns\":[{\"match\":\"''\",\"name\":\"constant.character.escape.matlab\"},{\"match\":\"'(?=.)\",\"name\":\"invalid.illegal.unescaped-quote.matlab\"},{\"comment\":\"Operator symbols\",\"match\":\"((\\\\\\\\%([\\\\\\\\+\\\\\\\\-0]?\\\\\\\\d{0,3}(\\\\\\\\.\\\\\\\\d{1,3})?)(c|d|e|E|f|g|G|s|((b|t)?(o|u|x|X))))|\\\\\\\\%\\\\\\\\%|\\\\\\\\\\\\\\\\(b|f|n|r|t|\\\\\\\\\\\\\\\\))\",\"name\":\"constant.character.escape.matlab\"}]},{\"begin\":\"((?<=(\\\\\\\\[|\\\\\\\\(|\\\\\\\\{|=|\\\\\\\\s|;|:|,|~|<|>|&|\\\\\\\\||-|\\\\\\\\+|\\\\\\\\*|/|\\\\\\\\\\\\\\\\|\\\\\\\\.|\\\\\\\\^))|^)\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.matlab\"}},\"comment\":\"String literal (double-quoted)\",\"end\":\"\\\\\"(?=(\\\\\\\\[|\\\\\\\\(|\\\\\\\\{|\\\\\\\\]|\\\\\\\\)|\\\\\\\\}|=|~|<|>|&|\\\\\\\\||-|\\\\\\\\+|\\\\\\\\*|/|\\\\\\\\\\\\\\\\|\\\\\\\\.|\\\\\\\\^|\\\\\\\\||\\\\\\\\s|;|:|,))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.matlab\"}},\"name\":\"string.quoted.double.matlab\",\"patterns\":[{\"match\":\"\\\\\"\\\\\"\",\"name\":\"constant.character.escape.matlab\"},{\"match\":\"\\\\\"(?=.)\",\"name\":\"invalid.illegal.unescaped-quote.matlab\"}]}]},\"transpose\":{\"match\":\"\\\\\\\\.'\",\"name\":\"keyword.operator.transpose.matlab\"},\"validator_strings\":{\"comment\":\"Simplified string patterns nested inside validator functions which don't change scopes of matches.\",\"patterns\":[{\"patterns\":[{\"begin\":\"((?<=(\\\\\\\\[|\\\\\\\\(|\\\\\\\\{|=|\\\\\\\\s|;|:|,|~|<|>|&|\\\\\\\\||-|\\\\\\\\+|\\\\\\\\*|/|\\\\\\\\\\\\\\\\|\\\\\\\\.|\\\\\\\\^))|^)'\",\"comment\":\"Character vector literal (single-quoted)\",\"end\":\"'(?=(\\\\\\\\[|\\\\\\\\(|\\\\\\\\{|\\\\\\\\]|\\\\\\\\)|\\\\\\\\}|=|~|<|>|&|\\\\\\\\||-|\\\\\\\\+|\\\\\\\\*|/|\\\\\\\\\\\\\\\\|\\\\\\\\.|\\\\\\\\^|\\\\\\\\s|;|:|,))\",\"name\":\"storage.type.matlab\",\"patterns\":[{\"match\":\"''\"},{\"match\":\"'(?=.)\"},{\"match\":\"([^']+)\"}]},{\"begin\":\"((?<=(\\\\\\\\[|\\\\\\\\(|\\\\\\\\{|=|\\\\\\\\s|;|:|,|~|<|>|&|\\\\\\\\||-|\\\\\\\\+|\\\\\\\\*|/|\\\\\\\\\\\\\\\\|\\\\\\\\.|\\\\\\\\^))|^)\\\\\"\",\"comment\":\"String literal (double-quoted)\",\"end\":\"\\\\\"(?=(\\\\\\\\[|\\\\\\\\(|\\\\\\\\{|\\\\\\\\]|\\\\\\\\)|\\\\\\\\}|=|~|<|>|&|\\\\\\\\||-|\\\\\\\\+|\\\\\\\\*|/|\\\\\\\\\\\\\\\\|\\\\\\\\.|\\\\\\\\^|\\\\\\\\||\\\\\\\\s|;|:|,))\",\"name\":\"storage.type.matlab\",\"patterns\":[{\"match\":\"\\\\\"\\\\\"\"},{\"match\":\"\\\\\"(?=.)\"},{\"match\":\"[^\\\\\"]+\"}]}]}]},\"validators\":{\"begin\":\"\\\\\\\\s*[;]?\\\\\\\\s*([a-zA-Z][a-zA-Z0-9_\\\\\\\\.\\\\\\\\?]*)\",\"comment\":\"Property and argument validation. Match an identifier allowing . and ?.\",\"end\":\"([;\\\\\\\\n%=].*)\",\"endCaptures\":{\"1\":{\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"$self\"}]}},\"comment\":\"Match comments\",\"match\":\"([%].*)\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"$self\"}]}},\"comment\":\"Handle things like arg = val; nextArg\",\"match\":\"(=[^;]*)\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#validators\"}]}},\"comment\":\"End of property/argument patterns which start a new property/argument. Look for beginning of identifier after semicolon. Otherwise treat as regular code.\",\"match\":\"([\\\\\\\\n;]\\\\\\\\s*[a-zA-Z].*)\"},{\"include\":\"$self\"}]}},\"patterns\":[{\"include\":\"#line_continuation\"},{\"comment\":\"Size declaration\",\"match\":\"\\\\\\\\s*(\\\\\\\\([^\\\\\\\\)]*\\\\\\\\))\",\"name\":\"storage.type.matlab\"},{\"comment\":\"Type declaration\",\"match\":\"([a-zA-Z][a-zA-Z0-9_\\\\\\\\.]*)\",\"name\":\"storage.type.matlab\"},{\"include\":\"#braced_validator_list\"}]},\"variables\":{\"comment\":\"MATLAB variables\",\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(nargin|nargout|varargin|varargout)\\\\\\\\b\",\"name\":\"variable.other.function.matlab\"}},\"scopeName\":\"source.matlab\"}`)),a=[e];export{a as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/D94h4QjT.js",
    "content": "import{a1 as m}from\"./CU_MfyYc.js\";/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var s=Object.defineProperty,c=Object.getOwnPropertyDescriptor,l=Object.getOwnPropertyNames,d=Object.prototype.hasOwnProperty,p=(t,e,o,n)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let r of l(e))!d.call(t,r)&&r!==o&&s(t,r,{get:()=>e[r],enumerable:!(n=c(e,r))||n.enumerable});return t},h=(t,e,o)=>(p(t,e,\"default\"),o),a={};h(a,m);var i=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"menuitem\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"],b={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\$\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\s]+)/g,comments:{blockComment:[\"<!--\",\"-->\"]},brackets:[[\"<!--\",\"-->\"],[\"<\",\">\"],[\"{\",\"}\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"<\",close:\">\"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${i.join(\"|\")}))(\\\\w[\\\\w\\\\d]*)([^/>]*(?!/)>)[^<]*$`,\"i\"),afterText:/^<\\/(\\w[\\w\\d]*)\\s*>$/i,action:{indentAction:a.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${i.join(\"|\")}))(\\\\w[\\\\w\\\\d]*)([^/>]*(?!/)>)[^<]*$`,\"i\"),action:{indentAction:a.languages.IndentAction.Indent}}]},y={defaultToken:\"\",tokenPostfix:\"\",tokenizer:{root:[[/@@@@/],[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.root\"}],[/<!DOCTYPE/,\"metatag.html\",\"@doctype\"],[/<!--/,\"comment.html\",\"@comment\"],[/(<)([\\w\\-]+)(\\/>)/,[\"delimiter.html\",\"tag.html\",\"delimiter.html\"]],[/(<)(script)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@script\"}]],[/(<)(style)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@style\"}]],[/(<)([:\\w\\-]+)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@otherTag\"}]],[/(<\\/)([\\w\\-]+)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@otherTag\"}]],[/</,\"delimiter.html\"],[/[ \\t\\r\\n]+/],[/[^<@]+/]],doctype:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.comment\"}],[/[^>]+/,\"metatag.content.html\"],[/>/,\"metatag.html\",\"@pop\"]],comment:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.comment\"}],[/-->/,\"comment.html\",\"@pop\"],[/[^-]+/,\"comment.content.html\"],[/./,\"comment.content.html\"]],otherTag:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.otherTag\"}],[/\\/?>/,\"delimiter.html\",\"@pop\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/]],script:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.script\"}],[/type/,\"attribute.name\",\"@scriptAfterType\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.text/javascript\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/(<\\/)(script\\s*)(>)/,[\"delimiter.html\",\"tag.html\",{token:\"delimiter.html\",next:\"@pop\"}]]],scriptAfterType:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.scriptAfterType\"}],[/=/,\"delimiter\",\"@scriptAfterTypeEquals\"],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.text/javascript\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptAfterTypeEquals:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.scriptAfterTypeEquals\"}],[/\"([^\"]*)\"/,{token:\"attribute.value\",switchTo:\"@scriptWithCustomType.$1\"}],[/'([^']*)'/,{token:\"attribute.value\",switchTo:\"@scriptWithCustomType.$1\"}],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.text/javascript\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptWithCustomType:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.scriptWithCustomType.$S2\"}],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.$S2\",nextEmbedded:\"$S2\"}],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptEmbedded:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInEmbeddedState.scriptEmbedded.$S2\",nextEmbedded:\"@pop\"}],[/<\\/script/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}]],style:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.style\"}],[/type/,\"attribute.name\",\"@styleAfterType\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.text/css\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/(<\\/)(style\\s*)(>)/,[\"delimiter.html\",\"tag.html\",{token:\"delimiter.html\",next:\"@pop\"}]]],styleAfterType:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.styleAfterType\"}],[/=/,\"delimiter\",\"@styleAfterTypeEquals\"],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.text/css\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleAfterTypeEquals:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.styleAfterTypeEquals\"}],[/\"([^\"]*)\"/,{token:\"attribute.value\",switchTo:\"@styleWithCustomType.$1\"}],[/'([^']*)'/,{token:\"attribute.value\",switchTo:\"@styleWithCustomType.$1\"}],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.text/css\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleWithCustomType:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInSimpleState.styleWithCustomType.$S2\"}],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.$S2\",nextEmbedded:\"$S2\"}],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleEmbedded:[[/@[^@]/,{token:\"@rematch\",switchTo:\"@razorInEmbeddedState.styleEmbedded.$S2\",nextEmbedded:\"@pop\"}],[/<\\/style/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}]],razorInSimpleState:[[/@\\*/,\"comment.cs\",\"@razorBlockCommentTopLevel\"],[/@[{(]/,\"metatag.cs\",\"@razorRootTopLevel\"],[/(@)(\\s*[\\w]+)/,[\"metatag.cs\",{token:\"identifier.cs\",switchTo:\"@$S2.$S3\"}]],[/[})]/,{token:\"metatag.cs\",switchTo:\"@$S2.$S3\"}],[/\\*@/,{token:\"comment.cs\",switchTo:\"@$S2.$S3\"}]],razorInEmbeddedState:[[/@\\*/,\"comment.cs\",\"@razorBlockCommentTopLevel\"],[/@[{(]/,\"metatag.cs\",\"@razorRootTopLevel\"],[/(@)(\\s*[\\w]+)/,[\"metatag.cs\",{token:\"identifier.cs\",switchTo:\"@$S2.$S3\",nextEmbedded:\"$S3\"}]],[/[})]/,{token:\"metatag.cs\",switchTo:\"@$S2.$S3\",nextEmbedded:\"$S3\"}],[/\\*@/,{token:\"comment.cs\",switchTo:\"@$S2.$S3\",nextEmbedded:\"$S3\"}]],razorBlockCommentTopLevel:[[/\\*@/,\"@rematch\",\"@pop\"],[/[^*]+/,\"comment.cs\"],[/./,\"comment.cs\"]],razorBlockComment:[[/\\*@/,\"comment.cs\",\"@pop\"],[/[^*]+/,\"comment.cs\"],[/./,\"comment.cs\"]],razorRootTopLevel:[[/\\{/,\"delimiter.bracket.cs\",\"@razorRoot\"],[/\\(/,\"delimiter.parenthesis.cs\",\"@razorRoot\"],[/[})]/,\"@rematch\",\"@pop\"],{include:\"razorCommon\"}],razorRoot:[[/\\{/,\"delimiter.bracket.cs\",\"@razorRoot\"],[/\\(/,\"delimiter.parenthesis.cs\",\"@razorRoot\"],[/\\}/,\"delimiter.bracket.cs\",\"@pop\"],[/\\)/,\"delimiter.parenthesis.cs\",\"@pop\"],{include:\"razorCommon\"}],razorCommon:[[/[a-zA-Z_]\\w*/,{cases:{\"@razorKeywords\":{token:\"keyword.cs\"},\"@default\":\"identifier.cs\"}}],[/[\\[\\]]/,\"delimiter.array.cs\"],[/[ \\t\\r\\n]+/],[/\\/\\/.*$/,\"comment.cs\"],[/@\\*/,\"comment.cs\",\"@razorBlockComment\"],[/\"([^\"]*)\"/,\"string.cs\"],[/'([^']*)'/,\"string.cs\"],[/(<)([\\w\\-]+)(\\/>)/,[\"delimiter.html\",\"tag.html\",\"delimiter.html\"]],[/(<)([\\w\\-]+)(>)/,[\"delimiter.html\",\"tag.html\",\"delimiter.html\"]],[/(<\\/)([\\w\\-]+)(>)/,[\"delimiter.html\",\"tag.html\",\"delimiter.html\"]],[/[\\+\\-\\*\\%\\&\\|\\^\\~\\!\\=\\<\\>\\/\\?\\;\\:\\.\\,]/,\"delimiter.cs\"],[/\\d*\\d+[eE]([\\-+]?\\d+)?/,\"number.float.cs\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float.cs\"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,\"number.hex.cs\"],[/0[0-7']*[0-7]/,\"number.octal.cs\"],[/0[bB][0-1']*[0-1]/,\"number.binary.cs\"],[/\\d[\\d']*/,\"number.cs\"],[/\\d/,\"number.cs\"]]},razorKeywords:[\"abstract\",\"as\",\"async\",\"await\",\"base\",\"bool\",\"break\",\"by\",\"byte\",\"case\",\"catch\",\"char\",\"checked\",\"class\",\"const\",\"continue\",\"decimal\",\"default\",\"delegate\",\"do\",\"double\",\"descending\",\"explicit\",\"event\",\"extern\",\"else\",\"enum\",\"false\",\"finally\",\"fixed\",\"float\",\"for\",\"foreach\",\"from\",\"goto\",\"group\",\"if\",\"implicit\",\"in\",\"int\",\"interface\",\"internal\",\"into\",\"is\",\"lock\",\"long\",\"nameof\",\"new\",\"null\",\"namespace\",\"object\",\"operator\",\"out\",\"override\",\"orderby\",\"params\",\"private\",\"protected\",\"public\",\"readonly\",\"ref\",\"return\",\"switch\",\"struct\",\"sbyte\",\"sealed\",\"short\",\"sizeof\",\"stackalloc\",\"static\",\"string\",\"select\",\"this\",\"throw\",\"true\",\"try\",\"typeof\",\"uint\",\"ulong\",\"unchecked\",\"unsafe\",\"ushort\",\"using\",\"var\",\"virtual\",\"volatile\",\"void\",\"when\",\"while\",\"where\",\"yield\",\"model\",\"inject\"],escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/};export{b as conf,y as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/D9R-vmeu.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"C#\",\"name\":\"csharp\",\"patterns\":[{\"include\":\"#preprocessor\"},{\"include\":\"#comment\"},{\"include\":\"#directives\"},{\"include\":\"#declarations\"},{\"include\":\"#script-top-level\"}],\"repository\":{\"accessor-getter\":{\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.cs\"}},\"contentName\":\"meta.accessor.getter.cs\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.cs\"}},\"patterns\":[{\"include\":\"#statement\"}]},{\"include\":\"#accessor-getter-expression\"},{\"include\":\"#punctuation-semicolon\"}]},\"accessor-getter-expression\":{\"begin\":\"=>\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.arrow.cs\"}},\"contentName\":\"meta.accessor.getter.cs\",\"end\":\"(?=;|\\\\\\\\})\",\"patterns\":[{\"include\":\"#ref-modifier\"},{\"include\":\"#expression\"}]},\"accessor-setter\":{\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.cs\"}},\"contentName\":\"meta.accessor.setter.cs\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.cs\"}},\"patterns\":[{\"include\":\"#statement\"}]},{\"begin\":\"=>\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.arrow.cs\"}},\"contentName\":\"meta.accessor.setter.cs\",\"end\":\"(?=;|\\\\\\\\})\",\"patterns\":[{\"include\":\"#ref-modifier\"},{\"include\":\"#expression\"}]},{\"include\":\"#punctuation-semicolon\"}]},\"anonymous-method-expression\":{\"patterns\":[{\"begin\":\"((?:\\\\\\\\b(?:async|static)\\\\\\\\b\\\\\\\\s*)*)(?:(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\b|(\\\\\\\\()(?<tuple>(?:[^()]|\\\\\\\\(\\\\\\\\g<tuple>\\\\\\\\))*)(\\\\\\\\)))\\\\\\\\s*(=>)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"match\":\"async|static\",\"name\":\"storage.modifier.$0.cs\"}]},\"2\":{\"name\":\"entity.name.variable.parameter.cs\"},\"3\":{\"name\":\"punctuation.parenthesis.open.cs\"},\"4\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#explicit-anonymous-function-parameter\"},{\"include\":\"#implicit-anonymous-function-parameter\"},{\"include\":\"#default-argument\"},{\"include\":\"#punctuation-comma\"}]},\"5\":{\"name\":\"punctuation.parenthesis.close.cs\"},\"6\":{\"name\":\"keyword.operator.arrow.cs\"}},\"end\":\"(?=[,;)}])\",\"patterns\":[{\"include\":\"#intrusive\"},{\"begin\":\"(?={)\",\"end\":\"(?=[,;)}])\",\"patterns\":[{\"include\":\"#block\"},{\"include\":\"#intrusive\"}]},{\"begin\":\"\\\\\\\\b(ref)\\\\\\\\b|(?=\\\\\\\\S)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.ref.cs\"}},\"end\":\"(?=[,;)}])\",\"patterns\":[{\"include\":\"#expression\"}]}]},{\"begin\":\"((?:\\\\\\\\b(?:async|static)\\\\\\\\b\\\\\\\\s*)*)\\\\\\\\b(delegate)\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"match\":\"async|static\",\"name\":\"storage.modifier.$0.cs\"}]},\"2\":{\"name\":\"storage.type.delegate.cs\"}},\"end\":\"(?<=})|(?=[,;)}])\",\"patterns\":[{\"include\":\"#intrusive\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#intrusive\"},{\"include\":\"#explicit-anonymous-function-parameter\"},{\"include\":\"#punctuation-comma\"}]},{\"include\":\"#block\"}]}]},\"anonymous-object-creation-expression\":{\"begin\":\"\\\\\\\\b(new)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\{|//|/\\\\\\\\*|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.expression.new.cs\"}},\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#initializer-expression\"}]},\"argument\":{\"patterns\":[{\"match\":\"\\\\\\\\b(ref|in)\\\\\\\\b\",\"name\":\"storage.modifier.$1.cs\"},{\"begin\":\"\\\\\\\\b(out)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.out.cs\"}},\"end\":\"(?=,|\\\\\\\\)|\\\\\\\\])\",\"patterns\":[{\"include\":\"#declaration-expression-local\"},{\"include\":\"#expression\"}]},{\"include\":\"#expression\"}]},\"argument-list\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#named-argument\"},{\"include\":\"#argument\"},{\"include\":\"#punctuation-comma\"}]},\"array-creation-expression\":{\"begin\":\"\\\\\\\\b(new|stackalloc)\\\\\\\\b\\\\\\\\s*(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*|(?<tuple>\\\\\\\\s*\\\\\\\\((?:[^\\\\\\\\(\\\\\\\\)]|\\\\\\\\g<tuple>)+\\\\\\\\)))(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*(?:\\\\\\\\?)?\\\\\\\\s*)*))?\\\\\\\\s*(?=\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.expression.$1.cs\"},\"2\":{\"patterns\":[{\"include\":\"#type\"}]}},\"end\":\"(?<=\\\\\\\\])\",\"patterns\":[{\"include\":\"#bracketed-argument-list\"}]},\"as-expression\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.expression.as.cs\"},\"2\":{\"patterns\":[{\"include\":\"#type\"}]}},\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(as)\\\\\\\\b\\\\\\\\s*(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*|(?<tuple>\\\\\\\\s*\\\\\\\\((?:[^\\\\\\\\(\\\\\\\\)]|\\\\\\\\g<tuple>)+\\\\\\\\)))(?:\\\\\\\\s*\\\\\\\\?(?!\\\\\\\\?))?(?:\\\\\\\\s*\\\\\\\\[\\\\\\\\s*(?:,\\\\\\\\s*)*\\\\\\\\](?:\\\\\\\\s*\\\\\\\\?(?!\\\\\\\\?))?)*))?\"},\"assignment-expression\":{\"begin\":\"(?:\\\\\\\\*|/|%|\\\\\\\\+|-|\\\\\\\\?\\\\\\\\?|\\\\\\\\&|\\\\\\\\^|<<|>>>?|\\\\\\\\|)?=(?!=|>)\",\"beginCaptures\":{\"0\":{\"patterns\":[{\"include\":\"#assignment-operators\"}]}},\"end\":\"(?=[,\\\\\\\\)\\\\\\\\];}])\",\"patterns\":[{\"include\":\"#ref-modifier\"},{\"include\":\"#expression\"}]},\"assignment-operators\":{\"patterns\":[{\"match\":\"\\\\\\\\*=|/=|%=|\\\\\\\\+=|-=|\\\\\\\\?\\\\\\\\?=\",\"name\":\"keyword.operator.assignment.compound.cs\"},{\"match\":\"\\\\\\\\&=|\\\\\\\\^=|<<=|>>>?=|\\\\\\\\|=\",\"name\":\"keyword.operator.assignment.compound.bitwise.cs\"},{\"match\":\"\\\\\\\\=\",\"name\":\"keyword.operator.assignment.cs\"}]},\"attribute\":{\"patterns\":[{\"include\":\"#type-name\"},{\"include\":\"#type-arguments\"},{\"include\":\"#attribute-arguments\"}]},\"attribute-arguments\":{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#attribute-named-argument\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"attribute-named-argument\":{\"begin\":\"(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*(?==)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.variable.property.cs\"}},\"end\":\"(?=(,|\\\\\\\\)))\",\"patterns\":[{\"include\":\"#operator-assignment\"},{\"include\":\"#expression\"}]},\"attribute-section\":{\"begin\":\"(\\\\\\\\[)(assembly|module|field|event|method|param|property|return|type)?(\\\\\\\\:)?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.squarebracket.open.cs\"},\"2\":{\"name\":\"keyword.other.attribute-specifier.cs\"},\"3\":{\"name\":\"punctuation.separator.colon.cs\"}},\"end\":\"(\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.squarebracket.close.cs\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#attribute\"},{\"include\":\"#punctuation-comma\"}]},\"await-expression\":{\"match\":\"(?<!\\\\\\\\.\\\\\\\\s*)\\\\\\\\b(await)\\\\\\\\b\",\"name\":\"keyword.operator.expression.await.cs\"},\"await-statement\":{\"begin\":\"(?<!\\\\\\\\.\\\\\\\\s*)\\\\\\\\b(await)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.expression.await.cs\"}},\"end\":\"(?<=})|(?=;|})\",\"patterns\":[{\"include\":\"#foreach-statement\"},{\"include\":\"#using-statement\"},{\"include\":\"#expression\"}]},\"base-types\":{\"begin\":\":\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.colon.cs\"}},\"end\":\"(?=\\\\\\\\{|where|;)\",\"patterns\":[{\"include\":\"#type\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#preprocessor\"}]},\"block\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.cs\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.cs\"}},\"patterns\":[{\"include\":\"#statement\"}]},\"boolean-literal\":{\"patterns\":[{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\btrue\\\\\\\\b\",\"name\":\"constant.language.boolean.true.cs\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\bfalse\\\\\\\\b\",\"name\":\"constant.language.boolean.false.cs\"}]},\"bracketed-argument-list\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.squarebracket.open.cs\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.squarebracket.close.cs\"}},\"patterns\":[{\"include\":\"#named-argument\"},{\"include\":\"#argument\"},{\"include\":\"#punctuation-comma\"}]},\"bracketed-parameter-list\":{\"begin\":\"(?=(\\\\\\\\[))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.squarebracket.open.cs\"}},\"end\":\"(?=(\\\\\\\\]))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.squarebracket.close.cs\"}},\"patterns\":[{\"begin\":\"(?<=\\\\\\\\[)\",\"end\":\"(?=\\\\\\\\])\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#attribute-section\"},{\"include\":\"#parameter\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#variable-initializer\"}]}]},\"break-or-continue-statement\":{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(break|continue)\\\\\\\\b\",\"name\":\"keyword.control.flow.$1.cs\"},\"case-guard\":{\"patterns\":[{\"include\":\"#parenthesized-expression\"},{\"include\":\"#expression\"}]},\"cast-expression\":{\"captures\":{\"1\":{\"name\":\"punctuation.parenthesis.open.cs\"},\"2\":{\"patterns\":[{\"include\":\"#type\"}]},\"7\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"match\":\"(\\\\\\\\()\\\\\\\\s*(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*|(?<tuple>\\\\\\\\s*\\\\\\\\((?:[^\\\\\\\\(\\\\\\\\)]|\\\\\\\\g<tuple>)+\\\\\\\\)))(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*(?:\\\\\\\\?)?\\\\\\\\s*)*))\\\\\\\\s*(\\\\\\\\))(?=\\\\\\\\s*-*!*@?[_[:alnum:]\\\\\\\\(])\"},\"casted-constant-pattern\":{\"begin\":\"(\\\\\\\\()([\\\\\\\\s.:@_[:alnum:]]+)(\\\\\\\\))(?=[\\\\\\\\s+\\\\\\\\-!~]*@?[_[:alnum:]('\\\\\"]+)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.parenthesis.open.cs\"},\"2\":{\"patterns\":[{\"include\":\"#type-builtin\"},{\"include\":\"#type-name\"}]},\"3\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"end\":\"(?=[)}\\\\\\\\],;:?=&|^]|!=|\\\\\\\\b(and|or|when)\\\\\\\\b)\",\"patterns\":[{\"include\":\"#casted-constant-pattern\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#constant-pattern\"}]},{\"include\":\"#constant-pattern\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.alias.cs\"},\"2\":{\"name\":\"punctuation.separator.coloncolon.cs\"}},\"match\":\"(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*(\\\\\\\\:\\\\\\\\:)\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.cs\"},\"2\":{\"name\":\"punctuation.accessor.cs\"}},\"match\":\"(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*(\\\\\\\\.)\"},{\"match\":\"\\\\\\\\@?[_[:alpha:]][_[:alnum:]]*\",\"name\":\"variable.other.constant.cs\"}]},\"catch-clause\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(catch)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.exception.catch.cs\"}},\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#type\"}]},\"6\":{\"name\":\"entity.name.variable.local.cs\"}},\"match\":\"(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*|(?<tuple>\\\\\\\\s*\\\\\\\\((?:[^\\\\\\\\(\\\\\\\\)]|\\\\\\\\g<tuple>)+\\\\\\\\)))(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*(?:\\\\\\\\?)?\\\\\\\\s*)*))\\\\\\\\s*(?:(\\\\\\\\g<identifier>)\\\\\\\\b)?\"}]},{\"include\":\"#when-clause\"},{\"include\":\"#comment\"},{\"include\":\"#block\"}]},\"char-character-escape\":{\"match\":\"\\\\\\\\\\\\\\\\(x[0-9a-fA-F]{1,4}|u[0-9a-fA-F]{4}|.)\",\"name\":\"constant.character.escape.cs\"},\"char-literal\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.char.begin.cs\"}},\"end\":\"(\\\\\\\\')|((?:[^\\\\\\\\\\\\\\\\\\\\\\\\n])$)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.char.end.cs\"},\"2\":{\"name\":\"invalid.illegal.newline.cs\"}},\"name\":\"string.quoted.single.cs\",\"patterns\":[{\"include\":\"#char-character-escape\"}]},\"class-declaration\":{\"begin\":\"(?=(\\\\\\\\brecord\\\\\\\\b\\\\\\\\s+)?\\\\\\\\bclass\\\\\\\\b)\",\"end\":\"(?<=\\\\\\\\})|(?=;)\",\"patterns\":[{\"begin\":\"(\\\\\\\\b(record)\\\\\\\\b\\\\\\\\s+)?\\\\\\\\b(class)\\\\\\\\b\\\\\\\\s+(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\",\"beginCaptures\":{\"2\":{\"name\":\"storage.type.record.cs\"},\"3\":{\"name\":\"storage.type.class.cs\"},\"4\":{\"name\":\"entity.name.type.class.cs\"}},\"end\":\"(?=\\\\\\\\{)|(?=;)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-parameter-list\"},{\"include\":\"#parenthesized-parameter-list\"},{\"include\":\"#base-types\"},{\"include\":\"#generic-constraints\"}]},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.cs\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.cs\"}},\"patterns\":[{\"include\":\"#class-or-struct-members\"}]},{\"include\":\"#preprocessor\"},{\"include\":\"#comment\"}]},\"class-or-struct-members\":{\"patterns\":[{\"include\":\"#preprocessor\"},{\"include\":\"#comment\"},{\"include\":\"#storage-modifier\"},{\"include\":\"#type-declarations\"},{\"include\":\"#property-declaration\"},{\"include\":\"#field-declaration\"},{\"include\":\"#event-declaration\"},{\"include\":\"#indexer-declaration\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#constructor-declaration\"},{\"include\":\"#destructor-declaration\"},{\"include\":\"#operator-declaration\"},{\"include\":\"#conversion-operator-declaration\"},{\"include\":\"#method-declaration\"},{\"include\":\"#attribute-section\"},{\"include\":\"#punctuation-semicolon\"}]},\"combinator-pattern\":{\"match\":\"\\\\\\\\b(and|or|not)\\\\\\\\b\",\"name\":\"keyword.operator.expression.pattern.combinator.$1.cs\"},\"comment\":{\"patterns\":[{\"begin\":\"(^\\\\\\\\s+)?(///)(?!/)\",\"captures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.cs\"},\"2\":{\"name\":\"punctuation.definition.comment.cs\"}},\"name\":\"comment.block.documentation.cs\",\"patterns\":[{\"include\":\"#xml-doc-comment\"}],\"while\":\"^(\\\\\\\\s*)(///)(?!/)\"},{\"begin\":\"(^\\\\\\\\s+)?(/\\\\\\\\*\\\\\\\\*)(?!/)\",\"captures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.cs\"},\"2\":{\"name\":\"punctuation.definition.comment.cs\"}},\"end\":\"(^\\\\\\\\s+)?(\\\\\\\\*/)\",\"name\":\"comment.block.documentation.cs\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?=(?~\\\\\\\\*/)$)\",\"patterns\":[{\"include\":\"#xml-doc-comment\"}],\"while\":\"^(\\\\\\\\s*+)(\\\\\\\\*(?!/))?(?=(?~\\\\\\\\*/)$)\",\"whileCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.cs\"},\"2\":{\"name\":\"punctuation.definition.comment.cs\"}}},{\"include\":\"#xml-doc-comment\"}]},{\"begin\":\"(^\\\\\\\\s+)?(//).*$\",\"captures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.cs\"},\"2\":{\"name\":\"punctuation.definition.comment.cs\"}},\"name\":\"comment.line.double-slash.cs\",\"while\":\"^(\\\\\\\\s*)(//).*$\"},{\"begin\":\"/\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.cs\"}},\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.cs\"}]},\"conditional-operator\":{\"patterns\":[{\"match\":\"\\\\\\\\?(?!\\\\\\\\?|\\\\\\\\s*[.\\\\\\\\[])\",\"name\":\"keyword.operator.conditional.question-mark.cs\"},{\"match\":\":\",\"name\":\"keyword.operator.conditional.colon.cs\"}]},\"constant-pattern\":{\"patterns\":[{\"include\":\"#boolean-literal\"},{\"include\":\"#null-literal\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#char-literal\"},{\"include\":\"#string-literal\"},{\"include\":\"#raw-string-literal\"},{\"include\":\"#verbatim-string-literal\"},{\"include\":\"#type-operator-expression\"},{\"include\":\"#expression-operator-expression\"},{\"include\":\"#expression-operators\"},{\"include\":\"#casted-constant-pattern\"}]},\"constructor-declaration\":{\"begin\":\"(?=@?[_[:alpha:]][_[:alnum:]]*\\\\\\\\s*\\\\\\\\()\",\"end\":\"(?<=\\\\\\\\})|(?=;)\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.function.cs\"}},\"match\":\"(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\b\"},{\"begin\":\"(:)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.colon.cs\"}},\"end\":\"(?=\\\\\\\\{|=>)\",\"patterns\":[{\"include\":\"#constructor-initializer\"}]},{\"include\":\"#parenthesized-parameter-list\"},{\"include\":\"#preprocessor\"},{\"include\":\"#comment\"},{\"include\":\"#expression-body\"},{\"include\":\"#block\"}]},\"constructor-initializer\":{\"begin\":\"\\\\\\\\b(base|this)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"variable.language.$1.cs\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"include\":\"#argument-list\"}]},\"context-control-paren-statement\":{\"patterns\":[{\"include\":\"#fixed-statement\"},{\"include\":\"#lock-statement\"},{\"include\":\"#using-statement\"}]},\"context-control-statement\":{\"match\":\"\\\\\\\\b(checked|unchecked|unsafe)\\\\\\\\b(?!\\\\\\\\s*[@_[:alpha:](])\",\"name\":\"keyword.control.context.$1.cs\"},\"conversion-operator-declaration\":{\"begin\":\"(?<explicit_or_implicit_keyword>(?:\\\\\\\\b(?:explicit|implicit)))\\\\\\\\s*(?<operator_keyword>(?:\\\\\\\\b(?:operator)))\\\\\\\\s*(?<type_name>(?:(?:ref\\\\\\\\s+(?:readonly\\\\\\\\s+)?)?(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*|(?<tuple>\\\\\\\\s*\\\\\\\\((?:[^\\\\\\\\(\\\\\\\\)]|\\\\\\\\g<tuple>)+\\\\\\\\)))(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*(?:\\\\\\\\?)?\\\\\\\\s*)*))\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.modifier.explicit.cs\"}},\"match\":\"\\\\\\\\b(explicit)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.implicit.cs\"}},\"match\":\"\\\\\\\\b(implicit)\\\\\\\\b\"}]},\"2\":{\"name\":\"storage.type.operator.cs\"},\"3\":{\"patterns\":[{\"include\":\"#type\"}]}},\"end\":\"(?<=\\\\\\\\})|(?=;)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#parenthesized-parameter-list\"},{\"include\":\"#expression-body\"},{\"include\":\"#block\"}]},\"declaration-expression-local\":{\"captures\":{\"1\":{\"name\":\"storage.type.var.cs\"},\"2\":{\"patterns\":[{\"include\":\"#type\"}]},\"7\":{\"name\":\"entity.name.variable.local.cs\"}},\"match\":\"(?:\\\\\\\\b(var)\\\\\\\\b|(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*|(?<tuple>\\\\\\\\s*\\\\\\\\((?:[^\\\\\\\\(\\\\\\\\)]|\\\\\\\\g<tuple>)+\\\\\\\\)))(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*(?:\\\\\\\\?)?\\\\\\\\s*)*)))\\\\\\\\s+(\\\\\\\\g<identifier>)\\\\\\\\b\\\\\\\\s*(?=[,)\\\\\\\\]])\"},\"declaration-expression-tuple\":{\"captures\":{\"1\":{\"name\":\"storage.type.var.cs\"},\"2\":{\"patterns\":[{\"include\":\"#type\"}]},\"7\":{\"name\":\"entity.name.variable.tuple-element.cs\"}},\"match\":\"(?:\\\\\\\\b(var)\\\\\\\\b|(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*|(?<tuple>\\\\\\\\s*\\\\\\\\((?:[^\\\\\\\\(\\\\\\\\)]|\\\\\\\\g<tuple>)+\\\\\\\\)))(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*(?:\\\\\\\\?)?\\\\\\\\s*)*)))\\\\\\\\s+(\\\\\\\\g<identifier>)\\\\\\\\b\\\\\\\\s*(?=[,)])\"},\"declarations\":{\"patterns\":[{\"include\":\"#namespace-declaration\"},{\"include\":\"#type-declarations\"},{\"include\":\"#punctuation-semicolon\"}]},\"default-argument\":{\"begin\":\"=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.assignment.cs\"}},\"end\":\"(?=,|\\\\\\\\))\",\"patterns\":[{\"include\":\"#expression\"}]},\"default-literal-expression\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.expression.default.cs\"}},\"match\":\"\\\\\\\\b(default)\\\\\\\\b\"},\"delegate-declaration\":{\"begin\":\"(?:\\\\\\\\b(delegate)\\\\\\\\b)\\\\\\\\s+(?<type_name>(?:(?:ref\\\\\\\\s+(?:readonly\\\\\\\\s+)?)?(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*|(?<tuple>\\\\\\\\s*\\\\\\\\((?:[^\\\\\\\\(\\\\\\\\)]|\\\\\\\\g<tuple>)+\\\\\\\\)))(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*(?:\\\\\\\\?)?\\\\\\\\s*)*))\\\\\\\\s+(\\\\\\\\g<identifier>)\\\\\\\\s*(<([^<>]+)>)?\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.delegate.cs\"},\"2\":{\"patterns\":[{\"include\":\"#type\"}]},\"7\":{\"name\":\"entity.name.type.delegate.cs\"},\"8\":{\"patterns\":[{\"include\":\"#type-parameter-list\"}]}},\"end\":\"(?=;)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#parenthesized-parameter-list\"},{\"include\":\"#generic-constraints\"}]},\"designation-pattern\":{\"patterns\":[{\"include\":\"#intrusive\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#punctuation-comma\"},{\"include\":\"#designation-pattern\"}]},{\"include\":\"#simple-designation-pattern\"}]},\"destructor-declaration\":{\"begin\":\"(~)(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.tilde.cs\"},\"2\":{\"name\":\"entity.name.function.cs\"}},\"end\":\"(?<=\\\\\\\\})|(?=;)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#parenthesized-parameter-list\"},{\"include\":\"#expression-body\"},{\"include\":\"#block\"}]},\"directives\":{\"patterns\":[{\"include\":\"#extern-alias-directive\"},{\"include\":\"#using-directive\"},{\"include\":\"#attribute-section\"},{\"include\":\"#punctuation-semicolon\"}]},\"discard-pattern\":{\"match\":\"_(?![_[:alnum:]])\",\"name\":\"variable.language.discard.cs\"},\"do-statement\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(do)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.loop.do.cs\"}},\"end\":\"(?=;|})\",\"patterns\":[{\"include\":\"#statement\"}]},\"double-raw-interpolation\":{\"begin\":\"(?<=[^\\\\\\\\{][^\\\\\\\\{]|^)((?:\\\\\\\\{)*)(\\\\\\\\{\\\\\\\\{)(?=[^\\\\\\\\{])\",\"beginCaptures\":{\"1\":{\"name\":\"string.quoted.double.cs\"},\"2\":{\"name\":\"punctuation.definition.interpolation.begin.cs\"}},\"end\":\"\\\\\\\\}\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.interpolation.end.cs\"}},\"name\":\"meta.interpolation.cs\",\"patterns\":[{\"include\":\"#expression\"}]},\"element-access-expression\":{\"begin\":\"(?:(?:(\\\\\\\\?)\\\\\\\\s*)?(\\\\\\\\.)\\\\\\\\s*|(->)\\\\\\\\s*)?(?:(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*)?(?:(\\\\\\\\?)\\\\\\\\s*)?(?=\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.null-conditional.cs\"},\"2\":{\"name\":\"punctuation.accessor.cs\"},\"3\":{\"name\":\"punctuation.accessor.pointer.cs\"},\"4\":{\"name\":\"variable.other.object.property.cs\"},\"5\":{\"name\":\"keyword.operator.null-conditional.cs\"}},\"end\":\"(?<=\\\\\\\\])(?!\\\\\\\\s*\\\\\\\\[)\",\"patterns\":[{\"include\":\"#bracketed-argument-list\"}]},\"else-part\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(else)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.conditional.else.cs\"}},\"end\":\"(?<=})|(?=;)\",\"patterns\":[{\"include\":\"#statement\"}]},\"enum-declaration\":{\"begin\":\"(?=\\\\\\\\benum\\\\\\\\b)\",\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"begin\":\"(?=enum)\",\"end\":\"(?=\\\\\\\\{)\",\"patterns\":[{\"include\":\"#comment\"},{\"captures\":{\"1\":{\"name\":\"storage.type.enum.cs\"},\"2\":{\"name\":\"entity.name.type.enum.cs\"}},\"match\":\"(enum)\\\\\\\\s+(@?[_[:alpha:]][_[:alnum:]]*)\"},{\"begin\":\":\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.colon.cs\"}},\"end\":\"(?=\\\\\\\\{)\",\"patterns\":[{\"include\":\"#type\"}]}]},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.cs\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.cs\"}},\"patterns\":[{\"include\":\"#preprocessor\"},{\"include\":\"#comment\"},{\"include\":\"#attribute-section\"},{\"include\":\"#punctuation-comma\"},{\"begin\":\"@?[_[:alpha:]][_[:alnum:]]*\",\"beginCaptures\":{\"0\":{\"name\":\"entity.name.variable.enum-member.cs\"}},\"end\":\"(?=(,|\\\\\\\\}))\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#variable-initializer\"}]}]},{\"include\":\"#preprocessor\"},{\"include\":\"#comment\"}]},\"event-accessors\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.cs\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.cs\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#attribute-section\"},{\"begin\":\"\\\\\\\\b(add|remove)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\{|;|=>|//|/\\\\\\\\*|$)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.accessor.$1.cs\"}},\"end\":\"(?<=\\\\\\\\}|;)|(?=\\\\\\\\})\",\"patterns\":[{\"include\":\"#accessor-setter\"}]}]},\"event-declaration\":{\"begin\":\"\\\\\\\\b(event)\\\\\\\\b\\\\\\\\s*(?<return_type>(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*|(?<tuple>\\\\\\\\s*\\\\\\\\((?:[^\\\\\\\\(\\\\\\\\)]|\\\\\\\\g<tuple>)+\\\\\\\\)))(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*(?:\\\\\\\\?)?\\\\\\\\s*)*))\\\\\\\\s+)(?<interface_name>\\\\\\\\g<type_name>\\\\\\\\s*\\\\\\\\.\\\\\\\\s*)?(\\\\\\\\g<identifier>)\\\\\\\\s*(?=\\\\\\\\{|;|,|=|//|/\\\\\\\\*|$)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.event.cs\"},\"2\":{\"patterns\":[{\"include\":\"#type\"}]},\"8\":{\"patterns\":[{\"include\":\"#type\"},{\"include\":\"#punctuation-accessor\"}]},\"9\":{\"name\":\"entity.name.variable.event.cs\"}},\"end\":\"(?<=\\\\\\\\})|(?=;)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#event-accessors\"},{\"match\":\"@?[_[:alpha:]][_[:alnum:]]*\",\"name\":\"entity.name.variable.event.cs\"},{\"include\":\"#punctuation-comma\"},{\"begin\":\"=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.assignment.cs\"}},\"end\":\"(?<=,)|(?=;)\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]}]},\"explicit-anonymous-function-parameter\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.$1.cs\"},\"2\":{\"patterns\":[{\"include\":\"#type\"}]},\"7\":{\"name\":\"entity.name.variable.parameter.cs\"}},\"match\":\"(?:\\\\\\\\b(ref|params|out|in)\\\\\\\\b\\\\\\\\s*)?(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args><(?:[^<>]|\\\\\\\\g<type_args>)*>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*|(?<tuple>\\\\\\\\s*\\\\\\\\((?:[^()]|\\\\\\\\g<tuple>)*\\\\\\\\)))(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*(?:\\\\\\\\?)?\\\\\\\\s*)*))\\\\\\\\s*\\\\\\\\b(\\\\\\\\g<identifier>)\\\\\\\\b\"},\"expression\":{\"patterns\":[{\"include\":\"#preprocessor\"},{\"include\":\"#comment\"},{\"include\":\"#expression-operator-expression\"},{\"include\":\"#type-operator-expression\"},{\"include\":\"#default-literal-expression\"},{\"include\":\"#throw-expression\"},{\"include\":\"#raw-interpolated-string\"},{\"include\":\"#interpolated-string\"},{\"include\":\"#verbatim-interpolated-string\"},{\"include\":\"#type-builtin\"},{\"include\":\"#language-variable\"},{\"include\":\"#switch-statement-or-expression\"},{\"include\":\"#with-expression\"},{\"include\":\"#conditional-operator\"},{\"include\":\"#assignment-expression\"},{\"include\":\"#expression-operators\"},{\"include\":\"#await-expression\"},{\"include\":\"#query-expression\"},{\"include\":\"#as-expression\"},{\"include\":\"#is-expression\"},{\"include\":\"#anonymous-method-expression\"},{\"include\":\"#object-creation-expression\"},{\"include\":\"#array-creation-expression\"},{\"include\":\"#anonymous-object-creation-expression\"},{\"include\":\"#invocation-expression\"},{\"include\":\"#member-access-expression\"},{\"include\":\"#element-access-expression\"},{\"include\":\"#cast-expression\"},{\"include\":\"#literal\"},{\"include\":\"#parenthesized-expression\"},{\"include\":\"#tuple-deconstruction-assignment\"},{\"include\":\"#initializer-expression\"},{\"include\":\"#identifier\"}]},\"expression-body\":{\"begin\":\"=>\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.arrow.cs\"}},\"end\":\"(?=[,\\\\\\\\);}])\",\"patterns\":[{\"include\":\"#ref-modifier\"},{\"include\":\"#expression\"}]},\"expression-operator-expression\":{\"begin\":\"\\\\\\\\b(checked|unchecked|nameof)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.expression.$1.cs\"},\"2\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"expression-operators\":{\"patterns\":[{\"match\":\"<<|>>>?\",\"name\":\"keyword.operator.bitwise.shift.cs\"},{\"match\":\"==|!=\",\"name\":\"keyword.operator.comparison.cs\"},{\"match\":\"<=|>=|<|>\",\"name\":\"keyword.operator.relational.cs\"},{\"match\":\"\\\\\\\\!|&&|\\\\\\\\|\\\\\\\\|\",\"name\":\"keyword.operator.logical.cs\"},{\"match\":\"\\\\\\\\&|~|\\\\\\\\^|\\\\\\\\|\",\"name\":\"keyword.operator.bitwise.cs\"},{\"match\":\"--\",\"name\":\"keyword.operator.decrement.cs\"},{\"match\":\"\\\\\\\\+\\\\\\\\+\",\"name\":\"keyword.operator.increment.cs\"},{\"match\":\"\\\\\\\\+|-(?!>)|\\\\\\\\*|/|%\",\"name\":\"keyword.operator.arithmetic.cs\"},{\"match\":\"\\\\\\\\?\\\\\\\\?\",\"name\":\"keyword.operator.null-coalescing.cs\"},{\"match\":\"\\\\\\\\.\\\\\\\\.\",\"name\":\"keyword.operator.range.cs\"}]},\"extern-alias-directive\":{\"begin\":\"\\\\\\\\b(extern)\\\\\\\\s+(alias)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.directive.extern.cs\"},\"2\":{\"name\":\"keyword.other.directive.alias.cs\"}},\"end\":\"(?=;)\",\"patterns\":[{\"match\":\"\\\\\\\\@?[_[:alpha:]][_[:alnum:]]*\",\"name\":\"variable.other.alias.cs\"}]},\"field-declaration\":{\"begin\":\"(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*|(?<tuple>\\\\\\\\s*\\\\\\\\((?:[^\\\\\\\\(\\\\\\\\)]|\\\\\\\\g<tuple>)+\\\\\\\\)))(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*(?:\\\\\\\\?)?\\\\\\\\s*)*))\\\\\\\\s+(\\\\\\\\g<identifier>)\\\\\\\\s*(?!=>|==)(?=,|;|=|$)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#type\"}]},\"6\":{\"name\":\"entity.name.variable.field.cs\"}},\"end\":\"(?=;)\",\"patterns\":[{\"match\":\"@?[_[:alpha:]][_[:alnum:]]*\",\"name\":\"entity.name.variable.field.cs\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#comment\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#class-or-struct-members\"}]},\"finally-clause\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(finally)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.exception.finally.cs\"}},\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#block\"}]},\"fixed-statement\":{\"begin\":\"\\\\\\\\b(fixed)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.context.fixed.cs\"}},\"end\":\"(?<=\\\\\\\\))|(?=;|})\",\"patterns\":[{\"include\":\"#intrusive\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#intrusive\"},{\"include\":\"#local-variable-declaration\"}]}]},\"for-statement\":{\"begin\":\"\\\\\\\\b(for)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.loop.for.cs\"}},\"end\":\"(?<=\\\\\\\\))|(?=;|})\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"begin\":\"(?=[^;\\\\\\\\)])\",\"end\":\"(?=;|\\\\\\\\))\",\"patterns\":[{\"include\":\"#intrusive\"},{\"include\":\"#local-variable-declaration\"}]},{\"begin\":\"(?=;)\",\"end\":\"(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#intrusive\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#punctuation-semicolon\"}]}]}]},\"foreach-statement\":{\"begin\":\"\\\\\\\\b(foreach)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.loop.foreach.cs\"}},\"end\":\"(?<=\\\\\\\\))|(?=;|})\",\"patterns\":[{\"include\":\"#intrusive\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#intrusive\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.ref.cs\"},\"2\":{\"name\":\"storage.type.var.cs\"},\"3\":{\"patterns\":[{\"include\":\"#type\"}]},\"8\":{\"name\":\"entity.name.variable.local.cs\"},\"9\":{\"name\":\"keyword.control.loop.in.cs\"}},\"match\":\"(?:(?:(\\\\\\\\bref)\\\\\\\\s+)?(\\\\\\\\bvar\\\\\\\\b)|(?<type_name>(?:(?:ref\\\\\\\\s+)?(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*|(?<tuple>\\\\\\\\s*\\\\\\\\((?:[^\\\\\\\\(\\\\\\\\)]|\\\\\\\\g<tuple>)+\\\\\\\\)))(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*(?:\\\\\\\\?)?\\\\\\\\s*)*)))\\\\\\\\s+(\\\\\\\\g<identifier>)\\\\\\\\s+\\\\\\\\b(in)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"storage.type.var.cs\"},\"2\":{\"patterns\":[{\"include\":\"#tuple-declaration-deconstruction-element-list\"}]},\"3\":{\"name\":\"keyword.control.loop.in.cs\"}},\"match\":\"(?:\\\\\\\\b(var)\\\\\\\\b\\\\\\\\s*)?(?<tuple>\\\\\\\\((?:[^\\\\\\\\(\\\\\\\\)]|\\\\\\\\g<tuple>)+\\\\\\\\))\\\\\\\\s+\\\\\\\\b(in)\\\\\\\\b\"},{\"include\":\"#expression\"}]}]},\"generic-constraints\":{\"begin\":\"(where)\\\\\\\\s+(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.where.cs\"},\"2\":{\"name\":\"entity.name.type.type-parameter.cs\"},\"3\":{\"name\":\"punctuation.separator.colon.cs\"}},\"end\":\"(?=\\\\\\\\{|where|;|=>)\",\"patterns\":[{\"match\":\"\\\\\\\\bclass\\\\\\\\b\",\"name\":\"storage.type.class.cs\"},{\"match\":\"\\\\\\\\bstruct\\\\\\\\b\",\"name\":\"storage.type.struct.cs\"},{\"match\":\"\\\\\\\\bdefault\\\\\\\\b\",\"name\":\"keyword.other.constraint.default.cs\"},{\"match\":\"\\\\\\\\bnotnull\\\\\\\\b\",\"name\":\"keyword.other.constraint.notnull.cs\"},{\"match\":\"\\\\\\\\bunmanaged\\\\\\\\b\",\"name\":\"keyword.other.constraint.unmanaged.cs\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.expression.new.cs\"},\"2\":{\"name\":\"punctuation.parenthesis.open.cs\"},\"3\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"match\":\"(new)\\\\\\\\s*(\\\\\\\\()\\\\\\\\s*(\\\\\\\\))\"},{\"include\":\"#type\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#generic-constraints\"}]},\"goto-statement\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(goto)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.flow.goto.cs\"}},\"end\":\"(?=[;}])\",\"patterns\":[{\"begin\":\"\\\\\\\\b(case)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.conditional.case.cs\"}},\"end\":\"(?=[;}])\",\"patterns\":[{\"include\":\"#expression\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.conditional.default.cs\"}},\"match\":\"\\\\\\\\b(default)\\\\\\\\b\"},{\"match\":\"@?[_[:alpha:]][_[:alnum:]]*\",\"name\":\"entity.name.label.cs\"}]},\"group-by\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.expression.query.by.cs\"}},\"match\":\"\\\\\\\\b(by)\\\\\\\\b\\\\\\\\s*\"},\"group-clause\":{\"begin\":\"\\\\\\\\b(group)\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.expression.query.group.cs\"}},\"end\":\"(?=;|\\\\\\\\))\",\"patterns\":[{\"include\":\"#group-by\"},{\"include\":\"#group-into\"},{\"include\":\"#query-body\"},{\"include\":\"#expression\"}]},\"group-into\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.expression.query.into.cs\"},\"2\":{\"name\":\"entity.name.variable.range-variable.cs\"}},\"match\":\"\\\\\\\\b(into)\\\\\\\\b\\\\\\\\s*(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\b\\\\\\\\s*\"},\"identifier\":{\"match\":\"@?[_[:alpha:]][_[:alnum:]]*\",\"name\":\"variable.other.readwrite.cs\"},\"if-statement\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(if)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.conditional.if.cs\"}},\"end\":\"(?<=})|(?=;)\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#expression\"}]},{\"include\":\"#statement\"}]},\"implicit-anonymous-function-parameter\":{\"match\":\"\\\\\\\\@?[_[:alpha:]][_[:alnum:]]*\\\\\\\\b\",\"name\":\"entity.name.variable.parameter.cs\"},\"indexer-declaration\":{\"begin\":\"(?<return_type>(?<type_name>(?:(?:ref\\\\\\\\s+(?:readonly\\\\\\\\s+)?)?(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*|(?<tuple>\\\\\\\\s*\\\\\\\\((?:[^\\\\\\\\(\\\\\\\\)]|\\\\\\\\g<tuple>)+\\\\\\\\)))(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*(?:\\\\\\\\?)?\\\\\\\\s*)*))\\\\\\\\s+)(?<interface_name>\\\\\\\\g<type_name>\\\\\\\\s*\\\\\\\\.\\\\\\\\s*)?(?<indexer_name>this)\\\\\\\\s*(?=\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#type\"}]},\"7\":{\"patterns\":[{\"include\":\"#type\"},{\"include\":\"#punctuation-accessor\"}]},\"8\":{\"name\":\"variable.language.this.cs\"}},\"end\":\"(?<=\\\\\\\\})|(?=;)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#bracketed-parameter-list\"},{\"include\":\"#property-accessors\"},{\"include\":\"#accessor-getter-expression\"},{\"include\":\"#variable-initializer\"}]},\"initializer-expression\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.cs\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.cs\"}},\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"interface-declaration\":{\"begin\":\"(?=\\\\\\\\binterface\\\\\\\\b)\",\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"begin\":\"(interface)\\\\\\\\b\\\\\\\\s+(@?[_[:alpha:]][_[:alnum:]]*)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.interface.cs\"},\"2\":{\"name\":\"entity.name.type.interface.cs\"}},\"end\":\"(?=\\\\\\\\{)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-parameter-list\"},{\"include\":\"#base-types\"},{\"include\":\"#generic-constraints\"}]},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.cs\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.cs\"}},\"patterns\":[{\"include\":\"#interface-members\"}]},{\"include\":\"#preprocessor\"},{\"include\":\"#comment\"}]},\"interface-members\":{\"patterns\":[{\"include\":\"#preprocessor\"},{\"include\":\"#comment\"},{\"include\":\"#storage-modifier\"},{\"include\":\"#property-declaration\"},{\"include\":\"#event-declaration\"},{\"include\":\"#indexer-declaration\"},{\"include\":\"#method-declaration\"},{\"include\":\"#operator-declaration\"},{\"include\":\"#attribute-section\"},{\"include\":\"#punctuation-semicolon\"}]},\"interpolated-string\":{\"begin\":\"\\\\\\\\$\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cs\"}},\"end\":\"(\\\\\")|((?:[^\\\\\\\\\\\\\\\\\\\\\\\\n])$)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.cs\"},\"2\":{\"name\":\"invalid.illegal.newline.cs\"}},\"name\":\"string.quoted.double.cs\",\"patterns\":[{\"include\":\"#string-character-escape\"},{\"include\":\"#interpolation\"}]},\"interpolation\":{\"begin\":\"(?<=[^\\\\\\\\{]|^)((?:\\\\\\\\{\\\\\\\\{)*)(\\\\\\\\{)(?=[^\\\\\\\\{])\",\"beginCaptures\":{\"1\":{\"name\":\"string.quoted.double.cs\"},\"2\":{\"name\":\"punctuation.definition.interpolation.begin.cs\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.interpolation.end.cs\"}},\"name\":\"meta.interpolation.cs\",\"patterns\":[{\"include\":\"#expression\"}]},\"intrusive\":{\"patterns\":[{\"include\":\"#preprocessor\"},{\"include\":\"#comment\"}]},\"invocation-expression\":{\"begin\":\"(?:(?:(\\\\\\\\?)\\\\\\\\s*)?(\\\\\\\\.)\\\\\\\\s*|(->)\\\\\\\\s*)?(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*(<(?<type_args>[^<>()]++|<\\\\\\\\g<type_args>*+>|\\\\\\\\(\\\\\\\\g<type_args>*+\\\\\\\\))*+>\\\\\\\\s*)?(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.null-conditional.cs\"},\"2\":{\"name\":\"punctuation.accessor.cs\"},\"3\":{\"name\":\"punctuation.accessor.pointer.cs\"},\"4\":{\"name\":\"entity.name.function.cs\"},\"5\":{\"patterns\":[{\"include\":\"#type-arguments\"}]}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"include\":\"#argument-list\"}]},\"is-expression\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(is)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.expression.pattern.is.cs\"}},\"end\":\"(?=[)}\\\\\\\\],;:?=&|^]|!=)\",\"patterns\":[{\"include\":\"#pattern\"}]},\"join-clause\":{\"begin\":\"\\\\\\\\b(join)\\\\\\\\b\\\\\\\\s*(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*|(?<tuple>\\\\\\\\s*\\\\\\\\((?:[^\\\\\\\\(\\\\\\\\)]|\\\\\\\\g<tuple>)+\\\\\\\\)))(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*(?:\\\\\\\\?)?\\\\\\\\s*)*))?\\\\\\\\s+(\\\\\\\\g<identifier>)\\\\\\\\b\\\\\\\\s*\\\\\\\\b(in)\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.expression.query.join.cs\"},\"2\":{\"patterns\":[{\"include\":\"#type\"}]},\"7\":{\"name\":\"entity.name.variable.range-variable.cs\"},\"8\":{\"name\":\"keyword.operator.expression.query.in.cs\"}},\"end\":\"(?=;|\\\\\\\\))\",\"patterns\":[{\"include\":\"#join-on\"},{\"include\":\"#join-equals\"},{\"include\":\"#join-into\"},{\"include\":\"#query-body\"},{\"include\":\"#expression\"}]},\"join-equals\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.expression.query.equals.cs\"}},\"match\":\"\\\\\\\\b(equals)\\\\\\\\b\\\\\\\\s*\"},\"join-into\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.expression.query.into.cs\"},\"2\":{\"name\":\"entity.name.variable.range-variable.cs\"}},\"match\":\"\\\\\\\\b(into)\\\\\\\\b\\\\\\\\s*(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\b\\\\\\\\s*\"},\"join-on\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.expression.query.on.cs\"}},\"match\":\"\\\\\\\\b(on)\\\\\\\\b\\\\\\\\s*\"},\"labeled-statement\":{\"captures\":{\"1\":{\"name\":\"entity.name.label.cs\"},\"2\":{\"name\":\"punctuation.separator.colon.cs\"}},\"match\":\"(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*(:)\"},\"language-variable\":{\"patterns\":[{\"match\":\"\\\\\\\\b(base|this)\\\\\\\\b\",\"name\":\"variable.language.$1.cs\"},{\"match\":\"\\\\\\\\b(value)\\\\\\\\b\",\"name\":\"variable.other.$1.cs\"}]},\"let-clause\":{\"begin\":\"\\\\\\\\b(let)\\\\\\\\b\\\\\\\\s*(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\b\\\\\\\\s*(=)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.expression.query.let.cs\"},\"2\":{\"name\":\"entity.name.variable.range-variable.cs\"},\"3\":{\"name\":\"keyword.operator.assignment.cs\"}},\"end\":\"(?=;|\\\\\\\\))\",\"patterns\":[{\"include\":\"#query-body\"},{\"include\":\"#expression\"}]},\"list-pattern\":{\"begin\":\"(?=\\\\\\\\[)\",\"end\":\"(?=[)}\\\\\\\\],;:?=&|^]|!=|\\\\\\\\b(and|or|when)\\\\\\\\b)\",\"patterns\":[{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.squarebracket.open.cs\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.squarebracket.close.cs\"}},\"patterns\":[{\"include\":\"#pattern\"},{\"include\":\"#punctuation-comma\"}]},{\"begin\":\"(?<=\\\\\\\\])\",\"end\":\"(?=[)}\\\\\\\\],;:?=&|^]|!=|\\\\\\\\b(and|or|when)\\\\\\\\b)\",\"patterns\":[{\"include\":\"#intrusive\"},{\"include\":\"#simple-designation-pattern\"}]}]},\"literal\":{\"patterns\":[{\"include\":\"#boolean-literal\"},{\"include\":\"#null-literal\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#char-literal\"},{\"include\":\"#raw-string-literal\"},{\"include\":\"#string-literal\"},{\"include\":\"#verbatim-string-literal\"},{\"include\":\"#tuple-literal\"}]},\"local-constant-declaration\":{\"begin\":\"(?<const_keyword>\\\\\\\\b(?:const)\\\\\\\\b)\\\\\\\\s*(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*|(?<tuple>\\\\\\\\s*\\\\\\\\((?:[^\\\\\\\\(\\\\\\\\)]|\\\\\\\\g<tuple>)+\\\\\\\\)))(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*(?:\\\\\\\\?)?\\\\\\\\s*)*))\\\\\\\\s+(\\\\\\\\g<identifier>)\\\\\\\\s*(?=,|;|=)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.const.cs\"},\"2\":{\"patterns\":[{\"include\":\"#type\"}]},\"7\":{\"name\":\"entity.name.variable.local.cs\"}},\"end\":\"(?=;)\",\"patterns\":[{\"match\":\"@?[_[:alpha:]][_[:alnum:]]*\",\"name\":\"entity.name.variable.local.cs\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#comment\"},{\"include\":\"#variable-initializer\"}]},\"local-declaration\":{\"patterns\":[{\"include\":\"#local-constant-declaration\"},{\"include\":\"#local-variable-declaration\"},{\"include\":\"#local-function-declaration\"},{\"include\":\"#local-tuple-var-deconstruction\"}]},\"local-function-declaration\":{\"begin\":\"\\\\\\\\b((?:(?:async|unsafe|static|extern)\\\\\\\\s+)*)(?<type_name>(?:ref\\\\\\\\s+(?:readonly\\\\\\\\s+)?)?(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*|(?<tuple>\\\\\\\\s*\\\\\\\\((?:[^\\\\\\\\(\\\\\\\\)]|\\\\\\\\g<tuple>)+\\\\\\\\)))(?:\\\\\\\\s*\\\\\\\\?)?(?:\\\\\\\\s*\\\\\\\\[\\\\\\\\s*(?:,\\\\\\\\s*)*\\\\\\\\](?:\\\\\\\\s*\\\\\\\\?)?)*)\\\\\\\\s+(\\\\\\\\g<identifier>)\\\\\\\\s*(<[^<>]+>)?\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#storage-modifier\"}]},\"2\":{\"patterns\":[{\"include\":\"#type\"}]},\"7\":{\"name\":\"entity.name.function.cs\"},\"8\":{\"patterns\":[{\"include\":\"#type-parameter-list\"}]}},\"end\":\"(?<=\\\\\\\\})|(?=;)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#parenthesized-parameter-list\"},{\"include\":\"#generic-constraints\"},{\"include\":\"#expression-body\"},{\"include\":\"#block\"}]},\"local-tuple-var-deconstruction\":{\"begin\":\"(?:\\\\\\\\b(var)\\\\\\\\b\\\\\\\\s*)(?<tuple>\\\\\\\\((?:[^\\\\\\\\(\\\\\\\\)]|\\\\\\\\g<tuple>)+\\\\\\\\))\\\\\\\\s*(?=;|=|\\\\\\\\))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.var.cs\"},\"2\":{\"patterns\":[{\"include\":\"#tuple-declaration-deconstruction-element-list\"}]}},\"end\":\"(?=;|\\\\\\\\))\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#variable-initializer\"}]},\"local-variable-declaration\":{\"begin\":\"(?:(?:(\\\\\\\\bref)\\\\\\\\s+(?:(\\\\\\\\breadonly)\\\\\\\\s+)?)?(\\\\\\\\bvar\\\\\\\\b)|(?<type_name>(?:(?:ref\\\\\\\\s+(?:readonly\\\\\\\\s+)?)?(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*|(?<tuple>\\\\\\\\s*\\\\\\\\((?:[^\\\\\\\\(\\\\\\\\)]|\\\\\\\\g<tuple>)+\\\\\\\\)))(?:\\\\\\\\s*[?*]\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*(?:\\\\\\\\?)?\\\\\\\\s*)*)))\\\\\\\\s+(\\\\\\\\g<identifier>)\\\\\\\\s*(?!=>)(?=,|;|=|\\\\\\\\))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.ref.cs\"},\"2\":{\"name\":\"storage.modifier.readonly.cs\"},\"3\":{\"name\":\"storage.type.var.cs\"},\"4\":{\"patterns\":[{\"include\":\"#type\"}]},\"9\":{\"name\":\"entity.name.variable.local.cs\"}},\"end\":\"(?=[;)}])\",\"patterns\":[{\"match\":\"@?[_[:alpha:]][_[:alnum:]]*\",\"name\":\"entity.name.variable.local.cs\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#comment\"},{\"include\":\"#variable-initializer\"}]},\"lock-statement\":{\"begin\":\"\\\\\\\\b(lock)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.context.lock.cs\"}},\"end\":\"(?<=\\\\\\\\))|(?=;|})\",\"patterns\":[{\"include\":\"#intrusive\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#intrusive\"},{\"include\":\"#expression\"}]}]},\"member-access-expression\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.null-conditional.cs\"},\"2\":{\"name\":\"punctuation.accessor.cs\"},\"3\":{\"name\":\"punctuation.accessor.pointer.cs\"},\"4\":{\"name\":\"variable.other.object.property.cs\"}},\"match\":\"(?:(?:(\\\\\\\\?)\\\\\\\\s*)?(\\\\\\\\.)\\\\\\\\s*|(->)\\\\\\\\s*)(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*(?![_[:alnum:]]|\\\\\\\\(|(\\\\\\\\?)?\\\\\\\\[|<)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.cs\"},\"2\":{\"name\":\"variable.other.object.cs\"},\"3\":{\"patterns\":[{\"include\":\"#type-arguments\"}]}},\"match\":\"(\\\\\\\\.)?\\\\\\\\s*(@?[_[:alpha:]][_[:alnum:]]*)(?<type_params>\\\\\\\\s*<([^<>]|\\\\\\\\g<type_params>)+>\\\\\\\\s*)(?=(\\\\\\\\s*\\\\\\\\?)?\\\\\\\\s*\\\\\\\\.\\\\\\\\s*@?[_[:alpha:]][_[:alnum:]]*)\"},{\"captures\":{\"1\":{\"name\":\"variable.other.object.cs\"}},\"match\":\"(@?[_[:alpha:]][_[:alnum:]]*)(?=\\\\\\\\s*(?:(?:\\\\\\\\?\\\\\\\\s*)?\\\\\\\\.|->)\\\\\\\\s*@?[_[:alpha:]][_[:alnum:]]*)\"}]},\"method-declaration\":{\"begin\":\"(?<return_type>(?<type_name>(?:(?:ref\\\\\\\\s+(?:readonly\\\\\\\\s+)?)?(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*|(?<tuple>\\\\\\\\s*\\\\\\\\((?:[^\\\\\\\\(\\\\\\\\)]|\\\\\\\\g<tuple>)+\\\\\\\\)))(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*(?:\\\\\\\\?)?\\\\\\\\s*)*))\\\\\\\\s+)(?<interface_name>\\\\\\\\g<type_name>\\\\\\\\s*\\\\\\\\.\\\\\\\\s*)?(\\\\\\\\g<identifier>)\\\\\\\\s*(<([^<>]+)>)?\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#type\"}]},\"7\":{\"patterns\":[{\"include\":\"#type\"},{\"include\":\"#punctuation-accessor\"}]},\"8\":{\"name\":\"entity.name.function.cs\"},\"9\":{\"patterns\":[{\"include\":\"#type-parameter-list\"}]}},\"end\":\"(?<=\\\\\\\\})|(?=;)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#parenthesized-parameter-list\"},{\"include\":\"#generic-constraints\"},{\"include\":\"#expression-body\"},{\"include\":\"#block\"}]},\"named-argument\":{\"begin\":\"(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.variable.parameter.cs\"},\"2\":{\"name\":\"punctuation.separator.colon.cs\"}},\"end\":\"(?=(,|\\\\\\\\)|\\\\\\\\]))\",\"patterns\":[{\"include\":\"#argument\"}]},\"namespace-declaration\":{\"begin\":\"\\\\\\\\b(namespace)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.namespace.cs\"}},\"end\":\"(?<=\\\\\\\\})|(?=;)\",\"patterns\":[{\"include\":\"#comment\"},{\"match\":\"@?[_[:alpha:]][_[:alnum:]]*\",\"name\":\"entity.name.type.namespace.cs\"},{\"include\":\"#punctuation-accessor\"},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.cs\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.cs\"}},\"patterns\":[{\"include\":\"#declarations\"},{\"include\":\"#using-directive\"},{\"include\":\"#punctuation-semicolon\"}]}]},\"null-literal\":{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\bnull\\\\\\\\b\",\"name\":\"constant.language.null.cs\"},\"numeric-literal\":{\"captures\":{\"0\":{\"patterns\":[{\"begin\":\"(?=.)\",\"end\":\"$\",\"patterns\":[{\"captures\":{\"2\":{\"name\":\"constant.numeric.decimal.cs\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\",\"name\":\"constant.numeric.other.separator.thousands.cs\"}]},\"3\":{\"name\":\"constant.numeric.other.separator.thousands.cs\"},\"4\":{\"name\":\"constant.numeric.other.separator.decimals.cs\"},\"5\":{\"name\":\"constant.numeric.decimal.cs\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\",\"name\":\"constant.numeric.other.separator.thousands.cs\"}]},\"6\":{\"name\":\"constant.numeric.other.separator.thousands.cs\"},\"8\":{\"name\":\"constant.numeric.other.exponent.cs\"},\"9\":{\"name\":\"keyword.operator.arithmetic.cs\"},\"10\":{\"name\":\"keyword.operator.arithmetic.cs\"},\"11\":{\"name\":\"constant.numeric.decimal.cs\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\",\"name\":\"constant.numeric.other.separator.thousands.cs\"}]},\"12\":{\"name\":\"constant.numeric.other.suffix.cs\"}},\"match\":\"(\\\\\\\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)?((?:(?<=[0-9])|\\\\\\\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)?((?<!_)([eE])(\\\\\\\\+?)(\\\\\\\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)))?([fFdDmM](?!\\\\\\\\w))?$\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.other.preffix.binary.cs\"},\"2\":{\"name\":\"constant.numeric.binary.cs\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\",\"name\":\"constant.numeric.other.separator.thousands.cs\"}]},\"3\":{\"name\":\"constant.numeric.other.separator.thousands.cs\"},\"4\":{\"name\":\"constant.numeric.other.suffix.cs\"}},\"match\":\"(\\\\\\\\G0[bB])([01_](?:[01_]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?:(?:(?:(?:(?:[uU]|[uU]l)|[uU]L)|l[uU]?)|L[uU]?)|[fFdDmM])(?!\\\\\\\\w))?$\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.other.preffix.hex.cs\"},\"2\":{\"name\":\"constant.numeric.hex.cs\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\",\"name\":\"constant.numeric.other.separator.thousands.cs\"}]},\"3\":{\"name\":\"constant.numeric.other.separator.thousands.cs\"},\"4\":{\"name\":\"constant.numeric.other.suffix.cs\"}},\"match\":\"(\\\\\\\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?:(?:(?:(?:(?:[uU]|[uU]l)|[uU]L)|l[uU]?)|L[uU]?)|[fFdDmM])(?!\\\\\\\\w))?$\"},{\"captures\":{\"2\":{\"name\":\"constant.numeric.decimal.cs\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\",\"name\":\"constant.numeric.other.separator.thousands.cs\"}]},\"3\":{\"name\":\"constant.numeric.other.separator.thousands.cs\"},\"5\":{\"name\":\"constant.numeric.other.exponent.cs\"},\"6\":{\"name\":\"keyword.operator.arithmetic.cs\"},\"7\":{\"name\":\"keyword.operator.arithmetic.cs\"},\"8\":{\"name\":\"constant.numeric.decimal.cs\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])\",\"name\":\"constant.numeric.other.separator.thousands.cs\"}]},\"9\":{\"name\":\"constant.numeric.other.suffix.cs\"}},\"match\":\"(\\\\\\\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?<!_)([eE])(\\\\\\\\+?)(\\\\\\\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)))?((?:(?:(?:(?:(?:[uU]|[uU]l)|[uU]L)|l[uU]?)|L[uU]?)|[fFdDmM])(?!\\\\\\\\w))?$\"},{\"match\":\"(?:(?:[0-9a-zA-Z_]|_)|(?<=[eE])[+-]|\\\\\\\\.\\\\\\\\d)+\",\"name\":\"invalid.illegal.constant.numeric.cs\"}]}]}},\"match\":\"(?<!\\\\\\\\w)\\\\\\\\.?\\\\\\\\d(?:(?:[0-9a-zA-Z_]|_)|(?<=[eE])[+-]|\\\\\\\\.\\\\\\\\d)*\"},\"object-creation-expression\":{\"patterns\":[{\"include\":\"#object-creation-expression-with-parameters\"},{\"include\":\"#object-creation-expression-with-no-parameters\"}]},\"object-creation-expression-with-no-parameters\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.expression.new.cs\"},\"2\":{\"patterns\":[{\"include\":\"#type\"}]}},\"match\":\"(new)\\\\\\\\s+(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*|(?<tuple>\\\\\\\\s*\\\\\\\\((?:[^\\\\\\\\(\\\\\\\\)]|\\\\\\\\g<tuple>)+\\\\\\\\)))(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*(?:\\\\\\\\?)?\\\\\\\\s*)*))\\\\\\\\s*(?=\\\\\\\\{|//|/\\\\\\\\*|$)\"},\"object-creation-expression-with-parameters\":{\"begin\":\"(new)(?:\\\\\\\\s+(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*|(?<tuple>\\\\\\\\s*\\\\\\\\((?:[^\\\\\\\\(\\\\\\\\)]|\\\\\\\\g<tuple>)+\\\\\\\\)))(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*(?:\\\\\\\\?)?\\\\\\\\s*)*)))?\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.expression.new.cs\"},\"2\":{\"patterns\":[{\"include\":\"#type\"}]}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"include\":\"#argument-list\"}]},\"operator-assignment\":{\"match\":\"(?<!=|!)(=)(?!=)\",\"name\":\"keyword.operator.assignment.cs\"},\"operator-declaration\":{\"begin\":\"(?<type_name>(?:(?:ref\\\\\\\\s+(?:readonly\\\\\\\\s+)?)?(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*|(?<tuple>\\\\\\\\s*\\\\\\\\((?:[^\\\\\\\\(\\\\\\\\)]|\\\\\\\\g<tuple>)+\\\\\\\\)))(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*(?:\\\\\\\\?)?\\\\\\\\s*)*))\\\\\\\\s*\\\\\\\\b(?<operator_keyword>operator)\\\\\\\\b\\\\\\\\s*(?<operator>[+\\\\\\\\-*/%&|\\\\\\\\^!=~<>]+|true|false)\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#type\"}]},\"6\":{\"name\":\"storage.type.operator.cs\"},\"7\":{\"name\":\"entity.name.function.cs\"}},\"end\":\"(?<=\\\\\\\\})|(?=;)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#parenthesized-parameter-list\"},{\"include\":\"#expression-body\"},{\"include\":\"#block\"}]},\"orderby-clause\":{\"begin\":\"\\\\\\\\b(orderby)\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.expression.query.orderby.cs\"}},\"end\":\"(?=;|\\\\\\\\))\",\"patterns\":[{\"include\":\"#ordering-direction\"},{\"include\":\"#query-body\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"ordering-direction\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.expression.query.$1.cs\"}},\"match\":\"\\\\\\\\b(ascending|descending)\\\\\\\\b\"},\"parameter\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.$1.cs\"},\"2\":{\"patterns\":[{\"include\":\"#type\"}]},\"7\":{\"name\":\"entity.name.variable.parameter.cs\"}},\"match\":\"(?:(?:\\\\\\\\b(ref|params|out|in|this)\\\\\\\\b)\\\\\\\\s+)?(?<type_name>(?:(?:ref\\\\\\\\s+)?(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*|(?<tuple>\\\\\\\\s*\\\\\\\\((?:[^()]|\\\\\\\\g<tuple>)+\\\\\\\\)))(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*(?:\\\\\\\\?)?\\\\\\\\s*)*))\\\\\\\\s+(\\\\\\\\g<identifier>)\"},\"parenthesized-expression\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"parenthesized-parameter-list\":{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#attribute-section\"},{\"include\":\"#parameter\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#variable-initializer\"}]},\"pattern\":{\"patterns\":[{\"include\":\"#intrusive\"},{\"include\":\"#combinator-pattern\"},{\"include\":\"#discard-pattern\"},{\"include\":\"#constant-pattern\"},{\"include\":\"#relational-pattern\"},{\"include\":\"#var-pattern\"},{\"include\":\"#type-pattern\"},{\"include\":\"#positional-pattern\"},{\"include\":\"#property-pattern\"},{\"include\":\"#list-pattern\"},{\"include\":\"#slice-pattern\"}]},\"positional-pattern\":{\"begin\":\"(?=\\\\\\\\()\",\"end\":\"(?=[)}\\\\\\\\],;:?=&|^]|!=|\\\\\\\\b(and|or|when)\\\\\\\\b)\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#subpattern\"},{\"include\":\"#punctuation-comma\"}]},{\"begin\":\"(?<=\\\\\\\\))\",\"end\":\"(?=[)}\\\\\\\\],;:?=&|^]|!=|\\\\\\\\b(and|or|when)\\\\\\\\b)\",\"patterns\":[{\"include\":\"#intrusive\"},{\"include\":\"#property-pattern\"},{\"include\":\"#simple-designation-pattern\"}]}]},\"preprocessor\":{\"begin\":\"^\\\\\\\\s*(\\\\\\\\#)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.hash.cs\"}},\"end\":\"(?<=$)\",\"name\":\"meta.preprocessor.cs\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#preprocessor-define-or-undef\"},{\"include\":\"#preprocessor-if-or-elif\"},{\"include\":\"#preprocessor-else-or-endif\"},{\"include\":\"#preprocessor-warning-or-error\"},{\"include\":\"#preprocessor-region\"},{\"include\":\"#preprocessor-endregion\"},{\"include\":\"#preprocessor-load\"},{\"include\":\"#preprocessor-r\"},{\"include\":\"#preprocessor-line\"},{\"include\":\"#preprocessor-pragma-warning\"},{\"include\":\"#preprocessor-pragma-checksum\"}]},\"preprocessor-define-or-undef\":{\"captures\":{\"1\":{\"name\":\"keyword.preprocessor.define.cs\"},\"2\":{\"name\":\"keyword.preprocessor.undef.cs\"},\"3\":{\"name\":\"entity.name.variable.preprocessor.symbol.cs\"}},\"match\":\"\\\\\\\\b(?:(define)|(undef))\\\\\\\\b\\\\\\\\s*\\\\\\\\b([_[:alpha:]][_[:alnum:]]*)\\\\\\\\b\"},\"preprocessor-else-or-endif\":{\"captures\":{\"1\":{\"name\":\"keyword.preprocessor.else.cs\"},\"2\":{\"name\":\"keyword.preprocessor.endif.cs\"}},\"match\":\"\\\\\\\\b(?:(else)|(endif))\\\\\\\\b\"},\"preprocessor-endregion\":{\"captures\":{\"1\":{\"name\":\"keyword.preprocessor.endregion.cs\"}},\"match\":\"\\\\\\\\b(endregion)\\\\\\\\b\"},\"preprocessor-expression\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#preprocessor-expression\"}]},{\"captures\":{\"1\":{\"name\":\"constant.language.boolean.true.cs\"},\"2\":{\"name\":\"constant.language.boolean.false.cs\"},\"3\":{\"name\":\"entity.name.variable.preprocessor.symbol.cs\"}},\"match\":\"\\\\\\\\b(?:(true)|(false)|([_[:alpha:]][_[:alnum:]]*))\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.comparison.cs\"},\"2\":{\"name\":\"keyword.operator.logical.cs\"}},\"match\":\"(==|!=)|(\\\\\\\\!|&&|\\\\\\\\|\\\\\\\\|)\"}]},\"preprocessor-if-or-elif\":{\"begin\":\"\\\\\\\\b(?:(if)|(elif))\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.preprocessor.if.cs\"},\"2\":{\"name\":\"keyword.preprocessor.elif.cs\"}},\"end\":\"(?=$)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#preprocessor-expression\"}]},\"preprocessor-line\":{\"begin\":\"\\\\\\\\b(line)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.preprocessor.line.cs\"}},\"end\":\"(?=$)\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.preprocessor.default.cs\"},\"2\":{\"name\":\"keyword.preprocessor.hidden.cs\"}},\"match\":\"\\\\\\\\b(?:(default|hidden))\"},{\"captures\":{\"0\":{\"name\":\"constant.numeric.decimal.cs\"}},\"match\":\"[0-9]+\"},{\"captures\":{\"0\":{\"name\":\"string.quoted.double.cs\"}},\"match\":\"\\\\\\\\\\\\\"[^\\\\\"]*\\\\\\\\\\\\\"\"}]},\"preprocessor-load\":{\"begin\":\"\\\\\\\\b(load)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.preprocessor.load.cs\"}},\"end\":\"(?=$)\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"string.quoted.double.cs\"}},\"match\":\"\\\\\\\\\\\\\"[^\\\\\"]*\\\\\\\\\\\\\"\"}]},\"preprocessor-pragma-checksum\":{\"captures\":{\"1\":{\"name\":\"keyword.preprocessor.pragma.cs\"},\"2\":{\"name\":\"keyword.preprocessor.checksum.cs\"},\"3\":{\"name\":\"string.quoted.double.cs\"},\"4\":{\"name\":\"string.quoted.double.cs\"},\"5\":{\"name\":\"string.quoted.double.cs\"}},\"match\":\"\\\\\\\\b(pragma)\\\\\\\\b\\\\\\\\s*\\\\\\\\b(checksum)\\\\\\\\b\\\\\\\\s*(\\\\\\\\\\\\\"[^\\\\\"]*\\\\\\\\\\\\\")\\\\\\\\s*(\\\\\\\\\\\\\"[^\\\\\"]*\\\\\\\\\\\\\")\\\\\\\\s*(\\\\\\\\\\\\\"[^\\\\\"]*\\\\\\\\\\\\\")\"},\"preprocessor-pragma-warning\":{\"captures\":{\"1\":{\"name\":\"keyword.preprocessor.pragma.cs\"},\"2\":{\"name\":\"keyword.preprocessor.warning.cs\"},\"3\":{\"name\":\"keyword.preprocessor.disable.cs\"},\"4\":{\"name\":\"keyword.preprocessor.restore.cs\"},\"5\":{\"patterns\":[{\"captures\":{\"0\":{\"name\":\"constant.numeric.decimal.cs\"}},\"match\":\"[0-9]+\"},{\"include\":\"#punctuation-comma\"}]}},\"match\":\"\\\\\\\\b(pragma)\\\\\\\\b\\\\\\\\s*\\\\\\\\b(warning)\\\\\\\\b\\\\\\\\s*\\\\\\\\b(?:(disable)|(restore))\\\\\\\\b(\\\\\\\\s*[0-9]+(?:\\\\\\\\s*,\\\\\\\\s*[0-9]+)?)?\"},\"preprocessor-r\":{\"begin\":\"\\\\\\\\b(r)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.preprocessor.r.cs\"}},\"end\":\"(?=$)\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"string.quoted.double.cs\"}},\"match\":\"\\\\\\\\\\\\\"[^\\\\\"]*\\\\\\\\\\\\\"\"}]},\"preprocessor-region\":{\"captures\":{\"1\":{\"name\":\"keyword.preprocessor.region.cs\"},\"2\":{\"name\":\"string.unquoted.preprocessor.message.cs\"}},\"match\":\"\\\\\\\\b(region)\\\\\\\\b\\\\\\\\s*(.*)(?=$)\"},\"preprocessor-warning-or-error\":{\"captures\":{\"1\":{\"name\":\"keyword.preprocessor.warning.cs\"},\"2\":{\"name\":\"keyword.preprocessor.error.cs\"},\"3\":{\"name\":\"string.unquoted.preprocessor.message.cs\"}},\"match\":\"\\\\\\\\b(?:(warning)|(error))\\\\\\\\b\\\\\\\\s*(.*)(?=$)\"},\"property-accessors\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.cs\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.cs\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#attribute-section\"},{\"match\":\"\\\\\\\\b(private|protected|internal)\\\\\\\\b\",\"name\":\"storage.modifier.$1.cs\"},{\"begin\":\"\\\\\\\\b(get)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\{|;|=>|//|/\\\\\\\\*|$)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.accessor.$1.cs\"}},\"end\":\"(?<=\\\\\\\\}|;)|(?=\\\\\\\\})\",\"patterns\":[{\"include\":\"#accessor-getter\"}]},{\"begin\":\"\\\\\\\\b(set|init)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\{|;|=>|//|/\\\\\\\\*|$)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.accessor.$1.cs\"}},\"end\":\"(?<=\\\\\\\\}|;)|(?=\\\\\\\\})\",\"patterns\":[{\"include\":\"#accessor-setter\"}]}]},\"property-declaration\":{\"begin\":\"(?![[:word:][:space:]]*\\\\\\\\b(?:class|interface|struct|enum|event)\\\\\\\\b)(?<return_type>(?<type_name>(?:(?:ref\\\\\\\\s+(?:readonly\\\\\\\\s+)?)?(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*|(?<tuple>\\\\\\\\s*\\\\\\\\((?:[^\\\\\\\\(\\\\\\\\)]|\\\\\\\\g<tuple>)+\\\\\\\\)))(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*(?:\\\\\\\\?)?\\\\\\\\s*)*))\\\\\\\\s+)(?<interface_name>\\\\\\\\g<type_name>\\\\\\\\s*\\\\\\\\.\\\\\\\\s*)?(?<property_name>\\\\\\\\g<identifier>)\\\\\\\\s*(?=\\\\\\\\{|=>|//|/\\\\\\\\*|$)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#type\"}]},\"7\":{\"patterns\":[{\"include\":\"#type\"},{\"include\":\"#punctuation-accessor\"}]},\"8\":{\"name\":\"entity.name.variable.property.cs\"}},\"end\":\"(?<=\\\\\\\\})|(?=;)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#property-accessors\"},{\"include\":\"#accessor-getter-expression\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#class-or-struct-members\"}]},\"property-pattern\":{\"begin\":\"(?={)\",\"end\":\"(?=[)}\\\\\\\\],;:?=&|^]|!=|\\\\\\\\b(and|or|when)\\\\\\\\b)\",\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.cs\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.cs\"}},\"patterns\":[{\"include\":\"#subpattern\"},{\"include\":\"#punctuation-comma\"}]},{\"begin\":\"(?<=\\\\\\\\})\",\"end\":\"(?=[)}\\\\\\\\],;:?=&|^]|!=|\\\\\\\\b(and|or|when)\\\\\\\\b)\",\"patterns\":[{\"include\":\"#intrusive\"},{\"include\":\"#simple-designation-pattern\"}]}]},\"punctuation-accessor\":{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.accessor.cs\"},\"punctuation-comma\":{\"match\":\",\",\"name\":\"punctuation.separator.comma.cs\"},\"punctuation-semicolon\":{\"match\":\";\",\"name\":\"punctuation.terminator.statement.cs\"},\"query-body\":{\"patterns\":[{\"include\":\"#let-clause\"},{\"include\":\"#where-clause\"},{\"include\":\"#join-clause\"},{\"include\":\"#orderby-clause\"},{\"include\":\"#select-clause\"},{\"include\":\"#group-clause\"}]},\"query-expression\":{\"begin\":\"\\\\\\\\b(from)\\\\\\\\b\\\\\\\\s*(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*|(?<tuple>\\\\\\\\s*\\\\\\\\((?:[^\\\\\\\\(\\\\\\\\)]|\\\\\\\\g<tuple>)+\\\\\\\\)))(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*(?:\\\\\\\\?)?\\\\\\\\s*)*))?\\\\\\\\s+(\\\\\\\\g<identifier>)\\\\\\\\b\\\\\\\\s*\\\\\\\\b(in)\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.expression.query.from.cs\"},\"2\":{\"patterns\":[{\"include\":\"#type\"}]},\"7\":{\"name\":\"entity.name.variable.range-variable.cs\"},\"8\":{\"name\":\"keyword.operator.expression.query.in.cs\"}},\"end\":\"(?=;|\\\\\\\\))\",\"patterns\":[{\"include\":\"#query-body\"},{\"include\":\"#expression\"}]},\"raw-interpolated-string\":{\"patterns\":[{\"include\":\"#raw-interpolated-string-five-or-more-quote-one-or-more-interpolation\"},{\"include\":\"#raw-interpolated-string-three-or-more-quote-three-or-more-interpolation\"},{\"include\":\"#raw-interpolated-string-quadruple-quote-double-interpolation\"},{\"include\":\"#raw-interpolated-string-quadruple-quote-single-interpolation\"},{\"include\":\"#raw-interpolated-string-triple-quote-double-interpolation\"},{\"include\":\"#raw-interpolated-string-triple-quote-single-interpolation\"}]},\"raw-interpolated-string-five-or-more-quote-one-or-more-interpolation\":{\"begin\":\"\\\\\\\\$+\\\\\"\\\\\"\\\\\"\\\\\"\\\\\"+\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cs\"}},\"end\":\"\\\\\"\\\\\"\\\\\"\\\\\"\\\\\"+\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cs\"}},\"name\":\"string.quoted.double.cs\"},\"raw-interpolated-string-quadruple-quote-double-interpolation\":{\"begin\":\"\\\\\\\\$\\\\\\\\$\\\\\"\\\\\"\\\\\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cs\"}},\"end\":\"\\\\\"\\\\\"\\\\\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cs\"}},\"name\":\"string.quoted.double.cs\",\"patterns\":[{\"include\":\"#double-raw-interpolation\"}]},\"raw-interpolated-string-quadruple-quote-single-interpolation\":{\"begin\":\"\\\\\\\\$\\\\\"\\\\\"\\\\\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cs\"}},\"end\":\"\\\\\"\\\\\"\\\\\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cs\"}},\"name\":\"string.quoted.double.cs\",\"patterns\":[{\"include\":\"#raw-interpolation\"}]},\"raw-interpolated-string-three-or-more-quote-three-or-more-interpolation\":{\"begin\":\"\\\\\\\\$\\\\\\\\$\\\\\\\\$+\\\\\"\\\\\"\\\\\"+\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cs\"}},\"end\":\"\\\\\"\\\\\"\\\\\"+\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cs\"}},\"name\":\"string.quoted.double.cs\"},\"raw-interpolated-string-triple-quote-double-interpolation\":{\"begin\":\"\\\\\\\\$\\\\\\\\$\\\\\"\\\\\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cs\"}},\"end\":\"\\\\\"\\\\\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cs\"}},\"name\":\"string.quoted.double.cs\",\"patterns\":[{\"include\":\"#double-raw-interpolation\"}]},\"raw-interpolated-string-triple-quote-single-interpolation\":{\"begin\":\"\\\\\\\\$\\\\\"\\\\\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cs\"}},\"end\":\"\\\\\"\\\\\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cs\"}},\"name\":\"string.quoted.double.cs\",\"patterns\":[{\"include\":\"#raw-interpolation\"}]},\"raw-interpolation\":{\"begin\":\"(?<=[^\\\\\\\\{]|^)((?:\\\\\\\\{)*)(\\\\\\\\{)(?=[^\\\\\\\\{])\",\"beginCaptures\":{\"1\":{\"name\":\"string.quoted.double.cs\"},\"2\":{\"name\":\"punctuation.definition.interpolation.begin.cs\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.interpolation.end.cs\"}},\"name\":\"meta.interpolation.cs\",\"patterns\":[{\"include\":\"#expression\"}]},\"raw-string-literal\":{\"patterns\":[{\"include\":\"#raw-string-literal-more\"},{\"include\":\"#raw-string-literal-quadruple\"},{\"include\":\"#raw-string-literal-triple\"}]},\"raw-string-literal-more\":{\"begin\":\"\\\\\"\\\\\"\\\\\"\\\\\"\\\\\"+\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cs\"}},\"end\":\"\\\\\"\\\\\"\\\\\"\\\\\"\\\\\"+\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cs\"}},\"name\":\"string.quoted.double.cs\"},\"raw-string-literal-quadruple\":{\"begin\":\"\\\\\"\\\\\"\\\\\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cs\"}},\"end\":\"\\\\\"\\\\\"\\\\\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cs\"}},\"name\":\"string.quoted.double.cs\"},\"raw-string-literal-triple\":{\"begin\":\"\\\\\"\\\\\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cs\"}},\"end\":\"\\\\\"\\\\\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cs\"}},\"name\":\"string.quoted.double.cs\"},\"readonly-modifier\":{\"match\":\"\\\\\\\\breadonly\\\\\\\\b\",\"name\":\"storage.modifier.readonly.cs\"},\"record-declaration\":{\"begin\":\"(?=\\\\\\\\brecord\\\\\\\\b)\",\"end\":\"(?<=\\\\\\\\})|(?=;)\",\"patterns\":[{\"begin\":\"(record)\\\\\\\\b\\\\\\\\s+(@?[_[:alpha:]][_[:alnum:]]*)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.record.cs\"},\"2\":{\"name\":\"entity.name.type.class.cs\"}},\"end\":\"(?=\\\\\\\\{)|(?=;)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-parameter-list\"},{\"include\":\"#parenthesized-parameter-list\"},{\"include\":\"#base-types\"},{\"include\":\"#generic-constraints\"}]},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.cs\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.cs\"}},\"patterns\":[{\"include\":\"#class-or-struct-members\"}]},{\"include\":\"#preprocessor\"},{\"include\":\"#comment\"}]},\"ref-modifier\":{\"match\":\"\\\\\\\\bref\\\\\\\\b\",\"name\":\"storage.modifier.ref.cs\"},\"relational-pattern\":{\"begin\":\"<=?|>=?\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.relational.cs\"}},\"end\":\"(?=[)}\\\\\\\\],;:?=&|^]|!=|\\\\\\\\b(and|or|when)\\\\\\\\b)\",\"patterns\":[{\"include\":\"#expression\"}]},\"return-statement\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(return)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.flow.return.cs\"}},\"end\":\"(?=[;}])\",\"patterns\":[{\"include\":\"#ref-modifier\"},{\"include\":\"#expression\"}]},\"script-top-level\":{\"patterns\":[{\"include\":\"#statement\"},{\"include\":\"#method-declaration\"},{\"include\":\"#punctuation-semicolon\"}]},\"select-clause\":{\"begin\":\"\\\\\\\\b(select)\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.expression.query.select.cs\"}},\"end\":\"(?=;|\\\\\\\\))\",\"patterns\":[{\"include\":\"#query-body\"},{\"include\":\"#expression\"}]},\"simple-designation-pattern\":{\"patterns\":[{\"include\":\"#discard-pattern\"},{\"match\":\"@?[_[:alpha:]][_[:alnum:]]*\",\"name\":\"entity.name.variable.local.cs\"}]},\"slice-pattern\":{\"match\":\"\\\\\\\\.\\\\\\\\.\",\"name\":\"keyword.operator.range.cs\"},\"statement\":{\"patterns\":[{\"include\":\"#preprocessor\"},{\"include\":\"#comment\"},{\"include\":\"#while-statement\"},{\"include\":\"#do-statement\"},{\"include\":\"#for-statement\"},{\"include\":\"#foreach-statement\"},{\"include\":\"#if-statement\"},{\"include\":\"#else-part\"},{\"include\":\"#goto-statement\"},{\"include\":\"#return-statement\"},{\"include\":\"#break-or-continue-statement\"},{\"include\":\"#throw-statement\"},{\"include\":\"#yield-statement\"},{\"include\":\"#await-statement\"},{\"include\":\"#try-statement\"},{\"include\":\"#expression-operator-expression\"},{\"include\":\"#context-control-statement\"},{\"include\":\"#context-control-paren-statement\"},{\"include\":\"#labeled-statement\"},{\"include\":\"#object-creation-expression\"},{\"include\":\"#array-creation-expression\"},{\"include\":\"#anonymous-object-creation-expression\"},{\"include\":\"#local-declaration\"},{\"include\":\"#block\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-semicolon\"}]},\"storage-modifier\":{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(new|public|protected|internal|private|abstract|virtual|override|sealed|static|partial|readonly|volatile|const|extern|async|unsafe|ref|required|file)\\\\\\\\b\",\"name\":\"storage.modifier.$1.cs\"},\"string-character-escape\":{\"match\":\"\\\\\\\\\\\\\\\\(x[0-9a-fA-F]{1,4}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|.)\",\"name\":\"constant.character.escape.cs\"},\"string-literal\":{\"begin\":\"(?<!@)\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cs\"}},\"end\":\"(\\\\\")|((?:[^\\\\\\\\\\\\\\\\\\\\\\\\n])$)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.cs\"},\"2\":{\"name\":\"invalid.illegal.newline.cs\"}},\"name\":\"string.quoted.double.cs\",\"patterns\":[{\"include\":\"#string-character-escape\"}]},\"struct-declaration\":{\"begin\":\"(?=(\\\\\\\\brecord\\\\\\\\b\\\\\\\\s+)?\\\\\\\\bstruct\\\\\\\\b)\",\"end\":\"(?<=\\\\\\\\})|(?=;)\",\"patterns\":[{\"begin\":\"(\\\\\\\\b(record)\\\\\\\\b\\\\\\\\s+)?(struct)\\\\\\\\b\\\\\\\\s+(@?[_[:alpha:]][_[:alnum:]]*)\",\"beginCaptures\":{\"2\":{\"name\":\"storage.type.record.cs\"},\"3\":{\"name\":\"storage.type.struct.cs\"},\"4\":{\"name\":\"entity.name.type.struct.cs\"}},\"end\":\"(?=\\\\\\\\{)|(?=;)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-parameter-list\"},{\"include\":\"#parenthesized-parameter-list\"},{\"include\":\"#base-types\"},{\"include\":\"#generic-constraints\"}]},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.cs\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.cs\"}},\"patterns\":[{\"include\":\"#class-or-struct-members\"}]},{\"include\":\"#preprocessor\"},{\"include\":\"#comment\"}]},\"subpattern\":{\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"match\":\"\\\\\\\\@?[_[:alpha:]][_[:alnum:]]*\",\"name\":\"variable.other.object.property.cs\"},{\"include\":\"#punctuation-accessor\"}]},\"2\":{\"name\":\"punctuation.separator.colon.cs\"}},\"match\":\"(@?[_[:alpha:]][_[:alnum:]]*(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*@?[_[:alpha:]][_[:alnum:]]*)*)\\\\\\\\s*(:)\"},{\"include\":\"#pattern\"}]},\"switch-expression\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.cs\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.cs\"}},\"patterns\":[{\"include\":\"#punctuation-comma\"},{\"begin\":\"=>\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.arrow.cs\"}},\"end\":\"(?=,|})\",\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\"\\\\\\\\b(when)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.conditional.when.cs\"}},\"end\":\"(?==>|,|})\",\"patterns\":[{\"include\":\"#case-guard\"}]},{\"begin\":\"(?!\\\\\\\\s)\",\"end\":\"(?=\\\\\\\\bwhen\\\\\\\\b|=>|,|})\",\"patterns\":[{\"include\":\"#pattern\"}]}]},\"switch-label\":{\"begin\":\"\\\\\\\\b(case|default)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.conditional.$1.cs\"}},\"end\":\"(:)|(?=})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.colon.cs\"}},\"patterns\":[{\"begin\":\"\\\\\\\\b(when)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.conditional.when.cs\"}},\"end\":\"(?=:|})\",\"patterns\":[{\"include\":\"#case-guard\"}]},{\"begin\":\"(?!\\\\\\\\s)\",\"end\":\"(?=\\\\\\\\bwhen\\\\\\\\b|:|})\",\"patterns\":[{\"include\":\"#pattern\"}]}]},\"switch-statement\":{\"patterns\":[{\"include\":\"#intrusive\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.open.cs\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.curlybrace.close.cs\"}},\"patterns\":[{\"include\":\"#switch-label\"},{\"include\":\"#statement\"}]}]},\"switch-statement-or-expression\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(switch)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.conditional.switch.cs\"}},\"end\":\"(?<=})|(?=})\",\"patterns\":[{\"include\":\"#intrusive\"},{\"begin\":\"(?=\\\\\\\\()\",\"end\":\"(?<=\\\\\\\\})|(?=\\\\\\\\})\",\"patterns\":[{\"include\":\"#switch-statement\"}]},{\"begin\":\"(?=\\\\\\\\{)\",\"end\":\"(?<=\\\\\\\\})|(?=\\\\\\\\})\",\"patterns\":[{\"include\":\"#switch-expression\"}]}]},\"throw-expression\":{\"captures\":{\"1\":{\"name\":\"keyword.control.flow.throw.cs\"}},\"match\":\"\\\\\\\\b(throw)\\\\\\\\b\"},\"throw-statement\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(throw)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.flow.throw.cs\"}},\"end\":\"(?=[;}])\",\"patterns\":[{\"include\":\"#expression\"}]},\"try-block\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(try)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.exception.try.cs\"}},\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#block\"}]},\"try-statement\":{\"patterns\":[{\"include\":\"#try-block\"},{\"include\":\"#catch-clause\"},{\"include\":\"#finally-clause\"}]},\"tuple-declaration-deconstruction-element-list\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#tuple-declaration-deconstruction-element-list\"},{\"include\":\"#declaration-expression-tuple\"},{\"include\":\"#punctuation-comma\"},{\"captures\":{\"1\":{\"name\":\"entity.name.variable.tuple-element.cs\"}},\"match\":\"(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\b\\\\\\\\s*(?=[,)])\"}]},\"tuple-deconstruction-assignment\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#tuple-deconstruction-element-list\"}]}},\"match\":\"(?<tuple>\\\\\\\\s*\\\\\\\\((?:[^\\\\\\\\(\\\\\\\\)]|\\\\\\\\g<tuple>)+\\\\\\\\))\\\\\\\\s*(?!=>|==)(?==)\"},\"tuple-deconstruction-element-list\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#tuple-deconstruction-element-list\"},{\"include\":\"#declaration-expression-tuple\"},{\"include\":\"#punctuation-comma\"},{\"captures\":{\"1\":{\"name\":\"variable.other.readwrite.cs\"}},\"match\":\"(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\b\\\\\\\\s*(?=[,)])\"}]},\"tuple-element\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#type\"}]},\"6\":{\"name\":\"entity.name.variable.tuple-element.cs\"}},\"match\":\"(?<type_name>(?:(?:(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*\\\\\\\\:\\\\\\\\:\\\\\\\\s*)?(?<name_and_type_args>\\\\\\\\g<identifier>\\\\\\\\s*(?<type_args>\\\\\\\\s*<(?:[^<>]|\\\\\\\\g<type_args>)+>\\\\\\\\s*)?)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\g<name_and_type_args>)*|(?<tuple>\\\\\\\\s*\\\\\\\\((?:[^\\\\\\\\(\\\\\\\\)]|\\\\\\\\g<tuple>)+\\\\\\\\)))(?:\\\\\\\\s*\\\\\\\\?\\\\\\\\s*)?(?:\\\\\\\\s*\\\\\\\\[(?:\\\\\\\\s*,\\\\\\\\s*)*\\\\\\\\]\\\\\\\\s*(?:\\\\\\\\?)?\\\\\\\\s*)*))(?:(?<tuple_name>\\\\\\\\g<identifier>)\\\\\\\\b)?\"},\"tuple-literal\":{\"begin\":\"(\\\\\\\\()(?=.*[:,])\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#tuple-literal-element\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"tuple-literal-element\":{\"begin\":\"(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*(?=:)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.variable.tuple-element.cs\"}},\"end\":\"(:)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.separator.colon.cs\"}}},\"tuple-type\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#tuple-element\"},{\"include\":\"#punctuation-comma\"}]},\"type\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#ref-modifier\"},{\"include\":\"#readonly-modifier\"},{\"include\":\"#tuple-type\"},{\"include\":\"#type-builtin\"},{\"include\":\"#type-name\"},{\"include\":\"#type-arguments\"},{\"include\":\"#type-array-suffix\"},{\"include\":\"#type-nullable-suffix\"},{\"include\":\"#type-pointer-suffix\"}]},\"type-arguments\":{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.begin.cs\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.end.cs\"}},\"patterns\":[{\"include\":\"#type\"},{\"include\":\"#punctuation-comma\"}]},\"type-array-suffix\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.squarebracket.open.cs\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.squarebracket.close.cs\"}},\"patterns\":[{\"include\":\"#intrusive\"},{\"include\":\"#punctuation-comma\"}]},\"type-builtin\":{\"captures\":{\"1\":{\"name\":\"keyword.type.$1.cs\"}},\"match\":\"\\\\\\\\b(bool|s?byte|u?short|n?u?int|u?long|float|double|decimal|char|string|object|void|dynamic)\\\\\\\\b\"},\"type-declarations\":{\"patterns\":[{\"include\":\"#preprocessor\"},{\"include\":\"#comment\"},{\"include\":\"#storage-modifier\"},{\"include\":\"#class-declaration\"},{\"include\":\"#delegate-declaration\"},{\"include\":\"#enum-declaration\"},{\"include\":\"#interface-declaration\"},{\"include\":\"#struct-declaration\"},{\"include\":\"#record-declaration\"},{\"include\":\"#attribute-section\"},{\"include\":\"#punctuation-semicolon\"}]},\"type-name\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.type.alias.cs\"},\"2\":{\"name\":\"punctuation.separator.coloncolon.cs\"}},\"match\":\"(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*(\\\\\\\\:\\\\\\\\:)\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.cs\"},\"2\":{\"name\":\"punctuation.accessor.cs\"}},\"match\":\"(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*(\\\\\\\\.)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.cs\"},\"2\":{\"name\":\"entity.name.type.cs\"}},\"match\":\"(\\\\\\\\.)\\\\\\\\s*(@?[_[:alpha:]][_[:alnum:]]*)\"},{\"match\":\"@?[_[:alpha:]][_[:alnum:]]*\",\"name\":\"entity.name.type.cs\"}]},\"type-nullable-suffix\":{\"match\":\"\\\\\\\\?\",\"name\":\"punctuation.separator.question-mark.cs\"},\"type-operator-expression\":{\"begin\":\"\\\\\\\\b(default|sizeof|typeof)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.expression.$1.cs\"},\"2\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#type\"}]},\"type-parameter-list\":{\"begin\":\"\\\\\\\\<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.begin.cs\"}},\"end\":\"\\\\\\\\>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.end.cs\"}},\"patterns\":[{\"match\":\"\\\\\\\\b(in|out)\\\\\\\\b\",\"name\":\"storage.modifier.$1.cs\"},{\"match\":\"(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\b\",\"name\":\"entity.name.type.type-parameter.cs\"},{\"include\":\"#comment\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#attribute-section\"}]},\"type-pattern\":{\"begin\":\"(?=@?[_[:alpha:]][_[:alnum:]]*)\",\"end\":\"(?=[)}\\\\\\\\],;:?=&|^]|!=|\\\\\\\\b(and|or|when)\\\\\\\\b)\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(?!\\\\\\\\G[@_[:alpha:]])(?=[\\\\\\\\({@_[:alpha:])}\\\\\\\\],;:=&|^]|(?:\\\\\\\\s|^)\\\\\\\\?|!=|\\\\\\\\b(and|or|when)\\\\\\\\b)\",\"patterns\":[{\"include\":\"#intrusive\"},{\"include\":\"#type-subpattern\"}]},{\"begin\":\"(?=[\\\\\\\\({@_[:alpha:]])\",\"end\":\"(?=[)}\\\\\\\\],;:?=&|^]|!=|\\\\\\\\b(and|or|when)\\\\\\\\b)\",\"patterns\":[{\"include\":\"#intrusive\"},{\"include\":\"#positional-pattern\"},{\"include\":\"#property-pattern\"},{\"include\":\"#simple-designation-pattern\"}]}]},\"type-pointer-suffix\":{\"match\":\"\\\\\\\\*\",\"name\":\"punctuation.separator.asterisk.cs\"},\"type-subpattern\":{\"patterns\":[{\"include\":\"#type-builtin\"},{\"begin\":\"(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*(::)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.type.alias.cs\"},\"2\":{\"name\":\"punctuation.separator.coloncolon.cs\"}},\"end\":\"(?<=[_[:alnum:]])|(?=[.<\\\\\\\\[\\\\\\\\({)}\\\\\\\\],;:?=&|^]|!=|\\\\\\\\b(and|or|when)\\\\\\\\b)\",\"patterns\":[{\"include\":\"#intrusive\"},{\"match\":\"\\\\\\\\@?[_[:alpha:]][_[:alnum:]]*\",\"name\":\"entity.name.type.cs\"}]},{\"match\":\"\\\\\\\\@?[_[:alpha:]][_[:alnum:]]*\",\"name\":\"entity.name.type.cs\"},{\"begin\":\"\\\\\\\\.\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.accessor.cs\"}},\"end\":\"(?<=[_[:alnum:]])|(?=[<\\\\\\\\[\\\\\\\\({)}\\\\\\\\],;:?=&|^]|!=|\\\\\\\\b(and|or|when)\\\\\\\\b)\",\"patterns\":[{\"include\":\"#intrusive\"},{\"match\":\"\\\\\\\\@?[_[:alpha:]][_[:alnum:]]*\",\"name\":\"entity.name.type.cs\"}]},{\"include\":\"#type-arguments\"},{\"include\":\"#type-array-suffix\"},{\"match\":\"(?<!\\\\\\\\s)\\\\\\\\?\",\"name\":\"punctuation.separator.question-mark.cs\"}]},\"using-directive\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(?:(global)\\\\\\\\s+)?(using)\\\\\\\\s+(static)\\\\\\\\b\\\\\\\\s*(?:(unsafe)\\\\\\\\b\\\\\\\\s*)?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.directive.global.cs\"},\"2\":{\"name\":\"keyword.other.directive.using.cs\"},\"3\":{\"name\":\"keyword.other.directive.static.cs\"},\"4\":{\"name\":\"storage.modifier.unsafe.cs\"}},\"end\":\"(?=;)\",\"patterns\":[{\"include\":\"#type\"}]},{\"begin\":\"\\\\\\\\b(?:(global)\\\\\\\\s+)?(using)\\\\\\\\b\\\\\\\\s*(?:(unsafe)\\\\\\\\b\\\\\\\\s*)?(@?[_[:alpha:]][_[:alnum:]]*)\\\\\\\\s*(=)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.directive.global.cs\"},\"2\":{\"name\":\"keyword.other.directive.using.cs\"},\"3\":{\"name\":\"storage.modifier.unsafe.cs\"},\"4\":{\"name\":\"entity.name.type.alias.cs\"},\"5\":{\"name\":\"keyword.operator.assignment.cs\"}},\"end\":\"(?=;)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type\"}]},{\"begin\":\"\\\\\\\\b(?:(global)\\\\\\\\s+)?(using)\\\\\\\\b\\\\\\\\s*+(?!\\\\\\\\(|var\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.directive.global.cs\"},\"2\":{\"name\":\"keyword.other.directive.using.cs\"}},\"end\":\"(?=;)\",\"patterns\":[{\"include\":\"#comment\"},{\"match\":\"\\\\\\\\@?[_[:alpha:]][_[:alnum:]]*\",\"name\":\"entity.name.type.namespace.cs\"},{\"include\":\"#punctuation-accessor\"},{\"include\":\"#operator-assignment\"}]}]},\"using-statement\":{\"begin\":\"\\\\\\\\b(using)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.context.using.cs\"}},\"end\":\"(?<=\\\\\\\\))|(?=;|})\",\"patterns\":[{\"include\":\"#intrusive\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#intrusive\"},{\"include\":\"#await-expression\"},{\"include\":\"#local-variable-declaration\"},{\"include\":\"#expression\"}]},{\"include\":\"#local-variable-declaration\"}]},\"var-pattern\":{\"begin\":\"\\\\\\\\b(var)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.var.cs\"}},\"end\":\"(?=[)}\\\\\\\\],;:?=&|^]|!=|\\\\\\\\b(and|or|when)\\\\\\\\b)\",\"patterns\":[{\"include\":\"#designation-pattern\"}]},\"variable-initializer\":{\"begin\":\"(?<!=|!)(=)(?!=|>)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.cs\"}},\"end\":\"(?=[,\\\\\\\\)\\\\\\\\];}])\",\"patterns\":[{\"include\":\"#ref-modifier\"},{\"include\":\"#expression\"}]},\"verbatim-interpolated-string\":{\"begin\":\"(?:\\\\\\\\$@|@\\\\\\\\$)\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cs\"}},\"end\":\"\\\\\"(?=[^\\\\\"])\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cs\"}},\"name\":\"string.quoted.double.cs\",\"patterns\":[{\"include\":\"#verbatim-string-character-escape\"},{\"include\":\"#interpolation\"}]},\"verbatim-string-character-escape\":{\"match\":\"\\\\\"\\\\\"\",\"name\":\"constant.character.escape.cs\"},\"verbatim-string-literal\":{\"begin\":\"@\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cs\"}},\"end\":\"\\\\\"(?=[^\\\\\"])\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cs\"}},\"name\":\"string.quoted.double.cs\",\"patterns\":[{\"include\":\"#verbatim-string-character-escape\"}]},\"when-clause\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(when)\\\\\\\\b\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.exception.when.cs\"},\"2\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#comment\"}]},\"where-clause\":{\"begin\":\"\\\\\\\\b(where)\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.expression.query.where.cs\"}},\"end\":\"(?=;|\\\\\\\\))\",\"patterns\":[{\"include\":\"#query-body\"},{\"include\":\"#expression\"}]},\"while-statement\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(while)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.loop.while.cs\"}},\"end\":\"(?<=\\\\\\\\})|(?=;)\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.open.cs\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.close.cs\"}},\"patterns\":[{\"include\":\"#expression\"}]},{\"include\":\"#statement\"}]},\"with-expression\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(with)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\{|//|/\\\\\\\\*|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.expression.with.cs\"}},\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#initializer-expression\"}]},\"xml-attribute\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.cs\"},\"2\":{\"name\":\"entity.other.attribute-name.namespace.cs\"},\"3\":{\"name\":\"punctuation.separator.colon.cs\"},\"4\":{\"name\":\"entity.other.attribute-name.localname.cs\"},\"5\":{\"name\":\"punctuation.separator.equals.cs\"}},\"match\":\"(?:^|\\\\\\\\s+)((?:([-_[:alnum:]]+)(:))?([-_[:alnum:]]+))(=)\"},{\"include\":\"#xml-string\"}]},\"xml-cdata\":{\"begin\":\"<!\\\\\\\\[CDATA\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cs\"}},\"end\":\"\\\\\\\\]\\\\\\\\]>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cs\"}},\"name\":\"string.unquoted.cdata.cs\"},\"xml-character-entity\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.constant.cs\"},\"3\":{\"name\":\"punctuation.definition.constant.cs\"}},\"match\":\"(&)((?:[[:alpha:]:_][[:alnum:]:_.-]*)|(?:\\\\\\\\#[[:digit:]]+)|(?:\\\\\\\\#x[[:xdigit:]]+))(;)\",\"name\":\"constant.character.entity.cs\"},{\"match\":\"&\",\"name\":\"invalid.illegal.bad-ampersand.cs\"}]},\"xml-comment\":{\"begin\":\"<!--\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.cs\"}},\"end\":\"-->\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.cs\"}},\"name\":\"comment.block.cs\"},\"xml-doc-comment\":{\"patterns\":[{\"include\":\"#xml-comment\"},{\"include\":\"#xml-character-entity\"},{\"include\":\"#xml-cdata\"},{\"include\":\"#xml-tag\"}]},\"xml-string\":{\"patterns\":[{\"begin\":\"\\\\\\\\'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cs\"}},\"end\":\"\\\\\\\\'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cs\"}},\"name\":\"string.quoted.single.cs\",\"patterns\":[{\"include\":\"#xml-character-entity\"}]},{\"begin\":\"\\\\\\\\\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cs\"}},\"end\":\"\\\\\\\\\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cs\"}},\"name\":\"string.quoted.double.cs\",\"patterns\":[{\"include\":\"#xml-character-entity\"}]}]},\"xml-tag\":{\"begin\":\"(</?)((?:([-_[:alnum:]]+)(:))?([-_[:alnum:]]+))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.cs\"},\"2\":{\"name\":\"entity.name.tag.cs\"},\"3\":{\"name\":\"entity.name.tag.namespace.cs\"},\"4\":{\"name\":\"punctuation.separator.colon.cs\"},\"5\":{\"name\":\"entity.name.tag.localname.cs\"}},\"end\":\"(/?>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.cs\"}},\"name\":\"meta.tag.cs\",\"patterns\":[{\"include\":\"#xml-attribute\"}]},\"yield-break-statement\":{\"captures\":{\"1\":{\"name\":\"keyword.control.flow.yield.cs\"},\"2\":{\"name\":\"keyword.control.flow.break.cs\"}},\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(yield)\\\\\\\\b\\\\\\\\s*\\\\\\\\b(break)\\\\\\\\b\"},\"yield-return-statement\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(yield)\\\\\\\\b\\\\\\\\s*\\\\\\\\b(return)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.flow.yield.cs\"},\"2\":{\"name\":\"keyword.control.flow.return.cs\"}},\"end\":\"(?=[;}])\",\"patterns\":[{\"include\":\"#expression\"}]},\"yield-statement\":{\"patterns\":[{\"include\":\"#yield-return-statement\"},{\"include\":\"#yield-break-statement\"}]}},\"scopeName\":\"source.cs\",\"aliases\":[\"c#\",\"cs\"]}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/D9yiNO04.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var t={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\$\\^\\&\\*\\(\\)\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\s]+)/g,comments:{blockComment:[\"{#\",\"#}\"]},brackets:[[\"{#\",\"#}\"],[\"{%\",\"%}\"],[\"{{\",\"}}\"],[\"(\",\")\"],[\"[\",\"]\"],[\"<!--\",\"-->\"],[\"<\",\">\"]],autoClosingPairs:[{open:\"{# \",close:\" #}\"},{open:\"{% \",close:\" %}\"},{open:\"{{ \",close:\" }}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"<\",close:\">\"}]},e={defaultToken:\"\",tokenPostfix:\"\",ignoreCase:!0,keywords:[\"apply\",\"autoescape\",\"block\",\"deprecated\",\"do\",\"embed\",\"extends\",\"flush\",\"for\",\"from\",\"if\",\"import\",\"include\",\"macro\",\"sandbox\",\"set\",\"use\",\"verbatim\",\"with\",\"endapply\",\"endautoescape\",\"endblock\",\"endembed\",\"endfor\",\"endif\",\"endmacro\",\"endsandbox\",\"endset\",\"endwith\",\"true\",\"false\"],tokenizer:{root:[[/\\s+/],[/{#/,\"comment.twig\",\"@commentState\"],[/{%[-~]?/,\"delimiter.twig\",\"@blockState\"],[/{{[-~]?/,\"delimiter.twig\",\"@variableState\"],[/<!DOCTYPE/,\"metatag.html\",\"@doctype\"],[/<!--/,\"comment.html\",\"@comment\"],[/(<)((?:[\\w\\-]+:)?[\\w\\-]+)(\\s*)(\\/>)/,[\"delimiter.html\",\"tag.html\",\"\",\"delimiter.html\"]],[/(<)(script)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@script\"}]],[/(<)(style)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@style\"}]],[/(<)((?:[\\w\\-]+:)?[\\w\\-]+)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@otherTag\"}]],[/(<\\/)((?:[\\w\\-]+:)?[\\w\\-]+)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@otherTag\"}]],[/</,\"delimiter.html\"],[/[^<{]+/]],commentState:[[/#}/,\"comment.twig\",\"@pop\"],[/./,\"comment.twig\"]],blockState:[[/[-~]?%}/,\"delimiter.twig\",\"@pop\"],[/\\s+/],[/(verbatim)(\\s*)([-~]?%})/,[\"keyword.twig\",\"\",{token:\"delimiter.twig\",next:\"@rawDataState\"}]],{include:\"expression\"}],rawDataState:[[/({%[-~]?)(\\s*)(endverbatim)(\\s*)([-~]?%})/,[\"delimiter.twig\",\"\",\"keyword.twig\",\"\",{token:\"delimiter.twig\",next:\"@popall\"}]],[/./,\"string.twig\"]],variableState:[[/[-~]?}}/,\"delimiter.twig\",\"@pop\"],{include:\"expression\"}],stringState:[[/\"/,\"string.twig\",\"@pop\"],[/#{\\s*/,\"string.twig\",\"@interpolationState\"],[/[^#\"\\\\]*(?:(?:\\\\.|#(?!\\{))[^#\"\\\\]*)*/,\"string.twig\"]],interpolationState:[[/}/,\"string.twig\",\"@pop\"],{include:\"expression\"}],expression:[[/\\s+/],[/\\+|-|\\/{1,2}|%|\\*{1,2}/,\"operators.twig\"],[/(and|or|not|b-and|b-xor|b-or)(\\s+)/,[\"operators.twig\",\"\"]],[/==|!=|<|>|>=|<=/,\"operators.twig\"],[/(starts with|ends with|matches)(\\s+)/,[\"operators.twig\",\"\"]],[/(in)(\\s+)/,[\"operators.twig\",\"\"]],[/(is)(\\s+)/,[\"operators.twig\",\"\"]],[/\\||~|:|\\.{1,2}|\\?{1,2}/,\"operators.twig\"],[/[^\\W\\d][\\w]*/,{cases:{\"@keywords\":\"keyword.twig\",\"@default\":\"variable.twig\"}}],[/\\d+(\\.\\d+)?/,\"number.twig\"],[/\\(|\\)|\\[|\\]|{|}|,/,\"delimiter.twig\"],[/\"([^#\"\\\\]*(?:\\\\.[^#\"\\\\]*)*)\"|\\'([^\\'\\\\]*(?:\\\\.[^\\'\\\\]*)*)\\'/,\"string.twig\"],[/\"/,\"string.twig\",\"@stringState\"],[/=>/,\"operators.twig\"],[/=/,\"operators.twig\"]],doctype:[[/[^>]+/,\"metatag.content.html\"],[/>/,\"metatag.html\",\"@pop\"]],comment:[[/-->/,\"comment.html\",\"@pop\"],[/[^-]+/,\"comment.content.html\"],[/./,\"comment.content.html\"]],otherTag:[[/\\/?>/,\"delimiter.html\",\"@pop\"],[/\"([^\"]*)\"/,\"attribute.value.html\"],[/'([^']*)'/,\"attribute.value.html\"],[/[\\w\\-]+/,\"attribute.name.html\"],[/=/,\"delimiter.html\"],[/[ \\t\\r\\n]+/]],script:[[/type/,\"attribute.name.html\",\"@scriptAfterType\"],[/\"([^\"]*)\"/,\"attribute.value.html\"],[/'([^']*)'/,\"attribute.value.html\"],[/[\\w\\-]+/,\"attribute.name.html\"],[/=/,\"delimiter.html\"],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/(<\\/)(script\\s*)(>)/,[\"delimiter.html\",\"tag.html\",{token:\"delimiter.html\",next:\"@pop\"}]]],scriptAfterType:[[/=/,\"delimiter.html\",\"@scriptAfterTypeEquals\"],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptAfterTypeEquals:[[/\"([^\"]*)\"/,{token:\"attribute.value.html\",switchTo:\"@scriptWithCustomType.$1\"}],[/'([^']*)'/,{token:\"attribute.value.html\",switchTo:\"@scriptWithCustomType.$1\"}],[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded\",nextEmbedded:\"text/javascript\"}],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptWithCustomType:[[/>/,{token:\"delimiter.html\",next:\"@scriptEmbedded.$S2\",nextEmbedded:\"$S2\"}],[/\"([^\"]*)\"/,\"attribute.value.html\"],[/'([^']*)'/,\"attribute.value.html\"],[/[\\w\\-]+/,\"attribute.name.html\"],[/=/,\"delimiter.html\"],[/[ \\t\\r\\n]+/],[/<\\/script\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],scriptEmbedded:[[/<\\/script/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}],[/[^<]+/,\"\"]],style:[[/type/,\"attribute.name.html\",\"@styleAfterType\"],[/\"([^\"]*)\"/,\"attribute.value.html\"],[/'([^']*)'/,\"attribute.value.html\"],[/[\\w\\-]+/,\"attribute.name.html\"],[/=/,\"delimiter.html\"],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/(<\\/)(style\\s*)(>)/,[\"delimiter.html\",\"tag.html\",{token:\"delimiter.html\",next:\"@pop\"}]]],styleAfterType:[[/=/,\"delimiter.html\",\"@styleAfterTypeEquals\"],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleAfterTypeEquals:[[/\"([^\"]*)\"/,{token:\"attribute.value.html\",switchTo:\"@styleWithCustomType.$1\"}],[/'([^']*)'/,{token:\"attribute.value.html\",switchTo:\"@styleWithCustomType.$1\"}],[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded\",nextEmbedded:\"text/css\"}],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleWithCustomType:[[/>/,{token:\"delimiter.html\",next:\"@styleEmbedded.$S2\",nextEmbedded:\"$S2\"}],[/\"([^\"]*)\"/,\"attribute.value.html\"],[/'([^']*)'/,\"attribute.value.html\"],[/[\\w\\-]+/,\"attribute.name.html\"],[/=/,\"delimiter.html\"],[/[ \\t\\r\\n]+/],[/<\\/style\\s*>/,{token:\"@rematch\",next:\"@pop\"}]],styleEmbedded:[[/<\\/style/,{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}],[/[^<]+/,\"\"]]}};export{t as conf,e as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/DAi9KRSo.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBorder\":\"#f9826c\",\"activityBar.background\":\"#fff\",\"activityBar.border\":\"#e1e4e8\",\"activityBar.foreground\":\"#2f363d\",\"activityBar.inactiveForeground\":\"#959da5\",\"activityBarBadge.background\":\"#2188ff\",\"activityBarBadge.foreground\":\"#fff\",\"badge.background\":\"#dbedff\",\"badge.foreground\":\"#005cc5\",\"breadcrumb.activeSelectionForeground\":\"#586069\",\"breadcrumb.focusForeground\":\"#2f363d\",\"breadcrumb.foreground\":\"#6a737d\",\"breadcrumbPicker.background\":\"#fafbfc\",\"button.background\":\"#159739\",\"button.foreground\":\"#fff\",\"button.hoverBackground\":\"#138934\",\"button.secondaryBackground\":\"#e1e4e8\",\"button.secondaryForeground\":\"#1b1f23\",\"button.secondaryHoverBackground\":\"#d1d5da\",\"checkbox.background\":\"#fafbfc\",\"checkbox.border\":\"#d1d5da\",\"debugToolBar.background\":\"#fff\",\"descriptionForeground\":\"#6a737d\",\"diffEditor.insertedTextBackground\":\"#34d05822\",\"diffEditor.removedTextBackground\":\"#d73a4922\",\"dropdown.background\":\"#fafbfc\",\"dropdown.border\":\"#e1e4e8\",\"dropdown.foreground\":\"#2f363d\",\"dropdown.listBackground\":\"#fff\",\"editor.background\":\"#fff\",\"editor.findMatchBackground\":\"#ffdf5d\",\"editor.findMatchHighlightBackground\":\"#ffdf5d66\",\"editor.focusedStackFrameHighlightBackground\":\"#28a74525\",\"editor.foldBackground\":\"#d1d5da11\",\"editor.foreground\":\"#24292e\",\"editor.inactiveSelectionBackground\":\"#0366d611\",\"editor.lineHighlightBackground\":\"#f6f8fa\",\"editor.linkedEditingBackground\":\"#0366d611\",\"editor.selectionBackground\":\"#0366d625\",\"editor.selectionHighlightBackground\":\"#34d05840\",\"editor.selectionHighlightBorder\":\"#34d05800\",\"editor.stackFrameHighlightBackground\":\"#ffd33d33\",\"editor.wordHighlightBackground\":\"#34d05800\",\"editor.wordHighlightBorder\":\"#24943e99\",\"editor.wordHighlightStrongBackground\":\"#34d05800\",\"editor.wordHighlightStrongBorder\":\"#24943e50\",\"editorBracketHighlight.foreground1\":\"#005cc5\",\"editorBracketHighlight.foreground2\":\"#e36209\",\"editorBracketHighlight.foreground3\":\"#5a32a3\",\"editorBracketHighlight.foreground4\":\"#005cc5\",\"editorBracketHighlight.foreground5\":\"#e36209\",\"editorBracketHighlight.foreground6\":\"#5a32a3\",\"editorBracketMatch.background\":\"#34d05840\",\"editorBracketMatch.border\":\"#34d05800\",\"editorCursor.foreground\":\"#044289\",\"editorError.foreground\":\"#cb2431\",\"editorGroup.border\":\"#e1e4e8\",\"editorGroupHeader.tabsBackground\":\"#f6f8fa\",\"editorGroupHeader.tabsBorder\":\"#e1e4e8\",\"editorGutter.addedBackground\":\"#28a745\",\"editorGutter.deletedBackground\":\"#d73a49\",\"editorGutter.modifiedBackground\":\"#2188ff\",\"editorIndentGuide.activeBackground\":\"#d7dbe0\",\"editorIndentGuide.background\":\"#eff2f6\",\"editorLineNumber.activeForeground\":\"#24292e\",\"editorLineNumber.foreground\":\"#1b1f234d\",\"editorOverviewRuler.border\":\"#fff\",\"editorWarning.foreground\":\"#f9c513\",\"editorWhitespace.foreground\":\"#d1d5da\",\"editorWidget.background\":\"#f6f8fa\",\"errorForeground\":\"#cb2431\",\"focusBorder\":\"#2188ff\",\"foreground\":\"#444d56\",\"gitDecoration.addedResourceForeground\":\"#28a745\",\"gitDecoration.conflictingResourceForeground\":\"#e36209\",\"gitDecoration.deletedResourceForeground\":\"#d73a49\",\"gitDecoration.ignoredResourceForeground\":\"#959da5\",\"gitDecoration.modifiedResourceForeground\":\"#005cc5\",\"gitDecoration.submoduleResourceForeground\":\"#959da5\",\"gitDecoration.untrackedResourceForeground\":\"#28a745\",\"input.background\":\"#fafbfc\",\"input.border\":\"#e1e4e8\",\"input.foreground\":\"#2f363d\",\"input.placeholderForeground\":\"#959da5\",\"list.activeSelectionBackground\":\"#e2e5e9\",\"list.activeSelectionForeground\":\"#2f363d\",\"list.focusBackground\":\"#cce5ff\",\"list.hoverBackground\":\"#ebf0f4\",\"list.hoverForeground\":\"#2f363d\",\"list.inactiveFocusBackground\":\"#dbedff\",\"list.inactiveSelectionBackground\":\"#e8eaed\",\"list.inactiveSelectionForeground\":\"#2f363d\",\"notificationCenterHeader.background\":\"#e1e4e8\",\"notificationCenterHeader.foreground\":\"#6a737d\",\"notifications.background\":\"#fafbfc\",\"notifications.border\":\"#e1e4e8\",\"notifications.foreground\":\"#2f363d\",\"notificationsErrorIcon.foreground\":\"#d73a49\",\"notificationsInfoIcon.foreground\":\"#005cc5\",\"notificationsWarningIcon.foreground\":\"#e36209\",\"panel.background\":\"#f6f8fa\",\"panel.border\":\"#e1e4e8\",\"panelInput.border\":\"#e1e4e8\",\"panelTitle.activeBorder\":\"#f9826c\",\"panelTitle.activeForeground\":\"#2f363d\",\"panelTitle.inactiveForeground\":\"#6a737d\",\"pickerGroup.border\":\"#e1e4e8\",\"pickerGroup.foreground\":\"#2f363d\",\"progressBar.background\":\"#2188ff\",\"quickInput.background\":\"#fafbfc\",\"quickInput.foreground\":\"#2f363d\",\"scrollbar.shadow\":\"#6a737d33\",\"scrollbarSlider.activeBackground\":\"#959da588\",\"scrollbarSlider.background\":\"#959da533\",\"scrollbarSlider.hoverBackground\":\"#959da544\",\"settings.headerForeground\":\"#2f363d\",\"settings.modifiedItemIndicator\":\"#2188ff\",\"sideBar.background\":\"#f6f8fa\",\"sideBar.border\":\"#e1e4e8\",\"sideBar.foreground\":\"#586069\",\"sideBarSectionHeader.background\":\"#f6f8fa\",\"sideBarSectionHeader.border\":\"#e1e4e8\",\"sideBarSectionHeader.foreground\":\"#2f363d\",\"sideBarTitle.foreground\":\"#2f363d\",\"statusBar.background\":\"#fff\",\"statusBar.border\":\"#e1e4e8\",\"statusBar.debuggingBackground\":\"#f9826c\",\"statusBar.debuggingForeground\":\"#fff\",\"statusBar.foreground\":\"#586069\",\"statusBar.noFolderBackground\":\"#fff\",\"statusBarItem.prominentBackground\":\"#e8eaed\",\"statusBarItem.remoteBackground\":\"#fff\",\"statusBarItem.remoteForeground\":\"#586069\",\"tab.activeBackground\":\"#fff\",\"tab.activeBorder\":\"#fff\",\"tab.activeBorderTop\":\"#f9826c\",\"tab.activeForeground\":\"#2f363d\",\"tab.border\":\"#e1e4e8\",\"tab.hoverBackground\":\"#fff\",\"tab.inactiveBackground\":\"#f6f8fa\",\"tab.inactiveForeground\":\"#6a737d\",\"tab.unfocusedActiveBorder\":\"#fff\",\"tab.unfocusedActiveBorderTop\":\"#e1e4e8\",\"tab.unfocusedHoverBackground\":\"#fff\",\"terminal.ansiBlack\":\"#24292e\",\"terminal.ansiBlue\":\"#0366d6\",\"terminal.ansiBrightBlack\":\"#959da5\",\"terminal.ansiBrightBlue\":\"#005cc5\",\"terminal.ansiBrightCyan\":\"#3192aa\",\"terminal.ansiBrightGreen\":\"#22863a\",\"terminal.ansiBrightMagenta\":\"#5a32a3\",\"terminal.ansiBrightRed\":\"#cb2431\",\"terminal.ansiBrightWhite\":\"#d1d5da\",\"terminal.ansiBrightYellow\":\"#b08800\",\"terminal.ansiCyan\":\"#1b7c83\",\"terminal.ansiGreen\":\"#28a745\",\"terminal.ansiMagenta\":\"#5a32a3\",\"terminal.ansiRed\":\"#d73a49\",\"terminal.ansiWhite\":\"#6a737d\",\"terminal.ansiYellow\":\"#dbab09\",\"terminal.foreground\":\"#586069\",\"terminal.tab.activeBorder\":\"#f9826c\",\"terminalCursor.background\":\"#d1d5da\",\"terminalCursor.foreground\":\"#005cc5\",\"textBlockQuote.background\":\"#fafbfc\",\"textBlockQuote.border\":\"#e1e4e8\",\"textCodeBlock.background\":\"#f6f8fa\",\"textLink.activeForeground\":\"#005cc5\",\"textLink.foreground\":\"#0366d6\",\"textPreformat.foreground\":\"#586069\",\"textSeparator.foreground\":\"#d1d5da\",\"titleBar.activeBackground\":\"#fff\",\"titleBar.activeForeground\":\"#2f363d\",\"titleBar.border\":\"#e1e4e8\",\"titleBar.inactiveBackground\":\"#f6f8fa\",\"titleBar.inactiveForeground\":\"#6a737d\",\"tree.indentGuidesStroke\":\"#e1e4e8\",\"welcomePage.buttonBackground\":\"#f6f8fa\",\"welcomePage.buttonHoverBackground\":\"#e1e4e8\"},\"displayName\":\"GitHub Light\",\"name\":\"github-light\",\"semanticHighlighting\":true,\"tokenColors\":[{\"scope\":[\"comment\",\"punctuation.definition.comment\",\"string.comment\"],\"settings\":{\"foreground\":\"#6a737d\"}},{\"scope\":[\"constant\",\"entity.name.constant\",\"variable.other.constant\",\"variable.other.enummember\",\"variable.language\"],\"settings\":{\"foreground\":\"#005cc5\"}},{\"scope\":[\"entity\",\"entity.name\"],\"settings\":{\"foreground\":\"#6f42c1\"}},{\"scope\":\"variable.parameter.function\",\"settings\":{\"foreground\":\"#24292e\"}},{\"scope\":\"entity.name.tag\",\"settings\":{\"foreground\":\"#22863a\"}},{\"scope\":\"keyword\",\"settings\":{\"foreground\":\"#d73a49\"}},{\"scope\":[\"storage\",\"storage.type\"],\"settings\":{\"foreground\":\"#d73a49\"}},{\"scope\":[\"storage.modifier.package\",\"storage.modifier.import\",\"storage.type.java\"],\"settings\":{\"foreground\":\"#24292e\"}},{\"scope\":[\"string\",\"punctuation.definition.string\",\"string punctuation.section.embedded source\"],\"settings\":{\"foreground\":\"#032f62\"}},{\"scope\":\"support\",\"settings\":{\"foreground\":\"#005cc5\"}},{\"scope\":\"meta.property-name\",\"settings\":{\"foreground\":\"#005cc5\"}},{\"scope\":\"variable\",\"settings\":{\"foreground\":\"#e36209\"}},{\"scope\":\"variable.other\",\"settings\":{\"foreground\":\"#24292e\"}},{\"scope\":\"invalid.broken\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#b31d28\"}},{\"scope\":\"invalid.deprecated\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#b31d28\"}},{\"scope\":\"invalid.illegal\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#b31d28\"}},{\"scope\":\"invalid.unimplemented\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#b31d28\"}},{\"scope\":\"carriage-return\",\"settings\":{\"background\":\"#d73a49\",\"content\":\"^M\",\"fontStyle\":\"italic underline\",\"foreground\":\"#fafbfc\"}},{\"scope\":\"message.error\",\"settings\":{\"foreground\":\"#b31d28\"}},{\"scope\":\"string variable\",\"settings\":{\"foreground\":\"#005cc5\"}},{\"scope\":[\"source.regexp\",\"string.regexp\"],\"settings\":{\"foreground\":\"#032f62\"}},{\"scope\":[\"string.regexp.character-class\",\"string.regexp constant.character.escape\",\"string.regexp source.ruby.embedded\",\"string.regexp string.regexp.arbitrary-repitition\"],\"settings\":{\"foreground\":\"#032f62\"}},{\"scope\":\"string.regexp constant.character.escape\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#22863a\"}},{\"scope\":\"support.constant\",\"settings\":{\"foreground\":\"#005cc5\"}},{\"scope\":\"support.variable\",\"settings\":{\"foreground\":\"#005cc5\"}},{\"scope\":\"meta.module-reference\",\"settings\":{\"foreground\":\"#005cc5\"}},{\"scope\":\"punctuation.definition.list.begin.markdown\",\"settings\":{\"foreground\":\"#e36209\"}},{\"scope\":[\"markup.heading\",\"markup.heading entity.name\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#005cc5\"}},{\"scope\":\"markup.quote\",\"settings\":{\"foreground\":\"#22863a\"}},{\"scope\":\"markup.italic\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#24292e\"}},{\"scope\":\"markup.bold\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#24292e\"}},{\"scope\":[\"markup.underline\"],\"settings\":{\"fontStyle\":\"underline\"}},{\"scope\":[\"markup.strikethrough\"],\"settings\":{\"fontStyle\":\"strikethrough\"}},{\"scope\":\"markup.inline.raw\",\"settings\":{\"foreground\":\"#005cc5\"}},{\"scope\":[\"markup.deleted\",\"meta.diff.header.from-file\",\"punctuation.definition.deleted\"],\"settings\":{\"background\":\"#ffeef0\",\"foreground\":\"#b31d28\"}},{\"scope\":[\"markup.inserted\",\"meta.diff.header.to-file\",\"punctuation.definition.inserted\"],\"settings\":{\"background\":\"#f0fff4\",\"foreground\":\"#22863a\"}},{\"scope\":[\"markup.changed\",\"punctuation.definition.changed\"],\"settings\":{\"background\":\"#ffebda\",\"foreground\":\"#e36209\"}},{\"scope\":[\"markup.ignored\",\"markup.untracked\"],\"settings\":{\"background\":\"#005cc5\",\"foreground\":\"#f6f8fa\"}},{\"scope\":\"meta.diff.range\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#6f42c1\"}},{\"scope\":\"meta.diff.header\",\"settings\":{\"foreground\":\"#005cc5\"}},{\"scope\":\"meta.separator\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#005cc5\"}},{\"scope\":\"meta.output\",\"settings\":{\"foreground\":\"#005cc5\"}},{\"scope\":[\"brackethighlighter.tag\",\"brackethighlighter.curly\",\"brackethighlighter.round\",\"brackethighlighter.square\",\"brackethighlighter.angle\",\"brackethighlighter.quote\"],\"settings\":{\"foreground\":\"#586069\"}},{\"scope\":\"brackethighlighter.unmatched\",\"settings\":{\"foreground\":\"#b31d28\"}},{\"scope\":[\"constant.other.reference.link\",\"string.other.link\"],\"settings\":{\"fontStyle\":\"underline\",\"foreground\":\"#032f62\"}}],\"type\":\"light\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DB0RB20n.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"#\",blockComment:[\"=begin\",\"=end\"]},brackets:[[\"(\",\")\"],[\"{\",\"}\"],[\"[\",\"]\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],indentationRules:{increaseIndentPattern:new RegExp(`^\\\\s*((begin|class|(private|protected)\\\\s+def|def|else|elsif|ensure|for|if|module|rescue|unless|until|when|while|case)|([^#]*\\\\sdo\\\\b)|([^#]*=\\\\s*(case|if|unless)))\\\\b([^#\\\\{;]|(\"|'|/).*\\\\4)*(#.*)?$`),decreaseIndentPattern:new RegExp(\"^\\\\s*([}\\\\]]([,)]?\\\\s*(#|$)|\\\\.[a-zA-Z_]\\\\w*\\\\b)|(end|rescue|ensure|else|elsif|when)\\\\b)\")}},t={tokenPostfix:\".ruby\",keywords:[\"__LINE__\",\"__ENCODING__\",\"__FILE__\",\"BEGIN\",\"END\",\"alias\",\"and\",\"begin\",\"break\",\"case\",\"class\",\"def\",\"defined?\",\"do\",\"else\",\"elsif\",\"end\",\"ensure\",\"for\",\"false\",\"if\",\"in\",\"module\",\"next\",\"nil\",\"not\",\"or\",\"redo\",\"rescue\",\"retry\",\"return\",\"self\",\"super\",\"then\",\"true\",\"undef\",\"unless\",\"until\",\"when\",\"while\",\"yield\"],keywordops:[\"::\",\"..\",\"...\",\"?\",\":\",\"=>\"],builtins:[\"require\",\"public\",\"private\",\"include\",\"extend\",\"attr_reader\",\"protected\",\"private_class_method\",\"protected_class_method\",\"new\"],declarations:[\"module\",\"class\",\"def\",\"case\",\"do\",\"begin\",\"for\",\"if\",\"while\",\"until\",\"unless\"],linedecls:[\"def\",\"case\",\"do\",\"begin\",\"for\",\"if\",\"while\",\"until\",\"unless\"],operators:[\"^\",\"&\",\"|\",\"<=>\",\"==\",\"===\",\"!~\",\"=~\",\">\",\">=\",\"<\",\"<=\",\"<<\",\">>\",\"+\",\"-\",\"*\",\"/\",\"%\",\"**\",\"~\",\"+@\",\"-@\",\"[]\",\"[]=\",\"`\",\"+=\",\"-=\",\"*=\",\"**=\",\"/=\",\"^=\",\"%=\",\"<<=\",\">>=\",\"&=\",\"&&=\",\"||=\",\"|=\"],brackets:[{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"}],symbols:/[=><!~?:&|+\\-*\\/\\^%\\.]+/,escape:/(?:[abefnrstv\\\\\"'\\n\\r]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2}|u[0-9A-Fa-f]{4})/,escapes:/\\\\(?:C\\-(@escape|.)|c(@escape|.)|@escape)/,decpart:/\\d(_?\\d)*/,decimal:/0|@decpart/,delim:/[^a-zA-Z0-9\\s\\n\\r]/,heredelim:/(?:\\w+|'[^']*'|\"[^\"]*\"|`[^`]*`)/,regexpctl:/[(){}\\[\\]\\$\\^|\\-*+?\\.]/,regexpesc:/\\\\(?:[AzZbBdDfnrstvwWn0\\\\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})?/,tokenizer:{root:[[/^(\\s*)([a-z_]\\w*[!?=]?)/,[\"white\",{cases:{\"for|until|while\":{token:\"keyword.$2\",next:\"@dodecl.$2\"},\"@declarations\":{token:\"keyword.$2\",next:\"@root.$2\"},end:{token:\"keyword.$S2\",next:\"@pop\"},\"@keywords\":\"keyword\",\"@builtins\":\"predefined\",\"@default\":\"identifier\"}}]],[/[a-z_]\\w*[!?=]?/,{cases:{\"if|unless|while|until\":{token:\"keyword.$0x\",next:\"@modifier.$0x\"},for:{token:\"keyword.$2\",next:\"@dodecl.$2\"},\"@linedecls\":{token:\"keyword.$0\",next:\"@root.$0\"},end:{token:\"keyword.$S2\",next:\"@pop\"},\"@keywords\":\"keyword\",\"@builtins\":\"predefined\",\"@default\":\"identifier\"}}],[/[A-Z][\\w]*[!?=]?/,\"constructor.identifier\"],[/\\$[\\w]*/,\"global.constant\"],[/@[\\w]*/,\"namespace.instance.identifier\"],[/@@@[\\w]*/,\"namespace.class.identifier\"],[/<<[-~](@heredelim).*/,{token:\"string.heredoc.delimiter\",next:\"@heredoc.$1\"}],[/[ \\t\\r\\n]+<<(@heredelim).*/,{token:\"string.heredoc.delimiter\",next:\"@heredoc.$1\"}],[/^<<(@heredelim).*/,{token:\"string.heredoc.delimiter\",next:\"@heredoc.$1\"}],{include:\"@whitespace\"},[/\"/,{token:\"string.d.delim\",next:'@dstring.d.\"'}],[/'/,{token:\"string.sq.delim\",next:\"@sstring.sq\"}],[/%([rsqxwW]|Q?)/,{token:\"@rematch\",next:\"pstring\"}],[/`/,{token:\"string.x.delim\",next:\"@dstring.x.`\"}],[/:(\\w|[$@])\\w*[!?=]?/,\"string.s\"],[/:\"/,{token:\"string.s.delim\",next:'@dstring.s.\"'}],[/:'/,{token:\"string.s.delim\",next:\"@sstring.s\"}],[/\\/(?=(\\\\\\/|[^\\/\\n])+\\/)/,{token:\"regexp.delim\",next:\"@regexp\"}],[/[{}()\\[\\]]/,\"@brackets\"],[/@symbols/,{cases:{\"@keywordops\":\"keyword\",\"@operators\":\"operator\",\"@default\":\"\"}}],[/[;,]/,\"delimiter\"],[/0[xX][0-9a-fA-F](_?[0-9a-fA-F])*/,\"number.hex\"],[/0[_oO][0-7](_?[0-7])*/,\"number.octal\"],[/0[bB][01](_?[01])*/,\"number.binary\"],[/0[dD]@decpart/,\"number\"],[/@decimal((\\.@decpart)?([eE][\\-+]?@decpart)?)/,{cases:{$1:\"number.float\",\"@default\":\"number\"}}]],dodecl:[[/^/,{token:\"\",switchTo:\"@root.$S2\"}],[/[a-z_]\\w*[!?=]?/,{cases:{end:{token:\"keyword.$S2\",next:\"@pop\"},do:{token:\"keyword\",switchTo:\"@root.$S2\"},\"@linedecls\":{token:\"@rematch\",switchTo:\"@root.$S2\"},\"@keywords\":\"keyword\",\"@builtins\":\"predefined\",\"@default\":\"identifier\"}}],{include:\"@root\"}],modifier:[[/^/,\"\",\"@pop\"],[/[a-z_]\\w*[!?=]?/,{cases:{end:{token:\"keyword.$S2\",next:\"@pop\"},\"then|else|elsif|do\":{token:\"keyword\",switchTo:\"@root.$S2\"},\"@linedecls\":{token:\"@rematch\",switchTo:\"@root.$S2\"},\"@keywords\":\"keyword\",\"@builtins\":\"predefined\",\"@default\":\"identifier\"}}],{include:\"@root\"}],sstring:[[/[^\\\\']+/,\"string.$S2\"],[/\\\\\\\\|\\\\'|\\\\$/,\"string.$S2.escape\"],[/\\\\./,\"string.$S2.invalid\"],[/'/,{token:\"string.$S2.delim\",next:\"@pop\"}]],dstring:[[/[^\\\\`\"#]+/,\"string.$S2\"],[/#/,\"string.$S2.escape\",\"@interpolated\"],[/\\\\$/,\"string.$S2.escape\"],[/@escapes/,\"string.$S2.escape\"],[/\\\\./,\"string.$S2.escape.invalid\"],[/[`\"]/,{cases:{\"$#==$S3\":{token:\"string.$S2.delim\",next:\"@pop\"},\"@default\":\"string.$S2\"}}]],heredoc:[[/^(\\s*)(@heredelim)$/,{cases:{\"$2==$S2\":[\"string.heredoc\",{token:\"string.heredoc.delimiter\",next:\"@pop\"}],\"@default\":[\"string.heredoc\",\"string.heredoc\"]}}],[/.*/,\"string.heredoc\"]],interpolated:[[/\\$\\w*/,\"global.constant\",\"@pop\"],[/@\\w*/,\"namespace.class.identifier\",\"@pop\"],[/@@@\\w*/,\"namespace.instance.identifier\",\"@pop\"],[/[{]/,{token:\"string.escape.curly\",switchTo:\"@interpolated_compound\"}],[\"\",\"\",\"@pop\"]],interpolated_compound:[[/[}]/,{token:\"string.escape.curly\",next:\"@pop\"}],{include:\"@root\"}],pregexp:[{include:\"@whitespace\"},[/[^\\(\\{\\[\\\\]/,{cases:{\"$#==$S3\":{token:\"regexp.delim\",next:\"@pop\"},\"$#==$S2\":{token:\"regexp.delim\",next:\"@push\"},\"~[)}\\\\]]\":\"@brackets.regexp.escape.control\",\"~@regexpctl\":\"regexp.escape.control\",\"@default\":\"regexp\"}}],{include:\"@regexcontrol\"}],regexp:[{include:\"@regexcontrol\"},[/[^\\\\\\/]/,\"regexp\"],[\"/[ixmp]*\",{token:\"regexp.delim\"},\"@pop\"]],regexcontrol:[[/(\\{)(\\d+(?:,\\d*)?)(\\})/,[\"@brackets.regexp.escape.control\",\"regexp.escape.control\",\"@brackets.regexp.escape.control\"]],[/(\\[)(\\^?)/,[\"@brackets.regexp.escape.control\",{token:\"regexp.escape.control\",next:\"@regexrange\"}]],[/(\\()(\\?[:=!])/,[\"@brackets.regexp.escape.control\",\"regexp.escape.control\"]],[/\\(\\?#/,{token:\"regexp.escape.control\",next:\"@regexpcomment\"}],[/[()]/,\"@brackets.regexp.escape.control\"],[/@regexpctl/,\"regexp.escape.control\"],[/\\\\$/,\"regexp.escape\"],[/@regexpesc/,\"regexp.escape\"],[/\\\\\\./,\"regexp.invalid\"],[/#/,\"regexp.escape\",\"@interpolated\"]],regexrange:[[/-/,\"regexp.escape.control\"],[/\\^/,\"regexp.invalid\"],[/\\\\$/,\"regexp.escape\"],[/@regexpesc/,\"regexp.escape\"],[/[^\\]]/,\"regexp\"],[/\\]/,\"@brackets.regexp.escape.control\",\"@pop\"]],regexpcomment:[[/[^)]+/,\"comment\"],[/\\)/,{token:\"regexp.escape.control\",next:\"@pop\"}]],pstring:[[/%([qws])\\(/,{token:\"string.$1.delim\",switchTo:\"@qstring.$1.(.)\"}],[/%([qws])\\[/,{token:\"string.$1.delim\",switchTo:\"@qstring.$1.[.]\"}],[/%([qws])\\{/,{token:\"string.$1.delim\",switchTo:\"@qstring.$1.{.}\"}],[/%([qws])</,{token:\"string.$1.delim\",switchTo:\"@qstring.$1.<.>\"}],[/%([qws])(@delim)/,{token:\"string.$1.delim\",switchTo:\"@qstring.$1.$2.$2\"}],[/%r\\(/,{token:\"regexp.delim\",switchTo:\"@pregexp.(.)\"}],[/%r\\[/,{token:\"regexp.delim\",switchTo:\"@pregexp.[.]\"}],[/%r\\{/,{token:\"regexp.delim\",switchTo:\"@pregexp.{.}\"}],[/%r</,{token:\"regexp.delim\",switchTo:\"@pregexp.<.>\"}],[/%r(@delim)/,{token:\"regexp.delim\",switchTo:\"@pregexp.$1.$1\"}],[/%(x|W|Q?)\\(/,{token:\"string.$1.delim\",switchTo:\"@qqstring.$1.(.)\"}],[/%(x|W|Q?)\\[/,{token:\"string.$1.delim\",switchTo:\"@qqstring.$1.[.]\"}],[/%(x|W|Q?)\\{/,{token:\"string.$1.delim\",switchTo:\"@qqstring.$1.{.}\"}],[/%(x|W|Q?)</,{token:\"string.$1.delim\",switchTo:\"@qqstring.$1.<.>\"}],[/%(x|W|Q?)(@delim)/,{token:\"string.$1.delim\",switchTo:\"@qqstring.$1.$2.$2\"}],[/%([rqwsxW]|Q?)./,{token:\"invalid\",next:\"@pop\"}],[/./,{token:\"invalid\",next:\"@pop\"}]],qstring:[[/\\\\$/,\"string.$S2.escape\"],[/\\\\./,\"string.$S2.escape\"],[/./,{cases:{\"$#==$S4\":{token:\"string.$S2.delim\",next:\"@pop\"},\"$#==$S3\":{token:\"string.$S2.delim\",next:\"@push\"},\"@default\":\"string.$S2\"}}]],qqstring:[[/#/,\"string.$S2.escape\",\"@interpolated\"],{include:\"@qstring\"}],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/^\\s*=begin\\b/,\"comment\",\"@comment\"],[/#.*$/,\"comment\"]],comment:[[/[^=]+/,\"comment\"],[/^\\s*=begin\\b/,\"comment.invalid\"],[/^\\s*=end\\b.*/,\"comment\",\"@pop\"],[/[=]/,\"comment\"]]}};export{e as conf,t as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/DBQeEorK.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.background\":\"#16161e\",\"activityBar.border\":\"#16161e\",\"activityBar.foreground\":\"#787c99\",\"activityBar.inactiveForeground\":\"#3b3e52\",\"activityBarBadge.background\":\"#3d59a1\",\"activityBarBadge.foreground\":\"#fff\",\"activityBarTop.foreground\":\"#787c99\",\"activityBarTop.inactiveForeground\":\"#3b3e52\",\"badge.background\":\"#7e83b230\",\"badge.foreground\":\"#acb0d0\",\"breadcrumb.activeSelectionForeground\":\"#a9b1d6\",\"breadcrumb.background\":\"#16161e\",\"breadcrumb.focusForeground\":\"#a9b1d6\",\"breadcrumb.foreground\":\"#515670\",\"breadcrumbPicker.background\":\"#16161e\",\"button.background\":\"#3d59a1dd\",\"button.foreground\":\"#ffffff\",\"button.hoverBackground\":\"#3d59a1AA\",\"button.secondaryBackground\":\"#3b3e52\",\"charts.blue\":\"#7aa2f7\",\"charts.foreground\":\"#9AA5CE\",\"charts.green\":\"#41a6b5\",\"charts.lines\":\"#16161e\",\"charts.orange\":\"#ff9e64\",\"charts.purple\":\"#9d7cd8\",\"charts.red\":\"#f7768e\",\"charts.yellow\":\"#e0af68\",\"debugConsole.errorForeground\":\"#bb616b\",\"debugConsole.infoForeground\":\"#787c99\",\"debugConsole.sourceForeground\":\"#787c99\",\"debugConsole.warningForeground\":\"#c49a5a\",\"debugConsoleInputIcon.foreground\":\"#73daca\",\"debugExceptionWidget.background\":\"#101014\",\"debugExceptionWidget.border\":\"#963c47\",\"debugIcon.breakpointDisabledForeground\":\"#414761\",\"debugIcon.breakpointForeground\":\"#db4b4b\",\"debugIcon.breakpointUnverifiedForeground\":\"#c24242\",\"debugTokenExpression.boolean\":\"#ff9e64\",\"debugTokenExpression.error\":\"#bb616b\",\"debugTokenExpression.name\":\"#7dcfff\",\"debugTokenExpression.number\":\"#ff9e64\",\"debugTokenExpression.string\":\"#9ece6a\",\"debugTokenExpression.value\":\"#9aa5ce\",\"debugToolBar.background\":\"#101014\",\"debugView.stateLabelBackground\":\"#14141b\",\"debugView.stateLabelForeground\":\"#787c99\",\"debugView.valueChangedHighlight\":\"#3d59a1aa\",\"descriptionForeground\":\"#515670\",\"diffEditor.diagonalFill\":\"#292e42\",\"diffEditor.insertedLineBackground\":\"#41a6b520\",\"diffEditor.insertedTextBackground\":\"#41a6b520\",\"diffEditor.removedLineBackground\":\"#db4b4b22\",\"diffEditor.removedTextBackground\":\"#db4b4b22\",\"diffEditor.unchangedCodeBackground\":\"#282a3b66\",\"diffEditorGutter.insertedLineBackground\":\"#41a6b525\",\"diffEditorGutter.removedLineBackground\":\"#db4b4b22\",\"diffEditorOverview.insertedForeground\":\"#41a6b525\",\"diffEditorOverview.removedForeground\":\"#db4b4b22\",\"dropdown.background\":\"#14141b\",\"dropdown.foreground\":\"#787c99\",\"dropdown.listBackground\":\"#14141b\",\"editor.background\":\"#1a1b26\",\"editor.findMatchBackground\":\"#3d59a166\",\"editor.findMatchBorder\":\"#e0af68\",\"editor.findMatchHighlightBackground\":\"#3d59a166\",\"editor.findRangeHighlightBackground\":\"#515c7e33\",\"editor.focusedStackFrameHighlightBackground\":\"#73daca20\",\"editor.foldBackground\":\"#1111174a\",\"editor.foreground\":\"#a9b1d6\",\"editor.inactiveSelectionBackground\":\"#515c7e25\",\"editor.lineHighlightBackground\":\"#1e202e\",\"editor.rangeHighlightBackground\":\"#515c7e20\",\"editor.selectionBackground\":\"#515c7e4d\",\"editor.selectionHighlightBackground\":\"#515c7e44\",\"editor.stackFrameHighlightBackground\":\"#E2BD3A20\",\"editor.wordHighlightBackground\":\"#515c7e44\",\"editor.wordHighlightStrongBackground\":\"#515c7e55\",\"editorBracketHighlight.foreground1\":\"#698cd6\",\"editorBracketHighlight.foreground2\":\"#68b3de\",\"editorBracketHighlight.foreground3\":\"#9a7ecc\",\"editorBracketHighlight.foreground4\":\"#25aac2\",\"editorBracketHighlight.foreground5\":\"#80a856\",\"editorBracketHighlight.foreground6\":\"#c49a5a\",\"editorBracketHighlight.unexpectedBracket.foreground\":\"#db4b4b\",\"editorBracketMatch.background\":\"#16161e\",\"editorBracketMatch.border\":\"#42465d\",\"editorBracketPairGuide.activeBackground1\":\"#698cd6\",\"editorBracketPairGuide.activeBackground2\":\"#68b3de\",\"editorBracketPairGuide.activeBackground3\":\"#9a7ecc\",\"editorBracketPairGuide.activeBackground4\":\"#25aac2\",\"editorBracketPairGuide.activeBackground5\":\"#80a856\",\"editorBracketPairGuide.activeBackground6\":\"#c49a5a\",\"editorCodeLens.foreground\":\"#51597d\",\"editorCursor.foreground\":\"#c0caf5\",\"editorError.foreground\":\"#db4b4b\",\"editorGhostText.foreground\":\"#646e9c\",\"editorGroup.border\":\"#101014\",\"editorGroup.dropBackground\":\"#1e202e\",\"editorGroupHeader.border\":\"#101014\",\"editorGroupHeader.noTabsBackground\":\"#16161e\",\"editorGroupHeader.tabsBackground\":\"#16161e\",\"editorGroupHeader.tabsBorder\":\"#101014\",\"editorGutter.addedBackground\":\"#164846\",\"editorGutter.deletedBackground\":\"#823c41\",\"editorGutter.modifiedBackground\":\"#394b70\",\"editorHint.foreground\":\"#0da0ba\",\"editorHoverWidget.background\":\"#16161e\",\"editorHoverWidget.border\":\"#101014\",\"editorIndentGuide.activeBackground1\":\"#363b54\",\"editorIndentGuide.background1\":\"#232433\",\"editorInfo.foreground\":\"#0da0ba\",\"editorLightBulb.foreground\":\"#e0af68\",\"editorLightBulbAutoFix.foreground\":\"#e0af68\",\"editorLineNumber.activeForeground\":\"#737aa2\",\"editorLineNumber.foreground\":\"#363b54\",\"editorLink.activeForeground\":\"#acb0d0\",\"editorMarkerNavigation.background\":\"#16161e\",\"editorOverviewRuler.addedForeground\":\"#164846\",\"editorOverviewRuler.border\":\"#101014\",\"editorOverviewRuler.bracketMatchForeground\":\"#101014\",\"editorOverviewRuler.deletedForeground\":\"#703438\",\"editorOverviewRuler.errorForeground\":\"#db4b4b\",\"editorOverviewRuler.findMatchForeground\":\"#a9b1d644\",\"editorOverviewRuler.infoForeground\":\"#1abc9c\",\"editorOverviewRuler.modifiedForeground\":\"#394b70\",\"editorOverviewRuler.rangeHighlightForeground\":\"#a9b1d644\",\"editorOverviewRuler.selectionHighlightForeground\":\"#a9b1d622\",\"editorOverviewRuler.warningForeground\":\"#e0af68\",\"editorOverviewRuler.wordHighlightForeground\":\"#bb9af755\",\"editorOverviewRuler.wordHighlightStrongForeground\":\"#bb9af766\",\"editorPane.background\":\"#16161e\",\"editorRuler.foreground\":\"#101014\",\"editorSuggestWidget.background\":\"#16161e\",\"editorSuggestWidget.border\":\"#101014\",\"editorSuggestWidget.highlightForeground\":\"#6183bb\",\"editorSuggestWidget.selectedBackground\":\"#20222c\",\"editorWarning.foreground\":\"#e0af68\",\"editorWhitespace.foreground\":\"#363b54\",\"editorWidget.background\":\"#16161e\",\"editorWidget.foreground\":\"#787c99\",\"editorWidget.resizeBorder\":\"#545c7e33\",\"errorForeground\":\"#515670\",\"extensionBadge.remoteBackground\":\"#3d59a1\",\"extensionBadge.remoteForeground\":\"#ffffff\",\"extensionButton.prominentBackground\":\"#3d59a1DD\",\"extensionButton.prominentForeground\":\"#ffffff\",\"extensionButton.prominentHoverBackground\":\"#3d59a1AA\",\"focusBorder\":\"#545c7e33\",\"foreground\":\"#787c99\",\"gitDecoration.addedResourceForeground\":\"#449dab\",\"gitDecoration.conflictingResourceForeground\":\"#e0af68cc\",\"gitDecoration.deletedResourceForeground\":\"#914c54\",\"gitDecoration.ignoredResourceForeground\":\"#515670\",\"gitDecoration.modifiedResourceForeground\":\"#6183bb\",\"gitDecoration.renamedResourceForeground\":\"#449dab\",\"gitDecoration.stageDeletedResourceForeground\":\"#914c54\",\"gitDecoration.stageModifiedResourceForeground\":\"#6183bb\",\"gitDecoration.untrackedResourceForeground\":\"#449dab\",\"gitlens.gutterBackgroundColor\":\"#16161e\",\"gitlens.gutterForegroundColor\":\"#787c99\",\"gitlens.gutterUncommittedForegroundColor\":\"#7aa2f7\",\"gitlens.trailingLineForegroundColor\":\"#646e9c\",\"icon.foreground\":\"#787c99\",\"input.background\":\"#14141b\",\"input.border\":\"#0f0f14\",\"input.foreground\":\"#a9b1d6\",\"input.placeholderForeground\":\"#787c998A\",\"inputOption.activeBackground\":\"#3d59a144\",\"inputOption.activeForeground\":\"#c0caf5\",\"inputValidation.errorBackground\":\"#85353e\",\"inputValidation.errorBorder\":\"#963c47\",\"inputValidation.errorForeground\":\"#bbc2e0\",\"inputValidation.infoBackground\":\"#3d59a15c\",\"inputValidation.infoBorder\":\"#3d59a1\",\"inputValidation.infoForeground\":\"#bbc2e0\",\"inputValidation.warningBackground\":\"#c2985b\",\"inputValidation.warningBorder\":\"#e0af68\",\"inputValidation.warningForeground\":\"#000000\",\"list.activeSelectionBackground\":\"#202330\",\"list.activeSelectionForeground\":\"#a9b1d6\",\"list.deemphasizedForeground\":\"#787c99\",\"list.dropBackground\":\"#1e202e\",\"list.errorForeground\":\"#bb616b\",\"list.focusBackground\":\"#1c1d29\",\"list.focusForeground\":\"#a9b1d6\",\"list.highlightForeground\":\"#668ac4\",\"list.hoverBackground\":\"#13131a\",\"list.hoverForeground\":\"#a9b1d6\",\"list.inactiveSelectionBackground\":\"#1c1d29\",\"list.inactiveSelectionForeground\":\"#a9b1d6\",\"list.invalidItemForeground\":\"#c97018\",\"list.warningForeground\":\"#c49a5a\",\"listFilterWidget.background\":\"#101014\",\"listFilterWidget.noMatchesOutline\":\"#a6333f\",\"listFilterWidget.outline\":\"#3d59a1\",\"menu.background\":\"#16161e\",\"menu.border\":\"#101014\",\"menu.foreground\":\"#787c99\",\"menu.selectionBackground\":\"#1e202e\",\"menu.selectionForeground\":\"#a9b1d6\",\"menu.separatorBackground\":\"#101014\",\"menubar.selectionBackground\":\"#1e202e\",\"menubar.selectionBorder\":\"#1b1e2e\",\"menubar.selectionForeground\":\"#a9b1d6\",\"merge.currentContentBackground\":\"#007a7544\",\"merge.currentHeaderBackground\":\"#41a6b525\",\"merge.incomingContentBackground\":\"#3d59a144\",\"merge.incomingHeaderBackground\":\"#3d59a1aa\",\"mergeEditor.change.background\":\"#41a6b525\",\"mergeEditor.change.word.background\":\"#41a6b540\",\"mergeEditor.conflict.handled.minimapOverViewRuler\":\"#449dab\",\"mergeEditor.conflict.handledFocused.border\":\"#41a6b565\",\"mergeEditor.conflict.handledUnfocused.border\":\"#41a6b525\",\"mergeEditor.conflict.unhandled.minimapOverViewRuler\":\"#e0af68\",\"mergeEditor.conflict.unhandledFocused.border\":\"#e0af68b0\",\"mergeEditor.conflict.unhandledUnfocused.border\":\"#e0af6888\",\"minimapGutter.addedBackground\":\"#1C5957\",\"minimapGutter.deletedBackground\":\"#944449\",\"minimapGutter.modifiedBackground\":\"#425882\",\"multiDiffEditor.border\":\"#1a1b26\",\"multiDiffEditor.headerBackground\":\"#1a1b26\",\"notebook.cellBorderColor\":\"#101014\",\"notebook.cellEditorBackground\":\"#16161e\",\"notebook.cellStatusBarItemHoverBackground\":\"#1c1d29\",\"notebook.editorBackground\":\"#1a1b26\",\"notebook.focusedCellBorder\":\"#29355a\",\"notificationCenterHeader.background\":\"#101014\",\"notificationLink.foreground\":\"#6183bb\",\"notifications.background\":\"#101014\",\"notificationsErrorIcon.foreground\":\"#bb616b\",\"notificationsInfoIcon.foreground\":\"#0da0ba\",\"notificationsWarningIcon.foreground\":\"#bba461\",\"panel.background\":\"#16161e\",\"panel.border\":\"#101014\",\"panelInput.border\":\"#16161e\",\"panelTitle.activeBorder\":\"#16161e\",\"panelTitle.activeForeground\":\"#787c99\",\"panelTitle.inactiveForeground\":\"#42465d\",\"peekView.border\":\"#101014\",\"peekViewEditor.background\":\"#16161e\",\"peekViewEditor.matchHighlightBackground\":\"#3d59a166\",\"peekViewResult.background\":\"#101014\",\"peekViewResult.fileForeground\":\"#787c99\",\"peekViewResult.lineForeground\":\"#a9b1d6\",\"peekViewResult.matchHighlightBackground\":\"#3d59a166\",\"peekViewResult.selectionBackground\":\"#3d59a133\",\"peekViewResult.selectionForeground\":\"#a9b1d6\",\"peekViewTitle.background\":\"#101014\",\"peekViewTitleDescription.foreground\":\"#787c99\",\"peekViewTitleLabel.foreground\":\"#a9b1d6\",\"pickerGroup.border\":\"#101014\",\"pickerGroup.foreground\":\"#a9b1d6\",\"progressBar.background\":\"#3d59a1\",\"sash.hoverBorder\":\"#29355a\",\"scrollbar.shadow\":\"#00000033\",\"scrollbarSlider.activeBackground\":\"#868bc422\",\"scrollbarSlider.background\":\"#868bc415\",\"scrollbarSlider.hoverBackground\":\"#868bc410\",\"selection.background\":\"#515c7e40\",\"settings.headerForeground\":\"#6183bb\",\"sideBar.background\":\"#16161e\",\"sideBar.border\":\"#101014\",\"sideBar.dropBackground\":\"#1e202e\",\"sideBar.foreground\":\"#787c99\",\"sideBarSectionHeader.background\":\"#16161e\",\"sideBarSectionHeader.border\":\"#101014\",\"sideBarSectionHeader.foreground\":\"#a9b1d6\",\"sideBarTitle.foreground\":\"#787c99\",\"statusBar.background\":\"#16161e\",\"statusBar.border\":\"#101014\",\"statusBar.debuggingBackground\":\"#16161e\",\"statusBar.debuggingForeground\":\"#787c99\",\"statusBar.foreground\":\"#787c99\",\"statusBar.noFolderBackground\":\"#16161e\",\"statusBarItem.activeBackground\":\"#101014\",\"statusBarItem.hoverBackground\":\"#20222c\",\"statusBarItem.prominentBackground\":\"#101014\",\"statusBarItem.prominentHoverBackground\":\"#20222c\",\"tab.activeBackground\":\"#16161e\",\"tab.activeBorder\":\"#3d59a1\",\"tab.activeForeground\":\"#a9b1d6\",\"tab.activeModifiedBorder\":\"#1a1b26\",\"tab.border\":\"#101014\",\"tab.hoverForeground\":\"#a9b1d6\",\"tab.inactiveBackground\":\"#16161e\",\"tab.inactiveForeground\":\"#787c99\",\"tab.inactiveModifiedBorder\":\"#1f202e\",\"tab.lastPinnedBorder\":\"#222333\",\"tab.unfocusedActiveBorder\":\"#1f202e\",\"tab.unfocusedActiveForeground\":\"#a9b1d6\",\"tab.unfocusedHoverForeground\":\"#a9b1d6\",\"tab.unfocusedInactiveForeground\":\"#787c99\",\"terminal.ansiBlack\":\"#363b54\",\"terminal.ansiBlue\":\"#7aa2f7\",\"terminal.ansiBrightBlack\":\"#363b54\",\"terminal.ansiBrightBlue\":\"#7aa2f7\",\"terminal.ansiBrightCyan\":\"#7dcfff\",\"terminal.ansiBrightGreen\":\"#41a6b5\",\"terminal.ansiBrightMagenta\":\"#bb9af7\",\"terminal.ansiBrightRed\":\"#f7768e\",\"terminal.ansiBrightWhite\":\"#acb0d0\",\"terminal.ansiBrightYellow\":\"#e0af68\",\"terminal.ansiCyan\":\"#7dcfff\",\"terminal.ansiGreen\":\"#73daca\",\"terminal.ansiMagenta\":\"#bb9af7\",\"terminal.ansiRed\":\"#f7768e\",\"terminal.ansiWhite\":\"#787c99\",\"terminal.ansiYellow\":\"#e0af68\",\"terminal.background\":\"#16161e\",\"terminal.foreground\":\"#787c99\",\"terminal.selectionBackground\":\"#515c7e4d\",\"textBlockQuote.background\":\"#16161e\",\"textCodeBlock.background\":\"#16161e\",\"textLink.activeForeground\":\"#7dcfff\",\"textLink.foreground\":\"#6183bb\",\"textPreformat.foreground\":\"#9699a8\",\"textSeparator.foreground\":\"#363b54\",\"titleBar.activeBackground\":\"#16161e\",\"titleBar.activeForeground\":\"#787c99\",\"titleBar.border\":\"#101014\",\"titleBar.inactiveBackground\":\"#16161e\",\"titleBar.inactiveForeground\":\"#787c99\",\"toolbar.activeBackground\":\"#202330\",\"toolbar.hoverBackground\":\"#202330\",\"tree.indentGuidesStroke\":\"#2b2b3b\",\"walkThrough.embeddedEditorBackground\":\"#16161e\",\"widget.shadow\":\"#ffffff00\",\"window.activeBorder\":\"#0d0f17\",\"window.inactiveBorder\":\"#0d0f17\"},\"displayName\":\"Tokyo Night\",\"name\":\"tokyo-night\",\"semanticTokenColors\":{\"*.defaultLibrary\":{\"foreground\":\"#2ac3de\"},\"parameter\":{\"foreground\":\"#d9d4cd\"},\"parameter.declaration\":{\"foreground\":\"#e0af68\"},\"property.declaration\":{\"foreground\":\"#73daca\"},\"property.defaultLibrary\":{\"foreground\":\"#2ac3de\"},\"variable\":{\"foreground\":\"#c0caf5\"},\"variable.declaration\":{\"foreground\":\"#bb9af7\"},\"variable.defaultLibrary\":{\"foreground\":\"#2ac3de\"}},\"tokenColors\":[{\"scope\":[\"comment\",\"meta.var.expr storage.type\",\"keyword.control.flow\",\"keyword.control.return\",\"meta.directive.vue punctuation.separator.key-value.html\",\"meta.directive.vue entity.other.attribute-name.html\",\"tag.decorator.js entity.name.tag.js\",\"tag.decorator.js punctuation.definition.tag.js\",\"storage.modifier\",\"string.quoted.docstring.multi\",\"string.quoted.docstring.multi.python punctuation.definition.string.begin\",\"string.quoted.docstring.multi.python punctuation.definition.string.end\",\"string.quoted.docstring.multi.python constant.character.escape\"],\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":[\"keyword.control.flow.block-scalar.literal\",\"keyword.control.flow.python\"],\"settings\":{\"fontStyle\":\"\"}},{\"scope\":[\"comment\",\"comment.block.documentation\",\"punctuation.definition.comment\",\"comment.block.documentation punctuation\",\"string.quoted.docstring.multi\",\"string.quoted.docstring.multi.python punctuation.definition.string.begin\",\"string.quoted.docstring.multi.python punctuation.definition.string.end\",\"string.quoted.docstring.multi.python constant.character.escape\"],\"settings\":{\"foreground\":\"#51597d\"}},{\"scope\":[\"keyword.operator.assignment.jsdoc\",\"comment.block.documentation variable\",\"comment.block.documentation storage\",\"comment.block.documentation keyword\",\"comment.block.documentation support\",\"comment.block.documentation markup\",\"comment.block.documentation markup.inline.raw.string.markdown\",\"meta.other.type.phpdoc.php keyword.other.type.php\",\"meta.other.type.phpdoc.php support.other.namespace.php\",\"meta.other.type.phpdoc.php punctuation.separator.inheritance.php\",\"meta.other.type.phpdoc.php support.class\",\"keyword.other.phpdoc.php\",\"log.date\"],\"settings\":{\"foreground\":\"#5a638c\"}},{\"scope\":[\"meta.other.type.phpdoc.php support.class\",\"comment.block.documentation storage.type\",\"comment.block.documentation punctuation.definition.block.tag\",\"comment.block.documentation entity.name.type.instance\"],\"settings\":{\"foreground\":\"#646e9c\"}},{\"scope\":[\"variable.other.constant\",\"punctuation.definition.constant\",\"constant.language\",\"constant.numeric\",\"support.constant\",\"constant.other.caps\"],\"settings\":{\"foreground\":\"#ff9e64\"}},{\"scope\":[\"string\",\"constant.other.symbol\",\"constant.other.key\",\"meta.attribute-selector\",\"string constant.character\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#9ece6a\"}},{\"scope\":[\"constant.other.color\",\"constant.other.color.rgb-value.hex punctuation.definition.constant\"],\"settings\":{\"foreground\":\"#9aa5ce\"}},{\"scope\":[\"invalid\",\"invalid.illegal\"],\"settings\":{\"foreground\":\"#ff5370\"}},{\"scope\":\"invalid.deprecated\",\"settings\":{\"foreground\":\"#bb9af7\"}},{\"scope\":\"storage.type\",\"settings\":{\"foreground\":\"#bb9af7\"}},{\"scope\":[\"meta.var.expr storage.type\",\"storage.modifier\"],\"settings\":{\"foreground\":\"#9d7cd8\"}},{\"scope\":[\"punctuation.definition.template-expression\",\"punctuation.section.embedded\",\"meta.embedded.line.tag.smarty\",\"support.constant.handlebars\",\"punctuation.section.tag.twig\"],\"settings\":{\"foreground\":\"#7dcfff\"}},{\"scope\":[\"keyword.control.smarty\",\"keyword.control.twig\",\"support.constant.handlebars keyword.control\",\"keyword.operator.comparison.twig\",\"keyword.blade\",\"entity.name.function.blade\"],\"settings\":{\"foreground\":\"#0db9d7\"}},{\"scope\":[\"keyword.operator.spread\",\"keyword.operator.rest\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#f7768e\"}},{\"scope\":[\"keyword.operator\",\"keyword.control.as\",\"keyword.other\",\"keyword.operator.bitwise.shift\",\"punctuation\",\"expression.embbeded.vue punctuation.definition.tag\",\"text.html.twig meta.tag.inline.any.html\",\"meta.tag.template.value.twig meta.function.arguments.twig\",\"meta.directive.vue punctuation.separator.key-value.html\",\"punctuation.definition.constant.markdown\",\"punctuation.definition.string\",\"punctuation.support.type.property-name\",\"text.html.vue-html meta.tag\",\"meta.attribute.directive\",\"punctuation.definition.keyword\",\"punctuation.terminator.rule\",\"punctuation.definition.entity\",\"punctuation.separator.inheritance.php\",\"keyword.other.template\",\"keyword.other.substitution\",\"entity.name.operator\",\"meta.property-list punctuation.separator.key-value\",\"meta.at-rule.mixin punctuation.separator.key-value\",\"meta.at-rule.function variable.parameter.url\"],\"settings\":{\"foreground\":\"#89ddff\"}},{\"scope\":[\"keyword.control.module.js\",\"keyword.control.import\",\"keyword.control.export\",\"keyword.control.from\",\"keyword.control.default\",\"meta.import keyword.other\"],\"settings\":{\"foreground\":\"#7dcfff\"}},{\"scope\":[\"keyword\",\"keyword.control\",\"keyword.other.important\"],\"settings\":{\"foreground\":\"#bb9af7\"}},{\"scope\":\"keyword.other.DML\",\"settings\":{\"foreground\":\"#7dcfff\"}},{\"scope\":[\"keyword.operator.logical\",\"storage.type.function\",\"keyword.operator.bitwise\",\"keyword.operator.ternary\",\"keyword.operator.comparison\",\"keyword.operator.relational\",\"keyword.operator.or.regexp\"],\"settings\":{\"foreground\":\"#bb9af7\"}},{\"scope\":\"entity.name.tag\",\"settings\":{\"foreground\":\"#f7768e\"}},{\"scope\":[\"entity.name.tag support.class.component\",\"meta.tag.custom entity.name.tag\",\"meta.tag.other.unrecognized.html.derivative entity.name.tag\",\"meta.tag\"],\"settings\":{\"foreground\":\"#de5971\"}},{\"scope\":\"punctuation.definition.tag\",\"settings\":{\"foreground\":\"#ba3c97\"}},{\"scope\":[\"constant.other.php\",\"variable.other.global.safer\",\"variable.other.global.safer punctuation.definition.variable\",\"variable.other.global\",\"variable.other.global punctuation.definition.variable\",\"constant.other\"],\"settings\":{\"foreground\":\"#e0af68\"}},{\"scope\":[\"variable\",\"support.variable\",\"string constant.other.placeholder\",\"variable.parameter.handlebars\",\"variable.other.object\",\"meta.fstring\",\"meta.function-call meta.function-call.arguments\"],\"settings\":{\"foreground\":\"#c0caf5\"}},{\"scope\":\"meta.array.literal variable\",\"settings\":{\"foreground\":\"#7dcfff\"}},{\"scope\":[\"meta.object-literal.key\",\"entity.name.type.hcl\",\"string.alias.graphql\",\"string.unquoted.graphql\",\"string.unquoted.alias.graphql\",\"meta.group.braces.curly constant.other.object.key.js string.unquoted.label.js\",\"meta.field.declaration.ts variable.object.property\",\"meta.block entity.name.label\"],\"settings\":{\"foreground\":\"#73daca\"}},{\"scope\":[\"variable.other.property\",\"support.variable.property\",\"support.variable.property.dom\",\"meta.function-call variable.other.object.property\"],\"settings\":{\"foreground\":\"#7dcfff\"}},{\"scope\":\"variable.other.object.property\",\"settings\":{\"foreground\":\"#c0caf5\"}},{\"scope\":\"meta.objectliteral meta.object.member meta.objectliteral meta.object.member meta.objectliteral meta.object.member meta.object-literal.key\",\"settings\":{\"foreground\":\"#41a6b5\"}},{\"scope\":\"source.cpp meta.block variable.other\",\"settings\":{\"foreground\":\"#f7768e\"}},{\"scope\":\"support.other.variable\",\"settings\":{\"foreground\":\"#f7768e\"}},{\"scope\":[\"meta.class-method.js entity.name.function.js\",\"entity.name.method.js\",\"variable.function.constructor\",\"keyword.other.special-method\",\"storage.type.cs\"],\"settings\":{\"foreground\":\"#7aa2f7\"}},{\"scope\":[\"entity.name.function\",\"variable.other.enummember\",\"meta.function-call\",\"meta.function-call entity.name.function\",\"variable.function\",\"meta.definition.method entity.name.function\",\"meta.object-literal entity.name.function\"],\"settings\":{\"foreground\":\"#7aa2f7\"}},{\"scope\":[\"variable.parameter.function.language.special\",\"variable.parameter\",\"meta.function.parameters punctuation.definition.variable\",\"meta.function.parameter variable\"],\"settings\":{\"foreground\":\"#e0af68\"}},{\"scope\":[\"keyword.other.type.php\",\"storage.type.php\",\"constant.character\",\"constant.escape\",\"keyword.other.unit\"],\"settings\":{\"foreground\":\"#bb9af7\"}},{\"scope\":[\"meta.definition.variable variable.other.constant\",\"meta.definition.variable variable.other.readwrite\",\"variable.declaration.hcl variable.other.readwrite.hcl\",\"meta.mapping.key.hcl variable.other.readwrite.hcl\",\"variable.other.declaration\"],\"settings\":{\"foreground\":\"#bb9af7\"}},{\"scope\":\"entity.other.inherited-class\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#bb9af7\"}},{\"scope\":[\"support.class\",\"support.type\",\"variable.other.readwrite.alias\",\"support.orther.namespace.use.php\",\"meta.use.php\",\"support.other.namespace.php\",\"support.type.sys-types\",\"support.variable.dom\",\"support.constant.math\",\"support.type.object.module\",\"support.constant.json\",\"entity.name.namespace\",\"meta.import.qualifier\",\"variable.other.constant.object\"],\"settings\":{\"foreground\":\"#0db9d7\"}},{\"scope\":\"entity.name\",\"settings\":{\"foreground\":\"#c0caf5\"}},{\"scope\":\"support.function\",\"settings\":{\"foreground\":\"#0db9d7\"}},{\"scope\":[\"source.css support.type.property-name\",\"source.sass support.type.property-name\",\"source.scss support.type.property-name\",\"source.less support.type.property-name\",\"source.stylus support.type.property-name\",\"source.postcss support.type.property-name\",\"support.type.property-name.css\",\"support.type.vendored.property-name\",\"support.type.map.key\"],\"settings\":{\"foreground\":\"#7aa2f7\"}},{\"scope\":[\"support.constant.font-name\",\"meta.definition.variable\"],\"settings\":{\"foreground\":\"#9ece6a\"}},{\"scope\":[\"entity.other.attribute-name.class\",\"meta.at-rule.mixin.scss entity.name.function.scss\"],\"settings\":{\"foreground\":\"#9ece6a\"}},{\"scope\":\"entity.other.attribute-name.id\",\"settings\":{\"foreground\":\"#fc7b7b\"}},{\"scope\":\"entity.name.tag.css\",\"settings\":{\"foreground\":\"#0db9d7\"}},{\"scope\":[\"entity.other.attribute-name.pseudo-class punctuation.definition.entity\",\"entity.other.attribute-name.pseudo-element punctuation.definition.entity\",\"entity.other.attribute-name.class punctuation.definition.entity\",\"entity.name.tag.reference\"],\"settings\":{\"foreground\":\"#e0af68\"}},{\"scope\":\"meta.property-list\",\"settings\":{\"foreground\":\"#9abdf5\"}},{\"scope\":[\"meta.property-list meta.at-rule.if\",\"meta.at-rule.return variable.parameter.url\",\"meta.property-list meta.at-rule.else\"],\"settings\":{\"foreground\":\"#ff9e64\"}},{\"scope\":[\"entity.other.attribute-name.parent-selector-suffix punctuation.definition.entity.css\"],\"settings\":{\"foreground\":\"#73daca\"}},{\"scope\":\"meta.property-list meta.property-list\",\"settings\":{\"foreground\":\"#9abdf5\"}},{\"scope\":[\"meta.at-rule.mixin keyword.control.at-rule.mixin\",\"meta.at-rule.include entity.name.function.scss\",\"meta.at-rule.include keyword.control.at-rule.include\"],\"settings\":{\"foreground\":\"#bb9af7\"}},{\"scope\":[\"keyword.control.at-rule.include punctuation.definition.keyword\",\"keyword.control.at-rule.mixin punctuation.definition.keyword\",\"meta.at-rule.include keyword.control.at-rule.include\",\"keyword.control.at-rule.extend punctuation.definition.keyword\",\"meta.at-rule.extend keyword.control.at-rule.extend\",\"entity.other.attribute-name.placeholder.css punctuation.definition.entity.css\",\"meta.at-rule.media keyword.control.at-rule.media\",\"meta.at-rule.mixin keyword.control.at-rule.mixin\",\"meta.at-rule.function keyword.control.at-rule.function\",\"keyword.control punctuation.definition.keyword\"],\"settings\":{\"foreground\":\"#9d7cd8\"}},{\"scope\":\"meta.property-list meta.at-rule.include\",\"settings\":{\"foreground\":\"#c0caf5\"}},{\"scope\":\"support.constant.property-value\",\"settings\":{\"foreground\":\"#ff9e64\"}},{\"scope\":[\"entity.name.module.js\",\"variable.import.parameter.js\",\"variable.other.class.js\"],\"settings\":{\"foreground\":\"#c0caf5\"}},{\"scope\":\"variable.language\",\"settings\":{\"foreground\":\"#f7768e\"}},{\"scope\":\"variable.other punctuation.definition.variable\",\"settings\":{\"foreground\":\"#c0caf5\"}},{\"scope\":[\"source.js constant.other.object.key.js string.unquoted.label.js\",\"variable.language.this punctuation.definition.variable\",\"keyword.other.this\"],\"settings\":{\"foreground\":\"#f7768e\"}},{\"scope\":[\"entity.other.attribute-name\",\"text.html.basic entity.other.attribute-name.html\",\"text.html.basic entity.other.attribute-name\"],\"settings\":{\"foreground\":\"#bb9af7\"}},{\"scope\":\"text.html constant.character.entity\",\"settings\":{\"foreground\":\"#0DB9D7\"}},{\"scope\":[\"entity.other.attribute-name.id.html\",\"meta.directive.vue entity.other.attribute-name.html\"],\"settings\":{\"foreground\":\"#bb9af7\"}},{\"scope\":\"source.sass keyword.control\",\"settings\":{\"foreground\":\"#7aa2f7\"}},{\"scope\":[\"entity.other.attribute-name.pseudo-class\",\"entity.other.attribute-name.pseudo-element\",\"entity.other.attribute-name.placeholder\",\"meta.property-list meta.property-value\"],\"settings\":{\"foreground\":\"#bb9af7\"}},{\"scope\":\"markup.inserted\",\"settings\":{\"foreground\":\"#449dab\"}},{\"scope\":\"markup.deleted\",\"settings\":{\"foreground\":\"#914c54\"}},{\"scope\":\"markup.changed\",\"settings\":{\"foreground\":\"#6183bb\"}},{\"scope\":\"string.regexp\",\"settings\":{\"foreground\":\"#b4f9f8\"}},{\"scope\":\"punctuation.definition.group\",\"settings\":{\"foreground\":\"#f7768e\"}},{\"scope\":[\"constant.other.character-class.regexp\"],\"settings\":{\"foreground\":\"#bb9af7\"}},{\"scope\":[\"constant.other.character-class.set.regexp\",\"punctuation.definition.character-class.regexp\"],\"settings\":{\"foreground\":\"#e0af68\"}},{\"scope\":\"keyword.operator.quantifier.regexp\",\"settings\":{\"foreground\":\"#89ddff\"}},{\"scope\":\"constant.character.escape.backslash\",\"settings\":{\"foreground\":\"#c0caf5\"}},{\"scope\":\"constant.character.escape\",\"settings\":{\"foreground\":\"#89ddff\"}},{\"scope\":[\"tag.decorator.js entity.name.tag.js\",\"tag.decorator.js punctuation.definition.tag.js\"],\"settings\":{\"foreground\":\"#7aa2f7\"}},{\"scope\":\"keyword.other.unit\",\"settings\":{\"foreground\":\"#f7768e\"}},{\"scope\":[\"source.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#7aa2f7\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#0db9d7\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#7dcfff\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#bb9af7\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#e0af68\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#0db9d7\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#73daca\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#f7768e\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#9ece6a\"}},{\"scope\":\"punctuation.definition.list_item.markdown\",\"settings\":{\"foreground\":\"#9abdf5\"}},{\"scope\":[\"meta.block\",\"meta.brace\",\"punctuation.definition.block\",\"punctuation.definition.use\",\"punctuation.definition.class\",\"punctuation.definition.begin.bracket\",\"punctuation.definition.end.bracket\",\"punctuation.definition.switch-expression.begin.bracket\",\"punctuation.definition.switch-expression.end.bracket\",\"punctuation.definition.section.switch-block.begin.bracket\",\"punctuation.definition.section.switch-block.end.bracket\",\"punctuation.definition.group.shell\",\"punctuation.definition.parameters\",\"punctuation.definition.arguments\",\"punctuation.definition.dictionary\",\"punctuation.definition.array\",\"punctuation.section\"],\"settings\":{\"foreground\":\"#9abdf5\"}},{\"scope\":[\"meta.embedded.block\"],\"settings\":{\"foreground\":\"#c0caf5\"}},{\"scope\":[\"meta.tag JSXNested\",\"meta.jsx.children\",\"text.html\",\"text.log\"],\"settings\":{\"foreground\":\"#9aa5ce\"}},{\"scope\":\"text.html.markdown markup.inline.raw.markdown\",\"settings\":{\"foreground\":\"#bb9af7\"}},{\"scope\":\"text.html.markdown markup.inline.raw.markdown punctuation.definition.raw.markdown\",\"settings\":{\"foreground\":\"#4E5579\"}},{\"scope\":[\"heading.1.markdown entity.name\",\"heading.1.markdown punctuation.definition.heading.markdown\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#89ddff\"}},{\"scope\":[\"heading.2.markdown entity.name\",\"heading.2.markdown punctuation.definition.heading.markdown\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#61bdf2\"}},{\"scope\":[\"heading.3.markdown entity.name\",\"heading.3.markdown punctuation.definition.heading.markdown\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#7aa2f7\"}},{\"scope\":[\"heading.4.markdown entity.name\",\"heading.4.markdown punctuation.definition.heading.markdown\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#6d91de\"}},{\"scope\":[\"heading.5.markdown entity.name\",\"heading.5.markdown punctuation.definition.heading.markdown\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#9aa5ce\"}},{\"scope\":[\"heading.6.markdown entity.name\",\"heading.6.markdown punctuation.definition.heading.markdown\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#747ca1\"}},{\"scope\":[\"markup.italic\",\"markup.italic punctuation\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#c0caf5\"}},{\"scope\":[\"markup.bold\",\"markup.bold punctuation\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#c0caf5\"}},{\"scope\":[\"markup.bold markup.italic\",\"markup.bold markup.italic punctuation\"],\"settings\":{\"fontStyle\":\"bold italic\",\"foreground\":\"#c0caf5\"}},{\"scope\":[\"markup.underline\",\"markup.underline punctuation\"],\"settings\":{\"fontStyle\":\"underline\"}},{\"scope\":\"markup.quote punctuation.definition.blockquote.markdown\",\"settings\":{\"foreground\":\"#4e5579\"}},{\"scope\":\"markup.quote\",\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":[\"string.other.link\",\"markup.underline.link\",\"constant.other.reference.link.markdown\",\"string.other.link.description.title.markdown\"],\"settings\":{\"foreground\":\"#73daca\"}},{\"scope\":[\"markup.fenced_code.block.markdown\",\"markup.inline.raw.string.markdown\",\"variable.language.fenced.markdown\"],\"settings\":{\"foreground\":\"#89ddff\"}},{\"scope\":\"meta.separator\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#51597d\"}},{\"scope\":\"markup.table\",\"settings\":{\"foreground\":\"#c0cefc\"}},{\"scope\":\"token.info-token\",\"settings\":{\"foreground\":\"#0db9d7\"}},{\"scope\":\"token.warn-token\",\"settings\":{\"foreground\":\"#ffdb69\"}},{\"scope\":\"token.error-token\",\"settings\":{\"foreground\":\"#db4b4b\"}},{\"scope\":\"token.debug-token\",\"settings\":{\"foreground\":\"#b267e6\"}},{\"scope\":\"entity.tag.apacheconf\",\"settings\":{\"foreground\":\"#f7768e\"}},{\"scope\":[\"meta.preprocessor\"],\"settings\":{\"foreground\":\"#73daca\"}},{\"scope\":\"source.env\",\"settings\":{\"foreground\":\"#7aa2f7\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DB_GagMm.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Move\",\"name\":\"move\",\"patterns\":[{\"include\":\"#address\"},{\"include\":\"#comments\"},{\"include\":\"#module\"},{\"include\":\"#script\"},{\"include\":\"#annotation\"},{\"include\":\"#comments\"},{\"include\":\"#annotation\"},{\"include\":\"#entry\"},{\"include\":\"#public-scope\"},{\"include\":\"#public\"},{\"include\":\"#native\"},{\"include\":\"#import\"},{\"include\":\"#friend\"},{\"include\":\"#const\"},{\"include\":\"#struct\"},{\"include\":\"#has_ability\"},{\"include\":\"#enum\"},{\"include\":\"#macro\"},{\"include\":\"#fun\"},{\"include\":\"#spec\"}],\"repository\":{\"=== DEPRECATED_BELOW ===\":{},\"abilities\":{\"comment\":\"Ability\",\"match\":\"\\\\\\\\b(store|key|drop|copy)\\\\\\\\b\",\"name\":\"support.type.ability.move\"},\"address\":{\"begin\":\"\\\\\\\\b(address)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.type.address.keyword.move\"}},\"comment\":\"Address block\",\"end\":\"(?<=})\",\"name\":\"meta.address_block.move\",\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\"(?<=address)\",\"comment\":\"Address value/const\",\"end\":\"(?=[{])\",\"name\":\"meta.address.definition.move\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#address_literal\"},{\"comment\":\"Named Address\",\"match\":\"\\\\\\\\b(\\\\\\\\w+)\\\\\\\\b\",\"name\":\"entity.name.type.move\"}]},{\"include\":\"#module\"}]},\"annotation\":{\"begin\":\"#\\\\\\\\[\",\"end\":\"\\\\\\\\]\",\"name\":\"support.constant.annotation.move\",\"patterns\":[{\"comment\":\"Annotation name\",\"match\":\"\\\\\\\\b(\\\\\\\\w+)\\\\\\\\s*(?=\\\\\\\\=)\",\"name\":\"meta.annotation.name.move\"},{\"begin\":\"=\",\"comment\":\"Annotation value\",\"end\":\"(?=[,\\\\\\\\]])\",\"name\":\"meta.annotation.value.move\",\"patterns\":[{\"include\":\"#literals\"}]}]},\"as\":{\"comment\":\"Keyword as (highlighted)\",\"match\":\"\\\\\\\\b(as)\\\\\\\\b\",\"name\":\"keyword.control.as.move\"},\"as-import\":{\"comment\":\"Keyword as in import statement; not highlighted\",\"match\":\"\\\\\\\\b(as)\\\\\\\\b\",\"name\":\"meta.import.as.move\"},\"block\":{\"begin\":\"{\",\"comment\":\"Block expression or definition\",\"end\":\"}\",\"name\":\"meta.block.move\",\"patterns\":[{\"include\":\"#expr\"}]},\"block-comments\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*[\\\\\\\\*!](?![\\\\\\\\*/])\",\"comment\":\"Block documentation comment\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.documentation.move\"},{\"begin\":\"/\\\\\\\\*\",\"comment\":\"Block comment\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.move\"}]},\"capitalized\":{\"comment\":\"MyType - capitalized type name\",\"match\":\"\\\\\\\\b([A-Z][a-zA-Z_0-9]*)\\\\\\\\b\",\"name\":\"entity.name.type.use.move\"},\"comments\":{\"name\":\"meta.comments.move\",\"patterns\":[{\"include\":\"#doc-comments\"},{\"include\":\"#line-comments\"},{\"include\":\"#block-comments\"}]},\"const\":{\"begin\":\"\\\\\\\\b(const)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.const.move\"}},\"end\":\";\",\"name\":\"meta.const.move\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#primitives\"},{\"include\":\"#literals\"},{\"include\":\"#types\"},{\"match\":\"\\\\\\\\b([A-Z][A-Z_0-9]+)\\\\\\\\b\",\"name\":\"constant.other.move\"},{\"include\":\"#error_const\"}]},\"control\":{\"comment\":\"Control flow\",\"match\":\"\\\\\\\\b(return|while|loop|if|else|break|continue|abort)\\\\\\\\b\",\"name\":\"keyword.control.move\"},\"doc-comments\":{\"begin\":\"///\",\"comment\":\"Documentation comment\",\"end\":\"$\",\"name\":\"comment.block.documentation.move\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"markup.underline.link.move\"}},\"comment\":\"Escaped member / link\",\"match\":\"`(\\\\\\\\w+)`\"}]},\"entry\":{\"comment\":\"entry\",\"match\":\"\\\\\\\\b(entry)\\\\\\\\b\",\"name\":\"storage.modifier.visibility.entry.move\"},\"enum\":{\"begin\":\"\\\\\\\\b(enum)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.enum.move\"}},\"comment\":\"Enum syntax\",\"end\":\"(?<=})\",\"name\":\"meta.enum.move\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#escaped_identifier\"},{\"include\":\"#type_param\"},{\"comment\":\"Enum name (ident)\",\"match\":\"\\\\\\\\b[A-Z][a-zA-Z_0-9]*\\\\\\\\b\",\"name\":\"entity.name.type.enum.move\"},{\"include\":\"#has\"},{\"include\":\"#abilities\"},{\"begin\":\"{\",\"end\":\"}\",\"name\":\"meta.enum.definition.move\",\"patterns\":[{\"include\":\"#comments\"},{\"match\":\"\\\\\\\\b([A-Z][A-Za-z_0-9]*)\\\\\\\\b(?=\\\\\\\\s*\\\\\\\\()\",\"name\":\"entity.name.function.enum.move\"},{\"match\":\"\\\\\\\\b([A-Z][A-Za-z_0-9]*)\\\\\\\\b\",\"name\":\"entity.name.type.enum.move\"},{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"name\":\"meta.enum.tuple.move\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#expr_generic\"},{\"include\":\"#capitalized\"},{\"include\":\"#types\"}]},{\"begin\":\"{\",\"end\":\"}\",\"name\":\"meta.enum.struct.move\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#escaped_identifier\"},{\"include\":\"#expr_generic\"},{\"include\":\"#capitalized\"},{\"include\":\"#types\"}]}]}]},\"error_const\":{\"match\":\"\\\\\\\\b(E[A-Z][A-Za-z0-9_]*)\\\\\\\\b\",\"name\":\"variable.other.error.const.move\"},\"escaped_identifier\":{\"begin\":\"`\",\"comment\":\"Escaped variable\",\"end\":\"`\",\"name\":\"variable.language.escaped.move\"},\"expr\":{\"comment\":\"Aggregate Expression\",\"name\":\"meta.expression.move\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#escaped_identifier\"},{\"include\":\"#expr_generic\"},{\"include\":\"#packed_field\"},{\"include\":\"#import\"},{\"include\":\"#as\"},{\"include\":\"#mut\"},{\"include\":\"#let\"},{\"include\":\"#types\"},{\"include\":\"#literals\"},{\"include\":\"#control\"},{\"include\":\"#move_copy\"},{\"include\":\"#resource_methods\"},{\"include\":\"#self_access\"},{\"include\":\"#module_access\"},{\"include\":\"#label\"},{\"include\":\"#macro_call\"},{\"include\":\"#local_call\"},{\"include\":\"#method_call\"},{\"include\":\"#path_access\"},{\"include\":\"#match_expression\"},{\"match\":\"\\\\\\\\$(?=[a-z])\",\"name\":\"keyword.operator.macro.dollar.move\"},{\"match\":\"(?<=[$])[a-z][A-Z_0-9a-z]*\",\"name\":\"variable.other.meta.move\"},{\"comment\":\"ALL_CONST_CAPS\",\"match\":\"\\\\\\\\b([A-Z][A-Z_]+)\\\\\\\\b\",\"name\":\"constant.other.move\"},{\"include\":\"#error_const\"},{\"comment\":\"CustomType\",\"match\":\"\\\\\\\\b([A-Z][a-zA-Z_0-9]*)\\\\\\\\b\",\"name\":\"entity.name.type.move\"},{\"include\":\"#paren\"},{\"include\":\"#block\"}]},\"expr_generic\":{\"begin\":\"<(?=([\\\\\\\\sa-z_,0-9A-Z<>]+>))\",\"comment\":\"< angle brackets >\",\"end\":\">\",\"name\":\"meta.expression.generic.type.move\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#types\"},{\"include\":\"#capitalized\"},{\"include\":\"#expr_generic\"}]},\"friend\":{\"begin\":\"\\\\\\\\b(friend)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.type.move\"}},\"end\":\";\",\"name\":\"meta.friend.move\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#address_literal\"},{\"comment\":\"Name of the imported module\",\"match\":\"\\\\\\\\b([a-zA-Z][A-Za-z_0-9]*)\\\\\\\\b\",\"name\":\"entity.name.type.module.move\"}]},\"fun\":{\"patterns\":[{\"include\":\"#fun_signature\"},{\"include\":\"#block\"}]},\"fun_body\":{\"begin\":\"{\",\"comment\":\"Function body\",\"end\":\"(?<=})\",\"name\":\"meta.fun_body.move\",\"patterns\":[{\"include\":\"#expr\"}]},\"fun_call\":{\"begin\":\"\\\\\\\\b(\\\\\\\\w+)\\\\\\\\s*(?:<[\\\\\\\\w\\\\\\\\s,]+>)?\\\\\\\\s*[(]\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.call.move\"}},\"comment\":\"Function call\",\"end\":\"[)]\",\"name\":\"meta.fun_call.move\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#resource_methods\"},{\"include\":\"#self_access\"},{\"include\":\"#module_access\"},{\"include\":\"#move_copy\"},{\"include\":\"#literals\"},{\"include\":\"#fun_call\"},{\"include\":\"#block\"},{\"include\":\"#mut\"},{\"include\":\"#as\"}]},\"fun_signature\":{\"begin\":\"\\\\\\\\b(fun)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.fun.move\"}},\"comment\":\"Function signature\",\"end\":\"(?=[;{])\",\"name\":\"meta.fun_signature.move\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#module_access\"},{\"include\":\"#capitalized\"},{\"include\":\"#types\"},{\"include\":\"#mut\"},{\"begin\":\"(?<=\\\\\\\\bfun)\",\"comment\":\"Function name\",\"end\":\"(?=[<(])\",\"name\":\"meta.function_name.move\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#escaped_identifier\"},{\"match\":\"\\\\\\\\b(\\\\\\\\w+)\\\\\\\\b\",\"name\":\"entity.name.function.move\"}]},{\"include\":\"#type_param\"},{\"begin\":\"[(]\",\"comment\":\"Parentheses\",\"end\":\"[)]\",\"name\":\"meta.parentheses.move\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#self_access\"},{\"include\":\"#expr_generic\"},{\"include\":\"#escaped_identifier\"},{\"include\":\"#module_access\"},{\"include\":\"#capitalized\"},{\"include\":\"#types\"},{\"include\":\"#mut\"}]},{\"comment\":\"Keyword acquires\",\"match\":\"\\\\\\\\b(acquires)\\\\\\\\b\",\"name\":\"storage.modifier\"}]},\"has\":{\"comment\":\"Has Abilities\",\"match\":\"\\\\\\\\b(has)\\\\\\\\b\",\"name\":\"keyword.control.ability.has.move\"},\"has_ability\":{\"begin\":\"(?<=[})])\\\\\\\\s+(has)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.type.move\"}},\"end\":\";\",\"name\":\"meta.has.ability.move\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#abilities\"}]},\"ident\":{\"match\":\"\\\\\\\\b([a-zA-Z][A-Z_a-z0-9]*)\\\\\\\\b\",\"name\":\"meta.identifier.move\"},\"import\":{\"begin\":\"\\\\\\\\b(use)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.type.move\"}},\"end\":\";\",\"name\":\"meta.import.move\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#use_fun\"},{\"include\":\"#address_literal\"},{\"include\":\"#as-import\"},{\"comment\":\"Uppercase entities\",\"match\":\"\\\\\\\\b([A-Z]\\\\\\\\w*)\\\\\\\\b\",\"name\":\"entity.name.type.move\"},{\"begin\":\"{\",\"comment\":\"Module members\",\"end\":\"}\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#as-import\"},{\"comment\":\"Uppercase entities\",\"match\":\"\\\\\\\\b([A-Z]\\\\\\\\w*)\\\\\\\\b\",\"name\":\"entity.name.type.move\"}]},{\"comment\":\"Name of the imported module\",\"match\":\"\\\\\\\\b(\\\\\\\\w+)\\\\\\\\b\",\"name\":\"meta.entity.name.type.module.move\"}]},\"inline\":{\"comment\":\"inline\",\"match\":\"\\\\\\\\b(inline)\\\\\\\\b\",\"name\":\"storage.modifier.visibility.inline.move\"},\"label\":{\"comment\":\"Label\",\"match\":\"\\'[a-z][a-z_0-9]*\",\"name\":\"string.quoted.single.label.move\"},\"let\":{\"comment\":\"Keyword let\",\"match\":\"\\\\\\\\b(let)\\\\\\\\b\",\"name\":\"keyword.control.move\"},\"line-comments\":{\"begin\":\"//\",\"comment\":\"Single-line comment\",\"end\":\"$\",\"name\":\"comment.line.double-slash.move\"},\"literals\":{\"comment\":\"Literals supported in Move\",\"name\":\"meta.literal.move\",\"patterns\":[{\"comment\":\"base16 address literal\",\"match\":\"@0x[A-F0-9a-f]+\",\"name\":\"support.constant.address.base16.move\"},{\"comment\":\"named address literal @[ident]\",\"match\":\"@[a-zA-Z][a-zA-Z_0-9]*\",\"name\":\"support.constant.address.name.move\"},{\"comment\":\"Hex literal\",\"match\":\"0x[_a-fA-F0-9]+(?:u(?:8|16|32|64|128|256))?\",\"name\":\"constant.numeric.hex.move\"},{\"comment\":\"Numeric literal\",\"match\":\"(?<!(?:\\\\\\\\w|(?:(?<!\\\\\\\\.)\\\\\\\\.)))[0-9][_0-9]*(?:\\\\\\\\.(?!\\\\\\\\.)(?:[0-9][_0-9]*)?)?(?:[eE][+\\\\\\\\-]?[_0-9]+)?(?:[u](?:8|16|32|64|128|256))?\",\"name\":\"constant.numeric.move\"},{\"begin\":\"\\\\\\\\bb\\\\\"\",\"comment\":\"vector ascii bytestring literal\",\"end\":\"\\\\\"\",\"name\":\"meta.vector.literal.ascii.move\",\"patterns\":[{\"comment\":\"character escape\",\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.move\"},{\"comment\":\"Special symbol escape\",\"match\":\"\\\\\\\\\\\\\\\\[nrt\\\\\\\\0\\\\\"]\",\"name\":\"constant.character.escape.move\"},{\"comment\":\"HEX Escape\",\"match\":\"\\\\\\\\\\\\\\\\x[a-fA-F0-9][A-Fa-f0-9]\",\"name\":\"constant.character.escape.hex.move\"},{\"comment\":\"ASCII Character\",\"match\":\"[\\\\\\\\x00-\\\\\\\\x7F]\",\"name\":\"string.quoted.double.raw.move\"}]},{\"begin\":\"x\\\\\"\",\"comment\":\"vector hex literal\",\"end\":\"\\\\\"\",\"name\":\"meta.vector.literal.hex.move\",\"patterns\":[{\"comment\":\"vector hex literal\",\"match\":\"[A-Fa-f0-9]+\",\"name\":\"constant.character.move\"}]},{\"comment\":\"bool literal\",\"match\":\"\\\\\\\\b(?:true|false)\\\\\\\\b\",\"name\":\"constant.language.boolean.move\"},{\"begin\":\"vector\\\\\\\\[\",\"comment\":\"vector literal (macro?)\",\"end\":\"\\\\\\\\]\",\"name\":\"meta.vector.literal.macro.move\",\"patterns\":[{\"include\":\"#expr\"}]}]},\"local_call\":{\"comment\":\"call to a local / imported fun\",\"match\":\"\\\\\\\\b([a-z][_a-z0-9]*)(?=[<\\\\\\\\(])\",\"name\":\"entity.name.function.call.local.move\"},\"macro\":{\"begin\":\"\\\\\\\\b(macro)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.macro.move\"}},\"comment\":\"macro fun [ident] {}\",\"end\":\"(?<=})\",\"name\":\"meta.macro.move\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#fun\"}]},\"macro_call\":{\"captures\":{\"2\":{\"name\":\"support.function.macro.move\"}},\"comment\":\"Macro fun call\",\"match\":\"(\\\\\\\\b|\\\\\\\\.)([a-z][A-Za-z0-9_]*)!\",\"name\":\"meta.macro.call\"},\"match_expression\":{\"begin\":\"\\\\\\\\b(match)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.match.move\"}},\"comment\":\"enum pattern matching\",\"end\":\"(?<=})\",\"name\":\"meta.match.move\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#escaped_identifier\"},{\"include\":\"#types\"},{\"begin\":\"{\",\"comment\":\"Block expression or definition\",\"end\":\"}\",\"name\":\"meta.match.block.move\",\"patterns\":[{\"comment\":\"arrow operator\",\"match\":\"\\\\\\\\b(=>)\\\\\\\\b\",\"name\":\"operator.match.move\"},{\"include\":\"#expr\"}]},{\"include\":\"#expr\"}]},\"method_call\":{\"captures\":{\"1\":{\"name\":\"entity.name.function.call.path.move\"}},\"comment\":\"<expr>.[ident]<>?() call\",\"match\":\"\\\\\\\\.([a-z][_a-z0-9]*)(?=[<\\\\\\\\(])\",\"name\":\"meta.path.call.move\"},\"module\":{\"begin\":\"\\\\\\\\b(module)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.type.move\"}},\"comment\":\"Module definition\",\"end\":\"(?<=[;}])\",\"name\":\"meta.module.move\",\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\"(?<=\\\\\\\\b(module)\\\\\\\\b)\",\"comment\":\"Module name\",\"end\":\"(?=[;{])\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#escaped_identifier\"},{\"begin\":\"(?<=\\\\\\\\b(module))\",\"comment\":\"Module namespace / address\",\"end\":\"(?=[(::){])\",\"name\":\"constant.other.move\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#escaped_identifier\"}]},{\"begin\":\"(?<=::)\",\"comment\":\"Module name\",\"end\":\"(?=[\\\\\\\\s;{])\",\"name\":\"entity.name.type.move\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#escaped_identifier\"}]}]},{\"begin\":\"{\",\"comment\":\"Module scope\",\"end\":\"}\",\"name\":\"meta.module_scope.move\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#annotation\"},{\"include\":\"#entry\"},{\"include\":\"#public-scope\"},{\"include\":\"#public\"},{\"include\":\"#native\"},{\"include\":\"#import\"},{\"include\":\"#friend\"},{\"include\":\"#const\"},{\"include\":\"#struct\"},{\"include\":\"#has_ability\"},{\"include\":\"#enum\"},{\"include\":\"#macro\"},{\"include\":\"#fun\"},{\"include\":\"#spec\"}]}]},\"module_access\":{\"captures\":{\"1\":{\"name\":\"meta.entity.name.type.accessed.module.move\"},\"2\":{\"name\":\"entity.name.function.call.move\"}},\"comment\":\"Use of module type or method\",\"match\":\"\\\\\\\\b(\\\\\\\\w+)::(\\\\\\\\w+)\\\\\\\\b\",\"name\":\"meta.module_access.move\"},\"module_label\":{\"begin\":\"^\\\\\\\\s*(module)\\\\\\\\b\",\"comment\":\"Module label, inline module definition\",\"end\":\";\\\\\\\\s*$\",\"name\":\"meta.module.label.move\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#escaped_identifier\"},{\"begin\":\"(?<=\\\\\\\\bmodule\\\\\\\\b)\",\"comment\":\"Module namespace / address\",\"end\":\"(?=[(::){])\",\"name\":\"constant.other.move\"},{\"begin\":\"(?<=::)\",\"comment\":\"Module name\",\"end\":\"(?=[\\\\\\\\s{])\",\"name\":\"entity.name.type.move\"}]},\"move_copy\":{\"comment\":\"Keywords move and copy\",\"match\":\"\\\\\\\\b(move|copy)\\\\\\\\b\",\"name\":\"variable.language.move\"},\"mut\":{\"comment\":\"Mutable reference and let mut\",\"match\":\"\\\\\\\\b(mut)\\\\\\\\b\",\"name\":\"storage.modifier.mut.move\"},\"native\":{\"comment\":\"native\",\"match\":\"\\\\\\\\b(native)\\\\\\\\b\",\"name\":\"storage.modifier.visibility.native.move\"},\"packed_field\":{\"comment\":\"[ident]: \",\"match\":\"[a-z][a-z0-9_]+\\\\\\\\s*:\\\\\\\\s*(?=\\\\\\\\s)\",\"name\":\"meta.struct.field.move\"},\"paren\":{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"name\":\"meta.paren.move\",\"patterns\":[{\"include\":\"#expr\"}]},\"path_access\":{\"comment\":\"<expr>.[ident] access\",\"match\":\"\\\\\\\\.[a-z][_a-z0-9]*\\\\\\\\b\",\"name\":\"meta.path.access.move\"},\"phantom\":{\"comment\":\"Keyword phantom inside type parameters\",\"match\":\"\\\\\\\\b(phantom)\\\\\\\\b\",\"name\":\"keyword.control.phantom.move\"},\"primitives\":{\"comment\":\"Primitive types\",\"match\":\"\\\\\\\\b(u8|u16|u32|u64|u128|u256|address|bool|signer)\\\\\\\\b\",\"name\":\"support.type.primitives.move\"},\"public\":{\"comment\":\"public\",\"match\":\"\\\\\\\\b(public)\\\\\\\\b\",\"name\":\"storage.modifier.visibility.public.move\"},\"public-scope\":{\"begin\":\"(?<=\\\\\\\\b(public))\\\\\\\\s*\\\\\\\\(\",\"comment\":\"public (friend/script/package)\",\"end\":\"\\\\\\\\)\",\"name\":\"meta.public.scoped.move\",\"patterns\":[{\"include\":\"#comments\"},{\"match\":\"\\\\\\\\b(friend|script|package)\\\\\\\\b\",\"name\":\"keyword.control.public.scope.move\"}]},\"resource_methods\":{\"comment\":\"Methods to work with resource\",\"match\":\"\\\\\\\\b(borrow_global|borrow_global_mut|exists|move_from|move_to_sender|move_to)\\\\\\\\b\",\"name\":\"support.function.typed.move\"},\"script\":{\"begin\":\"\\\\\\\\b(script)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.script.move\"}},\"end\":\"(?<=})\",\"name\":\"meta.script.move\",\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\"{\",\"comment\":\"Script scope\",\"end\":\"}\",\"name\":\"meta.script_scope.move\",\"patterns\":[{\"include\":\"#const\"},{\"include\":\"#comments\"},{\"include\":\"#import\"},{\"include\":\"#fun\"}]}]},\"self_access\":{\"captures\":{\"1\":{\"name\":\"variable.language.self.move\"},\"2\":{\"name\":\"entity.name.function.call.move\"}},\"comment\":\"Use of Self\",\"match\":\"\\\\\\\\b(Self)::(\\\\\\\\w+)\\\\\\\\b\",\"name\":\"meta.self_access.move\"},\"spec\":{\"begin\":\"\\\\\\\\b(spec)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.spec.move\"}},\"end\":\"(?<=[;}])\",\"name\":\"meta.spec.move\",\"patterns\":[{\"comment\":\"Spec target\",\"match\":\"\\\\\\\\b(module|schema|struct|fun)\",\"name\":\"storage.modifier.spec.target.move\"},{\"comment\":\"Spec define inline\",\"match\":\"\\\\\\\\b(define)\",\"name\":\"storage.modifier.spec.define.move\"},{\"comment\":\"Target name\",\"match\":\"\\\\\\\\b(\\\\\\\\w+)\\\\\\\\b\",\"name\":\"entity.name.function.move\"},{\"begin\":\"{\",\"comment\":\"Spec block\",\"end\":\"}\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#spec_block\"},{\"include\":\"#spec_types\"},{\"include\":\"#spec_define\"},{\"include\":\"#spec_keywords\"},{\"include\":\"#control\"},{\"include\":\"#fun_call\"},{\"include\":\"#literals\"},{\"include\":\"#types\"},{\"include\":\"#let\"}]}]},\"spec_block\":{\"begin\":\"{\",\"comment\":\"Spec block\",\"end\":\"}\",\"name\":\"meta.spec_block.move\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#spec_block\"},{\"include\":\"#spec_types\"},{\"include\":\"#fun_call\"},{\"include\":\"#literals\"},{\"include\":\"#control\"},{\"include\":\"#types\"},{\"include\":\"#let\"}]},\"spec_define\":{\"begin\":\"\\\\\\\\b(define)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.move.spec\"}},\"comment\":\"Spec define keyword\",\"end\":\"(?=[;{])\",\"name\":\"meta.spec_define.move\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#spec_types\"},{\"include\":\"#types\"},{\"begin\":\"(?<=\\\\\\\\bdefine)\",\"comment\":\"Function name\",\"end\":\"(?=[(])\",\"patterns\":[{\"include\":\"#comments\"},{\"match\":\"\\\\\\\\b(\\\\\\\\w+)\\\\\\\\b\",\"name\":\"entity.name.function.move\"}]}]},\"spec_keywords\":{\"match\":\"\\\\\\\\b(global|pack|unpack|pragma|native|include|ensures|requires|invariant|apply|aborts_if|modifies)\\\\\\\\b\",\"name\":\"keyword.control.move.spec\"},\"spec_types\":{\"comment\":\"Spec-only types\",\"match\":\"\\\\\\\\b(range|num|vector|bool|u8|u16|u32|u64|u128|u256|address)\\\\\\\\b\",\"name\":\"support.type.vector.move\"},\"struct\":{\"begin\":\"\\\\\\\\b(struct)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.type.move\"}},\"end\":\"(?<=[};\\\\\\\\)])\",\"name\":\"meta.struct.move\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#escaped_identifier\"},{\"include\":\"#has\"},{\"include\":\"#abilities\"},{\"comment\":\"Struct name (ident)\",\"match\":\"\\\\\\\\b[A-Z][a-zA-Z_0-9]*\\\\\\\\b\",\"name\":\"entity.name.type.struct.move\"},{\"begin\":\"\\\\\\\\(\",\"comment\":\"Positional fields\",\"end\":\"\\\\\\\\)\",\"name\":\"meta.struct.paren.move\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#capitalized\"},{\"include\":\"#types\"}]},{\"include\":\"#type_param\"},{\"begin\":\"\\\\\\\\(\",\"comment\":\"Simple struct\",\"end\":\"(?<=[)])\",\"name\":\"meta.struct.paren.move\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#types\"}]},{\"begin\":\"{\",\"comment\":\"Struct body\",\"end\":\"}\",\"name\":\"meta.struct.body.move\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#self_access\"},{\"include\":\"#escaped_identifier\"},{\"include\":\"#module_access\"},{\"include\":\"#expr_generic\"},{\"include\":\"#capitalized\"},{\"include\":\"#types\"}]},{\"include\":\"#has_ability\"}]},\"struct_pack\":{\"begin\":\"(?<=[A-Za-z0-9_>])\\\\\\\\s*{\",\"comment\":\"Struct { field: value... }; identified as generic / ident followed by curly\\'s\",\"end\":\"}\",\"name\":\"meta.struct.pack.move\",\"patterns\":[{\"include\":\"#comments\"}]},\"type_param\":{\"begin\":\"<\",\"comment\":\"Generic type param\",\"end\":\">\",\"name\":\"meta.generic_param.move\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#phantom\"},{\"include\":\"#capitalized\"},{\"include\":\"#module_access\"},{\"include\":\"#abilities\"}]},\"types\":{\"comment\":\"Built-in types + vector\",\"name\":\"meta.types.move\",\"patterns\":[{\"include\":\"#primitives\"},{\"include\":\"#vector\"}]},\"use_fun\":{\"begin\":\"\\\\\\\\b(fun)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.fun.move\"}},\"comment\":\"use { fun } internals\",\"end\":\"(?=;)\",\"name\":\"meta.import.fun.move\",\"patterns\":[{\"include\":\"#comments\"},{\"comment\":\"as keyword\",\"match\":\"\\\\\\\\b(as)\\\\\\\\b\",\"name\":\"keyword.control.as.move\"},{\"comment\":\"Self keyword\",\"match\":\"\\\\\\\\b(Self)\\\\\\\\b\",\"name\":\"variable.language.self.use.fun.move\"},{\"comment\":\"Function name\",\"match\":\"\\\\\\\\b(_______[a-z][a-z_0-9]+)\\\\\\\\b\",\"name\":\"entity.name.function.use.move\"},{\"include\":\"#types\"},{\"include\":\"#escaped_identifier\"},{\"include\":\"#capitalized\"}]},\"vector\":{\"comment\":\"vector type\",\"match\":\"\\\\\\\\b(vector)\\\\\\\\b\",\"name\":\"support.type.vector.move\"}},\"scopeName\":\"source.move\"}')),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DCE3LsBG.js",
    "content": "const t=Object.freeze(JSON.parse(`{\"displayName\":\"Wikitext\",\"name\":\"wikitext\",\"patterns\":[{\"include\":\"#wikitext\"},{\"include\":\"text.html.basic\"}],\"repository\":{\"wikitext\":{\"patterns\":[{\"include\":\"#signature\"},{\"include\":\"#redirect\"},{\"include\":\"#magic-words\"},{\"include\":\"#argument\"},{\"include\":\"#template\"},{\"include\":\"#convert\"},{\"include\":\"#list\"},{\"include\":\"#table\"},{\"include\":\"#font-style\"},{\"include\":\"#internal-link\"},{\"include\":\"#external-link\"},{\"include\":\"#heading\"},{\"include\":\"#break\"},{\"include\":\"#wikixml\"},{\"include\":\"#extension-comments\"}],\"repository\":{\"argument\":{\"begin\":\"({{{)\",\"end\":\"(}}})\",\"name\":\"variable.parameter.wikitext\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.other.wikitext\"},\"2\":{\"name\":\"keyword.operator.wikitext\"}},\"match\":\"(?:^|\\\\\\\\G)([^#:\\\\\\\\|\\\\\\\\[\\\\\\\\]\\\\\\\\{\\\\\\\\}\\\\\\\\|]*)(\\\\\\\\|)\"},{\"include\":\"$self\"}]},\"break\":{\"match\":\"^-{4,}\",\"name\":\"markup.changed.wikitext\"},\"convert\":{\"begin\":\"(-\\\\\\\\{(?!\\\\\\\\{))([a-zA-Z](\\\\\\\\|))?\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.template.wikitext\"},\"2\":{\"name\":\"entity.name.function.type.wikitext\"},\"3\":{\"name\":\"keyword.operator.wikitext\"}},\"end\":\"(\\\\\\\\}-)\",\"patterns\":[{\"include\":\"$self\"},{\"captures\":{\"1\":{\"name\":\"entity.name.tag.language.wikitext\"},\"2\":{\"name\":\"punctuation.separator.key-value.wikitext\"},\"3\":{\"name\":\"string.unquoted.text.wikitext\",\"patterns\":[{\"include\":\"$self\"}]},\"4\":{\"name\":\"punctuation.terminator.rule.wikitext\"}},\"match\":\"(?:([a-zA-Z\\\\\\\\-]*)(:))?(.*?)(?:(;)|(?=\\\\\\\\}-))\"}]},\"extension-comments\":{\"begin\":\"(<%--)\\\\\\\\s*(\\\\\\\\[)([A-Z_]*)(\\\\\\\\])\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.extension.wikitext\"},\"2\":{\"name\":\"punctuation.definition.tag.extension.wikitext\"},\"3\":{\"name\":\"storage.type.extension.wikitext\"},\"4\":{\"name\":\"punctuation.definition.tag.extension.wikitext\"}},\"end\":\"(\\\\\\\\[)([A-Z_]*)(\\\\\\\\])\\\\\\\\s*(--%>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.extension.wikitext\"},\"2\":{\"name\":\"storage.type.extension.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.extension.wikitext\"},\"4\":{\"name\":\"punctuation.definition.comment.extension.wikitext\"}},\"name\":\"comment.block.documentation.special.extension.wikitext\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"meta.object.member.extension.wikitext\"},\"1\":{\"name\":\"meta.object-literal.key.extension.wikitext\"},\"2\":{\"name\":\"punctuation.separator.dictionary.key-value.extension.wikitext\"},\"3\":{\"name\":\"punctuation.definition.string.begin.extension.wikitext\"},\"4\":{\"name\":\"string.quoted.other.extension.wikitext\"},\"5\":{\"name\":\"punctuation.definition.string.end.extension.wikitext\"}},\"match\":\"(\\\\\\\\w*)\\\\\\\\s*(=)\\\\\\\\s*(#)(.*?)(#)\"}]},\"external-link\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.link.external.wikitext\"},\"2\":{\"name\":\"entity.name.tag.url.wikitext\"},\"3\":{\"name\":\"string.other.link.external.title.wikitext\",\"patterns\":[{\"include\":\"$self\"}]},\"4\":{\"name\":\"punctuation.definition.tag.link.external.wikitext\"}},\"match\":\"(\\\\\\\\[)((?:(?:(?:http(?:s)?)|(?:ftp(?:s)?)):\\\\\\\\/\\\\\\\\/)[\\\\\\\\w.-]+(?:\\\\\\\\.[\\\\\\\\w\\\\\\\\.-]+)+[\\\\\\\\w\\\\\\\\-\\\\\\\\.~:\\\\\\\\/?#%@!\\\\\\\\$&'\\\\\\\\(\\\\\\\\)\\\\\\\\*\\\\\\\\+,;=.]+)\\\\\\\\s*?([^\\\\\\\\]]*)(\\\\\\\\])\",\"name\":\"meta.link.external.wikitext\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.link.external.wikitext\"},\"2\":{\"name\":\"invalid.illegal.bad-url.wikitext\"},\"3\":{\"name\":\"string.other.link.external.title.wikitext\",\"patterns\":[{\"include\":\"$self\"}]},\"4\":{\"name\":\"punctuation.definition.tag.link.external.wikitext\"}},\"match\":\"(\\\\\\\\[)([\\\\\\\\w.-]+(?:\\\\\\\\.[\\\\\\\\w\\\\\\\\.-]+)+[\\\\\\\\w\\\\\\\\-\\\\\\\\.~:\\\\\\\\/?#%@!\\\\\\\\$&'\\\\\\\\(\\\\\\\\)\\\\\\\\*\\\\\\\\+,;=.]+)\\\\\\\\s*?([^\\\\\\\\]]*)(\\\\\\\\])\",\"name\":\"invalid.illegal.bad-link.wikitext\"}]},\"font-style\":{\"patterns\":[{\"include\":\"#bold\"},{\"include\":\"#italic\"}],\"repository\":{\"bold\":{\"begin\":\"(''')\",\"end\":\"(''')|$\",\"name\":\"markup.bold.wikitext\",\"patterns\":[{\"include\":\"#italic\"},{\"include\":\"$self\"}]},\"italic\":{\"begin\":\"('')\",\"end\":\"((?=[^'])|(?=''))''((?=[^'])|(?=''))|$\",\"name\":\"markup.italic.wikitext\",\"patterns\":[{\"include\":\"#bold\"},{\"include\":\"$self\"}]}}},\"heading\":{\"captures\":{\"2\":{\"name\":\"string.quoted.other.heading.wikitext\",\"patterns\":[{\"include\":\"$self\"}]}},\"match\":\"^(={1,6})\\\\\\\\s*(.+?)\\\\\\\\s*(\\\\\\\\1)$\",\"name\":\"markup.heading.wikitext\"},\"internal-link\":{\"TODO\":\"SINGLE LINE\",\"begin\":\"(\\\\\\\\[\\\\\\\\[)(([^#:\\\\\\\\|\\\\\\\\[\\\\\\\\]\\\\\\\\{\\\\\\\\}]*:)*)?([^\\\\\\\\|\\\\\\\\[\\\\\\\\]]*)?\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.link.internal.wikitext\"},\"2\":{\"name\":\"entity.name.tag.namespace.wikitext\"},\"4\":{\"name\":\"entity.other.attribute-name.wikitext\"}},\"end\":\"(\\\\\\\\]\\\\\\\\])\",\"name\":\"string.quoted.internal-link.wikitext\",\"patterns\":[{\"include\":\"$self\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.wikitext\"},\"5\":{\"name\":\"entity.other.attribute-name.localname.wikitext\"}},\"match\":\"(\\\\\\\\|)|(?:\\\\\\\\s*)(?:([-\\\\\\\\w.]+)((:)))?([-\\\\\\\\w.:]+)\\\\\\\\s*(=)\"}]},\"list\":{\"name\":\"markup.list.wikitext\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.list.begin.markdown.wikitext\"}},\"match\":\"^([#*;:]+)\"}]},\"magic-words\":{\"patterns\":[{\"include\":\"#behavior-switches\"},{\"include\":\"#outdated-behavior-switches\"},{\"include\":\"#variables\"}],\"repository\":{\"behavior-switches\":{\"match\":\"(?i)(__)(NOTOC|FORCETOC|TOC|NOEDITSECTION|NEWSECTIONLINK|NOGALLERY|HIDDENCAT|EXPECTUNUSEDCATEGORY|NOCONTENTCONVERT|NOCC|NOTITLECONVERT|NOTC|INDEX|NOINDEX|STATICREDIRECT|NOGLOBAL|DISAMBIG)(__)\",\"name\":\"constant.language.behavior-switcher.wikitext\"},\"outdated-behavior-switches\":{\"match\":\"(?i)(__)(START|END)(__)\",\"name\":\"invalid.deprecated.behavior-switcher.wikitext\"},\"variables\":{\"patterns\":[{\"match\":\"(?i)(\\\\\\\\{\\\\\\\\{)(CURRENTYEAR|CURRENTMONTH|CURRENTMONTH1|CURRENTMONTHNAME|CURRENTMONTHNAMEGEN|CURRENTMONTHABBREV|CURRENTDAY|CURRENTDAY2|CURRENTDOW|CURRENTDAYNAME|CURRENTTIME|CURRENTHOUR|CURRENTWEEK|CURRENTTIMESTAMP|LOCALYEAR|LOCALMONTH|LOCALMONTH1|LOCALMONTHNAME|LOCALMONTHNAMEGEN|LOCALMONTHABBREV|LOCALDAY|LOCALDAY2|LOCALDOW|LOCALDAYNAME|LOCALTIME|LOCALHOUR|LOCALWEEK|LOCALTIMESTAMP)(\\\\\\\\}\\\\\\\\})\",\"name\":\"constant.language.variables.time.wikitext\"},{\"match\":\"(?i)(\\\\\\\\{\\\\\\\\{)(SITENAME|SERVER|SERVERNAME|DIRMARK|DIRECTIONMARK|SCRIPTPATH|STYLEPATH|CURRENTVERSION|CONTENTLANGUAGE|CONTENTLANG|PAGEID|PAGELANGUAGE|CASCADINGSOURCES|REVISIONID|REVISIONDAY|REVISIONDAY2|REVISIONMONTH|REVISIONMONTH1|REVISIONYEAR|REVISIONTIMESTAMP|REVISIONUSER|REVISIONSIZE)(\\\\\\\\}\\\\\\\\})\",\"name\":\"constant.language.variables.metadata.wikitext\"},{\"match\":\"ISBN\\\\\\\\s+((9[\\\\\\\\-\\\\\\\\s]?7[\\\\\\\\-\\\\\\\\s]?[89][\\\\\\\\-\\\\\\\\s]?)?([0-9][\\\\\\\\-\\\\\\\\s]?){10})\",\"name\":\"constant.language.variables.isbn.wikitext\"},{\"match\":\"RFC\\\\\\\\s+[0-9]+\",\"name\":\"constant.language.variables.rfc.wikitext\"},{\"match\":\"PMID\\\\\\\\s+[0-9]+\",\"name\":\"constant.language.variables.pmid.wikitext\"}]}}},\"redirect\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.redirect.wikitext\"},\"2\":{\"name\":\"punctuation.definition.tag.link.internal.begin.wikitext\"},\"3\":{\"name\":\"entity.name.tag.namespace.wikitext\"},\"4\":null,\"5\":{\"name\":\"entity.other.attribute-name.wikitext\"},\"6\":{\"name\":\"invalid.deprecated.ineffective.wikitext\"},\"7\":{\"name\":\"punctuation.definition.tag.link.internal.end.wikitext\"}},\"match\":\"(?i)(^\\\\\\\\s*?#REDIRECT)\\\\\\\\s*(\\\\\\\\[\\\\\\\\[)(([^#:\\\\\\\\|\\\\\\\\[\\\\\\\\]\\\\\\\\{\\\\\\\\}]*?:)*)?([^\\\\\\\\|\\\\\\\\[\\\\\\\\]]*)?(\\\\\\\\|[^\\\\\\\\[\\\\\\\\]]*?)?(\\\\\\\\]\\\\\\\\])\"}]},\"signature\":{\"patterns\":[{\"match\":\"~{3,5}\",\"name\":\"keyword.other.signature.wikitext\"}]},\"table\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*(\\\\\\\\{\\\\\\\\|)(.*)$\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.table.wikitext\"},\"2\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"}]}},\"end\":\"^\\\\\\\\s*(\\\\\\\\|\\\\\\\\})\",\"name\":\"meta.tag.block.table.wikitext\",\"patterns\":[{\"include\":\"$self\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"patterns\":[{\"include\":\"$self\"},{\"match\":\"\\\\\\\\|.*\",\"name\":\"invalid.illegal.bad-table-context.wikitext\"},{\"include\":\"text.html.basic#attribute\"}]}},\"match\":\"^\\\\\\\\s*(\\\\\\\\|-)\\\\\\\\s*(.*)$\",\"name\":\"meta.tag.block.table-row.wikitext\"},{\"begin\":\"^\\\\\\\\s*(!)(([^\\\\\\\\[]*?)(\\\\\\\\|))?(.*?)(?=(!!)|$)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":null,\"3\":{\"patterns\":[{\"include\":\"$self\"},{\"include\":\"text.html.basic#attribute\"}]},\"4\":{\"name\":\"punctuation.definition.tag.wikitext\"},\"5\":{\"name\":\"markup.bold.style.wikitext\"}},\"end\":\"$\",\"name\":\"meta.tag.block.th.heading\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"$self\"},{\"include\":\"text.html.basic#attribute\"}]},\"4\":{\"name\":\"punctuation.definition.tag.wikitext\"},\"5\":{\"name\":\"markup.bold.style.wikitext\"}},\"match\":\"(!!)(([^\\\\\\\\[]*?)(\\\\\\\\|))?(.*?)(?=(!!)|$)\",\"name\":\"meta.tag.block.th.inline.wikitext\"},{\"include\":\"$self\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"string.unquoted.caption.wikitext\"}},\"end\":\"$\",\"match\":\"^\\\\\\\\s*(\\\\\\\\|\\\\\\\\+)(.*?)$\",\"name\":\"meta.tag.block.caption.wikitext\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"^\\\\\\\\s*(\\\\\\\\|)(([^\\\\\\\\[]*?)((?<!\\\\\\\\|)\\\\\\\\|(?!\\\\\\\\|)))?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"$self\"},{\"include\":\"text.html.basic#attribute\"}]},\"4\":{\"name\":\"punctuation.definition.tag.wikitext\"}},\"end\":\"$\",\"patterns\":[{\"include\":\"$self\"},{\"match\":\"\\\\\\\\|\\\\\\\\|\",\"name\":\"keyword.operator.wikitext\"}]}]}]},\"template\":{\"begin\":\"(\\\\\\\\{\\\\\\\\{)\\\\\\\\s*(([^#:\\\\\\\\|\\\\\\\\[\\\\\\\\]\\\\\\\\{\\\\\\\\}]*(:))*)\\\\\\\\s*((#[^#:\\\\\\\\|\\\\\\\\[\\\\\\\\]\\\\\\\\{\\\\\\\\}]+(:))*)([^#:\\\\\\\\|\\\\\\\\[\\\\\\\\]\\\\\\\\{\\\\\\\\}]*)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.template.wikitext\"},\"2\":{\"name\":\"entity.name.tag.local-name.wikitext\"},\"4\":{\"name\":\"punctuation.separator.namespace.wikitext\"},\"5\":{\"name\":\"entity.name.function.wikitext\"},\"7\":{\"name\":\"punctuation.separator.namespace.wikitext\"},\"8\":{\"name\":\"entity.name.tag.local-name.wikitext\"}},\"end\":\"(\\\\\\\\}\\\\\\\\})\",\"patterns\":[{\"include\":\"$self\"},{\"match\":\"(\\\\\\\\|)\",\"name\":\"keyword.operator.wikitext\"},{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.namespace.wikitext\"},\"2\":{\"name\":\"punctuation.separator.namespace.wikitext\"},\"3\":{\"name\":\"entity.other.attribute-name.local-name.wikitext\"},\"4\":{\"name\":\"keyword.operator.equal.wikitext\"}},\"match\":\"(?<=\\\\\\\\|)\\\\\\\\s*(?:([-\\\\\\\\w.]+)(:))?([-\\\\\\\\w\\\\\\\\s\\\\\\\\.:]+)\\\\\\\\s*(=)\"}]},\"wikixml\":{\"patterns\":[{\"include\":\"#wiki-self-closed-tags\"},{\"include\":\"#normal-wiki-tags\"},{\"include\":\"#nowiki\"},{\"include\":\"#ref\"},{\"include\":\"#jsonin\"},{\"include\":\"#math\"},{\"include\":\"#syntax-highlight\"}],\"repository\":{\"jsonin\":{\"begin\":\"(?i)(<)(graph|templatedata)(\\\\\\\\s+[^>]+)?\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"4\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"contentName\":\"meta.embedded.block.json\",\"end\":\"(?i)(</)(\\\\\\\\2)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"include\":\"source.json\"}]},\"math\":{\"begin\":\"(?i)(<)(math|chem|ce)(\\\\\\\\s+[^>]+)?\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"4\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"contentName\":\"meta.embedded.block.latex\",\"end\":\"(?i)(</)(\\\\\\\\2)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"include\":\"text.html.markdown.math#math\"}]},\"normal-wiki-tags\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"4\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"match\":\"(?i)(</?)(includeonly|onlyinclude|noinclude)(\\\\\\\\s+[^>]+)?\\\\\\\\s*(>)\",\"name\":\"meta.tag.metedata.normal.wikitext\"},\"nowiki\":{\"begin\":\"(?i)(<)(nowiki)(\\\\\\\\s+[^>]+)?\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.nowiki.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"4\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"contentName\":\"meta.embedded.block.plaintext\",\"end\":\"(?i)(</)(nowiki)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.nowiki.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}}},\"ref\":{\"begin\":\"(?i)(<)(ref)(\\\\\\\\s+[^>]+)?\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.ref.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"4\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"contentName\":\"meta.block.ref.wikitext\",\"end\":\"(?i)(</)(ref)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.ref.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"include\":\"$self\"}]},\"syntax-highlight\":{\"patterns\":[{\"include\":\"#hl-css\"},{\"include\":\"#hl-html\"},{\"include\":\"#hl-ini\"},{\"include\":\"#hl-java\"},{\"include\":\"#hl-lua\"},{\"include\":\"#hl-makefile\"},{\"include\":\"#hl-perl\"},{\"include\":\"#hl-r\"},{\"include\":\"#hl-ruby\"},{\"include\":\"#hl-php\"},{\"include\":\"#hl-sql\"},{\"include\":\"#hl-vb-net\"},{\"include\":\"#hl-xml\"},{\"include\":\"#hl-xslt\"},{\"include\":\"#hl-yaml\"},{\"include\":\"#hl-bat\"},{\"include\":\"#hl-clojure\"},{\"include\":\"#hl-coffee\"},{\"include\":\"#hl-c\"},{\"include\":\"#hl-cpp\"},{\"include\":\"#hl-diff\"},{\"include\":\"#hl-dockerfile\"},{\"include\":\"#hl-go\"},{\"include\":\"#hl-groovy\"},{\"include\":\"#hl-pug\"},{\"include\":\"#hl-js\"},{\"include\":\"#hl-json\"},{\"include\":\"#hl-less\"},{\"include\":\"#hl-objc\"},{\"include\":\"#hl-swift\"},{\"include\":\"#hl-scss\"},{\"include\":\"#hl-perl6\"},{\"include\":\"#hl-powershell\"},{\"include\":\"#hl-python\"},{\"include\":\"#hl-julia\"},{\"include\":\"#hl-rust\"},{\"include\":\"#hl-scala\"},{\"include\":\"#hl-shell\"},{\"include\":\"#hl-ts\"},{\"include\":\"#hl-csharp\"},{\"include\":\"#hl-fsharp\"},{\"include\":\"#hl-dart\"},{\"include\":\"#hl-handlebars\"},{\"include\":\"#hl-markdown\"},{\"include\":\"#hl-erlang\"},{\"include\":\"#hl-elixir\"},{\"include\":\"#hl-latex\"},{\"include\":\"#hl-bibtex\"}],\"repository\":{\"hl-bat\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)(['\\\\\"]?)(?:batch|bat|dosbatch|winbatch)\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.bat\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.batchfile\"}]}]},\"hl-bibtex\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)(?:bibtex|bib)\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.bibtex\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"text.bibtex\"}]}]},\"hl-c\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)c\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.c\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.c\"}]}]},\"hl-clojure\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)(?:clojure|clj)\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.clojure\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.clojure\"}]}]},\"hl-coffee\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)(?:coffeescript|coffee-script|coffee)\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.coffee\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.coffee\"}]}]},\"hl-cpp\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)(?:cpp|c\\\\\\\\+\\\\\\\\+)\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.cpp\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.cpp\"}]}]},\"hl-csharp\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)(?:csharp|c#|cs)\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.csharp\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.cs\"}]}]},\"hl-css\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)css\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.css\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.css\"}]}]},\"hl-dart\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)dart\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.dart\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.dart\"}]}]},\"hl-diff\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)(?:diff|udiff)\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.diff\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.diff\"}]}]},\"hl-dockerfile\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)(?:docker|dockerfile)\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.dockerfile\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.dockerfile\"}]}]},\"hl-elixir\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)(?:elixir|ex|exs)\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.elixir\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.elixir\"}]}]},\"hl-erlang\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)erlang\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.erlang\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.erlang\"}]}]},\"hl-fsharp\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)(?:fsharp|f#)\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.fsharp\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.fsharp\"}]}]},\"hl-go\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)(?:go|golang)\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.go\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.go\"}]}]},\"hl-groovy\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)groovy\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.groovy\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.groovy\"}]}]},\"hl-handlebars\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)handlebars\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.handlebars\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"text.html.handlebars\"}]}]},\"hl-html\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)html\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.html\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"text.html.basic\"}]}]},\"hl-ini\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)(?:ini|cfg|dosini)\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.ini\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.ini\"}]}]},\"hl-java\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)java\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.java\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.java\"}]}]},\"hl-js\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)(?:javascript|js)\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.js\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.js\"}]}]},\"hl-json\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:\\\\\"json\\\\\"|'json'|\\\\\"json-object\\\\\"|'json-object'))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"4\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.json\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.json.comments\"}]}]},\"hl-julia\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:\\\\\"julia\\\\\"|'julia'|\\\\\"jl\\\\\"|'jl'))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"4\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.julia\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.julia\"}]}]},\"hl-latex\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)(?:tex|latex)\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.latex\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"text.tex.latex\"}]}]},\"hl-less\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:\\\\\"less\\\\\"|'less'))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"4\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.less\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.css.less\"}]}]},\"hl-lua\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)lua\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.lua\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.lua\"}]}]},\"hl-makefile\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)(?:make|makefile|mf|bsdmake)\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.makefile\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.makefile\"}]}]},\"hl-markdown\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)(?:markdown|md)\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.markdown\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"text.html.markdown\"}]}]},\"hl-objc\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:\\\\\"objective-c\\\\\"|'objective-c'|\\\\\"objectivec\\\\\"|'objectivec'|\\\\\"obj-c\\\\\"|'obj-c'|\\\\\"objc\\\\\"|'objc'))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"4\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.objc\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.objc\"}]}]},\"hl-perl\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)(?:perl|ple)\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.perl\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.perl\"}]}]},\"hl-perl6\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:\\\\\"perl6\\\\\"|'perl6'|\\\\\"pl6\\\\\"|'pl6'|\\\\\"raku\\\\\"|'raku'))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"4\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.perl6\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.perl.6\"}]}]},\"hl-php\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)(?:php|php3|php4|php5)\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.php\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.php\"}]}]},\"hl-powershell\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:\\\\\"powershell\\\\\"|'powershell'|\\\\\"pwsh\\\\\"|'pwsh'|\\\\\"posh\\\\\"|'posh'|\\\\\"ps1\\\\\"|'ps1'|\\\\\"psm1\\\\\"|'psm1'))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"4\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.powershell\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.powershell\"}]}]},\"hl-pug\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)(?:pug|jade)\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.pug\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"text.pug\"}]}]},\"hl-python\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:\\\\\"python\\\\\"|'python'|\\\\\"py\\\\\"|'py'|\\\\\"sage\\\\\"|'sage'|\\\\\"python3\\\\\"|'python3'|\\\\\"py3\\\\\"|'py3'))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"4\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.python\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.python\"}]}]},\"hl-r\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)(?:splus|s|r)\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.r\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.r\"}]}]},\"hl-ruby\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)(?:ruby|rb|duby)\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.ruby\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.ruby\"}]}]},\"hl-rust\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:\\\\\"rust\\\\\"|'rust'|\\\\\"rs\\\\\"|'rs'))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"4\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":null,\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.rust\"}]}]},\"hl-scala\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:\\\\\"scala\\\\\"|'scala'))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"4\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.scala\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.scala\"}]}]},\"hl-scss\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:\\\\\"scss\\\\\"|'scss'))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"4\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.scss\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.css.scss\"}]}]},\"hl-shell\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:\\\\\"bash\\\\\"|'bash'|\\\\\"sh\\\\\"|'sh'|\\\\\"ksh\\\\\"|'ksh'|\\\\\"zsh\\\\\"|'zsh'|\\\\\"shell\\\\\"|'shell'))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"4\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.shell\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.shell\"}]}]},\"hl-sql\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)sql\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.sql\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.sql\"}]}]},\"hl-swift\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:\\\\\"swift\\\\\"|'swift'))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"4\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.swift\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.swift\"}]}]},\"hl-ts\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:\\\\\"typescript\\\\\"|'typescript'|\\\\\"ts\\\\\"|'ts'))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"4\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.ts\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.ts\"}]}]},\"hl-vb-net\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)(?:vb\\\\\\\\.net|vbnet|lobas|oobas|sobas)\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.vb-net\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.asp.vb.net\"}]}]},\"hl-xml\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)xml\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.xml\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"text.xml\"}]}]},\"hl-xslt\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)xslt\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.xslt\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"text.xml.xsl\"}]}]},\"hl-yaml\":{\"begin\":\"(?i)(<)(syntaxhighlight)((?:\\\\\\\\s+[^>]+)?(?:\\\\\\\\s+lang=(?:(['\\\\\"]?)yaml\\\\\\\\4))(?:\\\\\\\\s+[^>]+)?)\\\\\\\\s*(>)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.start.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"5\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"end\":\"(?i)(</)(syntaxhighlight)\\\\\\\\s*(>)\",\"endCaptures\":{\"0\":{\"name\":\"meta.tag.metadata.end.wikitext\"},\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\",\"contentName\":\"meta.embedded.block.yaml\",\"end\":\"(?i)(?=</syntaxhighlight\\\\\\\\s*>)\",\"patterns\":[{\"include\":\"source.yaml\"}]}]}}},\"wiki-self-closed-tags\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.wikitext\"},\"2\":{\"name\":\"entity.name.tag.wikitext\"},\"3\":{\"patterns\":[{\"include\":\"text.html.basic#attribute\"},{\"include\":\"$self\"}]},\"4\":{\"name\":\"punctuation.definition.tag.end.wikitext\"}},\"match\":\"(?i)(<)(templatestyles|ref|nowiki|onlyinclude|includeonly)(\\\\\\\\s+[^>]+)?\\\\\\\\s*(/>)\",\"name\":\"meta.tag.metedata.void.wikitext\"}}}}}},\"scopeName\":\"source.wikitext\",\"embeddedLangs\":[],\"aliases\":[\"mediawiki\",\"wiki\"],\"embeddedLangsLazy\":[\"html\",\"css\",\"ini\",\"java\",\"lua\",\"make\",\"perl\",\"r\",\"ruby\",\"php\",\"sql\",\"vb\",\"xml\",\"xsl\",\"yaml\",\"bat\",\"clojure\",\"coffee\",\"c\",\"cpp\",\"diff\",\"docker\",\"go\",\"groovy\",\"pug\",\"javascript\",\"jsonc\",\"less\",\"objective-c\",\"swift\",\"scss\",\"raku\",\"powershell\",\"python\",\"julia\",\"rust\",\"scala\",\"shellscript\",\"typescript\",\"csharp\",\"fsharp\",\"dart\",\"handlebars\",\"markdown\",\"erlang\",\"elixir\",\"latex\",\"bibtex\",\"json\"]}`)),e=[t];export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DDpSJMW6.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},t={tokenPostfix:\".julia\",keywords:[\"begin\",\"while\",\"if\",\"for\",\"try\",\"return\",\"break\",\"continue\",\"function\",\"macro\",\"quote\",\"let\",\"local\",\"global\",\"const\",\"do\",\"struct\",\"module\",\"baremodule\",\"using\",\"import\",\"export\",\"end\",\"else\",\"elseif\",\"catch\",\"finally\",\"mutable\",\"primitive\",\"abstract\",\"type\",\"in\",\"isa\",\"where\",\"new\"],types:[\"LinRange\",\"LineNumberNode\",\"LinearIndices\",\"LoadError\",\"MIME\",\"Matrix\",\"Method\",\"MethodError\",\"Missing\",\"MissingException\",\"Module\",\"NTuple\",\"NamedTuple\",\"Nothing\",\"Number\",\"OrdinalRange\",\"OutOfMemoryError\",\"OverflowError\",\"Pair\",\"PartialQuickSort\",\"PermutedDimsArray\",\"Pipe\",\"Ptr\",\"QuoteNode\",\"Rational\",\"RawFD\",\"ReadOnlyMemoryError\",\"Real\",\"ReentrantLock\",\"Ref\",\"Regex\",\"RegexMatch\",\"RoundingMode\",\"SegmentationFault\",\"Set\",\"Signed\",\"Some\",\"StackOverflowError\",\"StepRange\",\"StepRangeLen\",\"StridedArray\",\"StridedMatrix\",\"StridedVecOrMat\",\"StridedVector\",\"String\",\"StringIndexError\",\"SubArray\",\"SubString\",\"SubstitutionString\",\"Symbol\",\"SystemError\",\"Task\",\"Text\",\"TextDisplay\",\"Timer\",\"Tuple\",\"Type\",\"TypeError\",\"TypeVar\",\"UInt\",\"UInt128\",\"UInt16\",\"UInt32\",\"UInt64\",\"UInt8\",\"UndefInitializer\",\"AbstractArray\",\"UndefKeywordError\",\"AbstractChannel\",\"UndefRefError\",\"AbstractChar\",\"UndefVarError\",\"AbstractDict\",\"Union\",\"AbstractDisplay\",\"UnionAll\",\"AbstractFloat\",\"UnitRange\",\"AbstractIrrational\",\"Unsigned\",\"AbstractMatrix\",\"AbstractRange\",\"Val\",\"AbstractSet\",\"Vararg\",\"AbstractString\",\"VecElement\",\"AbstractUnitRange\",\"VecOrMat\",\"AbstractVecOrMat\",\"Vector\",\"AbstractVector\",\"VersionNumber\",\"Any\",\"WeakKeyDict\",\"ArgumentError\",\"WeakRef\",\"Array\",\"AssertionError\",\"BigFloat\",\"BigInt\",\"BitArray\",\"BitMatrix\",\"BitSet\",\"BitVector\",\"Bool\",\"BoundsError\",\"CapturedException\",\"CartesianIndex\",\"CartesianIndices\",\"Cchar\",\"Cdouble\",\"Cfloat\",\"Channel\",\"Char\",\"Cint\",\"Cintmax_t\",\"Clong\",\"Clonglong\",\"Cmd\",\"Colon\",\"Complex\",\"ComplexF16\",\"ComplexF32\",\"ComplexF64\",\"CompositeException\",\"Condition\",\"Cptrdiff_t\",\"Cshort\",\"Csize_t\",\"Cssize_t\",\"Cstring\",\"Cuchar\",\"Cuint\",\"Cuintmax_t\",\"Culong\",\"Culonglong\",\"Cushort\",\"Cvoid\",\"Cwchar_t\",\"Cwstring\",\"DataType\",\"DenseArray\",\"DenseMatrix\",\"DenseVecOrMat\",\"DenseVector\",\"Dict\",\"DimensionMismatch\",\"Dims\",\"DivideError\",\"DomainError\",\"EOFError\",\"Enum\",\"ErrorException\",\"Exception\",\"ExponentialBackOff\",\"Expr\",\"Float16\",\"Float32\",\"Float64\",\"Function\",\"GlobalRef\",\"HTML\",\"IO\",\"IOBuffer\",\"IOContext\",\"IOStream\",\"IdDict\",\"IndexCartesian\",\"IndexLinear\",\"IndexStyle\",\"InexactError\",\"InitError\",\"Int\",\"Int128\",\"Int16\",\"Int32\",\"Int64\",\"Int8\",\"Integer\",\"InterruptException\",\"InvalidStateException\",\"Irrational\",\"KeyError\"],keywordops:[\"<:\",\">:\",\":\",\"=>\",\"...\",\".\",\"->\",\"?\"],allops:/[^\\w\\d\\s()\\[\\]{}\"'#]+/,constants:[\"true\",\"false\",\"nothing\",\"missing\",\"undef\",\"Inf\",\"pi\",\"NaN\",\"π\",\"ℯ\",\"ans\",\"PROGRAM_FILE\",\"ARGS\",\"C_NULL\",\"VERSION\",\"DEPOT_PATH\",\"LOAD_PATH\"],operators:[\"!\",\"!=\",\"!==\",\"%\",\"&\",\"*\",\"+\",\"-\",\"/\",\"//\",\"<\",\"<<\",\"<=\",\"==\",\"===\",\"=>\",\">\",\">=\",\">>\",\">>>\",\"\\\\\",\"^\",\"|\",\"|>\",\"~\",\"÷\",\"∈\",\"∉\",\"∋\",\"∌\",\"∘\",\"√\",\"∛\",\"∩\",\"∪\",\"≈\",\"≉\",\"≠\",\"≡\",\"≢\",\"≤\",\"≥\",\"⊆\",\"⊇\",\"⊈\",\"⊉\",\"⊊\",\"⊋\",\"⊻\"],brackets:[{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"}],ident:/π|ℯ|\\b(?!\\d)\\w+\\b/,escape:/(?:[abefnrstv\\\\\"'\\n\\r]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2}|u[0-9A-Fa-f]{4})/,escapes:/\\\\(?:C\\-(@escape|.)|c(@escape|.)|@escape)/,tokenizer:{root:[[/(::)\\s*|\\b(isa)\\s+/,\"keyword\",\"@typeanno\"],[/\\b(isa)(\\s*\\(@ident\\s*,\\s*)/,[\"keyword\",{token:\"\",next:\"@typeanno\"}]],[/\\b(type|struct)[ \\t]+/,\"keyword\",\"@typeanno\"],[/^\\s*:@ident[!?]?/,\"metatag\"],[/(return)(\\s*:@ident[!?]?)/,[\"keyword\",\"metatag\"]],[/(\\(|\\[|\\{|@allops)(\\s*:@ident[!?]?)/,[\"\",\"metatag\"]],[/:\\(/,\"metatag\",\"@quote\"],[/r\"\"\"/,\"regexp.delim\",\"@tregexp\"],[/r\"/,\"regexp.delim\",\"@sregexp\"],[/raw\"\"\"/,\"string.delim\",\"@rtstring\"],[/[bv]?\"\"\"/,\"string.delim\",\"@dtstring\"],[/raw\"/,\"string.delim\",\"@rsstring\"],[/[bv]?\"/,\"string.delim\",\"@dsstring\"],[/(@ident)\\{/,{cases:{\"$1@types\":{token:\"type\",next:\"@gen\"},\"@default\":{token:\"type\",next:\"@gen\"}}}],[/@ident[!?'']?(?=\\.?\\()/,{cases:{\"@types\":\"type\",\"@keywords\":\"keyword\",\"@constants\":\"variable\",\"@default\":\"keyword.flow\"}}],[/@ident[!?']?/,{cases:{\"@types\":\"type\",\"@keywords\":\"keyword\",\"@constants\":\"variable\",\"@default\":\"identifier\"}}],[/\\$\\w+/,\"key\"],[/\\$\\(/,\"key\",\"@paste\"],[/@@@ident/,\"annotation\"],{include:\"@whitespace\"},[/'(?:@escapes|.)'/,\"string.character\"],[/[()\\[\\]{}]/,\"@brackets\"],[/@allops/,{cases:{\"@keywordops\":\"keyword\",\"@operators\":\"operator\"}}],[/[;,]/,\"delimiter\"],[/0[xX][0-9a-fA-F](_?[0-9a-fA-F])*/,\"number.hex\"],[/0[_oO][0-7](_?[0-7])*/,\"number.octal\"],[/0[bB][01](_?[01])*/,\"number.binary\"],[/[+\\-]?\\d+(\\.\\d+)?(im?|[eE][+\\-]?\\d+(\\.\\d+)?)?/,\"number\"]],typeanno:[[/[a-zA-Z_]\\w*(?:\\.[a-zA-Z_]\\w*)*\\{/,\"type\",\"@gen\"],[/([a-zA-Z_]\\w*(?:\\.[a-zA-Z_]\\w*)*)(\\s*<:\\s*)/,[\"type\",\"keyword\"]],[/[a-zA-Z_]\\w*(?:\\.[a-zA-Z_]\\w*)*/,\"type\",\"@pop\"],[\"\",\"\",\"@pop\"]],gen:[[/[a-zA-Z_]\\w*(?:\\.[a-zA-Z_]\\w*)*\\{/,\"type\",\"@push\"],[/[a-zA-Z_]\\w*(?:\\.[a-zA-Z_]\\w*)*/,\"type\"],[/<:/,\"keyword\"],[/(\\})(\\s*<:\\s*)/,[\"type\",{token:\"keyword\",next:\"@pop\"}]],[/\\}/,\"type\",\"@pop\"],{include:\"@root\"}],quote:[[/\\$\\(/,\"key\",\"@paste\"],[/\\(/,\"@brackets\",\"@paren\"],[/\\)/,\"metatag\",\"@pop\"],{include:\"@root\"}],paste:[[/:\\(/,\"metatag\",\"@quote\"],[/\\(/,\"@brackets\",\"@paren\"],[/\\)/,\"key\",\"@pop\"],{include:\"@root\"}],paren:[[/\\$\\(/,\"key\",\"@paste\"],[/:\\(/,\"metatag\",\"@quote\"],[/\\(/,\"@brackets\",\"@push\"],[/\\)/,\"@brackets\",\"@pop\"],{include:\"@root\"}],sregexp:[[/^.*/,\"invalid\"],[/[^\\\\\"()\\[\\]{}]/,\"regexp\"],[/[()\\[\\]{}]/,\"@brackets\"],[/\\\\./,\"operator.scss\"],[/\"[imsx]*/,\"regexp.delim\",\"@pop\"]],tregexp:[[/[^\\\\\"()\\[\\]{}]/,\"regexp\"],[/[()\\[\\]{}]/,\"@brackets\"],[/\\\\./,\"operator.scss\"],[/\"(?!\"\")/,\"string\"],[/\"\"\"[imsx]*/,\"regexp.delim\",\"@pop\"]],rsstring:[[/^.*/,\"invalid\"],[/[^\\\\\"]/,\"string\"],[/\\\\./,\"string.escape\"],[/\"/,\"string.delim\",\"@pop\"]],rtstring:[[/[^\\\\\"]/,\"string\"],[/\\\\./,\"string.escape\"],[/\"(?!\"\")/,\"string\"],[/\"\"\"/,\"string.delim\",\"@pop\"]],dsstring:[[/^.*/,\"invalid\"],[/[^\\\\\"\\$]/,\"string\"],[/\\$/,\"\",\"@interpolated\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string.delim\",\"@pop\"]],dtstring:[[/[^\\\\\"\\$]/,\"string\"],[/\\$/,\"\",\"@interpolated\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"(?!\"\")/,\"string\"],[/\"\"\"/,\"string.delim\",\"@pop\"]],interpolated:[[/\\(/,{token:\"\",switchTo:\"@interpolated_compound\"}],[/[a-zA-Z_]\\w*/,\"identifier\"],[\"\",\"\",\"@pop\"]],interpolated_compound:[[/\\)/,\"\",\"@pop\"],{include:\"@root\"}],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/#=/,\"comment\",\"@multi_comment\"],[/#.*$/,\"comment\"]],multi_comment:[[/#=/,\"comment\",\"@push\"],[/=#/,\"comment\",\"@pop\"],[/=(?!#)|#(?!=)/,\"comment\"],[/[^#=]+/,\"comment\"]]}};export{e as conf,t as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/DDrv2Hr-.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"#\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"`\",close:\"`\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"`\",close:\"`\"}]},t={defaultToken:\"\",tokenPostfix:\".perl\",brackets:[{token:\"delimiter.bracket\",open:\"{\",close:\"}\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"},{token:\"delimiter.square\",open:\"[\",close:\"]\"}],keywords:[\"__DATA__\",\"else\",\"lock\",\"__END__\",\"elsif\",\"lt\",\"__FILE__\",\"eq\",\"__LINE__\",\"exp\",\"ne\",\"sub\",\"__PACKAGE__\",\"for\",\"no\",\"and\",\"foreach\",\"or\",\"unless\",\"cmp\",\"ge\",\"package\",\"until\",\"continue\",\"gt\",\"while\",\"CORE\",\"if\",\"xor\",\"do\",\"le\",\"__DIE__\",\"__WARN__\"],builtinFunctions:[\"-A\",\"END\",\"length\",\"setpgrp\",\"-B\",\"endgrent\",\"link\",\"setpriority\",\"-b\",\"endhostent\",\"listen\",\"setprotoent\",\"-C\",\"endnetent\",\"local\",\"setpwent\",\"-c\",\"endprotoent\",\"localtime\",\"setservent\",\"-d\",\"endpwent\",\"log\",\"setsockopt\",\"-e\",\"endservent\",\"lstat\",\"shift\",\"-f\",\"eof\",\"map\",\"shmctl\",\"-g\",\"eval\",\"mkdir\",\"shmget\",\"-k\",\"exec\",\"msgctl\",\"shmread\",\"-l\",\"exists\",\"msgget\",\"shmwrite\",\"-M\",\"exit\",\"msgrcv\",\"shutdown\",\"-O\",\"fcntl\",\"msgsnd\",\"sin\",\"-o\",\"fileno\",\"my\",\"sleep\",\"-p\",\"flock\",\"next\",\"socket\",\"-r\",\"fork\",\"not\",\"socketpair\",\"-R\",\"format\",\"oct\",\"sort\",\"-S\",\"formline\",\"open\",\"splice\",\"-s\",\"getc\",\"opendir\",\"split\",\"-T\",\"getgrent\",\"ord\",\"sprintf\",\"-t\",\"getgrgid\",\"our\",\"sqrt\",\"-u\",\"getgrnam\",\"pack\",\"srand\",\"-w\",\"gethostbyaddr\",\"pipe\",\"stat\",\"-W\",\"gethostbyname\",\"pop\",\"state\",\"-X\",\"gethostent\",\"pos\",\"study\",\"-x\",\"getlogin\",\"print\",\"substr\",\"-z\",\"getnetbyaddr\",\"printf\",\"symlink\",\"abs\",\"getnetbyname\",\"prototype\",\"syscall\",\"accept\",\"getnetent\",\"push\",\"sysopen\",\"alarm\",\"getpeername\",\"quotemeta\",\"sysread\",\"atan2\",\"getpgrp\",\"rand\",\"sysseek\",\"AUTOLOAD\",\"getppid\",\"read\",\"system\",\"BEGIN\",\"getpriority\",\"readdir\",\"syswrite\",\"bind\",\"getprotobyname\",\"readline\",\"tell\",\"binmode\",\"getprotobynumber\",\"readlink\",\"telldir\",\"bless\",\"getprotoent\",\"readpipe\",\"tie\",\"break\",\"getpwent\",\"recv\",\"tied\",\"caller\",\"getpwnam\",\"redo\",\"time\",\"chdir\",\"getpwuid\",\"ref\",\"times\",\"CHECK\",\"getservbyname\",\"rename\",\"truncate\",\"chmod\",\"getservbyport\",\"require\",\"uc\",\"chomp\",\"getservent\",\"reset\",\"ucfirst\",\"chop\",\"getsockname\",\"return\",\"umask\",\"chown\",\"getsockopt\",\"reverse\",\"undef\",\"chr\",\"glob\",\"rewinddir\",\"UNITCHECK\",\"chroot\",\"gmtime\",\"rindex\",\"unlink\",\"close\",\"goto\",\"rmdir\",\"unpack\",\"closedir\",\"grep\",\"say\",\"unshift\",\"connect\",\"hex\",\"scalar\",\"untie\",\"cos\",\"index\",\"seek\",\"use\",\"crypt\",\"INIT\",\"seekdir\",\"utime\",\"dbmclose\",\"int\",\"select\",\"values\",\"dbmopen\",\"ioctl\",\"semctl\",\"vec\",\"defined\",\"join\",\"semget\",\"wait\",\"delete\",\"keys\",\"semop\",\"waitpid\",\"DESTROY\",\"kill\",\"send\",\"wantarray\",\"die\",\"last\",\"setgrent\",\"warn\",\"dump\",\"lc\",\"sethostent\",\"write\",\"each\",\"lcfirst\",\"setnetent\"],builtinFileHandlers:[\"ARGV\",\"STDERR\",\"STDOUT\",\"ARGVOUT\",\"STDIN\",\"ENV\"],builtinVariables:[\"$!\",\"$^RE_TRIE_MAXBUF\",\"$LAST_REGEXP_CODE_RESULT\",'$\"',\"$^S\",\"$LIST_SEPARATOR\",\"$#\",\"$^T\",\"$MATCH\",\"$$\",\"$^TAINT\",\"$MULTILINE_MATCHING\",\"$%\",\"$^UNICODE\",\"$NR\",\"$&\",\"$^UTF8LOCALE\",\"$OFMT\",\"$'\",\"$^V\",\"$OFS\",\"$(\",\"$^W\",\"$ORS\",\"$)\",\"$^WARNING_BITS\",\"$OS_ERROR\",\"$*\",\"$^WIDE_SYSTEM_CALLS\",\"$OSNAME\",\"$+\",\"$^X\",\"$OUTPUT_AUTO_FLUSH\",\"$,\",\"$_\",\"$OUTPUT_FIELD_SEPARATOR\",\"$-\",\"$`\",\"$OUTPUT_RECORD_SEPARATOR\",\"$.\",\"$a\",\"$PERL_VERSION\",\"$/\",\"$ACCUMULATOR\",\"$PERLDB\",\"$0\",\"$ARG\",\"$PID\",\"$:\",\"$ARGV\",\"$POSTMATCH\",\"$;\",\"$b\",\"$PREMATCH\",\"$<\",\"$BASETIME\",\"$PROCESS_ID\",\"$=\",\"$CHILD_ERROR\",\"$PROGRAM_NAME\",\"$>\",\"$COMPILING\",\"$REAL_GROUP_ID\",\"$?\",\"$DEBUGGING\",\"$REAL_USER_ID\",\"$@\",\"$EFFECTIVE_GROUP_ID\",\"$RS\",\"$[\",\"$EFFECTIVE_USER_ID\",\"$SUBSCRIPT_SEPARATOR\",\"$\\\\\",\"$EGID\",\"$SUBSEP\",\"$]\",\"$ERRNO\",\"$SYSTEM_FD_MAX\",\"$^\",\"$EUID\",\"$UID\",\"$^A\",\"$EVAL_ERROR\",\"$WARNING\",\"$^C\",\"$EXCEPTIONS_BEING_CAUGHT\",\"$|\",\"$^CHILD_ERROR_NATIVE\",\"$EXECUTABLE_NAME\",\"$~\",\"$^D\",\"$EXTENDED_OS_ERROR\",\"%!\",\"$^E\",\"$FORMAT_FORMFEED\",\"%^H\",\"$^ENCODING\",\"$FORMAT_LINE_BREAK_CHARACTERS\",\"%ENV\",\"$^F\",\"$FORMAT_LINES_LEFT\",\"%INC\",\"$^H\",\"$FORMAT_LINES_PER_PAGE\",\"%OVERLOAD\",\"$^I\",\"$FORMAT_NAME\",\"%SIG\",\"$^L\",\"$FORMAT_PAGE_NUMBER\",\"@+\",\"$^M\",\"$FORMAT_TOP_NAME\",\"@-\",\"$^N\",\"$GID\",\"@_\",\"$^O\",\"$INPLACE_EDIT\",\"@ARGV\",\"$^OPEN\",\"$INPUT_LINE_NUMBER\",\"@INC\",\"$^P\",\"$INPUT_RECORD_SEPARATOR\",\"@LAST_MATCH_START\",\"$^R\",\"$LAST_MATCH_END\",\"$^RE_DEBUG_FLAGS\",\"$LAST_PAREN_MATCH\"],symbols:/[:+\\-\\^*$&%@=<>!?|\\/~\\.]/,quoteLikeOps:[\"qr\",\"m\",\"s\",\"q\",\"qq\",\"qx\",\"qw\",\"tr\",\"y\"],escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[{include:\"@whitespace\"},[/[a-zA-Z\\-_][\\w\\-_]*/,{cases:{\"@keywords\":\"keyword\",\"@builtinFunctions\":\"type.identifier\",\"@builtinFileHandlers\":\"variable.predefined\",\"@quoteLikeOps\":{token:\"@rematch\",next:\"quotedConstructs\"},\"@default\":\"\"}}],[/[\\$@%][*@#?\\+\\-\\$!\\w\\\\\\^><~:;\\.]+/,{cases:{\"@builtinVariables\":\"variable.predefined\",\"@default\":\"variable\"}}],{include:\"@strings\"},{include:\"@dblStrings\"},{include:\"@perldoc\"},{include:\"@heredoc\"},[/[{}\\[\\]()]/,\"@brackets\"],[/[\\/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\\\/|[^\\]\\/]))*[\\/]\\w*\\s*(?=[).,;]|$)/,\"regexp\"],[/@symbols/,\"operators\"],{include:\"@numbers\"},[/[,;]/,\"delimiter\"]],whitespace:[[/\\s+/,\"white\"],[/(^#!.*$)/,\"metatag\"],[/(^#.*$)/,\"comment\"]],numbers:[[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,\"number.hex\"],[/\\d+/,\"number\"]],strings:[[/'/,\"string\",\"@stringBody\"]],stringBody:[[/'/,\"string\",\"@popall\"],[/\\\\'/,\"string.escape\"],[/./,\"string\"]],dblStrings:[[/\"/,\"string\",\"@dblStringBody\"]],dblStringBody:[[/\"/,\"string\",\"@popall\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],{include:\"@variables\"},[/./,\"string\"]],quotedConstructs:[[/(q|qw|tr|y)\\s*\\(/,{token:\"string.delim\",switchTo:\"@qstring.(.)\"}],[/(q|qw|tr|y)\\s*\\[/,{token:\"string.delim\",switchTo:\"@qstring.[.]\"}],[/(q|qw|tr|y)\\s*\\{/,{token:\"string.delim\",switchTo:\"@qstring.{.}\"}],[/(q|qw|tr|y)\\s*</,{token:\"string.delim\",switchTo:\"@qstring.<.>\"}],[/(q|qw|tr|y)#/,{token:\"string.delim\",switchTo:\"@qstring.#.#\"}],[/(q|qw|tr|y)\\s*([^A-Za-z0-9#\\s])/,{token:\"string.delim\",switchTo:\"@qstring.$2.$2\"}],[/(q|qw|tr|y)\\s+(\\w)/,{token:\"string.delim\",switchTo:\"@qstring.$2.$2\"}],[/(qr|m|s)\\s*\\(/,{token:\"regexp.delim\",switchTo:\"@qregexp.(.)\"}],[/(qr|m|s)\\s*\\[/,{token:\"regexp.delim\",switchTo:\"@qregexp.[.]\"}],[/(qr|m|s)\\s*\\{/,{token:\"regexp.delim\",switchTo:\"@qregexp.{.}\"}],[/(qr|m|s)\\s*</,{token:\"regexp.delim\",switchTo:\"@qregexp.<.>\"}],[/(qr|m|s)#/,{token:\"regexp.delim\",switchTo:\"@qregexp.#.#\"}],[/(qr|m|s)\\s*([^A-Za-z0-9_#\\s])/,{token:\"regexp.delim\",switchTo:\"@qregexp.$2.$2\"}],[/(qr|m|s)\\s+(\\w)/,{token:\"regexp.delim\",switchTo:\"@qregexp.$2.$2\"}],[/(qq|qx)\\s*\\(/,{token:\"string.delim\",switchTo:\"@qqstring.(.)\"}],[/(qq|qx)\\s*\\[/,{token:\"string.delim\",switchTo:\"@qqstring.[.]\"}],[/(qq|qx)\\s*\\{/,{token:\"string.delim\",switchTo:\"@qqstring.{.}\"}],[/(qq|qx)\\s*</,{token:\"string.delim\",switchTo:\"@qqstring.<.>\"}],[/(qq|qx)#/,{token:\"string.delim\",switchTo:\"@qqstring.#.#\"}],[/(qq|qx)\\s*([^A-Za-z0-9#\\s])/,{token:\"string.delim\",switchTo:\"@qqstring.$2.$2\"}],[/(qq|qx)\\s+(\\w)/,{token:\"string.delim\",switchTo:\"@qqstring.$2.$2\"}]],qstring:[[/\\\\./,\"string.escape\"],[/./,{cases:{\"$#==$S3\":{token:\"string.delim\",next:\"@pop\"},\"$#==$S2\":{token:\"string.delim\",next:\"@push\"},\"@default\":\"string\"}}]],qregexp:[{include:\"@variables\"},[/\\\\./,\"regexp.escape\"],[/./,{cases:{\"$#==$S3\":{token:\"regexp.delim\",next:\"@regexpModifiers\"},\"$#==$S2\":{token:\"regexp.delim\",next:\"@push\"},\"@default\":\"regexp\"}}]],regexpModifiers:[[/[msixpodualngcer]+/,{token:\"regexp.modifier\",next:\"@popall\"}]],qqstring:[{include:\"@variables\"},{include:\"@qstring\"}],heredoc:[[/<<\\s*['\"`]?([\\w\\-]+)['\"`]?/,{token:\"string.heredoc.delimiter\",next:\"@heredocBody.$1\"}]],heredocBody:[[/^([\\w\\-]+)$/,{cases:{\"$1==$S2\":[{token:\"string.heredoc.delimiter\",next:\"@popall\"}],\"@default\":\"string.heredoc\"}}],[/./,\"string.heredoc\"]],perldoc:[[/^=\\w/,\"comment.doc\",\"@perldocBody\"]],perldocBody:[[/^=cut\\b/,\"type.identifier\",\"@popall\"],[/./,\"comment.doc\"]],variables:[[/\\$\\w+/,\"variable\"],[/@\\w+/,\"variable\"],[/%\\w+/,\"variable\"]]}};export{e as conf,t as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/DDtJtuOZ.js",
    "content": "import t from\"./BPhBrDlE.js\";import e from\"./ySlJ1b_l.js\";import n from\"./Bl1h29GH.js\";import i from\"./HNqc6WRo.js\";import a from\"./DhUJRlN_.js\";import s from\"./CYFUjXW1.js\";import\"./BMYPR7BL.js\";import\"./cPjAOO0u.js\";import\"./xI-RfyKK.js\";import\"./COK4E0Yg.js\";import\"./BQoSv7ci.js\";import\"./m4gc_qpA.js\";import\"./DjHMNizO.js\";import\"./Dj6nwHGl.js\";import\"./BAng5TT0.js\";import\"./B6W0miNI.js\";import\"./BEhvmC7f.js\";import\"./DWJ3fJO_.js\";import\"./COyJrUc7.js\";import\"./C3t2pwGQ.js\";import\"./atvbtKCR.js\";import\"./Dbxjm_CC.js\";import\"./CVw76BM1.js\";const r=Object.freeze(JSON.parse(`{\"displayName\":\"Twig\",\"fileTypes\":[\"twig\",\"html.twig\"],\"firstLineMatch\":\"<!(?i:DOCTYPE)|<(?i:html)|<\\\\\\\\?(?i:php)|\\\\\\\\{\\\\\\\\{|\\\\\\\\{%|\\\\\\\\{#\",\"foldingStartMarker\":\"(<(?i:body|div|dl|fieldset|form|head|li|ol|script|select|style|table|tbody|tfoot|thead|tr|ul)\\\\\\\\b.*?>|<!--(?!.*--\\\\\\\\s*>)|^<!--\\\\\\\\ \\\\\\\\#tminclude\\\\\\\\ (?>.*?-->)$|\\\\\\\\{%\\\\\\\\s+(autoescape|block|embed|filter|for|if|macro|raw|sandbox|set|spaceless|trans|verbatim))\",\"foldingStopMarker\":\"(</(?i:body|div|dl|fieldset|form|head|li|ol|script|select|style|table|tbody|tfoot|thead|tr|ul)>|^(?!.*?<!--).*?--\\\\\\\\s*>|^<!--\\\\\\\\ end\\\\\\\\ tminclude\\\\\\\\ -->$|\\\\\\\\{%\\\\\\\\s+end(autoescape|block|embed|filter|for|if|macro|raw|sandbox|set|spaceless|trans|verbatim))\",\"name\":\"twig\",\"patterns\":[{\"begin\":\"(<)([a-zA-Z0-9:]++)(?=[^>]*></\\\\\\\\2>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.html\"}},\"end\":\"(>(<)/)(\\\\\\\\2)(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"meta.scope.between-tag-pair.html\"},\"3\":{\"name\":\"entity.name.tag.html\"},\"4\":{\"name\":\"punctuation.definition.tag.html\"}},\"name\":\"meta.tag.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(<\\\\\\\\?)(xml)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.xml.html\"}},\"end\":\"(\\\\\\\\?>)\",\"name\":\"meta.tag.preprocessor.xml.html\",\"patterns\":[{\"include\":\"#tag-generic-attribute\"},{\"include\":\"#string-double-quoted\"},{\"include\":\"#string-single-quoted\"}]},{\"begin\":\"<!--\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.html\"}},\"end\":\"--\\\\\\\\s*>\",\"name\":\"comment.block.html\",\"patterns\":[{\"match\":\"--\",\"name\":\"invalid.illegal.bad-comments-or-CDATA.html\"},{\"include\":\"#embedded-code\"}]},{\"begin\":\"<!\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.tag.html\"}},\"end\":\">\",\"name\":\"meta.tag.sgml.html\",\"patterns\":[{\"begin\":\"(?i:DOCTYPE)\",\"captures\":{\"1\":{\"name\":\"entity.name.tag.doctype.html\"}},\"end\":\"(?=>)\",\"name\":\"meta.tag.sgml.doctype.html\",\"patterns\":[{\"match\":\"\\\\\"[^\\\\\">]*\\\\\"\",\"name\":\"string.quoted.double.doctype.identifiers-and-DTDs.html\"}]},{\"begin\":\"\\\\\\\\[CDATA\\\\\\\\[\",\"end\":\"]](?=>)\",\"name\":\"constant.other.inline-data.html\"},{\"match\":\"(\\\\\\\\s*)(?!--|>)\\\\\\\\S(\\\\\\\\s*)\",\"name\":\"invalid.illegal.bad-comments-or-CDATA.html\"}]},{\"include\":\"#embedded-code\"},{\"begin\":\"(?:^\\\\\\\\s+)?(<)((?i:style))\\\\\\\\b(?![^>]*/>)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.style.html\"},\"3\":{\"name\":\"punctuation.definition.tag.html\"}},\"end\":\"(</)((?i:style))(>)(?:\\\\\\\\s*\\\\\\\\n)?\",\"name\":\"source.css.embedded.html\",\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"}},\"end\":\"(?=</(?i:style))\",\"patterns\":[{\"include\":\"#embedded-code\"},{\"include\":\"source.css\"}]}]},{\"begin\":\"(?:^\\\\\\\\s+)?(<)((?i:script))\\\\\\\\b(?![^>]*/>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.script.html\"}},\"end\":\"(?<=</(script|SCRIPT))(>)(?:\\\\\\\\s*\\\\\\\\n)?\",\"endCaptures\":{\"2\":{\"name\":\"punctuation.definition.tag.html\"}},\"name\":\"source.js.embedded.html\",\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<!</(?:script|SCRIPT))(>)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.script.html\"}},\"end\":\"(</)((?i:script))\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.js\"}},\"match\":\"(//).*?((?=<\\/script)|$\\\\\\\\n?)\",\"name\":\"comment.line.double-slash.js\"},{\"begin\":\"/\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.js\"}},\"end\":\"\\\\\\\\*/|(?=<\\/script)\",\"name\":\"comment.block.js\"},{\"include\":\"#php\"},{\"include\":\"#twig-print-tag\"},{\"include\":\"#twig-statement-tag\"},{\"include\":\"#twig-comment-tag\"},{\"include\":\"source.js\"}]}]},{\"begin\":\"(?ix)   # Enable free spacing mode, case insensitive\\\\n                        # Make sure our opening js tag has word boundaries\\\\n                        (?<=\\\\\\\\{\\\\\\\\%\\\\\\\\sjs\\\\\\\\s\\\\\\\\%\\\\\\\\}|\\\\\\\\{\\\\\\\\%\\\\\\\\sincludejs\\\\\\\\s\\\\\\\\%\\\\\\\\})\\\\n                    \",\"comment\":\"Add JS support to set tags that use the pattern \\\\\"css\\\\\" in their name\",\"end\":\"(?ix)(?=\\\\\\\\{\\\\\\\\%\\\\\\\\sendjs\\\\\\\\s\\\\\\\\%\\\\\\\\}|\\\\\\\\{\\\\\\\\%\\\\\\\\sendincludejs\\\\\\\\s\\\\\\\\%\\\\\\\\})\",\"name\":\"source.js.embedded.twig\",\"patterns\":[{\"include\":\"source.js\"}]},{\"begin\":\"(?ix)   # Enable free spacing mode, case insensitive\\\\n                        (?<=\\\\\\\\{\\\\\\\\%\\\\\\\\scss\\\\\\\\s\\\\\\\\%\\\\\\\\}|\\\\\\\\{\\\\\\\\%\\\\\\\\sincludecss\\\\\\\\s\\\\\\\\%\\\\\\\\}|\\\\\\\\{\\\\\\\\%\\\\\\\\sincludehirescss\\\\\\\\s\\\\\\\\%\\\\\\\\})\\\\n                        \",\"comment\":\"Add CSS support to set tags that use the pattern \\\\\"css\\\\\" in their name\",\"end\":\"(?ix)(?=\\\\\\\\{\\\\\\\\%\\\\\\\\sendcss\\\\\\\\s\\\\\\\\%\\\\\\\\}|\\\\\\\\{\\\\\\\\%\\\\\\\\sendincludecss\\\\\\\\s\\\\\\\\%\\\\\\\\}|\\\\\\\\{\\\\\\\\%\\\\\\\\sendincludehirescss\\\\\\\\s\\\\\\\\%\\\\\\\\})\",\"name\":\"source.css.embedded.twig\",\"patterns\":[{\"include\":\"source.css\"}]},{\"begin\":\"(?ix)   # Enable free spacing mode, case insensitive\\\\n                        (?<=\\\\\\\\{\\\\\\\\%\\\\\\\\sscss\\\\\\\\s\\\\\\\\%\\\\\\\\}|\\\\\\\\{\\\\\\\\%\\\\\\\\sincludescss\\\\\\\\s\\\\\\\\%\\\\\\\\}|\\\\\\\\{\\\\\\\\%\\\\\\\\sincludehiresscss\\\\\\\\s\\\\\\\\%\\\\\\\\})\\\\n                        \",\"comment\":\"Add SCSS support to set tags that use the pattern \\\\\"scss\\\\\" in their name\",\"end\":\"(?ix)(?=\\\\\\\\{\\\\\\\\%\\\\\\\\sendscss\\\\\\\\s\\\\\\\\%\\\\\\\\}|\\\\\\\\{\\\\\\\\%\\\\\\\\sendincludescss\\\\\\\\s\\\\\\\\%\\\\\\\\}|\\\\\\\\{\\\\\\\\%\\\\\\\\sendincludehiresscss\\\\\\\\s\\\\\\\\%\\\\\\\\})\",\"name\":\"source.css.scss.embedded.twig\",\"patterns\":[{\"include\":\"source.css.scss\"}]},{\"begin\":\"(</?)((?i:body|head|html)\\\\\\\\b)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.html\"},\"2\":{\"name\":\"entity.name.tag.structure.any.html\"}},\"end\":\"(>)\",\"name\":\"meta.tag.structure.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(</?)((?i:address|blockquote|dd|div|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|menu|pre)\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.block.any.html\"}},\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.block.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(</?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var)\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.inline.any.html\"}},\"end\":\"((?: ?/)?>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.inline.any.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"begin\":\"(</?)([a-zA-Z0-9:]+)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.other.html\"}},\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.other.html\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},{\"include\":\"#entities\"},{\"match\":\"<>\",\"name\":\"invalid.illegal.incomplete.html\"},{\"match\":\"<\",\"name\":\"invalid.illegal.bad-angle-bracket.html\"},{\"include\":\"#twig-print-tag\"},{\"include\":\"#twig-statement-tag\"},{\"include\":\"#twig-comment-tag\"}],\"repository\":{\"embedded-code\":{\"patterns\":[{\"include\":\"#ruby\"},{\"include\":\"#php\"},{\"include\":\"#twig-print-tag\"},{\"include\":\"#twig-statement-tag\"},{\"include\":\"#twig-comment-tag\"},{\"include\":\"#python\"}]},\"entities\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.html\"},\"3\":{\"name\":\"punctuation.definition.entity.html\"}},\"match\":\"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)\",\"name\":\"constant.character.entity.html\"},{\"match\":\"&\",\"name\":\"invalid.illegal.bad-ampersand.html\"}]},\"php\":{\"begin\":\"(?=(^\\\\\\\\s*)?<\\\\\\\\?)\",\"end\":\"(?!(^\\\\\\\\s*)?<\\\\\\\\?)\",\"patterns\":[{\"include\":\"source.php\"}]},\"python\":{\"begin\":\"(?:^\\\\\\\\s*)<\\\\\\\\?python(?!.*\\\\\\\\?>)\",\"end\":\"\\\\\\\\?>(?:\\\\\\\\s*$\\\\\\\\n)?\",\"name\":\"source.python.embedded.html\",\"patterns\":[{\"include\":\"source.python\"}]},\"ruby\":{\"patterns\":[{\"begin\":\"<%+#\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.erb\"}},\"end\":\"%>\",\"name\":\"comment.block.erb\"},{\"begin\":\"<%+(?!>)=?\",\"captures\":{\"0\":{\"name\":\"punctuation.section.embedded.ruby\"}},\"end\":\"-?%>\",\"name\":\"source.ruby.embedded.html\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.ruby\"}},\"match\":\"(#).*?(?=-?%>)\",\"name\":\"comment.line.number-sign.ruby\"},{\"include\":\"source.ruby\"}]},{\"begin\":\"<\\\\\\\\?r(?!>)=?\",\"captures\":{\"0\":{\"name\":\"punctuation.section.embedded.ruby.nitro\"}},\"end\":\"-?\\\\\\\\?>\",\"name\":\"source.ruby.nitro.embedded.html\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.ruby.nitro\"}},\"match\":\"(#).*?(?=-?\\\\\\\\?>)\",\"name\":\"comment.line.number-sign.ruby.nitro\"},{\"include\":\"source.ruby\"}]}]},\"string-double-quoted\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"string.quoted.double.html\",\"patterns\":[{\"include\":\"#embedded-code\"},{\"include\":\"#entities\"}]},\"string-single-quoted\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"string.quoted.single.html\",\"patterns\":[{\"include\":\"#embedded-code\"},{\"include\":\"#entities\"}]},\"tag-generic-attribute\":{\"match\":\"\\\\\\\\b([a-zA-Z\\\\\\\\-:]+)\",\"name\":\"entity.other.attribute-name.html\"},\"tag-id-attribute\":{\"begin\":\"\\\\\\\\b(id)\\\\\\\\b\\\\\\\\s*(=)\",\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.id.html\"},\"2\":{\"name\":\"punctuation.separator.key-value.html\"}},\"end\":\"(?<='|\\\\\")\",\"name\":\"meta.attribute-with-value.id.html\",\"patterns\":[{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"contentName\":\"meta.toc-list.id.html\",\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"string.quoted.double.html\",\"patterns\":[{\"include\":\"#embedded-code\"},{\"include\":\"#entities\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.html\"}},\"contentName\":\"meta.toc-list.id.html\",\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.html\"}},\"name\":\"string.quoted.single.html\",\"patterns\":[{\"include\":\"#embedded-code\"},{\"include\":\"#entities\"}]}]},\"tag-stuff\":{\"patterns\":[{\"include\":\"#tag-id-attribute\"},{\"include\":\"#tag-generic-attribute\"},{\"include\":\"#string-double-quoted\"},{\"include\":\"#string-single-quoted\"},{\"include\":\"#embedded-code\"}]},\"twig-arrays\":{\"begin\":\"(?<=[\\\\\\\\s\\\\\\\\(\\\\\\\\{\\\\\\\\[:,])\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.array.begin.twig\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.array.end.twig\"}},\"name\":\"meta.array.twig\",\"patterns\":[{\"include\":\"#twig-arrays\"},{\"include\":\"#twig-hashes\"},{\"include\":\"#twig-constants\"},{\"include\":\"#twig-operators\"},{\"include\":\"#twig-strings\"},{\"include\":\"#twig-functions-warg\"},{\"include\":\"#twig-functions\"},{\"include\":\"#twig-macros\"},{\"include\":\"#twig-objects\"},{\"include\":\"#twig-properties\"},{\"include\":\"#twig-filters-warg\"},{\"include\":\"#twig-filters\"},{\"include\":\"#twig-filters-warg-ud\"},{\"include\":\"#twig-filters-ud\"},{\"match\":\",\",\"name\":\"punctuation.separator.object.twig\"}]},\"twig-comment-tag\":{\"begin\":\"\\\\\\\\{#-?\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.twig\"}},\"end\":\"-?#\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.twig\"}},\"name\":\"comment.block.twig\"},\"twig-constants\":{\"patterns\":[{\"match\":\"(?i)(?<=[\\\\\\\\s\\\\\\\\[\\\\\\\\(\\\\\\\\{:,])(?:true|false|null|none)(?=[\\\\\\\\s\\\\\\\\)\\\\\\\\]\\\\\\\\}\\\\\\\\,])\",\"name\":\"constant.language.twig\"},{\"match\":\"(?<=[\\\\\\\\s\\\\\\\\[\\\\\\\\(\\\\\\\\{:,]|\\\\\\\\.\\\\\\\\.|\\\\\\\\*\\\\\\\\*)[0-9]+(?:\\\\\\\\.[0-9]+)?(?=[\\\\\\\\s\\\\\\\\)\\\\\\\\]\\\\\\\\}\\\\\\\\,]|\\\\\\\\.\\\\\\\\.|\\\\\\\\*\\\\\\\\*)\",\"name\":\"constant.numeric.twig\"}]},\"twig-filters\":{\"captures\":{\"1\":{\"name\":\"support.function.twig\"}},\"match\":\"(?<=(?:[a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}\\\\\\\\]\\\\\\\\)\\\\\\\\'\\\\\\\\\\\\\"]\\\\\\\\|)|\\\\\\\\{%\\\\\\\\sfilter\\\\\\\\s)(abs|capitalize|e(?:scape)?|first|join|(?:json|url)_encode|keys|last|length|lower|nl2br|number_format|raw|reverse|round|sort|striptags|title|trim|upper)(?=[\\\\\\\\s\\\\\\\\|\\\\\\\\]\\\\\\\\}\\\\\\\\):,]|\\\\\\\\.\\\\\\\\.|\\\\\\\\*\\\\\\\\*)\"},\"twig-filters-ud\":{\"captures\":{\"1\":{\"name\":\"meta.function-call.other.twig\"}},\"match\":\"(?<=(?:[a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}\\\\\\\\]\\\\\\\\)\\\\\\\\'\\\\\\\\\\\\\"]\\\\\\\\|)|\\\\\\\\{%\\\\\\\\sfilter\\\\\\\\s)([a-zA-Z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)\"},\"twig-filters-warg\":{\"begin\":\"(?<=(?:[a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}\\\\\\\\]\\\\\\\\)\\\\\\\\'\\\\\\\\\\\\\"]\\\\\\\\|)|\\\\\\\\{%\\\\\\\\sfilter\\\\\\\\s)(batch|convert_encoding|date|date_modify|default|e(?:scape)?|format|join|merge|number_format|replace|round|slice|split|trim)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.twig\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.twig\"}},\"contentName\":\"meta.function.arguments.twig\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.twig\"}},\"patterns\":[{\"include\":\"#twig-constants\"},{\"include\":\"#twig-operators\"},{\"include\":\"#twig-functions-warg\"},{\"include\":\"#twig-functions\"},{\"include\":\"#twig-macros\"},{\"include\":\"#twig-objects\"},{\"include\":\"#twig-properties\"},{\"include\":\"#twig-filters-warg\"},{\"include\":\"#twig-filters\"},{\"include\":\"#twig-filters-warg-ud\"},{\"include\":\"#twig-filters-ud\"},{\"include\":\"#twig-strings\"},{\"include\":\"#twig-arrays\"},{\"include\":\"#twig-hashes\"}]},\"twig-filters-warg-ud\":{\"begin\":\"(?<=(?:[a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}\\\\\\\\]\\\\\\\\)\\\\\\\\'\\\\\\\\\\\\\"]\\\\\\\\|)|\\\\\\\\{%\\\\\\\\sfilter\\\\\\\\s)([a-zA-Z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"meta.function-call.other.twig\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.twig\"}},\"contentName\":\"meta.function.arguments.twig\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.twig\"}},\"patterns\":[{\"include\":\"#twig-constants\"},{\"include\":\"#twig-functions-warg\"},{\"include\":\"#twig-functions\"},{\"include\":\"#twig-macros\"},{\"include\":\"#twig-objects\"},{\"include\":\"#twig-properties\"},{\"include\":\"#twig-filters-warg\"},{\"include\":\"#twig-filters\"},{\"include\":\"#twig-filters-warg-ud\"},{\"include\":\"#twig-filters-ud\"},{\"include\":\"#twig-strings\"},{\"include\":\"#twig-arrays\"},{\"include\":\"#twig-hashes\"}]},\"twig-functions\":{\"captures\":{\"1\":{\"name\":\"support.function.twig\"}},\"match\":\"(?<=is\\\\\\\\s)(defined|empty|even|iterable|odd)\"},\"twig-functions-warg\":{\"begin\":\"(?<=[\\\\\\\\s\\\\\\\\(\\\\\\\\[\\\\\\\\{:,])(attribute|block|constant|cycle|date|divisible by|dump|include|max|min|parent|random|range|same as|source|template_from_string)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.twig\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.twig\"}},\"contentName\":\"meta.function.arguments.twig\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.twig\"}},\"patterns\":[{\"include\":\"#twig-constants\"},{\"include\":\"#twig-functions-warg\"},{\"include\":\"#twig-functions\"},{\"include\":\"#twig-macros\"},{\"include\":\"#twig-objects\"},{\"include\":\"#twig-properties\"},{\"include\":\"#twig-filters-warg\"},{\"include\":\"#twig-filters\"},{\"include\":\"#twig-filters-warg-ud\"},{\"include\":\"#twig-filters-ud\"},{\"include\":\"#twig-strings\"},{\"include\":\"#twig-arrays\"}]},\"twig-hashes\":{\"begin\":\"(?<=[\\\\\\\\s\\\\\\\\(\\\\\\\\{\\\\\\\\[:,])\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.hash.begin.twig\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.hash.end.twig\"}},\"name\":\"meta.hash.twig\",\"patterns\":[{\"include\":\"#twig-hashes\"},{\"include\":\"#twig-arrays\"},{\"include\":\"#twig-constants\"},{\"include\":\"#twig-operators\"},{\"include\":\"#twig-strings\"},{\"include\":\"#twig-functions-warg\"},{\"include\":\"#twig-functions\"},{\"include\":\"#twig-macros\"},{\"include\":\"#twig-objects\"},{\"include\":\"#twig-properties\"},{\"include\":\"#twig-filters-warg\"},{\"include\":\"#twig-filters\"},{\"include\":\"#twig-filters-warg-ud\"},{\"include\":\"#twig-filters-ud\"},{\"match\":\":\",\"name\":\"punctuation.separator.key-value.twig\"},{\"match\":\",\",\"name\":\"punctuation.separator.object.twig\"}]},\"twig-keywords\":{\"match\":\"(?<=\\\\\\\\s)((?:end)?(?:autoescape|block|embed|filter|for|if|macro|raw|sandbox|set|spaceless|trans|verbatim)|as|do|else|elseif|extends|flush|from|ignore missing|import|include|only|use|with)(?=\\\\\\\\s)\",\"name\":\"keyword.control.twig\"},\"twig-macros\":{\"begin\":\"(?<=[\\\\\\\\s\\\\\\\\(\\\\\\\\[\\\\\\\\{:,])([a-zA-Z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)(?:(\\\\\\\\.)([a-zA-Z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*))?(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"meta.function-call.twig\"},\"2\":{\"name\":\"punctuation.separator.property.twig\"},\"3\":{\"name\":\"variable.other.property.twig\"},\"4\":{\"name\":\"punctuation.definition.parameters.begin.twig\"}},\"contentName\":\"meta.function.arguments.twig\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.twig\"}},\"patterns\":[{\"include\":\"#twig-constants\"},{\"include\":\"#twig-operators\"},{\"include\":\"#twig-functions-warg\"},{\"include\":\"#twig-functions\"},{\"include\":\"#twig-macros\"},{\"include\":\"#twig-objects\"},{\"include\":\"#twig-properties\"},{\"include\":\"#twig-filters-warg\"},{\"include\":\"#twig-filters\"},{\"include\":\"#twig-filters-warg-ud\"},{\"include\":\"#twig-filters-ud\"},{\"include\":\"#twig-strings\"},{\"include\":\"#twig-arrays\"},{\"include\":\"#twig-hashes\"}]},\"twig-objects\":{\"captures\":{\"1\":{\"name\":\"variable.other.twig\"}},\"match\":\"(?<=[\\\\\\\\s\\\\\\\\{\\\\\\\\[\\\\\\\\(:,])([a-zA-Z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)(?=[\\\\\\\\s\\\\\\\\}\\\\\\\\[\\\\\\\\]\\\\\\\\(\\\\\\\\)\\\\\\\\.\\\\\\\\|,:])\"},\"twig-operators\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.arithmetic.twig\"}},\"match\":\"(?<=\\\\\\\\s)(\\\\\\\\+|-|//?|%|\\\\\\\\*\\\\\\\\*?)(?=\\\\\\\\s)\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.assignment.twig\"}},\"match\":\"(?<=\\\\\\\\s)(=|~)(?=\\\\\\\\s)\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.bitwise.twig\"}},\"match\":\"(?<=\\\\\\\\s)(b-(?:and|or|xor))(?=\\\\\\\\s)\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.comparison.twig\"}},\"match\":\"(?<=\\\\\\\\s)((?:!|=)=|<=?|>=?|(?:not )?in|is(?: not)?|(?:ends|starts) with|matches)(?=\\\\\\\\s)\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.logical.twig\"}},\"match\":\"(?<=\\\\\\\\s)(\\\\\\\\?|:|\\\\\\\\?:|\\\\\\\\?\\\\\\\\?|and|not|or)(?=\\\\\\\\s)\"},{\"captures\":{\"0\":{\"name\":\"keyword.operator.other.twig\"}},\"match\":\"(?<=[a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}\\\\\\\\]\\\\\\\\)'\\\\\"])\\\\\\\\.\\\\\\\\.(?=[a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}'\\\\\"])\"},{\"captures\":{\"0\":{\"name\":\"keyword.operator.other.twig\"}},\"match\":\"(?<=[a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}\\\\\\\\]\\\\\\\\}\\\\\\\\)'\\\\\"])\\\\\\\\|(?=[a-zA-Z_\\\\\\\\x{7f}-\\\\\\\\x{ff}])\"}]},\"twig-print-tag\":{\"begin\":\"\\\\\\\\{\\\\\\\\{-?\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.tag.twig\"}},\"end\":\"-?\\\\\\\\}\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.tag.twig\"}},\"name\":\"meta.tag.template.value.twig\",\"patterns\":[{\"include\":\"#twig-constants\"},{\"include\":\"#twig-operators\"},{\"include\":\"#twig-functions-warg\"},{\"include\":\"#twig-functions\"},{\"include\":\"#twig-macros\"},{\"include\":\"#twig-objects\"},{\"include\":\"#twig-properties\"},{\"include\":\"#twig-filters-warg\"},{\"include\":\"#twig-filters\"},{\"include\":\"#twig-filters-warg-ud\"},{\"include\":\"#twig-filters-ud\"},{\"include\":\"#twig-strings\"},{\"include\":\"#twig-arrays\"},{\"include\":\"#twig-hashes\"}]},\"twig-properties\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.property.twig\"},\"2\":{\"name\":\"variable.other.property.twig\"}},\"match\":\"(?<=[a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}])(\\\\\\\\.)([a-zA-Z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)(?=[\\\\\\\\.\\\\\\\\s\\\\\\\\|\\\\\\\\[\\\\\\\\)\\\\\\\\]\\\\\\\\}:,])\"},{\"begin\":\"(?<=[a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}])(\\\\\\\\.)([a-zA-Z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.property.twig\"},\"2\":{\"name\":\"variable.other.property.twig\"},\"3\":{\"name\":\"punctuation.definition.parameters.begin.twig\"}},\"contentName\":\"meta.function.arguments.twig\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.twig\"}},\"patterns\":[{\"include\":\"#twig-constants\"},{\"include\":\"#twig-functions-warg\"},{\"include\":\"#twig-functions\"},{\"include\":\"#twig-macros\"},{\"include\":\"#twig-objects\"},{\"include\":\"#twig-properties\"},{\"include\":\"#twig-filters-warg\"},{\"include\":\"#twig-filters\"},{\"include\":\"#twig-filters-warg-ud\"},{\"include\":\"#twig-filters-ud\"},{\"include\":\"#twig-strings\"},{\"include\":\"#twig-arrays\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.section.array.begin.twig\"},\"2\":{\"name\":\"variable.other.property.twig\"},\"3\":{\"name\":\"punctuation.section.array.end.twig\"},\"4\":{\"name\":\"punctuation.section.array.begin.twig\"},\"5\":{\"name\":\"variable.other.property.twig\"},\"6\":{\"name\":\"punctuation.section.array.end.twig\"},\"7\":{\"name\":\"punctuation.section.array.begin.twig\"},\"8\":{\"name\":\"variable.other.property.twig\"},\"9\":{\"name\":\"punctuation.section.array.end.twig\"}},\"match\":\"(?<=[a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}\\\\\\\\]])(?:(\\\\\\\\[)('[a-zA-Z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*')(\\\\\\\\])|(\\\\\\\\[)(\\\\\"[a-zA-Z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*\\\\\")(\\\\\\\\])|(\\\\\\\\[)([a-zA-Z_\\\\\\\\x{7f}-\\\\\\\\x{ff}][a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{ff}]*)(\\\\\\\\]))\"}]},\"twig-statement-tag\":{\"begin\":\"\\\\\\\\{%-?\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.tag.twig\"}},\"end\":\"-?%\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.tag.twig\"}},\"name\":\"meta.tag.template.block.twig\",\"patterns\":[{\"include\":\"#twig-constants\"},{\"include\":\"#twig-keywords\"},{\"include\":\"#twig-operators\"},{\"include\":\"#twig-functions-warg\"},{\"include\":\"#twig-functions\"},{\"include\":\"#twig-macros\"},{\"include\":\"#twig-filters-warg\"},{\"include\":\"#twig-filters\"},{\"include\":\"#twig-filters-warg-ud\"},{\"include\":\"#twig-filters-ud\"},{\"include\":\"#twig-objects\"},{\"include\":\"#twig-properties\"},{\"include\":\"#twig-strings\"},{\"include\":\"#twig-arrays\"},{\"include\":\"#twig-hashes\"}]},\"twig-strings\":{\"patterns\":[{\"begin\":\"(?:(?<!\\\\\\\\\\\\\\\\)|(?<=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\))'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.twig\"}},\"end\":\"(?:(?<!\\\\\\\\\\\\\\\\)|(?<=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\))'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.twig\"}},\"name\":\"string.quoted.single.twig\"},{\"begin\":\"(?:(?<!\\\\\\\\\\\\\\\\)|(?<=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\))\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.twig\"}},\"end\":\"(?:(?<!\\\\\\\\\\\\\\\\)|(?<=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\))\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.twig\"}},\"name\":\"string.quoted.double.twig\"}]}},\"scopeName\":\"text.html.twig\",\"embeddedLangs\":[\"css\",\"javascript\",\"scss\",\"php\",\"python\",\"ruby\"]}`)),S=[...t,...e,...n,...i,...a,...s,r];export{S as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DEIpsLCJ.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Desktop\",\"name\":\"desktop\",\"patterns\":[{\"include\":\"#layout\"},{\"include\":\"#keywords\"},{\"include\":\"#values\"},{\"include\":\"#inCommands\"},{\"include\":\"#inCategories\"}],\"repository\":{\"inCategories\":{\"patterns\":[{\"match\":\"(?<=^Categories.*)AudioVideo|(?<=^Categories.*)Audio|(?<=^Categories.*)Video|(?<=^Categories.*)Development|(?<=^Categories.*)Education|(?<=^Categories.*)Game|(?<=^Categories.*)Graphics|(?<=^Categories.*)Network|(?<=^Categories.*)Office|(?<=^Categories.*)Science|(?<=^Categories.*)Settings|(?<=^Categories.*)System|(?<=^Categories.*)Utility\",\"name\":\"markup.bold\"}]},\"inCommands\":{\"patterns\":[{\"match\":\"(?<=^Exec.*\\\\\\\\s)-+\\\\\\\\S+\",\"name\":\"variable.parameter\"},{\"match\":\"(?<=^Exec.*)\\\\\\\\s\\\\\\\\%[fFuUick]\\\\\\\\s\",\"name\":\"variable.language\"},{\"match\":\"\\\\\".*\\\\\"\",\"name\":\"string\"}]},\"keywords\":{\"patterns\":[{\"match\":\"^Type\\\\\\\\b|^Version\\\\\\\\b|^Name\\\\\\\\b|^GenericName\\\\\\\\b|^NoDisplay\\\\\\\\b|^Comment\\\\\\\\b|^Icon\\\\\\\\b|^Hidden\\\\\\\\b|^OnlyShowIn\\\\\\\\b|^NotShowIn\\\\\\\\b|^DBusActivatable\\\\\\\\b|^TryExec\\\\\\\\b|^Exec\\\\\\\\b|^Path\\\\\\\\b|^Terminal\\\\\\\\b|^Actions\\\\\\\\b|^MimeType\\\\\\\\b|^Categories\\\\\\\\b|^Implements\\\\\\\\b|^Keywords\\\\\\\\b|^StartupNotify\\\\\\\\b|^StartupWMClass\\\\\\\\b|^URL\\\\\\\\b|^PrefersNonDefaultGPU\\\\\\\\b|^Encoding\\\\\\\\b\",\"name\":\"keyword\"},{\"match\":\"^X-[A-z 0-9 -]*\",\"name\":\"keyword.other\"},{\"match\":\"(?<!^)\\\\\\\\[.+\\\\\\\\]\",\"name\":\"constant.language\"},{\"match\":\"^GtkTheme\\\\\\\\b|^MetacityTheme\\\\\\\\b|^IconTheme\\\\\\\\b|^CursorTheme\\\\\\\\b|^ButtonLayout\\\\\\\\b|^ApplicationFont\\\\\\\\b\",\"name\":\"keyword\"}]},\"layout\":{\"patterns\":[{\"begin\":\"^\\\\\\\\[Desktop\",\"end\":\"\\\\\\\\]\",\"name\":\"markup.heading\"},{\"begin\":\"^\\\\\\\\[X-\\\\\\\\w*\",\"end\":\"\\\\\\\\]\",\"name\":\"markup.heading\"},{\"match\":\"^\\\\\\\\s*#.*\",\"name\":\"comment\"},{\"match\":\";\",\"name\":\"strong\"}]},\"values\":{\"patterns\":[{\"match\":\"(?<=^\\\\\\\\S+)=\",\"name\":\"keyword.operator\"},{\"match\":\"\\\\\\\\btrue\\\\\\\\b|\\\\\\\\bfalse\\\\\\\\b\",\"name\":\"variable.other\"},{\"match\":\"(?<=^Version.*)\\\\\\\\d+(\\\\\\\\.{0,1}\\\\\\\\d*)\",\"name\":\"variable.other\"}]}},\"scopeName\":\"source.desktop\"}')),a=[e];export{a as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DGRk4fvy.js",
    "content": "import{d as J,a5 as G,a0 as Q,r as d,c as w,w as H,B as K,C as g,j as r,i,E as m,x as _,F as N,O as R,t as X,g as s,f as x,q as A,k as Y,e as c,G as Z,J as C,v as ee,s as y}from\"./CU_MfyYc.js\";import{_ as te}from\"./CqvT4tPC.js\";import{_ as ne}from\"./Cw4FHd9N.js\";import{_ as ae}from\"./DZb6Dd70.js\";import{_ as oe}from\"./DP9I38t9.js\";import{u as se}from\"./Cwg39VG_.js\";const le={class:\"container mx-auto px-4 pt-16 pb-6 max-w-7xl\"},ie={class:\"pb-12\"},re={class:\"flex justify-between items-center mb-4\"},ce={class:\"flex gap-2\"},ue={class:\"flex flex-col lg:flex-row gap-4 items-center\"},de={class:\"flex flex-col sm:flex-row gap-2 sm:gap-0\"},me={class:\"flex-grow flex justify-center\"},pe={class:\"flex items-center gap-2 justify-end\"},ve=J({__name:\"index\",setup(ge){se({title:\"Import Candles - Jesse\"});const a=G(),S=Q(),f=d([]),u=d(\"\"),h=d([]),V=w(()=>S.backtestingExchangeNames),I=w(()=>a.forms.some(e=>!e.executing)),M=w(()=>a.forms.some(e=>e.executing)),b=d(new Set),v=d(new Set);function T(){const e=a.forms[a.forms.length-1];a.forms.push({id:C.uuid(),exchange:e.exchange,symbol:e.symbol,start_date:e.start_date,executing:!1,waiting:!1,progressbar:{current:0,estimated_remaining_seconds:0},exception:{error:\"\",traceback:\"\"},alert:{message:\"\",type:\"\"}})}function j(e){const t=a.forms.indexOf(e);a.forms.splice(t+1,0,{id:C.uuid(),exchange:e.exchange,symbol:e.symbol,start_date:e.start_date,executing:!1,waiting:!1,progressbar:{current:0,estimated_remaining_seconds:0},exception:{error:\"\",traceback:\"\"},alert:{message:\"\",type:\"\"}})}async function q(e){b.value.add(e.id),e.executing&&await k(e.id);const t=a.forms.indexOf(e);a.forms.length>1&&a.forms.splice(t,1),b.value.delete(e.id)}async function U(e){const t=await S.getExchangeSupportedSymbols(e.exchange);h.value=t,t.includes(e.symbol)||(e.symbol=t[0]),F(u.value)}function F(e){if(e.length==0||!h.value.length){f.value=[];return}const t=[];for(const o of h.value){if(t.length>50)break;o.toLowerCase().startsWith(e.toLowerCase())&&t.push(o)}f.value=t}H(()=>u.value,e=>{F(e)});function $(e){const t=a.forms.find(o=>o.id===e);t&&z(t)&&a.start(e)}function z(e){return e.exchange?e.symbol?e.symbol.includes(\"-\")?e.start_date?!0:(y(\"error\",\"Start date parameter cannot be empty\"),!1):(y(\"error\",'Symbol parameter must contain \"-\" character!'),!1):(y(\"error\",\"Symbol parameter cannot be empty\"),!1):(y(\"error\",\"Exchange parameter cannot be empty\"),!1)}K(()=>{a.forms[0].exchange||(a.forms[0].exchange=V.value[0]),setTimeout(()=>{U(a.forms[0])},100)});async function k(e){v.value.add(e),await a.cancel(e),v.value.delete(e)}async function O(){const e=a.forms.filter(t=>!t.executing);await Promise.all(e.map(t=>$(t.id)))}async function D(){const e=a.forms.filter(t=>t.executing||t.waiting);await Promise.all(e.map(t=>k(t.id)))}return(e,t)=>{const o=X,B=te,L=Y,P=ne,E=ee,p=ae,W=oe;return s(),g(\"div\",le,[r(\"div\",ie,[r(\"div\",re,[i(o,{icon:\"i-heroicons-plus\",variant:\"solid\",label:\"Add\",onClick:T}),r(\"div\",ce,[_(a).forms.length>1?(s(),g(N,{key:0},[i(o,{icon:\"i-heroicons-arrow-down-tray\",variant:\"soft\",label:\"Import All\",disabled:!I.value,onClick:O},null,8,[\"disabled\"]),i(o,{icon:\"i-heroicons-x-mark\",variant:\"soft\",color:\"rose\",label:\"Cancel All\",disabled:!M.value,onClick:D},null,8,[\"disabled\"])],64)):m(\"\",!0),i(o,{icon:\"i-heroicons-wrench\",variant:\"soft\",color:\"gray\",label:\"Manage\",to:\"/candles/manage\"})])]),(s(!0),g(N,null,R(_(a).forms,n=>(s(),g(\"div\",{key:n.id,class:\"mt-4 border rounded-lg p-4 bg-white dark:border-gray-900 dark:bg-gray-800\"},[r(\"div\",ue,[r(\"div\",de,[i(B,{modelValue:n.exchange,\"onUpdate:modelValue\":l=>n.exchange=l,class:\"w-full sm:w-48\",ui:{base:\"sm:rounded-r-none\",input:\"rounded-lg sm:rounded-r-none sm:rounded-l-lg\"},searchable:\"\",options:V.value,placeholder:\"Select exchange...\",onChange:()=>U(n)},null,8,[\"modelValue\",\"onUpdate:modelValue\",\"options\",\"onChange\"]),i(B,{modelValue:n.symbol,\"onUpdate:modelValue\":l=>n.symbol=l,query:u.value,\"onUpdate:query\":t[0]||(t[0]=l=>u.value=l),\"clear-search-on-close\":\"\",class:\"w-full sm:w-64\",ui:{base:\"sm:rounded-none\",input:\"rounded-lg sm:rounded-none\"},searchable:\"\",options:f.value,placeholder:\"Select symbol...\",onChange:t[1]||(t[1]=l=>u.value=\"\")},{empty:x(()=>t[2]||(t[2]=[A(\"Start typing...\")])),_:2},1032,[\"modelValue\",\"onUpdate:modelValue\",\"query\",\"options\"]),i(L,{modelValue:n.start_date,\"onUpdate:modelValue\":l=>n.start_date=l,type:\"date\",class:\"w-full sm:w-48\",ui:{base:\"sm:rounded-l-none\",input:\"rounded-lg sm:rounded-l-none sm:rounded-r-lg\"}},null,8,[\"modelValue\",\"onUpdate:modelValue\"])]),r(\"div\",me,[n.executing?(s(),c(P,{key:0,color:\"blue\",variant:\"subtle\"},{default:x(()=>[A(Z(_(C).remainingTimeText(n.progressbar.estimated_remaining_seconds)),1)]),_:2},1024)):m(\"\",!0)]),r(\"div\",pe,[n.executing?(s(),c(o,{key:1,size:\"sm\",variant:\"soft\",color:\"rose\",label:\"Cancel\",icon:\"i-heroicons-x-mark\",loading:v.value.has(n.id),onClick:l=>k(n.id)},null,8,[\"loading\",\"onClick\"])):(s(),c(o,{key:0,size:\"sm\",variant:\"soft\",label:\"Import\",color:\"primary\",icon:\"i-heroicons-arrow-down-tray\",onClick:l=>$(n.id)},null,8,[\"onClick\"])),i(E,{text:\"Duplicate\"},{default:x(()=>[i(o,{size:\"sm\",variant:\"link\",color:\"gray\",icon:\"i-heroicons-document-duplicate\",onClick:l=>j(n)},null,8,[\"onClick\"])]),_:2},1024),_(a).forms.length>1?(s(),c(E,{key:2,text:\"Delete\"},{default:x(()=>[i(o,{size:\"sm\",variant:\"link\",color:\"rose\",icon:\"i-heroicons-trash\",loading:b.value.has(n.id),onClick:l=>q(n)},null,8,[\"loading\",\"onClick\"])]),_:2},1024)):m(\"\",!0)])]),r(\"div\",null,[n.alert.type===\"info\"?(s(),c(p,{key:0,class:\"mt-4\",color:\"gray\",variant:\"soft\",icon:\"i-heroicons-information-circle\",title:n.alert.message},null,8,[\"title\"])):m(\"\",!0),n.waiting?(s(),c(p,{key:1,class:\"mt-4\",color:\"yellow\",variant:\"soft\",icon:\"i-heroicons-clock\",title:`Queued: Waiting for the current '${n.exchange}' import to finish...`},null,8,[\"title\"])):n.executing?(s(),c(W,{key:2,value:n.progressbar.current,indicator:\"\",class:\"w-full mt-4\"},null,8,[\"value\"])):n.exception.error?(s(),c(p,{key:3,class:\"mt-4\",color:\"red\",variant:\"soft\",icon:\"i-heroicons-exclamation-triangle\",title:n.exception.error},null,8,[\"title\"])):n.alert.type===\"success\"?(s(),c(p,{key:4,class:\"mt-4\",color:\"green\",variant:\"soft\",icon:\"i-heroicons-check-circle\",title:n.alert.message},null,8,[\"title\"])):m(\"\",!0)])]))),128)),t[3]||(t[3]=r(\"div\",{class:\"h-24 md:h-32\"},null,-1))])])}}});export{ve as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DH5Ifo-i.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBorder\":\"#ec775c\",\"activityBar.background\":\"#22272e\",\"activityBar.border\":\"#444c56\",\"activityBar.foreground\":\"#adbac7\",\"activityBar.inactiveForeground\":\"#768390\",\"activityBarBadge.background\":\"#316dca\",\"activityBarBadge.foreground\":\"#cdd9e5\",\"badge.background\":\"#316dca\",\"badge.foreground\":\"#cdd9e5\",\"breadcrumb.activeSelectionForeground\":\"#768390\",\"breadcrumb.focusForeground\":\"#adbac7\",\"breadcrumb.foreground\":\"#768390\",\"breadcrumbPicker.background\":\"#2d333b\",\"button.background\":\"#347d39\",\"button.foreground\":\"#ffffff\",\"button.hoverBackground\":\"#46954a\",\"button.secondaryBackground\":\"#3d444d\",\"button.secondaryForeground\":\"#adbac7\",\"button.secondaryHoverBackground\":\"#444c56\",\"checkbox.background\":\"#2d333b\",\"checkbox.border\":\"#444c56\",\"debugConsole.errorForeground\":\"#ff938a\",\"debugConsole.infoForeground\":\"#768390\",\"debugConsole.sourceForeground\":\"#daaa3f\",\"debugConsole.warningForeground\":\"#c69026\",\"debugConsoleInputIcon.foreground\":\"#b083f0\",\"debugIcon.breakpointForeground\":\"#e5534b\",\"debugTokenExpression.boolean\":\"#6bc46d\",\"debugTokenExpression.error\":\"#ff938a\",\"debugTokenExpression.name\":\"#6cb6ff\",\"debugTokenExpression.number\":\"#6bc46d\",\"debugTokenExpression.string\":\"#96d0ff\",\"debugTokenExpression.value\":\"#96d0ff\",\"debugToolBar.background\":\"#2d333b\",\"descriptionForeground\":\"#768390\",\"diffEditor.insertedLineBackground\":\"#347d3926\",\"diffEditor.insertedTextBackground\":\"#57ab5a4d\",\"diffEditor.removedLineBackground\":\"#c93c3726\",\"diffEditor.removedTextBackground\":\"#f470674d\",\"dropdown.background\":\"#2d333b\",\"dropdown.border\":\"#444c56\",\"dropdown.foreground\":\"#adbac7\",\"dropdown.listBackground\":\"#2d333b\",\"editor.background\":\"#22272e\",\"editor.findMatchBackground\":\"#966600\",\"editor.findMatchHighlightBackground\":\"#eac55f80\",\"editor.focusedStackFrameHighlightBackground\":\"#46954a66\",\"editor.foldBackground\":\"#636e7b1a\",\"editor.foreground\":\"#adbac7\",\"editor.lineHighlightBackground\":\"#636e7b1a\",\"editor.linkedEditingBackground\":\"#539bf512\",\"editor.selectionHighlightBackground\":\"#57ab5a40\",\"editor.stackFrameHighlightBackground\":\"#ae7c1466\",\"editor.wordHighlightBackground\":\"#636e7b80\",\"editor.wordHighlightBorder\":\"#636e7b99\",\"editor.wordHighlightStrongBackground\":\"#636e7b4d\",\"editor.wordHighlightStrongBorder\":\"#636e7b99\",\"editorBracketHighlight.foreground1\":\"#6cb6ff\",\"editorBracketHighlight.foreground2\":\"#6bc46d\",\"editorBracketHighlight.foreground3\":\"#daaa3f\",\"editorBracketHighlight.foreground4\":\"#ff938a\",\"editorBracketHighlight.foreground5\":\"#fc8dc7\",\"editorBracketHighlight.foreground6\":\"#dcbdfb\",\"editorBracketHighlight.unexpectedBracket.foreground\":\"#768390\",\"editorBracketMatch.background\":\"#57ab5a40\",\"editorBracketMatch.border\":\"#57ab5a99\",\"editorCursor.foreground\":\"#539bf5\",\"editorGroup.border\":\"#444c56\",\"editorGroupHeader.tabsBackground\":\"#1c2128\",\"editorGroupHeader.tabsBorder\":\"#444c56\",\"editorGutter.addedBackground\":\"#46954a66\",\"editorGutter.deletedBackground\":\"#e5534b66\",\"editorGutter.modifiedBackground\":\"#ae7c1466\",\"editorIndentGuide.activeBackground\":\"#adbac73d\",\"editorIndentGuide.background\":\"#adbac71f\",\"editorInlayHint.background\":\"#76839033\",\"editorInlayHint.foreground\":\"#768390\",\"editorInlayHint.paramBackground\":\"#76839033\",\"editorInlayHint.paramForeground\":\"#768390\",\"editorInlayHint.typeBackground\":\"#76839033\",\"editorInlayHint.typeForeground\":\"#768390\",\"editorLineNumber.activeForeground\":\"#adbac7\",\"editorLineNumber.foreground\":\"#636e7b\",\"editorOverviewRuler.border\":\"#1c2128\",\"editorWhitespace.foreground\":\"#545d68\",\"editorWidget.background\":\"#2d333b\",\"errorForeground\":\"#e5534b\",\"focusBorder\":\"#316dca\",\"foreground\":\"#adbac7\",\"gitDecoration.addedResourceForeground\":\"#57ab5a\",\"gitDecoration.conflictingResourceForeground\":\"#cc6b2c\",\"gitDecoration.deletedResourceForeground\":\"#e5534b\",\"gitDecoration.ignoredResourceForeground\":\"#636e7b\",\"gitDecoration.modifiedResourceForeground\":\"#c69026\",\"gitDecoration.submoduleResourceForeground\":\"#768390\",\"gitDecoration.untrackedResourceForeground\":\"#57ab5a\",\"icon.foreground\":\"#768390\",\"input.background\":\"#22272e\",\"input.border\":\"#444c56\",\"input.foreground\":\"#adbac7\",\"input.placeholderForeground\":\"#636e7b\",\"keybindingLabel.foreground\":\"#adbac7\",\"list.activeSelectionBackground\":\"#636e7b66\",\"list.activeSelectionForeground\":\"#adbac7\",\"list.focusBackground\":\"#4184e426\",\"list.focusForeground\":\"#adbac7\",\"list.highlightForeground\":\"#539bf5\",\"list.hoverBackground\":\"#636e7b1a\",\"list.hoverForeground\":\"#adbac7\",\"list.inactiveFocusBackground\":\"#4184e426\",\"list.inactiveSelectionBackground\":\"#636e7b66\",\"list.inactiveSelectionForeground\":\"#adbac7\",\"minimapSlider.activeBackground\":\"#76839047\",\"minimapSlider.background\":\"#76839033\",\"minimapSlider.hoverBackground\":\"#7683903d\",\"notificationCenterHeader.background\":\"#2d333b\",\"notificationCenterHeader.foreground\":\"#768390\",\"notifications.background\":\"#2d333b\",\"notifications.border\":\"#444c56\",\"notifications.foreground\":\"#adbac7\",\"notificationsErrorIcon.foreground\":\"#e5534b\",\"notificationsInfoIcon.foreground\":\"#539bf5\",\"notificationsWarningIcon.foreground\":\"#c69026\",\"panel.background\":\"#1c2128\",\"panel.border\":\"#444c56\",\"panelInput.border\":\"#444c56\",\"panelTitle.activeBorder\":\"#ec775c\",\"panelTitle.activeForeground\":\"#adbac7\",\"panelTitle.inactiveForeground\":\"#768390\",\"peekViewEditor.background\":\"#636e7b1a\",\"peekViewEditor.matchHighlightBackground\":\"#ae7c1466\",\"peekViewResult.background\":\"#22272e\",\"peekViewResult.matchHighlightBackground\":\"#ae7c1466\",\"pickerGroup.border\":\"#444c56\",\"pickerGroup.foreground\":\"#768390\",\"progressBar.background\":\"#316dca\",\"quickInput.background\":\"#2d333b\",\"quickInput.foreground\":\"#adbac7\",\"scrollbar.shadow\":\"#545d6833\",\"scrollbarSlider.activeBackground\":\"#76839047\",\"scrollbarSlider.background\":\"#76839033\",\"scrollbarSlider.hoverBackground\":\"#7683903d\",\"settings.headerForeground\":\"#adbac7\",\"settings.modifiedItemIndicator\":\"#ae7c1466\",\"sideBar.background\":\"#1c2128\",\"sideBar.border\":\"#444c56\",\"sideBar.foreground\":\"#adbac7\",\"sideBarSectionHeader.background\":\"#1c2128\",\"sideBarSectionHeader.border\":\"#444c56\",\"sideBarSectionHeader.foreground\":\"#adbac7\",\"sideBarTitle.foreground\":\"#adbac7\",\"statusBar.background\":\"#22272e\",\"statusBar.border\":\"#444c56\",\"statusBar.debuggingBackground\":\"#c93c37\",\"statusBar.debuggingForeground\":\"#cdd9e5\",\"statusBar.focusBorder\":\"#316dca80\",\"statusBar.foreground\":\"#768390\",\"statusBar.noFolderBackground\":\"#22272e\",\"statusBarItem.activeBackground\":\"#adbac71f\",\"statusBarItem.focusBorder\":\"#316dca\",\"statusBarItem.hoverBackground\":\"#adbac714\",\"statusBarItem.prominentBackground\":\"#636e7b66\",\"statusBarItem.remoteBackground\":\"#444c56\",\"statusBarItem.remoteForeground\":\"#adbac7\",\"symbolIcon.arrayForeground\":\"#e0823d\",\"symbolIcon.booleanForeground\":\"#539bf5\",\"symbolIcon.classForeground\":\"#e0823d\",\"symbolIcon.colorForeground\":\"#6cb6ff\",\"symbolIcon.constantForeground\":[\"#b4f1b4\",\"#8ddb8c\",\"#6bc46d\",\"#57ab5a\",\"#46954a\",\"#347d39\",\"#2b6a30\",\"#245829\",\"#1b4721\",\"#113417\"],\"symbolIcon.constructorForeground\":\"#dcbdfb\",\"symbolIcon.enumeratorForeground\":\"#e0823d\",\"symbolIcon.enumeratorMemberForeground\":\"#539bf5\",\"symbolIcon.eventForeground\":\"#636e7b\",\"symbolIcon.fieldForeground\":\"#e0823d\",\"symbolIcon.fileForeground\":\"#c69026\",\"symbolIcon.folderForeground\":\"#c69026\",\"symbolIcon.functionForeground\":\"#b083f0\",\"symbolIcon.interfaceForeground\":\"#e0823d\",\"symbolIcon.keyForeground\":\"#539bf5\",\"symbolIcon.keywordForeground\":\"#f47067\",\"symbolIcon.methodForeground\":\"#b083f0\",\"symbolIcon.moduleForeground\":\"#f47067\",\"symbolIcon.namespaceForeground\":\"#f47067\",\"symbolIcon.nullForeground\":\"#539bf5\",\"symbolIcon.numberForeground\":\"#57ab5a\",\"symbolIcon.objectForeground\":\"#e0823d\",\"symbolIcon.operatorForeground\":\"#6cb6ff\",\"symbolIcon.packageForeground\":\"#e0823d\",\"symbolIcon.propertyForeground\":\"#e0823d\",\"symbolIcon.referenceForeground\":\"#539bf5\",\"symbolIcon.snippetForeground\":\"#539bf5\",\"symbolIcon.stringForeground\":\"#6cb6ff\",\"symbolIcon.structForeground\":\"#e0823d\",\"symbolIcon.textForeground\":\"#6cb6ff\",\"symbolIcon.typeParameterForeground\":\"#6cb6ff\",\"symbolIcon.unitForeground\":\"#539bf5\",\"symbolIcon.variableForeground\":\"#e0823d\",\"tab.activeBackground\":\"#22272e\",\"tab.activeBorder\":\"#22272e\",\"tab.activeBorderTop\":\"#ec775c\",\"tab.activeForeground\":\"#adbac7\",\"tab.border\":\"#444c56\",\"tab.hoverBackground\":\"#22272e\",\"tab.inactiveBackground\":\"#1c2128\",\"tab.inactiveForeground\":\"#768390\",\"tab.unfocusedActiveBorder\":\"#22272e\",\"tab.unfocusedActiveBorderTop\":\"#444c56\",\"tab.unfocusedHoverBackground\":\"#636e7b1a\",\"terminal.ansiBlack\":\"#545d68\",\"terminal.ansiBlue\":\"#539bf5\",\"terminal.ansiBrightBlack\":\"#636e7b\",\"terminal.ansiBrightBlue\":\"#6cb6ff\",\"terminal.ansiBrightCyan\":\"#56d4dd\",\"terminal.ansiBrightGreen\":\"#6bc46d\",\"terminal.ansiBrightMagenta\":\"#dcbdfb\",\"terminal.ansiBrightRed\":\"#ff938a\",\"terminal.ansiBrightWhite\":\"#cdd9e5\",\"terminal.ansiBrightYellow\":\"#daaa3f\",\"terminal.ansiCyan\":\"#39c5cf\",\"terminal.ansiGreen\":\"#57ab5a\",\"terminal.ansiMagenta\":\"#b083f0\",\"terminal.ansiRed\":\"#f47067\",\"terminal.ansiWhite\":\"#909dab\",\"terminal.ansiYellow\":\"#c69026\",\"terminal.foreground\":\"#adbac7\",\"textBlockQuote.background\":\"#1c2128\",\"textBlockQuote.border\":\"#444c56\",\"textCodeBlock.background\":\"#636e7b66\",\"textLink.activeForeground\":\"#539bf5\",\"textLink.foreground\":\"#539bf5\",\"textPreformat.background\":\"#636e7b66\",\"textPreformat.foreground\":\"#768390\",\"textSeparator.foreground\":\"#373e47\",\"titleBar.activeBackground\":\"#22272e\",\"titleBar.activeForeground\":\"#768390\",\"titleBar.border\":\"#444c56\",\"titleBar.inactiveBackground\":\"#1c2128\",\"titleBar.inactiveForeground\":\"#768390\",\"tree.indentGuidesStroke\":\"#373e47\",\"welcomePage.buttonBackground\":\"#373e47\",\"welcomePage.buttonHoverBackground\":\"#444c56\"},\"displayName\":\"GitHub Dark Dimmed\",\"name\":\"github-dark-dimmed\",\"semanticHighlighting\":true,\"tokenColors\":[{\"scope\":[\"comment\",\"punctuation.definition.comment\",\"string.comment\"],\"settings\":{\"foreground\":\"#768390\"}},{\"scope\":[\"constant.other.placeholder\",\"constant.character\"],\"settings\":{\"foreground\":\"#f47067\"}},{\"scope\":[\"constant\",\"entity.name.constant\",\"variable.other.constant\",\"variable.other.enummember\",\"variable.language\",\"entity\"],\"settings\":{\"foreground\":\"#6cb6ff\"}},{\"scope\":[\"entity.name\",\"meta.export.default\",\"meta.definition.variable\"],\"settings\":{\"foreground\":\"#f69d50\"}},{\"scope\":[\"variable.parameter.function\",\"meta.jsx.children\",\"meta.block\",\"meta.tag.attributes\",\"entity.name.constant\",\"meta.object.member\",\"meta.embedded.expression\"],\"settings\":{\"foreground\":\"#adbac7\"}},{\"scope\":\"entity.name.function\",\"settings\":{\"foreground\":\"#dcbdfb\"}},{\"scope\":[\"entity.name.tag\",\"support.class.component\"],\"settings\":{\"foreground\":\"#8ddb8c\"}},{\"scope\":\"keyword\",\"settings\":{\"foreground\":\"#f47067\"}},{\"scope\":[\"storage\",\"storage.type\"],\"settings\":{\"foreground\":\"#f47067\"}},{\"scope\":[\"storage.modifier.package\",\"storage.modifier.import\",\"storage.type.java\"],\"settings\":{\"foreground\":\"#adbac7\"}},{\"scope\":[\"string\",\"string punctuation.section.embedded source\"],\"settings\":{\"foreground\":\"#96d0ff\"}},{\"scope\":\"support\",\"settings\":{\"foreground\":\"#6cb6ff\"}},{\"scope\":\"meta.property-name\",\"settings\":{\"foreground\":\"#6cb6ff\"}},{\"scope\":\"variable\",\"settings\":{\"foreground\":\"#f69d50\"}},{\"scope\":\"variable.other\",\"settings\":{\"foreground\":\"#adbac7\"}},{\"scope\":\"invalid.broken\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#ff938a\"}},{\"scope\":\"invalid.deprecated\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#ff938a\"}},{\"scope\":\"invalid.illegal\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#ff938a\"}},{\"scope\":\"invalid.unimplemented\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#ff938a\"}},{\"scope\":\"carriage-return\",\"settings\":{\"background\":\"#f47067\",\"content\":\"^M\",\"fontStyle\":\"italic underline\",\"foreground\":\"#cdd9e5\"}},{\"scope\":\"message.error\",\"settings\":{\"foreground\":\"#ff938a\"}},{\"scope\":\"string variable\",\"settings\":{\"foreground\":\"#6cb6ff\"}},{\"scope\":[\"source.regexp\",\"string.regexp\"],\"settings\":{\"foreground\":\"#96d0ff\"}},{\"scope\":[\"string.regexp.character-class\",\"string.regexp constant.character.escape\",\"string.regexp source.ruby.embedded\",\"string.regexp string.regexp.arbitrary-repitition\"],\"settings\":{\"foreground\":\"#96d0ff\"}},{\"scope\":\"string.regexp constant.character.escape\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#8ddb8c\"}},{\"scope\":\"support.constant\",\"settings\":{\"foreground\":\"#6cb6ff\"}},{\"scope\":\"support.variable\",\"settings\":{\"foreground\":\"#6cb6ff\"}},{\"scope\":\"support.type.property-name.json\",\"settings\":{\"foreground\":\"#8ddb8c\"}},{\"scope\":\"meta.module-reference\",\"settings\":{\"foreground\":\"#6cb6ff\"}},{\"scope\":\"punctuation.definition.list.begin.markdown\",\"settings\":{\"foreground\":\"#f69d50\"}},{\"scope\":[\"markup.heading\",\"markup.heading entity.name\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#6cb6ff\"}},{\"scope\":\"markup.quote\",\"settings\":{\"foreground\":\"#8ddb8c\"}},{\"scope\":\"markup.italic\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#adbac7\"}},{\"scope\":\"markup.bold\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#adbac7\"}},{\"scope\":[\"markup.underline\"],\"settings\":{\"fontStyle\":\"underline\"}},{\"scope\":[\"markup.strikethrough\"],\"settings\":{\"fontStyle\":\"strikethrough\"}},{\"scope\":\"markup.inline.raw\",\"settings\":{\"foreground\":\"#6cb6ff\"}},{\"scope\":[\"markup.deleted\",\"meta.diff.header.from-file\",\"punctuation.definition.deleted\"],\"settings\":{\"background\":\"#5d0f12\",\"foreground\":\"#ff938a\"}},{\"scope\":[\"punctuation.section.embedded\"],\"settings\":{\"foreground\":\"#f47067\"}},{\"scope\":[\"markup.inserted\",\"meta.diff.header.to-file\",\"punctuation.definition.inserted\"],\"settings\":{\"background\":\"#113417\",\"foreground\":\"#8ddb8c\"}},{\"scope\":[\"markup.changed\",\"punctuation.definition.changed\"],\"settings\":{\"background\":\"#682d0f\",\"foreground\":\"#f69d50\"}},{\"scope\":[\"markup.ignored\",\"markup.untracked\"],\"settings\":{\"background\":\"#6cb6ff\",\"foreground\":\"#2d333b\"}},{\"scope\":\"meta.diff.range\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#dcbdfb\"}},{\"scope\":\"meta.diff.header\",\"settings\":{\"foreground\":\"#6cb6ff\"}},{\"scope\":\"meta.separator\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#6cb6ff\"}},{\"scope\":\"meta.output\",\"settings\":{\"foreground\":\"#6cb6ff\"}},{\"scope\":[\"brackethighlighter.tag\",\"brackethighlighter.curly\",\"brackethighlighter.round\",\"brackethighlighter.square\",\"brackethighlighter.angle\",\"brackethighlighter.quote\"],\"settings\":{\"foreground\":\"#768390\"}},{\"scope\":\"brackethighlighter.unmatched\",\"settings\":{\"foreground\":\"#ff938a\"}},{\"scope\":[\"constant.other.reference.link\",\"string.other.link\"],\"settings\":{\"foreground\":\"#96d0ff\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DHJKELXO.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBorder\":\"#f9826c\",\"activityBar.background\":\"#24292e\",\"activityBar.border\":\"#1b1f23\",\"activityBar.foreground\":\"#e1e4e8\",\"activityBar.inactiveForeground\":\"#6a737d\",\"activityBarBadge.background\":\"#0366d6\",\"activityBarBadge.foreground\":\"#fff\",\"badge.background\":\"#044289\",\"badge.foreground\":\"#c8e1ff\",\"breadcrumb.activeSelectionForeground\":\"#d1d5da\",\"breadcrumb.focusForeground\":\"#e1e4e8\",\"breadcrumb.foreground\":\"#959da5\",\"breadcrumbPicker.background\":\"#2b3036\",\"button.background\":\"#176f2c\",\"button.foreground\":\"#dcffe4\",\"button.hoverBackground\":\"#22863a\",\"button.secondaryBackground\":\"#444d56\",\"button.secondaryForeground\":\"#fff\",\"button.secondaryHoverBackground\":\"#586069\",\"checkbox.background\":\"#444d56\",\"checkbox.border\":\"#1b1f23\",\"debugToolBar.background\":\"#2b3036\",\"descriptionForeground\":\"#959da5\",\"diffEditor.insertedTextBackground\":\"#28a74530\",\"diffEditor.removedTextBackground\":\"#d73a4930\",\"dropdown.background\":\"#2f363d\",\"dropdown.border\":\"#1b1f23\",\"dropdown.foreground\":\"#e1e4e8\",\"dropdown.listBackground\":\"#24292e\",\"editor.background\":\"#24292e\",\"editor.findMatchBackground\":\"#ffd33d44\",\"editor.findMatchHighlightBackground\":\"#ffd33d22\",\"editor.focusedStackFrameHighlightBackground\":\"#2b6a3033\",\"editor.foldBackground\":\"#58606915\",\"editor.foreground\":\"#e1e4e8\",\"editor.inactiveSelectionBackground\":\"#3392FF22\",\"editor.lineHighlightBackground\":\"#2b3036\",\"editor.linkedEditingBackground\":\"#3392FF22\",\"editor.selectionBackground\":\"#3392FF44\",\"editor.selectionHighlightBackground\":\"#17E5E633\",\"editor.selectionHighlightBorder\":\"#17E5E600\",\"editor.stackFrameHighlightBackground\":\"#C6902625\",\"editor.wordHighlightBackground\":\"#17E5E600\",\"editor.wordHighlightBorder\":\"#17E5E699\",\"editor.wordHighlightStrongBackground\":\"#17E5E600\",\"editor.wordHighlightStrongBorder\":\"#17E5E666\",\"editorBracketHighlight.foreground1\":\"#79b8ff\",\"editorBracketHighlight.foreground2\":\"#ffab70\",\"editorBracketHighlight.foreground3\":\"#b392f0\",\"editorBracketHighlight.foreground4\":\"#79b8ff\",\"editorBracketHighlight.foreground5\":\"#ffab70\",\"editorBracketHighlight.foreground6\":\"#b392f0\",\"editorBracketMatch.background\":\"#17E5E650\",\"editorBracketMatch.border\":\"#17E5E600\",\"editorCursor.foreground\":\"#c8e1ff\",\"editorError.foreground\":\"#f97583\",\"editorGroup.border\":\"#1b1f23\",\"editorGroupHeader.tabsBackground\":\"#1f2428\",\"editorGroupHeader.tabsBorder\":\"#1b1f23\",\"editorGutter.addedBackground\":\"#28a745\",\"editorGutter.deletedBackground\":\"#ea4a5a\",\"editorGutter.modifiedBackground\":\"#2188ff\",\"editorIndentGuide.activeBackground\":\"#444d56\",\"editorIndentGuide.background\":\"#2f363d\",\"editorLineNumber.activeForeground\":\"#e1e4e8\",\"editorLineNumber.foreground\":\"#444d56\",\"editorOverviewRuler.border\":\"#1b1f23\",\"editorWarning.foreground\":\"#ffea7f\",\"editorWhitespace.foreground\":\"#444d56\",\"editorWidget.background\":\"#1f2428\",\"errorForeground\":\"#f97583\",\"focusBorder\":\"#005cc5\",\"foreground\":\"#d1d5da\",\"gitDecoration.addedResourceForeground\":\"#34d058\",\"gitDecoration.conflictingResourceForeground\":\"#ffab70\",\"gitDecoration.deletedResourceForeground\":\"#ea4a5a\",\"gitDecoration.ignoredResourceForeground\":\"#6a737d\",\"gitDecoration.modifiedResourceForeground\":\"#79b8ff\",\"gitDecoration.submoduleResourceForeground\":\"#6a737d\",\"gitDecoration.untrackedResourceForeground\":\"#34d058\",\"input.background\":\"#2f363d\",\"input.border\":\"#1b1f23\",\"input.foreground\":\"#e1e4e8\",\"input.placeholderForeground\":\"#959da5\",\"list.activeSelectionBackground\":\"#39414a\",\"list.activeSelectionForeground\":\"#e1e4e8\",\"list.focusBackground\":\"#044289\",\"list.hoverBackground\":\"#282e34\",\"list.hoverForeground\":\"#e1e4e8\",\"list.inactiveFocusBackground\":\"#1d2d3e\",\"list.inactiveSelectionBackground\":\"#282e34\",\"list.inactiveSelectionForeground\":\"#e1e4e8\",\"notificationCenterHeader.background\":\"#24292e\",\"notificationCenterHeader.foreground\":\"#959da5\",\"notifications.background\":\"#2f363d\",\"notifications.border\":\"#1b1f23\",\"notifications.foreground\":\"#e1e4e8\",\"notificationsErrorIcon.foreground\":\"#ea4a5a\",\"notificationsInfoIcon.foreground\":\"#79b8ff\",\"notificationsWarningIcon.foreground\":\"#ffab70\",\"panel.background\":\"#1f2428\",\"panel.border\":\"#1b1f23\",\"panelInput.border\":\"#2f363d\",\"panelTitle.activeBorder\":\"#f9826c\",\"panelTitle.activeForeground\":\"#e1e4e8\",\"panelTitle.inactiveForeground\":\"#959da5\",\"peekViewEditor.background\":\"#1f242888\",\"peekViewEditor.matchHighlightBackground\":\"#ffd33d33\",\"peekViewResult.background\":\"#1f2428\",\"peekViewResult.matchHighlightBackground\":\"#ffd33d33\",\"pickerGroup.border\":\"#444d56\",\"pickerGroup.foreground\":\"#e1e4e8\",\"progressBar.background\":\"#0366d6\",\"quickInput.background\":\"#24292e\",\"quickInput.foreground\":\"#e1e4e8\",\"scrollbar.shadow\":\"#0008\",\"scrollbarSlider.activeBackground\":\"#6a737d88\",\"scrollbarSlider.background\":\"#6a737d33\",\"scrollbarSlider.hoverBackground\":\"#6a737d44\",\"settings.headerForeground\":\"#e1e4e8\",\"settings.modifiedItemIndicator\":\"#0366d6\",\"sideBar.background\":\"#1f2428\",\"sideBar.border\":\"#1b1f23\",\"sideBar.foreground\":\"#d1d5da\",\"sideBarSectionHeader.background\":\"#1f2428\",\"sideBarSectionHeader.border\":\"#1b1f23\",\"sideBarSectionHeader.foreground\":\"#e1e4e8\",\"sideBarTitle.foreground\":\"#e1e4e8\",\"statusBar.background\":\"#24292e\",\"statusBar.border\":\"#1b1f23\",\"statusBar.debuggingBackground\":\"#931c06\",\"statusBar.debuggingForeground\":\"#fff\",\"statusBar.foreground\":\"#d1d5da\",\"statusBar.noFolderBackground\":\"#24292e\",\"statusBarItem.prominentBackground\":\"#282e34\",\"statusBarItem.remoteBackground\":\"#24292e\",\"statusBarItem.remoteForeground\":\"#d1d5da\",\"tab.activeBackground\":\"#24292e\",\"tab.activeBorder\":\"#24292e\",\"tab.activeBorderTop\":\"#f9826c\",\"tab.activeForeground\":\"#e1e4e8\",\"tab.border\":\"#1b1f23\",\"tab.hoverBackground\":\"#24292e\",\"tab.inactiveBackground\":\"#1f2428\",\"tab.inactiveForeground\":\"#959da5\",\"tab.unfocusedActiveBorder\":\"#24292e\",\"tab.unfocusedActiveBorderTop\":\"#1b1f23\",\"tab.unfocusedHoverBackground\":\"#24292e\",\"terminal.ansiBlack\":\"#586069\",\"terminal.ansiBlue\":\"#2188ff\",\"terminal.ansiBrightBlack\":\"#959da5\",\"terminal.ansiBrightBlue\":\"#79b8ff\",\"terminal.ansiBrightCyan\":\"#56d4dd\",\"terminal.ansiBrightGreen\":\"#85e89d\",\"terminal.ansiBrightMagenta\":\"#b392f0\",\"terminal.ansiBrightRed\":\"#f97583\",\"terminal.ansiBrightWhite\":\"#fafbfc\",\"terminal.ansiBrightYellow\":\"#ffea7f\",\"terminal.ansiCyan\":\"#39c5cf\",\"terminal.ansiGreen\":\"#34d058\",\"terminal.ansiMagenta\":\"#b392f0\",\"terminal.ansiRed\":\"#ea4a5a\",\"terminal.ansiWhite\":\"#d1d5da\",\"terminal.ansiYellow\":\"#ffea7f\",\"terminal.foreground\":\"#d1d5da\",\"terminal.tab.activeBorder\":\"#f9826c\",\"terminalCursor.background\":\"#586069\",\"terminalCursor.foreground\":\"#79b8ff\",\"textBlockQuote.background\":\"#24292e\",\"textBlockQuote.border\":\"#444d56\",\"textCodeBlock.background\":\"#2f363d\",\"textLink.activeForeground\":\"#c8e1ff\",\"textLink.foreground\":\"#79b8ff\",\"textPreformat.foreground\":\"#d1d5da\",\"textSeparator.foreground\":\"#586069\",\"titleBar.activeBackground\":\"#24292e\",\"titleBar.activeForeground\":\"#e1e4e8\",\"titleBar.border\":\"#1b1f23\",\"titleBar.inactiveBackground\":\"#1f2428\",\"titleBar.inactiveForeground\":\"#959da5\",\"tree.indentGuidesStroke\":\"#2f363d\",\"welcomePage.buttonBackground\":\"#2f363d\",\"welcomePage.buttonHoverBackground\":\"#444d56\"},\"displayName\":\"GitHub Dark\",\"name\":\"github-dark\",\"semanticHighlighting\":true,\"tokenColors\":[{\"scope\":[\"comment\",\"punctuation.definition.comment\",\"string.comment\"],\"settings\":{\"foreground\":\"#6a737d\"}},{\"scope\":[\"constant\",\"entity.name.constant\",\"variable.other.constant\",\"variable.other.enummember\",\"variable.language\"],\"settings\":{\"foreground\":\"#79b8ff\"}},{\"scope\":[\"entity\",\"entity.name\"],\"settings\":{\"foreground\":\"#b392f0\"}},{\"scope\":\"variable.parameter.function\",\"settings\":{\"foreground\":\"#e1e4e8\"}},{\"scope\":\"entity.name.tag\",\"settings\":{\"foreground\":\"#85e89d\"}},{\"scope\":\"keyword\",\"settings\":{\"foreground\":\"#f97583\"}},{\"scope\":[\"storage\",\"storage.type\"],\"settings\":{\"foreground\":\"#f97583\"}},{\"scope\":[\"storage.modifier.package\",\"storage.modifier.import\",\"storage.type.java\"],\"settings\":{\"foreground\":\"#e1e4e8\"}},{\"scope\":[\"string\",\"punctuation.definition.string\",\"string punctuation.section.embedded source\"],\"settings\":{\"foreground\":\"#9ecbff\"}},{\"scope\":\"support\",\"settings\":{\"foreground\":\"#79b8ff\"}},{\"scope\":\"meta.property-name\",\"settings\":{\"foreground\":\"#79b8ff\"}},{\"scope\":\"variable\",\"settings\":{\"foreground\":\"#ffab70\"}},{\"scope\":\"variable.other\",\"settings\":{\"foreground\":\"#e1e4e8\"}},{\"scope\":\"invalid.broken\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#fdaeb7\"}},{\"scope\":\"invalid.deprecated\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#fdaeb7\"}},{\"scope\":\"invalid.illegal\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#fdaeb7\"}},{\"scope\":\"invalid.unimplemented\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#fdaeb7\"}},{\"scope\":\"carriage-return\",\"settings\":{\"background\":\"#f97583\",\"content\":\"^M\",\"fontStyle\":\"italic underline\",\"foreground\":\"#24292e\"}},{\"scope\":\"message.error\",\"settings\":{\"foreground\":\"#fdaeb7\"}},{\"scope\":\"string variable\",\"settings\":{\"foreground\":\"#79b8ff\"}},{\"scope\":[\"source.regexp\",\"string.regexp\"],\"settings\":{\"foreground\":\"#dbedff\"}},{\"scope\":[\"string.regexp.character-class\",\"string.regexp constant.character.escape\",\"string.regexp source.ruby.embedded\",\"string.regexp string.regexp.arbitrary-repitition\"],\"settings\":{\"foreground\":\"#dbedff\"}},{\"scope\":\"string.regexp constant.character.escape\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#85e89d\"}},{\"scope\":\"support.constant\",\"settings\":{\"foreground\":\"#79b8ff\"}},{\"scope\":\"support.variable\",\"settings\":{\"foreground\":\"#79b8ff\"}},{\"scope\":\"meta.module-reference\",\"settings\":{\"foreground\":\"#79b8ff\"}},{\"scope\":\"punctuation.definition.list.begin.markdown\",\"settings\":{\"foreground\":\"#ffab70\"}},{\"scope\":[\"markup.heading\",\"markup.heading entity.name\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#79b8ff\"}},{\"scope\":\"markup.quote\",\"settings\":{\"foreground\":\"#85e89d\"}},{\"scope\":\"markup.italic\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#e1e4e8\"}},{\"scope\":\"markup.bold\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#e1e4e8\"}},{\"scope\":[\"markup.underline\"],\"settings\":{\"fontStyle\":\"underline\"}},{\"scope\":[\"markup.strikethrough\"],\"settings\":{\"fontStyle\":\"strikethrough\"}},{\"scope\":\"markup.inline.raw\",\"settings\":{\"foreground\":\"#79b8ff\"}},{\"scope\":[\"markup.deleted\",\"meta.diff.header.from-file\",\"punctuation.definition.deleted\"],\"settings\":{\"background\":\"#86181d\",\"foreground\":\"#fdaeb7\"}},{\"scope\":[\"markup.inserted\",\"meta.diff.header.to-file\",\"punctuation.definition.inserted\"],\"settings\":{\"background\":\"#144620\",\"foreground\":\"#85e89d\"}},{\"scope\":[\"markup.changed\",\"punctuation.definition.changed\"],\"settings\":{\"background\":\"#c24e00\",\"foreground\":\"#ffab70\"}},{\"scope\":[\"markup.ignored\",\"markup.untracked\"],\"settings\":{\"background\":\"#79b8ff\",\"foreground\":\"#2f363d\"}},{\"scope\":\"meta.diff.range\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#b392f0\"}},{\"scope\":\"meta.diff.header\",\"settings\":{\"foreground\":\"#79b8ff\"}},{\"scope\":\"meta.separator\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#79b8ff\"}},{\"scope\":\"meta.output\",\"settings\":{\"foreground\":\"#79b8ff\"}},{\"scope\":[\"brackethighlighter.tag\",\"brackethighlighter.curly\",\"brackethighlighter.round\",\"brackethighlighter.square\",\"brackethighlighter.angle\",\"brackethighlighter.quote\"],\"settings\":{\"foreground\":\"#d1d5da\"}},{\"scope\":\"brackethighlighter.unmatched\",\"settings\":{\"foreground\":\"#fdaeb7\"}},{\"scope\":[\"constant.other.reference.link\",\"string.other.link\"],\"settings\":{\"fontStyle\":\"underline\",\"foreground\":\"#dbedff\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DHo0CJ0O.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Bicep\",\"fileTypes\":[\".bicep\"],\"name\":\"bicep\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#comments\"}],\"repository\":{\"array-literal\":{\"begin\":\"\\\\\\\\[(?!(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]|\\\\\\\\/\\\\\\\\*(?:\\\\\\\\*(?!\\\\\\\\/)|[^*])*\\\\\\\\*\\\\\\\\/)*\\\\\\\\bfor\\\\\\\\b)\",\"end\":\"]\",\"name\":\"meta.array-literal.bicep\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#comments\"}]},\"block-comment\":{\"begin\":\"/\\\\\\\\*\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.bicep\"},\"comments\":{\"patterns\":[{\"include\":\"#line-comment\"},{\"include\":\"#block-comment\"}]},\"decorator\":{\"begin\":\"@(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]|\\\\\\\\/\\\\\\\\*(?:\\\\\\\\*(?!\\\\\\\\/)|[^*])*\\\\\\\\*\\\\\\\\/)*(?=\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\b)\",\"end\":\"\",\"name\":\"meta.decorator.bicep\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#comments\"}]},\"directive\":{\"begin\":\"#\\\\\\\\b[_a-zA-Z-0-9]+\\\\\\\\b\",\"end\":\"$\",\"name\":\"meta.directive.bicep\",\"patterns\":[{\"include\":\"#directive-variable\"},{\"include\":\"#comments\"}]},\"directive-variable\":{\"match\":\"\\\\\\\\b[_a-zA-Z-0-9]+\\\\\\\\b\",\"name\":\"keyword.control.declaration.bicep\"},\"escape-character\":{\"match\":\"\\\\\\\\\\\\\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\\\\\\\\\\\\\|'|\\\\\\\\\\${)\",\"name\":\"constant.character.escape.bicep\"},\"expression\":{\"patterns\":[{\"include\":\"#string-literal\"},{\"include\":\"#string-verbatim\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#named-literal\"},{\"include\":\"#object-literal\"},{\"include\":\"#array-literal\"},{\"include\":\"#keyword\"},{\"include\":\"#identifier\"},{\"include\":\"#function-call\"},{\"include\":\"#decorator\"},{\"include\":\"#lambda-start\"},{\"include\":\"#directive\"}]},\"function-call\":{\"begin\":\"(\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\b)(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]|\\\\\\\\/\\\\\\\\*(?:\\\\\\\\*(?!\\\\\\\\/)|[^*])*\\\\\\\\*\\\\\\\\/)*\\\\\\\\(\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.bicep\"}},\"end\":\"\\\\\\\\)\",\"name\":\"meta.function-call.bicep\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#comments\"}]},\"identifier\":{\"match\":\"\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\b(?!(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]|\\\\\\\\/\\\\\\\\*(?:\\\\\\\\*(?!\\\\\\\\/)|[^*])*\\\\\\\\*\\\\\\\\/)*\\\\\\\\()\",\"name\":\"variable.other.readwrite.bicep\"},\"keyword\":{\"match\":\"\\\\\\\\b(metadata|targetScope|resource|module|param|var|output|for|in|if|existing|import|as|type|with|using|extends|func|assert|extension)\\\\\\\\b\",\"name\":\"keyword.control.declaration.bicep\"},\"lambda-start\":{\"begin\":\"(\\\\\\\\((?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]|\\\\\\\\/\\\\\\\\*(?:\\\\\\\\*(?!\\\\\\\\/)|[^*])*\\\\\\\\*\\\\\\\\/)*\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\b(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]|\\\\\\\\/\\\\\\\\*(?:\\\\\\\\*(?!\\\\\\\\/)|[^*])*\\\\\\\\*\\\\\\\\/)*(,(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]|\\\\\\\\/\\\\\\\\*(?:\\\\\\\\*(?!\\\\\\\\/)|[^*])*\\\\\\\\*\\\\\\\\/)*\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\b(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]|\\\\\\\\/\\\\\\\\*(?:\\\\\\\\*(?!\\\\\\\\/)|[^*])*\\\\\\\\*\\\\\\\\/)*)*\\\\\\\\)|\\\\\\\\((?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]|\\\\\\\\/\\\\\\\\*(?:\\\\\\\\*(?!\\\\\\\\/)|[^*])*\\\\\\\\*\\\\\\\\/)*\\\\\\\\)|(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]|\\\\\\\\/\\\\\\\\*(?:\\\\\\\\*(?!\\\\\\\\/)|[^*])*\\\\\\\\*\\\\\\\\/)*\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\b(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]|\\\\\\\\/\\\\\\\\*(?:\\\\\\\\*(?!\\\\\\\\/)|[^*])*\\\\\\\\*\\\\\\\\/)*)(?=(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]|\\\\\\\\/\\\\\\\\*(?:\\\\\\\\*(?!\\\\\\\\/)|[^*])*\\\\\\\\*\\\\\\\\/)*=>)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.undefined.bicep\",\"patterns\":[{\"include\":\"#identifier\"},{\"include\":\"#comments\"}]}},\"end\":\"(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]|\\\\\\\\/\\\\\\\\*(?:\\\\\\\\*(?!\\\\\\\\/)|[^*])*\\\\\\\\*\\\\\\\\/)*=>\",\"name\":\"meta.lambda-start.bicep\"},\"line-comment\":{\"match\":\"//.*(?=$)\",\"name\":\"comment.line.double-slash.bicep\"},\"named-literal\":{\"match\":\"\\\\\\\\b(true|false|null)\\\\\\\\b\",\"name\":\"constant.language.bicep\"},\"numeric-literal\":{\"match\":\"[0-9]+\",\"name\":\"constant.numeric.bicep\"},\"object-literal\":{\"begin\":\"{\",\"end\":\"}\",\"name\":\"meta.object-literal.bicep\",\"patterns\":[{\"include\":\"#object-property-key\"},{\"include\":\"#expression\"},{\"include\":\"#comments\"}]},\"object-property-key\":{\"match\":\"\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\b(?=(?:[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]|\\\\\\\\/\\\\\\\\*(?:\\\\\\\\*(?!\\\\\\\\/)|[^*])*\\\\\\\\*\\\\\\\\/)*:)\",\"name\":\"variable.other.property.bicep\"},\"string-literal\":{\"begin\":\"'(?!'')\",\"end\":\"'\",\"name\":\"string.quoted.single.bicep\",\"patterns\":[{\"include\":\"#escape-character\"},{\"include\":\"#string-literal-subst\"}]},\"string-literal-subst\":{\"begin\":\"(?<!\\\\\\\\\\\\\\\\)(\\\\\\\\\\${)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.template-expression.begin.bicep\"}},\"end\":\"(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.template-expression.end.bicep\"}},\"name\":\"meta.string-literal-subst.bicep\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#comments\"}]},\"string-verbatim\":{\"begin\":\"'''\",\"end\":\"'''(?!')\",\"name\":\"string.quoted.multi.bicep\",\"patterns\":[]}},\"scopeName\":\"source.bicep\"}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DIovg4uR.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]},{open:'\"',close:'\"',notIn:[\"string\"]},{open:\"`\",close:\"`\",notIn:[\"string\",\"comment\"]},{open:\"/**\",close:\" */\",notIn:[\"string\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"},{open:\"'\",close:\"'\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"`\",close:\"`\"}],folding:{markers:{start:/^\\s*\\s*#?region\\b/,end:/^\\s*\\s*#?endregion\\b/}}},n={defaultToken:\"invalid\",tokenPostfix:\".dart\",keywords:[\"abstract\",\"dynamic\",\"implements\",\"show\",\"as\",\"else\",\"import\",\"static\",\"assert\",\"enum\",\"in\",\"super\",\"async\",\"export\",\"interface\",\"switch\",\"await\",\"extends\",\"is\",\"sync\",\"break\",\"external\",\"library\",\"this\",\"case\",\"factory\",\"mixin\",\"throw\",\"catch\",\"false\",\"new\",\"true\",\"class\",\"final\",\"null\",\"try\",\"const\",\"finally\",\"on\",\"typedef\",\"continue\",\"for\",\"operator\",\"var\",\"covariant\",\"Function\",\"part\",\"void\",\"default\",\"get\",\"rethrow\",\"while\",\"deferred\",\"hide\",\"return\",\"with\",\"do\",\"if\",\"set\",\"yield\"],typeKeywords:[\"int\",\"double\",\"String\",\"bool\"],operators:[\"+\",\"-\",\"*\",\"/\",\"~/\",\"%\",\"++\",\"--\",\"==\",\"!=\",\">\",\"<\",\">=\",\"<=\",\"=\",\"-=\",\"/=\",\"%=\",\">>=\",\"^=\",\"+=\",\"*=\",\"~/=\",\"<<=\",\"&=\",\"!=\",\"||\",\"&&\",\"&\",\"|\",\"^\",\"~\",\"<<\",\">>\",\"!\",\">>>\",\"??\",\"?\",\":\",\"|=\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\\d+(_+\\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,regexpctl:/[(){}\\[\\]\\$\\^|\\-*+?\\.]/,regexpesc:/\\\\(?:[bBdDfnrstvwWn0\\\\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,tokenizer:{root:[[/[{}]/,\"delimiter.bracket\"],{include:\"common\"}],common:[[/[a-z_$][\\w$]*/,{cases:{\"@typeKeywords\":\"type.identifier\",\"@keywords\":\"keyword\",\"@default\":\"identifier\"}}],[/[A-Z_$][\\w\\$]*/,\"type.identifier\"],{include:\"@whitespace\"},[/\\/(?=([^\\\\\\/]|\\\\.)+\\/([gimsuy]*)(\\s*)(\\.|;|,|\\)|\\]|\\}|$))/,{token:\"regexp\",bracket:\"@open\",next:\"@regexp\"}],[/@[a-zA-Z]+/,\"annotation\"],[/[()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/!(?=([^=]|$))/,\"delimiter\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/(@digits)[eE]([\\-+]?(@digits))?/,\"number.float\"],[/(@digits)\\.(@digits)([eE][\\-+]?(@digits))?/,\"number.float\"],[/0[xX](@hexdigits)n?/,\"number.hex\"],[/0[oO]?(@octaldigits)n?/,\"number.octal\"],[/0[bB](@binarydigits)n?/,\"number.binary\"],[/(@digits)n?/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/'([^'\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",\"@string_double\"],[/'/,\"string\",\"@string_single\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\/\\*\\*(?!\\/)/,\"comment.doc\",\"@jsdoc\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/\\/.*$/,\"comment.doc\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],jsdoc:[[/[^\\/*]+/,\"comment.doc\"],[/\\*\\//,\"comment.doc\",\"@pop\"],[/[\\/*]/,\"comment.doc\"]],regexp:[[/(\\{)(\\d+(?:,\\d*)?)(\\})/,[\"regexp.escape.control\",\"regexp.escape.control\",\"regexp.escape.control\"]],[/(\\[)(\\^?)(?=(?:[^\\]\\\\\\/]|\\\\.)+)/,[\"regexp.escape.control\",{token:\"regexp.escape.control\",next:\"@regexrange\"}]],[/(\\()(\\?:|\\?=|\\?!)/,[\"regexp.escape.control\",\"regexp.escape.control\"]],[/[()]/,\"regexp.escape.control\"],[/@regexpctl/,\"regexp.escape.control\"],[/[^\\\\\\/]/,\"regexp\"],[/@regexpesc/,\"regexp.escape\"],[/\\\\\\./,\"regexp.invalid\"],[/(\\/)([gimsuy]*)/,[{token:\"regexp\",bracket:\"@close\",next:\"@pop\"},\"keyword.other\"]]],regexrange:[[/-/,\"regexp.escape.control\"],[/\\^/,\"regexp.invalid\"],[/@regexpesc/,\"regexp.escape\"],[/[^\\]]/,\"regexp\"],[/\\]/,{token:\"regexp.escape.control\",next:\"@pop\",bracket:\"@close\"}]],string_double:[[/[^\\\\\"\\$]+/,\"string\"],[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string\",\"@pop\"],[/\\$\\w+/,\"identifier\"]],string_single:[[/[^\\\\'\\$]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/'/,\"string\",\"@pop\"],[/\\$\\w+/,\"identifier\"]]}};export{e as conf,n as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/DJlmqQ1C.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Rel\",\"name\":\"rel\",\"patterns\":[{\"include\":\"#strings\"},{\"include\":\"#comment\"},{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#deprecated-temporary\"},{\"include\":\"#operators\"},{\"include\":\"#symbols\"},{\"include\":\"#keywords\"},{\"include\":\"#otherkeywords\"},{\"include\":\"#types\"},{\"include\":\"#constants\"}],\"repository\":{\"comment\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\\\\\\\\*(?!/)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.rel\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.rel\"}},\"name\":\"comment.block.documentation.rel\",\"patterns\":[{\"include\":\"#docblock\"}]},{\"begin\":\"(/\\\\\\\\*)(?:\\\\\\\\s*((@)internal)(?=\\\\\\\\s|(\\\\\\\\*/)))?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.rel\"},\"2\":{\"name\":\"storage.type.internaldeclaration.rel\"},\"3\":{\"name\":\"punctuation.decorator.internaldeclaration.rel\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.rel\"}},\"name\":\"comment.block.rel\"},{\"begin\":\"doc\\\\\"\\\\\"\\\\\"\",\"end\":\"\\\\\"\\\\\"\\\\\"\",\"name\":\"comment.block.documentation.rel\"},{\"begin\":\"(^[ \\\\\\\\t]+)?((//)(?:\\\\\\\\s*((@)internal)(?=\\\\\\\\s|$))?)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.rel\"},\"2\":{\"name\":\"comment.line.double-slash.rel\"},\"3\":{\"name\":\"punctuation.definition.comment.rel\"},\"4\":{\"name\":\"storage.type.internaldeclaration.rel\"},\"5\":{\"name\":\"punctuation.decorator.internaldeclaration.rel\"}},\"contentName\":\"comment.line.double-slash.rel\",\"end\":\"(?=$)\"}]},\"constants\":{\"patterns\":[{\"match\":\"(\\\\\\\\b(true|false)\\\\\\\\b)\",\"name\":\"constant.language.rel\"}]},\"deprecated-temporary\":{\"patterns\":[{\"match\":\"@inspect\",\"name\":\"keyword.other.rel\"}]},\"keywords\":{\"patterns\":[{\"match\":\"(\\\\\\\\b(def|entity|bound|include|ic|forall|exists|∀|∃|return|module|^end)\\\\\\\\b)|(((\\\\\\\\<)?\\\\\\\\|(\\\\\\\\>)?)|∀|∃)\",\"name\":\"keyword.control.rel\"}]},\"operators\":{\"patterns\":[{\"match\":\"(\\\\\\\\b(if|then|else|and|or|not|eq|neq|lt|lt_eq|gt|gt_eq)\\\\\\\\b)|(\\\\\\\\+|\\\\\\\\-|\\\\\\\\*|\\\\\\\\/|÷|\\\\\\\\^|\\\\\\\\%|\\\\\\\\=|\\\\\\\\!\\\\\\\\=|≠|\\\\\\\\<|\\\\\\\\<\\\\\\\\=|≤|\\\\\\\\>|\\\\\\\\>\\\\\\\\=|≥|\\\\\\\\&)|\\\\\\\\s+(end)\",\"name\":\"keyword.other.rel\"}]},\"otherkeywords\":{\"patterns\":[{\"match\":\"\\\\\\\\s*(@inline)\\\\\\\\s*|\\\\\\\\s*(@auto_number)\\\\\\\\s*|\\\\\\\\s*(function)\\\\\\\\s|(\\\\\\\\b(implies|select|from|∈|where|for|in)\\\\\\\\b)|(((\\\\\\\\<)?\\\\\\\\|(\\\\\\\\>)?)|∈)\",\"name\":\"keyword.other.rel\"}]},\"single-line-comment-consuming-line-ending\":{\"begin\":\"(^[ \\\\\\\\t]+)?((//)(?:\\\\\\\\s*((@)internal)(?=\\\\\\\\s|$))?)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.rel\"},\"2\":{\"name\":\"comment.line.double-slash.rel\"},\"3\":{\"name\":\"punctuation.definition.comment.rel\"},\"4\":{\"name\":\"storage.type.internaldeclaration.rel\"},\"5\":{\"name\":\"punctuation.decorator.internaldeclaration.rel\"}},\"contentName\":\"comment.line.double-slash.rel\",\"end\":\"(?=^)\"},\"strings\":{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.rel\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.rel\"}]},\"symbols\":{\"patterns\":[{\"match\":\"(:[\\\\\\\\[_$[:alpha:]](\\\\\\\\]|[_$[:alnum:]]*))\",\"name\":\"variable.parameter.rel\"}]},\"types\":{\"patterns\":[{\"match\":\"(\\\\\\\\b(Symbol|Char|Bool|Rational|FixedDecimal|Float16|Float32|Float64|Int8|Int16|Int32|Int64|Int128|UInt8|UInt16|UInt32|UInt64|UInt128|Date|DateTime|Day|Week|Month|Year|Nanosecond|Microsecond|Millisecond|Second|Minute|Hour|FilePos|HashValue|AutoNumberValue)\\\\\\\\b)\",\"name\":\"entity.name.type.rel\"}]}},\"scopeName\":\"source.rel\"}')),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DK27pemE.js",
    "content": "import{d as M,r as m,c as _,T as C,U as E,w as l,V as f,W as h,C as k,g as w,R as y,E as x}from\"./CU_MfyYc.js\";const R=M({__name:\"MonacoEditor.client\",props:{lang:{default:()=>\"plaintext\"},options:{default:()=>({})},modelValue:{default:()=>\"\"}},emits:[\"update:modelValue\",\"load\"],setup(V,{expose:g,emit:v}){const a=V,n=v,u=m(!0),d=_(()=>a.lang||a.options.language),c=C(),t=m(),s=E(),i={automaticLayout:!0};let e,o;return l(()=>a.modelValue,()=>{(e==null?void 0:e.getValue())!==a.modelValue&&(e==null||e.setValue(a.modelValue))}),l(()=>a.lang,()=>{o&&o.dispose(),o=s.editor.createModel(a.modelValue,d.value),e==null||e.setModel(o)}),l(()=>a.options,()=>{e==null||e.updateOptions(f(a.options,i))}),l(t,(p,r)=>{!t.value||r||(e=s.editor.create(t.value,f(a.options,i)),o=s.editor.createModel(a.modelValue,d.value),c.value=e,e.layout(),e.setModel(o),e.onDidChangeModelContent(()=>{n(\"update:modelValue\",e.getValue())}),u.value=!1,n(\"load\",e))}),g({$editor:c}),h(()=>{e==null||e.dispose(),o==null||o.dispose()}),(p,r)=>(w(),k(\"div\",{ref_key:\"editorElement\",ref:t},[u.value?y(p.$slots,\"default\",{key:0}):x(\"\",!0)],512))}});export{R as _};\n"
  },
  {
    "path": "jesse/static/_nuxt/DKOGybHv.js",
    "content": "import e from\"./ySlJ1b_l.js\";const t=Object.freeze(JSON.parse(`{\"displayName\":\"CoffeeScript\",\"name\":\"coffee\",\"patterns\":[{\"include\":\"#jsx\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.new.coffee\"},\"2\":{\"name\":\"storage.type.class.coffee\"},\"3\":{\"name\":\"entity.name.type.instance.coffee\"},\"4\":{\"name\":\"entity.name.type.instance.coffee\"}},\"match\":\"(new)\\\\\\\\s+(?:(?:(class)\\\\\\\\s+(\\\\\\\\w+(?:\\\\\\\\.\\\\\\\\w*)*)?)|(\\\\\\\\w+(?:\\\\\\\\.\\\\\\\\w*)*))\",\"name\":\"meta.class.instance.constructor.coffee\"},{\"begin\":\"'''\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.coffee\"}},\"end\":\"'''\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.coffee\"}},\"name\":\"string.quoted.single.heredoc.coffee\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.escape.backslash.coffee\"}},\"match\":\"(\\\\\\\\\\\\\\\\).\",\"name\":\"constant.character.escape.backslash.coffee\"}]},{\"begin\":\"\\\\\"\\\\\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.coffee\"}},\"end\":\"\\\\\"\\\\\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.coffee\"}},\"name\":\"string.quoted.double.heredoc.coffee\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.escape.backslash.coffee\"}},\"match\":\"(\\\\\\\\\\\\\\\\).\",\"name\":\"constant.character.escape.backslash.coffee\"},{\"include\":\"#interpolated_coffee\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.coffee\"},\"2\":{\"name\":\"source.js.embedded.coffee\",\"patterns\":[{\"include\":\"source.js\"}]},\"3\":{\"name\":\"punctuation.definition.string.end.coffee\"}},\"match\":\"(\\`)(.*)(\\`)\",\"name\":\"string.quoted.script.coffee\"},{\"begin\":\"(?<!#)###(?!#)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.coffee\"}},\"end\":\"###\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.coffee\"}},\"name\":\"comment.block.coffee\",\"patterns\":[{\"match\":\"(?<=^|\\\\\\\\s)@\\\\\\\\w*(?=\\\\\\\\s)\",\"name\":\"storage.type.annotation.coffee\"}]},{\"begin\":\"#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.coffee\"}},\"end\":\"$\",\"name\":\"comment.line.number-sign.coffee\"},{\"begin\":\"///\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.coffee\"}},\"end\":\"(///)[gimuy]*\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.coffee\"}},\"name\":\"string.regexp.multiline.coffee\",\"patterns\":[{\"include\":\"#heregexp\"}]},{\"begin\":\"(?<![\\\\\\\\w$])(/)(?=(?![/*+?])(.+)(/)[gimuy]*(?!\\\\\\\\s*[\\\\\\\\w$/(]))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.coffee\"}},\"end\":\"(/)[gimuy]*(?!\\\\\\\\s*[\\\\\\\\w$/(])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.coffee\"}},\"name\":\"string.regexp.coffee\",\"patterns\":[{\"include\":\"source.js.regexp\"}]},{\"match\":\"\\\\\\\\b(?<![\\\\\\\\.\\\\\\\\$])(break|by|catch|continue|else|finally|for|in|of|if|return|switch|then|throw|try|unless|when|while|until|loop|do|export|import|default|from|as|yield|async|await|(?<=for)\\\\\\\\s+own)(?!\\\\\\\\s*:)\\\\\\\\b\",\"name\":\"keyword.control.coffee\"},{\"match\":\"\\\\\\\\b(?<![\\\\\\\\.\\\\\\\\$])(delete|instanceof|new|typeof)(?!\\\\\\\\s*:)\\\\\\\\b\",\"name\":\"keyword.operator.$1.coffee\"},{\"match\":\"\\\\\\\\b(?<![\\\\\\\\.\\\\\\\\$])(case|function|var|void|with|const|let|enum|native|__hasProp|__extends|__slice|__bind|__indexOf|implements|interface|package|private|protected|public|static)(?!\\\\\\\\s*:)\\\\\\\\b\",\"name\":\"keyword.reserved.coffee\"},{\"begin\":\"(?<=\\\\\\\\s|^)((@)?[a-zA-Z_$][\\\\\\\\w$]*)\\\\\\\\s*([:=])\\\\\\\\s*(?=(\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\)\\\\\\\\s*)?[=-]>)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.coffee\"},\"2\":{\"name\":\"variable.other.readwrite.instance.coffee\"},\"3\":{\"name\":\"keyword.operator.assignment.coffee\"}},\"end\":\"[=-]>\",\"endCaptures\":{\"0\":{\"name\":\"storage.type.function.coffee\"}},\"name\":\"meta.function.coffee\",\"patterns\":[{\"include\":\"#function_params\"}]},{\"begin\":\"(?<=\\\\\\\\s|^)(?:((')([^']*?)('))|((\\\\\")([^\\\\\"]*?)(\\\\\")))\\\\\\\\s*([:=])\\\\\\\\s*(?=(\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\)\\\\\\\\s*)?[=-]>)\",\"beginCaptures\":{\"1\":{\"name\":\"string.quoted.single.coffee\"},\"2\":{\"name\":\"punctuation.definition.string.begin.coffee\"},\"3\":{\"name\":\"entity.name.function.coffee\"},\"4\":{\"name\":\"punctuation.definition.string.end.coffee\"},\"5\":{\"name\":\"string.quoted.double.coffee\"},\"6\":{\"name\":\"punctuation.definition.string.begin.coffee\"},\"7\":{\"name\":\"entity.name.function.coffee\"},\"8\":{\"name\":\"punctuation.definition.string.end.coffee\"},\"9\":{\"name\":\"keyword.operator.assignment.coffee\"}},\"end\":\"[=-]>\",\"endCaptures\":{\"0\":{\"name\":\"storage.type.function.coffee\"}},\"name\":\"meta.function.coffee\",\"patterns\":[{\"include\":\"#function_params\"}]},{\"begin\":\"(?=(\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\)\\\\\\\\s*)?[=-]>)\",\"end\":\"[=-]>\",\"endCaptures\":{\"0\":{\"name\":\"storage.type.function.coffee\"}},\"name\":\"meta.function.inline.coffee\",\"patterns\":[{\"include\":\"#function_params\"}]},{\"begin\":\"(?<=\\\\\\\\s|^)({)(?=[^'\\\\\"#]+?}[\\\\\\\\s\\\\\\\\]}]*=)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.destructuring.begin.bracket.curly.coffee\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.destructuring.end.bracket.curly.coffee\"}},\"name\":\"meta.variable.assignment.destructured.object.coffee\",\"patterns\":[{\"include\":\"$self\"},{\"match\":\"[a-zA-Z$_]\\\\\\\\w*\",\"name\":\"variable.assignment.coffee\"}]},{\"begin\":\"(?<=\\\\\\\\s|^)(\\\\\\\\[)(?=[^'\\\\\"#]+?\\\\\\\\][\\\\\\\\s\\\\\\\\]}]*=)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.destructuring.begin.bracket.square.coffee\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.destructuring.end.bracket.square.coffee\"}},\"name\":\"meta.variable.assignment.destructured.array.coffee\",\"patterns\":[{\"include\":\"$self\"},{\"match\":\"[a-zA-Z$_]\\\\\\\\w*\",\"name\":\"variable.assignment.coffee\"}]},{\"match\":\"\\\\\\\\b(?<!\\\\\\\\.|::)(true|on|yes)(?!\\\\\\\\s*[:=][^=])\\\\\\\\b\",\"name\":\"constant.language.boolean.true.coffee\"},{\"match\":\"\\\\\\\\b(?<!\\\\\\\\.|::)(false|off|no)(?!\\\\\\\\s*[:=][^=])\\\\\\\\b\",\"name\":\"constant.language.boolean.false.coffee\"},{\"match\":\"\\\\\\\\b(?<!\\\\\\\\.|::)null(?!\\\\\\\\s*[:=][^=])\\\\\\\\b\",\"name\":\"constant.language.null.coffee\"},{\"match\":\"\\\\\\\\b(?<!\\\\\\\\.|::)extends(?!\\\\\\\\s*[:=])\\\\\\\\b\",\"name\":\"variable.language.coffee\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(?<!\\\\\\\\$)(super|this|arguments)(?!\\\\\\\\s*[:=][^=]|\\\\\\\\$)\\\\\\\\b\",\"name\":\"variable.language.$1.coffee\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.coffee\"},\"2\":{\"name\":\"keyword.control.inheritance.coffee\"},\"3\":{\"name\":\"entity.other.inherited-class.coffee\"}},\"match\":\"(?<=\\\\\\\\s|^|\\\\\\\\[|\\\\\\\\()(class)\\\\\\\\s+(extends)\\\\\\\\s+(@?[a-zA-Z\\\\\\\\$\\\\\\\\._][\\\\\\\\w\\\\\\\\.]*)\",\"name\":\"meta.class.coffee\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.coffee\"},\"2\":{\"name\":\"entity.name.type.class.coffee\"},\"3\":{\"name\":\"keyword.control.inheritance.coffee\"},\"4\":{\"name\":\"entity.other.inherited-class.coffee\"}},\"match\":\"(?<=\\\\\\\\s|^|\\\\\\\\[|\\\\\\\\()(class\\\\\\\\b)\\\\\\\\s+(@?[a-zA-Z\\\\\\\\$_][\\\\\\\\w\\\\\\\\.]*)?(?:\\\\\\\\s+(extends)\\\\\\\\s+(@?[a-zA-Z\\\\\\\\$\\\\\\\\._][\\\\\\\\w\\\\\\\\.]*))?\",\"name\":\"meta.class.coffee\"},{\"match\":\"\\\\\\\\b(debugger|\\\\\\\\\\\\\\\\)\\\\\\\\b\",\"name\":\"keyword.other.coffee\"},{\"match\":\"\\\\\\\\b(Array|ArrayBuffer|Blob|Boolean|Date|document|Function|Int(8|16|32|64)Array|Math|Map|Number|Object|Proxy|RegExp|Set|String|WeakMap|window|Uint(8|16|32|64)Array|XMLHttpRequest)\\\\\\\\b\",\"name\":\"support.class.coffee\"},{\"match\":\"\\\\\\\\b(console)\\\\\\\\b\",\"name\":\"entity.name.type.object.coffee\"},{\"match\":\"((?<=console\\\\\\\\.)(debug|warn|info|log|error|time|timeEnd|assert))\\\\\\\\b\",\"name\":\"support.function.console.coffee\"},{\"match\":\"((?<=\\\\\\\\.)(apply|call|concat|every|filter|forEach|from|hasOwnProperty|indexOf|isPrototypeOf|join|lastIndexOf|map|of|pop|propertyIsEnumerable|push|reduce(Right)?|reverse|shift|slice|some|sort|splice|to(Locale)?String|unshift|valueOf))\\\\\\\\b\",\"name\":\"support.function.method.array.coffee\"},{\"match\":\"((?<=Array\\\\\\\\.)(isArray))\\\\\\\\b\",\"name\":\"support.function.static.array.coffee\"},{\"match\":\"((?<=Object\\\\\\\\.)(create|definePropert(ies|y)|freeze|getOwnProperty(Descriptors?|Names)|getProperty(Descriptor|Names)|getPrototypeOf|is(Extensible|Frozen|Sealed)?|isnt|keys|preventExtensions|seal))\\\\\\\\b\",\"name\":\"support.function.static.object.coffee\"},{\"match\":\"((?<=Math\\\\\\\\.)(abs|acos|acosh|asin|asinh|atan|atan2|atanh|ceil|cos|cosh|exp|expm1|floor|hypot|log|log10|log1p|log2|max|min|pow|random|round|sign|sin|sinh|sqrt|tan|tanh|trunc))\\\\\\\\b\",\"name\":\"support.function.static.math.coffee\"},{\"match\":\"((?<=Number\\\\\\\\.)(is(Finite|Integer|NaN)|toInteger))\\\\\\\\b\",\"name\":\"support.function.static.number.coffee\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(module|exports|__filename|__dirname|global|process)(?!\\\\\\\\s*:)\\\\\\\\b\",\"name\":\"support.variable.coffee\"},{\"match\":\"\\\\\\\\b(Infinity|NaN|undefined)\\\\\\\\b\",\"name\":\"constant.language.coffee\"},{\"include\":\"#operators\"},{\"include\":\"#method_calls\"},{\"include\":\"#function_calls\"},{\"include\":\"#numbers\"},{\"include\":\"#objects\"},{\"include\":\"#properties\"},{\"match\":\"::\",\"name\":\"keyword.operator.prototype.coffee\"},{\"match\":\"(?<!\\\\\\\\$)\\\\\\\\b[0-9]+[\\\\\\\\w$]*\",\"name\":\"invalid.illegal.identifier.coffee\"},{\"match\":\";\",\"name\":\"punctuation.terminator.statement.coffee\"},{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.coffee\"},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.curly.coffee\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.curly.coffee\"}},\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.array.begin.bracket.square.coffee\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.array.end.bracket.square.coffee\"}},\"patterns\":[{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\.{3}\",\"name\":\"keyword.operator.slice.exclusive.coffee\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\.{2}\",\"name\":\"keyword.operator.slice.inclusive.coffee\"},{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.coffee\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.coffee\"}},\"patterns\":[{\"include\":\"$self\"}]},{\"include\":\"#instance_variable\"},{\"include\":\"#single_quoted_string\"},{\"include\":\"#double_quoted_string\"}],\"repository\":{\"arguments\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.begin.bracket.round.coffee\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.bracket.round.coffee\"}},\"name\":\"meta.arguments.coffee\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(?=(@|@?[\\\\\\\\w$]+|[=-]>|\\\\\\\\-\\\\\\\\d|\\\\\\\\[|{|\\\\\"|'))\",\"end\":\"(?=\\\\\\\\s*(?<![\\\\\\\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\\\\\\\w$]))|(?=\\\\\\\\s*(}|\\\\\\\\]|\\\\\\\\)|#|$))\",\"name\":\"meta.arguments.coffee\",\"patterns\":[{\"include\":\"$self\"}]}]},\"double_quoted_string\":{\"patterns\":[{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.coffee\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.coffee\"}},\"name\":\"string.quoted.double.coffee\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.escape.backslash.coffee\"}},\"match\":\"(\\\\\\\\\\\\\\\\)(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)\",\"name\":\"constant.character.escape.backslash.coffee\"},{\"include\":\"#interpolated_coffee\"}]}]},\"embedded_comment\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.coffee\"}},\"match\":\"(?<!\\\\\\\\\\\\\\\\)(#).*$\\\\\\\\n?\",\"name\":\"comment.line.number-sign.coffee\"}]},\"function_calls\":{\"patterns\":[{\"begin\":\"(@)?([\\\\\\\\w$]+)(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.readwrite.instance.coffee\"},\"2\":{\"patterns\":[{\"include\":\"#function_names\"}]}},\"end\":\"(?<=\\\\\\\\))\",\"name\":\"meta.function-call.coffee\",\"patterns\":[{\"include\":\"#arguments\"}]},{\"begin\":\"(@)?([\\\\\\\\w$]+)\\\\\\\\s*(?=\\\\\\\\s+(?!(?<![\\\\\\\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\\\\\\\w$]))(?=(@?[\\\\\\\\w$]+|[=-]>|\\\\\\\\-\\\\\\\\d|\\\\\\\\[|{|\\\\\"|')))\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.readwrite.instance.coffee\"},\"2\":{\"patterns\":[{\"include\":\"#function_names\"}]}},\"end\":\"(?=\\\\\\\\s*(?<![\\\\\\\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\\\\\\\w$]))|(?=\\\\\\\\s*(}|\\\\\\\\]|\\\\\\\\)|#|$))\",\"name\":\"meta.function-call.coffee\",\"patterns\":[{\"include\":\"#arguments\"}]}]},\"function_names\":{\"patterns\":[{\"match\":\"\\\\\\\\b(isNaN|isFinite|eval|uneval|parseInt|parseFloat|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|escape|unescape|require|set(Interval|Timeout)|clear(Interval|Timeout))\\\\\\\\b\",\"name\":\"support.function.coffee\"},{\"match\":\"[a-zA-Z_$][\\\\\\\\w$]*\",\"name\":\"entity.name.function.coffee\"},{\"match\":\"\\\\\\\\d[\\\\\\\\w$]*\",\"name\":\"invalid.illegal.identifier.coffee\"}]},\"function_params\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.begin.bracket.round.coffee\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.bracket.round.coffee\"}},\"name\":\"meta.parameters.coffee\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.parameter.function.coffee\"},\"2\":{\"name\":\"keyword.operator.splat.coffee\"}},\"match\":\"([a-zA-Z_$][\\\\\\\\w$]*)(\\\\\\\\.\\\\\\\\.\\\\\\\\.)?\"},{\"captures\":{\"1\":{\"name\":\"variable.parameter.function.readwrite.instance.coffee\"},\"2\":{\"name\":\"keyword.operator.splat.coffee\"}},\"match\":\"(@(?:[a-zA-Z_$][\\\\\\\\w$]*)?)(\\\\\\\\.\\\\\\\\.\\\\\\\\.)?\"},{\"include\":\"$self\"}]}]},\"heregexp\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[bB]|\\\\\\\\^|\\\\\\\\$\",\"name\":\"keyword.control.anchor.regexp\"},{\"match\":\"\\\\\\\\\\\\\\\\[1-9]\\\\\\\\d*\",\"name\":\"keyword.other.back-reference.regexp\"},{\"match\":\"[?+*]|\\\\\\\\{(\\\\\\\\d+,\\\\\\\\d+|\\\\\\\\d+,|,\\\\\\\\d+|\\\\\\\\d+)\\\\\\\\}\\\\\\\\??\",\"name\":\"keyword.operator.quantifier.regexp\"},{\"match\":\"\\\\\\\\|\",\"name\":\"keyword.operator.or.regexp\"},{\"begin\":\"(\\\\\\\\()((\\\\\\\\?=)|(\\\\\\\\?!))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.group.regexp\"},\"3\":{\"name\":\"meta.assertion.look-ahead.regexp\"},\"4\":{\"name\":\"meta.assertion.negative-look-ahead.regexp\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.group.regexp\"}},\"name\":\"meta.group.assertion.regexp\",\"patterns\":[{\"include\":\"#heregexp\"}]},{\"begin\":\"\\\\\\\\((\\\\\\\\?:)?\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.regexp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.regexp\"}},\"name\":\"meta.group.regexp\",\"patterns\":[{\"include\":\"#heregexp\"}]},{\"begin\":\"(\\\\\\\\[)(\\\\\\\\^)?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.character-class.regexp\"},\"2\":{\"name\":\"keyword.operator.negation.regexp\"}},\"end\":\"(\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.character-class.regexp\"}},\"name\":\"constant.other.character-class.set.regexp\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.character.numeric.regexp\"},\"2\":{\"name\":\"constant.character.control.regexp\"},\"3\":{\"name\":\"constant.character.escape.backslash.regexp\"},\"4\":{\"name\":\"constant.character.numeric.regexp\"},\"5\":{\"name\":\"constant.character.control.regexp\"},\"6\":{\"name\":\"constant.character.escape.backslash.regexp\"}},\"match\":\"(?:.|(\\\\\\\\\\\\\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\\\\\\\\\\\\\c[A-Z])|(\\\\\\\\\\\\\\\\.))\\\\\\\\-(?:[^\\\\\\\\]\\\\\\\\\\\\\\\\]|(\\\\\\\\\\\\\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\\\\\\\\\\\\\c[A-Z])|(\\\\\\\\\\\\\\\\.))\",\"name\":\"constant.other.character-class.range.regexp\"},{\"include\":\"#regex-character-class\"}]},{\"include\":\"#regex-character-class\"},{\"include\":\"#interpolated_coffee\"},{\"include\":\"#embedded_comment\"}]},\"instance_variable\":{\"patterns\":[{\"match\":\"(@)([a-zA-Z_\\\\\\\\$]\\\\\\\\w*)?\",\"name\":\"variable.other.readwrite.instance.coffee\"}]},\"interpolated_coffee\":{\"patterns\":[{\"begin\":\"\\\\\\\\#\\\\\\\\{\",\"captures\":{\"0\":{\"name\":\"punctuation.section.embedded.coffee\"}},\"end\":\"\\\\\\\\}\",\"name\":\"source.coffee.embedded.source\",\"patterns\":[{\"include\":\"$self\"}]}]},\"jsx\":{\"patterns\":[{\"include\":\"#jsx-tag\"},{\"include\":\"#jsx-end-tag\"}]},\"jsx-attribute\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.coffee\"},\"2\":{\"name\":\"keyword.operator.assignment.coffee\"}},\"match\":\"(?:^|\\\\\\\\s+)([-\\\\\\\\w.]+)\\\\\\\\s*(=)\"},{\"include\":\"#double_quoted_string\"},{\"include\":\"#single_quoted_string\"},{\"include\":\"#jsx-expression\"}]},\"jsx-end-tag\":{\"patterns\":[{\"begin\":\"(</)([-\\\\\\\\w\\\\\\\\.]+)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.coffee\"},\"2\":{\"name\":\"entity.name.tag.coffee\"}},\"end\":\"(/?>)\",\"name\":\"meta.tag.coffee\"}]},\"jsx-expression\":{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.curly.coffee\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.curly.coffee\"}},\"patterns\":[{\"include\":\"#double_quoted_string\"},{\"include\":\"$self\"}]},\"jsx-tag\":{\"patterns\":[{\"begin\":\"(<)([-\\\\\\\\w\\\\\\\\.]+)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.coffee\"},\"2\":{\"name\":\"entity.name.tag.coffee\"}},\"end\":\"(/?>)\",\"name\":\"meta.tag.coffee\",\"patterns\":[{\"include\":\"#jsx-attribute\"}]}]},\"method_calls\":{\"patterns\":[{\"begin\":\"(?:(\\\\\\\\.)|(::))\\\\\\\\s*([\\\\\\\\w$]+)\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.method.period.coffee\"},\"2\":{\"name\":\"keyword.operator.prototype.coffee\"},\"3\":{\"patterns\":[{\"include\":\"#method_names\"}]}},\"end\":\"(?<=\\\\\\\\))\",\"name\":\"meta.method-call.coffee\",\"patterns\":[{\"include\":\"#arguments\"}]},{\"begin\":\"(?:(\\\\\\\\.)|(::))\\\\\\\\s*([\\\\\\\\w$]+)\\\\\\\\s*(?=\\\\\\\\s+(?!(?<![\\\\\\\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\\\\\\\w$]))(?=(@|@?[\\\\\\\\w$]+|[=-]>|\\\\\\\\-\\\\\\\\d|\\\\\\\\[|{|\\\\\"|')))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.method.period.coffee\"},\"2\":{\"name\":\"keyword.operator.prototype.coffee\"},\"3\":{\"patterns\":[{\"include\":\"#method_names\"}]}},\"end\":\"(?=\\\\\\\\s*(?<![\\\\\\\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\\\\\\\w$]))|(?=\\\\\\\\s*(}|\\\\\\\\]|\\\\\\\\)|#|$))\",\"name\":\"meta.method-call.coffee\",\"patterns\":[{\"include\":\"#arguments\"}]}]},\"method_names\":{\"patterns\":[{\"match\":\"\\\\\\\\bon(Rowsinserted|Rowsdelete|Rowenter|Rowexit|Resize|Resizestart|Resizeend|Reset|Readystatechange|Mouseout|Mouseover|Mousedown|Mouseup|Mousemove|Before(cut|deactivate|unload|update|paste|print|editfocus|activate)|Blur|Scrolltop|Submit|Select|Selectstart|Selectionchange|Hover|Help|Change|Contextmenu|Controlselect|Cut|Cellchange|Clock|Close|Deactivate|Datasetchanged|Datasetcomplete|Dataavailable|Drop|Drag|Dragstart|Dragover|Dragdrop|Dragenter|Dragend|Dragleave|Dblclick|Unload|Paste|Propertychange|Error|Errorupdate|Keydown|Keyup|Keypress|Focus|Load|Activate|Afterupdate|Afterprint|Abort)\\\\\\\\b\",\"name\":\"support.function.event-handler.coffee\"},{\"match\":\"\\\\\\\\b(shift|showModelessDialog|showModalDialog|showHelp|scroll|scrollX|scrollByPages|scrollByLines|scrollY|scrollTo|stop|strike|sizeToContent|sidebar|signText|sort|sup|sub|substr|substring|splice|split|send|set(Milliseconds|Seconds|Minutes|Hours|Month|Year|FullYear|Date|UTC(Milliseconds|Seconds|Minutes|Hours|Month|FullYear|Date)|Time|Hotkeys|Cursor|ZOptions|Active|Resizable|RequestHeader)|search|slice|savePreferences|small|home|handleEvent|navigate|char|charCodeAt|charAt|concat|contextual|confirm|compile|clear|captureEvents|call|createStyleSheet|createPopup|createEventObject|to(GMTString|UTCString|String|Source|UpperCase|LowerCase|LocaleString)|test|taint|taintEnabled|indexOf|italics|disableExternalCapture|dump|detachEvent|unshift|untaint|unwatch|updateCommands|join|javaEnabled|pop|push|plugins.refresh|paddings|parse|print|prompt|preference|enableExternalCapture|exec|execScript|valueOf|UTC|find|file|fileModifiedDate|fileSize|fileCreatedDate|fileUpdatedDate|fixed|fontsize|fontcolor|forward|fromCharCode|watch|link|load|lastIndexOf|anchor|attachEvent|atob|apply|alert|abort|routeEvents|resize|resizeBy|resizeTo|recalc|returnValue|replace|reverse|reload|releaseCapture|releaseEvents|go|get(Milliseconds|Seconds|Minutes|Hours|Month|Day|Year|FullYear|Time|Date|TimezoneOffset|UTC(Milliseconds|Seconds|Minutes|Hours|Day|Month|FullYear|Date)|Attention|Selection|ResponseHeader|AllResponseHeaders)|moveBy|moveBelow|moveTo|moveToAbsolute|moveAbove|mergeAttributes|match|margins|btoa|big|bold|borderWidths|blink|back)\\\\\\\\b\",\"name\":\"support.function.coffee\"},{\"match\":\"\\\\\\\\b(acceptNode|add|addEventListener|addTextTrack|adoptNode|after|animate|append|appendChild|appendData|before|blur|canPlayType|captureStream|caretPositionFromPoint|caretRangeFromPoint|checkValidity|clear|click|cloneContents|cloneNode|cloneRange|close|closest|collapse|compareBoundaryPoints|compareDocumentPosition|comparePoint|contains|convertPointFromNode|convertQuadFromNode|convertRectFromNode|createAttribute|createAttributeNS|createCaption|createCDATASection|createComment|createContextualFragment|createDocument|createDocumentFragment|createDocumentType|createElement|createElementNS|createEntityReference|createEvent|createExpression|createHTMLDocument|createNodeIterator|createNSResolver|createProcessingInstruction|createRange|createShadowRoot|createTBody|createTextNode|createTFoot|createTHead|createTreeWalker|delete|deleteCaption|deleteCell|deleteContents|deleteData|deleteRow|deleteTFoot|deleteTHead|detach|disconnect|dispatchEvent|elementFromPoint|elementsFromPoint|enableStyleSheetsForSet|entries|evaluate|execCommand|exitFullscreen|exitPointerLock|expand|extractContents|fastSeek|firstChild|focus|forEach|get|getAll|getAnimations|getAttribute|getAttributeNames|getAttributeNode|getAttributeNodeNS|getAttributeNS|getBoundingClientRect|getBoxQuads|getClientRects|getContext|getDestinationInsertionPoints|getElementById|getElementsByClassName|getElementsByName|getElementsByTagName|getElementsByTagNameNS|getItem|getNamedItem|getSelection|getStartDate|getVideoPlaybackQuality|has|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasFeature|hasFocus|importNode|initEvent|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|insertBefore|insertCell|insertData|insertNode|insertRow|intersectsNode|isDefaultNamespace|isEqualNode|isPointInRange|isSameNode|item|key|keys|lastChild|load|lookupNamespaceURI|lookupPrefix|matches|move|moveAttribute|moveAttributeNode|moveChild|moveNamedItem|namedItem|nextNode|nextSibling|normalize|observe|open|parentNode|pause|play|postMessage|prepend|preventDefault|previousNode|previousSibling|probablySupportsContext|queryCommandEnabled|queryCommandIndeterm|queryCommandState|queryCommandSupported|queryCommandValue|querySelector|querySelectorAll|registerContentHandler|registerElement|registerProtocolHandler|releaseCapture|releaseEvents|remove|removeAttribute|removeAttributeNode|removeAttributeNS|removeChild|removeEventListener|removeItem|replace|replaceChild|replaceData|replaceWith|reportValidity|requestFullscreen|requestPointerLock|reset|scroll|scrollBy|scrollIntoView|scrollTo|seekToNextFrame|select|selectNode|selectNodeContents|set|setAttribute|setAttributeNode|setAttributeNodeNS|setAttributeNS|setCapture|setCustomValidity|setEnd|setEndAfter|setEndBefore|setItem|setNamedItem|setRangeText|setSelectionRange|setSinkId|setStart|setStartAfter|setStartBefore|slice|splitText|stepDown|stepUp|stopImmediatePropagation|stopPropagation|submit|substringData|supports|surroundContents|takeRecords|terminate|toBlob|toDataURL|toggle|toString|values|write|writeln)\\\\\\\\b\",\"name\":\"support.function.dom.coffee\"},{\"match\":\"[a-zA-Z_$][\\\\\\\\w$]*\",\"name\":\"entity.name.function.coffee\"},{\"match\":\"\\\\\\\\d[\\\\\\\\w$]*\",\"name\":\"invalid.illegal.identifier.coffee\"}]},\"numbers\":{\"patterns\":[{\"match\":\"\\\\\\\\b(?<!\\\\\\\\$)0(x|X)[0-9a-fA-F]+\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.numeric.hex.coffee\"},{\"match\":\"\\\\\\\\b(?<!\\\\\\\\$)0(b|B)[01]+\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.numeric.binary.coffee\"},{\"match\":\"\\\\\\\\b(?<!\\\\\\\\$)0(o|O)?[0-7]+\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.numeric.octal.coffee\"},{\"captures\":{\"0\":{\"name\":\"constant.numeric.decimal.coffee\"},\"1\":{\"name\":\"punctuation.separator.decimal.period.coffee\"},\"2\":{\"name\":\"punctuation.separator.decimal.period.coffee\"},\"3\":{\"name\":\"punctuation.separator.decimal.period.coffee\"},\"4\":{\"name\":\"punctuation.separator.decimal.period.coffee\"},\"5\":{\"name\":\"punctuation.separator.decimal.period.coffee\"},\"6\":{\"name\":\"punctuation.separator.decimal.period.coffee\"}},\"match\":\"(?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9]+(\\\\\\\\.)[0-9]+[eE][+-]?[0-9]+\\\\\\\\b)|(?:\\\\\\\\b[0-9]+(\\\\\\\\.)[eE][+-]?[0-9]+\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9]+[eE][+-]?[0-9]+\\\\\\\\b)|(?:\\\\\\\\b[0-9]+[eE][+-]?[0-9]+\\\\\\\\b)|(?:\\\\\\\\b[0-9]+(\\\\\\\\.)[0-9]+\\\\\\\\b)|(?:\\\\\\\\b[0-9]+(?=\\\\\\\\.{2,3}))|(?:\\\\\\\\b[0-9]+(\\\\\\\\.)\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9]+\\\\\\\\b)|(?:\\\\\\\\b[0-9]+\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$)\"}]},\"objects\":{\"patterns\":[{\"match\":\"[A-Z][A-Z0-9_$]*(?=\\\\\\\\s*\\\\\\\\??(\\\\\\\\.\\\\\\\\s*[a-zA-Z_$]\\\\\\\\w*|::))\",\"name\":\"constant.other.object.coffee\"},{\"match\":\"[a-zA-Z_$][\\\\\\\\w$]*(?=\\\\\\\\s*\\\\\\\\??(\\\\\\\\.\\\\\\\\s*[a-zA-Z_$]\\\\\\\\w*|::))\",\"name\":\"variable.other.object.coffee\"}]},\"operators\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.assignment.coffee\"},\"2\":{\"name\":\"keyword.operator.assignment.compound.coffee\"}},\"match\":\"(?:([a-zA-Z$_][\\\\\\\\w$]*)?\\\\\\\\s+|(?<![\\\\\\\\w$]))(and=|or=)\"},{\"captures\":{\"1\":{\"name\":\"variable.assignment.coffee\"},\"2\":{\"name\":\"keyword.operator.assignment.compound.coffee\"}},\"match\":\"([a-zA-Z$_][\\\\\\\\w$]*)?\\\\\\\\s*(%=|\\\\\\\\+=|-=|\\\\\\\\*=|&&=|\\\\\\\\|\\\\\\\\|=|\\\\\\\\?=|(?<!\\\\\\\\()/=)\"},{\"captures\":{\"1\":{\"name\":\"variable.assignment.coffee\"},\"2\":{\"name\":\"keyword.operator.assignment.compound.bitwise.coffee\"}},\"match\":\"([a-zA-Z$_][\\\\\\\\w$]*)?\\\\\\\\s*(&=|\\\\\\\\^=|<<=|>>=|>>>=|\\\\\\\\|=)\"},{\"match\":\"<<|>>>|>>\",\"name\":\"keyword.operator.bitwise.shift.coffee\"},{\"match\":\"!=|<=|>=|==|<|>\",\"name\":\"keyword.operator.comparison.coffee\"},{\"match\":\"&&|!|\\\\\\\\|\\\\\\\\|\",\"name\":\"keyword.operator.logical.coffee\"},{\"match\":\"&|\\\\\\\\||\\\\\\\\^|~\",\"name\":\"keyword.operator.bitwise.coffee\"},{\"captures\":{\"1\":{\"name\":\"variable.assignment.coffee\"},\"2\":{\"name\":\"keyword.operator.assignment.coffee\"}},\"match\":\"([a-zA-Z$_][\\\\\\\\w$]*)?\\\\\\\\s*(=|:(?!:))(?![>=])\"},{\"match\":\"--\",\"name\":\"keyword.operator.decrement.coffee\"},{\"match\":\"\\\\\\\\+\\\\\\\\+\",\"name\":\"keyword.operator.increment.coffee\"},{\"match\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"name\":\"keyword.operator.splat.coffee\"},{\"match\":\"\\\\\\\\?\",\"name\":\"keyword.operator.existential.coffee\"},{\"match\":\"%|\\\\\\\\*|/|-|\\\\\\\\+\",\"name\":\"keyword.operator.coffee\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.logical.coffee\"},\"2\":{\"name\":\"keyword.operator.comparison.coffee\"}},\"match\":\"\\\\\\\\b(?<![\\\\\\\\.\\\\\\\\$])(?:(and|or|not)|(is|isnt))(?!\\\\\\\\s*:)\\\\\\\\b\"}]},\"properties\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.property.period.coffee\"},\"2\":{\"name\":\"keyword.operator.prototype.coffee\"},\"3\":{\"name\":\"constant.other.object.property.coffee\"}},\"match\":\"(?:(\\\\\\\\.)|(::))\\\\\\\\s*([A-Z][A-Z0-9_$]*\\\\\\\\b\\\\\\\\$*)(?=\\\\\\\\s*\\\\\\\\??(\\\\\\\\.\\\\\\\\s*[a-zA-Z_$]\\\\\\\\w*|::))\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.property.period.coffee\"},\"2\":{\"name\":\"keyword.operator.prototype.coffee\"},\"3\":{\"name\":\"variable.other.object.property.coffee\"}},\"match\":\"(?:(\\\\\\\\.)|(::))\\\\\\\\s*(\\\\\\\\$*[a-zA-Z_$][\\\\\\\\w$]*)(?=\\\\\\\\s*\\\\\\\\??(\\\\\\\\.\\\\\\\\s*[a-zA-Z_$]\\\\\\\\w*|::))\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.property.period.coffee\"},\"2\":{\"name\":\"keyword.operator.prototype.coffee\"},\"3\":{\"name\":\"constant.other.property.coffee\"}},\"match\":\"(?:(\\\\\\\\.)|(::))\\\\\\\\s*([A-Z][A-Z0-9_$]*\\\\\\\\b\\\\\\\\$*)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.property.period.coffee\"},\"2\":{\"name\":\"keyword.operator.prototype.coffee\"},\"3\":{\"name\":\"variable.other.property.coffee\"}},\"match\":\"(?:(\\\\\\\\.)|(::))\\\\\\\\s*(\\\\\\\\$*[a-zA-Z_$][\\\\\\\\w$]*)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.property.period.coffee\"},\"2\":{\"name\":\"keyword.operator.prototype.coffee\"},\"3\":{\"name\":\"invalid.illegal.identifier.coffee\"}},\"match\":\"(?:(\\\\\\\\.)|(::))\\\\\\\\s*([0-9][\\\\\\\\w$]*)\"}]},\"regex-character-class\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[wWsSdD]|\\\\\\\\.\",\"name\":\"constant.character.character-class.regexp\"},{\"match\":\"\\\\\\\\\\\\\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})\",\"name\":\"constant.character.numeric.regexp\"},{\"match\":\"\\\\\\\\\\\\\\\\c[A-Z]\",\"name\":\"constant.character.control.regexp\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.backslash.regexp\"}]},\"single_quoted_string\":{\"patterns\":[{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.coffee\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.coffee\"}},\"name\":\"string.quoted.single.coffee\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.escape.backslash.coffee\"}},\"match\":\"(\\\\\\\\\\\\\\\\)(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)\",\"name\":\"constant.character.escape.backslash.coffee\"}]}]}},\"scopeName\":\"source.coffee\",\"embeddedLangs\":[\"javascript\"],\"aliases\":[\"coffeescript\"]}`)),a=[...e,t];export{a as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DKXYxT9g.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Fortran (Free Form)\",\"fileTypes\":[\"f90\",\"F90\",\"f95\",\"F95\",\"f03\",\"F03\",\"f08\",\"F08\",\"f18\",\"F18\",\"fpp\",\"FPP\",\".pf\",\".PF\"],\"firstLineMatch\":\"(?i)-[*]- mode: fortran free -[*]-\",\"injections\":{\"source.fortran.free - ( string | comment | meta.preprocessor )\":{\"patterns\":[{\"include\":\"#line-continuation-operator\"},{\"include\":\"#preprocessor\"}]},\"string.quoted.double.fortran\":{\"patterns\":[{\"include\":\"#string-line-continuation-operator\"}]},\"string.quoted.single.fortran\":{\"patterns\":[{\"include\":\"#string-line-continuation-operator\"}]}},\"name\":\"fortran-free-form\",\"patterns\":[{\"include\":\"#preprocessor\"},{\"include\":\"#comments\"},{\"include\":\"#constants\"},{\"include\":\"#operators\"},{\"include\":\"#array-constructor\"},{\"include\":\"#parentheses\"},{\"include\":\"#include-statement\"},{\"include\":\"#import-statement\"},{\"include\":\"#block-data-definition\"},{\"include\":\"#function-definition\"},{\"include\":\"#module-definition\"},{\"include\":\"#program-definition\"},{\"include\":\"#submodule-definition\"},{\"include\":\"#subroutine-definition\"},{\"include\":\"#procedure-definition\"},{\"include\":\"#derived-type-definition\"},{\"include\":\"#enum-block-construct\"},{\"include\":\"#interface-block-constructs\"},{\"include\":\"#procedure-specification-statement\"},{\"include\":\"#type-specification-statements\"},{\"include\":\"#specification-statements\"},{\"include\":\"#control-constructs\"},{\"include\":\"#control-statements\"},{\"include\":\"#execution-statements\"},{\"include\":\"#intrinsic-functions\"},{\"include\":\"#variable\"}],\"repository\":{\"IO-item-list\":{\"begin\":\"(?i)(?=\\\\\\\\s*[a-z0-9\\\\\"'])\",\"comment\":\"Name list.\",\"contentName\":\"meta.name-list.fortran\",\"end\":\"(?=[\\\\\\\\);!\\\\\\\\n])\",\"patterns\":[{\"include\":\"#constants\"},{\"include\":\"#operators\"},{\"include\":\"#intrinsic-functions\"},{\"include\":\"#array-constructor\"},{\"include\":\"#parentheses\"},{\"include\":\"#brackets\"},{\"include\":\"#assignment-keyword\"},{\"include\":\"#operator-keyword\"},{\"include\":\"#variable\"}]},\"IO-keywords\":{\"begin\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(?:(read)|(write))\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.generic-spec.read.fortran\"},\"2\":{\"name\":\"keyword.control.generic-spec.write.fortran\"},\"3\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"comment\":\"IO generic specification.\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.generic-spec.formatted.fortran\"},\"2\":{\"name\":\"keyword.control.generic-spec.unformatted.fortran\"}},\"match\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(?:(formatted)|(unformatted))\\\\\\\\b\"},{\"include\":\"#invalid-word\"}]},\"IO-statements\":{\"patterns\":[{\"begin\":\"(?ix)\\\\\\\\b(?:(backspace)|(close)|(endfile)|(format)|(inquire)|(open)|(read)|(rewind)|(write))\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.backspace.fortran\"},\"2\":{\"name\":\"keyword.control.close.fortran\"},\"3\":{\"name\":\"keyword.control.endfile.fortran\"},\"4\":{\"name\":\"keyword.control.format.fortran\"},\"5\":{\"name\":\"keyword.control.inquire.fortran\"},\"6\":{\"name\":\"keyword.control.open.fortran\"},\"7\":{\"name\":\"keyword.control.read.fortran\"},\"8\":{\"name\":\"keyword.control.rewind.fortran\"},\"9\":{\"name\":\"keyword.control.write.fortran\"},\"10\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"comment\":\"Introduced in the Fortran 1977 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"name\":\"meta.statement.IO.fortran\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"},{\"include\":\"#IO-item-list\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.backspace.fortran\"},\"2\":{\"name\":\"keyword.control.endfile.fortran\"},\"3\":{\"name\":\"keyword.control.format.fortran\"},\"4\":{\"name\":\"keyword.control.print.fortran\"},\"5\":{\"name\":\"keyword.control.read.fortran\"},\"6\":{\"name\":\"keyword.control.rewind.fortran\"}},\"comment\":\"Introduced in the Fortran 1977 standard.\",\"match\":\"(?i)\\\\\\\\b(?:(backspace)|(endfile)|(format)|(print)|(read)|(rewind))\\\\\\\\b\"},{\"begin\":\"(?i)\\\\\\\\b(?:(flush)|(wait))\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.flush.fortran\"},\"2\":{\"name\":\"keyword.control.wait.fortran\"},\"3\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"comment\":\"Introduced in the Fortran 2003 standard.\",\"end\":\"(?<!\\\\\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.flush.fortran\"}},\"comment\":\"Introduced in the Fortran 2003 standard.\",\"match\":\"(?i)\\\\\\\\b(flush)\\\\\\\\b\"}]},\"abstract-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.fortran.fortran\"}},\"comment\":\"Introduced in the Fortran 2003 standard.\",\"match\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(abstract)\\\\\\\\b\"},\"abstract-interface-block-construct\":{\"begin\":\"(?i)\\\\\\\\b(abstract)\\\\\\\\s+(interface)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.attribute.fortran.modern\"},\"2\":{\"name\":\"keyword.control.interface.fortran\"}},\"comment\":\"Introduced in the Fortran 2003 standard.\",\"end\":\"(?i)\\\\\\\\b(end\\\\\\\\s*interface)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endinterface.fortran.modern\"}},\"name\":\"meta.interface.abstract.fortran\",\"patterns\":[{\"include\":\"$base\"}]},\"access-attribute\":{\"patterns\":[{\"include\":\"#private-attribute\"},{\"include\":\"#public-attribute\"}]},\"allocatable-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.allocatable.fortran\"}},\"comment\":\"Introduced in the Fortran 1990 standard.\",\"match\":\"(?i)\\\\\\\\s*\\\\\\\\b(allocatable)\\\\\\\\b\"},\"allocate-statement\":{\"begin\":\"(?i)\\\\\\\\b(allocate)\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.allocate.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"comment\":\"Introduced in the Fortran 1990 standard.\",\"end\":\"(?<!\\\\\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"name\":\"meta.statement.allocate.fortran\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},\"arithmetic-operators\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.subtraction.fortran\"},\"2\":{\"name\":\"keyword.operator.addition.fortran\"},\"3\":{\"name\":\"keyword.operator.division.fortran\"},\"4\":{\"name\":\"keyword.operator.power.fortran\"},\"5\":{\"name\":\"keyword.operator.multiplication.fortran\"}},\"comment\":\"Introduced in the Fortran 1977 standard.\",\"match\":\"(\\\\\\\\-)|(\\\\\\\\+)|\\\\\\\\/(?!\\\\\\\\/|\\\\\\\\=|\\\\\\\\\\\\\\\\)|(\\\\\\\\*\\\\\\\\*)|(\\\\\\\\*)\"},\"array-constructor\":{\"begin\":\"(?=\\\\\\\\s*(\\\\\\\\[|\\\\\\\\(\\\\\\\\/))\",\"end\":\"(?<!\\\\\\\\G)\",\"name\":\"meta.contructor.array\",\"patterns\":[{\"include\":\"#brackets\"},{\"begin\":\"\\\\\\\\s*(\\\\\\\\(\\\\\\\\/)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.bracket.left.fortran\"}},\"end\":\"(\\\\\\\\/\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.bracket.left.fortran\"}},\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#constants\"},{\"include\":\"#operators\"},{\"include\":\"#array-constructor\"},{\"include\":\"#parentheses\"},{\"include\":\"#intrinsic-functions\"},{\"include\":\"#variable\"}]}]},\"assign-statement\":{\"patterns\":[{\"begin\":\"(?i)\\\\\\\\b(assign)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.assign.fortran\"}},\"comment\":\"Introduced in the Fortran 1977 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.statement.control.assign.fortran\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.to.fortran\"}},\"match\":\"(?i)\\\\\\\\s*\\\\\\\\b(to)\\\\\\\\b\"},{\"include\":\"$base\"}]}]},\"assignment-keyword\":{\"begin\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(assignment)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.generic-spec.assignment.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"comment\":\"Assignment generic specification.\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#assignment-operator\"},{\"include\":\"#invalid-word\"}]},\"assignment-operator\":{\"comment\":\"Introduced in the Fortran 1977 standard.\",\"match\":\"(?<!\\\\\\\\/|\\\\\\\\=|\\\\\\\\<|\\\\\\\\>)(\\\\\\\\=)(?!\\\\\\\\=|\\\\\\\\>)\",\"name\":\"keyword.operator.assignment.fortran\"},\"associate-construct\":{\"begin\":\"(?i)\\\\\\\\b(associate)\\\\\\\\b(?=\\\\\\\\s*\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.associate.fortran\"}},\"comment\":\"Introduced in the Fortran 2003 standard.\",\"contentName\":\"meta.block.associate.fortran\",\"end\":\"(?i)\\\\\\\\b(end\\\\\\\\s*associate)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endassociate.fortran\"}},\"patterns\":[{\"include\":\"$base\"}]},\"asynchronous-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.asynchronous.fortran\"}},\"comment\":\"Introduced in the Fortran 2003 standard.\",\"match\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(asynchronous)\\\\\\\\b\"},\"attribute-specification-statement\":{\"begin\":\"(?ix)(?=\\\\\\\\b(?:allocatable|asynchronous|contiguous |external|intrinsic|optional|parameter|pointer|private|protected|public|save|target|value|volatile)\\\\\\\\b |(bind|dimension|intent)\\\\\\\\s*\\\\\\\\( |(codimension)\\\\\\\\s*\\\\\\\\[)\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.statement.attribute-specification.fortran\",\"patterns\":[{\"include\":\"#access-attribute\"},{\"include\":\"#allocatable-attribute\"},{\"include\":\"#asynchronous-attribute\"},{\"include\":\"#codimension-attribute\"},{\"include\":\"#contiguous-attribute\"},{\"include\":\"#dimension-attribute\"},{\"include\":\"#external-attribute\"},{\"include\":\"#intent-attribute\"},{\"include\":\"#intrinsic-attribute\"},{\"include\":\"#language-binding-attribute\"},{\"include\":\"#optional-attribute\"},{\"include\":\"#parameter-attribute\"},{\"include\":\"#pointer-attribute\"},{\"include\":\"#protected-attribute\"},{\"include\":\"#save-attribute\"},{\"include\":\"#target-attribute\"},{\"include\":\"#value-attribute\"},{\"include\":\"#volatile-attribute\"},{\"begin\":\"(?=\\\\\\\\s*::)\",\"comment\":\"Attribute list.\",\"contentName\":\"meta.attribute-list.normal.fortran\",\"end\":\"(::)|(?=[;!\\\\\\\\n])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"patterns\":[{\"include\":\"#invalid-word\"}]},{\"include\":\"#name-list\"}]},\"block-construct\":{\"begin\":\"(?i)\\\\\\\\b(block)\\\\\\\\b(?!\\\\\\\\s*\\\\\\\\bdata\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.associate.fortran\"}},\"comment\":\"Introduced in the Fortran 2008 standard.\",\"contentName\":\"meta.block.block.fortran\",\"end\":\"(?i)\\\\\\\\b(end\\\\\\\\s*block)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endassociate.fortran\"}},\"patterns\":[{\"include\":\"$base\"}]},\"block-data-definition\":{\"begin\":\"(?i)\\\\\\\\b(block\\\\\\\\s*data)\\\\\\\\b(?:\\\\\\\\s+([a-z]\\\\\\\\w*)\\\\\\\\b)?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.block-data.fortran\"},\"2\":{\"name\":\"entity.name.block-data.fortran\"}},\"end\":\"(?ix)\\\\\\\\b(?:(end\\\\\\\\s*block\\\\\\\\s*data)(?:\\\\\\\\s+(\\\\\\\\2))?|(end))\\\\\\\\b (?:\\\\\\\\s*(\\\\\\\\S((?!\\\\\\\\n).)*))?\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end-block-data.fortran\"},\"2\":{\"name\":\"entity.name.block-data.fortran\"},\"3\":{\"name\":\"keyword.control.end-block-data.fortran\"},\"4\":{\"name\":\"invalid.error.block-data-definition.fortran\"}},\"name\":\"meta.block-data.fortran\",\"patterns\":[{\"include\":\"$base\"}]},\"brackets\":{\"begin\":\"\\\\\\\\s*(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.bracket.left.fortran\"}},\"end\":\"(\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.bracket.left.fortran\"}},\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#constants\"},{\"include\":\"#operators\"},{\"include\":\"#array-constructor\"},{\"include\":\"#parentheses\"},{\"include\":\"#intrinsic-functions\"},{\"include\":\"#variable\"}]},\"call-statement\":{\"patterns\":[{\"begin\":\"(?i)\\\\\\\\s*\\\\\\\\b(call)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.call.fortran\"}},\"comment\":\"Introduced in the Fortran 1977 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.statement.control.call.fortran\",\"patterns\":[{\"begin\":\"(?ix)\\\\\\\\G\\\\\\\\s*([a-z]\\\\\\\\w*)(%)([a-z]\\\\\\\\w*)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.fortran\"},\"2\":{\"name\":\"keyword.accessor.fortran\"},\"3\":{\"name\":\"entity.name.function.subroutine.fortran\"}},\"comment\":\"type-bound subroutines\",\"end\":\"(?<!\\\\\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"include\":\"#intrinsic-subroutines\"},{\"begin\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b([a-z]\\\\\\\\w*)\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.subroutine.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"comment\":\"User defined subroutine.\",\"end\":\"(?<!\\\\\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"captures\":{\"1\":{\"name\":\"entity.name.function.subroutine.fortran\"}},\"comment\":\"User defined subroutine.\",\"match\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b([a-z]\\\\\\\\w*)\\\\\\\\b(?=\\\\\\\\s*[;!\\\\\\\\n])\"},{\"include\":\"$base\"}]}]},\"character-type\":{\"comment\":\"Introduced in the Fortran 1977 standard.\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\b(character)\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.character.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"contentName\":\"meta.type-spec.fortran\",\"end\":\"(?<!\\\\\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.character.fortran\"},\"2\":{\"name\":\"keyword.operator.multiplication.fortran\"},\"3\":{\"name\":\"constant.numeric.fortran\"}},\"match\":\"(?i)\\\\\\\\b(character)\\\\\\\\b(?:\\\\\\\\s*(\\\\\\\\*)\\\\\\\\s*(\\\\\\\\d*))?\"}]},\"codimension-attribute\":{\"begin\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(codimension)(?=\\\\\\\\s*\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.codimension.fortran\"}},\"comment\":\"Introduced in the Fortran 2008 standard.\",\"end\":\"(?<!\\\\\\\\G)\",\"patterns\":[{\"include\":\"#brackets\"}]},\"comments\":{\"begin\":\"!\",\"end\":\"(?=\\\\\\\\n)\",\"name\":\"comment.line.fortran\"},\"common-statement\":{\"begin\":\"(?i)\\\\\\\\b(common)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.common.fortran\"}},\"end\":\"(?=[;!\\\\\\\\n])\",\"patterns\":[{\"include\":\"$base\"}]},\"concurrent-attribute\":{\"begin\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(concurrent)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.while.fortran\"}},\"comment\":\"Introduced in the Fortran 2003 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"patterns\":[{\"include\":\"#parentheses\"},{\"include\":\"#invalid-word\"}]},\"constants\":{\"patterns\":[{\"include\":\"#logical-constant\"},{\"include\":\"#numeric-constant\"},{\"include\":\"#string-constant\"}]},\"contiguous-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.contigous.fortran\"}},\"comment\":\"Introduced in the Fortran 2008 standard.\",\"match\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(contiguous)\\\\\\\\b\"},\"continue-statement\":{\"patterns\":[{\"begin\":\"(?i)\\\\\\\\s*\\\\\\\\b(continue)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.continue.fortran\"}},\"comment\":\"Introduced in the Fortran 1977 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.statement.control.continue.fortran\",\"patterns\":[{\"include\":\"#invalid-character\"}]}]},\"control-constructs\":{\"patterns\":[{\"include\":\"#named-control-constructs\"},{\"include\":\"#unnamed-control-constructs\"}]},\"control-statements\":{\"comment\":\"Statements controlling the flow of the program\",\"patterns\":[{\"include\":\"#assign-statement\"},{\"include\":\"#call-statement\"},{\"include\":\"#continue-statement\"},{\"include\":\"#cycle-statement\"},{\"include\":\"#entry-statement\"},{\"include\":\"#error-stop-statement\"},{\"include\":\"#exit-statement\"},{\"include\":\"#goto-statement\"},{\"include\":\"#pause-statement\"},{\"include\":\"#return-statement\"},{\"include\":\"#stop-statement\"},{\"include\":\"#where-statement\"},{\"include\":\"#image-control-statement\"}]},\"cpp-numeric-constant\":{\"captures\":{\"0\":{\"patterns\":[{\"begin\":\"(?=.)\",\"beginCaptures\":{},\"end\":\"$\",\"endCaptures\":{},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.hexadecimal.cpp\"},\"2\":{\"name\":\"constant.numeric.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"4\":{\"name\":\"constant.numeric.hexadecimal.cpp\"},\"5\":{\"name\":\"constant.numeric.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"6\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"7\":{\"name\":\"keyword.other.unit.exponent.hexadecimal.cpp\"},\"8\":{\"name\":\"keyword.operator.plus.exponent.hexadecimal.cpp\"},\"9\":{\"name\":\"keyword.operator.minus.exponent.hexadecimal.cpp\"},\"10\":{\"name\":\"constant.numeric.exponent.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"11\":{\"name\":\"keyword.other.unit.suffix.floating-point.cpp\"},\"12\":{\"name\":\"keyword.other.unit.user-defined.cpp\"}},\"match\":\"(\\\\\\\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9a-fA-F])\\\\\\\\.|\\\\\\\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([pP])((?:\\\\\\\\+)?)((?:\\\\\\\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\\\\\\\w))?((?:\\\\\\\\w(?<![0-9a-fA-FpP])\\\\\\\\w*)?$)\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"2\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"3\":{\"name\":\"constant.numeric.decimal.point.cpp\"},\"4\":{\"name\":\"constant.numeric.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"5\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"6\":{\"name\":\"keyword.other.unit.exponent.decimal.cpp\"},\"7\":{\"name\":\"keyword.operator.plus.exponent.decimal.cpp\"},\"8\":{\"name\":\"keyword.operator.minus.exponent.decimal.cpp\"},\"9\":{\"name\":\"constant.numeric.exponent.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"10\":{\"name\":\"keyword.other.unit.suffix.floating-point.cpp\"},\"11\":{\"name\":\"keyword.other.unit.user-defined.cpp\"}},\"match\":\"\\\\\\\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9])\\\\\\\\.|\\\\\\\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([eE])((?:\\\\\\\\+)?)((?:\\\\\\\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\\\\\\\w))?((?:\\\\\\\\w(?<![0-9eE])\\\\\\\\w*)?$)\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.binary.cpp\"},\"2\":{\"name\":\"constant.numeric.binary.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"4\":{\"name\":\"keyword.other.unit.suffix.integer.cpp\"},\"5\":{\"name\":\"keyword.other.unit.user-defined.cpp\"}},\"match\":\"(\\\\\\\\G0[bB])([01](?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\\\\\\\w))?((?:\\\\\\\\w(?<![0-9])\\\\\\\\w*)?$)\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.octal.cpp\"},\"2\":{\"name\":\"constant.numeric.octal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"4\":{\"name\":\"keyword.other.unit.suffix.integer.cpp\"},\"5\":{\"name\":\"keyword.other.unit.user-defined.cpp\"}},\"match\":\"(\\\\\\\\G0)((?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))+)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\\\\\\\w))?((?:\\\\\\\\w(?<![0-9])\\\\\\\\w*)?$)\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.hexadecimal.cpp\"},\"2\":{\"name\":\"constant.numeric.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"4\":{\"name\":\"keyword.other.unit.exponent.hexadecimal.cpp\"},\"5\":{\"name\":\"keyword.operator.plus.exponent.hexadecimal.cpp\"},\"6\":{\"name\":\"keyword.operator.minus.exponent.hexadecimal.cpp\"},\"7\":{\"name\":\"constant.numeric.exponent.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"8\":{\"name\":\"keyword.other.unit.suffix.integer.cpp\"},\"9\":{\"name\":\"keyword.other.unit.user-defined.cpp\"}},\"match\":\"(\\\\\\\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([pP])((?:\\\\\\\\+)?)((?:\\\\\\\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\\\\\\\w))?((?:\\\\\\\\w(?<![0-9a-fA-FpP])\\\\\\\\w*)?$)\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"2\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"3\":{\"name\":\"keyword.other.unit.exponent.decimal.cpp\"},\"4\":{\"name\":\"keyword.operator.plus.exponent.decimal.cpp\"},\"5\":{\"name\":\"keyword.operator.minus.exponent.decimal.cpp\"},\"6\":{\"name\":\"constant.numeric.exponent.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"7\":{\"name\":\"keyword.other.unit.suffix.integer.cpp\"},\"8\":{\"name\":\"keyword.other.unit.user-defined.cpp\"}},\"match\":\"\\\\\\\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([eE])((?:\\\\\\\\+)?)((?:\\\\\\\\-)?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\\\\\\\w))?((?:\\\\\\\\w(?<![0-9eE])\\\\\\\\w*)?$)\"},{\"match\":\"(?:(?:[0-9a-zA-Z_\\\\\\\\.]|')|(?<=[eEpP])[+-])+\",\"name\":\"invalid.illegal.constant.numeric.cpp\"}]}]}},\"match\":\"(?<!\\\\\\\\w)\\\\\\\\.?\\\\\\\\d(?:(?:[0-9a-zA-Z_\\\\\\\\.]|')|(?<=[eEpP])[+-])*\"},\"critical-construct\":{\"begin\":\"(?i)\\\\\\\\b(critical)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.associate.fortran\"}},\"comment\":\"Introduced in the Fortran 2008 standard.\",\"contentName\":\"meta.block.critical.fortran\",\"end\":\"(?i)\\\\\\\\b(end\\\\\\\\s*critical)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endassociate.fortran\"}},\"patterns\":[{\"include\":\"$base\"}]},\"cycle-statement\":{\"patterns\":[{\"begin\":\"(?i)\\\\\\\\s*\\\\\\\\b(cycle)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.cycle.fortran\"}},\"comment\":\"Introduced in the Fortran 1990 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.statement.control.fortran\",\"patterns\":[]}]},\"data-statement\":{\"begin\":\"(?i)\\\\\\\\b(data)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.data.fortran\"}},\"end\":\"(?=[;!\\\\\\\\n])\",\"patterns\":[{\"include\":\"$base\"}]},\"deallocate-statement\":{\"begin\":\"(?i)\\\\\\\\b(deallocate)\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.deallocate.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"comment\":\"Introduced in the Fortran 1990 standard.\",\"end\":\"(?<!\\\\\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"name\":\"meta.statement.deallocate.fortran\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},\"deferred-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.deferred.fortran\"}},\"comment\":\"Introduced in the Fortran 2003 standard.\",\"match\":\"(?i)\\\\\\\\s*\\\\\\\\b(deferred)\\\\\\\\b\"},\"derived-type\":{\"begin\":\"(?i)\\\\\\\\b(?:(class)|(type))\\\\\\\\s*(\\\\\\\\()\\\\\\\\s*(([a-z]\\\\\\\\w*)|\\\\\\\\*)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.fortran\"},\"2\":{\"name\":\"storage.type.type.fortran\"},\"3\":{\"name\":\"punctuation.parentheses.left.fortran\"},\"4\":{\"name\":\"entity.name.type.fortran\"}},\"comment\":\"Introduced in the Fortran 1995 standard.\",\"contentName\":\"meta.type-spec.fortran\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"name\":\"meta.specification.type.derived.fortran\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},\"derived-type-component-attribute-specification\":{\"begin\":\"(?i)(?=\\\\\\\\s*\\\\\\\\b(?:private|sequence)\\\\\\\\b)\",\"comment\":\"Introduced in the Fortran 1995 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.statement.attribute-specification.fortran\",\"patterns\":[{\"include\":\"#access-attribute\"},{\"include\":\"#sequence-attribute\"},{\"include\":\"#invalid-character\"}]},\"derived-type-component-parameter-specification\":{\"captures\":{\"1\":{\"name\":\"storage.type.integer.fortran\"},\"2\":{\"name\":\"punctuation.comma.fortran\"},\"3\":{\"name\":\"keyword.other.attribute.derived-type.parameter.fortran\"},\"4\":{\"name\":\"keyword.operator.double-colon.fortran\"},\"5\":{\"name\":\"entity.name.derived-type.parameter.fortran\"}},\"comment\":\"Derived type parameter.\",\"match\":\"(?ix)\\\\\\\\b(integer)\\\\\\\\s*(,)\\\\\\\\s*(kind|len)\\\\\\\\s*(?:(::)\\\\\\\\s*([a-z]\\\\\\\\w*)?)?\\\\\\\\s*(?=[;!\\\\\\\\n])\"},\"derived-type-component-procedure-specification\":{\"begin\":\"(?i)(?=\\\\\\\\b(?:procedure)\\\\\\\\b)\",\"comment\":\"Introduced in the Fortran 2003 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.specification.procedure.fortran\",\"patterns\":[{\"include\":\"#procedure-type\"},{\"begin\":\"(?=\\\\\\\\s*(,|::|\\\\\\\\())\",\"comment\":\"Attribute list.\",\"contentName\":\"meta.attribute-list.derived-type-component-procedure.fortran\",\"end\":\"(::)|(?=[;!\\\\\\\\n])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"patterns\":[{\"begin\":\"(,)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=::|[,;!\\\\\\\\n])\",\"patterns\":[{\"include\":\"#access-attribute\"},{\"include\":\"#pass-attribute\"},{\"include\":\"#nopass-attribute\"},{\"include\":\"#invalid-word\"},{\"include\":\"#pointer-attribute\"}]}]},{\"include\":\"#procedure-name-list\"}]},\"derived-type-component-type-specification\":{\"begin\":\"(?ix)(?=\\\\\\\\b(?:character|class|complex|double\\\\\\\\s*precision|double\\\\\\\\s*complex|integer|logical|real|type)\\\\\\\\b(?![^:'\\\\\";!\\\\\\\\n]*\\\\\\\\bfunction\\\\\\\\b))\",\"comment\":\"Introduced in the Fortran 1995 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.specification.derived-type.fortran\",\"patterns\":[{\"include\":\"#types\"},{\"include\":\"#line-continuation-operator\"},{\"begin\":\"(?=\\\\\\\\s*(,|::))\",\"comment\":\"Attribute list.\",\"contentName\":\"meta.attribute-list.derived-type-component-type.fortran\",\"end\":\"(::)|(?=[;!\\\\\\\\n])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"patterns\":[{\"begin\":\"(,)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=::|[,;!\\\\\\\\n])\",\"patterns\":[{\"include\":\"#access-attribute\"},{\"include\":\"#allocatable-attribute\"},{\"include\":\"#codimension-attribute\"},{\"include\":\"#contiguous-attribute\"},{\"include\":\"#dimension-attribute\"},{\"include\":\"#pointer-attribute\"},{\"include\":\"#invalid-word\"}]}]},{\"include\":\"#name-list\"}]},\"derived-type-contains-attribute-specification\":{\"begin\":\"(?i)(?=\\\\\\\\b(?:private)\\\\\\\\b)\",\"comment\":\"Introduced in the Fortran 1995 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.statement.attribute-specification.fortran\",\"patterns\":[{\"include\":\"#access-attribute\"},{\"include\":\"#invalid-character\"}]},\"derived-type-contains-final-procedure-specification\":{\"begin\":\"(?i)\\\\\\\\b(final)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.final-procedure.fortran\"}},\"comment\":\"Introduced in the Fortran 2003 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.specification.procedure.final.fortran\",\"patterns\":[{\"begin\":\"(?=\\\\\\\\s*(::))\",\"comment\":\"Attribute list.\",\"end\":\"(::)|(?=[;!\\\\\\\\n])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"name\":\"meta.attribute-list.derived-type-contains-final-procedure.fortran\",\"patterns\":[{\"include\":\"#invalid-word\"}]},{\"include\":\"#procedure-name\"}]},\"derived-type-contains-generic-procedure-specification\":{\"begin\":\"(?i)\\\\\\\\b(generic)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.procedure.generic.fortran\"}},\"comment\":\"Introduced in the Fortran 2003 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.specification.procedure.generic.fortran\",\"patterns\":[{\"begin\":\"(?=\\\\\\\\s*(,|::|\\\\\\\\())\",\"comment\":\"Attribute list.\",\"contentName\":\"meta.attribute-list.derived-type-contains-generic-procedure.fortran\",\"end\":\"(::)|(?=[;!\\\\\\\\n])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"patterns\":[{\"begin\":\"(,)|^|(?<=&)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=::|[,&;!\\\\\\\\n])\",\"patterns\":[{\"include\":\"#access-attribute\"},{\"include\":\"#invalid-word\"}]}]},{\"begin\":\"(?=\\\\\\\\s*[a-z])\",\"comment\":\"Name list.\",\"contentName\":\"meta.name-list.fortran\",\"end\":\"(?=[;!\\\\\\\\n])\",\"patterns\":[{\"include\":\"#IO-keywords\"},{\"include\":\"#assignment-keyword\"},{\"include\":\"#operator-keyword\"},{\"include\":\"#procedure-name\"},{\"include\":\"#pointer-operators\"}]}]},\"derived-type-contains-procedure-specification\":{\"begin\":\"(?i)(?=\\\\\\\\b(?:procedure)\\\\\\\\b)\",\"comment\":\"Introduced in the Fortran 2003 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.specification.procedure.fortran\",\"patterns\":[{\"include\":\"#procedure-type\"},{\"begin\":\"(?=\\\\\\\\s*(,|::|\\\\\\\\())\",\"comment\":\"Attribute list.\",\"contentName\":\"meta.attribute-list.derived-type-contains-procedure.fortran\",\"end\":\"(::)|(?=[;!\\\\\\\\n])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"patterns\":[{\"begin\":\"(,)|^|(?<=&)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=::|[,&;!\\\\\\\\n])\",\"name\":\"meta.something.fortran\",\"patterns\":[{\"include\":\"#access-attribute\"},{\"include\":\"#deferred-attribute\"},{\"include\":\"#non-overridable-attribute\"},{\"include\":\"#nopass-attribute\"},{\"include\":\"#pass-attribute\"},{\"include\":\"#invalid-word\"}]}]},{\"include\":\"#procedure-name-list\"}]},\"derived-type-definition\":{\"begin\":\"(?i)\\\\\\\\b(type)\\\\\\\\b(?!\\\\\\\\s*(\\\\\\\\(|is\\\\\\\\b|\\\\\\\\=))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.type.fortran\"}},\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.derived-type.definition.fortran\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?=\\\\\\\\s*(,|::))\",\"comment\":\"Attribute list.\",\"contentName\":\"meta.attribute-list.derived-type.fortran\",\"end\":\"(::)|(?=[;!\\\\\\\\n])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"patterns\":[{\"begin\":\"(,)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=::|[,;!\\\\\\\\n])\",\"patterns\":[{\"include\":\"#access-attribute\"},{\"include\":\"#abstract-attribute\"},{\"include\":\"#language-binding-attribute\"},{\"include\":\"#extends-attribute\"},{\"include\":\"#invalid-word\"}]}]},{\"begin\":\"(?i)\\\\\\\\s*\\\\\\\\b([a-z]\\\\\\\\w*)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.type.fortran\"}},\"end\":\"(?i)(?:^|(?<=;))\\\\\\\\s*(end\\\\\\\\s*type)(?:\\\\\\\\s+(?:(\\\\\\\\1)|(\\\\\\\\w+)))?\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endtype.fortran\"},\"2\":{\"name\":\"entity.name.type.fortran\"},\"3\":{\"name\":\"invalid.error.derived-type.fortran\"}},\"patterns\":[{\"include\":\"#dummy-variable-list\"},{\"include\":\"#comments\"},{\"begin\":\"(?i)^(?!\\\\\\\\s*\\\\\\\\b(?:contains|end\\\\\\\\s*type)\\\\\\\\b)\",\"comment\":\"Derived type specification block.\",\"end\":\"(?i)^(?=\\\\\\\\s*\\\\\\\\b(?:contains|end\\\\\\\\s*type)\\\\\\\\b)\",\"name\":\"meta.block.specification.derived-type.fortran\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#derived-type-component-attribute-specification\"},{\"include\":\"#derived-type-component-parameter-specification\"},{\"include\":\"#derived-type-component-procedure-specification\"},{\"include\":\"#derived-type-component-type-specification\"}]},{\"begin\":\"(?i)\\\\\\\\b(contains)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.contains.fortran\"}},\"comment\":\"Derived type contains block.\",\"end\":\"(?i)(?=\\\\\\\\s*end\\\\\\\\s*type\\\\\\\\b)\",\"name\":\"meta.block.contains.fortran\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#derived-type-contains-attribute-specification\"},{\"include\":\"#derived-type-contains-final-procedure-specification\"},{\"include\":\"#derived-type-contains-generic-procedure-specification\"},{\"include\":\"#derived-type-contains-procedure-specification\"}]}]}]},\"derived-type-operators\":{\"captures\":{\"1\":{\"name\":\"keyword.other.selector.fortran\"}},\"comment\":\"Introduced in the Fortran 1995 standard.\",\"match\":\"\\\\\\\\s*(\\\\\\\\%)\"},\"dimension-attribute\":{\"begin\":\"(?i)\\\\\\\\s*\\\\\\\\b(dimension)(?=\\\\\\\\s*\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.dimension.fortran\"}},\"comment\":\"Introduced in the Fortran 1977 standard.\",\"end\":\"(?<!\\\\\\\\G)\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},\"do-construct\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.enddo.fortran\"}},\"match\":\"(?i)\\\\\\\\b(end\\\\\\\\s*do)\\\\\\\\b\"},{\"begin\":\"(?i)\\\\\\\\b(do)\\\\\\\\s+(\\\\\\\\d{1,5})\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.do.fortran\"},\"2\":{\"name\":\"constant.numeric.fortran\"}},\"comment\":\"Introduced in the Fortran 1977 standard.\",\"end\":\"(?i)(?:^|(?<=;))(?=\\\\\\\\s*\\\\\\\\b\\\\\\\\2\\\\\\\\b)\",\"name\":\"meta.do.labeled.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\G(?:\\\\\\\\s*(,)|(?!\\\\\\\\s*[;!\\\\\\\\n]))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"comment\":\"Loop control.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"patterns\":[{\"include\":\"#concurrent-attribute\"},{\"include\":\"#while-attribute\"},{\"include\":\"$base\"}]},{\"include\":\"$base\"}]},{\"begin\":\"(?i)\\\\\\\\b(do)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.do.fortran\"}},\"comment\":\"Introduced in the Fortran 1995 standard.\",\"end\":\"(?i)\\\\\\\\b(?:(continue)|(end\\\\\\\\s*do))\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.continue.fortran\"},\"2\":{\"name\":\"keyword.control.enddo.fortran\"}},\"name\":\"meta.block.do.unlabeled.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\G(?:\\\\\\\\s*(,)|(?!\\\\\\\\s*[;!\\\\\\\\n]))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"comment\":\"Loop control.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.loop-control.fortran\",\"patterns\":[{\"include\":\"#concurrent-attribute\"},{\"include\":\"#while-attribute\"},{\"include\":\"$base\"}]},{\"begin\":\"(?i)(?!\\\\\\\\s*\\\\\\\\b(continue|end\\\\\\\\s*do)\\\\\\\\b)\",\"comment\":\"Loop body.\",\"end\":\"(?i)(?=\\\\\\\\s*\\\\\\\\b(continue|end\\\\\\\\s*do)\\\\\\\\b)\",\"patterns\":[{\"include\":\"$base\"}]}]}]},\"dummy-variable\":{\"captures\":{\"1\":{\"name\":\"variable.parameter.fortran\"}},\"comment\":\"dummy variable\",\"match\":\"(?i)(?:^|(?<=[&,\\\\\\\\(]))\\\\\\\\s*([a-z]\\\\\\\\w*)\"},\"dummy-variable-list\":{\"begin\":\"\\\\\\\\G\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.begin.fortran\"}},\"end\":\"\\\\\\\\)|(?=\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.fortran\"}},\"name\":\"meta.dummy-variable-list\",\"patterns\":[{\"include\":\"#dummy-variable\"}]},\"elemental-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.elemental.fortran\"}},\"comment\":\"Introduced in the Fortran 1990 standard.\",\"match\":\"(?i)\\\\\\\\s*\\\\\\\\b(elemental)\\\\\\\\b\"},\"entry-statement\":{\"patterns\":[{\"begin\":\"(?i)\\\\\\\\s*\\\\\\\\b(entry)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.entry.fortran\"}},\"comment\":\"Introduced in the Fortran 1977 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.statement.control.entry.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\s*\\\\\\\\b([a-z]\\\\\\\\w*)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.entry.fortran\"}},\"end\":\"(?=[;!\\\\\\\\n])\",\"patterns\":[{\"include\":\"#dummy-variable-list\"},{\"include\":\"#result-statement\"},{\"include\":\"#language-binding-attribute\"}]}]}]},\"enum-block-construct\":{\"begin\":\"(?i)\\\\\\\\b(enum)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.enum.fortran\"}},\"comment\":\"Introduced in the Fortran 2003 standard.\",\"end\":\"(?i)\\\\\\\\b(end\\\\\\\\s*enum)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.end-enum.fortran\"}},\"name\":\"meta.enum.fortran\",\"patterns\":[{\"begin\":\"\\\\\\\\G\\\\\\\\s*(,)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=[;!\\\\\\\\n])\",\"patterns\":[{\"include\":\"#language-binding-attribute\"},{\"include\":\"#invalid-word\"}]},{\"begin\":\"(?i)(?!\\\\\\\\s*\\\\\\\\b(end\\\\\\\\s*enum)\\\\\\\\b)\",\"end\":\"(?i)(?=\\\\\\\\b(end\\\\\\\\s*enum)\\\\\\\\b)\",\"name\":\"meta.block.specification.enum.fortran\",\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\"(?ix)\\\\\\\\b(enumerator)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.enumerator.fortran\"}},\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.statement.enumerator-specification.fortran\",\"patterns\":[{\"begin\":\"(?=\\\\\\\\s*(,|::))\",\"comment\":\"Attribute list.\",\"contentName\":\"meta.attribute-list.enum.fortran\",\"end\":\"(::)|(?=[;!\\\\\\\\n])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"patterns\":[{\"include\":\"#invalid-word\"}]},{\"include\":\"#comments\"},{\"include\":\"#name-list\"}]}]}]},\"equivalence-statement\":{\"begin\":\"(?i)\\\\\\\\b(equivalence)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.common.fortran\"}},\"end\":\"(?=[;!\\\\\\\\n])\",\"patterns\":[{\"begin\":\"(?:\\\\\\\\G|(,))\",\"beginCaptures\":{\"1\":{\"name\":\"puntuation.comma.fortran\"}},\"end\":\"(?=[,;!\\\\\\\\n])\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]}]},\"error-stop-statement\":{\"begin\":\"(?i)\\\\\\\\s*\\\\\\\\b(error\\\\\\\\s+stop)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.errorstop.fortran\"}},\"comment\":\"Introduced in the Fortran 2008 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.statement.control.errorstop.fortran\",\"patterns\":[{\"include\":\"#constants\"},{\"include\":\"#string-operators\"},{\"include\":\"#variable\"},{\"include\":\"#invalid-character\"}]},\"event-statement\":{\"begin\":\"(?i)\\\\\\\\b(event post|event wait)\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.event.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"comment\":\"Introduced in the Fortran 2018 standard.\",\"end\":\"(?<!\\\\\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"name\":\"meta.statement.event.fortran\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},\"execution-statements\":{\"patterns\":[{\"include\":\"#allocate-statement\"},{\"include\":\"#deallocate-statement\"},{\"include\":\"#IO-statements\"},{\"include\":\"#nullify-statement\"}]},\"exit-statement\":{\"begin\":\"(?i)\\\\\\\\s*\\\\\\\\b(exit)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.exit.fortran\"}},\"comment\":\"Introduced in the Fortran 1990 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.statement.control.exit.fortran\",\"patterns\":[]},\"explicit-interface-block-construct\":{\"begin\":\"(?i)\\\\\\\\b(interface)\\\\\\\\b(?=\\\\\\\\s*[;!\\\\\\\\n])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.interface.fortran\"}},\"comment\":\"Introduced in the Fortran 1990 standard.\",\"end\":\"(?i)\\\\\\\\b(end\\\\\\\\s*interface)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endinterface.fortran.modern\"}},\"name\":\"meta.interface.explicit.fortran\",\"patterns\":[{\"include\":\"$base\"}]},\"extends-attribute\":{\"begin\":\"(?i)\\\\\\\\s*\\\\\\\\b(extends)\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.extends.fortran\"}},\"end\":\"(?:\\\\\\\\)|(?=\\\\\\\\n))\",\"patterns\":[{\"match\":\"(?i)\\\\\\\\s*\\\\\\\\b([a-z]\\\\\\\\w*)\\\\\\\\b\",\"name\":\"entity.name.type.fortran\"}]},\"external-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.external.fortran\"}},\"comment\":\"Introduced in the Fortran 1977 standard.\",\"match\":\"(?i)\\\\\\\\s*\\\\\\\\b(external)\\\\\\\\b\"},\"fail-image-statement\":{\"captures\":{\"1\":{\"name\":\"keyword.control.fail-image.fortran\"}},\"comment\":\"Introduced in the Fortran 2018 standard.\",\"match\":\"\\\\\\\\b(fail image)\\\\\\\\b\",\"name\":\"meta.statement.fail-image.fortran\"},\"forall-construct\":{\"applyEndPatternLast\":1,\"begin\":\"(?i)\\\\\\\\b(forall)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.forall.fortran\"}},\"comment\":\"Introduced in the Fortran 1995 standard.\",\"end\":\"(?<!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\G(?!\\\\\\\\s*[;!\\\\\\\\n])\",\"comment\":\"Loop control.\",\"end\":\"(?<!\\\\\\\\G)\",\"name\":\"meta.loop-control.fortran\",\"patterns\":[{\"include\":\"#parentheses\"},{\"include\":\"#invalid-word\"}]},{\"begin\":\"(?<=\\\\\\\\))(?=\\\\\\\\s*[;!\\\\\\\\n])\",\"end\":\"(?i)\\\\\\\\b(end\\\\\\\\s*forall)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endforall.fortran\"}},\"name\":\"meta.block.forall.fortran\",\"patterns\":[{\"include\":\"$base\"}]},{\"begin\":\"(?i)(?<=\\\\\\\\))(?!\\\\\\\\s*[;!\\\\\\\\n])\",\"end\":\"\\\\\\\\n\",\"name\":\"meta.statement.control.forall.fortran\",\"patterns\":[{\"include\":\"$base\"}]}]},\"form-team-statement\":{\"begin\":\"(?i)\\\\\\\\b(form team)\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.form-team.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"comment\":\"Introduced in the Fortran 2018 standard.\",\"end\":\"(?<!\\\\\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"name\":\"meta.statement.form-team.fortran\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},\"function-definition\":{\"begin\":\"(?i)(?=([^:'\\\\\";!\\\\\\\\n](?!\\\\\\\\bend)(?!\\\\\\\\bsubroutine\\\\\\\\b))*\\\\\\\\bfunction\\\\\\\\b)\",\"comment\":\"Function program unit. Introduced in the Fortran 1977 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.function.fortran\",\"patterns\":[{\"begin\":\"(?i)(?=\\\\\\\\G\\\\\\\\s*(?!\\\\\\\\bfunction\\\\\\\\b))\",\"comment\":\"Function attribute list.\",\"end\":\"(?i)(?=\\\\\\\\bfunction\\\\\\\\b)\",\"name\":\"meta.attribute-list.function.fortran\",\"patterns\":[{\"include\":\"#elemental-attribute\"},{\"include\":\"#module-attribute\"},{\"include\":\"#pure-attribute\"},{\"include\":\"#recursive-attribute\"},{\"include\":\"#types\"},{\"include\":\"#invalid-word\"}]},{\"begin\":\"(?i)\\\\\\\\b(function)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.function.fortran\"}},\"comment\":\"Captures the function keyword\",\"end\":\"(?=[;!\\\\\\\\n])\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b([a-z]\\\\\\\\w*)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.fortran\"}},\"comment\":\"Function body.\",\"end\":\"(?ix)\\\\\\\\s*\\\\\\\\b(?:(end\\\\\\\\s*function)(?:\\\\\\\\s+([a-z_]\\\\\\\\w*))?|(end))\\\\\\\\b \\\\\\\\s*([^;!\\\\\\\\n]+)?(?=[;!\\\\\\\\n])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.other.endfunction.fortran\"},\"2\":{\"name\":\"entity.name.function.fortran\"},\"3\":{\"name\":\"keyword.other.endfunction.fortran\"},\"4\":{\"name\":\"invalid.error.function.fortran\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G(?!\\\\\\\\s*[;!\\\\\\\\n])\",\"comment\":\"Rest of the first line in function construct.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.function.first-line.fortran\",\"patterns\":[{\"include\":\"#dummy-variable-list\"},{\"include\":\"#result-statement\"},{\"include\":\"#language-binding-attribute\"}]},{\"begin\":\"(?i)(?!\\\\\\\\b(?:end\\\\\\\\s*[;!\\\\\\\\n]|end\\\\\\\\s*function\\\\\\\\b))\",\"comment\":\"Specification and execution block.\",\"end\":\"(?i)(?=\\\\\\\\b(?:end\\\\\\\\s*[;!\\\\\\\\n]|end\\\\\\\\s*function\\\\\\\\b))\",\"name\":\"meta.block.specification.function.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\b(contains)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.contains.fortran\"}},\"comment\":\"Contains block.\",\"end\":\"(?i)(?=(?:end\\\\\\\\s*[;!\\\\\\\\n]|end\\\\\\\\s*function\\\\\\\\b))\",\"name\":\"meta.block.contains.fortran\",\"patterns\":[{\"include\":\"$base\"}]},{\"include\":\"$base\"}]}]}]}]},\"generic-interface-block-construct\":{\"begin\":\"(?i)\\\\\\\\b(interface)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.interface.fortran\"}},\"comment\":\"Introduced in the Fortran 1990 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.interface.generic.fortran\",\"patterns\":[{\"begin\":\"(?ix)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(assignment)\\\\\\\\s* (\\\\\\\\()\\\\\\\\s*(?:(\\\\\\\\=)|(\\\\\\\\S.*))\\\\\\\\s*(\\\\\\\\))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.assignment.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"},\"3\":{\"name\":\"keyword.operator.assignment.fortran\"},\"4\":{\"name\":\"invalid.error.generic-interface.fortran\"},\"5\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"comment\":\"Assignment generic interface.\",\"end\":\"(?ix)\\\\\\\\b(end\\\\\\\\s*interface)\\\\\\\\b (?:\\\\\\\\s*\\\\\\\\b(\\\\\\\\1)\\\\\\\\b\\\\\\\\s*(\\\\\\\\()\\\\\\\\s*(?:(\\\\\\\\3)|(\\\\\\\\S.*))\\\\\\\\s*(\\\\\\\\)))?\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endinterface.fortran\"},\"2\":{\"name\":\"keyword.other.assignment.fortran\"},\"3\":{\"name\":\"punctuation.parentheses.left.fortran\"},\"4\":{\"name\":\"keyword.operator.assignment.fortran\"},\"5\":{\"name\":\"invalid.error.generic-interface-end.fortran\"},\"6\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#interface-procedure-statement\"},{\"include\":\"$base\"}]},{\"begin\":\"(?ix)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(operator)\\\\\\\\s* (\\\\\\\\()\\\\\\\\s*(?: (\\\\\\\\.[a-z]+\\\\\\\\.|\\\\\\\\=\\\\\\\\=|\\\\\\\\/\\\\\\\\=|\\\\\\\\>\\\\\\\\=|\\\\\\\\>|\\\\\\\\<|\\\\\\\\<\\\\\\\\=|\\\\\\\\-|\\\\\\\\+|\\\\\\\\/|\\\\\\\\/\\\\\\\\/|\\\\\\\\*\\\\\\\\*|\\\\\\\\*) |(\\\\\\\\S.*) )\\\\\\\\s*(\\\\\\\\))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.operator.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"},\"3\":{\"name\":\"keyword.operator.fortran\"},\"4\":{\"name\":\"invalid.error.generic-interface-block-op.fortran\"},\"5\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"comment\":\"Operator generic interface.\",\"end\":\"(?ix)\\\\\\\\b(end\\\\\\\\s*interface)\\\\\\\\b (?:\\\\\\\\s*\\\\\\\\b(\\\\\\\\1)\\\\\\\\b\\\\\\\\s*(\\\\\\\\()\\\\\\\\s*(?:(\\\\\\\\3)|(\\\\\\\\S.*))\\\\\\\\s*(\\\\\\\\)))?\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endinterface.fortran\"},\"2\":{\"name\":\"keyword.other.operator.fortran\"},\"3\":{\"name\":\"punctuation.parentheses.left.fortran\"},\"4\":{\"name\":\"keyword.operator.fortran\"},\"5\":{\"name\":\"invalid.error.generic-interface-block-op-end.fortran\"},\"6\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#interface-procedure-statement\"},{\"include\":\"$base\"}]},{\"begin\":\"(?ix)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(?:(read)|(write))\\\\\\\\s* (\\\\\\\\()\\\\\\\\s*(?:(formatted)|(unformatted)|(\\\\\\\\S.*))\\\\\\\\s*(\\\\\\\\))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.read.fortran\"},\"2\":{\"name\":\"keyword.other.write.fortran\"},\"3\":{\"name\":\"punctuation.parentheses.left.fortran\"},\"4\":{\"name\":\"keyword.other.formatted.fortran\"},\"5\":{\"name\":\"keyword.other.unformatted.fortran\"},\"6\":{\"name\":\"invalid.error.generic-interface-block.fortran\"},\"7\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"comment\":\"Read/Write generic interface.\",\"end\":\"(?ix)\\\\\\\\b(end\\\\\\\\s*interface)\\\\\\\\b(?:\\\\\\\\s*\\\\\\\\b(?:(\\\\\\\\2)|(\\\\\\\\3))\\\\\\\\b\\\\\\\\s* (\\\\\\\\()\\\\\\\\s*(?:(\\\\\\\\4)|(\\\\\\\\5)|(\\\\\\\\S.*))\\\\\\\\s*(\\\\\\\\)))?\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endinterface.fortran\"},\"2\":{\"name\":\"keyword.other.read.fortran\"},\"3\":{\"name\":\"keyword.other.write.fortran\"},\"4\":{\"name\":\"punctuation.parentheses.left.fortran\"},\"5\":{\"name\":\"keyword.other.formatted.fortran\"},\"6\":{\"name\":\"keyword.other.unformatted.fortran\"},\"7\":{\"name\":\"invalid.error.generic-interface-block-end.fortran\"},\"8\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#interface-procedure-statement\"},{\"include\":\"$base\"}]},{\"begin\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b([a-z]\\\\\\\\w*)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.fortran\"}},\"comment\":\"Generic interface.\",\"end\":\"(?i)\\\\\\\\b(end\\\\\\\\s*interface)\\\\\\\\b(?:\\\\\\\\s*\\\\\\\\b(\\\\\\\\1)\\\\\\\\b)?\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endinterface.fortran\"},\"2\":{\"name\":\"entity.name.function.fortran\"}},\"patterns\":[{\"include\":\"#interface-procedure-statement\"},{\"include\":\"$base\"}]}]},\"goto-statement\":{\"begin\":\"(?i)\\\\\\\\s*\\\\\\\\b(go\\\\\\\\s*to)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.goto.fortran\"}},\"comment\":\"Introduced in the Fortran 1977 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.statement.control.goto.fortran\",\"patterns\":[{\"include\":\"$base\"}]},\"if-construct\":{\"patterns\":[{\"begin\":\"(?i)\\\\\\\\b(if)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.if.fortran\"}},\"end\":\"(?=[;!\\\\\\\\n])\",\"patterns\":[{\"include\":\"#logical-control-expression\"},{\"begin\":\"(?i)\\\\\\\\s*\\\\\\\\b(then)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.then.fortran\"}},\"contentName\":\"meta.block.if.fortran\",\"end\":\"(?i)\\\\\\\\b(end\\\\\\\\s*if)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endif.fortran\"}},\"patterns\":[{\"begin\":\"(?i)\\\\\\\\b(else\\\\\\\\s*if)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.elseif.fortran\"}},\"comment\":\"else if statement\",\"end\":\"(?=[;!\\\\\\\\n])\",\"patterns\":[{\"include\":\"#parentheses\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.then.fortran\"},\"2\":{\"name\":\"meta.label.elseif.fortran\"}},\"comment\":\"capture the label if present\",\"match\":\"(?i)\\\\\\\\b(then)\\\\\\\\b(\\\\\\\\s*[a-z]\\\\\\\\w*)?\"},{\"include\":\"#invalid-word\"}]},{\"begin\":\"(?i)\\\\\\\\b(else)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.else.fortran\"}},\"comment\":\"else block\",\"end\":\"(?i)(?=\\\\\\\\b(end\\\\\\\\s*if)\\\\\\\\b)\",\"patterns\":[{\"begin\":\"(?!(\\\\\\\\s*(;|!|\\\\\\\\n)))\",\"comment\":\"rest of else line\",\"end\":\"(?=[;!\\\\\\\\n])\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"meta.label.else.fortran\"},\"2\":{\"name\":\"invalid.error.label.else.fortran\"}},\"comment\":\"capture the label if present\",\"match\":\"\\\\\\\\s*([a-z]\\\\\\\\w*)?\\\\\\\\s*\\\\\\\\b(\\\\\\\\w*)\\\\\\\\b\"},{\"include\":\"#invalid-word\"}]},{\"begin\":\"(?i)(?!\\\\\\\\b(end\\\\\\\\s*if)\\\\\\\\b)\",\"end\":\"(?i)(?=\\\\\\\\b(end\\\\\\\\s*if)\\\\\\\\b)\",\"patterns\":[{\"include\":\"$base\"}]}]},{\"include\":\"$base\"}]},{\"begin\":\"(?i)(?=\\\\\\\\s*[a-z])\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.statement.control.if.fortran\",\"patterns\":[{\"include\":\"$base\"}]}]}]},\"image-control-statement\":{\"patterns\":[{\"include\":\"#sync-all-statement\"},{\"include\":\"#sync-statement\"},{\"include\":\"#event-statement\"},{\"include\":\"#form-team-statement\"},{\"include\":\"#fail-image-statement\"}]},\"implicit-statement\":{\"begin\":\"(?i)\\\\\\\\b(implicit)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.implicit.fortran\"}},\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.statement.implicit.fortran\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.none.fortran\"}},\"match\":\"(?i)\\\\\\\\s*\\\\\\\\b(none)\\\\\\\\b\"},{\"include\":\"$base\"}]},\"import-statement\":{\"begin\":\"(?i)\\\\\\\\b(import)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.include.fortran\"}},\"comment\":\"Introduced in the Fortran 1990 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.statement.include.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\G\\\\\\\\s*(?:(::)|(?=[a-z]))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"end\":\"(?=[;!\\\\\\\\n])\",\"patterns\":[{\"include\":\"#name-list\"}]},{\"begin\":\"\\\\\\\\G\\\\\\\\s*(,)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=[;!\\\\\\\\n])\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.all.fortran\"}},\"match\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(all)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.none.fortran\"}},\"match\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(none)\\\\\\\\b\"},{\"begin\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(only)\\\\\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.only.fortran\"},\"2\":{\"name\":\"keyword.other.colon.fortran\"}},\"end\":\"(?=[;!\\\\\\\\n])\",\"patterns\":[{\"include\":\"#name-list\"}]},{\"include\":\"#invalid-word\"}]}]},\"include-statement\":{\"begin\":\"(?i)\\\\\\\\b(include)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.include.fortran\"}},\"comment\":\"Introduced in the Fortran 1990 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.statement.include.fortran\",\"patterns\":[{\"include\":\"#string-constant\"},{\"include\":\"#invalid-character\"}]},\"intent-attribute\":{\"begin\":\"(?i)\\\\\\\\s*\\\\\\\\b(intent)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.intent.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"comment\":\"Introduced in the Fortran 1990 standard.\",\"end\":\"(\\\\\\\\))|(?=[;!\\\\\\\\n])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.modifier.intent.in-out.fortran\"},\"2\":{\"name\":\"storage.modifier.intent.in.fortran\"},\"3\":{\"name\":\"storage.modifier.intent.out.fortran\"}},\"match\":\"(?i)\\\\\\\\b(?:(in\\\\\\\\s*out)|(in)|(out))\\\\\\\\b\"},{\"include\":\"#invalid-word\"}]},\"interface-block-constructs\":{\"patterns\":[{\"include\":\"#abstract-interface-block-construct\"},{\"include\":\"#explicit-interface-block-construct\"},{\"include\":\"#generic-interface-block-construct\"}]},\"interface-procedure-statement\":{\"begin\":\"(?i)(?=[^'\\\\\";!\\\\\\\\n]*\\\\\\\\bprocedure\\\\\\\\b)\",\"comment\":\"Introduced in the Fortran 1990 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.statement.procedure.fortran\",\"patterns\":[{\"begin\":\"(?i)(?=\\\\\\\\G\\\\\\\\s*(?!\\\\\\\\bprocedure\\\\\\\\b))\",\"comment\":\"Attribute list.\",\"end\":\"(?i)(?=\\\\\\\\bprocedure\\\\\\\\b)\",\"name\":\"meta.attribute-list.interface.fortran\",\"patterns\":[{\"include\":\"#module-attribute\"},{\"include\":\"#invalid-word\"}]},{\"begin\":\"(?i)\\\\\\\\s*\\\\\\\\b(procedure)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.procedure.fortran\"}},\"comment\":\"Procedure statement.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"match\":\"\\\\\\\\G\\\\\\\\s*(::)\"},{\"include\":\"#procedure-name-list\"}]}]},\"intrinsic-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.intrinsic.fortran\"}},\"comment\":\"Introduced in the Fortran 1977 standard.\",\"match\":\"(?i)\\\\\\\\s*\\\\\\\\b(intrinsic)\\\\\\\\b\"},\"intrinsic-functions\":{\"patterns\":[{\"begin\":\"(?ix)\\\\\\\\b(acosh|asinh|atanh|bge|bgt|ble|blt|dshiftl|dshiftr| findloc|hypot|iall|iany|image_index|iparity|is_contiguous|lcobound| leadz|mask[lr]|merge_bits|norm2|num_images|parity|popcnt|poppar| shift[alr]|storage_size|this_image|trailz|ucobound)\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.intrinsic.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"comment\":\"Intrinsic functions introduced in the Fortran 2008 standard.\",\"end\":\"(?<!\\\\\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?ix)\\\\\\\\b(bessel_[jy][01n]|erf(c(_scaled)?)?|gamma|log_gamma)\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.intrinsic.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"comment\":\"Functions accessable through the intrinsic FORTRAN_SPECIAL_FUNCTIONS module. Introduced in the Fortran 2008 standard.\",\"end\":\"(?<!\\\\\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?ix)\\\\\\\\b(command_argument_count|extends_type_of|is_iostat_end| is_iostat_eor|new_line|same_type_as|selected_char_kind)\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.intrinsic.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"comment\":\"Intrinsic functions introduced in the Fortran 2003 standard.\",\"end\":\"(?<!\\\\\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?ix)\\\\\\\\b(ieee_( class|copy_sign|is_(finite|nan|negative|normal)|logb|next_after|rem| rint|scalb|selected_real_kind| support_(datatype|denormal|divide|inf|io|nan|rounding|sqrt|standard|underflow_control)| unordered|value))\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.intrinsic.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"comment\":\"Functions accessable through the intrinsic IEEE_ARITHMETIC module. Introduced in the Fortran 2003 standard.\",\"end\":\"(?<!\\\\\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?ix)\\\\\\\\b(ieee_support_(flag|halting))\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.intrinsic.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"comment\":\"Functions accessable through the intrinsic IEEE_EXCEPTIONS module. Introduced in the Fortran 2003 standard.\",\"end\":\"(?<!\\\\\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?ix)\\\\\\\\b(c_(associated|funloc|loc|sizeof))\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.intrinsic.fortran\"}},\"comment\":\"Functions accessable through the intrinsic ISO_C_BINDING module. Introduced in the Fortran 2003 standard.\",\"end\":\"(?<!\\\\\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?ix)\\\\\\\\b(compiler_(options|version))\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.intrinsic.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"comment\":\"Functions accessable through the intrinsic ISO_FORTRAN_ENV module. Introduced in the Fortran 2003 standard.\",\"end\":\"(?<!\\\\\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?ix)\\\\\\\\b(null)\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.intrinsic.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"comment\":\"Intrinsic functions introduced in the Fortran 1995 standard.\",\"end\":\"(?<!\\\\\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?ix)\\\\\\\\b(achar|adjustl|adjustr|all|allocated|associated|any|bit_size|btest|ceiling|count|cshift|digits|dot_product|eoshift|epsilon|exponent|floor|fraction|huge|iachar|iand|ibclr|ibits|ibset|ieor|ior|ishftc?| kind|lbound|len_trim|logical|matmul|maxexponent|maxloc|maxval|merge|minexponent|minloc|minval|modulo|nearest|not|pack|precision|present|product|radix|range|repeat|reshape|rrspacing|scale|scan|selected_(int|real)_kind|set_exponent|shape|size|spacing|spread|sum|tiny|transfer|transpose|trim|ubound|unpack|verify)\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.intrinsic.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"comment\":\"Intrinsic functions introduced in the Fortran 1990 standard.\",\"end\":\"(?<!\\\\\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?ix)\\\\\\\\b([icd]?abs|acos|[ad]int|[ad]nint|aimag|amax[01]| amin[01]|d?asin|d?atan|d?atan2|char|conjg|[cd]?cos|d?cosh|cmplx|dble| i?dim|dmax1|dmin1|dprod|[cd]?exp|float|ichar|idint|ifix|index|int|len| lge|lgt|lle|llt|[acd]?log|[ad]?log10|max[01]?|min[01]?|[ad]?mod| (id)?nint|real|[di]?sign|[cd]?sin|d?sinh|sngl|[cd]?sqrt|d?tan|d?tanh) \\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.intrinsic.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"comment\":\"Intrinsic functions introduced in the Fortran 1977 standard.\",\"end\":\"(?<!\\\\\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]}]},\"intrinsic-subroutines\":{\"patterns\":[{\"begin\":\"(?ix)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(date_and_time|mvbits|random_number|random_seed| system_clock)\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.subroutine.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"comment\":\"Intrinsic subroutines introduced in the Fortran 1990 standard.\",\"end\":\"(?<!\\\\\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(cpu_time)\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.subroutine.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"comment\":\"Intrinsic subroutines introduced in the Fortran 1995 standard.\",\"end\":\"(?<!\\\\\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(ieee_(get|set)_(rounding|underflow)_mode)\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.subroutine.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"comment\":\"Subroutines accessable through the intrinsic IEEE_ARITHMETIC module. Introduced in the Fortran 2003 standard.\",\"end\":\"(?<!\\\\\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(ieee_(get|set)_(flag|halting_mode|status))\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.subroutine.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"comment\":\"Subroutines accessable through the intrinsic IEEE_EXCEPTIONS module. Introduced in the Fortran 2003 standard.\",\"end\":\"(?<!\\\\\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(c_f_(pointer|procpointer))\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.subroutine.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"comment\":\"Subroutines accessable through the intrinsic ISO_C_BINDING module. Introduced in the Fortran 2003 standard.\",\"end\":\"(?<!\\\\\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"begin\":\"(?ix)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(execute_command_line|get_command| get_command_argument|get_environment_variable|move_alloc)\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.subroutine.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"comment\":\"Intrinsic subroutines introduced in the Fortran 2008 standard.\",\"end\":\"(?<!\\\\\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]}]},\"invalid-character\":{\"match\":\"(?i)[^\\\\\\\\s;!\\\\\\\\n]+\",\"name\":\"invalid.error.character.fortran\"},\"invalid-word\":{\"match\":\"(?i)\\\\\\\\b\\\\\\\\w+\\\\\\\\b\",\"name\":\"invalid.error.word.fortran\"},\"language-binding-attribute\":{\"begin\":\"(?i)\\\\\\\\s*\\\\\\\\b(bind)\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.bind.fortran\"}},\"comment\":\"Introduced in Fortran 2003 standard.\",\"end\":\"(?:\\\\\\\\)|(?=\\\\\\\\n))\",\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(c)\\\\\\\\b\",\"name\":\"variable.parameter.fortran\"},{\"include\":\"#dummy-variable\"},{\"include\":\"$base\"}]},\"line-continuation-operator\":{\"comment\":\"Operator that allows a line to be continued on the next line.\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.line-continuation.fortran\"}},\"match\":\"(?:^|(?<=;))\\\\\\\\s*(&)\"},{\"begin\":\"\\\\\\\\s*(&)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.line-continuation.fortran\"}},\"contentName\":\"meta.line-continuation.fortran\",\"end\":\"(?i)^(?:\\\\\\\\s*(&))?\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.line-continuation.fortran\"}},\"patterns\":[{\"include\":\"#comments\"},{\"match\":\"\\\\\\\\S[^!]*\",\"name\":\"invalid.error.line-cont.fortran\"}]}]},\"logical-constant\":{\"captures\":{\"1\":{\"name\":\"constant.language.logical.false.fortran\"},\"2\":{\"name\":\"constant.language.logical.true.fortran\"}},\"comment\":\"Logical constants\",\"match\":\"(?i)\\\\\\\\s*(?:(\\\\\\\\.false\\\\\\\\.)|(\\\\\\\\.true\\\\\\\\.))\"},\"logical-control-expression\":{\"begin\":\"\\\\\\\\G(?=\\\\\\\\s*\\\\\\\\()\",\"end\":\"(?<!\\\\\\\\G)\",\"name\":\"meta.expression.control.logical.fortran\",\"patterns\":[{\"include\":\"#parentheses\"}]},\"logical-operators\":{\"patterns\":[{\"comment\":\"Introduced in the Fortran 1977 standard.\",\"match\":\"(?ix)(\\\\\\\\s*\\\\\\\\.(and|eq|eqv|le|lt|ge|gt|ne|neqv|not|or)\\\\\\\\.)\",\"name\":\"keyword.logical.fortran\"},{\"comment\":\"Introduced in the Fortran 1990 standard.\",\"match\":\"(\\\\\\\\=\\\\\\\\=|\\\\\\\\/\\\\\\\\=|\\\\\\\\>\\\\\\\\=|(?<!\\\\\\\\=)\\\\\\\\>|\\\\\\\\<\\\\\\\\=|\\\\\\\\<)\",\"name\":\"keyword.logical.fortran.modern\"}]},\"logical-type\":{\"comment\":\"Introduced in the Fortran 1977 standard.\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\b(logical)\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.logical.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"contentName\":\"meta.type-spec.fortran\",\"end\":\"(?<!\\\\\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.character.fortran\"},\"2\":{\"name\":\"keyword.operator.multiplication.fortran\"},\"3\":{\"name\":\"constant.numeric.fortran\"}},\"match\":\"(?i)\\\\\\\\b(logical)\\\\\\\\b(?:\\\\\\\\s*(\\\\\\\\*)\\\\\\\\s*(\\\\\\\\d*))?\"}]},\"module-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.module.fortran\"}},\"comment\":\"Introduced in the Fortran 1990 standard.\",\"match\":\"(?ix)\\\\\\\\s*\\\\\\\\b(module)\\\\\\\\b(?=\\\\\\\\s*(?:[;!\\\\\\\\n]| [^'\\\\\";!\\\\\\\\n]*\\\\\\\\b(?:function|procedure|subroutine)\\\\\\\\b))\"},\"module-definition\":{\"begin\":\"(?ix)(?=\\\\\\\\b(module)\\\\\\\\b)(?![^'\\\\\";!\\\\\\\\n]* \\\\\\\\b(?:function|procedure|subroutine)\\\\\\\\b)\",\"comment\":\"Introduced in the Fortran 1990 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.module.fortran\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.program.fortran\"}},\"match\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(module)\\\\\\\\b\"},{\"applyEndPatternLast\":1,\"begin\":\"(?i)\\\\\\\\s*\\\\\\\\b([a-z]\\\\\\\\w*)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.class.module.fortran\"}},\"comment\":\"Module body.\",\"end\":\"(?ix)\\\\\\\\b(?:(end\\\\\\\\s*module)(?:\\\\\\\\s+([a-z_]\\\\\\\\w*))?|(end))\\\\\\\\b \\\\\\\\s*([^;!\\\\\\\\n]+)?(?=[;!\\\\\\\\n])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.other.endmodule.fortran\"},\"2\":{\"name\":\"entity.name.class.module.fortran\"},\"3\":{\"name\":\"keyword.other.endmodule.fortran\"},\"4\":{\"name\":\"invalid.error.module-definition.fortran\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"comment\":\"Module specification block.\",\"end\":\"(?i)(?=\\\\\\\\b(?:end\\\\\\\\s*[;!\\\\\\\\n]|end\\\\\\\\s*module\\\\\\\\b))\",\"name\":\"meta.block.specification.module.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\b(contains)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.contains.fortran\"}},\"comment\":\"Module contains block.\",\"end\":\"(?i)(?=\\\\\\\\s*(?:end\\\\\\\\s*[;!\\\\\\\\n]|end\\\\\\\\s*module\\\\\\\\b))\",\"name\":\"meta.block.contains.fortran\",\"patterns\":[{\"include\":\"$base\"}]},{\"include\":\"$base\"}]}]}]},\"name-list\":{\"begin\":\"(?i)(?=\\\\\\\\s*[a-z])\",\"comment\":\"Name list.\",\"contentName\":\"meta.name-list.fortran\",\"end\":\"(?=[\\\\\\\\);!\\\\\\\\n])\",\"patterns\":[{\"include\":\"#constants\"},{\"include\":\"#operators\"},{\"include\":\"#intrinsic-functions\"},{\"include\":\"#array-constructor\"},{\"include\":\"#parentheses\"},{\"include\":\"#brackets\"},{\"include\":\"#assignment-keyword\"},{\"include\":\"#operator-keyword\"},{\"include\":\"#variable\"}]},\"named-control-constructs\":{\"applyEndPatternLast\":1,\"begin\":\"(?ix)([a-z]\\\\\\\\w*)\\\\\\\\s*(:)(?=\\\\\\\\s*(?:associate|block(?!\\\\\\\\s*data)|critical|do|forall|if|select\\\\\\\\s*case|select\\\\\\\\s*type|select\\\\\\\\s*rank|where)\\\\\\\\b)\",\"comment\":\"Introduced in the Fortran 1990 standard.\",\"contentName\":\"meta.named-construct.fortran.modern\",\"end\":\"(?i)(?!\\\\\\\\s*\\\\\\\\b(?:associate|block(?!\\\\\\\\s*data)|critical|do|forall|if|select\\\\\\\\s*case|select\\\\\\\\s*type|select\\\\\\\\s*rank|where)\\\\\\\\b)(?:\\\\\\\\b(\\\\\\\\1)\\\\\\\\b)?([^\\\\\\\\s;!\\\\\\\\n]*?)?(?=\\\\\\\\s*[;!\\\\\\\\n])\",\"endCaptures\":{\"1\":{\"name\":\"meta.label.end.name.fortran\"},\"2\":{\"name\":\"invalid.error.named-control-constructs.fortran.modern\"}},\"patterns\":[{\"include\":\"#unnamed-control-constructs\"}]},\"namelist-statement\":{\"begin\":\"(?i)\\\\\\\\b(namelist)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.namelist.fortran\"}},\"comment\":\"Introduced in the Fortran 1990 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"patterns\":[{\"include\":\"$base\"}]},\"non-intrinsic-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.non-intrinsic.fortran\"}},\"comment\":\"Introduced in the Fortran 1990 standard.\",\"match\":\"(?i)\\\\\\\\s*\\\\\\\\b(non_intrinsic)\\\\\\\\b\"},\"non-overridable-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.non-overridable.fortran\"}},\"comment\":\"Introduced in the Fortran 2003 standard.\",\"match\":\"(?i)\\\\\\\\s*\\\\\\\\b(non_overridable)\\\\\\\\b\"},\"nopass-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.nopass.fortran\"}},\"comment\":\"Introduced in the Fortran 2003 standard.\",\"match\":\"(?i)\\\\\\\\s*\\\\\\\\b(nopass)\\\\\\\\b\"},\"nullify-statement\":{\"begin\":\"(?i)\\\\\\\\b(nullify)\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.nullify.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"comment\":\"Introduced in the Fortran 1990 standard.\",\"end\":\"(?<!\\\\\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"name\":\"meta.statement.nullify.fortran\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},\"numeric-constant\":{\"comment\":\"Numeric constants\",\"match\":\"(?ix)[\\\\\\\\+\\\\\\\\-]?(\\\\\\\\b\\\\\\\\d+\\\\\\\\.?\\\\\\\\d*|\\\\\\\\.\\\\\\\\d+) (_\\\\\\\\w+|d[\\\\\\\\+\\\\\\\\-]?\\\\\\\\d+|e[\\\\\\\\+\\\\\\\\-]?\\\\\\\\d+(_\\\\\\\\w+)?)?(?![a-z_])\",\"name\":\"constant.numeric.fortran\"},\"numeric-type\":{\"comment\":\"Introduced in the Fortran 1977 standard.\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\b(?:(complex)|(double\\\\\\\\s*precision)|(double\\\\\\\\s*complex)|(integer)|(real))\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.complex.fortran\"},\"2\":{\"name\":\"storage.type.double.fortran\"},\"3\":{\"name\":\"storage.type.doublecomplex.fortran\"},\"4\":{\"name\":\"storage.type.integer.fortran\"},\"5\":{\"name\":\"storage.type.real.fortran\"},\"6\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"contentName\":\"meta.type-spec.fortran\",\"end\":\"(?<!\\\\\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.complex.fortran\"},\"2\":{\"name\":\"storage.type.double.fortran\"},\"3\":{\"name\":\"storage.type.doublecomplex.fortran\"},\"4\":{\"name\":\"storage.type.integer.fortran\"},\"5\":{\"name\":\"storage.type.real.fortran\"},\"6\":{\"name\":\"storage.type.dimension.fortran\"},\"7\":{\"name\":\"keyword.operator.multiplication.fortran\"},\"8\":{\"name\":\"constant.numeric.fortran\"}},\"match\":\"(?ix)\\\\\\\\b(?:(complex)|(double\\\\\\\\s*precision)|(double\\\\\\\\s*complex)|(integer)|(real)|(dimension))\\\\\\\\b(?:\\\\\\\\s*(\\\\\\\\*)\\\\\\\\s*(\\\\\\\\d*))?\"}]},\"operator-keyword\":{\"begin\":\"(?i)\\\\\\\\s*\\\\\\\\b(operator)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.generic-spec.operator.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"comment\":\"Operator generic specification.\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#arithmetic-operators\"},{\"include\":\"#logical-operators\"},{\"include\":\"#user-defined-operators\"},{\"include\":\"#invalid-word\"}]},\"operators\":{\"patterns\":[{\"include\":\"#arithmetic-operators\"},{\"include\":\"#assignment-operator\"},{\"include\":\"#derived-type-operators\"},{\"include\":\"#logical-operators\"},{\"include\":\"#pointer-operators\"},{\"include\":\"#string-operators\"},{\"include\":\"#user-defined-operators\"}]},\"optional-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.optional.fortran\"}},\"comment\":\"Introduced in the Fortran 1990 standard.\",\"match\":\"(?i)\\\\\\\\s*\\\\\\\\b(optional)\\\\\\\\b\"},\"parameter-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.parameter.fortran\"}},\"comment\":\"Introduced in the Fortran 1977 standard.\",\"match\":\"(?i)\\\\\\\\s*\\\\\\\\b(parameter)\\\\\\\\b\"},\"parentheses\":{\"begin\":\"\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#constants\"},{\"include\":\"#operators\"},{\"include\":\"#array-constructor\"},{\"include\":\"#parentheses\"},{\"include\":\"#intrinsic-functions\"},{\"include\":\"#variable\"}]},\"parentheses-dummy-variables\":{\"begin\":\"\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#procedure-call-dummy-variable\"},{\"include\":\"#comments\"},{\"include\":\"#constants\"},{\"include\":\"#operators\"},{\"include\":\"#array-constructor\"},{\"include\":\"#parentheses\"},{\"include\":\"#intrinsic-functions\"},{\"include\":\"#variable\"}]},\"pass-attribute\":{\"comment\":\"Introduced in the Fortran 2003 standard.\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\s*\\\\\\\\b(pass)\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.pass.fortran\"}},\"comment\":\"Pass attribute with argument.\",\"end\":\"\\\\\\\\)|(?=\\\\\\\\n)\",\"patterns\":[]},{\"captures\":{\"1\":{\"name\":\"storage.modifier.pass.fortran\"}},\"comment\":\"Pass attribute without argument.\",\"match\":\"(?i)\\\\\\\\s*\\\\\\\\b(pass)\\\\\\\\b\"}]},\"pause-statement\":{\"begin\":\"(?i)\\\\\\\\s*\\\\\\\\b(pause)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.pause.fortran\"}},\"comment\":\"Introduced in the Fortran 1977 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.statement.control.pause.fortran\",\"patterns\":[{\"include\":\"#constants\"},{\"include\":\"#invalid-character\"}]},\"pointer-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.pointer.fortran\"}},\"comment\":\"Introduced in the Fortran 1990 standard.\",\"match\":\"(?i)\\\\\\\\s*\\\\\\\\b(pointer)\\\\\\\\b\"},\"pointer-operators\":{\"comment\":\"Introduced in the Fortran 1990 standard.\",\"match\":\"(\\\\\\\\=\\\\\\\\>)\",\"name\":\"keyword.other.point.fortran\"},\"preprocessor\":{\"begin\":\"^\\\\\\\\s*(#:?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.indicator.fortran\"}},\"end\":\"\\\\\\\\n\",\"name\":\"meta.preprocessor\",\"patterns\":[{\"include\":\"#preprocessor-if-construct\"},{\"include\":\"#preprocessor-statements\"}]},\"preprocessor-arithmetic-operators\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.subtraction.fortran\"},\"2\":{\"name\":\"keyword.operator.addition.fortran\"},\"3\":{\"name\":\"keyword.operator.division.fortran\"},\"4\":{\"name\":\"keyword.operator.multiplication.fortran\"}},\"comment\":\"division regex is different than in main fortran\",\"match\":\"(\\\\\\\\-)|(\\\\\\\\+)|(\\\\\\\\/)|(\\\\\\\\*)\"},\"preprocessor-assignment-operator\":{\"comment\":\"assignments with = are not allowed\",\"match\":\"(?<!\\\\\\\\=)(\\\\\\\\=)(?!\\\\\\\\=)\",\"name\":\"keyword.operator.assignment.preprocessor.fortran\"},\"preprocessor-comments\":{\"begin\":\"/\\\\\\\\*\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.preprocessor\"},\"preprocessor-constants\":{\"patterns\":[{\"include\":\"#cpp-numeric-constant\"},{\"include\":\"#preprocessor-string-constant\"}]},\"preprocessor-define-statement\":{\"begin\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(define)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.define.fortran\"}},\"end\":\"(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.macro.fortran\",\"patterns\":[{\"include\":\"#preprocessor-comments\"},{\"include\":\"#preprocessor-constants\"},{\"include\":\"#preprocessor-line-continuation-operator\"}]},\"preprocessor-defined-function\":{\"captures\":{\"1\":{\"name\":\"keyword.control.preprocessor.defined.fortran\"}},\"match\":\"(?i)\\\\\\\\b(defined)\\\\\\\\b\"},\"preprocessor-error-statement\":{\"begin\":\"(?i)\\\\\\\\G\\\\\\\\s*(error)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.error.fortran\"}},\"end\":\"(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.macro.fortran\",\"patterns\":[{\"include\":\"#preprocessor-comments\"},{\"include\":\"#preprocessor-string-constant\"},{\"include\":\"#preprocessor-line-continuation-operator\"}]},\"preprocessor-if-construct\":{\"patterns\":[{\"begin\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(if)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.if.fortran\"}},\"end\":\"(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.conditional.fortran\",\"patterns\":[{\"include\":\"#preprocessor-comments\"},{\"include\":\"#cpp-numeric-constant\"},{\"include\":\"#preprocessor-logical-operators\"},{\"include\":\"#preprocessor-arithmetic-operators\"},{\"include\":\"#preprocessor-defined-function\"},{\"include\":\"#preprocessor-line-continuation-operator\"}]},{\"begin\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(ifdef)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.ifdef.fortran\"}},\"end\":\"(?=\\\\\\\\n)\",\"patterns\":[{\"include\":\"#preprocessor-comments\"},{\"include\":\"#cpp-numeric-constant\"},{\"include\":\"#preprocessor-logical-operators\"},{\"include\":\"#preprocessor-arithmetic-operators\"},{\"include\":\"#preprocessor-line-continuation-operator\"}]},{\"begin\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(ifndef)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.ifndef.fortran\"}},\"end\":\"(?=\\\\\\\\n)\",\"patterns\":[{\"include\":\"#preprocessor-comments\"},{\"include\":\"#cpp-numeric-constant\"},{\"include\":\"#preprocessor-logical-operators\"},{\"include\":\"#preprocessor-arithmetic-operators\"},{\"include\":\"#preprocessor-line-continuation-operator\"}]},{\"begin\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(else)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.else.fortran\"}},\"end\":\"(?=\\\\\\\\n)\",\"patterns\":[{\"include\":\"#preprocessor-comments\"},{\"include\":\"#cpp-numeric-constant\"}]},{\"begin\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(elif)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.elif.fortran\"}},\"end\":\"(?=\\\\\\\\n)\",\"patterns\":[{\"include\":\"#preprocessor-comments\"},{\"include\":\"#cpp-numeric-constant\"},{\"include\":\"#preprocessor-logical-operators\"},{\"include\":\"#preprocessor-arithmetic-operators\"},{\"include\":\"#preprocessor-defined-function\"},{\"include\":\"#preprocessor-line-continuation-operator\"}]},{\"begin\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(endif)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.endif.fortran\"}},\"end\":\"(?=\\\\\\\\n)\",\"patterns\":[{\"include\":\"#preprocessor-comments\"}]}]},\"preprocessor-include-statement\":{\"begin\":\"(?i)\\\\\\\\G\\\\\\\\s*(include)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.include.fortran\"}},\"end\":\"(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.include.fortran\",\"patterns\":[{\"include\":\"#preprocessor-comments\"},{\"include\":\"#preprocessor-string-constant\"},{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.preprocessor.fortran\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.preprocessor.fortran\"}},\"name\":\"string.quoted.other.lt-gt.include.preprocessor.fortran\"},{\"include\":\"#line-continuation-operator\"}]},\"preprocessor-line-continuation-operator\":{\"begin\":\"\\\\\\\\s*(\\\\\\\\\\\\\\\\)\",\"beginCaptures\":{\"1\":{\"name\":\"constant.character.escape.line-continuation.preprocessor.fortran\"}},\"end\":\"(?i)^\"},\"preprocessor-logical-operators\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.logical.preprocessor.and.fortran\"},\"2\":{\"name\":\"keyword.operator.logical.preprocessor.equals.fortran\"},\"3\":{\"name\":\"keyword.operator.logical.preprocessor.not_equals.fortran\"},\"4\":{\"name\":\"keyword.operator.logical.preprocessor.or.fortran\"},\"5\":{\"name\":\"keyword.operator.logical.preprocessor.less_eq.fortran\"},\"6\":{\"name\":\"keyword.operator.logical.preprocessor.more_eq.fortran\"},\"7\":{\"name\":\"keyword.operator.logical.preprocessor.less.fortran\"},\"8\":{\"name\":\"keyword.operator.logical.preprocessor.more.fortran\"},\"9\":{\"name\":\"keyword.operator.logical.preprocessor.complementary.fortran\"},\"10\":{\"name\":\"keyword.operator.logical.preprocessor.xor.fortran\"},\"11\":{\"name\":\"keyword.operator.logical.preprocessor.bitand.fortran\"},\"12\":{\"name\":\"keyword.operator.logical.preprocessor.not.fortran\"},\"13\":{\"name\":\"keyword.operator.logical.preprocessor.bitor.fortran\"}},\"comment\":\"and:&&, bitand:&, or:||, bitor:|, not eq:!=, not:!, xor:^, compl:~\",\"match\":\"(&&)|(==)|(\\\\\\\\!=)|(\\\\\\\\|\\\\\\\\|)|(\\\\\\\\<\\\\\\\\=)|(\\\\\\\\>=)|(\\\\\\\\<)|(\\\\\\\\>)|(~)|(\\\\\\\\^)|(&)|(\\\\\\\\!)|(\\\\\\\\|)\",\"name\":\"keyword.operator.logical.preprocessor.fortran\"},\"preprocessor-operators\":{\"patterns\":[{\"include\":\"#preprocessor-line-continuation-operator\"},{\"include\":\"#preprocessor-logical-operators\"},{\"include\":\"#preprocessor-arithmetic-operators\"}]},\"preprocessor-pragma-statement\":{\"begin\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(pragma)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.pragma.fortran\"}},\"end\":\"(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.pragma.fortran\",\"patterns\":[{\"include\":\"#preprocessor-comments\"},{\"include\":\"#preprocessor-string-constant\"}]},\"preprocessor-statements\":{\"patterns\":[{\"include\":\"#preprocessor-define-statement\"},{\"include\":\"#preprocessor-error-statement\"},{\"include\":\"#preprocessor-include-statement\"},{\"include\":\"#preprocessor-preprocessor-pragma-statement\"},{\"include\":\"#preprocessor-undefine-statement\"}]},\"preprocessor-string-constant\":{\"patterns\":[{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.preprocessor.fortran\"}},\"comment\":\"Double quote string\",\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.preprocessor.fortran\"}},\"name\":\"string.quoted.double.include.preprocessor.fortran\"},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.preprocessor.fortran\"}},\"comment\":\"Single quote string\",\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.preprocessor.fortran\"}},\"name\":\"string.quoted.single.include.preprocessor.fortran\"}]},\"preprocessor-undefine-statement\":{\"begin\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(undef)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preprocessor.undef.fortran\"}},\"end\":\"(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.undef.fortran\",\"patterns\":[{\"include\":\"#preprocessor-comments\"},{\"include\":\"#preprocessor-line-continuation-operator\"}]},\"private-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.private.fortran\"}},\"comment\":\"Introduced in the Fortran 1990 standard.\",\"match\":\"(?i)\\\\\\\\s*\\\\\\\\b(private)\\\\\\\\b\"},\"procedure-call-dummy-variable\":{\"match\":\"(?i)\\\\\\\\s*([a-z]\\\\\\\\w*)(?=\\\\\\\\s*\\\\\\\\=)(?!\\\\\\\\s*\\\\\\\\=\\\\\\\\=)\",\"name\":\"variable.parameter.dummy-variable.fortran.modern\"},\"procedure-definition\":{\"begin\":\"(?i)(?=[^'\\\\\";!\\\\\\\\n]*\\\\\\\\bmodule\\\\\\\\s+procedure\\\\\\\\b)\",\"comment\":\"Procedure program unit. Introduced in the Fortran 2008 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.procedure.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\s*\\\\\\\\b(module\\\\\\\\s+procedure)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.procedure.fortran\"}},\"end\":\"(?=[;!\\\\\\\\n])\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b([a-z]\\\\\\\\w*)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.procedure.fortran\"}},\"comment\":\"Procedure body.\",\"end\":\"(?ix)\\\\\\\\s*\\\\\\\\b(?:(end\\\\\\\\s*procedure)(?:\\\\\\\\s+([a-z_]\\\\\\\\w*))?|(end))\\\\\\\\b \\\\\\\\s*([^;!\\\\\\\\n]+)?(?=[;!\\\\\\\\n])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.other.endprocedure.fortran\"},\"2\":{\"name\":\"entity.name.function.procedure.fortran\"},\"3\":{\"name\":\"keyword.other.endprocedure.fortran\"},\"4\":{\"name\":\"invalid.error.procedure-definition.fortran\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G(?!\\\\\\\\s*[;!\\\\\\\\n])\",\"comment\":\"Rest of the first line in procedure construct - should be empty.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.first-line.fortran\",\"patterns\":[{\"include\":\"#invalid-character\"}]},{\"begin\":\"(?i)(?!\\\\\\\\s*(?:contains\\\\\\\\b|end\\\\\\\\s*[;!\\\\\\\\n]|end\\\\\\\\s*procedure\\\\\\\\b))\",\"comment\":\"Specification and execution block.\",\"end\":\"(?i)(?=\\\\\\\\s*(?:contains\\\\\\\\b|end\\\\\\\\s*[;!\\\\\\\\n]|end\\\\\\\\s*procedure\\\\\\\\b))\",\"name\":\"meta.block.specification.procedure.fortran\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(?i)\\\\\\\\s*(contains)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.contains.fortran\"}},\"comment\":\"Contains block.\",\"end\":\"(?i)(?=\\\\\\\\s*(?:end\\\\\\\\s*[;!\\\\\\\\n]|end\\\\\\\\s*procedure\\\\\\\\b))\",\"name\":\"meta.block.contains.fortran\",\"patterns\":[{\"include\":\"$self\"}]}]}]}]},\"procedure-name\":{\"captures\":{\"1\":{\"name\":\"entity.name.function.procedure.fortran\"}},\"comment\":\"Procedure name.\",\"match\":\"(?i)\\\\\\\\s*\\\\\\\\b([a-z]\\\\\\\\w*)\\\\\\\\b\"},\"procedure-name-list\":{\"begin\":\"(?i)(?=\\\\\\\\s*[a-z])\",\"comment\":\"Name list.\",\"contentName\":\"meta.name-list.fortran\",\"end\":\"(?=[;!\\\\\\\\n])\",\"patterns\":[{\"begin\":\"(?!\\\\\\\\s*\\\\\\\\n)\",\"end\":\"(,)|(?=[!;\\\\\\\\n])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"patterns\":[{\"include\":\"#procedure-name\"},{\"include\":\"#pointer-operators\"}]}]},\"procedure-specification-statement\":{\"begin\":\"(?i)(?=\\\\\\\\b(?:procedure)\\\\\\\\b)\",\"comment\":\"Introduced in the Fortran 2003 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.specification.procedure.fortran\",\"patterns\":[{\"include\":\"#procedure-type\"},{\"begin\":\"(?=\\\\\\\\s*(,|::|\\\\\\\\())\",\"comment\":\"Attribute list.\",\"contentName\":\"meta.attribute-list.procedure.fortran\",\"end\":\"(::)|(?=[;!\\\\\\\\n])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"patterns\":[{\"begin\":\"(,)|^|(?<=&)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=::|[,&;!\\\\\\\\n])\",\"patterns\":[{\"include\":\"#access-attribute\"},{\"include\":\"#intent-attribute\"},{\"include\":\"#optional-attribute\"},{\"include\":\"#pointer-attribute\"},{\"include\":\"#protected-attribute\"},{\"include\":\"#save-attribute\"},{\"include\":\"#invalid-word\"}]}]},{\"include\":\"#procedure-name-list\"}]},\"procedure-type\":{\"comment\":\"Introduced in the Fortran ???? standard.\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\b(procedure)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.procedure.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"contentName\":\"meta.type-spec.fortran\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#types\"},{\"include\":\"#procedure-name\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.procedure.fortran\"}},\"match\":\"(?i)\\\\\\\\b(procedure)\\\\\\\\b\"}]},\"program-definition\":{\"begin\":\"(?i)(?=\\\\\\\\b(program)\\\\\\\\b)\",\"comment\":\"Introduced in the Fortran 1977 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.program.fortran\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.program.fortran\"}},\"match\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(program)\\\\\\\\b\"},{\"applyEndPatternLast\":1,\"begin\":\"(?i)\\\\\\\\s*\\\\\\\\b([a-z]\\\\\\\\w*)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.program.fortran\"}},\"comment\":\"Program body.\",\"end\":\"(?ix)\\\\\\\\b(?:(end\\\\\\\\s*program)(?:\\\\\\\\s+([a-z_]\\\\\\\\w*))?|(end))\\\\\\\\b\\\\\\\\s*([^;!\\\\\\\\n]+)?(?=[;!\\\\\\\\n])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endprogram.fortran\"},\"2\":{\"name\":\"entity.name.program.fortran\"},\"3\":{\"name\":\"keyword.control.endprogram.fortran\"},\"4\":{\"name\":\"invalid.error.program-definition.fortran\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"comment\":\"Program specification block.\",\"end\":\"(?i)(?=\\\\\\\\b(?:end\\\\\\\\s*[;!\\\\\\\\n]|end\\\\\\\\s*program\\\\\\\\b))\",\"name\":\"meta.block.specification.program.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\b(contains)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.contains.fortran\"}},\"comment\":\"Program contains block.\",\"end\":\"(?i)(?=(?:end\\\\\\\\s*[;!\\\\\\\\n]|end\\\\\\\\s*program\\\\\\\\b))\",\"name\":\"meta.block.contains.fortran\",\"patterns\":[{\"include\":\"$base\"}]},{\"include\":\"$base\"}]}]}]},\"protected-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.protected.fortran\"}},\"comment\":\"Introduced in the Fortran 2003 standard.\",\"match\":\"(?i)\\\\\\\\s*\\\\\\\\b(protected)\\\\\\\\b\"},\"public-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.public.fortran\"}},\"comment\":\"Introduced in the Fortran 1990 standard.\",\"match\":\"(?i)\\\\\\\\s*\\\\\\\\b(public)\\\\\\\\b\"},\"pure-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.impure.fortran\"},\"2\":{\"name\":\"storage.modifier.pure.fortran\"}},\"comment\":\"Introduced in the Fortran 1995 standard.\",\"match\":\"(?i)\\\\\\\\s*\\\\\\\\b(?:(impure)|(pure))\\\\\\\\b\"},\"recursive-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.non_recursive.fortran\"},\"2\":{\"name\":\"storage.modifier.recursive.fortran\"}},\"comment\":\"Introduced in the Fortran 1977 standard.\",\"match\":\"(?i)\\\\\\\\s*\\\\\\\\b(?:(non_recursive)|(recursive))\\\\\\\\b\"},\"result-statement\":{\"begin\":\"(?i)\\\\\\\\s*\\\\\\\\b(result)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.result.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"comment\":\"Introduced in the Fortran 1990 standard.\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"patterns\":[{\"include\":\"#dummy-variable\"}]},\"return-statement\":{\"begin\":\"(?i)\\\\\\\\s*\\\\\\\\b(return)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.return.fortran\"}},\"comment\":\"Introduced in the Fortran 1977 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.statement.control.return.fortran\",\"patterns\":[{\"include\":\"#invalid-character\"}]},\"save-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.save.fortran\"}},\"comment\":\"Introduced in the Fortran 1977 standard.\",\"match\":\"(?i)\\\\\\\\s*\\\\\\\\b(save)\\\\\\\\b\"},\"select-case-construct\":{\"begin\":\"(?i)\\\\\\\\b(select\\\\\\\\s*case)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.selectcase.fortran\"}},\"comment\":\"Select case construct. Introduced in the Fortran 1990 standard.\",\"end\":\"(?i)\\\\\\\\b(end\\\\\\\\s*select)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endselect.fortran\"}},\"name\":\"meta.block.select.case.fortran\",\"patterns\":[{\"include\":\"#parentheses\"},{\"begin\":\"(?i)\\\\\\\\b(case)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.case.fortran\"}},\"end\":\"(?i)(?=[;!\\\\\\\\n])\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.default.fortran\"}},\"match\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(default)\\\\\\\\b\"},{\"include\":\"#parentheses\"},{\"include\":\"#invalid-word\"}]},{\"include\":\"$base\"}]},\"select-rank-construct\":{\"begin\":\"(?i)\\\\\\\\b(select\\\\\\\\s*rank)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.selectrank.fortran\"}},\"comment\":\"Select rank construct. Introduced in the Fortran 2008 standard.\",\"end\":\"(?i)\\\\\\\\b(end\\\\\\\\s*select)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endselect.fortran\"}},\"name\":\"meta.block.select.rank.fortran\",\"patterns\":[{\"include\":\"#parentheses\"},{\"begin\":\"(?i)\\\\\\\\b(rank)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.rank.fortran\"}},\"end\":\"(?i)(?=[;!\\\\\\\\n])\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.default.fortran\"}},\"match\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(default)\\\\\\\\b\"},{\"include\":\"#parentheses\"},{\"include\":\"#invalid-word\"}]},{\"include\":\"$base\"}]},\"select-type-construct\":{\"begin\":\"(?i)\\\\\\\\b(select\\\\\\\\s*type)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.selecttype.fortran\"}},\"comment\":\"Select type construct. Introduced in the Fortran 2003 standard.\",\"end\":\"(?i)\\\\\\\\b(end\\\\\\\\s*select)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endselect.fortran\"}},\"name\":\"meta.block.select.type.fortran\",\"patterns\":[{\"include\":\"#parentheses\"},{\"begin\":\"(?i)\\\\\\\\b(?:(class)|(type))\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.class.fortran\"},\"2\":{\"name\":\"keyword.control.type.fortran\"}},\"end\":\"(?i)(?=[;!\\\\\\\\n])\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.default.fortran\"}},\"match\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(default)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.is.fortran\"}},\"match\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(is)\\\\\\\\b\"},{\"include\":\"#parentheses\"},{\"include\":\"#invalid-word\"}]},{\"include\":\"$base\"}]},\"sequence-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.sequence.fortran\"}},\"comment\":\"Introduced in the Fortran 20?? standard.\",\"match\":\"(?i)\\\\\\\\s*\\\\\\\\b(sequence)\\\\\\\\b\"},\"specification-statements\":{\"patterns\":[{\"include\":\"#attribute-specification-statement\"},{\"include\":\"#common-statement\"},{\"include\":\"#data-statement\"},{\"include\":\"#equivalence-statement\"},{\"include\":\"#implicit-statement\"},{\"include\":\"#namelist-statement\"},{\"include\":\"#use-statement\"}]},\"stop-statement\":{\"begin\":\"(?i)\\\\\\\\s*\\\\\\\\b(stop)\\\\\\\\b(?:\\\\\\\\s*\\\\\\\\b([a-z]\\\\\\\\w*)\\\\\\\\b)?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.stop.fortran\"},\"2\":{\"name\":\"meta.label.stop.stop\"}},\"comment\":\"Introduced in the Fortran 1977 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.statement.control.stop.fortran\",\"patterns\":[{\"include\":\"#constants\"},{\"include\":\"#string-operators\"},{\"include\":\"#invalid-character\"}]},\"string-constant\":{\"comment\":\"Introduced in the Fortran 1977 standard.\",\"patterns\":[{\"applyEndPatternLast\":1,\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.fortran\"}},\"comment\":\"String\",\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.fortran\"}},\"name\":\"string.quoted.single.fortran\",\"patterns\":[{\"match\":\"''\",\"name\":\"constant.character.escape.apostrophe.fortran\"}]},{\"applyEndPatternLast\":1,\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.fortran\"}},\"comment\":\"String\",\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.fortran\"}},\"name\":\"string.quoted.double.fortran\",\"patterns\":[{\"match\":\"\\\\\"\\\\\"\",\"name\":\"constant.character.escape.quote.fortran\"}]}]},\"string-line-continuation-operator\":{\"begin\":\"(&)(?=\\\\\\\\s*\\\\\\\\n)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.line-continuation.fortran\"}},\"comment\":\"Operator that allows a line to be continued on the next line.\",\"end\":\"(?i)^(?:(?=\\\\\\\\s*[^\\\\\\\\s!&])|\\\\\\\\s*(&))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.line-continuation.fortran\"}},\"patterns\":[{\"include\":\"#comments\"},{\"match\":\"\\\\\\\\S.*\",\"name\":\"invalid.error.string-line-cont.fortran\"}]},\"string-operators\":{\"comment\":\"Introduced in the Fortran 19?? standard.\",\"match\":\"(\\\\\\\\/\\\\\\\\/)\",\"name\":\"keyword.other.concatination.fortran\"},\"submodule-definition\":{\"begin\":\"(?i)(?=\\\\\\\\b(submodule)\\\\\\\\s*\\\\\\\\()\",\"comment\":\"Introduced in the Fortran 2008 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.submodule.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(submodule)\\\\\\\\s*(\\\\\\\\()\\\\\\\\s*(\\\\\\\\w+)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.submodule.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"},\"3\":{\"name\":\"entity.name.class.submodule.fortran\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"patterns\":[]},{\"applyEndPatternLast\":1,\"begin\":\"(?i)\\\\\\\\s*\\\\\\\\b([a-z]\\\\\\\\w*)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.module.submodule.fortran\"}},\"comment\":\"Submodule body.\",\"end\":\"(?ix)\\\\\\\\s*\\\\\\\\b(?:(end\\\\\\\\s*submodule)(?:\\\\\\\\s+([a-z_]\\\\\\\\w*))?|(end))\\\\\\\\b \\\\\\\\s*([^;!\\\\\\\\n]+)?(?=[;!\\\\\\\\n])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.other.endsubmodule.fortran\"},\"2\":{\"name\":\"entity.name.module.submodule.fortran\"},\"3\":{\"name\":\"keyword.other.endsubmodule.fortran\"},\"4\":{\"name\":\"invalid.error.submodule.fortran\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"comment\":\"Submodule specification block.\",\"end\":\"(?i)(?=\\\\\\\\b(?:end\\\\\\\\s*[;!\\\\\\\\n]|end\\\\\\\\s*submodule\\\\\\\\b))\",\"name\":\"meta.block.specification.submodule.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\b(contains)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.contains.fortran\"}},\"comment\":\"Submodule contains block.\",\"end\":\"(?i)(?=\\\\\\\\s*(?:end\\\\\\\\s*[;!\\\\\\\\n]|end\\\\\\\\s*submodule\\\\\\\\b))\",\"name\":\"meta.block.contains.fortran\",\"patterns\":[{\"include\":\"$base\"}]},{\"include\":\"$base\"}]}]}]},\"subroutine-definition\":{\"begin\":\"(?i)(?=([^:'\\\\\";!\\\\\\\\n](?!\\\\\\\\bend))*\\\\\\\\bsubroutine\\\\\\\\b)\",\"comment\":\"Subroutine program unit. Introduced in the Fortran 1977 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.subroutine.fortran\",\"patterns\":[{\"begin\":\"(?i)(?=\\\\\\\\G\\\\\\\\s*(?!\\\\\\\\bsubroutine\\\\\\\\b))\",\"comment\":\"Attribute list.\",\"end\":\"(?i)(?=\\\\\\\\bsubroutine\\\\\\\\b)\",\"name\":\"meta.attribute-list.subroutine.fortran\",\"patterns\":[{\"include\":\"#elemental-attribute\"},{\"include\":\"#module-attribute\"},{\"include\":\"#pure-attribute\"},{\"include\":\"#recursive-attribute\"},{\"include\":\"#invalid-word\"}]},{\"begin\":\"(?i)\\\\\\\\s*\\\\\\\\b(subroutine)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.subroutine.fortran\"}},\"end\":\"(?=[;!\\\\\\\\n])\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b([a-z]\\\\\\\\w*)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.subroutine.fortran\"}},\"comment\":\"Subroutine body.\",\"end\":\"(?ix)\\\\\\\\b(?:(end\\\\\\\\s*subroutine)(?:\\\\\\\\s+([a-z_]\\\\\\\\w*))?|(end))\\\\\\\\b \\\\\\\\s*([^;!\\\\\\\\n]+)?(?=[;!\\\\\\\\n])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.other.endsubroutine.fortran\"},\"2\":{\"name\":\"entity.name.function.subroutine.fortran\"},\"3\":{\"name\":\"keyword.other.endsubroutine.fortran\"},\"4\":{\"name\":\"invalid.error.subroutine.fortran\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G(?!\\\\\\\\s*[;!\\\\\\\\n])\",\"comment\":\"Rest of the first line in subroutine construct.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.first-line.fortran\",\"patterns\":[{\"include\":\"#dummy-variable-list\"},{\"include\":\"#language-binding-attribute\"}]},{\"begin\":\"(?i)(?!\\\\\\\\b(?:end\\\\\\\\s*[;!\\\\\\\\n]|end\\\\\\\\s*subroutine\\\\\\\\b))\",\"comment\":\"Specification and execution block.\",\"end\":\"(?i)(?=\\\\\\\\b(?:end\\\\\\\\s*[;!\\\\\\\\n]|end\\\\\\\\s*subroutine\\\\\\\\b))\",\"name\":\"meta.block.specification.subroutine.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\b(contains)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.contains.fortran\"}},\"comment\":\"Contains block.\",\"end\":\"(?i)(?=(?:end\\\\\\\\s*[;!\\\\\\\\n]|end\\\\\\\\s*subroutine\\\\\\\\b))\",\"name\":\"meta.block.contains.fortran\",\"patterns\":[{\"include\":\"$base\"}]},{\"include\":\"$base\"}]}]}]}]},\"sync-all-statement\":{\"begin\":\"(?i)\\\\\\\\b(sync all|sync memory)(\\\\\\\\s*(?=\\\\\\\\())?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.sync-all-memory.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"comment\":\"Introduced in the Fortran 2018 standard.\",\"end\":\"(?<!\\\\\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"name\":\"meta.statement.sync-all-memory.fortran\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},\"sync-statement\":{\"begin\":\"(?i)\\\\\\\\b(sync images|sync team)\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.sync-images-team.fortran\"},\"2\":{\"name\":\"punctuation.parentheses.left.fortran\"}},\"comment\":\"Introduced in the Fortran 2018 standard.\",\"end\":\"(?<!\\\\\\\\G)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.parentheses.right.fortran\"}},\"name\":\"meta.statement.sync-images-team.fortran\",\"patterns\":[{\"include\":\"#parentheses-dummy-variables\"}]},\"target-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.target.fortran\"}},\"comment\":\"Introduced in the Fortran 1990 standard.\",\"match\":\"(?i)\\\\\\\\s*\\\\\\\\b(target)\\\\\\\\b\"},\"type-specification-statements\":{\"begin\":\"(?ix)(?=\\\\\\\\b(?:character|class|complex|double\\\\\\\\s*precision|double\\\\\\\\s*complex|integer|logical|real|type|dimension)\\\\\\\\b(?![^'\\\\\";!\\\\\\\\n:]*\\\\\\\\bfunction\\\\\\\\b))\",\"comment\":\"Supported types for function and escape :: if function is used as a variable name (which is bad practice).\",\"end\":\"(?=[\\\\\\\\);!\\\\\\\\n])\",\"name\":\"meta.specification.type.fortran\",\"patterns\":[{\"include\":\"#types\"},{\"begin\":\"(?=\\\\\\\\s*(,|::))\",\"comment\":\"Attribute list.\",\"contentName\":\"meta.attribute-list.type-specification-statements.fortran\",\"end\":\"(::)|(?=[;!\\\\\\\\n])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"patterns\":[{\"begin\":\"(,)|^|(?<=&)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=::|[,&;!\\\\\\\\n])\",\"patterns\":[{\"include\":\"#access-attribute\"},{\"include\":\"#allocatable-attribute\"},{\"include\":\"#asynchronous-attribute\"},{\"include\":\"#codimension-attribute\"},{\"include\":\"#contiguous-attribute\"},{\"include\":\"#dimension-attribute\"},{\"include\":\"#external-attribute\"},{\"include\":\"#intent-attribute\"},{\"include\":\"#intrinsic-attribute\"},{\"include\":\"#language-binding-attribute\"},{\"include\":\"#optional-attribute\"},{\"include\":\"#parameter-attribute\"},{\"include\":\"#pointer-attribute\"},{\"include\":\"#protected-attribute\"},{\"include\":\"#save-attribute\"},{\"include\":\"#target-attribute\"},{\"include\":\"#value-attribute\"},{\"include\":\"#volatile-attribute\"},{\"include\":\"#invalid-word\"}]}]},{\"include\":\"#name-list\"}]},\"types\":{\"patterns\":[{\"include\":\"#character-type\"},{\"include\":\"#derived-type\"},{\"include\":\"#logical-type\"},{\"include\":\"#numeric-type\"}]},\"unnamed-control-constructs\":{\"patterns\":[{\"include\":\"#associate-construct\"},{\"include\":\"#block-construct\"},{\"include\":\"#critical-construct\"},{\"include\":\"#do-construct\"},{\"include\":\"#forall-construct\"},{\"include\":\"#if-construct\"},{\"include\":\"#select-case-construct\"},{\"include\":\"#select-type-construct\"},{\"include\":\"#select-rank-construct\"},{\"include\":\"#where-construct\"}]},\"use-statement\":{\"begin\":\"(?i)\\\\\\\\b(use)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.use.fortran\"}},\"comment\":\"Introduced in the Fortran 1990 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"name\":\"meta.statement.use.fortran\",\"patterns\":[{\"begin\":\"(?=\\\\\\\\s*(,|::|\\\\\\\\())\",\"comment\":\"Attribute list.\",\"contentName\":\"meta.attribute-list.namelist.fortran\",\"end\":\"(::)|(?=[;!\\\\\\\\n])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.double-colon.fortran\"}},\"patterns\":[{\"begin\":\"(,)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=::|[,;!\\\\\\\\n])\",\"patterns\":[{\"include\":\"#intrinsic-attribute\"},{\"include\":\"#non-intrinsic-attribute\"},{\"include\":\"#invalid-word\"}]}]},{\"begin\":\"(?i)\\\\\\\\s*\\\\\\\\b([a-z]\\\\\\\\w*)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.class.module.fortran\"}},\"end\":\"(?=[;!\\\\\\\\n])\",\"patterns\":[{\"begin\":\"(,)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.comma.fortran\"}},\"end\":\"(?=::|[;!\\\\\\\\n])\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\s*\\\\\\\\b(only\\\\\\\\s*:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.only.fortran\"}},\"end\":\"(?=[;!\\\\\\\\n])\",\"patterns\":[{\"include\":\"#operator-keyword\"},{\"include\":\"$base\"}]},{\"begin\":\"(?i)(?=\\\\\\\\s*[a-z])\",\"contentName\":\"meta.name-list.fortran\",\"end\":\"(?=[;!\\\\\\\\n])\",\"patterns\":[{\"include\":\"#operator-keyword\"},{\"include\":\"$base\"}]}]}]}]},\"user-defined-operators\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.user-defined.fortran\"}},\"match\":\"(?i)\\\\\\\\s*(\\\\\\\\.[a-z]+\\\\\\\\.)\"},\"value-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.value.fortran\"}},\"comment\":\"Introduced in the Fortran 2003 standard.\",\"match\":\"(?i)\\\\\\\\s*\\\\\\\\b(value)\\\\\\\\b\"},\"variable\":{\"applyEndPatternLast\":1,\"begin\":\"(?i)\\\\\\\\b(?=[a-z])\",\"end\":\"(?<!\\\\\\\\G)\",\"name\":\"meta.parameter.fortran\",\"patterns\":[{\"include\":\"#brackets\"},{\"include\":\"#derived-type-operators\"},{\"include\":\"#parentheses-dummy-variables\"},{\"include\":\"#word\"}]},\"volatile-attribute\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.volatile.fortran\"}},\"comment\":\"Introduced in the Fortran 2003 standard.\",\"match\":\"(?i)\\\\\\\\s*\\\\\\\\b(volatile)\\\\\\\\b\"},\"where-construct\":{\"patterns\":[{\"applyEndPatternLast\":1,\"begin\":\"(?i)\\\\\\\\b(where)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.where.fortran\"}},\"comment\":\"Introduced in the Fortran 1990 standard.\",\"end\":\"(?<!\\\\\\\\G)\",\"patterns\":[{\"include\":\"#logical-control-expression\"},{\"begin\":\"(?<=\\\\\\\\))(?=\\\\\\\\s*[;!\\\\\\\\n])\",\"end\":\"(?i)\\\\\\\\b(end\\\\\\\\s*where)\\\\\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.endwhere.fortran\"}},\"name\":\"meta.block.where.fortran\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\s*\\\\\\\\b(else\\\\\\\\s*where)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.elsewhere.fortran\"}},\"end\":\"(?=[;!\\\\\\\\n])\",\"patterns\":[{\"include\":\"#parentheses\"},{\"include\":\"#invalid-word\"}]},{\"include\":\"$base\"}]},{\"begin\":\"(?i)(?<=\\\\\\\\))(?!\\\\\\\\s*[;!\\\\\\\\n])\",\"end\":\"\\\\\\\\n\",\"name\":\"meta.statement.control.where.fortran\",\"patterns\":[{\"include\":\"$base\"}]}]}]},\"while-attribute\":{\"begin\":\"(?i)\\\\\\\\G\\\\\\\\s*\\\\\\\\b(while)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.while.fortran\"}},\"comment\":\"Introduced in the Fortran 1995 standard.\",\"end\":\"(?=[;!\\\\\\\\n])\",\"patterns\":[{\"include\":\"#parentheses\"},{\"include\":\"#invalid-word\"}]},\"word\":{\"patterns\":[{\"match\":\"(?i)(?:\\\\\\\\G|(?<=\\\\\\\\%))\\\\\\\\s*\\\\\\\\b([a-z]\\\\\\\\w*)\\\\\\\\b\"}]}},\"scopeName\":\"source.fortran.free\",\"aliases\":[\"f90\",\"f95\",\"f03\",\"f08\",\"f18\"]}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DKykz6zU.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Polar\",\"name\":\"polar\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#rule\"},{\"include\":\"#rule-type\"},{\"include\":\"#inline-query\"},{\"include\":\"#resource-block\"},{\"include\":\"#test-block\"},{\"include\":\"#fixture\"}],\"repository\":{\"boolean\":{\"match\":\"\\\\\\\\b(true|false)\\\\\\\\b\",\"name\":\"constant.language.boolean\"},\"comment\":{\"match\":\"#.*\",\"name\":\"comment.line.number-sign\"},\"fixture\":{\"patterns\":[{\"match\":\"\\\\\\\\bfixture\\\\\\\\b\",\"name\":\"keyword.control\"},{\"begin\":\"\\\\\\\\btest\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control\"}},\"end\":\"\\\\\\\\bfixture\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control\"}}}]},\"inline-query\":{\"begin\":\"\\\\\\\\?=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control\"}},\"end\":\";\",\"name\":\"meta.inline-query\",\"patterns\":[{\"include\":\"#term\"}]},\"keyword\":{\"patterns\":[{\"match\":\"\\\\\\\\b(cut|or|debug|print|in|forall|if|and|of|not|matches|type|on|global)\\\\\\\\b\",\"name\":\"constant.character\"}]},\"number\":{\"patterns\":[{\"match\":\"\\\\\\\\b[+-]?\\\\\\\\d+(?:(\\\\\\\\.)\\\\\\\\d+(?:e[+-]?\\\\\\\\d+)?|(?:e[+-]?\\\\\\\\d+))\\\\\\\\b\",\"name\":\"constant.numeric.float\"},{\"match\":\"\\\\\\\\b(\\\\\\\\+|\\\\\\\\-)[\\\\\\\\d]+\\\\\\\\b\",\"name\":\"constant.numeric.integer\"},{\"match\":\"\\\\\\\\b[\\\\\\\\d]+\\\\\\\\b\",\"name\":\"constant.numeric.natural\"}]},\"object-literal\":{\"begin\":\"([a-zA-Z_][a-zA-Z0-9_]*(?:::[a-zA-Z0-9_]+)*)\\\\\\\\s*\\\\\\\\{\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.type.resource\"}},\"end\":\"\\\\\\\\}\",\"name\":\"constant.other.object-literal\",\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#number\"},{\"include\":\"#boolean\"}]},\"operator\":{\"captures\":{\"1\":{\"name\":\"keyword.control\"}},\"match\":\"(\\\\\\\\+|-|\\\\\\\\*|\\\\\\\\/|<|>|=|!)\"},\"resource-block\":{\"begin\":\"(?<resourceType>[a-zA-Z_][a-zA-Z0-9_]*(?:::[a-zA-Z0-9_]+)*){0}((?:(resource|actor)\\\\\\\\s+(\\\\\\\\g<resourceType>)(?:\\\\\\\\s+(extends)\\\\\\\\s+(\\\\\\\\g<resourceType>(?:\\\\\\\\s*,\\\\\\\\s*\\\\\\\\g<resourceType>)*)\\\\\\\\s*,?\\\\\\\\s*)?)|(global))\\\\\\\\s*{\",\"beginCaptures\":{\"3\":{\"comment\":\"actor|resource\",\"name\":\"keyword.control\"},\"4\":{\"comment\":\"declared resource type\",\"name\":\"entity.name.type\"},\"5\":{\"comment\":\"extends\",\"name\":\"keyword.control\"},\"6\":{\"comment\":\"list of extended resources\",\"patterns\":[{\"match\":\"([a-zA-Z_][a-zA-Z0-9_]*(?:::[a-zA-Z0-9_]+)*)\",\"name\":\"entity.name.type\"}]},\"7\":{\"comment\":\"global\",\"name\":\"keyword.control\"}},\"end\":\"\\\\\\\\}\",\"name\":\"meta.resource-block\",\"patterns\":[{\"match\":\";\",\"name\":\"punctuation.separator.sequence.declarations\"},{\"begin\":\"\\\\\\\\{\",\"end\":\"\\\\\\\\}\",\"name\":\"meta.relation-declaration\",\"patterns\":[{\"include\":\"#specializer\"},{\"include\":\"#comment\"},{\"match\":\",\",\"name\":\"punctuation.separator.sequence.dict\"}]},{\"include\":\"#term\"}]},\"rule\":{\"name\":\"meta.rule\",\"patterns\":[{\"include\":\"#rule-functor\"},{\"begin\":\"\\\\\\\\bif\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.if\"}},\"end\":\";\",\"patterns\":[{\"include\":\"#term\"}]},{\"match\":\";\"}]},\"rule-functor\":{\"begin\":\"([a-zA-Z_][a-zA-Z0-9_]*(?:::[a-zA-Z0-9_]+)*)\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.rule\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#specializer\"},{\"match\":\",\",\"name\":\"punctuation.separator.sequence.list\"},{\"include\":\"#term\"}]},\"rule-type\":{\"begin\":\"\\\\\\\\btype\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.type-decl\"}},\"end\":\";\",\"name\":\"meta.rule-type\",\"patterns\":[{\"include\":\"#rule-functor\"}]},\"specializer\":{\"captures\":{\"1\":{\"name\":\"entity.name.type.resource\"}},\"match\":\"[a-zA-Z_][a-zA-Z0-9_]*(?:::[a-zA-Z0-9_]+)*\\\\\\\\s*:\\\\\\\\s*([a-zA-Z_][a-zA-Z0-9_]*(?:::[a-zA-Z0-9_]+)*)\"},\"string\":{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape\"}]},\"term\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#number\"},{\"include\":\"#keyword\"},{\"include\":\"#operator\"},{\"include\":\"#boolean\"},{\"include\":\"#object-literal\"},{\"begin\":\"\\\\\\\\[\",\"end\":\"\\\\\\\\]\",\"name\":\"meta.bracket.list\",\"patterns\":[{\"include\":\"#term\"},{\"match\":\",\",\"name\":\"punctuation.separator.sequence.list\"}]},{\"begin\":\"\\\\\\\\{\",\"end\":\"\\\\\\\\}\",\"name\":\"meta.bracket.dict\",\"patterns\":[{\"include\":\"#term\"},{\"match\":\",\",\"name\":\"punctuation.separator.sequence.dict\"}]},{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"name\":\"meta.parens\",\"patterns\":[{\"include\":\"#term\"}]}]},\"test-block\":{\"begin\":\"(test)\\\\\\\\s+(\\\\\"[^\\\\\"]*\\\\\")\\\\\\\\s*\\\\\\\\{\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control\"},\"2\":{\"name\":\"string.quoted.double\"}},\"end\":\"\\\\\\\\}\",\"name\":\"meta.test-block\",\"patterns\":[{\"begin\":\"(setup)\\\\\\\\s*\\\\\\\\{\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control\"}},\"end\":\"\\\\\\\\}\",\"name\":\"meta.test-setup\",\"patterns\":[{\"include\":\"#rule\"},{\"include\":\"#comment\"},{\"include\":\"#fixture\"}]},{\"include\":\"#rule\"},{\"match\":\"\\\\\\\\b(assert|assert_not)\\\\\\\\b\",\"name\":\"keyword.other\"},{\"include\":\"#comment\"}]}},\"scopeName\":\"source.polar\"}')),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DLPipH_Q.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"--\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}]},_={defaultToken:\"\",tokenPostfix:\".sql\",ignoreCase:!0,brackets:[{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],keywords:[\"ALL\",\"ANALYSE\",\"ANALYZE\",\"AND\",\"ANY\",\"ARRAY\",\"AS\",\"ASC\",\"ASYMMETRIC\",\"AUTHORIZATION\",\"BINARY\",\"BOTH\",\"CASE\",\"CAST\",\"CHECK\",\"COLLATE\",\"COLLATION\",\"COLUMN\",\"CONCURRENTLY\",\"CONSTRAINT\",\"CREATE\",\"CROSS\",\"CURRENT_CATALOG\",\"CURRENT_DATE\",\"CURRENT_ROLE\",\"CURRENT_SCHEMA\",\"CURRENT_TIME\",\"CURRENT_TIMESTAMP\",\"CURRENT_USER\",\"DEFAULT\",\"DEFERRABLE\",\"DESC\",\"DISTINCT\",\"DO\",\"ELSE\",\"END\",\"EXCEPT\",\"FALSE\",\"FETCH\",\"FOR\",\"FOREIGN\",\"FREEZE\",\"FROM\",\"FULL\",\"GRANT\",\"GROUP\",\"HAVING\",\"ILIKE\",\"IN\",\"INITIALLY\",\"INNER\",\"INTERSECT\",\"INTO\",\"IS\",\"ISNULL\",\"JOIN\",\"LATERAL\",\"LEADING\",\"LEFT\",\"LIKE\",\"LIMIT\",\"LOCALTIME\",\"LOCALTIMESTAMP\",\"NATURAL\",\"NOT\",\"NOTNULL\",\"NULL\",\"OFFSET\",\"ON\",\"ONLY\",\"OR\",\"ORDER\",\"OUTER\",\"OVERLAPS\",\"PLACING\",\"PRIMARY\",\"REFERENCES\",\"RETURNING\",\"RIGHT\",\"SELECT\",\"SESSION_USER\",\"SIMILAR\",\"SOME\",\"SYMMETRIC\",\"TABLE\",\"TABLESAMPLE\",\"THEN\",\"TO\",\"TRAILING\",\"TRUE\",\"UNION\",\"UNIQUE\",\"USER\",\"USING\",\"VARIADIC\",\"VERBOSE\",\"WHEN\",\"WHERE\",\"WINDOW\",\"WITH\"],operators:[\"AND\",\"BETWEEN\",\"IN\",\"LIKE\",\"NOT\",\"OR\",\"IS\",\"NULL\",\"INTERSECT\",\"UNION\",\"INNER\",\"JOIN\",\"LEFT\",\"OUTER\",\"RIGHT\"],builtinFunctions:[\"abbrev\",\"abs\",\"acldefault\",\"aclexplode\",\"acos\",\"acosd\",\"acosh\",\"age\",\"any\",\"area\",\"array_agg\",\"array_append\",\"array_cat\",\"array_dims\",\"array_fill\",\"array_length\",\"array_lower\",\"array_ndims\",\"array_position\",\"array_positions\",\"array_prepend\",\"array_remove\",\"array_replace\",\"array_to_json\",\"array_to_string\",\"array_to_tsvector\",\"array_upper\",\"ascii\",\"asin\",\"asind\",\"asinh\",\"atan\",\"atan2\",\"atan2d\",\"atand\",\"atanh\",\"avg\",\"bit\",\"bit_and\",\"bit_count\",\"bit_length\",\"bit_or\",\"bit_xor\",\"bool_and\",\"bool_or\",\"bound_box\",\"box\",\"brin_desummarize_range\",\"brin_summarize_new_values\",\"brin_summarize_range\",\"broadcast\",\"btrim\",\"cardinality\",\"cbrt\",\"ceil\",\"ceiling\",\"center\",\"char_length\",\"character_length\",\"chr\",\"circle\",\"clock_timestamp\",\"coalesce\",\"col_description\",\"concat\",\"concat_ws\",\"convert\",\"convert_from\",\"convert_to\",\"corr\",\"cos\",\"cosd\",\"cosh\",\"cot\",\"cotd\",\"count\",\"covar_pop\",\"covar_samp\",\"cume_dist\",\"current_catalog\",\"current_database\",\"current_date\",\"current_query\",\"current_role\",\"current_schema\",\"current_schemas\",\"current_setting\",\"current_time\",\"current_timestamp\",\"current_user\",\"currval\",\"cursor_to_xml\",\"cursor_to_xmlschema\",\"date_bin\",\"date_part\",\"date_trunc\",\"database_to_xml\",\"database_to_xml_and_xmlschema\",\"database_to_xmlschema\",\"decode\",\"degrees\",\"dense_rank\",\"diagonal\",\"diameter\",\"div\",\"encode\",\"enum_first\",\"enum_last\",\"enum_range\",\"every\",\"exp\",\"extract\",\"factorial\",\"family\",\"first_value\",\"floor\",\"format\",\"format_type\",\"gcd\",\"gen_random_uuid\",\"generate_series\",\"generate_subscripts\",\"get_bit\",\"get_byte\",\"get_current_ts_config\",\"gin_clean_pending_list\",\"greatest\",\"grouping\",\"has_any_column_privilege\",\"has_column_privilege\",\"has_database_privilege\",\"has_foreign_data_wrapper_privilege\",\"has_function_privilege\",\"has_language_privilege\",\"has_schema_privilege\",\"has_sequence_privilege\",\"has_server_privilege\",\"has_table_privilege\",\"has_tablespace_privilege\",\"has_type_privilege\",\"height\",\"host\",\"hostmask\",\"inet_client_addr\",\"inet_client_port\",\"inet_merge\",\"inet_same_family\",\"inet_server_addr\",\"inet_server_port\",\"initcap\",\"isclosed\",\"isempty\",\"isfinite\",\"isopen\",\"json_agg\",\"json_array_elements\",\"json_array_elements_text\",\"json_array_length\",\"json_build_array\",\"json_build_object\",\"json_each\",\"json_each_text\",\"json_extract_path\",\"json_extract_path_text\",\"json_object\",\"json_object_agg\",\"json_object_keys\",\"json_populate_record\",\"json_populate_recordset\",\"json_strip_nulls\",\"json_to_record\",\"json_to_recordset\",\"json_to_tsvector\",\"json_typeof\",\"jsonb_agg\",\"jsonb_array_elements\",\"jsonb_array_elements_text\",\"jsonb_array_length\",\"jsonb_build_array\",\"jsonb_build_object\",\"jsonb_each\",\"jsonb_each_text\",\"jsonb_extract_path\",\"jsonb_extract_path_text\",\"jsonb_insert\",\"jsonb_object\",\"jsonb_object_agg\",\"jsonb_object_keys\",\"jsonb_path_exists\",\"jsonb_path_match\",\"jsonb_path_query\",\"jsonb_path_query_array\",\"jsonb_path_exists_tz\",\"jsonb_path_query_first\",\"jsonb_path_query_array_tz\",\"jsonb_path_query_first_tz\",\"jsonb_path_query_tz\",\"jsonb_path_match_tz\",\"jsonb_populate_record\",\"jsonb_populate_recordset\",\"jsonb_pretty\",\"jsonb_set\",\"jsonb_set_lax\",\"jsonb_strip_nulls\",\"jsonb_to_record\",\"jsonb_to_recordset\",\"jsonb_to_tsvector\",\"jsonb_typeof\",\"justify_days\",\"justify_hours\",\"justify_interval\",\"lag\",\"last_value\",\"lastval\",\"lcm\",\"lead\",\"least\",\"left\",\"length\",\"line\",\"ln\",\"localtime\",\"localtimestamp\",\"log\",\"log10\",\"lower\",\"lower_inc\",\"lower_inf\",\"lpad\",\"lseg\",\"ltrim\",\"macaddr8_set7bit\",\"make_date\",\"make_interval\",\"make_time\",\"make_timestamp\",\"make_timestamptz\",\"makeaclitem\",\"masklen\",\"max\",\"md5\",\"min\",\"min_scale\",\"mod\",\"mode\",\"multirange\",\"netmask\",\"network\",\"nextval\",\"normalize\",\"now\",\"npoints\",\"nth_value\",\"ntile\",\"nullif\",\"num_nonnulls\",\"num_nulls\",\"numnode\",\"obj_description\",\"octet_length\",\"overlay\",\"parse_ident\",\"path\",\"pclose\",\"percent_rank\",\"percentile_cont\",\"percentile_disc\",\"pg_advisory_lock\",\"pg_advisory_lock_shared\",\"pg_advisory_unlock\",\"pg_advisory_unlock_all\",\"pg_advisory_unlock_shared\",\"pg_advisory_xact_lock\",\"pg_advisory_xact_lock_shared\",\"pg_backend_pid\",\"pg_backup_start_time\",\"pg_blocking_pids\",\"pg_cancel_backend\",\"pg_client_encoding\",\"pg_collation_actual_version\",\"pg_collation_is_visible\",\"pg_column_compression\",\"pg_column_size\",\"pg_conf_load_time\",\"pg_control_checkpoint\",\"pg_control_init\",\"pg_control_recovery\",\"pg_control_system\",\"pg_conversion_is_visible\",\"pg_copy_logical_replication_slot\",\"pg_copy_physical_replication_slot\",\"pg_create_logical_replication_slot\",\"pg_create_physical_replication_slot\",\"pg_create_restore_point\",\"pg_current_logfile\",\"pg_current_snapshot\",\"pg_current_wal_flush_lsn\",\"pg_current_wal_insert_lsn\",\"pg_current_wal_lsn\",\"pg_current_xact_id\",\"pg_current_xact_id_if_assigned\",\"pg_current_xlog_flush_location\",\"pg_current_xlog_insert_location\",\"pg_current_xlog_location\",\"pg_database_size\",\"pg_describe_object\",\"pg_drop_replication_slot\",\"pg_event_trigger_ddl_commands\",\"pg_event_trigger_dropped_objects\",\"pg_event_trigger_table_rewrite_oid\",\"pg_event_trigger_table_rewrite_reason\",\"pg_export_snapshot\",\"pg_filenode_relation\",\"pg_function_is_visible\",\"pg_get_catalog_foreign_keys\",\"pg_get_constraintdef\",\"pg_get_expr\",\"pg_get_function_arguments\",\"pg_get_function_identity_arguments\",\"pg_get_function_result\",\"pg_get_functiondef\",\"pg_get_indexdef\",\"pg_get_keywords\",\"pg_get_object_address\",\"pg_get_owned_sequence\",\"pg_get_ruledef\",\"pg_get_serial_sequence\",\"pg_get_statisticsobjdef\",\"pg_get_triggerdef\",\"pg_get_userbyid\",\"pg_get_viewdef\",\"pg_get_wal_replay_pause_state\",\"pg_has_role\",\"pg_identify_object\",\"pg_identify_object_as_address\",\"pg_import_system_collations\",\"pg_index_column_has_property\",\"pg_index_has_property\",\"pg_indexam_has_property\",\"pg_indexes_size\",\"pg_is_in_backup\",\"pg_is_in_recovery\",\"pg_is_other_temp_schema\",\"pg_is_wal_replay_paused\",\"pg_is_xlog_replay_paused\",\"pg_jit_available\",\"pg_last_committed_xact\",\"pg_last_wal_receive_lsn\",\"pg_last_wal_replay_lsn\",\"pg_last_xact_replay_timestamp\",\"pg_last_xlog_receive_location\",\"pg_last_xlog_replay_location\",\"pg_listening_channels\",\"pg_log_backend_memory_contexts\",\"pg_logical_emit_message\",\"pg_logical_slot_get_binary_changes\",\"pg_logical_slot_get_changes\",\"pg_logical_slot_peek_binary_changes\",\"pg_logical_slot_peek_changes\",\"pg_ls_archive_statusdir\",\"pg_ls_dir\",\"pg_ls_logdir\",\"pg_ls_tmpdir\",\"pg_ls_waldir\",\"pg_mcv_list_items\",\"pg_my_temp_schema\",\"pg_notification_queue_usage\",\"pg_opclass_is_visible\",\"pg_operator_is_visible\",\"pg_opfamily_is_visible\",\"pg_options_to_table\",\"pg_partition_ancestors\",\"pg_partition_root\",\"pg_partition_tree\",\"pg_postmaster_start_time\",\"pg_promote\",\"pg_read_binary_file\",\"pg_read_file\",\"pg_relation_filenode\",\"pg_relation_filepath\",\"pg_relation_size\",\"pg_reload_conf\",\"pg_replication_origin_advance\",\"pg_replication_origin_create\",\"pg_replication_origin_drop\",\"pg_replication_origin_oid\",\"pg_replication_origin_progress\",\"pg_replication_origin_session_is_setup\",\"pg_replication_origin_session_progress\",\"pg_replication_origin_session_reset\",\"pg_replication_origin_session_setup\",\"pg_replication_origin_xact_reset\",\"pg_replication_origin_xact_setup\",\"pg_replication_slot_advance\",\"pg_rotate_logfile\",\"pg_safe_snapshot_blocking_pids\",\"pg_size_bytes\",\"pg_size_pretty\",\"pg_sleep\",\"pg_sleep_for\",\"pg_sleep_until\",\"pg_snapshot_xip\",\"pg_snapshot_xmax\",\"pg_snapshot_xmin\",\"pg_start_backup\",\"pg_stat_file\",\"pg_statistics_obj_is_visible\",\"pg_stop_backup\",\"pg_switch_wal\",\"pg_switch_xlog\",\"pg_table_is_visible\",\"pg_table_size\",\"pg_tablespace_databases\",\"pg_tablespace_location\",\"pg_tablespace_size\",\"pg_terminate_backend\",\"pg_total_relation_size\",\"pg_trigger_depth\",\"pg_try_advisory_lock\",\"pg_try_advisory_lock_shared\",\"pg_try_advisory_xact_lock\",\"pg_try_advisory_xact_lock_shared\",\"pg_ts_config_is_visible\",\"pg_ts_dict_is_visible\",\"pg_ts_parser_is_visible\",\"pg_ts_template_is_visible\",\"pg_type_is_visible\",\"pg_typeof\",\"pg_visible_in_snapshot\",\"pg_wal_lsn_diff\",\"pg_wal_replay_pause\",\"pg_wal_replay_resume\",\"pg_walfile_name\",\"pg_walfile_name_offset\",\"pg_xact_commit_timestamp\",\"pg_xact_commit_timestamp_origin\",\"pg_xact_status\",\"pg_xlog_location_diff\",\"pg_xlog_replay_pause\",\"pg_xlog_replay_resume\",\"pg_xlogfile_name\",\"pg_xlogfile_name_offset\",\"phraseto_tsquery\",\"pi\",\"plainto_tsquery\",\"point\",\"polygon\",\"popen\",\"position\",\"power\",\"pqserverversion\",\"query_to_xml\",\"query_to_xml_and_xmlschema\",\"query_to_xmlschema\",\"querytree\",\"quote_ident\",\"quote_literal\",\"quote_nullable\",\"radians\",\"radius\",\"random\",\"range_agg\",\"range_intersect_agg\",\"range_merge\",\"rank\",\"regexp_count\",\"regexp_instr\",\"regexp_like\",\"regexp_match\",\"regexp_matches\",\"regexp_replace\",\"regexp_split_to_array\",\"regexp_split_to_table\",\"regexp_substr\",\"regr_avgx\",\"regr_avgy\",\"regr_count\",\"regr_intercept\",\"regr_r2\",\"regr_slope\",\"regr_sxx\",\"regr_sxy\",\"regr_syy\",\"repeat\",\"replace\",\"reverse\",\"right\",\"round\",\"row_number\",\"row_security_active\",\"row_to_json\",\"rpad\",\"rtrim\",\"scale\",\"schema_to_xml\",\"schema_to_xml_and_xmlschema\",\"schema_to_xmlschema\",\"session_user\",\"set_bit\",\"set_byte\",\"set_config\",\"set_masklen\",\"setseed\",\"setval\",\"setweight\",\"sha224\",\"sha256\",\"sha384\",\"sha512\",\"shobj_description\",\"sign\",\"sin\",\"sind\",\"sinh\",\"slope\",\"split_part\",\"sprintf\",\"sqrt\",\"starts_with\",\"statement_timestamp\",\"stddev\",\"stddev_pop\",\"stddev_samp\",\"string_agg\",\"string_to_array\",\"string_to_table\",\"strip\",\"strpos\",\"substr\",\"substring\",\"sum\",\"suppress_redundant_updates_trigger\",\"table_to_xml\",\"table_to_xml_and_xmlschema\",\"table_to_xmlschema\",\"tan\",\"tand\",\"tanh\",\"text\",\"timeofday\",\"timezone\",\"to_ascii\",\"to_char\",\"to_date\",\"to_hex\",\"to_json\",\"to_number\",\"to_regclass\",\"to_regcollation\",\"to_regnamespace\",\"to_regoper\",\"to_regoperator\",\"to_regproc\",\"to_regprocedure\",\"to_regrole\",\"to_regtype\",\"to_timestamp\",\"to_tsquery\",\"to_tsvector\",\"transaction_timestamp\",\"translate\",\"trim\",\"trim_array\",\"trim_scale\",\"trunc\",\"ts_debug\",\"ts_delete\",\"ts_filter\",\"ts_headline\",\"ts_lexize\",\"ts_parse\",\"ts_rank\",\"ts_rank_cd\",\"ts_rewrite\",\"ts_stat\",\"ts_token_type\",\"tsquery_phrase\",\"tsvector_to_array\",\"tsvector_update_trigger\",\"tsvector_update_trigger_column\",\"txid_current\",\"txid_current_if_assigned\",\"txid_current_snapshot\",\"txid_snapshot_xip\",\"txid_snapshot_xmax\",\"txid_snapshot_xmin\",\"txid_status\",\"txid_visible_in_snapshot\",\"unistr\",\"unnest\",\"upper\",\"upper_inc\",\"upper_inf\",\"user\",\"var_pop\",\"var_samp\",\"variance\",\"version\",\"websearch_to_tsquery\",\"width\",\"width_bucket\",\"xml_is_well_formed\",\"xml_is_well_formed_content\",\"xml_is_well_formed_document\",\"xmlagg\",\"xmlcomment\",\"xmlconcat\",\"xmlelement\",\"xmlexists\",\"xmlforest\",\"xmlparse\",\"xmlpi\",\"xmlroot\",\"xmlserialize\",\"xpath\",\"xpath_exists\"],builtinVariables:[],pseudoColumns:[],tokenizer:{root:[{include:\"@comments\"},{include:\"@whitespace\"},{include:\"@pseudoColumns\"},{include:\"@numbers\"},{include:\"@strings\"},{include:\"@complexIdentifiers\"},{include:\"@scopes\"},[/[;,.]/,\"delimiter\"],[/[()]/,\"@brackets\"],[/[\\w@#$]+/,{cases:{\"@operators\":\"operator\",\"@builtinVariables\":\"predefined\",\"@builtinFunctions\":\"predefined\",\"@keywords\":\"keyword\",\"@default\":\"identifier\"}}],[/[<>=!%&+\\-*/|~^]/,\"operator\"]],whitespace:[[/\\s+/,\"white\"]],comments:[[/--+.*/,\"comment\"],[/\\/\\*/,{token:\"comment.quote\",next:\"@comment\"}]],comment:[[/[^*/]+/,\"comment\"],[/\\*\\//,{token:\"comment.quote\",next:\"@pop\"}],[/./,\"comment\"]],pseudoColumns:[[/[$][A-Za-z_][\\w@#$]*/,{cases:{\"@pseudoColumns\":\"predefined\",\"@default\":\"identifier\"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,\"number\"],[/[$][+-]*\\d*(\\.\\d*)?/,\"number\"],[/((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][\\-+]?\\d+)?/,\"number\"]],strings:[[/'/,{token:\"string\",next:\"@string\"}]],string:[[/[^']+/,\"string\"],[/''/,\"string\"],[/'/,{token:\"string\",next:\"@pop\"}]],complexIdentifiers:[[/\"/,{token:\"identifier.quote\",next:\"@quotedIdentifier\"}]],quotedIdentifier:[[/[^\"]+/,\"identifier\"],[/\"\"/,\"identifier\"],[/\"/,{token:\"identifier.quote\",next:\"@pop\"}]],scopes:[]}};export{e as conf,_ as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/DLbgOhZU.js",
    "content": "const a=Object.freeze(JSON.parse('{\"displayName\":\"Narrat Language\",\"name\":\"narrat\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#expression\"}],\"repository\":{\"commands\":{\"patterns\":[{\"match\":\"\\\\\\\\b(set|var)\\\\\\\\b\",\"name\":\"keyword.commands.variables.narrat\"},{\"match\":\"\\\\\\\\b(talk|think)\\\\\\\\b\",\"name\":\"keyword.commands.text.narrat\"},{\"match\":\"\\\\\\\\b(jump|run|wait|return|save|save_prompt)\",\"name\":\"keyword.commands.flow.narrat\"},{\"match\":\"\\\\\\\\b(log|clear_dialog)\\\\\\\\b\",\"name\":\"keyword.commands.helpers.narrat\"},{\"match\":\"\\\\\\\\b(set_screen|empty_layer|set_button)\",\"name\":\"keyword.commands.screens.narrat\"},{\"match\":\"\\\\\\\\b(play|pause|stop)\\\\\\\\b\",\"name\":\"keyword.commands.audio.narrat\"},{\"match\":\"\\\\\\\\b(notify|enable_notifications|disable_notifications)\\\\\\\\b\",\"name\":\"keyword.commands.notifications.narrat\"},{\"match\":\"\\\\\\\\b(set_stat|get_stat_value|add_stat)\",\"name\":\"keyword.commands.stats.narrat\"},{\"match\":\"\\\\\\\\b(neg|abs|random|random_float|random_from_args|min|max|clamp|floor|round|ceil|sqrt|^)\\\\\\\\b\",\"name\":\"keyword.commands.math.narrat\"},{\"match\":\"\\\\\\\\b(concat|join)\\\\\\\\b\",\"name\":\"keyword.commands.string.narrat\"},{\"match\":\"\\\\\\\\b(text_field)\\\\\\\\b\",\"name\":\"keyword.commands.text_field.narrat\"},{\"match\":\"\\\\\\\\b(add_level|set_level|add_xp|roll|get_level|get_xp)\\\\\\\\b\",\"name\":\"keyword.commands.skills.narrat\"},{\"match\":\"\\\\\\\\b(add_item|remove_item|enable_interaction|disable_interaction|has_item?|item_amount?)\",\"name\":\"keyword.commands.inventory.narrat\"},{\"match\":\"\\\\\\\\b(start_quest|start_objective|complete_objective|complete_quest|quest_started?|objective_started?|quest_completed?|objective_completed?)\",\"name\":\"keyword.commands.quests.narrat\"}]},\"comments\":{\"patterns\":[{\"match\":\"\\\\\\\\/\\\\\\\\/.*$\",\"name\":\"comment.line.narrat\"}]},\"expression\":{\"patterns\":[{\"include\":\"#keywords\"},{\"include\":\"#commands\"},{\"include\":\"#operators\"},{\"include\":\"#primitives\"},{\"include\":\"#strings\"},{\"include\":\"#paren-expression\"}]},\"interpolation\":{\"patterns\":[{\"match\":\"(\\\\\\\\w|\\\\\\\\.)+\",\"name\":\"variable.interpolation.narrat\"}]},\"keywords\":{\"patterns\":[{\"match\":\"\\\\\\\\b(if|else|choice)\\\\\\\\b\",\"name\":\"keyword.control.narrat\"},{\"match\":\"\\\\\\\\$[\\\\\\\\w|\\\\\\\\.]+\\\\\\\\b\",\"name\":\"variable.value.narrat\"},{\"match\":\"^\\\\\\\\w+(?=(\\\\\\\\s|\\\\\\\\w)*:)\",\"name\":\"entity.name.function.narrat\"},{\"match\":\"^\\\\\\\\w+(?!(\\\\\\\\s|\\\\\\\\w)*:)\",\"name\":\"invalid.label.narrat\"},{\"match\":\"(?<=\\\\\\\\w)[^^](\\\\\\\\b\\\\\\\\w+\\\\\\\\b)(?=(\\\\\\\\s|\\\\\\\\w)*:)\",\"name\":\"entity.other.attribute-name\"}]},\"operators\":{\"patterns\":[{\"match\":\"(&&|\\\\\\\\|\\\\\\\\||!=|==|>=|<=|<|>|!|\\\\\\\\?)\\\\\\\\s\",\"name\":\"keyword.operator.logic.narrat\"},{\"match\":\"(\\\\\\\\+|-|\\\\\\\\*|\\\\\\\\/)\\\\\\\\s\",\"name\":\"keyword.operator.arithmetic.narrat\"}]},\"paren-expression\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.paren.open\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.paren.close\"}},\"name\":\"expression.group\",\"patterns\":[{\"include\":\"#expression\"}]},\"primitives\":{\"patterns\":[{\"match\":\"\\\\\\\\b\\\\\\\\d+\\\\\\\\b\",\"name\":\"constant.numeric.narrat\"},{\"match\":\"\\\\\\\\btrue\\\\\\\\b\",\"name\":\"constant.language.true.narrat\"},{\"match\":\"\\\\\\\\bfalse\\\\\\\\b\",\"name\":\"constant.language.false.narrat\"},{\"match\":\"\\\\\\\\bnull\\\\\\\\b\",\"name\":\"constant.language.null.narrat\"},{\"match\":\"\\\\\\\\bundefined\\\\\\\\b\",\"name\":\"constant.language.undefined.narrat\"}]},\"strings\":{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.narrat\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.narrat\"},{\"begin\":\"%{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.template.open\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.template.close.narrat\"}},\"name\":\"expression.template\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#interpolation\"}]}]}},\"scopeName\":\"source.narrat\",\"aliases\":[\"nar\"]}')),e=[a];export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DLs3tTet.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{blockComment:[\"/*\",\"*/\"],lineComment:\"//\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\",notIn:[\"string\"]},{open:\"[\",close:\"]\",notIn:[\"string\"]},{open:\"(\",close:\")\",notIn:[\"string\"]},{open:'\"',close:'\"',notIn:[\"string\"]},{open:\"'\",close:\"'\",notIn:[\"string\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"<\",close:\">\"}]},o={defaultToken:\"\",tokenPostfix:\".flow\",keywords:[\"import\",\"require\",\"export\",\"forbid\",\"native\",\"if\",\"else\",\"cast\",\"unsafe\",\"switch\",\"default\"],types:[\"io\",\"mutable\",\"bool\",\"int\",\"double\",\"string\",\"flow\",\"void\",\"ref\",\"true\",\"false\",\"with\"],operators:[\"=\",\">\",\"<\",\"<=\",\">=\",\"==\",\"!\",\"!=\",\":=\",\"::=\",\"&&\",\"||\",\"+\",\"-\",\"*\",\"/\",\"@\",\"&\",\"%\",\":\",\"->\",\"\\\\\",\"$\",\"??\",\"^\"],symbols:/[@$=><!~?:&|+\\-*\\\\\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/[a-zA-Z_]\\w*/,{cases:{\"@keywords\":\"keyword\",\"@types\":\"type\",\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"delimiter\"],[/[<>](?!@symbols)/,\"delimiter\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",\"@string\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string\",\"@pop\"]]}};export{e as conf,o as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/DMFWKIsW.js",
    "content": "import{Q as x,d as k,C as o,g as r,j as l,E as p,H as t,F as w,R as C,aj as f,ak as S,al as y,ac as g,am as j,an as $,c as n,ao as O,ap as i,aq as v,e as m,G as U}from\"./CU_MfyYc.js\";const _={wrapper:{base:\"flex items-center align-center text-center w-full\",horizontal:\"flex-row\",vertical:\"flex-col\"},container:{base:\"font-medium text-gray-700 dark:text-gray-200 flex\",horizontal:\"mx-3 whitespace-nowrap\",vertical:\"my-2\"},border:{base:\"flex border-gray-200 dark:border-gray-800\",horizontal:\"w-full\",vertical:\"h-full\",size:{horizontal:{\"2xs\":\"border-t\",xs:\"border-t-[2px]\",sm:\"border-t-[3px]\",md:\"border-t-[4px]\",lg:\"border-t-[5px]\",xl:\"border-t-[6px]\"},vertical:{\"2xs\":\"border-s\",xs:\"border-s-[2px]\",sm:\"border-s-[3px]\",md:\"border-s-[4px]\",lg:\"border-s-[5px]\",xl:\"border-s-[6px]\"}},type:{solid:\"border-solid\",dotted:\"border-dotted\",dashed:\"border-dashed\"}},icon:{base:\"flex-shrink-0 w-5 h-5\"},avatar:{base:\"flex-shrink-0\",size:\"2xs\"},label:\"text-sm\",default:{size:\"2xs\"}},s=S(v.ui.strategy,v.ui.divider,_),A=k({components:{UIcon:g,UAvatar:y},inheritAttrs:!1,props:{label:{type:String,default:null},icon:{type:String,default:null},avatar:{type:Object,default:null},size:{type:String,default:()=>s.default.size,validator(e){return Object.keys(s.border.size.horizontal).includes(e)||Object.keys(s.border.size.vertical).includes(e)}},orientation:{type:String,default:\"horizontal\",validator:e=>[\"horizontal\",\"vertical\"].includes(e)},type:{type:String,default:\"solid\",validator:e=>[\"solid\",\"dotted\",\"dashed\"].includes(e)},class:{type:[String,Object,Array],default:()=>\"\"},ui:{type:Object,default:()=>({})}},setup(e){const{ui:a,attrs:d}=j(\"divider\",$(e,\"ui\"),s),u=n(()=>O(i(a.value.wrapper.base,a.value.wrapper[e.orientation]),e.class)),c=n(()=>i(a.value.container.base,a.value.container[e.orientation])),b=n(()=>i(a.value.border.base,a.value.border[e.orientation],a.value.border.size[e.orientation][e.size],a.value.border.type[e.type]));return{ui:a,attrs:d,wrapperClass:u,containerClass:c,borderClass:b}}});function B(e,a,d,u,c,b){const z=g,h=y;return r(),o(\"div\",f({class:e.wrapperClass},e.attrs),[l(\"div\",{class:t(e.borderClass)},null,2),e.label||e.icon||e.avatar||e.$slots.default?(r(),o(w,{key:0},[l(\"div\",{class:t(e.containerClass)},[C(e.$slots,\"default\",{},()=>[e.label?(r(),o(\"span\",{key:0,class:t(e.ui.label)},U(e.label),3)):e.icon?(r(),m(z,{key:1,name:e.icon,class:t(e.ui.icon.base)},null,8,[\"name\",\"class\"])):e.avatar?(r(),m(h,f({key:2},{size:e.ui.avatar.size,...e.avatar},{class:e.ui.avatar.base}),null,16,[\"class\"])):p(\"\",!0)])],2),l(\"div\",{class:t(e.borderClass)},null,2)],64)):p(\"\",!0)],16)}const E=x(A,[[\"render\",B]]);export{E as _};\n"
  },
  {
    "path": "jesse/static/_nuxt/DMpbkAFi.js",
    "content": "import{C as l,j as a,g as n,d as se,b as A,a0 as ae,r as V,c as I,aK as oe,i as o,f as c,F as z,O as J,E as v,x as t,G as M,e as $,H as g,D as U,v as ne,a3 as le,_ as ie,ad as R,k as de,ax as D,ar as p,ae as ce,y as X,z as ue,t as ge,aL as ye,R as ke,a4 as pe,Q as xe}from\"./CU_MfyYc.js\";import{r as he,a as fe,b as Y,c as Z}from\"./C6794tGI.js\";function S(L,N){return n(),l(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[a(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M6.429 9.75 2.25 12l4.179 2.25m0-4.5 5.571 3 5.571-3m-11.142 0L2.25 7.5 12 2.25l9.75 5.25-4.179 2.25m0 0L21.75 12l-4.179 2.25m0 0 4.179 2.25L12 21.75 2.25 16.5l4.179-2.25m11.142 0-5.571 3-5.571-3\"})])}const ve={class:\"mb-4\"},be={class:\"hidden lg:block\"},me={class:\"relative flex items-center px-2 border-b border-gray-200 dark:border-gray-700\",\"aria-label\":\"Tabs\"},we={class:\"relative z-10 flex items-center gap-1 py-1 shrink-0\"},_e={class:\"relative z-10 flex-1 min-w-0\"},$e={class:\"flex items-center gap-1 py-1 pl-1 pr-1 min-w-0 overflow-hidden\"},Ce=[\"onClick\"],Te={key:0,class:\"mr-2 shrink-0\"},je={key:0,class:\"h-2 w-2 rounded-full bg-rose-500\"},Be={key:1,class:\"h-2 w-2 rounded-full bg-green-500 animate-pulse\"},Ve=[\"onDblclick\"],Ie=[\"onClick\"],ze=[\"onClick\"],Me={class:\"lg:hidden flex flex-col gap-1\"},Ue={class:\"flex items-center gap-2 px-2 py-2 border-b border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-backdrop-dark\"},De={class:\"flex items-center gap-2 min-w-0\"},Se={key:0,class:\"h-2 w-2 rounded-full bg-green-500 shrink-0 animate-pulse\"},Re={class:\"text-sm font-bold truncate text-gray-700 dark:text-gray-200\"},Le={class:\"flex items-center gap-1.5 shrink-0\"},Ne={class:\"flex items-center justify-between\"},Ee={class:\"py-2 space-y-1 max-h-[60vh] overflow-y-auto\"},Ke=[\"onClick\"],He={key:0,class:\"shrink-0\"},Fe={key:0,class:\"h-2.5 w-2.5 rounded-full bg-rose-500\"},Oe={key:1,class:\"h-2.5 w-2.5 rounded-full bg-green-500\"},qe={class:\"flex-1 min-w-0\"},Ge=[\"onDblclick\"],Pe={key:0,class:\"text-[10px] font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider mt-0.5\"},Qe={key:1,class:\"flex items-center shrink-0\"},We=[\"onClick\"],Ae=[\"onClick\"],Je={class:\"inline-block pt-5 px-4 pb-4\"},Xe={class:\"w-full flex justify-between items-center\"},Ye={class:\"flex items-center\"},Ze={class:\"mx-auto flex-shrink-0 flex items-center justify-center h-12 w-12 rounded-full sm:mx-0 sm:h-10 sm:w-10\"},et={class:\"mt-5 sm:mt-4 flex justify-end\"},tt=se({__name:\"BacktestTabs\",props:{tabs:{},currentTab:{}},emits:[\"close\",\"cancel\"],setup(L,{emit:N}){const E=A(),C=ae(),x=V(!1),h=oe(),y=I(()=>h.params.id),f=V(!1),k=V(null),u=V(\"\"),K={mounted:s=>{const r=s.querySelector(\"input\")||s;r.focus(),r instanceof HTMLInputElement&&r.select()}},b=N,H=L,F=I(()=>Object.keys(H.tabs).length),T=I(()=>F.value>1),O=I(()=>F.value<=10);function ee(){f.value=!1,E.addTab(H.currentTab)}function q(s){pe().push(`/backtest/${s}`)}function te(s){f.value=!1,q(s)}function m(s){if(s.results.generalInfo.title)return s.results.executing?`${s.results.generalInfo.title} | ${s.results.progressbar.current}%`:s.results.showResults?`${s.results.generalInfo.title} | Results`:s.results.generalInfo.title;if(!s.form.routes.length)return\"New Tab\";const r=s.form.routes[0];let d=\"\";return r.strategy&&(d+=`${r.strategy} • `),r.symbol&&(d+=`${r.symbol} • `),r.timeframe&&(d+=`${r.timeframe}`),d=d.endsWith(\" • \")?d.slice(0,-3):d,s.results.executing?`${d} | ${s.results.progressbar.current}%`:s.results.showResults?`${d} | Results`:d}function G(s){k.value=s.id,u.value=s.results.generalInfo.title||m(s).split(\" | \")[0]}async function j(s){if(!k.value||u.value===(s.results.generalInfo.title||\"\")){B();return}await A().updateSessionNotes(s.id,u.value,s.results.generalInfo.description||\"\")&&(s.results.generalInfo.title=u.value),B()}function B(){k.value=null,u.value=\"\"}return(s,r)=>{var W;const d=ne,w=le,P=de,_=ge,re=ue,Q=ie;return n(),l(z,null,[a(\"div\",ve,[a(\"div\",be,[a(\"nav\",me,[r[12]||(r[12]=a(\"div\",{\"aria-hidden\":\"true\",class:\"absolute inset-0 z-0 bg-gray-50/50 dark:bg-backdrop-dark/50 backdrop-blur-sm pointer-events-none\"},null,-1)),a(\"div\",we,[o(d,{text:\"New Tab\",popper:{arrow:!0,offsetDistance:10}},{default:c(()=>[a(\"button\",{class:\"flex items-center justify-center p-1.5 text-gray-400 hover:text-gray-700 dark:hover:text-gray-200 hover:bg-gray-200/50 dark:hover:bg-gray-700/30 rounded-lg cursor-pointer transition-all duration-300 h-8 w-8\",onClick:r[0]||(r[0]=e=>t(E).addTab(s.currentTab))},[o(t(fe),{class:\"h-5 w-5\"})])]),_:1}),o(d,{text:\"History\",popper:{arrow:!0,offsetDistance:10}},{default:c(()=>[o(w,{href:\"/backtest/history\",class:g([t(h).path===\"/backtest/history\"?\"bg-white dark:bg-gray-700 text-gray-900 dark:text-white border border-gray-200 dark:border-gray-600\":\"text-gray-400 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200 hover:bg-gray-200/50 dark:hover:bg-gray-700/30\",\"flex items-center justify-center p-1.5 rounded-lg cursor-pointer transition-all duration-300 h-8 w-8\"])},{default:c(()=>[o(t(Y),{class:\"h-5 w-5\"})]),_:1},8,[\"class\"])]),_:1}),o(d,{text:\"Benchmark\",popper:{arrow:!0,offsetDistance:10}},{default:c(()=>[t(C).plan===\"free\"||t(C).plan===\"guest\"?(n(),l(\"button\",{key:0,class:g([t(h).path===\"/backtest/benchmark\"?\"bg-white dark:bg-gray-700 text-gray-900 dark:text-white border border-gray-200 dark:border-gray-600\":\"text-gray-400 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200 hover:bg-gray-200/50 dark:hover:bg-gray-700/30\",\"flex items-center justify-center p-1.5 rounded-lg cursor-pointer transition-all duration-300 h-8 w-8\"]),onClick:r[1]||(r[1]=e=>x.value=!0)},[o(t(S),{class:\"h-5 w-5\"})],2)):(n(),$(w,{key:1,href:\"/backtest/benchmark\",class:g([t(h).path===\"/backtest/benchmark\"?\"bg-white dark:bg-gray-700 text-gray-900 dark:text-white border border-gray-200 dark:border-gray-600\":\"text-gray-400 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200 hover:bg-gray-200/50 dark:hover:bg-gray-700/30\",\"flex items-center justify-center p-1.5 rounded-lg cursor-pointer transition-all duration-300 h-8 w-8\"])},{default:c(()=>[o(t(S),{class:\"h-5 w-5\"})]),_:1},8,[\"class\"]))]),_:1})]),r[13]||(r[13]=a(\"div\",{class:\"relative z-10 w-px h-6 bg-gray-300 dark:bg-gray-600 ml-3 mr-2 shrink-0\"},null,-1)),a(\"div\",_e,[a(\"div\",$e,[(n(!0),l(z,null,J(s.tabs,e=>(n(),$(d,{key:e.id,class:\"flex-shrink min-w-0\",text:m(e),\"open-delay\":700,popper:{arrow:!0,offsetDistance:10},onMouseup:p(i=>b(\"close\",e.id),[\"middle\"])},{default:c(()=>[a(\"div\",{class:g([e.id===t(y)?\"bg-white dark:bg-gray-700 text-gray-900 dark:text-white border border-gray-200 dark:border-gray-600\":\"text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200 hover:bg-gray-200/50 dark:hover:bg-gray-700/30\",\"group relative flex items-center py-1 text-xs font-bold rounded-lg cursor-pointer transition-all duration-300 select-none overflow-hidden h-8 max-w-[240px] min-w-0 px-2\"]),onClick:i=>q(e.id)},[e.results.executing||e.results.exception.error?(n(),l(\"div\",Te,[e.results.exception.error?(n(),l(\"div\",je)):e.results.executing?(n(),l(\"div\",Be)):v(\"\",!0)])):v(\"\",!0),t(k)===e.id?R((n(),$(P,{key:1,modelValue:t(u),\"onUpdate:modelValue\":r[2]||(r[2]=i=>U(u)?u.value=i:null),size:\"2xs\",class:\"flex-1 min-w-0\",onKeyup:[D(i=>j(e),[\"enter\"]),D(B,[\"esc\"])],onBlur:i=>j(e)},null,8,[\"modelValue\",\"onKeyup\",\"onBlur\"])),[[K]]):(n(),l(\"span\",{key:2,class:g([\"flex-1 min-w-0 whitespace-nowrap overflow-hidden text-clip text-left pr-8\",t(T)&&e.id===t(y)&&t(k)!==e.id?\"tab-text-fade-active\":\"\",t(T)&&e.id!==t(y)&&t(O)&&t(k)!==e.id?\"tab-text-fade-hover\":\"\"]),onDblclick:p(i=>G(e),[\"stop\"])},M(m(e)),43,Ve)),R(a(\"div\",{class:g([\"absolute right-1 top-1/2 -translate-y-1/2 z-10 flex items-center justify-end transition-opacity duration-150\",e.id===t(y)?\"opacity-100 pointer-events-auto\":t(O)?\"opacity-0 pointer-events-none group-hover:opacity-100 group-hover:pointer-events-auto\":\"opacity-0 pointer-events-none\"])},[e.results.executing&&e.results.exception.error==\"\"?(n(),l(\"button\",{key:0,class:\"p-0.5 rounded-full text-gray-500 dark:text-gray-400 bg-gray-100 dark:bg-gray-700 hover:bg-gray-200 dark:hover:bg-gray-600 hover:text-gray-700 dark:hover:text-gray-200 transition-all focus:outline-none\",onClick:p(i=>b(\"cancel\",e.id),[\"stop\"])},[o(t(Z),{class:\"h-3.5 w-3.5\"})],8,Ie)):(n(),l(\"button\",{key:1,class:\"p-0.5 rounded-full text-gray-500 dark:text-gray-400 bg-gray-100 dark:bg-gray-700 hover:bg-gray-200 dark:hover:bg-gray-600 hover:text-gray-700 dark:hover:text-gray-200 transition-all focus:outline-none\",onClick:p(i=>b(\"close\",e.id),[\"stop\"])},[o(t(X),{class:\"h-3.5 w-3.5\"})],8,ze))],2),[[ce,t(T)&&t(k)!==e.id]])],10,Ce)]),_:2},1032,[\"text\",\"onMouseup\"]))),128))])])])]),a(\"div\",Me,[a(\"div\",Ue,[a(\"button\",{class:\"flex-1 flex items-center justify-between gap-2 px-3 h-10 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-xl active:scale-95 transition-all overflow-hidden\",onClick:r[3]||(r[3]=e=>f.value=!0)},[a(\"div\",De,[(W=s.tabs[t(y)])!=null&&W.results.executing?(n(),l(\"div\",Se)):v(\"\",!0),a(\"span\",Re,M(s.tabs[t(y)]?m(s.tabs[t(y)]):\"Select Tab\"),1)]),o(t(he),{class:\"h-4 w-4 text-gray-400 shrink-0\"})]),a(\"div\",Le,[o(w,{href:\"/backtest/history\",class:g([t(h).path===\"/backtest/history\"?\"bg-white dark:bg-gray-700 text-gray-900 dark:text-white border border-gray-200 dark:border-gray-600\":\"bg-white dark:bg-gray-800 text-gray-600 dark:text-gray-300 border border-gray-200 dark:border-gray-700\",\"flex items-center justify-center rounded-xl transition-all h-10 w-10\"])},{default:c(()=>[o(t(Y),{class:\"h-5 w-5\"})]),_:1},8,[\"class\"]),t(C).plan===\"free\"||t(C).plan===\"guest\"?(n(),l(\"button\",{key:0,class:g([t(h).path===\"/backtest/benchmark\"?\"bg-white dark:bg-gray-700 text-gray-900 dark:text-white border border-gray-200 dark:border-gray-600\":\"bg-white dark:bg-gray-800 text-gray-600 dark:text-gray-300 border border-gray-200 dark:border-gray-700\",\"flex items-center justify-center rounded-xl transition-all h-10 w-10\"]),onClick:r[4]||(r[4]=e=>x.value=!0)},[o(t(S),{class:\"h-5 w-5\"})],2)):(n(),$(w,{key:1,href:\"/backtest/benchmark\",class:g([t(h).path===\"/backtest/benchmark\"?\"bg-white dark:bg-gray-700 text-gray-900 dark:text-white border border-gray-200 dark:border-gray-600\":\"bg-white dark:bg-gray-800 text-gray-600 dark:text-gray-300 border border-gray-200 dark:border-gray-700\",\"flex items-center justify-center rounded-xl transition-all h-10 w-10\"])},{default:c(()=>[o(t(S),{class:\"h-5 w-5\"})]),_:1},8,[\"class\"]))])]),o(Q,{modelValue:t(f),\"onUpdate:modelValue\":r[8]||(r[8]=e=>U(f)?f.value=e:null),ui:{width:\"max-w-md\"}},{default:c(()=>[o(re,{ui:{ring:\"\",shadow:\"shadow-none\",divide:\"divide-y divide-gray-100 dark:divide-gray-800\"}},{header:c(()=>[a(\"div\",Ne,[r[14]||(r[14]=a(\"h3\",{class:\"text-base font-bold text-gray-900 dark:text-white\"},\" Backtest Tabs \",-1)),o(_,{color:\"gray\",variant:\"ghost\",icon:\"i-heroicons-x-mark-20-solid\",class:\"-my-1\",onClick:r[5]||(r[5]=e=>f.value=!1)})])]),footer:c(()=>[o(_,{block:\"\",color:\"gray\",variant:\"solid\",icon:\"i-heroicons-plus-circle\",label:\"New tab\",size:\"lg\",class:\"font-bold rounded-xl\",onClick:ee})]),default:c(()=>[a(\"div\",Ee,[(n(!0),l(z,null,J(s.tabs,e=>(n(),l(\"div\",{key:e.id,class:\"px-2\"},[a(\"div\",{class:g([e.id===t(y)?\"bg-indigo-50 dark:bg-indigo-900/20 ring-2 ring-indigo-500/50\":\"bg-gray-50 dark:bg-gray-800/50 hover:bg-gray-100 dark:hover:bg-gray-800 active:bg-gray-200 dark:active:bg-gray-700\",\"flex items-center gap-3 p-3 rounded-xl transition-all cursor-pointer group\"]),onClick:i=>te(e.id)},[e.results.executing||e.results.exception.error?(n(),l(\"div\",He,[e.results.exception.error?(n(),l(\"div\",Fe)):e.results.executing?(n(),l(\"div\",Oe)):v(\"\",!0)])):v(\"\",!0),a(\"div\",qe,[t(k)===e.id?R((n(),$(P,{key:0,modelValue:t(u),\"onUpdate:modelValue\":r[6]||(r[6]=i=>U(u)?u.value=i:null),size:\"sm\",class:\"w-full\",onKeyup:[D(i=>j(e),[\"enter\"]),D(B,[\"esc\"])],onBlur:i=>j(e),onClick:r[7]||(r[7]=p(()=>{},[\"stop\"]))},null,8,[\"modelValue\",\"onKeyup\",\"onBlur\"])),[[K]]):(n(),l(z,{key:1},[a(\"div\",{class:g([\"text-sm font-bold truncate\",e.id===t(y)?\"text-indigo-600 dark:text-indigo-400\":\"text-gray-700 dark:text-gray-200\"]),onDblclick:p(i=>G(e),[\"stop\"])},M(m(e)),43,Ge),e.results.executing?(n(),l(\"div\",Pe,\" Executing... \"+M(e.results.progressbar.current)+\"% \",1)):v(\"\",!0)],64))]),t(T)&&t(k)!==e.id?(n(),l(\"div\",Qe,[e.results.executing&&e.results.exception.error==\"\"?(n(),l(\"button\",{key:0,class:\"p-2 rounded-lg text-gray-500 dark:text-gray-400 bg-gray-100 dark:bg-gray-700 active:scale-95 transition-all\",onClick:p(i=>b(\"cancel\",e.id),[\"stop\"])},[o(t(Z),{class:\"h-4 w-4\"})],8,We)):(n(),l(\"button\",{key:1,class:\"p-2 rounded-lg text-gray-500 dark:text-gray-400 bg-gray-100 dark:bg-gray-700 active:scale-95 transition-all\",onClick:p(i=>b(\"close\",e.id),[\"stop\"])},[o(t(X),{class:\"h-4 w-4\"})],8,Ae))])):v(\"\",!0)],10,Ke)]))),128))])]),_:1})]),_:1},8,[\"modelValue\"])])]),o(Q,{modelValue:t(x),\"onUpdate:modelValue\":r[11]||(r[11]=e=>U(x)?x.value=e:null)},{default:c(()=>[a(\"div\",Je,[a(\"div\",Xe,[a(\"div\",Ye,[a(\"div\",Ze,[o(t(ye),{class:\"text-amber-400 h-7 w-7\",\"aria-hidden\":\"true\"})]),r[15]||(r[15]=a(\"h3\",{class:\"text-gray-600 dark:text-gray-200 font-semibold ml-2 text-xl\"},\" Upgrade your plan \",-1))]),o(_,{icon:\"i-heroicons-x-mark\",variant:\"link\",color:\"gray\",class:\"ml-2 p-2 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-full text-gray-400 hover:text-gray-500 dark:hover:text-gray-300 focus:outline-none\",onClick:r[9]||(r[9]=e=>x.value=!1)})]),r[16]||(r[16]=a(\"div\",{class:\"flex items-start justify-start\"},[a(\"div\",{class:\"mt-3 sm:mt-0 sm:ml-4 text-left\"},[a(\"div\",{class:\"my-4 ml-8\"},[a(\"p\",{class:\"text-gray-500 dark:text-gray-300\"},\" The benchmark feature is only available for premium users. Please upgrade your plan to access this feature. \")])])],-1)),a(\"div\",et,[o(_,{variant:\"link\",color:\"gray\",class:\"mr-4\",size:\"lg\",label:\"Close\",onClick:r[10]||(r[10]=e=>x.value=!1)}),o(w,{to:\"https://jesse.trade/pricing\",target:\"_blank\"},{default:c(()=>[o(_,{variant:\"solid\",color:\"primary\",\"trailing-icon\":\"i-heroicons-arrow-right\",class:\"mr-4\",size:\"lg\",label:\"Upgrade\"})]),_:1}),ke(s.$slots,\"default\",{},void 0,!0)])])]),_:3},8,[\"modelValue\"])],64)}}}),at=xe(tt,[[\"__scopeId\",\"data-v-17ec90cb\"]]);export{at as _};\n"
  },
  {
    "path": "jesse/static/_nuxt/DNquZEk8.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Cadence\",\"name\":\"cadence\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#expressions\"},{\"include\":\"#declarations\"},{\"include\":\"#keywords\"},{\"include\":\"#code-block\"},{\"include\":\"#composite\"},{\"include\":\"#event\"}],\"repository\":{\"code-block\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.scope.begin.cadence\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.scope.end.cadence\"}},\"patterns\":[{\"include\":\"$self\"}]},\"comments\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.cadence\"}},\"match\":\"\\\\\\\\A^(#!).*$\\\\\\\\n?\",\"name\":\"comment.line.number-sign.cadence\"},{\"begin\":\"/\\\\\\\\*\\\\\\\\*(?!/)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.cadence\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.cadence\"}},\"name\":\"comment.block.documentation.cadence\",\"patterns\":[{\"include\":\"#nested\"}]},{\"begin\":\"/\\\\\\\\*:\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.cadence\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.cadence\"}},\"name\":\"comment.block.documentation.playground.cadence\",\"patterns\":[{\"include\":\"#nested\"}]},{\"begin\":\"/\\\\\\\\*\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.cadence\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.cadence\"}},\"name\":\"comment.block.cadence\",\"patterns\":[{\"include\":\"#nested\"}]},{\"match\":\"\\\\\\\\*/\",\"name\":\"invalid.illegal.unexpected-end-of-block-comment.cadence\"},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=//)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.cadence\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"///\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.cadence\"}},\"end\":\"^\",\"name\":\"comment.line.triple-slash.documentation.cadence\"},{\"begin\":\"//:\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.cadence\"}},\"end\":\"^\",\"name\":\"comment.line.double-slash.documentation.cadence\"},{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.cadence\"}},\"end\":\"^\",\"name\":\"comment.line.double-slash.cadence\"}]}],\"repository\":{\"nested\":{\"begin\":\"/\\\\\\\\*\",\"end\":\"\\\\\\\\*/\",\"patterns\":[{\"include\":\"#nested\"}]}}},\"composite\":{\"begin\":\"\\\\\\\\b((?:(?:struct|resource|contract)(?:\\\\\\\\s+interface)?)|transaction|enum)\\\\\\\\s+([\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.$1.cadence\"},\"2\":{\"name\":\"entity.name.type.$1.cadence\"}},\"end\":\"(?<=\\\\\\\\})\",\"name\":\"meta.definition.type.composite.cadence\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#conformance-clause\"},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.type.begin.cadence\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.type.end.cadence\"}},\"name\":\"meta.definition.type.body.cadence\",\"patterns\":[{\"include\":\"$self\"}]}]},\"conformance-clause\":{\"begin\":\"(:)(?=\\\\\\\\s*\\\\\\\\{)|(:)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"invalid.illegal.empty-conformance-clause.cadence\"},\"2\":{\"name\":\"punctuation.separator.conformance-clause.cadence\"}},\"end\":\"(?!\\\\\\\\G)$|(?=[={}])\",\"name\":\"meta.conformance-clause.cadence\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(?!\\\\\\\\G)$|(?=[={}])\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#type\"}]}]},\"declarations\":{\"patterns\":[{\"include\":\"#var-let-declaration\"},{\"include\":\"#function\"},{\"include\":\"#initializer\"}]},\"event\":{\"begin\":\"\\\\\\\\b(event)\\\\\\\\b\\\\\\\\s+([\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.event.cadence\"},\"2\":{\"name\":\"entity.name.type.event.cadence\"}},\"end\":\"(?<=\\\\\\\\))|$\",\"name\":\"meta.definition.type.event.cadence\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#parameter-clause\"}]},\"expression-element-list\":{\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\"([\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*)\\\\\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.any-method.cadence\"},\"2\":{\"name\":\"punctuation.separator.argument-label.cadence\"}},\"comment\":\"an element with a label\",\"end\":\"(?=[,)\\\\\\\\]])\",\"patterns\":[{\"include\":\"#expressions\"}]},{\"begin\":\"(?![,)\\\\\\\\]])(?=\\\\\\\\S)\",\"comment\":\"an element without a label (i.e. anything else)\",\"end\":\"(?=[,)\\\\\\\\]])\",\"patterns\":[{\"include\":\"#expressions\"}]}]},\"expressions\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#function-call-expression\"},{\"include\":\"#literals\"},{\"include\":\"#operators\"},{\"include\":\"#language-variables\"}]},\"function\":{\"begin\":\"\\\\\\\\b(fun)\\\\\\\\b\\\\\\\\s+([\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.cadence\"},\"2\":{\"name\":\"entity.name.function.cadence\"}},\"end\":\"(?<=\\\\\\\\})|$\",\"name\":\"meta.definition.function.cadence\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#parameter-clause\"},{\"include\":\"#function-result\"},{\"begin\":\"(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.function.begin.cadence\"}},\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.function.end.cadence\"}},\"name\":\"meta.definition.function.body.cadence\",\"patterns\":[{\"include\":\"$self\"}]}]},\"function-call-expression\":{\"patterns\":[{\"begin\":\"(?!(?:set|init))([\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.any-method.cadence\"},\"4\":{\"name\":\"punctuation.definition.arguments.begin.cadence\"}},\"comment\":\"foo(args) -- a call whose callee is a highlightable name\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.cadence\"}},\"name\":\"meta.function-call.cadence\",\"patterns\":[{\"include\":\"#expression-element-list\"}]}]},\"function-result\":{\"begin\":\"(?<![/=\\\\\\\\-+!*%<>&|\\\\\\\\^~.])(:)(?![/=\\\\\\\\-+!*%<>&|\\\\\\\\^~.])\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.function-result.cadence\"}},\"end\":\"(?!\\\\\\\\G)(?=\\\\\\\\{|;)|$\",\"name\":\"meta.function-result.cadence\",\"patterns\":[{\"include\":\"#type\"}]},\"initializer\":{\"begin\":\"(?<!\\\\\\\\.)\\\\\\\\b(init)\\\\\\\\s*(?=\\\\\\\\(|<)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.cadence\"}},\"end\":\"(?<=\\\\\\\\})|$\",\"name\":\"meta.definition.function.initializer.cadence\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#parameter-clause\"},{\"begin\":\"(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.function.begin.cadence\"}},\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.function.end.cadence\"}},\"name\":\"meta.definition.function.body.cadence\",\"patterns\":[{\"include\":\"$self\"}]}]},\"keywords\":{\"patterns\":[{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(?:if|else|switch|case|default)\\\\\\\\b\",\"name\":\"keyword.control.branch.cadence\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(?:return|continue|break)\\\\\\\\b\",\"name\":\"keyword.control.transfer.cadence\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(?:while|for|in)\\\\\\\\b\",\"name\":\"keyword.control.loop.cadence\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(?:pre|post|prepare|execute|create|destroy|emit)\\\\\\\\b\",\"name\":\"keyword.other.cadence\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(?:private|pub(?:\\\\\\\\(set\\\\\\\\))?|access\\\\\\\\((?:self|contract|account|all)\\\\\\\\))\\\\\\\\b\",\"name\":\"keyword.other.declaration-specifier.accessibility.cadence\"},{\"match\":\"\\\\\\\\b(?:init|destroy)\\\\\\\\b\",\"name\":\"storage.type.function.cadence\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(?:import|from)\\\\\\\\b\",\"name\":\"keyword.control.import.cadence\"}]},\"language-variables\":{\"patterns\":[{\"match\":\"\\\\\\\\b(self)\\\\\\\\b\",\"name\":\"variable.language.cadence\"}]},\"literals\":{\"patterns\":[{\"include\":\"#boolean\"},{\"include\":\"#numeric\"},{\"include\":\"#string\"},{\"match\":\"\\\\\\\\bnil\\\\\\\\b\",\"name\":\"constant.language.nil.cadence\"}],\"repository\":{\"boolean\":{\"match\":\"\\\\\\\\b(true|false)\\\\\\\\b\",\"name\":\"constant.language.boolean.cadence\"},\"numeric\":{\"patterns\":[{\"include\":\"#binary\"},{\"include\":\"#octal\"},{\"include\":\"#decimal\"},{\"include\":\"#hexadecimal\"}],\"repository\":{\"binary\":{\"comment\":\"\",\"match\":\"(\\\\\\\\B\\\\\\\\-|\\\\\\\\b)0b[01]([_01]*[01])?\\\\\\\\b\",\"name\":\"constant.numeric.integer.binary.cadence\"},\"decimal\":{\"comment\":\"\",\"match\":\"(\\\\\\\\B\\\\\\\\-|\\\\\\\\b)[0-9]([_0-9]*[0-9])?\\\\\\\\b\",\"name\":\"constant.numeric.integer.decimal.cadence\"},\"hexadecimal\":{\"comment\":\"\",\"match\":\"(\\\\\\\\B\\\\\\\\-|\\\\\\\\b)0x[0-9A-Fa-f]([_0-9A-Fa-f]*[0-9A-Fa-f])?\\\\\\\\b\",\"name\":\"constant.numeric.integer.hexadecimal.cadence\"},\"octal\":{\"comment\":\"\",\"match\":\"(\\\\\\\\B\\\\\\\\-|\\\\\\\\b)0o[0-7]([_0-7]*[0-7])?\\\\\\\\b\",\"name\":\"constant.numeric.integer.octal.cadence\"}}},\"string\":{\"patterns\":[{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cadence\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cadence\"}},\"name\":\"string.quoted.double.single-line.cadence\",\"patterns\":[{\"match\":\"\\\\\\\\r|\\\\\\\\n\",\"name\":\"invalid.illegal.returns-not-allowed.cadence\"},{\"include\":\"#string-guts\"}]}],\"repository\":{\"string-guts\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[0\\\\\\\\\\\\\\\\tnr\\\\\"']\",\"name\":\"constant.character.escape.cadence\"},{\"match\":\"\\\\\\\\\\\\\\\\u\\\\\\\\{[0-9a-fA-F]{1,8}\\\\\\\\}\",\"name\":\"constant.character.escape.unicode.cadence\"}]}}}}},\"operators\":{\"patterns\":[{\"match\":\"\\\\\\\\-\",\"name\":\"keyword.operator.arithmetic.unary.cadence\"},{\"match\":\"!\",\"name\":\"keyword.operator.logical.not.cadence\"},{\"match\":\"=\",\"name\":\"keyword.operator.assignment.cadence\"},{\"match\":\"<-\",\"name\":\"keyword.operator.move.cadence\"},{\"match\":\"<-!\",\"name\":\"keyword.operator.force-move.cadence\"},{\"match\":\"\\\\\\\\+|\\\\\\\\-|\\\\\\\\*|/\",\"name\":\"keyword.operator.arithmetic.cadence\"},{\"match\":\"%\",\"name\":\"keyword.operator.arithmetic.remainder.cadence\"},{\"match\":\"==|!=|>|<|>=|<=\",\"name\":\"keyword.operator.comparison.cadence\"},{\"match\":\"\\\\\\\\?\\\\\\\\?\",\"name\":\"keyword.operator.coalescing.cadence\"},{\"match\":\"&&|\\\\\\\\|\\\\\\\\|\",\"name\":\"keyword.operator.logical.cadence\"},{\"match\":\"[?!]\",\"name\":\"keyword.operator.type.optional.cadence\"}]},\"parameter-clause\":{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.begin.cadence\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.cadence\"}},\"name\":\"meta.parameter-clause.cadence\",\"patterns\":[{\"include\":\"#parameter-list\"}]},\"parameter-list\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.function.cadence\"},\"2\":{\"name\":\"variable.parameter.function.cadence\"}},\"comment\":\"External parameter labels are considered part of the function name\",\"match\":\"([\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*)\\\\\\\\s+([\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*)(?=\\\\\\\\s*:)\"},{\"captures\":{\"1\":{\"name\":\"variable.parameter.function.cadence\"},\"2\":{\"name\":\"entity.name.function.cadence\"}},\"comment\":\"If no external label is given, the name is both the external label and the internal variable name\",\"match\":\"(([\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*))(?=\\\\\\\\s*:)\"},{\"begin\":\":\\\\\\\\s*(?!\\\\\\\\s)\",\"end\":\"(?=[,)])\",\"patterns\":[{\"include\":\"#type\"},{\"match\":\":\",\"name\":\"invalid.illegal.extra-colon-in-parameter-list.cadence\"}]}]},\"type\":{\"patterns\":[{\"include\":\"#comments\"},{\"match\":\"([\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*)\",\"name\":\"storage.type.cadence\"}]},\"var-let-declaration\":{\"begin\":\"\\\\\\\\b(var|let)\\\\\\\\b\\\\\\\\s+([\\\\\\\\p{L}_][\\\\\\\\p{L}_\\\\\\\\p{N}\\\\\\\\p{M}]*)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.$1.cadence\"},\"2\":{\"name\":\"entity.name.type.$1.cadence\"}},\"end\":\"=|<-|<-!|$\",\"patterns\":[{\"include\":\"#type\"}]}},\"scopeName\":\"source.cadence\",\"aliases\":[\"cdc\"]}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DOAuugfS.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"],[\"begin\",\"end\"],[\"case\",\"endcase\"],[\"casex\",\"endcase\"],[\"casez\",\"endcase\"],[\"checker\",\"endchecker\"],[\"class\",\"endclass\"],[\"clocking\",\"endclocking\"],[\"config\",\"endconfig\"],[\"function\",\"endfunction\"],[\"generate\",\"endgenerate\"],[\"group\",\"endgroup\"],[\"interface\",\"endinterface\"],[\"module\",\"endmodule\"],[\"package\",\"endpackage\"],[\"primitive\",\"endprimitive\"],[\"program\",\"endprogram\"],[\"property\",\"endproperty\"],[\"specify\",\"endspecify\"],[\"sequence\",\"endsequence\"],[\"table\",\"endtable\"],[\"task\",\"endtask\"]],autoClosingPairs:[{open:\"[\",close:\"]\"},{open:\"{\",close:\"}\"},{open:\"(\",close:\")\"},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]},{open:'\"',close:'\"',notIn:[\"string\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],folding:{offSide:!1,markers:{start:new RegExp(\"^(?:\\\\s*|.*(?!\\\\/[\\\\/\\\\*])[^\\\\w])(?:begin|case(x|z)?|class|clocking|config|covergroup|function|generate|interface|module|package|primitive|property|program|sequence|specify|table|task)\\\\b\"),end:new RegExp(\"^(?:\\\\s*|.*(?!\\\\/[\\\\/\\\\*])[^\\\\w])(?:end|endcase|endclass|endclocking|endconfig|endgroup|endfunction|endgenerate|endinterface|endmodule|endpackage|endprimitive|endproperty|endprogram|endsequence|endspecify|endtable|endtask)\\\\b\")}}},n={defaultToken:\"\",tokenPostfix:\".sv\",brackets:[{token:\"delimiter.curly\",open:\"{\",close:\"}\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"},{token:\"delimiter.square\",open:\"[\",close:\"]\"},{token:\"delimiter.angle\",open:\"<\",close:\">\"}],keywords:[\"accept_on\",\"alias\",\"always\",\"always_comb\",\"always_ff\",\"always_latch\",\"and\",\"assert\",\"assign\",\"assume\",\"automatic\",\"before\",\"begin\",\"bind\",\"bins\",\"binsof\",\"bit\",\"break\",\"buf\",\"bufif0\",\"bufif1\",\"byte\",\"case\",\"casex\",\"casez\",\"cell\",\"chandle\",\"checker\",\"class\",\"clocking\",\"cmos\",\"config\",\"const\",\"constraint\",\"context\",\"continue\",\"cover\",\"covergroup\",\"coverpoint\",\"cross\",\"deassign\",\"default\",\"defparam\",\"design\",\"disable\",\"dist\",\"do\",\"edge\",\"else\",\"end\",\"endcase\",\"endchecker\",\"endclass\",\"endclocking\",\"endconfig\",\"endfunction\",\"endgenerate\",\"endgroup\",\"endinterface\",\"endmodule\",\"endpackage\",\"endprimitive\",\"endprogram\",\"endproperty\",\"endspecify\",\"endsequence\",\"endtable\",\"endtask\",\"enum\",\"event\",\"eventually\",\"expect\",\"export\",\"extends\",\"extern\",\"final\",\"first_match\",\"for\",\"force\",\"foreach\",\"forever\",\"fork\",\"forkjoin\",\"function\",\"generate\",\"genvar\",\"global\",\"highz0\",\"highz1\",\"if\",\"iff\",\"ifnone\",\"ignore_bins\",\"illegal_bins\",\"implements\",\"implies\",\"import\",\"incdir\",\"include\",\"initial\",\"inout\",\"input\",\"inside\",\"instance\",\"int\",\"integer\",\"interconnect\",\"interface\",\"intersect\",\"join\",\"join_any\",\"join_none\",\"large\",\"let\",\"liblist\",\"library\",\"local\",\"localparam\",\"logic\",\"longint\",\"macromodule\",\"matches\",\"medium\",\"modport\",\"module\",\"nand\",\"negedge\",\"nettype\",\"new\",\"nexttime\",\"nmos\",\"nor\",\"noshowcancelled\",\"not\",\"notif0\",\"notif1\",\"null\",\"or\",\"output\",\"package\",\"packed\",\"parameter\",\"pmos\",\"posedge\",\"primitive\",\"priority\",\"program\",\"property\",\"protected\",\"pull0\",\"pull1\",\"pulldown\",\"pullup\",\"pulsestyle_ondetect\",\"pulsestyle_onevent\",\"pure\",\"rand\",\"randc\",\"randcase\",\"randsequence\",\"rcmos\",\"real\",\"realtime\",\"ref\",\"reg\",\"reject_on\",\"release\",\"repeat\",\"restrict\",\"return\",\"rnmos\",\"rpmos\",\"rtran\",\"rtranif0\",\"rtranif1\",\"s_always\",\"s_eventually\",\"s_nexttime\",\"s_until\",\"s_until_with\",\"scalared\",\"sequence\",\"shortint\",\"shortreal\",\"showcancelled\",\"signed\",\"small\",\"soft\",\"solve\",\"specify\",\"specparam\",\"static\",\"string\",\"strong\",\"strong0\",\"strong1\",\"struct\",\"super\",\"supply0\",\"supply1\",\"sync_accept_on\",\"sync_reject_on\",\"table\",\"tagged\",\"task\",\"this\",\"throughout\",\"time\",\"timeprecision\",\"timeunit\",\"tran\",\"tranif0\",\"tranif1\",\"tri\",\"tri0\",\"tri1\",\"triand\",\"trior\",\"trireg\",\"type\",\"typedef\",\"union\",\"unique\",\"unique0\",\"unsigned\",\"until\",\"until_with\",\"untyped\",\"use\",\"uwire\",\"var\",\"vectored\",\"virtual\",\"void\",\"wait\",\"wait_order\",\"wand\",\"weak\",\"weak0\",\"weak1\",\"while\",\"wildcard\",\"wire\",\"with\",\"within\",\"wor\",\"xnor\",\"xor\"],builtin_gates:[\"and\",\"nand\",\"nor\",\"or\",\"xor\",\"xnor\",\"buf\",\"not\",\"bufif0\",\"bufif1\",\"notif1\",\"notif0\",\"cmos\",\"nmos\",\"pmos\",\"rcmos\",\"rnmos\",\"rpmos\",\"tran\",\"tranif1\",\"tranif0\",\"rtran\",\"rtranif1\",\"rtranif0\"],operators:[\"=\",\"+=\",\"-=\",\"*=\",\"/=\",\"%=\",\"&=\",\"|=\",\"^=\",\"<<=\",\">>+\",\"<<<=\",\">>>=\",\"?\",\":\",\"+\",\"-\",\"!\",\"~\",\"&\",\"~&\",\"|\",\"~|\",\"^\",\"~^\",\"^~\",\"+\",\"-\",\"*\",\"/\",\"%\",\"==\",\"!=\",\"===\",\"!==\",\"==?\",\"!=?\",\"&&\",\"||\",\"**\",\"<\",\"<=\",\">\",\">=\",\"&\",\"|\",\"^\",\">>\",\"<<\",\">>>\",\"<<<\",\"++\",\"--\",\"->\",\"<->\",\"inside\",\"dist\",\"::\",\"+:\",\"-:\",\"*>\",\"&&&\",\"|->\",\"|=>\",\"#=#\"],symbols:/[=><!~?:&|+\\-*\\/\\^%#]+/,escapes:/%%|\\\\(?:[antvf\\\\\"']|x[0-9A-Fa-f]{1,2}|[0-7]{1,3})/,identifier:/(?:[a-zA-Z_][a-zA-Z0-9_$\\.]*|\\\\\\S+ )/,systemcall:/[$][a-zA-Z0-9_]+/,timeunits:/s|ms|us|ns|ps|fs/,tokenizer:{root:[[/^(\\s*)(@identifier)/,[\"\",{cases:{\"@builtin_gates\":{token:\"keyword.$2\",next:\"@module_instance\"},table:{token:\"keyword.$2\",next:\"@table\"},\"@keywords\":{token:\"keyword.$2\"},\"@default\":{token:\"identifier\",next:\"@module_instance\"}}}]],[/^\\s*`include/,{token:\"keyword.directive.include\",next:\"@include\"}],[/^\\s*`\\s*\\w+/,\"keyword\"],{include:\"@identifier_or_keyword\"},{include:\"@whitespace\"},[/\\(\\*.*\\*\\)/,\"annotation\"],[/@systemcall/,\"variable.predefined\"],[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],{include:\"@numbers\"},[/[;,.]/,\"delimiter\"],{include:\"@strings\"}],identifier_or_keyword:[[/@identifier/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}]],numbers:[[/\\d+?[\\d_]*(?:\\.[\\d_]+)?[eE][\\-+]?\\d+/,\"number.float\"],[/\\d+?[\\d_]*\\.[\\d_]+(?:\\s*@timeunits)?/,\"number.float\"],[/(?:\\d+?[\\d_]*\\s*)?'[sS]?[dD]\\s*[0-9xXzZ?]+?[0-9xXzZ?_]*/,\"number\"],[/(?:\\d+?[\\d_]*\\s*)?'[sS]?[bB]\\s*[0-1xXzZ?]+?[0-1xXzZ?_]*/,\"number.binary\"],[/(?:\\d+?[\\d_]*\\s*)?'[sS]?[oO]\\s*[0-7xXzZ?]+?[0-7xXzZ?_]*/,\"number.octal\"],[/(?:\\d+?[\\d_]*\\s*)?'[sS]?[hH]\\s*[0-9a-fA-FxXzZ?]+?[0-9a-fA-FxXzZ?_]*/,\"number.hex\"],[/1step/,\"number\"],[/[\\dxXzZ]+?[\\dxXzZ_]*(?:\\s*@timeunits)?/,\"number\"],[/'[01xXzZ]+/,\"number\"]],module_instance:[{include:\"@whitespace\"},[/(#?)(\\()/,[\"\",{token:\"@brackets\",next:\"@port_connection\"}]],[/@identifier\\s*[;={}\\[\\],]/,{token:\"@rematch\",next:\"@pop\"}],[/@symbols|[;={}\\[\\],]/,{token:\"@rematch\",next:\"@pop\"}],[/@identifier/,\"type\"],[/;/,\"delimiter\",\"@pop\"]],port_connection:[{include:\"@identifier_or_keyword\"},{include:\"@whitespace\"},[/@systemcall/,\"variable.predefined\"],{include:\"@numbers\"},{include:\"@strings\"},[/[,]/,\"delimiter\"],[/\\(/,\"@brackets\",\"@port_connection\"],[/\\)/,\"@brackets\",\"@pop\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],strings:[[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",\"@string\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string\",\"@pop\"]],include:[[/(\\s*)(\")([\\w*\\/*]*)(.\\w*)(\")/,[\"\",\"string.include.identifier\",\"string.include.identifier\",\"string.include.identifier\",{token:\"string.include.identifier\",next:\"@pop\"}]],[/(\\s*)(<)([\\w*\\/*]*)(.\\w*)(>)/,[\"\",\"string.include.identifier\",\"string.include.identifier\",\"string.include.identifier\",{token:\"string.include.identifier\",next:\"@pop\"}]]],table:[{include:\"@whitespace\"},[/[()]/,\"@brackets\"],[/[:;]/,\"delimiter\"],[/[01\\-*?xXbBrRfFpPnN]/,\"variable.predefined\"],[\"endtable\",\"keyword.endtable\",\"@pop\"]]}};export{e as conf,n as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/DOk3G3cc.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"//\",blockComment:[\"(*\",\"*)\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"],[\"<\",\">\"]],autoClosingPairs:[{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]},{open:\"{\",close:\"}\",notIn:[\"string\",\"comment\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\"]}]},t={tokenPostfix:\".pats\",defaultToken:\"invalid\",keywords:[\"abstype\",\"abst0ype\",\"absprop\",\"absview\",\"absvtype\",\"absviewtype\",\"absvt0ype\",\"absviewt0ype\",\"as\",\"and\",\"assume\",\"begin\",\"classdec\",\"datasort\",\"datatype\",\"dataprop\",\"dataview\",\"datavtype\",\"dataviewtype\",\"do\",\"end\",\"extern\",\"extype\",\"extvar\",\"exception\",\"fn\",\"fnx\",\"fun\",\"prfn\",\"prfun\",\"praxi\",\"castfn\",\"if\",\"then\",\"else\",\"ifcase\",\"in\",\"infix\",\"infixl\",\"infixr\",\"prefix\",\"postfix\",\"implmnt\",\"implement\",\"primplmnt\",\"primplement\",\"import\",\"let\",\"local\",\"macdef\",\"macrodef\",\"nonfix\",\"symelim\",\"symintr\",\"overload\",\"of\",\"op\",\"rec\",\"sif\",\"scase\",\"sortdef\",\"sta\",\"stacst\",\"stadef\",\"static\",\"staload\",\"dynload\",\"try\",\"tkindef\",\"typedef\",\"propdef\",\"viewdef\",\"vtypedef\",\"viewtypedef\",\"prval\",\"var\",\"prvar\",\"when\",\"where\",\"with\",\"withtype\",\"withprop\",\"withview\",\"withvtype\",\"withviewtype\"],keywords_dlr:[\"$delay\",\"$ldelay\",\"$arrpsz\",\"$arrptrsize\",\"$d2ctype\",\"$effmask\",\"$effmask_ntm\",\"$effmask_exn\",\"$effmask_ref\",\"$effmask_wrt\",\"$effmask_all\",\"$extern\",\"$extkind\",\"$extype\",\"$extype_struct\",\"$extval\",\"$extfcall\",\"$extmcall\",\"$literal\",\"$myfilename\",\"$mylocation\",\"$myfunction\",\"$lst\",\"$lst_t\",\"$lst_vt\",\"$list\",\"$list_t\",\"$list_vt\",\"$rec\",\"$rec_t\",\"$rec_vt\",\"$record\",\"$record_t\",\"$record_vt\",\"$tup\",\"$tup_t\",\"$tup_vt\",\"$tuple\",\"$tuple_t\",\"$tuple_vt\",\"$break\",\"$continue\",\"$raise\",\"$showtype\",\"$vcopyenv_v\",\"$vcopyenv_vt\",\"$tempenver\",\"$solver_assert\",\"$solver_verify\"],keywords_srp:[\"#if\",\"#ifdef\",\"#ifndef\",\"#then\",\"#elif\",\"#elifdef\",\"#elifndef\",\"#else\",\"#endif\",\"#error\",\"#prerr\",\"#print\",\"#assert\",\"#undef\",\"#define\",\"#include\",\"#require\",\"#pragma\",\"#codegen2\",\"#codegen3\"],irregular_keyword_list:[\"val+\",\"val-\",\"val\",\"case+\",\"case-\",\"case\",\"addr@\",\"addr\",\"fold@\",\"free@\",\"fix@\",\"fix\",\"lam@\",\"lam\",\"llam@\",\"llam\",\"viewt@ype+\",\"viewt@ype-\",\"viewt@ype\",\"viewtype+\",\"viewtype-\",\"viewtype\",\"view+\",\"view-\",\"view@\",\"view\",\"type+\",\"type-\",\"type\",\"vtype+\",\"vtype-\",\"vtype\",\"vt@ype+\",\"vt@ype-\",\"vt@ype\",\"viewt@ype+\",\"viewt@ype-\",\"viewt@ype\",\"viewtype+\",\"viewtype-\",\"viewtype\",\"prop+\",\"prop-\",\"prop\",\"type+\",\"type-\",\"type\",\"t@ype\",\"t@ype+\",\"t@ype-\",\"abst@ype\",\"abstype\",\"absviewt@ype\",\"absvt@ype\",\"for*\",\"for\",\"while*\",\"while\"],keywords_types:[\"bool\",\"double\",\"byte\",\"int\",\"short\",\"char\",\"void\",\"unit\",\"long\",\"float\",\"string\",\"strptr\"],keywords_effects:[\"0\",\"fun\",\"clo\",\"prf\",\"funclo\",\"cloptr\",\"cloref\",\"ref\",\"ntm\",\"1\"],operators:[\"@\",\"!\",\"|\",\"`\",\":\",\"$\",\".\",\"=\",\"#\",\"~\",\"..\",\"...\",\"=>\",\"=<>\",\"=/=>\",\"=>>\",\"=/=>>\",\"<\",\">\",\"><\",\".<\",\">.\",\".<>.\",\"->\",\"-<>\"],brackets:[{open:\",(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"`(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"%(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"'(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"'{\",close:\"}\",token:\"delimiter.parenthesis\"},{open:\"@(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"@{\",close:\"}\",token:\"delimiter.brace\"},{open:\"@[\",close:\"]\",token:\"delimiter.square\"},{open:\"#[\",close:\"]\",token:\"delimiter.square\"},{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"}],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,IDENTFST:/[a-zA-Z_]/,IDENTRST:/[a-zA-Z0-9_'$]/,symbolic:/[%&+-./:=@~`^|*!$#?<>]/,digit:/[0-9]/,digitseq0:/@digit*/,xdigit:/[0-9A-Za-z]/,xdigitseq0:/@xdigit*/,INTSP:/[lLuU]/,FLOATSP:/[fFlL]/,fexponent:/[eE][+-]?[0-9]+/,fexponent_bin:/[pP][+-]?[0-9]+/,deciexp:/\\.[0-9]*@fexponent?/,hexiexp:/\\.[0-9a-zA-Z]*@fexponent_bin?/,irregular_keywords:/val[+-]?|case[+-]?|addr\\@?|fold\\@|free\\@|fix\\@?|lam\\@?|llam\\@?|prop[+-]?|type[+-]?|view[+-@]?|viewt@?ype[+-]?|t@?ype[+-]?|v(iew)?t@?ype[+-]?|abst@?ype|absv(iew)?t@?ype|for\\*?|while\\*?/,ESCHAR:/[ntvbrfa\\\\\\?'\"\\(\\[\\{]/,start:\"root\",tokenizer:{root:[{regex:/[ \\t\\r\\n]+/,action:{token:\"\"}},{regex:/\\(\\*\\)/,action:{token:\"invalid\"}},{regex:/\\(\\*/,action:{token:\"comment\",next:\"lexing_COMMENT_block_ml\"}},{regex:/\\(/,action:\"@brackets\"},{regex:/\\)/,action:\"@brackets\"},{regex:/\\[/,action:\"@brackets\"},{regex:/\\]/,action:\"@brackets\"},{regex:/\\{/,action:\"@brackets\"},{regex:/\\}/,action:\"@brackets\"},{regex:/,\\(/,action:\"@brackets\"},{regex:/,/,action:{token:\"delimiter.comma\"}},{regex:/;/,action:{token:\"delimiter.semicolon\"}},{regex:/@\\(/,action:\"@brackets\"},{regex:/@\\[/,action:\"@brackets\"},{regex:/@\\{/,action:\"@brackets\"},{regex:/:</,action:{token:\"keyword\",next:\"@lexing_EFFECT_commaseq0\"}},{regex:/\\.@symbolic+/,action:{token:\"identifier.sym\"}},{regex:/\\.@digit*@fexponent@FLOATSP*/,action:{token:\"number.float\"}},{regex:/\\.@digit+/,action:{token:\"number.float\"}},{regex:/\\$@IDENTFST@IDENTRST*/,action:{cases:{\"@keywords_dlr\":{token:\"keyword.dlr\"},\"@default\":{token:\"namespace\"}}}},{regex:/\\#@IDENTFST@IDENTRST*/,action:{cases:{\"@keywords_srp\":{token:\"keyword.srp\"},\"@default\":{token:\"identifier\"}}}},{regex:/%\\(/,action:{token:\"delimiter.parenthesis\"}},{regex:/^%{(#|\\^|\\$)?/,action:{token:\"keyword\",next:\"@lexing_EXTCODE\",nextEmbedded:\"text/javascript\"}},{regex:/^%}/,action:{token:\"keyword\"}},{regex:/'\\(/,action:{token:\"delimiter.parenthesis\"}},{regex:/'\\[/,action:{token:\"delimiter.bracket\"}},{regex:/'\\{/,action:{token:\"delimiter.brace\"}},[/(')(\\\\@ESCHAR|\\\\[xX]@xdigit+|\\\\@digit+)(')/,[\"string\",\"string.escape\",\"string\"]],[/'[^\\\\']'/,\"string\"],[/\"/,\"string.quote\",\"@lexing_DQUOTE\"],{regex:/`\\(/,action:\"@brackets\"},{regex:/\\\\/,action:{token:\"punctuation\"}},{regex:/@irregular_keywords(?!@IDENTRST)/,action:{token:\"keyword\"}},{regex:/@IDENTFST@IDENTRST*[<!\\[]?/,action:{cases:{\"@keywords\":{token:\"keyword\"},\"@keywords_types\":{token:\"type\"},\"@default\":{token:\"identifier\"}}}},{regex:/\\/\\/\\/\\//,action:{token:\"comment\",next:\"@lexing_COMMENT_rest\"}},{regex:/\\/\\/.*$/,action:{token:\"comment\"}},{regex:/\\/\\*/,action:{token:\"comment\",next:\"@lexing_COMMENT_block_c\"}},{regex:/-<|=</,action:{token:\"keyword\",next:\"@lexing_EFFECT_commaseq0\"}},{regex:/@symbolic+/,action:{cases:{\"@operators\":\"keyword\",\"@default\":\"operator\"}}},{regex:/0[xX]@xdigit+(@hexiexp|@fexponent_bin)@FLOATSP*/,action:{token:\"number.float\"}},{regex:/0[xX]@xdigit+@INTSP*/,action:{token:\"number.hex\"}},{regex:/0[0-7]+(?![0-9])@INTSP*/,action:{token:\"number.octal\"}},{regex:/@digit+(@fexponent|@deciexp)@FLOATSP*/,action:{token:\"number.float\"}},{regex:/@digit@digitseq0@INTSP*/,action:{token:\"number.decimal\"}},{regex:/@digit+@INTSP*/,action:{token:\"number\"}}],lexing_COMMENT_block_ml:[[/[^\\(\\*]+/,\"comment\"],[/\\(\\*/,\"comment\",\"@push\"],[/\\(\\*/,\"comment.invalid\"],[/\\*\\)/,\"comment\",\"@pop\"],[/\\*/,\"comment\"]],lexing_COMMENT_block_c:[[/[^\\/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],lexing_COMMENT_rest:[[/$/,\"comment\",\"@pop\"],[/.*/,\"comment\"]],lexing_EFFECT_commaseq0:[{regex:/@IDENTFST@IDENTRST+|@digit+/,action:{cases:{\"@keywords_effects\":{token:\"type.effect\"},\"@default\":{token:\"identifier\"}}}},{regex:/,/,action:{token:\"punctuation\"}},{regex:/>/,action:{token:\"@rematch\",next:\"@pop\"}}],lexing_EXTCODE:[{regex:/^%}/,action:{token:\"@rematch\",next:\"@pop\",nextEmbedded:\"@pop\"}},{regex:/[^%]+/,action:\"\"}],lexing_DQUOTE:[{regex:/\"/,action:{token:\"string.quote\",next:\"@pop\"}},{regex:/(\\{\\$)(@IDENTFST@IDENTRST*)(\\})/,action:[{token:\"string.escape\"},{token:\"identifier\"},{token:\"string.escape\"}]},{regex:/\\\\$/,action:{token:\"string.escape\"}},{regex:/\\\\(@ESCHAR|[xX]@xdigit+|@digit+)/,action:{token:\"string.escape\"}},{regex:/[^\\\\\"]+/,action:{token:\"string\"}}]}};export{e as conf,t as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/DP9I38t9.js",
    "content": "import{Q as F,d as M,C as o,g as u,R as h,E as v,j as C,X as I,H as g,G as f,aC as V,aj as p,F as q,O as E,q as P,ak as R,am as D,an as z,c as t,ap as s,aq as b}from\"./CU_MfyYc.js\";const G={wrapper:\"w-full flex flex-col gap-2\",indicator:{container:{base:\"flex flex-row justify-end\",width:\"min-w-fit\",transition:\"transition-all\"},align:\"text-end\",width:\"w-fit\",color:\"text-gray-400 dark:text-gray-500\",size:{\"2xs\":\"text-xs\",xs:\"text-xs\",sm:\"text-sm\",md:\"text-sm\",lg:\"text-sm\",xl:\"text-base\",\"2xl\":\"text-base\"}},progress:{base:\"block appearance-none border-none overflow-hidden\",width:\"w-full [&::-webkit-progress-bar]:w-full\",size:{\"2xs\":\"h-px\",xs:\"h-0.5\",sm:\"h-1\",md:\"h-2\",lg:\"h-3\",xl:\"h-4\",\"2xl\":\"h-5\"},rounded:\"rounded-full [&::-webkit-progress-bar]:rounded-full\",track:\"[&::-webkit-progress-bar]:bg-gray-200 [&::-webkit-progress-bar]:dark:bg-gray-700 [@supports(selector(&::-moz-progress-bar))]:bg-gray-200 [@supports(selector(&::-moz-progress-bar))]:dark:bg-gray-700\",bar:\"[&::-webkit-progress-value]:rounded-full [&::-webkit-progress-value]:transition-all [&::-webkit-progress-value]:ease-in-out [&::-moz-progress-bar]:rounded-full\",color:\"text-{color}-500 dark:text-{color}-400\",background:\"[&::-webkit-progress-value]:bg-current [&::-moz-progress-bar]:bg-current\",indeterminate:{base:\"indeterminate:relative\",rounded:\"indeterminate:after:rounded-full [&:indeterminate::-webkit-progress-value]:rounded-full [&:indeterminate::-moz-progress-bar]:rounded-full\"}},steps:{base:\"grid grid-cols-1\",color:\"text-{color}-500 dark:text-{color}-400\",size:{\"2xs\":\"text-xs\",xs:\"text-xs\",sm:\"text-sm\",md:\"text-sm\",lg:\"text-sm\",xl:\"text-base\",\"2xl\":\"text-base\"}},step:{base:\"transition-all opacity-0 truncate row-start-1 col-start-1\",align:\"text-end\",active:\"opacity-100\",first:\"text-gray-500 dark:text-gray-400\"},animation:{carousel:\"bar-animation-carousel\",\"carousel-inverse\":\"bar-animation-carousel-inverse\",swing:\"bar-animation-swing\",elastic:\"bar-animation-elastic\"},default:{color:\"primary\",size:\"md\",animation:\"carousel\"}},i=R(b.ui.strategy,b.ui.progress,G),H=M({inheritAttrs:!1,props:{value:{type:Number,default:null},max:{type:[Number,Array],default:100},indicator:{type:Boolean,default:!1},animation:{type:String,default:()=>i.default.animation,validator(e){return Object.keys(i.animation).includes(e)}},size:{type:String,default:()=>i.default.size,validator(e){return Object.keys(i.progress.size).includes(e)}},color:{type:String,default:()=>i.default.color,validator(e){return b.ui.colors.includes(e)}},class:{type:[String,Object,Array],default:()=>\"\"},ui:{type:Object,default:()=>({})}},setup(e){const{ui:r,attrs:y}=D(\"progress\",z(e,\"ui\"),i,z(e,\"class\")),x=t(()=>s(r.value.indicator.container.base,r.value.indicator.container.width,r.value.indicator.container.transition)),w=t(()=>s(r.value.indicator.align,r.value.indicator.width,r.value.indicator.color,r.value.indicator.size[e.size])),k=t(()=>{var n;const a=[r.value.progress.base,r.value.progress.width,r.value.progress.size[e.size],r.value.progress.rounded,r.value.progress.track,r.value.progress.bar,(n=r.value.progress.color)==null?void 0:n.replaceAll(\"{color}\",e.color),r.value.progress.background,r.value.progress.indeterminate.base,r.value.progress.indeterminate.rounded];return c.value&&a.push(r.value.animation[e.animation]),s(...a)}),d=t(()=>{var a;return s(r.value.steps.base,(a=r.value.steps.color)==null?void 0:a.replaceAll(\"{color}\",e.color),r.value.steps.size[e.size])}),l=t(()=>s(r.value.step.base,r.value.step.align)),A=t(()=>s(r.value.step.active)),S=t(()=>s(r.value.step.first));function $(a){return a===Number(e.value)}function j(a){return a===0}function N(a){a=Number(a);const n=[l.value];return j(a)&&n.push(S.value),$(a)&&n.push(A.value),n.join(\" \")}const c=t(()=>e.value===void 0||e.value===null),O=t(()=>Array.isArray(e.max)),m=t(()=>c.value?null:Array.isArray(e.max)?e.max.length-1:Number(e.max)),B=t(()=>{if(!c.value)switch(!0){case e.value<0:return 0;case e.value>m.value:return 100;default:return e.value/m.value*100}});return{ui:r,attrs:y,indicatorContainerClass:x,indicatorClass:w,progressClass:k,stepsClass:d,stepClasses:N,isIndeterminate:c,isSteps:O,realMax:m,percent:B}}});function J(e,r,y,x,w,k){return u(),o(\"div\",p({class:e.ui.wrapper},e.attrs),[e.indicator||e.$slots.indicator?h(e.$slots,\"indicator\",V(p({key:0},{percent:e.percent})),()=>[e.isSteps?v(\"\",!0):(u(),o(\"div\",{key:0,class:g(e.indicatorContainerClass),style:I({width:`${e.percent}%`})},[C(\"div\",{class:g(e.indicatorClass)},f(Math.round(e.percent))+\"% \",3)],6))],!0):v(\"\",!0),C(\"progress\",p({class:e.progressClass},{value:e.value,max:e.realMax}),f(e.percent!==void 0?`${Math.round(e.percent)}%`:void 0),17),e.isSteps?(u(),o(\"div\",{key:1,class:g(e.stepsClass)},[(u(!0),o(q,null,E(e.max,(d,l)=>(u(),o(\"div\",{key:l,class:g(e.stepClasses(l))},[h(e.$slots,`step-${l}`,p({ref_for:!0},{step:d}),()=>[P(f(d),1)],!0)],2))),128))],2)):v(\"\",!0)],16)}const Q=F(H,[[\"render\",J],[\"__scopeId\",\"data-v-1e545a26\"]]);export{Q as _};\n"
  },
  {
    "path": "jesse/static/_nuxt/DPg46dy1.js",
    "content": "import{_ as H}from\"./Cw4FHd9N.js\";import{d as T,r as A,c as b,C as c,i,f as n,x as f,D as U,g as o,j as a,F as v,e as p,E as x,v as P,t as L,q as V,G as l,H as h,I as D}from\"./CU_MfyYc.js\";import{_ as w}from\"./BuljS_lV.js\";const E={class:\"bg-white dark:bg-gray-800/50 border border-gray-200 dark:border-gray-700 rounded-lg overflow-hidden shadow-sm\"},F={key:0,class:\"flex justify-center\"},R={key:1,class:\"flex items-center gap-2\"},q={class:\"text-xs font-medium capitalize\"},I={class:\"flex flex-col\"},G={class:\"font-semibold text-gray-900 dark:text-gray-100\"},M={class:\"text-xs text-gray-500 dark:text-gray-400\"},J={key:0,class:\"flex flex-col\"},K={class:\"text-sm font-medium text-gray-900 dark:text-gray-100\"},O={class:\"text-xs text-gray-500 dark:text-gray-400\"},Q={key:1,class:\"text-sm text-gray-700 dark:text-gray-300\"},W={class:\"flex justify-center\"},X={class:\"text-sm text-gray-500 dark:text-gray-400\"},Y={key:0,class:\"flex flex-col items-center\"},Z={key:1,class:\"flex justify-center\"},ee={key:0,class:\"flex flex-col items-center text-sm\"},te={class:\"text-gray-900 dark:text-gray-100 font-medium\"},se={key:1,class:\"flex justify-center\"},ne={class:\"flex justify-center\"},ae={class:\"text-sm font-medium\"},oe={class:\"flex justify-center\"},re={key:1,class:\"text-gray-400\"},ie={class:\"flex items-center justify-end gap-1\"},ue=T({__name:\"LiveSessionsTable\",props:{sessions:{},showHistoryActions:{type:Boolean}},emits:[\"start\",\"stop\",\"close\",\"delete\",\"notes\",\"load\"],setup(C){const _=C,m=A({column:\"pnl_perc\",direction:\"desc\"}),S=b(()=>_.showHistoryActions?[{key:\"strategy\",label:\"Strategy\"},{key:\"session\",label:\"Session\"},{key:\"mode\",label:\"Mode\",class:\"text-center\"},{key:\"status\",label:\"Status\",class:\"text-center\"},{key:\"updated_at\",label:\"Date\"},{key:\"actions\",label:\"\",class:\"w-32 text-right\"}]:[{key:\"status\",label:\"Status\"},{key:\"session\",label:\"Session\"},{key:\"strategy\",label:\"Strategy\"},{key:\"pnl_perc\",label:\"PNL\",sortable:!0,class:\"text-center\"},{key:\"balance\",label:\"Balance\",class:\"text-center\"},{key:\"count_trades\",label:\"Trades\",sortable:!0,class:\"text-center\"},{key:\"open_positions\",label:\"Pos\",sortable:!0,class:\"text-center\"},{key:\"actions\",label:\"\",class:\"w-24 text-right\"}]);function y(t,s=0){const r=typeof t==\"number\"?t:Number(t);return Number.isFinite(r)?r:s}const $=b(()=>_.showHistoryActions?_.sessions.map(t=>{var r,d,u;const s=((u=(d=(r=t.state)==null?void 0:r.form)==null?void 0:d.routes)==null?void 0:u[0])||{};return{id:t.id,title:t.title,strategy:s.strategy,exchange:t.exchange,symbol:s.symbol,timeframe:s.timeframe,mode:t.session_mode,status:t.status,updated_at:t.updated_at,rawSession:t}}):_.sessions.map(t=>{const s=t.results.generalInfo||{},r=t.form.routes[0]||{};return{id:t.id,phase:t.results.phase,exchange:t.form.exchange,symbol:r.symbol,timeframe:r.timeframe,strategy:r.strategy,pnl:y(s.pnl),pnl_perc:y(s.pnl_perc),current_balance:s.current_balance,started_balance:s.started_balance,count_trades:y(s.count_trades),open_positions:y(s.open_positions),hasPnl:s.pnl!==void 0&&s.pnl!==null}}));function z(t){return t===\"running\"?\"bg-green-500\":t===\"starting\"?\"bg-yellow-500\":t===\"editing\"?\"bg-gray-400\":t===\"error\"?\"bg-red-500\":t===\"ended\"?\"bg-blue-500\":t===\"stopping\"?\"bg-orange-500\":\"bg-gray-400\"}function k(t){const s=Number(t);return s===0||isNaN(s)?\"text-gray-900 dark:text-gray-100\":s>0?\"text-green-600 dark:text-green-400\":\"text-red-600 dark:text-red-400\"}function N(t){switch(t==null?void 0:t.toLowerCase()){case\"running\":return\"blue\";case\"stopped\":return\"red\";case\"terminated\":return\"gray\";default:return\"gray\"}}function j(t){D(`/live/${t}`)}return(t,s)=>{const r=H,d=L,u=P,B=w;return o(),c(\"div\",E,[i(B,{sort:f(m),\"onUpdate:sort\":s[0]||(s[0]=e=>U(m)?m.value=e:null),rows:f($),columns:f(S),class:\"w-full\",ui:{td:{base:\"whitespace-nowrap\"},th:{base:\"whitespace-nowrap\"}}},{\"status-data\":n(({row:e})=>[_.showHistoryActions?(o(),c(\"div\",F,[i(r,{color:N(e.status),label:e.status,variant:\"soft\",size:\"xs\"},null,8,[\"color\",\"label\"])])):(o(),c(\"div\",R,[a(\"div\",{class:h([\"w-2.5 h-2.5 rounded-full\",z(e.phase)])},null,2),a(\"span\",q,l(e.phase),1)]))]),\"session-data\":n(({row:e})=>[a(\"div\",I,[a(\"span\",G,l(e.exchange||\"-\"),1),a(\"span\",M,l(e.symbol)+\" • \"+l(e.timeframe),1)])]),\"strategy-data\":n(({row:e})=>[_.showHistoryActions?(o(),c(\"div\",J,[a(\"span\",K,l(e.title||e.strategy||\"Unknown Strategy\"),1),a(\"span\",O,l(e.exchange||\"Unknown Exchange\"),1)])):(o(),c(\"span\",Q,l(e.strategy),1))]),\"mode-data\":n(({row:e})=>[a(\"div\",W,[i(r,{color:e.mode===\"livetrade\"?\"red\":\"orange\",label:e.mode===\"livetrade\"?\"Live\":\"Paper\",variant:\"soft\",size:\"xs\"},null,8,[\"color\",\"label\"])])]),\"updated_at-data\":n(({row:e})=>[a(\"span\",X,l(e.updated_at),1)]),\"pnl_perc-data\":n(({row:e})=>[e.phase===\"running\"||e.hasPnl?(o(),c(\"div\",Y,[a(\"span\",{class:h([\"font-bold\",k(e.pnl)])},l(e.pnl),3),a(\"span\",{class:h([\"text-xs\",k(e.pnl)])},\" (\"+l(e.pnl_perc)+\"%) \",3)])):(o(),c(\"div\",Z,s[1]||(s[1]=[a(\"span\",{class:\"text-gray-400\"},\"-\",-1)])))]),\"balance-data\":n(({row:e})=>[e.current_balance?(o(),c(\"div\",ee,[a(\"span\",te,l(e.current_balance),1)])):(o(),c(\"div\",se,s[2]||(s[2]=[a(\"span\",{class:\"text-gray-400\"},\"-\",-1)])))]),\"count_trades-data\":n(({row:e})=>[a(\"div\",ne,[a(\"span\",ae,l(e.count_trades??0),1)])]),\"open_positions-data\":n(({row:e})=>[a(\"div\",oe,[e.open_positions>0?(o(),p(r,{key:0,size:\"xs\",color:\"gray\",variant:\"solid\"},{default:n(()=>[V(l(e.open_positions),1)]),_:2},1024)):(o(),c(\"span\",re,\"0\"))])]),\"actions-data\":n(({row:e})=>[a(\"div\",ie,[_.showHistoryActions?(o(),c(v,{key:0},[i(u,{text:\"Add Note\"},{default:n(()=>[i(d,{size:\"xs\",variant:\"ghost\",color:\"gray\",icon:\"i-heroicons-pencil-square\",onClick:g=>t.$emit(\"notes\",e)},null,8,[\"onClick\"])]),_:2},1024),i(u,{text:\"Load Session\"},{default:n(()=>[i(d,{size:\"xs\",variant:\"ghost\",color:\"gray\",icon:\"i-heroicons-arrow-right\",onClick:g=>t.$emit(\"load\",e.id)},null,8,[\"onClick\"])]),_:2},1024),e.status!==\"running\"?(o(),p(u,{key:0,text:\"Delete\"},{default:n(()=>[i(d,{size:\"xs\",variant:\"ghost\",color:\"red\",icon:\"i-heroicons-trash\",onClick:g=>t.$emit(\"delete\",e.id)},null,8,[\"onClick\"])]),_:2},1024)):x(\"\",!0)],64)):(o(),c(v,{key:1},[i(u,{text:\"View Session\"},{default:n(()=>[i(d,{size:\"xs\",variant:\"ghost\",color:\"gray\",icon:\"i-heroicons-eye\",onClick:g=>j(e.id)},null,8,[\"onClick\"])]),_:2},1024),[\"editing\",\"ended\",\"error\"].includes(e.phase)?(o(),p(u,{key:0,text:\"Start Session\"},{default:n(()=>[i(d,{size:\"xs\",variant:\"ghost\",icon:\"i-heroicons-play\",onClick:g=>t.$emit(\"start\",e.id)},null,8,[\"onClick\"])]),_:2},1024)):x(\"\",!0),[\"starting\",\"running\"].includes(e.phase)?(o(),p(u,{key:1,text:\"Stop Session\"},{default:n(()=>[i(d,{size:\"xs\",variant:\"ghost\",color:\"red\",icon:\"i-heroicons-stop\",onClick:g=>t.$emit(\"stop\",e.id)},null,8,[\"onClick\"])]),_:2},1024)):x(\"\",!0),[\"editing\",\"ended\",\"error\"].includes(e.phase)?(o(),p(u,{key:2,text:\"Close Tab\"},{default:n(()=>[i(d,{size:\"xs\",variant:\"ghost\",color:\"red\",icon:\"i-heroicons-x-mark\",onClick:g=>t.$emit(\"close\",e.id)},null,8,[\"onClick\"])]),_:2},1024)):x(\"\",!0)],64))])]),_:1},8,[\"sort\",\"rows\",\"columns\"])])}}});export{ue as _};\n"
  },
  {
    "path": "jesse/static/_nuxt/DPvbFsQx.js",
    "content": "import e from\"./Dj6nwHGl.js\";const n=Object.freeze(JSON.parse(`{\"displayName\":\"Imba\",\"fileTypes\":[\"imba\",\"imba2\"],\"name\":\"imba\",\"patterns\":[{\"include\":\"#root\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.imba\"}},\"match\":\"\\\\\\\\A(#!).*(?=$)\",\"name\":\"comment.line.shebang.imba\"}],\"repository\":{\"array-literal\":{\"begin\":\"\\\\\\\\s*(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.brace.square.imba\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.square.imba\"}},\"name\":\"meta.array.literal.imba\",\"patterns\":[{\"include\":\"#expr\"},{\"include\":\"#punctuation-comma\"}]},\"block\":{\"patterns\":[{\"include\":\"#style-declaration\"},{\"include\":\"#mixin-declaration\"},{\"include\":\"#object-keys\"},{\"include\":\"#generics-literal\"},{\"include\":\"#tag-literal\"},{\"include\":\"#regex\"},{\"include\":\"#keywords\"},{\"include\":\"#comment\"},{\"include\":\"#literal\"},{\"include\":\"#plain-identifiers\"},{\"include\":\"#plain-accessors\"},{\"include\":\"#pairs\"},{\"include\":\"#invalid-indentation\"}]},\"boolean-literal\":{\"patterns\":[{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(true|yes)(?![\\\\\\\\?_\\\\\\\\-$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.boolean.true.imba\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(false|no)(?![\\\\\\\\?_\\\\\\\\-$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.boolean.false.imba\"}]},\"brackets\":{\"patterns\":[{\"begin\":\"{\",\"end\":\"}|(?=\\\\\\\\*/)\",\"patterns\":[{\"include\":\"#brackets\"}]},{\"begin\":\"\\\\\\\\[\",\"end\":\"\\\\\\\\]|(?=\\\\\\\\*/)\",\"patterns\":[{\"include\":\"#brackets\"}]}]},\"comment\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\\\\\\\\*(?!/)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.imba\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.imba\"}},\"name\":\"comment.block.documentation.imba\",\"patterns\":[{\"include\":\"#docblock\"}]},{\"begin\":\"(/\\\\\\\\*)(?:\\\\\\\\s*((@)internal)(?=\\\\\\\\s|(\\\\\\\\*/)))?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.imba\"},\"2\":{\"name\":\"storage.type.internaldeclaration.imba\"},\"3\":{\"name\":\"punctuation.decorator.internaldeclaration.imba\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.imba\"}},\"name\":\"comment.block.imba\"},{\"begin\":\"(### \\\\\\\\@ts(?=\\\\\\\\s|$))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.imba\"}},\"contentName\":\"source.ts.embedded.imba\",\"end\":\"###\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.imba\"}},\"name\":\"ts.block.imba\",\"patterns\":[{\"include\":\"source.ts\"}]},{\"begin\":\"(###)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.imba\"}},\"end\":\"###(?:[ \\\\\\\\t]*\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.imba\"}},\"name\":\"comment.block.imba\"},{\"begin\":\"(^[ \\\\\\\\t]+)?((//|\\\\\\\\#\\\\\\\\s)(?:\\\\\\\\s*((@)internal)(?=\\\\\\\\s|$))?)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.imba\"},\"2\":{\"name\":\"comment.line.double-slash.imba\"},\"3\":{\"name\":\"punctuation.definition.comment.imba\"},\"4\":{\"name\":\"storage.type.internaldeclaration.imba\"},\"5\":{\"name\":\"punctuation.decorator.internaldeclaration.imba\"}},\"contentName\":\"comment.line.double-slash.imba\",\"end\":\"(?=$)\"}]},\"css-color-keywords\":{\"patterns\":[{\"match\":\"(?i)(?<![\\\\\\\\w-])(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)(?![\\\\\\\\w-])\",\"name\":\"support.constant.color.w3c-standard-color-name.css\"},{\"match\":\"(?xi) (?<![\\\\\\\\w-])\\\\n(aliceblue|antiquewhite|aquamarine|azure|beige|bisque|blanchedalmond|blueviolet|brown|burlywood\\\\n|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan\\\\n|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange\\\\n|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise\\\\n|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen\\\\n|gainsboro|ghostwhite|gold|goldenrod|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki\\\\n|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow\\\\n|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray\\\\n|lightslategrey|lightsteelblue|lightyellow|limegreen|linen|magenta|mediumaquamarine|mediumblue\\\\n|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise\\\\n|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|oldlace|olivedrab|orangered\\\\n|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum\\\\n|powderblue|rebeccapurple|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell\\\\n|sienna|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|thistle|tomato\\\\n|transparent|turquoise|violet|wheat|whitesmoke|yellowgreen)\\\\n(?![\\\\\\\\w-])\",\"name\":\"support.constant.color.w3c-extended-color-name.css\"},{\"match\":\"(?i)(?<![\\\\\\\\w-])currentColor(?![\\\\\\\\w-])\",\"name\":\"support.constant.color.current.css\"}]},\"css-combinators\":{\"patterns\":[{\"match\":\">>>|>>|>|\\\\\\\\+|~\",\"name\":\"punctuation.separator.combinator.css\"},{\"match\":\"&\",\"name\":\"keyword.other.parent-selector.css\"}]},\"css-commas\":{\"match\":\",\",\"name\":\"punctuation.separator.list.comma.css\"},\"css-comment\":{\"patterns\":[{\"match\":\"\\\\\\\\#(\\\\\\\\s.+)?(\\\\\\\\n|$)\",\"name\":\"comment.line.imba\"},{\"match\":\"(^\\\\\\\\t+)(\\\\\\\\#(\\\\\\\\s.+)?(\\\\\\\\n|$))\",\"name\":\"comment.line.imba\"}]},\"css-escapes\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[0-9a-fA-F]{1,6}\",\"name\":\"constant.character.escape.codepoint.css\"},{\"begin\":\"\\\\\\\\\\\\\\\\$\\\\\\\\s*\",\"end\":\"^(?<!\\\\\\\\G)\",\"name\":\"constant.character.escape.newline.css\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.css\"}]},\"css-functions\":{\"patterns\":[{\"begin\":\"(?i)(?<![\\\\\\\\w-])(calc)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.calc.css\"},\"2\":{\"name\":\"punctuation.section.function.begin.bracket.round.css\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.function.end.bracket.round.css\"}},\"name\":\"meta.function.calc.css\",\"patterns\":[{\"match\":\"[*/]|(?<=\\\\\\\\s|^)[-+](?=\\\\\\\\s|$)\",\"name\":\"keyword.operator.arithmetic.css\"},{\"include\":\"#css-property-values\"}]},{\"begin\":\"(?i)(?<![\\\\\\\\w-])(rgba?|hsla?)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.misc.css\"},\"2\":{\"name\":\"punctuation.section.function.begin.bracket.round.css\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.function.end.bracket.round.css\"}},\"name\":\"meta.function.color.css\",\"patterns\":[{\"include\":\"#css-property-values\"}]},{\"begin\":\"(?xi) (?<![\\\\\\\\w-])\\\\n(\\\\n  (?:-webkit-|-moz-|-o-)?    # Accept prefixed/historical variants\\\\n  (?:repeating-)?            # \\\\\"Repeating\\\\\"-type gradient\\\\n  (?:linear|radial|conic)    # Shape\\\\n  -gradient\\\\n)\\\\n(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.gradient.css\"},\"2\":{\"name\":\"punctuation.section.function.begin.bracket.round.css\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.function.end.bracket.round.css\"}},\"name\":\"meta.function.gradient.css\",\"patterns\":[{\"match\":\"(?i)(?<![\\\\\\\\w-])(from|to|at)(?![\\\\\\\\w-])\",\"name\":\"keyword.operator.gradient.css\"},{\"include\":\"#css-property-values\"}]},{\"begin\":\"(?i)(?<![\\\\\\\\w-])(-webkit-gradient)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"invalid.deprecated.gradient.function.css\"},\"2\":{\"name\":\"punctuation.section.function.begin.bracket.round.css\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.function.end.bracket.round.css\"}},\"name\":\"meta.function.gradient.invalid.deprecated.gradient.css\",\"patterns\":[{\"begin\":\"(?i)(?<![\\\\\\\\w-])(from|to|color-stop)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"invalid.deprecated.function.css\"},\"2\":{\"name\":\"punctuation.section.function.begin.bracket.round.css\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.function.end.bracket.round.css\"}},\"patterns\":[{\"include\":\"#css-property-values\"}]},{\"include\":\"#css-property-values\"}]},{\"begin\":\"(?xi) (?<![\\\\\\\\w-])\\\\n(annotation|attr|blur|brightness|character-variant|contrast|counters?\\\\n|cross-fade|drop-shadow|element|fit-content|format|grayscale|hue-rotate\\\\n|image-set|invert|local|minmax|opacity|ornaments|repeat|saturate|sepia\\\\n|styleset|stylistic|swash|symbols)\\\\n(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.misc.css\"},\"2\":{\"name\":\"punctuation.section.function.begin.bracket.round.css\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.function.end.bracket.round.css\"}},\"name\":\"meta.function.misc.css\",\"patterns\":[{\"match\":\"(?i)(?<=[,\\\\\\\\s\\\\\"]|\\\\\\\\*/|^)\\\\\\\\d+x(?=[\\\\\\\\s,\\\\\"')]|/\\\\\\\\*|$)\",\"name\":\"constant.numeric.other.density.css\"},{\"include\":\"#css-property-values\"},{\"match\":\"[^'\\\\\"),\\\\\\\\s]+\",\"name\":\"variable.parameter.misc.css\"}]},{\"begin\":\"(?i)(?<![\\\\\\\\w-])(circle|ellipse|inset|polygon|rect)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.shape.css\"},\"2\":{\"name\":\"punctuation.section.function.begin.bracket.round.css\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.function.end.bracket.round.css\"}},\"name\":\"meta.function.shape.css\",\"patterns\":[{\"match\":\"(?i)(?<=\\\\\\\\s|^|\\\\\\\\*/)(at|round)(?=\\\\\\\\s|/\\\\\\\\*|$)\",\"name\":\"keyword.operator.shape.css\"},{\"include\":\"#css-property-values\"}]},{\"begin\":\"(?i)(?<![\\\\\\\\w-])(cubic-bezier|steps)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.timing-function.css\"},\"2\":{\"name\":\"punctuation.section.function.begin.bracket.round.css\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.function.end.bracket.round.css\"}},\"name\":\"meta.function.timing-function.css\",\"patterns\":[{\"match\":\"(?i)(?<![\\\\\\\\w-])(start|end)(?=\\\\\\\\s*\\\\\\\\)|$)\",\"name\":\"support.constant.step-direction.css\"},{\"include\":\"#css-property-values\"}]},{\"begin\":\"(?xi) (?<![\\\\\\\\w-])\\\\n( (?:translate|scale|rotate)(?:[XYZ]|3D)?\\\\n| matrix(?:3D)?\\\\n| skew[XY]?\\\\n| perspective\\\\n)\\\\n(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.transform.css\"},\"2\":{\"name\":\"punctuation.section.function.begin.bracket.round.css\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.function.end.bracket.round.css\"}},\"patterns\":[{\"include\":\"#css-property-values\"}]}]},\"css-numeric-values\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.constant.css\"}},\"match\":\"(#)(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\\\\\\\\b\",\"name\":\"constant.other.color.rgb-value.hex.css\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.percentage.css\"},\"2\":{\"name\":\"keyword.other.unit.\\${2:/downcase}.css\"}},\"match\":\"(?xi) (?<![\\\\\\\\w-])\\\\n[-+]?                               # Sign indicator\\\\n\\\\n(?:                                 # Numerals\\\\n    [0-9]+ (?:\\\\\\\\.[0-9]+)?           # Integer/float with leading digits\\\\n  | \\\\\\\\.[0-9]+                       # Float without leading digits\\\\n)\\\\n\\\\n(?:                                 # Scientific notation\\\\n  (?<=[0-9])                        # Exponent must follow a digit\\\\n  E                                 # Exponent indicator\\\\n  [-+]?                             # Possible sign indicator\\\\n  [0-9]+                            # Exponent value\\\\n)?\\\\n\\\\n(?:                                 # Possible unit for data-type:\\\\n  (%)                               # - Percentage\\\\n  | ( deg|grad|rad|turn             # - Angle\\\\n    | Hz|kHz                        # - Frequency\\\\n    | ch|cm|em|ex|fr|in|mm|mozmm|   # - Length\\\\n      pc|pt|px|q|rem|vh|vmax|vmin|\\\\n      vw\\\\n    | dpi|dpcm|dppx                 # - Resolution\\\\n    | s|ms                          # - Time\\\\n    )\\\\n  \\\\\\\\b                               # Boundary checking intentionally lax to\\\\n)?                                  # facilitate embedding in CSS-like grammars\",\"name\":\"constant.numeric.css\"}]},\"css-property-values\":{\"patterns\":[{\"include\":\"#css-commas\"},{\"include\":\"#css-escapes\"},{\"include\":\"#css-functions\"},{\"include\":\"#css-numeric-values\"},{\"include\":\"#css-size-keywords\"},{\"include\":\"#css-color-keywords\"},{\"include\":\"#string\"},{\"match\":\"!\\\\\\\\s*important(?![\\\\\\\\w-])\",\"name\":\"keyword.other.important.css\"}]},\"css-pseudo-classes\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.css\"},\"2\":{\"name\":\"invalid.illegal.colon.css\"}},\"match\":\"(?xi)\\\\n(:)(:*)\\\\n(?: active|any-link|checked|default|defined|disabled|empty|enabled|first\\\\n  | (?:first|last|only)-(?:child|of-type)|focus|focus-visible|focus-within\\\\n  | fullscreen|host|hover|in-range|indeterminate|invalid|left|link\\\\n  | optional|out-of-range|placeholder-shown|read-only|read-write\\\\n  | required|right|root|scope|target|unresolved\\\\n  | valid|visited\\\\n)(?![\\\\\\\\w-]|\\\\\\\\s*[;}])\",\"name\":\"entity.other.attribute-name.pseudo-class.css\"},\"css-pseudo-elements\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.css\"},\"2\":{\"name\":\"punctuation.definition.entity.css\"}},\"match\":\"(?xi)\\\\n(?:\\\\n  (::?)                       # Elements using both : and :: notation\\\\n  (?: after\\\\n    | before\\\\n    | first-letter\\\\n    | first-line\\\\n    | (?:-(?:ah|apple|atsc|epub|hp|khtml|moz\\\\n            |ms|o|rim|ro|tc|wap|webkit|xv)\\\\n        | (?:mso|prince))\\\\n      -[a-z-]+\\\\n  )\\\\n  |\\\\n  (::)                        # Double-colon only\\\\n  (?: backdrop\\\\n    | content\\\\n    | grammar-error\\\\n    | marker\\\\n    | placeholder\\\\n    | selection\\\\n    | shadow\\\\n    | spelling-error\\\\n  )\\\\n)\\\\n(?![\\\\\\\\w-]|\\\\\\\\s*[;}])\",\"name\":\"entity.other.attribute-name.pseudo-element.css\"},\"css-selector\":{\"begin\":\"(?<=css\\\\\\\\s)(?!(?:[\\\\\\\\^\\\\\\\\@\\\\\\\\.\\\\\\\\%\\\\\\\\w\\\\\\\\$\\\\\\\\!\\\\\\\\-]+)(?:\\\\\\\\s*[\\\\\\\\:\\\\\\\\=])[^\\\\\\\\:])\",\"end\":\"(\\\\\\\\s*(?=(?:[\\\\\\\\^\\\\\\\\@\\\\\\\\.\\\\\\\\%\\\\\\\\w\\\\\\\\$\\\\\\\\!\\\\\\\\-]+)(?:\\\\\\\\s*[\\\\\\\\:\\\\\\\\=])[^\\\\\\\\:])|\\\\\\\\s*$|(?=\\\\\\\\s+\\\\\\\\#\\\\\\\\s))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.separator.sel-properties.css\"}},\"name\":\"meta.selector.css\",\"patterns\":[{\"include\":\"#css-selector-innards\"}]},\"css-selector-innards\":{\"patterns\":[{\"include\":\"#css-commas\"},{\"include\":\"#css-escapes\"},{\"include\":\"#css-combinators\"},{\"match\":\"(\\\\\\\\%[\\\\\\\\w\\\\\\\\-]+)\",\"name\":\"entity.other.attribute-name.mixin.css\"},{\"match\":\"\\\\\\\\*\",\"name\":\"entity.name.tag.wildcard.css\"},{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.entity.begin.bracket.square.css\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.entity.end.bracket.square.css\"}},\"name\":\"meta.attribute-selector.css\",\"patterns\":[{\"include\":\"#string\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.ignore-case.css\"}},\"match\":\"(?<=[\\\\\"'\\\\\\\\s]|^|\\\\\\\\*/)\\\\\\\\s*([iI])\\\\\\\\s*(?=[\\\\\\\\s\\\\\\\\]]|/\\\\\\\\*|$)\"},{\"captures\":{\"1\":{\"name\":\"string.unquoted.attribute-value.css\"}},\"match\":\"(?<==)\\\\\\\\s*((?!/\\\\\\\\*)(?:[^\\\\\\\\\\\\\\\\\\\\\"'\\\\\\\\s\\\\\\\\]]|\\\\\\\\\\\\\\\\.)+)\"},{\"include\":\"#css-escapes\"},{\"match\":\"[~|^$*]?=\",\"name\":\"keyword.operator.pattern.css\"},{\"match\":\"\\\\\\\\|\",\"name\":\"punctuation.separator.css\"},{\"captures\":{\"1\":{\"name\":\"entity.other.namespace-prefix.css\"}},\"match\":\"(-?(?!\\\\\\\\d)(?:[\\\\\\\\w-]|[^\\\\\\\\\\\\\\\\x00-\\\\\\\\\\\\\\\\x7F]|\\\\\\\\\\\\\\\\(?:[0-9a-fA-F]{1,6}|.))+|\\\\\\\\*)(?=\\\\\\\\|(?!\\\\\\\\s|=|$|\\\\\\\\])(?:-?(?!\\\\\\\\d)|[\\\\\\\\\\\\\\\\\\\\\\\\w-]|[^\\\\\\\\\\\\\\\\x00-\\\\\\\\\\\\\\\\x7F]))\"},{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.css\"}},\"match\":\"(-?(?!\\\\\\\\d)(?>[\\\\\\\\w-]|[^\\\\\\\\\\\\\\\\x00-\\\\\\\\\\\\\\\\x7F]|\\\\\\\\\\\\\\\\(?:[0-9a-fA-F]{1,6}|.))+)\\\\\\\\s*(?=[~|^\\\\\\\\]$*=]|/\\\\\\\\*)\"}]},{\"include\":\"#css-pseudo-classes\"},{\"include\":\"#css-pseudo-elements\"},{\"include\":\"#css-mixin\"}]},\"css-size-keywords\":{\"patterns\":[{\"match\":\"(x+s|sm-|md-|lg-|sm|md|lg|x+l|hg|x+h)(?![\\\\\\\\w-])\",\"name\":\"support.constant.size.property-value.css\"}]},\"curly-braces\":{\"begin\":\"\\\\\\\\s*(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.brace.curly.imba\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.curly.imba\"}},\"patterns\":[{\"include\":\"#expr\"},{\"include\":\"#punctuation-comma\"}]},\"decorator\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))\\\\\\\\@(?!\\\\\\\\@)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.decorator.imba\"}},\"end\":\"(?=\\\\\\\\s)\",\"name\":\"meta.decorator.imba\",\"patterns\":[{\"include\":\"#expr\"}]},\"directives\":{\"begin\":\"^(///)\\\\\\\\s*(?=<(reference|amd-dependency|amd-module)(\\\\\\\\s+(path|types|no-default-lib|lib|name)\\\\\\\\s*=\\\\\\\\s*((\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)))+\\\\\\\\s*/>\\\\\\\\s*$)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.imba\"}},\"end\":\"(?=$)\",\"name\":\"comment.line.triple-slash.directive.imba\",\"patterns\":[{\"begin\":\"(<)(reference|amd-dependency|amd-module)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.directive.imba\"},\"2\":{\"name\":\"entity.name.tag.directive.imba\"}},\"end\":\"/>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.directive.imba\"}},\"name\":\"meta.tag.imba\",\"patterns\":[{\"match\":\"path|types|no-default-lib|lib|name\",\"name\":\"entity.other.attribute-name.directive.imba\"},{\"match\":\"=\",\"name\":\"keyword.operator.assignment.imba\"},{\"include\":\"#string\"}]}]},\"docblock\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"constant.language.access-type.jsdoc\"}},\"match\":\"((@)(?:access|api))\\\\\\\\s+(private|protected|public)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"entity.name.type.instance.jsdoc\"},\"4\":{\"name\":\"punctuation.definition.bracket.angle.begin.jsdoc\"},\"5\":{\"name\":\"constant.other.email.link.underline.jsdoc\"},\"6\":{\"name\":\"punctuation.definition.bracket.angle.end.jsdoc\"}},\"match\":\"((@)author)\\\\\\\\s+([^@\\\\\\\\s<>*/](?:[^@<>*/]|\\\\\\\\*[^/])*)(?:\\\\\\\\s*(<)([^>\\\\\\\\s]+)(>))?\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"entity.name.type.instance.jsdoc\"},\"4\":{\"name\":\"keyword.operator.control.jsdoc\"},\"5\":{\"name\":\"entity.name.type.instance.jsdoc\"}},\"match\":\"((@)borrows)\\\\\\\\s+((?:[^@\\\\\\\\s*/]|\\\\\\\\*[^/])+)\\\\\\\\s+(as)\\\\\\\\s+((?:[^@\\\\\\\\s*/]|\\\\\\\\*[^/])+)\"},{\"begin\":\"((@)example)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"end\":\"(?=@|\\\\\\\\*/)\",\"name\":\"meta.example.jsdoc\",\"patterns\":[{\"match\":\"^\\\\\\\\s\\\\\\\\*\\\\\\\\s+\"},{\"begin\":\"\\\\\\\\G(<)caption(>)\",\"beginCaptures\":{\"0\":{\"name\":\"entity.name.tag.inline.jsdoc\"},\"1\":{\"name\":\"punctuation.definition.bracket.angle.begin.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.bracket.angle.end.jsdoc\"}},\"contentName\":\"constant.other.description.jsdoc\",\"end\":\"(</)caption(>)|(?=\\\\\\\\*/)\",\"endCaptures\":{\"0\":{\"name\":\"entity.name.tag.inline.jsdoc\"},\"1\":{\"name\":\"punctuation.definition.bracket.angle.begin.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.bracket.angle.end.jsdoc\"}}},{\"captures\":{\"0\":{\"name\":\"source.embedded.imba\"}},\"match\":\"[^\\\\\\\\s@*](?:[^*]|\\\\\\\\*[^/])*\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"constant.language.symbol-type.jsdoc\"}},\"match\":\"((@)kind)\\\\\\\\s+(class|constant|event|external|file|function|member|mixin|module|namespace|typedef)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"variable.other.link.underline.jsdoc\"},\"4\":{\"name\":\"entity.name.type.instance.jsdoc\"}},\"match\":\"((@)see)\\\\\\\\s+(?:((?=https?://)(?:[^\\\\\\\\s*]|\\\\\\\\*[^/])+)|((?!https?://|(?:\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])?{@(?:link|linkcode|linkplain|tutorial)\\\\\\\\b)(?:[^@\\\\\\\\s*/]|\\\\\\\\*[^/])+))\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"variable.other.jsdoc\"}},\"match\":\"((@)template)\\\\\\\\s+([A-Za-z_$][\\\\\\\\w$.\\\\\\\\[\\\\\\\\]]*(?:\\\\\\\\s*,\\\\\\\\s*[A-Za-z_$][\\\\\\\\w$.\\\\\\\\[\\\\\\\\]]*)*)\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"variable.other.jsdoc\"}},\"match\":\"((@)(?:arg|argument|const|constant|member|namespace|param|var))\\\\\\\\s+([A-Za-z_$][\\\\\\\\w$.\\\\\\\\[\\\\\\\\]]*)\"},{\"begin\":\"((@)typedef)\\\\\\\\s+(?={)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"end\":\"(?=\\\\\\\\s|\\\\\\\\*/|[^{}\\\\\\\\[\\\\\\\\]A-Za-z_$])\",\"patterns\":[{\"include\":\"#jsdoctype\"},{\"match\":\"(?:[^@\\\\\\\\s*/]|\\\\\\\\*[^/])+\",\"name\":\"entity.name.type.instance.jsdoc\"}]},{\"begin\":\"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\\\\\\\s+(?={)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"end\":\"(?=\\\\\\\\s|\\\\\\\\*/|[^{}\\\\\\\\[\\\\\\\\]A-Za-z_$])\",\"patterns\":[{\"include\":\"#jsdoctype\"},{\"match\":\"([A-Za-z_$][\\\\\\\\w$.\\\\\\\\[\\\\\\\\]]*)\",\"name\":\"variable.other.jsdoc\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.optional-value.begin.bracket.square.jsdoc\"},\"2\":{\"name\":\"keyword.operator.assignment.jsdoc\"},\"3\":{\"name\":\"source.embedded.imba\"},\"4\":{\"name\":\"punctuation.definition.optional-value.end.bracket.square.jsdoc\"},\"5\":{\"name\":\"invalid.illegal.syntax.jsdoc\"}},\"match\":\"(\\\\\\\\[)\\\\\\\\s*[\\\\\\\\w$]+(?:(?:\\\\\\\\[\\\\\\\\])?\\\\\\\\.[\\\\\\\\w$]+)*(?:\\\\\\\\s*(=)\\\\\\\\s*((?>\\\\\"(?:(?:\\\\\\\\*(?!/))|(?:\\\\\\\\\\\\\\\\(?!\\\\\"))|[^*\\\\\\\\\\\\\\\\])*?\\\\\"|'(?:(?:\\\\\\\\*(?!/))|(?:\\\\\\\\\\\\\\\\(?!'))|[^*\\\\\\\\\\\\\\\\])*?'|\\\\\\\\[(?:(?:\\\\\\\\*(?!/))|[^*])*?\\\\\\\\]|(?:(?:\\\\\\\\*(?!/))|\\\\\\\\s(?!\\\\\\\\s*\\\\\\\\])|\\\\\\\\[.*?(?:\\\\\\\\]|(?=\\\\\\\\*/))|[^*\\\\\\\\s\\\\\\\\[\\\\\\\\]])*)*))?\\\\\\\\s*(?:(\\\\\\\\])((?:[^*\\\\\\\\s]|\\\\\\\\*[^\\\\\\\\s/])+)?|(?=\\\\\\\\*/))\",\"name\":\"variable.other.jsdoc\"}]},{\"begin\":\"((@)(?:define|enum|exception|export|extends|lends|implements|modifies|namespace|private|protected|returns?|suppress|this|throws|type|yields?))\\\\\\\\s+(?={)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"end\":\"(?=\\\\\\\\s|\\\\\\\\*/|[^{}\\\\\\\\[\\\\\\\\]A-Za-z_$])\",\"patterns\":[{\"include\":\"#jsdoctype\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"entity.name.type.instance.jsdoc\"}},\"match\":\"((@)(?:alias|augments|callback|constructs|emits|event|fires|exports?|extends|external|function|func|host|lends|listens|interface|memberof!?|method|module|mixes|mixin|name|requires|see|this|typedef|uses))\\\\\\\\s+((?:[^{}@\\\\\\\\s*]|\\\\\\\\*[^/])+)\"},{\"begin\":\"((@)(?:default(?:value)?|license|version))\\\\\\\\s+(([''\\\\\"]))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"variable.other.jsdoc\"},\"4\":{\"name\":\"punctuation.definition.string.begin.jsdoc\"}},\"contentName\":\"variable.other.jsdoc\",\"end\":\"(\\\\\\\\3)|(?=$|\\\\\\\\*/)\",\"endCaptures\":{\"0\":{\"name\":\"variable.other.jsdoc\"},\"1\":{\"name\":\"punctuation.definition.string.end.jsdoc\"}}},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"variable.other.jsdoc\"}},\"match\":\"((@)(?:default(?:value)?|license|tutorial|variation|version))\\\\\\\\s+([^\\\\\\\\s*]+)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"match\":\"(@)(?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles|callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright|default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception|exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func|function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc|inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method|mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects|override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected|public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary|suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation|version|virtual|writeOnce|yields?)\\\\\\\\b\",\"name\":\"storage.type.class.jsdoc\"},{\"include\":\"#inline-tags\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"match\":\"((@)(?:[_$[:alpha:]][_$[:alnum:]]*(?:\\\\\\\\-[_$[:alnum:]]+)*[\\\\\\\\?\\\\\\\\!]?))(?=\\\\\\\\s+)\"}]},\"expr\":{\"patterns\":[{\"include\":\"#style-declaration\"},{\"include\":\"#object-keys\"},{\"include\":\"#generics-literal\"},{\"include\":\"#tag-literal\"},{\"include\":\"#regex\"},{\"include\":\"#keywords\"},{\"include\":\"#comment\"},{\"include\":\"#literal\"},{\"include\":\"#plain-identifiers\"},{\"include\":\"#plain-accessors\"},{\"include\":\"#pairs\"}]},\"expression\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.imba\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.imba\"}},\"patterns\":[{\"include\":\"#expr\"}]},{\"include\":\"#tag-literal\"},{\"include\":\"#expressionWithoutIdentifiers\"},{\"include\":\"#identifiers\"},{\"include\":\"#expressionPunctuations\"}]},\"expressionPunctuations\":{\"patterns\":[{\"include\":\"#punctuation-comma\"},{\"include\":\"#punctuation-accessor\"}]},\"expressionWithoutIdentifiers\":{\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#regex\"},{\"include\":\"#comment\"},{\"include\":\"#function-expression\"},{\"include\":\"#class-expression\"},{\"include\":\"#ternary-expression\"},{\"include\":\"#new-expr\"},{\"include\":\"#instanceof-expr\"},{\"include\":\"#object-literal\"},{\"include\":\"#expression-operators\"},{\"include\":\"#literal\"},{\"include\":\"#support-objects\"}]},\"generics-literal\":{\"begin\":\"(?<=[\\\\\\\\w\\\\\\\\]\\\\\\\\)])\\\\\\\\<\",\"beginCaptures\":{\"1\":{\"name\":\"meta.generics.annotation.open.imba\"}},\"end\":\"\\\\\\\\>\",\"endCaptures\":{\"0\":{\"name\":\"meta.generics.annotation.close.imba\"}},\"name\":\"meta.generics.annotation.imba\",\"patterns\":[{\"include\":\"#type-brackets\"}]},\"global-literal\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(global)\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"variable.language.global.imba\"},\"identifiers\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.imba\"},\"2\":{\"name\":\"punctuation.accessor.optional.imba\"},\"3\":{\"name\":\"entity.name.function.property.imba\"}},\"match\":\"(?:(?:(\\\\\\\\.)|(\\\\\\\\.\\\\\\\\.(?!\\\\\\\\s*[[:digit:]]|\\\\\\\\s+)))\\\\\\\\s*)?([_$[:alpha:]][_$[:alnum:]]*(?:\\\\\\\\-[_$[:alnum:]]+)*[\\\\\\\\?\\\\\\\\!]?)(?=\\\\\\\\s*={{functionOrArrowLookup}})\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.imba\"},\"2\":{\"name\":\"punctuation.accessor.optional.imba\"},\"3\":{\"name\":\"variable.other.constant.property.imba\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\.\\\\\\\\.(?!\\\\\\\\s*[[:digit:]]|\\\\\\\\s+)))\\\\\\\\s*(\\\\\\\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.imba\"},\"2\":{\"name\":\"punctuation.accessor.optional.imba\"},\"3\":{\"name\":\"variable.other.class.property.imba\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\.\\\\\\\\.(?!\\\\\\\\s*[[:digit:]]|\\\\\\\\s+)))([[:upper:]][_$[:alnum:]]*(?:\\\\\\\\-[_$[:alnum:]]+)*[\\\\\\\\!]?)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.imba\"},\"2\":{\"name\":\"punctuation.accessor.optional.imba\"},\"3\":{\"name\":\"variable.other.property.imba\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\.\\\\\\\\.(?!\\\\\\\\s*[[:digit:]]|\\\\\\\\s+)))(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*(?:\\\\\\\\-[_$[:alnum:]]+)*[\\\\\\\\?\\\\\\\\!]?)\"},{\"match\":\"(for own|for|if|unless|when)\\\\\\\\b\",\"name\":\"keyword.other\"},{\"match\":\"require\",\"name\":\"support.function.require\"},{\"include\":\"#plain-identifiers\"},{\"include\":\"#type-literal\"},{\"include\":\"#generics-literal\"}]},\"inline-css-selector\":{\"begin\":\"(^\\\\\\\\t+)(?!(?:[\\\\\\\\^\\\\\\\\@\\\\\\\\.\\\\\\\\%\\\\\\\\w\\\\\\\\$\\\\\\\\!\\\\\\\\-]+)(?:\\\\\\\\s*[\\\\\\\\:\\\\\\\\=]))\",\"end\":\"(\\\\\\\\s*(?=(?:[\\\\\\\\^\\\\\\\\@\\\\\\\\.\\\\\\\\%\\\\\\\\w\\\\\\\\$\\\\\\\\!\\\\\\\\-]+)(?:\\\\\\\\s*[\\\\\\\\:\\\\\\\\=])|\\\\\\\\)|\\\\\\\\])|\\\\\\\\s*$)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.separator.sel-properties.css\"}},\"name\":\"meta.selector.css\",\"patterns\":[{\"include\":\"#css-selector-innards\"}]},\"inline-styles\":{\"patterns\":[{\"include\":\"#style-property\"},{\"include\":\"#css-property-values\"},{\"include\":\"#style-expr\"}]},\"inline-tags\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.bracket.square.begin.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.bracket.square.end.jsdoc\"}},\"match\":\"(\\\\\\\\[)[^\\\\\\\\]]+(\\\\\\\\])(?={@(?:link|linkcode|linkplain|tutorial))\",\"name\":\"constant.other.description.jsdoc\"},{\"begin\":\"({)((@)(?:link(?:code|plain)?|tutorial))\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.bracket.curly.begin.jsdoc\"},\"2\":{\"name\":\"storage.type.class.jsdoc\"},\"3\":{\"name\":\"punctuation.definition.inline.tag.jsdoc\"}},\"end\":\"}|(?=\\\\\\\\*/)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.bracket.curly.end.jsdoc\"}},\"name\":\"entity.name.type.instance.jsdoc\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.other.link.underline.jsdoc\"},\"2\":{\"name\":\"punctuation.separator.pipe.jsdoc\"}},\"match\":\"\\\\\\\\G((?=https?://)(?:[^|}\\\\\\\\s*]|\\\\\\\\*[/])+)(\\\\\\\\|)?\"},{\"captures\":{\"1\":{\"name\":\"variable.other.description.jsdoc\"},\"2\":{\"name\":\"punctuation.separator.pipe.jsdoc\"}},\"match\":\"\\\\\\\\G((?:[^{}@\\\\\\\\s|*]|\\\\\\\\*[^/])+)(\\\\\\\\|)?\"}]}]},\"invalid-indentation\":{\"patterns\":[{\"match\":\"^[\\\\\\\\ ]+\",\"name\":\"invalid.whitespace\"},{\"match\":\"^\\\\\\\\t+\\\\\\\\s+\",\"name\":\"invalid.whitespace\"}]},\"jsdoctype\":{\"patterns\":[{\"match\":\"\\\\\\\\G{(?:[^}*]|\\\\\\\\*[^/}])+$\",\"name\":\"invalid.illegal.type.jsdoc\"},{\"begin\":\"\\\\\\\\G({)\",\"beginCaptures\":{\"0\":{\"name\":\"entity.name.type.instance.jsdoc\"},\"1\":{\"name\":\"punctuation.definition.bracket.curly.begin.jsdoc\"}},\"contentName\":\"entity.name.type.instance.jsdoc\",\"end\":\"((}))\\\\\\\\s*|(?=\\\\\\\\*/)\",\"endCaptures\":{\"1\":{\"name\":\"entity.name.type.instance.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.bracket.curly.end.jsdoc\"}},\"patterns\":[{\"include\":\"#brackets\"}]}]},\"keywords\":{\"patterns\":[{\"match\":\"(if|elif|else|unless|switch|when|then|do|import|export|for own|for|while|until|return|yield|try|catch|await|rescue|finally|throw|as|continue|break|extend|augment)(?![\\\\\\\\?_\\\\\\\\-$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.imba\"},{\"match\":\"(?<=export)\\\\\\\\s+(default)(?![\\\\\\\\?_\\\\\\\\-$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.imba\"},{\"match\":\"(?<=import)\\\\\\\\s+(type)(?=\\\\\\\\s+[\\\\\\\\w\\\\\\\\{\\\\\\\\$\\\\\\\\_])\",\"name\":\"keyword.control.imba\"},{\"match\":\"(extend|global|abstract)\\\\\\\\s+(?=class|tag|abstract|mixin|interface)\",\"name\":\"keyword.control.imba\"},{\"match\":\"(?<=[\\\\\\\\*\\\\\\\\}\\\\\\\\w\\\\\\\\$])\\\\\\\\s+(from)(?=\\\\\\\\s+[\\\\\\\\\\\\\"\\\\\\\\'])\",\"name\":\"keyword.control.imba\"},{\"match\":\"(def|get|set)(?![\\\\\\\\?_\\\\\\\\-$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.type.function.imba\"},{\"match\":\"(protected|private)\\\\\\\\s+(?=def|get|set)\",\"name\":\"keyword.control.imba\"},{\"match\":\"(tag|class|struct|mixin|interface)(?![\\\\\\\\?_\\\\\\\\-$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.type.class.imba\"},{\"match\":\"(let|const|constructor)(?![\\\\\\\\?_\\\\\\\\-$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.type.imba\"},{\"match\":\"(prop|attr)(?![\\\\\\\\?_\\\\\\\\-$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.type.imba\"},{\"match\":\"(static)\\\\\\\\s+\",\"name\":\"storage.modifier.imba\"},{\"match\":\"(declare)\\\\\\\\s+\",\"name\":\"storage.modifier.imba\"},{\"include\":\"#ops\"},{\"match\":\"(=|\\\\\\\\|\\\\\\\\|=|\\\\\\\\?\\\\\\\\?=|\\\\\\\\&\\\\\\\\&=|\\\\\\\\+=|\\\\\\\\-=|\\\\\\\\*=|\\\\\\\\^=|\\\\\\\\%=)\",\"name\":\"keyword.operator.assignment.imba\"},{\"match\":\"(\\\\\\\\>\\\\\\\\=?|\\\\\\\\<\\\\\\\\=?)\",\"name\":\"keyword.operator.imba\"},{\"match\":\"(of|delete|\\\\\\\\!?isa|typeof|\\\\\\\\!?in|new|\\\\\\\\!?is|isnt)(?![\\\\\\\\?_\\\\\\\\-$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.imba\"}]},\"literal\":{\"patterns\":[{\"include\":\"#number-with-unit-literal\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#boolean-literal\"},{\"include\":\"#null-literal\"},{\"include\":\"#undefined-literal\"},{\"include\":\"#numericConstant-literal\"},{\"include\":\"#this-literal\"},{\"include\":\"#global-literal\"},{\"include\":\"#super-literal\"},{\"include\":\"#type-literal\"},{\"include\":\"#generics-literal\"},{\"include\":\"#string\"}]},\"mixin-css-selector\":{\"begin\":\"(\\\\\\\\%[\\\\\\\\w\\\\\\\\-]+)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.other.attribute-name.mixin.css\"}},\"end\":\"(\\\\\\\\s*(?=(?:[\\\\\\\\^\\\\\\\\@\\\\\\\\.\\\\\\\\%\\\\\\\\w\\\\\\\\$\\\\\\\\!\\\\\\\\-]+)(?:\\\\\\\\s*[\\\\\\\\:\\\\\\\\=])[^\\\\\\\\:])|\\\\\\\\s*$|(?=\\\\\\\\s+\\\\\\\\#\\\\\\\\s))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.separator.sel-properties.css\"}},\"name\":\"meta.selector.css\",\"patterns\":[{\"include\":\"#css-selector-innards\"}]},\"mixin-css-selector-after\":{\"begin\":\"(?<=%[\\\\\\\\w\\\\\\\\-]+)(?!(?:[\\\\\\\\^\\\\\\\\@\\\\\\\\.\\\\\\\\%\\\\\\\\w\\\\\\\\$\\\\\\\\!\\\\\\\\-]+)(?:\\\\\\\\s*[\\\\\\\\:\\\\\\\\=])[^\\\\\\\\:])\",\"end\":\"(\\\\\\\\s*(?=(?:[\\\\\\\\^\\\\\\\\@\\\\\\\\.\\\\\\\\%\\\\\\\\w\\\\\\\\$\\\\\\\\!\\\\\\\\-]+)(?:\\\\\\\\s*[\\\\\\\\:\\\\\\\\=])[^\\\\\\\\:])|\\\\\\\\s*$|(?=\\\\\\\\s+\\\\\\\\#\\\\\\\\s))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.separator.sel-properties.css\"}},\"name\":\"meta.selector.css\",\"patterns\":[{\"include\":\"#css-selector-innards\"}]},\"mixin-declaration\":{\"begin\":\"^(\\\\\\\\t*)(\\\\\\\\%[\\\\\\\\w\\\\\\\\-]+)\",\"beginCaptures\":{\"2\":{\"name\":\"entity.other.attribute-name.mixin.css\"}},\"end\":\"^(?!(\\\\\\\\1\\\\\\\\t|\\\\\\\\s*$))\",\"name\":\"meta.style.imba\",\"patterns\":[{\"include\":\"#mixin-css-selector-after\"},{\"include\":\"#css-comment\"},{\"include\":\"#nested-css-selector\"},{\"include\":\"#inline-styles\"}]},\"nested-css-selector\":{\"begin\":\"(^\\\\\\\\t+)(?!(?:[\\\\\\\\^\\\\\\\\@\\\\\\\\.\\\\\\\\%\\\\\\\\w\\\\\\\\$\\\\\\\\!\\\\\\\\-]+)(?:\\\\\\\\s*[\\\\\\\\:\\\\\\\\=])[^\\\\\\\\:])\",\"end\":\"(\\\\\\\\s*(?=(?:[\\\\\\\\^\\\\\\\\@\\\\\\\\.\\\\\\\\%\\\\\\\\w\\\\\\\\$\\\\\\\\!\\\\\\\\-]+)(?:\\\\\\\\s*[\\\\\\\\:\\\\\\\\=])[^\\\\\\\\:])|\\\\\\\\s*$|(?=\\\\\\\\s+\\\\\\\\#\\\\\\\\s))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.separator.sel-properties.css\"}},\"name\":\"meta.selector.css\",\"patterns\":[{\"include\":\"#css-selector-innards\"}]},\"nested-style-declaration\":{\"begin\":\"^(\\\\\\\\t+)(?=[\\\\\\\\n^]*\\\\\\\\&)\",\"end\":\"^(?!(\\\\\\\\1\\\\\\\\t|\\\\\\\\s*$))\",\"name\":\"meta.style.imba\",\"patterns\":[{\"include\":\"#nested-css-selector\"},{\"include\":\"#inline-styles\"}]},\"null-literal\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))null(?![\\\\\\\\?_\\\\\\\\-$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.null.imba\"},\"number-with-unit-literal\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.numeric.imba\"},\"2\":{\"name\":\"keyword.other.unit.imba\"}},\"match\":\"([0-9]+)([a-z]+|\\\\\\\\%)\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.imba\"},\"2\":{\"name\":\"keyword.other.unit.imba\"}},\"match\":\"([0-9]*\\\\\\\\.[0-9]+(?:[eE][\\\\\\\\-+]?[0-9]+)?)([a-z]+|\\\\\\\\%)\"}]},\"numeric-literal\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.numeric.bigint.imba\"}},\"match\":\"\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.numeric.hex.imba\"},{\"captures\":{\"1\":{\"name\":\"storage.type.numeric.bigint.imba\"}},\"match\":\"\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.numeric.binary.imba\"},{\"captures\":{\"1\":{\"name\":\"storage.type.numeric.bigint.imba\"}},\"match\":\"\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.numeric.octal.imba\"},{\"captures\":{\"0\":{\"name\":\"constant.numeric.decimal.imba\"},\"1\":{\"name\":\"meta.delimiter.decimal.period.imba\"},\"2\":{\"name\":\"storage.type.numeric.bigint.imba\"},\"3\":{\"name\":\"meta.delimiter.decimal.period.imba\"},\"4\":{\"name\":\"storage.type.numeric.bigint.imba\"},\"5\":{\"name\":\"meta.delimiter.decimal.period.imba\"},\"6\":{\"name\":\"storage.type.numeric.bigint.imba\"},\"7\":{\"name\":\"storage.type.numeric.bigint.imba\"},\"8\":{\"name\":\"meta.delimiter.decimal.period.imba\"},\"9\":{\"name\":\"storage.type.numeric.bigint.imba\"},\"10\":{\"name\":\"meta.delimiter.decimal.period.imba\"},\"11\":{\"name\":\"storage.type.numeric.bigint.imba\"},\"12\":{\"name\":\"meta.delimiter.decimal.period.imba\"},\"13\":{\"name\":\"storage.type.numeric.bigint.imba\"},\"14\":{\"name\":\"storage.type.numeric.bigint.imba\"}},\"match\":\"(?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b))(?!\\\\\\\\$)\"}]},\"numericConstant-literal\":{\"patterns\":[{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))NaN(?![\\\\\\\\?_\\\\\\\\-$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.nan.imba\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Infinity(?![\\\\\\\\?_\\\\\\\\-$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.infinity.imba\"}]},\"object-keys\":{\"patterns\":[{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*(?:\\\\\\\\-[_$[:alnum:]]+)*[\\\\\\\\?\\\\\\\\!]?\\\\\\\\:\",\"name\":\"meta.object-literal.key\"}]},\"ops\":{\"patterns\":[{\"match\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"name\":\"keyword.operator.spread.imba\"},{\"match\":\"\\\\\\\\*=|(?<!\\\\\\\\()/=|%=|\\\\\\\\+=|\\\\\\\\-=|\\\\\\\\?=|\\\\\\\\?\\\\\\\\?=|=\\\\\\\\?\",\"name\":\"keyword.operator.assignment.compound.imba\"},{\"match\":\"\\\\\\\\^=\\\\\\\\?|\\\\\\\\|=\\\\\\\\?|\\\\\\\\~=\\\\\\\\?|\\\\\\\\&=|\\\\\\\\^=|<<=|>>=|>>>=|\\\\\\\\|=\",\"name\":\"keyword.operator.assignment.compound.bitwise.imba\"},{\"match\":\"<<|>>>|>>\",\"name\":\"keyword.operator.bitwise.shift.imba\"},{\"match\":\"===|!==|==|!=|~=\",\"name\":\"keyword.operator.comparison.imba\"},{\"match\":\"<=|>=|<>|<|>\",\"name\":\"keyword.operator.relational.imba\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.logical.imba\"},\"2\":{\"name\":\"keyword.operator.arithmetic.imba\"}},\"match\":\"(\\\\\\\\!)\\\\\\\\s*(/)(?![/*])\"},{\"match\":\"\\\\\\\\!|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\?\\\\\\\\?|or\\\\\\\\b(?=\\\\\\\\s|$)|and\\\\\\\\b(?=\\\\\\\\s|$)|\\\\\\\\@\\\\\\\\b(?=\\\\\\\\s|$)\",\"name\":\"keyword.operator.logical.imba\"},{\"match\":\"\\\\\\\\?(?=\\\\\\\\s|$)\",\"name\":\"keyword.operator.bitwise.imba\"},{\"match\":\"\\\\\\\\&|~|\\\\\\\\^|\\\\\\\\|\",\"name\":\"keyword.operator.ternary.imba\"},{\"match\":\"\\\\\\\\=\",\"name\":\"keyword.operator.assignment.imba\"},{\"match\":\"--\",\"name\":\"keyword.operator.decrement.imba\"},{\"match\":\"\\\\\\\\+\\\\\\\\+\",\"name\":\"keyword.operator.increment.imba\"},{\"match\":\"%|\\\\\\\\*|/|-|\\\\\\\\+\",\"name\":\"keyword.operator.arithmetic.imba\"}]},\"pairs\":{\"patterns\":[{\"include\":\"#curly-braces\"},{\"include\":\"#square-braces\"},{\"include\":\"#round-braces\"}]},\"plain-accessors\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.imba\"},\"2\":{\"name\":\"variable.other.property.imba\"}},\"match\":\"(\\\\\\\\.\\\\\\\\.?)([_$[:alpha:]][_$[:alnum:]]*(?:\\\\\\\\-[_$[:alnum:]]+)*[\\\\\\\\?\\\\\\\\!]?)\"}]},\"plain-identifiers\":{\"patterns\":[{\"match\":\"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])\",\"name\":\"variable.other.constant.imba\"},{\"match\":\"[[:upper:]][_$[:alnum:]]*(?:\\\\\\\\-[_$[:alnum:]]+)*[\\\\\\\\!]?\",\"name\":\"variable.other.class.imba\"},{\"match\":\"\\\\\\\\$\\\\\\\\d+\",\"name\":\"variable.special.imba\"},{\"match\":\"\\\\\\\\$[_$[:alpha:]][_$[:alnum:]]*(?:\\\\\\\\-[_$[:alnum:]]+)*[\\\\\\\\?\\\\\\\\!]?\",\"name\":\"variable.other.internal.imba\"},{\"match\":\"\\\\\\\\@\\\\\\\\@+[_$[:alpha:]][_$[:alnum:]]*(?:\\\\\\\\-[_$[:alnum:]]+)*[\\\\\\\\?\\\\\\\\!]?\",\"name\":\"variable.other.symbol.imba\"},{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*(?:\\\\\\\\-[_$[:alnum:]]+)*[\\\\\\\\?\\\\\\\\!]?\",\"name\":\"variable.other.readwrite.imba\"},{\"match\":\"\\\\\\\\@[_$[:alpha:]][_$[:alnum:]]*(?:\\\\\\\\-[_$[:alnum:]]+)*[\\\\\\\\?\\\\\\\\!]?\",\"name\":\"variable.other.instance.imba\"},{\"match\":\"\\\\\\\\#+[_$[:alpha:]][_$[:alnum:]]*(?:\\\\\\\\-[_$[:alnum:]]+)*[\\\\\\\\?\\\\\\\\!]?\",\"name\":\"variable.other.private.imba\"},{\"match\":\"\\\\\\\\:[_$[:alpha:]][_$[:alnum:]]*(?:\\\\\\\\-[_$[:alnum:]]+)*[\\\\\\\\?\\\\\\\\!]?\",\"name\":\"string.symbol.imba\"}]},\"punctuation-accessor\":{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.imba\"},\"2\":{\"name\":\"punctuation.accessor.optional.imba\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\.\\\\\\\\.(?!\\\\\\\\s*[[:digit:]]|\\\\\\\\s+)))\"},\"punctuation-comma\":{\"match\":\",\",\"name\":\"punctuation.separator.comma.imba\"},\"punctuation-semicolon\":{\"match\":\";\",\"name\":\"punctuation.terminator.statement.imba\"},\"qstring-double\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.imba\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.imba\"}},\"name\":\"string.quoted.double.imba\",\"patterns\":[{\"include\":\"#template-substitution-element\"},{\"include\":\"#string-character-escape\"}]},\"qstring-single\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.imba\"}},\"end\":\"(\\\\\\\\')|((?:[^\\\\\\\\\\\\\\\\\\\\\\\\n])$)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.imba\"},\"2\":{\"name\":\"invalid.illegal.newline.imba\"}},\"name\":\"string.quoted.single.imba\",\"patterns\":[{\"include\":\"#string-character-escape\"}]},\"qstring-single-multi\":{\"begin\":\"'''\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.imba\"}},\"end\":\"'''\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.imba\"}},\"name\":\"string.quoted.single.imba\",\"patterns\":[{\"include\":\"#string-character-escape\"}]},\"regex\":{\"patterns\":[{\"begin\":\"(?<!\\\\\\\\+\\\\\\\\+|--|})(?<=[=(:,\\\\\\\\[?+!]|^return|[^\\\\\\\\._$[:alnum:]]return|^case|[^\\\\\\\\._$[:alnum:]]case|=>|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\*\\\\\\\\/)\\\\\\\\s*(\\\\\\\\/)(?![\\\\\\\\/*])(?=(?:[^\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\\\[\\\\\\\\()]|\\\\\\\\\\\\\\\\.|\\\\\\\\[([^\\\\\\\\]\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)+\\\\\\\\]|\\\\\\\\(([^\\\\\\\\)\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)+\\\\\\\\))+\\\\\\\\/([gimsuy]+|(?![\\\\\\\\/\\\\\\\\*])|(?=\\\\\\\\/\\\\\\\\*))(?!\\\\\\\\s*[a-zA-Z0-9_$]))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.imba\"}},\"end\":\"(/)([gimsuy]*)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.imba\"},\"2\":{\"name\":\"keyword.other.imba\"}},\"name\":\"string.regexp.imba\",\"patterns\":[{\"include\":\"#regexp\"}]},{\"begin\":\"((?<![_$[:alnum:])\\\\\\\\]]|\\\\\\\\+\\\\\\\\+|--|}|\\\\\\\\*\\\\\\\\/)|((?<=^return|[^\\\\\\\\._$[:alnum:]]return|^case|[^\\\\\\\\._$[:alnum:]]case))\\\\\\\\s*)\\\\\\\\/(?![\\\\\\\\/*])(?=(?:[^\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\\\[]|\\\\\\\\\\\\\\\\.|\\\\\\\\[([^\\\\\\\\]\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)+\\\\\\\\])+\\\\\\\\/([gimsuy]+|(?![\\\\\\\\/\\\\\\\\*])|(?=\\\\\\\\/\\\\\\\\*))(?!\\\\\\\\s*[a-zA-Z0-9_$]))\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.imba\"}},\"end\":\"(/)([gimsuy]*)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.imba\"},\"2\":{\"name\":\"keyword.other.imba\"}},\"name\":\"string.regexp.imba\",\"patterns\":[{\"include\":\"#regexp\"}]}]},\"regex-character-class\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[wWsSdDtrnvf]|\\\\\\\\.\",\"name\":\"constant.other.character-class.regexp\"},{\"match\":\"\\\\\\\\\\\\\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})\",\"name\":\"constant.character.numeric.regexp\"},{\"match\":\"\\\\\\\\\\\\\\\\c[A-Z]\",\"name\":\"constant.character.control.regexp\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.backslash.regexp\"}]},\"regexp\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[bB]|\\\\\\\\^|\\\\\\\\$\",\"name\":\"keyword.control.anchor.regexp\"},{\"captures\":{\"0\":{\"name\":\"keyword.other.back-reference.regexp\"},\"1\":{\"name\":\"variable.other.regexp\"}},\"match\":\"\\\\\\\\\\\\\\\\[1-9]\\\\\\\\d*|\\\\\\\\\\\\\\\\k<([a-zA-Z_$][\\\\\\\\w$]*)>\"},{\"match\":\"[?+*]|\\\\\\\\{(\\\\\\\\d+,\\\\\\\\d+|\\\\\\\\d+,|,\\\\\\\\d+|\\\\\\\\d+)\\\\\\\\}\\\\\\\\??\",\"name\":\"keyword.operator.quantifier.regexp\"},{\"match\":\"\\\\\\\\|\",\"name\":\"keyword.operator.or.regexp\"},{\"begin\":\"(\\\\\\\\()((\\\\\\\\?=)|(\\\\\\\\?!)|(\\\\\\\\?<=)|(\\\\\\\\?<!))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.group.regexp\"},\"2\":{\"name\":\"punctuation.definition.group.assertion.regexp\"},\"3\":{\"name\":\"meta.assertion.look-ahead.regexp\"},\"4\":{\"name\":\"meta.assertion.negative-look-ahead.regexp\"},\"5\":{\"name\":\"meta.assertion.look-behind.regexp\"},\"6\":{\"name\":\"meta.assertion.negative-look-behind.regexp\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.group.regexp\"}},\"name\":\"meta.group.assertion.regexp\",\"patterns\":[{\"include\":\"#regexp\"}]},{\"begin\":\"\\\\\\\\((?:(\\\\\\\\?:)|(?:\\\\\\\\?<([a-zA-Z_$][\\\\\\\\w$]*)>))?\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.regexp\"},\"1\":{\"name\":\"punctuation.definition.group.no-capture.regexp\"},\"2\":{\"name\":\"variable.other.regexp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.regexp\"}},\"name\":\"meta.group.regexp\",\"patterns\":[{\"include\":\"#regexp\"}]},{\"begin\":\"(\\\\\\\\[)(\\\\\\\\^)?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.character-class.regexp\"},\"2\":{\"name\":\"keyword.operator.negation.regexp\"}},\"end\":\"(\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.character-class.regexp\"}},\"name\":\"constant.other.character-class.set.regexp\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.character.numeric.regexp\"},\"2\":{\"name\":\"constant.character.control.regexp\"},\"3\":{\"name\":\"constant.character.escape.backslash.regexp\"},\"4\":{\"name\":\"constant.character.numeric.regexp\"},\"5\":{\"name\":\"constant.character.control.regexp\"},\"6\":{\"name\":\"constant.character.escape.backslash.regexp\"}},\"match\":\"(?:.|(\\\\\\\\\\\\\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\\\\\\\\\\\\\c[A-Z])|(\\\\\\\\\\\\\\\\.))\\\\\\\\-(?:[^\\\\\\\\]\\\\\\\\\\\\\\\\]|(\\\\\\\\\\\\\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\\\\\\\\\\\\\c[A-Z])|(\\\\\\\\\\\\\\\\.))\",\"name\":\"constant.other.character-class.range.regexp\"},{\"include\":\"#regex-character-class\"}]},{\"include\":\"#regex-character-class\"}]},\"root\":{\"patterns\":[{\"include\":\"#block\"}]},\"round-braces\":{\"begin\":\"\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"meta.brace.round.imba\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.imba\"}},\"patterns\":[{\"include\":\"#expr\"},{\"include\":\"#punctuation-comma\"}]},\"single-line-comment-consuming-line-ending\":{\"begin\":\"(^[ \\\\\\\\t]+)?((//|\\\\\\\\#\\\\\\\\s)(?:\\\\\\\\s*((@)internal)(?=\\\\\\\\s|$))?)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.imba\"},\"2\":{\"name\":\"comment.line.double-slash.imba\"},\"3\":{\"name\":\"punctuation.definition.comment.imba\"},\"4\":{\"name\":\"storage.type.internaldeclaration.imba\"},\"5\":{\"name\":\"punctuation.decorator.internaldeclaration.imba\"}},\"contentName\":\"comment.line.double-slash.imba\",\"end\":\"(?=^)\"},\"square-braces\":{\"begin\":\"\\\\\\\\s*(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.brace.square.imba\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.square.imba\"}},\"patterns\":[{\"include\":\"#expr\"},{\"include\":\"#punctuation-comma\"}]},\"string\":{\"patterns\":[{\"include\":\"#qstring-single-multi\"},{\"include\":\"#qstring-double-multi\"},{\"include\":\"#qstring-single\"},{\"include\":\"#qstring-double\"},{\"include\":\"#template\"}]},\"string-character-escape\":{\"match\":\"\\\\\\\\\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\\\\\\\{[0-9A-Fa-f]+\\\\\\\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)\",\"name\":\"constant.character.escape.imba\"},\"style-declaration\":{\"begin\":\"^(\\\\\\\\t*)(?:(global|local|export)\\\\\\\\s+)?(?:(scoped)\\\\\\\\s+)?(css)\\\\\\\\s\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.control.export.imba\"},\"3\":{\"name\":\"storage.modifier.imba\"},\"4\":{\"name\":\"storage.type.style.imba\"}},\"end\":\"^(?!(\\\\\\\\1\\\\\\\\t|\\\\\\\\s*$))\",\"name\":\"meta.style.imba\",\"patterns\":[{\"include\":\"#css-selector\"},{\"include\":\"#css-comment\"},{\"include\":\"#nested-css-selector\"},{\"include\":\"#inline-styles\"}]},\"style-expr\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.numeric.integer.decimal.css\"},\"2\":{\"name\":\"keyword.other.unit.css\"}},\"match\":\"(\\\\\\\\b[0-9][0-9_]*)(\\\\\\\\w+|%)?\"},{\"match\":\"--[_$[:alpha:]][_$[:alnum:]]*(?:\\\\\\\\-[_$[:alnum:]]+)*[\\\\\\\\?\\\\\\\\!]?\",\"name\":\"support.constant.property-value.var.css\"},{\"match\":\"(x+s|sm-|md-|lg-|sm|md|lg|x+l|hg|x+h)(?![\\\\\\\\w-])\",\"name\":\"support.constant.property-value.size.css\"},{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*(?:\\\\\\\\-[_$[:alnum:]]+)*[\\\\\\\\?\\\\\\\\!]?\",\"name\":\"support.constant.property-value.css\"},{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.function.begin.bracket.round.css\"}},\"end\":\"\\\\\\\\)\",\"name\":\"meta.function.css\",\"patterns\":[{\"include\":\"#style-expr\"}]}]},\"style-property\":{\"patterns\":[{\"begin\":\"(?=(?:[\\\\\\\\^\\\\\\\\@\\\\\\\\.\\\\\\\\%\\\\\\\\w\\\\\\\\$\\\\\\\\!\\\\\\\\-]+)(?:\\\\\\\\s*[\\\\\\\\:\\\\\\\\=]))\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.calc.css\"},\"2\":{\"name\":\"punctuation.section.function.begin.bracket.round.css\"}},\"end\":\"\\\\\\\\s*[\\\\\\\\:\\\\\\\\=]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.separator.key-value.css\"}},\"name\":\"meta.property-name.css\",\"patterns\":[{\"match\":\"(?:--|\\\\\\\\$)[\\\\\\\\w\\\\\\\\-\\\\\\\\$]+\",\"name\":\"support.type.property-name.variable.css\"},{\"match\":\"\\\\\\\\@[\\\\\\\\!\\\\\\\\<\\\\\\\\>]?[0-9]+\",\"name\":\"support.type.property-name.modifier.breakpoint.css\"},{\"match\":\"\\\\\\\\^?\\\\\\\\@+[\\\\\\\\w\\\\\\\\-\\\\\\\\$]+\",\"name\":\"support.type.property-name.modifier.css\"},{\"match\":\"\\\\\\\\^?\\\\\\\\.+[\\\\\\\\w\\\\\\\\-\\\\\\\\$]+\",\"name\":\"support.type.property-name.modifier.flag.css\"},{\"match\":\"\\\\\\\\^?\\\\\\\\%+[\\\\\\\\w\\\\\\\\-\\\\\\\\$]+\",\"name\":\"support.type.property-name.modifier.state.css\"},{\"match\":\"\\\\\\\\.\\\\\\\\.[\\\\\\\\w\\\\\\\\-\\\\\\\\$]+|\\\\\\\\^+[\\\\\\\\.\\\\\\\\@\\\\\\\\%][\\\\\\\\w\\\\\\\\-\\\\\\\\$]+\",\"name\":\"support.type.property-name.modifier.up.css\"},{\"match\":\"\\\\\\\\.[\\\\\\\\w\\\\\\\\-\\\\\\\\$]+\",\"name\":\"support.type.property-name.modifier.is.css\"},{\"match\":\"[\\\\\\\\w\\\\\\\\-\\\\\\\\$]+\",\"name\":\"support.type.property-name.css\"}]}]},\"super-literal\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))super\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"variable.language.super.imba\"},\"tag-attr-name\":{\"begin\":\"([\\\\\\\\w$_]+(?:\\\\\\\\-[\\\\\\\\w$_]+)*)\",\"beginCaptures\":{\"0\":{\"name\":\"entity.other.attribute-name.imba\"}},\"contentName\":\"entity.other.attribute-name.imba\",\"end\":\"(?=[\\\\\\\\s\\\\\\\\.\\\\\\\\[\\\\\\\\>\\\\\\\\=])\"},\"tag-attr-value\":{\"begin\":\"(\\\\\\\\=)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.tag.assignment\"}},\"contentName\":\"meta.tag.attribute-value.imba\",\"end\":\"(?=>|\\\\\\\\s)\",\"patterns\":[{\"include\":\"#expr\"}]},\"tag-classname\":{\"begin\":\"\\\\\\\\.\",\"contentName\":\"entity.other.attribute-name.class.css\",\"end\":\"(?=[\\\\\\\\.\\\\\\\\[\\\\\\\\>\\\\\\\\s\\\\\\\\(\\\\\\\\=])\",\"patterns\":[{\"include\":\"#tag-interpolated-content\"}]},\"tag-content\":{\"patterns\":[{\"include\":\"#tag-name\"},{\"include\":\"#tag-expr-name\"},{\"include\":\"#tag-interpolated-content\"},{\"include\":\"#tag-interpolated-parens\"},{\"include\":\"#tag-interpolated-brackets\"},{\"include\":\"#tag-event-handler\"},{\"include\":\"#tag-mixin-name\"},{\"include\":\"#tag-classname\"},{\"include\":\"#tag-ref\"},{\"include\":\"#tag-attr-value\"},{\"include\":\"#tag-attr-name\"},{\"include\":\"#comment\"}]},\"tag-event-handler\":{\"begin\":\"(\\\\\\\\@[\\\\\\\\w$_]+(?:\\\\\\\\-[\\\\\\\\w$_]+)*)\",\"beginCaptures\":{\"0\":{\"name\":\"entity.other.event-name.imba\"}},\"contentName\":\"entity.other.tag.event\",\"end\":\"(?=[\\\\\\\\[\\\\\\\\>\\\\\\\\s\\\\\\\\=])\",\"patterns\":[{\"include\":\"#tag-interpolated-content\"},{\"include\":\"#tag-interpolated-parens\"},{\"begin\":\"\\\\\\\\.\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.tag\"}},\"end\":\"(?=[\\\\\\\\.\\\\\\\\[\\\\\\\\>\\\\\\\\s\\\\\\\\=]|$)\",\"name\":\"entity.other.event-modifier.imba\",\"patterns\":[{\"include\":\"#tag-interpolated-parens\"},{\"include\":\"#tag-interpolated-content\"}]}]},\"tag-expr-name\":{\"begin\":\"(?<=<)(?=[\\\\\\\\w\\\\\\\\{])\",\"contentName\":\"entity.name.tag.imba\",\"end\":\"(?=[\\\\\\\\%\\\\\\\\$\\\\\\\\#\\\\\\\\.\\\\\\\\[\\\\\\\\>\\\\\\\\s\\\\\\\\(])\",\"patterns\":[{\"include\":\"#tag-interpolated-content\"}]},\"tag-interpolated-brackets\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.tag.imba\"}},\"contentName\":\"meta.embedded.line.imba\",\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.tag.imba\"}},\"name\":\"meta.tag.expression.imba\",\"patterns\":[{\"include\":\"#inline-css-selector\"},{\"include\":\"#inline-styles\"}]},\"tag-interpolated-content\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.tag.imba\"}},\"contentName\":\"meta.embedded.line.imba\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.tag.imba\"}},\"name\":\"meta.tag.expression.imba\",\"patterns\":[{\"include\":\"#expression\"}]},\"tag-interpolated-parens\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.tag.imba\"}},\"contentName\":\"meta.embedded.line.imba\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.tag.imba\"}},\"name\":\"meta.tag.expression.imba\",\"patterns\":[{\"include\":\"#expression\"}]},\"tag-literal\":{\"patterns\":[{\"begin\":\"(<)(?=[\\\\\\\\%\\\\\\\\~\\\\\\\\w\\\\\\\\{\\\\\\\\[\\\\\\\\.\\\\\\\\#\\\\\\\\$\\\\\\\\@\\\\\\\\(])\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.tag.open.imba\"}},\"contentName\":\"meta.tag.attributes.imba\",\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.tag.close.imba\"}},\"name\":\"meta.tag.imba\",\"patterns\":[{\"include\":\"#tag-content\"}]}]},\"tag-mixin-name\":{\"match\":\"(\\\\\\\\%[\\\\\\\\w\\\\\\\\-]+)\",\"name\":\"entity.other.tag-mixin.imba\"},\"tag-name\":{\"patterns\":[{\"match\":\"(?<=<)(self|global|slot)(?=[\\\\\\\\.\\\\\\\\[\\\\\\\\>\\\\\\\\s\\\\\\\\(])\",\"name\":\"entity.name.tag.special.imba\"}]},\"tag-ref\":{\"match\":\"(\\\\\\\\$[\\\\\\\\w\\\\\\\\-]+)\",\"name\":\"entity.other.tag-ref.imba\"},\"template\":{\"patterns\":[{\"begin\":\"(?=(([_$[:alpha:]][_$[:alnum:]]*(?:\\\\\\\\-[_$[:alnum:]]+)*[\\\\\\\\?\\\\\\\\!]?\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*)*|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*)?)([_$[:alpha:]][_$[:alnum:]]*(?:\\\\\\\\-[_$[:alnum:]]+)*[\\\\\\\\?\\\\\\\\!]?)({{typeArguments}}\\\\\\\\s*)?\\`)\",\"end\":\"(?=\\`)\",\"name\":\"string.template.imba\",\"patterns\":[{\"begin\":\"(?=(([_$[:alpha:]][_$[:alnum:]]*(?:\\\\\\\\-[_$[:alnum:]]+)*[\\\\\\\\?\\\\\\\\!]?\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*)*|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*)?)([_$[:alpha:]][_$[:alnum:]]*(?:\\\\\\\\-[_$[:alnum:]]+)*[\\\\\\\\?\\\\\\\\!]?))\",\"end\":\"(?=({{typeArguments}}\\\\\\\\s*)?\\`)\",\"patterns\":[{\"match\":\"([_$[:alpha:]][_$[:alnum:]]*(?:\\\\\\\\-[_$[:alnum:]]+)*[\\\\\\\\?\\\\\\\\!]?)\",\"name\":\"entity.name.function.tagged-template.imba\"}]}]},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*(?:\\\\\\\\-[_$[:alnum:]]+)*[\\\\\\\\?\\\\\\\\!]?)\\\\\\\\s*(?=({{typeArguments}}\\\\\\\\s*)\\`)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.tagged-template.imba\"}},\"end\":\"(?=\\`)\",\"name\":\"string.template.imba\",\"patterns\":[{\"include\":\"#type-arguments\"}]},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*(?:\\\\\\\\-[_$[:alnum:]]+)*[\\\\\\\\?\\\\\\\\!]?)?(\\`)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.tagged-template.imba\"},\"2\":{\"name\":\"punctuation.definition.string.template.begin.imba\"}},\"end\":\"\\`\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.template.end.imba\"}},\"name\":\"string.template.imba\",\"patterns\":[{\"include\":\"#template-substitution-element\"},{\"include\":\"#string-character-escape\"}]}]},\"template-substitution-element\":{\"begin\":\"(?<!\\\\\\\\\\\\\\\\)\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.begin.imba\"}},\"contentName\":\"meta.embedded.line.imba\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.end.imba\"}},\"name\":\"meta.template.expression.imba\",\"patterns\":[{\"include\":\"#expr\"}]},\"this-literal\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(this|self)\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"variable.language.this.imba\"},\"type-annotation\":{\"patterns\":[{\"include\":\"#type-literal\"}]},\"type-brackets\":{\"patterns\":[{\"begin\":\"{\",\"end\":\"}\",\"patterns\":[{\"include\":\"#type-brackets\"}]},{\"begin\":\"\\\\\\\\[\",\"end\":\"\\\\\\\\]\",\"patterns\":[{\"include\":\"#type-brackets\"}]},{\"begin\":\"\\\\\\\\<\",\"end\":\"\\\\\\\\>\",\"patterns\":[{\"include\":\"#type-brackets\"}]},{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#type-brackets\"}]}]},\"type-literal\":{\"begin\":\"(\\\\\\\\\\\\\\\\)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.type.annotation.open.imba\"}},\"end\":\"(?=[\\\\\\\\s\\\\\\\\]\\\\\\\\)\\\\\\\\,\\\\\\\\.\\\\\\\\=\\\\\\\\}]|$)\",\"name\":\"meta.type.annotation.imba\",\"patterns\":[{\"include\":\"#type-brackets\"}]},\"undefined-literal\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))undefined(?![\\\\\\\\?_\\\\\\\\-$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.undefined.imba\"}},\"scopeName\":\"source.imba\",\"embeddedLangs\":[\"typescript\"]}`)),t=[...e,n];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DQ1-QYvQ.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Tcl\",\"fileTypes\":[\"tcl\"],\"foldingStartMarker\":\"\\\\\\\\{\\\\\\\\s*$\",\"foldingStopMarker\":\"^\\\\\\\\s*\\\\\\\\}\",\"name\":\"tcl\",\"patterns\":[{\"begin\":\"(?<=^|;)\\\\\\\\s*((#))\",\"beginCaptures\":{\"1\":{\"name\":\"comment.line.number-sign.tcl\"},\"2\":{\"name\":\"punctuation.definition.comment.tcl\"}},\"contentName\":\"comment.line.number-sign.tcl\",\"end\":\"\\\\\\\\n\",\"patterns\":[{\"match\":\"(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\|\\\\\\\\\\\\\\\\\\\\\\\\n)\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.tcl\"}},\"match\":\"(?<=^|[\\\\\\\\[{;])\\\\\\\\s*(if|while|for|catch|default|return|break|continue|switch|exit|foreach|try|throw)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.tcl\"}},\"match\":\"(?<=^|})\\\\\\\\s*(then|elseif|else)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.tcl\"},\"2\":{\"name\":\"entity.name.function.tcl\"}},\"match\":\"(?<=^|{)\\\\\\\\s*(proc)\\\\\\\\s+([^\\\\\\\\s]+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.tcl\"}},\"match\":\"(?<=^|[\\\\\\\\[{;])\\\\\\\\s*(after|append|array|auto_execok|auto_import|auto_load|auto_mkindex|auto_mkindex_old|auto_qualify|auto_reset|bgerror|binary|cd|clock|close|concat|dde|encoding|eof|error|eval|exec|expr|fblocked|fconfigure|fcopy|file|fileevent|filename|flush|format|gets|glob|global|history|http|incr|info|interp|join|lappend|library|lindex|linsert|list|llength|load|lrange|lreplace|lsearch|lset|lsort|memory|msgcat|namespace|open|package|parray|pid|pkg::create|pkg_mkIndex|proc|puts|pwd|re_syntax|read|registry|rename|resource|scan|seek|set|socket|SafeBase|source|split|string|subst|Tcl|tcl_endOfWord|tcl_findLibrary|tcl_startOfNextWord|tcl_startOfPreviousWord|tcl_wordBreakAfter|tcl_wordBreakBefore|tcltest|tclvars|tell|time|trace|unknown|unset|update|uplevel|upvar|variable|vwait)\\\\\\\\b\"},{\"begin\":\"(?<=^|[\\\\\\\\[{;])\\\\\\\\s*(regexp|regsub)\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.tcl\"}},\"comment\":\"special-case regexp/regsub keyword in order to handle the expression\",\"end\":\"[\\\\\\\\n;\\\\\\\\]]\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(?:.|\\\\\\\\n)\",\"name\":\"constant.character.escape.tcl\"},{\"comment\":\"switch for regexp\",\"match\":\"-\\\\\\\\w+\\\\\\\\s*\"},{\"applyEndPatternLast\":1,\"begin\":\"--\\\\\\\\s*\",\"comment\":\"end of switches\",\"end\":\"\",\"patterns\":[{\"include\":\"#regexp\"}]},{\"include\":\"#regexp\"}]},{\"include\":\"#escape\"},{\"include\":\"#variable\"},{\"include\":\"#operator\"},{\"include\":\"#numeric\"},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.tcl\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.tcl\"}},\"name\":\"string.quoted.double.tcl\",\"patterns\":[{\"include\":\"#escape\"},{\"include\":\"#variable\"},{\"include\":\"#embedded\"}]}],\"repository\":{\"bare-string\":{\"begin\":\"(?:^|(?<=\\\\\\\\s))\\\\\"\",\"comment\":\"matches a single quote-enclosed word without scoping\",\"end\":\"\\\\\"([^\\\\\\\\s\\\\\\\\]]*)\",\"endCaptures\":{\"1\":{\"name\":\"invalid.illegal.tcl\"}},\"patterns\":[{\"include\":\"#escape\"},{\"include\":\"#variable\"}]},\"braces\":{\"begin\":\"(?:^|(?<=\\\\\\\\s))\\\\\\\\{\",\"comment\":\"matches a single brace-enclosed word\",\"end\":\"\\\\\\\\}([^\\\\\\\\s\\\\\\\\]]*)\",\"endCaptures\":{\"1\":{\"name\":\"invalid.illegal.tcl\"}},\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[{}\\\\\\\\n]\",\"name\":\"constant.character.escape.tcl\"},{\"include\":\"#inner-braces\"}]},\"embedded\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.tcl\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.tcl\"}},\"name\":\"source.tcl.embedded\",\"patterns\":[{\"include\":\"source.tcl\"}]},\"escape\":{\"match\":\"\\\\\\\\\\\\\\\\(\\\\\\\\d{1,3}|x[a-fA-F0-9]+|u[a-fA-F0-9]{1,4}|.|\\\\\\\\n)\",\"name\":\"constant.character.escape.tcl\"},\"inner-braces\":{\"begin\":\"\\\\\\\\{\",\"comment\":\"matches a nested brace in a brace-enclosed word\",\"end\":\"\\\\\\\\}\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[{}\\\\\\\\n]\",\"name\":\"constant.character.escape.tcl\"},{\"include\":\"#inner-braces\"}]},\"numeric\":{\"match\":\"(?<![a-zA-Z])([+-]?([0-9]*[.])?[0-9]+f?)(?![\\\\\\\\.a-zA-Z])\",\"name\":\"constant.numeric.tcl\"},\"operator\":{\"match\":\"(?<= |\\\\\\\\d)(-|\\\\\\\\+|~|&{1,2}|\\\\\\\\|{1,2}|<{1,2}|>{1,2}|\\\\\\\\*{1,2}|!|%|\\\\\\\\/|<=|>=|={1,2}|!=|\\\\\\\\^)(?= |\\\\\\\\d)\",\"name\":\"keyword.operator.tcl\"},\"regexp\":{\"begin\":\"(?=\\\\\\\\S)(?![\\\\\\\\n;\\\\\\\\]])\",\"comment\":\"matches a single word, named as a regexp, then swallows the rest of the command\",\"end\":\"(?=[\\\\\\\\n;\\\\\\\\]])\",\"patterns\":[{\"begin\":\"(?=[^ \\\\\\\\t\\\\\\\\n;])\",\"end\":\"(?=[ \\\\\\\\t\\\\\\\\n;])\",\"name\":\"string.regexp.tcl\",\"patterns\":[{\"include\":\"#braces\"},{\"include\":\"#bare-string\"},{\"include\":\"#escape\"},{\"include\":\"#variable\"}]},{\"begin\":\"[ \\\\\\\\t]\",\"comment\":\"swallow the rest of the command\",\"end\":\"(?=[\\\\\\\\n;\\\\\\\\]])\",\"patterns\":[{\"include\":\"#variable\"},{\"include\":\"#embedded\"},{\"include\":\"#escape\"},{\"include\":\"#braces\"},{\"include\":\"#string\"}]}]},\"string\":{\"applyEndPatternLast\":1,\"begin\":\"(?:^|(?<=\\\\\\\\s))(?=\\\\\")\",\"comment\":\"matches a single quote-enclosed word with scoping\",\"end\":\"\",\"name\":\"string.quoted.double.tcl\",\"patterns\":[{\"include\":\"#bare-string\"}]},\"variable\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.tcl\"}},\"match\":\"(\\\\\\\\$)((?:[a-zA-Z0-9_]|::)+(\\\\\\\\([^\\\\\\\\)]+\\\\\\\\))?|\\\\\\\\{[^\\\\\\\\}]*\\\\\\\\})\",\"name\":\"support.function.tcl\"}},\"scopeName\":\"source.tcl\"}')),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DQ5Sj-RJ.js",
    "content": "import{Q as a,Y as i,C as u,g as c,j as e,G as r,i as l,f as d,q as p,a3 as f}from\"./CU_MfyYc.js\";const g={class:\"antialiased bg-white dark:bg-black dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-black\"},m={class:\"max-w-520px text-center z-20\"},h=[\"textContent\"],b=[\"textContent\"],x={class:\"flex items-center justify-center w-full\"},y={__name:\"error-404\",props:{appName:{type:String,default:\"Nuxt\"},version:{type:String,default:\"\"},statusCode:{type:Number,default:404},statusMessage:{type:String,default:\"Not Found\"},description:{type:String,default:\"Sorry, the page you are looking for could not be found.\"},backHome:{type:String,default:\"Go back home\"}},setup(t){const n=t;return i({title:`${n.statusCode} - ${n.statusMessage} | ${n.appName}`,script:[{children:`!function(){const e=document.createElement(\"link\").relList;if(!(e&&e.supports&&e.supports(\"modulepreload\"))){for(const e of document.querySelectorAll('link[rel=\"modulepreload\"]'))r(e);new MutationObserver((e=>{for(const o of e)if(\"childList\"===o.type)for(const e of o.addedNodes)\"LINK\"===e.tagName&&\"modulepreload\"===e.rel&&r(e)})).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),\"use-credentials\"===e.crossOrigin?r.credentials=\"include\":\"anonymous\"===e.crossOrigin?r.credentials=\"omit\":r.credentials=\"same-origin\",r}(e);fetch(e.href,r)}}();`}],style:[{children:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:\"\"}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(k,o)=>{const s=f;return c(),u(\"div\",g,[o[0]||(o[0]=e(\"div\",{class:\"fixed left-0 right-0 spotlight z-10\"},null,-1)),e(\"div\",m,[e(\"h1\",{class:\"font-medium mb-8 sm:text-10xl text-8xl\",textContent:r(t.statusCode)},null,8,h),e(\"p\",{class:\"font-light leading-tight mb-16 px-8 sm:px-0 sm:text-4xl text-xl\",textContent:r(t.description)},null,8,b),e(\"div\",x,[l(s,{to:\"/\",class:\"cursor-pointer gradient-border px-4 py-2 sm:px-6 sm:py-3 sm:text-xl text-md\"},{default:d(()=>[p(r(t.backHome),1)]),_:1})])])])}}},_=a(y,[[\"__scopeId\",\"data-v-00b6b518\"]]);export{_ as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DQVVAn-B.js",
    "content": "const a=Object.freeze(JSON.parse('{\"displayName\":\"Scala\",\"fileTypes\":[\"scala\"],\"firstLineMatch\":\"^#!/.*\\\\\\\\b\\\\\\\\w*scala\\\\\\\\b\",\"foldingStartMarker\":\"/\\\\\\\\*\\\\\\\\*|\\\\\\\\{\\\\\\\\s*$\",\"foldingStopMarker\":\"\\\\\\\\*\\\\\\\\*/|^\\\\\\\\s*\\\\\\\\}\",\"name\":\"scala\",\"patterns\":[{\"include\":\"#code\"}],\"repository\":{\"backQuotedVariable\":{\"match\":\"`[^`]+`\"},\"block-comments\":{\"patterns\":[{\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.scala\"}},\"match\":\"/\\\\\\\\*\\\\\\\\*/\",\"name\":\"comment.block.empty.scala\"},{\"begin\":\"^\\\\\\\\s*(/\\\\\\\\*\\\\\\\\*)(?!/)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.scala\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.scala\"}},\"name\":\"comment.block.documentation.scala\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.documentation.scaladoc.scala\"},\"2\":{\"name\":\"variable.parameter.scala\"}},\"match\":\"(@param)\\\\\\\\s+(\\\\\\\\S+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.documentation.scaladoc.scala\"},\"2\":{\"name\":\"entity.name.class\"}},\"match\":\"(@(?:tparam|throws))\\\\\\\\s+(\\\\\\\\S+)\"},{\"match\":\"@(return|see|note|example|constructor|usecase|author|version|since|todo|deprecated|migration|define|inheritdoc|groupname|groupprio|groupdesc|group|contentDiagram|documentable|syntax)\\\\\\\\b\",\"name\":\"keyword.other.documentation.scaladoc.scala\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.documentation.link.scala\"},\"2\":{\"name\":\"string.other.link.title.markdown\"},\"3\":{\"name\":\"punctuation.definition.documentation.link.scala\"}},\"match\":\"(\\\\\\\\[\\\\\\\\[)([^\\\\\\\\]]+)(\\\\\\\\]\\\\\\\\])\"},{\"include\":\"#block-comments\"}]},{\"begin\":\"/\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.scala\"}},\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.scala\",\"patterns\":[{\"include\":\"#block-comments\"}]}]},\"char-literal\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.character.begin.scala\"},\"2\":{\"name\":\"punctuation.definition.character.end.scala\"}},\"match\":\"(\\')\\'(\\')\",\"name\":\"string.quoted.other constant.character.literal.scala\"},{\"begin\":\"\\'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.character.begin.scala\"}},\"end\":\"\\'|$\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.character.end.scala\"}},\"name\":\"string.quoted.other constant.character.literal.scala\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(?:[btnfr\\\\\\\\\\\\\\\\\\\\\"\\']|[0-7]{1,3}|u[0-9A-Fa-f]{4})\",\"name\":\"constant.character.escape.scala\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"invalid.illegal.unrecognized-character-escape.scala\"},{\"match\":\"[^\\']{2,}\",\"name\":\"invalid.illegal.character-literal-too-long\"},{\"match\":\"(?<!\\')[^\\']\",\"name\":\"invalid.illegal.character-literal-too-long\"}]}]},\"code\":{\"patterns\":[{\"include\":\"#using-directive\"},{\"include\":\"#script-header\"},{\"include\":\"#storage-modifiers\"},{\"include\":\"#declarations\"},{\"include\":\"#inheritance\"},{\"include\":\"#extension\"},{\"include\":\"#imports\"},{\"include\":\"#exports\"},{\"include\":\"#comments\"},{\"include\":\"#strings\"},{\"include\":\"#initialization\"},{\"include\":\"#xml-literal\"},{\"include\":\"#namedBounds\"},{\"include\":\"#keywords\"},{\"include\":\"#using\"},{\"include\":\"#constants\"},{\"include\":\"#singleton-type\"},{\"include\":\"#inline\"},{\"include\":\"#scala-quoted-or-symbol\"},{\"include\":\"#char-literal\"},{\"include\":\"#empty-parentheses\"},{\"include\":\"#parameter-list\"},{\"include\":\"#qualifiedClassName\"},{\"include\":\"#backQuotedVariable\"},{\"include\":\"#curly-braces\"},{\"include\":\"#meta-brackets\"},{\"include\":\"#meta-bounds\"},{\"include\":\"#meta-colons\"}]},\"comments\":{\"patterns\":[{\"include\":\"#block-comments\"},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=//)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.scala\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.scala\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.double-slash.scala\"}]}]},\"constants\":{\"patterns\":[{\"match\":\"\\\\\\\\b(false|null|true)\\\\\\\\b\",\"name\":\"constant.language.scala\"},{\"match\":\"\\\\\\\\b(0[xX][0-9a-fA-F_]*)\\\\\\\\b\",\"name\":\"constant.numeric.scala\"},{\"match\":\"\\\\\\\\b(([0-9][0-9_]*(\\\\\\\\.[0-9][0-9_]*)?)([eE](\\\\\\\\+|-)?[0-9][0-9_]*)?|[0-9][0-9_]*)[LlFfDd]?\\\\\\\\b\",\"name\":\"constant.numeric.scala\"},{\"match\":\"(\\\\\\\\.[0-9][0-9_]*)([eE](\\\\\\\\+|-)?[0-9][0-9_]*)?[LlFfDd]?\\\\\\\\b\",\"name\":\"constant.numeric.scala\"},{\"match\":\"\\\\\\\\b0[bB][01]([01_]*[01])?[Ll]?\\\\\\\\b\",\"name\":\"constant.numeric.scala\"},{\"match\":\"\\\\\\\\b(this|super)\\\\\\\\b\",\"name\":\"variable.language.scala\"}]},\"curly-braces\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.scala\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.scala\"}},\"patterns\":[{\"include\":\"#code\"}]},\"declarations\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.declaration.scala\"},\"2\":{\"name\":\"entity.name.function.declaration\"}},\"match\":\"\\\\\\\\b(def)\\\\\\\\b\\\\\\\\s*(?!//|/\\\\\\\\*)((?:(?:[A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?|[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)|`[^`]+`))?\"},{\"captures\":{\"1\":{\"name\":\"keyword.declaration.scala\"},\"2\":{\"name\":\"entity.name.class.declaration\"}},\"match\":\"\\\\\\\\b(trait)\\\\\\\\b\\\\\\\\s*(?!//|/\\\\\\\\*)((?:(?:[A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?|[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)|`[^`]+`))?\"},{\"captures\":{\"1\":{\"name\":\"keyword.declaration.scala\"},\"2\":{\"name\":\"keyword.declaration.scala\"},\"3\":{\"name\":\"entity.name.class.declaration\"}},\"match\":\"\\\\\\\\b(?:(case)\\\\\\\\s+)?(class|object|enum)\\\\\\\\b\\\\\\\\s*(?!//|/\\\\\\\\*)((?:(?:[A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?|[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)|`[^`]+`))?\"},{\"captures\":{\"1\":{\"name\":\"keyword.declaration.scala\"},\"2\":{\"name\":\"entity.name.type.declaration\"}},\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(type)\\\\\\\\b\\\\\\\\s*(?!//|/\\\\\\\\*)((?:(?:[A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?|[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)|`[^`]+`))?\"},{\"captures\":{\"1\":{\"name\":\"keyword.declaration.stable.scala\"},\"2\":{\"name\":\"keyword.declaration.volatile.scala\"}},\"match\":\"\\\\\\\\b(?:(val)|(var))\\\\\\\\b\\\\\\\\s*(?!//|/\\\\\\\\*)(?=(?:(?:[A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?|[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)|`[^`]+`)?\\\\\\\\()\"},{\"captures\":{\"1\":{\"name\":\"keyword.declaration.stable.scala\"},\"2\":{\"name\":\"variable.stable.declaration.scala\"}},\"match\":\"\\\\\\\\b(val)\\\\\\\\b\\\\\\\\s*(?!//|/\\\\\\\\*)((?:(?:[A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?|[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)|`[^`]+`)(?:\\\\\\\\s*,\\\\\\\\s*(?:(?:[A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?|[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)|`[^`]+`))*)?(?!\\\\\")\"},{\"captures\":{\"1\":{\"name\":\"keyword.declaration.volatile.scala\"},\"2\":{\"name\":\"variable.volatile.declaration.scala\"}},\"match\":\"\\\\\\\\b(var)\\\\\\\\b\\\\\\\\s*(?!//|/\\\\\\\\*)((?:(?:[A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?|[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)|`[^`]+`)(?:\\\\\\\\s*,\\\\\\\\s*(?:(?:[A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?|[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)|`[^`]+`))*)?(?!\\\\\")\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.package.scala\"},\"2\":{\"name\":\"keyword.declaration.scala\"},\"3\":{\"name\":\"entity.name.class.declaration\"}},\"match\":\"\\\\\\\\b(package)\\\\\\\\s+(object)\\\\\\\\b\\\\\\\\s*(?!//|/\\\\\\\\*)((?:(?:[A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?|[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)|`[^`]+`))?\"},{\"begin\":\"\\\\\\\\b(package)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.package.scala\"}},\"end\":\"(?<=[\\\\\\\\n;])\",\"name\":\"meta.package.scala\",\"patterns\":[{\"include\":\"#comments\"},{\"match\":\"(`[^`]+`|(?:[A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?|[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+))\",\"name\":\"entity.name.package.scala\"},{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.definition.package\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.declaration.scala\"},\"2\":{\"name\":\"entity.name.given.declaration\"}},\"match\":\"\\\\\\\\b(given)\\\\\\\\b\\\\\\\\s*([_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?|`[^`]+`)?\"}]},\"empty-parentheses\":{\"captures\":{\"1\":{\"name\":\"meta.bracket.scala\"}},\"match\":\"(\\\\\\\\(\\\\\\\\))\",\"name\":\"meta.parentheses.scala\"},\"exports\":{\"begin\":\"\\\\\\\\b(export)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.export.scala\"}},\"end\":\"(?<=[\\\\\\\\n;])\",\"name\":\"meta.export.scala\",\"patterns\":[{\"include\":\"#comments\"},{\"match\":\"\\\\\\\\b(given)\\\\\\\\b\",\"name\":\"keyword.other.export.given.scala\"},{\"match\":\"[A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?\",\"name\":\"entity.name.class.export.scala\"},{\"match\":\"(`[^`]+`|(?:[A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?|[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+))\",\"name\":\"entity.name.export.scala\"},{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.definition.export\"},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"meta.bracket.scala\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"meta.bracket.scala\"}},\"name\":\"meta.export.selector.scala\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.export.given.scala\"},\"2\":{\"name\":\"entity.name.class.export.renamed-from.scala\"},\"3\":{\"name\":\"entity.name.export.renamed-from.scala\"},\"4\":{\"name\":\"keyword.other.arrow.scala\"},\"5\":{\"name\":\"entity.name.class.export.renamed-to.scala\"},\"6\":{\"name\":\"entity.name.export.renamed-to.scala\"}},\"match\":\"(given\\\\\\\\s)?\\\\\\\\s*(?:([A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?|[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)))\\\\\\\\s*(=>)\\\\\\\\s*(?:([A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?|[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)))\\\\\\\\s*\"},{\"match\":\"\\\\\\\\b(given)\\\\\\\\b\",\"name\":\"keyword.other.export.given.scala\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.export.given.scala\"},\"2\":{\"name\":\"entity.name.class.export.scala\"},\"3\":{\"name\":\"entity.name.export.scala\"}},\"match\":\"(given\\\\\\\\s+)?(?:([A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?|[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)))\"}]}]},\"extension\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.declaration.scala\"}},\"match\":\"^\\\\\\\\s*(extension)\\\\\\\\s+(?=[\\\\\\\\[\\\\\\\\(])\"}]},\"imports\":{\"begin\":\"\\\\\\\\b(import)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.import.scala\"}},\"end\":\"(?<=[\\\\\\\\n;])\",\"name\":\"meta.import.scala\",\"patterns\":[{\"include\":\"#comments\"},{\"match\":\"\\\\\\\\b(given)\\\\\\\\b\",\"name\":\"keyword.other.import.given.scala\"},{\"match\":\"\\\\\\\\s(as)\\\\\\\\s\",\"name\":\"keyword.other.import.as.scala\"},{\"match\":\"[A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?\",\"name\":\"entity.name.class.import.scala\"},{\"match\":\"(`[^`]+`|(?:[A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?|[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+))\",\"name\":\"entity.name.import.scala\"},{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.definition.import\"},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"meta.bracket.scala\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"meta.bracket.scala\"}},\"name\":\"meta.import.selector.scala\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.import.given.scala\"},\"2\":{\"name\":\"entity.name.class.import.renamed-from.scala\"},\"3\":{\"name\":\"entity.name.import.renamed-from.scala\"},\"4\":{\"name\":\"keyword.other.arrow.scala\"},\"5\":{\"name\":\"entity.name.class.import.renamed-to.scala\"},\"6\":{\"name\":\"entity.name.import.renamed-to.scala\"}},\"match\":\"(given\\\\\\\\s)?\\\\\\\\s*(?:([A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?|[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)))\\\\\\\\s*(=>)\\\\\\\\s*(?:([A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?|[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)))\\\\\\\\s*\"},{\"match\":\"\\\\\\\\b(given)\\\\\\\\b\",\"name\":\"keyword.other.import.given.scala\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.import.given.scala\"},\"2\":{\"name\":\"entity.name.class.import.scala\"},\"3\":{\"name\":\"entity.name.import.scala\"}},\"match\":\"(given\\\\\\\\s+)?(?:([A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?|[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)))\"}]}]},\"inheritance\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.declaration.scala\"},\"2\":{\"name\":\"entity.name.class\"}},\"match\":\"\\\\\\\\b(extends|with|derives)\\\\\\\\b\\\\\\\\s*([A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?|`[^`]+`|(?=\\\\\\\\([^\\\\\\\\)]+=>)|(?=(?:[A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?|[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+))|(?=\\\\\"))?\"}]},\"initialization\":{\"captures\":{\"1\":{\"name\":\"keyword.declaration.scala\"}},\"match\":\"\\\\\\\\b(new)\\\\\\\\b\"},\"inline\":{\"patterns\":[{\"match\":\"\\\\\\\\b(inline)(?=\\\\\\\\s+((?:[A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?|[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)|`[^`]+`)\\\\\\\\s*:)\",\"name\":\"storage.modifier.other\"},{\"match\":\"\\\\\\\\b(inline)\\\\\\\\b(?=(?:.(?!\\\\\\\\b(?:val|def|given)\\\\\\\\b))*\\\\\\\\b(if|match)\\\\\\\\b)\",\"name\":\"keyword.control.flow.scala\"}]},\"keywords\":{\"patterns\":[{\"match\":\"\\\\\\\\b(return|throw)\\\\\\\\b\",\"name\":\"keyword.control.flow.jump.scala\"},{\"match\":\"\\\\\\\\b(classOf|isInstanceOf|asInstanceOf)\\\\\\\\b\",\"name\":\"support.function.type-of.scala\"},{\"match\":\"\\\\\\\\b(else|if|then|do|while|for|yield|match|case)\\\\\\\\b\",\"name\":\"keyword.control.flow.scala\"},{\"match\":\"^\\\\\\\\s*(end)\\\\\\\\s+(if|while|for|match)(?=\\\\\\\\s*(//.*|/\\\\\\\\*(?!.*\\\\\\\\*/\\\\\\\\s*\\\\\\\\S.*).*)?$)\",\"name\":\"keyword.control.flow.end.scala\"},{\"match\":\"^\\\\\\\\s*(end)\\\\\\\\s+(val)(?=\\\\\\\\s*(//.*|/\\\\\\\\*(?!.*\\\\\\\\*/\\\\\\\\s*\\\\\\\\S.*).*)?$)\",\"name\":\"keyword.declaration.stable.end.scala\"},{\"match\":\"^\\\\\\\\s*(end)\\\\\\\\s+(var)(?=\\\\\\\\s*(//.*|/\\\\\\\\*(?!.*\\\\\\\\*/\\\\\\\\s*\\\\\\\\S.*).*)?$)\",\"name\":\"keyword.declaration.volatile.end.scala\"},{\"captures\":{\"1\":{\"name\":\"keyword.declaration.end.scala\"},\"2\":{\"name\":\"keyword.declaration.end.scala\"},\"3\":{\"name\":\"entity.name.type.declaration\"}},\"match\":\"^\\\\\\\\s*(end)\\\\\\\\s+(?:(new|extension)|([A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?))(?=\\\\\\\\s*(//.*|/\\\\\\\\*(?!.*\\\\\\\\*/\\\\\\\\s*\\\\\\\\S.*).*)?$)\"},{\"match\":\"\\\\\\\\b(catch|finally|try)\\\\\\\\b\",\"name\":\"keyword.control.exception.scala\"},{\"match\":\"^\\\\\\\\s*(end)\\\\\\\\s+(try)(?=\\\\\\\\s*(//.*|/\\\\\\\\*(?!.*\\\\\\\\*/\\\\\\\\s*\\\\\\\\S.*).*)?$)\",\"name\":\"keyword.control.exception.end.scala\"},{\"captures\":{\"1\":{\"name\":\"keyword.declaration.end.scala\"},\"2\":{\"name\":\"entity.name.declaration\"}},\"match\":\"^\\\\\\\\s*(end)\\\\\\\\s+(`[^`]+`|(?:[A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?|[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+))?(?=\\\\\\\\s*(//.*|/\\\\\\\\*(?!.*\\\\\\\\*/\\\\\\\\s*\\\\\\\\S.*).*)?$)\"},{\"match\":\"([!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]|[\\\\\\\\\\\\\\\\]){3,}\",\"name\":\"keyword.operator.scala\"},{\"captures\":{\"1\":{\"patterns\":[{\"match\":\"(\\\\\\\\|\\\\\\\\||&&)\",\"name\":\"keyword.operator.logical.scala\"},{\"match\":\"(\\\\\\\\!=|==|\\\\\\\\<=|>=)\",\"name\":\"keyword.operator.comparison.scala\"},{\"match\":\"..\",\"name\":\"keyword.operator.scala\"}]}},\"match\":\"((?:[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]|[\\\\\\\\\\\\\\\\]){2,}|_\\\\\\\\*)\"},{\"captures\":{\"1\":{\"patterns\":[{\"match\":\"(\\\\\\\\!)\",\"name\":\"keyword.operator.logical.scala\"},{\"match\":\"(\\\\\\\\*|-|\\\\\\\\+|/|%|~)\",\"name\":\"keyword.operator.arithmetic.scala\"},{\"match\":\"(=|\\\\\\\\<|>)\",\"name\":\"keyword.operator.comparison.scala\"},{\"match\":\".\",\"name\":\"keyword.operator.scala\"}]}},\"match\":\"(?<!_)([!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]|\\\\\\\\\\\\\\\\)\"}]},\"meta-bounds\":{\"comment\":\"For themes: Matching view bounds\",\"match\":\"<%|=:=|<:<|<%<|>:|<:\",\"name\":\"meta.bounds.scala\"},\"meta-brackets\":{\"comment\":\"For themes: Brackets look nice when colored.\",\"patterns\":[{\"comment\":\"The punctuation.section.*.begin is needed for return snippet in source bundle\",\"match\":\"\\\\\\\\{\",\"name\":\"punctuation.section.block.begin.scala\"},{\"comment\":\"The punctuation.section.*.end is needed for return snippet in source bundle\",\"match\":\"\\\\\\\\}\",\"name\":\"punctuation.section.block.end.scala\"},{\"match\":\"{|}|\\\\\\\\(|\\\\\\\\)|\\\\\\\\[|\\\\\\\\]\",\"name\":\"meta.bracket.scala\"}]},\"meta-colons\":{\"comment\":\"For themes: Matching type colons\",\"patterns\":[{\"match\":\"(?<!:):(?!:)\",\"name\":\"meta.colon.scala\"}]},\"namedBounds\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.import.as.scala\"},\"2\":{\"name\":\"variable.stable.declaration.scala\"}},\"match\":\"\\\\\\\\s+(as)\\\\\\\\s+([_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?)\\\\\\\\b\"}]},\"parameter-list\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.parameter.scala\"},\"2\":{\"name\":\"meta.colon.scala\"}},\"match\":\"(?<=[^\\\\\\\\._$a-zA-Z0-9])(`[^`]+`|[_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?)\\\\\\\\s*(:)\\\\\\\\s+\"}]},\"qualifiedClassName\":{\"captures\":{\"1\":{\"name\":\"entity.name.class\"}},\"match\":\"(\\\\\\\\b([A-Z][\\\\\\\\w]*)(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?)\"},\"scala-quoted-or-symbol\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.flow.staging.scala constant.other.symbol.scala\"},\"2\":{\"name\":\"constant.other.symbol.scala\"}},\"match\":\"(\\')((?>(?:[A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?|[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)))(?!\\')\"},{\"match\":\"\\'(?=\\\\\\\\s*\\\\\\\\{(?!\\'))\",\"name\":\"keyword.control.flow.staging.scala\"},{\"match\":\"\\'(?=\\\\\\\\s*\\\\\\\\[(?!\\'))\",\"name\":\"keyword.control.flow.staging.scala\"},{\"match\":\"\\\\\\\\$(?=\\\\\\\\s*\\\\\\\\{)\",\"name\":\"keyword.control.flow.staging.scala\"}]},\"script-header\":{\"captures\":{\"1\":{\"name\":\"string.unquoted.shebang.scala\"}},\"match\":\"^#!(.*)$\",\"name\":\"comment.block.shebang.scala\"},\"singleton-type\":{\"captures\":{\"1\":{\"name\":\"keyword.type.scala\"}},\"match\":\"\\\\\\\\.(type)(?![A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?|[0-9])\"},\"storage-modifiers\":{\"patterns\":[{\"match\":\"\\\\\\\\b(private\\\\\\\\[\\\\\\\\S+\\\\\\\\]|protected\\\\\\\\[\\\\\\\\S+\\\\\\\\]|private|protected)\\\\\\\\b\",\"name\":\"storage.modifier.access\"},{\"match\":\"\\\\\\\\b(synchronized|@volatile|abstract|final|lazy|sealed|implicit|override|@transient|@native)\\\\\\\\b\",\"name\":\"storage.modifier.other\"},{\"match\":\"(?<=^|\\\\\\\\s)\\\\\\\\b(transparent|opaque|infix|open|inline)\\\\\\\\b(?=[a-z\\\\\\\\s]*\\\\\\\\b(def|val|var|given|type|class|trait|object|enum)\\\\\\\\b)\",\"name\":\"storage.modifier.other\"}]},\"string-interpolation\":{\"patterns\":[{\"match\":\"\\\\\\\\$\\\\\\\\$\",\"name\":\"constant.character.escape.interpolation.scala\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.template-expression.begin.scala\"}},\"match\":\"(\\\\\\\\$)([A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*)\",\"name\":\"meta.template.expression.scala\"},{\"begin\":\"\\\\\\\\$\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.begin.scala\"}},\"contentName\":\"meta.embedded.line.scala\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.end.scala\"}},\"name\":\"meta.template.expression.scala\",\"patterns\":[{\"include\":\"#code\"}]}]},\"strings\":{\"patterns\":[{\"begin\":\"\\\\\"\\\\\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.scala\"}},\"end\":\"\\\\\"\\\\\"\\\\\"(?!\\\\\")\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.scala\"}},\"name\":\"string.quoted.triple.scala\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\|\\\\\\\\\\\\\\\\u[0-9A-Fa-f]{4}\",\"name\":\"constant.character.escape.scala\"}]},{\"begin\":\"\\\\\\\\b(raw)(\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.interpolation.scala\"},\"2\":{\"name\":\"string.quoted.triple.interpolated.scala punctuation.definition.string.begin.scala\"}},\"end\":\"(\\\\\"\\\\\"\\\\\")(?!\\\\\")|\\\\\\\\$\\\\n|(\\\\\\\\$[^\\\\\\\\$\\\\\"_{A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}])\",\"endCaptures\":{\"1\":{\"name\":\"string.quoted.triple.interpolated.scala punctuation.definition.string.end.scala\"},\"2\":{\"name\":\"invalid.illegal.unrecognized-string-escape.scala\"}},\"patterns\":[{\"match\":\"\\\\\\\\$[\\\\\\\\$\\\\\"]\",\"name\":\"constant.character.escape.scala\"},{\"include\":\"#string-interpolation\"},{\"match\":\".\",\"name\":\"string.quoted.triple.interpolated.scala\"}]},{\"begin\":\"\\\\\\\\b((?:[A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?))(\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.interpolation.scala\"},\"2\":{\"name\":\"string.quoted.triple.interpolated.scala punctuation.definition.string.begin.scala\"}},\"end\":\"(\\\\\"\\\\\"\\\\\")(?!\\\\\")|\\\\\\\\$\\\\n|(\\\\\\\\$[^\\\\\\\\$\\\\\"_{A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}])\",\"endCaptures\":{\"1\":{\"name\":\"string.quoted.triple.interpolated.scala punctuation.definition.string.end.scala\"},\"2\":{\"name\":\"invalid.illegal.unrecognized-string-escape.scala\"}},\"patterns\":[{\"include\":\"#string-interpolation\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\|\\\\\\\\\\\\\\\\u[0-9A-Fa-f]{4}\",\"name\":\"constant.character.escape.scala\"},{\"match\":\".\",\"name\":\"string.quoted.triple.interpolated.scala\"}]},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.scala\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.scala\"}},\"name\":\"string.quoted.double.scala\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(?:[btnfr\\\\\\\\\\\\\\\\\\\\\"\\']|[0-7]{1,3}|u[0-9A-Fa-f]{4})\",\"name\":\"constant.character.escape.scala\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"invalid.illegal.unrecognized-string-escape.scala\"}]},{\"begin\":\"\\\\\\\\b(raw)(\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.interpolation.scala\"},\"2\":{\"name\":\"string.quoted.double.interpolated.scala punctuation.definition.string.begin.scala\"}},\"end\":\"(\\\\\")|\\\\\\\\$\\\\n|(\\\\\\\\$[^\\\\\\\\$\\\\\"_{A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}])\",\"endCaptures\":{\"1\":{\"name\":\"string.quoted.double.interpolated.scala punctuation.definition.string.end.scala\"},\"2\":{\"name\":\"invalid.illegal.unrecognized-string-escape.scala\"}},\"patterns\":[{\"match\":\"\\\\\\\\$[\\\\\\\\$\\\\\"]\",\"name\":\"constant.character.escape.scala\"},{\"include\":\"#string-interpolation\"},{\"match\":\".\",\"name\":\"string.quoted.double.interpolated.scala\"}]},{\"begin\":\"\\\\\\\\b((?:[A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?))(\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.interpolation.scala\"},\"2\":{\"name\":\"string.quoted.double.interpolated.scala punctuation.definition.string.begin.scala\"}},\"end\":\"(\\\\\")|\\\\\\\\$\\\\n|(\\\\\\\\$[^\\\\\\\\$\\\\\"_{A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}])\",\"endCaptures\":{\"1\":{\"name\":\"string.quoted.double.interpolated.scala punctuation.definition.string.end.scala\"},\"2\":{\"name\":\"invalid.illegal.unrecognized-string-escape.scala\"}},\"patterns\":[{\"match\":\"\\\\\\\\$[\\\\\\\\$\\\\\"]\",\"name\":\"constant.character.escape.scala\"},{\"include\":\"#string-interpolation\"},{\"match\":\"\\\\\\\\\\\\\\\\(?:[btnfr\\\\\\\\\\\\\\\\\\\\\"\\']|[0-7]{1,3}|u[0-9A-Fa-f]{4})\",\"name\":\"constant.character.escape.scala\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"invalid.illegal.unrecognized-string-escape.scala\"},{\"match\":\".\",\"name\":\"string.quoted.double.interpolated.scala\"}]}]},\"using\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.declaration.scala\"}},\"match\":\"(?<=\\\\\\\\()\\\\\\\\s*(using)\\\\\\\\s\"}]},\"using-directive\":{\"begin\":\"^\\\\\\\\s*(//>)\\\\\\\\s*(using)[^\\\\\\\\S\\\\\\\\n]+(?:(\\\\\\\\S+))?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.scala\"},\"2\":{\"name\":\"keyword.other.import.scala\"},\"3\":{\"patterns\":[{\"match\":\"[A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?|`[^`]+`|(?:[A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}][A-Z\\\\\\\\p{Lt}\\\\\\\\p{Lu}_a-z\\\\\\\\$\\\\\\\\p{Lo}\\\\\\\\p{Nl}\\\\\\\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)?|[!#%&*+\\\\\\\\-\\\\\\\\/:<>=?@^|~\\\\\\\\p{Sm}\\\\\\\\p{So}]+)\",\"name\":\"entity.name.import.scala\"},{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.definition.import\"}]}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.shebang.scala\",\"patterns\":[{\"include\":\"#constants\"},{\"include\":\"#strings\"},{\"match\":\"[^\\\\\\\\s,]+\",\"name\":\"string.quoted.double.scala\"}]},\"xml-doublequotedString\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.xml\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.xml\"}},\"name\":\"string.quoted.double.xml\",\"patterns\":[{\"include\":\"#xml-entity\"}]},\"xml-embedded-content\":{\"patterns\":[{\"begin\":\"{\",\"captures\":{\"0\":{\"name\":\"meta.bracket.scala\"}},\"end\":\"}\",\"name\":\"meta.source.embedded.scala\",\"patterns\":[{\"include\":\"#code\"}]},{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.namespace.xml\"},\"2\":{\"name\":\"entity.other.attribute-name.xml\"},\"3\":{\"name\":\"punctuation.separator.namespace.xml\"},\"4\":{\"name\":\"entity.other.attribute-name.localname.xml\"}},\"match\":\" (?:([-_a-zA-Z0-9]+)((:)))?([_a-zA-Z-]+)=\"},{\"include\":\"#xml-doublequotedString\"},{\"include\":\"#xml-singlequotedString\"}]},\"xml-entity\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.constant.xml\"},\"3\":{\"name\":\"punctuation.definition.constant.xml\"}},\"match\":\"(&)([:a-zA-Z_][:a-zA-Z0-9_.-]*|#[0-9]+|#x[0-9a-fA-F]+)(;)\",\"name\":\"constant.character.entity.xml\"},\"xml-literal\":{\"patterns\":[{\"begin\":\"(<)((?:([_a-zA-Z0-9][_a-zA-Z0-9]*)((:)))?([_a-zA-Z0-9][-_a-zA-Z0-9:]*))(?=(\\\\\\\\s[^>]*)?></\\\\\\\\2>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.xml\"},\"3\":{\"name\":\"entity.name.tag.namespace.xml\"},\"4\":{\"name\":\"entity.name.tag.xml\"},\"5\":{\"name\":\"punctuation.separator.namespace.xml\"},\"6\":{\"name\":\"entity.name.tag.localname.xml\"}},\"comment\":\"We do not allow a tag name to start with a - since this would likely conflict with the <- operator. This is not very common for tag names anyway.  Also code such as -- if (val <val2 || val> val3) will falsly be recognized as an xml tag.  The solution is to put a space on either side of the comparison operator\",\"end\":\"(>(<))/(?:([-_a-zA-Z0-9]+)((:)))?([-_a-zA-Z0-9:]*[_a-zA-Z0-9])(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.xml\"},\"2\":{\"name\":\"meta.scope.between-tag-pair.xml\"},\"3\":{\"name\":\"entity.name.tag.namespace.xml\"},\"4\":{\"name\":\"entity.name.tag.xml\"},\"5\":{\"name\":\"punctuation.separator.namespace.xml\"},\"6\":{\"name\":\"entity.name.tag.localname.xml\"},\"7\":{\"name\":\"punctuation.definition.tag.xml\"}},\"name\":\"meta.tag.no-content.xml\",\"patterns\":[{\"include\":\"#xml-embedded-content\"}]},{\"begin\":\"(</?)(?:([_a-zA-Z0-9][-_a-zA-Z0-9]*)((:)))?([_a-zA-Z0-9][-_a-zA-Z0-9:]*)(?=[^>]*?>)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.xml\"},\"2\":{\"name\":\"entity.name.tag.namespace.xml\"},\"3\":{\"name\":\"entity.name.tag.xml\"},\"4\":{\"name\":\"punctuation.separator.namespace.xml\"},\"5\":{\"name\":\"entity.name.tag.localname.xml\"}},\"end\":\"(/?>)\",\"name\":\"meta.tag.xml\",\"patterns\":[{\"include\":\"#xml-embedded-content\"}]},{\"include\":\"#xml-entity\"}]},\"xml-singlequotedString\":{\"begin\":\"\\'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.xml\"}},\"end\":\"\\'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.xml\"}},\"name\":\"string.quoted.single.xml\",\"patterns\":[{\"include\":\"#xml-entity\"}]}},\"scopeName\":\"source.scala\"}')),e=[a];export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DRC6TkPh.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"*\"},brackets:[[\"[\",\"]\"],[\"(\",\")\"]]},t={defaultToken:\"invalid\",ignoreCase:!0,tokenPostfix:\".abap\",keywords:[\"abap-source\",\"abbreviated\",\"abstract\",\"accept\",\"accepting\",\"according\",\"activation\",\"actual\",\"add\",\"add-corresponding\",\"adjacent\",\"after\",\"alias\",\"aliases\",\"align\",\"all\",\"allocate\",\"alpha\",\"analysis\",\"analyzer\",\"and\",\"append\",\"appendage\",\"appending\",\"application\",\"archive\",\"area\",\"arithmetic\",\"as\",\"ascending\",\"aspect\",\"assert\",\"assign\",\"assigned\",\"assigning\",\"association\",\"asynchronous\",\"at\",\"attributes\",\"authority\",\"authority-check\",\"avg\",\"back\",\"background\",\"backup\",\"backward\",\"badi\",\"base\",\"before\",\"begin\",\"between\",\"big\",\"binary\",\"bintohex\",\"bit\",\"black\",\"blank\",\"blanks\",\"blob\",\"block\",\"blocks\",\"blue\",\"bound\",\"boundaries\",\"bounds\",\"boxed\",\"break-point\",\"buffer\",\"by\",\"bypassing\",\"byte\",\"byte-order\",\"call\",\"calling\",\"case\",\"cast\",\"casting\",\"catch\",\"center\",\"centered\",\"chain\",\"chain-input\",\"chain-request\",\"change\",\"changing\",\"channels\",\"character\",\"char-to-hex\",\"check\",\"checkbox\",\"ci_\",\"circular\",\"class\",\"class-coding\",\"class-data\",\"class-events\",\"class-methods\",\"class-pool\",\"cleanup\",\"clear\",\"client\",\"clob\",\"clock\",\"close\",\"coalesce\",\"code\",\"coding\",\"col_background\",\"col_group\",\"col_heading\",\"col_key\",\"col_negative\",\"col_normal\",\"col_positive\",\"col_total\",\"collect\",\"color\",\"column\",\"columns\",\"comment\",\"comments\",\"commit\",\"common\",\"communication\",\"comparing\",\"component\",\"components\",\"compression\",\"compute\",\"concat\",\"concat_with_space\",\"concatenate\",\"cond\",\"condense\",\"condition\",\"connect\",\"connection\",\"constants\",\"context\",\"contexts\",\"continue\",\"control\",\"controls\",\"conv\",\"conversion\",\"convert\",\"copies\",\"copy\",\"corresponding\",\"country\",\"cover\",\"cpi\",\"create\",\"creating\",\"critical\",\"currency\",\"currency_conversion\",\"current\",\"cursor\",\"cursor-selection\",\"customer\",\"customer-function\",\"dangerous\",\"data\",\"database\",\"datainfo\",\"dataset\",\"date\",\"dats_add_days\",\"dats_add_months\",\"dats_days_between\",\"dats_is_valid\",\"daylight\",\"dd/mm/yy\",\"dd/mm/yyyy\",\"ddmmyy\",\"deallocate\",\"decimal_shift\",\"decimals\",\"declarations\",\"deep\",\"default\",\"deferred\",\"define\",\"defining\",\"definition\",\"delete\",\"deleting\",\"demand\",\"department\",\"descending\",\"describe\",\"destination\",\"detail\",\"dialog\",\"directory\",\"disconnect\",\"display\",\"display-mode\",\"distinct\",\"divide\",\"divide-corresponding\",\"division\",\"do\",\"dummy\",\"duplicate\",\"duplicates\",\"duration\",\"during\",\"dynamic\",\"dynpro\",\"edit\",\"editor-call\",\"else\",\"elseif\",\"empty\",\"enabled\",\"enabling\",\"encoding\",\"end\",\"endat\",\"endcase\",\"endcatch\",\"endchain\",\"endclass\",\"enddo\",\"endenhancement\",\"end-enhancement-section\",\"endexec\",\"endform\",\"endfunction\",\"endian\",\"endif\",\"ending\",\"endinterface\",\"end-lines\",\"endloop\",\"endmethod\",\"endmodule\",\"end-of-definition\",\"end-of-editing\",\"end-of-file\",\"end-of-page\",\"end-of-selection\",\"endon\",\"endprovide\",\"endselect\",\"end-test-injection\",\"end-test-seam\",\"endtry\",\"endwhile\",\"endwith\",\"engineering\",\"enhancement\",\"enhancement-point\",\"enhancements\",\"enhancement-section\",\"entries\",\"entry\",\"enum\",\"environment\",\"equiv\",\"errormessage\",\"errors\",\"escaping\",\"event\",\"events\",\"exact\",\"except\",\"exception\",\"exceptions\",\"exception-table\",\"exclude\",\"excluding\",\"exec\",\"execute\",\"exists\",\"exit\",\"exit-command\",\"expand\",\"expanding\",\"expiration\",\"explicit\",\"exponent\",\"export\",\"exporting\",\"extend\",\"extended\",\"extension\",\"extract\",\"fail\",\"fetch\",\"field\",\"field-groups\",\"fields\",\"field-symbol\",\"field-symbols\",\"file\",\"filter\",\"filters\",\"filter-table\",\"final\",\"find\",\"first\",\"first-line\",\"fixed-point\",\"fkeq\",\"fkge\",\"flush\",\"font\",\"for\",\"form\",\"format\",\"forward\",\"found\",\"frame\",\"frames\",\"free\",\"friends\",\"from\",\"function\",\"functionality\",\"function-pool\",\"further\",\"gaps\",\"generate\",\"get\",\"giving\",\"gkeq\",\"gkge\",\"global\",\"grant\",\"green\",\"group\",\"groups\",\"handle\",\"handler\",\"harmless\",\"hashed\",\"having\",\"hdb\",\"header\",\"headers\",\"heading\",\"head-lines\",\"help-id\",\"help-request\",\"hextobin\",\"hide\",\"high\",\"hint\",\"hold\",\"hotspot\",\"icon\",\"id\",\"identification\",\"identifier\",\"ids\",\"if\",\"ignore\",\"ignoring\",\"immediately\",\"implementation\",\"implementations\",\"implemented\",\"implicit\",\"import\",\"importing\",\"in\",\"inactive\",\"incl\",\"include\",\"includes\",\"including\",\"increment\",\"index\",\"index-line\",\"infotypes\",\"inheriting\",\"init\",\"initial\",\"initialization\",\"inner\",\"inout\",\"input\",\"insert\",\"instance\",\"instances\",\"instr\",\"intensified\",\"interface\",\"interface-pool\",\"interfaces\",\"internal\",\"intervals\",\"into\",\"inverse\",\"inverted-date\",\"is\",\"iso\",\"job\",\"join\",\"keep\",\"keeping\",\"kernel\",\"key\",\"keys\",\"keywords\",\"kind\",\"language\",\"last\",\"late\",\"layout\",\"leading\",\"leave\",\"left\",\"left-justified\",\"leftplus\",\"leftspace\",\"legacy\",\"length\",\"let\",\"level\",\"levels\",\"like\",\"line\",\"lines\",\"line-count\",\"linefeed\",\"line-selection\",\"line-size\",\"list\",\"listbox\",\"list-processing\",\"little\",\"llang\",\"load\",\"load-of-program\",\"lob\",\"local\",\"locale\",\"locator\",\"logfile\",\"logical\",\"log-point\",\"long\",\"loop\",\"low\",\"lower\",\"lpad\",\"lpi\",\"ltrim\",\"mail\",\"main\",\"major-id\",\"mapping\",\"margin\",\"mark\",\"mask\",\"match\",\"matchcode\",\"max\",\"maximum\",\"medium\",\"members\",\"memory\",\"mesh\",\"message\",\"message-id\",\"messages\",\"messaging\",\"method\",\"methods\",\"min\",\"minimum\",\"minor-id\",\"mm/dd/yy\",\"mm/dd/yyyy\",\"mmddyy\",\"mode\",\"modif\",\"modifier\",\"modify\",\"module\",\"move\",\"move-corresponding\",\"multiply\",\"multiply-corresponding\",\"name\",\"nametab\",\"native\",\"nested\",\"nesting\",\"new\",\"new-line\",\"new-page\",\"new-section\",\"next\",\"no\",\"no-display\",\"no-extension\",\"no-gap\",\"no-gaps\",\"no-grouping\",\"no-heading\",\"no-scrolling\",\"no-sign\",\"no-title\",\"no-topofpage\",\"no-zero\",\"node\",\"nodes\",\"non-unicode\",\"non-unique\",\"not\",\"null\",\"number\",\"object\",\"objects\",\"obligatory\",\"occurrence\",\"occurrences\",\"occurs\",\"of\",\"off\",\"offset\",\"ole\",\"on\",\"only\",\"open\",\"option\",\"optional\",\"options\",\"or\",\"order\",\"other\",\"others\",\"out\",\"outer\",\"output\",\"output-length\",\"overflow\",\"overlay\",\"pack\",\"package\",\"pad\",\"padding\",\"page\",\"pages\",\"parameter\",\"parameters\",\"parameter-table\",\"part\",\"partially\",\"pattern\",\"percentage\",\"perform\",\"performing\",\"person\",\"pf1\",\"pf10\",\"pf11\",\"pf12\",\"pf13\",\"pf14\",\"pf15\",\"pf2\",\"pf3\",\"pf4\",\"pf5\",\"pf6\",\"pf7\",\"pf8\",\"pf9\",\"pf-status\",\"pink\",\"places\",\"pool\",\"pos_high\",\"pos_low\",\"position\",\"pragmas\",\"precompiled\",\"preferred\",\"preserving\",\"primary\",\"print\",\"print-control\",\"priority\",\"private\",\"procedure\",\"process\",\"program\",\"property\",\"protected\",\"provide\",\"public\",\"push\",\"pushbutton\",\"put\",\"queue-only\",\"quickinfo\",\"radiobutton\",\"raise\",\"raising\",\"range\",\"ranges\",\"read\",\"reader\",\"read-only\",\"receive\",\"received\",\"receiver\",\"receiving\",\"red\",\"redefinition\",\"reduce\",\"reduced\",\"ref\",\"reference\",\"refresh\",\"regex\",\"reject\",\"remote\",\"renaming\",\"replace\",\"replacement\",\"replacing\",\"report\",\"request\",\"requested\",\"reserve\",\"reset\",\"resolution\",\"respecting\",\"responsible\",\"result\",\"results\",\"resumable\",\"resume\",\"retry\",\"return\",\"returncode\",\"returning\",\"returns\",\"right\",\"right-justified\",\"rightplus\",\"rightspace\",\"risk\",\"rmc_communication_failure\",\"rmc_invalid_status\",\"rmc_system_failure\",\"role\",\"rollback\",\"rows\",\"rpad\",\"rtrim\",\"run\",\"sap\",\"sap-spool\",\"saving\",\"scale_preserving\",\"scale_preserving_scientific\",\"scan\",\"scientific\",\"scientific_with_leading_zero\",\"scroll\",\"scroll-boundary\",\"scrolling\",\"search\",\"secondary\",\"seconds\",\"section\",\"select\",\"selection\",\"selections\",\"selection-screen\",\"selection-set\",\"selection-sets\",\"selection-table\",\"select-options\",\"send\",\"separate\",\"separated\",\"set\",\"shared\",\"shift\",\"short\",\"shortdump-id\",\"sign_as_postfix\",\"single\",\"size\",\"skip\",\"skipping\",\"smart\",\"some\",\"sort\",\"sortable\",\"sorted\",\"source\",\"specified\",\"split\",\"spool\",\"spots\",\"sql\",\"sqlscript\",\"stable\",\"stamp\",\"standard\",\"starting\",\"start-of-editing\",\"start-of-selection\",\"state\",\"statement\",\"statements\",\"static\",\"statics\",\"statusinfo\",\"step-loop\",\"stop\",\"structure\",\"structures\",\"style\",\"subkey\",\"submatches\",\"submit\",\"subroutine\",\"subscreen\",\"subtract\",\"subtract-corresponding\",\"suffix\",\"sum\",\"summary\",\"summing\",\"supplied\",\"supply\",\"suppress\",\"switch\",\"switchstates\",\"symbol\",\"syncpoints\",\"syntax\",\"syntax-check\",\"syntax-trace\",\"system-call\",\"system-exceptions\",\"system-exit\",\"tab\",\"tabbed\",\"table\",\"tables\",\"tableview\",\"tabstrip\",\"target\",\"task\",\"tasks\",\"test\",\"testing\",\"test-injection\",\"test-seam\",\"text\",\"textpool\",\"then\",\"throw\",\"time\",\"times\",\"timestamp\",\"timezone\",\"tims_is_valid\",\"title\",\"titlebar\",\"title-lines\",\"to\",\"tokenization\",\"tokens\",\"top-lines\",\"top-of-page\",\"trace-file\",\"trace-table\",\"trailing\",\"transaction\",\"transfer\",\"transformation\",\"translate\",\"transporting\",\"trmac\",\"truncate\",\"truncation\",\"try\",\"tstmp_add_seconds\",\"tstmp_current_utctimestamp\",\"tstmp_is_valid\",\"tstmp_seconds_between\",\"type\",\"type-pool\",\"type-pools\",\"types\",\"uline\",\"unassign\",\"under\",\"unicode\",\"union\",\"unique\",\"unit_conversion\",\"unix\",\"unpack\",\"until\",\"unwind\",\"up\",\"update\",\"upper\",\"user\",\"user-command\",\"using\",\"utf-8\",\"valid\",\"value\",\"value-request\",\"values\",\"vary\",\"varying\",\"verification-message\",\"version\",\"via\",\"view\",\"visible\",\"wait\",\"warning\",\"when\",\"whenever\",\"where\",\"while\",\"width\",\"window\",\"windows\",\"with\",\"with-heading\",\"without\",\"with-title\",\"word\",\"work\",\"write\",\"writer\",\"xml\",\"xsd\",\"yellow\",\"yes\",\"yymmdd\",\"zero\",\"zone\",\"abap_system_timezone\",\"abap_user_timezone\",\"access\",\"action\",\"adabas\",\"adjust_numbers\",\"allow_precision_loss\",\"allowed\",\"amdp\",\"applicationuser\",\"as_geo_json\",\"as400\",\"associations\",\"balance\",\"behavior\",\"breakup\",\"bulk\",\"cds\",\"cds_client\",\"check_before_save\",\"child\",\"clients\",\"corr\",\"corr_spearman\",\"cross\",\"cycles\",\"datn_add_days\",\"datn_add_months\",\"datn_days_between\",\"dats_from_datn\",\"dats_tims_to_tstmp\",\"dats_to_datn\",\"db2\",\"db6\",\"ddl\",\"dense_rank\",\"depth\",\"deterministic\",\"discarding\",\"entities\",\"entity\",\"error\",\"failed\",\"finalize\",\"first_value\",\"fltp_to_dec\",\"following\",\"fractional\",\"full\",\"graph\",\"grouping\",\"hierarchy\",\"hierarchy_ancestors\",\"hierarchy_ancestors_aggregate\",\"hierarchy_descendants\",\"hierarchy_descendants_aggregate\",\"hierarchy_siblings\",\"incremental\",\"indicators\",\"lag\",\"last_value\",\"lead\",\"leaves\",\"like_regexpr\",\"link\",\"locale_sap\",\"lock\",\"locks\",\"many\",\"mapped\",\"matched\",\"measures\",\"median\",\"mssqlnt\",\"multiple\",\"nodetype\",\"ntile\",\"nulls\",\"occurrences_regexpr\",\"one\",\"operations\",\"oracle\",\"orphans\",\"over\",\"parent\",\"parents\",\"partition\",\"pcre\",\"period\",\"pfcg_mapping\",\"preceding\",\"privileged\",\"product\",\"projection\",\"rank\",\"redirected\",\"replace_regexpr\",\"reported\",\"response\",\"responses\",\"root\",\"row\",\"row_number\",\"sap_system_date\",\"save\",\"schema\",\"session\",\"sets\",\"shortdump\",\"siblings\",\"spantree\",\"start\",\"stddev\",\"string_agg\",\"subtotal\",\"sybase\",\"tims_from_timn\",\"tims_to_timn\",\"to_blob\",\"to_clob\",\"total\",\"trace-entry\",\"tstmp_to_dats\",\"tstmp_to_dst\",\"tstmp_to_tims\",\"tstmpl_from_utcl\",\"tstmpl_to_utcl\",\"unbounded\",\"utcl_add_seconds\",\"utcl_current\",\"utcl_seconds_between\",\"uuid\",\"var\",\"verbatim\"],builtinFunctions:[\"abs\",\"acos\",\"asin\",\"atan\",\"bit-set\",\"boolc\",\"boolx\",\"ceil\",\"char_off\",\"charlen\",\"cmax\",\"cmin\",\"concat_lines_of\",\"contains\",\"contains_any_not_of\",\"contains_any_of\",\"cos\",\"cosh\",\"count\",\"count_any_not_of\",\"count_any_of\",\"dbmaxlen\",\"distance\",\"escape\",\"exp\",\"find_any_not_of\",\"find_any_of\",\"find_end\",\"floor\",\"frac\",\"from_mixed\",\"ipow\",\"line_exists\",\"line_index\",\"log\",\"log10\",\"matches\",\"nmax\",\"nmin\",\"numofchar\",\"repeat\",\"rescale\",\"reverse\",\"round\",\"segment\",\"shift_left\",\"shift_right\",\"sign\",\"sin\",\"sinh\",\"sqrt\",\"strlen\",\"substring\",\"substring_after\",\"substring_before\",\"substring_from\",\"substring_to\",\"tan\",\"tanh\",\"to_lower\",\"to_mixed\",\"to_upper\",\"trunc\",\"utclong_add\",\"utclong_current\",\"utclong_diff\",\"xsdbool\",\"xstrlen\"],typeKeywords:[\"b\",\"c\",\"d\",\"decfloat16\",\"decfloat34\",\"f\",\"i\",\"int8\",\"n\",\"p\",\"s\",\"string\",\"t\",\"utclong\",\"x\",\"xstring\",\"any\",\"clike\",\"csequence\",\"decfloat\",\"numeric\",\"simple\",\"xsequence\",\"accp\",\"char\",\"clnt\",\"cuky\",\"curr\",\"datn\",\"dats\",\"d16d\",\"d16n\",\"d16r\",\"d34d\",\"d34n\",\"d34r\",\"dec\",\"df16_dec\",\"df16_raw\",\"df34_dec\",\"df34_raw\",\"fltp\",\"geom_ewkb\",\"int1\",\"int2\",\"int4\",\"lang\",\"lchr\",\"lraw\",\"numc\",\"quan\",\"raw\",\"rawstring\",\"sstring\",\"timn\",\"tims\",\"unit\",\"utcl\",\"df16_scl\",\"df34_scl\",\"prec\",\"varc\",\"abap_bool\",\"abap_false\",\"abap_true\",\"abap_undefined\",\"me\",\"screen\",\"space\",\"super\",\"sy\",\"syst\",\"table_line\",\"*sys*\"],builtinMethods:[\"class_constructor\",\"constructor\"],derivedTypes:[\"%CID\",\"%CID_REF\",\"%CONTROL\",\"%DATA\",\"%ELEMENT\",\"%FAIL\",\"%KEY\",\"%MSG\",\"%PARAM\",\"%PID\",\"%PID_ASSOC\",\"%PID_PARENT\",\"%_HINTS\"],cdsLanguage:[\"@AbapAnnotation\",\"@AbapCatalog\",\"@AccessControl\",\"@API\",\"@ClientDependent\",\"@ClientHandling\",\"@CompatibilityContract\",\"@DataAging\",\"@EndUserText\",\"@Environment\",\"@LanguageDependency\",\"@MappingRole\",\"@Metadata\",\"@MetadataExtension\",\"@ObjectModel\",\"@Scope\",\"@Semantics\",\"$EXTENSION\",\"$SELF\"],selectors:[\"->\",\"->*\",\"=>\",\"~\",\"~*\"],operators:[\" +\",\" -\",\"/\",\"*\",\"**\",\"div\",\"mod\",\"=\",\"#\",\"@\",\"+=\",\"-=\",\"*=\",\"/=\",\"**=\",\"&&=\",\"?=\",\"&\",\"&&\",\"bit-and\",\"bit-not\",\"bit-or\",\"bit-xor\",\"m\",\"o\",\"z\",\"<\",\" >\",\"<=\",\">=\",\"<>\",\"><\",\"=<\",\"=>\",\"bt\",\"byte-ca\",\"byte-cn\",\"byte-co\",\"byte-cs\",\"byte-na\",\"byte-ns\",\"ca\",\"cn\",\"co\",\"cp\",\"cs\",\"eq\",\"ge\",\"gt\",\"le\",\"lt\",\"na\",\"nb\",\"ne\",\"np\",\"ns\",\"*/\",\"*:\",\"--\",\"/*\",\"//\"],symbols:/[=><!~?&+\\-*\\/\\^%#@]+/,tokenizer:{root:[[/[a-z_\\/$%@]([\\w\\/$%]|-(?!>))*/,{cases:{\"@typeKeywords\":\"type\",\"@keywords\":\"keyword\",\"@cdsLanguage\":\"annotation\",\"@derivedTypes\":\"type\",\"@builtinFunctions\":\"type\",\"@builtinMethods\":\"type\",\"@operators\":\"key\",\"@default\":\"identifier\"}}],[/<[\\w]+>/,\"identifier\"],[/##[\\w|_]+/,\"comment\"],{include:\"@whitespace\"},[/[:,.]/,\"delimiter\"],[/[{}()\\[\\]]/,\"@brackets\"],[/@symbols/,{cases:{\"@selectors\":\"tag\",\"@operators\":\"key\",\"@default\":\"\"}}],[/'/,{token:\"string\",bracket:\"@open\",next:\"@stringquote\"}],[/`/,{token:\"string\",bracket:\"@open\",next:\"@stringping\"}],[/\\|/,{token:\"string\",bracket:\"@open\",next:\"@stringtemplate\"}],[/\\d+/,\"number\"]],stringtemplate:[[/[^\\\\\\|]+/,\"string\"],[/\\\\\\|/,\"string\"],[/\\|/,{token:\"string\",bracket:\"@close\",next:\"@pop\"}]],stringping:[[/[^\\\\`]+/,\"string\"],[/`/,{token:\"string\",bracket:\"@close\",next:\"@pop\"}]],stringquote:[[/[^\\\\']+/,\"string\"],[/'/,{token:\"string\",bracket:\"@close\",next:\"@pop\"}]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/^\\*.*$/,\"comment\"],[/\\\".*$/,\"comment\"]]}};export{e as conf,t as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/DREVFZK8.js",
    "content": "const n=Object.freeze(JSON.parse('{\"displayName\":\"JSON Lines\",\"name\":\"jsonl\",\"patterns\":[{\"include\":\"#value\"}],\"repository\":{\"array\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.array.begin.json.lines\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.array.end.json.lines\"}},\"name\":\"meta.structure.array.json.lines\",\"patterns\":[{\"include\":\"#value\"},{\"match\":\",\",\"name\":\"punctuation.separator.array.json.lines\"},{\"match\":\"[^\\\\\\\\s\\\\\\\\]]\",\"name\":\"invalid.illegal.expected-array-separator.json.lines\"}]},\"comments\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\\\\\\\\*(?!/)\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.json.lines\"}},\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.documentation.json.lines\"},{\"begin\":\"/\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.json.lines\"}},\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.json.lines\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.json.lines\"}},\"match\":\"(//).*$\\\\\\\\n?\",\"name\":\"comment.line.double-slash.js\"}]},\"constant\":{\"match\":\"\\\\\\\\b(?:true|false|null)\\\\\\\\b\",\"name\":\"constant.language.json.lines\"},\"number\":{\"match\":\"-?(?:0|[1-9]\\\\\\\\d*)(?:(?:\\\\\\\\.\\\\\\\\d+)?(?:[eE][+-]?\\\\\\\\d+)?)?\",\"name\":\"constant.numeric.json.lines\"},\"object\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.dictionary.begin.json.lines\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.dictionary.end.json.lines\"}},\"name\":\"meta.structure.dictionary.json.lines\",\"patterns\":[{\"comment\":\"the JSON object key\",\"include\":\"#objectkey\"},{\"include\":\"#comments\"},{\"begin\":\":\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.dictionary.key-value.json.lines\"}},\"end\":\"(,)|(?=\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.dictionary.pair.json.lines\"}},\"name\":\"meta.structure.dictionary.value.json.lines\",\"patterns\":[{\"comment\":\"the JSON object value\",\"include\":\"#value\"},{\"match\":\"[^\\\\\\\\s,]\",\"name\":\"invalid.illegal.expected-dictionary-separator.json.lines\"}]},{\"match\":\"[^\\\\\\\\s\\\\\\\\}]\",\"name\":\"invalid.illegal.expected-dictionary-separator.json.lines\"}]},\"objectkey\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.support.type.property-name.begin.json.lines\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.support.type.property-name.end.json.lines\"}},\"name\":\"string.json.lines support.type.property-name.json.lines\",\"patterns\":[{\"include\":\"#stringcontent\"}]},\"string\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.json.lines\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.json.lines\"}},\"name\":\"string.quoted.double.json.lines\",\"patterns\":[{\"include\":\"#stringcontent\"}]},\"stringcontent\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(?:[\\\\\"\\\\\\\\\\\\\\\\/bfnrt]|u[0-9a-fA-F]{4})\",\"name\":\"constant.character.escape.json.lines\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"invalid.illegal.unrecognized-string-escape.json.lines\"}]},\"value\":{\"patterns\":[{\"include\":\"#constant\"},{\"include\":\"#number\"},{\"include\":\"#string\"},{\"include\":\"#array\"},{\"include\":\"#object\"},{\"include\":\"#comments\"}]}},\"scopeName\":\"source.json.lines\"}')),e=[n];export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DRNBmV_Q.js",
    "content": "import e from\"./DKXYxT9g.js\";const n=Object.freeze(JSON.parse('{\"displayName\":\"Fortran (Fixed Form)\",\"fileTypes\":[\"f\",\"F\",\"f77\",\"F77\",\"for\",\"FOR\"],\"injections\":{\"source.fortran.fixed - ( string | comment )\":{\"patterns\":[{\"include\":\"#line-header\"},{\"include\":\"#line-end-comment\"}]}},\"name\":\"fortran-fixed-form\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#line-header\"},{\"include\":\"source.fortran.free\"}],\"repository\":{\"comments\":{\"patterns\":[{\"begin\":\"^[cC\\\\\\\\*]\",\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.fortran\"},{\"begin\":\"^ *!\",\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.fortran\"}]},\"line-end-comment\":{\"begin\":\"(?<=^.{72})(?!\\\\\\\\n)\",\"end\":\"(?=\\\\\\\\n)\",\"name\":\"comment.line-end.fortran\"},\"line-header\":{\"captures\":{\"1\":{\"name\":\"constant.numeric.fortran\"},\"2\":{\"name\":\"keyword.line-continuation-operator.fortran\"},\"3\":{\"name\":\"source.fortran.free\"},\"4\":{\"name\":\"invalid.error.fortran\"}},\"match\":\"^(?!\\\\\\\\s*[!#])(?:([ \\\\\\\\d]{5} )|( {5}.)|(\\\\\\\\t)|(.{1,5}))\"}},\"scopeName\":\"source.fortran.fixed\",\"embeddedLangs\":[\"fortran-free-form\"],\"aliases\":[\"f\",\"for\",\"f77\"]}')),o=[...e,n];export{o as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DRW-0cLl.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBackground\":\"#00000000\",\"activityBar.activeBorder\":\"#00000000\",\"activityBar.activeFocusBorder\":\"#00000000\",\"activityBar.background\":\"#dce0e8\",\"activityBar.border\":\"#00000000\",\"activityBar.dropBorder\":\"#8839ef33\",\"activityBar.foreground\":\"#8839ef\",\"activityBar.inactiveForeground\":\"#9ca0b0\",\"activityBarBadge.background\":\"#8839ef\",\"activityBarBadge.foreground\":\"#dce0e8\",\"activityBarTop.activeBorder\":\"#00000000\",\"activityBarTop.dropBorder\":\"#8839ef33\",\"activityBarTop.foreground\":\"#8839ef\",\"activityBarTop.inactiveForeground\":\"#9ca0b0\",\"badge.background\":\"#bcc0cc\",\"badge.foreground\":\"#4c4f69\",\"banner.background\":\"#bcc0cc\",\"banner.foreground\":\"#4c4f69\",\"banner.iconForeground\":\"#4c4f69\",\"breadcrumb.activeSelectionForeground\":\"#8839ef\",\"breadcrumb.background\":\"#eff1f5\",\"breadcrumb.focusForeground\":\"#8839ef\",\"breadcrumb.foreground\":\"#4c4f69cc\",\"breadcrumbPicker.background\":\"#e6e9ef\",\"button.background\":\"#8839ef\",\"button.border\":\"#00000000\",\"button.foreground\":\"#dce0e8\",\"button.hoverBackground\":\"#9c5af2\",\"button.secondaryBackground\":\"#acb0be\",\"button.secondaryBorder\":\"#8839ef\",\"button.secondaryForeground\":\"#4c4f69\",\"button.secondaryHoverBackground\":\"#c0c3ce\",\"button.separator\":\"#00000000\",\"charts.blue\":\"#1e66f5\",\"charts.foreground\":\"#4c4f69\",\"charts.green\":\"#40a02b\",\"charts.lines\":\"#5c5f77\",\"charts.orange\":\"#fe640b\",\"charts.purple\":\"#8839ef\",\"charts.red\":\"#d20f39\",\"charts.yellow\":\"#df8e1d\",\"checkbox.background\":\"#bcc0cc\",\"checkbox.border\":\"#00000000\",\"checkbox.foreground\":\"#8839ef\",\"commandCenter.activeBackground\":\"#acb0be33\",\"commandCenter.activeBorder\":\"#8839ef\",\"commandCenter.activeForeground\":\"#8839ef\",\"commandCenter.background\":\"#e6e9ef\",\"commandCenter.border\":\"#00000000\",\"commandCenter.foreground\":\"#5c5f77\",\"commandCenter.inactiveBorder\":\"#00000000\",\"commandCenter.inactiveForeground\":\"#5c5f77\",\"debugConsole.errorForeground\":\"#d20f39\",\"debugConsole.infoForeground\":\"#1e66f5\",\"debugConsole.sourceForeground\":\"#dc8a78\",\"debugConsole.warningForeground\":\"#fe640b\",\"debugConsoleInputIcon.foreground\":\"#4c4f69\",\"debugExceptionWidget.background\":\"#dce0e8\",\"debugExceptionWidget.border\":\"#8839ef\",\"debugIcon.breakpointCurrentStackframeForeground\":\"#acb0be\",\"debugIcon.breakpointDisabledForeground\":\"#d20f3999\",\"debugIcon.breakpointForeground\":\"#d20f39\",\"debugIcon.breakpointStackframeForeground\":\"#acb0be\",\"debugIcon.breakpointUnverifiedForeground\":\"#bf607c\",\"debugIcon.continueForeground\":\"#40a02b\",\"debugIcon.disconnectForeground\":\"#acb0be\",\"debugIcon.pauseForeground\":\"#1e66f5\",\"debugIcon.restartForeground\":\"#179299\",\"debugIcon.startForeground\":\"#40a02b\",\"debugIcon.stepBackForeground\":\"#acb0be\",\"debugIcon.stepIntoForeground\":\"#4c4f69\",\"debugIcon.stepOutForeground\":\"#4c4f69\",\"debugIcon.stepOverForeground\":\"#8839ef\",\"debugIcon.stopForeground\":\"#d20f39\",\"debugTokenExpression.boolean\":\"#8839ef\",\"debugTokenExpression.error\":\"#d20f39\",\"debugTokenExpression.number\":\"#fe640b\",\"debugTokenExpression.string\":\"#40a02b\",\"debugToolBar.background\":\"#dce0e8\",\"debugToolBar.border\":\"#00000000\",\"descriptionForeground\":\"#4c4f69\",\"diffEditor.border\":\"#acb0be\",\"diffEditor.diagonalFill\":\"#acb0be99\",\"diffEditor.insertedLineBackground\":\"#40a02b26\",\"diffEditor.insertedTextBackground\":\"#40a02b1a\",\"diffEditor.removedLineBackground\":\"#d20f3926\",\"diffEditor.removedTextBackground\":\"#d20f391a\",\"diffEditorOverview.insertedForeground\":\"#40a02bcc\",\"diffEditorOverview.removedForeground\":\"#d20f39cc\",\"disabledForeground\":\"#6c6f85\",\"dropdown.background\":\"#e6e9ef\",\"dropdown.border\":\"#8839ef\",\"dropdown.foreground\":\"#4c4f69\",\"dropdown.listBackground\":\"#acb0be\",\"editor.background\":\"#eff1f5\",\"editor.findMatchBackground\":\"#e6adbd\",\"editor.findMatchBorder\":\"#d20f3933\",\"editor.findMatchHighlightBackground\":\"#a9daf0\",\"editor.findMatchHighlightBorder\":\"#04a5e533\",\"editor.findRangeHighlightBackground\":\"#a9daf0\",\"editor.findRangeHighlightBorder\":\"#04a5e533\",\"editor.focusedStackFrameHighlightBackground\":\"#40a02b26\",\"editor.foldBackground\":\"#04a5e540\",\"editor.foreground\":\"#4c4f69\",\"editor.hoverHighlightBackground\":\"#04a5e540\",\"editor.lineHighlightBackground\":\"#4c4f6912\",\"editor.lineHighlightBorder\":\"#00000000\",\"editor.rangeHighlightBackground\":\"#04a5e540\",\"editor.rangeHighlightBorder\":\"#00000000\",\"editor.selectionBackground\":\"#7c7f934d\",\"editor.selectionHighlightBackground\":\"#7c7f9333\",\"editor.selectionHighlightBorder\":\"#7c7f9333\",\"editor.stackFrameHighlightBackground\":\"#df8e1d26\",\"editor.wordHighlightBackground\":\"#7c7f9333\",\"editor.wordHighlightStrongBackground\":\"#1e66f526\",\"editorBracketHighlight.foreground1\":\"#d20f39\",\"editorBracketHighlight.foreground2\":\"#fe640b\",\"editorBracketHighlight.foreground3\":\"#df8e1d\",\"editorBracketHighlight.foreground4\":\"#40a02b\",\"editorBracketHighlight.foreground5\":\"#209fb5\",\"editorBracketHighlight.foreground6\":\"#8839ef\",\"editorBracketHighlight.unexpectedBracket.foreground\":\"#e64553\",\"editorBracketMatch.background\":\"#7c7f931a\",\"editorBracketMatch.border\":\"#7c7f93\",\"editorCodeLens.foreground\":\"#8c8fa1\",\"editorCursor.background\":\"#eff1f5\",\"editorCursor.foreground\":\"#dc8a78\",\"editorError.background\":\"#00000000\",\"editorError.border\":\"#00000000\",\"editorError.foreground\":\"#d20f39\",\"editorGroup.border\":\"#acb0be\",\"editorGroup.dropBackground\":\"#8839ef33\",\"editorGroup.emptyBackground\":\"#eff1f5\",\"editorGroupHeader.tabsBackground\":\"#dce0e8\",\"editorGutter.addedBackground\":\"#40a02b\",\"editorGutter.background\":\"#eff1f5\",\"editorGutter.commentGlyphForeground\":\"#8839ef\",\"editorGutter.commentRangeForeground\":\"#ccd0da\",\"editorGutter.deletedBackground\":\"#d20f39\",\"editorGutter.foldingControlForeground\":\"#7c7f93\",\"editorGutter.modifiedBackground\":\"#df8e1d\",\"editorHoverWidget.background\":\"#e6e9ef\",\"editorHoverWidget.border\":\"#acb0be\",\"editorHoverWidget.foreground\":\"#4c4f69\",\"editorIndentGuide.activeBackground\":\"#acb0be\",\"editorIndentGuide.background\":\"#bcc0cc\",\"editorInfo.background\":\"#00000000\",\"editorInfo.border\":\"#00000000\",\"editorInfo.foreground\":\"#1e66f5\",\"editorInlayHint.background\":\"#e6e9efbf\",\"editorInlayHint.foreground\":\"#acb0be\",\"editorInlayHint.parameterBackground\":\"#e6e9efbf\",\"editorInlayHint.parameterForeground\":\"#6c6f85\",\"editorInlayHint.typeBackground\":\"#e6e9efbf\",\"editorInlayHint.typeForeground\":\"#5c5f77\",\"editorLightBulb.foreground\":\"#df8e1d\",\"editorLineNumber.activeForeground\":\"#8839ef\",\"editorLineNumber.foreground\":\"#8c8fa1\",\"editorLink.activeForeground\":\"#8839ef\",\"editorMarkerNavigation.background\":\"#e6e9ef\",\"editorMarkerNavigationError.background\":\"#d20f39\",\"editorMarkerNavigationInfo.background\":\"#1e66f5\",\"editorMarkerNavigationWarning.background\":\"#fe640b\",\"editorOverviewRuler.background\":\"#e6e9ef\",\"editorOverviewRuler.border\":\"#4c4f6912\",\"editorOverviewRuler.modifiedForeground\":\"#df8e1d\",\"editorRuler.foreground\":\"#acb0be\",\"editorStickyScrollHover.background\":\"#ccd0da\",\"editorSuggestWidget.background\":\"#e6e9ef\",\"editorSuggestWidget.border\":\"#acb0be\",\"editorSuggestWidget.foreground\":\"#4c4f69\",\"editorSuggestWidget.highlightForeground\":\"#8839ef\",\"editorSuggestWidget.selectedBackground\":\"#ccd0da\",\"editorWarning.background\":\"#00000000\",\"editorWarning.border\":\"#00000000\",\"editorWarning.foreground\":\"#fe640b\",\"editorWhitespace.foreground\":\"#7c7f9366\",\"editorWidget.background\":\"#e6e9ef\",\"editorWidget.foreground\":\"#4c4f69\",\"editorWidget.resizeBorder\":\"#acb0be\",\"errorForeground\":\"#d20f39\",\"errorLens.errorBackground\":\"#d20f3926\",\"errorLens.errorBackgroundLight\":\"#d20f3926\",\"errorLens.errorForeground\":\"#d20f39\",\"errorLens.errorForegroundLight\":\"#d20f39\",\"errorLens.errorMessageBackground\":\"#d20f3926\",\"errorLens.hintBackground\":\"#40a02b26\",\"errorLens.hintBackgroundLight\":\"#40a02b26\",\"errorLens.hintForeground\":\"#40a02b\",\"errorLens.hintForegroundLight\":\"#40a02b\",\"errorLens.hintMessageBackground\":\"#40a02b26\",\"errorLens.infoBackground\":\"#1e66f526\",\"errorLens.infoBackgroundLight\":\"#1e66f526\",\"errorLens.infoForeground\":\"#1e66f5\",\"errorLens.infoForegroundLight\":\"#1e66f5\",\"errorLens.infoMessageBackground\":\"#1e66f526\",\"errorLens.statusBarErrorForeground\":\"#d20f39\",\"errorLens.statusBarHintForeground\":\"#40a02b\",\"errorLens.statusBarIconErrorForeground\":\"#d20f39\",\"errorLens.statusBarIconWarningForeground\":\"#fe640b\",\"errorLens.statusBarInfoForeground\":\"#1e66f5\",\"errorLens.statusBarWarningForeground\":\"#fe640b\",\"errorLens.warningBackground\":\"#fe640b26\",\"errorLens.warningBackgroundLight\":\"#fe640b26\",\"errorLens.warningForeground\":\"#fe640b\",\"errorLens.warningForegroundLight\":\"#fe640b\",\"errorLens.warningMessageBackground\":\"#fe640b26\",\"extensionBadge.remoteBackground\":\"#1e66f5\",\"extensionBadge.remoteForeground\":\"#dce0e8\",\"extensionButton.prominentBackground\":\"#8839ef\",\"extensionButton.prominentForeground\":\"#dce0e8\",\"extensionButton.prominentHoverBackground\":\"#9c5af2\",\"extensionButton.separator\":\"#eff1f5\",\"extensionIcon.preReleaseForeground\":\"#acb0be\",\"extensionIcon.sponsorForeground\":\"#ea76cb\",\"extensionIcon.starForeground\":\"#df8e1d\",\"extensionIcon.verifiedForeground\":\"#40a02b\",\"focusBorder\":\"#8839ef\",\"foreground\":\"#4c4f69\",\"gitDecoration.addedResourceForeground\":\"#40a02b\",\"gitDecoration.conflictingResourceForeground\":\"#8839ef\",\"gitDecoration.deletedResourceForeground\":\"#d20f39\",\"gitDecoration.ignoredResourceForeground\":\"#9ca0b0\",\"gitDecoration.modifiedResourceForeground\":\"#df8e1d\",\"gitDecoration.stageDeletedResourceForeground\":\"#d20f39\",\"gitDecoration.stageModifiedResourceForeground\":\"#df8e1d\",\"gitDecoration.submoduleResourceForeground\":\"#1e66f5\",\"gitDecoration.untrackedResourceForeground\":\"#40a02b\",\"gitlens.closedAutolinkedIssueIconColor\":\"#8839ef\",\"gitlens.closedPullRequestIconColor\":\"#d20f39\",\"gitlens.decorations.branchAheadForegroundColor\":\"#40a02b\",\"gitlens.decorations.branchBehindForegroundColor\":\"#fe640b\",\"gitlens.decorations.branchDivergedForegroundColor\":\"#df8e1d\",\"gitlens.decorations.branchMissingUpstreamForegroundColor\":\"#fe640b\",\"gitlens.decorations.branchUnpublishedForegroundColor\":\"#40a02b\",\"gitlens.decorations.statusMergingOrRebasingConflictForegroundColor\":\"#e64553\",\"gitlens.decorations.statusMergingOrRebasingForegroundColor\":\"#df8e1d\",\"gitlens.decorations.workspaceCurrentForegroundColor\":\"#8839ef\",\"gitlens.decorations.workspaceRepoMissingForegroundColor\":\"#6c6f85\",\"gitlens.decorations.workspaceRepoOpenForegroundColor\":\"#8839ef\",\"gitlens.decorations.worktreeHasUncommittedChangesForegroundColor\":\"#fe640b\",\"gitlens.decorations.worktreeMissingForegroundColor\":\"#e64553\",\"gitlens.graphChangesColumnAddedColor\":\"#40a02b\",\"gitlens.graphChangesColumnDeletedColor\":\"#d20f39\",\"gitlens.graphLane10Color\":\"#ea76cb\",\"gitlens.graphLane1Color\":\"#8839ef\",\"gitlens.graphLane2Color\":\"#df8e1d\",\"gitlens.graphLane3Color\":\"#1e66f5\",\"gitlens.graphLane4Color\":\"#dd7878\",\"gitlens.graphLane5Color\":\"#40a02b\",\"gitlens.graphLane6Color\":\"#7287fd\",\"gitlens.graphLane7Color\":\"#dc8a78\",\"gitlens.graphLane8Color\":\"#d20f39\",\"gitlens.graphLane9Color\":\"#179299\",\"gitlens.graphMinimapMarkerHeadColor\":\"#40a02b\",\"gitlens.graphMinimapMarkerHighlightsColor\":\"#df8e1d\",\"gitlens.graphMinimapMarkerLocalBranchesColor\":\"#1e66f5\",\"gitlens.graphMinimapMarkerRemoteBranchesColor\":\"#0b57ef\",\"gitlens.graphMinimapMarkerStashesColor\":\"#8839ef\",\"gitlens.graphMinimapMarkerTagsColor\":\"#dd7878\",\"gitlens.graphMinimapMarkerUpstreamColor\":\"#388c26\",\"gitlens.graphScrollMarkerHeadColor\":\"#40a02b\",\"gitlens.graphScrollMarkerHighlightsColor\":\"#df8e1d\",\"gitlens.graphScrollMarkerLocalBranchesColor\":\"#1e66f5\",\"gitlens.graphScrollMarkerRemoteBranchesColor\":\"#0b57ef\",\"gitlens.graphScrollMarkerStashesColor\":\"#8839ef\",\"gitlens.graphScrollMarkerTagsColor\":\"#dd7878\",\"gitlens.graphScrollMarkerUpstreamColor\":\"#388c26\",\"gitlens.gutterBackgroundColor\":\"#ccd0da4d\",\"gitlens.gutterForegroundColor\":\"#4c4f69\",\"gitlens.gutterUncommittedForegroundColor\":\"#8839ef\",\"gitlens.lineHighlightBackgroundColor\":\"#8839ef26\",\"gitlens.lineHighlightOverviewRulerColor\":\"#8839efcc\",\"gitlens.mergedPullRequestIconColor\":\"#8839ef\",\"gitlens.openAutolinkedIssueIconColor\":\"#40a02b\",\"gitlens.openPullRequestIconColor\":\"#40a02b\",\"gitlens.trailingLineBackgroundColor\":\"#00000000\",\"gitlens.trailingLineForegroundColor\":\"#4c4f694d\",\"gitlens.unpublishedChangesIconColor\":\"#40a02b\",\"gitlens.unpublishedCommitIconColor\":\"#40a02b\",\"gitlens.unpulledChangesIconColor\":\"#fe640b\",\"icon.foreground\":\"#8839ef\",\"input.background\":\"#ccd0da\",\"input.border\":\"#00000000\",\"input.foreground\":\"#4c4f69\",\"input.placeholderForeground\":\"#4c4f6973\",\"inputOption.activeBackground\":\"#acb0be\",\"inputOption.activeBorder\":\"#8839ef\",\"inputOption.activeForeground\":\"#4c4f69\",\"inputValidation.errorBackground\":\"#d20f39\",\"inputValidation.errorBorder\":\"#dce0e833\",\"inputValidation.errorForeground\":\"#dce0e8\",\"inputValidation.infoBackground\":\"#1e66f5\",\"inputValidation.infoBorder\":\"#dce0e833\",\"inputValidation.infoForeground\":\"#dce0e8\",\"inputValidation.warningBackground\":\"#fe640b\",\"inputValidation.warningBorder\":\"#dce0e833\",\"inputValidation.warningForeground\":\"#dce0e8\",\"issues.closed\":\"#8839ef\",\"issues.newIssueDecoration\":\"#dc8a78\",\"issues.open\":\"#40a02b\",\"list.activeSelectionBackground\":\"#ccd0da\",\"list.activeSelectionForeground\":\"#4c4f69\",\"list.dropBackground\":\"#8839ef33\",\"list.focusAndSelectionBackground\":\"#bcc0cc\",\"list.focusBackground\":\"#ccd0da\",\"list.focusForeground\":\"#4c4f69\",\"list.focusOutline\":\"#00000000\",\"list.highlightForeground\":\"#8839ef\",\"list.hoverBackground\":\"#ccd0da80\",\"list.hoverForeground\":\"#4c4f69\",\"list.inactiveSelectionBackground\":\"#ccd0da\",\"list.inactiveSelectionForeground\":\"#4c4f69\",\"list.warningForeground\":\"#fe640b\",\"listFilterWidget.background\":\"#bcc0cc\",\"listFilterWidget.noMatchesOutline\":\"#d20f39\",\"listFilterWidget.outline\":\"#00000000\",\"menu.background\":\"#eff1f5\",\"menu.border\":\"#eff1f580\",\"menu.foreground\":\"#4c4f69\",\"menu.selectionBackground\":\"#acb0be\",\"menu.selectionBorder\":\"#00000000\",\"menu.selectionForeground\":\"#4c4f69\",\"menu.separatorBackground\":\"#acb0be\",\"menubar.selectionBackground\":\"#bcc0cc\",\"menubar.selectionForeground\":\"#4c4f69\",\"merge.commonContentBackground\":\"#bcc0cc\",\"merge.commonHeaderBackground\":\"#acb0be\",\"merge.currentContentBackground\":\"#40a02b33\",\"merge.currentHeaderBackground\":\"#40a02b66\",\"merge.incomingContentBackground\":\"#1e66f533\",\"merge.incomingHeaderBackground\":\"#1e66f566\",\"minimap.background\":\"#e6e9ef80\",\"minimap.errorHighlight\":\"#d20f39bf\",\"minimap.findMatchHighlight\":\"#04a5e54d\",\"minimap.selectionHighlight\":\"#acb0bebf\",\"minimap.selectionOccurrenceHighlight\":\"#acb0bebf\",\"minimap.warningHighlight\":\"#fe640bbf\",\"minimapGutter.addedBackground\":\"#40a02bbf\",\"minimapGutter.deletedBackground\":\"#d20f39bf\",\"minimapGutter.modifiedBackground\":\"#df8e1dbf\",\"minimapSlider.activeBackground\":\"#8839ef99\",\"minimapSlider.background\":\"#8839ef33\",\"minimapSlider.hoverBackground\":\"#8839ef66\",\"notificationCenter.border\":\"#8839ef\",\"notificationCenterHeader.background\":\"#e6e9ef\",\"notificationCenterHeader.foreground\":\"#4c4f69\",\"notificationLink.foreground\":\"#1e66f5\",\"notificationToast.border\":\"#8839ef\",\"notifications.background\":\"#e6e9ef\",\"notifications.border\":\"#8839ef\",\"notifications.foreground\":\"#4c4f69\",\"notificationsErrorIcon.foreground\":\"#d20f39\",\"notificationsInfoIcon.foreground\":\"#1e66f5\",\"notificationsWarningIcon.foreground\":\"#fe640b\",\"panel.background\":\"#eff1f5\",\"panel.border\":\"#acb0be\",\"panelSection.border\":\"#acb0be\",\"panelSection.dropBackground\":\"#8839ef33\",\"panelTitle.activeBorder\":\"#8839ef\",\"panelTitle.activeForeground\":\"#4c4f69\",\"panelTitle.inactiveForeground\":\"#6c6f85\",\"peekView.border\":\"#8839ef\",\"peekViewEditor.background\":\"#e6e9ef\",\"peekViewEditor.matchHighlightBackground\":\"#04a5e54d\",\"peekViewEditor.matchHighlightBorder\":\"#00000000\",\"peekViewEditorGutter.background\":\"#e6e9ef\",\"peekViewResult.background\":\"#e6e9ef\",\"peekViewResult.fileForeground\":\"#4c4f69\",\"peekViewResult.lineForeground\":\"#4c4f69\",\"peekViewResult.matchHighlightBackground\":\"#04a5e54d\",\"peekViewResult.selectionBackground\":\"#ccd0da\",\"peekViewResult.selectionForeground\":\"#4c4f69\",\"peekViewTitle.background\":\"#eff1f5\",\"peekViewTitleDescription.foreground\":\"#5c5f77b3\",\"peekViewTitleLabel.foreground\":\"#4c4f69\",\"pickerGroup.border\":\"#8839ef\",\"pickerGroup.foreground\":\"#8839ef\",\"problemsErrorIcon.foreground\":\"#d20f39\",\"problemsInfoIcon.foreground\":\"#1e66f5\",\"problemsWarningIcon.foreground\":\"#fe640b\",\"progressBar.background\":\"#8839ef\",\"pullRequests.closed\":\"#d20f39\",\"pullRequests.draft\":\"#7c7f93\",\"pullRequests.merged\":\"#8839ef\",\"pullRequests.notification\":\"#4c4f69\",\"pullRequests.open\":\"#40a02b\",\"sash.hoverBorder\":\"#8839ef\",\"scrollbar.shadow\":\"#dce0e8\",\"scrollbarSlider.activeBackground\":\"#ccd0da66\",\"scrollbarSlider.background\":\"#acb0be80\",\"scrollbarSlider.hoverBackground\":\"#9ca0b0\",\"selection.background\":\"#8839ef66\",\"settings.dropdownBackground\":\"#bcc0cc\",\"settings.dropdownListBorder\":\"#00000000\",\"settings.focusedRowBackground\":\"#acb0be33\",\"settings.headerForeground\":\"#4c4f69\",\"settings.modifiedItemIndicator\":\"#8839ef\",\"settings.numberInputBackground\":\"#bcc0cc\",\"settings.numberInputBorder\":\"#00000000\",\"settings.textInputBackground\":\"#bcc0cc\",\"settings.textInputBorder\":\"#00000000\",\"sideBar.background\":\"#e6e9ef\",\"sideBar.border\":\"#00000000\",\"sideBar.dropBackground\":\"#8839ef33\",\"sideBar.foreground\":\"#4c4f69\",\"sideBarSectionHeader.background\":\"#e6e9ef\",\"sideBarSectionHeader.foreground\":\"#4c4f69\",\"sideBarTitle.foreground\":\"#8839ef\",\"statusBar.background\":\"#dce0e8\",\"statusBar.border\":\"#00000000\",\"statusBar.debuggingBackground\":\"#fe640b\",\"statusBar.debuggingBorder\":\"#00000000\",\"statusBar.debuggingForeground\":\"#dce0e8\",\"statusBar.foreground\":\"#4c4f69\",\"statusBar.noFolderBackground\":\"#dce0e8\",\"statusBar.noFolderBorder\":\"#00000000\",\"statusBar.noFolderForeground\":\"#4c4f69\",\"statusBarItem.activeBackground\":\"#acb0be66\",\"statusBarItem.errorBackground\":\"#00000000\",\"statusBarItem.errorForeground\":\"#d20f39\",\"statusBarItem.hoverBackground\":\"#acb0be33\",\"statusBarItem.prominentBackground\":\"#00000000\",\"statusBarItem.prominentForeground\":\"#8839ef\",\"statusBarItem.prominentHoverBackground\":\"#acb0be33\",\"statusBarItem.remoteBackground\":\"#1e66f5\",\"statusBarItem.remoteForeground\":\"#dce0e8\",\"statusBarItem.warningBackground\":\"#00000000\",\"statusBarItem.warningForeground\":\"#fe640b\",\"symbolIcon.arrayForeground\":\"#fe640b\",\"symbolIcon.booleanForeground\":\"#8839ef\",\"symbolIcon.classForeground\":\"#df8e1d\",\"symbolIcon.colorForeground\":\"#ea76cb\",\"symbolIcon.constantForeground\":\"#fe640b\",\"symbolIcon.constructorForeground\":\"#7287fd\",\"symbolIcon.enumeratorForeground\":\"#df8e1d\",\"symbolIcon.enumeratorMemberForeground\":\"#df8e1d\",\"symbolIcon.eventForeground\":\"#ea76cb\",\"symbolIcon.fieldForeground\":\"#4c4f69\",\"symbolIcon.fileForeground\":\"#8839ef\",\"symbolIcon.folderForeground\":\"#8839ef\",\"symbolIcon.functionForeground\":\"#1e66f5\",\"symbolIcon.interfaceForeground\":\"#df8e1d\",\"symbolIcon.keyForeground\":\"#179299\",\"symbolIcon.keywordForeground\":\"#8839ef\",\"symbolIcon.methodForeground\":\"#1e66f5\",\"symbolIcon.moduleForeground\":\"#4c4f69\",\"symbolIcon.namespaceForeground\":\"#df8e1d\",\"symbolIcon.nullForeground\":\"#e64553\",\"symbolIcon.numberForeground\":\"#fe640b\",\"symbolIcon.objectForeground\":\"#df8e1d\",\"symbolIcon.operatorForeground\":\"#179299\",\"symbolIcon.packageForeground\":\"#dd7878\",\"symbolIcon.propertyForeground\":\"#e64553\",\"symbolIcon.referenceForeground\":\"#df8e1d\",\"symbolIcon.snippetForeground\":\"#dd7878\",\"symbolIcon.stringForeground\":\"#40a02b\",\"symbolIcon.structForeground\":\"#179299\",\"symbolIcon.textForeground\":\"#4c4f69\",\"symbolIcon.typeParameterForeground\":\"#e64553\",\"symbolIcon.unitForeground\":\"#4c4f69\",\"symbolIcon.variableForeground\":\"#4c4f69\",\"tab.activeBackground\":\"#eff1f5\",\"tab.activeBorder\":\"#00000000\",\"tab.activeBorderTop\":\"#8839ef\",\"tab.activeForeground\":\"#8839ef\",\"tab.activeModifiedBorder\":\"#df8e1d\",\"tab.border\":\"#e6e9ef\",\"tab.hoverBackground\":\"#ffffff\",\"tab.hoverBorder\":\"#00000000\",\"tab.hoverForeground\":\"#8839ef\",\"tab.inactiveBackground\":\"#e6e9ef\",\"tab.inactiveForeground\":\"#9ca0b0\",\"tab.inactiveModifiedBorder\":\"#df8e1d4d\",\"tab.lastPinnedBorder\":\"#8839ef\",\"tab.unfocusedActiveBackground\":\"#e6e9ef\",\"tab.unfocusedActiveBorder\":\"#00000000\",\"tab.unfocusedActiveBorderTop\":\"#8839ef4d\",\"tab.unfocusedInactiveBackground\":\"#d6dbe5\",\"table.headerBackground\":\"#ccd0da\",\"table.headerForeground\":\"#4c4f69\",\"terminal.ansiBlack\":\"#5c5f77\",\"terminal.ansiBlue\":\"#1e66f5\",\"terminal.ansiBrightBlack\":\"#6c6f85\",\"terminal.ansiBrightBlue\":\"#456eff\",\"terminal.ansiBrightCyan\":\"#2d9fa8\",\"terminal.ansiBrightGreen\":\"#49af3d\",\"terminal.ansiBrightMagenta\":\"#fe85d8\",\"terminal.ansiBrightRed\":\"#de293e\",\"terminal.ansiBrightWhite\":\"#bcc0cc\",\"terminal.ansiBrightYellow\":\"#eea02d\",\"terminal.ansiCyan\":\"#179299\",\"terminal.ansiGreen\":\"#40a02b\",\"terminal.ansiMagenta\":\"#ea76cb\",\"terminal.ansiRed\":\"#d20f39\",\"terminal.ansiWhite\":\"#acb0be\",\"terminal.ansiYellow\":\"#df8e1d\",\"terminal.border\":\"#acb0be\",\"terminal.dropBackground\":\"#8839ef33\",\"terminal.foreground\":\"#4c4f69\",\"terminal.inactiveSelectionBackground\":\"#acb0be80\",\"terminal.selectionBackground\":\"#acb0be\",\"terminal.tab.activeBorder\":\"#8839ef\",\"terminalCommandDecoration.defaultBackground\":\"#acb0be\",\"terminalCommandDecoration.errorBackground\":\"#d20f39\",\"terminalCommandDecoration.successBackground\":\"#40a02b\",\"terminalCursor.background\":\"#eff1f5\",\"terminalCursor.foreground\":\"#dc8a78\",\"textBlockQuote.background\":\"#e6e9ef\",\"textBlockQuote.border\":\"#dce0e8\",\"textCodeBlock.background\":\"#eff1f5\",\"textLink.activeForeground\":\"#04a5e5\",\"textLink.foreground\":\"#1e66f5\",\"textPreformat.foreground\":\"#4c4f69\",\"textSeparator.foreground\":\"#8839ef\",\"titleBar.activeBackground\":\"#dce0e8\",\"titleBar.activeForeground\":\"#4c4f69\",\"titleBar.border\":\"#00000000\",\"titleBar.inactiveBackground\":\"#dce0e8\",\"titleBar.inactiveForeground\":\"#4c4f6980\",\"tree.inactiveIndentGuidesStroke\":\"#bcc0cc\",\"tree.indentGuidesStroke\":\"#7c7f93\",\"walkThrough.embeddedEditorBackground\":\"#eff1f54d\",\"welcomePage.progress.background\":\"#dce0e8\",\"welcomePage.progress.foreground\":\"#8839ef\",\"welcomePage.tileBackground\":\"#e6e9ef\",\"widget.shadow\":\"#e6e9ef80\",\"window.activeBorder\":\"#00000000\",\"window.inactiveBorder\":\"#00000000\"},\"displayName\":\"Catppuccin Latte\",\"name\":\"catppuccin-latte\",\"semanticHighlighting\":true,\"semanticTokenColors\":{\"boolean\":{\"foreground\":\"#fe640b\"},\"builtinAttribute.attribute.library:rust\":{\"foreground\":\"#1e66f5\"},\"class.builtin:python\":{\"foreground\":\"#8839ef\"},\"class:python\":{\"foreground\":\"#df8e1d\"},\"constant.builtin.readonly:nix\":{\"foreground\":\"#8839ef\"},\"enumMember\":{\"foreground\":\"#179299\"},\"function.decorator:python\":{\"foreground\":\"#fe640b\"},\"generic.attribute:rust\":{\"foreground\":\"#4c4f69\"},\"heading\":{\"foreground\":\"#d20f39\"},\"number\":{\"foreground\":\"#fe640b\"},\"pol\":{\"foreground\":\"#dd7878\"},\"property.readonly:javascript\":{\"foreground\":\"#4c4f69\"},\"property.readonly:javascriptreact\":{\"foreground\":\"#4c4f69\"},\"property.readonly:typescript\":{\"foreground\":\"#4c4f69\"},\"property.readonly:typescriptreact\":{\"foreground\":\"#4c4f69\"},\"selfKeyword\":{\"foreground\":\"#d20f39\"},\"text.emph\":{\"fontStyle\":\"italic\",\"foreground\":\"#d20f39\"},\"text.math\":{\"foreground\":\"#dd7878\"},\"text.strong\":{\"fontStyle\":\"bold\",\"foreground\":\"#d20f39\"},\"tomlArrayKey\":{\"fontStyle\":\"\",\"foreground\":\"#1e66f5\"},\"tomlTableKey\":{\"fontStyle\":\"\",\"foreground\":\"#1e66f5\"},\"type.defaultLibrary:go\":{\"foreground\":\"#8839ef\"},\"variable.defaultLibrary\":{\"foreground\":\"#e64553\"},\"variable.readonly.defaultLibrary:go\":{\"foreground\":\"#8839ef\"},\"variable.readonly:javascript\":{\"foreground\":\"#4c4f69\"},\"variable.readonly:javascriptreact\":{\"foreground\":\"#4c4f69\"},\"variable.readonly:scala\":{\"foreground\":\"#4c4f69\"},\"variable.readonly:typescript\":{\"foreground\":\"#4c4f69\"},\"variable.readonly:typescriptreact\":{\"foreground\":\"#4c4f69\"},\"variable.typeHint:python\":{\"foreground\":\"#df8e1d\"}},\"tokenColors\":[{\"scope\":[\"text\",\"source\",\"variable.other.readwrite\",\"punctuation.definition.variable\"],\"settings\":{\"foreground\":\"#4c4f69\"}},{\"scope\":\"punctuation\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#7c7f93\"}},{\"scope\":[\"comment\",\"punctuation.definition.comment\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#9ca0b0\"}},{\"scope\":[\"string\",\"punctuation.definition.string\"],\"settings\":{\"foreground\":\"#40a02b\"}},{\"scope\":\"constant.character.escape\",\"settings\":{\"foreground\":\"#ea76cb\"}},{\"scope\":[\"constant.numeric\",\"variable.other.constant\",\"entity.name.constant\",\"constant.language.boolean\",\"constant.language.false\",\"constant.language.true\",\"keyword.other.unit.user-defined\",\"keyword.other.unit.suffix.floating-point\"],\"settings\":{\"foreground\":\"#fe640b\"}},{\"scope\":[\"keyword\",\"keyword.operator.word\",\"keyword.operator.new\",\"variable.language.super\",\"support.type.primitive\",\"storage.type\",\"storage.modifier\",\"punctuation.definition.keyword\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#8839ef\"}},{\"scope\":\"entity.name.tag.documentation\",\"settings\":{\"foreground\":\"#8839ef\"}},{\"scope\":[\"keyword.operator\",\"punctuation.accessor\",\"punctuation.definition.generic\",\"meta.function.closure punctuation.section.parameters\",\"punctuation.definition.tag\",\"punctuation.separator.key-value\"],\"settings\":{\"foreground\":\"#179299\"}},{\"scope\":[\"entity.name.function\",\"meta.function-call.method\",\"support.function\",\"support.function.misc\",\"variable.function\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#1e66f5\"}},{\"scope\":[\"entity.name.class\",\"entity.other.inherited-class\",\"support.class\",\"meta.function-call.constructor\",\"entity.name.struct\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#df8e1d\"}},{\"scope\":\"entity.name.enum\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#df8e1d\"}},{\"scope\":[\"meta.enum variable.other.readwrite\",\"variable.other.enummember\"],\"settings\":{\"foreground\":\"#179299\"}},{\"scope\":\"meta.property.object\",\"settings\":{\"foreground\":\"#179299\"}},{\"scope\":[\"meta.type\",\"meta.type-alias\",\"support.type\",\"entity.name.type\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#df8e1d\"}},{\"scope\":[\"meta.annotation variable.function\",\"meta.annotation variable.annotation.function\",\"meta.annotation punctuation.definition.annotation\",\"meta.decorator\",\"punctuation.decorator\"],\"settings\":{\"foreground\":\"#fe640b\"}},{\"scope\":[\"variable.parameter\",\"meta.function.parameters\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#e64553\"}},{\"scope\":[\"constant.language\",\"support.function.builtin\"],\"settings\":{\"foreground\":\"#d20f39\"}},{\"scope\":\"entity.other.attribute-name.documentation\",\"settings\":{\"foreground\":\"#d20f39\"}},{\"scope\":[\"keyword.control.directive\",\"punctuation.definition.directive\"],\"settings\":{\"foreground\":\"#df8e1d\"}},{\"scope\":\"punctuation.definition.typeparameters\",\"settings\":{\"foreground\":\"#04a5e5\"}},{\"scope\":\"entity.name.namespace\",\"settings\":{\"foreground\":\"#df8e1d\"}},{\"scope\":\"support.type.property-name.css\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#1e66f5\"}},{\"scope\":[\"variable.language.this\",\"variable.language.this punctuation.definition.variable\"],\"settings\":{\"foreground\":\"#d20f39\"}},{\"scope\":\"variable.object.property\",\"settings\":{\"foreground\":\"#4c4f69\"}},{\"scope\":[\"string.template variable\",\"string variable\"],\"settings\":{\"foreground\":\"#4c4f69\"}},{\"scope\":\"keyword.operator.new\",\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":\"storage.modifier.specifier.extern.cpp\",\"settings\":{\"foreground\":\"#8839ef\"}},{\"scope\":[\"entity.name.scope-resolution.template.call.cpp\",\"entity.name.scope-resolution.parameter.cpp\",\"entity.name.scope-resolution.cpp\",\"entity.name.scope-resolution.function.definition.cpp\"],\"settings\":{\"foreground\":\"#df8e1d\"}},{\"scope\":\"storage.type.class.doxygen\",\"settings\":{\"fontStyle\":\"\"}},{\"scope\":[\"storage.modifier.reference.cpp\"],\"settings\":{\"foreground\":\"#179299\"}},{\"scope\":\"meta.interpolation.cs\",\"settings\":{\"foreground\":\"#4c4f69\"}},{\"scope\":\"comment.block.documentation.cs\",\"settings\":{\"foreground\":\"#4c4f69\"}},{\"scope\":[\"source.css entity.other.attribute-name.class.css\",\"entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css\"],\"settings\":{\"foreground\":\"#df8e1d\"}},{\"scope\":\"punctuation.separator.operator.css\",\"settings\":{\"foreground\":\"#179299\"}},{\"scope\":\"source.css entity.other.attribute-name.pseudo-class\",\"settings\":{\"foreground\":\"#179299\"}},{\"scope\":\"source.css constant.other.unicode-range\",\"settings\":{\"foreground\":\"#fe640b\"}},{\"scope\":\"source.css variable.parameter.url\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#40a02b\"}},{\"scope\":[\"support.type.vendored.property-name\"],\"settings\":{\"foreground\":\"#04a5e5\"}},{\"scope\":[\"source.css meta.property-value variable\",\"source.css meta.property-value variable.other.less\",\"source.css meta.property-value variable.other.less punctuation.definition.variable.less\",\"meta.definition.variable.scss\"],\"settings\":{\"foreground\":\"#e64553\"}},{\"scope\":[\"source.css meta.property-list variable\",\"meta.property-list variable.other.less\",\"meta.property-list variable.other.less punctuation.definition.variable.less\"],\"settings\":{\"foreground\":\"#1e66f5\"}},{\"scope\":\"keyword.other.unit.percentage.css\",\"settings\":{\"foreground\":\"#fe640b\"}},{\"scope\":\"source.css meta.attribute-selector\",\"settings\":{\"foreground\":\"#40a02b\"}},{\"scope\":[\"keyword.other.definition.ini\",\"punctuation.support.type.property-name.json\",\"support.type.property-name.json\",\"punctuation.support.type.property-name.toml\",\"support.type.property-name.toml\",\"entity.name.tag.yaml\",\"punctuation.support.type.property-name.yaml\",\"support.type.property-name.yaml\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#1e66f5\"}},{\"scope\":[\"constant.language.json\",\"constant.language.yaml\"],\"settings\":{\"foreground\":\"#fe640b\"}},{\"scope\":[\"entity.name.type.anchor.yaml\",\"variable.other.alias.yaml\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#df8e1d\"}},{\"scope\":[\"support.type.property-name.table\",\"entity.name.section.group-title.ini\"],\"settings\":{\"foreground\":\"#df8e1d\"}},{\"scope\":\"constant.other.time.datetime.offset.toml\",\"settings\":{\"foreground\":\"#ea76cb\"}},{\"scope\":[\"punctuation.definition.anchor.yaml\",\"punctuation.definition.alias.yaml\"],\"settings\":{\"foreground\":\"#ea76cb\"}},{\"scope\":\"entity.other.document.begin.yaml\",\"settings\":{\"foreground\":\"#ea76cb\"}},{\"scope\":\"markup.changed.diff\",\"settings\":{\"foreground\":\"#fe640b\"}},{\"scope\":[\"meta.diff.header.from-file\",\"meta.diff.header.to-file\",\"punctuation.definition.from-file.diff\",\"punctuation.definition.to-file.diff\"],\"settings\":{\"foreground\":\"#1e66f5\"}},{\"scope\":\"markup.inserted.diff\",\"settings\":{\"foreground\":\"#40a02b\"}},{\"scope\":\"markup.deleted.diff\",\"settings\":{\"foreground\":\"#d20f39\"}},{\"scope\":[\"variable.other.env\"],\"settings\":{\"foreground\":\"#1e66f5\"}},{\"scope\":[\"string.quoted variable.other.env\"],\"settings\":{\"foreground\":\"#4c4f69\"}},{\"scope\":\"support.function.builtin.gdscript\",\"settings\":{\"foreground\":\"#1e66f5\"}},{\"scope\":\"constant.language.gdscript\",\"settings\":{\"foreground\":\"#fe640b\"}},{\"scope\":\"comment meta.annotation.go\",\"settings\":{\"foreground\":\"#e64553\"}},{\"scope\":\"comment meta.annotation.parameters.go\",\"settings\":{\"foreground\":\"#fe640b\"}},{\"scope\":\"constant.language.go\",\"settings\":{\"foreground\":\"#fe640b\"}},{\"scope\":\"variable.graphql\",\"settings\":{\"foreground\":\"#4c4f69\"}},{\"scope\":\"string.unquoted.alias.graphql\",\"settings\":{\"foreground\":\"#dd7878\"}},{\"scope\":\"constant.character.enum.graphql\",\"settings\":{\"foreground\":\"#179299\"}},{\"scope\":\"meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql\",\"settings\":{\"foreground\":\"#dd7878\"}},{\"scope\":[\"keyword.other.doctype\",\"meta.tag.sgml.doctype punctuation.definition.tag\",\"meta.tag.metadata.doctype entity.name.tag\",\"meta.tag.metadata.doctype punctuation.definition.tag\"],\"settings\":{\"foreground\":\"#8839ef\"}},{\"scope\":[\"entity.name.tag\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#1e66f5\"}},{\"scope\":[\"text.html constant.character.entity\",\"text.html constant.character.entity punctuation\",\"constant.character.entity.xml\",\"constant.character.entity.xml punctuation\",\"constant.character.entity.js.jsx\",\"constant.charactger.entity.js.jsx punctuation\",\"constant.character.entity.tsx\",\"constant.character.entity.tsx punctuation\"],\"settings\":{\"foreground\":\"#d20f39\"}},{\"scope\":[\"entity.other.attribute-name\"],\"settings\":{\"foreground\":\"#df8e1d\"}},{\"scope\":[\"support.class.component\",\"support.class.component.jsx\",\"support.class.component.tsx\",\"support.class.component.vue\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#ea76cb\"}},{\"scope\":[\"punctuation.definition.annotation\",\"storage.type.annotation\"],\"settings\":{\"foreground\":\"#fe640b\"}},{\"scope\":\"constant.other.enum.java\",\"settings\":{\"foreground\":\"#179299\"}},{\"scope\":\"storage.modifier.import.java\",\"settings\":{\"foreground\":\"#4c4f69\"}},{\"scope\":\"comment.block.javadoc.java keyword.other.documentation.javadoc.java\",\"settings\":{\"fontStyle\":\"\"}},{\"scope\":\"meta.export variable.other.readwrite.js\",\"settings\":{\"foreground\":\"#e64553\"}},{\"scope\":[\"variable.other.constant.js\",\"variable.other.constant.ts\",\"variable.other.property.js\",\"variable.other.property.ts\"],\"settings\":{\"foreground\":\"#4c4f69\"}},{\"scope\":[\"variable.other.jsdoc\",\"comment.block.documentation variable.other\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#e64553\"}},{\"scope\":\"storage.type.class.jsdoc\",\"settings\":{\"fontStyle\":\"\"}},{\"scope\":\"support.type.object.console.js\",\"settings\":{\"foreground\":\"#4c4f69\"}},{\"scope\":[\"support.constant.node\",\"support.type.object.module.js\"],\"settings\":{\"foreground\":\"#8839ef\"}},{\"scope\":\"storage.modifier.implements\",\"settings\":{\"foreground\":\"#8839ef\"}},{\"scope\":[\"constant.language.null.js\",\"constant.language.null.ts\",\"constant.language.undefined.js\",\"constant.language.undefined.ts\",\"support.type.builtin.ts\"],\"settings\":{\"foreground\":\"#8839ef\"}},{\"scope\":\"variable.parameter.generic\",\"settings\":{\"foreground\":\"#df8e1d\"}},{\"scope\":[\"keyword.declaration.function.arrow.js\",\"storage.type.function.arrow.ts\"],\"settings\":{\"foreground\":\"#179299\"}},{\"scope\":\"punctuation.decorator.ts\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#1e66f5\"}},{\"scope\":[\"keyword.operator.expression.in.js\",\"keyword.operator.expression.in.ts\",\"keyword.operator.expression.infer.ts\",\"keyword.operator.expression.instanceof.js\",\"keyword.operator.expression.instanceof.ts\",\"keyword.operator.expression.is\",\"keyword.operator.expression.keyof.ts\",\"keyword.operator.expression.of.js\",\"keyword.operator.expression.of.ts\",\"keyword.operator.expression.typeof.ts\"],\"settings\":{\"foreground\":\"#8839ef\"}},{\"scope\":\"support.function.macro.julia\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#179299\"}},{\"scope\":\"constant.language.julia\",\"settings\":{\"foreground\":\"#fe640b\"}},{\"scope\":\"constant.other.symbol.julia\",\"settings\":{\"foreground\":\"#e64553\"}},{\"scope\":\"text.tex keyword.control.preamble\",\"settings\":{\"foreground\":\"#179299\"}},{\"scope\":\"text.tex support.function.be\",\"settings\":{\"foreground\":\"#04a5e5\"}},{\"scope\":\"constant.other.general.math.tex\",\"settings\":{\"foreground\":\"#dd7878\"}},{\"scope\":\"variable.language.liquid\",\"settings\":{\"foreground\":\"#ea76cb\"}},{\"scope\":\"comment.line.double-dash.documentation.lua storage.type.annotation.lua\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#8839ef\"}},{\"scope\":[\"comment.line.double-dash.documentation.lua entity.name.variable.lua\",\"comment.line.double-dash.documentation.lua variable.lua\"],\"settings\":{\"foreground\":\"#4c4f69\"}},{\"scope\":[\"heading.1.markdown punctuation.definition.heading.markdown\",\"heading.1.markdown\",\"heading.1.quarto punctuation.definition.heading.quarto\",\"heading.1.quarto\",\"markup.heading.atx.1.mdx\",\"markup.heading.atx.1.mdx punctuation.definition.heading.mdx\",\"markup.heading.setext.1.markdown\",\"markup.heading.heading-0.asciidoc\"],\"settings\":{\"foreground\":\"#d20f39\"}},{\"scope\":[\"heading.2.markdown punctuation.definition.heading.markdown\",\"heading.2.markdown\",\"heading.2.quarto punctuation.definition.heading.quarto\",\"heading.2.quarto\",\"markup.heading.atx.2.mdx\",\"markup.heading.atx.2.mdx punctuation.definition.heading.mdx\",\"markup.heading.setext.2.markdown\",\"markup.heading.heading-1.asciidoc\"],\"settings\":{\"foreground\":\"#fe640b\"}},{\"scope\":[\"heading.3.markdown punctuation.definition.heading.markdown\",\"heading.3.markdown\",\"heading.3.quarto punctuation.definition.heading.quarto\",\"heading.3.quarto\",\"markup.heading.atx.3.mdx\",\"markup.heading.atx.3.mdx punctuation.definition.heading.mdx\",\"markup.heading.heading-2.asciidoc\"],\"settings\":{\"foreground\":\"#df8e1d\"}},{\"scope\":[\"heading.4.markdown punctuation.definition.heading.markdown\",\"heading.4.markdown\",\"heading.4.quarto punctuation.definition.heading.quarto\",\"heading.4.quarto\",\"markup.heading.atx.4.mdx\",\"markup.heading.atx.4.mdx punctuation.definition.heading.mdx\",\"markup.heading.heading-3.asciidoc\"],\"settings\":{\"foreground\":\"#40a02b\"}},{\"scope\":[\"heading.5.markdown punctuation.definition.heading.markdown\",\"heading.5.markdown\",\"heading.5.quarto punctuation.definition.heading.quarto\",\"heading.5.quarto\",\"markup.heading.atx.5.mdx\",\"markup.heading.atx.5.mdx punctuation.definition.heading.mdx\",\"markup.heading.heading-4.asciidoc\"],\"settings\":{\"foreground\":\"#1e66f5\"}},{\"scope\":[\"heading.6.markdown punctuation.definition.heading.markdown\",\"heading.6.markdown\",\"heading.6.quarto punctuation.definition.heading.quarto\",\"heading.6.quarto\",\"markup.heading.atx.6.mdx\",\"markup.heading.atx.6.mdx punctuation.definition.heading.mdx\",\"markup.heading.heading-5.asciidoc\"],\"settings\":{\"foreground\":\"#8839ef\"}},{\"scope\":\"markup.bold\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#d20f39\"}},{\"scope\":\"markup.italic\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#d20f39\"}},{\"scope\":\"markup.strikethrough\",\"settings\":{\"fontStyle\":\"strikethrough\",\"foreground\":\"#6c6f85\"}},{\"scope\":[\"punctuation.definition.link\",\"markup.underline.link\"],\"settings\":{\"foreground\":\"#1e66f5\"}},{\"scope\":[\"text.html.markdown punctuation.definition.link.title\",\"text.html.quarto punctuation.definition.link.title\",\"string.other.link.title.markdown\",\"string.other.link.title.quarto\",\"markup.link\",\"punctuation.definition.constant.markdown\",\"punctuation.definition.constant.quarto\",\"constant.other.reference.link.markdown\",\"constant.other.reference.link.quarto\",\"markup.substitution.attribute-reference\"],\"settings\":{\"foreground\":\"#7287fd\"}},{\"scope\":[\"punctuation.definition.raw.markdown\",\"punctuation.definition.raw.quarto\",\"markup.inline.raw.string.markdown\",\"markup.inline.raw.string.quarto\",\"markup.raw.block.markdown\",\"markup.raw.block.quarto\"],\"settings\":{\"foreground\":\"#40a02b\"}},{\"scope\":\"fenced_code.block.language\",\"settings\":{\"foreground\":\"#04a5e5\"}},{\"scope\":[\"markup.fenced_code.block punctuation.definition\",\"markup.raw support.asciidoc\"],\"settings\":{\"foreground\":\"#7c7f93\"}},{\"scope\":[\"markup.quote\",\"punctuation.definition.quote.begin\"],\"settings\":{\"foreground\":\"#ea76cb\"}},{\"scope\":\"meta.separator.markdown\",\"settings\":{\"foreground\":\"#179299\"}},{\"scope\":[\"punctuation.definition.list.begin.markdown\",\"punctuation.definition.list.begin.quarto\",\"markup.list.bullet\"],\"settings\":{\"foreground\":\"#179299\"}},{\"scope\":\"markup.heading.quarto\",\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":[\"entity.other.attribute-name.multipart.nix\",\"entity.other.attribute-name.single.nix\"],\"settings\":{\"foreground\":\"#1e66f5\"}},{\"scope\":\"variable.parameter.name.nix\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#4c4f69\"}},{\"scope\":\"meta.embedded variable.parameter.name.nix\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#7287fd\"}},{\"scope\":\"string.unquoted.path.nix\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#ea76cb\"}},{\"scope\":[\"support.attribute.builtin\",\"meta.attribute.php\"],\"settings\":{\"foreground\":\"#df8e1d\"}},{\"scope\":\"meta.function.parameters.php punctuation.definition.variable.php\",\"settings\":{\"foreground\":\"#e64553\"}},{\"scope\":\"constant.language.php\",\"settings\":{\"foreground\":\"#8839ef\"}},{\"scope\":\"text.html.php support.function\",\"settings\":{\"foreground\":\"#04a5e5\"}},{\"scope\":\"keyword.other.phpdoc.php\",\"settings\":{\"fontStyle\":\"\"}},{\"scope\":[\"support.variable.magic.python\",\"meta.function-call.arguments.python\"],\"settings\":{\"foreground\":\"#4c4f69\"}},{\"scope\":[\"support.function.magic.python\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#04a5e5\"}},{\"scope\":[\"variable.parameter.function.language.special.self.python\",\"variable.language.special.self.python\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#d20f39\"}},{\"scope\":[\"keyword.control.flow.python\",\"keyword.operator.logical.python\"],\"settings\":{\"foreground\":\"#8839ef\"}},{\"scope\":\"storage.type.function.python\",\"settings\":{\"foreground\":\"#8839ef\"}},{\"scope\":[\"support.token.decorator.python\",\"meta.function.decorator.identifier.python\"],\"settings\":{\"foreground\":\"#04a5e5\"}},{\"scope\":[\"meta.function-call.python\"],\"settings\":{\"foreground\":\"#1e66f5\"}},{\"scope\":[\"entity.name.function.decorator.python\",\"punctuation.definition.decorator.python\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#fe640b\"}},{\"scope\":\"constant.character.format.placeholder.other.python\",\"settings\":{\"foreground\":\"#ea76cb\"}},{\"scope\":[\"support.type.exception.python\",\"support.function.builtin.python\"],\"settings\":{\"foreground\":\"#fe640b\"}},{\"scope\":[\"support.type.python\"],\"settings\":{\"foreground\":\"#fe640b\"}},{\"scope\":\"constant.language.python\",\"settings\":{\"foreground\":\"#8839ef\"}},{\"scope\":[\"meta.indexed-name.python\",\"meta.item-access.python\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#e64553\"}},{\"scope\":\"storage.type.string.python\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#40a02b\"}},{\"scope\":\"meta.function.parameters.python\",\"settings\":{\"fontStyle\":\"\"}},{\"scope\":[\"string.regexp punctuation.definition.string.begin\",\"string.regexp punctuation.definition.string.end\"],\"settings\":{\"foreground\":\"#ea76cb\"}},{\"scope\":\"keyword.control.anchor.regexp\",\"settings\":{\"foreground\":\"#8839ef\"}},{\"scope\":\"string.regexp.ts\",\"settings\":{\"foreground\":\"#4c4f69\"}},{\"scope\":[\"punctuation.definition.group.regexp\",\"keyword.other.back-reference.regexp\"],\"settings\":{\"foreground\":\"#40a02b\"}},{\"scope\":\"punctuation.definition.character-class.regexp\",\"settings\":{\"foreground\":\"#df8e1d\"}},{\"scope\":\"constant.other.character-class.regexp\",\"settings\":{\"foreground\":\"#ea76cb\"}},{\"scope\":\"constant.other.character-class.range.regexp\",\"settings\":{\"foreground\":\"#dc8a78\"}},{\"scope\":\"keyword.operator.quantifier.regexp\",\"settings\":{\"foreground\":\"#179299\"}},{\"scope\":\"constant.character.numeric.regexp\",\"settings\":{\"foreground\":\"#fe640b\"}},{\"scope\":[\"punctuation.definition.group.no-capture.regexp\",\"meta.assertion.look-ahead.regexp\",\"meta.assertion.negative-look-ahead.regexp\"],\"settings\":{\"foreground\":\"#1e66f5\"}},{\"scope\":[\"meta.annotation.rust\",\"meta.annotation.rust punctuation\",\"meta.attribute.rust\",\"punctuation.definition.attribute.rust\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#df8e1d\"}},{\"scope\":[\"meta.attribute.rust string.quoted.double.rust\",\"meta.attribute.rust string.quoted.single.char.rust\"],\"settings\":{\"fontStyle\":\"\"}},{\"scope\":[\"entity.name.function.macro.rules.rust\",\"storage.type.module.rust\",\"storage.modifier.rust\",\"storage.type.struct.rust\",\"storage.type.enum.rust\",\"storage.type.trait.rust\",\"storage.type.union.rust\",\"storage.type.impl.rust\",\"storage.type.rust\",\"storage.type.function.rust\",\"storage.type.type.rust\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#8839ef\"}},{\"scope\":\"entity.name.type.numeric.rust\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#8839ef\"}},{\"scope\":\"meta.generic.rust\",\"settings\":{\"foreground\":\"#fe640b\"}},{\"scope\":\"entity.name.impl.rust\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#df8e1d\"}},{\"scope\":\"entity.name.module.rust\",\"settings\":{\"foreground\":\"#fe640b\"}},{\"scope\":\"entity.name.trait.rust\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#df8e1d\"}},{\"scope\":\"storage.type.source.rust\",\"settings\":{\"foreground\":\"#df8e1d\"}},{\"scope\":\"entity.name.union.rust\",\"settings\":{\"foreground\":\"#df8e1d\"}},{\"scope\":\"meta.enum.rust storage.type.source.rust\",\"settings\":{\"foreground\":\"#179299\"}},{\"scope\":[\"support.macro.rust\",\"meta.macro.rust support.function.rust\",\"entity.name.function.macro.rust\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#1e66f5\"}},{\"scope\":[\"storage.modifier.lifetime.rust\",\"entity.name.type.lifetime\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#1e66f5\"}},{\"scope\":\"string.quoted.double.rust constant.other.placeholder.rust\",\"settings\":{\"foreground\":\"#ea76cb\"}},{\"scope\":\"meta.function.return-type.rust meta.generic.rust storage.type.rust\",\"settings\":{\"foreground\":\"#4c4f69\"}},{\"scope\":\"meta.function.call.rust\",\"settings\":{\"foreground\":\"#1e66f5\"}},{\"scope\":\"punctuation.brackets.angle.rust\",\"settings\":{\"foreground\":\"#04a5e5\"}},{\"scope\":\"constant.other.caps.rust\",\"settings\":{\"foreground\":\"#fe640b\"}},{\"scope\":[\"meta.function.definition.rust variable.other.rust\"],\"settings\":{\"foreground\":\"#e64553\"}},{\"scope\":\"meta.function.call.rust variable.other.rust\",\"settings\":{\"foreground\":\"#4c4f69\"}},{\"scope\":\"variable.language.self.rust\",\"settings\":{\"foreground\":\"#d20f39\"}},{\"scope\":[\"variable.other.metavariable.name.rust\",\"meta.macro.metavariable.rust keyword.operator.macro.dollar.rust\"],\"settings\":{\"foreground\":\"#ea76cb\"}},{\"scope\":[\"comment.line.shebang\",\"comment.line.shebang punctuation.definition.comment\",\"comment.line.shebang\",\"punctuation.definition.comment.shebang.shell\",\"meta.shebang.shell\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#ea76cb\"}},{\"scope\":\"comment.line.shebang constant.language\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#179299\"}},{\"scope\":[\"meta.function-call.arguments.shell punctuation.definition.variable.shell\",\"meta.function-call.arguments.shell punctuation.section.interpolation\",\"meta.function-call.arguments.shell punctuation.definition.variable.shell\",\"meta.function-call.arguments.shell punctuation.section.interpolation\"],\"settings\":{\"foreground\":\"#d20f39\"}},{\"scope\":\"meta.string meta.interpolation.parameter.shell variable.other.readwrite\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#fe640b\"}},{\"scope\":[\"source.shell punctuation.section.interpolation\",\"punctuation.definition.evaluation.backticks.shell\"],\"settings\":{\"foreground\":\"#179299\"}},{\"scope\":\"entity.name.tag.heredoc.shell\",\"settings\":{\"foreground\":\"#8839ef\"}},{\"scope\":\"string.quoted.double.shell variable.other.normal.shell\",\"settings\":{\"foreground\":\"#4c4f69\"}}],\"type\":\"light\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DRhBOlRY.js",
    "content": "import t from\"./BMYPR7BL.js\";import n from\"./BPhBrDlE.js\";import e from\"./ySlJ1b_l.js\";import a from\"./Dj6nwHGl.js\";import i from\"./BQoSv7ci.js\";import s from\"./e4jU7D2d.js\";const u=Object.freeze(JSON.parse('{\"fileTypes\":[],\"injectTo\":[\"text.html.markdown\"],\"injectionSelector\":\"L:text.html.markdown\",\"name\":\"markdown-vue\",\"patterns\":[{\"include\":\"#vue-code-block\"}],\"repository\":{\"vue-code-block\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(vue)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`~]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\",\"patterns\":[]}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"include\":\"source.vue\"}]}},\"scopeName\":\"markdown.vue.codeblock\"}')),m=[u],r=Object.freeze(JSON.parse('{\"fileTypes\":[],\"injectTo\":[\"source.vue\",\"text.html.markdown\",\"text.html.derivative\",\"text.pug\"],\"injectionSelector\":\"L:meta.tag -meta.attribute -meta.ng-binding -entity.name.tag.pug -attribute_value -source.tsx -source.js.jsx, L:meta.element -meta.attribute\",\"name\":\"vue-directives\",\"patterns\":[{\"include\":\"source.vue#vue-directives\"}],\"scopeName\":\"vue.directives\"}')),c=[r],o=Object.freeze(JSON.parse('{\"fileTypes\":[],\"injectTo\":[\"source.vue\",\"text.html.markdown\",\"text.html.derivative\",\"text.pug\"],\"injectionSelector\":\"L:text.pug -comment -string.comment, L:text.html.derivative -comment.block, L:text.html.markdown -comment.block\",\"name\":\"vue-interpolations\",\"patterns\":[{\"include\":\"source.vue#vue-interpolations\"}],\"scopeName\":\"vue.interpolations\"}')),l=[o],d=Object.freeze(JSON.parse(`{\"fileTypes\":[],\"injectTo\":[\"source.vue\"],\"injectionSelector\":\"L:source.css -comment, L:source.postcss -comment, L:source.sass -comment, L:source.stylus -comment\",\"name\":\"vue-sfc-style-variable-injection\",\"patterns\":[{\"include\":\"#vue-sfc-style-variable-injection\"}],\"repository\":{\"vue-sfc-style-variable-injection\":{\"begin\":\"\\\\\\\\b(v-bind)\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function\"}},\"end\":\"\\\\\\\\)\",\"name\":\"vue.sfc.style.variable.injection.v-bind\",\"patterns\":[{\"begin\":\"('|\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"}},\"end\":\"(\\\\\\\\1)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"source.ts.embedded.html.vue\",\"patterns\":[{\"include\":\"source.js\"}]},{\"include\":\"source.js\"}]}},\"scopeName\":\"vue.sfc.style.variable.injection\",\"embeddedLangs\":[\"javascript\"]}`)),g=[...e,d],p=Object.freeze(JSON.parse(`{\"displayName\":\"Vue\",\"name\":\"vue\",\"patterns\":[{\"include\":\"#vue-comments\"},{\"include\":\"text.html.basic#comment\"},{\"include\":\"#self-closing-tag\"},{\"begin\":\"(<)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html.vue\"}},\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html.vue\"}},\"patterns\":[{\"begin\":\"([a-zA-Z0-9:-]+)\\\\\\\\b(?=[^>]*\\\\\\\\blang\\\\\\\\s*=\\\\\\\\s*(['\\\\\"]?)md\\\\\\\\b\\\\\\\\2)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.$1.html.vue\"}},\"end\":\"(</)(\\\\\\\\1)\\\\\\\\s*(?=>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html.vue\"},\"2\":{\"name\":\"entity.name.tag.$2.html.vue\"}},\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<=>)\",\"end\":\"(?=<\\\\\\\\/)\",\"name\":\"text.html.markdown\",\"patterns\":[{\"include\":\"text.html.markdown\"}]}]},{\"begin\":\"([a-zA-Z0-9:-]+)\\\\\\\\b(?=[^>]*\\\\\\\\blang\\\\\\\\s*=\\\\\\\\s*(['\\\\\"]?)html\\\\\\\\b\\\\\\\\2)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.$1.html.vue\"}},\"end\":\"(</)(\\\\\\\\1)\\\\\\\\s*(?=>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html.vue\"},\"2\":{\"name\":\"entity.name.tag.$2.html.vue\"}},\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<=>)\",\"end\":\"(?=<\\\\\\\\/)\",\"name\":\"text.html.derivative\",\"patterns\":[{\"include\":\"#html-stuff\"}]}]},{\"begin\":\"([a-zA-Z0-9:-]+)\\\\\\\\b(?=[^>]*\\\\\\\\blang\\\\\\\\s*=\\\\\\\\s*(['\\\\\"]?)pug\\\\\\\\b\\\\\\\\2)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.$1.html.vue\"}},\"end\":\"(</)(\\\\\\\\1)\\\\\\\\s*(?=>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html.vue\"},\"2\":{\"name\":\"entity.name.tag.$2.html.vue\"}},\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<=>)\",\"end\":\"(?=<\\\\\\\\/)\",\"name\":\"text.pug\",\"patterns\":[{\"include\":\"text.pug\"}]}]},{\"begin\":\"([a-zA-Z0-9:-]+)\\\\\\\\b(?=[^>]*\\\\\\\\blang\\\\\\\\s*=\\\\\\\\s*(['\\\\\"]?)stylus\\\\\\\\b\\\\\\\\2)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.$1.html.vue\"}},\"end\":\"(</)(\\\\\\\\1)\\\\\\\\s*(?=>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html.vue\"},\"2\":{\"name\":\"entity.name.tag.$2.html.vue\"}},\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<=>)\",\"end\":\"(?=<\\\\\\\\/)\",\"name\":\"source.stylus\",\"patterns\":[{\"include\":\"source.stylus\"}]}]},{\"begin\":\"([a-zA-Z0-9:-]+)\\\\\\\\b(?=[^>]*\\\\\\\\blang\\\\\\\\s*=\\\\\\\\s*(['\\\\\"]?)postcss\\\\\\\\b\\\\\\\\2)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.$1.html.vue\"}},\"end\":\"(</)(\\\\\\\\1)\\\\\\\\s*(?=>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html.vue\"},\"2\":{\"name\":\"entity.name.tag.$2.html.vue\"}},\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<=>)\",\"end\":\"(?=<\\\\\\\\/)\",\"name\":\"source.postcss\",\"patterns\":[{\"include\":\"source.postcss\"}]}]},{\"begin\":\"([a-zA-Z0-9:-]+)\\\\\\\\b(?=[^>]*\\\\\\\\blang\\\\\\\\s*=\\\\\\\\s*(['\\\\\"]?)sass\\\\\\\\b\\\\\\\\2)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.$1.html.vue\"}},\"end\":\"(</)(\\\\\\\\1)\\\\\\\\s*(?=>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html.vue\"},\"2\":{\"name\":\"entity.name.tag.$2.html.vue\"}},\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<=>)\",\"end\":\"(?=<\\\\\\\\/)\",\"name\":\"source.sass\",\"patterns\":[{\"include\":\"source.sass\"}]}]},{\"begin\":\"([a-zA-Z0-9:-]+)\\\\\\\\b(?=[^>]*\\\\\\\\blang\\\\\\\\s*=\\\\\\\\s*(['\\\\\"]?)css\\\\\\\\b\\\\\\\\2)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.$1.html.vue\"}},\"end\":\"(</)(\\\\\\\\1)\\\\\\\\s*(?=>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html.vue\"},\"2\":{\"name\":\"entity.name.tag.$2.html.vue\"}},\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<=>)\",\"end\":\"(?=<\\\\\\\\/)\",\"name\":\"source.css\",\"patterns\":[{\"include\":\"source.css\"}]}]},{\"begin\":\"([a-zA-Z0-9:-]+)\\\\\\\\b(?=[^>]*\\\\\\\\blang\\\\\\\\s*=\\\\\\\\s*(['\\\\\"]?)scss\\\\\\\\b\\\\\\\\2)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.$1.html.vue\"}},\"end\":\"(</)(\\\\\\\\1)\\\\\\\\s*(?=>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html.vue\"},\"2\":{\"name\":\"entity.name.tag.$2.html.vue\"}},\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<=>)\",\"end\":\"(?=<\\\\\\\\/)\",\"name\":\"source.css.scss\",\"patterns\":[{\"include\":\"source.css.scss\"}]}]},{\"begin\":\"([a-zA-Z0-9:-]+)\\\\\\\\b(?=[^>]*\\\\\\\\blang\\\\\\\\s*=\\\\\\\\s*(['\\\\\"]?)less\\\\\\\\b\\\\\\\\2)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.$1.html.vue\"}},\"end\":\"(</)(\\\\\\\\1)\\\\\\\\s*(?=>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html.vue\"},\"2\":{\"name\":\"entity.name.tag.$2.html.vue\"}},\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<=>)\",\"end\":\"(?=<\\\\\\\\/)\",\"name\":\"source.css.less\",\"patterns\":[{\"include\":\"source.css.less\"}]}]},{\"begin\":\"([a-zA-Z0-9:-]+)\\\\\\\\b(?=[^>]*\\\\\\\\blang\\\\\\\\s*=\\\\\\\\s*(['\\\\\"]?)js\\\\\\\\b\\\\\\\\2)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.$1.html.vue\"}},\"end\":\"(</)(\\\\\\\\1)\\\\\\\\s*(?=>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html.vue\"},\"2\":{\"name\":\"entity.name.tag.$2.html.vue\"}},\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<=>)\",\"end\":\"(?=<\\\\\\\\/)\",\"name\":\"source.js\",\"patterns\":[{\"include\":\"source.js\"}]}]},{\"begin\":\"([a-zA-Z0-9:-]+)\\\\\\\\b(?=[^>]*\\\\\\\\blang\\\\\\\\s*=\\\\\\\\s*(['\\\\\"]?)ts\\\\\\\\b\\\\\\\\2)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.$1.html.vue\"}},\"end\":\"(</)(\\\\\\\\1)\\\\\\\\s*(?=>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html.vue\"},\"2\":{\"name\":\"entity.name.tag.$2.html.vue\"}},\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<=>)\",\"end\":\"(?=<\\\\\\\\/)\",\"name\":\"source.ts\",\"patterns\":[{\"include\":\"source.ts\"}]}]},{\"begin\":\"([a-zA-Z0-9:-]+)\\\\\\\\b(?=[^>]*\\\\\\\\blang\\\\\\\\s*=\\\\\\\\s*(['\\\\\"]?)jsx\\\\\\\\b\\\\\\\\2)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.$1.html.vue\"}},\"end\":\"(</)(\\\\\\\\1)\\\\\\\\s*(?=>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html.vue\"},\"2\":{\"name\":\"entity.name.tag.$2.html.vue\"}},\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<=>)\",\"end\":\"(?=<\\\\\\\\/)\",\"name\":\"source.js.jsx\",\"patterns\":[{\"include\":\"source.js.jsx\"}]}]},{\"begin\":\"([a-zA-Z0-9:-]+)\\\\\\\\b(?=[^>]*\\\\\\\\blang\\\\\\\\s*=\\\\\\\\s*(['\\\\\"]?)tsx\\\\\\\\b\\\\\\\\2)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.$1.html.vue\"}},\"end\":\"(</)(\\\\\\\\1)\\\\\\\\s*(?=>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html.vue\"},\"2\":{\"name\":\"entity.name.tag.$2.html.vue\"}},\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<=>)\",\"end\":\"(?=<\\\\\\\\/)\",\"name\":\"source.tsx\",\"patterns\":[{\"include\":\"source.tsx\"}]}]},{\"begin\":\"([a-zA-Z0-9:-]+)\\\\\\\\b(?=[^>]*\\\\\\\\blang\\\\\\\\s*=\\\\\\\\s*(['\\\\\"]?)coffee\\\\\\\\b\\\\\\\\2)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.$1.html.vue\"}},\"end\":\"(</)(\\\\\\\\1)\\\\\\\\s*(?=>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html.vue\"},\"2\":{\"name\":\"entity.name.tag.$2.html.vue\"}},\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<=>)\",\"end\":\"(?=<\\\\\\\\/)\",\"name\":\"source.coffee\",\"patterns\":[{\"include\":\"source.coffee\"}]}]},{\"begin\":\"([a-zA-Z0-9:-]+)\\\\\\\\b(?=[^>]*\\\\\\\\blang\\\\\\\\s*=\\\\\\\\s*(['\\\\\"]?)json\\\\\\\\b\\\\\\\\2)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.$1.html.vue\"}},\"end\":\"(</)(\\\\\\\\1)\\\\\\\\s*(?=>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html.vue\"},\"2\":{\"name\":\"entity.name.tag.$2.html.vue\"}},\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<=>)\",\"end\":\"(?=<\\\\\\\\/)\",\"name\":\"source.json\",\"patterns\":[{\"include\":\"source.json\"}]}]},{\"begin\":\"([a-zA-Z0-9:-]+)\\\\\\\\b(?=[^>]*\\\\\\\\blang\\\\\\\\s*=\\\\\\\\s*(['\\\\\"]?)jsonc\\\\\\\\b\\\\\\\\2)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.$1.html.vue\"}},\"end\":\"(</)(\\\\\\\\1)\\\\\\\\s*(?=>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html.vue\"},\"2\":{\"name\":\"entity.name.tag.$2.html.vue\"}},\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<=>)\",\"end\":\"(?=<\\\\\\\\/)\",\"name\":\"source.json.comments\",\"patterns\":[{\"include\":\"source.json.comments\"}]}]},{\"begin\":\"([a-zA-Z0-9:-]+)\\\\\\\\b(?=[^>]*\\\\\\\\blang\\\\\\\\s*=\\\\\\\\s*(['\\\\\"]?)json5\\\\\\\\b\\\\\\\\2)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.$1.html.vue\"}},\"end\":\"(</)(\\\\\\\\1)\\\\\\\\s*(?=>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html.vue\"},\"2\":{\"name\":\"entity.name.tag.$2.html.vue\"}},\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<=>)\",\"end\":\"(?=<\\\\\\\\/)\",\"name\":\"source.json5\",\"patterns\":[{\"include\":\"source.json5\"}]}]},{\"begin\":\"([a-zA-Z0-9:-]+)\\\\\\\\b(?=[^>]*\\\\\\\\blang\\\\\\\\s*=\\\\\\\\s*(['\\\\\"]?)yaml\\\\\\\\b\\\\\\\\2)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.$1.html.vue\"}},\"end\":\"(</)(\\\\\\\\1)\\\\\\\\s*(?=>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html.vue\"},\"2\":{\"name\":\"entity.name.tag.$2.html.vue\"}},\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<=>)\",\"end\":\"(?=<\\\\\\\\/)\",\"name\":\"source.yaml\",\"patterns\":[{\"include\":\"source.yaml\"}]}]},{\"begin\":\"([a-zA-Z0-9:-]+)\\\\\\\\b(?=[^>]*\\\\\\\\blang\\\\\\\\s*=\\\\\\\\s*(['\\\\\"]?)toml\\\\\\\\b\\\\\\\\2)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.$1.html.vue\"}},\"end\":\"(</)(\\\\\\\\1)\\\\\\\\s*(?=>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html.vue\"},\"2\":{\"name\":\"entity.name.tag.$2.html.vue\"}},\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<=>)\",\"end\":\"(?=<\\\\\\\\/)\",\"name\":\"source.toml\",\"patterns\":[{\"include\":\"source.toml\"}]}]},{\"begin\":\"([a-zA-Z0-9:-]+)\\\\\\\\b(?=[^>]*\\\\\\\\blang\\\\\\\\s*=\\\\\\\\s*(['\\\\\"]?)(gql|graphql)\\\\\\\\b\\\\\\\\2)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.$1.html.vue\"}},\"end\":\"(</)(\\\\\\\\1)\\\\\\\\s*(?=>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html.vue\"},\"2\":{\"name\":\"entity.name.tag.$2.html.vue\"}},\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<=>)\",\"end\":\"(?=<\\\\\\\\/)\",\"name\":\"source.graphql\",\"patterns\":[{\"include\":\"source.graphql\"}]}]},{\"begin\":\"([a-zA-Z0-9:-]+)\\\\\\\\b(?=[^>]*\\\\\\\\blang\\\\\\\\s*=\\\\\\\\s*(['\\\\\"]?)vue\\\\\\\\b\\\\\\\\2)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.$1.html.vue\"}},\"end\":\"(</)(\\\\\\\\1)\\\\\\\\s*(?=>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html.vue\"},\"2\":{\"name\":\"entity.name.tag.$2.html.vue\"}},\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<=>)\",\"end\":\"(?=<\\\\\\\\/)\",\"name\":\"source.vue\",\"patterns\":[{\"include\":\"source.vue\"}]}]},{\"begin\":\"(template)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.$1.html.vue\"}},\"end\":\"(</)(\\\\\\\\1)\\\\\\\\s*(?=>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html.vue\"},\"2\":{\"name\":\"entity.name.tag.$2.html.vue\"}},\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<=>)\",\"end\":\"(?=<\\\\\\\\/template\\\\\\\\b)\",\"name\":\"text.html.derivative\",\"patterns\":[{\"include\":\"#html-stuff\"}]}]},{\"begin\":\"(script)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.$1.html.vue\"}},\"end\":\"(</)(\\\\\\\\1)\\\\\\\\s*(?=>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html.vue\"},\"2\":{\"name\":\"entity.name.tag.$2.html.vue\"}},\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<=>)\",\"end\":\"(?=<\\\\\\\\/script\\\\\\\\b)\",\"name\":\"source.js\",\"patterns\":[{\"include\":\"source.js\"}]}]},{\"begin\":\"(style)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.$1.html.vue\"}},\"end\":\"(</)(\\\\\\\\1)\\\\\\\\s*(?=>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html.vue\"},\"2\":{\"name\":\"entity.name.tag.$2.html.vue\"}},\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<=>)\",\"end\":\"(?=<\\\\\\\\/style\\\\\\\\b)\",\"name\":\"source.css\",\"patterns\":[{\"include\":\"source.css\"}]}]},{\"begin\":\"([a-zA-Z0-9:-]+)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.$1.html.vue\"}},\"end\":\"(</)(\\\\\\\\1)\\\\\\\\s*(?=>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html.vue\"},\"2\":{\"name\":\"entity.name.tag.$2.html.vue\"}},\"patterns\":[{\"include\":\"#tag-stuff\"},{\"begin\":\"(?<=>)\",\"end\":\"(?=<\\\\\\\\/)\",\"name\":\"text\"}]}]}],\"repository\":{\"html-stuff\":{\"patterns\":[{\"include\":\"#template-tag\"},{\"include\":\"text.html.derivative\"},{\"include\":\"text.html.basic\"}]},\"self-closing-tag\":{\"begin\":\"(<)([a-zA-Z0-9:-]+)(?=([^>]+/>))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html.vue\"},\"2\":{\"name\":\"entity.name.tag.$2.html.vue\"}},\"end\":\"(/>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html.vue\"}},\"name\":\"self-closing-tag\",\"patterns\":[{\"include\":\"#tag-stuff\"}]},\"tag-stuff\":{\"begin\":\"\\\\\\\\G\",\"end\":\"(?=/>)|(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html.vue\"}},\"name\":\"meta.tag-stuff\",\"patterns\":[{\"include\":\"#vue-directives\"},{\"include\":\"text.html.basic#attribute\"}]},\"template-tag\":{\"patterns\":[{\"include\":\"#template-tag-1\"},{\"include\":\"#template-tag-2\"}]},\"template-tag-1\":{\"begin\":\"(<)(template)\\\\\\\\b(>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html.vue\"},\"2\":{\"name\":\"entity.name.tag.$2.html.vue\"},\"3\":{\"name\":\"punctuation.definition.tag.end.html.vue\"}},\"end\":\"(/?>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html.vue\"}},\"name\":\"meta.template-tag.start\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(?=/>)|((</)(template)\\\\\\\\b)\",\"endCaptures\":{\"2\":{\"name\":\"punctuation.definition.tag.begin.html.vue\"},\"3\":{\"name\":\"entity.name.tag.$3.html.vue\"}},\"name\":\"meta.template-tag.end\",\"patterns\":[{\"include\":\"#html-stuff\"}]}]},\"template-tag-2\":{\"begin\":\"(<)(template)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html.vue\"},\"2\":{\"name\":\"entity.name.tag.$2.html.vue\"}},\"end\":\"(/?>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html.vue\"}},\"name\":\"meta.template-tag.start\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(?=/>)|((</)(template)\\\\\\\\b)\",\"endCaptures\":{\"2\":{\"name\":\"punctuation.definition.tag.begin.html.vue\"},\"3\":{\"name\":\"entity.name.tag.$3.html.vue\"}},\"name\":\"meta.template-tag.end\",\"patterns\":[{\"include\":\"#tag-stuff\"},{\"include\":\"#html-stuff\"}]}]},\"vue-comments\":{\"patterns\":[{\"include\":\"#vue-comments-key-value\"}]},\"vue-comments-key-value\":{\"begin\":\"(<!--)\\\\\\\\s*(@)([\\\\\\\\w$]+)(?=\\\\\\\\s)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.vue\"},\"2\":{\"name\":\"punctuation.definition.block.tag.comment.vue\"},\"3\":{\"name\":\"storage.type.class.comment.vue\"}},\"end\":\"(-->)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.vue\"}},\"name\":\"comment.block.vue\",\"patterns\":[{\"include\":\"source.json#value\"}]},\"vue-directives\":{\"patterns\":[{\"include\":\"#vue-directives-control\"},{\"include\":\"#vue-directives-style-attr\"},{\"include\":\"#vue-directives-original\"},{\"include\":\"#vue-directives-generic-attr\"}]},\"vue-directives-control\":{\"begin\":\"(v-for)|(v-if|v-else-if|v-else)\",\"captures\":{\"1\":{\"name\":\"keyword.control.loop.vue\"},\"2\":{\"name\":\"keyword.control.conditional.vue\"}},\"end\":\"(?=\\\\\\\\s*+[^=\\\\\\\\s])\",\"name\":\"meta.attribute.directive.control.vue\",\"patterns\":[{\"include\":\"#vue-directives-expression\"}]},\"vue-directives-expression\":{\"patterns\":[{\"begin\":\"(=)\\\\\\\\s*('|\\\\\"|\\`)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.key-value.html.vue\"},\"2\":{\"name\":\"punctuation.definition.string.begin.html.vue\"}},\"end\":\"(\\\\\\\\2)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.html.vue\"}},\"patterns\":[{\"begin\":\"(?<=('|\\\\\"|\\`))\",\"end\":\"(?=\\\\\\\\1)\",\"name\":\"source.ts.embedded.html.vue\",\"patterns\":[{\"include\":\"source.ts#expression\"}]}]},{\"begin\":\"(=)\\\\\\\\s*(?=[^'\\\\\"\\`])\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.key-value.html.vue\"}},\"end\":\"(?=(\\\\\\\\s|>|\\\\\\\\/>))\",\"patterns\":[{\"begin\":\"(?=[^'\\\\\"\\`])\",\"end\":\"(?=(\\\\\\\\s|>|\\\\\\\\/>))\",\"name\":\"source.ts.embedded.html.vue\",\"patterns\":[{\"include\":\"source.ts#expression\"}]}]}]},\"vue-directives-generic-attr\":{\"begin\":\"\\\\\\\\b(generic)\\\\\\\\s*(=)\",\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.html.vue\"},\"2\":{\"name\":\"punctuation.separator.key-value.html.vue\"}},\"end\":\"(?<='|\\\\\")\",\"name\":\"meta.attribute.generic.vue\",\"patterns\":[{\"begin\":\"('|\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.html.vue\"}},\"comment\":\"https://github.com/microsoft/vscode/blob/fd4346210f59135fad81a8b8c4cea7bf5a9ca6b4/extensions/typescript-basics/syntaxes/TypeScript.tmLanguage.json#L4002-L4020\",\"end\":\"(\\\\\\\\1)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.html.vue\"}},\"name\":\"meta.type.parameters.vue\",\"patterns\":[{\"include\":\"source.ts#comment\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(extends|in|out)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.modifier.ts\"},{\"include\":\"source.ts#type\"},{\"include\":\"source.ts#punctuation-comma\"},{\"match\":\"(=)(?!>)\",\"name\":\"keyword.operator.assignment.ts\"}]}]},\"vue-directives-original\":{\"begin\":\"(?:(?:(v-[\\\\\\\\w-]+)(:)?)|([:\\\\\\\\.])|(@)|(#))(?:(?:(\\\\\\\\[)([^\\\\\\\\]]*)(\\\\\\\\]))|([\\\\\\\\w-]+))?\",\"beginCaptures\":{\"1\":{\"name\":\"entity.other.attribute-name.html.vue\"},\"2\":{\"name\":\"punctuation.separator.key-value.html.vue\"},\"3\":{\"name\":\"punctuation.attribute-shorthand.bind.html.vue\"},\"4\":{\"name\":\"punctuation.attribute-shorthand.event.html.vue\"},\"5\":{\"name\":\"punctuation.attribute-shorthand.slot.html.vue\"},\"6\":{\"name\":\"punctuation.separator.key-value.html.vue\"},\"7\":{\"name\":\"source.ts.embedded.html.vue\",\"patterns\":[{\"include\":\"source.ts#expression\"}]},\"8\":{\"name\":\"punctuation.separator.key-value.html.vue\"},\"9\":{\"name\":\"entity.other.attribute-name.html.vue\"}},\"end\":\"(?=\\\\\\\\s*[^=\\\\\\\\s])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.html.vue\"}},\"name\":\"meta.attribute.directive.vue\",\"patterns\":[{\"1\":{\"name\":\"punctuation.separator.key-value.html.vue\"},\"2\":{\"name\":\"entity.other.attribute-name.html.vue\"},\"match\":\"(\\\\\\\\.)([\\\\\\\\w-]*)\"},{\"include\":\"#vue-directives-expression\"}]},\"vue-directives-style-attr\":{\"begin\":\"\\\\\\\\b(style)\\\\\\\\s*(=)\",\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.html.vue\"},\"2\":{\"name\":\"punctuation.separator.key-value.html.vue\"}},\"end\":\"(?<='|\\\\\")\",\"name\":\"meta.attribute.style.vue\",\"patterns\":[{\"begin\":\"('|\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.html.vue\"}},\"comment\":\"Copy from source.css#rule-list-innards\",\"end\":\"(\\\\\\\\1)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.html.vue\"}},\"name\":\"source.css.embedded.html.vue\",\"patterns\":[{\"include\":\"source.css#comment-block\"},{\"include\":\"source.css#escapes\"},{\"include\":\"source.css#font-features\"},{\"match\":\"(?<![\\\\\\\\w-])--(?:[-a-zA-Z_]|[^\\\\\\\\x00-\\\\\\\\x7F])(?:[-a-zA-Z0-9_]|[^\\\\\\\\x00-\\\\\\\\x7F]|\\\\\\\\\\\\\\\\(?:[0-9a-fA-F]{1,6}|.))*\",\"name\":\"variable.css\"},{\"begin\":\"(?<![-a-zA-Z])(?=[-a-zA-Z])\",\"end\":\"$|(?![-a-zA-Z])\",\"name\":\"meta.property-name.css\",\"patterns\":[{\"include\":\"source.css#property-names\"}]},{\"begin\":\"(:)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.key-value.css\"}},\"comment\":\"Modify end to fix #199. TODO: handle ' character.\",\"contentName\":\"meta.property-value.css\",\"end\":\"\\\\\\\\s*(;)|\\\\\\\\s*(?='|\\\\\")\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.rule.css\"}},\"patterns\":[{\"include\":\"source.css#comment-block\"},{\"include\":\"source.css#property-values\"}]},{\"match\":\";\",\"name\":\"punctuation.terminator.rule.css\"}]}]},\"vue-interpolations\":{\"patterns\":[{\"begin\":\"(\\\\\\\\{\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.interpolation.begin.html.vue\"}},\"end\":\"(\\\\\\\\}\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.interpolation.end.html.vue\"}},\"name\":\"expression.embedded.vue\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(?=\\\\\\\\}\\\\\\\\})\",\"name\":\"source.ts.embedded.html.vue\",\"patterns\":[{\"include\":\"source.ts#expression\"}]}]}]}},\"scopeName\":\"source.vue\",\"embeddedLangs\":[\"html\",\"css\",\"javascript\",\"typescript\",\"json\",\"html-derivative\",\"markdown-vue\",\"vue-directives\",\"vue-interpolations\",\"vue-sfc-style-variable-injection\"],\"embeddedLangsLazy\":[\"markdown\",\"pug\",\"stylus\",\"sass\",\"scss\",\"less\",\"jsx\",\"tsx\",\"coffee\",\"jsonc\",\"json5\",\"yaml\",\"toml\",\"graphql\"]}`)),$=[...t,...n,...e,...a,...i,...s,...m,...c,...l,...g,p];export{$ as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DUszq2jm.js",
    "content": "const t=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBorder\":\"#EB64B9\",\"activityBar.background\":\"#27212e\",\"activityBar.foreground\":\"#ddd\",\"activityBarBadge.background\":\"#EB64B9\",\"button.background\":\"#EB64B9\",\"diffEditor.border\":\"#b4dce7\",\"diffEditor.insertedTextBackground\":\"#74dfc423\",\"diffEditor.removedTextBackground\":\"#eb64b940\",\"editor.background\":\"#27212e\",\"editor.findMatchBackground\":\"#40b4c48c\",\"editor.findMatchHighlightBackground\":\"#40b4c460\",\"editor.foreground\":\"#ffffff\",\"editor.selectionBackground\":\"#eb64b927\",\"editor.selectionHighlightBackground\":\"#eb64b927\",\"editor.wordHighlightBackground\":\"#eb64b927\",\"editorError.foreground\":\"#ff3e7b\",\"editorGroupHeader.tabsBackground\":\"#242029\",\"editorGutter.addedBackground\":\"#74dfc4\",\"editorGutter.deletedBackground\":\"#eb64B9\",\"editorGutter.modifiedBackground\":\"#40b4c4\",\"editorSuggestWidget.border\":\"#b4dce7\",\"focusBorder\":\"#EB64B9\",\"gitDecoration.conflictingResourceForeground\":\"#EB64B9\",\"gitDecoration.deletedResourceForeground\":\"#b381c5\",\"gitDecoration.ignoredResourceForeground\":\"#92889d\",\"gitDecoration.modifiedResourceForeground\":\"#74dfc4\",\"gitDecoration.untrackedResourceForeground\":\"#40b4c4\",\"input.background\":\"#3a3242\",\"input.border\":\"#964c7b\",\"inputOption.activeBorder\":\"#EB64B9\",\"list.activeSelectionBackground\":\"#eb64b98f\",\"list.activeSelectionForeground\":\"#eee\",\"list.dropBackground\":\"#74dfc466\",\"list.errorForeground\":\"#ff3e7b\",\"list.focusBackground\":\"#eb64ba60\",\"list.highlightForeground\":\"#eb64b9\",\"list.hoverBackground\":\"#91889b80\",\"list.hoverForeground\":\"#eee\",\"list.inactiveSelectionBackground\":\"#eb64b98f\",\"list.inactiveSelectionForeground\":\"#ddd\",\"list.invalidItemForeground\":\"#fff\",\"menu.background\":\"#27212e\",\"merge.currentContentBackground\":\"#74dfc433\",\"merge.currentHeaderBackground\":\"#74dfc4cc\",\"merge.incomingContentBackground\":\"#40b4c433\",\"merge.incomingHeaderBackground\":\"#40b4c4cc\",\"notifications.background\":\"#3e3549\",\"peekView.border\":\"#40b4c4\",\"peekViewEditor.background\":\"#40b5c449\",\"peekViewEditor.matchHighlightBackground\":\"#40b5c460\",\"peekViewResult.matchHighlightBackground\":\"#27212e\",\"peekViewResult.selectionBackground\":\"#40b4c43f\",\"progressBar.background\":\"#40b4c4\",\"sideBar.background\":\"#27212e\",\"sideBar.foreground\":\"#ddd\",\"sideBarSectionHeader.background\":\"#27212e\",\"sideBarTitle.foreground\":\"#EB64B9\",\"statusBar.background\":\"#EB64B9\",\"statusBar.debuggingBackground\":\"#74dfc4\",\"statusBar.foreground\":\"#27212e\",\"statusBar.noFolderBackground\":\"#EB64B9\",\"tab.activeBorder\":\"#EB64B9\",\"tab.inactiveBackground\":\"#242029\",\"terminal.ansiBlue\":\"#40b4c4\",\"terminal.ansiCyan\":\"#b4dce7\",\"terminal.ansiGreen\":\"#74dfc4\",\"terminal.ansiMagenta\":\"#b381c5\",\"terminal.ansiRed\":\"#EB64B9\",\"terminal.ansiYellow\":\"#ffe261\",\"titleBar.activeBackground\":\"#27212e\",\"titleBar.inactiveBackground\":\"#27212e\",\"tree.indentGuidesStroke\":\"#ffffff33\"},\"displayName\":\"LaserWave\",\"name\":\"laserwave\",\"tokenColors\":[{\"scope\":[\"keyword.other\",\"keyword.control\",\"storage.type.class.js\",\"keyword.control.module.js\",\"storage.type.extends.js\",\"variable.language.this.js\",\"keyword.control.switch.js\",\"keyword.control.loop.js\",\"keyword.control.conditional.js\",\"keyword.control.flow.js\",\"keyword.operator.accessor.js\",\"keyword.other.important.css\",\"keyword.control.at-rule.media.scss\",\"entity.name.tag.reference.scss\",\"meta.class.python\",\"storage.type.function.python\",\"keyword.control.flow.python\",\"storage.type.function.js\",\"keyword.control.export.ts\",\"keyword.control.flow.ts\",\"keyword.control.from.ts\",\"keyword.control.import.ts\",\"storage.type.class.ts\",\"keyword.control.loop.ts\",\"keyword.control.ruby\",\"keyword.control.module.ruby\",\"keyword.control.class.ruby\",\"keyword.other.special-method.ruby\",\"keyword.control.def.ruby\",\"markup.heading\",\"keyword.other.import.java\",\"keyword.other.package.java\",\"storage.modifier.java\",\"storage.modifier.extends.java\",\"storage.modifier.implements.java\",\"storage.modifier.cs\",\"storage.modifier.js\",\"storage.modifier.dart\",\"keyword.declaration.dart\",\"keyword.package.go\",\"keyword.import.go\",\"keyword.fsharp\",\"variable.parameter.function-call.python\"],\"settings\":{\"foreground\":\"#40b4c4\"}},{\"scope\":[\"binding.fsharp\",\"support.function\",\"meta.function-call\",\"entity.name.function\",\"support.function.misc.scss\",\"meta.method.declaration.ts\",\"entity.name.function.method.js\"],\"settings\":{\"foreground\":\"#EB64B9\"}},{\"scope\":[\"string\",\"string.quoted\",\"string.unquoted\",\"string.other.link.title.markdown\"],\"settings\":{\"foreground\":\"#b4dce7\"}},{\"scope\":[\"constant.numeric\"],\"settings\":{\"foreground\":\"#b381c5\"}},{\"scope\":[\"meta.brace\",\"punctuation\",\"punctuation.bracket\",\"punctuation.section\",\"punctuation.separator\",\"punctuation.comma.dart\",\"punctuation.terminator\",\"punctuation.definition\",\"punctuation.parenthesis\",\"meta.delimiter.comma.js\",\"meta.brace.curly.litobj.js\",\"punctuation.definition.tag\",\"puncatuation.other.comma.go\",\"punctuation.section.embedded\",\"punctuation.definition.string\",\"punctuation.definition.tag.jsx\",\"punctuation.definition.tag.end\",\"punctuation.definition.markdown\",\"punctuation.terminator.rule.css\",\"punctuation.definition.block.ts\",\"punctuation.definition.tag.html\",\"punctuation.section.class.end.js\",\"punctuation.definition.tag.begin\",\"punctuation.squarebracket.open.cs\",\"punctuation.separator.dict.python\",\"punctuation.section.function.scss\",\"punctuation.section.class.begin.js\",\"punctuation.section.array.end.ruby\",\"punctuation.separator.key-value.js\",\"meta.method-call.with-arguments.js\",\"punctuation.section.scope.end.ruby\",\"punctuation.squarebracket.close.cs\",\"punctuation.separator.key-value.css\",\"punctuation.definition.constant.css\",\"punctuation.section.array.begin.ruby\",\"punctuation.section.scope.begin.ruby\",\"punctuation.definition.string.end.js\",\"punctuation.definition.parameters.ruby\",\"punctuation.definition.string.begin.js\",\"punctuation.section.class.begin.python\",\"storage.modifier.array.bracket.square.c\",\"punctuation.separator.parameters.python\",\"punctuation.section.group.end.powershell\",\"punctuation.definition.parameters.end.ts\",\"punctuation.section.braces.end.powershell\",\"punctuation.section.function.begin.python\",\"punctuation.definition.parameters.begin.ts\",\"punctuation.section.bracket.end.powershell\",\"punctuation.section.group.begin.powershell\",\"punctuation.section.braces.begin.powershell\",\"punctuation.definition.parameters.end.python\",\"punctuation.definition.typeparameters.end.cs\",\"punctuation.section.bracket.begin.powershell\",\"punctuation.definition.arguments.begin.python\",\"punctuation.definition.parameters.begin.python\",\"punctuation.definition.typeparameters.begin.cs\",\"punctuation.section.block.begin.bracket.curly.c\",\"punctuation.definition.map.begin.bracket.round.scss\",\"punctuation.section.property-list.end.bracket.curly.css\",\"punctuation.definition.parameters.end.bracket.round.java\",\"punctuation.section.property-list.begin.bracket.curly.css\",\"punctuation.definition.parameters.begin.bracket.round.java\"],\"settings\":{\"foreground\":\"#7b6995\"}},{\"scope\":[\"keyword.operator\",\"meta.decorator.ts\",\"entity.name.type.ts\",\"punctuation.dot.dart\",\"keyword.symbol.fsharp\",\"punctuation.accessor.ts\",\"punctuation.accessor.cs\",\"keyword.operator.logical\",\"meta.tag.inline.any.html\",\"punctuation.separator.java\",\"keyword.operator.comparison\",\"keyword.operator.arithmetic\",\"keyword.operator.assignment\",\"keyword.operator.ternary.js\",\"keyword.operator.other.ruby\",\"keyword.operator.logical.js\",\"punctuation.other.period.go\",\"keyword.operator.increment.ts\",\"keyword.operator.increment.js\",\"storage.type.function.arrow.js\",\"storage.type.function.arrow.ts\",\"keyword.operator.relational.js\",\"keyword.operator.relational.ts\",\"keyword.operator.arithmetic.js\",\"keyword.operator.assignment.js\",\"storage.type.function.arrow.tsx\",\"keyword.operator.logical.python\",\"punctuation.separator.period.java\",\"punctuation.separator.method.ruby\",\"keyword.operator.assignment.python\",\"keyword.operator.arithmetic.python\",\"keyword.operator.increment-decrement.java\"],\"settings\":{\"foreground\":\"#74dfc4\"}},{\"scope\":[\"comment\",\"punctuation.definition.comment\"],\"settings\":{\"foreground\":\"#91889b\"}},{\"scope\":[\"meta.tag.sgml\",\"entity.name.tag\",\"entity.name.tag.open.jsx\",\"entity.name.tag.close.jsx\",\"entity.name.tag.inline.any.html\",\"entity.name.tag.structure.any.html\"],\"settings\":{\"foreground\":\"#74dfc4\"}},{\"scope\":[\"variable.other.enummember\",\"entity.other.attribute-name\",\"entity.other.attribute-name.jsx\",\"entity.other.attribute-name.html\",\"entity.other.attribute-name.id.css\",\"entity.other.attribute-name.id.html\",\"entity.other.attribute-name.class.css\"],\"settings\":{\"foreground\":\"#EB64B9\"}},{\"scope\":[\"variable.other.property\",\"variable.parameter.fsharp\",\"support.variable.property.js\",\"support.type.property-name.css\",\"support.type.property-name.json\",\"support.variable.property.dom.js\"],\"settings\":{\"foreground\":\"#40b4c4\"}},{\"scope\":[\"constant.language\",\"constant.other.elm\",\"constant.language.c\",\"variable.language.dart\",\"variable.language.this\",\"support.class.builtin.js\",\"support.constant.json.ts\",\"support.class.console.ts\",\"support.class.console.js\",\"variable.language.this.js\",\"variable.language.this.ts\",\"entity.name.section.fsharp\",\"support.type.object.dom.js\",\"variable.other.constant.js\",\"variable.language.self.ruby\",\"variable.other.constant.ruby\",\"support.type.object.console.js\",\"constant.language.undefined.js\",\"support.function.builtin.python\",\"constant.language.boolean.true.js\",\"constant.language.boolean.false.js\",\"variable.language.special.self.python\",\"support.constant.automatic.powershell\"],\"settings\":{\"foreground\":\"#ffe261\"}},{\"scope\":[\"variable.other\",\"variable.scss\",\"meta.function-call.c\",\"variable.parameter.ts\",\"variable.parameter.dart\",\"variable.other.class.js\",\"variable.other.object.js\",\"variable.other.object.ts\",\"support.function.json.ts\",\"variable.name.source.dart\",\"variable.other.source.dart\",\"variable.other.readwrite.js\",\"variable.other.readwrite.ts\",\"support.function.console.ts\",\"entity.name.type.instance.js\",\"meta.function-call.arguments\",\"variable.other.property.dom.ts\",\"support.variable.property.dom.ts\",\"variable.other.readwrite.powershell\"],\"settings\":{\"foreground\":\"#fff\"}},{\"scope\":[\"storage.type.annotation\",\"punctuation.definition.annotation\",\"support.function.attribute.fsharp\"],\"settings\":{\"foreground\":\"#74dfc4\"}},{\"scope\":[\"entity.name.type\",\"storage.type\",\"keyword.var.go\",\"keyword.type.go\",\"keyword.type.js\",\"storage.type.js\",\"storage.type.ts\",\"keyword.type.cs\",\"keyword.const.go\",\"keyword.struct.go\",\"support.class.dart\",\"storage.modifier.c\",\"storage.modifier.ts\",\"keyword.function.go\",\"keyword.operator.new.ts\",\"meta.type.annotation.ts\",\"entity.name.type.fsharp\",\"meta.type.annotation.tsx\",\"storage.modifier.async.js\",\"punctuation.definition.variable.ruby\",\"punctuation.definition.constant.ruby\"],\"settings\":{\"foreground\":\"#a96bc0\"}},{\"scope\":[\"markup.bold\",\"markup.italic\"],\"settings\":{\"foreground\":\"#EB64B9\"}},{\"scope\":[\"meta.object-literal.key.js\",\"constant.other.object.key.js\"],\"settings\":{\"foreground\":\"#40b4c4\"}},{\"scope\":[],\"settings\":{\"foreground\":\"#ffb85b\"}},{\"scope\":[\"meta.diff\",\"meta.diff.header\"],\"settings\":{\"foreground\":\"#40b4c4\"}},{\"scope\":[\"meta.diff.range.unified\"],\"settings\":{\"foreground\":\"#b381c5\"}},{\"scope\":[\"markup.deleted\",\"punctuation.definition.deleted.diff\",\"punctuation.definition.from-file.diff\",\"meta.diff.header.from-file\"],\"settings\":{\"foreground\":\"#eb64b9\"}},{\"scope\":[\"markup.inserted\",\"punctuation.definition.inserted.diff\",\"punctuation.definition.to-file.diff\",\"meta.diff.header.to-file\"],\"settings\":{\"foreground\":\"#74dfc4\"}}],\"type\":\"dark\"}'));export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DVG02705.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"'\"},brackets:[[\"(\",\")\"],[\"[\",\"]\"],[\"If\",\"EndIf\"],[\"While\",\"EndWhile\"],[\"For\",\"EndFor\"],[\"Sub\",\"EndSub\"]],autoClosingPairs:[{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\"]}]},o={defaultToken:\"\",tokenPostfix:\".sb\",ignoreCase:!0,brackets:[{token:\"delimiter.array\",open:\"[\",close:\"]\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"},{token:\"keyword.tag-if\",open:\"If\",close:\"EndIf\"},{token:\"keyword.tag-while\",open:\"While\",close:\"EndWhile\"},{token:\"keyword.tag-for\",open:\"For\",close:\"EndFor\"},{token:\"keyword.tag-sub\",open:\"Sub\",close:\"EndSub\"}],keywords:[\"Else\",\"ElseIf\",\"EndFor\",\"EndIf\",\"EndSub\",\"EndWhile\",\"For\",\"Goto\",\"If\",\"Step\",\"Sub\",\"Then\",\"To\",\"While\"],tagwords:[\"If\",\"Sub\",\"While\",\"For\"],operators:[\">\",\"<\",\"<>\",\"<=\",\">=\",\"And\",\"Or\",\"+\",\"-\",\"*\",\"/\",\"=\"],identifier:/[a-zA-Z_][\\w]*/,symbols:/[=><:+\\-*\\/%\\.,]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[{include:\"@whitespace\"},[/(@identifier)(?=[.])/,\"type\"],[/@identifier/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@operators\":\"operator\",\"@default\":\"variable.name\"}}],[/([.])(@identifier)/,{cases:{$2:[\"delimiter\",\"type.member\"],\"@default\":\"\"}}],[/\\d*\\.\\d+/,\"number.float\"],[/\\d+/,\"number\"],[/[()\\[\\]]/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"operator\",\"@default\":\"delimiter\"}}],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",\"@string\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/(\\').*$/,\"comment\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"C?/,\"string\",\"@pop\"]]}};export{e as conf,o as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/DVYH6Lj_.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"<\",close:\">\"}],folding:{markers:{start:new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?region\\\\b)|(?:<editor-fold\\\\b))\"),end:new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?endregion\\\\b)|(?:</editor-fold>))\")}}},t={defaultToken:\"\",tokenPostfix:\".kt\",keywords:[\"as\",\"as?\",\"break\",\"class\",\"continue\",\"do\",\"else\",\"false\",\"for\",\"fun\",\"if\",\"in\",\"!in\",\"interface\",\"is\",\"!is\",\"null\",\"object\",\"package\",\"return\",\"super\",\"this\",\"throw\",\"true\",\"try\",\"typealias\",\"val\",\"var\",\"when\",\"while\",\"by\",\"catch\",\"constructor\",\"delegate\",\"dynamic\",\"field\",\"file\",\"finally\",\"get\",\"import\",\"init\",\"param\",\"property\",\"receiver\",\"set\",\"setparam\",\"where\",\"actual\",\"abstract\",\"annotation\",\"companion\",\"const\",\"crossinline\",\"data\",\"enum\",\"expect\",\"external\",\"final\",\"infix\",\"inline\",\"inner\",\"internal\",\"lateinit\",\"noinline\",\"open\",\"operator\",\"out\",\"override\",\"private\",\"protected\",\"public\",\"reified\",\"sealed\",\"suspend\",\"tailrec\",\"vararg\",\"field\",\"it\"],operators:[\"+\",\"-\",\"*\",\"/\",\"%\",\"=\",\"+=\",\"-=\",\"*=\",\"/=\",\"%=\",\"++\",\"--\",\"&&\",\"||\",\"!\",\"==\",\"!=\",\"===\",\"!==\",\">\",\"<\",\"<=\",\">=\",\"[\",\"]\",\"!!\",\"?.\",\"?:\",\"::\",\"..\",\":\",\"?\",\"->\",\"@\",\";\",\"$\",\"_\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\\d+(_+\\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,tokenizer:{root:[[/[A-Z][\\w\\$]*/,\"type.identifier\"],[/[a-zA-Z_$][\\w$]*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/@\\s*[a-zA-Z_\\$][\\w\\$]*/,\"annotation\"],[/(@digits)[eE]([\\-+]?(@digits))?[fFdD]?/,\"number.float\"],[/(@digits)\\.(@digits)([eE][\\-+]?(@digits))?[fFdD]?/,\"number.float\"],[/0[xX](@hexdigits)[Ll]?/,\"number.hex\"],[/0(@octaldigits)[Ll]?/,\"number.octal\"],[/0[bB](@binarydigits)[Ll]?/,\"number.binary\"],[/(@digits)[fFdD]/,\"number.float\"],[/(@digits)[lL]?/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"\"\"/,\"string\",\"@multistring\"],[/\"/,\"string\",\"@string\"],[/'[^\\\\']'/,\"string\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",\"string\"]],[/'/,\"string.invalid\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\/\\*\\*(?!\\/)/,\"comment.doc\",\"@javadoc\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],javadoc:[[/[^\\/*]+/,\"comment.doc\"],[/\\/\\*/,\"comment.doc\",\"@push\"],[/\\/\\*/,\"comment.doc.invalid\"],[/\\*\\//,\"comment.doc\",\"@pop\"],[/[\\/*]/,\"comment.doc\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string\",\"@pop\"]],multistring:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"\"\"/,\"string\",\"@pop\"],[/./,\"string\"]]}};export{e as conf,t as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/DWGz5Zuj.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\#\\$\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]},{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"},{open:\"'\",close:\"'\"},{open:'\"',close:'\"'}],folding:{markers:{start:new RegExp(\"^\\\\s*#region\\\\b\"),end:new RegExp(\"^\\\\s*#endregion\\\\b\")}}},t={defaultToken:\"\",tokenPostfix:\".cs\",brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"}],keywords:[\"extern\",\"alias\",\"using\",\"bool\",\"decimal\",\"sbyte\",\"byte\",\"short\",\"ushort\",\"int\",\"uint\",\"long\",\"ulong\",\"char\",\"float\",\"double\",\"object\",\"dynamic\",\"string\",\"assembly\",\"is\",\"as\",\"ref\",\"out\",\"this\",\"base\",\"new\",\"typeof\",\"void\",\"checked\",\"unchecked\",\"default\",\"delegate\",\"var\",\"const\",\"if\",\"else\",\"switch\",\"case\",\"while\",\"do\",\"for\",\"foreach\",\"in\",\"break\",\"continue\",\"goto\",\"return\",\"throw\",\"try\",\"catch\",\"finally\",\"lock\",\"yield\",\"from\",\"let\",\"where\",\"join\",\"on\",\"equals\",\"into\",\"orderby\",\"ascending\",\"descending\",\"select\",\"group\",\"by\",\"namespace\",\"partial\",\"class\",\"field\",\"event\",\"method\",\"param\",\"public\",\"protected\",\"internal\",\"private\",\"abstract\",\"sealed\",\"static\",\"struct\",\"readonly\",\"volatile\",\"virtual\",\"override\",\"params\",\"get\",\"set\",\"add\",\"remove\",\"operator\",\"true\",\"false\",\"implicit\",\"explicit\",\"interface\",\"enum\",\"null\",\"async\",\"await\",\"fixed\",\"sizeof\",\"stackalloc\",\"unsafe\",\"nameof\",\"when\"],namespaceFollows:[\"namespace\",\"using\"],parenFollows:[\"if\",\"for\",\"while\",\"switch\",\"foreach\",\"using\",\"catch\",\"when\"],operators:[\"=\",\"??\",\"||\",\"&&\",\"|\",\"^\",\"&\",\"==\",\"!=\",\"<=\",\">=\",\"<<\",\"+\",\"-\",\"*\",\"/\",\"%\",\"!\",\"~\",\"++\",\"--\",\"+=\",\"-=\",\"*=\",\"/=\",\"%=\",\"&=\",\"|=\",\"^=\",\"<<=\",\">>=\",\">>\",\"=>\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/\\@?[a-zA-Z_]\\w*/,{cases:{\"@namespaceFollows\":{token:\"keyword.$0\",next:\"@namespace\"},\"@keywords\":{token:\"keyword.$0\",next:\"@qualified\"},\"@default\":{token:\"identifier\",next:\"@qualified\"}}}],{include:\"@whitespace\"},[/}/,{cases:{\"$S2==interpolatedstring\":{token:\"string.quote\",next:\"@pop\"},\"$S2==litinterpstring\":{token:\"string.quote\",next:\"@pop\"},\"@default\":\"@brackets\"}}],[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/[0-9_]*\\.[0-9_]+([eE][\\-+]?\\d+)?[fFdD]?/,\"number.float\"],[/0[xX][0-9a-fA-F_]+/,\"number.hex\"],[/0[bB][01_]+/,\"number.hex\"],[/[0-9_]+/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,{token:\"string.quote\",next:\"@string\"}],[/\\$\\@\"/,{token:\"string.quote\",next:\"@litinterpstring\"}],[/\\@\"/,{token:\"string.quote\",next:\"@litstring\"}],[/\\$\"/,{token:\"string.quote\",next:\"@interpolatedstring\"}],[/'[^\\\\']'/,\"string\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",\"string\"]],[/'/,\"string.invalid\"]],qualified:[[/[a-zA-Z_][\\w]*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],[/\\./,\"delimiter\"],[\"\",\"\",\"@pop\"]],namespace:[{include:\"@whitespace\"},[/[A-Z]\\w*/,\"namespace\"],[/[\\.=]/,\"delimiter\"],[\"\",\"\",\"@pop\"]],comment:[[/[^\\/*]+/,\"comment\"],[\"\\\\*/\",\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,{token:\"string.quote\",next:\"@pop\"}]],litstring:[[/[^\"]+/,\"string\"],[/\"\"/,\"string.escape\"],[/\"/,{token:\"string.quote\",next:\"@pop\"}]],litinterpstring:[[/[^\"{]+/,\"string\"],[/\"\"/,\"string.escape\"],[/{{/,\"string.escape\"],[/}}/,\"string.escape\"],[/{/,{token:\"string.quote\",next:\"root.litinterpstring\"}],[/\"/,{token:\"string.quote\",next:\"@pop\"}]],interpolatedstring:[[/[^\\\\\"{]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/{{/,\"string.escape\"],[/}}/,\"string.escape\"],[/{/,{token:\"string.quote\",next:\"root.interpolatedstring\"}],[/\"/,{token:\"string.quote\",next:\"@pop\"}]],whitespace:[[/^[ \\t\\v\\f]*#((r)|(load))(?=\\s)/,\"directive.csx\"],[/^[ \\t\\v\\f]*#\\w.*$/,\"namespace.cpp\"],[/[ \\t\\v\\f\\r\\n]+/,\"\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]]}};export{e as conf,t as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/DWJ3fJO_.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"RegExp\",\"fileTypes\":[\"re\"],\"name\":\"regexp\",\"patterns\":[{\"include\":\"#regexp-expression\"}],\"repository\":{\"codetags\":{\"captures\":{\"1\":{\"name\":\"keyword.codetag.notation.python\"}},\"match\":\"(?:\\\\\\\\b(NOTE|XXX|HACK|FIXME|BUG|TODO)\\\\\\\\b)\"},\"fregexp-base-expression\":{\"patterns\":[{\"include\":\"#fregexp-quantifier\"},{\"include\":\"#fstring-formatting-braces\"},{\"match\":\"\\\\\\\\{.*?\\\\\\\\}\"},{\"include\":\"#regexp-base-common\"}]},\"fregexp-quantifier\":{\"match\":\"\\\\\\\\{\\\\\\\\{(\\\\\\\\d+|\\\\\\\\d+,(\\\\\\\\d+)?|,\\\\\\\\d+)\\\\\\\\}\\\\\\\\}\",\"name\":\"keyword.operator.quantifier.regexp\"},\"fstring-formatting-braces\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"},\"2\":{\"name\":\"invalid.illegal.brace.python\"},\"3\":{\"name\":\"constant.character.format.placeholder.other.python\"}},\"comment\":\"empty braces are illegal\",\"match\":\"({)(\\\\\\\\s*?)(})\"},{\"match\":\"({{|}})\",\"name\":\"constant.character.escape.python\"}]},\"regexp-backreference\":{\"captures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.begin.regexp\"},\"2\":{\"name\":\"entity.name.tag.named.backreference.regexp\"},\"3\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.end.regexp\"}},\"match\":\"(\\\\\\\\()(\\\\\\\\?P=\\\\\\\\w+(?:\\\\\\\\s+[[:alnum:]]+)?)(\\\\\\\\))\",\"name\":\"meta.backreference.named.regexp\"},\"regexp-backreference-number\":{\"captures\":{\"1\":{\"name\":\"entity.name.tag.backreference.regexp\"}},\"match\":\"(\\\\\\\\\\\\\\\\[1-9]\\\\\\\\d?)\",\"name\":\"meta.backreference.regexp\"},\"regexp-base-common\":{\"patterns\":[{\"match\":\"\\\\\\\\.\",\"name\":\"support.other.match.any.regexp\"},{\"match\":\"\\\\\\\\^\",\"name\":\"support.other.match.begin.regexp\"},{\"match\":\"\\\\\\\\$\",\"name\":\"support.other.match.end.regexp\"},{\"match\":\"[+*?]\\\\\\\\??\",\"name\":\"keyword.operator.quantifier.regexp\"},{\"match\":\"\\\\\\\\|\",\"name\":\"keyword.operator.disjunction.regexp\"},{\"include\":\"#regexp-escape-sequence\"}]},\"regexp-base-expression\":{\"patterns\":[{\"include\":\"#regexp-quantifier\"},{\"include\":\"#regexp-base-common\"}]},\"regexp-character-set\":{\"patterns\":[{\"match\":\"\\\\\\\\[\\\\\\\\^?\\\\\\\\](?!.*?\\\\\\\\])\"},{\"begin\":\"(\\\\\\\\[)(\\\\\\\\^)?(\\\\\\\\])?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.character.set.begin.regexp constant.other.set.regexp\"},\"2\":{\"name\":\"keyword.operator.negation.regexp\"},\"3\":{\"name\":\"constant.character.set.regexp\"}},\"end\":\"(\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.character.set.end.regexp constant.other.set.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.character.set.regexp\",\"patterns\":[{\"include\":\"#regexp-charecter-set-escapes\"},{\"match\":\"[^\\\\\\\\n]\",\"name\":\"constant.character.set.regexp\"}]}]},\"regexp-charecter-set-escapes\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[abfnrtv\\\\\\\\\\\\\\\\]\",\"name\":\"constant.character.escape.regexp\"},{\"include\":\"#regexp-escape-special\"},{\"match\":\"\\\\\\\\\\\\\\\\([0-7]{1,3})\",\"name\":\"constant.character.escape.regexp\"},{\"include\":\"#regexp-escape-character\"},{\"include\":\"#regexp-escape-unicode\"},{\"include\":\"#regexp-escape-catchall\"}]},\"regexp-comments\":{\"begin\":\"\\\\\\\\(\\\\\\\\?#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.comment.begin.regexp\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.comment.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"comment.regexp\",\"patterns\":[{\"include\":\"#codetags\"}]},\"regexp-conditional\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?\\\\\\\\((\\\\\\\\w+(?:\\\\\\\\s+[[:alnum:]]+)?|\\\\\\\\d+)\\\\\\\\)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.conditional.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.conditional.begin.regexp\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#regexp-expression\"}]},\"regexp-escape-catchall\":{\"match\":\"\\\\\\\\\\\\\\\\(.|\\\\\\\\n)\",\"name\":\"constant.character.escape.regexp\"},\"regexp-escape-character\":{\"match\":\"\\\\\\\\\\\\\\\\(x[0-9A-Fa-f]{2}|0[0-7]{1,2}|[0-7]{3})\",\"name\":\"constant.character.escape.regexp\"},\"regexp-escape-sequence\":{\"patterns\":[{\"include\":\"#regexp-escape-special\"},{\"include\":\"#regexp-escape-character\"},{\"include\":\"#regexp-escape-unicode\"},{\"include\":\"#regexp-backreference-number\"},{\"include\":\"#regexp-escape-catchall\"}]},\"regexp-escape-special\":{\"match\":\"\\\\\\\\\\\\\\\\([AbBdDsSwWZ])\",\"name\":\"support.other.escape.special.regexp\"},\"regexp-escape-unicode\":{\"match\":\"\\\\\\\\\\\\\\\\(u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})\",\"name\":\"constant.character.unicode.regexp\"},\"regexp-expression\":{\"patterns\":[{\"include\":\"#regexp-base-expression\"},{\"include\":\"#regexp-character-set\"},{\"include\":\"#regexp-comments\"},{\"include\":\"#regexp-flags\"},{\"include\":\"#regexp-named-group\"},{\"include\":\"#regexp-backreference\"},{\"include\":\"#regexp-lookahead\"},{\"include\":\"#regexp-lookahead-negative\"},{\"include\":\"#regexp-lookbehind\"},{\"include\":\"#regexp-lookbehind-negative\"},{\"include\":\"#regexp-conditional\"},{\"include\":\"#regexp-parentheses-non-capturing\"},{\"include\":\"#regexp-parentheses\"}]},\"regexp-flags\":{\"match\":\"\\\\\\\\(\\\\\\\\?[aiLmsux]+\\\\\\\\)\",\"name\":\"storage.modifier.flag.regexp\"},\"regexp-lookahead\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookahead.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookahead.begin.regexp\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#regexp-expression\"}]},\"regexp-lookahead-negative\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?!\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookahead.negative.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookahead.begin.regexp\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#regexp-expression\"}]},\"regexp-lookbehind\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?<=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookbehind.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookbehind.begin.regexp\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#regexp-expression\"}]},\"regexp-lookbehind-negative\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?<!\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookbehind.negative.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookbehind.begin.regexp\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#regexp-expression\"}]},\"regexp-named-group\":{\"begin\":\"(\\\\\\\\()(\\\\\\\\?P<\\\\\\\\w+(?:\\\\\\\\s+[[:alnum:]]+)?>)\",\"beginCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp\"},\"2\":{\"name\":\"entity.name.tag.named.group.regexp\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.named.regexp\",\"patterns\":[{\"include\":\"#regexp-expression\"}]},\"regexp-parentheses\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#regexp-expression\"}]},\"regexp-parentheses-non-capturing\":{\"begin\":\"\\\\\\\\(\\\\\\\\?:\",\"beginCaptures\":{\"0\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#regexp-expression\"}]},\"regexp-quantifier\":{\"match\":\"\\\\\\\\{(\\\\\\\\d+|\\\\\\\\d+,(\\\\\\\\d+)?|,\\\\\\\\d+)\\\\\\\\}\",\"name\":\"keyword.operator.quantifier.regexp\"}},\"scopeName\":\"source.regexp.python\",\"aliases\":[\"regex\"]}')),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DWedfzmr.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.background\":\"#2A2A37\",\"activityBar.foreground\":\"#DCD7BA\",\"activityBarBadge.background\":\"#658594\",\"activityBarBadge.foreground\":\"#DCD7BA\",\"badge.background\":\"#2A2A37\",\"button.background\":\"#2A2A37\",\"button.foreground\":\"#C8C093\",\"button.secondaryBackground\":\"#223249\",\"button.secondaryForeground\":\"#DCD7BA\",\"checkbox.border\":\"#223249\",\"debugToolBar.background\":\"#16161D\",\"descriptionForeground\":\"#DCD7BA\",\"diffEditor.insertedTextBackground\":\"#2B332880\",\"dropdown.background\":\"#16161D\",\"dropdown.border\":\"#16161D\",\"editor.background\":\"#1F1F28\",\"editor.findMatchBackground\":\"#2D4F67\",\"editor.findMatchBorder\":\"#FF9E3B\",\"editor.findMatchHighlightBackground\":\"#2D4F6780\",\"editor.foreground\":\"#DCD7BA\",\"editor.lineHighlightBackground\":\"#363646\",\"editor.selectionBackground\":\"#223249\",\"editor.selectionHighlightBackground\":\"#36364680\",\"editor.selectionHighlightBorder\":\"#54546D\",\"editor.wordHighlightBackground\":\"#3636464D\",\"editor.wordHighlightBorder\":\"#54546D\",\"editor.wordHighlightStrongBackground\":\"#3636464D\",\"editor.wordHighlightStrongBorder\":\"#54546D\",\"editorBracketHighlight.foreground1\":\"#957FB8\",\"editorBracketHighlight.foreground2\":\"#FFA066\",\"editorBracketHighlight.foreground3\":\"#7E9CD8\",\"editorBracketHighlight.foreground4\":\"#D27E99\",\"editorBracketHighlight.foreground5\":\"#E6C384\",\"editorBracketHighlight.foreground6\":\"#7AA89F\",\"editorBracketHighlight.unexpectedBracket.foreground\":\"#FF5D62\",\"editorBracketMatch.background\":\"#16161D\",\"editorBracketMatch.border\":\"#54546D\",\"editorBracketPairGuide.activeBackground1\":\"#957FB8\",\"editorBracketPairGuide.activeBackground2\":\"#FFA066\",\"editorBracketPairGuide.activeBackground3\":\"#7E9CD8\",\"editorBracketPairGuide.activeBackground4\":\"#D27E99\",\"editorBracketPairGuide.activeBackground5\":\"#E6C384\",\"editorBracketPairGuide.activeBackground6\":\"#7AA89F\",\"editorCursor.background\":\"#1F1F28\",\"editorCursor.foreground\":\"#DCD7BA\",\"editorError.foreground\":\"#E82424\",\"editorGroup.border\":\"#16161D\",\"editorGroupHeader.tabsBackground\":\"#16161D\",\"editorGutter.addedBackground\":\"#76946A\",\"editorGutter.deletedBackground\":\"#C34043\",\"editorGutter.modifiedBackground\":\"#DCA561\",\"editorHoverWidget.background\":\"#1F1F28\",\"editorHoverWidget.border\":\"#2A2A37\",\"editorHoverWidget.highlightForeground\":\"#658594\",\"editorIndentGuide.activeBackground1\":\"#363646\",\"editorIndentGuide.background1\":\"#2A2A37\",\"editorInlayHint.background\":\"#1F1F28\",\"editorInlayHint.foreground\":\"#727169\",\"editorLineNumber.activeForeground\":\"#FFA066\",\"editorLineNumber.foreground\":\"#54546D\",\"editorMarkerNavigation.background\":\"#363646\",\"editorRuler.foreground\":\"#363646\",\"editorSuggestWidget.background\":\"#223249\",\"editorSuggestWidget.border\":\"#223249\",\"editorSuggestWidget.selectedBackground\":\"#2D4F67\",\"editorWarning.foreground\":\"#FF9E3B\",\"editorWhitespace.foreground\":\"#1F1F28\",\"editorWidget.background\":\"#1F1F28\",\"focusBorder\":\"#223249\",\"foreground\":\"#DCD7BA\",\"gitDecoration.ignoredResourceForeground\":\"#727169\",\"input.background\":\"#16161D\",\"list.activeSelectionBackground\":\"#363646\",\"list.activeSelectionForeground\":\"#DCD7BA\",\"list.focusBackground\":\"#2A2A37\",\"list.focusForeground\":\"#DCD7BA\",\"list.highlightForeground\":\"#7E9CD8\",\"list.hoverBackground\":\"#363646\",\"list.hoverForeground\":\"#DCD7BA\",\"list.inactiveSelectionBackground\":\"#2A2A37\",\"list.inactiveSelectionForeground\":\"#DCD7BA\",\"list.warningForeground\":\"#FF9E3B\",\"menu.background\":\"#363646\",\"menu.border\":\"#16161D\",\"menu.foreground\":\"#DCD7BA\",\"menu.selectionBackground\":\"#16161D\",\"menu.selectionForeground\":\"#DCD7BA\",\"menu.separatorBackground\":\"#54546D\",\"menubar.selectionBackground\":\"#16161D\",\"menubar.selectionForeground\":\"#DCD7BA\",\"minimapGutter.addedBackground\":\"#76946A\",\"minimapGutter.deletedBackground\":\"#C34043\",\"minimapGutter.modifiedBackground\":\"#DCA561\",\"panel.border\":\"#16161D\",\"panelSectionHeader.background\":\"#1F1F28\",\"peekView.border\":\"#54546D\",\"peekViewEditor.background\":\"#2A2A37\",\"peekViewEditor.matchHighlightBackground\":\"#2D4F67\",\"peekViewResult.background\":\"#363646\",\"scrollbar.shadow\":\"#363646\",\"scrollbarSlider.activeBackground\":\"#2A2A3780\",\"scrollbarSlider.background\":\"#54546D66\",\"scrollbarSlider.hoverBackground\":\"#54546D80\",\"settings.focusedRowBackground\":\"#363646\",\"settings.headerForeground\":\"#DCD7BA\",\"sideBar.background\":\"#1F1F28\",\"sideBar.border\":\"#16161D\",\"sideBar.foreground\":\"#DCD7BA\",\"sideBarSectionHeader.background\":\"#363646\",\"sideBarSectionHeader.foreground\":\"#DCD7BA\",\"statusBar.background\":\"#16161D\",\"statusBar.debuggingBackground\":\"#E82424\",\"statusBar.debuggingBorder\":\"#957FB8\",\"statusBar.debuggingForeground\":\"#DCD7BA\",\"statusBar.foreground\":\"#C8C093\",\"statusBar.noFolderBackground\":\"#1F1F28\",\"statusBarItem.hoverBackground\":\"#363646\",\"statusBarItem.remoteBackground\":\"#2D4F67\",\"statusBarItem.remoteForeground\":\"#DCD7BA\",\"tab.activeBackground\":\"#2A2A37\",\"tab.activeForeground\":\"#7E9CD8\",\"tab.border\":\"#2A2A37\",\"tab.hoverBackground\":\"#363646\",\"tab.inactiveBackground\":\"#1A1A22\",\"tab.unfocusedHoverBackground\":\"#1F1F28\",\"terminal.ansiBlack\":\"#16161D\",\"terminal.ansiBlue\":\"#7E9CD8\",\"terminal.ansiBrightBlack\":\"#727169\",\"terminal.ansiBrightBlue\":\"#7FB4CA\",\"terminal.ansiBrightCyan\":\"#7AA89F\",\"terminal.ansiBrightGreen\":\"#98BB6C\",\"terminal.ansiBrightMagenta\":\"#938AA9\",\"terminal.ansiBrightRed\":\"#E82424\",\"terminal.ansiBrightWhite\":\"#DCD7BA\",\"terminal.ansiBrightYellow\":\"#E6C384\",\"terminal.ansiCyan\":\"#6A9589\",\"terminal.ansiGreen\":\"#76946A\",\"terminal.ansiMagenta\":\"#957FB8\",\"terminal.ansiRed\":\"#C34043\",\"terminal.ansiWhite\":\"#C8C093\",\"terminal.ansiYellow\":\"#C0A36E\",\"terminal.background\":\"#1F1F28\",\"terminal.border\":\"#16161D\",\"terminal.foreground\":\"#DCD7BA\",\"terminal.selectionBackground\":\"#223249\",\"textBlockQuote.background\":\"#1F1F28\",\"textBlockQuote.border\":\"#16161D\",\"textLink.foreground\":\"#6A9589\",\"textPreformat.foreground\":\"#FF9E3B\",\"titleBar.activeBackground\":\"#363646\",\"titleBar.activeForeground\":\"#DCD7BA\",\"titleBar.inactiveBackground\":\"#1F1F28\",\"titleBar.inactiveForeground\":\"#DCD7BA\",\"walkThrough.embeddedEditorBackground\":\"#1F1F28\"},\"displayName\":\"Kanagawa Wave\",\"name\":\"kanagawa-wave\",\"semanticHighlighting\":true,\"semanticTokenColors\":{\"arithmetic\":\"#C0A36E\",\"function\":\"#7E9CD8\",\"keyword.controlFlow\":{\"fontStyle\":\"bold\",\"foreground\":\"#957FB8\"},\"macro\":\"#E46876\",\"method\":\"#7FB4CA\",\"operator\":\"#C0A36E\",\"parameter\":\"#B8B4D0\",\"parameter.declaration\":\"#B8B4D0\",\"parameter.definition\":\"#B8B4D0\",\"variable\":\"#DCD7BA\",\"variable.readonly\":\"#DCD7BA\",\"variable.readonly.defaultLibrary\":\"#DCD7BA\",\"variable.readonly.local\":\"#DCD7BA\"},\"tokenColors\":[{\"scope\":[\"comment\",\"punctuation.definition.comment\"],\"settings\":{\"foreground\":\"#727169\"}},{\"scope\":[\"variable\",\"string constant.other.placeholder\"],\"settings\":{\"foreground\":\"#DCD7BA\"}},{\"scope\":[\"constant.other.color\"],\"settings\":{\"foreground\":\"#FFA066\"}},{\"scope\":[\"invalid\",\"invalid.illegal\"],\"settings\":{\"foreground\":\"#E82424\"}},{\"scope\":[\"storage.type\"],\"settings\":{\"foreground\":\"#957FB8\"}},{\"scope\":[\"storage.modifier\"],\"settings\":{\"foreground\":\"#957FB8\"}},{\"scope\":[\"keyword.control.flow\",\"keyword.control.conditional\",\"keyword.control.loop\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#957FB8\"}},{\"scope\":[\"keyword.control\",\"constant.other.color\",\"meta.tag\",\"keyword.other.template\",\"keyword.other.substitution\",\"keyword.other\"],\"settings\":{\"foreground\":\"#957FB8\"}},{\"scope\":[\"keyword.other.definition.ini\"],\"settings\":{\"foreground\":\"#FFA066\"}},{\"scope\":[\"keyword.control.trycatch\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#FF5D62\"}},{\"scope\":[\"keyword.other.unit\",\"keyword.operator\"],\"settings\":{\"foreground\":\"#E6C384\"}},{\"scope\":[\"punctuation\",\"punctuation.definition.tag\",\"punctuation.separator.inheritance.php\",\"punctuation.definition.tag.html\",\"punctuation.definition.tag.begin.html\",\"punctuation.definition.tag.end.html\",\"punctuation.section.embedded\",\"meta.brace\",\"keyword.operator.type.annotation\",\"keyword.operator.namespace\"],\"settings\":{\"foreground\":\"#9CABCA\"}},{\"scope\":[\"entity.name.tag\",\"meta.tag.sgml\"],\"settings\":{\"foreground\":\"#E6C384\"}},{\"scope\":[\"entity.name.function\",\"meta.function-call\",\"variable.function\",\"support.function\"],\"settings\":{\"foreground\":\"#7E9CD8\"}},{\"scope\":[\"keyword.other.special-method\"],\"settings\":{\"foreground\":\"#7FB4CA\"}},{\"scope\":[\"entity.name.function.macro\"],\"settings\":{\"foreground\":\"#E46876\"}},{\"scope\":[\"meta.block variable.other\"],\"settings\":{\"foreground\":\"#DCD7BA\"}},{\"scope\":[\"variable.other.enummember\"],\"settings\":{\"foreground\":\"#FFA066\"}},{\"scope\":[\"support.other.variable\"],\"settings\":{\"foreground\":\"#DCD7BA\"}},{\"scope\":[\"string.other.link\"],\"settings\":{\"foreground\":\"#7FB4CA\"}},{\"scope\":[\"constant.numeric\",\"constant.language\",\"support.constant\",\"constant.character\",\"constant.escape\"],\"settings\":{\"foreground\":\"#FFA066\"}},{\"scope\":[\"constant.language.boolean\"],\"settings\":{\"foreground\":\"#FFA066\"}},{\"scope\":[\"constant.numeric\"],\"settings\":{\"foreground\":\"#D27E99\"}},{\"scope\":[\"string\",\"punctuation.definition.string\",\"constant.other.symbol\",\"constant.other.key\",\"entity.other.inherited-class\",\"markup.heading\",\"markup.inserted.git_gutter\",\"meta.group.braces.curly constant.other.object.key.js string.unquoted.label.js\",\"markup.inline.raw.string\"],\"settings\":{\"foreground\":\"#98BB6C\"}},{\"scope\":[\"entity.name\",\"support.type\",\"support.class\",\"support.other.namespace.use.php\",\"meta.use.php\",\"support.other.namespace.php\",\"support.type.sys-types\"],\"settings\":{\"foreground\":\"#7AA89F\"}},{\"scope\":[\"entity.name.type.module\",\"entity.name.namespace\"],\"settings\":{\"foreground\":\"#E6C384\"}},{\"scope\":[\"entity.name.import.go\"],\"settings\":{\"foreground\":\"#98BB6C\"}},{\"scope\":[\"keyword.blade\"],\"settings\":{\"foreground\":\"#957FB8\"}},{\"scope\":[\"variable.other.property\"],\"settings\":{\"foreground\":\"#E6C384\"}},{\"scope\":[\"keyword.control.import\",\"keyword.import\",\"meta.import\"],\"settings\":{\"foreground\":\"#FFA066\"}},{\"scope\":[\"source.css support.type.property-name\",\"source.sass support.type.property-name\",\"source.scss support.type.property-name\",\"source.less support.type.property-name\",\"source.stylus support.type.property-name\",\"source.postcss support.type.property-name\"],\"settings\":{\"foreground\":\"#7AA89F\"}},{\"scope\":[\"entity.name.module.js\",\"variable.import.parameter.js\",\"variable.other.class.js\"],\"settings\":{\"foreground\":\"#FF5D62\"}},{\"scope\":[\"variable.language\"],\"settings\":{\"foreground\":\"#FF5D62\"}},{\"scope\":[\"entity.name.method.js\"],\"settings\":{\"foreground\":\"#7FB4CA\"}},{\"scope\":[\"meta.class-method.js entity.name.function.js\",\"variable.function.constructor\"],\"settings\":{\"foreground\":\"#7FB4CA\"}},{\"scope\":[\"entity.other.attribute-name\"],\"settings\":{\"foreground\":\"#957FB8\"}},{\"scope\":[\"entity.other.attribute-name.class\"],\"settings\":{\"foreground\":\"#E6C384\"}},{\"scope\":[\"source.sass keyword.control\"],\"settings\":{\"foreground\":\"#7FB4CA\"}},{\"scope\":[\"markup.inserted\"],\"settings\":{\"foreground\":\"#76946A\"}},{\"scope\":[\"markup.deleted\"],\"settings\":{\"foreground\":\"#C34043\"}},{\"scope\":[\"markup.changed\"],\"settings\":{\"foreground\":\"#DCA561\"}},{\"scope\":[\"string.regexp\"],\"settings\":{\"foreground\":\"#C0A36E\"}},{\"scope\":[\"constant.character.escape\"],\"settings\":{\"foreground\":\"#7FB4CA\"}},{\"scope\":[\"*url*\",\"*link*\",\"*uri*\"],\"settings\":{\"fontStyle\":\"underline\"}},{\"scope\":[\"tag.decorator.js entity.name.tag.js\",\"tag.decorator.js punctuation.definition.tag.js\"],\"settings\":{\"foreground\":\"#957FB8\"}},{\"scope\":[\"source.js constant.other.object.key.js string.unquoted.label.js\"],\"settings\":{\"foreground\":\"#FF5D62\"}},{\"scope\":[\"source.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#D27E99\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#E6C384\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#FFA066\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#FF5D62\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#FFA066\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#7E9CD8\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#D27E99\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#957FB8\"}},{\"scope\":[\"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json\"],\"settings\":{\"foreground\":\"#98BB6C\"}},{\"scope\":[\"meta.tag JSXNested\",\"meta.jsx.children\",\"text.html\",\"text.log\"],\"settings\":{\"foreground\":\"#DCD7BA\"}},{\"scope\":[\"text.html.markdown\",\"punctuation.definition.list_item.markdown\"],\"settings\":{\"foreground\":\"#DCD7BA\"}},{\"scope\":[\"text.html.markdown markup.inline.raw.markdown\"],\"settings\":{\"foreground\":\"#957FB8\"}},{\"scope\":[\"text.html.markdown markup.inline.raw.markdown punctuation.definition.raw.markdown\"],\"settings\":{\"foreground\":\"#957FB8\"}},{\"scope\":[\"markdown.heading\",\"entity.name.section.markdown\",\"markup.heading.markdown\"],\"settings\":{\"foreground\":\"#7E9CD8\"}},{\"scope\":[\"markup.italic\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#E46876\"}},{\"scope\":[\"markup.bold\",\"markup.bold string\"],\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":[\"markup.bold markup.italic\",\"markup.italic markup.bold\",\"markup.quote markup.bold\",\"markup.bold markup.italic string\",\"markup.italic markup.bold string\",\"markup.quote markup.bold string\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#E46876\"}},{\"scope\":[\"markup.underline\"],\"settings\":{\"fontStyle\":\"underline\",\"foreground\":\"#7FB4CA\"}},{\"scope\":[\"markup.quote punctuation.definition.blockquote.markdown\"],\"settings\":{\"foreground\":\"#727169\"}},{\"scope\":[\"markup.quote\"],\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":[\"string.other.link.title.markdown\"],\"settings\":{\"foreground\":\"#FFA066\"}},{\"scope\":[\"string.other.link.description.title.markdown\"],\"settings\":{\"foreground\":\"#957FB8\"}},{\"scope\":[\"constant.other.reference.link.markdown\"],\"settings\":{\"foreground\":\"#E6C384\"}},{\"scope\":[\"markup.raw.block\"],\"settings\":{\"foreground\":\"#957FB8\"}},{\"scope\":[\"markup.raw.block.fenced.markdown\"],\"settings\":{\"foreground\":\"#727169\"}},{\"scope\":[\"punctuation.definition.fenced.markdown\"],\"settings\":{\"foreground\":\"#727169\"}},{\"scope\":[\"markup.raw.block.fenced.markdown\",\"variable.language.fenced.markdown\",\"punctuation.section.class.end\"],\"settings\":{\"foreground\":\"#DCD7BA\"}},{\"scope\":[\"variable.language.fenced.markdown\"],\"settings\":{\"foreground\":\"#727169\"}},{\"scope\":[\"meta.separator\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#9CABCA\"}},{\"scope\":[\"markup.table\"],\"settings\":{\"foreground\":\"#DCD7BA\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DXXGBMMv.js",
    "content": "import{conf as t,language as e}from\"./DmDlXweU.js\";import\"./CU_MfyYc.js\";/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var o=t,r={defaultToken:\"invalid\",tokenPostfix:\".js\",keywords:[\"break\",\"case\",\"catch\",\"class\",\"continue\",\"const\",\"constructor\",\"debugger\",\"default\",\"delete\",\"do\",\"else\",\"export\",\"extends\",\"false\",\"finally\",\"for\",\"from\",\"function\",\"get\",\"if\",\"import\",\"in\",\"instanceof\",\"let\",\"new\",\"null\",\"return\",\"set\",\"static\",\"super\",\"switch\",\"symbol\",\"this\",\"throw\",\"true\",\"try\",\"typeof\",\"undefined\",\"var\",\"void\",\"while\",\"with\",\"yield\",\"async\",\"await\",\"of\"],typeKeywords:[],operators:e.operators,symbols:e.symbols,escapes:e.escapes,digits:e.digits,octaldigits:e.octaldigits,binarydigits:e.binarydigits,hexdigits:e.hexdigits,regexpctl:e.regexpctl,regexpesc:e.regexpesc,tokenizer:e.tokenizer};export{o as conf,r as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/DXbdFlpD.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.background\":\"#003847\",\"badge.background\":\"#047aa6\",\"button.background\":\"#2AA19899\",\"debugExceptionWidget.background\":\"#00212B\",\"debugExceptionWidget.border\":\"#AB395B\",\"debugToolBar.background\":\"#00212B\",\"dropdown.background\":\"#00212B\",\"dropdown.border\":\"#2AA19899\",\"editor.background\":\"#002B36\",\"editor.foreground\":\"#839496\",\"editor.lineHighlightBackground\":\"#073642\",\"editor.selectionBackground\":\"#274642\",\"editor.selectionHighlightBackground\":\"#005A6FAA\",\"editor.wordHighlightBackground\":\"#004454AA\",\"editor.wordHighlightStrongBackground\":\"#005A6FAA\",\"editorBracketHighlight.foreground1\":\"#cdcdcdff\",\"editorBracketHighlight.foreground2\":\"#b58900ff\",\"editorBracketHighlight.foreground3\":\"#d33682ff\",\"editorCursor.foreground\":\"#D30102\",\"editorGroup.border\":\"#00212B\",\"editorGroup.dropBackground\":\"#2AA19844\",\"editorGroupHeader.tabsBackground\":\"#004052\",\"editorHoverWidget.background\":\"#004052\",\"editorIndentGuide.activeBackground\":\"#C3E1E180\",\"editorIndentGuide.background\":\"#93A1A180\",\"editorLineNumber.activeForeground\":\"#949494\",\"editorMarkerNavigationError.background\":\"#AB395B\",\"editorMarkerNavigationWarning.background\":\"#5B7E7A\",\"editorWhitespace.foreground\":\"#93A1A180\",\"editorWidget.background\":\"#00212B\",\"errorForeground\":\"#ffeaea\",\"focusBorder\":\"#2AA19899\",\"input.background\":\"#003847\",\"input.foreground\":\"#93A1A1\",\"input.placeholderForeground\":\"#93A1A1AA\",\"inputOption.activeBorder\":\"#2AA19899\",\"inputValidation.errorBackground\":\"#571b26\",\"inputValidation.errorBorder\":\"#a92049\",\"inputValidation.infoBackground\":\"#052730\",\"inputValidation.infoBorder\":\"#363b5f\",\"inputValidation.warningBackground\":\"#5d5938\",\"inputValidation.warningBorder\":\"#9d8a5e\",\"list.activeSelectionBackground\":\"#005A6F\",\"list.dropBackground\":\"#00445488\",\"list.highlightForeground\":\"#1ebcc5\",\"list.hoverBackground\":\"#004454AA\",\"list.inactiveSelectionBackground\":\"#00445488\",\"minimap.selectionHighlight\":\"#274642\",\"panel.border\":\"#2b2b4a\",\"peekView.border\":\"#2b2b4a\",\"peekViewEditor.background\":\"#10192c\",\"peekViewEditor.matchHighlightBackground\":\"#7744AA40\",\"peekViewResult.background\":\"#00212B\",\"peekViewTitle.background\":\"#00212B\",\"pickerGroup.border\":\"#2AA19899\",\"pickerGroup.foreground\":\"#2AA19899\",\"ports.iconRunningProcessForeground\":\"#369432\",\"progressBar.background\":\"#047aa6\",\"quickInputList.focusBackground\":\"#005A6F\",\"selection.background\":\"#2AA19899\",\"sideBar.background\":\"#00212B\",\"sideBarTitle.foreground\":\"#93A1A1\",\"statusBar.background\":\"#00212B\",\"statusBar.debuggingBackground\":\"#00212B\",\"statusBar.foreground\":\"#93A1A1\",\"statusBar.noFolderBackground\":\"#00212B\",\"statusBarItem.prominentBackground\":\"#003847\",\"statusBarItem.prominentHoverBackground\":\"#003847\",\"statusBarItem.remoteBackground\":\"#2AA19899\",\"tab.activeBackground\":\"#002B37\",\"tab.activeForeground\":\"#d6dbdb\",\"tab.border\":\"#003847\",\"tab.inactiveBackground\":\"#004052\",\"tab.inactiveForeground\":\"#93A1A1\",\"tab.lastPinnedBorder\":\"#2AA19844\",\"terminal.ansiBlack\":\"#073642\",\"terminal.ansiBlue\":\"#268bd2\",\"terminal.ansiBrightBlack\":\"#002b36\",\"terminal.ansiBrightBlue\":\"#839496\",\"terminal.ansiBrightCyan\":\"#93a1a1\",\"terminal.ansiBrightGreen\":\"#586e75\",\"terminal.ansiBrightMagenta\":\"#6c71c4\",\"terminal.ansiBrightRed\":\"#cb4b16\",\"terminal.ansiBrightWhite\":\"#fdf6e3\",\"terminal.ansiBrightYellow\":\"#657b83\",\"terminal.ansiCyan\":\"#2aa198\",\"terminal.ansiGreen\":\"#859900\",\"terminal.ansiMagenta\":\"#d33682\",\"terminal.ansiRed\":\"#dc322f\",\"terminal.ansiWhite\":\"#eee8d5\",\"terminal.ansiYellow\":\"#b58900\",\"titleBar.activeBackground\":\"#002C39\"},\"displayName\":\"Solarized Dark\",\"name\":\"solarized-dark\",\"semanticHighlighting\":true,\"tokenColors\":[{\"settings\":{\"foreground\":\"#839496\"}},{\"scope\":[\"meta.embedded\",\"source.groovy.embedded\",\"string meta.image.inline.markdown\",\"variable.legacy.builtin.python\"],\"settings\":{\"foreground\":\"#839496\"}},{\"scope\":\"comment\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#586E75\"}},{\"scope\":\"string\",\"settings\":{\"foreground\":\"#2AA198\"}},{\"scope\":\"string.regexp\",\"settings\":{\"foreground\":\"#DC322F\"}},{\"scope\":\"constant.numeric\",\"settings\":{\"foreground\":\"#D33682\"}},{\"scope\":[\"variable.language\",\"variable.other\"],\"settings\":{\"foreground\":\"#268BD2\"}},{\"scope\":\"keyword\",\"settings\":{\"foreground\":\"#859900\"}},{\"scope\":\"storage\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#93A1A1\"}},{\"scope\":[\"entity.name.class\",\"entity.name.type\",\"entity.name.namespace\",\"entity.name.scope-resolution\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#CB4B16\"}},{\"scope\":\"entity.name.function\",\"settings\":{\"foreground\":\"#268BD2\"}},{\"scope\":\"punctuation.definition.variable\",\"settings\":{\"foreground\":\"#859900\"}},{\"scope\":[\"punctuation.section.embedded.begin\",\"punctuation.section.embedded.end\"],\"settings\":{\"foreground\":\"#DC322F\"}},{\"scope\":[\"constant.language\",\"meta.preprocessor\"],\"settings\":{\"foreground\":\"#B58900\"}},{\"scope\":[\"support.function.construct\",\"keyword.other.new\"],\"settings\":{\"foreground\":\"#CB4B16\"}},{\"scope\":[\"constant.character\",\"constant.other\"],\"settings\":{\"foreground\":\"#CB4B16\"}},{\"scope\":[\"entity.other.inherited-class\",\"punctuation.separator.namespace.ruby\"],\"settings\":{\"foreground\":\"#6C71C4\"}},{\"scope\":\"variable.parameter\",\"settings\":{}},{\"scope\":\"entity.name.tag\",\"settings\":{\"foreground\":\"#268BD2\"}},{\"scope\":\"punctuation.definition.tag\",\"settings\":{\"foreground\":\"#586E75\"}},{\"scope\":\"entity.other.attribute-name\",\"settings\":{\"foreground\":\"#93A1A1\"}},{\"scope\":\"support.function\",\"settings\":{\"foreground\":\"#268BD2\"}},{\"scope\":\"punctuation.separator.continuation\",\"settings\":{\"foreground\":\"#DC322F\"}},{\"scope\":[\"support.constant\",\"support.variable\"],\"settings\":{}},{\"scope\":[\"support.type\",\"support.class\"],\"settings\":{\"foreground\":\"#859900\"}},{\"scope\":\"support.type.exception\",\"settings\":{\"foreground\":\"#CB4B16\"}},{\"scope\":\"support.other.variable\",\"settings\":{}},{\"scope\":\"invalid\",\"settings\":{\"foreground\":\"#DC322F\"}},{\"scope\":[\"meta.diff\",\"meta.diff.header\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#268BD2\"}},{\"scope\":\"markup.deleted\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#DC322F\"}},{\"scope\":\"markup.changed\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#CB4B16\"}},{\"scope\":\"markup.inserted\",\"settings\":{\"foreground\":\"#859900\"}},{\"scope\":\"markup.quote\",\"settings\":{\"foreground\":\"#859900\"}},{\"scope\":\"markup.list\",\"settings\":{\"foreground\":\"#B58900\"}},{\"scope\":[\"markup.bold\",\"markup.italic\"],\"settings\":{\"foreground\":\"#D33682\"}},{\"scope\":\"markup.bold\",\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":\"markup.italic\",\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":\"markup.strikethrough\",\"settings\":{\"fontStyle\":\"strikethrough\"}},{\"scope\":\"markup.inline.raw\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#2AA198\"}},{\"scope\":\"markup.heading\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#268BD2\"}},{\"scope\":\"markup.heading.setext\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#268BD2\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DYoNaHQp.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"VHDL\",\"fileTypes\":[\"vhd\",\"vhdl\",\"vho\",\"vht\"],\"name\":\"vhdl\",\"patterns\":[{\"include\":\"#block_processing\"},{\"include\":\"#cleanup\"}],\"repository\":{\"architecture_pattern\":{\"patterns\":[{\"begin\":\"\\\\\\\\b((?i:architecture))\\\\\\\\s+(([a-zA-z][a-zA-z0-9_]*)|(.+))(?=\\\\\\\\s)\\\\\\\\s+((?i:of))\\\\\\\\s+(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))(?=\\\\\\\\s*(?i:is))\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.language.vhdl\"},\"3\":{\"name\":\"entity.name.type.architecture.begin.vhdl\"},\"4\":{\"name\":\"invalid.illegal.invalid.identifier.vhdl\"},\"5\":{\"name\":\"keyword.language.vhdl\"},\"7\":{\"name\":\"entity.name.type.entity.reference.vhdl\"},\"8\":{\"name\":\"invalid.illegal.invalid.identifier.vhdl\"}},\"end\":\"\\\\\\\\b((?i:end))(\\\\\\\\s+((?i:architecture)))?(\\\\\\\\s+((\\\\\\\\3)|(.+?)))?(?=\\\\\\\\s*;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.language.vhdl\"},\"3\":{\"name\":\"keyword.language.vhdl\"},\"6\":{\"name\":\"entity.name.type.architecture.end.vhdl\"},\"7\":{\"name\":\"invalid.illegal.mismatched.identifier.vhdl\"}},\"name\":\"support.block.architecture\",\"patterns\":[{\"include\":\"#block_pattern\"},{\"include\":\"#function_definition_pattern\"},{\"include\":\"#procedure_definition_pattern\"},{\"include\":\"#component_pattern\"},{\"include\":\"#if_pattern\"},{\"include\":\"#process_pattern\"},{\"include\":\"#type_pattern\"},{\"include\":\"#record_pattern\"},{\"include\":\"#for_pattern\"},{\"include\":\"#entity_instantiation_pattern\"},{\"include\":\"#component_instantiation_pattern\"},{\"include\":\"#cleanup\"}]}]},\"attribute_list\":{\"patterns\":[{\"begin\":\"\\\\\\\\'\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.vhdl\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.vhdl\"}},\"patterns\":[{\"include\":\"#parenthetical_list\"},{\"include\":\"#cleanup\"}]}]},\"block_pattern\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*(([a-zA-Z][a-zA-Z0-9_]*)\\\\\\\\s*(:)\\\\\\\\s*)?(\\\\\\\\s*(?i:block))\",\"beginCaptures\":{\"2\":{\"name\":\"meta.block.block.name\"},\"3\":{\"name\":\"keyword.language.vhdl\"},\"4\":{\"name\":\"keyword.language.vhdl\"}},\"end\":\"((?i:end\\\\\\\\s+block))(\\\\\\\\s+((\\\\\\\\2)|(.+?)))?(?=\\\\\\\\s*;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.language.vhdl\"},\"2\":{\"name\":\"meta.block.block.end\"},\"5\":{\"name\":\"invalid.illegal.mismatched.identifier.vhdl\"}},\"name\":\"meta.block.block\",\"patterns\":[{\"include\":\"#control_patterns\"},{\"include\":\"#cleanup\"}]}]},\"block_processing\":{\"patterns\":[{\"include\":\"#package_pattern\"},{\"include\":\"#package_body_pattern\"},{\"include\":\"#entity_pattern\"},{\"include\":\"#architecture_pattern\"}]},\"case_pattern\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\\\\\\\\s*:\\\\\\\\s*)?\\\\\\\\b((?i:case))\\\\\\\\b\",\"beginCaptures\":{\"3\":{\"name\":\"entity.name.tag.case.begin.vhdl\"},\"4\":{\"name\":\"invalid.illegal.invalid.identifier.vhdl\"},\"5\":{\"name\":\"keyword.language.vhdl\"}},\"end\":\"\\\\\\\\b((?i:end))\\\\\\\\s*(\\\\\\\\s+(((?i:case))|(.*?)))(\\\\\\\\s+((\\\\\\\\2)|(.*?)))?(?=\\\\\\\\s*;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.language.vhdl\"},\"4\":{\"name\":\"keyword.language.vhdl\"},\"5\":{\"name\":\"invalid.illegal.case.required.vhdl\"},\"8\":{\"name\":\"entity.name.tag.case.end.vhdl\"},\"9\":{\"name\":\"invalid.illegal.mismatched.identifier.vhdl\"}},\"patterns\":[{\"include\":\"#control_patterns\"},{\"include\":\"#cleanup\"}]}]},\"cleanup\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#constants_numeric\"},{\"include\":\"#strings\"},{\"include\":\"#attribute_list\"},{\"include\":\"#syntax_highlighting\"}]},\"comments\":{\"patterns\":[{\"match\":\"--.*$\\\\\\\\n?\",\"name\":\"comment.line.double-dash.vhdl\"}]},\"component_instantiation_pattern\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*([a-zA-Z][a-zA-Z0-9_]*)\\\\\\\\s*(:)\\\\\\\\s*([a-zA-Z][a-zA-Z0-9_]*)\\\\\\\\b(?=\\\\\\\\s*($|generic|port))\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.section.component_instantiation.vhdl\"},\"2\":{\"name\":\"punctuation.vhdl\"},\"3\":{\"name\":\"entity.name.tag.component.reference.vhdl\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.vhdl\"}},\"patterns\":[{\"include\":\"#parenthetical_list\"},{\"include\":\"#cleanup\"}]}]},\"component_pattern\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*\\\\\\\\b((?i:component))\\\\\\\\s+(([a-zA-Z_][a-zA-Z0-9_]*)\\\\\\\\s*|(.+?))(?=\\\\\\\\b(?i:is|port)\\\\\\\\b|$|--)(\\\\\\\\b((?i:is\\\\\\\\b)))?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.language.vhdl\"},\"3\":{\"name\":\"entity.name.type.component.begin.vhdl\"},\"4\":{\"name\":\"invalid.illegal.invalid.identifier.vhdl\"},\"6\":{\"name\":\"keyword.language.vhdl\"}},\"end\":\"\\\\\\\\b((?i:end))\\\\\\\\s+(((?i:component\\\\\\\\b))|(.+?))(?=\\\\\\\\s*|;)(\\\\\\\\s+((\\\\\\\\3)|(.+?)))?(?=\\\\\\\\s*;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.language.vhdl\"},\"3\":{\"name\":\"keyword.language.vhdl\"},\"4\":{\"name\":\"invalid.illegal.component.keyword.required.vhdl\"},\"7\":{\"name\":\"entity.name.type.component.end.vhdl\"},\"8\":{\"name\":\"invalid.illegal.mismatched.identifier.vhdl\"}},\"patterns\":[{\"include\":\"#generic_list_pattern\"},{\"include\":\"#port_list_pattern\"},{\"include\":\"#comments\"}]}]},\"constants_numeric\":{\"patterns\":[{\"match\":\"\\\\\\\\b([+\\\\\\\\-]?[\\\\\\\\d_]+\\\\\\\\.[\\\\\\\\d_]+([eE][+\\\\\\\\-]?[\\\\\\\\d_]+)?)\\\\\\\\b\",\"name\":\"constant.numeric.floating_point.vhdl\"},{\"match\":\"\\\\\\\\b\\\\\\\\d+#[\\\\\\\\h_]+#\\\\\\\\b\",\"name\":\"constant.numeric.base_pound_number_pound.vhdl\"},{\"match\":\"\\\\\\\\b[\\\\\\\\d_]+([eE][\\\\\\\\d_]+)?\\\\\\\\b\",\"name\":\"constant.numeric.integer.vhdl\"},{\"match\":\"[xX]\\\\\"[0-9a-fA-F_uUxXzZwWlLhH\\\\\\\\-]+\\\\\"\",\"name\":\"constant.numeric.quoted.double.string.hex.vhdl\"},{\"match\":\"[oO]\\\\\"[0-7_uUxXzZwWlLhH\\\\\\\\-]+\\\\\"\",\"name\":\"constant.numeric.quoted.double.string.octal.vhdl\"},{\"match\":\"[bB]?\\\\\"[01_uUxXzZwWlLhH\\\\\\\\-]+\\\\\"\",\"name\":\"constant.numeric.quoted.double.string.binary.vhdl\"},{\"captures\":{\"1\":{\"name\":\"invalid.illegal.quoted.double.string.vhdl\"}},\"match\":\"([bBoOxX]\\\\\".+?\\\\\")\",\"name\":\"constant.numeric.quoted.double.string.illegal.vhdl\"},{\"match\":\"'[01uUxXzZwWlLhH\\\\\\\\-]'\",\"name\":\"constant.numeric.quoted.single.std_logic\"}]},\"control_patterns\":{\"patterns\":[{\"include\":\"#case_pattern\"},{\"include\":\"#if_pattern\"},{\"include\":\"#for_pattern\"},{\"include\":\"#while_pattern\"}]},\"entity_instantiation_pattern\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*([a-zA-Z][a-zA-Z0-9_]*)\\\\\\\\s*(:)\\\\\\\\s*(((?i:use))\\\\\\\\s+)?((?i:entity))\\\\\\\\s+((([a-zA-Z][a-zA-Z0-9_]*)|(.+?))(\\\\\\\\.))?(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))(?=\\\\\\\\s*(\\\\\\\\(|$|(?i:port|generic)))(\\\\\\\\s*(\\\\\\\\()\\\\\\\\s*(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))(?=\\\\\\\\s*\\\\\\\\))\\\\\\\\s*(\\\\\\\\)))?\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.section.entity_instantiation.vhdl\"},\"2\":{\"name\":\"punctuation.vhdl\"},\"4\":{\"name\":\"keyword.language.vhdl\"},\"5\":{\"name\":\"keyword.language.vhdl\"},\"8\":{\"name\":\"entity.name.tag.library.reference.vhdl\"},\"9\":{\"name\":\"invalid.illegal.invalid.identifier.vhdl\"},\"10\":{\"name\":\"punctuation.vhdl\"},\"12\":{\"name\":\"entity.name.tag.entity.reference.vhdl\"},\"13\":{\"name\":\"invalid.illegal.invalid.identifier.vhdl\"},\"16\":{\"name\":\"punctuation.vhdl\"},\"18\":{\"name\":\"entity.name.tag.architecture.reference.vhdl\"},\"19\":{\"name\":\"invalid.illegal.invalid.identifier.vhdl\"},\"21\":{\"name\":\"punctuation.vhdl\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.vhdl\"}},\"patterns\":[{\"include\":\"#parenthetical_list\"},{\"include\":\"#cleanup\"}]}]},\"entity_pattern\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((?i:entity\\\\\\\\b))\\\\\\\\s+(([a-zA-Z][a-zA-Z\\\\\\\\d_]*)|(.+?))(?=\\\\\\\\s)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.language.vhdl\"},\"3\":{\"name\":\"entity.name.type.entity.begin.vhdl\"},\"4\":{\"name\":\"invalid.illegal.invalid.identifier.vhdl\"}},\"end\":\"\\\\\\\\b((?i:end\\\\\\\\b))(\\\\\\\\s+((?i:entity)))?(\\\\\\\\s+((\\\\\\\\3)|(.+?)))?(?=\\\\\\\\s*;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.language.vhdl\"},\"3\":{\"name\":\"keyword.language.vhdl\"},\"6\":{\"name\":\"entity.name.type.entity.end.vhdl\"},\"7\":{\"name\":\"invalid.illegal.mismatched.identifier.vhdl\"}},\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#generic_list_pattern\"},{\"include\":\"#port_list_pattern\"},{\"include\":\"#cleanup\"}]}]},\"for_pattern\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*(([a-zA-Z][a-zA-Z0-9_]*)\\\\\\\\s*(:)\\\\\\\\s*)?(?!(?i:wait\\\\\\\\s*))\\\\\\\\b((?i:for))\\\\\\\\b(?!\\\\\\\\s*(?i:all))\",\"beginCaptures\":{\"2\":{\"name\":\"entity.name.tag.for.generate.begin.vhdl\"},\"3\":{\"name\":\"punctuation.vhdl\"},\"4\":{\"name\":\"keyword.language.vhdl\"}},\"end\":\"\\\\\\\\b((?i:end))\\\\\\\\s+(((?i:generate|loop))|(\\\\\\\\S+))\\\\\\\\b(\\\\\\\\s+((\\\\\\\\2)|(.+?)))?(?=\\\\\\\\s*;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.language.vhdl\"},\"3\":{\"name\":\"keyword.language.vhdl\"},\"4\":{\"name\":\"invalid.illegal.loop.or.generate.required.vhdl\"},\"7\":{\"name\":\"entity.name.tag.for.generate.end.vhdl\"},\"8\":{\"name\":\"invalid.illegal.mismatched.identifier.vhdl\"}},\"patterns\":[{\"include\":\"#control_patterns\"},{\"include\":\"#entity_instantiation_pattern\"},{\"include\":\"#component_pattern\"},{\"include\":\"#component_instantiation_pattern\"},{\"include\":\"#process_pattern\"},{\"include\":\"#cleanup\"}]}]},\"function_definition_pattern\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((?i:impure)?\\\\\\\\s*(?i:function))\\\\\\\\s+(([a-zA-Z][a-zA-Z\\\\\\\\d_]*)|(\\\\\"\\\\\\\\S+\\\\\")|(\\\\\\\\\\\\\\\\.+\\\\\\\\\\\\\\\\)|(.+?))(?=\\\\\\\\s*(\\\\\\\\(|(?i:\\\\\\\\breturn\\\\\\\\b)))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.language.vhdl\"},\"3\":{\"name\":\"entity.name.function.function.begin.vhdl\"},\"4\":{\"name\":\"entity.name.function.function.begin.vhdl\"},\"5\":{\"name\":\"entity.name.function.function.begin.vhdl\"},\"6\":{\"name\":\"invalid.illegal.invalid.identifier.vhdl\"}},\"end\":\"^\\\\\\\\s*((?i:end))(\\\\\\\\s+((?i:function)))?(\\\\\\\\s+((\\\\\\\\3|\\\\\\\\4|\\\\\\\\5)|(.+?)))?(?=\\\\\\\\s*;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.language.vhdl\"},\"3\":{\"name\":\"keyword.language.vhdl\"},\"6\":{\"name\":\"entity.name.function.function.end.vhdl\"},\"7\":{\"name\":\"invalid.illegal.mismatched.identifier.vhdl\"}},\"patterns\":[{\"include\":\"#control_patterns\"},{\"include\":\"#parenthetical_list\"},{\"include\":\"#type_pattern\"},{\"include\":\"#record_pattern\"},{\"include\":\"#cleanup\"}]}]},\"function_prototype_pattern\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((?i:impure)?\\\\\\\\s*(?i:function))\\\\\\\\s+(([a-zA-Z][a-zA-Z\\\\\\\\d_]*)|(\\\\\"\\\\\\\\S+\\\\\")|(\\\\\\\\\\\\\\\\.+\\\\\\\\\\\\\\\\)|(.+?))(?=\\\\\\\\s*(\\\\\\\\(|(?i:\\\\\\\\breturn\\\\\\\\b)))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.language.vhdl\"},\"3\":{\"name\":\"entity.name.function.function.prototype.vhdl\"},\"4\":{\"name\":\"entity.name.function.function.prototype.vhdl\"},\"5\":{\"name\":\"entity.name.function.function.prototype.vhdl\"},\"6\":{\"name\":\"invalid.illegal.function.name.vhdl\"}},\"end\":\"(?<=;)\",\"patterns\":[{\"begin\":\"\\\\\\\\b(?i:return)(?=\\\\\\\\s+[^;]+\\\\\\\\s*;)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.language.vhdl\"}},\"end\":\"\\\\\\\\;\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.function_prototype.vhdl\"}},\"patterns\":[{\"include\":\"#parenthetical_list\"},{\"include\":\"#cleanup\"}]},{\"include\":\"#parenthetical_list\"},{\"include\":\"#cleanup\"}]}]},\"generic_list_pattern\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(?i:generic)\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.language.vhdl\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.vhdl\"}},\"patterns\":[{\"include\":\"#parenthetical_list\"}]}]},\"if_pattern\":{\"patterns\":[{\"begin\":\"(([a-zA-Z][a-zA-Z0-9_]*)\\\\\\\\s*(:)\\\\\\\\s*)?\\\\\\\\b((?i:if))\\\\\\\\b\",\"beginCaptures\":{\"2\":{\"name\":\"entity.name.tag.if.generate.begin.vhdl\"},\"3\":{\"name\":\"punctuation.vhdl\"},\"4\":{\"name\":\"keyword.language.vhdl\"}},\"end\":\"\\\\\\\\b((?i:end))\\\\\\\\s+((((?i:generate|if))|(\\\\\\\\S+))\\\\\\\\b(\\\\\\\\s+((\\\\\\\\2)|(.+?)))?)?(?=\\\\\\\\s*;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.language.vhdl\"},\"4\":{\"name\":\"keyword.language.vhdl\"},\"5\":{\"name\":\"invalid.illegal.if.or.generate.required.vhdl\"},\"8\":{\"name\":\"entity.name.tag.if.generate.end.vhdl\"},\"9\":{\"name\":\"invalid.illegal.mismatched.identifier.vhdl\"}},\"patterns\":[{\"include\":\"#control_patterns\"},{\"include\":\"#process_pattern\"},{\"include\":\"#entity_instantiation_pattern\"},{\"include\":\"#component_pattern\"},{\"include\":\"#component_instantiation_pattern\"},{\"include\":\"#cleanup\"}]}]},\"keywords\":{\"patterns\":[{\"match\":\"'(?i:active|ascending|base|delayed|driving|driving_value|event|high|image|instance|instance_name|last|last_value|left|leftof|length|low|path|path_name|pos|pred|quiet|range|reverse|reverse_range|right|rightof|simple|simple_name|stable|succ|transaction|val|value)\\\\\\\\b\",\"name\":\"keyword.attributes.vhdl\"},{\"match\":\"\\\\\\\\b(?i:abs|access|after|alias|all|and|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|context|deallocate|disconnect|downto|else|elsif|end|entity|exit|file|for|force|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|mod|nand|new|next|nor|not|null|of|on|open|or|others|out|package|port|postponed|procedure|process|protected|pure|range|record|register|reject|release|rem|report|return|rol|ror|select|severity|shared|signal|sla|sll|sra|srl|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with|xnor|xor)\\\\\\\\b\",\"name\":\"keyword.language.vhdl\"},{\"match\":\"\\\\\\\\b(?i:std|ieee|work|standard|textio|std_logic_1164|std_logic_arith|std_logic_misc|std_logic_signed|std_logic_textio|std_logic_unsigned|numeric_bit|numeric_std|math_complex|math_real|vital_primitives|vital_timing)\\\\\\\\b\",\"name\":\"standard.library.language.vhdl\"},{\"match\":\"(\\\\\\\\+|\\\\\\\\-|<=|=|=>|:=|>=|>|<|/|\\\\\\\\||&|(\\\\\\\\*{1,2}))\",\"name\":\"keyword.operator.vhdl\"}]},\"package_body_pattern\":{\"patterns\":[{\"begin\":\"\\\\\\\\b((?i:package))\\\\\\\\s+((?i:body))\\\\\\\\s+(([a-zA-Z][a-zA-Z\\\\\\\\d_]*)|(.+?))\\\\\\\\s+((?i:is))\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.language.vhdl\"},\"2\":{\"name\":\"keyword.language.vhdl\"},\"4\":{\"name\":\"entity.name.section.package_body.begin.vhdl\"},\"5\":{\"name\":\"invalid.illegal.invalid.identifier.vhdl\"},\"6\":{\"name\":\"keyword.language.vhdl\"}},\"end\":\"\\\\\\\\b((?i:end\\\\\\\\b))(\\\\\\\\s+((?i:package))\\\\\\\\s+((?i:body)))?(\\\\\\\\s+((\\\\\\\\4)|(.+?)))?(?=\\\\\\\\s*;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.language.vhdl\"},\"3\":{\"name\":\"keyword.language.vhdl\"},\"4\":{\"name\":\"keyword.language.vhdl\"},\"7\":{\"name\":\"entity.name.section.package_body.end.vhdl\"},\"8\":{\"name\":\"invalid.illegal.mismatched.identifier.vhdl\"}},\"patterns\":[{\"include\":\"#protected_body_pattern\"},{\"include\":\"#function_definition_pattern\"},{\"include\":\"#procedure_definition_pattern\"},{\"include\":\"#type_pattern\"},{\"include\":\"#subtype_pattern\"},{\"include\":\"#record_pattern\"},{\"include\":\"#cleanup\"}]}]},\"package_pattern\":{\"patterns\":[{\"begin\":\"\\\\\\\\b((?i:package))\\\\\\\\s+(?!(?i:body))(([a-zA-Z][a-zA-Z\\\\\\\\d_]*)|(.+?))\\\\\\\\s+((?i:is))\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.language.vhdl\"},\"3\":{\"name\":\"entity.name.section.package.begin.vhdl\"},\"4\":{\"name\":\"invalid.illegal.invalid.identifier.vhdl\"},\"5\":{\"name\":\"keyword.language.vhdl\"}},\"end\":\"\\\\\\\\b((?i:end\\\\\\\\b))(\\\\\\\\s+((?i:package)))?(\\\\\\\\s+((\\\\\\\\2)|(.+?)))?(?=\\\\\\\\s*;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.language.vhdl\"},\"3\":{\"name\":\"keyword.language.vhdl\"},\"6\":{\"name\":\"entity.name.section.package.end.vhdl\"},\"7\":{\"name\":\"invalid.illegal.mismatched.identifier.vhdl\"}},\"patterns\":[{\"include\":\"#protected_pattern\"},{\"include\":\"#function_prototype_pattern\"},{\"include\":\"#procedure_prototype_pattern\"},{\"include\":\"#type_pattern\"},{\"include\":\"#subtype_pattern\"},{\"include\":\"#record_pattern\"},{\"include\":\"#component_pattern\"},{\"include\":\"#cleanup\"}]}]},\"parenthetical_list\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.vhdl\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"begin\":\"(?=['\\\\\"a-zA-Z0-9])\",\"end\":\"(;|\\\\\\\\)|,)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.vhdl\"}},\"name\":\"source.vhdl\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#parenthetical_pair\"},{\"include\":\"#cleanup\"}]},{\"match\":\"\\\\\\\\)\",\"name\":\"invalid.illegal.unexpected.parenthesis.vhdl\"},{\"include\":\"#cleanup\"}]}]},\"parenthetical_pair\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.vhdl\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.vhdl\"}},\"patterns\":[{\"include\":\"#parenthetical_pair\"},{\"include\":\"#cleanup\"}]}]},\"port_list_pattern\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(?i:port)\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.language.vhdl\"}},\"end\":\"(?<=\\\\\\\\))\\\\\\\\s*;\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.vhdl\"}},\"patterns\":[{\"include\":\"#parenthetical_list\"}]}]},\"procedure_definition_pattern\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((?i:procedure))\\\\\\\\s+(([a-zA-Z][a-zA-Z\\\\\\\\d_]*)|(\\\\\"\\\\\\\\S+\\\\\")|(.+?))(?=\\\\\\\\s*(\\\\\\\\(|(?i:is)))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.language.vhdl\"},\"3\":{\"name\":\"entity.name.function.procedure.begin.vhdl\"},\"4\":{\"name\":\"entity.name.function.procedure.begin.vhdl\"},\"5\":{\"name\":\"invalid.illegal.invalid.identifier.vhdl\"}},\"end\":\"^\\\\\\\\s*((?i:end))(\\\\\\\\s+((?i:procedure)))?(\\\\\\\\s+((\\\\\\\\3|\\\\\\\\4)|(.+?)))?(?=\\\\\\\\s*;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.language.vhdl\"},\"3\":{\"name\":\"keyword.language.vhdl\"},\"6\":{\"name\":\"entity.name.function.procedure.end.vhdl\"},\"7\":{\"name\":\"invalid.illegal.mismatched.identifier.vhdl\"}},\"patterns\":[{\"include\":\"#parenthetical_list\"},{\"include\":\"#control_patterns\"},{\"include\":\"#type_pattern\"},{\"include\":\"#record_pattern\"},{\"include\":\"#cleanup\"}]}]},\"procedure_prototype_pattern\":{\"patterns\":[{\"begin\":\"\\\\\\\\b((?i:procedure))\\\\\\\\s+(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))(?=\\\\\\\\s*(\\\\\\\\(|;))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.language.vhdl\"},\"3\":{\"name\":\"entity.name.function.procedure.begin.vhdl\"},\"4\":{\"name\":\"invalid.illegal.invalid.identifier.vhdl\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctual.vhdl\"}},\"patterns\":[{\"include\":\"#parenthetical_list\"}]}]},\"process_pattern\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*(([a-zA-Z][a-zA-Z0-9_]*)\\\\\\\\s*(:)\\\\\\\\s*)?((?:postponed\\\\\\\\s+)?(?i:process\\\\\\\\b))\",\"beginCaptures\":{\"2\":{\"name\":\"entity.name.section.process.begin.vhdl\"},\"3\":{\"name\":\"punctuation.vhdl\"},\"4\":{\"name\":\"keyword.language.vhdl\"}},\"end\":\"((?i:end))(\\\\\\\\s+((?:postponed\\\\\\\\s+)?(?i:process)))(\\\\\\\\s+((\\\\\\\\2)|(.+?)))?(?=\\\\\\\\s*;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.language.vhdl\"},\"3\":{\"name\":\"keyword.language.vhdl\"},\"6\":{\"name\":\"entity.name.section.process.end.vhdl\"},\"7\":{\"name\":\"invalid.illegal.invalid.identifier.vhdl\"}},\"patterns\":[{\"include\":\"#control_patterns\"},{\"include\":\"#cleanup\"}]}]},\"protected_body_pattern\":{\"patterns\":[{\"begin\":\"\\\\\\\\b((?i:type))\\\\\\\\s+(([a-zA-Z][a-zA-Z\\\\\\\\d_]*)|(.+?))\\\\\\\\s+\\\\\\\\b((?i:is\\\\\\\\s+protected\\\\\\\\s+body))\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.language.vhdl\"},\"3\":{\"name\":\"entity.name.section.protected_body.begin.vhdl\"},\"4\":{\"name\":\"invalid.illegal.invalid.identifier.vhdl\"},\"5\":{\"name\":\"keyword.language.vhdl\"}},\"end\":\"\\\\\\\\b((?i:end\\\\\\\\s+protected\\\\\\\\s+body))(\\\\\\\\s+((\\\\\\\\3)|(.+?)))?(?=\\\\\\\\s*;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.language.vhdl\"},\"4\":{\"name\":\"entity.name.section.protected_body.end.vhdl\"},\"5\":{\"name\":\"invalid.illegal.mismatched.identifier.vhdl\"}},\"patterns\":[{\"include\":\"#function_definition_pattern\"},{\"include\":\"#procedure_definition_pattern\"},{\"include\":\"#type_pattern\"},{\"include\":\"#subtype_pattern\"},{\"include\":\"#record_pattern\"},{\"include\":\"#cleanup\"}]}]},\"protected_pattern\":{\"patterns\":[{\"begin\":\"\\\\\\\\b((?i:type))\\\\\\\\s+(([a-zA-Z][a-zA-Z\\\\\\\\d_]*)|(.+?))\\\\\\\\s+\\\\\\\\b((?i:is\\\\\\\\s+protected))\\\\\\\\s+(?!(?i:body))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.language.vhdls\"},\"3\":{\"name\":\"entity.name.section.protected.begin.vhdl\"},\"4\":{\"name\":\"invalid.illegal.invalid.identifier.vhdl\"},\"5\":{\"name\":\"keyword.language.vhdl\"}},\"end\":\"\\\\\\\\b((?i:end\\\\\\\\s+protected))(\\\\\\\\s+((\\\\\\\\3)|(.+?)))?(?!(?i:body))(?=\\\\\\\\s*;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.language.vhdl\"},\"4\":{\"name\":\"entity.name.section.protected.end.vhdl\"},\"5\":{\"name\":\"invalid.illegal.mismatched.identifier.vhdl\"}},\"patterns\":[{\"include\":\"#function_prototype_pattern\"},{\"include\":\"#procedure_prototype_pattern\"},{\"include\":\"#type_pattern\"},{\"include\":\"#subtype_pattern\"},{\"include\":\"#record_pattern\"},{\"include\":\"#component_pattern\"},{\"include\":\"#cleanup\"}]}]},\"punctuation\":{\"patterns\":[{\"match\":\"(\\\\\\\\.|,|:|;|\\\\\\\\(|\\\\\\\\))\",\"name\":\"punctuation.vhdl\"}]},\"record_pattern\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(?i:record)\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.language.vhdl\"}},\"end\":\"\\\\\\\\b((?i:end))\\\\\\\\s+((?i:record))(\\\\\\\\s+(([a-zA-Z][a-zA-Z\\\\\\\\d_]*)|(.*?)))?(?=\\\\\\\\s*;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.language.vhdl\"},\"2\":{\"name\":\"keyword.language.vhdl\"},\"5\":{\"name\":\"entity.name.type.record.vhdl\"},\"6\":{\"name\":\"invalid.illegal.invalid.identifier.vhdl\"}},\"patterns\":[{\"include\":\"#cleanup\"}]},{\"include\":\"#cleanup\"}]},\"strings\":{\"patterns\":[{\"match\":\"'.'\",\"name\":\"string.quoted.single.vhdl\"},{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.vhdl\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.vhdl\"}]},{\"begin\":\"\\\\\\\\\\\\\\\\\",\"end\":\"\\\\\\\\\\\\\\\\\",\"name\":\"string.other.backslash.vhdl\"}]},\"subtype_pattern\":{\"patterns\":[{\"begin\":\"\\\\\\\\b((?i:subtype))\\\\\\\\s+(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\\\\\\\\s+((?i:is))\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.language.vhdl\"},\"3\":{\"name\":\"entity.name.type.subtype.vhdl\"},\"4\":{\"name\":\"invalid.illegal.invalid.identifier.vhdl\"},\"5\":{\"name\":\"keyword.language.vhdl\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.vhdl\"}},\"patterns\":[{\"include\":\"#cleanup\"}]}]},\"support_constants\":{\"patterns\":[{\"match\":\"\\\\\\\\b(?i:math_1_over_e|math_1_over_pi|math_1_over_sqrt_2|math_2_pi|math_3_pi_over_2|math_deg_to_rad|math_e|math_log10_of_e|math_log2_of_e|math_log_of_10|math_log_of_2|math_pi|math_pi_over_2|math_pi_over_3|math_pi_over_4|math_rad_to_deg|math_sqrt_2|math_sqrt_pi)\\\\\\\\b\",\"name\":\"support.constant.ieee.math_real.vhdl\"},{\"match\":\"\\\\\\\\b(?i:math_cbase_1|math_cbase_j|math_czero|positive_real|principal_value)\\\\\\\\b\",\"name\":\"support.constant.ieee.math_complex.vhdl\"},{\"match\":\"\\\\\\\\b(?i:true|false)\\\\\\\\b\",\"name\":\"support.constant.std.standard.vhdl\"}]},\"support_functions\":{\"patterns\":[{\"match\":\"\\\\\\\\b(?i:finish|stop|resolution_limit)\\\\\\\\b\",\"name\":\"support.function.std.env.vhdl\"},{\"match\":\"\\\\\\\\b(?i:readline|read|writeline|write|endfile|endline)\\\\\\\\b\",\"name\":\"support.function.std.textio.vhdl\"},{\"match\":\"\\\\\\\\b(?i:rising_edge|falling_edge|to_bit|to_bitvector|to_stdulogic|to_stdlogicvector|to_stdulogicvector|is_x)\\\\\\\\b\",\"name\":\"support.function.ieee.std_logic_1164.vhdl\"},{\"match\":\"\\\\\\\\b(?i:shift_left|shift_right|rotate_left|rotate_right|resize|to_integer|to_unsigned|to_signed)\\\\\\\\b\",\"name\":\"support.function.ieee.numeric_std.vhdl\"},{\"match\":\"\\\\\\\\b(?i:arccos(h?)|arcsin(h?)|arctan|arctanh|cbrt|ceil|cos|cosh|exp|floor|log10|log2|log|realmax|realmin|round|sign|sin|sinh|sqrt|tan|tanh|trunc)\\\\\\\\b\",\"name\":\"support.function.ieee.math_real.vhdl\"},{\"match\":\"\\\\\\\\b(?i:arg|cmplx|complex_to_polar|conj|get_principal_value|polar_to_complex)\\\\\\\\b\",\"name\":\"support.function.ieee.math_complex.vhdl\"}]},\"support_types\":{\"patterns\":[{\"match\":\"\\\\\\\\b(?i:boolean|bit|character|severity_level|integer|real|time|delay_length|now|natural|positive|string|bit_vector|file_open_kind|file_open_status|fs|ps|ns|us|ms|sec|min|hr|severity_level|note|warning|error|failure)\\\\\\\\b\",\"name\":\"support.type.std.standard.vhdl\"},{\"match\":\"\\\\\\\\b(?i:line|text|side|width|input|output)\\\\\\\\b\",\"name\":\"support.type.std.textio.vhdl\"},{\"match\":\"\\\\\\\\b(?i:std_logic|std_ulogic|std_logic_vector|std_ulogic_vector)\\\\\\\\b\",\"name\":\"support.type.ieee.std_logic_1164.vhdl\"},{\"match\":\"\\\\\\\\b(?i:signed|unsigned)\\\\\\\\b\",\"name\":\"support.type.ieee.numeric_std.vhdl\"},{\"match\":\"\\\\\\\\b(?i:complex|complex_polar)\\\\\\\\b\",\"name\":\"support.type.ieee.math_complex.vhdl\"}]},\"syntax_highlighting\":{\"patterns\":[{\"include\":\"#keywords\"},{\"include\":\"#punctuation\"},{\"include\":\"#support_constants\"},{\"include\":\"#support_types\"},{\"include\":\"#support_functions\"}]},\"type_pattern\":{\"patterns\":[{\"begin\":\"\\\\\\\\b((?i:type))\\\\\\\\s+(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))((?=\\\\\\\\s*;)|(\\\\\\\\s+((?i:is))))\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.language.vhdl\"},\"3\":{\"name\":\"entity.name.type.type.vhdl\"},\"4\":{\"name\":\"invalid.illegal.invalid.identifier.vhdl\"},\"7\":{\"name\":\"keyword.language.vhdl\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.vhdl\"}},\"patterns\":[{\"include\":\"#record_pattern\"},{\"include\":\"#cleanup\"}]}]},\"while_pattern\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*(([a-zA-Z][a-zA-Z0-9_]*)\\\\\\\\s*(:)\\\\\\\\s*)?\\\\\\\\b((?i:while))\\\\\\\\b\",\"beginCaptures\":{\"2\":{\"name\":\"\"},\"3\":{\"name\":\"punctuation.vhdl\"},\"4\":{\"name\":\"keyword.language.vhdl\"}},\"end\":\"\\\\\\\\b((?i:end))\\\\\\\\s+(((?i:loop))|(\\\\\\\\S+))\\\\\\\\b(\\\\\\\\s+((\\\\\\\\2)|(.+?)))?(?=\\\\\\\\s*;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.language.vhdl\"},\"3\":{\"name\":\"keyword.language.vhdl\"},\"4\":{\"name\":\"invalid.illegal.loop.keyword.required.vhdl\"},\"7\":{\"name\":\"entity.name.tag.while.loop.vhdl\"},\"8\":{\"name\":\"invalid.illegal.mismatched.identifier\"}},\"patterns\":[{\"include\":\"#control_patterns\"},{\"include\":\"#cleanup\"}]}]}},\"scopeName\":\"source.vhdl\"}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DYvnoCeB.js",
    "content": "import e from\"./ySlJ1b_l.js\";import n from\"./BPhBrDlE.js\";import t from\"./BMYPR7BL.js\";const a=Object.freeze(JSON.parse(`{\"displayName\":\"Pug\",\"name\":\"pug\",\"patterns\":[{\"comment\":\"Doctype declaration.\",\"match\":\"^(!!!|doctype)(\\\\\\\\s*[a-zA-Z0-9-_]+)?\",\"name\":\"meta.tag.sgml.doctype.html\"},{\"begin\":\"^(\\\\\\\\s*)//-\",\"comment\":\"Unbuffered (pug-only) comments.\",\"end\":\"^(?!(\\\\\\\\1\\\\\\\\s)|\\\\\\\\s*$)\",\"name\":\"comment.unbuffered.block.pug\"},{\"begin\":\"^(\\\\\\\\s*)//\",\"comment\":\"Buffered (html) comments.\",\"end\":\"^(?!(\\\\\\\\1\\\\\\\\s)|\\\\\\\\s*$)\",\"name\":\"string.comment.buffered.block.pug\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"invalid.illegal.comment.comment.block.pug\"}},\"comment\":\"Buffered comments inside buffered comments will generate invalid html.\",\"match\":\"^\\\\\\\\s*(//)(?!-)\",\"name\":\"string.comment.buffered.block.pug\"}]},{\"begin\":\"<!--\",\"end\":\"--\\\\\\\\s*>\",\"name\":\"comment.unbuffered.block.pug\",\"patterns\":[{\"match\":\"--\",\"name\":\"invalid.illegal.comment.comment.block.pug\"}]},{\"begin\":\"^(\\\\\\\\s*)-$\",\"comment\":\"Unbuffered code block.\",\"end\":\"^(?!(\\\\\\\\1\\\\\\\\s)|\\\\\\\\s*$)\",\"name\":\"source.js\",\"patterns\":[{\"include\":\"source.js\"}]},{\"begin\":\"^(\\\\\\\\s*)(script)((\\\\\\\\.$)|(?=[^\\\\\\\\n]*((text|application)/javascript|module).*\\\\\\\\.$))\",\"beginCaptures\":{\"2\":{\"name\":\"entity.name.tag.pug\"}},\"comment\":\"Script tag with JavaScript code.\",\"end\":\"^(?!(\\\\\\\\1\\\\\\\\s)|\\\\\\\\s*$)\",\"name\":\"meta.tag.other\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?=\\\\\\\\()\",\"end\":\"$\",\"patterns\":[{\"include\":\"#tag_attributes\"}]},{\"begin\":\"\\\\\\\\G(?=[.#])\",\"end\":\"$\",\"patterns\":[{\"include\":\"#complete_tag\"}]},{\"include\":\"source.js\"}]},{\"begin\":\"^(\\\\\\\\s*)(style)((\\\\\\\\.$)|(?=[.#(].*\\\\\\\\.$))\",\"beginCaptures\":{\"2\":{\"name\":\"entity.name.tag.pug\"}},\"comment\":\"Style tag with CSS code.\",\"end\":\"^(?!(\\\\\\\\1\\\\\\\\s)|\\\\\\\\s*$)\",\"name\":\"meta.tag.other\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?=\\\\\\\\()\",\"end\":\"$\",\"patterns\":[{\"include\":\"#tag_attributes\"}]},{\"begin\":\"\\\\\\\\G(?=[.#])\",\"end\":\"$\",\"patterns\":[{\"include\":\"#complete_tag\"}]},{\"include\":\"source.css\"}]},{\"begin\":\"^(\\\\\\\\s*):(sass)(?=\\\\\\\\(|$)\",\"beginCaptures\":{\"2\":{\"name\":\"constant.language.name.sass.filter.pug\"}},\"end\":\"^(?!(\\\\\\\\1\\\\\\\\s)|\\\\\\\\s*$)\",\"name\":\"source.sass.filter.pug\",\"patterns\":[{\"include\":\"#tag_attributes\"},{\"include\":\"source.sass\"}]},{\"begin\":\"^(\\\\\\\\s*):(scss)(?=\\\\\\\\(|$)\",\"beginCaptures\":{\"2\":{\"name\":\"constant.language.name.scss.filter.pug\"}},\"end\":\"^(?!(\\\\\\\\1\\\\\\\\s)|\\\\\\\\s*$)\",\"name\":\"source.css.scss.filter.pug\",\"patterns\":[{\"include\":\"#tag_attributes\"},{\"include\":\"source.css.scss\"}]},{\"begin\":\"^(\\\\\\\\s*):(less)(?=\\\\\\\\(|$)\",\"beginCaptures\":{\"2\":{\"name\":\"constant.language.name.less.filter.pug\"}},\"end\":\"^(?!(\\\\\\\\1\\\\\\\\s)|\\\\\\\\s*$)\",\"name\":\"source.less.filter.pug\",\"patterns\":[{\"include\":\"#tag_attributes\"},{\"include\":\"source.less\"}]},{\"begin\":\"^(\\\\\\\\s*):(stylus)(?=\\\\\\\\(|$)\",\"beginCaptures\":{\"2\":{\"name\":\"constant.language.name.stylus.filter.pug\"}},\"end\":\"^(?!(\\\\\\\\1\\\\\\\\s)|\\\\\\\\s*$)\",\"patterns\":[{\"include\":\"#tag_attributes\"},{\"include\":\"source.stylus\"}]},{\"begin\":\"^(\\\\\\\\s*):(coffee(-?script)?)(?=\\\\\\\\(|$)\",\"beginCaptures\":{\"2\":{\"name\":\"constant.language.name.coffeescript.filter.pug\"}},\"end\":\"^(?!(\\\\\\\\1\\\\\\\\s)|\\\\\\\\s*$)\",\"name\":\"source.coffeescript.filter.pug\",\"patterns\":[{\"include\":\"#tag_attributes\"},{\"include\":\"source.coffee\"}]},{\"begin\":\"^(\\\\\\\\s*):(uglify-js)(?=\\\\\\\\(|$)\",\"beginCaptures\":{\"2\":{\"name\":\"constant.language.name.js.filter.pug\"}},\"end\":\"^(?!(\\\\\\\\1\\\\\\\\s)|\\\\\\\\s*$)\",\"name\":\"source.js.filter.pug\",\"patterns\":[{\"include\":\"#tag_attributes\"},{\"include\":\"source.js\"}]},{\"begin\":\"^(\\\\\\\\s*)((:(?=.))|(:$))\",\"beginCaptures\":{\"4\":{\"name\":\"invalid.illegal.empty.generic.filter.pug\"}},\"comment\":\"Generic Pug filter.\",\"end\":\"^(?!(\\\\\\\\1\\\\\\\\s)|\\\\\\\\s*$)\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?<=:)(?=.)\",\"end\":\"$\",\"name\":\"name.generic.filter.pug\",\"patterns\":[{\"match\":\"\\\\\\\\G\\\\\\\\(\",\"name\":\"invalid.illegal.name.generic.filter.pug\"},{\"match\":\"[\\\\\\\\w-]\",\"name\":\"constant.language.name.generic.filter.pug\"},{\"include\":\"#tag_attributes\"},{\"match\":\"\\\\\\\\W\",\"name\":\"invalid.illegal.name.generic.filter.pug\"}]}]},{\"begin\":\"^(\\\\\\\\s*)(?:(?=\\\\\\\\.$)|(?:(?=[\\\\\\\\w.#].*?\\\\\\\\.$)(?=(?:(?:(?:(?:(?:#[\\\\\\\\w-]+)|(?:\\\\\\\\.[\\\\\\\\w-]+))|(?:(?:[#!]\\\\\\\\{[^}]*\\\\\\\\})|(?:\\\\\\\\w(?:(?:[\\\\\\\\w:-]+[\\\\\\\\w-])|(?:[\\\\\\\\w-]*)))))(?:(?:#[\\\\\\\\w-]+)|(?:\\\\\\\\.[\\\\\\\\w-]+)|(?:\\\\\\\\((?:[^()\\\\\\\\'\\\\\\\\\\\\\"]*(?:(?:\\\\\\\\'(?:[^\\\\\\\\']|(?:(?<!\\\\\\\\\\\\\\\\)\\\\\\\\\\\\\\\\\\\\\\\\'))*\\\\\\\\')|(?:\\\\\\\\\\\\\"(?:[^\\\\\\\\\\\\\"]|(?:(?<!\\\\\\\\\\\\\\\\)\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"))*\\\\\\\\\\\\\")))*[^()]*\\\\\\\\))*)*)(?:(?:(?::\\\\\\\\s+)|(?<=\\\\\\\\)))(?:(?:(?:(?:#[\\\\\\\\w-]+)|(?:\\\\\\\\.[\\\\\\\\w-]+))|(?:(?:[#!]\\\\\\\\{[^}]*\\\\\\\\})|(?:\\\\\\\\w(?:(?:[\\\\\\\\w:-]+[\\\\\\\\w-])|(?:[\\\\\\\\w-]*)))))(?:(?:#[\\\\\\\\w-]+)|(?:\\\\\\\\.[\\\\\\\\w-]+)|(?:\\\\\\\\((?:[^()\\\\\\\\'\\\\\\\\\\\\\"]*(?:(?:\\\\\\\\'(?:[^\\\\\\\\']|(?:(?<!\\\\\\\\\\\\\\\\)\\\\\\\\\\\\\\\\\\\\\\\\'))*\\\\\\\\')|(?:\\\\\\\\\\\\\"(?:[^\\\\\\\\\\\\\"]|(?:(?<!\\\\\\\\\\\\\\\\)\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"))*\\\\\\\\\\\\\")))*[^()]*\\\\\\\\))*)*))*)\\\\\\\\.$)(?:(?:(#[\\\\\\\\w-]+)|(\\\\\\\\.[\\\\\\\\w-]+))|((?:[#!]\\\\\\\\{[^}]*\\\\\\\\})|(?:\\\\\\\\w(?:(?:[\\\\\\\\w:-]+[\\\\\\\\w-])|(?:[\\\\\\\\w-]*)))))))\",\"beginCaptures\":{\"2\":{\"name\":\"meta.selector.css entity.other.attribute-name.id.css.pug\"},\"3\":{\"name\":\"meta.selector.css entity.other.attribute-name.class.css.pug\"},\"4\":{\"name\":\"meta.tag.other entity.name.tag.pug\"}},\"comment\":\"Generated from dot_block_tag.py\",\"end\":\"^(?!(\\\\\\\\1\\\\\\\\s)|\\\\\\\\s*$)\",\"patterns\":[{\"match\":\"\\\\\\\\.$\",\"name\":\"storage.type.function.pug.dot-block-dot\"},{\"include\":\"#tag_attributes\"},{\"include\":\"#complete_tag\"},{\"begin\":\"^(?=.)\",\"end\":\"$\",\"name\":\"text.block.pug\",\"patterns\":[{\"include\":\"#inline_pug\"},{\"include\":\"#embedded_html\"},{\"include\":\"#html_entity\"},{\"include\":\"#interpolated_value\"},{\"include\":\"#interpolated_error\"}]}]},{\"begin\":\"^\\\\\\\\s*\",\"comment\":\"All constructs that generally span a single line starting with any number of white-spaces.\",\"end\":\"$\",\"patterns\":[{\"include\":\"#inline_pug\"},{\"include\":\"#blocks_and_includes\"},{\"include\":\"#unbuffered_code\"},{\"include\":\"#mixin_definition\"},{\"include\":\"#mixin_call\"},{\"include\":\"#flow_control\"},{\"include\":\"#flow_control_each\"},{\"include\":\"#case_conds\"},{\"begin\":\"\\\\\\\\|\",\"comment\":\"Tag pipe text line.\",\"end\":\"$\",\"name\":\"text.block.pipe.pug\",\"patterns\":[{\"include\":\"#inline_pug\"},{\"include\":\"#embedded_html\"},{\"include\":\"#html_entity\"},{\"include\":\"#interpolated_value\"},{\"include\":\"#interpolated_error\"}]},{\"include\":\"#printed_expression\"},{\"begin\":\"\\\\\\\\G(?=(#[^\\\\\\\\{\\\\\\\\w-])|[^\\\\\\\\w.#])\",\"comment\":\"Line starting with characters incompatible with tag name/id/class is standalone text.\",\"end\":\"$\",\"patterns\":[{\"begin\":\"</?(?=[!#])\",\"end\":\">|$\",\"patterns\":[{\"include\":\"#inline_pug\"},{\"include\":\"#interpolated_value\"},{\"include\":\"#interpolated_error\"}]},{\"include\":\"#inline_pug\"},{\"include\":\"#embedded_html\"},{\"include\":\"#html_entity\"},{\"include\":\"#interpolated_value\"},{\"include\":\"#interpolated_error\"}]},{\"include\":\"#complete_tag\"}]}],\"repository\":{\"babel_parens\":{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)|(({\\\\\\\\s*)?$)\",\"patterns\":[{\"include\":\"#babel_parens\"},{\"include\":\"source.js\"}]},\"blocks_and_includes\":{\"captures\":{\"1\":{\"name\":\"storage.type.import.include.pug\"},\"4\":{\"name\":\"variable.control.import.include.pug\"}},\"comment\":\"Template blocks and includes.\",\"match\":\"(extends|include|yield|append|prepend|block( (append|prepend))?)\\\\\\\\s+(.*)$\",\"name\":\"meta.first-class.pug\"},\"case_conds\":{\"begin\":\"(default|when)((\\\\\\\\s+|(?=:))|$)\",\"captures\":{\"1\":{\"name\":\"storage.type.function.pug\"}},\"comment\":\"Pug case conditionals.\",\"end\":\"$\",\"name\":\"meta.control.flow.pug\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?!:)\",\"end\":\"(?=:\\\\\\\\s+)|$\",\"name\":\"js.embedded.control.flow.pug\",\"patterns\":[{\"include\":\"#case_when_paren\"},{\"include\":\"source.js\"}]},{\"begin\":\":\\\\\\\\s+\",\"end\":\"$\",\"name\":\"tag.case.control.flow.pug\",\"patterns\":[{\"include\":\"#complete_tag\"}]}]},\"case_when_paren\":{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"name\":\"js.when.control.flow.pug\",\"patterns\":[{\"include\":\"#case_when_paren\"},{\"match\":\":\",\"name\":\"invalid.illegal.name.tag.pug\"},{\"include\":\"source.js\"}]},\"complete_tag\":{\"begin\":\"(?=[\\\\\\\\w.#])|(:\\\\\\\\s*)\",\"end\":\"(\\\\\\\\.?$)|(?=:.)\",\"endCaptures\":{\"1\":{\"name\":\"storage.type.function.pug.dot-block-dot\"}},\"patterns\":[{\"include\":\"#blocks_and_includes\"},{\"include\":\"#unbuffered_code\"},{\"include\":\"#mixin_call\"},{\"include\":\"#flow_control\"},{\"include\":\"#flow_control_each\"},{\"match\":\"(?<=:)\\\\\\\\w.*$\",\"name\":\"invalid.illegal.name.tag.pug\"},{\"include\":\"#tag_name\"},{\"include\":\"#tag_id\"},{\"include\":\"#tag_classes\"},{\"include\":\"#tag_attributes\"},{\"include\":\"#tag_mixin_attributes\"},{\"captures\":{\"2\":{\"name\":\"invalid.illegal.end.tag.pug\"},\"4\":{\"name\":\"invalid.illegal.end.tag.pug\"}},\"match\":\"((\\\\\\\\.)\\\\\\\\s+$)|((:)\\\\\\\\s*$)\"},{\"include\":\"#printed_expression\"},{\"include\":\"#tag_text\"}]},\"embedded_html\":{\"begin\":\"(?=<[^>]*>)\",\"end\":\"$|(?=>)\",\"name\":\"html\",\"patterns\":[{\"include\":\"text.html.basic\"},{\"include\":\"#interpolated_value\"},{\"include\":\"#interpolated_error\"}]},\"flow_control\":{\"begin\":\"(for|if|else if|else|until|while|unless|case)(\\\\\\\\s+|$)\",\"captures\":{\"1\":{\"name\":\"storage.type.function.pug\"}},\"comment\":\"Pug control flow.\",\"end\":\"$\",\"name\":\"meta.control.flow.pug\",\"patterns\":[{\"begin\":\"\",\"end\":\"$\",\"name\":\"js.embedded.control.flow.pug\",\"patterns\":[{\"include\":\"source.js\"}]}]},\"flow_control_each\":{\"begin\":\"(each)(\\\\\\\\s+|$)\",\"captures\":{\"1\":{\"name\":\"storage.type.function.pug\"}},\"end\":\"$\",\"name\":\"meta.control.flow.pug.each\",\"patterns\":[{\"match\":\"([\\\\\\\\w$_]+)(?:\\\\\\\\s*,\\\\\\\\s*([\\\\\\\\w$_]+))?\",\"name\":\"variable.other.pug.each-var\"},{\"begin\":\"\",\"end\":\"$\",\"name\":\"js.embedded.control.flow.pug\",\"patterns\":[{\"include\":\"source.js\"}]}]},\"html_entity\":{\"patterns\":[{\"match\":\"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)\",\"name\":\"constant.character.entity.html.text.pug\"},{\"match\":\"[<>&]\",\"name\":\"invalid.illegal.html_entity.text.pug\"}]},\"inline_pug\":{\"begin\":\"(?<!\\\\\\\\\\\\\\\\)(#\\\\\\\\[)\",\"captures\":{\"1\":{\"name\":\"entity.name.function.pug\"},\"2\":{\"name\":\"entity.name.function.pug\"}},\"end\":\"(\\\\\\\\])\",\"name\":\"inline.pug\",\"patterns\":[{\"include\":\"#inline_pug\"},{\"include\":\"#mixin_call\"},{\"begin\":\"(?<!\\\\\\\\])(?=[\\\\\\\\w.#])|(:\\\\\\\\s*)\",\"end\":\"(?=\\\\\\\\]|(:.)|=|\\\\\\\\s)\",\"name\":\"tag.inline.pug\",\"patterns\":[{\"include\":\"#tag_name\"},{\"include\":\"#tag_id\"},{\"include\":\"#tag_classes\"},{\"include\":\"#tag_attributes\"},{\"include\":\"#tag_mixin_attributes\"},{\"include\":\"#inline_pug\"},{\"match\":\"\\\\\\\\[\",\"name\":\"invalid.illegal.tag.pug\"}]},{\"include\":\"#unbuffered_code\"},{\"include\":\"#printed_expression\"},{\"match\":\"\\\\\\\\[\",\"name\":\"invalid.illegal.tag.pug\"},{\"include\":\"#inline_pug_text\"}]},\"inline_pug_text\":{\"begin\":\"\",\"end\":\"(?=\\\\\\\\])\",\"patterns\":[{\"begin\":\"\\\\\\\\[\",\"end\":\"\\\\\\\\]\",\"patterns\":[{\"include\":\"#inline_pug_text\"}]},{\"include\":\"#inline_pug\"},{\"include\":\"#embedded_html\"},{\"include\":\"#html_entity\"},{\"include\":\"#interpolated_value\"},{\"include\":\"#interpolated_error\"}]},\"interpolated_error\":{\"match\":\"(?<!\\\\\\\\\\\\\\\\)[#!]\\\\\\\\{(?=[^}]*$)\",\"name\":\"invalid.illegal.tag.pug\"},\"interpolated_value\":{\"begin\":\"(?<!\\\\\\\\\\\\\\\\)[#!]\\\\\\\\{(?=.*?\\\\\\\\})\",\"end\":\"\\\\\\\\}\",\"name\":\"string.interpolated.pug\",\"patterns\":[{\"match\":\"{\",\"name\":\"invalid.illegal.tag.pug\"},{\"include\":\"source.js\"}]},\"js_braces\":{\"begin\":\"\\\\\\\\{\",\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"#js_braces\"},{\"include\":\"source.js\"}]},\"js_brackets\":{\"begin\":\"\\\\\\\\[\",\"end\":\"\\\\\\\\]\",\"patterns\":[{\"include\":\"#js_brackets\"},{\"include\":\"source.js\"}]},\"js_parens\":{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#js_parens\"},{\"include\":\"source.js\"}]},\"mixin_call\":{\"begin\":\"((?:mixin\\\\\\\\s+)|\\\\\\\\+)([\\\\\\\\w-]+)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.pug\"},\"2\":{\"name\":\"meta.tag.other entity.name.function.pug\"}},\"end\":\"(?!\\\\\\\\()|$\",\"patterns\":[{\"begin\":\"(?<!\\\\\\\\))\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"name\":\"args.mixin.pug\",\"patterns\":[{\"include\":\"#js_parens\"},{\"captures\":{\"1\":{\"name\":\"meta.tag.other entity.other.attribute-name.tag.pug\"}},\"match\":\"([^\\\\\\\\s(),=/]+)\\\\\\\\s*=\\\\\\\\s*\"},{\"include\":\"source.js\"}]},{\"include\":\"#tag_attributes\"}]},\"mixin_definition\":{\"captures\":{\"1\":{\"name\":\"storage.type.function.pug\"},\"2\":{\"name\":\"meta.tag.other entity.name.function.pug\"},\"3\":{\"name\":\"punctuation.definition.parameters.begin.js\"},\"4\":{\"name\":\"variable.parameter.function.js\"},\"5\":{\"name\":\"punctuation.definition.parameters.begin.js\"}},\"match\":\"(mixin\\\\\\\\s+)([\\\\\\\\w-]+)(?:(\\\\\\\\()\\\\\\\\s*((?:[a-zA-Z_]\\\\\\\\w*\\\\\\\\s*)(?:,\\\\\\\\s*[a-zA-Z_]\\\\\\\\w*\\\\\\\\s*)*)(\\\\\\\\)))?$\"},\"printed_expression\":{\"begin\":\"(!?\\\\\\\\=)\\\\\\\\s*\",\"captures\":{\"1\":{\"name\":\"constant\"}},\"end\":\"(?=\\\\\\\\])|$\",\"name\":\"source.js\",\"patterns\":[{\"include\":\"#js_brackets\"},{\"include\":\"source.js\"}]},\"tag_attribute_name\":{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.tag.pug\"}},\"match\":\"([^\\\\\\\\s(),=/!]+)\\\\\\\\s*\"},\"tag_attribute_name_paren\":{\"begin\":\"\\\\\\\\(\\\\\\\\s*\",\"end\":\"\\\\\\\\)\",\"name\":\"entity.other.attribute-name.tag.pug\",\"patterns\":[{\"include\":\"#tag_attribute_name_paren\"},{\"include\":\"#tag_attribute_name\"}]},\"tag_attributes\":{\"begin\":\"(\\\\\\\\(\\\\\\\\s*)\",\"captures\":{\"1\":{\"name\":\"constant.name.attribute.tag.pug\"}},\"end\":\"(\\\\\\\\))\",\"name\":\"meta.tag.other\",\"patterns\":[{\"include\":\"#tag_attribute_name_paren\"},{\"include\":\"#tag_attribute_name\"},{\"match\":\"!(?!=)\",\"name\":\"invalid.illegal.tag.pug\"},{\"begin\":\"=\\\\\\\\s*\",\"end\":\"$|(?=,|(?:\\\\\\\\s+[^!%&*\\\\\\\\-+~|<>?/])|\\\\\\\\))\",\"name\":\"attribute_value\",\"patterns\":[{\"include\":\"#js_parens\"},{\"include\":\"#js_brackets\"},{\"include\":\"#js_braces\"},{\"include\":\"source.js\"}]},{\"begin\":\"(?<=[%&*\\\\\\\\-+~|<>:?/])\\\\\\\\s+\",\"end\":\"$|(?=,|(?:\\\\\\\\s+[^!%&*\\\\\\\\-+~|<>?/])|\\\\\\\\))\",\"name\":\"attribute_value2\",\"patterns\":[{\"include\":\"#js_parens\"},{\"include\":\"#js_brackets\"},{\"include\":\"#js_braces\"},{\"include\":\"source.js\"}]}]},\"tag_classes\":{\"captures\":{\"1\":{\"name\":\"invalid.illegal.tag.pug\"}},\"match\":\"\\\\\\\\.([^\\\\\\\\w-])?[\\\\\\\\w-]*\",\"name\":\"meta.selector.css entity.other.attribute-name.class.css.pug\"},\"tag_id\":{\"match\":\"#[\\\\\\\\w-]+\",\"name\":\"meta.selector.css entity.other.attribute-name.id.css.pug\"},\"tag_mixin_attributes\":{\"begin\":\"(&attributes\\\\\\\\()\",\"captures\":{\"1\":{\"name\":\"entity.name.function.pug\"}},\"end\":\"(\\\\\\\\))\",\"name\":\"meta.tag.other\",\"patterns\":[{\"match\":\"attributes(?=\\\\\\\\))\",\"name\":\"storage.type.keyword.pug\"},{\"include\":\"source.js\"}]},\"tag_name\":{\"begin\":\"([#!]\\\\\\\\{(?=.*?\\\\\\\\}))|(\\\\\\\\w(([\\\\\\\\w:-]+[\\\\\\\\w-])|([\\\\\\\\w-]*)))\",\"end\":\"(\\\\\\\\G(?<!\\\\\\\\5[^\\\\\\\\w-]))|\\\\\\\\}|$\",\"name\":\"meta.tag.other entity.name.tag.pug\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?<=\\\\\\\\{)\",\"end\":\"(?=\\\\\\\\})\",\"name\":\"meta.tag.other entity.name.tag.pug\",\"patterns\":[{\"match\":\"{\",\"name\":\"invalid.illegal.tag.pug\"},{\"include\":\"source.js\"}]}]},\"tag_text\":{\"begin\":\"(?=.)\",\"end\":\"$\",\"patterns\":[{\"include\":\"#inline_pug\"},{\"include\":\"#embedded_html\"},{\"include\":\"#html_entity\"},{\"include\":\"#interpolated_value\"},{\"include\":\"#interpolated_error\"}]},\"unbuffered_code\":{\"begin\":\"(-|(([a-zA-Z0-9_]+)\\\\\\\\s+=))\",\"beginCaptures\":{\"3\":{\"name\":\"variable.parameter.javascript.embedded.pug\"}},\"comment\":\"name = function() {}\",\"end\":\"(?=\\\\\\\\])|(({\\\\\\\\s*)?$)\",\"name\":\"source.js\",\"patterns\":[{\"include\":\"#js_brackets\"},{\"include\":\"#babel_parens\"},{\"include\":\"source.js\"}]}},\"scopeName\":\"text.pug\",\"embeddedLangs\":[\"javascript\",\"css\",\"html\"],\"aliases\":[\"jade\"],\"embeddedLangsLazy\":[\"sass\",\"scss\",\"stylus\",\"coffee\"]}`)),c=[...e,...n,...t,a];export{c as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DZb6Dd70.js",
    "content": "import{Q as M,d as I,C as i,g as o,j as w,R as g,E as a,e as u,aj as c,H as l,q as h,G as B,F as C,O as j,ar as m,ak as N,t as O,al as S,ac as U,am as V,an as q,c as E,ao as A,ap as F,aq as v}from\"./CU_MfyYc.js\";const R={wrapper:\"w-full relative overflow-hidden\",inner:\"w-0 flex-1\",title:\"text-sm font-medium\",description:\"mt-1 text-sm leading-4 opacity-90\",actions:\"flex items-center gap-2 mt-3 flex-shrink-0\",shadow:\"\",rounded:\"rounded-lg\",padding:\"p-4\",gap:\"gap-3\",icon:{base:\"flex-shrink-0 w-5 h-5\"},avatar:{base:\"flex-shrink-0 self-center\",size:\"md\"},color:{white:{solid:\"text-gray-900 dark:text-white bg-white dark:bg-gray-900 ring-1 ring-gray-200 dark:ring-gray-800\"}},variant:{solid:\"bg-{color}-500 dark:bg-{color}-400 text-white dark:text-gray-900\",outline:\"text-{color}-500 dark:text-{color}-400 ring-1 ring-inset ring-{color}-500 dark:ring-{color}-400\",soft:\"bg-{color}-50 dark:bg-{color}-400 dark:bg-opacity-10 text-{color}-500 dark:text-{color}-400\",subtle:\"bg-{color}-50 dark:bg-{color}-400 dark:bg-opacity-10 text-{color}-500 dark:text-{color}-400 ring-1 ring-inset ring-{color}-500 dark:ring-{color}-400 ring-opacity-25 dark:ring-opacity-25\"},default:{color:\"white\",variant:\"solid\",icon:null,closeButton:null,actionButton:{size:\"xs\",color:\"primary\",variant:\"link\"}}},r=N(v.ui.strategy,v.ui.alert,R),D=I({components:{UIcon:U,UAvatar:S,UButton:O},inheritAttrs:!1,props:{title:{type:String,default:null},description:{type:String,default:null},icon:{type:String,default:()=>r.default.icon},avatar:{type:Object,default:null},closeButton:{type:Object,default:()=>r.default.closeButton},actions:{type:Array,default:()=>[]},color:{type:String,default:()=>r.default.color,validator(e){return[...v.ui.colors,...Object.keys(r.color)].includes(e)}},variant:{type:String,default:()=>r.default.variant,validator(e){return[...Object.keys(r.variant),...Object.values(r.color).flatMap(t=>Object.keys(t))].includes(e)}},class:{type:[String,Object,Array],default:()=>\"\"},ui:{type:Object,default:()=>({})}},emits:[\"close\"],setup(e){const{ui:t,attrs:y}=V(\"alert\",q(e,\"ui\"),r),b=E(()=>{var d,p;const n=((p=(d=t.value.color)==null?void 0:d[e.color])==null?void 0:p[e.variant])||t.value.variant[e.variant];return A(F(t.value.wrapper,t.value.rounded,t.value.shadow,t.value.padding,n==null?void 0:n.replaceAll(\"{color}\",e.color)),e.class)});function $(n){n.click&&n.click()}return{ui:t,attrs:y,alertClass:b,onAction:$,twMerge:A}}});function G(e,t,y,b,$,n){const d=U,p=S,f=O;return o(),i(\"div\",c({class:e.alertClass},e.attrs),[w(\"div\",{class:l([\"flex\",[e.ui.gap,{\"items-start\":e.description||e.$slots.description,\"items-center\":!e.description&&!e.$slots.description}]])},[g(e.$slots,\"icon\",{icon:e.icon},()=>[e.icon?(o(),u(d,{key:0,name:e.icon,ui:e.ui.icon.base},null,8,[\"name\",\"ui\"])):a(\"\",!0)]),g(e.$slots,\"avatar\",{avatar:e.avatar},()=>[e.avatar?(o(),u(p,c({key:0},{size:e.ui.avatar.size,...e.avatar},{class:e.ui.avatar.base}),null,16,[\"class\"])):a(\"\",!0)]),w(\"div\",{class:l(e.ui.inner)},[e.title||e.$slots.title?(o(),i(\"p\",{key:0,class:l(e.ui.title)},[g(e.$slots,\"title\",{title:e.title},()=>[h(B(e.title),1)])],2)):a(\"\",!0),e.description||e.$slots.description?(o(),i(\"p\",{key:1,class:l(e.twMerge(e.ui.description,!(e.title&&e.$slots.title)&&\"mt-0 leading-5\"))},[g(e.$slots,\"description\",{description:e.description},()=>[h(B(e.description),1)])],2)):a(\"\",!0),(e.description||e.$slots.description)&&e.actions.length?(o(),i(\"div\",{key:2,class:l(e.ui.actions)},[(o(!0),i(C,null,j(e.actions,(s,k)=>(o(),u(f,c({key:k,ref_for:!0},{...e.ui.default.actionButton||{},...s},{onClick:m(z=>e.onAction(s),[\"stop\"])}),null,16,[\"onClick\"]))),128))],2)):a(\"\",!0)],2),e.closeButton||!e.description&&!e.$slots.description&&e.actions.length?(o(),i(\"div\",{key:0,class:l(e.twMerge(e.ui.actions,\"mt-0\"))},[!e.description&&!e.$slots.description&&e.actions.length?(o(!0),i(C,{key:0},j(e.actions,(s,k)=>(o(),u(f,c({key:k,ref_for:!0},{...e.ui.default.actionButton||{},...s},{onClick:m(z=>e.onAction(s),[\"stop\"])}),null,16,[\"onClick\"]))),128)):a(\"\",!0),e.closeButton?(o(),u(f,c({key:1,\"aria-label\":\"Close\"},{...e.ui.default.closeButton||{},...e.closeButton},{onClick:t[0]||(t[0]=m(s=>e.$emit(\"close\"),[\"stop\"]))}),null,16)):a(\"\",!0)],2)):a(\"\",!0)],2)],16)}const J=M(D,[[\"render\",G]]);export{J as _};\n"
  },
  {
    "path": "jesse/static/_nuxt/D_OY6ada.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"#\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"',notIn:[\"string\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'}]},t={defaultToken:\"\",tokenPostfix:\".hcl\",keywords:[\"var\",\"local\",\"path\",\"for_each\",\"any\",\"string\",\"number\",\"bool\",\"true\",\"false\",\"null\",\"if \",\"else \",\"endif \",\"for \",\"in\",\"endfor\"],operators:[\"=\",\">=\",\"<=\",\"==\",\"!=\",\"+\",\"-\",\"*\",\"/\",\"%\",\"&&\",\"||\",\"!\",\"<\",\">\",\"?\",\"...\",\":\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,terraformFunctions:/(abs|ceil|floor|log|max|min|pow|signum|chomp|format|formatlist|indent|join|lower|regex|regexall|replace|split|strrev|substr|title|trimspace|upper|chunklist|coalesce|coalescelist|compact|concat|contains|distinct|element|flatten|index|keys|length|list|lookup|map|matchkeys|merge|range|reverse|setintersection|setproduct|setunion|slice|sort|transpose|values|zipmap|base64decode|base64encode|base64gzip|csvdecode|jsondecode|jsonencode|urlencode|yamldecode|yamlencode|abspath|dirname|pathexpand|basename|file|fileexists|fileset|filebase64|templatefile|formatdate|timeadd|timestamp|base64sha256|base64sha512|bcrypt|filebase64sha256|filebase64sha512|filemd5|filemd1|filesha256|filesha512|md5|rsadecrypt|sha1|sha256|sha512|uuid|uuidv5|cidrhost|cidrnetmask|cidrsubnet|tobool|tolist|tomap|tonumber|toset|tostring)/,terraformMainBlocks:/(module|data|terraform|resource|provider|variable|output|locals)/,tokenizer:{root:[[/^@terraformMainBlocks([ \\t]*)([\\w-]+|\"[\\w-]+\"|)([ \\t]*)([\\w-]+|\"[\\w-]+\"|)([ \\t]*)(\\{)/,[\"type\",\"\",\"string\",\"\",\"string\",\"\",\"@brackets\"]],[/(\\w+[ \\t]+)([ \\t]*)([\\w-]+|\"[\\w-]+\"|)([ \\t]*)([\\w-]+|\"[\\w-]+\"|)([ \\t]*)(\\{)/,[\"identifier\",\"\",\"string\",\"\",\"string\",\"\",\"@brackets\"]],[/(\\w+[ \\t]+)([ \\t]*)([\\w-]+|\"[\\w-]+\"|)([ \\t]*)([\\w-]+|\"[\\w-]+\"|)(=)(\\{)/,[\"identifier\",\"\",\"string\",\"\",\"operator\",\"\",\"@brackets\"]],{include:\"@terraform\"}],terraform:[[/@terraformFunctions(\\()/,[\"type\",\"@brackets\"]],[/[a-zA-Z_]\\w*-*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"variable\"}}],{include:\"@whitespace\"},{include:\"@heredoc\"},[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"operator\",\"@default\":\"\"}}],[/\\d*\\d+[eE]([\\-+]?\\d+)?/,\"number.float\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/\\d[\\d']*/,\"number\"],[/\\d/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"/,\"string\",\"@string\"],[/'/,\"invalid\"]],heredoc:[[/<<[-]*\\s*[\"]?([\\w\\-]+)[\"]?/,{token:\"string.heredoc.delimiter\",next:\"@heredocBody.$1\"}]],heredocBody:[[/([\\w\\-]+)$/,{cases:{\"$1==$S2\":[{token:\"string.heredoc.delimiter\",next:\"@popall\"}],\"@default\":\"string.heredoc\"}}],[/./,\"string.heredoc\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"],[/#.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],string:[[/\\$\\{/,{token:\"delimiter\",next:\"@stringExpression\"}],[/[^\\\\\"\\$]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string\",\"@popall\"]],stringInsideExpression:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string\",\"@pop\"]],stringExpression:[[/\\}/,{token:\"delimiter\",next:\"@pop\"}],[/\"/,\"string\",\"@stringInsideExpression\"],{include:\"@terraform\"}]}};export{e as conf,t as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/D_z4Izcz.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"ActionScript\",\"fileTypes\":[\"as\"],\"name\":\"actionscript-3\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#package\"},{\"include\":\"#class\"},{\"include\":\"#interface\"},{\"include\":\"#namespace_declaration\"},{\"include\":\"#import\"},{\"include\":\"#mxml\"},{\"include\":\"#strings\"},{\"include\":\"#regexp\"},{\"include\":\"#variable_declaration\"},{\"include\":\"#numbers\"},{\"include\":\"#primitive_types\"},{\"include\":\"#primitive_error_types\"},{\"include\":\"#dynamic_type\"},{\"include\":\"#primitive_functions\"},{\"include\":\"#language_constants\"},{\"include\":\"#language_variables\"},{\"include\":\"#guess_type\"},{\"include\":\"#guess_constant\"},{\"include\":\"#other_operators\"},{\"include\":\"#arithmetic_operators\"},{\"include\":\"#logical_operators\"},{\"include\":\"#array_access_operators\"},{\"include\":\"#vector_creation_operators\"},{\"include\":\"#control_keywords\"},{\"include\":\"#other_keywords\"},{\"include\":\"#use_namespace\"},{\"include\":\"#functions\"}],\"repository\":{\"arithmetic_operators\":{\"match\":\"(\\\\\\\\+|\\\\\\\\-|/|%|(?<!:)\\\\\\\\*)\",\"name\":\"keyword.operator.actionscript.3\"},\"array_access_operators\":{\"match\":\"(\\\\\\\\[|\\\\\\\\])\",\"name\":\"keyword.operator.actionscript.3\"},\"class\":{\"begin\":\"(^|\\\\\\\\s+|;)(\\\\\\\\b(dynamic|final|abstract)\\\\\\\\b\\\\\\\\s+)?(\\\\\\\\b(internal|public)\\\\\\\\b\\\\\\\\s+)?(\\\\\\\\b(dynamic|final|abstract)\\\\\\\\b\\\\\\\\s+)?(?=\\\\\\\\bclass\\\\\\\\b)\",\"beginCaptures\":{\"3\":{\"name\":\"storage.modifier.actionscript.3\"},\"5\":{\"name\":\"storage.modifier.actionscript.3\"},\"7\":{\"name\":\"storage.modifier.actionscript.3\"}},\"end\":\"\\\\\\\\}\",\"name\":\"meta.class.actionscript.3\",\"patterns\":[{\"include\":\"#class_declaration\"},{\"include\":\"#metadata\"},{\"include\":\"#method\"},{\"include\":\"#comments\"},{\"include\":\"#strings\"},{\"include\":\"#regexp\"},{\"include\":\"#numbers\"},{\"include\":\"#primitive_types\"},{\"include\":\"#primitive_error_types\"},{\"include\":\"#dynamic_type\"},{\"include\":\"#primitive_functions\"},{\"include\":\"#language_constants\"},{\"include\":\"#language_variables\"},{\"include\":\"#other_operators\"},{\"include\":\"#other_keywords\"},{\"include\":\"#use_namespace\"},{\"include\":\"#guess_type\"},{\"include\":\"#guess_constant\"},{\"include\":\"#arithmetic_operators\"},{\"include\":\"#array_access_operators\"},{\"include\":\"#vector_creation_operators\"},{\"include\":\"#variable_declaration\"},{\"include\":\"#object_literal\"}]},\"class_declaration\":{\"begin\":\"\\\\\\\\b(class)\\\\\\\\b\\\\\\\\s+([\\\\\\\\.\\\\\\\\w]+|\\\\\\\\*)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.actionscript.3\"},\"2\":{\"name\":\"entity.name.class.actionscript.3\"}},\"end\":\"\\\\\\\\{\",\"name\":\"meta.class_declaration.actionscript.3\",\"patterns\":[{\"include\":\"#extends\"},{\"include\":\"#implements\"},{\"include\":\"#comments\"}]},\"code_block\":{\"begin\":\"\\\\\\\\{\",\"end\":\"\\\\\\\\}\",\"name\":\"meta.code_block.actionscript.3\",\"patterns\":[{\"include\":\"#code_block\"},{\"include\":\"#comments\"},{\"include\":\"#strings\"},{\"include\":\"#regexp\"},{\"include\":\"#variable_declaration\"},{\"include\":\"#numbers\"},{\"include\":\"#primitive_types\"},{\"include\":\"#primitive_error_types\"},{\"include\":\"#dynamic_type\"},{\"include\":\"#primitive_functions\"},{\"include\":\"#language_constants\"},{\"include\":\"#language_variables\"},{\"include\":\"#guess_type\"},{\"include\":\"#guess_constant\"},{\"include\":\"#other_operators\"},{\"include\":\"#arithmetic_operators\"},{\"include\":\"#logical_operators\"},{\"include\":\"#array_access_operators\"},{\"include\":\"#vector_creation_operators\"},{\"include\":\"#control_keywords\"},{\"include\":\"#other_keywords\"},{\"include\":\"#use_namespace\"},{\"include\":\"#functions\"},{\"include\":\"#import\"}]},\"comments\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\\\\\\\\*(?!/)\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.documentation.actionscript.3\",\"patterns\":[{\"match\":\"@(copy|default|eventType|example|exampleText|includeExample|inheritDoc|internal|param|private|return|see|since|throws)\\\\\\\\b\",\"name\":\"keyword.other.documentation.actionscript.3.asdoc\"}]},{\"begin\":\"/\\\\\\\\*\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.actionscript.3\"},{\"match\":\"//.*\",\"name\":\"comment.line.actionscript.3\"}]},\"control_keywords\":{\"match\":\"\\\\\\\\b(if|else|do|while|for|each|continue|return|switch|case|default|break|try|catch|finally|throw|with)\\\\\\\\b\",\"name\":\"keyword.control.actionscript.3\"},\"dynamic_type\":{\"captures\":{\"1\":{\"name\":\"support.type.actionscript.3\"}},\"match\":\"(?<=:)\\\\\\\\s*(\\\\\\\\*)\"},\"escapes\":{\"match\":\"\\\\\\\\\\\\\\\\(x\\\\\\\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)\",\"name\":\"constant.character.escape.actionscript.3\"},\"extends\":{\"captures\":{\"1\":{\"name\":\"keyword.other.actionscript.3\"},\"2\":{\"name\":\"entity.other.inherited-class.actionscript.3\"},\"3\":{\"name\":\"entity.other.inherited-class.actionscript.3\"}},\"match\":\"\\\\\\\\b(extends)\\\\\\\\b\\\\\\\\s+([\\\\\\\\.\\\\\\\\w]+)\\\\\\\\s*(?:,\\\\\\\\s*([\\\\\\\\.\\\\\\\\w]+))*\\\\\\\\s*\",\"name\":\"meta.extends.actionscript.3\"},\"function_arguments\":{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"name\":\"meta.function_arguments.actionscript.3\",\"patterns\":[{\"include\":\"#parameters\"},{\"include\":\"#comments\"}]},\"functions\":{\"begin\":\"\\\\\\\\b(function)\\\\\\\\b(?:\\\\\\\\s+\\\\\\\\b(get|set)\\\\\\\\b\\\\\\\\s+)?\\\\\\\\s*([a-zA-Z0-9_\\\\\\\\$]+\\\\\\\\b)?\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.actionscript.3\"},\"2\":{\"name\":\"storage.modifier.actionscript.3\"},\"3\":{\"name\":\"entity.name.function.actionscript.3\"}},\"end\":\"($|;|(?=\\\\\\\\{))\",\"name\":\"meta.function.actionscript.3\",\"patterns\":[{\"include\":\"#function_arguments\"},{\"include\":\"#return_type\"},{\"include\":\"#comments\"}]},\"guess_constant\":{\"captures\":{\"1\":{\"name\":\"constant.other.actionscript.3\"}},\"comment\":\"Following convention, let's guess that anything in all caps/digits (possible underscores) is a constant.\",\"match\":\"\\\\\\\\b([A-Z\\\\\\\\$][A-Z0-9_]+)\\\\\\\\b\"},\"guess_type\":{\"captures\":{\"1\":{\"name\":\"support.type.actionscript.3\"}},\"comment\":\"Following convention, let's guess that any word starting with one or more capital letters (that contains at least some lower-case letters so that constants aren't detected) refers to a class/type. May be fully-qualified.\",\"match\":\"\\\\\\\\b((?:[A-Za-z0-9_\\\\\\\\$]+\\\\\\\\.)*[A-Z][A-Z0-9]*[a-z]+[A-Za-z0-9_\\\\\\\\$]*)\\\\\\\\b\"},\"implements\":{\"captures\":{\"1\":{\"name\":\"keyword.other.actionscript.3\"},\"2\":{\"name\":\"entity.other.inherited-class.actionscript.3\"},\"3\":{\"name\":\"entity.other.inherited-class.actionscript.3\"}},\"match\":\"\\\\\\\\b(implements)\\\\\\\\b\\\\\\\\s+([\\\\\\\\.\\\\\\\\w]+)\\\\\\\\s*(?:,\\\\\\\\s*([\\\\\\\\.\\\\\\\\w]+))*\\\\\\\\s*\",\"name\":\"meta.implements.actionscript.3\"},\"import\":{\"captures\":{\"2\":{\"name\":\"keyword.control.import.actionscript.3\"},\"3\":{\"name\":\"support.type.actionscript.3\"}},\"match\":\"(^|\\\\\\\\s+|;)\\\\\\\\b(import)\\\\\\\\b\\\\\\\\s+([A-Za-z0-9\\\\\\\\$_\\\\\\\\.]+(?:\\\\\\\\.\\\\\\\\*)?)\\\\\\\\s*(?=;|$)\",\"name\":\"meta.import.actionscript.3\"},\"interface\":{\"begin\":\"(^|\\\\\\\\s+|;)(\\\\\\\\b(internal|public)\\\\\\\\b\\\\\\\\s+)?(?=\\\\\\\\binterface\\\\\\\\b)\",\"beginCaptures\":{\"3\":{\"name\":\"storage.modifier.actionscript.3\"}},\"end\":\"\\\\\\\\}\",\"name\":\"meta.interface.actionscript.3\",\"patterns\":[{\"include\":\"#interface_declaration\"},{\"include\":\"#metadata\"},{\"include\":\"#functions\"},{\"include\":\"#comments\"}]},\"interface_declaration\":{\"begin\":\"\\\\\\\\b(interface)\\\\\\\\b\\\\\\\\s+([\\\\\\\\.\\\\\\\\w]+)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.interface.actionscript.3\"},\"2\":{\"name\":\"entity.name.class.actionscript.3\"}},\"end\":\"\\\\\\\\{\",\"name\":\"meta.class_declaration.actionscript.3\",\"patterns\":[{\"include\":\"#extends\"},{\"include\":\"#comments\"}]},\"language_constants\":{\"match\":\"\\\\\\\\b(true|false|null|Infinity|-Infinity|NaN|undefined)\\\\\\\\b\",\"name\":\"constant.language.actionscript.3\"},\"language_variables\":{\"match\":\"\\\\\\\\b(super|this|arguments)\\\\\\\\b\",\"name\":\"variable.language.actionscript.3\"},\"logical_operators\":{\"match\":\"(&|<|~|\\\\\\\\||>|\\\\\\\\^|!|\\\\\\\\?)\",\"name\":\"keyword.operator.actionscript.3\"},\"metadata\":{\"begin\":\"\\\\\\\\[\\\\\\\\s*\\\\\\\\b(\\\\\\\\w+)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.actionscript.3\"}},\"end\":\"\\\\\\\\]\",\"name\":\"meta.metadata_info.actionscript.3\",\"patterns\":[{\"include\":\"#metadata_info\"}]},\"metadata_info\":{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#strings\"},{\"captures\":{\"1\":{\"name\":\"variable.parameter.actionscript.3\"},\"2\":{\"name\":\"keyword.operator.actionscript.3\"}},\"match\":\"(\\\\\\\\w+)\\\\\\\\s*(=)\"}]},\"method\":{\"begin\":\"(^|\\\\\\\\s+)((\\\\\\\\w+)\\\\\\\\s+)?((\\\\\\\\w+)\\\\\\\\s+)?((\\\\\\\\w+)\\\\\\\\s+)?((\\\\\\\\w+)\\\\\\\\s+)?(?=\\\\\\\\bfunction\\\\\\\\b)\",\"beginCaptures\":{\"3\":{\"name\":\"storage.modifier.actionscript.3\"},\"5\":{\"name\":\"storage.modifier.actionscript.3\"},\"7\":{\"name\":\"storage.modifier.actionscript.3\"},\"8\":{\"name\":\"storage.modifier.actionscript.3\"}},\"end\":\"(?<=(;|\\\\\\\\}))\",\"name\":\"meta.method.actionscript.3\",\"patterns\":[{\"include\":\"#functions\"},{\"include\":\"#code_block\"}]},\"mxml\":{\"begin\":\"<!\\\\\\\\[CDATA\\\\\\\\[\",\"end\":\"\\\\\\\\]\\\\\\\\]>\",\"name\":\"meta.cdata.actionscript.3\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#import\"},{\"include\":\"#metadata\"},{\"include\":\"#class\"},{\"include\":\"#namespace_declaration\"},{\"include\":\"#use_namespace\"},{\"include\":\"#class_declaration\"},{\"include\":\"#method\"},{\"include\":\"#comments\"},{\"include\":\"#strings\"},{\"include\":\"#regexp\"},{\"include\":\"#numbers\"},{\"include\":\"#primitive_types\"},{\"include\":\"#primitive_error_types\"},{\"include\":\"#dynamic_type\"},{\"include\":\"#primitive_functions\"},{\"include\":\"#language_constants\"},{\"include\":\"#language_variables\"},{\"include\":\"#other_keywords\"},{\"include\":\"#guess_type\"},{\"include\":\"#guess_constant\"},{\"include\":\"#other_operators\"},{\"include\":\"#arithmetic_operators\"},{\"include\":\"#array_access_operators\"},{\"include\":\"#vector_creation_operators\"},{\"include\":\"#variable_declaration\"}]},\"namespace_declaration\":{\"captures\":{\"2\":{\"name\":\"storage.modifier.actionscript.3\"},\"3\":{\"name\":\"storage.modifier.actionscript.3\"}},\"match\":\"((\\\\\\\\w+)\\\\\\\\s+)?(namespace)\\\\\\\\s+(?:[A-Za-z0-9_\\\\\\\\$]+)\",\"name\":\"meta.namespace_declaration.actionscript.3\"},\"numbers\":{\"match\":\"\\\\\\\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\\\\\\\.?[0-9]*)|(\\\\\\\\.[0-9]+))((e|E)(\\\\\\\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\\\\\\\b\",\"name\":\"constant.numeric.actionscript.3\"},\"object_literal\":{\"begin\":\"\\\\\\\\{\",\"end\":\"\\\\\\\\}\",\"name\":\"meta.object_literal.actionscript.3\",\"patterns\":[{\"include\":\"#object_literal\"},{\"include\":\"#comments\"},{\"include\":\"#strings\"},{\"include\":\"#regexp\"},{\"include\":\"#numbers\"},{\"include\":\"#primitive_types\"},{\"include\":\"#primitive_error_types\"},{\"include\":\"#dynamic_type\"},{\"include\":\"#primitive_functions\"},{\"include\":\"#language_constants\"},{\"include\":\"#language_variables\"},{\"include\":\"#guess_type\"},{\"include\":\"#guess_constant\"},{\"include\":\"#array_access_operators\"},{\"include\":\"#vector_creation_operators\"},{\"include\":\"#functions\"}]},\"other_keywords\":{\"match\":\"\\\\\\\\b(as|delete|in|instanceof|is|native|new|to|typeof)\\\\\\\\b\",\"name\":\"keyword.other.actionscript.3\"},\"other_operators\":{\"match\":\"(\\\\\\\\.|=)\",\"name\":\"keyword.operator.actionscript.3\"},\"package\":{\"begin\":\"(^|\\\\\\\\s+)(package)\\\\\\\\b\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.other.actionscript.3\"}},\"end\":\"\\\\\\\\}\",\"name\":\"meta.package.actionscript.3\",\"patterns\":[{\"include\":\"#package_name\"},{\"include\":\"#variable_declaration\"},{\"include\":\"#method\"},{\"include\":\"#comments\"},{\"include\":\"#return_type\"},{\"include\":\"#import\"},{\"include\":\"#use_namespace\"},{\"include\":\"#strings\"},{\"include\":\"#numbers\"},{\"include\":\"#language_constants\"},{\"include\":\"#metadata\"},{\"include\":\"#class\"},{\"include\":\"#interface\"},{\"include\":\"#namespace_declaration\"}]},\"package_name\":{\"begin\":\"(?<=package)\\\\\\\\s+([\\\\\\\\w\\\\\\\\._]*)\\\\\\\\b\",\"end\":\"\\\\\\\\{\",\"name\":\"meta.package_name.actionscript.3\"},\"parameters\":{\"begin\":\"(\\\\\\\\.\\\\\\\\.\\\\\\\\.)?\\\\\\\\s*([A-Za-z\\\\\\\\_\\\\\\\\$][A-Za-z0-9_\\\\\\\\$]*)(?:\\\\\\\\s*(\\\\\\\\:)\\\\\\\\s*(?:(?:([A-Za-z\\\\\\\\$][A-Za-z0-9_\\\\\\\\$]+(?:\\\\\\\\.[A-Za-z\\\\\\\\$][A-Za-z0-9_\\\\\\\\$]+)*)(?:\\\\\\\\.<([A-Za-z\\\\\\\\$][A-Za-z0-9_\\\\\\\\$]+(?:\\\\\\\\.[A-Za-z\\\\\\\\$][A-Za-z0-9_\\\\\\\\$]+)*)>)?)|(\\\\\\\\*)))?(?:\\\\\\\\s*(=))?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.actionscript.3\"},\"2\":{\"name\":\"variable.parameter.actionscript.3\"},\"3\":{\"name\":\"keyword.operator.actionscript.3\"},\"4\":{\"name\":\"support.type.actionscript.3\"},\"5\":{\"name\":\"support.type.actionscript.3\"},\"6\":{\"name\":\"support.type.actionscript.3\"},\"7\":{\"name\":\"keyword.operator.actionscript.3\"}},\"end\":\",|(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#strings\"},{\"include\":\"#numbers\"},{\"include\":\"#language_constants\"},{\"include\":\"#comments\"},{\"include\":\"#primitive_types\"},{\"include\":\"#primitive_error_types\"},{\"include\":\"#dynamic_type\"},{\"include\":\"#guess_type\"},{\"include\":\"#guess_constant\"}]},\"primitive_error_types\":{\"captures\":{\"1\":{\"name\":\"support.class.error.actionscript.3\"}},\"match\":\"\\\\\\\\b((Argument|Definition|Eval|Internal|Range|Reference|Security|Syntax|Type|URI|Verify)?Error)\\\\\\\\b\"},\"primitive_functions\":{\"captures\":{\"1\":{\"name\":\"support.function.actionscript.3\"}},\"match\":\"\\\\\\\\b(decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|escape|isFinite|isNaN|isXMLName|parseFloat|parseInt|trace|unescape)(?=\\\\\\\\s*\\\\\\\\()\"},\"primitive_types\":{\"captures\":{\"1\":{\"name\":\"support.class.builtin.actionscript.3\"}},\"match\":\"\\\\\\\\b(Array|Boolean|Class|Date|Function|int|JSON|Math|Namespace|Number|Object|QName|RegExp|String|uint|Vector|XML|XMLList|\\\\\\\\*(?<=a))\\\\\\\\b\"},\"regexp\":{\"begin\":\"(?<=[=(:,\\\\\\\\[]|^|return|&&|\\\\\\\\|\\\\\\\\||!)\\\\\\\\s*(/)(?![/*+{}?])\",\"end\":\"$|(/)[igm]*\",\"name\":\"string.regex.actionscript.3\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.actionscript.3\"},{\"match\":\"\\\\\\\\[(\\\\\\\\\\\\\\\\\\\\\\\\]|[^\\\\\\\\]])*\\\\\\\\]\",\"name\":\"constant.character.class.actionscript.3\"}]},\"return_type\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.actionscript.3\"},\"2\":{\"name\":\"support.type.actionscript.3\"},\"3\":{\"name\":\"support.type.actionscript.3\"},\"4\":{\"name\":\"support.type.actionscript.3\"}},\"match\":\"(\\\\\\\\:)\\\\\\\\s*(?:([A-Za-z\\\\\\\\$][A-Za-z0-9_\\\\\\\\$]+(?:\\\\\\\\.[A-Za-z\\\\\\\\$][A-Za-z0-9_\\\\\\\\$]+)*)(?:\\\\\\\\.<([A-Za-z\\\\\\\\$][A-Za-z0-9_\\\\\\\\$]+(?:\\\\\\\\.[A-Za-z\\\\\\\\$][A-Za-z0-9_\\\\\\\\$]+)*)>)?)|(\\\\\\\\*)\"},\"strings\":{\"patterns\":[{\"begin\":\"@\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.verbatim.actionscript.3\"},{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.actionscript.3\",\"patterns\":[{\"include\":\"#escapes\"}]},{\"begin\":\"'\",\"end\":\"'\",\"name\":\"string.quoted.single.actionscript.3\",\"patterns\":[{\"include\":\"#escapes\"}]}]},\"use_namespace\":{\"captures\":{\"2\":{\"name\":\"keyword.other.actionscript.3\"},\"3\":{\"name\":\"keyword.other.actionscript.3\"},\"4\":{\"name\":\"storage.modifier.actionscript.3\"}},\"match\":\"(^|\\\\\\\\s+|;)(use\\\\\\\\s+)?(namespace)\\\\\\\\s+(\\\\\\\\w+)\\\\\\\\s*(;|$)\"},\"variable_declaration\":{\"captures\":{\"2\":{\"name\":\"storage.modifier.actionscript.3\"},\"4\":{\"name\":\"storage.modifier.actionscript.3\"},\"6\":{\"name\":\"storage.modifier.actionscript.3\"},\"7\":{\"name\":\"storage.modifier.actionscript.3\"},\"8\":{\"name\":\"keyword.operator.actionscript.3\"}},\"match\":\"((static)\\\\\\\\s+)?((\\\\\\\\w+)\\\\\\\\s+)?((static)\\\\\\\\s+)?(const|var)\\\\\\\\s+(?:[A-Za-z0-9_\\\\\\\\$]+)(?:\\\\\\\\s*(:))?\",\"name\":\"meta.variable_declaration.actionscript.3\"},\"vector_creation_operators\":{\"match\":\"(<|>)\",\"name\":\"keyword.operator.actionscript.3\"}},\"scopeName\":\"source.actionscript.3\"}`)),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DaasEFj5.js",
    "content": "import{d as f,aH as m,c as r,aI as I,C as d,X as x,g as v,aJ as S,Q as _}from\"./CU_MfyYc.js\";const g=f({__name:\"IconCSS\",props:{name:{type:String,required:!0},size:{type:String,default:\"\"}},setup(u){S(e=>({efdb04fa:p.value}));const t=m(),s=u,l=r(()=>{var e,n;return(n=(e=t.nuxtIcon)==null?void 0:e.aliases)!=null&&n[s.name]?t.nuxtIcon.aliases[s.name]:s.name}),c=r(()=>I(l.value)),p=r(()=>{var o,a;const e=(a=(o=t.nuxtIcon)==null?void 0:o.iconifyApiOptions)==null?void 0:a.url;if(e)try{new URL(e)}catch{console.warn(\"Nuxt IconCSS: Invalid custom Iconify API URL\");return}return`url('${e||\"https://api.iconify.design\"}/${c.value.prefix}/${c.value.name}.svg')`}),i=r(()=>{var n,o,a;if(!s.size&&typeof((n=t.nuxtIcon)==null?void 0:n.size)==\"boolean\"&&!((o=t.nuxtIcon)!=null&&o.size))return;const e=s.size||((a=t.nuxtIcon)==null?void 0:a.size)||\"1em\";return String(Number(e))===e?`${e}px`:e});return(e,n)=>(v(),d(\"span\",{style:x({width:i.value,height:i.value})},null,4))}}),C=_(g,[[\"__scopeId\",\"data-v-41e8d397\"]]);export{C as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Dayu4EKP.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Fluent\",\"name\":\"fluent\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#message\"},{\"include\":\"#wrong-line\"}],\"repository\":{\"attributes\":{\"begin\":\"\\\\\\\\s*(\\\\\\\\.[a-zA-Z][a-zA-Z0-9_-]*\\\\\\\\s*=\\\\\\\\s*)\",\"beginCaptures\":{\"1\":{\"name\":\"support.class.attribute-begin.fluent\"}},\"end\":\"^(?=\\\\\\\\s*[^\\\\\\\\.])\",\"patterns\":[{\"include\":\"#placeable\"}]},\"comment\":{\"match\":\"^##?#?\\\\\\\\s.*$\",\"name\":\"comment.fluent\"},\"function-comma\":{\"match\":\",\",\"name\":\"support.function.function-comma.fluent\"},\"function-named-argument\":{\"begin\":\"([a-zA-Z0-9]+:)\\\\\\\\s*([\\\\\"a-zA-Z0-9]+)\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.named-argument.name.fluent\"},\"2\":{\"name\":\"variable.other.named-argument.value.fluent\"}},\"end\":\"(?=\\\\\\\\)|,|\\\\\\\\s)\",\"name\":\"variable.other.named-argument.fluent\"},\"function-positional-argument\":{\"match\":\"\\\\\\\\$[a-zA-Z0-9_-]+\",\"name\":\"variable.other.function.positional-argument.fluent\"},\"invalid-placeable-string-missing-end-quote\":{\"match\":\"\\\\\"[^\\\\\"]+$\",\"name\":\"invalid.illegal.wrong-placeable-missing-end-quote.fluent\"},\"invalid-placeable-wrong-placeable-missing-end\":{\"match\":\"([^}A-Z]*$|[^-][^>]$)\\\\\\\\b\",\"name\":\"invalid.illegal.wrong-placeable-missing-end.fluent\"},\"message\":{\"begin\":\"^(-?[a-zA-Z][a-zA-Z0-9_-]*\\\\\\\\s*=\\\\\\\\s*)\",\"beginCaptures\":{\"1\":{\"name\":\"support.class.message-identifier.fluent\"}},\"contentName\":\"string.fluent\",\"end\":\"^(?=\\\\\\\\S)\",\"patterns\":[{\"include\":\"#attributes\"},{\"include\":\"#placeable\"}]},\"placeable\":{\"begin\":\"({)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.placeable.begin.fluent\"}},\"contentName\":\"variable.other.placeable.content.fluent\",\"end\":\"(})\",\"endCaptures\":{\"1\":{\"name\":\"keyword.placeable.end.fluent\"}},\"patterns\":[{\"include\":\"#placeable-string\"},{\"include\":\"#placeable-function\"},{\"include\":\"#placeable-reference-or-number\"},{\"include\":\"#selector\"},{\"include\":\"#invalid-placeable-wrong-placeable-missing-end\"},{\"include\":\"#invalid-placeable-string-missing-end-quote\"},{\"include\":\"#invalid-placeable-wrong-function-name\"}]},\"placeable-function\":{\"begin\":\"([A-Z][A-Z0-9_-]*\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.placeable-function.call.begin.fluent\"}},\"contentName\":\"string.placeable-function.fluent\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"support.function.placeable-function.call.end.fluent\"}},\"patterns\":[{\"include\":\"#function-comma\"},{\"include\":\"#function-positional-argument\"},{\"include\":\"#function-named-argument\"}]},\"placeable-reference-or-number\":{\"match\":\"((-|\\\\\\\\$)[a-zA-Z0-9_-]+|[a-zA-Z][a-zA-Z0-9_-]*|[0-9]+)\",\"name\":\"variable.other.placeable.reference-or-number.fluent\"},\"placeable-string\":{\"begin\":\"(\\\\\")(?=[^\\\\\\\\n]*\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.placeable-string-begin.fluent\"}},\"contentName\":\"string.placeable-string-content.fluent\",\"end\":\"(\\\\\")\",\"endCaptures\":{\"1\":{\"name\":\"variable.other.placeable-string-end.fluent\"}}},\"selector\":{\"begin\":\"(->)\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.selector.begin.fluent\"}},\"contentName\":\"string.selector.content.fluent\",\"end\":\"^(?=\\\\\\\\s*})\",\"patterns\":[{\"include\":\"#selector-item\"}]},\"selector-item\":{\"begin\":\"(\\\\\\\\s*\\\\\\\\*?\\\\\\\\[)([a-zA-Z0-9_-]+)(\\\\\\\\]\\\\\\\\s*)\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.selector-item.begin.fluent\"},\"2\":{\"name\":\"variable.other.selector-item.begin.fluent\"},\"3\":{\"name\":\"support.function.selector-item.begin.fluent\"}},\"contentName\":\"string.selector-item.content.fluent\",\"end\":\"^(?=(\\\\\\\\s*})|(\\\\\\\\s*\\\\\\\\[)|(\\\\\\\\s*\\\\\\\\*))\",\"patterns\":[{\"include\":\"#placeable\"}]},\"wrong-line\":{\"match\":\".*\",\"name\":\"invalid.illegal.wrong-line.fluent\"}},\"scopeName\":\"source.ftl\",\"aliases\":[\"ftl\"]}')),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DbXoA79R.js",
    "content": "const _=Object.freeze(JSON.parse('{\"displayName\":\"CMake\",\"fileTypes\":[\"cmake\",\"CMakeLists.txt\"],\"name\":\"cmake\",\"patterns\":[{\"comment\":\"Variables That Describe the System\",\"match\":\"\\\\\\\\b(?i:APPLE|BORLAND|(CMAKE_)?(CL_64|COMPILER_2005|HOST_APPLE|HOST_SYSTEM|HOST_SYSTEM_NAME|HOST_SYSTEM_PROCESSOR|HOST_SYSTEM_VERSION|HOST_UNIX|HOST_WIN32|LIBRARY_ARCHITECTURE|LIBRARY_ARCHITECTURE_REGEX|OBJECT_PATH_MAX|SYSTEM|SYSTEM_NAME|SYSTEM_PROCESSOR|SYSTEM_VERSION)|CYGWIN|MSVC|MSVC80|MSVC_IDE|MSVC_VERSION|UNIX|WIN32|XCODE_VERSION|MSVC60|MSVC70|MSVC90|MSVC71)\\\\\\\\b\",\"name\":\"constant.source.cmake\"},{\"comment\":\"cmakeOperators\",\"match\":\"\\\\\\\\b(?i:ABSOLUTE|AND|BOOL|CACHE|COMMAND|COMMENT|DEFINED|DOC|EQUAL|EXISTS|EXT|FALSE|GREATER|GREATER_EQUAL|INTERNAL|IN_LIST|IS_ABSOLUTE|IS_DIRECTORY|IS_NEWER_THAN|IS_SYMLINK|LESS|LESS_EQUAL|MATCHES|NAME|NAMES|NAME_WE|NOT|OFF|ON|OR|PATH|PATHS|POLICY|PROGRAM|STREQUAL|STRGREATER|STRGREATER_EQUAL|STRING|STRLESS|STRLESS_EQUAL|TARGET|TEST|TRUE|VERSION_EQUAL|VERSION_GREATER|VERSION_GREATER_EQUAL|VERSION_LESS)\\\\\\\\b\",\"name\":\"keyword.cmake\"},{\"comment\":\"Commands\",\"match\":\"^\\\\\\\\s*\\\\\\\\b(?i:add_compile_options|add_custom_command|add_custom_target|add_definitions|add_dependencies|add_executable|add_library|add_subdirectory|add_test|aux_source_directory|break|build_command|build_name|cmake_host_system_information|cmake_minimum_required|cmake_policy|configure_file|continue|create_test_sourcelist|ctest_build|ctest_configure|ctest_coverage|ctest_empty_binary_directory|ctest_memcheck|ctest_read_custom_files|ctest_run_script|ctest_sleep|ctest_start|ctest_submit|ctest_test|ctest_update|ctest_upload|define_property|else|elseif|enable_language|enable_testing|endforeach|endfunction|endif|endmacro|endwhile|exec_program|execute_process|export|export_library_dependencies|file|find_file|find_library|find_package|find_path|find_program|fltk_wrap_ui|foreach|function|get_cmake_property|get_directory_property|get_filename_component|get_property|get_source_file_property|get_target_property|get_test_property|if|include|include_directories|include_external_msproject|include_regular_expression|install|install_files|install_programs|install_targets|link_directories|link_libraries|list|load_cache|load_command|macro|make_directory|mark_as_advanced|math|message|option|output_required_files|project|qt_wrap_cpp|qt_wrap_ui|remove|remove_definitions|return|separate_arguments|set|set_directory_properties|set_property|set_source_files_properties|set_target_properties|set_tests_properties|site_name|source_group|string|subdir_depends|subdirs|target_compile_definitions|target_compile_features|target_compile_options|target_include_directories|target_link_libraries|target_sources|try_compile|try_run|unset|use_mangled_mesa|utility_source|variable_requires|variable_watch|while|write_file)\\\\\\\\b\",\"name\":\"keyword.cmake\"},{\"comment\":\"Variables That Change Behavior\",\"match\":\"\\\\\\\\b(?i:BUILD_SHARED_LIBS|(CMAKE_)?(ABSOLUTE_DESTINATION_FILES|AUTOMOC_RELAXED_MODE|BACKWARDS_COMPATIBILITY|BUILD_TYPE|COLOR_MAKEFILE|CONFIGURATION_TYPES|DEBUG_TARGET_PROPERTIES|DISABLE_FIND_PACKAGE_\\\\\\\\w+|FIND_LIBRARY_PREFIXES|FIND_LIBRARY_SUFFIXES|IGNORE_PATH|INCLUDE_PATH|INSTALL_DEFAULT_COMPONENT_NAME|INSTALL_PREFIX|LIBRARY_PATH|MFC_FLAG|MODULE_PATH|NOT_USING_CONFIG_FLAGS|POLICY_DEFAULT_CMP\\\\\\\\w+|PREFIX_PATH|PROGRAM_PATH|SKIP_INSTALL_ALL_DEPENDENCY|SYSTEM_IGNORE_PATH|SYSTEM_INCLUDE_PATH|SYSTEM_LIBRARY_PATH|SYSTEM_PREFIX_PATH|SYSTEM_PROGRAM_PATH|USER_MAKE_RULES_OVERRIDE|WARN_ON_ABSOLUTE_INSTALL_DESTINATION))\\\\\\\\b\",\"name\":\"variable.source.cmake\"},{\"match\":\"\\\\\\\\$\\\\\\\\{\\\\\\\\w+\\\\\\\\}\",\"name\":\"storage.source.cmake\"},{\"match\":\"\\\\\\\\$ENV\\\\\\\\{\\\\\\\\w+\\\\\\\\}\",\"name\":\"storage.source.cmake\"},{\"comment\":\"Variables that Control the Build\",\"match\":\"\\\\\\\\b(?i:(CMAKE_)?(\\\\\\\\w+_POSTFIX|ARCHIVE_OUTPUT_DIRECTORY|AUTOMOC|AUTOMOC_MOC_OPTIONS|BUILD_WITH_INSTALL_RPATH|DEBUG_POSTFIX|EXE_LINKER_FLAGS|EXE_LINKER_FLAGS_\\\\\\\\w+|Fortran_FORMAT|Fortran_MODULE_DIRECTORY|GNUtoMS|INCLUDE_CURRENT_DIR|INCLUDE_CURRENT_DIR_IN_INTERFACE|INSTALL_NAME_DIR|INSTALL_RPATH|INSTALL_RPATH_USE_LINK_PATH|LIBRARY_OUTPUT_DIRECTORY|LIBRARY_PATH_FLAG|LINK_DEF_FILE_FLAG|LINK_DEPENDS_NO_SHARED|LINK_INTERFACE_LIBRARIES|LINK_LIBRARY_FILE_FLAG|LINK_LIBRARY_FLAG|MACOSX_BUNDLE|NO_BUILTIN_CHRPATH|PDB_OUTPUT_DIRECTORY|POSITION_INDEPENDENT_CODE|RUNTIME_OUTPUT_DIRECTORY|SKIP_BUILD_RPATH|SKIP_INSTALL_RPATH|TRY_COMPILE_CONFIGURATION|USE_RELATIVE_PATHS|WIN32_EXECUTABLE)|EXECUTABLE_OUTPUT_PATH|LIBRARY_OUTPUT_PATH)\\\\\\\\b\",\"name\":\"variable.source.cmake\"},{\"comment\":\"Variables that Provide Information\",\"match\":\"\\\\\\\\b(?i:CMAKE_(AR|ARGC|ARGV0|BINARY_DIR|BUILD_TOOL|CACHEFILE_DIR|CACHE_MAJOR_VERSION|CACHE_MINOR_VERSION|CACHE_PATCH_VERSION|CFG_INTDIR|COMMAND|CROSSCOMPILING|CTEST_COMMAND|CURRENT_BINARY_DIR|CURRENT_LIST_DIR|CURRENT_LIST_FILE|CURRENT_LIST_LINE|CURRENT_SOURCE_DIR|DL_LIBS|EDIT_COMMAND|EXECUTABLE_SUFFIX|EXTRA_GENERATOR|EXTRA_SHARED_LIBRARY_SUFFIXES|GENERATOR|HOME_DIRECTORY|IMPORT_LIBRARY_PREFIX|IMPORT_LIBRARY_SUFFIX|LINK_LIBRARY_SUFFIX|MAJOR_VERSION|MAKE_PROGRAM|MINOR_VERSION|PARENT_LIST_FILE|PATCH_VERSION|PROJECT_NAME|RANLIB|ROOT|SCRIPT_MODE_FILE|SHARED_LIBRARY_PREFIX|SHARED_LIBRARY_SUFFIX|SHARED_MODULE_PREFIX|SHARED_MODULE_SUFFIX|SIZEOF_VOID_P|SKIP_RPATH|SOURCE_DIR|STANDARD_LIBRARIES|STATIC_LIBRARY_PREFIX|STATIC_LIBRARY_SUFFIX|TWEAK_VERSION|USING_VC_FREE_TOOLS|VERBOSE_MAKEFILE|VERSION)|PROJECT_BINARY_DIR|PROJECT_NAME|PROJECT_SOURCE_DIR|\\\\\\\\w+_BINARY_DIR|\\\\\\\\w+__SOURCE_DIR)\\\\\\\\b\",\"name\":\"variable.source.cmake\"},{\"begin\":\"#\\\\\\\\[(=*)\\\\\\\\[\",\"comment\":\"BracketArgs\",\"end\":\"\\\\\\\\]\\\\\\\\1\\\\\\\\]\",\"name\":\"comment.source.cmake\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(.|$)\",\"name\":\"constant.character.escape\"}]},{\"begin\":\"\\\\\\\\[(=*)\\\\\\\\[\",\"comment\":\"BracketArgs\",\"end\":\"\\\\\\\\]\\\\\\\\1\\\\\\\\]\",\"name\":\"argument.source.cmake\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(.|$)\",\"name\":\"constant.character.escape\"}]},{\"match\":\"#+.*$\",\"name\":\"comment.source.cmake\"},{\"comment\":\"Properties on Cache Entries\",\"match\":\"\\\\\\\\b(?i:ADVANCED|HELPSTRING|MODIFIED|STRINGS|TYPE|VALUE)\\\\\\\\b\",\"name\":\"entity.source.cmake\"},{\"comment\":\"Properties on Source Files\",\"match\":\"\\\\\\\\b(?i:ABSTRACT|COMPILE_DEFINITIONS|COMPILE_DEFINITIONS_<CONFIG>|COMPILE_FLAGS|EXTERNAL_OBJECT|Fortran_FORMAT|GENERATED|HEADER_FILE_ONLY|KEEP_EXTENSION|LABELS|LANGUAGE|LOCATION|MACOSX_PACKAGE_LOCATION|OBJECT_DEPENDS|OBJECT_OUTPUTS|SYMBOLIC|WRAP_EXCLUDE)\\\\\\\\b\",\"name\":\"entity.source.cmake\"},{\"comment\":\"Properties on Tests\",\"match\":\"\\\\\\\\b(?i:ATTACHED_FILES|ATTACHED_FILES_ON_FAIL|COST|DEPENDS|ENVIRONMENT|FAIL_REGULAR_EXPRESSION|LABELS|MEASUREMENT|PASS_REGULAR_EXPRESSION|PROCESSORS|REQUIRED_FILES|RESOURCE_LOCK|RUN_SERIAL|TIMEOUT|WILL_FAIL|WORKING_DIRECTORY)\\\\\\\\b\",\"name\":\"entity.source.cmake\"},{\"comment\":\"Properties on Directories\",\"match\":\"\\\\\\\\b(?i:ADDITIONAL_MAKE_CLEAN_FILES|CACHE_VARIABLES|CLEAN_NO_CUSTOM|COMPILE_DEFINITIONS|COMPILE_DEFINITIONS_\\\\\\\\w+|DEFINITIONS|EXCLUDE_FROM_ALL|IMPLICIT_DEPENDS_INCLUDE_TRANSFORM|INCLUDE_DIRECTORIES|INCLUDE_REGULAR_EXPRESSION|INTERPROCEDURAL_OPTIMIZATION|INTERPROCEDURAL_OPTIMIZATION_\\\\\\\\w+|LINK_DIRECTORIES|LISTFILE_STACK|MACROS|PARENT_DIRECTORY|RULE_LAUNCH_COMPILE|RULE_LAUNCH_CUSTOM|RULE_LAUNCH_LINK|TEST_INCLUDE_FILE|VARIABLES|VS_GLOBAL_SECTION_POST_\\\\\\\\w+|VS_GLOBAL_SECTION_PRE_\\\\\\\\w+)\\\\\\\\b\",\"name\":\"entity.source.cmake\"},{\"comment\":\"Properties of Global Scope\",\"match\":\"\\\\\\\\b(?i:ALLOW_DUPLICATE_CUSTOM_TARGETS|DEBUG_CONFIGURATIONS|DISABLED_FEATURES|ENABLED_FEATURES|ENABLED_LANGUAGES|FIND_LIBRARY_USE_LIB64_PATHS|FIND_LIBRARY_USE_OPENBSD_VERSIONING|GLOBAL_DEPENDS_DEBUG_MODE|GLOBAL_DEPENDS_NO_CYCLES|IN_TRY_COMPILE|PACKAGES_FOUND|PACKAGES_NOT_FOUND|PREDEFINED_TARGETS_FOLDER|REPORT_UNDEFINED_PROPERTIES|RULE_LAUNCH_COMPILE|RULE_LAUNCH_CUSTOM|RULE_LAUNCH_LINK|RULE_MESSAGES|TARGET_ARCHIVES_MAY_BE_SHARED_LIBS|TARGET_SUPPORTS_SHARED_LIBS|USE_FOLDERS|__CMAKE_DELETE_CACHE_CHANGE_VARS_)\\\\\\\\b\",\"name\":\"entity.source.cmake\"},{\"comment\":\"Properties on Targets\",\"match\":\"\\\\\\\\b(?i:\\\\\\\\w+_(OUTPUT_NAME|POSTFIX)|ARCHIVE_OUTPUT_(DIRECTORY(_\\\\\\\\w+)?|NAME(_\\\\\\\\w+)?)|AUTOMOC(_MOC_OPTIONS)?|BUILD_WITH_INSTALL_RPATH|BUNDLE|BUNDLE(_EXTENSION)?|COMPATIBLE_INTERFACE_BOOL|COMPATIBLE_INTERFACE_STRING|COMPILE_(DEFINITIONS(_\\\\\\\\w+)?|FLAGS)|DEBUG_POSTFIX|DEFINE_SYMBOL|ENABLE_EXPORTS|EXCLUDE_FROM_ALL|EchoString|FOLDER|FRAMEWORK|Fortran_(FORMAT|MODULE_DIRECTORY)|GENERATOR_FILE_NAME|GNUtoMS|HAS_CXX|IMPLICIT_DEPENDS_INCLUDE_TRANSFORM|IMPORTED|IMPORTED_(CONFIGURATIONS|IMPLIB(_\\\\\\\\w+)?|LINK_DEPENDENT_LIBRARIES(_\\\\\\\\w+)?|LINK_INTERFACE_LANGUAGES(_\\\\\\\\w+)?|LINK_INTERFACE_LIBRARIES(_\\\\\\\\w+)?|LINK_INTERFACE_MULTIPLICITY(_\\\\\\\\w+)?|LOCATION(_\\\\\\\\w+)?|NO_SONAME(_\\\\\\\\w+)?|SONAME(_\\\\\\\\w+)?)|IMPORT_PREFIX|IMPORT_SUFFIX|INSTALL_NAME_DIR|INSTALL_RPATH|INSTALL_RPATH_USE_LINK_PATH|INTERFACE|INTERFACE_COMPILE_DEFINITIONS|INTERFACE_INCLUDE_DIRECTORIES|INTERPROCEDURAL_OPTIMIZATION|INTERPROCEDURAL_OPTIMIZATION_\\\\\\\\w+|LABELS|LIBRARY_OUTPUT_DIRECTORY(_\\\\\\\\w+)?|LIBRARY_OUTPUT_NAME(_\\\\\\\\w+)?|LINKER_LANGUAGE|LINK_DEPENDS|LINK_FLAGS(_\\\\\\\\w+)?|LINK_INTERFACE_LIBRARIES(_\\\\\\\\w+)?|LINK_INTERFACE_MULTIPLICITY(_\\\\\\\\w+)?|LINK_LIBRARIES|LINK_SEARCH_END_STATIC|LINK_SEARCH_START_STATIC|LOCATION(_\\\\\\\\w+)?|MACOSX_BUNDLE|MACOSX_BUNDLE_INFO_PLIST|MACOSX_FRAMEWORK_INFO_PLIST|MAP_IMPORTED_CONFIG_\\\\\\\\w+|NO_SONAME|OSX_ARCHITECTURES(_\\\\\\\\w+)?|OUTPUT_NAME(_\\\\\\\\w+)?|PDB_NAME(_\\\\\\\\w+)?|POST_INSTALL_SCRIPT|PREFIX|PRE_INSTALL_SCRIPT|PRIVATE|PRIVATE_HEADER|PROJECT_LABEL|PUBLIC|PUBLIC_HEADER|RESOURCE|RULE_LAUNCH_(COMPILE|CUSTOM|LINK)|RUNTIME_OUTPUT_(DIRECTORY(_\\\\\\\\w+)?|NAME(_\\\\\\\\w+)?)|SKIP_BUILD_RPATH|SOURCES|SOVERSION|STATIC_LIBRARY_FLAGS(_\\\\\\\\w+)?|SUFFIX|TYPE|VERSION|VS_DOTNET_REFERENCES|VS_GLOBAL_(\\\\\\\\w+|KEYWORD|PROJECT_TYPES)|VS_KEYWORD|VS_SCC_(AUXPATH|LOCALPATH|PROJECTNAME|PROVIDER)|VS_WINRT_EXTENSIONS|VS_WINRT_REFERENCES|WIN32_EXECUTABLE|XCODE_ATTRIBUTE_\\\\\\\\w+)\\\\\\\\b\",\"name\":\"entity.source.cmake\"},{\"begin\":\"\\\\\\\\\\\\\\\\\\\\\"\",\"comment\":\"Escaped Strings\",\"end\":\"\\\\\\\\\\\\\\\\\\\\\"\",\"name\":\"string.source.cmake\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(.|$)\",\"name\":\"constant.character.escape\"}]},{\"begin\":\"\\\\\"\",\"comment\":\"Normal Strings\",\"end\":\"\\\\\"\",\"name\":\"string.source.cmake\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(.|$)\",\"name\":\"constant.character.escape\"}]},{\"comment\":\"Derecated keyword\",\"match\":\"\\\\\\\\bBUILD_NAME\\\\\\\\b\",\"name\":\"invalid.deprecated.source.cmake\"},{\"comment\":\"Compiler Flags\",\"match\":\"\\\\\\\\b(?i:(CMAKE_)?(CXX_FLAGS|CMAKE_CXX_FLAGS_DEBUG|CMAKE_CXX_FLAGS_MINSIZEREL|CMAKE_CXX_FLAGS_RELEASE|CMAKE_CXX_FLAGS_RELWITHDEBINFO))\\\\\\\\b\",\"name\":\"variable.source.cmake\"}],\"repository\":{},\"scopeName\":\"source.cmake\"}')),E=[_];export{E as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Dbxjm_CC.js",
    "content": "import e from\"./C3t2pwGQ.js\";const a=Object.freeze(JSON.parse(`{\"displayName\":\"Lua\",\"name\":\"lua\",\"patterns\":[{\"begin\":\"\\\\\\\\b(?:(local)\\\\\\\\s+)?(function)\\\\\\\\b(?![,:])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.local.lua\"},\"2\":{\"name\":\"keyword.control.lua\"}},\"end\":\"(?<=[\\\\\\\\)\\\\\\\\-{}\\\\\\\\[\\\\\\\\]\\\\\"'])\",\"name\":\"meta.function.lua\",\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.begin.lua\"}},\"end\":\"(\\\\\\\\))|(?=[\\\\\\\\-\\\\\\\\.{}\\\\\\\\[\\\\\\\\]\\\\\"'])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.finish.lua\"}},\"name\":\"meta.parameter.lua\",\"patterns\":[{\"include\":\"#comment\"},{\"match\":\"[a-zA-Z_][a-zA-Z0-9_]*\",\"name\":\"variable.parameter.function.lua\"},{\"match\":\",\",\"name\":\"punctuation.separator.arguments.lua\"},{\"begin\":\":\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.arguments.lua\"}},\"end\":\"(?=[\\\\\\\\),])\",\"patterns\":[{\"include\":\"#emmydoc.type\"}]}]},{\"match\":\"\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_]*)\\\\\\\\b\\\\\\\\s*(?=:)\",\"name\":\"entity.name.class.lua\"},{\"match\":\"\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_]*)\\\\\\\\b\",\"name\":\"entity.name.function.lua\"}]},{\"match\":\"(?<![\\\\\\\\w\\\\\\\\d.])0[xX][0-9A-Fa-f]+(\\\\\\\\.[0-9A-Fa-f]*)?([eE]-?\\\\\\\\d*)?([pP][-+]\\\\\\\\d+)?\",\"name\":\"constant.numeric.float.hexadecimal.lua\"},{\"match\":\"(?<![\\\\\\\\w\\\\\\\\d.])0[xX]\\\\\\\\.[0-9A-Fa-f]+([eE]-?\\\\\\\\d*)?([pP][-+]\\\\\\\\d+)?\",\"name\":\"constant.numeric.float.hexadecimal.lua\"},{\"match\":\"(?<![\\\\\\\\w\\\\\\\\d.])0[xX][0-9A-Fa-f]+(?![pPeE.0-9])\",\"name\":\"constant.numeric.integer.hexadecimal.lua\"},{\"match\":\"(?<![\\\\\\\\w\\\\\\\\d.])\\\\\\\\d+(\\\\\\\\.\\\\\\\\d*)?([eE]-?\\\\\\\\d*)?\",\"name\":\"constant.numeric.float.lua\"},{\"match\":\"(?<![\\\\\\\\w\\\\\\\\d.])\\\\\\\\.\\\\\\\\d+([eE]-?\\\\\\\\d*)?\",\"name\":\"constant.numeric.float.lua\"},{\"match\":\"(?<![\\\\\\\\w\\\\\\\\d.])\\\\\\\\d+(?![pPeE.0-9])\",\"name\":\"constant.numeric.integer.lua\"},{\"include\":\"#string\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.lua\"}},\"match\":\"\\\\\\\\A(#!).*$\\\\\\\\n?\",\"name\":\"comment.line.shebang.lua\"},{\"include\":\"#comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.goto.lua\"},\"2\":{\"name\":\"string.tag.lua\"}},\"match\":\"\\\\\\\\b(goto)\\\\\\\\s+([a-zA-Z_][a-zA-Z0-9_]*)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.section.embedded.begin.lua\"},\"2\":{\"name\":\"punctuation.section.embedded.end.lua\"}},\"match\":\"(::)\\\\\\\\s*[a-zA-Z_][a-zA-Z0-9_]*\\\\\\\\s*(::)\",\"name\":\"string.tag.lua\"},{\"captures\":{\"0\":{\"name\":\"storage.type.attribute.lua\"}},\"match\":\"<\\\\\\\\s*(const|close)\\\\\\\\s*>\"},{\"match\":\"\\\\\\\\<[a-zA-Z_\\\\\\\\*][a-zA-Z0-9_\\\\\\\\.\\\\\\\\*\\\\\\\\-]*\\\\\\\\>\",\"name\":\"storage.type.generic.lua\"},{\"match\":\"\\\\\\\\b(break|do|else|for|if|elseif|goto|return|then|repeat|while|until|end|in)\\\\\\\\b\",\"name\":\"keyword.control.lua\"},{\"match\":\"\\\\\\\\b(local)\\\\\\\\b\",\"name\":\"keyword.local.lua\"},{\"match\":\"\\\\\\\\b(function)\\\\\\\\b(?![,:])\",\"name\":\"keyword.control.lua\"},{\"match\":\"(?<![^.]\\\\\\\\.|:)\\\\\\\\b(false|nil(?!:)|true|_ENV|_G|_VERSION|math\\\\\\\\.(pi|huge|maxinteger|mininteger)|utf8\\\\\\\\.charpattern|io\\\\\\\\.(stdin|stdout|stderr)|package\\\\\\\\.(config|cpath|loaded|loaders|path|preload|searchers))\\\\\\\\b|(?<![.])\\\\\\\\.{3}(?!\\\\\\\\.)\",\"name\":\"constant.language.lua\"},{\"match\":\"(?<![^.]\\\\\\\\.|:)\\\\\\\\b(self)\\\\\\\\b\",\"name\":\"variable.language.self.lua\"},{\"match\":\"(?<![^.]\\\\\\\\.|:)\\\\\\\\b(assert|collectgarbage|dofile|error|getfenv|getmetatable|ipairs|load|loadfile|loadstring|module|next|pairs|pcall|print|rawequal|rawget|rawlen|rawset|require|select|setfenv|setmetatable|tonumber|tostring|type|unpack|xpcall)\\\\\\\\b(?!\\\\\\\\s*=(?!=))\",\"name\":\"support.function.lua\"},{\"match\":\"(?<![^.]\\\\\\\\.|:)\\\\\\\\b(async)\\\\\\\\b(?!\\\\\\\\s*=(?!=))\",\"name\":\"entity.name.tag.lua\"},{\"match\":\"(?<![^.]\\\\\\\\.|:)\\\\\\\\b(coroutine\\\\\\\\.(create|isyieldable|close|resume|running|status|wrap|yield)|string\\\\\\\\.(byte|char|dump|find|format|gmatch|gsub|len|lower|match|pack|packsize|rep|reverse|sub|unpack|upper)|table\\\\\\\\.(concat|insert|maxn|move|pack|remove|sort|unpack)|math\\\\\\\\.(abs|acos|asin|atan2?|ceil|cosh?|deg|exp|floor|fmod|frexp|ldexp|log|log10|max|min|modf|pow|rad|random|randomseed|sinh?|sqrt|tanh?|tointeger|type)|io\\\\\\\\.(close|flush|input|lines|open|output|popen|read|tmpfile|type|write)|os\\\\\\\\.(clock|date|difftime|execute|exit|getenv|remove|rename|setlocale|time|tmpname)|package\\\\\\\\.(loadlib|seeall|searchpath)|debug\\\\\\\\.(debug|[gs]etfenv|[gs]ethook|getinfo|[gs]etlocal|[gs]etmetatable|getregistry|[gs]etupvalue|[gs]etuservalue|set[Cc]stacklimit|traceback|upvalueid|upvaluejoin)|bit32\\\\\\\\.(arshift|band|bnot|bor|btest|bxor|extract|replace|lrotate|lshift|rrotate|rshift)|utf8\\\\\\\\.(char|codes|codepoint|len|offset))\\\\\\\\b(?!\\\\\\\\s*=(?!=))\",\"name\":\"support.function.library.lua\"},{\"match\":\"\\\\\\\\b(and|or|not|\\\\\\\\|\\\\\\\\||\\\\\\\\&\\\\\\\\&|\\\\\\\\!)\\\\\\\\b\",\"name\":\"keyword.operator.lua\"},{\"match\":\"\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_]*)\\\\\\\\b(?=\\\\\\\\s*(?:[({\\\\\"']|\\\\\\\\[\\\\\\\\[))\",\"name\":\"support.function.any-method.lua\"},{\"match\":\"\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_]*)\\\\\\\\b(?=\\\\\\\\s*\\\\\\\\??:)\",\"name\":\"entity.name.class.lua\"},{\"match\":\"(?<=[^.]\\\\\\\\.|:)\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_]*)\\\\\\\\b(?!\\\\\\\\s*=\\\\\\\\s*\\\\\\\\b(function)\\\\\\\\b)\",\"name\":\"entity.other.attribute.lua\"},{\"match\":\"\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_]*)\\\\\\\\b(?!\\\\\\\\s*=\\\\\\\\s*\\\\\\\\b(function)\\\\\\\\b)\",\"name\":\"variable.other.lua\"},{\"match\":\"\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_]*)\\\\\\\\b(?=\\\\\\\\s*=\\\\\\\\s*\\\\\\\\b(function)\\\\\\\\b)\",\"name\":\"entity.name.function.lua\"},{\"match\":\"\\\\\\\\+|-|%|#|\\\\\\\\*|\\\\\\\\/|\\\\\\\\^|==?|~=|!=|<=?|>=?|(?<!\\\\\\\\.)\\\\\\\\.{2}(?!\\\\\\\\.)\",\"name\":\"keyword.operator.lua\"}],\"repository\":{\"comment\":{\"patterns\":[{\"begin\":\"(^[ \\\\\\\\t]+)?(?=--)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.lua\"}},\"end\":\"(?!\\\\\\\\G)((?!^)[ \\\\\\\\t]+\\\\\\\\n)?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.trailing.lua\"}},\"patterns\":[{\"begin\":\"--\\\\\\\\[(=*)\\\\\\\\[@@@\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.lua\"}},\"end\":\"(--)?\\\\\\\\]\\\\\\\\1\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.lua\"}},\"name\":\"\",\"patterns\":[{\"include\":\"source.lua\"}]},{\"begin\":\"--\\\\\\\\[(=*)\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.lua\"}},\"end\":\"(--)?\\\\\\\\]\\\\\\\\1\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.lua\"}},\"name\":\"comment.block.lua\",\"patterns\":[{\"include\":\"#emmydoc\"},{\"include\":\"#ldoc_tag\"}]},{\"begin\":\"----\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.lua\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.double-dash.lua\"},{\"begin\":\"---\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.lua\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.double-dash.documentation.lua\",\"patterns\":[{\"include\":\"#emmydoc\"},{\"include\":\"#ldoc_tag\"}]},{\"begin\":\"--\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.lua\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.double-dash.lua\",\"patterns\":[{\"include\":\"#ldoc_tag\"}]}]},{\"begin\":\"\\\\\\\\/\\\\\\\\*\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.lua\"}},\"end\":\"\\\\\\\\*\\\\\\\\/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.lua\"}},\"name\":\"comment.block.lua\",\"patterns\":[{\"include\":\"#emmydoc\"},{\"include\":\"#ldoc_tag\"}]}]},\"emmydoc\":{\"patterns\":[{\"begin\":\"(?<=---)[ \\\\\\\\t]*@class\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.annotation.lua\"}},\"end\":\"(?=[\\\\\\\\n@#])\",\"patterns\":[{\"match\":\"\\\\\\\\b([a-zA-Z_\\\\\\\\*][a-zA-Z0-9_\\\\\\\\.\\\\\\\\*\\\\\\\\-]*)\",\"name\":\"support.class.lua\"},{\"match\":\":|,\",\"name\":\"keyword.operator.lua\"}]},{\"begin\":\"(?<=---)[ \\\\\\\\t]*@enum\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.annotation.lua\"}},\"end\":\"(?=[\\\\\\\\n@#])\",\"patterns\":[{\"begin\":\"\\\\\\\\b([a-zA-Z_\\\\\\\\*][a-zA-Z0-9_\\\\\\\\.\\\\\\\\*\\\\\\\\-]*)\",\"beginCaptures\":{\"0\":{\"name\":\"variable.lua\"}},\"end\":\"(?=\\\\\\\\n)\"}]},{\"begin\":\"(?<=---)[ \\\\\\\\t]*@type\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.annotation.lua\"}},\"end\":\"(?=[\\\\\\\\n@#])\",\"patterns\":[{\"include\":\"#emmydoc.type\"}]},{\"begin\":\"(?<=---)[ \\\\\\\\t]*@alias\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.annotation.lua\"}},\"end\":\"(?=[\\\\\\\\n@#])\",\"patterns\":[{\"begin\":\"\\\\\\\\b([a-zA-Z_\\\\\\\\*][a-zA-Z0-9_\\\\\\\\.\\\\\\\\*\\\\\\\\-]*)\",\"beginCaptures\":{\"0\":{\"name\":\"variable.lua\"}},\"end\":\"(?=[\\\\\\\\n#])\",\"patterns\":[{\"include\":\"#emmydoc.type\"}]}]},{\"begin\":\"(?<=---)[ \\\\\\\\t]*(@operator)\\\\\\\\s*(\\\\\\\\b[a-z]+)?\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.annotation.lua\"},\"2\":{\"name\":\"support.function.library.lua\"}},\"end\":\"(?=[\\\\\\\\n@#])\",\"patterns\":[{\"include\":\"#emmydoc.type\"}]},{\"begin\":\"(?<=---)[ \\\\\\\\t]*@cast\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.annotation.lua\"}},\"end\":\"(?=[\\\\\\\\n@#])\",\"patterns\":[{\"begin\":\"\\\\\\\\b([a-zA-Z_\\\\\\\\*][a-zA-Z0-9_\\\\\\\\.\\\\\\\\*\\\\\\\\-]*)\",\"beginCaptures\":{\"0\":{\"name\":\"variable.other.lua\"}},\"end\":\"(?=\\\\\\\\n)\",\"patterns\":[{\"include\":\"#emmydoc.type\"},{\"match\":\"([+-|])\",\"name\":\"keyword.operator.lua\"}]}]},{\"begin\":\"(?<=---)[ \\\\\\\\t]*@param\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.annotation.lua\"}},\"end\":\"(?=[\\\\\\\\n@#])\",\"patterns\":[{\"begin\":\"\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_]*)\\\\\\\\b(\\\\\\\\??)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.variable.lua\"},\"2\":{\"name\":\"keyword.operator.lua\"}},\"end\":\"(?=[\\\\\\\\n#])\",\"patterns\":[{\"include\":\"#emmydoc.type\"}]}]},{\"begin\":\"(?<=---)[ \\\\\\\\t]*@return\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.annotation.lua\"}},\"end\":\"(?=[\\\\\\\\n@#])\",\"patterns\":[{\"match\":\"\\\\\\\\?\",\"name\":\"keyword.operator.lua\"},{\"include\":\"#emmydoc.type\"}]},{\"begin\":\"(?<=---)[ \\\\\\\\t]*@field\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.annotation.lua\"}},\"end\":\"(?=[\\\\\\\\n@#])\",\"patterns\":[{\"begin\":\"(\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_]*)\\\\\\\\b|(\\\\\\\\[))(\\\\\\\\??)\",\"beginCaptures\":{\"2\":{\"name\":\"entity.name.variable.lua\"},\"3\":{\"name\":\"keyword.operator.lua\"}},\"end\":\"(?=[\\\\\\\\n#])\",\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#emmydoc.type\"},{\"match\":\"\\\\\\\\]\",\"name\":\"keyword.operator.lua\"}]}]},{\"begin\":\"(?<=---)[ \\\\\\\\t]*@generic\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.annotation.lua\"}},\"end\":\"(?=[\\\\\\\\n@#])\",\"patterns\":[{\"begin\":\"\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_]*)\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.generic.lua\"}},\"end\":\"(?=\\\\\\\\n)|(,)\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.lua\"}},\"patterns\":[{\"match\":\":\",\"name\":\"keyword.operator.lua\"},{\"include\":\"#emmydoc.type\"}]}]},{\"begin\":\"(?<=---)[ \\\\\\\\t]*@vararg\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.annotation.lua\"}},\"end\":\"(?=[\\\\\\\\n@#])\",\"patterns\":[{\"include\":\"#emmydoc.type\"}]},{\"begin\":\"(?<=---)[ \\\\\\\\t]*@overload\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.annotation.lua\"}},\"end\":\"(?=[\\\\\\\\n@#])\",\"patterns\":[{\"include\":\"#emmydoc.type\"}]},{\"begin\":\"(?<=---)[ \\\\\\\\t]*@deprecated\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.annotation.lua\"}},\"end\":\"(?=[\\\\\\\\n@#])\"},{\"begin\":\"(?<=---)[ \\\\\\\\t]*@meta\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.annotation.lua\"}},\"end\":\"(?=[\\\\\\\\n@#])\"},{\"begin\":\"(?<=---)[ \\\\\\\\t]*@private\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.annotation.lua\"}},\"end\":\"(?=[\\\\\\\\n@#])\"},{\"begin\":\"(?<=---)[ \\\\\\\\t]*@protected\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.annotation.lua\"}},\"end\":\"(?=[\\\\\\\\n@#])\"},{\"begin\":\"(?<=---)[ \\\\\\\\t]*@package\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.annotation.lua\"}},\"end\":\"(?=[\\\\\\\\n@#])\"},{\"begin\":\"(?<=---)[ \\\\\\\\t]*@version\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.annotation.lua\"}},\"end\":\"(?=[\\\\\\\\n@#])\",\"patterns\":[{\"match\":\"\\\\\\\\b(5\\\\\\\\.1|5\\\\\\\\.2|5\\\\\\\\.3|5\\\\\\\\.4|JIT)\\\\\\\\b\",\"name\":\"support.class.lua\"},{\"match\":\",|\\\\\\\\>|\\\\\\\\<\",\"name\":\"keyword.operator.lua\"}]},{\"begin\":\"(?<=---)[ \\\\\\\\t]*@see\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.annotation.lua\"}},\"end\":\"(?=[\\\\\\\\n@#])\",\"patterns\":[{\"match\":\"\\\\\\\\b([a-zA-Z_\\\\\\\\*][a-zA-Z0-9_\\\\\\\\.\\\\\\\\*\\\\\\\\-]*)\",\"name\":\"support.class.lua\"},{\"match\":\"#\",\"name\":\"keyword.operator.lua\"}]},{\"begin\":\"(?<=---)[ \\\\\\\\t]*@diagnostic\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.annotation.lua\"}},\"end\":\"(?=[\\\\\\\\n@#])\",\"patterns\":[{\"begin\":\"([a-zA-Z_\\\\\\\\-0-9]+)[ \\\\\\\\t]*(:)?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.unit\"},\"2\":{\"name\":\"keyword.operator.unit\"}},\"end\":\"(?=\\\\\\\\n)\",\"patterns\":[{\"match\":\"\\\\\\\\b([a-zA-Z_\\\\\\\\*][a-zA-Z0-9_\\\\\\\\-]*)\",\"name\":\"support.class.lua\"},{\"match\":\",\",\"name\":\"keyword.operator.lua\"}]}]},{\"begin\":\"(?<=---)[ \\\\\\\\t]*@module\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.annotation.lua\"}},\"end\":\"(?=[\\\\\\\\n@#])\",\"patterns\":[{\"include\":\"#string\"}]},{\"match\":\"(?<=---)[ \\\\\\\\t]*@(async|nodiscard)\",\"name\":\"storage.type.annotation.lua\"},{\"begin\":\"(?<=---)\\\\\\\\|\\\\\\\\s*[\\\\\\\\>\\\\\\\\+]?\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.annotation.lua\"}},\"end\":\"(?=[\\\\\\\\n@#])\",\"patterns\":[{\"include\":\"#string\"}]}]},\"emmydoc.type\":{\"patterns\":[{\"begin\":\"\\\\\\\\bfun\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.lua\"}},\"end\":\"(?=[\\\\\\\\s#])\",\"patterns\":[{\"match\":\"[\\\\\\\\(\\\\\\\\),:\\\\\\\\?][ \\\\\\\\t]*\",\"name\":\"keyword.operator.lua\"},{\"match\":\"([a-zA-Z_][a-zA-Z0-9_\\\\\\\\.\\\\\\\\*\\\\\\\\[\\\\\\\\]\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\-]*)(?<!,)[ \\\\\\\\t]*(?=\\\\\\\\??:)\",\"name\":\"entity.name.variable.lua\"},{\"include\":\"#emmydoc.type\"},{\"include\":\"#string\"}]},{\"match\":\"\\\\\\\\<[a-zA-Z_\\\\\\\\*][a-zA-Z0-9_\\\\\\\\.\\\\\\\\*\\\\\\\\-]*\\\\\\\\>\",\"name\":\"storage.type.generic.lua\"},{\"match\":\"\\\\\\\\basync\\\\\\\\b\",\"name\":\"entity.name.tag.lua\"},{\"match\":\"[\\\\\\\\{\\\\\\\\}\\\\\\\\:\\\\\\\\,\\\\\\\\?\\\\\\\\|\\\\\\\\\\`][ \\\\\\\\t]*\",\"name\":\"keyword.operator.lua\"},{\"begin\":\"(?=[a-zA-Z_\\\\\\\\.\\\\\\\\*\\\\\"'\\\\\\\\[])\",\"end\":\"(?=[\\\\\\\\s\\\\\\\\)\\\\\\\\,\\\\\\\\?\\\\\\\\:\\\\\\\\}\\\\\\\\|#])\",\"patterns\":[{\"match\":\"([a-zA-Z0-9_\\\\\\\\.\\\\\\\\*\\\\\\\\[\\\\\\\\]\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\-]+)(?<!,)[ \\\\\\\\t]*\",\"name\":\"support.type.lua\"},{\"match\":\"(\\\\\\\\.\\\\\\\\.\\\\\\\\.)[ \\\\\\\\t]*\",\"name\":\"constant.language.lua\"},{\"include\":\"#string\"}]}]},\"escaped_char\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[abfnrtv\\\\\\\\\\\\\\\\\\\\\"'\\\\\\\\n]\",\"name\":\"constant.character.escape.lua\"},{\"match\":\"\\\\\\\\\\\\\\\\z[\\\\\\\\n\\\\\\\\t ]*\",\"name\":\"constant.character.escape.lua\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\d{1,3}\",\"name\":\"constant.character.escape.byte.lua\"},{\"match\":\"\\\\\\\\\\\\\\\\x[0-9A-Fa-f][0-9A-Fa-f]\",\"name\":\"constant.character.escape.byte.lua\"},{\"match\":\"\\\\\\\\\\\\\\\\u\\\\\\\\{[0-9A-Fa-f]+\\\\\\\\}\",\"name\":\"constant.character.escape.unicode.lua\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"invalid.illegal.character.escape.lua\"}]},\"ldoc_tag\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.block.tag.ldoc\"},\"2\":{\"name\":\"storage.type.class.ldoc\"}},\"match\":\"\\\\\\\\G[ \\\\\\\\t]*(@)(alias|annotation|author|charset|class|classmod|comment|constructor|copyright|description|example|export|factory|field|file|fixme|function|include|lfunction|license|local|module|name|param|pragma|private|raise|release|return|script|section|see|set|static|submodule|summary|tfield|thread|tparam|treturn|todo|topic|type|usage|warning|within)\\\\\\\\b\"},\"string\":{\"patterns\":[{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.lua\"}},\"end\":\"'[ \\\\\\\\t]*|(?=\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.lua\"}},\"name\":\"string.quoted.single.lua\",\"patterns\":[{\"include\":\"#escaped_char\"}]},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.lua\"}},\"end\":\"\\\\\"[ \\\\\\\\t]*|(?=\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.lua\"}},\"name\":\"string.quoted.double.lua\",\"patterns\":[{\"include\":\"#escaped_char\"}]},{\"begin\":\"\\`\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.lua\"}},\"end\":\"\\`[ \\\\\\\\t]*|(?=\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.lua\"}},\"name\":\"string.quoted.double.lua\"},{\"begin\":\"(?<=\\\\\\\\.cdef)\\\\\\\\s*(\\\\\\\\[(=*)\\\\\\\\[)\",\"beginCaptures\":{\"0\":{\"name\":\"string.quoted.other.multiline.lua\"},\"1\":{\"name\":\"punctuation.definition.string.begin.lua\"}},\"contentName\":\"meta.embedded.lua\",\"end\":\"(\\\\\\\\]\\\\\\\\2\\\\\\\\])[ \\\\\\\\t]*\",\"endCaptures\":{\"0\":{\"name\":\"string.quoted.other.multiline.lua\"},\"1\":{\"name\":\"punctuation.definition.string.end.lua\"}},\"patterns\":[{\"include\":\"source.c\"}]},{\"begin\":\"(?<!--)\\\\\\\\[(=*)\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.lua\"}},\"end\":\"\\\\\\\\]\\\\\\\\1\\\\\\\\][ \\\\\\\\t]*\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.lua\"}},\"name\":\"string.quoted.other.multiline.lua\"}]}},\"scopeName\":\"source.lua\",\"embeddedLangs\":[\"c\"]}`)),t=[...e,a];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DcXBrGfk.js",
    "content": "import{a1 as r}from\"./CU_MfyYc.js\";/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var c=Object.defineProperty,m=Object.getOwnPropertyDescriptor,l=Object.getOwnPropertyNames,d=Object.prototype.hasOwnProperty,p=(t,e,a,i)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let n of l(e))!d.call(t,n)&&n!==a&&c(t,n,{get:()=>e[n],enumerable:!(i=m(e,n))||i.enumerable});return t},s=(t,e,a)=>(p(t,e,\"default\"),a),o={};s(o,r);var g={comments:{blockComment:[\"<!--\",\"-->\"]},brackets:[[\"<\",\">\"]],autoClosingPairs:[{open:\"<\",close:\">\"},{open:\"'\",close:\"'\"},{open:'\"',close:'\"'}],surroundingPairs:[{open:\"<\",close:\">\"},{open:\"'\",close:\"'\"},{open:'\"',close:'\"'}],onEnterRules:[{beforeText:new RegExp(\"<([_:\\\\w][_:\\\\w-.\\\\d]*)([^/>]*(?!/)>)[^<]*$\",\"i\"),afterText:/^<\\/([_:\\w][_:\\w-.\\d]*)\\s*>$/i,action:{indentAction:o.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(\"<(\\\\w[\\\\w\\\\d]*)([^/>]*(?!/)>)[^<]*$\",\"i\"),action:{indentAction:o.languages.IndentAction.Indent}}]},k={defaultToken:\"\",tokenPostfix:\".xml\",ignoreCase:!0,qualifiedName:/(?:[\\w\\.\\-]+:)?[\\w\\.\\-]+/,tokenizer:{root:[[/[^<&]+/,\"\"],{include:\"@whitespace\"},[/(<)(@qualifiedName)/,[{token:\"delimiter\"},{token:\"tag\",next:\"@tag\"}]],[/(<\\/)(@qualifiedName)(\\s*)(>)/,[{token:\"delimiter\"},{token:\"tag\"},\"\",{token:\"delimiter\"}]],[/(<\\?)(@qualifiedName)/,[{token:\"delimiter\"},{token:\"metatag\",next:\"@tag\"}]],[/(<\\!)(@qualifiedName)/,[{token:\"delimiter\"},{token:\"metatag\",next:\"@tag\"}]],[/<\\!\\[CDATA\\[/,{token:\"delimiter.cdata\",next:\"@cdata\"}],[/&\\w+;/,\"string.escape\"]],cdata:[[/[^\\]]+/,\"\"],[/\\]\\]>/,{token:\"delimiter.cdata\",next:\"@pop\"}],[/\\]/,\"\"]],tag:[[/[ \\t\\r\\n]+/,\"\"],[/(@qualifiedName)(\\s*=\\s*)(\"[^\"]*\"|'[^']*')/,[\"attribute.name\",\"\",\"attribute.value\"]],[/(@qualifiedName)(\\s*=\\s*)(\"[^\">?\\/]*|'[^'>?\\/]*)(?=[\\?\\/]\\>)/,[\"attribute.name\",\"\",\"attribute.value\"]],[/(@qualifiedName)(\\s*=\\s*)(\"[^\">]*|'[^'>]*)/,[\"attribute.name\",\"\",\"attribute.value\"]],[/@qualifiedName/,\"attribute.name\"],[/\\?>/,{token:\"delimiter\",next:\"@pop\"}],[/(\\/)(>)/,[{token:\"tag\"},{token:\"delimiter\",next:\"@pop\"}]],[/>/,{token:\"delimiter\",next:\"@pop\"}]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/<!--/,{token:\"comment\",next:\"@comment\"}]],comment:[[/[^<\\-]+/,\"comment.content\"],[/-->/,{token:\"comment\",next:\"@pop\"}],[/<!--/,\"comment.content.invalid\"],[/[<\\-]/,\"comment.content\"]]}};export{g as conf,k as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/Ddv68eIx.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBackground\":\"#3b4252\",\"activityBar.activeBorder\":\"#88c0d0\",\"activityBar.background\":\"#2e3440\",\"activityBar.dropBackground\":\"#3b4252\",\"activityBar.foreground\":\"#d8dee9\",\"activityBarBadge.background\":\"#88c0d0\",\"activityBarBadge.foreground\":\"#2e3440\",\"badge.background\":\"#88c0d0\",\"badge.foreground\":\"#2e3440\",\"button.background\":\"#88c0d0ee\",\"button.foreground\":\"#2e3440\",\"button.hoverBackground\":\"#88c0d0\",\"button.secondaryBackground\":\"#434c5e\",\"button.secondaryForeground\":\"#d8dee9\",\"button.secondaryHoverBackground\":\"#4c566a\",\"charts.blue\":\"#81a1c1\",\"charts.foreground\":\"#d8dee9\",\"charts.green\":\"#a3be8c\",\"charts.lines\":\"#88c0d0\",\"charts.orange\":\"#d08770\",\"charts.purple\":\"#b48ead\",\"charts.red\":\"#bf616a\",\"charts.yellow\":\"#ebcb8b\",\"debugConsole.errorForeground\":\"#bf616a\",\"debugConsole.infoForeground\":\"#88c0d0\",\"debugConsole.sourceForeground\":\"#616e88\",\"debugConsole.warningForeground\":\"#ebcb8b\",\"debugConsoleInputIcon.foreground\":\"#81a1c1\",\"debugExceptionWidget.background\":\"#4c566a\",\"debugExceptionWidget.border\":\"#2e3440\",\"debugToolBar.background\":\"#3b4252\",\"descriptionForeground\":\"#d8dee9e6\",\"diffEditor.insertedTextBackground\":\"#81a1c133\",\"diffEditor.removedTextBackground\":\"#bf616a4d\",\"dropdown.background\":\"#3b4252\",\"dropdown.border\":\"#3b4252\",\"dropdown.foreground\":\"#d8dee9\",\"editor.background\":\"#2e3440\",\"editor.findMatchBackground\":\"#88c0d066\",\"editor.findMatchHighlightBackground\":\"#88c0d033\",\"editor.findRangeHighlightBackground\":\"#88c0d033\",\"editor.focusedStackFrameHighlightBackground\":\"#5e81ac\",\"editor.foreground\":\"#d8dee9\",\"editor.hoverHighlightBackground\":\"#3b4252\",\"editor.inactiveSelectionBackground\":\"#434c5ecc\",\"editor.inlineValuesBackground\":\"#4c566a\",\"editor.inlineValuesForeground\":\"#eceff4\",\"editor.lineHighlightBackground\":\"#3b4252\",\"editor.lineHighlightBorder\":\"#3b4252\",\"editor.rangeHighlightBackground\":\"#434c5e52\",\"editor.selectionBackground\":\"#434c5ecc\",\"editor.selectionHighlightBackground\":\"#434c5ecc\",\"editor.stackFrameHighlightBackground\":\"#5e81ac\",\"editor.wordHighlightBackground\":\"#81a1c166\",\"editor.wordHighlightStrongBackground\":\"#81a1c199\",\"editorActiveLineNumber.foreground\":\"#d8dee9cc\",\"editorBracketHighlight.foreground1\":\"#8fbcbb\",\"editorBracketHighlight.foreground2\":\"#88c0d0\",\"editorBracketHighlight.foreground3\":\"#81a1c1\",\"editorBracketHighlight.foreground4\":\"#5e81ac\",\"editorBracketHighlight.foreground5\":\"#8fbcbb\",\"editorBracketHighlight.foreground6\":\"#88c0d0\",\"editorBracketHighlight.unexpectedBracket.foreground\":\"#bf616a\",\"editorBracketMatch.background\":\"#2e344000\",\"editorBracketMatch.border\":\"#88c0d0\",\"editorCodeLens.foreground\":\"#4c566a\",\"editorCursor.foreground\":\"#d8dee9\",\"editorError.border\":\"#bf616a00\",\"editorError.foreground\":\"#bf616a\",\"editorGroup.background\":\"#2e3440\",\"editorGroup.border\":\"#3b425201\",\"editorGroup.dropBackground\":\"#3b425299\",\"editorGroupHeader.border\":\"#3b425200\",\"editorGroupHeader.noTabsBackground\":\"#2e3440\",\"editorGroupHeader.tabsBackground\":\"#2e3440\",\"editorGroupHeader.tabsBorder\":\"#3b425200\",\"editorGutter.addedBackground\":\"#a3be8c\",\"editorGutter.background\":\"#2e3440\",\"editorGutter.deletedBackground\":\"#bf616a\",\"editorGutter.modifiedBackground\":\"#ebcb8b\",\"editorHint.border\":\"#ebcb8b00\",\"editorHint.foreground\":\"#ebcb8b\",\"editorHoverWidget.background\":\"#3b4252\",\"editorHoverWidget.border\":\"#3b4252\",\"editorIndentGuide.activeBackground\":\"#4c566a\",\"editorIndentGuide.background\":\"#434c5eb3\",\"editorInlayHint.background\":\"#434c5e\",\"editorInlayHint.foreground\":\"#d8dee9\",\"editorLineNumber.activeForeground\":\"#d8dee9\",\"editorLineNumber.foreground\":\"#4c566a\",\"editorLink.activeForeground\":\"#88c0d0\",\"editorMarkerNavigation.background\":\"#5e81acc0\",\"editorMarkerNavigationError.background\":\"#bf616ac0\",\"editorMarkerNavigationWarning.background\":\"#ebcb8bc0\",\"editorOverviewRuler.addedForeground\":\"#a3be8c\",\"editorOverviewRuler.border\":\"#3b4252\",\"editorOverviewRuler.currentContentForeground\":\"#3b4252\",\"editorOverviewRuler.deletedForeground\":\"#bf616a\",\"editorOverviewRuler.errorForeground\":\"#bf616a\",\"editorOverviewRuler.findMatchForeground\":\"#88c0d066\",\"editorOverviewRuler.incomingContentForeground\":\"#3b4252\",\"editorOverviewRuler.infoForeground\":\"#81a1c1\",\"editorOverviewRuler.modifiedForeground\":\"#ebcb8b\",\"editorOverviewRuler.rangeHighlightForeground\":\"#88c0d066\",\"editorOverviewRuler.selectionHighlightForeground\":\"#88c0d066\",\"editorOverviewRuler.warningForeground\":\"#ebcb8b\",\"editorOverviewRuler.wordHighlightForeground\":\"#88c0d066\",\"editorOverviewRuler.wordHighlightStrongForeground\":\"#88c0d066\",\"editorRuler.foreground\":\"#434c5e\",\"editorSuggestWidget.background\":\"#2e3440\",\"editorSuggestWidget.border\":\"#3b4252\",\"editorSuggestWidget.focusHighlightForeground\":\"#88c0d0\",\"editorSuggestWidget.foreground\":\"#d8dee9\",\"editorSuggestWidget.highlightForeground\":\"#88c0d0\",\"editorSuggestWidget.selectedBackground\":\"#434c5e\",\"editorSuggestWidget.selectedForeground\":\"#d8dee9\",\"editorWarning.border\":\"#ebcb8b00\",\"editorWarning.foreground\":\"#ebcb8b\",\"editorWhitespace.foreground\":\"#4c566ab3\",\"editorWidget.background\":\"#2e3440\",\"editorWidget.border\":\"#3b4252\",\"errorForeground\":\"#bf616a\",\"extensionButton.prominentBackground\":\"#434c5e\",\"extensionButton.prominentForeground\":\"#d8dee9\",\"extensionButton.prominentHoverBackground\":\"#4c566a\",\"focusBorder\":\"#3b4252\",\"foreground\":\"#d8dee9\",\"gitDecoration.conflictingResourceForeground\":\"#5e81ac\",\"gitDecoration.deletedResourceForeground\":\"#bf616a\",\"gitDecoration.ignoredResourceForeground\":\"#d8dee966\",\"gitDecoration.modifiedResourceForeground\":\"#ebcb8b\",\"gitDecoration.stageDeletedResourceForeground\":\"#bf616a\",\"gitDecoration.stageModifiedResourceForeground\":\"#ebcb8b\",\"gitDecoration.submoduleResourceForeground\":\"#8fbcbb\",\"gitDecoration.untrackedResourceForeground\":\"#a3be8c\",\"input.background\":\"#3b4252\",\"input.border\":\"#3b4252\",\"input.foreground\":\"#d8dee9\",\"input.placeholderForeground\":\"#d8dee999\",\"inputOption.activeBackground\":\"#5e81ac\",\"inputOption.activeBorder\":\"#5e81ac\",\"inputOption.activeForeground\":\"#eceff4\",\"inputValidation.errorBackground\":\"#bf616a\",\"inputValidation.errorBorder\":\"#bf616a\",\"inputValidation.infoBackground\":\"#81a1c1\",\"inputValidation.infoBorder\":\"#81a1c1\",\"inputValidation.warningBackground\":\"#d08770\",\"inputValidation.warningBorder\":\"#d08770\",\"keybindingLabel.background\":\"#4c566a\",\"keybindingLabel.border\":\"#4c566a\",\"keybindingLabel.bottomBorder\":\"#4c566a\",\"keybindingLabel.foreground\":\"#d8dee9\",\"list.activeSelectionBackground\":\"#88c0d0\",\"list.activeSelectionForeground\":\"#2e3440\",\"list.dropBackground\":\"#88c0d099\",\"list.errorForeground\":\"#bf616a\",\"list.focusBackground\":\"#88c0d099\",\"list.focusForeground\":\"#d8dee9\",\"list.focusHighlightForeground\":\"#eceff4\",\"list.highlightForeground\":\"#88c0d0\",\"list.hoverBackground\":\"#3b4252\",\"list.hoverForeground\":\"#eceff4\",\"list.inactiveFocusBackground\":\"#434c5ecc\",\"list.inactiveSelectionBackground\":\"#434c5e\",\"list.inactiveSelectionForeground\":\"#d8dee9\",\"list.warningForeground\":\"#ebcb8b\",\"merge.border\":\"#3b425200\",\"merge.currentContentBackground\":\"#81a1c14d\",\"merge.currentHeaderBackground\":\"#81a1c166\",\"merge.incomingContentBackground\":\"#8fbcbb4d\",\"merge.incomingHeaderBackground\":\"#8fbcbb66\",\"minimap.background\":\"#2e3440\",\"minimap.errorHighlight\":\"#bf616acc\",\"minimap.findMatchHighlight\":\"#88c0d0\",\"minimap.selectionHighlight\":\"#88c0d0cc\",\"minimap.warningHighlight\":\"#ebcb8bcc\",\"minimapGutter.addedBackground\":\"#a3be8c\",\"minimapGutter.deletedBackground\":\"#bf616a\",\"minimapGutter.modifiedBackground\":\"#ebcb8b\",\"minimapSlider.activeBackground\":\"#434c5eaa\",\"minimapSlider.background\":\"#434c5e99\",\"minimapSlider.hoverBackground\":\"#434c5eaa\",\"notification.background\":\"#3b4252\",\"notification.buttonBackground\":\"#434c5e\",\"notification.buttonForeground\":\"#d8dee9\",\"notification.buttonHoverBackground\":\"#4c566a\",\"notification.errorBackground\":\"#bf616a\",\"notification.errorForeground\":\"#2e3440\",\"notification.foreground\":\"#d8dee9\",\"notification.infoBackground\":\"#88c0d0\",\"notification.infoForeground\":\"#2e3440\",\"notification.warningBackground\":\"#ebcb8b\",\"notification.warningForeground\":\"#2e3440\",\"notificationCenter.border\":\"#3b425200\",\"notificationCenterHeader.background\":\"#2e3440\",\"notificationCenterHeader.foreground\":\"#88c0d0\",\"notificationLink.foreground\":\"#88c0d0\",\"notificationToast.border\":\"#3b425200\",\"notifications.background\":\"#3b4252\",\"notifications.border\":\"#2e3440\",\"notifications.foreground\":\"#d8dee9\",\"panel.background\":\"#2e3440\",\"panel.border\":\"#3b4252\",\"panelTitle.activeBorder\":\"#88c0d000\",\"panelTitle.activeForeground\":\"#88c0d0\",\"panelTitle.inactiveForeground\":\"#d8dee9\",\"peekView.border\":\"#4c566a\",\"peekViewEditor.background\":\"#2e3440\",\"peekViewEditor.matchHighlightBackground\":\"#88c0d04d\",\"peekViewEditorGutter.background\":\"#2e3440\",\"peekViewResult.background\":\"#2e3440\",\"peekViewResult.fileForeground\":\"#88c0d0\",\"peekViewResult.lineForeground\":\"#d8dee966\",\"peekViewResult.matchHighlightBackground\":\"#88c0d0cc\",\"peekViewResult.selectionBackground\":\"#434c5e\",\"peekViewResult.selectionForeground\":\"#d8dee9\",\"peekViewTitle.background\":\"#3b4252\",\"peekViewTitleDescription.foreground\":\"#d8dee9\",\"peekViewTitleLabel.foreground\":\"#88c0d0\",\"pickerGroup.border\":\"#3b4252\",\"pickerGroup.foreground\":\"#88c0d0\",\"progressBar.background\":\"#88c0d0\",\"quickInputList.focusBackground\":\"#88c0d0\",\"quickInputList.focusForeground\":\"#2e3440\",\"sash.hoverBorder\":\"#88c0d0\",\"scrollbar.shadow\":\"#00000066\",\"scrollbarSlider.activeBackground\":\"#434c5eaa\",\"scrollbarSlider.background\":\"#434c5e99\",\"scrollbarSlider.hoverBackground\":\"#434c5eaa\",\"selection.background\":\"#88c0d099\",\"sideBar.background\":\"#2e3440\",\"sideBar.border\":\"#3b4252\",\"sideBar.foreground\":\"#d8dee9\",\"sideBarSectionHeader.background\":\"#3b4252\",\"sideBarSectionHeader.foreground\":\"#d8dee9\",\"sideBarTitle.foreground\":\"#d8dee9\",\"statusBar.background\":\"#3b4252\",\"statusBar.border\":\"#3b425200\",\"statusBar.debuggingBackground\":\"#5e81ac\",\"statusBar.debuggingForeground\":\"#d8dee9\",\"statusBar.foreground\":\"#d8dee9\",\"statusBar.noFolderBackground\":\"#3b4252\",\"statusBar.noFolderForeground\":\"#d8dee9\",\"statusBarItem.activeBackground\":\"#4c566a\",\"statusBarItem.errorBackground\":\"#3b4252\",\"statusBarItem.errorForeground\":\"#bf616a\",\"statusBarItem.hoverBackground\":\"#434c5e\",\"statusBarItem.prominentBackground\":\"#3b4252\",\"statusBarItem.prominentHoverBackground\":\"#434c5e\",\"statusBarItem.warningBackground\":\"#ebcb8b\",\"statusBarItem.warningForeground\":\"#2e3440\",\"tab.activeBackground\":\"#3b4252\",\"tab.activeBorder\":\"#88c0d000\",\"tab.activeBorderTop\":\"#88c0d000\",\"tab.activeForeground\":\"#d8dee9\",\"tab.border\":\"#3b425200\",\"tab.hoverBackground\":\"#3b4252cc\",\"tab.hoverBorder\":\"#88c0d000\",\"tab.inactiveBackground\":\"#2e3440\",\"tab.inactiveForeground\":\"#d8dee966\",\"tab.lastPinnedBorder\":\"#4c566a\",\"tab.unfocusedActiveBorder\":\"#88c0d000\",\"tab.unfocusedActiveBorderTop\":\"#88c0d000\",\"tab.unfocusedActiveForeground\":\"#d8dee999\",\"tab.unfocusedHoverBackground\":\"#3b4252b3\",\"tab.unfocusedHoverBorder\":\"#88c0d000\",\"tab.unfocusedInactiveForeground\":\"#d8dee966\",\"terminal.ansiBlack\":\"#3b4252\",\"terminal.ansiBlue\":\"#81a1c1\",\"terminal.ansiBrightBlack\":\"#4c566a\",\"terminal.ansiBrightBlue\":\"#81a1c1\",\"terminal.ansiBrightCyan\":\"#8fbcbb\",\"terminal.ansiBrightGreen\":\"#a3be8c\",\"terminal.ansiBrightMagenta\":\"#b48ead\",\"terminal.ansiBrightRed\":\"#bf616a\",\"terminal.ansiBrightWhite\":\"#eceff4\",\"terminal.ansiBrightYellow\":\"#ebcb8b\",\"terminal.ansiCyan\":\"#88c0d0\",\"terminal.ansiGreen\":\"#a3be8c\",\"terminal.ansiMagenta\":\"#b48ead\",\"terminal.ansiRed\":\"#bf616a\",\"terminal.ansiWhite\":\"#e5e9f0\",\"terminal.ansiYellow\":\"#ebcb8b\",\"terminal.background\":\"#2e3440\",\"terminal.foreground\":\"#d8dee9\",\"terminal.tab.activeBorder\":\"#88c0d0\",\"textBlockQuote.background\":\"#3b4252\",\"textBlockQuote.border\":\"#81a1c1\",\"textCodeBlock.background\":\"#4c566a\",\"textLink.activeForeground\":\"#88c0d0\",\"textLink.foreground\":\"#88c0d0\",\"textPreformat.foreground\":\"#8fbcbb\",\"textSeparator.foreground\":\"#eceff4\",\"titleBar.activeBackground\":\"#2e3440\",\"titleBar.activeForeground\":\"#d8dee9\",\"titleBar.border\":\"#2e344000\",\"titleBar.inactiveBackground\":\"#2e3440\",\"titleBar.inactiveForeground\":\"#d8dee966\",\"tree.indentGuidesStroke\":\"#616e88\",\"walkThrough.embeddedEditorBackground\":\"#2e3440\",\"welcomePage.buttonBackground\":\"#434c5e\",\"welcomePage.buttonHoverBackground\":\"#4c566a\",\"widget.shadow\":\"#00000066\"},\"displayName\":\"Nord\",\"name\":\"nord\",\"semanticHighlighting\":true,\"tokenColors\":[{\"settings\":{\"background\":\"#2e3440ff\",\"foreground\":\"#d8dee9ff\"}},{\"scope\":\"emphasis\",\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":\"strong\",\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":\"comment\",\"settings\":{\"foreground\":\"#616E88\"}},{\"scope\":\"constant.character\",\"settings\":{\"foreground\":\"#EBCB8B\"}},{\"scope\":\"constant.character.escape\",\"settings\":{\"foreground\":\"#EBCB8B\"}},{\"scope\":\"constant.language\",\"settings\":{\"foreground\":\"#81A1C1\"}},{\"scope\":\"constant.numeric\",\"settings\":{\"foreground\":\"#B48EAD\"}},{\"scope\":\"constant.regexp\",\"settings\":{\"foreground\":\"#EBCB8B\"}},{\"scope\":[\"entity.name.class\",\"entity.name.type.class\"],\"settings\":{\"foreground\":\"#8FBCBB\"}},{\"scope\":\"entity.name.function\",\"settings\":{\"foreground\":\"#88C0D0\"}},{\"scope\":\"entity.name.tag\",\"settings\":{\"foreground\":\"#81A1C1\"}},{\"scope\":\"entity.other.attribute-name\",\"settings\":{\"foreground\":\"#8FBCBB\"}},{\"scope\":\"entity.other.inherited-class\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#8FBCBB\"}},{\"scope\":\"invalid.deprecated\",\"settings\":{\"background\":\"#EBCB8B\",\"foreground\":\"#D8DEE9\"}},{\"scope\":\"invalid.illegal\",\"settings\":{\"background\":\"#BF616A\",\"foreground\":\"#D8DEE9\"}},{\"scope\":\"keyword\",\"settings\":{\"foreground\":\"#81A1C1\"}},{\"scope\":\"keyword.operator\",\"settings\":{\"foreground\":\"#81A1C1\"}},{\"scope\":\"keyword.other.new\",\"settings\":{\"foreground\":\"#81A1C1\"}},{\"scope\":\"markup.bold\",\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":\"markup.changed\",\"settings\":{\"foreground\":\"#EBCB8B\"}},{\"scope\":\"markup.deleted\",\"settings\":{\"foreground\":\"#BF616A\"}},{\"scope\":\"markup.inserted\",\"settings\":{\"foreground\":\"#A3BE8C\"}},{\"scope\":\"meta.preprocessor\",\"settings\":{\"foreground\":\"#5E81AC\"}},{\"scope\":\"punctuation\",\"settings\":{\"foreground\":\"#ECEFF4\"}},{\"scope\":[\"punctuation.definition.method-parameters\",\"punctuation.definition.function-parameters\",\"punctuation.definition.parameters\"],\"settings\":{\"foreground\":\"#ECEFF4\"}},{\"scope\":\"punctuation.definition.tag\",\"settings\":{\"foreground\":\"#81A1C1\"}},{\"scope\":[\"punctuation.definition.comment\",\"punctuation.end.definition.comment\",\"punctuation.start.definition.comment\"],\"settings\":{\"foreground\":\"#616E88\"}},{\"scope\":\"punctuation.section\",\"settings\":{\"foreground\":\"#ECEFF4\"}},{\"scope\":[\"punctuation.section.embedded.begin\",\"punctuation.section.embedded.end\"],\"settings\":{\"foreground\":\"#81A1C1\"}},{\"scope\":\"punctuation.terminator\",\"settings\":{\"foreground\":\"#81A1C1\"}},{\"scope\":\"punctuation.definition.variable\",\"settings\":{\"foreground\":\"#81A1C1\"}},{\"scope\":\"storage\",\"settings\":{\"foreground\":\"#81A1C1\"}},{\"scope\":\"string\",\"settings\":{\"foreground\":\"#A3BE8C\"}},{\"scope\":\"string.regexp\",\"settings\":{\"foreground\":\"#EBCB8B\"}},{\"scope\":\"support.class\",\"settings\":{\"foreground\":\"#8FBCBB\"}},{\"scope\":\"support.constant\",\"settings\":{\"foreground\":\"#81A1C1\"}},{\"scope\":\"support.function\",\"settings\":{\"foreground\":\"#88C0D0\"}},{\"scope\":\"support.function.construct\",\"settings\":{\"foreground\":\"#81A1C1\"}},{\"scope\":\"support.type\",\"settings\":{\"foreground\":\"#8FBCBB\"}},{\"scope\":\"support.type.exception\",\"settings\":{\"foreground\":\"#8FBCBB\"}},{\"scope\":\"token.debug-token\",\"settings\":{\"foreground\":\"#b48ead\"}},{\"scope\":\"token.error-token\",\"settings\":{\"foreground\":\"#bf616a\"}},{\"scope\":\"token.info-token\",\"settings\":{\"foreground\":\"#88c0d0\"}},{\"scope\":\"token.warn-token\",\"settings\":{\"foreground\":\"#ebcb8b\"}},{\"scope\":\"variable.other\",\"settings\":{\"foreground\":\"#D8DEE9\"}},{\"scope\":\"variable.language\",\"settings\":{\"foreground\":\"#81A1C1\"}},{\"scope\":\"variable.parameter\",\"settings\":{\"foreground\":\"#D8DEE9\"}},{\"scope\":\"punctuation.separator.pointer-access.c\",\"settings\":{\"foreground\":\"#81A1C1\"}},{\"scope\":[\"source.c meta.preprocessor.include\",\"source.c string.quoted.other.lt-gt.include\"],\"settings\":{\"foreground\":\"#8FBCBB\"}},{\"scope\":[\"source.cpp keyword.control.directive.conditional\",\"source.cpp punctuation.definition.directive\",\"source.c keyword.control.directive.conditional\",\"source.c punctuation.definition.directive\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#5E81AC\"}},{\"scope\":\"source.css constant.other.color.rgb-value\",\"settings\":{\"foreground\":\"#B48EAD\"}},{\"scope\":\"source.css meta.property-value\",\"settings\":{\"foreground\":\"#88C0D0\"}},{\"scope\":[\"source.css keyword.control.at-rule.media\",\"source.css keyword.control.at-rule.media punctuation.definition.keyword\"],\"settings\":{\"foreground\":\"#D08770\"}},{\"scope\":\"source.css punctuation.definition.keyword\",\"settings\":{\"foreground\":\"#81A1C1\"}},{\"scope\":\"source.css support.type.property-name\",\"settings\":{\"foreground\":\"#D8DEE9\"}},{\"scope\":\"source.diff meta.diff.range.context\",\"settings\":{\"foreground\":\"#8FBCBB\"}},{\"scope\":\"source.diff meta.diff.header.from-file\",\"settings\":{\"foreground\":\"#8FBCBB\"}},{\"scope\":\"source.diff punctuation.definition.from-file\",\"settings\":{\"foreground\":\"#8FBCBB\"}},{\"scope\":\"source.diff punctuation.definition.range\",\"settings\":{\"foreground\":\"#8FBCBB\"}},{\"scope\":\"source.diff punctuation.definition.separator\",\"settings\":{\"foreground\":\"#81A1C1\"}},{\"scope\":\"entity.name.type.module.elixir\",\"settings\":{\"foreground\":\"#8FBCBB\"}},{\"scope\":\"variable.other.readwrite.module.elixir\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#D8DEE9\"}},{\"scope\":\"constant.other.symbol.elixir\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#D8DEE9\"}},{\"scope\":\"variable.other.constant.elixir\",\"settings\":{\"foreground\":\"#8FBCBB\"}},{\"scope\":\"source.go constant.other.placeholder.go\",\"settings\":{\"foreground\":\"#EBCB8B\"}},{\"scope\":\"source.java comment.block.documentation.javadoc punctuation.definition.entity.html\",\"settings\":{\"foreground\":\"#81A1C1\"}},{\"scope\":\"source.java constant.other\",\"settings\":{\"foreground\":\"#D8DEE9\"}},{\"scope\":\"source.java keyword.other.documentation\",\"settings\":{\"foreground\":\"#8FBCBB\"}},{\"scope\":\"source.java keyword.other.documentation.author.javadoc\",\"settings\":{\"foreground\":\"#8FBCBB\"}},{\"scope\":[\"source.java keyword.other.documentation.directive\",\"source.java keyword.other.documentation.custom\"],\"settings\":{\"foreground\":\"#8FBCBB\"}},{\"scope\":\"source.java keyword.other.documentation.see.javadoc\",\"settings\":{\"foreground\":\"#8FBCBB\"}},{\"scope\":\"source.java meta.method-call meta.method\",\"settings\":{\"foreground\":\"#88C0D0\"}},{\"scope\":[\"source.java meta.tag.template.link.javadoc\",\"source.java string.other.link.title.javadoc\"],\"settings\":{\"foreground\":\"#8FBCBB\"}},{\"scope\":\"source.java meta.tag.template.value.javadoc\",\"settings\":{\"foreground\":\"#88C0D0\"}},{\"scope\":\"source.java punctuation.definition.keyword.javadoc\",\"settings\":{\"foreground\":\"#8FBCBB\"}},{\"scope\":[\"source.java punctuation.definition.tag.begin.javadoc\",\"source.java punctuation.definition.tag.end.javadoc\"],\"settings\":{\"foreground\":\"#616E88\"}},{\"scope\":\"source.java storage.modifier.import\",\"settings\":{\"foreground\":\"#8FBCBB\"}},{\"scope\":\"source.java storage.modifier.package\",\"settings\":{\"foreground\":\"#8FBCBB\"}},{\"scope\":\"source.java storage.type\",\"settings\":{\"foreground\":\"#8FBCBB\"}},{\"scope\":\"source.java storage.type.annotation\",\"settings\":{\"foreground\":\"#D08770\"}},{\"scope\":\"source.java storage.type.generic\",\"settings\":{\"foreground\":\"#8FBCBB\"}},{\"scope\":\"source.java storage.type.primitive\",\"settings\":{\"foreground\":\"#81A1C1\"}},{\"scope\":[\"source.js punctuation.decorator\",\"source.js meta.decorator variable.other.readwrite\",\"source.js meta.decorator entity.name.function\"],\"settings\":{\"foreground\":\"#D08770\"}},{\"scope\":\"source.js meta.object-literal.key\",\"settings\":{\"foreground\":\"#88C0D0\"}},{\"scope\":\"source.js storage.type.class.jsdoc\",\"settings\":{\"foreground\":\"#8FBCBB\"}},{\"scope\":[\"source.js string.quoted.template punctuation.quasi.element.begin\",\"source.js string.quoted.template punctuation.quasi.element.end\",\"source.js string.template punctuation.definition.template-expression\"],\"settings\":{\"foreground\":\"#81A1C1\"}},{\"scope\":\"source.js string.quoted.template meta.method-call.with-arguments\",\"settings\":{\"foreground\":\"#ECEFF4\"}},{\"scope\":[\"source.js string.template meta.template.expression support.variable.property\",\"source.js string.template meta.template.expression variable.other.object\"],\"settings\":{\"foreground\":\"#D8DEE9\"}},{\"scope\":\"source.js support.type.primitive\",\"settings\":{\"foreground\":\"#81A1C1\"}},{\"scope\":\"source.js variable.other.object\",\"settings\":{\"foreground\":\"#D8DEE9\"}},{\"scope\":\"source.js variable.other.readwrite.alias\",\"settings\":{\"foreground\":\"#8FBCBB\"}},{\"scope\":[\"source.js meta.embedded.line meta.brace.square\",\"source.js meta.embedded.line meta.brace.round\",\"source.js string.quoted.template meta.brace.square\",\"source.js string.quoted.template meta.brace.round\"],\"settings\":{\"foreground\":\"#ECEFF4\"}},{\"scope\":\"text.html.basic constant.character.entity.html\",\"settings\":{\"foreground\":\"#EBCB8B\"}},{\"scope\":\"text.html.basic constant.other.inline-data\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#D08770\"}},{\"scope\":\"text.html.basic meta.tag.sgml.doctype\",\"settings\":{\"foreground\":\"#5E81AC\"}},{\"scope\":\"text.html.basic punctuation.definition.entity\",\"settings\":{\"foreground\":\"#81A1C1\"}},{\"scope\":\"source.properties entity.name.section.group-title.ini\",\"settings\":{\"foreground\":\"#88C0D0\"}},{\"scope\":\"source.properties punctuation.separator.key-value.ini\",\"settings\":{\"foreground\":\"#81A1C1\"}},{\"scope\":[\"text.html.markdown markup.fenced_code.block\",\"text.html.markdown markup.fenced_code.block punctuation.definition\"],\"settings\":{\"foreground\":\"#8FBCBB\"}},{\"scope\":\"markup.heading\",\"settings\":{\"foreground\":\"#88C0D0\"}},{\"scope\":[\"text.html.markdown markup.inline.raw\",\"text.html.markdown markup.inline.raw punctuation.definition.raw\"],\"settings\":{\"foreground\":\"#8FBCBB\"}},{\"scope\":\"text.html.markdown markup.italic\",\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":\"text.html.markdown markup.underline.link\",\"settings\":{\"fontStyle\":\"underline\"}},{\"scope\":\"text.html.markdown beginning.punctuation.definition.list\",\"settings\":{\"foreground\":\"#81A1C1\"}},{\"scope\":\"text.html.markdown beginning.punctuation.definition.quote\",\"settings\":{\"foreground\":\"#8FBCBB\"}},{\"scope\":\"text.html.markdown markup.quote\",\"settings\":{\"foreground\":\"#616E88\"}},{\"scope\":\"text.html.markdown constant.character.math.tex\",\"settings\":{\"foreground\":\"#81A1C1\"}},{\"scope\":[\"text.html.markdown punctuation.definition.math.begin\",\"text.html.markdown punctuation.definition.math.end\"],\"settings\":{\"foreground\":\"#5E81AC\"}},{\"scope\":\"text.html.markdown punctuation.definition.function.math.tex\",\"settings\":{\"foreground\":\"#88C0D0\"}},{\"scope\":\"text.html.markdown punctuation.math.operator.latex\",\"settings\":{\"foreground\":\"#81A1C1\"}},{\"scope\":\"text.html.markdown punctuation.definition.heading\",\"settings\":{\"foreground\":\"#81A1C1\"}},{\"scope\":[\"text.html.markdown punctuation.definition.constant\",\"text.html.markdown punctuation.definition.string\"],\"settings\":{\"foreground\":\"#81A1C1\"}},{\"scope\":[\"text.html.markdown constant.other.reference.link\",\"text.html.markdown string.other.link.description\",\"text.html.markdown string.other.link.title\"],\"settings\":{\"foreground\":\"#88C0D0\"}},{\"scope\":\"source.perl punctuation.definition.variable\",\"settings\":{\"foreground\":\"#D8DEE9\"}},{\"scope\":[\"source.php meta.function-call\",\"source.php meta.function-call.object\"],\"settings\":{\"foreground\":\"#88C0D0\"}},{\"scope\":[\"source.python entity.name.function.decorator\",\"source.python meta.function.decorator support.type\"],\"settings\":{\"foreground\":\"#D08770\"}},{\"scope\":\"source.python meta.function-call.generic\",\"settings\":{\"foreground\":\"#88C0D0\"}},{\"scope\":\"source.python support.type\",\"settings\":{\"foreground\":\"#88C0D0\"}},{\"scope\":[\"source.python variable.parameter.function.language\"],\"settings\":{\"foreground\":\"#D8DEE9\"}},{\"scope\":[\"source.python meta.function.parameters variable.parameter.function.language.special.self\"],\"settings\":{\"foreground\":\"#81A1C1\"}},{\"scope\":\"source.rust entity.name.type\",\"settings\":{\"foreground\":\"#8FBCBB\"}},{\"scope\":\"source.rust meta.macro entity.name.function\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#88C0D0\"}},{\"scope\":[\"source.rust meta.attribute\",\"source.rust meta.attribute punctuation\",\"source.rust meta.attribute keyword.operator\"],\"settings\":{\"foreground\":\"#5E81AC\"}},{\"scope\":\"source.rust entity.name.type.trait\",\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":\"source.rust punctuation.definition.interpolation\",\"settings\":{\"foreground\":\"#EBCB8B\"}},{\"scope\":[\"source.css.scss punctuation.definition.interpolation.begin.bracket.curly\",\"source.css.scss punctuation.definition.interpolation.end.bracket.curly\"],\"settings\":{\"foreground\":\"#81A1C1\"}},{\"scope\":\"source.css.scss variable.interpolation\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#D8DEE9\"}},{\"scope\":[\"source.ts punctuation.decorator\",\"source.ts meta.decorator variable.other.readwrite\",\"source.ts meta.decorator entity.name.function\",\"source.tsx punctuation.decorator\",\"source.tsx meta.decorator variable.other.readwrite\",\"source.tsx meta.decorator entity.name.function\"],\"settings\":{\"foreground\":\"#D08770\"}},{\"scope\":[\"source.ts meta.object-literal.key\",\"source.tsx meta.object-literal.key\"],\"settings\":{\"foreground\":\"#D8DEE9\"}},{\"scope\":[\"source.ts meta.object-literal.key entity.name.function\",\"source.tsx meta.object-literal.key entity.name.function\"],\"settings\":{\"foreground\":\"#88C0D0\"}},{\"scope\":[\"source.ts support.class\",\"source.ts support.type\",\"source.ts entity.name.type\",\"source.ts entity.name.class\",\"source.tsx support.class\",\"source.tsx support.type\",\"source.tsx entity.name.type\",\"source.tsx entity.name.class\"],\"settings\":{\"foreground\":\"#8FBCBB\"}},{\"scope\":[\"source.ts support.constant.math\",\"source.ts support.constant.dom\",\"source.ts support.constant.json\",\"source.tsx support.constant.math\",\"source.tsx support.constant.dom\",\"source.tsx support.constant.json\"],\"settings\":{\"foreground\":\"#8FBCBB\"}},{\"scope\":[\"source.ts support.variable\",\"source.tsx support.variable\"],\"settings\":{\"foreground\":\"#D8DEE9\"}},{\"scope\":[\"source.ts meta.embedded.line meta.brace.square\",\"source.ts meta.embedded.line meta.brace.round\",\"source.tsx meta.embedded.line meta.brace.square\",\"source.tsx meta.embedded.line meta.brace.round\"],\"settings\":{\"foreground\":\"#ECEFF4\"}},{\"scope\":\"text.xml entity.name.tag.namespace\",\"settings\":{\"foreground\":\"#8FBCBB\"}},{\"scope\":\"text.xml keyword.other.doctype\",\"settings\":{\"foreground\":\"#5E81AC\"}},{\"scope\":\"text.xml meta.tag.preprocessor entity.name.tag\",\"settings\":{\"foreground\":\"#5E81AC\"}},{\"scope\":[\"text.xml string.unquoted.cdata\",\"text.xml string.unquoted.cdata punctuation.definition.string\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#D08770\"}},{\"scope\":\"source.yaml entity.name.tag\",\"settings\":{\"foreground\":\"#8FBCBB\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DeYg-96x.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\";;\"},brackets:[[\"[\",\"]\"],[\"(\",\")\"],[\"{\",\"}\"]],autoClosingPairs:[{open:\"[\",close:\"]\"},{open:'\"',close:'\"'},{open:\"(\",close:\")\"},{open:\"{\",close:\"}\"}],surroundingPairs:[{open:\"[\",close:\"]\"},{open:'\"',close:'\"'},{open:\"(\",close:\")\"},{open:\"{\",close:\"}\"}]},t={defaultToken:\"\",ignoreCase:!0,tokenPostfix:\".clj\",brackets:[{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"{\",close:\"}\",token:\"delimiter.curly\"}],constants:[\"true\",\"false\",\"nil\"],numbers:/^(?:[+\\-]?\\d+(?:(?:N|(?:[eE][+\\-]?\\d+))|(?:\\.?\\d*(?:M|(?:[eE][+\\-]?\\d+))?)|\\/\\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\\\\[\\]\\s\"#'(),;@^`{}~]|$))/,characters:/^(?:\\\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\\\\[\\]\\s\"(),;@^`{}~]|$))/,escapes:/^\\\\(?:[\"'\\\\bfnrt]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,qualifiedSymbols:/^(?:(?:[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~][^\\\\\\[\\]\\s\"(),;@^`{}~]*(?:\\.[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~][^\\\\\\[\\]\\s\"(),;@^`{}~]*)*\\/)?(?:\\/|[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~][^\\\\\\[\\]\\s\"(),;@^`{}~]*)*(?=[\\\\\\[\\]\\s\"(),;@^`{}~]|$))/,specialForms:[\".\",\"catch\",\"def\",\"do\",\"if\",\"monitor-enter\",\"monitor-exit\",\"new\",\"quote\",\"recur\",\"set!\",\"throw\",\"try\",\"var\"],coreSymbols:[\"*\",\"*'\",\"*1\",\"*2\",\"*3\",\"*agent*\",\"*allow-unresolved-vars*\",\"*assert*\",\"*clojure-version*\",\"*command-line-args*\",\"*compile-files*\",\"*compile-path*\",\"*compiler-options*\",\"*data-readers*\",\"*default-data-reader-fn*\",\"*e\",\"*err*\",\"*file*\",\"*flush-on-newline*\",\"*fn-loader*\",\"*in*\",\"*math-context*\",\"*ns*\",\"*out*\",\"*print-dup*\",\"*print-length*\",\"*print-level*\",\"*print-meta*\",\"*print-namespace-maps*\",\"*print-readably*\",\"*read-eval*\",\"*reader-resolver*\",\"*source-path*\",\"*suppress-read*\",\"*unchecked-math*\",\"*use-context-classloader*\",\"*verbose-defrecords*\",\"*warn-on-reflection*\",\"+\",\"+'\",\"-\",\"-'\",\"->\",\"->>\",\"->ArrayChunk\",\"->Eduction\",\"->Vec\",\"->VecNode\",\"->VecSeq\",\"-cache-protocol-fn\",\"-reset-methods\",\"..\",\"/\",\"<\",\"<=\",\"=\",\"==\",\">\",\">=\",\"EMPTY-NODE\",\"Inst\",\"StackTraceElement->vec\",\"Throwable->map\",\"accessor\",\"aclone\",\"add-classpath\",\"add-watch\",\"agent\",\"agent-error\",\"agent-errors\",\"aget\",\"alength\",\"alias\",\"all-ns\",\"alter\",\"alter-meta!\",\"alter-var-root\",\"amap\",\"ancestors\",\"and\",\"any?\",\"apply\",\"areduce\",\"array-map\",\"as->\",\"aset\",\"aset-boolean\",\"aset-byte\",\"aset-char\",\"aset-double\",\"aset-float\",\"aset-int\",\"aset-long\",\"aset-short\",\"assert\",\"assoc\",\"assoc!\",\"assoc-in\",\"associative?\",\"atom\",\"await\",\"await-for\",\"await1\",\"bases\",\"bean\",\"bigdec\",\"bigint\",\"biginteger\",\"binding\",\"bit-and\",\"bit-and-not\",\"bit-clear\",\"bit-flip\",\"bit-not\",\"bit-or\",\"bit-set\",\"bit-shift-left\",\"bit-shift-right\",\"bit-test\",\"bit-xor\",\"boolean\",\"boolean-array\",\"boolean?\",\"booleans\",\"bound-fn\",\"bound-fn*\",\"bound?\",\"bounded-count\",\"butlast\",\"byte\",\"byte-array\",\"bytes\",\"bytes?\",\"case\",\"cast\",\"cat\",\"char\",\"char-array\",\"char-escape-string\",\"char-name-string\",\"char?\",\"chars\",\"chunk\",\"chunk-append\",\"chunk-buffer\",\"chunk-cons\",\"chunk-first\",\"chunk-next\",\"chunk-rest\",\"chunked-seq?\",\"class\",\"class?\",\"clear-agent-errors\",\"clojure-version\",\"coll?\",\"comment\",\"commute\",\"comp\",\"comparator\",\"compare\",\"compare-and-set!\",\"compile\",\"complement\",\"completing\",\"concat\",\"cond\",\"cond->\",\"cond->>\",\"condp\",\"conj\",\"conj!\",\"cons\",\"constantly\",\"construct-proxy\",\"contains?\",\"count\",\"counted?\",\"create-ns\",\"create-struct\",\"cycle\",\"dec\",\"dec'\",\"decimal?\",\"declare\",\"dedupe\",\"default-data-readers\",\"definline\",\"definterface\",\"defmacro\",\"defmethod\",\"defmulti\",\"defn\",\"defn-\",\"defonce\",\"defprotocol\",\"defrecord\",\"defstruct\",\"deftype\",\"delay\",\"delay?\",\"deliver\",\"denominator\",\"deref\",\"derive\",\"descendants\",\"destructure\",\"disj\",\"disj!\",\"dissoc\",\"dissoc!\",\"distinct\",\"distinct?\",\"doall\",\"dorun\",\"doseq\",\"dosync\",\"dotimes\",\"doto\",\"double\",\"double-array\",\"double?\",\"doubles\",\"drop\",\"drop-last\",\"drop-while\",\"eduction\",\"empty\",\"empty?\",\"ensure\",\"ensure-reduced\",\"enumeration-seq\",\"error-handler\",\"error-mode\",\"eval\",\"even?\",\"every-pred\",\"every?\",\"ex-data\",\"ex-info\",\"extend\",\"extend-protocol\",\"extend-type\",\"extenders\",\"extends?\",\"false?\",\"ffirst\",\"file-seq\",\"filter\",\"filterv\",\"find\",\"find-keyword\",\"find-ns\",\"find-protocol-impl\",\"find-protocol-method\",\"find-var\",\"first\",\"flatten\",\"float\",\"float-array\",\"float?\",\"floats\",\"flush\",\"fn\",\"fn?\",\"fnext\",\"fnil\",\"for\",\"force\",\"format\",\"frequencies\",\"future\",\"future-call\",\"future-cancel\",\"future-cancelled?\",\"future-done?\",\"future?\",\"gen-class\",\"gen-interface\",\"gensym\",\"get\",\"get-in\",\"get-method\",\"get-proxy-class\",\"get-thread-bindings\",\"get-validator\",\"group-by\",\"halt-when\",\"hash\",\"hash-combine\",\"hash-map\",\"hash-ordered-coll\",\"hash-set\",\"hash-unordered-coll\",\"ident?\",\"identical?\",\"identity\",\"if-let\",\"if-not\",\"if-some\",\"ifn?\",\"import\",\"in-ns\",\"inc\",\"inc'\",\"indexed?\",\"init-proxy\",\"inst-ms\",\"inst-ms*\",\"inst?\",\"instance?\",\"int\",\"int-array\",\"int?\",\"integer?\",\"interleave\",\"intern\",\"interpose\",\"into\",\"into-array\",\"ints\",\"io!\",\"isa?\",\"iterate\",\"iterator-seq\",\"juxt\",\"keep\",\"keep-indexed\",\"key\",\"keys\",\"keyword\",\"keyword?\",\"last\",\"lazy-cat\",\"lazy-seq\",\"let\",\"letfn\",\"line-seq\",\"list\",\"list*\",\"list?\",\"load\",\"load-file\",\"load-reader\",\"load-string\",\"loaded-libs\",\"locking\",\"long\",\"long-array\",\"longs\",\"loop\",\"macroexpand\",\"macroexpand-1\",\"make-array\",\"make-hierarchy\",\"map\",\"map-entry?\",\"map-indexed\",\"map?\",\"mapcat\",\"mapv\",\"max\",\"max-key\",\"memfn\",\"memoize\",\"merge\",\"merge-with\",\"meta\",\"method-sig\",\"methods\",\"min\",\"min-key\",\"mix-collection-hash\",\"mod\",\"munge\",\"name\",\"namespace\",\"namespace-munge\",\"nat-int?\",\"neg-int?\",\"neg?\",\"newline\",\"next\",\"nfirst\",\"nil?\",\"nnext\",\"not\",\"not-any?\",\"not-empty\",\"not-every?\",\"not=\",\"ns\",\"ns-aliases\",\"ns-imports\",\"ns-interns\",\"ns-map\",\"ns-name\",\"ns-publics\",\"ns-refers\",\"ns-resolve\",\"ns-unalias\",\"ns-unmap\",\"nth\",\"nthnext\",\"nthrest\",\"num\",\"number?\",\"numerator\",\"object-array\",\"odd?\",\"or\",\"parents\",\"partial\",\"partition\",\"partition-all\",\"partition-by\",\"pcalls\",\"peek\",\"persistent!\",\"pmap\",\"pop\",\"pop!\",\"pop-thread-bindings\",\"pos-int?\",\"pos?\",\"pr\",\"pr-str\",\"prefer-method\",\"prefers\",\"primitives-classnames\",\"print\",\"print-ctor\",\"print-dup\",\"print-method\",\"print-simple\",\"print-str\",\"printf\",\"println\",\"println-str\",\"prn\",\"prn-str\",\"promise\",\"proxy\",\"proxy-call-with-super\",\"proxy-mappings\",\"proxy-name\",\"proxy-super\",\"push-thread-bindings\",\"pvalues\",\"qualified-ident?\",\"qualified-keyword?\",\"qualified-symbol?\",\"quot\",\"rand\",\"rand-int\",\"rand-nth\",\"random-sample\",\"range\",\"ratio?\",\"rational?\",\"rationalize\",\"re-find\",\"re-groups\",\"re-matcher\",\"re-matches\",\"re-pattern\",\"re-seq\",\"read\",\"read-line\",\"read-string\",\"reader-conditional\",\"reader-conditional?\",\"realized?\",\"record?\",\"reduce\",\"reduce-kv\",\"reduced\",\"reduced?\",\"reductions\",\"ref\",\"ref-history-count\",\"ref-max-history\",\"ref-min-history\",\"ref-set\",\"refer\",\"refer-clojure\",\"reify\",\"release-pending-sends\",\"rem\",\"remove\",\"remove-all-methods\",\"remove-method\",\"remove-ns\",\"remove-watch\",\"repeat\",\"repeatedly\",\"replace\",\"replicate\",\"require\",\"reset!\",\"reset-meta!\",\"reset-vals!\",\"resolve\",\"rest\",\"restart-agent\",\"resultset-seq\",\"reverse\",\"reversible?\",\"rseq\",\"rsubseq\",\"run!\",\"satisfies?\",\"second\",\"select-keys\",\"send\",\"send-off\",\"send-via\",\"seq\",\"seq?\",\"seqable?\",\"seque\",\"sequence\",\"sequential?\",\"set\",\"set-agent-send-executor!\",\"set-agent-send-off-executor!\",\"set-error-handler!\",\"set-error-mode!\",\"set-validator!\",\"set?\",\"short\",\"short-array\",\"shorts\",\"shuffle\",\"shutdown-agents\",\"simple-ident?\",\"simple-keyword?\",\"simple-symbol?\",\"slurp\",\"some\",\"some->\",\"some->>\",\"some-fn\",\"some?\",\"sort\",\"sort-by\",\"sorted-map\",\"sorted-map-by\",\"sorted-set\",\"sorted-set-by\",\"sorted?\",\"special-symbol?\",\"spit\",\"split-at\",\"split-with\",\"str\",\"string?\",\"struct\",\"struct-map\",\"subs\",\"subseq\",\"subvec\",\"supers\",\"swap!\",\"swap-vals!\",\"symbol\",\"symbol?\",\"sync\",\"tagged-literal\",\"tagged-literal?\",\"take\",\"take-last\",\"take-nth\",\"take-while\",\"test\",\"the-ns\",\"thread-bound?\",\"time\",\"to-array\",\"to-array-2d\",\"trampoline\",\"transduce\",\"transient\",\"tree-seq\",\"true?\",\"type\",\"unchecked-add\",\"unchecked-add-int\",\"unchecked-byte\",\"unchecked-char\",\"unchecked-dec\",\"unchecked-dec-int\",\"unchecked-divide-int\",\"unchecked-double\",\"unchecked-float\",\"unchecked-inc\",\"unchecked-inc-int\",\"unchecked-int\",\"unchecked-long\",\"unchecked-multiply\",\"unchecked-multiply-int\",\"unchecked-negate\",\"unchecked-negate-int\",\"unchecked-remainder-int\",\"unchecked-short\",\"unchecked-subtract\",\"unchecked-subtract-int\",\"underive\",\"unquote\",\"unquote-splicing\",\"unreduced\",\"unsigned-bit-shift-right\",\"update\",\"update-in\",\"update-proxy\",\"uri?\",\"use\",\"uuid?\",\"val\",\"vals\",\"var-get\",\"var-set\",\"var?\",\"vary-meta\",\"vec\",\"vector\",\"vector-of\",\"vector?\",\"volatile!\",\"volatile?\",\"vreset!\",\"vswap!\",\"when\",\"when-first\",\"when-let\",\"when-not\",\"when-some\",\"while\",\"with-bindings\",\"with-bindings*\",\"with-in-str\",\"with-loading-context\",\"with-local-vars\",\"with-meta\",\"with-open\",\"with-out-str\",\"with-precision\",\"with-redefs\",\"with-redefs-fn\",\"xml-seq\",\"zero?\",\"zipmap\"],tokenizer:{root:[{include:\"@whitespace\"},[/@numbers/,\"number\"],[/@characters/,\"string\"],{include:\"@string\"},[/[()\\[\\]{}]/,\"@brackets\"],[/\\/#\"(?:\\.|(?:\")|[^\"\\n])*\"\\/g/,\"regexp\"],[/[#'@^`~]/,\"meta\"],[/@qualifiedSymbols/,{cases:{\"^:.+$\":\"constant\",\"@specialForms\":\"keyword\",\"@coreSymbols\":\"keyword\",\"@constants\":\"constant\",\"@default\":\"identifier\"}}]],whitespace:[[/[\\s,]+/,\"white\"],[/;.*$/,\"comment\"],[/\\(comment\\b/,\"comment\",\"@comment\"]],comment:[[/\\(/,\"comment\",\"@push\"],[/\\)/,\"comment\",\"@pop\"],[/[^()]/,\"comment\"]],string:[[/\"/,\"string\",\"@multiLineString\"]],multiLineString:[[/\"/,\"string\",\"@popall\"],[/@escapes/,\"string.escape\"],[/./,\"string\"]]}};export{e as conf,t as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/Deuh7S70.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Objective-C\",\"name\":\"objective-c\",\"patterns\":[{\"include\":\"#anonymous_pattern_1\"},{\"include\":\"#anonymous_pattern_2\"},{\"include\":\"#anonymous_pattern_3\"},{\"include\":\"#anonymous_pattern_4\"},{\"include\":\"#anonymous_pattern_5\"},{\"include\":\"#apple_foundation_functional_macros\"},{\"include\":\"#anonymous_pattern_7\"},{\"include\":\"#anonymous_pattern_8\"},{\"include\":\"#anonymous_pattern_9\"},{\"include\":\"#anonymous_pattern_10\"},{\"include\":\"#anonymous_pattern_11\"},{\"include\":\"#anonymous_pattern_12\"},{\"include\":\"#anonymous_pattern_13\"},{\"include\":\"#anonymous_pattern_14\"},{\"include\":\"#anonymous_pattern_15\"},{\"include\":\"#anonymous_pattern_16\"},{\"include\":\"#anonymous_pattern_17\"},{\"include\":\"#anonymous_pattern_18\"},{\"include\":\"#anonymous_pattern_19\"},{\"include\":\"#anonymous_pattern_20\"},{\"include\":\"#anonymous_pattern_21\"},{\"include\":\"#anonymous_pattern_22\"},{\"include\":\"#anonymous_pattern_23\"},{\"include\":\"#anonymous_pattern_24\"},{\"include\":\"#anonymous_pattern_25\"},{\"include\":\"#anonymous_pattern_26\"},{\"include\":\"#anonymous_pattern_27\"},{\"include\":\"#anonymous_pattern_28\"},{\"include\":\"#anonymous_pattern_29\"},{\"include\":\"#anonymous_pattern_30\"},{\"include\":\"#bracketed_content\"},{\"include\":\"#c_lang\"}],\"repository\":{\"anonymous_pattern_1\":{\"begin\":\"((@)(interface|protocol))(?!.+;)\\\\\\\\s+([A-Za-z_][A-Za-z0-9_]*)\\\\\\\\s*((:)(?:\\\\\\\\s*)([A-Za-z][A-Za-z0-9]*))?(\\\\\\\\s|\\\\\\\\n)?\",\"captures\":{\"1\":{\"name\":\"storage.type.objc\"},\"2\":{\"name\":\"punctuation.definition.storage.type.objc\"},\"4\":{\"name\":\"entity.name.type.objc\"},\"6\":{\"name\":\"punctuation.definition.entity.other.inherited-class.objc\"},\"7\":{\"name\":\"entity.other.inherited-class.objc\"},\"8\":{\"name\":\"meta.divider.objc\"},\"9\":{\"name\":\"meta.inherited-class.objc\"}},\"contentName\":\"meta.scope.interface.objc\",\"end\":\"((@)end)\\\\\\\\b\",\"name\":\"meta.interface-or-protocol.objc\",\"patterns\":[{\"include\":\"#interface_innards\"}]},\"anonymous_pattern_10\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.keyword.objc\"}},\"match\":\"(@)(defs|encode)\\\\\\\\b\",\"name\":\"keyword.other.objc\"},\"anonymous_pattern_11\":{\"match\":\"\\\\\\\\bid\\\\\\\\b\",\"name\":\"storage.type.id.objc\"},\"anonymous_pattern_12\":{\"match\":\"\\\\\\\\b(IBOutlet|IBAction|BOOL|SEL|id|unichar|IMP|Class|instancetype)\\\\\\\\b\",\"name\":\"storage.type.objc\"},\"anonymous_pattern_13\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.storage.type.objc\"}},\"match\":\"(@)(class|protocol)\\\\\\\\b\",\"name\":\"storage.type.objc\"},\"anonymous_pattern_14\":{\"begin\":\"((@)selector)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.objc\"},\"2\":{\"name\":\"punctuation.definition.storage.type.objc\"},\"3\":{\"name\":\"punctuation.definition.storage.type.objc\"}},\"contentName\":\"meta.selector.method-name.objc\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.storage.type.objc\"}},\"name\":\"meta.selector.objc\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.arguments.objc\"}},\"match\":\"\\\\\\\\b(?:[a-zA-Z_:][\\\\\\\\w]*)+\",\"name\":\"support.function.any-method.name-of-parameter.objc\"}]},\"anonymous_pattern_15\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.storage.modifier.objc\"}},\"match\":\"(@)(synchronized|public|package|private|protected)\\\\\\\\b\",\"name\":\"storage.modifier.objc\"},\"anonymous_pattern_16\":{\"match\":\"\\\\\\\\b(YES|NO|Nil|nil)\\\\\\\\b\",\"name\":\"constant.language.objc\"},\"anonymous_pattern_17\":{\"match\":\"\\\\\\\\bNSApp\\\\\\\\b\",\"name\":\"support.variable.foundation.objc\"},\"anonymous_pattern_18\":{\"captures\":{\"1\":{\"name\":\"punctuation.whitespace.support.function.cocoa.leopard.objc\"},\"2\":{\"name\":\"support.function.cocoa.leopard.objc\"}},\"match\":\"(\\\\\\\\s*)\\\\\\\\b(NS(Rect(ToCGRect|FromCGRect)|MakeCollectable|S(tringFromProtocol|ize(ToCGSize|FromCGSize))|Draw(NinePartImage|ThreePartImage)|P(oint(ToCGPoint|FromCGPoint)|rotocolFromString)|EventMaskFromType|Value))\\\\\\\\b\"},\"anonymous_pattern_19\":{\"captures\":{\"1\":{\"name\":\"punctuation.whitespace.support.function.leading.cocoa.objc\"},\"2\":{\"name\":\"support.function.cocoa.objc\"}},\"match\":\"(\\\\\\\\s*)\\\\\\\\b(NS(R(ound(DownToMultipleOfPageSize|UpToMultipleOfPageSize)|un(CriticalAlertPanel(RelativeToWindow)?|InformationalAlertPanel(RelativeToWindow)?|AlertPanel(RelativeToWindow)?)|e(set(MapTable|HashTable)|c(ycleZone|t(Clip(List)?|F(ill(UsingOperation|List(UsingOperation|With(Grays|Colors(UsingOperation)?))?)?|romString))|ordAllocationEvent)|turnAddress|leaseAlertPanel|a(dPixel|l(MemoryAvailable|locateCollectable))|gisterServicesProvider)|angeFromString)|Get(SizeAndAlignment|CriticalAlertPanel|InformationalAlertPanel|UncaughtExceptionHandler|FileType(s)?|WindowServerMemory|AlertPanel)|M(i(n(X|Y)|d(X|Y))|ouseInRect|a(p(Remove|Get|Member|Insert(IfAbsent|KnownAbsent)?)|ke(R(ect|ange)|Size|Point)|x(Range|X|Y)))|B(itsPer(SampleFromDepth|PixelFromDepth)|e(stDepth|ep|gin(CriticalAlertSheet|InformationalAlertSheet|AlertSheet)))|S(ho(uldRetainWithZone|w(sServicesMenuItem|AnimationEffect))|tringFrom(R(ect|ange)|MapTable|S(ize|elector)|HashTable|Class|Point)|izeFromString|e(t(ShowsServicesMenuItem|ZoneName|UncaughtExceptionHandler|FocusRingStyle)|lectorFromString|archPathForDirectoriesInDomains)|wap(Big(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|Short|Host(ShortTo(Big|Little)|IntTo(Big|Little)|DoubleTo(Big|Little)|FloatTo(Big|Little)|Long(To(Big|Little)|LongTo(Big|Little)))|Int|Double|Float|L(ittle(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|ong(Long)?)))|H(ighlightRect|o(stByteOrder|meDirectory(ForUser)?)|eight|ash(Remove|Get|Insert(IfAbsent|KnownAbsent)?)|FSType(CodeFromFileType|OfFile))|N(umberOfColorComponents|ext(MapEnumeratorPair|HashEnumeratorItem))|C(o(n(tainsRect|vert(GlyphsToPackedGlyphs|Swapped(DoubleToHost|FloatToHost)|Host(DoubleToSwapped|FloatToSwapped)))|unt(MapTable|HashTable|Frames|Windows(ForContext)?)|py(M(emoryPages|apTableWithZone)|Bits|HashTableWithZone|Object)|lorSpaceFromDepth|mpare(MapTables|HashTables))|lassFromString|reate(MapTable(WithZone)?|HashTable(WithZone)?|Zone|File(namePboardType|ContentsPboardType)))|TemporaryDirectory|I(s(ControllerMarker|EmptyRect|FreedObject)|n(setRect|crementExtraRefCount|te(r(sect(sRect|ionR(ect|ange))|faceStyleForKey)|gralRect)))|Zone(Realloc|Malloc|Name|Calloc|Fr(omPointer|ee))|O(penStepRootDirectory|ffsetRect)|D(i(sableScreenUpdates|videRect)|ottedFrameRect|e(c(imal(Round|Multiply|S(tring|ubtract)|Normalize|Co(py|mpa(ct|re))|IsNotANumber|Divide|Power|Add)|rementExtraRefCountWasZero)|faultMallocZone|allocate(MemoryPages|Object))|raw(Gr(oove|ayBezel)|B(itmap|utton)|ColorTiledRects|TiledRects|DarkBezel|W(hiteBezel|indowBackground)|LightBezel))|U(serName|n(ionR(ect|ange)|registerServicesProvider)|pdateDynamicServices)|Java(Bundle(Setup|Cleanup)|Setup(VirtualMachine)?|Needs(ToLoadClasses|VirtualMachine)|ClassesF(orBundle|romPath)|ObjectNamedInPath|ProvidesClasses)|P(oint(InRect|FromString)|erformService|lanarFromDepth|ageSize)|E(n(d(MapTableEnumeration|HashTableEnumeration)|umerate(MapTable|HashTable)|ableScreenUpdates)|qual(R(ects|anges)|Sizes|Points)|raseRect|xtraRefCount)|F(ileTypeForHFSTypeCode|ullUserName|r(ee(MapTable|HashTable)|ame(Rect(WithWidth(UsingOperation)?)?|Address)))|Wi(ndowList(ForContext)?|dth)|Lo(cationInRange|g(v|PageSize)?)|A(ccessibility(R(oleDescription(ForUIElement)?|aiseBadArgumentException)|Unignored(Children(ForOnlyChild)?|Descendant|Ancestor)|PostNotification|ActionDescription)|pplication(Main|Load)|vailableWindowDepths|ll(MapTable(Values|Keys)|HashTableObjects|ocate(MemoryPages|Collectable|Object)))))\\\\\\\\b\"},\"anonymous_pattern_2\":{\"begin\":\"((@)(implementation))\\\\\\\\s+([A-Za-z_][A-Za-z0-9_]*)\\\\\\\\s*(?::\\\\\\\\s*([A-Za-z][A-Za-z0-9]*))?\",\"captures\":{\"1\":{\"name\":\"storage.type.objc\"},\"2\":{\"name\":\"punctuation.definition.storage.type.objc\"},\"4\":{\"name\":\"entity.name.type.objc\"},\"5\":{\"name\":\"entity.other.inherited-class.objc\"}},\"contentName\":\"meta.scope.implementation.objc\",\"end\":\"((@)end)\\\\\\\\b\",\"name\":\"meta.implementation.objc\",\"patterns\":[{\"include\":\"#implementation_innards\"}]},\"anonymous_pattern_20\":{\"match\":\"\\\\\\\\bNS(RuleEditor|G(arbageCollector|radient)|MapTable|HashTable|Co(ndition|llectionView(Item)?)|T(oolbarItemGroup|extInputClient|r(eeNode|ackingArea))|InvocationOperation|Operation(Queue)?|D(ictionaryController|ockTile)|P(ointer(Functions|Array)|athC(o(ntrol(Delegate)?|mponentCell)|ell(Delegate)?)|r(intPanelAccessorizing|edicateEditor(RowTemplate)?))|ViewController|FastEnumeration|Animat(ionContext|ablePropertyContainer))\\\\\\\\b\",\"name\":\"support.class.cocoa.leopard.objc\"},\"anonymous_pattern_21\":{\"match\":\"\\\\\\\\bNS(R(u(nLoop|ler(Marker|View))|e(sponder|cursiveLock|lativeSpecifier)|an(domSpecifier|geSpecifier))|G(etCommand|lyph(Generator|Storage|Info)|raphicsContext)|XML(Node|D(ocument|TD(Node)?)|Parser|Element)|M(iddleSpecifier|ov(ie(View)?|eCommand)|utable(S(tring|et)|C(haracterSet|opying)|IndexSet|D(ictionary|ata)|URLRequest|ParagraphStyle|A(ttributedString|rray))|e(ssagePort(NameServer)?|nu(Item(Cell)?|View)?|t(hodSignature|adata(Item|Query(ResultGroup|AttributeValueTuple)?)))|a(ch(BootstrapServer|Port)|trix))|B(itmapImageRep|ox|u(ndle|tton(Cell)?)|ezierPath|rowser(Cell)?)|S(hadow|c(anner|r(ipt(SuiteRegistry|C(o(ercionHandler|mmand(Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(er|View)|een))|t(epper(Cell)?|atus(Bar|Item)|r(ing|eam))|imple(HorizontalTypesetter|CString)|o(cketPort(NameServer)?|und|rtDescriptor)|p(e(cifierTest|ech(Recognizer|Synthesizer)|ll(Server|Checker))|litView)|e(cureTextField(Cell)?|t(Command)?|archField(Cell)?|rializer|gmentedC(ontrol|ell))|lider(Cell)?|avePanel)|H(ost|TTP(Cookie(Storage)?|URLResponse)|elpManager)|N(ib(Con(nector|trolConnector)|OutletConnector)?|otification(Center|Queue)?|u(ll|mber(Formatter)?)|etService(Browser)?|ameSpecifier)|C(ha(ngeSpelling|racterSet)|o(n(stantString|nection|trol(ler)?|ditionLock)|d(ing|er)|unt(Command|edSet)|pying|lor(Space|P(ick(ing(Custom|Default)|er)|anel)|Well|List)?|m(p(oundPredicate|arisonPredicate)|boBox(Cell)?))|u(stomImageRep|rsor)|IImageRep|ell|l(ipView|o(seCommand|neCommand)|assDescription)|a(ched(ImageRep|URLResponse)|lendar(Date)?)|reateCommand)|T(hread|ypesetter|ime(Zone|r)|o(olbar(Item(Validations)?)?|kenField(Cell)?)|ext(Block|Storage|Container|Tab(le(Block)?)?|Input|View|Field(Cell)?|List|Attachment(Cell)?)?|a(sk|b(le(Header(Cell|View)|Column|View)|View(Item)?))|reeController)|I(n(dex(S(pecifier|et)|Path)|put(Manager|S(tream|erv(iceProvider|er(MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(Rep|Cell|View)?)|O(ut(putStream|lineView)|pen(GL(Context|Pixel(Buffer|Format)|View)|Panel)|bj(CTypeSerializationCallBack|ect(Controller)?))|D(i(st(antObject(Request)?|ributed(NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(Controller)?|e(serializer|cimalNumber(Behaviors|Handler)?|leteCommand)|at(e(Components|Picker(Cell)?|Formatter)?|a)|ra(wer|ggingInfo))|U(ser(InterfaceValidations|Defaults(Controller)?)|RL(Re(sponse|quest)|Handle(Client)?|C(onnection|ache|redential(Storage)?)|Download(Delegate)?|Prot(ocol(Client)?|ectionSpace)|AuthenticationChallenge(Sender)?)?|n(iqueIDSpecifier|doManager|archiver))|P(ipe|o(sitionalSpecifier|pUpButton(Cell)?|rt(Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(steboard|nel|ragraphStyle|geLayout)|r(int(Info|er|Operation|Panel)|o(cessInfo|tocolChecker|perty(Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(numerator|vent|PSImageRep|rror|x(ception|istsCommand|pression))|V(iew(Animation)?|al(idated(ToobarItem|UserInterfaceItem)|ue(Transformer)?))|Keyed(Unarchiver|Archiver)|Qui(ckDrawView|tCommand)|F(ile(Manager|Handle|Wrapper)|o(nt(Manager|Descriptor|Panel)?|rm(Cell|atter)))|W(hoseSpecifier|indow(Controller)?|orkspace)|L(o(c(k(ing)?|ale)|gicalTest)|evelIndicator(Cell)?|ayoutManager)|A(ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(ication|e(Script|Event(Manager|Descriptor)))|ffineTransform|lert|r(chiver|ray(Controller)?)))\\\\\\\\b\",\"name\":\"support.class.cocoa.objc\"},\"anonymous_pattern_22\":{\"match\":\"\\\\\\\\bNS(R(oundingMode|ule(Editor(RowType|NestingMode)|rOrientation)|e(questUserAttentionType|lativePosition))|G(lyphInscription|radientDrawingOptions)|XML(NodeKind|D(ocumentContentKind|TDNodeKind)|ParserError)|M(ultibyteGlyphPacking|apTableOptions)|B(itmapFormat|oxType|ezierPathElement|ackgroundStyle|rowserDropOperation)|S(tr(ing(CompareOptions|DrawingOptions|EncodingConversionOptions)|eam(Status|Event))|p(eechBoundary|litViewDividerStyle)|e(archPathD(irectory|omainMask)|gmentS(tyle|witchTracking))|liderType|aveOptions)|H(TTPCookieAcceptPolicy|ashTableOptions)|N(otification(SuspensionBehavior|Coalescing)|umberFormatter(RoundingMode|Behavior|Style|PadPosition)|etService(sError|Options))|C(haracterCollection|o(lor(RenderingIntent|SpaceModel|PanelMode)|mp(oundPredicateType|arisonPredicateModifier))|ellStateValue|al(culationError|endarUnit))|T(ypesetterControlCharacterAction|imeZoneNameStyle|e(stComparisonOperation|xt(Block(Dimension|V(erticalAlignment|alueType)|Layer)|TableLayoutAlgorithm|FieldBezelStyle))|ableView(SelectionHighlightStyle|ColumnAutoresizingStyle)|rackingAreaOptions)|I(n(sertionPosition|te(rfaceStyle|ger))|mage(RepLoadStatus|Scaling|CacheMode|FrameStyle|LoadStatus|Alignment))|Ope(nGLPixelFormatAttribute|rationQueuePriority)|Date(Picker(Mode|Style)|Formatter(Behavior|Style))|U(RL(RequestCachePolicy|HandleStatus|C(acheStoragePolicy|redentialPersistence))|Integer)|P(o(stingStyle|int(ingDeviceType|erFunctionsOptions)|pUpArrowPosition)|athStyle|r(int(ing(Orientation|PaginationMode)|erTableStatus|PanelOptions)|opertyList(MutabilityOptions|Format)|edicateOperatorType))|ExpressionType|KeyValue(SetMutationKind|Change)|QTMovieLoopMode|F(indPanel(SubstringMatchType|Action)|o(nt(RenderingMode|FamilyClass)|cusRingPlacement))|W(hoseSubelementIdentifier|ind(ingRule|ow(B(utton|ackingLocation)|SharingType|CollectionBehavior)))|L(ine(MovementDirection|SweepDirection|CapStyle|JoinStyle)|evelIndicatorStyle)|Animation(BlockingMode|Curve))\\\\\\\\b\",\"name\":\"support.type.cocoa.leopard.objc\"},\"anonymous_pattern_23\":{\"match\":\"\\\\\\\\bC(I(Sampler|Co(ntext|lor)|Image(Accumulator)?|PlugIn(Registration)?|Vector|Kernel|Filter(Generator|Shape)?)|A(Renderer|MediaTiming(Function)?|BasicAnimation|ScrollLayer|Constraint(LayoutManager)?|T(iledLayer|extLayer|rans(ition|action))|OpenGLLayer|PropertyAnimation|KeyframeAnimation|Layer|A(nimation(Group)?|ction)))\\\\\\\\b\",\"name\":\"support.class.quartz.objc\"},\"anonymous_pattern_24\":{\"match\":\"\\\\\\\\bC(G(Float|Point|Size|Rect)|IFormat|AConstraintAttribute)\\\\\\\\b\",\"name\":\"support.type.quartz.objc\"},\"anonymous_pattern_25\":{\"match\":\"\\\\\\\\bNS(R(ect(Edge)?|ange)|G(lyph(Relation|LayoutMode)?|radientType)|M(odalSession|a(trixMode|p(Table|Enumerator)))|B(itmapImageFileType|orderType|uttonType|ezelStyle|ackingStoreType|rowserColumnResizingType)|S(cr(oll(er(Part|Arrow)|ArrowPosition)|eenAuxiliaryOpaque)|tringEncoding|ize|ocketNativeHandle|election(Granularity|Direction|Affinity)|wapped(Double|Float)|aveOperationType)|Ha(sh(Table|Enumerator)|ndler(2)?)|C(o(ntrol(Size|Tint)|mp(ositingOperation|arisonResult))|ell(State|Type|ImagePosition|Attribute))|T(hreadPrivate|ypesetterGlyphInfo|i(ckMarkPosition|tlePosition|meInterval)|o(ol(TipTag|bar(SizeMode|DisplayMode))|kenStyle)|IFFCompression|ext(TabType|Alignment)|ab(State|leViewDropOperation|ViewType)|rackingRectTag)|ImageInterpolation|Zone|OpenGL(ContextAuxiliary|PixelFormatAuxiliary)|D(ocumentChangeType|atePickerElementFlags|ra(werState|gOperation))|UsableScrollerParts|P(oint|r(intingPageOrder|ogressIndicator(Style|Th(ickness|readInfo))))|EventType|KeyValueObservingOptions|Fo(nt(SymbolicTraits|TraitMask|Action)|cusRingType)|W(indow(OrderingMode|Depth)|orkspace(IconCreationOptions|LaunchOptions)|ritingDirection)|L(ineBreakMode|ayout(Status|Direction))|A(nimation(Progress|Effect)|ppl(ication(TerminateReply|DelegateReply|PrintReply)|eEventManagerSuspensionID)|ffineTransformStruct|lertStyle))\\\\\\\\b\",\"name\":\"support.type.cocoa.objc\"},\"anonymous_pattern_26\":{\"match\":\"\\\\\\\\bNS(NotFound|Ordered(Ascending|Descending|Same))\\\\\\\\b\",\"name\":\"support.constant.cocoa.objc\"},\"anonymous_pattern_27\":{\"match\":\"\\\\\\\\bNS(MenuDidBeginTracking|ViewDidUpdateTrackingAreas)?Notification\\\\\\\\b\",\"name\":\"support.constant.notification.cocoa.leopard.objc\"},\"anonymous_pattern_28\":{\"match\":\"\\\\\\\\bNS(Menu(Did(RemoveItem|SendAction|ChangeItem|EndTracking|AddItem)|WillSendAction)|S(ystemColorsDidChange|plitView(DidResizeSubviews|WillResizeSubviews))|C(o(nt(extHelpModeDid(Deactivate|Activate)|rolT(intDidChange|extDid(BeginEditing|Change|EndEditing)))|lor(PanelColorDidChange|ListDidChange)|mboBox(Selection(IsChanging|DidChange)|Will(Dismiss|PopUp)))|lassDescriptionNeededForClass)|T(oolbar(DidRemoveItem|WillAddItem)|ext(Storage(DidProcessEditing|WillProcessEditing)|Did(BeginEditing|Change|EndEditing)|View(DidChange(Selection|TypingAttributes)|WillChangeNotifyingTextView))|ableView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)))|ImageRepRegistryDidChange|OutlineView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)|Item(Did(Collapse|Expand)|Will(Collapse|Expand)))|Drawer(Did(Close|Open)|Will(Close|Open))|PopUpButton(CellWillPopUp|WillPopUp)|View(GlobalFrameDidChange|BoundsDidChange|F(ocusDidChange|rameDidChange))|FontSetChanged|W(indow(Did(Resi(ze|gn(Main|Key))|M(iniaturize|ove)|Become(Main|Key)|ChangeScreen(|Profile)|Deminiaturize|Update|E(ndSheet|xpose))|Will(M(iniaturize|ove)|BeginSheet|Close))|orkspace(SessionDid(ResignActive|BecomeActive)|Did(Mount|TerminateApplication|Unmount|PerformFileOperation|Wake|LaunchApplication)|Will(Sleep|Unmount|PowerOff|LaunchApplication)))|A(ntialiasThresholdChanged|ppl(ication(Did(ResignActive|BecomeActive|Hide|ChangeScreenParameters|U(nhide|pdate)|FinishLaunching)|Will(ResignActive|BecomeActive|Hide|Terminate|U(nhide|pdate)|FinishLaunching))|eEventManagerWillProcessFirstEvent)))Notification\\\\\\\\b\",\"name\":\"support.constant.notification.cocoa.objc\"},\"anonymous_pattern_29\":{\"match\":\"\\\\\\\\bNS(RuleEditor(RowType(Simple|Compound)|NestingMode(Si(ngle|mple)|Compound|List))|GradientDraws(BeforeStartingLocation|AfterEndingLocation)|M(inusSetExpressionType|a(chPortDeallocate(ReceiveRight|SendRight|None)|pTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality)))|B(oxCustom|undleExecutableArchitecture(X86|I386|PPC(64)?)|etweenPredicateOperatorType|ackgroundStyle(Raised|Dark|L(ight|owered)))|S(tring(DrawingTruncatesLastVisibleLine|EncodingConversion(ExternalRepresentation|AllowLossy))|ubqueryExpressionType|p(e(ech(SentenceBoundary|ImmediateBoundary|WordBoundary)|llingState(GrammarFlag|SpellingFlag))|litViewDividerStyleThi(n|ck))|e(rvice(RequestTimedOutError|M(iscellaneousError|alformedServiceDictionaryError)|InvalidPasteboardDataError|ErrorM(inimum|aximum)|Application(NotFoundError|LaunchFailedError))|gmentStyle(Round(Rect|ed)|SmallSquare|Capsule|Textured(Rounded|Square)|Automatic)))|H(UDWindowMask|ashTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality))|N(oModeColorPanel|etServiceNoAutoRename)|C(hangeRedone|o(ntainsPredicateOperatorType|l(orRenderingIntent(RelativeColorimetric|Saturation|Default|Perceptual|AbsoluteColorimetric)|lectorDisabledOption))|ellHit(None|ContentArea|TrackableArea|EditableTextArea))|T(imeZoneNameStyle(S(hort(Standard|DaylightSaving)|tandard)|DaylightSaving)|extFieldDatePickerStyle|ableViewSelectionHighlightStyle(Regular|SourceList)|racking(Mouse(Moved|EnteredAndExited)|CursorUpdate|InVisibleRect|EnabledDuringMouseDrag|A(ssumeInside|ctive(In(KeyWindow|ActiveApp)|WhenFirstResponder|Always))))|I(n(tersectSetExpressionType|dexedColorSpaceModel)|mageScale(None|Proportionally(Down|UpOrDown)|AxesIndependently))|Ope(nGLPFAAllowOfflineRenderers|rationQueue(DefaultMaxConcurrentOperationCount|Priority(High|Normal|Very(High|Low)|Low)))|D(iacriticInsensitiveSearch|ownloadsDirectory)|U(nionSetExpressionType|TF(16(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)|32(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)))|P(ointerFunctions(Ma(chVirtualMemory|llocMemory)|Str(ongMemory|uctPersonality)|C(StringPersonality|opyIn)|IntegerPersonality|ZeroingWeakMemory|O(paque(Memory|Personality)|bjectP(ointerPersonality|ersonality)))|at(hStyle(Standard|NavigationBar|PopUp)|ternColorSpaceModel)|rintPanelShows(Scaling|Copies|Orientation|P(a(perSize|ge(Range|SetupAccessory))|review)))|Executable(RuntimeMismatchError|NotLoadableError|ErrorM(inimum|aximum)|L(inkError|oadError)|ArchitectureMismatchError)|KeyValueObservingOption(Initial|Prior)|F(i(ndPanelSubstringMatchType(StartsWith|Contains|EndsWith|FullWord)|leRead(TooLargeError|UnknownStringEncodingError))|orcedOrderingSearch)|Wi(ndow(BackingLocation(MainMemory|Default|VideoMemory)|Sharing(Read(Only|Write)|None)|CollectionBehavior(MoveToActiveSpace|CanJoinAllSpaces|Default))|dthInsensitiveSearch)|AggregateExpressionType)\\\\\\\\b\",\"name\":\"support.constant.cocoa.leopard.objc\"},\"anonymous_pattern_3\":{\"begin\":\"@\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objc\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objc\"}},\"name\":\"string.quoted.double.objc\",\"patterns\":[{\"include\":\"#string_escaped_char\"},{\"match\":\"%(\\\\\\\\d+\\\\\\\\$)?[#0\\\\\\\\- +']*((-?\\\\\\\\d+)|\\\\\\\\*(-?\\\\\\\\d+\\\\\\\\$)?)?(\\\\\\\\.((-?\\\\\\\\d+)|\\\\\\\\*(-?\\\\\\\\d+\\\\\\\\$)?)?)?[@]\",\"name\":\"constant.other.placeholder.objc\"},{\"include\":\"#string_placeholder\"}]},\"anonymous_pattern_30\":{\"match\":\"\\\\\\\\bNS(R(GB(ModeColorPanel|ColorSpaceModel)|ight(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey)|ound(RectBezelStyle|Bankers|ed(BezelStyle|TokenStyle|DisclosureBezelStyle)|Down|Up|Plain|Line(CapStyle|JoinStyle))|un(StoppedResponse|ContinuesResponse|AbortedResponse)|e(s(izableWindowMask|et(CursorRectsRunLoopOrdering|FunctionKey))|ce(ssedBezelStyle|iver(sCantHandleCommandScriptError|EvaluationScriptError))|turnTextMovement|doFunctionKey|quiredArgumentsMissingScriptError|l(evancyLevelIndicatorStyle|ative(Before|After))|gular(SquareBezelStyle|ControlSize)|moveTraitFontAction)|a(n(domSubelement|geDateMode)|tingLevelIndicatorStyle|dio(ModeMatrix|Button)))|G(IFFileType|lyph(Below|Inscribe(B(elow|ase)|Over(strike|Below)|Above)|Layout(WithPrevious|A(tAPoint|gainstAPoint))|A(ttribute(BidiLevel|Soft|Inscribe|Elastic)|bove))|r(ooveBorder|eaterThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|a(y(ModeColorPanel|ColorSpaceModel)|dient(None|Con(cave(Strong|Weak)|vex(Strong|Weak)))|phiteControlTint)))|XML(N(o(tationDeclarationKind|de(CompactEmptyElement|IsCDATA|OptionsNone|Use(SingleQuotes|DoubleQuotes)|Pre(serve(NamespaceOrder|C(haracterReferences|DATA)|DTD|Prefixes|E(ntities|mptyElements)|Quotes|Whitespace|A(ttributeOrder|ll))|ttyPrint)|ExpandEmptyElement))|amespaceKind)|CommentKind|TextKind|InvalidKind|D(ocument(X(MLKind|HTMLKind|Include)|HTMLKind|T(idy(XML|HTML)|extKind)|IncludeContentTypeDeclaration|Validate|Kind)|TDKind)|P(arser(GTRequiredError|XMLDeclNot(StartedError|FinishedError)|Mi(splaced(XMLDeclarationError|CDATAEndStringError)|xedContentDeclNot(StartedError|FinishedError))|S(t(andaloneValueError|ringNot(StartedError|ClosedError))|paceRequiredError|eparatorRequiredError)|N(MTOKENRequiredError|o(t(ationNot(StartedError|FinishedError)|WellBalancedError)|DTDError)|amespaceDeclarationError|AMERequiredError)|C(haracterRef(In(DTDError|PrologError|EpilogError)|AtEOFError)|o(nditionalSectionNot(StartedError|FinishedError)|mment(NotFinishedError|ContainsDoubleHyphenError))|DATANotFinishedError)|TagNameMismatchError|In(ternalError|valid(HexCharacterRefError|C(haracter(RefError|InEntityError|Error)|onditionalSectionError)|DecimalCharacterRefError|URIError|Encoding(NameError|Error)))|OutOfMemoryError|D(ocumentStartError|elegateAbortedParseError|OCTYPEDeclNotFinishedError)|U(RI(RequiredError|FragmentError)|n(declaredEntityError|parsedEntityError|knownEncodingError|finishedTagError))|P(CDATARequiredError|ublicIdentifierRequiredError|arsedEntityRef(MissingSemiError|NoNameError|In(Internal(SubsetError|Error)|PrologError|EpilogError)|AtEOFError)|r(ocessingInstructionNot(StartedError|FinishedError)|ematureDocumentEndError))|E(n(codingNotSupportedError|tity(Ref(In(DTDError|PrologError|EpilogError)|erence(MissingSemiError|WithoutNameError)|LoopError|AtEOFError)|BoundaryError|Not(StartedError|FinishedError)|Is(ParameterError|ExternalError)|ValueRequiredError))|qualExpectedError|lementContentDeclNot(StartedError|FinishedError)|xt(ernalS(tandaloneEntityError|ubsetNotFinishedError)|raContentError)|mptyDocumentError)|L(iteralNot(StartedError|FinishedError)|T(RequiredError|SlashRequiredError)|essThanSymbolInAttributeError)|Attribute(RedefinedError|HasNoValueError|Not(StartedError|FinishedError)|ListNot(StartedError|FinishedError)))|rocessingInstructionKind)|E(ntity(GeneralKind|DeclarationKind|UnparsedKind|P(ar(sedKind|ameterKind)|redefined))|lement(Declaration(MixedKind|UndefinedKind|E(lementKind|mptyKind)|Kind|AnyKind)|Kind))|Attribute(N(MToken(sKind|Kind)|otationKind)|CDATAKind|ID(Ref(sKind|Kind)|Kind)|DeclarationKind|En(tit(yKind|iesKind)|umerationKind)|Kind))|M(i(n(XEdge|iaturizableWindowMask|YEdge|uteCalendarUnit)|terLineJoinStyle|ddleSubelement|xedState)|o(nthCalendarUnit|deSwitchFunctionKey|use(Moved(Mask)?|E(ntered(Mask)?|ventSubtype|xited(Mask)?))|veToBezierPathElement|mentary(ChangeButton|Push(Button|InButton)|Light(Button)?))|enuFunctionKey|a(c(intoshInterfaceStyle|OSRomanStringEncoding)|tchesPredicateOperatorType|ppedRead|x(XEdge|YEdge))|ACHOperatingSystem)|B(MPFileType|o(ttomTabsBezelBorder|ldFontMask|rderlessWindowMask|x(Se(condary|parator)|OldStyle|Primary))|uttLineCapStyle|e(zelBorder|velLineJoinStyle|low(Bottom|Top)|gin(sWith(Comparison|PredicateOperatorType)|FunctionKey))|lueControlTint|ack(spaceCharacter|tabTextMovement|ingStore(Retained|Buffered|Nonretained)|TabCharacter|wardsSearch|groundTab)|r(owser(NoColumnResizing|UserColumnResizing|AutoColumnResizing)|eakFunctionKey))|S(h(ift(JISStringEncoding|KeyMask)|ow(ControlGlyphs|InvisibleGlyphs)|adowlessSquareBezelStyle)|y(s(ReqFunctionKey|tem(D(omainMask|efined(Mask)?)|FunctionKey))|mbolStringEncoding)|c(a(nnedOption|le(None|ToFit|Proportionally))|r(oll(er(NoPart|Increment(Page|Line|Arrow)|Decrement(Page|Line|Arrow)|Knob(Slot)?|Arrows(M(inEnd|axEnd)|None|DefaultSetting))|Wheel(Mask)?|LockFunctionKey)|eenChangedEventType))|t(opFunctionKey|r(ingDrawing(OneShot|DisableScreenFontSubstitution|Uses(DeviceMetrics|FontLeading|LineFragmentOrigin))|eam(Status(Reading|NotOpen|Closed|Open(ing)?|Error|Writing|AtEnd)|Event(Has(BytesAvailable|SpaceAvailable)|None|OpenCompleted|E(ndEncountered|rrorOccurred)))))|i(ngle(DateMode|UnderlineStyle)|ze(DownFontAction|UpFontAction))|olarisOperatingSystem|unOSOperatingSystem|pecialPageOrder|e(condCalendarUnit|lect(By(Character|Paragraph|Word)|i(ng(Next|Previous)|onAffinity(Downstream|Upstream))|edTab|FunctionKey)|gmentSwitchTracking(Momentary|Select(One|Any)))|quareLineCapStyle|witchButton|ave(ToOperation|Op(tions(Yes|No|Ask)|eration)|AsOperation)|mall(SquareBezelStyle|C(ontrolSize|apsFontMask)|IconButtonBezelStyle))|H(ighlightModeMatrix|SBModeColorPanel|o(ur(Minute(SecondDatePickerElementFlag|DatePickerElementFlag)|CalendarUnit)|rizontalRuler|meFunctionKey)|TTPCookieAcceptPolicy(Never|OnlyFromMainDocumentDomain|Always)|e(lp(ButtonBezelStyle|KeyMask|FunctionKey)|avierFontAction)|PUXOperatingSystem)|Year(MonthDa(yDatePickerElementFlag|tePickerElementFlag)|CalendarUnit)|N(o(n(StandardCharacterSetFontMask|ZeroWindingRule|activatingPanelMask|LossyASCIIStringEncoding)|Border|t(ification(SuspensionBehavior(Hold|Coalesce|D(eliverImmediately|rop))|NoCoalescing|CoalescingOn(Sender|Name)|DeliverImmediately|PostToAllSessions)|PredicateType|EqualToPredicateOperatorType)|S(cr(iptError|ollerParts)|ubelement|pecifierError)|CellMask|T(itle|opLevelContainersSpecifierError|abs(BezelBorder|NoBorder|LineBorder))|I(nterfaceStyle|mage)|UnderlineStyle|FontChangeAction)|u(ll(Glyph|CellType)|m(eric(Search|PadKeyMask)|berFormatter(Round(Half(Down|Up|Even)|Ceiling|Down|Up|Floor)|Behavior(10|Default)|S(cientificStyle|pellOutStyle)|NoStyle|CurrencyStyle|DecimalStyle|P(ercentStyle|ad(Before(Suffix|Prefix)|After(Suffix|Prefix))))))|e(t(Services(BadArgumentError|NotFoundError|C(ollisionError|ancelledError)|TimeoutError|InvalidError|UnknownError|ActivityInProgress)|workDomainMask)|wlineCharacter|xt(StepInterfaceStyle|FunctionKey))|EXTSTEPStringEncoding|a(t(iveShortGlyphPacking|uralTextAlignment)|rrowFontMask))|C(hange(ReadOtherContents|GrayCell(Mask)?|BackgroundCell(Mask)?|Cleared|Done|Undone|Autosaved)|MYK(ModeColorPanel|ColorSpaceModel)|ircular(BezelStyle|Slider)|o(n(stantValueExpressionType|t(inuousCapacityLevelIndicatorStyle|entsCellMask|ain(sComparison|erSpecifierError)|rol(Glyph|KeyMask))|densedFontMask)|lor(Panel(RGBModeMask|GrayModeMask|HSBModeMask|C(MYKModeMask|olorListModeMask|ustomPaletteModeMask|rayonModeMask)|WheelModeMask|AllModesMask)|ListModeColorPanel)|reServiceDirectory|m(p(osite(XOR|Source(In|O(ut|ver)|Atop)|Highlight|C(opy|lear)|Destination(In|O(ut|ver)|Atop)|Plus(Darker|Lighter))|ressedFontMask)|mandKeyMask))|u(stom(SelectorPredicateOperatorType|PaletteModeColorPanel)|r(sor(Update(Mask)?|PointingDevice)|veToBezierPathElement))|e(nterT(extAlignment|abStopType)|ll(State|H(ighlighted|as(Image(Horizontal|OnLeftOrBottom)|OverlappingImage))|ChangesContents|Is(Bordered|InsetButton)|Disabled|Editable|LightsBy(Gray|Background|Contents)|AllowsMixedState))|l(ipPagination|o(s(ePathBezierPathElement|ableWindowMask)|ckAndCalendarDatePickerStyle)|ear(ControlTint|DisplayFunctionKey|LineFunctionKey))|a(seInsensitive(Search|PredicateOption)|n(notCreateScriptCommandError|cel(Button|TextMovement))|chesDirectory|lculation(NoError|Overflow|DivideByZero|Underflow|LossOfPrecision)|rriageReturnCharacter)|r(itical(Request|AlertStyle)|ayonModeColorPanel))|T(hick(SquareBezelStyle|erSquareBezelStyle)|ypesetter(Behavior|HorizontalTabAction|ContainerBreakAction|ZeroAdvancementAction|OriginalBehavior|ParagraphBreakAction|WhitespaceAction|L(ineBreakAction|atestBehavior))|i(ckMark(Right|Below|Left|Above)|tledWindowMask|meZoneDatePickerElementFlag)|o(olbarItemVisibilityPriority(Standard|High|User|Low)|pTabsBezelBorder|ggleButton)|IFF(Compression(N(one|EXT)|CCITTFAX(3|4)|OldJPEG|JPEG|PackBits|LZW)|FileType)|e(rminate(Now|Cancel|Later)|xt(Read(InapplicableDocumentTypeError|WriteErrorM(inimum|aximum))|Block(M(i(nimum(Height|Width)|ddleAlignment)|a(rgin|ximum(Height|Width)))|B(o(ttomAlignment|rder)|aselineAlignment)|Height|TopAlignment|P(ercentageValueType|adding)|Width|AbsoluteValueType)|StorageEdited(Characters|Attributes)|CellType|ured(RoundedBezelStyle|BackgroundWindowMask|SquareBezelStyle)|Table(FixedLayoutAlgorithm|AutomaticLayoutAlgorithm)|Field(RoundedBezel|SquareBezel|AndStepperDatePickerStyle)|WriteInapplicableDocumentTypeError|ListPrependEnclosingMarker))|woByteGlyphPacking|ab(Character|TextMovement|le(tP(oint(Mask|EventSubtype)?|roximity(Mask|EventSubtype)?)|Column(NoResizing|UserResizingMask|AutoresizingMask)|View(ReverseSequentialColumnAutoresizingStyle|GridNone|S(olid(HorizontalGridLineMask|VerticalGridLineMask)|equentialColumnAutoresizingStyle)|NoColumnAutoresizing|UniformColumnAutoresizingStyle|FirstColumnOnlyAutoresizingStyle|LastColumnOnlyAutoresizingStyle)))|rackModeMatrix)|I(n(sert(CharFunctionKey|FunctionKey|LineFunctionKey)|t(Type|ernalS(criptError|pecifierError))|dexSubelement|validIndexSpecifierError|formational(Request|AlertStyle)|PredicateOperatorType)|talicFontMask|SO(2022JPStringEncoding|Latin(1StringEncoding|2StringEncoding))|dentityMappingCharacterCollection|llegalTextMovement|mage(R(ight|ep(MatchesDevice|LoadStatus(ReadingHeader|Completed|InvalidData|Un(expectedEOF|knownType)|WillNeedAllData)))|Below|C(ellType|ache(BySize|Never|Default|Always))|Interpolation(High|None|Default|Low)|O(nly|verlaps)|Frame(Gr(oove|ayBezel)|Button|None|Photo)|L(oadStatus(ReadError|C(ompleted|ancelled)|InvalidData|UnexpectedEOF)|eft)|A(lign(Right|Bottom(Right|Left)?|Center|Top(Right|Left)?|Left)|bove)))|O(n(State|eByteGlyphPacking|OffButton|lyScrollerArrows)|ther(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|TextMovement)|SF1OperatingSystem|pe(n(GL(GO(Re(setLibrary|tainRenderers)|ClearFormatCache|FormatCacheSize)|PFA(R(obust|endererID)|M(inimumPolicy|ulti(sample|Screen)|PSafe|aximumPolicy)|BackingStore|S(creenMask|te(ncilSize|reo)|ingleRenderer|upersample|ample(s|Buffers|Alpha))|NoRecovery|C(o(lor(Size|Float)|mpliant)|losestPolicy)|OffScreen|D(oubleBuffer|epthSize)|PixelBuffer|VirtualScreenCount|FullScreen|Window|A(cc(umSize|elerated)|ux(Buffers|DepthStencil)|l(phaSize|lRenderers))))|StepUnicodeReservedBase)|rationNotSupportedForKeyS(criptError|pecifierError))|ffState|KButton|rPredicateType|bjC(B(itfield|oolType)|S(hortType|tr(ingType|uctType)|electorType)|NoType|CharType|ObjectType|DoubleType|UnionType|PointerType|VoidType|FloatType|Long(Type|longType)|ArrayType))|D(i(s(c(losureBezelStyle|reteCapacityLevelIndicatorStyle)|playWindowRunLoopOrdering)|acriticInsensitivePredicateOption|rect(Selection|PredicateModifier))|o(c(ModalWindowMask|ument(Directory|ationDirectory))|ubleType|wn(TextMovement|ArrowFunctionKey))|e(s(cendingPageOrder|ktopDirectory)|cimalTabStopType|v(ice(NColorSpaceModel|IndependentModifierFlagsMask)|eloper(Directory|ApplicationDirectory))|fault(ControlTint|TokenStyle)|lete(Char(acter|FunctionKey)|FunctionKey|LineFunctionKey)|moApplicationDirectory)|a(yCalendarUnit|teFormatter(MediumStyle|Behavior(10|Default)|ShortStyle|NoStyle|FullStyle|LongStyle))|ra(wer(Clos(ingState|edState)|Open(ingState|State))|gOperation(Generic|Move|None|Copy|Delete|Private|Every|Link|All)))|U(ser(CancelledError|D(irectory|omainMask)|FunctionKey)|RL(Handle(NotLoaded|Load(Succeeded|InProgress|Failed))|CredentialPersistence(None|Permanent|ForSession))|n(scaledWindowMask|cachedRead|i(codeStringEncoding|talicFontMask|fiedTitleAndToolbarWindowMask)|d(o(CloseGroupingRunLoopOrdering|FunctionKey)|e(finedDateComponent|rline(Style(Single|None|Thick|Double)|Pattern(Solid|D(ot|ash(Dot(Dot)?)?)))))|known(ColorSpaceModel|P(ointingDevice|ageOrder)|KeyS(criptError|pecifierError))|boldFontMask)|tilityWindowMask|TF8StringEncoding|p(dateWindowsRunLoopOrdering|TextMovement|ArrowFunctionKey))|J(ustifiedTextAlignment|PEG(2000FileType|FileType)|apaneseEUC(GlyphPacking|StringEncoding))|P(o(s(t(Now|erFontMask|WhenIdle|ASAP)|iti(on(Replace|Be(fore|ginning)|End|After)|ve(IntType|DoubleType|FloatType)))|pUp(NoArrow|ArrowAt(Bottom|Center))|werOffEventType|rtraitOrientation)|NGFileType|ush(InCell(Mask)?|OnPushOffButton)|e(n(TipMask|UpperSideMask|PointingDevice|LowerSideMask)|riodic(Mask)?)|P(S(caleField|tatus(Title|Field)|aveButton)|N(ote(Title|Field)|ame(Title|Field))|CopiesField|TitleField|ImageButton|OptionsButton|P(a(perFeedButton|ge(Range(To|From)|ChoiceMatrix))|reviewButton)|LayoutButton)|lainTextTokenStyle|a(useFunctionKey|ragraphSeparatorCharacter|ge(DownFunctionKey|UpFunctionKey))|r(int(ing(ReplyLater|Success|Cancelled|Failure)|ScreenFunctionKey|erTable(NotFound|OK|Error)|FunctionKey)|o(p(ertyList(XMLFormat|MutableContainers(AndLeaves)?|BinaryFormat|Immutable|OpenStepFormat)|rietaryStringEncoding)|gressIndicator(BarStyle|SpinningStyle|Preferred(SmallThickness|Thickness|LargeThickness|AquaThickness)))|e(ssedTab|vFunctionKey))|L(HeightForm|CancelButton|TitleField|ImageButton|O(KButton|rientationMatrix)|UnitsButton|PaperNameButton|WidthForm))|E(n(terCharacter|d(sWith(Comparison|PredicateOperatorType)|FunctionKey))|v(e(nOddWindingRule|rySubelement)|aluatedObjectExpressionType)|qualTo(Comparison|PredicateOperatorType)|ra(serPointingDevice|CalendarUnit|DatePickerElementFlag)|x(clude(10|QuickDrawElementsIconCreationOption)|pandedFontMask|ecuteFunctionKey))|V(i(ew(M(in(XMargin|YMargin)|ax(XMargin|YMargin))|HeightSizable|NotSizable|WidthSizable)|aPanelFontAction)|erticalRuler|a(lidationErrorM(inimum|aximum)|riableExpressionType))|Key(SpecifierEvaluationScriptError|Down(Mask)?|Up(Mask)?|PathExpressionType|Value(MinusSetMutation|SetSetMutation|Change(Re(placement|moval)|Setting|Insertion)|IntersectSetMutation|ObservingOption(New|Old)|UnionSetMutation|ValidationError))|QTMovie(NormalPlayback|Looping(BackAndForthPlayback|Playback))|F(1(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|7FunctionKey|i(nd(PanelAction(Replace(A(ndFind|ll(InSelection)?))?|S(howFindPanel|e(tFindString|lectAll(InSelection)?))|Next|Previous)|FunctionKey)|tPagination|le(Read(No(SuchFileError|PermissionError)|CorruptFileError|In(validFileNameError|applicableStringEncodingError)|Un(supportedSchemeError|knownError))|HandlingPanel(CancelButton|OKButton)|NoSuchFileError|ErrorM(inimum|aximum)|Write(NoPermissionError|In(validFileNameError|applicableStringEncodingError)|OutOfSpaceError|Un(supportedSchemeError|knownError))|LockingError)|xedPitchFontMask)|2(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|o(nt(Mo(noSpaceTrait|dernSerifsClass)|BoldTrait|S(ymbolicClass|criptsClass|labSerifsClass|ansSerifClass)|C(o(ndensedTrait|llectionApplicationOnlyMask)|larendonSerifsClass)|TransitionalSerifsClass|I(ntegerAdvancementsRenderingMode|talicTrait)|O(ldStyleSerifsClass|rnamentalsClass)|DefaultRenderingMode|U(nknownClass|IOptimizedTrait)|Panel(S(hadowEffectModeMask|t(andardModesMask|rikethroughEffectModeMask)|izeModeMask)|CollectionModeMask|TextColorEffectModeMask|DocumentColorEffectModeMask|UnderlineEffectModeMask|FaceModeMask|All(ModesMask|EffectsModeMask))|ExpandedTrait|VerticalTrait|F(amilyClassMask|reeformSerifsClass)|Antialiased(RenderingMode|IntegerAdvancementsRenderingMode))|cusRing(Below|Type(None|Default|Exterior)|Only|Above)|urByteGlyphPacking|rm(attingError(M(inimum|aximum))?|FeedCharacter))|8FunctionKey|unction(ExpressionType|KeyMask)|3(1FunctionKey|2FunctionKey|3FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey)|9FunctionKey|4FunctionKey|P(RevertButton|S(ize(Title|Field)|etButton)|CurrentField|Preview(Button|Field))|l(oat(ingPointSamplesBitmapFormat|Type)|agsChanged(Mask)?)|axButton|5FunctionKey|6FunctionKey)|W(heelModeColorPanel|indow(s(NTOperatingSystem|CP125(1StringEncoding|2StringEncoding|3StringEncoding|4StringEncoding|0StringEncoding)|95(InterfaceStyle|OperatingSystem))|M(iniaturizeButton|ovedEventType)|Below|CloseButton|ToolbarButton|ZoomButton|Out|DocumentIconButton|ExposedEventType|Above)|orkspaceLaunch(NewInstance|InhibitingBackgroundOnly|Default|PreferringClassic|WithoutA(ctivation|ddingToRecents)|A(sync|nd(Hide(Others)?|Print)|llowingClassicStartup))|eek(day(CalendarUnit|OrdinalCalendarUnit)|CalendarUnit)|a(ntsBidiLevels|rningAlertStyle)|r(itingDirection(RightToLeft|Natural|LeftToRight)|apCalendarComponents))|L(i(stModeMatrix|ne(Moves(Right|Down|Up|Left)|B(order|reakBy(C(harWrapping|lipping)|Truncating(Middle|Head|Tail)|WordWrapping))|S(eparatorCharacter|weep(Right|Down|Up|Left))|ToBezierPathElement|DoesntMove|arSlider)|teralSearch|kePredicateOperatorType|ghterFontAction|braryDirectory)|ocalDomainMask|e(ssThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|ft(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey))|a(yout(RightToLeft|NotDone|CantFit|OutOfGlyphs|Done|LeftToRight)|ndscapeOrientation)|ABColorSpaceModel)|A(sc(iiWithDoubleByteEUCGlyphPacking|endingPageOrder)|n(y(Type|PredicateModifier|EventMask)|choredSearch|imation(Blocking|Nonblocking(Threaded)?|E(ffect(DisappearingItemDefault|Poof)|ase(In(Out)?|Out))|Linear)|dPredicateType)|t(Bottom|tachmentCharacter|omicWrite|Top)|SCIIStringEncoding|d(obe(GB1CharacterCollection|CNS1CharacterCollection|Japan(1CharacterCollection|2CharacterCollection)|Korea1CharacterCollection)|dTraitFontAction|minApplicationDirectory)|uto(saveOperation|Pagination)|pp(lication(SupportDirectory|D(irectory|e(fined(Mask)?|legateReply(Success|Cancel|Failure)|activatedEventType))|ActivatedEventType)|KitDefined(Mask)?)|l(ternateKeyMask|pha(ShiftKeyMask|NonpremultipliedBitmapFormat|FirstBitmapFormat)|ert(SecondButtonReturn|ThirdButtonReturn|OtherReturn|DefaultReturn|ErrorReturn|FirstButtonReturn|AlternateReturn)|l(ScrollerParts|DomainsMask|PredicateModifier|LibrariesDirectory|ApplicationsDirectory))|rgument(sWrongScriptError|EvaluationScriptError)|bove(Bottom|Top)|WTEventType))\\\\\\\\b\",\"name\":\"support.constant.cocoa.objc\"},\"anonymous_pattern_4\":{\"begin\":\"\\\\\\\\b(id)\\\\\\\\s*(?=<)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.objc\"}},\"end\":\"(?<=>)\",\"name\":\"meta.id-with-protocol.objc\",\"patterns\":[{\"include\":\"#protocol_list\"}]},\"anonymous_pattern_5\":{\"match\":\"\\\\\\\\b(NS_DURING|NS_HANDLER|NS_ENDHANDLER)\\\\\\\\b\",\"name\":\"keyword.control.macro.objc\"},\"anonymous_pattern_7\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.keyword.objc\"}},\"match\":\"(@)(try|catch|finally|throw)\\\\\\\\b\",\"name\":\"keyword.control.exception.objc\"},\"anonymous_pattern_8\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.keyword.objc\"}},\"match\":\"(@)(synchronized)\\\\\\\\b\",\"name\":\"keyword.control.synchronize.objc\"},\"anonymous_pattern_9\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.keyword.objc\"}},\"match\":\"(@)(required|optional)\\\\\\\\b\",\"name\":\"keyword.control.protocol-specification.objc\"},\"apple_foundation_functional_macros\":{\"begin\":\"(\\\\\\\\b(?:API_AVAILABLE|API_DEPRECATED|API_UNAVAILABLE|NS_AVAILABLE|NS_AVAILABLE_MAC|NS_AVAILABLE_IOS|NS_DEPRECATED|NS_DEPRECATED_MAC|NS_DEPRECATED_IOS|NS_SWIFT_NAME))(?:(?:\\\\\\\\s)+)?(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.preprocessor.apple-foundation.objc\"},\"2\":{\"name\":\"punctuation.section.macro.arguments.begin.bracket.round.apple-foundation.objc\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.macro.arguments.end.bracket.round.apple-foundation.objc\"}},\"name\":\"meta.preprocessor.macro.callable.apple-foundation.objc\",\"patterns\":[{\"include\":\"#c_lang\"}]},\"bracketed_content\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.scope.begin.objc\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.scope.end.objc\"}},\"name\":\"meta.bracketed.objc\",\"patterns\":[{\"begin\":\"(?=predicateWithFormat:)(?<=NSPredicate )(predicateWithFormat:)\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.any-method.objc\"},\"2\":{\"name\":\"punctuation.separator.arguments.objc\"}},\"end\":\"(?=\\\\\\\\])\",\"name\":\"meta.function-call.predicate.objc\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.arguments.objc\"}},\"match\":\"\\\\\\\\bargument(Array|s)(:)\",\"name\":\"support.function.any-method.name-of-parameter.objc\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.arguments.objc\"}},\"match\":\"\\\\\\\\b\\\\\\\\w+(:)\",\"name\":\"invalid.illegal.unknown-method.objc\"},{\"begin\":\"@\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objc\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objc\"}},\"name\":\"string.quoted.double.objc\",\"patterns\":[{\"match\":\"\\\\\\\\b(AND|OR|NOT|IN)\\\\\\\\b\",\"name\":\"keyword.operator.logical.predicate.cocoa.objc\"},{\"match\":\"\\\\\\\\b(ALL|ANY|SOME|NONE)\\\\\\\\b\",\"name\":\"constant.language.predicate.cocoa.objc\"},{\"match\":\"\\\\\\\\b(NULL|NIL|SELF|TRUE|YES|FALSE|NO|FIRST|LAST|SIZE)\\\\\\\\b\",\"name\":\"constant.language.predicate.cocoa.objc\"},{\"match\":\"\\\\\\\\b(MATCHES|CONTAINS|BEGINSWITH|ENDSWITH|BETWEEN)\\\\\\\\b\",\"name\":\"keyword.operator.comparison.predicate.cocoa.objc\"},{\"match\":\"\\\\\\\\bC(ASEINSENSITIVE|I)\\\\\\\\b\",\"name\":\"keyword.other.modifier.predicate.cocoa.objc\"},{\"match\":\"\\\\\\\\b(ANYKEY|SUBQUERY|CAST|TRUEPREDICATE|FALSEPREDICATE)\\\\\\\\b\",\"name\":\"keyword.other.predicate.cocoa.objc\"},{\"match\":\"\\\\\\\\\\\\\\\\(\\\\\\\\\\\\\\\\|[abefnrtv'\\\\\"?]|[0-3]\\\\\\\\d{,2}|[4-7]\\\\\\\\d?|x[a-zA-Z0-9]+)\",\"name\":\"constant.character.escape.objc\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"invalid.illegal.unknown-escape.objc\"}]},{\"include\":\"#special_variables\"},{\"include\":\"#c_functions\"},{\"include\":\"$base\"}]},{\"begin\":\"(?=\\\\\\\\w)(?<=[\\\\\\\\w\\\\\\\\])\\\\\"] )(\\\\\\\\w+(?:(:)|(?=\\\\\\\\])))\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.any-method.objc\"},\"2\":{\"name\":\"punctuation.separator.arguments.objc\"}},\"end\":\"(?=\\\\\\\\])\",\"name\":\"meta.function-call.objc\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.arguments.objc\"}},\"match\":\"\\\\\\\\b\\\\\\\\w+(:)\",\"name\":\"support.function.any-method.name-of-parameter.objc\"},{\"include\":\"#special_variables\"},{\"include\":\"#c_functions\"},{\"include\":\"$base\"}]},{\"include\":\"#special_variables\"},{\"include\":\"#c_functions\"},{\"include\":\"$self\"}]},\"c_functions\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.whitespace.support.function.leading.objc\"},\"2\":{\"name\":\"support.function.C99.objc\"}},\"match\":\"(\\\\\\\\s*)\\\\\\\\b(hypot(f|l)?|s(scanf|ystem|nprintf|ca(nf|lb(n(f|l)?|ln(f|l)?))|i(n(h(f|l)?|f|l)?|gn(al|bit))|tr(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(jmp|vbuf|locale|buf)|qrt(f|l)?|w(scanf|printf)|rand)|n(e(arbyint(f|l)?|xt(toward(f|l)?|after(f|l)?))|an(f|l)?)|c(s(in(h(f|l)?|f|l)?|qrt(f|l)?)|cos(h(f)?|f|l)?|imag(f|l)?|t(ime|an(h(f|l)?|f|l)?)|o(s(h(f|l)?|f|l)?|nj(f|l)?|pysign(f|l)?)|p(ow(f|l)?|roj(f|l)?)|e(il(f|l)?|xp(f|l)?)|l(o(ck|g(f|l)?)|earerr)|a(sin(h(f|l)?|f|l)?|cos(h(f|l)?|f|l)?|tan(h(f|l)?|f|l)?|lloc|rg(f|l)?|bs(f|l)?)|real(f|l)?|brt(f|l)?)|t(ime|o(upper|lower)|an(h(f|l)?|f|l)?|runc(f|l)?|gamma(f|l)?|mp(nam|file))|i(s(space|n(ormal|an)|cntrl|inf|digit|u(nordered|pper)|p(unct|rint)|finite|w(space|c(ntrl|type)|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit|blank)|l(ower|ess(equal|greater)?)|al(num|pha)|gr(eater(equal)?|aph)|xdigit|blank)|logb(f|l)?|max(div|abs))|di(v|fftime)|_Exit|unget(c|wc)|p(ow(f|l)?|ut(s|c(har)?|wc(har)?)|error|rintf)|e(rf(c(f|l)?|f|l)?|x(it|p(2(f|l)?|f|l|m1(f|l)?)?))|v(s(scanf|nprintf|canf|printf|w(scanf|printf))|printf|f(scanf|printf|w(scanf|printf))|w(scanf|printf)|a_(start|copy|end|arg))|qsort|f(s(canf|e(tpos|ek))|close|tell|open|dim(f|l)?|p(classify|ut(s|c|w(s|c))|rintf)|e(holdexcept|set(e(nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(aiseexcept|ror)|get(e(nv|xceptflag)|round))|flush|w(scanf|ide|printf|rite)|loor(f|l)?|abs(f|l)?|get(s|c|pos|w(s|c))|re(open|e|ad|xp(f|l)?)|m(in(f|l)?|od(f|l)?|a(f|l|x(f|l)?)?))|l(d(iv|exp(f|l)?)|o(ngjmp|cal(time|econv)|g(1(p(f|l)?|0(f|l)?)|2(f|l)?|f|l|b(f|l)?)?)|abs|l(div|abs|r(int(f|l)?|ound(f|l)?))|r(int(f|l)?|ound(f|l)?)|gamma(f|l)?)|w(scanf|c(s(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?|mbs)|pbrk|ftime|len|r(chr|tombs)|xfrm)|to(b|mb)|rtomb)|printf|mem(set|c(hr|py|mp)|move))|a(s(sert|ctime|in(h(f|l)?|f|l)?)|cos(h(f|l)?|f|l)?|t(o(i|f|l(l)?)|exit|an(h(f|l)?|2(f|l)?|f|l)?)|b(s|ort))|g(et(s|c(har)?|env|wc(har)?)|mtime)|r(int(f|l)?|ound(f|l)?|e(name|alloc|wind|m(ove|quo(f|l)?|ainder(f|l)?))|a(nd|ise))|b(search|towc)|m(odf(f|l)?|em(set|c(hr|py|mp)|move)|ktime|alloc|b(s(init|towcs|rtowcs)|towc|len|r(towc|len))))\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"punctuation.whitespace.function-call.leading.objc\"},\"2\":{\"name\":\"support.function.any-method.objc\"},\"3\":{\"name\":\"punctuation.definition.parameters.objc\"}},\"match\":\"(?:(?=\\\\\\\\s)(?:(?<=else|new|return)|(?<!\\\\\\\\w))(\\\\\\\\s+))?(\\\\\\\\b(?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\\\\\\\s*\\\\\\\\()(?:(?!NS)[A-Za-z_][A-Za-z0-9_]*+\\\\\\\\b|::)++)\\\\\\\\s*(\\\\\\\\()\",\"name\":\"meta.function-call.objc\"}]},\"c_lang\":{\"patterns\":[{\"include\":\"#preprocessor-rule-enabled\"},{\"include\":\"#preprocessor-rule-disabled\"},{\"include\":\"#preprocessor-rule-conditional\"},{\"include\":\"#comments\"},{\"include\":\"#switch_statement\"},{\"match\":\"\\\\\\\\b(break|continue|do|else|for|goto|if|_Pragma|return|while)\\\\\\\\b\",\"name\":\"keyword.control.objc\"},{\"include\":\"#storage_types\"},{\"match\":\"typedef\",\"name\":\"keyword.other.typedef.objc\"},{\"match\":\"\\\\\\\\bin\\\\\\\\b\",\"name\":\"keyword.other.in.objc\"},{\"match\":\"\\\\\\\\b(const|extern|register|restrict|static|volatile|inline|__block)\\\\\\\\b\",\"name\":\"storage.modifier.objc\"},{\"match\":\"\\\\\\\\bk[A-Z]\\\\\\\\w*\\\\\\\\b\",\"name\":\"constant.other.variable.mac-classic.objc\"},{\"match\":\"\\\\\\\\bg[A-Z]\\\\\\\\w*\\\\\\\\b\",\"name\":\"variable.other.readwrite.global.mac-classic.objc\"},{\"match\":\"\\\\\\\\bs[A-Z]\\\\\\\\w*\\\\\\\\b\",\"name\":\"variable.other.readwrite.static.mac-classic.objc\"},{\"match\":\"\\\\\\\\b(NULL|true|false|TRUE|FALSE)\\\\\\\\b\",\"name\":\"constant.language.objc\"},{\"include\":\"#operators\"},{\"include\":\"#numbers\"},{\"include\":\"#strings\"},{\"include\":\"#special_variables\"},{\"begin\":\"^\\\\\\\\s*((\\\\\\\\#)\\\\\\\\s*define)\\\\\\\\s+((?<id>[a-zA-Z_$][\\\\\\\\w$]*))(?:(\\\\\\\\()(\\\\\\\\s*\\\\\\\\g<id>\\\\\\\\s*((,)\\\\\\\\s*\\\\\\\\g<id>\\\\\\\\s*)*(?:\\\\\\\\.\\\\\\\\.\\\\\\\\.)?)(\\\\\\\\)))?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.define.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"},\"3\":{\"name\":\"entity.name.function.preprocessor.objc\"},\"5\":{\"name\":\"punctuation.definition.parameters.begin.objc\"},\"6\":{\"name\":\"variable.parameter.preprocessor.objc\"},\"8\":{\"name\":\"punctuation.separator.parameters.objc\"},\"9\":{\"name\":\"punctuation.definition.parameters.end.objc\"}},\"end\":\"(?=(?://|/\\\\\\\\*))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.macro.objc\",\"patterns\":[{\"include\":\"#preprocessor-rule-define-line-contents\"}]},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*(error|warning))\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.diagnostic.$3.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"end\":\"(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.diagnostic.objc\",\"patterns\":[{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objc\"}},\"end\":\"\\\\\"|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objc\"}},\"name\":\"string.quoted.double.objc\",\"patterns\":[{\"include\":\"#line_continuation_character\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objc\"}},\"end\":\"'|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objc\"}},\"name\":\"string.quoted.single.objc\",\"patterns\":[{\"include\":\"#line_continuation_character\"}]},{\"begin\":\"[^'\\\\\"]\",\"end\":\"(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"name\":\"string.unquoted.single.objc\",\"patterns\":[{\"include\":\"#line_continuation_character\"},{\"include\":\"#comments\"}]}]},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*(include(?:_next)?|import))\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.$3.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"end\":\"(?=(?://|/\\\\\\\\*))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.include.objc\",\"patterns\":[{\"include\":\"#line_continuation_character\"},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objc\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objc\"}},\"name\":\"string.quoted.double.include.objc\"},{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objc\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objc\"}},\"name\":\"string.quoted.other.lt-gt.include.objc\"}]},{\"include\":\"#pragma-mark\"},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*line)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.line.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"end\":\"(?=(?://|/\\\\\\\\*))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objc\",\"patterns\":[{\"include\":\"#strings\"},{\"include\":\"#numbers\"},{\"include\":\"#line_continuation_character\"}]},{\"begin\":\"^\\\\\\\\s*(?:((#)\\\\\\\\s*undef))\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.undef.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"end\":\"(?=(?://|/\\\\\\\\*))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objc\",\"patterns\":[{\"match\":\"[a-zA-Z_$][\\\\\\\\w$]*\",\"name\":\"entity.name.function.preprocessor.objc\"},{\"include\":\"#line_continuation_character\"}]},{\"begin\":\"^\\\\\\\\s*(?:((#)\\\\\\\\s*pragma))\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.pragma.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"end\":\"(?=(?://|/\\\\\\\\*))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.pragma.objc\",\"patterns\":[{\"include\":\"#strings\"},{\"match\":\"[a-zA-Z_$][\\\\\\\\w\\\\\\\\-$]*\",\"name\":\"entity.other.attribute-name.pragma.preprocessor.objc\"},{\"include\":\"#numbers\"},{\"include\":\"#line_continuation_character\"}]},{\"match\":\"\\\\\\\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\\\\\\\b\",\"name\":\"support.type.sys-types.objc\"},{\"match\":\"\\\\\\\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\\\\\\\b\",\"name\":\"support.type.pthread.objc\"},{\"match\":\"\\\\\\\\b(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t)\\\\\\\\b\",\"name\":\"support.type.stdint.objc\"},{\"match\":\"\\\\\\\\b(noErr|kNilOptions|kInvalidID|kVariableLengthArray)\\\\\\\\b\",\"name\":\"support.constant.mac-classic.objc\"},{\"match\":\"\\\\\\\\b(AbsoluteTime|Boolean|Byte|ByteCount|ByteOffset|BytePtr|CompTimeValue|ConstLogicalAddress|ConstStrFileNameParam|ConstStringPtr|Duration|Fixed|FixedPtr|Float32|Float32Point|Float64|Float80|Float96|FourCharCode|Fract|FractPtr|Handle|ItemCount|LogicalAddress|OptionBits|OSErr|OSStatus|OSType|OSTypePtr|PhysicalAddress|ProcessSerialNumber|ProcessSerialNumberPtr|ProcHandle|Ptr|ResType|ResTypePtr|ShortFixed|ShortFixedPtr|SignedByte|SInt16|SInt32|SInt64|SInt8|Size|StrFileName|StringHandle|StringPtr|TimeBase|TimeRecord|TimeScale|TimeValue|TimeValue64|UInt16|UInt32|UInt64|UInt8|UniChar|UniCharCount|UniCharCountPtr|UniCharPtr|UnicodeScalarValue|UniversalProcHandle|UniversalProcPtr|UnsignedFixed|UnsignedFixedPtr|UnsignedWide|UTF16Char|UTF32Char|UTF8Char)\\\\\\\\b\",\"name\":\"support.type.mac-classic.objc\"},{\"match\":\"\\\\\\\\b([A-Za-z0-9_]+_t)\\\\\\\\b\",\"name\":\"support.type.posix-reserved.objc\"},{\"include\":\"#block\"},{\"include\":\"#parens\"},{\"begin\":\"(?<!\\\\\\\\w)(?!\\\\\\\\s*(?:not|compl|sizeof|not_eq|bitand|xor|bitor|and|or|and_eq|xor_eq|or_eq|alignof|alignas|_Alignof|_Alignas|while|for|do|if|else|goto|switch|return|break|case|continue|default|void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|NULL|true|false|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t|struct|union|enum|typedef|auto|register|static|extern|thread_local|inline|_Noreturn|const|volatile|restrict|_Atomic)\\\\\\\\s*\\\\\\\\()(?=[a-zA-Z_]\\\\\\\\w*\\\\\\\\s*\\\\\\\\()\",\"end\":\"(?<=\\\\\\\\))\",\"name\":\"meta.function.objc\",\"patterns\":[{\"include\":\"#function-innards\"}]},{\"include\":\"#line_continuation_character\"},{\"begin\":\"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\\\\\\\]\\\\\\\\)]))?(\\\\\\\\[)(?!\\\\\\\\])\",\"beginCaptures\":{\"1\":{\"name\":\"variable.object.objc\"},\"2\":{\"name\":\"punctuation.definition.begin.bracket.square.objc\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.square.objc\"}},\"name\":\"meta.bracket.square.access.objc\",\"patterns\":[{\"include\":\"#function-call-innards\"}]},{\"match\":\"\\\\\\\\[\\\\\\\\s*\\\\\\\\]\",\"name\":\"storage.modifier.array.bracket.square.objc\"},{\"match\":\";\",\"name\":\"punctuation.terminator.statement.objc\"},{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.objc\"}],\"repository\":{\"access-method\":{\"begin\":\"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\\\\\\\]\\\\\\\\)]))\\\\\\\\s*(?:(\\\\\\\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\\\\\\\s*(?:(?:\\\\\\\\.)|(?:->)))*)\\\\\\\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"variable.object.objc\"},\"2\":{\"name\":\"punctuation.separator.dot-access.objc\"},\"3\":{\"name\":\"punctuation.separator.pointer-access.objc\"},\"4\":{\"patterns\":[{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.separator.dot-access.objc\"},{\"match\":\"->\",\"name\":\"punctuation.separator.pointer-access.objc\"},{\"match\":\"[a-zA-Z_][a-zA-Z_0-9]*\",\"name\":\"variable.object.objc\"},{\"match\":\".+\",\"name\":\"everything.else.objc\"}]},\"5\":{\"name\":\"entity.name.function.member.objc\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.function.member.objc\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.function.member.objc\"}},\"name\":\"meta.function-call.member.objc\",\"patterns\":[{\"include\":\"#function-call-innards\"}]},\"block\":{\"patterns\":[{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.objc\"}},\"end\":\"}|(?=\\\\\\\\s*#\\\\\\\\s*(?:elif|else|endif)\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.objc\"}},\"name\":\"meta.block.objc\",\"patterns\":[{\"include\":\"#block_innards\"}]}]},\"block_innards\":{\"patterns\":[{\"include\":\"#preprocessor-rule-enabled-block\"},{\"include\":\"#preprocessor-rule-disabled-block\"},{\"include\":\"#preprocessor-rule-conditional-block\"},{\"include\":\"#method_access\"},{\"include\":\"#member_access\"},{\"include\":\"#c_function_call\"},{\"begin\":\"(?:(?:(?=\\\\\\\\s)(?<!else|new|return)(?<=\\\\\\\\w)\\\\\\\\s+(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)))((?:[A-Za-z_][A-Za-z0-9_]*+|::)++|(?:(?<=operator)(?:[-*&<>=+!]+|\\\\\\\\(\\\\\\\\)|\\\\\\\\[\\\\\\\\])))\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.objc\"},\"2\":{\"name\":\"punctuation.section.parens.begin.bracket.round.initialization.objc\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.initialization.objc\"}},\"name\":\"meta.initialization.objc\",\"patterns\":[{\"include\":\"#function-call-innards\"}]},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.objc\"}},\"end\":\"}|(?=\\\\\\\\s*#\\\\\\\\s*(?:elif|else|endif)\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.objc\"}},\"patterns\":[{\"include\":\"#block_innards\"}]},{\"include\":\"#parens-block\"},{\"include\":\"$base\"}]},\"c_function_call\":{\"begin\":\"(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\\\\\\\s*\\\\\\\\()(?=(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\\\\\\\s*\\\\\\\\(|(?:(?<=operator)(?:[-*&<>=+!]+|\\\\\\\\(\\\\\\\\)|\\\\\\\\[\\\\\\\\]))\\\\\\\\s*\\\\\\\\()\",\"end\":\"(?<=\\\\\\\\))(?!\\\\\\\\w)\",\"name\":\"meta.function-call.objc\",\"patterns\":[{\"include\":\"#function-call-innards\"}]},\"case_statement\":{\"begin\":\"((?<!\\\\\\\\w)case(?!\\\\\\\\w))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.case.objc\"}},\"end\":\"(:)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.case.objc\"}},\"name\":\"meta.conditional.case.objc\",\"patterns\":[{\"include\":\"#conditional_context\"}]},\"comments\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"meta.toc-list.banner.block.objc\"}},\"match\":\"^/\\\\\\\\* =(\\\\\\\\s*.*?)\\\\\\\\s*= \\\\\\\\*/$\\\\\\\\n?\",\"name\":\"comment.block.objc\"},{\"begin\":\"/\\\\\\\\*\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.objc\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.objc\"}},\"name\":\"comment.block.objc\"},{\"captures\":{\"1\":{\"name\":\"meta.toc-list.banner.line.objc\"}},\"match\":\"^// =(\\\\\\\\s*.*?)\\\\\\\\s*=\\\\\\\\s*$\\\\\\\\n?\",\"name\":\"comment.line.banner.objc\"},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=//)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.objc\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.objc\"}},\"end\":\"(?=\\\\\\\\n)\",\"name\":\"comment.line.double-slash.objc\",\"patterns\":[{\"include\":\"#line_continuation_character\"}]}]}]},\"conditional_context\":{\"patterns\":[{\"include\":\"$base\"},{\"include\":\"#block_innards\"}]},\"default_statement\":{\"begin\":\"((?<!\\\\\\\\w)default(?!\\\\\\\\w))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.default.objc\"}},\"end\":\"(:)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.case.default.objc\"}},\"name\":\"meta.conditional.case.objc\",\"patterns\":[{\"include\":\"#conditional_context\"}]},\"disabled\":{\"begin\":\"^\\\\\\\\s*#\\\\\\\\s*if(n?def)?\\\\\\\\b.*$\",\"end\":\"^\\\\\\\\s*#\\\\\\\\s*endif\\\\\\\\b\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},\"function-call-innards\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#storage_types\"},{\"include\":\"#method_access\"},{\"include\":\"#member_access\"},{\"include\":\"#operators\"},{\"begin\":\"(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\\\\\\\s*\\\\\\\\()((?:[A-Za-z_][A-Za-z0-9_]*+|::)++|(?:(?<=operator)(?:[-*&<>=+!]+|\\\\\\\\(\\\\\\\\)|\\\\\\\\[\\\\\\\\])))\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.objc\"},\"2\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.objc\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.objc\"}},\"patterns\":[{\"include\":\"#function-call-innards\"}]},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.objc\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.objc\"}},\"patterns\":[{\"include\":\"#function-call-innards\"}]},{\"include\":\"#block_innards\"}]},\"function-innards\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#storage_types\"},{\"include\":\"#operators\"},{\"include\":\"#vararg_ellipses\"},{\"begin\":\"(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\\\\\\\s*\\\\\\\\()((?:[A-Za-z_][A-Za-z0-9_]*+|::)++|(?:(?<=operator)(?:[-*&<>=+!]+|\\\\\\\\(\\\\\\\\)|\\\\\\\\[\\\\\\\\])))\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.objc\"},\"2\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.objc\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.end.bracket.round.objc\"}},\"name\":\"meta.function.definition.parameters.objc\",\"patterns\":[{\"include\":\"#probably_a_parameter\"},{\"include\":\"#function-innards\"}]},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.objc\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.objc\"}},\"patterns\":[{\"include\":\"#function-innards\"}]},{\"include\":\"$base\"}]},\"line_continuation_character\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.character.escape.line-continuation.objc\"}},\"match\":\"(\\\\\\\\\\\\\\\\)\\\\\\\\n\"}]},\"member_access\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#special_variables\"},{\"match\":\"(.+)\",\"name\":\"variable.other.object.access.objc\"}]},\"2\":{\"name\":\"punctuation.separator.dot-access.objc\"},\"3\":{\"name\":\"punctuation.separator.pointer-access.objc\"},\"4\":{\"patterns\":[{\"include\":\"#member_access\"},{\"include\":\"#method_access\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#special_variables\"},{\"match\":\"(.+)\",\"name\":\"variable.other.object.access.objc\"}]},\"2\":{\"name\":\"punctuation.separator.dot-access.objc\"},\"3\":{\"name\":\"punctuation.separator.pointer-access.objc\"}},\"match\":\"((?:[a-zA-Z_]\\\\\\\\w*|(?<=\\\\\\\\]|\\\\\\\\)))\\\\\\\\s*)(?:((?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.))|((?:->\\\\\\\\*|->)))\"}]},\"5\":{\"name\":\"variable.other.member.objc\"}},\"match\":\"((?:[a-zA-Z_]\\\\\\\\w*|(?<=\\\\\\\\]|\\\\\\\\)))\\\\\\\\s*)(?:((?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.))|((?:->\\\\\\\\*|->)))((?:[a-zA-Z_]\\\\\\\\w*\\\\\\\\s*(?-mix:(?:(?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.))|(?:(?:->\\\\\\\\*|->)))\\\\\\\\s*)*)\\\\\\\\s*(\\\\\\\\b(?!(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t))[a-zA-Z_]\\\\\\\\w*\\\\\\\\b(?!\\\\\\\\())\"},\"method_access\":{\"begin\":\"((?:[a-zA-Z_]\\\\\\\\w*|(?<=\\\\\\\\]|\\\\\\\\)))\\\\\\\\s*)(?:((?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.))|((?:->\\\\\\\\*|->)))((?:[a-zA-Z_]\\\\\\\\w*\\\\\\\\s*(?-mix:(?:(?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.))|(?:(?:->\\\\\\\\*|->)))\\\\\\\\s*)*)\\\\\\\\s*([a-zA-Z_]\\\\\\\\w*)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#special_variables\"},{\"match\":\"(.+)\",\"name\":\"variable.other.object.access.objc\"}]},\"2\":{\"name\":\"punctuation.separator.dot-access.objc\"},\"3\":{\"name\":\"punctuation.separator.pointer-access.objc\"},\"4\":{\"patterns\":[{\"include\":\"#member_access\"},{\"include\":\"#method_access\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#special_variables\"},{\"match\":\"(.+)\",\"name\":\"variable.other.object.access.objc\"}]},\"2\":{\"name\":\"punctuation.separator.dot-access.objc\"},\"3\":{\"name\":\"punctuation.separator.pointer-access.objc\"}},\"match\":\"((?:[a-zA-Z_]\\\\\\\\w*|(?<=\\\\\\\\]|\\\\\\\\)))\\\\\\\\s*)(?:((?:\\\\\\\\.\\\\\\\\*|\\\\\\\\.))|((?:->\\\\\\\\*|->)))\"}]},\"5\":{\"name\":\"entity.name.function.member.objc\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.function.member.objc\"}},\"contentName\":\"meta.function-call.member.objc\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.arguments.end.bracket.round.function.member.objc\"}},\"patterns\":[{\"include\":\"#function-call-innards\"}]},\"numbers\":{\"begin\":\"(?<!\\\\\\\\w)(?=\\\\\\\\d|\\\\\\\\.\\\\\\\\d)\",\"end\":\"(?!(?:['0-9a-zA-Z_\\\\\\\\.']|(?<=[eEpP])[+-]))\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.hexadecimal.objc\"},\"2\":{\"name\":\"constant.numeric.hexadecimal.objc\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.objc\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.objc\"},\"4\":{\"name\":\"constant.numeric.hexadecimal.objc\"},\"5\":{\"name\":\"constant.numeric.hexadecimal.objc\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.objc\"}]},\"6\":{\"name\":\"punctuation.separator.constant.numeric.objc\"},\"8\":{\"name\":\"keyword.other.unit.exponent.hexadecimal.objc\"},\"9\":{\"name\":\"keyword.operator.plus.exponent.hexadecimal.objc\"},\"10\":{\"name\":\"keyword.operator.minus.exponent.hexadecimal.objc\"},\"11\":{\"name\":\"constant.numeric.exponent.hexadecimal.objc\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.objc\"}]},\"12\":{\"name\":\"keyword.other.unit.suffix.floating-point.objc\"}},\"match\":\"(\\\\\\\\G0[xX])(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9a-fA-F])\\\\\\\\.|\\\\\\\\.(?=[0-9a-fA-F])))(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([pP])(\\\\\\\\+)?(\\\\\\\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\\\\\\\w)))?(?!(?:['0-9a-zA-Z_\\\\\\\\.']|(?<=[eEpP])[+-]))\"},{\"captures\":{\"2\":{\"name\":\"constant.numeric.decimal.objc\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.objc\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.objc\"},\"4\":{\"name\":\"constant.numeric.decimal.point.objc\"},\"5\":{\"name\":\"constant.numeric.decimal.objc\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.objc\"}]},\"6\":{\"name\":\"punctuation.separator.constant.numeric.objc\"},\"8\":{\"name\":\"keyword.other.unit.exponent.decimal.objc\"},\"9\":{\"name\":\"keyword.operator.plus.exponent.decimal.objc\"},\"10\":{\"name\":\"keyword.operator.minus.exponent.decimal.objc\"},\"11\":{\"name\":\"constant.numeric.exponent.decimal.objc\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.objc\"}]},\"12\":{\"name\":\"keyword.other.unit.suffix.floating-point.objc\"}},\"match\":\"(\\\\\\\\G(?=[0-9.])(?!0[xXbB]))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9])\\\\\\\\.|\\\\\\\\.(?=[0-9])))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([eE])(\\\\\\\\+)?(\\\\\\\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\\\\\\\w)))?(?!(?:['0-9a-zA-Z_\\\\\\\\.']|(?<=[eEpP])[+-]))\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.binary.objc\"},\"2\":{\"name\":\"constant.numeric.binary.objc\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.objc\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.objc\"},\"4\":{\"name\":\"keyword.other.unit.suffix.integer.objc\"}},\"match\":\"(\\\\\\\\G0[bB])([01](?:(?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\\\\\\\w)))?(?!(?:['0-9a-zA-Z_\\\\\\\\.']|(?<=[eEpP])[+-]))\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.octal.objc\"},\"2\":{\"name\":\"constant.numeric.octal.objc\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.objc\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.objc\"},\"4\":{\"name\":\"keyword.other.unit.suffix.integer.objc\"}},\"match\":\"(\\\\\\\\G0)((?:(?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))+)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\\\\\\\w)))?(?!(?:['0-9a-zA-Z_\\\\\\\\.']|(?<=[eEpP])[+-]))\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.unit.hexadecimal.objc\"},\"2\":{\"name\":\"constant.numeric.hexadecimal.objc\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.objc\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.objc\"},\"5\":{\"name\":\"keyword.other.unit.exponent.hexadecimal.objc\"},\"6\":{\"name\":\"keyword.operator.plus.exponent.hexadecimal.objc\"},\"7\":{\"name\":\"keyword.operator.minus.exponent.hexadecimal.objc\"},\"8\":{\"name\":\"constant.numeric.exponent.hexadecimal.objc\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.objc\"}]},\"9\":{\"name\":\"keyword.other.unit.suffix.integer.objc\"}},\"match\":\"(\\\\\\\\G0[xX])([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([pP])(\\\\\\\\+)?(\\\\\\\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\\\\\\\w)))?(?!(?:['0-9a-zA-Z_\\\\\\\\.']|(?<=[eEpP])[+-]))\"},{\"captures\":{\"2\":{\"name\":\"constant.numeric.decimal.objc\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.objc\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.objc\"},\"5\":{\"name\":\"keyword.other.unit.exponent.decimal.objc\"},\"6\":{\"name\":\"keyword.operator.plus.exponent.decimal.objc\"},\"7\":{\"name\":\"keyword.operator.minus.exponent.decimal.objc\"},\"8\":{\"name\":\"constant.numeric.exponent.decimal.objc\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.objc\"}]},\"9\":{\"name\":\"keyword.other.unit.suffix.integer.objc\"}},\"match\":\"(\\\\\\\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([eE])(\\\\\\\\+)?(\\\\\\\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\\\\\\\w)))?(?!(?:['0-9a-zA-Z_\\\\\\\\.']|(?<=[eEpP])[+-]))\"},{\"match\":\"(?:(?:['0-9a-zA-Z_\\\\\\\\.']|(?<=[eEpP])[+-]))+\",\"name\":\"invalid.illegal.constant.numeric.objc\"}]},\"operators\":{\"patterns\":[{\"match\":\"(?<![\\\\\\\\w$])(sizeof)(?![\\\\\\\\w$])\",\"name\":\"keyword.operator.sizeof.objc\"},{\"match\":\"--\",\"name\":\"keyword.operator.decrement.objc\"},{\"match\":\"\\\\\\\\+\\\\\\\\+\",\"name\":\"keyword.operator.increment.objc\"},{\"match\":\"%=|\\\\\\\\+=|-=|\\\\\\\\*=|(?<!\\\\\\\\()/=\",\"name\":\"keyword.operator.assignment.compound.objc\"},{\"match\":\"&=|\\\\\\\\^=|<<=|>>=|\\\\\\\\|=\",\"name\":\"keyword.operator.assignment.compound.bitwise.objc\"},{\"match\":\"<<|>>\",\"name\":\"keyword.operator.bitwise.shift.objc\"},{\"match\":\"!=|<=|>=|==|<|>\",\"name\":\"keyword.operator.comparison.objc\"},{\"match\":\"&&|!|\\\\\\\\|\\\\\\\\|\",\"name\":\"keyword.operator.logical.objc\"},{\"match\":\"&|\\\\\\\\||\\\\\\\\^|~\",\"name\":\"keyword.operator.objc\"},{\"match\":\"=\",\"name\":\"keyword.operator.assignment.objc\"},{\"match\":\"%|\\\\\\\\*|/|-|\\\\\\\\+\",\"name\":\"keyword.operator.objc\"},{\"begin\":\"(\\\\\\\\?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.ternary.objc\"}},\"end\":\"(:)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.ternary.objc\"}},\"patterns\":[{\"include\":\"#function-call-innards\"},{\"include\":\"$base\"}]}]},\"parens\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.objc\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.objc\"}},\"name\":\"meta.parens.objc\",\"patterns\":[{\"include\":\"$base\"}]},\"parens-block\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.objc\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.objc\"}},\"name\":\"meta.parens.block.objc\",\"patterns\":[{\"include\":\"#block_innards\"},{\"match\":\"(?-mix:(?<!:):(?!:))\",\"name\":\"punctuation.range-based.objc\"}]},\"pragma-mark\":{\"captures\":{\"1\":{\"name\":\"meta.preprocessor.pragma.objc\"},\"2\":{\"name\":\"keyword.control.directive.pragma.pragma-mark.objc\"},\"3\":{\"name\":\"punctuation.definition.directive.objc\"},\"4\":{\"name\":\"entity.name.tag.pragma-mark.objc\"}},\"match\":\"^\\\\\\\\s*(((#)\\\\\\\\s*pragma\\\\\\\\s+mark)\\\\\\\\s+(.*))\",\"name\":\"meta.section.objc\"},\"preprocessor-rule-conditional\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*if(?:n?def)?\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objc\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"end\":\"^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objc\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objc\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#preprocessor-rule-enabled-elif\"},{\"include\":\"#preprocessor-rule-enabled-else\"},{\"include\":\"#preprocessor-rule-disabled-elif\"},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.conditional.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objc\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"$base\"}]},{\"captures\":{\"0\":{\"name\":\"invalid.illegal.stray-$1.objc\"}},\"match\":\"^\\\\\\\\s*#\\\\\\\\s*(else|elif|endif)\\\\\\\\b\"}]},\"preprocessor-rule-conditional-block\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*if(?:n?def)?\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objc\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"end\":\"^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objc\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objc\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#preprocessor-rule-enabled-elif-block\"},{\"include\":\"#preprocessor-rule-enabled-else-block\"},{\"include\":\"#preprocessor-rule-disabled-elif\"},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.conditional.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objc\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#block_innards\"}]},{\"captures\":{\"0\":{\"name\":\"invalid.illegal.stray-$1.objc\"}},\"match\":\"^\\\\\\\\s*#\\\\\\\\s*(else|elif|endif)\\\\\\\\b\"}]},\"preprocessor-rule-conditional-line\":{\"patterns\":[{\"match\":\"(?:\\\\\\\\bdefined\\\\\\\\b\\\\\\\\s*$)|(?:\\\\\\\\bdefined\\\\\\\\b(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\s*(?:(?!defined\\\\\\\\b)[a-zA-Z_$][\\\\\\\\w$]*\\\\\\\\b)\\\\\\\\s*\\\\\\\\)*\\\\\\\\s*(?:\\\\\\\\n|//|/\\\\\\\\*|\\\\\\\\?|\\\\\\\\:|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n)))\",\"name\":\"keyword.control.directive.conditional.objc\"},{\"match\":\"\\\\\\\\bdefined\\\\\\\\b\",\"name\":\"invalid.illegal.macro-name.objc\"},{\"include\":\"#comments\"},{\"include\":\"#strings\"},{\"include\":\"#numbers\"},{\"begin\":\"\\\\\\\\?\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.ternary.objc\"}},\"end\":\":\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.ternary.objc\"}},\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#operators\"},{\"match\":\"\\\\\\\\b(NULL|true|false|TRUE|FALSE)\\\\\\\\b\",\"name\":\"constant.language.objc\"},{\"match\":\"[a-zA-Z_$][\\\\\\\\w$]*\",\"name\":\"entity.name.function.preprocessor.objc\"},{\"include\":\"#line_continuation_character\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.objc\"}},\"end\":\"\\\\\\\\)|(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.objc\"}},\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]}]},\"preprocessor-rule-define-line-blocks\":{\"patterns\":[{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.objc\"}},\"end\":\"}|(?=\\\\\\\\s*#\\\\\\\\s*(?:elif|else|endif)\\\\\\\\b)|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.objc\"}},\"patterns\":[{\"include\":\"#preprocessor-rule-define-line-blocks\"},{\"include\":\"#preprocessor-rule-define-line-contents\"}]},{\"include\":\"#preprocessor-rule-define-line-contents\"}]},\"preprocessor-rule-define-line-contents\":{\"patterns\":[{\"include\":\"#vararg_ellipses\"},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.objc\"}},\"end\":\"}|(?=\\\\\\\\s*#\\\\\\\\s*(?:elif|else|endif)\\\\\\\\b)|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.objc\"}},\"name\":\"meta.block.objc\",\"patterns\":[{\"include\":\"#preprocessor-rule-define-line-blocks\"}]},{\"match\":\"\\\\\\\\(\",\"name\":\"punctuation.section.parens.begin.bracket.round.objc\"},{\"match\":\"\\\\\\\\)\",\"name\":\"punctuation.section.parens.end.bracket.round.objc\"},{\"begin\":\"(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\\\\\\\s*\\\\\\\\()(?=(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\\\\\\\s*\\\\\\\\(|(?:(?<=operator)(?:[-*&<>=+!]+|\\\\\\\\(\\\\\\\\)|\\\\\\\\[\\\\\\\\]))\\\\\\\\s*\\\\\\\\()\",\"end\":\"(?<=\\\\\\\\))(?!\\\\\\\\w)|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"name\":\"meta.function.objc\",\"patterns\":[{\"include\":\"#preprocessor-rule-define-line-functions\"}]},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objc\"}},\"end\":\"\\\\\"|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objc\"}},\"name\":\"string.quoted.double.objc\",\"patterns\":[{\"include\":\"#string_escaped_char\"},{\"include\":\"#string_placeholder\"},{\"include\":\"#line_continuation_character\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objc\"}},\"end\":\"'|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objc\"}},\"name\":\"string.quoted.single.objc\",\"patterns\":[{\"include\":\"#string_escaped_char\"},{\"include\":\"#line_continuation_character\"}]},{\"include\":\"#method_access\"},{\"include\":\"#member_access\"},{\"include\":\"$base\"}]},\"preprocessor-rule-define-line-functions\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#storage_types\"},{\"include\":\"#vararg_ellipses\"},{\"include\":\"#method_access\"},{\"include\":\"#member_access\"},{\"include\":\"#operators\"},{\"begin\":\"(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\\\\\\\s*\\\\\\\\()((?:[A-Za-z_][A-Za-z0-9_]*+|::)++|(?:(?<=operator)(?:[-*&<>=+!]+|\\\\\\\\(\\\\\\\\)|\\\\\\\\[\\\\\\\\])))\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.objc\"},\"2\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.objc\"}},\"end\":\"(\\\\\\\\))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.arguments.end.bracket.round.objc\"}},\"patterns\":[{\"include\":\"#preprocessor-rule-define-line-functions\"}]},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.objc\"}},\"end\":\"(\\\\\\\\))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\s*\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.parens.end.bracket.round.objc\"}},\"patterns\":[{\"include\":\"#preprocessor-rule-define-line-functions\"}]},{\"include\":\"#preprocessor-rule-define-line-contents\"}]},\"preprocessor-rule-disabled\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*if\\\\\\\\b)(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\b0+\\\\\\\\b\\\\\\\\)*\\\\\\\\s*(?:$|//|/\\\\\\\\*))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objc\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"end\":\"^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objc\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objc\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#comments\"},{\"include\":\"#preprocessor-rule-enabled-elif\"},{\"include\":\"#preprocessor-rule-enabled-else\"},{\"include\":\"#preprocessor-rule-disabled-elif\"},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objc\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:elif|else|endif)\\\\\\\\b))\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objc\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"$base\"}]},{\"begin\":\"\\\\\\\\n\",\"contentName\":\"comment.block.preprocessor.if-branch.objc\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]}]}]},\"preprocessor-rule-disabled-block\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*if\\\\\\\\b)(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\b0+\\\\\\\\b\\\\\\\\)*\\\\\\\\s*(?:$|//|/\\\\\\\\*))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objc\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"end\":\"^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objc\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objc\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#comments\"},{\"include\":\"#preprocessor-rule-enabled-elif-block\"},{\"include\":\"#preprocessor-rule-enabled-else-block\"},{\"include\":\"#preprocessor-rule-disabled-elif\"},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objc\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:elif|else|endif)\\\\\\\\b))\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objc\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#block_innards\"}]},{\"begin\":\"\\\\\\\\n\",\"contentName\":\"comment.block.preprocessor.if-branch.in-block.objc\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]}]}]},\"preprocessor-rule-disabled-elif\":{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\b0+\\\\\\\\b\\\\\\\\)*\\\\\\\\s*(?:$|//|/\\\\\\\\*))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objc\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:elif|else|endif)\\\\\\\\b))\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objc\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#comments\"},{\"begin\":\"\\\\\\\\n\",\"contentName\":\"comment.block.preprocessor.elif-branch.objc\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]}]},\"preprocessor-rule-enabled\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*if\\\\\\\\b)(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\b0*1\\\\\\\\b\\\\\\\\)*\\\\\\\\s*(?:$|//|/\\\\\\\\*))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objc\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"},\"3\":{\"name\":\"constant.numeric.preprocessor.objc\"}},\"end\":\"^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objc\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objc\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#comments\"},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*else\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objc\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"contentName\":\"comment.block.preprocessor.else-branch.objc\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objc\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"contentName\":\"comment.block.preprocessor.if-branch.objc\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"begin\":\"\\\\\\\\n\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"$base\"}]}]}]},\"preprocessor-rule-enabled-block\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*if\\\\\\\\b)(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\b0*1\\\\\\\\b\\\\\\\\)*\\\\\\\\s*(?:$|//|/\\\\\\\\*))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objc\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"end\":\"^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objc\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objc\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#comments\"},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*else\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objc\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"contentName\":\"comment.block.preprocessor.else-branch.in-block.objc\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objc\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"contentName\":\"comment.block.preprocessor.if-branch.in-block.objc\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"begin\":\"\\\\\\\\n\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#block_innards\"}]}]}]},\"preprocessor-rule-enabled-elif\":{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\b0*1\\\\\\\\b\\\\\\\\)*\\\\\\\\s*(?:$|//|/\\\\\\\\*))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objc\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objc\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#comments\"},{\"begin\":\"\\\\\\\\n\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:endif)\\\\\\\\b))\",\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*(else)\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objc\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"contentName\":\"comment.block.preprocessor.elif-branch.objc\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*(elif)\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objc\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"contentName\":\"comment.block.preprocessor.elif-branch.objc\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"include\":\"$base\"}]}]},\"preprocessor-rule-enabled-elif-block\":{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*elif\\\\\\\\b)(?=\\\\\\\\s*\\\\\\\\(*\\\\\\\\b0*1\\\\\\\\b\\\\\\\\)*\\\\\\\\s*(?:$|//|/\\\\\\\\*))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objc\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?=.)(?!//|/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))\",\"end\":\"(?=//)|(?=/\\\\\\\\*(?!.*\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n))|(?<!\\\\\\\\\\\\\\\\)(?=\\\\\\\\n)\",\"name\":\"meta.preprocessor.objc\",\"patterns\":[{\"include\":\"#preprocessor-rule-conditional-line\"}]},{\"include\":\"#comments\"},{\"begin\":\"\\\\\\\\n\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:endif)\\\\\\\\b))\",\"patterns\":[{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*(else)\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objc\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"contentName\":\"comment.block.preprocessor.elif-branch.in-block.objc\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*(elif)\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objc\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"contentName\":\"comment.block.preprocessor.elif-branch.objc\",\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*(?:else|elif|endif)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"include\":\"#block_innards\"}]}]},\"preprocessor-rule-enabled-else\":{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*else\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objc\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"include\":\"$base\"}]},\"preprocessor-rule-enabled-else-block\":{\"begin\":\"^\\\\\\\\s*((#)\\\\\\\\s*else\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"meta.preprocessor.objc\"},\"1\":{\"name\":\"keyword.control.directive.conditional.objc\"},\"2\":{\"name\":\"punctuation.definition.directive.objc\"}},\"end\":\"(?=^\\\\\\\\s*((#)\\\\\\\\s*endif\\\\\\\\b))\",\"patterns\":[{\"include\":\"#block_innards\"}]},\"probably_a_parameter\":{\"captures\":{\"1\":{\"name\":\"variable.parameter.probably.objc\"}},\"match\":\"(?<=(?:[a-zA-Z_0-9] |[&*>\\\\\\\\]\\\\\\\\)]))\\\\\\\\s*([a-zA-Z_]\\\\\\\\w*)\\\\\\\\s*(?=(?:\\\\\\\\[\\\\\\\\]\\\\\\\\s*)?(?:,|\\\\\\\\)))\"},\"static_assert\":{\"begin\":\"(static_assert|_Static_assert)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.static_assert.objc\"},\"2\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.objc\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.arguments.end.bracket.round.objc\"}},\"patterns\":[{\"begin\":\"(,)\\\\\\\\s*(?=(?:L|u8|u|U\\\\\\\\s*\\\\\\\\\\\\\")?)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.delimiter.objc\"}},\"end\":\"(?=\\\\\\\\))\",\"name\":\"meta.static_assert.message.objc\",\"patterns\":[{\"include\":\"#string_context\"},{\"include\":\"#string_context_c\"}]},{\"include\":\"#function_call_context\"}]},\"storage_types\":{\"patterns\":[{\"match\":\"(?-mix:(?<!\\\\\\\\w)(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool)(?!\\\\\\\\w))\",\"name\":\"storage.type.built-in.primitive.objc\"},{\"match\":\"(?-mix:(?<!\\\\\\\\w)(?:_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t)(?!\\\\\\\\w))\",\"name\":\"storage.type.built-in.objc\"},{\"match\":\"(?-mix:\\\\\\\\b(asm|__asm__|enum|struct|union)\\\\\\\\b)\",\"name\":\"storage.type.$1.objc\"}]},\"string_escaped_char\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(\\\\\\\\\\\\\\\\|[abefnprtv'\\\\\"?]|[0-3]\\\\\\\\d{,2}|[4-7]\\\\\\\\d?|x[a-fA-F0-9]{,2}|u[a-fA-F0-9]{,4}|U[a-fA-F0-9]{,8})\",\"name\":\"constant.character.escape.objc\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"invalid.illegal.unknown-escape.objc\"}]},\"string_placeholder\":{\"patterns\":[{\"match\":\"%(\\\\\\\\d+\\\\\\\\$)?[#0\\\\\\\\- +']*[,;:_]?((-?\\\\\\\\d+)|\\\\\\\\*(-?\\\\\\\\d+\\\\\\\\$)?)?(\\\\\\\\.((-?\\\\\\\\d+)|\\\\\\\\*(-?\\\\\\\\d+\\\\\\\\$)?)?)?(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)?[diouxXDOUeEfFgGaACcSspn%]\",\"name\":\"constant.other.placeholder.objc\"},{\"captures\":{\"1\":{\"name\":\"invalid.illegal.placeholder.objc\"}},\"match\":\"(%)(?!\\\\\"\\\\\\\\s*(PRI|SCN))\"}]},\"strings\":{\"patterns\":[{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objc\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objc\"}},\"name\":\"string.quoted.double.objc\",\"patterns\":[{\"include\":\"#string_escaped_char\"},{\"include\":\"#string_placeholder\"},{\"include\":\"#line_continuation_character\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.objc\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.objc\"}},\"name\":\"string.quoted.single.objc\",\"patterns\":[{\"include\":\"#string_escaped_char\"},{\"include\":\"#line_continuation_character\"}]}]},\"switch_conditional_parentheses\":{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.parens.begin.bracket.round.conditional.switch.objc\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.parens.end.bracket.round.conditional.switch.objc\"}},\"name\":\"meta.conditional.switch.objc\",\"patterns\":[{\"include\":\"#conditional_context\"}]},\"switch_statement\":{\"begin\":\"(((?<!\\\\\\\\w)switch(?!\\\\\\\\w)))\",\"beginCaptures\":{\"1\":{\"name\":\"meta.head.switch.objc\"},\"2\":{\"name\":\"keyword.control.switch.objc\"}},\"end\":\"(?:(?<=\\\\\\\\})|(?=[;>\\\\\\\\[\\\\\\\\]=]))\",\"name\":\"meta.block.switch.objc\",\"patterns\":[{\"begin\":\"\\\\\\\\G ?\",\"end\":\"((?:\\\\\\\\{|(?=;)))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.block.begin.bracket.curly.switch.objc\"}},\"name\":\"meta.head.switch.objc\",\"patterns\":[{\"include\":\"#switch_conditional_parentheses\"},{\"include\":\"$base\"}]},{\"begin\":\"(?<=\\\\\\\\{)\",\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.block.end.bracket.curly.switch.objc\"}},\"name\":\"meta.body.switch.objc\",\"patterns\":[{\"include\":\"#default_statement\"},{\"include\":\"#case_statement\"},{\"include\":\"$base\"},{\"include\":\"#block_innards\"}]},{\"begin\":\"(?<=})[\\\\\\\\s\\\\\\\\n]*\",\"end\":\"[\\\\\\\\s\\\\\\\\n]*(?=;)\",\"name\":\"meta.tail.switch.objc\",\"patterns\":[{\"include\":\"$base\"}]}]},\"vararg_ellipses\":{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\.\\\\\\\\.\\\\\\\\.(?!\\\\\\\\.)\",\"name\":\"punctuation.vararg-ellipses.objc\"}}},\"comment\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.objc\"}},\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.objc\"},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=//)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.objc\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.objc\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.double-slash.objc\",\"patterns\":[{\"match\":\"(?>\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n)\",\"name\":\"punctuation.separator.continuation.objc\"}]}]}]},\"disabled\":{\"begin\":\"^\\\\\\\\s*#\\\\\\\\s*if(n?def)?\\\\\\\\b.*$\",\"comment\":\"eat nested preprocessor if(def)s\",\"end\":\"^\\\\\\\\s*#\\\\\\\\s*endif\\\\\\\\b.*$\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},\"implementation_innards\":{\"patterns\":[{\"include\":\"#preprocessor-rule-enabled-implementation\"},{\"include\":\"#preprocessor-rule-disabled-implementation\"},{\"include\":\"#preprocessor-rule-other-implementation\"},{\"include\":\"#property_directive\"},{\"include\":\"#method_super\"},{\"include\":\"$base\"}]},\"interface_innards\":{\"patterns\":[{\"include\":\"#preprocessor-rule-enabled-interface\"},{\"include\":\"#preprocessor-rule-disabled-interface\"},{\"include\":\"#preprocessor-rule-other-interface\"},{\"include\":\"#properties\"},{\"include\":\"#protocol_list\"},{\"include\":\"#method\"},{\"include\":\"$base\"}]},\"method\":{\"begin\":\"^(-|\\\\\\\\+)\\\\\\\\s*\",\"end\":\"(?=\\\\\\\\{|#)|;\",\"name\":\"meta.function.objc\",\"patterns\":[{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.type.begin.objc\"}},\"end\":\"(\\\\\\\\))\\\\\\\\s*(\\\\\\\\w+\\\\\\\\b)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.type.end.objc\"},\"2\":{\"name\":\"entity.name.function.objc\"}},\"name\":\"meta.return-type.objc\",\"patterns\":[{\"include\":\"#protocol_list\"},{\"include\":\"#protocol_type_qualifier\"},{\"include\":\"$base\"}]},{\"match\":\"\\\\\\\\b\\\\\\\\w+(?=:)\",\"name\":\"entity.name.function.name-of-parameter.objc\"},{\"begin\":\"((:))\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.name-of-parameter.objc\"},\"2\":{\"name\":\"punctuation.separator.arguments.objc\"},\"3\":{\"name\":\"punctuation.definition.type.begin.objc\"}},\"end\":\"(\\\\\\\\))\\\\\\\\s*(\\\\\\\\w+\\\\\\\\b)?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.type.end.objc\"},\"2\":{\"name\":\"variable.parameter.function.objc\"}},\"name\":\"meta.argument-type.objc\",\"patterns\":[{\"include\":\"#protocol_list\"},{\"include\":\"#protocol_type_qualifier\"},{\"include\":\"$base\"}]},{\"include\":\"#comment\"}]},\"method_super\":{\"begin\":\"^(?=-|\\\\\\\\+)\",\"end\":\"(?<=\\\\\\\\})|(?=#)\",\"name\":\"meta.function-with-body.objc\",\"patterns\":[{\"include\":\"#method\"},{\"include\":\"$base\"}]},\"pragma-mark\":{\"captures\":{\"1\":{\"name\":\"meta.preprocessor.objc\"},\"2\":{\"name\":\"keyword.control.import.pragma.objc\"},\"3\":{\"name\":\"meta.toc-list.pragma-mark.objc\"}},\"match\":\"^\\\\\\\\s*(#\\\\\\\\s*(pragma\\\\\\\\s+mark)\\\\\\\\s+(.*))\",\"name\":\"meta.section.objc\"},\"preprocessor-rule-disabled-implementation\":{\"begin\":\"^\\\\\\\\s*(#(if)\\\\\\\\s+(0)\\\\\\\\b).*\",\"captures\":{\"1\":{\"name\":\"meta.preprocessor.objc\"},\"2\":{\"name\":\"keyword.control.import.if.objc\"},\"3\":{\"name\":\"constant.numeric.preprocessor.objc\"}},\"end\":\"^\\\\\\\\s*(#\\\\\\\\s*(endif)\\\\\\\\b.*?(?:(?=(?://|/\\\\\\\\*))|$))\",\"patterns\":[{\"begin\":\"^\\\\\\\\s*(#\\\\\\\\s*(else)\\\\\\\\b)\",\"captures\":{\"1\":{\"name\":\"meta.preprocessor.objc\"},\"2\":{\"name\":\"keyword.control.import.else.objc\"}},\"end\":\"(?=^\\\\\\\\s*#\\\\\\\\s*endif\\\\\\\\b.*?(?:(?=(?://|/\\\\\\\\*))|$))\",\"patterns\":[{\"include\":\"#interface_innards\"}]},{\"begin\":\"\",\"end\":\"(?=^\\\\\\\\s*#\\\\\\\\s*(else|endif)\\\\\\\\b.*?(?:(?=(?://|/\\\\\\\\*))|$))\",\"name\":\"comment.block.preprocessor.if-branch.objc\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]}]},\"preprocessor-rule-disabled-interface\":{\"begin\":\"^\\\\\\\\s*(#(if)\\\\\\\\s+(0)\\\\\\\\b).*\",\"captures\":{\"1\":{\"name\":\"meta.preprocessor.objc\"},\"2\":{\"name\":\"keyword.control.import.if.objc\"},\"3\":{\"name\":\"constant.numeric.preprocessor.objc\"}},\"end\":\"^\\\\\\\\s*(#\\\\\\\\s*(endif)\\\\\\\\b.*?(?:(?=(?://|/\\\\\\\\*))|$))\",\"patterns\":[{\"begin\":\"^\\\\\\\\s*(#\\\\\\\\s*(else)\\\\\\\\b)\",\"captures\":{\"1\":{\"name\":\"meta.preprocessor.objc\"},\"2\":{\"name\":\"keyword.control.import.else.objc\"}},\"end\":\"(?=^\\\\\\\\s*#\\\\\\\\s*endif\\\\\\\\b.*?(?:(?=(?://|/\\\\\\\\*))|$))\",\"patterns\":[{\"include\":\"#interface_innards\"}]},{\"begin\":\"\",\"end\":\"(?=^\\\\\\\\s*#\\\\\\\\s*(else|endif)\\\\\\\\b.*?(?:(?=(?://|/\\\\\\\\*))|$))\",\"name\":\"comment.block.preprocessor.if-branch.objc\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]}]},\"preprocessor-rule-enabled-implementation\":{\"begin\":\"^\\\\\\\\s*(#(if)\\\\\\\\s+(0*1)\\\\\\\\b)\",\"captures\":{\"1\":{\"name\":\"meta.preprocessor.objc\"},\"2\":{\"name\":\"keyword.control.import.if.objc\"},\"3\":{\"name\":\"constant.numeric.preprocessor.objc\"}},\"end\":\"^\\\\\\\\s*(#\\\\\\\\s*(endif)\\\\\\\\b.*?(?:(?=(?://|/\\\\\\\\*))|$))\",\"patterns\":[{\"begin\":\"^\\\\\\\\s*(#\\\\\\\\s*(else)\\\\\\\\b).*\",\"captures\":{\"1\":{\"name\":\"meta.preprocessor.objc\"},\"2\":{\"name\":\"keyword.control.import.else.objc\"}},\"contentName\":\"comment.block.preprocessor.else-branch.objc\",\"end\":\"(?=^\\\\\\\\s*#\\\\\\\\s*endif\\\\\\\\b.*?(?:(?=(?://|/\\\\\\\\*))|$))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"begin\":\"\",\"end\":\"(?=^\\\\\\\\s*#\\\\\\\\s*(else|endif)\\\\\\\\b.*?(?:(?=(?://|/\\\\\\\\*))|$))\",\"patterns\":[{\"include\":\"#implementation_innards\"}]}]},\"preprocessor-rule-enabled-interface\":{\"begin\":\"^\\\\\\\\s*(#(if)\\\\\\\\s+(0*1)\\\\\\\\b)\",\"captures\":{\"1\":{\"name\":\"meta.preprocessor.objc\"},\"2\":{\"name\":\"keyword.control.import.if.objc\"},\"3\":{\"name\":\"constant.numeric.preprocessor.objc\"}},\"end\":\"^\\\\\\\\s*(#\\\\\\\\s*(endif)\\\\\\\\b.*?(?:(?=(?://|/\\\\\\\\*))|$))\",\"patterns\":[{\"begin\":\"^\\\\\\\\s*(#\\\\\\\\s*(else)\\\\\\\\b).*\",\"captures\":{\"1\":{\"name\":\"meta.preprocessor.objc\"},\"2\":{\"name\":\"keyword.control.import.else.objc\"}},\"contentName\":\"comment.block.preprocessor.else-branch.objc\",\"end\":\"(?=^\\\\\\\\s*#\\\\\\\\s*endif\\\\\\\\b.*?(?:(?=(?://|/\\\\\\\\*))|$))\",\"patterns\":[{\"include\":\"#disabled\"},{\"include\":\"#pragma-mark\"}]},{\"begin\":\"\",\"end\":\"(?=^\\\\\\\\s*#\\\\\\\\s*(else|endif)\\\\\\\\b.*?(?:(?=(?://|/\\\\\\\\*))|$))\",\"patterns\":[{\"include\":\"#interface_innards\"}]}]},\"preprocessor-rule-other-implementation\":{\"begin\":\"^\\\\\\\\s*(#\\\\\\\\s*(if(n?def)?)\\\\\\\\b.*?(?:(?=(?://|/\\\\\\\\*))|$))\",\"captures\":{\"1\":{\"name\":\"meta.preprocessor.objc\"},\"2\":{\"name\":\"keyword.control.import.objc\"}},\"end\":\"^\\\\\\\\s*(#\\\\\\\\s*(endif)\\\\\\\\b).*?(?:(?=(?://|/\\\\\\\\*))|$)\",\"patterns\":[{\"include\":\"#implementation_innards\"}]},\"preprocessor-rule-other-interface\":{\"begin\":\"^\\\\\\\\s*(#\\\\\\\\s*(if(n?def)?)\\\\\\\\b.*?(?:(?=(?://|/\\\\\\\\*))|$))\",\"captures\":{\"1\":{\"name\":\"meta.preprocessor.objc\"},\"2\":{\"name\":\"keyword.control.import.objc\"}},\"end\":\"^\\\\\\\\s*(#\\\\\\\\s*(endif)\\\\\\\\b).*?(?:(?=(?://|/\\\\\\\\*))|$)\",\"patterns\":[{\"include\":\"#interface_innards\"}]},\"properties\":{\"patterns\":[{\"begin\":\"((@)property)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.property.objc\"},\"2\":{\"name\":\"punctuation.definition.keyword.objc\"},\"3\":{\"name\":\"punctuation.section.scope.begin.objc\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.scope.end.objc\"}},\"name\":\"meta.property-with-attributes.objc\",\"patterns\":[{\"match\":\"\\\\\\\\b(getter|setter|readonly|readwrite|assign|retain|copy|nonatomic|atomic|strong|weak|nonnull|nullable|null_resettable|null_unspecified|class|direct)\\\\\\\\b\",\"name\":\"keyword.other.property.attribute.objc\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.other.property.objc\"},\"2\":{\"name\":\"punctuation.definition.keyword.objc\"}},\"match\":\"((@)property)\\\\\\\\b\",\"name\":\"meta.property.objc\"}]},\"property_directive\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.keyword.objc\"}},\"match\":\"(@)(dynamic|synthesize)\\\\\\\\b\",\"name\":\"keyword.other.property.directive.objc\"},\"protocol_list\":{\"begin\":\"(<)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.scope.begin.objc\"}},\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.scope.end.objc\"}},\"name\":\"meta.protocol-list.objc\",\"patterns\":[{\"match\":\"\\\\\\\\bNS(GlyphStorage|M(utableCopying|enuItem)|C(hangeSpelling|o(ding|pying|lorPicking(Custom|Default)))|T(oolbarItemValidations|ext(Input|AttachmentCell))|I(nputServ(iceProvider|erMouseTracker)|gnoreMisspelledWords)|Obj(CTypeSerializationCallBack|ect)|D(ecimalNumberBehaviors|raggingInfo)|U(serInterfaceValidations|RL(HandleClient|DownloadDelegate|ProtocolClient|AuthenticationChallengeSender))|Validated(ToobarItem|UserInterfaceItem)|Locking)\\\\\\\\b\",\"name\":\"support.other.protocol.objc\"}]},\"protocol_type_qualifier\":{\"match\":\"\\\\\\\\b(in|out|inout|oneway|bycopy|byref|nonnull|nullable|_Nonnull|_Nullable|_Null_unspecified)\\\\\\\\b\",\"name\":\"storage.modifier.protocol.objc\"},\"special_variables\":{\"patterns\":[{\"match\":\"\\\\\\\\b_cmd\\\\\\\\b\",\"name\":\"variable.other.selector.objc\"},{\"match\":\"\\\\\\\\b(self|super)\\\\\\\\b\",\"name\":\"variable.language.objc\"}]},\"string_escaped_char\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(\\\\\\\\\\\\\\\\|[abefnprtv'\\\\\"?]|[0-3]\\\\\\\\d{,2}|[4-7]\\\\\\\\d?|x[a-fA-F0-9]{,2}|u[a-fA-F0-9]{,4}|U[a-fA-F0-9]{,8})\",\"name\":\"constant.character.escape.objc\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"invalid.illegal.unknown-escape.objc\"}]},\"string_placeholder\":{\"patterns\":[{\"match\":\"%(\\\\\\\\d+\\\\\\\\$)?[#0\\\\\\\\- +']*[,;:_]?((-?\\\\\\\\d+)|\\\\\\\\*(-?\\\\\\\\d+\\\\\\\\$)?)?(\\\\\\\\.((-?\\\\\\\\d+)|\\\\\\\\*(-?\\\\\\\\d+\\\\\\\\$)?)?)?(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)?[diouxXDOUeEfFgGaACcSspn%]\",\"name\":\"constant.other.placeholder.objc\"},{\"captures\":{\"1\":{\"name\":\"invalid.illegal.placeholder.objc\"}},\"match\":\"(%)(?!\\\\\"\\\\\\\\s*(PRI|SCN))\"}]}},\"scopeName\":\"source.objc\",\"aliases\":[\"objc\"]}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DfxzS6Rs.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"GDScript\",\"fileTypes\":[\"gd\"],\"name\":\"gdscript\",\"patterns\":[{\"include\":\"#statement\"},{\"include\":\"#expression\"}],\"repository\":{\"annotated_parameter\":{\"begin\":\"\\\\\\\\s*([a-zA-Z_]\\\\\\\\w*)\\\\\\\\s*(:)\\\\\\\\s*([a-zA-Z_]\\\\\\\\w*)?\",\"beginCaptures\":{\"1\":{\"name\":\"variable.parameter.function.language.gdscript\"},\"2\":{\"name\":\"punctuation.separator.annotation.gdscript\"},\"3\":{\"name\":\"entity.name.type.class.gdscript\"}},\"end\":\"(,)|(?=\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.parameters.gdscript\"}},\"patterns\":[{\"include\":\"#base_expression\"},{\"match\":\"=(?!=)\",\"name\":\"keyword.operator.assignment.gdscript\"}]},\"annotations\":{\"captures\":{\"1\":{\"name\":\"entity.name.function.decorator.gdscript\"},\"2\":{\"name\":\"entity.name.function.decorator.gdscript\"}},\"match\":\"(@)(export|export_group|export_color_no_alpha|export_custom|export_dir|export_enum|export_exp_easing|export_file|export_flags|export_flags_2d_navigation|export_flags_2d_physics|export_flags_2d_render|export_flags_3d_navigation|export_flags_3d_physics|export_flags_3d_render|export_global_dir|export_global_file|export_multiline|export_node_path|export_placeholder|export_range|export_storage|icon|onready|rpc|tool|warning_ignore|static_unload)\\\\\\\\b\"},\"any_method\":{\"match\":\"\\\\\\\\b([A-Za-z_]\\\\\\\\w*)\\\\\\\\b(?=\\\\\\\\s*(?:[(]))\",\"name\":\"entity.name.function.other.gdscript\"},\"any_property\":{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.gdscript\"},\"2\":{\"name\":\"constant.language.gdscript\"},\"3\":{\"name\":\"variable.other.property.gdscript\"}},\"match\":\"\\\\\\\\b(\\\\\\\\.)\\\\\\\\s*(?<![@\\\\\\\\$#%])(?:([A-Z_][A-Z_0-9]*)|([A-Za-z_]\\\\\\\\w*))\\\\\\\\b(?![(])\"},\"any_variable\":{\"match\":\"\\\\\\\\b(?<![@\\\\\\\\$#%])([A-Za-z_]\\\\\\\\w*)\\\\\\\\b(?![(])\",\"name\":\"variable.other.gdscript\"},\"arithmetic_operator\":{\"match\":\"->|\\\\\\\\+=|-=|\\\\\\\\*=|\\\\\\\\^=|/=|%=|&=|~=|\\\\\\\\|=|\\\\\\\\*\\\\\\\\*|\\\\\\\\*|/|%|\\\\\\\\+|-\",\"name\":\"keyword.operator.arithmetic.gdscript\"},\"assignment_operator\":{\"match\":\"=\",\"name\":\"keyword.operator.assignment.gdscript\"},\"base_expression\":{\"patterns\":[{\"include\":\"#builtin_get_node_shorthand\"},{\"include\":\"#nodepath_object\"},{\"include\":\"#nodepath_function\"},{\"include\":\"#strings\"},{\"include\":\"#builtin_classes\"},{\"include\":\"#const_vars\"},{\"include\":\"#keywords\"},{\"include\":\"#operators\"},{\"include\":\"#lambda_declaration\"},{\"include\":\"#class_declaration\"},{\"include\":\"#variable_declaration\"},{\"include\":\"#signal_declaration_bare\"},{\"include\":\"#signal_declaration\"},{\"include\":\"#function_declaration\"},{\"include\":\"#statement_keyword\"},{\"include\":\"#assignment_operator\"},{\"include\":\"#in_keyword\"},{\"include\":\"#control_flow\"},{\"include\":\"#match_keyword\"},{\"include\":\"#curly_braces\"},{\"include\":\"#square_braces\"},{\"include\":\"#round_braces\"},{\"include\":\"#function_call\"},{\"include\":\"#comment\"},{\"include\":\"#self\"},{\"include\":\"#func\"},{\"include\":\"#letter\"},{\"include\":\"#numbers\"},{\"include\":\"#pascal_case_class\"},{\"include\":\"#line_continuation\"}]},\"bitwise_operator\":{\"match\":\"&|\\\\\\\\||<<=|>>=|<<|>>|\\\\\\\\^|~\",\"name\":\"keyword.operator.bitwise.gdscript\"},\"boolean_operator\":{\"match\":\"(&&|\\\\\\\\|\\\\\\\\|)\",\"name\":\"keyword.operator.boolean.gdscript\"},\"builtin_classes\":{\"match\":\"(?<![^.]\\\\\\\\.|:)\\\\\\\\b(Vector2|Vector2i|Vector3|Vector3i|Vector4|Vector4i|Color|Rect2|Rect2i|Array|Basis|Dictionary|Plane|Quat|RID|Rect3|Transform|Transform2D|Transform3D|AABB|String|Color|NodePath|PoolByteArray|PoolIntArray|PoolRealArray|PoolStringArray|PoolVector2Array|PoolVector3Array|PoolColorArray|bool|int|float|Signal|Callable|StringName|Quaternion|Projection|PackedByteArray|PackedInt32Array|PackedInt64Array|PackedFloat32Array|PackedFloat64Array|PackedStringArray|PackedVector2Array|PackedVector2iArray|PackedVector3Array|PackedVector3iArray|PackedVector4Array|PackedColorArray|super)\\\\\\\\b\",\"name\":\"entity.name.type.class.builtin.gdscript\"},\"builtin_get_node_shorthand\":{\"patterns\":[{\"include\":\"#builtin_get_node_shorthand_quoted\"},{\"include\":\"#builtin_get_node_shorthand_bare\"},{\"include\":\"#builtin_get_node_shorthand_bare_multi\"}]},\"builtin_get_node_shorthand_bare\":{\"captures\":{\"1\":{\"name\":\"keyword.control.flow.gdscript\"},\"2\":{\"name\":\"constant.character.escape.gdscript\"},\"3\":{\"name\":\"constant.character.escape.gdscript\"},\"4\":{\"name\":\"constant.character.escape.gdscript\"}},\"match\":\"(?<!/\\\\\\\\s*)(\\\\\\\\$\\\\\\\\s*|%|\\\\\\\\$%\\\\\\\\s*)(/\\\\\\\\s*)?([a-zA-Z_]\\\\\\\\w*)\\\\\\\\b(?!\\\\\\\\s*/)\",\"name\":\"meta.literal.nodepath.bare.gdscript\"},\"builtin_get_node_shorthand_bare_multi\":{\"begin\":\"(\\\\\\\\$\\\\\\\\s*|%|\\\\\\\\$%\\\\\\\\s*)(/\\\\\\\\s*)?([a-zA-Z_]\\\\\\\\w*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.flow.gdscript\"},\"2\":{\"name\":\"constant.character.escape.gdscript\"},\"3\":{\"name\":\"constant.character.escape.gdscript\"}},\"end\":\"(?!\\\\\\\\s*/\\\\\\\\s*%?\\\\\\\\s*[a-zA-Z_]\\\\\\\\w*)\",\"name\":\"meta.literal.nodepath.bare.gdscript\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.character.escape.gdscript\"},\"2\":{\"name\":\"keyword.control.flow.gdscript\"},\"3\":{\"name\":\"constant.character.escape.gdscript\"}},\"match\":\"(/)\\\\\\\\s*(%)?\\\\\\\\s*([a-zA-Z_]\\\\\\\\w*)\\\\\\\\s*\"}]},\"builtin_get_node_shorthand_quoted\":{\"begin\":\"(?:(\\\\\\\\$|%)|(&|\\\\\\\\^|@))(\\\\\"|')\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.flow.gdscript\"},\"2\":{\"name\":\"variable.other.enummember.gdscript\"}},\"end\":\"(\\\\\\\\3)\",\"name\":\"string.quoted.gdscript meta.literal.nodepath.gdscript constant.character.escape.gdscript\",\"patterns\":[{\"match\":\"%\",\"name\":\"keyword.control.flow\"}]},\"class_declaration\":{\"captures\":{\"1\":{\"name\":\"entity.name.type.class.gdscript\"},\"2\":{\"name\":\"class.other.gdscript\"}},\"match\":\"(?<=^class)\\\\\\\\s+([a-zA-Z_]\\\\\\\\w*)\\\\\\\\s*(?=:)\"},\"class_enum\":{\"captures\":{\"1\":{\"name\":\"entity.name.type.class.gdscript\"},\"2\":{\"name\":\"variable.other.enummember.gdscript\"}},\"match\":\"\\\\\\\\b([A-Z][a-zA-Z_0-9]*)\\\\\\\\.([A-Z_0-9]+)\"},\"class_is\":{\"captures\":{\"1\":{\"name\":\"storage.type.is.gdscript\"},\"2\":{\"name\":\"entity.name.type.class.gdscript\"}},\"match\":\"\\\\\\\\s+(is)\\\\\\\\s+([a-zA-Z_]\\\\\\\\w*)\"},\"class_name\":{\"captures\":{\"1\":{\"name\":\"entity.name.type.class.gdscript\"},\"2\":{\"name\":\"class.other.gdscript\"}},\"match\":\"(?<=class_name)\\\\\\\\s+([a-zA-Z_]\\\\\\\\w*(\\\\\\\\.([a-zA-Z_]\\\\\\\\w*))?)\"},\"class_new\":{\"captures\":{\"1\":{\"name\":\"entity.name.type.class.gdscript\"},\"2\":{\"name\":\"storage.type.new.gdscript\"},\"3\":{\"name\":\"punctuation.parenthesis.begin.gdscript\"}},\"match\":\"\\\\\\\\b([a-zA-Z_]\\\\\\\\w*).(new)\\\\\\\\(\"},\"comment\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.number-sign.gdscript\"}},\"match\":\"(##|#).*$\\\\\\\\n?\",\"name\":\"comment.line.number-sign.gdscript\"},\"compare_operator\":{\"match\":\"<=|>=|==|<|>|!=|!\",\"name\":\"keyword.operator.comparison.gdscript\"},\"const_vars\":{\"match\":\"\\\\\\\\b([A-Z_][A-Z_0-9]*)\\\\\\\\b\",\"name\":\"variable.other.constant.gdscript\"},\"control_flow\":{\"match\":\"\\\\\\\\b(?:if|elif|else|while|break|continue|pass|return|when|yield|await)\\\\\\\\b\",\"name\":\"keyword.control.gdscript\"},\"curly_braces\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.dict.begin.gdscript\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.dict.end.gdscript\"}},\"patterns\":[{\"include\":\"#base_expression\"},{\"include\":\"#any_variable\"}]},\"expression\":{\"patterns\":[{\"include\":\"#base_expression\"},{\"include\":\"#getter_setter_godot4\"},{\"include\":\"#assignment_operator\"},{\"include\":\"#annotations\"},{\"include\":\"#class_name\"},{\"include\":\"#builtin_classes\"},{\"include\":\"#class_new\"},{\"include\":\"#class_is\"},{\"include\":\"#class_enum\"},{\"include\":\"#any_method\"},{\"include\":\"#any_variable\"},{\"include\":\"#any_property\"}]},\"extends_statement\":{\"captures\":{\"1\":{\"name\":\"keyword.language.gdscript\"},\"2\":{\"name\":\"entity.other.inherited-class.gdscript\"}},\"match\":\"(extends)\\\\\\\\s+([a-zA-Z_]\\\\\\\\w*\\\\\\\\.[a-zA-Z_]\\\\\\\\w*)?\"},\"func\":{\"match\":\"\\\\\\\\bfunc\\\\\\\\b\",\"name\":\"keyword.language.gdscript\"},\"function_arguments\":{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.gdscript\"}},\"contentName\":\"meta.function.parameters.gdscript\",\"end\":\"(?=\\\\\\\\))(?!\\\\\\\\)\\\\\\\\s*\\\\\\\\()\",\"patterns\":[{\"match\":\"(,)\",\"name\":\"punctuation.separator.arguments.gdscript\"},{\"captures\":{\"1\":{\"name\":\"variable.parameter.function-call.gdscript\"},\"2\":{\"name\":\"keyword.operator.assignment.gdscript\"}},\"match\":\"\\\\\\\\b([a-zA-Z_]\\\\\\\\w*)\\\\\\\\s*(=)(?!=)\"},{\"match\":\"=(?!=)\",\"name\":\"keyword.operator.assignment.gdscript\"},{\"include\":\"#base_expression\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.gdscript\"},\"2\":{\"name\":\"punctuation.definition.arguments.begin.gdscript\"}},\"match\":\"\\\\\\\\s*(\\\\\\\\))\\\\\\\\s*(\\\\\\\\()\"},{\"include\":\"#letter\"},{\"include\":\"#any_variable\"},{\"include\":\"#any_property\"},{\"include\":\"#keywords\"}]},\"function_call\":{\"begin\":\"(?=\\\\\\\\b[a-zA-Z_]\\\\\\\\w*\\\\\\\\b\\\\\\\\()\",\"comment\":\"Regular function call of the type \\\\\"name(args)\\\\\"\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.gdscript\"}},\"name\":\"meta.function-call.gdscript\",\"patterns\":[{\"include\":\"#function_name\"},{\"include\":\"#function_arguments\"}]},\"function_declaration\":{\"begin\":\"\\\\\\\\s*(func)\\\\\\\\s+([a-zA-Z_]\\\\\\\\w*)\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.language.gdscript storage.type.function.gdscript\"},\"2\":{\"name\":\"entity.name.function.gdscript\"}},\"end\":\"(:)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.function.begin.gdscript\"}},\"name\":\"meta.function.gdscript\",\"patterns\":[{\"include\":\"#parameters\"},{\"include\":\"#line_continuation\"},{\"include\":\"#base_expression\"}]},\"function_name\":{\"patterns\":[{\"include\":\"#builtin_classes\"},{\"match\":\"\\\\\\\\b(preload)\\\\\\\\b\",\"name\":\"keyword.language.gdscript\"},{\"comment\":\"Some color schemas support meta.function-call.generic scope\",\"match\":\"\\\\\\\\b([a-zA-Z_]\\\\\\\\w*)\\\\\\\\b\",\"name\":\"entity.name.function.gdscript\"}]},\"getter_setter_godot4\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.function.gdscript\"}},\"match\":\"\\\\\\\\b(get):\"},{\"begin\":\"\\\\\\\\s+(set)\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.gdscript\"}},\"end\":\"(:|(?=[#'\\\\\"\\\\\\\\n]))\",\"name\":\"meta.function.gdscript\",\"patterns\":[{\"include\":\"#parameters\"},{\"include\":\"#line_continuation\"}]}]},\"in_keyword\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(for)\\\\\\\\b\",\"captures\":{\"1\":{\"name\":\"keyword.control.gdscript\"}},\"end\":\":\",\"patterns\":[{\"match\":\"\\\\\\\\bin\\\\\\\\b\",\"name\":\"keyword.control.gdscript\"},{\"include\":\"#base_expression\"},{\"include\":\"#any_variable\"},{\"include\":\"#any_property\"}]},{\"match\":\"\\\\\\\\bin\\\\\\\\b\",\"name\":\"keyword.operator.wordlike.gdscript\"}]},\"keywords\":{\"match\":\"\\\\\\\\b(?:class|class_name|abstract|is|onready|tool|static|export|as|void|enum|assert|breakpoint|sync|remote|master|puppet|slave|remotesync|mastersync|puppetsync|trait|namespace)\\\\\\\\b\",\"name\":\"keyword.language.gdscript\"},\"lambda_declaration\":{\"begin\":\"(func)\\\\\\\\s?(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.language.gdscript storage.type.function.gdscript\"},\"2\":{\"name\":\"entity.name.function.gdscript\"}},\"end\":\"(:|(?=[#'\\\\\"\\\\\\\\n]))\",\"end2\":\"(\\\\\\\\s*(\\\\\\\\-\\\\\\\\>)\\\\\\\\s*(void\\\\\\\\w*)|([a-zA-Z_]\\\\\\\\w*)\\\\\\\\s*\\\\\\\\:)\",\"endCaptures2\":{\"1\":{\"name\":\"punctuation.separator.annotation.result.gdscript\"},\"2\":{\"name\":\"keyword.language.void.gdscript\"},\"3\":{\"name\":\"entity.name.type.class.gdscript markup.italic\"}},\"name\":\"meta.function.gdscript\",\"patterns\":[{\"include\":\"#parameters\"},{\"include\":\"#line_continuation\"},{\"include\":\"#base_expression\"},{\"include\":\"#any_variable\"},{\"include\":\"#any_property\"}]},\"letter\":{\"match\":\"\\\\\\\\b(?:true|false|null)\\\\\\\\b\",\"name\":\"constant.language.gdscript\"},\"line_continuation\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.continuation.line.gdscript\"},\"2\":{\"name\":\"invalid.illegal.line.continuation.gdscript\"}},\"match\":\"(\\\\\\\\\\\\\\\\)\\\\\\\\s*(\\\\\\\\S.*$\\\\\\\\n?)\"},{\"begin\":\"(\\\\\\\\\\\\\\\\)\\\\\\\\s*$\\\\\\\\n?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.continuation.line.gdscript\"}},\"end\":\"(?=^\\\\\\\\s*$)|(?!(\\\\\\\\s*[rR]?(\\\\\\\\'\\\\\\\\'\\\\\\\\'|\\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"|\\\\\\\\'|\\\\\\\\\\\\\"))|(\\\\\\\\G$))\",\"patterns\":[{\"include\":\"#base_expression\"}]}]},\"loose_default\":{\"begin\":\"(=)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.gdscript\"}},\"end\":\"(,)|(?=\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.parameters.gdscript\"}},\"patterns\":[{\"include\":\"#base_expression\"}]},\"match_keyword\":{\"captures\":{\"1\":{\"name\":\"keyword.control.gdscript\"}},\"match\":\"^\\\\n\\\\\\\\s*(match)\"},\"nodepath_function\":{\"begin\":\"(get_node_or_null|has_node|has_node_and_resource|find_node|get_node)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.gdscript\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.gdscript\"}},\"contentName\":\"meta.function.parameters.gdscript\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.gdscript\"}},\"name\":\"meta.function.gdscript\",\"patterns\":[{\"begin\":\"(\\\\\"|')\",\"end\":\"\\\\\\\\1\",\"name\":\"string.quoted.gdscript meta.literal.nodepath.gdscript constant.character.escape\",\"patterns\":[{\"match\":\"%\",\"name\":\"keyword.control.flow\"}]},{\"include\":\"#base_expression\"}]},\"nodepath_object\":{\"begin\":\"(NodePath)\\\\\\\\s*(?:\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.class.library.gdscript\"}},\"end\":\"(?:\\\\\\\\))\",\"name\":\"meta.literal.nodepath.gdscript\",\"patterns\":[{\"begin\":\"(\\\\\"|')\",\"end\":\"\\\\\\\\1\",\"name\":\"string.quoted.gdscript constant.character.escape.gdscript\",\"patterns\":[{\"match\":\"%\",\"name\":\"keyword.control.flow.gdscript\"}]}]},\"numbers\":{\"patterns\":[{\"match\":\"0b[01_]+\",\"name\":\"constant.numeric.integer.binary.gdscript\"},{\"match\":\"0x[0-9A-Fa-f_]+\",\"name\":\"constant.numeric.integer.hexadecimal.gdscript\"},{\"match\":\"\\\\\\\\.[0-9][0-9_]*([eE][+-]?[0-9_]+)?\",\"name\":\"constant.numeric.float.gdscript\"},{\"match\":\"([0-9][0-9_]*)?\\\\\\\\.[0-9_]*([eE][+-]?[0-9_]+)?\",\"name\":\"constant.numeric.float.gdscript\"},{\"match\":\"[0-9][0-9_]*[eE][+-]?[0-9_]+\",\"name\":\"constant.numeric.float.gdscript\"},{\"match\":\"[-]?[0-9][0-9_]*\",\"name\":\"constant.numeric.integer.gdscript\"}]},\"operators\":{\"patterns\":[{\"include\":\"#wordlike_operator\"},{\"include\":\"#boolean_operator\"},{\"include\":\"#arithmetic_operator\"},{\"include\":\"#bitwise_operator\"},{\"include\":\"#compare_operator\"}]},\"parameters\":{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.begin.gdscript\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.gdscript\"}},\"name\":\"meta.function.parameters.gdscript\",\"patterns\":[{\"include\":\"#annotated_parameter\"},{\"captures\":{\"1\":{\"name\":\"variable.parameter.function.language.gdscript\"},\"2\":{\"name\":\"punctuation.separator.parameters.gdscript\"}},\"match\":\"([a-zA-Z_]\\\\\\\\w*)\\\\\\\\s*(?:(,)|(?=[)#\\\\\\\\n=]))\"},{\"include\":\"#comment\"},{\"include\":\"#loose_default\"}]},\"pascal_case_class\":{\"match\":\"\\\\\\\\b([A-Z]+[a-z_0-9]*([A-Z]?[a-z_0-9]+)*[A-Z]?)\\\\\\\\b\",\"name\":\"entity.name.type.class.gdscript\"},\"round_braces\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.begin.gdscript\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.end.gdscript\"}},\"patterns\":[{\"include\":\"#base_expression\"},{\"include\":\"#any_variable\"}]},\"self\":{\"match\":\"\\\\\\\\bself\\\\\\\\b\",\"name\":\"variable.language.gdscript\"},\"signal_declaration\":{\"begin\":\"\\\\\\\\s*(signal)\\\\\\\\s+([a-zA-Z_]\\\\\\\\w*)\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.language.gdscript storage.type.function.gdscript\"},\"2\":{\"name\":\"entity.name.function.gdscript\"}},\"end\":\"((?=[#'\\\\\"\\\\\\\\n]))\",\"name\":\"meta.signal.gdscript\",\"patterns\":[{\"include\":\"#parameters\"},{\"include\":\"#line_continuation\"}]},\"signal_declaration_bare\":{\"captures\":{\"1\":{\"name\":\"keyword.language.gdscript storage.type.function.gdscript\"},\"2\":{\"name\":\"entity.name.function.gdscript\"}},\"match\":\"\\\\\\\\s*(signal)\\\\\\\\s+([a-zA-Z_]\\\\\\\\w*)(?=[\\\\\\\\n\\\\\\\\s])\",\"name\":\"meta.signal.gdscript\"},\"square_braces\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.list.begin.gdscript\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.list.end.gdscript\"}},\"patterns\":[{\"include\":\"#base_expression\"},{\"include\":\"#any_variable\"}]},\"statement\":{\"patterns\":[{\"include\":\"#extends_statement\"}]},\"statement_keyword\":{\"patterns\":[{\"match\":\"\\\\\\\\b(?<!\\\\\\\\.)(continue|assert|break|elif|else|if|pass|return|while)\\\\\\\\b\",\"name\":\"keyword.control.flow.gdscript\"},{\"match\":\"\\\\\\\\b(?<!\\\\\\\\.)(class)\\\\\\\\b\",\"name\":\"storage.type.class.gdscript\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.flow.gdscript\"}},\"match\":\"^\\\\\\\\s*(case|match)(?=\\\\\\\\s*([-+\\\\\\\\w\\\\\\\\d(\\\\\\\\[{'\\\\\":#]|$))\\\\\\\\b\"}]},\"string_bracket_placeholders\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.gdscript\"},\"3\":{\"name\":\"storage.type.format.gdscript\"},\"4\":{\"name\":\"storage.type.format.gdscript\"}},\"match\":\"({{|}}|(?:{\\\\\\\\w*(\\\\\\\\.[[:alpha:]_]\\\\\\\\w*|\\\\\\\\[[^\\\\\\\\]'\\\\\"]+\\\\\\\\])*(![rsa])?(:\\\\\\\\w?[<>=^]?[-+ ]?\\\\\\\\#?\\\\\\\\d*,?(\\\\\\\\.\\\\\\\\d+)?[bcdeEfFgGnosxX%]?)?}))\",\"name\":\"meta.format.brace.gdscript\"},{\"captures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.gdscript\"},\"3\":{\"name\":\"storage.type.format.gdscript\"},\"4\":{\"name\":\"storage.type.format.gdscript\"}},\"match\":\"({\\\\\\\\w*(\\\\\\\\.[[:alpha:]_]\\\\\\\\w*|\\\\\\\\[[^\\\\\\\\]'\\\\\"]+\\\\\\\\])*(![rsa])?(:)[^'\\\\\"{}\\\\\\\\n]*(?:\\\\\\\\{[^'\\\\\"}\\\\\\\\n]*?\\\\\\\\}[^'\\\\\"{}\\\\\\\\n]*)*})\",\"name\":\"meta.format.brace.gdscript\"}]},\"string_percent_placeholders\":{\"captures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.gdscript\"}},\"match\":\"(%(\\\\\\\\([\\\\\\\\w\\\\\\\\s]*\\\\\\\\))?[-+#0 ]*(\\\\\\\\d+|\\\\\\\\*)?(\\\\\\\\.(\\\\\\\\d+|\\\\\\\\*))?([hlL])?[diouxXeEfFgGcrsab%])\",\"name\":\"meta.format.percent.gdscript\"},\"strings\":{\"begin\":\"(r)?(\\\\\"\\\\\"\\\\\"|'''|\\\\\"|')\",\"beginCaptures\":{\"1\":{\"name\":\"constant.character.escape.gdscript\"}},\"end\":\"\\\\\\\\2\",\"name\":\"string.quoted.gdscript\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.gdscript\"},{\"include\":\"#string_percent_placeholders\"},{\"include\":\"#string_bracket_placeholders\"}]},\"variable_declaration\":{\"begin\":\"\\\\\\\\b(?:(var)|(const))\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.language.gdscript storage.type.var.gdscript\"},\"2\":{\"name\":\"keyword.language.gdscript storage.type.const.gdscript\"}},\"end\":\"$|;\",\"name\":\"meta.variable.declaration.gdscript\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.annotation.gdscript\"},\"2\":{\"name\":\"keyword.language.gdscript storage.type.const.gdscript\"},\"3\":{\"name\":\"entity.name.function.gdscript\"}},\"match\":\"(:)?\\\\\\\\s*(set|get)\\\\\\\\s+=\\\\\\\\s+([a-zA-Z_]\\\\\\\\w*)\"},{\"match\":\":=|=(?!=)\",\"name\":\"keyword.operator.assignment.gdscript\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.annotation.gdscript\"},\"2\":{\"name\":\"entity.name.type.class.gdscript\"}},\"match\":\"(:)\\\\\\\\s*([a-zA-Z_]\\\\\\\\w*)?\"},{\"captures\":{\"1\":{\"name\":\"keyword.language.gdscript storage.type.const.gdscript\"},\"2\":{\"name\":\"entity.name.function.gdscript\"},\"3\":{\"name\":\"entity.name.function.gdscript\"}},\"match\":\"(setget)\\\\\\\\s+([a-zA-Z_]\\\\\\\\w*)(?:[,]\\\\\\\\s*([a-zA-Z_]\\\\\\\\w*))?\"},{\"include\":\"#expression\"},{\"include\":\"#letter\"},{\"include\":\"#any_variable\"},{\"include\":\"#any_property\"},{\"include\":\"#keywords\"}]},\"wordlike_operator\":{\"match\":\"\\\\\\\\b(and|or|not)\\\\\\\\b\",\"name\":\"keyword.operator.wordlike.gdscript\"}},\"scopeName\":\"source.gdscript\"}`)),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Dgyr3wWZ.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"[\",\"]\"],[\"(\",\")\"],[\"{\",\"}\"]],autoClosingPairs:[{open:'\"',close:'\"',notIn:[\"string\",\"comment\",\"identifier\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\",\"identifier\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\",\"identifier\"]},{open:\"{\",close:\"}\",notIn:[\"string\",\"comment\",\"identifier\"]}]},t={defaultToken:\"\",tokenPostfix:\".pq\",ignoreCase:!1,brackets:[{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"{\",close:\"}\",token:\"delimiter.brackets\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],operatorKeywords:[\"and\",\"not\",\"or\"],keywords:[\"as\",\"each\",\"else\",\"error\",\"false\",\"if\",\"in\",\"is\",\"let\",\"meta\",\"otherwise\",\"section\",\"shared\",\"then\",\"true\",\"try\",\"type\"],constructors:[\"#binary\",\"#date\",\"#datetime\",\"#datetimezone\",\"#duration\",\"#table\",\"#time\"],constants:[\"#infinity\",\"#nan\",\"#sections\",\"#shared\"],typeKeywords:[\"action\",\"any\",\"anynonnull\",\"none\",\"null\",\"logical\",\"number\",\"time\",\"date\",\"datetime\",\"datetimezone\",\"duration\",\"text\",\"binary\",\"list\",\"record\",\"table\",\"function\"],builtinFunctions:[\"Access.Database\",\"Action.Return\",\"Action.Sequence\",\"Action.Try\",\"ActiveDirectory.Domains\",\"AdoDotNet.DataSource\",\"AdoDotNet.Query\",\"AdobeAnalytics.Cubes\",\"AnalysisServices.Database\",\"AnalysisServices.Databases\",\"AzureStorage.BlobContents\",\"AzureStorage.Blobs\",\"AzureStorage.Tables\",\"Binary.Buffer\",\"Binary.Combine\",\"Binary.Compress\",\"Binary.Decompress\",\"Binary.End\",\"Binary.From\",\"Binary.FromList\",\"Binary.FromText\",\"Binary.InferContentType\",\"Binary.Length\",\"Binary.ToList\",\"Binary.ToText\",\"BinaryFormat.7BitEncodedSignedInteger\",\"BinaryFormat.7BitEncodedUnsignedInteger\",\"BinaryFormat.Binary\",\"BinaryFormat.Byte\",\"BinaryFormat.ByteOrder\",\"BinaryFormat.Choice\",\"BinaryFormat.Decimal\",\"BinaryFormat.Double\",\"BinaryFormat.Group\",\"BinaryFormat.Length\",\"BinaryFormat.List\",\"BinaryFormat.Null\",\"BinaryFormat.Record\",\"BinaryFormat.SignedInteger16\",\"BinaryFormat.SignedInteger32\",\"BinaryFormat.SignedInteger64\",\"BinaryFormat.Single\",\"BinaryFormat.Text\",\"BinaryFormat.Transform\",\"BinaryFormat.UnsignedInteger16\",\"BinaryFormat.UnsignedInteger32\",\"BinaryFormat.UnsignedInteger64\",\"Byte.From\",\"Character.FromNumber\",\"Character.ToNumber\",\"Combiner.CombineTextByDelimiter\",\"Combiner.CombineTextByEachDelimiter\",\"Combiner.CombineTextByLengths\",\"Combiner.CombineTextByPositions\",\"Combiner.CombineTextByRanges\",\"Comparer.Equals\",\"Comparer.FromCulture\",\"Comparer.Ordinal\",\"Comparer.OrdinalIgnoreCase\",\"Csv.Document\",\"Cube.AddAndExpandDimensionColumn\",\"Cube.AddMeasureColumn\",\"Cube.ApplyParameter\",\"Cube.AttributeMemberId\",\"Cube.AttributeMemberProperty\",\"Cube.CollapseAndRemoveColumns\",\"Cube.Dimensions\",\"Cube.DisplayFolders\",\"Cube.Measures\",\"Cube.Parameters\",\"Cube.Properties\",\"Cube.PropertyKey\",\"Cube.ReplaceDimensions\",\"Cube.Transform\",\"Currency.From\",\"DB2.Database\",\"Date.AddDays\",\"Date.AddMonths\",\"Date.AddQuarters\",\"Date.AddWeeks\",\"Date.AddYears\",\"Date.Day\",\"Date.DayOfWeek\",\"Date.DayOfWeekName\",\"Date.DayOfYear\",\"Date.DaysInMonth\",\"Date.EndOfDay\",\"Date.EndOfMonth\",\"Date.EndOfQuarter\",\"Date.EndOfWeek\",\"Date.EndOfYear\",\"Date.From\",\"Date.FromText\",\"Date.IsInCurrentDay\",\"Date.IsInCurrentMonth\",\"Date.IsInCurrentQuarter\",\"Date.IsInCurrentWeek\",\"Date.IsInCurrentYear\",\"Date.IsInNextDay\",\"Date.IsInNextMonth\",\"Date.IsInNextNDays\",\"Date.IsInNextNMonths\",\"Date.IsInNextNQuarters\",\"Date.IsInNextNWeeks\",\"Date.IsInNextNYears\",\"Date.IsInNextQuarter\",\"Date.IsInNextWeek\",\"Date.IsInNextYear\",\"Date.IsInPreviousDay\",\"Date.IsInPreviousMonth\",\"Date.IsInPreviousNDays\",\"Date.IsInPreviousNMonths\",\"Date.IsInPreviousNQuarters\",\"Date.IsInPreviousNWeeks\",\"Date.IsInPreviousNYears\",\"Date.IsInPreviousQuarter\",\"Date.IsInPreviousWeek\",\"Date.IsInPreviousYear\",\"Date.IsInYearToDate\",\"Date.IsLeapYear\",\"Date.Month\",\"Date.MonthName\",\"Date.QuarterOfYear\",\"Date.StartOfDay\",\"Date.StartOfMonth\",\"Date.StartOfQuarter\",\"Date.StartOfWeek\",\"Date.StartOfYear\",\"Date.ToRecord\",\"Date.ToText\",\"Date.WeekOfMonth\",\"Date.WeekOfYear\",\"Date.Year\",\"DateTime.AddZone\",\"DateTime.Date\",\"DateTime.FixedLocalNow\",\"DateTime.From\",\"DateTime.FromFileTime\",\"DateTime.FromText\",\"DateTime.IsInCurrentHour\",\"DateTime.IsInCurrentMinute\",\"DateTime.IsInCurrentSecond\",\"DateTime.IsInNextHour\",\"DateTime.IsInNextMinute\",\"DateTime.IsInNextNHours\",\"DateTime.IsInNextNMinutes\",\"DateTime.IsInNextNSeconds\",\"DateTime.IsInNextSecond\",\"DateTime.IsInPreviousHour\",\"DateTime.IsInPreviousMinute\",\"DateTime.IsInPreviousNHours\",\"DateTime.IsInPreviousNMinutes\",\"DateTime.IsInPreviousNSeconds\",\"DateTime.IsInPreviousSecond\",\"DateTime.LocalNow\",\"DateTime.Time\",\"DateTime.ToRecord\",\"DateTime.ToText\",\"DateTimeZone.FixedLocalNow\",\"DateTimeZone.FixedUtcNow\",\"DateTimeZone.From\",\"DateTimeZone.FromFileTime\",\"DateTimeZone.FromText\",\"DateTimeZone.LocalNow\",\"DateTimeZone.RemoveZone\",\"DateTimeZone.SwitchZone\",\"DateTimeZone.ToLocal\",\"DateTimeZone.ToRecord\",\"DateTimeZone.ToText\",\"DateTimeZone.ToUtc\",\"DateTimeZone.UtcNow\",\"DateTimeZone.ZoneHours\",\"DateTimeZone.ZoneMinutes\",\"Decimal.From\",\"Diagnostics.ActivityId\",\"Diagnostics.Trace\",\"DirectQueryCapabilities.From\",\"Double.From\",\"Duration.Days\",\"Duration.From\",\"Duration.FromText\",\"Duration.Hours\",\"Duration.Minutes\",\"Duration.Seconds\",\"Duration.ToRecord\",\"Duration.ToText\",\"Duration.TotalDays\",\"Duration.TotalHours\",\"Duration.TotalMinutes\",\"Duration.TotalSeconds\",\"Embedded.Value\",\"Error.Record\",\"Excel.CurrentWorkbook\",\"Excel.Workbook\",\"Exchange.Contents\",\"Expression.Constant\",\"Expression.Evaluate\",\"Expression.Identifier\",\"Facebook.Graph\",\"File.Contents\",\"Folder.Contents\",\"Folder.Files\",\"Function.From\",\"Function.Invoke\",\"Function.InvokeAfter\",\"Function.IsDataSource\",\"GoogleAnalytics.Accounts\",\"Guid.From\",\"HdInsight.Containers\",\"HdInsight.Contents\",\"HdInsight.Files\",\"Hdfs.Contents\",\"Hdfs.Files\",\"Informix.Database\",\"Int16.From\",\"Int32.From\",\"Int64.From\",\"Int8.From\",\"ItemExpression.From\",\"Json.Document\",\"Json.FromValue\",\"Lines.FromBinary\",\"Lines.FromText\",\"Lines.ToBinary\",\"Lines.ToText\",\"List.Accumulate\",\"List.AllTrue\",\"List.Alternate\",\"List.AnyTrue\",\"List.Average\",\"List.Buffer\",\"List.Combine\",\"List.Contains\",\"List.ContainsAll\",\"List.ContainsAny\",\"List.Count\",\"List.Covariance\",\"List.DateTimeZones\",\"List.DateTimes\",\"List.Dates\",\"List.Difference\",\"List.Distinct\",\"List.Durations\",\"List.FindText\",\"List.First\",\"List.FirstN\",\"List.Generate\",\"List.InsertRange\",\"List.Intersect\",\"List.IsDistinct\",\"List.IsEmpty\",\"List.Last\",\"List.LastN\",\"List.MatchesAll\",\"List.MatchesAny\",\"List.Max\",\"List.MaxN\",\"List.Median\",\"List.Min\",\"List.MinN\",\"List.Mode\",\"List.Modes\",\"List.NonNullCount\",\"List.Numbers\",\"List.PositionOf\",\"List.PositionOfAny\",\"List.Positions\",\"List.Product\",\"List.Random\",\"List.Range\",\"List.RemoveFirstN\",\"List.RemoveItems\",\"List.RemoveLastN\",\"List.RemoveMatchingItems\",\"List.RemoveNulls\",\"List.RemoveRange\",\"List.Repeat\",\"List.ReplaceMatchingItems\",\"List.ReplaceRange\",\"List.ReplaceValue\",\"List.Reverse\",\"List.Select\",\"List.Single\",\"List.SingleOrDefault\",\"List.Skip\",\"List.Sort\",\"List.StandardDeviation\",\"List.Sum\",\"List.Times\",\"List.Transform\",\"List.TransformMany\",\"List.Union\",\"List.Zip\",\"Logical.From\",\"Logical.FromText\",\"Logical.ToText\",\"MQ.Queue\",\"MySQL.Database\",\"Number.Abs\",\"Number.Acos\",\"Number.Asin\",\"Number.Atan\",\"Number.Atan2\",\"Number.BitwiseAnd\",\"Number.BitwiseNot\",\"Number.BitwiseOr\",\"Number.BitwiseShiftLeft\",\"Number.BitwiseShiftRight\",\"Number.BitwiseXor\",\"Number.Combinations\",\"Number.Cos\",\"Number.Cosh\",\"Number.Exp\",\"Number.Factorial\",\"Number.From\",\"Number.FromText\",\"Number.IntegerDivide\",\"Number.IsEven\",\"Number.IsNaN\",\"Number.IsOdd\",\"Number.Ln\",\"Number.Log\",\"Number.Log10\",\"Number.Mod\",\"Number.Permutations\",\"Number.Power\",\"Number.Random\",\"Number.RandomBetween\",\"Number.Round\",\"Number.RoundAwayFromZero\",\"Number.RoundDown\",\"Number.RoundTowardZero\",\"Number.RoundUp\",\"Number.Sign\",\"Number.Sin\",\"Number.Sinh\",\"Number.Sqrt\",\"Number.Tan\",\"Number.Tanh\",\"Number.ToText\",\"OData.Feed\",\"Odbc.DataSource\",\"Odbc.Query\",\"OleDb.DataSource\",\"OleDb.Query\",\"Oracle.Database\",\"Percentage.From\",\"PostgreSQL.Database\",\"RData.FromBinary\",\"Record.AddField\",\"Record.Combine\",\"Record.Field\",\"Record.FieldCount\",\"Record.FieldNames\",\"Record.FieldOrDefault\",\"Record.FieldValues\",\"Record.FromList\",\"Record.FromTable\",\"Record.HasFields\",\"Record.RemoveFields\",\"Record.RenameFields\",\"Record.ReorderFields\",\"Record.SelectFields\",\"Record.ToList\",\"Record.ToTable\",\"Record.TransformFields\",\"Replacer.ReplaceText\",\"Replacer.ReplaceValue\",\"RowExpression.Column\",\"RowExpression.From\",\"Salesforce.Data\",\"Salesforce.Reports\",\"SapBusinessWarehouse.Cubes\",\"SapHana.Database\",\"SharePoint.Contents\",\"SharePoint.Files\",\"SharePoint.Tables\",\"Single.From\",\"Soda.Feed\",\"Splitter.SplitByNothing\",\"Splitter.SplitTextByAnyDelimiter\",\"Splitter.SplitTextByDelimiter\",\"Splitter.SplitTextByEachDelimiter\",\"Splitter.SplitTextByLengths\",\"Splitter.SplitTextByPositions\",\"Splitter.SplitTextByRanges\",\"Splitter.SplitTextByRepeatedLengths\",\"Splitter.SplitTextByWhitespace\",\"Sql.Database\",\"Sql.Databases\",\"SqlExpression.SchemaFrom\",\"SqlExpression.ToExpression\",\"Sybase.Database\",\"Table.AddColumn\",\"Table.AddIndexColumn\",\"Table.AddJoinColumn\",\"Table.AddKey\",\"Table.AggregateTableColumn\",\"Table.AlternateRows\",\"Table.Buffer\",\"Table.Column\",\"Table.ColumnCount\",\"Table.ColumnNames\",\"Table.ColumnsOfType\",\"Table.Combine\",\"Table.CombineColumns\",\"Table.Contains\",\"Table.ContainsAll\",\"Table.ContainsAny\",\"Table.DemoteHeaders\",\"Table.Distinct\",\"Table.DuplicateColumn\",\"Table.ExpandListColumn\",\"Table.ExpandRecordColumn\",\"Table.ExpandTableColumn\",\"Table.FillDown\",\"Table.FillUp\",\"Table.FilterWithDataTable\",\"Table.FindText\",\"Table.First\",\"Table.FirstN\",\"Table.FirstValue\",\"Table.FromColumns\",\"Table.FromList\",\"Table.FromPartitions\",\"Table.FromRecords\",\"Table.FromRows\",\"Table.FromValue\",\"Table.Group\",\"Table.HasColumns\",\"Table.InsertRows\",\"Table.IsDistinct\",\"Table.IsEmpty\",\"Table.Join\",\"Table.Keys\",\"Table.Last\",\"Table.LastN\",\"Table.MatchesAllRows\",\"Table.MatchesAnyRows\",\"Table.Max\",\"Table.MaxN\",\"Table.Min\",\"Table.MinN\",\"Table.NestedJoin\",\"Table.Partition\",\"Table.PartitionValues\",\"Table.Pivot\",\"Table.PositionOf\",\"Table.PositionOfAny\",\"Table.PrefixColumns\",\"Table.Profile\",\"Table.PromoteHeaders\",\"Table.Range\",\"Table.RemoveColumns\",\"Table.RemoveFirstN\",\"Table.RemoveLastN\",\"Table.RemoveMatchingRows\",\"Table.RemoveRows\",\"Table.RemoveRowsWithErrors\",\"Table.RenameColumns\",\"Table.ReorderColumns\",\"Table.Repeat\",\"Table.ReplaceErrorValues\",\"Table.ReplaceKeys\",\"Table.ReplaceMatchingRows\",\"Table.ReplaceRelationshipIdentity\",\"Table.ReplaceRows\",\"Table.ReplaceValue\",\"Table.ReverseRows\",\"Table.RowCount\",\"Table.Schema\",\"Table.SelectColumns\",\"Table.SelectRows\",\"Table.SelectRowsWithErrors\",\"Table.SingleRow\",\"Table.Skip\",\"Table.Sort\",\"Table.SplitColumn\",\"Table.ToColumns\",\"Table.ToList\",\"Table.ToRecords\",\"Table.ToRows\",\"Table.TransformColumnNames\",\"Table.TransformColumnTypes\",\"Table.TransformColumns\",\"Table.TransformRows\",\"Table.Transpose\",\"Table.Unpivot\",\"Table.UnpivotOtherColumns\",\"Table.View\",\"Table.ViewFunction\",\"TableAction.DeleteRows\",\"TableAction.InsertRows\",\"TableAction.UpdateRows\",\"Tables.GetRelationships\",\"Teradata.Database\",\"Text.AfterDelimiter\",\"Text.At\",\"Text.BeforeDelimiter\",\"Text.BetweenDelimiters\",\"Text.Clean\",\"Text.Combine\",\"Text.Contains\",\"Text.End\",\"Text.EndsWith\",\"Text.Format\",\"Text.From\",\"Text.FromBinary\",\"Text.Insert\",\"Text.Length\",\"Text.Lower\",\"Text.Middle\",\"Text.NewGuid\",\"Text.PadEnd\",\"Text.PadStart\",\"Text.PositionOf\",\"Text.PositionOfAny\",\"Text.Proper\",\"Text.Range\",\"Text.Remove\",\"Text.RemoveRange\",\"Text.Repeat\",\"Text.Replace\",\"Text.ReplaceRange\",\"Text.Select\",\"Text.Split\",\"Text.SplitAny\",\"Text.Start\",\"Text.StartsWith\",\"Text.ToBinary\",\"Text.ToList\",\"Text.Trim\",\"Text.TrimEnd\",\"Text.TrimStart\",\"Text.Upper\",\"Time.EndOfHour\",\"Time.From\",\"Time.FromText\",\"Time.Hour\",\"Time.Minute\",\"Time.Second\",\"Time.StartOfHour\",\"Time.ToRecord\",\"Time.ToText\",\"Type.AddTableKey\",\"Type.ClosedRecord\",\"Type.Facets\",\"Type.ForFunction\",\"Type.ForRecord\",\"Type.FunctionParameters\",\"Type.FunctionRequiredParameters\",\"Type.FunctionReturn\",\"Type.Is\",\"Type.IsNullable\",\"Type.IsOpenRecord\",\"Type.ListItem\",\"Type.NonNullable\",\"Type.OpenRecord\",\"Type.RecordFields\",\"Type.ReplaceFacets\",\"Type.ReplaceTableKeys\",\"Type.TableColumn\",\"Type.TableKeys\",\"Type.TableRow\",\"Type.TableSchema\",\"Type.Union\",\"Uri.BuildQueryString\",\"Uri.Combine\",\"Uri.EscapeDataString\",\"Uri.Parts\",\"Value.Add\",\"Value.As\",\"Value.Compare\",\"Value.Divide\",\"Value.Equals\",\"Value.Firewall\",\"Value.FromText\",\"Value.Is\",\"Value.Metadata\",\"Value.Multiply\",\"Value.NativeQuery\",\"Value.NullableEquals\",\"Value.RemoveMetadata\",\"Value.ReplaceMetadata\",\"Value.ReplaceType\",\"Value.Subtract\",\"Value.Type\",\"ValueAction.NativeStatement\",\"ValueAction.Replace\",\"Variable.Value\",\"Web.Contents\",\"Web.Page\",\"WebAction.Request\",\"Xml.Document\",\"Xml.Tables\"],builtinConstants:[\"BinaryEncoding.Base64\",\"BinaryEncoding.Hex\",\"BinaryOccurrence.Optional\",\"BinaryOccurrence.Repeating\",\"BinaryOccurrence.Required\",\"ByteOrder.BigEndian\",\"ByteOrder.LittleEndian\",\"Compression.Deflate\",\"Compression.GZip\",\"CsvStyle.QuoteAfterDelimiter\",\"CsvStyle.QuoteAlways\",\"Culture.Current\",\"Day.Friday\",\"Day.Monday\",\"Day.Saturday\",\"Day.Sunday\",\"Day.Thursday\",\"Day.Tuesday\",\"Day.Wednesday\",\"ExtraValues.Error\",\"ExtraValues.Ignore\",\"ExtraValues.List\",\"GroupKind.Global\",\"GroupKind.Local\",\"JoinAlgorithm.Dynamic\",\"JoinAlgorithm.LeftHash\",\"JoinAlgorithm.LeftIndex\",\"JoinAlgorithm.PairwiseHash\",\"JoinAlgorithm.RightHash\",\"JoinAlgorithm.RightIndex\",\"JoinAlgorithm.SortMerge\",\"JoinKind.FullOuter\",\"JoinKind.Inner\",\"JoinKind.LeftAnti\",\"JoinKind.LeftOuter\",\"JoinKind.RightAnti\",\"JoinKind.RightOuter\",\"JoinSide.Left\",\"JoinSide.Right\",\"MissingField.Error\",\"MissingField.Ignore\",\"MissingField.UseNull\",\"Number.E\",\"Number.Epsilon\",\"Number.NaN\",\"Number.NegativeInfinity\",\"Number.PI\",\"Number.PositiveInfinity\",\"Occurrence.All\",\"Occurrence.First\",\"Occurrence.Last\",\"Occurrence.Optional\",\"Occurrence.Repeating\",\"Occurrence.Required\",\"Order.Ascending\",\"Order.Descending\",\"Precision.Decimal\",\"Precision.Double\",\"QuoteStyle.Csv\",\"QuoteStyle.None\",\"RelativePosition.FromEnd\",\"RelativePosition.FromStart\",\"RoundingMode.AwayFromZero\",\"RoundingMode.Down\",\"RoundingMode.ToEven\",\"RoundingMode.TowardZero\",\"RoundingMode.Up\",\"SapHanaDistribution.All\",\"SapHanaDistribution.Connection\",\"SapHanaDistribution.Off\",\"SapHanaDistribution.Statement\",\"SapHanaRangeOperator.Equals\",\"SapHanaRangeOperator.GreaterThan\",\"SapHanaRangeOperator.GreaterThanOrEquals\",\"SapHanaRangeOperator.LessThan\",\"SapHanaRangeOperator.LessThanOrEquals\",\"SapHanaRangeOperator.NotEquals\",\"TextEncoding.Ascii\",\"TextEncoding.BigEndianUnicode\",\"TextEncoding.Unicode\",\"TextEncoding.Utf16\",\"TextEncoding.Utf8\",\"TextEncoding.Windows\",\"TraceLevel.Critical\",\"TraceLevel.Error\",\"TraceLevel.Information\",\"TraceLevel.Verbose\",\"TraceLevel.Warning\",\"WebMethod.Delete\",\"WebMethod.Get\",\"WebMethod.Head\",\"WebMethod.Patch\",\"WebMethod.Post\",\"WebMethod.Put\"],builtinTypes:[\"Action.Type\",\"Any.Type\",\"Binary.Type\",\"BinaryEncoding.Type\",\"BinaryOccurrence.Type\",\"Byte.Type\",\"ByteOrder.Type\",\"Character.Type\",\"Compression.Type\",\"CsvStyle.Type\",\"Currency.Type\",\"Date.Type\",\"DateTime.Type\",\"DateTimeZone.Type\",\"Day.Type\",\"Decimal.Type\",\"Double.Type\",\"Duration.Type\",\"ExtraValues.Type\",\"Function.Type\",\"GroupKind.Type\",\"Guid.Type\",\"Int16.Type\",\"Int32.Type\",\"Int64.Type\",\"Int8.Type\",\"JoinAlgorithm.Type\",\"JoinKind.Type\",\"JoinSide.Type\",\"List.Type\",\"Logical.Type\",\"MissingField.Type\",\"None.Type\",\"Null.Type\",\"Number.Type\",\"Occurrence.Type\",\"Order.Type\",\"Password.Type\",\"Percentage.Type\",\"Precision.Type\",\"QuoteStyle.Type\",\"Record.Type\",\"RelativePosition.Type\",\"RoundingMode.Type\",\"SapHanaDistribution.Type\",\"SapHanaRangeOperator.Type\",\"Single.Type\",\"Table.Type\",\"Text.Type\",\"TextEncoding.Type\",\"Time.Type\",\"TraceLevel.Type\",\"Type.Type\",\"Uri.Type\",\"WebMethod.Type\"],tokenizer:{root:[[/#\"[\\w \\.]+\"/,\"identifier.quote\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F]+/,\"number.hex\"],[/\\d+([eE][\\-+]?\\d+)?/,\"number\"],[/(#?[a-z]+)\\b/,{cases:{\"@typeKeywords\":\"type\",\"@keywords\":\"keyword\",\"@constants\":\"constant\",\"@constructors\":\"constructor\",\"@operatorKeywords\":\"operators\",\"@default\":\"identifier\"}}],[/\\b([A-Z][a-zA-Z0-9]+\\.Type)\\b/,{cases:{\"@builtinTypes\":\"type\",\"@default\":\"identifier\"}}],[/\\b([A-Z][a-zA-Z0-9]+\\.[A-Z][a-zA-Z0-9]+)\\b/,{cases:{\"@builtinFunctions\":\"keyword.function\",\"@builtinConstants\":\"constant\",\"@default\":\"identifier\"}}],[/\\b([a-zA-Z_][\\w\\.]*)\\b/,\"identifier\"],{include:\"@whitespace\"},{include:\"@comments\"},{include:\"@strings\"},[/[{}()\\[\\]]/,\"@brackets\"],[/([=\\+<>\\-\\*&@\\?\\/!])|([<>]=)|(<>)|(=>)|(\\.\\.\\.)|(\\.\\.)/,\"operators\"],[/[,;]/,\"delimiter\"]],whitespace:[[/\\s+/,\"white\"]],comments:[[\"\\\\/\\\\*\",\"comment\",\"@comment\"],[\"\\\\/\\\\/+.*\",\"comment\"]],comment:[[\"\\\\*\\\\/\",\"comment\",\"@pop\"],[\".\",\"comment\"]],strings:[['\"',\"string\",\"@string\"]],string:[['\"\"',\"string.escape\"],['\"',\"string\",\"@pop\"],[\".\",\"string\"]]}};export{e as conf,t as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/DhMKtDLN.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Qt Style Sheets\",\"name\":\"qss\",\"patterns\":[{\"include\":\"#comment-block\"},{\"include\":\"#rule-list\"},{\"include\":\"#selector\"}],\"repository\":{\"color\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(rgb|rgba|hsv|hsva|hsl|hsla)\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.qss\"}},\"description\":\"Color Type\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#comment-block\"},{\"include\":\"#number\"}]},{\"match\":\"\\\\\\\\b(white|black|red|darkred|green|darkgreen|blue|darkblue|cyan|darkcyan|magenta|darkmagenta|yellow|darkyellow|gray|darkgray|lightgray|transparent|color0|color1)\\\\\\\\b\",\"name\":\"support.constant.property-value.named-color.qss\"},{\"match\":\"#([0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\\\\\\\\b\",\"name\":\"support.constant.property-value.color.qss\"}]},\"comment-block\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.qss\"}]},\"icon-properties\":{\"patterns\":[{\"match\":\"\\\\\\\\b(backward-icon|cd-icon|computer-icon|desktop-icon|dialog-apply-icon|dialog-cancel-icon|dialog-close-icon|dialog-discard-icon|dialog-help-icon|dialog-no-icon|dialog-ok-icon|dialog-open-icon|dialog-reset-icon|dialog-save-icon|dialog-yes-icon|directory-closed-icon|directory-icon|directory-link-icon|directory-open-icon|dockwidget-close-icon|downarrow-icon|dvd-icon|file-icon|file-link-icon|filedialog-contentsview-icon|filedialog-detailedview-icon|filedialog-end-icon|filedialog-infoview-icon|filedialog-listview-icon|filedialog-new-directory-icon|filedialog-parent-directory-icon|filedialog-start-icon|floppy-icon|forward-icon|harddisk-icon|home-icon|leftarrow-icon|messagebox-critical-icon|messagebox-information-icon|messagebox-question-icon|messagebox-warning-icon|network-icon|rightarrow-icon|titlebar-contexthelp-icon|titlebar-maximize-icon|titlebar-menu-icon|titlebar-minimize-icon|titlebar-normal-icon|titlebar-close-icon|titlebar-shade-icon|titlebar-unshade-icon|trash-icon|uparrow-icon)\\\\\\\\b\",\"name\":\"support.type.property-name.qss\"}]},\"id-selector\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.qss\"},\"2\":{\"name\":\"entity.name.tag.qss\"}},\"match\":\"(#)([a-zA-Z][a-zA-Z0-9_-]*)\"}]},\"number\":{\"patterns\":[{\"description\":\"floating number\",\"match\":\"\\\\\\\\b(\\\\\\\\d+)?\\\\\\\\.(\\\\\\\\d+)\\\\\\\\b\",\"name\":\"constant.numeric.qss\"},{\"description\":\"percentage\",\"match\":\"\\\\\\\\b(\\\\\\\\d+)%\",\"name\":\"constant.numeric.qss\"},{\"description\":\"length\",\"match\":\"\\\\\\\\b(\\\\\\\\d+)(px|pt|em|ex)?\\\\\\\\b\",\"name\":\"constant.numeric.qss\"},{\"description\":\"integer\",\"match\":\"\\\\\\\\b(\\\\\\\\d+)\\\\\\\\b\",\"name\":\"constant.numeric.qss\"}]},\"properties\":{\"patterns\":[{\"include\":\"#property-values\"},{\"match\":\"\\\\\\\\b(paint-alternating-row-colors-for-empty-area|dialogbuttonbox-buttons-have-icons|titlebar-show-tooltips-on-buttons|messagebox-text-interaction-flags|lineedit-password-mask-delay|outline-bottom-right-radius|lineedit-password-character|selection-background-color|outline-bottom-left-radius|border-bottom-right-radius|alternate-background-color|widget-animation-duration|border-bottom-left-radius|show-decoration-selected|outline-top-right-radius|outline-top-left-radius|border-top-right-radius|border-top-left-radius|background-attachment|subcontrol-position|border-bottom-width|border-bottom-style|border-bottom-color|background-position|border-right-width|border-right-style|border-right-color|subcontrol-origin|border-left-width|border-left-style|border-left-color|background-origin|background-repeat|border-top-width|border-top-style|border-top-color|background-image|background-color|text-decoration|selection-color|background-clip|padding-bottom|outline-radius|outline-offset|image-position|gridline-color|padding-right|outline-style|outline-color|margin-bottom|button-layout|border-radius|border-bottom|padding-left|margin-right|border-width|border-style|border-image|border-color|border-right|padding-top|margin-left|font-weight|font-family|border-left|text-align|min-height|max-height|margin-top|font-style|border-top|background|min-width|max-width|icon-size|font-size|position|spacing|padding|outline|opacity|margin|height|bottom|border|width|right|image|color|left|font|top)\\\\\\\\b\",\"name\":\"support.type.property-name.qss\"},{\"include\":\"#icon-properties\"}]},\"property-selector\":{\"patterns\":[{\"begin\":\"\\\\\\\\[\",\"end\":\"\\\\\\\\]\",\"patterns\":[{\"include\":\"#comment-block\"},{\"include\":\"#string\"},{\"match\":\"\\\\\\\\b[_a-zA-Z]\\\\\\\\w*\\\\\\\\b\",\"name\":\"variable.parameter.qml\"}]}]},\"property-values\":{\"patterns\":[{\"begin\":\":\",\"end\":\";|(?=\\\\\\\\})\",\"patterns\":[{\"include\":\"#comment-block\"},{\"include\":\"#color\"},{\"begin\":\"\\\\\\\\b(qlineargradient|qradialgradient|qconicalgradient)\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.qss\"}},\"description\":\"Gradient Type\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#comment-block\"},{\"match\":\"\\\\\\\\b(x1|y1|x2|y2|stop|angle|radius|cx|cy|fx|fy)\\\\\\\\b\",\"name\":\"variable.parameter.qss\"},{\"include\":\"#color\"},{\"include\":\"#number\"}]},{\"begin\":\"\\\\\\\\b(url)\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.qss\"}},\"contentName\":\"string.unquoted.qss\",\"description\":\"URL Type\",\"end\":\"\\\\\\\\)\"},{\"match\":\"\\\\\\\\bpalette\\\\\\\\s*(?=\\\\\\\\()\\\\\\\\b\",\"name\":\"entity.name.function.qss\"},{\"match\":\"\\\\\\\\b(highlighted-text|alternate-base|line-through|link-visited|dot-dot-dash|window-text|button-text|bright-text|underline|no-repeat|highlight|overline|absolute|relative|repeat-y|repeat-x|midlight|selected|disabled|dot-dash|content|padding|oblique|stretch|repeat|window|shadow|button|border|margin|active|italic|normal|outset|groove|double|dotted|dashed|repeat|scroll|center|bottom|light|solid|ridge|inset|fixed|right|text|link|dark|base|bold|none|left|mid|off|top|on)\\\\\\\\b\",\"name\":\"support.constant.property-value.qss\"},{\"match\":\"\\\\\\\\b(true|false)\\\\\\\\b\",\"name\":\"constant.language.boolean.qss\"},{\"include\":\"#string\"},{\"include\":\"#number\"}]}]},\"pseudo-states\":{\"patterns\":[{\"match\":\"\\\\\\\\b(active|adjoins-item|alternate|bottom|checked|closable|closed|default|disabled|editable|edit-focus|enabled|exclusive|first|flat|floatable|focus|has-children|has-siblings|horizontal|hover|indeterminate|last|left|maximized|middle|minimized|movable|no-frame|non-exclusive|off|on|only-one|open|next-selected|pressed|previous-selected|read-only|right|selected|top|unchecked|vertical|window)\\\\\\\\b\",\"name\":\"keyword.control.qss\"}]},\"rule-list\":{\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"#comment-block\"},{\"include\":\"#properties\"},{\"include\":\"#icon-properties\"}]}]},\"selector\":{\"patterns\":[{\"include\":\"#stylable-widgets\"},{\"include\":\"#sub-controls\"},{\"include\":\"#pseudo-states\"},{\"include\":\"#property-selector\"},{\"include\":\"#id-selector\"}]},\"string\":{\"description\":\"String literal with double or signle quote.\",\"patterns\":[{\"begin\":\"'\",\"end\":\"'\",\"name\":\"string.quoted.single.qml\"},{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.qml\"}]},\"stylable-widgets\":{\"patterns\":[{\"match\":\"\\\\\\\\b(QAbstractScrollArea|QAbstractItemView|QCheckBox|QColumnView|QComboBox|QDateEdit|QDateTimeEdit|QDialog|QDialogButtonBox|QDockWidget|QDoubleSpinBox|QFrame|QGroupBox|QHeaderView|QLabel|QLineEdit|QListView|QListWidget|QMainWindow|QMenu|QMenuBar|QMessageBox|QProgressBar|QPlainTextEdit|QPushButton|QRadioButton|QScrollBar|QSizeGrip|QSlider|QSpinBox|QSplitter|QStatusBar|QTabBar|QTabWidget|QTableView|QTableWidget|QTextEdit|QTimeEdit|QToolBar|QToolButton|QToolBox|QToolTip|QTreeView|QTreeWidget|QWidget)\\\\\\\\b\",\"name\":\"entity.name.type.qss\"}]},\"sub-controls\":{\"patterns\":[{\"match\":\"\\\\\\\\b(add-line|add-page|branch|chunk|close-button|corner|down-arrow|down-button|drop-down|float-button|groove|indicator|handle|icon|item|left-arrow|left-corner|menu-arrow|menu-button|menu-indicator|right-arrow|pane|right-corner|scroller|section|separator|sub-line|sub-page|tab|tab-bar|tear|tearoff|text|title|up-arrow|up-button)\\\\\\\\b\",\"name\":\"entity.other.inherited-class.qss\"}]}},\"scopeName\":\"source.qss\"}`)),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DhUJRlN_.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Python\",\"name\":\"python\",\"patterns\":[{\"include\":\"#statement\"},{\"include\":\"#expression\"}],\"repository\":{\"annotated-parameter\":{\"begin\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"variable.parameter.function.language.python\"},\"2\":{\"name\":\"punctuation.separator.annotation.python\"}},\"end\":\"(,)|(?=\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.parameters.python\"}},\"patterns\":[{\"include\":\"#expression\"},{\"match\":\"=(?!=)\",\"name\":\"keyword.operator.assignment.python\"}]},\"assignment-operator\":{\"match\":\"<<=|>>=|//=|\\\\\\\\*\\\\\\\\*=|\\\\\\\\+=|-=|/=|@=|\\\\\\\\*=|%=|~=|\\\\\\\\^=|&=|\\\\\\\\|=|=(?!=)\",\"name\":\"keyword.operator.assignment.python\"},\"backticks\":{\"begin\":\"\\\\\\\\\\`\",\"end\":\"(?:\\\\\\\\\\`|(?<!\\\\\\\\\\\\\\\\)(\\\\\\\\n))\",\"name\":\"invalid.deprecated.backtick.python\",\"patterns\":[{\"include\":\"#expression\"}]},\"builtin-callables\":{\"patterns\":[{\"include\":\"#illegal-names\"},{\"include\":\"#illegal-object-name\"},{\"include\":\"#builtin-exceptions\"},{\"include\":\"#builtin-functions\"},{\"include\":\"#builtin-types\"}]},\"builtin-exceptions\":{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b((Arithmetic|Assertion|Attribute|Buffer|BlockingIO|BrokenPipe|ChildProcess|(Connection(Aborted|Refused|Reset)?)|EOF|Environment|FileExists|FileNotFound|FloatingPoint|IO|Import|Indentation|Index|Interrupted|IsADirectory|NotADirectory|Permission|ProcessLookup|Timeout|Key|Lookup|Memory|Name|NotImplemented|OS|Overflow|Reference|Runtime|Recursion|Syntax|System|Tab|Type|UnboundLocal|Unicode(Encode|Decode|Translate)?|Value|Windows|ZeroDivision|ModuleNotFound)Error|((Pending)?Deprecation|Runtime|Syntax|User|Future|Import|Unicode|Bytes|Resource)?Warning|SystemExit|Stop(Async)?Iteration|KeyboardInterrupt|GeneratorExit|(Base)?Exception)\\\\\\\\b\",\"name\":\"support.type.exception.python\"},\"builtin-functions\":{\"patterns\":[{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(__import__|abs|aiter|all|any|anext|ascii|bin|breakpoint|callable|chr|compile|copyright|credits|delattr|dir|divmod|enumerate|eval|exec|exit|filter|format|getattr|globals|hasattr|hash|help|hex|id|input|isinstance|issubclass|iter|len|license|locals|map|max|memoryview|min|next|oct|open|ord|pow|print|quit|range|reload|repr|reversed|round|setattr|sorted|sum|vars|zip)\\\\\\\\b\",\"name\":\"support.function.builtin.python\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(file|reduce|intern|raw_input|unicode|cmp|basestring|execfile|long|xrange)\\\\\\\\b\",\"name\":\"variable.legacy.builtin.python\"}]},\"builtin-possible-callables\":{\"patterns\":[{\"include\":\"#builtin-callables\"},{\"include\":\"#magic-names\"}]},\"builtin-types\":{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(bool|bytearray|bytes|classmethod|complex|dict|float|frozenset|int|list|object|property|set|slice|staticmethod|str|tuple|type|super)\\\\\\\\b\",\"name\":\"support.type.python\"},\"call-wrapper-inheritance\":{\"begin\":\"\\\\\\\\b(?=([[:alpha:]_]\\\\\\\\w*)\\\\\\\\s*(\\\\\\\\())\",\"comment\":\"same as a function call, but in inheritance context\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.python\"}},\"name\":\"meta.function-call.python\",\"patterns\":[{\"include\":\"#inheritance-name\"},{\"include\":\"#function-arguments\"}]},\"class-declaration\":{\"patterns\":[{\"begin\":\"\\\\\\\\s*(class)\\\\\\\\s+(?=[[:alpha:]_]\\\\\\\\w*\\\\\\\\s*(:|\\\\\\\\())\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.python\"}},\"end\":\"(:)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.class.begin.python\"}},\"name\":\"meta.class.python\",\"patterns\":[{\"include\":\"#class-name\"},{\"include\":\"#class-inheritance\"}]}]},\"class-inheritance\":{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.inheritance.begin.python\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.inheritance.end.python\"}},\"name\":\"meta.class.inheritance.python\",\"patterns\":[{\"match\":\"(\\\\\\\\*\\\\\\\\*|\\\\\\\\*)\",\"name\":\"keyword.operator.unpacking.arguments.python\"},{\"match\":\",\",\"name\":\"punctuation.separator.inheritance.python\"},{\"match\":\"=(?!=)\",\"name\":\"keyword.operator.assignment.python\"},{\"match\":\"\\\\\\\\bmetaclass\\\\\\\\b\",\"name\":\"support.type.metaclass.python\"},{\"include\":\"#illegal-names\"},{\"include\":\"#class-kwarg\"},{\"include\":\"#call-wrapper-inheritance\"},{\"include\":\"#expression-base\"},{\"include\":\"#member-access-class\"},{\"include\":\"#inheritance-identifier\"}]},\"class-kwarg\":{\"captures\":{\"1\":{\"name\":\"entity.other.inherited-class.python variable.parameter.class.python\"},\"2\":{\"name\":\"keyword.operator.assignment.python\"}},\"match\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\s*(=)(?!=)\"},\"class-name\":{\"patterns\":[{\"include\":\"#illegal-object-name\"},{\"include\":\"#builtin-possible-callables\"},{\"match\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\b\",\"name\":\"entity.name.type.class.python\"}]},\"codetags\":{\"captures\":{\"1\":{\"name\":\"keyword.codetag.notation.python\"}},\"match\":\"(?:\\\\\\\\b(NOTE|XXX|HACK|FIXME|BUG|TODO)\\\\\\\\b)\"},\"comments\":{\"patterns\":[{\"begin\":\"(?:\\\\\\\\#\\\\\\\\s*(type:)\\\\\\\\s*+(?!$|\\\\\\\\#))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.typehint.comment.python\"},\"1\":{\"name\":\"comment.typehint.directive.notation.python\"}},\"contentName\":\"meta.typehint.comment.python\",\"end\":\"(?:$|(?=\\\\\\\\#))\",\"name\":\"comment.line.number-sign.python\",\"patterns\":[{\"match\":\"\\\\\\\\Gignore(?=\\\\\\\\s*(?:$|\\\\\\\\#))\",\"name\":\"comment.typehint.ignore.notation.python\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(bool|bytes|float|int|object|str|List|Dict|Iterable|Sequence|Set|FrozenSet|Callable|Union|Tuple|Any|None)\\\\\\\\b\",\"name\":\"comment.typehint.type.notation.python\"},{\"match\":\"([\\\\\\\\[\\\\\\\\]\\\\\\\\(\\\\\\\\),\\\\\\\\.\\\\\\\\=\\\\\\\\*]|(->))\",\"name\":\"comment.typehint.punctuation.notation.python\"},{\"match\":\"([[:alpha:]_]\\\\\\\\w*)\",\"name\":\"comment.typehint.variable.notation.python\"}]},{\"include\":\"#comments-base\"}]},\"comments-base\":{\"begin\":\"(\\\\\\\\#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.python\"}},\"end\":\"($)\",\"name\":\"comment.line.number-sign.python\",\"patterns\":[{\"include\":\"#codetags\"}]},\"comments-string-double-three\":{\"begin\":\"(\\\\\\\\#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.python\"}},\"end\":\"($|(?=\\\\\"\\\\\"\\\\\"))\",\"name\":\"comment.line.number-sign.python\",\"patterns\":[{\"include\":\"#codetags\"}]},\"comments-string-single-three\":{\"begin\":\"(\\\\\\\\#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.python\"}},\"end\":\"($|(?='''))\",\"name\":\"comment.line.number-sign.python\",\"patterns\":[{\"include\":\"#codetags\"}]},\"curly-braces\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.dict.begin.python\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.dict.end.python\"}},\"patterns\":[{\"match\":\":\",\"name\":\"punctuation.separator.dict.python\"},{\"include\":\"#expression\"}]},\"decorator\":{\"begin\":\"^\\\\\\\\s*((@))\\\\\\\\s*(?=[[:alpha:]_]\\\\\\\\w*)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.decorator.python\"},\"2\":{\"name\":\"punctuation.definition.decorator.python\"}},\"end\":\"(\\\\\\\\))(?:(.*?)(?=\\\\\\\\s*(?:\\\\\\\\#|$)))|(?=\\\\\\\\n|\\\\\\\\#)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.python\"},\"2\":{\"name\":\"invalid.illegal.decorator.python\"}},\"name\":\"meta.function.decorator.python\",\"patterns\":[{\"include\":\"#decorator-name\"},{\"include\":\"#function-arguments\"}]},\"decorator-name\":{\"patterns\":[{\"include\":\"#builtin-callables\"},{\"include\":\"#illegal-object-name\"},{\"captures\":{\"2\":{\"name\":\"punctuation.separator.period.python\"}},\"match\":\"([[:alpha:]_]\\\\\\\\w*)|(\\\\\\\\.)\",\"name\":\"entity.name.function.decorator.python\"},{\"include\":\"#line-continuation\"},{\"captures\":{\"1\":{\"name\":\"invalid.illegal.decorator.python\"}},\"match\":\"\\\\\\\\s*([^([:alpha:]\\\\\\\\s_\\\\\\\\.#\\\\\\\\\\\\\\\\].*?)(?=\\\\\\\\#|$)\",\"name\":\"invalid.illegal.decorator.python\"}]},\"docstring\":{\"patterns\":[{\"begin\":\"(\\\\\\\\'\\\\\\\\'\\\\\\\\'|\\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\1)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"}},\"name\":\"string.quoted.docstring.multi.python\",\"patterns\":[{\"include\":\"#docstring-prompt\"},{\"include\":\"#codetags\"},{\"include\":\"#docstring-guts-unicode\"}]},{\"begin\":\"([rR])(\\\\\\\\'\\\\\\\\'\\\\\\\\'|\\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.python\"},\"2\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\2)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"}},\"name\":\"string.quoted.docstring.raw.multi.python\",\"patterns\":[{\"include\":\"#string-consume-escape\"},{\"include\":\"#docstring-prompt\"},{\"include\":\"#codetags\"}]},{\"begin\":\"(\\\\\\\\'|\\\\\\\\\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\1)|(\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.quoted.docstring.single.python\",\"patterns\":[{\"include\":\"#codetags\"},{\"include\":\"#docstring-guts-unicode\"}]},{\"begin\":\"([rR])(\\\\\\\\'|\\\\\\\\\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.python\"},\"2\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\2)|(\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.quoted.docstring.raw.single.python\",\"patterns\":[{\"include\":\"#string-consume-escape\"},{\"include\":\"#codetags\"}]}]},\"docstring-guts-unicode\":{\"patterns\":[{\"include\":\"#escape-sequence-unicode\"},{\"include\":\"#escape-sequence\"},{\"include\":\"#string-line-continuation\"}]},\"docstring-prompt\":{\"captures\":{\"1\":{\"name\":\"keyword.control.flow.python\"}},\"match\":\"(?:(?:^|\\\\\\\\G)\\\\\\\\s*((?:>>>|\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s)(?=\\\\\\\\s*\\\\\\\\S))\"},\"docstring-statement\":{\"begin\":\"^(?=\\\\\\\\s*[rR]?(\\\\\\\\'\\\\\\\\'\\\\\\\\'|\\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"|\\\\\\\\'|\\\\\\\\\\\\\"))\",\"comment\":\"the string either terminates correctly or by the beginning of a new line (this is for single line docstrings that aren't terminated) AND it's not followed by another docstring\",\"end\":\"((?<=\\\\\\\\1)|^)(?!\\\\\\\\s*[rR]?(\\\\\\\\'\\\\\\\\'\\\\\\\\'|\\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"|\\\\\\\\'|\\\\\\\\\\\\\"))\",\"patterns\":[{\"include\":\"#docstring\"}]},\"double-one-regexp-character-set\":{\"patterns\":[{\"match\":\"\\\\\\\\[\\\\\\\\^?\\\\\\\\](?!.*?\\\\\\\\])\"},{\"begin\":\"(\\\\\\\\[)(\\\\\\\\^)?(\\\\\\\\])?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.character.set.begin.regexp constant.other.set.regexp\"},\"2\":{\"name\":\"keyword.operator.negation.regexp\"},\"3\":{\"name\":\"constant.character.set.regexp\"}},\"end\":\"(\\\\\\\\]|(?=\\\\\"))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.character.set.end.regexp constant.other.set.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.character.set.regexp\",\"patterns\":[{\"include\":\"#regexp-charecter-set-escapes\"},{\"match\":\"[^\\\\\\\\n]\",\"name\":\"constant.character.set.regexp\"}]}]},\"double-one-regexp-comments\":{\"begin\":\"\\\\\\\\(\\\\\\\\?#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.comment.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.comment.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"comment.regexp\",\"patterns\":[{\"include\":\"#codetags\"}]},\"double-one-regexp-conditional\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?\\\\\\\\((\\\\\\\\w+(?:\\\\\\\\s+[[:alnum:]]+)?|\\\\\\\\d+)\\\\\\\\)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.conditional.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.conditional.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-one-regexp-expression\"}]},\"double-one-regexp-expression\":{\"patterns\":[{\"include\":\"#regexp-base-expression\"},{\"include\":\"#double-one-regexp-character-set\"},{\"include\":\"#double-one-regexp-comments\"},{\"include\":\"#regexp-flags\"},{\"include\":\"#double-one-regexp-named-group\"},{\"include\":\"#regexp-backreference\"},{\"include\":\"#double-one-regexp-lookahead\"},{\"include\":\"#double-one-regexp-lookahead-negative\"},{\"include\":\"#double-one-regexp-lookbehind\"},{\"include\":\"#double-one-regexp-lookbehind-negative\"},{\"include\":\"#double-one-regexp-conditional\"},{\"include\":\"#double-one-regexp-parentheses-non-capturing\"},{\"include\":\"#double-one-regexp-parentheses\"}]},\"double-one-regexp-lookahead\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookahead.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookahead.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-one-regexp-expression\"}]},\"double-one-regexp-lookahead-negative\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?!\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookahead.negative.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookahead.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-one-regexp-expression\"}]},\"double-one-regexp-lookbehind\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?<=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookbehind.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookbehind.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-one-regexp-expression\"}]},\"double-one-regexp-lookbehind-negative\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?<!\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookbehind.negative.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookbehind.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-one-regexp-expression\"}]},\"double-one-regexp-named-group\":{\"begin\":\"(\\\\\\\\()(\\\\\\\\?P<\\\\\\\\w+(?:\\\\\\\\s+[[:alnum:]]+)?>)\",\"beginCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp\"},\"2\":{\"name\":\"entity.name.tag.named.group.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.named.regexp\",\"patterns\":[{\"include\":\"#double-one-regexp-expression\"}]},\"double-one-regexp-parentheses\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-one-regexp-expression\"}]},\"double-one-regexp-parentheses-non-capturing\":{\"begin\":\"\\\\\\\\(\\\\\\\\?:\",\"beginCaptures\":{\"0\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-one-regexp-expression\"}]},\"double-three-regexp-character-set\":{\"patterns\":[{\"match\":\"\\\\\\\\[\\\\\\\\^?\\\\\\\\](?!.*?\\\\\\\\])\"},{\"begin\":\"(\\\\\\\\[)(\\\\\\\\^)?(\\\\\\\\])?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.character.set.begin.regexp constant.other.set.regexp\"},\"2\":{\"name\":\"keyword.operator.negation.regexp\"},\"3\":{\"name\":\"constant.character.set.regexp\"}},\"end\":\"(\\\\\\\\]|(?=\\\\\"\\\\\"\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.character.set.end.regexp constant.other.set.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.character.set.regexp\",\"patterns\":[{\"include\":\"#regexp-charecter-set-escapes\"},{\"match\":\"[^\\\\\\\\n]\",\"name\":\"constant.character.set.regexp\"}]}]},\"double-three-regexp-comments\":{\"begin\":\"\\\\\\\\(\\\\\\\\?#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.comment.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"\\\\\"\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.comment.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"comment.regexp\",\"patterns\":[{\"include\":\"#codetags\"}]},\"double-three-regexp-conditional\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?\\\\\\\\((\\\\\\\\w+(?:\\\\\\\\s+[[:alnum:]]+)?|\\\\\\\\d+)\\\\\\\\)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.conditional.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.conditional.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"\\\\\"\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-three-regexp-expression\"},{\"include\":\"#comments-string-double-three\"}]},\"double-three-regexp-expression\":{\"patterns\":[{\"include\":\"#regexp-base-expression\"},{\"include\":\"#double-three-regexp-character-set\"},{\"include\":\"#double-three-regexp-comments\"},{\"include\":\"#regexp-flags\"},{\"include\":\"#double-three-regexp-named-group\"},{\"include\":\"#regexp-backreference\"},{\"include\":\"#double-three-regexp-lookahead\"},{\"include\":\"#double-three-regexp-lookahead-negative\"},{\"include\":\"#double-three-regexp-lookbehind\"},{\"include\":\"#double-three-regexp-lookbehind-negative\"},{\"include\":\"#double-three-regexp-conditional\"},{\"include\":\"#double-three-regexp-parentheses-non-capturing\"},{\"include\":\"#double-three-regexp-parentheses\"},{\"include\":\"#comments-string-double-three\"}]},\"double-three-regexp-lookahead\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookahead.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookahead.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"\\\\\"\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-three-regexp-expression\"},{\"include\":\"#comments-string-double-three\"}]},\"double-three-regexp-lookahead-negative\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?!\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookahead.negative.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookahead.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"\\\\\"\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-three-regexp-expression\"},{\"include\":\"#comments-string-double-three\"}]},\"double-three-regexp-lookbehind\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?<=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookbehind.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookbehind.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"\\\\\"\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-three-regexp-expression\"},{\"include\":\"#comments-string-double-three\"}]},\"double-three-regexp-lookbehind-negative\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?<!\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookbehind.negative.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookbehind.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"\\\\\"\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-three-regexp-expression\"},{\"include\":\"#comments-string-double-three\"}]},\"double-three-regexp-named-group\":{\"begin\":\"(\\\\\\\\()(\\\\\\\\?P<\\\\\\\\w+(?:\\\\\\\\s+[[:alnum:]]+)?>)\",\"beginCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp\"},\"2\":{\"name\":\"entity.name.tag.named.group.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"\\\\\"\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.named.regexp\",\"patterns\":[{\"include\":\"#double-three-regexp-expression\"},{\"include\":\"#comments-string-double-three\"}]},\"double-three-regexp-parentheses\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"\\\\\"\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-three-regexp-expression\"},{\"include\":\"#comments-string-double-three\"}]},\"double-three-regexp-parentheses-non-capturing\":{\"begin\":\"\\\\\\\\(\\\\\\\\?:\",\"beginCaptures\":{\"0\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"\\\\\"\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-three-regexp-expression\"},{\"include\":\"#comments-string-double-three\"}]},\"ellipsis\":{\"match\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"name\":\"constant.other.ellipsis.python\"},\"escape-sequence\":{\"match\":\"\\\\\\\\\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{1,3}|[\\\\\\\\\\\\\\\\\\\\\"'abfnrtv])\",\"name\":\"constant.character.escape.python\"},\"escape-sequence-unicode\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8}|N\\\\\\\\{[\\\\\\\\w\\\\\\\\s]+?\\\\\\\\})\",\"name\":\"constant.character.escape.python\"}]},\"expression\":{\"comment\":\"All valid Python expressions\",\"patterns\":[{\"include\":\"#expression-base\"},{\"include\":\"#member-access\"},{\"comment\":\"Tokenize identifiers to help linters\",\"match\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\b\"}]},\"expression-bare\":{\"comment\":\"valid Python expressions w/o comments and line continuation\",\"patterns\":[{\"include\":\"#backticks\"},{\"include\":\"#illegal-anno\"},{\"include\":\"#literal\"},{\"include\":\"#regexp\"},{\"include\":\"#string\"},{\"include\":\"#lambda\"},{\"include\":\"#generator\"},{\"include\":\"#illegal-operator\"},{\"include\":\"#operator\"},{\"include\":\"#curly-braces\"},{\"include\":\"#item-access\"},{\"include\":\"#list\"},{\"include\":\"#odd-function-call\"},{\"include\":\"#round-braces\"},{\"include\":\"#function-call\"},{\"include\":\"#builtin-functions\"},{\"include\":\"#builtin-types\"},{\"include\":\"#builtin-exceptions\"},{\"include\":\"#magic-names\"},{\"include\":\"#special-names\"},{\"include\":\"#illegal-names\"},{\"include\":\"#special-variables\"},{\"include\":\"#ellipsis\"},{\"include\":\"#punctuation\"},{\"include\":\"#line-continuation\"}]},\"expression-base\":{\"comment\":\"valid Python expressions with comments and line continuation\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#expression-bare\"},{\"include\":\"#line-continuation\"}]},\"f-expression\":{\"comment\":\"All valid Python expressions, except comments and line continuation\",\"patterns\":[{\"include\":\"#expression-bare\"},{\"include\":\"#member-access\"},{\"comment\":\"Tokenize identifiers to help linters\",\"match\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\b\"}]},\"fregexp-base-expression\":{\"patterns\":[{\"include\":\"#fregexp-quantifier\"},{\"include\":\"#fstring-formatting-braces\"},{\"match\":\"\\\\\\\\{.*?\\\\\\\\}\"},{\"include\":\"#regexp-base-common\"}]},\"fregexp-quantifier\":{\"match\":\"\\\\\\\\{\\\\\\\\{(\\\\\\\\d+|\\\\\\\\d+,(\\\\\\\\d+)?|,\\\\\\\\d+)\\\\\\\\}\\\\\\\\}\",\"name\":\"keyword.operator.quantifier.regexp\"},\"fstring-fnorm-quoted-multi-line\":{\"begin\":\"(\\\\\\\\b[fF])([bBuU])?('''|\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"string.interpolated.python string.quoted.multi.python storage.type.string.python\"},\"2\":{\"name\":\"invalid.illegal.prefix.python\"},\"3\":{\"name\":\"punctuation.definition.string.begin.python string.interpolated.python string.quoted.multi.python\"}},\"end\":\"(\\\\\\\\3)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.fstring.python\",\"patterns\":[{\"include\":\"#fstring-guts\"},{\"include\":\"#fstring-illegal-multi-brace\"},{\"include\":\"#fstring-multi-brace\"},{\"include\":\"#fstring-multi-core\"}]},\"fstring-fnorm-quoted-single-line\":{\"begin\":\"(\\\\\\\\b[fF])([bBuU])?((['\\\\\"]))\",\"beginCaptures\":{\"1\":{\"name\":\"string.interpolated.python string.quoted.single.python storage.type.string.python\"},\"2\":{\"name\":\"invalid.illegal.prefix.python\"},\"3\":{\"name\":\"punctuation.definition.string.begin.python string.interpolated.python string.quoted.single.python\"}},\"end\":\"(\\\\\\\\3)|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.fstring.python\",\"patterns\":[{\"include\":\"#fstring-guts\"},{\"include\":\"#fstring-illegal-single-brace\"},{\"include\":\"#fstring-single-brace\"},{\"include\":\"#fstring-single-core\"}]},\"fstring-formatting\":{\"patterns\":[{\"include\":\"#fstring-formatting-braces\"},{\"include\":\"#fstring-formatting-singe-brace\"}]},\"fstring-formatting-braces\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"},\"2\":{\"name\":\"invalid.illegal.brace.python\"},\"3\":{\"name\":\"constant.character.format.placeholder.other.python\"}},\"comment\":\"empty braces are illegal\",\"match\":\"({)(\\\\\\\\s*?)(})\"},{\"match\":\"({{|}})\",\"name\":\"constant.character.escape.python\"}]},\"fstring-formatting-singe-brace\":{\"match\":\"(}(?!}))\",\"name\":\"invalid.illegal.brace.python\"},\"fstring-guts\":{\"patterns\":[{\"include\":\"#escape-sequence-unicode\"},{\"include\":\"#escape-sequence\"},{\"include\":\"#string-line-continuation\"},{\"include\":\"#fstring-formatting\"}]},\"fstring-illegal-multi-brace\":{\"patterns\":[{\"include\":\"#impossible\"}]},\"fstring-illegal-single-brace\":{\"begin\":\"(\\\\\\\\{)(?=[^\\\\\\\\n}]*$\\\\\\\\n?)\",\"beginCaptures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"}},\"comment\":\"it is illegal to have a multiline brace inside a single-line string\",\"end\":\"(\\\\\\\\})|(?=\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"}},\"patterns\":[{\"include\":\"#fstring-terminator-single\"},{\"include\":\"#f-expression\"}]},\"fstring-multi-brace\":{\"begin\":\"(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"}},\"comment\":\"value interpolation using { ... }\",\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"}},\"patterns\":[{\"include\":\"#fstring-terminator-multi\"},{\"include\":\"#f-expression\"}]},\"fstring-multi-core\":{\"match\":\"(.+?)(($\\\\\\\\n?)|(?=[\\\\\\\\\\\\\\\\\\\\\\\\}\\\\\\\\{]|'''|\\\\\"\\\\\"\\\\\"))|\\\\\\\\n\",\"name\":\"string.interpolated.python string.quoted.multi.python\"},\"fstring-normf-quoted-multi-line\":{\"begin\":\"(\\\\\\\\b[bBuU])([fF])('''|\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"invalid.illegal.prefix.python\"},\"2\":{\"name\":\"string.interpolated.python string.quoted.multi.python storage.type.string.python\"},\"3\":{\"name\":\"punctuation.definition.string.begin.python string.quoted.multi.python\"}},\"end\":\"(\\\\\\\\3)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.fstring.python\",\"patterns\":[{\"include\":\"#fstring-guts\"},{\"include\":\"#fstring-illegal-multi-brace\"},{\"include\":\"#fstring-multi-brace\"},{\"include\":\"#fstring-multi-core\"}]},\"fstring-normf-quoted-single-line\":{\"begin\":\"(\\\\\\\\b[bBuU])([fF])((['\\\\\"]))\",\"beginCaptures\":{\"1\":{\"name\":\"invalid.illegal.prefix.python\"},\"2\":{\"name\":\"string.interpolated.python string.quoted.single.python storage.type.string.python\"},\"3\":{\"name\":\"punctuation.definition.string.begin.python string.quoted.single.python\"}},\"end\":\"(\\\\\\\\3)|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.fstring.python\",\"patterns\":[{\"include\":\"#fstring-guts\"},{\"include\":\"#fstring-illegal-single-brace\"},{\"include\":\"#fstring-single-brace\"},{\"include\":\"#fstring-single-core\"}]},\"fstring-raw-guts\":{\"patterns\":[{\"include\":\"#string-consume-escape\"},{\"include\":\"#fstring-formatting\"}]},\"fstring-raw-multi-core\":{\"match\":\"(.+?)(($\\\\\\\\n?)|(?=[\\\\\\\\\\\\\\\\\\\\\\\\}\\\\\\\\{]|'''|\\\\\"\\\\\"\\\\\"))|\\\\\\\\n\",\"name\":\"string.interpolated.python string.quoted.raw.multi.python\"},\"fstring-raw-quoted-multi-line\":{\"begin\":\"(\\\\\\\\b(?:[rR][fF]|[fF][rR]))('''|\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"string.interpolated.python string.quoted.raw.multi.python storage.type.string.python\"},\"2\":{\"name\":\"punctuation.definition.string.begin.python string.quoted.raw.multi.python\"}},\"end\":\"(\\\\\\\\2)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.multi.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.fstring.python\",\"patterns\":[{\"include\":\"#fstring-raw-guts\"},{\"include\":\"#fstring-illegal-multi-brace\"},{\"include\":\"#fstring-multi-brace\"},{\"include\":\"#fstring-raw-multi-core\"}]},\"fstring-raw-quoted-single-line\":{\"begin\":\"(\\\\\\\\b(?:[rR][fF]|[fF][rR]))((['\\\\\"]))\",\"beginCaptures\":{\"1\":{\"name\":\"string.interpolated.python string.quoted.raw.single.python storage.type.string.python\"},\"2\":{\"name\":\"punctuation.definition.string.begin.python string.quoted.raw.single.python\"}},\"end\":\"(\\\\\\\\2)|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.single.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.fstring.python\",\"patterns\":[{\"include\":\"#fstring-raw-guts\"},{\"include\":\"#fstring-illegal-single-brace\"},{\"include\":\"#fstring-single-brace\"},{\"include\":\"#fstring-raw-single-core\"}]},\"fstring-raw-single-core\":{\"match\":\"(.+?)(($\\\\\\\\n?)|(?=[\\\\\\\\\\\\\\\\\\\\\\\\}\\\\\\\\{]|(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)))|\\\\\\\\n\",\"name\":\"string.interpolated.python string.quoted.raw.single.python\"},\"fstring-single-brace\":{\"begin\":\"(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"}},\"comment\":\"value interpolation using { ... }\",\"end\":\"(\\\\\\\\})|(?=\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"}},\"patterns\":[{\"include\":\"#fstring-terminator-single\"},{\"include\":\"#f-expression\"}]},\"fstring-single-core\":{\"match\":\"(.+?)(($\\\\\\\\n?)|(?=[\\\\\\\\\\\\\\\\\\\\\\\\}\\\\\\\\{]|(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)))|\\\\\\\\n\",\"name\":\"string.interpolated.python string.quoted.single.python\"},\"fstring-terminator-multi\":{\"patterns\":[{\"match\":\"(=(![rsa])?)(?=})\",\"name\":\"storage.type.format.python\"},{\"match\":\"(=?![rsa])(?=})\",\"name\":\"storage.type.format.python\"},{\"captures\":{\"1\":{\"name\":\"storage.type.format.python\"},\"2\":{\"name\":\"storage.type.format.python\"}},\"match\":\"((?:=?)(?:![rsa])?)(:\\\\\\\\w?[<>=^]?[-+ ]?\\\\\\\\#?\\\\\\\\d*,?(\\\\\\\\.\\\\\\\\d+)?[bcdeEfFgGnosxX%]?)(?=})\"},{\"include\":\"#fstring-terminator-multi-tail\"}]},\"fstring-terminator-multi-tail\":{\"begin\":\"((?:=?)(?:![rsa])?)(:)(?=.*?{)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.format.python\"},\"2\":{\"name\":\"storage.type.format.python\"}},\"end\":\"(?=})\",\"patterns\":[{\"include\":\"#fstring-illegal-multi-brace\"},{\"include\":\"#fstring-multi-brace\"},{\"match\":\"([bcdeEfFgGnosxX%])(?=})\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\\\\\.\\\\\\\\d+)\",\"name\":\"storage.type.format.python\"},{\"match\":\"(,)\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\\\\\d+)\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\\\\\#)\",\"name\":\"storage.type.format.python\"},{\"match\":\"([-+ ])\",\"name\":\"storage.type.format.python\"},{\"match\":\"([<>=^])\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\\\\\w)\",\"name\":\"storage.type.format.python\"}]},\"fstring-terminator-single\":{\"patterns\":[{\"match\":\"(=(![rsa])?)(?=})\",\"name\":\"storage.type.format.python\"},{\"match\":\"(=?![rsa])(?=})\",\"name\":\"storage.type.format.python\"},{\"captures\":{\"1\":{\"name\":\"storage.type.format.python\"},\"2\":{\"name\":\"storage.type.format.python\"}},\"match\":\"((?:=?)(?:![rsa])?)(:\\\\\\\\w?[<>=^]?[-+ ]?\\\\\\\\#?\\\\\\\\d*,?(\\\\\\\\.\\\\\\\\d+)?[bcdeEfFgGnosxX%]?)(?=})\"},{\"include\":\"#fstring-terminator-single-tail\"}]},\"fstring-terminator-single-tail\":{\"begin\":\"((?:=?)(?:![rsa])?)(:)(?=.*?{)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.format.python\"},\"2\":{\"name\":\"storage.type.format.python\"}},\"end\":\"(?=})|(?=\\\\\\\\n)\",\"patterns\":[{\"include\":\"#fstring-illegal-single-brace\"},{\"include\":\"#fstring-single-brace\"},{\"match\":\"([bcdeEfFgGnosxX%])(?=})\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\\\\\.\\\\\\\\d+)\",\"name\":\"storage.type.format.python\"},{\"match\":\"(,)\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\\\\\d+)\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\\\\\#)\",\"name\":\"storage.type.format.python\"},{\"match\":\"([-+ ])\",\"name\":\"storage.type.format.python\"},{\"match\":\"([<>=^])\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\\\\\w)\",\"name\":\"storage.type.format.python\"}]},\"function-arguments\":{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.python\"}},\"contentName\":\"meta.function-call.arguments.python\",\"end\":\"(?=\\\\\\\\))(?!\\\\\\\\)\\\\\\\\s*\\\\\\\\()\",\"patterns\":[{\"match\":\"(,)\",\"name\":\"punctuation.separator.arguments.python\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.unpacking.arguments.python\"}},\"match\":\"(?:(?<=[,(])|^)\\\\\\\\s*(\\\\\\\\*{1,2})\"},{\"include\":\"#lambda-incomplete\"},{\"include\":\"#illegal-names\"},{\"captures\":{\"1\":{\"name\":\"variable.parameter.function-call.python\"},\"2\":{\"name\":\"keyword.operator.assignment.python\"}},\"match\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\s*(=)(?!=)\"},{\"match\":\"=(?!=)\",\"name\":\"keyword.operator.assignment.python\"},{\"include\":\"#expression\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.python\"},\"2\":{\"name\":\"punctuation.definition.arguments.begin.python\"}},\"match\":\"\\\\\\\\s*(\\\\\\\\))\\\\\\\\s*(\\\\\\\\()\"}]},\"function-call\":{\"begin\":\"\\\\\\\\b(?=([[:alpha:]_]\\\\\\\\w*)\\\\\\\\s*(\\\\\\\\())\",\"comment\":\"Regular function call of the type \\\\\"name(args)\\\\\"\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.python\"}},\"name\":\"meta.function-call.python\",\"patterns\":[{\"include\":\"#special-variables\"},{\"include\":\"#function-name\"},{\"include\":\"#function-arguments\"}]},\"function-declaration\":{\"begin\":\"\\\\\\\\s*(?:\\\\\\\\b(async)\\\\\\\\s+)?\\\\\\\\b(def)\\\\\\\\s+(?=[[:alpha:]_][[:word:]]*\\\\\\\\s*\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.async.python\"},\"2\":{\"name\":\"storage.type.function.python\"}},\"end\":\"(:|(?=[#'\\\\\"\\\\\\\\n]))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.function.begin.python\"}},\"name\":\"meta.function.python\",\"patterns\":[{\"include\":\"#function-def-name\"},{\"include\":\"#parameters\"},{\"include\":\"#line-continuation\"},{\"include\":\"#return-annotation\"}]},\"function-def-name\":{\"patterns\":[{\"include\":\"#illegal-object-name\"},{\"include\":\"#builtin-possible-callables\"},{\"match\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\b\",\"name\":\"entity.name.function.python\"}]},\"function-name\":{\"patterns\":[{\"include\":\"#builtin-possible-callables\"},{\"comment\":\"Some color schemas support meta.function-call.generic scope\",\"match\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\b\",\"name\":\"meta.function-call.generic.python\"}]},\"generator\":{\"begin\":\"\\\\\\\\bfor\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.flow.python\"}},\"comment\":\"Match \\\\\"for ... in\\\\\" construct used in generators and for loops to\\\\ncorrectly identify the \\\\\"in\\\\\" as a control flow keyword.\\\\n\",\"end\":\"\\\\\\\\bin\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.flow.python\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"illegal-anno\":{\"match\":\"->\",\"name\":\"invalid.illegal.annotation.python\"},\"illegal-names\":{\"captures\":{\"1\":{\"name\":\"keyword.control.flow.python\"},\"2\":{\"name\":\"keyword.control.import.python\"}},\"match\":\"\\\\\\\\b(?:(and|assert|async|await|break|class|continue|def|del|elif|else|except|finally|for|from|global|if|in|is|(?<=\\\\\\\\.)lambda|lambda(?=\\\\\\\\s*[\\\\\\\\.=])|nonlocal|not|or|pass|raise|return|try|while|with|yield)|(as|import))\\\\\\\\b\"},\"illegal-object-name\":{\"comment\":\"It's illegal to name class or function \\\\\"True\\\\\"\",\"match\":\"\\\\\\\\b(True|False|None)\\\\\\\\b\",\"name\":\"keyword.illegal.name.python\"},\"illegal-operator\":{\"patterns\":[{\"match\":\"&&|\\\\\\\\|\\\\\\\\||--|\\\\\\\\+\\\\\\\\+\",\"name\":\"invalid.illegal.operator.python\"},{\"match\":\"[?$]\",\"name\":\"invalid.illegal.operator.python\"},{\"comment\":\"We don't want \\`!\\` to flash when we're typing \\`!=\\`\",\"match\":\"!\\\\\\\\b\",\"name\":\"invalid.illegal.operator.python\"}]},\"import\":{\"comment\":\"Import statements used to correctly mark \\`from\\`, \\`import\\`, and \\`as\\`\\\\n\",\"patterns\":[{\"begin\":\"\\\\\\\\b(?<!\\\\\\\\.)(from)\\\\\\\\b(?=.+import)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.import.python\"}},\"end\":\"$|(?=import)\",\"patterns\":[{\"match\":\"\\\\\\\\.+\",\"name\":\"punctuation.separator.period.python\"},{\"include\":\"#expression\"}]},{\"begin\":\"\\\\\\\\b(?<!\\\\\\\\.)(import)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.import.python\"}},\"end\":\"$\",\"patterns\":[{\"match\":\"\\\\\\\\b(?<!\\\\\\\\.)as\\\\\\\\b\",\"name\":\"keyword.control.import.python\"},{\"include\":\"#expression\"}]}]},\"impossible\":{\"comment\":\"This is a special rule that should be used where no match is desired. It is not a good idea to match something like '1{0}' because in some cases that can result in infinite loops in token generation. So the rule instead matches and impossible expression to allow a match to fail and move to the next token.\",\"match\":\"$.^\"},\"inheritance-identifier\":{\"captures\":{\"1\":{\"name\":\"entity.other.inherited-class.python\"}},\"match\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\b\"},\"inheritance-name\":{\"patterns\":[{\"include\":\"#lambda-incomplete\"},{\"include\":\"#builtin-possible-callables\"},{\"include\":\"#inheritance-identifier\"}]},\"item-access\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(?=[[:alpha:]_]\\\\\\\\w*\\\\\\\\s*\\\\\\\\[)\",\"end\":\"(\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.python\"}},\"name\":\"meta.item-access.python\",\"patterns\":[{\"include\":\"#item-name\"},{\"include\":\"#item-index\"},{\"include\":\"#expression\"}]}]},\"item-index\":{\"begin\":\"(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.python\"}},\"contentName\":\"meta.item-access.arguments.python\",\"end\":\"(?=\\\\\\\\])\",\"patterns\":[{\"match\":\":\",\"name\":\"punctuation.separator.slice.python\"},{\"include\":\"#expression\"}]},\"item-name\":{\"patterns\":[{\"include\":\"#special-variables\"},{\"include\":\"#builtin-functions\"},{\"include\":\"#special-names\"},{\"match\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\b\",\"name\":\"meta.indexed-name.python\"}]},\"lambda\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.flow.python\"}},\"match\":\"((?<=\\\\\\\\.)lambda|lambda(?=\\\\\\\\s*[\\\\\\\\.=]))\"},{\"captures\":{\"1\":{\"name\":\"storage.type.function.lambda.python\"}},\"match\":\"\\\\\\\\b(lambda)\\\\\\\\s*?(?=[,\\\\\\\\n]|$)\"},{\"begin\":\"\\\\\\\\b(lambda)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.lambda.python\"}},\"contentName\":\"meta.function.lambda.parameters.python\",\"end\":\"(:)|(\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.function.lambda.begin.python\"}},\"name\":\"meta.lambda-function.python\",\"patterns\":[{\"match\":\"/\",\"name\":\"keyword.operator.positional.parameter.python\"},{\"match\":\"(\\\\\\\\*\\\\\\\\*|\\\\\\\\*)\",\"name\":\"keyword.operator.unpacking.parameter.python\"},{\"include\":\"#lambda-nested-incomplete\"},{\"include\":\"#illegal-names\"},{\"captures\":{\"1\":{\"name\":\"variable.parameter.function.language.python\"},\"2\":{\"name\":\"punctuation.separator.parameters.python\"}},\"match\":\"([[:alpha:]_]\\\\\\\\w*)\\\\\\\\s*(?:(,)|(?=:|$))\"},{\"include\":\"#comments\"},{\"include\":\"#backticks\"},{\"include\":\"#illegal-anno\"},{\"include\":\"#lambda-parameter-with-default\"},{\"include\":\"#line-continuation\"},{\"include\":\"#illegal-operator\"}]}]},\"lambda-incomplete\":{\"match\":\"\\\\\\\\blambda(?=\\\\\\\\s*[,)])\",\"name\":\"storage.type.function.lambda.python\"},\"lambda-nested-incomplete\":{\"match\":\"\\\\\\\\blambda(?=\\\\\\\\s*[:,)])\",\"name\":\"storage.type.function.lambda.python\"},\"lambda-parameter-with-default\":{\"begin\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\s*(=)\",\"beginCaptures\":{\"1\":{\"name\":\"variable.parameter.function.language.python\"},\"2\":{\"name\":\"keyword.operator.python\"}},\"end\":\"(,)|(?=:|$)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.parameters.python\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"line-continuation\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.continuation.line.python\"},\"2\":{\"name\":\"invalid.illegal.line.continuation.python\"}},\"match\":\"(\\\\\\\\\\\\\\\\)\\\\\\\\s*(\\\\\\\\S.*$\\\\\\\\n?)\"},{\"begin\":\"(\\\\\\\\\\\\\\\\)\\\\\\\\s*$\\\\\\\\n?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.continuation.line.python\"}},\"end\":\"(?=^\\\\\\\\s*$)|(?!(\\\\\\\\s*[rR]?(\\\\\\\\'\\\\\\\\'\\\\\\\\'|\\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"|\\\\\\\\'|\\\\\\\\\\\\\"))|(\\\\\\\\G$))\",\"patterns\":[{\"include\":\"#regexp\"},{\"include\":\"#string\"}]}]},\"list\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.list.begin.python\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.list.end.python\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"literal\":{\"patterns\":[{\"match\":\"\\\\\\\\b(True|False|None|NotImplemented|Ellipsis)\\\\\\\\b\",\"name\":\"constant.language.python\"},{\"include\":\"#number\"}]},\"loose-default\":{\"begin\":\"(=)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.python\"}},\"end\":\"(,)|(?=\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.parameters.python\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"magic-function-names\":{\"captures\":{\"1\":{\"name\":\"support.function.magic.python\"}},\"comment\":\"these methods have magic interpretation by python and are generally called\\\\nindirectly through syntactic constructs\\\\n\",\"match\":\"\\\\\\\\b(__(?:abs|add|aenter|aexit|aiter|and|anext|await|bool|call|ceil|class_getitem|cmp|coerce|complex|contains|copy|deepcopy|del|delattr|delete|delitem|delslice|dir|div|divmod|enter|eq|exit|float|floor|floordiv|format|ge|get|getattr|getattribute|getinitargs|getitem|getnewargs|getslice|getstate|gt|hash|hex|iadd|iand|idiv|ifloordiv||ilshift|imod|imul|index|init|instancecheck|int|invert|ior|ipow|irshift|isub|iter|itruediv|ixor|le|len|long|lshift|lt|missing|mod|mul|ne|neg|new|next|nonzero|oct|or|pos|pow|radd|rand|rdiv|rdivmod|reduce|reduce_ex|repr|reversed|rfloordiv||rlshift|rmod|rmul|ror|round|rpow|rrshift|rshift|rsub|rtruediv|rxor|set|setattr|setitem|set_name|setslice|setstate|sizeof|str|sub|subclasscheck|truediv|trunc|unicode|xor|matmul|rmatmul|imatmul|init_subclass|set_name|fspath|bytes|prepare|length_hint)__)\\\\\\\\b\"},\"magic-names\":{\"patterns\":[{\"include\":\"#magic-function-names\"},{\"include\":\"#magic-variable-names\"}]},\"magic-variable-names\":{\"captures\":{\"1\":{\"name\":\"support.variable.magic.python\"}},\"comment\":\"magic variables which a class/module may have.\",\"match\":\"\\\\\\\\b(__(?:all|annotations|bases|builtins|class|closure|code|debug|defaults|dict|doc|file|func|globals|kwdefaults|match_args|members|metaclass|methods|module|mro|mro_entries|name|qualname|post_init|self|signature|slots|subclasses|version|weakref|wrapped|classcell|spec|path|package|future|traceback)__)\\\\\\\\b\"},\"member-access\":{\"begin\":\"(\\\\\\\\.)\\\\\\\\s*(?!\\\\\\\\.)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.period.python\"}},\"end\":\"(?<=\\\\\\\\S)(?=\\\\\\\\W)|(^|(?<=\\\\\\\\s))(?=[^\\\\\\\\\\\\\\\\\\\\\\\\w\\\\\\\\s])|$\",\"name\":\"meta.member.access.python\",\"patterns\":[{\"include\":\"#function-call\"},{\"include\":\"#member-access-base\"},{\"include\":\"#member-access-attribute\"}]},\"member-access-attribute\":{\"comment\":\"Highlight attribute access in otherwise non-specialized cases.\",\"match\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\b\",\"name\":\"meta.attribute.python\"},\"member-access-base\":{\"patterns\":[{\"include\":\"#magic-names\"},{\"include\":\"#illegal-names\"},{\"include\":\"#illegal-object-name\"},{\"include\":\"#special-names\"},{\"include\":\"#line-continuation\"},{\"include\":\"#item-access\"}]},\"member-access-class\":{\"begin\":\"(\\\\\\\\.)\\\\\\\\s*(?!\\\\\\\\.)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.period.python\"}},\"end\":\"(?<=\\\\\\\\S)(?=\\\\\\\\W)|$\",\"name\":\"meta.member.access.python\",\"patterns\":[{\"include\":\"#call-wrapper-inheritance\"},{\"include\":\"#member-access-base\"},{\"include\":\"#inheritance-identifier\"}]},\"number\":{\"name\":\"constant.numeric.python\",\"patterns\":[{\"include\":\"#number-float\"},{\"include\":\"#number-dec\"},{\"include\":\"#number-hex\"},{\"include\":\"#number-oct\"},{\"include\":\"#number-bin\"},{\"include\":\"#number-long\"},{\"match\":\"\\\\\\\\b[0-9]+\\\\\\\\w+\",\"name\":\"invalid.illegal.name.python\"}]},\"number-bin\":{\"captures\":{\"1\":{\"name\":\"storage.type.number.python\"}},\"match\":\"(?<![\\\\\\\\w\\\\\\\\.])(0[bB])(_?[01])+\\\\\\\\b\",\"name\":\"constant.numeric.bin.python\"},\"number-dec\":{\"captures\":{\"1\":{\"name\":\"storage.type.imaginary.number.python\"},\"2\":{\"name\":\"invalid.illegal.dec.python\"}},\"match\":\"(?<![\\\\\\\\w\\\\\\\\.])(?:[1-9](?:_?[0-9])*|0+|[0-9](?:_?[0-9])*([jJ])|0([0-9]+)(?![eE\\\\\\\\.]))\\\\\\\\b\",\"name\":\"constant.numeric.dec.python\"},\"number-float\":{\"captures\":{\"1\":{\"name\":\"storage.type.imaginary.number.python\"}},\"match\":\"(?<!\\\\\\\\w)(?:(?:\\\\\\\\.[0-9](?:_?[0-9])*|[0-9](?:_?[0-9])*\\\\\\\\.[0-9](?:_?[0-9])*|[0-9](?:_?[0-9])*\\\\\\\\.)(?:[eE][+-]?[0-9](?:_?[0-9])*)?|[0-9](?:_?[0-9])*(?:[eE][+-]?[0-9](?:_?[0-9])*))([jJ])?\\\\\\\\b\",\"name\":\"constant.numeric.float.python\"},\"number-hex\":{\"captures\":{\"1\":{\"name\":\"storage.type.number.python\"}},\"match\":\"(?<![\\\\\\\\w\\\\\\\\.])(0[xX])(_?[0-9a-fA-F])+\\\\\\\\b\",\"name\":\"constant.numeric.hex.python\"},\"number-long\":{\"captures\":{\"2\":{\"name\":\"storage.type.number.python\"}},\"comment\":\"this is to support python2 syntax for long ints\",\"match\":\"(?<![\\\\\\\\w\\\\\\\\.])([1-9][0-9]*|0)([lL])\\\\\\\\b\",\"name\":\"constant.numeric.bin.python\"},\"number-oct\":{\"captures\":{\"1\":{\"name\":\"storage.type.number.python\"}},\"match\":\"(?<![\\\\\\\\w\\\\\\\\.])(0[oO])(_?[0-7])+\\\\\\\\b\",\"name\":\"constant.numeric.oct.python\"},\"odd-function-call\":{\"begin\":\"(?<=\\\\\\\\]|\\\\\\\\))\\\\\\\\s*(?=\\\\\\\\()\",\"comment\":\"A bit obscured function call where there may have been an\\\\narbitrary number of other operations to get the function.\\\\nE.g. \\\\\"arr[idx](args)\\\\\"\\\\n\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.python\"}},\"patterns\":[{\"include\":\"#function-arguments\"}]},\"operator\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.logical.python\"},\"2\":{\"name\":\"keyword.control.flow.python\"},\"3\":{\"name\":\"keyword.operator.bitwise.python\"},\"4\":{\"name\":\"keyword.operator.arithmetic.python\"},\"5\":{\"name\":\"keyword.operator.comparison.python\"},\"6\":{\"name\":\"keyword.operator.assignment.python\"}},\"match\":\"\\\\\\\\b(?<!\\\\\\\\.)(?:(and|or|not|in|is)|(for|if|else|await|(?:yield(?:\\\\\\\\s+from)?)))(?!\\\\\\\\s*:)\\\\\\\\b|(<<|>>|&|\\\\\\\\||\\\\\\\\^|~)|(\\\\\\\\*\\\\\\\\*|\\\\\\\\*|\\\\\\\\+|-|%|//|/|@)|(!=|==|>=|<=|<|>)|(:=)\"},\"parameter-special\":{\"captures\":{\"1\":{\"name\":\"variable.parameter.function.language.python\"},\"2\":{\"name\":\"variable.parameter.function.language.special.self.python\"},\"3\":{\"name\":\"variable.parameter.function.language.special.cls.python\"},\"4\":{\"name\":\"punctuation.separator.parameters.python\"}},\"match\":\"\\\\\\\\b((self)|(cls))\\\\\\\\b\\\\\\\\s*(?:(,)|(?=\\\\\\\\)))\"},\"parameters\":{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.begin.python\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.python\"}},\"name\":\"meta.function.parameters.python\",\"patterns\":[{\"match\":\"/\",\"name\":\"keyword.operator.positional.parameter.python\"},{\"match\":\"(\\\\\\\\*\\\\\\\\*|\\\\\\\\*)\",\"name\":\"keyword.operator.unpacking.parameter.python\"},{\"include\":\"#lambda-incomplete\"},{\"include\":\"#illegal-names\"},{\"include\":\"#illegal-object-name\"},{\"include\":\"#parameter-special\"},{\"captures\":{\"1\":{\"name\":\"variable.parameter.function.language.python\"},\"2\":{\"name\":\"punctuation.separator.parameters.python\"}},\"match\":\"([[:alpha:]_]\\\\\\\\w*)\\\\\\\\s*(?:(,)|(?=[)#\\\\\\\\n=]))\"},{\"include\":\"#comments\"},{\"include\":\"#loose-default\"},{\"include\":\"#annotated-parameter\"}]},\"punctuation\":{\"patterns\":[{\"match\":\":\",\"name\":\"punctuation.separator.colon.python\"},{\"match\":\",\",\"name\":\"punctuation.separator.element.python\"}]},\"regexp\":{\"patterns\":[{\"include\":\"#regexp-single-three-line\"},{\"include\":\"#regexp-double-three-line\"},{\"include\":\"#regexp-single-one-line\"},{\"include\":\"#regexp-double-one-line\"}]},\"regexp-backreference\":{\"captures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.begin.regexp\"},\"2\":{\"name\":\"entity.name.tag.named.backreference.regexp\"},\"3\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.end.regexp\"}},\"match\":\"(\\\\\\\\()(\\\\\\\\?P=\\\\\\\\w+(?:\\\\\\\\s+[[:alnum:]]+)?)(\\\\\\\\))\",\"name\":\"meta.backreference.named.regexp\"},\"regexp-backreference-number\":{\"captures\":{\"1\":{\"name\":\"entity.name.tag.backreference.regexp\"}},\"match\":\"(\\\\\\\\\\\\\\\\[1-9]\\\\\\\\d?)\",\"name\":\"meta.backreference.regexp\"},\"regexp-base-common\":{\"patterns\":[{\"match\":\"\\\\\\\\.\",\"name\":\"support.other.match.any.regexp\"},{\"match\":\"\\\\\\\\^\",\"name\":\"support.other.match.begin.regexp\"},{\"match\":\"\\\\\\\\$\",\"name\":\"support.other.match.end.regexp\"},{\"match\":\"[+*?]\\\\\\\\??\",\"name\":\"keyword.operator.quantifier.regexp\"},{\"match\":\"\\\\\\\\|\",\"name\":\"keyword.operator.disjunction.regexp\"},{\"include\":\"#regexp-escape-sequence\"}]},\"regexp-base-expression\":{\"patterns\":[{\"include\":\"#regexp-quantifier\"},{\"include\":\"#regexp-base-common\"}]},\"regexp-charecter-set-escapes\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[abfnrtv\\\\\\\\\\\\\\\\]\",\"name\":\"constant.character.escape.regexp\"},{\"include\":\"#regexp-escape-special\"},{\"match\":\"\\\\\\\\\\\\\\\\([0-7]{1,3})\",\"name\":\"constant.character.escape.regexp\"},{\"include\":\"#regexp-escape-character\"},{\"include\":\"#regexp-escape-unicode\"},{\"include\":\"#regexp-escape-catchall\"}]},\"regexp-double-one-line\":{\"begin\":\"\\\\\\\\b(([uU]r)|([bB]r)|(r[bB]?))(\\\\\")\",\"beginCaptures\":{\"2\":{\"name\":\"invalid.deprecated.prefix.python\"},\"3\":{\"name\":\"storage.type.string.python\"},\"4\":{\"name\":\"storage.type.string.python\"},\"5\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\")|(?<!\\\\\\\\\\\\\\\\)(\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.regexp.quoted.single.python\",\"patterns\":[{\"include\":\"#double-one-regexp-expression\"}]},\"regexp-double-three-line\":{\"begin\":\"\\\\\\\\b(([uU]r)|([bB]r)|(r[bB]?))(\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"2\":{\"name\":\"invalid.deprecated.prefix.python\"},\"3\":{\"name\":\"storage.type.string.python\"},\"4\":{\"name\":\"storage.type.string.python\"},\"5\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\"\\\\\"\\\\\")\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.regexp.quoted.multi.python\",\"patterns\":[{\"include\":\"#double-three-regexp-expression\"}]},\"regexp-escape-catchall\":{\"match\":\"\\\\\\\\\\\\\\\\(.|\\\\\\\\n)\",\"name\":\"constant.character.escape.regexp\"},\"regexp-escape-character\":{\"match\":\"\\\\\\\\\\\\\\\\(x[0-9A-Fa-f]{2}|0[0-7]{1,2}|[0-7]{3})\",\"name\":\"constant.character.escape.regexp\"},\"regexp-escape-sequence\":{\"patterns\":[{\"include\":\"#regexp-escape-special\"},{\"include\":\"#regexp-escape-character\"},{\"include\":\"#regexp-escape-unicode\"},{\"include\":\"#regexp-backreference-number\"},{\"include\":\"#regexp-escape-catchall\"}]},\"regexp-escape-special\":{\"match\":\"\\\\\\\\\\\\\\\\([AbBdDsSwWZ])\",\"name\":\"support.other.escape.special.regexp\"},\"regexp-escape-unicode\":{\"match\":\"\\\\\\\\\\\\\\\\(u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})\",\"name\":\"constant.character.unicode.regexp\"},\"regexp-flags\":{\"match\":\"\\\\\\\\(\\\\\\\\?[aiLmsux]+\\\\\\\\)\",\"name\":\"storage.modifier.flag.regexp\"},\"regexp-quantifier\":{\"match\":\"\\\\\\\\{(\\\\\\\\d+|\\\\\\\\d+,(\\\\\\\\d+)?|,\\\\\\\\d+)\\\\\\\\}\",\"name\":\"keyword.operator.quantifier.regexp\"},\"regexp-single-one-line\":{\"begin\":\"\\\\\\\\b(([uU]r)|([bB]r)|(r[bB]?))(\\\\\\\\')\",\"beginCaptures\":{\"2\":{\"name\":\"invalid.deprecated.prefix.python\"},\"3\":{\"name\":\"storage.type.string.python\"},\"4\":{\"name\":\"storage.type.string.python\"},\"5\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\')|(?<!\\\\\\\\\\\\\\\\)(\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.regexp.quoted.single.python\",\"patterns\":[{\"include\":\"#single-one-regexp-expression\"}]},\"regexp-single-three-line\":{\"begin\":\"\\\\\\\\b(([uU]r)|([bB]r)|(r[bB]?))(\\\\\\\\'\\\\\\\\'\\\\\\\\')\",\"beginCaptures\":{\"2\":{\"name\":\"invalid.deprecated.prefix.python\"},\"3\":{\"name\":\"storage.type.string.python\"},\"4\":{\"name\":\"storage.type.string.python\"},\"5\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\'\\\\\\\\'\\\\\\\\')\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.regexp.quoted.multi.python\",\"patterns\":[{\"include\":\"#single-three-regexp-expression\"}]},\"return-annotation\":{\"begin\":\"(->)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.annotation.result.python\"}},\"end\":\"(?=:)\",\"patterns\":[{\"include\":\"#expression\"}]},\"round-braces\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.begin.python\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.end.python\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"semicolon\":{\"patterns\":[{\"match\":\"\\\\\\\\;$\",\"name\":\"invalid.deprecated.semicolon.python\"}]},\"single-one-regexp-character-set\":{\"patterns\":[{\"match\":\"\\\\\\\\[\\\\\\\\^?\\\\\\\\](?!.*?\\\\\\\\])\"},{\"begin\":\"(\\\\\\\\[)(\\\\\\\\^)?(\\\\\\\\])?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.character.set.begin.regexp constant.other.set.regexp\"},\"2\":{\"name\":\"keyword.operator.negation.regexp\"},\"3\":{\"name\":\"constant.character.set.regexp\"}},\"end\":\"(\\\\\\\\]|(?=\\\\\\\\'))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.character.set.end.regexp constant.other.set.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.character.set.regexp\",\"patterns\":[{\"include\":\"#regexp-charecter-set-escapes\"},{\"match\":\"[^\\\\\\\\n]\",\"name\":\"constant.character.set.regexp\"}]}]},\"single-one-regexp-comments\":{\"begin\":\"\\\\\\\\(\\\\\\\\?#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.comment.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.comment.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"comment.regexp\",\"patterns\":[{\"include\":\"#codetags\"}]},\"single-one-regexp-conditional\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?\\\\\\\\((\\\\\\\\w+(?:\\\\\\\\s+[[:alnum:]]+)?|\\\\\\\\d+)\\\\\\\\)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.conditional.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.conditional.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-one-regexp-expression\"}]},\"single-one-regexp-expression\":{\"patterns\":[{\"include\":\"#regexp-base-expression\"},{\"include\":\"#single-one-regexp-character-set\"},{\"include\":\"#single-one-regexp-comments\"},{\"include\":\"#regexp-flags\"},{\"include\":\"#single-one-regexp-named-group\"},{\"include\":\"#regexp-backreference\"},{\"include\":\"#single-one-regexp-lookahead\"},{\"include\":\"#single-one-regexp-lookahead-negative\"},{\"include\":\"#single-one-regexp-lookbehind\"},{\"include\":\"#single-one-regexp-lookbehind-negative\"},{\"include\":\"#single-one-regexp-conditional\"},{\"include\":\"#single-one-regexp-parentheses-non-capturing\"},{\"include\":\"#single-one-regexp-parentheses\"}]},\"single-one-regexp-lookahead\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookahead.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookahead.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-one-regexp-expression\"}]},\"single-one-regexp-lookahead-negative\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?!\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookahead.negative.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookahead.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-one-regexp-expression\"}]},\"single-one-regexp-lookbehind\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?<=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookbehind.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookbehind.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-one-regexp-expression\"}]},\"single-one-regexp-lookbehind-negative\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?<!\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookbehind.negative.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookbehind.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-one-regexp-expression\"}]},\"single-one-regexp-named-group\":{\"begin\":\"(\\\\\\\\()(\\\\\\\\?P<\\\\\\\\w+(?:\\\\\\\\s+[[:alnum:]]+)?>)\",\"beginCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp\"},\"2\":{\"name\":\"entity.name.tag.named.group.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.named.regexp\",\"patterns\":[{\"include\":\"#single-one-regexp-expression\"}]},\"single-one-regexp-parentheses\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-one-regexp-expression\"}]},\"single-one-regexp-parentheses-non-capturing\":{\"begin\":\"\\\\\\\\(\\\\\\\\?:\",\"beginCaptures\":{\"0\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-one-regexp-expression\"}]},\"single-three-regexp-character-set\":{\"patterns\":[{\"match\":\"\\\\\\\\[\\\\\\\\^?\\\\\\\\](?!.*?\\\\\\\\])\"},{\"begin\":\"(\\\\\\\\[)(\\\\\\\\^)?(\\\\\\\\])?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.character.set.begin.regexp constant.other.set.regexp\"},\"2\":{\"name\":\"keyword.operator.negation.regexp\"},\"3\":{\"name\":\"constant.character.set.regexp\"}},\"end\":\"(\\\\\\\\]|(?=\\\\\\\\'\\\\\\\\'\\\\\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.character.set.end.regexp constant.other.set.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.character.set.regexp\",\"patterns\":[{\"include\":\"#regexp-charecter-set-escapes\"},{\"match\":\"[^\\\\\\\\n]\",\"name\":\"constant.character.set.regexp\"}]}]},\"single-three-regexp-comments\":{\"begin\":\"\\\\\\\\(\\\\\\\\?#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.comment.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'\\\\\\\\'\\\\\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.comment.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"comment.regexp\",\"patterns\":[{\"include\":\"#codetags\"}]},\"single-three-regexp-conditional\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?\\\\\\\\((\\\\\\\\w+(?:\\\\\\\\s+[[:alnum:]]+)?|\\\\\\\\d+)\\\\\\\\)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.conditional.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.conditional.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'\\\\\\\\'\\\\\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-three-regexp-expression\"},{\"include\":\"#comments-string-single-three\"}]},\"single-three-regexp-expression\":{\"patterns\":[{\"include\":\"#regexp-base-expression\"},{\"include\":\"#single-three-regexp-character-set\"},{\"include\":\"#single-three-regexp-comments\"},{\"include\":\"#regexp-flags\"},{\"include\":\"#single-three-regexp-named-group\"},{\"include\":\"#regexp-backreference\"},{\"include\":\"#single-three-regexp-lookahead\"},{\"include\":\"#single-three-regexp-lookahead-negative\"},{\"include\":\"#single-three-regexp-lookbehind\"},{\"include\":\"#single-three-regexp-lookbehind-negative\"},{\"include\":\"#single-three-regexp-conditional\"},{\"include\":\"#single-three-regexp-parentheses-non-capturing\"},{\"include\":\"#single-three-regexp-parentheses\"},{\"include\":\"#comments-string-single-three\"}]},\"single-three-regexp-lookahead\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookahead.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookahead.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'\\\\\\\\'\\\\\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-three-regexp-expression\"},{\"include\":\"#comments-string-single-three\"}]},\"single-three-regexp-lookahead-negative\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?!\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookahead.negative.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookahead.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'\\\\\\\\'\\\\\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-three-regexp-expression\"},{\"include\":\"#comments-string-single-three\"}]},\"single-three-regexp-lookbehind\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?<=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookbehind.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookbehind.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'\\\\\\\\'\\\\\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-three-regexp-expression\"},{\"include\":\"#comments-string-single-three\"}]},\"single-three-regexp-lookbehind-negative\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?<!\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookbehind.negative.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookbehind.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'\\\\\\\\'\\\\\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-three-regexp-expression\"},{\"include\":\"#comments-string-single-three\"}]},\"single-three-regexp-named-group\":{\"begin\":\"(\\\\\\\\()(\\\\\\\\?P<\\\\\\\\w+(?:\\\\\\\\s+[[:alnum:]]+)?>)\",\"beginCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp\"},\"2\":{\"name\":\"entity.name.tag.named.group.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'\\\\\\\\'\\\\\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.named.regexp\",\"patterns\":[{\"include\":\"#single-three-regexp-expression\"},{\"include\":\"#comments-string-single-three\"}]},\"single-three-regexp-parentheses\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'\\\\\\\\'\\\\\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-three-regexp-expression\"},{\"include\":\"#comments-string-single-three\"}]},\"single-three-regexp-parentheses-non-capturing\":{\"begin\":\"\\\\\\\\(\\\\\\\\?:\",\"beginCaptures\":{\"0\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'\\\\\\\\'\\\\\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-three-regexp-expression\"},{\"include\":\"#comments-string-single-three\"}]},\"special-names\":{\"match\":\"\\\\\\\\b(_*[[:upper:]][_\\\\\\\\d]*[[:upper:]])[[:upper:]\\\\\\\\d]*(_\\\\\\\\w*)?\\\\\\\\b\",\"name\":\"constant.other.caps.python\"},\"special-variables\":{\"captures\":{\"1\":{\"name\":\"variable.language.special.self.python\"},\"2\":{\"name\":\"variable.language.special.cls.python\"}},\"match\":\"\\\\\\\\b(?<!\\\\\\\\.)(?:(self)|(cls))\\\\\\\\b\"},\"statement\":{\"patterns\":[{\"include\":\"#import\"},{\"include\":\"#class-declaration\"},{\"include\":\"#function-declaration\"},{\"include\":\"#generator\"},{\"include\":\"#statement-keyword\"},{\"include\":\"#assignment-operator\"},{\"include\":\"#decorator\"},{\"include\":\"#docstring-statement\"},{\"include\":\"#semicolon\"}]},\"statement-keyword\":{\"patterns\":[{\"match\":\"\\\\\\\\b((async\\\\\\\\s+)?\\\\\\\\s*def)\\\\\\\\b\",\"name\":\"storage.type.function.python\"},{\"comment\":\"if \\`as\\` is eventually followed by \\`:\\` or line continuation\\\\nit's probably control flow like:\\\\n    with foo as bar, \\\\\\\\\\\\n         Foo as Bar:\\\\n      try:\\\\n        do_stuff()\\\\n      except Exception as e:\\\\n        pass\\\\n\",\"match\":\"\\\\\\\\b(?<!\\\\\\\\.)as\\\\\\\\b(?=.*[:\\\\\\\\\\\\\\\\])\",\"name\":\"keyword.control.flow.python\"},{\"comment\":\"other legal use of \\`as\\` is in an import\",\"match\":\"\\\\\\\\b(?<!\\\\\\\\.)as\\\\\\\\b\",\"name\":\"keyword.control.import.python\"},{\"match\":\"\\\\\\\\b(?<!\\\\\\\\.)(async|continue|del|assert|break|finally|for|from|elif|else|if|except|pass|raise|return|try|while|with)\\\\\\\\b\",\"name\":\"keyword.control.flow.python\"},{\"match\":\"\\\\\\\\b(?<!\\\\\\\\.)(global|nonlocal)\\\\\\\\b\",\"name\":\"storage.modifier.declaration.python\"},{\"match\":\"\\\\\\\\b(?<!\\\\\\\\.)(class)\\\\\\\\b\",\"name\":\"storage.type.class.python\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.flow.python\"}},\"match\":\"^\\\\\\\\s*(case|match)(?=\\\\\\\\s*([-+\\\\\\\\w\\\\\\\\d(\\\\\\\\[{'\\\\\":#]|$))\\\\\\\\b\"}]},\"string\":{\"patterns\":[{\"include\":\"#string-quoted-multi-line\"},{\"include\":\"#string-quoted-single-line\"},{\"include\":\"#string-bin-quoted-multi-line\"},{\"include\":\"#string-bin-quoted-single-line\"},{\"include\":\"#string-raw-quoted-multi-line\"},{\"include\":\"#string-raw-quoted-single-line\"},{\"include\":\"#string-raw-bin-quoted-multi-line\"},{\"include\":\"#string-raw-bin-quoted-single-line\"},{\"include\":\"#fstring-fnorm-quoted-multi-line\"},{\"include\":\"#fstring-fnorm-quoted-single-line\"},{\"include\":\"#fstring-normf-quoted-multi-line\"},{\"include\":\"#fstring-normf-quoted-single-line\"},{\"include\":\"#fstring-raw-quoted-multi-line\"},{\"include\":\"#fstring-raw-quoted-single-line\"}]},\"string-bin-quoted-multi-line\":{\"begin\":\"(\\\\\\\\b[bB])('''|\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.python\"},\"2\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\2)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.quoted.binary.multi.python\",\"patterns\":[{\"include\":\"#string-entity\"}]},\"string-bin-quoted-single-line\":{\"begin\":\"(\\\\\\\\b[bB])((['\\\\\"]))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.python\"},\"2\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\2)|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.quoted.binary.single.python\",\"patterns\":[{\"include\":\"#string-entity\"}]},\"string-brace-formatting\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"},\"3\":{\"name\":\"storage.type.format.python\"},\"4\":{\"name\":\"storage.type.format.python\"}},\"match\":\"({{|}}|(?:{\\\\\\\\w*(\\\\\\\\.[[:alpha:]_]\\\\\\\\w*|\\\\\\\\[[^\\\\\\\\]'\\\\\"]+\\\\\\\\])*(![rsa])?(:\\\\\\\\w?[<>=^]?[-+ ]?\\\\\\\\#?\\\\\\\\d*,?(\\\\\\\\.\\\\\\\\d+)?[bcdeEfFgGnosxX%]?)?}))\",\"name\":\"meta.format.brace.python\"},{\"captures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"},\"3\":{\"name\":\"storage.type.format.python\"},\"4\":{\"name\":\"storage.type.format.python\"}},\"match\":\"({\\\\\\\\w*(\\\\\\\\.[[:alpha:]_]\\\\\\\\w*|\\\\\\\\[[^\\\\\\\\]'\\\\\"]+\\\\\\\\])*(![rsa])?(:)[^'\\\\\"{}\\\\\\\\n]*(?:\\\\\\\\{[^'\\\\\"}\\\\\\\\n]*?\\\\\\\\}[^'\\\\\"{}\\\\\\\\n]*)*})\",\"name\":\"meta.format.brace.python\"}]},\"string-consume-escape\":{\"match\":\"\\\\\\\\\\\\\\\\['\\\\\"\\\\\\\\n\\\\\\\\\\\\\\\\]\"},\"string-entity\":{\"patterns\":[{\"include\":\"#escape-sequence\"},{\"include\":\"#string-line-continuation\"},{\"include\":\"#string-formatting\"}]},\"string-formatting\":{\"captures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"}},\"match\":\"(%(\\\\\\\\([\\\\\\\\w\\\\\\\\s]*\\\\\\\\))?[-+#0 ]*(\\\\\\\\d+|\\\\\\\\*)?(\\\\\\\\.(\\\\\\\\d+|\\\\\\\\*))?([hlL])?[diouxXeEfFgGcrsab%])\",\"name\":\"meta.format.percent.python\"},\"string-line-continuation\":{\"match\":\"\\\\\\\\\\\\\\\\$\",\"name\":\"constant.language.python\"},\"string-multi-bad-brace1-formatting-raw\":{\"begin\":\"(?=\\\\\\\\{%(.*?(?!'''|\\\\\"\\\\\"\\\\\"))%\\\\\\\\})\",\"comment\":\"template using {% ... %}\",\"end\":\"(?='''|\\\\\"\\\\\"\\\\\")\",\"patterns\":[{\"include\":\"#string-consume-escape\"}]},\"string-multi-bad-brace1-formatting-unicode\":{\"begin\":\"(?=\\\\\\\\{%(.*?(?!'''|\\\\\"\\\\\"\\\\\"))%\\\\\\\\})\",\"comment\":\"template using {% ... %}\",\"end\":\"(?='''|\\\\\"\\\\\"\\\\\")\",\"patterns\":[{\"include\":\"#escape-sequence-unicode\"},{\"include\":\"#escape-sequence\"},{\"include\":\"#string-line-continuation\"}]},\"string-multi-bad-brace2-formatting-raw\":{\"begin\":\"(?!\\\\\\\\{\\\\\\\\{)(?=\\\\\\\\{(\\\\\\\\w*?(?!'''|\\\\\"\\\\\"\\\\\")[^!:\\\\\\\\.\\\\\\\\[}\\\\\\\\w]).*?(?!'''|\\\\\"\\\\\"\\\\\")\\\\\\\\})\",\"comment\":\"odd format or format-like syntax\",\"end\":\"(?='''|\\\\\"\\\\\"\\\\\")\",\"patterns\":[{\"include\":\"#string-consume-escape\"},{\"include\":\"#string-formatting\"}]},\"string-multi-bad-brace2-formatting-unicode\":{\"begin\":\"(?!\\\\\\\\{\\\\\\\\{)(?=\\\\\\\\{(\\\\\\\\w*?(?!'''|\\\\\"\\\\\"\\\\\")[^!:\\\\\\\\.\\\\\\\\[}\\\\\\\\w]).*?(?!'''|\\\\\"\\\\\"\\\\\")\\\\\\\\})\",\"comment\":\"odd format or format-like syntax\",\"end\":\"(?='''|\\\\\"\\\\\"\\\\\")\",\"patterns\":[{\"include\":\"#escape-sequence-unicode\"},{\"include\":\"#string-entity\"}]},\"string-quoted-multi-line\":{\"begin\":\"(?:\\\\\\\\b([rR])(?=[uU]))?([uU])?('''|\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"invalid.illegal.prefix.python\"},\"2\":{\"name\":\"storage.type.string.python\"},\"3\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\3)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.quoted.multi.python\",\"patterns\":[{\"include\":\"#string-multi-bad-brace1-formatting-unicode\"},{\"include\":\"#string-multi-bad-brace2-formatting-unicode\"},{\"include\":\"#string-unicode-guts\"}]},\"string-quoted-single-line\":{\"begin\":\"(?:\\\\\\\\b([rR])(?=[uU]))?([uU])?((['\\\\\"]))\",\"beginCaptures\":{\"1\":{\"name\":\"invalid.illegal.prefix.python\"},\"2\":{\"name\":\"storage.type.string.python\"},\"3\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\3)|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.quoted.single.python\",\"patterns\":[{\"include\":\"#string-single-bad-brace1-formatting-unicode\"},{\"include\":\"#string-single-bad-brace2-formatting-unicode\"},{\"include\":\"#string-unicode-guts\"}]},\"string-raw-bin-guts\":{\"patterns\":[{\"include\":\"#string-consume-escape\"},{\"include\":\"#string-formatting\"}]},\"string-raw-bin-quoted-multi-line\":{\"begin\":\"(\\\\\\\\b(?:R[bB]|[bB]R))('''|\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.python\"},\"2\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\2)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.quoted.raw.binary.multi.python\",\"patterns\":[{\"include\":\"#string-raw-bin-guts\"}]},\"string-raw-bin-quoted-single-line\":{\"begin\":\"(\\\\\\\\b(?:R[bB]|[bB]R))((['\\\\\"]))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.python\"},\"2\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\2)|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.quoted.raw.binary.single.python\",\"patterns\":[{\"include\":\"#string-raw-bin-guts\"}]},\"string-raw-guts\":{\"patterns\":[{\"include\":\"#string-consume-escape\"},{\"include\":\"#string-formatting\"},{\"include\":\"#string-brace-formatting\"}]},\"string-raw-quoted-multi-line\":{\"begin\":\"\\\\\\\\b(([uU]R)|(R))('''|\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"2\":{\"name\":\"invalid.deprecated.prefix.python\"},\"3\":{\"name\":\"storage.type.string.python\"},\"4\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\4)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.quoted.raw.multi.python\",\"patterns\":[{\"include\":\"#string-multi-bad-brace1-formatting-raw\"},{\"include\":\"#string-multi-bad-brace2-formatting-raw\"},{\"include\":\"#string-raw-guts\"}]},\"string-raw-quoted-single-line\":{\"begin\":\"\\\\\\\\b(([uU]R)|(R))((['\\\\\"]))\",\"beginCaptures\":{\"2\":{\"name\":\"invalid.deprecated.prefix.python\"},\"3\":{\"name\":\"storage.type.string.python\"},\"4\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\4)|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.quoted.raw.single.python\",\"patterns\":[{\"include\":\"#string-single-bad-brace1-formatting-raw\"},{\"include\":\"#string-single-bad-brace2-formatting-raw\"},{\"include\":\"#string-raw-guts\"}]},\"string-single-bad-brace1-formatting-raw\":{\"begin\":\"(?=\\\\\\\\{%(.*?(?!(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)))%\\\\\\\\})\",\"comment\":\"template using {% ... %}\",\"end\":\"(?=(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"patterns\":[{\"include\":\"#string-consume-escape\"}]},\"string-single-bad-brace1-formatting-unicode\":{\"begin\":\"(?=\\\\\\\\{%(.*?(?!(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)))%\\\\\\\\})\",\"comment\":\"template using {% ... %}\",\"end\":\"(?=(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"patterns\":[{\"include\":\"#escape-sequence-unicode\"},{\"include\":\"#escape-sequence\"},{\"include\":\"#string-line-continuation\"}]},\"string-single-bad-brace2-formatting-raw\":{\"begin\":\"(?!\\\\\\\\{\\\\\\\\{)(?=\\\\\\\\{(\\\\\\\\w*?(?!(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))[^!:\\\\\\\\.\\\\\\\\[}\\\\\\\\w]).*?(?!(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\\\\\\\\})\",\"comment\":\"odd format or format-like syntax\",\"end\":\"(?=(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"patterns\":[{\"include\":\"#string-consume-escape\"},{\"include\":\"#string-formatting\"}]},\"string-single-bad-brace2-formatting-unicode\":{\"begin\":\"(?!\\\\\\\\{\\\\\\\\{)(?=\\\\\\\\{(\\\\\\\\w*?(?!(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))[^!:\\\\\\\\.\\\\\\\\[}\\\\\\\\w]).*?(?!(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\\\\\\\\})\",\"comment\":\"odd format or format-like syntax\",\"end\":\"(?=(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"patterns\":[{\"include\":\"#escape-sequence-unicode\"},{\"include\":\"#string-entity\"}]},\"string-unicode-guts\":{\"patterns\":[{\"include\":\"#escape-sequence-unicode\"},{\"include\":\"#string-entity\"},{\"include\":\"#string-brace-formatting\"}]}},\"scopeName\":\"source.python\",\"aliases\":[\"py\"]}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Dhn9LcZ4.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Assembly\",\"fileTypes\":[\"asm\",\"nasm\",\"yasm\",\"inc\",\"s\"],\"name\":\"asm\",\"patterns\":[{\"include\":\"#registers\"},{\"include\":\"#mnemonics\"},{\"include\":\"#constants\"},{\"include\":\"#entities\"},{\"include\":\"#support\"},{\"include\":\"#comments\"},{\"include\":\"#preprocessor\"},{\"include\":\"#strings\"}],\"repository\":{\"comments\":{\"patterns\":[{\"match\":\"(;|(^|\\\\\\\\s)#\\\\\\\\s).*$\",\"name\":\"comment.line\"},{\"begin\":\"/\\\\\\\\*\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block\"},{\"begin\":\"^\\\\\\\\s*[\\\\\\\\#%]\\\\\\\\s*if\\\\\\\\s+0\\\\\\\\b\",\"end\":\"^\\\\\\\\s*[\\\\\\\\#%]\\\\\\\\s*endif\\\\\\\\b\",\"name\":\"comment.preprocessor\"}]},\"constants\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b0[by](?:[01][01_]*)\\\\\\\\.(?:(?:[01][01_]*)?(?:p[+-]?(?:[0-9][0-9_]*))?\\\\\\\\b)?\",\"name\":\"constant.numeric.binary.floating-point.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\b0[by](?:[01][01_]*)(?:p[+-]?(?:[0-9][0-9_]*))\\\\\\\\b\",\"name\":\"constant.numeric.binary.floating-point.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\b0[oq](?:[0-7][0-7_]*)\\\\\\\\.(?:(?:[0-7][0-7_]*)?(?:p[+-]?(?:[0-9][0-9_]*))?\\\\\\\\b)?\",\"name\":\"constant.numeric.octal.floating-point.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\b0[oq](?:[0-7][0-7_]*)(?:p[+-]?(?:[0-9][0-9_]*))\\\\\\\\b\",\"name\":\"constant.numeric.octal.floating-point.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\b(?:0[dt])?(?:[0-9][0-9_]*)\\\\\\\\.(?:(?:[0-9][0-9_]*)?(?:e[+-]?(?:[0-9][0-9_]*))?\\\\\\\\b)?\",\"name\":\"constant.numeric.decimal.floating-point.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\b(?:[0-9][0-9_]*)(?:e[+-]?(?:[0-9][0-9_]*))\\\\\\\\b\",\"name\":\"constant.numeric.decimal.floating-point.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\b(?:[0-9][0-9_]*)p(?:[0-9][0-9_]*)?\\\\\\\\b\",\"name\":\"constant.numeric.decimal.packed-bcd.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\b0[xh](?:[[:xdigit:]][[:xdigit:]_]*)\\\\\\\\.(?:(?:[[:xdigit:]][[:xdigit:]_]*)?(?:p[+-]?(?:[0-9][0-9_]*))?\\\\\\\\b)?\",\"name\":\"constant.numeric.hex.floating-point.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\b0[xh](?:[[:xdigit:]][[:xdigit:]_]*)(?:p[+-]?(?:[0-9][0-9_]*))\\\\\\\\b\",\"name\":\"constant.numeric.hex.floating-point.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\$[0-9]\\\\\\\\_?(?:[[:xdigit:]][[:xdigit:]_]*)?\\\\\\\\.(?:(?:[[:xdigit:]][[:xdigit:]_]*)?(?:p[+-]?(?:[0-9][0-9_]*))?\\\\\\\\b)?\",\"name\":\"constant.numeric.hex.floating-point.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\$[0-9]\\\\\\\\_?(?:[[:xdigit:]][[:xdigit:]_]*)(?:p[+-]?(?:[0-9][0-9_]*))\\\\\\\\b\",\"name\":\"constant.numeric.hex.floating-point.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\b(?:(?:0[by](?:[01][01_]*))|(?:(?:[01][01_]*)[by]))\\\\\\\\b\",\"name\":\"constant.numeric.binary.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\b(?:(?:0[oq](?:[0-7][0-7_]*))|(?:(?:[0-7][0-7_]*)[oq]))\\\\\\\\b\",\"name\":\"constant.numeric.octal.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\b(?:(?:0[dt](?:[0-9][0-9_]*))|(?:(?:[0-9][0-9_]*)[dt]?))\\\\\\\\b\",\"name\":\"constant.numeric.decimal.asm.x86_64\"},{\"match\":\"(?i)(?:\\\\\\\\$[0-9]\\\\\\\\_?(?:[[:xdigit:]][[:xdigit:]_]*)?)\\\\\\\\b\",\"name\":\"constant.numeric.hex.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\b(?:(?:0[xh](?:[[:xdigit:]][[:xdigit:]_]*))|(?:(?:[[:xdigit:]][[:xdigit:]_]*)[hxHX]))\\\\\\\\b\",\"name\":\"constant.numeric.hex.asm.x86_64\"}]},\"entities\":{\"patterns\":[{\"match\":\"((section|segment)\\\\\\\\s+)?\\\\\\\\.((ro)?data|bss|text)\",\"name\":\"entity.name.section\"},{\"match\":\"^\\\\\\\\.?(globa?l|extern|required)\\\\\\\\b\",\"name\":\"entity.directive\"},{\"match\":\"(\\\\\\\\$\\\\\\\\w+)\\\\\\\\b\",\"name\":\"text.variable\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.asm.x86_64 storage.modifier.asm.x86_64\"},\"2\":{\"name\":\"entity.name.function.special.asm.x86_64\"},\"3\":{\"name\":\"punctuation.separator.asm.x86_64\"}},\"match\":\"(\\\\\\\\.\\\\\\\\.@)((?:[[:alpha:]_?](?:[[:alnum:]_$#@~.?]*)))(?:(\\\\\\\\:)?|\\\\\\\\b)\",\"name\":\"entity.name.function.asm.x86_64\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.asm.x86_64 storage.modifier.asm.x86_64\"},\"2\":{\"name\":\"entity.name.function.asm.x86_64\"},\"3\":{\"name\":\"punctuation.separator.asm.x86_64\"}},\"match\":\"(?:(\\\\\\\\.)?|\\\\\\\\b)((?:[[:alpha:]_?](?:[[:alnum:]_$#@~.?]*)))(?:(\\\\\\\\:))\",\"name\":\"entity.name.function.asm.x86_64\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.asm.x86_64 storage.modifier.asm.x86_64\"},\"2\":{\"name\":\"entity.name.function.asm.x86_64\"},\"3\":{\"name\":\"punctuation.separator.asm.x86_64\"}},\"match\":\"(\\\\\\\\.)([0-9]+(?:[[:alnum:]_$#@~.?]*))(?:(\\\\\\\\:)?|\\\\\\\\b)\",\"name\":\"entity.name.function.asm.x86_64\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.asm.x86_64 storage.modifier.asm.x86_64\"},\"2\":{\"name\":\"invalid.illegal.entity.name.function.asm.x86_64\"},\"3\":{\"name\":\"punctuation.separator.asm.x86_64\"}},\"match\":\"(?:(\\\\\\\\.)?|\\\\\\\\b)([0-9$@~](?:[[:alnum:]_$#@~.?]*))(?:(\\\\\\\\:))\",\"name\":\"invalid.illegal.entity.name.function.asm.x86_64\"}]},\"mnemonics\":{\"patterns\":[{\"include\":\"#mnemonics-general-purpose\"},{\"include\":\"#mnemonics-fpu\"},{\"include\":\"#mnemonics-mmx\"},{\"include\":\"#mnemonics-sse\"},{\"include\":\"#mnemonics-sse2\"},{\"include\":\"#mnemonics-sse3\"},{\"include\":\"#mnemonics-sse4\"},{\"include\":\"#mnemonics-aesni\"},{\"include\":\"#mnemonics-avx\"},{\"include\":\"#mnemonics-avx2\"},{\"include\":\"#mnemonics-tsx\"},{\"include\":\"#mnemonics-sha\"},{\"include\":\"#mnemonics-avx512\"},{\"include\":\"#mnemonics-system\"},{\"include\":\"#mnemonics-64bit\"},{\"include\":\"#mnemonics-vmx\"},{\"include\":\"#mnemonics-smx\"},{\"include\":\"#mnemonics-mpx\"},{\"include\":\"#mnemonics-sgx\"},{\"include\":\"#mnemonics-cet\"},{\"include\":\"#mnemonics-amx\"},{\"include\":\"#mnemonics-uirq\"},{\"include\":\"#mnemonics-esi\"},{\"include\":\"#mnemonics-intel-manual-listing\"},{\"include\":\"#mnemonics-intel-isa-xeon-phi\"},{\"include\":\"#mnemonics-intel-isa-keylocker\"},{\"include\":\"#mnemonics-supplemental-amd\"},{\"include\":\"#mnemonics-supplemental-cyrix\"},{\"include\":\"#mnemonics-supplemental-via\"},{\"include\":\"#mnemonics-undocumented\"},{\"include\":\"#mnemonics-future-intel\"},{\"include\":\"#mnemonics-pseudo-ops\"}]},\"mnemonics-64bit\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(cdqe|cqo|(cmp|lod|mov|sto)sq|cmpxchg16b|mov(ntq|sxd)|scasq|swapgs|sys(call|ret))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.64-bit-mode\"}]},\"mnemonics-aesni\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(aes((dec|enc)(last)?|imc|keygenassist)|pclmulqdq)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.aesni\"}]},\"mnemonics-amx\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b((ld|st)tilecfg|tdpb(f16ps|[su]{2}d)|tile(loadd(t1)?|release|stored|zero))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.amx\"}]},\"mnemonics-avx\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(v((test|permil|maskmov)p[ds]|zero(all|upper)|(perm2|insert|extract|broadcast)f128|broadcasts[ds]))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx\"},{\"match\":\"(?i)\\\\\\\\b(vaes((dec|enc)(last)?|imc|keygenassist)|vpclmulqdq)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx.promoted.aes\"},{\"match\":\"(?i)\\\\\\\\b(v((cmp[ps]|u?comis)[ds]|pcmp([ei]str[im]|(eq|gt)[bdqw])))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx.promoted.comparison\"},{\"match\":\"(?i)\\\\\\\\b(v(cvt(dq2pd|dq2ps|pd2ps|ps2pd|sd2ss|si2sd|si2ss|ss2sd|t?(pd2dq|ps2dq|sd2si|ss2si))))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx.promoted.conversion\"},{\"match\":\"(?i)\\\\\\\\b(vh((add|sub)p[ds])|vph((add|sub)([dw]|sw)|minposuw))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx.promoted.horizontal-packed-arithmetic\"},{\"match\":\"(?i)\\\\\\\\b(v((andn?|x?or)p[ds]))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx.promoted.logical\"},{\"match\":\"(?i)\\\\\\\\b(v(mov(([ahl]|msk|nt|u)p[ds]|(hl|lh)ps|s([ds]|[hl]dup)|q)))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx.promoted.mov\"},{\"match\":\"(?i)\\\\\\\\b(v((add|div|mul|sub|max|min|round|sqrt)[ps][ds]|(addsub|dp)p[ds]|(rcp|rsqrt)[ps]s))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx.promoted.packed-arithmetic\"},{\"match\":\"(?i)\\\\\\\\b(v(pack[su]s(dw|wb)|punpck[hl](bw|dq|wd|qdq)|unpck[hl]p[ds]))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx.promoted.packed-conversion\"},{\"match\":\"(?i)\\\\\\\\b(vp(shuf([bd]|[hl]w))|vshufp[ds])\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx.promoted.packed-shuffle\"},{\"match\":\"(?i)\\\\\\\\b(vp((abs|sign|(max|min)[su])[bdw]|(add|sub)([bdqw]|u?s[bw])|avg[bw]|extr[bdqw]|madd(wd|ubsw)|mul(hu?w|hrsw|l[dw]|u?dq)|sadbw))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx.promoted.supplemental.arithmetic\"},{\"match\":\"(?i)\\\\\\\\b(vp(andn?|x?or))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx.promoted.supplemental.logical\"},{\"match\":\"(?i)\\\\\\\\b(vpblend(vb|w))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx.promoted.supplemental.blending\"},{\"match\":\"(?i)\\\\\\\\b(vpmov(mskb|[sz]x(b[dqw]|w[dq]|dq)))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx.promoted.supplemental.mov\"},{\"match\":\"(?i)\\\\\\\\b(vp(insr[bdqw]|sll(dq|[dqw])|srl(dq)))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx.promoted.simd-integer\"},{\"match\":\"(?i)\\\\\\\\b(vp(sra[dwq]|srl[dqw]))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx.promoted.shift-and-rotate\"},{\"match\":\"(?i)\\\\\\\\b(vblendv?p[ds])\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx.promoted.packed-blending\"},{\"match\":\"(?i)\\\\\\\\b(vp(test|alignr))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx.promoted.packed-other\"},{\"match\":\"(?i)\\\\\\\\b(vmov(d(dup|qa|qu)?))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx.promoted.simd-integer.mov\"},{\"match\":\"(?i)\\\\\\\\b(v((extract|insert)ps|lddqu|(ld|st)mxcsr|mpsadbw))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx.promoted.other\"},{\"match\":\"(?i)\\\\\\\\b(v(maskmovdqu|movntdqa?))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx.promoted.cacheability-control\"},{\"match\":\"(?i)\\\\\\\\b(vcvt(ph2ps|ps2ph))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.16-bit-floating-point-conversion\"},{\"match\":\"(?i)\\\\\\\\b(vfn?m((add|sub)(132|213|231)[ps][ds])|vfm((addsub|subadd)(132|213|231)p[ds]))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.fma\"}]},\"mnemonics-avx2\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(v((broadcast|extract|insert|perm2)i128|pmaskmov[dq]|perm([dsq]|p[sd])))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx2.promoted.simd\"},{\"match\":\"(?i)\\\\\\\\b(vpbroadcast[bdqw])\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx2.promoted.packed\"},{\"match\":\"(?i)\\\\\\\\b(vp(blendd|s[lr]lv[dq]|sravd))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx2.blend\"},{\"match\":\"(?i)\\\\\\\\b(vp?gather[dq][dq]|vgather([dq]|dq)p[ds])\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx2.gather\"}]},\"mnemonics-avx512\":{\"patterns\":[{\"include\":\"#mnemonics-avx512f\"},{\"include\":\"#mnemonics-avx512dq\"},{\"include\":\"#mnemonics-avx512bw\"},{\"include\":\"#mnemonics-avx512-opmask\"},{\"include\":\"#mnemonics-avx512er\"},{\"include\":\"#mnemonics-avx512pf\"},{\"include\":\"#mnemonics-avx512fp16\"}]},\"mnemonics-avx512-opmask\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\bk(add|andn?|mov|not|or(test)?|shift[lr]|test|xn?or)[bdqw]\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.opmask\"},{\"match\":\"(?i)\\\\\\\\bkunpck(bw|wd|dq)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.opmask.unpack\"}]},\"mnemonics-avx512bw\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\bv(dbpsadbw|movdqu(8|16))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.bw.dbpsad\"},{\"match\":\"(?i)\\\\\\\\bvp(blendm|cmpu?|movm2)[bw]\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.bw.pblend\"},{\"match\":\"(?i)\\\\\\\\bvperm(w|i2[bw])\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.bw.perpmi2\"},{\"match\":\"(?i)\\\\\\\\bvp(mov([bw]2m|u?swb))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.bw.pmov\"},{\"match\":\"(?i)\\\\\\\\bvp(s(ll|ra|rl)vw|testn?m[bw])\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.bw.psll\"},{\"match\":\"(?i)\\\\\\\\bvp(broadcastm(b2q|w2d)|(conflict|lzcnt)[dq])\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.bw.broadcast\"}]},\"mnemonics-avx512dq\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\bvcvt(t?p[ds]2u?qq|uqq2p[ds])\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.dq.cvt\"},{\"match\":\"(?i)\\\\\\\\bv((extract|insert)[fi]64x2|(fpclass|range|reduce)[ps][ds])\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.dq.extract\"},{\"match\":\"(?i)\\\\\\\\bvp(mov(m2[dq]|b2d|q2m)|mullq)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.dq.pmov\"}]},\"mnemonics-avx512er\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\bv(exp2|rcp28|rsqrt28)[ps][ds]\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.er\"}]},\"mnemonics-avx512f\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\bv(align[dq]|(blendm|compress)p[ds])\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.f.align\"},{\"match\":\"(?i)\\\\\\\\bv(cvtt?[ps][ds]2u(dq|si))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.f.cvtt\"},{\"match\":\"(?i)\\\\\\\\bv(cvt((q|ud)q2p|usi2s)[ds])\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.f.cvt\"},{\"match\":\"(?i)\\\\\\\\bv(expandp[ds]|extract[fi](32|64)x4|fixupimm[ps][ds])\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.f.expand\"},{\"match\":\"(?i)\\\\\\\\bv(get(exp|mant)[ps][ds]|insertf(32|64)x4|movdq[au](32|64))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.f.getexp\"},{\"match\":\"(?i)\\\\\\\\bvp(blendm[dq]|cmpu?[dq]|compress[dq])\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.f.pblend\"},{\"match\":\"(?i)\\\\\\\\bvp(erm[it]2(d|q|p[ds])|expand[dq]|(max|min)[su]q|movu?s(q[bdw]|d[bw]))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.f.permi\"},{\"match\":\"(?i)\\\\\\\\bvp(rolv?|rorr?|scatter[dq]|testn?m|terlog)[dq]\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.f.prol\"},{\"match\":\"(?i)\\\\\\\\bvpsravq\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.f.sravq\"},{\"match\":\"(?i)\\\\\\\\bv(rcp14|(rnd)?scale|rsqrt14)[ps][ds]\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.f.rcp\"},{\"match\":\"(?i)\\\\\\\\bv(scatter[dq]{2}|shuf[fi](32|64)x[24])\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.f.scatter\"}]},\"mnemonics-avx512fp16\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\bv((add|cmp|div|fc?(madd|mul)c|fpclass|get(exp|mant)|mul|rcp|reduce|(rnd)?scale|r?sqrt|sub)[ps]h|u?comish)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.fp16.add\"},{\"match\":\"(?i)\\\\\\\\bvcvt(u?([dq]q|w)|pd)2ph\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.fp16.cvtx2ph\"},{\"match\":\"(?i)\\\\\\\\bvcvtph2(u?([dq]q|w)|pd)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.fp16.cvtph2x\"},{\"match\":\"(?i)\\\\\\\\bvcvt(ph2psx|ps2phx)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.fp16.cvtx\"},{\"match\":\"(?i)\\\\\\\\bvcvt(s[dsi]|usi)2sh\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.fp16.cvtx2sh\"},{\"match\":\"(?i)\\\\\\\\bvcvtsh2(s[dsi]|usi)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.fp16.cvtsh2x\"},{\"match\":\"(?i)\\\\\\\\bvcvtt(ph2(u?(dq|qq|w))|sh2u?si)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.fp16.cvttph2x\"},{\"match\":\"(?i)\\\\\\\\bvfn?m((add|sub)(132|213|231))[ps]h\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.fp16.fmadd\"},{\"match\":\"(?i)\\\\\\\\bvfm(addsub|subadd)(132|213|231)ph\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.fp16.fmaddsub\"},{\"match\":\"(?i)\\\\\\\\bv((min|max)ph|mov(sh|w))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.fp16.max\"}]},\"mnemonics-avx512pf\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\bv(gather|scatter)pf[01][dq]p[ds]\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.avx512.pf\"}]},\"mnemonics-cet\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b((inc|save(prev)?|rstor|rd)ssp|wru?ss|(set|clr)ssbsy|endbr(32|64))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.cet\"},{\"match\":\"(?i)\\\\\\\\bendbranch\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.cet.misc\"}]},\"mnemonics-esi\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\benqcmds?\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.esi\"}]},\"mnemonics-fpu\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(fcmov(n?([beu]|be)))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.fpu.data-transfer.mov\"},{\"match\":\"(?i)\\\\\\\\b(f(i?(ld|stp?)|b(ld|stp)|xch))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.fpu.data-transfer.other\"},{\"match\":\"(?i)\\\\\\\\b(f((add|div|mul|sub)p?|i(add|div|mul|sub)|(div|sub)rp?|i(div|sub)r))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.fpu.basic-arithmetic.basic\"},{\"match\":\"(?i)\\\\\\\\b(f(prem1?|abs|chs|rndint|scale|sqrt|xtract))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.fpu.basic-arithmetic.other\"},{\"match\":\"(?i)\\\\\\\\b(f(u?com[ip]?p?|icomp?|tst|xam))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.fpu.comparison\"},{\"match\":\"(?i)\\\\\\\\b(f(sin|cos|sincos|pa?tan|2xm1|yl2x(p1)?))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.fpu.transcendental\"},{\"match\":\"(?i)\\\\\\\\b(fld(1|z|pi|l2[et]|l[ng]2))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.fpu.load-constants\"},{\"match\":\"(?i)\\\\\\\\b(f((inc|dec)stp|free|n?(init|clex|st[cs]w|stenv|save)|ld(cw|env)|rstor|nop)|f?wait)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.fpu.control-management\"},{\"match\":\"(?i)\\\\\\\\b(fx(save|rstor)(64)?)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.fpu.state-management\"}]},\"mnemonics-future-intel\":{\"patterns\":[{\"include\":\"#mnemonics-future-intel-apx\"}]},\"mnemonics-future-intel-apx\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(c(cmp|test)(n?[bl]e?|[ft]|n?[osz]))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.apx.ccmp_test\"},{\"match\":\"(?i)\\\\\\\\b(cfcmovn?([bl]e?|[opsz]))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.apx.cfcmov\"},{\"match\":\"(?i)\\\\\\\\b(cmpn?([bl]e?|[opsz])xadd)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.apx.cmpxadd\"},{\"match\":\"(?i)\\\\\\\\b(jmpabs|(push|pop)2p?)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.apx.other\"}]},\"mnemonics-general-purpose\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(?:mov(?:[sz]x)?|cmov(?:n?[abceglopsz]|n?[abgl]e|p[eo]))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.general-purpose.data-transfer.mov\"},{\"match\":\"(?i)\\\\\\\\b(xchg|bswap|xadd|cmpxchg(8b)?)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.general-purpose.data-transfer.xchg\"},{\"match\":\"(?i)\\\\\\\\b((push|pop)(ad?)?|cwde?|cdq|cbw)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.general-purpose.data-transfer.other\"},{\"match\":\"(?i)\\\\\\\\b(adcx?|adox|add|sub|sbb|i?mul|i?div|inc|dec|neg|cmp)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.general-purpose.binary-arithmetic\"},{\"match\":\"(?i)\\\\\\\\b(daa|das|aaa|aas|aam|aad)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.general-purpose.decimal-arithmetic\"},{\"match\":\"(?i)\\\\\\\\b(and|x?or|not)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.general-purpose.logical\"},{\"match\":\"(?i)\\\\\\\\b(s[ah][rl]|sh[rl]d|r[co][rl])\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.general-purpose.rotate\"},{\"match\":\"(?i)\\\\\\\\b(set(n?[abceglopsz]|n?[abgl]e|p[eo]))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.general-purpose.bit-and-byte.set\"},{\"match\":\"(?i)\\\\\\\\b(bt[crs]?|bs[fr]|test|crc32|popcnt)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.general-purpose.bit-and-byte.other\"},{\"match\":\"(?i)\\\\\\\\b(jmp|jn?[abceglopsz]|jn?[abgl]e|jp[eo]|j[er]?cxz)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.general-purpose.control-transfer.jmp\"},{\"match\":\"(?i)\\\\\\\\b(loop(n?[ez])?|call|ret|iret[dq]?|into?|bound|enter|leave)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.general-purpose.control-transfer.other\"},{\"match\":\"(?i)\\\\\\\\b((mov|cmp|sca|lod|sto)(s[bdw]?)|rep(n?[ez])?)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.general-purpose.strings\"},{\"match\":\"(?i)\\\\\\\\b((in|out)(s[bdw]?)?)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.general-purpose.io\"},{\"match\":\"(?i)\\\\\\\\b((st|cl)[cdi]|cmc|[ls]ahf|(push|pop)f[dq]?)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.general-purpose.flag-control\"},{\"match\":\"(?i)\\\\\\\\b(l[defgs]s)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.general-purpose.segment-registers\"},{\"match\":\"(?i)\\\\\\\\b(lea|nop|ud2?|xlatb?|cpuid|movbe)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.general-purpose.misc\"},{\"match\":\"(?i)\\\\\\\\b(cl(flush(opt)?|demote|wb)|pcommit)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.general-purpose.cache-control\"},{\"match\":\"(?i)\\\\\\\\b(rdrand|rdseed)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.general-purpose.rng\"},{\"match\":\"(?i)\\\\\\\\b(andn|bextr|bls(i|r|msk)|bzhi|pdep|pext|[lt]zcnt|(mul|ror|sar|shl|shr)x)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.general-purpose.bmi\"}]},\"mnemonics-intel-isa-keylocker\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(aes(enc|dec)(wide)?(128|256)kl|encodekey(128|256)|loadiwkey)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.keylocker\"}]},\"mnemonics-intel-isa-xeon-phi\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\bv(4fn?(madd)[ps]s|p4dpwssds?)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.xeon-phi\"}]},\"mnemonics-intel-manual-listing\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\bcvtt?pd1pi\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.other.c\"},{\"match\":\"(?i)\\\\\\\\bv?gf2p8(affine(inv)?q|mul)b\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.other.g\"},{\"match\":\"(?i)\\\\\\\\bhreset\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.other.h\"},{\"match\":\"(?i)\\\\\\\\bincssp[dq]\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.other.i\"},{\"match\":\"(?i)\\\\\\\\bmovdir(i|64b)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.other.m\"},{\"match\":\"(?i)\\\\\\\\bp((abs|(max|min)[su]?|mull|sra)q|config|twrite)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.other.p\"},{\"match\":\"(?i)\\\\\\\\brd(pid|ssp[dq])\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.other.r\"},{\"match\":\"(?i)\\\\\\\\bserialize\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.other.s\"},{\"match\":\"(?i)\\\\\\\\btpause\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.other.t\"},{\"match\":\"(?i)\\\\\\\\bu(monitor|mwait)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.other.u\"},{\"match\":\"(?i)\\\\\\\\bvbroadcast[fi](32x[248]|64x[24])\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.other.vb\"},{\"match\":\"(?i)\\\\\\\\bv(compressw|cvtne2?ps2bf16)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.other.vc\"},{\"match\":\"(?i)\\\\\\\\bvdpbf16ps\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.other.vd\"},{\"match\":\"(?i)\\\\\\\\bvextract[fi]32x8\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.other.ve\"},{\"match\":\"(?i)\\\\\\\\bv(insert([fi]32x8|i(32|64)x4))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.other.vi\"},{\"match\":\"(?i)\\\\\\\\bv(maskmov|(max|min)sh)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.other.vm\"},{\"match\":\"(?i)\\\\\\\\bvp((2intersect|andn?)[dq]|absq)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.other.vpa\"},{\"match\":\"(?i)\\\\\\\\bvpbroadcasti32x4\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.other.vpb\"},{\"match\":\"(?i)\\\\\\\\bvpcompress[bw]\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.other.vpc\"},{\"match\":\"(?i)\\\\\\\\bvp(dp(bu|ws)sds?)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.other.vpd\"},{\"match\":\"(?i)\\\\\\\\b(vperm(b|t2[bw])|vp(expand[bw]|extrtd))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.other.vpe\"},{\"match\":\"(?i)\\\\\\\\bvp(madd52[hl]uq|mov(d(2m|[bw])|q[bdw]|wb)|mpov[bdqw]2m|multishiftqb)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.other.vpm\"},{\"match\":\"(?i)\\\\\\\\b(vpopcnt[bdqw]|vpor[dq])\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.other.vpo\"},{\"match\":\"(?i)\\\\\\\\bvprorv[dq]\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.other.vpr\"},{\"match\":\"(?i)\\\\\\\\bvp(sh[lr]dv?[dqw]|shufbitqmb|shufps)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.other.vps\"},{\"match\":\"(?i)\\\\\\\\bvpternlog[dq]\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.other.vpt\"},{\"match\":\"(?i)\\\\\\\\bvpxor[dq]\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.other.vpx\"},{\"match\":\"(?i)\\\\\\\\bv(scalef[ps][dhs]|scatter[dq]p[ds])\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.other.vs\"},{\"match\":\"(?i)\\\\\\\\b(wbnoinvd|wru?ss[dq])\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.other.w\"}]},\"mnemonics-invalid\":{\"patterns\":[{\"include\":\"#mnemonics-invalid-amd-sse5\"}]},\"mnemonics-invalid-amd-sse5\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(com[ps][ds]|pcomu?[bdqw])\\\\\\\\b\",\"name\":\"invalid.keyword.operator.word.mnemonic.sse5.comparison\"},{\"match\":\"(?i)\\\\\\\\b(cvtp(h2ps|s2ph)|frcz[ps][ds])\\\\\\\\b\",\"name\":\"invalid.keyword.operator.word.mnemonic.sse5.conversion\"},{\"match\":\"(?i)\\\\\\\\b(fn?m((add|sub)[ps][ds])|ph(addu?(b[dqw]|w[dq]|dq)|sub(bw|dq|wd))|pma(css?(d(d|q[hl])|w[dw])|dcss?wd))\\\\\\\\b\",\"name\":\"invalid.keyword.operator.word.mnemonic.sse5.packed-arithmetic\"},{\"match\":\"(?i)\\\\\\\\b(pcmov|permp[ds]|pperm|prot[bdqw]|psh[al][bdqw])\\\\\\\\b\",\"name\":\"invalid.keyword.operator.word.mnemonic.sse5.simd-integer\"}]},\"mnemonics-mmx\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(mov[dq])\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.mmx.data-transfer\"},{\"match\":\"(?i)\\\\\\\\b(pack(ssdw|[su]swb)|punpck[hl](bw|dq|wd))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.mmx.conversion\"},{\"match\":\"(?i)\\\\\\\\b(p(((add|sub)(d|(u?s)?[bw]))|maddwd|mul[lh]w))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.mmx.packed-arithmetic\"},{\"match\":\"(?i)\\\\\\\\b(pcmp((eq|gt)[bdw]))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.mmx.comparison\"},{\"match\":\"(?i)\\\\\\\\b(pandn?|px?or)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.mmx.logical\"},{\"match\":\"(?i)\\\\\\\\b(ps([rl]l[dwq]|raw|rad))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.mmx.shift-and-rotate\"},{\"match\":\"(?i)\\\\\\\\b(emms)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.mmx.state-management\"}]},\"mnemonics-mpx\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(bnd(mk|c[lnu]|mov|ldx|stx))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.mpx\"}]},\"mnemonics-pseudo-ops\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(cmp(n?(eq|lt|le)|(un)?ord)[ps][ds])\\\\\\\\b\",\"name\":\"keyword.operator.word.pseudo-mnemonic.sse2.compare\"},{\"match\":\"(?i)\\\\\\\\b(v?pclmul([hl]q[hl]q|[hl]qh)dq)\\\\\\\\b\",\"name\":\"keyword.operator.word.pseudo-mnemonic.avx.promoted.aes\"},{\"match\":\"(?i)\\\\\\\\b(vcmp(eq(_(os|uq|us))?|neq(_(oq|os|us))?|[gl][et](_oq)?|n[gl][et](_uq)?|(un)?ord(_s)?|false(_os)?|true(_us)?)[ps][ds])\\\\\\\\b\",\"name\":\"keyword.operator.word.pseudo-mnemonic.avx.promoted.comparison\"},{\"match\":\"(?i)\\\\\\\\bvp(cmpn?(eq|le|lt))\\\\\\\\b\",\"name\":\"keyword.operator.word.pseudo-mnemonic.avx512.compare\"},{\"match\":\"(?i)\\\\\\\\b(vpcom(n?eq|[gl][et]|false|true)(b|uw))\\\\\\\\b\",\"name\":\"keyword.operator.word.pseudo-mnemonic.supplemental.amd.xop.simd\"}]},\"mnemonics-sgx\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\bencl[su]\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sgx\"},{\"match\":\"(?i)\\\\\\\\be(add|block|create|dbg(rd|wr)|extend|init|ld[bu]|pa|remove|track|wb)\\\\\\\\b\",\"name\":\"support.constant.sgx1.supervisor\"},{\"match\":\"(?i)\\\\\\\\be(add|block|create|dbg(rd|wr)|extend|init|ld[bu]|pa|remove|track|wb)\\\\\\\\b\",\"name\":\"support.constant.sgx1.supervisor\"},{\"match\":\"(?i)\\\\\\\\be(enter|exit|getkey|report|resume)\\\\\\\\b\",\"name\":\"support.constant.sgx1.user\"},{\"match\":\"(?i)\\\\\\\\be(aug|mod(pr|t))\\\\\\\\b\",\"name\":\"support.constant.sgx2.supervisor\"},{\"match\":\"(?i)\\\\\\\\be(accept(copy)?|modpe)\\\\\\\\b\",\"name\":\"support.constant.sgx2.user\"}]},\"mnemonics-sha\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(sha(1rnds4|256rnds2|1nexte|(1|256)msg[12]))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sha\"}]},\"mnemonics-smx\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(getsec)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.smx.getsec\"},{\"match\":\"(?i)\\\\\\\\b(capabilities|enteraccs|exitac|senter|sexit|parameters|smctrl|wakeup)\\\\\\\\b\",\"name\":\"support.constant.smx\"}]},\"mnemonics-sse\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(mov(([ahlu]|hl|lh|msk)ps|ss))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse.data-transfer\"},{\"match\":\"(?i)\\\\\\\\b((add|div|max|min|mul|rcp|r?sqrt|sub)[ps]s)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse.packed-arithmetic\"},{\"match\":\"(?i)\\\\\\\\b(cmp[ps]s|u?comiss)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse.comparison\"},{\"match\":\"(?i)\\\\\\\\b((andn?|x?or)ps)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse.logical\"},{\"match\":\"(?i)\\\\\\\\b((shuf|unpck[hl])ps)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse.shuffle-and-unpack\"},{\"match\":\"(?i)\\\\\\\\b(cvt(pi2ps|si2ss|ps2pi|tps2pi|ss2si|tss2si))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse.conversion\"},{\"match\":\"(?i)\\\\\\\\b((ld|st)mxcsr)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse.state-management\"},{\"match\":\"(?i)\\\\\\\\b(p(avg[bw]|extrw|insrw|(max|min)(sw|ub)|sadbw|shufw|mulhuw|movmskb))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse.simd-integer\"},{\"match\":\"(?i)\\\\\\\\b(maskmovq|movntps|sfence)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse.cacheability-control\"},{\"match\":\"(?i)\\\\\\\\b(prefetch(nta|t[0-2]|w(t1)?))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse.prefetch\"}]},\"mnemonics-sse2\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(mov([auhl]|msk)pd)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse2.data-transfer\"},{\"match\":\"(?i)\\\\\\\\b((add|div|max|min|mul|sub|sqrt)[ps]d)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse2.packed-arithmetic\"},{\"match\":\"(?i)\\\\\\\\b((andn?|x?or)pd)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse2.logical\"},{\"match\":\"(?i)\\\\\\\\b((cmpp|u?comis)d)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse2.compare\"},{\"match\":\"(?i)\\\\\\\\b((shuf|unpck[hl])pd)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse2.shuffle-and-unpack\"},{\"match\":\"(?i)\\\\\\\\b(cvt(dq2pd|pi2pd|ps2pd|pd2ps|si2sd|sd2ss|ss2sd|t?(pd2dq|pd2pi|sd2si)))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse2.conversion\"},{\"match\":\"(?i)\\\\\\\\b(cvt(dq2ps|ps2dq|tps2dq))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse2.packed-floating-point\"},{\"match\":\"(?i)\\\\\\\\b(mov(dq[au]|q2dq|dq2q))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse2.simd-integer.mov\"},{\"match\":\"(?i)\\\\\\\\b(p((add|sub|(s[lr]l|mulu|unpck[hl]q)d)q|shuf(d|[hl]w)))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse2.simd-integer.other\"},{\"match\":\"(?i)\\\\\\\\b([lm]fence|pause|maskmovdqu|movnt(dq|i|pd))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse2.cacheability-control\"}]},\"mnemonics-sse3\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(fisttp|lddqu|(addsub|h(add|sub))p[sd]|mov(sh|sl|d)dup|monitor|mwait)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse3\"},{\"match\":\"(?i)\\\\\\\\b(ph(add|sub)(s?w|d))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse3.supplimental.horizontal-packed-arithmetic\"},{\"match\":\"(?i)\\\\\\\\b(p((abs|sign)[bdw]|maddubsw|mulhrsw|shufb|alignr))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse3.supplimental.other\"}]},\"mnemonics-sse4\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(pmul(ld|dq)|dpp[ds])\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse4.1.arithmetic\"},{\"match\":\"(?i)\\\\\\\\b(movntdqa)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse4.1.load-hint\"},{\"match\":\"(?i)\\\\\\\\b(blendv?p[ds]|pblend(vb|w))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse4.1.packed-blending\"},{\"match\":\"(?i)\\\\\\\\b(p(min|max)(u[dw]|s[bd]))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse4.1.packed-integer\"},{\"match\":\"(?i)\\\\\\\\b(round[ps][sd])\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse4.1.packed-floating-point\"},{\"match\":\"(?i)\\\\\\\\b((extract|insert)ps|p((ins|ext)(r[bdq])))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse4.1.insertion-and-extraction\"},{\"match\":\"(?i)\\\\\\\\b(pmov([sz]x(b[dqw]|dq|wd|wq)))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse4.1.conversion\"},{\"match\":\"(?i)\\\\\\\\b(mpsadbw|phminposuw|ptest|pcmpeqq|packusdw)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse4.1.other\"},{\"match\":\"(?i)\\\\\\\\b(pcmp([ei]str[im]|gtq))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.sse4.2\"}]},\"mnemonics-supplemental-amd\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(bl([cs](fill|ic?|msk)|cs)|t1mskc|tzmsk)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.supplemental.amd.general-purpose\"},{\"match\":\"(?i)\\\\\\\\b(clgi|int3|invlpga|iretw|skinit|stgi|vm(load|mcall|run|save)|monitorx|mwaitx)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.supplemental.amd.system\"},{\"match\":\"(?i)\\\\\\\\b([ls]lwpcb|lwp(ins|val))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.supplemental.amd.profiling\"},{\"match\":\"(?i)\\\\\\\\b(movnts[ds])\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.supplemental.amd.memory-management\"},{\"match\":\"(?i)\\\\\\\\b(prefetch|clzero)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.supplemental.amd.cache-management\"},{\"match\":\"(?i)\\\\\\\\b((extr|insert)q)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.supplemental.amd.sse4.a\"},{\"match\":\"(?i)\\\\\\\\b(vfn?m((add|sub)[ps][ds])|vfm((addsub|subadd)p[ds]))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.supplemental.amd.fma4\"},{\"match\":\"(?i)\\\\\\\\b(vp(cmov|(comu?|rot|sh[al])[bdqw]|mac(s?s(d(d|q[hl])|w[dw]))|madcss?wd|perm))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.supplemental.amd.xop.simd\"},{\"match\":\"(?i)\\\\\\\\b(vph(addu?(b[dqw]|w[dq]|dq)|sub(bw|dq|wd)))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.supplemental.amd.xop.simd-horizontal\"},{\"match\":\"(?i)\\\\\\\\b(vfrcz[ps][ds]|vpermil2p[ds])\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.supplemental.amd.xop.other\"},{\"match\":\"(?i)\\\\\\\\b(femms)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.supplemental.amd.3dnow\"},{\"match\":\"(?i)\\\\\\\\b(p(avgusb|(f2i|i2f)[dw]|mulhrw|swapd)|pf((p?n)?acc|add|max|min|mul|rcp(it[12])?|rsqit1|rsqrt|subr?))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.supplemental.amd.3dnow.simd\"},{\"match\":\"(?i)\\\\\\\\b(pfcmp(eq|ge|gt))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.supplemental.amd.3dnow.comparison\"}]},\"mnemonics-supplemental-cyrix\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b((sv|rs)dc|(wr|rd)shr|paddsiw)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.supplemental.cyrix\"}]},\"mnemonics-supplemental-via\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(montmul)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.supplemental.via\"},{\"match\":\"(?i)\\\\\\\\b(x(store(rng)?|crypt(ecb|cbc|ctr|cfb|ofb)|sha(1|256)))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.supplemental.via.padlock\"}]},\"mnemonics-system\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b((cl|st)ac|[ls]([gli]dt|tr|msw)|clts|arpl|lar|lsl|ver[rw]|inv(d|lpg|pcid)|wbinvd)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.system\"},{\"match\":\"(?i)\\\\\\\\b(lock|hlt|rsm|(rd|wr)(msr|pkru|[fg]sbase)|rd(pmc|tscp?)|sys(enter|exit))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.system\"},{\"match\":\"(?i)\\\\\\\\b(x((save(c|opt|s)?|rstors?)(64)?|[gs]etbv))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.system\"}]},\"mnemonics-tsx\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(x(abort|begin|end|test|(res|sus)ldtrk))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.tsx\"}]},\"mnemonics-uirq\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b((cl|st|test)ui|senduipi|uiret)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.uirq\"}]},\"mnemonics-undocumented\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(ret[nf]|icebp|int1|int03|smi|ud1)\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.undocumented\"}]},\"mnemonics-vmx\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(vm(ptr(ld|st)|clear|read|write|launch|resume|xo(ff|n)|call|func)|inv(ept|vpid))\\\\\\\\b\",\"name\":\"keyword.operator.word.mnemonic.vmx\"}]},\"preprocessor\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*[#%]\\\\\\\\s*(error|warning)\\\\\\\\b\",\"captures\":{\"1\":{\"name\":\"keyword.control.import.error.c\"}},\"end\":\"$\",\"name\":\"meta.preprocessor.diagnostic.c\",\"patterns\":[{\"match\":\"(?>\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n)\",\"name\":\"punctuation.separator.continuation.c\"}]},{\"begin\":\"^\\\\\\\\s*[#%]\\\\\\\\s*(include|import)\\\\\\\\b\\\\\\\\s+\",\"captures\":{\"1\":{\"name\":\"keyword.control.import.include.c\"}},\"end\":\"(?=(?://|/\\\\\\\\*))|$\",\"name\":\"meta.preprocessor.c.include\",\"patterns\":[{\"match\":\"(?>\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n)\",\"name\":\"punctuation.separator.continuation.c\"},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.c\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.c\"}},\"name\":\"string.quoted.double.include.c\"},{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.c\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.c\"}},\"name\":\"string.quoted.other.lt-gt.include.c\"}]},{\"begin\":\"^\\\\\\\\s*[%#]\\\\\\\\s*(i?x?define|defined|elif(def)?|else|i[fs]n?(?:def|macro|ctx|idni?|id|num|str|token|empty|env)?|line|(i|end|uni?)?macro|pragma|endif)\\\\\\\\b\",\"captures\":{\"1\":{\"name\":\"keyword.control.import.c\"}},\"end\":\"(?=(?://|/\\\\\\\\*))|$\",\"name\":\"meta.preprocessor.c\",\"patterns\":[{\"match\":\"(?>\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n)\",\"name\":\"punctuation.separator.continuation.c\"},{\"include\":\"#preprocessor-functions\"}]},{\"begin\":\"^\\\\\\\\s*[#%]\\\\\\\\s*(assign|strlen|substr|(end|exit)?rep|push|pop|rotate|use|ifusing|ifusable|def(?:ailas|str|tok)|undef(?:alias)?)\\\\\\\\b\",\"captures\":{\"1\":{\"name\":\"keyword.control\"}},\"end\":\"$\",\"name\":\"meta.preprocessor.nasm\",\"patterns\":[{\"match\":\"(?>\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n)\",\"name\":\"punctuation.separator.continuation.c\"},{\"include\":\"#preprocessor-functions\"}]}]},\"preprocessor-functions\":{\"patterns\":[{\"begin\":\"((%)(?:(abs|cond|count|eval|isn?(?:def|macro|ctx|idni?|id|num|str|token|empty|env)?|num|sel|str(?:cat|len)?|substr|tok)\\\\\\\\s*(\\\\\\\\()))\",\"captures\":{\"3\":{\"name\":\"support.function.preprocessor.asm.x86_64\"}},\"end\":\"(\\\\\\\\))|$\",\"name\":\"meta.preprocessor.function.asm.x86_64\",\"patterns\":[{\"include\":\"#preprocessor-functions\"}]}]},\"registers\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(?:[abcd][hl]|[er]?[abcd]x|[er]?(?:di|si|bp|sp)|dil|sil|bpl|spl|r(?:8|9|1[0-5])[bdlw]?)\\\\\\\\b\",\"name\":\"constant.language.register.general-purpose.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\b(?:[cdefgs]s)\\\\\\\\b\",\"name\":\"constant.language.register.segment.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\b(?:[er]?flags)\\\\\\\\b\",\"name\":\"constant.language.register.flags.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\b(?:[er]?ip)\\\\\\\\b\",\"name\":\"constant.language.register.instruction-pointer.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\b(?:cr[02-4])\\\\\\\\b\",\"name\":\"constant.language.register.control.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\b(?:(?:mm|st|fpr)[0-7])\\\\\\\\b\",\"name\":\"constant.language.register.mmx.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\b(?:[xy]mm(?:[0-9]|1[0-5])|mxcsr)\\\\\\\\b\",\"name\":\"constant.language.register.sse_avx.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\b(?:zmm(?:[12]?[0-9]|30|31))\\\\\\\\b\",\"name\":\"constant.language.register.avx512.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\b(?:bnd(?:[0-3]|cfg[su]|status))\\\\\\\\b\",\"name\":\"constant.language.register.memory-protection.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\b(?:(?:[gil]dt)r?|tr)\\\\\\\\b\",\"name\":\"constant.language.register.system-table-pointer.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\b(?:dr[0-367])\\\\\\\\b\",\"name\":\"constant.language.register.debug.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\b(?:cr8|dr(?:[89]|1[0-5])|efer|tpr|syscfg)\\\\\\\\b\",\"name\":\"constant.language.register.amd.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\b(?:db[0-367]|t[67]|tr[3-7]|st)\\\\\\\\b\",\"name\":\"invalid.deprecated.constant.language.register.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\b[xy]mm(?:1[6-9]|2[0-9]|3[01])\\\\\\\\b\",\"name\":\"constant.language.register.general-purpose.alias.asm.x86_64\"}]},\"strings\":{\"patterns\":[{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.asm\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.asm\"}},\"name\":\"string.quoted.double.asm\",\"patterns\":[{\"include\":\"#string_escaped_char\"},{\"include\":\"#string_placeholder\"}]},{\"begin\":\"\\'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.asm\"}},\"end\":\"\\'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.asm\"}},\"name\":\"string.quoted.single.asm\",\"patterns\":[{\"include\":\"#string_escaped_char\"},{\"include\":\"#string_placeholder\"}]},{\"begin\":\"`\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.asm\"}},\"end\":\"`\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.asm\"}},\"name\":\"string.quoted.backquote.asm\",\"patterns\":[{\"include\":\"#string_escaped_char\"},{\"include\":\"#string_placeholder\"}]}]},\"support\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(?:s?byte|(?:[doqtyz]|dq|s[dq]?)?word|(?:d|res)[bdoqtwyz]|ddq)\\\\\\\\b\",\"name\":\"storage.type.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\b(?:incbin|equ|times|dup)\\\\\\\\b\",\"name\":\"support.function.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\b(?:strict|nosplit|near|far|abs|rel)\\\\\\\\b\",\"name\":\"storage.modifier.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\b(?:[ao](?:16|32|64))\\\\\\\\b\",\"name\":\"storage.modifier.prefix.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\b(?:rep(?:n?[ez])?|lock|xacquire|xrelease|(?:no)?bnd)\\\\\\\\b\",\"name\":\"storage.modifier.prefix.asm.x86_64\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.prefix.vex.asm.x86_64\"}},\"match\":\"{(vex[23]?|evex|rex)}\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.opmask.asm.x86_64\"}},\"match\":\"{(k[1-7])}\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.precision.asm.x86_64\"}},\"match\":\"{(1to(?:8|16))}\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.rounding.asm.x86_64\"}},\"match\":\"{(z|(?:r[nudz]-)?sae)}\"},{\"match\":\"\\\\\\\\.\\\\\\\\.(?:start|imagebase|tlvp|got(?:pc(?:rel)?|(?:tp)?off)?|plt|sym|tlsie)\\\\\\\\b\",\"name\":\"support.constant.asm.x86_64\"},{\"match\":\"\\\\\\\\b__\\\\\\\\?(?:utf(?:(?:16|32)(?:[lb]e)?)|float(?:8|16|32|64|80[me]|128[lh])|bfloat16|Infinity|[QS]?NaN)\\\\\\\\?__\\\\\\\\b\",\"name\":\"support.function.asm.x86_64\"},{\"match\":\"\\\\\\\\b__(?:utf(?:(?:16|32)(?:[lb]e)?)|float(?:8|16|32|64|80[me]|128[lh])|bfloat16|Infinity|[QS]?NaN)__\\\\\\\\b\",\"name\":\"support.function.legacy.asm.x86_64\"},{\"match\":\"\\\\\\\\b__\\\\\\\\?NASM_(?:MAJOR|(?:SUB)?MINOR|SNAPSHOT|VER(?:SION_ID)?)\\\\\\\\?__\\\\\\\\b\",\"name\":\"support.function.asm.x86_64\"},{\"match\":\"\\\\\\\\b___\\\\\\\\?NASM_PATCHLEVEL\\\\\\\\?__\\\\\\\\b\",\"name\":\"support.function.asm.x86_64\"},{\"match\":\"\\\\\\\\b__\\\\\\\\?(?:FILE|LINE|BITS|OUTPUT_FORMAT|DEBUG_FORMAT)\\\\\\\\?__\\\\\\\\b\",\"name\":\"support.function.asm.x86_64\"},{\"match\":\"\\\\\\\\b__\\\\\\\\?(?:(?:UTC_)?(?:DATE|TIME)(?:_NUM)?|POSIX_TIME)\\\\\\\\?__\\\\\\\\b\",\"name\":\"support.function.asm.x86_64\"},{\"match\":\"\\\\\\\\b__\\\\\\\\?USE_(?:\\\\\\\\w+)\\\\\\\\?__\\\\\\\\b\",\"name\":\"support.function.asm.x86_64\"},{\"match\":\"\\\\\\\\b__\\\\\\\\?PASS\\\\\\\\?__\\\\\\\\b\",\"name\":\"invalid.deprecated.support.constant.altreg.asm.x86_64\"},{\"match\":\"\\\\\\\\b__\\\\\\\\?ALIGNMODE\\\\\\\\?__\\\\\\\\b\",\"name\":\"support.constant.smartalign.asm.x86_64\"},{\"match\":\"\\\\\\\\b__\\\\\\\\?ALIGN_(\\\\\\\\w+)\\\\\\\\?__\\\\\\\\b\",\"name\":\"support.function.smartalign.asm.x86_64\"},{\"match\":\"\\\\\\\\b__NASM_(?:MAJOR|(?:SUB)?MINOR|SNAPSHOT|VER(?:SION_ID)?)__\\\\\\\\b\",\"name\":\"support.function.asm.x86_64\"},{\"match\":\"\\\\\\\\b___NASM_PATCHLEVEL__\\\\\\\\b\",\"name\":\"support.function.asm.x86_64\"},{\"match\":\"\\\\\\\\b__(?:FILE|LINE|BITS|OUTPUT_FORMAT|DEBUG_FORMAT)__\\\\\\\\b\",\"name\":\"support.function.asm.x86_64\"},{\"match\":\"\\\\\\\\b__(?:(?:UTC_)?(?:DATE|TIME)(?:_NUM)?|POSIX_TIME)__\\\\\\\\b\",\"name\":\"support.function.asm.x86_64\"},{\"match\":\"\\\\\\\\b__USE_(?:\\\\\\\\w+)__\\\\\\\\b\",\"name\":\"support.function.asm.x86_64\"},{\"match\":\"\\\\\\\\b__PASS__\\\\\\\\b\",\"name\":\"invalid.deprecated.support.constant.altreg.asm.x86_64\"},{\"match\":\"\\\\\\\\b__ALIGNMODE__\\\\\\\\b\",\"name\":\"support.constant.smartalign.asm.x86_64\"},{\"match\":\"\\\\\\\\b__ALIGN_(\\\\\\\\w+)__\\\\\\\\b\",\"name\":\"support.function.smartalign.asm.x86_64\"},{\"match\":\"\\\\\\\\b(?:Inf|[QS]?NaN)\\\\\\\\b\",\"name\":\"support.constant.fp.asm.x86_64\"},{\"match\":\"\\\\\\\\b(?:float(?:8|16|32|64|80[me]|128[lh]))\\\\\\\\b\",\"name\":\"support.function.fp.asm.x86_64\"},{\"match\":\"(?i)\\\\\\\\bilog2(?:[ewfc]|[fc]w)?\\\\\\\\b\",\"name\":\"support.function.ifunc.asm.x86_64\"}]}},\"scopeName\":\"source.asm.x86_64\"}')),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Dj6nwHGl.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"TypeScript\",\"name\":\"typescript\",\"patterns\":[{\"include\":\"#directives\"},{\"include\":\"#statements\"},{\"include\":\"#shebang\"}],\"repository\":{\"access-modifier\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.modifier.ts\"},\"after-operator-block-as-object-literal\":{\"begin\":\"(?<!\\\\\\\\+\\\\\\\\+|--)(?<=[:=(,\\\\\\\\[?+!>]|^await|[^\\\\\\\\._$[:alnum:]]await|^return|[^\\\\\\\\._$[:alnum:]]return|^yield|[^\\\\\\\\._$[:alnum:]]yield|^throw|[^\\\\\\\\._$[:alnum:]]throw|^in|[^\\\\\\\\._$[:alnum:]]in|^of|[^\\\\\\\\._$[:alnum:]]of|^typeof|[^\\\\\\\\._$[:alnum:]]typeof|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\*)\\\\\\\\s*(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.ts\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"name\":\"meta.objectliteral.ts\",\"patterns\":[{\"include\":\"#object-member\"}]},\"array-binding-pattern\":{\"begin\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.ts\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.array.ts\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.array.ts\"}},\"patterns\":[{\"include\":\"#binding-element\"},{\"include\":\"#punctuation-comma\"}]},\"array-binding-pattern-const\":{\"begin\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.ts\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.array.ts\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.array.ts\"}},\"patterns\":[{\"include\":\"#binding-element-const\"},{\"include\":\"#punctuation-comma\"}]},\"array-literal\":{\"begin\":\"\\\\\\\\s*(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.brace.square.ts\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.square.ts\"}},\"name\":\"meta.array.literal.ts\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"arrow-function\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.modifier.async.ts\"},\"2\":{\"name\":\"variable.parameter.ts\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(\\\\\\\\basync)\\\\\\\\s+)?([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?==>)\",\"name\":\"meta.arrow.ts\"},{\"begin\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(\\\\\\\\basync))?((?<![})!\\\\\\\\]])\\\\\\\\s*(?=((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.ts\"}},\"end\":\"(?==>|\\\\\\\\{|(^\\\\\\\\s*(export|function|class|interface|let|var|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|const|import|enum|namespace|module|type|abstract|declare)\\\\\\\\s+))\",\"name\":\"meta.arrow.ts\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-parameters\"},{\"include\":\"#function-parameters\"},{\"include\":\"#arrow-return-type\"},{\"include\":\"#possibly-arrow-return-type\"}]},{\"begin\":\"=>\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.function.arrow.ts\"}},\"end\":\"((?<=\\\\\\\\}|\\\\\\\\S)(?<!=>)|((?!\\\\\\\\{)(?=\\\\\\\\S)))(?!\\\\\\\\/[\\\\\\\\/\\\\\\\\*])\",\"name\":\"meta.arrow.ts\",\"patterns\":[{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#decl-block\"},{\"include\":\"#expression\"}]}]},\"arrow-return-type\":{\"begin\":\"(?<=\\\\\\\\))\\\\\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.ts\"}},\"end\":\"(?==>|\\\\\\\\{|(^\\\\\\\\s*(export|function|class|interface|let|var|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|const|import|enum|namespace|module|type|abstract|declare)\\\\\\\\s+))\",\"name\":\"meta.return.type.arrow.ts\",\"patterns\":[{\"include\":\"#arrow-return-type-body\"}]},\"arrow-return-type-body\":{\"patterns\":[{\"begin\":\"(?<=[:])(?=\\\\\\\\s*\\\\\\\\{)\",\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#type-object\"}]},{\"include\":\"#type-predicate-operator\"},{\"include\":\"#type\"}]},\"async-modifier\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(async)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.modifier.async.ts\"},\"binding-element\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#regex\"},{\"include\":\"#object-binding-pattern\"},{\"include\":\"#array-binding-pattern\"},{\"include\":\"#destructuring-variable-rest\"},{\"include\":\"#variable-initializer\"}]},\"binding-element-const\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#regex\"},{\"include\":\"#object-binding-pattern-const\"},{\"include\":\"#array-binding-pattern-const\"},{\"include\":\"#destructuring-variable-rest-const\"},{\"include\":\"#variable-initializer\"}]},\"boolean-literal\":{\"patterns\":[{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))true(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.boolean.true.ts\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))false(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.boolean.false.ts\"}]},\"brackets\":{\"patterns\":[{\"begin\":\"{\",\"end\":\"}|(?=\\\\\\\\*/)\",\"patterns\":[{\"include\":\"#brackets\"}]},{\"begin\":\"\\\\\\\\[\",\"end\":\"\\\\\\\\]|(?=\\\\\\\\*/)\",\"patterns\":[{\"include\":\"#brackets\"}]}]},\"cast\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"meta.brace.angle.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"meta.brace.angle.ts\"}},\"match\":\"\\\\\\\\s*(<)\\\\\\\\s*(const)\\\\\\\\s*(>)\",\"name\":\"cast.expr.ts\"},{\"begin\":\"(?:(?<!\\\\\\\\+\\\\\\\\+|--)(?<=^return|[^\\\\\\\\._$[:alnum:]]return|^throw|[^\\\\\\\\._$[:alnum:]]throw|^yield|[^\\\\\\\\._$[:alnum:]]yield|^await|[^\\\\\\\\._$[:alnum:]]await|^default|[^\\\\\\\\._$[:alnum:]]default|[=(,:>*?\\\\\\\\&\\\\\\\\|\\\\\\\\^]|[^_$[:alnum:]](?:\\\\\\\\+\\\\\\\\+|\\\\\\\\-\\\\\\\\-)|[^\\\\\\\\+]\\\\\\\\+|[^\\\\\\\\-]\\\\\\\\-))\\\\\\\\s*(<)(?!<?\\\\\\\\=)(?!\\\\\\\\s*$)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.brace.angle.ts\"}},\"end\":\"(\\\\\\\\>)\",\"endCaptures\":{\"1\":{\"name\":\"meta.brace.angle.ts\"}},\"name\":\"cast.expr.ts\",\"patterns\":[{\"include\":\"#type\"}]},{\"begin\":\"(?:(?<=^))\\\\\\\\s*(<)(?=[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*>)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.brace.angle.ts\"}},\"end\":\"(\\\\\\\\>)\",\"endCaptures\":{\"1\":{\"name\":\"meta.brace.angle.ts\"}},\"name\":\"cast.expr.ts\",\"patterns\":[{\"include\":\"#type\"}]}]},\"class-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(?:(abstract)\\\\\\\\s+)?\\\\\\\\b(class)\\\\\\\\b(?=\\\\\\\\s+|/[/*])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"storage.modifier.ts\"},\"4\":{\"name\":\"storage.type.class.ts\"}},\"end\":\"(?<=\\\\\\\\})\",\"name\":\"meta.class.ts\",\"patterns\":[{\"include\":\"#class-declaration-or-expression-patterns\"}]},\"class-declaration-or-expression-patterns\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#class-or-interface-heritage\"},{\"captures\":{\"0\":{\"name\":\"entity.name.type.class.ts\"}},\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\"},{\"include\":\"#type-parameters\"},{\"include\":\"#class-or-interface-body\"}]},\"class-expression\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(abstract)\\\\\\\\s+)?(class)\\\\\\\\b(?=\\\\\\\\s+|[<{]|\\\\\\\\/[\\\\\\\\/*])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.ts\"},\"2\":{\"name\":\"storage.type.class.ts\"}},\"end\":\"(?<=\\\\\\\\})\",\"name\":\"meta.class.ts\",\"patterns\":[{\"include\":\"#class-declaration-or-expression-patterns\"}]},\"class-or-interface-body\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#decorator\"},{\"begin\":\"(?<=:)\\\\\\\\s*\",\"end\":\"(?=\\\\\\\\s|[;),}\\\\\\\\]:\\\\\\\\-\\\\\\\\+]|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#expression\"}]},{\"include\":\"#method-declaration\"},{\"include\":\"#indexer-declaration\"},{\"include\":\"#field-declaration\"},{\"include\":\"#string\"},{\"include\":\"#type-annotation\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#access-modifier\"},{\"include\":\"#property-accessor\"},{\"include\":\"#async-modifier\"},{\"include\":\"#after-operator-block-as-object-literal\"},{\"include\":\"#decl-block\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#punctuation-semicolon\"}]},\"class-or-interface-heritage\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:\\\\\\\\b(extends|implements)\\\\\\\\b)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.ts\"}},\"end\":\"(?=\\\\\\\\{)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#class-or-interface-heritage\"},{\"include\":\"#type-parameters\"},{\"include\":\"#expressionWithoutIdentifiers\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.module.ts\"},\"2\":{\"name\":\"punctuation.accessor.ts\"},\"3\":{\"name\":\"punctuation.accessor.optional.ts\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))(?=\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*)*\\\\\\\\s*)\"},{\"captures\":{\"1\":{\"name\":\"entity.other.inherited-class.ts\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\"},{\"include\":\"#expressionPunctuations\"}]},\"comment\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\\\\\\\\*(?!/)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.ts\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.ts\"}},\"name\":\"comment.block.documentation.ts\",\"patterns\":[{\"include\":\"#docblock\"}]},{\"begin\":\"(/\\\\\\\\*)(?:\\\\\\\\s*((@)internal)(?=\\\\\\\\s|(\\\\\\\\*/)))?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.ts\"},\"2\":{\"name\":\"storage.type.internaldeclaration.ts\"},\"3\":{\"name\":\"punctuation.decorator.internaldeclaration.ts\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.ts\"}},\"name\":\"comment.block.ts\"},{\"begin\":\"(^[ \\\\\\\\t]+)?((//)(?:\\\\\\\\s*((@)internal)(?=\\\\\\\\s|$))?)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.ts\"},\"2\":{\"name\":\"comment.line.double-slash.ts\"},\"3\":{\"name\":\"punctuation.definition.comment.ts\"},\"4\":{\"name\":\"storage.type.internaldeclaration.ts\"},\"5\":{\"name\":\"punctuation.decorator.internaldeclaration.ts\"}},\"contentName\":\"comment.line.double-slash.ts\",\"end\":\"(?=$)\"}]},\"control-statement\":{\"patterns\":[{\"include\":\"#switch-statement\"},{\"include\":\"#for-loop\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(catch|finally|throw|try)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.trycatch.ts\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.loop.ts\"},\"2\":{\"name\":\"entity.name.label.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(break|continue|goto)\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(break|continue|do|goto|while)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.loop.ts\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(return)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.flow.ts\"}},\"end\":\"(?=[;}]|$|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#expression\"}]},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(case|default|switch)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.switch.ts\"},{\"include\":\"#if-statement\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.conditional.ts\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(with)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.with.ts\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(package)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.ts\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(debugger)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.other.debugger.ts\"}]},\"decl-block\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"name\":\"meta.block.ts\",\"patterns\":[{\"include\":\"#statements\"}]},\"declaration\":{\"patterns\":[{\"include\":\"#decorator\"},{\"include\":\"#var-expr\"},{\"include\":\"#function-declaration\"},{\"include\":\"#class-declaration\"},{\"include\":\"#interface-declaration\"},{\"include\":\"#enum-declaration\"},{\"include\":\"#namespace-declaration\"},{\"include\":\"#type-alias-declaration\"},{\"include\":\"#import-equals-declaration\"},{\"include\":\"#import-declaration\"},{\"include\":\"#export-declaration\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(declare|export)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.modifier.ts\"}]},\"decorator\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))\\\\\\\\@\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.decorator.ts\"}},\"end\":\"(?=\\\\\\\\s)\",\"name\":\"meta.decorator.ts\",\"patterns\":[{\"include\":\"#expression\"}]},\"destructuring-const\":{\"patterns\":[{\"begin\":\"(?<!=|:|^of|[^\\\\\\\\._$[:alnum:]]of|^in|[^\\\\\\\\._$[:alnum:]]in)\\\\\\\\s*(?=\\\\\\\\{)\",\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+))\",\"name\":\"meta.object-binding-pattern-variable.ts\",\"patterns\":[{\"include\":\"#object-binding-pattern-const\"},{\"include\":\"#type-annotation\"},{\"include\":\"#comment\"}]},{\"begin\":\"(?<!=|:|^of|[^\\\\\\\\._$[:alnum:]]of|^in|[^\\\\\\\\._$[:alnum:]]in)\\\\\\\\s*(?=\\\\\\\\[)\",\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+))\",\"name\":\"meta.array-binding-pattern-variable.ts\",\"patterns\":[{\"include\":\"#array-binding-pattern-const\"},{\"include\":\"#type-annotation\"},{\"include\":\"#comment\"}]}]},\"destructuring-parameter\":{\"patterns\":[{\"begin\":\"(?<!=|:)\\\\\\\\s*(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.ts\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.object.ts\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.object.ts\"}},\"name\":\"meta.parameter.object-binding-pattern.ts\",\"patterns\":[{\"include\":\"#parameter-object-binding-element\"}]},{\"begin\":\"(?<!=|:)\\\\\\\\s*(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.ts\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.array.ts\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.array.ts\"}},\"name\":\"meta.paramter.array-binding-pattern.ts\",\"patterns\":[{\"include\":\"#parameter-binding-element\"},{\"include\":\"#punctuation-comma\"}]}]},\"destructuring-parameter-rest\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.rest.ts\"},\"2\":{\"name\":\"variable.parameter.ts\"}},\"match\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\"},\"destructuring-variable\":{\"patterns\":[{\"begin\":\"(?<!=|:|^of|[^\\\\\\\\._$[:alnum:]]of|^in|[^\\\\\\\\._$[:alnum:]]in)\\\\\\\\s*(?=\\\\\\\\{)\",\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+))\",\"name\":\"meta.object-binding-pattern-variable.ts\",\"patterns\":[{\"include\":\"#object-binding-pattern\"},{\"include\":\"#type-annotation\"},{\"include\":\"#comment\"}]},{\"begin\":\"(?<!=|:|^of|[^\\\\\\\\._$[:alnum:]]of|^in|[^\\\\\\\\._$[:alnum:]]in)\\\\\\\\s*(?=\\\\\\\\[)\",\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+))\",\"name\":\"meta.array-binding-pattern-variable.ts\",\"patterns\":[{\"include\":\"#array-binding-pattern\"},{\"include\":\"#type-annotation\"},{\"include\":\"#comment\"}]}]},\"destructuring-variable-rest\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.rest.ts\"},\"2\":{\"name\":\"meta.definition.variable.ts variable.other.readwrite.ts\"}},\"match\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\"},\"destructuring-variable-rest-const\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.rest.ts\"},\"2\":{\"name\":\"meta.definition.variable.ts variable.other.constant.ts\"}},\"match\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\"},\"directives\":{\"begin\":\"^(///)\\\\\\\\s*(?=<(reference|amd-dependency|amd-module)(\\\\\\\\s+(path|types|no-default-lib|lib|name|resolution-mode)\\\\\\\\s*=\\\\\\\\s*((\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`)))+\\\\\\\\s*/>\\\\\\\\s*$)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.ts\"}},\"end\":\"(?=$)\",\"name\":\"comment.line.triple-slash.directive.ts\",\"patterns\":[{\"begin\":\"(<)(reference|amd-dependency|amd-module)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.directive.ts\"},\"2\":{\"name\":\"entity.name.tag.directive.ts\"}},\"end\":\"/>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.directive.ts\"}},\"name\":\"meta.tag.ts\",\"patterns\":[{\"match\":\"path|types|no-default-lib|lib|name|resolution-mode\",\"name\":\"entity.other.attribute-name.directive.ts\"},{\"match\":\"=\",\"name\":\"keyword.operator.assignment.ts\"},{\"include\":\"#string\"}]}]},\"docblock\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"constant.language.access-type.jsdoc\"}},\"match\":\"((@)(?:access|api))\\\\\\\\s+(private|protected|public)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"entity.name.type.instance.jsdoc\"},\"4\":{\"name\":\"punctuation.definition.bracket.angle.begin.jsdoc\"},\"5\":{\"name\":\"constant.other.email.link.underline.jsdoc\"},\"6\":{\"name\":\"punctuation.definition.bracket.angle.end.jsdoc\"}},\"match\":\"((@)author)\\\\\\\\s+([^@\\\\\\\\s<>*/](?:[^@<>*/]|\\\\\\\\*[^/])*)(?:\\\\\\\\s*(<)([^>\\\\\\\\s]+)(>))?\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"entity.name.type.instance.jsdoc\"},\"4\":{\"name\":\"keyword.operator.control.jsdoc\"},\"5\":{\"name\":\"entity.name.type.instance.jsdoc\"}},\"match\":\"((@)borrows)\\\\\\\\s+((?:[^@\\\\\\\\s*/]|\\\\\\\\*[^/])+)\\\\\\\\s+(as)\\\\\\\\s+((?:[^@\\\\\\\\s*/]|\\\\\\\\*[^/])+)\"},{\"begin\":\"((@)example)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"end\":\"(?=@|\\\\\\\\*/)\",\"name\":\"meta.example.jsdoc\",\"patterns\":[{\"match\":\"^\\\\\\\\s\\\\\\\\*\\\\\\\\s+\"},{\"begin\":\"\\\\\\\\G(<)caption(>)\",\"beginCaptures\":{\"0\":{\"name\":\"entity.name.tag.inline.jsdoc\"},\"1\":{\"name\":\"punctuation.definition.bracket.angle.begin.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.bracket.angle.end.jsdoc\"}},\"contentName\":\"constant.other.description.jsdoc\",\"end\":\"(</)caption(>)|(?=\\\\\\\\*/)\",\"endCaptures\":{\"0\":{\"name\":\"entity.name.tag.inline.jsdoc\"},\"1\":{\"name\":\"punctuation.definition.bracket.angle.begin.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.bracket.angle.end.jsdoc\"}}},{\"captures\":{\"0\":{\"name\":\"source.embedded.ts\"}},\"match\":\"[^\\\\\\\\s@*](?:[^*]|\\\\\\\\*[^/])*\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"constant.language.symbol-type.jsdoc\"}},\"match\":\"((@)kind)\\\\\\\\s+(class|constant|event|external|file|function|member|mixin|module|namespace|typedef)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"variable.other.link.underline.jsdoc\"},\"4\":{\"name\":\"entity.name.type.instance.jsdoc\"}},\"match\":\"((@)see)\\\\\\\\s+(?:((?=https?://)(?:[^\\\\\\\\s*]|\\\\\\\\*[^/])+)|((?!https?://|(?:\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])?{@(?:link|linkcode|linkplain|tutorial)\\\\\\\\b)(?:[^@\\\\\\\\s*/]|\\\\\\\\*[^/])+))\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"variable.other.jsdoc\"}},\"match\":\"((@)template)\\\\\\\\s+([A-Za-z_$][\\\\\\\\w$.\\\\\\\\[\\\\\\\\]]*(?:\\\\\\\\s*,\\\\\\\\s*[A-Za-z_$][\\\\\\\\w$.\\\\\\\\[\\\\\\\\]]*)*)\"},{\"begin\":\"((@)template)\\\\\\\\s+(?={)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"end\":\"(?=\\\\\\\\s|\\\\\\\\*/|[^{}\\\\\\\\[\\\\\\\\]A-Za-z_$])\",\"patterns\":[{\"include\":\"#jsdoctype\"},{\"match\":\"([A-Za-z_$][\\\\\\\\w$.\\\\\\\\[\\\\\\\\]]*)\",\"name\":\"variable.other.jsdoc\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"variable.other.jsdoc\"}},\"match\":\"((@)(?:arg|argument|const|constant|member|namespace|param|var))\\\\\\\\s+([A-Za-z_$][\\\\\\\\w$.\\\\\\\\[\\\\\\\\]]*)\"},{\"begin\":\"((@)typedef)\\\\\\\\s+(?={)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"end\":\"(?=\\\\\\\\s|\\\\\\\\*/|[^{}\\\\\\\\[\\\\\\\\]A-Za-z_$])\",\"patterns\":[{\"include\":\"#jsdoctype\"},{\"match\":\"(?:[^@\\\\\\\\s*/]|\\\\\\\\*[^/])+\",\"name\":\"entity.name.type.instance.jsdoc\"}]},{\"begin\":\"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\\\\\\\s+(?={)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"end\":\"(?=\\\\\\\\s|\\\\\\\\*/|[^{}\\\\\\\\[\\\\\\\\]A-Za-z_$])\",\"patterns\":[{\"include\":\"#jsdoctype\"},{\"match\":\"([A-Za-z_$][\\\\\\\\w$.\\\\\\\\[\\\\\\\\]]*)\",\"name\":\"variable.other.jsdoc\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.optional-value.begin.bracket.square.jsdoc\"},\"2\":{\"name\":\"keyword.operator.assignment.jsdoc\"},\"3\":{\"name\":\"source.embedded.ts\"},\"4\":{\"name\":\"punctuation.definition.optional-value.end.bracket.square.jsdoc\"},\"5\":{\"name\":\"invalid.illegal.syntax.jsdoc\"}},\"match\":\"(\\\\\\\\[)\\\\\\\\s*[\\\\\\\\w$]+(?:(?:\\\\\\\\[\\\\\\\\])?\\\\\\\\.[\\\\\\\\w$]+)*(?:\\\\\\\\s*(=)\\\\\\\\s*((?>\\\\\"(?:(?:\\\\\\\\*(?!/))|(?:\\\\\\\\\\\\\\\\(?!\\\\\"))|[^*\\\\\\\\\\\\\\\\])*?\\\\\"|\\'(?:(?:\\\\\\\\*(?!/))|(?:\\\\\\\\\\\\\\\\(?!\\'))|[^*\\\\\\\\\\\\\\\\])*?\\'|\\\\\\\\[(?:(?:\\\\\\\\*(?!/))|[^*])*?\\\\\\\\]|(?:(?:\\\\\\\\*(?!/))|\\\\\\\\s(?!\\\\\\\\s*\\\\\\\\])|\\\\\\\\[.*?(?:\\\\\\\\]|(?=\\\\\\\\*/))|[^*\\\\\\\\s\\\\\\\\[\\\\\\\\]])*)*))?\\\\\\\\s*(?:(\\\\\\\\])((?:[^*\\\\\\\\s]|\\\\\\\\*[^\\\\\\\\s/])+)?|(?=\\\\\\\\*/))\",\"name\":\"variable.other.jsdoc\"}]},{\"begin\":\"((@)(?:define|enum|exception|export|extends|lends|implements|modifies|namespace|private|protected|returns?|satisfies|suppress|this|throws|type|yields?))\\\\\\\\s+(?={)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"end\":\"(?=\\\\\\\\s|\\\\\\\\*/|[^{}\\\\\\\\[\\\\\\\\]A-Za-z_$])\",\"patterns\":[{\"include\":\"#jsdoctype\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"entity.name.type.instance.jsdoc\"}},\"match\":\"((@)(?:alias|augments|callback|constructs|emits|event|fires|exports?|extends|external|function|func|host|lends|listens|interface|memberof!?|method|module|mixes|mixin|name|requires|see|this|typedef|uses))\\\\\\\\s+((?:[^{}@\\\\\\\\s*]|\\\\\\\\*[^/])+)\"},{\"begin\":\"((@)(?:default(?:value)?|license|version))\\\\\\\\s+(([\\'\\'\\\\\"]))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"variable.other.jsdoc\"},\"4\":{\"name\":\"punctuation.definition.string.begin.jsdoc\"}},\"contentName\":\"variable.other.jsdoc\",\"end\":\"(\\\\\\\\3)|(?=$|\\\\\\\\*/)\",\"endCaptures\":{\"0\":{\"name\":\"variable.other.jsdoc\"},\"1\":{\"name\":\"punctuation.definition.string.end.jsdoc\"}}},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"variable.other.jsdoc\"}},\"match\":\"((@)(?:default(?:value)?|license|tutorial|variation|version))\\\\\\\\s+([^\\\\\\\\s*]+)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"match\":\"(@)(?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles|callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright|default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception|exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func|function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc|inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method|mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects|override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected|public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary|suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation|version|virtual|writeOnce|yields?)\\\\\\\\b\",\"name\":\"storage.type.class.jsdoc\"},{\"include\":\"#inline-tags\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"match\":\"((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\\\\\\\s+)\"}]},\"enum-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?(?:\\\\\\\\b(const)\\\\\\\\s+)?\\\\\\\\b(enum)\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"storage.modifier.ts\"},\"4\":{\"name\":\"storage.type.enum.ts\"},\"5\":{\"name\":\"entity.name.type.enum.ts\"}},\"end\":\"(?<=\\\\\\\\})\",\"name\":\"meta.enum.declaration.ts\",\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"beginCaptures\":{\"0\":{\"name\":\"variable.other.enummember.ts\"}},\"end\":\"(?=,|\\\\\\\\}|$)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#variable-initializer\"}]},{\"begin\":\"(?=((\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\])))\",\"end\":\"(?=,|\\\\\\\\}|$)\",\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#array-literal\"},{\"include\":\"#comment\"},{\"include\":\"#variable-initializer\"}]},{\"include\":\"#punctuation-comma\"}]}]},\"export-declaration\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"keyword.control.as.ts\"},\"3\":{\"name\":\"storage.type.namespace.ts\"},\"4\":{\"name\":\"entity.name.type.module.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(export)\\\\\\\\s+(as)\\\\\\\\s+(namespace)\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(export)(?:\\\\\\\\s+(type))?(?:(?:\\\\\\\\s*(=))|(?:\\\\\\\\s+(default)(?=\\\\\\\\s+)))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"keyword.control.type.ts\"},\"3\":{\"name\":\"keyword.operator.assignment.ts\"},\"4\":{\"name\":\"keyword.control.default.ts\"}},\"end\":\"(?=$|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"name\":\"meta.export.default.ts\",\"patterns\":[{\"include\":\"#interface-declaration\"},{\"include\":\"#expression\"}]},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(export)(?:\\\\\\\\s+(type))?\\\\\\\\b(?!(\\\\\\\\$)|(\\\\\\\\s*:))((?=\\\\\\\\s*[\\\\\\\\{*])|((?=\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*(\\\\\\\\s|,))(?!\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b)))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"keyword.control.type.ts\"}},\"end\":\"(?=$|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"name\":\"meta.export.ts\",\"patterns\":[{\"include\":\"#import-export-declaration\"}]}]},\"expression\":{\"patterns\":[{\"include\":\"#expressionWithoutIdentifiers\"},{\"include\":\"#identifiers\"},{\"include\":\"#expressionPunctuations\"}]},\"expression-inside-possibly-arrow-parens\":{\"patterns\":[{\"include\":\"#expressionWithoutIdentifiers\"},{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#decorator\"},{\"include\":\"#destructuring-parameter\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(override|public|protected|private|readonly)\\\\\\\\s+(?=(override|public|protected|private|readonly)\\\\\\\\s+)\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.ts\"},\"2\":{\"name\":\"keyword.operator.rest.ts\"},\"3\":{\"name\":\"entity.name.function.ts variable.language.this.ts\"},\"4\":{\"name\":\"entity.name.function.ts\"},\"5\":{\"name\":\"keyword.operator.optional.ts\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(override|public|private|protected|readonly)\\\\\\\\s+)?(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*(\\\\\\\\??)(?=\\\\\\\\s*(=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))))|(:\\\\\\\\s*((<)|([(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>)))))))|(:\\\\\\\\s*(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Function(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(:\\\\\\\\s*((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))))|(:\\\\\\\\s*(=>|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>))))))\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.ts\"},\"2\":{\"name\":\"keyword.operator.rest.ts\"},\"3\":{\"name\":\"variable.parameter.ts variable.language.this.ts\"},\"4\":{\"name\":\"variable.parameter.ts\"},\"5\":{\"name\":\"keyword.operator.optional.ts\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(override|public|private|protected|readonly)\\\\\\\\s+)?(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*(\\\\\\\\??)(?=\\\\\\\\s*[:,]|$)\"},{\"include\":\"#type-annotation\"},{\"include\":\"#variable-initializer\"},{\"match\":\",\",\"name\":\"punctuation.separator.parameter.ts\"},{\"include\":\"#identifiers\"},{\"include\":\"#expressionPunctuations\"}]},\"expression-operators\":{\"patterns\":[{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(await)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.flow.ts\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(yield)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))(?=\\\\\\\\s*\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*\\\\\\\\*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.flow.ts\"}},\"end\":\"\\\\\\\\*\",\"endCaptures\":{\"0\":{\"name\":\"keyword.generator.asterisk.ts\"}},\"patterns\":[{\"include\":\"#comment\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.flow.ts\"},\"2\":{\"name\":\"keyword.generator.asterisk.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(yield)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))(?:\\\\\\\\s*(\\\\\\\\*))?\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))delete(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.expression.delete.ts\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))in(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))(?!\\\\\\\\()\",\"name\":\"keyword.operator.expression.in.ts\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))of(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))(?!\\\\\\\\()\",\"name\":\"keyword.operator.expression.of.ts\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))instanceof(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.expression.instanceof.ts\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))new(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.new.ts\"},{\"include\":\"#typeof-operator\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))void(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.expression.void.ts\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.as.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(as)\\\\\\\\s+(const)(?=\\\\\\\\s*($|[;,:})\\\\\\\\]]))\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(as)|(satisfies))\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.as.ts\"},\"2\":{\"name\":\"keyword.control.satisfies.ts\"}},\"end\":\"(?=^|[;),}\\\\\\\\]:?\\\\\\\\-\\\\\\\\+\\\\\\\\>]|\\\\\\\\|\\\\\\\\||\\\\\\\\&\\\\\\\\&|\\\\\\\\!\\\\\\\\=\\\\\\\\=|$|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(as|satisfies)\\\\\\\\s+)|(\\\\\\\\s+\\\\\\\\<))\",\"patterns\":[{\"include\":\"#type\"}]},{\"match\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"name\":\"keyword.operator.spread.ts\"},{\"match\":\"\\\\\\\\*=|(?<!\\\\\\\\()/=|%=|\\\\\\\\+=|\\\\\\\\-=\",\"name\":\"keyword.operator.assignment.compound.ts\"},{\"match\":\"\\\\\\\\&=|\\\\\\\\^=|<<=|>>=|>>>=|\\\\\\\\|=\",\"name\":\"keyword.operator.assignment.compound.bitwise.ts\"},{\"match\":\"<<|>>>|>>\",\"name\":\"keyword.operator.bitwise.shift.ts\"},{\"match\":\"===|!==|==|!=\",\"name\":\"keyword.operator.comparison.ts\"},{\"match\":\"<=|>=|<>|<|>\",\"name\":\"keyword.operator.relational.ts\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.logical.ts\"},\"2\":{\"name\":\"keyword.operator.assignment.compound.ts\"},\"3\":{\"name\":\"keyword.operator.arithmetic.ts\"}},\"match\":\"(?<=[_$[:alnum:]])(\\\\\\\\!)\\\\\\\\s*(?:(/=)|(?:(/)(?![/*])))\"},{\"match\":\"\\\\\\\\!|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\?\\\\\\\\?\",\"name\":\"keyword.operator.logical.ts\"},{\"match\":\"\\\\\\\\&|~|\\\\\\\\^|\\\\\\\\|\",\"name\":\"keyword.operator.bitwise.ts\"},{\"match\":\"\\\\\\\\=\",\"name\":\"keyword.operator.assignment.ts\"},{\"match\":\"--\",\"name\":\"keyword.operator.decrement.ts\"},{\"match\":\"\\\\\\\\+\\\\\\\\+\",\"name\":\"keyword.operator.increment.ts\"},{\"match\":\"%|\\\\\\\\*|/|-|\\\\\\\\+\",\"name\":\"keyword.operator.arithmetic.ts\"},{\"begin\":\"(?<=[_$[:alnum:])\\\\\\\\]])\\\\\\\\s*(?=(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)+(?:(/=)|(?:(/)(?![/*]))))\",\"end\":\"(?:(/=)|(?:(/)(?!\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/)))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.compound.ts\"},\"2\":{\"name\":\"keyword.operator.arithmetic.ts\"}},\"patterns\":[{\"include\":\"#comment\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.operator.assignment.compound.ts\"},\"2\":{\"name\":\"keyword.operator.arithmetic.ts\"}},\"match\":\"(?<=[_$[:alnum:])\\\\\\\\]])\\\\\\\\s*(?:(/=)|(?:(/)(?![/*])))\"}]},\"expressionPunctuations\":{\"patterns\":[{\"include\":\"#punctuation-comma\"},{\"include\":\"#punctuation-accessor\"}]},\"expressionWithoutIdentifiers\":{\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#regex\"},{\"include\":\"#comment\"},{\"include\":\"#function-expression\"},{\"include\":\"#class-expression\"},{\"include\":\"#arrow-function\"},{\"include\":\"#paren-expression-possibly-arrow\"},{\"include\":\"#cast\"},{\"include\":\"#ternary-expression\"},{\"include\":\"#new-expr\"},{\"include\":\"#instanceof-expr\"},{\"include\":\"#object-literal\"},{\"include\":\"#expression-operators\"},{\"include\":\"#function-call\"},{\"include\":\"#literal\"},{\"include\":\"#support-objects\"},{\"include\":\"#paren-expression\"}]},\"field-declaration\":{\"begin\":\"(?<!\\\\\\\\()(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(readonly)\\\\\\\\s+)?(?=\\\\\\\\s*((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(?:(?:(\\\\\\\\?)|(\\\\\\\\!))\\\\\\\\s*)?(=|:|;|,|\\\\\\\\}|$))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.ts\"}},\"end\":\"(?=\\\\\\\\}|;|,|$|(^(?!\\\\\\\\s*((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(?:(?:(\\\\\\\\?)|(\\\\\\\\!))\\\\\\\\s*)?(=|:|;|,|$))))|(?<=\\\\\\\\})\",\"name\":\"meta.field.declaration.ts\",\"patterns\":[{\"include\":\"#variable-initializer\"},{\"include\":\"#type-annotation\"},{\"include\":\"#string\"},{\"include\":\"#array-literal\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#comment\"},{\"captures\":{\"1\":{\"name\":\"meta.definition.property.ts entity.name.function.ts\"},\"2\":{\"name\":\"keyword.operator.optional.ts\"},\"3\":{\"name\":\"keyword.operator.definiteassignment.ts\"}},\"match\":\"(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)(?:(\\\\\\\\?)|(\\\\\\\\!))?(?=\\\\\\\\s*\\\\\\\\s*(=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))))|(:\\\\\\\\s*((<)|([(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>)))))))|(:\\\\\\\\s*(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Function(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(:\\\\\\\\s*((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))))|(:\\\\\\\\s*(=>|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>))))))\"},{\"match\":\"\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"meta.definition.property.ts variable.object.property.ts\"},{\"match\":\"\\\\\\\\?\",\"name\":\"keyword.operator.optional.ts\"},{\"match\":\"\\\\\\\\!\",\"name\":\"keyword.operator.definiteassignment.ts\"}]},\"for-loop\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))for(?=((\\\\\\\\s+|(\\\\\\\\s*\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*))await)?\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)?(\\\\\\\\())\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.loop.ts\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"include\":\"#comment\"},{\"match\":\"await\",\"name\":\"keyword.control.loop.ts\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"patterns\":[{\"include\":\"#var-expr\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-semicolon\"}]}]},\"function-body\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-parameters\"},{\"include\":\"#function-parameters\"},{\"include\":\"#return-type\"},{\"include\":\"#type-function-return-type\"},{\"include\":\"#decl-block\"},{\"match\":\"\\\\\\\\*\",\"name\":\"keyword.generator.asterisk.ts\"}]},\"function-call\":{\"patterns\":[{\"begin\":\"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\\\\\\\)]))\\\\\\\\s*(?:(\\\\\\\\?\\\\\\\\.\\\\\\\\s*)|(\\\\\\\\!))?((<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))(([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>)*(?<!=)\\\\\\\\>))*(?<!=)\\\\\\\\>)*(?<!=)>\\\\\\\\s*)?\\\\\\\\())\",\"end\":\"(?<=\\\\\\\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\\\\\\\)]))\\\\\\\\s*(?:(\\\\\\\\?\\\\\\\\.\\\\\\\\s*)|(\\\\\\\\!))?((<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))(([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>)*(?<!=)\\\\\\\\>))*(?<!=)\\\\\\\\>)*(?<!=)>\\\\\\\\s*)?\\\\\\\\())\",\"patterns\":[{\"begin\":\"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))\",\"end\":\"(?=\\\\\\\\s*(?:(\\\\\\\\?\\\\\\\\.\\\\\\\\s*)|(\\\\\\\\!))?((<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))(([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>)*(?<!=)\\\\\\\\>))*(?<!=)\\\\\\\\>)*(?<!=)>\\\\\\\\s*)?\\\\\\\\())\",\"name\":\"meta.function-call.ts\",\"patterns\":[{\"include\":\"#function-call-target\"}]},{\"include\":\"#comment\"},{\"include\":\"#function-call-optionals\"},{\"include\":\"#type-arguments\"},{\"include\":\"#paren-expression\"}]},{\"begin\":\"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\\\\\\\)]))(<\\\\\\\\s*[\\\\\\\\{\\\\\\\\[\\\\\\\\(]\\\\\\\\s*$))\",\"end\":\"(?<=\\\\\\\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\\\\\\\)]))(<\\\\\\\\s*[\\\\\\\\{\\\\\\\\[\\\\\\\\(]\\\\\\\\s*$))\",\"patterns\":[{\"begin\":\"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))\",\"end\":\"(?=(<\\\\\\\\s*[\\\\\\\\{\\\\\\\\[\\\\\\\\(]\\\\\\\\s*$))\",\"name\":\"meta.function-call.ts\",\"patterns\":[{\"include\":\"#function-call-target\"}]},{\"include\":\"#comment\"},{\"include\":\"#function-call-optionals\"},{\"include\":\"#type-arguments\"}]}]},\"function-call-optionals\":{\"patterns\":[{\"match\":\"\\\\\\\\?\\\\\\\\.\",\"name\":\"meta.function-call.ts punctuation.accessor.optional.ts\"},{\"match\":\"\\\\\\\\!\",\"name\":\"meta.function-call.ts keyword.operator.definiteassignment.ts\"}]},\"function-call-target\":{\"patterns\":[{\"include\":\"#support-function-call-identifiers\"},{\"match\":\"(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)\",\"name\":\"entity.name.function.ts\"}]},\"function-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?(?:(async)\\\\\\\\s+)?(function\\\\\\\\b)(?:\\\\\\\\s*(\\\\\\\\*))?(?:(?:\\\\\\\\s+|(?<=\\\\\\\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"storage.modifier.async.ts\"},\"4\":{\"name\":\"storage.type.function.ts\"},\"5\":{\"name\":\"keyword.generator.asterisk.ts\"},\"6\":{\"name\":\"meta.definition.function.ts entity.name.function.ts\"}},\"end\":\"(?=;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))|(?<=\\\\\\\\})\",\"name\":\"meta.function.ts\",\"patterns\":[{\"include\":\"#function-name\"},{\"include\":\"#function-body\"}]},\"function-expression\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(async)\\\\\\\\s+)?(function\\\\\\\\b)(?:\\\\\\\\s*(\\\\\\\\*))?(?:(?:\\\\\\\\s+|(?<=\\\\\\\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.ts\"},\"2\":{\"name\":\"storage.type.function.ts\"},\"3\":{\"name\":\"keyword.generator.asterisk.ts\"},\"4\":{\"name\":\"meta.definition.function.ts entity.name.function.ts\"}},\"end\":\"(?=;)|(?<=\\\\\\\\})\",\"name\":\"meta.function.expression.ts\",\"patterns\":[{\"include\":\"#function-name\"},{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#function-body\"}]},\"function-name\":{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"meta.definition.function.ts entity.name.function.ts\"},\"function-parameters\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.begin.ts\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.ts\"}},\"name\":\"meta.parameters.ts\",\"patterns\":[{\"include\":\"#function-parameters-body\"}]},\"function-parameters-body\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#decorator\"},{\"include\":\"#destructuring-parameter\"},{\"include\":\"#parameter-name\"},{\"include\":\"#parameter-type-annotation\"},{\"include\":\"#variable-initializer\"},{\"match\":\",\",\"name\":\"punctuation.separator.parameter.ts\"}]},\"identifiers\":{\"patterns\":[{\"include\":\"#object-identifiers\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.ts\"},\"2\":{\"name\":\"punctuation.accessor.optional.ts\"},\"3\":{\"name\":\"entity.name.function.ts\"}},\"match\":\"(?:(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\\\\\\\s*=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))))\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.ts\"},\"2\":{\"name\":\"punctuation.accessor.optional.ts\"},\"3\":{\"name\":\"variable.other.constant.property.ts\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(\\\\\\\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.ts\"},\"2\":{\"name\":\"punctuation.accessor.optional.ts\"},\"3\":{\"name\":\"variable.other.property.ts\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)\"},{\"match\":\"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])\",\"name\":\"variable.other.constant.ts\"},{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"variable.other.readwrite.ts\"}]},\"if-statement\":{\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?=\\\\\\\\bif\\\\\\\\s*(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))\\\\\\\\s*(?!\\\\\\\\{))\",\"end\":\"(?=;|$|\\\\\\\\})\",\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(if)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.conditional.ts\"},\"2\":{\"name\":\"meta.brace.round.ts\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\"(?<=\\\\\\\\))\\\\\\\\s*\\\\\\\\/(?![\\\\\\\\/*])(?=(?:[^\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\\\[]|\\\\\\\\\\\\\\\\.|\\\\\\\\[([^\\\\\\\\]\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\])+\\\\\\\\/([dgimsuvy]+|(?![\\\\\\\\/\\\\\\\\*])|(?=\\\\\\\\/\\\\\\\\*))(?!\\\\\\\\s*[a-zA-Z0-9_$]))\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ts\"}},\"end\":\"(/)([dgimsuvy]*)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.ts\"},\"2\":{\"name\":\"keyword.other.ts\"}},\"name\":\"string.regexp.ts\",\"patterns\":[{\"include\":\"#regexp\"}]},{\"include\":\"#statements\"}]}]},\"import-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(import)(?:\\\\\\\\s+(type)(?!\\\\\\\\s+from))?(?!\\\\\\\\s*[:\\\\\\\\(])(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"keyword.control.import.ts\"},\"4\":{\"name\":\"keyword.control.type.ts\"}},\"end\":\"(?<!^import|[^\\\\\\\\._$[:alnum:]]import)(?=;|$|^)\",\"name\":\"meta.import.ts\",\"patterns\":[{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"begin\":\"(?<=^import|[^\\\\\\\\._$[:alnum:]]import)(?!\\\\\\\\s*[\\\\\"\\'])\",\"end\":\"\\\\\\\\bfrom\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.from.ts\"}},\"patterns\":[{\"include\":\"#import-export-declaration\"}]},{\"include\":\"#import-export-declaration\"}]},\"import-equals-declaration\":{\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(import)(?:\\\\\\\\s+(type))?\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(=)\\\\\\\\s*(require)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"keyword.control.import.ts\"},\"4\":{\"name\":\"keyword.control.type.ts\"},\"5\":{\"name\":\"variable.other.readwrite.alias.ts\"},\"6\":{\"name\":\"keyword.operator.assignment.ts\"},\"7\":{\"name\":\"keyword.control.require.ts\"},\"8\":{\"name\":\"meta.brace.round.ts\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"name\":\"meta.import-equals.external.ts\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"}]},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(import)(?:\\\\\\\\s+(type))?\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(=)\\\\\\\\s*(?!require\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"keyword.control.import.ts\"},\"4\":{\"name\":\"keyword.control.type.ts\"},\"5\":{\"name\":\"variable.other.readwrite.alias.ts\"},\"6\":{\"name\":\"keyword.operator.assignment.ts\"}},\"end\":\"(?=;|$|^)\",\"name\":\"meta.import-equals.internal.ts\",\"patterns\":[{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#comment\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.module.ts\"},\"2\":{\"name\":\"punctuation.accessor.ts\"},\"3\":{\"name\":\"punctuation.accessor.optional.ts\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\"},{\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"name\":\"variable.other.readwrite.ts\"}]}]},\"import-export-assert-clause\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(with)|(assert))\\\\\\\\s*(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.with.ts\"},\"2\":{\"name\":\"keyword.control.assert.ts\"},\"3\":{\"name\":\"punctuation.definition.block.ts\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"match\":\"(?:[_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?=(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*:)\",\"name\":\"meta.object-literal.key.ts\"},{\"match\":\":\",\"name\":\"punctuation.separator.key-value.ts\"}]},\"import-export-block\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"name\":\"meta.block.ts\",\"patterns\":[{\"include\":\"#import-export-clause\"}]},\"import-export-clause\":{\"patterns\":[{\"include\":\"#comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.type.ts\"},\"2\":{\"name\":\"keyword.control.default.ts\"},\"3\":{\"name\":\"constant.language.import-export-all.ts\"},\"4\":{\"name\":\"variable.other.readwrite.ts\"},\"5\":{\"name\":\"string.quoted.alias.ts\"},\"12\":{\"name\":\"keyword.control.as.ts\"},\"13\":{\"name\":\"keyword.control.default.ts\"},\"14\":{\"name\":\"variable.other.readwrite.alias.ts\"},\"15\":{\"name\":\"string.quoted.alias.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(?:(\\\\\\\\btype)\\\\\\\\s+)?(?:(\\\\\\\\bdefault)|(\\\\\\\\*)|(\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*)|((\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))))\\\\\\\\s+(as)\\\\\\\\s+(?:(default(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|([_$[:alpha:]][_$[:alnum:]]*)|((\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`)))\"},{\"include\":\"#punctuation-comma\"},{\"match\":\"\\\\\\\\*\",\"name\":\"constant.language.import-export-all.ts\"},{\"match\":\"\\\\\\\\b(default)\\\\\\\\b\",\"name\":\"keyword.control.default.ts\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.type.ts\"},\"2\":{\"name\":\"variable.other.readwrite.alias.ts\"},\"3\":{\"name\":\"string.quoted.alias.ts\"}},\"match\":\"(?:(\\\\\\\\btype)\\\\\\\\s+)?(?:([_$[:alpha:]][_$[:alnum:]]*)|((\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`)))\"}]},\"import-export-declaration\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#import-export-block\"},{\"match\":\"\\\\\\\\bfrom\\\\\\\\b\",\"name\":\"keyword.control.from.ts\"},{\"include\":\"#import-export-assert-clause\"},{\"include\":\"#import-export-clause\"}]},\"indexer-declaration\":{\"begin\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(readonly)\\\\\\\\s*)?\\\\\\\\s*(\\\\\\\\[)\\\\\\\\s*([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?=:)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.ts\"},\"2\":{\"name\":\"meta.brace.square.ts\"},\"3\":{\"name\":\"variable.parameter.ts\"}},\"end\":\"(\\\\\\\\])\\\\\\\\s*(\\\\\\\\?\\\\\\\\s*)?|$\",\"endCaptures\":{\"1\":{\"name\":\"meta.brace.square.ts\"},\"2\":{\"name\":\"keyword.operator.optional.ts\"}},\"name\":\"meta.indexer.declaration.ts\",\"patterns\":[{\"include\":\"#type-annotation\"}]},\"indexer-mapped-type-declaration\":{\"begin\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))([+-])?(readonly)\\\\\\\\s*)?\\\\\\\\s*(\\\\\\\\[)\\\\\\\\s*([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s+(in)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.modifier.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"meta.brace.square.ts\"},\"4\":{\"name\":\"entity.name.type.ts\"},\"5\":{\"name\":\"keyword.operator.expression.in.ts\"}},\"end\":\"(\\\\\\\\])([+-])?\\\\\\\\s*(\\\\\\\\?\\\\\\\\s*)?|$\",\"endCaptures\":{\"1\":{\"name\":\"meta.brace.square.ts\"},\"2\":{\"name\":\"keyword.operator.type.modifier.ts\"},\"3\":{\"name\":\"keyword.operator.optional.ts\"}},\"name\":\"meta.indexer.mappedtype.declaration.ts\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.as.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(as)\\\\\\\\s+\"},{\"include\":\"#type\"}]},\"inline-tags\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.bracket.square.begin.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.bracket.square.end.jsdoc\"}},\"match\":\"(\\\\\\\\[)[^\\\\\\\\]]+(\\\\\\\\])(?={@(?:link|linkcode|linkplain|tutorial))\",\"name\":\"constant.other.description.jsdoc\"},{\"begin\":\"({)((@)(?:link(?:code|plain)?|tutorial))\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.bracket.curly.begin.jsdoc\"},\"2\":{\"name\":\"storage.type.class.jsdoc\"},\"3\":{\"name\":\"punctuation.definition.inline.tag.jsdoc\"}},\"end\":\"}|(?=\\\\\\\\*/)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.bracket.curly.end.jsdoc\"}},\"name\":\"entity.name.type.instance.jsdoc\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.other.link.underline.jsdoc\"},\"2\":{\"name\":\"punctuation.separator.pipe.jsdoc\"}},\"match\":\"\\\\\\\\G((?=https?://)(?:[^|}\\\\\\\\s*]|\\\\\\\\*[/])+)(\\\\\\\\|)?\"},{\"captures\":{\"1\":{\"name\":\"variable.other.description.jsdoc\"},\"2\":{\"name\":\"punctuation.separator.pipe.jsdoc\"}},\"match\":\"\\\\\\\\G((?:[^{}@\\\\\\\\s|*]|\\\\\\\\*[^/])+)(\\\\\\\\|)?\"}]}]},\"instanceof-expr\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(instanceof)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.expression.instanceof.ts\"}},\"end\":\"(?<=\\\\\\\\))|(?=[;),}\\\\\\\\]:?\\\\\\\\-\\\\\\\\+\\\\\\\\>]|\\\\\\\\|\\\\\\\\||\\\\\\\\&\\\\\\\\&|\\\\\\\\!\\\\\\\\=\\\\\\\\=|$|(===|!==|==|!=)|(([\\\\\\\\&\\\\\\\\~\\\\\\\\^\\\\\\\\|]\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+instanceof(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))function((\\\\\\\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\s*[\\\\\\\\(]))))\",\"patterns\":[{\"include\":\"#type\"}]},\"interface-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(?:(abstract)\\\\\\\\s+)?\\\\\\\\b(interface)\\\\\\\\b(?=\\\\\\\\s+|/[/*])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"storage.modifier.ts\"},\"4\":{\"name\":\"storage.type.interface.ts\"}},\"end\":\"(?<=\\\\\\\\})\",\"name\":\"meta.interface.ts\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#class-or-interface-heritage\"},{\"captures\":{\"0\":{\"name\":\"entity.name.type.interface.ts\"}},\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\"},{\"include\":\"#type-parameters\"},{\"include\":\"#class-or-interface-body\"}]},\"jsdoctype\":{\"patterns\":[{\"begin\":\"\\\\\\\\G({)\",\"beginCaptures\":{\"0\":{\"name\":\"entity.name.type.instance.jsdoc\"},\"1\":{\"name\":\"punctuation.definition.bracket.curly.begin.jsdoc\"}},\"contentName\":\"entity.name.type.instance.jsdoc\",\"end\":\"((}))\\\\\\\\s*|(?=\\\\\\\\*/)\",\"endCaptures\":{\"1\":{\"name\":\"entity.name.type.instance.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.bracket.curly.end.jsdoc\"}},\"patterns\":[{\"include\":\"#brackets\"}]}]},\"label\":{\"patterns\":[{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(:)(?=\\\\\\\\s*\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.label.ts\"},\"2\":{\"name\":\"punctuation.separator.label.ts\"}},\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#decl-block\"}]},{\"captures\":{\"1\":{\"name\":\"entity.name.label.ts\"},\"2\":{\"name\":\"punctuation.separator.label.ts\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(:)\"}]},\"literal\":{\"patterns\":[{\"include\":\"#numeric-literal\"},{\"include\":\"#boolean-literal\"},{\"include\":\"#null-literal\"},{\"include\":\"#undefined-literal\"},{\"include\":\"#numericConstant-literal\"},{\"include\":\"#array-literal\"},{\"include\":\"#this-literal\"},{\"include\":\"#super-literal\"}]},\"method-declaration\":{\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:\\\\\\\\b(override)\\\\\\\\s+)?(?:\\\\\\\\b(public|private|protected)\\\\\\\\s+)?(?:\\\\\\\\b(abstract)\\\\\\\\s+)?(?:\\\\\\\\b(async)\\\\\\\\s+)?\\\\\\\\s*\\\\\\\\b(constructor)\\\\\\\\b(?!:)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"storage.modifier.ts\"},\"4\":{\"name\":\"storage.modifier.async.ts\"},\"5\":{\"name\":\"storage.type.ts\"}},\"end\":\"(?=\\\\\\\\}|;|,|$)|(?<=\\\\\\\\})\",\"name\":\"meta.method.declaration.ts\",\"patterns\":[{\"include\":\"#method-declaration-name\"},{\"include\":\"#function-body\"}]},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:\\\\\\\\b(override)\\\\\\\\s+)?(?:\\\\\\\\b(public|private|protected)\\\\\\\\s+)?(?:\\\\\\\\b(abstract)\\\\\\\\s+)?(?:\\\\\\\\b(async)\\\\\\\\s+)?(?:(?:\\\\\\\\s*\\\\\\\\b(new)\\\\\\\\b(?!:)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(?:(\\\\\\\\*)\\\\\\\\s*)?)(?=\\\\\\\\s*((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*))?[\\\\\\\\(])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"storage.modifier.ts\"},\"4\":{\"name\":\"storage.modifier.async.ts\"},\"5\":{\"name\":\"keyword.operator.new.ts\"},\"6\":{\"name\":\"keyword.generator.asterisk.ts\"}},\"end\":\"(?=\\\\\\\\}|;|,|$)|(?<=\\\\\\\\})\",\"name\":\"meta.method.declaration.ts\",\"patterns\":[{\"include\":\"#method-declaration-name\"},{\"include\":\"#function-body\"}]},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:\\\\\\\\b(override)\\\\\\\\s+)?(?:\\\\\\\\b(public|private|protected)\\\\\\\\s+)?(?:\\\\\\\\b(abstract)\\\\\\\\s+)?(?:\\\\\\\\b(async)\\\\\\\\s+)?(?:\\\\\\\\b(get|set)\\\\\\\\s+)?(?:(\\\\\\\\*)\\\\\\\\s*)?(?=\\\\\\\\s*(((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(\\\\\\\\??))\\\\\\\\s*((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*))?[\\\\\\\\(])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"storage.modifier.ts\"},\"4\":{\"name\":\"storage.modifier.async.ts\"},\"5\":{\"name\":\"storage.type.property.ts\"},\"6\":{\"name\":\"keyword.generator.asterisk.ts\"}},\"end\":\"(?=\\\\\\\\}|;|,|$)|(?<=\\\\\\\\})\",\"name\":\"meta.method.declaration.ts\",\"patterns\":[{\"include\":\"#method-declaration-name\"},{\"include\":\"#function-body\"}]}]},\"method-declaration-name\":{\"begin\":\"(?=((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(\\\\\\\\??)\\\\\\\\s*[\\\\\\\\(\\\\\\\\<])\",\"end\":\"(?=\\\\\\\\(|\\\\\\\\<)\",\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#array-literal\"},{\"include\":\"#numeric-literal\"},{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"meta.definition.method.ts entity.name.function.ts\"},{\"match\":\"\\\\\\\\?\",\"name\":\"keyword.operator.optional.ts\"}]},\"namespace-declaration\":{\"begin\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(namespace|module)\\\\\\\\s+(?=[_$[:alpha:]\\\\\"\\'`]))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"storage.type.namespace.ts\"}},\"end\":\"(?<=\\\\\\\\})|(?=;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"name\":\"meta.namespace.declaration.ts\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"name\":\"entity.name.type.module.ts\"},{\"include\":\"#punctuation-accessor\"},{\"include\":\"#decl-block\"}]},\"new-expr\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(new)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.new.ts\"}},\"end\":\"(?<=\\\\\\\\))|(?=[;),}\\\\\\\\]:?\\\\\\\\-\\\\\\\\+\\\\\\\\>]|\\\\\\\\|\\\\\\\\||\\\\\\\\&\\\\\\\\&|\\\\\\\\!\\\\\\\\=\\\\\\\\=|$|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))new(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))function((\\\\\\\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\s*[\\\\\\\\(]))))\",\"name\":\"new.expr.ts\",\"patterns\":[{\"include\":\"#expression\"}]},\"null-literal\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))null(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.null.ts\"},\"numeric-literal\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.numeric.bigint.ts\"}},\"match\":\"\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.numeric.hex.ts\"},{\"captures\":{\"1\":{\"name\":\"storage.type.numeric.bigint.ts\"}},\"match\":\"\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.numeric.binary.ts\"},{\"captures\":{\"1\":{\"name\":\"storage.type.numeric.bigint.ts\"}},\"match\":\"\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.numeric.octal.ts\"},{\"captures\":{\"0\":{\"name\":\"constant.numeric.decimal.ts\"},\"1\":{\"name\":\"meta.delimiter.decimal.period.ts\"},\"2\":{\"name\":\"storage.type.numeric.bigint.ts\"},\"3\":{\"name\":\"meta.delimiter.decimal.period.ts\"},\"4\":{\"name\":\"storage.type.numeric.bigint.ts\"},\"5\":{\"name\":\"meta.delimiter.decimal.period.ts\"},\"6\":{\"name\":\"storage.type.numeric.bigint.ts\"},\"7\":{\"name\":\"storage.type.numeric.bigint.ts\"},\"8\":{\"name\":\"meta.delimiter.decimal.period.ts\"},\"9\":{\"name\":\"storage.type.numeric.bigint.ts\"},\"10\":{\"name\":\"meta.delimiter.decimal.period.ts\"},\"11\":{\"name\":\"storage.type.numeric.bigint.ts\"},\"12\":{\"name\":\"meta.delimiter.decimal.period.ts\"},\"13\":{\"name\":\"storage.type.numeric.bigint.ts\"},\"14\":{\"name\":\"storage.type.numeric.bigint.ts\"}},\"match\":\"(?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$)\"}]},\"numericConstant-literal\":{\"patterns\":[{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))NaN(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.nan.ts\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Infinity(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.infinity.ts\"}]},\"object-binding-element\":{\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?=((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(:))\",\"end\":\"(?=,|\\\\\\\\})\",\"patterns\":[{\"include\":\"#object-binding-element-propertyName\"},{\"include\":\"#binding-element\"}]},{\"include\":\"#object-binding-pattern\"},{\"include\":\"#destructuring-variable-rest\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#punctuation-comma\"}]},\"object-binding-element-const\":{\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?=((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(:))\",\"end\":\"(?=,|\\\\\\\\})\",\"patterns\":[{\"include\":\"#object-binding-element-propertyName\"},{\"include\":\"#binding-element-const\"}]},{\"include\":\"#object-binding-pattern-const\"},{\"include\":\"#destructuring-variable-rest-const\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#punctuation-comma\"}]},\"object-binding-element-propertyName\":{\"begin\":\"(?=((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(:))\",\"end\":\"(:)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.destructuring.ts\"}},\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#array-literal\"},{\"include\":\"#numeric-literal\"},{\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"name\":\"variable.object.property.ts\"}]},\"object-binding-pattern\":{\"begin\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.ts\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.object.ts\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.object.ts\"}},\"patterns\":[{\"include\":\"#object-binding-element\"}]},\"object-binding-pattern-const\":{\"begin\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.ts\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.object.ts\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.object.ts\"}},\"patterns\":[{\"include\":\"#object-binding-element-const\"}]},\"object-identifiers\":{\"patterns\":[{\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)(?=\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*prototype\\\\\\\\b(?!\\\\\\\\$))\",\"name\":\"support.class.ts\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.ts\"},\"2\":{\"name\":\"punctuation.accessor.optional.ts\"},\"3\":{\"name\":\"variable.other.constant.object.property.ts\"},\"4\":{\"name\":\"variable.other.object.property.ts\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(?:(\\\\\\\\#?[[:upper:]][_$[:digit:][:upper:]]*)|(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))(?=\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)\"},{\"captures\":{\"1\":{\"name\":\"variable.other.constant.object.ts\"},\"2\":{\"name\":\"variable.other.object.ts\"}},\"match\":\"(?:([[:upper:]][_$[:digit:][:upper:]]*)|([_$[:alpha:]][_$[:alnum:]]*))(?=\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)\"}]},\"object-literal\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"name\":\"meta.objectliteral.ts\",\"patterns\":[{\"include\":\"#object-member\"}]},\"object-literal-method-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:\\\\\\\\b(async)\\\\\\\\s+)?(?:\\\\\\\\b(get|set)\\\\\\\\s+)?(?:(\\\\\\\\*)\\\\\\\\s*)?(?=\\\\\\\\s*(((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(\\\\\\\\??))\\\\\\\\s*((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*))?[\\\\\\\\(])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.ts\"},\"2\":{\"name\":\"storage.type.property.ts\"},\"3\":{\"name\":\"keyword.generator.asterisk.ts\"}},\"end\":\"(?=\\\\\\\\}|;|,)|(?<=\\\\\\\\})\",\"name\":\"meta.method.declaration.ts\",\"patterns\":[{\"include\":\"#method-declaration-name\"},{\"include\":\"#function-body\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:\\\\\\\\b(async)\\\\\\\\s+)?(?:\\\\\\\\b(get|set)\\\\\\\\s+)?(?:(\\\\\\\\*)\\\\\\\\s*)?(?=\\\\\\\\s*(((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(\\\\\\\\??))\\\\\\\\s*((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*))?[\\\\\\\\(])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.ts\"},\"2\":{\"name\":\"storage.type.property.ts\"},\"3\":{\"name\":\"keyword.generator.asterisk.ts\"}},\"end\":\"(?=\\\\\\\\(|\\\\\\\\<)\",\"patterns\":[{\"include\":\"#method-declaration-name\"}]}]},\"object-member\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#object-literal-method-declaration\"},{\"begin\":\"(?=\\\\\\\\[)\",\"end\":\"(?=:)|((?<=[\\\\\\\\]])(?=\\\\\\\\s*[\\\\\\\\(\\\\\\\\<]))\",\"name\":\"meta.object.member.ts meta.object-literal.key.ts\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#array-literal\"}]},{\"begin\":\"(?=[\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`])\",\"end\":\"(?=:)|((?<=[\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`])(?=((\\\\\\\\s*[\\\\\\\\(\\\\\\\\<,}])|(\\\\\\\\s+(as|satisifies)\\\\\\\\s+))))\",\"name\":\"meta.object.member.ts meta.object-literal.key.ts\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"}]},{\"begin\":\"(?=(\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$)))\",\"end\":\"(?=:)|(?=\\\\\\\\s*([\\\\\\\\(\\\\\\\\<,}])|(\\\\\\\\s+as|satisifies\\\\\\\\s+))\",\"name\":\"meta.object.member.ts meta.object-literal.key.ts\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#numeric-literal\"}]},{\"begin\":\"(?<=[\\\\\\\\]\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`])(?=\\\\\\\\s*[\\\\\\\\(\\\\\\\\<])\",\"end\":\"(?=\\\\\\\\}|;|,)|(?<=\\\\\\\\})\",\"name\":\"meta.method.declaration.ts\",\"patterns\":[{\"include\":\"#function-body\"}]},{\"captures\":{\"0\":{\"name\":\"meta.object-literal.key.ts\"},\"1\":{\"name\":\"constant.numeric.decimal.ts\"}},\"match\":\"(?![_$[:alpha:]])([[:digit:]]+)\\\\\\\\s*(?=(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*:)\",\"name\":\"meta.object.member.ts\"},{\"captures\":{\"0\":{\"name\":\"meta.object-literal.key.ts\"},\"1\":{\"name\":\"entity.name.function.ts\"}},\"match\":\"(?:([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?=(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*:(\\\\\\\\s*\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/)*\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>))))))\",\"name\":\"meta.object.member.ts\"},{\"captures\":{\"0\":{\"name\":\"meta.object-literal.key.ts\"}},\"match\":\"(?:[_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?=(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*:)\",\"name\":\"meta.object.member.ts\"},{\"begin\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.spread.ts\"}},\"end\":\"(?=,|\\\\\\\\})\",\"name\":\"meta.object.member.ts\",\"patterns\":[{\"include\":\"#expression\"}]},{\"captures\":{\"1\":{\"name\":\"variable.other.readwrite.ts\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?=,|\\\\\\\\}|$|\\\\\\\\/\\\\\\\\/|\\\\\\\\/\\\\\\\\*)\",\"name\":\"meta.object.member.ts\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.as.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(as)\\\\\\\\s+(const)(?=\\\\\\\\s*([,}]|$))\",\"name\":\"meta.object.member.ts\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(as)|(satisfies))\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.as.ts\"},\"2\":{\"name\":\"keyword.control.satisfies.ts\"}},\"end\":\"(?=[;),}\\\\\\\\]:?\\\\\\\\-\\\\\\\\+\\\\\\\\>]|\\\\\\\\|\\\\\\\\||\\\\\\\\&\\\\\\\\&|\\\\\\\\!\\\\\\\\=\\\\\\\\=|$|^|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(as|satisifies)\\\\\\\\s+))\",\"name\":\"meta.object.member.ts\",\"patterns\":[{\"include\":\"#type\"}]},{\"begin\":\"(?=[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=)\",\"end\":\"(?=,|\\\\\\\\}|$|\\\\\\\\/\\\\\\\\/|\\\\\\\\/\\\\\\\\*)\",\"name\":\"meta.object.member.ts\",\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\":\",\"beginCaptures\":{\"0\":{\"name\":\"meta.object-literal.key.ts punctuation.separator.key-value.ts\"}},\"end\":\"(?=,|\\\\\\\\})\",\"name\":\"meta.object.member.ts\",\"patterns\":[{\"begin\":\"(?<=:)\\\\\\\\s*(async)?(?=\\\\\\\\s*(<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)\\\\\\\\(\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.ts\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"include\":\"#type-parameters\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"patterns\":[{\"include\":\"#expression-inside-possibly-arrow-parens\"}]}]},{\"begin\":\"(?<=:)\\\\\\\\s*(async)?\\\\\\\\s*(\\\\\\\\()(?=\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.ts\"},\"2\":{\"name\":\"meta.brace.round.ts\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"patterns\":[{\"include\":\"#expression-inside-possibly-arrow-parens\"}]},{\"begin\":\"(?<=:)\\\\\\\\s*(async)?\\\\\\\\s*(?=\\\\\\\\<\\\\\\\\s*$)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.ts\"}},\"end\":\"(?<=\\\\\\\\>)\",\"patterns\":[{\"include\":\"#type-parameters\"}]},{\"begin\":\"(?<=\\\\\\\\>)\\\\\\\\s*(\\\\\\\\()(?=\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))\",\"beginCaptures\":{\"1\":{\"name\":\"meta.brace.round.ts\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"patterns\":[{\"include\":\"#expression-inside-possibly-arrow-parens\"}]},{\"include\":\"#possibly-arrow-return-type\"},{\"include\":\"#expression\"}]},{\"include\":\"#punctuation-comma\"},{\"include\":\"#decl-block\"}]},\"parameter-array-binding-pattern\":{\"begin\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.ts\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.array.ts\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.array.ts\"}},\"patterns\":[{\"include\":\"#parameter-binding-element\"},{\"include\":\"#punctuation-comma\"}]},\"parameter-binding-element\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#regex\"},{\"include\":\"#parameter-object-binding-pattern\"},{\"include\":\"#parameter-array-binding-pattern\"},{\"include\":\"#destructuring-parameter-rest\"},{\"include\":\"#variable-initializer\"}]},\"parameter-name\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.modifier.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(override|public|protected|private|readonly)\\\\\\\\s+(?=(override|public|protected|private|readonly)\\\\\\\\s+)\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.ts\"},\"2\":{\"name\":\"keyword.operator.rest.ts\"},\"3\":{\"name\":\"entity.name.function.ts variable.language.this.ts\"},\"4\":{\"name\":\"entity.name.function.ts\"},\"5\":{\"name\":\"keyword.operator.optional.ts\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(override|public|private|protected|readonly)\\\\\\\\s+)?(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*(\\\\\\\\??)(?=\\\\\\\\s*(=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))))|(:\\\\\\\\s*((<)|([(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>)))))))|(:\\\\\\\\s*(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Function(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(:\\\\\\\\s*((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))))|(:\\\\\\\\s*(=>|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>))))))\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.ts\"},\"2\":{\"name\":\"keyword.operator.rest.ts\"},\"3\":{\"name\":\"variable.parameter.ts variable.language.this.ts\"},\"4\":{\"name\":\"variable.parameter.ts\"},\"5\":{\"name\":\"keyword.operator.optional.ts\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(override|public|private|protected|readonly)\\\\\\\\s+)?(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*(\\\\\\\\??)\"}]},\"parameter-object-binding-element\":{\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?=((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(:))\",\"end\":\"(?=,|\\\\\\\\})\",\"patterns\":[{\"include\":\"#object-binding-element-propertyName\"},{\"include\":\"#parameter-binding-element\"},{\"include\":\"#paren-expression\"}]},{\"include\":\"#parameter-object-binding-pattern\"},{\"include\":\"#destructuring-parameter-rest\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#punctuation-comma\"}]},\"parameter-object-binding-pattern\":{\"begin\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.ts\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.object.ts\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.object.ts\"}},\"patterns\":[{\"include\":\"#parameter-object-binding-element\"}]},\"parameter-type-annotation\":{\"patterns\":[{\"begin\":\"(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.ts\"}},\"end\":\"(?=[,)])|(?==[^>])\",\"name\":\"meta.type.annotation.ts\",\"patterns\":[{\"include\":\"#type\"}]}]},\"paren-expression\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"paren-expression-possibly-arrow\":{\"patterns\":[{\"begin\":\"(?<=[(=,])\\\\\\\\s*(async)?(?=\\\\\\\\s*((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*))?\\\\\\\\(\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.ts\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"include\":\"#paren-expression-possibly-arrow-with-typeparameters\"}]},{\"begin\":\"(?<=[(=,]|=>|^return|[^\\\\\\\\._$[:alnum:]]return)\\\\\\\\s*(async)?(?=\\\\\\\\s*((((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*))?\\\\\\\\()|(<)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)))\\\\\\\\s*$)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.ts\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"include\":\"#paren-expression-possibly-arrow-with-typeparameters\"}]},{\"include\":\"#possibly-arrow-return-type\"}]},\"paren-expression-possibly-arrow-with-typeparameters\":{\"patterns\":[{\"include\":\"#type-parameters\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"patterns\":[{\"include\":\"#expression-inside-possibly-arrow-parens\"}]}]},\"possibly-arrow-return-type\":{\"begin\":\"(?<=\\\\\\\\)|^)\\\\\\\\s*(:)(?=\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*=>)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts\"}},\"contentName\":\"meta.arrow.ts meta.return.type.arrow.ts\",\"end\":\"(?==>|\\\\\\\\{|(^\\\\\\\\s*(export|function|class|interface|let|var|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|const|import|enum|namespace|module|type|abstract|declare)\\\\\\\\s+))\",\"patterns\":[{\"include\":\"#arrow-return-type-body\"}]},\"property-accessor\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(accessor|get|set)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.type.property.ts\"},\"punctuation-accessor\":{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.ts\"},\"2\":{\"name\":\"punctuation.accessor.optional.ts\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\"},\"punctuation-comma\":{\"match\":\",\",\"name\":\"punctuation.separator.comma.ts\"},\"punctuation-semicolon\":{\"match\":\";\",\"name\":\"punctuation.terminator.statement.ts\"},\"qstring-double\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ts\"}},\"end\":\"(\\\\\")|((?:[^\\\\\\\\\\\\\\\\\\\\\\\\n])$)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.ts\"},\"2\":{\"name\":\"invalid.illegal.newline.ts\"}},\"name\":\"string.quoted.double.ts\",\"patterns\":[{\"include\":\"#string-character-escape\"}]},\"qstring-single\":{\"begin\":\"\\'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ts\"}},\"end\":\"(\\\\\\\\\\')|((?:[^\\\\\\\\\\\\\\\\\\\\\\\\n])$)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.ts\"},\"2\":{\"name\":\"invalid.illegal.newline.ts\"}},\"name\":\"string.quoted.single.ts\",\"patterns\":[{\"include\":\"#string-character-escape\"}]},\"regex\":{\"patterns\":[{\"begin\":\"(?<!\\\\\\\\+\\\\\\\\+|--|})(?<=[=(:,\\\\\\\\[?+!]|^return|[^\\\\\\\\._$[:alnum:]]return|^case|[^\\\\\\\\._$[:alnum:]]case|=>|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\*\\\\\\\\/)\\\\\\\\s*(\\\\\\\\/)(?![\\\\\\\\/*])(?=(?:[^\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\\\[\\\\\\\\()]|\\\\\\\\\\\\\\\\.|\\\\\\\\[([^\\\\\\\\]\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)+\\\\\\\\]|\\\\\\\\(([^\\\\\\\\)\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)+\\\\\\\\))+\\\\\\\\/([dgimsuvy]+|(?![\\\\\\\\/\\\\\\\\*])|(?=\\\\\\\\/\\\\\\\\*))(?!\\\\\\\\s*[a-zA-Z0-9_$]))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.ts\"}},\"end\":\"(/)([dgimsuvy]*)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.ts\"},\"2\":{\"name\":\"keyword.other.ts\"}},\"name\":\"string.regexp.ts\",\"patterns\":[{\"include\":\"#regexp\"}]},{\"begin\":\"((?<![_$[:alnum:])\\\\\\\\]]|\\\\\\\\+\\\\\\\\+|--|}|\\\\\\\\*\\\\\\\\/)|((?<=^return|[^\\\\\\\\._$[:alnum:]]return|^case|[^\\\\\\\\._$[:alnum:]]case))\\\\\\\\s*)\\\\\\\\/(?![\\\\\\\\/*])(?=(?:[^\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\\\[]|\\\\\\\\\\\\\\\\.|\\\\\\\\[([^\\\\\\\\]\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\])+\\\\\\\\/([dgimsuvy]+|(?![\\\\\\\\/\\\\\\\\*])|(?=\\\\\\\\/\\\\\\\\*))(?!\\\\\\\\s*[a-zA-Z0-9_$]))\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ts\"}},\"end\":\"(/)([dgimsuvy]*)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.ts\"},\"2\":{\"name\":\"keyword.other.ts\"}},\"name\":\"string.regexp.ts\",\"patterns\":[{\"include\":\"#regexp\"}]}]},\"regex-character-class\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[wWsSdDtrnvf]|\\\\\\\\.\",\"name\":\"constant.other.character-class.regexp\"},{\"match\":\"\\\\\\\\\\\\\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})\",\"name\":\"constant.character.numeric.regexp\"},{\"match\":\"\\\\\\\\\\\\\\\\c[A-Z]\",\"name\":\"constant.character.control.regexp\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.backslash.regexp\"}]},\"regexp\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[bB]|\\\\\\\\^|\\\\\\\\$\",\"name\":\"keyword.control.anchor.regexp\"},{\"captures\":{\"0\":{\"name\":\"keyword.other.back-reference.regexp\"},\"1\":{\"name\":\"variable.other.regexp\"}},\"match\":\"\\\\\\\\\\\\\\\\[1-9]\\\\\\\\d*|\\\\\\\\\\\\\\\\k<([a-zA-Z_$][\\\\\\\\w$]*)>\"},{\"match\":\"[?+*]|\\\\\\\\{(\\\\\\\\d+,\\\\\\\\d+|\\\\\\\\d+,|,\\\\\\\\d+|\\\\\\\\d+)\\\\\\\\}\\\\\\\\??\",\"name\":\"keyword.operator.quantifier.regexp\"},{\"match\":\"\\\\\\\\|\",\"name\":\"keyword.operator.or.regexp\"},{\"begin\":\"(\\\\\\\\()((\\\\\\\\?=)|(\\\\\\\\?!)|(\\\\\\\\?<=)|(\\\\\\\\?<!))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.group.regexp\"},\"2\":{\"name\":\"punctuation.definition.group.assertion.regexp\"},\"3\":{\"name\":\"meta.assertion.look-ahead.regexp\"},\"4\":{\"name\":\"meta.assertion.negative-look-ahead.regexp\"},\"5\":{\"name\":\"meta.assertion.look-behind.regexp\"},\"6\":{\"name\":\"meta.assertion.negative-look-behind.regexp\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.group.regexp\"}},\"name\":\"meta.group.assertion.regexp\",\"patterns\":[{\"include\":\"#regexp\"}]},{\"begin\":\"\\\\\\\\((?:(\\\\\\\\?:)|(?:\\\\\\\\?<([a-zA-Z_$][\\\\\\\\w$]*)>))?\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.regexp\"},\"1\":{\"name\":\"punctuation.definition.group.no-capture.regexp\"},\"2\":{\"name\":\"variable.other.regexp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.regexp\"}},\"name\":\"meta.group.regexp\",\"patterns\":[{\"include\":\"#regexp\"}]},{\"begin\":\"(\\\\\\\\[)(\\\\\\\\^)?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.character-class.regexp\"},\"2\":{\"name\":\"keyword.operator.negation.regexp\"}},\"end\":\"(\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.character-class.regexp\"}},\"name\":\"constant.other.character-class.set.regexp\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.character.numeric.regexp\"},\"2\":{\"name\":\"constant.character.control.regexp\"},\"3\":{\"name\":\"constant.character.escape.backslash.regexp\"},\"4\":{\"name\":\"constant.character.numeric.regexp\"},\"5\":{\"name\":\"constant.character.control.regexp\"},\"6\":{\"name\":\"constant.character.escape.backslash.regexp\"}},\"match\":\"(?:.|(\\\\\\\\\\\\\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\\\\\\\\\\\\\c[A-Z])|(\\\\\\\\\\\\\\\\.))\\\\\\\\-(?:[^\\\\\\\\]\\\\\\\\\\\\\\\\]|(\\\\\\\\\\\\\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\\\\\\\\\\\\\c[A-Z])|(\\\\\\\\\\\\\\\\.))\",\"name\":\"constant.other.character-class.range.regexp\"},{\"include\":\"#regex-character-class\"}]},{\"include\":\"#regex-character-class\"}]},\"return-type\":{\"patterns\":[{\"begin\":\"(?<=\\\\\\\\))\\\\\\\\s*(:)(?=\\\\\\\\s*\\\\\\\\S)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.ts\"}},\"end\":\"(?<![:|&])(?=$|^|[{};,]|//)\",\"name\":\"meta.return.type.ts\",\"patterns\":[{\"include\":\"#return-type-core\"}]},{\"begin\":\"(?<=\\\\\\\\))\\\\\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.ts\"}},\"end\":\"(?<![:|&])((?=[{};,]|//|^\\\\\\\\s*$)|((?<=\\\\\\\\S)(?=\\\\\\\\s*$)))\",\"name\":\"meta.return.type.ts\",\"patterns\":[{\"include\":\"#return-type-core\"}]}]},\"return-type-core\":{\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?<=[:|&])(?=\\\\\\\\s*\\\\\\\\{)\",\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#type-object\"}]},{\"include\":\"#type-predicate-operator\"},{\"include\":\"#type\"}]},\"shebang\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.ts\"}},\"match\":\"\\\\\\\\A(#!).*(?=$)\",\"name\":\"comment.line.shebang.ts\"},\"single-line-comment-consuming-line-ending\":{\"begin\":\"(^[ \\\\\\\\t]+)?((//)(?:\\\\\\\\s*((@)internal)(?=\\\\\\\\s|$))?)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.ts\"},\"2\":{\"name\":\"comment.line.double-slash.ts\"},\"3\":{\"name\":\"punctuation.definition.comment.ts\"},\"4\":{\"name\":\"storage.type.internaldeclaration.ts\"},\"5\":{\"name\":\"punctuation.decorator.internaldeclaration.ts\"}},\"contentName\":\"comment.line.double-slash.ts\",\"end\":\"(?=^)\"},\"statements\":{\"patterns\":[{\"include\":\"#declaration\"},{\"include\":\"#control-statement\"},{\"include\":\"#after-operator-block-as-object-literal\"},{\"include\":\"#decl-block\"},{\"include\":\"#label\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-semicolon\"},{\"include\":\"#string\"},{\"include\":\"#comment\"}]},\"string\":{\"patterns\":[{\"include\":\"#qstring-single\"},{\"include\":\"#qstring-double\"},{\"include\":\"#template\"}]},\"string-character-escape\":{\"match\":\"\\\\\\\\\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\\\\\\\{[0-9A-Fa-f]+\\\\\\\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)\",\"name\":\"constant.character.escape.ts\"},\"super-literal\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))super\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"variable.language.super.ts\"},\"support-function-call-identifiers\":{\"patterns\":[{\"include\":\"#literal\"},{\"include\":\"#support-objects\"},{\"include\":\"#object-identifiers\"},{\"include\":\"#punctuation-accessor\"},{\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))import(?=\\\\\\\\s*[\\\\\\\\(]\\\\\\\\s*[\\\\\\\\\\\\\"\\\\\\\\\\'\\\\\\\\`]))\",\"name\":\"keyword.operator.expression.import.ts\"}]},\"support-objects\":{\"patterns\":[{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(arguments)\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"variable.language.arguments.ts\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(Promise)\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"support.class.promise.ts\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.import.ts\"},\"2\":{\"name\":\"punctuation.accessor.ts\"},\"3\":{\"name\":\"punctuation.accessor.optional.ts\"},\"4\":{\"name\":\"support.variable.property.importmeta.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(import)\\\\\\\\s*(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(meta)\\\\\\\\b(?!\\\\\\\\$)\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.new.ts\"},\"2\":{\"name\":\"punctuation.accessor.ts\"},\"3\":{\"name\":\"punctuation.accessor.optional.ts\"},\"4\":{\"name\":\"support.variable.property.target.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(new)\\\\\\\\s*(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(target)\\\\\\\\b(?!\\\\\\\\$)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.ts\"},\"2\":{\"name\":\"punctuation.accessor.optional.ts\"},\"3\":{\"name\":\"support.variable.property.ts\"},\"4\":{\"name\":\"support.constant.ts\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(?:(?:(constructor|length|prototype|__proto__)\\\\\\\\b(?!\\\\\\\\$|\\\\\\\\s*(<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\())|(?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\\\\\\\b(?!\\\\\\\\$)))\"},{\"captures\":{\"1\":{\"name\":\"support.type.object.module.ts\"},\"2\":{\"name\":\"support.type.object.module.ts\"},\"3\":{\"name\":\"punctuation.accessor.ts\"},\"4\":{\"name\":\"punctuation.accessor.optional.ts\"},\"5\":{\"name\":\"support.type.object.module.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(exports)|(module)(?:(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))(exports|id|filename|loaded|parent|children))?)\\\\\\\\b(?!\\\\\\\\$)\"}]},\"switch-statement\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?=\\\\\\\\bswitch\\\\\\\\s*\\\\\\\\()\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"name\":\"switch-statement.expr.ts\",\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(switch)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.switch.ts\"},\"2\":{\"name\":\"meta.brace.round.ts\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"name\":\"switch-expression.expr.ts\",\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"end\":\"(?=\\\\\\\\})\",\"name\":\"switch-block.expr.ts\",\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(case|default(?=:))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.switch.ts\"}},\"end\":\"(?=:)\",\"name\":\"case-clause.expr.ts\",\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\"(:)\\\\\\\\s*(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"case-clause.expr.ts punctuation.definition.section.case-statement.ts\"},\"2\":{\"name\":\"meta.block.ts punctuation.definition.block.ts\"}},\"contentName\":\"meta.block.ts\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"meta.block.ts punctuation.definition.block.ts\"}},\"patterns\":[{\"include\":\"#statements\"}]},{\"captures\":{\"0\":{\"name\":\"case-clause.expr.ts punctuation.definition.section.case-statement.ts\"}},\"match\":\"(:)\"},{\"include\":\"#statements\"}]}]},\"template\":{\"patterns\":[{\"include\":\"#template-call\"},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)?(`)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.tagged-template.ts\"},\"2\":{\"name\":\"string.template.ts punctuation.definition.string.template.begin.ts\"}},\"contentName\":\"string.template.ts\",\"end\":\"`\",\"endCaptures\":{\"0\":{\"name\":\"string.template.ts punctuation.definition.string.template.end.ts\"}},\"patterns\":[{\"include\":\"#template-substitution-element\"},{\"include\":\"#string-character-escape\"}]}]},\"template-call\":{\"patterns\":[{\"begin\":\"(?=(([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*)*|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))(([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>)*(?<!=)\\\\\\\\>))*(?<!=)\\\\\\\\>)*(?<!=)>\\\\\\\\s*)?`)\",\"end\":\"(?=`)\",\"patterns\":[{\"begin\":\"(?=(([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*)*|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))\",\"end\":\"(?=(<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))(([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>)*(?<!=)\\\\\\\\>))*(?<!=)\\\\\\\\>)*(?<!=)>\\\\\\\\s*)?`)\",\"patterns\":[{\"include\":\"#support-function-call-identifiers\"},{\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"name\":\"entity.name.function.tagged-template.ts\"}]},{\"include\":\"#type-arguments\"}]},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)?\\\\\\\\s*(?=(<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))(([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>)*(?<!=)\\\\\\\\>))*(?<!=)\\\\\\\\>)*(?<!=)>\\\\\\\\s*)`)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.tagged-template.ts\"}},\"end\":\"(?=`)\",\"patterns\":[{\"include\":\"#type-arguments\"}]}]},\"template-substitution-element\":{\"begin\":\"\\\\\\\\$\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.begin.ts\"}},\"contentName\":\"meta.embedded.line.ts\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.end.ts\"}},\"name\":\"meta.template.expression.ts\",\"patterns\":[{\"include\":\"#expression\"}]},\"template-type\":{\"patterns\":[{\"include\":\"#template-call\"},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)?(`)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.tagged-template.ts\"},\"2\":{\"name\":\"string.template.ts punctuation.definition.string.template.begin.ts\"}},\"contentName\":\"string.template.ts\",\"end\":\"`\",\"endCaptures\":{\"0\":{\"name\":\"string.template.ts punctuation.definition.string.template.end.ts\"}},\"patterns\":[{\"include\":\"#template-type-substitution-element\"},{\"include\":\"#string-character-escape\"}]}]},\"template-type-substitution-element\":{\"begin\":\"\\\\\\\\$\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.begin.ts\"}},\"contentName\":\"meta.embedded.line.ts\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.end.ts\"}},\"name\":\"meta.template.expression.ts\",\"patterns\":[{\"include\":\"#type\"}]},\"ternary-expression\":{\"begin\":\"(?!\\\\\\\\?\\\\\\\\.\\\\\\\\s*[^[:digit:]])(\\\\\\\\?)(?!\\\\\\\\?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.ternary.ts\"}},\"end\":\"\\\\\\\\s*(:)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.ternary.ts\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"this-literal\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))this\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"variable.language.this.ts\"},\"type\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-string\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#type-primitive\"},{\"include\":\"#type-builtin-literals\"},{\"include\":\"#type-parameters\"},{\"include\":\"#type-tuple\"},{\"include\":\"#type-object\"},{\"include\":\"#type-operators\"},{\"include\":\"#type-conditional\"},{\"include\":\"#type-fn-type-parameters\"},{\"include\":\"#type-paren-or-function-parameters\"},{\"include\":\"#type-function-return-type\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*\"},{\"include\":\"#type-name\"}]},\"type-alias-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(type)\\\\\\\\b\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"storage.type.type.ts\"},\"4\":{\"name\":\"entity.name.type.alias.ts\"}},\"end\":\"(?=\\\\\\\\}|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"name\":\"meta.type.declaration.ts\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-parameters\"},{\"begin\":\"(=)\\\\\\\\s*(intrinsic)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.ts\"},\"2\":{\"name\":\"keyword.control.intrinsic.ts\"}},\"end\":\"(?=\\\\\\\\}|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#type\"}]},{\"begin\":\"(=)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.ts\"}},\"end\":\"(?=\\\\\\\\}|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#type\"}]}]},\"type-annotation\":{\"patterns\":[{\"begin\":\"(:)(?=\\\\\\\\s*\\\\\\\\S)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.ts\"}},\"end\":\"(?<![:|&])(?!\\\\\\\\s*[|&]\\\\\\\\s+)((?=^|[,);\\\\\\\\}\\\\\\\\]]|//)|(?==[^>])|((?<=[\\\\\\\\}>\\\\\\\\]\\\\\\\\)]|[_$[:alpha:]])\\\\\\\\s*(?=\\\\\\\\{)))\",\"name\":\"meta.type.annotation.ts\",\"patterns\":[{\"include\":\"#type\"}]},{\"begin\":\"(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.ts\"}},\"end\":\"(?<![:|&])((?=[,);\\\\\\\\}\\\\\\\\]]|\\\\\\\\/\\\\\\\\/)|(?==[^>])|(?=^\\\\\\\\s*$)|((?<=[\\\\\\\\}>\\\\\\\\]\\\\\\\\)]|[_$[:alpha:]])\\\\\\\\s*(?=\\\\\\\\{)))\",\"name\":\"meta.type.annotation.ts\",\"patterns\":[{\"include\":\"#type\"}]}]},\"type-arguments\":{\"begin\":\"\\\\\\\\<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.begin.ts\"}},\"end\":\"\\\\\\\\>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.end.ts\"}},\"name\":\"meta.type.parameters.ts\",\"patterns\":[{\"include\":\"#type-arguments-body\"}]},\"type-arguments-body\":{\"patterns\":[{\"captures\":{\"0\":{\"name\":\"keyword.operator.type.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(_)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\"},{\"include\":\"#type\"},{\"include\":\"#punctuation-comma\"}]},\"type-builtin-literals\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"support.type.builtin.ts\"},\"type-conditional\":{\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(extends)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.ts\"}},\"end\":\"(?<=:)\",\"patterns\":[{\"begin\":\"\\\\\\\\?\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.ternary.ts\"}},\"end\":\":\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.ternary.ts\"}},\"patterns\":[{\"include\":\"#type\"}]},{\"include\":\"#type\"}]}]},\"type-fn-type-parameters\":{\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(abstract)\\\\\\\\s+)?(new)\\\\\\\\b(?=\\\\\\\\s*\\\\\\\\<)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.type.constructor.ts storage.modifier.ts\"},\"2\":{\"name\":\"meta.type.constructor.ts keyword.control.new.ts\"}},\"end\":\"(?<=>)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-parameters\"}]},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(abstract)\\\\\\\\s+)?(new)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.ts\"},\"2\":{\"name\":\"keyword.control.new.ts\"}},\"end\":\"(?<=\\\\\\\\))\",\"name\":\"meta.type.constructor.ts\",\"patterns\":[{\"include\":\"#function-parameters\"}]},{\"begin\":\"((?=[(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>))))))\",\"end\":\"(?<=\\\\\\\\))\",\"name\":\"meta.type.function.ts\",\"patterns\":[{\"include\":\"#function-parameters\"}]}]},\"type-function-return-type\":{\"patterns\":[{\"begin\":\"(=>)(?=\\\\\\\\s*\\\\\\\\S)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.arrow.ts\"}},\"end\":\"(?<!=>)(?<![|&])(?=[,\\\\\\\\]\\\\\\\\)\\\\\\\\{\\\\\\\\}=;>:\\\\\\\\?]|//|$)\",\"name\":\"meta.type.function.return.ts\",\"patterns\":[{\"include\":\"#type-function-return-type-core\"}]},{\"begin\":\"=>\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.function.arrow.ts\"}},\"end\":\"(?<!=>)(?<![|&])((?=[,\\\\\\\\]\\\\\\\\)\\\\\\\\{\\\\\\\\}=;:\\\\\\\\?>]|//|^\\\\\\\\s*$)|((?<=\\\\\\\\S)(?=\\\\\\\\s*$)))\",\"name\":\"meta.type.function.return.ts\",\"patterns\":[{\"include\":\"#type-function-return-type-core\"}]}]},\"type-function-return-type-core\":{\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?<==>)(?=\\\\\\\\s*\\\\\\\\{)\",\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#type-object\"}]},{\"include\":\"#type-predicate-operator\"},{\"include\":\"#type\"}]},\"type-infer\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.expression.infer.ts\"},\"2\":{\"name\":\"entity.name.type.ts\"},\"3\":{\"name\":\"keyword.operator.expression.extends.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(infer)\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))(?:\\\\\\\\s+(extends)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))?\",\"name\":\"meta.type.infer.ts\"}]},\"type-name\":{\"patterns\":[{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(<)\",\"captures\":{\"1\":{\"name\":\"entity.name.type.module.ts\"},\"2\":{\"name\":\"punctuation.accessor.ts\"},\"3\":{\"name\":\"punctuation.accessor.optional.ts\"},\"4\":{\"name\":\"meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\"}},\"contentName\":\"meta.type.parameters.ts\",\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\"}},\"patterns\":[{\"include\":\"#type-arguments-body\"}]},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(<)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.type.ts\"},\"2\":{\"name\":\"meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\"}},\"contentName\":\"meta.type.parameters.ts\",\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\"}},\"patterns\":[{\"include\":\"#type-arguments-body\"}]},{\"captures\":{\"1\":{\"name\":\"entity.name.type.module.ts\"},\"2\":{\"name\":\"punctuation.accessor.ts\"},\"3\":{\"name\":\"punctuation.accessor.optional.ts\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\"},{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"entity.name.type.ts\"}]},\"type-object\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"name\":\"meta.object.type.ts\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#method-declaration\"},{\"include\":\"#indexer-declaration\"},{\"include\":\"#indexer-mapped-type-declaration\"},{\"include\":\"#field-declaration\"},{\"include\":\"#type-annotation\"},{\"begin\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.spread.ts\"}},\"end\":\"(?=\\\\\\\\}|;|,|$)|(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#type\"}]},{\"include\":\"#punctuation-comma\"},{\"include\":\"#punctuation-semicolon\"},{\"include\":\"#type\"}]},\"type-operators\":{\"patterns\":[{\"include\":\"#typeof-operator\"},{\"include\":\"#type-infer\"},{\"begin\":\"([&|])(?=\\\\\\\\s*\\\\\\\\{)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.type.ts\"}},\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#type-object\"}]},{\"begin\":\"[&|]\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.type.ts\"}},\"end\":\"(?=\\\\\\\\S)\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))keyof(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.expression.keyof.ts\"},{\"match\":\"(\\\\\\\\?|\\\\\\\\:)\",\"name\":\"keyword.operator.ternary.ts\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))import(?=\\\\\\\\s*\\\\\\\\()\",\"name\":\"keyword.operator.expression.import.ts\"}]},\"type-parameters\":{\"begin\":\"(<)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.typeparameters.begin.ts\"}},\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.typeparameters.end.ts\"}},\"name\":\"meta.type.parameters.ts\",\"patterns\":[{\"include\":\"#comment\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.modifier.ts\"},{\"include\":\"#type\"},{\"include\":\"#punctuation-comma\"},{\"match\":\"(=)(?!>)\",\"name\":\"keyword.operator.assignment.ts\"}]},\"type-paren-or-function-parameters\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"name\":\"meta.type.paren.cover.ts\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.modifier.ts\"},\"2\":{\"name\":\"keyword.operator.rest.ts\"},\"3\":{\"name\":\"entity.name.function.ts variable.language.this.ts\"},\"4\":{\"name\":\"entity.name.function.ts\"},\"5\":{\"name\":\"keyword.operator.optional.ts\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(public|private|protected|readonly)\\\\\\\\s+)?(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\\\\\\\s*(\\\\\\\\??)(?=\\\\\\\\s*(:\\\\\\\\s*((<)|([(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>)))))))|(:\\\\\\\\s*(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Function(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(:\\\\\\\\s*((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))))\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.ts\"},\"2\":{\"name\":\"keyword.operator.rest.ts\"},\"3\":{\"name\":\"variable.parameter.ts variable.language.this.ts\"},\"4\":{\"name\":\"variable.parameter.ts\"},\"5\":{\"name\":\"keyword.operator.optional.ts\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(public|private|protected|readonly)\\\\\\\\s+)?(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\\\\\\\s*(\\\\\\\\??)(?=:)\"},{\"include\":\"#type-annotation\"},{\"match\":\",\",\"name\":\"punctuation.separator.parameter.ts\"},{\"include\":\"#type\"}]},\"type-predicate-operator\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.type.asserts.ts\"},\"2\":{\"name\":\"variable.parameter.ts variable.language.this.ts\"},\"3\":{\"name\":\"variable.parameter.ts\"},\"4\":{\"name\":\"keyword.operator.expression.is.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(asserts)\\\\\\\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\\\\\\\s(is)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.type.asserts.ts\"},\"2\":{\"name\":\"variable.parameter.ts variable.language.this.ts\"},\"3\":{\"name\":\"variable.parameter.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(asserts)\\\\\\\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))asserts(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.type.asserts.ts\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))is(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.expression.is.ts\"}]},\"type-primitive\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"support.type.primitive.ts\"},\"type-string\":{\"patterns\":[{\"include\":\"#qstring-single\"},{\"include\":\"#qstring-double\"},{\"include\":\"#template-type\"}]},\"type-tuple\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.square.ts\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.square.ts\"}},\"name\":\"meta.type.tuple.ts\",\"patterns\":[{\"match\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"name\":\"keyword.operator.rest.ts\"},{\"captures\":{\"1\":{\"name\":\"entity.name.label.ts\"},\"2\":{\"name\":\"keyword.operator.optional.ts\"},\"3\":{\"name\":\"punctuation.separator.label.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(\\\\\\\\?)?\\\\\\\\s*(:)\"},{\"include\":\"#type\"},{\"include\":\"#punctuation-comma\"}]},\"typeof-operator\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))typeof(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.expression.typeof.ts\"}},\"end\":\"(?=[,);}\\\\\\\\]=>:&|{\\\\\\\\?]|(extends\\\\\\\\s+)|$|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#type-arguments\"},{\"include\":\"#expression\"}]},\"undefined-literal\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))undefined(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.undefined.ts\"},\"var-expr\":{\"patterns\":[{\"begin\":\"(?=(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(var|let)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))\",\"end\":\"(?!(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(var|let)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))|((?<!^let|[^\\\\\\\\._$[:alnum:]]let|^var|[^\\\\\\\\._$[:alnum:]]var)(?=\\\\\\\\s*$)))\",\"name\":\"meta.var.expr.ts\",\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(var|let)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"storage.type.ts\"}},\"end\":\"(?=\\\\\\\\S)\"},{\"include\":\"#destructuring-variable\"},{\"include\":\"#var-single-variable\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#comment\"},{\"begin\":\"(,)\\\\\\\\s*(?=$|\\\\\\\\/\\\\\\\\/)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.comma.ts\"}},\"end\":\"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|^\\\\\\\\s*$))|((?<=\\\\\\\\S)(?=\\\\\\\\s*$)))\",\"patterns\":[{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#comment\"},{\"include\":\"#destructuring-variable\"},{\"include\":\"#var-single-variable\"},{\"include\":\"#punctuation-comma\"}]},{\"include\":\"#punctuation-comma\"}]},{\"begin\":\"(?=(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(const(?!\\\\\\\\s+enum\\\\\\\\b))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"storage.type.ts\"}},\"end\":\"(?!(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(const(?!\\\\\\\\s+enum\\\\\\\\b))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))|((?<!^const|[^\\\\\\\\._$[:alnum:]]const)(?=\\\\\\\\s*$)))\",\"name\":\"meta.var.expr.ts\",\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(const(?!\\\\\\\\s+enum\\\\\\\\b))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"storage.type.ts\"}},\"end\":\"(?=\\\\\\\\S)\"},{\"include\":\"#destructuring-const\"},{\"include\":\"#var-single-const\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#comment\"},{\"begin\":\"(,)\\\\\\\\s*(?=$|\\\\\\\\/\\\\\\\\/)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.comma.ts\"}},\"end\":\"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|^\\\\\\\\s*$))|((?<=\\\\\\\\S)(?=\\\\\\\\s*$)))\",\"patterns\":[{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#comment\"},{\"include\":\"#destructuring-const\"},{\"include\":\"#var-single-const\"},{\"include\":\"#punctuation-comma\"}]},{\"include\":\"#punctuation-comma\"}]},{\"begin\":\"(?=(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b((?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"storage.type.ts\"}},\"end\":\"(?!(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b((?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))((?=;|}|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))|((?<!^using|[^\\\\\\\\._$[:alnum:]]using|^await\\\\\\\\s+using|[^\\\\\\\\._$[:alnum:]]await\\\\\\\\s+using)(?=\\\\\\\\s*$)))\",\"name\":\"meta.var.expr.ts\",\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b((?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"storage.type.ts\"}},\"end\":\"(?=\\\\\\\\S)\"},{\"include\":\"#var-single-const\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#comment\"},{\"begin\":\"(,)\\\\\\\\s*((?!\\\\\\\\S)|(?=\\\\\\\\/\\\\\\\\/))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.comma.ts\"}},\"end\":\"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|^\\\\\\\\s*$))|((?<=\\\\\\\\S)(?=\\\\\\\\s*$)))\",\"patterns\":[{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#comment\"},{\"include\":\"#var-single-const\"},{\"include\":\"#punctuation-comma\"}]},{\"include\":\"#punctuation-comma\"}]}]},\"var-single-const\":{\"patterns\":[{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)(?=\\\\\\\\s*(=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))))|(:\\\\\\\\s*((<)|([(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>)))))))|(:\\\\\\\\s*(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Function(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(:\\\\\\\\s*((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))))|(:\\\\\\\\s*(=>|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>))))))\",\"beginCaptures\":{\"1\":{\"name\":\"meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\"}},\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|(;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b)))\",\"name\":\"meta.var-single-variable.expr.ts\",\"patterns\":[{\"include\":\"#var-single-variable-type-annotation\"}]},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.definition.variable.ts variable.other.constant.ts\"}},\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|(;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b)))\",\"name\":\"meta.var-single-variable.expr.ts\",\"patterns\":[{\"include\":\"#var-single-variable-type-annotation\"}]}]},\"var-single-variable\":{\"patterns\":[{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\!)?(?=\\\\\\\\s*(=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))))|(:\\\\\\\\s*((<)|([(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>)))))))|(:\\\\\\\\s*(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Function(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(:\\\\\\\\s*((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))))|(:\\\\\\\\s*(=>|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>))))))\",\"beginCaptures\":{\"1\":{\"name\":\"meta.definition.variable.ts entity.name.function.ts\"},\"2\":{\"name\":\"keyword.operator.definiteassignment.ts\"}},\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|(;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b)))\",\"name\":\"meta.var-single-variable.expr.ts\",\"patterns\":[{\"include\":\"#var-single-variable-type-annotation\"}]},{\"begin\":\"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])(\\\\\\\\!)?\",\"beginCaptures\":{\"1\":{\"name\":\"meta.definition.variable.ts variable.other.constant.ts\"},\"2\":{\"name\":\"keyword.operator.definiteassignment.ts\"}},\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|(;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b)))\",\"name\":\"meta.var-single-variable.expr.ts\",\"patterns\":[{\"include\":\"#var-single-variable-type-annotation\"}]},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\!)?\",\"beginCaptures\":{\"1\":{\"name\":\"meta.definition.variable.ts variable.other.readwrite.ts\"},\"2\":{\"name\":\"keyword.operator.definiteassignment.ts\"}},\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|(;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b)))\",\"name\":\"meta.var-single-variable.expr.ts\",\"patterns\":[{\"include\":\"#var-single-variable-type-annotation\"}]}]},\"var-single-variable-type-annotation\":{\"patterns\":[{\"include\":\"#type-annotation\"},{\"include\":\"#string\"},{\"include\":\"#comment\"}]},\"variable-initializer\":{\"patterns\":[{\"begin\":\"(?<!=|!)(=)(?!=)(?=\\\\\\\\s*\\\\\\\\S)(?!\\\\\\\\s*.*=>\\\\\\\\s*$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.ts\"}},\"end\":\"(?=$|^|[,);}\\\\\\\\]]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+))\",\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\"(?<!=|!)(=)(?!=)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.ts\"}},\"end\":\"(?=[,);}\\\\\\\\]]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+))|(?=^\\\\\\\\s*$)|(?<![\\\\\\\\|\\\\\\\\&\\\\\\\\+\\\\\\\\-\\\\\\\\*\\\\\\\\/])(?<=\\\\\\\\S)(?<!=)(?=\\\\\\\\s*$)\",\"patterns\":[{\"include\":\"#expression\"}]}]}},\"scopeName\":\"source.ts\",\"aliases\":[\"ts\"]}')),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DjHMNizO.js",
    "content": "import e from\"./ySlJ1b_l.js\";import a from\"./Dj6nwHGl.js\";import n from\"./BAng5TT0.js\";import l from\"./B6W0miNI.js\";const r=Object.freeze(JSON.parse(`{\"displayName\":\"GraphQL\",\"fileTypes\":[\"graphql\",\"graphqls\",\"gql\",\"graphcool\"],\"name\":\"graphql\",\"patterns\":[{\"include\":\"#graphql\"}],\"repository\":{\"graphql\":{\"patterns\":[{\"include\":\"#graphql-comment\"},{\"include\":\"#graphql-description-docstring\"},{\"include\":\"#graphql-description-singleline\"},{\"include\":\"#graphql-fragment-definition\"},{\"include\":\"#graphql-directive-definition\"},{\"include\":\"#graphql-type-interface\"},{\"include\":\"#graphql-enum\"},{\"include\":\"#graphql-scalar\"},{\"include\":\"#graphql-union\"},{\"include\":\"#graphql-schema\"},{\"include\":\"#graphql-operation-def\"},{\"include\":\"#literal-quasi-embedded\"}]},\"graphql-ampersand\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.logical.graphql\"}},\"match\":\"\\\\\\\\s*(&)\"},\"graphql-arguments\":{\"begin\":\"\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"meta.brace.round.directive.graphql\"}},\"end\":\"\\\\\\\\s*(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"meta.brace.round.directive.graphql\"}},\"name\":\"meta.arguments.graphql\",\"patterns\":[{\"include\":\"#graphql-comment\"},{\"include\":\"#graphql-description-docstring\"},{\"include\":\"#graphql-description-singleline\"},{\"begin\":\"\\\\\\\\s*([_A-Za-z][_0-9A-Za-z]*)(?:\\\\\\\\s*(:))\",\"beginCaptures\":{\"1\":{\"name\":\"variable.parameter.graphql\"},\"2\":{\"name\":\"punctuation.colon.graphql\"}},\"end\":\"(?=\\\\\\\\s*(?:(?:([_A-Za-z][_0-9A-Za-z]*)\\\\\\\\s*(:))|\\\\\\\\)))|\\\\\\\\s*(,)\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.comma.graphql\"}},\"patterns\":[{\"include\":\"#graphql-comment\"},{\"include\":\"#graphql-description-docstring\"},{\"include\":\"#graphql-description-singleline\"},{\"include\":\"#graphql-directive\"},{\"include\":\"#graphql-value\"},{\"include\":\"#graphql-skip-newlines\"}]},{\"include\":\"#literal-quasi-embedded\"}]},\"graphql-boolean-value\":{\"captures\":{\"1\":{\"name\":\"constant.language.boolean.graphql\"}},\"match\":\"\\\\\\\\s*\\\\\\\\b(true|false)\\\\\\\\b\"},\"graphql-colon\":{\"captures\":{\"1\":{\"name\":\"punctuation.colon.graphql\"}},\"match\":\"\\\\\\\\s*(:)\"},\"graphql-comma\":{\"captures\":{\"1\":{\"name\":\"punctuation.comma.graphql\"}},\"match\":\"\\\\\\\\s*(,)\"},\"graphql-comment\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.graphql\"}},\"comment\":\"need to prefix comment space with a scope else Atom's reflow cmd doesn't work\",\"match\":\"(\\\\\\\\s*)(#).*\",\"name\":\"comment.line.graphql.js\"},{\"begin\":\"(\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.graphql\"}},\"end\":\"(\\\\\"\\\\\"\\\\\")\",\"name\":\"comment.line.graphql.js\"},{\"begin\":\"(\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.graphql\"}},\"end\":\"(\\\\\")\",\"name\":\"comment.line.graphql.js\"}]},\"graphql-description-docstring\":{\"begin\":\"\\\\\"\\\\\"\\\\\"\",\"end\":\"\\\\\"\\\\\"\\\\\"\",\"name\":\"comment.block.graphql\"},\"graphql-description-singleline\":{\"match\":\"#(?=([^\\\\\"]*\\\\\"[^\\\\\"]*\\\\\")*[^\\\\\"]*$).*$\",\"name\":\"comment.line.number-sign.graphql\"},\"graphql-directive\":{\"applyEndPatternLast\":1,\"begin\":\"\\\\\\\\s*((@)\\\\\\\\s*([_A-Za-z][_0-9A-Za-z]*))\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.directive.graphql\"}},\"end\":\"(?=.)\",\"patterns\":[{\"include\":\"#graphql-comment\"},{\"include\":\"#graphql-description-docstring\"},{\"include\":\"#graphql-description-singleline\"},{\"include\":\"#graphql-arguments\"},{\"include\":\"#literal-quasi-embedded\"},{\"include\":\"#graphql-skip-newlines\"}]},\"graphql-directive-definition\":{\"applyEndPatternLast\":1,\"begin\":\"\\\\\\\\s*(\\\\\\\\bdirective\\\\\\\\b)\\\\\\\\s*(@[_A-Za-z][_0-9A-Za-z]*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.directive.graphql\"},\"2\":{\"name\":\"entity.name.function.directive.graphql\"},\"3\":{\"name\":\"keyword.on.graphql\"},\"4\":{\"name\":\"support.type.graphql\"}},\"end\":\"(?=.)\",\"patterns\":[{\"include\":\"#graphql-variable-definitions\"},{\"applyEndPatternLast\":1,\"begin\":\"\\\\\\\\s*(\\\\\\\\bon\\\\\\\\b)\\\\\\\\s*([_A-Za-z]*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.on.graphql\"},\"2\":{\"name\":\"support.type.location.graphql\"}},\"end\":\"(?=.)\",\"patterns\":[{\"include\":\"#graphql-skip-newlines\"},{\"include\":\"#graphql-comment\"},{\"include\":\"#literal-quasi-embedded\"},{\"captures\":{\"2\":{\"name\":\"support.type.location.graphql\"}},\"match\":\"\\\\\\\\s*(\\\\\\\\|)\\\\\\\\s*([_A-Za-z]*)\"}]},{\"include\":\"#graphql-skip-newlines\"},{\"include\":\"#graphql-comment\"},{\"include\":\"#literal-quasi-embedded\"}]},\"graphql-enum\":{\"begin\":\"\\\\\\\\s*+\\\\\\\\b(enum)\\\\\\\\b\\\\\\\\s*([_A-Za-z][_0-9A-Za-z]*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.enum.graphql\"},\"2\":{\"name\":\"support.type.enum.graphql\"}},\"end\":\"(?<=})\",\"name\":\"meta.enum.graphql\",\"patterns\":[{\"begin\":\"\\\\\\\\s*({)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.operation.graphql\"}},\"end\":\"\\\\\\\\s*(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.operation.graphql\"}},\"name\":\"meta.type.object.graphql\",\"patterns\":[{\"include\":\"#graphql-object-type\"},{\"include\":\"#graphql-comment\"},{\"include\":\"#graphql-description-docstring\"},{\"include\":\"#graphql-description-singleline\"},{\"include\":\"#graphql-directive\"},{\"include\":\"#graphql-enum-value\"},{\"include\":\"#literal-quasi-embedded\"}]},{\"include\":\"#graphql-comment\"},{\"include\":\"#graphql-description-docstring\"},{\"include\":\"#graphql-description-singleline\"},{\"include\":\"#graphql-directive\"}]},\"graphql-enum-value\":{\"match\":\"\\\\\\\\s*(?!=\\\\\\\\b(true|false|null)\\\\\\\\b)([_A-Za-z][_0-9A-Za-z]*)\",\"name\":\"constant.character.enum.graphql\"},\"graphql-field\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"string.unquoted.alias.graphql\"},\"2\":{\"name\":\"punctuation.colon.graphql\"}},\"match\":\"\\\\\\\\s*([_A-Za-z][_0-9A-Za-z]*)\\\\\\\\s*(:)\"},{\"captures\":{\"1\":{\"name\":\"variable.graphql\"}},\"match\":\"\\\\\\\\s*([_A-Za-z][_0-9A-Za-z]*)\"},{\"include\":\"#graphql-arguments\"},{\"include\":\"#graphql-directive\"},{\"include\":\"#graphql-selection-set\"},{\"include\":\"#literal-quasi-embedded\"},{\"include\":\"#graphql-skip-newlines\"}]},\"graphql-float-value\":{\"captures\":{\"1\":{\"name\":\"constant.numeric.float.graphql\"}},\"match\":\"\\\\\\\\s*(-?(0|[1-9][0-9]*)(\\\\\\\\.[0-9]+)?((e|E)(\\\\\\\\+|-)?[0-9]+)?)\"},\"graphql-fragment-definition\":{\"begin\":\"\\\\\\\\s*(?:(\\\\\\\\bfragment\\\\\\\\b)\\\\\\\\s*([_A-Za-z][_0-9A-Za-z]*)?\\\\\\\\s*(?:(\\\\\\\\bon\\\\\\\\b)\\\\\\\\s*([_A-Za-z][_0-9A-Za-z]*)))\",\"captures\":{\"1\":{\"name\":\"keyword.fragment.graphql\"},\"2\":{\"name\":\"entity.name.fragment.graphql\"},\"3\":{\"name\":\"keyword.on.graphql\"},\"4\":{\"name\":\"support.type.graphql\"}},\"end\":\"(?<=})\",\"name\":\"meta.fragment.graphql\",\"patterns\":[{\"include\":\"#graphql-comment\"},{\"include\":\"#graphql-description-docstring\"},{\"include\":\"#graphql-description-singleline\"},{\"include\":\"#graphql-selection-set\"},{\"include\":\"#graphql-directive\"},{\"include\":\"#graphql-skip-newlines\"},{\"include\":\"#literal-quasi-embedded\"}]},\"graphql-fragment-spread\":{\"applyEndPatternLast\":1,\"begin\":\"\\\\\\\\s*(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*(?!\\\\\\\\bon\\\\\\\\b)([_A-Za-z][_0-9A-Za-z]*)\",\"captures\":{\"1\":{\"name\":\"keyword.operator.spread.graphql\"},\"2\":{\"name\":\"variable.fragment.graphql\"}},\"end\":\"(?=.)\",\"patterns\":[{\"include\":\"#graphql-comment\"},{\"include\":\"#graphql-description-docstring\"},{\"include\":\"#graphql-description-singleline\"},{\"include\":\"#graphql-selection-set\"},{\"include\":\"#graphql-directive\"},{\"include\":\"#literal-quasi-embedded\"},{\"include\":\"#graphql-skip-newlines\"}]},\"graphql-ignore-spaces\":{\"match\":\"\\\\\\\\s*\"},\"graphql-inline-fragment\":{\"applyEndPatternLast\":1,\"begin\":\"\\\\\\\\s*(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*(?:(\\\\\\\\bon\\\\\\\\b)\\\\\\\\s*([_A-Za-z][_0-9A-Za-z]*))?\",\"captures\":{\"1\":{\"name\":\"keyword.operator.spread.graphql\"},\"2\":{\"name\":\"keyword.on.graphql\"},\"3\":{\"name\":\"support.type.graphql\"}},\"end\":\"(?=.)\",\"patterns\":[{\"include\":\"#graphql-comment\"},{\"include\":\"#graphql-description-docstring\"},{\"include\":\"#graphql-description-singleline\"},{\"include\":\"#graphql-selection-set\"},{\"include\":\"#graphql-directive\"},{\"include\":\"#graphql-skip-newlines\"},{\"include\":\"#literal-quasi-embedded\"}]},\"graphql-input-types\":{\"patterns\":[{\"include\":\"#graphql-scalar-type\"},{\"captures\":{\"1\":{\"name\":\"support.type.graphql\"},\"2\":{\"name\":\"keyword.operator.nulltype.graphql\"}},\"match\":\"\\\\\\\\s*([_A-Za-z][_0-9A-Za-z]*)(?:\\\\\\\\s*(!))?\"},{\"begin\":\"\\\\\\\\s*(\\\\\\\\[)\",\"captures\":{\"1\":{\"name\":\"meta.brace.square.graphql\"},\"2\":{\"name\":\"keyword.operator.nulltype.graphql\"}},\"end\":\"\\\\\\\\s*(\\\\\\\\])(?:\\\\\\\\s*(!))?\",\"name\":\"meta.type.list.graphql\",\"patterns\":[{\"include\":\"#graphql-comment\"},{\"include\":\"#graphql-description-docstring\"},{\"include\":\"#graphql-description-singleline\"},{\"include\":\"#graphql-input-types\"},{\"include\":\"#graphql-comma\"},{\"include\":\"#literal-quasi-embedded\"}]}]},\"graphql-list-value\":{\"patterns\":[{\"begin\":\"\\\\\\\\s*+(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.brace.square.graphql\"}},\"end\":\"\\\\\\\\s*(\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"meta.brace.square.graphql\"}},\"name\":\"meta.listvalues.graphql\",\"patterns\":[{\"include\":\"#graphql-value\"}]}]},\"graphql-name\":{\"captures\":{\"1\":{\"name\":\"entity.name.function.graphql\"}},\"match\":\"\\\\\\\\s*([_A-Za-z][_0-9A-Za-z]*)\"},\"graphql-null-value\":{\"captures\":{\"1\":{\"name\":\"constant.language.null.graphql\"}},\"match\":\"\\\\\\\\s*\\\\\\\\b(null)\\\\\\\\b\"},\"graphql-object-field\":{\"captures\":{\"1\":{\"name\":\"constant.object.key.graphql\"},\"2\":{\"name\":\"string.unquoted.graphql\"},\"3\":{\"name\":\"punctuation.graphql\"}},\"match\":\"\\\\\\\\s*(([_A-Za-z][_0-9A-Za-z]*))\\\\\\\\s*(:)\"},\"graphql-object-value\":{\"patterns\":[{\"begin\":\"\\\\\\\\s*+({)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.brace.curly.graphql\"}},\"end\":\"\\\\\\\\s*(})\",\"endCaptures\":{\"1\":{\"name\":\"meta.brace.curly.graphql\"}},\"name\":\"meta.objectvalues.graphql\",\"patterns\":[{\"include\":\"#graphql-object-field\"},{\"include\":\"#graphql-value\"}]}]},\"graphql-operation-def\":{\"patterns\":[{\"include\":\"#graphql-query-mutation\"},{\"include\":\"#graphql-name\"},{\"include\":\"#graphql-variable-definitions\"},{\"include\":\"#graphql-directive\"},{\"include\":\"#graphql-selection-set\"}]},\"graphql-query-mutation\":{\"captures\":{\"1\":{\"name\":\"keyword.operation.graphql\"}},\"match\":\"\\\\\\\\s*\\\\\\\\b(query|mutation)\\\\\\\\b\"},\"graphql-scalar\":{\"captures\":{\"1\":{\"name\":\"keyword.scalar.graphql\"},\"2\":{\"name\":\"entity.scalar.graphql\"}},\"match\":\"\\\\\\\\s*\\\\\\\\b(scalar)\\\\\\\\b\\\\\\\\s*([_A-Za-z][_0-9A-Za-z]*)\"},\"graphql-scalar-type\":{\"captures\":{\"1\":{\"name\":\"support.type.builtin.graphql\"},\"2\":{\"name\":\"keyword.operator.nulltype.graphql\"}},\"match\":\"\\\\\\\\s*\\\\\\\\b(Int|Float|String|Boolean|ID)\\\\\\\\b(?:\\\\\\\\s*(!))?\"},\"graphql-schema\":{\"begin\":\"\\\\\\\\s*\\\\\\\\b(schema)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.schema.graphql\"}},\"end\":\"(?<=})\",\"patterns\":[{\"begin\":\"\\\\\\\\s*({)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.operation.graphql\"}},\"end\":\"\\\\\\\\s*(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.operation.graphql\"}},\"patterns\":[{\"begin\":\"\\\\\\\\s*([_A-Za-z][_0-9A-Za-z]*)(?=\\\\\\\\s*\\\\\\\\(|:)\",\"beginCaptures\":{\"1\":{\"name\":\"variable.arguments.graphql\"}},\"end\":\"(?=\\\\\\\\s*(([_A-Za-z][_0-9A-Za-z]*)\\\\\\\\s*(\\\\\\\\(|:)|(})))|\\\\\\\\s*(,)\",\"endCaptures\":{\"5\":{\"name\":\"punctuation.comma.graphql\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"support.type.graphql\"}},\"match\":\"\\\\\\\\s*([_A-Za-z][_0-9A-Za-z]*)\"},{\"include\":\"#graphql-comment\"},{\"include\":\"#graphql-description-docstring\"},{\"include\":\"#graphql-description-singleline\"},{\"include\":\"#graphql-colon\"},{\"include\":\"#graphql-skip-newlines\"}]},{\"include\":\"#graphql-comment\"},{\"include\":\"#graphql-description-docstring\"},{\"include\":\"#graphql-description-singleline\"},{\"include\":\"#graphql-skip-newlines\"}]},{\"include\":\"#graphql-comment\"},{\"include\":\"#graphql-description-docstring\"},{\"include\":\"#graphql-description-singleline\"},{\"include\":\"#graphql-directive\"},{\"include\":\"#graphql-skip-newlines\"}]},\"graphql-selection-set\":{\"begin\":\"\\\\\\\\s*({)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.operation.graphql\"}},\"end\":\"\\\\\\\\s*(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.operation.graphql\"}},\"name\":\"meta.selectionset.graphql\",\"patterns\":[{\"include\":\"#graphql-comment\"},{\"include\":\"#graphql-description-docstring\"},{\"include\":\"#graphql-description-singleline\"},{\"include\":\"#graphql-field\"},{\"include\":\"#graphql-fragment-spread\"},{\"include\":\"#graphql-inline-fragment\"},{\"include\":\"#graphql-comma\"},{\"include\":\"#native-interpolation\"},{\"include\":\"#literal-quasi-embedded\"}]},\"graphql-skip-newlines\":{\"match\":\"\\\\\\\\s*\\\\n\"},\"graphql-string-content\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[/'\\\\\"\\\\\\\\\\\\\\\\nrtbf]\",\"name\":\"constant.character.escape.graphql\"},{\"match\":\"\\\\\\\\\\\\\\\\u([0-9a-fA-F]{4})\",\"name\":\"constant.character.escape.graphql\"}]},\"graphql-string-value\":{\"begin\":\"\\\\\\\\s*+((\\\\\"))\",\"beginCaptures\":{\"1\":{\"name\":\"string.quoted.double.graphql\"},\"2\":{\"name\":\"punctuation.definition.string.begin.graphql\"}},\"contentName\":\"string.quoted.double.graphql\",\"end\":\"\\\\\\\\s*+(?:((\\\\\"))|(\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"string.quoted.double.graphql\"},\"2\":{\"name\":\"punctuation.definition.string.end.graphql\"},\"3\":{\"name\":\"invalid.illegal.newline.graphql\"}},\"patterns\":[{\"include\":\"#graphql-string-content\"},{\"include\":\"#literal-quasi-embedded\"}]},\"graphql-type-definition\":{\"begin\":\"\\\\\\\\s*([_A-Za-z][_0-9A-Za-z]*)(?=\\\\\\\\s*\\\\\\\\(|:)\",\"beginCaptures\":{\"1\":{\"name\":\"variable.graphql\"}},\"comment\":\"key (optionalArgs): Type\",\"end\":\"(?=\\\\\\\\s*(([_A-Za-z][_0-9A-Za-z]*)\\\\\\\\s*(\\\\\\\\(|:)|(})))|\\\\\\\\s*(,)\",\"endCaptures\":{\"5\":{\"name\":\"punctuation.comma.graphql\"}},\"patterns\":[{\"include\":\"#graphql-comment\"},{\"include\":\"#graphql-description-docstring\"},{\"include\":\"#graphql-description-singleline\"},{\"include\":\"#graphql-directive\"},{\"include\":\"#graphql-variable-definitions\"},{\"include\":\"#graphql-type-object\"},{\"include\":\"#graphql-colon\"},{\"include\":\"#graphql-input-types\"},{\"include\":\"#literal-quasi-embedded\"}]},\"graphql-type-interface\":{\"applyEndPatternLast\":1,\"begin\":\"\\\\\\\\s*\\\\\\\\b(?:(extends?)?\\\\\\\\b\\\\\\\\s*\\\\\\\\b(type)|(interface)|(input))\\\\\\\\b\\\\\\\\s*([_A-Za-z][_0-9A-Za-z]*)?\",\"captures\":{\"1\":{\"name\":\"keyword.type.graphql\"},\"2\":{\"name\":\"keyword.type.graphql\"},\"3\":{\"name\":\"keyword.interface.graphql\"},\"4\":{\"name\":\"keyword.input.graphql\"},\"5\":{\"name\":\"support.type.graphql\"}},\"end\":\"(?=.)\",\"name\":\"meta.type.interface.graphql\",\"patterns\":[{\"begin\":\"\\\\\\\\s*\\\\\\\\b(implements)\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.implements.graphql\"}},\"end\":\"\\\\\\\\s*(?={)\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"support.type.graphql\"}},\"match\":\"\\\\\\\\s*([_A-Za-z][_0-9A-Za-z]*)\"},{\"include\":\"#graphql-comment\"},{\"include\":\"#graphql-description-docstring\"},{\"include\":\"#graphql-description-singleline\"},{\"include\":\"#graphql-directive\"},{\"include\":\"#graphql-ampersand\"},{\"include\":\"#graphql-comma\"}]},{\"include\":\"#graphql-comment\"},{\"include\":\"#graphql-description-docstring\"},{\"include\":\"#graphql-description-singleline\"},{\"include\":\"#graphql-directive\"},{\"include\":\"#graphql-type-object\"},{\"include\":\"#literal-quasi-embedded\"},{\"include\":\"#graphql-ignore-spaces\"}]},\"graphql-type-object\":{\"begin\":\"\\\\\\\\s*({)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.operation.graphql\"}},\"end\":\"\\\\\\\\s*(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.operation.graphql\"}},\"name\":\"meta.type.object.graphql\",\"patterns\":[{\"include\":\"#graphql-comment\"},{\"include\":\"#graphql-description-docstring\"},{\"include\":\"#graphql-description-singleline\"},{\"include\":\"#graphql-object-type\"},{\"include\":\"#graphql-type-definition\"},{\"include\":\"#literal-quasi-embedded\"}]},\"graphql-union\":{\"applyEndPatternLast\":1,\"begin\":\"\\\\\\\\s*\\\\\\\\b(union)\\\\\\\\b\\\\\\\\s*([_A-Za-z][_0-9A-Za-z]*)\",\"captures\":{\"1\":{\"name\":\"keyword.union.graphql\"},\"2\":{\"name\":\"support.type.graphql\"}},\"end\":\"(?=.)\",\"patterns\":[{\"applyEndPatternLast\":1,\"begin\":\"\\\\\\\\s*(=)\\\\\\\\s*([_A-Za-z][_0-9A-Za-z]*)\",\"captures\":{\"1\":{\"name\":\"punctuation.assignment.graphql\"},\"2\":{\"name\":\"support.type.graphql\"}},\"end\":\"(?=.)\",\"patterns\":[{\"include\":\"#graphql-comment\"},{\"include\":\"#graphql-description-docstring\"},{\"include\":\"#graphql-description-singleline\"},{\"include\":\"#graphql-skip-newlines\"},{\"include\":\"#literal-quasi-embedded\"},{\"captures\":{\"1\":{\"name\":\"punctuation.or.graphql\"},\"2\":{\"name\":\"support.type.graphql\"}},\"match\":\"\\\\\\\\s*(\\\\\\\\|)\\\\\\\\s*([_A-Za-z][_0-9A-Za-z]*)\"}]},{\"include\":\"#graphql-comment\"},{\"include\":\"#graphql-description-docstring\"},{\"include\":\"#graphql-description-singleline\"},{\"include\":\"#graphql-skip-newlines\"},{\"include\":\"#literal-quasi-embedded\"}]},\"graphql-union-mark\":{\"captures\":{\"1\":{\"name\":\"punctuation.union.graphql\"}},\"match\":\"\\\\\\\\s*(\\\\\\\\|)\"},\"graphql-value\":{\"patterns\":[{\"include\":\"#graphql-comment\"},{\"include\":\"#graphql-description-docstring\"},{\"include\":\"#graphql-variable-name\"},{\"include\":\"#graphql-float-value\"},{\"include\":\"#graphql-string-value\"},{\"include\":\"#graphql-boolean-value\"},{\"include\":\"#graphql-null-value\"},{\"include\":\"#graphql-enum-value\"},{\"include\":\"#graphql-list-value\"},{\"include\":\"#graphql-object-value\"},{\"include\":\"#literal-quasi-embedded\"}]},\"graphql-variable-assignment\":{\"applyEndPatternLast\":1,\"begin\":\"\\\\\\\\s(=)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.assignment.graphql\"}},\"end\":\"(?=[\\\\n,)])\",\"patterns\":[{\"include\":\"#graphql-value\"}]},\"graphql-variable-definition\":{\"begin\":\"\\\\\\\\s*(\\\\\\\\$?[_A-Za-z][_0-9A-Za-z]*)(?=\\\\\\\\s*\\\\\\\\(|:)\",\"beginCaptures\":{\"1\":{\"name\":\"variable.parameter.graphql\"}},\"comment\":\"variable: type = value,.... which may be a list\",\"end\":\"(?=\\\\\\\\s*((\\\\\\\\$?[_A-Za-z][_0-9A-Za-z]*)\\\\\\\\s*(\\\\\\\\(|:)|(}|\\\\\\\\))))|\\\\\\\\s*(,)\",\"endCaptures\":{\"5\":{\"name\":\"punctuation.comma.graphql\"}},\"name\":\"meta.variables.graphql\",\"patterns\":[{\"include\":\"#graphql-comment\"},{\"include\":\"#graphql-description-docstring\"},{\"include\":\"#graphql-description-singleline\"},{\"include\":\"#graphql-directive\"},{\"include\":\"#graphql-colon\"},{\"include\":\"#graphql-input-types\"},{\"include\":\"#graphql-variable-assignment\"},{\"include\":\"#literal-quasi-embedded\"},{\"include\":\"#graphql-skip-newlines\"}]},\"graphql-variable-definitions\":{\"begin\":\"\\\\\\\\s*(\\\\\\\\()\",\"captures\":{\"1\":{\"name\":\"meta.brace.round.graphql\"}},\"end\":\"\\\\\\\\s*(\\\\\\\\))\",\"patterns\":[{\"include\":\"#graphql-comment\"},{\"include\":\"#graphql-description-docstring\"},{\"include\":\"#graphql-description-singleline\"},{\"include\":\"#graphql-variable-definition\"},{\"include\":\"#literal-quasi-embedded\"}]},\"graphql-variable-name\":{\"captures\":{\"1\":{\"name\":\"variable.graphql\"}},\"match\":\"\\\\\\\\s*(\\\\\\\\$[_A-Za-z][_0-9A-Za-z]*)\"},\"native-interpolation\":{\"begin\":\"\\\\\\\\s*(\\\\\\\\\\${)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.substitution.begin\"}},\"end\":\"(})\",\"endCaptures\":{\"1\":{\"name\":\"keyword.other.substitution.end\"}},\"name\":\"native.interpolation\",\"patterns\":[{\"include\":\"source.js\"},{\"include\":\"source.ts\"},{\"include\":\"source.js.jsx\"},{\"include\":\"source.tsx\"}]}},\"scopeName\":\"source.graphql\",\"embeddedLangs\":[\"javascript\",\"typescript\",\"jsx\",\"tsx\"],\"aliases\":[\"gql\"]}`)),c=[...e,...a,...n,...l,r];export{c as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DkBy-JyN.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Groovy\",\"name\":\"groovy\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.groovy\"}},\"match\":\"^(#!).+$\\\\\\\\n\",\"name\":\"comment.line.hashbang.groovy\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.package.groovy\"},\"2\":{\"name\":\"storage.modifier.package.groovy\"},\"3\":{\"name\":\"punctuation.terminator.groovy\"}},\"match\":\"^\\\\\\\\s*(package)\\\\\\\\b(?:\\\\\\\\s*([^ ;$]+)\\\\\\\\s*(;)?)?\",\"name\":\"meta.package.groovy\"},{\"begin\":\"(import static)\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.import.static.groovy\"}},\"captures\":{\"1\":{\"name\":\"keyword.other.import.groovy\"},\"2\":{\"name\":\"storage.modifier.import.groovy\"},\"3\":{\"name\":\"punctuation.terminator.groovy\"}},\"contentName\":\"storage.modifier.import.groovy\",\"end\":\"\\\\\\\\s*(?:$|(?=%>)(;))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.groovy\"}},\"name\":\"meta.import.groovy\",\"patterns\":[{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.separator.groovy\"},{\"match\":\"\\\\\\\\s\",\"name\":\"invalid.illegal.character_not_allowed_here.groovy\"}]},{\"begin\":\"(import)\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.import.groovy\"}},\"captures\":{\"1\":{\"name\":\"keyword.other.import.groovy\"},\"2\":{\"name\":\"storage.modifier.import.groovy\"},\"3\":{\"name\":\"punctuation.terminator.groovy\"}},\"contentName\":\"storage.modifier.import.groovy\",\"end\":\"\\\\\\\\s*(?:$|(?=%>)|(;))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.groovy\"}},\"name\":\"meta.import.groovy\",\"patterns\":[{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.separator.groovy\"},{\"match\":\"\\\\\\\\s\",\"name\":\"invalid.illegal.character_not_allowed_here.groovy\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.other.import.groovy\"},\"2\":{\"name\":\"keyword.other.import.static.groovy\"},\"3\":{\"name\":\"storage.modifier.import.groovy\"},\"4\":{\"name\":\"punctuation.terminator.groovy\"}},\"match\":\"^\\\\\\\\s*(import)(?:\\\\\\\\s+(static)\\\\\\\\s+)\\\\\\\\b(?:\\\\\\\\s*([^ ;$]+)\\\\\\\\s*(;)?)?\",\"name\":\"meta.import.groovy\"},{\"include\":\"#groovy\"}],\"repository\":{\"annotations\":{\"patterns\":[{\"begin\":\"(?<!\\\\\\\\.)(@[^ (]+)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.annotation.groovy\"},\"2\":{\"name\":\"punctuation.definition.annotation-arguments.begin.groovy\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.annotation-arguments.end.groovy\"}},\"name\":\"meta.declaration.annotation.groovy\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.other.key.groovy\"},\"2\":{\"name\":\"keyword.operator.assignment.groovy\"}},\"match\":\"(\\\\\\\\w*)\\\\\\\\s*(=)\"},{\"include\":\"#values\"},{\"match\":\",\",\"name\":\"punctuation.definition.seperator.groovy\"}]},{\"match\":\"(?<!\\\\\\\\.)@\\\\\\\\S+\",\"name\":\"storage.type.annotation.groovy\"}]},\"anonymous-classes-and-new\":{\"begin\":\"\\\\\\\\bnew\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.new.groovy\"}},\"end\":\"(?<=\\\\\\\\)|\\\\\\\\])(?!\\\\\\\\s*{)|(?<=})|(?=[;])|$\",\"patterns\":[{\"begin\":\"(\\\\\\\\w+)\\\\\\\\s*(?=\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.groovy\"}},\"end\":\"}|(?=\\\\\\\\s*(?:,|;|\\\\\\\\)))|$\",\"patterns\":[{\"begin\":\"\\\\\\\\[\",\"end\":\"\\\\\\\\]\",\"patterns\":[{\"include\":\"#groovy\"}]},{\"begin\":\"{\",\"end\":\"(?=})\",\"patterns\":[{\"include\":\"#groovy\"}]}]},{\"begin\":\"(?=\\\\\\\\w.*\\\\\\\\(?)\",\"end\":\"(?<=\\\\\\\\))|$\",\"patterns\":[{\"include\":\"#object-types\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.groovy\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#groovy\"}]}]},{\"begin\":\"{\",\"end\":\"}\",\"name\":\"meta.inner-class.groovy\",\"patterns\":[{\"include\":\"#class-body\"}]}]},\"braces\":{\"begin\":\"\\\\\\\\{\",\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"#groovy-code\"}]},\"class\":{\"begin\":\"(?=\\\\\\\\w?[\\\\\\\\w\\\\\\\\s]*(?:class|(?:@)?interface|enum)\\\\\\\\s+\\\\\\\\w+)\",\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.class.end.groovy\"}},\"name\":\"meta.definition.class.groovy\",\"patterns\":[{\"include\":\"#storage-modifiers\"},{\"include\":\"#comments\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.groovy\"},\"2\":{\"name\":\"entity.name.type.class.groovy\"}},\"match\":\"(class|(?:@)?interface|enum)\\\\\\\\s+(\\\\\\\\w+)\",\"name\":\"meta.class.identifier.groovy\"},{\"begin\":\"extends\",\"beginCaptures\":{\"0\":{\"name\":\"storage.modifier.extends.groovy\"}},\"end\":\"(?={|implements)\",\"name\":\"meta.definition.class.inherited.classes.groovy\",\"patterns\":[{\"include\":\"#object-types-inherited\"},{\"include\":\"#comments\"}]},{\"begin\":\"(implements)\\\\\\\\s\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.implements.groovy\"}},\"end\":\"(?=\\\\\\\\s*extends|\\\\\\\\{)\",\"name\":\"meta.definition.class.implemented.interfaces.groovy\",\"patterns\":[{\"include\":\"#object-types-inherited\"},{\"include\":\"#comments\"}]},{\"begin\":\"{\",\"end\":\"(?=})\",\"name\":\"meta.class.body.groovy\",\"patterns\":[{\"include\":\"#class-body\"}]}]},\"class-body\":{\"patterns\":[{\"include\":\"#enum-values\"},{\"include\":\"#constructors\"},{\"include\":\"#groovy\"}]},\"closures\":{\"begin\":\"\\\\\\\\{(?=.*?->)\",\"end\":\"\\\\\\\\}\",\"patterns\":[{\"begin\":\"(?<=\\\\\\\\{)(?=[^\\\\\\\\}]*?->)\",\"end\":\"->\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.groovy\"}},\"patterns\":[{\"begin\":\"(?!->)\",\"end\":\"(?=->)\",\"name\":\"meta.closure.parameters.groovy\",\"patterns\":[{\"begin\":\"(?!,|->)\",\"end\":\"(?=,|->)\",\"name\":\"meta.closure.parameter.groovy\",\"patterns\":[{\"begin\":\"=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.assignment.groovy\"}},\"end\":\"(?=,|->)\",\"name\":\"meta.parameter.default.groovy\",\"patterns\":[{\"include\":\"#groovy-code\"}]},{\"include\":\"#parameters\"}]}]}]},{\"begin\":\"(?=[^}])\",\"end\":\"(?=\\\\\\\\})\",\"patterns\":[{\"include\":\"#groovy-code\"}]}]},\"comment-block\":{\"begin\":\"/\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.groovy\"}},\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.groovy\"},\"comments\":{\"patterns\":[{\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.groovy\"}},\"match\":\"/\\\\\\\\*\\\\\\\\*/\",\"name\":\"comment.block.empty.groovy\"},{\"include\":\"text.html.javadoc\"},{\"include\":\"#comment-block\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.groovy\"}},\"match\":\"(//).*$\\\\\\\\n?\",\"name\":\"comment.line.double-slash.groovy\"}]},\"constants\":{\"patterns\":[{\"match\":\"\\\\\\\\b([A-Z][A-Z0-9_]+)\\\\\\\\b\",\"name\":\"constant.other.groovy\"},{\"match\":\"\\\\\\\\b(true|false|null)\\\\\\\\b\",\"name\":\"constant.language.groovy\"}]},\"constructors\":{\"applyEndPatternLast\":1,\"begin\":\"(?<=;|^)(?=\\\\\\\\s*(?:(?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final)\\\\\\\\s+)*[A-Z]\\\\\\\\w*\\\\\\\\()\",\"end\":\"}\",\"patterns\":[{\"include\":\"#method-content\"}]},\"enum-values\":{\"patterns\":[{\"begin\":\"(?<=;|^)\\\\\\\\s*\\\\\\\\b([A-Z0-9_]+)(?=\\\\\\\\s*(?:,|;|}|\\\\\\\\(|$))\",\"beginCaptures\":{\"1\":{\"name\":\"constant.enum.name.groovy\"}},\"end\":\",|;|(?=})|^(?!\\\\\\\\s*\\\\\\\\w+\\\\\\\\s*(?:,|$))\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"name\":\"meta.enum.value.groovy\",\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.definition.seperator.parameter.groovy\"},{\"include\":\"#groovy-code\"}]}]}]},\"groovy\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#class\"},{\"include\":\"#variables\"},{\"include\":\"#methods\"},{\"include\":\"#annotations\"},{\"include\":\"#groovy-code\"}]},\"groovy-code\":{\"patterns\":[{\"include\":\"#groovy-code-minus-map-keys\"},{\"include\":\"#map-keys\"}]},\"groovy-code-minus-map-keys\":{\"comment\":\"In some situations, maps can't be declared without enclosing []'s, \\\\n\\\\t\\\\t\\\\t\\\\ttherefore we create a collection of everything but that\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#annotations\"},{\"include\":\"#support-functions\"},{\"include\":\"#keyword-language\"},{\"include\":\"#values\"},{\"include\":\"#anonymous-classes-and-new\"},{\"include\":\"#keyword-operator\"},{\"include\":\"#types\"},{\"include\":\"#storage-modifiers\"},{\"include\":\"#parens\"},{\"include\":\"#closures\"},{\"include\":\"#braces\"}]},\"keyword\":{\"patterns\":[{\"include\":\"#keyword-operator\"},{\"include\":\"#keyword-language\"}]},\"keyword-language\":{\"patterns\":[{\"match\":\"\\\\\\\\b(try|catch|finally|throw)\\\\\\\\b\",\"name\":\"keyword.control.exception.groovy\"},{\"match\":\"\\\\\\\\b((?<!\\\\\\\\.)(?:return|break|continue|default|do|while|for|switch|if|else))\\\\\\\\b\",\"name\":\"keyword.control.groovy\"},{\"begin\":\"\\\\\\\\bcase\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.groovy\"}},\"end\":\":\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.case-terminator.groovy\"}},\"name\":\"meta.case.groovy\",\"patterns\":[{\"include\":\"#groovy-code-minus-map-keys\"}]},{\"begin\":\"\\\\\\\\b(assert)\\\\\\\\s\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.assert.groovy\"}},\"end\":\"$|;|}\",\"name\":\"meta.declaration.assertion.groovy\",\"patterns\":[{\"match\":\":\",\"name\":\"keyword.operator.assert.expression-seperator.groovy\"},{\"include\":\"#groovy-code-minus-map-keys\"}]},{\"match\":\"\\\\\\\\b(throws)\\\\\\\\b\",\"name\":\"keyword.other.throws.groovy\"}]},\"keyword-operator\":{\"patterns\":[{\"match\":\"\\\\\\\\b(as)\\\\\\\\b\",\"name\":\"keyword.operator.as.groovy\"},{\"match\":\"\\\\\\\\b(in)\\\\\\\\b\",\"name\":\"keyword.operator.in.groovy\"},{\"match\":\"\\\\\\\\?\\\\\\\\:\",\"name\":\"keyword.operator.elvis.groovy\"},{\"match\":\"\\\\\\\\*\\\\\\\\:\",\"name\":\"keyword.operator.spreadmap.groovy\"},{\"match\":\"\\\\\\\\.\\\\\\\\.\",\"name\":\"keyword.operator.range.groovy\"},{\"match\":\"\\\\\\\\->\",\"name\":\"keyword.operator.arrow.groovy\"},{\"match\":\"<<\",\"name\":\"keyword.operator.leftshift.groovy\"},{\"match\":\"(?<=\\\\\\\\S)\\\\\\\\.(?=\\\\\\\\S)\",\"name\":\"keyword.operator.navigation.groovy\"},{\"match\":\"(?<=\\\\\\\\S)\\\\\\\\?\\\\\\\\.(?=\\\\\\\\S)\",\"name\":\"keyword.operator.safe-navigation.groovy\"},{\"begin\":\"\\\\\\\\?\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.ternary.groovy\"}},\"end\":\"(?=$|\\\\\\\\)|}|])\",\"name\":\"meta.evaluation.ternary.groovy\",\"patterns\":[{\"match\":\":\",\"name\":\"keyword.operator.ternary.expression-seperator.groovy\"},{\"include\":\"#groovy-code-minus-map-keys\"}]},{\"match\":\"==~\",\"name\":\"keyword.operator.match.groovy\"},{\"match\":\"=~\",\"name\":\"keyword.operator.find.groovy\"},{\"match\":\"\\\\\\\\b(instanceof)\\\\\\\\b\",\"name\":\"keyword.operator.instanceof.groovy\"},{\"match\":\"(===|==|!=|<=|>=|<=>|<>|<|>|<<)\",\"name\":\"keyword.operator.comparison.groovy\"},{\"match\":\"=\",\"name\":\"keyword.operator.assignment.groovy\"},{\"match\":\"(\\\\\\\\-\\\\\\\\-|\\\\\\\\+\\\\\\\\+)\",\"name\":\"keyword.operator.increment-decrement.groovy\"},{\"match\":\"(\\\\\\\\-|\\\\\\\\+|\\\\\\\\*|\\\\\\\\/|%)\",\"name\":\"keyword.operator.arithmetic.groovy\"},{\"match\":\"(!|&&|\\\\\\\\|\\\\\\\\|)\",\"name\":\"keyword.operator.logical.groovy\"}]},\"language-variables\":{\"patterns\":[{\"match\":\"\\\\\\\\b(this|super)\\\\\\\\b\",\"name\":\"variable.language.groovy\"}]},\"map-keys\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.other.key.groovy\"},\"2\":{\"name\":\"punctuation.definition.seperator.key-value.groovy\"}},\"match\":\"(\\\\\\\\w+)\\\\\\\\s*(:)\"}]},\"method-call\":{\"begin\":\"([\\\\\\\\w$]+)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"meta.method.groovy\"},\"2\":{\"name\":\"punctuation.definition.method-parameters.begin.groovy\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.method-parameters.end.groovy\"}},\"name\":\"meta.method-call.groovy\",\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.definition.seperator.parameter.groovy\"},{\"include\":\"#groovy-code\"}]},\"method-content\":{\"patterns\":[{\"match\":\"\\\\\\\\s\"},{\"include\":\"#annotations\"},{\"begin\":\"(?=(?:\\\\\\\\w|<)[^\\\\\\\\(]*\\\\\\\\s+(?:[\\\\\\\\w$]|<)+\\\\\\\\s*\\\\\\\\()\",\"end\":\"(?=[\\\\\\\\w$]+\\\\\\\\s*\\\\\\\\()\",\"name\":\"meta.method.return-type.java\",\"patterns\":[{\"include\":\"#storage-modifiers\"},{\"include\":\"#types\"}]},{\"begin\":\"([\\\\\\\\w$]+)\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.java\"}},\"end\":\"\\\\\\\\)\",\"name\":\"meta.definition.method.signature.java\",\"patterns\":[{\"begin\":\"(?=[^)])\",\"end\":\"(?=\\\\\\\\))\",\"name\":\"meta.method.parameters.groovy\",\"patterns\":[{\"begin\":\"(?=[^,)])\",\"end\":\"(?=,|\\\\\\\\))\",\"name\":\"meta.method.parameter.groovy\",\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.definition.separator.groovy\"},{\"begin\":\"=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.assignment.groovy\"}},\"end\":\"(?=,|\\\\\\\\))\",\"name\":\"meta.parameter.default.groovy\",\"patterns\":[{\"include\":\"#groovy-code\"}]},{\"include\":\"#parameters\"}]}]}]},{\"begin\":\"(?=<)\",\"end\":\"(?=\\\\\\\\s)\",\"name\":\"meta.method.paramerised-type.groovy\",\"patterns\":[{\"begin\":\"<\",\"end\":\">\",\"name\":\"storage.type.parameters.groovy\",\"patterns\":[{\"include\":\"#types\"},{\"match\":\",\",\"name\":\"punctuation.definition.seperator.groovy\"}]}]},{\"begin\":\"throws\",\"beginCaptures\":{\"0\":{\"name\":\"storage.modifier.groovy\"}},\"end\":\"(?={|;)|^(?=\\\\\\\\s*(?:[^{\\\\\\\\s]|$))\",\"name\":\"meta.throwables.groovy\",\"patterns\":[{\"include\":\"#object-types\"}]},{\"begin\":\"{\",\"end\":\"(?=})\",\"name\":\"meta.method.body.java\",\"patterns\":[{\"include\":\"#groovy-code\"}]}]},\"methods\":{\"applyEndPatternLast\":1,\"begin\":\"(?:(?<=;|^|{)(?=\\\\\\\\s*(?:(?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final)|(?:def)|(?:(?:(?:void|boolean|byte|char|short|int|float|long|double)|(?:@?(?:[a-zA-Z]\\\\\\\\w*\\\\\\\\.)*[A-Z]+\\\\\\\\w*))[\\\\\\\\[\\\\\\\\]]*(?:<.*>)?))\\\\\\\\s+([^=]+\\\\\\\\s+)?\\\\\\\\w+\\\\\\\\s*\\\\\\\\())\",\"end\":\"}|(?=[^{])\",\"name\":\"meta.definition.method.groovy\",\"patterns\":[{\"include\":\"#method-content\"}]},\"nest_curly\":{\"begin\":\"\\\\\\\\{\",\"captures\":{\"0\":{\"name\":\"punctuation.section.scope.groovy\"}},\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"#nest_curly\"}]},\"numbers\":{\"patterns\":[{\"match\":\"((0(x|X)[0-9a-fA-F]*)|(\\\\\\\\+|-)?\\\\\\\\b(([0-9]+\\\\\\\\.?[0-9]*)|(\\\\\\\\.[0-9]+))((e|E)(\\\\\\\\+|-)?[0-9]+)?)([LlFfUuDdg]|UL|ul)?\\\\\\\\b\",\"name\":\"constant.numeric.groovy\"}]},\"object-types\":{\"patterns\":[{\"begin\":\"\\\\\\\\b((?:[a-z]\\\\\\\\w*\\\\\\\\.)*(?:[A-Z]+\\\\\\\\w*[a-z]+\\\\\\\\w*|UR[LI]))<\",\"end\":\">|[^\\\\\\\\w\\\\\\\\s,\\\\\\\\?<\\\\\\\\[\\\\\\\\]]\",\"name\":\"storage.type.generic.groovy\",\"patterns\":[{\"include\":\"#object-types\"},{\"begin\":\"<\",\"comment\":\"This is just to support <>'s with no actual type prefix\",\"end\":\">|[^\\\\\\\\w\\\\\\\\s,\\\\\\\\[\\\\\\\\]<]\",\"name\":\"storage.type.generic.groovy\"}]},{\"begin\":\"\\\\\\\\b((?:[a-z]\\\\\\\\w*\\\\\\\\.)*[A-Z]+\\\\\\\\w*[a-z]+\\\\\\\\w*)(?=\\\\\\\\[)\",\"end\":\"(?=[^\\\\\\\\]\\\\\\\\s])\",\"name\":\"storage.type.object.array.groovy\",\"patterns\":[{\"begin\":\"\\\\\\\\[\",\"end\":\"\\\\\\\\]\",\"patterns\":[{\"include\":\"#groovy\"}]}]},{\"match\":\"\\\\\\\\b(?:[a-zA-Z]\\\\\\\\w*\\\\\\\\.)*(?:[A-Z]+\\\\\\\\w*[a-z]+\\\\\\\\w*|UR[LI])\\\\\\\\b\",\"name\":\"storage.type.groovy\"}]},\"object-types-inherited\":{\"patterns\":[{\"begin\":\"\\\\\\\\b((?:[a-zA-Z]\\\\\\\\w*\\\\\\\\.)*[A-Z]+\\\\\\\\w*[a-z]+\\\\\\\\w*)<\",\"end\":\">|[^\\\\\\\\w\\\\\\\\s,\\\\\\\\?<\\\\\\\\[\\\\\\\\]]\",\"name\":\"entity.other.inherited-class.groovy\",\"patterns\":[{\"include\":\"#object-types-inherited\"},{\"begin\":\"<\",\"comment\":\"This is just to support <>'s with no actual type prefix\",\"end\":\">|[^\\\\\\\\w\\\\\\\\s,\\\\\\\\[\\\\\\\\]<]\",\"name\":\"storage.type.generic.groovy\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.operator.dereference.groovy\"}},\"match\":\"\\\\\\\\b(?:[a-zA-Z]\\\\\\\\w*(\\\\\\\\.))*[A-Z]+\\\\\\\\w*[a-z]+\\\\\\\\w*\\\\\\\\b\",\"name\":\"entity.other.inherited-class.groovy\"}]},\"parameters\":{\"patterns\":[{\"include\":\"#annotations\"},{\"include\":\"#storage-modifiers\"},{\"include\":\"#types\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"variable.parameter.method.groovy\"}]},\"parens\":{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#groovy-code\"}]},\"primitive-arrays\":{\"patterns\":[{\"match\":\"\\\\\\\\b(?:void|boolean|byte|char|short|int|float|long|double)(\\\\\\\\[\\\\\\\\])*\\\\\\\\b\",\"name\":\"storage.type.primitive.array.groovy\"}]},\"primitive-types\":{\"patterns\":[{\"match\":\"\\\\\\\\b(?:void|boolean|byte|char|short|int|float|long|double)\\\\\\\\b\",\"name\":\"storage.type.primitive.groovy\"}]},\"regexp\":{\"patterns\":[{\"begin\":\"/(?=[^/]+/([^>]|$))\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.regexp.begin.groovy\"}},\"end\":\"/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.regexp.end.groovy\"}},\"name\":\"string.regexp.groovy\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.groovy\"}]},{\"begin\":\"~\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.regexp.begin.groovy\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.regexp.end.groovy\"}},\"name\":\"string.regexp.compiled.groovy\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.groovy\"}]}]},\"storage-modifiers\":{\"patterns\":[{\"match\":\"\\\\\\\\b(private|protected|public)\\\\\\\\b\",\"name\":\"storage.modifier.access-control.groovy\"},{\"match\":\"\\\\\\\\b(static)\\\\\\\\b\",\"name\":\"storage.modifier.static.groovy\"},{\"match\":\"\\\\\\\\b(final)\\\\\\\\b\",\"name\":\"storage.modifier.final.groovy\"},{\"match\":\"\\\\\\\\b(native|synchronized|abstract|threadsafe|transient)\\\\\\\\b\",\"name\":\"storage.modifier.other.groovy\"}]},\"string-quoted-double\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.groovy\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.groovy\"}},\"name\":\"string.quoted.double.groovy\",\"patterns\":[{\"include\":\"#string-quoted-double-contents\"}]},\"string-quoted-double-contents\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.groovy\"},{\"applyEndPatternLast\":1,\"begin\":\"\\\\\\\\$\\\\\\\\w\",\"end\":\"(?=\\\\\\\\W)\",\"name\":\"variable.other.interpolated.groovy\",\"patterns\":[{\"match\":\"\\\\\\\\w\",\"name\":\"variable.other.interpolated.groovy\"},{\"match\":\"\\\\\\\\.\",\"name\":\"keyword.other.dereference.groovy\"}]},{\"begin\":\"\\\\\\\\$\\\\\\\\{\",\"captures\":{\"0\":{\"name\":\"punctuation.section.embedded.groovy\"}},\"end\":\"\\\\\\\\}\",\"name\":\"source.groovy.embedded.source\",\"patterns\":[{\"include\":\"#nest_curly\"}]}]},\"string-quoted-double-multiline\":{\"begin\":\"\\\\\"\\\\\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.groovy\"}},\"end\":\"\\\\\"\\\\\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.groovy\"}},\"name\":\"string.quoted.double.multiline.groovy\",\"patterns\":[{\"include\":\"#string-quoted-double-contents\"}]},\"string-quoted-single\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.groovy\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.groovy\"}},\"name\":\"string.quoted.single.groovy\",\"patterns\":[{\"include\":\"#string-quoted-single-contents\"}]},\"string-quoted-single-contents\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.groovy\"}]},\"string-quoted-single-multiline\":{\"begin\":\"'''\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.groovy\"}},\"end\":\"'''\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.groovy\"}},\"name\":\"string.quoted.single.multiline.groovy\",\"patterns\":[{\"include\":\"#string-quoted-single-contents\"}]},\"strings\":{\"patterns\":[{\"include\":\"#string-quoted-double-multiline\"},{\"include\":\"#string-quoted-single-multiline\"},{\"include\":\"#string-quoted-double\"},{\"include\":\"#string-quoted-single\"},{\"include\":\"#regexp\"}]},\"structures\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.structure.begin.groovy\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.structure.end.groovy\"}},\"name\":\"meta.structure.groovy\",\"patterns\":[{\"include\":\"#groovy-code\"},{\"match\":\",\",\"name\":\"punctuation.definition.separator.groovy\"}]},\"support-functions\":{\"patterns\":[{\"match\":\"\\\\\\\\b(?:sprintf|print(?:f|ln)?)\\\\\\\\b\",\"name\":\"support.function.print.groovy\"},{\"match\":\"\\\\\\\\b(?:shouldFail|fail(?:NotEquals)?|ass(?:ume|ert(?:S(?:cript|ame)|N(?:ot(?:Same|Null)|ull)|Contains|T(?:hat|oString|rue)|Inspect|Equals|False|Length|ArrayEquals)))\\\\\\\\b\",\"name\":\"support.function.testing.groovy\"}]},\"types\":{\"patterns\":[{\"match\":\"\\\\\\\\b(def)\\\\\\\\b\",\"name\":\"storage.type.def.groovy\"},{\"include\":\"#primitive-types\"},{\"include\":\"#primitive-arrays\"},{\"include\":\"#object-types\"}]},\"values\":{\"patterns\":[{\"include\":\"#language-variables\"},{\"include\":\"#strings\"},{\"include\":\"#numbers\"},{\"include\":\"#constants\"},{\"include\":\"#types\"},{\"include\":\"#structures\"},{\"include\":\"#method-call\"}]},\"variables\":{\"applyEndPatternLast\":1,\"patterns\":[{\"begin\":\"(?:(?=(?:(?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final)|(?:def)|(?:void|boolean|byte|char|short|int|float|long|double)|(?:(?:[a-z]\\\\\\\\w*\\\\\\\\.)*[A-Z]+\\\\\\\\w*))\\\\\\\\s+[\\\\\\\\w\\\\\\\\d_<>\\\\\\\\[\\\\\\\\],\\\\\\\\s]+(?:=|$)))\",\"end\":\";|$\",\"name\":\"meta.definition.variable.groovy\",\"patterns\":[{\"match\":\"\\\\\\\\s\"},{\"captures\":{\"1\":{\"name\":\"constant.variable.groovy\"}},\"match\":\"([A-Z_0-9]+)\\\\\\\\s+(?=\\\\\\\\=)\"},{\"captures\":{\"1\":{\"name\":\"meta.definition.variable.name.groovy\"}},\"match\":\"(\\\\\\\\w[^\\\\\\\\s,]*)\\\\\\\\s+(?=\\\\\\\\=)\"},{\"begin\":\"=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.assignment.groovy\"}},\"end\":\"$\",\"patterns\":[{\"include\":\"#groovy-code\"}]},{\"captures\":{\"1\":{\"name\":\"meta.definition.variable.name.groovy\"}},\"match\":\"(\\\\\\\\w[^\\\\\\\\s=]*)(?=\\\\\\\\s*($|;))\"},{\"include\":\"#groovy-code\"}]}]}},\"scopeName\":\"source.groovy\"}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DkLiglaE.js",
    "content": "const a=Object.freeze(JSON.parse(`{\"displayName\":\"Smalltalk\",\"fileTypes\":[\"st\"],\"foldingStartMarker\":\"\\\\\\\\[\",\"foldingStopMarker\":\"^\\\\\\\\s*\\\\\\\\]|^\\\\\\\\s\\\\\\\\]\",\"name\":\"smalltalk\",\"patterns\":[{\"match\":\"\\\\\\\\$.\",\"name\":\"constant.character.smalltalk\"},{\"match\":\"\\\\\\\\b(class)\\\\\\\\b\",\"name\":\"storage.type.$1.smalltalk\"},{\"match\":\"\\\\\\\\b(extend|super|self)\\\\\\\\b\",\"name\":\"storage.modifier.$1.smalltalk\"},{\"match\":\"\\\\\\\\b(yourself|new|Smalltalk)\\\\\\\\b\",\"name\":\"keyword.control.$1.smalltalk\"},{\"match\":\":=\",\"name\":\"keyword.operator.assignment.smalltalk\"},{\"comment\":\"Parse the variable declaration like: |a b c|\",\"match\":\"/^:\\\\\\\\w*\\\\\\\\s*\\\\\\\\|/\",\"name\":\"constant.other.block.smalltalk\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.instance-variables.begin.smalltalk\"},\"2\":{\"patterns\":[{\"match\":\"\\\\\\\\w+\",\"name\":\"support.type.variable.declaration.smalltalk\"}]},\"3\":{\"name\":\"punctuation.definition.instance-variables.end.smalltalk\"}},\"match\":\"(\\\\\\\\|)(\\\\\\\\s*\\\\\\\\w[\\\\\\\\w ]*)(\\\\\\\\|)\"},{\"captures\":{\"1\":{\"patterns\":[{\"match\":\":\\\\\\\\w+\",\"name\":\"entity.name.function.block.smalltalk\"}]}},\"comment\":\"Parse the blocks like: [ :a :b | ...... ]\",\"match\":\"\\\\\\\\[((\\\\\\\\s+|:\\\\\\\\w+)*)\\\\\\\\|\"},{\"include\":\"#numeric\"},{\"match\":\"<(?!<|=)|>(?!<|=|>)|<=|>=|=|==|~=|~~|>>|\\\\\\\\^\",\"name\":\"keyword.operator.comparison.smalltalk\"},{\"match\":\"(\\\\\\\\*|\\\\\\\\+|\\\\\\\\-|/|\\\\\\\\\\\\\\\\)\",\"name\":\"keyword.operator.arithmetic.smalltalk\"},{\"match\":\"(?<=[ \\\\\\\\t])!+|\\\\\\\\bnot\\\\\\\\b|&|\\\\\\\\band\\\\\\\\b|\\\\\\\\||\\\\\\\\bor\\\\\\\\b\",\"name\":\"keyword.operator.logical.smalltalk\"},{\"comment\":\"Fake reserved word -> main Smalltalk messages\",\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(ensure|resume|retry|signal)\\\\\\\\b(?![?!])\",\"name\":\"keyword.control.smalltalk\"},{\"comment\":\"Fake conditionals. Smalltalk Methods.\",\"match\":\"ifCurtailed:|ifTrue:|ifFalse:|whileFalse:|whileTrue:\",\"name\":\"keyword.control.conditionals.smalltalk\"},{\"captures\":{\"1\":{\"name\":\"entity.other.inherited-class.smalltalk\"},\"3\":{\"name\":\"keyword.control.smalltalk\"},\"4\":{\"name\":\"entity.name.type.class.smalltalk\"}},\"match\":\"(\\\\\\\\w+)(\\\\\\\\s+(subclass:))\\\\\\\\s*(\\\\\\\\w*)\",\"name\":\"meta.class.smalltalk\"},{\"begin\":\"\\\\\"\",\"beginCaptures\":[{\"name\":\"punctuation.definition.comment.begin.smalltalk\"}],\"end\":\"\\\\\"\",\"endCaptures\":[{\"name\":\"punctuation.definition.comment.end.smalltalk\"}],\"name\":\"comment.block.smalltalk\"},{\"match\":\"\\\\\\\\b(true|false)\\\\\\\\b\",\"name\":\"constant.language.boolean.smalltalk\"},{\"match\":\"\\\\\\\\b(nil)\\\\\\\\b\",\"name\":\"constant.language.nil.smalltalk\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.constant.smalltalk\"}},\"comment\":\"messages/methods\",\"match\":\"(?>[a-zA-Z_]\\\\\\\\w*(?>[?!])?)(:)(?!:)\",\"name\":\"constant.other.messages.smalltalk\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.constant.smalltalk\"}},\"comment\":\"symbols\",\"match\":\"(#)[a-zA-Z_][a-zA-Z0-9_:]*\",\"name\":\"constant.other.symbol.smalltalk\"},{\"begin\":\"#\\\\\\\\[\",\"beginCaptures\":[{\"name\":\"punctuation.definition.constant.begin.smalltalk\"}],\"end\":\"\\\\\\\\]\",\"endCaptures\":[{\"name\":\"punctuation.definition.constant.end.smalltalk\"}],\"name\":\"meta.array.byte.smalltalk\",\"patterns\":[{\"match\":\"[0-9]+(r[a-zA-Z0-9]+)?\",\"name\":\"constant.numeric.integer.smalltalk\"},{\"match\":\"[^\\\\\\\\s\\\\\\\\]]+\",\"name\":\"invalid.illegal.character-not-allowed-here.smalltalk\"}]},{\"begin\":\"#\\\\\\\\(\",\"beginCaptures\":[{\"name\":\"punctuation.definition.constant.begin.smalltalk\"}],\"comment\":\"Array Constructor\",\"end\":\"\\\\\\\\)\",\"endCaptures\":[{\"name\":\"punctuation.definition.constant.end.smalltalk\"}],\"name\":\"constant.other.array.smalltalk\"},{\"begin\":\"'\",\"beginCaptures\":[{\"name\":\"punctuation.definition.string.begin.smalltalk\"}],\"end\":\"'\",\"endCaptures\":[{\"name\":\"punctuation.definition.string.end.smalltalk\"}],\"name\":\"string.quoted.single.smalltalk\"},{\"match\":\"\\\\\\\\b[A-Z]\\\\\\\\w*\\\\\\\\b\",\"name\":\"variable.other.constant.smalltalk\"}],\"repository\":{\"numeric\":{\"patterns\":[{\"match\":\"(?<!\\\\\\\\w)[0-9]+\\\\\\\\.[0-9]+s[0-9]*\",\"name\":\"constant.numeric.float.scaled.smalltalk\"},{\"match\":\"(?<!\\\\\\\\w)[0-9]+\\\\\\\\.[0-9]+([edq]-?[0-9]+)?\",\"name\":\"constant.numeric.float.smalltalk\"},{\"match\":\"(?<!\\\\\\\\w)-?[0-9]+r[a-zA-Z0-9]+\",\"name\":\"constant.numeric.integer.radix.smalltalk\"},{\"match\":\"(?<!\\\\\\\\w)-?[0-9]+([edq]-?[0-9]+)?\",\"name\":\"constant.numeric.integer.smalltalk\"}]}},\"scopeName\":\"source.smalltalk\"}`)),t=[a];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DmDlXweU.js",
    "content": "import{a1 as s}from\"./CU_MfyYc.js\";/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var a=Object.defineProperty,c=Object.getOwnPropertyDescriptor,p=Object.getOwnPropertyNames,g=Object.prototype.hasOwnProperty,l=(t,e,o,i)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let n of p(e))!g.call(t,n)&&n!==o&&a(t,n,{get:()=>e[n],enumerable:!(i=c(e,n))||i.enumerable});return t},d=(t,e,o)=>(l(t,e,\"default\"),o),r={};d(r,s);var x={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],onEnterRules:[{beforeText:/^\\s*\\/\\*\\*(?!\\/)([^\\*]|\\*(?!\\/))*$/,afterText:/^\\s*\\*\\/$/,action:{indentAction:r.languages.IndentAction.IndentOutdent,appendText:\" * \"}},{beforeText:/^\\s*\\/\\*\\*(?!\\/)([^\\*]|\\*(?!\\/))*$/,action:{indentAction:r.languages.IndentAction.None,appendText:\" * \"}},{beforeText:/^(\\t|(\\ \\ ))*\\ \\*(\\ ([^\\*]|\\*(?!\\/))*)?$/,action:{indentAction:r.languages.IndentAction.None,appendText:\"* \"}},{beforeText:/^(\\t|(\\ \\ ))*\\ \\*\\/\\s*$/,action:{indentAction:r.languages.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"',notIn:[\"string\"]},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]},{open:\"`\",close:\"`\",notIn:[\"string\",\"comment\"]},{open:\"/**\",close:\" */\",notIn:[\"string\"]}],folding:{markers:{start:new RegExp(\"^\\\\s*//\\\\s*#?region\\\\b\"),end:new RegExp(\"^\\\\s*//\\\\s*#?endregion\\\\b\")}}},b={defaultToken:\"invalid\",tokenPostfix:\".ts\",keywords:[\"abstract\",\"any\",\"as\",\"asserts\",\"bigint\",\"boolean\",\"break\",\"case\",\"catch\",\"class\",\"continue\",\"const\",\"constructor\",\"debugger\",\"declare\",\"default\",\"delete\",\"do\",\"else\",\"enum\",\"export\",\"extends\",\"false\",\"finally\",\"for\",\"from\",\"function\",\"get\",\"if\",\"implements\",\"import\",\"in\",\"infer\",\"instanceof\",\"interface\",\"is\",\"keyof\",\"let\",\"module\",\"namespace\",\"never\",\"new\",\"null\",\"number\",\"object\",\"out\",\"package\",\"private\",\"protected\",\"public\",\"override\",\"readonly\",\"require\",\"global\",\"return\",\"satisfies\",\"set\",\"static\",\"string\",\"super\",\"switch\",\"symbol\",\"this\",\"throw\",\"true\",\"try\",\"type\",\"typeof\",\"undefined\",\"unique\",\"unknown\",\"var\",\"void\",\"while\",\"with\",\"yield\",\"async\",\"await\",\"of\"],operators:[\"<=\",\">=\",\"==\",\"!=\",\"===\",\"!==\",\"=>\",\"+\",\"-\",\"**\",\"*\",\"/\",\"%\",\"++\",\"--\",\"<<\",\"</\",\">>\",\">>>\",\"&\",\"|\",\"^\",\"!\",\"~\",\"&&\",\"||\",\"??\",\"?\",\":\",\"=\",\"+=\",\"-=\",\"*=\",\"**=\",\"/=\",\"%=\",\"<<=\",\">>=\",\">>>=\",\"&=\",\"|=\",\"^=\",\"@\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\\d+(_+\\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,regexpctl:/[(){}\\[\\]\\$\\^|\\-*+?\\.]/,regexpesc:/\\\\(?:[bBdDfnrstvwWn0\\\\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,tokenizer:{root:[[/[{}]/,\"delimiter.bracket\"],{include:\"common\"}],common:[[/#?[a-z_$][\\w$]*/,{cases:{\"@keywords\":\"keyword\",\"@default\":\"identifier\"}}],[/[A-Z][\\w\\$]*/,\"type.identifier\"],{include:\"@whitespace\"},[/\\/(?=([^\\\\\\/]|\\\\.)+\\/([dgimsuy]*)(\\s*)(\\.|;|,|\\)|\\]|\\}|$))/,{token:\"regexp\",bracket:\"@open\",next:\"@regexp\"}],[/[()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/!(?=([^=]|$))/,\"delimiter\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/(@digits)[eE]([\\-+]?(@digits))?/,\"number.float\"],[/(@digits)\\.(@digits)([eE][\\-+]?(@digits))?/,\"number.float\"],[/0[xX](@hexdigits)n?/,\"number.hex\"],[/0[oO]?(@octaldigits)n?/,\"number.octal\"],[/0[bB](@binarydigits)n?/,\"number.binary\"],[/(@digits)n?/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/'([^'\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",\"@string_double\"],[/'/,\"string\",\"@string_single\"],[/`/,\"string\",\"@string_backtick\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\/\\*\\*(?!\\/)/,\"comment.doc\",\"@jsdoc\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],jsdoc:[[/[^\\/*]+/,\"comment.doc\"],[/\\*\\//,\"comment.doc\",\"@pop\"],[/[\\/*]/,\"comment.doc\"]],regexp:[[/(\\{)(\\d+(?:,\\d*)?)(\\})/,[\"regexp.escape.control\",\"regexp.escape.control\",\"regexp.escape.control\"]],[/(\\[)(\\^?)(?=(?:[^\\]\\\\\\/]|\\\\.)+)/,[\"regexp.escape.control\",{token:\"regexp.escape.control\",next:\"@regexrange\"}]],[/(\\()(\\?:|\\?=|\\?!)/,[\"regexp.escape.control\",\"regexp.escape.control\"]],[/[()]/,\"regexp.escape.control\"],[/@regexpctl/,\"regexp.escape.control\"],[/[^\\\\\\/]/,\"regexp\"],[/@regexpesc/,\"regexp.escape\"],[/\\\\\\./,\"regexp.invalid\"],[/(\\/)([dgimsuy]*)/,[{token:\"regexp\",bracket:\"@close\",next:\"@pop\"},\"keyword.other\"]]],regexrange:[[/-/,\"regexp.escape.control\"],[/\\^/,\"regexp.invalid\"],[/@regexpesc/,\"regexp.escape\"],[/[^\\]]/,\"regexp\"],[/\\]/,{token:\"regexp.escape.control\",next:\"@pop\",bracket:\"@close\"}]],string_double:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string\",\"@pop\"]],string_single:[[/[^\\\\']+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/'/,\"string\",\"@pop\"]],string_backtick:[[/\\$\\{/,{token:\"delimiter.bracket\",next:\"@bracketCounting\"}],[/[^\\\\`$]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/`/,\"string\",\"@pop\"]],bracketCounting:[[/\\{/,\"delimiter.bracket\",\"@bracketCounting\"],[/\\}/,\"delimiter.bracket\",\"@pop\"],{include:\"common\"}]}};export{x as conf,b as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/DmdQbaLT.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\",notIn:[\"string\"]}],surroundingPairs:[{open:\"(\",close:\")\"},{open:\"[\",close:\"]\"},{open:\"`\",close:\"`\"}],folding:{markers:{start:new RegExp(\"^\\\\s*<!--\\\\s*#?region\\\\b.*-->\"),end:new RegExp(\"^\\\\s*<!--\\\\s*#?endregion\\\\b.*-->\")}}},n={defaultToken:\"\",tokenPostfix:\".rst\",control:/[\\\\`*_\\[\\]{}()#+\\-\\.!]/,escapes:/\\\\(?:@control)/,empty:[\"area\",\"base\",\"basefont\",\"br\",\"col\",\"frame\",\"hr\",\"img\",\"input\",\"isindex\",\"link\",\"meta\",\"param\"],alphanumerics:/[A-Za-z0-9]/,simpleRefNameWithoutBq:/(?:@alphanumerics[-_+:.]*@alphanumerics)+|(?:@alphanumerics+)/,simpleRefName:/(?:`@phrase`|@simpleRefNameWithoutBq)/,phrase:/@simpleRefNameWithoutBq(?:\\s@simpleRefNameWithoutBq)*/,citationName:/[A-Za-z][A-Za-z0-9-_.]*/,blockLiteralStart:/(?:[!\"#$%&'()*+,-./:;<=>?@\\[\\]^_`{|}~]|[\\s])/,precedingChars:/(?:[ -:/'\"<([{])/,followingChars:/(?:[ -.,:;!?/'\")\\]}>]|$)/,punctuation:/(=|-|~|`|#|\"|\\^|\\+|\\*|:|\\.|'|_|\\+)/,tokenizer:{root:[[/^(@punctuation{3,}$){1,1}?/,\"keyword\"],[/^\\s*([\\*\\-+‣•]|[a-zA-Z0-9]+\\.|\\([a-zA-Z0-9]+\\)|[a-zA-Z0-9]+\\))\\s/,\"keyword\"],[/([ ]::)\\s*$/,\"keyword\",\"@blankLineOfLiteralBlocks\"],[/(::)\\s*$/,\"keyword\",\"@blankLineOfLiteralBlocks\"],{include:\"@tables\"},{include:\"@explicitMarkupBlocks\"},{include:\"@inlineMarkup\"}],explicitMarkupBlocks:[{include:\"@citations\"},{include:\"@footnotes\"},[/^(\\.\\.\\s)(@simpleRefName)(::\\s)(.*)$/,[{token:\"\",next:\"subsequentLines\"},\"keyword\",\"\",\"\"]],[/^(\\.\\.)(\\s+)(_)(@simpleRefName)(:)(\\s+)(.*)/,[{token:\"\",next:\"hyperlinks\"},\"\",\"\",\"string.link\",\"\",\"\",\"string.link\"]],[/^((?:(?:\\.\\.)(?:\\s+))?)(__)(:)(\\s+)(.*)/,[{token:\"\",next:\"subsequentLines\"},\"\",\"\",\"\",\"string.link\"]],[/^(__\\s+)(.+)/,[\"\",\"string.link\"]],[/^(\\.\\.)( \\|)([^| ]+[^|]*[^| ]*)(\\| )(@simpleRefName)(:: .*)/,[{token:\"\",next:\"subsequentLines\"},\"\",\"string.link\",\"\",\"keyword\",\"\"],\"@rawBlocks\"],[/(\\|)([^| ]+[^|]*[^| ]*)(\\|_{0,2})/,[\"\",\"string.link\",\"\"]],[/^(\\.\\.)([ ].*)$/,[{token:\"\",next:\"@comments\"},\"comment\"]]],inlineMarkup:[{include:\"@citationsReference\"},{include:\"@footnotesReference\"},[/(@simpleRefName)(_{1,2})/,[\"string.link\",\"\"]],[/(`)([^<`]+\\s+)(<)(.*)(>)(`)(_)/,[\"\",\"string.link\",\"\",\"string.link\",\"\",\"\",\"\"]],[/\\*\\*([^\\\\*]|\\*(?!\\*))+\\*\\*/,\"strong\"],[/\\*[^*]+\\*/,\"emphasis\"],[/(``)((?:[^`]|\\`(?!`))+)(``)/,[\"\",\"keyword\",\"\"]],[/(__\\s+)(.+)/,[\"\",\"keyword\"]],[/(:)((?:@simpleRefNameWithoutBq)?)(:`)([^`]+)(`)/,[\"\",\"keyword\",\"\",\"\",\"\"]],[/(`)([^`]+)(`:)((?:@simpleRefNameWithoutBq)?)(:)/,[\"\",\"\",\"\",\"keyword\",\"\"]],[/(`)([^`]+)(`)/,\"\"],[/(_`)(@phrase)(`)/,[\"\",\"string.link\",\"\"]]],citations:[[/^(\\.\\.\\s+\\[)((?:@citationName))(\\]\\s+)(.*)/,[{token:\"\",next:\"@subsequentLines\"},\"string.link\",\"\",\"\"]]],citationsReference:[[/(\\[)(@citationName)(\\]_)/,[\"\",\"string.link\",\"\"]]],footnotes:[[/^(\\.\\.\\s+\\[)((?:[0-9]+))(\\]\\s+.*)/,[{token:\"\",next:\"@subsequentLines\"},\"string.link\",\"\"]],[/^(\\.\\.\\s+\\[)((?:#@simpleRefName?))(\\]\\s+)(.*)/,[{token:\"\",next:\"@subsequentLines\"},\"string.link\",\"\",\"\"]],[/^(\\.\\.\\s+\\[)((?:\\*))(\\]\\s+)(.*)/,[{token:\"\",next:\"@subsequentLines\"},\"string.link\",\"\",\"\"]]],footnotesReference:[[/(\\[)([0-9]+)(\\])(_)/,[\"\",\"string.link\",\"\",\"\"]],[/(\\[)(#@simpleRefName?)(\\])(_)/,[\"\",\"string.link\",\"\",\"\"]],[/(\\[)(\\*)(\\])(_)/,[\"\",\"string.link\",\"\",\"\"]]],blankLineOfLiteralBlocks:[[/^$/,\"\",\"@subsequentLinesOfLiteralBlocks\"],[/^.*$/,\"\",\"@pop\"]],subsequentLinesOfLiteralBlocks:[[/(@blockLiteralStart+)(.*)/,[\"keyword\",\"\"]],[/^(?!blockLiteralStart)/,\"\",\"@popall\"]],subsequentLines:[[/^[\\s]+.*/,\"\"],[/^(?!\\s)/,\"\",\"@pop\"]],hyperlinks:[[/^[\\s]+.*/,\"string.link\"],[/^(?!\\s)/,\"\",\"@pop\"]],comments:[[/^[\\s]+.*/,\"comment\"],[/^(?!\\s)/,\"\",\"@pop\"]],tables:[[/\\+-[+-]+/,\"keyword\"],[/\\+=[+=]+/,\"keyword\"]]}};export{e as conf,n as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/DmtRXgke.js",
    "content": "import{d as L,r as m,c as j,J as ie,C as b,i as s,f as _,x as n,D as S,g as v,j as t,v as re,t as I,G as C,a6 as de,a4 as ue,S as ce,B as me,w as F,a7 as _e,h as O,e as pe,E as R,F as ve,O as fe,k as ye,a9 as ge,aa as xe,_ as he,ab as be,a8 as we,s as A,I as ke}from\"./CU_MfyYc.js\";import{_ as Se}from\"./CvhZxjKo.js\";import{_ as ze}from\"./Cw4FHd9N.js\";import{_ as $e}from\"./BuljS_lV.js\";import{_ as Ve}from\"./CD20-hSi.js\";import{u as Ce}from\"./Cwg39VG_.js\";import\"./DP9I38t9.js\";import\"./DK27pemE.js\";const Ue={class:\"bg-white dark:bg-gray-800/50 border border-gray-200 dark:border-gray-700 rounded-lg overflow-hidden shadow-sm\"},De={class:\"flex flex-col\"},Te={class:\"font-medium text-gray-900 dark:text-white truncate\"},Oe={class:\"text-sm text-gray-500 dark:text-gray-400\"},Me={class:\"flex flex-col items-center\"},Ne={class:\"text-sm font-medium text-gray-900 dark:text-white\"},je={class:\"flex justify-center\"},qe={class:\"flex justify-center\"},Be={key:0,class:\"text-sm font-medium text-gray-900 dark:text-white\"},Fe={key:1,class:\"text-sm text-gray-400 dark:text-gray-500\"},Pe={class:\"text-sm text-gray-500 dark:text-gray-400\"},Re={class:\"flex items-center justify-end gap-1\"},Ae=L({__name:\"OptimizationSessionsTable\",props:{sessions:{}},emits:[\"notes\",\"load\",\"delete\"],setup(P){const w=P,z=m({column:\"updated_at\",direction:\"desc\"}),D=[{key:\"strategy\",label:\"Strategy\"},{key:\"progress\",label:\"Progress\",class:\"text-center\"},{key:\"status\",label:\"Status\",class:\"text-center\"},{key:\"best_score\",label:\"Best Score\",class:\"text-center\"},{key:\"updated_at\",label:\"Date\",sortable:!0},{key:\"actions\",label:\"\",class:\"w-32 text-right\"}],d=j(()=>w.sessions.map(o=>{var p,k,c,u,f,l;return{id:o.id,title:o.title,strategy:((u=(c=(k=(p=o.state)==null?void 0:p.form)==null?void 0:k.routes)==null?void 0:c[0])==null?void 0:u.strategy)||\"N/A\",exchange:((l=(f=o.state)==null?void 0:f.form)==null?void 0:l.exchange)||\"N/A\",completed_trials:o.completed_trials||0,total_trials:o.total_trials||0,status:o.status,best_score:o.best_score,updated_at:ie.timestampToReadableDateTime(o.updated_at),rawSession:o}}));function $(o){switch(o){case\"finished\":return\"green\";case\"running\":return\"blue\";case\"stopped\":return\"red\";case\"terminated\":return\"yellow\";default:return\"gray\"}}return(o,p)=>{const k=ze,c=I,u=re,f=$e;return v(),b(\"div\",Ue,[s(f,{sort:n(z),\"onUpdate:sort\":p[0]||(p[0]=l=>S(z)?z.value=l:null),rows:n(d),columns:D,class:\"w-full\",ui:{td:{base:\"whitespace-nowrap\"},th:{base:\"whitespace-nowrap\"}}},{\"strategy-data\":_(({row:l})=>[t(\"div\",De,[t(\"span\",Te,C(l.title||l.strategy||\"Untitled\"),1),t(\"span\",Oe,C(l.exchange),1)])]),\"progress-data\":_(({row:l})=>[t(\"div\",Me,[t(\"span\",Ne,C(l.completed_trials)+\" / \"+C(l.total_trials),1),p[1]||(p[1]=t(\"span\",{class:\"text-xs text-gray-500 dark:text-gray-400\"},\" trials \",-1))])]),\"status-data\":_(({row:l})=>[t(\"div\",je,[s(k,{color:$(l.status),label:l.status,variant:\"soft\",size:\"xs\"},null,8,[\"color\",\"label\"])])]),\"best_score-data\":_(({row:l})=>[t(\"div\",qe,[l.best_score!==null&&l.best_score!==void 0?(v(),b(\"span\",Be,C(typeof l.best_score==\"number\"?l.best_score.toFixed(2):l.best_score),1)):(v(),b(\"span\",Fe,\" N/A \"))])]),\"updated_at-data\":_(({row:l})=>[t(\"span\",Pe,C(l.updated_at),1)]),\"actions-data\":_(({row:l})=>[t(\"div\",Re,[s(u,{text:\"Add Note\"},{default:_(()=>[s(c,{size:\"xs\",variant:\"ghost\",color:\"gray\",icon:\"i-heroicons-pencil-square\",onClick:y=>o.$emit(\"notes\",l.rawSession)},null,8,[\"onClick\"])]),_:2},1024),s(u,{text:\"Load Session\"},{default:_(()=>[s(c,{size:\"xs\",variant:\"ghost\",color:\"gray\",icon:\"i-heroicons-arrow-right\",onClick:y=>o.$emit(\"load\",l.id)},null,8,[\"onClick\"])]),_:2},1024),s(u,{text:\"Delete\"},{default:_(()=>[s(c,{size:\"xs\",variant:\"ghost\",color:\"red\",icon:\"i-heroicons-trash\",onClick:y=>o.$emit(\"delete\",l.id)},null,8,[\"onClick\"])]),_:2},1024)])]),_:1},8,[\"sort\",\"rows\"])])}}}),Le={class:\"container mx-auto px-4 pt-16 pb-6 max-w-7xl\"},Ie={class:\"mb-6 flex flex-col gap-4 md:flex-row md:items-center md:justify-between\"},He={class:\"flex items-center gap-3\"},Ee={class:\"flex flex-col gap-3 sm:flex-row sm:items-center\"},Ge={key:0,class:\"space-y-4\"},Je={class:\"bg-white dark:bg-gray-800 shadow rounded-lg overflow-hidden\"},We={class:\"divide-y divide-gray-200 dark:divide-gray-700\"},Ke={class:\"hidden md:grid md:grid-cols-12 gap-4 items-center\"},Qe={class:\"col-span-3\"},Xe={class:\"col-span-2 text-center\"},Ye={class:\"col-span-2 text-center\"},Ze={class:\"col-span-2 text-center\"},et={class:\"col-span-2\"},tt={class:\"col-span-1 flex justify-end gap-2\"},st={class:\"md:hidden space-y-3\"},lt={class:\"flex items-start justify-between\"},at={class:\"flex-1\"},ot={class:\"flex items-center justify-between\"},nt={class:\"flex items-center justify-between\"},it={class:\"flex gap-1\"},rt={key:1,class:\"space-y-4\"},dt={key:0,class:\"flex justify-center\"},ut={key:2,class:\"text-center py-12\"},ct={class:\"text-gray-400 dark:text-gray-500 text-sm\"},mt={class:\"p-6\"},_t={class:\"mb-6\"},pt={class:\"flex justify-end gap-3\"},M=50,kt=L({__name:\"history\",setup(P){Ce({title:\"Optimization History - Jesse\"});const w=de(),z=ue(),D=ce(),d=m([]),$=m(!1),o=m(null),p=m(!1),k=m(!1),c=m(!0),u=m(0),f=m(!1),l=m(null),y=m(!1),q=m(!1),U=m(30),V=j({get:()=>w.query.title||\"\",set:a=>{const e={...w.query};a?e.title=a:delete e.title,z.push({query:e})}}),g=j({get:()=>w.query.status||\"all\",set:a=>{const e={...w.query};a===\"all\"?delete e.status:e.status=a,z.push({query:e})}}),x=j({get:()=>w.query.dateRange||\"all_time\",set:a=>{const e={...w.query};a===\"all_time\"?delete e.dateRange:e.dateRange=a,z.push({query:e})}}),H=[{label:\"All Statuses\",value:\"all\"},{label:\"Running\",value:\"running\"},{label:\"Finished\",value:\"finished\"},{label:\"Terminated\",value:\"terminated\"},{label:\"Stopped\",value:\"stopped\"}],E=[{label:\"All Time\",value:\"all_time\"},{label:\"Last 7 Days\",value:\"7_days\"},{label:\"Last 30 Days\",value:\"30_days\"},{label:\"Last 90 Days\",value:\"90_days\"}],G=[{label:\"1 day\",value:1},{label:\"7 days\",value:7},{label:\"30 days\",value:30},{label:\"3 months\",value:90},{label:\"6 months\",value:180},{label:\"1 year\",value:365},{label:\"2 years\",value:730},{label:\"All existing sessions\",value:-1}];me(()=>{setTimeout(()=>{T()},20)});const J=_e(()=>{u.value=0,d.value=[],c.value=!0,T()},300);F(V,()=>{J()}),F(g,()=>{u.value=0,d.value=[],c.value=!0,T()}),F(x,()=>{u.value=0,d.value=[],c.value=!0,T()});async function T(){p.value=!0;try{const a=await D.getSessions(M,u.value,{title_search:V.value||void 0,status_filter:g.value===\"all\"?void 0:g.value,date_filter:x.value===\"all_time\"?void 0:x.value});u.value===0?d.value=a:d.value.push(...a),c.value=a.length===M}catch(a){O(a)}finally{p.value=!1}}async function W(){k.value=!0,u.value+=M;try{const a=await D.getSessions(M,u.value,{title_search:V.value||void 0,status_filter:g.value===\"all\"?void 0:g.value,date_filter:x.value===\"all_time\"?void 0:x.value});d.value.push(...a),c.value=a.length===M}catch(a){O(a)}finally{k.value=!1}}function K(a){o.value=a,$.value=!0}async function Q(){if(o.value)try{const{data:a,error:e}=await we(`/optimization/sessions/${o.value}/remove`,{},!0);if(e.value){O(e.value);return}d.value=d.value.filter(h=>h.id!==o.value),A(\"success\",\"Session deleted successfully\"),$.value=!1,o.value=null}catch(a){O(a)}}async function X(a){await ke(`/optimization/${a}`)}function Y(a){l.value=a,f.value=!0}async function Z(a){if(l.value){l.value.title=a.title,l.value.description=a.description;const e=d.value.findIndex(h=>{var N;return h.id===((N=l.value)==null?void 0:N.id)});e!==-1&&(d.value[e]={...l.value})}}async function ee(){q.value=!0;try{const a=U.value===-1?null:U.value,e=await D.purgeOptimizationSessions(a);e.success&&(A(\"success\",`Successfully purged ${e.deleted_count} session(s)`),y.value=!1,u.value=0,d.value=[],c.value=!0,await T())}catch(a){O(a)}finally{q.value=!1}}function te(){y.value=!1,U.value=30}return(a,e)=>{const h=I,N=ye,B=ge,i=Se,se=Ae,le=xe,ae=Ve,oe=be,ne=he;return v(),b(\"div\",null,[e[13]||(e[13]=t(\"div\",{class:\"w-full\"},null,-1)),t(\"div\",Le,[t(\"div\",Ie,[t(\"div\",He,[e[8]||(e[8]=t(\"h1\",{class:\"text-xl md:text-2xl font-bold text-gray-900 dark:text-white\"},\" Optimization History \",-1)),s(h,{icon:\"i-heroicons-trash\",color:\"red\",variant:\"soft\",size:\"sm\",label:\"Purge\",onClick:e[0]||(e[0]=r=>y.value=!0)})]),t(\"div\",Ee,[s(N,{modelValue:n(V),\"onUpdate:modelValue\":e[1]||(e[1]=r=>S(V)?V.value=r:null),placeholder:\"Search by title...\",icon:\"i-heroicons-magnifying-glass\",size:\"sm\",class:\"w-full sm:w-64\"},null,8,[\"modelValue\"]),s(B,{modelValue:n(g),\"onUpdate:modelValue\":e[2]||(e[2]=r=>S(g)?g.value=r:null),options:H,size:\"sm\",class:\"w-full sm:w-40\"},null,8,[\"modelValue\"]),s(B,{modelValue:n(x),\"onUpdate:modelValue\":e[3]||(e[3]=r=>S(x)?x.value=r:null),options:E,size:\"sm\",class:\"w-full sm:w-40\"},null,8,[\"modelValue\"])])]),n(p)?(v(),b(\"div\",Ge,[t(\"div\",Je,[t(\"div\",We,[(v(),b(ve,null,fe(5,r=>t(\"div\",{key:r,class:\"p-4\"},[t(\"div\",Ke,[t(\"div\",Qe,[s(i,{class:\"h-4 w-full mb-2\"}),s(i,{class:\"h-3 w-2/3\"})]),t(\"div\",Xe,[s(i,{class:\"h-4 w-full mb-2\"}),s(i,{class:\"h-3 w-2/3 mx-auto\"})]),t(\"div\",Ye,[s(i,{class:\"h-6 w-20 mx-auto\"})]),t(\"div\",Ze,[s(i,{class:\"h-4 w-16 mx-auto\"})]),t(\"div\",et,[s(i,{class:\"h-4 w-full\"})]),t(\"div\",tt,[s(i,{class:\"h-8 w-8\"}),s(i,{class:\"h-8 w-8\"}),s(i,{class:\"h-8 w-8\"})])]),t(\"div\",st,[t(\"div\",lt,[t(\"div\",at,[s(i,{class:\"h-4 w-3/4 mb-2\"}),s(i,{class:\"h-3 w-1/2\"})]),s(i,{class:\"h-6 w-16 ml-2\"})]),t(\"div\",ot,[s(i,{class:\"h-4 w-24\"}),s(i,{class:\"h-4 w-16\"})]),t(\"div\",nt,[s(i,{class:\"h-3 w-32\"}),t(\"div\",it,[s(i,{class:\"h-8 w-8\"}),s(i,{class:\"h-8 w-8\"}),s(i,{class:\"h-8 w-8\"})])])])])),64))])])])):n(d).length>0?(v(),b(\"div\",rt,[s(se,{sessions:n(d),onNotes:Y,onLoad:X,onDelete:K},null,8,[\"sessions\"]),n(c)?(v(),b(\"div\",dt,[s(h,{label:\"Load More\",icon:\"i-heroicons-arrow-down\",color:\"gray\",variant:\"soft\",size:\"lg\",loading:n(k),onClick:W},null,8,[\"loading\"])])):R(\"\",!0)])):(v(),b(\"div\",ut,[e[9]||(e[9]=t(\"div\",{class:\"text-gray-400 dark:text-gray-500 text-lg mb-2\"},\" No optimization sessions found \",-1)),t(\"div\",ct,C(n(V)||n(g)!==\"all\"||n(x)!==\"all_time\"?\"Try adjusting your filters\":\"Start an optimization to see results here\"),1)])),s(le,{modelValue:n($),\"onUpdate:modelValue\":e[4]||(e[4]=r=>S($)?$.value=r:null),title:\"Delete Optimization Session\",description:\"Are you sure you want to delete this optimization session? This action cannot be undone.\",type:\"info\"},{default:_(()=>[s(h,{variant:\"solid\",color:\"red\",block:\"\",class:\"sm:w-auto\",label:\"Delete\",onClick:Q})]),_:1},8,[\"modelValue\"]),n(l)?(v(),pe(ae,{key:3,modelValue:n(f),\"onUpdate:modelValue\":e[5]||(e[5]=r=>S(f)?f.value=r:null),\"session-id\":n(l).id,\"initial-title\":n(l).title,\"initial-description\":n(l).description,onSaved:Z},null,8,[\"modelValue\",\"session-id\",\"initial-title\",\"initial-description\"])):R(\"\",!0),s(ne,{modelValue:n(y),\"onUpdate:modelValue\":e[7]||(e[7]=r=>S(y)?y.value=r:null)},{default:_(()=>[t(\"div\",mt,[t(\"div\",_t,[e[10]||(e[10]=t(\"h3\",{class:\"text-lg font-semibold mb-2\"},\"Purge Optimization Sessions\",-1)),e[11]||(e[11]=t(\"div\",{class:\"bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 rounded-lg p-4 mb-4\"},[t(\"div\",{class:\"flex\"},[t(\"div\",{class:\"flex-shrink-0\"},[t(\"svg\",{class:\"h-5 w-5 text-yellow-400\",viewBox:\"0 0 20 20\",fill:\"currentColor\"},[t(\"path\",{\"fill-rule\":\"evenodd\",d:\"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z\",\"clip-rule\":\"evenodd\"})])]),t(\"div\",{class:\"ml-3\"},[t(\"h3\",{class:\"text-sm font-medium text-yellow-800 dark:text-yellow-200\"},\"Warning\"),t(\"p\",{class:\"mt-1 text-sm text-yellow-700 dark:text-yellow-300\"},\" This action will permanently delete optimization sessions and cannot be undone. \"),t(\"p\",null,\"Deleted sessions cannot be recovered. Please select carefully.\")])])],-1)),s(oe,{label:\"Delete sessions older than:\",class:\"mb-4\"},{default:_(()=>[s(B,{modelValue:n(U),\"onUpdate:modelValue\":e[6]||(e[6]=r=>S(U)?U.value=r:null),options:G,size:\"md\"},null,8,[\"modelValue\"])]),_:1}),e[12]||(e[12]=t(\"p\",{class:\"text-sm text-gray-600 dark:text-gray-400\"},\" This will permanently delete all optimization sessions that match your criteria. \",-1))]),t(\"div\",pt,[s(h,{color:\"gray\",variant:\"ghost\",label:\"Cancel\",onClick:te}),s(h,{color:\"red\",label:\"Purge Sessions\",loading:n(q),onClick:ee},null,8,[\"loading\"])])])]),_:1},8,[\"modelValue\"])])])}}});export{kt as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Dmy2k9nq.js",
    "content": "import e from\"./UIAJJxZW.js\";const a=Object.freeze(JSON.parse('{\"displayName\":\"F#\",\"name\":\"fsharp\",\"patterns\":[{\"include\":\"#compiler_directives\"},{\"include\":\"#comments\"},{\"include\":\"#constants\"},{\"include\":\"#strings\"},{\"include\":\"#chars\"},{\"include\":\"#double_tick\"},{\"include\":\"#definition\"},{\"include\":\"#abstract_definition\"},{\"include\":\"#attributes\"},{\"include\":\"#modules\"},{\"include\":\"#anonymous_functions\"},{\"include\":\"#du_declaration\"},{\"include\":\"#record_declaration\"},{\"include\":\"#records\"},{\"include\":\"#strp_inlined\"},{\"include\":\"#keywords\"},{\"include\":\"#cexprs\"},{\"include\":\"#text\"}],\"repository\":{\"abstract_definition\":{\"begin\":\"\\\\\\\\b(static\\\\\\\\s+)?(abstract)\\\\\\\\s+(member)?(\\\\\\\\s+\\\\\\\\[\\\\\\\\<.*\\\\\\\\>\\\\\\\\])?\\\\\\\\s*([_[:alpha:]0-9,\\\\\\\\._`\\\\\\\\s]+)(<)?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.fsharp\"},\"2\":{\"name\":\"keyword.fsharp\"},\"3\":{\"name\":\"keyword.fsharp\"},\"4\":{\"name\":\"support.function.attribute.fsharp\"},\"5\":{\"name\":\"keyword.symbol.fsharp\"}},\"end\":\"\\\\\\\\s*(with)\\\\\\\\b|=|$\",\"endCaptures\":{\"1\":{\"name\":\"keyword.fsharp\"}},\"name\":\"abstract.definition.fsharp\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#common_declaration\"},{\"captures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"},\"2\":{\"name\":\"variable.parameter.fsharp\"},\"3\":{\"name\":\"keyword.symbol.fsharp\"},\"4\":{\"name\":\"entity.name.type.fsharp\"}},\"match\":\"(\\\\\\\\?{0,1})([[:alpha:]0-9\\'`^._ ]+)\\\\\\\\s*(:)((?!with\\\\\\\\b)\\\\\\\\b([\\\\\\\\w0-9\\'`^._ ]+)){0,1}\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.fsharp\"}},\"comments\":\"Here we need the \\\\\\\\w modifier in order to check that the words isn\\'t blacklisted\",\"match\":\"(?!with|get|set\\\\\\\\b)\\\\\\\\s*([\\\\\\\\w0-9\\'`^._]+)\"},{\"include\":\"#keywords\"}]},\"anonymous_functions\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(fun)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.fsharp\"}},\"end\":\"(->)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.symbol.arrow.fsharp\"}},\"name\":\"function.anonymous\",\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"end\":\"\\\\\\\\s*(?=(->))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.symbol.arrow.fsharp\"}},\"patterns\":[{\"include\":\"#member_declaration\"}]},{\"include\":\"#variables\"}]}]},\"anonymous_record_declaration\":{\"begin\":\"(\\\\\\\\{\\\\\\\\|)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"end\":\"(\\\\\\\\|\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"match\":\"[[:alpha:]0-9\\'`^_ ]+(:)\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.fsharp\"}},\"match\":\"([[:alpha:]0-9\\'`^_ ]+)\"},{\"include\":\"#anonymous_record_declaration\"},{\"include\":\"#keywords\"}]},\"attributes\":{\"patterns\":[{\"begin\":\"\\\\\\\\[\\\\\\\\<\",\"end\":\"\\\\\\\\>\\\\\\\\]|\\\\\\\\]\",\"name\":\"support.function.attribute.fsharp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"cexprs\":{\"patterns\":[{\"captures\":{\"0\":{\"name\":\"keyword.fsharp\"}},\"match\":\"\\\\\\\\b(async|seq|promise|task|maybe|asyncMaybe|controller|scope|application|pipeline)(?=\\\\\\\\s*\\\\\\\\{)\",\"name\":\"cexpr.fsharp\"}]},\"chars\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"string.quoted.single.fsharp\"}},\"match\":\"(\\'\\\\\\\\\\\\\\\\?.\\')\",\"name\":\"char.fsharp\"}]},\"comments\":{\"patterns\":[{\"beginCaptures\":{\"1\":{\"name\":\"comment.block.fsharp\"}},\"match\":\"(\\\\\\\\(\\\\\\\\*{3}.*\\\\\\\\*{3}\\\\\\\\))\",\"name\":\"comment.literate.command.fsharp\"},{\"begin\":\"^\\\\\\\\s*(\\\\\\\\(\\\\\\\\*\\\\\\\\*(?!\\\\\\\\)))((?!\\\\\\\\*\\\\\\\\)).)*$\",\"beginCaptures\":{\"1\":{\"name\":\"comment.block.fsharp\"}},\"endCaptures\":{\"1\":{\"name\":\"comment.block.fsharp\"}},\"name\":\"comment.block.markdown.fsharp\",\"patterns\":[{\"include\":\"text.html.markdown\"}],\"while\":\"^(?!\\\\\\\\s*(\\\\\\\\*)+\\\\\\\\)\\\\\\\\s*$)\"},{\"begin\":\"(\\\\\\\\(\\\\\\\\*(?!\\\\\\\\)))\",\"beginCaptures\":{\"1\":{\"name\":\"comment.block.fsharp\"}},\"end\":\"(\\\\\\\\*+\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"comment.block.fsharp\"}},\"name\":\"comment.block.fsharp\",\"patterns\":[{\"comments\":\"Capture // when inside of (* *) like that the rule which capture comments starting by // is not trigger. See https://github.com/ionide/ionide-fsgrammar/issues/155\",\"match\":\"//\",\"name\":\"fast-capture.comment.line.double-slash.fsharp\"},{\"comments\":\"Capture (*) when inside of (* *) so that it doesn\\'t prematurely end the comment block.\",\"match\":\"\\\\\\\\(\\\\\\\\*\\\\\\\\)\",\"name\":\"fast-capture.comment.line.mul-operator.fsharp\"},{\"include\":\"#comments\"}]},{\"captures\":{\"1\":{\"name\":\"comment.block.fsharp\"}},\"match\":\"((?<!\\\\\\\\()(\\\\\\\\*)+\\\\\\\\))\",\"name\":\"comment.block.markdown.fsharp.end\"},{\"begin\":\"(?<![!%&+-.<=>?@^|/])///(?!/)\",\"name\":\"comment.line.markdown.fsharp\",\"patterns\":[{\"include\":\"text.html.markdown\"}],\"while\":\"(?<![!%&+-.<=>?@^|/])///(?!/)\"},{\"match\":\"(?<![!%&+-.<=>?@^|/])//(.*$)\",\"name\":\"comment.line.double-slash.fsharp\"}]},\"common_binding_definition\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#attributes\"},{\"begin\":\"(:)\\\\\\\\s*(\\\\\\\\()\\\\\\\\s*(static member|member)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"},\"2\":{\"name\":\"keyword.symbol.fsharp\"},\"3\":{\"name\":\"keyword.fsharp\"}},\"comments\":\"SRTP syntax support\",\"end\":\"(\\\\\\\\))\\\\\\\\s*((?=,)|(?=\\\\\\\\=))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.type.fsharp\"}},\"match\":\"(\\\\\\\\^[[:alpha:]0-9\\'._]+)\"},{\"include\":\"#variables\"},{\"include\":\"#keywords\"}]},{\"begin\":\"(:)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"},\"2\":{\"name\":\"keyword.symbol.fsharp\"}},\"end\":\"(\\\\\\\\)\\\\\\\\s*(([?[:alpha:]0-9\\'`^._ ]*)))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"},\"2\":{\"name\":\"entity.name.type.fsharp\"}},\"patterns\":[{\"include\":\"#tuple_signature\"}]},{\"begin\":\"(:)\\\\\\\\s*(\\\\\\\\^[[:alpha:]0-9\\'._]+)\\\\\\\\s*(when)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"},\"2\":{\"name\":\"entity.name.type.fsharp\"},\"3\":{\"name\":\"keyword.fsharp\"}},\"end\":\"(?=:)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"patterns\":[{\"match\":\"\\\\\\\\b(and|when|or)\\\\\\\\b\",\"name\":\"keyword.fsharp\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.fsharp\"}},\"comment\":\"Because we first capture the keywords, we can capture what looks like a word and assume it\\'s an entity definition\",\"match\":\"([[:alpha:]0-9\\'^._]+)\"},{\"match\":\"(\\\\\\\\(|\\\\\\\\))\",\"name\":\"keyword.symbol.fsharp\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"},\"2\":{\"name\":\"entity.name.type.fsharp\"}},\"match\":\"(:)\\\\\\\\s*([?[:alpha:]0-9\\'`^._ ]+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.symbol.arrow.fsharp\"},\"2\":{\"name\":\"keyword.symbol.fsharp\"},\"3\":{\"name\":\"entity.name.type.fsharp\"}},\"match\":\"(->)\\\\\\\\s*(\\\\\\\\()?\\\\\\\\s*([?[:alpha:]0-9\\'`^._ ]+)*\"},{\"begin\":\"(\\\\\\\\*)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"},\"2\":{\"name\":\"keyword.symbol.fsharp\"}},\"end\":\"(\\\\\\\\)\\\\\\\\s*(([?[:alpha:]0-9\\'`^._ ]+))*)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"},\"2\":{\"name\":\"entity.name.type.fsharp\"}},\"patterns\":[{\"include\":\"#tuple_signature\"}]},{\"begin\":\"(\\\\\\\\*)(\\\\\\\\s*([?[:alpha:]0-9\\'`^._ ]+))*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"},\"2\":{\"name\":\"entity.name.type.fsharp\"}},\"end\":\"(?==)|(?=\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"patterns\":[{\"include\":\"#tuple_signature\"}]},{\"begin\":\"(<+(?![[:space:]]*\\\\\\\\)))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"beginComment\":\"The group (?![[:space:]]*\\\\\\\\) is for protection against overload operator. static member (<)\",\"end\":\"((?<!:)>|\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"endComment\":\"The group (?<!:) prevent us from stopping on :> when using SRTP synthax\",\"patterns\":[{\"include\":\"#generic_declaration\"}]},{\"include\":\"#anonymous_record_declaration\"},{\"begin\":\"({)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"end\":\"(})\",\"endCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"patterns\":[{\"include\":\"#record_signature\"}]},{\"include\":\"#definition\"},{\"include\":\"#variables\"},{\"include\":\"#keywords\"}]},\"common_declaration\":{\"patterns\":[{\"begin\":\"\\\\\\\\s*(->)\\\\\\\\s*([[:alpha:]0-9\\'`^._ ]+)(<)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.symbol.arrow.fsharp\"},\"2\":{\"name\":\"entity.name.type.fsharp\"},\"3\":{\"name\":\"keyword.symbol.fsharp\"}},\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.type.fsharp\"}},\"match\":\"([[:alpha:]0-9\\'`^._ ]+)\"},{\"include\":\"#keywords\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.symbol.arrow.fsharp\"},\"2\":{\"name\":\"entity.name.type.fsharp\"}},\"match\":\"\\\\\\\\s*(->)\\\\\\\\s*(?!with|get|set\\\\\\\\b)\\\\\\\\b([\\\\\\\\w0-9\\'`^._]+)\"},{\"include\":\"#anonymous_record_declaration\"},{\"begin\":\"(\\\\\\\\?{0,1})([[:alpha:]0-9\\'`^._ ]+)\\\\\\\\s*(:)(\\\\\\\\s*([?[:alpha:]0-9\\'`^._ ]+)(<))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"},\"2\":{\"name\":\"variable.parameter.fsharp\"},\"3\":{\"name\":\"keyword.symbol.fsharp\"},\"4\":{\"name\":\"keyword.symbol.fsharp\"},\"5\":{\"name\":\"entity.name.type.fsharp\"}},\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.type.fsharp\"}},\"match\":\"([[:alpha:]0-9\\'`^._ ]+)\"},{\"include\":\"#keywords\"}]}]},\"compiler_directives\":{\"patterns\":[{\"captures\":{},\"match\":\"\\\\\\\\s?(#if|#elif|#elseif|#else|#endif|#light|#nowarn)\",\"name\":\"keyword.control.directive.fsharp\"}]},\"constants\":{\"patterns\":[{\"match\":\"\\\\\\\\(\\\\\\\\)\",\"name\":\"keyword.symbol.fsharp\"},{\"match\":\"\\\\\\\\b-?[0-9][0-9_]*((\\\\\\\\.(?!\\\\\\\\.)([0-9][0-9_]*([eE][+-]??[0-9][0-9_]*)?)?)|([eE][+-]??[0-9][0-9_]*))\",\"name\":\"constant.numeric.float.fsharp\"},{\"match\":\"\\\\\\\\b(-?((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(0(o|O)[0-7][0-7_]*)|(0(b|B)[01][01_]*)|([0-9][0-9_]*)))\",\"name\":\"constant.numeric.integer.nativeint.fsharp\"},{\"match\":\"\\\\\\\\b(true|false)\\\\\\\\b\",\"name\":\"constant.language.boolean.fsharp\"},{\"match\":\"\\\\\\\\b(null|void)\\\\\\\\b\",\"name\":\"constant.other.fsharp\"}]},\"definition\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(let mutable|static let mutable|static let|let inline|let|and|member val|member inline|static member inline|static member val|static member|default|member|override|let!)(\\\\\\\\s+rec|mutable)?(\\\\\\\\s+\\\\\\\\[\\\\\\\\<.*\\\\\\\\>\\\\\\\\])?\\\\\\\\s*(private|internal|public)?\\\\\\\\s+(\\\\\\\\[[^-=]*\\\\\\\\]|[_[:alpha:]]([_[:alpha:]0-9\\\\\\\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\\\\\\\._`\\\\\\\\s]+|(?<=,)\\\\\\\\s)*)?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.fsharp\"},\"2\":{\"name\":\"keyword.fsharp\"},\"3\":{\"name\":\"support.function.attribute.fsharp\"},\"4\":{\"name\":\"storage.modifier.fsharp\"},\"5\":{\"name\":\"variable.fsharp\"}},\"end\":\"\\\\\\\\s*((with\\\\\\\\b)|(=|\\\\\\\\n+=|(?<=\\\\\\\\=)))\",\"endCaptures\":{\"2\":{\"name\":\"keyword.fsharp\"},\"3\":{\"name\":\"keyword.symbol.fsharp\"}},\"name\":\"binding.fsharp\",\"patterns\":[{\"include\":\"#common_binding_definition\"}]},{\"begin\":\"\\\\\\\\b(use|use!|and|and!)\\\\\\\\s+(\\\\\\\\[[^-=]*\\\\\\\\]|[_[:alpha:]]([_[:alpha:]0-9\\\\\\\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\\\\\\\._`\\\\\\\\s]+|(?<=,)\\\\\\\\s)*)?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.fsharp\"}},\"end\":\"\\\\\\\\s*(=)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"name\":\"binding.fsharp\",\"patterns\":[{\"include\":\"#common_binding_definition\"}]},{\"begin\":\"(?<=with|and)\\\\\\\\s*\\\\\\\\b((get|set)\\\\\\\\s*(?=\\\\\\\\())(\\\\\\\\[[^-=]*\\\\\\\\]|[_[:alpha:]]([_[:alpha:]0-9\\\\\\\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\\\\\\\._`\\\\\\\\s]+|(?<=,)\\\\\\\\s)*)?\",\"beginCaptures\":{\"4\":{\"name\":\"variable.fsharp\"}},\"end\":\"\\\\\\\\s*(=|\\\\\\\\n+=|(?<=\\\\\\\\=))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"name\":\"binding.fsharp\",\"patterns\":[{\"include\":\"#common_binding_definition\"}]},{\"begin\":\"\\\\\\\\b(static val mutable|val mutable|val inline|val)(\\\\\\\\s+rec|mutable)?(\\\\\\\\s+\\\\\\\\[\\\\\\\\<.*\\\\\\\\>\\\\\\\\])?\\\\\\\\s*(private|internal|public)?\\\\\\\\s+(\\\\\\\\[[^-=]*\\\\\\\\]|[_[:alpha:]]([_[:alpha:]0-9,\\\\\\\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9,\\\\\\\\._`\\\\\\\\s]+|(?<=,)\\\\\\\\s)*)?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.fsharp\"},\"2\":{\"name\":\"keyword.fsharp\"},\"3\":{\"name\":\"support.function.attribute.fsharp\"},\"4\":{\"name\":\"storage.modifier.fsharp\"},\"5\":{\"name\":\"variable.fsharp\"}},\"end\":\"\\\\\\\\n$\",\"name\":\"binding.fsharp\",\"patterns\":[{\"include\":\"#common_binding_definition\"}]},{\"begin\":\"\\\\\\\\b(new)\\\\\\\\b\\\\\\\\s+(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.fsharp\"},\"2\":{\"name\":\"keyword.symbol.fsharp\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"name\":\"binding.fsharp\",\"patterns\":[{\"include\":\"#common_binding_definition\"}]}]},\"double_tick\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"string.quoted.single.fsharp\"},\"2\":{\"name\":\"variable.other.binding.fsharp\"},\"3\":{\"name\":\"string.quoted.single.fsharp\"}},\"match\":\"(``)([^`]*)(``)\",\"name\":\"variable.other.binding.fsharp\"}]},\"du_declaration\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(of)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.fsharp\"}},\"end\":\"$|(\\\\\\\\|)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"name\":\"du_declaration.fsharp\",\"patterns\":[{\"include\":\"#comments\"},{\"captures\":{\"1\":{\"name\":\"variable.parameter.fsharp\"},\"2\":{\"name\":\"keyword.symbol.fsharp\"},\"3\":{\"name\":\"entity.name.type.fsharp\"}},\"match\":\"([[:alpha:]0-9\\'`<>^._]+|``[[:alpha:]0-9\\' <>^._]+``)\\\\\\\\s*(:)\\\\\\\\s*([[:alpha:]0-9\\'`<>^._]+|``[[:alpha:]0-9\\' <>^._]+``)\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.fsharp\"}},\"match\":\"(``([[:alpha:]0-9\\'^._ ]+)``|[[:alpha:]0-9\\'`^._]+)\"},{\"include\":\"#anonymous_record_declaration\"},{\"include\":\"#keywords\"}]}]},\"generic_declaration\":{\"patterns\":[{\"begin\":\"(:)\\\\\\\\s*(\\\\\\\\()\\\\\\\\s*(static member|member)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"},\"2\":{\"name\":\"keyword.symbol.fsharp\"},\"3\":{\"name\":\"keyword.fsharp\"}},\"comments\":\"SRTP syntax support\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"patterns\":[{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"patterns\":[{\"include\":\"#member_declaration\"}]},{\"captures\":{\"1\":{\"name\":\"entity.name.type.fsharp\"}},\"match\":\"((\\'|\\\\\\\\^)[[:alpha:]0-9\\'._]+)\"},{\"include\":\"#variables\"},{\"include\":\"#keywords\"}]},{\"match\":\"\\\\\\\\b(private|to|public|internal|function|yield!|yield|class|exception|match|delegate|of|new|in|as|if|then|else|elif|for|begin|end|inherit|do|let\\\\\\\\!|return\\\\\\\\!|return|interface|with|abstract|enum|member|try|finally|and|when|or|use|use\\\\\\\\!|struct|while|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!\\')\\\\\\\\b\",\"name\":\"keyword.fsharp\"},{\"match\":\":\",\"name\":\"keyword.symbol.fsharp\"},{\"include\":\"#constants\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.fsharp\"}},\"match\":\"((\\'|\\\\\\\\^)[[:alpha:]0-9\\'._]+)\"},{\"begin\":\"(<)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.type.fsharp\"}},\"match\":\"((\\'|\\\\\\\\^)[[:alpha:]0-9\\'._]+)\"},{\"include\":\"#tuple_signature\"},{\"include\":\"#generic_declaration\"}]},{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.type.fsharp\"}},\"match\":\"(([?[:alpha:]0-9\\'`^._ ]+))+\"},{\"include\":\"#tuple_signature\"}]},{\"captures\":{\"1\":{\"name\":\"entity.name.type.fsharp\"}},\"comments\":\"Here we need the \\\\\\\\w modifier in order to check that the words are allowed\",\"match\":\"(?!when|and|or\\\\\\\\b)\\\\\\\\b([\\\\\\\\w0-9\\'`^._]+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"comments\":\"Prevent captures of `|>` as a keyword when defining custom operator like `<|>`\",\"match\":\"(\\\\\\\\|)\"},{\"include\":\"#keywords\"}]},\"keywords\":{\"patterns\":[{\"match\":\"\\\\\\\\b(private|public|internal)\\\\\\\\b\",\"name\":\"storage.modifier\"},{\"match\":\"\\\\\\\\b(private|to|public|internal|function|class|exception|delegate|of|new|as|begin|end|inherit|let!|interface|abstract|enum|member|and|when|or|use|use\\\\\\\\!|struct|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!\\')\\\\\\\\b\",\"name\":\"keyword.fsharp\"},{\"match\":\"\\\\\\\\b(match|yield|yield!|with|if|then|else|elif|for|in|return!|return|try|finally|while|do)(?!\\')\\\\\\\\b\",\"name\":\"keyword.control\"},{\"match\":\"(\\\\\\\\->|\\\\\\\\<\\\\\\\\-)\",\"name\":\"keyword.symbol.arrow.fsharp\"},{\"match\":\"[.?]*(&&&|\\\\\\\\|\\\\\\\\|\\\\\\\\||\\\\\\\\^\\\\\\\\^\\\\\\\\^|~~~|~\\\\\\\\+|~\\\\\\\\-|<<<|>>>|\\\\\\\\|>|:>|:\\\\\\\\?>|:|\\\\\\\\[|\\\\\\\\]|\\\\\\\\;|<>|=|@|\\\\\\\\|\\\\\\\\||&&|&|%|{|}|\\\\\\\\||_|\\\\\\\\.\\\\\\\\.|\\\\\\\\,|\\\\\\\\+|\\\\\\\\-|\\\\\\\\*|\\\\\\\\/|\\\\\\\\^|\\\\\\\\!|\\\\\\\\>|\\\\\\\\>\\\\\\\\=|\\\\\\\\>\\\\\\\\>|\\\\\\\\<|\\\\\\\\<\\\\\\\\=|\\\\\\\\(|\\\\\\\\)|\\\\\\\\<\\\\\\\\<)[.?]*\",\"name\":\"keyword.symbol.fsharp\"}]},\"member_declaration\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#common_declaration\"},{\"begin\":\"(:)\\\\\\\\s*(\\\\\\\\()\\\\\\\\s*(static member|member)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"},\"2\":{\"name\":\"keyword.symbol.fsharp\"},\"3\":{\"name\":\"keyword.fsharp\"}},\"comments\":\"SRTP syntax support\",\"end\":\"(\\\\\\\\))\\\\\\\\s*((?=,)|(?=\\\\\\\\=))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"patterns\":[{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"patterns\":[{\"include\":\"#member_declaration\"}]},{\"captures\":{\"1\":{\"name\":\"entity.name.type.fsharp\"}},\"match\":\"(\\\\\\\\^[[:alpha:]0-9\\'._]+)\"},{\"include\":\"#variables\"},{\"include\":\"#keywords\"}]},{\"captures\":{\"1\":{\"name\":\"entity.name.type.fsharp\"}},\"match\":\"(\\\\\\\\^[[:alpha:]0-9\\'._]+)\"},{\"match\":\"\\\\\\\\b(and|when|or)\\\\\\\\b\",\"name\":\"keyword.fsharp\"},{\"match\":\"(\\\\\\\\(|\\\\\\\\))\",\"name\":\"keyword.symbol.fsharp\"},{\"captures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"},\"2\":{\"name\":\"variable.parameter.fsharp\"},\"3\":{\"name\":\"keyword.symbol.fsharp\"},\"4\":{\"name\":\"entity.name.type.fsharp\"}},\"match\":\"(\\\\\\\\?{0,1})([[:alpha:]0-9\\'`^._]+|``[[:alpha:]0-9\\'`^:,._ ]+``)\\\\\\\\s*(:{0,1})(\\\\\\\\s*([?[:alpha:]0-9\\'`<>._ ]+)){0,1}\"},{\"include\":\"#keywords\"}]},\"modules\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(namespace global)|\\\\\\\\b(namespace|module)\\\\\\\\s*(public|internal|private|rec)?\\\\\\\\s+([[:alpha:]|``][[:alpha:]0-9\\'_. ]*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.fsharp\"},\"2\":{\"name\":\"keyword.fsharp\"},\"3\":{\"name\":\"storage.modifier.fsharp\"},\"4\":{\"name\":\"entity.name.section.fsharp\"}},\"end\":\"(\\\\\\\\s?=|\\\\\\\\s|$)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"name\":\"entity.name.section.fsharp\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.namespace-reference.fsharp\"},\"2\":{\"name\":\"entity.name.section.fsharp\"}},\"match\":\"(\\\\\\\\.)([A-Z][[:alpha:]0-9\\'_]*)\",\"name\":\"entity.name.section.fsharp\"}]},{\"begin\":\"\\\\\\\\b(open type|open)\\\\\\\\s+([[:alpha:]|``][[:alpha:]0-9\\'_]*)(?=(\\\\\\\\.[A-Z][[:alpha:]0-9_]*)*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.fsharp\"},\"2\":{\"name\":\"entity.name.section.fsharp\"}},\"end\":\"(\\\\\\\\s|$)\",\"name\":\"namespace.open.fsharp\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.namespace-reference.fsharp\"},\"2\":{\"name\":\"entity.name.section.fsharp\"}},\"match\":\"(\\\\\\\\.)([[:alpha:]][[:alpha:]0-9\\'_]*)\",\"name\":\"entity.name.section.fsharp\"},{\"include\":\"#comments\"}]},{\"begin\":\"^\\\\\\\\s*(module)\\\\\\\\s+([A-Z][[:alpha:]0-9\\'_]*)\\\\\\\\s*(=)\\\\\\\\s*([A-Z][[:alpha:]0-9\\'_]*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.fsharp\"},\"2\":{\"name\":\"entity.name.type.namespace.fsharp\"},\"3\":{\"name\":\"keyword.symbol.fsharp\"},\"4\":{\"name\":\"entity.name.section.fsharp\"}},\"end\":\"(\\\\\\\\s|$)\",\"name\":\"namespace.alias.fsharp\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.namespace-reference.fsharp\"},\"2\":{\"name\":\"entity.name.section.fsharp\"}},\"match\":\"(\\\\\\\\.)([A-Z][[:alpha:]0-9\\'_]*)\",\"name\":\"entity.name.section.fsharp\"}]}]},\"record_declaration\":{\"patterns\":[{\"begin\":\"(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\"(((mutable)\\\\\\\\s[[:alpha:]]+)|[[:alpha:]0-9\\'`<>^._]*)\\\\\\\\s*((?<!:):(?!:))\\\\\\\\s*\",\"beginCaptures\":{\"3\":{\"name\":\"keyword.fsharp\"},\"4\":{\"name\":\"keyword.symbol.fsharp\"}},\"end\":\"$|(;|\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"patterns\":[{\"include\":\"#comments\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.fsharp\"}},\"match\":\"([[:alpha:]0-9\\'`^_ ]+)\"},{\"include\":\"#keywords\"}]},{\"include\":\"#compiler_directives\"},{\"include\":\"#constants\"},{\"include\":\"#strings\"},{\"include\":\"#chars\"},{\"include\":\"#double_tick\"},{\"include\":\"#definition\"},{\"include\":\"#attributes\"},{\"include\":\"#anonymous_functions\"},{\"include\":\"#keywords\"},{\"include\":\"#cexprs\"},{\"include\":\"#text\"}]}]},\"record_signature\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"},\"2\":{\"name\":\"variable.parameter.fsharp\"}},\"match\":\"[[:alpha:]0-9\\'`^_ ]+(=)([[:alpha:]0-9\\'`^_ ]+)\"},{\"begin\":\"({)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"end\":\"(})\",\"endCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"},\"2\":{\"name\":\"variable.parameter.fsharp\"}},\"match\":\"[[:alpha:]0-9\\'`^_ ]+(=)([[:alpha:]0-9\\'`^_ ]+)\"},{\"include\":\"#record_signature\"}]},{\"include\":\"#keywords\"}]},\"records\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(type)[\\\\\\\\s]+(private|internal|public)?\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.fsharp\"},\"2\":{\"name\":\"storage.modifier.fsharp\"}},\"end\":\"\\\\\\\\s*((with)|((as)\\\\\\\\s+([[:alpha:]0-9\\']+))|(=)|[\\\\\\\\n=]|(\\\\\\\\(\\\\\\\\)))\",\"endCaptures\":{\"2\":{\"name\":\"keyword.fsharp\"},\"3\":{\"name\":\"keyword.fsharp\"},\"4\":{\"name\":\"keyword.fsharp\"},\"5\":{\"name\":\"variable.parameter.fsharp\"},\"6\":{\"name\":\"keyword.symbol.fsharp\"},\"7\":{\"name\":\"keyword.symbol.fsharp\"}},\"name\":\"record.fsharp\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#attributes\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.fsharp\"}},\"match\":\"([[:alpha:]0-9\\'^._]+|``[[:alpha:]0-9\\'`^:,._ ]+``)\"},{\"begin\":\"(<)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"end\":\"((?<!:)>)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.type.fsharp\"}},\"match\":\"((\\'|\\\\\\\\^)``[[:alpha:]0-9`^:,._ ]+``|(\\'|\\\\\\\\^)[[:alpha:]0-9`^:._]+)\"},{\"match\":\"\\\\\\\\b(interface|with|abstract|and|when|or|not|struct|equality|comparison|unmanaged|delegate|enum)\\\\\\\\b\",\"name\":\"keyword.fsharp\"},{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.fsharp\"}},\"match\":\"(static member|member|new)\"},{\"include\":\"#common_binding_definition\"}]},{\"captures\":{\"1\":{\"name\":\"entity.name.type.fsharp\"}},\"comments\":\"Here we need the \\\\\\\\w modifier in order to check that the words isn\\'t blacklisted\",\"match\":\"([\\\\\\\\w0-9\\'`^._]+)\"},{\"include\":\"#keywords\"}]},{\"captures\":{\"1\":{\"name\":\"storage.modifier.fsharp\"}},\"match\":\"\\\\\\\\s*(private|internal|public)\"},{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"end\":\"\\\\\\\\s*(?=(=)|[\\\\\\\\n=]|(\\\\\\\\(\\\\\\\\))|(as))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"patterns\":[{\"include\":\"#member_declaration\"}]},{\"include\":\"#keywords\"}]}]},\"string_formatter\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.format.specifier.fsharp\"}},\"match\":\"(%0?-?(\\\\\\\\d+)?((a|t)|(\\\\\\\\.\\\\\\\\d+)?(f|F|e|E|g|G|M)|(b|c|s|d|i|x|X|o|u)|(s|b|O)|(\\\\\\\\+?A)))\",\"name\":\"entity.name.type.format.specifier.fsharp\"}]},\"strings\":{\"patterns\":[{\"begin\":\"(?=[^\\\\\\\\\\\\\\\\])(@\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.fsharp\"}},\"end\":\"(\\\\\")(?!\\\\\")\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.fsharp\"}},\"name\":\"string.quoted.literal.fsharp\",\"patterns\":[{\"match\":\"\\\\\"(\\\\\")\",\"name\":\"constant.character.string.escape.fsharp\"}]},{\"begin\":\"(?=[^\\\\\\\\\\\\\\\\])(\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.fsharp\"}},\"end\":\"(\\\\\"\\\\\"\\\\\")\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.fsharp\"}},\"name\":\"string.quoted.triple.fsharp\",\"patterns\":[{\"include\":\"#string_formatter\"}]},{\"begin\":\"(?=[^\\\\\\\\\\\\\\\\])(\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.fsharp\"}},\"end\":\"(\\\\\")\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.fsharp\"}},\"name\":\"string.quoted.double.fsharp\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\$[ \\\\\\\\t]*\",\"name\":\"punctuation.separator.string.ignore-eol.fsharp\"},{\"match\":\"\\\\\\\\\\\\\\\\([\\'\\\\\"\\\\\\\\\\\\\\\\abfnrtv]|([01][0-9][0-9]|2[0-4][0-9]|25[0-5])|(x[0-9a-fA-F]{2})|(u[0-9a-fA-F]{4})|(U00(0[0-9a-fA-F]|10)[0-9a-fA-F]{4}))\",\"name\":\"constant.character.string.escape.fsharp\"},{\"match\":\"\\\\\\\\\\\\\\\\(([0-9]{1,3})|(x[^\\\\\\\\s]{0,2})|(u[^\\\\\\\\s]{0,4})|(U[^\\\\\\\\s]{0,8})|[^\\\\\\\\s])\",\"name\":\"invalid.illegal.character.string.fsharp\"},{\"include\":\"#string_formatter\"}]}]},\"strp_inlined\":{\"patterns\":[{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"patterns\":[{\"include\":\"#strp_inlined_body\"}]}]},\"strp_inlined_body\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#anonymous_functions\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.fsharp\"}},\"match\":\"(\\\\\\\\^[[:alpha:]0-9\\'._]+)\"},{\"match\":\"\\\\\\\\b(and|when|or)\\\\\\\\b\",\"name\":\"keyword.fsharp\"},{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"patterns\":[{\"include\":\"#strp_inlined_body\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.fsharp\"},\"2\":{\"name\":\"variable.fsharp\"},\"3\":{\"name\":\"keyword.symbol.fsharp\"}},\"match\":\"(static member|member)\\\\\\\\s*([[:alpha:]0-9\\'`<>^._]+|``[[:alpha:]0-9\\' <>^._]+``)\\\\\\\\s*(:)\"},{\"include\":\"#compiler_directives\"},{\"include\":\"#constants\"},{\"include\":\"#strings\"},{\"include\":\"#chars\"},{\"include\":\"#double_tick\"},{\"include\":\"#keywords\"},{\"include\":\"#text\"},{\"include\":\"#definition\"},{\"include\":\"#attributes\"},{\"include\":\"#keywords\"},{\"include\":\"#cexprs\"},{\"include\":\"#text\"}]},\"text\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\",\"name\":\"text.fsharp\"}]},\"tuple_signature\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.type.fsharp\"}},\"match\":\"(([?[:alpha:]0-9\\'`^._ ]+))+\"},{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.name.type.fsharp\"}},\"match\":\"(([?[:alpha:]0-9\\'`^._ ]+))+\"},{\"include\":\"#tuple_signature\"}]},{\"include\":\"#keywords\"}]},\"variables\":{\"patterns\":[{\"match\":\"\\\\\\\\(\\\\\\\\)\",\"name\":\"keyword.symbol.fsharp\"},{\"captures\":{\"1\":{\"name\":\"keyword.symbol.fsharp\"},\"2\":{\"name\":\"variable.parameter.fsharp\"}},\"match\":\"(\\\\\\\\?{0,1})(``[[:alpha:]0-9\\'`^:,._ ]+``|(?!private|struct\\\\\\\\b)\\\\\\\\b[\\\\\\\\w[:alpha:]0-9\\'`<>^._ ]+)\"}]}},\"scopeName\":\"source.fsharp\",\"embeddedLangs\":[\"markdown\"],\"aliases\":[\"f#\",\"fs\"]}')),t=[...e,a];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Dn00JSTd.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Apache Conf\",\"fileTypes\":[\"conf\",\"CONF\",\"envvars\",\"htaccess\",\"HTACCESS\",\"htgroups\",\"HTGROUPS\",\"htpasswd\",\"HTPASSWD\",\".htaccess\",\".HTACCESS\",\".htgroups\",\".HTGROUPS\",\".htpasswd\",\".HTPASSWD\"],\"name\":\"apache\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.apacheconf\"}},\"match\":\"^(\\\\\\\\s)*(#).*$\\\\\\\\n?\",\"name\":\"comment.line.hash.ini\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.apacheconf\"},\"2\":{\"name\":\"entity.tag.apacheconf\"},\"4\":{\"name\":\"string.value.apacheconf\"},\"5\":{\"name\":\"punctuation.definition.tag.apacheconf\"}},\"match\":\"(<)(Proxy|ProxyMatch|IfVersion|Directory|DirectoryMatch|Files|FilesMatch|IfDefine|IfModule|Limit|LimitExcept|Location|LocationMatch|VirtualHost|Macro|If|Else|ElseIf)(\\\\\\\\s(.+?))?(>)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.apacheconf\"},\"2\":{\"name\":\"entity.tag.apacheconf\"},\"3\":{\"name\":\"punctuation.definition.tag.apacheconf\"}},\"match\":\"(</)(Proxy|ProxyMatch|IfVersion|Directory|DirectoryMatch|Files|FilesMatch|IfDefine|IfModule|Limit|LimitExcept|Location|LocationMatch|VirtualHost|Macro|If|Else|ElseIf)(>)\"},{\"captures\":{\"3\":{\"name\":\"string.regexp.apacheconf\"},\"4\":{\"name\":\"string.replacement.apacheconf\"}},\"match\":\"(?<=(Rewrite(Rule|Cond)))\\\\\\\\s+(.+?)\\\\\\\\s+(.+?)($|\\\\\\\\s)\"},{\"captures\":{\"2\":{\"name\":\"entity.status.apacheconf\"},\"3\":{\"name\":\"string.regexp.apacheconf\"},\"5\":{\"name\":\"string.path.apacheconf\"}},\"match\":\"(?<=RedirectMatch)(\\\\\\\\s+(\\\\\\\\d\\\\\\\\d\\\\\\\\d|permanent|temp|seeother|gone))?\\\\\\\\s+(.+?)\\\\\\\\s+((.+?)($|\\\\\\\\s))?\"},{\"captures\":{\"2\":{\"name\":\"entity.status.apacheconf\"},\"3\":{\"name\":\"string.path.apacheconf\"},\"5\":{\"name\":\"string.path.apacheconf\"}},\"match\":\"(?<=Redirect)(\\\\\\\\s+(\\\\\\\\d\\\\\\\\d\\\\\\\\d|permanent|temp|seeother|gone))?\\\\\\\\s+(.+?)\\\\\\\\s+((.+?)($|\\\\\\\\s))?\"},{\"captures\":{\"1\":{\"name\":\"string.regexp.apacheconf\"},\"3\":{\"name\":\"string.path.apacheconf\"}},\"match\":\"(?<=ScriptAliasMatch|AliasMatch)\\\\\\\\s+(.+?)\\\\\\\\s+((.+?)\\\\\\\\s)?\"},{\"captures\":{\"1\":{\"name\":\"string.path.apacheconf\"},\"3\":{\"name\":\"string.path.apacheconf\"}},\"match\":\"(?<=RedirectPermanent|RedirectTemp|ScriptAlias|Alias)\\\\\\\\s+(.+?)\\\\\\\\s+((.+?)($|\\\\\\\\s))?\"},{\"captures\":{\"1\":{\"name\":\"keyword.core.apacheconf\"}},\"match\":\"\\\\\\\\b(AcceptPathInfo|AccessFileName|AddDefaultCharset|AddOutputFilterByType|AllowEncodedSlashes|AllowOverride|AuthName|AuthType|CGIMapExtension|ContentDigest|DefaultType|Define|DocumentRoot|EnableMMAP|EnableSendfile|ErrorDocument|ErrorLog|FileETag|ForceType|HostnameLookups|IdentityCheck|Include(Optional)?|KeepAlive|KeepAliveTimeout|LimitInternalRecursion|LimitRequestBody|LimitRequestFields|LimitRequestFieldSize|LimitRequestLine|LimitXMLRequestBody|LogLevel|MaxKeepAliveRequests|Mutex|NameVirtualHost|Options|Require|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScriptInterpreterSource|ServerAdmin|ServerAlias|ServerName|ServerPath|ServerRoot|ServerSignature|ServerTokens|SetHandler|SetInputFilter|SetOutputFilter|Time(O|o)ut|TraceEnable|UseCanonicalName|Use|ErrorLogFormat|GlobalLog|PHPIniDir|SSLHonorCipherOrder|SSLCompression|SSLUseStapling|SSLStapling\\\\\\\\w+|SSLCARevocationCheck|SSLSRPVerifierFile|SSLSessionTickets|RequestReadTimeout|ProxyHTML\\\\\\\\w+|MaxRanges)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.mpm.apacheconf\"}},\"match\":\"\\\\\\\\b(AcceptMutex|AssignUserID|BS2000Account|ChildPerUserID|CoreDumpDirectory|EnableExceptionHook|Group|Listen|ListenBacklog|LockFile|MaxClients|MaxConnectionsPerChild|MaxMemFree|MaxRequestsPerChild|MaxRequestsPerThread|MaxRequestWorkers|MaxSpareServers|MaxSpareThreads|MaxThreads|MaxThreadsPerChild|MinSpareServers|MinSpareThreads|NumServers|PidFile|ReceiveBufferSize|ScoreBoardFile|SendBufferSize|ServerLimit|StartServers|StartThreads|ThreadLimit|ThreadsPerChild|ThreadStackSize|User|Win32DisableAcceptEx)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.access.apacheconf\"}},\"match\":\"\\\\\\\\b(Allow|Deny|Order)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.actions.apacheconf\"}},\"match\":\"\\\\\\\\b(Action|Script)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.alias.apacheconf\"}},\"match\":\"\\\\\\\\b(Alias|AliasMatch|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ScriptAlias|ScriptAliasMatch)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.auth.apacheconf\"}},\"match\":\"\\\\\\\\b(AuthAuthoritative|AuthGroupFile|AuthUserFile|AuthBasicProvider|AuthBasicFake|AuthBasicAuthoritative|AuthBasicUseDigestAlgorithm)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.auth_anon.apacheconf\"}},\"match\":\"\\\\\\\\b(Anonymous|Anonymous_Authoritative|Anonymous_LogEmail|Anonymous_MustGiveEmail|Anonymous_NoUserID|Anonymous_VerifyEmail)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.auth_dbm.apacheconf\"}},\"match\":\"\\\\\\\\b(AuthDBMAuthoritative|AuthDBMGroupFile|AuthDBMType|AuthDBMUserFile)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.auth_digest.apacheconf\"}},\"match\":\"\\\\\\\\b(AuthDigestAlgorithm|AuthDigestDomain|AuthDigestFile|AuthDigestGroupFile|AuthDigestNcCheck|AuthDigestNonceFormat|AuthDigestNonceLifetime|AuthDigestQop|AuthDigestShmemSize|AuthDigestProvider)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.auth_ldap.apacheconf\"}},\"match\":\"\\\\\\\\b(AuthLDAPAuthoritative|AuthLDAPBindDN|AuthLDAPBindPassword|AuthLDAPCharsetConfig|AuthLDAPCompareDNOnServer|AuthLDAPDereferenceAliases|AuthLDAPEnabled|AuthLDAPFrontPageHack|AuthLDAPGroupAttribute|AuthLDAPGroupAttributeIsDN|AuthLDAPRemoteUserIsDN|AuthLDAPUrl)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.autoindex.apacheconf\"}},\"match\":\"\\\\\\\\b(AddAlt|AddAltByEncoding|AddAltByType|AddDescription|AddIcon|AddIconByEncoding|AddIconByType|DefaultIcon|HeaderName|IndexIgnore|IndexOptions|IndexOrderDefault|IndexStyleSheet|IndexHeadInsert|ReadmeName)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.filter.apacheconf\"}},\"match\":\"\\\\\\\\b(BalancerMember|BalancerGrowth|BalancerPersist|BalancerInherit)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.cache.apacheconf\"}},\"match\":\"\\\\\\\\b(CacheDefaultExpire|CacheDisable|CacheEnable|CacheForceCompletion|CacheIgnoreCacheControl|CacheIgnoreHeaders|CacheIgnoreNoLastMod|CacheLastModifiedFactor|CacheMaxExpire)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.cern_meta.apacheconf\"}},\"match\":\"\\\\\\\\b(MetaDir|MetaFiles|MetaSuffix)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.cgi.apacheconf\"}},\"match\":\"\\\\\\\\b(ScriptLog|ScriptLogBuffer|ScriptLogLength)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.cgid.apacheconf\"}},\"match\":\"\\\\\\\\b(ScriptLog|ScriptLogBuffer|ScriptLogLength|ScriptSock)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.charset_lite.apacheconf\"}},\"match\":\"\\\\\\\\b(CharsetDefault|CharsetOptions|CharsetSourceEnc)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.dav.apacheconf\"}},\"match\":\"\\\\\\\\b(Dav|DavDepthInfinity|DavMinTimeout|DavLockDB)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.deflate.apacheconf\"}},\"match\":\"\\\\\\\\b(DeflateBufferSize|DeflateCompressionLevel|DeflateFilterNote|DeflateMemLevel|DeflateWindowSize)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.dir.apacheconf\"}},\"match\":\"\\\\\\\\b(DirectoryIndex|DirectorySlash|FallbackResource)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.disk_cache.apacheconf\"}},\"match\":\"\\\\\\\\b(CacheDirLength|CacheDirLevels|CacheExpiryCheck|CacheGcClean|CacheGcDaily|CacheGcInterval|CacheGcMemUsage|CacheGcUnused|CacheMaxFileSize|CacheMinFileSize|CacheRoot|CacheSize|CacheTimeMargin)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.dumpio.apacheconf\"}},\"match\":\"\\\\\\\\b(DumpIOInput|DumpIOOutput)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.env.apacheconf\"}},\"match\":\"\\\\\\\\b(PassEnv|SetEnv|UnsetEnv)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.expires.apacheconf\"}},\"match\":\"\\\\\\\\b(ExpiresActive|ExpiresByType|ExpiresDefault)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.ext_filter.apacheconf\"}},\"match\":\"\\\\\\\\b(ExtFilterDefine|ExtFilterOptions)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.file_cache.apacheconf\"}},\"match\":\"\\\\\\\\b(CacheFile|MMapFile)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.filter.apacheconf\"}},\"match\":\"\\\\\\\\b(AddOutputFilterByType|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.headers.apacheconf\"}},\"match\":\"\\\\\\\\b(Header|RequestHeader)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.imap.apacheconf\"}},\"match\":\"\\\\\\\\b(ImapBase|ImapDefault|ImapMenu)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.include.apacheconf\"}},\"match\":\"\\\\\\\\b(SSIEndTag|SSIErrorMsg|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|XBitHack)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.isapi.apacheconf\"}},\"match\":\"\\\\\\\\b(ISAPIAppendLogToErrors|ISAPIAppendLogToQuery|ISAPICacheFile|ISAPIFakeAsync|ISAPILogNotSupported|ISAPIReadAheadBuffer)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.ldap.apacheconf\"}},\"match\":\"\\\\\\\\b(LDAPCacheEntries|LDAPCacheTTL|LDAPConnectionTimeout|LDAPOpCacheEntries|LDAPOpCacheTTL|LDAPSharedCacheFile|LDAPSharedCacheSize|LDAPTrustedCA|LDAPTrustedCAType)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.log.apacheconf\"}},\"match\":\"\\\\\\\\b(BufferedLogs|CookieLog|CustomLog|LogFormat|TransferLog|ForensicLog)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.mem_cache.apacheconf\"}},\"match\":\"\\\\\\\\b(MCacheMaxObjectCount|MCacheMaxObjectSize|MCacheMaxStreamingBuffer|MCacheMinObjectSize|MCacheRemovalAlgorithm|MCacheSize)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.mime.apacheconf\"}},\"match\":\"\\\\\\\\b(AddCharset|AddEncoding|AddHandler|AddInputFilter|AddLanguage|AddOutputFilter|AddType|DefaultLanguage|ModMimeUsePathInfo|MultiviewsMatch|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|TypesConfig)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.misc.apacheconf\"}},\"match\":\"\\\\\\\\b(ProtocolEcho|Example|AddModuleInfo|MimeMagicFile|CheckSpelling|ExtendedStatus|SuexecUserGroup|UserDir)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.negotiation.apacheconf\"}},\"match\":\"\\\\\\\\b(CacheNegotiatedDocs|ForceLanguagePriority|LanguagePriority)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.nw_ssl.apacheconf\"}},\"match\":\"\\\\\\\\b(NWSSLTrustedCerts|NWSSLUpgradeable|SecureListen)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.proxy.apacheconf\"}},\"match\":\"\\\\\\\\b(AllowCONNECT|NoProxy|ProxyBadHeader|ProxyBlock|ProxyDomain|ProxyErrorOverride|ProxyFtpDirCharset|ProxyIOBufferSize|ProxyMaxForwards|ProxyPass|ProxyPassMatch|ProxyPassReverse|ProxyPreserveHost|ProxyReceiveBufferSize|ProxyRemote|ProxyRemoteMatch|ProxyRequests|ProxyTimeout|ProxyVia)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.rewrite.apacheconf\"}},\"match\":\"\\\\\\\\b(RewriteBase|RewriteCond|RewriteEngine|RewriteLock|RewriteLog|RewriteLogLevel|RewriteMap|RewriteOptions|RewriteRule)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.setenvif.apacheconf\"}},\"match\":\"\\\\\\\\b(BrowserMatch|BrowserMatchNoCase|SetEnvIf|SetEnvIfNoCase)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.so.apacheconf\"}},\"match\":\"\\\\\\\\b(LoadFile|LoadModule)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.ssl.apacheconf\"}},\"match\":\"\\\\\\\\b(SSLCACertificateFile|SSLCACertificatePath|SSLCARevocationFile|SSLCARevocationPath|SSLCertificateChainFile|SSLCertificateFile|SSLCertificateKeyFile|SSLCipherSuite|SSLEngine|SSLMutex|SSLOptions|SSLPassPhraseDialog|SSLProtocol|SSLProxyCACertificateFile|SSLProxyCACertificatePath|SSLProxyCARevocationFile|SSLProxyCARevocationPath|SSLProxyCipherSuite|SSLProxyEngine|SSLProxyMachineCertificateFile|SSLProxyMachineCertificatePath|SSLProxyProtocol|SSLProxyVerify|SSLProxyVerifyDepth|SSLRandomSeed|SSLRequire|SSLRequireSSL|SSLSessionCache|SSLSessionCacheTimeout|SSLUserName|SSLVerifyClient|SSLVerifyDepth|SSLInsecureRenegotiation|SSLOpenSSLConfCmd)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.substitute.apacheconf\"}},\"match\":\"\\\\\\\\b(Substitute|SubstituteInheritBefore|SubstituteMaxLineLength)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.usertrack.apacheconf\"}},\"match\":\"\\\\\\\\b(CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.vhost_alias.apacheconf\"}},\"match\":\"\\\\\\\\b(VirtualDocumentRoot|VirtualDocumentRootIP|VirtualScriptAlias|VirtualScriptAliasIP)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.php.apacheconf\"},\"3\":{\"name\":\"entity.property.apacheconf\"},\"5\":{\"name\":\"string.value.apacheconf\"}},\"match\":\"\\\\\\\\b(php_value|php_flag|php_admin_value|php_admin_flag)\\\\\\\\b(\\\\\\\\s+(.+?)(\\\\\\\\s+(\\\\\".+?\\\\\"|.+?))?)?\\\\\\\\s\"},{\"captures\":{\"1\":{\"name\":\"punctuation.variable.apacheconf\"},\"3\":{\"name\":\"variable.env.apacheconf\"},\"4\":{\"name\":\"variable.misc.apacheconf\"},\"5\":{\"name\":\"punctuation.variable.apacheconf\"}},\"match\":\"(%\\\\\\\\{)((HTTP_USER_AGENT|HTTP_REFERER|HTTP_COOKIE|HTTP_FORWARDED|HTTP_HOST|HTTP_PROXY_CONNECTION|HTTP_ACCEPT|REMOTE_ADDR|REMOTE_HOST|REMOTE_PORT|REMOTE_USER|REMOTE_IDENT|REQUEST_METHOD|SCRIPT_FILENAME|PATH_INFO|QUERY_STRING|AUTH_TYPE|DOCUMENT_ROOT|SERVER_ADMIN|SERVER_NAME|SERVER_ADDR|SERVER_PORT|SERVER_PROTOCOL|SERVER_SOFTWARE|TIME_YEAR|TIME_MON|TIME_DAY|TIME_HOUR|TIME_MIN|TIME_SEC|TIME_WDAY|TIME|API_VERSION|THE_REQUEST|REQUEST_URI|REQUEST_FILENAME|IS_SUBREQ|HTTPS)|(.*?))(\\\\\\\\})\"},{\"captures\":{\"1\":{\"name\":\"entity.mime-type.apacheconf\"}},\"match\":\"\\\\\\\\b((text|image|application|video|audio)/.+?)\\\\\\\\s\"},{\"captures\":{\"1\":{\"name\":\"entity.helper.apacheconf\"}},\"match\":\"\\\\\\\\b(?i)(export|from|unset|set|on|off)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"constant.numeric.integer.decimal.apacheconf\"}},\"match\":\"\\\\\\\\b(\\\\\\\\d+)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.flag.apacheconf\"},\"2\":{\"name\":\"string.flag.apacheconf\"},\"3\":{\"name\":\"punctuation.definition.flag.apacheconf\"}},\"match\":\"\\\\\\\\s(\\\\\\\\[)(.*?)(\\\\\\\\])\\\\\\\\s\"}],\"scopeName\":\"source.apacheconf\"}')),a=[e];export{a as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DnULxvSX.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBackground\":\"#343841\",\"activityBar.background\":\"#17191e\",\"activityBar.border\":\"#343841\",\"activityBar.foreground\":\"#eef0f9\",\"activityBar.inactiveForeground\":\"#858b98\",\"activityBarBadge.background\":\"#4bf3c8\",\"activityBarBadge.foreground\":\"#000000\",\"badge.background\":\"#bfc1c9\",\"badge.foreground\":\"#17191e\",\"breadcrumb.activeSelectionForeground\":\"#eef0f9\",\"breadcrumb.background\":\"#17191e\",\"breadcrumb.focusForeground\":\"#eef0f9\",\"breadcrumb.foreground\":\"#858b98\",\"button.background\":\"#4bf3c8\",\"button.foreground\":\"#17191e\",\"button.hoverBackground\":\"#31c19c\",\"button.secondaryBackground\":\"#545864\",\"button.secondaryForeground\":\"#eef0f9\",\"button.secondaryHoverBackground\":\"#858b98\",\"checkbox.background\":\"#23262d\",\"checkbox.border\":\"#00000000\",\"checkbox.foreground\":\"#eef0f9\",\"debugExceptionWidget.background\":\"#23262d\",\"debugExceptionWidget.border\":\"#8996d5\",\"debugToolBar.background\":\"#000\",\"debugToolBar.border\":\"#ffffff00\",\"diffEditor.border\":\"#ffffff00\",\"diffEditor.insertedTextBackground\":\"#4bf3c824\",\"diffEditor.removedTextBackground\":\"#dc365724\",\"dropdown.background\":\"#23262d\",\"dropdown.border\":\"#00000000\",\"dropdown.foreground\":\"#eef0f9\",\"editor.background\":\"#17191e\",\"editor.findMatchBackground\":\"#515c6a\",\"editor.findMatchBorder\":\"#74879f\",\"editor.findMatchHighlightBackground\":\"#ea5c0055\",\"editor.findMatchHighlightBorder\":\"#ffffff00\",\"editor.findRangeHighlightBackground\":\"#23262d\",\"editor.findRangeHighlightBorder\":\"#b2434300\",\"editor.foldBackground\":\"#ad5dca26\",\"editor.foreground\":\"#eef0f9\",\"editor.hoverHighlightBackground\":\"#5495d740\",\"editor.inactiveSelectionBackground\":\"#2a2d34\",\"editor.lineHighlightBackground\":\"#23262d\",\"editor.lineHighlightBorder\":\"#ffffff00\",\"editor.rangeHighlightBackground\":\"#ffffff0b\",\"editor.rangeHighlightBorder\":\"#ffffff00\",\"editor.selectionBackground\":\"#ad5dca44\",\"editor.selectionHighlightBackground\":\"#add6ff34\",\"editor.selectionHighlightBorder\":\"#495f77\",\"editor.wordHighlightBackground\":\"#494949b8\",\"editor.wordHighlightStrongBackground\":\"#004972b8\",\"editorBracketMatch.background\":\"#545864\",\"editorBracketMatch.border\":\"#ffffff00\",\"editorCodeLens.foreground\":\"#bfc1c9\",\"editorCursor.background\":\"#000000\",\"editorCursor.foreground\":\"#aeafad\",\"editorError.background\":\"#ffffff00\",\"editorError.border\":\"#ffffff00\",\"editorError.foreground\":\"#f4587e\",\"editorGroup.border\":\"#343841\",\"editorGroup.emptyBackground\":\"#17191e\",\"editorGroupHeader.border\":\"#ffffff00\",\"editorGroupHeader.tabsBackground\":\"#23262d\",\"editorGroupHeader.tabsBorder\":\"#ffffff00\",\"editorGutter.addedBackground\":\"#4bf3c8\",\"editorGutter.background\":\"#17191e\",\"editorGutter.commentRangeForeground\":\"#545864\",\"editorGutter.deletedBackground\":\"#f06788\",\"editorGutter.foldingControlForeground\":\"#545864\",\"editorGutter.modifiedBackground\":\"#54b9ff\",\"editorHoverWidget.background\":\"#252526\",\"editorHoverWidget.border\":\"#454545\",\"editorHoverWidget.foreground\":\"#cccccc\",\"editorIndentGuide.activeBackground\":\"#858b98\",\"editorIndentGuide.background\":\"#343841\",\"editorInfo.background\":\"#4490bf00\",\"editorInfo.border\":\"#4490bf00\",\"editorInfo.foreground\":\"#54b9ff\",\"editorLineNumber.activeForeground\":\"#858b98\",\"editorLineNumber.foreground\":\"#545864\",\"editorLink.activeForeground\":\"#54b9ff\",\"editorMarkerNavigation.background\":\"#23262d\",\"editorMarkerNavigationError.background\":\"#dc3657\",\"editorMarkerNavigationInfo.background\":\"#54b9ff\",\"editorMarkerNavigationWarning.background\":\"#ffd493\",\"editorOverviewRuler.background\":\"#ffffff00\",\"editorOverviewRuler.border\":\"#ffffff00\",\"editorRuler.foreground\":\"#545864\",\"editorSuggestWidget.background\":\"#252526\",\"editorSuggestWidget.border\":\"#454545\",\"editorSuggestWidget.foreground\":\"#d4d4d4\",\"editorSuggestWidget.highlightForeground\":\"#0097fb\",\"editorSuggestWidget.selectedBackground\":\"#062f4a\",\"editorWarning.background\":\"#a9904000\",\"editorWarning.border\":\"#ffffff00\",\"editorWarning.foreground\":\"#fbc23b\",\"editorWhitespace.foreground\":\"#cc75f450\",\"editorWidget.background\":\"#343841\",\"editorWidget.foreground\":\"#ffffff\",\"editorWidget.resizeBorder\":\"#cc75f4\",\"focusBorder\":\"#00daef\",\"foreground\":\"#cccccc\",\"gitDecoration.addedResourceForeground\":\"#4bf3c8\",\"gitDecoration.conflictingResourceForeground\":\"#00daef\",\"gitDecoration.deletedResourceForeground\":\"#f4587e\",\"gitDecoration.ignoredResourceForeground\":\"#858b98\",\"gitDecoration.modifiedResourceForeground\":\"#ffd493\",\"gitDecoration.stageDeletedResourceForeground\":\"#c74e39\",\"gitDecoration.stageModifiedResourceForeground\":\"#ffd493\",\"gitDecoration.submoduleResourceForeground\":\"#54b9ff\",\"gitDecoration.untrackedResourceForeground\":\"#4bf3c8\",\"icon.foreground\":\"#cccccc\",\"input.background\":\"#23262d\",\"input.border\":\"#bfc1c9\",\"input.foreground\":\"#eef0f9\",\"input.placeholderForeground\":\"#858b98\",\"inputOption.activeBackground\":\"#54b9ff\",\"inputOption.activeBorder\":\"#007acc00\",\"inputOption.activeForeground\":\"#17191e\",\"list.activeSelectionBackground\":\"#2d4860\",\"list.activeSelectionForeground\":\"#ffffff\",\"list.dropBackground\":\"#17191e\",\"list.focusBackground\":\"#54b9ff\",\"list.focusForeground\":\"#ffffff\",\"list.highlightForeground\":\"#ffffff\",\"list.hoverBackground\":\"#343841\",\"list.hoverForeground\":\"#eef0f9\",\"list.inactiveSelectionBackground\":\"#17191e\",\"list.inactiveSelectionForeground\":\"#eef0f9\",\"listFilterWidget.background\":\"#2d4860\",\"listFilterWidget.noMatchesOutline\":\"#dc3657\",\"listFilterWidget.outline\":\"#54b9ff\",\"menu.background\":\"#252526\",\"menu.border\":\"#00000085\",\"menu.foreground\":\"#cccccc\",\"menu.selectionBackground\":\"#094771\",\"menu.selectionBorder\":\"#00000000\",\"menu.selectionForeground\":\"#4bf3c8\",\"menu.separatorBackground\":\"#bbbbbb\",\"menubar.selectionBackground\":\"#ffffff1a\",\"menubar.selectionForeground\":\"#cccccc\",\"merge.commonContentBackground\":\"#282828\",\"merge.commonHeaderBackground\":\"#383838\",\"merge.currentContentBackground\":\"#27403b\",\"merge.currentHeaderBackground\":\"#367366\",\"merge.incomingContentBackground\":\"#28384b\",\"merge.incomingHeaderBackground\":\"#395f8f\",\"minimap.background\":\"#17191e\",\"minimap.errorHighlight\":\"#dc3657\",\"minimap.findMatchHighlight\":\"#515c6a\",\"minimap.selectionHighlight\":\"#3757b942\",\"minimap.warningHighlight\":\"#fbc23b\",\"minimapGutter.addedBackground\":\"#4bf3c8\",\"minimapGutter.deletedBackground\":\"#f06788\",\"minimapGutter.modifiedBackground\":\"#54b9ff\",\"notificationCenter.border\":\"#ffffff00\",\"notificationCenterHeader.background\":\"#343841\",\"notificationCenterHeader.foreground\":\"#17191e\",\"notificationToast.border\":\"#ffffff00\",\"notifications.background\":\"#343841\",\"notifications.border\":\"#bfc1c9\",\"notifications.foreground\":\"#ffffff\",\"notificationsErrorIcon.foreground\":\"#f4587e\",\"notificationsInfoIcon.foreground\":\"#54b9ff\",\"notificationsWarningIcon.foreground\":\"#ff8551\",\"panel.background\":\"#23262d\",\"panel.border\":\"#17191e\",\"panelSection.border\":\"#17191e\",\"panelTitle.activeBorder\":\"#e7e7e7\",\"panelTitle.activeForeground\":\"#eef0f9\",\"panelTitle.inactiveForeground\":\"#bfc1c9\",\"peekView.border\":\"#007acc\",\"peekViewEditor.background\":\"#001f33\",\"peekViewEditor.matchHighlightBackground\":\"#ff8f0099\",\"peekViewEditor.matchHighlightBorder\":\"#ee931e\",\"peekViewEditorGutter.background\":\"#001f33\",\"peekViewResult.background\":\"#252526\",\"peekViewResult.fileForeground\":\"#ffffff\",\"peekViewResult.lineForeground\":\"#bbbbbb\",\"peekViewResult.matchHighlightBackground\":\"#f00\",\"peekViewResult.selectionBackground\":\"#3399ff33\",\"peekViewResult.selectionForeground\":\"#ffffff\",\"peekViewTitle.background\":\"#1e1e1e\",\"peekViewTitleDescription.foreground\":\"#ccccccb3\",\"peekViewTitleLabel.foreground\":\"#ffffff\",\"pickerGroup.border\":\"#ffffff00\",\"pickerGroup.foreground\":\"#eef0f9\",\"progressBar.background\":\"#4bf3c8\",\"scrollbar.shadow\":\"#000000\",\"scrollbarSlider.activeBackground\":\"#54b9ff66\",\"scrollbarSlider.background\":\"#54586466\",\"scrollbarSlider.hoverBackground\":\"#545864B3\",\"selection.background\":\"#00daef56\",\"settings.focusedRowBackground\":\"#ffffff07\",\"settings.headerForeground\":\"#cccccc\",\"sideBar.background\":\"#23262d\",\"sideBar.border\":\"#17191e\",\"sideBar.dropBackground\":\"#17191e\",\"sideBar.foreground\":\"#bfc1c9\",\"sideBarSectionHeader.background\":\"#343841\",\"sideBarSectionHeader.border\":\"#17191e\",\"sideBarSectionHeader.foreground\":\"#eef0f9\",\"sideBarTitle.foreground\":\"#eef0f9\",\"statusBar.background\":\"#17548b\",\"statusBar.debuggingBackground\":\"#cc75f4\",\"statusBar.debuggingForeground\":\"#eef0f9\",\"statusBar.foreground\":\"#eef0f9\",\"statusBar.noFolderBackground\":\"#6c3c7d\",\"statusBar.noFolderForeground\":\"#eef0f9\",\"statusBarItem.activeBackground\":\"#ffffff25\",\"statusBarItem.hoverBackground\":\"#ffffff1f\",\"statusBarItem.remoteBackground\":\"#297763\",\"statusBarItem.remoteForeground\":\"#eef0f9\",\"tab.activeBackground\":\"#17191e\",\"tab.activeBorder\":\"#ffffff00\",\"tab.activeBorderTop\":\"#eef0f9\",\"tab.activeForeground\":\"#eef0f9\",\"tab.border\":\"#17191e\",\"tab.hoverBackground\":\"#343841\",\"tab.hoverForeground\":\"#eef0f9\",\"tab.inactiveBackground\":\"#23262d\",\"tab.inactiveForeground\":\"#858b98\",\"terminal.ansiBlack\":\"#17191e\",\"terminal.ansiBlue\":\"#2b7eca\",\"terminal.ansiBrightBlack\":\"#545864\",\"terminal.ansiBrightBlue\":\"#54b9ff\",\"terminal.ansiBrightCyan\":\"#00daef\",\"terminal.ansiBrightGreen\":\"#4bf3c8\",\"terminal.ansiBrightMagenta\":\"#cc75f4\",\"terminal.ansiBrightRed\":\"#f4587e\",\"terminal.ansiBrightWhite\":\"#fafafa\",\"terminal.ansiBrightYellow\":\"#ffd493\",\"terminal.ansiCyan\":\"#24c0cf\",\"terminal.ansiGreen\":\"#23d18b\",\"terminal.ansiMagenta\":\"#ad5dca\",\"terminal.ansiRed\":\"#dc3657\",\"terminal.ansiWhite\":\"#eef0f9\",\"terminal.ansiYellow\":\"#ffc368\",\"terminal.border\":\"#80808059\",\"terminal.foreground\":\"#cccccc\",\"terminal.selectionBackground\":\"#ffffff40\",\"terminalCursor.background\":\"#0087ff\",\"terminalCursor.foreground\":\"#ffffff\",\"textLink.foreground\":\"#54b9ff\",\"titleBar.activeBackground\":\"#17191e\",\"titleBar.activeForeground\":\"#cccccc\",\"titleBar.border\":\"#00000000\",\"titleBar.inactiveBackground\":\"#3c3c3c99\",\"titleBar.inactiveForeground\":\"#cccccc99\",\"tree.indentGuidesStroke\":\"#545864\",\"walkThrough.embeddedEditorBackground\":\"#00000050\",\"widget.shadow\":\"#ffffff00\"},\"displayName\":\"Houston\",\"name\":\"houston\",\"semanticHighlighting\":true,\"semanticTokenColors\":{\"enumMember\":{\"foreground\":\"#eef0f9\"},\"variable.constant\":{\"foreground\":\"#ffd493\"},\"variable.defaultLibrary\":{\"foreground\":\"#acafff\"}},\"tokenColors\":[{\"scope\":\"punctuation.definition.delayed.unison,punctuation.definition.list.begin.unison,punctuation.definition.list.end.unison,punctuation.definition.ability.begin.unison,punctuation.definition.ability.end.unison,punctuation.operator.assignment.as.unison,punctuation.separator.pipe.unison,punctuation.separator.delimiter.unison,punctuation.definition.hash.unison\",\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":\"variable.other.generic-type.haskell\",\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":\"storage.type.haskell\",\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":\"support.variable.magic.python\",\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":\"punctuation.separator.period.python,punctuation.separator.element.python,punctuation.parenthesis.begin.python,punctuation.parenthesis.end.python\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"variable.parameter.function.language.special.self.python\",\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":\"storage.modifier.lifetime.rust\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"support.function.std.rust\",\"settings\":{\"foreground\":\"#00daef\"}},{\"scope\":\"entity.name.lifetime.rust\",\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":\"variable.language.rust\",\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":\"support.constant.edge\",\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":\"constant.other.character-class.regexp\",\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":\"keyword.operator.quantifier.regexp\",\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":\"punctuation.definition.string.begin,punctuation.definition.string.end\",\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":\"variable.parameter.function\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"comment markup.link\",\"settings\":{\"foreground\":\"#545864\"}},{\"scope\":\"markup.changed.diff\",\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":\"meta.diff.header.from-file,meta.diff.header.to-file,punctuation.definition.from-file.diff,punctuation.definition.to-file.diff\",\"settings\":{\"foreground\":\"#00daef\"}},{\"scope\":\"markup.inserted.diff\",\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":\"markup.deleted.diff\",\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":\"meta.function.c,meta.function.cpp\",\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":\"punctuation.section.block.begin.bracket.curly.cpp,punctuation.section.block.end.bracket.curly.cpp,punctuation.terminator.statement.c,punctuation.section.block.begin.bracket.curly.c,punctuation.section.block.end.bracket.curly.c,punctuation.section.parens.begin.bracket.round.c,punctuation.section.parens.end.bracket.round.c,punctuation.section.parameters.begin.bracket.round.c,punctuation.section.parameters.end.bracket.round.c\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"punctuation.separator.key-value\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"keyword.operator.expression.import\",\"settings\":{\"foreground\":\"#00daef\"}},{\"scope\":\"support.constant.math\",\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":\"support.constant.property.math\",\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":\"variable.other.constant\",\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":[\"storage.type.annotation.java\",\"storage.type.object.array.java\"],\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":\"source.java\",\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":\"punctuation.section.block.begin.java,punctuation.section.block.end.java,punctuation.definition.method-parameters.begin.java,punctuation.definition.method-parameters.end.java,meta.method.identifier.java,punctuation.section.method.begin.java,punctuation.section.method.end.java,punctuation.terminator.java,punctuation.section.class.begin.java,punctuation.section.class.end.java,punctuation.section.inner-class.begin.java,punctuation.section.inner-class.end.java,meta.method-call.java,punctuation.section.class.begin.bracket.curly.java,punctuation.section.class.end.bracket.curly.java,punctuation.section.method.begin.bracket.curly.java,punctuation.section.method.end.bracket.curly.java,punctuation.separator.period.java,punctuation.bracket.angle.java,punctuation.definition.annotation.java,meta.method.body.java\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"meta.method.java\",\"settings\":{\"foreground\":\"#00daef\"}},{\"scope\":\"storage.modifier.import.java,storage.type.java,storage.type.generic.java\",\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":\"keyword.operator.instanceof.java\",\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":\"meta.definition.variable.name.java\",\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":\"keyword.operator.logical\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"keyword.operator.bitwise\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"keyword.operator.channel\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"support.constant.property-value.scss,support.constant.property-value.css\",\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":\"keyword.operator.css,keyword.operator.scss,keyword.operator.less\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"support.constant.color.w3c-standard-color-name.css,support.constant.color.w3c-standard-color-name.scss\",\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":\"punctuation.separator.list.comma.css\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"support.constant.color.w3c-standard-color-name.css\",\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":\"support.type.vendored.property-name.css\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"support.module.node,support.type.object.module,support.module.node\",\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":\"entity.name.type.module\",\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":\"variable.other.readwrite,meta.object-literal.key,support.variable.property,support.variable.object.process,support.variable.object.node\",\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":\"support.constant.json\",\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":[\"keyword.operator.expression.instanceof\",\"keyword.operator.new\",\"keyword.operator.ternary\",\"keyword.operator.optional\",\"keyword.operator.expression.keyof\"],\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":\"support.type.object.console\",\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":\"support.variable.property.process\",\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":\"entity.name.function,support.function.console\",\"settings\":{\"foreground\":\"#00daef\"}},{\"scope\":\"keyword.operator.misc.rust\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"keyword.operator.sigil.rust\",\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":\"keyword.operator.delete\",\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":\"support.type.object.dom\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"support.variable.dom,support.variable.property.dom\",\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":\"keyword.operator.arithmetic,keyword.operator.comparison,keyword.operator.decrement,keyword.operator.increment,keyword.operator.relational\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"keyword.operator.assignment.c,keyword.operator.comparison.c,keyword.operator.c,keyword.operator.increment.c,keyword.operator.decrement.c,keyword.operator.bitwise.shift.c,keyword.operator.assignment.cpp,keyword.operator.comparison.cpp,keyword.operator.cpp,keyword.operator.increment.cpp,keyword.operator.decrement.cpp,keyword.operator.bitwise.shift.cpp\",\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":\"punctuation.separator.delimiter\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"punctuation.separator.c,punctuation.separator.cpp\",\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":\"support.type.posix-reserved.c,support.type.posix-reserved.cpp\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"keyword.operator.sizeof.c,keyword.operator.sizeof.cpp\",\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":\"variable.parameter.function.language.python\",\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":\"support.type.python\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"keyword.operator.logical.python\",\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":\"variable.parameter.function.python\",\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":\"punctuation.definition.arguments.begin.python,punctuation.definition.arguments.end.python,punctuation.separator.arguments.python,punctuation.definition.list.begin.python,punctuation.definition.list.end.python\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"meta.function-call.generic.python\",\"settings\":{\"foreground\":\"#00daef\"}},{\"scope\":\"constant.character.format.placeholder.other.python\",\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":\"keyword.operator\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"keyword.operator.assignment.compound\",\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":\"keyword.operator.assignment.compound.js,keyword.operator.assignment.compound.ts\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"keyword\",\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":\"entity.name.namespace\",\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":\"variable\",\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":\"variable.c\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"variable.language\",\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":\"token.variable.parameter.java\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"import.storage.java\",\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":\"token.package.keyword\",\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":\"token.package\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":[\"entity.name.function\",\"meta.require\",\"support.function.any-method\",\"variable.function\"],\"settings\":{\"foreground\":\"#00daef\"}},{\"scope\":\"entity.name.type.namespace\",\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":\"support.class, entity.name.type.class\",\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":\"entity.name.class.identifier.namespace.type\",\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":[\"entity.name.class\",\"variable.other.class.js\",\"variable.other.class.ts\"],\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":\"variable.other.class.php\",\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":\"entity.name.type\",\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":\"keyword.control\",\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":\"control.elements, keyword.operator.less\",\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":\"keyword.other.special-method\",\"settings\":{\"foreground\":\"#00daef\"}},{\"scope\":\"storage\",\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":\"token.storage\",\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":\"keyword.operator.expression.delete,keyword.operator.expression.in,keyword.operator.expression.of,keyword.operator.expression.instanceof,keyword.operator.new,keyword.operator.expression.typeof,keyword.operator.expression.void\",\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":\"token.storage.type.java\",\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":\"support.function\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"support.type.property-name\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"support.constant.property-value\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"support.constant.font-name\",\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":\"meta.tag\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"string\",\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":\"entity.other.inherited-class\",\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":\"constant.other.symbol\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"constant.numeric\",\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":\"constant\",\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":\"punctuation.definition.constant\",\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":\"entity.name.tag\",\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":\"entity.other.attribute-name\",\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":\"entity.other.attribute-name.html\",\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":\"source.astro.meta.attribute.client:idle.html\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#ffd493\"}},{\"scope\":\"string.quoted.double.html,string.quoted.single.html,string.template.html,punctuation.definition.string.begin.html,punctuation.definition.string.end.html\",\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":\"entity.other.attribute-name.id\",\"settings\":{\"fontStyle\":\"normal\",\"foreground\":\"#00daef\"}},{\"scope\":\"entity.other.attribute-name.class.css\",\"settings\":{\"fontStyle\":\"normal\",\"foreground\":\"#4bf3c8\"}},{\"scope\":\"meta.selector\",\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":\"markup.heading\",\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":\"markup.heading punctuation.definition.heading, entity.name.section\",\"settings\":{\"foreground\":\"#00daef\"}},{\"scope\":\"keyword.other.unit\",\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":\"markup.bold,todo.bold\",\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":\"punctuation.definition.bold\",\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":\"markup.italic, punctuation.definition.italic,todo.emphasis\",\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":\"emphasis md\",\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":\"entity.name.section.markdown\",\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":\"punctuation.definition.heading.markdown\",\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":\"punctuation.definition.list.begin.markdown\",\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":\"markup.heading.setext\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"punctuation.definition.bold.markdown\",\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":\"markup.inline.raw.markdown\",\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":\"markup.inline.raw.string.markdown\",\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":\"punctuation.definition.list.markdown\",\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":[\"punctuation.definition.string.begin.markdown\",\"punctuation.definition.string.end.markdown\",\"punctuation.definition.metadata.markdown\"],\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":[\"beginning.punctuation.definition.list.markdown\"],\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":\"punctuation.definition.metadata.markdown\",\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":\"markup.underline.link.markdown,markup.underline.link.image.markdown\",\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":\"string.other.link.title.markdown,string.other.link.description.markdown\",\"settings\":{\"foreground\":\"#00daef\"}},{\"scope\":\"string.regexp\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"constant.character.escape\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"punctuation.section.embedded, variable.interpolation\",\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":\"punctuation.section.embedded.begin,punctuation.section.embedded.end\",\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":\"invalid.illegal\",\"settings\":{\"foreground\":\"#ffffff\"}},{\"scope\":\"invalid.illegal.bad-ampersand.html\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"invalid.broken\",\"settings\":{\"foreground\":\"#ffffff\"}},{\"scope\":\"invalid.deprecated\",\"settings\":{\"foreground\":\"#ffffff\"}},{\"scope\":\"invalid.unimplemented\",\"settings\":{\"foreground\":\"#ffffff\"}},{\"scope\":\"source.json meta.structure.dictionary.json > string.quoted.json\",\"settings\":{\"foreground\":\"#cc75f4\"}},{\"scope\":\"source.json meta.structure.dictionary.json > string.quoted.json > punctuation.string\",\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":\"source.json meta.structure.dictionary.json > value.json > string.quoted.json,source.json meta.structure.array.json > value.json > string.quoted.json,source.json meta.structure.dictionary.json > value.json > string.quoted.json > punctuation,source.json meta.structure.array.json > value.json > string.quoted.json > punctuation\",\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":\"source.json meta.structure.dictionary.json > constant.language.json,source.json meta.structure.array.json > constant.language.json\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"support.type.property-name.json\",\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":\"support.type.property-name.json punctuation\",\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":\"text.html.laravel-blade source.php.embedded.line.html entity.name.tag.laravel-blade\",\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":\"text.html.laravel-blade source.php.embedded.line.html support.constant.laravel-blade\",\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":\"support.other.namespace.use.php,support.other.namespace.use-as.php,support.other.namespace.php,entity.other.alias.php,meta.interface.php\",\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":\"keyword.operator.error-control.php\",\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":\"keyword.operator.type.php\",\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":\"punctuation.section.array.begin.php\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"punctuation.section.array.end.php\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"invalid.illegal.non-null-typehinted.php\",\"settings\":{\"foreground\":\"#f44747\"}},{\"scope\":\"storage.type.php,meta.other.type.phpdoc.php,keyword.other.type.php,keyword.other.array.phpdoc.php\",\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":\"meta.function-call.php,meta.function-call.object.php,meta.function-call.static.php\",\"settings\":{\"foreground\":\"#00daef\"}},{\"scope\":\"punctuation.definition.parameters.begin.bracket.round.php,punctuation.definition.parameters.end.bracket.round.php,punctuation.separator.delimiter.php,punctuation.section.scope.begin.php,punctuation.section.scope.end.php,punctuation.terminator.expression.php,punctuation.definition.arguments.begin.bracket.round.php,punctuation.definition.arguments.end.bracket.round.php,punctuation.definition.storage-type.begin.bracket.round.php,punctuation.definition.storage-type.end.bracket.round.php,punctuation.definition.array.begin.bracket.round.php,punctuation.definition.array.end.bracket.round.php,punctuation.definition.begin.bracket.round.php,punctuation.definition.end.bracket.round.php,punctuation.definition.begin.bracket.curly.php,punctuation.definition.end.bracket.curly.php,punctuation.definition.section.switch-block.end.bracket.curly.php,punctuation.definition.section.switch-block.start.bracket.curly.php,punctuation.definition.section.switch-block.begin.bracket.curly.php,punctuation.definition.section.switch-block.end.bracket.curly.php\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"support.constant.core.rust\",\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":\"support.constant.ext.php,support.constant.std.php,support.constant.core.php,support.constant.parser-token.php\",\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":\"entity.name.goto-label.php,support.other.php\",\"settings\":{\"foreground\":\"#00daef\"}},{\"scope\":\"keyword.operator.logical.php,keyword.operator.bitwise.php,keyword.operator.arithmetic.php\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"keyword.operator.regexp.php\",\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":\"keyword.operator.comparison.php\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"keyword.operator.heredoc.php,keyword.operator.nowdoc.php\",\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":\"meta.function.decorator.python\",\"settings\":{\"foreground\":\"#00daef\"}},{\"scope\":\"support.token.decorator.python,meta.function.decorator.identifier.python\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"function.parameter\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"function.brace\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"function.parameter.ruby, function.parameter.cs\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"constant.language.symbol.ruby\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"rgb-value\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"inline-color-decoration rgb-value\",\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":\"less rgb-value\",\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":\"selector.sass\",\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":\"support.type.primitive.ts,support.type.builtin.ts,support.type.primitive.tsx,support.type.builtin.tsx\",\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":\"block.scope.end,block.scope.begin\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"storage.type.cs\",\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":\"entity.name.variable.local.cs\",\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":\"token.info-token\",\"settings\":{\"foreground\":\"#00daef\"}},{\"scope\":\"token.warn-token\",\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":\"token.error-token\",\"settings\":{\"foreground\":\"#f44747\"}},{\"scope\":\"token.debug-token\",\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":[\"punctuation.definition.template-expression.begin\",\"punctuation.definition.template-expression.end\",\"punctuation.section.embedded\"],\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":[\"meta.template.expression\"],\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":[\"keyword.operator.module\"],\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":[\"support.type.type.flowtype\"],\"settings\":{\"foreground\":\"#00daef\"}},{\"scope\":[\"support.type.primitive\"],\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":[\"meta.property.object\"],\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":[\"variable.parameter.function.js\"],\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":[\"keyword.other.template.begin\"],\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":[\"keyword.other.template.end\"],\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":[\"keyword.other.substitution.begin\"],\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":[\"keyword.other.substitution.end\"],\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":[\"keyword.operator.assignment\"],\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":[\"keyword.operator.assignment.go\"],\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":[\"keyword.operator.arithmetic.go\",\"keyword.operator.address.go\"],\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":[\"entity.name.package.go\"],\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":[\"support.type.prelude.elm\"],\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":[\"support.constant.elm\"],\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":[\"punctuation.quasi.element\"],\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":[\"constant.character.entity\"],\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":[\"entity.other.attribute-name.pseudo-element\",\"entity.other.attribute-name.pseudo-class\"],\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":[\"entity.global.clojure\"],\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":[\"meta.symbol.clojure\"],\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":[\"constant.keyword.clojure\"],\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":[\"meta.arguments.coffee\",\"variable.parameter.function.coffee\"],\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":[\"source.ini\"],\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":[\"meta.scope.prerequisites.makefile\"],\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":[\"source.makefile\"],\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":[\"storage.modifier.import.groovy\"],\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":[\"meta.method.groovy\"],\"settings\":{\"foreground\":\"#00daef\"}},{\"scope\":[\"meta.definition.variable.name.groovy\"],\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":[\"meta.definition.class.inherited.classes.groovy\"],\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":[\"support.variable.semantic.hlsl\"],\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":[\"support.type.texture.hlsl\",\"support.type.sampler.hlsl\",\"support.type.object.hlsl\",\"support.type.object.rw.hlsl\",\"support.type.fx.hlsl\",\"support.type.object.hlsl\"],\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":[\"text.variable\",\"text.bracketed\"],\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":[\"support.type.swift\",\"support.type.vb.asp\"],\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":[\"entity.name.function.xi\"],\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":[\"entity.name.class.xi\"],\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":[\"constant.character.character-class.regexp.xi\"],\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":[\"constant.regexp.xi\"],\"settings\":{\"foreground\":\"#54b9ff\"}},{\"scope\":[\"keyword.control.xi\"],\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":[\"invalid.xi\"],\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":[\"beginning.punctuation.definition.quote.markdown.xi\"],\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":[\"beginning.punctuation.definition.list.markdown.xi\"],\"settings\":{\"foreground\":\"#eef0f98f\"}},{\"scope\":[\"constant.character.xi\"],\"settings\":{\"foreground\":\"#00daef\"}},{\"scope\":[\"accent.xi\"],\"settings\":{\"foreground\":\"#00daef\"}},{\"scope\":[\"wikiword.xi\"],\"settings\":{\"foreground\":\"#ffd493\"}},{\"scope\":[\"constant.other.color.rgb-value.xi\"],\"settings\":{\"foreground\":\"#ffffff\"}},{\"scope\":[\"punctuation.definition.tag.xi\"],\"settings\":{\"foreground\":\"#545864\"}},{\"scope\":[\"entity.name.label.cs\",\"entity.name.scope-resolution.function.call\",\"entity.name.scope-resolution.function.definition\"],\"settings\":{\"foreground\":\"#acafff\"}},{\"scope\":[\"entity.name.label.cs\",\"markup.heading.setext.1.markdown\",\"markup.heading.setext.2.markdown\"],\"settings\":{\"foreground\":\"#4bf3c8\"}},{\"scope\":[\" meta.brace.square\"],\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"comment, punctuation.definition.comment\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#eef0f98f\"}},{\"scope\":\"markup.quote.markdown\",\"settings\":{\"foreground\":\"#eef0f98f\"}},{\"scope\":\"punctuation.definition.block.sequence.item.yaml\",\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":[\"constant.language.symbol.elixir\"],\"settings\":{\"foreground\":\"#eef0f9\"}},{\"scope\":\"entity.other.attribute-name.js,entity.other.attribute-name.ts,entity.other.attribute-name.jsx,entity.other.attribute-name.tsx,variable.parameter,variable.language.super\",\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":\"comment.line.double-slash,comment.block.documentation\",\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":\"keyword.control.import.python,keyword.control.flow.python\",\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":\"markup.italic.markdown\",\"settings\":{\"fontStyle\":\"italic\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DnWQm4Tq.js",
    "content": "import{_ as t}from\"./D35nYK_C.js\";import{d as n,C as s,e as a,g as o}from\"./CU_MfyYc.js\";const p=[\"innerHTML\"],m=n({__name:\"Logs\",props:{logs:{}},setup(_){return(e,c)=>{const r=t;return e.logs.length?(o(),s(\"pre\",{key:0,class:\"whitespace-pre-line rounded border dark:border-gray-600 bg-gray-50 dark:bg-gray-700 select-text text-base dark:text-gray-300 w-full px-4 sm:px-6 py-2\",innerHTML:e.logs},null,8,p)):(o(),a(r,{key:1}))}}});export{m as _};\n"
  },
  {
    "path": "jesse/static/_nuxt/DoFvH58O.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"`\",close:\"`\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"`\",close:\"`\"}]},i={defaultToken:\"\",tokenPostfix:\".cypher\",ignoreCase:!0,brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.bracket\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],keywords:[\"ALL\",\"AND\",\"AS\",\"ASC\",\"ASCENDING\",\"BY\",\"CALL\",\"CASE\",\"CONTAINS\",\"CREATE\",\"DELETE\",\"DESC\",\"DESCENDING\",\"DETACH\",\"DISTINCT\",\"ELSE\",\"END\",\"ENDS\",\"EXISTS\",\"IN\",\"IS\",\"LIMIT\",\"MANDATORY\",\"MATCH\",\"MERGE\",\"NOT\",\"ON\",\"ON\",\"OPTIONAL\",\"OR\",\"ORDER\",\"REMOVE\",\"RETURN\",\"SET\",\"SKIP\",\"STARTS\",\"THEN\",\"UNION\",\"UNWIND\",\"WHEN\",\"WHERE\",\"WITH\",\"XOR\",\"YIELD\"],builtinLiterals:[\"true\",\"TRUE\",\"false\",\"FALSE\",\"null\",\"NULL\"],builtinFunctions:[\"abs\",\"acos\",\"asin\",\"atan\",\"atan2\",\"avg\",\"ceil\",\"coalesce\",\"collect\",\"cos\",\"cot\",\"count\",\"degrees\",\"e\",\"endNode\",\"exists\",\"exp\",\"floor\",\"head\",\"id\",\"keys\",\"labels\",\"last\",\"left\",\"length\",\"log\",\"log10\",\"lTrim\",\"max\",\"min\",\"nodes\",\"percentileCont\",\"percentileDisc\",\"pi\",\"properties\",\"radians\",\"rand\",\"range\",\"relationships\",\"replace\",\"reverse\",\"right\",\"round\",\"rTrim\",\"sign\",\"sin\",\"size\",\"split\",\"sqrt\",\"startNode\",\"stDev\",\"stDevP\",\"substring\",\"sum\",\"tail\",\"tan\",\"timestamp\",\"toBoolean\",\"toFloat\",\"toInteger\",\"toLower\",\"toString\",\"toUpper\",\"trim\",\"type\"],operators:[\"+\",\"-\",\"*\",\"/\",\"%\",\"^\",\"=\",\"<>\",\"<\",\">\",\"<=\",\">=\",\"->\",\"<-\",\"-->\",\"<--\"],escapes:/\\\\(?:[tbnrf\\\\\"'`]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\\d+/,octaldigits:/[0-7]+/,hexdigits:/[0-9a-fA-F]+/,tokenizer:{root:[[/[{}[\\]()]/,\"@brackets\"],{include:\"common\"}],common:[{include:\"@whitespace\"},{include:\"@numbers\"},{include:\"@strings\"},[/:[a-zA-Z_][\\w]*/,\"type.identifier\"],[/[a-zA-Z_][\\w]*(?=\\()/,{cases:{\"@builtinFunctions\":\"predefined.function\"}}],[/[a-zA-Z_$][\\w$]*/,{cases:{\"@keywords\":\"keyword\",\"@builtinLiterals\":\"predefined.literal\",\"@default\":\"identifier\"}}],[/`/,\"identifier.escape\",\"@identifierBacktick\"],[/[;,.:|]/,\"delimiter\"],[/[<>=%+\\-*/^]+/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}]],numbers:[[/-?(@digits)[eE](-?(@digits))?/,\"number.float\"],[/-?(@digits)?\\.(@digits)([eE]-?(@digits))?/,\"number.float\"],[/-?0x(@hexdigits)/,\"number.hex\"],[/-?0(@octaldigits)/,\"number.octal\"],[/-?(@digits)/,\"number\"]],strings:[[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/'([^'\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",\"@stringDouble\"],[/'/,\"string\",\"@stringSingle\"]],whitespace:[[/[ \\t\\r\\n]+/,\"white\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/\\/\\/.*/,\"comment\"],[/[^/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[/*]/,\"comment\"]],stringDouble:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string\"],[/\\\\./,\"string.invalid\"],[/\"/,\"string\",\"@pop\"]],stringSingle:[[/[^\\\\']+/,\"string\"],[/@escapes/,\"string\"],[/\\\\./,\"string.invalid\"],[/'/,\"string\",\"@pop\"]],identifierBacktick:[[/[^\\\\`]+/,\"identifier.escape\"],[/@escapes/,\"identifier.escape\"],[/\\\\./,\"identifier.escape.invalid\"],[/`/,\"identifier.escape\",\"@pop\"]]}};export{e as conf,i as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/DqwNpetd.js",
    "content": "const o=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.background\":\"#161F26\",\"activityBar.dropBackground\":\"#FFF\",\"activityBar.foreground\":\"#FFF\",\"activityBarBadge.background\":\"#8AE773\",\"activityBarBadge.foreground\":\"#FFF\",\"badge.background\":\"#8AE773\",\"breadcrumb.focusForeground\":\"#475663\",\"breadcrumb.foreground\":\"#161F26\",\"button.background\":\"#475663\",\"button.foreground\":\"#FFF\",\"button.hoverBackground\":\"#161F26\",\"debugExceptionWidget.background\":\"#AED4FB\",\"debugExceptionWidget.border\":\"#161F26\",\"debugToolBar.background\":\"#161F26\",\"dropdown.background\":\"#FFF\",\"dropdown.border\":\"#DCDEDF\",\"dropdown.foreground\":\"#DCDEDF\",\"dropdown.listBackground\":\"#FFF\",\"editor.background\":\"#FFF\",\"editor.findMatchBackground\":\"#AED4FB\",\"editor.foreground\":\"#000\",\"editor.lineHighlightBackground\":\"#EEEEEE\",\"editor.selectionBackground\":\"#AED4FB\",\"editor.wordHighlightBackground\":\"#AED4FB\",\"editor.wordHighlightStrongBackground\":\"#EEEEEE\",\"editorActiveLineNumber.foreground\":\"#475663\",\"editorGroup.emptyBackground\":\"#2D3E4C\",\"editorGroup.focusedEmptyBorder\":\"#2D3E4C\",\"editorGroupHeader.tabsBackground\":\"#2D3E4C\",\"editorHint.border\":\"#F9F9F9\",\"editorHint.foreground\":\"#F9F9F9\",\"editorIndentGuide.activeBackground\":\"#dbdbdb\",\"editorIndentGuide.background\":\"#F3F3F3\",\"editorLineNumber.foreground\":\"#b9b9b9\",\"editorMarkerNavigation.background\":\"#F9F9F9\",\"editorMarkerNavigationError.background\":\"#F44C5E\",\"editorMarkerNavigationInfo.background\":\"#6182b8\",\"editorMarkerNavigationWarning.background\":\"#F6B555\",\"editorPane.background\":\"#2D3E4C\",\"editorSuggestWidget.foreground\":\"#2D3E4C\",\"editorSuggestWidget.highlightForeground\":\"#2D3E4C\",\"editorSuggestWidget.selectedBackground\":\"#b9b9b9\",\"editorWidget.background\":\"#F9F9F9\",\"editorWidget.border\":\"#dbdbdb\",\"extensionButton.prominentBackground\":\"#475663\",\"extensionButton.prominentForeground\":\"#F6F6F6\",\"extensionButton.prominentHoverBackground\":\"#161F26\",\"focusBorder\":\"#161F26\",\"foreground\":\"#616161\",\"gitDecoration.addedResourceForeground\":\"#ECB22E\",\"gitDecoration.conflictingResourceForeground\":\"#FFF\",\"gitDecoration.deletedResourceForeground\":\"#FFF\",\"gitDecoration.ignoredResourceForeground\":\"#877583\",\"gitDecoration.modifiedResourceForeground\":\"#ECB22E\",\"gitDecoration.untrackedResourceForeground\":\"#ECB22E\",\"input.background\":\"#FFF\",\"input.border\":\"#161F26\",\"input.foreground\":\"#000\",\"input.placeholderForeground\":\"#a0a0a0\",\"inputOption.activeBorder\":\"#3E313C\",\"inputValidation.errorBackground\":\"#F44C5E\",\"inputValidation.errorForeground\":\"#FFF\",\"inputValidation.infoBackground\":\"#6182b8\",\"inputValidation.infoForeground\":\"#FFF\",\"inputValidation.warningBackground\":\"#F6B555\",\"inputValidation.warningForeground\":\"#000\",\"list.activeSelectionBackground\":\"#5899C5\",\"list.activeSelectionForeground\":\"#fff\",\"list.focusBackground\":\"#d5e1ea\",\"list.focusForeground\":\"#fff\",\"list.highlightForeground\":\"#2D3E4C\",\"list.hoverBackground\":\"#d5e1ea\",\"list.hoverForeground\":\"#fff\",\"list.inactiveFocusBackground\":\"#161F26\",\"list.inactiveSelectionBackground\":\"#5899C5\",\"list.inactiveSelectionForeground\":\"#fff\",\"list.invalidItemForeground\":\"#fff\",\"menu.background\":\"#161F26\",\"menu.foreground\":\"#F9FAFA\",\"menu.separatorBackground\":\"#F9FAFA\",\"notificationCenter.border\":\"#161F26\",\"notificationCenterHeader.foreground\":\"#FFF\",\"notificationLink.foreground\":\"#FFF\",\"notificationToast.border\":\"#161F26\",\"notifications.background\":\"#161F26\",\"notifications.border\":\"#161F26\",\"notifications.foreground\":\"#FFF\",\"panel.border\":\"#2D3E4C\",\"panelTitle.activeForeground\":\"#161F26\",\"progressBar.background\":\"#8AE773\",\"scrollbar.shadow\":\"#ffffff00\",\"scrollbarSlider.activeBackground\":\"#161F267e\",\"scrollbarSlider.background\":\"#161F267e\",\"scrollbarSlider.hoverBackground\":\"#161F267e\",\"settings.dropdownBorder\":\"#161F26\",\"settings.dropdownForeground\":\"#161F26\",\"settings.headerForeground\":\"#161F26\",\"sideBar.background\":\"#2D3E4C\",\"sideBar.foreground\":\"#DCDEDF\",\"sideBarSectionHeader.background\":\"#161F26\",\"sideBarSectionHeader.foreground\":\"#FFF\",\"sideBarTitle.foreground\":\"#FFF\",\"statusBar.background\":\"#5899C5\",\"statusBar.debuggingBackground\":\"#8AE773\",\"statusBar.foreground\":\"#FFF\",\"statusBar.noFolderBackground\":\"#161F26\",\"tab.activeBackground\":\"#FFF\",\"tab.activeForeground\":\"#000\",\"tab.border\":\"#F3F3F3\",\"tab.inactiveBackground\":\"#F3F3F3\",\"tab.inactiveForeground\":\"#686868\",\"terminal.ansiBlack\":\"#000000\",\"terminal.ansiBlue\":\"#6182b8\",\"terminal.ansiBrightBlack\":\"#90a4ae\",\"terminal.ansiBrightBlue\":\"#6182b8\",\"terminal.ansiBrightCyan\":\"#39adb5\",\"terminal.ansiBrightGreen\":\"#91b859\",\"terminal.ansiBrightMagenta\":\"#7c4dff\",\"terminal.ansiBrightRed\":\"#e53935\",\"terminal.ansiBrightWhite\":\"#ffffff\",\"terminal.ansiBrightYellow\":\"#ffb62c\",\"terminal.ansiCyan\":\"#39adb5\",\"terminal.ansiGreen\":\"#91b859\",\"terminal.ansiMagenta\":\"#7c4dff\",\"terminal.ansiRed\":\"#e53935\",\"terminal.ansiWhite\":\"#ffffff\",\"terminal.ansiYellow\":\"#ffb62c\",\"terminal.border\":\"#2D3E4C\",\"terminal.foreground\":\"#161F26\",\"terminal.selectionBackground\":\"#0006\",\"textPreformat.foreground\":\"#161F26\",\"titleBar.activeBackground\":\"#2D3E4C\",\"titleBar.activeForeground\":\"#FFF\",\"titleBar.border\":\"#2D3E4C\",\"titleBar.inactiveBackground\":\"#161F26\",\"titleBar.inactiveForeground\":\"#685C66\",\"welcomePage.buttonBackground\":\"#F3F3F3\",\"welcomePage.buttonHoverBackground\":\"#ECECEC\",\"widget.shadow\":\"#161F2694\"},\"displayName\":\"Slack Ochin\",\"name\":\"slack-ochin\",\"tokenColors\":[{\"settings\":{\"foreground\":\"#002339\"}},{\"scope\":[\"meta.paragraph.markdown\",\"string.other.link.description.title.markdown\"],\"settings\":{\"foreground\":\"#110000\"}},{\"scope\":[\"entity.name.section.markdown\",\"punctuation.definition.heading.markdown\"],\"settings\":{\"foreground\":\"#034c7c\"}},{\"scope\":[\"punctuation.definition.string.begin.markdown\",\"punctuation.definition.string.end.markdown\",\"markup.quote.markdown\"],\"settings\":{\"foreground\":\"#00AC8F\"}},{\"scope\":[\"markup.quote.markdown\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#003494\"}},{\"scope\":[\"markup.bold.markdown\",\"punctuation.definition.bold.markdown\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#4e76b5\"}},{\"scope\":[\"markup.italic.markdown\",\"punctuation.definition.italic.markdown\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#C792EA\"}},{\"scope\":[\"markup.inline.raw.string.markdown\",\"markup.fenced_code.block.markdown\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#0460b1\"}},{\"scope\":[\"punctuation.definition.metadata.markdown\"],\"settings\":{\"foreground\":\"#00AC8F\"}},{\"scope\":[\"markup.underline.link.image.markdown\",\"markup.underline.link.markdown\"],\"settings\":{\"foreground\":\"#924205\"}},{\"scope\":\"comment\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#357b42\"}},{\"scope\":\"string\",\"settings\":{\"foreground\":\"#a44185\"}},{\"scope\":\"constant.numeric\",\"settings\":{\"foreground\":\"#174781\"}},{\"scope\":\"constant\",\"settings\":{\"foreground\":\"#174781\"}},{\"scope\":\"language.method\",\"settings\":{\"foreground\":\"#174781\"}},{\"scope\":[\"constant.character\",\"constant.other\"],\"settings\":{\"foreground\":\"#174781\"}},{\"scope\":\"variable\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#2f86d2\"}},{\"scope\":\"variable.language.this\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#000000\"}},{\"scope\":\"keyword\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#7b30d0\"}},{\"scope\":\"storage\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#da5221\"}},{\"scope\":\"storage.type\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#0991b6\"}},{\"scope\":\"entity.name.class\",\"settings\":{\"foreground\":\"#1172c7\"}},{\"scope\":\"entity.other.inherited-class\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#b02767\"}},{\"scope\":\"entity.name.function\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#7eb233\"}},{\"scope\":\"variable.parameter\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#b1108e\"}},{\"scope\":\"entity.name.tag\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#0444ac\"}},{\"scope\":\"text.html.basic\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#0071ce\"}},{\"scope\":\"entity.name.type\",\"settings\":{\"foreground\":\"#0444ac\"}},{\"scope\":\"entity.other.attribute-name\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#df8618\"}},{\"scope\":\"support.function\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#1ab394\"}},{\"scope\":\"support.constant\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#174781\"}},{\"scope\":[\"support.type\",\"support.class\"],\"settings\":{\"foreground\":\"#dc3eb7\"}},{\"scope\":\"support.other.variable\",\"settings\":{\"foreground\":\"#224555\"}},{\"scope\":\"invalid\",\"settings\":{\"fontStyle\":\" italic bold underline\",\"foreground\":\"#207bb8\"}},{\"scope\":\"invalid.deprecated\",\"settings\":{\"fontStyle\":\" bold italic underline\",\"foreground\":\"#207bb8\"}},{\"scope\":\"source.json support\",\"settings\":{\"foreground\":\"#6dbdfa\"}},{\"scope\":[\"source.json string\",\"source.json punctuation.definition.string\"],\"settings\":{\"foreground\":\"#00820f\"}},{\"scope\":\"markup.list\",\"settings\":{\"foreground\":\"#207bb8\"}},{\"scope\":[\"markup.heading punctuation.definition.heading\",\"entity.name.section\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#4FB4D8\"}},{\"scope\":[\"text.html.markdown meta.paragraph meta.link.inline\",\"text.html.markdown meta.paragraph meta.link.inline punctuation.definition.string.begin.markdown\",\"text.html.markdown meta.paragraph meta.link.inline punctuation.definition.string.end.markdown\"],\"settings\":{\"foreground\":\"#87429A\"}},{\"scope\":\"markup.quote\",\"settings\":{\"foreground\":\"#87429A\"}},{\"scope\":\"markup.bold\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#08134A\"}},{\"scope\":[\"markup.italic\",\"punctuation.definition.italic\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#174781\"}},{\"scope\":\"meta.link\",\"settings\":{\"foreground\":\"#87429A\"}}],\"type\":\"light\"}'));export{o as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DrRCxMg5.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var t={brackets:[],autoClosingPairs:[],surroundingPairs:[]},r={keywords:[],typeKeywords:[],tokenPostfix:\".csp\",operators:[],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/child-src/,\"string.quote\"],[/connect-src/,\"string.quote\"],[/default-src/,\"string.quote\"],[/font-src/,\"string.quote\"],[/frame-src/,\"string.quote\"],[/img-src/,\"string.quote\"],[/manifest-src/,\"string.quote\"],[/media-src/,\"string.quote\"],[/object-src/,\"string.quote\"],[/script-src/,\"string.quote\"],[/style-src/,\"string.quote\"],[/worker-src/,\"string.quote\"],[/base-uri/,\"string.quote\"],[/plugin-types/,\"string.quote\"],[/sandbox/,\"string.quote\"],[/disown-opener/,\"string.quote\"],[/form-action/,\"string.quote\"],[/frame-ancestors/,\"string.quote\"],[/report-uri/,\"string.quote\"],[/report-to/,\"string.quote\"],[/upgrade-insecure-requests/,\"string.quote\"],[/block-all-mixed-content/,\"string.quote\"],[/require-sri-for/,\"string.quote\"],[/reflected-xss/,\"string.quote\"],[/referrer/,\"string.quote\"],[/policy-uri/,\"string.quote\"],[/'self'/,\"string.quote\"],[/'unsafe-inline'/,\"string.quote\"],[/'unsafe-eval'/,\"string.quote\"],[/'strict-dynamic'/,\"string.quote\"],[/'unsafe-hashed-attributes'/,\"string.quote\"]]}};export{t as conf,r as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/Dr_JbmT0.js",
    "content": "import{C as i,g as n,j as a,d as ae,c as M,aK as ne,r as D,i as o,f as l,F as B,O as q,E as x,x as e,G as V,H as c,D as H,v as ie,a3 as le,_ as de,e as I,ad as S,k as ge,ax as j,ar as k,ae as ce,y as G,z as ue,t as he,A as b,a0 as z,s as ye,a4 as pe,Q as ve}from\"./CU_MfyYc.js\";import{r as ke,a as fe,b as P,c as Q}from\"./C6794tGI.js\";function Y(w,_){return n(),i(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[a(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"})])}function J(w,_){return n(),i(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[a(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M6 6.878V6a2.25 2.25 0 0 1 2.25-2.25h7.5A2.25 2.25 0 0 1 18 6v.878m-12 0c.235-.083.487-.128.75-.128h10.5c.263 0 .515.045.75.128m-12 0A2.25 2.25 0 0 0 4.5 9v.878m13.5-3A2.25 2.25 0 0 1 19.5 9v.878m0 0a2.246 2.246 0 0 0-.75-.128H5.25c-.263 0-.515.045-.75.128m15 0A2.25 2.25 0 0 1 21 12v6a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 18v-6c0-.98.626-1.813 1.5-2.122\"})])}function X(w,_){return n(),i(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[a(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M3.75 6A2.25 2.25 0 0 1 6 3.75h2.25A2.25 2.25 0 0 1 10.5 6v2.25a2.25 2.25 0 0 1-2.25 2.25H6a2.25 2.25 0 0 1-2.25-2.25V6ZM3.75 15.75A2.25 2.25 0 0 1 6 13.5h2.25a2.25 2.25 0 0 1 2.25 2.25V18a2.25 2.25 0 0 1-2.25 2.25H6A2.25 2.25 0 0 1 3.75 18v-2.25ZM13.5 6a2.25 2.25 0 0 1 2.25-2.25H18A2.25 2.25 0 0 1 20.25 6v2.25A2.25 2.25 0 0 1 18 10.5h-2.25a2.25 2.25 0 0 1-2.25-2.25V6ZM13.5 15.75a2.25 2.25 0 0 1 2.25-2.25H18a2.25 2.25 0 0 1 2.25 2.25V18A2.25 2.25 0 0 1 18 20.25h-2.25A2.25 2.25 0 0 1 13.5 18v-2.25Z\"})])}const xe={class:\"mb-0\"},be={class:\"hidden lg:block\"},me={class:\"relative flex items-center px-2 border-b border-gray-200 dark:border-gray-700\",\"aria-label\":\"Tabs\"},we={class:\"relative z-10 flex items-center gap-1 py-1 shrink-0\"},_e={class:\"relative z-10 flex-1 min-w-0\"},Ce={class:\"flex items-center gap-1 py-1 pl-1 pr-1 min-w-0 overflow-hidden\"},$e=[\"onClick\"],Te={key:0,class:\"mr-2 shrink-0\"},Me={key:1,class:\"h-2 w-2 rounded-full bg-rose-500\"},Ve=[\"onDblclick\"],je=[\"onClick\"],Ae=[\"onClick\"],De={class:\"lg:hidden flex flex-col gap-1\"},Be={class:\"flex items-center gap-2 px-2 py-2 border-b border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-backdrop-dark\"},He={class:\"flex items-center gap-2 min-w-0\"},Ie={key:0,class:\"h-2 w-2 rounded-full bg-green-500 shrink-0 animate-pulse\"},Se={class:\"text-sm font-bold truncate text-gray-700 dark:text-gray-200\"},ze={class:\"flex items-center gap-1.5 shrink-0\"},Le={class:\"flex items-center justify-between\"},Ne={class:\"py-2 space-y-1 max-h-[60vh] overflow-y-auto\"},Ue=[\"onClick\"],Ee={key:0,class:\"shrink-0\"},Oe={key:0,class:\"h-2.5 w-2.5 rounded-full bg-green-500\"},Re={key:1,class:\"h-2.5 w-2.5 rounded-full bg-rose-500\"},Ze={class:\"flex-1 min-w-0\"},Ke=[\"onDblclick\"],Fe={key:0,class:\"text-[10px] font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider mt-0.5\"},We={key:1,class:\"flex items-center shrink-0\"},qe=[\"onClick\"],Ge=[\"onClick\"],Pe=ae({__name:\"LiveTabs\",props:{currentTab:{},tabs:{}},emits:[\"close\",\"cancel\"],setup(w,{emit:_}){const h=ne(),y=M(()=>h.params.id),f=D(!1),p=D(null),u=D(\"\"),L={mounted:t=>{const s=t.querySelector(\"input\")||t;s.focus(),s instanceof HTMLInputElement&&s.select()}},ee=_,N=w,U=M(()=>Object.keys(N.tabs).length),C=M(()=>U.value>1),E=M(()=>U.value<=10);function O(t){if(Object.keys(b().tabs).length>=z().planLimits.live_trading_tabs){ye(\"error\",`You have reached the limit of \"${z().planLimits.live_trading_tabs}\" tabs for your \"${z().plan}\" plan. Please upgrade your plan to add more tabs.`);return}b().addTab(t)}function re(){f.value=!1,O(N.currentTab)}function R(t){pe().push(`/live/${t}`)}function te(t){f.value=!1,R(t)}function m(t){if(t.results.generalInfo.title)return t.results.generalInfo.title;if(!t.form.routes.length)return\"New Tab\";const s=t.form.routes[0];let d=\"\";return s.strategy&&(d+=`${s.strategy} • `),s.symbol&&(d+=`${s.symbol} • `),s.timeframe&&(d+=`${s.timeframe}`),d=d.endsWith(\" • \")?d.slice(0,-3):d,t.results.showResults?`${d} | Results`:d}function A(t){if([\"starting\",\"running\",\"stopping\"].includes(t.results.phase)&&!t.results.exception.error){b().openStopConfirmModal(t.id);return}ee(\"close\",t.id)}function Z(t){p.value=t.id,u.value=t.results.generalInfo.title||m(t)}async function $(t){if(!p.value||u.value===(t.results.generalInfo.title||\"\")){T();return}await b().updateSessionNotes(t.id,u.value,t.results.generalInfo.description||\"\")&&(t.results.generalInfo.title=u.value),T()}function T(){p.value=null,u.value=\"\"}return(t,s)=>{var W;const d=ie,v=le,K=ge,F=he,se=ue,oe=de;return n(),i(\"div\",xe,[a(\"div\",be,[a(\"nav\",me,[s[8]||(s[8]=a(\"div\",{\"aria-hidden\":\"true\",class:\"absolute inset-0 z-0 bg-gray-50/50 dark:bg-backdrop-dark/50 backdrop-blur-sm pointer-events-none\"},null,-1)),a(\"div\",we,[o(d,{text:\"New Tab\",popper:{arrow:!0,offsetDistance:10}},{default:l(()=>[a(\"button\",{class:\"flex items-center justify-center p-1.5 text-gray-400 hover:text-gray-700 dark:hover:text-gray-200 hover:bg-gray-200/50 dark:hover:bg-gray-700/30 rounded-lg cursor-pointer transition-all duration-300 h-8 w-8\",onClick:s[0]||(s[0]=r=>O(t.currentTab))},[o(e(fe),{class:\"h-5 w-5\"})])]),_:1}),o(d,{text:\"Sessions History\",popper:{arrow:!0,offsetDistance:10}},{default:l(()=>[o(v,{href:\"/live/history\",class:c([e(h).path===\"/live/history\"?\"bg-white dark:bg-gray-700 text-gray-900 dark:text-white ring-1 ring-gray-200 dark:ring-gray-600\":\"text-gray-400 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200 hover:bg-gray-200/50 dark:hover:bg-gray-700/30\",\"flex items-center justify-center p-1.5 rounded-lg cursor-pointer transition-all duration-300 h-8 w-8\"])},{default:l(()=>[o(e(P),{class:\"h-5 w-5\"})]),_:1},8,[\"class\"])]),_:1}),o(d,{text:\"Orders History\",popper:{arrow:!0,offsetDistance:10}},{default:l(()=>[o(v,{href:\"/live/orders-history\",class:c([e(h).path===\"/live/orders-history\"?\"bg-white dark:bg-gray-700 text-gray-900 dark:text-white ring-1 ring-gray-200 dark:ring-gray-600\":\"text-gray-400 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200 hover:bg-gray-200/50 dark:hover:bg-gray-700/30\",\"flex items-center justify-center p-1.5 rounded-lg cursor-pointer transition-all duration-300 h-8 w-8\"])},{default:l(()=>[o(e(J),{class:\"h-5 w-5\"})]),_:1},8,[\"class\"])]),_:1}),o(d,{text:\"Trades History\",popper:{arrow:!0,offsetDistance:10}},{default:l(()=>[o(v,{href:\"/live/trades-history\",class:c([e(h).path===\"/live/trades-history\"?\"bg-white dark:bg-gray-700 text-gray-900 dark:text-white ring-1 ring-gray-200 dark:ring-gray-600\":\"text-gray-400 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200 hover:bg-gray-200/50 dark:hover:bg-gray-700/30\",\"flex items-center justify-center p-1.5 rounded-lg cursor-pointer transition-all duration-300 h-8 w-8\"])},{default:l(()=>[o(e(Y),{class:\"h-5 w-5\"})]),_:1},8,[\"class\"])]),_:1}),o(d,{text:\"Overview\",popper:{arrow:!0,offsetDistance:10}},{default:l(()=>[o(v,{href:\"/live/overview\",class:c([e(h).path===\"/live/overview\"?\"bg-white dark:bg-gray-700 text-gray-900 dark:text-white ring-1 ring-gray-200 dark:ring-gray-600\":\"text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200 hover:bg-gray-200/50 dark:hover:bg-gray-700/30\",\"flex items-center gap-2 px-3 py-1.5 text-xs font-bold rounded-lg cursor-pointer transition-all duration-300 select-none h-8\"])},{default:l(()=>[o(e(X),{class:\"h-5 w-5\"}),s[7]||(s[7]=a(\"span\",null,\"OVERVIEW\",-1))]),_:1},8,[\"class\"])]),_:1})]),s[9]||(s[9]=a(\"div\",{class:\"relative z-10 w-px h-6 bg-gray-300 dark:bg-gray-600 ml-3 mr-2 shrink-0\"},null,-1)),a(\"div\",_e,[a(\"div\",Ce,[(n(!0),i(B,null,q(t.tabs,r=>(n(),I(d,{key:r.id,class:\"flex-shrink min-w-0\",text:m(r),\"open-delay\":700,popper:{arrow:!0,offsetDistance:10},onMouseup:k(g=>A(r),[\"middle\"])},{default:l(()=>[a(\"div\",{class:c([r.id===e(y)?\"bg-white dark:bg-gray-700 text-gray-900 dark:text-white ring-1 ring-gray-200 dark:ring-gray-600\":\"text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200 hover:bg-gray-200/50 dark:hover:bg-gray-700/30\",\"group relative flex items-center py-1 text-xs font-bold rounded-lg cursor-pointer transition-all duration-300 select-none overflow-hidden h-8 max-w-[240px] min-w-0\",\"px-2\"]),onClick:g=>R(r.id)},[[\"running\",\"starting\",\"error\"].includes(r.results.phase)?(n(),i(\"div\",Te,[[\"running\",\"starting\"].includes(r.results.phase)?(n(),i(\"div\",{key:0,class:c([\"h-2 w-2 rounded-full bg-green-500\",r.results.phase===\"running\"?\"animate-pulse\":\"\"])},null,2)):r.results.phase===\"error\"?(n(),i(\"div\",Me)):x(\"\",!0)])):x(\"\",!0),e(p)===r.id?S((n(),I(K,{key:1,modelValue:e(u),\"onUpdate:modelValue\":s[1]||(s[1]=g=>H(u)?u.value=g:null),size:\"2xs\",class:\"flex-1 min-w-0\",onKeyup:[j(g=>$(r),[\"enter\"]),j(T,[\"esc\"])],onBlur:g=>$(r)},null,8,[\"modelValue\",\"onKeyup\",\"onBlur\"])),[[L]]):(n(),i(\"span\",{key:2,class:c([\"flex-1 min-w-0 whitespace-nowrap overflow-hidden text-clip text-left pr-8\",e(C)&&r.id===e(y)&&e(p)!==r.id?\"tab-text-fade-active\":\"\",e(C)&&r.id!==e(y)&&e(E)&&e(p)!==r.id?\"tab-text-fade-hover\":\"\"]),onDblclick:k(g=>Z(r),[\"stop\"])},V(m(r)),43,Ve)),S(a(\"div\",{class:c([\"absolute right-1 top-1/2 -translate-y-1/2 z-10 flex items-center justify-end transition-opacity duration-150\",r.id===e(y)?\"opacity-100 pointer-events-auto\":e(E)?\"opacity-0 pointer-events-none group-hover:opacity-100 group-hover:pointer-events-auto\":\"opacity-0 pointer-events-none\"])},[[\"starting\",\"running\",\"stopping\"].includes(r.results.phase)?(n(),i(\"button\",{key:0,class:\"p-0.5 rounded-full text-gray-500 dark:text-gray-400 bg-gray-100 dark:bg-gray-700 hover:bg-gray-200 dark:hover:bg-gray-600 hover:text-gray-700 dark:hover:text-gray-200 transition-all focus:outline-none\",onClick:k(g=>e(b)().openStopConfirmModal(r.id),[\"stop\"])},[o(e(Q),{class:\"h-3.5 w-3.5\"})],8,je)):(n(),i(\"button\",{key:1,class:\"p-0.5 rounded-full text-gray-500 dark:text-gray-400 bg-gray-100 dark:bg-gray-700 hover:bg-gray-200 dark:hover:bg-gray-600 hover:text-gray-700 dark:hover:text-gray-200 transition-all focus:outline-none\",onClick:k(g=>A(r),[\"stop\"])},[o(e(G),{class:\"h-3.5 w-3.5\"})],8,Ae))],2),[[ce,e(C)&&e(p)!==r.id]])],10,$e)]),_:2},1032,[\"text\",\"onMouseup\"]))),128))])])])]),a(\"div\",De,[a(\"div\",Be,[a(\"button\",{class:\"flex-1 flex items-center justify-between gap-2 px-3 h-10 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-xl active:scale-95 transition-all overflow-hidden\",onClick:s[2]||(s[2]=r=>f.value=!0)},[a(\"div\",He,[((W=t.tabs[e(y)])==null?void 0:W.results.phase)===\"running\"?(n(),i(\"div\",Ie)):x(\"\",!0),a(\"span\",Se,V(t.tabs[e(y)]?m(t.tabs[e(y)]):\"Select Tab\"),1)]),o(e(ke),{class:\"h-4 w-4 text-gray-400 shrink-0\"})]),a(\"div\",ze,[o(v,{href:\"/live/history\",class:c([e(h).path===\"/live/history\"?\"bg-indigo-50 dark:bg-indigo-900/30 text-indigo-600 dark:text-indigo-400 border border-indigo-200 dark:border-indigo-800\":\"bg-white dark:bg-gray-800 text-gray-600 dark:text-gray-300 border border-gray-200 dark:border-gray-700\",\"flex items-center justify-center rounded-xl transition-all h-10 w-10\"])},{default:l(()=>[o(e(P),{class:\"h-5 w-5\"})]),_:1},8,[\"class\"]),o(v,{href:\"/live/orders-history\",class:c([e(h).path===\"/live/orders-history\"?\"bg-indigo-50 dark:bg-indigo-900/30 text-indigo-600 dark:text-indigo-400 border border-indigo-200 dark:border-indigo-800\":\"bg-white dark:bg-gray-800 text-gray-600 dark:text-gray-300 border border-gray-200 dark:border-gray-700\",\"flex items-center justify-center rounded-xl transition-all h-10 w-10\"])},{default:l(()=>[o(e(J),{class:\"h-5 w-5\"})]),_:1},8,[\"class\"]),o(v,{href:\"/live/trades-history\",class:c([e(h).path===\"/live/trades-history\"?\"bg-indigo-50 dark:bg-indigo-900/30 text-indigo-600 dark:text-indigo-400 border border-indigo-200 dark:border-indigo-800\":\"bg-white dark:bg-gray-800 text-gray-600 dark:text-gray-300 border border-gray-200 dark:border-gray-700\",\"flex items-center justify-center rounded-xl transition-all h-10 w-10\"])},{default:l(()=>[o(e(Y),{class:\"h-5 w-5\"})]),_:1},8,[\"class\"]),o(v,{href:\"/live/overview\",class:c([e(h).path===\"/live/overview\"?\"bg-indigo-50 dark:bg-indigo-900/30 text-indigo-600 dark:text-indigo-400 border border-indigo-200 dark:border-indigo-800\":\"bg-white dark:bg-gray-800 text-gray-600 dark:text-gray-300 border border-gray-200 dark:border-gray-700\",\"flex items-center justify-center rounded-xl transition-all h-10 w-10\"])},{default:l(()=>[o(e(X),{class:\"h-5 w-5\"})]),_:1},8,[\"class\"])])]),o(oe,{modelValue:e(f),\"onUpdate:modelValue\":s[6]||(s[6]=r=>H(f)?f.value=r:null),ui:{width:\"max-w-md\"}},{default:l(()=>[o(se,{ui:{ring:\"\",shadow:\"shadow-none\",divide:\"divide-y divide-gray-100 dark:divide-gray-800\"}},{header:l(()=>[a(\"div\",Le,[s[10]||(s[10]=a(\"h3\",{class:\"text-base font-bold text-gray-900 dark:text-white\"},\" Live Sessions \",-1)),o(F,{color:\"gray\",variant:\"ghost\",icon:\"i-heroicons-x-mark-20-solid\",class:\"-my-1\",onClick:s[3]||(s[3]=r=>f.value=!1)})])]),footer:l(()=>[o(F,{block:\"\",color:\"gray\",variant:\"solid\",icon:\"i-heroicons-plus-circle\",label:\"New tab\",size:\"lg\",class:\"font-bold rounded-xl\",onClick:re})]),default:l(()=>[a(\"div\",Ne,[(n(!0),i(B,null,q(t.tabs,r=>(n(),i(\"div\",{key:r.id,class:\"px-2\"},[a(\"div\",{class:c([r.id===e(y)?\"bg-indigo-50 dark:bg-indigo-900/20 ring-2 ring-indigo-500/50\":\"bg-gray-50 dark:bg-gray-800/50 hover:bg-gray-100 dark:hover:bg-gray-800 active:bg-gray-200 dark:active:bg-gray-700\",\"flex items-center gap-3 p-3 rounded-xl transition-all cursor-pointer group\"]),onClick:g=>te(r.id)},[[\"running\",\"starting\",\"error\"].includes(r.results.phase)?(n(),i(\"div\",Ee,[[\"running\",\"starting\"].includes(r.results.phase)?(n(),i(\"div\",Oe)):r.results.phase===\"error\"?(n(),i(\"div\",Re)):x(\"\",!0)])):x(\"\",!0),a(\"div\",Ze,[e(p)===r.id?S((n(),I(K,{key:0,modelValue:e(u),\"onUpdate:modelValue\":s[4]||(s[4]=g=>H(u)?u.value=g:null),size:\"sm\",class:\"w-full\",onKeyup:[j(g=>$(r),[\"enter\"]),j(T,[\"esc\"])],onBlur:g=>$(r),onClick:s[5]||(s[5]=k(()=>{},[\"stop\"]))},null,8,[\"modelValue\",\"onKeyup\",\"onBlur\"])),[[L]]):(n(),i(B,{key:1},[a(\"div\",{class:c([\"text-sm font-bold truncate\",r.id===e(y)?\"text-indigo-600 dark:text-indigo-400\":\"text-gray-700 dark:text-gray-200\"]),onDblclick:k(g=>Z(r),[\"stop\"])},V(m(r)),43,Ke),r.results.phase?(n(),i(\"div\",Fe,V(r.results.phase),1)):x(\"\",!0)],64))]),e(C)&&e(p)!==r.id?(n(),i(\"div\",We,[[\"starting\",\"running\",\"stopping\"].includes(r.results.phase)?(n(),i(\"button\",{key:0,class:\"p-2 rounded-lg text-gray-500 dark:text-gray-400 bg-gray-100 dark:bg-gray-700 active:scale-95 transition-all\",onClick:k(g=>e(b)().openStopConfirmModal(r.id),[\"stop\"])},[o(e(Q),{class:\"h-4 w-4\"})],8,qe)):(n(),i(\"button\",{key:1,class:\"p-2 rounded-lg text-gray-500 dark:text-gray-400 bg-gray-100 dark:bg-gray-700 active:scale-95 transition-all\",onClick:k(g=>A(r),[\"stop\"])},[o(e(G),{class:\"h-4 w-4\"})],8,Ge))])):x(\"\",!0)],10,Ue)]))),128))])]),_:1})]),_:1},8,[\"modelValue\"])])])}}}),Je=ve(Pe,[[\"__scopeId\",\"data-v-54b92cce\"]]);export{Je as _};\n"
  },
  {
    "path": "jesse/static/_nuxt/DrqOgyji.js",
    "content": "import{a1 as l}from\"./CU_MfyYc.js\";/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var d=Object.defineProperty,s=Object.getOwnPropertyDescriptor,c=Object.getOwnPropertyNames,u=Object.prototype.hasOwnProperty,m=(t,e,r,n)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let i of c(e))!u.call(t,i)&&i!==r&&d(t,i,{get:()=>e[i],enumerable:!(n=s(e,i))||n.enumerable});return t},p=(t,e,r)=>(m(t,e,\"default\"),r),o={};p(o,l);var a=[\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"menuitem\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"],g={wordPattern:/(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\$\\^\\&\\*\\(\\)\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\s]+)/g,brackets:[[\"<!--\",\"-->\"],[\"<\",\">\"],[\"{{\",\"}}\"],[\"{%\",\"%}\"],[\"{\",\"}\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"%\",close:\"%\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"<\",close:\">\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${a.join(\"|\")}))(\\\\w[\\\\w\\\\d]*)([^/>]*(?!/)>)[^<]*$`,\"i\"),afterText:/^<\\/(\\w[\\w\\d]*)\\s*>$/i,action:{indentAction:o.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${a.join(\"|\")}))(\\\\w[\\\\w\\\\d]*)([^/>]*(?!/)>)[^<]*$`,\"i\"),action:{indentAction:o.languages.IndentAction.Indent}}]},_={defaultToken:\"\",tokenPostfix:\"\",builtinTags:[\"if\",\"else\",\"elseif\",\"endif\",\"render\",\"assign\",\"capture\",\"endcapture\",\"case\",\"endcase\",\"comment\",\"endcomment\",\"cycle\",\"decrement\",\"for\",\"endfor\",\"include\",\"increment\",\"layout\",\"raw\",\"endraw\",\"render\",\"tablerow\",\"endtablerow\",\"unless\",\"endunless\"],builtinFilters:[\"abs\",\"append\",\"at_least\",\"at_most\",\"capitalize\",\"ceil\",\"compact\",\"date\",\"default\",\"divided_by\",\"downcase\",\"escape\",\"escape_once\",\"first\",\"floor\",\"join\",\"json\",\"last\",\"lstrip\",\"map\",\"minus\",\"modulo\",\"newline_to_br\",\"plus\",\"prepend\",\"remove\",\"remove_first\",\"replace\",\"replace_first\",\"reverse\",\"round\",\"rstrip\",\"size\",\"slice\",\"sort\",\"sort_natural\",\"split\",\"strip\",\"strip_html\",\"strip_newlines\",\"times\",\"truncate\",\"truncatewords\",\"uniq\",\"upcase\",\"url_decode\",\"url_encode\",\"where\"],constants:[\"true\",\"false\"],operators:[\"==\",\"!=\",\">\",\"<\",\">=\",\"<=\"],symbol:/[=><!]+/,identifier:/[a-zA-Z_][\\w]*/,tokenizer:{root:[[/\\{\\%\\s*comment\\s*\\%\\}/,\"comment.start.liquid\",\"@comment\"],[/\\{\\{/,{token:\"@rematch\",switchTo:\"@liquidState.root\"}],[/\\{\\%/,{token:\"@rematch\",switchTo:\"@liquidState.root\"}],[/(<)([\\w\\-]+)(\\/>)/,[\"delimiter.html\",\"tag.html\",\"delimiter.html\"]],[/(<)([:\\w]+)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@otherTag\"}]],[/(<\\/)([\\w\\-]+)/,[\"delimiter.html\",{token:\"tag.html\",next:\"@otherTag\"}]],[/</,\"delimiter.html\"],[/\\{/,\"delimiter.html\"],[/[^<{]+/]],comment:[[/\\{\\%\\s*endcomment\\s*\\%\\}/,\"comment.end.liquid\",\"@pop\"],[/./,\"comment.content.liquid\"]],otherTag:[[/\\{\\{/,{token:\"@rematch\",switchTo:\"@liquidState.otherTag\"}],[/\\{\\%/,{token:\"@rematch\",switchTo:\"@liquidState.otherTag\"}],[/\\/?>/,\"delimiter.html\",\"@pop\"],[/\"([^\"]*)\"/,\"attribute.value\"],[/'([^']*)'/,\"attribute.value\"],[/[\\w\\-]+/,\"attribute.name\"],[/=/,\"delimiter\"],[/[ \\t\\r\\n]+/]],liquidState:[[/\\{\\{/,\"delimiter.output.liquid\"],[/\\}\\}/,{token:\"delimiter.output.liquid\",switchTo:\"@$S2.$S3\"}],[/\\{\\%/,\"delimiter.tag.liquid\"],[/raw\\s*\\%\\}/,\"delimiter.tag.liquid\",\"@liquidRaw\"],[/\\%\\}/,{token:\"delimiter.tag.liquid\",switchTo:\"@$S2.$S3\"}],{include:\"liquidRoot\"}],liquidRaw:[[/^(?!\\{\\%\\s*endraw\\s*\\%\\}).+/],[/\\{\\%/,\"delimiter.tag.liquid\"],[/@identifier/],[/\\%\\}/,{token:\"delimiter.tag.liquid\",next:\"@root\"}]],liquidRoot:[[/\\d+(\\.\\d+)?/,\"number.liquid\"],[/\"[^\"]*\"/,\"string.liquid\"],[/'[^']*'/,\"string.liquid\"],[/\\s+/],[/@symbol/,{cases:{\"@operators\":\"operator.liquid\",\"@default\":\"\"}}],[/\\./],[/@identifier/,{cases:{\"@constants\":\"keyword.liquid\",\"@builtinFilters\":\"predefined.liquid\",\"@builtinTags\":\"predefined.liquid\",\"@default\":\"variable.liquid\"}}],[/[^}|%]/,\"variable.liquid\"]]}};export{g as conf,_ as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/Drsz93k2.js",
    "content": "import{a as n,b as e,c as a,d as t,e as s}from\"./CMt9yHYq.js\";import i from\"./Bl1h29GH.js\";import\"./BMYPR7BL.js\";import\"./ySlJ1b_l.js\";import\"./BPhBrDlE.js\";const r=Object.freeze(JSON.parse('{\"injectTo\":[\"source.ts.ng\"],\"injectionSelector\":\"L:source.ts#meta.decorator.ts -comment\",\"name\":\"angular-inline-style\",\"patterns\":[{\"include\":\"#inlineStyles\"}],\"repository\":{\"inlineStyles\":{\"begin\":\"(styles)\\\\\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.object-literal.key.ts\"},\"2\":{\"name\":\"meta.object-literal.key.ts punctuation.separator.key-value.ts\"}},\"end\":\"(?=,|})\",\"patterns\":[{\"include\":\"#tsParenExpression\"},{\"include\":\"#tsBracketExpression\"},{\"include\":\"#style\"}]},\"style\":{\"begin\":\"\\\\\\\\s*([`|\\'|\\\\\"])\",\"beginCaptures\":{\"1\":{\"name\":\"string\"}},\"contentName\":\"source.css.scss\",\"end\":\"\\\\\\\\1\",\"endCaptures\":{\"0\":{\"name\":\"string\"}},\"patterns\":[{\"include\":\"source.css.scss\"}]},\"tsBracketExpression\":{\"begin\":\"\\\\\\\\G\\\\\\\\s*(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.array.literal.ts meta.brace.square.ts\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"meta.array.literal.ts meta.brace.square.ts\"}},\"patterns\":[{\"include\":\"#style\"}]},\"tsParenExpression\":{\"begin\":\"\\\\\\\\G\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"meta.brace.round.ts\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"patterns\":[{\"include\":\"$self\"},{\"include\":\"#tsBracketExpression\"},{\"include\":\"#style\"}]}},\"scopeName\":\"inline-styles.ng\",\"embeddedLangs\":[\"scss\"]}')),o=[...i,r],c=Object.freeze(JSON.parse('{\"injectTo\":[\"source.ts.ng\"],\"injectionSelector\":\"L:meta.decorator.ts -comment -text.html\",\"name\":\"angular-inline-template\",\"patterns\":[{\"include\":\"#inlineTemplate\"}],\"repository\":{\"inlineTemplate\":{\"begin\":\"(template)\\\\\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.object-literal.key.ts\"},\"2\":{\"name\":\"meta.object-literal.key.ts punctuation.separator.key-value.ts\"}},\"end\":\"(?=,|})\",\"patterns\":[{\"include\":\"#tsParenExpression\"},{\"include\":\"#ngTemplate\"}]},\"ngTemplate\":{\"begin\":\"\\\\\\\\G\\\\\\\\s*([`|\\'|\\\\\"])\",\"beginCaptures\":{\"1\":{\"name\":\"string\"}},\"contentName\":\"text.html.derivative.ng\",\"end\":\"\\\\\\\\1\",\"endCaptures\":{\"0\":{\"name\":\"string\"}},\"patterns\":[{\"include\":\"text.html.derivative.ng\"},{\"include\":\"template.ng\"}]},\"tsParenExpression\":{\"begin\":\"\\\\\\\\G\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"meta.brace.round.ts\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"patterns\":[{\"include\":\"#tsParenExpression\"},{\"include\":\"#ngTemplate\"}]}},\"scopeName\":\"inline-template.ng\",\"embeddedLangs\":[\"angular-html\",\"angular-template\"]}')),l=[...n,...e,c],m=Object.freeze(JSON.parse('{\"displayName\":\"Angular TypeScript\",\"name\":\"angular-ts\",\"patterns\":[{\"include\":\"#directives\"},{\"include\":\"#statements\"},{\"include\":\"#shebang\"}],\"repository\":{\"access-modifier\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.modifier.ts\"},\"after-operator-block-as-object-literal\":{\"begin\":\"(?<!\\\\\\\\+\\\\\\\\+|--)(?<=[:=(,\\\\\\\\[?+!>]|^await|[^\\\\\\\\._$[:alnum:]]await|^return|[^\\\\\\\\._$[:alnum:]]return|^yield|[^\\\\\\\\._$[:alnum:]]yield|^throw|[^\\\\\\\\._$[:alnum:]]throw|^in|[^\\\\\\\\._$[:alnum:]]in|^of|[^\\\\\\\\._$[:alnum:]]of|^typeof|[^\\\\\\\\._$[:alnum:]]typeof|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\*)\\\\\\\\s*(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.ts\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"name\":\"meta.objectliteral.ts\",\"patterns\":[{\"include\":\"#object-member\"}]},\"array-binding-pattern\":{\"begin\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.ts\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.array.ts\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.array.ts\"}},\"patterns\":[{\"include\":\"#binding-element\"},{\"include\":\"#punctuation-comma\"}]},\"array-binding-pattern-const\":{\"begin\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.ts\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.array.ts\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.array.ts\"}},\"patterns\":[{\"include\":\"#binding-element-const\"},{\"include\":\"#punctuation-comma\"}]},\"array-literal\":{\"begin\":\"\\\\\\\\s*(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.brace.square.ts\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.square.ts\"}},\"name\":\"meta.array.literal.ts\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"arrow-function\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.modifier.async.ts\"},\"2\":{\"name\":\"variable.parameter.ts\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(\\\\\\\\basync)\\\\\\\\s+)?([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?==>)\",\"name\":\"meta.arrow.ts\"},{\"begin\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(\\\\\\\\basync))?((?<![})!\\\\\\\\]])\\\\\\\\s*(?=((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.ts\"}},\"end\":\"(?==>|\\\\\\\\{|(^\\\\\\\\s*(export|function|class|interface|let|var|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|const|import|enum|namespace|module|type|abstract|declare)\\\\\\\\s+))\",\"name\":\"meta.arrow.ts\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-parameters\"},{\"include\":\"#function-parameters\"},{\"include\":\"#arrow-return-type\"},{\"include\":\"#possibly-arrow-return-type\"}]},{\"begin\":\"=>\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.function.arrow.ts\"}},\"end\":\"((?<=\\\\\\\\}|\\\\\\\\S)(?<!=>)|((?!\\\\\\\\{)(?=\\\\\\\\S)))(?!\\\\\\\\/[\\\\\\\\/\\\\\\\\*])\",\"name\":\"meta.arrow.ts\",\"patterns\":[{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#decl-block\"},{\"include\":\"#expression\"}]}]},\"arrow-return-type\":{\"begin\":\"(?<=\\\\\\\\))\\\\\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.ts\"}},\"end\":\"(?==>|\\\\\\\\{|(^\\\\\\\\s*(export|function|class|interface|let|var|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|const|import|enum|namespace|module|type|abstract|declare)\\\\\\\\s+))\",\"name\":\"meta.return.type.arrow.ts\",\"patterns\":[{\"include\":\"#arrow-return-type-body\"}]},\"arrow-return-type-body\":{\"patterns\":[{\"begin\":\"(?<=[:])(?=\\\\\\\\s*\\\\\\\\{)\",\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#type-object\"}]},{\"include\":\"#type-predicate-operator\"},{\"include\":\"#type\"}]},\"async-modifier\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(async)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.modifier.async.ts\"},\"binding-element\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#regex\"},{\"include\":\"#object-binding-pattern\"},{\"include\":\"#array-binding-pattern\"},{\"include\":\"#destructuring-variable-rest\"},{\"include\":\"#variable-initializer\"}]},\"binding-element-const\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#regex\"},{\"include\":\"#object-binding-pattern-const\"},{\"include\":\"#array-binding-pattern-const\"},{\"include\":\"#destructuring-variable-rest-const\"},{\"include\":\"#variable-initializer\"}]},\"boolean-literal\":{\"patterns\":[{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))true(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.boolean.true.ts\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))false(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.boolean.false.ts\"}]},\"brackets\":{\"patterns\":[{\"begin\":\"{\",\"end\":\"}|(?=\\\\\\\\*/)\",\"patterns\":[{\"include\":\"#brackets\"}]},{\"begin\":\"\\\\\\\\[\",\"end\":\"\\\\\\\\]|(?=\\\\\\\\*/)\",\"patterns\":[{\"include\":\"#brackets\"}]}]},\"cast\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"meta.brace.angle.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"meta.brace.angle.ts\"}},\"match\":\"\\\\\\\\s*(<)\\\\\\\\s*(const)\\\\\\\\s*(>)\",\"name\":\"cast.expr.ts\"},{\"begin\":\"(?:(?<!\\\\\\\\+\\\\\\\\+|--)(?<=^return|[^\\\\\\\\._$[:alnum:]]return|^throw|[^\\\\\\\\._$[:alnum:]]throw|^yield|[^\\\\\\\\._$[:alnum:]]yield|^await|[^\\\\\\\\._$[:alnum:]]await|^default|[^\\\\\\\\._$[:alnum:]]default|[=(,:>*?\\\\\\\\&\\\\\\\\|\\\\\\\\^]|[^_$[:alnum:]](?:\\\\\\\\+\\\\\\\\+|\\\\\\\\-\\\\\\\\-)|[^\\\\\\\\+]\\\\\\\\+|[^\\\\\\\\-]\\\\\\\\-))\\\\\\\\s*(<)(?!<?\\\\\\\\=)(?!\\\\\\\\s*$)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.brace.angle.ts\"}},\"end\":\"(\\\\\\\\>)\",\"endCaptures\":{\"1\":{\"name\":\"meta.brace.angle.ts\"}},\"name\":\"cast.expr.ts\",\"patterns\":[{\"include\":\"#type\"}]},{\"begin\":\"(?:(?<=^))\\\\\\\\s*(<)(?=[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*>)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.brace.angle.ts\"}},\"end\":\"(\\\\\\\\>)\",\"endCaptures\":{\"1\":{\"name\":\"meta.brace.angle.ts\"}},\"name\":\"cast.expr.ts\",\"patterns\":[{\"include\":\"#type\"}]}]},\"class-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(?:(abstract)\\\\\\\\s+)?\\\\\\\\b(class)\\\\\\\\b(?=\\\\\\\\s+|/[/*])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"storage.modifier.ts\"},\"4\":{\"name\":\"storage.type.class.ts\"}},\"end\":\"(?<=\\\\\\\\})\",\"name\":\"meta.class.ts\",\"patterns\":[{\"include\":\"#class-declaration-or-expression-patterns\"}]},\"class-declaration-or-expression-patterns\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#class-or-interface-heritage\"},{\"captures\":{\"0\":{\"name\":\"entity.name.type.class.ts\"}},\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\"},{\"include\":\"#type-parameters\"},{\"include\":\"#class-or-interface-body\"}]},\"class-expression\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(abstract)\\\\\\\\s+)?(class)\\\\\\\\b(?=\\\\\\\\s+|[<{]|\\\\\\\\/[\\\\\\\\/*])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.ts\"},\"2\":{\"name\":\"storage.type.class.ts\"}},\"end\":\"(?<=\\\\\\\\})\",\"name\":\"meta.class.ts\",\"patterns\":[{\"include\":\"#class-declaration-or-expression-patterns\"}]},\"class-or-interface-body\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#decorator\"},{\"begin\":\"(?<=:)\\\\\\\\s*\",\"end\":\"(?=\\\\\\\\s|[;),}\\\\\\\\]:\\\\\\\\-\\\\\\\\+]|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#expression\"}]},{\"include\":\"#method-declaration\"},{\"include\":\"#indexer-declaration\"},{\"include\":\"#field-declaration\"},{\"include\":\"#string\"},{\"include\":\"#type-annotation\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#access-modifier\"},{\"include\":\"#property-accessor\"},{\"include\":\"#async-modifier\"},{\"include\":\"#after-operator-block-as-object-literal\"},{\"include\":\"#decl-block\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#punctuation-semicolon\"}]},\"class-or-interface-heritage\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:\\\\\\\\b(extends|implements)\\\\\\\\b)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.ts\"}},\"end\":\"(?=\\\\\\\\{)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#class-or-interface-heritage\"},{\"include\":\"#type-parameters\"},{\"include\":\"#expressionWithoutIdentifiers\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.module.ts\"},\"2\":{\"name\":\"punctuation.accessor.ts\"},\"3\":{\"name\":\"punctuation.accessor.optional.ts\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))(?=\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*)*\\\\\\\\s*)\"},{\"captures\":{\"1\":{\"name\":\"entity.other.inherited-class.ts\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\"},{\"include\":\"#expressionPunctuations\"}]},\"comment\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\\\\\\\\*(?!/)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.ts\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.ts\"}},\"name\":\"comment.block.documentation.ts\",\"patterns\":[{\"include\":\"#docblock\"}]},{\"begin\":\"(/\\\\\\\\*)(?:\\\\\\\\s*((@)internal)(?=\\\\\\\\s|(\\\\\\\\*/)))?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.ts\"},\"2\":{\"name\":\"storage.type.internaldeclaration.ts\"},\"3\":{\"name\":\"punctuation.decorator.internaldeclaration.ts\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.ts\"}},\"name\":\"comment.block.ts\"},{\"begin\":\"(^[ \\\\\\\\t]+)?((//)(?:\\\\\\\\s*((@)internal)(?=\\\\\\\\s|$))?)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.ts\"},\"2\":{\"name\":\"comment.line.double-slash.ts\"},\"3\":{\"name\":\"punctuation.definition.comment.ts\"},\"4\":{\"name\":\"storage.type.internaldeclaration.ts\"},\"5\":{\"name\":\"punctuation.decorator.internaldeclaration.ts\"}},\"contentName\":\"comment.line.double-slash.ts\",\"end\":\"(?=$)\"}]},\"control-statement\":{\"patterns\":[{\"include\":\"#switch-statement\"},{\"include\":\"#for-loop\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(catch|finally|throw|try)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.trycatch.ts\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.loop.ts\"},\"2\":{\"name\":\"entity.name.label.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(break|continue|goto)\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(break|continue|do|goto|while)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.loop.ts\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(return)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.flow.ts\"}},\"end\":\"(?=[;}]|$|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#expression\"}]},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(case|default|switch)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.switch.ts\"},{\"include\":\"#if-statement\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.conditional.ts\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(with)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.with.ts\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(package)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.ts\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(debugger)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.other.debugger.ts\"}]},\"decl-block\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"name\":\"meta.block.ts\",\"patterns\":[{\"include\":\"#statements\"}]},\"declaration\":{\"patterns\":[{\"include\":\"#decorator\"},{\"include\":\"#var-expr\"},{\"include\":\"#function-declaration\"},{\"include\":\"#class-declaration\"},{\"include\":\"#interface-declaration\"},{\"include\":\"#enum-declaration\"},{\"include\":\"#namespace-declaration\"},{\"include\":\"#type-alias-declaration\"},{\"include\":\"#import-equals-declaration\"},{\"include\":\"#import-declaration\"},{\"include\":\"#export-declaration\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(declare|export)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.modifier.ts\"}]},\"decorator\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))\\\\\\\\@\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.decorator.ts\"}},\"end\":\"(?=\\\\\\\\s)\",\"name\":\"meta.decorator.ts\",\"patterns\":[{\"include\":\"#expression\"}]},\"destructuring-const\":{\"patterns\":[{\"begin\":\"(?<!=|:|^of|[^\\\\\\\\._$[:alnum:]]of|^in|[^\\\\\\\\._$[:alnum:]]in)\\\\\\\\s*(?=\\\\\\\\{)\",\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+))\",\"name\":\"meta.object-binding-pattern-variable.ts\",\"patterns\":[{\"include\":\"#object-binding-pattern-const\"},{\"include\":\"#type-annotation\"},{\"include\":\"#comment\"}]},{\"begin\":\"(?<!=|:|^of|[^\\\\\\\\._$[:alnum:]]of|^in|[^\\\\\\\\._$[:alnum:]]in)\\\\\\\\s*(?=\\\\\\\\[)\",\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+))\",\"name\":\"meta.array-binding-pattern-variable.ts\",\"patterns\":[{\"include\":\"#array-binding-pattern-const\"},{\"include\":\"#type-annotation\"},{\"include\":\"#comment\"}]}]},\"destructuring-parameter\":{\"patterns\":[{\"begin\":\"(?<!=|:)\\\\\\\\s*(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.ts\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.object.ts\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.object.ts\"}},\"name\":\"meta.parameter.object-binding-pattern.ts\",\"patterns\":[{\"include\":\"#parameter-object-binding-element\"}]},{\"begin\":\"(?<!=|:)\\\\\\\\s*(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.ts\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.array.ts\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.array.ts\"}},\"name\":\"meta.paramter.array-binding-pattern.ts\",\"patterns\":[{\"include\":\"#parameter-binding-element\"},{\"include\":\"#punctuation-comma\"}]}]},\"destructuring-parameter-rest\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.rest.ts\"},\"2\":{\"name\":\"variable.parameter.ts\"}},\"match\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\"},\"destructuring-variable\":{\"patterns\":[{\"begin\":\"(?<!=|:|^of|[^\\\\\\\\._$[:alnum:]]of|^in|[^\\\\\\\\._$[:alnum:]]in)\\\\\\\\s*(?=\\\\\\\\{)\",\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+))\",\"name\":\"meta.object-binding-pattern-variable.ts\",\"patterns\":[{\"include\":\"#object-binding-pattern\"},{\"include\":\"#type-annotation\"},{\"include\":\"#comment\"}]},{\"begin\":\"(?<!=|:|^of|[^\\\\\\\\._$[:alnum:]]of|^in|[^\\\\\\\\._$[:alnum:]]in)\\\\\\\\s*(?=\\\\\\\\[)\",\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+))\",\"name\":\"meta.array-binding-pattern-variable.ts\",\"patterns\":[{\"include\":\"#array-binding-pattern\"},{\"include\":\"#type-annotation\"},{\"include\":\"#comment\"}]}]},\"destructuring-variable-rest\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.rest.ts\"},\"2\":{\"name\":\"meta.definition.variable.ts variable.other.readwrite.ts\"}},\"match\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\"},\"destructuring-variable-rest-const\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.rest.ts\"},\"2\":{\"name\":\"meta.definition.variable.ts variable.other.constant.ts\"}},\"match\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\"},\"directives\":{\"begin\":\"^(///)\\\\\\\\s*(?=<(reference|amd-dependency|amd-module)(\\\\\\\\s+(path|types|no-default-lib|lib|name|resolution-mode)\\\\\\\\s*=\\\\\\\\s*((\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`)))+\\\\\\\\s*/>\\\\\\\\s*$)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.ts\"}},\"end\":\"(?=$)\",\"name\":\"comment.line.triple-slash.directive.ts\",\"patterns\":[{\"begin\":\"(<)(reference|amd-dependency|amd-module)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.directive.ts\"},\"2\":{\"name\":\"entity.name.tag.directive.ts\"}},\"end\":\"/>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.directive.ts\"}},\"name\":\"meta.tag.ts\",\"patterns\":[{\"match\":\"path|types|no-default-lib|lib|name|resolution-mode\",\"name\":\"entity.other.attribute-name.directive.ts\"},{\"match\":\"=\",\"name\":\"keyword.operator.assignment.ts\"},{\"include\":\"#string\"}]}]},\"docblock\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"constant.language.access-type.jsdoc\"}},\"match\":\"((@)(?:access|api))\\\\\\\\s+(private|protected|public)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"entity.name.type.instance.jsdoc\"},\"4\":{\"name\":\"punctuation.definition.bracket.angle.begin.jsdoc\"},\"5\":{\"name\":\"constant.other.email.link.underline.jsdoc\"},\"6\":{\"name\":\"punctuation.definition.bracket.angle.end.jsdoc\"}},\"match\":\"((@)author)\\\\\\\\s+([^@\\\\\\\\s<>*/](?:[^@<>*/]|\\\\\\\\*[^/])*)(?:\\\\\\\\s*(<)([^>\\\\\\\\s]+)(>))?\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"entity.name.type.instance.jsdoc\"},\"4\":{\"name\":\"keyword.operator.control.jsdoc\"},\"5\":{\"name\":\"entity.name.type.instance.jsdoc\"}},\"match\":\"((@)borrows)\\\\\\\\s+((?:[^@\\\\\\\\s*/]|\\\\\\\\*[^/])+)\\\\\\\\s+(as)\\\\\\\\s+((?:[^@\\\\\\\\s*/]|\\\\\\\\*[^/])+)\"},{\"begin\":\"((@)example)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"end\":\"(?=@|\\\\\\\\*/)\",\"name\":\"meta.example.jsdoc\",\"patterns\":[{\"match\":\"^\\\\\\\\s\\\\\\\\*\\\\\\\\s+\"},{\"begin\":\"\\\\\\\\G(<)caption(>)\",\"beginCaptures\":{\"0\":{\"name\":\"entity.name.tag.inline.jsdoc\"},\"1\":{\"name\":\"punctuation.definition.bracket.angle.begin.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.bracket.angle.end.jsdoc\"}},\"contentName\":\"constant.other.description.jsdoc\",\"end\":\"(</)caption(>)|(?=\\\\\\\\*/)\",\"endCaptures\":{\"0\":{\"name\":\"entity.name.tag.inline.jsdoc\"},\"1\":{\"name\":\"punctuation.definition.bracket.angle.begin.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.bracket.angle.end.jsdoc\"}}},{\"captures\":{\"0\":{\"name\":\"source.embedded.ts\"}},\"match\":\"[^\\\\\\\\s@*](?:[^*]|\\\\\\\\*[^/])*\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"constant.language.symbol-type.jsdoc\"}},\"match\":\"((@)kind)\\\\\\\\s+(class|constant|event|external|file|function|member|mixin|module|namespace|typedef)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"variable.other.link.underline.jsdoc\"},\"4\":{\"name\":\"entity.name.type.instance.jsdoc\"}},\"match\":\"((@)see)\\\\\\\\s+(?:((?=https?://)(?:[^\\\\\\\\s*]|\\\\\\\\*[^/])+)|((?!https?://|(?:\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])?{@(?:link|linkcode|linkplain|tutorial)\\\\\\\\b)(?:[^@\\\\\\\\s*/]|\\\\\\\\*[^/])+))\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"variable.other.jsdoc\"}},\"match\":\"((@)template)\\\\\\\\s+([A-Za-z_$][\\\\\\\\w$.\\\\\\\\[\\\\\\\\]]*(?:\\\\\\\\s*,\\\\\\\\s*[A-Za-z_$][\\\\\\\\w$.\\\\\\\\[\\\\\\\\]]*)*)\"},{\"begin\":\"((@)template)\\\\\\\\s+(?={)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"end\":\"(?=\\\\\\\\s|\\\\\\\\*/|[^{}\\\\\\\\[\\\\\\\\]A-Za-z_$])\",\"patterns\":[{\"include\":\"#jsdoctype\"},{\"match\":\"([A-Za-z_$][\\\\\\\\w$.\\\\\\\\[\\\\\\\\]]*)\",\"name\":\"variable.other.jsdoc\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"variable.other.jsdoc\"}},\"match\":\"((@)(?:arg|argument|const|constant|member|namespace|param|var))\\\\\\\\s+([A-Za-z_$][\\\\\\\\w$.\\\\\\\\[\\\\\\\\]]*)\"},{\"begin\":\"((@)typedef)\\\\\\\\s+(?={)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"end\":\"(?=\\\\\\\\s|\\\\\\\\*/|[^{}\\\\\\\\[\\\\\\\\]A-Za-z_$])\",\"patterns\":[{\"include\":\"#jsdoctype\"},{\"match\":\"(?:[^@\\\\\\\\s*/]|\\\\\\\\*[^/])+\",\"name\":\"entity.name.type.instance.jsdoc\"}]},{\"begin\":\"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\\\\\\\s+(?={)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"end\":\"(?=\\\\\\\\s|\\\\\\\\*/|[^{}\\\\\\\\[\\\\\\\\]A-Za-z_$])\",\"patterns\":[{\"include\":\"#jsdoctype\"},{\"match\":\"([A-Za-z_$][\\\\\\\\w$.\\\\\\\\[\\\\\\\\]]*)\",\"name\":\"variable.other.jsdoc\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.optional-value.begin.bracket.square.jsdoc\"},\"2\":{\"name\":\"keyword.operator.assignment.jsdoc\"},\"3\":{\"name\":\"source.embedded.ts\"},\"4\":{\"name\":\"punctuation.definition.optional-value.end.bracket.square.jsdoc\"},\"5\":{\"name\":\"invalid.illegal.syntax.jsdoc\"}},\"match\":\"(\\\\\\\\[)\\\\\\\\s*[\\\\\\\\w$]+(?:(?:\\\\\\\\[\\\\\\\\])?\\\\\\\\.[\\\\\\\\w$]+)*(?:\\\\\\\\s*(=)\\\\\\\\s*((?>\\\\\"(?:(?:\\\\\\\\*(?!/))|(?:\\\\\\\\\\\\\\\\(?!\\\\\"))|[^*\\\\\\\\\\\\\\\\])*?\\\\\"|\\'(?:(?:\\\\\\\\*(?!/))|(?:\\\\\\\\\\\\\\\\(?!\\'))|[^*\\\\\\\\\\\\\\\\])*?\\'|\\\\\\\\[(?:(?:\\\\\\\\*(?!/))|[^*])*?\\\\\\\\]|(?:(?:\\\\\\\\*(?!/))|\\\\\\\\s(?!\\\\\\\\s*\\\\\\\\])|\\\\\\\\[.*?(?:\\\\\\\\]|(?=\\\\\\\\*/))|[^*\\\\\\\\s\\\\\\\\[\\\\\\\\]])*)*))?\\\\\\\\s*(?:(\\\\\\\\])((?:[^*\\\\\\\\s]|\\\\\\\\*[^\\\\\\\\s/])+)?|(?=\\\\\\\\*/))\",\"name\":\"variable.other.jsdoc\"}]},{\"begin\":\"((@)(?:define|enum|exception|export|extends|lends|implements|modifies|namespace|private|protected|returns?|satisfies|suppress|this|throws|type|yields?))\\\\\\\\s+(?={)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"end\":\"(?=\\\\\\\\s|\\\\\\\\*/|[^{}\\\\\\\\[\\\\\\\\]A-Za-z_$])\",\"patterns\":[{\"include\":\"#jsdoctype\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"entity.name.type.instance.jsdoc\"}},\"match\":\"((@)(?:alias|augments|callback|constructs|emits|event|fires|exports?|extends|external|function|func|host|lends|listens|interface|memberof!?|method|module|mixes|mixin|name|requires|see|this|typedef|uses))\\\\\\\\s+((?:[^{}@\\\\\\\\s*]|\\\\\\\\*[^/])+)\"},{\"begin\":\"((@)(?:default(?:value)?|license|version))\\\\\\\\s+(([\\'\\'\\\\\"]))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"variable.other.jsdoc\"},\"4\":{\"name\":\"punctuation.definition.string.begin.jsdoc\"}},\"contentName\":\"variable.other.jsdoc\",\"end\":\"(\\\\\\\\3)|(?=$|\\\\\\\\*/)\",\"endCaptures\":{\"0\":{\"name\":\"variable.other.jsdoc\"},\"1\":{\"name\":\"punctuation.definition.string.end.jsdoc\"}}},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"variable.other.jsdoc\"}},\"match\":\"((@)(?:default(?:value)?|license|tutorial|variation|version))\\\\\\\\s+([^\\\\\\\\s*]+)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"match\":\"(@)(?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles|callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright|default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception|exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func|function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc|inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method|mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects|override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected|public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary|suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation|version|virtual|writeOnce|yields?)\\\\\\\\b\",\"name\":\"storage.type.class.jsdoc\"},{\"include\":\"#inline-tags\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"match\":\"((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\\\\\\\s+)\"}]},\"enum-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?(?:\\\\\\\\b(const)\\\\\\\\s+)?\\\\\\\\b(enum)\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"storage.modifier.ts\"},\"4\":{\"name\":\"storage.type.enum.ts\"},\"5\":{\"name\":\"entity.name.type.enum.ts\"}},\"end\":\"(?<=\\\\\\\\})\",\"name\":\"meta.enum.declaration.ts\",\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"beginCaptures\":{\"0\":{\"name\":\"variable.other.enummember.ts\"}},\"end\":\"(?=,|\\\\\\\\}|$)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#variable-initializer\"}]},{\"begin\":\"(?=((\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\])))\",\"end\":\"(?=,|\\\\\\\\}|$)\",\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#array-literal\"},{\"include\":\"#comment\"},{\"include\":\"#variable-initializer\"}]},{\"include\":\"#punctuation-comma\"}]}]},\"export-declaration\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"keyword.control.as.ts\"},\"3\":{\"name\":\"storage.type.namespace.ts\"},\"4\":{\"name\":\"entity.name.type.module.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(export)\\\\\\\\s+(as)\\\\\\\\s+(namespace)\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(export)(?:\\\\\\\\s+(type))?(?:(?:\\\\\\\\s*(=))|(?:\\\\\\\\s+(default)(?=\\\\\\\\s+)))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"keyword.control.type.ts\"},\"3\":{\"name\":\"keyword.operator.assignment.ts\"},\"4\":{\"name\":\"keyword.control.default.ts\"}},\"end\":\"(?=$|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"name\":\"meta.export.default.ts\",\"patterns\":[{\"include\":\"#interface-declaration\"},{\"include\":\"#expression\"}]},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(export)(?:\\\\\\\\s+(type))?\\\\\\\\b(?!(\\\\\\\\$)|(\\\\\\\\s*:))((?=\\\\\\\\s*[\\\\\\\\{*])|((?=\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*(\\\\\\\\s|,))(?!\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b)))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"keyword.control.type.ts\"}},\"end\":\"(?=$|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"name\":\"meta.export.ts\",\"patterns\":[{\"include\":\"#import-export-declaration\"}]}]},\"expression\":{\"patterns\":[{\"include\":\"#expressionWithoutIdentifiers\"},{\"include\":\"#identifiers\"},{\"include\":\"#expressionPunctuations\"}]},\"expression-inside-possibly-arrow-parens\":{\"patterns\":[{\"include\":\"#expressionWithoutIdentifiers\"},{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#decorator\"},{\"include\":\"#destructuring-parameter\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(override|public|protected|private|readonly)\\\\\\\\s+(?=(override|public|protected|private|readonly)\\\\\\\\s+)\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.ts\"},\"2\":{\"name\":\"keyword.operator.rest.ts\"},\"3\":{\"name\":\"entity.name.function.ts variable.language.this.ts\"},\"4\":{\"name\":\"entity.name.function.ts\"},\"5\":{\"name\":\"keyword.operator.optional.ts\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(override|public|private|protected|readonly)\\\\\\\\s+)?(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*(\\\\\\\\??)(?=\\\\\\\\s*(=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))))|(:\\\\\\\\s*((<)|([(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>)))))))|(:\\\\\\\\s*(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Function(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(:\\\\\\\\s*((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))))|(:\\\\\\\\s*(=>|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>))))))\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.ts\"},\"2\":{\"name\":\"keyword.operator.rest.ts\"},\"3\":{\"name\":\"variable.parameter.ts variable.language.this.ts\"},\"4\":{\"name\":\"variable.parameter.ts\"},\"5\":{\"name\":\"keyword.operator.optional.ts\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(override|public|private|protected|readonly)\\\\\\\\s+)?(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*(\\\\\\\\??)(?=\\\\\\\\s*[:,]|$)\"},{\"include\":\"#type-annotation\"},{\"include\":\"#variable-initializer\"},{\"match\":\",\",\"name\":\"punctuation.separator.parameter.ts\"},{\"include\":\"#identifiers\"},{\"include\":\"#expressionPunctuations\"}]},\"expression-operators\":{\"patterns\":[{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(await)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.flow.ts\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(yield)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))(?=\\\\\\\\s*\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*\\\\\\\\*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.flow.ts\"}},\"end\":\"\\\\\\\\*\",\"endCaptures\":{\"0\":{\"name\":\"keyword.generator.asterisk.ts\"}},\"patterns\":[{\"include\":\"#comment\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.flow.ts\"},\"2\":{\"name\":\"keyword.generator.asterisk.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(yield)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))(?:\\\\\\\\s*(\\\\\\\\*))?\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))delete(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.expression.delete.ts\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))in(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))(?!\\\\\\\\()\",\"name\":\"keyword.operator.expression.in.ts\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))of(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))(?!\\\\\\\\()\",\"name\":\"keyword.operator.expression.of.ts\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))instanceof(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.expression.instanceof.ts\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))new(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.new.ts\"},{\"include\":\"#typeof-operator\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))void(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.expression.void.ts\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.as.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(as)\\\\\\\\s+(const)(?=\\\\\\\\s*($|[;,:})\\\\\\\\]]))\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(as)|(satisfies))\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.as.ts\"},\"2\":{\"name\":\"keyword.control.satisfies.ts\"}},\"end\":\"(?=^|[;),}\\\\\\\\]:?\\\\\\\\-\\\\\\\\+\\\\\\\\>]|\\\\\\\\|\\\\\\\\||\\\\\\\\&\\\\\\\\&|\\\\\\\\!\\\\\\\\=\\\\\\\\=|$|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(as|satisfies)\\\\\\\\s+)|(\\\\\\\\s+\\\\\\\\<))\",\"patterns\":[{\"include\":\"#type\"}]},{\"match\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"name\":\"keyword.operator.spread.ts\"},{\"match\":\"\\\\\\\\*=|(?<!\\\\\\\\()/=|%=|\\\\\\\\+=|\\\\\\\\-=\",\"name\":\"keyword.operator.assignment.compound.ts\"},{\"match\":\"\\\\\\\\&=|\\\\\\\\^=|<<=|>>=|>>>=|\\\\\\\\|=\",\"name\":\"keyword.operator.assignment.compound.bitwise.ts\"},{\"match\":\"<<|>>>|>>\",\"name\":\"keyword.operator.bitwise.shift.ts\"},{\"match\":\"===|!==|==|!=\",\"name\":\"keyword.operator.comparison.ts\"},{\"match\":\"<=|>=|<>|<|>\",\"name\":\"keyword.operator.relational.ts\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.logical.ts\"},\"2\":{\"name\":\"keyword.operator.assignment.compound.ts\"},\"3\":{\"name\":\"keyword.operator.arithmetic.ts\"}},\"match\":\"(?<=[_$[:alnum:]])(\\\\\\\\!)\\\\\\\\s*(?:(/=)|(?:(/)(?![/*])))\"},{\"match\":\"\\\\\\\\!|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\?\\\\\\\\?\",\"name\":\"keyword.operator.logical.ts\"},{\"match\":\"\\\\\\\\&|~|\\\\\\\\^|\\\\\\\\|\",\"name\":\"keyword.operator.bitwise.ts\"},{\"match\":\"\\\\\\\\=\",\"name\":\"keyword.operator.assignment.ts\"},{\"match\":\"--\",\"name\":\"keyword.operator.decrement.ts\"},{\"match\":\"\\\\\\\\+\\\\\\\\+\",\"name\":\"keyword.operator.increment.ts\"},{\"match\":\"%|\\\\\\\\*|/|-|\\\\\\\\+\",\"name\":\"keyword.operator.arithmetic.ts\"},{\"begin\":\"(?<=[_$[:alnum:])\\\\\\\\]])\\\\\\\\s*(?=(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)+(?:(/=)|(?:(/)(?![/*]))))\",\"end\":\"(?:(/=)|(?:(/)(?!\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/)))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.compound.ts\"},\"2\":{\"name\":\"keyword.operator.arithmetic.ts\"}},\"patterns\":[{\"include\":\"#comment\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.operator.assignment.compound.ts\"},\"2\":{\"name\":\"keyword.operator.arithmetic.ts\"}},\"match\":\"(?<=[_$[:alnum:])\\\\\\\\]])\\\\\\\\s*(?:(/=)|(?:(/)(?![/*])))\"}]},\"expressionPunctuations\":{\"patterns\":[{\"include\":\"#punctuation-comma\"},{\"include\":\"#punctuation-accessor\"}]},\"expressionWithoutIdentifiers\":{\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#regex\"},{\"include\":\"#comment\"},{\"include\":\"#function-expression\"},{\"include\":\"#class-expression\"},{\"include\":\"#arrow-function\"},{\"include\":\"#paren-expression-possibly-arrow\"},{\"include\":\"#cast\"},{\"include\":\"#ternary-expression\"},{\"include\":\"#new-expr\"},{\"include\":\"#instanceof-expr\"},{\"include\":\"#object-literal\"},{\"include\":\"#expression-operators\"},{\"include\":\"#function-call\"},{\"include\":\"#literal\"},{\"include\":\"#support-objects\"},{\"include\":\"#paren-expression\"}]},\"field-declaration\":{\"begin\":\"(?<!\\\\\\\\()(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(readonly)\\\\\\\\s+)?(?=\\\\\\\\s*((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(?:(?:(\\\\\\\\?)|(\\\\\\\\!))\\\\\\\\s*)?(=|:|;|,|\\\\\\\\}|$))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.ts\"}},\"end\":\"(?=\\\\\\\\}|;|,|$|(^(?!\\\\\\\\s*((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(?:(?:(\\\\\\\\?)|(\\\\\\\\!))\\\\\\\\s*)?(=|:|;|,|$))))|(?<=\\\\\\\\})\",\"name\":\"meta.field.declaration.ts\",\"patterns\":[{\"include\":\"#variable-initializer\"},{\"include\":\"#type-annotation\"},{\"include\":\"#string\"},{\"include\":\"#array-literal\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#comment\"},{\"captures\":{\"1\":{\"name\":\"meta.definition.property.ts entity.name.function.ts\"},\"2\":{\"name\":\"keyword.operator.optional.ts\"},\"3\":{\"name\":\"keyword.operator.definiteassignment.ts\"}},\"match\":\"(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)(?:(\\\\\\\\?)|(\\\\\\\\!))?(?=\\\\\\\\s*\\\\\\\\s*(=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))))|(:\\\\\\\\s*((<)|([(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>)))))))|(:\\\\\\\\s*(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Function(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(:\\\\\\\\s*((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))))|(:\\\\\\\\s*(=>|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>))))))\"},{\"match\":\"\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"meta.definition.property.ts variable.object.property.ts\"},{\"match\":\"\\\\\\\\?\",\"name\":\"keyword.operator.optional.ts\"},{\"match\":\"\\\\\\\\!\",\"name\":\"keyword.operator.definiteassignment.ts\"}]},\"for-loop\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))for(?=((\\\\\\\\s+|(\\\\\\\\s*\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*))await)?\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)?(\\\\\\\\())\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.loop.ts\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"include\":\"#comment\"},{\"match\":\"await\",\"name\":\"keyword.control.loop.ts\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"patterns\":[{\"include\":\"#var-expr\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-semicolon\"}]}]},\"function-body\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-parameters\"},{\"include\":\"#function-parameters\"},{\"include\":\"#return-type\"},{\"include\":\"#type-function-return-type\"},{\"include\":\"#decl-block\"},{\"match\":\"\\\\\\\\*\",\"name\":\"keyword.generator.asterisk.ts\"}]},\"function-call\":{\"patterns\":[{\"begin\":\"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\\\\\\\)]))\\\\\\\\s*(?:(\\\\\\\\?\\\\\\\\.\\\\\\\\s*)|(\\\\\\\\!))?((<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))(([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>)*(?<!=)\\\\\\\\>))*(?<!=)\\\\\\\\>)*(?<!=)>\\\\\\\\s*)?\\\\\\\\())\",\"end\":\"(?<=\\\\\\\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\\\\\\\)]))\\\\\\\\s*(?:(\\\\\\\\?\\\\\\\\.\\\\\\\\s*)|(\\\\\\\\!))?((<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))(([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>)*(?<!=)\\\\\\\\>))*(?<!=)\\\\\\\\>)*(?<!=)>\\\\\\\\s*)?\\\\\\\\())\",\"patterns\":[{\"begin\":\"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))\",\"end\":\"(?=\\\\\\\\s*(?:(\\\\\\\\?\\\\\\\\.\\\\\\\\s*)|(\\\\\\\\!))?((<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))(([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>)*(?<!=)\\\\\\\\>))*(?<!=)\\\\\\\\>)*(?<!=)>\\\\\\\\s*)?\\\\\\\\())\",\"name\":\"meta.function-call.ts\",\"patterns\":[{\"include\":\"#function-call-target\"}]},{\"include\":\"#comment\"},{\"include\":\"#function-call-optionals\"},{\"include\":\"#type-arguments\"},{\"include\":\"#paren-expression\"}]},{\"begin\":\"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\\\\\\\)]))(<\\\\\\\\s*[\\\\\\\\{\\\\\\\\[\\\\\\\\(]\\\\\\\\s*$))\",\"end\":\"(?<=\\\\\\\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\\\\\\\)]))(<\\\\\\\\s*[\\\\\\\\{\\\\\\\\[\\\\\\\\(]\\\\\\\\s*$))\",\"patterns\":[{\"begin\":\"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))\",\"end\":\"(?=(<\\\\\\\\s*[\\\\\\\\{\\\\\\\\[\\\\\\\\(]\\\\\\\\s*$))\",\"name\":\"meta.function-call.ts\",\"patterns\":[{\"include\":\"#function-call-target\"}]},{\"include\":\"#comment\"},{\"include\":\"#function-call-optionals\"},{\"include\":\"#type-arguments\"}]}]},\"function-call-optionals\":{\"patterns\":[{\"match\":\"\\\\\\\\?\\\\\\\\.\",\"name\":\"meta.function-call.ts punctuation.accessor.optional.ts\"},{\"match\":\"\\\\\\\\!\",\"name\":\"meta.function-call.ts keyword.operator.definiteassignment.ts\"}]},\"function-call-target\":{\"patterns\":[{\"include\":\"#support-function-call-identifiers\"},{\"match\":\"(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)\",\"name\":\"entity.name.function.ts\"}]},\"function-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?(?:(async)\\\\\\\\s+)?(function\\\\\\\\b)(?:\\\\\\\\s*(\\\\\\\\*))?(?:(?:\\\\\\\\s+|(?<=\\\\\\\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"storage.modifier.async.ts\"},\"4\":{\"name\":\"storage.type.function.ts\"},\"5\":{\"name\":\"keyword.generator.asterisk.ts\"},\"6\":{\"name\":\"meta.definition.function.ts entity.name.function.ts\"}},\"end\":\"(?=;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))|(?<=\\\\\\\\})\",\"name\":\"meta.function.ts\",\"patterns\":[{\"include\":\"#function-name\"},{\"include\":\"#function-body\"}]},\"function-expression\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(async)\\\\\\\\s+)?(function\\\\\\\\b)(?:\\\\\\\\s*(\\\\\\\\*))?(?:(?:\\\\\\\\s+|(?<=\\\\\\\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.ts\"},\"2\":{\"name\":\"storage.type.function.ts\"},\"3\":{\"name\":\"keyword.generator.asterisk.ts\"},\"4\":{\"name\":\"meta.definition.function.ts entity.name.function.ts\"}},\"end\":\"(?=;)|(?<=\\\\\\\\})\",\"name\":\"meta.function.expression.ts\",\"patterns\":[{\"include\":\"#function-name\"},{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#function-body\"}]},\"function-name\":{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"meta.definition.function.ts entity.name.function.ts\"},\"function-parameters\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.begin.ts\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.ts\"}},\"name\":\"meta.parameters.ts\",\"patterns\":[{\"include\":\"#function-parameters-body\"}]},\"function-parameters-body\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#decorator\"},{\"include\":\"#destructuring-parameter\"},{\"include\":\"#parameter-name\"},{\"include\":\"#parameter-type-annotation\"},{\"include\":\"#variable-initializer\"},{\"match\":\",\",\"name\":\"punctuation.separator.parameter.ts\"}]},\"identifiers\":{\"patterns\":[{\"include\":\"#object-identifiers\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.ts\"},\"2\":{\"name\":\"punctuation.accessor.optional.ts\"},\"3\":{\"name\":\"entity.name.function.ts\"}},\"match\":\"(?:(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\\\\\\\s*=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))))\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.ts\"},\"2\":{\"name\":\"punctuation.accessor.optional.ts\"},\"3\":{\"name\":\"variable.other.constant.property.ts\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(\\\\\\\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.ts\"},\"2\":{\"name\":\"punctuation.accessor.optional.ts\"},\"3\":{\"name\":\"variable.other.property.ts\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)\"},{\"match\":\"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])\",\"name\":\"variable.other.constant.ts\"},{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"variable.other.readwrite.ts\"}]},\"if-statement\":{\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?=\\\\\\\\bif\\\\\\\\s*(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))\\\\\\\\s*(?!\\\\\\\\{))\",\"end\":\"(?=;|$|\\\\\\\\})\",\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(if)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.conditional.ts\"},\"2\":{\"name\":\"meta.brace.round.ts\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\"(?<=\\\\\\\\))\\\\\\\\s*\\\\\\\\/(?![\\\\\\\\/*])(?=(?:[^\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\\\[]|\\\\\\\\\\\\\\\\.|\\\\\\\\[([^\\\\\\\\]\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\])+\\\\\\\\/([dgimsuvy]+|(?![\\\\\\\\/\\\\\\\\*])|(?=\\\\\\\\/\\\\\\\\*))(?!\\\\\\\\s*[a-zA-Z0-9_$]))\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ts\"}},\"end\":\"(/)([dgimsuvy]*)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.ts\"},\"2\":{\"name\":\"keyword.other.ts\"}},\"name\":\"string.regexp.ts\",\"patterns\":[{\"include\":\"#regexp\"}]},{\"include\":\"#statements\"}]}]},\"import-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(import)(?:\\\\\\\\s+(type)(?!\\\\\\\\s+from))?(?!\\\\\\\\s*[:\\\\\\\\(])(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"keyword.control.import.ts\"},\"4\":{\"name\":\"keyword.control.type.ts\"}},\"end\":\"(?<!^import|[^\\\\\\\\._$[:alnum:]]import)(?=;|$|^)\",\"name\":\"meta.import.ts\",\"patterns\":[{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"begin\":\"(?<=^import|[^\\\\\\\\._$[:alnum:]]import)(?!\\\\\\\\s*[\\\\\"\\'])\",\"end\":\"\\\\\\\\bfrom\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.from.ts\"}},\"patterns\":[{\"include\":\"#import-export-declaration\"}]},{\"include\":\"#import-export-declaration\"}]},\"import-equals-declaration\":{\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(import)(?:\\\\\\\\s+(type))?\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(=)\\\\\\\\s*(require)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"keyword.control.import.ts\"},\"4\":{\"name\":\"keyword.control.type.ts\"},\"5\":{\"name\":\"variable.other.readwrite.alias.ts\"},\"6\":{\"name\":\"keyword.operator.assignment.ts\"},\"7\":{\"name\":\"keyword.control.require.ts\"},\"8\":{\"name\":\"meta.brace.round.ts\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"name\":\"meta.import-equals.external.ts\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"}]},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(import)(?:\\\\\\\\s+(type))?\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(=)\\\\\\\\s*(?!require\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"keyword.control.import.ts\"},\"4\":{\"name\":\"keyword.control.type.ts\"},\"5\":{\"name\":\"variable.other.readwrite.alias.ts\"},\"6\":{\"name\":\"keyword.operator.assignment.ts\"}},\"end\":\"(?=;|$|^)\",\"name\":\"meta.import-equals.internal.ts\",\"patterns\":[{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#comment\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.module.ts\"},\"2\":{\"name\":\"punctuation.accessor.ts\"},\"3\":{\"name\":\"punctuation.accessor.optional.ts\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\"},{\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"name\":\"variable.other.readwrite.ts\"}]}]},\"import-export-assert-clause\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(with)|(assert))\\\\\\\\s*(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.with.ts\"},\"2\":{\"name\":\"keyword.control.assert.ts\"},\"3\":{\"name\":\"punctuation.definition.block.ts\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"match\":\"(?:[_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?=(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*:)\",\"name\":\"meta.object-literal.key.ts\"},{\"match\":\":\",\"name\":\"punctuation.separator.key-value.ts\"}]},\"import-export-block\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"name\":\"meta.block.ts\",\"patterns\":[{\"include\":\"#import-export-clause\"}]},\"import-export-clause\":{\"patterns\":[{\"include\":\"#comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.type.ts\"},\"2\":{\"name\":\"keyword.control.default.ts\"},\"3\":{\"name\":\"constant.language.import-export-all.ts\"},\"4\":{\"name\":\"variable.other.readwrite.ts\"},\"5\":{\"name\":\"string.quoted.alias.ts\"},\"12\":{\"name\":\"keyword.control.as.ts\"},\"13\":{\"name\":\"keyword.control.default.ts\"},\"14\":{\"name\":\"variable.other.readwrite.alias.ts\"},\"15\":{\"name\":\"string.quoted.alias.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(?:(\\\\\\\\btype)\\\\\\\\s+)?(?:(\\\\\\\\bdefault)|(\\\\\\\\*)|(\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*)|((\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))))\\\\\\\\s+(as)\\\\\\\\s+(?:(default(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|([_$[:alpha:]][_$[:alnum:]]*)|((\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`)))\"},{\"include\":\"#punctuation-comma\"},{\"match\":\"\\\\\\\\*\",\"name\":\"constant.language.import-export-all.ts\"},{\"match\":\"\\\\\\\\b(default)\\\\\\\\b\",\"name\":\"keyword.control.default.ts\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.type.ts\"},\"2\":{\"name\":\"variable.other.readwrite.alias.ts\"},\"3\":{\"name\":\"string.quoted.alias.ts\"}},\"match\":\"(?:(\\\\\\\\btype)\\\\\\\\s+)?(?:([_$[:alpha:]][_$[:alnum:]]*)|((\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`)))\"}]},\"import-export-declaration\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#import-export-block\"},{\"match\":\"\\\\\\\\bfrom\\\\\\\\b\",\"name\":\"keyword.control.from.ts\"},{\"include\":\"#import-export-assert-clause\"},{\"include\":\"#import-export-clause\"}]},\"indexer-declaration\":{\"begin\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(readonly)\\\\\\\\s*)?\\\\\\\\s*(\\\\\\\\[)\\\\\\\\s*([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?=:)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.ts\"},\"2\":{\"name\":\"meta.brace.square.ts\"},\"3\":{\"name\":\"variable.parameter.ts\"}},\"end\":\"(\\\\\\\\])\\\\\\\\s*(\\\\\\\\?\\\\\\\\s*)?|$\",\"endCaptures\":{\"1\":{\"name\":\"meta.brace.square.ts\"},\"2\":{\"name\":\"keyword.operator.optional.ts\"}},\"name\":\"meta.indexer.declaration.ts\",\"patterns\":[{\"include\":\"#type-annotation\"}]},\"indexer-mapped-type-declaration\":{\"begin\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))([+-])?(readonly)\\\\\\\\s*)?\\\\\\\\s*(\\\\\\\\[)\\\\\\\\s*([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s+(in)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.modifier.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"meta.brace.square.ts\"},\"4\":{\"name\":\"entity.name.type.ts\"},\"5\":{\"name\":\"keyword.operator.expression.in.ts\"}},\"end\":\"(\\\\\\\\])([+-])?\\\\\\\\s*(\\\\\\\\?\\\\\\\\s*)?|$\",\"endCaptures\":{\"1\":{\"name\":\"meta.brace.square.ts\"},\"2\":{\"name\":\"keyword.operator.type.modifier.ts\"},\"3\":{\"name\":\"keyword.operator.optional.ts\"}},\"name\":\"meta.indexer.mappedtype.declaration.ts\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.as.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(as)\\\\\\\\s+\"},{\"include\":\"#type\"}]},\"inline-tags\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.bracket.square.begin.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.bracket.square.end.jsdoc\"}},\"match\":\"(\\\\\\\\[)[^\\\\\\\\]]+(\\\\\\\\])(?={@(?:link|linkcode|linkplain|tutorial))\",\"name\":\"constant.other.description.jsdoc\"},{\"begin\":\"({)((@)(?:link(?:code|plain)?|tutorial))\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.bracket.curly.begin.jsdoc\"},\"2\":{\"name\":\"storage.type.class.jsdoc\"},\"3\":{\"name\":\"punctuation.definition.inline.tag.jsdoc\"}},\"end\":\"}|(?=\\\\\\\\*/)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.bracket.curly.end.jsdoc\"}},\"name\":\"entity.name.type.instance.jsdoc\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.other.link.underline.jsdoc\"},\"2\":{\"name\":\"punctuation.separator.pipe.jsdoc\"}},\"match\":\"\\\\\\\\G((?=https?://)(?:[^|}\\\\\\\\s*]|\\\\\\\\*[/])+)(\\\\\\\\|)?\"},{\"captures\":{\"1\":{\"name\":\"variable.other.description.jsdoc\"},\"2\":{\"name\":\"punctuation.separator.pipe.jsdoc\"}},\"match\":\"\\\\\\\\G((?:[^{}@\\\\\\\\s|*]|\\\\\\\\*[^/])+)(\\\\\\\\|)?\"}]}]},\"instanceof-expr\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(instanceof)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.expression.instanceof.ts\"}},\"end\":\"(?<=\\\\\\\\))|(?=[;),}\\\\\\\\]:?\\\\\\\\-\\\\\\\\+\\\\\\\\>]|\\\\\\\\|\\\\\\\\||\\\\\\\\&\\\\\\\\&|\\\\\\\\!\\\\\\\\=\\\\\\\\=|$|(===|!==|==|!=)|(([\\\\\\\\&\\\\\\\\~\\\\\\\\^\\\\\\\\|]\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+instanceof(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))function((\\\\\\\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\s*[\\\\\\\\(]))))\",\"patterns\":[{\"include\":\"#type\"}]},\"interface-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(?:(abstract)\\\\\\\\s+)?\\\\\\\\b(interface)\\\\\\\\b(?=\\\\\\\\s+|/[/*])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"storage.modifier.ts\"},\"4\":{\"name\":\"storage.type.interface.ts\"}},\"end\":\"(?<=\\\\\\\\})\",\"name\":\"meta.interface.ts\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#class-or-interface-heritage\"},{\"captures\":{\"0\":{\"name\":\"entity.name.type.interface.ts\"}},\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\"},{\"include\":\"#type-parameters\"},{\"include\":\"#class-or-interface-body\"}]},\"jsdoctype\":{\"patterns\":[{\"begin\":\"\\\\\\\\G({)\",\"beginCaptures\":{\"0\":{\"name\":\"entity.name.type.instance.jsdoc\"},\"1\":{\"name\":\"punctuation.definition.bracket.curly.begin.jsdoc\"}},\"contentName\":\"entity.name.type.instance.jsdoc\",\"end\":\"((}))\\\\\\\\s*|(?=\\\\\\\\*/)\",\"endCaptures\":{\"1\":{\"name\":\"entity.name.type.instance.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.bracket.curly.end.jsdoc\"}},\"patterns\":[{\"include\":\"#brackets\"}]}]},\"label\":{\"patterns\":[{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(:)(?=\\\\\\\\s*\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.label.ts\"},\"2\":{\"name\":\"punctuation.separator.label.ts\"}},\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#decl-block\"}]},{\"captures\":{\"1\":{\"name\":\"entity.name.label.ts\"},\"2\":{\"name\":\"punctuation.separator.label.ts\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(:)\"}]},\"literal\":{\"patterns\":[{\"include\":\"#numeric-literal\"},{\"include\":\"#boolean-literal\"},{\"include\":\"#null-literal\"},{\"include\":\"#undefined-literal\"},{\"include\":\"#numericConstant-literal\"},{\"include\":\"#array-literal\"},{\"include\":\"#this-literal\"},{\"include\":\"#super-literal\"}]},\"method-declaration\":{\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:\\\\\\\\b(override)\\\\\\\\s+)?(?:\\\\\\\\b(public|private|protected)\\\\\\\\s+)?(?:\\\\\\\\b(abstract)\\\\\\\\s+)?(?:\\\\\\\\b(async)\\\\\\\\s+)?\\\\\\\\s*\\\\\\\\b(constructor)\\\\\\\\b(?!:)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"storage.modifier.ts\"},\"4\":{\"name\":\"storage.modifier.async.ts\"},\"5\":{\"name\":\"storage.type.ts\"}},\"end\":\"(?=\\\\\\\\}|;|,|$)|(?<=\\\\\\\\})\",\"name\":\"meta.method.declaration.ts\",\"patterns\":[{\"include\":\"#method-declaration-name\"},{\"include\":\"#function-body\"}]},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:\\\\\\\\b(override)\\\\\\\\s+)?(?:\\\\\\\\b(public|private|protected)\\\\\\\\s+)?(?:\\\\\\\\b(abstract)\\\\\\\\s+)?(?:\\\\\\\\b(async)\\\\\\\\s+)?(?:(?:\\\\\\\\s*\\\\\\\\b(new)\\\\\\\\b(?!:)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(?:(\\\\\\\\*)\\\\\\\\s*)?)(?=\\\\\\\\s*((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*))?[\\\\\\\\(])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"storage.modifier.ts\"},\"4\":{\"name\":\"storage.modifier.async.ts\"},\"5\":{\"name\":\"keyword.operator.new.ts\"},\"6\":{\"name\":\"keyword.generator.asterisk.ts\"}},\"end\":\"(?=\\\\\\\\}|;|,|$)|(?<=\\\\\\\\})\",\"name\":\"meta.method.declaration.ts\",\"patterns\":[{\"include\":\"#method-declaration-name\"},{\"include\":\"#function-body\"}]},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:\\\\\\\\b(override)\\\\\\\\s+)?(?:\\\\\\\\b(public|private|protected)\\\\\\\\s+)?(?:\\\\\\\\b(abstract)\\\\\\\\s+)?(?:\\\\\\\\b(async)\\\\\\\\s+)?(?:\\\\\\\\b(get|set)\\\\\\\\s+)?(?:(\\\\\\\\*)\\\\\\\\s*)?(?=\\\\\\\\s*(((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(\\\\\\\\??))\\\\\\\\s*((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*))?[\\\\\\\\(])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"storage.modifier.ts\"},\"4\":{\"name\":\"storage.modifier.async.ts\"},\"5\":{\"name\":\"storage.type.property.ts\"},\"6\":{\"name\":\"keyword.generator.asterisk.ts\"}},\"end\":\"(?=\\\\\\\\}|;|,|$)|(?<=\\\\\\\\})\",\"name\":\"meta.method.declaration.ts\",\"patterns\":[{\"include\":\"#method-declaration-name\"},{\"include\":\"#function-body\"}]}]},\"method-declaration-name\":{\"begin\":\"(?=((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(\\\\\\\\??)\\\\\\\\s*[\\\\\\\\(\\\\\\\\<])\",\"end\":\"(?=\\\\\\\\(|\\\\\\\\<)\",\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#array-literal\"},{\"include\":\"#numeric-literal\"},{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"meta.definition.method.ts entity.name.function.ts\"},{\"match\":\"\\\\\\\\?\",\"name\":\"keyword.operator.optional.ts\"}]},\"namespace-declaration\":{\"begin\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(namespace|module)\\\\\\\\s+(?=[_$[:alpha:]\\\\\"\\'`]))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"storage.type.namespace.ts\"}},\"end\":\"(?<=\\\\\\\\})|(?=;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"name\":\"meta.namespace.declaration.ts\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"name\":\"entity.name.type.module.ts\"},{\"include\":\"#punctuation-accessor\"},{\"include\":\"#decl-block\"}]},\"new-expr\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(new)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.new.ts\"}},\"end\":\"(?<=\\\\\\\\))|(?=[;),}\\\\\\\\]:?\\\\\\\\-\\\\\\\\+\\\\\\\\>]|\\\\\\\\|\\\\\\\\||\\\\\\\\&\\\\\\\\&|\\\\\\\\!\\\\\\\\=\\\\\\\\=|$|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))new(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))function((\\\\\\\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\s*[\\\\\\\\(]))))\",\"name\":\"new.expr.ts\",\"patterns\":[{\"include\":\"#expression\"}]},\"null-literal\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))null(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.null.ts\"},\"numeric-literal\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.numeric.bigint.ts\"}},\"match\":\"\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.numeric.hex.ts\"},{\"captures\":{\"1\":{\"name\":\"storage.type.numeric.bigint.ts\"}},\"match\":\"\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.numeric.binary.ts\"},{\"captures\":{\"1\":{\"name\":\"storage.type.numeric.bigint.ts\"}},\"match\":\"\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.numeric.octal.ts\"},{\"captures\":{\"0\":{\"name\":\"constant.numeric.decimal.ts\"},\"1\":{\"name\":\"meta.delimiter.decimal.period.ts\"},\"2\":{\"name\":\"storage.type.numeric.bigint.ts\"},\"3\":{\"name\":\"meta.delimiter.decimal.period.ts\"},\"4\":{\"name\":\"storage.type.numeric.bigint.ts\"},\"5\":{\"name\":\"meta.delimiter.decimal.period.ts\"},\"6\":{\"name\":\"storage.type.numeric.bigint.ts\"},\"7\":{\"name\":\"storage.type.numeric.bigint.ts\"},\"8\":{\"name\":\"meta.delimiter.decimal.period.ts\"},\"9\":{\"name\":\"storage.type.numeric.bigint.ts\"},\"10\":{\"name\":\"meta.delimiter.decimal.period.ts\"},\"11\":{\"name\":\"storage.type.numeric.bigint.ts\"},\"12\":{\"name\":\"meta.delimiter.decimal.period.ts\"},\"13\":{\"name\":\"storage.type.numeric.bigint.ts\"},\"14\":{\"name\":\"storage.type.numeric.bigint.ts\"}},\"match\":\"(?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$)\"}]},\"numericConstant-literal\":{\"patterns\":[{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))NaN(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.nan.ts\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Infinity(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.infinity.ts\"}]},\"object-binding-element\":{\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?=((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(:))\",\"end\":\"(?=,|\\\\\\\\})\",\"patterns\":[{\"include\":\"#object-binding-element-propertyName\"},{\"include\":\"#binding-element\"}]},{\"include\":\"#object-binding-pattern\"},{\"include\":\"#destructuring-variable-rest\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#punctuation-comma\"}]},\"object-binding-element-const\":{\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?=((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(:))\",\"end\":\"(?=,|\\\\\\\\})\",\"patterns\":[{\"include\":\"#object-binding-element-propertyName\"},{\"include\":\"#binding-element-const\"}]},{\"include\":\"#object-binding-pattern-const\"},{\"include\":\"#destructuring-variable-rest-const\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#punctuation-comma\"}]},\"object-binding-element-propertyName\":{\"begin\":\"(?=((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(:))\",\"end\":\"(:)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.destructuring.ts\"}},\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#array-literal\"},{\"include\":\"#numeric-literal\"},{\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"name\":\"variable.object.property.ts\"}]},\"object-binding-pattern\":{\"begin\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.ts\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.object.ts\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.object.ts\"}},\"patterns\":[{\"include\":\"#object-binding-element\"}]},\"object-binding-pattern-const\":{\"begin\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.ts\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.object.ts\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.object.ts\"}},\"patterns\":[{\"include\":\"#object-binding-element-const\"}]},\"object-identifiers\":{\"patterns\":[{\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)(?=\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*prototype\\\\\\\\b(?!\\\\\\\\$))\",\"name\":\"support.class.ts\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.ts\"},\"2\":{\"name\":\"punctuation.accessor.optional.ts\"},\"3\":{\"name\":\"variable.other.constant.object.property.ts\"},\"4\":{\"name\":\"variable.other.object.property.ts\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(?:(\\\\\\\\#?[[:upper:]][_$[:digit:][:upper:]]*)|(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))(?=\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)\"},{\"captures\":{\"1\":{\"name\":\"variable.other.constant.object.ts\"},\"2\":{\"name\":\"variable.other.object.ts\"}},\"match\":\"(?:([[:upper:]][_$[:digit:][:upper:]]*)|([_$[:alpha:]][_$[:alnum:]]*))(?=\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)\"}]},\"object-literal\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"name\":\"meta.objectliteral.ts\",\"patterns\":[{\"include\":\"#object-member\"}]},\"object-literal-method-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:\\\\\\\\b(async)\\\\\\\\s+)?(?:\\\\\\\\b(get|set)\\\\\\\\s+)?(?:(\\\\\\\\*)\\\\\\\\s*)?(?=\\\\\\\\s*(((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(\\\\\\\\??))\\\\\\\\s*((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*))?[\\\\\\\\(])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.ts\"},\"2\":{\"name\":\"storage.type.property.ts\"},\"3\":{\"name\":\"keyword.generator.asterisk.ts\"}},\"end\":\"(?=\\\\\\\\}|;|,)|(?<=\\\\\\\\})\",\"name\":\"meta.method.declaration.ts\",\"patterns\":[{\"include\":\"#method-declaration-name\"},{\"include\":\"#function-body\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:\\\\\\\\b(async)\\\\\\\\s+)?(?:\\\\\\\\b(get|set)\\\\\\\\s+)?(?:(\\\\\\\\*)\\\\\\\\s*)?(?=\\\\\\\\s*(((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(\\\\\\\\??))\\\\\\\\s*((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*))?[\\\\\\\\(])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.ts\"},\"2\":{\"name\":\"storage.type.property.ts\"},\"3\":{\"name\":\"keyword.generator.asterisk.ts\"}},\"end\":\"(?=\\\\\\\\(|\\\\\\\\<)\",\"patterns\":[{\"include\":\"#method-declaration-name\"}]}]},\"object-member\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#object-literal-method-declaration\"},{\"begin\":\"(?=\\\\\\\\[)\",\"end\":\"(?=:)|((?<=[\\\\\\\\]])(?=\\\\\\\\s*[\\\\\\\\(\\\\\\\\<]))\",\"name\":\"meta.object.member.ts meta.object-literal.key.ts\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#array-literal\"}]},{\"begin\":\"(?=[\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`])\",\"end\":\"(?=:)|((?<=[\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`])(?=((\\\\\\\\s*[\\\\\\\\(\\\\\\\\<,}])|(\\\\\\\\s+(as|satisifies)\\\\\\\\s+))))\",\"name\":\"meta.object.member.ts meta.object-literal.key.ts\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"}]},{\"begin\":\"(?=(\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$)))\",\"end\":\"(?=:)|(?=\\\\\\\\s*([\\\\\\\\(\\\\\\\\<,}])|(\\\\\\\\s+as|satisifies\\\\\\\\s+))\",\"name\":\"meta.object.member.ts meta.object-literal.key.ts\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#numeric-literal\"}]},{\"begin\":\"(?<=[\\\\\\\\]\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`])(?=\\\\\\\\s*[\\\\\\\\(\\\\\\\\<])\",\"end\":\"(?=\\\\\\\\}|;|,)|(?<=\\\\\\\\})\",\"name\":\"meta.method.declaration.ts\",\"patterns\":[{\"include\":\"#function-body\"}]},{\"captures\":{\"0\":{\"name\":\"meta.object-literal.key.ts\"},\"1\":{\"name\":\"constant.numeric.decimal.ts\"}},\"match\":\"(?![_$[:alpha:]])([[:digit:]]+)\\\\\\\\s*(?=(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*:)\",\"name\":\"meta.object.member.ts\"},{\"captures\":{\"0\":{\"name\":\"meta.object-literal.key.ts\"},\"1\":{\"name\":\"entity.name.function.ts\"}},\"match\":\"(?:([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?=(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*:(\\\\\\\\s*\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/)*\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>))))))\",\"name\":\"meta.object.member.ts\"},{\"captures\":{\"0\":{\"name\":\"meta.object-literal.key.ts\"}},\"match\":\"(?:[_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?=(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*:)\",\"name\":\"meta.object.member.ts\"},{\"begin\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.spread.ts\"}},\"end\":\"(?=,|\\\\\\\\})\",\"name\":\"meta.object.member.ts\",\"patterns\":[{\"include\":\"#expression\"}]},{\"captures\":{\"1\":{\"name\":\"variable.other.readwrite.ts\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?=,|\\\\\\\\}|$|\\\\\\\\/\\\\\\\\/|\\\\\\\\/\\\\\\\\*)\",\"name\":\"meta.object.member.ts\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.as.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(as)\\\\\\\\s+(const)(?=\\\\\\\\s*([,}]|$))\",\"name\":\"meta.object.member.ts\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(as)|(satisfies))\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.as.ts\"},\"2\":{\"name\":\"keyword.control.satisfies.ts\"}},\"end\":\"(?=[;),}\\\\\\\\]:?\\\\\\\\-\\\\\\\\+\\\\\\\\>]|\\\\\\\\|\\\\\\\\||\\\\\\\\&\\\\\\\\&|\\\\\\\\!\\\\\\\\=\\\\\\\\=|$|^|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(as|satisifies)\\\\\\\\s+))\",\"name\":\"meta.object.member.ts\",\"patterns\":[{\"include\":\"#type\"}]},{\"begin\":\"(?=[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=)\",\"end\":\"(?=,|\\\\\\\\}|$|\\\\\\\\/\\\\\\\\/|\\\\\\\\/\\\\\\\\*)\",\"name\":\"meta.object.member.ts\",\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\":\",\"beginCaptures\":{\"0\":{\"name\":\"meta.object-literal.key.ts punctuation.separator.key-value.ts\"}},\"end\":\"(?=,|\\\\\\\\})\",\"name\":\"meta.object.member.ts\",\"patterns\":[{\"begin\":\"(?<=:)\\\\\\\\s*(async)?(?=\\\\\\\\s*(<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)\\\\\\\\(\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.ts\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"include\":\"#type-parameters\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"patterns\":[{\"include\":\"#expression-inside-possibly-arrow-parens\"}]}]},{\"begin\":\"(?<=:)\\\\\\\\s*(async)?\\\\\\\\s*(\\\\\\\\()(?=\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.ts\"},\"2\":{\"name\":\"meta.brace.round.ts\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"patterns\":[{\"include\":\"#expression-inside-possibly-arrow-parens\"}]},{\"begin\":\"(?<=:)\\\\\\\\s*(async)?\\\\\\\\s*(?=\\\\\\\\<\\\\\\\\s*$)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.ts\"}},\"end\":\"(?<=\\\\\\\\>)\",\"patterns\":[{\"include\":\"#type-parameters\"}]},{\"begin\":\"(?<=\\\\\\\\>)\\\\\\\\s*(\\\\\\\\()(?=\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))\",\"beginCaptures\":{\"1\":{\"name\":\"meta.brace.round.ts\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"patterns\":[{\"include\":\"#expression-inside-possibly-arrow-parens\"}]},{\"include\":\"#possibly-arrow-return-type\"},{\"include\":\"#expression\"}]},{\"include\":\"#punctuation-comma\"},{\"include\":\"#decl-block\"}]},\"parameter-array-binding-pattern\":{\"begin\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.ts\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.array.ts\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.array.ts\"}},\"patterns\":[{\"include\":\"#parameter-binding-element\"},{\"include\":\"#punctuation-comma\"}]},\"parameter-binding-element\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#regex\"},{\"include\":\"#parameter-object-binding-pattern\"},{\"include\":\"#parameter-array-binding-pattern\"},{\"include\":\"#destructuring-parameter-rest\"},{\"include\":\"#variable-initializer\"}]},\"parameter-name\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.modifier.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(override|public|protected|private|readonly)\\\\\\\\s+(?=(override|public|protected|private|readonly)\\\\\\\\s+)\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.ts\"},\"2\":{\"name\":\"keyword.operator.rest.ts\"},\"3\":{\"name\":\"entity.name.function.ts variable.language.this.ts\"},\"4\":{\"name\":\"entity.name.function.ts\"},\"5\":{\"name\":\"keyword.operator.optional.ts\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(override|public|private|protected|readonly)\\\\\\\\s+)?(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*(\\\\\\\\??)(?=\\\\\\\\s*(=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))))|(:\\\\\\\\s*((<)|([(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>)))))))|(:\\\\\\\\s*(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Function(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(:\\\\\\\\s*((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))))|(:\\\\\\\\s*(=>|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>))))))\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.ts\"},\"2\":{\"name\":\"keyword.operator.rest.ts\"},\"3\":{\"name\":\"variable.parameter.ts variable.language.this.ts\"},\"4\":{\"name\":\"variable.parameter.ts\"},\"5\":{\"name\":\"keyword.operator.optional.ts\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(override|public|private|protected|readonly)\\\\\\\\s+)?(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*(\\\\\\\\??)\"}]},\"parameter-object-binding-element\":{\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?=((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(:))\",\"end\":\"(?=,|\\\\\\\\})\",\"patterns\":[{\"include\":\"#object-binding-element-propertyName\"},{\"include\":\"#parameter-binding-element\"},{\"include\":\"#paren-expression\"}]},{\"include\":\"#parameter-object-binding-pattern\"},{\"include\":\"#destructuring-parameter-rest\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#punctuation-comma\"}]},\"parameter-object-binding-pattern\":{\"begin\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.ts\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.object.ts\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.object.ts\"}},\"patterns\":[{\"include\":\"#parameter-object-binding-element\"}]},\"parameter-type-annotation\":{\"patterns\":[{\"begin\":\"(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.ts\"}},\"end\":\"(?=[,)])|(?==[^>])\",\"name\":\"meta.type.annotation.ts\",\"patterns\":[{\"include\":\"#type\"}]}]},\"paren-expression\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"paren-expression-possibly-arrow\":{\"patterns\":[{\"begin\":\"(?<=[(=,])\\\\\\\\s*(async)?(?=\\\\\\\\s*((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*))?\\\\\\\\(\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.ts\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"include\":\"#paren-expression-possibly-arrow-with-typeparameters\"}]},{\"begin\":\"(?<=[(=,]|=>|^return|[^\\\\\\\\._$[:alnum:]]return)\\\\\\\\s*(async)?(?=\\\\\\\\s*((((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*))?\\\\\\\\()|(<)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)))\\\\\\\\s*$)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.ts\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"include\":\"#paren-expression-possibly-arrow-with-typeparameters\"}]},{\"include\":\"#possibly-arrow-return-type\"}]},\"paren-expression-possibly-arrow-with-typeparameters\":{\"patterns\":[{\"include\":\"#type-parameters\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"patterns\":[{\"include\":\"#expression-inside-possibly-arrow-parens\"}]}]},\"possibly-arrow-return-type\":{\"begin\":\"(?<=\\\\\\\\)|^)\\\\\\\\s*(:)(?=\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*=>)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts\"}},\"contentName\":\"meta.arrow.ts meta.return.type.arrow.ts\",\"end\":\"(?==>|\\\\\\\\{|(^\\\\\\\\s*(export|function|class|interface|let|var|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|const|import|enum|namespace|module|type|abstract|declare)\\\\\\\\s+))\",\"patterns\":[{\"include\":\"#arrow-return-type-body\"}]},\"property-accessor\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(accessor|get|set)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.type.property.ts\"},\"punctuation-accessor\":{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.ts\"},\"2\":{\"name\":\"punctuation.accessor.optional.ts\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\"},\"punctuation-comma\":{\"match\":\",\",\"name\":\"punctuation.separator.comma.ts\"},\"punctuation-semicolon\":{\"match\":\";\",\"name\":\"punctuation.terminator.statement.ts\"},\"qstring-double\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ts\"}},\"end\":\"(\\\\\")|((?:[^\\\\\\\\\\\\\\\\\\\\\\\\n])$)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.ts\"},\"2\":{\"name\":\"invalid.illegal.newline.ts\"}},\"name\":\"string.quoted.double.ts\",\"patterns\":[{\"include\":\"#string-character-escape\"}]},\"qstring-single\":{\"begin\":\"\\'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ts\"}},\"end\":\"(\\\\\\\\\\')|((?:[^\\\\\\\\\\\\\\\\\\\\\\\\n])$)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.ts\"},\"2\":{\"name\":\"invalid.illegal.newline.ts\"}},\"name\":\"string.quoted.single.ts\",\"patterns\":[{\"include\":\"#string-character-escape\"}]},\"regex\":{\"patterns\":[{\"begin\":\"(?<!\\\\\\\\+\\\\\\\\+|--|})(?<=[=(:,\\\\\\\\[?+!]|^return|[^\\\\\\\\._$[:alnum:]]return|^case|[^\\\\\\\\._$[:alnum:]]case|=>|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\*\\\\\\\\/)\\\\\\\\s*(\\\\\\\\/)(?![\\\\\\\\/*])(?=(?:[^\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\\\[\\\\\\\\()]|\\\\\\\\\\\\\\\\.|\\\\\\\\[([^\\\\\\\\]\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)+\\\\\\\\]|\\\\\\\\(([^\\\\\\\\)\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)+\\\\\\\\))+\\\\\\\\/([dgimsuvy]+|(?![\\\\\\\\/\\\\\\\\*])|(?=\\\\\\\\/\\\\\\\\*))(?!\\\\\\\\s*[a-zA-Z0-9_$]))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.ts\"}},\"end\":\"(/)([dgimsuvy]*)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.ts\"},\"2\":{\"name\":\"keyword.other.ts\"}},\"name\":\"string.regexp.ts\",\"patterns\":[{\"include\":\"#regexp\"}]},{\"begin\":\"((?<![_$[:alnum:])\\\\\\\\]]|\\\\\\\\+\\\\\\\\+|--|}|\\\\\\\\*\\\\\\\\/)|((?<=^return|[^\\\\\\\\._$[:alnum:]]return|^case|[^\\\\\\\\._$[:alnum:]]case))\\\\\\\\s*)\\\\\\\\/(?![\\\\\\\\/*])(?=(?:[^\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\\\[]|\\\\\\\\\\\\\\\\.|\\\\\\\\[([^\\\\\\\\]\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\])+\\\\\\\\/([dgimsuvy]+|(?![\\\\\\\\/\\\\\\\\*])|(?=\\\\\\\\/\\\\\\\\*))(?!\\\\\\\\s*[a-zA-Z0-9_$]))\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ts\"}},\"end\":\"(/)([dgimsuvy]*)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.ts\"},\"2\":{\"name\":\"keyword.other.ts\"}},\"name\":\"string.regexp.ts\",\"patterns\":[{\"include\":\"#regexp\"}]}]},\"regex-character-class\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[wWsSdDtrnvf]|\\\\\\\\.\",\"name\":\"constant.other.character-class.regexp\"},{\"match\":\"\\\\\\\\\\\\\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})\",\"name\":\"constant.character.numeric.regexp\"},{\"match\":\"\\\\\\\\\\\\\\\\c[A-Z]\",\"name\":\"constant.character.control.regexp\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.backslash.regexp\"}]},\"regexp\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[bB]|\\\\\\\\^|\\\\\\\\$\",\"name\":\"keyword.control.anchor.regexp\"},{\"captures\":{\"0\":{\"name\":\"keyword.other.back-reference.regexp\"},\"1\":{\"name\":\"variable.other.regexp\"}},\"match\":\"\\\\\\\\\\\\\\\\[1-9]\\\\\\\\d*|\\\\\\\\\\\\\\\\k<([a-zA-Z_$][\\\\\\\\w$]*)>\"},{\"match\":\"[?+*]|\\\\\\\\{(\\\\\\\\d+,\\\\\\\\d+|\\\\\\\\d+,|,\\\\\\\\d+|\\\\\\\\d+)\\\\\\\\}\\\\\\\\??\",\"name\":\"keyword.operator.quantifier.regexp\"},{\"match\":\"\\\\\\\\|\",\"name\":\"keyword.operator.or.regexp\"},{\"begin\":\"(\\\\\\\\()((\\\\\\\\?=)|(\\\\\\\\?!)|(\\\\\\\\?<=)|(\\\\\\\\?<!))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.group.regexp\"},\"2\":{\"name\":\"punctuation.definition.group.assertion.regexp\"},\"3\":{\"name\":\"meta.assertion.look-ahead.regexp\"},\"4\":{\"name\":\"meta.assertion.negative-look-ahead.regexp\"},\"5\":{\"name\":\"meta.assertion.look-behind.regexp\"},\"6\":{\"name\":\"meta.assertion.negative-look-behind.regexp\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.group.regexp\"}},\"name\":\"meta.group.assertion.regexp\",\"patterns\":[{\"include\":\"#regexp\"}]},{\"begin\":\"\\\\\\\\((?:(\\\\\\\\?:)|(?:\\\\\\\\?<([a-zA-Z_$][\\\\\\\\w$]*)>))?\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.regexp\"},\"1\":{\"name\":\"punctuation.definition.group.no-capture.regexp\"},\"2\":{\"name\":\"variable.other.regexp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.regexp\"}},\"name\":\"meta.group.regexp\",\"patterns\":[{\"include\":\"#regexp\"}]},{\"begin\":\"(\\\\\\\\[)(\\\\\\\\^)?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.character-class.regexp\"},\"2\":{\"name\":\"keyword.operator.negation.regexp\"}},\"end\":\"(\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.character-class.regexp\"}},\"name\":\"constant.other.character-class.set.regexp\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.character.numeric.regexp\"},\"2\":{\"name\":\"constant.character.control.regexp\"},\"3\":{\"name\":\"constant.character.escape.backslash.regexp\"},\"4\":{\"name\":\"constant.character.numeric.regexp\"},\"5\":{\"name\":\"constant.character.control.regexp\"},\"6\":{\"name\":\"constant.character.escape.backslash.regexp\"}},\"match\":\"(?:.|(\\\\\\\\\\\\\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\\\\\\\\\\\\\c[A-Z])|(\\\\\\\\\\\\\\\\.))\\\\\\\\-(?:[^\\\\\\\\]\\\\\\\\\\\\\\\\]|(\\\\\\\\\\\\\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\\\\\\\\\\\\\c[A-Z])|(\\\\\\\\\\\\\\\\.))\",\"name\":\"constant.other.character-class.range.regexp\"},{\"include\":\"#regex-character-class\"}]},{\"include\":\"#regex-character-class\"}]},\"return-type\":{\"patterns\":[{\"begin\":\"(?<=\\\\\\\\))\\\\\\\\s*(:)(?=\\\\\\\\s*\\\\\\\\S)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.ts\"}},\"end\":\"(?<![:|&])(?=$|^|[{};,]|//)\",\"name\":\"meta.return.type.ts\",\"patterns\":[{\"include\":\"#return-type-core\"}]},{\"begin\":\"(?<=\\\\\\\\))\\\\\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.ts\"}},\"end\":\"(?<![:|&])((?=[{};,]|//|^\\\\\\\\s*$)|((?<=\\\\\\\\S)(?=\\\\\\\\s*$)))\",\"name\":\"meta.return.type.ts\",\"patterns\":[{\"include\":\"#return-type-core\"}]}]},\"return-type-core\":{\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?<=[:|&])(?=\\\\\\\\s*\\\\\\\\{)\",\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#type-object\"}]},{\"include\":\"#type-predicate-operator\"},{\"include\":\"#type\"}]},\"shebang\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.ts\"}},\"match\":\"\\\\\\\\A(#!).*(?=$)\",\"name\":\"comment.line.shebang.ts\"},\"single-line-comment-consuming-line-ending\":{\"begin\":\"(^[ \\\\\\\\t]+)?((//)(?:\\\\\\\\s*((@)internal)(?=\\\\\\\\s|$))?)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.ts\"},\"2\":{\"name\":\"comment.line.double-slash.ts\"},\"3\":{\"name\":\"punctuation.definition.comment.ts\"},\"4\":{\"name\":\"storage.type.internaldeclaration.ts\"},\"5\":{\"name\":\"punctuation.decorator.internaldeclaration.ts\"}},\"contentName\":\"comment.line.double-slash.ts\",\"end\":\"(?=^)\"},\"statements\":{\"patterns\":[{\"include\":\"#declaration\"},{\"include\":\"#control-statement\"},{\"include\":\"#after-operator-block-as-object-literal\"},{\"include\":\"#decl-block\"},{\"include\":\"#label\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-semicolon\"},{\"include\":\"#string\"},{\"include\":\"#comment\"}]},\"string\":{\"patterns\":[{\"include\":\"#qstring-single\"},{\"include\":\"#qstring-double\"},{\"include\":\"#template\"}]},\"string-character-escape\":{\"match\":\"\\\\\\\\\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\\\\\\\{[0-9A-Fa-f]+\\\\\\\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)\",\"name\":\"constant.character.escape.ts\"},\"super-literal\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))super\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"variable.language.super.ts\"},\"support-function-call-identifiers\":{\"patterns\":[{\"include\":\"#literal\"},{\"include\":\"#support-objects\"},{\"include\":\"#object-identifiers\"},{\"include\":\"#punctuation-accessor\"},{\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))import(?=\\\\\\\\s*[\\\\\\\\(]\\\\\\\\s*[\\\\\\\\\\\\\"\\\\\\\\\\'\\\\\\\\`]))\",\"name\":\"keyword.operator.expression.import.ts\"}]},\"support-objects\":{\"patterns\":[{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(arguments)\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"variable.language.arguments.ts\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(Promise)\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"support.class.promise.ts\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.import.ts\"},\"2\":{\"name\":\"punctuation.accessor.ts\"},\"3\":{\"name\":\"punctuation.accessor.optional.ts\"},\"4\":{\"name\":\"support.variable.property.importmeta.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(import)\\\\\\\\s*(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(meta)\\\\\\\\b(?!\\\\\\\\$)\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.new.ts\"},\"2\":{\"name\":\"punctuation.accessor.ts\"},\"3\":{\"name\":\"punctuation.accessor.optional.ts\"},\"4\":{\"name\":\"support.variable.property.target.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(new)\\\\\\\\s*(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(target)\\\\\\\\b(?!\\\\\\\\$)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.ts\"},\"2\":{\"name\":\"punctuation.accessor.optional.ts\"},\"3\":{\"name\":\"support.variable.property.ts\"},\"4\":{\"name\":\"support.constant.ts\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(?:(?:(constructor|length|prototype|__proto__)\\\\\\\\b(?!\\\\\\\\$|\\\\\\\\s*(<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\())|(?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\\\\\\\b(?!\\\\\\\\$)))\"},{\"captures\":{\"1\":{\"name\":\"support.type.object.module.ts\"},\"2\":{\"name\":\"support.type.object.module.ts\"},\"3\":{\"name\":\"punctuation.accessor.ts\"},\"4\":{\"name\":\"punctuation.accessor.optional.ts\"},\"5\":{\"name\":\"support.type.object.module.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(exports)|(module)(?:(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))(exports|id|filename|loaded|parent|children))?)\\\\\\\\b(?!\\\\\\\\$)\"}]},\"switch-statement\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?=\\\\\\\\bswitch\\\\\\\\s*\\\\\\\\()\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"name\":\"switch-statement.expr.ts\",\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(switch)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.switch.ts\"},\"2\":{\"name\":\"meta.brace.round.ts\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"name\":\"switch-expression.expr.ts\",\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"end\":\"(?=\\\\\\\\})\",\"name\":\"switch-block.expr.ts\",\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(case|default(?=:))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.switch.ts\"}},\"end\":\"(?=:)\",\"name\":\"case-clause.expr.ts\",\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\"(:)\\\\\\\\s*(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"case-clause.expr.ts punctuation.definition.section.case-statement.ts\"},\"2\":{\"name\":\"meta.block.ts punctuation.definition.block.ts\"}},\"contentName\":\"meta.block.ts\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"meta.block.ts punctuation.definition.block.ts\"}},\"patterns\":[{\"include\":\"#statements\"}]},{\"captures\":{\"0\":{\"name\":\"case-clause.expr.ts punctuation.definition.section.case-statement.ts\"}},\"match\":\"(:)\"},{\"include\":\"#statements\"}]}]},\"template\":{\"patterns\":[{\"include\":\"#template-call\"},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)?(`)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.tagged-template.ts\"},\"2\":{\"name\":\"string.template.ts punctuation.definition.string.template.begin.ts\"}},\"contentName\":\"string.template.ts\",\"end\":\"`\",\"endCaptures\":{\"0\":{\"name\":\"string.template.ts punctuation.definition.string.template.end.ts\"}},\"patterns\":[{\"include\":\"#template-substitution-element\"},{\"include\":\"#string-character-escape\"}]}]},\"template-call\":{\"patterns\":[{\"begin\":\"(?=(([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*)*|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))(([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>)*(?<!=)\\\\\\\\>))*(?<!=)\\\\\\\\>)*(?<!=)>\\\\\\\\s*)?`)\",\"end\":\"(?=`)\",\"patterns\":[{\"begin\":\"(?=(([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*)*|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))\",\"end\":\"(?=(<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))(([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>)*(?<!=)\\\\\\\\>))*(?<!=)\\\\\\\\>)*(?<!=)>\\\\\\\\s*)?`)\",\"patterns\":[{\"include\":\"#support-function-call-identifiers\"},{\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"name\":\"entity.name.function.tagged-template.ts\"}]},{\"include\":\"#type-arguments\"}]},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)?\\\\\\\\s*(?=(<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))(([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>)*(?<!=)\\\\\\\\>))*(?<!=)\\\\\\\\>)*(?<!=)>\\\\\\\\s*)`)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.tagged-template.ts\"}},\"end\":\"(?=`)\",\"patterns\":[{\"include\":\"#type-arguments\"}]}]},\"template-substitution-element\":{\"begin\":\"\\\\\\\\$\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.begin.ts\"}},\"contentName\":\"meta.embedded.line.ts\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.end.ts\"}},\"name\":\"meta.template.expression.ts\",\"patterns\":[{\"include\":\"#expression\"}]},\"template-type\":{\"patterns\":[{\"include\":\"#template-call\"},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)?(`)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.tagged-template.ts\"},\"2\":{\"name\":\"string.template.ts punctuation.definition.string.template.begin.ts\"}},\"contentName\":\"string.template.ts\",\"end\":\"`\",\"endCaptures\":{\"0\":{\"name\":\"string.template.ts punctuation.definition.string.template.end.ts\"}},\"patterns\":[{\"include\":\"#template-type-substitution-element\"},{\"include\":\"#string-character-escape\"}]}]},\"template-type-substitution-element\":{\"begin\":\"\\\\\\\\$\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.begin.ts\"}},\"contentName\":\"meta.embedded.line.ts\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.end.ts\"}},\"name\":\"meta.template.expression.ts\",\"patterns\":[{\"include\":\"#type\"}]},\"ternary-expression\":{\"begin\":\"(?!\\\\\\\\?\\\\\\\\.\\\\\\\\s*[^[:digit:]])(\\\\\\\\?)(?!\\\\\\\\?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.ternary.ts\"}},\"end\":\"\\\\\\\\s*(:)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.ternary.ts\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"this-literal\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))this\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"variable.language.this.ts\"},\"type\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-string\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#type-primitive\"},{\"include\":\"#type-builtin-literals\"},{\"include\":\"#type-parameters\"},{\"include\":\"#type-tuple\"},{\"include\":\"#type-object\"},{\"include\":\"#type-operators\"},{\"include\":\"#type-conditional\"},{\"include\":\"#type-fn-type-parameters\"},{\"include\":\"#type-paren-or-function-parameters\"},{\"include\":\"#type-function-return-type\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*\"},{\"include\":\"#type-name\"}]},\"type-alias-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(type)\\\\\\\\b\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"storage.type.type.ts\"},\"4\":{\"name\":\"entity.name.type.alias.ts\"}},\"end\":\"(?=\\\\\\\\}|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"name\":\"meta.type.declaration.ts\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-parameters\"},{\"begin\":\"(=)\\\\\\\\s*(intrinsic)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.ts\"},\"2\":{\"name\":\"keyword.control.intrinsic.ts\"}},\"end\":\"(?=\\\\\\\\}|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#type\"}]},{\"begin\":\"(=)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.ts\"}},\"end\":\"(?=\\\\\\\\}|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#type\"}]}]},\"type-annotation\":{\"patterns\":[{\"begin\":\"(:)(?=\\\\\\\\s*\\\\\\\\S)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.ts\"}},\"end\":\"(?<![:|&])(?!\\\\\\\\s*[|&]\\\\\\\\s+)((?=^|[,);\\\\\\\\}\\\\\\\\]]|//)|(?==[^>])|((?<=[\\\\\\\\}>\\\\\\\\]\\\\\\\\)]|[_$[:alpha:]])\\\\\\\\s*(?=\\\\\\\\{)))\",\"name\":\"meta.type.annotation.ts\",\"patterns\":[{\"include\":\"#type\"}]},{\"begin\":\"(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.ts\"}},\"end\":\"(?<![:|&])((?=[,);\\\\\\\\}\\\\\\\\]]|\\\\\\\\/\\\\\\\\/)|(?==[^>])|(?=^\\\\\\\\s*$)|((?<=[\\\\\\\\}>\\\\\\\\]\\\\\\\\)]|[_$[:alpha:]])\\\\\\\\s*(?=\\\\\\\\{)))\",\"name\":\"meta.type.annotation.ts\",\"patterns\":[{\"include\":\"#type\"}]}]},\"type-arguments\":{\"begin\":\"\\\\\\\\<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.begin.ts\"}},\"end\":\"\\\\\\\\>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.end.ts\"}},\"name\":\"meta.type.parameters.ts\",\"patterns\":[{\"include\":\"#type-arguments-body\"}]},\"type-arguments-body\":{\"patterns\":[{\"captures\":{\"0\":{\"name\":\"keyword.operator.type.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(_)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\"},{\"include\":\"#type\"},{\"include\":\"#punctuation-comma\"}]},\"type-builtin-literals\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"support.type.builtin.ts\"},\"type-conditional\":{\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(extends)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.ts\"}},\"end\":\"(?<=:)\",\"patterns\":[{\"begin\":\"\\\\\\\\?\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.ternary.ts\"}},\"end\":\":\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.ternary.ts\"}},\"patterns\":[{\"include\":\"#type\"}]},{\"include\":\"#type\"}]}]},\"type-fn-type-parameters\":{\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(abstract)\\\\\\\\s+)?(new)\\\\\\\\b(?=\\\\\\\\s*\\\\\\\\<)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.type.constructor.ts storage.modifier.ts\"},\"2\":{\"name\":\"meta.type.constructor.ts keyword.control.new.ts\"}},\"end\":\"(?<=>)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-parameters\"}]},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(abstract)\\\\\\\\s+)?(new)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.ts\"},\"2\":{\"name\":\"keyword.control.new.ts\"}},\"end\":\"(?<=\\\\\\\\))\",\"name\":\"meta.type.constructor.ts\",\"patterns\":[{\"include\":\"#function-parameters\"}]},{\"begin\":\"((?=[(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>))))))\",\"end\":\"(?<=\\\\\\\\))\",\"name\":\"meta.type.function.ts\",\"patterns\":[{\"include\":\"#function-parameters\"}]}]},\"type-function-return-type\":{\"patterns\":[{\"begin\":\"(=>)(?=\\\\\\\\s*\\\\\\\\S)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.arrow.ts\"}},\"end\":\"(?<!=>)(?<![|&])(?=[,\\\\\\\\]\\\\\\\\)\\\\\\\\{\\\\\\\\}=;>:\\\\\\\\?]|//|$)\",\"name\":\"meta.type.function.return.ts\",\"patterns\":[{\"include\":\"#type-function-return-type-core\"}]},{\"begin\":\"=>\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.function.arrow.ts\"}},\"end\":\"(?<!=>)(?<![|&])((?=[,\\\\\\\\]\\\\\\\\)\\\\\\\\{\\\\\\\\}=;:\\\\\\\\?>]|//|^\\\\\\\\s*$)|((?<=\\\\\\\\S)(?=\\\\\\\\s*$)))\",\"name\":\"meta.type.function.return.ts\",\"patterns\":[{\"include\":\"#type-function-return-type-core\"}]}]},\"type-function-return-type-core\":{\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?<==>)(?=\\\\\\\\s*\\\\\\\\{)\",\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#type-object\"}]},{\"include\":\"#type-predicate-operator\"},{\"include\":\"#type\"}]},\"type-infer\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.expression.infer.ts\"},\"2\":{\"name\":\"entity.name.type.ts\"},\"3\":{\"name\":\"keyword.operator.expression.extends.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(infer)\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))(?:\\\\\\\\s+(extends)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))?\",\"name\":\"meta.type.infer.ts\"}]},\"type-name\":{\"patterns\":[{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(<)\",\"captures\":{\"1\":{\"name\":\"entity.name.type.module.ts\"},\"2\":{\"name\":\"punctuation.accessor.ts\"},\"3\":{\"name\":\"punctuation.accessor.optional.ts\"},\"4\":{\"name\":\"meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\"}},\"contentName\":\"meta.type.parameters.ts\",\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\"}},\"patterns\":[{\"include\":\"#type-arguments-body\"}]},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(<)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.type.ts\"},\"2\":{\"name\":\"meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts\"}},\"contentName\":\"meta.type.parameters.ts\",\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"meta.type.parameters.ts punctuation.definition.typeparameters.end.ts\"}},\"patterns\":[{\"include\":\"#type-arguments-body\"}]},{\"captures\":{\"1\":{\"name\":\"entity.name.type.module.ts\"},\"2\":{\"name\":\"punctuation.accessor.ts\"},\"3\":{\"name\":\"punctuation.accessor.optional.ts\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\"},{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"entity.name.type.ts\"}]},\"type-object\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ts\"}},\"name\":\"meta.object.type.ts\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#method-declaration\"},{\"include\":\"#indexer-declaration\"},{\"include\":\"#indexer-mapped-type-declaration\"},{\"include\":\"#field-declaration\"},{\"include\":\"#type-annotation\"},{\"begin\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.spread.ts\"}},\"end\":\"(?=\\\\\\\\}|;|,|$)|(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#type\"}]},{\"include\":\"#punctuation-comma\"},{\"include\":\"#punctuation-semicolon\"},{\"include\":\"#type\"}]},\"type-operators\":{\"patterns\":[{\"include\":\"#typeof-operator\"},{\"include\":\"#type-infer\"},{\"begin\":\"([&|])(?=\\\\\\\\s*\\\\\\\\{)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.type.ts\"}},\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#type-object\"}]},{\"begin\":\"[&|]\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.type.ts\"}},\"end\":\"(?=\\\\\\\\S)\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))keyof(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.expression.keyof.ts\"},{\"match\":\"(\\\\\\\\?|\\\\\\\\:)\",\"name\":\"keyword.operator.ternary.ts\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))import(?=\\\\\\\\s*\\\\\\\\()\",\"name\":\"keyword.operator.expression.import.ts\"}]},\"type-parameters\":{\"begin\":\"(<)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.typeparameters.begin.ts\"}},\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.typeparameters.end.ts\"}},\"name\":\"meta.type.parameters.ts\",\"patterns\":[{\"include\":\"#comment\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.modifier.ts\"},{\"include\":\"#type\"},{\"include\":\"#punctuation-comma\"},{\"match\":\"(=)(?!>)\",\"name\":\"keyword.operator.assignment.ts\"}]},\"type-paren-or-function-parameters\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.ts\"}},\"name\":\"meta.type.paren.cover.ts\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.modifier.ts\"},\"2\":{\"name\":\"keyword.operator.rest.ts\"},\"3\":{\"name\":\"entity.name.function.ts variable.language.this.ts\"},\"4\":{\"name\":\"entity.name.function.ts\"},\"5\":{\"name\":\"keyword.operator.optional.ts\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(public|private|protected|readonly)\\\\\\\\s+)?(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\\\\\\\s*(\\\\\\\\??)(?=\\\\\\\\s*(:\\\\\\\\s*((<)|([(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>)))))))|(:\\\\\\\\s*(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Function(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(:\\\\\\\\s*((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))))\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.ts\"},\"2\":{\"name\":\"keyword.operator.rest.ts\"},\"3\":{\"name\":\"variable.parameter.ts variable.language.this.ts\"},\"4\":{\"name\":\"variable.parameter.ts\"},\"5\":{\"name\":\"keyword.operator.optional.ts\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(public|private|protected|readonly)\\\\\\\\s+)?(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\\\\\\\s*(\\\\\\\\??)(?=:)\"},{\"include\":\"#type-annotation\"},{\"match\":\",\",\"name\":\"punctuation.separator.parameter.ts\"},{\"include\":\"#type\"}]},\"type-predicate-operator\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.type.asserts.ts\"},\"2\":{\"name\":\"variable.parameter.ts variable.language.this.ts\"},\"3\":{\"name\":\"variable.parameter.ts\"},\"4\":{\"name\":\"keyword.operator.expression.is.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(asserts)\\\\\\\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\\\\\\\s(is)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.type.asserts.ts\"},\"2\":{\"name\":\"variable.parameter.ts variable.language.this.ts\"},\"3\":{\"name\":\"variable.parameter.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(asserts)\\\\\\\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))asserts(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.type.asserts.ts\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))is(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.expression.is.ts\"}]},\"type-primitive\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"support.type.primitive.ts\"},\"type-string\":{\"patterns\":[{\"include\":\"#qstring-single\"},{\"include\":\"#qstring-double\"},{\"include\":\"#template-type\"}]},\"type-tuple\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.square.ts\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.square.ts\"}},\"name\":\"meta.type.tuple.ts\",\"patterns\":[{\"match\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"name\":\"keyword.operator.rest.ts\"},{\"captures\":{\"1\":{\"name\":\"entity.name.label.ts\"},\"2\":{\"name\":\"keyword.operator.optional.ts\"},\"3\":{\"name\":\"punctuation.separator.label.ts\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(\\\\\\\\?)?\\\\\\\\s*(:)\"},{\"include\":\"#type\"},{\"include\":\"#punctuation-comma\"}]},\"typeof-operator\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))typeof(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.expression.typeof.ts\"}},\"end\":\"(?=[,);}\\\\\\\\]=>:&|{\\\\\\\\?]|(extends\\\\\\\\s+)|$|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#type-arguments\"},{\"include\":\"#expression\"}]},\"undefined-literal\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))undefined(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.undefined.ts\"},\"var-expr\":{\"patterns\":[{\"begin\":\"(?=(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(var|let)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))\",\"end\":\"(?!(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(var|let)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))|((?<!^let|[^\\\\\\\\._$[:alnum:]]let|^var|[^\\\\\\\\._$[:alnum:]]var)(?=\\\\\\\\s*$)))\",\"name\":\"meta.var.expr.ts\",\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(var|let)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"storage.type.ts\"}},\"end\":\"(?=\\\\\\\\S)\"},{\"include\":\"#destructuring-variable\"},{\"include\":\"#var-single-variable\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#comment\"},{\"begin\":\"(,)\\\\\\\\s*(?=$|\\\\\\\\/\\\\\\\\/)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.comma.ts\"}},\"end\":\"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|^\\\\\\\\s*$))|((?<=\\\\\\\\S)(?=\\\\\\\\s*$)))\",\"patterns\":[{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#comment\"},{\"include\":\"#destructuring-variable\"},{\"include\":\"#var-single-variable\"},{\"include\":\"#punctuation-comma\"}]},{\"include\":\"#punctuation-comma\"}]},{\"begin\":\"(?=(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(const(?!\\\\\\\\s+enum\\\\\\\\b))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"storage.type.ts\"}},\"end\":\"(?!(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(const(?!\\\\\\\\s+enum\\\\\\\\b))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))|((?<!^const|[^\\\\\\\\._$[:alnum:]]const)(?=\\\\\\\\s*$)))\",\"name\":\"meta.var.expr.ts\",\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(const(?!\\\\\\\\s+enum\\\\\\\\b))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"storage.type.ts\"}},\"end\":\"(?=\\\\\\\\S)\"},{\"include\":\"#destructuring-const\"},{\"include\":\"#var-single-const\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#comment\"},{\"begin\":\"(,)\\\\\\\\s*(?=$|\\\\\\\\/\\\\\\\\/)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.comma.ts\"}},\"end\":\"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|^\\\\\\\\s*$))|((?<=\\\\\\\\S)(?=\\\\\\\\s*$)))\",\"patterns\":[{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#comment\"},{\"include\":\"#destructuring-const\"},{\"include\":\"#var-single-const\"},{\"include\":\"#punctuation-comma\"}]},{\"include\":\"#punctuation-comma\"}]},{\"begin\":\"(?=(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b((?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"storage.type.ts\"}},\"end\":\"(?!(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b((?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))((?=;|}|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))|((?<!^using|[^\\\\\\\\._$[:alnum:]]using|^await\\\\\\\\s+using|[^\\\\\\\\._$[:alnum:]]await\\\\\\\\s+using)(?=\\\\\\\\s*$)))\",\"name\":\"meta.var.expr.ts\",\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b((?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.ts\"},\"2\":{\"name\":\"storage.modifier.ts\"},\"3\":{\"name\":\"storage.type.ts\"}},\"end\":\"(?=\\\\\\\\S)\"},{\"include\":\"#var-single-const\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#comment\"},{\"begin\":\"(,)\\\\\\\\s*((?!\\\\\\\\S)|(?=\\\\\\\\/\\\\\\\\/))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.comma.ts\"}},\"end\":\"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|^\\\\\\\\s*$))|((?<=\\\\\\\\S)(?=\\\\\\\\s*$)))\",\"patterns\":[{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#comment\"},{\"include\":\"#var-single-const\"},{\"include\":\"#punctuation-comma\"}]},{\"include\":\"#punctuation-comma\"}]}]},\"var-single-const\":{\"patterns\":[{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)(?=\\\\\\\\s*(=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))))|(:\\\\\\\\s*((<)|([(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>)))))))|(:\\\\\\\\s*(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Function(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(:\\\\\\\\s*((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))))|(:\\\\\\\\s*(=>|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>))))))\",\"beginCaptures\":{\"1\":{\"name\":\"meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts\"}},\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|(;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b)))\",\"name\":\"meta.var-single-variable.expr.ts\",\"patterns\":[{\"include\":\"#var-single-variable-type-annotation\"}]},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.definition.variable.ts variable.other.constant.ts\"}},\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|(;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b)))\",\"name\":\"meta.var-single-variable.expr.ts\",\"patterns\":[{\"include\":\"#var-single-variable-type-annotation\"}]}]},\"var-single-variable\":{\"patterns\":[{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\!)?(?=\\\\\\\\s*(=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))))|(:\\\\\\\\s*((<)|([(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>)))))))|(:\\\\\\\\s*(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Function(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(:\\\\\\\\s*((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))))|(:\\\\\\\\s*(=>|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>))))))\",\"beginCaptures\":{\"1\":{\"name\":\"meta.definition.variable.ts entity.name.function.ts\"},\"2\":{\"name\":\"keyword.operator.definiteassignment.ts\"}},\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|(;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b)))\",\"name\":\"meta.var-single-variable.expr.ts\",\"patterns\":[{\"include\":\"#var-single-variable-type-annotation\"}]},{\"begin\":\"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])(\\\\\\\\!)?\",\"beginCaptures\":{\"1\":{\"name\":\"meta.definition.variable.ts variable.other.constant.ts\"},\"2\":{\"name\":\"keyword.operator.definiteassignment.ts\"}},\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|(;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b)))\",\"name\":\"meta.var-single-variable.expr.ts\",\"patterns\":[{\"include\":\"#var-single-variable-type-annotation\"}]},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\!)?\",\"beginCaptures\":{\"1\":{\"name\":\"meta.definition.variable.ts variable.other.readwrite.ts\"},\"2\":{\"name\":\"keyword.operator.definiteassignment.ts\"}},\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|(;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b)))\",\"name\":\"meta.var-single-variable.expr.ts\",\"patterns\":[{\"include\":\"#var-single-variable-type-annotation\"}]}]},\"var-single-variable-type-annotation\":{\"patterns\":[{\"include\":\"#type-annotation\"},{\"include\":\"#string\"},{\"include\":\"#comment\"}]},\"variable-initializer\":{\"patterns\":[{\"begin\":\"(?<!=|!)(=)(?!=)(?=\\\\\\\\s*\\\\\\\\S)(?!\\\\\\\\s*.*=>\\\\\\\\s*$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.ts\"}},\"end\":\"(?=$|^|[,);}\\\\\\\\]]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+))\",\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\"(?<!=|!)(=)(?!=)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.ts\"}},\"end\":\"(?=[,);}\\\\\\\\]]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+))|(?=^\\\\\\\\s*$)|(?<![\\\\\\\\|\\\\\\\\&\\\\\\\\+\\\\\\\\-\\\\\\\\*\\\\\\\\/])(?<=\\\\\\\\S)(?<!=)(?=\\\\\\\\s*$)\",\"patterns\":[{\"include\":\"#expression\"}]}]}},\"scopeName\":\"source.ts.ng\",\"embeddedLangs\":[\"angular-expression\",\"angular-inline-style\",\"angular-inline-template\",\"angular-let-declaration\",\"angular-template\",\"angular-template-blocks\"]}')),_=[...a,...o,...l,...t,...e,...s,m];export{_ as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Ds-gbosJ.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBorder\":\"#575279\",\"activityBar.background\":\"#faf4ed\",\"activityBar.dropBorder\":\"#f2e9e1\",\"activityBar.foreground\":\"#575279\",\"activityBar.inactiveForeground\":\"#797593\",\"activityBarBadge.background\":\"#d7827e\",\"activityBarBadge.foreground\":\"#faf4ed\",\"badge.background\":\"#d7827e\",\"badge.foreground\":\"#faf4ed\",\"banner.background\":\"#fffaf3\",\"banner.foreground\":\"#575279\",\"banner.iconForeground\":\"#797593\",\"breadcrumb.activeSelectionForeground\":\"#d7827e\",\"breadcrumb.background\":\"#faf4ed\",\"breadcrumb.focusForeground\":\"#797593\",\"breadcrumb.foreground\":\"#9893a5\",\"breadcrumbPicker.background\":\"#fffaf3\",\"button.background\":\"#d7827e\",\"button.foreground\":\"#faf4ed\",\"button.hoverBackground\":\"#d7827ee6\",\"button.secondaryBackground\":\"#fffaf3\",\"button.secondaryForeground\":\"#575279\",\"button.secondaryHoverBackground\":\"#f2e9e1\",\"charts.blue\":\"#56949f\",\"charts.foreground\":\"#575279\",\"charts.green\":\"#286983\",\"charts.lines\":\"#797593\",\"charts.orange\":\"#d7827e\",\"charts.purple\":\"#907aa9\",\"charts.red\":\"#b4637a\",\"charts.yellow\":\"#ea9d34\",\"checkbox.background\":\"#fffaf3\",\"checkbox.border\":\"#6e6a8614\",\"checkbox.foreground\":\"#575279\",\"debugExceptionWidget.background\":\"#fffaf3\",\"debugExceptionWidget.border\":\"#6e6a8614\",\"debugIcon.breakpointCurrentStackframeForeground\":\"#797593\",\"debugIcon.breakpointDisabledForeground\":\"#797593\",\"debugIcon.breakpointForeground\":\"#797593\",\"debugIcon.breakpointStackframeForeground\":\"#797593\",\"debugIcon.breakpointUnverifiedForeground\":\"#797593\",\"debugIcon.continueForeground\":\"#797593\",\"debugIcon.disconnectForeground\":\"#797593\",\"debugIcon.pauseForeground\":\"#797593\",\"debugIcon.restartForeground\":\"#797593\",\"debugIcon.startForeground\":\"#797593\",\"debugIcon.stepBackForeground\":\"#797593\",\"debugIcon.stepIntoForeground\":\"#797593\",\"debugIcon.stepOutForeground\":\"#797593\",\"debugIcon.stepOverForeground\":\"#797593\",\"debugIcon.stopForeground\":\"#b4637a\",\"debugToolBar.background\":\"#fffaf3\",\"debugToolBar.border\":\"#f2e9e1\",\"descriptionForeground\":\"#797593\",\"diffEditor.border\":\"#f2e9e1\",\"diffEditor.diagonalFill\":\"#6e6a8626\",\"diffEditor.insertedLineBackground\":\"#56949f26\",\"diffEditor.insertedTextBackground\":\"#56949f26\",\"diffEditor.removedLineBackground\":\"#b4637a26\",\"diffEditor.removedTextBackground\":\"#b4637a26\",\"diffEditorOverview.insertedForeground\":\"#56949f80\",\"diffEditorOverview.removedForeground\":\"#b4637a80\",\"dropdown.background\":\"#fffaf3\",\"dropdown.border\":\"#6e6a8614\",\"dropdown.foreground\":\"#575279\",\"dropdown.listBackground\":\"#fffaf3\",\"editor.background\":\"#faf4ed\",\"editor.findMatchBackground\":\"#ea9d3433\",\"editor.findMatchBorder\":\"#ea9d3480\",\"editor.findMatchForeground\":\"#575279\",\"editor.findMatchHighlightBackground\":\"#6e6a8626\",\"editor.findMatchHighlightForeground\":\"#575279\",\"editor.findRangeHighlightBackground\":\"#6e6a8626\",\"editor.findRangeHighlightBorder\":\"#0000\",\"editor.focusedStackFrameHighlightBackground\":\"#6e6a8614\",\"editor.foldBackground\":\"#fffaf3\",\"editor.foreground\":\"#575279\",\"editor.hoverHighlightBackground\":\"#0000\",\"editor.inactiveSelectionBackground\":\"#6e6a860d\",\"editor.inlineValuesBackground\":\"#0000\",\"editor.inlineValuesForeground\":\"#797593\",\"editor.lineHighlightBackground\":\"#6e6a860d\",\"editor.lineHighlightBorder\":\"#0000\",\"editor.linkedEditingBackground\":\"#fffaf3\",\"editor.rangeHighlightBackground\":\"#6e6a860d\",\"editor.selectionBackground\":\"#6e6a8614\",\"editor.selectionForeground\":\"#575279\",\"editor.selectionHighlightBackground\":\"#6e6a8614\",\"editor.selectionHighlightBorder\":\"#faf4ed\",\"editor.snippetFinalTabstopHighlightBackground\":\"#6e6a8614\",\"editor.snippetFinalTabstopHighlightBorder\":\"#fffaf3\",\"editor.snippetTabstopHighlightBackground\":\"#6e6a8614\",\"editor.snippetTabstopHighlightBorder\":\"#fffaf3\",\"editor.stackFrameHighlightBackground\":\"#6e6a8614\",\"editor.symbolHighlightBackground\":\"#6e6a8614\",\"editor.symbolHighlightBorder\":\"#0000\",\"editor.wordHighlightBackground\":\"#6e6a8614\",\"editor.wordHighlightBorder\":\"#0000\",\"editor.wordHighlightStrongBackground\":\"#6e6a8614\",\"editor.wordHighlightStrongBorder\":\"#6e6a8614\",\"editorBracketHighlight.foreground1\":\"#b4637a80\",\"editorBracketHighlight.foreground2\":\"#28698380\",\"editorBracketHighlight.foreground3\":\"#ea9d3480\",\"editorBracketHighlight.foreground4\":\"#56949f80\",\"editorBracketHighlight.foreground5\":\"#d7827e80\",\"editorBracketHighlight.foreground6\":\"#907aa980\",\"editorBracketMatch.background\":\"#0000\",\"editorBracketMatch.border\":\"#797593\",\"editorBracketPairGuide.activeBackground1\":\"#286983\",\"editorBracketPairGuide.activeBackground2\":\"#d7827e\",\"editorBracketPairGuide.activeBackground3\":\"#907aa9\",\"editorBracketPairGuide.activeBackground4\":\"#56949f\",\"editorBracketPairGuide.activeBackground5\":\"#ea9d34\",\"editorBracketPairGuide.activeBackground6\":\"#b4637a\",\"editorBracketPairGuide.background1\":\"#28698380\",\"editorBracketPairGuide.background2\":\"#d7827e80\",\"editorBracketPairGuide.background3\":\"#907aa980\",\"editorBracketPairGuide.background4\":\"#56949f80\",\"editorBracketPairGuide.background5\":\"#ea9d3480\",\"editorBracketPairGuide.background6\":\"#b4637a80\",\"editorCodeLens.foreground\":\"#d7827e\",\"editorCursor.background\":\"#575279\",\"editorCursor.foreground\":\"#9893a5\",\"editorError.border\":\"#0000\",\"editorError.foreground\":\"#b4637a\",\"editorGhostText.foreground\":\"#797593\",\"editorGroup.border\":\"#0000\",\"editorGroup.dropBackground\":\"#fffaf3\",\"editorGroup.emptyBackground\":\"#0000\",\"editorGroup.focusedEmptyBorder\":\"#0000\",\"editorGroupHeader.noTabsBackground\":\"#0000\",\"editorGroupHeader.tabsBackground\":\"#0000\",\"editorGroupHeader.tabsBorder\":\"#0000\",\"editorGutter.addedBackground\":\"#56949f\",\"editorGutter.background\":\"#faf4ed\",\"editorGutter.commentRangeForeground\":\"#f2e9e1\",\"editorGutter.deletedBackground\":\"#b4637a\",\"editorGutter.foldingControlForeground\":\"#907aa9\",\"editorGutter.modifiedBackground\":\"#d7827e\",\"editorHint.border\":\"#0000\",\"editorHint.foreground\":\"#797593\",\"editorHoverWidget.background\":\"#fffaf3\",\"editorHoverWidget.border\":\"#9893a580\",\"editorHoverWidget.foreground\":\"#797593\",\"editorHoverWidget.highlightForeground\":\"#575279\",\"editorHoverWidget.statusBarBackground\":\"#0000\",\"editorIndentGuide.activeBackground\":\"#9893a5\",\"editorIndentGuide.background\":\"#6e6a8626\",\"editorInfo.border\":\"#f2e9e1\",\"editorInfo.foreground\":\"#56949f\",\"editorInlayHint.background\":\"#f2e9e1\",\"editorInlayHint.foreground\":\"#797593\",\"editorInlayHint.parameterBackground\":\"#f2e9e1\",\"editorInlayHint.parameterForeground\":\"#907aa9\",\"editorInlayHint.typeBackground\":\"#f2e9e1\",\"editorInlayHint.typeForeground\":\"#56949f\",\"editorLightBulb.foreground\":\"#286983\",\"editorLightBulbAutoFix.foreground\":\"#d7827e\",\"editorLineNumber.activeForeground\":\"#575279\",\"editorLineNumber.foreground\":\"#797593\",\"editorLink.activeForeground\":\"#d7827e\",\"editorMarkerNavigation.background\":\"#fffaf3\",\"editorMarkerNavigationError.background\":\"#fffaf3\",\"editorMarkerNavigationInfo.background\":\"#fffaf3\",\"editorMarkerNavigationWarning.background\":\"#fffaf3\",\"editorOverviewRuler.addedForeground\":\"#56949f80\",\"editorOverviewRuler.background\":\"#faf4ed\",\"editorOverviewRuler.border\":\"#6e6a8626\",\"editorOverviewRuler.bracketMatchForeground\":\"#797593\",\"editorOverviewRuler.commentForeground\":\"#79759380\",\"editorOverviewRuler.commentUnresolvedForeground\":\"#ea9d3480\",\"editorOverviewRuler.commonContentForeground\":\"#6e6a860d\",\"editorOverviewRuler.currentContentForeground\":\"#6e6a8614\",\"editorOverviewRuler.deletedForeground\":\"#b4637a80\",\"editorOverviewRuler.errorForeground\":\"#b4637a80\",\"editorOverviewRuler.findMatchForeground\":\"#6e6a8626\",\"editorOverviewRuler.incomingContentForeground\":\"#907aa980\",\"editorOverviewRuler.infoForeground\":\"#56949f80\",\"editorOverviewRuler.modifiedForeground\":\"#d7827e80\",\"editorOverviewRuler.rangeHighlightForeground\":\"#6e6a8626\",\"editorOverviewRuler.selectionHighlightForeground\":\"#6e6a8626\",\"editorOverviewRuler.warningForeground\":\"#ea9d3480\",\"editorOverviewRuler.wordHighlightForeground\":\"#6e6a8614\",\"editorOverviewRuler.wordHighlightStrongForeground\":\"#6e6a8626\",\"editorPane.background\":\"#0000\",\"editorRuler.foreground\":\"#6e6a8626\",\"editorSuggestWidget.background\":\"#fffaf3\",\"editorSuggestWidget.border\":\"#0000\",\"editorSuggestWidget.focusHighlightForeground\":\"#d7827e\",\"editorSuggestWidget.foreground\":\"#797593\",\"editorSuggestWidget.highlightForeground\":\"#d7827e\",\"editorSuggestWidget.selectedBackground\":\"#6e6a8614\",\"editorSuggestWidget.selectedForeground\":\"#575279\",\"editorSuggestWidget.selectedIconForeground\":\"#575279\",\"editorUnnecessaryCode.border\":\"#0000\",\"editorUnnecessaryCode.opacity\":\"#57527980\",\"editorWarning.border\":\"#0000\",\"editorWarning.foreground\":\"#ea9d34\",\"editorWhitespace.foreground\":\"#9893a5\",\"editorWidget.background\":\"#fffaf3\",\"editorWidget.border\":\"#f2e9e1\",\"editorWidget.foreground\":\"#797593\",\"editorWidget.resizeBorder\":\"#9893a5\",\"errorForeground\":\"#b4637a\",\"extensionBadge.remoteBackground\":\"#907aa9\",\"extensionBadge.remoteForeground\":\"#faf4ed\",\"extensionButton.prominentBackground\":\"#d7827e\",\"extensionButton.prominentForeground\":\"#faf4ed\",\"extensionButton.prominentHoverBackground\":\"#d7827ee6\",\"extensionIcon.preReleaseForeground\":\"#286983\",\"extensionIcon.starForeground\":\"#d7827e\",\"extensionIcon.verifiedForeground\":\"#907aa9\",\"focusBorder\":\"#6e6a8614\",\"foreground\":\"#575279\",\"gitDecoration.addedResourceForeground\":\"#56949f\",\"gitDecoration.conflictingResourceForeground\":\"#b4637a\",\"gitDecoration.deletedResourceForeground\":\"#797593\",\"gitDecoration.ignoredResourceForeground\":\"#9893a5\",\"gitDecoration.modifiedResourceForeground\":\"#d7827e\",\"gitDecoration.renamedResourceForeground\":\"#286983\",\"gitDecoration.stageDeletedResourceForeground\":\"#b4637a\",\"gitDecoration.stageModifiedResourceForeground\":\"#907aa9\",\"gitDecoration.submoduleResourceForeground\":\"#ea9d34\",\"gitDecoration.untrackedResourceForeground\":\"#ea9d34\",\"icon.foreground\":\"#797593\",\"input.background\":\"#f2e9e180\",\"input.border\":\"#6e6a8614\",\"input.foreground\":\"#575279\",\"input.placeholderForeground\":\"#797593\",\"inputOption.activeBackground\":\"#d7827e26\",\"inputOption.activeBorder\":\"#0000\",\"inputOption.activeForeground\":\"#d7827e\",\"inputValidation.errorBackground\":\"#fffaf3\",\"inputValidation.errorBorder\":\"#6e6a8626\",\"inputValidation.errorForeground\":\"#b4637a\",\"inputValidation.infoBackground\":\"#fffaf3\",\"inputValidation.infoBorder\":\"#6e6a8626\",\"inputValidation.infoForeground\":\"#56949f\",\"inputValidation.warningBackground\":\"#fffaf3\",\"inputValidation.warningBorder\":\"#6e6a8626\",\"inputValidation.warningForeground\":\"#56949f80\",\"keybindingLabel.background\":\"#f2e9e1\",\"keybindingLabel.border\":\"#6e6a8626\",\"keybindingLabel.bottomBorder\":\"#6e6a8626\",\"keybindingLabel.foreground\":\"#907aa9\",\"keybindingTable.headerBackground\":\"#f2e9e1\",\"keybindingTable.rowsBackground\":\"#fffaf3\",\"list.activeSelectionBackground\":\"#6e6a8614\",\"list.activeSelectionForeground\":\"#575279\",\"list.deemphasizedForeground\":\"#797593\",\"list.dropBackground\":\"#fffaf3\",\"list.errorForeground\":\"#b4637a\",\"list.filterMatchBackground\":\"#fffaf3\",\"list.filterMatchBorder\":\"#d7827e\",\"list.focusBackground\":\"#6e6a8626\",\"list.focusForeground\":\"#575279\",\"list.focusOutline\":\"#6e6a8614\",\"list.highlightForeground\":\"#d7827e\",\"list.hoverBackground\":\"#6e6a860d\",\"list.hoverForeground\":\"#575279\",\"list.inactiveFocusBackground\":\"#6e6a860d\",\"list.inactiveSelectionBackground\":\"#fffaf3\",\"list.inactiveSelectionForeground\":\"#575279\",\"list.invalidItemForeground\":\"#b4637a\",\"list.warningForeground\":\"#ea9d34\",\"listFilterWidget.background\":\"#fffaf3\",\"listFilterWidget.noMatchesOutline\":\"#b4637a\",\"listFilterWidget.outline\":\"#f2e9e1\",\"menu.background\":\"#fffaf3\",\"menu.border\":\"#6e6a860d\",\"menu.foreground\":\"#575279\",\"menu.selectionBackground\":\"#6e6a8614\",\"menu.selectionBorder\":\"#f2e9e1\",\"menu.selectionForeground\":\"#575279\",\"menu.separatorBackground\":\"#6e6a8626\",\"menubar.selectionBackground\":\"#6e6a8614\",\"menubar.selectionBorder\":\"#6e6a860d\",\"menubar.selectionForeground\":\"#575279\",\"merge.border\":\"#f2e9e1\",\"merge.commonContentBackground\":\"#6e6a8614\",\"merge.commonHeaderBackground\":\"#6e6a8614\",\"merge.currentContentBackground\":\"#ea9d3480\",\"merge.currentHeaderBackground\":\"#ea9d3480\",\"merge.incomingContentBackground\":\"#56949f80\",\"merge.incomingHeaderBackground\":\"#56949f80\",\"minimap.background\":\"#fffaf3\",\"minimap.errorHighlight\":\"#b4637a80\",\"minimap.findMatchHighlight\":\"#6e6a8614\",\"minimap.selectionHighlight\":\"#6e6a8614\",\"minimap.warningHighlight\":\"#ea9d3480\",\"minimapGutter.addedBackground\":\"#56949f\",\"minimapGutter.deletedBackground\":\"#b4637a\",\"minimapGutter.modifiedBackground\":\"#d7827e\",\"minimapSlider.activeBackground\":\"#6e6a8626\",\"minimapSlider.background\":\"#6e6a8614\",\"minimapSlider.hoverBackground\":\"#6e6a8614\",\"notebook.cellBorderColor\":\"#56949f80\",\"notebook.cellEditorBackground\":\"#fffaf3\",\"notebook.cellHoverBackground\":\"#f2e9e180\",\"notebook.focusedCellBackground\":\"#6e6a860d\",\"notebook.focusedCellBorder\":\"#56949f\",\"notebook.outputContainerBackgroundColor\":\"#6e6a860d\",\"notificationCenter.border\":\"#6e6a8614\",\"notificationCenterHeader.background\":\"#fffaf3\",\"notificationCenterHeader.foreground\":\"#797593\",\"notificationLink.foreground\":\"#907aa9\",\"notificationToast.border\":\"#6e6a8614\",\"notifications.background\":\"#fffaf3\",\"notifications.border\":\"#6e6a8614\",\"notifications.foreground\":\"#575279\",\"notificationsErrorIcon.foreground\":\"#b4637a\",\"notificationsInfoIcon.foreground\":\"#56949f\",\"notificationsWarningIcon.foreground\":\"#ea9d34\",\"panel.background\":\"#fffaf3\",\"panel.border\":\"#0000\",\"panel.dropBorder\":\"#f2e9e1\",\"panelInput.border\":\"#fffaf3\",\"panelSection.dropBackground\":\"#6e6a8614\",\"panelSectionHeader.background\":\"#fffaf3\",\"panelSectionHeader.foreground\":\"#575279\",\"panelTitle.activeBorder\":\"#6e6a8626\",\"panelTitle.activeForeground\":\"#575279\",\"panelTitle.inactiveForeground\":\"#797593\",\"peekView.border\":\"#f2e9e1\",\"peekViewEditor.background\":\"#fffaf3\",\"peekViewEditor.matchHighlightBackground\":\"#6e6a8626\",\"peekViewResult.background\":\"#fffaf3\",\"peekViewResult.fileForeground\":\"#797593\",\"peekViewResult.lineForeground\":\"#797593\",\"peekViewResult.matchHighlightBackground\":\"#6e6a8626\",\"peekViewResult.selectionBackground\":\"#6e6a8614\",\"peekViewResult.selectionForeground\":\"#575279\",\"peekViewTitle.background\":\"#f2e9e1\",\"peekViewTitleDescription.foreground\":\"#797593\",\"pickerGroup.border\":\"#6e6a8626\",\"pickerGroup.foreground\":\"#907aa9\",\"ports.iconRunningProcessForeground\":\"#d7827e\",\"problemsErrorIcon.foreground\":\"#b4637a\",\"problemsInfoIcon.foreground\":\"#56949f\",\"problemsWarningIcon.foreground\":\"#ea9d34\",\"progressBar.background\":\"#d7827e\",\"quickInput.background\":\"#fffaf3\",\"quickInput.foreground\":\"#797593\",\"quickInputList.focusBackground\":\"#6e6a8614\",\"quickInputList.focusForeground\":\"#575279\",\"quickInputList.focusIconForeground\":\"#575279\",\"scrollbar.shadow\":\"#fffaf34d\",\"scrollbarSlider.activeBackground\":\"#28698380\",\"scrollbarSlider.background\":\"#6e6a8614\",\"scrollbarSlider.hoverBackground\":\"#6e6a8626\",\"searchEditor.findMatchBackground\":\"#6e6a8614\",\"selection.background\":\"#6e6a8626\",\"settings.focusedRowBackground\":\"#fffaf3\",\"settings.focusedRowBorder\":\"#6e6a8614\",\"settings.headerForeground\":\"#575279\",\"settings.modifiedItemIndicator\":\"#d7827e\",\"settings.rowHoverBackground\":\"#fffaf3\",\"sideBar.background\":\"#faf4ed\",\"sideBar.dropBackground\":\"#fffaf3\",\"sideBar.foreground\":\"#797593\",\"sideBarSectionHeader.background\":\"#0000\",\"sideBarSectionHeader.border\":\"#6e6a8614\",\"statusBar.background\":\"#faf4ed\",\"statusBar.debuggingBackground\":\"#907aa9\",\"statusBar.debuggingForeground\":\"#faf4ed\",\"statusBar.foreground\":\"#797593\",\"statusBar.noFolderBackground\":\"#faf4ed\",\"statusBar.noFolderForeground\":\"#797593\",\"statusBarItem.activeBackground\":\"#6e6a8626\",\"statusBarItem.errorBackground\":\"#faf4ed\",\"statusBarItem.errorForeground\":\"#b4637a\",\"statusBarItem.hoverBackground\":\"#6e6a8614\",\"statusBarItem.prominentBackground\":\"#f2e9e1\",\"statusBarItem.prominentForeground\":\"#575279\",\"statusBarItem.prominentHoverBackground\":\"#6e6a8614\",\"statusBarItem.remoteBackground\":\"#faf4ed\",\"statusBarItem.remoteForeground\":\"#ea9d34\",\"symbolIcon.arrayForeground\":\"#797593\",\"symbolIcon.classForeground\":\"#797593\",\"symbolIcon.colorForeground\":\"#797593\",\"symbolIcon.constantForeground\":\"#797593\",\"symbolIcon.constructorForeground\":\"#797593\",\"symbolIcon.enumeratorForeground\":\"#797593\",\"symbolIcon.enumeratorMemberForeground\":\"#797593\",\"symbolIcon.eventForeground\":\"#797593\",\"symbolIcon.fieldForeground\":\"#797593\",\"symbolIcon.fileForeground\":\"#797593\",\"symbolIcon.folderForeground\":\"#797593\",\"symbolIcon.functionForeground\":\"#797593\",\"symbolIcon.interfaceForeground\":\"#797593\",\"symbolIcon.keyForeground\":\"#797593\",\"symbolIcon.keywordForeground\":\"#797593\",\"symbolIcon.methodForeground\":\"#797593\",\"symbolIcon.moduleForeground\":\"#797593\",\"symbolIcon.namespaceForeground\":\"#797593\",\"symbolIcon.nullForeground\":\"#797593\",\"symbolIcon.numberForeground\":\"#797593\",\"symbolIcon.objectForeground\":\"#797593\",\"symbolIcon.operatorForeground\":\"#797593\",\"symbolIcon.packageForeground\":\"#797593\",\"symbolIcon.propertyForeground\":\"#797593\",\"symbolIcon.referenceForeground\":\"#797593\",\"symbolIcon.snippetForeground\":\"#797593\",\"symbolIcon.stringForeground\":\"#797593\",\"symbolIcon.structForeground\":\"#797593\",\"symbolIcon.textForeground\":\"#797593\",\"symbolIcon.typeParameterForeground\":\"#797593\",\"symbolIcon.unitForeground\":\"#797593\",\"symbolIcon.variableForeground\":\"#797593\",\"tab.activeBackground\":\"#6e6a860d\",\"tab.activeForeground\":\"#575279\",\"tab.activeModifiedBorder\":\"#56949f\",\"tab.border\":\"#0000\",\"tab.hoverBackground\":\"#6e6a8614\",\"tab.inactiveBackground\":\"#0000\",\"tab.inactiveForeground\":\"#797593\",\"tab.inactiveModifiedBorder\":\"#56949f80\",\"tab.lastPinnedBorder\":\"#9893a5\",\"tab.unfocusedActiveBackground\":\"#0000\",\"tab.unfocusedHoverBackground\":\"#0000\",\"tab.unfocusedInactiveBackground\":\"#0000\",\"tab.unfocusedInactiveModifiedBorder\":\"#56949f80\",\"terminal.ansiBlack\":\"#f2e9e1\",\"terminal.ansiBlue\":\"#56949f\",\"terminal.ansiBrightBlack\":\"#797593\",\"terminal.ansiBrightBlue\":\"#56949f\",\"terminal.ansiBrightCyan\":\"#d7827e\",\"terminal.ansiBrightGreen\":\"#286983\",\"terminal.ansiBrightMagenta\":\"#907aa9\",\"terminal.ansiBrightRed\":\"#b4637a\",\"terminal.ansiBrightWhite\":\"#575279\",\"terminal.ansiBrightYellow\":\"#ea9d34\",\"terminal.ansiCyan\":\"#d7827e\",\"terminal.ansiGreen\":\"#286983\",\"terminal.ansiMagenta\":\"#907aa9\",\"terminal.ansiRed\":\"#b4637a\",\"terminal.ansiWhite\":\"#575279\",\"terminal.ansiYellow\":\"#ea9d34\",\"terminal.dropBackground\":\"#6e6a8614\",\"terminal.foreground\":\"#575279\",\"terminal.selectionBackground\":\"#6e6a8614\",\"terminal.tab.activeBorder\":\"#575279\",\"terminalCursor.background\":\"#575279\",\"terminalCursor.foreground\":\"#9893a5\",\"textBlockQuote.background\":\"#fffaf3\",\"textBlockQuote.border\":\"#6e6a8614\",\"textCodeBlock.background\":\"#fffaf3\",\"textLink.activeForeground\":\"#907aa9e6\",\"textLink.foreground\":\"#907aa9\",\"textPreformat.foreground\":\"#ea9d34\",\"textSeparator.foreground\":\"#797593\",\"titleBar.activeBackground\":\"#faf4ed\",\"titleBar.activeForeground\":\"#797593\",\"titleBar.inactiveBackground\":\"#fffaf3\",\"titleBar.inactiveForeground\":\"#797593\",\"toolbar.activeBackground\":\"#6e6a8626\",\"toolbar.hoverBackground\":\"#6e6a8614\",\"tree.indentGuidesStroke\":\"#797593\",\"walkThrough.embeddedEditorBackground\":\"#faf4ed\",\"welcomePage.background\":\"#faf4ed\",\"welcomePage.buttonBackground\":\"#fffaf3\",\"welcomePage.buttonHoverBackground\":\"#f2e9e1\",\"widget.shadow\":\"#fffaf34d\",\"window.activeBorder\":\"#fffaf3\",\"window.inactiveBorder\":\"#fffaf3\"},\"displayName\":\"Rosé Pine Dawn\",\"name\":\"rose-pine-dawn\",\"tokenColors\":[{\"scope\":[\"comment\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#9893a5\"}},{\"scope\":[\"constant\"],\"settings\":{\"foreground\":\"#286983\"}},{\"scope\":[\"constant.numeric\",\"constant.language\"],\"settings\":{\"foreground\":\"#d7827e\"}},{\"scope\":[\"entity.name\"],\"settings\":{\"foreground\":\"#d7827e\"}},{\"scope\":[\"entity.name.section\",\"entity.name.tag\",\"entity.name.namespace\",\"entity.name.type\"],\"settings\":{\"foreground\":\"#56949f\"}},{\"scope\":[\"entity.other.attribute-name\",\"entity.other.inherited-class\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#907aa9\"}},{\"scope\":[\"invalid\"],\"settings\":{\"foreground\":\"#b4637a\"}},{\"scope\":[\"invalid.deprecated\"],\"settings\":{\"foreground\":\"#797593\"}},{\"scope\":[\"keyword\",\"variable.language.this\"],\"settings\":{\"foreground\":\"#286983\"}},{\"scope\":[\"markup.inserted.diff\"],\"settings\":{\"foreground\":\"#56949f\"}},{\"scope\":[\"markup.deleted.diff\"],\"settings\":{\"foreground\":\"#b4637a\"}},{\"scope\":\"markup.heading\",\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":\"markup.bold.markdown\",\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":\"markup.italic.markdown\",\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":[\"meta.diff.range\"],\"settings\":{\"foreground\":\"#907aa9\"}},{\"scope\":[\"meta.tag\",\"meta.brace\"],\"settings\":{\"foreground\":\"#575279\"}},{\"scope\":[\"meta.import\",\"meta.export\"],\"settings\":{\"foreground\":\"#286983\"}},{\"scope\":\"meta.directive.vue\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#907aa9\"}},{\"scope\":\"meta.property-name.css\",\"settings\":{\"foreground\":\"#56949f\"}},{\"scope\":\"meta.property-value.css\",\"settings\":{\"foreground\":\"#ea9d34\"}},{\"scope\":\"meta.tag.other.html\",\"settings\":{\"foreground\":\"#797593\"}},{\"scope\":[\"punctuation\"],\"settings\":{\"foreground\":\"#797593\"}},{\"scope\":[\"punctuation.accessor\"],\"settings\":{\"foreground\":\"#286983\"}},{\"scope\":[\"punctuation.definition.string\"],\"settings\":{\"foreground\":\"#ea9d34\"}},{\"scope\":[\"punctuation.definition.tag\"],\"settings\":{\"foreground\":\"#9893a5\"}},{\"scope\":[\"storage.type\",\"storage.modifier\"],\"settings\":{\"foreground\":\"#286983\"}},{\"scope\":[\"string\"],\"settings\":{\"foreground\":\"#ea9d34\"}},{\"scope\":[\"support\"],\"settings\":{\"foreground\":\"#56949f\"}},{\"scope\":[\"support.constant\"],\"settings\":{\"foreground\":\"#ea9d34\"}},{\"scope\":[\"support.function\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#b4637a\"}},{\"scope\":[\"variable\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#d7827e\"}},{\"scope\":[\"variable.other\",\"variable.language\",\"variable.function\",\"variable.argument\"],\"settings\":{\"foreground\":\"#575279\"}},{\"scope\":[\"variable.parameter\"],\"settings\":{\"foreground\":\"#907aa9\"}}],\"type\":\"light\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DsBKuouk.js",
    "content": "const n=Object.freeze(JSON.parse('{\"displayName\":\"ABAP\",\"fileTypes\":[\"abap\",\"ABAP\"],\"foldingStartMarker\":\"/\\\\\\\\*\\\\\\\\*|\\\\\\\\{\\\\\\\\s*$\",\"foldingStopMarker\":\"\\\\\\\\*\\\\\\\\*/|^\\\\\\\\s*\\\\\\\\}\",\"name\":\"abap\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.abap\"}},\"match\":\"^\\\\\\\\*.*\\\\\\\\n?\",\"name\":\"comment.line.full.abap\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.abap\"}},\"match\":\"\\\\\".*\\\\\\\\n?\",\"name\":\"comment.line.partial.abap\"},{\"match\":\"(?<![^\\\\\\\\s])##.*?(?=([\\\\\\\\.:,\\\\\\\\s]))\",\"name\":\"comment.line.pragma.abap\"},{\"match\":\"(?i)(?<=(?:\\\\\\\\s|~|-))(?<=(?:->|=>))([a-z_\\\\\\\\/][a-z_0-9\\\\\\\\/]*)(?=\\\\\\\\s+(?:=|\\\\\\\\+=|-=|\\\\\\\\*=|\\\\\\\\/=|&&=|&=)\\\\\\\\s+)\",\"name\":\"variable.other.abap\"},{\"match\":\"\\\\\\\\b[0-9]+(\\\\\\\\b|\\\\\\\\.|,)\",\"name\":\"constant.numeric.abap\"},{\"match\":\"(?ix)(^|\\\\\\\\s+)((PUBLIC|PRIVATE|PROTECTED)\\\\\\\\sSECTION)(?=\\\\\\\\s+|:|\\\\\\\\.)\",\"name\":\"storage.modifier.class.abap\"},{\"begin\":\"(?<!\\\\\\\\\\\\\\\\)(\\\\\\\\|)(.*?)\",\"beginCaptures\":{\"1\":{\"name\":\"constant.character.escape.abap\"}},\"end\":\"(?<!\\\\\\\\\\\\\\\\)(\\\\\\\\||(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\|))\",\"endCaptures\":{\"1\":{\"name\":\"constant.character.escape.abap\"}},\"name\":\"string.interpolated.abap\",\"patterns\":[{\"match\":\"({ )|( })\",\"name\":\"constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\|\",\"name\":\"constant.character.escape.abap\"},{\"match\":\"(?ix)(?<=\\\\\\\\s)(align|alpha|case|country|currency|date|decimals|exponent|number|pad|sign|style|time|timestamp|timezone|width|xsd|zero)(?=\\\\\\\\s\\\\\\\\=)\",\"name\":\"entity.name.property.stringtemplate.abap\"},{\"match\":\"(?ix)(?<=\\\\\\\\=\\\\\\\\s)(center|engineering|environment|in|iso|left|leftplus|leftspace|lower|no|out|raw|right|rightplus|rightspace|scale_preserving|scale_preserving_scientific|scientific|scientific_with_leading_zero|sign_as_postfix|simple|space|upper|user|yes)(?=\\\\\\\\s)\",\"name\":\"entity.value.property.stringtemplate.abap\"}]},{\"begin\":\"\\'\",\"end\":\"\\'\",\"name\":\"string.quoted.single.abap\",\"patterns\":[{\"match\":\"\\'\\'\",\"name\":\"constant.character.escape.abap\"}]},{\"begin\":\"`\",\"end\":\"`\",\"name\":\"string.quoted.single.abap\",\"patterns\":[{\"match\":\"``\",\"name\":\"constant.character.escape.abap\"}]},{\"begin\":\"(?i)^\\\\\\\\s*(class)\\\\\\\\s([a-z_\\\\\\\\/][a-z_0-9\\\\\\\\/]*)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.block.abap\"},\"2\":{\"name\":\"entity.name.type.block.abap\"}},\"end\":\"\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\n?\",\"name\":\"meta.block.begin.implementation.abap\",\"patterns\":[{\"match\":\"(?ix)(^|\\\\\\\\s+)(definition|implementation|public|inheriting\\\\\\\\s+from|final|deferred|abstract|shared\\\\\\\\s+memory\\\\\\\\s+enabled|(global|local)*\\\\\\\\s*friends|(create\\\\\\\\s+(public|protected|private))|for\\\\\\\\s+behavior\\\\\\\\s+of|for\\\\\\\\s+testing|risk\\\\\\\\s+level\\\\\\\\s+(critical|dangerous|harmless))|duration\\\\\\\\s(short|medium|long)(?=\\\\\\\\s+|\\\\\\\\.)\",\"name\":\"storage.modifier.class.abap\"},{\"begin\":\"(?=[A-Za-z_][A-Za-z0-9_]*)\",\"contentName\":\"entity.name.type.block.abap\",\"end\":\"(?![A-Za-z0-9_])\",\"patterns\":[{\"include\":\"#generic_names\"}]}]},{\"begin\":\"(?ix)^\\\\\\\\s*(method)\\\\\\\\s(?:([a-z_\\\\\\\\/][a-z_0-9\\\\\\\\/]*)~)?([a-z_\\\\\\\\/][a-z_0-9\\\\\\\\/]*)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.block.abap\"},\"2\":{\"name\":\"entity.name.type.abap\"},\"3\":{\"name\":\"entity.name.function.abap\"}},\"end\":\"\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\n?\",\"patterns\":[{\"match\":\"(?ix)(?<=^|\\\\\\\\s)(BY\\\\\\\\s+DATABASE(\\\\\\\\s+PROCEDURE|\\\\\\\\s+FUNCTION|\\\\\\\\s+GRAPH\\\\\\\\s+WORKSPACE)|BY\\\\\\\\s+KERNEL\\\\\\\\s+MODULE)(?=\\\\\\\\s+|\\\\\\\\.)\",\"name\":\"storage.modifier.method.abap\"},{\"match\":\"(?ix)(?<=^|\\\\\\\\s)(FOR\\\\\\\\s+(HDB|LLANG))(?=\\\\\\\\s+|\\\\\\\\.)\",\"name\":\"storage.modifier.method.abap\"},{\"match\":\"(?ix)(?<=\\\\\\\\s)(OPTIONS\\\\\\\\s+(READ-ONLY|DETERMINISTIC|SUPPRESS\\\\\\\\s+SYNTAX\\\\\\\\s+ERRORS))(?=\\\\\\\\s+|\\\\\\\\.)\",\"name\":\"storage.modifier.method.abap\"},{\"match\":\"(?ix)(?<=^|\\\\\\\\s)(LANGUAGE\\\\\\\\s+(SQLSCRIPT|SQL|GRAPH))(?=\\\\\\\\s+|\\\\\\\\.)\",\"name\":\"storage.modifier.method.abap\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.method.abap\"}},\"match\":\"(?ix)(?<=\\\\\\\\s)(USING)\\\\\\\\s+([a-z_\\\\\\\\/][a-z_0-9\\\\\\\\/=\\\\\\\\>]*)+(?=\\\\\\\\s+|\\\\\\\\.)\"},{\"begin\":\"(?=[A-Za-z_][A-Za-z0-9_]*)\",\"end\":\"(?![A-Za-z0-9_])\",\"patterns\":[{\"include\":\"#generic_names\"}]}]},{\"begin\":\"(?ix)^\\\\\\\\s*(INTERFACE)\\\\\\\\s([a-z_\\\\\\\\/][a-z_0-9\\\\\\\\/]*)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.block.abap\"},\"2\":{\"name\":\"entity.name.type.abap\"}},\"end\":\"\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\n?\",\"patterns\":[{\"match\":\"(?ix)(?<=^|\\\\\\\\s)(DEFERRED|PUBLIC)(?=\\\\\\\\s+|\\\\\\\\.)\",\"name\":\"storage.modifier.method.abap\"}]},{\"begin\":\"(?ix)^\\\\\\\\s*(FORM)\\\\\\\\s([a-z_\\\\\\\\/][a-z_0-9\\\\\\\\/\\\\\\\\-\\\\\\\\?]*)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.block.abap\"},\"2\":{\"name\":\"entity.name.type.abap\"}},\"end\":\"\\\\\\\\s*\\\\\\\\.\\\\\\\\s*\\\\\\\\n?\",\"patterns\":[{\"match\":\"(?ix)(?<=^|\\\\\\\\s)(USING|TABLES|CHANGING|RAISING|IMPLEMENTATION|DEFINITION)(?=\\\\\\\\s+|\\\\\\\\.)\",\"name\":\"storage.modifier.form.abap\"},{\"include\":\"#abaptypes\"},{\"include\":\"#keywords_followed_by_braces\"}]},{\"match\":\"(?i)(endclass|endmethod|endform|endinterface)\",\"name\":\"storage.type.block.end.abap\"},{\"match\":\"(?i)(<[A-Za-z_][A-Za-z0-9_]*>)\",\"name\":\"variable.other.field.symbol.abap\"},{\"include\":\"#keywords\"},{\"include\":\"#abap_constants\"},{\"include\":\"#reserved_names\"},{\"include\":\"#operators\"},{\"include\":\"#builtin_functions\"},{\"include\":\"#abaptypes\"},{\"include\":\"#system_fields\"},{\"include\":\"#sql_functions\"},{\"include\":\"#sql_types\"}],\"repository\":{\"abap_constants\":{\"match\":\"(?ix)(?<=\\\\\\\\s)(initial|null|@?space|@?abap_true|@?abap_false|@?abap_undefined|table_line|\\\\n                                %_final|%_hints|%_predefined|col_background|col_group|col_heading|col_key|col_negative|col_normal|col_positive|col_total|\\\\n\\\\t\\\\t\\\\t\\\\tadabas|as400|db2|db6|hdb|oracle|sybase|mssqlnt|pos_low|pos_high)(?=\\\\\\\\s|\\\\\\\\.|,)\",\"name\":\"constant.language.abap\"},\"abaptypes\":{\"patterns\":[{\"match\":\"(?ix)\\\\\\\\s(abap_bool|string|xstring|any|clike|csequence|numeric|xsequence|decfloat|decfloat16|decfloat34|utclong|simple|int8|c|n|i|p|f|d|t|x)(?=\\\\\\\\s|\\\\\\\\.|,)\",\"name\":\"support.type.abap\"},{\"match\":\"(?ix)\\\\\\\\s(TYPE|REF|TO|LIKE|LINE|OF|STRUCTURE|STANDARD|SORTED|HASHED|INDEX|TABLE|WITH|UNIQUE|NON-UNIQUE|SECONDARY|DEFAULT|KEY)(?=\\\\\\\\s|\\\\\\\\.|,)\",\"name\":\"keyword.control.simple.abap\"}]},\"arithmetic_operator\":{\"match\":\"(?i)(?<=\\\\\\\\s)(\\\\\\\\+|\\\\\\\\-|\\\\\\\\*|\\\\\\\\*\\\\\\\\*|\\\\\\\\/|%|DIV|MOD|BIT-AND|BIT-OR|BIT-XOR|BIT-NOT)(?=\\\\\\\\s)\",\"name\":\"keyword.control.simple.abap\"},\"builtin_functions\":{\"match\":\"(?ix)(?<=\\\\\\\\s)(abs|sign|ceil|floor|trunc|frac|acos|asin|atan|cos|sin|tan|cosh|sinh|tanh|exp|log|log10|sqrt|strlen|xstrlen|charlen|lines|numofchar|dbmaxlen|round|rescale|nmax|nmin|cmax|cmin|boolc|boolx|xsdbool|contains|contains_any_of|contains_any_not_of|matches|line_exists|ipow|char_off|count|count_any_of|count_any_not_of|distance|condense|concat_lines_of|escape|find|find_end|find_any_of|find_any_not_of|insert|match|repeat|replace|reverse|segment|shift_left|shift_right|substring|substring_after|substring_from|substring_before|substring_to|to_upper|to_lower|to_mixed|from_mixed|translate|bit-set|line_index)(?=\\\\\\\\()\",\"name\":\"entity.name.function.builtin.abap\"},\"comparison_operator\":{\"match\":\"(?i)(?<=\\\\\\\\s)(<|>|<\\\\\\\\=|>\\\\\\\\=|\\\\\\\\=|<>|eq|ne|lt|le|gt|ge|cs|cp|co|cn|ca|na|ns|np|byte-co|byte-cn|byte-ca|byte-na|byte-cs|byte-ns|o|z|m)(?=\\\\\\\\s)\",\"name\":\"keyword.control.simple.abap\"},\"control_keywords\":{\"match\":\"(?ix)(^|\\\\\\\\s)(\\\\n\\\\t        at|case|catch|continue|do|elseif|else|endat|endcase|endcatch|enddo|endif|\\\\n\\\\t        endloop|endon|endtry|endwhile|if|loop|on|raise|try|while)(?=\\\\\\\\s|\\\\\\\\.|:)\",\"name\":\"keyword.control.flow.abap\"},\"generic_names\":{\"match\":\"[A-Za-z_][A-Za-z0-9_]*\"},\"keywords\":{\"patterns\":[{\"include\":\"#main_keywords\"},{\"include\":\"#text_symbols\"},{\"include\":\"#control_keywords\"},{\"include\":\"#keywords_followed_by_braces\"}]},\"keywords_followed_by_braces\":{\"captures\":{\"1\":{\"name\":\"keyword.control.simple.abap\"},\"2\":{\"name\":\"variable.other.abap\"}},\"match\":\"(?ix)\\\\\\\\b(data|value|field-symbol|final|reference|resumable)\\\\\\\\((<?[a-z_\\\\\\\\/][a-z_0-9\\\\\\\\/]*>?)\\\\\\\\)\"},\"logical_operator\":{\"match\":\"(?i)(?<=\\\\\\\\s)(not|or|and)(?=\\\\\\\\s)\",\"name\":\"keyword.control.simple.abap\"},\"main_keywords\":{\"match\":\"(?ix)(?<=^|\\\\\\\\s)(\\\\nabap-source|\\\\nabstract|\\\\naccept|\\\\naccepting|\\\\naccess|\\\\naccording|\\\\naction|\\\\nactivation|\\\\nactual|\\\\nadd|\\\\nadd-corresponding|\\\\nadjacent|\\\\nafter|\\\\nalias|\\\\naliases|\\\\nall|\\\\nallocate|\\\\namdp|\\\\nanalysis|\\\\nanalyzer|\\\\nappend|\\\\nappending|\\\\napplication|\\\\narchive|\\\\narea|\\\\narithmetic|\\\\nas|\\\\nascending|\\\\nassert|\\\\nassign|\\\\nassigned|\\\\nassigning|\\\\nassociation|\\\\nasynchronous|\\\\nat|\\\\nattributes|\\\\nauthority|\\\\nauthority-check|\\\\nauthorization|\\\\nauto|\\\\nback|\\\\nbackground|\\\\nbackward|\\\\nbadi|\\\\nbase|\\\\nbefore|\\\\nbegin|\\\\nbehavior|\\\\nbetween|\\\\nbinary|\\\\nbit|\\\\nblank|\\\\nblanks|\\\\nblock|\\\\nblocks|\\\\nbound|\\\\nboundaries|\\\\nbounds|\\\\nboxed|\\\\nbreak|\\\\nbreak-point|\\\\nbuffer|\\\\nby|\\\\nbypassing|\\\\nbyte|\\\\nbyte-order|\\\\ncall|\\\\ncalling|\\\\ncast|\\\\ncasting|\\\\ncds|\\\\ncentered|\\\\nchange|\\\\nchanging|\\\\nchannels|\\\\nchar-to-hex|\\\\ncharacter|\\\\ncheck|\\\\ncheckbox|\\\\ncid|\\\\ncircular|\\\\nclass|\\\\nclass-data|\\\\nclass-events|\\\\nclass-method|\\\\nclass-methods|\\\\nclass-pool|\\\\ncleanup|\\\\nclear|\\\\nclient|\\\\nclients|\\\\nclock|\\\\nclone|\\\\nclose|\\\\ncnt|\\\\ncode|\\\\ncollect|\\\\ncolor|\\\\ncolumn|\\\\ncomment|\\\\ncomments|\\\\ncommit|\\\\ncommon|\\\\ncommunication|\\\\ncomparing|\\\\ncomponent|\\\\ncomponents|\\\\ncompression|\\\\ncompute|\\\\nconcatenate|\\\\ncond|\\\\ncondense|\\\\ncondition|\\\\nconnection|\\\\nconstant|\\\\nconstants|\\\\ncontext|\\\\ncontexts|\\\\ncontrol|\\\\ncontrols|\\\\nconv|\\\\nconversion|\\\\nconvert|\\\\ncopy|\\\\ncorresponding|\\\\ncount|\\\\ncountry|\\\\ncover|\\\\ncreate|\\\\ncurrency|\\\\ncurrent|\\\\ncursor|\\\\ncustomer-function|\\\\ndata|\\\\ndatabase|\\\\ndatainfo|\\\\ndataset|\\\\ndate|\\\\ndaylight|\\\\nddl|\\\\ndeallocate|\\\\ndecimals|\\\\ndeclarations|\\\\ndeep|\\\\ndefault|\\\\ndeferred|\\\\ndefine|\\\\ndelete|\\\\ndeleting|\\\\ndemand|\\\\ndescending|\\\\ndescribe|\\\\ndestination|\\\\ndetail|\\\\ndetermine|\\\\ndialog|\\\\ndid|\\\\ndirectory|\\\\ndiscarding|\\\\ndisplay|\\\\ndisplay-mode|\\\\ndistance|\\\\ndistinct|\\\\ndivide|\\\\ndivide-corresponding|\\\\ndummy|\\\\nduplicate|\\\\nduplicates|\\\\nduration|\\\\nduring|\\\\ndynpro|\\\\nedit|\\\\neditor-call|\\\\nempty|\\\\nenabled|\\\\nenabling|\\\\nencoding|\\\\nend|\\\\nend-enhancement-section|\\\\nend-of-definition|\\\\nend-of-page|\\\\nend-of-selection|\\\\nend-test-injection|\\\\nend-test-seam|\\\\nendenhancement|\\\\nendexec|\\\\nendfunction|\\\\nendian|\\\\nending|\\\\nendmodule|\\\\nendprovide|\\\\nendselect|\\\\nendwith|\\\\nenhancement|\\\\nenhancement-point|\\\\nenhancement-section|\\\\nenhancements|\\\\nentities|\\\\nentity|\\\\nentries|\\\\nentry|\\\\nenum|\\\\nequiv|\\\\nerrors|\\\\nescape|\\\\nescaping|\\\\nevent|\\\\nevents|\\\\nexact|\\\\nexcept|\\\\nexception|\\\\nexception-table|\\\\nexceptions|\\\\nexcluding|\\\\nexec|\\\\nexecute|\\\\nexists|\\\\nexit|\\\\nexit-command|\\\\nexpanding|\\\\nexplicit|\\\\nexponent|\\\\nexport|\\\\nexporting|\\\\nextended|\\\\nextension|\\\\nextract|\\\\nfail|\\\\nfailed|\\\\nfeatures|\\\\nfetch|\\\\nfield|\\\\nfield-groups|\\\\nfield-symbols|\\\\nfields|\\\\nfile|\\\\nfill|\\\\nfilter|\\\\nfilters|\\\\nfinal|\\\\nfind|\\\\nfirst|\\\\nfirst-line|\\\\nfixed-point|\\\\nflush|\\\\nfollowing|\\\\nfor|\\\\nformat|\\\\nforward|\\\\nfound|\\\\nframe|\\\\nframes|\\\\nfree|\\\\nfrom|\\\\nfull|\\\\nfunction|\\\\nfunction-pool|\\\\ngenerate|\\\\nget|\\\\ngiving|\\\\ngraph|\\\\ngroup|\\\\ngroups|\\\\nhandle|\\\\nhandler|\\\\nhashed|\\\\nhaving|\\\\nheader|\\\\nheaders|\\\\nheading|\\\\nhelp-id|\\\\nhelp-request|\\\\nhide|\\\\nhint|\\\\nhold|\\\\nhotspot|\\\\nicon|\\\\nid|\\\\nidentification|\\\\nidentifier|\\\\nignore|\\\\nignoring|\\\\nimmediately|\\\\nimplemented|\\\\nimplicit|\\\\nimport|\\\\nimporting|\\\\nin|\\\\ninactive|\\\\nincl|\\\\ninclude|\\\\nincludes|\\\\nincluding|\\\\nincrement|\\\\nindex|\\\\nindex-line|\\\\nindicators|\\\\ninfotypes|\\\\ninheriting|\\\\ninit|\\\\ninitial|\\\\ninitialization|\\\\ninner|\\\\ninput|\\\\ninsert|\\\\ninstance|\\\\ninstances|\\\\nintensified|\\\\ninterface|\\\\ninterface-pool|\\\\ninterfaces|\\\\ninternal|\\\\nintervals|\\\\ninto|\\\\ninverse|\\\\ninverted-date|\\\\nis|\\\\njob|\\\\njoin|\\\\nkeep|\\\\nkeeping|\\\\nkernel|\\\\nkey|\\\\nkeys|\\\\nkeywords|\\\\nkind|\\\\nlanguage|\\\\nlast|\\\\nlate|\\\\nlayout|\\\\nleading|\\\\nleave|\\\\nleft|\\\\nleft-justified|\\\\nlegacy|\\\\nlength|\\\\nlet|\\\\nlevel|\\\\nlevels|\\\\nlike|\\\\nline|\\\\nline-count|\\\\nline-selection|\\\\nline-size|\\\\nlinefeed|\\\\nlines|\\\\nlink|\\\\nlist|\\\\nlist-processing|\\\\nlistbox|\\\\nload|\\\\nload-of-program|\\\\nlocal|\\\\nlocale|\\\\nlock|\\\\nlocks|\\\\nlog-point|\\\\nlogical|\\\\nlower|\\\\nmapped|\\\\nmapping|\\\\nmargin|\\\\nmark|\\\\nmask|\\\\nmatch|\\\\nmatchcode|\\\\nmaximum|\\\\nmembers|\\\\nmemory|\\\\nmesh|\\\\nmessage|\\\\nmessage-id|\\\\nmessages|\\\\nmessaging|\\\\nmethod|\\\\nmethods|\\\\nmode|\\\\nmodif|\\\\nmodifier|\\\\nmodify|\\\\nmodule|\\\\nmove|\\\\nmove-corresponding|\\\\nmultiply|\\\\nmultiply-corresponding|\\\\nname|\\\\nnametab|\\\\nnative|\\\\nnested|\\\\nnesting|\\\\nnew|\\\\nnew-line|\\\\nnew-page|\\\\nnew-section|\\\\nnext|\\\\nno-display|\\\\nno-extension|\\\\nno-gap|\\\\nno-gaps|\\\\nno-grouping|\\\\nno-heading|\\\\nno-scrolling|\\\\nno-sign|\\\\nno-title|\\\\nno-zero|\\\\nnodes|\\\\nnon-unicode|\\\\nnon-unique|\\\\nnumber|\\\\nobject|\\\\nobjects|\\\\nobjmgr|\\\\nobligatory|\\\\noccurence|\\\\noccurences|\\\\noccurrence|\\\\noccurrences|\\\\noccurs|\\\\nof|\\\\noffset|\\\\non|\\\\nonly|\\\\nopen|\\\\noptional|\\\\noption|\\\\noptions|\\\\norder|\\\\nothers|\\\\nout|\\\\nouter|\\\\noutput|\\\\noutput-length|\\\\noverflow|\\\\noverlay|\\\\npack|\\\\npackage|\\\\npadding|\\\\npage|\\\\nparameter|\\\\nparameter-table|\\\\nparameters|\\\\npart|\\\\npartially|\\\\npcre|\\\\nperform|\\\\nperforming|\\\\npermissions|\\\\npf-status|\\\\nplaces|\\\\npool|\\\\nposition|\\\\npragmas|\\\\npreceding|\\\\nprecompiled|\\\\npreferred|\\\\npreserving|\\\\nprimary|\\\\nprint|\\\\nprint-control|\\\\nprivate|\\\\nprivileged|\\\\nprocedure|\\\\nprocess|\\\\nprogram|\\\\nproperty|\\\\nprotected|\\\\nprovide|\\\\npush|\\\\npushbutton|\\\\nput|\\\\nquery|\\\\nqueue-only|\\\\nqueueonly|\\\\nquickinfo|\\\\nradiobutton|\\\\nraising|\\\\nrange|\\\\nranges|\\\\nread|\\\\nread-only|\\\\nreceive|\\\\nreceived|\\\\nreceiving|\\\\nredefinition|\\\\nreduce|\\\\nref|\\\\nreference|\\\\nrefresh|\\\\nregex|\\\\nreject|\\\\nrenaming|\\\\nreplace|\\\\nreplacement|\\\\nreplacing|\\\\nreport|\\\\nreported|\\\\nrequest|\\\\nrequested|\\\\nrequired|\\\\nreserve|\\\\nreset|\\\\nresolution|\\\\nrespecting|\\\\nresponse|\\\\nrestore|\\\\nresult|\\\\nresults|\\\\nresumable|\\\\nresume|\\\\nretry|\\\\nreturn|\\\\nreturning|\\\\nright|\\\\nright-justified|\\\\nrollback|\\\\nrows|\\\\nrp-provide-from-last|\\\\nrun|\\\\nsap|\\\\nsap-spool|\\\\nsave|\\\\nsaving|\\\\nscan|\\\\nscreen|\\\\nscroll|\\\\nscroll-boundary|\\\\nscrolling|\\\\nsearch|\\\\nseconds|\\\\nsection|\\\\nselect|\\\\nselect-options|\\\\nselection|\\\\nselection-screen|\\\\nselection-set|\\\\nselection-sets|\\\\nselection-table|\\\\nselections|\\\\nsend|\\\\nseparate|\\\\nseparated|\\\\nsession|\\\\nset|\\\\nshared|\\\\nshift|\\\\nshortdump|\\\\nshortdump-id|\\\\nsign|\\\\nsimple|\\\\nsimulation|\\\\nsingle|\\\\nsize|\\\\nskip|\\\\nskipping|\\\\nsmart|\\\\nsome|\\\\nsort|\\\\nsortable|\\\\nsorted|\\\\nsource|\\\\nspecified|\\\\nsplit|\\\\nspool|\\\\nspots|\\\\nsql|\\\\nstable|\\\\nstamp|\\\\nstandard|\\\\nstart-of-selection|\\\\nstarting|\\\\nstate|\\\\nstatement|\\\\nstatements|\\\\nstatic|\\\\nstatics|\\\\nstatusinfo|\\\\nstep|\\\\nstep-loop|\\\\nstop|\\\\nstructure|\\\\nstructures|\\\\nstyle|\\\\nsubkey|\\\\nsubmatches|\\\\nsubmit|\\\\nsubroutine|\\\\nsubscreen|\\\\nsubstring|\\\\nsubtract|\\\\nsubtract-corresponding|\\\\nsuffix|\\\\nsum|\\\\nsummary|\\\\nsupplied|\\\\nsupply|\\\\nsuppress|\\\\nswitch|\\\\nsymbol|\\\\nsyntax-check|\\\\nsyntax-trace|\\\\nsystem-call|\\\\nsystem-exceptions|\\\\ntab|\\\\ntabbed|\\\\ntable|\\\\ntables|\\\\ntableview|\\\\ntabstrip|\\\\ntarget|\\\\ntask|\\\\ntasks|\\\\ntest|\\\\ntest-injection|\\\\ntest-seam|\\\\ntesting|\\\\ntext|\\\\ntextpool|\\\\nthen|\\\\nthrow|\\\\ntime|\\\\ntimes|\\\\ntitle|\\\\ntitlebar|\\\\nto|\\\\ntokens|\\\\ntop-lines|\\\\ntop-of-page|\\\\ntrace-file|\\\\ntrace-table|\\\\ntrailing|\\\\ntransaction|\\\\ntransfer|\\\\ntransformation|\\\\ntranslate|\\\\ntransporting|\\\\ntrmac|\\\\ntruncate|\\\\ntruncation|\\\\ntype|\\\\ntype-pool|\\\\ntype-pools|\\\\ntypes|\\\\nuline|\\\\nunassign|\\\\nunbounded|\\\\nunder|\\\\nunicode|\\\\nunion|\\\\nunique|\\\\nunit|\\\\nunix|\\\\nunpack|\\\\nuntil|\\\\nunwind|\\\\nup|\\\\nupdate|\\\\nupper|\\\\nuser|\\\\nuser-command|\\\\nusing|\\\\nutf-8|\\\\nuuid|\\\\nvalid|\\\\nvalidate|\\\\nvalue|\\\\nvalue-request|\\\\nvalues|\\\\nvary|\\\\nvarying|\\\\nversion|\\\\nvia|\\\\nvisible|\\\\nwait|\\\\nwhen|\\\\nwhere|\\\\nwindow|\\\\nwindows|\\\\nwith|\\\\nwith-heading|\\\\nwith-title|\\\\nwithout|\\\\nword|\\\\nwork|\\\\nworkspace|\\\\nwrite|\\\\nxml|\\\\nzone\\\\n\\\\t\\\\t        \\\\t)(?=\\\\\\\\s|\\\\\\\\.|:|,)\",\"name\":\"keyword.control.simple.abap\"},\"operators\":{\"patterns\":[{\"include\":\"#other_operator\"},{\"include\":\"#arithmetic_operator\"},{\"include\":\"#comparison_operator\"},{\"include\":\"#logical_operator\"}]},\"other_operator\":{\"match\":\"(?<=\\\\\\\\s)(&&|&|\\\\\\\\?=|\\\\\\\\+=|-=|\\\\\\\\/=|\\\\\\\\*=|&&=|&=)(?=\\\\\\\\s)\",\"name\":\"keyword.control.simple.abap\"},\"reserved_names\":{\"match\":\"(?ix)(?<=\\\\\\\\s)(me|super)(?=\\\\\\\\s|\\\\\\\\.|,|->)\",\"name\":\"constant.language.abap\"},\"sql_functions\":{\"match\":\"(?ix)(?<=\\\\\\\\s)(\\\\nabap_system_timezone|\\\\nabap_user_timezone|\\\\nabs|\\\\nadd_days|\\\\nadd_months|\\\\nallow_precision_loss|\\\\nas_geo_json|\\\\navg|\\\\nbintohex|\\\\ncast|\\\\nceil|\\\\ncoalesce|\\\\nconcat_with_space|\\\\nconcat|\\\\ncorr_spearman|\\\\ncorr|\\\\ncount|\\\\ncurrency_conversion|\\\\ndatn_add_days|\\\\ndatn_add_months|\\\\ndatn_days_between|\\\\ndats_add_days|\\\\ndats_add_months|\\\\ndats_days_between|\\\\ndats_from_datn|\\\\ndats_is_valid|\\\\ndats_tims_to_tstmp|\\\\ndats_to_datn|\\\\ndayname|\\\\ndays_between|\\\\ndense_rank|\\\\ndivision|\\\\ndiv|\\\\nextract_day|\\\\nextract_hour|\\\\nextract_minute|\\\\nextract_month|\\\\nextract_second|\\\\nextract_year|\\\\nfirst_value|\\\\nfloor|\\\\ngrouping|\\\\nhextobin|\\\\ninitcap|\\\\ninstr|\\\\nis_valid|\\\\nlag|\\\\nlast_value|\\\\nlead|\\\\nleft|\\\\nlength|\\\\nlike_regexpr|\\\\nlocate_regexpr_after|\\\\nlocate_regexpr|\\\\nlocate|\\\\nlower|\\\\nlpad|\\\\nltrim|\\\\nmax|\\\\nmedian|\\\\nmin|\\\\nmod|\\\\nmonthname|\\\\nntile|\\\\noccurrences_regexpr|\\\\nover|\\\\nproduct|\\\\nrank|\\\\nreplace_regexpr|\\\\nreplace|\\\\nrigth|\\\\nround|\\\\nrow_number|\\\\nrpad|\\\\nrtrim|\\\\nstddev|\\\\nstring_agg|\\\\nsubstring_regexpr|\\\\nsubstring|\\\\nsum|\\\\ntims_from_timn|\\\\ntims_is_valid|\\\\ntims_to_timn|\\\\nto_blob|\\\\nto_clob|\\\\ntstmp_add_seconds|\\\\ntstmp_current_utctimestamp|\\\\ntstmp_is_valid|\\\\ntstmp_seconds_between|\\\\ntstmp_to_dats|\\\\ntstmp_to_dst|\\\\ntstmp_to_tims|\\\\ntstmpl_from_utcl|\\\\ntstmpl_to_utcl|\\\\nunit_conversion|\\\\nupper|\\\\nutcl_add_seconds|\\\\nutcl_current|\\\\nutcl_seconds_between|\\\\nuuid|\\\\nvar|\\\\nweekday\\\\n                                )(?=\\\\\\\\()\",\"name\":\"entity.name.function.sql.abap\"},\"sql_types\":{\"match\":\"(?ix)(?<=\\\\\\\\s)(char|clnt|cuky|curr|datn|dats|dec|decfloat16|decfloat34|fltp|int1|int2|int4|int8|lang|numc|quan|raw|sstring|timn|tims|unit|utclong)(?=\\\\\\\\s|\\\\\\\\(|\\\\\\\\))\",\"name\":\"entity.name.type.sql.abap\"},\"system_fields\":{\"captures\":{\"1\":{\"name\":\"variable.language.abap\"},\"2\":{\"name\":\"variable.language.abap\"}},\"match\":\"(?ix)\\\\\\\\b(sy)-(abcde|batch|binpt|calld|callr|colno|cpage|cprog|cucol|curow|datar|datlo|datum|dayst|dbcnt|dbnam|dbsysc|dyngr|dynnr|fdayw|fdpos|host|index|langu|ldbpg|lilli|linct|linno|linsz|lisel|listi|loopc|lsind|macol|mandt|marow|modno|msgid|msgli|msgno|msgty|msgv[1-4]|opsysc|pagno|pfkey|repid|saprl|scols|slset|spono|srows|staco|staro|stepl|subrc|sysid|tabix|tcode|tfill|timlo|title|tleng|tvar[0-9]|tzone|ucomm|uline|uname|uzeit|vline|wtitl|zonlo)(?=\\\\\\\\.|\\\\\\\\s)\"},\"text_symbols\":{\"captures\":{\"1\":{\"name\":\"keyword.control.simple.abap\"},\"2\":{\"name\":\"constant.numeric.abap\"}},\"match\":\"(?ix)(?<=^|\\\\\\\\s)(text)-([A-Z0-9]{1,3})(?=\\\\\\\\s|\\\\\\\\.|:|,)\"}},\"scopeName\":\"source.abap\"}')),e=[n];export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DsWjAdsX.js",
    "content": "import e from\"./qmhIZ77x.js\";import\"./CwjWoCRV.js\";const n=Object.freeze(JSON.parse('{\"displayName\":\"LaTeX\",\"name\":\"latex\",\"patterns\":[{\"comment\":\"This scope identifies partially typed commands such as `\\\\\\\\tab`. We use this to trigger “Command Completion” only when it makes sense.\",\"match\":\"(?<=\\\\\\\\\\\\\\\\[\\\\\\\\w@]|\\\\\\\\\\\\\\\\[\\\\\\\\w@]{2}|\\\\\\\\\\\\\\\\[\\\\\\\\w@]{3}|\\\\\\\\\\\\\\\\[\\\\\\\\w@]{4}|\\\\\\\\\\\\\\\\[\\\\\\\\w@]{5}|\\\\\\\\\\\\\\\\[\\\\\\\\w@]{6})\\\\\\\\s\",\"name\":\"meta.space-after-command.latex\"},{\"begin\":\"((\\\\\\\\\\\\\\\\)(?:usepackage|documentclass))\\\\\\\\b(?=\\\\\\\\[|\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.preamble.latex\"},\"2\":{\"name\":\"punctuation.definition.function.latex\"}},\"end\":\"(?<=\\\\\\\\})\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"name\":\"meta.preamble.latex\",\"patterns\":[{\"include\":\"#multiline-optional-arg\"},{\"begin\":\"((?:\\\\\\\\G|(?<=\\\\\\\\]))\\\\\\\\{)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"contentName\":\"support.class.latex\",\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"patterns\":[{\"include\":\"$self\"}]}]},{\"begin\":\"((\\\\\\\\\\\\\\\\)(?:include|input))(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.include.latex\"},\"2\":{\"name\":\"punctuation.definition.function.latex\"},\"3\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"name\":\"meta.include.latex\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"((\\\\\\\\\\\\\\\\)((?:sub){0,2}section|(?:sub)?paragraph|chapter|part|addpart|addchap|addsec|minisec|frametitle)(?:\\\\\\\\*)?)((?:\\\\\\\\[[^\\\\\\\\[]*?\\\\\\\\]){0,2})(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.section.latex\"},\"2\":{\"name\":\"punctuation.definition.function.latex\"},\"4\":{\"patterns\":[{\"include\":\"#optional-arg-bracket\"}]},\"5\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"comment\":\"this works OK with all kinds of crazy stuff as long as section is one line\",\"contentName\":\"entity.name.section.latex\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"name\":\"meta.function.section.$3.latex\",\"patterns\":[{\"include\":\"text.tex#braces\"},{\"include\":\"$self\"}]},{\"begin\":\"((?:\\\\\\\\s*)\\\\\\\\\\\\\\\\begin\\\\\\\\{songs\\\\\\\\}\\\\\\\\{.*\\\\\\\\})\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"contentName\":\"meta.data.environment.songs.latex\",\"end\":\"(\\\\\\\\\\\\\\\\end\\\\\\\\{songs\\\\\\\\}(?:\\\\\\\\s*\\\\\\\\n)?)\",\"name\":\"meta.function.environment.songs.latex\",\"patterns\":[{\"begin\":\"\\\\\\\\\\\\\\\\\\\\\\\\[\",\"end\":\"\\\\\\\\]\",\"name\":\"meta.chord.block.latex support.class.chord.block.environment.latex\",\"patterns\":[{\"include\":\"$self\"}]},{\"match\":\"\\\\\\\\^\",\"name\":\"meta.chord.block.latex support.class.chord.block.environment.latex\"},{\"include\":\"$self\"}]},{\"begin\":\"(?:^\\\\\\\\s*)?\\\\\\\\\\\\\\\\begin\\\\\\\\{(lstlisting|minted|pyglist)\\\\\\\\}(?=\\\\\\\\[|\\\\\\\\{)\",\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"end\":\"\\\\\\\\\\\\\\\\end\\\\\\\\{\\\\\\\\1\\\\\\\\}\",\"patterns\":[{\"include\":\"#multiline-optional-arg-no-highlight\"},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)((?:asy|asymptote))(\\\\\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"},\"2\":{\"name\":\"variable.parameter.function.latex\"},\"3\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"contentName\":\"source.asy\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:minted|lstlisting|pyglist)\\\\\\\\})\",\"patterns\":[{\"include\":\"source.asy\"}]},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)((?:bash))(\\\\\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"},\"2\":{\"name\":\"variable.parameter.function.latex\"},\"3\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"contentName\":\"source.shell\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:minted|lstlisting|pyglist)\\\\\\\\})\",\"patterns\":[{\"include\":\"source.shell\"}]},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)((?:c|cpp))(\\\\\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"},\"2\":{\"name\":\"variable.parameter.function.latex\"},\"3\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"contentName\":\"source.cpp.embedded.latex\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:minted|lstlisting|pyglist)\\\\\\\\})\",\"patterns\":[{\"include\":\"source.cpp.embedded.latex\"}]},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)((?:css))(\\\\\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"},\"2\":{\"name\":\"variable.parameter.function.latex\"},\"3\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"contentName\":\"source.css\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:minted|lstlisting|pyglist)\\\\\\\\})\",\"patterns\":[{\"include\":\"source.css\"}]},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)((?:gnuplot))(\\\\\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"},\"2\":{\"name\":\"variable.parameter.function.latex\"},\"3\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"contentName\":\"source.gnuplot\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:minted|lstlisting|pyglist)\\\\\\\\})\",\"patterns\":[{\"include\":\"source.gnuplot\"}]},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)((?:hs|haskell))(\\\\\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"},\"2\":{\"name\":\"variable.parameter.function.latex\"},\"3\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"contentName\":\"source.haskell\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:minted|lstlisting|pyglist)\\\\\\\\})\",\"patterns\":[{\"include\":\"source.haskell\"}]},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)((?:html))(\\\\\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"},\"2\":{\"name\":\"variable.parameter.function.latex\"},\"3\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"contentName\":\"text.html\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:minted|lstlisting|pyglist)\\\\\\\\})\",\"patterns\":[{\"include\":\"text.html.basic\"}]},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)((?:java))(\\\\\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"},\"2\":{\"name\":\"variable.parameter.function.latex\"},\"3\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"contentName\":\"source.java\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:minted|lstlisting|pyglist)\\\\\\\\})\",\"patterns\":[{\"include\":\"source.java\"}]},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)((?:jl|julia))(\\\\\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"},\"2\":{\"name\":\"variable.parameter.function.latex\"},\"3\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"contentName\":\"source.julia\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:minted|lstlisting|pyglist)\\\\\\\\})\",\"patterns\":[{\"include\":\"source.julia\"}]},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)((?:js|javascript))(\\\\\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"},\"2\":{\"name\":\"variable.parameter.function.latex\"},\"3\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"contentName\":\"source.js\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:minted|lstlisting|pyglist)\\\\\\\\})\",\"patterns\":[{\"include\":\"source.js\"}]},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)((?:lua))(\\\\\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"},\"2\":{\"name\":\"variable.parameter.function.latex\"},\"3\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"contentName\":\"source.lua\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:minted|lstlisting|pyglist)\\\\\\\\})\",\"patterns\":[{\"include\":\"source.lua\"}]},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)((?:py|python|sage))(\\\\\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"},\"2\":{\"name\":\"variable.parameter.function.latex\"},\"3\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"contentName\":\"source.python\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:minted|lstlisting|pyglist)\\\\\\\\})\",\"patterns\":[{\"include\":\"source.python\"}]},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)((?:rb|ruby))(\\\\\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"},\"2\":{\"name\":\"variable.parameter.function.latex\"},\"3\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"contentName\":\"source.ruby\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:minted|lstlisting|pyglist)\\\\\\\\})\",\"patterns\":[{\"include\":\"source.ruby\"}]},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)((?:rust))(\\\\\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"},\"2\":{\"name\":\"variable.parameter.function.latex\"},\"3\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"contentName\":\"source.rust\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:minted|lstlisting|pyglist)\\\\\\\\})\",\"patterns\":[{\"include\":\"source.rust\"}]},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)((?:ts|typescript))(\\\\\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"},\"2\":{\"name\":\"variable.parameter.function.latex\"},\"3\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"contentName\":\"source.ts\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:minted|lstlisting|pyglist)\\\\\\\\})\",\"patterns\":[{\"include\":\"source.ts\"}]},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)((?:xml))(\\\\\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"},\"2\":{\"name\":\"variable.parameter.function.latex\"},\"3\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"contentName\":\"text.xml\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:minted|lstlisting|pyglist)\\\\\\\\})\",\"patterns\":[{\"include\":\"text.xml\"}]},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)((?:yaml))(\\\\\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"},\"2\":{\"name\":\"variable.parameter.function.latex\"},\"3\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"contentName\":\"source.yaml\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:minted|lstlisting|pyglist)\\\\\\\\})\",\"patterns\":[{\"include\":\"source.yaml\"}]},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)([a-zA-Z]*)(\\\\\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"},\"2\":{\"name\":\"variable.parameter.function.latex\"},\"3\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"contentName\":\"meta.function.embedded.latex\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:lstlisting|minted|pyglist)\\\\\\\\})\",\"name\":\"meta.embedded.block.generic.latex\"}]},{\"begin\":\"\\\\\\\\s*\\\\\\\\\\\\\\\\begin\\\\\\\\{(?:asy|asycode)\\\\\\\\*?\\\\\\\\}(?:\\\\\\\\[[a-zA-Z0-9_-]*\\\\\\\\])?(?=\\\\\\\\[|\\\\\\\\{|\\\\\\\\s*$)\",\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"end\":\"\\\\\\\\s*\\\\\\\\\\\\\\\\end\\\\\\\\{(?:asy|asycode)\\\\\\\\*?\\\\\\\\}\",\"patterns\":[{\"include\":\"#multiline-optional-arg-no-highlight\"},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"contentName\":\"variable.parameter.function.latex\",\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}}},{\"begin\":\"^(?=\\\\\\\\s*)\",\"contentName\":\"source.asymptote\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:asy|asycode)\\\\\\\\*?\\\\\\\\})\",\"patterns\":[{\"include\":\"source.asymptote\"}]}]},{\"begin\":\"\\\\\\\\s*\\\\\\\\\\\\\\\\begin\\\\\\\\{(?:cppcode)\\\\\\\\*?\\\\\\\\}(?:\\\\\\\\[[a-zA-Z0-9_-]*\\\\\\\\])?(?=\\\\\\\\[|\\\\\\\\{|\\\\\\\\s*$)\",\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"end\":\"\\\\\\\\s*\\\\\\\\\\\\\\\\end\\\\\\\\{(?:cppcode)\\\\\\\\*?\\\\\\\\}\",\"patterns\":[{\"include\":\"#multiline-optional-arg-no-highlight\"},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"contentName\":\"variable.parameter.function.latex\",\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}}},{\"begin\":\"^(?=\\\\\\\\s*)\",\"contentName\":\"source.cpp.embedded.latex\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:cppcode)\\\\\\\\*?\\\\\\\\})\",\"patterns\":[{\"include\":\"source.cpp.embedded.latex\"}]}]},{\"begin\":\"\\\\\\\\s*\\\\\\\\\\\\\\\\begin\\\\\\\\{(?:dot2tex|dotcode)\\\\\\\\*?\\\\\\\\}(?:\\\\\\\\[[a-zA-Z0-9_-]*\\\\\\\\])?(?=\\\\\\\\[|\\\\\\\\{|\\\\\\\\s*$)\",\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"end\":\"\\\\\\\\s*\\\\\\\\\\\\\\\\end\\\\\\\\{(?:dot2tex|dotcode)\\\\\\\\*?\\\\\\\\}\",\"patterns\":[{\"include\":\"#multiline-optional-arg-no-highlight\"},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"contentName\":\"variable.parameter.function.latex\",\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}}},{\"begin\":\"^(?=\\\\\\\\s*)\",\"contentName\":\"source.dot\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:dot2tex|dotcode)\\\\\\\\*?\\\\\\\\})\",\"patterns\":[{\"include\":\"source.dot\"}]}]},{\"begin\":\"\\\\\\\\s*\\\\\\\\\\\\\\\\begin\\\\\\\\{(?:gnuplot)\\\\\\\\*?\\\\\\\\}(?:\\\\\\\\[[a-zA-Z0-9_-]*\\\\\\\\])?(?=\\\\\\\\[|\\\\\\\\{|\\\\\\\\s*$)\",\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"end\":\"\\\\\\\\s*\\\\\\\\\\\\\\\\end\\\\\\\\{(?:gnuplot)\\\\\\\\*?\\\\\\\\}\",\"patterns\":[{\"include\":\"#multiline-optional-arg-no-highlight\"},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"contentName\":\"variable.parameter.function.latex\",\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}}},{\"begin\":\"^(?=\\\\\\\\s*)\",\"contentName\":\"source.gnuplot\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:gnuplot)\\\\\\\\*?\\\\\\\\})\",\"patterns\":[{\"include\":\"source.gnuplot\"}]}]},{\"begin\":\"\\\\\\\\s*\\\\\\\\\\\\\\\\begin\\\\\\\\{(?:hscode)\\\\\\\\*?\\\\\\\\}(?:\\\\\\\\[[a-zA-Z0-9_-]*\\\\\\\\])?(?=\\\\\\\\[|\\\\\\\\{|\\\\\\\\s*$)\",\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"end\":\"\\\\\\\\s*\\\\\\\\\\\\\\\\end\\\\\\\\{(?:hscode)\\\\\\\\*?\\\\\\\\}\",\"patterns\":[{\"include\":\"#multiline-optional-arg-no-highlight\"},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"contentName\":\"variable.parameter.function.latex\",\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}}},{\"begin\":\"^(?=\\\\\\\\s*)\",\"contentName\":\"source.haskell\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:hscode)\\\\\\\\*?\\\\\\\\})\",\"patterns\":[{\"include\":\"source.haskell\"}]}]},{\"begin\":\"\\\\\\\\s*\\\\\\\\\\\\\\\\begin\\\\\\\\{(?:jlcode|jlverbatim|jlblock|jlconcode|jlconsole|jlconverbatim)\\\\\\\\*?\\\\\\\\}(?:\\\\\\\\[[a-zA-Z0-9_-]*\\\\\\\\])?(?=\\\\\\\\[|\\\\\\\\{|\\\\\\\\s*$)\",\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"end\":\"\\\\\\\\s*\\\\\\\\\\\\\\\\end\\\\\\\\{(?:jlcode|jlverbatim|jlblock|jlconcode|jlconsole|jlconverbatim)\\\\\\\\*?\\\\\\\\}\",\"patterns\":[{\"include\":\"#multiline-optional-arg-no-highlight\"},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"contentName\":\"variable.parameter.function.latex\",\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}}},{\"begin\":\"^(?=\\\\\\\\s*)\",\"contentName\":\"source.julia\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:jlcode|jlverbatim|jlblock|jlconcode|jlconsole|jlconverbatim)\\\\\\\\*?\\\\\\\\})\",\"patterns\":[{\"include\":\"source.julia\"}]}]},{\"begin\":\"\\\\\\\\s*\\\\\\\\\\\\\\\\begin\\\\\\\\{(?:juliacode|juliaverbatim|juliablock|juliaconcode|juliaconsole|juliaconverbatim)\\\\\\\\*?\\\\\\\\}(?:\\\\\\\\[[a-zA-Z0-9_-]*\\\\\\\\])?(?=\\\\\\\\[|\\\\\\\\{|\\\\\\\\s*$)\",\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"end\":\"\\\\\\\\s*\\\\\\\\\\\\\\\\end\\\\\\\\{(?:juliacode|juliaverbatim|juliablock|juliaconcode|juliaconsole|juliaconverbatim)\\\\\\\\*?\\\\\\\\}\",\"patterns\":[{\"include\":\"#multiline-optional-arg-no-highlight\"},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"contentName\":\"variable.parameter.function.latex\",\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}}},{\"begin\":\"^(?=\\\\\\\\s*)\",\"contentName\":\"source.julia\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:juliacode|juliaverbatim|juliablock|juliaconcode|juliaconsole|juliaconverbatim)\\\\\\\\*?\\\\\\\\})\",\"patterns\":[{\"include\":\"source.julia\"}]}]},{\"begin\":\"\\\\\\\\s*\\\\\\\\\\\\\\\\begin\\\\\\\\{(?:luacode)\\\\\\\\*?\\\\\\\\}(?:\\\\\\\\[[a-zA-Z0-9_-]*\\\\\\\\])?(?=\\\\\\\\[|\\\\\\\\{|\\\\\\\\s*$)\",\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"end\":\"\\\\\\\\s*\\\\\\\\\\\\\\\\end\\\\\\\\{(?:luacode)\\\\\\\\*?\\\\\\\\}\",\"patterns\":[{\"include\":\"#multiline-optional-arg-no-highlight\"},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"contentName\":\"variable.parameter.function.latex\",\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}}},{\"begin\":\"^(?=\\\\\\\\s*)\",\"contentName\":\"source.lua\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:luacode)\\\\\\\\*?\\\\\\\\})\",\"patterns\":[{\"include\":\"source.lua\"}]}]},{\"begin\":\"\\\\\\\\s*\\\\\\\\\\\\\\\\begin\\\\\\\\{(?:pycode|pyverbatim|pyblock|pyconcode|pyconsole|pyconverbatim)\\\\\\\\*?\\\\\\\\}(?:\\\\\\\\[[a-zA-Z0-9_-]*\\\\\\\\])?(?=\\\\\\\\[|\\\\\\\\{|\\\\\\\\s*$)\",\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"end\":\"\\\\\\\\s*\\\\\\\\\\\\\\\\end\\\\\\\\{(?:pycode|pyverbatim|pyblock|pyconcode|pyconsole|pyconverbatim)\\\\\\\\*?\\\\\\\\}\",\"patterns\":[{\"include\":\"#multiline-optional-arg-no-highlight\"},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"contentName\":\"variable.parameter.function.latex\",\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}}},{\"begin\":\"^(?=\\\\\\\\s*)\",\"contentName\":\"source.python\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:pycode|pyverbatim|pyblock|pyconcode|pyconsole|pyconverbatim)\\\\\\\\*?\\\\\\\\})\",\"patterns\":[{\"include\":\"source.python\"}]}]},{\"begin\":\"\\\\\\\\s*\\\\\\\\\\\\\\\\begin\\\\\\\\{(?:pylabcode|pylabverbatim|pylabblock|pylabconcode|pylabconsole|pylabconverbatim)\\\\\\\\*?\\\\\\\\}(?:\\\\\\\\[[a-zA-Z0-9_-]*\\\\\\\\])?(?=\\\\\\\\[|\\\\\\\\{|\\\\\\\\s*$)\",\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"end\":\"\\\\\\\\s*\\\\\\\\\\\\\\\\end\\\\\\\\{(?:pylabcode|pylabverbatim|pylabblock|pylabconcode|pylabconsole|pylabconverbatim)\\\\\\\\*?\\\\\\\\}\",\"patterns\":[{\"include\":\"#multiline-optional-arg-no-highlight\"},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"contentName\":\"variable.parameter.function.latex\",\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}}},{\"begin\":\"^(?=\\\\\\\\s*)\",\"contentName\":\"source.python\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:pylabcode|pylabverbatim|pylabblock|pylabconcode|pylabconsole|pylabconverbatim)\\\\\\\\*?\\\\\\\\})\",\"patterns\":[{\"include\":\"source.python\"}]}]},{\"begin\":\"\\\\\\\\s*\\\\\\\\\\\\\\\\begin\\\\\\\\{(?:sageblock|sagesilent|sageverbatim|sageexample|sagecommandline|python|pythonq|pythonrepl)\\\\\\\\*?\\\\\\\\}(?:\\\\\\\\[[a-zA-Z0-9_-]*\\\\\\\\])?(?=\\\\\\\\[|\\\\\\\\{|\\\\\\\\s*$)\",\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"end\":\"\\\\\\\\s*\\\\\\\\\\\\\\\\end\\\\\\\\{(?:sageblock|sagesilent|sageverbatim|sageexample|sagecommandline|python|pythonq|pythonrepl)\\\\\\\\*?\\\\\\\\}\",\"patterns\":[{\"include\":\"#multiline-optional-arg-no-highlight\"},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"contentName\":\"variable.parameter.function.latex\",\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}}},{\"begin\":\"^(?=\\\\\\\\s*)\",\"contentName\":\"source.python\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:sageblock|sagesilent|sageverbatim|sageexample|sagecommandline|python|pythonq|pythonrepl)\\\\\\\\*?\\\\\\\\})\",\"patterns\":[{\"include\":\"source.python\"}]}]},{\"begin\":\"\\\\\\\\s*\\\\\\\\\\\\\\\\begin\\\\\\\\{(?:scalacode)\\\\\\\\*?\\\\\\\\}(?:\\\\\\\\[[a-zA-Z0-9_-]*\\\\\\\\])?(?=\\\\\\\\[|\\\\\\\\{|\\\\\\\\s*$)\",\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"end\":\"\\\\\\\\s*\\\\\\\\\\\\\\\\end\\\\\\\\{(?:scalacode)\\\\\\\\*?\\\\\\\\}\",\"patterns\":[{\"include\":\"#multiline-optional-arg-no-highlight\"},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"contentName\":\"variable.parameter.function.latex\",\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}}},{\"begin\":\"^(?=\\\\\\\\s*)\",\"contentName\":\"source.scala\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:scalacode)\\\\\\\\*?\\\\\\\\})\",\"patterns\":[{\"include\":\"source.scala\"}]}]},{\"begin\":\"\\\\\\\\s*\\\\\\\\\\\\\\\\begin\\\\\\\\{(?:sympycode|sympyverbatim|sympyblock|sympyconcode|sympyconsole|sympyconverbatim)\\\\\\\\*?\\\\\\\\}(?:\\\\\\\\[[a-zA-Z0-9_-]*\\\\\\\\])?(?=\\\\\\\\[|\\\\\\\\{|\\\\\\\\s*$)\",\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"end\":\"\\\\\\\\s*\\\\\\\\\\\\\\\\end\\\\\\\\{(?:sympycode|sympyverbatim|sympyblock|sympyconcode|sympyconsole|sympyconverbatim)\\\\\\\\*?\\\\\\\\}\",\"patterns\":[{\"include\":\"#multiline-optional-arg-no-highlight\"},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"contentName\":\"variable.parameter.function.latex\",\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}}},{\"begin\":\"^(?=\\\\\\\\s*)\",\"contentName\":\"source.python\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:sympycode|sympyverbatim|sympyblock|sympyconcode|sympyconsole|sympyconverbatim)\\\\\\\\*?\\\\\\\\})\",\"patterns\":[{\"include\":\"source.python\"}]}]},{\"begin\":\"\\\\\\\\s*\\\\\\\\\\\\\\\\begin\\\\\\\\{([a-zA-Z]*code|lstlisting|minted|pyglist)\\\\\\\\*?\\\\\\\\}(?:\\\\\\\\[.*\\\\\\\\])?(?:\\\\\\\\{.*\\\\\\\\})?\",\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"contentName\":\"meta.function.embedded.latex\",\"end\":\"\\\\\\\\\\\\\\\\end\\\\\\\\{\\\\\\\\1\\\\\\\\}(?:\\\\\\\\s*\\\\\\\\n)?\",\"name\":\"meta.embedded.block.generic.latex\"},{\"begin\":\"((?:^\\\\\\\\s*)?\\\\\\\\\\\\\\\\begin\\\\\\\\{((?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?))\\\\\\\\})(?:\\\\\\\\[[^\\\\\\\\]]*\\\\\\\\]){,2}(?=\\\\\\\\{)\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"end\":\"(\\\\\\\\\\\\\\\\end\\\\\\\\{\\\\\\\\2\\\\\\\\})\",\"patterns\":[{\"begin\":\"\\\\\\\\G(\\\\\\\\{)(?:__|[a-z\\\\\\\\s]*)(?i:asy|asymptote)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"end\":\"(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(\\\\\\\\})\\\\\\\\s*$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"patterns\":[{\"include\":\"text.tex#braces\"},{\"include\":\"$self\"}]},{\"begin\":\"^(\\\\\\\\s*)\",\"contentName\":\"source.asy\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"include\":\"source.asy\"}]}]},{\"begin\":\"\\\\\\\\G(\\\\\\\\{)(?:__|[a-z\\\\\\\\s]*)(?i:bash)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"end\":\"(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(\\\\\\\\})\\\\\\\\s*$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"patterns\":[{\"include\":\"text.tex#braces\"},{\"include\":\"$self\"}]},{\"begin\":\"^(\\\\\\\\s*)\",\"contentName\":\"source.shell\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"include\":\"source.shell\"}]}]},{\"begin\":\"\\\\\\\\G(\\\\\\\\{)(?:__|[a-z\\\\\\\\s]*)(?i:c|cpp)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"end\":\"(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(\\\\\\\\})\\\\\\\\s*$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"patterns\":[{\"include\":\"text.tex#braces\"},{\"include\":\"$self\"}]},{\"begin\":\"^(\\\\\\\\s*)\",\"contentName\":\"source.cpp.embedded.latex\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"include\":\"source.cpp.embedded.latex\"}]}]},{\"begin\":\"\\\\\\\\G(\\\\\\\\{)(?:__|[a-z\\\\\\\\s]*)(?i:css)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"end\":\"(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(\\\\\\\\})\\\\\\\\s*$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"patterns\":[{\"include\":\"text.tex#braces\"},{\"include\":\"$self\"}]},{\"begin\":\"^(\\\\\\\\s*)\",\"contentName\":\"source.css\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"include\":\"source.css\"}]}]},{\"begin\":\"\\\\\\\\G(\\\\\\\\{)(?:__|[a-z\\\\\\\\s]*)(?i:gnuplot)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"end\":\"(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(\\\\\\\\})\\\\\\\\s*$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"patterns\":[{\"include\":\"text.tex#braces\"},{\"include\":\"$self\"}]},{\"begin\":\"^(\\\\\\\\s*)\",\"contentName\":\"source.gnuplot\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"include\":\"source.gnuplot\"}]}]},{\"begin\":\"\\\\\\\\G(\\\\\\\\{)(?:__|[a-z\\\\\\\\s]*)(?i:hs|haskell)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"end\":\"(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(\\\\\\\\})\\\\\\\\s*$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"patterns\":[{\"include\":\"text.tex#braces\"},{\"include\":\"$self\"}]},{\"begin\":\"^(\\\\\\\\s*)\",\"contentName\":\"source.haskell\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"include\":\"source.haskell\"}]}]},{\"begin\":\"\\\\\\\\G(\\\\\\\\{)(?:__|[a-z\\\\\\\\s]*)(?i:html)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"end\":\"(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(\\\\\\\\})\\\\\\\\s*$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"patterns\":[{\"include\":\"text.tex#braces\"},{\"include\":\"$self\"}]},{\"begin\":\"^(\\\\\\\\s*)\",\"contentName\":\"text.html\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"include\":\"text.html.basic\"}]}]},{\"begin\":\"\\\\\\\\G(\\\\\\\\{)(?:__|[a-z\\\\\\\\s]*)(?i:java)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"end\":\"(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(\\\\\\\\})\\\\\\\\s*$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"patterns\":[{\"include\":\"text.tex#braces\"},{\"include\":\"$self\"}]},{\"begin\":\"^(\\\\\\\\s*)\",\"contentName\":\"source.java\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"include\":\"source.java\"}]}]},{\"begin\":\"\\\\\\\\G(\\\\\\\\{)(?:__|[a-z\\\\\\\\s]*)(?i:jl|julia)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"end\":\"(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(\\\\\\\\})\\\\\\\\s*$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"patterns\":[{\"include\":\"text.tex#braces\"},{\"include\":\"$self\"}]},{\"begin\":\"^(\\\\\\\\s*)\",\"contentName\":\"source.julia\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"include\":\"source.julia\"}]}]},{\"begin\":\"\\\\\\\\G(\\\\\\\\{)(?:__|[a-z\\\\\\\\s]*)(?i:js|javascript)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"end\":\"(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(\\\\\\\\})\\\\\\\\s*$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"patterns\":[{\"include\":\"text.tex#braces\"},{\"include\":\"$self\"}]},{\"begin\":\"^(\\\\\\\\s*)\",\"contentName\":\"source.js\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"include\":\"source.js\"}]}]},{\"begin\":\"\\\\\\\\G(\\\\\\\\{)(?:__|[a-z\\\\\\\\s]*)(?i:lua)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"end\":\"(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(\\\\\\\\})\\\\\\\\s*$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"patterns\":[{\"include\":\"text.tex#braces\"},{\"include\":\"$self\"}]},{\"begin\":\"^(\\\\\\\\s*)\",\"contentName\":\"source.lua\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"include\":\"source.lua\"}]}]},{\"begin\":\"\\\\\\\\G(\\\\\\\\{)(?:__|[a-z\\\\\\\\s]*)(?i:py|python|sage)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"end\":\"(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(\\\\\\\\})\\\\\\\\s*$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"patterns\":[{\"include\":\"text.tex#braces\"},{\"include\":\"$self\"}]},{\"begin\":\"^(\\\\\\\\s*)\",\"contentName\":\"source.python\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"include\":\"source.python\"}]}]},{\"begin\":\"\\\\\\\\G(\\\\\\\\{)(?:__|[a-z\\\\\\\\s]*)(?i:rb|ruby)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"end\":\"(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(\\\\\\\\})\\\\\\\\s*$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"patterns\":[{\"include\":\"text.tex#braces\"},{\"include\":\"$self\"}]},{\"begin\":\"^(\\\\\\\\s*)\",\"contentName\":\"source.ruby\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"include\":\"source.ruby\"}]}]},{\"begin\":\"\\\\\\\\G(\\\\\\\\{)(?:__|[a-z\\\\\\\\s]*)(?i:rust)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"end\":\"(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(\\\\\\\\})\\\\\\\\s*$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"patterns\":[{\"include\":\"text.tex#braces\"},{\"include\":\"$self\"}]},{\"begin\":\"^(\\\\\\\\s*)\",\"contentName\":\"source.rust\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"include\":\"source.rust\"}]}]},{\"begin\":\"\\\\\\\\G(\\\\\\\\{)(?:__|[a-z\\\\\\\\s]*)(?i:ts|typescript)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"end\":\"(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(\\\\\\\\})\\\\\\\\s*$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"patterns\":[{\"include\":\"text.tex#braces\"},{\"include\":\"$self\"}]},{\"begin\":\"^(\\\\\\\\s*)\",\"contentName\":\"source.ts\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"include\":\"source.ts\"}]}]},{\"begin\":\"\\\\\\\\G(\\\\\\\\{)(?:__|[a-z\\\\\\\\s]*)(?i:xml)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"end\":\"(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(\\\\\\\\})\\\\\\\\s*$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"patterns\":[{\"include\":\"text.tex#braces\"},{\"include\":\"$self\"}]},{\"begin\":\"^(\\\\\\\\s*)\",\"contentName\":\"text.xml\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"include\":\"text.xml\"}]}]},{\"begin\":\"\\\\\\\\G(\\\\\\\\{)(?:__|[a-z\\\\\\\\s]*)(?i:yaml)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"end\":\"(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(\\\\\\\\})\\\\\\\\s*$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"patterns\":[{\"include\":\"text.tex#braces\"},{\"include\":\"$self\"}]},{\"begin\":\"^(\\\\\\\\s*)\",\"contentName\":\"source.yaml\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"include\":\"source.yaml\"}]}]},{\"begin\":\"\\\\\\\\G(\\\\\\\\{)(?:__|[a-z\\\\\\\\s]*)(?i:tikz|tikzpicture)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"end\":\"(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(\\\\\\\\})\\\\\\\\s*$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"patterns\":[{\"include\":\"text.tex#braces\"},{\"include\":\"$self\"}]},{\"begin\":\"^(\\\\\\\\s*)\",\"contentName\":\"text.tex.latex\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"include\":\"text.tex.latex\"}]}]},{\"begin\":\"\\\\\\\\G(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"end\":\"(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"patterns\":[{\"begin\":\"\\\\\\\\G\",\"end\":\"(\\\\\\\\})\\\\\\\\s*$\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"patterns\":[{\"include\":\"text.tex#braces\"},{\"include\":\"$self\"}]},{\"begin\":\"^(\\\\\\\\s*)\",\"contentName\":\"meta.function.embedded.latex\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\\\\\*?|PlaceholderFromCode\\\\\\\\*?|SetPlaceholderCode\\\\\\\\*?)\\\\\\\\})\",\"name\":\"meta.embedded.block.generic.latex\"}]}]},{\"begin\":\"(?:^\\\\\\\\s*)?\\\\\\\\\\\\\\\\begin\\\\\\\\{(terminal\\\\\\\\*?)\\\\\\\\}(?=\\\\\\\\[|\\\\\\\\{)\",\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"end\":\"\\\\\\\\\\\\\\\\end\\\\\\\\{\\\\\\\\1\\\\\\\\}\",\"patterns\":[{\"include\":\"#multiline-optional-arg-no-highlight\"},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)([a-zA-Z]*)(\\\\\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"},\"2\":{\"name\":\"variable.parameter.function.latex\"},\"3\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"contentName\":\"meta.function.embedded.latex\",\"end\":\"^\\\\\\\\s*(?=\\\\\\\\\\\\\\\\end\\\\\\\\{terminal\\\\\\\\*?\\\\\\\\})\",\"name\":\"meta.embedded.block.generic.latex\"}]},{\"begin\":\"((\\\\\\\\\\\\\\\\)addplot)(?:\\\\\\\\+?)((?:\\\\\\\\[[^\\\\\\\\[]*\\\\\\\\]))*\\\\\\\\s*(gnuplot)\\\\\\\\s*((?:\\\\\\\\[[^\\\\\\\\[]*\\\\\\\\]))*\\\\\\\\s*(\\\\\\\\{)\",\"captures\":{\"1\":{\"name\":\"support.function.be.latex\"},\"2\":{\"name\":\"punctuation.definition.function.latex\"},\"3\":{\"patterns\":[{\"include\":\"#optional-arg-bracket\"}]},\"4\":{\"name\":\"variable.parameter.function.latex\"},\"5\":{\"patterns\":[{\"include\":\"#optional-arg-bracket\"}]},\"6\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"end\":\"\\\\\\\\s*(\\\\\\\\};)\",\"patterns\":[{\"begin\":\"%\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.latex\"}},\"end\":\"$\\\\\\\\n?\",\"name\":\"comment.line.percentage.latex\"},{\"include\":\"source.gnuplot\"}]},{\"begin\":\"(\\\\\\\\s*\\\\\\\\\\\\\\\\begin\\\\\\\\{((?:fboxv|boxedv|V|v|spv)erbatim\\\\\\\\*?)\\\\\\\\})\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"contentName\":\"markup.raw.verbatim.latex\",\"end\":\"(\\\\\\\\\\\\\\\\end\\\\\\\\{\\\\\\\\2\\\\\\\\})\",\"name\":\"meta.function.verbatim.latex\"},{\"begin\":\"(\\\\\\\\s*\\\\\\\\\\\\\\\\begin\\\\\\\\{VerbatimOut\\\\\\\\}\\\\\\\\{[^\\\\\\\\}]*\\\\\\\\})\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"contentName\":\"markup.raw.verbatim.latex\",\"end\":\"(\\\\\\\\\\\\\\\\end\\\\\\\\{\\\\\\\\VerbatimOut\\\\\\\\})\",\"name\":\"meta.function.verbatim.latex\"},{\"begin\":\"(\\\\\\\\s*\\\\\\\\\\\\\\\\begin\\\\\\\\{alltt\\\\\\\\})\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"contentName\":\"markup.raw.verbatim.latex\",\"end\":\"(\\\\\\\\\\\\\\\\end\\\\\\\\{alltt\\\\\\\\})\",\"name\":\"meta.function.alltt.latex\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.function.latex\"}},\"match\":\"(\\\\\\\\\\\\\\\\)[A-Za-z]+\",\"name\":\"support.function.general.latex\"}]},{\"begin\":\"(\\\\\\\\s*\\\\\\\\\\\\\\\\begin\\\\\\\\{([Cc]omment)\\\\\\\\})\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"contentName\":\"comment.line.percentage.latex\",\"end\":\"(\\\\\\\\\\\\\\\\end\\\\\\\\{\\\\\\\\2\\\\\\\\})\",\"name\":\"meta.function.verbatim.latex\"},{\"begin\":\"(?:\\\\\\\\s*)((\\\\\\\\\\\\\\\\)(?:href|hyperref|hyperimage))(?=\\\\\\\\[|\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.url.latex\"}},\"comment\":\"Captures \\\\\\\\command[option]{url}{optional category}{optional name}{text}\",\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"name\":\"meta.function.hyperlink.latex\",\"patterns\":[{\"include\":\"#multiline-optional-arg-no-highlight\"},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(\\\\\\\\{)([^}]*)(\\\\\\\\})(?:\\\\\\\\{[^}]*\\\\\\\\}){2}?(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"},\"2\":{\"name\":\"markup.underline.link.latex\"},\"3\":{\"name\":\"punctuation.definition.arguments.end.latex\"},\"4\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"contentName\":\"meta.variable.parameter.function.latex\",\"end\":\"(?=\\\\\\\\})\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(?:\\\\\\\\G|(?<=\\\\\\\\]))(?:(\\\\\\\\{)[^}]*(\\\\\\\\}))?(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.latex\"},\"2\":{\"name\":\"punctuation.definition.arguments.end.latex\"},\"3\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"contentName\":\"meta.variable.parameter.function.latex\",\"end\":\"(?=\\\\\\\\})\",\"patterns\":[{\"include\":\"$self\"}]}]},{\"captures\":{\"1\":{\"name\":\"support.function.url.latex\"},\"2\":{\"name\":\"punctuation.definition.function.latex\"},\"3\":{\"name\":\"punctuation.definition.arguments.begin.latex\"},\"5\":{\"name\":\"punctuation.definition.arguments.end.latex\"},\"\\'\":{\"name\":\"markup.underline.link.latex\"}},\"match\":\"(?:\\\\\\\\s*)((\\\\\\\\\\\\\\\\)url)(\\\\\\\\{)([^}]*)(\\\\\\\\})\",\"name\":\"meta.function.link.url.latex\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"comment\":\"These two patterns match the \\\\\\\\begin{document} and \\\\\\\\end{document} commands, so that the environment matching pattern following them will ignore those commands.\",\"match\":\"(\\\\\\\\s*\\\\\\\\\\\\\\\\begin\\\\\\\\{document\\\\\\\\})\",\"name\":\"meta.function.begin-document.latex\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"match\":\"(\\\\\\\\s*\\\\\\\\\\\\\\\\end\\\\\\\\{document\\\\\\\\})\",\"name\":\"meta.function.end-document.latex\"},{\"begin\":\"(?:\\\\\\\\s*)((\\\\\\\\\\\\\\\\)begin)(\\\\\\\\{)((?:\\\\\\\\+?array|equation|(?:IEEE)?eqnarray|multline|align|aligned|alignat|alignedat|flalign|flaligned|flalignat|split|gather|gathered|\\\\\\\\+?cases|(?:display)?math|\\\\\\\\+?[a-zA-Z]*matrix|[pbBvV]?NiceMatrix|[pbBvV]?NiceArray|(?:(?:arg)?(?:mini|maxi)))(?:\\\\\\\\*|!)?)(\\\\\\\\})(\\\\\\\\s*\\\\\\\\n)?\",\"captures\":{\"1\":{\"name\":\"support.function.be.latex\"},\"2\":{\"name\":\"punctuation.definition.function.latex\"},\"3\":{\"name\":\"punctuation.definition.arguments.begin.latex\"},\"4\":{\"name\":\"variable.parameter.function.latex\"},\"5\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"contentName\":\"meta.math.block.latex support.class.math.block.environment.latex\",\"end\":\"(?:\\\\\\\\s*)((\\\\\\\\\\\\\\\\)end)(\\\\\\\\{)(\\\\\\\\4)(\\\\\\\\})(?:\\\\\\\\s*\\\\\\\\n)?\",\"name\":\"meta.function.environment.math.latex\",\"patterns\":[{\"match\":\"(?<!\\\\\\\\\\\\\\\\)&\",\"name\":\"keyword.control.equation.align.latex\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\"name\":\"keyword.control.equation.newline.latex\"},{\"include\":\"#definition-label\"},{\"include\":\"text.tex#math\"},{\"include\":\"$self\"}]},{\"begin\":\"(?:\\\\\\\\s*)(\\\\\\\\\\\\\\\\begin\\\\\\\\{empheq\\\\\\\\}(?:\\\\\\\\[.*\\\\\\\\])?)\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"contentName\":\"meta.math.block.latex support.class.math.block.environment.latex\",\"end\":\"(?:\\\\\\\\s*)(\\\\\\\\\\\\\\\\end\\\\\\\\{empheq\\\\\\\\})\",\"name\":\"meta.function.environment.math.latex\",\"patterns\":[{\"match\":\"(?<!\\\\\\\\\\\\\\\\)&\",\"name\":\"keyword.control.equation.align.latex\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\"name\":\"keyword.control.equation.newline.latex\"},{\"include\":\"#definition-label\"},{\"include\":\"text.tex#math\"},{\"include\":\"$self\"}]},{\"begin\":\"(\\\\\\\\s*\\\\\\\\\\\\\\\\begin\\\\\\\\{(tabular[xy*]?|xltabular|longtable|(?:long)?tabu|(?:long|tall)?tblr|NiceTabular[X*]?|booktabs)\\\\\\\\}(\\\\\\\\s*\\\\\\\\n)?)\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"contentName\":\"meta.data.environment.tabular.latex\",\"end\":\"(\\\\\\\\s*\\\\\\\\\\\\\\\\end\\\\\\\\{(\\\\\\\\2)\\\\\\\\}(?:\\\\\\\\s*\\\\\\\\n)?)\",\"name\":\"meta.function.environment.tabular.latex\",\"patterns\":[{\"match\":\"(?<!\\\\\\\\\\\\\\\\)&\",\"name\":\"keyword.control.table.cell.latex\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\"name\":\"keyword.control.table.newline.latex\"},{\"include\":\"$self\"}]},{\"begin\":\"(\\\\\\\\s*\\\\\\\\\\\\\\\\begin\\\\\\\\{(itemize|enumerate|description|list)\\\\\\\\})\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"end\":\"(\\\\\\\\\\\\\\\\end\\\\\\\\{\\\\\\\\2\\\\\\\\}(?:\\\\\\\\s*\\\\\\\\n)?)\",\"name\":\"meta.function.environment.list.latex\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(\\\\\\\\s*\\\\\\\\\\\\\\\\begin\\\\\\\\{tikzpicture\\\\\\\\})\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"end\":\"(\\\\\\\\\\\\\\\\end\\\\\\\\{tikzpicture\\\\\\\\}(?:\\\\\\\\s*\\\\\\\\n)?)\",\"name\":\"meta.function.environment.latex.tikz\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(\\\\\\\\s*\\\\\\\\\\\\\\\\begin\\\\\\\\{frame\\\\\\\\})\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"end\":\"(\\\\\\\\\\\\\\\\end\\\\\\\\{frame\\\\\\\\})\",\"name\":\"meta.function.environment.frame.latex\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(\\\\\\\\s*\\\\\\\\\\\\\\\\begin\\\\\\\\{(mpost\\\\\\\\*?)\\\\\\\\})\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"end\":\"(\\\\\\\\\\\\\\\\end\\\\\\\\{\\\\\\\\2\\\\\\\\}(?:\\\\\\\\s*\\\\\\\\n)?)\",\"name\":\"meta.function.environment.latex.mpost\"},{\"begin\":\"(\\\\\\\\s*\\\\\\\\\\\\\\\\begin\\\\\\\\{markdown\\\\\\\\})\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"contentName\":\"meta.embedded.markdown_latex_combined\",\"end\":\"(\\\\\\\\\\\\\\\\end\\\\\\\\{markdown\\\\\\\\})\",\"patterns\":[{\"include\":\"text.tex.markdown_latex_combined\"}]},{\"begin\":\"(\\\\\\\\s*\\\\\\\\\\\\\\\\begin\\\\\\\\{(\\\\\\\\w+\\\\\\\\*?)\\\\\\\\})\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#begin-env-tokenizer\"}]}},\"end\":\"(\\\\\\\\\\\\\\\\end\\\\\\\\{\\\\\\\\2\\\\\\\\}(?:\\\\\\\\s*\\\\\\\\n)?)\",\"name\":\"meta.function.environment.general.latex\",\"patterns\":[{\"include\":\"$self\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.function.latex\"},\"2\":{\"name\":\"punctuation.definition.function.latex\"},\"3\":{\"name\":\"punctuation.definition.begin.latex\"},\"4\":{\"name\":\"support.function.general.latex\"},\"5\":{\"name\":\"punctuation.definition.function.latex\"},\"6\":{\"name\":\"punctuation.definition.end.latex\"}},\"match\":\"((\\\\\\\\\\\\\\\\)(?:newcommand|renewcommand|(?:re)?newrobustcmd|DeclareRobustCommand))\\\\\\\\*?({)((\\\\\\\\\\\\\\\\)[^}]*)(})\"},{\"begin\":\"((\\\\\\\\\\\\\\\\)marginpar)((?:\\\\\\\\[[^\\\\\\\\[]*?\\\\\\\\])*)(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.marginpar.latex\"},\"2\":{\"name\":\"punctuation.definition.function.latex\"},\"3\":{\"patterns\":[{\"include\":\"#optional-arg-bracket\"}]},\"4\":{\"name\":\"punctuation.definition.marginpar.begin.latex\"}},\"contentName\":\"meta.paragraph.margin.latex\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.marginpar.end.latex\"}},\"patterns\":[{\"include\":\"text.tex#braces\"},{\"include\":\"$self\"}]},{\"begin\":\"((\\\\\\\\\\\\\\\\)footnote)((?:\\\\\\\\[[^\\\\\\\\[]*?\\\\\\\\])*)(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.footnote.latex\"},\"2\":{\"name\":\"punctuation.definition.function.latex\"},\"3\":{\"patterns\":[{\"include\":\"#optional-arg-bracket\"}]},\"4\":{\"name\":\"punctuation.definition.footnote.begin.latex\"}},\"contentName\":\"entity.name.footnote.latex\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.footnote.end.latex\"}},\"patterns\":[{\"include\":\"text.tex#braces\"},{\"include\":\"$self\"}]},{\"begin\":\"((\\\\\\\\\\\\\\\\)emph)(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.emph.latex\"},\"2\":{\"name\":\"punctuation.definition.function.latex\"},\"3\":{\"name\":\"punctuation.definition.emph.begin.latex\"}},\"contentName\":\"markup.italic.emph.latex\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.emph.end.latex\"}},\"name\":\"meta.function.emph.latex\",\"patterns\":[{\"include\":\"text.tex#braces\"},{\"include\":\"$self\"}]},{\"begin\":\"((\\\\\\\\\\\\\\\\)textit)(\\\\\\\\{)\",\"captures\":{\"1\":{\"name\":\"support.function.textit.latex\"},\"2\":{\"name\":\"punctuation.definition.function.latex\"},\"3\":{\"name\":\"punctuation.definition.textit.begin.latex\"}},\"comment\":\"We put the keyword in a capture and name this capture, so that disabling spell checking for “keyword” won\\'t be inherited by the argument to \\\\\\\\textit{...}.\\\\n\\\\nPut specific matches for particular LaTeX keyword.functions before the last two more general functions\",\"contentName\":\"markup.italic.textit.latex\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.textit.end.latex\"}},\"name\":\"meta.function.textit.latex\",\"patterns\":[{\"include\":\"text.tex#braces\"},{\"include\":\"$self\"}]},{\"begin\":\"((\\\\\\\\\\\\\\\\)textbf)(\\\\\\\\{)\",\"captures\":{\"1\":{\"name\":\"support.function.textbf.latex\"},\"2\":{\"name\":\"punctuation.definition.function.latex\"},\"3\":{\"name\":\"punctuation.definition.textbf.begin.latex\"}},\"contentName\":\"markup.bold.textbf.latex\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.textbf.end.latex\"}},\"name\":\"meta.function.textbf.latex\",\"patterns\":[{\"include\":\"text.tex#braces\"},{\"include\":\"$self\"}]},{\"begin\":\"((\\\\\\\\\\\\\\\\)texttt)(\\\\\\\\{)\",\"captures\":{\"1\":{\"name\":\"support.function.texttt.latex\"},\"2\":{\"name\":\"punctuation.definition.function.latex\"},\"3\":{\"name\":\"punctuation.definition.texttt.begin.latex\"}},\"contentName\":\"markup.raw.texttt.latex\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.texttt.end.latex\"}},\"name\":\"meta.function.texttt.latex\",\"patterns\":[{\"include\":\"text.tex#braces\"},{\"include\":\"$self\"}]},{\"captures\":{\"0\":{\"name\":\"keyword.other.item.latex\"},\"1\":{\"name\":\"punctuation.definition.keyword.latex\"}},\"match\":\"(\\\\\\\\\\\\\\\\)item\\\\\\\\b\",\"name\":\"meta.scope.item.latex\"},{\"begin\":\"((\\\\\\\\\\\\\\\\)(?:[aA]uto|foot|full|no|ref|short|[tT]ext|[pP]aren|[sS]mart)?[cC]ite(?:al)?(?:p|s|t|author|year(?:par)?|title)?[ANP]*\\\\\\\\*?)((?:(?:\\\\\\\\([^\\\\\\\\)]*\\\\\\\\)){0,2}(?:\\\\\\\\[[^\\\\\\\\]]*\\\\\\\\]){0,2}\\\\\\\\{[\\\\\\\\p{Alphabetic}\\\\\\\\p{Number}_:.-]*\\\\\\\\})*)(<[^\\\\\\\\]<>]*>)?((?:\\\\\\\\[[^\\\\\\\\]]*\\\\\\\\])*)(\\\\\\\\{)\",\"captures\":{\"1\":{\"name\":\"keyword.control.cite.latex\"},\"2\":{\"name\":\"punctuation.definition.keyword.latex\"},\"3\":{\"patterns\":[{\"include\":\"#autocites-arg\"}]},\"4\":{\"patterns\":[{\"include\":\"#optional-arg-angle-no-highlight\"}]},\"5\":{\"patterns\":[{\"include\":\"#optional-arg-bracket-no-highlight\"}]},\"6\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"name\":\"meta.citation.latex\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"comment.line.percentage.tex\"},\"2\":{\"name\":\"punctuation.definition.comment.tex\"}},\"match\":\"((%).*)$\"},{\"match\":\"[\\\\\\\\p{Alphabetic}\\\\\\\\p{Number}:.-]+\",\"name\":\"constant.other.reference.citation.latex\"}]},{\"begin\":\"((\\\\\\\\\\\\\\\\)bibentry)(\\\\\\\\{)\",\"captures\":{\"1\":{\"name\":\"keyword.control.cite.latex\"},\"2\":{\"name\":\"punctuation.definition.keyword.latex\"},\"3\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"name\":\"meta.citation.latex\",\"patterns\":[{\"match\":\"[\\\\\\\\p{Alphabetic}\\\\\\\\p{Number}:.]+\",\"name\":\"constant.other.reference.citation.latex\"}]},{\"begin\":\"((\\\\\\\\\\\\\\\\)(?:\\\\\\\\w*[rR]ef\\\\\\\\*?))(?:\\\\\\\\[[^\\\\\\\\]]*\\\\\\\\])?(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.ref.latex\"},\"2\":{\"name\":\"punctuation.definition.keyword.latex\"},\"3\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"name\":\"meta.reference.label.latex\",\"patterns\":[{\"match\":\"[\\\\\\\\p{Alphabetic}\\\\\\\\p{Number}\\\\\\\\.,:/*!^_-]\",\"name\":\"constant.other.reference.label.latex\"}]},{\"include\":\"#definition-label\"},{\"begin\":\"((\\\\\\\\\\\\\\\\)(?:verb|Verb|spverb)\\\\\\\\*?)\\\\\\\\s*((\\\\\\\\\\\\\\\\)scantokens)(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.verb.latex\"},\"2\":{\"name\":\"punctuation.definition.function.latex\"},\"3\":{\"name\":\"support.function.verb.latex\"},\"4\":{\"name\":\"punctuation.definition.verb.latex\"},\"5\":{\"name\":\"punctuation.definition.begin.latex\"}},\"contentName\":\"markup.raw.verb.latex\",\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.end.latex\"}},\"name\":\"meta.function.verb.latex\",\"patterns\":[{\"include\":\"$self\"}]},{\"captures\":{\"1\":{\"name\":\"support.function.verb.latex\"},\"2\":{\"name\":\"punctuation.definition.function.latex\"},\"3\":{\"name\":\"punctuation.definition.verb.latex\"},\"4\":{\"name\":\"markup.raw.verb.latex\"},\"5\":{\"name\":\"punctuation.definition.verb.latex\"}},\"match\":\"((\\\\\\\\\\\\\\\\)(?:verb|Verb|spverb)\\\\\\\\*?)\\\\\\\\s*((?<=\\\\\\\\s)\\\\\\\\S|[^a-zA-Z])(.*?)(\\\\\\\\3|$)\",\"name\":\"meta.function.verb.latex\"},{\"captures\":{\"1\":{\"name\":\"support.function.verb.latex\"},\"2\":{\"name\":\"punctuation.definition.function.latex\"},\"3\":{\"patterns\":[{\"include\":\"#optional-arg-bracket\"}]},\"4\":{\"name\":\"punctuation.definition.arguments.begin.latex\"},\"5\":{\"name\":\"punctuation.definition.arguments.end.latex\"},\"6\":{\"name\":\"punctuation.definition.verb.latex\"},\"7\":{\"name\":\"markup.raw.verb.latex\"},\"8\":{\"name\":\"punctuation.definition.verb.latex\"},\"9\":{\"name\":\"punctuation.definition.verb.latex\"},\"10\":{\"name\":\"markup.raw.verb.latex\"},\"11\":{\"name\":\"punctuation.definition.verb.latex\"}},\"match\":\"((\\\\\\\\\\\\\\\\)(?:mint|mintinline))((?:\\\\\\\\[[^\\\\\\\\[]*?\\\\\\\\])?)(\\\\\\\\{)[a-zA-Z]*(\\\\\\\\})(?:(?:([^a-zA-Z\\\\\\\\{])(.*?)(\\\\\\\\6))|(?:(\\\\\\\\{)(.*?)(\\\\\\\\})))\",\"name\":\"meta.function.verb.latex\"},{\"captures\":{\"1\":{\"name\":\"support.function.verb.latex\"},\"2\":{\"name\":\"punctuation.definition.function.latex\"},\"3\":{\"patterns\":[{\"include\":\"#optional-arg-bracket\"}]},\"4\":{\"name\":\"punctuation.definition.verb.latex\"},\"5\":{\"name\":\"markup.raw.verb.latex\"},\"6\":{\"name\":\"punctuation.definition.verb.latex\"},\"7\":{\"name\":\"punctuation.definition.verb.latex\"},\"8\":{\"name\":\"markup.raw.verb.latex\"},\"9\":{\"name\":\"punctuation.definition.verb.latex\"}},\"match\":\"((\\\\\\\\\\\\\\\\)[a-z]+inline)((?:\\\\\\\\[[^\\\\\\\\[]*?\\\\\\\\])?)(?:(?:([^a-zA-Z\\\\\\\\{])(.*?)(\\\\\\\\4))|(?:(\\\\\\\\{)(.*?)(\\\\\\\\})))\",\"name\":\"meta.function.verb.latex\"},{\"captures\":{\"1\":{\"name\":\"support.function.verb.latex\"},\"2\":{\"name\":\"punctuation.definition.function.latex\"},\"3\":{\"patterns\":[{\"include\":\"#optional-arg-bracket\"}]},\"4\":{\"name\":\"punctuation.definition.verb.latex\"},\"5\":{\"name\":\"source.python\",\"patterns\":[{\"include\":\"source.python\"}]},\"6\":{\"name\":\"punctuation.definition.verb.latex\"},\"7\":{\"name\":\"punctuation.definition.verb.latex\"},\"8\":{\"name\":\"source.python\",\"patterns\":[{\"include\":\"source.python\"}]},\"9\":{\"name\":\"punctuation.definition.verb.latex\"}},\"match\":\"((\\\\\\\\\\\\\\\\)(?:(?:py|pycon|pylab|pylabcon|sympy|sympycon)[cv]?|pyq|pycq|pyif))((?:\\\\\\\\[[^\\\\\\\\[]*?\\\\\\\\])?)(?:(?:([^a-zA-Z\\\\\\\\{])(.*?)(\\\\\\\\4))|(?:(\\\\\\\\{)(.*?)(\\\\\\\\})))\",\"name\":\"meta.function.verb.latex\"},{\"captures\":{\"1\":{\"name\":\"support.function.verb.latex\"},\"2\":{\"name\":\"punctuation.definition.function.latex\"},\"3\":{\"patterns\":[{\"include\":\"#optional-arg-bracket\"}]},\"4\":{\"name\":\"punctuation.definition.verb.latex\"},\"5\":{\"name\":\"source.julia\",\"patterns\":[{\"include\":\"source.julia\"}]},\"6\":{\"name\":\"punctuation.definition.verb.latex\"},\"7\":{\"name\":\"punctuation.definition.verb.latex\"},\"8\":{\"name\":\"source.julia\",\"patterns\":[{\"include\":\"source.julia\"}]},\"9\":{\"name\":\"punctuation.definition.verb.latex\"}},\"match\":\"((\\\\\\\\\\\\\\\\)(?:jl|julia)[cv]?)((?:\\\\\\\\[[^\\\\\\\\[]*?\\\\\\\\])?)(?:(?:([^a-zA-Z\\\\\\\\{])(.*?)(\\\\\\\\4))|(?:(\\\\\\\\{)(.*?)(\\\\\\\\})))\",\"name\":\"meta.function.verb.latex\"},{\"begin\":\"((\\\\\\\\\\\\\\\\)(?:directlua|luadirect))(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.verb.latex\"},\"2\":{\"name\":\"punctuation.definition.function.latex\"},\"3\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"contentName\":\"source.lua\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"patterns\":[{\"include\":\"source.lua\"}]},{\"match\":\"\\\\\\\\\\\\\\\\(?:newline|pagebreak|clearpage|linebreak|pause)(?:\\\\\\\\b)\",\"name\":\"keyword.control.layout.latex\"},{\"begin\":\"\\\\\\\\\\\\\\\\\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.latex\"}},\"end\":\"\\\\\\\\\\\\\\\\\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.latex\"}},\"name\":\"meta.math.block.latex support.class.math.block.environment.latex\",\"patterns\":[{\"include\":\"text.tex#math\"},{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\$\\\\\\\\$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.latex\"}},\"end\":\"\\\\\\\\$\\\\\\\\$\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.latex\"}},\"name\":\"meta.math.block.latex support.class.math.block.environment.latex\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\$\",\"name\":\"constant.character.escape.latex\"},{\"include\":\"text.tex#math\"},{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.tex\"}},\"end\":\"\\\\\\\\$\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.tex\"}},\"name\":\"meta.math.block.tex support.class.math.block.tex\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\$\",\"name\":\"constant.character.escape.latex\"},{\"include\":\"text.tex#math\"},{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\\\\\\\\\\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.latex\"}},\"end\":\"\\\\\\\\\\\\\\\\\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.latex\"}},\"name\":\"meta.math.block.latex support.class.math.block.environment.latex\",\"patterns\":[{\"include\":\"text.tex#math\"},{\"include\":\"$self\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.constant.latex\"}},\"match\":\"(\\\\\\\\\\\\\\\\)(text(s(terling|ixoldstyle|urd|e(ction|venoldstyle|rvicemark))|yen|n(ineoldstyle|umero|aira)|c(ircledP|o(py(left|right)|lonmonetary)|urrency|e(nt(oldstyle)?|lsius))|t(hree(superior|oldstyle|quarters(emdash)?)|i(ldelow|mes)|w(o(superior|oldstyle)|elveudash)|rademark)|interrobang(down)?|zerooldstyle|o(hm|ne(superior|half|oldstyle|quarter)|penbullet|rd(feminine|masculine))|d(i(scount|ed|v(orced)?)|o(ng|wnarrow|llar(oldstyle)?)|egree|agger(dbl)?|blhyphen(char)?)|uparrow|p(ilcrow|e(so|r(t(housand|enthousand)|iodcentered))|aragraph|m)|e(stimated|ightoldstyle|uro)|quotes(traight(dblbase|base)|ingle)|f(iveoldstyle|ouroldstyle|lorin|ractionsolidus)|won|l(not|ira|e(ftarrow|af)|quill|angle|brackdbl)|a(s(cii(caron|dieresis|acute|grave|macron|breve)|teriskcentered)|cutedbl)|r(ightarrow|e(cipe|ferencemark|gistered)|quill|angle|brackdbl)|g(uarani|ravedbl)|m(ho|inus|u(sicalnote)?|arried)|b(igcircle|orn|ullet|lank|a(ht|rdbl)|rokenbar)))\\\\\\\\b\",\"name\":\"constant.character.latex\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.latex\"}},\"match\":\"(\\\\\\\\\\\\\\\\)(?:[cgl]_+[_\\\\\\\\p{Alphabetic}@]+_[a-z]+|[qs]_[_\\\\\\\\p{Alphabetic}@]+[\\\\\\\\p{Alphabetic}@])\",\"name\":\"variable.other.latex3.latex\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.column-specials.begin.latex\"},\"2\":{\"name\":\"punctuation.definition.column-specials.end.latex\"}},\"match\":\"(?:<|>)(\\\\\\\\{)\\\\\\\\$(\\\\\\\\})\",\"name\":\"meta.column-specials.latex\"},{\"include\":\"text.tex\"}],\"repository\":{\"autocites-arg\":{\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#optional-arg-parenthesis-no-highlight\"}]},\"2\":{\"patterns\":[{\"include\":\"#optional-arg-bracket-no-highlight\"}]},\"3\":{\"name\":\"punctuation.definition.arguments.begin.latex\"},\"4\":{\"name\":\"constant.other.reference.citation.latex\"},\"5\":{\"name\":\"punctuation.definition.arguments.end.latex\"},\"6\":{\"patterns\":[{\"include\":\"#autocites-arg\"}]}},\"match\":\"((?:\\\\\\\\([^\\\\\\\\)]*\\\\\\\\)){0,2})((?:\\\\\\\\[[^\\\\\\\\]]*\\\\\\\\]){0,2})(\\\\\\\\{)([\\\\\\\\p{Alphabetic}\\\\\\\\p{Number}_:.-]+)(\\\\\\\\})(.*)\"}]},\"begin-env-tokenizer\":{\"captures\":{\"1\":{\"name\":\"support.function.be.latex\"},\"2\":{\"name\":\"punctuation.definition.function.latex\"},\"3\":{\"name\":\"punctuation.definition.arguments.begin.latex\"},\"4\":{\"name\":\"variable.parameter.function.latex\"},\"5\":{\"name\":\"punctuation.definition.arguments.end.latex\"},\"6\":{\"name\":\"punctuation.definition.arguments.optional.begin.latex\"},\"7\":{\"patterns\":[{\"include\":\"$self\"}]},\"8\":{\"name\":\"punctuation.definition.arguments.optional.end.latex\"},\"9\":{\"name\":\"punctuation.definition.arguments.begin.latex\"},\"10\":{\"name\":\"variable.parameter.function.latex\"},\"11\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"match\":\"\\\\\\\\s*((\\\\\\\\\\\\\\\\)(?:begin|end))(\\\\\\\\{)([a-zA-Z]*\\\\\\\\*?)(\\\\\\\\})(?:(\\\\\\\\[)([^\\\\\\\\]]*)(\\\\\\\\])){,2}(?:(\\\\\\\\{)([^{}]*)(\\\\\\\\}))?\"},\"definition-label\":{\"begin\":\"((\\\\\\\\\\\\\\\\)z?label)((?:\\\\\\\\[[^\\\\\\\\[]*?\\\\\\\\])*)(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.label.latex\"},\"2\":{\"name\":\"punctuation.definition.keyword.latex\"},\"3\":{\"patterns\":[{\"include\":\"#optional-arg-bracket\"}]},\"4\":{\"name\":\"punctuation.definition.arguments.begin.latex\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.latex\"}},\"name\":\"meta.definition.label.latex\",\"patterns\":[{\"match\":\"[\\\\\\\\p{Alphabetic}\\\\\\\\p{Number}\\\\\\\\.,:/*!^_-]\",\"name\":\"variable.parameter.definition.label.latex\"}]},\"multiline-optional-arg\":{\"begin\":\"\\\\\\\\G\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.optional.begin.latex\"}},\"contentName\":\"variable.parameter.function.latex\",\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.optional.end.latex\"}},\"name\":\"meta.parameter.optional.latex\",\"patterns\":[{\"include\":\"$self\"}]},\"multiline-optional-arg-no-highlight\":{\"begin\":\"\\\\\\\\G\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.optional.begin.latex\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.optional.end.latex\"}},\"name\":\"meta.parameter.optional.latex\",\"patterns\":[{\"include\":\"$self\"}]},\"optional-arg-angle-no-highlight\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.arguments.optional.begin.latex\"},\"2\":{\"name\":\"punctuation.definition.arguments.optional.end.latex\"}},\"match\":\"(<)[^<]*?(>)\",\"name\":\"meta.parameter.optional.latex\"}]},\"optional-arg-bracket\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.arguments.optional.begin.latex\"},\"2\":{\"name\":\"variable.parameter.function.latex\"},\"3\":{\"name\":\"punctuation.definition.arguments.optional.end.latex\"}},\"match\":\"(\\\\\\\\[)([^\\\\\\\\[]*?)(\\\\\\\\])\",\"name\":\"meta.parameter.optional.latex\"}]},\"optional-arg-bracket-no-highlight\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.arguments.optional.begin.latex\"},\"2\":{\"name\":\"punctuation.definition.arguments.optional.end.latex\"}},\"match\":\"(\\\\\\\\[)[^\\\\\\\\[]*?(\\\\\\\\])\",\"name\":\"meta.parameter.optional.latex\"}]},\"optional-arg-parenthesis\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.arguments.optional.begin.latex\"},\"2\":{\"name\":\"variable.parameter.function.latex\"},\"3\":{\"name\":\"punctuation.definition.arguments.optional.end.latex\"}},\"match\":\"(\\\\\\\\()([^\\\\\\\\(]*?)(\\\\\\\\))\",\"name\":\"meta.parameter.optional.latex\"}]},\"optional-arg-parenthesis-no-highlight\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.arguments.optional.begin.latex\"},\"2\":{\"name\":\"punctuation.definition.arguments.optional.end.latex\"}},\"match\":\"(\\\\\\\\()[^\\\\\\\\(]*?(\\\\\\\\))\",\"name\":\"meta.parameter.optional.latex\"}]}},\"scopeName\":\"text.tex.latex\",\"embeddedLangs\":[\"tex\"],\"embeddedLangsLazy\":[\"shellscript\",\"css\",\"gnuplot\",\"haskell\",\"html\",\"java\",\"julia\",\"javascript\",\"lua\",\"python\",\"ruby\",\"rust\",\"typescript\",\"xml\",\"yaml\",\"scala\"]}')),i=[...e,n];export{i as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Dsg_Bt_b.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Coq\",\"fileTypes\":[\"v\"],\"name\":\"coq\",\"patterns\":[{\"comment\":\"Vernacular import keywords\",\"match\":\"\\\\\\\\b(From|Require|Import|Export|Local|Global|Include)\\\\\\\\b\",\"name\":\"keyword.control.import.coq\"},{\"comment\":\"Vernacular scope keywords\",\"match\":\"\\\\\\\\b((Open|Close|Delimit|Undelimit|Bind)\\\\\\\\s+Scope)\\\\\\\\b\",\"name\":\"keyword.control.import.coq\"},{\"captures\":{\"1\":{\"name\":\"keyword.source.coq\"},\"2\":{\"name\":\"entity.name.function.theorem.coq\"}},\"comment\":\"Theorem declarations\",\"match\":\"\\\\\\\\b(Theorem|Lemma|Remark|Fact|Corollary|Property|Proposition)\\\\\\\\s+((\\\\\\\\p{L}|[_\\\\\\\\u00A0])(\\\\\\\\p{L}|[0-9_\\\\\\\\u00A0'])*)\"},{\"match\":\"\\\\\\\\bGoal\\\\\\\\b\",\"name\":\"keyword.source.coq\"},{\"captures\":{\"1\":{\"name\":\"keyword.source.coq\"},\"2\":{\"name\":\"keyword.source.coq\"},\"3\":{\"name\":\"entity.name.assumption.coq\"}},\"comment\":\"Assumptions\",\"match\":\"\\\\\\\\b(Parameters?|Axioms?|Conjectures?|Variables?|Hypothesis|Hypotheses)(\\\\\\\\s+Inline)?\\\\\\\\b\\\\\\\\s*\\\\\\\\(?\\\\\\\\s*((\\\\\\\\p{L}|[_\\\\\\\\u00A0])(\\\\\\\\p{L}|[0-9_\\\\\\\\u00A0'])*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.source.coq\"},\"3\":{\"name\":\"entity.name.assumption.coq\"}},\"comment\":\"Context\",\"match\":\"\\\\\\\\b(Context)\\\\\\\\b\\\\\\\\s*\\`?\\\\\\\\s*(\\\\\\\\(|\\\\\\\\{)?\\\\\\\\s*((\\\\\\\\p{L}|[_\\\\\\\\u00A0])(\\\\\\\\p{L}|[0-9_\\\\\\\\u00A0'])*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.source.coq\"},\"2\":{\"name\":\"keyword.source.coq\"},\"3\":{\"name\":\"entity.name.function.coq\"}},\"comment\":\"Definitions\",\"match\":\"(\\\\\\\\b(?:Program|Local)\\\\\\\\s+)?\\\\\\\\b(Definition|Fixpoint|CoFixpoint|Function|Example|Let(?:\\\\\\\\s+Fixpoint|\\\\\\\\s+CoFixpoint)?|Instance|Equations|Equations?)\\\\\\\\s+((\\\\\\\\p{L}|[_\\\\\\\\u00A0])(\\\\\\\\p{L}|[0-9_\\\\\\\\u00A0'])*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.source.coq\"}},\"comment\":\"Obligations\",\"match\":\"\\\\\\\\b((Show\\\\\\\\s+)?Obligation\\\\\\\\s+Tactic|Obligations\\\\\\\\s+of|Obligation|Next\\\\\\\\s+Obligation(\\\\\\\\s+of)?|Solve\\\\\\\\s+Obligations(\\\\\\\\s+of)?|Solve\\\\\\\\s+All\\\\\\\\s+Obligations|Admit\\\\\\\\s+Obligations(\\\\\\\\s+of)?|Instance)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.source.coq\"},\"3\":{\"name\":\"entity.name.type.coq\"}},\"comment\":\"Type declarations\",\"match\":\"\\\\\\\\b(CoInductive|Inductive|Variant|Record|Structure|Class)\\\\\\\\s+(>\\\\\\\\s*)?((\\\\\\\\p{L}|[_\\\\\\\\u00A0])(\\\\\\\\p{L}|[0-9_\\\\\\\\u00A0'])*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.source.coq\"},\"2\":{\"name\":\"entity.name.function.ltac\"}},\"comment\":\"Ltac declarations\",\"match\":\"\\\\\\\\b(Ltac)\\\\\\\\s+((\\\\\\\\p{L}|[_\\\\\\\\u00A0])(\\\\\\\\p{L}|[0-9_\\\\\\\\u00A0'])*)\"},{\"comment\":\"Vernacular keywords\",\"match\":\"\\\\\\\\b(Hint|Constructors|Resolve|Rewrite|Ltac|Implicit(\\\\\\\\s+Types)?|Set|Unset|Remove\\\\\\\\s+Printing|Arguments|Tactic\\\\\\\\s+Notation|Notation|Infix|Reserved\\\\\\\\s+Notation|Section|Module\\\\\\\\s+Type|Module|End|Check|Print|Eval|Search|Universe|Coercions?|Generalizable\\\\\\\\s+All|Generalizable\\\\\\\\s+Variable?|Existing\\\\\\\\s+Instance|Existing\\\\\\\\s+Class|Canonical|About|Locate|Collection|Typeclasses\\\\\\\\s+(Opaque|Transparent))\\\\\\\\b\",\"name\":\"keyword.source.coq\"},{\"comment\":\"Proof keywords\",\"match\":\"\\\\\\\\b(Proof|Qed|Defined|Save|Abort(\\\\\\\\s+All)?|Undo(\\\\\\\\s+To)?|Restart|Focus|Unfocus|Unfocused|Show\\\\\\\\s+Proof|Show\\\\\\\\s+Existentials|Show|Unshelve)\\\\\\\\b\",\"name\":\"keyword.source.coq\"},{\"comment\":\"Vernacular Debug keywords\",\"match\":\"\\\\\\\\b(Quit|Drop|Time|Redirect|Timeout|Fail)\\\\\\\\b\",\"name\":\"keyword.debug.coq\"},{\"comment\":\"Admits are bad\",\"match\":\"\\\\\\\\b(admit|Admitted)\\\\\\\\b\",\"name\":\"invalid.illegal.admit.coq\"},{\"comment\":\"Operators\",\"match\":\":|\\\\\\\\||=|<|>|\\\\\\\\*|\\\\\\\\+|-|\\\\\\\\{|\\\\\\\\}|≠|∨|∧|↔|¬|→|≤|≥\",\"name\":\"keyword.operator.coq\"},{\"comment\":\"Type keywords\",\"match\":\"\\\\\\\\b(forall|exists|Type|Set|Prop|nat|bool|option|list|unit|sum|prod|comparison|Empty_set)\\\\\\\\b|∀|∃\",\"name\":\"support.type.coq\"},{\"comment\":\"Ltac keywords\",\"match\":\"\\\\\\\\b(try|repeat|rew|progress|fresh|solve|now|first|tryif|at|once|do|only)\\\\\\\\b\",\"name\":\"keyword.control.ltac\"},{\"comment\":\"Common Ltac connectors\",\"match\":\"\\\\\\\\b(into|with|eqn|by|move|as|using)\\\\\\\\b\",\"name\":\"keyword.control.ltac\"},{\"comment\":\"Gallina keywords\",\"match\":\"\\\\\\\\b(match|lazymatch|multimatch|fun|with|return|end|let|in|if|then|else|fix|for|where|and)\\\\\\\\b|λ\",\"name\":\"keyword.control.gallina\"},{\"comment\":\"Ltac builtins\",\"match\":\"\\\\\\\\b(intro|intros|revert|induction|destruct|auto|eauto|tauto|eassumption|apply|eapply|assumption|constructor|econstructor|reflexivity|inversion|injection|assert|split|esplit|omega|fold|unfold|specialize|rewrite|erewrite|change|symmetry|refine|simpl|intuition|firstorder|generalize|idtac|exist|exists|eexists|elim|eelim|rename|subst|congruence|trivial|left|right|set|pose|discriminate|clear|clearbody|contradict|contradiction|exact|dependent|remember|case|easy|unshelve|pattern|transitivity|etransitivity|f_equal|exfalso|replace|abstract|cycle|swap|revgoals|shelve|unshelve)\\\\\\\\b\",\"name\":\"support.function.builtin.ltac\"},{\"applyEndPatternLast\":1,\"begin\":\"\\\\\\\\(\\\\\\\\*(?!#)\",\"end\":\"\\\\\\\\*\\\\\\\\)\",\"name\":\"comment.block.coq\",\"patterns\":[{\"include\":\"#block_comment\"},{\"include\":\"#block_double_quoted_string\"}]},{\"match\":\"\\\\\\\\b((0(x|X)[0-9a-fA-F]+)|([0-9]+(\\\\\\\\.[0-9]+)?))\\\\\\\\b\",\"name\":\"constant.numeric.gallina\"},{\"comment\":\"Gallina builtin constructors\",\"match\":\"\\\\\\\\b(True|False|tt|false|true|Some|None|nil|cons|pair|inl|inr|O|S|Eq|Lt|Gt|id|ex|all|unique)\\\\\\\\b\",\"name\":\"constant.language.constructor.gallina\"},{\"match\":\"\\\\\\\\b_\\\\\\\\b\",\"name\":\"constant.language.wildcard.coq\"},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.coq\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.coq\"}},\"name\":\"string.quoted.double.coq\"}],\"repository\":{\"block_comment\":{\"applyEndPatternLast\":1,\"begin\":\"\\\\\\\\(\\\\\\\\*(?!#)\",\"end\":\"\\\\\\\\*\\\\\\\\)\",\"name\":\"comment.block.coq\",\"patterns\":[{\"include\":\"#block_comment\"},{\"include\":\"#block_double_quoted_string\"}]},\"block_double_quoted_string\":{\"applyEndPatternLast\":1,\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.coq\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.coq\"}},\"name\":\"string.quoted.double.coq\"}},\"scopeName\":\"source.coq\"}`)),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DtFQj3wx.js",
    "content": "const n=Object.freeze(JSON.parse(`{\"displayName\":\"CUE\",\"fileTypes\":[\"cue\"],\"name\":\"cue\",\"patterns\":[{\"include\":\"#whitespace\"},{\"include\":\"#comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.package\"},\"2\":{\"name\":\"entity.name.namespace\"}},\"match\":\"(?<![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#])(package)[ \\\\\\\\t]+([\\\\\\\\p{L}\\\\\\\\$\\\\\\\\#][\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#]*)(?![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#])\"},{\"patterns\":[{\"begin\":\"(?<![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#])(import)[ \\\\\\\\t]+(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.import\"},\"2\":{\"name\":\"punctuation.section.parens.begin\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end\"}},\"name\":\"meta.imports\",\"patterns\":[{\"include\":\"#whitespace\"},{\"include\":\"#comment\"},{\"captures\":{\"1\":{\"name\":\"entity.name.namespace\"},\"2\":{\"name\":\"punctuation.definition.string.begin\"},\"3\":{\"name\":\"string.quoted.double-import\"},\"4\":{\"name\":\"punctuation.colon\"},\"5\":{\"name\":\"entity.name\"},\"6\":{\"name\":\"punctuation.definition.string.end\"}},\"match\":\"(?:([\\\\\\\\p{L}\\\\\\\\$\\\\\\\\#][\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#]*)[ \\\\\\\\t]+)?(\\\\\")([^:\\\\\"]+)(?:(:)([\\\\\\\\p{L}\\\\\\\\$\\\\\\\\#][\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#]*))?(\\\\\")\",\"name\":\"meta.import-spec\"},{\"match\":\";\",\"name\":\"punctuation.separator\"},{\"include\":\"#invalid_in_parens\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.other.import\"},\"2\":{\"name\":\"entity.name.namespace\"},\"3\":{\"name\":\"punctuation.definition.string.begin\"},\"4\":{\"name\":\"string.quoted.double-import\"},\"5\":{\"name\":\"punctuation.colon\"},\"6\":{\"name\":\"entity.name\"},\"7\":{\"name\":\"punctuation.definition.string.end\"}},\"match\":\"(?<![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#])(import)[ \\\\\\\\t]+(?:([\\\\\\\\p{L}\\\\\\\\$\\\\\\\\#][\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#]*)[ \\\\\\\\t]+)?(\\\\\")([^:\\\\\"]+)(?:(:)([\\\\\\\\p{L}\\\\\\\\$\\\\\\\\#][\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#]*))?(\\\\\")\",\"name\":\"meta.import\"}]},{\"include\":\"#punctuation_comma\"},{\"include\":\"#declaration\"},{\"include\":\"#invalid_in_braces\"}],\"repository\":{\"attribute_element\":{\"patterns\":[{\"begin\":\"([\\\\\\\\p{L}\\\\\\\\$\\\\\\\\#][\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#]*|_[\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#]+)(=)\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other\"},\"2\":{\"name\":\"punctuation.bind\"}},\"end\":\"(?=[,\\\\\\\\)])\",\"patterns\":[{\"include\":\"#attribute_string\"}]},{\"begin\":\"([\\\\\\\\p{L}\\\\\\\\$\\\\\\\\#][\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#]*|_[\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#]+)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other\"},\"2\":{\"name\":\"punctuation.attribute-elements.begin\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.attribute-elements.end\"}},\"patterns\":[{\"include\":\"#punctuation_comma\"},{\"include\":\"#attribute_element\"}]},{\"include\":\"#attribute_string\"}]},\"attribute_string\":{\"patterns\":[{\"include\":\"#string\"},{\"match\":\"[^\\\\\\\\n,\\\\\"'#=\\\\\\\\(\\\\\\\\)]+\",\"name\":\"string.unquoted\"},{\"match\":\"[^,\\\\\\\\)]+\",\"name\":\"invalid\"}]},\"comment\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment\"}},\"match\":\"(//).*$\\\\\\\\n?\",\"name\":\"comment.line\"},{\"begin\":\"/\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment\"}},\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block\"}]},\"declaration\":{\"patterns\":[{\"begin\":\"(@)([\\\\\\\\p{L}\\\\\\\\$\\\\\\\\#][\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#]*|_[\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#]+)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.annotation\"},\"2\":{\"name\":\"variable.annotation\"},\"3\":{\"name\":\"punctuation.attribute-elements.begin\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.attribute-elements.end\"}},\"name\":\"meta.annotation\",\"patterns\":[{\"include\":\"#punctuation_comma\"},{\"include\":\"#attribute_element\"}]},{\"match\":\"(?<!:)::(?!:)\",\"name\":\"punctuation.isa\"},{\"include\":\"#punctuation_colon\"},{\"match\":\"\\\\\\\\?\",\"name\":\"punctuation.option\"},{\"match\":\"(?<![=!><])=(?![=~])\",\"name\":\"punctuation.bind\"},{\"match\":\"<-\",\"name\":\"punctuation.arrow\"},{\"include\":\"#expression\"}]},\"expression\":{\"patterns\":[{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.for\"},\"2\":{\"name\":\"variable.other\"},\"3\":{\"name\":\"punctuation.separator\"},\"4\":{\"name\":\"variable.other\"},\"5\":{\"name\":\"keyword.control.in\"}},\"match\":\"(?<![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#])(for)[ \\\\\\\\t]+([\\\\\\\\p{L}\\\\\\\\$\\\\\\\\#][\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#]*|_[\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#]+)(?:[ \\\\\\\\t]*(,)[ \\\\\\\\t]*([\\\\\\\\p{L}\\\\\\\\$\\\\\\\\#][\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#]*|_[\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#]+))?[ \\\\\\\\t]+(in)(?![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#])\"},{\"match\":\"(?<![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#])if(?![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#])\",\"name\":\"keyword.control.conditional\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.let\"},\"2\":{\"name\":\"variable.other\"},\"3\":{\"name\":\"punctuation.bind\"}},\"match\":\"(?<![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#])(let)[ \\\\\\\\t]+([\\\\\\\\p{L}\\\\\\\\$\\\\\\\\#][\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#]*|_[\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#]+)[ \\\\\\\\t]*(=)(?![=])\"}]},{\"patterns\":[{\"match\":\"[\\\\\\\\+\\\\\\\\-\\\\\\\\*]|/(?![/*])\",\"name\":\"keyword.operator\"},{\"match\":\"(?<![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#])(?:div|mod|quo|rem)(?![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#])\",\"name\":\"keyword.operator.word\"},{\"match\":\"=[=~]|![=~]|<=|>=|[<](?![-=])|[>](?![=])\",\"name\":\"keyword.operator.comparison\"},{\"match\":\"&{2}|\\\\\\\\|{2}|!(?![=~])\",\"name\":\"keyword.operator.logical\"},{\"match\":\"&(?!&)|\\\\\\\\|(?!\\\\\\\\|)\",\"name\":\"keyword.operator.set\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor\"},\"2\":{\"name\":\"variable.other.member\"}},\"match\":\"(?<!\\\\\\\\.)(\\\\\\\\.)([\\\\\\\\p{L}\\\\\\\\$\\\\\\\\#][\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#]*|_[\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#]+)(?![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#])\"},{\"patterns\":[{\"match\":\"(?<![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#])_(?!\\\\\\\\|)(?![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#])\",\"name\":\"constant.language.top\"},{\"match\":\"(?<![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#])_\\\\\\\\|_(?![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#])\",\"name\":\"constant.language.bottom\"},{\"match\":\"(?<![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#])null(?![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#])\",\"name\":\"constant.language.null\"},{\"match\":\"(?<![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#])(?:true|false)(?![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#])\",\"name\":\"constant.language.bool\"},{\"patterns\":[{\"patterns\":[{\"match\":\"(?<![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\.])[0-9](?:_?[0-9])*\\\\\\\\.(?:[0-9](?:_?[0-9])*)?(?:[eE][\\\\\\\\+\\\\\\\\-]?[0-9](?:_?[0-9])*)?(?![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\.])\",\"name\":\"constant.numeric.float.decimal\"},{\"match\":\"(?<![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\.])[0-9](?:_?[0-9])*[eE][\\\\\\\\+\\\\\\\\-]?[0-9](?:_?[0-9])*(?![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\.])\",\"name\":\"constant.numeric.float.decimal\"},{\"match\":\"(?<![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\.])\\\\\\\\.[0-9](?:_?[0-9])*(?:[eE][\\\\\\\\+\\\\\\\\-]?[0-9](?:_?[0-9])*)?(?![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\.])\",\"name\":\"constant.numeric.float.decimal\"}]},{\"patterns\":[{\"patterns\":[{\"match\":\"(?<![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\.])(?:0|[1-9](?:_?[0-9])*)(?:\\\\\\\\.[0-9](?:_?[0-9])*)?(?:[KMGTPEYZ]i?)(?![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\.])\",\"name\":\"constant.numeric.integer.other\"},{\"match\":\"(?<![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\.])\\\\\\\\.[0-9](?:_?[0-9])*(?:[KMGTPEYZ]i?)(?![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\.])\",\"name\":\"constant.numeric.integer.other\"}]},{\"match\":\"(?<![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\.])(?:0|[1-9](?:_?[0-9])*)(?![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\.])\",\"name\":\"constant.numeric.integer.decimal\"},{\"match\":\"(?<![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\.])0b[0-1](?:_?[0-1])*(?![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\.])\",\"name\":\"constant.numeric.integer.binary\"},{\"match\":\"(?<![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\.])0[xX][0-9a-fA-F](?:_?[0-9a-fA-F])*(?![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\.])\",\"name\":\"constant.numeric.integer.hexadecimal\"},{\"match\":\"(?<![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\.])0o?[0-7](?:_?[0-7])*(?![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\.])\",\"name\":\"constant.numeric.integer.octal\"}]}]},{\"include\":\"#string\"},{\"match\":\"(?<![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#])(?:bool|u?int(?:8|16|32|64|128)?|float(?:32|64)?|string|bytes|number|rune)(?![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#])\",\"name\":\"support.type\"},{\"patterns\":[{\"begin\":\"(?<![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#])(len|close|and|or)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function\"},\"2\":{\"name\":\"punctuation.section.parens.begin\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end\"}},\"name\":\"meta.function-call\",\"patterns\":[{\"include\":\"#whitespace\"},{\"include\":\"#comment\"},{\"include\":\"#punctuation_comma\"},{\"include\":\"#expression\"},{\"include\":\"#invalid_in_parens\"}]},{\"begin\":\"(?<![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#])([\\\\\\\\p{L}\\\\\\\\$\\\\\\\\#][\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#]*)(\\\\\\\\.)(\\\\\\\\p{Lu}[\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#]*)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.module\"},\"2\":{\"name\":\"punctuation\"},\"3\":{\"name\":\"support.function\"},\"4\":{\"name\":\"punctuation.section.parens.begin\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end\"}},\"name\":\"meta.function-call\",\"patterns\":[{\"include\":\"#whitespace\"},{\"include\":\"#comment\"},{\"include\":\"#punctuation_comma\"},{\"include\":\"#expression\"},{\"include\":\"#invalid_in_parens\"}]}]},{\"match\":\"(?<![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#])(?:[\\\\\\\\p{L}\\\\\\\\$\\\\\\\\#][\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#]*|_[\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#]+)(?![\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#])\",\"name\":\"variable.other\"},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.struct.begin\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.struct.end\"}},\"name\":\"meta.struct\",\"patterns\":[{\"include\":\"#whitespace\"},{\"include\":\"#comment\"},{\"include\":\"#punctuation_comma\"},{\"include\":\"#punctuation_ellipsis\"},{\"include\":\"#declaration\"},{\"include\":\"#invalid_in_braces\"}]},{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.brackets.begin\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.brackets.end\"}},\"name\":\"meta.brackets\",\"patterns\":[{\"include\":\"#whitespace\"},{\"include\":\"#comment\"},{\"include\":\"#punctuation_colon\"},{\"include\":\"#punctuation_comma\"},{\"include\":\"#punctuation_ellipsis\"},{\"captures\":{\"1\":{\"name\":\"variable.other\"},\"2\":{\"name\":\"punctuation.alias\"}},\"match\":\"([\\\\\\\\p{L}\\\\\\\\$\\\\\\\\#][\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#]*|_[\\\\\\\\p{L}\\\\\\\\p{Nd}_\\\\\\\\$\\\\\\\\#]+)[ \\\\\\\\t]*(=)\"},{\"include\":\"#expression\"},{\"match\":\"[^\\\\\\\\]]+\",\"name\":\"invalid\"}]},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end\"}},\"name\":\"meta.parens\",\"patterns\":[{\"include\":\"#whitespace\"},{\"include\":\"#comment\"},{\"include\":\"#punctuation_comma\"},{\"include\":\"#expression\"},{\"include\":\"#invalid_in_parens\"}]}]}]},\"invalid_in_braces\":{\"match\":\"[^\\\\\\\\}]+\",\"name\":\"invalid\"},\"invalid_in_parens\":{\"match\":\"[^\\\\\\\\)]+\",\"name\":\"invalid\"},\"punctuation_colon\":{\"match\":\"(?<!:):(?!:)\",\"name\":\"punctuation.colon\"},\"punctuation_comma\":{\"match\":\",\",\"name\":\"punctuation.separator\"},\"punctuation_ellipsis\":{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\.{3}(?!\\\\\\\\.)\",\"name\":\"punctuation.ellipsis\"},\"string\":{\"patterns\":[{\"begin\":\"#\\\\\"\\\\\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin\"}},\"contentName\":\"string.quoted.double-multiline\",\"end\":\"\\\\\"\\\\\"\\\\\"#\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end\"}},\"name\":\"meta.string\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\#(?:\\\\\"\\\\\"\\\\\"|/|\\\\\\\\\\\\\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})\",\"name\":\"constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\#(?:[0-7]{3}|x[0-9A-Fa-f]{2})\",\"name\":\"invalid.illegal\"},{\"begin\":\"\\\\\\\\\\\\\\\\#\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.interpolation.begin\"}},\"contentName\":\"source.cue.embedded\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.interpolation.end\"}},\"name\":\"meta.interpolation\",\"patterns\":[{\"include\":\"#whitespace\"},{\"include\":\"#expression\"},{\"include\":\"#invalid_in_parens\"}]},{\"match\":\"\\\\\\\\\\\\\\\\#.\",\"name\":\"invalid.illegal\"}]},{\"begin\":\"#\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin\"}},\"contentName\":\"string.quoted.double\",\"end\":\"\\\\\"#\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end\"}},\"name\":\"meta.string\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\#(?:\\\\\"|/|\\\\\\\\\\\\\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})\",\"name\":\"constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\#(?:[0-7]{3}|x[0-9A-Fa-f]{2})\",\"name\":\"invalid.illegal\"},{\"begin\":\"\\\\\\\\\\\\\\\\#\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.interpolation.begin\"}},\"contentName\":\"source.cue.embedded\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.interpolation.end\"}},\"name\":\"meta.interpolation\",\"patterns\":[{\"include\":\"#whitespace\"},{\"include\":\"#expression\"},{\"include\":\"#invalid_in_parens\"}]},{\"match\":\"\\\\\\\\\\\\\\\\#.\",\"name\":\"invalid.illegal\"}]},{\"begin\":\"#'''\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin\"}},\"contentName\":\"string.quoted.single-multiline\",\"end\":\"'''#\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end\"}},\"name\":\"meta.string\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\#(?:'''|/|\\\\\\\\\\\\\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})\",\"name\":\"constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\#(?:[0-7]{3}|x[0-9A-Fa-f]{2})\",\"name\":\"constant.character.escape\"},{\"begin\":\"\\\\\\\\\\\\\\\\#\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.interpolation.begin\"}},\"contentName\":\"source.cue.embedded\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.interpolation.end\"}},\"name\":\"meta.interpolation\",\"patterns\":[{\"include\":\"#whitespace\"},{\"include\":\"#expression\"},{\"include\":\"#invalid_in_parens\"}]},{\"match\":\"\\\\\\\\\\\\\\\\#.\",\"name\":\"invalid.illegal\"}]},{\"begin\":\"#'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin\"}},\"contentName\":\"string.quoted.single\",\"end\":\"'#\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end\"}},\"name\":\"meta.string\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\#(?:'|/|\\\\\\\\\\\\\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})\",\"name\":\"constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\#(?:[0-7]{3}|x[0-9A-Fa-f]{2})\",\"name\":\"constant.character.escape\"},{\"begin\":\"\\\\\\\\\\\\\\\\#\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.interpolation.begin\"}},\"contentName\":\"source.cue.embedded\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.interpolation.end\"}},\"name\":\"meta.interpolation\",\"patterns\":[{\"include\":\"#whitespace\"},{\"include\":\"#expression\"},{\"include\":\"#invalid_in_parens\"}]},{\"match\":\"\\\\\\\\\\\\\\\\#.\",\"name\":\"invalid.illegal\"}]},{\"begin\":\"\\\\\"\\\\\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin\"}},\"contentName\":\"string.quoted.double-multiline\",\"end\":\"\\\\\"\\\\\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end\"}},\"name\":\"meta.string\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(?:\\\\\"\\\\\"\\\\\"|/|\\\\\\\\\\\\\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})\",\"name\":\"constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2})\",\"name\":\"invalid.illegal\"},{\"begin\":\"\\\\\\\\\\\\\\\\\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.interpolation.begin\"}},\"contentName\":\"source.cue.embedded\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.interpolation.end\"}},\"name\":\"meta.interpolation\",\"patterns\":[{\"include\":\"#whitespace\"},{\"include\":\"#expression\"},{\"include\":\"#invalid_in_parens\"}]},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"invalid.illegal\"}]},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin\"}},\"contentName\":\"string.quoted.double\",\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end\"}},\"name\":\"meta.string\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(?:\\\\\"|/|\\\\\\\\\\\\\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})\",\"name\":\"constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2})\",\"name\":\"invalid.illegal\"},{\"begin\":\"\\\\\\\\\\\\\\\\\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.interpolation.begin\"}},\"contentName\":\"source.cue.embedded\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.interpolation.end\"}},\"name\":\"meta.interpolation\",\"patterns\":[{\"include\":\"#whitespace\"},{\"include\":\"#expression\"},{\"include\":\"#invalid_in_parens\"}]},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"invalid.illegal\"}]},{\"begin\":\"'''\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin\"}},\"contentName\":\"string.quoted.single-multiline\",\"end\":\"'''\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end\"}},\"name\":\"meta.string\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(?:'''|/|\\\\\\\\\\\\\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})\",\"name\":\"constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2})\",\"name\":\"constant.character.escape\"},{\"begin\":\"\\\\\\\\\\\\\\\\\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.interpolation.begin\"}},\"contentName\":\"source.cue.embedded\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.interpolation.end\"}},\"name\":\"meta.interpolation\",\"patterns\":[{\"include\":\"#whitespace\"},{\"include\":\"#expression\"},{\"include\":\"#invalid_in_parens\"}]},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"invalid.illegal\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin\"}},\"contentName\":\"string.quoted.single\",\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end\"}},\"name\":\"meta.string\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(?:'|/|\\\\\\\\\\\\\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})\",\"name\":\"constant.character.escape\"},{\"match\":\"\\\\\\\\\\\\\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2})\",\"name\":\"constant.character.escape\"},{\"begin\":\"\\\\\\\\\\\\\\\\\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.interpolation.begin\"}},\"contentName\":\"source.cue.embedded\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.interpolation.end\"}},\"name\":\"meta.interpolation\",\"patterns\":[{\"include\":\"#whitespace\"},{\"include\":\"#expression\"},{\"include\":\"#invalid_in_parens\"}]},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"invalid.illegal\"}]},{\"begin\":\"\\`\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin\"}},\"contentName\":\"string.quoted.backtick\",\"end\":\"\\`\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end\"}},\"name\":\"meta.string\"}]},\"whitespace\":{\"match\":\"[ \\\\\\\\t\\\\\\\\r\\\\\\\\n]+\"}},\"scopeName\":\"source.cue\"}`)),e=[n];export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Du268qiB.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Ballerina\",\"fileTypes\":[\"bal\"],\"name\":\"ballerina\",\"patterns\":[{\"include\":\"#statements\"}],\"repository\":{\"access-modifier\":{\"patterns\":[{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(public|private)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.modifier.ballerina keyword.other.ballerina\"}]},\"annotationAttachment\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.decorator.ballerina\"},\"2\":{\"name\":\"support.type.ballerina\"},\"3\":{\"name\":\"punctuation.decorator.ballerina\"},\"4\":{\"name\":\"support.type.ballerina\"}},\"match\":\"(@)((?:[_$[:alpha:]][_$[:alnum:]]*))\\\\\\\\s*(:?)\\\\\\\\s*((?:[_$[:alpha:]][_$[:alnum:]]*)?)\"}]},\"annotationDefinition\":{\"patterns\":[{\"begin\":\"\\\\\\\\bannotation\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ballerina\"}},\"end\":\";\",\"patterns\":[{\"include\":\"#code\"}]}]},\"array-literal\":{\"begin\":\"\\\\\\\\s*(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.brace.square.ballerina\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.square.ballerina\"}},\"name\":\"meta.array.literal.ballerina\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"booleans\":{\"patterns\":[{\"match\":\"\\\\\\\\b(true|false)\\\\\\\\b\",\"name\":\"constant.language.boolean.ballerina\"}]},\"butClause\":{\"patterns\":[{\"begin\":\"=>\",\"beginCaptures\":{\"0\":{\"name\":\"meta.arrow.ballerina storage.type.function.arrow.ballerina\"}},\"end\":\",|(?=\\\\\\\\})\",\"patterns\":[{\"include\":\"#code\"}]}]},\"butExp\":{\"patterns\":[{\"begin\":\"\\\\\\\\bbut\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ballerina\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ballerina.documentation\"}},\"patterns\":[{\"include\":\"#butExpBody\"},{\"include\":\"#comment\"}]}]},\"butExpBody\":{\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ballerina.documentation\"}},\"end\":\"(?=\\\\\\\\})\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ballerina.documentation\"}},\"patterns\":[{\"include\":\"#parameter\"},{\"include\":\"#butClause\"},{\"include\":\"#comment\"}]}]},\"call\":{\"patterns\":[{\"match\":\"(?:\\\\\\\\\\')?([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?=\\\\\\\\()\",\"name\":\"entity.name.function.ballerina\"}]},\"callableUnitBody\":{\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ballerina\"}},\"end\":\"(?=\\\\\\\\})\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ballerina\"}},\"patterns\":[{\"include\":\"#workerDef\"},{\"include\":\"#service-decl\"},{\"include\":\"#objectDec\"},{\"include\":\"#function-defn\"},{\"include\":\"#forkStatement\"},{\"include\":\"#code\"}]}]},\"class-body\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ballerina\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ballerina\"}},\"name\":\"meta.class.body.ballerina\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#mdDocumentation\"},{\"include\":\"#function-defn\"},{\"include\":\"#var-expr\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#access-modifier\"},{\"include\":\"#keywords\"},{\"begin\":\"(?<=:)\\\\\\\\s*\",\"end\":\"(?=\\\\\\\\s|[;),}\\\\\\\\]:\\\\\\\\-\\\\\\\\+]|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\\\\\\\b))\"},{\"include\":\"#decl-block\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#punctuation-semicolon\"}]},\"class-defn\":{\"begin\":\"(\\\\\\\\s+)(class\\\\\\\\b)|^class\\\\\\\\b(?=\\\\\\\\s+|/[/*])\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.class.ballerina keyword.other.ballerina\"}},\"end\":\"(?<=\\\\\\\\})\",\"name\":\"meta.class.ballerina\",\"patterns\":[{\"include\":\"#keywords\"},{\"captures\":{\"0\":{\"name\":\"entity.name.type.class.ballerina\"}},\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\"},{\"include\":\"#class-body\"}]},\"code\":{\"patterns\":[{\"include\":\"#booleans\"},{\"include\":\"#matchStatement\"},{\"include\":\"#butExp\"},{\"include\":\"#xml\"},{\"include\":\"#stringTemplate\"},{\"include\":\"#keywords\"},{\"include\":\"#strings\"},{\"include\":\"#comment\"},{\"include\":\"#mdDocumentation\"},{\"include\":\"#annotationAttachment\"},{\"include\":\"#numbers\"},{\"include\":\"#maps\"},{\"include\":\"#paranthesised\"},{\"include\":\"#paranthesisedBracket\"},{\"include\":\"#regex\"}]},\"comment\":{\"patterns\":[{\"match\":\"\\\\\\\\/\\\\\\\\/.*\",\"name\":\"comment.ballerina\"}]},\"constrainType\":{\"patterns\":[{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.begin.ballerina\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.ballerina\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#constrainType\"},{\"match\":\"\\\\\\\\b([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\b\",\"name\":\"storage.type.ballerina\"}]}]},\"control-statement\":{\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(return)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.flow.ballerina\"}},\"end\":\"(?=[;}]|$|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#expression\"}]},{\"include\":\"#for-loop\"},{\"include\":\"#if-statement\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.conditional.ballerina\"}]},\"decl-block\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ballerina\"}},\"end\":\"(?=\\\\\\\\} external;)|(\\\\\\\\})\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ballerina\"}},\"name\":\"meta.block.ballerina\",\"patterns\":[{\"include\":\"#statements\"},{\"include\":\"#mdDocumentation\"}]},\"declaration\":{\"patterns\":[{\"include\":\"#import-declaration\"},{\"include\":\"#var-expr\"},{\"include\":\"#typeDefinition\"},{\"include\":\"#function-defn\"},{\"include\":\"#service-decl\"},{\"include\":\"#class-defn\"},{\"include\":\"#enum-decl\"},{\"include\":\"#source\"},{\"include\":\"#keywords\"}]},\"defaultValue\":{\"patterns\":[{\"begin\":\"[=:]\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.ballerina\"}},\"end\":\"(?=[,)])\",\"patterns\":[{\"include\":\"#code\"}]}]},\"defaultWithParentheses\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ballerina\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ballerina\"}}}]},\"documentationBody\":{\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ballerina.documentation\"}},\"end\":\"(?=\\\\\\\\})\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ballerina.documentation\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.ballerina.documentation\"},\"2\":{\"name\":\"keyword.other.ballerina.documentation\"},\"3\":{\"name\":\"variable.parameter.ballerina.documentation\"},\"4\":{\"name\":\"keyword.other.ballerina.documentation\"}},\"match\":\"(P|R|T|F|V)({{)(.*)(}})\"},{\"begin\":\"\\\\\\\\```\",\"end\":\"\\\\\\\\```\",\"name\":\"comment.block.code.ballerina.documentation\"},{\"begin\":\"\\\\\\\\``\",\"end\":\"\\\\\\\\``\",\"name\":\"comment.block.code.ballerina.documentation\"},{\"begin\":\"\\\\\\\\`\",\"end\":\"\\\\\\\\`\",\"name\":\"comment.block.code.ballerina.documentation\"},{\"match\":\".\",\"name\":\"comment.block.ballerina.documentation\"}]}]},\"documentationDef\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(?:documentation|deprecated)\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ballerina\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"delimiter.curly\"}},\"patterns\":[{\"include\":\"#documentationBody\"},{\"include\":\"#comment\"}]}]},\"enum-decl\":{\"begin\":\"(?:\\\\\\\\b(const)\\\\\\\\s+)?\\\\\\\\b(enum)\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.ballerina\"},\"2\":{\"name\":\"keyword.other.ballerina\"},\"3\":{\"name\":\"entity.name.type.enum.ballerina\"}},\"end\":\"(?<=\\\\\\\\})\",\"name\":\"meta.enum.declaration.ballerina\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#mdDocumentation\"},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ballerina\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ballerina\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#mdDocumentation\"},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"beginCaptures\":{\"0\":{\"name\":\"variable.other.enummember.ballerina\"}},\"end\":\"(?=,|\\\\\\\\}|$)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#variable-initializer\"}]},{\"begin\":\"(?=((\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\])))\",\"end\":\"(?=,|\\\\\\\\}|$)\",\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#array-literal\"},{\"include\":\"#comment\"},{\"include\":\"#variable-initializer\"}]},{\"include\":\"#punctuation-comma\"}]}]},\"errorDestructure\":{\"patterns\":[{\"begin\":\"error\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.ballerina\"}},\"end\":\"(?==>)\",\"patterns\":[{\"include\":\"#code\"}]}]},\"expression\":{\"patterns\":[{\"include\":\"#keywords\"},{\"include\":\"#expressionWithoutIdentifiers\"},{\"include\":\"#identifiers\"},{\"include\":\"#regex\"}]},\"expression-operators\":{\"patterns\":[{\"match\":\"\\\\\\\\*=|(?<!\\\\\\\\()/=|%=|\\\\\\\\+=|\\\\\\\\-=\",\"name\":\"keyword.operator.assignment.compound.ballerina\"},{\"match\":\"\\\\\\\\&=|\\\\\\\\^=|<<=|>>=|>>>=|\\\\\\\\|=\",\"name\":\"keyword.operator.assignment.compound.bitwise.ballerina\"},{\"match\":\"<<|>>>|>>\",\"name\":\"keyword.operator.bitwise.shift.ballerina\"},{\"match\":\"===|!==|==|!=\",\"name\":\"keyword.operator.comparison.ballerina\"},{\"match\":\"<=|>=|<>|<|>\",\"name\":\"keyword.operator.relational.ballerina\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.logical.ballerina\"},\"2\":{\"name\":\"keyword.operator.assignment.compound.ballerina\"},\"3\":{\"name\":\"keyword.operator.arithmetic.ballerina\"}},\"match\":\"(?<=[_$[:alnum:]])(\\\\\\\\!)\\\\\\\\s*(?:(/=)|(?:(/)(?![/*])))\"},{\"match\":\"\\\\\\\\!|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\?\\\\\\\\?\",\"name\":\"keyword.operator.logical.ballerina\"},{\"match\":\"\\\\\\\\&|~|\\\\\\\\^|\\\\\\\\|\",\"name\":\"keyword.operator.bitwise.ballerina\"},{\"match\":\"\\\\\\\\=\",\"name\":\"keyword.operator.assignment.ballerina\"},{\"match\":\"--\",\"name\":\"keyword.operator.decrement.ballerina\"},{\"match\":\"\\\\\\\\+\\\\\\\\+\",\"name\":\"keyword.operator.increment.ballerina\"},{\"match\":\"%|\\\\\\\\*|/|-|\\\\\\\\+\",\"name\":\"keyword.operator.arithmetic.ballerina\"}]},\"expressionWithoutIdentifiers\":{\"patterns\":[{\"include\":\"#xml\"},{\"include\":\"#string\"},{\"include\":\"#stringTemplate\"},{\"include\":\"#comment\"},{\"include\":\"#object-literal\"},{\"include\":\"#ternary-expression\"},{\"include\":\"#expression-operators\"},{\"include\":\"#literal\"},{\"include\":\"#paranthesised\"},{\"include\":\"#regex\"}]},\"flags-on-off\":{\"name\":\"meta.flags.regexp.ballerina\",\"patterns\":[{\"begin\":\"(\\\\\\\\??)([imsx]*)(-?)([imsx]*)(:)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.other.non-capturing-group-begin.regexp.ballerina\"},\"2\":{\"name\":\"keyword.other.non-capturing-group.flags-on.regexp.ballerina\"},\"3\":{\"name\":\"punctuation.other.non-capturing-group.off.regexp.ballerina\"},\"4\":{\"name\":\"keyword.other.non-capturing-group.flags-off.regexp.ballerina\"},\"5\":{\"name\":\"punctuation.other.non-capturing-group-end.regexp.ballerina\"}},\"end\":\"()\",\"name\":\"constant.other.flag.regexp.ballerina\",\"patterns\":[{\"include\":\"#regexp\"},{\"include\":\"#template-substitution-element\"}]}]},\"for-loop\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))foreach\\\\\\\\s*\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.loop.ballerina\"},\"1\":{\"name\":\"support.type.primitive.ballerina\"}},\"end\":\"(?=\\\\\\\\{)\",\"patterns\":[{\"match\":\"\\\\\\\\bin\\\\\\\\b\",\"name\":\"keyword.other.ballerina\"},{\"include\":\"#identifiers\"},{\"include\":\"#comment\"},{\"include\":\"#var-expr\"},{\"include\":\"#expression\"}]},\"forkBody\":{\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ballerina\"}},\"end\":\"(?=\\\\\\\\})\",\"patterns\":[{\"include\":\"#workerDef\"}]}]},\"forkStatement\":{\"patterns\":[{\"begin\":\"\\\\\\\\bfork\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.ballerina\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ballerina\"}},\"patterns\":[{\"include\":\"#forkBody\"}]}]},\"function-body\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#functionParameters\"},{\"include\":\"#decl-block\"},{\"begin\":\"\\\\\\\\=>\",\"beginCaptures\":{\"0\":{\"name\":\"meta.arrow.ballerina storage.type.function.arrow.ballerina\"}},\"end\":\"(?=\\\\\\\\;)|(?=\\\\\\\\,)|(?=)(?=\\\\\\\\);)\",\"name\":\"meta.block.ballerina\",\"patterns\":[{\"include\":\"#statements\"},{\"include\":\"#punctuation-comma\"}]},{\"match\":\"\\\\\\\\*\",\"name\":\"keyword.generator.asterisk.ballerina\"}]},\"function-defn\":{\"begin\":\"(?:(public|private)\\\\\\\\s+)?(function\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.ballerina\"},\"2\":{\"name\":\"keyword.other.ballerina\"}},\"end\":\"(?<=\\\\\\\\;)|(?<=\\\\\\\\})|(?<=\\\\\\\\,)|(?=)(?=\\\\\\\\);)\",\"name\":\"meta.function.ballerina\",\"patterns\":[{\"match\":\"\\\\\\\\bexternal\\\\\\\\b\",\"name\":\"keyword.ballerina\"},{\"include\":\"#stringTemplate\"},{\"include\":\"#annotationAttachment\"},{\"include\":\"#functionReturns\"},{\"include\":\"#functionName\"},{\"include\":\"#functionParameters\"},{\"include\":\"#punctuation-semicolon\"},{\"include\":\"#function-body\"},{\"include\":\"#regex\"}]},\"function-parameters-body\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#numbers\"},{\"include\":\"#string\"},{\"include\":\"#annotationAttachment\"},{\"include\":\"#recordLiteral\"},{\"include\":\"#keywords\"},{\"include\":\"#parameter-name\"},{\"include\":\"#array-literal\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#identifiers\"},{\"include\":\"#regex\"},{\"match\":\"\\\\\\\\,\",\"name\":\"punctuation.separator.parameter.ballerina\"}]},\"functionName\":{\"patterns\":[{\"match\":\"\\\\\\\\bfunction\\\\\\\\b\",\"name\":\"keyword.other.ballerina\"},{\"include\":\"#type-primitive\"},{\"include\":\"#self-literal\"},{\"include\":\"#string\"},{\"captures\":{\"2\":{\"name\":\"variable.language.this.ballerina\"},\"3\":{\"name\":\"keyword.other.ballerina\"},\"4\":{\"name\":\"support.type.primitive.ballerina\"},\"5\":{\"name\":\"storage.type.ballerina\"},\"6\":{\"name\":\"meta.definition.function.ballerina entity.name.function.ballerina\"}},\"match\":\"\\\\\\\\s+(\\\\\\\\b(self)|\\\\\\\\b(is|new|isolated|null|function|in)\\\\\\\\b|(string|int|boolean|float|byte|decimal|json|xml|anydata)\\\\\\\\b|\\\\\\\\b(readonly|error|map)\\\\\\\\b|([_$[:alpha:]][_$[:alnum:]]*))\"}]},\"functionParameters\":{\"begin\":\"\\\\\\\\(|\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.begin.ballerina\"}},\"end\":\"\\\\\\\\)|\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.ballerina\"}},\"name\":\"meta.parameters.ballerina\",\"patterns\":[{\"include\":\"#function-parameters-body\"}]},\"functionReturns\":{\"begin\":\"\\\\\\\\s*(returns)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.ballerina\"}},\"end\":\"(?==>)|(\\\\\\\\=)|(?=\\\\\\\\{)|(\\\\\\\\))|(?=\\\\\\\\;)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.ballerina\"}},\"name\":\"meta.type.function.return.ballerina\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#numbers\"},{\"include\":\"#keywords\"},{\"include\":\"#type-primitive\"},{\"captures\":{\"1\":{\"name\":\"support.type.primitive.ballerina\"}},\"match\":\"\\\\\\\\s*\\\\\\\\b(var)(?=\\\\\\\\s+|\\\\\\\\[|\\\\\\\\?)\"},{\"match\":\"\\\\\\\\|\",\"name\":\"keyword.operator.ballerina\"},{\"match\":\"\\\\\\\\?\",\"name\":\"keyword.operator.optional.ballerina\"},{\"include\":\"#type-annotation\"},{\"include\":\"#type-tuple\"},{\"include\":\"#keywords\"},{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"variable.other.readwrite.ballerina\"}]},\"functionType\":{\"patterns\":[{\"begin\":\"\\\\\\\\bfunction\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ballerina\"}},\"end\":\"(?=\\\\\\\\,)|(?=\\\\\\\\|)|(?=\\\\\\\\:)|(?==>)|(?=\\\\\\\\))|(?=\\\\\\\\])\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#functionTypeParamList\"},{\"include\":\"#functionTypeReturns\"}]}]},\"functionTypeParamList\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"delimiter.parenthesis\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"delimiter.parenthesis\"}},\"patterns\":[{\"match\":\"public\",\"name\":\"keyword\"},{\"include\":\"#annotationAttachment\"},{\"include\":\"#recordLiteral\"},{\"include\":\"#record\"},{\"include\":\"#objectDec\"},{\"include\":\"#functionType\"},{\"include\":\"#constrainType\"},{\"include\":\"#parameterTuple\"},{\"include\":\"#functionTypeType\"},{\"include\":\"#comment\"}]}]},\"functionTypeReturns\":{\"patterns\":[{\"begin\":\"\\\\\\\\breturns\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword\"}},\"end\":\"(?=\\\\\\\\,)|(?:\\\\\\\\|)|(?=\\\\\\\\])|(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#functionTypeReturnsParameter\"},{\"include\":\"#comment\"}]}]},\"functionTypeReturnsParameter\":{\"patterns\":[{\"begin\":\"((?=record|object|function)|(?:[_$[:alpha:]][_$[:alnum:]]*))\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.ballerina\"}},\"end\":\"(?=\\\\\\\\,)|(?:\\\\\\\\|)|(?:\\\\\\\\:)|(?==>)|(?=\\\\\\\\))|(?=\\\\\\\\])\",\"patterns\":[{\"include\":\"#record\"},{\"include\":\"#objectDec\"},{\"include\":\"#functionType\"},{\"include\":\"#constrainType\"},{\"include\":\"#defaultValue\"},{\"include\":\"#comment\"},{\"include\":\"#parameterTuple\"},{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"default.variable.parameter.ballerina\"}]}]},\"functionTypeType\":{\"patterns\":[{\"begin\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.ballerina\"}},\"end\":\"(?=\\\\\\\\,)|(?:\\\\\\\\|)|(?=\\\\\\\\])|(?=\\\\\\\\))\"}]},\"identifiers\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.ballerina\"},\"2\":{\"name\":\"punctuation.accessor.optional.ballerina\"},\"3\":{\"name\":\"entity.name.function.ballerina\"}},\"match\":\"(?:(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\\\\\\\s*=\\\\\\\\s*((((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((((<\\\\\\\\s*$)|((<\\\\\\\\s*([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|((<\\\\\\\\s*([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))))\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.ballerina\"},\"2\":{\"name\":\"punctuation.accessor.optional.ballerina\"},\"3\":{\"name\":\"entity.name.function.ballerina\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?=\\\\\\\\()\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.ballerina\"},\"2\":{\"name\":\"punctuation.accessor.optional.ballerina\"},\"3\":{\"name\":\"variable.other.property.ballerina\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)\"},{\"include\":\"#type-primitive\"},{\"include\":\"#self-literal\"},{\"match\":\"\\\\\\\\b(check|foreach|if|checkpanic)\\\\\\\\b\",\"name\":\"keyword.control.ballerina\"},{\"include\":\"#call\"},{\"match\":\"\\\\\\\\b(var)\\\\\\\\b\",\"name\":\"support.type.primitive.ballerina\"},{\"captures\":{\"1\":{\"name\":\"variable.other.readwrite.ballerina\"},\"3\":{\"name\":\"punctuation.accessor.ballerina\"},\"4\":{\"name\":\"entity.name.function.ballerina\"},\"5\":{\"name\":\"punctuation.definition.parameters.begin.ballerina\"},\"6\":{\"name\":\"punctuation.definition.parameters.end.ballerina\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)((\\\\\\\\.)([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\()(\\\\\\\\)))?\"},{\"match\":\"(\\\\\\\\\\')([_$[:alpha:]][_$[:alnum:]]*)\",\"name\":\"variable.other.property.ballerina\"},{\"include\":\"#type-annotation\"}]},\"if-statement\":{\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?=\\\\\\\\bif\\\\\\\\b\\\\\\\\s*(?!\\\\\\\\{))\",\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(if)\\\\\\\\s*(\\\\\\\\()?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.conditional.ballerina\"},\"2\":{\"name\":\"meta.brace.round.ballerina\"}},\"end\":\"(\\\\\\\\))|(?=\\\\\\\\{)\",\"endCaptures\":{\"1\":{\"name\":\"meta.brace.round.ballerina\"}},\"patterns\":[{\"include\":\"#decl-block\"},{\"include\":\"#keywords\"},{\"include\":\"#identifiers\"},{\"include\":\"#type-primitive\"},{\"include\":\"#xml\"},{\"include\":\"#string\"},{\"include\":\"#stringTemplate\"},{\"include\":\"#comment\"},{\"include\":\"#ternary-expression\"},{\"include\":\"#expression-operators\"},{\"include\":\"#literal\"},{\"include\":\"#paranthesised\"},{\"include\":\"#regex\"}]},{\"begin\":\"(?<=\\\\\\\\))(?=\\\\\\\\s|\\\\\\\\=)\",\"end\":\"(?=\\\\\\\\{)\",\"patterns\":[{\"include\":\"#literal\"},{\"include\":\"#keywords\"}]},{\"include\":\"#decl-block\"}]}]},\"import-clause\":{\"patterns\":[{\"include\":\"#comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.default.ballerina\"},\"3\":{\"name\":\"variable.other.readwrite.ballerina meta.import.module.ballerina\"},\"5\":{\"name\":\"keyword.control.default.ballerina\"},\"6\":{\"name\":\"variable.other.readwrite.alias.ballerina\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bdefault)|(\\\\\\\\*)|(\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*))\"},{\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"name\":\"variable.other.readwrite.alias.ballerina\"}]},\"import-declaration\":{\"begin\":\"\\\\\\\\bimport\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.import.ballerina\"}},\"end\":\"\\\\\\\\;\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.statement.ballerina\"}},\"name\":\"meta.import.ballerina\",\"patterns\":[{\"match\":\"(\\\\\\\\\\')([_$[:alpha:]][_$[:alnum:]]*)\",\"name\":\"variable.other.property.ballerina\"},{\"include\":\"#keywords\"},{\"include\":\"#comment\"},{\"include\":\"#import-clause\"},{\"include\":\"#punctuation-accessor\"}]},\"keywords\":{\"patterns\":[{\"match\":\"\\\\\\\\b(fork|join|while|returns|transaction|transactional|retry|commit|rollback|typeof|enum|wait|match)\\\\\\\\b\",\"name\":\"keyword.control.ballerina\"},{\"match\":\"\\\\\\\\b(return|break|continue|check|checkpanic|panic|trap|from|where)\\\\\\\\b\",\"name\":\"keyword.control.flow.ballerina\"},{\"match\":\"\\\\\\\\b(public|private|external|return|record|object|remote|abstract|client|true|false|fail|import|version)\\\\\\\\b\",\"name\":\"keyword.other.ballerina\"},{\"match\":\"\\\\\\\\b(as|on|function|resource|listener|const|final|is|null|lock|annotation|source|worker|parameter|field|isolated|in)\\\\\\\\b\",\"name\":\"keyword.other.ballerina\"},{\"match\":\"\\\\\\\\b(xmlns|table|key|let|new|select|start|flush|default|do|base16|base64|conflict)\\\\\\\\b\",\"name\":\"keyword.other.ballerina\"},{\"match\":\"\\\\\\\\b(limit|outer|equals|order|by|ascending|descending|class|configurable|variable|module|service|group|collect)\\\\\\\\b\",\"name\":\"keyword.other.ballerina\"},{\"match\":\"(=>)\",\"name\":\"meta.arrow.ballerina storage.type.function.arrow.ballerina\"},{\"match\":\"(!|%|\\\\\\\\+|\\\\\\\\-|~=|===|==|=|!=|!==|<|>|&|\\\\\\\\||\\\\\\\\?:|\\\\\\\\.\\\\\\\\.\\\\\\\\.|<=|>=|&&|\\\\\\\\|\\\\\\\\||~|>>|>>>)\",\"name\":\"keyword.operator.ballerina\"},{\"include\":\"#types\"},{\"include\":\"#self-literal\"},{\"include\":\"#type-primitive\"}]},\"literal\":{\"patterns\":[{\"include\":\"#booleans\"},{\"include\":\"#numbers\"},{\"include\":\"#strings\"},{\"include\":\"#maps\"},{\"include\":\"#self-literal\"},{\"include\":\"#array-literal\"}]},\"maps\":{\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"#code\"}]}]},\"matchBindingPattern\":{\"patterns\":[{\"begin\":\"var\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.ballerina\"}},\"end\":\"(?==>)|,\",\"patterns\":[{\"include\":\"#errorDestructure\"},{\"include\":\"#code\"},{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"variable.parameter.ballerina\"}]}]},\"matchStatement\":{\"patterns\":[{\"begin\":\"\\\\\\\\bmatch\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.ballerina\"}},\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"#matchStatementBody\"},{\"include\":\"#comment\"},{\"include\":\"#code\"}]}]},\"matchStatementBody\":{\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ballerina.documentation\"}},\"end\":\"(?=\\\\\\\\})\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ballerina.documentation\"}},\"patterns\":[{\"include\":\"#literal\"},{\"include\":\"#matchBindingPattern\"},{\"include\":\"#matchStatementPatternClause\"},{\"include\":\"#comment\"},{\"include\":\"#code\"}]}]},\"matchStatementPatternClause\":{\"patterns\":[{\"begin\":\"=>\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ballerina\"}},\"end\":\"((\\\\\\\\})|;|,)\",\"patterns\":[{\"include\":\"#callableUnitBody\"},{\"include\":\"#code\"}]}]},\"mdDocumentation\":{\"begin\":\"\\\\\\\\#\",\"end\":\"[\\\\\\\\r\\\\\\\\n]+\",\"name\":\"comment.mddocs.ballerina\",\"patterns\":[{\"include\":\"#mdDocumentationReturnParamDescription\"},{\"include\":\"#mdDocumentationParamDescription\"}]},\"mdDocumentationParamDescription\":{\"patterns\":[{\"begin\":\"(\\\\\\\\+\\\\\\\\s+)(\\\\\\\\\\'?[_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\s*\\\\\\\\-\\\\\\\\s+)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.ballerina\"},\"2\":{\"name\":\"variable.other.readwrite.ballerina\"},\"3\":{\"name\":\"keyword.operator.ballerina\"}},\"end\":\"(?=[^#\\\\\\\\r\\\\\\\\n]|(?:# *?\\\\\\\\+))\",\"patterns\":[{\"match\":\"#.*\",\"name\":\"comment.mddocs.paramdesc.ballerina\"}]}]},\"mdDocumentationReturnParamDescription\":{\"patterns\":[{\"begin\":\"(#)(?: *?)(\\\\\\\\+)(?: *)(return)(?: *)(-)?(.*)\",\"beginCaptures\":{\"1\":{\"name\":\"comment.mddocs.ballerina\"},\"2\":{\"name\":\"keyword.ballerina\"},\"3\":{\"name\":\"keyword.ballerina\"},\"4\":{\"name\":\"keyword.ballerina\"},\"5\":{\"name\":\"comment.mddocs.returnparamdesc.ballerina\"}},\"end\":\"(?=[^#\\\\\\\\r\\\\\\\\n]|(?:# *?\\\\\\\\+))\",\"patterns\":[{\"match\":\"#.*\",\"name\":\"comment.mddocs.returnparamdesc.ballerina\"}]}]},\"multiType\":{\"patterns\":[{\"match\":\"(?<=\\\\\\\\|)([_$[:alpha:]][_$[:alnum:]]*)|([_$[:alpha:]][_$[:alnum:]]*)(?=\\\\\\\\|)\",\"name\":\"storage.type.ballerina\"},{\"match\":\"\\\\\\\\|\",\"name\":\"keyword.operator.ballerina\"}]},\"numbers\":{\"patterns\":[{\"match\":\"\\\\\\\\b0[xX][\\\\\\\\da-fA-F]+\\\\\\\\b|\\\\\\\\b\\\\\\\\d+(?:\\\\\\\\.(?:\\\\\\\\d+|$))?\",\"name\":\"constant.numeric.decimal.ballerina\"}]},\"object-literal\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ballerina\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ballerina\"}},\"name\":\"meta.objectliteral.ballerina\",\"patterns\":[{\"include\":\"#object-member\"},{\"include\":\"#punctuation-comma\"}]},\"object-member\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#function-defn\"},{\"include\":\"#literal\"},{\"include\":\"#keywords\"},{\"include\":\"#expression\"},{\"begin\":\"(?=\\\\\\\\[)\",\"end\":\"(?=:)|((?<=[\\\\\\\\]])(?=\\\\\\\\s*[\\\\\\\\(\\\\\\\\<]))\",\"name\":\"meta.object.member.ballerina meta.object-literal.key.ballerina\",\"patterns\":[{\"include\":\"#comment\"}]},{\"begin\":\"(?=[\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`])\",\"end\":\"(?=:)|((?<=[\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`])(?=((\\\\\\\\s*[\\\\\\\\(\\\\\\\\<,}])|(\\\\\\\\n*})|(\\\\\\\\s+(as)\\\\\\\\s+))))\",\"name\":\"meta.object.member.ballerina meta.object-literal.key.ballerina\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"}]},{\"begin\":\"(?=(\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$)))\",\"end\":\"(?=:)|(?=\\\\\\\\s*([\\\\\\\\(\\\\\\\\<,}])|(\\\\\\\\s+as\\\\\\\\s+))\",\"name\":\"meta.object.member.ballerina meta.object-literal.key.ballerina\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#numbers\"}]},{\"begin\":\"(?<=[\\\\\\\\]\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`])(?=\\\\\\\\s*[\\\\\\\\(\\\\\\\\<])\",\"end\":\"(?=\\\\\\\\}|;|,)|(?<=\\\\\\\\})\",\"name\":\"meta.method.declaration.ballerina\",\"patterns\":[{\"include\":\"#function-body\"}]},{\"captures\":{\"0\":{\"name\":\"meta.object-literal.key.ballerina\"},\"1\":{\"name\":\"constant.numeric.decimal.ballerina\"}},\"match\":\"(?![_$[:alpha:]])([[:digit:]]+)\\\\\\\\s*(?=(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*:)\",\"name\":\"meta.object.member.ballerina\"},{\"captures\":{\"0\":{\"name\":\"meta.object-literal.key.ballerina\"},\"1\":{\"name\":\"entity.name.function.ballerina\"}},\"match\":\"(?:([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?=(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*:(\\\\\\\\s*\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/)*\\\\\\\\s*((((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((((<\\\\\\\\s*$)|((<\\\\\\\\s*([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|((<\\\\\\\\s*([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\\\'([^\\\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\`([^\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>))))))\",\"name\":\"meta.object.member.ballerina\"},{\"captures\":{\"0\":{\"name\":\"meta.object-literal.key.ballerina\"}},\"match\":\"(?:[_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?=(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*:)\",\"name\":\"meta.object.member.ballerina\"},{\"begin\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.spread.ballerina\"}},\"end\":\"(?=,|\\\\\\\\})\",\"name\":\"meta.object.member.ballerina\",\"patterns\":[{\"include\":\"#expression\"}]},{\"captures\":{\"1\":{\"name\":\"variable.other.readwrite.ballerina\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?=,|\\\\\\\\}|$|\\\\\\\\/\\\\\\\\/|\\\\\\\\/\\\\\\\\*)\",\"name\":\"meta.object.member.ballerina\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.as.ballerina\"},\"2\":{\"name\":\"storage.modifier.ballerina\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(as)\\\\\\\\s+(const)(?=\\\\\\\\s*([,}]|$))\",\"name\":\"meta.object.member.ballerina\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(as)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.as.ballerina\"}},\"end\":\"(?=[;),}\\\\\\\\]:?\\\\\\\\-\\\\\\\\+\\\\\\\\>]|\\\\\\\\|\\\\\\\\||\\\\\\\\&\\\\\\\\&|\\\\\\\\!\\\\\\\\=\\\\\\\\=|$|^|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(as)\\\\\\\\s+))\",\"name\":\"meta.object.member.ballerina\"},{\"begin\":\"(?=[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=)\",\"end\":\"(?=,|\\\\\\\\}|$|\\\\\\\\/\\\\\\\\/|\\\\\\\\/\\\\\\\\*)\",\"name\":\"meta.object.member.ballerina\",\"patterns\":[{\"include\":\"#expression\"}]}]},\"objectDec\":{\"patterns\":[{\"begin\":\"\\\\\\\\bobject\\\\\\\\b(?!:)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.ballerina\"}},\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#decl-block\"}]}]},\"objectInitBody\":{\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ballerina\"}},\"end\":\"(?=\\\\\\\\})\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ballerina\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#code\"}]}]},\"objectInitParameters\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.begin.ballerina\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.ballerina\"}},\"patterns\":[{\"include\":\"#code\"},{\"match\":\"\\\\\\\\b([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\b\",\"name\":\"variable.parameter.ballerina\"}]}]},\"objectMemberFunctionDec\":{\"patterns\":[{\"begin\":\"\\\\\\\\bfunction\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ballerina\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ballerina\"}},\"patterns\":[{\"include\":\"#functionParameters\"},{\"match\":\"\\\\\\\\breturns\\\\\\\\b\",\"name\":\"keyword.ballerina\"},{\"include\":\"#code\"}]}]},\"parameter\":{\"patterns\":[{\"begin\":\"((?=record|object|function)|([_$[:alpha:]][_$[:alnum:]]*)(?=\\\\\\\\|)|(?:[_$[:alpha:]][_$[:alnum:]]*))\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.ballerina\"}},\"end\":\"(?:\\\\\\\\,)|(?:\\\\\\\\|)|(?:\\\\\\\\:)|(?==>)|(?=\\\\\\\\))|(?=\\\\\\\\])\",\"patterns\":[{\"include\":\"#parameterWithDescriptor\"},{\"include\":\"#record\"},{\"include\":\"#objectDec\"},{\"include\":\"#functionType\"},{\"include\":\"#constrainType\"},{\"include\":\"#defaultValue\"},{\"include\":\"#comment\"},{\"include\":\"#parameterTuple\"},{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"default.variable.parameter.ballerina\"}]}]},\"parameter-name\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"support.type.primitive.ballerina\"}},\"match\":\"\\\\\\\\s*\\\\\\\\b(var)\\\\\\\\s+\"},{\"captures\":{\"2\":{\"name\":\"keyword.operator.rest.ballerina\"},\"3\":{\"name\":\"support.type.primitive.ballerina\"},\"4\":{\"name\":\"keyword.other.ballerina\"},\"5\":{\"name\":\"constant.language.boolean.ballerina\"},\"6\":{\"name\":\"keyword.control.flow.ballerina\"},\"7\":{\"name\":\"storage.type.ballerina\"},\"8\":{\"name\":\"variable.parameter.ballerina\"},\"9\":{\"name\":\"variable.parameter.ballerina\"},\"10\":{\"name\":\"keyword.operator.optional.ballerina\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))\\\\\\\\s+)?(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(this)|(string|int|boolean|float|byte|decimal|json|xml|anydata)|\\\\\\\\b(is|new|isolated|null|function|in)\\\\\\\\b|\\\\\\\\b(true|false)\\\\\\\\b|\\\\\\\\b(check|foreach|if|checkpanic)\\\\\\\\b|\\\\\\\\b(readonly|error|map)\\\\\\\\b|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*(\\\\\\\\??)\"}]},\"parameterTuple\":{\"patterns\":[{\"begin\":\"\\\\\\\\[\",\"end\":\"(?=\\\\\\\\,)|(?=\\\\\\\\|)|(?=\\\\\\\\:)|(?==>)|(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#record\"},{\"include\":\"#objectDec\"},{\"include\":\"#parameterTupleType\"},{\"include\":\"#parameterTupleEnd\"},{\"include\":\"#comment\"}]}]},\"parameterTupleEnd\":{\"patterns\":[{\"begin\":\"\\\\\\\\]\",\"end\":\"(?=\\\\\\\\,)|(?=\\\\\\\\|)|(?=\\\\\\\\:)|(?==>)|(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#defaultWithParentheses\"},{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"default.variable.parameter.ballerina\"}]}]},\"parameterTupleType\":{\"patterns\":[{\"begin\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.ballerina\"}},\"end\":\"(?:\\\\\\\\,)|(?:\\\\\\\\|)|(?=\\\\\\\\])\"}]},\"parameterWithDescriptor\":{\"patterns\":[{\"begin\":\"\\\\\\\\&\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.ballerina\"}},\"end\":\"(?=\\\\\\\\,)|(?=\\\\\\\\|)|(?=\\\\\\\\))\",\"patterns\":[{\"include\":\"#parameter\"}]}]},\"parameters\":{\"patterns\":[{\"match\":\"\\\\\\\\s*(return|break|continue|check|checkpanic|panic|trap|from|where)\\\\\\\\b\",\"name\":\"keyword.control.flow.ballerina\"},{\"match\":\"\\\\\\\\s*(let|select)\\\\\\\\b\",\"name\":\"keyword.other.ballerina\"},{\"match\":\"\\\\\\\\,\",\"name\":\"punctuation.separator.parameter.ballerina\"}]},\"paranthesised\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.ballerina\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.ballerina\"}},\"name\":\"meta.brace.round.block.ballerina\",\"patterns\":[{\"include\":\"#self-literal\"},{\"include\":\"#function-defn\"},{\"include\":\"#decl-block\"},{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#parameters\"},{\"include\":\"#annotationAttachment\"},{\"include\":\"#recordLiteral\"},{\"include\":\"#stringTemplate\"},{\"include\":\"#parameter-name\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#expression\"},{\"include\":\"#regex\"}]},\"paranthesisedBracket\":{\"patterns\":[{\"begin\":\"\\\\\\\\[\",\"end\":\"\\\\\\\\]\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#code\"}]}]},\"punctuation-accessor\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.ballerina\"},\"2\":{\"name\":\"punctuation.accessor.optional.ballerina\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\"}]},\"punctuation-comma\":{\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.separator.comma.ballerina\"}]},\"punctuation-semicolon\":{\"patterns\":[{\"match\":\";\",\"name\":\"punctuation.terminator.statement.ballerina\"}]},\"record\":{\"begin\":\"\\\\\\\\brecord\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.ballerina\"}},\"end\":\"(?<=\\\\\\\\})\",\"name\":\"meta.record.ballerina\",\"patterns\":[{\"include\":\"#recordBody\"}]},\"recordBody\":{\"patterns\":[{\"include\":\"#decl-block\"}]},\"recordLiteral\":{\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ballerina\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.ballerina\"}},\"patterns\":[{\"include\":\"#code\"}]}]},\"regex\":{\"patterns\":[{\"begin\":\"(\\\\\\\\bre)(\\\\\\\\s*)(`)\",\"beginCaptures\":{\"1\":{\"name\":\"support.type.primitive.ballerina\"},\"3\":{\"name\":\"punctuation.definition.regexp.template.begin.ballerina\"}},\"end\":\"`\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.regexp.template.end.ballerina\"}},\"name\":\"regexp.template.ballerina\",\"patterns\":[{\"include\":\"#template-substitution-element\"},{\"include\":\"#regexp\"}]}]},\"regex-character-class\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[wWsSdDtrn]|\\\\\\\\.\",\"name\":\"keyword.other.character-class.regexp.ballerina\"},{\"match\":\"\\\\\\\\\\\\\\\\[^pPu]\",\"name\":\"constant.character.escape.backslash.regexp\"}]},\"regex-unicode-properties-general-category\":{\"patterns\":[{\"match\":\"(Lu|Ll|Lt|Lm|Lo|L|Mn|Mc|Me|M|Nd|Nl|No|N|Pc|Pd|Ps|Pe|Pi|Pf|Po|P|Sm|Sc|Sk|So|S|Zs|Zl|Zp|Z|Cf|Cc|Cn|Co|C)\",\"name\":\"constant.other.unicode-property-general-category.regexp.ballerina\"}]},\"regex-unicode-property-key\":{\"patterns\":[{\"begin\":\"(sc=|gc=)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.unicode-property-key.regexp.ballerina\"}},\"end\":\"()\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.other.unicode-property.end.regexp.ballerina\"}},\"name\":\"keyword.other.unicode-property-key.regexp.ballerina\",\"patterns\":[{\"include\":\"#regex-unicode-properties-general-category\"}]}]},\"regexp\":{\"patterns\":[{\"match\":\"\\\\\\\\^|\\\\\\\\$\",\"name\":\"keyword.control.assertion.regexp.ballerina\"},{\"match\":\"[?+*]|\\\\\\\\{(\\\\\\\\d+,\\\\\\\\d+|\\\\\\\\d+,|,\\\\\\\\d+|\\\\\\\\d+)\\\\\\\\}\\\\\\\\??\",\"name\":\"keyword.operator.quantifier.regexp.ballerina\"},{\"match\":\"\\\\\\\\|\",\"name\":\"keyword.operator.or.regexp.ballerina\"},{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.group.regexp.ballerina\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.group.regexp.ballerina\"}},\"name\":\"meta.group.assertion.regexp.ballerina\",\"patterns\":[{\"include\":\"#template-substitution-element\"},{\"include\":\"#regexp\"},{\"include\":\"#flags-on-off\"},{\"include\":\"#unicode-property-escape\"}]},{\"begin\":\"(\\\\\\\\[)(\\\\\\\\^)?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.character-class.start.regexp.ballerina\"},\"2\":{\"name\":\"keyword.operator.negation.regexp.ballerina\"}},\"end\":\"(\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.character-class.end.regexp.ballerina\"}},\"name\":\"constant.other.character-class.set.regexp.ballerina\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.character.numeric.regexp\"},\"2\":{\"name\":\"constant.character.escape.backslash.regexp\"},\"3\":{\"name\":\"constant.character.numeric.regexp\"},\"4\":{\"name\":\"constant.character.escape.backslash.regexp\"}},\"match\":\"(?:.|(\\\\\\\\\\\\\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\\\\\\\\\\\\\[^pPu]))\\\\\\\\-(?:[^\\\\\\\\]\\\\\\\\\\\\\\\\]|(\\\\\\\\\\\\\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\\\\\\\\\\\\\[^pPu]))\",\"name\":\"constant.other.character-class.range.regexp.ballerina\"},{\"include\":\"#regex-character-class\"},{\"include\":\"#unicode-values\"},{\"include\":\"#unicode-property-escape\"}]},{\"include\":\"#template-substitution-element\"},{\"include\":\"#regex-character-class\"},{\"include\":\"#unicode-values\"},{\"include\":\"#unicode-property-escape\"}]},\"self-literal\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.language.this.ballerina\"},\"2\":{\"name\":\"punctuation.accessor.ballerina\"},\"3\":{\"name\":\"entity.name.function.ballerina\"}},\"match\":\"(\\\\\\\\bself\\\\\\\\b)\\\\\\\\s*(.)\\\\\\\\s*([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?=\\\\\\\\()\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))self\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"variable.language.this.ballerina\"}]},\"service-decl\":{\"begin\":\"\\\\\\\\bservice\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ballerina\"}},\"end\":\"(?=;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\\\\\\\b))|(?<=\\\\\\\\})|(?<=\\\\\\\\,)\",\"name\":\"meta.service.declaration.ballerina\",\"patterns\":[{\"include\":\"#class-defn\"},{\"include\":\"#serviceName\"},{\"include\":\"#serviceOn\"},{\"include\":\"#serviceBody\"},{\"include\":\"#objectDec\"}]},\"serviceBody\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#mdDocumentation\"},{\"include\":\"#documentationDef\"},{\"include\":\"#decl-block\"}]},\"serviceName\":{\"patterns\":[{\"include\":\"#string\"},{\"match\":\"(\\\\\\\\/([_$[:alpha:]][_$[:alnum:]]*)|\\\\\\\\\\\\\"[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\\\\\\")\",\"name\":\"entity.service.path.ballerina\"}]},\"serviceOn\":{\"patterns\":[{\"begin\":\"on\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.ballerina\"}},\"end\":\"(?={)\",\"patterns\":[{\"include\":\"#code\"}]}]},\"source\":{\"patterns\":[{\"begin\":\"(\\\\\\\\bsource\\\\\\\\b)\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.ballerina\"},\"2\":{\"name\":\"variable.other.readwrite.ballerina\"}},\"end\":\"(?=\\\\\\\\,)|(?=\\\\\\\\;)\"}]},\"statements\":{\"patterns\":[{\"include\":\"#stringTemplate\"},{\"include\":\"#declaration\"},{\"include\":\"#control-statement\"},{\"include\":\"#decl-block\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-semicolon\"},{\"include\":\"#string\"},{\"include\":\"#comment\"},{\"include\":\"#mdDocumentation\"},{\"include\":\"#keywords\"},{\"include\":\"#annotationAttachment\"},{\"include\":\"#regex\"}]},\"string\":{\"patterns\":[{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ballerina\"}},\"end\":\"(\\\\\")|((?:[^\\\\\\\\\\\\\\\\\\\\\\\\n])$)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.ballerina\"},\"2\":{\"name\":\"invalid.illegal.newline.ballerina\"}},\"name\":\"string.quoted.double.ballerina\",\"patterns\":[{\"include\":\"#string-character-escape\"}]}]},\"string-character-escape\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\\\\\\\{[0-9A-Fa-f]+\\\\\\\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)\",\"name\":\"constant.character.escape.ballerina\"}]},\"stringTemplate\":{\"patterns\":[{\"begin\":\"((string)|([_$[:alpha:]][_$[:alnum:]]*))?(`)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.tagged-template.ballerina\"},\"2\":{\"name\":\"support.type.primitive.ballerina\"},\"4\":{\"name\":\"punctuation.definition.string.template.begin.ballerina\"}},\"end\":\"\\\\\\\\\\\\\\\\?`\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.template.end.ballerina\"}},\"name\":\"string.template.ballerina\",\"patterns\":[{\"include\":\"#template-substitution-element\"},{\"include\":\"#string-character-escape\"}]}]},\"strings\":{\"patterns\":[{\"begin\":\"\\\\\\\\\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"string.begin.ballerina\"}},\"end\":\"\\\\\\\\\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"string.end.ballerina\"}},\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.ballerina\"},{\"match\":\".\",\"name\":\"string\"}]}]},\"template-substitution-element\":{\"patterns\":[{\"begin\":\"\\\\\\\\$\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.begin.ballerina\"}},\"contentName\":\"meta.embedded.line.ballerina\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.end.ballerina\"}},\"name\":\"meta.template.expression.ballerina\",\"patterns\":[{\"include\":\"#expression\"}]}]},\"templateVariable\":{\"patterns\":[{\"begin\":\"\\\\\\\\${\",\"beginCaptures\":{\"0\":{\"name\":\"constant.character.escape.ballerina\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"constant.character.escape.ballerina\"}},\"patterns\":[{\"include\":\"#code\"}]}]},\"ternary-expression\":{\"begin\":\"(?!\\\\\\\\?\\\\\\\\.\\\\\\\\s*[^[:digit:]])(\\\\\\\\?)(?!\\\\\\\\?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.ternary.ballerina\"}},\"end\":\"\\\\\\\\s*\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.ternary.ballerina\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"tupleType\":{\"patterns\":[{\"begin\":\"\\\\\\\\[\",\"end\":\"(?=\\\\\\\\]|;)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#constrainType\"},{\"include\":\"#paranthesisedBracket\"},{\"match\":\"\\\\\\\\b([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\b\",\"name\":\"storage.type.ballerina\"}]}]},\"type\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#numbers\"},{\"include\":\"#type-primitive\"},{\"include\":\"#type-tuple\"}]},\"type-annotation\":{\"patterns\":[{\"begin\":\"(\\\\\\\\:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.ballerina\"}},\"end\":\"(?<![:|&])((?=$|^|[,);\\\\\\\\}\\\\\\\\]\\\\\\\\?\\\\\\\\>\\\\\\\\=>]|//)|(?==[^>])|((?<=[\\\\\\\\}>\\\\\\\\]\\\\\\\\)]|[_$[:alpha:]])\\\\\\\\s*(?=\\\\\\\\{)))(\\\\\\\\?)?\",\"name\":\"meta.type.annotation.ballerina\",\"patterns\":[{\"include\":\"#booleans\"},{\"include\":\"#stringTemplate\"},{\"include\":\"#regex\"},{\"include\":\"#self-literal\"},{\"include\":\"#xml\"},{\"include\":\"#call\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.ballerina\"},\"2\":{\"name\":\"constant.language.boolean.ballerina\"},\"3\":{\"name\":\"keyword.control.ballerina\"},\"4\":{\"name\":\"storage.type.ballerina\"},\"5\":{\"name\":\"support.type.primitive.ballerina\"},\"6\":{\"name\":\"variable.other.readwrite.ballerina\"},\"8\":{\"name\":\"punctuation.accessor.ballerina\"},\"9\":{\"name\":\"entity.name.function.ballerina\"},\"10\":{\"name\":\"punctuation.definition.parameters.begin.ballerina\"},\"11\":{\"name\":\"punctuation.definition.parameters.end.ballerina\"}},\"match\":\"\\\\\\\\b(is|new|isolated|null|function|in)\\\\\\\\b|\\\\\\\\b(true|false)\\\\\\\\b|\\\\\\\\b(check|foreach|if|checkpanic)\\\\\\\\b|\\\\\\\\b(readonly|error|map)\\\\\\\\b|\\\\\\\\b(var)\\\\\\\\b|([_$[:alpha:]][_$[:alnum:]]*)((\\\\\\\\.)([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\()(\\\\\\\\)))?\"},{\"match\":\"\\\\\\\\?\",\"name\":\"keyword.operator.optional.ballerina\"},{\"include\":\"#multiType\"},{\"include\":\"#type\"},{\"include\":\"#paranthesised\"}]}]},\"type-primitive\":{\"patterns\":[{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(string|int|boolean|float|byte|decimal|json|xml|anydata)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"support.type.primitive.ballerina\"}]},\"type-tuple\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.square.ballerina\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.square.ballerina\"}},\"name\":\"meta.type.tuple.ballerina\",\"patterns\":[{\"include\":\"#self-literal\"},{\"include\":\"#booleans\"},{\"match\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"name\":\"keyword.operator.rest.ballerina\"},{\"captures\":{\"1\":{\"name\":\"entity.name.label.ballerina\"},\"2\":{\"name\":\"keyword.operator.optional.ballerina\"},\"3\":{\"name\":\"punctuation.separator.label.ballerina\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(\\\\\\\\?)?\\\\\\\\s*(:)\"},{\"include\":\"#identifiers\"},{\"include\":\"#type\"},{\"include\":\"#punctuation-comma\"}]},\"typeDefinition\":{\"patterns\":[{\"begin\":\"(\\\\\\\\btype\\\\\\\\b)\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.ballerina\"},\"2\":{\"name\":\"entity.name.type.ballerina\"}},\"end\":\"\\\\\\\\;\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.statement.ballerina\"}},\"patterns\":[{\"include\":\"#functionParameters\"},{\"include\":\"#functionReturns\"},{\"include\":\"#mdDocumentation\"},{\"include\":\"#record\"},{\"include\":\"#string\"},{\"include\":\"#keywords\"},{\"include\":\"#multiType\"},{\"include\":\"#type-primitive\"},{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"variable.other.readwrite.ballerina\"},{\"include\":\"#type-annotation\"},{\"include\":\"#typeDescription\"},{\"include\":\"#decl-block\"}]}]},\"typeDescription\":{\"patterns\":[{\"begin\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"end\":\"(?=;)\",\"patterns\":[{\"include\":\"#numbers\"},{\"include\":\"#decl-block\"},{\"include\":\"#type-primitive\"},{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"storage.type.ballerina\"}]}]},\"types\":{\"patterns\":[{\"match\":\"\\\\\\\\b(handle|any|future|typedesc)\\\\\\\\b\",\"name\":\"storage.type.ballerina\"},{\"match\":\"\\\\\\\\b(boolean|int|string|float|decimal|byte|json|xml|anydata)\\\\\\\\b\",\"name\":\"support.type.primitive.ballerina\"},{\"match\":\"\\\\\\\\b(map|error|never|readonly|distinct)\\\\\\\\b\",\"name\":\"storage.type.ballerina\"},{\"match\":\"\\\\\\\\b(stream)\\\\\\\\b\",\"name\":\"storage.type.ballerina\"}]},\"unicode-property-escape\":{\"patterns\":[{\"begin\":\"(\\\\\\\\\\\\\\\\p|\\\\\\\\\\\\\\\\P)(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.unicode-property.regexp.ballerina\"},\"2\":{\"name\":\"punctuation.other.unicode-property.begin.regexp.ballerina\"}},\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.other.unicode-property.end.regexp.ballerina\"}},\"name\":\"keyword.other.unicode-property.regexp.ballerina\",\"patterns\":[{\"include\":\"#regex-unicode-properties-general-category\"},{\"include\":\"#regex-unicode-property-key\"}]}]},\"unicode-values\":{\"patterns\":[{\"begin\":\"(\\\\\\\\\\\\\\\\u)(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.unicode-value.regexp.ballerina\"},\"2\":{\"name\":\"punctuation.other.unicode-value.begin.regexp.ballerina\"}},\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.other.unicode-value.end.regexp.ballerina\"}},\"name\":\"keyword.other.unicode-value.ballerina\",\"patterns\":[{\"match\":\"([0-9A-Fa-f]{1,6})\",\"name\":\"constant.other.unicode-value.regexp.ballerina\"}]}]},\"var-expr\":{\"patterns\":[{\"begin\":\"(?=\\\\\\\\b(var))\",\"beginCaptures\":{\"0\":{\"name\":\"storage.modifier.ballerina support.type.primitive.ballerina\"}},\"end\":\"(?!\\\\\\\\b(var))((?=;|}|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\\\\\\\b))|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?=(if)\\\\\\\\s+))|((?<!^string|[^\\\\\\\\._$[:alnum:]]string|^int|[^\\\\\\\\._$[:alnum:]]int)(?=\\\\\\\\s*$)))\",\"name\":\"meta.var.expr.ballerina\",\"patterns\":[{\"begin\":\"\\\\\\\\b(var)(?=\\\\\\\\s+|\\\\\\\\[|\\\\\\\\?|\\\\\\\\||\\\\\\\\:)\",\"beginCaptures\":{\"0\":{\"name\":\"support.type.primitive.ballerina\"}},\"end\":\"(?=\\\\\\\\S)\"},{\"match\":\"\\\\\\\\|\",\"name\":\"keyword.operator.type.annotation.ballerina\"},{\"match\":\"\\\\\\\\bin\\\\\\\\b\",\"name\":\"keyword.other.ballerina\"},{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#stringTemplate\"},{\"include\":\"#numbers\"},{\"include\":\"#multiType\"},{\"include\":\"#self-literal\"},{\"include\":\"#var-single-variable\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#type-annotation\"},{\"include\":\"#keywords\"},{\"include\":\"#type-tuple\"},{\"include\":\"#regex\"}]},{\"include\":\"#punctuation-comma\"},{\"begin\":\"(?=\\\\\\\\b(const(?!\\\\\\\\s+enum\\\\\\\\b)))\",\"end\":\"(?!\\\\\\\\b(const(?!\\\\\\\\s+enum\\\\\\\\b)))((?=\\\\\\\\bannotation\\\\\\\\b|;|}|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\\\\\\\b))|((?<!^string|[^\\\\\\\\._$[:alnum:]]string|^int|[^\\\\\\\\._$[:alnum:]]int)(?=\\\\\\\\s*$)))\",\"name\":\"meta.var.expr.ballerina\",\"patterns\":[{\"begin\":\"\\\\\\\\b(const(?!\\\\\\\\s+enum\\\\\\\\b))\\\\\\\\s+\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.ballerina\"}},\"end\":\"(?=\\\\\\\\S)\"},{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#stringTemplate\"},{\"include\":\"#var-single-const\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#type-annotation\"}]},{\"include\":\"#punctuation-comma\"},{\"begin\":\"(string|int|boolean|float|byte|decimal|json|xml|anydata)(?=\\\\\\\\s+|\\\\\\\\[|\\\\\\\\?|\\\\\\\\||\\\\\\\\:)\",\"beginCaptures\":{\"0\":{\"name\":\"support.type.primitive.ballerina\"}},\"end\":\"(?!\\\\\\\\b(var))((?=;|}|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\\\\\\\b))|((?<!^string|[^\\\\\\\\._$[:alnum:]]string|^int|[^\\\\\\\\._$[:alnum:]]int)(?=\\\\\\\\s*$)))\",\"name\":\"meta.var.expr.ballerina\",\"patterns\":[{\"include\":\"#xml\"},{\"begin\":\"(string|int|boolean|float|byte|decimal|json|xml|anydata)(?=\\\\\\\\s+|\\\\\\\\[|\\\\\\\\?|\\\\\\\\||\\\\\\\\:)\",\"beginCaptures\":{\"0\":{\"name\":\"support.type.primitive.ballerina\"}},\"end\":\"(?=\\\\\\\\S)\"},{\"match\":\"\\\\\\\\|\",\"name\":\"keyword.operator.type.annotation.ballerina\"},{\"include\":\"#string\"},{\"include\":\"#stringTemplate\"},{\"include\":\"#numbers\"},{\"include\":\"#multiType\"},{\"include\":\"#var-single-variable\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#type-annotation\"},{\"include\":\"#keywords\"},{\"include\":\"#type-tuple\"},{\"include\":\"#regex\"}]},{\"include\":\"#punctuation-comma\"}]},\"var-single-const\":{\"patterns\":[{\"name\":\"meta.var-single-variable.expr.ballerina\"},{\"begin\":\"\\\\\\\\b(var)\\\\\\\\s*\",\"beginCaptures\":{\"0\":{\"name\":\"support.type.primitive.ballerina\"}},\"end\":\"(?=\\\\\\\\S)\"},{\"include\":\"#types\"},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.definition.variable.ballerina variable.other.constant.ballerina\"}},\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))\\\\\\\\s+))\"}]},\"var-single-variable\":{\"patterns\":[{\"begin\":\"((string|int|boolean|float|byte|decimal|json|xml|anydata)|\\\\\\\\b(readonly|error|map)\\\\\\\\b|([_$[:alpha:]][_$[:alnum:]]*))(?=\\\\\\\\s+|\\\\\\\\;|\\\\\\\\>|\\\\\\\\|)\",\"beginCaptures\":{\"2\":{\"name\":\"support.type.primitive.ballerina\"},\"3\":{\"name\":\"storage.type.ballerina\"},\"4\":{\"name\":\"meta.definition.variable.ballerina variable.other.readwrite.ballerina\"}},\"end\":\"(?=$|^|[;,=}])\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.statement.ballerina\"}},\"name\":\"meta.var-single-variable.expr.ballerina\",\"patterns\":[{\"include\":\"#call\"},{\"include\":\"#self-literal\"},{\"include\":\"#if-statement\"},{\"include\":\"#string\"},{\"include\":\"#numbers\"},{\"include\":\"#keywords\"}]},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s+(\\\\\\\\!)?\",\"beginCaptures\":{\"1\":{\"name\":\"meta.definition.variable.ballerina variable.other.readwrite.ballerina\"},\"2\":{\"name\":\"keyword.operator.definiteassignment.ballerina\"}},\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))\\\\\\\\s+))\",\"name\":\"meta.var-single-variable.expr.ballerina\"}]},\"variable-initializer\":{\"patterns\":[{\"begin\":\"(?<!=|!)(=)(?!=|>)(?=\\\\\\\\s*\\\\\\\\S)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.ballerina\"}},\"end\":\"(?=$|[,);}\\\\\\\\]])\",\"patterns\":[{\"match\":\"(\\\\\\\\\\')([_$[:alpha:]][_$[:alnum:]]*)\",\"name\":\"variable.other.property.ballerina\"},{\"include\":\"#xml\"},{\"include\":\"#function-defn\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-accessor\"},{\"include\":\"#regex\"}]},{\"begin\":\"(?<!=|!)(=)(?!=|>)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.ballerina\"}},\"end\":\"(?=[,);}\\\\\\\\]]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))\\\\\\\\s+))|(?=^\\\\\\\\s*$)|(?<=\\\\\\\\S)(?<!=)(?=\\\\\\\\s*$)\",\"patterns\":[{\"include\":\"#expression\"}]}]},\"variableDef\":{\"patterns\":[{\"begin\":\"(?:(?!\\\\\\\\+)[_$[:alpha:]][_$[:alnum:]]*)(?: |\\\\\\\\t)|(?=\\\\\\\\()\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.ballerina\"}},\"end\":\"(?:[_$[:alpha:]][_$[:alnum:]]*)|(?=\\\\\\\\,)|(?=;)|\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"patterns\":[{\"include\":\"#tupleType\"},{\"include\":\"#constrainType\"},{\"include\":\"#comment\"}]}]},\"variableDefInline\":{\"patterns\":[{\"begin\":\"(?=record)|(?=object)\",\"end\":\"(?=;)\",\"patterns\":[{\"include\":\"#record\"},{\"include\":\"#objectDec\"}]}]},\"workerBody\":{\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"end\":\"(?=\\\\\\\\})\",\"patterns\":[{\"include\":\"#code\"}]}]},\"workerDef\":{\"patterns\":[{\"begin\":\"\\\\\\\\bworker\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.ballerina\"}},\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"#functionReturns\"},{\"include\":\"#workerBody\"}]}]},\"xml\":{\"patterns\":[{\"begin\":\"(\\\\\\\\bxml)(\\\\\\\\s*)(`)\",\"beginCaptures\":{\"1\":{\"name\":\"support.type.primitive.ballerina\"},\"3\":{\"name\":\"punctuation.definition.string.template.begin.ballerina\"}},\"end\":\"`\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.template.end.ballerina\"}},\"name\":\"string.template.ballerina\",\"patterns\":[{\"include\":\"#xmlTag\"},{\"include\":\"#xmlComment\"},{\"include\":\"#templateVariable\"},{\"match\":\".\",\"name\":\"string\"}]}]},\"xmlComment\":{\"patterns\":[{\"begin\":\"<!--\",\"beginCaptures\":{\"0\":{\"name\":\"comment.block.xml.ballerina\"}},\"end\":\"-->\",\"endCaptures\":{\"0\":{\"name\":\"comment.block.xml.ballerina\"}},\"name\":\"comment.block.xml.ballerina\"}]},\"xmlDoubleQuotedString\":{\"patterns\":[{\"begin\":\"\\\\\\\\\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"string.begin.ballerina\"}},\"end\":\"\\\\\\\\\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"string.end.ballerina\"}},\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.ballerina\"},{\"match\":\".\",\"name\":\"string\"}]}]},\"xmlSingleQuotedString\":{\"patterns\":[{\"begin\":\"\\\\\\\\\\'\",\"beginCaptures\":{\"0\":{\"name\":\"string.begin.ballerina\"}},\"end\":\"\\\\\\\\\\'\",\"endCaptures\":{\"0\":{\"name\":\"string.end.ballerina\"}},\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.ballerina\"},{\"match\":\".\",\"name\":\"string\"}]}]},\"xmlTag\":{\"patterns\":[{\"begin\":\"(<\\\\\\\\/?\\\\\\\\??)\\\\\\\\s*([-_a-zA-Z0-9]+)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.xml.ballerina\"},\"2\":{\"name\":\"entity.name.tag.xml.ballerina\"}},\"end\":\"\\\\\\\\??\\\\\\\\/?>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.end.xml.ballerina\"}},\"patterns\":[{\"include\":\"#xmlSingleQuotedString\"},{\"include\":\"#xmlDoubleQuotedString\"},{\"match\":\"xmlns\",\"name\":\"keyword.other.ballerina\"},{\"match\":\"([a-zA-Z0-9-]+)\",\"name\":\"entity.other.attribute-name.xml.ballerina\"}]}]}},\"scopeName\":\"source.ballerina\"}')),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Du3IqvzK.js",
    "content": "import{d as C,r as U,a0 as D,e as p,g as u,at as E,f as r,j as a,i as l,G as k,t as N,x as o,au as T,C as x,E as d,D as F,aa as R,a8 as S,h as $,s as A,ah as M,c as P,av as G,q as m,a3 as W,aw as H,ab as O,k as z,F as J,O as Q}from\"./CU_MfyYc.js\";import{_ as X}from\"./CqvT4tPC.js\";import{_ as Y}from\"./D35nYK_C.js\";import{S as Z}from\"./CRzUWN8h.js\";import{u as ee}from\"./Cwg39VG_.js\";const te={class:\"flex justify-between items-center mb-2\"},oe={class:\"text-xl font-bold\"},ae={class:\"text-sm text-gray-500 dark:text-gray-400\"},ne={class:\"mt-4\"},le={key:0,class:\"flex justify-between\"},se={key:1,class:\"flex justify-between\"},ie={key:2,class:\"flex justify-between\"},re=C({__name:\"NotificationApiKey\",props:{apiKey:{}},setup(I){const b=I,f=U(!1),v=U(!1),e=D();async function c(){v.value=!0;const{data:s,error:n}=await S(\"/notification/api-keys/delete\",{id:b.apiKey.id},!0);if(v.value=!1,n.value&&n.value.statusCode!==200){$(n);return}f.value=!1,A(\"success\",\"API Key deleted successfully\"),e.notificationApiKeys=e.notificationApiKeys.filter(g=>g.id!==b.apiKey.id)}return(s,n)=>{const g=N,y=R,t=E;return u(),p(t,{class:\"mb-4 p-4 bg-white\"},{default:r(()=>[a(\"div\",te,[a(\"h2\",oe,k(s.apiKey.name)+\" • \"+k(s.apiKey.driver),1),l(g,{icon:\"i-heroicons-trash\",color:\"red\",label:\"Delete\",variant:\"link\",onClick:n[0]||(n[0]=_=>f.value=!0)})]),a(\"p\",ae,k(o(T)(s.apiKey.created_at).value),1),a(\"div\",ne,[s.apiKey.bot_token?(u(),x(\"div\",le,[n[2]||(n[2]=a(\"span\",{class:\"font-medium\"},\"Bot Token:\",-1)),a(\"span\",null,k(s.apiKey.bot_token),1)])):d(\"\",!0),s.apiKey.chat_id?(u(),x(\"div\",se,[n[3]||(n[3]=a(\"span\",{class:\"font-medium\"},\"Chat ID:\",-1)),a(\"span\",null,k(s.apiKey.chat_id),1)])):d(\"\",!0),s.apiKey.webhook?(u(),x(\"div\",ie,[n[4]||(n[4]=a(\"span\",{class:\"font-medium\"},\"Webhook URL:\",-1)),a(\"span\",null,k(s.apiKey.webhook),1)])):d(\"\",!0),l(y,{modelValue:o(f),\"onUpdate:modelValue\":n[1]||(n[1]=_=>F(f)?f.value=_:null),title:\"Delete API Key\",description:`Are you sure you want to delete '${s.apiKey.name}' API key?`,type:\"info\"},{default:r(()=>[l(g,{variant:\"solid\",color:\"red\",block:\"\",class:\"sm:w-auto\",label:\"Delete\",loading:o(v),onClick:c},null,8,[\"loading\"])]),_:1},8,[\"modelValue\",\"description\"])])]),_:1})}}}),ue={class:\"flex justify-end\"},de={class:\"mt-8\"},me={key:0},ke=C({__name:\"notification-api-keys\",setup(I){ee({title:\"Notification API Keys\"});const b=U(!1),f=D(),v=[{label:\"Telegram\",value:\"telegram\"},{label:\"Discord\",value:\"discord\"},{label:\"Slack\",value:\"slack\"}],e=M({name:\"\",driver:v[0].value,bot_token:\"\",chat_id:\"\",webhook:\"\"}),c=P(()=>f.notificationApiKeys),s=P(()=>e.driver===\"telegram\"?e.bot_token&&e.chat_id:e.webhook);async function n(){if(!s.value){A(\"error\",\"Please fill in all required fields\");return}const y={};e.driver===\"telegram\"?(y.bot_token=e.bot_token,y.chat_id=e.chat_id):(e.driver===\"discord\"||e.driver===\"slack\")&&(y.webhook=e.webhook);const t={driver:e.driver,name:e.name,fields:y};b.value=!0;const{data:_,error:V}=await S(\"/notification/api-keys/store\",t,!0);b.value=!1,V.value&&V.value.statusCode!==200&&$(V);const h=_.value;h.status===\"success\"?(A(\"success\",\"Successfully added API key\"),c.value.push(h.data),g()):h.status===\"error\"&&A(\"error\",h.message)}function g(){e.chat_id=\"\",e.bot_token=\"\",e.webhook=\"\",e.name=\"\"}return(y,t)=>{const _=G,V=W,h=X,w=O,K=z,B=N,L=H,j=Y,q=re;return u(),p(Z,null,{default:r(()=>[l(_,null,{default:r(()=>t[6]||(t[6]=[m(\" Notification API Keys \")])),_:1}),t[12]||(t[12]=a(\"p\",null,[m(\" Here you can add your API keys for various notification drivers. API keys are used to connect your account to the notification driver and allow the bot to send notifications on your behalf. \"),a(\"br\"),a(\"br\"),m(\"Please note that for security reasons, once created, API keys cannot be modified or seen again. \")],-1)),t[13]||(t[13]=a(\"br\",null,null,-1)),a(\"p\",null,[t[8]||(t[8]=m(\" If you need help setting up your API keys, please refer to the documentation for \")),l(V,{class:\"underline\",href:\"https://docs.jesse.trade/docs/notifications\",target:\"_blank\"},{default:r(()=>t[7]||(t[7]=[m(\"notification drivers\")])),_:1}),t[9]||(t[9]=m(\". \"))]),t[14]||(t[14]=a(\"br\",null,null,-1)),l(L,{state:o(e),class:\"space-y-4\",onSubmit:n},{default:r(()=>[l(w,{label:\"Driver:\",required:\"\"},{default:r(()=>[l(h,{modelValue:o(e).driver,\"onUpdate:modelValue\":t[0]||(t[0]=i=>o(e).driver=i),\"value-attribute\":\"value\",options:v},null,8,[\"modelValue\"])]),_:1}),l(w,{label:\"Name:\",required:\"\"},{default:r(()=>[l(K,{modelValue:o(e).name,\"onUpdate:modelValue\":t[1]||(t[1]=i=>o(e).name=i),type:\"text\",placeholder:\"Give a name to this API key to identify it later\"},null,8,[\"modelValue\"])]),_:1}),o(e).driver===\"telegram\"?(u(),p(w,{key:0,label:\"Bot Token:\",required:\"\"},{default:r(()=>[l(K,{modelValue:o(e).bot_token,\"onUpdate:modelValue\":t[2]||(t[2]=i=>o(e).bot_token=i),type:\"text\",placeholder:\"Enter your Telegram bot token\"},null,8,[\"modelValue\"])]),_:1})):d(\"\",!0),o(e).driver===\"telegram\"?(u(),p(w,{key:1,label:\"Chat ID:\",required:\"\"},{default:r(()=>[l(K,{modelValue:o(e).chat_id,\"onUpdate:modelValue\":t[3]||(t[3]=i=>o(e).chat_id=i),type:\"text\",placeholder:\"Enter your Telegram chat ID\"},null,8,[\"modelValue\"])]),_:1})):d(\"\",!0),o(e).driver===\"discord\"?(u(),p(w,{key:2,label:\"Webhook URL:\",required:\"\"},{default:r(()=>[l(K,{modelValue:o(e).webhook,\"onUpdate:modelValue\":t[4]||(t[4]=i=>o(e).webhook=i),type:\"text\",placeholder:\"Enter your Discord webhook URL\"},null,8,[\"modelValue\"])]),_:1})):d(\"\",!0),o(e).driver===\"slack\"?(u(),p(w,{key:3,label:\"Webhook URL:\",required:\"\"},{default:r(()=>[l(K,{modelValue:o(e).webhook,\"onUpdate:modelValue\":t[5]||(t[5]=i=>o(e).webhook=i),type:\"text\",placeholder:\"Enter your Slack webhook URL\"},null,8,[\"modelValue\"])]),_:1})):d(\"\",!0),a(\"div\",ue,[l(B,{type:\"submit\",icon:\"i-heroicons-plus\",class:\"w-48 flex justify-center\",label:\"Create\",loading:o(b),disabled:!o(s)},null,8,[\"loading\",\"disabled\"])])]),_:1},8,[\"state\"]),a(\"div\",de,[l(_,null,{default:r(()=>[t[10]||(t[10]=m(\" Previously Added \")),o(c).length?(u(),x(\"span\",me,\"(\"+k(o(c).length)+\")\",1)):d(\"\",!0)]),_:1}),o(c).length?d(\"\",!0):(u(),p(j,{key:0},{default:r(()=>t[11]||(t[11]=[m(\" No API keys added yet \")])),_:1})),(u(!0),x(J,null,Q(o(c),i=>(u(),p(q,{key:i.id,\"api-key\":i},null,8,[\"api-key\"]))),128))])]),_:1})}}});export{ke as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Du5NY7AG.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Luau\",\"fileTypes\":[\"luau\"],\"name\":\"luau\",\"patterns\":[{\"include\":\"#function-definition\"},{\"include\":\"#number\"},{\"include\":\"#string\"},{\"include\":\"#shebang\"},{\"include\":\"#comment\"},{\"include\":\"#local-declaration\"},{\"include\":\"#for-loop\"},{\"include\":\"#type-alias-declaration\"},{\"include\":\"#keyword\"},{\"include\":\"#language_constant\"},{\"include\":\"#standard_library\"},{\"include\":\"#identifier\"},{\"include\":\"#operator\"},{\"include\":\"#parentheses\"},{\"include\":\"#table\"},{\"include\":\"#type_cast\"},{\"include\":\"#type_annotation\"},{\"include\":\"#attribute\"}],\"repository\":{\"attribute\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.attribute.luau\"},\"2\":{\"name\":\"storage.type.attribute.luau\"}},\"match\":\"(@)([a-zA-Z_][a-zA-Z0-9_]*)\",\"name\":\"meta.attribute.luau\"}]},\"comment\":{\"patterns\":[{\"begin\":\"--\\\\\\\\[(=*)\\\\\\\\[\",\"end\":\"\\\\\\\\]\\\\\\\\1\\\\\\\\]\",\"name\":\"comment.block.luau\",\"patterns\":[{\"begin\":\"(```luau?)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"comment.luau\"}},\"end\":\"(```)\",\"endCaptures\":{\"1\":{\"name\":\"comment.luau\"}},\"name\":\"keyword.operator.other.luau\",\"patterns\":[{\"include\":\"source.luau\"}]},{\"include\":\"#doc_comment_tags\"}]},{\"begin\":\"---\",\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.double-dash.documentation.luau\",\"patterns\":[{\"include\":\"#doc_comment_tags\"}]},{\"begin\":\"--\",\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.double-dash.luau\"}]},\"doc_comment_tags\":{\"patterns\":[{\"match\":\"@\\\\\\\\w+\",\"name\":\"storage.type.class.luadoc.luau\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.luadoc.luau\"},\"2\":{\"name\":\"variable.parameter.luau\"}},\"match\":\"((?<=[\\\\\\\\s*!\\\\\\\\/])[\\\\\\\\\\\\\\\\@]param)(?:\\\\\\\\s)+(\\\\\\\\b\\\\\\\\w+\\\\\\\\b)\"}]},\"for-loop\":{\"begin\":\"\\\\\\\\b(for)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.luau\"}},\"end\":\"\\\\\\\\b(in)\\\\\\\\b|(=)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.luau\"},\"2\":{\"name\":\"keyword.operator.assignment.luau\"}},\"patterns\":[{\"begin\":\"(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.luau\"}},\"end\":\"(?=\\\\\\\\s*in\\\\\\\\b|\\\\\\\\s*[=,]|\\\\\\\\s*$)\",\"patterns\":[{\"include\":\"#type_literal\"}]},{\"match\":\"\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_]*)\\\\\\\\b\",\"name\":\"variable.parameter.luau\"}]},\"function-definition\":{\"begin\":\"\\\\\\\\b(?:(local)\\\\\\\\s+)?(function)\\\\\\\\b(?![,:])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.local.luau\"},\"2\":{\"name\":\"keyword.control.luau\"}},\"end\":\"(?<=[\\\\\\\\)\\\\\\\\-{}\\\\\\\\[\\\\\\\\]\\\\\"\\'])\",\"name\":\"meta.function.luau\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#generics-declaration\"},{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.begin.luau\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.luau\"}},\"name\":\"meta.parameter.luau\",\"patterns\":[{\"include\":\"#comment\"},{\"match\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"name\":\"variable.parameter.function.varargs.luau\"},{\"match\":\"[a-zA-Z_][a-zA-Z0-9_]*\",\"name\":\"variable.parameter.function.luau\"},{\"match\":\",\",\"name\":\"punctuation.separator.arguments.luau\"},{\"begin\":\":\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.type.luau\"}},\"end\":\"(?=[\\\\\\\\),])\",\"patterns\":[{\"include\":\"#type_literal\"}]}]},{\"match\":\"\\\\\\\\b(__add|__call|__concat|__div|__eq|__index|__le|__len|__lt|__metatable|__mod|__mode|__mul|__newindex|__pow|__sub|__tostring|__unm|__iter|__idiv)\\\\\\\\b\",\"name\":\"variable.language.metamethod.luau\"},{\"match\":\"\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_]*)\\\\\\\\b\",\"name\":\"entity.name.function.luau\"}]},\"generics-declaration\":{\"begin\":\"(<)\",\"end\":\"(>)\",\"patterns\":[{\"match\":\"[a-zA-Z_][a-zA-Z0-9_]*\",\"name\":\"entity.name.type.luau\"},{\"match\":\"=\",\"name\":\"keyword.operator.assignment.luau\"},{\"include\":\"#type_literal\"}]},\"identifier\":{\"patterns\":[{\"match\":\"\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_]*)\\\\\\\\b(?=\\\\\\\\s*(?:[({\\\\\"\\']|\\\\\\\\[\\\\\\\\[))\",\"name\":\"entity.name.function.luau\"},{\"match\":\"(?<=[^.]\\\\\\\\.|:)\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_]*)\\\\\\\\b\",\"name\":\"variable.other.property.luau\"},{\"match\":\"\\\\\\\\b([A-Z_][A-Z0-9_]*)\\\\\\\\b\",\"name\":\"variable.other.constant.luau\"},{\"match\":\"\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_]*)\\\\\\\\b\",\"name\":\"variable.other.readwrite.luau\"}]},\"interpolated_string_expression\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.interpolated-string-expression.begin.luau\"}},\"contentName\":\"meta.embedded.line.luau\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.interpolated-string-expression.end.luau\"}},\"name\":\"meta.template.expression.luau\",\"patterns\":[{\"include\":\"source.luau\"}]},\"keyword\":{\"patterns\":[{\"match\":\"\\\\\\\\b(break|do|else|for|if|elseif|return|then|repeat|while|until|end|in|continue)\\\\\\\\b\",\"name\":\"keyword.control.luau\"},{\"match\":\"\\\\\\\\b(local)\\\\\\\\b\",\"name\":\"storage.modifier.local.luau\"},{\"match\":\"\\\\\\\\b(function)\\\\\\\\b(?![,:])\",\"name\":\"keyword.control.luau\"},{\"match\":\"(?<![^.]\\\\\\\\.|:)\\\\\\\\b(self)\\\\\\\\b\",\"name\":\"variable.language.self.luau\"},{\"match\":\"\\\\\\\\b(and|or|not)\\\\\\\\b\",\"name\":\"keyword.operator.logical.luau keyword.operator.wordlike.luau\"},{\"match\":\"(?<=[^.]\\\\\\\\.|:)\\\\\\\\b(__add|__call|__concat|__div|__eq|__index|__le|__len|__lt|__metatable|__mod|__mode|__mul|__newindex|__pow|__sub|__tostring|__unm)\\\\\\\\b\",\"name\":\"variable.language.metamethod.luau\"},{\"match\":\"(?<![.])\\\\\\\\.{3}(?!\\\\\\\\.)\",\"name\":\"keyword.other.unit.luau\"}]},\"language_constant\":{\"patterns\":[{\"match\":\"(?<![^.]\\\\\\\\.|:)\\\\\\\\b(false)\\\\\\\\b\",\"name\":\"constant.language.boolean.false.luau\"},{\"match\":\"(?<![^.]\\\\\\\\.|:)\\\\\\\\b(true)\\\\\\\\b\",\"name\":\"constant.language.boolean.true.luau\"},{\"match\":\"(?<![^.]\\\\\\\\.|:)\\\\\\\\b(nil(?!:))\\\\\\\\b\",\"name\":\"constant.language.nil.luau\"}]},\"local-declaration\":{\"begin\":\"\\\\\\\\b(local)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.local.luau\"}},\"end\":\"(?=\\\\\\\\s*do\\\\\\\\b|\\\\\\\\s*[=;]|\\\\\\\\s*$)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#attribute\"},{\"begin\":\"(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.luau\"}},\"end\":\"(?=\\\\\\\\s*do\\\\\\\\b|\\\\\\\\s*[=;,]|\\\\\\\\s*$)\",\"patterns\":[{\"include\":\"#type_literal\"}]},{\"match\":\"\\\\\\\\b([A-Z_][A-Z0-9_]*)\\\\\\\\b\",\"name\":\"variable.other.constant.luau\"},{\"match\":\"\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_]*)\\\\\\\\b\",\"name\":\"variable.other.readwrite.luau\"}]},\"number\":{\"patterns\":[{\"match\":\"\\\\\\\\b0_*[xX]_*[\\\\\\\\da-fA-F_]*(?:[eE][\\\\\\\\+\\\\\\\\-]?_*\\\\\\\\d[\\\\\\\\d_]*(?:\\\\\\\\.[\\\\\\\\d_]*)?)?\",\"name\":\"constant.numeric.hex.luau\"},{\"match\":\"\\\\\\\\b0_*[bB][01_]+(?:[eE][\\\\\\\\+\\\\\\\\-]?_*\\\\\\\\d[\\\\\\\\d_]*(?:\\\\\\\\.[\\\\\\\\d_]*)?)?\",\"name\":\"constant.numeric.binary.luau\"},{\"match\":\"(?:\\\\\\\\d[\\\\\\\\d_]*(?:\\\\\\\\.[\\\\\\\\d_]*)?|\\\\\\\\.\\\\\\\\d[\\\\\\\\d_]*)(?:[eE][\\\\\\\\+\\\\\\\\-]?_*\\\\\\\\d[\\\\\\\\d_]*(?:\\\\\\\\.[\\\\\\\\d_]*)?)?\",\"name\":\"constant.numeric.decimal.luau\"}]},\"operator\":{\"patterns\":[{\"match\":\"==|~=|!=|<=?|>=?\",\"name\":\"keyword.operator.comparison.luau\"},{\"match\":\"\\\\\\\\+=|-=|/=|//=|\\\\\\\\*=|%=|\\\\\\\\^=|\\\\\\\\.\\\\\\\\.=|=\",\"name\":\"keyword.operator.assignment.luau\"},{\"match\":\"\\\\\\\\+|-|%|\\\\\\\\*|\\\\\\\\/\\\\\\\\/|\\\\\\\\/|\\\\\\\\^\",\"name\":\"keyword.operator.arithmetic.luau\"},{\"match\":\"#|(?<!\\\\\\\\.)\\\\\\\\.{2}(?!\\\\\\\\.)\",\"name\":\"keyword.operator.other.luau\"}]},\"parentheses\":{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.arguments.begin.luau\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.arguments.end.luau\"}},\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.separator.arguments.luau\"},{\"include\":\"source.luau\"}]},\"shebang\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.luau\"}},\"match\":\"\\\\\\\\A(#!).*$\\\\\\\\n?\",\"name\":\"comment.line.shebang.luau\"},\"standard_library\":{\"patterns\":[{\"match\":\"(?<![^.]\\\\\\\\.|:)\\\\\\\\b(assert|collectgarbage|error|gcinfo|getfenv|getmetatable|ipairs|loadstring|newproxy|next|pairs|pcall|print|rawequal|rawset|require|select|setfenv|setmetatable|tonumber|tostring|type|typeof|unpack|xpcall)\\\\\\\\b\",\"name\":\"support.function.luau\"},{\"match\":\"(?<![^.]\\\\\\\\.|:)\\\\\\\\b(_G|_VERSION)\\\\\\\\b\",\"name\":\"constant.language.luau\"},{\"match\":\"(?<![^.]\\\\\\\\.|:)\\\\\\\\b(bit32\\\\\\\\.(?:arshift|band|bnot|bor|btest|bxor|extract|lrotate|lshift|replace|rrotate|rshift|countlz|countrz|byteswap)|coroutine\\\\\\\\.(?:create|isyieldable|resume|running|status|wrap|yield|close)|debug\\\\\\\\.(?:info|loadmodule|profilebegin|profileend|traceback)|math\\\\\\\\.(?:abs|acos|asin|atan|atan2|ceil|clamp|cos|cosh|deg|exp|floor|fmod|frexp|ldexp|log|log10|max|min|modf|noise|pow|rad|random|randomseed|round|sign|sin|sinh|sqrt|tan|tanh)|os\\\\\\\\.(?:clock|date|difftime|time)|string\\\\\\\\.(?:byte|char|find|format|gmatch|gsub|len|lower|match|pack|packsize|rep|reverse|split|sub|unpack|upper)|table\\\\\\\\.(?:concat|create|find|foreach|foreachi|getn|insert|maxn|move|pack|remove|sort|unpack|clear|freeze|isfrozen|clone)|task\\\\\\\\.(?:spawn|synchronize|desynchronize|wait|defer|delay)|utf8\\\\\\\\.(?:char|codepoint|codes|graphemes|len|nfcnormalize|nfdnormalize|offset)|buffer\\\\\\\\.(?:create|fromstring|tostring|len|readi8|readu8|readi16|readu16|readi32|readu32|readf32|readf64|writei8|writeu8|writei16|writeu16|writei32|writeu32|writef32|writef64|readstring|writestring|copy|fill))\\\\\\\\b\",\"name\":\"support.function.luau\"},{\"match\":\"(?<![^.]\\\\\\\\.|:)\\\\\\\\b(bit32|buffer|coroutine|debug|math(\\\\\\\\.(huge|pi))?|os|string|table|task|utf8(\\\\\\\\.charpattern)?)\\\\\\\\b\",\"name\":\"support.constant.luau\"},{\"match\":\"(?<![^.]\\\\\\\\.|:)\\\\\\\\b(delay|DebuggerManager|elapsedTime|PluginManager|printidentity|settings|spawn|stats|tick|time|UserSettings|version|wait|warn)\\\\\\\\b\",\"name\":\"support.function.luau\"},{\"match\":\"(?<![^.]\\\\\\\\.|:)\\\\\\\\b(game|plugin|shared|script|workspace|Enum(?:\\\\\\\\.\\\\\\\\w+){0,2})\\\\\\\\b\",\"name\":\"constant.language.luau\"}]},\"string\":{\"patterns\":[{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.luau\",\"patterns\":[{\"include\":\"#string_escape\"}]},{\"begin\":\"\\'\",\"end\":\"\\'\",\"name\":\"string.quoted.single.luau\",\"patterns\":[{\"include\":\"#string_escape\"}]},{\"begin\":\"\\\\\\\\[(=*)\\\\\\\\[\",\"end\":\"\\\\\\\\]\\\\\\\\1\\\\\\\\]\",\"name\":\"string.other.multiline.luau\"},{\"begin\":\"`\",\"end\":\"`\",\"name\":\"string.interpolated.luau\",\"patterns\":[{\"include\":\"#interpolated_string_expression\"},{\"include\":\"#string_escape\"}]}]},\"string_escape\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[abfnrtvz\\'\\\\\"`{\\\\\\\\\\\\\\\\]\",\"name\":\"constant.character.escape.luau\"},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\d{1,3}\",\"name\":\"constant.character.escape.luau\"},{\"match\":\"\\\\\\\\\\\\\\\\x[0-9a-fA-F]{2}\",\"name\":\"constant.character.escape.luau\"},{\"match\":\"\\\\\\\\\\\\\\\\u\\\\\\\\{[0-9a-fA-F]*\\\\\\\\}\",\"name\":\"constant.character.escape.luau\"},{\"match\":\"\\\\\\\\\\\\\\\\$\",\"name\":\"constant.character.escape.luau\"}]},\"table\":{\"begin\":\"(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.table.begin.luau\"}},\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.table.end.luau\"}},\"patterns\":[{\"match\":\"[,;]\",\"name\":\"punctuation.separator.fields.luau\"},{\"include\":\"source.luau\"}]},\"type-alias-declaration\":{\"begin\":\"^\\\\\\\\b(?:(export)\\\\\\\\s+)?(type)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.visibility.luau\"},\"2\":{\"name\":\"storage.type.luau\"}},\"end\":\"(?=\\\\\\\\s*$)|(?=\\\\\\\\s*;)\",\"patterns\":[{\"include\":\"#type_literal\"},{\"match\":\"=\",\"name\":\"keyword.operator.assignment.luau\"}]},\"type_annotation\":{\"begin\":\":(?!\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_]*)\\\\\\\\b(?=\\\\\\\\s*(?:[({\\\\\"\\']|\\\\\\\\[\\\\\\\\[)))\",\"end\":\"(?<=\\\\\\\\))(?!\\\\\\\\s*->)|=|;|$|(?=\\\\\\\\breturn\\\\\\\\b)|(?=\\\\\\\\bend\\\\\\\\b)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type_literal\"}]},\"type_cast\":{\"begin\":\"(::)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.typecast.luau\"}},\"end\":\"(?=^|[;),}\\\\\\\\]:?\\\\\\\\-\\\\\\\\+\\\\\\\\>](?!\\\\\\\\s*[&\\\\\\\\|])|$|\\\\\\\\b(break|do|else|for|if|elseif|return|then|repeat|while|until|end|in|continue)\\\\\\\\b)\",\"patterns\":[{\"include\":\"#type_literal\"}]},\"type_literal\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"match\":\"\\\\\\\\?|\\\\\\\\&|\\\\\\\\|\",\"name\":\"keyword.operator.type.luau\"},{\"match\":\"->\",\"name\":\"keyword.operator.type.function.luau\"},{\"match\":\"\\\\\\\\b(false)\\\\\\\\b\",\"name\":\"constant.language.boolean.false.luau\"},{\"match\":\"\\\\\\\\b(true)\\\\\\\\b\",\"name\":\"constant.language.boolean.true.luau\"},{\"match\":\"\\\\\\\\b(nil|string|number|boolean|thread|userdata|symbol|any)\\\\\\\\b\",\"name\":\"support.type.primitive.luau\"},{\"begin\":\"\\\\\\\\b(typeof)\\\\\\\\b(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.luau\"},\"2\":{\"name\":\"punctuation.arguments.begin.typeof.luau\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.arguments.end.typeof.luau\"}},\"patterns\":[{\"include\":\"source.luau\"}]},{\"begin\":\"(<)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.typeparameters.begin.luau\"}},\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.typeparameters.end.luau\"}},\"patterns\":[{\"match\":\"=\",\"name\":\"keyword.operator.assignment.luau\"},{\"include\":\"#type_literal\"}]},{\"match\":\"\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_]*)\\\\\\\\b\",\"name\":\"entity.name.type.luau\"},{\"begin\":\"\\\\\\\\{\",\"end\":\"\\\\\\\\}\",\"patterns\":[{\"begin\":\"\\\\\\\\[\",\"end\":\"\\\\\\\\]\",\"patterns\":[{\"include\":\"#type_literal\"}]},{\"captures\":{\"1\":{\"name\":\"variable.property.luau\"},\"2\":{\"name\":\"keyword.operator.type.luau\"}},\"match\":\"\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_]*)\\\\\\\\b(:)\"},{\"include\":\"#type_literal\"},{\"match\":\"[,;]\",\"name\":\"punctuation.separator.fields.type.luau\"}]},{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.parameter.luau\"},\"2\":{\"name\":\"keyword.operator.type.luau\"}},\"match\":\"\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_]*)\\\\\\\\b(:)\",\"name\":\"variable.parameter.luau\"},{\"include\":\"#type_literal\"}]}]}},\"scopeName\":\"source.luau\"}')),a=[e];export{a as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DvSxYeG4.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={wordPattern:/(unary_[@~!#%^&*()\\-=+\\\\|:<>\\/?]+)|([a-zA-Z_$][\\w$]*?_=)|(`[^`]+`)|([a-zA-Z_$][\\w$]*)/g,comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],folding:{markers:{start:new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?region\\\\b)|(?:<editor-fold\\\\b))\"),end:new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?endregion\\\\b)|(?:</editor-fold>))\")}}},t={tokenPostfix:\".scala\",keywords:[\"asInstanceOf\",\"catch\",\"class\",\"classOf\",\"def\",\"do\",\"else\",\"extends\",\"finally\",\"for\",\"foreach\",\"forSome\",\"if\",\"import\",\"isInstanceOf\",\"macro\",\"match\",\"new\",\"object\",\"package\",\"return\",\"throw\",\"trait\",\"try\",\"type\",\"until\",\"val\",\"var\",\"while\",\"with\",\"yield\",\"given\",\"enum\",\"then\"],softKeywords:[\"as\",\"export\",\"extension\",\"end\",\"derives\",\"on\"],constants:[\"true\",\"false\",\"null\",\"this\",\"super\"],modifiers:[\"abstract\",\"final\",\"implicit\",\"lazy\",\"override\",\"private\",\"protected\",\"sealed\"],softModifiers:[\"inline\",\"opaque\",\"open\",\"transparent\",\"using\"],name:/(?:[a-z_$][\\w$]*|`[^`]+`)/,type:/(?:[A-Z][\\w$]*)/,symbols:/[=><!~?:&|+\\-*\\/^\\\\%@#]+/,digits:/\\d+(_+\\d+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,escapes:/\\\\(?:[btnfr\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,fstring_conv:/[bBhHsScCdoxXeEfgGaAt]|[Tn](?:[HIklMSLNpzZsQ]|[BbhAaCYyjmde]|[RTrDFC])/,tokenizer:{root:[[/\\braw\"\"\"/,{token:\"string.quote\",bracket:\"@open\",next:\"@rawstringt\"}],[/\\braw\"/,{token:\"string.quote\",bracket:\"@open\",next:\"@rawstring\"}],[/\\bs\"\"\"/,{token:\"string.quote\",bracket:\"@open\",next:\"@sstringt\"}],[/\\bs\"/,{token:\"string.quote\",bracket:\"@open\",next:\"@sstring\"}],[/\\bf\"\"\"\"/,{token:\"string.quote\",bracket:\"@open\",next:\"@fstringt\"}],[/\\bf\"/,{token:\"string.quote\",bracket:\"@open\",next:\"@fstring\"}],[/\"\"\"/,{token:\"string.quote\",bracket:\"@open\",next:\"@stringt\"}],[/\"/,{token:\"string.quote\",bracket:\"@open\",next:\"@string\"}],[/(@digits)[eE]([\\-+]?(@digits))?[fFdD]?/,\"number.float\",\"@allowMethod\"],[/(@digits)\\.(@digits)([eE][\\-+]?(@digits))?[fFdD]?/,\"number.float\",\"@allowMethod\"],[/0[xX](@hexdigits)[Ll]?/,\"number.hex\",\"@allowMethod\"],[/(@digits)[fFdD]/,\"number.float\",\"@allowMethod\"],[/(@digits)[lL]?/,\"number\",\"@allowMethod\"],[/\\b_\\*/,\"key\"],[/\\b(_)\\b/,\"keyword\",\"@allowMethod\"],[/\\bimport\\b/,\"keyword\",\"@import\"],[/\\b(case)([ \\t]+)(class)\\b/,[\"keyword.modifier\",\"white\",\"keyword\"]],[/\\bcase\\b/,\"keyword\",\"@case\"],[/\\bva[lr]\\b/,\"keyword\",\"@vardef\"],[/\\b(def)([ \\t]+)((?:unary_)?@symbols|@name(?:_=)|@name)/,[\"keyword\",\"white\",\"identifier\"]],[/@name(?=[ \\t]*:(?!:))/,\"variable\"],[/(\\.)(@name|@symbols)/,[\"operator\",{token:\"@rematch\",next:\"@allowMethod\"}]],[/([{(])(\\s*)(@name(?=\\s*=>))/,[\"@brackets\",\"white\",\"variable\"]],[/@name/,{cases:{\"@keywords\":\"keyword\",\"@softKeywords\":\"keyword\",\"@modifiers\":\"keyword.modifier\",\"@softModifiers\":\"keyword.modifier\",\"@constants\":{token:\"constant\",next:\"@allowMethod\"},\"@default\":{token:\"identifier\",next:\"@allowMethod\"}}}],[/@type/,\"type\",\"@allowMethod\"],{include:\"@whitespace\"},[/@[a-zA-Z_$][\\w$]*(?:\\.[a-zA-Z_$][\\w$]*)*/,\"annotation\"],[/[{(]/,\"@brackets\"],[/[})]/,\"@brackets\",\"@allowMethod\"],[/\\[/,\"operator.square\"],[/](?!\\s*(?:va[rl]|def|type)\\b)/,\"operator.square\",\"@allowMethod\"],[/]/,\"operator.square\"],[/([=-]>|<-|>:|<:|:>|<%)(?=[\\s\\w()[\\]{},\\.\"'`])/,\"keyword\"],[/@symbols/,\"operator\"],[/[;,\\.]/,\"delimiter\"],[/'[a-zA-Z$][\\w$]*(?!')/,\"attribute.name\"],[/'[^\\\\']'/,\"string\",\"@allowMethod\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",{token:\"string\",next:\"@allowMethod\"}]],[/'/,\"string.invalid\"]],import:[[/;/,\"delimiter\",\"@pop\"],[/^|$/,\"\",\"@pop\"],[/[ \\t]+/,\"white\"],[/[\\n\\r]+/,\"white\",\"@pop\"],[/\\/\\*/,\"comment\",\"@comment\"],[/@name|@type/,\"type\"],[/[(){}]/,\"@brackets\"],[/[[\\]]/,\"operator.square\"],[/[\\.,]/,\"delimiter\"]],allowMethod:[[/^|$/,\"\",\"@pop\"],[/[ \\t]+/,\"white\"],[/[\\n\\r]+/,\"white\",\"@pop\"],[/\\/\\*/,\"comment\",\"@comment\"],[/(?==>[\\s\\w([{])/,\"keyword\",\"@pop\"],[/(@name|@symbols)(?=[ \\t]*[[({\"'`]|[ \\t]+(?:[+-]?\\.?\\d|\\w))/,{cases:{\"@keywords\":{token:\"keyword\",next:\"@pop\"},\"->|<-|>:|<:|<%\":{token:\"keyword\",next:\"@pop\"},\"@default\":{token:\"@rematch\",next:\"@pop\"}}}],[\"\",\"\",\"@pop\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\/\\*/,\"comment\",\"@push\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],case:[[/\\b_\\*/,\"key\"],[/\\b(_|true|false|null|this|super)\\b/,\"keyword\",\"@allowMethod\"],[/\\bif\\b|=>/,\"keyword\",\"@pop\"],[/`[^`]+`/,\"identifier\",\"@allowMethod\"],[/@name/,\"variable\",\"@allowMethod\"],[/:::?|\\||@(?![a-z_$])/,\"keyword\"],{include:\"@root\"}],vardef:[[/\\b_\\*/,\"key\"],[/\\b(_|true|false|null|this|super)\\b/,\"keyword\"],[/@name/,\"variable\"],[/:::?|\\||@(?![a-z_$])/,\"keyword\"],[/=|:(?!:)/,\"operator\",\"@pop\"],[/$/,\"white\",\"@pop\"],{include:\"@root\"}],string:[[/[^\\\\\"\\n\\r]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,{token:\"string.quote\",bracket:\"@close\",switchTo:\"@allowMethod\"}]],stringt:[[/[^\\\\\"\\n\\r]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"(?=\"\"\")/,\"string\"],[/\"\"\"/,{token:\"string.quote\",bracket:\"@close\",switchTo:\"@allowMethod\"}],[/\"/,\"string\"]],fstring:[[/@escapes/,\"string.escape\"],[/\"/,{token:\"string.quote\",bracket:\"@close\",switchTo:\"@allowMethod\"}],[/\\$\\$/,\"string\"],[/(\\$)([a-z_]\\w*)/,[\"operator\",\"identifier\"]],[/\\$\\{/,\"operator\",\"@interp\"],[/%%/,\"string\"],[/(%)([\\-#+ 0,(])(\\d+|\\.\\d+|\\d+\\.\\d+)(@fstring_conv)/,[\"metatag\",\"keyword.modifier\",\"number\",\"metatag\"]],[/(%)(\\d+|\\.\\d+|\\d+\\.\\d+)(@fstring_conv)/,[\"metatag\",\"number\",\"metatag\"]],[/(%)([\\-#+ 0,(])(@fstring_conv)/,[\"metatag\",\"keyword.modifier\",\"metatag\"]],[/(%)(@fstring_conv)/,[\"metatag\",\"metatag\"]],[/./,\"string\"]],fstringt:[[/@escapes/,\"string.escape\"],[/\"(?=\"\"\")/,\"string\"],[/\"\"\"/,{token:\"string.quote\",bracket:\"@close\",switchTo:\"@allowMethod\"}],[/\\$\\$/,\"string\"],[/(\\$)([a-z_]\\w*)/,[\"operator\",\"identifier\"]],[/\\$\\{/,\"operator\",\"@interp\"],[/%%/,\"string\"],[/(%)([\\-#+ 0,(])(\\d+|\\.\\d+|\\d+\\.\\d+)(@fstring_conv)/,[\"metatag\",\"keyword.modifier\",\"number\",\"metatag\"]],[/(%)(\\d+|\\.\\d+|\\d+\\.\\d+)(@fstring_conv)/,[\"metatag\",\"number\",\"metatag\"]],[/(%)([\\-#+ 0,(])(@fstring_conv)/,[\"metatag\",\"keyword.modifier\",\"metatag\"]],[/(%)(@fstring_conv)/,[\"metatag\",\"metatag\"]],[/./,\"string\"]],sstring:[[/@escapes/,\"string.escape\"],[/\"/,{token:\"string.quote\",bracket:\"@close\",switchTo:\"@allowMethod\"}],[/\\$\\$/,\"string\"],[/(\\$)([a-z_]\\w*)/,[\"operator\",\"identifier\"]],[/\\$\\{/,\"operator\",\"@interp\"],[/./,\"string\"]],sstringt:[[/@escapes/,\"string.escape\"],[/\"(?=\"\"\")/,\"string\"],[/\"\"\"/,{token:\"string.quote\",bracket:\"@close\",switchTo:\"@allowMethod\"}],[/\\$\\$/,\"string\"],[/(\\$)([a-z_]\\w*)/,[\"operator\",\"identifier\"]],[/\\$\\{/,\"operator\",\"@interp\"],[/./,\"string\"]],interp:[[/{/,\"operator\",\"@push\"],[/}/,\"operator\",\"@pop\"],{include:\"@root\"}],rawstring:[[/[^\"]/,\"string\"],[/\"/,{token:\"string.quote\",bracket:\"@close\",switchTo:\"@allowMethod\"}]],rawstringt:[[/[^\"]/,\"string\"],[/\"(?=\"\"\")/,\"string\"],[/\"\"\"/,{token:\"string.quote\",bracket:\"@close\",switchTo:\"@allowMethod\"}],[/\"/,\"string\"]],whitespace:[[/[ \\t\\r\\n]+/,\"white\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]]}};export{e as conf,t as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/DxSadP1t.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Clojure\",\"name\":\"clojure\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#shebang-comment\"},{\"include\":\"#quoted-sexp\"},{\"include\":\"#sexp\"},{\"include\":\"#keyfn\"},{\"include\":\"#string\"},{\"include\":\"#vector\"},{\"include\":\"#set\"},{\"include\":\"#map\"},{\"include\":\"#regexp\"},{\"include\":\"#var\"},{\"include\":\"#constants\"},{\"include\":\"#dynamic-variables\"},{\"include\":\"#metadata\"},{\"include\":\"#namespace-symbol\"},{\"include\":\"#symbol\"}],\"repository\":{\"comment\":{\"begin\":\"(?<!\\\\\\\\\\\\\\\\);\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.clojure\"}},\"end\":\"$\",\"name\":\"comment.line.semicolon.clojure\"},\"constants\":{\"patterns\":[{\"match\":\"(nil)(?=(\\\\\\\\s|\\\\\\\\)|\\\\\\\\]|\\\\\\\\}))\",\"name\":\"constant.language.nil.clojure\"},{\"match\":\"(true|false)\",\"name\":\"constant.language.boolean.clojure\"},{\"match\":\"(##(?:Inf|-Inf|NaN))\",\"name\":\"constant.numeric.symbol.clojure\"},{\"match\":\"([-+]?\\\\\\\\d+/\\\\\\\\d+)\",\"name\":\"constant.numeric.ratio.clojure\"},{\"match\":\"([-+]?(?:(?:3[0-6])|(?:[12]\\\\\\\\d)|[2-9])[rR][0-9A-Za-z]+N?)\",\"name\":\"constant.numeric.arbitrary-radix.clojure\"},{\"match\":\"([-+]?0[xX][0-9a-fA-F]+N?)\",\"name\":\"constant.numeric.hexadecimal.clojure\"},{\"match\":\"([-+]?0[0-7]+N?)\",\"name\":\"constant.numeric.octal.clojure\"},{\"match\":\"([-+]?[0-9]+(?:(\\\\\\\\.|(?=[eEM]))[0-9]*([eE][-+]?[0-9]+)?)M?)\",\"name\":\"constant.numeric.double.clojure\"},{\"match\":\"([-+]?\\\\\\\\d+N?)\",\"name\":\"constant.numeric.long.clojure\"},{\"include\":\"#keyword\"}]},\"dynamic-variables\":{\"match\":\"\\\\\\\\*[\\\\\\\\w\\\\\\\\.\\\\\\\\-\\\\\\\\_\\\\\\\\:\\\\\\\\+\\\\\\\\=\\\\\\\\>\\\\\\\\<\\\\\\\\!\\\\\\\\?\\\\\\\\d]+\\\\\\\\*\",\"name\":\"meta.symbol.dynamic.clojure\"},\"keyfn\":{\"patterns\":[{\"match\":\"(?<=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\[|\\\\\\\\{))(if(-[-\\\\\\\\p{Ll}\\\\\\\\?]*)?|when(-[-\\\\\\\\p{Ll}]*)?|for(-[-\\\\\\\\p{Ll}]*)?|cond|do|let(-[-\\\\\\\\p{Ll}\\\\\\\\?]*)?|binding|loop|recur|fn|throw[\\\\\\\\p{Ll}\\\\\\\\-]*|try|catch|finally|([\\\\\\\\p{Ll}]*case))(?=(\\\\\\\\s|\\\\\\\\)|\\\\\\\\]|\\\\\\\\}))\",\"name\":\"storage.control.clojure\"},{\"match\":\"(?<=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\[|\\\\\\\\{))(declare-?|(in-)?ns|import|use|require|load|compile|(def[\\\\\\\\p{Ll}\\\\\\\\-]*))(?=(\\\\\\\\s|\\\\\\\\)|\\\\\\\\]|\\\\\\\\}))\",\"name\":\"keyword.control.clojure\"}]},\"keyword\":{\"match\":\"(?<=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\[|\\\\\\\\{)):[\\\\\\\\w\\\\\\\\#\\\\\\\\.\\\\\\\\-\\\\\\\\_\\\\\\\\:\\\\\\\\+\\\\\\\\=\\\\\\\\>\\\\\\\\<\\\\\\\\/\\\\\\\\!\\\\\\\\?\\\\\\\\*]+(?=(\\\\\\\\s|\\\\\\\\)|\\\\\\\\]|\\\\\\\\}|\\\\\\\\,))\",\"name\":\"constant.keyword.clojure\"},\"map\":{\"begin\":\"(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.map.begin.clojure\"}},\"end\":\"(\\\\\\\\}(?=[\\\\\\\\}\\\\\\\\]\\\\\\\\)\\\\\\\\s]*(?:;|$)))|(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.map.end.trailing.clojure\"},\"2\":{\"name\":\"punctuation.section.map.end.clojure\"}},\"name\":\"meta.map.clojure\",\"patterns\":[{\"include\":\"$self\"}]},\"metadata\":{\"patterns\":[{\"begin\":\"(\\\\\\\\^\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.metadata.map.begin.clojure\"}},\"end\":\"(\\\\\\\\}(?=[\\\\\\\\}\\\\\\\\]\\\\\\\\)\\\\\\\\s]*(?:;|$)))|(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.metadata.map.end.trailing.clojure\"},\"2\":{\"name\":\"punctuation.section.metadata.map.end.clojure\"}},\"name\":\"meta.metadata.map.clojure\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(\\\\\\\\^)\",\"end\":\"(\\\\\\\\s)\",\"name\":\"meta.metadata.simple.clojure\",\"patterns\":[{\"include\":\"#keyword\"},{\"include\":\"$self\"}]}]},\"namespace-symbol\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"meta.symbol.namespace.clojure\"}},\"match\":\"([\\\\\\\\p{L}\\\\\\\\.\\\\\\\\-\\\\\\\\_\\\\\\\\+\\\\\\\\=\\\\\\\\>\\\\\\\\<\\\\\\\\!\\\\\\\\?\\\\\\\\*][\\\\\\\\w\\\\\\\\.\\\\\\\\-\\\\\\\\_\\\\\\\\:\\\\\\\\+\\\\\\\\=\\\\\\\\>\\\\\\\\<\\\\\\\\!\\\\\\\\?\\\\\\\\*\\\\\\\\d]*)/\"}]},\"quoted-sexp\":{\"begin\":\"([\\'``]\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.expression.begin.clojure\"}},\"end\":\"(\\\\\\\\))$|(\\\\\\\\)(?=[\\\\\\\\}\\\\\\\\]\\\\\\\\)\\\\\\\\s]*(?:;|$)))|(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.expression.end.trailing.clojure\"},\"2\":{\"name\":\"punctuation.section.expression.end.trailing.clojure\"},\"3\":{\"name\":\"punctuation.section.expression.end.clojure\"}},\"name\":\"meta.quoted-expression.clojure\",\"patterns\":[{\"include\":\"$self\"}]},\"regexp\":{\"begin\":\"#\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.regexp.begin.clojure\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.regexp.end.clojure\"}},\"name\":\"string.regexp.clojure\",\"patterns\":[{\"include\":\"#regexp_escaped_char\"}]},\"regexp_escaped_char\":{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.clojure\"},\"set\":{\"begin\":\"(\\\\\\\\#\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.set.begin.clojure\"}},\"end\":\"(\\\\\\\\}(?=[\\\\\\\\}\\\\\\\\]\\\\\\\\)\\\\\\\\s]*(?:;|$)))|(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.set.end.trailing.clojure\"},\"2\":{\"name\":\"punctuation.section.set.end.clojure\"}},\"name\":\"meta.set.clojure\",\"patterns\":[{\"include\":\"$self\"}]},\"sexp\":{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.expression.begin.clojure\"}},\"end\":\"(\\\\\\\\))$|(\\\\\\\\)(?=[\\\\\\\\}\\\\\\\\]\\\\\\\\)\\\\\\\\s]*(?:;|$)))|(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.expression.end.trailing.clojure\"},\"2\":{\"name\":\"punctuation.section.expression.end.trailing.clojure\"},\"3\":{\"name\":\"punctuation.section.expression.end.clojure\"}},\"name\":\"meta.expression.clojure\",\"patterns\":[{\"begin\":\"(?<=\\\\\\\\()(ns|declare|def[\\\\\\\\w\\\\\\\\d._:+=><!?*-]*|[\\\\\\\\w._:+=><!?*-][\\\\\\\\w\\\\\\\\d._:+=><!?*-]*/def[\\\\\\\\w\\\\\\\\d._:+=><!?*-]*)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.clojure\"}},\"end\":\"(?=\\\\\\\\))\",\"name\":\"meta.definition.global.clojure\",\"patterns\":[{\"include\":\"#metadata\"},{\"include\":\"#dynamic-variables\"},{\"match\":\"([\\\\\\\\p{L}\\\\\\\\.\\\\\\\\-\\\\\\\\_\\\\\\\\+\\\\\\\\=\\\\\\\\>\\\\\\\\<\\\\\\\\!\\\\\\\\?\\\\\\\\*][\\\\\\\\w\\\\\\\\.\\\\\\\\-\\\\\\\\_\\\\\\\\:\\\\\\\\+\\\\\\\\=\\\\\\\\>\\\\\\\\<\\\\\\\\!\\\\\\\\?\\\\\\\\*\\\\\\\\d]*)\",\"name\":\"entity.global.clojure\"},{\"include\":\"$self\"}]},{\"include\":\"#keyfn\"},{\"include\":\"#constants\"},{\"include\":\"#vector\"},{\"include\":\"#map\"},{\"include\":\"#set\"},{\"include\":\"#sexp\"},{\"captures\":{\"1\":{\"name\":\"entity.name.function.clojure\"}},\"match\":\"(?<=\\\\\\\\()(.+?)(?=\\\\\\\\s|\\\\\\\\))\",\"patterns\":[{\"include\":\"$self\"}]},{\"include\":\"$self\"}]},\"shebang-comment\":{\"begin\":\"^(#!)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.shebang.clojure\"}},\"end\":\"$\",\"name\":\"comment.line.shebang.clojure\"},\"string\":{\"begin\":\"(?<!\\\\\\\\\\\\\\\\)(\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.clojure\"}},\"end\":\"(\\\\\")\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.clojure\"}},\"name\":\"string.quoted.double.clojure\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.clojure\"}]},\"symbol\":{\"patterns\":[{\"match\":\"([\\\\\\\\p{L}\\\\\\\\.\\\\\\\\-\\\\\\\\_\\\\\\\\+\\\\\\\\=\\\\\\\\>\\\\\\\\<\\\\\\\\!\\\\\\\\?\\\\\\\\*][\\\\\\\\w\\\\\\\\.\\\\\\\\-\\\\\\\\_\\\\\\\\:\\\\\\\\+\\\\\\\\=\\\\\\\\>\\\\\\\\<\\\\\\\\!\\\\\\\\?\\\\\\\\*\\\\\\\\d]*)\",\"name\":\"meta.symbol.clojure\"}]},\"var\":{\"match\":\"(?<=(\\\\\\\\s|\\\\\\\\(|\\\\\\\\[|\\\\\\\\{)\\\\\\\\#)\\'[\\\\\\\\w\\\\\\\\.\\\\\\\\-\\\\\\\\_\\\\\\\\:\\\\\\\\+\\\\\\\\=\\\\\\\\>\\\\\\\\<\\\\\\\\/\\\\\\\\!\\\\\\\\?\\\\\\\\*]+(?=(\\\\\\\\s|\\\\\\\\)|\\\\\\\\]|\\\\\\\\}))\",\"name\":\"meta.var.clojure\"},\"vector\":{\"begin\":\"(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.vector.begin.clojure\"}},\"end\":\"(\\\\\\\\](?=[\\\\\\\\}\\\\\\\\]\\\\\\\\)\\\\\\\\s]*(?:;|$)))|(\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.vector.end.trailing.clojure\"},\"2\":{\"name\":\"punctuation.section.vector.end.clojure\"}},\"name\":\"meta.vector.clojure\",\"patterns\":[{\"include\":\"$self\"}]}},\"scopeName\":\"source.clojure\",\"aliases\":[\"clj\"]}')),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/DyKutqhl.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var x={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"],[\"<\",\">\"]],autoClosingPairs:[{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]},{open:\"{\",close:\"}\",notIn:[\"string\",\"comment\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\"]}]},e={defaultToken:\"\",tokenPostfix:\".sol\",brackets:[{token:\"delimiter.curly\",open:\"{\",close:\"}\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"},{token:\"delimiter.square\",open:\"[\",close:\"]\"},{token:\"delimiter.angle\",open:\"<\",close:\">\"}],keywords:[\"pragma\",\"solidity\",\"contract\",\"library\",\"using\",\"struct\",\"function\",\"modifier\",\"constructor\",\"address\",\"string\",\"bool\",\"Int\",\"Uint\",\"Byte\",\"Fixed\",\"Ufixed\",\"int\",\"int8\",\"int16\",\"int24\",\"int32\",\"int40\",\"int48\",\"int56\",\"int64\",\"int72\",\"int80\",\"int88\",\"int96\",\"int104\",\"int112\",\"int120\",\"int128\",\"int136\",\"int144\",\"int152\",\"int160\",\"int168\",\"int176\",\"int184\",\"int192\",\"int200\",\"int208\",\"int216\",\"int224\",\"int232\",\"int240\",\"int248\",\"int256\",\"uint\",\"uint8\",\"uint16\",\"uint24\",\"uint32\",\"uint40\",\"uint48\",\"uint56\",\"uint64\",\"uint72\",\"uint80\",\"uint88\",\"uint96\",\"uint104\",\"uint112\",\"uint120\",\"uint128\",\"uint136\",\"uint144\",\"uint152\",\"uint160\",\"uint168\",\"uint176\",\"uint184\",\"uint192\",\"uint200\",\"uint208\",\"uint216\",\"uint224\",\"uint232\",\"uint240\",\"uint248\",\"uint256\",\"byte\",\"bytes\",\"bytes1\",\"bytes2\",\"bytes3\",\"bytes4\",\"bytes5\",\"bytes6\",\"bytes7\",\"bytes8\",\"bytes9\",\"bytes10\",\"bytes11\",\"bytes12\",\"bytes13\",\"bytes14\",\"bytes15\",\"bytes16\",\"bytes17\",\"bytes18\",\"bytes19\",\"bytes20\",\"bytes21\",\"bytes22\",\"bytes23\",\"bytes24\",\"bytes25\",\"bytes26\",\"bytes27\",\"bytes28\",\"bytes29\",\"bytes30\",\"bytes31\",\"bytes32\",\"fixed\",\"fixed0x8\",\"fixed0x16\",\"fixed0x24\",\"fixed0x32\",\"fixed0x40\",\"fixed0x48\",\"fixed0x56\",\"fixed0x64\",\"fixed0x72\",\"fixed0x80\",\"fixed0x88\",\"fixed0x96\",\"fixed0x104\",\"fixed0x112\",\"fixed0x120\",\"fixed0x128\",\"fixed0x136\",\"fixed0x144\",\"fixed0x152\",\"fixed0x160\",\"fixed0x168\",\"fixed0x176\",\"fixed0x184\",\"fixed0x192\",\"fixed0x200\",\"fixed0x208\",\"fixed0x216\",\"fixed0x224\",\"fixed0x232\",\"fixed0x240\",\"fixed0x248\",\"fixed0x256\",\"fixed8x8\",\"fixed8x16\",\"fixed8x24\",\"fixed8x32\",\"fixed8x40\",\"fixed8x48\",\"fixed8x56\",\"fixed8x64\",\"fixed8x72\",\"fixed8x80\",\"fixed8x88\",\"fixed8x96\",\"fixed8x104\",\"fixed8x112\",\"fixed8x120\",\"fixed8x128\",\"fixed8x136\",\"fixed8x144\",\"fixed8x152\",\"fixed8x160\",\"fixed8x168\",\"fixed8x176\",\"fixed8x184\",\"fixed8x192\",\"fixed8x200\",\"fixed8x208\",\"fixed8x216\",\"fixed8x224\",\"fixed8x232\",\"fixed8x240\",\"fixed8x248\",\"fixed16x8\",\"fixed16x16\",\"fixed16x24\",\"fixed16x32\",\"fixed16x40\",\"fixed16x48\",\"fixed16x56\",\"fixed16x64\",\"fixed16x72\",\"fixed16x80\",\"fixed16x88\",\"fixed16x96\",\"fixed16x104\",\"fixed16x112\",\"fixed16x120\",\"fixed16x128\",\"fixed16x136\",\"fixed16x144\",\"fixed16x152\",\"fixed16x160\",\"fixed16x168\",\"fixed16x176\",\"fixed16x184\",\"fixed16x192\",\"fixed16x200\",\"fixed16x208\",\"fixed16x216\",\"fixed16x224\",\"fixed16x232\",\"fixed16x240\",\"fixed24x8\",\"fixed24x16\",\"fixed24x24\",\"fixed24x32\",\"fixed24x40\",\"fixed24x48\",\"fixed24x56\",\"fixed24x64\",\"fixed24x72\",\"fixed24x80\",\"fixed24x88\",\"fixed24x96\",\"fixed24x104\",\"fixed24x112\",\"fixed24x120\",\"fixed24x128\",\"fixed24x136\",\"fixed24x144\",\"fixed24x152\",\"fixed24x160\",\"fixed24x168\",\"fixed24x176\",\"fixed24x184\",\"fixed24x192\",\"fixed24x200\",\"fixed24x208\",\"fixed24x216\",\"fixed24x224\",\"fixed24x232\",\"fixed32x8\",\"fixed32x16\",\"fixed32x24\",\"fixed32x32\",\"fixed32x40\",\"fixed32x48\",\"fixed32x56\",\"fixed32x64\",\"fixed32x72\",\"fixed32x80\",\"fixed32x88\",\"fixed32x96\",\"fixed32x104\",\"fixed32x112\",\"fixed32x120\",\"fixed32x128\",\"fixed32x136\",\"fixed32x144\",\"fixed32x152\",\"fixed32x160\",\"fixed32x168\",\"fixed32x176\",\"fixed32x184\",\"fixed32x192\",\"fixed32x200\",\"fixed32x208\",\"fixed32x216\",\"fixed32x224\",\"fixed40x8\",\"fixed40x16\",\"fixed40x24\",\"fixed40x32\",\"fixed40x40\",\"fixed40x48\",\"fixed40x56\",\"fixed40x64\",\"fixed40x72\",\"fixed40x80\",\"fixed40x88\",\"fixed40x96\",\"fixed40x104\",\"fixed40x112\",\"fixed40x120\",\"fixed40x128\",\"fixed40x136\",\"fixed40x144\",\"fixed40x152\",\"fixed40x160\",\"fixed40x168\",\"fixed40x176\",\"fixed40x184\",\"fixed40x192\",\"fixed40x200\",\"fixed40x208\",\"fixed40x216\",\"fixed48x8\",\"fixed48x16\",\"fixed48x24\",\"fixed48x32\",\"fixed48x40\",\"fixed48x48\",\"fixed48x56\",\"fixed48x64\",\"fixed48x72\",\"fixed48x80\",\"fixed48x88\",\"fixed48x96\",\"fixed48x104\",\"fixed48x112\",\"fixed48x120\",\"fixed48x128\",\"fixed48x136\",\"fixed48x144\",\"fixed48x152\",\"fixed48x160\",\"fixed48x168\",\"fixed48x176\",\"fixed48x184\",\"fixed48x192\",\"fixed48x200\",\"fixed48x208\",\"fixed56x8\",\"fixed56x16\",\"fixed56x24\",\"fixed56x32\",\"fixed56x40\",\"fixed56x48\",\"fixed56x56\",\"fixed56x64\",\"fixed56x72\",\"fixed56x80\",\"fixed56x88\",\"fixed56x96\",\"fixed56x104\",\"fixed56x112\",\"fixed56x120\",\"fixed56x128\",\"fixed56x136\",\"fixed56x144\",\"fixed56x152\",\"fixed56x160\",\"fixed56x168\",\"fixed56x176\",\"fixed56x184\",\"fixed56x192\",\"fixed56x200\",\"fixed64x8\",\"fixed64x16\",\"fixed64x24\",\"fixed64x32\",\"fixed64x40\",\"fixed64x48\",\"fixed64x56\",\"fixed64x64\",\"fixed64x72\",\"fixed64x80\",\"fixed64x88\",\"fixed64x96\",\"fixed64x104\",\"fixed64x112\",\"fixed64x120\",\"fixed64x128\",\"fixed64x136\",\"fixed64x144\",\"fixed64x152\",\"fixed64x160\",\"fixed64x168\",\"fixed64x176\",\"fixed64x184\",\"fixed64x192\",\"fixed72x8\",\"fixed72x16\",\"fixed72x24\",\"fixed72x32\",\"fixed72x40\",\"fixed72x48\",\"fixed72x56\",\"fixed72x64\",\"fixed72x72\",\"fixed72x80\",\"fixed72x88\",\"fixed72x96\",\"fixed72x104\",\"fixed72x112\",\"fixed72x120\",\"fixed72x128\",\"fixed72x136\",\"fixed72x144\",\"fixed72x152\",\"fixed72x160\",\"fixed72x168\",\"fixed72x176\",\"fixed72x184\",\"fixed80x8\",\"fixed80x16\",\"fixed80x24\",\"fixed80x32\",\"fixed80x40\",\"fixed80x48\",\"fixed80x56\",\"fixed80x64\",\"fixed80x72\",\"fixed80x80\",\"fixed80x88\",\"fixed80x96\",\"fixed80x104\",\"fixed80x112\",\"fixed80x120\",\"fixed80x128\",\"fixed80x136\",\"fixed80x144\",\"fixed80x152\",\"fixed80x160\",\"fixed80x168\",\"fixed80x176\",\"fixed88x8\",\"fixed88x16\",\"fixed88x24\",\"fixed88x32\",\"fixed88x40\",\"fixed88x48\",\"fixed88x56\",\"fixed88x64\",\"fixed88x72\",\"fixed88x80\",\"fixed88x88\",\"fixed88x96\",\"fixed88x104\",\"fixed88x112\",\"fixed88x120\",\"fixed88x128\",\"fixed88x136\",\"fixed88x144\",\"fixed88x152\",\"fixed88x160\",\"fixed88x168\",\"fixed96x8\",\"fixed96x16\",\"fixed96x24\",\"fixed96x32\",\"fixed96x40\",\"fixed96x48\",\"fixed96x56\",\"fixed96x64\",\"fixed96x72\",\"fixed96x80\",\"fixed96x88\",\"fixed96x96\",\"fixed96x104\",\"fixed96x112\",\"fixed96x120\",\"fixed96x128\",\"fixed96x136\",\"fixed96x144\",\"fixed96x152\",\"fixed96x160\",\"fixed104x8\",\"fixed104x16\",\"fixed104x24\",\"fixed104x32\",\"fixed104x40\",\"fixed104x48\",\"fixed104x56\",\"fixed104x64\",\"fixed104x72\",\"fixed104x80\",\"fixed104x88\",\"fixed104x96\",\"fixed104x104\",\"fixed104x112\",\"fixed104x120\",\"fixed104x128\",\"fixed104x136\",\"fixed104x144\",\"fixed104x152\",\"fixed112x8\",\"fixed112x16\",\"fixed112x24\",\"fixed112x32\",\"fixed112x40\",\"fixed112x48\",\"fixed112x56\",\"fixed112x64\",\"fixed112x72\",\"fixed112x80\",\"fixed112x88\",\"fixed112x96\",\"fixed112x104\",\"fixed112x112\",\"fixed112x120\",\"fixed112x128\",\"fixed112x136\",\"fixed112x144\",\"fixed120x8\",\"fixed120x16\",\"fixed120x24\",\"fixed120x32\",\"fixed120x40\",\"fixed120x48\",\"fixed120x56\",\"fixed120x64\",\"fixed120x72\",\"fixed120x80\",\"fixed120x88\",\"fixed120x96\",\"fixed120x104\",\"fixed120x112\",\"fixed120x120\",\"fixed120x128\",\"fixed120x136\",\"fixed128x8\",\"fixed128x16\",\"fixed128x24\",\"fixed128x32\",\"fixed128x40\",\"fixed128x48\",\"fixed128x56\",\"fixed128x64\",\"fixed128x72\",\"fixed128x80\",\"fixed128x88\",\"fixed128x96\",\"fixed128x104\",\"fixed128x112\",\"fixed128x120\",\"fixed128x128\",\"fixed136x8\",\"fixed136x16\",\"fixed136x24\",\"fixed136x32\",\"fixed136x40\",\"fixed136x48\",\"fixed136x56\",\"fixed136x64\",\"fixed136x72\",\"fixed136x80\",\"fixed136x88\",\"fixed136x96\",\"fixed136x104\",\"fixed136x112\",\"fixed136x120\",\"fixed144x8\",\"fixed144x16\",\"fixed144x24\",\"fixed144x32\",\"fixed144x40\",\"fixed144x48\",\"fixed144x56\",\"fixed144x64\",\"fixed144x72\",\"fixed144x80\",\"fixed144x88\",\"fixed144x96\",\"fixed144x104\",\"fixed144x112\",\"fixed152x8\",\"fixed152x16\",\"fixed152x24\",\"fixed152x32\",\"fixed152x40\",\"fixed152x48\",\"fixed152x56\",\"fixed152x64\",\"fixed152x72\",\"fixed152x80\",\"fixed152x88\",\"fixed152x96\",\"fixed152x104\",\"fixed160x8\",\"fixed160x16\",\"fixed160x24\",\"fixed160x32\",\"fixed160x40\",\"fixed160x48\",\"fixed160x56\",\"fixed160x64\",\"fixed160x72\",\"fixed160x80\",\"fixed160x88\",\"fixed160x96\",\"fixed168x8\",\"fixed168x16\",\"fixed168x24\",\"fixed168x32\",\"fixed168x40\",\"fixed168x48\",\"fixed168x56\",\"fixed168x64\",\"fixed168x72\",\"fixed168x80\",\"fixed168x88\",\"fixed176x8\",\"fixed176x16\",\"fixed176x24\",\"fixed176x32\",\"fixed176x40\",\"fixed176x48\",\"fixed176x56\",\"fixed176x64\",\"fixed176x72\",\"fixed176x80\",\"fixed184x8\",\"fixed184x16\",\"fixed184x24\",\"fixed184x32\",\"fixed184x40\",\"fixed184x48\",\"fixed184x56\",\"fixed184x64\",\"fixed184x72\",\"fixed192x8\",\"fixed192x16\",\"fixed192x24\",\"fixed192x32\",\"fixed192x40\",\"fixed192x48\",\"fixed192x56\",\"fixed192x64\",\"fixed200x8\",\"fixed200x16\",\"fixed200x24\",\"fixed200x32\",\"fixed200x40\",\"fixed200x48\",\"fixed200x56\",\"fixed208x8\",\"fixed208x16\",\"fixed208x24\",\"fixed208x32\",\"fixed208x40\",\"fixed208x48\",\"fixed216x8\",\"fixed216x16\",\"fixed216x24\",\"fixed216x32\",\"fixed216x40\",\"fixed224x8\",\"fixed224x16\",\"fixed224x24\",\"fixed224x32\",\"fixed232x8\",\"fixed232x16\",\"fixed232x24\",\"fixed240x8\",\"fixed240x16\",\"fixed248x8\",\"ufixed\",\"ufixed0x8\",\"ufixed0x16\",\"ufixed0x24\",\"ufixed0x32\",\"ufixed0x40\",\"ufixed0x48\",\"ufixed0x56\",\"ufixed0x64\",\"ufixed0x72\",\"ufixed0x80\",\"ufixed0x88\",\"ufixed0x96\",\"ufixed0x104\",\"ufixed0x112\",\"ufixed0x120\",\"ufixed0x128\",\"ufixed0x136\",\"ufixed0x144\",\"ufixed0x152\",\"ufixed0x160\",\"ufixed0x168\",\"ufixed0x176\",\"ufixed0x184\",\"ufixed0x192\",\"ufixed0x200\",\"ufixed0x208\",\"ufixed0x216\",\"ufixed0x224\",\"ufixed0x232\",\"ufixed0x240\",\"ufixed0x248\",\"ufixed0x256\",\"ufixed8x8\",\"ufixed8x16\",\"ufixed8x24\",\"ufixed8x32\",\"ufixed8x40\",\"ufixed8x48\",\"ufixed8x56\",\"ufixed8x64\",\"ufixed8x72\",\"ufixed8x80\",\"ufixed8x88\",\"ufixed8x96\",\"ufixed8x104\",\"ufixed8x112\",\"ufixed8x120\",\"ufixed8x128\",\"ufixed8x136\",\"ufixed8x144\",\"ufixed8x152\",\"ufixed8x160\",\"ufixed8x168\",\"ufixed8x176\",\"ufixed8x184\",\"ufixed8x192\",\"ufixed8x200\",\"ufixed8x208\",\"ufixed8x216\",\"ufixed8x224\",\"ufixed8x232\",\"ufixed8x240\",\"ufixed8x248\",\"ufixed16x8\",\"ufixed16x16\",\"ufixed16x24\",\"ufixed16x32\",\"ufixed16x40\",\"ufixed16x48\",\"ufixed16x56\",\"ufixed16x64\",\"ufixed16x72\",\"ufixed16x80\",\"ufixed16x88\",\"ufixed16x96\",\"ufixed16x104\",\"ufixed16x112\",\"ufixed16x120\",\"ufixed16x128\",\"ufixed16x136\",\"ufixed16x144\",\"ufixed16x152\",\"ufixed16x160\",\"ufixed16x168\",\"ufixed16x176\",\"ufixed16x184\",\"ufixed16x192\",\"ufixed16x200\",\"ufixed16x208\",\"ufixed16x216\",\"ufixed16x224\",\"ufixed16x232\",\"ufixed16x240\",\"ufixed24x8\",\"ufixed24x16\",\"ufixed24x24\",\"ufixed24x32\",\"ufixed24x40\",\"ufixed24x48\",\"ufixed24x56\",\"ufixed24x64\",\"ufixed24x72\",\"ufixed24x80\",\"ufixed24x88\",\"ufixed24x96\",\"ufixed24x104\",\"ufixed24x112\",\"ufixed24x120\",\"ufixed24x128\",\"ufixed24x136\",\"ufixed24x144\",\"ufixed24x152\",\"ufixed24x160\",\"ufixed24x168\",\"ufixed24x176\",\"ufixed24x184\",\"ufixed24x192\",\"ufixed24x200\",\"ufixed24x208\",\"ufixed24x216\",\"ufixed24x224\",\"ufixed24x232\",\"ufixed32x8\",\"ufixed32x16\",\"ufixed32x24\",\"ufixed32x32\",\"ufixed32x40\",\"ufixed32x48\",\"ufixed32x56\",\"ufixed32x64\",\"ufixed32x72\",\"ufixed32x80\",\"ufixed32x88\",\"ufixed32x96\",\"ufixed32x104\",\"ufixed32x112\",\"ufixed32x120\",\"ufixed32x128\",\"ufixed32x136\",\"ufixed32x144\",\"ufixed32x152\",\"ufixed32x160\",\"ufixed32x168\",\"ufixed32x176\",\"ufixed32x184\",\"ufixed32x192\",\"ufixed32x200\",\"ufixed32x208\",\"ufixed32x216\",\"ufixed32x224\",\"ufixed40x8\",\"ufixed40x16\",\"ufixed40x24\",\"ufixed40x32\",\"ufixed40x40\",\"ufixed40x48\",\"ufixed40x56\",\"ufixed40x64\",\"ufixed40x72\",\"ufixed40x80\",\"ufixed40x88\",\"ufixed40x96\",\"ufixed40x104\",\"ufixed40x112\",\"ufixed40x120\",\"ufixed40x128\",\"ufixed40x136\",\"ufixed40x144\",\"ufixed40x152\",\"ufixed40x160\",\"ufixed40x168\",\"ufixed40x176\",\"ufixed40x184\",\"ufixed40x192\",\"ufixed40x200\",\"ufixed40x208\",\"ufixed40x216\",\"ufixed48x8\",\"ufixed48x16\",\"ufixed48x24\",\"ufixed48x32\",\"ufixed48x40\",\"ufixed48x48\",\"ufixed48x56\",\"ufixed48x64\",\"ufixed48x72\",\"ufixed48x80\",\"ufixed48x88\",\"ufixed48x96\",\"ufixed48x104\",\"ufixed48x112\",\"ufixed48x120\",\"ufixed48x128\",\"ufixed48x136\",\"ufixed48x144\",\"ufixed48x152\",\"ufixed48x160\",\"ufixed48x168\",\"ufixed48x176\",\"ufixed48x184\",\"ufixed48x192\",\"ufixed48x200\",\"ufixed48x208\",\"ufixed56x8\",\"ufixed56x16\",\"ufixed56x24\",\"ufixed56x32\",\"ufixed56x40\",\"ufixed56x48\",\"ufixed56x56\",\"ufixed56x64\",\"ufixed56x72\",\"ufixed56x80\",\"ufixed56x88\",\"ufixed56x96\",\"ufixed56x104\",\"ufixed56x112\",\"ufixed56x120\",\"ufixed56x128\",\"ufixed56x136\",\"ufixed56x144\",\"ufixed56x152\",\"ufixed56x160\",\"ufixed56x168\",\"ufixed56x176\",\"ufixed56x184\",\"ufixed56x192\",\"ufixed56x200\",\"ufixed64x8\",\"ufixed64x16\",\"ufixed64x24\",\"ufixed64x32\",\"ufixed64x40\",\"ufixed64x48\",\"ufixed64x56\",\"ufixed64x64\",\"ufixed64x72\",\"ufixed64x80\",\"ufixed64x88\",\"ufixed64x96\",\"ufixed64x104\",\"ufixed64x112\",\"ufixed64x120\",\"ufixed64x128\",\"ufixed64x136\",\"ufixed64x144\",\"ufixed64x152\",\"ufixed64x160\",\"ufixed64x168\",\"ufixed64x176\",\"ufixed64x184\",\"ufixed64x192\",\"ufixed72x8\",\"ufixed72x16\",\"ufixed72x24\",\"ufixed72x32\",\"ufixed72x40\",\"ufixed72x48\",\"ufixed72x56\",\"ufixed72x64\",\"ufixed72x72\",\"ufixed72x80\",\"ufixed72x88\",\"ufixed72x96\",\"ufixed72x104\",\"ufixed72x112\",\"ufixed72x120\",\"ufixed72x128\",\"ufixed72x136\",\"ufixed72x144\",\"ufixed72x152\",\"ufixed72x160\",\"ufixed72x168\",\"ufixed72x176\",\"ufixed72x184\",\"ufixed80x8\",\"ufixed80x16\",\"ufixed80x24\",\"ufixed80x32\",\"ufixed80x40\",\"ufixed80x48\",\"ufixed80x56\",\"ufixed80x64\",\"ufixed80x72\",\"ufixed80x80\",\"ufixed80x88\",\"ufixed80x96\",\"ufixed80x104\",\"ufixed80x112\",\"ufixed80x120\",\"ufixed80x128\",\"ufixed80x136\",\"ufixed80x144\",\"ufixed80x152\",\"ufixed80x160\",\"ufixed80x168\",\"ufixed80x176\",\"ufixed88x8\",\"ufixed88x16\",\"ufixed88x24\",\"ufixed88x32\",\"ufixed88x40\",\"ufixed88x48\",\"ufixed88x56\",\"ufixed88x64\",\"ufixed88x72\",\"ufixed88x80\",\"ufixed88x88\",\"ufixed88x96\",\"ufixed88x104\",\"ufixed88x112\",\"ufixed88x120\",\"ufixed88x128\",\"ufixed88x136\",\"ufixed88x144\",\"ufixed88x152\",\"ufixed88x160\",\"ufixed88x168\",\"ufixed96x8\",\"ufixed96x16\",\"ufixed96x24\",\"ufixed96x32\",\"ufixed96x40\",\"ufixed96x48\",\"ufixed96x56\",\"ufixed96x64\",\"ufixed96x72\",\"ufixed96x80\",\"ufixed96x88\",\"ufixed96x96\",\"ufixed96x104\",\"ufixed96x112\",\"ufixed96x120\",\"ufixed96x128\",\"ufixed96x136\",\"ufixed96x144\",\"ufixed96x152\",\"ufixed96x160\",\"ufixed104x8\",\"ufixed104x16\",\"ufixed104x24\",\"ufixed104x32\",\"ufixed104x40\",\"ufixed104x48\",\"ufixed104x56\",\"ufixed104x64\",\"ufixed104x72\",\"ufixed104x80\",\"ufixed104x88\",\"ufixed104x96\",\"ufixed104x104\",\"ufixed104x112\",\"ufixed104x120\",\"ufixed104x128\",\"ufixed104x136\",\"ufixed104x144\",\"ufixed104x152\",\"ufixed112x8\",\"ufixed112x16\",\"ufixed112x24\",\"ufixed112x32\",\"ufixed112x40\",\"ufixed112x48\",\"ufixed112x56\",\"ufixed112x64\",\"ufixed112x72\",\"ufixed112x80\",\"ufixed112x88\",\"ufixed112x96\",\"ufixed112x104\",\"ufixed112x112\",\"ufixed112x120\",\"ufixed112x128\",\"ufixed112x136\",\"ufixed112x144\",\"ufixed120x8\",\"ufixed120x16\",\"ufixed120x24\",\"ufixed120x32\",\"ufixed120x40\",\"ufixed120x48\",\"ufixed120x56\",\"ufixed120x64\",\"ufixed120x72\",\"ufixed120x80\",\"ufixed120x88\",\"ufixed120x96\",\"ufixed120x104\",\"ufixed120x112\",\"ufixed120x120\",\"ufixed120x128\",\"ufixed120x136\",\"ufixed128x8\",\"ufixed128x16\",\"ufixed128x24\",\"ufixed128x32\",\"ufixed128x40\",\"ufixed128x48\",\"ufixed128x56\",\"ufixed128x64\",\"ufixed128x72\",\"ufixed128x80\",\"ufixed128x88\",\"ufixed128x96\",\"ufixed128x104\",\"ufixed128x112\",\"ufixed128x120\",\"ufixed128x128\",\"ufixed136x8\",\"ufixed136x16\",\"ufixed136x24\",\"ufixed136x32\",\"ufixed136x40\",\"ufixed136x48\",\"ufixed136x56\",\"ufixed136x64\",\"ufixed136x72\",\"ufixed136x80\",\"ufixed136x88\",\"ufixed136x96\",\"ufixed136x104\",\"ufixed136x112\",\"ufixed136x120\",\"ufixed144x8\",\"ufixed144x16\",\"ufixed144x24\",\"ufixed144x32\",\"ufixed144x40\",\"ufixed144x48\",\"ufixed144x56\",\"ufixed144x64\",\"ufixed144x72\",\"ufixed144x80\",\"ufixed144x88\",\"ufixed144x96\",\"ufixed144x104\",\"ufixed144x112\",\"ufixed152x8\",\"ufixed152x16\",\"ufixed152x24\",\"ufixed152x32\",\"ufixed152x40\",\"ufixed152x48\",\"ufixed152x56\",\"ufixed152x64\",\"ufixed152x72\",\"ufixed152x80\",\"ufixed152x88\",\"ufixed152x96\",\"ufixed152x104\",\"ufixed160x8\",\"ufixed160x16\",\"ufixed160x24\",\"ufixed160x32\",\"ufixed160x40\",\"ufixed160x48\",\"ufixed160x56\",\"ufixed160x64\",\"ufixed160x72\",\"ufixed160x80\",\"ufixed160x88\",\"ufixed160x96\",\"ufixed168x8\",\"ufixed168x16\",\"ufixed168x24\",\"ufixed168x32\",\"ufixed168x40\",\"ufixed168x48\",\"ufixed168x56\",\"ufixed168x64\",\"ufixed168x72\",\"ufixed168x80\",\"ufixed168x88\",\"ufixed176x8\",\"ufixed176x16\",\"ufixed176x24\",\"ufixed176x32\",\"ufixed176x40\",\"ufixed176x48\",\"ufixed176x56\",\"ufixed176x64\",\"ufixed176x72\",\"ufixed176x80\",\"ufixed184x8\",\"ufixed184x16\",\"ufixed184x24\",\"ufixed184x32\",\"ufixed184x40\",\"ufixed184x48\",\"ufixed184x56\",\"ufixed184x64\",\"ufixed184x72\",\"ufixed192x8\",\"ufixed192x16\",\"ufixed192x24\",\"ufixed192x32\",\"ufixed192x40\",\"ufixed192x48\",\"ufixed192x56\",\"ufixed192x64\",\"ufixed200x8\",\"ufixed200x16\",\"ufixed200x24\",\"ufixed200x32\",\"ufixed200x40\",\"ufixed200x48\",\"ufixed200x56\",\"ufixed208x8\",\"ufixed208x16\",\"ufixed208x24\",\"ufixed208x32\",\"ufixed208x40\",\"ufixed208x48\",\"ufixed216x8\",\"ufixed216x16\",\"ufixed216x24\",\"ufixed216x32\",\"ufixed216x40\",\"ufixed224x8\",\"ufixed224x16\",\"ufixed224x24\",\"ufixed224x32\",\"ufixed232x8\",\"ufixed232x16\",\"ufixed232x24\",\"ufixed240x8\",\"ufixed240x16\",\"ufixed248x8\",\"event\",\"enum\",\"let\",\"mapping\",\"private\",\"public\",\"external\",\"inherited\",\"payable\",\"true\",\"false\",\"var\",\"import\",\"constant\",\"if\",\"else\",\"for\",\"else\",\"for\",\"while\",\"do\",\"break\",\"continue\",\"throw\",\"returns\",\"return\",\"suicide\",\"new\",\"is\",\"this\",\"super\"],operators:[\"=\",\">\",\"<\",\"!\",\"~\",\"?\",\":\",\"==\",\"<=\",\">=\",\"!=\",\"&&\",\"||\",\"++\",\"--\",\"+\",\"-\",\"*\",\"/\",\"&\",\"|\",\"^\",\"%\",\"<<\",\">>\",\">>>\",\"+=\",\"-=\",\"*=\",\"/=\",\"&=\",\"|=\",\"^=\",\"%=\",\"<<=\",\">>=\",\">>>=\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,integersuffix:/(ll|LL|u|U|l|L)?(ll|LL|u|U|l|L)?/,floatsuffix:/[fFlL]?/,tokenizer:{root:[[/[a-zA-Z_]\\w*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/\\[\\[.*\\]\\]/,\"annotation\"],[/^\\s*#\\w+/,\"keyword\"],[/int\\d*/,\"keyword\"],[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/\\d*\\d+[eE]([\\-+]?\\d+)?(@floatsuffix)/,\"number.float\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?(@floatsuffix)/,\"number.float\"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,\"number.hex\"],[/0[0-7']*[0-7](@integersuffix)/,\"number.octal\"],[/0[bB][0-1']*[0-1](@integersuffix)/,\"number.binary\"],[/\\d[\\d']*\\d(@integersuffix)/,\"number\"],[/\\d(@integersuffix)/,\"number\"],[/[;,.]/,\"delimiter\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,\"string\",\"@string\"],[/'[^\\\\']'/,\"string\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",\"string\"]],[/'/,\"string.invalid\"]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/\\/\\*\\*(?!\\/)/,\"comment.doc\",\"@doccomment\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\*\\//,\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],doccomment:[[/[^\\/*]+/,\"comment.doc\"],[/\\*\\//,\"comment.doc\",\"@pop\"],[/[\\/*]/,\"comment.doc\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,\"string\",\"@pop\"]]}};export{x as conf,e as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/DyLYGjHh.js",
    "content": "import{_ as ue}from\"./DMpbkAFi.js\";import{d as G,r as m,c as z,J as me,C,i as s,f as p,x as o,D as V,g as x,j as t,v as _e,t as I,G as N,H as pe,a6 as fe,a4 as ve,b as ge,B as ye,w as L,a7 as he,a8 as q,h as T,E as H,e as xe,F as be,O as ke,k as we,a9 as Se,aa as $e,_ as Ce,ab as Ve,s as O}from\"./CU_MfyYc.js\";import{_ as Ue}from\"./CvhZxjKo.js\";import{_ as Be}from\"./Cw4FHd9N.js\";import{_ as De}from\"./BuljS_lV.js\";import{_ as Ne}from\"./wLBHnxd4.js\";import{u as Te}from\"./Cwg39VG_.js\";import\"./C6794tGI.js\";import\"./DP9I38t9.js\";import\"./DK27pemE.js\";const Me={class:\"bg-white dark:bg-gray-800/50 border border-gray-200 dark:border-gray-700 rounded-lg overflow-hidden shadow-sm\"},je={class:\"flex flex-col\"},ze={class:\"text-sm font-medium text-gray-900 dark:text-gray-100\"},Re={class:\"text-xs text-gray-500 dark:text-gray-400\"},qe={class:\"flex flex-col\"},Fe={class:\"text-sm text-gray-700 dark:text-gray-300\"},Pe={class:\"text-xs text-gray-500 dark:text-gray-400\"},Ae={class:\"flex justify-center\"},Le={key:1,class:\"text-sm text-gray-400\"},He={class:\"flex justify-center\"},Oe={class:\"text-sm text-gray-500 dark:text-gray-400\"},Ee={class:\"flex items-center justify-end gap-1\"},Ge=G({__name:\"BacktestSessionsTable\",props:{sessions:{}},emits:[\"notes\",\"load\",\"delete\"],setup(E){const b=E,U=m({column:\"updated_at\",direction:\"desc\"}),B=[{key:\"strategy\",label:\"Strategy\"},{key:\"session\",label:\"Session\"},{key:\"net_profit\",label:\"Net Profit %\",sortable:!0,class:\"text-center\"},{key:\"status\",label:\"Status\",class:\"text-center\"},{key:\"updated_at\",label:\"Date\",sortable:!0},{key:\"actions\",label:\"\",class:\"w-32 text-right\"}],P=z(()=>b.sessions.map(n=>{var f,k,y,h,u,l,c,w,D,S,$,v,g,R;return{id:n.id,title:n.title,strategy:(h=(y=(k=(f=n.state)==null?void 0:f.form)==null?void 0:k.routes)==null?void 0:y[0])==null?void 0:h.strategy,exchange:(l=(u=n.state)==null?void 0:u.form)==null?void 0:l.exchange,symbol:(S=(D=(w=(c=n.state)==null?void 0:c.form)==null?void 0:w.routes)==null?void 0:D[0])==null?void 0:S.symbol,timeframe:(R=(g=(v=($=n.state)==null?void 0:$.form)==null?void 0:v.routes)==null?void 0:g[0])==null?void 0:R.timeframe,net_profit_percentage:n.net_profit_percentage,status:n.status,updated_at:me.timestampToReadableDateTime(n.updated_at),rawSession:n}}));function _(n){switch(n==null?void 0:n.toLowerCase()){case\"running\":return\"blue\";case\"finished\":return\"green\";case\"stopped\":return\"red\";case\"cancelled\":return\"gray\";default:return\"gray\"}}return(n,f)=>{const k=Be,y=I,h=_e,u=De;return x(),C(\"div\",Me,[s(u,{sort:o(U),\"onUpdate:sort\":f[0]||(f[0]=l=>V(U)?U.value=l:null),rows:o(P),columns:B,class:\"w-full\",ui:{td:{base:\"whitespace-nowrap\"},th:{base:\"whitespace-nowrap\"}}},{\"strategy-data\":p(({row:l})=>[t(\"div\",je,[t(\"span\",ze,N(l.title||l.strategy||\"Unknown Strategy\"),1),t(\"span\",Re,N(l.exchange||\"Unknown Exchange\"),1)])]),\"session-data\":p(({row:l})=>[t(\"div\",qe,[t(\"span\",Fe,N(l.symbol||\"N/A\"),1),t(\"span\",Pe,N(l.timeframe||\"N/A\"),1)])]),\"net_profit-data\":p(({row:l})=>[t(\"div\",Ae,[l.net_profit_percentage!==null&&l.net_profit_percentage!==void 0?(x(),C(\"span\",{key:0,class:pe([l.net_profit_percentage>0?\"text-green-600 dark:text-green-400\":\"text-red-600 dark:text-red-400\",\"text-sm font-semibold\"])},N(l.net_profit_percentage.toFixed(2))+\"% \",3)):(x(),C(\"span\",Le,\"N/A\"))])]),\"status-data\":p(({row:l})=>[t(\"div\",He,[s(k,{color:_(l.status),label:l.status,variant:\"soft\",size:\"xs\"},null,8,[\"color\",\"label\"])])]),\"updated_at-data\":p(({row:l})=>[t(\"span\",Oe,N(l.updated_at),1)]),\"actions-data\":p(({row:l})=>[t(\"div\",Ee,[s(h,{text:\"Add Note\"},{default:p(()=>[s(y,{size:\"xs\",variant:\"ghost\",color:\"gray\",icon:\"i-heroicons-pencil-square\",onClick:c=>n.$emit(\"notes\",l.rawSession)},null,8,[\"onClick\"])]),_:2},1024),s(h,{text:\"Load Session\"},{default:p(()=>[s(y,{size:\"xs\",variant:\"ghost\",color:\"gray\",icon:\"i-heroicons-arrow-right\",onClick:c=>n.$emit(\"load\",l.id)},null,8,[\"onClick\"])]),_:2},1024),s(h,{text:\"Delete\"},{default:p(()=>[s(y,{size:\"xs\",variant:\"ghost\",color:\"red\",icon:\"i-heroicons-trash\",onClick:c=>n.$emit(\"delete\",l.id)},null,8,[\"onClick\"])]),_:2},1024)])]),_:1},8,[\"sort\",\"rows\"])])}}}),Ie={class:\"w-full\"},Je={class:\"container mx-auto px-4 pt-16 pb-6 max-w-7xl\"},We={class:\"mb-6 flex flex-col gap-4 md:flex-row md:items-center md:justify-between\"},Ke={class:\"flex items-center gap-3\"},Qe={class:\"flex flex-col gap-3 sm:flex-row sm:items-center\"},Xe={key:0,class:\"space-y-4\"},Ye={class:\"bg-white dark:bg-gray-800 shadow rounded-lg overflow-hidden\"},Ze={class:\"divide-y divide-gray-200 dark:divide-gray-700\"},et={class:\"hidden md:grid md:grid-cols-12 gap-4 items-center\"},tt={class:\"col-span-3\"},st={class:\"col-span-2\"},at={class:\"col-span-2 text-center\"},lt={class:\"col-span-2 text-center\"},ot={class:\"col-span-2\"},nt={class:\"col-span-1 flex justify-end gap-2\"},it={class:\"md:hidden space-y-3\"},rt={class:\"flex items-start justify-between\"},ct={class:\"flex-1\"},dt={class:\"flex items-center justify-between\"},ut={class:\"flex items-center justify-between\"},mt={class:\"flex gap-1\"},_t={key:1,class:\"space-y-4\"},pt={key:0,class:\"flex justify-center\"},ft={key:2,class:\"bg-white dark:bg-gray-800 shadow rounded-lg p-12 text-center\"},vt={class:\"p-6\"},gt={class:\"mb-6\"},yt={class:\"flex justify-end gap-3\"},F=50,Bt=G({__name:\"history\",setup(E){Te({title:\"Backtest History - Jesse\"});const b=fe(),U=ve(),B=ge(),P=z(()=>B.tabs),_=m([]),n=m(!1),f=m(null),k=m(!1),y=m(!1),h=m(!0),u=m(0),l=m(!1),c=m(null),w=m(!1),D=m(!1),S=m(30),$=z({get:()=>b.query.title||\"\",set:a=>{const e={...b.query};a?e.title=a:delete e.title,U.push({query:e})}}),v=z({get:()=>b.query.status||\"all\",set:a=>{const e={...b.query};a===\"all\"?delete e.status:e.status=a,U.push({query:e})}}),g=z({get:()=>b.query.dateRange||\"all_time\",set:a=>{const e={...b.query};a===\"all_time\"?delete e.dateRange:e.dateRange=a,U.push({query:e})}}),R=[{label:\"All Statuses\",value:\"all\"},{label:\"Running\",value:\"running\"},{label:\"Finished\",value:\"finished\"},{label:\"Stopped\",value:\"stopped\"},{label:\"Cancelled\",value:\"cancelled\"}],J=[{label:\"All Time\",value:\"all_time\"},{label:\"Last 7 Days\",value:\"7_days\"},{label:\"Last 30 Days\",value:\"30_days\"},{label:\"Last 90 Days\",value:\"90_days\"}],W=[{label:\"1 day\",value:1},{label:\"7 days\",value:7},{label:\"30 days\",value:30},{label:\"3 months\",value:90},{label:\"6 months\",value:180},{label:\"1 year\",value:365},{label:\"2 years\",value:730},{label:\"All existing sessions\",value:-1}];ye(()=>{setTimeout(()=>{M()},20)});const K=he(()=>{u.value=0,M()},300);L($,()=>{K()}),L(v,()=>{u.value=0,M()}),L(g,()=>{u.value=0,M()});async function M(){var a;k.value=!0;try{const d=(await q(\"/backtest/sessions\",{limit:F,offset:0,title_search:$.value||null,status_filter:v.value===\"all\"?null:v.value,date_filter:g.value===\"all_time\"?null:g.value},!0)).data.value;_.value=(d==null?void 0:d.sessions)||[],u.value=_.value.length,h.value=((a=d==null?void 0:d.sessions)==null?void 0:a.length)===F}catch(e){T(e)}finally{k.value=!1}}async function Q(){y.value=!0;try{const e=(await q(\"/backtest/sessions\",{limit:F,offset:u.value,title_search:$.value||null,status_filter:v.value===\"all\"?null:v.value,date_filter:g.value===\"all_time\"?null:g.value},!0)).data.value,d=(e==null?void 0:e.sessions)||[];_.value=[..._.value,...d],u.value+=d.length,h.value=d.length===F}catch(a){T(a)}finally{y.value=!1}}async function X(a){await B.loadSession(a)}function Y(a){f.value=a,n.value=!0}async function Z(){f.value&&(await ee(f.value),_.value=_.value.filter(a=>a.id!==f.value),u.value-=1),n.value=!1,f.value=null}async function ee(a){if(B.tabs[a]){O(\"error\",\"Cannot delete a session that is currently open in a tab. Close the tab first.\");return}try{const e=await q(`/backtest/sessions/${a}/remove`,{},!0);if(e.error.value){T(e.error.value);return}O(\"success\",\"Session deleted successfully\")}catch(e){T(e)}}function te(a){c.value=a,l.value=!0}async function se(){D.value=!0;try{const a=await q(\"/backtest/purge-sessions\",{days_old:S.value===-1?null:S.value},!0);if(a.error.value){T(a.error.value);return}const e=a.data.value;O(\"success\",`Successfully purged ${e.deleted_count} session(s)`),w.value=!1,u.value=0,await M()}catch(a){T(a)}finally{D.value=!1}}function ae(){w.value=!1,S.value=30}function le(a){if(c.value){const e=_.value.find(d=>d.id===c.value.id);e&&(e.title=a.title,e.description=a.description,c.value.title=a.title,c.value.description=a.description)}}return(a,e)=>{const d=ue,j=I,oe=we,A=Se,i=Ue,ne=Ge,ie=$e,re=Ne,ce=Ve,de=Ce;return x(),C(\"div\",null,[t(\"div\",Ie,[s(d,{\"current-tab\":null,tabs:o(P),onClose:e[0]||(e[0]=r=>o(B).closeTab(r,o(b).path)),onCancel:o(B).cancel},null,8,[\"tabs\",\"onCancel\"])]),t(\"div\",Je,[t(\"div\",We,[t(\"div\",Ke,[e[9]||(e[9]=t(\"h1\",{class:\"text-xl md:text-2xl font-bold text-gray-900 dark:text-white\"},\" Backtest History \",-1)),s(j,{icon:\"i-heroicons-trash\",color:\"red\",variant:\"soft\",size:\"sm\",label:\"Purge\",onClick:e[1]||(e[1]=r=>w.value=!0)})]),t(\"div\",Qe,[s(oe,{modelValue:o($),\"onUpdate:modelValue\":e[2]||(e[2]=r=>V($)?$.value=r:null),placeholder:\"Search by title...\",icon:\"i-heroicons-magnifying-glass\",size:\"sm\",class:\"w-full sm:w-64\"},null,8,[\"modelValue\"]),s(A,{modelValue:o(v),\"onUpdate:modelValue\":e[3]||(e[3]=r=>V(v)?v.value=r:null),options:R,size:\"sm\",class:\"w-full sm:w-40\"},null,8,[\"modelValue\"]),s(A,{modelValue:o(g),\"onUpdate:modelValue\":e[4]||(e[4]=r=>V(g)?g.value=r:null),options:J,size:\"sm\",class:\"w-full sm:w-40\"},null,8,[\"modelValue\"])])]),o(k)?(x(),C(\"div\",Xe,[t(\"div\",Ye,[t(\"div\",Ze,[(x(),C(be,null,ke(5,r=>t(\"div\",{key:r,class:\"p-4\"},[t(\"div\",et,[t(\"div\",tt,[s(i,{class:\"h-4 w-full mb-2\"}),s(i,{class:\"h-3 w-2/3\"})]),t(\"div\",st,[s(i,{class:\"h-4 w-full mb-2\"}),s(i,{class:\"h-3 w-2/3\"})]),t(\"div\",at,[s(i,{class:\"h-4 w-16 mx-auto\"})]),t(\"div\",lt,[s(i,{class:\"h-6 w-20 mx-auto\"})]),t(\"div\",ot,[s(i,{class:\"h-4 w-full\"})]),t(\"div\",nt,[s(i,{class:\"h-8 w-8\"}),s(i,{class:\"h-8 w-8\"}),s(i,{class:\"h-8 w-8\"})])]),t(\"div\",it,[t(\"div\",rt,[t(\"div\",ct,[s(i,{class:\"h-4 w-3/4 mb-2\"}),s(i,{class:\"h-3 w-1/2\"})]),s(i,{class:\"h-6 w-16 ml-2\"})]),t(\"div\",dt,[s(i,{class:\"h-4 w-24\"}),s(i,{class:\"h-4 w-16\"})]),t(\"div\",ut,[s(i,{class:\"h-3 w-32\"}),t(\"div\",mt,[s(i,{class:\"h-8 w-8\"}),s(i,{class:\"h-8 w-8\"}),s(i,{class:\"h-8 w-8\"})])])])])),64))])])])):o(_).length?(x(),C(\"div\",_t,[s(ne,{sessions:o(_),onNotes:te,onLoad:X,onDelete:Y},null,8,[\"sessions\"]),o(h)?(x(),C(\"div\",pt,[s(j,{label:\"Load More\",variant:\"soft\",color:\"gray\",loading:o(y),onClick:Q},null,8,[\"loading\"])])):H(\"\",!0)])):!o(k)&&o(_).length===0?(x(),C(\"div\",ft,e[10]||(e[10]=[t(\"div\",{class:\"text-gray-400 dark:text-gray-500\"},[t(\"i\",{class:\"i-heroicons-clock h-12 w-12 mx-auto mb-4\"}),t(\"p\",{class:\"text-lg\"},\"No backtest history found\"),t(\"p\",{class:\"text-sm mt-2\"},\"Run a backtest or change filters to see items in backtest your history\")],-1)]))):H(\"\",!0),s(ie,{modelValue:o(n),\"onUpdate:modelValue\":e[5]||(e[5]=r=>V(n)?n.value=r:null),title:\"Delete Backtest Session\",description:\"Are you sure you want to delete this backtest session? This action cannot be undone.\",type:\"info\"},{default:p(()=>[s(j,{variant:\"solid\",color:\"red\",block:\"\",class:\"sm:w-auto\",label:\"Delete\",onClick:Z})]),_:1},8,[\"modelValue\"]),o(c)?(x(),xe(re,{key:3,modelValue:o(l),\"onUpdate:modelValue\":e[6]||(e[6]=r=>V(l)?l.value=r:null),\"session-id\":o(c).id,\"initial-title\":o(c).title,\"initial-description\":o(c).description,onSaved:le},null,8,[\"modelValue\",\"session-id\",\"initial-title\",\"initial-description\"])):H(\"\",!0),s(de,{modelValue:o(w),\"onUpdate:modelValue\":e[8]||(e[8]=r=>V(w)?w.value=r:null)},{default:p(()=>[t(\"div\",vt,[e[13]||(e[13]=t(\"h3\",{class:\"text-lg font-semibold text-gray-900 dark:text-white mb-4\"},\" Purge Backtest Sessions \",-1)),t(\"div\",gt,[e[11]||(e[11]=t(\"div\",{class:\"bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-4 mb-4\"},[t(\"div\",{class:\"flex items-start gap-3\"},[t(\"i\",{class:\"i-heroicons-exclamation-triangle text-red-600 dark:text-red-400 text-xl flex-shrink-0 mt-0.5\"}),t(\"div\",{class:\"text-sm text-red-800 dark:text-red-200\"},[t(\"p\",{class:\"font-semibold mb-1\"},\" Warning: This action is permanent! \"),t(\"p\",null,\"Deleted sessions cannot be recovered. Please select carefully.\")])])],-1)),s(ce,{label:\"Delete sessions older than:\",class:\"mb-4\"},{default:p(()=>[s(A,{modelValue:o(S),\"onUpdate:modelValue\":e[7]||(e[7]=r=>V(S)?S.value=r:null),options:W,size:\"md\"},null,8,[\"modelValue\"])]),_:1}),e[12]||(e[12]=t(\"p\",{class:\"text-sm text-gray-600 dark:text-gray-400\"},\" This will permanently delete all backtest sessions that match your criteria. \",-1))]),t(\"div\",yt,[s(j,{color:\"gray\",variant:\"ghost\",label:\"Cancel\",onClick:ae}),s(j,{color:\"red\",label:\"Purge Sessions\",loading:o(D),onClick:se},null,8,[\"loading\"])])])]),_:1},8,[\"modelValue\"])])])}}});export{Bt as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/E1yjnBiT.js",
    "content": "import{_ as nt}from\"./DMpbkAFi.js\";import{_ as it}from\"./D35nYK_C.js\";import{d as re,r as w,c as M,w as W,n as qe,bg as dt,C as d,g as a,e as F,E as k,i as l,H as Q,j as t,G as y,F as A,O as se,t as Ve,u as Se,f as E,z as He,R as Pe,v as We,x as r,y as ut,_ as Ue,m as $e,a as Je,q as pe,l as ct,p as ft,s as Y,h as mt,I as Ce,J as te,K as fe,ar as ze,bl as Ge,D as ne,a6 as Ye,bs as ee,B as Me,o as gt,a0 as Ee,bt as pt,b as Qe,a5 as vt,a7 as yt,aO as bt,bu as ht,L as wt,bn as me,N as kt,k as xt,ag as _t,M as $t,bq as Ct,aK as Vt,ai as St}from\"./CU_MfyYc.js\";import{_ as Tt}from\"./BW0IIeyO.js\";import{r as jt,_ as Lt}from\"./D-1_drer.js\";import{_ as Rt}from\"./DZb6Dd70.js\";import{_ as Et}from\"./CqvT4tPC.js\";import{_ as Ut}from\"./CYcD1Eih.js\";import{_ as Mt}from\"./s0YP2YF7.js\";import{_ as Ot}from\"./CvhZxjKo.js\";import{_ as Bt}from\"./Cw4FHd9N.js\";import{_ as It}from\"./C4bX54si.js\";import{_ as Nt}from\"./wLBHnxd4.js\";import{_ as Pt}from\"./DK27pemE.js\";import{T as De}from\"./9VOnL4Iz.js\";import{s as _e,l as Fe,d as Ae}from\"./BS9OwPT8.js\";import{u as Ze}from\"./Cwg39VG_.js\";import{u as zt}from\"./X3S5orim.js\";import\"./C6794tGI.js\";const Dt={class:\"w-full h-full flex flex-col\"},Ft={key:0,class:\"flex justify-center items-center py-8\"},At={class:\"w-full relative\"},qt={key:0,class:\"whitespace-pre-line select-text text-base dark:text-gray-300 w-full mb-1\"},Ht={key:3,class:\"mt-4 flex justify-center\"},ge=1e3,Wt=re({__name:\"Logs\",props:{logs:{},sections:{},totalLogs:{}},setup(I){const n=I,_=w(\"\"),p=w(!1),m=w(!1),u=w([]),f=w(null),s=w(1),c=w(!1),S=w(ge),b=M(()=>c.value?u.value:u.value.slice(0,S.value));W(()=>n.logs,async g=>{g&&(p.value=!0,await qe(),setTimeout(()=>{u.value=g.slice(0,ge),s.value=1,c.value=g.length<=ge,p.value=!1},0),setTimeout(()=>{_.value=n.logs.join(`\n`)},0))},{immediate:!0}),W(s,()=>{S.value=s.value*ge});function R(g){const v=g.target;v.scrollHeight-v.scrollTop<=v.clientHeight+50&&$()}async function $(){m.value||c.value||(m.value=!0,setTimeout(()=>{const g=s.value*ge,v=(s.value+1)*ge;if(g<n.logs.length){const T=n.logs.slice(g,v);u.value=[...u.value,...T],s.value++,c.value=v>=n.logs.length}else c.value=!0;m.value=!1},0))}return(g,v)=>{const T=dt(\"ULoading\"),J=it,q=Ve;return a(),d(\"div\",Dt,[p.value?(a(),d(\"div\",Ft,[l(T,{size:\"lg\"})])):u.value.length?(a(),d(\"div\",{key:2,ref_key:\"logContainer\",ref:f,class:Q([c.value?\"h-[calc(100vh-120px)]\":\"h-[calc(100vh-180px)]\",\"w-full overflow-y-scroll rounded border dark:border-gray-600 bg-gray-50 dark:bg-gray-700 px-4 sm:px-6 py-2\"]),onScroll:R},[t(\"div\",At,[c.value?(a(),d(\"pre\",qt,\"          \"+y(_.value)+`\n        `,1)):(a(!0),d(A,{key:1},se(b.value,(N,L)=>(a(),d(\"pre\",{key:0+L,class:\"whitespace-pre-line select-text text-base dark:text-gray-300 w-full mb-1\"},y(N),1))),128))])],34)):(a(),F(J,{key:1})),u.value.length&&!c.value?(a(),d(\"div\",Ht,[l(q,{loading:m.value,class:\"w-full flex justify-center\",label:`(loaded ${u.value.length} / ${n.logs.length}) Load All Logs`,onClick:v[0]||(v[0]=N=>c.value=!0)},null,8,[\"loading\",\"label\"])])):k(\"\",!0)])}}}),Jt={class:\"flex items-center justify-between\"},Gt=re({__name:\"FullscreenModal\",props:{modelValue:{type:Boolean,default:!1},modelModifiers:{}},emits:[\"update:modelValue\"],setup(I){const n=Se(I,\"modelValue\");return(_,p)=>{const m=We,u=He,f=Ue;return a(),F(f,{modelValue:n.value,\"onUpdate:modelValue\":p[1]||(p[1]=s=>n.value=s),fullscreen:\"\"},{default:E(()=>[l(u,{ui:{base:\"h-full flex flex-col\",rounded:\"\",divide:\"divide-y divide-gray-100 dark:divide-gray-800\",body:{base:\"grow\"}}},{header:E(()=>[t(\"div\",Jt,[t(\"div\",null,[Pe(_.$slots,\"title\")]),l(m,{text:\"Close\",popper:{arrow:!0,offsetDistance:10}},{default:E(()=>[t(\"button\",{class:\"p-2 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-full text-gray-400 hover:text-gray-700 dark:hover:text-gray-200 focus:outline-none transition-all duration-300\",onClick:p[0]||(p[0]=s=>n.value=!1)},[l(r(ut),{class:\"h-6 w-6\",\"aria-hidden\":\"true\"})])]),_:1})])]),default:E(()=>[Pe(_.$slots,\"default\")]),_:3})]),_:3},8,[\"modelValue\"])}}}),Yt=ft(Pt),Qt={class:\"flex items-center justify-between\"},Zt={class:\"flex flex-col space-y-4\"},Xt={key:0,class:\"flex flex-wrap gap-2\"},Kt={class:\"flex flex-col\"},es={class:\"flex items-center justify-between mb-2\"},ts={class:\"flex gap-2\"},ss=re({__name:\"BacktestStrategyCodeModal\",props:$e({routes:{},exchange:{},strategyCodes:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:[\"update:modelValue\"],setup(I){const n=I,_=Se(I,\"modelValue\"),p=w(\"\"),m=w(null),u=w(\"\"),f=w(),s=Je(),c=M(()=>s.value===\"light\"?\"vs-light\":\"vs-dark\"),S=M(()=>({automaticLayout:!0,minimap:{enabled:!1},fontSize:14,lineHeight:21,readOnly:!0}));W(c,g=>{var v,T;(T=(v=f.value)==null?void 0:v.$editor)==null||T.updateOptions({theme:g})}),W(_,async g=>{g&&n.routes.length>0&&(await qe(),setTimeout(()=>{var v;(v=f.value)!=null&&v.$editor&&f.value.$editor.updateOptions({theme:c.value}),b(n.routes[0])},50))}),W(()=>n.strategyCodes,g=>{g&&p.value&&(u.value=g[p.value]||\"# No strategy code snapshot available for this route\")},{deep:!0,immediate:!0});function b(g){var T;const v=`${n.exchange}-${g.symbol}`;p.value=v,m.value=g,u.value=((T=n.strategyCodes)==null?void 0:T[v])||\"# No strategy code snapshot available for this route\"}async function R(){try{await navigator.clipboard.writeText(u.value),Y(\"success\",\"Strategy code copied to clipboard\")}catch(g){mt(g)}}function $(){var g;(g=m.value)!=null&&g.strategy?Ce(`/strategies/${m.value.strategy}`):Y(\"error\",\"No strategy selected\")}return(g,v)=>{const T=Ve,J=Yt,q=ct,N=He,L=Ue;return a(),F(L,{modelValue:_.value,\"onUpdate:modelValue\":v[2]||(v[2]=x=>_.value=x),ui:{width:\"sm:max-w-5xl\"}},{default:E(()=>[l(N,null,{header:E(()=>[t(\"div\",Qt,[v[3]||(v[3]=t(\"h3\",{class:\"text-lg font-semibold\"},\"Strategy Code Snapshot\",-1)),l(T,{color:\"gray\",variant:\"ghost\",icon:\"i-heroicons-x-mark\",size:\"sm\",onClick:v[0]||(v[0]=x=>_.value=!1)})])]),default:E(()=>[t(\"div\",Zt,[g.routes.length>1?(a(),d(\"div\",Xt,[(a(!0),d(A,null,se(g.routes,x=>(a(),F(T,{key:`${g.exchange}-${x.symbol}`,variant:\"soft\",color:\"gray\",disabled:p.value===`${g.exchange}-${x.symbol}`,onClick:Z=>b(x)},{default:E(()=>[pe(y(x.strategy)+\" • \"+y(x.symbol),1)]),_:2},1032,[\"disabled\",\"onClick\"]))),128))])):k(\"\",!0),t(\"div\",Kt,[t(\"div\",es,[v[4]||(v[4]=t(\"label\",{class:\"block text-sm font-medium\"},null,-1)),t(\"div\",ts,[l(T,{icon:\"i-heroicons-clipboard-document\",label:\"Copy\",variant:\"soft\",color:\"gray\",size:\"sm\",onClick:R}),l(T,{icon:\"i-heroicons-pencil-square\",label:\"Go to Strategy Editor\",variant:\"soft\",color:\"primary\",size:\"sm\",onClick:$})])]),l(q,null,{default:E(()=>[l(J,{ref_key:\"codeEditorRef\",ref:f,modelValue:u.value,\"onUpdate:modelValue\":v[1]||(v[1]=x=>u.value=x),lang:\"python\",options:S.value,class:\"border border-gray-200 dark:border-gray-800 rounded\",style:{height:\"500px\"}},{default:E(()=>v[5]||(v[5]=[pe(\" Loading editor... \")])),_:1},8,[\"modelValue\",\"options\"])]),_:1})])])]),_:1})]),_:1},8,[\"modelValue\"])}}}),os={class:\"w-16 overflow-hidden\"},rs={class:\"w-8 overflow-hidden\"},ls={key:0,class:\"w-full transition-all overflow-hidden duration-300 bg-gray-50 dark:bg-gray-800\"},as=[\"onClick\"],ns={class:\"w-16 overflow-hidden text-center\"},is={class:\"w-12 overflow-hidden text-center\"},ds={class:\"w-8 overflow-hidden text-center\"},us={class:\"p-4\"},cs={class:\"mt-4\"},fs={class:\"w-full text-sm\"},ms={class:\"w-full\"},gs={class:\"w-full flex justify-between bg-gray-50 dark:bg-gray-800 py-2 px-4\"},ps={class:\"w-full flex justify-between py-2 px-4\"},vs={class:\"w-full flex justify-between bg-gray-50 dark:bg-gray-800 py-2 px-4\"},ys={class:\"w-full flex justify-between py-2 px-4\"},bs={class:\"w-full flex justify-between bg-gray-50 dark:bg-gray-800 py-2 px-4\"},hs={class:\"w-full flex justify-between py-2 px-4\"},ws={class:\"w-full flex justify-between bg-gray-50 dark:bg-gray-800 py-2 px-4\"},ks={class:\"w-full flex justify-between py-2 px-4\"},xs={class:\"w-full flex justify-between bg-gray-50 dark:bg-gray-800 py-2 px-4\"},_s={class:\"w-full\"},$s={class:\"w-full flex justify-between bg-gray-50 dark:bg-gray-800 py-2 px-4\"},Cs={class:\"w-full flex justify-between py-2 px-4\"},Vs={class:\"w-full flex justify-between bg-gray-50 dark:bg-gray-800 py-2 px-4\"},Ss={key:0,class:\"w-full flex justify-between py-2 px-4\"},Ts={key:1,class:\"w-full flex justify-between bg-gray-50 dark:bg-gray-800 py-2 px-4\"},js={key:2,class:\"w-full flex justify-between py-2 px-4\"},Ls={class:\"flex justify-end mt-4\"},Rs=re({__name:\"ChartOrders\",props:{trade:{}},emits:[\"zoom\",\"hoverbg\"],setup(I,{emit:n}){const _=n,p=w(null),m=w(!1),u=w(!1);return(f,s)=>{const c=Ve,S=Ue;return a(),d(A,null,[l(c,{variant:\"ghost\",color:\"gray\",class:\"w-full flex justify-between hover:bg-gray-100 dark:hover:bg-gray-800 text-xs border-b border-gray-100 dark:border-gray-800 rounded-none p-2\",onClick:s[1]||(s[1]=b=>u.value=!r(u)),onMouseover:s[2]||(s[2]=b=>_(\"hoverbg\",f.trade.orders[0].id))},{default:E(()=>[t(\"div\",{class:Q([\"w-2 transition-all duration-300\",[r(u)?\"rotate-90\":\"rotate-0\"]])},s[5]||(s[5]=[t(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",class:\"size-4\"},[t(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"m8.25 4.5 7.5 7.5-7.5 7.5\"})],-1)]),2),t(\"div\",os,y(r(te).roundPrice(f.trade.entry_price)),1),s[6]||(s[6]=t(\"div\",{class:\"w-1 opacity-20\"},\"|\",-1)),t(\"div\",{class:Q([\"w-16 overflow-hidden\",f.trade.type.toLowerCase()===\"long\"?\"text-green-500\":\"text-red-500\"])},y(r(fe).round(f.trade.qty,2)),3),s[7]||(s[7]=t(\"div\",{class:\"w-1 opacity-20\"},\"|\",-1)),t(\"div\",{class:Q([[f.trade.PNL_percentage>0?\"text-green-500\":\"text-red-500\"],\"w-16 overflow-hidden text-xs\"])},y(r(fe).round(f.trade.PNL_percentage,2))+\"% \",3),s[8]||(s[8]=t(\"div\",{class:\"w-1 opacity-20\"},\"|\",-1)),t(\"div\",rs,[l(c,{icon:\"i-heroicons-arrow-right\",color:\"gray\",size:\"xs\",onClick:s[0]||(s[0]=ze(b=>_(\"zoom\",f.trade.orders[0].id),[\"stop\"]))})])]),_:1}),r(u)?(a(),d(\"div\",ls,[s[13]||(s[13]=Ge('<div class=\"flex justify-between items-center border-b-2 border-gray-200 dark:border-gray-700 px-1 py-2 text-xs\"><div class=\"w-16 overflow-hidden italic font-bold uppercase text-center\">PRICE</div><div class=\"w-1 opacity-20\">|</div><div class=\"w-10 overflow-hidden italic font-bold uppercase text-center\">QTY</div><div class=\"w-1 opacity-20\">|</div><div class=\"w-12 overflow-hidden italic font-bold uppercase text-center\">TYPE</div><div class=\"w-1 opacity-20\">|</div><div class=\"w-10 overflow-hidden italic font-bold uppercase text-center\">SIDE</div><div class=\"w-1 opacity-20\">|</div><div class=\"w-8 overflow-hidden italic font-bold uppercase text-center\"></div></div>',1)),(a(!0),d(A,null,se(f.trade.orders,(b,R)=>(a(),d(\"div\",{key:R,class:\"w-full flex justify-between items-center hover:bg-gray-200 dark:hover:bg-gray-900 text-xs py-2 border-b border-gray-200 cursor-pointer dark:border-gray-700 px-1\",onClick:$=>{p.value=b,m.value=!0}},[t(\"div\",ns,y(r(te).roundPrice(b.price)),1),s[9]||(s[9]=t(\"div\",{class:\"w-1 opacity-20\"},\"|\",-1)),t(\"div\",{class:Q([\"w-10 overflow-hidden text-center\",b.side===\"buy\"?\"text-green-500\":\"text-red-500\"])},y(r(fe).round(b.qty,2)),3),s[10]||(s[10]=t(\"div\",{class:\"w-1 opacity-20\"},\"|\",-1)),t(\"div\",is,y(b.type),1),s[11]||(s[11]=t(\"div\",{class:\"w-1 opacity-20\"},\"|\",-1)),t(\"div\",{class:Q([[b.side===\"buy\"?\"text-green-500\":\"text-red-500\"],\"w-10 overflow-hidden text-center\"])},y(b.side.toUpperCase()),3),s[12]||(s[12]=t(\"div\",{class:\"w-1 opacity-20\"},\"|\",-1)),t(\"div\",ds,[l(c,{icon:\"i-heroicons-arrow-right\",color:\"gray\",size:\"xs\",onClick:ze($=>_(\"zoom\",b.id),[\"stop\"])},null,8,[\"onClick\"])])],8,as))),128))])):k(\"\",!0),l(S,{modelValue:r(m),\"onUpdate:modelValue\":s[4]||(s[4]=b=>ne(m)?m.value=b:null)},{default:E(()=>{var b,R,$,g,v,T,J,q,N,L,x;return[t(\"div\",us,[t(\"div\",cs,[t(\"div\",fs,[s[29]||(s[29]=t(\"h2\",{class:\"text-lg mb-2 font-bold italic dark:text-white text-center\"},\" Trade \",-1)),t(\"div\",ms,[t(\"div\",gs,[s[14]||(s[14]=t(\"div\",{class:\"font-bold\"},\"Entry Price\",-1)),t(\"div\",null,y(r(te).roundPrice(f.trade.entry_price)),1)]),t(\"div\",ps,[s[15]||(s[15]=t(\"div\",{class:\"font-bold\"},\"Exit Price\",-1)),t(\"div\",null,y(r(te).roundPrice(f.trade.exit_price)),1)]),t(\"div\",vs,[s[16]||(s[16]=t(\"div\",{class:\"font-bold\"},\"Qty\",-1)),t(\"div\",null,y(f.trade.qty),1)]),t(\"div\",ys,[s[17]||(s[17]=t(\"div\",{class:\"font-bold\"},\"Size\",-1)),t(\"div\",null,y(r(te).roundPrice(f.trade.size)),1)]),t(\"div\",bs,[s[18]||(s[18]=t(\"div\",{class:\"font-bold\"},\"PNL\",-1)),t(\"div\",{class:Q([f.trade.PNL>0?\"text-green-500\":\"text-red-500\"])},y(r(fe).round(f.trade.PNL,2))+\" (\"+y(r(fe).round(f.trade.PNL_percentage,2))+\"%) \",3)]),t(\"div\",hs,[s[19]||(s[19]=t(\"div\",{class:\"font-bold\"},\"Fee\",-1)),t(\"div\",null,y(r(fe).round(f.trade.fee,2)),1)]),t(\"div\",ws,[s[20]||(s[20]=t(\"div\",{class:\"font-bold\"},\"Holding Period\",-1)),t(\"div\",null,y(r(te).secondsToHumanReadable(f.trade.holding_period)),1)]),t(\"div\",ks,[s[21]||(s[21]=t(\"div\",{class:\"font-bold\"},\"Opened At\",-1)),t(\"div\",null,y(new Date(f.trade.opened_at).toLocaleString()),1)]),t(\"div\",xs,[s[22]||(s[22]=t(\"div\",{class:\"font-bold\"},\"Closed At\",-1)),t(\"div\",null,y(new Date(f.trade.closed_at).toLocaleString()),1)])]),s[30]||(s[30]=t(\"h2\",{class:\"text-lg font-bold italic dark:text-white mt-6 mb-2 text-center\"},\" Order \",-1)),t(\"div\",_s,[t(\"div\",$s,[s[23]||(s[23]=t(\"div\",{class:\"font-bold\"},\"Side\",-1)),t(\"div\",{class:Q([((b=r(p))==null?void 0:b.side)===\"buy\"?\"text-green-500\":\"text-red-500\"])},y(($=(R=r(p))==null?void 0:R.side)==null?void 0:$.toUpperCase()),3)]),t(\"div\",Cs,[s[24]||(s[24]=t(\"div\",{class:\"font-bold\"},\"Type\",-1)),t(\"div\",null,y((g=r(p))==null?void 0:g.type),1)]),t(\"div\",Vs,[s[25]||(s[25]=t(\"div\",{class:\"font-bold\"},\"Qty\",-1)),t(\"div\",null,y((v=r(p))==null?void 0:v.qty),1)]),(T=r(p))!=null&&T.created_at?(a(),d(\"div\",Ss,[s[26]||(s[26]=t(\"div\",{class:\"font-bold\"},\"Created At\",-1)),t(\"div\",null,y(new Date((J=r(p))==null?void 0:J.created_at).toLocaleString()),1)])):k(\"\",!0),(q=r(p))!=null&&q.executed_at?(a(),d(\"div\",Ts,[s[27]||(s[27]=t(\"div\",{class:\"font-bold\"},\"Executed At\",-1)),t(\"div\",null,y(new Date((N=r(p))==null?void 0:N.executed_at).toLocaleString()),1)])):k(\"\",!0),(L=r(p))!=null&&L.canceled_at?(a(),d(\"div\",js,[s[28]||(s[28]=t(\"div\",{class:\"font-bold\"},\"Canceled At\",-1)),t(\"div\",null,y(new Date((x=r(p))==null?void 0:x.canceled_at).toLocaleString()),1)])):k(\"\",!0)])]),t(\"div\",Ls,[l(c,{color:\"gray\",block:\"\",onClick:s[3]||(s[3]=Z=>m.value=!1)},{default:E(()=>s[31]||(s[31]=[pe(\" Close \")])),_:1})])])])]}),_:1},8,[\"modelValue\"])],64)}}}),Es={class:\"w-0 sidebar whitespace-nowrap relative transition-all duration-300\"},Us={key:1,class:\"h-full flex justify-center items-center text-xs text-gray-500\"},Ms=re({__name:\"ChartSidebar\",props:$e({items:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:$e([\"zoom\",\"hoverbg\"],[\"update:modelValue\"]),setup(I,{emit:n}){const _=Se(I,\"modelValue\"),p=n;return(m,u)=>{const f=Rs;return a(),d(\"div\",Es,[t(\"div\",{class:Q([_.value?\"w-96 p-2\":\"w-0 p-0\",\"absolute h-full overflow-y-auto border-r-2 dark:border-gray-800 transition-all duration-300 z-0\"])},[m.items.length>0?(a(),d(A,{key:0},[u[2]||(u[2]=Ge('<div class=\"flex justify-between items-center border-b-2 p-2 text-xs dark:border-gray-800\"><div class=\"w-2\"></div><div class=\"w-16 overflow-hidden italic font-bold uppercase text-center\">ENTRY</div><div class=\"w-1 opacity-20\">|</div><div class=\"w-16 overflow-hidden italic font-bold uppercase text-center\">QTY</div><div class=\"w-1 opacity-20\">|</div><div class=\"w-16 overflow-hidden italic font-bold uppercase text-center\">PNL</div><div class=\"w-1 opacity-20\">|</div><div class=\"w-8 overflow-hidden italic font-bold uppercase text-center\"></div></div>',1)),(a(!0),d(A,null,se(m.items,(s,c)=>(a(),d(\"div\",{key:c,class:\"w-full\"},[l(f,{trade:s,onZoom:u[0]||(u[0]=S=>p(\"zoom\",S)),onHoverbg:u[1]||(u[1]=S=>p(\"hoverbg\",S))},null,8,[\"trade\"])]))),128))],64)):(a(),d(\"div\",Us,\" No trades were executed \"))],2)])}}}),Os={class:\"w-full h-full flex justify-between border-2 border-gray-200 dark:border-gray-800 rounded-lg\"},Bs={class:\"w-full flex flex-col h-full border dark:border-gray-800\"},Is={key:0},Ns=re({__name:\"BacktestCandlesChart\",props:$e({form:{},results:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:[\"update:modelValue\"],setup(I){const n=Je(),_=w(2),p=Se(I,\"modelValue\"),m=I,u=w(),f=w([]);let s=null,c=null;const S=[],b=[],R=M(()=>Ye().params.id),$=M(()=>ee.extraChartLines[R.value].find(h=>h.symbol===m.results.selectedRoute.symbol)),g=M(()=>n.value),v=M(()=>X());W(g,h=>{x(h)}),W(()=>m.results.selectedRoute.symbol,()=>{L(),setTimeout(async()=>{await T()},100)}),Me(async()=>{setTimeout(async()=>{await T()},200)}),W(p,()=>{setTimeout(()=>{J()},300)});async function T(){var de,ue,ce,H;_e.width=u.value.clientWidth,_e.height=u.value.clientHeight-Object.keys($.value.charts).length*150,s=De(u.value,_e),s.applyOptions({rightPriceScale:{borderColor:g.value===\"light\"?\"#d1d4dc\":\"#4b5563\",minimumWidth:80},watermark:{visible:!0,fontSize:16,horzAlign:\"left\",vertAlign:\"bottom\",color:\"#888\",text:`${m.results.selectedRoute.symbol} • ${m.results.selectedRoute.timeframe}`}}),c=s.addCandlestickSeries();const h=ee.candles[R.value].find(j=>j.symbol===m.results.selectedRoute.symbol).candles;c.setData(h),c.setMarkers(ee.orders[R.value].find(j=>j.symbol===m.results.selectedRoute.symbol).orders);const C=String(h[0].open).indexOf(\".\"),V=C===-1?0:String(h[h.length-1].open).length-C-1;_.value!==V&&(_.value=V,(_.value<0||_.value>100)&&(_.value=0),c.applyOptions({priceFormat:{type:\"price\",precision:_.value,minMove:Math.pow(10,-_.value).toFixed(_.value)}}));const O=(ue=(de=ee.lines[R.value])==null?void 0:de.find(j=>j.symbol===m.results.selectedRoute.symbol))==null?void 0:ue.lines;if(O)for(const j of Object.keys(O)){const B=O[j];s.addLineSeries({lineWidth:1,title:j}).setData(B.data)}const P=(H=(ce=ee.horizontalLines[R.value])==null?void 0:ce.find(j=>j.symbol===m.results.selectedRoute.symbol))==null?void 0:H.lines;if(P)for(const j of Object.keys(P)){const G=P[j];c.createPriceLine(G)}s.timeScale().fitContent();const le=new Set;Object.keys($.value.charts).forEach((j,B)=>{const G={..._e};G.width=f.value[B].clientWidth,G.height=150;const z=De(f.value[B],G);S.push(z),Object.keys($.value.charts[j]).forEach(D=>{var we,ye;const oe=z.addLineSeries({lineWidth:1,title:D}),ve=(ye=(we=ee.horizontalExtraLines[R.value])==null?void 0:we.find(be=>be.symbol===m.results.selectedRoute.symbol))==null?void 0:ye.lines[j];if(ve&&!le.has(j)){for(const be of Object.keys(ve)){const Te=ve[be];oe.createPriceLine(Te)}le.add(j)}oe.setData($.value.charts[j][D].data),b.push(oe)}),z.applyOptions({rightPriceScale:{borderColor:g.value===\"light\"?\"#d1d4dc\":\"#4b5563\",minimumWidth:80},watermark:{visible:!0,fontSize:16,horzAlign:\"left\",vertAlign:\"bottom\",color:\"#888\",text:j}}),z.timeScale().subscribeVisibleLogicalRangeChange(D=>{s.timeScale().setVisibleLogicalRange(D)}),B!==Object.keys($.value.charts).length-1&&z.timeScale().applyOptions({visible:!1})}),s.subscribeCrosshairMove(j=>{const B=q(c,j);Object.keys($.value.charts).forEach((G,z)=>{N(S[z],b[z],B)})}),Object.keys($.value.charts).forEach((j,B)=>{S[B].subscribeCrosshairMove(G=>{const z=q(b[B],G);N(s,c,z),S.forEach((D,oe)=>{oe!==B&&N(D,b[oe],z)})})}),s.timeScale().subscribeVisibleLogicalRangeChange(j=>{S.forEach(B=>{B.timeScale().setVisibleLogicalRange(j)})}),x(g.value),S.length>0&&s.timeScale().applyOptions({visible:!1})}function J(){var h;s!==null&&(s.applyOptions({width:(h=u.value)==null?void 0:h.clientWidth}),S.forEach(C=>{var V;C.applyOptions({width:(V=u.value)==null?void 0:V.clientWidth})}))}gt(()=>{L()});function q(h,C){return C.time&&C.seriesData.get(h)||null}function N(h,C,V){if(V){h.setCrosshairPosition(V.value,V.time,C);return}h.clearCrosshairPosition()}function L(){s!==null&&(s.remove(),s=null),c!==null&&(c=null),S.length>0&&(S.forEach(h=>{h.remove()}),S.length=0),b.length>0&&(b.length=0)}function x(h){s!==null&&(s.applyOptions(h===\"light\"?Fe.chart:Ae.chart),S.forEach(C=>{C.applyOptions(h===\"light\"?Fe.chart:Ae.chart)}))}function Z(h){const C=ee.orders[R.value].find(O=>O.symbol===m.results.selectedRoute.symbol).orders,V=C.find(O=>O.order_id===h);if(V&&s){const O=(typeof V.time==\"number\",V.time),P=s.timeScale(),le=C[1].time-C[0].time,de=O-le*5,ue=O+le*5,ce=V.color;c==null||c.setMarkers(C.map(H=>H.order_id===h?{...H,color:\"#FFA500\"}:H)),P.setVisibleRange({from:de,to:ue}),setTimeout(()=>{c==null||c.setMarkers(C.map(H=>H.order_id===h?{...H,color:ce}:H))},2e3)}}function ie(h){const C=ee.orders[R.value].find(O=>O.symbol===m.results.selectedRoute.symbol).orders,V=C.find(O=>O.order_id===h);if(V&&s){const O=V.color;c==null||c.setMarkers(C.map(P=>P.order_id===h?{...P,color:\"#FFA500\"}:P)),setTimeout(()=>{c==null||c.setMarkers(C.map(P=>P.order_id===h?{...P,color:O}:P))},2e3)}}function X(){return m.results.trades.filter(h=>h.symbol===m.results.selectedRoute.symbol)}return(h,C)=>(a(),d(\"div\",Os,[l(Ms,{modelValue:p.value,\"onUpdate:modelValue\":C[0]||(C[0]=V=>p.value=V),items:r(v),onHoverbg:C[1]||(C[1]=V=>ie(V)),onZoom:C[2]||(C[2]=V=>Z(V))},null,8,[\"modelValue\",\"items\"]),t(\"div\",{class:Q([[p.value?\"w-[calc(100%-384px)]\":\"w-full\"],\"h-full transition-all duration-300\"])},[t(\"div\",Bs,[t(\"div\",{ref_key:\"chartContainer\",ref:u,class:\"rounded overflow-hidden flex-grow\"},null,512),r($)&&Object.keys(r($).charts).length?(a(),d(\"div\",Is,[(a(!0),d(A,null,se(Object.keys(r($).charts),V=>(a(),d(\"div\",{key:V,ref_for:!0,ref_key:\"extraChartsRef\",ref:f,class:\"relative border-t-[1.5px] dark:border-gray-800\"}))),128))])):k(\"\",!0)])],2)]))}}),Ps={key:0,class:\"flex flex-col items-center justify-center select-none mt-[10%]\"},zs=[\"textContent\"],Ds={class:\"mt-8\"},Fs={class:\"mt-8 flex flex-col gap-4\"},As={key:0,class:\"mt-4\"},qs={key:1,class:\"mx-auto container mt-8\"},Hs={key:0},Ws={class:\"mb-4 mt-4\"},Js={class:\"flex items-center select-none flex-1 my-4\"},Gs={class:\"grid grid-cols-1 gap-6 mt-8\"},Ys={key:1,class:\"w-full mx-auto\"},Qs={class:\"space-y-12\"},Zs={key:0},Xs={key:1,class:\"bg-white dark:bg-gray-800 border dark:border-gray-700 rounded-lg overflow-hidden\"},Ks={key:2,class:\"text-yellow-500 border-yellow-400 bg-yellow-50 dark:bg-gray-700 dark:text-yellow-400 mt-16 text-center text-2xl rounded border-2 border-dashed dark:border-gray-800 py-16 select-none\"},eo={class:\"flex justify-start\"},to={key:0,class:\"flex h-[800px] border border-gray-200 dark:border-gray-800 rounded overflow-hidden\"},so={class:\"w-[460px] flex-shrink-0 border-r border-gray-200 dark:border-gray-800 bg-white dark:bg-gray-900\"},oo={class:\"flex items-center border-b border-gray-200 dark:border-gray-800 px-6 py-3 bg-gray-50 dark:bg-gray-900\"},ro={class:\"flex gap-16\"},lo={class:\"overflow-auto\"},ao={class:\"flex gap-12 flex-1\"},no={class:\"flex-1 bg-white dark:bg-gray-900\"},io={key:0},uo={key:0},co=[\"href\"],fo=[\"href\"],mo=[\"href\"],go={key:5,class:\"my-4\"},po={key:6,class:\"mt-8 bg-white dark:bg-gray-800 border dark:border-gray-700 rounded-lg overflow-hidden select-none\"},vo={class:\"px-6 py-4 space-y-3\"},yo={class:\"font-medium text-gray-500 dark:text-gray-400 whitespace-nowrap\"},bo={class:\"font-semibold text-gray-900 dark:text-gray-100 truncate ml-4\"},ho={key:7,class:\"mt-8 bg-white dark:bg-gray-800 border dark:border-gray-700 rounded-lg overflow-hidden select-none\"},wo={class:\"px-6 py-4 space-y-4\"},ko={class:\"text-sm font-bold text-gray-900 dark:text-gray-100 truncate pr-2\"},xo={class:\"text-sm text-gray-500 dark:text-gray-400 truncate text-center px-2\"},_o={class:\"flex justify-end ml-auto\"},$o={key:8,class:\"mt-8 bg-white dark:bg-gray-800 border dark:border-gray-700 rounded-lg overflow-hidden select-none\"},Co={class:\"px-6 py-4 space-y-3\"},Vo={class:\"font-medium text-gray-500 dark:text-gray-400 whitespace-nowrap\"},So={class:\"font-semibold text-gray-900 dark:text-gray-100 truncate ml-4\"},To={key:9,class:\"mt-8 bg-white dark:bg-gray-800 border dark:border-gray-700 rounded-lg overflow-hidden select-none\"},jo={class:\"px-6 py-4 border-b dark:border-gray-700 bg-gray-100 dark:bg-gray-700/50 flex justify-between items-center\"},Lo={class:\"text-xs font-bold text-gray-900 dark:text-gray-100 uppercase tracking-wider\"},Ro={class:\"px-6 py-4\"},Eo={key:0,class:\"text-sm text-gray-600 dark:text-gray-300 whitespace-pre-wrap\"},Uo={key:1,class:\"text-sm text-gray-400 dark:text-gray-500 italic text-center py-2\"},Mo={key:1},Oo=re({__name:\"BacktestTab\",props:{form:{},results:{}},setup(I){const n=I,_=M(()=>n.results.generalInfo.title?`${n.results.generalInfo.title} - Backtest - Jesse`:\"Backtest - Jesse\");Ze({title:_});const p=w(!1),m=w(!1),u=w(!0),f=w(!1),s=w([]),c=w([]),S=w(!1),b=w(!1),R=Ee().authToken,$=w(pt().public.apiBaseUrl),g=w(!1),v=w(!1),T=w(!1),J=w(null),q=w(null),N=w(null),L=M(()=>Ye().params.id),x=Qe(),Z=Ee(),ie=vt(),X=w([]),h=M(()=>Z.jesseSupportedTimeframes.map(e=>({label:e,value:e}))),C=M(()=>n.form.routes.map(e=>({label:`${e.strategy} • ${e.symbol}`,value:e})));n.results.selectedRoute=n.form.routes[0],Me(async()=>{setTimeout(async()=>{await Z.initiate(),!n.form.exchange&&Z.backtestingExchangeNames.length&&(n.form.exchange=Z.backtestingExchangeNames[0]),(!n.results.showResults&&n.form.exchange||!X.value.length)&&await V()},50)});async function V(){if(n.form.exchange)try{X.value=await Z.getExchangeSupportedSymbols(n.form.exchange);for(let e=0;e<n.form.routes.length;e++)X.value.includes(n.form.routes[e].symbol)||(n.form.routes[e].symbol=X.value[0]);if(n.form.data_routes.length>0)for(let e=0;e<n.form.data_routes.length;e++)X.value.includes(n.form.data_routes[e].symbol)||(n.form.data_routes[e].symbol=X.value[0])}catch(e){console.error(\"Error updating supported symbols:\",e)}}W(()=>n.form.exchange,async(e,o)=>{e!==o&&await V()}),W(v,async e=>{if(e){const o=await x.getSessionData(L.value);o&&(J.value=o.title||null,q.value=o.description||null,N.value=o.strategy_codes||null)}});function O(e){n.results.generalInfo.title=e.title||null,n.results.generalInfo.description=e.description||null}W(T,async e=>{if(e){const o=await x.getStrategyCode(L.value);o&&(N.value=o)}});const P=yt(()=>{n.results.executing||x.saveStateDraft(L.value)},1e3);W(()=>n.form,()=>{P()},{deep:!0});const{cancel:le,newBacktest:de,retry:ue}=x;function ce(e){if(c.value.length){for(let o=0;o<c.value.length;o++)Y(\"error\",c.value[o]);return}s.value=[],x.start(e)}function H(e){s.value=[],x.rerun(e)}const j=e=>{if(c.value.length){for(let o=0;o<c.value.length;o++)Y(\"error\",c.value[o]);return}s.value=[],x.startInNewTab(e)},B=M(()=>{let e=`/download/backtest/tradingview/${n.results.generalInfo.session_id}?token=${R}`;return $.value!==\"/\"&&(e=$.value+e),e});M(()=>{let e=`/download/backtest/full-reports/${n.results.generalInfo.session_id}?token=${R}`;return $.value!==\"/\"&&(e=$.value+e),e});const G=M(()=>{let e=`/download/backtest/csv/${n.results.generalInfo.session_id}?token=${R}`;return $.value!==\"/\"&&(e=$.value+e),e}),z=M(()=>{let e=`/download/backtest/json/${n.results.generalInfo.session_id}?token=${R}`;return $.value!==\"/\"&&(e=$.value+e),e}),D=M(()=>x.formattedMetrics(L.value).length>0),oe=M(()=>te.remainingTimeText(n.results.progressbar.estimated_remaining_seconds));function ve(){try{s.value.length>1e6&&Y(\"success\",\"Copying large log file, please wait...\"),setTimeout(()=>{navigator.clipboard.writeText(s.value.join(`\n`)),Y(\"success\",\"Logs copied successfully\"),b.value=!0,setTimeout(()=>{b.value=!1},3e3)},0)}catch{Y(\"error\",\"Failed to copy logs\")}}async function we(){const e=x.missingCandlesErrors[L.value];e&&(ie.forms.push({id:te.uuid(),exchange:e.exchange,symbol:e.symbol,start_date:e.start_date,executing:!1,waiting:!1,progressbar:{current:0,estimated_remaining_seconds:0},exception:{error:\"\",traceback:\"\"},alert:{message:\"\",type:\"\"}}),await Ce(\"/candles/\"),await ie.start(ie.forms[ie.forms.length-1].id))}async function ye(){s.value.length===0?await be():f.value=!0}async function be(){p.value=!0;try{const{data:e,error:o}=await Ct(`/backtest/logs/${L.value}?token=${R}`,!1);if(o.value){Y(\"error\",o.value.message),p.value=!1;return}const je=e.value;setTimeout(()=>{const Re=te.decompressData(je.content).split(`\n`).map(ke=>{const U=ke.match(/\\[INFO \\| (.*?)\\] (.*)/);return U?`[${U[1]}] ${U[2]}`:ke});s.value=Re,p.value=!1,f.value=!0},0)}catch{Y(\"error\",\"Failed to fetch logs\"),p.value=!1}}async function Oe(){let e=`/backtest/download-log/${L.value}?token=${R}`;$.value!==\"/\"&&(e=$.value+e),window.open(e,\"_blank\")}async function Te(){if(g.value=!0,!ee.candles[L.value]){m.value=!0;const e=await x.loadChartData(L.value);if(m.value=!1,!e){Y(\"error\",\"Failed to load chart data\"),g.value=!1;return}}}return(e,o)=>{const je=Wt,Le=We,Re=wt,ke=Tt,U=Ve,Xe=Lt,Be=Rt,xe=kt,Ie=Et,Ke=Ut,Ne=xt,ae=_t,et=Mt,tt=$t,K=Ot,st=Gt,ot=Bt,rt=It,lt=Nt,at=ss;return a(),d(A,null,[l(Re,{modelValue:r(f),\"onUpdate:modelValue\":o[0]||(o[0]=i=>ne(f)?f.value=i:null),title:\"Logs\"},{default:E(()=>[l(je,{logs:r(s)},null,8,[\"logs\"])]),buttons:E(()=>[l(Le,{text:\"Copy\",class:\"inline-block\",popper:{arrow:!0}},{default:E(()=>[t(\"button\",{class:\"p-2 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-full text-gray-400 hover:text-gray-500 dark:hover:text-gray-300 focus:outline-none\",onClick:ve},[r(b)?(a(),F(r(bt),{key:0,class:\"h-6 w-6\",\"aria-hidden\":\"true\"})):k(\"\",!0),!r(b)&&r(s).length!=0?(a(),F(r(jt),{key:1,class:\"h-6 w-6\",\"aria-hidden\":\"true\"})):k(\"\",!0)])]),_:1}),l(Le,{text:\"Download\",class:\"inline-block ml-2\",popper:{arrow:!0}},{default:E(()=>[t(\"button\",{class:\"p-2 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-full text-gray-400 hover:text-gray-500 dark:hover:text-gray-300 focus:outline-none\",onClick:Oe},[r(s).length!=0?(a(),F(r(ht),{key:0,class:\"h-6 w-6\",\"aria-hidden\":\"true\"})):k(\"\",!0)])]),_:1})]),_:1},8,[\"modelValue\"]),e.results.executing&&!e.results.showResults?(a(),d(\"div\",Ps,[t(\"div\",null,[l(ke,{progress:e.results.progressbar.current},null,8,[\"progress\"])]),e.results.exception.error?k(\"\",!0):(a(),d(\"h3\",{key:0,class:\"mt-8 animate-pulse\",textContent:y(r(oe))},null,8,zs)),t(\"div\",Ds,[t(\"div\",Fs,[e.results.exception.error?(a(),F(U,{key:0,color:\"primary\",class:\"w-64 flex justify-center\",icon:\"i-heroicons-arrow-path\",variant:\"solid\",label:\"Retry\",trailing:!1,onClick:o[1]||(o[1]=i=>r(ue)((e._.provides[me]||e.$route).params.id))})):k(\"\",!0),l(U,{color:\"gray\",ui:{color:{gray:{soft:\"text-rose-500 dark:text-rose-400\"}}},class:\"w-64 flex justify-center\",icon:\"i-heroicons-no-symbol\",variant:\"soft\",label:\"Cancel\",trailing:!1,onClick:o[2]||(o[2]=i=>r(le)((e._.provides[me]||e.$route).params.id))})]),e.form.debug_mode&&e.results.exception.error?(a(),d(\"div\",As,[l(U,{icon:\"i-heroicons-clipboard-document-list\",label:\"Debugging Logs\",color:\"gray\",variant:\"solid\",trailing:!1,class:\"w-64 flex justify-center\",onClick:ye})])):k(\"\",!0)]),e.results.exception.error&&e.results.executing?(a(),d(\"div\",qs,[l(Xe,{modelValue:r(S),\"onUpdate:modelValue\":o[3]||(o[3]=i=>ne(S)?S.value=i:null),title:e.results.exception.error,content:e.results.exception.traceback,mode:\"backtest\",\"debug-mode\":e.form.debug_mode},null,8,[\"modelValue\",\"title\",\"content\",\"debug-mode\"])])):k(\"\",!0)])):k(\"\",!0),l(rt,null,{left:E(()=>[!e.results.executing&&!e.results.showResults?(a(),d(\"div\",Hs,[r(x).missingCandlesErrors[r(L)]?(a(),F(Be,{key:0,icon:\"i-heroicons-exclamation-triangle\",color:\"rose\",variant:\"soft\",class:\"mb-4\"},{title:E(()=>o[29]||(o[29]=[t(\"h3\",{class:\"text-lg font-semibold\"},\"Missing Required Warmup Candles\",-1)])),description:E(()=>[t(\"p\",Ws,[o[30]||(o[30]=pe(\" Your strategy requires \")),o[31]||(o[31]=t(\"strong\",{class:\"font-bold\"},\"warmup candles\",-1)),pe(' for \"'+y(r(x).missingCandlesErrors[r(L)].symbol)+'\" on \"'+y(r(x).missingCandlesErrors[r(L)].exchange)+'\" starting from \"'+y(r(x).missingCandlesErrors[r(L)].start_date)+'\". These candles are needed for proper strategy initialization. ',1)]),l(U,{label:\"Import Required Candles\",icon:\"i-heroicons-arrow-down-tray\",onClick:we})]),_:1})):k(\"\",!0),l(xe,{class:\"mb-4\",title:\"Exchange\"}),l(Ie,{modelValue:e.form.exchange,\"onUpdate:modelValue\":o[4]||(o[4]=i=>e.form.exchange=i),placeholder:\"Select an exchange...\",searchable:\"\",options:r(Ee)().backtestingExchangeNames,class:\"mt-2 mb-16\"},null,8,[\"modelValue\",\"options\"]),l(Ke,{\"total-routes-error\":r(c),timeframes:r(h),form:e.form,results:e.results,symbols:r(X),mode:\"backtest\"},null,8,[\"total-routes-error\",\"timeframes\",\"form\",\"results\",\"symbols\"]),l(xe,{class:\"mt-16\",title:\"Duration\"}),t(\"div\",Js,[l(Ne,{modelValue:e.form.start_date,\"onUpdate:modelValue\":o[5]||(o[5]=i=>e.form.start_date=i),type:\"date\",variant:\"outline\",class:\"w-full mr-2\"},null,8,[\"modelValue\"]),l(Ne,{modelValue:e.form.finish_date,\"onUpdate:modelValue\":o[6]||(o[6]=i=>e.form.finish_date=i),type:\"date\",variant:\"outline\",class:\"w-full ml-2\"},null,8,[\"modelValue\"])]),l(xe,{class:\"mt-16\",title:\"Options\"}),t(\"div\",Gs,[l(ae,{modelValue:e.form.debug_mode,\"onUpdate:modelValue\":o[7]||(o[7]=i=>e.form.debug_mode=i),title:\"Debug Mode\",description:\"Logs every step of the execution. Very helpful for debugging your strategy but takes a lot longer to execute\"},null,8,[\"modelValue\"]),l(ae,{modelValue:e.form.export_chart,\"onUpdate:modelValue\":o[8]||(o[8]=i=>e.form.export_chart=i),title:\"Generate Interactive Charts\",description:\"Generate interactive charts for backtest results with details.\"},null,8,[\"modelValue\"]),l(ae,{modelValue:e.form.export_tradingview,\"onUpdate:modelValue\":o[9]||(o[9]=i=>e.form.export_tradingview=i),title:\"Export Tradingview\",description:\"Exports the executed trades in a format accepted by TradingView's Pine Editor. Useful to look at the executed orders on their chart.\"},null,8,[\"modelValue\"]),l(ae,{modelValue:e.form.export_csv,\"onUpdate:modelValue\":o[10]||(o[10]=i=>e.form.export_csv=i),title:\"Export CSV\",description:\"Exports executed trades in a CSV format\"},null,8,[\"modelValue\"]),l(ae,{modelValue:e.form.export_json,\"onUpdate:modelValue\":o[11]||(o[11]=i=>e.form.export_json=i),title:\"Export JSON\",description:\"Exports executed trades in a JSON format\"},null,8,[\"modelValue\"]),l(ae,{modelValue:e.form.fast_mode,\"onUpdate:modelValue\":o[12]||(o[12]=i=>e.form.fast_mode=i),title:\"Fast Mode\",description:\"Runs the backtest faster by using an improved algorithm. This is supposed to yield the same results; however, it's currently experimental, which is why it's an option.\"},null,8,[\"modelValue\"]),l(ae,{modelValue:e.form.benchmark,\"onUpdate:modelValue\":o[13]||(o[13]=i=>e.form.benchmark=i),title:\"Benchmark\",description:\"If enabled, the backtest will compare the performance of the strategy against the buy and hold strategy of the market.\"},null,8,[\"modelValue\"])])])):k(\"\",!0),e.results.showResults?(a(),d(\"div\",Ys,[t(\"div\",Qs,[r(D)?(a(),d(\"div\",Zs,[l(xe,{class:\"mb-4\",title:\"Equity Curve\"}),l(et,{data:e.results.charts.equity_curve},null,8,[\"data\"])])):k(\"\",!0),r(D)?(a(),d(\"div\",Xs,[o[32]||(o[32]=t(\"div\",{class:\"px-6 py-4 border-b dark:border-gray-700 bg-gray-100 dark:bg-gray-700/50\"},[t(\"h3\",{class:\"text-xs font-bold text-gray-900 dark:text-gray-100 uppercase tracking-wider\"},\"Performance\")],-1)),l(tt,{data:r(x).formattedMetrics(r(L)),\"no-container\":\"\"},null,8,[\"data\"])])):k(\"\",!0),r(D)?k(\"\",!0):(a(),d(\"div\",Ks,\" No trades were executed via this strategy! \"))]),l(st,{modelValue:r(g),\"onUpdate:modelValue\":o[17]||(o[17]=i=>ne(g)?g.value=i:null)},{title:E(()=>[t(\"div\",eo,[l(Ie,{modelValue:e.results.selectedRoute,\"onUpdate:modelValue\":o[14]||(o[14]=i=>e.results.selectedRoute=i),\"value-attribute\":\"value\",options:r(C)},null,8,[\"modelValue\",\"options\"]),l(U,{class:\"ml-2\",color:\"gray\",label:r(u)?\"Hide Trades\":\"Show Trades\",onClick:o[15]||(o[15]=i=>u.value=!r(u))},null,8,[\"label\"])])]),default:E(()=>[r(m)?(a(),d(\"div\",to,[t(\"div\",so,[t(\"div\",oo,[t(\"div\",ro,[l(K,{class:\"h-4 w-12\"}),l(K,{class:\"h-4 w-12\"}),l(K,{class:\"h-4 w-12\"})])]),t(\"div\",lo,[(a(),d(A,null,se(14,i=>t(\"div\",{key:i,class:\"flex items-center px-4 py-3.5 border-b border-gray-200 dark:border-gray-800\"},[l(K,{class:\"h-4 w-4 mr-4\"}),t(\"div\",ao,[l(K,{class:\"h-4 w-14\"}),l(K,{class:\"h-4 w-10\"}),l(K,{class:\"h-4 w-14\"})]),l(K,{class:\"h-7 w-7 rounded\"})])),64))])]),t(\"div\",no,[l(K,{class:\"w-full h-full\"})])])):(a(),F(Ns,{key:1,modelValue:r(u),\"onUpdate:modelValue\":o[16]||(o[16]=i=>ne(u)?u.value=i:null),results:e.results,form:e.form},null,8,[\"modelValue\",\"results\",\"form\"]))]),_:1},8,[\"modelValue\"])])):k(\"\",!0)]),right:E(()=>[e.results.executing?k(\"\",!0):(a(),d(\"div\",io,[e.results.showResults?(a(),d(\"div\",uo,[l(U,{class:\"w-full flex justify-center\",icon:\"i-heroicons-arrow-path\",variant:\"solid\",label:\"Rerun\",trailing:!1,onClick:o[18]||(o[18]=i=>H((e._.provides[me]||e.$route).params.id))}),l(U,{class:\"w-full flex justify-center mt-4\",color:\"green\",icon:\"i-heroicons-arrow-uturn-left\",variant:\"soft\",label:\"New session\",trailing:!1,onClick:o[19]||(o[19]=i=>r(de)((e._.provides[me]||e.$route).params.id))}),l(U,{class:\"w-full flex justify-center mt-4\",color:\"gray\",icon:\"i-heroicons-code-bracket\",variant:\"soft\",label:\"View Strategy Snapshot\",trailing:!1,onClick:o[20]||(o[20]=i=>T.value=!0)}),e.form.debug_mode?(a(),F(U,{key:0,class:\"w-full flex justify-center mt-4\",color:\"gray\",icon:\"i-heroicons-clipboard-document-list\",variant:\"soft\",label:\"Debugging Logs\",loading:r(p),trailing:!1,onClick:o[21]||(o[21]=i=>ye())},null,8,[\"loading\"])):k(\"\",!0),e.form.export_chart?(a(),F(U,{key:1,class:\"mt-4 flex justify-center items-center btn-secondary text-center\",color:\"gray\",icon:\"i-heroicons-chart-bar\",block:\"\",variant:\"soft\",label:\"View charts\",trailing:!1,onClick:o[22]||(o[22]=i=>Te())})):k(\"\",!0),e.form.export_csv&&r(D)?(a(),d(\"a\",{key:2,href:r(G),target:\"_blank\",class:\"flex justify-center items-center btn-secondary text-center w-full\"},[l(U,{class:\"w-full flex justify-center mt-4\",color:\"gray\",icon:\"i-heroicons-document-arrow-down\",variant:\"soft\",label:\"CSV\",trailing:!1})],8,co)):k(\"\",!0),e.form.export_json&&r(D)?(a(),d(\"a\",{key:3,href:r(z),target:\"_blank\",class:\"flex justify-center items-center btn-secondary text-center w-full\"},[l(U,{class:\"w-full flex justify-center mt-4\",color:\"gray\",icon:\"i-heroicons-document-arrow-down\",variant:\"soft\",label:\"JSON\",trailing:!1})],8,fo)):k(\"\",!0),e.form.export_tradingview&&r(D)?(a(),d(\"a\",{key:4,href:r(B),target:\"_blank\",class:\"flex justify-center items-center btn-secondary text-center mb-4 w-full\"},[l(U,{class:\"w-full flex justify-center mt-4\",color:\"gray\",icon:\"i-heroicons-document-arrow-down\",variant:\"soft\",label:\"TradingView Pine Editor\",trailing:!1})],8,mo)):k(\"\",!0),e.results.showResults&&e.results.alert&&e.results.alert.message?(a(),d(\"div\",go,[l(Be,{color:\"teal\",icon:\"i-heroicons-check-circle\",variant:\"soft\",title:e.results.alert.message,\"close-button\":{icon:\"i-heroicons-x-mark-20-solid\",color:\"white\",variant:\"link\"},onClose:o[23]||(o[23]=i=>e.results.alert.message=\"\")},null,8,[\"title\"])])):k(\"\",!0),e.results.info&&e.results.info.length?(a(),d(\"div\",po,[o[33]||(o[33]=t(\"div\",{class:\"px-6 py-4 border-b dark:border-gray-700 bg-gray-100 dark:bg-gray-700/50\"},[t(\"h3\",{class:\"text-xs font-bold text-gray-900 dark:text-gray-100 uppercase tracking-wider\"},\"General Info\")],-1)),t(\"dl\",vo,[(a(!0),d(A,null,se(e.results.info,(i,he)=>(a(),d(\"div\",{key:he,class:\"flex justify-between items-center text-sm\"},[t(\"dt\",yo,y(i[0])+\":\",1),t(\"dd\",bo,y(i[1]),1)]))),128))])])):k(\"\",!0),e.results.routes_info&&e.results.routes_info.length?(a(),d(\"div\",ho,[o[34]||(o[34]=t(\"div\",{class:\"px-6 py-4 border-b dark:border-gray-700 bg-gray-100 dark:bg-gray-700/50\"},[t(\"h3\",{class:\"text-xs font-bold text-gray-900 dark:text-gray-100 uppercase tracking-wider\"},\"Routes\")],-1)),t(\"div\",wo,[(a(!0),d(A,null,se(e.results.routes_info,(i,he)=>(a(),d(\"div\",{key:he,class:\"grid grid-cols-3 items-center\"},[t(\"div\",ko,y(i[2].value),1),t(\"div\",xo,y(i[0].value),1),t(\"div\",_o,[l(ot,{color:\"gray\",variant:\"soft\",size:\"xs\"},{default:E(()=>[pe(y(i[1].value),1)]),_:2},1024)])]))),128))])])):k(\"\",!0),e.results.hyperparameters&&e.results.hyperparameters.length?(a(),d(\"div\",$o,[o[35]||(o[35]=t(\"div\",{class:\"px-6 py-4 border-b dark:border-gray-700 bg-gray-100 dark:bg-gray-700/50\"},[t(\"h3\",{class:\"text-xs font-bold text-gray-900 dark:text-gray-100 uppercase tracking-wider\"},\"Hyperparameters\")],-1)),t(\"dl\",Co,[(a(!0),d(A,null,se(e.results.hyperparameters,(i,he)=>(a(),d(\"div\",{key:he,class:\"flex justify-between items-center text-sm\"},[t(\"dt\",Vo,y(i[0])+\":\",1),t(\"dd\",So,y(i[1]),1)]))),128))])])):k(\"\",!0),e.results.showResults?(a(),d(\"div\",To,[t(\"div\",jo,[t(\"h3\",Lo,y(e.results.generalInfo.title||\"Session Notes\"),1),l(U,{variant:\"link\",color:\"gray\",icon:\"i-heroicons-pencil-square\",onClick:o[24]||(o[24]=i=>v.value=!0)})]),t(\"div\",Ro,[e.results.generalInfo.description?(a(),d(\"div\",Eo,y(e.results.generalInfo.description),1)):(a(),d(\"div\",Uo,\" No notes yet. Click the edit button to add notes. \"))])])):k(\"\",!0)])):(a(),d(\"div\",Mo,[l(U,{class:\"w-full flex justify-center\",icon:\"i-heroicons-bolt\",variant:\"solid\",label:\"Start\",trailing:!1,onClick:o[25]||(o[25]=i=>ce((e._.provides[me]||e.$route).params.id))}),l(U,{class:\"w-full flex justify-center mt-4\",color:\"gray\",icon:\"i-heroicons-plus\",variant:\"soft\",label:\"Start in a new tab\",trailing:!1,onClick:o[26]||(o[26]=i=>j((e._.provides[me]||e.$route).params.id))})]))]))]),_:1}),l(lt,{modelValue:r(v),\"onUpdate:modelValue\":o[27]||(o[27]=i=>ne(v)?v.value=i:null),\"session-id\":r(L),\"initial-title\":r(J),\"initial-description\":r(q),onSaved:O},null,8,[\"modelValue\",\"session-id\",\"initial-title\",\"initial-description\"]),l(at,{modelValue:r(T),\"onUpdate:modelValue\":o[28]||(o[28]=i=>ne(T)?T.value=i:null),routes:n.form.routes,exchange:n.form.exchange,\"strategy-codes\":r(N)},null,8,[\"modelValue\",\"routes\",\"exchange\",\"strategy-codes\"])],64)}}}),Bo={class:\"w-full\"},sr=re({__name:\"[id]\",setup(I){Ze({title:\"Backtest - Jesse\"});const n=Qe(),_=Vt(),p=M(()=>n.tabs),m=M(()=>_.params.id),u=M(()=>p.value[m.value]);return St(()=>{const f=m.value;if(!f||u.value||!n.recentlyClosedTabIds.includes(f))return;const s=n.recentlyClosedRedirectTargets[f]||n.tabIds[0];s&&Ce(`/backtest/${s}`)}),n.tabIds.length===0&&n.addTab(),Me(()=>{setTimeout(async()=>{!u.value&&m.value&&(await n.loadSession(m.value)||(n.tabIds.length>0?await Ce(`/backtest/${n.tabIds[0]}`):await n.addTab()))},20)}),zt({w:()=>{u.value&&n.closeTab(u.value.id,_.path)},ArrowLeft:()=>n.goToPrevTab(m.value),ArrowRight:()=>n.goToNextTab(m.value)}),(f,s)=>{const c=nt,S=Oo;return a(),d(A,null,[t(\"div\",Bo,[l(c,{\"current-tab\":u.value?u.value.id:null,tabs:p.value,onClose:s[0]||(s[0]=b=>r(n).closeTab(b,r(_).path)),onCancel:r(n).cancel},null,8,[\"current-tab\",\"tabs\",\"onCancel\"])]),u.value?(a(),F(S,{key:0,form:u.value.form,results:u.value.results},null,8,[\"form\",\"results\"])):k(\"\",!0)],64)}}});export{sr as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/E3gJ1_iC.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBorder\":\"#ff967d\",\"activityBar.background\":\"#0a0c10\",\"activityBar.border\":\"#7a828e\",\"activityBar.foreground\":\"#f0f3f6\",\"activityBar.inactiveForeground\":\"#f0f3f6\",\"activityBarBadge.background\":\"#409eff\",\"activityBarBadge.foreground\":\"#0a0c10\",\"badge.background\":\"#409eff\",\"badge.foreground\":\"#0a0c10\",\"breadcrumb.activeSelectionForeground\":\"#f0f3f6\",\"breadcrumb.focusForeground\":\"#f0f3f6\",\"breadcrumb.foreground\":\"#f0f3f6\",\"breadcrumbPicker.background\":\"#272b33\",\"button.background\":\"#09b43a\",\"button.foreground\":\"#0a0c10\",\"button.hoverBackground\":\"#26cd4d\",\"button.secondaryBackground\":\"#4c525d\",\"button.secondaryForeground\":\"#f0f3f6\",\"button.secondaryHoverBackground\":\"#525964\",\"checkbox.background\":\"#272b33\",\"checkbox.border\":\"#7a828e\",\"debugConsole.errorForeground\":\"#ffb1af\",\"debugConsole.infoForeground\":\"#bdc4cc\",\"debugConsole.sourceForeground\":\"#f7c843\",\"debugConsole.warningForeground\":\"#f0b72f\",\"debugConsoleInputIcon.foreground\":\"#cb9eff\",\"debugIcon.breakpointForeground\":\"#ff6a69\",\"debugTokenExpression.boolean\":\"#4ae168\",\"debugTokenExpression.error\":\"#ffb1af\",\"debugTokenExpression.name\":\"#91cbff\",\"debugTokenExpression.number\":\"#4ae168\",\"debugTokenExpression.string\":\"#addcff\",\"debugTokenExpression.value\":\"#addcff\",\"debugToolBar.background\":\"#272b33\",\"descriptionForeground\":\"#f0f3f6\",\"diffEditor.insertedLineBackground\":\"#09b43a26\",\"diffEditor.insertedTextBackground\":\"#26cd4d4d\",\"diffEditor.removedLineBackground\":\"#ff6a6926\",\"diffEditor.removedTextBackground\":\"#ff94924d\",\"dropdown.background\":\"#272b33\",\"dropdown.border\":\"#7a828e\",\"dropdown.foreground\":\"#f0f3f6\",\"dropdown.listBackground\":\"#272b33\",\"editor.background\":\"#0a0c10\",\"editor.findMatchBackground\":\"#e09b13\",\"editor.findMatchHighlightBackground\":\"#fbd66980\",\"editor.focusedStackFrameHighlightBackground\":\"#09b43a\",\"editor.foldBackground\":\"#9ea7b31a\",\"editor.foreground\":\"#f0f3f6\",\"editor.inactiveSelectionBackground\":\"#9ea7b3\",\"editor.lineHighlightBackground\":\"#9ea7b31a\",\"editor.lineHighlightBorder\":\"#71b7ff\",\"editor.linkedEditingBackground\":\"#71b7ff12\",\"editor.selectionBackground\":\"#ffffff\",\"editor.selectionForeground\":\"#0a0c10\",\"editor.selectionHighlightBackground\":\"#26cd4d40\",\"editor.stackFrameHighlightBackground\":\"#e09b13\",\"editor.wordHighlightBackground\":\"#9ea7b380\",\"editor.wordHighlightBorder\":\"#9ea7b399\",\"editor.wordHighlightStrongBackground\":\"#9ea7b34d\",\"editor.wordHighlightStrongBorder\":\"#9ea7b399\",\"editorBracketHighlight.foreground1\":\"#91cbff\",\"editorBracketHighlight.foreground2\":\"#4ae168\",\"editorBracketHighlight.foreground3\":\"#f7c843\",\"editorBracketHighlight.foreground4\":\"#ffb1af\",\"editorBracketHighlight.foreground5\":\"#ffadd4\",\"editorBracketHighlight.foreground6\":\"#dbb7ff\",\"editorBracketHighlight.unexpectedBracket.foreground\":\"#f0f3f6\",\"editorBracketMatch.background\":\"#26cd4d40\",\"editorBracketMatch.border\":\"#26cd4d99\",\"editorCursor.foreground\":\"#71b7ff\",\"editorGroup.border\":\"#7a828e\",\"editorGroupHeader.tabsBackground\":\"#010409\",\"editorGroupHeader.tabsBorder\":\"#7a828e\",\"editorGutter.addedBackground\":\"#09b43a\",\"editorGutter.deletedBackground\":\"#ff6a69\",\"editorGutter.modifiedBackground\":\"#e09b13\",\"editorIndentGuide.activeBackground\":\"#f0f3f63d\",\"editorIndentGuide.background\":\"#f0f3f61f\",\"editorInlayHint.background\":\"#bdc4cc33\",\"editorInlayHint.foreground\":\"#f0f3f6\",\"editorInlayHint.paramBackground\":\"#bdc4cc33\",\"editorInlayHint.paramForeground\":\"#f0f3f6\",\"editorInlayHint.typeBackground\":\"#bdc4cc33\",\"editorInlayHint.typeForeground\":\"#f0f3f6\",\"editorLineNumber.activeForeground\":\"#f0f3f6\",\"editorLineNumber.foreground\":\"#9ea7b3\",\"editorOverviewRuler.border\":\"#010409\",\"editorWhitespace.foreground\":\"#7a828e\",\"editorWidget.background\":\"#272b33\",\"errorForeground\":\"#ff6a69\",\"focusBorder\":\"#409eff\",\"foreground\":\"#f0f3f6\",\"gitDecoration.addedResourceForeground\":\"#26cd4d\",\"gitDecoration.conflictingResourceForeground\":\"#e7811d\",\"gitDecoration.deletedResourceForeground\":\"#ff6a69\",\"gitDecoration.ignoredResourceForeground\":\"#9ea7b3\",\"gitDecoration.modifiedResourceForeground\":\"#f0b72f\",\"gitDecoration.submoduleResourceForeground\":\"#f0f3f6\",\"gitDecoration.untrackedResourceForeground\":\"#26cd4d\",\"icon.foreground\":\"#f0f3f6\",\"input.background\":\"#0a0c10\",\"input.border\":\"#7a828e\",\"input.foreground\":\"#f0f3f6\",\"input.placeholderForeground\":\"#9ea7b3\",\"keybindingLabel.foreground\":\"#f0f3f6\",\"list.activeSelectionBackground\":\"#9ea7b366\",\"list.activeSelectionForeground\":\"#f0f3f6\",\"list.focusBackground\":\"#409eff26\",\"list.focusForeground\":\"#f0f3f6\",\"list.highlightForeground\":\"#71b7ff\",\"list.hoverBackground\":\"#9ea7b31a\",\"list.hoverForeground\":\"#f0f3f6\",\"list.inactiveFocusBackground\":\"#409eff26\",\"list.inactiveSelectionBackground\":\"#9ea7b366\",\"list.inactiveSelectionForeground\":\"#f0f3f6\",\"minimapSlider.activeBackground\":\"#bdc4cc47\",\"minimapSlider.background\":\"#bdc4cc33\",\"minimapSlider.hoverBackground\":\"#bdc4cc3d\",\"notificationCenterHeader.background\":\"#272b33\",\"notificationCenterHeader.foreground\":\"#f0f3f6\",\"notifications.background\":\"#272b33\",\"notifications.border\":\"#7a828e\",\"notifications.foreground\":\"#f0f3f6\",\"notificationsErrorIcon.foreground\":\"#ff6a69\",\"notificationsInfoIcon.foreground\":\"#71b7ff\",\"notificationsWarningIcon.foreground\":\"#f0b72f\",\"panel.background\":\"#010409\",\"panel.border\":\"#7a828e\",\"panelInput.border\":\"#7a828e\",\"panelTitle.activeBorder\":\"#ff967d\",\"panelTitle.activeForeground\":\"#f0f3f6\",\"panelTitle.inactiveForeground\":\"#f0f3f6\",\"peekViewEditor.background\":\"#9ea7b31a\",\"peekViewEditor.matchHighlightBackground\":\"#e09b13\",\"peekViewResult.background\":\"#0a0c10\",\"peekViewResult.matchHighlightBackground\":\"#e09b13\",\"pickerGroup.border\":\"#7a828e\",\"pickerGroup.foreground\":\"#f0f3f6\",\"progressBar.background\":\"#409eff\",\"quickInput.background\":\"#272b33\",\"quickInput.foreground\":\"#f0f3f6\",\"scrollbar.shadow\":\"#7a828e33\",\"scrollbarSlider.activeBackground\":\"#bdc4cc47\",\"scrollbarSlider.background\":\"#bdc4cc33\",\"scrollbarSlider.hoverBackground\":\"#bdc4cc3d\",\"settings.headerForeground\":\"#f0f3f6\",\"settings.modifiedItemIndicator\":\"#e09b13\",\"sideBar.background\":\"#010409\",\"sideBar.border\":\"#7a828e\",\"sideBar.foreground\":\"#f0f3f6\",\"sideBarSectionHeader.background\":\"#010409\",\"sideBarSectionHeader.border\":\"#7a828e\",\"sideBarSectionHeader.foreground\":\"#f0f3f6\",\"sideBarTitle.foreground\":\"#f0f3f6\",\"statusBar.background\":\"#0a0c10\",\"statusBar.border\":\"#7a828e\",\"statusBar.debuggingBackground\":\"#ff6a69\",\"statusBar.debuggingForeground\":\"#0a0c10\",\"statusBar.focusBorder\":\"#409eff80\",\"statusBar.foreground\":\"#f0f3f6\",\"statusBar.noFolderBackground\":\"#0a0c10\",\"statusBarItem.activeBackground\":\"#f0f3f61f\",\"statusBarItem.focusBorder\":\"#409eff\",\"statusBarItem.hoverBackground\":\"#f0f3f614\",\"statusBarItem.prominentBackground\":\"#9ea7b366\",\"statusBarItem.remoteBackground\":\"#525964\",\"statusBarItem.remoteForeground\":\"#f0f3f6\",\"symbolIcon.arrayForeground\":\"#fe9a2d\",\"symbolIcon.booleanForeground\":\"#71b7ff\",\"symbolIcon.classForeground\":\"#fe9a2d\",\"symbolIcon.colorForeground\":\"#91cbff\",\"symbolIcon.constantForeground\":[\"#acf7b6\",\"#72f088\",\"#4ae168\",\"#26cd4d\",\"#09b43a\",\"#09b43a\",\"#02a232\",\"#008c2c\",\"#007728\",\"#006222\"],\"symbolIcon.constructorForeground\":\"#dbb7ff\",\"symbolIcon.enumeratorForeground\":\"#fe9a2d\",\"symbolIcon.enumeratorMemberForeground\":\"#71b7ff\",\"symbolIcon.eventForeground\":\"#9ea7b3\",\"symbolIcon.fieldForeground\":\"#fe9a2d\",\"symbolIcon.fileForeground\":\"#f0b72f\",\"symbolIcon.folderForeground\":\"#f0b72f\",\"symbolIcon.functionForeground\":\"#cb9eff\",\"symbolIcon.interfaceForeground\":\"#fe9a2d\",\"symbolIcon.keyForeground\":\"#71b7ff\",\"symbolIcon.keywordForeground\":\"#ff9492\",\"symbolIcon.methodForeground\":\"#cb9eff\",\"symbolIcon.moduleForeground\":\"#ff9492\",\"symbolIcon.namespaceForeground\":\"#ff9492\",\"symbolIcon.nullForeground\":\"#71b7ff\",\"symbolIcon.numberForeground\":\"#26cd4d\",\"symbolIcon.objectForeground\":\"#fe9a2d\",\"symbolIcon.operatorForeground\":\"#91cbff\",\"symbolIcon.packageForeground\":\"#fe9a2d\",\"symbolIcon.propertyForeground\":\"#fe9a2d\",\"symbolIcon.referenceForeground\":\"#71b7ff\",\"symbolIcon.snippetForeground\":\"#71b7ff\",\"symbolIcon.stringForeground\":\"#91cbff\",\"symbolIcon.structForeground\":\"#fe9a2d\",\"symbolIcon.textForeground\":\"#91cbff\",\"symbolIcon.typeParameterForeground\":\"#91cbff\",\"symbolIcon.unitForeground\":\"#71b7ff\",\"symbolIcon.variableForeground\":\"#fe9a2d\",\"tab.activeBackground\":\"#0a0c10\",\"tab.activeBorder\":\"#0a0c10\",\"tab.activeBorderTop\":\"#ff967d\",\"tab.activeForeground\":\"#f0f3f6\",\"tab.border\":\"#7a828e\",\"tab.hoverBackground\":\"#0a0c10\",\"tab.inactiveBackground\":\"#010409\",\"tab.inactiveForeground\":\"#f0f3f6\",\"tab.unfocusedActiveBorder\":\"#0a0c10\",\"tab.unfocusedActiveBorderTop\":\"#7a828e\",\"tab.unfocusedHoverBackground\":\"#9ea7b31a\",\"terminal.ansiBlack\":\"#7a828e\",\"terminal.ansiBlue\":\"#71b7ff\",\"terminal.ansiBrightBlack\":\"#9ea7b3\",\"terminal.ansiBrightBlue\":\"#91cbff\",\"terminal.ansiBrightCyan\":\"#56d4dd\",\"terminal.ansiBrightGreen\":\"#4ae168\",\"terminal.ansiBrightMagenta\":\"#dbb7ff\",\"terminal.ansiBrightRed\":\"#ffb1af\",\"terminal.ansiBrightWhite\":\"#ffffff\",\"terminal.ansiBrightYellow\":\"#f7c843\",\"terminal.ansiCyan\":\"#39c5cf\",\"terminal.ansiGreen\":\"#26cd4d\",\"terminal.ansiMagenta\":\"#cb9eff\",\"terminal.ansiRed\":\"#ff9492\",\"terminal.ansiWhite\":\"#d9dee3\",\"terminal.ansiYellow\":\"#f0b72f\",\"terminal.foreground\":\"#f0f3f6\",\"textBlockQuote.background\":\"#010409\",\"textBlockQuote.border\":\"#7a828e\",\"textCodeBlock.background\":\"#9ea7b366\",\"textLink.activeForeground\":\"#71b7ff\",\"textLink.foreground\":\"#71b7ff\",\"textPreformat.background\":\"#9ea7b366\",\"textPreformat.foreground\":\"#f0f3f6\",\"textSeparator.foreground\":\"#7a828e\",\"titleBar.activeBackground\":\"#0a0c10\",\"titleBar.activeForeground\":\"#f0f3f6\",\"titleBar.border\":\"#7a828e\",\"titleBar.inactiveBackground\":\"#010409\",\"titleBar.inactiveForeground\":\"#f0f3f6\",\"tree.indentGuidesStroke\":\"#7a828e\",\"welcomePage.buttonBackground\":\"#272b33\",\"welcomePage.buttonHoverBackground\":\"#525964\"},\"displayName\":\"GitHub Dark High Contrast\",\"name\":\"github-dark-high-contrast\",\"semanticHighlighting\":true,\"tokenColors\":[{\"scope\":[\"comment\",\"punctuation.definition.comment\",\"string.comment\"],\"settings\":{\"foreground\":\"#bdc4cc\"}},{\"scope\":[\"constant.other.placeholder\",\"constant.character\"],\"settings\":{\"foreground\":\"#ff9492\"}},{\"scope\":[\"constant\",\"entity.name.constant\",\"variable.other.constant\",\"variable.other.enummember\",\"variable.language\",\"entity\"],\"settings\":{\"foreground\":\"#91cbff\"}},{\"scope\":[\"entity.name\",\"meta.export.default\",\"meta.definition.variable\"],\"settings\":{\"foreground\":\"#ffb757\"}},{\"scope\":[\"variable.parameter.function\",\"meta.jsx.children\",\"meta.block\",\"meta.tag.attributes\",\"entity.name.constant\",\"meta.object.member\",\"meta.embedded.expression\"],\"settings\":{\"foreground\":\"#f0f3f6\"}},{\"scope\":\"entity.name.function\",\"settings\":{\"foreground\":\"#dbb7ff\"}},{\"scope\":[\"entity.name.tag\",\"support.class.component\"],\"settings\":{\"foreground\":\"#72f088\"}},{\"scope\":\"keyword\",\"settings\":{\"foreground\":\"#ff9492\"}},{\"scope\":[\"storage\",\"storage.type\"],\"settings\":{\"foreground\":\"#ff9492\"}},{\"scope\":[\"storage.modifier.package\",\"storage.modifier.import\",\"storage.type.java\"],\"settings\":{\"foreground\":\"#f0f3f6\"}},{\"scope\":[\"string\",\"string punctuation.section.embedded source\"],\"settings\":{\"foreground\":\"#addcff\"}},{\"scope\":\"support\",\"settings\":{\"foreground\":\"#91cbff\"}},{\"scope\":\"meta.property-name\",\"settings\":{\"foreground\":\"#91cbff\"}},{\"scope\":\"variable\",\"settings\":{\"foreground\":\"#ffb757\"}},{\"scope\":\"variable.other\",\"settings\":{\"foreground\":\"#f0f3f6\"}},{\"scope\":\"invalid.broken\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#ffb1af\"}},{\"scope\":\"invalid.deprecated\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#ffb1af\"}},{\"scope\":\"invalid.illegal\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#ffb1af\"}},{\"scope\":\"invalid.unimplemented\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#ffb1af\"}},{\"scope\":\"carriage-return\",\"settings\":{\"background\":\"#ff9492\",\"content\":\"^M\",\"fontStyle\":\"italic underline\",\"foreground\":\"#ffffff\"}},{\"scope\":\"message.error\",\"settings\":{\"foreground\":\"#ffb1af\"}},{\"scope\":\"string variable\",\"settings\":{\"foreground\":\"#91cbff\"}},{\"scope\":[\"source.regexp\",\"string.regexp\"],\"settings\":{\"foreground\":\"#addcff\"}},{\"scope\":[\"string.regexp.character-class\",\"string.regexp constant.character.escape\",\"string.regexp source.ruby.embedded\",\"string.regexp string.regexp.arbitrary-repitition\"],\"settings\":{\"foreground\":\"#addcff\"}},{\"scope\":\"string.regexp constant.character.escape\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#72f088\"}},{\"scope\":\"support.constant\",\"settings\":{\"foreground\":\"#91cbff\"}},{\"scope\":\"support.variable\",\"settings\":{\"foreground\":\"#91cbff\"}},{\"scope\":\"support.type.property-name.json\",\"settings\":{\"foreground\":\"#72f088\"}},{\"scope\":\"meta.module-reference\",\"settings\":{\"foreground\":\"#91cbff\"}},{\"scope\":\"punctuation.definition.list.begin.markdown\",\"settings\":{\"foreground\":\"#ffb757\"}},{\"scope\":[\"markup.heading\",\"markup.heading entity.name\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#91cbff\"}},{\"scope\":\"markup.quote\",\"settings\":{\"foreground\":\"#72f088\"}},{\"scope\":\"markup.italic\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#f0f3f6\"}},{\"scope\":\"markup.bold\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#f0f3f6\"}},{\"scope\":[\"markup.underline\"],\"settings\":{\"fontStyle\":\"underline\"}},{\"scope\":[\"markup.strikethrough\"],\"settings\":{\"fontStyle\":\"strikethrough\"}},{\"scope\":\"markup.inline.raw\",\"settings\":{\"foreground\":\"#91cbff\"}},{\"scope\":[\"markup.deleted\",\"meta.diff.header.from-file\",\"punctuation.definition.deleted\"],\"settings\":{\"background\":\"#ad0116\",\"foreground\":\"#ffb1af\"}},{\"scope\":[\"punctuation.section.embedded\"],\"settings\":{\"foreground\":\"#ff9492\"}},{\"scope\":[\"markup.inserted\",\"meta.diff.header.to-file\",\"punctuation.definition.inserted\"],\"settings\":{\"background\":\"#006222\",\"foreground\":\"#72f088\"}},{\"scope\":[\"markup.changed\",\"punctuation.definition.changed\"],\"settings\":{\"background\":\"#a74c00\",\"foreground\":\"#ffb757\"}},{\"scope\":[\"markup.ignored\",\"markup.untracked\"],\"settings\":{\"background\":\"#91cbff\",\"foreground\":\"#272b33\"}},{\"scope\":\"meta.diff.range\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#dbb7ff\"}},{\"scope\":\"meta.diff.header\",\"settings\":{\"foreground\":\"#91cbff\"}},{\"scope\":\"meta.separator\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#91cbff\"}},{\"scope\":\"meta.output\",\"settings\":{\"foreground\":\"#91cbff\"}},{\"scope\":[\"brackethighlighter.tag\",\"brackethighlighter.curly\",\"brackethighlighter.round\",\"brackethighlighter.square\",\"brackethighlighter.angle\",\"brackethighlighter.quote\"],\"settings\":{\"foreground\":\"#bdc4cc\"}},{\"scope\":\"brackethighlighter.unmatched\",\"settings\":{\"foreground\":\"#ffb1af\"}},{\"scope\":[\"constant.other.reference.link\",\"string.other.link\"],\"settings\":{\"foreground\":\"#addcff\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/FNqbgIOG.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"#\"},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"`\",close:\"`\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"`\",close:\"`\"}]},r={defaultToken:\"\",ignoreCase:!0,tokenPostfix:\".shell\",brackets:[{token:\"delimiter.bracket\",open:\"{\",close:\"}\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"},{token:\"delimiter.square\",open:\"[\",close:\"]\"}],keywords:[\"if\",\"then\",\"do\",\"else\",\"elif\",\"while\",\"until\",\"for\",\"in\",\"esac\",\"fi\",\"fin\",\"fil\",\"done\",\"exit\",\"set\",\"unset\",\"export\",\"function\"],builtins:[\"ab\",\"awk\",\"bash\",\"beep\",\"cat\",\"cc\",\"cd\",\"chown\",\"chmod\",\"chroot\",\"clear\",\"cp\",\"curl\",\"cut\",\"diff\",\"echo\",\"find\",\"gawk\",\"gcc\",\"get\",\"git\",\"grep\",\"hg\",\"kill\",\"killall\",\"ln\",\"ls\",\"make\",\"mkdir\",\"openssl\",\"mv\",\"nc\",\"node\",\"npm\",\"ping\",\"ps\",\"restart\",\"rm\",\"rmdir\",\"sed\",\"service\",\"sh\",\"shopt\",\"shred\",\"source\",\"sort\",\"sleep\",\"ssh\",\"start\",\"stop\",\"su\",\"sudo\",\"svn\",\"tee\",\"telnet\",\"top\",\"touch\",\"vi\",\"vim\",\"wall\",\"wc\",\"wget\",\"who\",\"write\",\"yes\",\"zsh\"],startingWithDash:/\\-+\\w+/,identifiersWithDashes:/[a-zA-Z]\\w+(?:@startingWithDash)+/,symbols:/[=><!~?&|+\\-*\\/\\^;\\.,]+/,tokenizer:{root:[[/@identifiersWithDashes/,\"\"],[/(\\s)((?:@startingWithDash)+)/,[\"white\",\"attribute.name\"]],[/[a-zA-Z]\\w*/,{cases:{\"@keywords\":\"keyword\",\"@builtins\":\"type.identifier\",\"@default\":\"\"}}],{include:\"@whitespace\"},{include:\"@strings\"},{include:\"@parameters\"},{include:\"@heredoc\"},[/[{}\\[\\]()]/,\"@brackets\"],[/@symbols/,\"delimiter\"],{include:\"@numbers\"},[/[,;]/,\"delimiter\"]],whitespace:[[/\\s+/,\"white\"],[/(^#!.*$)/,\"metatag\"],[/(^#.*$)/,\"comment\"]],numbers:[[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,\"number.hex\"],[/\\d+/,\"number\"]],strings:[[/'/,\"string\",\"@stringBody\"],[/\"/,\"string\",\"@dblStringBody\"]],stringBody:[[/'/,\"string\",\"@popall\"],[/./,\"string\"]],dblStringBody:[[/\"/,\"string\",\"@popall\"],[/./,\"string\"]],heredoc:[[/(<<[-<]?)(\\s*)(['\"`]?)([\\w\\-]+)(['\"`]?)/,[\"constants\",\"white\",\"string.heredoc.delimiter\",\"string.heredoc\",\"string.heredoc.delimiter\"]]],parameters:[[/\\$\\d+/,\"variable.predefined\"],[/\\$\\w+/,\"variable\"],[/\\$[*@#?\\-$!0_]/,\"variable\"],[/\\$'/,\"variable\",\"@parameterBodyQuote\"],[/\\$\"/,\"variable\",\"@parameterBodyDoubleQuote\"],[/\\$\\(/,\"variable\",\"@parameterBodyParen\"],[/\\$\\{/,\"variable\",\"@parameterBodyCurlyBrace\"]],parameterBodyQuote:[[/[^#:%*@\\-!_']+/,\"variable\"],[/[#:%*@\\-!_]/,\"delimiter\"],[/[']/,\"variable\",\"@pop\"]],parameterBodyDoubleQuote:[[/[^#:%*@\\-!_\"]+/,\"variable\"],[/[#:%*@\\-!_]/,\"delimiter\"],[/[\"]/,\"variable\",\"@pop\"]],parameterBodyParen:[[/[^#:%*@\\-!_)]+/,\"variable\"],[/[#:%*@\\-!_]/,\"delimiter\"],[/[)]/,\"variable\",\"@pop\"]],parameterBodyCurlyBrace:[[/[^#:%*@\\-!_}]+/,\"variable\"],[/[#:%*@\\-!_]/,\"delimiter\"],[/[}]/,\"variable\",\"@pop\"]]}};export{e as conf,r as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/GBQ2dnAY.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"actionBar.toggledBackground\":\"#525761\",\"activityBar.background\":\"#282c34\",\"activityBar.foreground\":\"#d7dae0\",\"activityBarBadge.background\":\"#4d78cc\",\"activityBarBadge.foreground\":\"#f8fafd\",\"badge.background\":\"#282c34\",\"button.background\":\"#404754\",\"button.secondaryBackground\":\"#30333d\",\"button.secondaryForeground\":\"#c0bdbd\",\"checkbox.border\":\"#404754\",\"debugToolBar.background\":\"#21252b\",\"descriptionForeground\":\"#abb2bf\",\"diffEditor.insertedTextBackground\":\"#00809b33\",\"dropdown.background\":\"#21252b\",\"dropdown.border\":\"#21252b\",\"editor.background\":\"#282c34\",\"editor.findMatchBackground\":\"#d19a6644\",\"editor.findMatchBorder\":\"#ffffff5a\",\"editor.findMatchHighlightBackground\":\"#ffffff22\",\"editor.foreground\":\"#abb2bf\",\"editor.lineHighlightBackground\":\"#2c313c\",\"editor.selectionBackground\":\"#67769660\",\"editor.selectionHighlightBackground\":\"#ffd33d44\",\"editor.selectionHighlightBorder\":\"#dddddd\",\"editor.wordHighlightBackground\":\"#d2e0ff2f\",\"editor.wordHighlightBorder\":\"#7f848e\",\"editor.wordHighlightStrongBackground\":\"#abb2bf26\",\"editor.wordHighlightStrongBorder\":\"#7f848e\",\"editorBracketHighlight.foreground1\":\"#d19a66\",\"editorBracketHighlight.foreground2\":\"#c678dd\",\"editorBracketHighlight.foreground3\":\"#56b6c2\",\"editorBracketMatch.background\":\"#515a6b\",\"editorBracketMatch.border\":\"#515a6b\",\"editorCursor.background\":\"#ffffffc9\",\"editorCursor.foreground\":\"#528bff\",\"editorError.foreground\":\"#c24038\",\"editorGroup.background\":\"#181a1f\",\"editorGroup.border\":\"#181a1f\",\"editorGroupHeader.tabsBackground\":\"#21252b\",\"editorGutter.addedBackground\":\"#109868\",\"editorGutter.deletedBackground\":\"#9A353D\",\"editorGutter.modifiedBackground\":\"#948B60\",\"editorHoverWidget.background\":\"#21252b\",\"editorHoverWidget.border\":\"#181a1f\",\"editorHoverWidget.highlightForeground\":\"#61afef\",\"editorIndentGuide.activeBackground1\":\"#c8c8c859\",\"editorIndentGuide.background1\":\"#3b4048\",\"editorInlayHint.background\":\"#2c313c\",\"editorInlayHint.foreground\":\"#abb2bf\",\"editorLineNumber.activeForeground\":\"#abb2bf\",\"editorLineNumber.foreground\":\"#495162\",\"editorMarkerNavigation.background\":\"#21252b\",\"editorOverviewRuler.addedBackground\":\"#109868\",\"editorOverviewRuler.deletedBackground\":\"#9A353D\",\"editorOverviewRuler.modifiedBackground\":\"#948B60\",\"editorRuler.foreground\":\"#abb2bf26\",\"editorSuggestWidget.background\":\"#21252b\",\"editorSuggestWidget.border\":\"#181a1f\",\"editorSuggestWidget.selectedBackground\":\"#2c313a\",\"editorWarning.foreground\":\"#d19a66\",\"editorWhitespace.foreground\":\"#ffffff1d\",\"editorWidget.background\":\"#21252b\",\"focusBorder\":\"#3e4452\",\"gitDecoration.ignoredResourceForeground\":\"#636b78\",\"input.background\":\"#1d1f23\",\"input.foreground\":\"#abb2bf\",\"list.activeSelectionBackground\":\"#2c313a\",\"list.activeSelectionForeground\":\"#d7dae0\",\"list.focusBackground\":\"#323842\",\"list.focusForeground\":\"#f0f0f0\",\"list.highlightForeground\":\"#ecebeb\",\"list.hoverBackground\":\"#2c313a\",\"list.hoverForeground\":\"#abb2bf\",\"list.inactiveSelectionBackground\":\"#323842\",\"list.inactiveSelectionForeground\":\"#d7dae0\",\"list.warningForeground\":\"#d19a66\",\"menu.foreground\":\"#abb2bf\",\"menu.separatorBackground\":\"#343a45\",\"minimapGutter.addedBackground\":\"#109868\",\"minimapGutter.deletedBackground\":\"#9A353D\",\"minimapGutter.modifiedBackground\":\"#948B60\",\"panel.border\":\"#3e4452\",\"panelSectionHeader.background\":\"#21252b\",\"peekViewEditor.background\":\"#1b1d23\",\"peekViewEditor.matchHighlightBackground\":\"#29244b\",\"peekViewResult.background\":\"#22262b\",\"scrollbar.shadow\":\"#23252c\",\"scrollbarSlider.activeBackground\":\"#747d9180\",\"scrollbarSlider.background\":\"#4e566660\",\"scrollbarSlider.hoverBackground\":\"#5a637580\",\"settings.focusedRowBackground\":\"#282c34\",\"settings.headerForeground\":\"#fff\",\"sideBar.background\":\"#21252b\",\"sideBar.foreground\":\"#abb2bf\",\"sideBarSectionHeader.background\":\"#282c34\",\"sideBarSectionHeader.foreground\":\"#abb2bf\",\"statusBar.background\":\"#21252b\",\"statusBar.debuggingBackground\":\"#cc6633\",\"statusBar.debuggingBorder\":\"#ff000000\",\"statusBar.debuggingForeground\":\"#ffffff\",\"statusBar.foreground\":\"#9da5b4\",\"statusBar.noFolderBackground\":\"#21252b\",\"statusBarItem.remoteBackground\":\"#4d78cc\",\"statusBarItem.remoteForeground\":\"#f8fafd\",\"tab.activeBackground\":\"#282c34\",\"tab.activeBorder\":\"#b4b4b4\",\"tab.activeForeground\":\"#dcdcdc\",\"tab.border\":\"#181a1f\",\"tab.hoverBackground\":\"#323842\",\"tab.inactiveBackground\":\"#21252b\",\"tab.unfocusedHoverBackground\":\"#323842\",\"terminal.ansiBlack\":\"#3f4451\",\"terminal.ansiBlue\":\"#4aa5f0\",\"terminal.ansiBrightBlack\":\"#4f5666\",\"terminal.ansiBrightBlue\":\"#4dc4ff\",\"terminal.ansiBrightCyan\":\"#4cd1e0\",\"terminal.ansiBrightGreen\":\"#a5e075\",\"terminal.ansiBrightMagenta\":\"#de73ff\",\"terminal.ansiBrightRed\":\"#ff616e\",\"terminal.ansiBrightWhite\":\"#e6e6e6\",\"terminal.ansiBrightYellow\":\"#f0a45d\",\"terminal.ansiCyan\":\"#42b3c2\",\"terminal.ansiGreen\":\"#8cc265\",\"terminal.ansiMagenta\":\"#c162de\",\"terminal.ansiRed\":\"#e05561\",\"terminal.ansiWhite\":\"#d7dae0\",\"terminal.ansiYellow\":\"#d18f52\",\"terminal.background\":\"#282c34\",\"terminal.border\":\"#3e4452\",\"terminal.foreground\":\"#abb2bf\",\"terminal.selectionBackground\":\"#abb2bf30\",\"textBlockQuote.background\":\"#2e3440\",\"textBlockQuote.border\":\"#4b5362\",\"textLink.foreground\":\"#61afef\",\"textPreformat.foreground\":\"#d19a66\",\"titleBar.activeBackground\":\"#282c34\",\"titleBar.activeForeground\":\"#9da5b4\",\"titleBar.inactiveBackground\":\"#282c34\",\"titleBar.inactiveForeground\":\"#6b717d\",\"tree.indentGuidesStroke\":\"#ffffff1d\",\"walkThrough.embeddedEditorBackground\":\"#2e3440\",\"welcomePage.buttonHoverBackground\":\"#404754\"},\"displayName\":\"One Dark Pro\",\"name\":\"one-dark-pro\",\"semanticHighlighting\":true,\"semanticTokenColors\":{\"annotation:dart\":{\"foreground\":\"#d19a66\"},\"enumMember\":{\"foreground\":\"#56b6c2\"},\"macro\":{\"foreground\":\"#d19a66\"},\"memberOperatorOverload\":{\"foreground\":\"#c678dd\"},\"parameter.label:dart\":{\"foreground\":\"#abb2bf\"},\"property:dart\":{\"foreground\":\"#d19a66\"},\"tomlArrayKey\":{\"foreground\":\"#e5c07b\"},\"variable.constant\":{\"foreground\":\"#d19a66\"},\"variable.defaultLibrary\":{\"foreground\":\"#e5c07b\"},\"variable:dart\":{\"foreground\":\"#d19a66\"}},\"tokenColors\":[{\"scope\":\"meta.embedded\",\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":\"punctuation.definition.delayed.unison,punctuation.definition.list.begin.unison,punctuation.definition.list.end.unison,punctuation.definition.ability.begin.unison,punctuation.definition.ability.end.unison,punctuation.operator.assignment.as.unison,punctuation.separator.pipe.unison,punctuation.separator.delimiter.unison,punctuation.definition.hash.unison\",\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"variable.other.generic-type.haskell\",\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":\"storage.type.haskell\",\"settings\":{\"foreground\":\"#d19a66\"}},{\"scope\":\"support.variable.magic.python\",\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"punctuation.separator.period.python,punctuation.separator.element.python,punctuation.parenthesis.begin.python,punctuation.parenthesis.end.python\",\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":\"variable.parameter.function.language.special.self.python\",\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":\"variable.parameter.function.language.special.cls.python\",\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":\"storage.modifier.lifetime.rust\",\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":\"support.function.std.rust\",\"settings\":{\"foreground\":\"#61afef\"}},{\"scope\":\"entity.name.lifetime.rust\",\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":\"variable.language.rust\",\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"support.constant.edge\",\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":\"constant.other.character-class.regexp\",\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":[\"keyword.operator.word\"],\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":\"keyword.operator.quantifier.regexp\",\"settings\":{\"foreground\":\"#d19a66\"}},{\"scope\":\"variable.parameter.function\",\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":\"comment markup.link\",\"settings\":{\"foreground\":\"#5c6370\"}},{\"scope\":\"markup.changed.diff\",\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":\"meta.diff.header.from-file,meta.diff.header.to-file,punctuation.definition.from-file.diff,punctuation.definition.to-file.diff\",\"settings\":{\"foreground\":\"#61afef\"}},{\"scope\":\"markup.inserted.diff\",\"settings\":{\"foreground\":\"#98c379\"}},{\"scope\":\"markup.deleted.diff\",\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"meta.function.c,meta.function.cpp\",\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"punctuation.section.block.begin.bracket.curly.cpp,punctuation.section.block.end.bracket.curly.cpp,punctuation.terminator.statement.c,punctuation.section.block.begin.bracket.curly.c,punctuation.section.block.end.bracket.curly.c,punctuation.section.parens.begin.bracket.round.c,punctuation.section.parens.end.bracket.round.c,punctuation.section.parameters.begin.bracket.round.c,punctuation.section.parameters.end.bracket.round.c\",\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":\"punctuation.separator.key-value\",\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":\"keyword.operator.expression.import\",\"settings\":{\"foreground\":\"#61afef\"}},{\"scope\":\"support.constant.math\",\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":\"support.constant.property.math\",\"settings\":{\"foreground\":\"#d19a66\"}},{\"scope\":\"variable.other.constant\",\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":[\"storage.type.annotation.java\",\"storage.type.object.array.java\"],\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":\"source.java\",\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"punctuation.section.block.begin.java,punctuation.section.block.end.java,punctuation.definition.method-parameters.begin.java,punctuation.definition.method-parameters.end.java,meta.method.identifier.java,punctuation.section.method.begin.java,punctuation.section.method.end.java,punctuation.terminator.java,punctuation.section.class.begin.java,punctuation.section.class.end.java,punctuation.section.inner-class.begin.java,punctuation.section.inner-class.end.java,meta.method-call.java,punctuation.section.class.begin.bracket.curly.java,punctuation.section.class.end.bracket.curly.java,punctuation.section.method.begin.bracket.curly.java,punctuation.section.method.end.bracket.curly.java,punctuation.separator.period.java,punctuation.bracket.angle.java,punctuation.definition.annotation.java,meta.method.body.java\",\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":\"meta.method.java\",\"settings\":{\"foreground\":\"#61afef\"}},{\"scope\":\"storage.modifier.import.java,storage.type.java,storage.type.generic.java\",\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":\"keyword.operator.instanceof.java\",\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":\"meta.definition.variable.name.java\",\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"keyword.operator.logical\",\"settings\":{\"foreground\":\"#56b6c2\"}},{\"scope\":\"keyword.operator.bitwise\",\"settings\":{\"foreground\":\"#56b6c2\"}},{\"scope\":\"keyword.operator.channel\",\"settings\":{\"foreground\":\"#56b6c2\"}},{\"scope\":\"support.constant.property-value.scss,support.constant.property-value.css\",\"settings\":{\"foreground\":\"#d19a66\"}},{\"scope\":\"keyword.operator.css,keyword.operator.scss,keyword.operator.less\",\"settings\":{\"foreground\":\"#56b6c2\"}},{\"scope\":\"support.constant.color.w3c-standard-color-name.css,support.constant.color.w3c-standard-color-name.scss\",\"settings\":{\"foreground\":\"#d19a66\"}},{\"scope\":\"punctuation.separator.list.comma.css\",\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":\"support.constant.color.w3c-standard-color-name.css\",\"settings\":{\"foreground\":\"#d19a66\"}},{\"scope\":\"support.type.vendored.property-name.css\",\"settings\":{\"foreground\":\"#56b6c2\"}},{\"scope\":\"support.module.node,support.type.object.module,support.module.node\",\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":\"entity.name.type.module\",\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":\"variable.other.readwrite,meta.object-literal.key,support.variable.property,support.variable.object.process,support.variable.object.node\",\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"support.constant.json\",\"settings\":{\"foreground\":\"#d19a66\"}},{\"scope\":[\"keyword.operator.expression.instanceof\",\"keyword.operator.new\",\"keyword.operator.ternary\",\"keyword.operator.optional\",\"keyword.operator.expression.keyof\"],\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":\"support.type.object.console\",\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"support.variable.property.process\",\"settings\":{\"foreground\":\"#d19a66\"}},{\"scope\":\"entity.name.function,support.function.console\",\"settings\":{\"foreground\":\"#61afef\"}},{\"scope\":\"keyword.operator.misc.rust\",\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":\"keyword.operator.sigil.rust\",\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":\"keyword.operator.delete\",\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":\"support.type.object.dom\",\"settings\":{\"foreground\":\"#56b6c2\"}},{\"scope\":\"support.variable.dom,support.variable.property.dom\",\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"keyword.operator.arithmetic,keyword.operator.comparison,keyword.operator.decrement,keyword.operator.increment,keyword.operator.relational\",\"settings\":{\"foreground\":\"#56b6c2\"}},{\"scope\":\"keyword.operator.assignment.c,keyword.operator.comparison.c,keyword.operator.c,keyword.operator.increment.c,keyword.operator.decrement.c,keyword.operator.bitwise.shift.c,keyword.operator.assignment.cpp,keyword.operator.comparison.cpp,keyword.operator.cpp,keyword.operator.increment.cpp,keyword.operator.decrement.cpp,keyword.operator.bitwise.shift.cpp\",\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":\"punctuation.separator.delimiter\",\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":\"punctuation.separator.c,punctuation.separator.cpp\",\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":\"support.type.posix-reserved.c,support.type.posix-reserved.cpp\",\"settings\":{\"foreground\":\"#56b6c2\"}},{\"scope\":\"keyword.operator.sizeof.c,keyword.operator.sizeof.cpp\",\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":\"variable.parameter.function.language.python\",\"settings\":{\"foreground\":\"#d19a66\"}},{\"scope\":\"support.type.python\",\"settings\":{\"foreground\":\"#56b6c2\"}},{\"scope\":\"keyword.operator.logical.python\",\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":\"variable.parameter.function.python\",\"settings\":{\"foreground\":\"#d19a66\"}},{\"scope\":\"punctuation.definition.arguments.begin.python,punctuation.definition.arguments.end.python,punctuation.separator.arguments.python,punctuation.definition.list.begin.python,punctuation.definition.list.end.python\",\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":\"meta.function-call.generic.python\",\"settings\":{\"foreground\":\"#61afef\"}},{\"scope\":\"constant.character.format.placeholder.other.python\",\"settings\":{\"foreground\":\"#d19a66\"}},{\"scope\":\"keyword.operator\",\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":\"keyword.operator.assignment.compound\",\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":\"keyword.operator.assignment.compound.js,keyword.operator.assignment.compound.ts\",\"settings\":{\"foreground\":\"#56b6c2\"}},{\"scope\":\"keyword\",\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":\"entity.name.namespace\",\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":\"variable\",\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"variable.c\",\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":\"variable.language\",\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":\"token.variable.parameter.java\",\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":\"import.storage.java\",\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":\"token.package.keyword\",\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":\"token.package\",\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":[\"entity.name.function\",\"meta.require\",\"support.function.any-method\",\"variable.function\"],\"settings\":{\"foreground\":\"#61afef\"}},{\"scope\":\"entity.name.type.namespace\",\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":\"support.class, entity.name.type.class\",\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":\"entity.name.class.identifier.namespace.type\",\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":[\"entity.name.class\",\"variable.other.class.js\",\"variable.other.class.ts\"],\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":\"variable.other.class.php\",\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"entity.name.type\",\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":\"keyword.control\",\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":\"control.elements, keyword.operator.less\",\"settings\":{\"foreground\":\"#d19a66\"}},{\"scope\":\"keyword.other.special-method\",\"settings\":{\"foreground\":\"#61afef\"}},{\"scope\":\"storage\",\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":\"token.storage\",\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":\"keyword.operator.expression.delete,keyword.operator.expression.in,keyword.operator.expression.of,keyword.operator.expression.instanceof,keyword.operator.new,keyword.operator.expression.typeof,keyword.operator.expression.void\",\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":\"token.storage.type.java\",\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":\"support.function\",\"settings\":{\"foreground\":\"#56b6c2\"}},{\"scope\":\"support.type.property-name\",\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":\"support.type.property-name.toml, support.type.property-name.table.toml, support.type.property-name.array.toml\",\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"support.constant.property-value\",\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":\"support.constant.font-name\",\"settings\":{\"foreground\":\"#d19a66\"}},{\"scope\":\"meta.tag\",\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":\"string\",\"settings\":{\"foreground\":\"#98c379\"}},{\"scope\":\"constant.other.symbol\",\"settings\":{\"foreground\":\"#56b6c2\"}},{\"scope\":\"constant.numeric\",\"settings\":{\"foreground\":\"#d19a66\"}},{\"scope\":\"constant\",\"settings\":{\"foreground\":\"#d19a66\"}},{\"scope\":\"punctuation.definition.constant\",\"settings\":{\"foreground\":\"#d19a66\"}},{\"scope\":\"entity.name.tag\",\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"entity.other.attribute-name\",\"settings\":{\"foreground\":\"#d19a66\"}},{\"scope\":\"entity.other.attribute-name.id\",\"settings\":{\"foreground\":\"#61afef\"}},{\"scope\":\"entity.other.attribute-name.class.css\",\"settings\":{\"foreground\":\"#d19a66\"}},{\"scope\":\"meta.selector\",\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":\"markup.heading\",\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"markup.heading punctuation.definition.heading, entity.name.section\",\"settings\":{\"foreground\":\"#61afef\"}},{\"scope\":\"keyword.other.unit\",\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"markup.bold,todo.bold\",\"settings\":{\"foreground\":\"#d19a66\"}},{\"scope\":\"punctuation.definition.bold\",\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":\"markup.italic, punctuation.definition.italic,todo.emphasis\",\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":\"emphasis md\",\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":\"entity.name.section.markdown\",\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"punctuation.definition.heading.markdown\",\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"punctuation.definition.list.begin.markdown\",\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":\"markup.heading.setext\",\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":\"punctuation.definition.bold.markdown\",\"settings\":{\"foreground\":\"#d19a66\"}},{\"scope\":\"markup.inline.raw.markdown\",\"settings\":{\"foreground\":\"#98c379\"}},{\"scope\":\"markup.inline.raw.string.markdown\",\"settings\":{\"foreground\":\"#98c379\"}},{\"scope\":\"punctuation.definition.raw.markdown\",\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":\"punctuation.definition.list.markdown\",\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":[\"punctuation.definition.string.begin.markdown\",\"punctuation.definition.string.end.markdown\",\"punctuation.definition.metadata.markdown\"],\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":[\"beginning.punctuation.definition.list.markdown\"],\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"punctuation.definition.metadata.markdown\",\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"markup.underline.link.markdown,markup.underline.link.image.markdown\",\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":\"string.other.link.title.markdown,string.other.link.description.markdown\",\"settings\":{\"foreground\":\"#61afef\"}},{\"scope\":\"markup.raw.monospace.asciidoc\",\"settings\":{\"foreground\":\"#98c379\"}},{\"scope\":\"punctuation.definition.asciidoc\",\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":\"markup.list.asciidoc\",\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":\"markup.link.asciidoc,markup.other.url.asciidoc\",\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":\"string.unquoted.asciidoc,markup.other.url.asciidoc\",\"settings\":{\"foreground\":\"#61afef\"}},{\"scope\":\"string.regexp\",\"settings\":{\"foreground\":\"#56b6c2\"}},{\"scope\":\"punctuation.section.embedded, variable.interpolation\",\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"punctuation.section.embedded.begin,punctuation.section.embedded.end\",\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":\"invalid.illegal\",\"settings\":{\"foreground\":\"#ffffff\"}},{\"scope\":\"invalid.illegal.bad-ampersand.html\",\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":\"invalid.illegal.unrecognized-tag.html\",\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"invalid.broken\",\"settings\":{\"foreground\":\"#ffffff\"}},{\"scope\":\"invalid.deprecated\",\"settings\":{\"foreground\":\"#ffffff\"}},{\"scope\":\"invalid.deprecated.entity.other.attribute-name.html\",\"settings\":{\"foreground\":\"#d19a66\"}},{\"scope\":\"invalid.unimplemented\",\"settings\":{\"foreground\":\"#ffffff\"}},{\"scope\":\"source.json meta.structure.dictionary.json > string.quoted.json\",\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"source.json meta.structure.dictionary.json > string.quoted.json > punctuation.string\",\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"source.json meta.structure.dictionary.json > value.json > string.quoted.json,source.json meta.structure.array.json > value.json > string.quoted.json,source.json meta.structure.dictionary.json > value.json > string.quoted.json > punctuation,source.json meta.structure.array.json > value.json > string.quoted.json > punctuation\",\"settings\":{\"foreground\":\"#98c379\"}},{\"scope\":\"source.json meta.structure.dictionary.json > constant.language.json,source.json meta.structure.array.json > constant.language.json\",\"settings\":{\"foreground\":\"#56b6c2\"}},{\"scope\":\"support.type.property-name.json\",\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"support.type.property-name.json punctuation\",\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"text.html.laravel-blade source.php.embedded.line.html entity.name.tag.laravel-blade\",\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":\"text.html.laravel-blade source.php.embedded.line.html support.constant.laravel-blade\",\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":\"support.other.namespace.use.php,support.other.namespace.use-as.php,entity.other.alias.php,meta.interface.php\",\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":\"keyword.operator.error-control.php\",\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":\"keyword.operator.type.php\",\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":\"punctuation.section.array.begin.php\",\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":\"punctuation.section.array.end.php\",\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":\"invalid.illegal.non-null-typehinted.php\",\"settings\":{\"foreground\":\"#f44747\"}},{\"scope\":\"storage.type.php,meta.other.type.phpdoc.php,keyword.other.type.php,keyword.other.array.phpdoc.php\",\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":\"meta.function-call.php,meta.function-call.object.php,meta.function-call.static.php\",\"settings\":{\"foreground\":\"#61afef\"}},{\"scope\":\"punctuation.definition.parameters.begin.bracket.round.php,punctuation.definition.parameters.end.bracket.round.php,punctuation.separator.delimiter.php,punctuation.section.scope.begin.php,punctuation.section.scope.end.php,punctuation.terminator.expression.php,punctuation.definition.arguments.begin.bracket.round.php,punctuation.definition.arguments.end.bracket.round.php,punctuation.definition.storage-type.begin.bracket.round.php,punctuation.definition.storage-type.end.bracket.round.php,punctuation.definition.array.begin.bracket.round.php,punctuation.definition.array.end.bracket.round.php,punctuation.definition.begin.bracket.round.php,punctuation.definition.end.bracket.round.php,punctuation.definition.begin.bracket.curly.php,punctuation.definition.end.bracket.curly.php,punctuation.definition.section.switch-block.end.bracket.curly.php,punctuation.definition.section.switch-block.start.bracket.curly.php,punctuation.definition.section.switch-block.begin.bracket.curly.php,punctuation.definition.section.switch-block.end.bracket.curly.php\",\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":\"support.constant.core.rust\",\"settings\":{\"foreground\":\"#d19a66\"}},{\"scope\":\"support.constant.ext.php,support.constant.std.php,support.constant.core.php,support.constant.parser-token.php\",\"settings\":{\"foreground\":\"#d19a66\"}},{\"scope\":\"entity.name.goto-label.php,support.other.php\",\"settings\":{\"foreground\":\"#61afef\"}},{\"scope\":\"keyword.operator.logical.php,keyword.operator.bitwise.php,keyword.operator.arithmetic.php\",\"settings\":{\"foreground\":\"#56b6c2\"}},{\"scope\":\"keyword.operator.regexp.php\",\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":\"keyword.operator.comparison.php\",\"settings\":{\"foreground\":\"#56b6c2\"}},{\"scope\":\"keyword.operator.heredoc.php,keyword.operator.nowdoc.php\",\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":\"meta.function.decorator.python\",\"settings\":{\"foreground\":\"#61afef\"}},{\"scope\":\"support.token.decorator.python,meta.function.decorator.identifier.python\",\"settings\":{\"foreground\":\"#56b6c2\"}},{\"scope\":\"function.parameter\",\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":\"function.brace\",\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":\"function.parameter.ruby, function.parameter.cs\",\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":\"constant.language.symbol.ruby\",\"settings\":{\"foreground\":\"#56b6c2\"}},{\"scope\":\"constant.language.symbol.hashkey.ruby\",\"settings\":{\"foreground\":\"#56b6c2\"}},{\"scope\":\"rgb-value\",\"settings\":{\"foreground\":\"#56b6c2\"}},{\"scope\":\"inline-color-decoration rgb-value\",\"settings\":{\"foreground\":\"#d19a66\"}},{\"scope\":\"less rgb-value\",\"settings\":{\"foreground\":\"#d19a66\"}},{\"scope\":\"selector.sass\",\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"support.type.primitive.ts,support.type.builtin.ts,support.type.primitive.tsx,support.type.builtin.tsx\",\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":\"block.scope.end,block.scope.begin\",\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":\"storage.type.cs\",\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":\"entity.name.variable.local.cs\",\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"token.info-token\",\"settings\":{\"foreground\":\"#61afef\"}},{\"scope\":\"token.warn-token\",\"settings\":{\"foreground\":\"#d19a66\"}},{\"scope\":\"token.error-token\",\"settings\":{\"foreground\":\"#f44747\"}},{\"scope\":\"token.debug-token\",\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":[\"punctuation.definition.template-expression.begin\",\"punctuation.definition.template-expression.end\",\"punctuation.section.embedded\"],\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":[\"meta.template.expression\"],\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":[\"keyword.operator.module\"],\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":[\"support.type.type.flowtype\"],\"settings\":{\"foreground\":\"#61afef\"}},{\"scope\":[\"support.type.primitive\"],\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":[\"meta.property.object\"],\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":[\"variable.parameter.function.js\"],\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":[\"keyword.other.template.begin\"],\"settings\":{\"foreground\":\"#98c379\"}},{\"scope\":[\"keyword.other.template.end\"],\"settings\":{\"foreground\":\"#98c379\"}},{\"scope\":[\"keyword.other.substitution.begin\"],\"settings\":{\"foreground\":\"#98c379\"}},{\"scope\":[\"keyword.other.substitution.end\"],\"settings\":{\"foreground\":\"#98c379\"}},{\"scope\":[\"keyword.operator.assignment\"],\"settings\":{\"foreground\":\"#56b6c2\"}},{\"scope\":[\"keyword.operator.assignment.go\"],\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":[\"keyword.operator.arithmetic.go\",\"keyword.operator.address.go\"],\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":[\"keyword.operator.arithmetic.c\",\"keyword.operator.arithmetic.cpp\"],\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":[\"entity.name.package.go\"],\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":[\"support.type.prelude.elm\"],\"settings\":{\"foreground\":\"#56b6c2\"}},{\"scope\":[\"support.constant.elm\"],\"settings\":{\"foreground\":\"#d19a66\"}},{\"scope\":[\"punctuation.quasi.element\"],\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":[\"constant.character.entity\"],\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":[\"entity.other.attribute-name.pseudo-element\",\"entity.other.attribute-name.pseudo-class\"],\"settings\":{\"foreground\":\"#56b6c2\"}},{\"scope\":[\"entity.global.clojure\"],\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":[\"meta.symbol.clojure\"],\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":[\"constant.keyword.clojure\"],\"settings\":{\"foreground\":\"#56b6c2\"}},{\"scope\":[\"meta.arguments.coffee\",\"variable.parameter.function.coffee\"],\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":[\"source.ini\"],\"settings\":{\"foreground\":\"#98c379\"}},{\"scope\":[\"meta.scope.prerequisites.makefile\"],\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":[\"source.makefile\"],\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":[\"storage.modifier.import.groovy\"],\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":[\"meta.method.groovy\"],\"settings\":{\"foreground\":\"#61afef\"}},{\"scope\":[\"meta.definition.variable.name.groovy\"],\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":[\"meta.definition.class.inherited.classes.groovy\"],\"settings\":{\"foreground\":\"#98c379\"}},{\"scope\":[\"support.variable.semantic.hlsl\"],\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":[\"support.type.texture.hlsl\",\"support.type.sampler.hlsl\",\"support.type.object.hlsl\",\"support.type.object.rw.hlsl\",\"support.type.fx.hlsl\",\"support.type.object.hlsl\"],\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":[\"text.variable\",\"text.bracketed\"],\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":[\"support.type.swift\",\"support.type.vb.asp\"],\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":[\"entity.name.function.xi\"],\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":[\"entity.name.class.xi\"],\"settings\":{\"foreground\":\"#56b6c2\"}},{\"scope\":[\"constant.character.character-class.regexp.xi\"],\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":[\"constant.regexp.xi\"],\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":[\"keyword.control.xi\"],\"settings\":{\"foreground\":\"#56b6c2\"}},{\"scope\":[\"invalid.xi\"],\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":[\"beginning.punctuation.definition.quote.markdown.xi\"],\"settings\":{\"foreground\":\"#98c379\"}},{\"scope\":[\"beginning.punctuation.definition.list.markdown.xi\"],\"settings\":{\"foreground\":\"#7f848e\"}},{\"scope\":[\"constant.character.xi\"],\"settings\":{\"foreground\":\"#61afef\"}},{\"scope\":[\"accent.xi\"],\"settings\":{\"foreground\":\"#61afef\"}},{\"scope\":[\"wikiword.xi\"],\"settings\":{\"foreground\":\"#d19a66\"}},{\"scope\":[\"constant.other.color.rgb-value.xi\"],\"settings\":{\"foreground\":\"#ffffff\"}},{\"scope\":[\"punctuation.definition.tag.xi\"],\"settings\":{\"foreground\":\"#5c6370\"}},{\"scope\":[\"entity.name.label.cs\",\"entity.name.scope-resolution.function.call\",\"entity.name.scope-resolution.function.definition\"],\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":[\"entity.name.label.cs\",\"markup.heading.setext.1.markdown\",\"markup.heading.setext.2.markdown\"],\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":[\" meta.brace.square\"],\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":\"comment, punctuation.definition.comment\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#7f848e\"}},{\"scope\":\"markup.quote.markdown\",\"settings\":{\"foreground\":\"#5c6370\"}},{\"scope\":\"punctuation.definition.block.sequence.item.yaml\",\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":[\"constant.language.symbol.elixir\",\"constant.language.symbol.double-quoted.elixir\"],\"settings\":{\"foreground\":\"#56b6c2\"}},{\"scope\":[\"entity.name.variable.parameter.cs\"],\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":[\"entity.name.variable.field.cs\"],\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"markup.deleted\",\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"markup.inserted\",\"settings\":{\"foreground\":\"#98c379\"}},{\"scope\":\"markup.underline\",\"settings\":{\"fontStyle\":\"underline\"}},{\"scope\":[\"punctuation.section.embedded.begin.php\",\"punctuation.section.embedded.end.php\"],\"settings\":{\"foreground\":\"#BE5046\"}},{\"scope\":[\"support.other.namespace.php\"],\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":[\"variable.parameter.function.latex\"],\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":[\"variable.other.object\"],\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":[\"variable.other.constant.property\"],\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":[\"entity.other.inherited-class\"],\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":\"variable.other.readwrite.c\",\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"entity.name.variable.parameter.php,punctuation.separator.colon.php,constant.other.php\",\"settings\":{\"foreground\":\"#abb2bf\"}},{\"scope\":[\"constant.numeric.decimal.asm.x86_64\"],\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":[\"support.other.parenthesis.regexp\"],\"settings\":{\"foreground\":\"#d19a66\"}},{\"scope\":[\"constant.character.escape\"],\"settings\":{\"foreground\":\"#56b6c2\"}},{\"scope\":[\"string.regexp\"],\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":[\"log.info\"],\"settings\":{\"foreground\":\"#98c379\"}},{\"scope\":[\"log.warning\"],\"settings\":{\"foreground\":\"#e5c07b\"}},{\"scope\":[\"log.error\"],\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":\"keyword.operator.expression.is\",\"settings\":{\"foreground\":\"#c678dd\"}},{\"scope\":\"entity.name.label\",\"settings\":{\"foreground\":\"#e06c75\"}},{\"scope\":[\"support.class.math.block.environment.latex\",\"constant.other.general.math.tex\"],\"settings\":{\"foreground\":\"#61afef\"}},{\"scope\":[\"constant.character.math.tex\"],\"settings\":{\"foreground\":\"#98c379\"}},{\"scope\":\"entity.other.attribute-name.js,entity.other.attribute-name.ts,entity.other.attribute-name.jsx,entity.other.attribute-name.tsx,variable.parameter,variable.language.super\",\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":\"comment.line.double-slash,comment.block.documentation\",\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":\"markup.italic.markdown\",\"settings\":{\"fontStyle\":\"italic\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/HNqc6WRo.js",
    "content": "import e from\"./BMYPR7BL.js\";import n from\"./cPjAOO0u.js\";import t from\"./COK4E0Yg.js\";import a from\"./ySlJ1b_l.js\";import r from\"./BQoSv7ci.js\";import i from\"./BPhBrDlE.js\";import\"./xI-RfyKK.js\";const p=Object.freeze(JSON.parse(`{\"displayName\":\"PHP\",\"name\":\"php\",\"patterns\":[{\"include\":\"#attribute\"},{\"include\":\"#comments\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.namespace.php\"},\"2\":{\"name\":\"entity.name.type.namespace.php\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\",\"name\":\"punctuation.separator.inheritance.php\"}]}},\"match\":\"(?i)(?:^|(?<=<\\\\\\\\?php))\\\\\\\\s*(namespace)\\\\\\\\s+([a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+)(?=\\\\\\\\s*;)\",\"name\":\"meta.namespace.php\"},{\"begin\":\"(?i)(?:^|(?<=<\\\\\\\\?php))\\\\\\\\s*(namespace)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.namespace.php\"}},\"end\":\"(?<=})|(?=\\\\\\\\?>)\",\"name\":\"meta.namespace.php\",\"patterns\":[{\"include\":\"#comments\"},{\"captures\":{\"0\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\",\"name\":\"punctuation.separator.inheritance.php\"}]}},\"match\":\"(?i)[a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+\",\"name\":\"entity.name.type.namespace.php\"},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.namespace.begin.bracket.curly.php\"}},\"end\":\"}|(?=\\\\\\\\?>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.namespace.end.bracket.curly.php\"}},\"patterns\":[{\"include\":\"$self\"}]},{\"match\":\"[^\\\\\\\\s]+\",\"name\":\"invalid.illegal.identifier.php\"}]},{\"match\":\"\\\\\\\\s+(?=use\\\\\\\\b)\"},{\"begin\":\"(?i)\\\\\\\\buse\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.use.php\"}},\"end\":\"(?<=})|(?=;)|(?=\\\\\\\\?>)\",\"name\":\"meta.use.php\",\"patterns\":[{\"match\":\"\\\\\\\\b(const|function)\\\\\\\\b\",\"name\":\"storage.type.\\${1:/downcase}.php\"},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.use.begin.bracket.curly.php\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.use.end.bracket.curly.php\"}},\"patterns\":[{\"include\":\"#scope-resolution\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.use-as.php\"},\"2\":{\"name\":\"storage.modifier.php\"},\"3\":{\"name\":\"entity.other.alias.php\"}},\"match\":\"(?xi)\\\\n\\\\\\\\b(as)\\\\n\\\\\\\\s+(final|abstract|public|private|protected|static)\\\\n\\\\\\\\s+([a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.use-as.php\"},\"2\":{\"patterns\":[{\"match\":\"^(?:final|abstract|public|private|protected|static)$\",\"name\":\"storage.modifier.php\"},{\"match\":\".+\",\"name\":\"entity.other.alias.php\"}]}},\"match\":\"(?xi)\\\\n\\\\\\\\b(as)\\\\n\\\\\\\\s+([a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.use-insteadof.php\"},\"2\":{\"name\":\"support.class.php\"}},\"match\":\"(?i)\\\\\\\\b(insteadof)\\\\\\\\s+([a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)\"},{\"match\":\";\",\"name\":\"punctuation.terminator.expression.php\"},{\"include\":\"#use-inner\"}]},{\"include\":\"#use-inner\"}]},{\"begin\":\"(?ix)\\\\n\\\\\\\\b(trait)\\\\\\\\s+([a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.trait.php\"},\"2\":{\"name\":\"entity.name.type.trait.php\"}},\"end\":\"}|(?=\\\\\\\\?>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.trait.end.bracket.curly.php\"}},\"name\":\"meta.trait.php\",\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.trait.begin.bracket.curly.php\"}},\"contentName\":\"meta.trait.body.php\",\"end\":\"(?=}|\\\\\\\\?>)\",\"patterns\":[{\"include\":\"$self\"}]}]},{\"begin\":\"(?ix)\\\\n\\\\\\\\b(interface)\\\\\\\\s+([a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.interface.php\"},\"2\":{\"name\":\"entity.name.type.interface.php\"}},\"end\":\"}|(?=\\\\\\\\?>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.interface.end.bracket.curly.php\"}},\"name\":\"meta.interface.php\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#interface-extends\"},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.interface.begin.bracket.curly.php\"}},\"contentName\":\"meta.interface.body.php\",\"end\":\"(?=}|\\\\\\\\?>)\",\"patterns\":[{\"include\":\"#class-constant\"},{\"include\":\"$self\"}]}]},{\"begin\":\"(?ix)\\\\n\\\\\\\\b(enum)\\\\\\\\s+([a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)\\\\n(?: \\\\\\\\s* (:) \\\\\\\\s* (int | string) \\\\\\\\b )?\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.enum.php\"},\"2\":{\"name\":\"entity.name.type.enum.php\"},\"3\":{\"name\":\"keyword.operator.return-value.php\"},\"4\":{\"name\":\"keyword.other.type.php\"}},\"end\":\"}|(?=\\\\\\\\?>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.enum.end.bracket.curly.php\"}},\"name\":\"meta.enum.php\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#class-implements\"},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.enum.begin.bracket.curly.php\"}},\"contentName\":\"meta.enum.body.php\",\"end\":\"(?=}|\\\\\\\\?>)\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.modifier.php\"},\"2\":{\"name\":\"constant.enum.php\"}},\"match\":\"(?i)\\\\\\\\b(case)\\\\\\\\s*([a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)\"},{\"include\":\"#class-constant\"},{\"include\":\"$self\"}]}]},{\"begin\":\"(?ix)\\\\n(?:\\\\n  \\\\\\\\b((?:(?:final|abstract|readonly)\\\\\\\\s+)*)(class)\\\\\\\\s+([a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)\\\\n  |\\\\\\\\b(new)\\\\\\\\b\\\\\\\\s*(\\\\\\\\#\\\\\\\\[.*\\\\\\\\])?\\\\\\\\s*(?:(readonly)\\\\\\\\s+)?\\\\\\\\b(class)\\\\\\\\b # anonymous class\\\\n)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"match\":\"final|abstract\",\"name\":\"storage.modifier.\\${0:/downcase}.php\"},{\"match\":\"readonly\",\"name\":\"storage.modifier.php\"}]},\"2\":{\"name\":\"storage.type.class.php\"},\"3\":{\"name\":\"entity.name.type.class.php\"},\"4\":{\"name\":\"keyword.other.new.php\"},\"5\":{\"patterns\":[{\"include\":\"#attribute\"}]},\"6\":{\"name\":\"storage.modifier.php\"},\"7\":{\"name\":\"storage.type.class.php\"}},\"end\":\"}|(?=\\\\\\\\?>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.class.end.bracket.curly.php\"}},\"name\":\"meta.class.php\",\"patterns\":[{\"begin\":\"(?<=class)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.bracket.round.php\"}},\"end\":\"\\\\\\\\)|(?=\\\\\\\\?>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.bracket.round.php\"}},\"name\":\"meta.function-call.php\",\"patterns\":[{\"include\":\"#named-arguments\"},{\"include\":\"$self\"}]},{\"include\":\"#comments\"},{\"include\":\"#class-extends\"},{\"include\":\"#class-implements\"},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.class.begin.bracket.curly.php\"}},\"contentName\":\"meta.class.body.php\",\"end\":\"(?=}|\\\\\\\\?>)\",\"patterns\":[{\"include\":\"#class-constant\"},{\"include\":\"$self\"}]}]},{\"include\":\"#match_statement\"},{\"include\":\"#switch_statement\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.yield-from.php\"}},\"match\":\"\\\\\\\\s*\\\\\\\\b(yield\\\\\\\\s+from)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.\\${1:/downcase}.php\"}},\"match\":\"\\\\\\\\b(break|case|continue|declare|default|die|do|else(if)?|end(declare|for(each)?|if|switch|while)|exit|for(each)?|if|return|switch|use|while|yield)\\\\\\\\b\"},{\"begin\":\"(?i)\\\\\\\\b((?:require|include)(?:_once)?)(\\\\\\\\s+|(?=\\\\\\\\())\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.import.include.php\"}},\"end\":\"(?=\\\\\\\\s|;|$|\\\\\\\\?>)\",\"name\":\"meta.include.php\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\b(catch)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.exception.catch.php\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.bracket.round.php\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.bracket.round.php\"}},\"name\":\"meta.catch.php\",\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"match\":\"\\\\\\\\|\",\"name\":\"punctuation.separator.delimiter.php\"},{\"begin\":\"(?i)(?=[\\\\\\\\\\\\\\\\a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}])\",\"end\":\"(?xi)\\\\n( [a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}] [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]* )\\\\n(?![a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"support.class.exception.php\"}},\"patterns\":[{\"include\":\"#namespace\"}]}]},\"2\":{\"name\":\"variable.other.php\"},\"3\":{\"name\":\"punctuation.definition.variable.php\"}},\"match\":\"(?xi)\\\\n([a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+ (?: \\\\\\\\s*\\\\\\\\|\\\\\\\\s* [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+)*) # union or single exception class\\\\n\\\\\\\\s*\\\\n((\\\\\\\\$+)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)?           # Variable\"}]},{\"match\":\"\\\\\\\\b(catch|try|throw|exception|finally)\\\\\\\\b\",\"name\":\"keyword.control.exception.php\"},{\"begin\":\"(?i)\\\\\\\\b(function)\\\\\\\\s*(?=&?\\\\\\\\s*\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.php\"}},\"end\":\"(?=\\\\\\\\s*{)\",\"name\":\"meta.function.closure.php\",\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\"(&)?\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.reference.php\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.bracket.round.php\"}},\"contentName\":\"meta.function.parameters.php\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.bracket.round.php\"}},\"patterns\":[{\"include\":\"#function-parameters\"}]},{\"begin\":\"(?i)(use)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.function.use.php\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.bracket.round.php\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.bracket.round.php\"}},\"name\":\"meta.function.closure.use.php\",\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.php\"},{\"captures\":{\"1\":{\"name\":\"variable.other.php\"},\"2\":{\"name\":\"storage.modifier.reference.php\"},\"3\":{\"name\":\"punctuation.definition.variable.php\"}},\"match\":\"(?i)((?:(&)\\\\\\\\s*)?(\\\\\\\\$+)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)\\\\\\\\s*(?=,|\\\\\\\\))\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.operator.return-value.php\"},\"2\":{\"patterns\":[{\"include\":\"#php-types\"}]}},\"match\":\"(?xi)\\\\n(:)\\\\\\\\s*\\\\n(\\\\n  # nullable type\\\\n  (?:\\\\\\\\?\\\\\\\\s*)? [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+ |\\\\n  # union, intersection or DNF type\\\\n  (?: [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+ | \\\\\\\\(\\\\\\\\s* [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+(?:\\\\\\\\s*&\\\\\\\\s*[a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+)+ \\\\\\\\s*\\\\\\\\) )\\\\n  (?: \\\\\\\\s*[|&]\\\\\\\\s*\\\\n  (?: [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+ | \\\\\\\\(\\\\\\\\s* [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+(?:\\\\\\\\s*&\\\\\\\\s*[a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+)+ \\\\\\\\s*\\\\\\\\) )\\\\n  )+\\\\n)\\\\n(?=\\\\\\\\s*(?:{|/[/*]|\\\\\\\\#|$))\"}]},{\"begin\":\"(?i)\\\\\\\\b(fn)\\\\\\\\s*(?=&?\\\\\\\\s*\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.php\"}},\"end\":\"=>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arrow.php\"}},\"name\":\"meta.function.closure.php\",\"patterns\":[{\"begin\":\"(?:(&)\\\\\\\\s*)?(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.reference.php\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.bracket.round.php\"}},\"contentName\":\"meta.function.parameters.php\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.bracket.round.php\"}},\"patterns\":[{\"include\":\"#function-parameters\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.operator.return-value.php\"},\"2\":{\"patterns\":[{\"include\":\"#php-types\"}]}},\"match\":\"(?xi)\\\\n(:)\\\\\\\\s*\\\\n(\\\\n  # nullable type\\\\n  (?:\\\\\\\\?\\\\\\\\s*)? [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+ |\\\\n  # union, intersection or DNF type\\\\n  (?: [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+ | \\\\\\\\(\\\\\\\\s* [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+(?:\\\\\\\\s*&\\\\\\\\s*[a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+)+ \\\\\\\\s*\\\\\\\\) )\\\\n  (?: \\\\\\\\s*[|&]\\\\\\\\s*\\\\n  (?: [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+ | \\\\\\\\(\\\\\\\\s* [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+(?:\\\\\\\\s*&\\\\\\\\s*[a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+)+ \\\\\\\\s*\\\\\\\\) )\\\\n  )+\\\\n)\\\\n(?=\\\\\\\\s*(?:=>|/[/*]|\\\\\\\\#|$))\"}]},{\"begin\":\"((?:(?:final|abstract|public|private|protected)\\\\\\\\s+)*)(function)\\\\\\\\s+(__construct)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"match\":\"final|abstract|public|private|protected\",\"name\":\"storage.modifier.php\"}]},\"2\":{\"name\":\"storage.type.function.php\"},\"3\":{\"name\":\"support.function.constructor.php\"},\"4\":{\"name\":\"punctuation.definition.parameters.begin.bracket.round.php\"}},\"contentName\":\"meta.function.parameters.php\",\"end\":\"(?xi)\\\\n(\\\\\\\\)) \\\\\\\\s* ( : \\\\\\\\s*\\\\n  (?:\\\\\\\\?\\\\\\\\s*)? (?!\\\\\\\\s) [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\\\\\\\\\s\\\\\\\\|&()]+ (?<!\\\\\\\\s)\\\\n)?\\\\n(?=\\\\\\\\s*(?:{|/[/*]|\\\\\\\\#|$|;))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.bracket.round.php\"},\"2\":{\"name\":\"invalid.illegal.return-type.php\"}},\"name\":\"meta.function.php\",\"patterns\":[{\"include\":\"#comments\"},{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.php\"},{\"begin\":\"(?xi)\\\\n((?:(?:public|private|protected|readonly)(?:\\\\\\\\s+|(?=\\\\\\\\?)))++)\\\\n(?: (\\\\n  # nullable type\\\\n  (?:\\\\\\\\?\\\\\\\\s*)? [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+ |\\\\n  # union, intersection or DNF type\\\\n  (?: [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+ | \\\\\\\\(\\\\\\\\s* [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+(?:\\\\\\\\s*&\\\\\\\\s*[a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+)+ \\\\\\\\s*\\\\\\\\) )\\\\n  (?: \\\\\\\\s*[|&]\\\\\\\\s*\\\\n  (?: [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+ | \\\\\\\\(\\\\\\\\s* [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+(?:\\\\\\\\s*&\\\\\\\\s*[a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+)+ \\\\\\\\s*\\\\\\\\) )\\\\n  )+\\\\n) \\\\\\\\s+ )?\\\\n((?:(&)\\\\\\\\s*)?(\\\\\\\\$)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*) # Variable name with possible reference\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"match\":\"public|private|protected|readonly\",\"name\":\"storage.modifier.php\"}]},\"2\":{\"patterns\":[{\"include\":\"#php-types\"}]},\"3\":{\"name\":\"variable.other.php\"},\"4\":{\"name\":\"storage.modifier.reference.php\"},\"5\":{\"name\":\"punctuation.definition.variable.php\"}},\"end\":\"(?=\\\\\\\\s*(?:,|\\\\\\\\)|/[/*]|\\\\\\\\#))\",\"name\":\"meta.function.parameter.promoted-property.php\",\"patterns\":[{\"begin\":\"=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.assignment.php\"}},\"end\":\"(?=\\\\\\\\s*(?:,|\\\\\\\\)|/[/*]|\\\\\\\\#))\",\"patterns\":[{\"include\":\"#parameter-default-types\"}]}]},{\"include\":\"#function-parameters\"}]},{\"begin\":\"((?:(?:final|abstract|public|private|protected|static)\\\\\\\\s+)*)(function)\\\\\\\\s+(?i:(__(?:call|construct|debugInfo|destruct|get|set|isset|unset|toString|clone|set_state|sleep|wakeup|autoload|invoke|callStatic|serialize|unserialize))|(?:(&)?\\\\\\\\s*([a-zA-Z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)))\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"match\":\"final|abstract|public|private|protected|static\",\"name\":\"storage.modifier.php\"}]},\"2\":{\"name\":\"storage.type.function.php\"},\"3\":{\"name\":\"support.function.magic.php\"},\"4\":{\"name\":\"storage.modifier.reference.php\"},\"5\":{\"name\":\"entity.name.function.php\"},\"6\":{\"name\":\"punctuation.definition.parameters.begin.bracket.round.php\"}},\"contentName\":\"meta.function.parameters.php\",\"end\":\"(?xi)\\\\n(\\\\\\\\)) (?: \\\\\\\\s* (:) \\\\\\\\s* (\\\\n  # nullable type\\\\n  (?:\\\\\\\\?\\\\\\\\s*)? [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+ |\\\\n  # union, intersection or DNF type\\\\n  (?: [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+ | \\\\\\\\(\\\\\\\\s* [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+(?:\\\\\\\\s*&\\\\\\\\s*[a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+)+ \\\\\\\\s*\\\\\\\\) )\\\\n  (?: \\\\\\\\s*[|&]\\\\\\\\s*\\\\n  (?: [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+ | \\\\\\\\(\\\\\\\\s* [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+(?:\\\\\\\\s*&\\\\\\\\s*[a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+)+ \\\\\\\\s*\\\\\\\\) )\\\\n  )+\\\\n) )?\\\\n(?=\\\\\\\\s*(?:{|/[/*]|\\\\\\\\#|$|;))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.bracket.round.php\"},\"2\":{\"name\":\"keyword.operator.return-value.php\"},\"3\":{\"patterns\":[{\"match\":\"\\\\\\\\b(static)\\\\\\\\b\",\"name\":\"storage.type.php\"},{\"match\":\"\\\\\\\\b(never)\\\\\\\\b\",\"name\":\"keyword.other.type.never.php\"},{\"include\":\"#php-types\"}]}},\"name\":\"meta.function.php\",\"patterns\":[{\"include\":\"#function-parameters\"}]},{\"captures\":{\"1\":{\"patterns\":[{\"match\":\"public|private|protected|static|readonly\",\"name\":\"storage.modifier.php\"}]},\"2\":{\"patterns\":[{\"include\":\"#php-types\"}]},\"3\":{\"name\":\"variable.other.php\"},\"4\":{\"name\":\"punctuation.definition.variable.php\"}},\"match\":\"(?xi)\\\\n((?:(?:public|private|protected|static|readonly)(?:\\\\\\\\s+|(?=\\\\\\\\?)))++)                     # At least one modifier\\\\n(\\\\n  # nullable type\\\\n  (?:\\\\\\\\?\\\\\\\\s*)? [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+ |\\\\n  # union, intersection or DNF type\\\\n  (?: [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+ | \\\\\\\\(\\\\\\\\s* [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+(?:\\\\\\\\s*&\\\\\\\\s*[a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+)+ \\\\\\\\s*\\\\\\\\) )\\\\n  (?: \\\\\\\\s*[|&]\\\\\\\\s*\\\\n  (?: [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+ | \\\\\\\\(\\\\\\\\s* [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+(?:\\\\\\\\s*&\\\\\\\\s*[a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+)+ \\\\\\\\s*\\\\\\\\) )\\\\n  )+\\\\n)?\\\\n\\\\\\\\s+ ((\\\\\\\\$)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)          # Variable name\"},{\"include\":\"#invoke-call\"},{\"include\":\"#scope-resolution\"},{\"include\":\"#variables\"},{\"include\":\"#strings\"},{\"captures\":{\"1\":{\"name\":\"support.function.construct.php\"},\"2\":{\"name\":\"punctuation.definition.array.begin.bracket.round.php\"},\"3\":{\"name\":\"punctuation.definition.array.end.bracket.round.php\"}},\"match\":\"(array)(\\\\\\\\()(\\\\\\\\))\",\"name\":\"meta.array.empty.php\"},{\"begin\":\"(array)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.construct.php\"},\"2\":{\"name\":\"punctuation.definition.array.begin.bracket.round.php\"}},\"end\":\"\\\\\\\\)|(?=\\\\\\\\?>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.array.end.bracket.round.php\"}},\"name\":\"meta.array.php\",\"patterns\":[{\"include\":\"$self\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.storage-type.begin.bracket.round.php\"},\"2\":{\"name\":\"storage.type.php\"},\"3\":{\"name\":\"punctuation.definition.storage-type.end.bracket.round.php\"}},\"match\":\"(?i)(\\\\\\\\()\\\\\\\\s*(array|real|double|float|int(?:eger)?|bool(?:ean)?|string|object|binary|unset)\\\\\\\\s*(\\\\\\\\))\"},{\"match\":\"(?i)\\\\\\\\b(array|real|double|float|int(eger)?|bool(ean)?|string|class|var|function|interface|trait|parent|self|object|mixed)\\\\\\\\b\",\"name\":\"storage.type.php\"},{\"match\":\"(?i)\\\\\\\\b(global|abstract|const|final|private|protected|public|static)\\\\\\\\b\",\"name\":\"storage.modifier.php\"},{\"include\":\"#object\"},{\"match\":\";\",\"name\":\"punctuation.terminator.expression.php\"},{\"match\":\":\",\"name\":\"punctuation.terminator.statement.php\"},{\"include\":\"#heredoc\"},{\"include\":\"#numbers\"},{\"match\":\"(?i)\\\\\\\\bclone\\\\\\\\b\",\"name\":\"keyword.other.clone.php\"},{\"match\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"name\":\"keyword.operator.spread.php\"},{\"match\":\"\\\\\\\\.=?\",\"name\":\"keyword.operator.string.php\"},{\"match\":\"=>\",\"name\":\"keyword.operator.key.php\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.assignment.php\"},\"2\":{\"name\":\"storage.modifier.reference.php\"},\"3\":{\"name\":\"storage.modifier.reference.php\"}},\"match\":\"(?i)(\\\\\\\\=)(&)|(&)(?=[$a-z_])\"},{\"match\":\"@\",\"name\":\"keyword.operator.error-control.php\"},{\"match\":\"===|==|!==|!=|<>\",\"name\":\"keyword.operator.comparison.php\"},{\"match\":\"=|\\\\\\\\+=|\\\\\\\\-=|\\\\\\\\*\\\\\\\\*?=|/=|%=|&=|\\\\\\\\|=|\\\\\\\\^=|<<=|>>=|\\\\\\\\?\\\\\\\\?=\",\"name\":\"keyword.operator.assignment.php\"},{\"match\":\"<=>|<=|>=|<|>\",\"name\":\"keyword.operator.comparison.php\"},{\"match\":\"\\\\\\\\-\\\\\\\\-|\\\\\\\\+\\\\\\\\+\",\"name\":\"keyword.operator.increment-decrement.php\"},{\"match\":\"\\\\\\\\-|\\\\\\\\+|\\\\\\\\*\\\\\\\\*?|/|%\",\"name\":\"keyword.operator.arithmetic.php\"},{\"match\":\"(?i)(!|&&|\\\\\\\\|\\\\\\\\|)|\\\\\\\\b(and|or|xor|as)\\\\\\\\b\",\"name\":\"keyword.operator.logical.php\"},{\"include\":\"#function-call\"},{\"match\":\"<<|>>|~|\\\\\\\\^|&|\\\\\\\\|\",\"name\":\"keyword.operator.bitwise.php\"},{\"begin\":\"(?i)\\\\\\\\b(instanceof)\\\\\\\\s+(?=[\\\\\\\\\\\\\\\\$a-z_])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.php\"}},\"end\":\"(?i)(?=[^\\\\\\\\\\\\\\\\$a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}])\",\"patterns\":[{\"include\":\"#class-name\"},{\"include\":\"#variable-name\"}]},{\"include\":\"#instantiation\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.goto.php\"},\"2\":{\"name\":\"support.other.php\"}},\"match\":\"(?i)(goto)\\\\\\\\s+([a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)\"},{\"captures\":{\"1\":{\"name\":\"entity.name.goto-label.php\"}},\"match\":\"(?i)^\\\\\\\\s*([a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*(?<!default))\\\\\\\\s*:(?!:)\"},{\"include\":\"#string-backtick\"},{\"include\":\"#ternary_shorthand\"},{\"include\":\"#null_coalescing\"},{\"include\":\"#ternary_expression\"},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.begin.bracket.curly.php\"}},\"end\":\"}|(?=\\\\\\\\?>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.curly.php\"}},\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.array.begin.php\"}},\"end\":\"\\\\\\\\]|(?=\\\\\\\\?>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.array.end.php\"}},\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.begin.bracket.round.php\"}},\"end\":\"\\\\\\\\)|(?=\\\\\\\\?>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.round.php\"}},\"patterns\":[{\"include\":\"$self\"}]},{\"include\":\"#constants\"},{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.php\"}],\"repository\":{\"attribute\":{\"begin\":\"\\\\\\\\#\\\\\\\\[\",\"end\":\"\\\\\\\\]\",\"name\":\"meta.attribute.php\",\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.php\"},{\"begin\":\"([a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#attribute-name\"}]},\"2\":{\"name\":\"punctuation.definition.arguments.begin.bracket.round.php\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.bracket.round.php\"}},\"patterns\":[{\"include\":\"#named-arguments\"},{\"include\":\"$self\"}]},{\"include\":\"#attribute-name\"}]},\"attribute-name\":{\"patterns\":[{\"begin\":\"(?i)(?=\\\\\\\\\\\\\\\\?[a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*\\\\\\\\\\\\\\\\)\",\"end\":\"(?xi)\\\\n( [a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}] [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]* )?\\\\n(?![a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"support.attribute.php\"}},\"patterns\":[{\"include\":\"#namespace\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.inheritance.php\"}},\"match\":\"(?xi)\\\\n(\\\\\\\\\\\\\\\\)?\\\\\\\\b(Attribute|SensitiveParameter|AllowDynamicProperties|ReturnTypeWillChange)\\\\\\\\b\",\"name\":\"support.attribute.builtin.php\"},{\"begin\":\"(?i)(?=[\\\\\\\\\\\\\\\\a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}])\",\"end\":\"(?xi)\\\\n( [a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}] [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]* )?\\\\n(?![a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"support.attribute.php\"}},\"patterns\":[{\"include\":\"#namespace\"}]}]},\"class-builtin\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.inheritance.php\"}},\"match\":\"(?xi)\\\\n(\\\\\\\\\\\\\\\\)?\\\\\\\\b\\\\n(Attribute|(APC|Append)Iterator|Array(Access|Iterator|Object)\\\\n|Bad(Function|Method)CallException\\\\n|(Caching|CallbackFilter)Iterator|Collator|Collectable|Cond|Countable|CURLFile\\\\n|Date(Interval|Period|Time(Interface|Immutable|Zone)?)?|Directory(Iterator)?|DomainException\\\\n|DOM(Attr|CdataSection|CharacterData|Comment|Document(Fragment)?|Element|EntityReference\\\\n    |Implementation|NamedNodeMap|Node(list)?|ProcessingInstruction|Text|XPath)\\\\n|(Error)?Exception|EmptyIterator\\\\n|finfo\\\\n|Ev(Check|Child|Embed|Fork|Idle|Io|Loop|Periodic|Prepare|Signal|Stat|Timer|Watcher)?\\\\n|Event(Base|Buffer(Event)?|SslContext|Http(Request|Connection)?|Config|DnsBase|Util|Listener)?\\\\n|FANNConnection|(Filter|Filesystem)Iterator\\\\n|Gender\\\\\\\\\\\\\\\\Gender|GlobIterator|Gmagick(Draw|Pixel)?\\\\n|Haru(Annotation|Destination|Doc|Encoder|Font|Image|Outline|Page)\\\\n|Http((Inflate|Deflate)?Stream|Message|Request(Pool)?|Response|QueryString)\\\\n|HRTime\\\\\\\\\\\\\\\\(PerformanceCounter|StopWatch)\\\\n|Intl(Calendar|((CodePoint|RuleBased)?Break|Parts)?Iterator|DateFormatter|TimeZone)\\\\n|Imagick(Draw|Pixel(Iterator)?)?\\\\n|InfiniteIterator|InvalidArgumentException|Iterator(Aggregate|Iterator)?\\\\n|JsonSerializable\\\\n|KTaglib_(MPEG_(File|AudioProperties)|Tag|ID3v2_(Tag|(AttachedPicture)?Frame))\\\\n|Lapack|(Length|Locale|Logic)Exception|LimitIterator|Lua(Closure)?\\\\n|Mongo(BinData|Client|Code|Collection|CommandCursor|Cursor(Exception)?|Date|DB(Ref)?|DeleteBatch\\\\n      |Grid(FS(Cursor|File)?)|Id|InsertBatch|Int(32|64)|Log|Pool|Regex|ResultException|Timestamp\\\\n      |UpdateBatch|Write(Batch|ConcernException))?\\\\n|Memcache(d)?|MessageFormatter|MultipleIterator|Mutex\\\\n|mysqli(_(driver|stmt|warning|result))?\\\\n|MysqlndUh(Connection|PreparedStatement)\\\\n|NoRewindIterator|Normalizer|NumberFormatter\\\\n|OCI-(Collection|Lob)|OuterIterator|(OutOf(Bounds|Range)|Overflow)Exception\\\\n|ParentIterator|PDO(Statement)?|Phar(Data|FileInfo)?|php_user_filter|Pool\\\\n|QuickHash(Int(Set|StringHash)|StringIntHash)\\\\n|Recursive(Array|Caching|Directory|Fallback|Filter|Iterator|Regex|Tree)?Iterator\\\\n|Reflection(Class|Function(Abstract)?|Method|Object|Parameter|Property|(Zend)?Extension)?\\\\n|RangeException|Reflector|RegexIterator|ResourceBundle|RuntimeException|RRD(Creator|Graph|Updater)\\\\n|SAM(Connection|Message)|SCA(_(SoapProxy|LocalProxy))?\\\\n|SDO_(DAS_(ChangeSummary|Data(Factory|Object)|Relational|Setting|XML(_Document)?)\\\\n     |Data(Factory|Object)|Exception|List|Model_(Property|ReflectionDataObject|Type)|Sequence)\\\\n|SeekableIterator|Serializable|SessionHandler(Interface)?|SimpleXML(Iterator|Element)|SNMP\\\\n|Soap(Client|Fault|Header|Param|Server|Var)\\\\n|SphinxClient|Spoofchecker\\\\n|Spl(DoublyLinkedList|Enum|File(Info|Object)|FixedArray|(Max|Min)?Heap|Observer|ObjectStorage\\\\n    |(Priority)?Queue|Stack|Subject|Type|TempFileObject)\\\\n|SQLite(3(Result|Stmt)?|Database|Result|Unbuffered)\\\\n|stdClass|streamWrapper|SVM(Model)?|Swish(Result(s)?|Search)?|Sync(Event|Mutex|ReaderWriter|Semaphore)\\\\n|Thread(ed)?|tidy(Node)?|TokyoTyrant(Table|Iterator|Query)?|Transliterator|Traversable\\\\n|UConverter|(Underflow|UnexpectedValue)Exception\\\\n|V8Js(Exception)?|Varnish(Admin|Log|Stat)\\\\n|Worker|Weak(Map|Ref)\\\\n|XML(Diff\\\\\\\\\\\\\\\\(Base|DOM|File|Memory)|Reader|Writer)|XsltProcessor\\\\n|Yaf_(Route_(Interface|Map|Regex|Rewrite|Simple|Supervar)\\\\n     |Action_Abstract|Application|Config_(Simple|Ini|Abstract)|Controller_Abstract\\\\n     |Dispatcher|Exception|Loader|Plugin_Abstract|Registry|Request_(Abstract|Simple|Http)\\\\n     |Response_Abstract|Router|Session|View_(Simple|Interface))\\\\n|Yar_(Client(_Exception)?|Concurrent_Client|Server(_Exception)?)\\\\n|ZipArchive|ZMQ(Context|Device|Poll|Socket)?)\\\\n\\\\\\\\b\",\"name\":\"support.class.builtin.php\"}]},\"class-constant\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.modifier.php\"},\"2\":{\"name\":\"constant.other.php\"}},\"match\":\"(?i)\\\\\\\\b(const)\\\\\\\\s*([a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)\"}]},\"class-extends\":{\"patterns\":[{\"begin\":\"(?i)(extends)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.extends.php\"}},\"end\":\"(?i)(?=[^A-Za-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\])\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#inheritance-single\"}]}]},\"class-implements\":{\"patterns\":[{\"begin\":\"(?i)(implements)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.implements.php\"}},\"end\":\"(?i)(?={)\",\"patterns\":[{\"include\":\"#comments\"},{\"match\":\",\",\"name\":\"punctuation.separator.classes.php\"},{\"include\":\"#inheritance-single\"}]}]},\"class-name\":{\"patterns\":[{\"begin\":\"(?i)(?=\\\\\\\\\\\\\\\\?[a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*\\\\\\\\\\\\\\\\)\",\"end\":\"(?xi)\\\\n( [a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}] [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]* )?\\\\n(?![a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"support.class.php\"}},\"patterns\":[{\"include\":\"#namespace\"}]},{\"include\":\"#class-builtin\"},{\"begin\":\"(?i)(?=[\\\\\\\\\\\\\\\\a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}])\",\"end\":\"(?xi)\\\\n( [a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}] [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]* )?\\\\n(?![a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"support.class.php\"}},\"patterns\":[{\"include\":\"#namespace\"}]}]},\"comments\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\\\\\\\\*(?=\\\\\\\\s)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.php\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.php\"}},\"name\":\"comment.block.documentation.phpdoc.php\",\"patterns\":[{\"include\":\"#php_doc\"}]},{\"begin\":\"/\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.php\"}},\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.php\"},{\"begin\":\"(^\\\\\\\\s+)?(?=//)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.php\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.php\"}},\"end\":\"\\\\\\\\n|(?=\\\\\\\\?>)\",\"name\":\"comment.line.double-slash.php\"}]},{\"begin\":\"(^\\\\\\\\s+)?(?=#)(?!#\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.php\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.php\"}},\"end\":\"\\\\\\\\n|(?=\\\\\\\\?>)\",\"name\":\"comment.line.number-sign.php\"}]}]},\"constants\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(TRUE|FALSE|NULL|__(FILE|DIR|FUNCTION|CLASS|METHOD|LINE|NAMESPACE)__|ON|OFF|YES|NO|NL|BR|TAB)\\\\\\\\b\",\"name\":\"constant.language.php\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.inheritance.php\"}},\"match\":\"(\\\\\\\\\\\\\\\\)?\\\\\\\\b(DEFAULT_INCLUDE_PATH|EAR_(INSTALL|EXTENSION)_DIR|E_(ALL|COMPILE_(ERROR|WARNING)|CORE_(ERROR|WARNING)|DEPRECATED|ERROR|NOTICE|PARSE|RECOVERABLE_ERROR|STRICT|USER_(DEPRECATED|ERROR|NOTICE|WARNING)|WARNING)|PHP_(ROUND_HALF_(DOWN|EVEN|ODD|UP)|(MAJOR|MINOR|RELEASE)_VERSION|MAXPATHLEN|BINDIR|SHLIB_SUFFIX|SYSCONFDIR|SAPI|CONFIG_FILE_(PATH|SCAN_DIR)|INT_(MAX|SIZE)|ZTS|OS|OUTPUT_HANDLER_(START|CONT|END)|DEBUG|DATADIR|URL_(SCHEME|HOST|USER|PORT|PASS|PATH|QUERY|FRAGMENT)|PREFIX|EXTRA_VERSION|EXTENSION_DIR|EOL|VERSION(_ID)?|WINDOWS_(NT_(SERVER|DOMAIN_CONTROLLER|WORKSTATION)|VERSION_(MAJOR|MINOR)|BUILD|SUITEMASK|SP_(MAJOR|MINOR)|PRODUCTTYPE|PLATFORM)|LIBDIR|LOCALSTATEDIR)|STD(ERR|IN|OUT)|ZEND_(DEBUG_BUILD|THREAD_SAFE))\\\\\\\\b\",\"name\":\"support.constant.core.php\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.inheritance.php\"}},\"match\":\"(\\\\\\\\\\\\\\\\)?\\\\\\\\b(__COMPILER_HALT_OFFSET__|AB(MON_(1|2|3|4|5|6|7|8|9|10|11|12)|DAY[1-7])|AM_STR|ASSERT_(ACTIVE|BAIL|CALLBACK_QUIET_EVAL|WARNING)|ALT_DIGITS|CASE_(UPPER|LOWER)|CHAR_MAX|CONNECTION_(ABORTED|NORMAL|TIMEOUT)|CODESET|COUNT_(NORMAL|RECURSIVE)|CREDITS_(ALL|DOCS|FULLPAGE|GENERAL|GROUP|MODULES|QA|SAPI)|CRYPT_(BLOWFISH|EXT_DES|MD5|SHA(256|512)|SALT_LENGTH|STD_DES)|CURRENCY_SYMBOL|D_(T_)?FMT|DATE_(ATOM|COOKIE|ISO8601|RFC(822|850|1036|1123|2822|3339)|RSS|W3C)|DAY_[1-7]|DECIMAL_POINT|DIRECTORY_SEPARATOR|ENT_(COMPAT|IGNORE|(NO)?QUOTES)|EXTR_(IF_EXISTS|OVERWRITE|PREFIX_(ALL|IF_EXISTS|INVALID|SAME)|REFS|SKIP)|ERA(_(D_(T_)?FMT)|T_FMT|YEAR)?|FRAC_DIGITS|GROUPING|HASH_HMAC|HTML_(ENTITIES|SPECIALCHARS)|INF|INFO_(ALL|CREDITS|CONFIGURATION|ENVIRONMENT|GENERAL|LICENSEMODULES|VARIABLES)|INI_(ALL|CANNER_(NORMAL|RAW)|PERDIR|SYSTEM|USER)|INT_(CURR_SYMBOL|FRAC_DIGITS)|LC_(ALL|COLLATE|CTYPE|MESSAGES|MONETARY|NUMERIC|TIME)|LOCK_(EX|NB|SH|UN)|LOG_(ALERT|AUTH(PRIV)?|CRIT|CRON|CONS|DAEMON|DEBUG|EMERG|ERR|INFO|LOCAL[1-7]|LPR|KERN|MAIL|NEWS|NODELAY|NOTICE|NOWAIT|ODELAY|PID|PERROR|WARNING|SYSLOG|UCP|USER)|M_(1_PI|SQRT(1_2|2|3|PI)|2_(SQRT)?PI|PI(_(2|4))?|E(ULER)?|LN(10|2|PI)|LOG(10|2)E)|MON_(1|2|3|4|5|6|7|8|9|10|11|12|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)|N_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN)|NAN|NEGATIVE_SIGN|NO(EXPR|STR)|P_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN)|PM_STR|POSITIVE_SIGN|PATH(_SEPARATOR|INFO_(EXTENSION|(BASE|DIR|FILE)NAME))|RADIXCHAR|SEEK_(CUR|END|SET)|SORT_(ASC|DESC|LOCALE_STRING|REGULAR|STRING)|STR_PAD_(BOTH|LEFT|RIGHT)|T_FMT(_AMPM)?|THOUSEP|THOUSANDS_SEP|UPLOAD_ERR_(CANT_WRITE|EXTENSION|(FORM|INI)_SIZE|NO_(FILE|TMP_DIR)|OK|PARTIAL)|YES(EXPR|STR))\\\\\\\\b\",\"name\":\"support.constant.std.php\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.inheritance.php\"}},\"match\":\"(\\\\\\\\\\\\\\\\)?\\\\\\\\b(GLOB_(MARK|BRACE|NO(SORT|CHECK|ESCAPE)|ONLYDIR|ERR|AVAILABLE_FLAGS)|XML_(SAX_IMPL|(DTD|DOCUMENT(_(FRAG|TYPE))?|HTML_DOCUMENT|NOTATION|NAMESPACE_DECL|PI|COMMENT|DATA_SECTION|TEXT)_NODE|OPTION_(SKIP_(TAGSTART|WHITE)|CASE_FOLDING|TARGET_ENCODING)|ERROR_((BAD_CHAR|(ATTRIBUTE_EXTERNAL|BINARY|PARAM|RECURSIVE)_ENTITY)_REF|MISPLACED_XML_PI|SYNTAX|NONE|NO_(MEMORY|ELEMENTS)|TAG_MISMATCH|INCORRECT_ENCODING|INVALID_TOKEN|DUPLICATE_ATTRIBUTE|UNCLOSED_(CDATA_SECTION|TOKEN)|UNDEFINED_ENTITY|UNKNOWN_ENCODING|JUNK_AFTER_DOC_ELEMENT|PARTIAL_CHAR|EXTERNAL_ENTITY_HANDLING|ASYNC_ENTITY)|ENTITY_(((REF|DECL)_)?NODE)|ELEMENT(_DECL)?_NODE|LOCAL_NAMESPACE|ATTRIBUTE_(NMTOKEN(S)?|NOTATION|NODE)|CDATA|ID(REF(S)?)?|DECL_NODE|ENTITY|ENUMERATION)|MHASH_(RIPEMD(128|160|256|320)|GOST|MD(2|4|5)|SHA(1|224|256|384|512)|SNEFRU256|HAVAL(128|160|192|224|256)|CRC23(B)?|TIGER(128|160)?|WHIRLPOOL|ADLER32)|MYSQL_(BOTH|NUM|CLIENT_(SSL|COMPRESS|IGNORE_SPACE|INTERACTIVE|ASSOC))|MYSQLI_(REPORT_(STRICT|INDEX|OFF|ERROR|ALL)|REFRESH_(GRANT|MASTER|BACKUP_LOG|STATUS|SLAVE|HOSTS|THREADS|TABLES|LOG)|READ_DEFAULT_(FILE|GROUP)|(GROUP|MULTIPLE_KEY|BINARY|BLOB)_FLAG|BOTH|STMT_ATTR_(CURSOR_TYPE|UPDATE_MAX_LENGTH|PREFETCH_ROWS)|STORE_RESULT|SERVER_QUERY_(NO_((GOOD_)?INDEX_USED)|WAS_SLOW)|SET_(CHARSET_NAME|FLAG)|NO_(DEFAULT_VALUE_FLAG|DATA)|NOT_NULL_FLAG|NUM(_FLAG)?|CURSOR_TYPE_(READ_ONLY|SCROLLABLE|NO_CURSOR|FOR_UPDATE)|CLIENT_(SSL|NO_SCHEMA|COMPRESS|IGNORE_SPACE|INTERACTIVE|FOUND_ROWS)|TYPE_(GEOMETRY|((MEDIUM|LONG|TINY)_)?BLOB|BIT|SHORT|STRING|SET|YEAR|NULL|NEWDECIMAL|NEWDATE|CHAR|TIME(STAMP)?|TINY|INT24|INTERVAL|DOUBLE|DECIMAL|DATE(TIME)?|ENUM|VAR_STRING|FLOAT|LONG(LONG)?)|TIME_STAMP_FLAG|INIT_COMMAND|ZEROFILL_FLAG|ON_UPDATE_NOW_FLAG|OPT_(NET_((CMD|READ)_BUFFER_SIZE)|CONNECT_TIMEOUT|INT_AND_FLOAT_NATIVE|LOCAL_INFILE)|DEBUG_TRACE_ENABLED|DATA_TRUNCATED|USE_RESULT|(ENUM|(PART|PRI|UNIQUE)_KEY|UNSIGNED)_FLAG|ASSOC|ASYNC|AUTO_INCREMENT_FLAG)|MCRYPT_(RC(2|6)|RIJNDAEL_(128|192|256)|RAND|GOST|XTEA|MODE_(STREAM|NOFB|CBC|CFB|OFB|ECB)|MARS|BLOWFISH(_COMPAT)?|SERPENT|SKIPJACK|SAFER(64|128|PLUS)|CRYPT|CAST_(128|256)|TRIPLEDES|THREEWAY|TWOFISH|IDEA|(3)?DES|DECRYPT|DEV_(U)?RANDOM|PANAMA|ENCRYPT|ENIGNA|WAKE|LOKI97|ARCFOUR(_IV)?)|STREAM_(REPORT_ERRORS|MUST_SEEK|MKDIR_RECURSIVE|BUFFER_(NONE|FULL|LINE)|SHUT_(RD)?WR|SOCK_(RDM|RAW|STREAM|SEQPACKET|DGRAM)|SERVER_(BIND|LISTEN)|NOTIFY_(REDIRECTED|RESOLVE|MIME_TYPE_IS|SEVERITY_(INFO|ERR|WARN)|COMPLETED|CONNECT|PROGRESS|FILE_SIZE_IS|FAILURE|AUTH_(REQUIRED|RESULT))|CRYPTO_METHOD_((SSLv2(3)?|SSLv3|TLS)_(CLIENT|SERVER))|CLIENT_((ASYNC_)?CONNECT|PERSISTENT)|CAST_(AS_STREAM|FOR_SELECT)|(IGNORE|IS)_URL|IPPROTO_(RAW|TCP|ICMP|IP|UDP)|OOB|OPTION_(READ_(BUFFER|TIMEOUT)|BLOCKING|WRITE_BUFFER)|URL_STAT_(LINK|QUIET)|USE_PATH|PEEK|PF_(INET(6)?|UNIX)|ENFORCE_SAFE_MODE|FILTER_(ALL|READ|WRITE))|SUNFUNCS_RET_(DOUBLE|STRING|TIMESTAMP)|SQLITE_(READONLY|ROW|MISMATCH|MISUSE|BOTH|BUSY|SCHEMA|NOMEM|NOTFOUND|NOTADB|NOLFS|NUM|CORRUPT|CONSTRAINT|CANTOPEN|TOOBIG|INTERRUPT|INTERNAL|IOERR|OK|DONE|PROTOCOL|PERM|ERROR|EMPTY|FORMAT|FULL|LOCKED|ABORT|ASSOC|AUTH)|SQLITE3_(BOTH|BLOB|NUM|NULL|TEXT|INTEGER|OPEN_(READ(ONLY|WRITE)|CREATE)|FLOAT_ASSOC)|CURL(M_(BAD_((EASY)?HANDLE)|CALL_MULTI_PERFORM|INTERNAL_ERROR|OUT_OF_MEMORY|OK)|MSG_DONE|SSH_AUTH_(HOST|NONE|DEFAULT|PUBLICKEY|PASSWORD|KEYBOARD)|CLOSEPOLICY_(SLOWEST|CALLBACK|OLDEST|LEAST_(RECENTLY_USED|TRAFFIC)|INFO_(REDIRECT_(COUNT|TIME)|REQUEST_SIZE|SSL_VERIFYRESULT|STARTTRANSFER_TIME|(SIZE|SPEED)_(DOWNLOAD|UPLOAD)|HTTP_CODE|HEADER_(OUT|SIZE)|NAMELOOKUP_TIME|CONNECT_TIME|CONTENT_(TYPE|LENGTH_(DOWNLOAD|UPLOAD))|CERTINFO|TOTAL_TIME|PRIVATE|PRETRANSFER_TIME|EFFECTIVE_URL|FILETIME)|OPT_(RESUME_FROM|RETURNTRANSFER|REDIR_PROTOCOLS|REFERER|READ(DATA|FUNCTION)|RANGE|RANDOM_FILE|MAX(CONNECTS|REDIRS)|BINARYTRANSFER|BUFFERSIZE|SSH_(HOST_PUBLIC_KEY_MD5|(PRIVATE|PUBLIC)_KEYFILE)|AUTH_TYPES)|SSL(CERT(TYPE|PASSWD)?|ENGINE(_DEFAULT)?|VERSION|KEY(TYPE|PASSWD)?)|SSL_(CIPHER_LIST|VERIFY(HOST|PEER))|STDERR|HTTP(GET|HEADER|200ALIASES|_VERSION|PROXYTUNNEL|AUTH)|HEADER(FUNCTION)?|NO(BODY|SIGNAL|PROGRESS)|NETRC|CRLF|CONNECTTIMEOUT(_MS)?|COOKIE(SESSION|JAR|FILE)?|CUSTOMREQUEST|CERTINFO|CLOSEPOLICY|CA(INFO|PATH)|TRANSFERTEXT|TCP_NODELAY|TIME(CONDITION|OUT(_MS)?|VALUE)|INTERFACE|INFILE(SIZE)?|IPRESOLVE|DNS_(CACHE_TIMEOUT|USE_GLOBAL_CACHE)|URL|USER(AGENT|PWD)|UNRESTRICTED_AUTH|UPLOAD|PRIVATE|PROGRESSFUNCTION|PROXY(TYPE|USERPWD|PORT|AUTH)?|PROTOCOLS|PORT|POST(REDIR|QUOTE|FIELDS)?|PUT|EGDSOCKET|ENCODING|VERBOSE|KRB4LEVEL|KEYPASSWD|QUOTE|FRESH_CONNECT|FTP(APPEND|LISTONLY|PORT|SSLAUTH)|FTP_(SSL|SKIP_PASV_IP|CREATE_MISSING_DIRS|USE_EP(RT|SV)|FILEMETHOD)|FILE(TIME)?|FORBID_REUSE|FOLLOWLOCATION|FAILONERROR|WRITE(FUNCTION|HEADER)|LOW_SPEED_(LIMIT|TIME)|AUTOREFERER)|PROXY_(HTTP|SOCKS(4|5))|PROTO_(SCP|SFTP|HTTP(S)?|TELNET|TFTP|DICT|FTP(S)?|FILE|LDAP(S)?|ALL)|E_((RECV|READ)_ERROR|GOT_NOTHING|MALFORMAT_USER|BAD_(CONTENT_ENCODING|CALLING_ORDER|PASSWORD_ENTERED|FUNCTION_ARGUMENT)|SSH|SSL_(CIPHER|CONNECT_ERROR|CERTPROBLEM|CACERT|PEER_CERTIFICATE|ENGINE_(NOTFOUND|SETFAILED))|SHARE_IN_USE|SEND_ERROR|HTTP_(RANGE_ERROR|NOT_FOUND|PORT_FAILED|POST_ERROR)|COULDNT_(RESOLVE_(HOST|PROXY)|CONNECT)|TOO_MANY_REDIRECTS|TELNET_OPTION_SYNTAX|OBSOLETE|OUT_OF_MEMORY|OPERATION|TIMEOUTED|OK|URL_MALFORMAT(_USER)?|UNSUPPORTED_PROTOCOL|UNKNOWN_TELNET_OPTION|PARTIAL_FILE|FTP_(BAD_DOWNLOAD_RESUME|SSL_FAILED|COULDNT_(RETR_FILE|GET_SIZE|STOR_FILE|SET_(BINARY|ASCII)|USE_REST)|CANT_(GET_HOST|RECONNECT)|USER_PASSWORD_INCORRECT|PORT_FAILED|QUOTE_ERROR|WRITE_ERROR|WEIRD_((PASS|PASV|SERVER|USER)_REPLY|227_FORMAT)|ACCESS_DENIED)|FILESIZE_EXCEEDED|FILE_COULDNT_READ_FILE|FUNCTION_NOT_FOUND|FAILED_INIT|WRITE_ERROR|LIBRARY_NOT_FOUND|LDAP_(SEARCH_FAILED|CANNOT_BIND|INVALID_URL)|ABORTED_BY_CALLBACK)|VERSION_NOW|FTP(METHOD_(MULTI|SINGLE|NO)CWD|SSL_(ALL|NONE|CONTROL|TRY)|AUTH_(DEFAULT|SSL|TLS))|AUTH_(ANY(SAFE)?|BASIC|DIGEST|GSSNEGOTIATE|NTLM))|CURL_(HTTP_VERSION_(1_(0|1)|NONE)|NETRC_(REQUIRED|IGNORED|OPTIONAL)|TIMECOND_(IF(UN)?MODSINCE|LASTMOD)|IPRESOLVE_(V(4|6)|WHATEVER)|VERSION_(SSL|IPV6|KERBEROS4|LIBZ))|IMAGETYPE_(GIF|XBM|BMP|SWF|COUNT|TIFF_(MM|II)|ICO|IFF|UNKNOWN|JB2|JPX|JP2|JPC|JPEG(2000)?|PSD|PNG|WBMP)|INPUT_(REQUEST|GET|SERVER|SESSION|COOKIE|POST|ENV)|ICONV_(MIME_DECODE_(STRICT|CONTINUE_ON_ERROR)|IMPL|VERSION)|DNS_(MX|SRV|SOA|HINFO|NS|NAPTR|CNAME|TXT|PTR|ANY|ALL|AAAA|A(6)?)|DOM(STRING_SIZE_ERR)|DOM_((SYNTAX|HIERARCHY_REQUEST|NO_(MODIFICATION_ALLOWED|DATA_ALLOWED)|NOT_(FOUND|SUPPORTED)|NAMESPACE|INDEX_SIZE|USE_ATTRIBUTE|VALID_(MODIFICATION|STATE|CHARACTER|ACCESS)|PHP|VALIDATION|WRONG_DOCUMENT)_ERR)|JSON_(HEX_(TAG|QUOT|AMP|APOS)|NUMERIC_CHECK|ERROR_(SYNTAX|STATE_MISMATCH|NONE|CTRL_CHAR|DEPTH|UTF8)|FORCE_OBJECT)|PREG_((D_UTF8(_OFFSET)?|NO|INTERNAL|(BACKTRACK|RECURSION)_LIMIT)_ERROR|GREP_INVERT|SPLIT_(NO_EMPTY|(DELIM|OFFSET)_CAPTURE)|SET_ORDER|OFFSET_CAPTURE|PATTERN_ORDER)|PSFS_(PASS_ON|ERR_FATAL|FEED_ME|FLAG_(NORMAL|FLUSH_(CLOSE|INC)))|PCRE_VERSION|POSIX_((F|R|W|X)_OK|S_IF(REG|BLK|SOCK|CHR|IFO))|FNM_(NOESCAPE|CASEFOLD|PERIOD|PATHNAME)|FILTER_(REQUIRE_(SCALAR|ARRAY)|NULL_ON_FAILURE|CALLBACK|DEFAULT|UNSAFE_RAW|SANITIZE_(MAGIC_QUOTES|STRING|STRIPPED|SPECIAL_CHARS|NUMBER_(INT|FLOAT)|URL|EMAIL|ENCODED|FULL_SPCIAL_CHARS)|VALIDATE_(REGEXP|BOOLEAN|INT|IP|URL|EMAIL|FLOAT)|FORCE_ARRAY|FLAG_(SCHEME_REQUIRED|STRIP_(BACKTICK|HIGH|LOW)|HOST_REQUIRED|NONE|NO_(RES|PRIV)_RANGE|ENCODE_QUOTES|IPV(4|6)|PATH_REQUIRED|EMPTY_STRING_NULL|ENCODE_(HIGH|LOW|AMP)|QUERY_REQUIRED|ALLOW_(SCIENTIFIC|HEX|THOUSAND|OCTAL|FRACTION)))|FILE_(BINARY|SKIP_EMPTY_LINES|NO_DEFAULT_CONTEXT|TEXT|IGNORE_NEW_LINES|USE_INCLUDE_PATH|APPEND)|FILEINFO_(RAW|MIME(_(ENCODING|TYPE))?|SYMLINK|NONE|CONTINUE|DEVICES|PRESERVE_ATIME)|FORCE_(DEFLATE|GZIP)|LIBXML_(XINCLUDE|NSCLEAN|NO(XMLDECL|BLANKS|NET|CDATA|ERROR|EMPTYTAG|ENT|WARNING)|COMPACT|DTD(VALID|LOAD|ATTR)|((DOTTED|LOADED)_)?VERSION|PARSEHUGE|ERR_(NONE|ERROR|FATAL|WARNING)))\\\\\\\\b\",\"name\":\"support.constant.ext.php\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.inheritance.php\"}},\"match\":\"(\\\\\\\\\\\\\\\\)?\\\\\\\\b(T_(RETURN|REQUIRE(_ONCE)?|GOTO|GLOBAL|(MINUS|MOD|MUL|XOR)_EQUAL|METHOD_C|ML_COMMENT|BREAK|BOOL_CAST|BOOLEAN_(AND|OR)|BAD_CHARACTER|SR(_EQUAL)?|STRING(_CAST|VARNAME)?|START_HEREDOC|STATIC|SWITCH|SL(_EQUAL)?|HALT_COMPILER|NS_(C|SEPARATOR)|NUM_STRING|NEW|NAMESPACE|CHARACTER|COMMENT|CONSTANT(_ENCAPSED_STRING)?|CONCAT_EQUAL|CONTINUE|CURLY_OPEN|CLOSE_TAG|CLONE|CLASS(_C)?|CASE|CATCH|TRY|THROW|IMPLEMENTS|ISSET|IS_((GREATER|SMALLER)_OR_EQUAL|(NOT_)?(IDENTICAL|EQUAL))|INSTANCEOF|INCLUDE(_ONCE)?|INC|INT_CAST|INTERFACE|INLINE_HTML|IF|OR_EQUAL|OBJECT_(CAST|OPERATOR)|OPEN_TAG(_WITH_ECHO)?|OLD_FUNCTION|DNUMBER|DIR|DIV_EQUAL|DOC_COMMENT|DOUBLE_(ARROW|CAST|COLON)|DOLLAR_OPEN_CURLY_BRACES|DO|DEC|DECLARE|DEFAULT|USE|UNSET(_CAST)?|PRINT|PRIVATE|PROTECTED|PUBLIC|PLUS_EQUAL|PAAMAYIM_NEKUDOTAYIM|EXTENDS|EXIT|EMPTY|ENCAPSED_AND_WHITESPACE|END(SWITCH|IF|DECLARE|FOR(EACH)?|WHILE)|END_HEREDOC|ECHO|EVAL|ELSE(IF)?|VAR(IABLE)?|FINAL|FILE|FOR(EACH)?|FUNC_C|FUNCTION|WHITESPACE|WHILE|LNUMBER|LIST|LINE|LOGICAL_(AND|OR|XOR)|ARRAY_(CAST)?|ABSTRACT|AS|AND_EQUAL))\\\\\\\\b\",\"name\":\"support.constant.parser-token.php\"},{\"match\":\"(?i)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*\",\"name\":\"constant.other.php\"}]},\"function-call\":{\"patterns\":[{\"begin\":\"(\\\\\\\\\\\\\\\\?(?<![a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}])[a-zA-Z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*(?:\\\\\\\\\\\\\\\\[a-zA-Z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)+)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#namespace\"},{\"match\":\"(?i)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*\",\"name\":\"entity.name.function.php\"}]},\"2\":{\"name\":\"punctuation.definition.arguments.begin.bracket.round.php\"}},\"end\":\"\\\\\\\\)|(?=\\\\\\\\?>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.bracket.round.php\"}},\"name\":\"meta.function-call.php\",\"patterns\":[{\"include\":\"#named-arguments\"},{\"include\":\"$self\"}]},{\"begin\":\"(\\\\\\\\\\\\\\\\)?(?<![a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}])([a-zA-Z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-zA-Z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#namespace\"}]},\"2\":{\"patterns\":[{\"include\":\"#support\"},{\"match\":\"(?i)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*\",\"name\":\"entity.name.function.php\"}]},\"3\":{\"name\":\"punctuation.definition.arguments.begin.bracket.round.php\"}},\"end\":\"\\\\\\\\)|(?=\\\\\\\\?>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.bracket.round.php\"}},\"name\":\"meta.function-call.php\",\"patterns\":[{\"include\":\"#named-arguments\"},{\"include\":\"$self\"}]},{\"match\":\"(?i)\\\\\\\\b(print|echo)\\\\\\\\b\",\"name\":\"support.function.construct.output.php\"}]},\"function-parameters\":{\"patterns\":[{\"include\":\"#attribute\"},{\"include\":\"#comments\"},{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.php\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#php-types\"}]},\"2\":{\"name\":\"variable.other.php\"},\"3\":{\"name\":\"storage.modifier.reference.php\"},\"4\":{\"name\":\"keyword.operator.variadic.php\"},\"5\":{\"name\":\"punctuation.definition.variable.php\"}},\"match\":\"(?xi)\\\\n(?: (\\\\n  # nullable type\\\\n  (?:\\\\\\\\?\\\\\\\\s*)? [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+ |\\\\n  # union, intersection or DNF type\\\\n  (?: [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+ | \\\\\\\\(\\\\\\\\s* [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+(?:\\\\\\\\s*&\\\\\\\\s*[a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+)+ \\\\\\\\s*\\\\\\\\) )\\\\n  (?: \\\\\\\\s*[|&]\\\\\\\\s*\\\\n  (?: [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+ | \\\\\\\\(\\\\\\\\s* [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+(?:\\\\\\\\s*&\\\\\\\\s*[a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+)+ \\\\\\\\s*\\\\\\\\) )\\\\n  )+\\\\n) \\\\\\\\s+ )?\\\\n((?:(&)\\\\\\\\s*)?(\\\\\\\\.\\\\\\\\.\\\\\\\\.)(\\\\\\\\$)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*) # Variable name with possible reference\\\\n(?=\\\\\\\\s*(?:,|\\\\\\\\)|/[/*]|\\\\\\\\#|$)) # A closing parentheses (end of argument list) or a comma or a comment\",\"name\":\"meta.function.parameter.variadic.php\"},{\"begin\":\"(?xi)\\\\n(\\\\n  # nullable type\\\\n  (?:\\\\\\\\?\\\\\\\\s*)? [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+ |\\\\n  # union, intersection or DNF type\\\\n  (?: [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+ | \\\\\\\\(\\\\\\\\s* [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+(?:\\\\\\\\s*&\\\\\\\\s*[a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+)+ \\\\\\\\s*\\\\\\\\) )\\\\n  (?: \\\\\\\\s*[|&]\\\\\\\\s*\\\\n  (?: [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+ | \\\\\\\\(\\\\\\\\s* [a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+(?:\\\\\\\\s*&\\\\\\\\s*[a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+)+ \\\\\\\\s*\\\\\\\\) )\\\\n  )+\\\\n)\\\\n\\\\\\\\s+ ((?:(&)\\\\\\\\s*)?(\\\\\\\\$)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*) # Variable name with possible reference\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#php-types\"}]},\"2\":{\"name\":\"variable.other.php\"},\"3\":{\"name\":\"storage.modifier.reference.php\"},\"4\":{\"name\":\"punctuation.definition.variable.php\"}},\"end\":\"(?=\\\\\\\\s*(?:,|\\\\\\\\)|/[/*]|\\\\\\\\#))\",\"name\":\"meta.function.parameter.typehinted.php\",\"patterns\":[{\"begin\":\"=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.assignment.php\"}},\"end\":\"(?=\\\\\\\\s*(?:,|\\\\\\\\)|/[/*]|\\\\\\\\#))\",\"patterns\":[{\"include\":\"#parameter-default-types\"}]}]},{\"captures\":{\"1\":{\"name\":\"variable.other.php\"},\"2\":{\"name\":\"storage.modifier.reference.php\"},\"3\":{\"name\":\"punctuation.definition.variable.php\"}},\"match\":\"(?xi)\\\\n((?:(&)\\\\\\\\s*)?(\\\\\\\\$)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*) # Variable name with possible reference\\\\n(?=\\\\\\\\s*(?:,|\\\\\\\\)|/[/*]|\\\\\\\\#|$)) # A closing parentheses (end of argument list) or a comma or a comment\",\"name\":\"meta.function.parameter.no-default.php\"},{\"begin\":\"(?xi)\\\\n((?:(&)\\\\\\\\s*)?(\\\\\\\\$)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*) # Variable name with possible reference\\\\n\\\\\\\\s*(=)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.php\"},\"2\":{\"name\":\"storage.modifier.reference.php\"},\"3\":{\"name\":\"punctuation.definition.variable.php\"},\"4\":{\"name\":\"keyword.operator.assignment.php\"}},\"end\":\"(?=\\\\\\\\s*(?:,|\\\\\\\\)|/[/*]|\\\\\\\\#))\",\"name\":\"meta.function.parameter.default.php\",\"patterns\":[{\"include\":\"#parameter-default-types\"}]}]},\"heredoc\":{\"patterns\":[{\"begin\":\"(?i)(?=<<<\\\\\\\\s*(\\\\\"?)([a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)(\\\\\\\\1)\\\\\\\\s*$)\",\"end\":\"(?!\\\\\\\\G)\",\"name\":\"string.unquoted.heredoc.php\",\"patterns\":[{\"include\":\"#heredoc_interior\"}]},{\"begin\":\"(?=<<<\\\\\\\\s*'([a-zA-Z_]+[a-zA-Z0-9_]*)'\\\\\\\\s*$)\",\"end\":\"(?!\\\\\\\\G)\",\"name\":\"string.unquoted.nowdoc.php\",\"patterns\":[{\"include\":\"#nowdoc_interior\"}]}]},\"heredoc_interior\":{\"patterns\":[{\"begin\":\"(<<<)\\\\\\\\s*(\\\\\"?)(HTML)(\\\\\\\\2)(\\\\\\\\s*)$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"},\"1\":{\"name\":\"punctuation.definition.string.php\"},\"3\":{\"name\":\"keyword.operator.heredoc.php\"},\"5\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"contentName\":\"text.html\",\"end\":\"^\\\\\\\\s*(\\\\\\\\3)(?![A-Za-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}])\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"keyword.operator.heredoc.php\"}},\"name\":\"meta.embedded.html\",\"patterns\":[{\"include\":\"#interpolation\"},{\"include\":\"text.html.basic\"}]},{\"begin\":\"(<<<)\\\\\\\\s*(\\\\\"?)(XML)(\\\\\\\\2)(\\\\\\\\s*)$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"},\"1\":{\"name\":\"punctuation.definition.string.php\"},\"3\":{\"name\":\"keyword.operator.heredoc.php\"},\"5\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"contentName\":\"text.xml\",\"end\":\"^\\\\\\\\s*(\\\\\\\\3)(?![A-Za-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}])\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"keyword.operator.heredoc.php\"}},\"name\":\"meta.embedded.xml\",\"patterns\":[{\"include\":\"#interpolation\"},{\"include\":\"text.xml\"}]},{\"begin\":\"(<<<)\\\\\\\\s*(\\\\\"?)([DS]QL)(\\\\\\\\2)(\\\\\\\\s*)$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"},\"1\":{\"name\":\"punctuation.definition.string.php\"},\"3\":{\"name\":\"keyword.operator.heredoc.php\"},\"5\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"contentName\":\"source.sql\",\"end\":\"^\\\\\\\\s*(\\\\\\\\3)(?![A-Za-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}])\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"keyword.operator.heredoc.php\"}},\"name\":\"meta.embedded.sql\",\"patterns\":[{\"include\":\"#interpolation\"},{\"include\":\"source.sql\"}]},{\"begin\":\"(<<<)\\\\\\\\s*(\\\\\"?)(JAVASCRIPT|JS)(\\\\\\\\2)(\\\\\\\\s*)$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"},\"1\":{\"name\":\"punctuation.definition.string.php\"},\"3\":{\"name\":\"keyword.operator.heredoc.php\"},\"5\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"contentName\":\"source.js\",\"end\":\"^\\\\\\\\s*(\\\\\\\\3)(?![A-Za-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}])\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"keyword.operator.heredoc.php\"}},\"name\":\"meta.embedded.js\",\"patterns\":[{\"include\":\"#interpolation\"},{\"include\":\"source.js\"}]},{\"begin\":\"(<<<)\\\\\\\\s*(\\\\\"?)(JSON)(\\\\\\\\2)(\\\\\\\\s*)$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"},\"1\":{\"name\":\"punctuation.definition.string.php\"},\"3\":{\"name\":\"keyword.operator.heredoc.php\"},\"5\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"contentName\":\"source.json\",\"end\":\"^\\\\\\\\s*(\\\\\\\\3)(?![A-Za-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}])\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"keyword.operator.heredoc.php\"}},\"name\":\"meta.embedded.json\",\"patterns\":[{\"include\":\"#interpolation\"},{\"include\":\"source.json\"}]},{\"begin\":\"(<<<)\\\\\\\\s*(\\\\\"?)(CSS)(\\\\\\\\2)(\\\\\\\\s*)$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"},\"1\":{\"name\":\"punctuation.definition.string.php\"},\"3\":{\"name\":\"keyword.operator.heredoc.php\"},\"5\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"contentName\":\"source.css\",\"end\":\"^\\\\\\\\s*(\\\\\\\\3)(?![A-Za-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}])\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"keyword.operator.heredoc.php\"}},\"name\":\"meta.embedded.css\",\"patterns\":[{\"include\":\"#interpolation\"},{\"include\":\"source.css\"}]},{\"begin\":\"(<<<)\\\\\\\\s*(\\\\\"?)(REGEXP?)(\\\\\\\\2)(\\\\\\\\s*)$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"},\"1\":{\"name\":\"punctuation.definition.string.php\"},\"3\":{\"name\":\"keyword.operator.heredoc.php\"},\"5\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"contentName\":\"string.regexp.heredoc.php\",\"end\":\"^\\\\\\\\s*(\\\\\\\\3)(?![A-Za-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}])\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"keyword.operator.heredoc.php\"}},\"patterns\":[{\"include\":\"#interpolation\"},{\"match\":\"(\\\\\\\\\\\\\\\\){1,2}[.$^\\\\\\\\[\\\\\\\\]{}]\",\"name\":\"constant.character.escape.regex.php\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.arbitrary-repitition.php\"},\"3\":{\"name\":\"punctuation.definition.arbitrary-repitition.php\"}},\"match\":\"({)\\\\\\\\d+(,\\\\\\\\d+)?(})\",\"name\":\"string.regexp.arbitrary-repitition.php\"},{\"begin\":\"\\\\\\\\[(?:\\\\\\\\^?\\\\\\\\])?\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.character-class.php\"}},\"end\":\"\\\\\\\\]\",\"name\":\"string.regexp.character-class.php\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\\\'\\\\\\\\[\\\\\\\\]]\",\"name\":\"constant.character.escape.php\"}]},{\"match\":\"[$^+*]\",\"name\":\"keyword.operator.regexp.php\"},{\"begin\":\"(?i)(?<=^|\\\\\\\\s)(#)\\\\\\\\s(?=[[a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff},. \\\\\\\\t?!-][^\\\\\\\\x{00}-\\\\\\\\x{7f}]]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.php\"}},\"end\":\"$\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.php\"}},\"name\":\"comment.line.number-sign.php\"}]},{\"begin\":\"(<<<)\\\\\\\\s*(\\\\\"?)(BLADE)(\\\\\\\\2)(\\\\\\\\s*)$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"},\"1\":{\"name\":\"punctuation.definition.string.php\"},\"3\":{\"name\":\"keyword.operator.heredoc.php\"},\"5\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"contentName\":\"text.html.php.blade\",\"end\":\"^\\\\\\\\s*(\\\\\\\\3)(?![A-Za-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}])\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"keyword.operator.heredoc.php\"}},\"name\":\"meta.embedded.php.blade\",\"patterns\":[{\"include\":\"#interpolation\"}]},{\"begin\":\"(?i)(<<<)\\\\\\\\s*(\\\\\"?)([a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]+[a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)(\\\\\\\\2)(\\\\\\\\s*)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.php\"},\"3\":{\"name\":\"keyword.operator.heredoc.php\"},\"5\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"end\":\"^\\\\\\\\s*(\\\\\\\\3)(?![A-Za-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.heredoc.php\"}},\"patterns\":[{\"include\":\"#interpolation\"}]}]},\"inheritance-single\":{\"patterns\":[{\"begin\":\"(?i)(?=\\\\\\\\\\\\\\\\?[a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*\\\\\\\\\\\\\\\\)\",\"end\":\"(?i)([a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)?(?=[^a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"entity.other.inherited-class.php\"}},\"patterns\":[{\"include\":\"#namespace\"}]},{\"include\":\"#class-builtin\"},{\"include\":\"#namespace\"},{\"match\":\"(?i)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*\",\"name\":\"entity.other.inherited-class.php\"}]},\"instantiation\":{\"begin\":\"(?i)(new)\\\\\\\\s+(?!class\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.new.php\"}},\"end\":\"(?i)(?=[^a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\])\",\"patterns\":[{\"match\":\"(?i)(parent|static|self)(?![a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}])\",\"name\":\"storage.type.php\"},{\"include\":\"#class-name\"},{\"include\":\"#variable-name\"}]},\"interface-extends\":{\"patterns\":[{\"begin\":\"(?i)(extends)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.extends.php\"}},\"end\":\"(?i)(?={)\",\"patterns\":[{\"include\":\"#comments\"},{\"match\":\",\",\"name\":\"punctuation.separator.classes.php\"},{\"include\":\"#inheritance-single\"}]}]},\"interpolation\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[0-7]{1,3}\",\"name\":\"constant.character.escape.octal.php\"},{\"match\":\"\\\\\\\\\\\\\\\\x[0-9A-Fa-f]{1,2}\",\"name\":\"constant.character.escape.hex.php\"},{\"match\":\"\\\\\\\\\\\\\\\\u{[0-9A-Fa-f]+}\",\"name\":\"constant.character.escape.unicode.php\"},{\"match\":\"\\\\\\\\\\\\\\\\[nrtvef$\\\\\\\\\\\\\\\\]\",\"name\":\"constant.character.escape.php\"},{\"begin\":\"{(?=\\\\\\\\$.*?})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.variable.php\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.variable.php\"}},\"patterns\":[{\"include\":\"$self\"}]},{\"include\":\"#variable-name\"}]},\"interpolation_double_quoted\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\\\\\"\",\"name\":\"constant.character.escape.php\"},{\"include\":\"#interpolation\"}]},\"invoke-call\":{\"captures\":{\"1\":{\"name\":\"variable.other.php\"},\"2\":{\"name\":\"punctuation.definition.variable.php\"}},\"match\":\"(?i)((\\\\\\\\$+)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)(?=\\\\\\\\s*\\\\\\\\()\",\"name\":\"meta.function-call.invoke.php\"},\"match_statement\":{\"patterns\":[{\"match\":\"\\\\\\\\s+(?=match\\\\\\\\b)\"},{\"begin\":\"\\\\\\\\bmatch\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.match.php\"}},\"end\":\"}|(?=\\\\\\\\?>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.section.match-block.end.bracket.curly.php\"}},\"name\":\"meta.match-statement.php\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.match-expression.begin.bracket.round.php\"}},\"end\":\"\\\\\\\\)|(?=\\\\\\\\?>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.match-expression.end.bracket.round.php\"}},\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.section.match-block.begin.bracket.curly.php\"}},\"end\":\"(?=}|\\\\\\\\?>)\",\"patterns\":[{\"match\":\"=>\",\"name\":\"keyword.definition.arrow.php\"},{\"include\":\"$self\"}]}]}]},\"named-arguments\":{\"captures\":{\"1\":{\"name\":\"entity.name.variable.parameter.php\"},\"2\":{\"name\":\"punctuation.separator.colon.php\"}},\"match\":\"(?i)(?<=^|\\\\\\\\(|,)\\\\\\\\s*([a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)\\\\\\\\s*(:)(?!:)\"},\"namespace\":{\"begin\":\"(?i)(?:(namespace)|[a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)?(\\\\\\\\\\\\\\\\)\",\"beginCaptures\":{\"1\":{\"name\":\"variable.language.namespace.php\"},\"2\":{\"name\":\"punctuation.separator.inheritance.php\"}},\"end\":\"(?i)(?![a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*\\\\\\\\\\\\\\\\)\",\"name\":\"support.other.namespace.php\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\",\"name\":\"punctuation.separator.inheritance.php\"}]},\"nowdoc_interior\":{\"patterns\":[{\"begin\":\"(<<<)\\\\\\\\s*'(HTML)'(\\\\\\\\s*)$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"},\"1\":{\"name\":\"punctuation.definition.string.php\"},\"2\":{\"name\":\"keyword.operator.nowdoc.php\"},\"3\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"contentName\":\"text.html\",\"end\":\"^\\\\\\\\s*(\\\\\\\\2)(?![A-Za-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}])\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"keyword.operator.nowdoc.php\"}},\"name\":\"meta.embedded.html\",\"patterns\":[{\"include\":\"text.html.basic\"}]},{\"begin\":\"(<<<)\\\\\\\\s*'(XML)'(\\\\\\\\s*)$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"},\"1\":{\"name\":\"punctuation.definition.string.php\"},\"2\":{\"name\":\"keyword.operator.nowdoc.php\"},\"3\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"contentName\":\"text.xml\",\"end\":\"^\\\\\\\\s*(\\\\\\\\2)(?![A-Za-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}])\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"keyword.operator.nowdoc.php\"}},\"name\":\"meta.embedded.xml\",\"patterns\":[{\"include\":\"text.xml\"}]},{\"begin\":\"(<<<)\\\\\\\\s*'([DS]QL)'(\\\\\\\\s*)$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"},\"1\":{\"name\":\"punctuation.definition.string.php\"},\"2\":{\"name\":\"keyword.operator.nowdoc.php\"},\"3\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"contentName\":\"source.sql\",\"end\":\"^\\\\\\\\s*(\\\\\\\\2)(?![A-Za-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}])\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"keyword.operator.nowdoc.php\"}},\"name\":\"meta.embedded.sql\",\"patterns\":[{\"include\":\"source.sql\"}]},{\"begin\":\"(<<<)\\\\\\\\s*'(JAVASCRIPT|JS)'(\\\\\\\\s*)$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"},\"1\":{\"name\":\"punctuation.definition.string.php\"},\"2\":{\"name\":\"keyword.operator.nowdoc.php\"},\"3\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"contentName\":\"source.js\",\"end\":\"^\\\\\\\\s*(\\\\\\\\2)(?![A-Za-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}])\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"keyword.operator.nowdoc.php\"}},\"name\":\"meta.embedded.js\",\"patterns\":[{\"include\":\"source.js\"}]},{\"begin\":\"(<<<)\\\\\\\\s*'(JSON)'(\\\\\\\\s*)$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"},\"1\":{\"name\":\"punctuation.definition.string.php\"},\"2\":{\"name\":\"keyword.operator.nowdoc.php\"},\"3\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"contentName\":\"source.json\",\"end\":\"^\\\\\\\\s*(\\\\\\\\2)(?![A-Za-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}])\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"keyword.operator.nowdoc.php\"}},\"name\":\"meta.embedded.json\",\"patterns\":[{\"include\":\"source.json\"}]},{\"begin\":\"(<<<)\\\\\\\\s*'(CSS)'(\\\\\\\\s*)$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"},\"1\":{\"name\":\"punctuation.definition.string.php\"},\"2\":{\"name\":\"keyword.operator.nowdoc.php\"},\"3\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"contentName\":\"source.css\",\"end\":\"^\\\\\\\\s*(\\\\\\\\2)(?![A-Za-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}])\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"keyword.operator.nowdoc.php\"}},\"name\":\"meta.embedded.css\",\"patterns\":[{\"include\":\"source.css\"}]},{\"begin\":\"(<<<)\\\\\\\\s*'(REGEXP?)'(\\\\\\\\s*)$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"},\"1\":{\"name\":\"punctuation.definition.string.php\"},\"2\":{\"name\":\"keyword.operator.nowdoc.php\"},\"3\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"contentName\":\"string.regexp.nowdoc.php\",\"end\":\"^\\\\\\\\s*(\\\\\\\\2)(?![A-Za-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}])\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"keyword.operator.nowdoc.php\"}},\"patterns\":[{\"match\":\"(\\\\\\\\\\\\\\\\){1,2}[.$^\\\\\\\\[\\\\\\\\]{}]\",\"name\":\"constant.character.escape.regex.php\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.arbitrary-repitition.php\"},\"3\":{\"name\":\"punctuation.definition.arbitrary-repitition.php\"}},\"match\":\"({)\\\\\\\\d+(,\\\\\\\\d+)?(})\",\"name\":\"string.regexp.arbitrary-repitition.php\"},{\"begin\":\"\\\\\\\\[(?:\\\\\\\\^?\\\\\\\\])?\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.character-class.php\"}},\"end\":\"\\\\\\\\]\",\"name\":\"string.regexp.character-class.php\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\\\'\\\\\\\\[\\\\\\\\]]\",\"name\":\"constant.character.escape.php\"}]},{\"match\":\"[$^+*]\",\"name\":\"keyword.operator.regexp.php\"},{\"begin\":\"(?i)(?<=^|\\\\\\\\s)(#)\\\\\\\\s(?=[[a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff},. \\\\\\\\t?!-][^\\\\\\\\x{00}-\\\\\\\\x{7f}]]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.php\"}},\"end\":\"$\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.php\"}},\"name\":\"comment.line.number-sign.php\"}]},{\"begin\":\"(<<<)\\\\\\\\s*'(BLADE)'(\\\\\\\\s*)$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.php\"},\"1\":{\"name\":\"punctuation.definition.string.php\"},\"2\":{\"name\":\"keyword.operator.nowdoc.php\"},\"3\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"contentName\":\"text.html.php.blade\",\"end\":\"^\\\\\\\\s*(\\\\\\\\2)(?![A-Za-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}])\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.php\"},\"1\":{\"name\":\"keyword.operator.nowdoc.php\"}},\"name\":\"meta.embedded.php.blade\"},{\"begin\":\"(?i)(<<<)\\\\\\\\s*'([a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]+[a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)'(\\\\\\\\s*)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.php\"},\"2\":{\"name\":\"keyword.operator.nowdoc.php\"},\"3\":{\"name\":\"invalid.illegal.trailing-whitespace.php\"}},\"end\":\"^\\\\\\\\s*(\\\\\\\\2)(?![A-Za-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}])\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.nowdoc.php\"}}}]},\"null_coalescing\":{\"match\":\"\\\\\\\\?\\\\\\\\?\",\"name\":\"keyword.operator.null-coalescing.php\"},\"numbers\":{\"patterns\":[{\"match\":\"0[xX][0-9a-fA-F]+(?:_[0-9a-fA-F]+)*\",\"name\":\"constant.numeric.hex.php\"},{\"match\":\"0[bB][01]+(?:_[01]+)*\",\"name\":\"constant.numeric.binary.php\"},{\"match\":\"0[oO][0-7]+(?:_[0-7]+)*\",\"name\":\"constant.numeric.octal.php\"},{\"match\":\"0(?:_?[0-7]+)+\",\"name\":\"constant.numeric.octal.php\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.decimal.period.php\"},\"2\":{\"name\":\"punctuation.separator.decimal.period.php\"}},\"match\":\"(?:(?:[0-9]+(?:_[0-9]+)*)?(\\\\\\\\.)[0-9]+(?:_[0-9]+)*(?:[eE][+-]?[0-9]+(?:_[0-9]+)*)?|[0-9]+(?:_[0-9]+)*(\\\\\\\\.)(?:[0-9]+(?:_[0-9]+)*)?(?:[eE][+-]?[0-9]+(?:_[0-9]+)*)?|[0-9]+(?:_[0-9]+)*[eE][+-]?[0-9]+(?:_[0-9]+)*)\",\"name\":\"constant.numeric.decimal.php\"},{\"match\":\"0|[1-9](?:_?[0-9]+)*\",\"name\":\"constant.numeric.decimal.php\"}]},\"object\":{\"patterns\":[{\"begin\":\"(\\\\\\\\??->)\\\\\\\\s*(\\\\\\\\$?{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.class.php\"},\"2\":{\"name\":\"punctuation.definition.variable.php\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.variable.php\"}},\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(?i)(\\\\\\\\??->)\\\\\\\\s*([a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.class.php\"},\"2\":{\"name\":\"entity.name.function.php\"},\"3\":{\"name\":\"punctuation.definition.arguments.begin.bracket.round.php\"}},\"end\":\"\\\\\\\\)|(?=\\\\\\\\?>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.bracket.round.php\"}},\"name\":\"meta.method-call.php\",\"patterns\":[{\"include\":\"#named-arguments\"},{\"include\":\"$self\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.operator.class.php\"},\"2\":{\"name\":\"variable.other.property.php\"},\"3\":{\"name\":\"punctuation.definition.variable.php\"}},\"match\":\"(?i)(\\\\\\\\??->)\\\\\\\\s*((\\\\\\\\$+)?[a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)?\"}]},\"parameter-default-types\":{\"patterns\":[{\"include\":\"#strings\"},{\"include\":\"#numbers\"},{\"include\":\"#string-backtick\"},{\"include\":\"#variables\"},{\"match\":\"=>\",\"name\":\"keyword.operator.key.php\"},{\"match\":\"=\",\"name\":\"keyword.operator.assignment.php\"},{\"match\":\"&(?=\\\\\\\\s*\\\\\\\\$)\",\"name\":\"storage.modifier.reference.php\"},{\"begin\":\"(array)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.construct.php\"},\"2\":{\"name\":\"punctuation.definition.array.begin.bracket.round.php\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.array.end.bracket.round.php\"}},\"name\":\"meta.array.php\",\"patterns\":[{\"include\":\"#parameter-default-types\"}]},{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.array.begin.php\"}},\"end\":\"\\\\\\\\]|(?=\\\\\\\\?>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.array.end.php\"}},\"patterns\":[{\"include\":\"$self\"}]},{\"include\":\"#instantiation\"},{\"begin\":\"(?xi)\\\\n(?=[a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]+\\\\n  (::)\\\\\\\\s*([a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)?\\\\n)\",\"end\":\"(?i)(::)\\\\\\\\s*([a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)?\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.class.php\"},\"2\":{\"name\":\"constant.other.class.php\"}},\"patterns\":[{\"include\":\"#class-name\"}]},{\"include\":\"#constants\"}]},\"php-types\":{\"patterns\":[{\"match\":\"\\\\\\\\?\",\"name\":\"keyword.operator.nullable-type.php\"},{\"match\":\"[|&]\",\"name\":\"punctuation.separator.delimiter.php\"},{\"match\":\"(?i)\\\\\\\\b(null|int|float|bool|string|array|object|callable|iterable|true|false|mixed|void)\\\\\\\\b\",\"name\":\"keyword.other.type.php\"},{\"match\":\"(?i)\\\\\\\\b(parent|self)\\\\\\\\b\",\"name\":\"storage.type.php\"},{\"match\":\"\\\\\\\\(\",\"name\":\"punctuation.definition.type.begin.bracket.round.php\"},{\"match\":\"\\\\\\\\)\",\"name\":\"punctuation.definition.type.end.bracket.round.php\"},{\"include\":\"#class-name\"}]},\"php_doc\":{\"patterns\":[{\"match\":\"^(?!\\\\\\\\s*\\\\\\\\*).*?(?:(?=\\\\\\\\*\\\\\\\\/)|$\\\\\\\\n?)\",\"name\":\"invalid.illegal.missing-asterisk.phpdoc.php\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.phpdoc.php\"},\"3\":{\"name\":\"storage.modifier.php\"},\"4\":{\"name\":\"invalid.illegal.wrong-access-type.phpdoc.php\"}},\"match\":\"^\\\\\\\\s*\\\\\\\\*\\\\\\\\s*(@access)\\\\\\\\s+((public|private|protected)|(.+))\\\\\\\\s*$\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.phpdoc.php\"},\"2\":{\"name\":\"markup.underline.link.php\"}},\"match\":\"(@xlink)\\\\\\\\s+(.+)\\\\\\\\s*$\"},{\"begin\":\"(@(?:global|param|property(-(read|write))?|return|throws|var))\\\\\\\\s+(?=[?A-Za-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]|\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.phpdoc.php\"}},\"contentName\":\"meta.other.type.phpdoc.php\",\"end\":\"(?=\\\\\\\\s|\\\\\\\\*/)\",\"patterns\":[{\"include\":\"#php_doc_types_array_multiple\"},{\"include\":\"#php_doc_types_array_single\"},{\"include\":\"#php_doc_types\"}]},{\"match\":\"@(api|abstract|author|category|copyright|example|global|inherit[Dd]oc|internal|license|link|method|property(-(read|write))?|package|param|return|see|since|source|static|subpackage|throws|todo|var|version|uses|deprecated|final|ignore)\\\\\\\\b\",\"name\":\"keyword.other.phpdoc.php\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.phpdoc.php\"}},\"match\":\"{(@(link|inherit[Dd]oc)).+?}\",\"name\":\"meta.tag.inline.phpdoc.php\"}]},\"php_doc_types\":{\"captures\":{\"0\":{\"patterns\":[{\"match\":\"\\\\\\\\?\",\"name\":\"keyword.operator.nullable-type.php\"},{\"match\":\"\\\\\\\\b(string|integer|int|boolean|bool|float|double|object|mixed|array|resource|void|null|callback|false|true|self|static)\\\\\\\\b\",\"name\":\"keyword.other.type.php\"},{\"include\":\"#class-name\"},{\"match\":\"[|&]\",\"name\":\"punctuation.separator.delimiter.php\"},{\"match\":\"\\\\\\\\(\",\"name\":\"punctuation.definition.type.begin.bracket.round.php\"},{\"match\":\"\\\\\\\\)\",\"name\":\"punctuation.definition.type.end.bracket.round.php\"}]}},\"match\":\"(?i)\\\\\\\\??[a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]*([|&]\\\\\\\\??[a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]*)*\"},\"php_doc_types_array_multiple\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.type.begin.bracket.round.phpdoc.php\"}},\"end\":\"(\\\\\\\\))(\\\\\\\\[\\\\\\\\])|(?=\\\\\\\\*/)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.type.end.bracket.round.phpdoc.php\"},\"2\":{\"name\":\"keyword.other.array.phpdoc.php\"}},\"patterns\":[{\"include\":\"#php_doc_types_array_multiple\"},{\"include\":\"#php_doc_types_array_single\"},{\"include\":\"#php_doc_types\"},{\"match\":\"[|&]\",\"name\":\"punctuation.separator.delimiter.php\"}]},\"php_doc_types_array_single\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#php_doc_types\"}]},\"2\":{\"name\":\"keyword.other.array.phpdoc.php\"}},\"match\":\"(?i)([a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]*)(\\\\\\\\[\\\\\\\\])\"},\"regex-double-quoted\":{\"begin\":\"\\\\\"/(?=(\\\\\\\\\\\\\\\\.|[^\\\\\"/])++/[imsxeADSUXu]*\\\\\")\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.php\"}},\"end\":\"(/)([imsxeADSUXu]*)(\\\\\")\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.php\"}},\"name\":\"string.regexp.double-quoted.php\",\"patterns\":[{\"match\":\"(\\\\\\\\\\\\\\\\){1,2}[.$^\\\\\\\\[\\\\\\\\]{}]\",\"name\":\"constant.character.escape.regex.php\"},{\"include\":\"#interpolation_double_quoted\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.arbitrary-repetition.php\"},\"3\":{\"name\":\"punctuation.definition.arbitrary-repetition.php\"}},\"match\":\"({)\\\\\\\\d+(,\\\\\\\\d+)?(})\",\"name\":\"string.regexp.arbitrary-repetition.php\"},{\"begin\":\"\\\\\\\\[(?:\\\\\\\\^?\\\\\\\\])?\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.character-class.php\"}},\"end\":\"\\\\\\\\]\",\"name\":\"string.regexp.character-class.php\",\"patterns\":[{\"include\":\"#interpolation_double_quoted\"}]},{\"match\":\"[$^+*]\",\"name\":\"keyword.operator.regexp.php\"}]},\"regex-single-quoted\":{\"begin\":\"'/(?=(\\\\\\\\\\\\\\\\(?:\\\\\\\\\\\\\\\\(?:\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\\\']?|[^'])|.)|[^'/])++/[imsxeADSUXu]*')\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.php\"}},\"end\":\"(/)([imsxeADSUXu]*)(')\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.php\"}},\"name\":\"string.regexp.single-quoted.php\",\"patterns\":[{\"include\":\"#single_quote_regex_escape\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.arbitrary-repetition.php\"},\"3\":{\"name\":\"punctuation.definition.arbitrary-repetition.php\"}},\"match\":\"({)\\\\\\\\d+(,\\\\\\\\d+)?(})\",\"name\":\"string.regexp.arbitrary-repetition.php\"},{\"begin\":\"\\\\\\\\[(?:\\\\\\\\^?\\\\\\\\])?\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.character-class.php\"}},\"end\":\"\\\\\\\\]\",\"name\":\"string.regexp.character-class.php\"},{\"match\":\"[$^+*]\",\"name\":\"keyword.operator.regexp.php\"}]},\"scope-resolution\":{\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"match\":\"\\\\\\\\b(self|static|parent)\\\\\\\\b\",\"name\":\"storage.type.php\"},{\"include\":\"#class-name\"},{\"include\":\"#variable-name\"}]}},\"match\":\"([A-Za-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\][A-Za-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}\\\\\\\\\\\\\\\\]*)(?=\\\\\\\\s*::)\"},{\"begin\":\"(?i)(::)\\\\\\\\s*([a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.class.php\"},\"2\":{\"name\":\"entity.name.function.php\"},\"3\":{\"name\":\"punctuation.definition.arguments.begin.bracket.round.php\"}},\"end\":\"\\\\\\\\)|(?=\\\\\\\\?>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.bracket.round.php\"}},\"name\":\"meta.method-call.static.php\",\"patterns\":[{\"include\":\"#named-arguments\"},{\"include\":\"$self\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.operator.class.php\"},\"2\":{\"name\":\"keyword.other.class.php\"}},\"match\":\"(?i)(::)\\\\\\\\s*(class)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.class.php\"},\"2\":{\"name\":\"variable.other.class.php\"},\"3\":{\"name\":\"punctuation.definition.variable.php\"},\"4\":{\"name\":\"constant.other.class.php\"}},\"match\":\"(?xi)\\\\n(::)\\\\\\\\s*\\\\n(?:\\\\n  ((\\\\\\\\$+)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*) # Variable\\\\n  |\\\\n  ([a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)       # Constant\\\\n)?\"}]},\"single_quote_regex_escape\":{\"match\":\"\\\\\\\\\\\\\\\\(?:\\\\\\\\\\\\\\\\(?:\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\\\']?|[^'])|.)\",\"name\":\"constant.character.escape.php\"},\"sql-string-double-quoted\":{\"begin\":\"\\\\\"\\\\\\\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND|WITH)\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.php\"}},\"contentName\":\"source.sql.embedded.php\",\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.php\"}},\"name\":\"string.quoted.double.sql.php\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.sql\"}},\"match\":\"(#)(\\\\\\\\\\\\\\\\\\\\\"|[^\\\\\"])*(?=\\\\\"|$)\",\"name\":\"comment.line.number-sign.sql\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.sql\"}},\"match\":\"(--)(\\\\\\\\\\\\\\\\\\\\\"|[^\\\\\"])*(?=\\\\\"|$)\",\"name\":\"comment.line.double-dash.sql\"},{\"match\":\"\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\"\\`']\",\"name\":\"constant.character.escape.php\"},{\"match\":\"'(?=((\\\\\\\\\\\\\\\\')|[^'\\\\\"])*(\\\\\"|$))\",\"name\":\"string.quoted.single.unclosed.sql\"},{\"match\":\"\\`(?=((\\\\\\\\\\\\\\\\\\`)|[^\\`\\\\\"])*(\\\\\"|$))\",\"name\":\"string.quoted.other.backtick.unclosed.sql\"},{\"begin\":\"'\",\"end\":\"'\",\"name\":\"string.quoted.single.sql\",\"patterns\":[{\"include\":\"#interpolation_double_quoted\"}]},{\"begin\":\"\\`\",\"end\":\"\\`\",\"name\":\"string.quoted.other.backtick.sql\",\"patterns\":[{\"include\":\"#interpolation_double_quoted\"}]},{\"include\":\"#interpolation_double_quoted\"},{\"include\":\"source.sql\"}]},\"sql-string-single-quoted\":{\"begin\":\"'\\\\\\\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND|WITH)\\\\\\\\b)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.php\"}},\"contentName\":\"source.sql.embedded.php\",\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.php\"}},\"name\":\"string.quoted.single.sql.php\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.sql\"}},\"match\":\"(#)(\\\\\\\\\\\\\\\\'|[^'])*(?='|$)\",\"name\":\"comment.line.number-sign.sql\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.sql\"}},\"match\":\"(--)(\\\\\\\\\\\\\\\\'|[^'])*(?='|$)\",\"name\":\"comment.line.double-dash.sql\"},{\"match\":\"\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\\\'\\`\\\\\"]\",\"name\":\"constant.character.escape.php\"},{\"match\":\"\\`(?=((\\\\\\\\\\\\\\\\\\`)|[^\\`'])*('|$))\",\"name\":\"string.quoted.other.backtick.unclosed.sql\"},{\"match\":\"\\\\\"(?=((\\\\\\\\\\\\\\\\\\\\\")|[^\\\\\"'])*('|$))\",\"name\":\"string.quoted.double.unclosed.sql\"},{\"include\":\"source.sql\"}]},\"string-backtick\":{\"begin\":\"\\`\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.php\"}},\"end\":\"\\`\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.php\"}},\"name\":\"string.interpolated.php\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\\`\",\"name\":\"constant.character.escape.php\"},{\"include\":\"#interpolation\"}]},\"string-double-quoted\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.php\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.php\"}},\"name\":\"string.quoted.double.php\",\"patterns\":[{\"include\":\"#interpolation_double_quoted\"}]},\"string-single-quoted\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.php\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.php\"}},\"name\":\"string.quoted.single.php\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\\\']\",\"name\":\"constant.character.escape.php\"}]},\"strings\":{\"patterns\":[{\"include\":\"#regex-double-quoted\"},{\"include\":\"#sql-string-double-quoted\"},{\"include\":\"#string-double-quoted\"},{\"include\":\"#regex-single-quoted\"},{\"include\":\"#sql-string-single-quoted\"},{\"include\":\"#string-single-quoted\"}]},\"support\":{\"patterns\":[{\"match\":\"(?xi)\\\\n\\\\\\\\b\\\\napc_(\\\\n  store|sma_info|compile_file|clear_cache|cas|cache_info|inc|dec|define_constants|delete(_file)?|\\\\n  exists|fetch|load_constants|add|bin_(dump|load)(file)?\\\\n)\\\\\\\\b\",\"name\":\"support.function.apc.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  shuffle|sizeof|sort|next|nat(case)?sort|count|compact|current|in_array|usort|uksort|uasort|\\\\n  pos|prev|end|each|extract|ksort|key(_exists)?|krsort|list|asort|arsort|rsort|reset|range|\\\\n  array(_(shift|sum|splice|search|slice|chunk|change_key_case|count_values|column|combine|\\\\n          (diff|intersect)(_(u)?(key|assoc))?|u(diff|intersect)(_(u)?assoc)?|unshift|unique|\\\\n          pop|push|pad|product|values|keys|key_exists|filter|fill(_keys)?|flip|walk(_recursive)?|\\\\n          reduce|replace(_recursive)?|reverse|rand|multisort|merge(_recursive)?|map)?)\\\\n)\\\\\\\\b\",\"name\":\"support.function.array.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  show_source|sys_getloadavg|sleep|highlight_(file|string)|constant|connection_(aborted|status)|\\\\n  time_(nanosleep|sleep_until)|ignore_user_abort|die|define(d)?|usleep|uniqid|unpack|__halt_compiler|\\\\n  php_(check_syntax|strip_whitespace)|pack|eval|exit|get_browser\\\\n)\\\\\\\\b\",\"name\":\"support.function.basic_functions.php\"},{\"match\":\"(?i)\\\\\\\\bbc(scale|sub|sqrt|comp|div|pow(mod)?|add|mod|mul)\\\\\\\\b\",\"name\":\"support.function.bcmath.php\"},{\"match\":\"(?i)\\\\\\\\bblenc_encrypt\\\\\\\\b\",\"name\":\"support.function.blenc.php\"},{\"match\":\"(?i)\\\\\\\\bbz(compress|close|open|decompress|errstr|errno|error|flush|write|read)\\\\\\\\b\",\"name\":\"support.function.bz2.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  (French|Gregorian|Jewish|Julian)ToJD|cal_(to_jd|info|days_in_month|from_jd)|unixtojd|\\\\n  jdto(unix|jewish)|easter_(date|days)|JD(MonthName|To(Gregorian|Julian|French)|DayOfWeek)\\\\n)\\\\\\\\b\",\"name\":\"support.function.calendar.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  class_alias|all_user_method(_array)?|is_(a|subclass_of)|__autoload|(class|interface|method|property|trait)_exists|\\\\n  get_(class(_(vars|methods))?|(called|parent)_class|object_vars|declared_(classes|interfaces|traits))\\\\n)\\\\\\\\b\",\"name\":\"support.function.classobj.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  com_(create_guid|print_typeinfo|event_sink|load_typelib|get_active_object|message_pump)|\\\\n  variant_(sub|set(_type)?|not|neg|cast|cat|cmp|int|idiv|imp|or|div|date_(from|to)_timestamp|\\\\n           pow|eqv|fix|and|add|abs|round|get_type|xor|mod|mul)\\\\n)\\\\\\\\b\",\"name\":\"support.function.com.php\"},{\"match\":\"(?i)\\\\\\\\b(isset|unset|eval|empty|list)\\\\\\\\b\",\"name\":\"support.function.construct.php\"},{\"match\":\"(?i)\\\\\\\\b(print|echo)\\\\\\\\b\",\"name\":\"support.function.construct.output.php\"},{\"match\":\"(?i)\\\\\\\\bctype_(space|cntrl|digit|upper|punct|print|lower|alnum|alpha|graph|xdigit)\\\\\\\\b\",\"name\":\"support.function.ctype.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\ncurl_(\\\\n  share_(close|init|setopt)|strerror|setopt(_array)?|copy_handle|close|init|unescape|pause|escape|\\\\n  errno|error|exec|version|file_create|reset|getinfo|\\\\n  multi_(strerror|setopt|select|close|init|info_read|(add|remove)_handle|getcontent|exec)\\\\n)\\\\\\\\b\",\"name\":\"support.function.curl.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  strtotime|str[fp]time|checkdate|time|timezone_name_(from_abbr|get)|idate|\\\\n  timezone_((location|offset|transitions|version)_get|(abbreviations|identifiers)_list|open)|\\\\n  date(_(sun(rise|set)|sun_info|sub|create(_(immutable_)?from_format)?|timestamp_(get|set)|timezone_(get|set)|time_set|\\\\n         isodate_set|interval_(create_from_date_string|format)|offset_get|diff|default_timezone_(get|set)|date_set|\\\\n         parse(_from_format)?|format|add|get_last_errors|modify))?|\\\\n  localtime|get(date|timeofday)|gm(strftime|date|mktime)|microtime|mktime\\\\n)\\\\\\\\b\",\"name\":\"support.function.datetime.php\"},{\"match\":\"(?i)\\\\\\\\bdba_(sync|handlers|nextkey|close|insert|optimize|open|delete|popen|exists|key_split|firstkey|fetch|list|replace)\\\\\\\\b\",\"name\":\"support.function.dba.php\"},{\"match\":\"(?i)\\\\\\\\bdbx_(sort|connect|compare|close|escape_string|error|query|fetch_row)\\\\\\\\b\",\"name\":\"support.function.dbx.php\"},{\"match\":\"(?i)\\\\\\\\b(scandir|chdir|chroot|closedir|opendir|dir|rewinddir|readdir|getcwd)\\\\\\\\b\",\"name\":\"support.function.dir.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\neio_(\\\\n  sync(fs)?|sync_file_range|symlink|stat(vfs)?|sendfile|set_min_parallel|set_max_(idle|poll_(reqs|time)|parallel)|\\\\n  seek|n(threads|op|pending|reqs|ready)|chown|chmod|custom|close|cancel|truncate|init|open|dup2|unlink|utime|poll|\\\\n  event_loop|f(sync|stat(vfs)?|chown|chmod|truncate|datasync|utime|allocate)|write|lstat|link|rename|realpath|\\\\n  read(ahead|dir|link)?|rmdir|get_(event_stream|last_error)|grp(_(add|cancel|limit))?|mknod|mkdir|busy\\\\n)\\\\\\\\b\",\"name\":\"support.function.eio.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nenchant_(\\\\n  dict_(store_replacement|suggest|check|is_in_session|describe|quick_check|add_to_(personal|session)|get_error)|\\\\n  broker_(set_ordering|init|dict_exists|describe|free(_dict)?|list_dicts|request_(pwl_)?dict|get_error)\\\\n)\\\\\\\\b\",\"name\":\"support.function.enchant.php\"},{\"match\":\"(?i)\\\\\\\\b(split(i)?|sql_regcase|ereg(i)?(_replace)?)\\\\\\\\b\",\"name\":\"support.function.ereg.php\"},{\"match\":\"(?i)\\\\\\\\b((restore|set)_(error_handler|exception_handler)|trigger_error|debug_(print_)?backtrace|user_error|error_(log|reporting|get_last))\\\\\\\\b\",\"name\":\"support.function.errorfunc.php\"},{\"match\":\"(?i)\\\\\\\\b(shell_exec|system|passthru|proc_(nice|close|terminate|open|get_status)|escapeshell(arg|cmd)|exec)\\\\\\\\b\",\"name\":\"support.function.exec.php\"},{\"match\":\"(?i)\\\\\\\\b(exif_(thumbnail|tagname|imagetype|read_data)|read_exif_data)\\\\\\\\b\",\"name\":\"support.function.exif.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nfann_(\\\\n  (duplicate|length|merge|shuffle|subset)_train_data|scale_(train(_data)?|(input|output)(_train_data)?)|\\\\n  set_(scaling_params|sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)|\\\\n       cascade_(num_candidate_groups|candidate_(change_fraction|limit|stagnation_epochs)|\\\\n                output_(change_fraction|stagnation_epochs)|weight_multiplier|activation_(functions|steepnesses)|\\\\n                (max|min)_(cand|out)_epochs)|\\\\n       callback|training_algorithm|train_(error|stop)_function|(input|output)_scaling_params|error_log|\\\\n       quickprop_(decay|mu)|weight(_array)?|learning_(momentum|rate)|bit_fail_limit|\\\\n       activation_(function|steepness)(_(hidden|layer|output))?|\\\\n       rprop_((decrease|increase)_factor|delta_(max|min|zero)))|\\\\n  save(_train)?|num_(input|output)_train_data|copy|clear_scaling_params|cascadetrain_on_(file|data)|\\\\n  create_((sparse|shortcut|standard)(_array)?|train(_from_callback)?|from_file)|\\\\n  test(_data)?|train(_(on_(file|data)|epoch))?|init_weights|descale_(input|output|train)|destroy(_train)?|\\\\n  print_error|run|reset_(MSE|err(no|str))|read_train_from_file|randomize_weights|\\\\n  get_(sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)|num_(input|output|layers)|\\\\n       network_type|MSE|connection_(array|rate)|bias_array|bit_fail(_limit)?|\\\\n       cascade_(num_(candidates|candidate_groups)|(candidate|output)_(change_fraction|limit|stagnation_epochs)|\\\\n                weight_multiplier|activation_(functions|steepnesses)(_count)?|(max|min)_(cand|out)_epochs)|\\\\n       total_(connections|neurons)|training_algorithm|train_(error|stop)_function|err(no|str)|\\\\n       quickprop_(decay|mu)|learning_(momentum|rate)|layer_array|activation_(function|steepness)|\\\\n       rprop_((decrease|increase)_factor|delta_(max|min|zero)))\\\\n)\\\\\\\\b\",\"name\":\"support.function.fann.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  symlink|stat|set_file_buffer|chown|chgrp|chmod|copy|clearstatcache|touch|tempnam|tmpfile|\\\\n  is_(dir|(uploaded_)?file|executable|link|readable|writ(e)?able)|disk_(free|total)_space|diskfreespace|\\\\n  dirname|delete|unlink|umask|pclose|popen|pathinfo|parse_ini_(file|string)|fscanf|fstat|fseek|fnmatch|\\\\n  fclose|ftell|ftruncate|file(size|[acm]time|type|inode|owner|perms|group)?|file_(exists|(get|put)_contents)|\\\\n  f(open|puts|putcsv|passthru|eof|flush|write|lock|read|gets(s)?|getc(sv)?)|lstat|lchown|lchgrp|link(info)?|\\\\n  rename|rewind|read(file|link)|realpath(_cache_(get|size))?|rmdir|glob|move_uploaded_file|mkdir|basename\\\\n)\\\\\\\\b\",\"name\":\"support.function.file.php\"},{\"match\":\"(?i)\\\\\\\\b(finfo_(set_flags|close|open|file|buffer)|mime_content_type)\\\\\\\\b\",\"name\":\"support.function.fileinfo.php\"},{\"match\":\"(?i)\\\\\\\\bfilter_(has_var|input(_array)?|id|var(_array)?|list)\\\\\\\\b\",\"name\":\"support.function.filter.php\"},{\"match\":\"(?i)\\\\\\\\bfastcgi_finish_request\\\\\\\\b\",\"name\":\"support.function.fpm.php\"},{\"match\":\"(?i)\\\\\\\\b(call_user_(func|method)(_array)?|create_function|unregister_tick_function|forward_static_call(_array)?|function_exists|func_(num_args|get_arg(s)?)|register_(shutdown|tick)_function|get_defined_functions)\\\\\\\\b\",\"name\":\"support.function.funchand.php\"},{\"match\":\"(?i)\\\\\\\\b((n)?gettext|textdomain|d((n)?gettext|c(n)?gettext)|bind(textdomain|_textdomain_codeset))\\\\\\\\b\",\"name\":\"support.function.gettext.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\ngmp_(\\\\n  scan[01]|strval|sign|sub|setbit|sqrt(rem)?|hamdist|neg|nextprime|com|clrbit|cmp|testbit|\\\\n  intval|init|invert|import|or|div(exact)?|div_(q|qr|r)|jacobi|popcount|pow(m)?|perfect_square|\\\\n  prob_prime|export|fact|legendre|and|add|abs|root(rem)?|random(_(bits|range))?|gcd(ext)?|xor|mod|mul\\\\n)\\\\\\\\b\",\"name\":\"support.function.gmp.php\"},{\"match\":\"(?i)\\\\\\\\bhash(_(hmac(_file)?|copy|init|update(_(file|stream))?|pbkdf2|equals|file|final|algos))?\\\\\\\\b\",\"name\":\"support.function.hash.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  http_(support|send_(status|stream|content_(disposition|type)|data|file|last_modified)|head|\\\\n        negotiate_(charset|content_type|language)|chunked_decode|cache_(etag|last_modified)|throttle|\\\\n        inflate|deflate|date|post_(data|fields)|put_(data|file|stream)|persistent_handles_(count|clean|ident)|\\\\n        parse_(cookie|headers|message|params)|redirect|request(_(method_(exists|name|(un)?register)|body_encode))?|\\\\n        get(_request_(headers|body(_stream)?))?|match_(etag|modified|request_header)|build_(cookie|str|url))|\\\\n  ob_(etag|deflate|inflate)handler\\\\n)\\\\\\\\b\",\"name\":\"support.function.http.php\"},{\"match\":\"(?i)\\\\\\\\b(iconv(_(str(pos|len|rpos)|substr|(get|set)_encoding|mime_(decode(_headers)?|encode)))?|ob_iconv_handler)\\\\\\\\b\",\"name\":\"support.function.iconv.php\"},{\"match\":\"(?i)\\\\\\\\biis_((start|stop)_(service|server)|set_(script_map|server_rights|dir_security|app_settings)|(add|remove)_server|get_(script_map|service_state|server_(rights|by_(comment|path))|dir_security))\\\\\\\\b\",\"name\":\"support.function.iisfunc.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  iptc(embed|parse)|(jpeg|png)2wbmp|gd_info|getimagesize(fromstring)?|\\\\n  image(s[xy]|scale|(char|string)(up)?|set(style|thickness|tile|interpolation|pixel|brush)|savealpha|\\\\n        convolution|copy(resampled|resized|merge(gray)?)?|colors(forindex|total)|\\\\n        color(set|closest(alpha|hwb)?|transparent|deallocate|(allocate|exact|resolve)(alpha)?|at|match)|\\\\n        crop(auto)?|create(truecolor|from(string|jpeg|png|wbmp|webp|gif|gd(2(part)?)?|xpm|xbm))?|\\\\n        types|ttf(bbox|text)|truecolortopalette|istruecolor|interlace|2wbmp|destroy|dashedline|jpeg|\\\\n        _type_to_(extension|mime_type)|ps(slantfont|text|(encode|extend|free|load)font|bbox)|png|polygon|\\\\n        palette(copy|totruecolor)|ellipse|ft(text|bbox)|filter|fill|filltoborder|\\\\n        filled(arc|ellipse|polygon|rectangle)|font(height|width)|flip|webp|wbmp|line|loadfont|layereffect|\\\\n        antialias|affine(matrix(concat|get))?|alphablending|arc|rotate|rectangle|gif|gd(2)?|gammacorrect|\\\\n        grab(screen|window)|xbm)\\\\n)\\\\\\\\b\",\"name\":\"support.function.image.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  sys_get_temp_dir|set_(time_limit|include_path|magic_quotes_runtime)|cli_(get|set)_process_title|\\\\n  ini_(alter|get(_all)?|restore|set)|zend_(thread_id|version|logo_guid)|dl|php(credits|info|version)|\\\\n  php_(sapi_name|ini_(scanned_files|loaded_file)|uname|logo_guid)|putenv|extension_loaded|version_compare|\\\\n  assert(_options)?|restore_include_path|gc_(collect_cycles|disable|enable(d)?)|getopt|\\\\n  get_(cfg_var|current_user|defined_constants|extension_funcs|include_path|included_files|loaded_extensions|\\\\n       magic_quotes_(gpc|runtime)|required_files|resources)|\\\\n  get(env|lastmod|rusage|my(inode|[gup]id))|\\\\n  memory_get_(peak_)?usage|main|magic_quotes_runtime\\\\n)\\\\\\\\b\",\"name\":\"support.function.info.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nibase_(\\\\n  set_event_handler|service_(attach|detach)|server_info|num_(fields|params)|name_result|connect|\\\\n  commit(_ret)?|close|trans|delete_user|drop_db|db_info|pconnect|param_info|prepare|err(code|msg)|\\\\n  execute|query|field_info|fetch_(assoc|object|row)|free_(event_handler|query|result)|wait_event|\\\\n  add_user|affected_rows|rollback(_ret)?|restore|gen_id|modify_user|maintain_db|backup|\\\\n  blob_(cancel|close|create|import|info|open|echo|add|get)\\\\n)\\\\\\\\b\",\"name\":\"support.function.interbase.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  normalizer_(normalize|is_normalized)|idn_to_(unicode|utf8|ascii)|\\\\n  numfmt_(set_(symbol|(text_)?attribute|pattern)|create|(parse|format)(_currency)?|\\\\n          get_(symbol|(text_)?attribute|pattern|error_(code|message)|locale))|\\\\n  collator_(sort(_with_sort_keys)?|set_(attribute|strength)|compare|create|asort|\\\\n            get_(strength|sort_key|error_(code|message)|locale|attribute))|\\\\n  transliterator_(create(_(inverse|from_rules))?|transliterate|list_ids|get_error_(code|message))|\\\\n  intl(cal|tz)_get_error_(code|message)|intl_(is_failure|error_name|get_error_(code|message))|\\\\n  datefmt_(set_(calendar|lenient|pattern|timezone(_id)?)|create|is_lenient|parse|format(_object)?|localtime|\\\\n           get_(calendar(_object)?|time(type|zone(_id)?)|datetype|pattern|error_(code|message)|locale))|\\\\n  locale_(set_default|compose|canonicalize|parse|filter_matches|lookup|accept_from_http|\\\\n          get_(script|display_(script|name|variant|language|region)|default|primary_language|keywords|all_variants|region))|\\\\n  resourcebundle_(create|count|locales|get(_(error_(code|message)))?)|\\\\n  grapheme_(str(i?str|r?i?pos|len)|substr|extract)|\\\\n  msgfmt_(set_pattern|create|(format|parse)(_message)?|get_(pattern|error_(code|message)|locale))\\\\n)\\\\\\\\b\",\"name\":\"support.function.intl.php\"},{\"match\":\"(?i)\\\\\\\\bjson_(decode|encode|last_error(_msg)?)\\\\\\\\b\",\"name\":\"support.function.json.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nldap_(\\\\n  start|tls|sort|search|sasl_bind|set_(option|rebind_proc)|(first|next)_(attribute|entry|reference)|\\\\n  connect|control_paged_result(_response)?|count_entries|compare|close|t61_to_8859|8859_to_t61|\\\\n  dn2ufn|delete|unbind|parse_(reference|result)|escape|errno|err2str|error|explode_dn|bind|\\\\n  free_result|list|add|rename|read|get_(option|dn|entries|values(_len)?|attributes)|modify(_batch)?|\\\\n  mod_(add|del|replace)\\\\n)\\\\\\\\b\",\"name\":\"support.function.ldap.php\"},{\"match\":\"(?i)\\\\\\\\blibxml_(set_(streams_context|external_entity_loader)|clear_errors|disable_entity_loader|use_internal_errors|get_(errors|last_error))\\\\\\\\b\",\"name\":\"support.function.libxml.php\"},{\"match\":\"(?i)\\\\\\\\b(ezmlm_hash|mail)\\\\\\\\b\",\"name\":\"support.function.mail.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  (a)?(cos|sin|tan)(h)?|sqrt|srand|hypot|hexdec|ceil|is_(nan|(in)?finite)|octdec|dec(hex|oct|bin)|deg2rad|\\\\n  pi|pow|exp(m1)?|floor|fmod|lcg_value|log(1(p|0))?|atan2|abs|round|rand|rad2deg|getrandmax|\\\\n  mt_(srand|rand|getrandmax)|max|min|bindec|base_convert\\\\n)\\\\\\\\b\",\"name\":\"support.function.math.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nmb_(\\\\n  str(cut|str|to(lower|upper)|istr|ipos|imwidth|pos|width|len|rchr|richr|ripos|rpos)|\\\\n  substitute_character|substr(_count)?|split|send_mail|http_(input|output)|check_encoding|\\\\n  convert_(case|encoding|kana|variables)|internal_encoding|output_handler|decode_(numericentity|mimeheader)|\\\\n  detect_(encoding|order)|parse_str|preferred_mime_name|encoding_aliases|encode_(numericentity|mimeheader)|\\\\n  ereg(i(_replace)?)?|ereg_(search(_(get(pos|regs)|init|regs|(set)?pos))?|replace(_callback)?|match)|\\\\n  list_encodings|language|regex_(set_options|encoding)|get_info\\\\n)\\\\\\\\b\",\"name\":\"support.function.mbstring.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  mcrypt_(\\\\n    cfb|create_iv|cbc|ofb|decrypt|encrypt|ecb|list_(algorithms|modes)|generic(_((de)?init|end))?|\\\\n    enc_(self_test|is_block_(algorithm|algorithm_mode|mode)|\\\\n    get_(supported_key_sizes|(block|iv|key)_size|(algorithms|modes)_name))|\\\\n    get_(cipher_name|(block|iv|key)_size)|\\\\n    module_(close|self_test|is_block_(algorithm|algorithm_mode|mode)|open|\\\\n            get_(supported_key_sizes|algo_(block|key)_size)))|\\\\n  mdecrypt_generic\\\\n)\\\\\\\\b\",\"name\":\"support.function.mcrypt.php\"},{\"match\":\"(?i)\\\\\\\\bmemcache_debug\\\\\\\\b\",\"name\":\"support.function.memcache.php\"},{\"match\":\"(?i)\\\\\\\\bmhash(_(count|keygen_s2k|get_(hash_name|block_size)))?\\\\\\\\b\",\"name\":\"support.function.mhash.php\"},{\"match\":\"(?i)\\\\\\\\b(log_(cmd_(insert|delete|update)|killcursor|write_batch|reply|getmore)|bson_(decode|encode))\\\\\\\\b\",\"name\":\"support.function.mongo.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nmysql_(\\\\n  stat|set_charset|select_db|num_(fields|rows)|connect|client_encoding|close|create_db|escape_string|\\\\n  thread_id|tablename|insert_id|info|data_seek|drop_db|db_(name|query)|unbuffered_query|pconnect|ping|\\\\n  errno|error|query|field_(seek|name|type|table|flags|len)|fetch_(object|field|lengths|assoc|array|row)|\\\\n  free_result|list_(tables|dbs|processes|fields)|affected_rows|result|real_escape_string|\\\\n  get_(client|host|proto|server)_info\\\\n)\\\\\\\\b\",\"name\":\"support.function.mysql.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nmysqli_(\\\\n  ssl_set|store_result|stat|send_(query|long_data)|set_(charset|opt|local_infile_(default|handler))|\\\\n  stmt_(store_result|send_long_data|next_result|close|init|data_seek|prepare|execute|fetch|free_result|\\\\n        attr_(get|set)|result_metadata|reset|get_(result|warnings)|more_results|bind_(param|result))|\\\\n  select_db|slave_query|savepoint|next_result|change_user|character_set_name|connect|commit|\\\\n  client_encoding|close|thread_safe|init|options|(enable|disable)_(reads_from_master|rpl_parse)|\\\\n  dump_debug_info|debug|data_seek|use_result|ping|poll|param_count|prepare|escape_string|execute|\\\\n  embedded_server_(start|end)|kill|query|field_seek|free_result|autocommit|rollback|report|refresh|\\\\n  fetch(_(object|fields|field(_direct)?|assoc|all|array|row))?|rpl_(parse_enabled|probe|query_type)|\\\\n  release_savepoint|reap_async_query|real_(connect|escape_string|query)|more_results|multi_query|\\\\n  get_(charset|connection_stats|client_(stats|info|version)|cache_stats|warnings|links_stats|metadata)|\\\\n  master_query|bind_(param|result)|begin_transaction\\\\n)\\\\\\\\b\",\"name\":\"support.function.mysqli.php\"},{\"match\":\"(?i)\\\\\\\\bmysqlnd_memcache_(set|get_config)\\\\\\\\b\",\"name\":\"support.function.mysqlnd-memcache.php\"},{\"match\":\"(?i)\\\\\\\\bmysqlnd_ms_(set_(user_pick_server|qos)|dump_servers|query_is_select|fabric_select_(shard|global)|get_(stats|last_(used_connection|gtid))|xa_(commit|rollback|gc|begin)|match_wild)\\\\\\\\b\",\"name\":\"support.function.mysqlnd-ms.php\"},{\"match\":\"(?i)\\\\\\\\bmysqlnd_qc_(set_(storage_handler|cache_condition|is_select|user_handlers)|clear_cache|get_(normalized_query_trace_log|core_stats|cache_info|query_trace_log|available_handlers))\\\\\\\\b\",\"name\":\"support.function.mysqlnd-qc.php\"},{\"match\":\"(?i)\\\\\\\\bmysqlnd_uh_(set_(statement|connection)_proxy|convert_to_mysqlnd)\\\\\\\\b\",\"name\":\"support.function.mysqlnd-uh.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  syslog|socket_(set_(blocking|timeout)|get_status)|set(raw)?cookie|http_response_code|openlog|\\\\n  headers_(list|sent)|header(_(register_callback|remove))?|checkdnsrr|closelog|inet_(ntop|pton)|ip2long|\\\\n  openlog|dns_(check_record|get_(record|mx))|define_syslog_variables|(p)?fsockopen|long2ip|\\\\n  get(servby(name|port)|host(name|by(name(l)?|addr))|protoby(name|number)|mxrr)\\\\n)\\\\\\\\b\",\"name\":\"support.function.network.php\"},{\"match\":\"(?i)\\\\\\\\bnsapi_(virtual|response_headers|request_headers)\\\\\\\\b\",\"name\":\"support.function.nsapi.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  oci(statementtype|setprefetch|serverversion|savelob(file)?|numcols|new(collection|cursor|descriptor)|nlogon|\\\\n      column(scale|size|name|type(raw)?|isnull|precision)|coll(size|trim|assign(elem)?|append|getelem|max)|commit|\\\\n      closelob|cancel|internaldebug|definebyname|plogon|parse|error|execute|fetch(statement|into)?|\\\\n      free(statement|collection|cursor|desc)|write(temporarylob|lobtofile)|loadlob|log(on|off)|rowcount|rollback|\\\\n      result|bindbyname)|\\\\n  oci_(statement_type|set_(client_(info|identifier)|prefetch|edition|action|module_name)|server_version|\\\\n       num_(fields|rows)|new_(connect|collection|cursor|descriptor)|connect|commit|client_version|close|cancel|\\\\n       internal_debug|define_by_name|pconnect|password_change|parse|error|execute|bind_(array_)?by_name|\\\\n       field_(scale|size|name|type(_raw)?|is_null|precision)|fetch(_(object|assoc|all|array|row))?|\\\\n       free_(statement|descriptor)|lob_(copy|is_equal)|rollback|result|get_implicit_resultset)\\\\n)\\\\\\\\b\",\"name\":\"support.function.oci8.php\"},{\"match\":\"(?i)\\\\\\\\bopcache_(compile_file|invalidate|reset|get_(status|configuration))\\\\\\\\b\",\"name\":\"support.function.opcache.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nopenssl_(\\\\n  sign|spki_(new|export(_challenge)?|verify)|seal|csr_(sign|new|export(_to_file)?|get_(subject|public_key))|\\\\n  cipher_iv_length|open|dh_compute_key|digest|decrypt|public_(decrypt|encrypt)|encrypt|error_string|\\\\n  pkcs12_(export(_to_file)?|read)|pkcs7_(sign|decrypt|encrypt|verify)|verify|free_key|random_pseudo_bytes|\\\\n  pkey_(new|export(_to_file)?|free|get_(details|public|private))|private_(decrypt|encrypt)|pbkdf2|\\\\n  get_((cipher|md)_methods|cert_locations|(public|private)key)|\\\\n  x509_(check_private_key|checkpurpose|parse|export(_to_file)?|fingerprint|free|read)\\\\n)\\\\\\\\b\",\"name\":\"support.function.openssl.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  output_(add_rewrite_var|reset_rewrite_vars)|flush|\\\\n  ob_(start|clean|implicit_flush|end_(clean|flush)|flush|list_handlers|gzhandler|\\\\n      get_(status|contents|clean|flush|length|level))\\\\n)\\\\\\\\b\",\"name\":\"support.function.output.php\"},{\"match\":\"(?i)\\\\\\\\bpassword_(hash|needs_rehash|verify|get_info)\\\\\\\\b\",\"name\":\"support.function.password.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\npcntl_(\\\\n  strerror|signal(_dispatch)?|sig(timedwait|procmask|waitinfo)|setpriority|errno|exec|fork|\\\\n  w(stopsig|termsig|if(stopped|signaled|exited))|wait(pid)?|alarm|getpriority|get_last_error\\\\n)\\\\\\\\b\",\"name\":\"support.function.pcntl.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\npg_(\\\\n  socket|send_(prepare|execute|query(_params)?)|set_(client_encoding|error_verbosity)|select|host|\\\\n  num_(fields|rows)|consume_input|connection_(status|reset|busy)|connect(_poll)?|convert|copy_(from|to)|\\\\n  client_encoding|close|cancel_query|tty|transaction_status|trace|insert|options|delete|dbname|untrace|\\\\n  unescape_bytea|update|pconnect|ping|port|put_line|parameter_status|prepare|version|query(_params)?|\\\\n  escape_(string|identifier|literal|bytea)|end_copy|execute|flush|free_result|last_(notice|error|oid)|\\\\n  field_(size|num|name|type(_oid)?|table|is_null|prtlen)|affected_rows|result_(status|seek|error(_field)?)|\\\\n  fetch_(object|assoc|all(_columns)?|array|row|result)|get_(notify|pid|result)|meta_data|\\\\n  lo_(seek|close|create|tell|truncate|import|open|unlink|export|write|read(_all)?)|\\\\n)\\\\\\\\b\",\"name\":\"support.function.pgsql.php\"},{\"match\":\"(?i)\\\\\\\\b(virtual|getallheaders|apache_((get|set)env|note|child_terminate|lookup_uri|response_headers|reset_timeout|request_headers|get_(version|modules)))\\\\\\\\b\",\"name\":\"support.function.php_apache.php\"},{\"match\":\"(?i)\\\\\\\\bdom_import_simplexml\\\\\\\\b\",\"name\":\"support.function.php_dom.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nftp_(\\\\n  ssl_connect|systype|site|size|set_option|nlist|nb_(continue|f?(put|get))|ch(dir|mod)|connect|cdup|close|\\\\n  delete|put|pwd|pasv|exec|quit|f(put|get)|login|alloc|rename|raw(list)?|rmdir|get(_option)?|mdtm|mkdir\\\\n)\\\\\\\\b\",\"name\":\"support.function.php_ftp.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nimap_(\\\\n  (create|delete|list|rename|scan)(mailbox)?|status|sort|subscribe|set_quota|set(flag_full|acl)|search|savebody|\\\\n  num_(recent|msg)|check|close|clearflag_full|thread|timeout|open|header(info)?|headers|append|alerts|reopen|\\\\n  8bit|unsubscribe|undelete|utf7_(decode|encode)|utf8|uid|ping|errors|expunge|qprint|gc|\\\\n  fetch(structure|header|text|mime|body)|fetch_overview|lsub|list(scan|subscribed)|last_error|\\\\n  rfc822_(parse_(headers|adrlist)|write_address)|get(subscribed|acl|mailboxes)|get_quota(root)?|\\\\n  msgno|mime_header_decode|mail_(copy|compose|move)|mail|mailboxmsginfo|binary|body(struct)?|base64\\\\n)\\\\\\\\b\",\"name\":\"support.function.php_imap.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nmssql_(\\\\n  select_db|num_(fields|rows)|next_result|connect|close|init|data_seek|pconnect|execute|query|\\\\n  field_(seek|name|type|length)|fetch_(object|field|assoc|array|row|batch)|free_(statement|result)|\\\\n  rows_affected|result|guid_string|get_last_message|min_(error|message)_severity|bind\\\\n)\\\\\\\\b\",\"name\":\"support.function.php_mssql.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nodbc_(\\\\n  statistics|specialcolumns|setoption|num_(fields|rows)|next_result|connect|columns|columnprivileges|commit|\\\\n  cursor|close(_all)?|tables|tableprivileges|do|data_source|pconnect|primarykeys|procedures|procedurecolumns|\\\\n  prepare|error(msg)?|exec(ute)?|field_(scale|num|name|type|precision|len)|foreignkeys|free_result|\\\\n  fetch_(into|object|array|row)|longreadlen|autocommit|rollback|result(_all)?|gettypeinfo|binmode\\\\n)\\\\\\\\b\",\"name\":\"support.function.php_odbc.php\"},{\"match\":\"(?i)\\\\\\\\bpreg_(split|quote|filter|last_error|replace(_callback)?|grep|match(_all)?)\\\\\\\\b\",\"name\":\"support.function.php_pcre.php\"},{\"match\":\"(?i)\\\\\\\\b(spl_(classes|object_hash|autoload(_(call|unregister|extensions|functions|register))?)|class_(implements|uses|parents)|iterator_(count|to_array|apply))\\\\\\\\b\",\"name\":\"support.function.php_spl.php\"},{\"match\":\"(?i)\\\\\\\\bzip_(close|open|entry_(name|compressionmethod|compressedsize|close|open|filesize|read)|read)\\\\\\\\b\",\"name\":\"support.function.php_zip.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nposix_(\\\\n  strerror|set(s|e?u|[ep]?g)id|ctermid|ttyname|times|isatty|initgroups|uname|errno|kill|access|\\\\n  get(sid|cwd|uid|pid|ppid|pwnam|pwuid|pgid|pgrp|euid|egid|login|rlimit|gid|grnam|groups|grgid)|\\\\n  get_last_error|mknod|mkfifo\\\\n)\\\\\\\\b\",\"name\":\"support.function.posix.php\"},{\"match\":\"(?i)\\\\\\\\bset(thread|proc)title\\\\\\\\b\",\"name\":\"support.function.proctitle.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\npspell_(\\\\n  store_replacement|suggest|save_wordlist|new(_(config|personal))?|check|clear_session|\\\\n  config_(save_repl|create|ignore|(data|dict)_dir|personal|runtogether|repl|mode)|add_to_(session|personal)\\\\n)\\\\\\\\b\",\"name\":\"support.function.pspell.php\"},{\"match\":\"(?i)\\\\\\\\breadline(_(completion_function|clear_history|callback_(handler_(install|remove)|read_char)|info|on_new_line|write_history|list_history|add_history|redisplay|read_history))?\\\\\\\\b\",\"name\":\"support.function.readline.php\"},{\"match\":\"(?i)\\\\\\\\brecode(_(string|file))?\\\\\\\\b\",\"name\":\"support.function.recode.php\"},{\"match\":\"(?i)\\\\\\\\brrd(c_disconnect|_(create|tune|info|update|error|version|first|fetch|last(update)?|restore|graph|xport))\\\\\\\\b\",\"name\":\"support.function.rrd.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  shm_((get|has|remove|put)_var|detach|attach|remove)|sem_(acquire|release|remove|get)|ftok|\\\\n  msg_((get|remove|set|stat)_queue|send|queue_exists|receive)\\\\n)\\\\\\\\b\",\"name\":\"support.function.sem.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nsession_(\\\\n  status|start|set_(save_handler|cookie_params)|save_path|name|commit|cache_(expire|limiter)|\\\\n  is_registered|id|destroy|decode|unset|unregister|encode|write_close|abort|reset|register(_shutdown)?|\\\\n  regenerate_id|get_cookie_params|module_name\\\\n)\\\\\\\\b\",\"name\":\"support.function.session.php\"},{\"match\":\"(?i)\\\\\\\\bshmop_(size|close|open|delete|write|read)\\\\\\\\b\",\"name\":\"support.function.shmop.php\"},{\"match\":\"(?i)\\\\\\\\bsimplexml_(import_dom|load_(string|file))\\\\\\\\b\",\"name\":\"support.function.simplexml.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  snmp(walk(oid)?|realwalk|get(next)?|set)|\\\\n  snmp_(set_(valueretrieval|quick_print|enum_print|oid_(numeric_print|output_format))|read_mib|\\\\n        get_(valueretrieval|quick_print))|\\\\n  snmp[23]_(set|walk|real_walk|get(next)?)\\\\n)\\\\\\\\b\",\"name\":\"support.function.snmp.php\"},{\"match\":\"(?i)\\\\\\\\b(is_soap_fault|use_soap_error_handler)\\\\\\\\b\",\"name\":\"support.function.soap.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nsocket_(\\\\n  shutdown|strerror|send(to|msg)?|set_((non)?block|option)|select|connect|close|clear_error|bind|\\\\n  create(_(pair|listen))?|cmsg_space|import_stream|write|listen|last_error|accept|recv(from|msg)?|\\\\n  read|get(peer|sock)name|get_option\\\\n)\\\\\\\\b\",\"name\":\"support.function.sockets.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nsqlite_(\\\\n  single_query|seek|has_(more|prev)|num_(fields|rows)|next|changes|column|current|close|\\\\n  create_(aggregate|function)|open|unbuffered_query|udf_(decode|encode)_binary|popen|prev|\\\\n  escape_string|error_string|exec|valid|key|query|field_name|factory|\\\\n  fetch_(string|single|column_types|object|all|array)|lib(encoding|version)|\\\\n  last_(insert_rowid|error)|array_query|rewind|busy_timeout\\\\n)\\\\\\\\b\",\"name\":\"support.function.sqlite.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nsqlsrv_(\\\\n  send_stream_data|server_info|has_rows|num_(fields|rows)|next_result|connect|configure|commit|\\\\n  client_info|close|cancel|prepare|errors|execute|query|field_metadata|fetch(_(array|object))?|\\\\n  free_stmt|rows_affected|rollback|get_(config|field)|begin_transaction\\\\n)\\\\\\\\b\",\"name\":\"support.function.sqlsrv.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nstats_(\\\\n  harmonic_mean|covariance|standard_deviation|skew|\\\\n  cdf_(noncentral_(chisquare|f)|negative_binomial|chisquare|cauchy|t|uniform|poisson|exponential|f|weibull|\\\\n       logistic|laplace|gamma|binomial|beta)|\\\\n  stat_(noncentral_t|correlation|innerproduct|independent_t|powersum|percentile|paired_t|gennch|binomial_coef)|\\\\n  dens_(normal|negative_binomial|chisquare|cauchy|t|pmf_(hypergeometric|poisson|binomial)|exponential|f|\\\\n        weibull|logistic|laplace|gamma|beta)|\\\\n  den_uniform|variance|kurtosis|absolute_deviation|\\\\n  rand_(setall|phrase_to_seeds|ranf|get_seeds|\\\\n        gen_(noncentral_[ft]|noncenral_chisquare|normal|chisquare|t|int|\\\\n             i(uniform|poisson|binomial(_negative)?)|exponential|f(uniform)?|gamma|beta))\\\\n)\\\\\\\\b\",\"name\":\"support.function.stats.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  set_socket_blocking|\\\\n  stream_(socket_(shutdown|sendto|server|client|pair|enable_crypto|accept|recvfrom|get_name)|\\\\n    set_(chunk_size|timeout|(read|write)_buffer|blocking)|select|notification_callback|supports_lock|\\\\n    context_(set_(option|default|params)|create|get_(options|default|params))|copy_to_stream|is_local|\\\\n    encoding|filter_(append|prepend|register|remove)|wrapper_((un)?register|restore)|\\\\n    resolve_include_path|register_wrapper|get_(contents|transports|filters|wrappers|line|meta_data)|\\\\n    bucket_(new|prepend|append|make_writeable)\\\\n  )\\\\n)\\\\\\\\b\",\"name\":\"support.function.streamsfuncs.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  money_format|md5(_file)?|metaphone|bin2hex|sscanf|sha1(_file)?|\\\\n  str(str|c?spn|n(at)?(case)?cmp|chr|coll|(case)?cmp|to(upper|lower)|tok|tr|istr|pos|pbrk|len|rchr|ri?pos|rev)|\\\\n  str_(getcsv|ireplace|pad|repeat|replace|rot13|shuffle|split|word_count)|\\\\n  strip(c?slashes|os)|strip_tags|similar_text|soundex|substr(_(count|compare|replace))?|setlocale|\\\\n  html(specialchars(_decode)?|entities)|html_entity_decode|hex2bin|hebrev(c)?|number_format|nl2br|nl_langinfo|\\\\n  chop|chunk_split|chr|convert_(cyr_string|uu(decode|encode))|count_chars|crypt|crc32|trim|implode|ord|\\\\n  uc(first|words)|join|parse_str|print(f)?|echo|explode|v?[fs]?printf|quoted_printable_(decode|encode)|\\\\n  quotemeta|wordwrap|lcfirst|[lr]trim|localeconv|levenshtein|addc?slashes|get_html_translation_table\\\\n)\\\\\\\\b\",\"name\":\"support.function.string.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nsybase_(\\\\n  set_message_handler|select_db|num_(fields|rows)|connect|close|deadlock_retry_count|data_seek|\\\\n  unbuffered_query|pconnect|query|field_seek|fetch_(object|field|assoc|array|row)|free_result|\\\\n  affected_rows|result|get_last_message|min_(client|error|message|server)_severity\\\\n)\\\\\\\\b\",\"name\":\"support.function.sybase.php\"},{\"match\":\"(?i)\\\\\\\\b(taint|is_tainted|untaint)\\\\\\\\b\",\"name\":\"support.function.taint.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  tidy_((get|set)opt|set_encoding|save_config|config_count|clean_repair|is_(xhtml|xml)|diagnose|\\\\n        (access|error|warning)_count|load_config|reset_config|(parse|repair)_(string|file)|\\\\n        get_(status|html(_ver)?|head|config|output|opt_doc|root|release|body))|\\\\n  ob_tidyhandler\\\\n)\\\\\\\\b\",\"name\":\"support.function.tidy.php\"},{\"match\":\"(?i)\\\\\\\\btoken_(name|get_all)\\\\\\\\b\",\"name\":\"support.function.tokenizer.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\ntrader_(\\\\n  stoch(f|r|rsi)?|stddev|sin(h)?|sum|sub|set_(compat|unstable_period)|sqrt|sar(ext)?|sma|\\\\n  ht_(sine|trend(line|mode)|dc(period|phase)|phasor)|natr|cci|cos(h)?|correl|\\\\n  cdl(shootingstar|shortline|sticksandwich|stalledpattern|spinningtop|separatinglines|\\\\n      hikkake(mod)?|highwave|homingpigeon|hangingman|harami(cross)?|hammer|concealbabyswall|\\\\n      counterattack|closingmarubozu|thrusting|tasukigap|takuri|tristar|inneck|invertedhammer|\\\\n      identical3crows|2crows|onneck|doji(star)?|darkcloudcover|dragonflydoji|unique3river|\\\\n      upsidegap2crows|3(starsinsouth|inside|outside|whitesoldiers|linestrike|blackcrows)|\\\\n      piercing|engulfing|evening(doji)?star|kicking(bylength)?|longline|longleggeddoji|\\\\n      ladderbottom|advanceblock|abandonedbaby|risefall3methods|rickshawman|gapsidesidewhite|\\\\n      gravestonedoji|xsidegap3methods|morning(doji)?star|mathold|matchinglow|marubozu|\\\\n      belthold|breakaway)|\\\\n  ceil|cmo|tsf|typprice|t3|tema|tan(h)?|trix|trima|trange|obv|div|dema|dx|ultosc|ppo|\\\\n  plus_d[im]|errno|exp|ema|var|kama|floor|wclprice|willr|wma|ln|log10|bop|beta|bbands|\\\\n  linearreg(_(slope|intercept|angle))?|asin|acos|atan|atr|adosc|ad|add|adx(r)?|apo|avgprice|\\\\n  aroon(osc)?|rsi|roc|rocp|rocr(100)?|get_(compat|unstable_period)|min(index)?|minus_d[im]|\\\\n  minmax(index)?|mid(point|price)|mom|mult|medprice|mfi|macd(ext|fix)?|mavp|max(index)?|ma(ma)?\\\\n)\\\\\\\\b\",\"name\":\"support.function.trader.php\"},{\"match\":\"(?i)\\\\\\\\buopz_(copy|compose|implement|overload|delete|undefine|extend|function|flags|restore|rename|redefine|backup)\\\\\\\\b\",\"name\":\"support.function.uopz.php\"},{\"match\":\"(?i)\\\\\\\\b(http_build_query|(raw)?url(decode|encode)|parse_url|get_(headers|meta_tags)|base64_(decode|encode))\\\\\\\\b\",\"name\":\"support.function.url.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  strval|settype|serialize|(bool|double|float)val|debug_zval_dump|intval|import_request_variables|isset|\\\\n  is_(scalar|string|null|numeric|callable|int(eger)?|object|double|float|long|array|resource|real|bool)|\\\\n  unset|unserialize|print_r|empty|var_(dump|export)|gettype|get_(defined_vars|resource_type)\\\\n)\\\\\\\\b\",\"name\":\"support.function.var.php\"},{\"match\":\"(?i)\\\\\\\\bwddx_(serialize_(value|vars)|deserialize|packet_(start|end)|add_vars)\\\\\\\\b\",\"name\":\"support.function.wddx.php\"},{\"match\":\"(?i)\\\\\\\\bxhprof_(sample_)?(disable|enable)\\\\\\\\b\",\"name\":\"support.function.xhprof.php\"},{\"match\":\"(?xi)\\\\n\\\\\\\\b\\\\n(\\\\n  utf8_(decode|encode)|\\\\n  xml_(set_((notation|(end|start)_namespace|unparsed_entity)_decl_handler|\\\\n            (character_data|default|element|external_entity_ref|processing_instruction)_handler|object)|\\\\n       parse(_into_struct)?|parser_((get|set)_option|create(_ns)?|free)|error_string|\\\\n       get_(current_((column|line)_number|byte_index)|error_code))\\\\n)\\\\\\\\b\",\"name\":\"support.function.xml.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nxmlrpc_(\\\\n  server_(call_method|create|destroy|add_introspection_data|register_(introspection_callback|method))|\\\\n  is_fault|decode(_request)?|parse_method_descriptions|encode(_request)?|(get|set)_type\\\\n)\\\\\\\\b\",\"name\":\"support.function.xmlrpc.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\nxmlwriter_(\\\\n  (end|start|write)_(comment|cdata|dtd(_(attlist|entity|element))?|document|pi|attribute|element)|\\\\n  (start|write)_(attribute|element)_ns|write_raw|set_indent(_string)?|text|output_memory|open_(memory|uri)|\\\\n  full_end_element|flush|\\\\n)\\\\\\\\b\",\"name\":\"support.function.xmlwriter.php\"},{\"match\":\"(?xi)\\\\\\\\b\\\\n(\\\\n  zlib_(decode|encode|get_coding_type)|readgzfile|\\\\n  gz(seek|compress|close|tell|inflate|open|decode|deflate|uncompress|puts|passthru|encode|eof|file|\\\\n     write|rewind|read|getc|getss?)\\\\n)\\\\\\\\b\",\"name\":\"support.function.zlib.php\"},{\"match\":\"(?i)\\\\\\\\bis_int(eger)?\\\\\\\\b\",\"name\":\"support.function.alias.php\"}]},\"switch_statement\":{\"patterns\":[{\"match\":\"\\\\\\\\s+(?=switch\\\\\\\\b)\"},{\"begin\":\"\\\\\\\\bswitch\\\\\\\\b(?!\\\\\\\\s*\\\\\\\\(.*\\\\\\\\)\\\\\\\\s*:)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.switch.php\"}},\"end\":\"}|(?=\\\\\\\\?>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.section.switch-block.end.bracket.curly.php\"}},\"name\":\"meta.switch-statement.php\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.switch-expression.begin.bracket.round.php\"}},\"end\":\"\\\\\\\\)|(?=\\\\\\\\?>)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.switch-expression.end.bracket.round.php\"}},\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.section.switch-block.begin.bracket.curly.php\"}},\"end\":\"(?=}|\\\\\\\\?>)\",\"patterns\":[{\"include\":\"$self\"}]}]}]},\"ternary_expression\":{\"begin\":\"\\\\\\\\?\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.ternary.php\"}},\"end\":\"(?<!:):(?!:)\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.ternary.php\"}},\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"$self\"}]}},\"match\":\"(?i)^\\\\\\\\s*([a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)\\\\\\\\s*(?=:(?!:))\"},{\"include\":\"$self\"}]},\"ternary_shorthand\":{\"match\":\"\\\\\\\\?:\",\"name\":\"keyword.operator.ternary.php\"},\"use-inner\":{\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\"(?i)\\\\\\\\b(as)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.use-as.php\"}},\"end\":\"(?i)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*\",\"endCaptures\":{\"0\":{\"name\":\"entity.other.alias.php\"}}},{\"include\":\"#class-name\"},{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.php\"}]},\"var_basic\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.php\"}},\"match\":\"(?i)(\\\\\\\\$+)[a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*\",\"name\":\"variable.other.php\"}]},\"var_global\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.php\"}},\"match\":\"(\\\\\\\\$)((_(COOKIE|FILES|GET|POST|REQUEST))|arg(v|c))\\\\\\\\b\",\"name\":\"variable.other.global.php\"},\"var_global_safer\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.php\"}},\"match\":\"(\\\\\\\\$)((GLOBALS|_(ENV|SERVER|SESSION)))\",\"name\":\"variable.other.global.safer.php\"},\"var_language\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.php\"}},\"match\":\"(\\\\\\\\$)this\\\\\\\\b\",\"name\":\"variable.language.this.php\"},\"variable-name\":{\"patterns\":[{\"include\":\"#var_global\"},{\"include\":\"#var_global_safer\"},{\"captures\":{\"1\":{\"name\":\"variable.other.php\"},\"2\":{\"name\":\"punctuation.definition.variable.php\"},\"4\":{\"name\":\"keyword.operator.class.php\"},\"5\":{\"name\":\"variable.other.property.php\"},\"6\":{\"name\":\"punctuation.section.array.begin.php\"},\"7\":{\"name\":\"constant.numeric.index.php\"},\"8\":{\"name\":\"variable.other.index.php\"},\"9\":{\"name\":\"punctuation.definition.variable.php\"},\"10\":{\"name\":\"string.unquoted.index.php\"},\"11\":{\"name\":\"punctuation.section.array.end.php\"}},\"match\":\"(?xi)\\\\n((\\\\\\\\$)(?<name>[a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*))\\\\\\\\s*\\\\n(?:\\\\n  (\\\\\\\\??->)\\\\\\\\s*(\\\\\\\\g<name>)\\\\n  |\\\\n  (\\\\\\\\[)(?:(\\\\\\\\d+)|((\\\\\\\\$)\\\\\\\\g<name>)|([a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*))(\\\\\\\\])\\\\n)?\"},{\"captures\":{\"1\":{\"name\":\"variable.other.php\"},\"2\":{\"name\":\"punctuation.definition.variable.php\"},\"4\":{\"name\":\"punctuation.definition.variable.php\"}},\"match\":\"(?i)((\\\\\\\\\\${)(?<name>[a-z_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}][a-z0-9_\\\\\\\\x{7f}-\\\\\\\\x{10ffff}]*)(}))\"}]},\"variables\":{\"patterns\":[{\"include\":\"#var_language\"},{\"include\":\"#var_global\"},{\"include\":\"#var_global_safer\"},{\"include\":\"#var_basic\"},{\"begin\":\"\\\\\\\\\\${(?=.*?})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.variable.php\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.variable.php\"}},\"patterns\":[{\"include\":\"$self\"}]}]}},\"scopeName\":\"source.php\",\"embeddedLangs\":[\"html\",\"xml\",\"sql\",\"javascript\",\"json\",\"css\"]}`)),l=[...e,...n,...t,...a,...r,...i,p];export{l as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/HeqvyViL.js",
    "content": "import{d as n,a4 as c,b as r,C as d,g as i}from\"./CU_MfyYc.js\";const b=n({__name:\"index\",setup(p){const o=c(),t=r(),e=t.tabIds;if(e.length>0){const s=e[0],a=t.tabs[s];o.push({path:`/backtest/${a.id}`})}else t.addTab();return(s,a)=>(i(),d(\"div\"))}});export{b as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/HnGAYVZD.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"ZenScript\",\"fileTypes\":[\"zs\"],\"name\":\"zenscript\",\"patterns\":[{\"comment\":\"numbers\",\"match\":\"\\\\\\\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\\\\\\\.?[0-9]*)|(\\\\\\\\.[0-9]+))((e|E)(\\\\\\\\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?\\\\\\\\b\",\"name\":\"constant.numeric.zenscript\"},{\"comment\":\"prefixedNumbers\",\"match\":\"\\\\\\\\b\\\\\\\\-?(0b|0x|0o|0B|0X|0O)(0|[1-9a-fA-F][0-9a-fA-F_]*)[a-zA-Z_]*\\\\\\\\b\",\"name\":\"constant.numeric.zenscript\"},{\"include\":\"#code\"},{\"comment\":\"arrays\",\"match\":\"\\\\\\\\b((?:[a-z]\\\\\\\\w*\\\\\\\\.)*[A-Z]+\\\\\\\\w*)(?=\\\\\\\\[)\",\"name\":\"storage.type.object.array.zenscript\"}],\"repository\":{\"brackets\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.zenscript\"},\"2\":{\"name\":\"keyword.other.zenscript\"},\"3\":{\"name\":\"keyword.control.zenscript\"},\"4\":{\"name\":\"variable.other.zenscript\"},\"5\":{\"name\":\"keyword.control.zenscript\"},\"6\":{\"name\":\"constant.numeric.zenscript\"},\"7\":{\"name\":\"keyword.control.zenscript\"}},\"comment\":\"items and blocks\",\"match\":\"(<)\\\\\\\\b(.*?)(:(.*?(:(\\\\\\\\*|\\\\\\\\d+)?)?)?)(>)\",\"name\":\"keyword.other.zenscript\"}]},\"class\":{\"captures\":{\"1\":{\"name\":\"storage.type.zenscript\"},\"2\":{\"name\":\"entity.name.type.class.zenscript\"}},\"comment\":\"class\",\"match\":\"(zenClass)\\\\\\\\s+(\\\\\\\\w+)\",\"name\":\"meta.class.zenscript\"},\"code\":{\"patterns\":[{\"include\":\"#class\"},{\"include\":\"#functions\"},{\"include\":\"#dots\"},{\"include\":\"#quotes\"},{\"include\":\"#brackets\"},{\"include\":\"#comments\"},{\"include\":\"#var\"},{\"include\":\"#keywords\"},{\"include\":\"#constants\"},{\"include\":\"#operators\"}]},\"comments\":{\"patterns\":[{\"comment\":\"inline comments\",\"match\":\"//[^\\\\n]*\",\"name\":\"comment.line.double=slash\"},{\"begin\":\"\\\\\\\\/\\\\\\\\*\",\"beginCaptures\":{\"0\":{\"name\":\"comment.block\"}},\"comment\":\"block comments\",\"end\":\"\\\\\\\\*\\\\\\\\/\",\"endCaptures\":{\"0\":{\"name\":\"comment.block\"}},\"name\":\"comment.block\"}]},\"dots\":{\"captures\":{\"1\":{\"name\":\"storage.type.zenscript\"},\"2\":{\"name\":\"keyword.control.zenscript\"},\"5\":{\"name\":\"keyword.control.zenscript\"}},\"comment\":\"dots\",\"match\":\"\\\\\\\\b(\\\\\\\\w+)(\\\\\\\\.)(\\\\\\\\w+)((\\\\\\\\.)(\\\\\\\\w+))*\",\"name\":\"plain.text.zenscript\"},\"functions\":{\"captures\":{\"0\":{\"name\":\"storage.type.function.zenscript\"},\"1\":{\"name\":\"entity.name.function.zenscript\"}},\"comment\":\"functions\",\"match\":\"function\\\\\\\\s+([A-Za-z_$][\\\\\\\\w$]*)\\\\\\\\s*(?=\\\\\\\\()\",\"name\":\"meta.function.zenscript\"},\"keywords\":{\"patterns\":[{\"comment\":\"statement keywords\",\"match\":\"\\\\\\\\b(instanceof|get|implements|set|import|function|override|const|if|else|do|while|for|throw|panic|lock|try|catch|finally|return|break|continue|switch|case|default|in|is|as|match|throws|super|new)\\\\\\\\b\",\"name\":\"keyword.control.zenscript\"},{\"comment\":\"storage keywords\",\"match\":\"\\\\\\\\b(zenClass|zenConstructor|alias|class|interface|enum|struct|expand|variant|set|void|bool|byte|sbyte|short|ushort|int|uint|long|ulong|usize|float|double|char|string)\\\\\\\\b\",\"name\":\"storage.type.zenscript\"},{\"comment\":\"modifier keywords\",\"match\":\"\\\\\\\\b(variant|abstract|final|private|public|export|internal|static|protected|implicit|virtual|extern|immutable)\\\\\\\\b\",\"name\":\"storage.modifier.zenscript\"},{\"comment\":\"annotation keywords\",\"match\":\"\\\\\\\\b(Native|Precondition)\\\\\\\\b\",\"name\":\"entity.other.attribute-name\"},{\"comment\":\"language keywords\",\"match\":\"\\\\\\\\b(null|true|false)\\\\\\\\b\",\"name\":\"constant.language\"}]},\"operators\":{\"patterns\":[{\"comment\":\"math operators\",\"match\":\"\\\\\\\\b(\\\\\\\\.|\\\\\\\\.\\\\\\\\.|\\\\\\\\.\\\\\\\\.\\\\\\\\.|,|\\\\\\\\+|\\\\\\\\+=|\\\\\\\\+\\\\\\\\+|-|-=|--|~|~=|\\\\\\\\*|\\\\\\\\*=|/|/=|%|%=|\\\\\\\\||\\\\\\\\|=|\\\\\\\\|\\\\\\\\||&|&=|&&|\\\\\\\\^|\\\\\\\\^=|\\\\\\\\?|\\\\\\\\?\\\\\\\\.|\\\\\\\\?\\\\\\\\?|<|<=|<<|<<=|>|>=|>>|>>=|>>>|>>>=|=>|=|==|===|!|!=|!==|\\\\\\\\$|\\`)\\\\\\\\b\",\"name\":\"keyword.control\"},{\"comment\":\"colons\",\"match\":\"\\\\\\\\b(;|:)\\\\\\\\b\",\"name\":\"keyword.control\"}]},\"quotes\":{\"patterns\":[{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.zenscript\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.zenscript\"}},\"name\":\"string.quoted.double.zenscript\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.zenscript\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.zenscript\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.zenscript\"}},\"name\":\"string.quoted.single.zenscript\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.zenscript\"}]}]},\"var\":{\"comment\":\"var\",\"match\":\"\\\\\\\\b(val|var)\\\\\\\\b\",\"name\":\"storage.type\"}},\"scopeName\":\"source.zenscript\"}`)),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/HzYwdGDm.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"HashiCorp HCL\",\"fileTypes\":[\"hcl\"],\"name\":\"hcl\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#attribute_definition\"},{\"include\":\"#block\"},{\"include\":\"#expressions\"}],\"repository\":{\"attribute_access\":{\"begin\":\"\\\\\\\\.(?!\\\\\\\\*)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.accessor.hcl\"}},\"comment\":\"Matches traversal attribute access such as .attr\",\"end\":\"[[:alpha:]][\\\\\\\\w-]*|\\\\\\\\d*\",\"endCaptures\":{\"0\":{\"patterns\":[{\"comment\":\"Attribute name\",\"match\":\"(?!null|false|true)[[:alpha:]][\\\\\\\\w-]*\",\"name\":\"variable.other.member.hcl\"},{\"comment\":\"Optional attribute index\",\"match\":\"\\\\\\\\d+\",\"name\":\"constant.numeric.integer.hcl\"}]}}},\"attribute_definition\":{\"captures\":{\"1\":{\"name\":\"punctuation.section.parens.begin.hcl\"},\"2\":{\"name\":\"variable.other.readwrite.hcl\"},\"3\":{\"name\":\"punctuation.section.parens.end.hcl\"},\"4\":{\"name\":\"keyword.operator.assignment.hcl\"}},\"comment\":\"Identifier \\\\\"=\\\\\" with optional parens\",\"match\":\"(\\\\\\\\()?(\\\\\\\\b(?!null\\\\\\\\b|false\\\\\\\\b|true\\\\\\\\b)[[:alpha:]][[:alnum:]_-]*)(\\\\\\\\))?\\\\\\\\s*(\\\\\\\\=(?!\\\\\\\\=|\\\\\\\\>))\\\\\\\\s*\",\"name\":\"variable.declaration.hcl\"},\"attribute_splat\":{\"begin\":\"\\\\\\\\.\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.accessor.hcl\"}},\"comment\":\"Legacy attribute-only splat\",\"end\":\"\\\\\\\\*\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.splat.hcl\"}}},\"block\":{\"begin\":\"([\\\\\\\\w][\\\\\\\\-\\\\\\\\w]*)(([^\\\\\\\\S\\\\\\\\r\\\\\\\\n]+([\\\\\\\\w][\\\\\\\\-_\\\\\\\\w]*|\\\\\\\\\\\\\"[^\\\\\\\\\\\\\"\\\\\\\\r\\\\\\\\n]*\\\\\\\\\\\\\"))*)[^\\\\\\\\S\\\\\\\\r\\\\\\\\n]*(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"comment\":\"Block type\",\"match\":\"\\\\\\\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\\\\\\\b\",\"name\":\"entity.name.type.hcl\"}]},\"2\":{\"patterns\":[{\"comment\":\"Block label (String Literal)\",\"match\":\"\\\\\\\\\\\\\"[^\\\\\\\\\\\\\"\\\\\\\\r\\\\\\\\n]*\\\\\\\\\\\\\"\",\"name\":\"variable.other.enummember.hcl\"},{\"comment\":\"Block label (Identifier)\",\"match\":\"[[:alpha:]][[:alnum:]_-]*\",\"name\":\"variable.other.enummember.hcl\"}]},\"5\":{\"name\":\"punctuation.section.block.begin.hcl\"}},\"comment\":\"This will match HCL blocks like `thing1 \\\\\"one\\\\\" \\\\\"two\\\\\" {` or `thing2 {`\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.hcl\"}},\"name\":\"meta.block.hcl\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#attribute_definition\"},{\"include\":\"#expressions\"},{\"include\":\"#block\"}]},\"block_inline_comments\":{\"begin\":\"/\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.hcl\"}},\"comment\":\"Inline comments start with the /* sequence and end with the */ sequence, and may have any characters within except the ending sequence. An inline comment is considered equivalent to a whitespace sequence\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.hcl\"},\"brackets\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.brackets.begin.hcl\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.brackets.end.hcl\"}},\"patterns\":[{\"comment\":\"Splat operator\",\"match\":\"\\\\\\\\*\",\"name\":\"keyword.operator.splat.hcl\"},{\"include\":\"#comma\"},{\"include\":\"#comments\"},{\"include\":\"#inline_for_expression\"},{\"include\":\"#inline_if_expression\"},{\"include\":\"#expressions\"},{\"include\":\"#local_identifiers\"}]},\"char_escapes\":{\"comment\":\"Character Escapes\",\"match\":\"\\\\\\\\\\\\\\\\[nrt\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\u(\\\\\\\\h{8}|\\\\\\\\h{4})\",\"name\":\"constant.character.escape.hcl\"},\"comma\":{\"comment\":\"Commas - used in certain expressions\",\"match\":\"\\\\\\\\,\",\"name\":\"punctuation.separator.hcl\"},\"comments\":{\"patterns\":[{\"include\":\"#hash_line_comments\"},{\"include\":\"#double_slash_line_comments\"},{\"include\":\"#block_inline_comments\"}]},\"double_slash_line_comments\":{\"begin\":\"//\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.hcl\"}},\"comment\":\"Line comments start with // sequence and end with the next newline sequence. A line comment is considered equivalent to a newline sequence\",\"end\":\"$\\\\\\\\n?\",\"name\":\"comment.line.double-slash.hcl\"},\"expressions\":{\"patterns\":[{\"include\":\"#literal_values\"},{\"include\":\"#operators\"},{\"include\":\"#tuple_for_expression\"},{\"include\":\"#object_for_expression\"},{\"include\":\"#brackets\"},{\"include\":\"#objects\"},{\"include\":\"#attribute_access\"},{\"include\":\"#attribute_splat\"},{\"include\":\"#functions\"},{\"include\":\"#parens\"}]},\"for_expression_body\":{\"patterns\":[{\"comment\":\"in keyword\",\"match\":\"\\\\\\\\bin\\\\\\\\b\",\"name\":\"keyword.operator.word.hcl\"},{\"comment\":\"if keyword\",\"match\":\"\\\\\\\\bif\\\\\\\\b\",\"name\":\"keyword.control.conditional.hcl\"},{\"match\":\"\\\\\\\\:\",\"name\":\"keyword.operator.hcl\"},{\"include\":\"#expressions\"},{\"include\":\"#comments\"},{\"include\":\"#comma\"},{\"include\":\"#local_identifiers\"}]},\"functions\":{\"begin\":\"([:\\\\\\\\-\\\\\\\\w]+)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"match\":\"\\\\\\\\b[[:alpha:]][\\\\\\\\w_-]*::([[:alpha:]][\\\\\\\\w_-]*::)?[[:alpha:]][\\\\\\\\w_-]*\\\\\\\\b\",\"name\":\"support.function.namespaced.hcl\"},{\"match\":\"\\\\\\\\b[[:alpha:]][\\\\\\\\w_-]*\\\\\\\\b\",\"name\":\"support.function.builtin.hcl\"}]},\"2\":{\"name\":\"punctuation.section.parens.begin.hcl\"}},\"comment\":\"Built-in function calls\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.hcl\"}},\"name\":\"meta.function-call.hcl\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#expressions\"},{\"include\":\"#comma\"}]},\"hash_line_comments\":{\"begin\":\"#\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.hcl\"}},\"comment\":\"Line comments start with # sequence and end with the next newline sequence. A line comment is considered equivalent to a newline sequence\",\"end\":\"$\\\\\\\\n?\",\"name\":\"comment.line.number-sign.hcl\"},\"hcl_type_keywords\":{\"comment\":\"Type keywords known to HCL.\",\"match\":\"\\\\\\\\b(any|string|number|bool|list|set|map|tuple|object)\\\\\\\\b\",\"name\":\"storage.type.hcl\"},\"heredoc\":{\"begin\":\"(\\\\\\\\<\\\\\\\\<\\\\\\\\-?)\\\\\\\\s*(\\\\\\\\w+)\\\\\\\\s*$\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.heredoc.hcl\"},\"2\":{\"name\":\"keyword.control.heredoc.hcl\"}},\"comment\":\"String Heredoc\",\"end\":\"^\\\\\\\\s*\\\\\\\\2\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.heredoc.hcl\"}},\"name\":\"string.unquoted.heredoc.hcl\",\"patterns\":[{\"include\":\"#string_interpolation\"}]},\"inline_for_expression\":{\"captures\":{\"1\":{\"name\":\"keyword.control.hcl\"},\"2\":{\"patterns\":[{\"match\":\"\\\\\\\\=\\\\\\\\>\",\"name\":\"storage.type.function.hcl\"},{\"include\":\"#for_expression_body\"}]}},\"match\":\"(for)\\\\\\\\b(.*)\\\\\\\\n\"},\"inline_if_expression\":{\"begin\":\"(if)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.conditional.hcl\"}},\"end\":\"\\\\\\\\n\",\"patterns\":[{\"include\":\"#expressions\"},{\"include\":\"#comments\"},{\"include\":\"#comma\"},{\"include\":\"#local_identifiers\"}]},\"language_constants\":{\"comment\":\"Language Constants\",\"match\":\"\\\\\\\\b(true|false|null)\\\\\\\\b\",\"name\":\"constant.language.hcl\"},\"literal_values\":{\"patterns\":[{\"include\":\"#numeric_literals\"},{\"include\":\"#language_constants\"},{\"include\":\"#string_literals\"},{\"include\":\"#heredoc\"},{\"include\":\"#hcl_type_keywords\"}]},\"local_identifiers\":{\"comment\":\"Local Identifiers\",\"match\":\"\\\\\\\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\\\\\\\b\",\"name\":\"variable.other.readwrite.hcl\"},\"numeric_literals\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.exponent.hcl\"}},\"comment\":\"Integer, no fraction, optional exponent\",\"match\":\"\\\\\\\\b\\\\\\\\d+([Ee][+-]?)\\\\\\\\d+\\\\\\\\b\",\"name\":\"constant.numeric.float.hcl\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.decimal.hcl\"},\"2\":{\"name\":\"punctuation.separator.exponent.hcl\"}},\"comment\":\"Integer, fraction, optional exponent\",\"match\":\"\\\\\\\\b\\\\\\\\d+(\\\\\\\\.)\\\\\\\\d+(?:([Ee][+-]?)\\\\\\\\d+)?\\\\\\\\b\",\"name\":\"constant.numeric.float.hcl\"},{\"comment\":\"Integers\",\"match\":\"\\\\\\\\b\\\\\\\\d+\\\\\\\\b\",\"name\":\"constant.numeric.integer.hcl\"}]},\"object_for_expression\":{\"begin\":\"(\\\\\\\\{)\\\\\\\\s?(for)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.braces.begin.hcl\"},\"2\":{\"name\":\"keyword.control.hcl\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.braces.end.hcl\"}},\"patterns\":[{\"match\":\"\\\\\\\\=\\\\\\\\>\",\"name\":\"storage.type.function.hcl\"},{\"include\":\"#for_expression_body\"}]},\"object_key_values\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#literal_values\"},{\"include\":\"#operators\"},{\"include\":\"#tuple_for_expression\"},{\"include\":\"#object_for_expression\"},{\"include\":\"#heredoc\"},{\"include\":\"#functions\"}]},\"objects\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.braces.begin.hcl\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.braces.end.hcl\"}},\"name\":\"meta.braces.hcl\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#objects\"},{\"include\":\"#inline_for_expression\"},{\"include\":\"#inline_if_expression\"},{\"captures\":{\"1\":{\"name\":\"meta.mapping.key.hcl variable.other.readwrite.hcl\"},\"2\":{\"name\":\"keyword.operator.assignment.hcl\"}},\"comment\":\"Literal, named object key\",\"match\":\"\\\\\\\\b((?!null|false|true)[[:alpha:]][[:alnum:]_-]*)\\\\\\\\s*(\\\\\\\\=(?!=))\\\\\\\\s*\"},{\"captures\":{\"1\":{\"name\":\"meta.mapping.key.hcl string.quoted.double.hcl\"},\"2\":{\"name\":\"punctuation.definition.string.begin.hcl\"},\"3\":{\"name\":\"punctuation.definition.string.end.hcl\"},\"4\":{\"name\":\"keyword.operator.hcl\"}},\"comment\":\"String object key\",\"match\":\"^\\\\\\\\s*((\\\\\").*(\\\\\"))\\\\\\\\s*(\\\\\\\\=)\\\\\\\\s*\"},{\"begin\":\"^\\\\\\\\s*\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.hcl\"}},\"comment\":\"Computed object key (any expression between parens)\",\"end\":\"(\\\\\\\\))\\\\\\\\s*(=|:)\\\\\\\\s*\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.parens.end.hcl\"},\"2\":{\"name\":\"keyword.operator.hcl\"}},\"name\":\"meta.mapping.key.hcl\",\"patterns\":[{\"include\":\"#attribute_access\"},{\"include\":\"#attribute_splat\"}]},{\"include\":\"#object_key_values\"}]},\"operators\":{\"patterns\":[{\"match\":\"\\\\\\\\>\\\\\\\\=\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\\\\\<\\\\\\\\=\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\\\\\=\\\\\\\\=\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\\\\\!\\\\\\\\=\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\\\\\+\",\"name\":\"keyword.operator.arithmetic.hcl\"},{\"match\":\"\\\\\\\\-\",\"name\":\"keyword.operator.arithmetic.hcl\"},{\"match\":\"\\\\\\\\*\",\"name\":\"keyword.operator.arithmetic.hcl\"},{\"match\":\"\\\\\\\\/\",\"name\":\"keyword.operator.arithmetic.hcl\"},{\"match\":\"\\\\\\\\%\",\"name\":\"keyword.operator.arithmetic.hcl\"},{\"match\":\"\\\\\\\\&\\\\\\\\&\",\"name\":\"keyword.operator.logical.hcl\"},{\"match\":\"\\\\\\\\|\\\\\\\\|\",\"name\":\"keyword.operator.logical.hcl\"},{\"match\":\"\\\\\\\\!\",\"name\":\"keyword.operator.logical.hcl\"},{\"match\":\"\\\\\\\\>\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\\\\\<\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\\\\\?\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\\\\\:\",\"name\":\"keyword.operator.hcl\"},{\"match\":\"\\\\\\\\=\\\\\\\\>\",\"name\":\"keyword.operator.hcl\"}]},\"parens\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.hcl\"}},\"comment\":\"Parens - matched *after* function syntax\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.hcl\"}},\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#expressions\"}]},\"string_interpolation\":{\"begin\":\"(?<![%$])([%$]{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.interpolation.begin.hcl\"}},\"comment\":\"String interpolation\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"keyword.other.interpolation.end.hcl\"}},\"name\":\"meta.interpolation.hcl\",\"patterns\":[{\"comment\":\"Trim left whitespace\",\"match\":\"\\\\\\\\~\\\\\\\\s\",\"name\":\"keyword.operator.template.left.trim.hcl\"},{\"comment\":\"Trim right whitespace\",\"match\":\"\\\\\\\\s\\\\\\\\~\",\"name\":\"keyword.operator.template.right.trim.hcl\"},{\"comment\":\"if/else/endif and for/in/endfor directives\",\"match\":\"\\\\\\\\b(if|else|endif|for|in|endfor)\\\\\\\\b\",\"name\":\"keyword.control.hcl\"},{\"include\":\"#expressions\"},{\"include\":\"#local_identifiers\"}]},\"string_literals\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.hcl\"}},\"comment\":\"Strings\",\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.hcl\"}},\"name\":\"string.quoted.double.hcl\",\"patterns\":[{\"include\":\"#string_interpolation\"},{\"include\":\"#char_escapes\"}]},\"tuple_for_expression\":{\"begin\":\"(\\\\\\\\[)\\\\\\\\s?(for)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.section.brackets.begin.hcl\"},\"2\":{\"name\":\"keyword.control.hcl\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.brackets.end.hcl\"}},\"patterns\":[{\"include\":\"#for_expression_body\"}]}},\"scopeName\":\"source.hcl\"}')),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/IconCSS.RN4HczVp.css",
    "content": "span[data-v-41e8d397]{background-color:currentColor;display:inline-block;-webkit-mask-image:var(--efdb04fa);mask-image:var(--efdb04fa);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle}\n"
  },
  {
    "path": "jesse/static/_nuxt/IuBKFhSY.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Logo\",\"fileTypes\":[],\"name\":\"logo\",\"patterns\":[{\"match\":\"^to [\\\\\\\\w.]+\",\"name\":\"entity.name.function.logo\"},{\"match\":\"continue|do\\\\\\\\.until|do\\\\\\\\.while|end|for(each)?|if(else|falsetrue|)|repeat|stop|until\",\"name\":\"keyword.control.logo\"},{\"match\":\"\\\\\\\\b(\\\\\\\\.defmacro|\\\\\\\\.eq|\\\\\\\\.macro|\\\\\\\\.maybeoutput|\\\\\\\\.setbf|\\\\\\\\.setfirst|\\\\\\\\.setitem|\\\\\\\\.setsegmentsize|allopen|allowgetset|and|apply|arc|arctan|arity|array|arrayp|arraytolist|ascii|ashift|back|background|backslashedp|beforep|bitand|bitnot|bitor|bitxor|buried|buriedp|bury|buryall|buryname|butfirst|butfirsts|butlast|bye|cascade|case|caseignoredp|catch|char|clean|clearscreen|cleartext|close|closeall|combine|cond|contents|copydef|cos|count|crossmap|cursor|define|definedp|dequeue|difference|dribble|edall|edit|editfile|edn|edns|edpl|edpls|edps|emptyp|eofp|epspict|equalp|erall|erase|erasefile|ern|erns|erpl|erpls|erps|erract|error|exp|fence|filep|fill|filter|find|first|firsts|forever|form|forward|fput|fullprintp|fullscreen|fulltext|gc|gensym|global|goto|gprop|greaterp|heading|help|hideturtle|home|ignore|int|invoke|iseq|item|keyp|label|last|left|lessp|list|listp|listtoarray|ln|load|loadnoisily|loadpict|local|localmake|log10|lowercase|lput|lshift|macroexpand|macrop|make|map|map.se|mdarray|mditem|mdsetitem|member|memberp|minus|modulo|name|namelist|namep|names|nodes|nodribble|norefresh|not|numberp|openappend|openread|openupdate|openwrite|or|output|palette|parse|pause|pen|pencolor|pendown|pendownp|penerase|penmode|penpaint|penreverse|pensize|penup|pick|plist|plistp|plists|pllist|po|poall|pon|pons|pop|popl|popls|pops|pos|pot|pots|power|pprop|prefix|primitivep|print|printdepthlimit|printwidthlimit|procedurep|procedures|product|push|queue|quoted|quotient|radarctan|radcos|radsin|random|rawascii|readchar|readchars|reader|readlist|readpos|readrawline|readword|redefp|reduce|refresh|remainder|remdup|remove|remprop|repcount|rerandom|reverse|right|round|rseq|run|runparse|runresult|save|savel|savepict|screenmode|scrunch|sentence|setbackground|setcursor|seteditor|setheading|sethelploc|setitem|setlibloc|setmargins|setpalette|setpen|setpencolor|setpensize|setpos|setprefix|setread|setreadpos|setscrunch|settemploc|settextcolor|setwrite|setwritepos|setx|setxy|sety|shell|show|shownp|showturtle|sin|splitscreen|sqrt|standout|startup|step|stepped|steppedp|substringp|sum|tag|test|text|textscreen|thing|throw|towards|trace|traced|tracedp|transfer|turtlemode|type|unbury|unburyall|unburyname|unburyonedit|unstep|untrace|uppercase|usealternatenam|wait|while|window|word|wordp|wrap|writepos|writer|xcor|ycor)\\\\\\\\b\",\"name\":\"keyword.other.logo\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.logo\"}},\"match\":\"(\\\\\\\\:)(?:\\\\\\\\|[^|]*\\\\\\\\||[-\\\\\\\\w.]*)+\",\"name\":\"variable.parameter.logo\"},{\"match\":\"\\\\\"(?:\\\\\\\\|[^|]*\\\\\\\\||[-\\\\\\\\w.]*)+\",\"name\":\"string.other.word.logo\"},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=;)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.logo\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\";\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.logo\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.semicolon.logo\"}]}],\"scopeName\":\"source.logo\"}')),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/JqZropPD.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Pascal\",\"fileTypes\":[\"pas\",\"p\",\"pp\",\"dfm\",\"fmx\",\"dpr\",\"dpk\",\"lfm\",\"lpr\"],\"name\":\"pascal\",\"patterns\":[{\"match\":\"\\\\\\\\b(?i:(absolute|abstract|add|all|and_then|array|as|asc|asm|assembler|async|attribute|autoreleasepool|await|begin|bindable|block|by|case|cdecl|class|concat|const|constref|copy|cppdecl|contains|default|delegate|deprecated|desc|distinct|div|each|else|empty|end|ensure|enum|equals|event|except|export|exports|extension|external|far|file|finalization|finalizer|finally|flags|forward|from|future|generic|goto|group|has|helper|if|implements|implies|import|in|index|inherited|initialization|inline|interrupt|into|invariants|is|iterator|label|library|join|lazy|lifetimestrategy|locked|locking|loop|mapped|matching|message|method|mod|module|name|namespace|near|nested|new|nostackframe|not|notify|nullable|object|of|old|oldfpccall|on|only|operator|optional|or_else|order|otherwise|out|override|package|packed|parallel|params|partial|pascal|pinned|platform|pow|private|program|protected|public|published|interface|implementation|qualified|queryable|raises|read|readonly|record|reference|register|remove|resident|require|requires|resourcestring|restricted|result|reverse|safecall|sealed|segment|select|selector|sequence|set|shl|shr|skip|specialize|soft|static|stored|stdcall|step|strict|strong|take|then|threadvar|to|try|tuple|type|unconstrained|unit|unmanaged|unretained|unsafe|uses|using|var|view|virtual|volatile|weak|dynamic|overload|reintroduce|where|with|write|xor|yield))\\\\\\\\b\",\"name\":\"keyword.pascal\"},{\"captures\":{\"1\":{\"name\":\"storage.type.prototype.pascal\"},\"2\":{\"name\":\"entity.name.function.prototype.pascal\"}},\"match\":\"\\\\\\\\b(?i:(function|procedure|constructor|destructor))\\\\\\\\b\\\\\\\\s+(\\\\\\\\w+(\\\\\\\\.\\\\\\\\w+)?)(\\\\\\\\(.*?\\\\\\\\))?;\\\\\\\\s*(?=(?i:attribute|forward|external))\",\"name\":\"meta.function.prototype.pascal\"},{\"captures\":{\"1\":{\"name\":\"storage.type.function.pascal\"},\"2\":{\"name\":\"entity.name.function.pascal\"}},\"match\":\"\\\\\\\\b(?i:(function|procedure|constructor|destructor|property|read|write))\\\\\\\\b\\\\\\\\s+(\\\\\\\\w+(\\\\\\\\.\\\\\\\\w+)?)\",\"name\":\"meta.function.pascal\"},{\"match\":\"\\\\\\\\b(?i:(self|result))\\\\\\\\b\",\"name\":\"token.variable\"},{\"match\":\"\\\\\\\\b(?i:(and|or))\\\\\\\\b\",\"name\":\"keyword.operator.pascal\"},{\"match\":\"\\\\\\\\b(?i:(break|continue|exit|abort|while|do|downto|for|raise|repeat|until))\\\\\\\\b\",\"name\":\"keyword.control.pascal\"},{\"begin\":\"\\\\\\\\{\\\\\\\\$\",\"captures\":{\"0\":{\"name\":\"string.regexp\"}},\"end\":\"\\\\\\\\}\",\"name\":\"string.regexp\"},{\"match\":\"\\\\\\\\b(?i:(ansichar|ansistring|boolean|byte|cardinal|char|comp|currency|double|dword|extended|file|integer|int8|int16|int32|int64|longint|longword|nativeint|nativeuint|olevariant|pansichar|pchar|pwidechar|pointer|real|shortint|shortstring|single|smallint|string|uint8|uint16|uint32|uint64|variant|widechar|widestring|word|wordbool|uintptr|intptr))\\\\\\\\b\",\"name\":\"storage.support.type.pascal\"},{\"match\":\"\\\\\\\\b(\\\\\\\\d+)|(\\\\\\\\d*\\\\\\\\.\\\\\\\\d+([eE][\\\\\\\\-+]?\\\\\\\\d+)?)\\\\\\\\b\",\"name\":\"constant.numeric.pascal\"},{\"match\":\"\\\\\\\\$[0-9a-fA-F]{1,16}\\\\\\\\b\",\"name\":\"constant.numeric.hex.pascal\"},{\"match\":\"\\\\\\\\b(?i:(true|false|nil))\\\\\\\\b\",\"name\":\"constant.language.pascal\"},{\"match\":\"\\\\\\\\b(?i:(Assert))\\\\\\\\b\",\"name\":\"keyword.control\"},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=//)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.pascal\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.pascal\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.double-slash.pascal.two\"}]},{\"begin\":\"\\\\\\\\(\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.pascal\"}},\"end\":\"\\\\\\\\*\\\\\\\\)\",\"name\":\"comment.block.pascal.one\"},{\"begin\":\"\\\\\\\\{(?!\\\\\\\\$)\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.pascal\"}},\"end\":\"\\\\\\\\}\",\"name\":\"comment.block.pascal.two\"},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.pascal\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.pascal\"}},\"name\":\"string.quoted.single.pascal\",\"patterns\":[{\"match\":\"''\",\"name\":\"constant.character.escape.apostrophe.pascal\"}]},{\"match\":\"\\\\\\\\#\\\\\\\\d+\",\"name\":\"string.other.pascal\"}],\"scopeName\":\"source.pascal\"}`)),a=[e];export{a as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/L9t79GZl.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.background\":\"#DDD6C1\",\"activityBar.foreground\":\"#584c27\",\"activityBarBadge.background\":\"#B58900\",\"badge.background\":\"#B58900AA\",\"button.background\":\"#AC9D57\",\"debugExceptionWidget.background\":\"#DDD6C1\",\"debugExceptionWidget.border\":\"#AB395B\",\"debugToolBar.background\":\"#DDD6C1\",\"dropdown.background\":\"#EEE8D5\",\"dropdown.border\":\"#D3AF86\",\"editor.background\":\"#FDF6E3\",\"editor.foreground\":\"#657B83\",\"editor.lineHighlightBackground\":\"#EEE8D5\",\"editor.selectionBackground\":\"#EEE8D5\",\"editorCursor.foreground\":\"#657B83\",\"editorGroup.border\":\"#DDD6C1\",\"editorGroup.dropBackground\":\"#DDD6C1AA\",\"editorGroupHeader.tabsBackground\":\"#D9D2C2\",\"editorHoverWidget.background\":\"#CCC4B0\",\"editorIndentGuide.activeBackground\":\"#081E2580\",\"editorIndentGuide.background\":\"#586E7580\",\"editorLineNumber.activeForeground\":\"#567983\",\"editorWhitespace.foreground\":\"#586E7580\",\"editorWidget.background\":\"#EEE8D5\",\"extensionButton.prominentBackground\":\"#b58900\",\"extensionButton.prominentHoverBackground\":\"#584c27aa\",\"focusBorder\":\"#b49471\",\"input.background\":\"#DDD6C1\",\"input.foreground\":\"#586E75\",\"input.placeholderForeground\":\"#586E75AA\",\"inputOption.activeBorder\":\"#D3AF86\",\"list.activeSelectionBackground\":\"#DFCA88\",\"list.activeSelectionForeground\":\"#6C6C6C\",\"list.highlightForeground\":\"#B58900\",\"list.hoverBackground\":\"#DFCA8844\",\"list.inactiveSelectionBackground\":\"#D1CBB8\",\"minimap.selectionHighlight\":\"#EEE8D5\",\"notebook.cellEditorBackground\":\"#F7F0E0\",\"panel.border\":\"#DDD6C1\",\"peekView.border\":\"#B58900\",\"peekViewEditor.background\":\"#FFFBF2\",\"peekViewEditor.matchHighlightBackground\":\"#7744AA40\",\"peekViewResult.background\":\"#EEE8D5\",\"peekViewTitle.background\":\"#EEE8D5\",\"pickerGroup.border\":\"#2AA19899\",\"pickerGroup.foreground\":\"#2AA19899\",\"ports.iconRunningProcessForeground\":\"#2AA19899\",\"progressBar.background\":\"#B58900\",\"quickInputList.focusBackground\":\"#DFCA8866\",\"selection.background\":\"#878b9180\",\"sideBar.background\":\"#EEE8D5\",\"sideBarTitle.foreground\":\"#586E75\",\"statusBar.background\":\"#EEE8D5\",\"statusBar.debuggingBackground\":\"#EEE8D5\",\"statusBar.foreground\":\"#586E75\",\"statusBar.noFolderBackground\":\"#EEE8D5\",\"statusBarItem.prominentBackground\":\"#DDD6C1\",\"statusBarItem.prominentHoverBackground\":\"#DDD6C199\",\"statusBarItem.remoteBackground\":\"#AC9D57\",\"tab.activeBackground\":\"#FDF6E3\",\"tab.activeModifiedBorder\":\"#cb4b16\",\"tab.border\":\"#DDD6C1\",\"tab.inactiveBackground\":\"#D3CBB7\",\"tab.inactiveForeground\":\"#586E75\",\"tab.lastPinnedBorder\":\"#FDF6E3\",\"terminal.ansiBlack\":\"#073642\",\"terminal.ansiBlue\":\"#268bd2\",\"terminal.ansiBrightBlack\":\"#002b36\",\"terminal.ansiBrightBlue\":\"#839496\",\"terminal.ansiBrightCyan\":\"#93a1a1\",\"terminal.ansiBrightGreen\":\"#586e75\",\"terminal.ansiBrightMagenta\":\"#6c71c4\",\"terminal.ansiBrightRed\":\"#cb4b16\",\"terminal.ansiBrightWhite\":\"#fdf6e3\",\"terminal.ansiBrightYellow\":\"#657b83\",\"terminal.ansiCyan\":\"#2aa198\",\"terminal.ansiGreen\":\"#859900\",\"terminal.ansiMagenta\":\"#d33682\",\"terminal.ansiRed\":\"#dc322f\",\"terminal.ansiWhite\":\"#eee8d5\",\"terminal.ansiYellow\":\"#b58900\",\"terminal.background\":\"#FDF6E3\",\"titleBar.activeBackground\":\"#EEE8D5\",\"walkThrough.embeddedEditorBackground\":\"#00000014\"},\"displayName\":\"Solarized Light\",\"name\":\"solarized-light\",\"semanticHighlighting\":true,\"tokenColors\":[{\"settings\":{\"foreground\":\"#657B83\"}},{\"scope\":[\"meta.embedded\",\"source.groovy.embedded\",\"string meta.image.inline.markdown\",\"variable.legacy.builtin.python\"],\"settings\":{\"foreground\":\"#657B83\"}},{\"scope\":\"comment\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#93A1A1\"}},{\"scope\":\"string\",\"settings\":{\"foreground\":\"#2AA198\"}},{\"scope\":\"string.regexp\",\"settings\":{\"foreground\":\"#DC322F\"}},{\"scope\":\"constant.numeric\",\"settings\":{\"foreground\":\"#D33682\"}},{\"scope\":[\"variable.language\",\"variable.other\"],\"settings\":{\"foreground\":\"#268BD2\"}},{\"scope\":\"keyword\",\"settings\":{\"foreground\":\"#859900\"}},{\"scope\":\"storage\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#586E75\"}},{\"scope\":[\"entity.name.class\",\"entity.name.type\",\"entity.name.namespace\",\"entity.name.scope-resolution\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#CB4B16\"}},{\"scope\":\"entity.name.function\",\"settings\":{\"foreground\":\"#268BD2\"}},{\"scope\":\"punctuation.definition.variable\",\"settings\":{\"foreground\":\"#859900\"}},{\"scope\":[\"punctuation.section.embedded.begin\",\"punctuation.section.embedded.end\"],\"settings\":{\"foreground\":\"#DC322F\"}},{\"scope\":[\"constant.language\",\"meta.preprocessor\"],\"settings\":{\"foreground\":\"#B58900\"}},{\"scope\":[\"support.function.construct\",\"keyword.other.new\"],\"settings\":{\"foreground\":\"#CB4B16\"}},{\"scope\":[\"constant.character\",\"constant.other\"],\"settings\":{\"foreground\":\"#CB4B16\"}},{\"scope\":[\"entity.other.inherited-class\",\"punctuation.separator.namespace.ruby\"],\"settings\":{\"foreground\":\"#6C71C4\"}},{\"scope\":\"variable.parameter\",\"settings\":{}},{\"scope\":\"entity.name.tag\",\"settings\":{\"foreground\":\"#268BD2\"}},{\"scope\":\"punctuation.definition.tag\",\"settings\":{\"foreground\":\"#93A1A1\"}},{\"scope\":\"entity.other.attribute-name\",\"settings\":{\"foreground\":\"#93A1A1\"}},{\"scope\":\"support.function\",\"settings\":{\"foreground\":\"#268BD2\"}},{\"scope\":\"punctuation.separator.continuation\",\"settings\":{\"foreground\":\"#DC322F\"}},{\"scope\":[\"support.constant\",\"support.variable\"],\"settings\":{}},{\"scope\":[\"support.type\",\"support.class\"],\"settings\":{\"foreground\":\"#859900\"}},{\"scope\":\"support.type.exception\",\"settings\":{\"foreground\":\"#CB4B16\"}},{\"scope\":\"support.other.variable\",\"settings\":{}},{\"scope\":\"invalid\",\"settings\":{\"foreground\":\"#DC322F\"}},{\"scope\":[\"meta.diff\",\"meta.diff.header\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#268BD2\"}},{\"scope\":\"markup.deleted\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#DC322F\"}},{\"scope\":\"markup.changed\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#CB4B16\"}},{\"scope\":\"markup.inserted\",\"settings\":{\"foreground\":\"#859900\"}},{\"scope\":\"markup.quote\",\"settings\":{\"foreground\":\"#859900\"}},{\"scope\":\"markup.list\",\"settings\":{\"foreground\":\"#B58900\"}},{\"scope\":[\"markup.bold\",\"markup.italic\"],\"settings\":{\"foreground\":\"#D33682\"}},{\"scope\":\"markup.bold\",\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":\"markup.italic\",\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":\"markup.strikethrough\",\"settings\":{\"fontStyle\":\"strikethrough\"}},{\"scope\":\"markup.inline.raw\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#2AA198\"}},{\"scope\":\"markup.heading\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#268BD2\"}},{\"scope\":\"markup.heading.setext\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#268BD2\"}}],\"type\":\"light\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/LGGdnPYs.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.activeBackground\":\"#00000000\",\"activityBar.activeBorder\":\"#00000000\",\"activityBar.activeFocusBorder\":\"#00000000\",\"activityBar.background\":\"#11111b\",\"activityBar.border\":\"#00000000\",\"activityBar.dropBorder\":\"#cba6f733\",\"activityBar.foreground\":\"#cba6f7\",\"activityBar.inactiveForeground\":\"#6c7086\",\"activityBarBadge.background\":\"#cba6f7\",\"activityBarBadge.foreground\":\"#11111b\",\"activityBarTop.activeBorder\":\"#00000000\",\"activityBarTop.dropBorder\":\"#cba6f733\",\"activityBarTop.foreground\":\"#cba6f7\",\"activityBarTop.inactiveForeground\":\"#6c7086\",\"badge.background\":\"#45475a\",\"badge.foreground\":\"#cdd6f4\",\"banner.background\":\"#45475a\",\"banner.foreground\":\"#cdd6f4\",\"banner.iconForeground\":\"#cdd6f4\",\"breadcrumb.activeSelectionForeground\":\"#cba6f7\",\"breadcrumb.background\":\"#1e1e2e\",\"breadcrumb.focusForeground\":\"#cba6f7\",\"breadcrumb.foreground\":\"#cdd6f4cc\",\"breadcrumbPicker.background\":\"#181825\",\"button.background\":\"#cba6f7\",\"button.border\":\"#00000000\",\"button.foreground\":\"#11111b\",\"button.hoverBackground\":\"#dec7fa\",\"button.secondaryBackground\":\"#585b70\",\"button.secondaryBorder\":\"#cba6f7\",\"button.secondaryForeground\":\"#cdd6f4\",\"button.secondaryHoverBackground\":\"#686b84\",\"button.separator\":\"#00000000\",\"charts.blue\":\"#89b4fa\",\"charts.foreground\":\"#cdd6f4\",\"charts.green\":\"#a6e3a1\",\"charts.lines\":\"#bac2de\",\"charts.orange\":\"#fab387\",\"charts.purple\":\"#cba6f7\",\"charts.red\":\"#f38ba8\",\"charts.yellow\":\"#f9e2af\",\"checkbox.background\":\"#45475a\",\"checkbox.border\":\"#00000000\",\"checkbox.foreground\":\"#cba6f7\",\"commandCenter.activeBackground\":\"#585b7033\",\"commandCenter.activeBorder\":\"#cba6f7\",\"commandCenter.activeForeground\":\"#cba6f7\",\"commandCenter.background\":\"#181825\",\"commandCenter.border\":\"#00000000\",\"commandCenter.foreground\":\"#bac2de\",\"commandCenter.inactiveBorder\":\"#00000000\",\"commandCenter.inactiveForeground\":\"#bac2de\",\"debugConsole.errorForeground\":\"#f38ba8\",\"debugConsole.infoForeground\":\"#89b4fa\",\"debugConsole.sourceForeground\":\"#f5e0dc\",\"debugConsole.warningForeground\":\"#fab387\",\"debugConsoleInputIcon.foreground\":\"#cdd6f4\",\"debugExceptionWidget.background\":\"#11111b\",\"debugExceptionWidget.border\":\"#cba6f7\",\"debugIcon.breakpointCurrentStackframeForeground\":\"#585b70\",\"debugIcon.breakpointDisabledForeground\":\"#f38ba899\",\"debugIcon.breakpointForeground\":\"#f38ba8\",\"debugIcon.breakpointStackframeForeground\":\"#585b70\",\"debugIcon.breakpointUnverifiedForeground\":\"#a6738c\",\"debugIcon.continueForeground\":\"#a6e3a1\",\"debugIcon.disconnectForeground\":\"#585b70\",\"debugIcon.pauseForeground\":\"#89b4fa\",\"debugIcon.restartForeground\":\"#94e2d5\",\"debugIcon.startForeground\":\"#a6e3a1\",\"debugIcon.stepBackForeground\":\"#585b70\",\"debugIcon.stepIntoForeground\":\"#cdd6f4\",\"debugIcon.stepOutForeground\":\"#cdd6f4\",\"debugIcon.stepOverForeground\":\"#cba6f7\",\"debugIcon.stopForeground\":\"#f38ba8\",\"debugTokenExpression.boolean\":\"#cba6f7\",\"debugTokenExpression.error\":\"#f38ba8\",\"debugTokenExpression.number\":\"#fab387\",\"debugTokenExpression.string\":\"#a6e3a1\",\"debugToolBar.background\":\"#11111b\",\"debugToolBar.border\":\"#00000000\",\"descriptionForeground\":\"#cdd6f4\",\"diffEditor.border\":\"#585b70\",\"diffEditor.diagonalFill\":\"#585b7099\",\"diffEditor.insertedLineBackground\":\"#a6e3a126\",\"diffEditor.insertedTextBackground\":\"#a6e3a11a\",\"diffEditor.removedLineBackground\":\"#f38ba826\",\"diffEditor.removedTextBackground\":\"#f38ba81a\",\"diffEditorOverview.insertedForeground\":\"#a6e3a1cc\",\"diffEditorOverview.removedForeground\":\"#f38ba8cc\",\"disabledForeground\":\"#a6adc8\",\"dropdown.background\":\"#181825\",\"dropdown.border\":\"#cba6f7\",\"dropdown.foreground\":\"#cdd6f4\",\"dropdown.listBackground\":\"#585b70\",\"editor.background\":\"#1e1e2e\",\"editor.findMatchBackground\":\"#5e3f53\",\"editor.findMatchBorder\":\"#f38ba833\",\"editor.findMatchHighlightBackground\":\"#3e5767\",\"editor.findMatchHighlightBorder\":\"#89dceb33\",\"editor.findRangeHighlightBackground\":\"#3e5767\",\"editor.findRangeHighlightBorder\":\"#89dceb33\",\"editor.focusedStackFrameHighlightBackground\":\"#a6e3a126\",\"editor.foldBackground\":\"#89dceb40\",\"editor.foreground\":\"#cdd6f4\",\"editor.hoverHighlightBackground\":\"#89dceb40\",\"editor.lineHighlightBackground\":\"#cdd6f412\",\"editor.lineHighlightBorder\":\"#00000000\",\"editor.rangeHighlightBackground\":\"#89dceb40\",\"editor.rangeHighlightBorder\":\"#00000000\",\"editor.selectionBackground\":\"#9399b240\",\"editor.selectionHighlightBackground\":\"#9399b233\",\"editor.selectionHighlightBorder\":\"#9399b233\",\"editor.stackFrameHighlightBackground\":\"#f9e2af26\",\"editor.wordHighlightBackground\":\"#9399b233\",\"editor.wordHighlightStrongBackground\":\"#89b4fa33\",\"editorBracketHighlight.foreground1\":\"#f38ba8\",\"editorBracketHighlight.foreground2\":\"#fab387\",\"editorBracketHighlight.foreground3\":\"#f9e2af\",\"editorBracketHighlight.foreground4\":\"#a6e3a1\",\"editorBracketHighlight.foreground5\":\"#74c7ec\",\"editorBracketHighlight.foreground6\":\"#cba6f7\",\"editorBracketHighlight.unexpectedBracket.foreground\":\"#eba0ac\",\"editorBracketMatch.background\":\"#9399b21a\",\"editorBracketMatch.border\":\"#9399b2\",\"editorCodeLens.foreground\":\"#7f849c\",\"editorCursor.background\":\"#1e1e2e\",\"editorCursor.foreground\":\"#f5e0dc\",\"editorError.background\":\"#00000000\",\"editorError.border\":\"#00000000\",\"editorError.foreground\":\"#f38ba8\",\"editorGroup.border\":\"#585b70\",\"editorGroup.dropBackground\":\"#cba6f733\",\"editorGroup.emptyBackground\":\"#1e1e2e\",\"editorGroupHeader.tabsBackground\":\"#11111b\",\"editorGutter.addedBackground\":\"#a6e3a1\",\"editorGutter.background\":\"#1e1e2e\",\"editorGutter.commentGlyphForeground\":\"#cba6f7\",\"editorGutter.commentRangeForeground\":\"#313244\",\"editorGutter.deletedBackground\":\"#f38ba8\",\"editorGutter.foldingControlForeground\":\"#9399b2\",\"editorGutter.modifiedBackground\":\"#f9e2af\",\"editorHoverWidget.background\":\"#181825\",\"editorHoverWidget.border\":\"#585b70\",\"editorHoverWidget.foreground\":\"#cdd6f4\",\"editorIndentGuide.activeBackground\":\"#585b70\",\"editorIndentGuide.background\":\"#45475a\",\"editorInfo.background\":\"#00000000\",\"editorInfo.border\":\"#00000000\",\"editorInfo.foreground\":\"#89b4fa\",\"editorInlayHint.background\":\"#181825bf\",\"editorInlayHint.foreground\":\"#585b70\",\"editorInlayHint.parameterBackground\":\"#181825bf\",\"editorInlayHint.parameterForeground\":\"#a6adc8\",\"editorInlayHint.typeBackground\":\"#181825bf\",\"editorInlayHint.typeForeground\":\"#bac2de\",\"editorLightBulb.foreground\":\"#f9e2af\",\"editorLineNumber.activeForeground\":\"#cba6f7\",\"editorLineNumber.foreground\":\"#7f849c\",\"editorLink.activeForeground\":\"#cba6f7\",\"editorMarkerNavigation.background\":\"#181825\",\"editorMarkerNavigationError.background\":\"#f38ba8\",\"editorMarkerNavigationInfo.background\":\"#89b4fa\",\"editorMarkerNavigationWarning.background\":\"#fab387\",\"editorOverviewRuler.background\":\"#181825\",\"editorOverviewRuler.border\":\"#cdd6f412\",\"editorOverviewRuler.modifiedForeground\":\"#f9e2af\",\"editorRuler.foreground\":\"#585b70\",\"editorStickyScrollHover.background\":\"#313244\",\"editorSuggestWidget.background\":\"#181825\",\"editorSuggestWidget.border\":\"#585b70\",\"editorSuggestWidget.foreground\":\"#cdd6f4\",\"editorSuggestWidget.highlightForeground\":\"#cba6f7\",\"editorSuggestWidget.selectedBackground\":\"#313244\",\"editorWarning.background\":\"#00000000\",\"editorWarning.border\":\"#00000000\",\"editorWarning.foreground\":\"#fab387\",\"editorWhitespace.foreground\":\"#9399b266\",\"editorWidget.background\":\"#181825\",\"editorWidget.foreground\":\"#cdd6f4\",\"editorWidget.resizeBorder\":\"#585b70\",\"errorForeground\":\"#f38ba8\",\"errorLens.errorBackground\":\"#f38ba826\",\"errorLens.errorBackgroundLight\":\"#f38ba826\",\"errorLens.errorForeground\":\"#f38ba8\",\"errorLens.errorForegroundLight\":\"#f38ba8\",\"errorLens.errorMessageBackground\":\"#f38ba826\",\"errorLens.hintBackground\":\"#a6e3a126\",\"errorLens.hintBackgroundLight\":\"#a6e3a126\",\"errorLens.hintForeground\":\"#a6e3a1\",\"errorLens.hintForegroundLight\":\"#a6e3a1\",\"errorLens.hintMessageBackground\":\"#a6e3a126\",\"errorLens.infoBackground\":\"#89b4fa26\",\"errorLens.infoBackgroundLight\":\"#89b4fa26\",\"errorLens.infoForeground\":\"#89b4fa\",\"errorLens.infoForegroundLight\":\"#89b4fa\",\"errorLens.infoMessageBackground\":\"#89b4fa26\",\"errorLens.statusBarErrorForeground\":\"#f38ba8\",\"errorLens.statusBarHintForeground\":\"#a6e3a1\",\"errorLens.statusBarIconErrorForeground\":\"#f38ba8\",\"errorLens.statusBarIconWarningForeground\":\"#fab387\",\"errorLens.statusBarInfoForeground\":\"#89b4fa\",\"errorLens.statusBarWarningForeground\":\"#fab387\",\"errorLens.warningBackground\":\"#fab38726\",\"errorLens.warningBackgroundLight\":\"#fab38726\",\"errorLens.warningForeground\":\"#fab387\",\"errorLens.warningForegroundLight\":\"#fab387\",\"errorLens.warningMessageBackground\":\"#fab38726\",\"extensionBadge.remoteBackground\":\"#89b4fa\",\"extensionBadge.remoteForeground\":\"#11111b\",\"extensionButton.prominentBackground\":\"#cba6f7\",\"extensionButton.prominentForeground\":\"#11111b\",\"extensionButton.prominentHoverBackground\":\"#dec7fa\",\"extensionButton.separator\":\"#1e1e2e\",\"extensionIcon.preReleaseForeground\":\"#585b70\",\"extensionIcon.sponsorForeground\":\"#f5c2e7\",\"extensionIcon.starForeground\":\"#f9e2af\",\"extensionIcon.verifiedForeground\":\"#a6e3a1\",\"focusBorder\":\"#cba6f7\",\"foreground\":\"#cdd6f4\",\"gitDecoration.addedResourceForeground\":\"#a6e3a1\",\"gitDecoration.conflictingResourceForeground\":\"#cba6f7\",\"gitDecoration.deletedResourceForeground\":\"#f38ba8\",\"gitDecoration.ignoredResourceForeground\":\"#6c7086\",\"gitDecoration.modifiedResourceForeground\":\"#f9e2af\",\"gitDecoration.stageDeletedResourceForeground\":\"#f38ba8\",\"gitDecoration.stageModifiedResourceForeground\":\"#f9e2af\",\"gitDecoration.submoduleResourceForeground\":\"#89b4fa\",\"gitDecoration.untrackedResourceForeground\":\"#a6e3a1\",\"gitlens.closedAutolinkedIssueIconColor\":\"#cba6f7\",\"gitlens.closedPullRequestIconColor\":\"#f38ba8\",\"gitlens.decorations.branchAheadForegroundColor\":\"#a6e3a1\",\"gitlens.decorations.branchBehindForegroundColor\":\"#fab387\",\"gitlens.decorations.branchDivergedForegroundColor\":\"#f9e2af\",\"gitlens.decorations.branchMissingUpstreamForegroundColor\":\"#fab387\",\"gitlens.decorations.branchUnpublishedForegroundColor\":\"#a6e3a1\",\"gitlens.decorations.statusMergingOrRebasingConflictForegroundColor\":\"#eba0ac\",\"gitlens.decorations.statusMergingOrRebasingForegroundColor\":\"#f9e2af\",\"gitlens.decorations.workspaceCurrentForegroundColor\":\"#cba6f7\",\"gitlens.decorations.workspaceRepoMissingForegroundColor\":\"#a6adc8\",\"gitlens.decorations.workspaceRepoOpenForegroundColor\":\"#cba6f7\",\"gitlens.decorations.worktreeHasUncommittedChangesForegroundColor\":\"#fab387\",\"gitlens.decorations.worktreeMissingForegroundColor\":\"#eba0ac\",\"gitlens.graphChangesColumnAddedColor\":\"#a6e3a1\",\"gitlens.graphChangesColumnDeletedColor\":\"#f38ba8\",\"gitlens.graphLane10Color\":\"#f5c2e7\",\"gitlens.graphLane1Color\":\"#cba6f7\",\"gitlens.graphLane2Color\":\"#f9e2af\",\"gitlens.graphLane3Color\":\"#89b4fa\",\"gitlens.graphLane4Color\":\"#f2cdcd\",\"gitlens.graphLane5Color\":\"#a6e3a1\",\"gitlens.graphLane6Color\":\"#b4befe\",\"gitlens.graphLane7Color\":\"#f5e0dc\",\"gitlens.graphLane8Color\":\"#f38ba8\",\"gitlens.graphLane9Color\":\"#94e2d5\",\"gitlens.graphMinimapMarkerHeadColor\":\"#a6e3a1\",\"gitlens.graphMinimapMarkerHighlightsColor\":\"#f9e2af\",\"gitlens.graphMinimapMarkerLocalBranchesColor\":\"#89b4fa\",\"gitlens.graphMinimapMarkerRemoteBranchesColor\":\"#71a4f9\",\"gitlens.graphMinimapMarkerStashesColor\":\"#cba6f7\",\"gitlens.graphMinimapMarkerTagsColor\":\"#f2cdcd\",\"gitlens.graphMinimapMarkerUpstreamColor\":\"#93dd8d\",\"gitlens.graphScrollMarkerHeadColor\":\"#a6e3a1\",\"gitlens.graphScrollMarkerHighlightsColor\":\"#f9e2af\",\"gitlens.graphScrollMarkerLocalBranchesColor\":\"#89b4fa\",\"gitlens.graphScrollMarkerRemoteBranchesColor\":\"#71a4f9\",\"gitlens.graphScrollMarkerStashesColor\":\"#cba6f7\",\"gitlens.graphScrollMarkerTagsColor\":\"#f2cdcd\",\"gitlens.graphScrollMarkerUpstreamColor\":\"#93dd8d\",\"gitlens.gutterBackgroundColor\":\"#3132444d\",\"gitlens.gutterForegroundColor\":\"#cdd6f4\",\"gitlens.gutterUncommittedForegroundColor\":\"#cba6f7\",\"gitlens.lineHighlightBackgroundColor\":\"#cba6f726\",\"gitlens.lineHighlightOverviewRulerColor\":\"#cba6f7cc\",\"gitlens.mergedPullRequestIconColor\":\"#cba6f7\",\"gitlens.openAutolinkedIssueIconColor\":\"#a6e3a1\",\"gitlens.openPullRequestIconColor\":\"#a6e3a1\",\"gitlens.trailingLineBackgroundColor\":\"#00000000\",\"gitlens.trailingLineForegroundColor\":\"#cdd6f44d\",\"gitlens.unpublishedChangesIconColor\":\"#a6e3a1\",\"gitlens.unpublishedCommitIconColor\":\"#a6e3a1\",\"gitlens.unpulledChangesIconColor\":\"#fab387\",\"icon.foreground\":\"#cba6f7\",\"input.background\":\"#313244\",\"input.border\":\"#00000000\",\"input.foreground\":\"#cdd6f4\",\"input.placeholderForeground\":\"#cdd6f473\",\"inputOption.activeBackground\":\"#585b70\",\"inputOption.activeBorder\":\"#cba6f7\",\"inputOption.activeForeground\":\"#cdd6f4\",\"inputValidation.errorBackground\":\"#f38ba8\",\"inputValidation.errorBorder\":\"#11111b33\",\"inputValidation.errorForeground\":\"#11111b\",\"inputValidation.infoBackground\":\"#89b4fa\",\"inputValidation.infoBorder\":\"#11111b33\",\"inputValidation.infoForeground\":\"#11111b\",\"inputValidation.warningBackground\":\"#fab387\",\"inputValidation.warningBorder\":\"#11111b33\",\"inputValidation.warningForeground\":\"#11111b\",\"issues.closed\":\"#cba6f7\",\"issues.newIssueDecoration\":\"#f5e0dc\",\"issues.open\":\"#a6e3a1\",\"list.activeSelectionBackground\":\"#313244\",\"list.activeSelectionForeground\":\"#cdd6f4\",\"list.dropBackground\":\"#cba6f733\",\"list.focusAndSelectionBackground\":\"#45475a\",\"list.focusBackground\":\"#313244\",\"list.focusForeground\":\"#cdd6f4\",\"list.focusOutline\":\"#00000000\",\"list.highlightForeground\":\"#cba6f7\",\"list.hoverBackground\":\"#31324480\",\"list.hoverForeground\":\"#cdd6f4\",\"list.inactiveSelectionBackground\":\"#313244\",\"list.inactiveSelectionForeground\":\"#cdd6f4\",\"list.warningForeground\":\"#fab387\",\"listFilterWidget.background\":\"#45475a\",\"listFilterWidget.noMatchesOutline\":\"#f38ba8\",\"listFilterWidget.outline\":\"#00000000\",\"menu.background\":\"#1e1e2e\",\"menu.border\":\"#1e1e2e80\",\"menu.foreground\":\"#cdd6f4\",\"menu.selectionBackground\":\"#585b70\",\"menu.selectionBorder\":\"#00000000\",\"menu.selectionForeground\":\"#cdd6f4\",\"menu.separatorBackground\":\"#585b70\",\"menubar.selectionBackground\":\"#45475a\",\"menubar.selectionForeground\":\"#cdd6f4\",\"merge.commonContentBackground\":\"#45475a\",\"merge.commonHeaderBackground\":\"#585b70\",\"merge.currentContentBackground\":\"#a6e3a133\",\"merge.currentHeaderBackground\":\"#a6e3a166\",\"merge.incomingContentBackground\":\"#89b4fa33\",\"merge.incomingHeaderBackground\":\"#89b4fa66\",\"minimap.background\":\"#18182580\",\"minimap.errorHighlight\":\"#f38ba8bf\",\"minimap.findMatchHighlight\":\"#89dceb4d\",\"minimap.selectionHighlight\":\"#585b70bf\",\"minimap.selectionOccurrenceHighlight\":\"#585b70bf\",\"minimap.warningHighlight\":\"#fab387bf\",\"minimapGutter.addedBackground\":\"#a6e3a1bf\",\"minimapGutter.deletedBackground\":\"#f38ba8bf\",\"minimapGutter.modifiedBackground\":\"#f9e2afbf\",\"minimapSlider.activeBackground\":\"#cba6f799\",\"minimapSlider.background\":\"#cba6f733\",\"minimapSlider.hoverBackground\":\"#cba6f766\",\"notificationCenter.border\":\"#cba6f7\",\"notificationCenterHeader.background\":\"#181825\",\"notificationCenterHeader.foreground\":\"#cdd6f4\",\"notificationLink.foreground\":\"#89b4fa\",\"notificationToast.border\":\"#cba6f7\",\"notifications.background\":\"#181825\",\"notifications.border\":\"#cba6f7\",\"notifications.foreground\":\"#cdd6f4\",\"notificationsErrorIcon.foreground\":\"#f38ba8\",\"notificationsInfoIcon.foreground\":\"#89b4fa\",\"notificationsWarningIcon.foreground\":\"#fab387\",\"panel.background\":\"#1e1e2e\",\"panel.border\":\"#585b70\",\"panelSection.border\":\"#585b70\",\"panelSection.dropBackground\":\"#cba6f733\",\"panelTitle.activeBorder\":\"#cba6f7\",\"panelTitle.activeForeground\":\"#cdd6f4\",\"panelTitle.inactiveForeground\":\"#a6adc8\",\"peekView.border\":\"#cba6f7\",\"peekViewEditor.background\":\"#181825\",\"peekViewEditor.matchHighlightBackground\":\"#89dceb4d\",\"peekViewEditor.matchHighlightBorder\":\"#00000000\",\"peekViewEditorGutter.background\":\"#181825\",\"peekViewResult.background\":\"#181825\",\"peekViewResult.fileForeground\":\"#cdd6f4\",\"peekViewResult.lineForeground\":\"#cdd6f4\",\"peekViewResult.matchHighlightBackground\":\"#89dceb4d\",\"peekViewResult.selectionBackground\":\"#313244\",\"peekViewResult.selectionForeground\":\"#cdd6f4\",\"peekViewTitle.background\":\"#1e1e2e\",\"peekViewTitleDescription.foreground\":\"#bac2deb3\",\"peekViewTitleLabel.foreground\":\"#cdd6f4\",\"pickerGroup.border\":\"#cba6f7\",\"pickerGroup.foreground\":\"#cba6f7\",\"problemsErrorIcon.foreground\":\"#f38ba8\",\"problemsInfoIcon.foreground\":\"#89b4fa\",\"problemsWarningIcon.foreground\":\"#fab387\",\"progressBar.background\":\"#cba6f7\",\"pullRequests.closed\":\"#f38ba8\",\"pullRequests.draft\":\"#9399b2\",\"pullRequests.merged\":\"#cba6f7\",\"pullRequests.notification\":\"#cdd6f4\",\"pullRequests.open\":\"#a6e3a1\",\"sash.hoverBorder\":\"#cba6f7\",\"scrollbar.shadow\":\"#11111b\",\"scrollbarSlider.activeBackground\":\"#31324466\",\"scrollbarSlider.background\":\"#585b7080\",\"scrollbarSlider.hoverBackground\":\"#6c7086\",\"selection.background\":\"#cba6f766\",\"settings.dropdownBackground\":\"#45475a\",\"settings.dropdownListBorder\":\"#00000000\",\"settings.focusedRowBackground\":\"#585b7033\",\"settings.headerForeground\":\"#cdd6f4\",\"settings.modifiedItemIndicator\":\"#cba6f7\",\"settings.numberInputBackground\":\"#45475a\",\"settings.numberInputBorder\":\"#00000000\",\"settings.textInputBackground\":\"#45475a\",\"settings.textInputBorder\":\"#00000000\",\"sideBar.background\":\"#181825\",\"sideBar.border\":\"#00000000\",\"sideBar.dropBackground\":\"#cba6f733\",\"sideBar.foreground\":\"#cdd6f4\",\"sideBarSectionHeader.background\":\"#181825\",\"sideBarSectionHeader.foreground\":\"#cdd6f4\",\"sideBarTitle.foreground\":\"#cba6f7\",\"statusBar.background\":\"#11111b\",\"statusBar.border\":\"#00000000\",\"statusBar.debuggingBackground\":\"#fab387\",\"statusBar.debuggingBorder\":\"#00000000\",\"statusBar.debuggingForeground\":\"#11111b\",\"statusBar.foreground\":\"#cdd6f4\",\"statusBar.noFolderBackground\":\"#11111b\",\"statusBar.noFolderBorder\":\"#00000000\",\"statusBar.noFolderForeground\":\"#cdd6f4\",\"statusBarItem.activeBackground\":\"#585b7066\",\"statusBarItem.errorBackground\":\"#00000000\",\"statusBarItem.errorForeground\":\"#f38ba8\",\"statusBarItem.hoverBackground\":\"#585b7033\",\"statusBarItem.prominentBackground\":\"#00000000\",\"statusBarItem.prominentForeground\":\"#cba6f7\",\"statusBarItem.prominentHoverBackground\":\"#585b7033\",\"statusBarItem.remoteBackground\":\"#89b4fa\",\"statusBarItem.remoteForeground\":\"#11111b\",\"statusBarItem.warningBackground\":\"#00000000\",\"statusBarItem.warningForeground\":\"#fab387\",\"symbolIcon.arrayForeground\":\"#fab387\",\"symbolIcon.booleanForeground\":\"#cba6f7\",\"symbolIcon.classForeground\":\"#f9e2af\",\"symbolIcon.colorForeground\":\"#f5c2e7\",\"symbolIcon.constantForeground\":\"#fab387\",\"symbolIcon.constructorForeground\":\"#b4befe\",\"symbolIcon.enumeratorForeground\":\"#f9e2af\",\"symbolIcon.enumeratorMemberForeground\":\"#f9e2af\",\"symbolIcon.eventForeground\":\"#f5c2e7\",\"symbolIcon.fieldForeground\":\"#cdd6f4\",\"symbolIcon.fileForeground\":\"#cba6f7\",\"symbolIcon.folderForeground\":\"#cba6f7\",\"symbolIcon.functionForeground\":\"#89b4fa\",\"symbolIcon.interfaceForeground\":\"#f9e2af\",\"symbolIcon.keyForeground\":\"#94e2d5\",\"symbolIcon.keywordForeground\":\"#cba6f7\",\"symbolIcon.methodForeground\":\"#89b4fa\",\"symbolIcon.moduleForeground\":\"#cdd6f4\",\"symbolIcon.namespaceForeground\":\"#f9e2af\",\"symbolIcon.nullForeground\":\"#eba0ac\",\"symbolIcon.numberForeground\":\"#fab387\",\"symbolIcon.objectForeground\":\"#f9e2af\",\"symbolIcon.operatorForeground\":\"#94e2d5\",\"symbolIcon.packageForeground\":\"#f2cdcd\",\"symbolIcon.propertyForeground\":\"#eba0ac\",\"symbolIcon.referenceForeground\":\"#f9e2af\",\"symbolIcon.snippetForeground\":\"#f2cdcd\",\"symbolIcon.stringForeground\":\"#a6e3a1\",\"symbolIcon.structForeground\":\"#94e2d5\",\"symbolIcon.textForeground\":\"#cdd6f4\",\"symbolIcon.typeParameterForeground\":\"#eba0ac\",\"symbolIcon.unitForeground\":\"#cdd6f4\",\"symbolIcon.variableForeground\":\"#cdd6f4\",\"tab.activeBackground\":\"#1e1e2e\",\"tab.activeBorder\":\"#00000000\",\"tab.activeBorderTop\":\"#cba6f7\",\"tab.activeForeground\":\"#cba6f7\",\"tab.activeModifiedBorder\":\"#f9e2af\",\"tab.border\":\"#181825\",\"tab.hoverBackground\":\"#28283d\",\"tab.hoverBorder\":\"#00000000\",\"tab.hoverForeground\":\"#cba6f7\",\"tab.inactiveBackground\":\"#181825\",\"tab.inactiveForeground\":\"#6c7086\",\"tab.inactiveModifiedBorder\":\"#f9e2af4d\",\"tab.lastPinnedBorder\":\"#cba6f7\",\"tab.unfocusedActiveBackground\":\"#181825\",\"tab.unfocusedActiveBorder\":\"#00000000\",\"tab.unfocusedActiveBorderTop\":\"#cba6f74d\",\"tab.unfocusedInactiveBackground\":\"#0e0e16\",\"table.headerBackground\":\"#313244\",\"table.headerForeground\":\"#cdd6f4\",\"terminal.ansiBlack\":\"#45475a\",\"terminal.ansiBlue\":\"#89b4fa\",\"terminal.ansiBrightBlack\":\"#585b70\",\"terminal.ansiBrightBlue\":\"#74a8fc\",\"terminal.ansiBrightCyan\":\"#6bd7ca\",\"terminal.ansiBrightGreen\":\"#89d88b\",\"terminal.ansiBrightMagenta\":\"#f2aede\",\"terminal.ansiBrightRed\":\"#f37799\",\"terminal.ansiBrightWhite\":\"#bac2de\",\"terminal.ansiBrightYellow\":\"#ebd391\",\"terminal.ansiCyan\":\"#94e2d5\",\"terminal.ansiGreen\":\"#a6e3a1\",\"terminal.ansiMagenta\":\"#f5c2e7\",\"terminal.ansiRed\":\"#f38ba8\",\"terminal.ansiWhite\":\"#a6adc8\",\"terminal.ansiYellow\":\"#f9e2af\",\"terminal.border\":\"#585b70\",\"terminal.dropBackground\":\"#cba6f733\",\"terminal.foreground\":\"#cdd6f4\",\"terminal.inactiveSelectionBackground\":\"#585b7080\",\"terminal.selectionBackground\":\"#585b70\",\"terminal.tab.activeBorder\":\"#cba6f7\",\"terminalCommandDecoration.defaultBackground\":\"#585b70\",\"terminalCommandDecoration.errorBackground\":\"#f38ba8\",\"terminalCommandDecoration.successBackground\":\"#a6e3a1\",\"terminalCursor.background\":\"#1e1e2e\",\"terminalCursor.foreground\":\"#f5e0dc\",\"textBlockQuote.background\":\"#181825\",\"textBlockQuote.border\":\"#11111b\",\"textCodeBlock.background\":\"#1e1e2e\",\"textLink.activeForeground\":\"#89dceb\",\"textLink.foreground\":\"#89b4fa\",\"textPreformat.foreground\":\"#cdd6f4\",\"textSeparator.foreground\":\"#cba6f7\",\"titleBar.activeBackground\":\"#11111b\",\"titleBar.activeForeground\":\"#cdd6f4\",\"titleBar.border\":\"#00000000\",\"titleBar.inactiveBackground\":\"#11111b\",\"titleBar.inactiveForeground\":\"#cdd6f480\",\"tree.inactiveIndentGuidesStroke\":\"#45475a\",\"tree.indentGuidesStroke\":\"#9399b2\",\"walkThrough.embeddedEditorBackground\":\"#1e1e2e4d\",\"welcomePage.progress.background\":\"#11111b\",\"welcomePage.progress.foreground\":\"#cba6f7\",\"welcomePage.tileBackground\":\"#181825\",\"widget.shadow\":\"#18182580\",\"window.activeBorder\":\"#00000000\",\"window.inactiveBorder\":\"#00000000\"},\"displayName\":\"Catppuccin Mocha\",\"name\":\"catppuccin-mocha\",\"semanticHighlighting\":true,\"semanticTokenColors\":{\"boolean\":{\"foreground\":\"#fab387\"},\"builtinAttribute.attribute.library:rust\":{\"foreground\":\"#89b4fa\"},\"class.builtin:python\":{\"foreground\":\"#cba6f7\"},\"class:python\":{\"foreground\":\"#f9e2af\"},\"constant.builtin.readonly:nix\":{\"foreground\":\"#cba6f7\"},\"enumMember\":{\"foreground\":\"#94e2d5\"},\"function.decorator:python\":{\"foreground\":\"#fab387\"},\"generic.attribute:rust\":{\"foreground\":\"#cdd6f4\"},\"heading\":{\"foreground\":\"#f38ba8\"},\"number\":{\"foreground\":\"#fab387\"},\"pol\":{\"foreground\":\"#f2cdcd\"},\"property.readonly:javascript\":{\"foreground\":\"#cdd6f4\"},\"property.readonly:javascriptreact\":{\"foreground\":\"#cdd6f4\"},\"property.readonly:typescript\":{\"foreground\":\"#cdd6f4\"},\"property.readonly:typescriptreact\":{\"foreground\":\"#cdd6f4\"},\"selfKeyword\":{\"foreground\":\"#f38ba8\"},\"text.emph\":{\"fontStyle\":\"italic\",\"foreground\":\"#f38ba8\"},\"text.math\":{\"foreground\":\"#f2cdcd\"},\"text.strong\":{\"fontStyle\":\"bold\",\"foreground\":\"#f38ba8\"},\"tomlArrayKey\":{\"fontStyle\":\"\",\"foreground\":\"#89b4fa\"},\"tomlTableKey\":{\"fontStyle\":\"\",\"foreground\":\"#89b4fa\"},\"type.defaultLibrary:go\":{\"foreground\":\"#cba6f7\"},\"variable.defaultLibrary\":{\"foreground\":\"#eba0ac\"},\"variable.readonly.defaultLibrary:go\":{\"foreground\":\"#cba6f7\"},\"variable.readonly:javascript\":{\"foreground\":\"#cdd6f4\"},\"variable.readonly:javascriptreact\":{\"foreground\":\"#cdd6f4\"},\"variable.readonly:scala\":{\"foreground\":\"#cdd6f4\"},\"variable.readonly:typescript\":{\"foreground\":\"#cdd6f4\"},\"variable.readonly:typescriptreact\":{\"foreground\":\"#cdd6f4\"},\"variable.typeHint:python\":{\"foreground\":\"#f9e2af\"}},\"tokenColors\":[{\"scope\":[\"text\",\"source\",\"variable.other.readwrite\",\"punctuation.definition.variable\"],\"settings\":{\"foreground\":\"#cdd6f4\"}},{\"scope\":\"punctuation\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#9399b2\"}},{\"scope\":[\"comment\",\"punctuation.definition.comment\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#6c7086\"}},{\"scope\":[\"string\",\"punctuation.definition.string\"],\"settings\":{\"foreground\":\"#a6e3a1\"}},{\"scope\":\"constant.character.escape\",\"settings\":{\"foreground\":\"#f5c2e7\"}},{\"scope\":[\"constant.numeric\",\"variable.other.constant\",\"entity.name.constant\",\"constant.language.boolean\",\"constant.language.false\",\"constant.language.true\",\"keyword.other.unit.user-defined\",\"keyword.other.unit.suffix.floating-point\"],\"settings\":{\"foreground\":\"#fab387\"}},{\"scope\":[\"keyword\",\"keyword.operator.word\",\"keyword.operator.new\",\"variable.language.super\",\"support.type.primitive\",\"storage.type\",\"storage.modifier\",\"punctuation.definition.keyword\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#cba6f7\"}},{\"scope\":\"entity.name.tag.documentation\",\"settings\":{\"foreground\":\"#cba6f7\"}},{\"scope\":[\"keyword.operator\",\"punctuation.accessor\",\"punctuation.definition.generic\",\"meta.function.closure punctuation.section.parameters\",\"punctuation.definition.tag\",\"punctuation.separator.key-value\"],\"settings\":{\"foreground\":\"#94e2d5\"}},{\"scope\":[\"entity.name.function\",\"meta.function-call.method\",\"support.function\",\"support.function.misc\",\"variable.function\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#89b4fa\"}},{\"scope\":[\"entity.name.class\",\"entity.other.inherited-class\",\"support.class\",\"meta.function-call.constructor\",\"entity.name.struct\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#f9e2af\"}},{\"scope\":\"entity.name.enum\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#f9e2af\"}},{\"scope\":[\"meta.enum variable.other.readwrite\",\"variable.other.enummember\"],\"settings\":{\"foreground\":\"#94e2d5\"}},{\"scope\":\"meta.property.object\",\"settings\":{\"foreground\":\"#94e2d5\"}},{\"scope\":[\"meta.type\",\"meta.type-alias\",\"support.type\",\"entity.name.type\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#f9e2af\"}},{\"scope\":[\"meta.annotation variable.function\",\"meta.annotation variable.annotation.function\",\"meta.annotation punctuation.definition.annotation\",\"meta.decorator\",\"punctuation.decorator\"],\"settings\":{\"foreground\":\"#fab387\"}},{\"scope\":[\"variable.parameter\",\"meta.function.parameters\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#eba0ac\"}},{\"scope\":[\"constant.language\",\"support.function.builtin\"],\"settings\":{\"foreground\":\"#f38ba8\"}},{\"scope\":\"entity.other.attribute-name.documentation\",\"settings\":{\"foreground\":\"#f38ba8\"}},{\"scope\":[\"keyword.control.directive\",\"punctuation.definition.directive\"],\"settings\":{\"foreground\":\"#f9e2af\"}},{\"scope\":\"punctuation.definition.typeparameters\",\"settings\":{\"foreground\":\"#89dceb\"}},{\"scope\":\"entity.name.namespace\",\"settings\":{\"foreground\":\"#f9e2af\"}},{\"scope\":\"support.type.property-name.css\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#89b4fa\"}},{\"scope\":[\"variable.language.this\",\"variable.language.this punctuation.definition.variable\"],\"settings\":{\"foreground\":\"#f38ba8\"}},{\"scope\":\"variable.object.property\",\"settings\":{\"foreground\":\"#cdd6f4\"}},{\"scope\":[\"string.template variable\",\"string variable\"],\"settings\":{\"foreground\":\"#cdd6f4\"}},{\"scope\":\"keyword.operator.new\",\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":\"storage.modifier.specifier.extern.cpp\",\"settings\":{\"foreground\":\"#cba6f7\"}},{\"scope\":[\"entity.name.scope-resolution.template.call.cpp\",\"entity.name.scope-resolution.parameter.cpp\",\"entity.name.scope-resolution.cpp\",\"entity.name.scope-resolution.function.definition.cpp\"],\"settings\":{\"foreground\":\"#f9e2af\"}},{\"scope\":\"storage.type.class.doxygen\",\"settings\":{\"fontStyle\":\"\"}},{\"scope\":[\"storage.modifier.reference.cpp\"],\"settings\":{\"foreground\":\"#94e2d5\"}},{\"scope\":\"meta.interpolation.cs\",\"settings\":{\"foreground\":\"#cdd6f4\"}},{\"scope\":\"comment.block.documentation.cs\",\"settings\":{\"foreground\":\"#cdd6f4\"}},{\"scope\":[\"source.css entity.other.attribute-name.class.css\",\"entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css\"],\"settings\":{\"foreground\":\"#f9e2af\"}},{\"scope\":\"punctuation.separator.operator.css\",\"settings\":{\"foreground\":\"#94e2d5\"}},{\"scope\":\"source.css entity.other.attribute-name.pseudo-class\",\"settings\":{\"foreground\":\"#94e2d5\"}},{\"scope\":\"source.css constant.other.unicode-range\",\"settings\":{\"foreground\":\"#fab387\"}},{\"scope\":\"source.css variable.parameter.url\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#a6e3a1\"}},{\"scope\":[\"support.type.vendored.property-name\"],\"settings\":{\"foreground\":\"#89dceb\"}},{\"scope\":[\"source.css meta.property-value variable\",\"source.css meta.property-value variable.other.less\",\"source.css meta.property-value variable.other.less punctuation.definition.variable.less\",\"meta.definition.variable.scss\"],\"settings\":{\"foreground\":\"#eba0ac\"}},{\"scope\":[\"source.css meta.property-list variable\",\"meta.property-list variable.other.less\",\"meta.property-list variable.other.less punctuation.definition.variable.less\"],\"settings\":{\"foreground\":\"#89b4fa\"}},{\"scope\":\"keyword.other.unit.percentage.css\",\"settings\":{\"foreground\":\"#fab387\"}},{\"scope\":\"source.css meta.attribute-selector\",\"settings\":{\"foreground\":\"#a6e3a1\"}},{\"scope\":[\"keyword.other.definition.ini\",\"punctuation.support.type.property-name.json\",\"support.type.property-name.json\",\"punctuation.support.type.property-name.toml\",\"support.type.property-name.toml\",\"entity.name.tag.yaml\",\"punctuation.support.type.property-name.yaml\",\"support.type.property-name.yaml\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#89b4fa\"}},{\"scope\":[\"constant.language.json\",\"constant.language.yaml\"],\"settings\":{\"foreground\":\"#fab387\"}},{\"scope\":[\"entity.name.type.anchor.yaml\",\"variable.other.alias.yaml\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#f9e2af\"}},{\"scope\":[\"support.type.property-name.table\",\"entity.name.section.group-title.ini\"],\"settings\":{\"foreground\":\"#f9e2af\"}},{\"scope\":\"constant.other.time.datetime.offset.toml\",\"settings\":{\"foreground\":\"#f5c2e7\"}},{\"scope\":[\"punctuation.definition.anchor.yaml\",\"punctuation.definition.alias.yaml\"],\"settings\":{\"foreground\":\"#f5c2e7\"}},{\"scope\":\"entity.other.document.begin.yaml\",\"settings\":{\"foreground\":\"#f5c2e7\"}},{\"scope\":\"markup.changed.diff\",\"settings\":{\"foreground\":\"#fab387\"}},{\"scope\":[\"meta.diff.header.from-file\",\"meta.diff.header.to-file\",\"punctuation.definition.from-file.diff\",\"punctuation.definition.to-file.diff\"],\"settings\":{\"foreground\":\"#89b4fa\"}},{\"scope\":\"markup.inserted.diff\",\"settings\":{\"foreground\":\"#a6e3a1\"}},{\"scope\":\"markup.deleted.diff\",\"settings\":{\"foreground\":\"#f38ba8\"}},{\"scope\":[\"variable.other.env\"],\"settings\":{\"foreground\":\"#89b4fa\"}},{\"scope\":[\"string.quoted variable.other.env\"],\"settings\":{\"foreground\":\"#cdd6f4\"}},{\"scope\":\"support.function.builtin.gdscript\",\"settings\":{\"foreground\":\"#89b4fa\"}},{\"scope\":\"constant.language.gdscript\",\"settings\":{\"foreground\":\"#fab387\"}},{\"scope\":\"comment meta.annotation.go\",\"settings\":{\"foreground\":\"#eba0ac\"}},{\"scope\":\"comment meta.annotation.parameters.go\",\"settings\":{\"foreground\":\"#fab387\"}},{\"scope\":\"constant.language.go\",\"settings\":{\"foreground\":\"#fab387\"}},{\"scope\":\"variable.graphql\",\"settings\":{\"foreground\":\"#cdd6f4\"}},{\"scope\":\"string.unquoted.alias.graphql\",\"settings\":{\"foreground\":\"#f2cdcd\"}},{\"scope\":\"constant.character.enum.graphql\",\"settings\":{\"foreground\":\"#94e2d5\"}},{\"scope\":\"meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql\",\"settings\":{\"foreground\":\"#f2cdcd\"}},{\"scope\":[\"keyword.other.doctype\",\"meta.tag.sgml.doctype punctuation.definition.tag\",\"meta.tag.metadata.doctype entity.name.tag\",\"meta.tag.metadata.doctype punctuation.definition.tag\"],\"settings\":{\"foreground\":\"#cba6f7\"}},{\"scope\":[\"entity.name.tag\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#89b4fa\"}},{\"scope\":[\"text.html constant.character.entity\",\"text.html constant.character.entity punctuation\",\"constant.character.entity.xml\",\"constant.character.entity.xml punctuation\",\"constant.character.entity.js.jsx\",\"constant.charactger.entity.js.jsx punctuation\",\"constant.character.entity.tsx\",\"constant.character.entity.tsx punctuation\"],\"settings\":{\"foreground\":\"#f38ba8\"}},{\"scope\":[\"entity.other.attribute-name\"],\"settings\":{\"foreground\":\"#f9e2af\"}},{\"scope\":[\"support.class.component\",\"support.class.component.jsx\",\"support.class.component.tsx\",\"support.class.component.vue\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#f5c2e7\"}},{\"scope\":[\"punctuation.definition.annotation\",\"storage.type.annotation\"],\"settings\":{\"foreground\":\"#fab387\"}},{\"scope\":\"constant.other.enum.java\",\"settings\":{\"foreground\":\"#94e2d5\"}},{\"scope\":\"storage.modifier.import.java\",\"settings\":{\"foreground\":\"#cdd6f4\"}},{\"scope\":\"comment.block.javadoc.java keyword.other.documentation.javadoc.java\",\"settings\":{\"fontStyle\":\"\"}},{\"scope\":\"meta.export variable.other.readwrite.js\",\"settings\":{\"foreground\":\"#eba0ac\"}},{\"scope\":[\"variable.other.constant.js\",\"variable.other.constant.ts\",\"variable.other.property.js\",\"variable.other.property.ts\"],\"settings\":{\"foreground\":\"#cdd6f4\"}},{\"scope\":[\"variable.other.jsdoc\",\"comment.block.documentation variable.other\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#eba0ac\"}},{\"scope\":\"storage.type.class.jsdoc\",\"settings\":{\"fontStyle\":\"\"}},{\"scope\":\"support.type.object.console.js\",\"settings\":{\"foreground\":\"#cdd6f4\"}},{\"scope\":[\"support.constant.node\",\"support.type.object.module.js\"],\"settings\":{\"foreground\":\"#cba6f7\"}},{\"scope\":\"storage.modifier.implements\",\"settings\":{\"foreground\":\"#cba6f7\"}},{\"scope\":[\"constant.language.null.js\",\"constant.language.null.ts\",\"constant.language.undefined.js\",\"constant.language.undefined.ts\",\"support.type.builtin.ts\"],\"settings\":{\"foreground\":\"#cba6f7\"}},{\"scope\":\"variable.parameter.generic\",\"settings\":{\"foreground\":\"#f9e2af\"}},{\"scope\":[\"keyword.declaration.function.arrow.js\",\"storage.type.function.arrow.ts\"],\"settings\":{\"foreground\":\"#94e2d5\"}},{\"scope\":\"punctuation.decorator.ts\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#89b4fa\"}},{\"scope\":[\"keyword.operator.expression.in.js\",\"keyword.operator.expression.in.ts\",\"keyword.operator.expression.infer.ts\",\"keyword.operator.expression.instanceof.js\",\"keyword.operator.expression.instanceof.ts\",\"keyword.operator.expression.is\",\"keyword.operator.expression.keyof.ts\",\"keyword.operator.expression.of.js\",\"keyword.operator.expression.of.ts\",\"keyword.operator.expression.typeof.ts\"],\"settings\":{\"foreground\":\"#cba6f7\"}},{\"scope\":\"support.function.macro.julia\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#94e2d5\"}},{\"scope\":\"constant.language.julia\",\"settings\":{\"foreground\":\"#fab387\"}},{\"scope\":\"constant.other.symbol.julia\",\"settings\":{\"foreground\":\"#eba0ac\"}},{\"scope\":\"text.tex keyword.control.preamble\",\"settings\":{\"foreground\":\"#94e2d5\"}},{\"scope\":\"text.tex support.function.be\",\"settings\":{\"foreground\":\"#89dceb\"}},{\"scope\":\"constant.other.general.math.tex\",\"settings\":{\"foreground\":\"#f2cdcd\"}},{\"scope\":\"variable.language.liquid\",\"settings\":{\"foreground\":\"#f5c2e7\"}},{\"scope\":\"comment.line.double-dash.documentation.lua storage.type.annotation.lua\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#cba6f7\"}},{\"scope\":[\"comment.line.double-dash.documentation.lua entity.name.variable.lua\",\"comment.line.double-dash.documentation.lua variable.lua\"],\"settings\":{\"foreground\":\"#cdd6f4\"}},{\"scope\":[\"heading.1.markdown punctuation.definition.heading.markdown\",\"heading.1.markdown\",\"heading.1.quarto punctuation.definition.heading.quarto\",\"heading.1.quarto\",\"markup.heading.atx.1.mdx\",\"markup.heading.atx.1.mdx punctuation.definition.heading.mdx\",\"markup.heading.setext.1.markdown\",\"markup.heading.heading-0.asciidoc\"],\"settings\":{\"foreground\":\"#f38ba8\"}},{\"scope\":[\"heading.2.markdown punctuation.definition.heading.markdown\",\"heading.2.markdown\",\"heading.2.quarto punctuation.definition.heading.quarto\",\"heading.2.quarto\",\"markup.heading.atx.2.mdx\",\"markup.heading.atx.2.mdx punctuation.definition.heading.mdx\",\"markup.heading.setext.2.markdown\",\"markup.heading.heading-1.asciidoc\"],\"settings\":{\"foreground\":\"#fab387\"}},{\"scope\":[\"heading.3.markdown punctuation.definition.heading.markdown\",\"heading.3.markdown\",\"heading.3.quarto punctuation.definition.heading.quarto\",\"heading.3.quarto\",\"markup.heading.atx.3.mdx\",\"markup.heading.atx.3.mdx punctuation.definition.heading.mdx\",\"markup.heading.heading-2.asciidoc\"],\"settings\":{\"foreground\":\"#f9e2af\"}},{\"scope\":[\"heading.4.markdown punctuation.definition.heading.markdown\",\"heading.4.markdown\",\"heading.4.quarto punctuation.definition.heading.quarto\",\"heading.4.quarto\",\"markup.heading.atx.4.mdx\",\"markup.heading.atx.4.mdx punctuation.definition.heading.mdx\",\"markup.heading.heading-3.asciidoc\"],\"settings\":{\"foreground\":\"#a6e3a1\"}},{\"scope\":[\"heading.5.markdown punctuation.definition.heading.markdown\",\"heading.5.markdown\",\"heading.5.quarto punctuation.definition.heading.quarto\",\"heading.5.quarto\",\"markup.heading.atx.5.mdx\",\"markup.heading.atx.5.mdx punctuation.definition.heading.mdx\",\"markup.heading.heading-4.asciidoc\"],\"settings\":{\"foreground\":\"#89b4fa\"}},{\"scope\":[\"heading.6.markdown punctuation.definition.heading.markdown\",\"heading.6.markdown\",\"heading.6.quarto punctuation.definition.heading.quarto\",\"heading.6.quarto\",\"markup.heading.atx.6.mdx\",\"markup.heading.atx.6.mdx punctuation.definition.heading.mdx\",\"markup.heading.heading-5.asciidoc\"],\"settings\":{\"foreground\":\"#cba6f7\"}},{\"scope\":\"markup.bold\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#f38ba8\"}},{\"scope\":\"markup.italic\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#f38ba8\"}},{\"scope\":\"markup.strikethrough\",\"settings\":{\"fontStyle\":\"strikethrough\",\"foreground\":\"#a6adc8\"}},{\"scope\":[\"punctuation.definition.link\",\"markup.underline.link\"],\"settings\":{\"foreground\":\"#89b4fa\"}},{\"scope\":[\"text.html.markdown punctuation.definition.link.title\",\"text.html.quarto punctuation.definition.link.title\",\"string.other.link.title.markdown\",\"string.other.link.title.quarto\",\"markup.link\",\"punctuation.definition.constant.markdown\",\"punctuation.definition.constant.quarto\",\"constant.other.reference.link.markdown\",\"constant.other.reference.link.quarto\",\"markup.substitution.attribute-reference\"],\"settings\":{\"foreground\":\"#b4befe\"}},{\"scope\":[\"punctuation.definition.raw.markdown\",\"punctuation.definition.raw.quarto\",\"markup.inline.raw.string.markdown\",\"markup.inline.raw.string.quarto\",\"markup.raw.block.markdown\",\"markup.raw.block.quarto\"],\"settings\":{\"foreground\":\"#a6e3a1\"}},{\"scope\":\"fenced_code.block.language\",\"settings\":{\"foreground\":\"#89dceb\"}},{\"scope\":[\"markup.fenced_code.block punctuation.definition\",\"markup.raw support.asciidoc\"],\"settings\":{\"foreground\":\"#9399b2\"}},{\"scope\":[\"markup.quote\",\"punctuation.definition.quote.begin\"],\"settings\":{\"foreground\":\"#f5c2e7\"}},{\"scope\":\"meta.separator.markdown\",\"settings\":{\"foreground\":\"#94e2d5\"}},{\"scope\":[\"punctuation.definition.list.begin.markdown\",\"punctuation.definition.list.begin.quarto\",\"markup.list.bullet\"],\"settings\":{\"foreground\":\"#94e2d5\"}},{\"scope\":\"markup.heading.quarto\",\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":[\"entity.other.attribute-name.multipart.nix\",\"entity.other.attribute-name.single.nix\"],\"settings\":{\"foreground\":\"#89b4fa\"}},{\"scope\":\"variable.parameter.name.nix\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#cdd6f4\"}},{\"scope\":\"meta.embedded variable.parameter.name.nix\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#b4befe\"}},{\"scope\":\"string.unquoted.path.nix\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#f5c2e7\"}},{\"scope\":[\"support.attribute.builtin\",\"meta.attribute.php\"],\"settings\":{\"foreground\":\"#f9e2af\"}},{\"scope\":\"meta.function.parameters.php punctuation.definition.variable.php\",\"settings\":{\"foreground\":\"#eba0ac\"}},{\"scope\":\"constant.language.php\",\"settings\":{\"foreground\":\"#cba6f7\"}},{\"scope\":\"text.html.php support.function\",\"settings\":{\"foreground\":\"#89dceb\"}},{\"scope\":\"keyword.other.phpdoc.php\",\"settings\":{\"fontStyle\":\"\"}},{\"scope\":[\"support.variable.magic.python\",\"meta.function-call.arguments.python\"],\"settings\":{\"foreground\":\"#cdd6f4\"}},{\"scope\":[\"support.function.magic.python\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#89dceb\"}},{\"scope\":[\"variable.parameter.function.language.special.self.python\",\"variable.language.special.self.python\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#f38ba8\"}},{\"scope\":[\"keyword.control.flow.python\",\"keyword.operator.logical.python\"],\"settings\":{\"foreground\":\"#cba6f7\"}},{\"scope\":\"storage.type.function.python\",\"settings\":{\"foreground\":\"#cba6f7\"}},{\"scope\":[\"support.token.decorator.python\",\"meta.function.decorator.identifier.python\"],\"settings\":{\"foreground\":\"#89dceb\"}},{\"scope\":[\"meta.function-call.python\"],\"settings\":{\"foreground\":\"#89b4fa\"}},{\"scope\":[\"entity.name.function.decorator.python\",\"punctuation.definition.decorator.python\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#fab387\"}},{\"scope\":\"constant.character.format.placeholder.other.python\",\"settings\":{\"foreground\":\"#f5c2e7\"}},{\"scope\":[\"support.type.exception.python\",\"support.function.builtin.python\"],\"settings\":{\"foreground\":\"#fab387\"}},{\"scope\":[\"support.type.python\"],\"settings\":{\"foreground\":\"#fab387\"}},{\"scope\":\"constant.language.python\",\"settings\":{\"foreground\":\"#cba6f7\"}},{\"scope\":[\"meta.indexed-name.python\",\"meta.item-access.python\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#eba0ac\"}},{\"scope\":\"storage.type.string.python\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#a6e3a1\"}},{\"scope\":\"meta.function.parameters.python\",\"settings\":{\"fontStyle\":\"\"}},{\"scope\":[\"string.regexp punctuation.definition.string.begin\",\"string.regexp punctuation.definition.string.end\"],\"settings\":{\"foreground\":\"#f5c2e7\"}},{\"scope\":\"keyword.control.anchor.regexp\",\"settings\":{\"foreground\":\"#cba6f7\"}},{\"scope\":\"string.regexp.ts\",\"settings\":{\"foreground\":\"#cdd6f4\"}},{\"scope\":[\"punctuation.definition.group.regexp\",\"keyword.other.back-reference.regexp\"],\"settings\":{\"foreground\":\"#a6e3a1\"}},{\"scope\":\"punctuation.definition.character-class.regexp\",\"settings\":{\"foreground\":\"#f9e2af\"}},{\"scope\":\"constant.other.character-class.regexp\",\"settings\":{\"foreground\":\"#f5c2e7\"}},{\"scope\":\"constant.other.character-class.range.regexp\",\"settings\":{\"foreground\":\"#f5e0dc\"}},{\"scope\":\"keyword.operator.quantifier.regexp\",\"settings\":{\"foreground\":\"#94e2d5\"}},{\"scope\":\"constant.character.numeric.regexp\",\"settings\":{\"foreground\":\"#fab387\"}},{\"scope\":[\"punctuation.definition.group.no-capture.regexp\",\"meta.assertion.look-ahead.regexp\",\"meta.assertion.negative-look-ahead.regexp\"],\"settings\":{\"foreground\":\"#89b4fa\"}},{\"scope\":[\"meta.annotation.rust\",\"meta.annotation.rust punctuation\",\"meta.attribute.rust\",\"punctuation.definition.attribute.rust\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#f9e2af\"}},{\"scope\":[\"meta.attribute.rust string.quoted.double.rust\",\"meta.attribute.rust string.quoted.single.char.rust\"],\"settings\":{\"fontStyle\":\"\"}},{\"scope\":[\"entity.name.function.macro.rules.rust\",\"storage.type.module.rust\",\"storage.modifier.rust\",\"storage.type.struct.rust\",\"storage.type.enum.rust\",\"storage.type.trait.rust\",\"storage.type.union.rust\",\"storage.type.impl.rust\",\"storage.type.rust\",\"storage.type.function.rust\",\"storage.type.type.rust\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#cba6f7\"}},{\"scope\":\"entity.name.type.numeric.rust\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#cba6f7\"}},{\"scope\":\"meta.generic.rust\",\"settings\":{\"foreground\":\"#fab387\"}},{\"scope\":\"entity.name.impl.rust\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#f9e2af\"}},{\"scope\":\"entity.name.module.rust\",\"settings\":{\"foreground\":\"#fab387\"}},{\"scope\":\"entity.name.trait.rust\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#f9e2af\"}},{\"scope\":\"storage.type.source.rust\",\"settings\":{\"foreground\":\"#f9e2af\"}},{\"scope\":\"entity.name.union.rust\",\"settings\":{\"foreground\":\"#f9e2af\"}},{\"scope\":\"meta.enum.rust storage.type.source.rust\",\"settings\":{\"foreground\":\"#94e2d5\"}},{\"scope\":[\"support.macro.rust\",\"meta.macro.rust support.function.rust\",\"entity.name.function.macro.rust\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#89b4fa\"}},{\"scope\":[\"storage.modifier.lifetime.rust\",\"entity.name.type.lifetime\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#89b4fa\"}},{\"scope\":\"string.quoted.double.rust constant.other.placeholder.rust\",\"settings\":{\"foreground\":\"#f5c2e7\"}},{\"scope\":\"meta.function.return-type.rust meta.generic.rust storage.type.rust\",\"settings\":{\"foreground\":\"#cdd6f4\"}},{\"scope\":\"meta.function.call.rust\",\"settings\":{\"foreground\":\"#89b4fa\"}},{\"scope\":\"punctuation.brackets.angle.rust\",\"settings\":{\"foreground\":\"#89dceb\"}},{\"scope\":\"constant.other.caps.rust\",\"settings\":{\"foreground\":\"#fab387\"}},{\"scope\":[\"meta.function.definition.rust variable.other.rust\"],\"settings\":{\"foreground\":\"#eba0ac\"}},{\"scope\":\"meta.function.call.rust variable.other.rust\",\"settings\":{\"foreground\":\"#cdd6f4\"}},{\"scope\":\"variable.language.self.rust\",\"settings\":{\"foreground\":\"#f38ba8\"}},{\"scope\":[\"variable.other.metavariable.name.rust\",\"meta.macro.metavariable.rust keyword.operator.macro.dollar.rust\"],\"settings\":{\"foreground\":\"#f5c2e7\"}},{\"scope\":[\"comment.line.shebang\",\"comment.line.shebang punctuation.definition.comment\",\"comment.line.shebang\",\"punctuation.definition.comment.shebang.shell\",\"meta.shebang.shell\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#f5c2e7\"}},{\"scope\":\"comment.line.shebang constant.language\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#94e2d5\"}},{\"scope\":[\"meta.function-call.arguments.shell punctuation.definition.variable.shell\",\"meta.function-call.arguments.shell punctuation.section.interpolation\",\"meta.function-call.arguments.shell punctuation.definition.variable.shell\",\"meta.function-call.arguments.shell punctuation.section.interpolation\"],\"settings\":{\"foreground\":\"#f38ba8\"}},{\"scope\":\"meta.string meta.interpolation.parameter.shell variable.other.readwrite\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#fab387\"}},{\"scope\":[\"source.shell punctuation.section.interpolation\",\"punctuation.definition.evaluation.backticks.shell\"],\"settings\":{\"foreground\":\"#94e2d5\"}},{\"scope\":\"entity.name.tag.heredoc.shell\",\"settings\":{\"foreground\":\"#cba6f7\"}},{\"scope\":\"string.quoted.double.shell variable.other.normal.shell\",\"settings\":{\"foreground\":\"#cdd6f4\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/LKU2TuZ1.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"PL/SQL\",\"fileTypes\":[\"sql\",\"ddl\",\"dml\",\"pkh\",\"pks\",\"pkb\",\"pck\",\"pls\",\"plb\"],\"foldingStartMarker\":\"(?i)^\\\\\\\\s*(begin|if|loop)\\\\\\\\b\",\"foldingStopMarker\":\"(?i)^\\\\\\\\s*(end)\\\\\\\\b\",\"name\":\"plsql\",\"patterns\":[{\"begin\":\"/\\\\\\\\*\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.oracle\"},{\"match\":\"--.*$\",\"name\":\"comment.line.double-dash.oracle\"},{\"match\":\"(?i)(?:^\\\\\\\\s*)rem(?:\\\\\\\\s+.*$)\",\"name\":\"comment.line.sqlplus.oracle\"},{\"match\":\"(?i)(?:^\\\\\\\\s*)prompt(?:\\\\\\\\s+.*$)\",\"name\":\"comment.line.sqlplus-prompt.oracle\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.oracle\"},\"2\":{\"name\":\"keyword.other.oracle\"}},\"match\":\"(?i)^\\\\\\\\s*(create)(\\\\\\\\s+or\\\\\\\\s+replace)?\\\\\\\\s+\",\"name\":\"meta.create.oracle\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.oracle\"},\"2\":{\"name\":\"keyword.other.oracle\"},\"3\":{\"name\":\"entity.name.type.oracle\"}},\"match\":\"(?i)\\\\\\\\b(package)(\\\\\\\\s+body)?\\\\\\\\s+(\\\\\\\\S+)\",\"name\":\"meta.package.oracle\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.oracle\"},\"2\":{\"name\":\"entity.name.type.oracle\"}},\"match\":\"(?i)\\\\\\\\b(type)\\\\\\\\s+\\\\\"([^\\\\\"]+)\\\\\"\",\"name\":\"meta.type.oracle\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.oracle\"},\"2\":{\"name\":\"entity.name.function.oracle\"}},\"match\":\"(?i)^\\\\\\\\s*(function|procedure)\\\\\\\\s+\\\\\"?([-a-z0-9_]+)\\\\\"?\",\"name\":\"meta.procedure.oracle\"},{\"match\":\"[!<>:]?=|<>|<|>|\\\\\\\\+|(?<!\\\\\\\\.)\\\\\\\\*|-|(?<!^)/|\\\\\\\\|\\\\\\\\|\",\"name\":\"keyword.operator.oracle\"},{\"match\":\"(?i)\\\\\\\\b(true|false|null|is\\\\\\\\s+(not\\\\\\\\s+)?null)\\\\\\\\b\",\"name\":\"constant.language.oracle\"},{\"match\":\"\\\\\\\\b\\\\\\\\d+(\\\\\\\\.\\\\\\\\d+)?\\\\\\\\b\",\"name\":\"constant.numeric.oracle\"},{\"match\":\"(?i)\\\\\\\\b(if|elsif|else|end\\\\\\\\s+if|loop|end\\\\\\\\s+loop|for|while|case|end\\\\\\\\s+case|continue|return|goto)\\\\\\\\b\",\"name\":\"keyword.control.oracle\"},{\"match\":\"(?i)\\\\\\\\b(or|and|not|like)\\\\\\\\b\",\"name\":\"keyword.other.oracle\"},{\"match\":\"(?i)\\\\\\\\b(%(isopen|found|notfound|rowcount)|commit|rollback|sqlerrm)\\\\\\\\b\",\"name\":\"support.function.oracle\"},{\"match\":\"(?i)\\\\\\\\b(sql|sqlcode)\\\\\\\\b\",\"name\":\"variable.language.oracle\"},{\"match\":\"(?i)\\\\\\\\b(ascii|asciistr|chr|compose|concat|convert|decompose|dump|initcap|instr|instrb|instrc|instr2|instr4|unistr|length|lengthb|lengthc|length2|length4|lower|lpad|ltrim|nchr|replace|rpad|rtrim|soundex|substr|translate|trim|upper|vsize)\\\\\\\\b\",\"name\":\"support.function.builtin.char.oracle\"},{\"match\":\"(?i)\\\\\\\\b(add_months|current_date|current_timestamp|dbtimezone|last_day|localtimestamp|months_between|new_time|next_day|round|sessiontimezone|sysdate|tz_offset|systimestamp)\\\\\\\\b\",\"name\":\"support.function.builtin.date.oracle\"},{\"match\":\"(?i)\\\\\\\\b(avg|count|sum|max|min|median|corr|corr_\\\\\\\\w+|covar_(pop|samp)|cume_dist|dense_rank|first|group_id|grouping|grouping_id|last|percentile_cont|percentile_disc|percent_rank|rank|regr_\\\\\\\\w+|row_number|stats_binomial_test|stats_crosstab|stats_f_test|stats_ks_test|stats_mode|stats_mw_test|stats_one_way_anova|stats_t_test_\\\\\\\\w+|stats_wsr_test|stddev|stddev_pop|stddev_samp|var_pop|var_samp|variance)\\\\\\\\b\",\"name\":\"support.function.builtin.aggregate.oracle\"},{\"match\":\"(?i)\\\\\\\\b(bfilename|cardinality|coalesce|decode|empty_(blob|clob)|lag|lead|listagg|lnnvl|nanvl|nullif|nvl|nvl2|sys_(context|guid|typeid|connect_by_path|extract_utc)|uid|(current\\\\\\\\s+)?user|userenv|cardinality|(bulk\\\\\\\\s+)?collect|powermultiset(_by_cardinality)?|ora_hash|standard_hash|execute\\\\\\\\s+immediate|alter\\\\\\\\s+session)\\\\\\\\b\",\"name\":\"support.function.builtin.advanced.oracle\"},{\"match\":\"(?i)\\\\\\\\b(bin_to_num|cast|chartorowid|from_tz|hextoraw|numtodsinterval|numtoyminterval|rawtohex|rawtonhex|to_char|to_clob|to_date|to_dsinterval|to_lob|to_multi_byte|to_nclob|to_number|to_single_byte|to_timestamp|to_timestamp_tz|to_yminterval|scn_to_timestamp|timestamp_to_scn|rowidtochar|rowidtonchar|to_binary_double|to_binary_float|to_blob|to_nchar|con_dbid_to_id|con_guid_to_id|con_name_to_id|con_uid_to_id)\\\\\\\\b\",\"name\":\"support.function.builtin.convert.oracle\"},{\"match\":\"(?i)\\\\\\\\b(abs|acos|asin|atan|atan2|bit_(and|or|xor)|ceil|cos|cosh|exp|extract|floor|greatest|least|ln|log|mod|power|remainder|round|sign|sin|sinh|sqrt|tan|tanh|trunc)\\\\\\\\b\",\"name\":\"support.function.builtin.math.oracle\"},{\"match\":\"(?i)\\\\\\\\b(\\\\\\\\.(count|delete|exists|extend|first|last|limit|next|prior|trim|reverse))\\\\\\\\b\",\"name\":\"support.function.builtin.collection.oracle\"},{\"match\":\"(?i)\\\\\\\\b(cluster_details|cluster_distance|cluster_id|cluster_probability|cluster_set|feature_details|feature_id|feature_set|feature_value|prediction|prediction_bounds|prediction_cost|prediction_details|prediction_probability|prediction_set)\\\\\\\\b\",\"name\":\"support.function.builtin.data_mining.oracle\"},{\"match\":\"(?i)\\\\\\\\b(appendchildxml|deletexml|depth|extract|existsnode|extractvalue|insertchildxml|insertxmlbefore|xmlcast|xmldiff|xmlelement|xmlexists|xmlisvalid|insertchildxmlafter|insertchildxmlbefore|path|sys_dburigen|sys_xmlagg|sys_xmlgen|updatexml|xmlagg|xmlcdata|xmlcolattval|xmlcomment|xmlconcat|xmlforest|xmlparse|xmlpi|xmlquery|xmlroot|xmlsequence|xmlserialize|xmltable|xmltransform)\\\\\\\\b\",\"name\":\"support.function.builtin.xml.oracle\"},{\"match\":\"(?i)\\\\\\\\b(pragma\\\\\\\\s+(autonomous_transaction|serially_reusable|restrict_references|exception_init|inline))\\\\\\\\b\",\"name\":\"keyword.other.pragma.oracle\"},{\"match\":\"(?i)\\\\\\\\b(p(i|o|io)_[-a-z0-9_]+)\\\\\\\\b\",\"name\":\"variable.parameter.oracle\"},{\"match\":\"(?i)\\\\\\\\b(l_[-a-z0-9_]+)\\\\\\\\b\",\"name\":\"variable.other.oracle\"},{\"match\":\"(?i):\\\\\\\\b(new|old)\\\\\\\\b\",\"name\":\"variable.trigger.oracle\"},{\"match\":\"(?i)\\\\\\\\b(connect\\\\\\\\s+by\\\\\\\\s+(nocycle\\\\\\\\s+)?(prior|level)|connect_by_(root|icycle)|level|start\\\\\\\\s+with)\\\\\\\\b\",\"name\":\"keyword.hierarchical.sql.oracle\"},{\"match\":\"(?i)\\\\\\\\b(language|name|java|c)\\\\\\\\b\",\"name\":\"keyword.wrapper.oracle\"},{\"match\":\"(?i)\\\\\\\\b(end|then|deterministic|exception|when|declare|begin|in|out|nocopy|is|as|exit|open|fetch|into|close|subtype|type|rowtype|default|exclusive|mode|lock|record|index\\\\\\\\s+by|result_cache|constant|comment|\\\\\\\\.(nextval|currval))\\\\\\\\b\",\"name\":\"keyword.other.oracle\"},{\"match\":\"(?i)\\\\\\\\b(grant|revoke|alter|drop|force|add|check|constraint|primary\\\\\\\\s+key|foreign\\\\\\\\s+key|references|unique(\\\\\\\\s+index)?|column|sequence|increment\\\\\\\\s+by|cache|(materialized\\\\\\\\s+)?view|trigger|storage|tablespace|pct(free|used)|(init|max)trans|logging)\\\\\\\\b\",\"name\":\"keyword.other.ddl.oracle\"},{\"match\":\"(?i)\\\\\\\\b(with|select|from|where|order\\\\\\\\s+(siblings\\\\\\\\s+)?by|group\\\\\\\\s+by|rollup|cube|((left|right|cross|natural)\\\\\\\\s+(outer\\\\\\\\s+)?)?join|on|asc|desc|update|set|insert|into|values|delete|distinct|union|minus|intersect|having|limit|table|between|like|of|row|(range|rows)\\\\\\\\s+between|nulls\\\\\\\\s+first|nulls\\\\\\\\s+last|before|after|all|any|exists|rownum|cursor|returning|over|partition\\\\\\\\s+by|merge|using|matched|pivot|unpivot)\\\\\\\\b\",\"name\":\"keyword.other.sql.oracle\"},{\"match\":\"(?i)\\\\\\\\b(define|whenever\\\\\\\\s+sqlerror|exec|timing\\\\\\\\s+start|timing\\\\\\\\s+stop)\\\\\\\\b\",\"name\":\"keyword.other.sqlplus.oracle\"},{\"match\":\"(?i)\\\\\\\\b(access_into_null|case_not_found|collection_is_null|cursor_already_open|dup_val_on_index|invalid_cursor|invalid_number|login_denied|no_data_found|not_logged_on|program_error|rowtype_mismatch|self_is_null|storage_error|subscript_beyond_count|subscript_outside_limit|sys_invalid_rowid|timeout_on_resource|too_many_rows|value_error|zero_divide|others)\\\\\\\\b\",\"name\":\"support.type.exception.oracle\"},{\"captures\":{\"3\":{\"name\":\"support.class.oracle\"}},\"match\":\"(?i)\\\\\\\\b((dbms|utl|owa|apex)_\\\\\\\\w+\\\\\\\\.(\\\\\\\\w+))\\\\\\\\b\",\"name\":\"support.function.oracle\"},{\"captures\":{\"3\":{\"name\":\"support.class.oracle\"}},\"match\":\"(?i)\\\\\\\\b((htf|htp)\\\\\\\\.(\\\\\\\\w+))\\\\\\\\b\",\"name\":\"support.function.oracle\"},{\"captures\":{\"3\":{\"name\":\"support.class.user-defined.oracle\"}},\"match\":\"(?i)\\\\\\\\b((\\\\\\\\w+_pkg|pkg_\\\\\\\\w+)\\\\\\\\.(\\\\\\\\w+))\\\\\\\\b\",\"name\":\"support.function.user-defined.oracle\"},{\"match\":\"(?i)\\\\\\\\b(raise|raise_application_error)\\\\\\\\b\",\"name\":\"support.function.oracle\"},{\"begin\":\"'\",\"end\":\"'\",\"name\":\"string.quoted.single.oracle\"},{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.oracle\"},{\"match\":\"(?i)\\\\\\\\b(char|varchar|varchar2|nchar|nvarchar2|boolean|date|timestamp(\\\\\\\\s+with(\\\\\\\\s+local)?\\\\\\\\s+time\\\\\\\\s+zone)?|interval\\\\\\\\s*day(\\\\\\\\(\\\\\\\\d*\\\\\\\\))?\\\\\\\\s*to\\\\\\\\s*month|interval\\\\\\\\s*year(\\\\\\\\(\\\\\\\\d*\\\\\\\\))?\\\\\\\\s*to\\\\\\\\s*second(\\\\\\\\(\\\\\\\\d*\\\\\\\\))?|xmltype|blob|clob|nclob|bfile|long|long\\\\\\\\s+raw|raw|number|integer|decimal|smallint|float|binary_(float|double|integer)|pls_(float|double|integer)|rowid|urowid|vararray|natural|naturaln|positive|positiven|signtype|simple_(float|double|integer))\\\\\\\\b\",\"name\":\"storage.type.oracle\"}],\"scopeName\":\"source.plsql.oracle\"}`)),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/LiveTabs.15UVtLVQ.css",
    "content": ".group:hover .tab-text-fade-hover[data-v-54b92cce],.tab-text-fade-active[data-v-54b92cce]{mask-image:linear-gradient(90deg,#000 calc(100% - 32px),transparent);-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 32px),transparent)}\n"
  },
  {
    "path": "jesse/static/_nuxt/O-0jUIAi.js",
    "content": "import{_ as te}from\"./Dr_JbmT0.js\";import{d as oe,a6 as ne,a4 as re,a0 as de,A as ie,c as p,r as x,B as ue,w as z,a7 as ce,h as I,C as k,j as s,i as t,x as o,E as B,f as n,F as _e,O as me,D as y,ab as pe,t as ye,g as S,k as ve,a9 as ge,G as w,J as H,H as fe}from\"./CU_MfyYc.js\";import{_ as he}from\"./CvhZxjKo.js\";import{_ as be}from\"./Cw4FHd9N.js\";import{_ as xe}from\"./BuljS_lV.js\";import{_ as we}from\"./Bk9BmIv8.js\";import{u as ke}from\"./Cwg39VG_.js\";import\"./C6794tGI.js\";import\"./DP9I38t9.js\";const Se={class:\"w-full\"},Ve={class:\"container mx-auto px-4 pt-16 pb-6 max-w-7xl\"},qe={class:\"mb-8\"},Oe={class:\"bg-white dark:bg-gray-800/50 border border-gray-200 dark:border-gray-700 rounded-2xl p-6 shadow-sm\"},Te={class:\"space-y-6\"},Ce={class:\"grid grid-cols-1 lg:grid-cols-12 gap-5\"},Le={class:\"lg:col-span-6\"},Ue={class:\"lg:col-span-3\"},Ee={class:\"lg:col-span-3\"},Fe={class:\"pt-6 border-t border-gray-100 dark:border-gray-700/50\"},Ae={class:\"flex flex-col sm:flex-row gap-5 sm:items-end\"},De={class:\"w-full sm:flex-1 grid grid-cols-1 sm:grid-cols-4 gap-5\"},Me={class:\"flex justify-end pt-2 sm:pt-0\"},Re={key:0,class:\"space-y-4\"},ze={class:\"bg-white dark:bg-gray-800 shadow rounded-lg overflow-hidden\"},Ie={class:\"divide-y divide-gray-200 dark:divide-gray-700\"},Be={class:\"hidden md:grid md:grid-cols-9 gap-4 items-center\"},He={class:\"col-span-1\"},Ne={class:\"col-span-1\"},Pe={class:\"col-span-1\"},je={class:\"col-span-1\"},$e={class:\"col-span-1\"},Ke={class:\"col-span-1\"},Ge={class:\"col-span-1\"},Je={class:\"col-span-1\"},Ye={class:\"col-span-2\"},Qe={key:1,class:\"space-y-4\"},Xe={class:\"bg-white dark:bg-gray-800/50 border border-gray-200 dark:border-gray-700 rounded-lg overflow-hidden shadow-sm\"},We={class:\"text-sm font-medium\"},Ze={class:\"text-sm text-gray-700 dark:text-gray-300\"},el={class:\"text-sm text-gray-700 dark:text-gray-300\"},ll={class:\"text-sm text-gray-700 dark:text-gray-300\"},sl={class:\"text-sm text-gray-700 dark:text-gray-300\"},al={class:\"text-sm text-gray-500 dark:text-gray-400\"},tl={key:0,class:\"flex justify-center\"},ol={key:2,class:\"bg-white dark:bg-gray-800 shadow rounded-lg p-12 text-center\"},N=50,vl=oe({__name:\"orders-history\",setup(nl){ke({title:\"Orders History - Jesse\"});const r=ne(),v=re(),F=de(),V=ie(),P=p(()=>V.tabs),g=x([]),T=x(!1),L=x(!1),U=x(!0),q=x(0),C=x(!1),A=x(null),f=p({get:()=>r.query.id||\"\",set:l=>{const e={...r.query};l?e.id=l:delete e.id,v.push({query:e})}}),d=p({get:()=>r.query.status||\"all\",set:l=>{const e={...r.query};l===\"all\"?delete e.status:e.status=l,v.push({query:e})}}),h=p({get:()=>r.query.symbol||\"\",set:l=>{const e={...r.query};l?e.symbol=l:delete e.symbol,v.push({query:e})}}),i=p({get:()=>r.query.dateRange||\"all_time\",set:l=>{const e={...r.query};l===\"all_time\"?delete e.dateRange:e.dateRange=l,v.push({query:e})}}),u=p({get:()=>r.query.exchange||\"all\",set:l=>{const e={...r.query};l===\"all\"?delete e.exchange:e.exchange=l,v.push({query:e})}}),c=p({get:()=>r.query.type||\"all\",set:l=>{const e={...r.query};l===\"all\"?delete e.type:e.type=l,v.push({query:e})}}),_=p({get:()=>r.query.side||\"all\",set:l=>{const e={...r.query};l===\"all\"?delete e.side:e.side=l,v.push({query:e})}}),j=[{label:\"All Statuses\",value:\"all\"},{label:\"Active\",value:\"ACTIVE\"},{label:\"Executed\",value:\"EXECUTED\"},{label:\"Canceled\",value:\"CANCELED\"},{label:\"Partially Filled\",value:\"PARTIALLY_FILLED\"}],$=[{label:\"All Time\",value:\"all_time\"},{label:\"Last 7 Days\",value:\"7_days\"},{label:\"Last 30 Days\",value:\"30_days\"},{label:\"Last 90 Days\",value:\"90_days\"}],K=p(()=>{const l=[{label:\"All Exchanges\",value:\"all\",disabled:!1}];for(const e of F.liveTradingExchangeNames)F.planLimits.exchanges.includes(e)?l.push({label:e,value:e,disabled:!1}):l.push({label:`${e} (Upgrade required)`,value:e,disabled:!0});return l}),G=[{label:\"All Types\",value:\"all\"},{label:\"Market\",value:\"MARKET\"},{label:\"Limit\",value:\"LIMIT\"},{label:\"Stop\",value:\"STOP\"},{label:\"FOK\",value:\"FOK\"},{label:\"Stop Limit\",value:\"STOP LIMIT\"}],J=[{label:\"All Sides\",value:\"all\"},{label:\"Buy\",value:\"buy\"},{label:\"Sell\",value:\"sell\"}],Y=[{key:\"symbol\",label:\"Symbol\"},{key:\"exchange\",label:\"Exchange\"},{key:\"side\",label:\"Side\"},{key:\"type\",label:\"Type\"},{key:\"price\",label:\"Price\"},{key:\"qty\",label:\"QTY\"},{key:\"status\",label:\"Status\"},{key:\"created_at\",label:\"Created\"}];ue(()=>{setTimeout(()=>{E()},20)});const Q=ce(()=>{q.value=0,E()},300);z(f,()=>{Q()}),z([d,h,i,u,c,_],()=>{q.value=0,E()});async function E(){T.value=!0;try{const l=await V.fetchOrdersHistory({limit:N,offset:0,id_search:f.value||null,status_filter:d.value===\"all\"?null:d.value,symbol_filter:h.value||null,date_filter:i.value===\"all_time\"?null:i.value,exchange_filter:u.value===\"all\"?null:u.value,type_filter:c.value===\"all\"?null:c.value,side_filter:_.value===\"all\"?null:_.value});g.value=l.orders||[],q.value=g.value.length,U.value=l.hasMore}catch(l){I(l)}finally{T.value=!1}}async function X(){L.value=!0;try{const l=await V.fetchOrdersHistory({limit:N,offset:q.value,id_search:f.value||null,status_filter:d.value===\"all\"?null:d.value,symbol_filter:h.value||null,date_filter:i.value===\"all_time\"?null:i.value,exchange_filter:u.value===\"all\"?null:u.value,type_filter:c.value===\"all\"?null:c.value,side_filter:_.value===\"all\"?null:_.value});g.value=[...g.value,...l.orders||[]],q.value+=(l.orders||[]).length,U.value=l.hasMore}catch(l){I(l)}finally{L.value=!1}}function W(l){A.value=l.id,C.value=!0}function Z(){f.value=\"\",d.value=\"all\",h.value=\"\",i.value=\"all_time\",u.value=\"all\",c.value=\"all\",_.value=\"all\"}function ee(l){switch(l==null?void 0:l.toLowerCase()){case\"active\":return\"yellow\";case\"executed\":return\"green\";case\"canceled\":return\"red\";case\"partially_filled\":return\"blue\";default:return\"gray\"}}return(l,e)=>{const D=te,M=ve,b=pe,O=ge,R=ye,m=he,le=be,se=xe,ae=we;return S(),k(\"div\",null,[s(\"div\",Se,[t(D,{\"current-tab\":null,tabs:o(P),onClose:o(V).closeTab,onCancel:o(V).cancel},null,8,[\"tabs\",\"onClose\",\"onCancel\"])]),s(\"div\",Ve,[s(\"div\",qe,[e[8]||(e[8]=s(\"h1\",{class:\"text-2xl md:text-3xl font-bold text-gray-900 dark:text-white mb-6\"},\" Orders History \",-1)),s(\"div\",Oe,[s(\"div\",Te,[s(\"div\",Ce,[s(\"div\",Le,[t(b,{label:\"Search Session\",size:\"md\"},{default:n(()=>[t(M,{modelValue:o(f),\"onUpdate:modelValue\":e[0]||(e[0]=a=>y(f)?f.value=a:null),placeholder:\"Enter Session ID...\",icon:\"i-heroicons-magnifying-glass\",variant:\"outline\"},null,8,[\"modelValue\"])]),_:1})]),s(\"div\",Ue,[t(b,{label:\"Status\",size:\"md\"},{default:n(()=>[t(O,{modelValue:o(d),\"onUpdate:modelValue\":e[1]||(e[1]=a=>y(d)?d.value=a:null),options:j},null,8,[\"modelValue\"])]),_:1})]),s(\"div\",Ee,[t(b,{label:\"Timeframe\",size:\"md\"},{default:n(()=>[t(O,{modelValue:o(i),\"onUpdate:modelValue\":e[2]||(e[2]=a=>y(i)?i.value=a:null),options:$},null,8,[\"modelValue\"])]),_:1})])]),s(\"div\",Fe,[s(\"div\",Ae,[s(\"div\",De,[t(b,{label:\"Symbol\",size:\"sm\"},{default:n(()=>[t(M,{modelValue:o(h),\"onUpdate:modelValue\":e[3]||(e[3]=a=>y(h)?h.value=a:null),placeholder:\"BTC-USDT...\",icon:\"i-heroicons-currency-dollar\"},null,8,[\"modelValue\"])]),_:1}),t(b,{label:\"Exchange\",size:\"sm\"},{default:n(()=>[t(O,{modelValue:o(u),\"onUpdate:modelValue\":e[4]||(e[4]=a=>y(u)?u.value=a:null),options:o(K)},null,8,[\"modelValue\",\"options\"])]),_:1}),t(b,{label:\"Order Type\",size:\"sm\"},{default:n(()=>[t(O,{modelValue:o(c),\"onUpdate:modelValue\":e[5]||(e[5]=a=>y(c)?c.value=a:null),options:G},null,8,[\"modelValue\"])]),_:1}),t(b,{label:\"Side\",size:\"sm\"},{default:n(()=>[t(O,{modelValue:o(_),\"onUpdate:modelValue\":e[6]||(e[6]=a=>y(_)?_.value=a:null),options:J},null,8,[\"modelValue\"])]),_:1})]),s(\"div\",Me,[t(R,{label:\"Reset All\",color:\"gray\",variant:\"soft\",icon:\"i-heroicons-arrow-path\",size:\"sm\",class:\"w-full sm:w-auto justify-center\",onClick:Z})])])])])])]),o(T)?(S(),k(\"div\",Re,[s(\"div\",ze,[s(\"div\",Ie,[(S(),k(_e,null,me(5,a=>s(\"div\",{key:a,class:\"p-4\"},[s(\"div\",Be,[s(\"div\",He,[t(m,{class:\"h-4 w-full\"})]),s(\"div\",Ne,[t(m,{class:\"h-4 w-full\"})]),s(\"div\",Pe,[t(m,{class:\"h-4 w-full\"})]),s(\"div\",je,[t(m,{class:\"h-4 w-full\"})]),s(\"div\",$e,[t(m,{class:\"h-4 w-full\"})]),s(\"div\",Ke,[t(m,{class:\"h-4 w-full\"})]),s(\"div\",Ge,[t(m,{class:\"h-4 w-full\"})]),s(\"div\",Je,[t(m,{class:\"h-4 w-full\"})]),s(\"div\",Ye,[t(m,{class:\"h-4 w-full\"})])])])),64))])])])):o(g).length?(S(),k(\"div\",Qe,[s(\"div\",Xe,[t(se,{rows:o(g),columns:Y,class:\"w-full\",ui:{td:{base:\"whitespace-nowrap\"},th:{base:\"whitespace-nowrap\"}},onSelect:W},{\"symbol-data\":n(({row:a})=>[s(\"span\",We,w(a.symbol),1)]),\"exchange-data\":n(({row:a})=>[s(\"span\",Ze,w(a.exchange),1)]),\"side-data\":n(({row:a})=>[s(\"span\",{class:fe([\"text-sm font-medium\",a.side===\"buy\"?\"text-green-600 dark:text-green-400\":\"text-red-600 dark:text-red-400\"])},w(a.side),3)]),\"type-data\":n(({row:a})=>[s(\"span\",el,w(a.type),1)]),\"price-data\":n(({row:a})=>[s(\"span\",ll,w(a.price?o(H).roundPrice(a.price):\"-\"),1)]),\"qty-data\":n(({row:a})=>[s(\"span\",sl,w(a.qty),1)]),\"status-data\":n(({row:a})=>[t(le,{color:ee(a.status),label:a.status,variant:\"soft\",size:\"xs\"},null,8,[\"color\",\"label\"])]),\"created_at-data\":n(({row:a})=>[s(\"span\",al,w(o(H).timestampToReadableDateTime(a.created_at)),1)]),_:1},8,[\"rows\"])]),o(U)?(S(),k(\"div\",tl,[t(R,{label:\"Load More\",variant:\"soft\",color:\"gray\",loading:o(L),onClick:X},null,8,[\"loading\"])])):B(\"\",!0)])):!o(T)&&o(g).length===0?(S(),k(\"div\",ol,e[9]||(e[9]=[s(\"div\",{class:\"text-gray-400 dark:text-gray-500\"},[s(\"i\",{class:\"i-heroicons-rectangle-stack h-12 w-12 mx-auto mb-4\"}),s(\"p\",{class:\"text-lg\"},\"No orders found\"),s(\"p\",{class:\"text-sm mt-2\"},\"Adjust your filters to see items in your order history\")],-1)]))):B(\"\",!0),t(ae,{modelValue:o(C),\"onUpdate:modelValue\":e[7]||(e[7]=a=>y(C)?C.value=a:null),\"order-id\":o(A)},null,8,[\"modelValue\",\"order-id\"])])])}}});export{vl as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/P4WzXJd0.js",
    "content": "const n=Object.freeze(JSON.parse(`{\"displayName\":\"JSSM\",\"fileTypes\":[\"jssm\",\"jssm_state\"],\"name\":\"jssm\",\"patterns\":[{\"begin\":\"/\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.mn\"}},\"comment\":\"block comment\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.jssm\"},{\"begin\":\"//\",\"comment\":\"block comment\",\"end\":\"$\",\"name\":\"comment.line.jssm\"},{\"begin\":\"\\\\\\\\\\${\",\"captures\":{\"0\":{\"name\":\"entity.name.function\"}},\"comment\":\"js outcalls\",\"end\":\"}\",\"name\":\"keyword.other\"},{\"comment\":\"semver\",\"match\":\"([0-9]*)(\\\\\\\\.)([0-9]*)(\\\\\\\\.)([0-9]*)\",\"name\":\"constant.numeric\"},{\"comment\":\"jssm language tokens\",\"match\":\"graph_layout(\\\\\\\\s*)(:)\",\"name\":\"constant.language.jssmLanguage\"},{\"comment\":\"jssm language tokens\",\"match\":\"machine_name(\\\\\\\\s*)(:)\",\"name\":\"constant.language.jssmLanguage\"},{\"comment\":\"jssm language tokens\",\"match\":\"machine_version(\\\\\\\\s*)(:)\",\"name\":\"constant.language.jssmLanguage\"},{\"comment\":\"jssm language tokens\",\"match\":\"jssm_version(\\\\\\\\s*)(:)\",\"name\":\"constant.language.jssmLanguage\"},{\"comment\":\"transitions\",\"match\":\"<->\",\"name\":\"keyword.control.transition.jssmArrow.legal_legal\"},{\"comment\":\"transitions\",\"match\":\"<-\",\"name\":\"keyword.control.transition.jssmArrow.legal_none\"},{\"comment\":\"transitions\",\"match\":\"->\",\"name\":\"keyword.control.transition.jssmArrow.none_legal\"},{\"comment\":\"transitions\",\"match\":\"<=>\",\"name\":\"keyword.control.transition.jssmArrow.main_main\"},{\"comment\":\"transitions\",\"match\":\"=>\",\"name\":\"keyword.control.transition.jssmArrow.none_main\"},{\"comment\":\"transitions\",\"match\":\"<=\",\"name\":\"keyword.control.transition.jssmArrow.main_none\"},{\"comment\":\"transitions\",\"match\":\"<~>\",\"name\":\"keyword.control.transition.jssmArrow.forced_forced\"},{\"comment\":\"transitions\",\"match\":\"~>\",\"name\":\"keyword.control.transition.jssmArrow.none_forced\"},{\"comment\":\"transitions\",\"match\":\"<~\",\"name\":\"keyword.control.transition.jssmArrow.forced_none\"},{\"comment\":\"transitions\",\"match\":\"<-=>\",\"name\":\"keyword.control.transition.jssmArrow.legal_main\"},{\"comment\":\"transitions\",\"match\":\"<=->\",\"name\":\"keyword.control.transition.jssmArrow.main_legal\"},{\"comment\":\"transitions\",\"match\":\"<-~>\",\"name\":\"keyword.control.transition.jssmArrow.legal_forced\"},{\"comment\":\"transitions\",\"match\":\"<~->\",\"name\":\"keyword.control.transition.jssmArrow.forced_legal\"},{\"comment\":\"transitions\",\"match\":\"<=~>\",\"name\":\"keyword.control.transition.jssmArrow.main_forced\"},{\"comment\":\"transitions\",\"match\":\"<~=>\",\"name\":\"keyword.control.transition.jssmArrow.forced_main\"},{\"comment\":\"edge probability annotation\",\"match\":\"([0-9]+)%\",\"name\":\"constant.numeric.jssmProbability\"},{\"comment\":\"action annotation\",\"match\":\"\\\\\\\\'[^']*\\\\\\\\'\",\"name\":\"constant.character.jssmAction\"},{\"comment\":\"jssm label annotation\",\"match\":\"\\\\\\\\\\\\\"[^\\\\\"]*\\\\\\\\\\\\\"\",\"name\":\"entity.name.tag.jssmLabel.doublequoted\"},{\"comment\":\"jssm label annotation\",\"match\":\"([a-zA-Z0-9_.+&()#@!?,])\",\"name\":\"entity.name.tag.jssmLabel.atom\"}],\"scopeName\":\"source.jssm\",\"aliases\":[\"fsl\"]}`)),t=[n];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/PoHY5YXO.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.background\":\"#FAFAFA\",\"activityBar.foreground\":\"#121417\",\"activityBarBadge.background\":\"#526FFF\",\"activityBarBadge.foreground\":\"#FFFFFF\",\"badge.background\":\"#526FFF\",\"badge.foreground\":\"#FFFFFF\",\"button.background\":\"#5871EF\",\"button.foreground\":\"#FFFFFF\",\"button.hoverBackground\":\"#6B83ED\",\"diffEditor.insertedTextBackground\":\"#00809B33\",\"dropdown.background\":\"#FFFFFF\",\"dropdown.border\":\"#DBDBDC\",\"editor.background\":\"#FAFAFA\",\"editor.findMatchHighlightBackground\":\"#526FFF33\",\"editor.foreground\":\"#383A42\",\"editor.lineHighlightBackground\":\"#383A420C\",\"editor.selectionBackground\":\"#E5E5E6\",\"editorCursor.foreground\":\"#526FFF\",\"editorGroup.background\":\"#EAEAEB\",\"editorGroup.border\":\"#DBDBDC\",\"editorGroupHeader.tabsBackground\":\"#EAEAEB\",\"editorHoverWidget.background\":\"#EAEAEB\",\"editorHoverWidget.border\":\"#DBDBDC\",\"editorIndentGuide.activeBackground\":\"#626772\",\"editorIndentGuide.background\":\"#383A4233\",\"editorInlayHint.background\":\"#F5F5F5\",\"editorInlayHint.foreground\":\"#AFB2BB\",\"editorLineNumber.activeForeground\":\"#383A42\",\"editorLineNumber.foreground\":\"#9D9D9F\",\"editorRuler.foreground\":\"#383A4233\",\"editorSuggestWidget.background\":\"#EAEAEB\",\"editorSuggestWidget.border\":\"#DBDBDC\",\"editorSuggestWidget.selectedBackground\":\"#FFFFFF\",\"editorWhitespace.foreground\":\"#383A4233\",\"editorWidget.background\":\"#EAEAEB\",\"editorWidget.border\":\"#E5E5E6\",\"extensionButton.prominentBackground\":\"#3BBA54\",\"extensionButton.prominentHoverBackground\":\"#4CC263\",\"focusBorder\":\"#526FFF\",\"input.background\":\"#FFFFFF\",\"input.border\":\"#DBDBDC\",\"list.activeSelectionBackground\":\"#DBDBDC\",\"list.activeSelectionForeground\":\"#232324\",\"list.focusBackground\":\"#DBDBDC\",\"list.highlightForeground\":\"#121417\",\"list.hoverBackground\":\"#DBDBDC66\",\"list.inactiveSelectionBackground\":\"#DBDBDC\",\"list.inactiveSelectionForeground\":\"#232324\",\"notebook.cellEditorBackground\":\"#F5F5F5\",\"notification.background\":\"#333333\",\"peekView.border\":\"#526FFF\",\"peekViewEditor.background\":\"#FFFFFF\",\"peekViewResult.background\":\"#EAEAEB\",\"peekViewResult.selectionBackground\":\"#DBDBDC\",\"peekViewTitle.background\":\"#FFFFFF\",\"pickerGroup.border\":\"#526FFF\",\"scrollbarSlider.activeBackground\":\"#747D9180\",\"scrollbarSlider.background\":\"#4E566680\",\"scrollbarSlider.hoverBackground\":\"#5A637580\",\"sideBar.background\":\"#EAEAEB\",\"sideBarSectionHeader.background\":\"#FAFAFA\",\"statusBar.background\":\"#EAEAEB\",\"statusBar.debuggingForeground\":\"#FFFFFF\",\"statusBar.foreground\":\"#424243\",\"statusBar.noFolderBackground\":\"#EAEAEB\",\"statusBarItem.hoverBackground\":\"#DBDBDC\",\"tab.activeBackground\":\"#FAFAFA\",\"tab.activeForeground\":\"#121417\",\"tab.border\":\"#DBDBDC\",\"tab.inactiveBackground\":\"#EAEAEB\",\"titleBar.activeBackground\":\"#EAEAEB\",\"titleBar.activeForeground\":\"#424243\",\"titleBar.inactiveBackground\":\"#EAEAEB\",\"titleBar.inactiveForeground\":\"#424243\"},\"displayName\":\"One Light\",\"name\":\"one-light\",\"tokenColors\":[{\"scope\":[\"comment\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#A0A1A7\"}},{\"scope\":[\"comment markup.link\"],\"settings\":{\"foreground\":\"#A0A1A7\"}},{\"scope\":[\"entity.name.type\"],\"settings\":{\"foreground\":\"#C18401\"}},{\"scope\":[\"entity.other.inherited-class\"],\"settings\":{\"foreground\":\"#C18401\"}},{\"scope\":[\"keyword\"],\"settings\":{\"foreground\":\"#A626A4\"}},{\"scope\":[\"keyword.control\"],\"settings\":{\"foreground\":\"#A626A4\"}},{\"scope\":[\"keyword.operator\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"keyword.other.special-method\"],\"settings\":{\"foreground\":\"#4078F2\"}},{\"scope\":[\"keyword.other.unit\"],\"settings\":{\"foreground\":\"#986801\"}},{\"scope\":[\"storage\"],\"settings\":{\"foreground\":\"#A626A4\"}},{\"scope\":[\"storage.type.annotation\",\"storage.type.primitive\"],\"settings\":{\"foreground\":\"#A626A4\"}},{\"scope\":[\"storage.modifier.package\",\"storage.modifier.import\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"constant\"],\"settings\":{\"foreground\":\"#986801\"}},{\"scope\":[\"constant.variable\"],\"settings\":{\"foreground\":\"#986801\"}},{\"scope\":[\"constant.character.escape\"],\"settings\":{\"foreground\":\"#0184BC\"}},{\"scope\":[\"constant.numeric\"],\"settings\":{\"foreground\":\"#986801\"}},{\"scope\":[\"constant.other.color\"],\"settings\":{\"foreground\":\"#0184BC\"}},{\"scope\":[\"constant.other.symbol\"],\"settings\":{\"foreground\":\"#0184BC\"}},{\"scope\":[\"variable\"],\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":[\"variable.interpolation\"],\"settings\":{\"foreground\":\"#CA1243\"}},{\"scope\":[\"variable.parameter\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"string\"],\"settings\":{\"foreground\":\"#50A14F\"}},{\"scope\":[\"string > source\",\"string embedded\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"string.regexp\"],\"settings\":{\"foreground\":\"#0184BC\"}},{\"scope\":[\"string.regexp source.ruby.embedded\"],\"settings\":{\"foreground\":\"#C18401\"}},{\"scope\":[\"string.other.link\"],\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":[\"punctuation.definition.comment\"],\"settings\":{\"foreground\":\"#A0A1A7\"}},{\"scope\":[\"punctuation.definition.method-parameters\",\"punctuation.definition.function-parameters\",\"punctuation.definition.parameters\",\"punctuation.definition.separator\",\"punctuation.definition.seperator\",\"punctuation.definition.array\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"punctuation.definition.heading\",\"punctuation.definition.identity\"],\"settings\":{\"foreground\":\"#4078F2\"}},{\"scope\":[\"punctuation.definition.bold\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#C18401\"}},{\"scope\":[\"punctuation.definition.italic\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#A626A4\"}},{\"scope\":[\"punctuation.section.embedded\"],\"settings\":{\"foreground\":\"#CA1243\"}},{\"scope\":[\"punctuation.section.method\",\"punctuation.section.class\",\"punctuation.section.inner-class\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"support.class\"],\"settings\":{\"foreground\":\"#C18401\"}},{\"scope\":[\"support.type\"],\"settings\":{\"foreground\":\"#0184BC\"}},{\"scope\":[\"support.function\"],\"settings\":{\"foreground\":\"#0184BC\"}},{\"scope\":[\"support.function.any-method\"],\"settings\":{\"foreground\":\"#4078F2\"}},{\"scope\":[\"entity.name.function\"],\"settings\":{\"foreground\":\"#4078F2\"}},{\"scope\":[\"entity.name.class\",\"entity.name.type.class\"],\"settings\":{\"foreground\":\"#C18401\"}},{\"scope\":[\"entity.name.section\"],\"settings\":{\"foreground\":\"#4078F2\"}},{\"scope\":[\"entity.name.tag\"],\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":[\"entity.other.attribute-name\"],\"settings\":{\"foreground\":\"#986801\"}},{\"scope\":[\"entity.other.attribute-name.id\"],\"settings\":{\"foreground\":\"#4078F2\"}},{\"scope\":[\"meta.class\"],\"settings\":{\"foreground\":\"#C18401\"}},{\"scope\":[\"meta.class.body\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"meta.method-call\",\"meta.method\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"meta.definition.variable\"],\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":[\"meta.link\"],\"settings\":{\"foreground\":\"#986801\"}},{\"scope\":[\"meta.require\"],\"settings\":{\"foreground\":\"#4078F2\"}},{\"scope\":[\"meta.selector\"],\"settings\":{\"foreground\":\"#A626A4\"}},{\"scope\":[\"meta.separator\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"meta.tag\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"underline\"],\"settings\":{\"text-decoration\":\"underline\"}},{\"scope\":[\"none\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"invalid.deprecated\"],\"settings\":{\"background\":\"#F2A60D\",\"foreground\":\"#000000\"}},{\"scope\":[\"invalid.illegal\"],\"settings\":{\"background\":\"#FF1414\",\"foreground\":\"white\"}},{\"scope\":[\"markup.bold\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#986801\"}},{\"scope\":[\"markup.changed\"],\"settings\":{\"foreground\":\"#A626A4\"}},{\"scope\":[\"markup.deleted\"],\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":[\"markup.italic\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#A626A4\"}},{\"scope\":[\"markup.heading\"],\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":[\"markup.heading punctuation.definition.heading\"],\"settings\":{\"foreground\":\"#4078F2\"}},{\"scope\":[\"markup.link\"],\"settings\":{\"foreground\":\"#0184BC\"}},{\"scope\":[\"markup.inserted\"],\"settings\":{\"foreground\":\"#50A14F\"}},{\"scope\":[\"markup.quote\"],\"settings\":{\"foreground\":\"#986801\"}},{\"scope\":[\"markup.raw\"],\"settings\":{\"foreground\":\"#50A14F\"}},{\"scope\":[\"source.c keyword.operator\"],\"settings\":{\"foreground\":\"#A626A4\"}},{\"scope\":[\"source.cpp keyword.operator\"],\"settings\":{\"foreground\":\"#A626A4\"}},{\"scope\":[\"source.cs keyword.operator\"],\"settings\":{\"foreground\":\"#A626A4\"}},{\"scope\":[\"source.css property-name\",\"source.css property-value\"],\"settings\":{\"foreground\":\"#696C77\"}},{\"scope\":[\"source.css property-name.support\",\"source.css property-value.support\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"source.elixir source.embedded.source\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"source.elixir constant.language\",\"source.elixir constant.numeric\",\"source.elixir constant.definition\"],\"settings\":{\"foreground\":\"#4078F2\"}},{\"scope\":[\"source.elixir variable.definition\",\"source.elixir variable.anonymous\"],\"settings\":{\"foreground\":\"#A626A4\"}},{\"scope\":[\"source.elixir parameter.variable.function\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#986801\"}},{\"scope\":[\"source.elixir quoted\"],\"settings\":{\"foreground\":\"#50A14F\"}},{\"scope\":[\"source.elixir keyword.special-method\",\"source.elixir embedded.section\",\"source.elixir embedded.source.empty\"],\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":[\"source.elixir readwrite.module punctuation\"],\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":[\"source.elixir regexp.section\",\"source.elixir regexp.string\"],\"settings\":{\"foreground\":\"#CA1243\"}},{\"scope\":[\"source.elixir separator\",\"source.elixir keyword.operator\"],\"settings\":{\"foreground\":\"#986801\"}},{\"scope\":[\"source.elixir variable.constant\"],\"settings\":{\"foreground\":\"#C18401\"}},{\"scope\":[\"source.elixir array\",\"source.elixir scope\",\"source.elixir section\"],\"settings\":{\"foreground\":\"#696C77\"}},{\"scope\":[\"source.gfm markup\"],\"settings\":{\"-webkit-font-smoothing\":\"auto\"}},{\"scope\":[\"source.gfm link entity\"],\"settings\":{\"foreground\":\"#4078F2\"}},{\"scope\":[\"source.go storage.type.string\"],\"settings\":{\"foreground\":\"#A626A4\"}},{\"scope\":[\"source.ini keyword.other.definition.ini\"],\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":[\"source.java storage.modifier.import\"],\"settings\":{\"foreground\":\"#C18401\"}},{\"scope\":[\"source.java storage.type\"],\"settings\":{\"foreground\":\"#C18401\"}},{\"scope\":[\"source.java keyword.operator.instanceof\"],\"settings\":{\"foreground\":\"#A626A4\"}},{\"scope\":[\"source.java-properties meta.key-pair\"],\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":[\"source.java-properties meta.key-pair > punctuation\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"source.js keyword.operator\"],\"settings\":{\"foreground\":\"#0184BC\"}},{\"scope\":[\"source.js keyword.operator.delete\",\"source.js keyword.operator.in\",\"source.js keyword.operator.of\",\"source.js keyword.operator.instanceof\",\"source.js keyword.operator.new\",\"source.js keyword.operator.typeof\",\"source.js keyword.operator.void\"],\"settings\":{\"foreground\":\"#A626A4\"}},{\"scope\":[\"source.ts keyword.operator\"],\"settings\":{\"foreground\":\"#0184BC\"}},{\"scope\":[\"source.flow keyword.operator\"],\"settings\":{\"foreground\":\"#0184BC\"}},{\"scope\":[\"source.json meta.structure.dictionary.json > string.quoted.json\"],\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":[\"source.json meta.structure.dictionary.json > string.quoted.json > punctuation.string\"],\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":[\"source.json meta.structure.dictionary.json > value.json > string.quoted.json\",\"source.json meta.structure.array.json > value.json > string.quoted.json\",\"source.json meta.structure.dictionary.json > value.json > string.quoted.json > punctuation\",\"source.json meta.structure.array.json > value.json > string.quoted.json > punctuation\"],\"settings\":{\"foreground\":\"#50A14F\"}},{\"scope\":[\"source.json meta.structure.dictionary.json > constant.language.json\",\"source.json meta.structure.array.json > constant.language.json\"],\"settings\":{\"foreground\":\"#0184BC\"}},{\"scope\":[\"ng.interpolation\"],\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":[\"ng.interpolation.begin\",\"ng.interpolation.end\"],\"settings\":{\"foreground\":\"#4078F2\"}},{\"scope\":[\"ng.interpolation function\"],\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":[\"ng.interpolation function.begin\",\"ng.interpolation function.end\"],\"settings\":{\"foreground\":\"#4078F2\"}},{\"scope\":[\"ng.interpolation bool\"],\"settings\":{\"foreground\":\"#986801\"}},{\"scope\":[\"ng.interpolation bracket\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"ng.pipe\",\"ng.operator\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"ng.tag\"],\"settings\":{\"foreground\":\"#0184BC\"}},{\"scope\":[\"ng.attribute-with-value attribute-name\"],\"settings\":{\"foreground\":\"#C18401\"}},{\"scope\":[\"ng.attribute-with-value string\"],\"settings\":{\"foreground\":\"#A626A4\"}},{\"scope\":[\"ng.attribute-with-value string.begin\",\"ng.attribute-with-value string.end\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"source.ruby constant.other.symbol > punctuation\"],\"settings\":{\"foreground\":\"inherit\"}},{\"scope\":[\"source.php class.bracket\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"source.python keyword.operator.logical.python\"],\"settings\":{\"foreground\":\"#A626A4\"}},{\"scope\":[\"source.python variable.parameter\"],\"settings\":{\"foreground\":\"#986801\"}},{\"scope\":\"customrule\",\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":\"support.type.property-name\",\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":\"string.quoted.double punctuation\",\"settings\":{\"foreground\":\"#50A14F\"}},{\"scope\":\"support.constant\",\"settings\":{\"foreground\":\"#986801\"}},{\"scope\":\"support.type.property-name.json\",\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":\"support.type.property-name.json punctuation\",\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":[\"punctuation.separator.key-value.ts\",\"punctuation.separator.key-value.js\",\"punctuation.separator.key-value.tsx\"],\"settings\":{\"foreground\":\"#0184BC\"}},{\"scope\":[\"source.js.embedded.html keyword.operator\",\"source.ts.embedded.html keyword.operator\"],\"settings\":{\"foreground\":\"#0184BC\"}},{\"scope\":[\"variable.other.readwrite.js\",\"variable.other.readwrite.ts\",\"variable.other.readwrite.tsx\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"support.variable.dom.js\",\"support.variable.dom.ts\"],\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":[\"support.variable.property.dom.js\",\"support.variable.property.dom.ts\"],\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":[\"meta.template.expression.js punctuation.definition\",\"meta.template.expression.ts punctuation.definition\"],\"settings\":{\"foreground\":\"#CA1243\"}},{\"scope\":[\"source.ts punctuation.definition.typeparameters\",\"source.js punctuation.definition.typeparameters\",\"source.tsx punctuation.definition.typeparameters\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"source.ts punctuation.definition.block\",\"source.js punctuation.definition.block\",\"source.tsx punctuation.definition.block\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"source.ts punctuation.separator.comma\",\"source.js punctuation.separator.comma\",\"source.tsx punctuation.separator.comma\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"support.variable.property.js\",\"support.variable.property.ts\",\"support.variable.property.tsx\"],\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":[\"keyword.control.default.js\",\"keyword.control.default.ts\",\"keyword.control.default.tsx\"],\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":[\"keyword.operator.expression.instanceof.js\",\"keyword.operator.expression.instanceof.ts\",\"keyword.operator.expression.instanceof.tsx\"],\"settings\":{\"foreground\":\"#A626A4\"}},{\"scope\":[\"keyword.operator.expression.of.js\",\"keyword.operator.expression.of.ts\",\"keyword.operator.expression.of.tsx\"],\"settings\":{\"foreground\":\"#A626A4\"}},{\"scope\":[\"meta.brace.round.js\",\"meta.array-binding-pattern-variable.js\",\"meta.brace.square.js\",\"meta.brace.round.ts\",\"meta.array-binding-pattern-variable.ts\",\"meta.brace.square.ts\",\"meta.brace.round.tsx\",\"meta.array-binding-pattern-variable.tsx\",\"meta.brace.square.tsx\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"source.js punctuation.accessor\",\"source.ts punctuation.accessor\",\"source.tsx punctuation.accessor\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"punctuation.terminator.statement.js\",\"punctuation.terminator.statement.ts\",\"punctuation.terminator.statement.tsx\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"meta.array-binding-pattern-variable.js variable.other.readwrite.js\",\"meta.array-binding-pattern-variable.ts variable.other.readwrite.ts\",\"meta.array-binding-pattern-variable.tsx variable.other.readwrite.tsx\"],\"settings\":{\"foreground\":\"#986801\"}},{\"scope\":[\"source.js support.variable\",\"source.ts support.variable\",\"source.tsx support.variable\"],\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":[\"variable.other.constant.property.js\",\"variable.other.constant.property.ts\",\"variable.other.constant.property.tsx\"],\"settings\":{\"foreground\":\"#986801\"}},{\"scope\":[\"keyword.operator.new.ts\",\"keyword.operator.new.j\",\"keyword.operator.new.tsx\"],\"settings\":{\"foreground\":\"#A626A4\"}},{\"scope\":[\"source.ts keyword.operator\",\"source.tsx keyword.operator\"],\"settings\":{\"foreground\":\"#0184BC\"}},{\"scope\":[\"punctuation.separator.parameter.js\",\"punctuation.separator.parameter.ts\",\"punctuation.separator.parameter.tsx \"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"constant.language.import-export-all.js\",\"constant.language.import-export-all.ts\"],\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":[\"constant.language.import-export-all.jsx\",\"constant.language.import-export-all.tsx\"],\"settings\":{\"foreground\":\"#0184BC\"}},{\"scope\":[\"keyword.control.as.js\",\"keyword.control.as.ts\",\"keyword.control.as.jsx\",\"keyword.control.as.tsx\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"variable.other.readwrite.alias.js\",\"variable.other.readwrite.alias.ts\",\"variable.other.readwrite.alias.jsx\",\"variable.other.readwrite.alias.tsx\"],\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":[\"variable.other.constant.js\",\"variable.other.constant.ts\",\"variable.other.constant.jsx\",\"variable.other.constant.tsx\"],\"settings\":{\"foreground\":\"#986801\"}},{\"scope\":[\"meta.export.default.js variable.other.readwrite.js\",\"meta.export.default.ts variable.other.readwrite.ts\"],\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":[\"source.js meta.template.expression.js punctuation.accessor\",\"source.ts meta.template.expression.ts punctuation.accessor\",\"source.tsx meta.template.expression.tsx punctuation.accessor\"],\"settings\":{\"foreground\":\"#50A14F\"}},{\"scope\":[\"source.js meta.import-equals.external.js keyword.operator\",\"source.jsx meta.import-equals.external.jsx keyword.operator\",\"source.ts meta.import-equals.external.ts keyword.operator\",\"source.tsx meta.import-equals.external.tsx keyword.operator\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":\"entity.name.type.module.js,entity.name.type.module.ts,entity.name.type.module.jsx,entity.name.type.module.tsx\",\"settings\":{\"foreground\":\"#50A14F\"}},{\"scope\":\"meta.class.js,meta.class.ts,meta.class.jsx,meta.class.tsx\",\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"meta.definition.property.js variable\",\"meta.definition.property.ts variable\",\"meta.definition.property.jsx variable\",\"meta.definition.property.tsx variable\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"meta.type.parameters.js support.type\",\"meta.type.parameters.jsx support.type\",\"meta.type.parameters.ts support.type\",\"meta.type.parameters.tsx support.type\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"source.js meta.tag.js keyword.operator\",\"source.jsx meta.tag.jsx keyword.operator\",\"source.ts meta.tag.ts keyword.operator\",\"source.tsx meta.tag.tsx keyword.operator\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"meta.tag.js punctuation.section.embedded\",\"meta.tag.jsx punctuation.section.embedded\",\"meta.tag.ts punctuation.section.embedded\",\"meta.tag.tsx punctuation.section.embedded\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"meta.array.literal.js variable\",\"meta.array.literal.jsx variable\",\"meta.array.literal.ts variable\",\"meta.array.literal.tsx variable\"],\"settings\":{\"foreground\":\"#C18401\"}},{\"scope\":[\"support.type.object.module.js\",\"support.type.object.module.jsx\",\"support.type.object.module.ts\",\"support.type.object.module.tsx\"],\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":[\"constant.language.json\"],\"settings\":{\"foreground\":\"#0184BC\"}},{\"scope\":[\"variable.other.constant.object.js\",\"variable.other.constant.object.jsx\",\"variable.other.constant.object.ts\",\"variable.other.constant.object.tsx\"],\"settings\":{\"foreground\":\"#986801\"}},{\"scope\":[\"storage.type.property.js\",\"storage.type.property.jsx\",\"storage.type.property.ts\",\"storage.type.property.tsx\"],\"settings\":{\"foreground\":\"#0184BC\"}},{\"scope\":[\"meta.template.expression.js string.quoted punctuation.definition\",\"meta.template.expression.jsx string.quoted punctuation.definition\",\"meta.template.expression.ts string.quoted punctuation.definition\",\"meta.template.expression.tsx string.quoted punctuation.definition\"],\"settings\":{\"foreground\":\"#50A14F\"}},{\"scope\":[\"meta.template.expression.js string.template punctuation.definition.string.template\",\"meta.template.expression.jsx string.template punctuation.definition.string.template\",\"meta.template.expression.ts string.template punctuation.definition.string.template\",\"meta.template.expression.tsx string.template punctuation.definition.string.template\"],\"settings\":{\"foreground\":\"#50A14F\"}},{\"scope\":[\"keyword.operator.expression.in.js\",\"keyword.operator.expression.in.jsx\",\"keyword.operator.expression.in.ts\",\"keyword.operator.expression.in.tsx\"],\"settings\":{\"foreground\":\"#A626A4\"}},{\"scope\":[\"variable.other.object.js\",\"variable.other.object.ts\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":[\"meta.object-literal.key.js\",\"meta.object-literal.key.ts\"],\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":\"source.python constant.other\",\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":\"source.python constant\",\"settings\":{\"foreground\":\"#986801\"}},{\"scope\":\"constant.character.format.placeholder.other.python storage\",\"settings\":{\"foreground\":\"#986801\"}},{\"scope\":\"support.variable.magic.python\",\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":\"meta.function.parameters.python\",\"settings\":{\"foreground\":\"#986801\"}},{\"scope\":\"punctuation.separator.annotation.python\",\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":\"punctuation.separator.parameters.python\",\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":\"entity.name.variable.field.cs\",\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":\"source.cs keyword.operator\",\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":\"variable.other.readwrite.cs\",\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":\"variable.other.object.cs\",\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":\"variable.other.object.property.cs\",\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":\"entity.name.variable.property.cs\",\"settings\":{\"foreground\":\"#4078F2\"}},{\"scope\":\"storage.type.cs\",\"settings\":{\"foreground\":\"#C18401\"}},{\"scope\":\"keyword.other.unsafe.rust\",\"settings\":{\"foreground\":\"#A626A4\"}},{\"scope\":\"entity.name.type.rust\",\"settings\":{\"foreground\":\"#0184BC\"}},{\"scope\":\"storage.modifier.lifetime.rust\",\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":\"entity.name.lifetime.rust\",\"settings\":{\"foreground\":\"#986801\"}},{\"scope\":\"storage.type.core.rust\",\"settings\":{\"foreground\":\"#0184BC\"}},{\"scope\":\"meta.attribute.rust\",\"settings\":{\"foreground\":\"#986801\"}},{\"scope\":\"storage.class.std.rust\",\"settings\":{\"foreground\":\"#0184BC\"}},{\"scope\":\"markup.raw.block.markdown\",\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":\"punctuation.definition.variable.shell\",\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":\"support.constant.property-value.css\",\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":\"punctuation.definition.constant.css\",\"settings\":{\"foreground\":\"#986801\"}},{\"scope\":\"punctuation.separator.key-value.scss\",\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":\"punctuation.definition.constant.scss\",\"settings\":{\"foreground\":\"#986801\"}},{\"scope\":\"meta.property-list.scss punctuation.separator.key-value.scss\",\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":\"storage.type.primitive.array.java\",\"settings\":{\"foreground\":\"#C18401\"}},{\"scope\":\"entity.name.section.markdown\",\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":\"punctuation.definition.heading.markdown\",\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":\"markup.heading.setext\",\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":\"punctuation.definition.bold.markdown\",\"settings\":{\"foreground\":\"#986801\"}},{\"scope\":\"markup.inline.raw.markdown\",\"settings\":{\"foreground\":\"#50A14F\"}},{\"scope\":\"beginning.punctuation.definition.list.markdown\",\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":\"markup.quote.markdown\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#A0A1A7\"}},{\"scope\":[\"punctuation.definition.string.begin.markdown\",\"punctuation.definition.string.end.markdown\",\"punctuation.definition.metadata.markdown\"],\"settings\":{\"foreground\":\"#383A42\"}},{\"scope\":\"punctuation.definition.metadata.markdown\",\"settings\":{\"foreground\":\"#A626A4\"}},{\"scope\":[\"markup.underline.link.markdown\",\"markup.underline.link.image.markdown\"],\"settings\":{\"foreground\":\"#A626A4\"}},{\"scope\":[\"string.other.link.title.markdown\",\"string.other.link.description.markdown\"],\"settings\":{\"foreground\":\"#4078F2\"}},{\"scope\":\"punctuation.separator.variable.ruby\",\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":\"variable.other.constant.ruby\",\"settings\":{\"foreground\":\"#986801\"}},{\"scope\":\"keyword.operator.other.ruby\",\"settings\":{\"foreground\":\"#50A14F\"}},{\"scope\":\"punctuation.definition.variable.php\",\"settings\":{\"foreground\":\"#E45649\"}},{\"scope\":\"meta.class.php\",\"settings\":{\"foreground\":\"#383A42\"}}],\"type\":\"light\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Progress.CWZn3LuJ.css",
    "content": "progress[data-v-1e545a26]:indeterminate{position:relative}progress[data-v-1e545a26]:indeterminate:after{--tw-content:\"\";background-color:currentColor;content:\"\";content:var(--tw-content);top:0;right:0;bottom:0;left:0;position:absolute}progress[data-v-1e545a26]:indeterminate::-webkit-progress-value{background-color:currentColor}progress[data-v-1e545a26]:indeterminate::-moz-progress-bar{background-color:currentColor}progress:indeterminate.bar-animation-carousel[data-v-1e545a26]:after{animation:carousel-1e545a26 2s ease-in-out infinite}progress:indeterminate.bar-animation-carousel[data-v-1e545a26]::-webkit-progress-value{animation:carousel-1e545a26 2s ease-in-out infinite}progress:indeterminate.bar-animation-carousel[data-v-1e545a26]::-moz-progress-bar{animation:carousel-1e545a26 2s ease-in-out infinite}progress:indeterminate.bar-animation-carousel-inverse[data-v-1e545a26]:after{animation:carousel-inverse-1e545a26 2s ease-in-out infinite}progress:indeterminate.bar-animation-carousel-inverse[data-v-1e545a26]::-webkit-progress-value{animation:carousel-inverse-1e545a26 2s ease-in-out infinite}progress:indeterminate.bar-animation-carousel-inverse[data-v-1e545a26]::-moz-progress-bar{animation:carousel-inverse-1e545a26 2s ease-in-out infinite}progress:indeterminate.bar-animation-swing[data-v-1e545a26]:after{animation:swing-1e545a26 3s ease-in-out infinite}progress:indeterminate.bar-animation-swing[data-v-1e545a26]::-webkit-progress-value{animation:swing-1e545a26 3s ease-in-out infinite}progress:indeterminate.bar-animation-swing[data-v-1e545a26]::-moz-progress-bar{animation:swing-1e545a26 3s ease-in-out infinite}progress:indeterminate.bar-animation-elastic[data-v-1e545a26]:after{animation:elastic-1e545a26 3s ease-in-out infinite}progress:indeterminate.bar-animation-elastic[data-v-1e545a26]::-webkit-progress-value{animation:elastic-1e545a26 3s ease-in-out infinite}progress:indeterminate.bar-animation-elastic[data-v-1e545a26]::-moz-progress-bar{animation:elastic-1e545a26 3s ease-in-out infinite}@keyframes carousel-1e545a26{0%,to{width:50%}0%{transform:translate(-100%)}to{transform:translate(200%)}}@keyframes carousel-inverse-1e545a26{0%,to{width:50%}0%{transform:translate(200%)}to{transform:translate(-100%)}}@keyframes swing-1e545a26{0%,to{transform:translate(-25%);width:50%}50%{transform:translate(125%)}}@keyframes elastic-1e545a26{0%,to{margin-left:25%;width:50%}50%{margin-left:5%;width:90%}}\n"
  },
  {
    "path": "jesse/static/_nuxt/QhoSD0DR.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"RISC-V\",\"fileTypes\":[\"S\",\"s\",\"riscv\",\"asm\"],\"name\":\"riscv\",\"patterns\":[{\"comment\":\"ok actually this are instructions, but one also could call them funtions…\",\"match\":\"\\\\\\\\b(la|lb|lh|lw|ld|nop|li|mv|not|neg|negw|sext\\\\\\\\.w|seqz|snez|sltz|sgtz|beqz|bnez|blez|bgez|bltz|bgtz|bgt|ble|bgtu|bleu|j|jal|jr|ret|call|tail|fence|csr[r|w|s|c]|csr[w|s|c]i)\\\\\\\\b\",\"name\":\"support.function.pseudo.riscv\"},{\"match\":\"\\\\\\\\b(add|addw|auipc|lui|jalr|beq|bne|blt|bge|bltu|bgeu|lb|lh|lw|ld|lbu|lhu|sb|sh|sw|sd|addi|addiw|slti|sltiu|xori|ori|andi|slli|slliw|srli|srliw|srai|sraiw|sub|subw|sll|sllw|slt|sltu|xor|srl|srlw|sra|sraw|or|and|fence|fence\\\\\\\\.i|csrrw|csrrs|csrrc|csrrwi|csrrsi|csrrci)\\\\\\\\b\",\"name\":\"support.function.riscv\"},{\"comment\":\"priviledged instructions\",\"match\":\"\\\\\\\\b(ecall|ebreak|sfence\\\\\\\\.vma|mret|sret|uret|wfi)\\\\\\\\b\",\"name\":\"support.function.riscv.privileged\"},{\"comment\":\"M extension (multiplication and division)\",\"match\":\"\\\\\\\\b(mul|mulh|mulhsu|mulhu|div|divu|rem|remu|mulw|divw|divuw|remw|remuw)\\\\\\\\b\",\"name\":\"support.function.riscv.m\"},{\"comment\":\"C extension (compressed instructions)\",\"match\":\"\\\\\\\\b(c\\\\\\\\.addi4spn|c\\\\\\\\.fld|c\\\\\\\\.lq|c\\\\\\\\.lw|c\\\\\\\\.flw|c\\\\\\\\.ld|c\\\\\\\\.fsd|c\\\\\\\\.sq|c\\\\\\\\.sw|c\\\\\\\\.fsw|c\\\\\\\\.sd|c\\\\\\\\.nop|c\\\\\\\\.addi|c\\\\\\\\.jal|c\\\\\\\\.addiw|c\\\\\\\\.li|c\\\\\\\\.addi16sp|c\\\\\\\\.lui|c\\\\\\\\.srli|c\\\\\\\\.srli64|c\\\\\\\\.srai|c\\\\\\\\.srai64|c\\\\\\\\.andi|c\\\\\\\\.sub|c\\\\\\\\.xor|c\\\\\\\\.or|c\\\\\\\\.and|c\\\\\\\\.subw|c\\\\\\\\.addw|c\\\\\\\\.j|c\\\\\\\\.beqz|c\\\\\\\\.bnez)\\\\\\\\b\",\"name\":\"support.function.riscv.c\"},{\"comment\":\"A extension (atomic instructions)\",\"match\":\"\\\\\\\\b(lr\\\\\\\\.[w|d]|sc\\\\\\\\.[w|d]|amoswap\\\\\\\\.[w|d]|amoadd\\\\\\\\.[w|d]|amoxor\\\\\\\\.[w|d]|amoand\\\\\\\\.[w|d]|amoor\\\\\\\\.[w|d]|amomin\\\\\\\\.[w|d]|amomax\\\\\\\\.[w|d]|amominu\\\\\\\\.[w|d]|amomaxu\\\\\\\\.[w|d])\\\\\\\\b\",\"name\":\"support.function.riscv.a\"},{\"comment\":\"F extension (single precision floating point)\",\"match\":\"\\\\\\\\b(flw|fsw|fmadd\\\\\\\\.s|fmsub\\\\\\\\.s|fnmsub\\\\\\\\.s|fnmadd\\\\\\\\.s|fadd\\\\\\\\.s|fsub\\\\\\\\.s|fmul\\\\\\\\.s|fdiv\\\\\\\\.s|fsqrt\\\\\\\\.s|fsgnj\\\\\\\\.s|fsgnjn\\\\\\\\.s|fsgnjx\\\\\\\\.s|fmin\\\\\\\\.s|fmax\\\\\\\\.s|fcvt\\\\\\\\.w\\\\\\\\.s|fcvt\\\\\\\\.wu\\\\\\\\.s|fmv\\\\\\\\.x\\\\\\\\.w|feq\\\\\\\\.s|flt\\\\\\\\.s|fle\\\\\\\\.s|fclass\\\\\\\\.s|fcvt\\\\\\\\.s\\\\\\\\.w|fcvt\\\\\\\\.s\\\\\\\\.wu|fmv\\\\\\\\.w\\\\\\\\.x|fcvt\\\\\\\\.l\\\\\\\\.s|fcvt\\\\\\\\.lu\\\\\\\\.s|fcvt\\\\\\\\.s\\\\\\\\.l|fcvt\\\\\\\\.s\\\\\\\\.lu)\\\\\\\\b\",\"name\":\"support.function.riscv.f\"},{\"comment\":\"D extension (double precision floating point)\",\"match\":\"\\\\\\\\b(fld|fsd|fmadd\\\\\\\\.d|fmsub\\\\\\\\.d|fnmsub\\\\\\\\.d|fnmadd\\\\\\\\.d|fadd\\\\\\\\.d|fsub\\\\\\\\.d|fmul\\\\\\\\.d|fdiv\\\\\\\\.d|fsqrt\\\\\\\\.d|fsgnj\\\\\\\\.d|fsgnjn\\\\\\\\.d|fsgnjx\\\\\\\\.d|fmin\\\\\\\\.d|fmax\\\\\\\\.d|fcvt\\\\\\\\.s\\\\\\\\.d|fcvt\\\\\\\\.d\\\\\\\\.s|feq\\\\\\\\.d|flt\\\\\\\\.d|fle\\\\\\\\.d|fclass\\\\\\\\.d|fcvt\\\\\\\\.w\\\\\\\\.d|fcvt\\\\\\\\.wu\\\\\\\\.d|fcvt\\\\\\\\.d\\\\\\\\.w|fcvt\\\\\\\\.d\\\\\\\\.wu|fcvt\\\\\\\\.l\\\\\\\\.d|fcvt\\\\\\\\.lu\\\\\\\\.d|fmv\\\\\\\\.x\\\\\\\\.d|fcvt\\\\\\\\.d\\\\\\\\.l|fcvt\\\\\\\\.d\\\\\\\\.lu|fmv\\\\\\\\.d\\\\\\\\.x)\\\\\\\\b\",\"name\":\"support.function.riscv.d\"},{\"match\":\"\\\\\\\\.(skip|ascii|asciiz|byte|[2|4|8]byte|data|double|float|half|kdata|ktext|space|text|word|dword|dtprelword|dtpreldword|set\\\\\\\\s*(noat|at)|[s|u]leb128|string|incbin|zero|rodata|comm|common)\\\\\\\\b\",\"name\":\"storage.type.riscv\"},{\"match\":\"\\\\\\\\.(balign|align|p2align|extern|globl|global|local|pushsection|section|bss|insn|option|type|equ|macro|endm|file|ident)\\\\\\\\b\",\"name\":\"storage.modifier.riscv\"},{\"captures\":{\"1\":{\"name\":\"entity.name.function.label.riscv\"}},\"match\":\"\\\\\\\\b([A-Za-z0-9_]+):\",\"name\":\"meta.function.label.riscv\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.riscv\"}},\"match\":\"\\\\\\\\b(x([0-9]|1[0-9]|2[0-9]|3[0-1]))\\\\\\\\b\",\"name\":\"variable.other.register.usable.by-number.riscv\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.riscv\"}},\"match\":\"\\\\\\\\b(zero|ra|sp|gp|tp|t[0-6]|a[0-7]|s[0-9]|fp|s1[0-1])\\\\\\\\b\",\"name\":\"variable.other.register.usable.by-name.riscv\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.riscv\"}},\"match\":\"\\\\\\\\b(([umsh]|vs)status|([umsh]|vs)ie|([ums]|vs)tvec|([ums]|vs)scratch|([ums]|vs)epc|([ums]|vs)cause|([umsh]|vs)tval|([umsh]|vs)ip|fflags|frm|fcsr|m?cycleh?|timeh?|m?instreth?|m?hpmcounter([3-9]|[12][0-9]|3[01])h?|[msh][ei]deleg|[msh]counteren|v?satp|hgeie|hgeip|[hm]tinst|hvip|hgatp|htimedeltah?|mvendorid|marchid|mimpid|mhartid|misa|mstatush|mtval2|pmpcfg[0-3]|pmpaddr([0-9]|1[0-5])|mcountinhibit|mhpmevent([3-9]|[12][0-9]|3[01])|tselect|tdata[1-3]|dcsr|dpc|dscratch[0-1])\\\\\\\\b\",\"name\":\"variable.other.csr.names.riscv\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.riscv\"}},\"match\":\"\\\\\\\\bf([0-9]|1[0-9]|2[0-9]|3[0-1])\\\\\\\\b\",\"name\":\"variable.other.register.usable.floating-point.riscv\"},{\"match\":\"\\\\\\\\b\\\\\\\\d+\\\\\\\\.\\\\\\\\d+\\\\\\\\b\",\"name\":\"constant.numeric.float.riscv\"},{\"match\":\"\\\\\\\\b(\\\\\\\\d+|0(x|X)[a-fA-F0-9]+)\\\\\\\\b\",\"name\":\"constant.numeric.integer.riscv\"},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.riscv\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.riscv\"}},\"name\":\"string.quoted.double.riscv\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[rnt\\\\\\\\\\\\\\\\\\\\\"]\",\"name\":\"constant.character.escape.riscv\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.riscv\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.riscv\"}},\"name\":\"string.quoted.single.riscv\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[rnt\\\\\\\\\\\\\\\\\\\\\"]\",\"name\":\"constant.character.escape.riscv\"}]},{\"begin\":\"\\\\\\\\/\\\\\\\\*\",\"end\":\"\\\\\\\\*\\\\\\\\/\",\"name\":\"comment.block\"},{\"begin\":\"\\\\\\\\/\\\\\\\\/\",\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.double-slash\"},{\"begin\":\"^\\\\\\\\s*\\\\\\\\#\\\\\\\\s*(define)\\\\\\\\s+((?<id>[a-zA-Z_][a-zA-Z0-9_]*))(?:(\\\\\\\\()(\\\\\\\\s*\\\\\\\\g<id>\\\\\\\\s*((,)\\\\\\\\s*\\\\\\\\g<id>\\\\\\\\s*)*(?:\\\\\\\\.\\\\\\\\.\\\\\\\\.)?)(\\\\\\\\)))?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.import.define.c\"},\"2\":{\"name\":\"entity.name.function.preprocessor.c\"},\"4\":{\"name\":\"punctuation.definition.parameters.c\"},\"5\":{\"name\":\"variable.parameter.preprocessor.c\"},\"7\":{\"name\":\"punctuation.separator.parameters.c\"},\"8\":{\"name\":\"punctuation.definition.parameters.c\"}},\"end\":\"(?=(?://|/\\\\\\\\*))|$\",\"name\":\"meta.preprocessor.macro.c\",\"patterns\":[{\"match\":\"(?>\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n)\",\"name\":\"punctuation.separator.continuation.c\"},{\"include\":\"$base\"}]},{\"begin\":\"^\\\\\\\\s*#\\\\\\\\s*(error|warning)\\\\\\\\b\",\"captures\":{\"1\":{\"name\":\"keyword.control.import.error.c\"}},\"end\":\"$\",\"name\":\"meta.preprocessor.diagnostic.c\",\"patterns\":[{\"match\":\"(?>\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n)\",\"name\":\"punctuation.separator.continuation.c\"}]},{\"begin\":\"^\\\\\\\\s*#\\\\\\\\s*(include|import)\\\\\\\\b\\\\\\\\s+\",\"captures\":{\"1\":{\"name\":\"keyword.control.import.include.c\"}},\"end\":\"(?=(?://|/\\\\\\\\*))|$\",\"name\":\"meta.preprocessor.c.include\",\"patterns\":[{\"match\":\"(?>\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n)\",\"name\":\"punctuation.separator.continuation.c\"},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.c\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.c\"}},\"name\":\"string.quoted.double.include.c\"},{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.c\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.c\"}},\"name\":\"string.quoted.other.lt-gt.include.c\"}]},{\"begin\":\"^\\\\\\\\s*#\\\\\\\\s*(define|defined|elif|else|if|ifdef|ifndef|line|pragma|undef|endif)\\\\\\\\b\",\"captures\":{\"1\":{\"name\":\"keyword.control.import.c\"}},\"end\":\"(?=(?://|/\\\\\\\\*))|$\",\"name\":\"meta.preprocessor.c\",\"patterns\":[{\"match\":\"(?>\\\\\\\\\\\\\\\\\\\\\\\\s*\\\\\\\\n)\",\"name\":\"punctuation.separator.continuation.c\"}]},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.riscv\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"#|(\\\\\\\\/\\\\\\\\/)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.riscv\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.number-sign.riscv\"}]}],\"scopeName\":\"source.riscv\"}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/R900dpIa.js",
    "content": "import t from\"./COK4E0Yg.js\";const e=Object.freeze(JSON.parse(`{\"displayName\":\"Stata\",\"fileTypes\":[\"do\",\"ado\",\"mata\"],\"foldingStartMarker\":\"\\\\\\\\{\\\\\\\\s*$\",\"foldingStopMarker\":\"^\\\\\\\\s*\\\\\\\\}\",\"name\":\"stata\",\"patterns\":[{\"include\":\"#ascii-regex-functions\"},{\"include\":\"#unicode-regex-functions\"},{\"include\":\"#constants\"},{\"include\":\"#functions\"},{\"include\":\"#comments\"},{\"include\":\"#subscripts\"},{\"include\":\"#operators\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"include\":\"#string-compound\"},{\"include\":\"#string-regular\"},{\"include\":\"#builtin_variables\"},{\"include\":\"#macro-commands\"},{\"comment\":\"keywords that delimit flow conditionals\",\"match\":\"\\\\\\\\b(if|else if|else)\\\\\\\\b\",\"name\":\"keyword.control.conditional.stata\"},{\"captures\":{\"1\":{\"name\":\"storage.type.scalar.stata\"}},\"match\":\"^\\\\\\\\s*(sca(lar|la|l)?(\\\\\\\\s+de(fine|fin|fi|f)?)?)\\\\\\\\s+(?!(drop|dir?|l(ist|is|i)?)\\\\\\\\s+)\"},{\"begin\":\"\\\\\\\\b(mer(ge|g)?)\\\\\\\\s+(1|m|n)(:)(1|m|n)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.flow.stata\"},\"3\":{\"patterns\":[{\"include\":\"#constants\"},{\"match\":\"m|n\",\"name\":\"\"}]},\"4\":{\"name\":\"punctuation.separator.key-value\"},\"5\":{\"patterns\":[{\"include\":\"#constants\"},{\"match\":\"m|n\",\"name\":\"\"}]}},\"end\":\"using\",\"patterns\":[{\"include\":\"#builtin_variables\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"include\":\"#comments\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.flow.stata\"},\"2\":{\"patterns\":[{\"include\":\"#macro-local-identifiers\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"}]},\"3\":{\"name\":\"keyword.control.flow.stata\"}},\"match\":\"\\\\\\\\b(foreach)\\\\\\\\s+((?!in|of).+)\\\\\\\\s+(in|of var(list|lis|li|l)?|of new(list|lis|li|l)?|of num(list|lis|li|l)?)\\\\\\\\b\"},{\"begin\":\"\\\\\\\\b(foreach)\\\\\\\\s+((?!in|of).+)\\\\\\\\s+(of loc(al|a)?|of glo(bal|ba|b)?)\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.flow.stata\"},\"2\":{\"patterns\":[{\"include\":\"#macro-local-identifiers\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"}]},\"3\":{\"name\":\"keyword.control.flow.stata\"}},\"end\":\"(?=\\\\\\\\s*\\\\\\\\{)\",\"patterns\":[{\"include\":\"#macro-local-identifiers\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"}]},{\"begin\":\"\\\\\\\\b(forvalues|forvalue|forvalu|forval|forva|forv)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.flow.stata\"}},\"end\":\"\\\\\\\\s*(=)\\\\\\\\s*([^\\\\\\\\{]+)\\\\\\\\s*|(?=\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.stata\"},\"2\":{\"patterns\":[{\"include\":\"#constants\"},{\"include\":\"#operators\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"}]}},\"patterns\":[{\"include\":\"#macro-local-identifiers\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"}]},{\"comment\":\"keywords that delimit loops\",\"match\":\"\\\\\\\\b(while|continue)\\\\\\\\b\",\"name\":\"keyword.control.flow.stata\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.stata\"}},\"comment\":\"keywords that haven't fit into other groups (yet).\",\"match\":\"\\\\\\\\b(as|ass|asse|asser|assert)\\\\\\\\b\"},{\"comment\":\"prefixes that require a colon\",\"match\":\"\\\\\\\\b(by(sort|sor|so|s)?|statsby|rolling|bootstrap|jackknife|permute|simulate|svy|mi est(imate|imat|ima|im|i)?|nestreg|stepwise|xi|fp|mfp|vers(ion|io|i)?)\\\\\\\\b\",\"name\":\"storage.type.function.stata\"},{\"comment\":\"prefixes that don't need a colon\",\"match\":\"\\\\\\\\b(qui(etly|etl|et|e)?|n(oisily|oisil|oisi|ois|oi|o)?|cap(ture|tur|tu|t)?)\\\\\\\\b:?\",\"name\":\"keyword.control.flow.stata\"},{\"captures\":{\"1\":{\"name\":\"storage.type.function.stata\"},\"3\":{\"name\":\"storage.type.function.stata\"},\"7\":{\"name\":\"entity.name.function.stata\"}},\"match\":\"\\\\\\\\s*(pr(ogram|ogra|ogr|og|o)?)\\\\\\\\s+((di(r)?|drop|l(ist|is|i)?)\\\\\\\\s+)([\\\\\\\\w&&[^0-9]]\\\\\\\\w{0,31})\"},{\"begin\":\"^\\\\\\\\s*(pr(ogram|ogra|ogr|og|o)?)\\\\\\\\s+(de(fine|fin|fi|f)?\\\\\\\\s+)?\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.stata\"},\"3\":{\"name\":\"storage.type.function.stata\"}},\"end\":\"(?=,|\\\\\\\\n|/)\",\"patterns\":[{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"match\":\"[\\\\\\\\w&&[^0-9]]\\\\\\\\w{0,31}\",\"name\":\"entity.name.function.stata\"},{\"match\":\"[^A-za-z_0-9,\\\\\\\\n/ ]+\",\"name\":\"invalid.illegal.name.stata\"}]},{\"captures\":{\"1\":\"keyword.functions.data.stata.test\"},\"match\":\"\\\\\\\\b(form(at|a)?)\\\\\\\\s*([\\\\\\\\w&&[^0-9]]\\\\\\\\w{0,31})*\\\\\\\\s*(%)(-)?(0)?([0-9]+)(.)([0-9]+)(e|f|g)(c)?\"},{\"include\":\"#braces-with-error\"},{\"begin\":\"(?=syntax)\",\"end\":\"\\\\\\\\n\",\"patterns\":[{\"begin\":\"syntax\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.functions.program.stata\"}},\"comment\":\"color before the comma\",\"end\":\"(?=,|\\\\\\\\n)\",\"patterns\":[{\"begin\":\"///\",\"end\":\"\\\\\\\\n\",\"name\":\"comment.block.stata\"},{\"match\":\"\\\\\\\\[\",\"name\":\"punctuation.definition.parameters.begin.stata\"},{\"match\":\"\\\\\\\\]\",\"name\":\"punctuation.definition.parameters.end.stata\"},{\"match\":\"\\\\\\\\b(varlist|varname|newvarlist|newvarname|namelist|name|anything)\\\\\\\\b\",\"name\":\"entity.name.type.class.stata\"},{\"captures\":{\"2\":{\"name\":\"entity.name.type.class.stata\"},\"3\":{\"name\":\"keyword.operator.arithmetic.stata\"}},\"match\":\"\\\\\\\\b((if|in|using|fweight|aweight|pweight|iweight))\\\\\\\\b(/)?\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.arithmetic.stata\"},\"2\":{\"name\":\"entity.name.type.class.stata\"}},\"match\":\"(/)?(exp)\"},{\"include\":\"#constants\"},{\"include\":\"#operators\"},{\"include\":\"#string-compound\"},{\"include\":\"#string-regular\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"include\":\"#builtin_variables\"}]},{\"begin\":\",\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.variable.begin.stata\"}},\"comment\":\"things to color after the comma\",\"end\":\"(?=\\\\\\\\n)\",\"patterns\":[{\"begin\":\"///\",\"end\":\"\\\\\\\\n\",\"name\":\"comment.block.stata\"},{\"begin\":\"([^\\\\\\\\s\\\\\\\\[\\\\\\\\]]+)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"comment\":\"these are the names that become macros\",\"patterns\":[{\"include\":\"#macro-local-identifiers\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"}]},\"2\":{\"name\":\"keyword.operator.parentheses.stata\"}},\"comment\":\"color options with parentheses\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.parentheses.stata\"}},\"patterns\":[{\"captures\":{\"0\":{\"name\":\"support.type.stata\"}},\"comment\":\"the first word is often a type\",\"match\":\"\\\\\\\\b(integer|intege|integ|inte|int|real|string|strin|stri|str)\\\\\\\\b\"},{\"include\":\"#constants\"},{\"include\":\"#operators\"},{\"include\":\"#string-compound\"},{\"include\":\"#string-regular\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"include\":\"#builtin_variables\"}]},{\"include\":\"#macro-local-identifiers\"},{\"include\":\"#constants\"},{\"include\":\"#operators\"},{\"include\":\"#string-compound\"},{\"include\":\"#string-regular\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"include\":\"#builtin_variables\"}]}]},{\"captures\":{\"1\":{\"name\":\"keyword.functions.data.stata\"}},\"comment\":\"one-word commands\",\"match\":\"\\\\\\\\b(sa(v|ve)|saveold|destring|tostring|u(se|s)?|note(s)?|form(at|a)?)\\\\\\\\b\"},{\"comment\":\"programming commands\",\"match\":\"\\\\\\\\b(exit|end)\\\\\\\\b\",\"name\":\"keyword.functions.data.stata\"},{\"captures\":{\"1\":{\"name\":\"keyword.functions.data.stata\"},\"2\":{\"patterns\":[{\"include\":\"#macro-local\"}]},\"4\":{\"name\":\"invalid.illegal.name.stata\"},\"5\":{\"name\":\"keyword.operator.assignment.stata\"}},\"match\":\"\\\\\\\\b(replace)\\\\\\\\s+([^=]+)\\\\\\\\s*((==)|(=))\"},{\"captures\":{\"1\":{\"name\":\"keyword.functions.data.stata\"},\"3\":{\"name\":\"support.type.stata\"},\"5\":{\"patterns\":[{\"include\":\"#reserved-names\"},{\"include\":\"#macro-local\"}]},\"7\":{\"name\":\"invalid.illegal.name.stata\"},\"8\":{\"name\":\"keyword.operator.assignment.stata\"}},\"match\":\"\\\\\\\\b(g(enerate|enerat|enera|ener|ene|en|e)?|egen)\\\\\\\\s+((byte|int|long|float|double|str[1-9]?[0-9]?[0-9]?[0-9]?|strL)\\\\\\\\s+)?([^=\\\\\\\\s]+)\\\\\\\\s*((==)|(=))\"},{\"captures\":{\"1\":{\"name\":\"keyword.functions.data.stata\"},\"3\":{\"name\":\"support.type.stata\"}},\"match\":\"\\\\\\\\b(set ty(pe|p)?)\\\\\\\\s+((byte|int|long|float|double|str[1-9]?[0-9]?[0-9]?[0-9]?|strL)?\\\\\\\\s+)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.functions.data.stata\"},\"3\":{\"name\":\"keyword.functions.data.stata\"},\"6\":{\"name\":\"punctuation.definition.string.begin.stata\"},\"7\":{\"patterns\":[{\"include\":\"#string-compound\"},{\"include\":\"#macro-local-escaped\"},{\"include\":\"#macro-global-escaped\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"match\":\"[^\\`\\\\\\\\$]{81,}\",\"name\":\"invalid.illegal.name.stata\"},{\"match\":\".\",\"name\":\"string.quoted.double.compound.stata\"}]},\"8\":{\"name\":\"punctuation.definition.string.begin.stata\"}},\"match\":\"\\\\\\\\b(la(bel|be|b)?)\\\\\\\\s+(var(iable|iabl|iab|ia|i)?)\\\\\\\\s+([\\\\\\\\w&&[^0-9]]\\\\\\\\w{0,31})\\\\\\\\s+(\\`\\\\\")(.+)(\\\\\"')\"},{\"captures\":{\"1\":{\"name\":\"keyword.functions.data.stata\"},\"3\":{\"name\":\"keyword.functions.data.stata\"},\"6\":{\"name\":\"punctuation.definition.string.begin.stata\"},\"7\":{\"patterns\":[{\"include\":\"#macro-local-escaped\"},{\"include\":\"#macro-global-escaped\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"match\":\"[^\\`\\\\\\\\$]{81,}\",\"name\":\"invalid.illegal.name.stata\"},{\"match\":\".\",\"name\":\"string.quoted.double.stata\"}]},\"8\":{\"name\":\"punctuation.definition.string.begin.stata\"}},\"match\":\"\\\\\\\\b(la(bel|be|b)?)\\\\\\\\s+(var(iable|iabl|iab|ia|i)?)\\\\\\\\s+([\\\\\\\\w&&[^0-9]]\\\\\\\\w{0,31})\\\\\\\\s+(\\\\\")(.+)(\\\\\")\"},{\"captures\":{\"1\":{\"name\":\"keyword.functions.data.stata\"},\"3\":{\"name\":\"keyword.functions.data.stata\"}},\"match\":\"\\\\\\\\b(la(bel|be|b)?)\\\\\\\\s+(da(ta|t)?|var(iable|iabl|iab|ia|i)?|de(f|fi|fin|fine)?|val(ues|ue|u)?|di(r)?|l(ist|is|i)?|copy|drop|save|lang(uage|uag|ua|u)?)\\\\\\\\b\"},{\"begin\":\"\\\\\\\\b(drop|keep)\\\\\\\\b(?!\\\\\\\\s+(if|in)\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.functions.data.stata\"}},\"end\":\"\\\\\\\\n\",\"patterns\":[{\"match\":\"\\\\\\\\b(if|in)\\\\\\\\b\",\"name\":\"invalid.illegal.name.stata\"},{\"include\":\"#comments\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"include\":\"#operators\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.functions.data.stata\"},\"2\":{\"name\":\"keyword.functions.data.stata\"}},\"match\":\"\\\\\\\\b(drop|keep)\\\\\\\\s+(if|in)\\\\\\\\b\"},{\"begin\":\"^\\\\\\\\s*mata:?\\\\\\\\s*$\",\"comment\":\"won't match single-line Mata statements\",\"end\":\"^\\\\\\\\s*end\\\\\\\\s*$\\\\\\\\n?\",\"name\":\"meta.embedded.block.mata\",\"patterns\":[{\"match\":\"(?<![^$\\\\\\\\s])(version|pragma|if|else|for|while|do|break|continue|goto|return)(?=\\\\\\\\s)\",\"name\":\"keyword.control.mata\"},{\"captures\":{\"1\":{\"name\":\"storage.type.eltype.mata\"},\"4\":{\"name\":\"storage.type.orgtype.mata\"}},\"match\":\"\\\\\\\\b(transmorphic|string|numeric|real|complex|(pointer(\\\\\\\\([^)]+\\\\\\\\))?))\\\\\\\\s+(matrix|vector|rowvector|colvector|scalar)\\\\\\\\b\",\"name\":\"storage.type.mata\"},{\"comment\":\"need to end with whitespace character here or last group doesn't match\",\"match\":\"\\\\\\\\b(transmorphic|string|numeric|real|complex|(pointer(\\\\\\\\([^)]+\\\\\\\\))?))\\\\\\\\s\",\"name\":\"storage.type.eltype.mata\"},{\"match\":\"\\\\\\\\b(matrix|vector|rowvector|colvector|scalar)\\\\\\\\b\",\"name\":\"storage.type.orgtype.mata\"},{\"match\":\"\\\\\\\\!|\\\\\\\\+\\\\\\\\+|\\\\\\\\-\\\\\\\\-|\\\\\\\\&|\\\\\\\\'|\\\\\\\\?|\\\\\\\\\\\\\\\\|\\\\\\\\:\\\\\\\\:|\\\\\\\\,|\\\\\\\\.\\\\\\\\.|\\\\\\\\||\\\\\\\\=|\\\\\\\\=\\\\\\\\=|\\\\\\\\>\\\\\\\\=|\\\\\\\\<\\\\\\\\=|\\\\\\\\<|\\\\\\\\>|\\\\\\\\!\\\\\\\\=|\\\\\\\\#|\\\\\\\\+|\\\\\\\\-|\\\\\\\\*|\\\\\\\\^|\\\\\\\\/\",\"name\":\"keyword.operator.mata\"},{\"include\":\"$self\"}]},{\"begin\":\"\\\\\\\\b(odbc)\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.flow.stata\"}},\"end\":\"\\\\\\\\n\",\"patterns\":[{\"begin\":\"///\",\"end\":\"\\\\\\\\n\",\"name\":\"comment.block.stata\"},{\"begin\":\"(exec?)(\\\\\\\\(\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.builtin.stata\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.stata\"}},\"end\":\"\\\\\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.stata\"}},\"patterns\":[{\"include\":\"source.sql\"}]},{\"include\":\"$self\"}]},{\"include\":\"#commands-other\"}],\"repository\":{\"ascii-regex-character-class\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[\\\\\\\\*\\\\\\\\+\\\\\\\\?\\\\\\\\-\\\\\\\\.\\\\\\\\^\\\\\\\\$\\\\\\\\|\\\\\\\\[\\\\\\\\]\\\\\\\\(\\\\\\\\)\\\\\\\\\\\\\\\\]\",\"name\":\"constant.character.escape.backslash.stata\"},{\"match\":\"\\\\\\\\.\",\"name\":\"constant.character.character-class.stata\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"illegal.invalid.character-class.stata\"},{\"begin\":\"(\\\\\\\\[)(\\\\\\\\^)?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.character-class.stata\"},\"2\":{\"name\":\"keyword.operator.negation.stata\"}},\"end\":\"(\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.character-class.stata\"}},\"name\":\"constant.other.character-class.set.stata\",\"patterns\":[{\"include\":\"#ascii-regex-character-class\"},{\"captures\":{\"2\":{\"name\":\"constant.character.escape.backslash.stata\"},\"4\":{\"name\":\"constant.character.escape.backslash.stata\"}},\"match\":\"((\\\\\\\\\\\\\\\\.)|.)\\\\\\\\-((\\\\\\\\\\\\\\\\.)|[^\\\\\\\\]])\",\"name\":\"constant.other.character-class.range.stata\"}]}]},\"ascii-regex-functions\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"support.function.builtin.stata\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.stata\"},\"3\":{\"patterns\":[{\"include\":\"#string-compound\"},{\"include\":\"#string-regular\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"include\":\"#functions\"},{\"match\":\"[\\\\\\\\w&&[^0-9]]\\\\\\\\w{0,31}\",\"name\":\"variable.parameter.function.stata\"},{\"include\":\"#comments-triple-slash\"}]},\"4\":{\"name\":\"punctuation.definition.variable.begin.stata\"},\"5\":{\"name\":\"punctuation.definition.string.begin.stata\"},\"6\":{\"patterns\":[{\"include\":\"#ascii-regex-internals\"}]},\"7\":{\"name\":\"punctuation.definition.string.end.stata\"},\"8\":{\"name\":\"invalid.illegal.punctuation.stata\"},\"9\":{\"name\":\"punctuation.definition.parameters.end.stata\"}},\"comment\":\"color regexm with regular quotes i.e. \\\\\" \",\"match\":\"\\\\\\\\b(regexm)(\\\\\\\\()([^,]+)(,)\\\\\\\\s*(\\\\\")([^\\\\\"]+)(\\\\\"(')?)\\\\\\\\s*(\\\\\\\\))\"},{\"captures\":{\"1\":{\"name\":\"support.function.builtin.stata\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.stata\"},\"3\":{\"patterns\":[{\"include\":\"#string-compound\"},{\"include\":\"#string-regular\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"include\":\"#functions\"},{\"match\":\"[\\\\\\\\w&&[^0-9]]\\\\\\\\w{0,31}\",\"name\":\"variable.parameter.function.stata\"},{\"include\":\"#comments-triple-slash\"}]},\"4\":{\"name\":\"punctuation.definition.variable.begin.stata\"},\"5\":{\"name\":\"punctuation.definition.string.begin.stata\"},\"6\":{\"patterns\":[{\"include\":\"#ascii-regex-internals\"}]},\"7\":{\"name\":\"punctuation.definition.string.end.stata\"},\"8\":{\"name\":\"punctuation.definition.parameters.end.stata\"}},\"comment\":\"color regexm with compound quotes\",\"match\":\"\\\\\\\\b(regexm)(\\\\\\\\()([^,]+)(,)\\\\\\\\s*(\\`\\\\\")([^\\\\\"]+)(\\\\\"')\\\\\\\\s*(\\\\\\\\))\"},{\"captures\":{\"1\":{\"name\":\"support.function.builtin.stata\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.stata\"},\"3\":{\"patterns\":[{\"include\":\"#string-compound\"},{\"include\":\"#string-regular\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"include\":\"#functions\"},{\"match\":\"[\\\\\\\\w&&[^0-9]]\\\\\\\\w{0,31}\",\"name\":\"variable.parameter.function.stata\"},{\"include\":\"#comments\"}]},\"4\":{\"name\":\"punctuation.definition.variable.begin.stata\"},\"5\":{\"name\":\"punctuation.definition.string.begin.stata\"},\"6\":{\"patterns\":[{\"include\":\"#ascii-regex-internals\"}]},\"7\":{\"name\":\"punctuation.definition.string.end.stata\"},\"8\":{\"name\":\"invalid.illegal.punctuation.stata\"},\"9\":{\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.definition.variable.begin.stata\"},{\"include\":\"#string-compound\"},{\"include\":\"#string-regular\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"include\":\"#functions\"},{\"match\":\"[\\\\\\\\w&&[^0-9]]\\\\\\\\w{0,31}\",\"name\":\"variable.parameter.function.stata\"},{\"include\":\"#comments-triple-slash\"}]},\"10\":{\"name\":\"punctuation.definition.parameters.end.stata\"}},\"comment\":\"color regexr with regular quotes i.e. \\\\\" \",\"match\":\"\\\\\\\\b(regexr)(\\\\\\\\()([^,]+)(,)\\\\\\\\s*(\\\\\")([^\\\\\"]+)(\\\\\"(')?)\\\\\\\\s*([^\\\\\\\\)]*)(\\\\\\\\))\"},{\"captures\":{\"1\":{\"name\":\"support.function.builtin.stata\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.stata\"},\"3\":{\"patterns\":[{\"include\":\"#string-compound\"},{\"include\":\"#string-regular\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"include\":\"#functions\"},{\"match\":\"[\\\\\\\\w&&[^0-9]]\\\\\\\\w{0,31}\",\"name\":\"variable.parameter.function.stata\"},{\"include\":\"#comments\"}]},\"4\":{\"name\":\"punctuation.definition.variable.begin.stata\"},\"5\":{\"name\":\"punctuation.definition.string.begin.stata\"},\"6\":{\"patterns\":[{\"include\":\"#ascii-regex-internals\"}]},\"7\":{\"name\":\"punctuation.definition.string.end.stata\"},\"8\":{\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.definition.variable.begin.stata\"},{\"include\":\"#string-compound\"},{\"include\":\"#string-regular\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"include\":\"#functions\"},{\"match\":\"[\\\\\\\\w&&[^0-9]]\\\\\\\\w{0,31}\",\"name\":\"variable.parameter.function.stata\"},{\"include\":\"#comments-triple-slash\"}]},\"9\":{\"name\":\"punctuation.definition.parameters.end.stata\"}},\"comment\":\"color regexr with compound quotes i.e. \\`\\\\\"text\\\\\"' \",\"match\":\"\\\\\\\\b(regexr)(\\\\\\\\()([^,]+)(,)\\\\\\\\s*(\\`\\\\\")([^\\\\\"]+)(\\\\\"')\\\\\\\\s*([^\\\\\\\\)]*)(\\\\\\\\))\"}]},\"ascii-regex-internals\":{\"patterns\":[{\"match\":\"\\\\\\\\^\",\"name\":\"keyword.control.anchor.stata\"},{\"comment\":\"matched when not a global, but must be ascii\",\"match\":\"\\\\\\\\$(?![a-zA-Z_\\\\\\\\{])\",\"name\":\"keyword.control.anchor.stata\"},{\"match\":\"[\\\\\\\\?\\\\\\\\+\\\\\\\\*]\",\"name\":\"keyword.control.quantifier.stata\"},{\"match\":\"\\\\\\\\|\",\"name\":\"keyword.control.or.stata\"},{\"begin\":\"(\\\\\\\\()(?=\\\\\\\\?|\\\\\\\\*|\\\\\\\\+)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.group.stata\"}},\"contentName\":\"invalid.illegal.regexm.stata\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.group.stata\"}}},{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.group.stata\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.group.stata\"}},\"patterns\":[{\"include\":\"#ascii-regex-internals\"}]},{\"include\":\"#ascii-regex-character-class\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"comment\":\"NOTE: Error if I have .+ No idea why but it works fine it seems with just .\",\"match\":\".\",\"name\":\"string.quoted.stata\"}]},\"braces-with-error\":{\"patterns\":[{\"begin\":\"(\\\\\\\\{)\\\\\\\\s*([^\\\\\\\\n]*)(?=\\\\\\\\n)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.block.begin.stata\"},\"2\":{\"patterns\":[{\"include\":\"#comments\"},{\"match\":\"[^\\\\\\\\n]+\",\"name\":\"illegal.invalid.name.stata\"}]}},\"comment\":\"correct with nothing else on the line but whitespace; before and after; before; after; correct\",\"end\":\"^\\\\\\\\s*(\\\\\\\\})\\\\\\\\s*$|^\\\\\\\\s*([^\\\\\\\\*\\\\\"\\\\\\\\}]+)\\\\\\\\s+(\\\\\\\\})\\\\\\\\s*([^\\\\\\\\*\\\\\"\\\\\\\\}/\\\\\\\\n]+)|^\\\\\\\\s*([^\\\\\"\\\\\\\\*\\\\\\\\}]+)\\\\\\\\s+(\\\\\\\\})|\\\\\\\\s*(\\\\\\\\})\\\\\\\\s*([^\\\\\"\\\\\\\\*\\\\\\\\}/\\\\\\\\n]+)|(\\\\\\\\})$\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.block.end.stata\"},\"2\":{\"name\":\"invalid.illegal.name.stata\"},\"3\":{\"name\":\"keyword.control.block.end.stata\"},\"4\":{\"name\":\"invalid.illegal.name.stata\"},\"5\":{\"name\":\"invalid.illegal.name.stata\"},\"6\":{\"name\":\"keyword.control.block.end.stata\"},\"7\":{\"name\":\"keyword.control.block.end.stata\"},\"8\":{\"name\":\"invalid.illegal.name.stata\"},\"9\":{\"name\":\"keyword.control.block.end.stata\"}},\"patterns\":[{\"include\":\"$self\"}]}]},\"braces-without-error\":{\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.block.begin.stata\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.block.end.stata\"}}}]},\"builtin_types\":{\"patterns\":[{\"match\":\"\\\\\\\\b(byte|int|long|float|double|str[1-9]?[0-9]?[0-9]?[0-9]?|strL)\\\\\\\\b\",\"name\":\"support.type.stata\"}]},\"builtin_variables\":{\"patterns\":[{\"match\":\"\\\\\\\\b(_b|_coef|_cons|_n|_N|_rc|_se)\\\\\\\\b\",\"name\":\"variable.object.stata\"}]},\"commands-other\":{\"patterns\":[{\"comment\":\"Add on commands\",\"match\":\"\\\\\\\\b(reghdfe|ivreghdfe|ivreg2|outreg|gcollapse|gcontract|gegen|gisid|glevelsof|gquantiles)\\\\\\\\b\",\"name\":\"keyword.control.flow.stata\"},{\"comment\":\"Built in commands\",\"match\":\"\\\\\\\\b(about|ac|acprplot|ado|adopath|adoupdate|alpha|ameans|an|ano|anov|anova|anova_terms|anovadef|aorder|ap|app|appe|appen|append|arch|arch_dr|arch_estat|arch_p|archlm|areg|areg_p|args|arima|arima_dr|arima_estat|arima_p|asmprobit|asmprobit_estat|asmprobit_lf|asmprobit_mfx__dlg|asmprobit_p|avplot|avplots|bcskew0|bgodfrey|binreg|bip0_lf|biplot|bipp_lf|bipr_lf|bipr_p|biprobit|bitest|bitesti|bitowt|blogit|bmemsize|boot|bootsamp|boxco_l|boxco_p|boxcox|boxcox_p|bprobit|br|break|brier|bro|brow|brows|browse|brr|brrstat|bs|bsampl_w|bsample|bsqreg|bstat|bstrap|ca|ca_estat|ca_p|cabiplot|camat|canon|canon_estat|canon_p|caprojection|cat|cc|cchart|cci|cd|censobs_table|centile|cf|char|chdir|checkdlgfiles|checkestimationsample|checkhlpfiles|checksum|chelp|ci|cii|cl|class|classutil|clear|cli|clis|clist|clog|clog_lf|clog_p|clogi|clogi_sw|clogit|clogit_lf|clogit_p|clogitp|clogl_sw|cloglog|clonevar|clslistarray|cluster|cluster_measures|cluster_stop|cluster_tree|cluster_tree_8|clustermat|cmdlog|cnr|cnre|cnreg|cnreg_p|cnreg_sw|cnsreg|codebook|collaps4|collapse|colormult_nb|colormult_nw|compare|compress|conf|confi|confir|confirm|conren|cons|const|constr|constra|constrai|constrain|constraint|contract|copy|copyright|copysource|cor|corc|corr|corr2data|corr_anti|corr_kmo|corr_smc|corre|correl|correla|correlat|correlate|corrgram|cou|coun|count|cprplot|crc|cret|cretu|cretur|creturn|cross|cs|cscript|cscript_log|csi|ct|ct_is|ctset|ctst_st|cttost|cumsp|cumul|cusum|cutil|d|datasig|datasign|datasigna|datasignat|datasignatu|datasignatur|datasignature|datetof|db|dbeta|de|dec|deco|decod|decode|deff|des|desc|descr|descri|describ|describe|dfbeta|dfgls|dfuller|di|di_g|dir|dirstats|dis|discard|disp|disp_res|disp_s|displ|displa|display|do|doe|doed|doedi|doedit|dotplot|dprobit|drawnorm|ds|ds_util|dstdize|duplicates|durbina|dwstat|dydx|ed|edi|edit|eivreg|emdef|en|enc|enco|encod|encode|eq|erase|ereg|ereg_lf|ereg_p|ereg_sw|ereghet|ereghet_glf|ereghet_glf_sh|ereghet_gp|ereghet_ilf|ereghet_ilf_sh|ereghet_ip|eret|eretu|eretur|ereturn|err|erro|error|est|est_cfexist|est_cfname|est_clickable|est_expand|est_hold|est_table|est_unhold|est_unholdok|estat|estat_default|estat_summ|estat_vce_only|esti|estimates|etodow|etof|etomdy|expand|expandcl|fac|fact|facto|factor|factor_estat|factor_p|factor_pca_rotated|factor_rotate|factormat|fcast|fcast_compute|fcast_graph|fdades|fdadesc|fdadescr|fdadescri|fdadescrib|fdadescribe|fdasav|fdasave|fdause|fh_st|file|filefilter|fillin|find_hlp_file|findfile|findit|fit|fl|fli|flis|flist|fpredict|frac_adj|frac_chk|frac_cox|frac_ddp|frac_dis|frac_dv|frac_in|frac_mun|frac_pp|frac_pq|frac_pv|frac_wgt|frac_xo|fracgen|fracplot|fracpoly|fracpred|fron_ex|fron_hn|fron_p|fron_tn|fron_tn2|frontier|ftodate|ftoe|ftomdy|ftowdate|gamhet_glf|gamhet_gp|gamhet_ilf|gamhet_ip|gamma|gamma_d2|gamma_p|gamma_sw|gammahet|gdi_hexagon|gdi_spokes|genrank|genstd|genvmean|gettoken|gladder|glim_l01|glim_l02|glim_l03|glim_l04|glim_l05|glim_l06|glim_l07|glim_l08|glim_l09|glim_l10|glim_l11|glim_l12|glim_lf|glim_mu|glim_nw1|glim_nw2|glim_nw3|glim_p|glim_v1|glim_v2|glim_v3|glim_v4|glim_v5|glim_v6|glim_v7|glm|glm_p|glm_sw|glmpred|glogit|glogit_p|gmeans|gnbre_lf|gnbreg|gnbreg_p|gomp_lf|gompe_sw|gomper_p|gompertz|gompertzhet|gomphet_glf|gomphet_glf_sh|gomphet_gp|gomphet_ilf|gomphet_ilf_sh|gomphet_ip|gphdot|gphpen|gphprint|gprefs|gprobi_p|gprobit|gr|gr7|gr_copy|gr_current|gr_db|gr_describe|gr_dir|gr_draw|gr_draw_replay|gr_drop|gr_edit|gr_editviewopts|gr_example|gr_example2|gr_export|gr_print|gr_qscheme|gr_query|gr_read|gr_rename|gr_replay|gr_save|gr_set|gr_setscheme|gr_table|gr_undo|gr_use|graph|grebar|greigen|grmeanby|gs_fileinfo|gs_filetype|gs_graphinfo|gs_stat|gsort|gwood|h|hareg|hausman|haver|he|heck_d2|heckma_p|heckman|heckp_lf|heckpr_p|heckprob|hel|help|hereg|hetpr_lf|hetpr_p|hetprob|hettest|hexdump|hilite|hist|histogram|hlogit|hlu|hmeans|hotel|hotelling|hprobit|hreg|hsearch|icd9|icd9_ff|icd9p|iis|impute|imtest|inbase|include|inf|infi|infil|infile|infix|inp|inpu|input|ins|insheet|insp|inspe|inspec|inspect|integ|inten|intreg|intreg_p|intrg2_ll|intrg_ll|intrg_ll2|ipolate|iqreg|ir|irf|irf_create|irfm|iri|is_svy|is_svysum|isid|istdize|ivprobit|ivprobit_p|ivreg|ivreg_footnote|ivtob_lf|ivtobit|ivtobit_p|jacknife|jknife|jkstat|joinby|kalarma1|kap|kapmeier|kappa|kapwgt|kdensity|ksm|ksmirnov|ktau|kwallis|labelbook|ladder|levelsof|leverage|lfit|lfit_p|li|lincom|line|linktest|lis|list|lloghet_glf|lloghet_glf_sh|lloghet_gp|lloghet_ilf|lloghet_ilf_sh|lloghet_ip|llogi_sw|llogis_p|llogist|llogistic|llogistichet|lnorm_lf|lnorm_sw|lnorma_p|lnormal|lnormalhet|lnormhet_glf|lnormhet_glf_sh|lnormhet_gp|lnormhet_ilf|lnormhet_ilf_sh|lnormhet_ip|lnskew0|loadingplot|(?<!\\\\\\\\.)log|logi|logis_lf|logistic|logistic_p|logit|logit_estat|logit_p|loglogs|logrank|loneway|lookfor|lookup|lowess|lpredict|lrecomp|lroc|lrtest|ls|lsens|lsens_x|lstat|ltable|ltriang|lv|lvr2plot|m|ma|mac|macr|macro|makecns|man|manova|manovatest|mantel|mark|markin|markout|marksample|mat|mat_capp|mat_order|mat_put_rr|mat_rapp|mata|mata_clear|mata_describe|mata_drop|mata_matdescribe|mata_matsave|mata_matuse|mata_memory|mata_mlib|mata_mosave|mata_rename|mata_which|matalabel|matcproc|matlist|matname|matr|matri|matrix|matrix_input__dlg|matstrik|mcc|mcci|md0_|md1_|md1debug_|md2_|md2debug_|mds|mds_estat|mds_p|mdsconfig|mdslong|mdsmat|mdsshepard|mdytoe|mdytof|me_derd|mean|means|median|memory|memsize|mfp|mfx|mhelp|mhodds|minbound|mixed_ll|mixed_ll_reparm|mkassert|mkdir|mkmat|mkspline|ml|ml_adjs|ml_bhhhs|ml_c_d|ml_check|ml_clear|ml_cnt|ml_debug|ml_defd|ml_e0|ml_e0_bfgs|ml_e0_cycle|ml_e0_dfp|ml_e0i|ml_e1|ml_e1_bfgs|ml_e1_bhhh|ml_e1_cycle|ml_e1_dfp|ml_e2|ml_e2_cycle|ml_ebfg0|ml_ebfr0|ml_ebfr1|ml_ebh0q|ml_ebhh0|ml_ebhr0|ml_ebr0i|ml_ecr0i|ml_edfp0|ml_edfr0|ml_edfr1|ml_edr0i|ml_eds|ml_eer0i|ml_egr0i|ml_elf|ml_elf_bfgs|ml_elf_bhhh|ml_elf_cycle|ml_elf_dfp|ml_elfi|ml_elfs|ml_enr0i|ml_enrr0|ml_erdu0|ml_erdu0_bfgs|ml_erdu0_bhhh|ml_erdu0_bhhhq|ml_erdu0_cycle|ml_erdu0_dfp|ml_erdu0_nrbfgs|ml_exde|ml_footnote|ml_geqnr|ml_grad0|ml_graph|ml_hbhhh|ml_hd0|ml_hold|ml_init|ml_inv|ml_log|ml_max|ml_mlout|ml_mlout_8|ml_model|ml_nb0|ml_opt|ml_p|ml_plot|ml_query|ml_rdgrd|ml_repor|ml_s_e|ml_score|ml_searc|ml_technique|ml_unhold|mleval|mlf_|mlmatbysum|mlmatsum|mlog|mlogi|mlogit|mlogit_footnote|mlogit_p|mlopts|mlsum|mlvecsum|mnl0_|mor|more|mov|move|mprobit|mprobit_lf|mprobit_p|mrdu0_|mrdu1_|mvdecode|mvencode|mvreg|mvreg_estat|nbreg|nbreg_al|nbreg_lf|nbreg_p|nbreg_sw|nestreg|net|newey|newey_p|news|nl|nlcom|nlcom_p|nlexp2|nlexp2a|nlexp3|nlgom3|nlgom4|nlinit|nllog3|nllog4|nlog_rd|nlogit|nlogit_p|nlogitgen|nlogittree|nlpred|nobreak|notes_dlg|nptrend|numlabel|numlist|old_ver|olo|olog|ologi|ologi_sw|ologit|ologit_p|ologitp|on|one|onew|onewa|oneway|op_colnm|op_comp|op_diff|op_inv|op_str|opr|opro|oprob|oprob_sw|oprobi|oprobi_p|oprobit|oprobitp|opts_exclusive|order|orthog|orthpoly|ou|out|outf|outfi|outfil|outfile|outs|outsh|outshe|outshee|outsheet|ovtest|pac|palette|parse_dissim|pause|pca|pca_display|pca_estat|pca_p|pca_rotate|pcamat|pchart|pchi|pcorr|pctile|pentium|pergram|personal|peto_st|pkcollapse|pkcross|pkequiv|pkexamine|pkshape|pksumm|plugin|pnorm|poisgof|poiss_lf|poiss_sw|poisso_p|poisson|poisson_estat|post|postclose|postfile|postutil|pperron|prais|prais_e|prais_e2|prais_p|predict|predictnl|preserve|print|prob|probi|probit|probit_estat|probit_p|proc_time|procoverlay|procrustes|procrustes_estat|procrustes_p|profiler|prop|proportion|prtest|prtesti|pwcorr|pwd|qs|qby|qbys|qchi|qladder|qnorm|qqplot|qreg|qreg_c|qreg_p|qreg_sw|qu|quadchk|quantile|que|quer|query|range|ranksum|ratio|rchart|rcof|recast|recode|reg|reg3|reg3_p|regdw|regr|regre|regre_p2|regres|regres_p|regress|regress_estat|regriv_p|remap|ren|rena|renam|rename|renpfix|repeat|reshape|restore|ret|retu|retur|return|rmdir|robvar|roccomp|rocf_lf|rocfit|rocgold|rocplot|roctab|rologit|rologit_p|rot|rota|rotat|rotate|rotatemat|rreg|rreg_p|ru|run|runtest|rvfplot|rvpplot|safesum|sample|sampsi|savedresults|sc|scatter|scm_mine|sco|scob_lf|scob_p|scobi_sw|scobit|scor|score|scoreplot|scoreplot_help|scree|screeplot|screeplot_help|sdtest|sdtesti|se|search|separate|seperate|serrbar|serset|set|set_defaults|sfrancia|sh|she|shel|shell|shewhart|signestimationsample|signrank|signtest|simul|sktest|sleep|slogit|slogit_d2|slogit_p|smooth|snapspan|so|sor|sort|spearman|spikeplot|spikeplt|spline_x|split|sqreg|sqreg_p|sret|sretu|sretur|sreturn|ssc|st|st_ct|st_hc|st_hcd|st_hcd_sh|st_is|st_issys|st_note|st_promo|st_set|st_show|st_smpl|st_subid|stack|stbase|stci|stcox|stcox_estat|stcox_fr|stcox_fr_ll|stcox_p|stcox_sw|stcoxkm|stcstat|stcurv|stcurve|stdes|stem|stepwise|stfill|stgen|stir|stjoin|stmc|stmh|stphplot|stphtest|stptime|strate|streg|streg_sw|streset|sts|stset|stsplit|stsum|sttocc|sttoct|stvary|su|suest|sum|summ|summa|summar|summari|summariz|summarize|sunflower|sureg|survcurv|survsum|svar|svar_p|svmat|svy_disp|svy_dreg|svy_est|svy_est_7|svy_estat|svy_get|svy_gnbreg_p|svy_head|svy_header|svy_heckman_p|svy_heckprob_p|svy_intreg_p|svy_ivreg_p|svy_logistic_p|svy_logit_p|svy_mlogit_p|svy_nbreg_p|svy_ologit_p|svy_oprobit_p|svy_poisson_p|svy_probit_p|svy_regress_p|svy_sub|svy_sub_7|svy_x|svy_x_7|svy_x_p|svydes|svygen|svygnbreg|svyheckman|svyheckprob|svyintreg|svyintrg|svyivreg|svylc|svylog_p|svylogit|svymarkout|svymean|svymlog|svymlogit|svynbreg|svyolog|svyologit|svyoprob|svyoprobit|svyopts|svypois|svypoisson|svyprobit|svyprobt|svyprop|svyratio|svyreg|svyreg_p|svyregress|svyset|svytab|svytest|svytotal|sw|swilk|symmetry|symmi|symplot|sysdescribe|sysdir|sysuse|szroeter|ta|tab|tab1|tab2|tab_or|tabd|tabdi|tabdis|tabdisp|tabi|table|tabodds|tabstat|tabu|tabul|tabula|tabulat|tabulate|te|tes|test|testnl|testparm|teststd|tetrachoric|time_it|timer|tis|tob|tobi|tobit|tobit_p|tobit_sw|token|tokeni|tokeniz|tokenize|total|translate|translator|transmap|treat_ll|treatr_p|treatreg|trim|trnb_cons|trnb_mean|trpoiss_d2|trunc_ll|truncr_p|truncreg|tsappend|tset|tsfill|tsline|tsline_ex|tsreport|tsrevar|tsrline|tsset|tssmooth|tsunab|ttest|ttesti|tut_chk|tut_wait|tutorial|tw|tware_st|two|twoway|twoway__fpfit_serset|twoway__function_gen|twoway__histogram_gen|twoway__ipoint_serset|twoway__ipoints_serset|twoway__kdensity_gen|twoway__lfit_serset|twoway__normgen_gen|twoway__pci_serset|twoway__qfit_serset|twoway__scatteri_serset|twoway__sunflower_gen|twoway_ksm_serset|ty|typ|type|typeof|unab|unabbrev|unabcmd|update|uselabel|var|var_mkcompanion|var_p|varbasic|varfcast|vargranger|varirf|varirf_add|varirf_cgraph|varirf_create|varirf_ctable|varirf_describe|varirf_dir|varirf_drop|varirf_erase|varirf_graph|varirf_ograph|varirf_rename|varirf_set|varirf_table|varlmar|varnorm|varsoc|varstable|varstable_w|varstable_w2|varwle|vec|vec_fevd|vec_mkphi|vec_p|vec_p_w|vecirf_create|veclmar|veclmar_w|vecnorm|vecnorm_w|vecrank|vecstable|verinst|vers|versi|versio|version|view|viewsource|vif|vwls|wdatetof|webdescribe|webseek|webuse|wh|whelp|whi|which|wilc_st|wilcoxon|win|wind|windo|window|winexec|wntestb|wntestq|xchart|xcorr|xi|xmlsav|xmlsave|xmluse|xpose|xsh|xshe|xshel|xshell|xt_iis|xt_tis|xtab_p|xtabond|xtbin_p|xtclog|xtcloglog|xtcloglog_d2|xtcloglog_pa_p|xtcloglog_re_p|xtcnt_p|xtcorr|xtdata|xtdes|xtfront_p|xtfrontier|xtgee|xtgee_elink|xtgee_estat|xtgee_makeivar|xtgee_p|xtgee_plink|xtgls|xtgls_p|xthaus|xthausman|xtht_p|xthtaylor|xtile|xtint_p|xtintreg|xtintreg_d2|xtintreg_p|xtivreg|xtline|xtline_ex|xtlogit|xtlogit_d2|xtlogit_fe_p|xtlogit_pa_p|xtlogit_re_p|xtmixed|xtmixed_estat|xtmixed_p|xtnb_fe|xtnb_lf|xtnbreg|xtnbreg_pa_p|xtnbreg_refe_p|xtpcse|xtpcse_p|xtpois|xtpoisson|xtpoisson_d2|xtpoisson_pa_p|xtpoisson_refe_p|xtpred|xtprobit|xtprobit_d2|xtprobit_re_p|xtps_fe|xtps_lf|xtps_ren|xtps_ren_8|xtrar_p|xtrc|xtrc_p|xtrchh|xtrefe_p|yx|yxview__barlike_draw|yxview_area_draw|yxview_bar_draw|yxview_dot_draw|yxview_dropline_draw|yxview_function_draw|yxview_iarrow_draw|yxview_ilabels_draw|yxview_normal_draw|yxview_pcarrow_draw|yxview_pcbarrow_draw|yxview_pccapsym_draw|yxview_pcscatter_draw|yxview_pcspike_draw|yxview_rarea_draw|yxview_rbar_draw|yxview_rbarm_draw|yxview_rcap_draw|yxview_rcapsym_draw|yxview_rconnected_draw|yxview_rline_draw|yxview_rscatter_draw|yxview_rspike_draw|yxview_spike_draw|yxview_sunflower_draw|zap_s|zinb|zinb_llf|zinb_plf|zip|zip_llf|zip_p|zip_plf|zt_ct_5|zt_hc_5|zt_hcd_5|zt_is_5|zt_iss_5|zt_sho_5|zt_smp_5|ztnb|ztnb_p|ztp|ztp_p|prtab|prchange|eststo|estout|esttab|estadd|estpost|ivregress|xtreg|xtreg_be|xtreg_fe|xtreg_ml|xtreg_pa_p|xtreg_re|xtregar|xtrere_p|xtset|xtsf_ll|xtsf_llti|xtsum|xttab|xttest0|xttobit|xttobit_p|xttrans)\\\\\\\\b\",\"name\":\"keyword.control.flow.stata\"}]},\"comments\":{\"patterns\":[{\"include\":\"#comments-double-slash\"},{\"include\":\"#comments-star\"},{\"include\":\"#comments-block\"},{\"include\":\"#comments-triple-slash\"}]},\"comments-block\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.stata\"}},\"end\":\"(\\\\\\\\*/\\\\\\\\s+\\\\\\\\*[^\\\\\\\\n]*)|(\\\\\\\\*/(?!\\\\\\\\*))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.stata\"}},\"name\":\"comment.block.stata\",\"patterns\":[{\"comment\":\"this ends and restarts a comment block. but need to catch this so that it doesn't start _another_ level of comment blocks\",\"match\":\"\\\\\\\\*/\\\\\\\\*\"},{\"include\":\"#docblockr-comment\"},{\"include\":\"#comments-block\"},{\"include\":\"#docstring\"}]}]},\"comments-double-slash\":{\"patterns\":[{\"begin\":\"(^//|(?<=\\\\\\\\s)//)(?!/)\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.stata\"}},\"end\":\"(?=\\\\\\\\n)\",\"name\":\"comment.line.double-slash.stata\",\"patterns\":[{\"include\":\"#docblockr-comment\"}]}]},\"comments-star\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*(\\\\\\\\*)\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.stata\"}},\"comment\":\"TODO! need to except out the occasion that a * comes after a /// on the previous line. May be easiest to join with the comment.line.triple-slash.stata below\",\"end\":\"(?=\\\\\\\\n)\",\"name\":\"comment.line.star.stata\",\"patterns\":[{\"include\":\"#docblockr-comment\"},{\"begin\":\"///\",\"end\":\"\\\\\\\\n\",\"name\":\"comment.line-continuation.stata\"},{\"include\":\"#comments\"}]}]},\"comments-triple-slash\":{\"patterns\":[{\"begin\":\"(^///|(?<=\\\\\\\\s)///)\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.stata\"}},\"end\":\"(?=\\\\\\\\n)\",\"name\":\"comment.line.triple-slash.stata\",\"patterns\":[{\"include\":\"#docblockr-comment\"}]}]},\"constants\":{\"patterns\":[{\"include\":\"#factorvariables\"},{\"match\":\"\\\\\\\\b(?i:(\\\\\\\\d+\\\\\\\\.\\\\\\\\d*(e[\\\\\\\\-\\\\\\\\+]?\\\\\\\\d+)?))(?=[^a-zA-Z_])\",\"name\":\"constant.numeric.float.stata\"},{\"match\":\"(?<=[^0-9a-zA-Z_])(?i:(\\\\\\\\.\\\\\\\\d+(e[\\\\\\\\-\\\\\\\\+]?\\\\\\\\d+)?))\",\"name\":\"constant.numeric.float.stata\"},{\"match\":\"\\\\\\\\b(?i:(\\\\\\\\d+e[\\\\\\\\-\\\\\\\\+]?\\\\\\\\d+))\",\"name\":\"constant.numeric.float.stata\"},{\"match\":\"\\\\\\\\b(\\\\\\\\d+)\\\\\\\\b\",\"name\":\"constant.numeric.integer.decimal.stata\"},{\"match\":\"(?<![\\\\\\\\w])(\\\\\\\\.(?![\\\\\\\\./]))(?![\\\\\\\\w])\",\"name\":\"constant.language.missing.stata\"},{\"match\":\"\\\\\\\\b_all\\\\\\\\b\",\"name\":\"constant.language.allvars.stata\"}]},\"docblockr-comment\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"invalid.illegal.name.stata\"}},\"match\":\"(?<!\\\\\\\\w)(@(error|ERROR|Error))\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.docblockr.stata\"}},\"match\":\"(?<!\\\\\\\\w)(@\\\\\\\\w+)\\\\\\\\b\"}]},\"docstring\":{\"patterns\":[{\"begin\":\"'''\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.stata\"}},\"end\":\"'''\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.stata\"}},\"name\":\"string.quoted.docstring.stata\"},{\"begin\":\"\\\\\"\\\\\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.stata\"}},\"end\":\"\\\\\"\\\\\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.stata\"}},\"name\":\"string.quoted.docstring.stata\"}]},\"factorvariables\":{\"patterns\":[{\"match\":\"\\\\\\\\b(i|c|o)\\\\\\\\.(?=[\\\\\\\\w&&[^0-9]]|\\\\\\\\([\\\\\\\\w&&[^0-9]])\",\"name\":\"constant.language.factorvars.stata\"},{\"captures\":{\"0\":{\"name\":\"constant.language.factorvars.stata\"},\"3\":{\"patterns\":[{\"include\":\"#constants\"}]}},\"match\":\"\\\\\\\\b(i?b)((\\\\\\\\d+)|n)\\\\\\\\.(?=[\\\\\\\\w&&[^0-9]]|\\\\\\\\([\\\\\\\\w&&[^0-9]])\"},{\"captures\":{\"0\":{\"name\":\"constant.language.factorvars.stata\"},\"2\":{\"name\":\"keyword.operator.parentheses.stata\"},\"3\":{\"patterns\":[{\"include\":\"#constants\"},{\"include\":\"#operators\"}]},\"4\":{\"name\":\"keyword.operator.parentheses.stata\"}},\"match\":\"\\\\\\\\b(i?b)(\\\\\\\\()(#\\\\\\\\d+|first|last|freq)(\\\\\\\\))\\\\\\\\.(?=[\\\\\\\\w&&[^0-9]]|\\\\\\\\([\\\\\\\\w&&[^0-9]])\"},{\"captures\":{\"0\":{\"name\":\"constant.language.factorvars.stata\"},\"2\":{\"patterns\":[{\"include\":\"#constants\"}]}},\"match\":\"\\\\\\\\b(i?o?)(\\\\\\\\d+)\\\\\\\\.(?=[\\\\\\\\w&&[^0-9]]|\\\\\\\\([\\\\\\\\w&&[^0-9]])\"},{\"captures\":{\"1\":{\"name\":\"constant.language.factorvars.stata\"},\"2\":{\"name\":\"keyword.operator.parentheses.stata\"},\"3\":{\"patterns\":[{\"include\":\"$self\"}]},\"4\":{\"name\":\"keyword.operator.parentheses.stata\"},\"5\":{\"name\":\"constant.language.factorvars.stata\"}},\"match\":\"\\\\\\\\b(i?o?)(\\\\\\\\()(.*?)(\\\\\\\\))(\\\\\\\\.)(?=[\\\\\\\\w&&[^0-9]]|\\\\\\\\([\\\\\\\\w&&[^0-9]])\"}]},\"functions\":{\"patterns\":[{\"begin\":\"\\\\\\\\b((abbrev|abs|acos|acosh|asin|asinh|atan|atan2|atanh|autocode|betaden|binomial|binomialp|binomialtail|binormalbofd|byteorder|c|cauchy|cauchyden|cauchytail|Cdhms|ceil|char|chi2|chi2den|chi2tail|Chms|cholesky|chop|clip|clock|Clock|cloglog|Cmdyhms|cofC|Cofc|cofd|Cofd|coleqnumb|collatorlocale|collatorversion|colnfreeparms|colnumb|colsof|comb|cond|corr|cos|cosh|daily|date|day|det|dgammapda|dgammapdada|dgammapdadx|dgammapdx|dgammapdxdx|dhms|diag|diag0cnt|digamma|dofb|dofc|dofC|dofh|dofm|dofq|dofw|dofy|dow|doy|dunnettprob|e|el|epsdouble|epsfloat|exp|exponential|exponentialden|exponentialtail|F|Fden|fileexists|fileread|filereaderror|filewrite|float|floor|fmtwidth|Ftail|gammaden|gammap|gammaptail|get|hadamard|halfyear|halfyearly|hh|hhC|hms|hofd|hours|hypergeometric|hypergeometricp|I|ibeta|ibetatail|igaussian|igaussianden|igaussiantail|indexnot|inlist|inrange|int|inv|invbinomial|invbinomialtail|invcauchy|invcauchytail|invchi2|invchi2tail|invcloglog|invdunnettprob|invexponential|invexponentialtail|invF|invFtail|invgammap|invgammaptail|invibeta|invibetatail|invigaussian|invigaussiantail|invlaplace|invlaplacetail|invlogistic|invlogistictail|invlogit|invnbinomial|invnbinomialtail|invnchi2|invnchi2tail|invnF|invnFtail|invnibeta|invnormal|invnt|invnttail|invpoisson|invpoissontail|invsym|invt|invttail|invtukeyprob|invweibull|invweibullph|invweibullphtail|invweibulltail|irecode|issymmetric|itrim|J|laplace|laplaceden|laplacetail|length|ln|lncauchyden|lnfactorial|lngamma|lnigammaden|lnigaussianden|lniwishartden|lnlaplaceden|lnmvnormalden|lnnormal|lnnormalden|lnwishartden|log|log10|logistic|logisticden|logistictail|logit|lower|ltrim|matmissing|matrix|matuniform|max|maxbyte|maxdouble|maxfloat|maxint|maxlong|mdy|mdyhms|mi|min|minbyte|mindouble|minfloat|minint|minlong|minutes|missing|mm|mmC|mod|mofd|month|monthly|mreldif|msofhours|msofminutes|msofseconds|nbetaden|nbinomial|nbinomialp|nbinomialtail|nchi2|nchi2den|nchi2tail|nF|nFden|nFtail|nibeta|normal|normalden|npnchi2|npnF|npnt|nt|ntden|nttail|nullmat|plural|poisson|poissonp|poissontail|proper|qofd|quarter|quarterly|r|rbeta|rbinomial|rcauchy|rchi2|real|recode|regexs|reldif|replay|return|reverse|rexponential|rgamma|rhypergeometric|rigaussian|rlaplace|rlogistic|rnbinomial|rnormal|round|roweqnumb|rownfreeparms|rownumb|rowsof|rpoisson|rt|rtrim|runiform|runiformint|rweibull|rweibullph|s|scalar|seconds|sign|sin|sinh|smallestdouble|soundex|sqrt|ss|ssC|string|stritrim|strlen|strlower|strltrim|strmatch|strofreal|strpos|strproper|strreverse|strrpos|strrtrim|strtoname|strtrim|strupper|subinstr|subinword|substr|sum|sweep|t|tan|tanh|tc|tC|td|tden|th|tin|tm|tobytes|tq|trace|trigamma|trim|trunc|ttail|tukeyprob|tw|twithin|uchar|udstrlen|udsubstr|uisdigit|uisletter|upper|ustrcompare|ustrcompareex|ustrfix|ustrfrom|ustrinvalidcnt|ustrleft|ustrlen|ustrlower|ustrltrim|ustrnormalize|ustrpos|ustrregexs|ustrreverse|ustrright|ustrrpos|ustrrtrim|ustrsortkey|ustrsortkeyex|ustrtitle|ustrto|ustrtohex|ustrtoname|ustrtrim|ustrunescape|ustrupper|ustrword|ustrwordcount|usubinstr|usubstr|vec|vecdiag|week|weekly|weibull|weibullden|weibullph|weibullphden|weibullphtail|weibulltail|wofd|word|wordbreaklocale|wordcount|year|yearly|yh|ym|yofd|yq|yw)|([\\\\\\\\w&&[^0-9]]\\\\\\\\w{0,31}))(\\\\\\\\()\",\"beginCaptures\":{\"2\":{\"name\":\"support.function.builtin.stata\"},\"3\":{\"name\":\"support.function.custom.stata\"},\"4\":{\"name\":\"punctuation.definition.parameters.begin.stata\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.stata\"}},\"patterns\":[{\"match\":\"[\\\\\\\\w&&[^0-9]]\\\\\\\\w{0,31}\",\"name\":\"variable.parameter.function.stata\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.parentheses.stata\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.parentheses.stata\"}},\"patterns\":[{\"include\":\"#ascii-regex-functions\"},{\"include\":\"#unicode-regex-functions\"},{\"include\":\"#functions\"},{\"include\":\"#subscripts\"},{\"include\":\"#constants\"},{\"include\":\"#comments\"},{\"include\":\"#operators\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"include\":\"#string-compound\"},{\"include\":\"#string-regular\"},{\"include\":\"#builtin_variables\"},{\"include\":\"#macro-commands\"},{\"include\":\"#braces-without-error\"},{\"match\":\"[\\\\\\\\w&&[^0-9]]\\\\\\\\w{0,31}\",\"name\":\"variable.parameter.function.stata\"}]},{\"include\":\"#ascii-regex-functions\"},{\"include\":\"#unicode-regex-functions\"},{\"include\":\"#functions\"},{\"include\":\"#subscripts\"},{\"include\":\"#constants\"},{\"include\":\"#comments\"},{\"include\":\"#operators\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"include\":\"#string-compound\"},{\"include\":\"#string-regular\"},{\"include\":\"#builtin_variables\"},{\"include\":\"#macro-commands\"},{\"include\":\"#braces-without-error\"}]}]},\"macro-commands\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(loc(al|a)?)\\\\\\\\s+([\\\\\\\\w'\\`\\\\\\\\$\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]+)\\\\\\\\s*(?=:|=)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.macro.stata\"},\"3\":{\"patterns\":[{\"include\":\"#macro-local-identifiers\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"}]}},\"end\":\"\\\\\\\\n\",\"patterns\":[{\"begin\":\"=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.arithmetic.stata\"}},\"end\":\"(?=\\\\\\\\n)\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\":\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.arithmetic.stata\"}},\"end\":\"(?=\\\\\\\\n)\",\"patterns\":[{\"include\":\"#macro-extended-functions\"}]}]},{\"begin\":\"\\\\\\\\b(gl(obal|oba|ob|o)?)\\\\\\\\s+(?=[\\\\\\\\w\\`\\\\\\\\$])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.macro.stata\"}},\"end\":\"(\\\\\\\\})|(?=\\\\\\\\\\\\\"|\\\\\\\\s|\\\\\\\\n|/|,|=)\",\"patterns\":[{\"include\":\"#reserved-names\"},{\"match\":\"[\\\\\\\\w&&[^0-9_]]\\\\\\\\w{0,31}\",\"name\":\"entity.name.type.class.stata\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"}]},{\"begin\":\"\\\\\\\\b(loc(al|a)?)\\\\\\\\s+(\\\\\\\\+\\\\\\\\+|\\\\\\\\-\\\\\\\\-)?(?=[\\\\\\\\w\\`\\\\\\\\$])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.macro.stata\"},\"3\":{\"name\":\"keyword.operator.arithmetic.stata\"}},\"end\":\"(?=\\\\\\\\\\\\\"|\\\\\\\\s|\\\\\\\\n|/|,|=)\",\"patterns\":[{\"include\":\"#macro-local-identifiers\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"}]},{\"begin\":\"\\\\\\\\b(tempvar|tempname|tempfile)\\\\\\\\s*(?=\\\\\\\\s)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.macro.stata\"}},\"end\":\"\\\\\\\\n\",\"patterns\":[{\"begin\":\"///\",\"end\":\"\\\\\\\\n\",\"name\":\"comment.block.stata\"},{\"include\":\"#macro-local-identifiers\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"}]},{\"begin\":\"\\\\\\\\b(ma(cro|cr|c)?)\\\\\\\\s+(drop|l(ist|is|i)?)\\\\\\\\s*(?=\\\\\\\\s)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.macro.stata\"}},\"end\":\"\\\\\\\\n\",\"patterns\":[{\"begin\":\"///\",\"end\":\"\\\\\\\\n\",\"name\":\"comment.block.stata\"},{\"match\":\"\\\\\\\\*\",\"name\":\"keyword.operator.arithmetic.stata\"},{\"include\":\"#constants\"},{\"include\":\"#macro-global\"},{\"include\":\"#macro-local\"},{\"include\":\"#comments\"},{\"match\":\"\\\\\\\\w{1,31}\",\"name\":\"entity.name.type.class.stata\"}]}]},\"macro-extended-functions\":{\"patterns\":[{\"match\":\"\\\\\\\\b(properties)\\\\\\\\b\",\"name\":\"keyword.macro.extendedfcn.stata\"},{\"match\":\"\\\\\\\\b(t(ype|yp|y)?|f(ormat|orma|orm|or|o)?|val(ue|u)?\\\\\\\\s+l(able|abl|ab|a)?|var(iable|iabl|iab|ia|i)?\\\\\\\\s+l(abel|abe|ab|a)?|data\\\\\\\\s+l(able|abl|ab|a)?|sort(edby|edb|ed|e)?|lab(el|e)?|maxlength|constraint|char)\\\\\\\\b\",\"name\":\"keyword.macro.extendedfcn.stata\"},{\"match\":\"\\\\\\\\b(permname)\\\\\\\\b\",\"name\":\"keyword.macro.extendedfcn.stata\"},{\"match\":\"\\\\\\\\b(adosubdir|dir|files?|dirs?|other|sysdir)\\\\\\\\b\",\"name\":\"keyword.macro.extendedfcn.stata\"},{\"match\":\"\\\\\\\\b(env(ironment|ironmen|ironme|ironm|iron|iro|ir|i)?)\\\\\\\\b\",\"name\":\"keyword.macro.extendedfcn.stata\"},{\"match\":\"\\\\\\\\b(all\\\\\\\\s+(globals|scalars|matrices)|((numeric|string)\\\\\\\\s+scalars))\\\\\\\\b\",\"name\":\"keyword.macro.extendedfcn.stata\"},{\"captures\":{\"1\":{\"name\":\"keyword.macro.extendedfcn.stata\"},\"2\":{\"name\":\"keyword.macro.extendedfcn.stata\"},\"3\":{\"name\":\"entity.name.type.class.stata\"}},\"match\":\"\\\\\\\\b(list)\\\\\\\\s+(uniq|dups|sort|clean|retok(enize|eniz|eni|en|e)?|sizeof)\\\\\\\\s+(\\\\\\\\w{1,32})\"},{\"captures\":{\"1\":{\"name\":\"keyword.macro.extendedfcn.stata\"},\"2\":{\"name\":\"entity.name.type.class.stata\"},\"3\":{\"name\":\"keyword.operator.list.stata\"},\"4\":{\"name\":\"entity.name.type.class.stata\"}},\"match\":\"\\\\\\\\b(list)\\\\\\\\s+(\\\\\\\\w{1,32})\\\\\\\\s+(\\\\\\\\||&|\\\\\\\\-|===|==|in)\\\\\\\\s+(\\\\\\\\w{1,32})\"},{\"captures\":{\"1\":{\"name\":\"keyword.macro.extendedfcn.stata\"},\"2\":{\"name\":\"punctuation.definition.string.begin.stata\"},\"3\":{\"name\":\"string.quoted.double.stata\"},\"4\":{\"name\":\"punctuation.definition.string.end.stata\"},\"5\":{\"name\":\"keyword.macro.extendedfcn.stata\"},\"6\":{\"name\":\"entity.name.type.class.stata\"}},\"match\":\"\\\\\\\\b(list\\\\\\\\s+posof)\\\\\\\\s+(\\\\\")(\\\\\\\\w+)(\\\\\")\\\\\\\\s+(in)\\\\\\\\s+(\\\\\\\\w{1,32})\"},{\"match\":\"\\\\\\\\b(rown(ames|ame|am|a)?|coln(ames|ame|am|a)?|rowf(ullnames|ullname|ullnam|ullna|ulln|ull|ul|u)?|colf(ullnames|ullname|ullnam|ullna|ulln|ull|ul|u)?|roweq?|coleq?|rownumb|colnumb|roweqnumb|coleqnumb|rownfreeparms|colnfreeparms|rownlfs|colnlfs|rowsof|colsof|rowvarlist|colvarlist|rowlfnames|collfnames)\\\\\\\\b\",\"name\":\"keyword.macro.extendedfcn.stata\"},{\"match\":\"\\\\\\\\b(tsnorm)\\\\\\\\b\",\"name\":\"keyword.macro.extendedfcn.stata\"},{\"captures\":{\"1\":{\"name\":\"keyword.macro.extendedfcn.stata\"},\"7\":{\"patterns\":[{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"}]}},\"match\":\"\\\\\\\\b((copy|(ud|u)?strlen)\\\\\\\\s+(loc(al|a)?|gl(obal|oba|ob|o)?))\\\\\\\\s+([^']+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.macro.extendedfcn.stata\"}},\"match\":\"\\\\\\\\b(word\\\\\\\\s+count)\"},{\"captures\":{\"1\":{\"name\":\"keyword.macro.extendedfcn.stata\"},\"2\":{\"patterns\":[{\"include\":\"#macro-local\"},{\"include\":\"#constants\"}]},\"3\":{\"name\":\"keyword.macro.extendedfcn.stata\"}},\"match\":\"(word|piece)\\\\\\\\s+([\\\\\\\\s\\`'\\\\\\\\w]+)\\\\\\\\s+(of)\"},{\"begin\":\"\\\\\\\\b(subinstr\\\\\\\\s+(loc(al|a)?|gl(obal|oba|ob|o)?))\\\\\\\\s+(\\\\\\\\w{1,32})\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.macro.extendedfcn.stata\"},\"5\":{\"name\":\"entity.name.type.class.stata\"}},\"end\":\"(?=//|\\\\\\\\n)\",\"patterns\":[{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"include\":\"#string-compound\"},{\"include\":\"#string-regular\"},{\"captures\":{\"1\":{\"name\":\"support.function.builtin.stata\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.stata\"},\"3\":{\"name\":\"keyword.macro.extendedfcn.stata\"},\"4\":{\"name\":\"entity.name.type.class.stata\"},\"5\":{\"name\":\"punctuation.definition.parameters.end.stata\"}},\"match\":\"(count|coun|cou|co|c)(\\\\\\\\()(local|loca|loc|global|globa|glob|glo|gl)\\\\\\\\s+(\\\\\\\\w{1,32})(\\\\\\\\))\"}]},{\"include\":\"#comments\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"include\":\"$self\"}]},\"macro-global\":{\"patterns\":[{\"begin\":\"(\\\\\\\\$)(\\\\\\\\{)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.stata\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.stata\"}},\"patterns\":[{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"include\":\"#comments-block\"},{\"begin\":\"[^\\\\\\\\w]\",\"end\":\"\\\\\\\\n|(?=})\",\"name\":\"comment.line.stata\"},{\"match\":\"\\\\\\\\w{1,32}\",\"name\":\"entity.name.type.class.stata\"}]},{\"begin\":\"\\\\\\\\$\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.stata\"}},\"end\":\"(?!\\\\\\\\w)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.stata\"}},\"patterns\":[{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"match\":\"[\\\\\\\\w&&[^0-9_]]\\\\\\\\w{0,31}|_\\\\\\\\w{1,31}\",\"name\":\"entity.name.type.class.stata\"}]}]},\"macro-global-escaped\":{\"patterns\":[{\"begin\":\"(\\\\\\\\\\\\\\\\\\\\\\\\$)(\\\\\\\\\\\\\\\\\\\\\\\\{)?\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.stata\"}},\"end\":\"(\\\\\\\\\\\\\\\\\\\\\\\\})|(?=\\\\\\\\\\\\\"|\\\\\\\\s|\\\\\\\\n|/|,)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.stata\"}},\"patterns\":[{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"match\":\"[\\\\\\\\w&&[^0-9_]]\\\\\\\\w{0,31}|_\\\\\\\\w{1,31}\",\"name\":\"entity.name.type.class.stata\"}]}]},\"macro-local\":{\"patterns\":[{\"begin\":\"(\\`)(=)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.stata\"},\"2\":{\"name\":\"keyword.operator.comparison.stata\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.stata\"}},\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(\\`)(:)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.stata\"},\"2\":{\"name\":\"keyword.operator.comparison.stata\"}},\"contentName\":\"meta.macro-extended-function.stata\",\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.stata\"}},\"patterns\":[{\"include\":\"#macro-local\"},{\"include\":\"#macro-extended-functions\"},{\"include\":\"#constants\"},{\"include\":\"#string-compound\"},{\"include\":\"#string-regular\"}]},{\"begin\":\"(\\`)(macval)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.stata\"},\"2\":{\"name\":\"support.function.builtin.stata\"},\"3\":{\"name\":\"punctuation.definition.parameters.begin.stata\"}},\"contentName\":\"meta.macro-extended-function.stata\",\"end\":\"(\\\\\\\\))(')\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.begin.stata\"},\"2\":{\"name\":\"punctuation.definition.string.end.stata\"}},\"patterns\":[{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"match\":\"\\\\\\\\w{1,31}\",\"name\":\"entity.name.type.class.stata\"}]},{\"begin\":\"\\`(?!\\\\\")\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.stata\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.stata\"}},\"patterns\":[{\"match\":\"\\\\\\\\+\\\\\\\\+|\\\\\\\\-\\\\\\\\-\",\"name\":\"keyword.operator.arithmetic.stata\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"include\":\"#comments-block\"},{\"begin\":\"[^\\\\\\\\w]\",\"end\":\"\\\\\\\\n|(?=')\",\"name\":\"comment.line.stata\"},{\"match\":\"\\\\\\\\w{1,31}\",\"name\":\"entity.name.type.class.stata\"}]}]},\"macro-local-escaped\":{\"patterns\":[{\"begin\":\"\\\\\\\\\\\\\\\\\\`(?!\\\\\")\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.stata\"}},\"comment\":\"appropriately color macros that have embedded escaped \\`,', and $ characters for lazy evaluation\",\"end\":\"\\\\\\\\\\\\\\\\'|'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.stata\"}},\"patterns\":[{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"match\":\"\\\\\\\\w{1,31}\",\"name\":\"entity.name.type.class.stata\"}]}]},\"macro-local-identifiers\":{\"patterns\":[{\"match\":\"[^\\\\\\\\w'\\`\\\\\\\\$\\\\\\\\(\\\\\\\\)\\\\\\\\s]\",\"name\":\"invalid.illegal.name.stata\"},{\"match\":\"\\\\\\\\w{32,}\",\"name\":\"invalid.illegal.name.stata\"},{\"match\":\"\\\\\\\\w{1,31}\",\"name\":\"entity.name.type.class.stata\"}]},\"operators\":{\"patterns\":[{\"comment\":\"++ and -- must come first to support ligatures\",\"match\":\"\\\\\\\\+\\\\\\\\+|\\\\\\\\-\\\\\\\\-|\\\\\\\\+|\\\\\\\\-|\\\\\\\\*|\\\\\\\\^\",\"name\":\"keyword.operator.arithmetic.stata\"},{\"comment\":\"match division operator but not path separator\",\"match\":\"(?<![\\\\\\\\w.&&[^0-9]])/(?![\\\\\\\\w.&&[^0-9]]|$)\",\"name\":\"keyword.operator.arithmetic.stata\"},{\"comment\":\"match division operator but not path separator\",\"match\":\"(?<![\\\\\\\\w.&&[^0-9]])\\\\\\\\\\\\\\\\(?![\\\\\\\\w.&&[^0-9]]|$)\",\"name\":\"keyword.operator.matrix.addrow.stata\"},{\"match\":\"\\\\\\\\|\\\\\\\\|\",\"name\":\"keyword.operator.graphcombine.stata\"},{\"match\":\"\\\\\\\\&|\\\\\\\\|\",\"name\":\"keyword.operator.logical.stata\"},{\"match\":\"(?:<=|>=|:=|==|!=|~=|<|>|=|!!|!)\",\"name\":\"keyword.operator.comparison.stata\"},{\"match\":\"\\\\\\\\(|\\\\\\\\)\",\"name\":\"keyword.operator.parentheses.stata\"},{\"match\":\"(##|#)\",\"name\":\"keyword.operator.factor-variables.stata\"},{\"match\":\"%\",\"name\":\"keyword.operator.format.stata\"},{\"match\":\":\",\"name\":\"punctuation.separator.key-value\"},{\"match\":\"\\\\\\\\[\",\"name\":\"punctuation.definition.parameters.begin.stata\"},{\"match\":\"\\\\\\\\]\",\"name\":\"punctuation.definition.parameters.end.stata\"},{\"match\":\",\",\"name\":\"punctuation.definition.variable.begin.stata\"},{\"match\":\";\",\"name\":\"keyword.operator.delimiter.stata\"}]},\"reserved-names\":{\"patterns\":[{\"match\":\"\\\\\\\\b(_all|_b|byte|_coef|_cons|double|float|if|in|int|long|_n|_N|_pi|_pred|_rc|_skip|str[0-9]+|strL|using|with)\\\\\\\\b\",\"name\":\"invalid.illegal.name.stata\"},{\"match\":\"[^\\\\\\\\w'\\`\\\\\\\\$\\\\\\\\(\\\\\\\\)\\\\\\\\s]\",\"name\":\"invalid.illegal.name.stata\"},{\"match\":\"[0-9][\\\\\\\\w]{31,}\",\"name\":\"invalid.illegal.name.stata\"},{\"match\":\"\\\\\\\\w{33,}\",\"name\":\"invalid.illegal.name.stata\"}]},\"string-compound\":{\"patterns\":[{\"begin\":\"\\`\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.stata\"}},\"end\":\"\\\\\"'|(?=\\\\n)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.stata\"}},\"name\":\"string.quoted.double.compound.stata\",\"patterns\":[{\"comment\":\"This must come before #string-regular and #string-compound to accurately color \\`\\\\\"\\\\\"\\\\\"' in strings\",\"match\":\"\\\\\"\",\"name\":\"string.quoted.double.compound.stata\"},{\"comment\":\"see https://github.com/kylebarron/language-stata/issues/53\",\"match\":\"\\`\\`\\`(?=[^']*\\\\\")\",\"name\":\"meta.markdown.code.block.stata\"},{\"include\":\"#string-regular\"},{\"include\":\"#string-compound\"},{\"include\":\"#macro-local-escaped\"},{\"include\":\"#macro-global-escaped\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"}]}]},\"string-regular\":{\"patterns\":[{\"begin\":\"(?<!\\`)\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.stata\"}},\"end\":\"(\\\\\")(')?|(?=\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.stata\"},\"2\":{\"name\":\"invalid.illegal.punctuation.stata\"}},\"name\":\"string.quoted.double.stata\",\"patterns\":[{\"comment\":\"see https://github.com/kylebarron/language-stata/issues/53\",\"match\":\"\\`\\`\\`(?=[^']*\\\\\")\",\"name\":\"meta.markdown.code.block.stata\"},{\"include\":\"#macro-local-escaped\"},{\"include\":\"#macro-global-escaped\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"}]}]},\"subscripts\":{\"patterns\":[{\"begin\":\"(?<=[\\\\\\\\w'])(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.begin.stata\"}},\"comment\":\"highlight expressions, like [_n], when using subscripts on a variable\",\"end\":\"(\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.stata\"}},\"name\":\"meta.subscripts.stata\",\"patterns\":[{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"include\":\"#builtin_variables\"},{\"include\":\"#operators\"},{\"include\":\"#constants\"},{\"include\":\"#functions\"}]}]},\"unicode-regex-character-class\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[wWsSdD]|\\\\\\\\.\",\"name\":\"constant.character.character-class.stata\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.backslash.stata\"},{\"begin\":\"(\\\\\\\\[)(\\\\\\\\^)?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.character-class.stata\"},\"2\":{\"name\":\"keyword.operator.negation.stata\"}},\"end\":\"(\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.character-class.stata\"}},\"name\":\"constant.other.character-class.set.stata\",\"patterns\":[{\"include\":\"#unicode-regex-character-class\"},{\"captures\":{\"2\":{\"name\":\"constant.character.escape.backslash.stata\"},\"4\":{\"name\":\"constant.character.escape.backslash.stata\"}},\"match\":\"((\\\\\\\\\\\\\\\\.)|.)\\\\\\\\-((\\\\\\\\\\\\\\\\.)|[^\\\\\\\\]])\",\"name\":\"constant.other.character-class.range.stata\"}]}]},\"unicode-regex-functions\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"support.function.builtin.stata\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.stata\"},\"3\":{\"patterns\":[{\"include\":\"#string-compound\"},{\"include\":\"#string-regular\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"include\":\"#functions\"},{\"match\":\"[\\\\\\\\w&&[^0-9]]\\\\\\\\w{0,31}\",\"name\":\"variable.parameter.function.stata\"},{\"include\":\"#comments-triple-slash\"}]},\"4\":{\"name\":\"punctuation.definition.variable.begin.stata\"},\"5\":{\"name\":\"punctuation.definition.string.begin.stata\"},\"6\":{\"patterns\":[{\"include\":\"#unicode-regex-internals\"}]},\"7\":{\"name\":\"punctuation.definition.string.end.stata\"},\"8\":{\"name\":\"invalid.illegal.punctuation.stata\"},\"9\":{\"patterns\":[{\"include\":\"#constants\"},{\"match\":\",\",\"name\":\"punctuation.definition.variable.begin.stata\"}]},\"10\":{\"name\":\"punctuation.definition.parameters.end.stata\"}},\"comment\":\"color regexm with regular quotes i.e. \\\\\" \",\"match\":\"\\\\\\\\b(ustrregexm)(\\\\\\\\()([^,]+)(,)\\\\\\\\s*(\\\\\")([^\\\\\"]+)(\\\\\"(')?)([,0-9\\\\\\\\s]*)?\\\\\\\\s*(\\\\\\\\))\"},{\"captures\":{\"1\":{\"name\":\"support.function.builtin.stata\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.stata\"},\"3\":{\"patterns\":[{\"include\":\"#string-compound\"},{\"include\":\"#string-regular\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"include\":\"#functions\"},{\"match\":\"[\\\\\\\\w&&[^0-9]]\\\\\\\\w{0,31}\",\"name\":\"variable.parameter.function.stata\"},{\"include\":\"#comments-triple-slash\"}]},\"4\":{\"name\":\"punctuation.definition.variable.begin.stata\"},\"5\":{\"name\":\"punctuation.definition.string.begin.stata\"},\"6\":{\"patterns\":[{\"include\":\"#unicode-regex-internals\"}]},\"7\":{\"name\":\"punctuation.definition.string.end.stata\"},\"8\":{\"patterns\":[{\"include\":\"#constants\"},{\"match\":\",\",\"name\":\"punctuation.definition.variable.begin.stata\"}]},\"9\":{\"name\":\"punctuation.definition.parameters.end.stata\"}},\"comment\":\"color regexm with compound quotes\",\"match\":\"\\\\\\\\b(ustrregexm)(\\\\\\\\()([^,]+)(,)\\\\\\\\s*(\\`\\\\\")([^\\\\\"]+)(\\\\\"')([,0-9\\\\\\\\s]*)?\\\\\\\\s*(\\\\\\\\))\"},{\"captures\":{\"1\":{\"name\":\"support.function.builtin.stata\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.stata\"},\"3\":{\"patterns\":[{\"include\":\"#string-compound\"},{\"include\":\"#string-regular\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"include\":\"#functions\"},{\"match\":\"[\\\\\\\\w&&[^0-9]]\\\\\\\\w{0,31}\",\"name\":\"variable.parameter.function.stata\"},{\"include\":\"#comments\"}]},\"4\":{\"name\":\"punctuation.definition.variable.begin.stata\"},\"5\":{\"name\":\"punctuation.definition.string.begin.stata\"},\"6\":{\"patterns\":[{\"include\":\"#unicode-regex-internals\"}]},\"7\":{\"name\":\"punctuation.definition.string.end.stata\"},\"8\":{\"name\":\"invalid.illegal.punctuation.stata\"},\"9\":{\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.definition.variable.begin.stata\"},{\"include\":\"#string-compound\"},{\"include\":\"#string-regular\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"include\":\"#functions\"},{\"match\":\"[\\\\\\\\w&&[^0-9]]\\\\\\\\w{0,31}\",\"name\":\"variable.parameter.function.stata\"},{\"include\":\"#comments-triple-slash\"},{\"include\":\"#constants\"}]},\"10\":{\"name\":\"punctuation.definition.parameters.end.stata\"}},\"comment\":\"color regexr with regular quotes i.e. \\\\\" \",\"match\":\"\\\\\\\\b(ustrregexrf|ustrregexra)(\\\\\\\\()([^,]+)(,)\\\\\\\\s*(\\\\\")([^\\\\\"]+)(\\\\\"(')?)\\\\\\\\s*([^\\\\\\\\)]*)(\\\\\\\\))\"},{\"captures\":{\"1\":{\"name\":\"support.function.builtin.stata\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.stata\"},\"3\":{\"patterns\":[{\"include\":\"#string-compound\"},{\"include\":\"#string-regular\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"include\":\"#functions\"},{\"match\":\"[\\\\\\\\w&&[^0-9]]\\\\\\\\w{0,31}\",\"name\":\"variable.parameter.function.stata\"},{\"include\":\"#comments\"}]},\"4\":{\"name\":\"punctuation.definition.variable.begin.stata\"},\"5\":{\"name\":\"punctuation.definition.string.begin.stata\"},\"6\":{\"patterns\":[{\"include\":\"#unicode-regex-internals\"}]},\"7\":{\"name\":\"punctuation.definition.string.end.stata\"},\"8\":{\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.definition.variable.begin.stata\"},{\"include\":\"#string-compound\"},{\"include\":\"#string-regular\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"include\":\"#functions\"},{\"match\":\"[\\\\\\\\w&&[^0-9]]\\\\\\\\w{0,31}\",\"name\":\"variable.parameter.function.stata\"},{\"include\":\"#comments-triple-slash\"},{\"include\":\"#constants\"}]},\"9\":{\"name\":\"punctuation.definition.parameters.end.stata\"}},\"comment\":\"color regexr with compound quotes i.e. \\`\\\\\"text\\\\\"' \",\"match\":\"\\\\\\\\b(ustrregexrf|ustrregexra)(\\\\\\\\()([^,]+)(,)\\\\\\\\s*(\\`\\\\\")([^\\\\\"]+)(\\\\\"')\\\\\\\\s*([^\\\\\\\\)]*)(\\\\\\\\))\"}]},\"unicode-regex-internals\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[bBAZzG]|\\\\\\\\^\",\"name\":\"keyword.control.anchor.stata\"},{\"comment\":\"matched when not a global\",\"match\":\"\\\\\\\\$(?![[\\\\\\\\w&&[^0-9_]][\\\\\\\\w]{0,31}|_[\\\\\\\\w]{1,31}\\\\\\\\{])\",\"name\":\"keyword.control.anchor.stata\"},{\"match\":\"\\\\\\\\\\\\\\\\[1-9][0-9]?\",\"name\":\"keyword.other.back-reference.stata\"},{\"match\":\"[?+*][?+]?|\\\\\\\\{(\\\\\\\\d+,\\\\\\\\d+|\\\\\\\\d+,|,\\\\\\\\d+|\\\\\\\\d+)\\\\\\\\}\\\\\\\\??\",\"name\":\"keyword.operator.quantifier.stata\"},{\"match\":\"\\\\\\\\|\",\"name\":\"keyword.operator.or.stata\"},{\"begin\":\"\\\\\\\\((?!\\\\\\\\?\\\\\\\\#|\\\\\\\\?=|\\\\\\\\?!|\\\\\\\\?<=|\\\\\\\\?<!)\",\"end\":\"\\\\\\\\)\",\"name\":\"keyword.operator.group.stata\",\"patterns\":[{\"include\":\"#unicode-regex-internals\"}]},{\"begin\":\"\\\\\\\\(\\\\\\\\?\\\\\\\\#\",\"end\":\"\\\\\\\\)\",\"name\":\"comment.block.stata\"},{\"comment\":\"We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.\",\"match\":\"(?<=^|\\\\\\\\s)#\\\\\\\\s[[a-zA-Z0-9,. \\\\\\\\t?!-:][^\\\\\\\\x{00}-\\\\\\\\x{7F}]]*$\",\"name\":\"comment.line.number-sign.stata\"},{\"match\":\"\\\\\\\\(\\\\\\\\?[iLmsux]+\\\\\\\\)\",\"name\":\"keyword.other.option-toggle.stata\"},{\"begin\":\"(\\\\\\\\()((\\\\\\\\?=)|(\\\\\\\\?!)|(\\\\\\\\?<=)|(\\\\\\\\?<!))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.group.stata\"},\"2\":{\"name\":\"punctuation.definition.group.assertion.stata\"},\"3\":{\"name\":\"keyword.assertion.look-ahead.stata\"},\"4\":{\"name\":\"keyword.assertion.negative-look-ahead.stata\"},\"5\":{\"name\":\"keyword.assertion.look-behind.stata\"},\"6\":{\"name\":\"keyword.assertion.negative-look-behind.stata\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.group.stata\"}},\"name\":\"meta.group.assertion.stata\",\"patterns\":[{\"include\":\"#unicode-regex-internals\"}]},{\"begin\":\"(\\\\\\\\()(\\\\\\\\?\\\\\\\\(([1-9][0-9]?|[a-zA-Z_][a-zA-Z_0-9]*)\\\\\\\\))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.group.stata\"},\"2\":{\"name\":\"punctuation.definition.group.assertion.conditional.stata\"},\"3\":{\"name\":\"entity.name.section.back-reference.stata\"}},\"comment\":\"we can make this more sophisticated to match the | character that separates yes-pattern from no-pattern, but it's not really necessary.\",\"end\":\"(\\\\\\\\))\",\"name\":\"meta.group.assertion.conditional.stata\",\"patterns\":[{\"include\":\"#unicode-regex-internals\"}]},{\"include\":\"#unicode-regex-character-class\"},{\"include\":\"#macro-local\"},{\"include\":\"#macro-global\"},{\"comment\":\"NOTE: Error if I have .+ No idea why but it works fine it seems with just .\",\"match\":\".\",\"name\":\"string.quoted.stata\"}]}},\"scopeName\":\"source.stata\",\"embeddedLangs\":[\"sql\"]}`)),n=[...t,e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/RFJ54-KY.js",
    "content": "import{d as _,r as x,C as r,g as a,ad as f,R as w,ae as C,x as b,j as s,G as l,E as d,F as p,O as y,H as k,e as B,f as $}from\"./CU_MfyYc.js\";const M=[\"textContent\"],N=_({__name:\"Tooltip\",props:{title:{}},setup(g){const n=x(!1),c=()=>{n.value=!0},i=()=>{n.value=!1};return(o,h)=>(a(),r(\"span\",{class:\"relative underline\",onMouseenter:c,onMouseleave:i},[f(s(\"span\",{class:\"absolute -top-10 z-90 bg-gray-900 rounded px-2 py-1 text-sm text-white\",textContent:l(o.title)},null,8,M),[[C,b(n)]]),w(o.$slots,\"default\")],32))}}),S={class:\"flex flex-col select-none\"},T={class:\"-my-2 overflow-x-auto\"},V={class:\"py-2 align-middle inline-block min-w-full\"},z={class:\"border dark:border-gray-700 overflow-hidden rounded-lg bg-white dark:bg-gray-800\"},D={class:\"min-w-full divide-y divide-gray-200 dark:divide-gray-700 hide-scroll overflow-x-scroll\"},E={key:0,class:\"bg-gray-100 dark:bg-gray-700/50 select-none\"},F={key:1,class:\"divide-y dark:divide-gray-700\"},j=[\"onClick\"],G=[\"textContent\"],H=[\"textContent\"],L=[\"textContent\"],O={key:1},R=[\"textContent\"],q=[\"textContent\"],A=[\"textContent\"],J={key:0,class:\"text-center text-sm font-medium text-gray-500 dark:text-gray-400 bg-white dark:bg-gray-800 py-10 select-none\"},P=_({__name:\"MultipleValuesTable\",props:{header:{type:Boolean},data:{},headerItems:{},clickable:{type:Boolean,default:!1}},emits:[\"row-click\"],setup(g,{emit:n}){const c=g,i=n;return(o,h)=>{const m=N;return a(),r(\"div\",S,[s(\"div\",T,[s(\"div\",V,[s(\"div\",z,[s(\"table\",D,[o.header?(a(),r(\"thead\",E,[s(\"tr\",null,[(a(!0),r(p,null,y(o.headerItems,e=>(a(),r(\"th\",{key:e,scope:\"col\",class:\"px-6 py-4 text-left text-[10px] font-bold text-gray-900 dark:text-gray-100 uppercase tracking-wider\"},l(e),1))),128))])])):d(\"\",!0),o.data.length?(a(),r(\"tbody\",F,[(a(!0),r(p,null,y(o.data,(e,u)=>(a(),r(\"tr\",{key:u,class:k([\"text-gray-900 dark:text-gray-200 transition-colors\",[c.clickable?\"cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-700/50\":\"\"]]),onClick:v=>c.clickable?i(\"row-click\",u):null},[(a(!0),r(p,null,y(e,(v,t)=>(a(),r(\"td\",{key:t,class:k([\"px-6 py-4 whitespace-nowrap text-sm font-medium\",e[t].style])},[e[t].tooltip?(a(),B(m,{key:0,title:e[t].tooltip,popper:{arrow:!0}},{default:$(()=>[e[t].tag===\"code\"?(a(),r(\"code\",{key:0,class:\"rounded border dark:border-gray-600 bg-gray-50 dark:bg-gray-700 select-text text-sm dark:text-gray-300 w-full px-4 sm:px-6 py-2\",textContent:l(e[t].value===0?\"\":e[t].value)},null,8,G)):e[t].tag===\"pre\"?(a(),r(\"pre\",{key:1,class:\"whitespace-pre-line rounded border dark:border-gray-600 bg-gray-50 dark:bg-gray-700 select-text text-sm dark:text-gray-300 w-full px-4 sm:px-6 py-2\",textContent:l(e[t].value===0?\"\":e[t].value)},null,8,H)):(a(),r(\"span\",{key:2,textContent:l(e[t].value===0?\"\":e[t].value)},null,8,L))]),_:2},1032,[\"title\"])):(a(),r(\"span\",O,[e[t].tag===\"code\"?(a(),r(\"code\",{key:0,class:\"rounded border dark:border-gray-600 bg-gray-50 dark:bg-gray-700 select-text text-sm dark:text-gray-300 w-full px-4 sm:px-6 py-2\",textContent:l(e[t].value===0?\"\":e[t].value)},null,8,R)):e[t].tag===\"pre\"?(a(),r(\"pre\",{key:1,class:\"whitespace-pre-line rounded border dark:border-gray-600 bg-gray-50 dark:bg-gray-700 select-text text-sm dark:text-gray-300 w-full px-4 sm:px-6 py-2\",textContent:l(e[t].value===0?\"\":e[t].value)},null,8,q)):(a(),r(\"span\",{key:2,textContent:l(e[t].value===0?\"\":e[t].value)},null,8,A))]))],2))),128))],10,j))),128))])):d(\"\",!0)]),o.data.length?d(\"\",!0):(a(),r(\"div\",J,\" No data available \"))])])])])}}});export{P as _};\n"
  },
  {
    "path": "jesse/static/_nuxt/SKMF96pI.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"GDShader\",\"fileTypes\":[\"gdshader\"],\"name\":\"gdshader\",\"patterns\":[{\"include\":\"#any\"}],\"repository\":{\"any\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#enclosed\"},{\"include\":\"#classifier\"},{\"include\":\"#definition\"},{\"include\":\"#keyword\"},{\"include\":\"#element\"},{\"include\":\"#separator\"},{\"include\":\"#operator\"}]},\"arraySize\":{\"begin\":\"\\\\\\\\[\",\"captures\":{\"0\":{\"name\":\"punctuation.bracket.gdshader\"}},\"end\":\"\\\\\\\\]\",\"name\":\"meta.array-size.gdshader\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#keyword\"},{\"include\":\"#element\"},{\"include\":\"#separator\"}]},\"classifier\":{\"begin\":\"(?=\\\\\\\\b(?:shader_type|render_mode)\\\\\\\\b)\",\"end\":\"(?<=;)\",\"name\":\"meta.classifier.gdshader\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#keyword\"},{\"include\":\"#identifierClassification\"},{\"include\":\"#separator\"}]},\"classifierKeyword\":{\"match\":\"\\\\\\\\b(?:shader_type|render_mode)\\\\\\\\b\",\"name\":\"keyword.language.classifier.gdshader\"},\"comment\":{\"patterns\":[{\"include\":\"#commentLine\"},{\"include\":\"#commentBlock\"}]},\"commentBlock\":{\"begin\":\"/\\\\\\\\*\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.gdshader\"},\"commentLine\":{\"begin\":\"//\",\"end\":\"$\",\"name\":\"comment.line.double-slash.gdshader\"},\"constantFloat\":{\"match\":\"\\\\\\\\b(?:E|PI|TAU)\\\\\\\\b\",\"name\":\"constant.language.float.gdshader\"},\"constructor\":{\"match\":\"\\\\\\\\b[a-zA-Z_]\\\\\\\\w*(?=\\\\\\\\s*\\\\\\\\[\\\\\\\\s*\\\\\\\\w*\\\\\\\\s*\\\\\\\\]\\\\\\\\s*[(])|\\\\\\\\b[A-Z]\\\\\\\\w*(?=\\\\\\\\s*[(])\",\"name\":\"entity.name.type.constructor.gdshader\"},\"controlKeyword\":{\"match\":\"\\\\\\\\b(?:if|else|do|while|for|continue|break|switch|case|default|return|discard)\\\\\\\\b\",\"name\":\"keyword.control.gdshader\"},\"definition\":{\"patterns\":[{\"include\":\"#structDefinition\"}]},\"element\":{\"patterns\":[{\"include\":\"#literalFloat\"},{\"include\":\"#literalInt\"},{\"include\":\"#literalBool\"},{\"include\":\"#identifierType\"},{\"include\":\"#constructor\"},{\"include\":\"#processorFunction\"},{\"include\":\"#identifierFunction\"},{\"include\":\"#swizzling\"},{\"include\":\"#identifierField\"},{\"include\":\"#constantFloat\"},{\"include\":\"#languageVariable\"},{\"include\":\"#identifierVariable\"}]},\"enclosed\":{\"begin\":\"\\\\\\\\(\",\"captures\":{\"0\":{\"name\":\"punctuation.parenthesis.gdshader\"}},\"end\":\"\\\\\\\\)\",\"name\":\"meta.parenthesis.gdshader\",\"patterns\":[{\"include\":\"#any\"}]},\"fieldDefinition\":{\"begin\":\"\\\\\\\\b[a-zA-Z_]\\\\\\\\w*\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"patterns\":[{\"include\":\"#typeKeyword\"},{\"match\":\".+\",\"name\":\"entity.name.type.gdshader\"}]}},\"end\":\"(?<=;)\",\"name\":\"meta.definition.field.gdshader\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#keyword\"},{\"include\":\"#arraySize\"},{\"include\":\"#fieldName\"},{\"include\":\"#any\"}]},\"fieldName\":{\"match\":\"\\\\\\\\b[a-zA-Z_]\\\\\\\\w*\\\\\\\\b\",\"name\":\"entity.name.variable.field.gdshader\"},\"hintKeyword\":{\"match\":\"\\\\\\\\b(?:source_color|hint_(?:color|range|(?:black_)?albedo|normal|(?:default_)?(?:white|black)|aniso|anisotropy|roughness_(?:[rgba]|normal|gray))|filter_(?:nearest|linear)(?:_mipmap(?:_anisotropic)?)?|repeat_(?:en|dis)able)\\\\\\\\b\",\"name\":\"support.type.annotation.gdshader\"},\"identifierClassification\":{\"match\":\"\\\\\\\\b[a-z_]+\\\\\\\\b\",\"name\":\"entity.other.inherited-class.gdshader\"},\"identifierField\":{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.gdshader\"},\"2\":{\"name\":\"entity.name.variable.field.gdshader\"}},\"match\":\"([.])\\\\\\\\s*([a-zA-Z_]\\\\\\\\w*)\\\\\\\\b(?!\\\\\\\\s*\\\\\\\\()\"},\"identifierFunction\":{\"match\":\"\\\\\\\\b[a-zA-Z_]\\\\\\\\w*(?=(?:\\\\\\\\s|/\\\\\\\\*(?:\\\\\\\\*(?!/)|[^*])*\\\\\\\\*/)*[(])\",\"name\":\"entity.name.function.gdshader\"},\"identifierType\":{\"match\":\"\\\\\\\\b[a-zA-Z_]\\\\\\\\w*(?=(?:\\\\\\\\s*\\\\\\\\[\\\\\\\\s*\\\\\\\\w*\\\\\\\\s*\\\\\\\\])?\\\\\\\\s+[a-zA-Z_]\\\\\\\\w*\\\\\\\\b)\",\"name\":\"entity.name.type.gdshader\"},\"identifierVariable\":{\"match\":\"\\\\\\\\b[a-zA-Z_]\\\\\\\\w*\\\\\\\\b\",\"name\":\"variable.name.gdshader\"},\"keyword\":{\"patterns\":[{\"include\":\"#classifierKeyword\"},{\"include\":\"#structKeyword\"},{\"include\":\"#controlKeyword\"},{\"include\":\"#modifierKeyword\"},{\"include\":\"#precisionKeyword\"},{\"include\":\"#typeKeyword\"},{\"include\":\"#hintKeyword\"}]},\"languageVariable\":{\"match\":\"\\\\\\\\b(?:[A-Z][A-Z_0-9]*)\\\\\\\\b\",\"name\":\"variable.language.gdshader\"},\"literalBool\":{\"match\":\"\\\\\\\\b(?:false|true)\\\\\\\\b\",\"name\":\"constant.language.boolean.gdshader\"},\"literalFloat\":{\"match\":\"\\\\\\\\b(?:\\\\\\\\d+[eE][-+]?\\\\\\\\d+|(?:\\\\\\\\d*[.]\\\\\\\\d+|\\\\\\\\d+[.])(?:[eE][-+]?\\\\\\\\d+)?)[fF]?\",\"name\":\"constant.numeric.float.gdshader\"},\"literalInt\":{\"match\":\"\\\\\\\\b(?:0[xX][0-9A-Fa-f]+|\\\\\\\\d+[uU]?)\\\\\\\\b\",\"name\":\"constant.numeric.integer.gdshader\"},\"modifierKeyword\":{\"match\":\"\\\\\\\\b(?:const|global|instance|uniform|varying|in|out|inout|flat|smooth)\\\\\\\\b\",\"name\":\"storage.modifier.gdshader\"},\"operator\":{\"match\":\"\\\\\\\\<\\\\\\\\<\\\\\\\\=?|\\\\\\\\>\\\\\\\\>\\\\\\\\=?|[-+*/&|<>=!]\\\\\\\\=|\\\\\\\\&\\\\\\\\&|[|][|]|[-+~!*/%<>&^|=]\",\"name\":\"keyword.operator.gdshader\"},\"precisionKeyword\":{\"match\":\"\\\\\\\\b(?:low|medium|high)p\\\\\\\\b\",\"name\":\"storage.type.built-in.primitive.precision.gdshader\"},\"processorFunction\":{\"match\":\"\\\\\\\\b(?:vertex|fragment|light|start|process|sky|fog)(?=(?:\\\\\\\\s|/\\\\\\\\*(?:\\\\\\\\*(?!/)|[^*])*\\\\\\\\*/)*[(])\",\"name\":\"support.function.gdshader\"},\"separator\":{\"patterns\":[{\"match\":\"[.]\",\"name\":\"punctuation.accessor.gdshader\"},{\"include\":\"#separatorComma\"},{\"match\":\"[;]\",\"name\":\"punctuation.terminator.statement.gdshader\"},{\"match\":\"[:]\",\"name\":\"keyword.operator.type.annotation.gdshader\"}]},\"separatorComma\":{\"match\":\"[,]\",\"name\":\"punctuation.separator.comma.gdshader\"},\"structDefinition\":{\"begin\":\"(?=\\\\\\\\b(?:struct)\\\\\\\\b)\",\"end\":\"(?<=;)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#keyword\"},{\"include\":\"#structName\"},{\"include\":\"#structDefinitionBlock\"},{\"include\":\"#separator\"}]},\"structDefinitionBlock\":{\"begin\":\"\\\\\\\\{\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.block.struct.gdshader\"}},\"end\":\"\\\\\\\\}\",\"name\":\"meta.definition.block.struct.gdshader\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#precisionKeyword\"},{\"include\":\"#fieldDefinition\"},{\"include\":\"#keyword\"},{\"include\":\"#any\"}]},\"structKeyword\":{\"match\":\"\\\\\\\\b(?:struct)\\\\\\\\b\",\"name\":\"keyword.other.struct.gdshader\"},\"structName\":{\"match\":\"\\\\\\\\b[a-zA-Z_]\\\\\\\\w*\\\\\\\\b\",\"name\":\"entity.name.type.struct.gdshader\"},\"swizzling\":{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.gdshader\"},\"2\":{\"name\":\"variable.other.property.gdshader\"}},\"match\":\"([.])\\\\\\\\s*([xyzw]{2,4}|[rgba]{2,4}|[stpq]{2,4})\\\\\\\\b\"},\"typeKeyword\":{\"match\":\"\\\\\\\\b(?:void|bool|[biu]?vec[234]|u?int|float|mat[234]|[iu]?sampler(?:3D|2D(?:Array)?)|samplerCube)\\\\\\\\b\",\"name\":\"support.type.gdshader\"}},\"scopeName\":\"source.gdshader\"}')),a=[e];export{a as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/SPD3sf1n.js",
    "content": "import e from\"./BMR_PYu6.js\";const s=Object.freeze(JSON.parse('{\"displayName\":\"SPARQL\",\"fileTypes\":[\"rq\",\"sparql\",\"sq\"],\"name\":\"sparql\",\"patterns\":[{\"include\":\"source.turtle\"},{\"include\":\"#query-keyword-operators\"},{\"include\":\"#functions\"},{\"include\":\"#variables\"},{\"include\":\"#expression-operators\"}],\"repository\":{\"expression-operators\":{\"match\":\"(?:\\\\\\\\|\\\\\\\\||&&|=|!=|<|>|<=|>=|\\\\\\\\*|/|\\\\\\\\+|-|\\\\\\\\||\\\\\\\\^|\\\\\\\\?|\\\\\\\\!)\",\"name\":\"support.class.sparql\"},\"functions\":{\"match\":\"\\\\\\\\b(?i:concat|regex|asc|desc|bound|isiri|isuri|isblank|isliteral|isnumeric|str|lang|datatype|sameterm|langmatches|avg|count|group_concat|separator|max|min|sample|sum|iri|uri|bnode|strdt|uuid|struuid|strlang|strlen|substr|ucase|lcase|strstarts|strends|contains|strbefore|strafter|encode_for_uri|replace|abs|round|ceil|floor|rand|now|year|month|day|hours|minutes|seconds|timezone|tz|md5|sha1|sha256|sha384|sha512|coalesce|if)\\\\\\\\b\",\"name\":\"support.function.sparql\"},\"query-keyword-operators\":{\"match\":\"\\\\\\\\b(?i:define|select|distinct|reduced|from|named|construct|ask|describe|where|graph|having|bind|as|filter|optional|union|order|by|group|limit|offset|values|insert data|delete data|with|delete|insert|clear|silent|default|all|create|drop|copy|move|add|to|using|service|not exists|exists|not in|in|minus|load)\\\\\\\\b\",\"name\":\"keyword.control.sparql\"},\"variables\":{\"match\":\"(?<!\\\\\\\\w)[?$]\\\\\\\\w+\",\"name\":\"constant.variable.sparql.turtle\"}},\"scopeName\":\"source.sparql\",\"embeddedLangs\":[\"turtle\"]}')),a=[...e,s];export{a as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/StrategiesSidebar.BLGw1dq7.css",
    "content": ".fade-enter-active[data-v-2e630b44],.fade-leave-active[data-v-2e630b44]{transition:all .2s ease}.fade-enter-from[data-v-2e630b44],.fade-leave-to[data-v-2e630b44]{opacity:0;transform:translateY(8px)}\n"
  },
  {
    "path": "jesse/static/_nuxt/T-Tgc4AT.js",
    "content": "const n=Object.freeze(JSON.parse(`{\"displayName\":\"Hjson\",\"fileTypes\":[\"hjson\"],\"foldingStartMarker\":\"(?:^\\\\\\\\s*[{\\\\\\\\[](?!.*[}\\\\\\\\]],?\\\\\\\\s*$)|[{\\\\\\\\[]\\\\\\\\s*$)\",\"foldingStopMarker\":\"(?:^\\\\\\\\s*[}\\\\\\\\]])\",\"name\":\"hjson\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#value\"},{\"match\":\"[^\\\\\\\\s]\",\"name\":\"invalid.illegal.excess-characters.hjson\"}],\"repository\":{\"array\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.array.begin.hjson\"}},\"end\":\"(\\\\\\\\])(?:\\\\\\\\s*([^,\\\\\\\\s]+))?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.array.end.hjson\"},\"2\":{\"name\":\"invalid.illegal.value.hjson\"}},\"name\":\"meta.structure.array.hjson\",\"patterns\":[{\"include\":\"#arrayContent\"}]},\"arrayArray\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.array.begin.hjson\"}},\"end\":\"(\\\\\\\\])(?:\\\\\\\\s*([^,\\\\\\\\s\\\\\\\\]]+))?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.array.end.hjson\"},\"2\":{\"name\":\"invalid.illegal.value.hjson\"}},\"name\":\"meta.structure.array.hjson\",\"patterns\":[{\"include\":\"#arrayContent\"}]},\"arrayConstant\":{\"captures\":{\"1\":{\"name\":\"constant.language.hjson\"},\"2\":{\"name\":\"punctuation.separator.array.after-const.hjson\"}},\"match\":\"\\\\\\\\b(true|false|null)(?:[\\\\\\\\t ]*(?=,)|[\\\\\\\\t ]*(?:(,)[\\\\\\\\t ]*)?(?=$|#|/\\\\\\\\*|//|\\\\\\\\]))\"},\"arrayContent\":{\"name\":\"meta.structure.array.hjson\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#arrayValue\"},{\"begin\":\"(?<=\\\\\\\\[)|,\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.dictionary.pair.hjson\"}},\"end\":\"(?=[^\\\\\\\\s,/#])|(?=/[^/*])\",\"patterns\":[{\"include\":\"#comments\"},{\"match\":\",\",\"name\":\"invalid.illegal.extra-comma.hjson\"}]},{\"match\":\",\",\"name\":\"punctuation.separator.array.hjson\"},{\"match\":\"[^\\\\\\\\s\\\\\\\\]]\",\"name\":\"invalid.illegal.expected-array-separator.hjson\"}]},\"arrayJstring\":{\"patterns\":[{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.hjson\"}},\"end\":\"(\\\\\")(?:\\\\\\\\s*((?:[^,\\\\\\\\s\\\\\\\\]#/]|/[^/*])+))?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.hjson\"},\"2\":{\"name\":\"invalid.illegal.value.hjson\"}},\"name\":\"string.quoted.double.hjson\",\"patterns\":[{\"include\":\"#jstringDoubleContent\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.hjson\"}},\"end\":\"(')(?:\\\\\\\\s*((?:[^,\\\\\\\\s\\\\\\\\]#/]|/[^/*])+))?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.hjson\"},\"2\":{\"name\":\"invalid.illegal.value.hjson\"}},\"name\":\"string.quoted.single.hjson\",\"patterns\":[{\"include\":\"#jstringSingleContent\"}]}]},\"arrayMstring\":{\"begin\":\"'''\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.hjson\"}},\"end\":\"(''')(?:\\\\\\\\s*((?:[^,\\\\\\\\s\\\\\\\\]#/]|/[^/*])+))?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.hjson\"},\"2\":{\"name\":\"invalid.illegal.value.hjson\"}},\"name\":\"string.quoted.multiline.hjson\"},\"arrayNumber\":{\"captures\":{\"1\":{\"name\":\"constant.numeric.hjson\"},\"2\":{\"name\":\"punctuation.separator.array.after-num.hjson\"}},\"match\":\"(-?(?:0|(?:[1-9]\\\\\\\\d*))(?:\\\\\\\\.\\\\\\\\d+)?(?:[eE][+-]?\\\\\\\\d+)?)(?:[\\\\\\\\t ]*(?=,)|[\\\\\\\\t ]*(?:(,)[\\\\\\\\t ]*)?(?=$|#|/\\\\\\\\*|//|\\\\\\\\]))\"},\"arrayObject\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.dictionary.begin.hjson\"}},\"end\":\"(\\\\\\\\}|(?<=\\\\\\\\}))(?:\\\\\\\\s*([^,\\\\\\\\s\\\\\\\\]]+))?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.dictionary.end.hjson\"},\"2\":{\"name\":\"invalid.illegal.value.hjson\"}},\"name\":\"meta.structure.dictionary.hjson\",\"patterns\":[{\"include\":\"#objectContent\"}]},\"arrayString\":{\"patterns\":[{\"include\":\"#arrayMstring\"},{\"include\":\"#arrayJstring\"},{\"include\":\"#ustring\"}]},\"arrayValue\":{\"patterns\":[{\"include\":\"#arrayNumber\"},{\"include\":\"#arrayConstant\"},{\"include\":\"#arrayString\"},{\"include\":\"#arrayObject\"},{\"include\":\"#arrayArray\"}]},\"comments\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.hjson\"}},\"match\":\"^\\\\\\\\s*(#).*(?:\\\\\\\\n)?\",\"name\":\"comment.line.hash\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.hjson\"}},\"match\":\"^\\\\\\\\s*(//).*(?:\\\\\\\\n)?\",\"name\":\"comment.line.double-slash\"},{\"begin\":\"^\\\\\\\\s*/\\\\\\\\*\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.hjson\"}},\"end\":\"\\\\\\\\*/(?:\\\\\\\\s*\\\\\\\\n)?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.hjson\"}},\"name\":\"comment.block.double-slash\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.hjson\"}},\"match\":\"(#)[^\\\\\\\\n]*\",\"name\":\"comment.line.hash\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.hjson\"}},\"match\":\"(//)[^\\\\\\\\n]*\",\"name\":\"comment.line.double-slash\"},{\"begin\":\"/\\\\\\\\*\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.hjson\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.hjson\"}},\"name\":\"comment.block.double-slash\"}]},\"commentsNewline\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.hjson\"}},\"match\":\"(#).*\\\\\\\\n\",\"name\":\"comment.line.hash\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.hjson\"}},\"match\":\"(//).*\\\\\\\\n\",\"name\":\"comment.line.double-slash\"},{\"begin\":\"/\\\\\\\\*\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.hjson\"}},\"end\":\"\\\\\\\\*/(\\\\\\\\s*\\\\\\\\n)?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.hjson\"}},\"name\":\"comment.block.double-slash\"}]},\"constant\":{\"captures\":{\"1\":{\"name\":\"constant.language.hjson\"}},\"match\":\"\\\\\\\\b(true|false|null)[\\\\\\\\t ]*(?=$|#|/\\\\\\\\*|//|\\\\\\\\])\"},\"jstring\":{\"patterns\":[{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.hjson\"}},\"end\":\"(\\\\\")(?:\\\\\\\\s*((?:[^\\\\\\\\s#/]|/[^/*]).*)$)?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.hjson\"},\"2\":{\"name\":\"invalid.illegal.value.hjson\"}},\"name\":\"string.quoted.double.hjson\",\"patterns\":[{\"include\":\"#jstringDoubleContent\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.hjson\"}},\"end\":\"(')(?:\\\\\\\\s*((?:[^\\\\\\\\s#/]|/[^/*]).*)$)?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.hjson\"},\"2\":{\"name\":\"invalid.illegal.value.hjson\"}},\"name\":\"string.quoted.single.hjson\",\"patterns\":[{\"include\":\"#jstringSingleContent\"}]}]},\"jstringDoubleContent\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(?:[\\\\\"'\\\\\\\\\\\\\\\\\\\\\\\\/bfnrt]|u[0-9a-fA-F]{4})\",\"name\":\"constant.character.escape.hjson\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"invalid.illegal.unrecognized-string-escape.hjson\"},{\"match\":\"[^\\\\\"]*[^\\\\\\\\n\\\\\\\\r\\\\\"\\\\\\\\\\\\\\\\]$\",\"name\":\"invalid.illegal.string.hjson\"}]},\"jstringSingleContent\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(?:[\\\\\"'\\\\\\\\\\\\\\\\\\\\\\\\/bfnrt]|u[0-9a-fA-F]{4})\",\"name\":\"constant.character.escape.hjson\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"invalid.illegal.unrecognized-string-escape.hjson\"},{\"match\":\"[^']*[^\\\\\\\\n\\\\\\\\r'\\\\\\\\\\\\\\\\]$\",\"name\":\"invalid.illegal.string.hjson\"}]},\"key\":{\"begin\":\"(?:((?:[^:,\\\\\\\\{\\\\\\\\}\\\\\\\\[\\\\\\\\]\\\\\\\\s\\\\\"'][^:,\\\\\\\\{\\\\\\\\}\\\\\\\\[\\\\\\\\]\\\\\\\\s]*)|(?:'(?:[^\\\\\\\\\\\\\\\\']|(\\\\\\\\\\\\\\\\(?:[\\\\\"'\\\\\\\\\\\\\\\\\\\\\\\\/bfnrt]|u[0-9a-fA-F]{4}))|(\\\\\\\\\\\\\\\\.))*')|(?:\\\\\"(?:[^\\\\\\\\\\\\\\\\\\\\\"]|(\\\\\\\\\\\\\\\\(?:[\\\\\"'\\\\\\\\\\\\\\\\\\\\\\\\/bfnrt]|u[0-9a-fA-F]{4}))|(\\\\\\\\\\\\\\\\.))*\\\\\"))\\\\\\\\s*(?!\\\\\\\\n)([,\\\\\\\\{\\\\\\\\}\\\\\\\\[\\\\\\\\]]*))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.structure.key-value.begin.hjson\"},\"1\":{\"name\":\"support.type.property-name.hjson\"},\"2\":{\"name\":\"constant.character.escape.hjson\"},\"3\":{\"name\":\"invalid.illegal.unrecognized-string-escape.hjson\"},\"4\":{\"name\":\"constant.character.escape.hjson\"},\"5\":{\"name\":\"invalid.illegal.unrecognized-string-escape.hjson\"},\"6\":{\"name\":\"invalid.illegal.separator.hjson\"},\"7\":{\"name\":\"invalid.illegal.property-name.hjson\"}},\"end\":\"(?<!^|:)\\\\\\\\s*\\\\\\\\n|(?=})|(,)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.dictionary.pair.hjson\"}},\"patterns\":[{\"include\":\"#commentsNewline\"},{\"include\":\"#keyValue\"},{\"match\":\"[^\\\\\\\\s]\",\"name\":\"invalid.illegal.object-property.hjson\"}]},\"keyValue\":{\"begin\":\"(?:\\\\\\\\s*(:)\\\\\\\\s*([,\\\\\\\\}\\\\\\\\]]*))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.dictionary.key-value.hjson\"},\"2\":{\"name\":\"invalid.illegal.object-property.hjson\"}},\"end\":\"(?<!^)\\\\\\\\s*(?=\\\\\\\\n)|(?=[},])\",\"name\":\"meta.structure.key-value.hjson\",\"patterns\":[{\"include\":\"#comments\"},{\"match\":\"^\\\\\\\\s+\"},{\"include\":\"#objectValue\"},{\"captures\":{\"1\":{\"name\":\"invalid.illegal.object-property.closing-bracket.hjson\"}},\"match\":\"^\\\\\\\\s*(\\\\\\\\})\"},{\"match\":\"[^\\\\\\\\s]\",\"name\":\"invalid.illegal.object-property.hjson\"}]},\"mstring\":{\"begin\":\"'''\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.hjson\"}},\"end\":\"(''')(?:\\\\\\\\s*((?:[^\\\\\\\\s#/]|/[^/*]).*)$)?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.hjson\"},\"2\":{\"name\":\"invalid.illegal.value.hjson\"}},\"name\":\"string.quoted.multiline.hjson\"},\"number\":{\"captures\":{\"1\":{\"name\":\"constant.numeric.hjson\"}},\"match\":\"(-?(?:0|(?:[1-9]\\\\\\\\d*))(?:\\\\\\\\.\\\\\\\\d+)?(?:[eE][+-]?\\\\\\\\d+)?)[\\\\\\\\t ]*(?=$|#|/\\\\\\\\*|//|\\\\\\\\])\"},\"object\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.dictionary.begin.hjson\"}},\"end\":\"(\\\\\\\\}|(?<=\\\\\\\\}))(?:\\\\\\\\s*([^,\\\\\\\\s]+))?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.dictionary.end.hjson\"},\"2\":{\"name\":\"invalid.illegal.value.hjson\"}},\"name\":\"meta.structure.dictionary.hjson\",\"patterns\":[{\"include\":\"#objectContent\"}]},\"objectArray\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.array.begin.hjson\"}},\"end\":\"(\\\\\\\\])(?:\\\\\\\\s*([^,\\\\\\\\s\\\\\\\\}]+))?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.array.end.hjson\"},\"2\":{\"name\":\"invalid.illegal.value.hjson\"}},\"name\":\"meta.structure.array.hjson\",\"patterns\":[{\"include\":\"#arrayContent\"}]},\"objectConstant\":{\"captures\":{\"1\":{\"name\":\"constant.language.hjson\"},\"2\":{\"name\":\"punctuation.separator.dictionary.pair.after-const.hjson\"}},\"match\":\"\\\\\\\\b(true|false|null)(?:[\\\\\\\\t ]*(?=,)|[\\\\\\\\t ]*(?:(,)[\\\\\\\\t ]*)?(?=$|#|/\\\\\\\\*|//|\\\\\\\\}))\"},\"objectContent\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#key\"},{\"match\":\":[.|\\\\\\\\s]\",\"name\":\"invalid.illegal.object-property.hjson\"},{\"begin\":\"(?<=\\\\\\\\{|,)|,\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.dictionary.pair.hjson\"}},\"end\":\"(?=[^\\\\\\\\s,/#])|(?=/[^/*])\",\"patterns\":[{\"include\":\"#comments\"},{\"match\":\",\",\"name\":\"invalid.illegal.extra-comma.hjson\"}]},{\"match\":\"[^\\\\\\\\s]\",\"name\":\"invalid.illegal.object-property.hjson\"}]},\"objectJstring\":{\"patterns\":[{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.hjson\"}},\"end\":\"(\\\\\")(?:\\\\\\\\s*((?:[^,\\\\\\\\s\\\\\\\\}#/]|/[^/*])+))?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.hjson\"},\"2\":{\"name\":\"invalid.illegal.value.hjson\"}},\"name\":\"string.quoted.double.hjson\",\"patterns\":[{\"include\":\"#jstringDoubleContent\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.hjson\"}},\"end\":\"(')(?:\\\\\\\\s*((?:[^,\\\\\\\\s\\\\\\\\}#/]|/[^/*])+))?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.hjson\"},\"2\":{\"name\":\"invalid.illegal.value.hjson\"}},\"name\":\"string.quoted.single.hjson\",\"patterns\":[{\"include\":\"#jstringSingleContent\"}]}]},\"objectMstring\":{\"begin\":\"'''\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.hjson\"}},\"end\":\"(''')(?:\\\\\\\\s*((?:[^,\\\\\\\\s\\\\\\\\}#/]|/[^/*])+))?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.hjson\"},\"2\":{\"name\":\"invalid.illegal.value.hjson\"}},\"name\":\"string.quoted.multiline.hjson\"},\"objectNumber\":{\"captures\":{\"1\":{\"name\":\"constant.numeric.hjson\"},\"2\":{\"name\":\"punctuation.separator.dictionary.pair.after-num.hjson\"}},\"match\":\"(-?(?:0|(?:[1-9]\\\\\\\\d*))(?:\\\\\\\\.\\\\\\\\d+)?(?:[eE][+-]?\\\\\\\\d+)?)(?:[\\\\\\\\t ]*(?=,)|[\\\\\\\\t ]*(?:(,)[\\\\\\\\t ]*)?(?=$|#|/\\\\\\\\*|//|\\\\\\\\}))\"},\"objectObject\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.dictionary.begin.hjson\"}},\"end\":\"(\\\\\\\\}|(?<=\\\\\\\\})\\\\\\\\}?)(?:\\\\\\\\s*([^,\\\\\\\\s}]+))?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.dictionary.end.hjson\"},\"2\":{\"name\":\"invalid.illegal.value.hjson\"}},\"name\":\"meta.structure.dictionary.hjson\",\"patterns\":[{\"include\":\"#objectContent\"}]},\"objectString\":{\"patterns\":[{\"include\":\"#objectMstring\"},{\"include\":\"#objectJstring\"},{\"include\":\"#ustring\"}]},\"objectValue\":{\"patterns\":[{\"include\":\"#objectNumber\"},{\"include\":\"#objectConstant\"},{\"include\":\"#objectString\"},{\"include\":\"#objectObject\"},{\"include\":\"#objectArray\"}]},\"string\":{\"patterns\":[{\"include\":\"#mstring\"},{\"include\":\"#jstring\"},{\"include\":\"#ustring\"}]},\"ustring\":{\"match\":\"([^:,\\\\\\\\{\\\\\\\\[\\\\\\\\}\\\\\\\\]\\\\\\\\s].*)$\",\"name\":\"string.quoted.none.hjson\"},\"value\":{\"patterns\":[{\"include\":\"#number\"},{\"include\":\"#constant\"},{\"include\":\"#string\"},{\"include\":\"#object\"},{\"include\":\"#array\"}]}},\"scopeName\":\"source.hjson\"}`)),e=[n];export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/TU54ms6u.js",
    "content": "const n=Object.freeze(JSON.parse('{\"displayName\":\"JSON with Comments\",\"name\":\"jsonc\",\"patterns\":[{\"include\":\"#value\"}],\"repository\":{\"array\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.array.begin.json.comments\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.array.end.json.comments\"}},\"name\":\"meta.structure.array.json.comments\",\"patterns\":[{\"include\":\"#value\"},{\"match\":\",\",\"name\":\"punctuation.separator.array.json.comments\"},{\"match\":\"[^\\\\\\\\s\\\\\\\\]]\",\"name\":\"invalid.illegal.expected-array-separator.json.comments\"}]},\"comments\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\\\\\\\\*(?!/)\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.json.comments\"}},\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.documentation.json.comments\"},{\"begin\":\"/\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.json.comments\"}},\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.json.comments\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.json.comments\"}},\"match\":\"(//).*$\\\\\\\\n?\",\"name\":\"comment.line.double-slash.js\"}]},\"constant\":{\"match\":\"\\\\\\\\b(?:true|false|null)\\\\\\\\b\",\"name\":\"constant.language.json.comments\"},\"number\":{\"match\":\"-?(?:0|[1-9]\\\\\\\\d*)(?:(?:\\\\\\\\.\\\\\\\\d+)?(?:[eE][+-]?\\\\\\\\d+)?)?\",\"name\":\"constant.numeric.json.comments\"},\"object\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.dictionary.begin.json.comments\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.dictionary.end.json.comments\"}},\"name\":\"meta.structure.dictionary.json.comments\",\"patterns\":[{\"comment\":\"the JSON object key\",\"include\":\"#objectkey\"},{\"include\":\"#comments\"},{\"begin\":\":\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.dictionary.key-value.json.comments\"}},\"end\":\"(,)|(?=\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.dictionary.pair.json.comments\"}},\"name\":\"meta.structure.dictionary.value.json.comments\",\"patterns\":[{\"comment\":\"the JSON object value\",\"include\":\"#value\"},{\"match\":\"[^\\\\\\\\s,]\",\"name\":\"invalid.illegal.expected-dictionary-separator.json.comments\"}]},{\"match\":\"[^\\\\\\\\s\\\\\\\\}]\",\"name\":\"invalid.illegal.expected-dictionary-separator.json.comments\"}]},\"objectkey\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.support.type.property-name.begin.json.comments\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.support.type.property-name.end.json.comments\"}},\"name\":\"string.json.comments support.type.property-name.json.comments\",\"patterns\":[{\"include\":\"#stringcontent\"}]},\"string\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.json.comments\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.json.comments\"}},\"name\":\"string.quoted.double.json.comments\",\"patterns\":[{\"include\":\"#stringcontent\"}]},\"stringcontent\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(?:[\\\\\"\\\\\\\\\\\\\\\\/bfnrt]|u[0-9a-fA-F]{4})\",\"name\":\"constant.character.escape.json.comments\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"invalid.illegal.unrecognized-string-escape.json.comments\"}]},\"value\":{\"patterns\":[{\"include\":\"#constant\"},{\"include\":\"#number\"},{\"include\":\"#string\"},{\"include\":\"#array\"},{\"include\":\"#object\"},{\"include\":\"#comments\"}]}},\"scopeName\":\"source.json.comments\"}')),e=[n];export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/Tz6hzZYG.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Mojo\",\"name\":\"mojo\",\"patterns\":[{\"include\":\"#statement\"},{\"include\":\"#expression\"}],\"repository\":{\"annotated-parameter\":{\"begin\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"variable.parameter.function.language.python\"},\"2\":{\"name\":\"punctuation.separator.annotation.python\"}},\"end\":\"(,)|(?=\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.parameters.python\"}},\"patterns\":[{\"include\":\"#expression\"},{\"match\":\"=(?!=)\",\"name\":\"keyword.operator.assignment.python\"}]},\"assignment-operator\":{\"match\":\"<<=|>>=|//=|\\\\\\\\*\\\\\\\\*=|\\\\\\\\+=|-=|/=|@=|\\\\\\\\*=|%=|~=|\\\\\\\\^=|&=|\\\\\\\\|=|=(?!=)\",\"name\":\"keyword.operator.assignment.python\"},\"backticks\":{\"begin\":\"\\\\\\\\\\`\",\"end\":\"(?:\\\\\\\\\\`|(?<!\\\\\\\\\\\\\\\\)(\\\\\\\\n))\",\"name\":\"string.quoted.single.python\"},\"builtin-callables\":{\"patterns\":[{\"include\":\"#illegal-names\"},{\"include\":\"#illegal-object-name\"},{\"include\":\"#builtin-exceptions\"},{\"include\":\"#builtin-functions\"},{\"include\":\"#builtin-types\"}]},\"builtin-exceptions\":{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b((Arithmetic|Assertion|Attribute|Buffer|BlockingIO|BrokenPipe|ChildProcess|(Connection(Aborted|Refused|Reset)?)|EOF|Environment|FileExists|FileNotFound|FloatingPoint|IO|Import|Indentation|Index|Interrupted|IsADirectory|NotADirectory|Permission|ProcessLookup|Timeout|Key|Lookup|Memory|Name|NotImplemented|OS|Overflow|Reference|Runtime|Recursion|Syntax|System|Tab|Type|UnboundLocal|Unicode(Encode|Decode|Translate)?|Value|Windows|ZeroDivision|ModuleNotFound)Error|((Pending)?Deprecation|Runtime|Syntax|User|Future|Import|Unicode|Bytes|Resource)?Warning|SystemExit|Stop(Async)?Iteration|KeyboardInterrupt|GeneratorExit|(Base)?Exception)\\\\\\\\b\",\"name\":\"support.type.exception.python\"},\"builtin-functions\":{\"patterns\":[{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(__import__|abs|aiter|all|any|anext|ascii|bin|breakpoint|callable|chr|compile|copyright|credits|delattr|dir|divmod|enumerate|eval|exec|exit|filter|format|getattr|globals|hasattr|hash|help|hex|id|input|isinstance|issubclass|iter|len|license|locals|map|max|memoryview|min|next|oct|open|ord|pow|print|quit|range|reload|repr|reversed|round|setattr|sorted|sum|vars|zip)\\\\\\\\b\",\"name\":\"support.function.builtin.python\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(file|reduce|intern|raw_input|unicode|cmp|basestring|execfile|long|xrange)\\\\\\\\b\",\"name\":\"variable.legacy.builtin.python\"}]},\"builtin-possible-callables\":{\"patterns\":[{\"include\":\"#builtin-callables\"},{\"include\":\"#magic-names\"}]},\"builtin-types\":{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(__mlir_attr|__mlir_op|__mlir_type|bool|bytearray|bytes|classmethod|complex|dict|float|frozenset|int|list|object|property|set|slice|staticmethod|str|tuple|type|super)\\\\\\\\b\",\"name\":\"support.type.python\"},\"call-wrapper-inheritance\":{\"begin\":\"\\\\\\\\b(?=([[:alpha:]_]\\\\\\\\w*)\\\\\\\\s*(\\\\\\\\())\",\"comment\":\"same as a function call, but in inheritance context\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.python\"}},\"name\":\"meta.function-call.python\",\"patterns\":[{\"include\":\"#inheritance-name\"},{\"include\":\"#function-arguments\"}]},\"class-declaration\":{\"patterns\":[{\"begin\":\"\\\\\\\\s*(class|struct|trait)\\\\\\\\s+(?=[[:alpha:]_]\\\\\\\\w*\\\\\\\\s*(:|\\\\\\\\())\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.python\"}},\"end\":\"(:)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.class.begin.python\"}},\"name\":\"meta.class.python\",\"patterns\":[{\"include\":\"#class-name\"},{\"include\":\"#class-inheritance\"}]}]},\"class-inheritance\":{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.inheritance.begin.python\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.inheritance.end.python\"}},\"name\":\"meta.class.inheritance.python\",\"patterns\":[{\"match\":\"(\\\\\\\\*\\\\\\\\*|\\\\\\\\*)\",\"name\":\"keyword.operator.unpacking.arguments.python\"},{\"match\":\",\",\"name\":\"punctuation.separator.inheritance.python\"},{\"match\":\"=(?!=)\",\"name\":\"keyword.operator.assignment.python\"},{\"match\":\"\\\\\\\\bmetaclass\\\\\\\\b\",\"name\":\"support.type.metaclass.python\"},{\"include\":\"#illegal-names\"},{\"include\":\"#class-kwarg\"},{\"include\":\"#call-wrapper-inheritance\"},{\"include\":\"#expression-base\"},{\"include\":\"#member-access-class\"},{\"include\":\"#inheritance-identifier\"}]},\"class-kwarg\":{\"captures\":{\"1\":{\"name\":\"entity.other.inherited-class.python variable.parameter.class.python\"},\"2\":{\"name\":\"keyword.operator.assignment.python\"}},\"match\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\s*(=)(?!=)\"},\"class-name\":{\"patterns\":[{\"include\":\"#illegal-object-name\"},{\"include\":\"#builtin-possible-callables\"},{\"match\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\b\",\"name\":\"entity.name.type.class.python\"}]},\"codetags\":{\"captures\":{\"1\":{\"name\":\"keyword.codetag.notation.python\"}},\"match\":\"(?:\\\\\\\\b(NOTE|XXX|HACK|FIXME|BUG|TODO)\\\\\\\\b)\"},\"comments\":{\"patterns\":[{\"begin\":\"(?:\\\\\\\\#\\\\\\\\s*(type:)\\\\\\\\s*+(?!$|\\\\\\\\#))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.typehint.comment.python\"},\"1\":{\"name\":\"comment.typehint.directive.notation.python\"}},\"contentName\":\"meta.typehint.comment.python\",\"end\":\"(?:$|(?=\\\\\\\\#))\",\"name\":\"comment.line.number-sign.python\",\"patterns\":[{\"match\":\"\\\\\\\\Gignore(?=\\\\\\\\s*(?:$|\\\\\\\\#))\",\"name\":\"comment.typehint.ignore.notation.python\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(bool|bytes|float|int|object|str|List|Dict|Iterable|Sequence|Set|FrozenSet|Callable|Union|Tuple|Any|None)\\\\\\\\b\",\"name\":\"comment.typehint.type.notation.python\"},{\"match\":\"([\\\\\\\\[\\\\\\\\]\\\\\\\\(\\\\\\\\),\\\\\\\\.\\\\\\\\=\\\\\\\\*]|(->))\",\"name\":\"comment.typehint.punctuation.notation.python\"},{\"match\":\"([[:alpha:]_]\\\\\\\\w*)\",\"name\":\"comment.typehint.variable.notation.python\"}]},{\"include\":\"#comments-base\"}]},\"comments-base\":{\"begin\":\"(\\\\\\\\#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.python\"}},\"end\":\"($)\",\"name\":\"comment.line.number-sign.python\",\"patterns\":[{\"include\":\"#codetags\"}]},\"comments-string-double-three\":{\"begin\":\"(\\\\\\\\#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.python\"}},\"end\":\"($|(?=\\\\\"\\\\\"\\\\\"))\",\"name\":\"comment.line.number-sign.python\",\"patterns\":[{\"include\":\"#codetags\"}]},\"comments-string-single-three\":{\"begin\":\"(\\\\\\\\#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.python\"}},\"end\":\"($|(?='''))\",\"name\":\"comment.line.number-sign.python\",\"patterns\":[{\"include\":\"#codetags\"}]},\"curly-braces\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.dict.begin.python\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.dict.end.python\"}},\"patterns\":[{\"match\":\":\",\"name\":\"punctuation.separator.dict.python\"},{\"include\":\"#expression\"}]},\"decorator\":{\"begin\":\"^\\\\\\\\s*((@))\\\\\\\\s*(?=[[:alpha:]_]\\\\\\\\w*)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.decorator.python\"},\"2\":{\"name\":\"punctuation.definition.decorator.python\"}},\"end\":\"(\\\\\\\\))(?:(.*?)(?=\\\\\\\\s*(?:\\\\\\\\#|$)))|(?=\\\\\\\\n|\\\\\\\\#)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.python\"},\"2\":{\"name\":\"invalid.illegal.decorator.python\"}},\"name\":\"meta.function.decorator.python\",\"patterns\":[{\"include\":\"#decorator-name\"},{\"include\":\"#function-arguments\"}]},\"decorator-name\":{\"patterns\":[{\"include\":\"#builtin-callables\"},{\"include\":\"#illegal-object-name\"},{\"captures\":{\"2\":{\"name\":\"punctuation.separator.period.python\"}},\"match\":\"([[:alpha:]_]\\\\\\\\w*)|(\\\\\\\\.)\",\"name\":\"entity.name.function.decorator.python\"},{\"include\":\"#line-continuation\"},{\"captures\":{\"1\":{\"name\":\"invalid.illegal.decorator.python\"}},\"match\":\"\\\\\\\\s*([^([:alpha:]\\\\\\\\s_\\\\\\\\.#\\\\\\\\\\\\\\\\].*?)(?=\\\\\\\\#|$)\",\"name\":\"invalid.illegal.decorator.python\"}]},\"double-one-regexp-character-set\":{\"patterns\":[{\"match\":\"\\\\\\\\[\\\\\\\\^?\\\\\\\\](?!.*?\\\\\\\\])\"},{\"begin\":\"(\\\\\\\\[)(\\\\\\\\^)?(\\\\\\\\])?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.character.set.begin.regexp constant.other.set.regexp\"},\"2\":{\"name\":\"keyword.operator.negation.regexp\"},\"3\":{\"name\":\"constant.character.set.regexp\"}},\"end\":\"(\\\\\\\\]|(?=\\\\\"))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.character.set.end.regexp constant.other.set.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.character.set.regexp\",\"patterns\":[{\"include\":\"#regexp-charecter-set-escapes\"},{\"match\":\"[^\\\\\\\\n]\",\"name\":\"constant.character.set.regexp\"}]}]},\"double-one-regexp-comments\":{\"begin\":\"\\\\\\\\(\\\\\\\\?#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.comment.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.comment.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"comment.regexp\",\"patterns\":[{\"include\":\"#codetags\"}]},\"double-one-regexp-conditional\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?\\\\\\\\((\\\\\\\\w+(?:\\\\\\\\s+[[:alnum:]]+)?|\\\\\\\\d+)\\\\\\\\)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.conditional.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.conditional.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-one-regexp-expression\"}]},\"double-one-regexp-expression\":{\"patterns\":[{\"include\":\"#regexp-base-expression\"},{\"include\":\"#double-one-regexp-character-set\"},{\"include\":\"#double-one-regexp-comments\"},{\"include\":\"#regexp-flags\"},{\"include\":\"#double-one-regexp-named-group\"},{\"include\":\"#regexp-backreference\"},{\"include\":\"#double-one-regexp-lookahead\"},{\"include\":\"#double-one-regexp-lookahead-negative\"},{\"include\":\"#double-one-regexp-lookbehind\"},{\"include\":\"#double-one-regexp-lookbehind-negative\"},{\"include\":\"#double-one-regexp-conditional\"},{\"include\":\"#double-one-regexp-parentheses-non-capturing\"},{\"include\":\"#double-one-regexp-parentheses\"}]},\"double-one-regexp-lookahead\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookahead.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookahead.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-one-regexp-expression\"}]},\"double-one-regexp-lookahead-negative\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?!\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookahead.negative.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookahead.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-one-regexp-expression\"}]},\"double-one-regexp-lookbehind\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?<=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookbehind.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookbehind.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-one-regexp-expression\"}]},\"double-one-regexp-lookbehind-negative\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?<!\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookbehind.negative.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookbehind.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-one-regexp-expression\"}]},\"double-one-regexp-named-group\":{\"begin\":\"(\\\\\\\\()(\\\\\\\\?P<\\\\\\\\w+(?:\\\\\\\\s+[[:alnum:]]+)?>)\",\"beginCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp\"},\"2\":{\"name\":\"entity.name.tag.named.group.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.named.regexp\",\"patterns\":[{\"include\":\"#double-one-regexp-expression\"}]},\"double-one-regexp-parentheses\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-one-regexp-expression\"}]},\"double-one-regexp-parentheses-non-capturing\":{\"begin\":\"\\\\\\\\(\\\\\\\\?:\",\"beginCaptures\":{\"0\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-one-regexp-expression\"}]},\"double-three-regexp-character-set\":{\"patterns\":[{\"match\":\"\\\\\\\\[\\\\\\\\^?\\\\\\\\](?!.*?\\\\\\\\])\"},{\"begin\":\"(\\\\\\\\[)(\\\\\\\\^)?(\\\\\\\\])?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.character.set.begin.regexp constant.other.set.regexp\"},\"2\":{\"name\":\"keyword.operator.negation.regexp\"},\"3\":{\"name\":\"constant.character.set.regexp\"}},\"end\":\"(\\\\\\\\]|(?=\\\\\"\\\\\"\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.character.set.end.regexp constant.other.set.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.character.set.regexp\",\"patterns\":[{\"include\":\"#regexp-charecter-set-escapes\"},{\"match\":\"[^\\\\\\\\n]\",\"name\":\"constant.character.set.regexp\"}]}]},\"double-three-regexp-comments\":{\"begin\":\"\\\\\\\\(\\\\\\\\?#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.comment.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"\\\\\"\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.comment.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"comment.regexp\",\"patterns\":[{\"include\":\"#codetags\"}]},\"double-three-regexp-conditional\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?\\\\\\\\((\\\\\\\\w+(?:\\\\\\\\s+[[:alnum:]]+)?|\\\\\\\\d+)\\\\\\\\)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.conditional.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.conditional.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"\\\\\"\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-three-regexp-expression\"},{\"include\":\"#comments-string-double-three\"}]},\"double-three-regexp-expression\":{\"patterns\":[{\"include\":\"#regexp-base-expression\"},{\"include\":\"#double-three-regexp-character-set\"},{\"include\":\"#double-three-regexp-comments\"},{\"include\":\"#regexp-flags\"},{\"include\":\"#double-three-regexp-named-group\"},{\"include\":\"#regexp-backreference\"},{\"include\":\"#double-three-regexp-lookahead\"},{\"include\":\"#double-three-regexp-lookahead-negative\"},{\"include\":\"#double-three-regexp-lookbehind\"},{\"include\":\"#double-three-regexp-lookbehind-negative\"},{\"include\":\"#double-three-regexp-conditional\"},{\"include\":\"#double-three-regexp-parentheses-non-capturing\"},{\"include\":\"#double-three-regexp-parentheses\"},{\"include\":\"#comments-string-double-three\"}]},\"double-three-regexp-lookahead\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookahead.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookahead.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"\\\\\"\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-three-regexp-expression\"},{\"include\":\"#comments-string-double-three\"}]},\"double-three-regexp-lookahead-negative\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?!\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookahead.negative.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookahead.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"\\\\\"\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-three-regexp-expression\"},{\"include\":\"#comments-string-double-three\"}]},\"double-three-regexp-lookbehind\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?<=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookbehind.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookbehind.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"\\\\\"\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-three-regexp-expression\"},{\"include\":\"#comments-string-double-three\"}]},\"double-three-regexp-lookbehind-negative\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?<!\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookbehind.negative.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookbehind.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"\\\\\"\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-three-regexp-expression\"},{\"include\":\"#comments-string-double-three\"}]},\"double-three-regexp-named-group\":{\"begin\":\"(\\\\\\\\()(\\\\\\\\?P<\\\\\\\\w+(?:\\\\\\\\s+[[:alnum:]]+)?>)\",\"beginCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp\"},\"2\":{\"name\":\"entity.name.tag.named.group.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"\\\\\"\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.named.regexp\",\"patterns\":[{\"include\":\"#double-three-regexp-expression\"},{\"include\":\"#comments-string-double-three\"}]},\"double-three-regexp-parentheses\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"\\\\\"\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-three-regexp-expression\"},{\"include\":\"#comments-string-double-three\"}]},\"double-three-regexp-parentheses-non-capturing\":{\"begin\":\"\\\\\\\\(\\\\\\\\?:\",\"beginCaptures\":{\"0\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"\\\\\"\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-three-regexp-expression\"},{\"include\":\"#comments-string-double-three\"}]},\"ellipsis\":{\"match\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"name\":\"constant.other.ellipsis.python\"},\"escape-sequence\":{\"match\":\"\\\\\\\\\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{1,3}|[\\\\\\\\\\\\\\\\\\\\\"'abfnrtv])\",\"name\":\"constant.character.escape.python\"},\"escape-sequence-unicode\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8}|N\\\\\\\\{[\\\\\\\\w\\\\\\\\s]+?\\\\\\\\})\",\"name\":\"constant.character.escape.python\"}]},\"expression\":{\"comment\":\"All valid Python expressions\",\"patterns\":[{\"include\":\"#expression-base\"},{\"include\":\"#member-access\"},{\"comment\":\"Tokenize identifiers to help linters\",\"match\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\b\"}]},\"expression-bare\":{\"comment\":\"valid Python expressions w/o comments and line continuation\",\"patterns\":[{\"include\":\"#backticks\"},{\"include\":\"#literal\"},{\"include\":\"#regexp\"},{\"include\":\"#string\"},{\"include\":\"#lambda\"},{\"include\":\"#generator\"},{\"include\":\"#illegal-operator\"},{\"include\":\"#operator\"},{\"include\":\"#curly-braces\"},{\"include\":\"#item-access\"},{\"include\":\"#list\"},{\"include\":\"#odd-function-call\"},{\"include\":\"#round-braces\"},{\"include\":\"#function-call\"},{\"include\":\"#builtin-functions\"},{\"include\":\"#builtin-types\"},{\"include\":\"#builtin-exceptions\"},{\"include\":\"#magic-names\"},{\"include\":\"#special-names\"},{\"include\":\"#illegal-names\"},{\"include\":\"#special-variables\"},{\"include\":\"#ellipsis\"},{\"include\":\"#punctuation\"},{\"include\":\"#line-continuation\"}]},\"expression-base\":{\"comment\":\"valid Python expressions with comments and line continuation\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#expression-bare\"},{\"include\":\"#line-continuation\"}]},\"f-expression\":{\"comment\":\"All valid Python expressions, except comments and line continuation\",\"patterns\":[{\"include\":\"#expression-bare\"},{\"include\":\"#member-access\"},{\"comment\":\"Tokenize identifiers to help linters\",\"match\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\b\"}]},\"fregexp-base-expression\":{\"patterns\":[{\"include\":\"#fregexp-quantifier\"},{\"include\":\"#fstring-formatting-braces\"},{\"match\":\"\\\\\\\\{.*?\\\\\\\\}\"},{\"include\":\"#regexp-base-common\"}]},\"fregexp-quantifier\":{\"match\":\"\\\\\\\\{\\\\\\\\{(\\\\\\\\d+|\\\\\\\\d+,(\\\\\\\\d+)?|,\\\\\\\\d+)\\\\\\\\}\\\\\\\\}\",\"name\":\"keyword.operator.quantifier.regexp\"},\"fstring-fnorm-quoted-multi-line\":{\"begin\":\"(\\\\\\\\b[fF])([bBuU])?('''|\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"string.interpolated.python string.quoted.multi.python storage.type.string.python\"},\"2\":{\"name\":\"invalid.illegal.prefix.python\"},\"3\":{\"name\":\"punctuation.definition.string.begin.python string.interpolated.python string.quoted.multi.python\"}},\"end\":\"(\\\\\\\\3)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.fstring.python\",\"patterns\":[{\"include\":\"#fstring-guts\"},{\"include\":\"#fstring-illegal-multi-brace\"},{\"include\":\"#fstring-multi-brace\"},{\"include\":\"#fstring-multi-core\"}]},\"fstring-fnorm-quoted-single-line\":{\"begin\":\"(\\\\\\\\b[fF])([bBuU])?((['\\\\\"]))\",\"beginCaptures\":{\"1\":{\"name\":\"string.interpolated.python string.quoted.single.python storage.type.string.python\"},\"2\":{\"name\":\"invalid.illegal.prefix.python\"},\"3\":{\"name\":\"punctuation.definition.string.begin.python string.interpolated.python string.quoted.single.python\"}},\"end\":\"(\\\\\\\\3)|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.fstring.python\",\"patterns\":[{\"include\":\"#fstring-guts\"},{\"include\":\"#fstring-illegal-single-brace\"},{\"include\":\"#fstring-single-brace\"},{\"include\":\"#fstring-single-core\"}]},\"fstring-formatting\":{\"patterns\":[{\"include\":\"#fstring-formatting-braces\"},{\"include\":\"#fstring-formatting-singe-brace\"}]},\"fstring-formatting-braces\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"},\"2\":{\"name\":\"invalid.illegal.brace.python\"},\"3\":{\"name\":\"constant.character.format.placeholder.other.python\"}},\"comment\":\"empty braces are illegal\",\"match\":\"({)(\\\\\\\\s*?)(})\"},{\"match\":\"({{|}})\",\"name\":\"constant.character.escape.python\"}]},\"fstring-formatting-singe-brace\":{\"match\":\"(}(?!}))\",\"name\":\"invalid.illegal.brace.python\"},\"fstring-guts\":{\"patterns\":[{\"include\":\"#escape-sequence-unicode\"},{\"include\":\"#escape-sequence\"},{\"include\":\"#string-line-continuation\"},{\"include\":\"#fstring-formatting\"}]},\"fstring-illegal-multi-brace\":{\"patterns\":[{\"include\":\"#impossible\"}]},\"fstring-illegal-single-brace\":{\"begin\":\"(\\\\\\\\{)(?=[^\\\\\\\\n}]*$\\\\\\\\n?)\",\"beginCaptures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"}},\"comment\":\"it is illegal to have a multiline brace inside a single-line string\",\"end\":\"(\\\\\\\\})|(?=\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"}},\"patterns\":[{\"include\":\"#fstring-terminator-single\"},{\"include\":\"#f-expression\"}]},\"fstring-multi-brace\":{\"begin\":\"(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"}},\"comment\":\"value interpolation using { ... }\",\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"}},\"patterns\":[{\"include\":\"#fstring-terminator-multi\"},{\"include\":\"#f-expression\"}]},\"fstring-multi-core\":{\"match\":\"(.+?)(($\\\\\\\\n?)|(?=[\\\\\\\\\\\\\\\\\\\\\\\\}\\\\\\\\{]|'''|\\\\\"\\\\\"\\\\\"))|\\\\\\\\n\",\"name\":\"string.interpolated.python string.quoted.multi.python\"},\"fstring-normf-quoted-multi-line\":{\"begin\":\"(\\\\\\\\b[bBuU])([fF])('''|\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"invalid.illegal.prefix.python\"},\"2\":{\"name\":\"string.interpolated.python string.quoted.multi.python storage.type.string.python\"},\"3\":{\"name\":\"punctuation.definition.string.begin.python string.quoted.multi.python\"}},\"end\":\"(\\\\\\\\3)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.fstring.python\",\"patterns\":[{\"include\":\"#fstring-guts\"},{\"include\":\"#fstring-illegal-multi-brace\"},{\"include\":\"#fstring-multi-brace\"},{\"include\":\"#fstring-multi-core\"}]},\"fstring-normf-quoted-single-line\":{\"begin\":\"(\\\\\\\\b[bBuU])([fF])((['\\\\\"]))\",\"beginCaptures\":{\"1\":{\"name\":\"invalid.illegal.prefix.python\"},\"2\":{\"name\":\"string.interpolated.python string.quoted.single.python storage.type.string.python\"},\"3\":{\"name\":\"punctuation.definition.string.begin.python string.quoted.single.python\"}},\"end\":\"(\\\\\\\\3)|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.fstring.python\",\"patterns\":[{\"include\":\"#fstring-guts\"},{\"include\":\"#fstring-illegal-single-brace\"},{\"include\":\"#fstring-single-brace\"},{\"include\":\"#fstring-single-core\"}]},\"fstring-raw-guts\":{\"patterns\":[{\"include\":\"#string-consume-escape\"},{\"include\":\"#fstring-formatting\"}]},\"fstring-raw-multi-core\":{\"match\":\"(.+?)(($\\\\\\\\n?)|(?=[\\\\\\\\\\\\\\\\\\\\\\\\}\\\\\\\\{]|'''|\\\\\"\\\\\"\\\\\"))|\\\\\\\\n\",\"name\":\"string.interpolated.python string.quoted.raw.multi.python\"},\"fstring-raw-quoted-multi-line\":{\"begin\":\"(\\\\\\\\b(?:[rR][fF]|[fF][rR]))('''|\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"string.interpolated.python string.quoted.raw.multi.python storage.type.string.python\"},\"2\":{\"name\":\"punctuation.definition.string.begin.python string.quoted.raw.multi.python\"}},\"end\":\"(\\\\\\\\2)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.multi.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.fstring.python\",\"patterns\":[{\"include\":\"#fstring-raw-guts\"},{\"include\":\"#fstring-illegal-multi-brace\"},{\"include\":\"#fstring-multi-brace\"},{\"include\":\"#fstring-raw-multi-core\"}]},\"fstring-raw-quoted-single-line\":{\"begin\":\"(\\\\\\\\b(?:[rR][fF]|[fF][rR]))((['\\\\\"]))\",\"beginCaptures\":{\"1\":{\"name\":\"string.interpolated.python string.quoted.raw.single.python storage.type.string.python\"},\"2\":{\"name\":\"punctuation.definition.string.begin.python string.quoted.raw.single.python\"}},\"end\":\"(\\\\\\\\2)|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.single.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.fstring.python\",\"patterns\":[{\"include\":\"#fstring-raw-guts\"},{\"include\":\"#fstring-illegal-single-brace\"},{\"include\":\"#fstring-single-brace\"},{\"include\":\"#fstring-raw-single-core\"}]},\"fstring-raw-single-core\":{\"match\":\"(.+?)(($\\\\\\\\n?)|(?=[\\\\\\\\\\\\\\\\\\\\\\\\}\\\\\\\\{]|(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)))|\\\\\\\\n\",\"name\":\"string.interpolated.python string.quoted.raw.single.python\"},\"fstring-single-brace\":{\"begin\":\"(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"}},\"comment\":\"value interpolation using { ... }\",\"end\":\"(\\\\\\\\})|(?=\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"}},\"patterns\":[{\"include\":\"#fstring-terminator-single\"},{\"include\":\"#f-expression\"}]},\"fstring-single-core\":{\"match\":\"(.+?)(($\\\\\\\\n?)|(?=[\\\\\\\\\\\\\\\\\\\\\\\\}\\\\\\\\{]|(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)))|\\\\\\\\n\",\"name\":\"string.interpolated.python string.quoted.single.python\"},\"fstring-terminator-multi\":{\"patterns\":[{\"match\":\"(=(![rsa])?)(?=})\",\"name\":\"storage.type.format.python\"},{\"match\":\"(=?![rsa])(?=})\",\"name\":\"storage.type.format.python\"},{\"captures\":{\"1\":{\"name\":\"storage.type.format.python\"},\"2\":{\"name\":\"storage.type.format.python\"}},\"match\":\"((?:=?)(?:![rsa])?)(:\\\\\\\\w?[<>=^]?[-+ ]?\\\\\\\\#?\\\\\\\\d*,?(\\\\\\\\.\\\\\\\\d+)?[bcdeEfFgGnosxX%]?)(?=})\"},{\"include\":\"#fstring-terminator-multi-tail\"}]},\"fstring-terminator-multi-tail\":{\"begin\":\"((?:=?)(?:![rsa])?)(:)(?=.*?{)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.format.python\"},\"2\":{\"name\":\"storage.type.format.python\"}},\"end\":\"(?=})\",\"patterns\":[{\"include\":\"#fstring-illegal-multi-brace\"},{\"include\":\"#fstring-multi-brace\"},{\"match\":\"([bcdeEfFgGnosxX%])(?=})\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\\\\\.\\\\\\\\d+)\",\"name\":\"storage.type.format.python\"},{\"match\":\"(,)\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\\\\\d+)\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\\\\\#)\",\"name\":\"storage.type.format.python\"},{\"match\":\"([-+ ])\",\"name\":\"storage.type.format.python\"},{\"match\":\"([<>=^])\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\\\\\w)\",\"name\":\"storage.type.format.python\"}]},\"fstring-terminator-single\":{\"patterns\":[{\"match\":\"(=(![rsa])?)(?=})\",\"name\":\"storage.type.format.python\"},{\"match\":\"(=?![rsa])(?=})\",\"name\":\"storage.type.format.python\"},{\"captures\":{\"1\":{\"name\":\"storage.type.format.python\"},\"2\":{\"name\":\"storage.type.format.python\"}},\"match\":\"((?:=?)(?:![rsa])?)(:\\\\\\\\w?[<>=^]?[-+ ]?\\\\\\\\#?\\\\\\\\d*,?(\\\\\\\\.\\\\\\\\d+)?[bcdeEfFgGnosxX%]?)(?=})\"},{\"include\":\"#fstring-terminator-single-tail\"}]},\"fstring-terminator-single-tail\":{\"begin\":\"((?:=?)(?:![rsa])?)(:)(?=.*?{)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.format.python\"},\"2\":{\"name\":\"storage.type.format.python\"}},\"end\":\"(?=})|(?=\\\\\\\\n)\",\"patterns\":[{\"include\":\"#fstring-illegal-single-brace\"},{\"include\":\"#fstring-single-brace\"},{\"match\":\"([bcdeEfFgGnosxX%])(?=})\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\\\\\.\\\\\\\\d+)\",\"name\":\"storage.type.format.python\"},{\"match\":\"(,)\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\\\\\d+)\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\\\\\#)\",\"name\":\"storage.type.format.python\"},{\"match\":\"([-+ ])\",\"name\":\"storage.type.format.python\"},{\"match\":\"([<>=^])\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\\\\\w)\",\"name\":\"storage.type.format.python\"}]},\"function-arguments\":{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.python\"}},\"contentName\":\"meta.function-call.arguments.python\",\"end\":\"(?=\\\\\\\\))(?!\\\\\\\\)\\\\\\\\s*\\\\\\\\()\",\"patterns\":[{\"match\":\"(,)\",\"name\":\"punctuation.separator.arguments.python\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.unpacking.arguments.python\"}},\"match\":\"(?:(?<=[,(])|^)\\\\\\\\s*(\\\\\\\\*{1,2})\"},{\"include\":\"#lambda-incomplete\"},{\"include\":\"#illegal-names\"},{\"captures\":{\"1\":{\"name\":\"variable.parameter.function-call.python\"},\"2\":{\"name\":\"keyword.operator.assignment.python\"}},\"match\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\s*(=)(?!=)\"},{\"match\":\"=(?!=)\",\"name\":\"keyword.operator.assignment.python\"},{\"include\":\"#expression\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.python\"},\"2\":{\"name\":\"punctuation.definition.arguments.begin.python\"}},\"match\":\"\\\\\\\\s*(\\\\\\\\))\\\\\\\\s*(\\\\\\\\()\"}]},\"function-call\":{\"begin\":\"\\\\\\\\b(?=([[:alpha:]_]\\\\\\\\w*)\\\\\\\\s*(\\\\\\\\())\",\"comment\":\"Regular function call of the type \\\\\"name(args)\\\\\"\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.python\"}},\"name\":\"meta.function-call.python\",\"patterns\":[{\"include\":\"#special-variables\"},{\"include\":\"#function-name\"},{\"include\":\"#function-arguments\"}]},\"function-declaration\":{\"begin\":\"\\\\\\\\s*(?:\\\\\\\\b(async)\\\\\\\\s+)?\\\\\\\\b(def|fn)\\\\\\\\s+(?=[[:alpha:]_][[:word:]]*\\\\\\\\s*[\\\\\\\\(\\\\\\\\[])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.async.python\"},\"2\":{\"name\":\"storage.type.function.python\"}},\"end\":\"(:|(?=[#'\\\\\"\\\\\\\\n]))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.function.begin.python\"}},\"name\":\"meta.function.python\",\"patterns\":[{\"include\":\"#function-modifier\"},{\"include\":\"#function-def-name\"},{\"include\":\"#parameters\"},{\"include\":\"#meta_parameters\"},{\"include\":\"#line-continuation\"},{\"include\":\"#return-annotation\"}]},\"function-def-name\":{\"patterns\":[{\"include\":\"#illegal-object-name\"},{\"include\":\"#builtin-possible-callables\"},{\"match\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\b\",\"name\":\"entity.name.function.python\"}]},\"function-modifier\":{\"match\":\"(raises|capturing)\",\"name\":\"storage.modifier\"},\"function-name\":{\"patterns\":[{\"include\":\"#builtin-possible-callables\"},{\"comment\":\"Some color schemas support meta.function-call.generic scope\",\"match\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\b\",\"name\":\"meta.function-call.generic.python\"}]},\"generator\":{\"begin\":\"\\\\\\\\bfor\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.flow.python\"}},\"comment\":\"Match \\\\\"for ... in\\\\\" construct used in generators and for loops to\\\\ncorrectly identify the \\\\\"in\\\\\" as a control flow keyword.\\\\n\",\"end\":\"\\\\\\\\bin\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.flow.python\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"illegal-names\":{\"captures\":{\"1\":{\"name\":\"keyword.control.flow.python\"},\"2\":{\"name\":\"storage.type.function.python\"},\"3\":{\"name\":\"keyword.control.import.python\"}},\"match\":\"\\\\\\\\b(?:(and|assert|async|await|break|class|struct|trait|continue|del|elif|else|except|finally|for|from|global|if|in|is|(?<=\\\\\\\\.)lambda|lambda(?=\\\\\\\\s*[\\\\\\\\.=])|nonlocal|not|or|pass|raise|return|try|while|with|yield)|(def|fn|capturing|raises)|(as|import))\\\\\\\\b\"},\"illegal-object-name\":{\"comment\":\"It's illegal to name class or function \\\\\"True\\\\\"\",\"match\":\"\\\\\\\\b(True|False|None)\\\\\\\\b\",\"name\":\"keyword.illegal.name.python\"},\"illegal-operator\":{\"patterns\":[{\"match\":\"&&|\\\\\\\\|\\\\\\\\||--|\\\\\\\\+\\\\\\\\+\",\"name\":\"invalid.illegal.operator.python\"},{\"match\":\"[?$]\",\"name\":\"invalid.illegal.operator.python\"},{\"comment\":\"We don't want \\`!\\` to flash when we're typing \\`!=\\`\",\"match\":\"!\\\\\\\\b\",\"name\":\"invalid.illegal.operator.python\"}]},\"import\":{\"comment\":\"Import statements used to correctly mark \\`from\\`, \\`import\\`, and \\`as\\`\\\\n\",\"patterns\":[{\"begin\":\"\\\\\\\\b(?<!\\\\\\\\.)(from)\\\\\\\\b(?=.+import)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.import.python\"}},\"end\":\"$|(?=import)\",\"patterns\":[{\"match\":\"\\\\\\\\.+\",\"name\":\"punctuation.separator.period.python\"},{\"include\":\"#expression\"}]},{\"begin\":\"\\\\\\\\b(?<!\\\\\\\\.)(import)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.import.python\"}},\"end\":\"$\",\"patterns\":[{\"match\":\"\\\\\\\\b(?<!\\\\\\\\.)as\\\\\\\\b\",\"name\":\"keyword.control.import.python\"},{\"include\":\"#expression\"}]}]},\"impossible\":{\"comment\":\"This is a special rule that should be used where no match is desired. It is not a good idea to match something like '1{0}' because in some cases that can result in infinite loops in token generation. So the rule instead matches and impossible expression to allow a match to fail and move to the next token.\",\"match\":\"$.^\"},\"inheritance-identifier\":{\"captures\":{\"1\":{\"name\":\"entity.other.inherited-class.python\"}},\"match\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\b\"},\"inheritance-name\":{\"patterns\":[{\"include\":\"#lambda-incomplete\"},{\"include\":\"#builtin-possible-callables\"},{\"include\":\"#inheritance-identifier\"}]},\"item-access\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(?=[[:alpha:]_]\\\\\\\\w*\\\\\\\\s*\\\\\\\\[)\",\"end\":\"(\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.python\"}},\"name\":\"meta.item-access.python\",\"patterns\":[{\"include\":\"#item-name\"},{\"include\":\"#item-index\"},{\"include\":\"#expression\"}]}]},\"item-index\":{\"begin\":\"(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.python\"}},\"contentName\":\"meta.item-access.arguments.python\",\"end\":\"(?=\\\\\\\\])\",\"patterns\":[{\"match\":\":\",\"name\":\"punctuation.separator.slice.python\"},{\"include\":\"#expression\"}]},\"item-name\":{\"patterns\":[{\"include\":\"#special-variables\"},{\"include\":\"#builtin-functions\"},{\"include\":\"#special-names\"},{\"match\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\b\",\"name\":\"meta.indexed-name.python\"}]},\"lambda\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.flow.python\"}},\"match\":\"((?<=\\\\\\\\.)lambda|lambda(?=\\\\\\\\s*[\\\\\\\\.=]))\"},{\"captures\":{\"1\":{\"name\":\"storage.type.function.lambda.python\"}},\"match\":\"\\\\\\\\b(lambda)\\\\\\\\s*?(?=[,\\\\\\\\n]|$)\"},{\"begin\":\"\\\\\\\\b(lambda)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.lambda.python\"}},\"contentName\":\"meta.function.lambda.parameters.python\",\"end\":\"(:)|(\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.function.lambda.begin.python\"}},\"name\":\"meta.lambda-function.python\",\"patterns\":[{\"match\":\"\\\\\\\\b(owned|borrowed|inout)\\\\\\\\b\",\"name\":\"storage.modifier\"},{\"match\":\"/\",\"name\":\"keyword.operator.positional.parameter.python\"},{\"match\":\"(\\\\\\\\*\\\\\\\\*|\\\\\\\\*)\",\"name\":\"keyword.operator.unpacking.parameter.python\"},{\"include\":\"#lambda-nested-incomplete\"},{\"include\":\"#illegal-names\"},{\"captures\":{\"1\":{\"name\":\"variable.parameter.function.language.python\"},\"2\":{\"name\":\"punctuation.separator.parameters.python\"}},\"match\":\"([[:alpha:]_]\\\\\\\\w*)\\\\\\\\s*(?:(,)|(?=:|$))\"},{\"include\":\"#comments\"},{\"include\":\"#backticks\"},{\"include\":\"#lambda-parameter-with-default\"},{\"include\":\"#line-continuation\"},{\"include\":\"#illegal-operator\"}]}]},\"lambda-incomplete\":{\"match\":\"\\\\\\\\blambda(?=\\\\\\\\s*[,)])\",\"name\":\"storage.type.function.lambda.python\"},\"lambda-nested-incomplete\":{\"match\":\"\\\\\\\\blambda(?=\\\\\\\\s*[:,)])\",\"name\":\"storage.type.function.lambda.python\"},\"lambda-parameter-with-default\":{\"begin\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\s*(=)\",\"beginCaptures\":{\"1\":{\"name\":\"variable.parameter.function.language.python\"},\"2\":{\"name\":\"keyword.operator.python\"}},\"end\":\"(,)|(?=:|$)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.parameters.python\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"line-continuation\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.continuation.line.python\"},\"2\":{\"name\":\"invalid.illegal.line.continuation.python\"}},\"match\":\"(\\\\\\\\\\\\\\\\)\\\\\\\\s*(\\\\\\\\S.*$\\\\\\\\n?)\"},{\"begin\":\"(\\\\\\\\\\\\\\\\)\\\\\\\\s*$\\\\\\\\n?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.continuation.line.python\"}},\"end\":\"(?=^\\\\\\\\s*$)|(?!(\\\\\\\\s*[rR]?(\\\\\\\\'\\\\\\\\'\\\\\\\\'|\\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"|\\\\\\\\'|\\\\\\\\\\\\\"))|(\\\\\\\\G$))\",\"patterns\":[{\"include\":\"#regexp\"},{\"include\":\"#string\"}]}]},\"list\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.list.begin.python\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.list.end.python\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"literal\":{\"patterns\":[{\"match\":\"\\\\\\\\b(True|False|None|NotImplemented|Ellipsis)\\\\\\\\b\",\"name\":\"constant.language.python\"},{\"include\":\"#number\"}]},\"loose-default\":{\"begin\":\"(=)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.python\"}},\"end\":\"(,)|(?=\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.parameters.python\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"magic-function-names\":{\"captures\":{\"1\":{\"name\":\"support.function.magic.python\"}},\"comment\":\"these methods have magic interpretation by python and are generally called\\\\nindirectly through syntactic constructs\\\\n\",\"match\":\"\\\\\\\\b(__(?:abs|add|aenter|aexit|aiter|and|anext|await|bool|call|ceil|class_getitem|cmp|coerce|complex|contains|copy|deepcopy|del|delattr|delete|delitem|delslice|dir|div|divmod|enter|eq|exit|float|floor|floordiv|format|ge|get|getattr|getattribute|getinitargs|getitem|getnewargs|getslice|getstate|gt|hash|hex|iadd|iand|idiv|ifloordiv||ilshift|imod|imul|index|init|instancecheck|int|invert|ior|ipow|irshift|isub|iter|itruediv|ixor|le|len|long|lshift|lt|missing|mod|mul|ne|neg|new|next|nonzero|oct|or|pos|pow|radd|rand|rdiv|rdivmod|reduce|reduce_ex|repr|reversed|rfloordiv||rlshift|rmod|rmul|ror|round|rpow|rrshift|rshift|rsub|rtruediv|rxor|set|setattr|setitem|set_name|setslice|setstate|sizeof|str|sub|subclasscheck|truediv|trunc|unicode|xor|matmul|rmatmul|imatmul|init_subclass|set_name|fspath|bytes|prepare|length_hint)__)\\\\\\\\b\"},\"magic-names\":{\"patterns\":[{\"include\":\"#magic-function-names\"},{\"include\":\"#magic-variable-names\"}]},\"magic-variable-names\":{\"captures\":{\"1\":{\"name\":\"support.variable.magic.python\"}},\"comment\":\"magic variables which a class/module may have.\",\"match\":\"\\\\\\\\b(__(?:all|annotations|bases|builtins|class|struct|trait|closure|code|debug|defaults|dict|doc|file|func|globals|kwdefaults|match_args|members|metaclass|methods|module|mro|mro_entries|name|qualname|post_init|self|signature|slots|subclasses|version|weakref|wrapped|classcell|spec|path|package|future|traceback)__)\\\\\\\\b\"},\"member-access\":{\"begin\":\"(\\\\\\\\.)\\\\\\\\s*(?!\\\\\\\\.)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.period.python\"}},\"end\":\"(?<=\\\\\\\\S)(?=\\\\\\\\W)|(^|(?<=\\\\\\\\s))(?=[^\\\\\\\\\\\\\\\\\\\\\\\\w\\\\\\\\s])|$\",\"name\":\"meta.member.access.python\",\"patterns\":[{\"include\":\"#function-call\"},{\"include\":\"#member-access-base\"},{\"include\":\"#member-access-attribute\"}]},\"member-access-attribute\":{\"comment\":\"Highlight attribute access in otherwise non-specialized cases.\",\"match\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\b\",\"name\":\"meta.attribute.python\"},\"member-access-base\":{\"patterns\":[{\"include\":\"#magic-names\"},{\"include\":\"#illegal-names\"},{\"include\":\"#illegal-object-name\"},{\"include\":\"#special-names\"},{\"include\":\"#line-continuation\"},{\"include\":\"#item-access\"}]},\"member-access-class\":{\"begin\":\"(\\\\\\\\.)\\\\\\\\s*(?!\\\\\\\\.)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.period.python\"}},\"end\":\"(?<=\\\\\\\\S)(?=\\\\\\\\W)|$\",\"name\":\"meta.member.access.python\",\"patterns\":[{\"include\":\"#call-wrapper-inheritance\"},{\"include\":\"#member-access-base\"},{\"include\":\"#inheritance-identifier\"}]},\"meta_parameters\":{\"begin\":\"(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.begin.python\"}},\"end\":\"(\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.python\"}},\"name\":\"meta.function.parameters.python\",\"patterns\":[{\"begin\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"variable.parameter.function.language.python\"},\"2\":{\"name\":\"punctuation.separator.annotation.python\"}},\"end\":\"(,)|(?=\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.parameters.python\"}},\"patterns\":[{\"include\":\"#expression\"}]},{\"include\":\"#comments\"}]},\"number\":{\"name\":\"constant.numeric.python\",\"patterns\":[{\"include\":\"#number-float\"},{\"include\":\"#number-dec\"},{\"include\":\"#number-hex\"},{\"include\":\"#number-oct\"},{\"include\":\"#number-bin\"},{\"include\":\"#number-long\"},{\"match\":\"\\\\\\\\b[0-9]+\\\\\\\\w+\",\"name\":\"invalid.illegal.name.python\"}]},\"number-bin\":{\"captures\":{\"1\":{\"name\":\"storage.type.number.python\"}},\"match\":\"(?<![\\\\\\\\w\\\\\\\\.])(0[bB])(_?[01])+\\\\\\\\b\",\"name\":\"constant.numeric.bin.python\"},\"number-dec\":{\"captures\":{\"1\":{\"name\":\"storage.type.imaginary.number.python\"},\"2\":{\"name\":\"invalid.illegal.dec.python\"}},\"match\":\"(?<![\\\\\\\\w\\\\\\\\.])(?:[1-9](?:_?[0-9])*|0+|[0-9](?:_?[0-9])*([jJ])|0([0-9]+)(?![eE\\\\\\\\.]))\\\\\\\\b\",\"name\":\"constant.numeric.dec.python\"},\"number-float\":{\"captures\":{\"1\":{\"name\":\"storage.type.imaginary.number.python\"}},\"match\":\"(?<!\\\\\\\\w)(?:(?:\\\\\\\\.[0-9](?:_?[0-9])*|[0-9](?:_?[0-9])*\\\\\\\\.[0-9](?:_?[0-9])*|[0-9](?:_?[0-9])*\\\\\\\\.)(?:[eE][+-]?[0-9](?:_?[0-9])*)?|[0-9](?:_?[0-9])*(?:[eE][+-]?[0-9](?:_?[0-9])*))([jJ])?\\\\\\\\b\",\"name\":\"constant.numeric.float.python\"},\"number-hex\":{\"captures\":{\"1\":{\"name\":\"storage.type.number.python\"}},\"match\":\"(?<![\\\\\\\\w\\\\\\\\.])(0[xX])(_?[0-9a-fA-F])+\\\\\\\\b\",\"name\":\"constant.numeric.hex.python\"},\"number-long\":{\"captures\":{\"2\":{\"name\":\"storage.type.number.python\"}},\"comment\":\"this is to support python2 syntax for long ints\",\"match\":\"(?<![\\\\\\\\w\\\\\\\\.])([1-9][0-9]*|0)([lL])\\\\\\\\b\",\"name\":\"constant.numeric.bin.python\"},\"number-oct\":{\"captures\":{\"1\":{\"name\":\"storage.type.number.python\"}},\"match\":\"(?<![\\\\\\\\w\\\\\\\\.])(0[oO])(_?[0-7])+\\\\\\\\b\",\"name\":\"constant.numeric.oct.python\"},\"odd-function-call\":{\"begin\":\"(?<=\\\\\\\\]|\\\\\\\\))\\\\\\\\s*(?=\\\\\\\\()\",\"comment\":\"A bit obscured function call where there may have been an\\\\narbitrary number of other operations to get the function.\\\\nE.g. \\\\\"arr[idx](args)\\\\\"\\\\n\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.python\"}},\"patterns\":[{\"include\":\"#function-arguments\"}]},\"operator\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.logical.python\"},\"2\":{\"name\":\"keyword.control.flow.python\"},\"3\":{\"name\":\"keyword.operator.bitwise.python\"},\"4\":{\"name\":\"keyword.operator.arithmetic.python\"},\"5\":{\"name\":\"keyword.operator.comparison.python\"},\"6\":{\"name\":\"keyword.operator.assignment.python\"}},\"match\":\"\\\\\\\\b(?<!\\\\\\\\.)(?:(and|or|not|in|is)|(for|if|else|await|(?:yield(?:\\\\\\\\s+from)?)))(?!\\\\\\\\s*:)\\\\\\\\b|(<<|>>|&|\\\\\\\\||\\\\\\\\^|~)|(\\\\\\\\*\\\\\\\\*|\\\\\\\\*|\\\\\\\\+|-|%|//|/|@)|(!=|==|>=|<=|<|>)|(:=)\"},\"parameter-special\":{\"captures\":{\"1\":{\"name\":\"variable.parameter.function.language.python\"},\"2\":{\"name\":\"variable.parameter.function.language.special.self.python\"},\"3\":{\"name\":\"variable.parameter.function.language.special.cls.python\"},\"4\":{\"name\":\"punctuation.separator.parameters.python\"}},\"match\":\"\\\\\\\\b((self)|(cls))\\\\\\\\b\\\\\\\\s*(?:(,)|(?=\\\\\\\\)))\"},\"parameters\":{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.begin.python\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.python\"}},\"name\":\"meta.function.parameters.python\",\"patterns\":[{\"match\":\"\\\\\\\\b(owned|borrowed|inout)\\\\\\\\b\",\"name\":\"storage.modifier\"},{\"match\":\"/\",\"name\":\"keyword.operator.positional.parameter.python\"},{\"match\":\"(\\\\\\\\*\\\\\\\\*|\\\\\\\\*)\",\"name\":\"keyword.operator.unpacking.parameter.python\"},{\"include\":\"#lambda-incomplete\"},{\"include\":\"#illegal-names\"},{\"include\":\"#illegal-object-name\"},{\"include\":\"#parameter-special\"},{\"captures\":{\"1\":{\"name\":\"variable.parameter.function.language.python\"},\"2\":{\"name\":\"punctuation.separator.parameters.python\"}},\"match\":\"([[:alpha:]_]\\\\\\\\w*)\\\\\\\\s*(?:(,)|(?=[)#\\\\\\\\n=]))\"},{\"include\":\"#comments\"},{\"include\":\"#loose-default\"},{\"include\":\"#annotated-parameter\"}]},\"punctuation\":{\"patterns\":[{\"match\":\":\",\"name\":\"punctuation.separator.colon.python\"},{\"match\":\",\",\"name\":\"punctuation.separator.element.python\"}]},\"regexp\":{\"patterns\":[{\"include\":\"#regexp-single-three-line\"},{\"include\":\"#regexp-double-three-line\"},{\"include\":\"#regexp-single-one-line\"},{\"include\":\"#regexp-double-one-line\"}]},\"regexp-backreference\":{\"captures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.begin.regexp\"},\"2\":{\"name\":\"entity.name.tag.named.backreference.regexp\"},\"3\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.end.regexp\"}},\"match\":\"(\\\\\\\\()(\\\\\\\\?P=\\\\\\\\w+(?:\\\\\\\\s+[[:alnum:]]+)?)(\\\\\\\\))\",\"name\":\"meta.backreference.named.regexp\"},\"regexp-backreference-number\":{\"captures\":{\"1\":{\"name\":\"entity.name.tag.backreference.regexp\"}},\"match\":\"(\\\\\\\\\\\\\\\\[1-9]\\\\\\\\d?)\",\"name\":\"meta.backreference.regexp\"},\"regexp-base-common\":{\"patterns\":[{\"match\":\"\\\\\\\\.\",\"name\":\"support.other.match.any.regexp\"},{\"match\":\"\\\\\\\\^\",\"name\":\"support.other.match.begin.regexp\"},{\"match\":\"\\\\\\\\$\",\"name\":\"support.other.match.end.regexp\"},{\"match\":\"[+*?]\\\\\\\\??\",\"name\":\"keyword.operator.quantifier.regexp\"},{\"match\":\"\\\\\\\\|\",\"name\":\"keyword.operator.disjunction.regexp\"},{\"include\":\"#regexp-escape-sequence\"}]},\"regexp-base-expression\":{\"patterns\":[{\"include\":\"#regexp-quantifier\"},{\"include\":\"#regexp-base-common\"}]},\"regexp-charecter-set-escapes\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[abfnrtv\\\\\\\\\\\\\\\\]\",\"name\":\"constant.character.escape.regexp\"},{\"include\":\"#regexp-escape-special\"},{\"match\":\"\\\\\\\\\\\\\\\\([0-7]{1,3})\",\"name\":\"constant.character.escape.regexp\"},{\"include\":\"#regexp-escape-character\"},{\"include\":\"#regexp-escape-unicode\"},{\"include\":\"#regexp-escape-catchall\"}]},\"regexp-double-one-line\":{\"begin\":\"\\\\\\\\b(([uU]r)|([bB]r)|(r[bB]?))(\\\\\")\",\"beginCaptures\":{\"2\":{\"name\":\"invalid.deprecated.prefix.python\"},\"3\":{\"name\":\"storage.type.string.python\"},\"4\":{\"name\":\"storage.type.string.python\"},\"5\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\")|(?<!\\\\\\\\\\\\\\\\)(\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.regexp.quoted.single.python\",\"patterns\":[{\"include\":\"#double-one-regexp-expression\"}]},\"regexp-double-three-line\":{\"begin\":\"\\\\\\\\b(([uU]r)|([bB]r)|(r[bB]?))(\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"2\":{\"name\":\"invalid.deprecated.prefix.python\"},\"3\":{\"name\":\"storage.type.string.python\"},\"4\":{\"name\":\"storage.type.string.python\"},\"5\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\"\\\\\"\\\\\")\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.regexp.quoted.multi.python\",\"patterns\":[{\"include\":\"#double-three-regexp-expression\"}]},\"regexp-escape-catchall\":{\"match\":\"\\\\\\\\\\\\\\\\(.|\\\\\\\\n)\",\"name\":\"constant.character.escape.regexp\"},\"regexp-escape-character\":{\"match\":\"\\\\\\\\\\\\\\\\(x[0-9A-Fa-f]{2}|0[0-7]{1,2}|[0-7]{3})\",\"name\":\"constant.character.escape.regexp\"},\"regexp-escape-sequence\":{\"patterns\":[{\"include\":\"#regexp-escape-special\"},{\"include\":\"#regexp-escape-character\"},{\"include\":\"#regexp-escape-unicode\"},{\"include\":\"#regexp-backreference-number\"},{\"include\":\"#regexp-escape-catchall\"}]},\"regexp-escape-special\":{\"match\":\"\\\\\\\\\\\\\\\\([AbBdDsSwWZ])\",\"name\":\"support.other.escape.special.regexp\"},\"regexp-escape-unicode\":{\"match\":\"\\\\\\\\\\\\\\\\(u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})\",\"name\":\"constant.character.unicode.regexp\"},\"regexp-flags\":{\"match\":\"\\\\\\\\(\\\\\\\\?[aiLmsux]+\\\\\\\\)\",\"name\":\"storage.modifier.flag.regexp\"},\"regexp-quantifier\":{\"match\":\"\\\\\\\\{(\\\\\\\\d+|\\\\\\\\d+,(\\\\\\\\d+)?|,\\\\\\\\d+)\\\\\\\\}\",\"name\":\"keyword.operator.quantifier.regexp\"},\"regexp-single-one-line\":{\"begin\":\"\\\\\\\\b(([uU]r)|([bB]r)|(r[bB]?))(\\\\\\\\')\",\"beginCaptures\":{\"2\":{\"name\":\"invalid.deprecated.prefix.python\"},\"3\":{\"name\":\"storage.type.string.python\"},\"4\":{\"name\":\"storage.type.string.python\"},\"5\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\')|(?<!\\\\\\\\\\\\\\\\)(\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.regexp.quoted.single.python\",\"patterns\":[{\"include\":\"#single-one-regexp-expression\"}]},\"regexp-single-three-line\":{\"begin\":\"\\\\\\\\b(([uU]r)|([bB]r)|(r[bB]?))(\\\\\\\\'\\\\\\\\'\\\\\\\\')\",\"beginCaptures\":{\"2\":{\"name\":\"invalid.deprecated.prefix.python\"},\"3\":{\"name\":\"storage.type.string.python\"},\"4\":{\"name\":\"storage.type.string.python\"},\"5\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\'\\\\\\\\'\\\\\\\\')\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.regexp.quoted.multi.python\",\"patterns\":[{\"include\":\"#single-three-regexp-expression\"}]},\"return-annotation\":{\"begin\":\"(->)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.annotation.result.python\"}},\"end\":\"(?=:)\",\"patterns\":[{\"include\":\"#expression\"}]},\"round-braces\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.begin.python\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.end.python\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"semicolon\":{\"patterns\":[{\"match\":\"\\\\\\\\;$\",\"name\":\"invalid.deprecated.semicolon.python\"}]},\"single-one-regexp-character-set\":{\"patterns\":[{\"match\":\"\\\\\\\\[\\\\\\\\^?\\\\\\\\](?!.*?\\\\\\\\])\"},{\"begin\":\"(\\\\\\\\[)(\\\\\\\\^)?(\\\\\\\\])?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.character.set.begin.regexp constant.other.set.regexp\"},\"2\":{\"name\":\"keyword.operator.negation.regexp\"},\"3\":{\"name\":\"constant.character.set.regexp\"}},\"end\":\"(\\\\\\\\]|(?=\\\\\\\\'))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.character.set.end.regexp constant.other.set.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.character.set.regexp\",\"patterns\":[{\"include\":\"#regexp-charecter-set-escapes\"},{\"match\":\"[^\\\\\\\\n]\",\"name\":\"constant.character.set.regexp\"}]}]},\"single-one-regexp-comments\":{\"begin\":\"\\\\\\\\(\\\\\\\\?#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.comment.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.comment.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"comment.regexp\",\"patterns\":[{\"include\":\"#codetags\"}]},\"single-one-regexp-conditional\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?\\\\\\\\((\\\\\\\\w+(?:\\\\\\\\s+[[:alnum:]]+)?|\\\\\\\\d+)\\\\\\\\)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.conditional.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.conditional.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-one-regexp-expression\"}]},\"single-one-regexp-expression\":{\"patterns\":[{\"include\":\"#regexp-base-expression\"},{\"include\":\"#single-one-regexp-character-set\"},{\"include\":\"#single-one-regexp-comments\"},{\"include\":\"#regexp-flags\"},{\"include\":\"#single-one-regexp-named-group\"},{\"include\":\"#regexp-backreference\"},{\"include\":\"#single-one-regexp-lookahead\"},{\"include\":\"#single-one-regexp-lookahead-negative\"},{\"include\":\"#single-one-regexp-lookbehind\"},{\"include\":\"#single-one-regexp-lookbehind-negative\"},{\"include\":\"#single-one-regexp-conditional\"},{\"include\":\"#single-one-regexp-parentheses-non-capturing\"},{\"include\":\"#single-one-regexp-parentheses\"}]},\"single-one-regexp-lookahead\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookahead.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookahead.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-one-regexp-expression\"}]},\"single-one-regexp-lookahead-negative\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?!\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookahead.negative.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookahead.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-one-regexp-expression\"}]},\"single-one-regexp-lookbehind\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?<=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookbehind.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookbehind.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-one-regexp-expression\"}]},\"single-one-regexp-lookbehind-negative\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?<!\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookbehind.negative.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookbehind.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-one-regexp-expression\"}]},\"single-one-regexp-named-group\":{\"begin\":\"(\\\\\\\\()(\\\\\\\\?P<\\\\\\\\w+(?:\\\\\\\\s+[[:alnum:]]+)?>)\",\"beginCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp\"},\"2\":{\"name\":\"entity.name.tag.named.group.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.named.regexp\",\"patterns\":[{\"include\":\"#single-one-regexp-expression\"}]},\"single-one-regexp-parentheses\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-one-regexp-expression\"}]},\"single-one-regexp-parentheses-non-capturing\":{\"begin\":\"\\\\\\\\(\\\\\\\\?:\",\"beginCaptures\":{\"0\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-one-regexp-expression\"}]},\"single-three-regexp-character-set\":{\"patterns\":[{\"match\":\"\\\\\\\\[\\\\\\\\^?\\\\\\\\](?!.*?\\\\\\\\])\"},{\"begin\":\"(\\\\\\\\[)(\\\\\\\\^)?(\\\\\\\\])?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.character.set.begin.regexp constant.other.set.regexp\"},\"2\":{\"name\":\"keyword.operator.negation.regexp\"},\"3\":{\"name\":\"constant.character.set.regexp\"}},\"end\":\"(\\\\\\\\]|(?=\\\\\\\\'\\\\\\\\'\\\\\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.character.set.end.regexp constant.other.set.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.character.set.regexp\",\"patterns\":[{\"include\":\"#regexp-charecter-set-escapes\"},{\"match\":\"[^\\\\\\\\n]\",\"name\":\"constant.character.set.regexp\"}]}]},\"single-three-regexp-comments\":{\"begin\":\"\\\\\\\\(\\\\\\\\?#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.comment.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'\\\\\\\\'\\\\\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.comment.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"comment.regexp\",\"patterns\":[{\"include\":\"#codetags\"}]},\"single-three-regexp-conditional\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?\\\\\\\\((\\\\\\\\w+(?:\\\\\\\\s+[[:alnum:]]+)?|\\\\\\\\d+)\\\\\\\\)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.conditional.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.conditional.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'\\\\\\\\'\\\\\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-three-regexp-expression\"},{\"include\":\"#comments-string-single-three\"}]},\"single-three-regexp-expression\":{\"patterns\":[{\"include\":\"#regexp-base-expression\"},{\"include\":\"#single-three-regexp-character-set\"},{\"include\":\"#single-three-regexp-comments\"},{\"include\":\"#regexp-flags\"},{\"include\":\"#single-three-regexp-named-group\"},{\"include\":\"#regexp-backreference\"},{\"include\":\"#single-three-regexp-lookahead\"},{\"include\":\"#single-three-regexp-lookahead-negative\"},{\"include\":\"#single-three-regexp-lookbehind\"},{\"include\":\"#single-three-regexp-lookbehind-negative\"},{\"include\":\"#single-three-regexp-conditional\"},{\"include\":\"#single-three-regexp-parentheses-non-capturing\"},{\"include\":\"#single-three-regexp-parentheses\"},{\"include\":\"#comments-string-single-three\"}]},\"single-three-regexp-lookahead\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookahead.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookahead.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'\\\\\\\\'\\\\\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-three-regexp-expression\"},{\"include\":\"#comments-string-single-three\"}]},\"single-three-regexp-lookahead-negative\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?!\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookahead.negative.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookahead.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'\\\\\\\\'\\\\\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-three-regexp-expression\"},{\"include\":\"#comments-string-single-three\"}]},\"single-three-regexp-lookbehind\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?<=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookbehind.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookbehind.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'\\\\\\\\'\\\\\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-three-regexp-expression\"},{\"include\":\"#comments-string-single-three\"}]},\"single-three-regexp-lookbehind-negative\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?<!\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookbehind.negative.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookbehind.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'\\\\\\\\'\\\\\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-three-regexp-expression\"},{\"include\":\"#comments-string-single-three\"}]},\"single-three-regexp-named-group\":{\"begin\":\"(\\\\\\\\()(\\\\\\\\?P<\\\\\\\\w+(?:\\\\\\\\s+[[:alnum:]]+)?>)\",\"beginCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp\"},\"2\":{\"name\":\"entity.name.tag.named.group.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'\\\\\\\\'\\\\\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.named.regexp\",\"patterns\":[{\"include\":\"#single-three-regexp-expression\"},{\"include\":\"#comments-string-single-three\"}]},\"single-three-regexp-parentheses\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'\\\\\\\\'\\\\\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-three-regexp-expression\"},{\"include\":\"#comments-string-single-three\"}]},\"single-three-regexp-parentheses-non-capturing\":{\"begin\":\"\\\\\\\\(\\\\\\\\?:\",\"beginCaptures\":{\"0\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'\\\\\\\\'\\\\\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-three-regexp-expression\"},{\"include\":\"#comments-string-single-three\"}]},\"special-names\":{\"match\":\"\\\\\\\\b(_*[[:upper:]][_\\\\\\\\d]*[[:upper:]])[[:upper:]\\\\\\\\d]*(_\\\\\\\\w*)?\\\\\\\\b\",\"name\":\"constant.other.caps.python\"},\"special-variables\":{\"captures\":{\"1\":{\"name\":\"variable.language.special.self.python\"},\"2\":{\"name\":\"variable.language.special.cls.python\"}},\"match\":\"\\\\\\\\b(?<!\\\\\\\\.)(?:(self)|(cls))\\\\\\\\b\"},\"statement\":{\"patterns\":[{\"include\":\"#import\"},{\"include\":\"#class-declaration\"},{\"include\":\"#function-declaration\"},{\"include\":\"#generator\"},{\"include\":\"#statement-keyword\"},{\"include\":\"#assignment-operator\"},{\"include\":\"#decorator\"},{\"include\":\"#semicolon\"}]},\"statement-keyword\":{\"patterns\":[{\"match\":\"\\\\\\\\b((async\\\\\\\\s+)?\\\\\\\\s*(def|fn))\\\\\\\\b\",\"name\":\"storage.type.function.python\"},{\"comment\":\"if \\`as\\` is eventually followed by \\`:\\` or line continuation\\\\nit's probably control flow like:\\\\n    with foo as bar, \\\\\\\\\\\\n         Foo as Bar:\\\\n      try:\\\\n        do_stuff()\\\\n      except Exception as e:\\\\n        pass\\\\n\",\"match\":\"\\\\\\\\b(?<!\\\\\\\\.)as\\\\\\\\b(?=.*[:\\\\\\\\\\\\\\\\])\",\"name\":\"keyword.control.flow.python\"},{\"comment\":\"other legal use of \\`as\\` is in an import\",\"match\":\"\\\\\\\\b(?<!\\\\\\\\.)as\\\\\\\\b\",\"name\":\"keyword.control.import.python\"},{\"match\":\"\\\\\\\\b(?<!\\\\\\\\.)(async|continue|del|assert|break|finally|for|from|elif|else|if|except|pass|raise|return|try|while|with)\\\\\\\\b\",\"name\":\"keyword.control.flow.python\"},{\"match\":\"\\\\\\\\b(?<!\\\\\\\\.)(global|nonlocal)\\\\\\\\b\",\"name\":\"storage.modifier.declaration.python\"},{\"match\":\"\\\\\\\\b(?<!\\\\\\\\.)(class|struct|trait)\\\\\\\\b\",\"name\":\"storage.type.class.python\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.flow.python\"}},\"match\":\"^\\\\\\\\s*(case|match)(?=\\\\\\\\s*([-+\\\\\\\\w\\\\\\\\d(\\\\\\\\[{'\\\\\":#]|$))\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.declaration.python\"},\"2\":{\"name\":\"variable.other.python\"}},\"match\":\"\\\\\\\\b(var|let|alias) \\\\\\\\s*([[:alpha:]_]\\\\\\\\w*)\\\\\\\\b\"}]},\"string\":{\"patterns\":[{\"include\":\"#string-quoted-multi-line\"},{\"include\":\"#string-quoted-single-line\"},{\"include\":\"#string-bin-quoted-multi-line\"},{\"include\":\"#string-bin-quoted-single-line\"},{\"include\":\"#string-raw-quoted-multi-line\"},{\"include\":\"#string-raw-quoted-single-line\"},{\"include\":\"#string-raw-bin-quoted-multi-line\"},{\"include\":\"#string-raw-bin-quoted-single-line\"},{\"include\":\"#fstring-fnorm-quoted-multi-line\"},{\"include\":\"#fstring-fnorm-quoted-single-line\"},{\"include\":\"#fstring-normf-quoted-multi-line\"},{\"include\":\"#fstring-normf-quoted-single-line\"},{\"include\":\"#fstring-raw-quoted-multi-line\"},{\"include\":\"#fstring-raw-quoted-single-line\"}]},\"string-bin-quoted-multi-line\":{\"begin\":\"(\\\\\\\\b[bB])('''|\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.python\"},\"2\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\2)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.quoted.binary.multi.python\",\"patterns\":[{\"include\":\"#string-entity\"}]},\"string-bin-quoted-single-line\":{\"begin\":\"(\\\\\\\\b[bB])((['\\\\\"]))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.python\"},\"2\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\2)|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.quoted.binary.single.python\",\"patterns\":[{\"include\":\"#string-entity\"}]},\"string-brace-formatting\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"},\"3\":{\"name\":\"storage.type.format.python\"},\"4\":{\"name\":\"storage.type.format.python\"}},\"match\":\"({{|}}|(?:{\\\\\\\\w*(\\\\\\\\.[[:alpha:]_]\\\\\\\\w*|\\\\\\\\[[^\\\\\\\\]'\\\\\"]+\\\\\\\\])*(![rsa])?(:\\\\\\\\w?[<>=^]?[-+ ]?\\\\\\\\#?\\\\\\\\d*,?(\\\\\\\\.\\\\\\\\d+)?[bcdeEfFgGnosxX%]?)?}))\",\"name\":\"meta.format.brace.python\"},{\"captures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"},\"3\":{\"name\":\"storage.type.format.python\"},\"4\":{\"name\":\"storage.type.format.python\"}},\"match\":\"({\\\\\\\\w*(\\\\\\\\.[[:alpha:]_]\\\\\\\\w*|\\\\\\\\[[^\\\\\\\\]'\\\\\"]+\\\\\\\\])*(![rsa])?(:)[^'\\\\\"{}\\\\\\\\n]*(?:\\\\\\\\{[^'\\\\\"}\\\\\\\\n]*?\\\\\\\\}[^'\\\\\"{}\\\\\\\\n]*)*})\",\"name\":\"meta.format.brace.python\"}]},\"string-consume-escape\":{\"match\":\"\\\\\\\\\\\\\\\\['\\\\\"\\\\\\\\n\\\\\\\\\\\\\\\\]\"},\"string-entity\":{\"patterns\":[{\"include\":\"#escape-sequence\"},{\"include\":\"#string-line-continuation\"},{\"include\":\"#string-formatting\"}]},\"string-formatting\":{\"captures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"}},\"match\":\"(%(\\\\\\\\([\\\\\\\\w\\\\\\\\s]*\\\\\\\\))?[-+#0 ]*(\\\\\\\\d+|\\\\\\\\*)?(\\\\\\\\.(\\\\\\\\d+|\\\\\\\\*))?([hlL])?[diouxXeEfFgGcrsab%])\",\"name\":\"meta.format.percent.python\"},\"string-line-continuation\":{\"match\":\"\\\\\\\\\\\\\\\\$\",\"name\":\"constant.language.python\"},\"string-mojo-code-block\":{\"begin\":\"^(\\\\\\\\s*\\\\\\\\\\`{3,})(mojo)$\",\"beginCaptures\":{\"1\":{\"name\":\"string.quoted.single.python\"},\"2\":{\"name\":\"string.quoted.single.python\"}},\"contentName\":\"source.mojo\",\"end\":\"^(\\\\\\\\1)$\",\"endCaptures\":{\"1\":{\"name\":\"string.quoted.single.python\"}},\"name\":\"meta.embedded.block.mojo\",\"patterns\":[{\"include\":\"source.mojo\"}]},\"string-multi-bad-brace1-formatting-raw\":{\"begin\":\"(?=\\\\\\\\{%(.*?(?!'''|\\\\\"\\\\\"\\\\\"))%\\\\\\\\})\",\"comment\":\"template using {% ... %}\",\"end\":\"(?='''|\\\\\"\\\\\"\\\\\")\",\"patterns\":[{\"include\":\"#string-consume-escape\"}]},\"string-multi-bad-brace1-formatting-unicode\":{\"begin\":\"(?=\\\\\\\\{%(.*?(?!'''|\\\\\"\\\\\"\\\\\"))%\\\\\\\\})\",\"comment\":\"template using {% ... %}\",\"end\":\"(?='''|\\\\\"\\\\\"\\\\\")\",\"patterns\":[{\"include\":\"#escape-sequence-unicode\"},{\"include\":\"#escape-sequence\"},{\"include\":\"#string-line-continuation\"}]},\"string-multi-bad-brace2-formatting-raw\":{\"begin\":\"(?!\\\\\\\\{\\\\\\\\{)(?=\\\\\\\\{(\\\\\\\\w*?(?!'''|\\\\\"\\\\\"\\\\\")[^!:\\\\\\\\.\\\\\\\\[}\\\\\\\\w]).*?(?!'''|\\\\\"\\\\\"\\\\\")\\\\\\\\})\",\"comment\":\"odd format or format-like syntax\",\"end\":\"(?='''|\\\\\"\\\\\"\\\\\")\",\"patterns\":[{\"include\":\"#string-consume-escape\"},{\"include\":\"#string-formatting\"}]},\"string-multi-bad-brace2-formatting-unicode\":{\"begin\":\"(?!\\\\\\\\{\\\\\\\\{)(?=\\\\\\\\{(\\\\\\\\w*?(?!'''|\\\\\"\\\\\"\\\\\")[^!:\\\\\\\\.\\\\\\\\[}\\\\\\\\w]).*?(?!'''|\\\\\"\\\\\"\\\\\")\\\\\\\\})\",\"comment\":\"odd format or format-like syntax\",\"end\":\"(?='''|\\\\\"\\\\\"\\\\\")\",\"patterns\":[{\"include\":\"#escape-sequence-unicode\"},{\"include\":\"#string-entity\"}]},\"string-quoted-multi-line\":{\"begin\":\"(?:\\\\\\\\b([rR])(?=[uU]))?([uU])?('''|\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"invalid.illegal.prefix.python\"},\"2\":{\"name\":\"storage.type.string.python\"},\"3\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\3)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.quoted.multi.python\",\"patterns\":[{\"include\":\"#string-multi-bad-brace1-formatting-unicode\"},{\"include\":\"#string-multi-bad-brace2-formatting-unicode\"},{\"include\":\"#string-unicode-guts\"}]},\"string-quoted-single-line\":{\"begin\":\"(?:\\\\\\\\b([rR])(?=[uU]))?([uU])?((['\\\\\"]))\",\"beginCaptures\":{\"1\":{\"name\":\"invalid.illegal.prefix.python\"},\"2\":{\"name\":\"storage.type.string.python\"},\"3\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\3)|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.quoted.single.python\",\"patterns\":[{\"include\":\"#string-single-bad-brace1-formatting-unicode\"},{\"include\":\"#string-single-bad-brace2-formatting-unicode\"},{\"include\":\"#string-unicode-guts\"}]},\"string-raw-bin-guts\":{\"patterns\":[{\"include\":\"#string-consume-escape\"},{\"include\":\"#string-formatting\"}]},\"string-raw-bin-quoted-multi-line\":{\"begin\":\"(\\\\\\\\b(?:R[bB]|[bB]R))('''|\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.python\"},\"2\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\2)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.quoted.raw.binary.multi.python\",\"patterns\":[{\"include\":\"#string-raw-bin-guts\"}]},\"string-raw-bin-quoted-single-line\":{\"begin\":\"(\\\\\\\\b(?:R[bB]|[bB]R))((['\\\\\"]))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.python\"},\"2\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\2)|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.quoted.raw.binary.single.python\",\"patterns\":[{\"include\":\"#string-raw-bin-guts\"}]},\"string-raw-guts\":{\"patterns\":[{\"include\":\"#string-consume-escape\"},{\"include\":\"#string-formatting\"},{\"include\":\"#string-brace-formatting\"}]},\"string-raw-quoted-multi-line\":{\"begin\":\"\\\\\\\\b(([uU]R)|(R))('''|\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"2\":{\"name\":\"invalid.deprecated.prefix.python\"},\"3\":{\"name\":\"storage.type.string.python\"},\"4\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\4)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.quoted.raw.multi.python\",\"patterns\":[{\"include\":\"#string-multi-bad-brace1-formatting-raw\"},{\"include\":\"#string-multi-bad-brace2-formatting-raw\"},{\"include\":\"#string-raw-guts\"}]},\"string-raw-quoted-single-line\":{\"begin\":\"\\\\\\\\b(([uU]R)|(R))((['\\\\\"]))\",\"beginCaptures\":{\"2\":{\"name\":\"invalid.deprecated.prefix.python\"},\"3\":{\"name\":\"storage.type.string.python\"},\"4\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\4)|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.quoted.raw.single.python\",\"patterns\":[{\"include\":\"#string-single-bad-brace1-formatting-raw\"},{\"include\":\"#string-single-bad-brace2-formatting-raw\"},{\"include\":\"#string-raw-guts\"}]},\"string-single-bad-brace1-formatting-raw\":{\"begin\":\"(?=\\\\\\\\{%(.*?(?!(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)))%\\\\\\\\})\",\"comment\":\"template using {% ... %}\",\"end\":\"(?=(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"patterns\":[{\"include\":\"#string-consume-escape\"}]},\"string-single-bad-brace1-formatting-unicode\":{\"begin\":\"(?=\\\\\\\\{%(.*?(?!(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)))%\\\\\\\\})\",\"comment\":\"template using {% ... %}\",\"end\":\"(?=(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"patterns\":[{\"include\":\"#escape-sequence-unicode\"},{\"include\":\"#escape-sequence\"},{\"include\":\"#string-line-continuation\"}]},\"string-single-bad-brace2-formatting-raw\":{\"begin\":\"(?!\\\\\\\\{\\\\\\\\{)(?=\\\\\\\\{(\\\\\\\\w*?(?!(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))[^!:\\\\\\\\.\\\\\\\\[}\\\\\\\\w]).*?(?!(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\\\\\\\\})\",\"comment\":\"odd format or format-like syntax\",\"end\":\"(?=(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"patterns\":[{\"include\":\"#string-consume-escape\"},{\"include\":\"#string-formatting\"}]},\"string-single-bad-brace2-formatting-unicode\":{\"begin\":\"(?!\\\\\\\\{\\\\\\\\{)(?=\\\\\\\\{(\\\\\\\\w*?(?!(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))[^!:\\\\\\\\.\\\\\\\\[}\\\\\\\\w]).*?(?!(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\\\\\\\\})\",\"comment\":\"odd format or format-like syntax\",\"end\":\"(?=(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"patterns\":[{\"include\":\"#escape-sequence-unicode\"},{\"include\":\"#string-entity\"}]},\"string-unicode-guts\":{\"patterns\":[{\"include\":\"#string-mojo-code-block\"},{\"include\":\"#escape-sequence-unicode\"},{\"include\":\"#string-entity\"},{\"include\":\"#string-brace-formatting\"}]}},\"scopeName\":\"source.mojo\"}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/UIAJJxZW.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Markdown\",\"name\":\"markdown\",\"patterns\":[{\"include\":\"#frontMatter\"},{\"include\":\"#block\"}],\"repository\":{\"ampersand\":{\"comment\":\"Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.\",\"match\":\"&(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)\",\"name\":\"meta.other.valid-ampersand.markdown\"},\"block\":{\"patterns\":[{\"include\":\"#separator\"},{\"include\":\"#heading\"},{\"include\":\"#blockquote\"},{\"include\":\"#lists\"},{\"include\":\"#fenced_code_block\"},{\"include\":\"#raw_block\"},{\"include\":\"#link-def\"},{\"include\":\"#html\"},{\"include\":\"#table\"},{\"include\":\"#paragraph\"}]},\"blockquote\":{\"begin\":\"(^|\\\\\\\\G)[ ]{0,3}(>) ?\",\"captures\":{\"2\":{\"name\":\"punctuation.definition.quote.begin.markdown\"}},\"name\":\"markup.quote.markdown\",\"patterns\":[{\"include\":\"#block\"}],\"while\":\"(^|\\\\\\\\G)\\\\\\\\s*(>) ?\"},\"bold\":{\"begin\":\"(?<open>(\\\\\\\\*\\\\\\\\*(?=\\\\\\\\w)|(?<!\\\\\\\\w)\\\\\\\\*\\\\\\\\*|(?<!\\\\\\\\w)\\\\\\\\b__))(?=\\\\\\\\S)(?=(<[^>]*+>|(?<raw>`+)([^`]|(?!(?<!`)\\\\\\\\k<raw>(?!`))`)*+\\\\\\\\k<raw>|\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\\\`*_{}\\\\\\\\[\\\\\\\\]()#.!+\\\\\\\\->]?+|\\\\\\\\[((?<square>[^\\\\\\\\[\\\\\\\\]\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.|\\\\\\\\[\\\\\\\\g<square>*+\\\\\\\\])*+\\\\\\\\](([ ]?\\\\\\\\[[^\\\\\\\\]]*+\\\\\\\\])|(\\\\\\\\([ \\\\\\\\t]*+<?(.*?)>?[ \\\\\\\\t]*+((?<title>[\\'\\\\\"])(.*?)\\\\\\\\k<title>)?\\\\\\\\))))|(?!(?<=\\\\\\\\S)\\\\\\\\k<open>).)++(?<=\\\\\\\\S)(?=__\\\\\\\\b|\\\\\\\\*\\\\\\\\*)\\\\\\\\k<open>)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.bold.markdown\"}},\"end\":\"(?<=\\\\\\\\S)(\\\\\\\\1)\",\"name\":\"markup.bold.markdown\",\"patterns\":[{\"applyEndPatternLast\":1,\"begin\":\"(?=<[^>]*?>)\",\"end\":\"(?<=>)\",\"patterns\":[{\"include\":\"text.html.derivative\"}]},{\"include\":\"#escape\"},{\"include\":\"#ampersand\"},{\"include\":\"#bracket\"},{\"include\":\"#raw\"},{\"include\":\"#bold\"},{\"include\":\"#italic\"},{\"include\":\"#image-inline\"},{\"include\":\"#link-inline\"},{\"include\":\"#link-inet\"},{\"include\":\"#link-email\"},{\"include\":\"#image-ref\"},{\"include\":\"#link-ref-literal\"},{\"include\":\"#link-ref\"},{\"include\":\"#link-ref-shortcut\"},{\"include\":\"#strikethrough\"}]},\"bracket\":{\"comment\":\"Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.\",\"match\":\"<(?![a-zA-Z/?\\\\\\\\$!])\",\"name\":\"meta.other.valid-bracket.markdown\"},\"escape\":{\"match\":\"\\\\\\\\\\\\\\\\[-`*_#+.!(){}\\\\\\\\[\\\\\\\\]\\\\\\\\\\\\\\\\>]\",\"name\":\"constant.character.escape.markdown\"},\"fenced_code_block\":{\"patterns\":[{\"include\":\"#fenced_code_block_css\"},{\"include\":\"#fenced_code_block_basic\"},{\"include\":\"#fenced_code_block_ini\"},{\"include\":\"#fenced_code_block_java\"},{\"include\":\"#fenced_code_block_lua\"},{\"include\":\"#fenced_code_block_makefile\"},{\"include\":\"#fenced_code_block_perl\"},{\"include\":\"#fenced_code_block_r\"},{\"include\":\"#fenced_code_block_ruby\"},{\"include\":\"#fenced_code_block_php\"},{\"include\":\"#fenced_code_block_sql\"},{\"include\":\"#fenced_code_block_vs_net\"},{\"include\":\"#fenced_code_block_xml\"},{\"include\":\"#fenced_code_block_xsl\"},{\"include\":\"#fenced_code_block_yaml\"},{\"include\":\"#fenced_code_block_dosbatch\"},{\"include\":\"#fenced_code_block_clojure\"},{\"include\":\"#fenced_code_block_coffee\"},{\"include\":\"#fenced_code_block_c\"},{\"include\":\"#fenced_code_block_cpp\"},{\"include\":\"#fenced_code_block_diff\"},{\"include\":\"#fenced_code_block_dockerfile\"},{\"include\":\"#fenced_code_block_git_commit\"},{\"include\":\"#fenced_code_block_git_rebase\"},{\"include\":\"#fenced_code_block_go\"},{\"include\":\"#fenced_code_block_groovy\"},{\"include\":\"#fenced_code_block_pug\"},{\"include\":\"#fenced_code_block_js\"},{\"include\":\"#fenced_code_block_js_regexp\"},{\"include\":\"#fenced_code_block_json\"},{\"include\":\"#fenced_code_block_jsonc\"},{\"include\":\"#fenced_code_block_less\"},{\"include\":\"#fenced_code_block_objc\"},{\"include\":\"#fenced_code_block_swift\"},{\"include\":\"#fenced_code_block_scss\"},{\"include\":\"#fenced_code_block_perl6\"},{\"include\":\"#fenced_code_block_powershell\"},{\"include\":\"#fenced_code_block_python\"},{\"include\":\"#fenced_code_block_julia\"},{\"include\":\"#fenced_code_block_regexp_python\"},{\"include\":\"#fenced_code_block_rust\"},{\"include\":\"#fenced_code_block_scala\"},{\"include\":\"#fenced_code_block_shell\"},{\"include\":\"#fenced_code_block_ts\"},{\"include\":\"#fenced_code_block_tsx\"},{\"include\":\"#fenced_code_block_csharp\"},{\"include\":\"#fenced_code_block_fsharp\"},{\"include\":\"#fenced_code_block_dart\"},{\"include\":\"#fenced_code_block_handlebars\"},{\"include\":\"#fenced_code_block_markdown\"},{\"include\":\"#fenced_code_block_log\"},{\"include\":\"#fenced_code_block_erlang\"},{\"include\":\"#fenced_code_block_elixir\"},{\"include\":\"#fenced_code_block_latex\"},{\"include\":\"#fenced_code_block_bibtex\"},{\"include\":\"#fenced_code_block_twig\"},{\"include\":\"#fenced_code_block_unknown\"}]},\"fenced_code_block_basic\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(html|htm|shtml|xhtml|inc|tmpl|tpl)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.html\",\"patterns\":[{\"include\":\"text.html.basic\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_bibtex\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(bibtex)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.bibtex\",\"patterns\":[{\"include\":\"text.bibtex\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_c\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(c|h)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.c\",\"patterns\":[{\"include\":\"source.c\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_clojure\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(clj|cljs|clojure)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.clojure\",\"patterns\":[{\"include\":\"source.clojure\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_coffee\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(coffee|Cakefile|coffee.erb)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.coffee\",\"patterns\":[{\"include\":\"source.coffee\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_cpp\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(cpp|c\\\\\\\\+\\\\\\\\+|cxx)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.cpp source.cpp\",\"patterns\":[{\"include\":\"source.cpp\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_csharp\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(cs|csharp|c#)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.csharp\",\"patterns\":[{\"include\":\"source.cs\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_css\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(css|css.erb)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.css\",\"patterns\":[{\"include\":\"source.css\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_dart\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(dart)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.dart\",\"patterns\":[{\"include\":\"source.dart\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_diff\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(patch|diff|rej)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.diff\",\"patterns\":[{\"include\":\"source.diff\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_dockerfile\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(dockerfile|Dockerfile)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.dockerfile\",\"patterns\":[{\"include\":\"source.dockerfile\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_dosbatch\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(bat|batch)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.dosbatch\",\"patterns\":[{\"include\":\"source.batchfile\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_elixir\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(elixir)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.elixir\",\"patterns\":[{\"include\":\"source.elixir\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_erlang\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(erlang)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.erlang\",\"patterns\":[{\"include\":\"source.erlang\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_fsharp\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(fs|fsharp|f#)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.fsharp\",\"patterns\":[{\"include\":\"source.fsharp\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_git_commit\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(COMMIT_EDITMSG|MERGE_MSG)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.git_commit\",\"patterns\":[{\"include\":\"text.git-commit\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_git_rebase\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(git-rebase-todo)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.git_rebase\",\"patterns\":[{\"include\":\"text.git-rebase\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_go\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(go|golang)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.go\",\"patterns\":[{\"include\":\"source.go\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_groovy\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(groovy|gvy)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.groovy\",\"patterns\":[{\"include\":\"source.groovy\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_handlebars\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(handlebars|hbs)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.handlebars\",\"patterns\":[{\"include\":\"text.html.handlebars\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_ini\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(ini|conf)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.ini\",\"patterns\":[{\"include\":\"source.ini\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_java\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(java|bsh)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.java\",\"patterns\":[{\"include\":\"source.java\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_js\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(js|jsx|javascript|es6|mjs|cjs|dataviewjs|\\\\\\\\{\\\\\\\\.js.+?\\\\\\\\})((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.javascript\",\"patterns\":[{\"include\":\"source.js\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_js_regexp\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(regexp)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.js_regexp\",\"patterns\":[{\"include\":\"source.js.regexp\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_json\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(json|json5|sublime-settings|sublime-menu|sublime-keymap|sublime-mousemap|sublime-theme|sublime-build|sublime-project|sublime-completions)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.json\",\"patterns\":[{\"include\":\"source.json\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_jsonc\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(jsonc)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.jsonc\",\"patterns\":[{\"include\":\"source.json.comments\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_julia\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(julia|\\\\\\\\{\\\\\\\\.julia.+?\\\\\\\\})((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.julia\",\"patterns\":[{\"include\":\"source.julia\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_latex\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(latex|tex)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.latex\",\"patterns\":[{\"include\":\"text.tex.latex\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_less\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(less)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.less\",\"patterns\":[{\"include\":\"source.css.less\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_log\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(log)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.log\",\"patterns\":[{\"include\":\"text.log\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_lua\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(lua)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.lua\",\"patterns\":[{\"include\":\"source.lua\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_makefile\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(Makefile|makefile|GNUmakefile|OCamlMakefile)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.makefile\",\"patterns\":[{\"include\":\"source.makefile\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_markdown\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(markdown|md)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.markdown\",\"patterns\":[{\"include\":\"text.html.markdown\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_objc\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(objectivec|objective-c|mm|objc|obj-c|m|h)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.objc\",\"patterns\":[{\"include\":\"source.objc\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_perl\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(perl|pl|pm|pod|t|PL|psgi|vcl)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.perl\",\"patterns\":[{\"include\":\"source.perl\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_perl6\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(perl6|p6|pl6|pm6|nqp)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.perl6\",\"patterns\":[{\"include\":\"source.perl.6\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_php\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(php|php3|php4|php5|phpt|phtml|aw|ctp)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.php\",\"patterns\":[{\"include\":\"text.html.basic\"},{\"include\":\"source.php\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_powershell\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(powershell|ps1|psm1|psd1|pwsh)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.powershell\",\"patterns\":[{\"include\":\"source.powershell\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_pug\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(jade|pug)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.pug\",\"patterns\":[{\"include\":\"text.pug\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_python\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(python|py|py3|rpy|pyw|cpy|SConstruct|Sconstruct|sconstruct|SConscript|gyp|gypi|\\\\\\\\{\\\\\\\\.python.+?\\\\\\\\})((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.python\",\"patterns\":[{\"include\":\"source.python\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_r\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(R|r|s|S|Rprofile|\\\\\\\\{\\\\\\\\.r.+?\\\\\\\\})((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.r\",\"patterns\":[{\"include\":\"source.r\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_regexp_python\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(re)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.regexp_python\",\"patterns\":[{\"include\":\"source.regexp.python\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_ruby\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(ruby|rb|rbx|rjs|Rakefile|rake|cgi|fcgi|gemspec|irbrc|Capfile|ru|prawn|Cheffile|Gemfile|Guardfile|Hobofile|Vagrantfile|Appraisals|Rantfile|Berksfile|Berksfile.lock|Thorfile|Puppetfile)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.ruby\",\"patterns\":[{\"include\":\"source.ruby\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_rust\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(rust|rs|\\\\\\\\{\\\\\\\\.rust.+?\\\\\\\\})((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.rust\",\"patterns\":[{\"include\":\"source.rust\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_scala\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(scala|sbt)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.scala\",\"patterns\":[{\"include\":\"source.scala\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_scss\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(scss)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.scss\",\"patterns\":[{\"include\":\"source.css.scss\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_shell\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(shell|sh|bash|zsh|bashrc|bash_profile|bash_login|profile|bash_logout|.textmate_init|\\\\\\\\{\\\\\\\\.bash.+?\\\\\\\\})((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.shellscript\",\"patterns\":[{\"include\":\"source.shell\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_sql\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(sql|ddl|dml)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.sql\",\"patterns\":[{\"include\":\"source.sql\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_swift\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(swift)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.swift\",\"patterns\":[{\"include\":\"source.swift\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_ts\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(typescript|ts)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.typescript\",\"patterns\":[{\"include\":\"source.ts\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_tsx\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(tsx)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.typescriptreact\",\"patterns\":[{\"include\":\"source.tsx\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_twig\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(twig)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.twig\",\"patterns\":[{\"include\":\"source.twig\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_unknown\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?=([^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\"},\"fenced_code_block_vs_net\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(vb)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.vs_net\",\"patterns\":[{\"include\":\"source.asp.vb.net\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_xml\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(xml|xsd|tld|jsp|pt|cpt|dtml|rss|opml)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.xml\",\"patterns\":[{\"include\":\"text.xml\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_xsl\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(xsl|xslt)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.xsl\",\"patterns\":[{\"include\":\"text.xml.xsl\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"fenced_code_block_yaml\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(`{3,}|~{3,})\\\\\\\\s*(?i:(yaml|yml)((\\\\\\\\s+|:|,|\\\\\\\\{|\\\\\\\\?)[^`]*)?$)\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"},\"4\":{\"name\":\"fenced_code.block.language.markdown\"},\"5\":{\"name\":\"fenced_code.block.language.attributes.markdown\"}},\"end\":\"(^|\\\\\\\\G)(\\\\\\\\2|\\\\\\\\s{0,3})(\\\\\\\\3)\\\\\\\\s*$\",\"endCaptures\":{\"3\":{\"name\":\"punctuation.definition.markdown\"}},\"name\":\"markup.fenced_code.block.markdown\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.block.yaml\",\"patterns\":[{\"include\":\"source.yaml\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*([`~]{3,})\\\\\\\\s*$)\"}]},\"frontMatter\":{\"applyEndPatternLast\":1,\"begin\":\"\\\\\\\\A(?=(-{3,}))\",\"end\":\"^ {,3}\\\\\\\\1-*[ \\\\\\\\t]*$|^[ \\\\\\\\t]*\\\\\\\\.{3}$\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.frontmatter\"}},\"patterns\":[{\"begin\":\"\\\\\\\\A(-{3,})(.*)$\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.begin.frontmatter\"},\"2\":{\"name\":\"comment.frontmatter\"}},\"contentName\":\"meta.embedded.block.frontmatter\",\"patterns\":[{\"include\":\"source.yaml\"}],\"while\":\"^(?! {,3}\\\\\\\\1-*[ \\\\\\\\t]*$|[ \\\\\\\\t]*\\\\\\\\.{3}$)\"}]},\"heading\":{\"captures\":{\"1\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.heading.markdown\"},\"2\":{\"name\":\"entity.name.section.markdown\",\"patterns\":[{\"include\":\"#inline\"},{\"include\":\"text.html.derivative\"}]},\"3\":{\"name\":\"punctuation.definition.heading.markdown\"}},\"match\":\"(#{6})\\\\\\\\s+(.*?)(?:\\\\\\\\s+(#+))?\\\\\\\\s*$\",\"name\":\"heading.6.markdown\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.heading.markdown\"},\"2\":{\"name\":\"entity.name.section.markdown\",\"patterns\":[{\"include\":\"#inline\"},{\"include\":\"text.html.derivative\"}]},\"3\":{\"name\":\"punctuation.definition.heading.markdown\"}},\"match\":\"(#{5})\\\\\\\\s+(.*?)(?:\\\\\\\\s+(#+))?\\\\\\\\s*$\",\"name\":\"heading.5.markdown\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.heading.markdown\"},\"2\":{\"name\":\"entity.name.section.markdown\",\"patterns\":[{\"include\":\"#inline\"},{\"include\":\"text.html.derivative\"}]},\"3\":{\"name\":\"punctuation.definition.heading.markdown\"}},\"match\":\"(#{4})\\\\\\\\s+(.*?)(?:\\\\\\\\s+(#+))?\\\\\\\\s*$\",\"name\":\"heading.4.markdown\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.heading.markdown\"},\"2\":{\"name\":\"entity.name.section.markdown\",\"patterns\":[{\"include\":\"#inline\"},{\"include\":\"text.html.derivative\"}]},\"3\":{\"name\":\"punctuation.definition.heading.markdown\"}},\"match\":\"(#{3})\\\\\\\\s+(.*?)(?:\\\\\\\\s+(#+))?\\\\\\\\s*$\",\"name\":\"heading.3.markdown\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.heading.markdown\"},\"2\":{\"name\":\"entity.name.section.markdown\",\"patterns\":[{\"include\":\"#inline\"},{\"include\":\"text.html.derivative\"}]},\"3\":{\"name\":\"punctuation.definition.heading.markdown\"}},\"match\":\"(#{2})\\\\\\\\s+(.*?)(?:\\\\\\\\s+(#+))?\\\\\\\\s*$\",\"name\":\"heading.2.markdown\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.heading.markdown\"},\"2\":{\"name\":\"entity.name.section.markdown\",\"patterns\":[{\"include\":\"#inline\"},{\"include\":\"text.html.derivative\"}]},\"3\":{\"name\":\"punctuation.definition.heading.markdown\"}},\"match\":\"(#{1})\\\\\\\\s+(.*?)(?:\\\\\\\\s+(#+))?\\\\\\\\s*$\",\"name\":\"heading.1.markdown\"}]}},\"match\":\"(?:^|\\\\\\\\G)[ ]{0,3}(#{1,6}\\\\\\\\s+(.*?)(\\\\\\\\s+#{1,6})?\\\\\\\\s*)$\",\"name\":\"markup.heading.markdown\"},\"heading-setext\":{\"patterns\":[{\"match\":\"^(={3,})(?=[ \\\\\\\\t]*$\\\\\\\\n?)\",\"name\":\"markup.heading.setext.1.markdown\"},{\"match\":\"^(-{3,})(?=[ \\\\\\\\t]*$\\\\\\\\n?)\",\"name\":\"markup.heading.setext.2.markdown\"}]},\"html\":{\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)\\\\\\\\s*(<!--)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.html\"},\"2\":{\"name\":\"punctuation.definition.comment.html\"}},\"end\":\"(-->)\",\"name\":\"comment.block.html\"},{\"begin\":\"(?i)(^|\\\\\\\\G)\\\\\\\\s*(?=<(script|style|pre)(\\\\\\\\s|$|>)(?!.*?</(script|style|pre)>))\",\"end\":\"(?i)(.*)((</)(script|style|pre)(>))\",\"endCaptures\":{\"1\":{\"patterns\":[{\"include\":\"text.html.derivative\"}]},\"2\":{\"name\":\"meta.tag.structure.$4.end.html\"},\"3\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"4\":{\"name\":\"entity.name.tag.html\"},\"5\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"patterns\":[{\"begin\":\"(\\\\\\\\s*|$)\",\"patterns\":[{\"include\":\"text.html.derivative\"}],\"while\":\"(?i)^(?!.*</(script|style|pre)>)\"}]},{\"begin\":\"(?i)(^|\\\\\\\\G)\\\\\\\\s*(?=</?[a-zA-Z]+[^\\\\\\\\s/&gt;]*(\\\\\\\\s|$|/?>))\",\"patterns\":[{\"include\":\"text.html.derivative\"}],\"while\":\"^(?!\\\\\\\\s*$)\"},{\"begin\":\"(^|\\\\\\\\G)\\\\\\\\s*(?=(<[a-zA-Z0-9\\\\\\\\-](/?>|\\\\\\\\s.*?>)|</[a-zA-Z0-9\\\\\\\\-]>)\\\\\\\\s*$)\",\"patterns\":[{\"include\":\"text.html.derivative\"}],\"while\":\"^(?!\\\\\\\\s*$)\"}]},\"image-inline\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.link.description.begin.markdown\"},\"2\":{\"name\":\"string.other.link.description.markdown\"},\"4\":{\"name\":\"punctuation.definition.link.description.end.markdown\"},\"5\":{\"name\":\"punctuation.definition.metadata.markdown\"},\"7\":{\"name\":\"punctuation.definition.link.markdown\"},\"8\":{\"name\":\"markup.underline.link.image.markdown\"},\"9\":{\"name\":\"punctuation.definition.link.markdown\"},\"10\":{\"name\":\"markup.underline.link.image.markdown\"},\"12\":{\"name\":\"string.other.link.description.title.markdown\"},\"13\":{\"name\":\"punctuation.definition.string.begin.markdown\"},\"14\":{\"name\":\"punctuation.definition.string.end.markdown\"},\"15\":{\"name\":\"string.other.link.description.title.markdown\"},\"16\":{\"name\":\"punctuation.definition.string.begin.markdown\"},\"17\":{\"name\":\"punctuation.definition.string.end.markdown\"},\"18\":{\"name\":\"string.other.link.description.title.markdown\"},\"19\":{\"name\":\"punctuation.definition.string.begin.markdown\"},\"20\":{\"name\":\"punctuation.definition.string.end.markdown\"},\"21\":{\"name\":\"punctuation.definition.metadata.markdown\"}},\"match\":\"(\\\\\\\\!\\\\\\\\[)((?<square>[^\\\\\\\\[\\\\\\\\]\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.|\\\\\\\\[\\\\\\\\g<square>*+\\\\\\\\])*+)(\\\\\\\\])(\\\\\\\\()[ \\\\\\\\t]*((<)((?:\\\\\\\\\\\\\\\\[<>]|[^<>\\\\\\\\n])*)(>)|((?<url>(?>[^\\\\\\\\s()]+)|\\\\\\\\(\\\\\\\\g<url>*\\\\\\\\))*))[ \\\\\\\\t]*(?:((\\\\\\\\().+?(\\\\\\\\)))|((\\\\\").+?(\\\\\"))|((\\').+?(\\')))?\\\\\\\\s*(\\\\\\\\))\",\"name\":\"meta.image.inline.markdown\"},\"image-ref\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.link.description.begin.markdown\"},\"2\":{\"name\":\"string.other.link.description.markdown\"},\"4\":{\"name\":\"punctuation.definition.link.description.end.markdown\"},\"5\":{\"name\":\"punctuation.definition.constant.markdown\"},\"6\":{\"name\":\"constant.other.reference.link.markdown\"},\"7\":{\"name\":\"punctuation.definition.constant.markdown\"}},\"match\":\"(\\\\\\\\!\\\\\\\\[)((?<square>[^\\\\\\\\[\\\\\\\\]\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.|\\\\\\\\[\\\\\\\\g<square>*+\\\\\\\\])*+)(\\\\\\\\])[ ]?(\\\\\\\\[)(.*?)(\\\\\\\\])\",\"name\":\"meta.image.reference.markdown\"},\"inline\":{\"patterns\":[{\"include\":\"#ampersand\"},{\"include\":\"#bracket\"},{\"include\":\"#bold\"},{\"include\":\"#italic\"},{\"include\":\"#raw\"},{\"include\":\"#strikethrough\"},{\"include\":\"#escape\"},{\"include\":\"#image-inline\"},{\"include\":\"#image-ref\"},{\"include\":\"#link-email\"},{\"include\":\"#link-inet\"},{\"include\":\"#link-inline\"},{\"include\":\"#link-ref\"},{\"include\":\"#link-ref-literal\"},{\"include\":\"#link-ref-shortcut\"}]},\"italic\":{\"begin\":\"(?<open>(\\\\\\\\*(?=\\\\\\\\w)|(?<!\\\\\\\\w)\\\\\\\\*|(?<!\\\\\\\\w)\\\\\\\\b_))(?=\\\\\\\\S)(?=(<[^>]*+>|(?<raw>`+)([^`]|(?!(?<!`)\\\\\\\\k<raw>(?!`))`)*+\\\\\\\\k<raw>|\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\\\`*_{}\\\\\\\\[\\\\\\\\]()#.!+\\\\\\\\->]?+|\\\\\\\\[((?<square>[^\\\\\\\\[\\\\\\\\]\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.|\\\\\\\\[\\\\\\\\g<square>*+\\\\\\\\])*+\\\\\\\\](([ ]?\\\\\\\\[[^\\\\\\\\]]*+\\\\\\\\])|(\\\\\\\\([ \\\\\\\\t]*+<?(.*?)>?[ \\\\\\\\t]*+((?<title>[\\'\\\\\"])(.*?)\\\\\\\\k<title>)?\\\\\\\\))))|\\\\\\\\k<open>\\\\\\\\k<open>|(?!(?<=\\\\\\\\S)\\\\\\\\k<open>).)++(?<=\\\\\\\\S)(?=_\\\\\\\\b|\\\\\\\\*)\\\\\\\\k<open>)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.italic.markdown\"}},\"end\":\"(?<=\\\\\\\\S)(\\\\\\\\1)((?!\\\\\\\\1)|(?=\\\\\\\\1\\\\\\\\1))\",\"name\":\"markup.italic.markdown\",\"patterns\":[{\"applyEndPatternLast\":1,\"begin\":\"(?=<[^>]*?>)\",\"end\":\"(?<=>)\",\"patterns\":[{\"include\":\"text.html.derivative\"}]},{\"include\":\"#escape\"},{\"include\":\"#ampersand\"},{\"include\":\"#bracket\"},{\"include\":\"#raw\"},{\"include\":\"#bold\"},{\"include\":\"#image-inline\"},{\"include\":\"#link-inline\"},{\"include\":\"#link-inet\"},{\"include\":\"#link-email\"},{\"include\":\"#image-ref\"},{\"include\":\"#link-ref-literal\"},{\"include\":\"#link-ref\"},{\"include\":\"#link-ref-shortcut\"},{\"include\":\"#strikethrough\"}]},\"link-def\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.constant.markdown\"},\"2\":{\"name\":\"constant.other.reference.link.markdown\"},\"3\":{\"name\":\"punctuation.definition.constant.markdown\"},\"4\":{\"name\":\"punctuation.separator.key-value.markdown\"},\"5\":{\"name\":\"punctuation.definition.link.markdown\"},\"6\":{\"name\":\"markup.underline.link.markdown\"},\"7\":{\"name\":\"punctuation.definition.link.markdown\"},\"8\":{\"name\":\"markup.underline.link.markdown\"},\"9\":{\"name\":\"string.other.link.description.title.markdown\"},\"10\":{\"name\":\"punctuation.definition.string.begin.markdown\"},\"11\":{\"name\":\"punctuation.definition.string.end.markdown\"},\"12\":{\"name\":\"string.other.link.description.title.markdown\"},\"13\":{\"name\":\"punctuation.definition.string.begin.markdown\"},\"14\":{\"name\":\"punctuation.definition.string.end.markdown\"},\"15\":{\"name\":\"string.other.link.description.title.markdown\"},\"16\":{\"name\":\"punctuation.definition.string.begin.markdown\"},\"17\":{\"name\":\"punctuation.definition.string.end.markdown\"}},\"match\":\"\\\\\\\\s*(\\\\\\\\[)([^]]+?)(\\\\\\\\])(:)[ \\\\\\\\t]*(?:(<)((?:\\\\\\\\\\\\\\\\[<>]|[^<>\\\\\\\\n])*)(>)|(\\\\\\\\S+?))[ \\\\\\\\t]*(?:((\\\\\\\\().+?(\\\\\\\\)))|((\\\\\").+?(\\\\\"))|((\\').+?(\\')))?\\\\\\\\s*$\",\"name\":\"meta.link.reference.def.markdown\"},\"link-email\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.link.markdown\"},\"2\":{\"name\":\"markup.underline.link.markdown\"},\"4\":{\"name\":\"punctuation.definition.link.markdown\"}},\"match\":\"(<)((?:mailto:)?[a-zA-Z0-9.!#$%&\\'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\\\\\\\.[a-zA-Z0-9-]+)*)(>)\",\"name\":\"meta.link.email.lt-gt.markdown\"},\"link-inet\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.link.markdown\"},\"2\":{\"name\":\"markup.underline.link.markdown\"},\"3\":{\"name\":\"punctuation.definition.link.markdown\"}},\"match\":\"(<)((?:https?|ftp)://.*?)(>)\",\"name\":\"meta.link.inet.markdown\"},\"link-inline\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.link.title.begin.markdown\"},\"2\":{\"name\":\"string.other.link.title.markdown\",\"patterns\":[{\"include\":\"#raw\"},{\"include\":\"#bold\"},{\"include\":\"#italic\"},{\"include\":\"#strikethrough\"},{\"include\":\"#image-inline\"}]},\"4\":{\"name\":\"punctuation.definition.link.title.end.markdown\"},\"5\":{\"name\":\"punctuation.definition.metadata.markdown\"},\"7\":{\"name\":\"punctuation.definition.link.markdown\"},\"8\":{\"name\":\"markup.underline.link.markdown\"},\"9\":{\"name\":\"punctuation.definition.link.markdown\"},\"10\":{\"name\":\"markup.underline.link.markdown\"},\"12\":{\"name\":\"string.other.link.description.title.markdown\"},\"13\":{\"name\":\"punctuation.definition.string.begin.markdown\"},\"14\":{\"name\":\"punctuation.definition.string.end.markdown\"},\"15\":{\"name\":\"string.other.link.description.title.markdown\"},\"16\":{\"name\":\"punctuation.definition.string.begin.markdown\"},\"17\":{\"name\":\"punctuation.definition.string.end.markdown\"},\"18\":{\"name\":\"string.other.link.description.title.markdown\"},\"19\":{\"name\":\"punctuation.definition.string.begin.markdown\"},\"20\":{\"name\":\"punctuation.definition.string.end.markdown\"},\"21\":{\"name\":\"punctuation.definition.metadata.markdown\"}},\"match\":\"(\\\\\\\\[)((?<square>[^\\\\\\\\[\\\\\\\\]\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.|\\\\\\\\[\\\\\\\\g<square>*+\\\\\\\\])*+)(\\\\\\\\])(\\\\\\\\()[ \\\\\\\\t]*((<)((?:\\\\\\\\\\\\\\\\[<>]|[^<>\\\\\\\\n])*)(>)|((?<url>(?>[^\\\\\\\\s()]+)|\\\\\\\\(\\\\\\\\g<url>*\\\\\\\\))*))[ \\\\\\\\t]*(?:((\\\\\\\\()[^()]*(\\\\\\\\)))|((\\\\\")[^\\\\\"]*(\\\\\"))|((\\')[^\\']*(\\')))?\\\\\\\\s*(\\\\\\\\))\",\"name\":\"meta.link.inline.markdown\"},\"link-ref\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.link.title.begin.markdown\"},\"2\":{\"name\":\"string.other.link.title.markdown\",\"patterns\":[{\"include\":\"#raw\"},{\"include\":\"#bold\"},{\"include\":\"#italic\"},{\"include\":\"#strikethrough\"},{\"include\":\"#image-inline\"}]},\"4\":{\"name\":\"punctuation.definition.link.title.end.markdown\"},\"5\":{\"name\":\"punctuation.definition.constant.begin.markdown\"},\"6\":{\"name\":\"constant.other.reference.link.markdown\"},\"7\":{\"name\":\"punctuation.definition.constant.end.markdown\"}},\"match\":\"(?<![\\\\\\\\]\\\\\\\\\\\\\\\\])(\\\\\\\\[)((?<square>[^\\\\\\\\[\\\\\\\\]\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.|\\\\\\\\[\\\\\\\\g<square>*+\\\\\\\\])*+)(\\\\\\\\])(\\\\\\\\[)([^\\\\\\\\]]*+)(\\\\\\\\])\",\"name\":\"meta.link.reference.markdown\"},\"link-ref-literal\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.link.title.begin.markdown\"},\"2\":{\"name\":\"string.other.link.title.markdown\"},\"4\":{\"name\":\"punctuation.definition.link.title.end.markdown\"},\"5\":{\"name\":\"punctuation.definition.constant.begin.markdown\"},\"6\":{\"name\":\"punctuation.definition.constant.end.markdown\"}},\"match\":\"(?<![\\\\\\\\]\\\\\\\\\\\\\\\\])(\\\\\\\\[)((?<square>[^\\\\\\\\[\\\\\\\\]\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.|\\\\\\\\[\\\\\\\\g<square>*+\\\\\\\\])*+)(\\\\\\\\])[ ]?(\\\\\\\\[)(\\\\\\\\])\",\"name\":\"meta.link.reference.literal.markdown\"},\"link-ref-shortcut\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.link.title.begin.markdown\"},\"2\":{\"name\":\"string.other.link.title.markdown\"},\"3\":{\"name\":\"punctuation.definition.link.title.end.markdown\"}},\"match\":\"(?<![\\\\\\\\]\\\\\\\\\\\\\\\\])(\\\\\\\\[)((?:[^\\\\\\\\s\\\\\\\\[\\\\\\\\]\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\[\\\\\\\\[\\\\\\\\]])+?)((?<!\\\\\\\\\\\\\\\\)\\\\\\\\])\",\"name\":\"meta.link.reference.markdown\"},\"list_paragraph\":{\"begin\":\"(^|\\\\\\\\G)(?=\\\\\\\\S)(?![*+->]\\\\\\\\s|[0-9]+\\\\\\\\.\\\\\\\\s)\",\"name\":\"meta.paragraph.markdown\",\"patterns\":[{\"include\":\"#inline\"},{\"include\":\"text.html.derivative\"},{\"include\":\"#heading-setext\"}],\"while\":\"(^|\\\\\\\\G)(?!\\\\\\\\s*$|#|[ ]{0,3}([-*_>][ ]{2,}){3,}[ \\\\\\\\t]*$\\\\\\\\n?|[ ]{0,3}[*+->]|[ ]{0,3}[0-9]+\\\\\\\\.)\"},\"lists\":{\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)([ ]{0,3})([*+-])([ \\\\\\\\t])\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.list.begin.markdown\"}},\"comment\":\"Currently does not support un-indented second lines.\",\"name\":\"markup.list.unnumbered.markdown\",\"patterns\":[{\"include\":\"#block\"},{\"include\":\"#list_paragraph\"}],\"while\":\"((^|\\\\\\\\G)([ ]{2,4}|\\\\\\\\t))|(^[ \\\\\\\\t]*$)\"},{\"begin\":\"(^|\\\\\\\\G)([ ]{0,3})([0-9]+[\\\\\\\\.\\\\\\\\)])([ \\\\\\\\t])\",\"beginCaptures\":{\"3\":{\"name\":\"punctuation.definition.list.begin.markdown\"}},\"name\":\"markup.list.numbered.markdown\",\"patterns\":[{\"include\":\"#block\"},{\"include\":\"#list_paragraph\"}],\"while\":\"((^|\\\\\\\\G)([ ]{2,4}|\\\\\\\\t))|(^[ \\\\\\\\t]*$)\"}]},\"paragraph\":{\"begin\":\"(^|\\\\\\\\G)[ ]{0,3}(?=[^ \\\\\\\\t\\\\\\\\n])\",\"name\":\"meta.paragraph.markdown\",\"patterns\":[{\"include\":\"#inline\"},{\"include\":\"text.html.derivative\"},{\"include\":\"#heading-setext\"}],\"while\":\"(^|\\\\\\\\G)((?=\\\\\\\\s*[-=]{3,}\\\\\\\\s*$)|[ ]{4,}(?=[^ \\\\\\\\t\\\\\\\\n]))\"},\"raw\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.raw.markdown\"},\"3\":{\"name\":\"punctuation.definition.raw.markdown\"}},\"match\":\"(`+)((?:[^`]|(?!(?<!`)\\\\\\\\1(?!`))`)*+)(\\\\\\\\1)\",\"name\":\"markup.inline.raw.string.markdown\"},\"raw_block\":{\"begin\":\"(^|\\\\\\\\G)([ ]{4}|\\\\\\\\t)\",\"name\":\"markup.raw.block.markdown\",\"while\":\"(^|\\\\\\\\G)([ ]{4}|\\\\\\\\t)\"},\"separator\":{\"match\":\"(^|\\\\\\\\G)[ ]{0,3}([\\\\\\\\*\\\\\\\\-\\\\\\\\_])([ ]{0,2}\\\\\\\\2){2,}[ \\\\\\\\t]*$\\\\\\\\n?\",\"name\":\"meta.separator.markdown\"},\"strikethrough\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.strikethrough.markdown\"},\"2\":{\"patterns\":[{\"applyEndPatternLast\":1,\"begin\":\"(?=<[^>]*?>)\",\"end\":\"(?<=>)\",\"patterns\":[{\"include\":\"text.html.derivative\"}]},{\"include\":\"#escape\"},{\"include\":\"#ampersand\"},{\"include\":\"#bracket\"},{\"include\":\"#raw\"},{\"include\":\"#bold\"},{\"include\":\"#italic\"},{\"include\":\"#image-inline\"},{\"include\":\"#link-inline\"},{\"include\":\"#link-inet\"},{\"include\":\"#link-email\"},{\"include\":\"#image-ref\"},{\"include\":\"#link-ref-literal\"},{\"include\":\"#link-ref\"},{\"include\":\"#link-ref-shortcut\"}]},\"3\":{\"name\":\"punctuation.definition.strikethrough.markdown\"}},\"match\":\"(?<!\\\\\\\\\\\\\\\\)(~{2,})((?:[^~]|(?!(?<![~\\\\\\\\\\\\\\\\])\\\\\\\\1(?!~))~)*+)(\\\\\\\\1)\",\"name\":\"markup.strikethrough.markdown\"},\"table\":{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\|)(?=[^|].+\\\\\\\\|\\\\\\\\s*$)\",\"beginCaptures\":{\"2\":{\"name\":\"punctuation.definition.table.markdown\"}},\"name\":\"markup.table.markdown\",\"patterns\":[{\"match\":\"\\\\\\\\|\",\"name\":\"punctuation.definition.table.markdown\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.table.markdown\"}},\"match\":\"(?<=\\\\\\\\|)\\\\\\\\s*(:?-+:?)\\\\\\\\s*(?=\\\\\\\\|)\"},{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline\"}]}},\"match\":\"(?<=\\\\\\\\|)\\\\\\\\s*(?=\\\\\\\\S)((\\\\\\\\\\\\\\\\\\\\\\\\||[^|])+)(?<=\\\\\\\\S)\\\\\\\\s*(?=\\\\\\\\|)\"}],\"while\":\"(^|\\\\\\\\G)(?=\\\\\\\\|)\"}},\"scopeName\":\"text.html.markdown\",\"embeddedLangs\":[],\"aliases\":[\"md\"],\"embeddedLangsLazy\":[\"css\",\"html\",\"ini\",\"java\",\"lua\",\"make\",\"perl\",\"r\",\"ruby\",\"php\",\"sql\",\"vb\",\"xml\",\"xsl\",\"yaml\",\"bat\",\"clojure\",\"coffee\",\"c\",\"cpp\",\"diff\",\"docker\",\"git-commit\",\"git-rebase\",\"go\",\"groovy\",\"pug\",\"javascript\",\"json\",\"jsonc\",\"less\",\"objective-c\",\"swift\",\"scss\",\"raku\",\"powershell\",\"python\",\"julia\",\"regexp\",\"rust\",\"scala\",\"shellscript\",\"typescript\",\"tsx\",\"csharp\",\"fsharp\",\"dart\",\"handlebars\",\"log\",\"erlang\",\"elixir\",\"latex\",\"bibtex\",\"html-derivative\"]}')),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/UL5zprDm.js",
    "content": "import e from\"./BMYPR7BL.js\";import n from\"./CYFUjXW1.js\";import\"./ySlJ1b_l.js\";import\"./BPhBrDlE.js\";import\"./m4gc_qpA.js\";import\"./cPjAOO0u.js\";import\"./xI-RfyKK.js\";import\"./COK4E0Yg.js\";import\"./DjHMNizO.js\";import\"./Dj6nwHGl.js\";import\"./BAng5TT0.js\";import\"./B6W0miNI.js\";import\"./BEhvmC7f.js\";import\"./DWJ3fJO_.js\";import\"./COyJrUc7.js\";import\"./C3t2pwGQ.js\";import\"./atvbtKCR.js\";import\"./Dbxjm_CC.js\";import\"./CVw76BM1.js\";const t=Object.freeze(JSON.parse('{\"displayName\":\"ERB\",\"fileTypes\":[\"erb\",\"rhtml\",\"html.erb\"],\"injections\":{\"text.html.erb - (meta.embedded.block.erb | meta.embedded.line.erb | comment)\":{\"patterns\":[{\"begin\":\"(^\\\\\\\\s*)(?=<%+#(?![^%]*%>))\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.whitespace.comment.leading.erb\"}},\"end\":\"(?!\\\\\\\\G)(\\\\\\\\s*$\\\\\\\\n)?\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.whitespace.comment.trailing.erb\"}},\"patterns\":[{\"include\":\"#comment\"}]},{\"begin\":\"(^\\\\\\\\s*)(?=<%(?![^%]*%>))\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.whitespace.embedded.leading.erb\"}},\"end\":\"(?!\\\\\\\\G)(\\\\\\\\s*$\\\\\\\\n)?\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.whitespace.embedded.trailing.erb\"}},\"patterns\":[{\"include\":\"#tags\"}]},{\"include\":\"#comment\"},{\"include\":\"#tags\"}]}},\"name\":\"erb\",\"patterns\":[{\"include\":\"text.html.basic\"}],\"repository\":{\"comment\":{\"patterns\":[{\"begin\":\"<%+#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.erb\"}},\"end\":\"%>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.erb\"}},\"name\":\"comment.block.erb\"}]},\"tags\":{\"patterns\":[{\"begin\":\"<%+(?!>)[-=]?(?![^%]*%>)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.erb\"}},\"contentName\":\"source.ruby\",\"end\":\"(-?%)>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.erb\"},\"1\":{\"name\":\"source.ruby\"}},\"name\":\"meta.embedded.block.erb\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.erb\"}},\"match\":\"(#).*?(?=-?%>)\",\"name\":\"comment.line.number-sign.erb\"},{\"include\":\"source.ruby\"}]},{\"begin\":\"<%+(?!>)[-=]?\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.erb\"}},\"contentName\":\"source.ruby\",\"end\":\"(-?%)>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.erb\"},\"1\":{\"name\":\"source.ruby\"}},\"name\":\"meta.embedded.line.erb\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.erb\"}},\"match\":\"(#).*?(?=-?%>)\",\"name\":\"comment.line.number-sign.erb\"},{\"include\":\"source.ruby\"}]}]}},\"scopeName\":\"text.html.erb\",\"embeddedLangs\":[\"html\",\"ruby\"]}')),x=[...e,...n,t];export{x as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/UMmp-gVE.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],autoClosingPairs:[{open:\"[\",close:\"]\"},{open:\"{\",close:\"}\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"',notIn:[\"string\"]}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"}],folding:{markers:{start:new RegExp(\"^\\\\s*#pragma\\\\s+region\\\\b\"),end:new RegExp(\"^\\\\s*#pragma\\\\s+endregion\\\\b\")}}},t={tokenPostfix:\".rust\",defaultToken:\"invalid\",keywords:[\"as\",\"async\",\"await\",\"box\",\"break\",\"const\",\"continue\",\"crate\",\"dyn\",\"else\",\"enum\",\"extern\",\"false\",\"fn\",\"for\",\"if\",\"impl\",\"in\",\"let\",\"loop\",\"match\",\"mod\",\"move\",\"mut\",\"pub\",\"ref\",\"return\",\"self\",\"static\",\"struct\",\"super\",\"trait\",\"true\",\"try\",\"type\",\"unsafe\",\"use\",\"where\",\"while\",\"catch\",\"default\",\"union\",\"static\",\"abstract\",\"alignof\",\"become\",\"do\",\"final\",\"macro\",\"offsetof\",\"override\",\"priv\",\"proc\",\"pure\",\"sizeof\",\"typeof\",\"unsized\",\"virtual\",\"yield\"],typeKeywords:[\"Self\",\"m32\",\"m64\",\"m128\",\"f80\",\"f16\",\"f128\",\"int\",\"uint\",\"float\",\"char\",\"bool\",\"u8\",\"u16\",\"u32\",\"u64\",\"f32\",\"f64\",\"i8\",\"i16\",\"i32\",\"i64\",\"str\",\"Option\",\"Either\",\"c_float\",\"c_double\",\"c_void\",\"FILE\",\"fpos_t\",\"DIR\",\"dirent\",\"c_char\",\"c_schar\",\"c_uchar\",\"c_short\",\"c_ushort\",\"c_int\",\"c_uint\",\"c_long\",\"c_ulong\",\"size_t\",\"ptrdiff_t\",\"clock_t\",\"time_t\",\"c_longlong\",\"c_ulonglong\",\"intptr_t\",\"uintptr_t\",\"off_t\",\"dev_t\",\"ino_t\",\"pid_t\",\"mode_t\",\"ssize_t\"],constants:[\"true\",\"false\",\"Some\",\"None\",\"Left\",\"Right\",\"Ok\",\"Err\"],supportConstants:[\"EXIT_FAILURE\",\"EXIT_SUCCESS\",\"RAND_MAX\",\"EOF\",\"SEEK_SET\",\"SEEK_CUR\",\"SEEK_END\",\"_IOFBF\",\"_IONBF\",\"_IOLBF\",\"BUFSIZ\",\"FOPEN_MAX\",\"FILENAME_MAX\",\"L_tmpnam\",\"TMP_MAX\",\"O_RDONLY\",\"O_WRONLY\",\"O_RDWR\",\"O_APPEND\",\"O_CREAT\",\"O_EXCL\",\"O_TRUNC\",\"S_IFIFO\",\"S_IFCHR\",\"S_IFBLK\",\"S_IFDIR\",\"S_IFREG\",\"S_IFMT\",\"S_IEXEC\",\"S_IWRITE\",\"S_IREAD\",\"S_IRWXU\",\"S_IXUSR\",\"S_IWUSR\",\"S_IRUSR\",\"F_OK\",\"R_OK\",\"W_OK\",\"X_OK\",\"STDIN_FILENO\",\"STDOUT_FILENO\",\"STDERR_FILENO\"],supportMacros:[\"format!\",\"print!\",\"println!\",\"panic!\",\"format_args!\",\"unreachable!\",\"write!\",\"writeln!\"],operators:[\"!\",\"!=\",\"%\",\"%=\",\"&\",\"&=\",\"&&\",\"*\",\"*=\",\"+\",\"+=\",\"-\",\"-=\",\"->\",\".\",\"..\",\"...\",\"/\",\"/=\",\":\",\";\",\"<<\",\"<<=\",\"<\",\"<=\",\"=\",\"==\",\"=>\",\">\",\">=\",\">>\",\">>=\",\"@\",\"^\",\"^=\",\"|\",\"|=\",\"||\",\"_\",\"?\",\"#\"],escapes:/\\\\([nrt0\\\"''\\\\]|x\\h{2}|u\\{\\h{1,6}\\})/,delimiters:/[,]/,symbols:/[\\#\\!\\%\\&\\*\\+\\-\\.\\/\\:\\;\\<\\=\\>\\@\\^\\|_\\?]+/,intSuffixes:/[iu](8|16|32|64|128|size)/,floatSuffixes:/f(32|64)/,tokenizer:{root:[[/r(#*)\"/,{token:\"string.quote\",bracket:\"@open\",next:\"@stringraw.$1\"}],[/[a-zA-Z][a-zA-Z0-9_]*!?|_[a-zA-Z0-9_]+/,{cases:{\"@typeKeywords\":\"keyword.type\",\"@keywords\":\"keyword\",\"@supportConstants\":\"keyword\",\"@supportMacros\":\"keyword\",\"@constants\":\"keyword\",\"@default\":\"identifier\"}}],[/\\$/,\"identifier\"],[/'[a-zA-Z_][a-zA-Z0-9_]*(?=[^\\'])/,\"identifier\"],[/'(\\S|@escapes)'/,\"string.byteliteral\"],[/\"/,{token:\"string.quote\",bracket:\"@open\",next:\"@string\"}],{include:\"@numbers\"},{include:\"@whitespace\"},[/@delimiters/,{cases:{\"@keywords\":\"keyword\",\"@default\":\"delimiter\"}}],[/[{}()\\[\\]<>]/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"operator\",\"@default\":\"\"}}]],whitespace:[[/[ \\t\\r\\n]+/,\"white\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\/\\*/,\"comment\",\"@push\"],[\"\\\\*/\",\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],string:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,{token:\"string.quote\",bracket:\"@close\",next:\"@pop\"}]],stringraw:[[/[^\"#]+/,{token:\"string\"}],[/\"(#*)/,{cases:{\"$1==$S2\":{token:\"string.quote\",bracket:\"@close\",next:\"@pop\"},\"@default\":{token:\"string\"}}}],[/[\"#]/,{token:\"string\"}]],numbers:[[/(0o[0-7_]+)(@intSuffixes)?/,{token:\"number\"}],[/(0b[0-1_]+)(@intSuffixes)?/,{token:\"number\"}],[/[\\d][\\d_]*(\\.[\\d][\\d_]*)?[eE][+-][\\d_]+(@floatSuffixes)?/,{token:\"number\"}],[/\\b(\\d\\.?[\\d_]*)(@floatSuffixes)?\\b/,{token:\"number\"}],[/(0x[\\da-fA-F]+)_?(@intSuffixes)?/,{token:\"number\"}],[/[\\d][\\d_]*(@intSuffixes?)?/,{token:\"number\"}]]}};export{e as conf,t as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/VuadG5SK.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"//\",blockComment:[\"(*\",\"*)\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"],[\"var\",\"end_var\"],[\"var_input\",\"end_var\"],[\"var_output\",\"end_var\"],[\"var_in_out\",\"end_var\"],[\"var_temp\",\"end_var\"],[\"var_global\",\"end_var\"],[\"var_access\",\"end_var\"],[\"var_external\",\"end_var\"],[\"type\",\"end_type\"],[\"struct\",\"end_struct\"],[\"program\",\"end_program\"],[\"function\",\"end_function\"],[\"function_block\",\"end_function_block\"],[\"action\",\"end_action\"],[\"step\",\"end_step\"],[\"initial_step\",\"end_step\"],[\"transaction\",\"end_transaction\"],[\"configuration\",\"end_configuration\"],[\"tcp\",\"end_tcp\"],[\"recource\",\"end_recource\"],[\"channel\",\"end_channel\"],[\"library\",\"end_library\"],[\"folder\",\"end_folder\"],[\"binaries\",\"end_binaries\"],[\"includes\",\"end_includes\"],[\"sources\",\"end_sources\"]],autoClosingPairs:[{open:\"[\",close:\"]\"},{open:\"{\",close:\"}\"},{open:\"(\",close:\")\"},{open:\"/*\",close:\"*/\"},{open:\"'\",close:\"'\",notIn:[\"string_sq\"]},{open:'\"',close:'\"',notIn:[\"string_dq\"]},{open:\"var_input\",close:\"end_var\"},{open:\"var_output\",close:\"end_var\"},{open:\"var_in_out\",close:\"end_var\"},{open:\"var_temp\",close:\"end_var\"},{open:\"var_global\",close:\"end_var\"},{open:\"var_access\",close:\"end_var\"},{open:\"var_external\",close:\"end_var\"},{open:\"type\",close:\"end_type\"},{open:\"struct\",close:\"end_struct\"},{open:\"program\",close:\"end_program\"},{open:\"function\",close:\"end_function\"},{open:\"function_block\",close:\"end_function_block\"},{open:\"action\",close:\"end_action\"},{open:\"step\",close:\"end_step\"},{open:\"initial_step\",close:\"end_step\"},{open:\"transaction\",close:\"end_transaction\"},{open:\"configuration\",close:\"end_configuration\"},{open:\"tcp\",close:\"end_tcp\"},{open:\"recource\",close:\"end_recource\"},{open:\"channel\",close:\"end_channel\"},{open:\"library\",close:\"end_library\"},{open:\"folder\",close:\"end_folder\"},{open:\"binaries\",close:\"end_binaries\"},{open:\"includes\",close:\"end_includes\"},{open:\"sources\",close:\"end_sources\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\"var\",close:\"end_var\"},{open:\"var_input\",close:\"end_var\"},{open:\"var_output\",close:\"end_var\"},{open:\"var_in_out\",close:\"end_var\"},{open:\"var_temp\",close:\"end_var\"},{open:\"var_global\",close:\"end_var\"},{open:\"var_access\",close:\"end_var\"},{open:\"var_external\",close:\"end_var\"},{open:\"type\",close:\"end_type\"},{open:\"struct\",close:\"end_struct\"},{open:\"program\",close:\"end_program\"},{open:\"function\",close:\"end_function\"},{open:\"function_block\",close:\"end_function_block\"},{open:\"action\",close:\"end_action\"},{open:\"step\",close:\"end_step\"},{open:\"initial_step\",close:\"end_step\"},{open:\"transaction\",close:\"end_transaction\"},{open:\"configuration\",close:\"end_configuration\"},{open:\"tcp\",close:\"end_tcp\"},{open:\"recource\",close:\"end_recource\"},{open:\"channel\",close:\"end_channel\"},{open:\"library\",close:\"end_library\"},{open:\"folder\",close:\"end_folder\"},{open:\"binaries\",close:\"end_binaries\"},{open:\"includes\",close:\"end_includes\"},{open:\"sources\",close:\"end_sources\"}],folding:{markers:{start:new RegExp(\"^\\\\s*#pragma\\\\s+region\\\\b\"),end:new RegExp(\"^\\\\s*#pragma\\\\s+endregion\\\\b\")}}},n={defaultToken:\"\",tokenPostfix:\".st\",ignoreCase:!0,brackets:[{token:\"delimiter.curly\",open:\"{\",close:\"}\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"},{token:\"delimiter.square\",open:\"[\",close:\"]\"}],keywords:[\"if\",\"end_if\",\"elsif\",\"else\",\"case\",\"of\",\"to\",\"__try\",\"__catch\",\"__finally\",\"do\",\"with\",\"by\",\"while\",\"repeat\",\"end_while\",\"end_repeat\",\"end_case\",\"for\",\"end_for\",\"task\",\"retain\",\"non_retain\",\"constant\",\"with\",\"at\",\"exit\",\"return\",\"interval\",\"priority\",\"address\",\"port\",\"on_channel\",\"then\",\"iec\",\"file\",\"uses\",\"version\",\"packagetype\",\"displayname\",\"copyright\",\"summary\",\"vendor\",\"common_source\",\"from\",\"extends\",\"implements\"],constant:[\"false\",\"true\",\"null\"],defineKeywords:[\"var\",\"var_input\",\"var_output\",\"var_in_out\",\"var_temp\",\"var_global\",\"var_access\",\"var_external\",\"end_var\",\"type\",\"end_type\",\"struct\",\"end_struct\",\"program\",\"end_program\",\"function\",\"end_function\",\"function_block\",\"end_function_block\",\"interface\",\"end_interface\",\"method\",\"end_method\",\"property\",\"end_property\",\"namespace\",\"end_namespace\",\"configuration\",\"end_configuration\",\"tcp\",\"end_tcp\",\"resource\",\"end_resource\",\"channel\",\"end_channel\",\"library\",\"end_library\",\"folder\",\"end_folder\",\"binaries\",\"end_binaries\",\"includes\",\"end_includes\",\"sources\",\"end_sources\",\"action\",\"end_action\",\"step\",\"initial_step\",\"end_step\",\"transaction\",\"end_transaction\"],typeKeywords:[\"int\",\"sint\",\"dint\",\"lint\",\"usint\",\"uint\",\"udint\",\"ulint\",\"real\",\"lreal\",\"time\",\"date\",\"time_of_day\",\"date_and_time\",\"string\",\"bool\",\"byte\",\"word\",\"dword\",\"array\",\"pointer\",\"lword\"],operators:[\"=\",\">\",\"<\",\":\",\":=\",\"<=\",\">=\",\"<>\",\"&\",\"+\",\"-\",\"*\",\"**\",\"MOD\",\"^\",\"or\",\"and\",\"not\",\"xor\",\"abs\",\"acos\",\"asin\",\"atan\",\"cos\",\"exp\",\"expt\",\"ln\",\"log\",\"sin\",\"sqrt\",\"tan\",\"sel\",\"max\",\"min\",\"limit\",\"mux\",\"shl\",\"shr\",\"rol\",\"ror\",\"indexof\",\"sizeof\",\"adr\",\"adrinst\",\"bitadr\",\"is_valid\",\"ref\",\"ref_to\"],builtinVariables:[],builtinFunctions:[\"sr\",\"rs\",\"tp\",\"ton\",\"tof\",\"eq\",\"ge\",\"le\",\"lt\",\"ne\",\"round\",\"trunc\",\"ctd\",\"сtu\",\"ctud\",\"r_trig\",\"f_trig\",\"move\",\"concat\",\"delete\",\"find\",\"insert\",\"left\",\"len\",\"replace\",\"right\",\"rtc\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,escapes:/\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/(\\.\\.)/,\"delimiter\"],[/\\b(16#[0-9A-Fa-f\\_]*)+\\b/,\"number.hex\"],[/\\b(2#[01\\_]+)+\\b/,\"number.binary\"],[/\\b(8#[0-9\\_]*)+\\b/,\"number.octal\"],[/\\b\\d*\\.\\d+([eE][\\-+]?\\d+)?\\b/,\"number.float\"],[/\\b(L?REAL)#[0-9\\_\\.e]+\\b/,\"number.float\"],[/\\b(BYTE|(?:D|L)?WORD|U?(?:S|D|L)?INT)#[0-9\\_]+\\b/,\"number\"],[/\\d+/,\"number\"],[/\\b(T|DT|TOD)#[0-9:-_shmyd]+\\b/,\"tag\"],[/\\%(I|Q|M)(X|B|W|D|L)[0-9\\.]+/,\"tag\"],[/\\%(I|Q|M)[0-9\\.]*/,\"tag\"],[/\\b[A-Za-z]{1,6}#[0-9]+\\b/,\"tag\"],[/\\b(TO_|CTU_|CTD_|CTUD_|MUX_|SEL_)[A_Za-z]+\\b/,\"predefined\"],[/\\b[A_Za-z]+(_TO_)[A_Za-z]+\\b/,\"predefined\"],[/[;]/,\"delimiter\"],[/[.]/,{token:\"delimiter\",next:\"@params\"}],[/[a-zA-Z_]\\w*/,{cases:{\"@operators\":\"operators\",\"@keywords\":\"keyword\",\"@typeKeywords\":\"type\",\"@defineKeywords\":\"variable\",\"@constant\":\"constant\",\"@builtinVariables\":\"predefined\",\"@builtinFunctions\":\"predefined\",\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"@brackets\"],[/\"([^\"\\\\]|\\\\.)*$/,\"string.invalid\"],[/\"/,{token:\"string.quote\",bracket:\"@open\",next:\"@string_dq\"}],[/'/,{token:\"string.quote\",bracket:\"@open\",next:\"@string_sq\"}],[/'[^\\\\']'/,\"string\"],[/(')(@escapes)(')/,[\"string\",\"string.escape\",\"string\"]],[/'/,\"string.invalid\"]],params:[[/\\b[A-Za-z0-9_]+\\b(?=\\()/,{token:\"identifier\",next:\"@pop\"}],[/\\b[A-Za-z0-9_]+\\b/,\"variable.name\",\"@pop\"]],comment:[[/[^\\/*]+/,\"comment\"],[/\\/\\*/,\"comment\",\"@push\"],[\"\\\\*/\",\"comment\",\"@pop\"],[/[\\/*]/,\"comment\"]],comment2:[[/[^\\(*]+/,\"comment\"],[/\\(\\*/,\"comment\",\"@push\"],[\"\\\\*\\\\)\",\"comment\",\"@pop\"],[/[\\(*]/,\"comment\"]],whitespace:[[/[ \\t\\r\\n]+/,\"white\"],[/\\/\\/.*$/,\"comment\"],[/\\/\\*/,\"comment\",\"@comment\"],[/\\(\\*/,\"comment\",\"@comment2\"]],string_dq:[[/[^\\\\\"]+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/\"/,{token:\"string.quote\",bracket:\"@close\",next:\"@pop\"}]],string_sq:[[/[^\\\\']+/,\"string\"],[/@escapes/,\"string.escape\"],[/\\\\./,\"string.escape.invalid\"],[/'/,{token:\"string.quote\",bracket:\"@close\",next:\"@pop\"}]]}};export{e as conf,n as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/X3S5orim.js",
    "content": "import{B as i,o as s}from\"./CU_MfyYc.js\";function l(r,o={}){const u=t=>{const e=t;if(!e)return!1;const n=(e.tagName||\"\").toLowerCase();return!!(n===\"input\"||n===\"textarea\"||e.isContentEditable||e.getAttribute&&e.getAttribute(\"role\")===\"textbox\")},a=t=>{if(o.onlyWhen&&!o.onlyWhen()||u(t.target)||t.metaKey||t.ctrlKey||t.altKey)return;const e=t.key.toLowerCase(),n=r[t.key]||r[e];n&&(t.preventDefault(),n(t))};i(()=>{window.addEventListener(\"keydown\",a)}),s(()=>{window.removeEventListener(\"keydown\",a)})}export{l as u};\n"
  },
  {
    "path": "jesse/static/_nuxt/XBlWyCtg.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Lean 4\",\"fileTypes\":[],\"name\":\"lean\",\"patterns\":[{\"include\":\"#comments\"},{\"match\":\"\\\\\\\\b(Prop|Type|Sort)\\\\\\\\b\",\"name\":\"storage.type.lean4\"},{\"match\":\"\\\\\\\\battribute\\\\\\\\b\\\\\\\\s*\\\\\\\\[[^\\\\\\\\]]*\\\\\\\\]\",\"name\":\"storage.modifier.lean4\"},{\"match\":\"@\\\\\\\\[[^\\\\\\\\]]*\\\\\\\\]\",\"name\":\"storage.modifier.lean4\"},{\"match\":\"\\\\\\\\b(?<!\\\\\\\\.)(global|local|scoped|partial|unsafe|private|protected|noncomputable)(?!\\\\\\\\.)\\\\\\\\b\",\"name\":\"storage.modifier.lean4\"},{\"match\":\"\\\\\\\\b(sorry|admit|stop)\\\\\\\\b\",\"name\":\"invalid.illegal.lean4\"},{\"match\":\"#(print|eval|reduce|check|check_failure)\\\\\\\\b\",\"name\":\"keyword.other.lean4\"},{\"match\":\"\\\\\\\\bderiving\\\\\\\\s+instance\\\\\\\\b\",\"name\":\"keyword.other.command.lean4\"},{\"begin\":\"\\\\\\\\b(?<!\\\\\\\\.)(inductive|coinductive|structure|theorem|axiom|abbrev|lemma|def|instance|class|constant)\\\\\\\\b\\\\\\\\s+(\\\\\\\\{[^}]*\\\\\\\\})?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.definitioncommand.lean4\"}},\"end\":\"(?=\\\\\\\\bwith\\\\\\\\b|\\\\\\\\bextends\\\\\\\\b|\\\\\\\\bwhere\\\\\\\\b|[:\\\\\\\\|\\\\\\\\(\\\\\\\\[\\\\\\\\{⦃<>])\",\"name\":\"meta.definitioncommand.lean4\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#definitionName\"},{\"match\":\",\"}]},{\"match\":\"\\\\\\\\b(?<!\\\\\\\\.)(theorem|show|have|from|suffices|nomatch|def|class|structure|instance|set_option|initialize|builtin_initialize|example|inductive|coinductive|axiom|constant|universe|universes|variable|variables|import|open|export|theory|prelude|renaming|hiding|exposing|do|by|let|extends|mutual|mut|where|rec|syntax|macro_rules|macro|deriving|fun|section|namespace|end|infix|infixl|infixr|postfix|prefix|notation|abbrev|if|then|else|calc|match|with|for|in|unless|try|catch|finally|return|continue|break)(?!\\\\\\\\.)\\\\\\\\b\",\"name\":\"keyword.other.lean4\"},{\"begin\":\"«\",\"contentName\":\"entity.name.lean4\",\"end\":\"»\"},{\"begin\":\"(s!)\\\\\"\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.lean4\"}},\"end\":\"\\\\\"\",\"name\":\"string.interpolated.lean4\",\"patterns\":[{\"begin\":\"(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.lean4\"}},\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"keyword.other.lean4\"}},\"patterns\":[{\"include\":\"$self\"}]},{\"match\":\"\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\"ntr']\",\"name\":\"constant.character.escape.lean4\"},{\"match\":\"\\\\\\\\\\\\\\\\x[0-9A-Fa-f][0-9A-Fa-f]\",\"name\":\"constant.character.escape.lean4\"},{\"match\":\"\\\\\\\\\\\\\\\\u[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f]\",\"name\":\"constant.character.escape.lean4\"}]},{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.lean4\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\"ntr']\",\"name\":\"constant.character.escape.lean4\"},{\"match\":\"\\\\\\\\\\\\\\\\x[0-9A-Fa-f][0-9A-Fa-f]\",\"name\":\"constant.character.escape.lean4\"},{\"match\":\"\\\\\\\\\\\\\\\\u[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f]\",\"name\":\"constant.character.escape.lean4\"}]},{\"match\":\"\\\\\\\\b(true|false)\\\\\\\\b\",\"name\":\"constant.language.lean4\"},{\"match\":\"'[^\\\\\\\\\\\\\\\\']'\",\"name\":\"string.quoted.single.lean4\"},{\"captures\":{\"1\":{\"name\":\"constant.character.escape.lean4\"}},\"match\":\"'(\\\\\\\\\\\\\\\\(x[0-9A-Fa-f][0-9A-Fa-f]|u[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f]|.))'\",\"name\":\"string.quoted.single.lean4\"},{\"match\":\"\\`+[^\\\\\\\\[(]\\\\\\\\S+\",\"name\":\"entity.name.lean4\"},{\"match\":\"\\\\\\\\b([0-9]+|0([xX][0-9a-fA-F]+)|[-]?(0|[1-9][0-9]*)(\\\\\\\\.[0-9]+)?([eE][+-]?[0-9]+)?)\\\\\\\\b\",\"name\":\"constant.numeric.lean4\"}],\"repository\":{\"blockComment\":{\"begin\":\"/-\",\"end\":\"-/\",\"name\":\"comment.block.lean4\",\"patterns\":[{\"include\":\"source.lean4.markdown\"},{\"include\":\"#blockComment\"}]},\"comments\":{\"patterns\":[{\"include\":\"#dashComment\"},{\"include\":\"#docComment\"},{\"include\":\"#stringBlock\"},{\"include\":\"#modDocComment\"},{\"include\":\"#blockComment\"}]},\"dashComment\":{\"begin\":\"--\",\"end\":\"$\",\"name\":\"comment.line.double-dash.lean4\",\"patterns\":[{\"include\":\"source.lean4.markdown\"}]},\"definitionName\":{\"patterns\":[{\"match\":\"\\\\\\\\b[^:«»\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}[:space:]=→λ∀?][^:«»\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}[:space:]]*\",\"name\":\"entity.name.function.lean4\"},{\"begin\":\"«\",\"contentName\":\"entity.name.function.lean4\",\"end\":\"»\"}]},\"docComment\":{\"begin\":\"/--\",\"end\":\"-/\",\"name\":\"comment.block.documentation.lean4\",\"patterns\":[{\"include\":\"source.lean4.markdown\"},{\"include\":\"#blockComment\"}]},\"modDocComment\":{\"begin\":\"/-!\",\"end\":\"-/\",\"name\":\"comment.block.documentation.lean4\",\"patterns\":[{\"include\":\"source.lean4.markdown\"},{\"include\":\"#blockComment\"}]}},\"scopeName\":\"source.lean4\",\"aliases\":[\"lean4\"]}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/YJb9dmdj.js",
    "content": "import e from\"./C5wWYbrZ.js\";const n=Object.freeze(JSON.parse('{\"displayName\":\"HXML\",\"fileTypes\":[\"hxml\"],\"foldingStartMarker\":\"--next\",\"foldingStopMarker\":\"\\\\\\\\n\\\\\\\\n\",\"name\":\"hxml\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.hxml\"}},\"match\":\"(#).*$\\\\\\\\n?\",\"name\":\"comment.line.number-sign.hxml\"},{\"begin\":\"(?<!\\\\\\\\w)(--macro)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.hxml\"}},\"end\":\"\\\\\\\\n\",\"patterns\":[{\"include\":\"source.hx#block-contents\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.other.hxml\"},\"2\":{\"name\":\"support.package.hx\"},\"4\":{\"name\":\"entity.name.type.hx\"}},\"match\":\"(?<!\\\\\\\\w)(-m|-main|--main|--run)\\\\\\\\b\\\\\\\\s*\\\\\\\\b(?:(([a-z][a-zA-Z0-9]*\\\\\\\\.)*)(_*[A-Z]\\\\\\\\w*))?\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.hxml\"}},\"match\":\"(?<!\\\\\\\\w)(-cppia|-cpp?|-js|-as3|-swf-(header|version|lib(-extern)?)|-swf9?|-neko|-python|-php|-cs|-java-lib|-java|-xml|-lua|-hl|-x|-lib|-D|-resource|-exclude|-version|-v|-debug|-prompt|-cmd|-dce\\\\\\\\s+(std|full|no)?|--flash-strict|--no-traces|--flash-use-stage|--neko-source|--gen-hx-classes|-net-lib|-net-std|-c-arg|--each|--next|--display|--no-output|--times|--no-inline|--no-opt|--php-front|--php-lib|--php-prefix|--remap|--help-defines|--help-metas|-help|--help|-java|-cs|--js-modern|--interp|--eval|--dce|--wait|--connect|--cwd|--run).*$\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.hxml\"}},\"match\":\"(?<!\\\\\\\\w)(--js(on)?|--lua|--swf-(header|version|lib(-extern)?)|--swf|--as3|--neko|--php|--cppia|--cpp|--cppia|--cs|--java-lib(-extern)?|--java|--jvm|--python|--hl|-p|--class-path|-L|--library|--define|-r|--resource|--cmd|-C|--verbose|--debug|--prompt|--xml|--json|--net-lib|--net-std|--c-arg|--version|--haxelib-global|-h|--main|--server-connect|--server-listen).*$\"}],\"scopeName\":\"source.hxml\",\"embeddedLangs\":[\"haxe\"]}')),t=[...e,n];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/ZlaFEk-P.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"'\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"],[\"<\",\">\"],[\"addhandler\",\"end addhandler\"],[\"class\",\"end class\"],[\"enum\",\"end enum\"],[\"event\",\"end event\"],[\"function\",\"end function\"],[\"get\",\"end get\"],[\"if\",\"end if\"],[\"interface\",\"end interface\"],[\"module\",\"end module\"],[\"namespace\",\"end namespace\"],[\"operator\",\"end operator\"],[\"property\",\"end property\"],[\"raiseevent\",\"end raiseevent\"],[\"removehandler\",\"end removehandler\"],[\"select\",\"end select\"],[\"set\",\"end set\"],[\"structure\",\"end structure\"],[\"sub\",\"end sub\"],[\"synclock\",\"end synclock\"],[\"try\",\"end try\"],[\"while\",\"end while\"],[\"with\",\"end with\"],[\"using\",\"end using\"],[\"do\",\"loop\"],[\"for\",\"next\"]],autoClosingPairs:[{open:\"{\",close:\"}\",notIn:[\"string\",\"comment\"]},{open:\"[\",close:\"]\",notIn:[\"string\",\"comment\"]},{open:\"(\",close:\")\",notIn:[\"string\",\"comment\"]},{open:'\"',close:'\"',notIn:[\"string\",\"comment\"]},{open:\"<\",close:\">\",notIn:[\"string\",\"comment\"]}],folding:{markers:{start:new RegExp(\"^\\\\s*#Region\\\\b\"),end:new RegExp(\"^\\\\s*#End Region\\\\b\")}}},n={defaultToken:\"\",tokenPostfix:\".vb\",ignoreCase:!0,brackets:[{token:\"delimiter.bracket\",open:\"{\",close:\"}\"},{token:\"delimiter.array\",open:\"[\",close:\"]\"},{token:\"delimiter.parenthesis\",open:\"(\",close:\")\"},{token:\"delimiter.angle\",open:\"<\",close:\">\"},{token:\"keyword.tag-addhandler\",open:\"addhandler\",close:\"end addhandler\"},{token:\"keyword.tag-class\",open:\"class\",close:\"end class\"},{token:\"keyword.tag-enum\",open:\"enum\",close:\"end enum\"},{token:\"keyword.tag-event\",open:\"event\",close:\"end event\"},{token:\"keyword.tag-function\",open:\"function\",close:\"end function\"},{token:\"keyword.tag-get\",open:\"get\",close:\"end get\"},{token:\"keyword.tag-if\",open:\"if\",close:\"end if\"},{token:\"keyword.tag-interface\",open:\"interface\",close:\"end interface\"},{token:\"keyword.tag-module\",open:\"module\",close:\"end module\"},{token:\"keyword.tag-namespace\",open:\"namespace\",close:\"end namespace\"},{token:\"keyword.tag-operator\",open:\"operator\",close:\"end operator\"},{token:\"keyword.tag-property\",open:\"property\",close:\"end property\"},{token:\"keyword.tag-raiseevent\",open:\"raiseevent\",close:\"end raiseevent\"},{token:\"keyword.tag-removehandler\",open:\"removehandler\",close:\"end removehandler\"},{token:\"keyword.tag-select\",open:\"select\",close:\"end select\"},{token:\"keyword.tag-set\",open:\"set\",close:\"end set\"},{token:\"keyword.tag-structure\",open:\"structure\",close:\"end structure\"},{token:\"keyword.tag-sub\",open:\"sub\",close:\"end sub\"},{token:\"keyword.tag-synclock\",open:\"synclock\",close:\"end synclock\"},{token:\"keyword.tag-try\",open:\"try\",close:\"end try\"},{token:\"keyword.tag-while\",open:\"while\",close:\"end while\"},{token:\"keyword.tag-with\",open:\"with\",close:\"end with\"},{token:\"keyword.tag-using\",open:\"using\",close:\"end using\"},{token:\"keyword.tag-do\",open:\"do\",close:\"loop\"},{token:\"keyword.tag-for\",open:\"for\",close:\"next\"}],keywords:[\"AddHandler\",\"AddressOf\",\"Alias\",\"And\",\"AndAlso\",\"As\",\"Async\",\"Boolean\",\"ByRef\",\"Byte\",\"ByVal\",\"Call\",\"Case\",\"Catch\",\"CBool\",\"CByte\",\"CChar\",\"CDate\",\"CDbl\",\"CDec\",\"Char\",\"CInt\",\"Class\",\"CLng\",\"CObj\",\"Const\",\"Continue\",\"CSByte\",\"CShort\",\"CSng\",\"CStr\",\"CType\",\"CUInt\",\"CULng\",\"CUShort\",\"Date\",\"Decimal\",\"Declare\",\"Default\",\"Delegate\",\"Dim\",\"DirectCast\",\"Do\",\"Double\",\"Each\",\"Else\",\"ElseIf\",\"End\",\"EndIf\",\"Enum\",\"Erase\",\"Error\",\"Event\",\"Exit\",\"False\",\"Finally\",\"For\",\"Friend\",\"Function\",\"Get\",\"GetType\",\"GetXMLNamespace\",\"Global\",\"GoSub\",\"GoTo\",\"Handles\",\"If\",\"Implements\",\"Imports\",\"In\",\"Inherits\",\"Integer\",\"Interface\",\"Is\",\"IsNot\",\"Let\",\"Lib\",\"Like\",\"Long\",\"Loop\",\"Me\",\"Mod\",\"Module\",\"MustInherit\",\"MustOverride\",\"MyBase\",\"MyClass\",\"NameOf\",\"Namespace\",\"Narrowing\",\"New\",\"Next\",\"Not\",\"Nothing\",\"NotInheritable\",\"NotOverridable\",\"Object\",\"Of\",\"On\",\"Operator\",\"Option\",\"Optional\",\"Or\",\"OrElse\",\"Out\",\"Overloads\",\"Overridable\",\"Overrides\",\"ParamArray\",\"Partial\",\"Private\",\"Property\",\"Protected\",\"Public\",\"RaiseEvent\",\"ReadOnly\",\"ReDim\",\"RemoveHandler\",\"Resume\",\"Return\",\"SByte\",\"Select\",\"Set\",\"Shadows\",\"Shared\",\"Short\",\"Single\",\"Static\",\"Step\",\"Stop\",\"String\",\"Structure\",\"Sub\",\"SyncLock\",\"Then\",\"Throw\",\"To\",\"True\",\"Try\",\"TryCast\",\"TypeOf\",\"UInteger\",\"ULong\",\"UShort\",\"Using\",\"Variant\",\"Wend\",\"When\",\"While\",\"Widening\",\"With\",\"WithEvents\",\"WriteOnly\",\"Xor\"],tagwords:[\"If\",\"Sub\",\"Select\",\"Try\",\"Class\",\"Enum\",\"Function\",\"Get\",\"Interface\",\"Module\",\"Namespace\",\"Operator\",\"Set\",\"Structure\",\"Using\",\"While\",\"With\",\"Do\",\"Loop\",\"For\",\"Next\",\"Property\",\"Continue\",\"AddHandler\",\"RemoveHandler\",\"Event\",\"RaiseEvent\",\"SyncLock\"],symbols:/[=><!~?;\\.,:&|+\\-*\\/\\^%]+/,integersuffix:/U?[DI%L&S@]?/,floatsuffix:/[R#F!]?/,tokenizer:{root:[{include:\"@whitespace\"},[/next(?!\\w)/,{token:\"keyword.tag-for\"}],[/loop(?!\\w)/,{token:\"keyword.tag-do\"}],[/end\\s+(?!for|do)(addhandler|class|enum|event|function|get|if|interface|module|namespace|operator|property|raiseevent|removehandler|select|set|structure|sub|synclock|try|while|with|using)/,{token:\"keyword.tag-$1\"}],[/[a-zA-Z_]\\w*/,{cases:{\"@tagwords\":{token:\"keyword.tag-$0\"},\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],[/^\\s*#\\w+/,\"keyword\"],[/\\d*\\d+e([\\-+]?\\d+)?(@floatsuffix)/,\"number.float\"],[/\\d*\\.\\d+(e[\\-+]?\\d+)?(@floatsuffix)/,\"number.float\"],[/&H[0-9a-f]+(@integersuffix)/,\"number.hex\"],[/&0[0-7]+(@integersuffix)/,\"number.octal\"],[/\\d+(@integersuffix)/,\"number\"],[/#.*#/,\"number\"],[/[{}()\\[\\]]/,\"@brackets\"],[/@symbols/,\"delimiter\"],[/[\"\\u201c\\u201d]/,{token:\"string.quote\",next:\"@string\"}]],whitespace:[[/[ \\t\\r\\n]+/,\"\"],[/(\\'|REM(?!\\w)).*$/,\"comment\"]],string:[[/[^\"\\u201c\\u201d]+/,\"string\"],[/[\"\\u201c\\u201d]{2}/,\"string.escape\"],[/[\"\\u201c\\u201d]C?/,{token:\"string.quote\",next:\"@pop\"}]]}};export{e as conf,n as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/_FEXNRsZ.js",
    "content": "import{d as $,m as k,u as L,r as m,a as O,c as b,w as p,n as B,o as S,A as j,s as z,h as I,e as K,f as s,_ as A,g as R,i as n,j as o,k as q,l as H,p as W,q as F,t as G,v as J,x as P,y as Q,z as X}from\"./CU_MfyYc.js\";import{_ as Y}from\"./DK27pemE.js\";const Z=W(Y),ee={class:\"flex items-center justify-between\"},te={class:\"space-y-4\"},oe={class:\"flex justify-end gap-3\"},le=$({__name:\"LiveNotesModal\",props:k({sessionId:{},initialTitle:{},initialDescription:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:k([\"saved\"],[\"update:modelValue\"]),setup(y,{emit:h}){const a=y,V=h,i=L(y,\"modelValue\"),r=m(a.initialTitle||\"\"),d=m(a.initialDescription||\"\"),v=m(!1),u=m(),C=O(),g=b(()=>C.value===\"light\"?\"vs-light\":\"vs-dark\"),T={automaticLayout:!0,minimap:{enabled:!1},fontSize:15,lineHeight:21,wordWrap:\"on\"},x=b(()=>r.value!==(a.initialTitle||\"\")||d.value!==(a.initialDescription||\"\"));p(g,t=>{var e,c;(c=(e=u.value)==null?void 0:e.$editor)==null||c.updateOptions({theme:t})}),p(()=>a.initialTitle,t=>{r.value=t||\"\"}),p(()=>a.initialDescription,t=>{d.value=t||\"\"}),p(i,async t=>{t?(await B(),setTimeout(()=>{var e;(e=u.value)!=null&&e.$editor&&(u.value.$editor.updateOptions({theme:g.value}),u.value.$editor.addCommand(2051,()=>{_()}))},100),window.addEventListener(\"keydown\",f)):window.removeEventListener(\"keydown\",f)}),S(()=>{window.removeEventListener(\"keydown\",f)});function f(t){(t.metaKey||t.ctrlKey)&&t.key===\"Enter\"&&(t.preventDefault(),_())}async function _(){if(x.value){v.value=!0;try{await j().updateSessionNotes(a.sessionId,r.value,d.value),z(\"success\",\"Notes saved successfully\"),V(\"saved\",{title:r.value,description:d.value}),i.value=!1}catch(t){I(t)}finally{v.value=!1}}}return(t,e)=>{const c=J,D=q,E=Z,N=H,w=G,U=X,M=A;return R(),K(M,{modelValue:i.value,\"onUpdate:modelValue\":e[4]||(e[4]=l=>i.value=l),ui:{width:\"sm:max-w-3xl\"}},{default:s(()=>[n(U,null,{header:s(()=>[o(\"div\",ee,[e[5]||(e[5]=o(\"h3\",{class:\"text-lg font-semibold\"},\"Add Title & Notes\",-1)),n(c,{text:\"Close\",popper:{arrow:!0,offsetDistance:10}},{default:s(()=>[o(\"button\",{class:\"p-2 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-full text-gray-400 hover:text-gray-700 dark:hover:text-gray-200 focus:outline-none transition-all duration-300\",onClick:e[0]||(e[0]=l=>i.value=!1)},[n(P(Q),{class:\"h-5 w-5\",\"aria-hidden\":\"true\"})])]),_:1})])]),footer:s(()=>[o(\"div\",oe,[n(w,{color:\"gray\",variant:\"ghost\",label:\"Cancel\",onClick:e[3]||(e[3]=l=>i.value=!1)}),n(w,{color:\"primary\",label:\"Save\",icon:\"i-heroicons-check\",disabled:!x.value,loading:v.value,onClick:_},null,8,[\"disabled\",\"loading\"])])]),default:s(()=>[o(\"div\",te,[o(\"div\",null,[e[6]||(e[6]=o(\"label\",{class:\"block text-sm font-medium mb-2\"},\"Title\",-1)),n(D,{modelValue:r.value,\"onUpdate:modelValue\":e[1]||(e[1]=l=>r.value=l),placeholder:\"Enter a title for this live session\",maxlength:\"255\",size:\"lg\"},null,8,[\"modelValue\"])]),o(\"div\",null,[e[8]||(e[8]=o(\"label\",{class:\"block text-sm font-medium mb-2\"},\"Description\",-1)),n(N,null,{default:s(()=>[n(E,{ref_key:\"descriptionEditorRef\",ref:u,modelValue:d.value,\"onUpdate:modelValue\":e[2]||(e[2]=l=>d.value=l),lang:\"markdown\",options:T,class:\"border border-gray-200 dark:border-gray-800 rounded\",style:{height:\"400px\"}},{default:s(()=>e[7]||(e[7]=[F(\" Loading editor... \")])),_:1},8,[\"modelValue\"])]),_:1})])])]),_:1})]),_:1},8,[\"modelValue\"])}}});export{le as _};\n"
  },
  {
    "path": "jesse/static/_nuxt/_id_.CZ9YoXDN.css",
    "content": "[data-v-ac8c2f8b] ::-webkit-scrollbar{display:none}[data-v-ac8c2f8b] *{-ms-overflow-style:none;scrollbar-width:none}\n"
  },
  {
    "path": "jesse/static/_nuxt/_id_.PO5SUJPO.css",
    "content": "[data-v-310af101] ::-webkit-scrollbar{display:none}[data-v-310af101] *{-ms-overflow-style:none;scrollbar-width:none}\n"
  },
  {
    "path": "jesse/static/_nuxt/ahYVQIuB.js",
    "content": "import e from\"./cPjAOO0u.js\";import\"./xI-RfyKK.js\";const n=Object.freeze(JSON.parse(`{\"displayName\":\"XSL\",\"name\":\"xsl\",\"patterns\":[{\"begin\":\"(<)(xsl)((:))(template)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.xml\"},\"2\":{\"name\":\"entity.name.tag.namespace.xml\"},\"3\":{\"name\":\"entity.name.tag.xml\"},\"4\":{\"name\":\"punctuation.separator.namespace.xml\"},\"5\":{\"name\":\"entity.name.tag.localname.xml\"}},\"end\":\"(>)\",\"name\":\"meta.tag.xml.template\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.namespace.xml\"},\"2\":{\"name\":\"entity.other.attribute-name.xml\"},\"3\":{\"name\":\"punctuation.separator.namespace.xml\"},\"4\":{\"name\":\"entity.other.attribute-name.localname.xml\"}},\"match\":\" (?:([-_a-zA-Z0-9]+)((:)))?([a-zA-Z-]+)\"},{\"include\":\"#doublequotedString\"},{\"include\":\"#singlequotedString\"}]},{\"include\":\"text.xml\"}],\"repository\":{\"doublequotedString\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.xml\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.xml\"}},\"name\":\"string.quoted.double.xml\"},\"singlequotedString\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.xml\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.xml\"}},\"name\":\"string.quoted.single.xml\"}},\"scopeName\":\"text.xml.xsl\",\"embeddedLangs\":[\"xml\"]}`)),m=[...e,n];export{m as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/ajMbGru0.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Genie\",\"fileTypes\":[\"gs\"],\"name\":\"genie\",\"patterns\":[{\"include\":\"#code\"}],\"repository\":{\"code\":{\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#constants\"},{\"include\":\"#strings\"},{\"include\":\"#keywords\"},{\"include\":\"#types\"},{\"include\":\"#functions\"},{\"include\":\"#variables\"}]},\"comments\":{\"patterns\":[{\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.vala\"}},\"match\":\"/\\\\\\\\*\\\\\\\\*/\",\"name\":\"comment.block.empty.vala\"},{\"include\":\"text.html.javadoc\"},{\"include\":\"#comments-inline\"}]},\"comments-inline\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.vala\"}},\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.vala\"},{\"captures\":{\"1\":{\"name\":\"comment.line.double-slash.vala\"},\"2\":{\"name\":\"punctuation.definition.comment.vala\"}},\"match\":\"\\\\\\\\s*((//).*$\\\\\\\\n?)\"}]},\"constants\":{\"patterns\":[{\"match\":\"\\\\\\\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\\\\\\\.?[0-9]*)|(\\\\\\\\.[0-9]+))((e|E)(\\\\\\\\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?\\\\\\\\b\",\"name\":\"constant.numeric.vala\"},{\"match\":\"\\\\\\\\b([A-Z][A-Z0-9_]+)\\\\\\\\b\",\"name\":\"variable.other.constant.vala\"}]},\"functions\":{\"patterns\":[{\"match\":\"(\\\\\\\\w+)(?=\\\\\\\\s*(<[\\\\\\\\s\\\\\\\\w.]+>\\\\\\\\s*)?\\\\\\\\()\",\"name\":\"entity.name.function.vala\"}]},\"keywords\":{\"patterns\":[{\"match\":\"(?<=^|[^@\\\\\\\\w\\\\\\\\.])(as|do|if|in|is|of|or|to|and|def|for|get|isa|new|not|out|ref|set|try|var|case|dict|else|enum|init|list|lock|null|pass|prop|self|true|uses|void|weak|when|array|async|break|class|const|event|false|final|owned|print|super|raise|while|yield|assert|delete|downto|except|extern|inline|params|public|raises|return|sealed|sizeof|static|struct|typeof|default|dynamic|ensures|finally|private|unowned|virtual|abstract|continue|delegate|internal|override|readonly|requires|volatile|construct|errordomain|interface|namespace|protected|implements)\\\\\\\\b\",\"name\":\"keyword.vala\"},{\"match\":\"(?<=^|[^@\\\\\\\\w\\\\\\\\.])(bool|double|float|unichar|char|uchar|int|uint|long|ulong|short|ushort|size_t|ssize_t|string|void|signal|int8|int16|int32|int64|uint8|uint16|uint32|uint64)\\\\\\\\b\",\"name\":\"keyword.vala\"},{\"match\":\"(#if|#elif|#else|#endif)\",\"name\":\"keyword.vala\"}]},\"strings\":{\"patterns\":[{\"begin\":\"\\\\\"\\\\\"\\\\\"\",\"end\":\"\\\\\"\\\\\"\\\\\"\",\"name\":\"string.quoted.triple.vala\"},{\"begin\":\"@\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.interpolated.vala\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.vala\"},{\"match\":\"\\\\\\\\$\\\\\\\\w+\",\"name\":\"constant.character.escape.vala\"},{\"match\":\"\\\\\\\\$\\\\\\\\(([^)(]|\\\\\\\\(([^)(]|\\\\\\\\([^)]*\\\\\\\\))*\\\\\\\\))*\\\\\\\\)\",\"name\":\"constant.character.escape.vala\"}]},{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.vala\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.vala\"}]},{\"begin\":\"'\",\"end\":\"'\",\"name\":\"string.quoted.single.vala\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.vala\"}]},{\"match\":\"/((\\\\\\\\\\\\\\\\/)|([^/]))*/(?=\\\\\\\\s*[,;)\\\\\\\\.\\\\\\\\n])\",\"name\":\"string.regexp.vala\"}]},\"types\":{\"patterns\":[{\"match\":\"(?<=^|[^@\\\\\\\\w\\\\\\\\.])(bool|double|float|unichar|char|uchar|int|uint|long|ulong|short|ushort|size_t|ssize_t|string|void|signal|int8|int16|int32|int64|uint8|uint16|uint32|uint64)\\\\\\\\b\",\"name\":\"storage.type.primitive.vala\"},{\"match\":\"\\\\\\\\b([A-Z]+\\\\\\\\w*)\\\\\\\\b\",\"name\":\"entity.name.type.vala\"}]},\"variables\":{\"patterns\":[{\"match\":\"\\\\\\\\b([_a-z]+\\\\\\\\w*)\\\\\\\\b\",\"name\":\"variable.other.vala\"}]}},\"scopeName\":\"source.genie\"}`)),a=[e];export{a as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/atvbtKCR.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Shell\",\"name\":\"shellscript\",\"patterns\":[{\"include\":\"#initial_context\"}],\"repository\":{\"alias_statement\":{\"begin\":\"(?:(?:[ \\\\\\\\t]*+)(alias)(?:[ \\\\\\\\t]*+)((?:(?:((?<!\\\\\\\\w)-\\\\\\\\w+\\\\\\\\b)(?:[ \\\\\\\\t]*+))*))(?:(?:[ \\\\\\\\t]*+)(?:((?<!\\\\\\\\w)(?:[a-zA-Z_0-9-]+)(?!\\\\\\\\w))(?:(?:(\\\\\\\\[)((?:(?:(?:(?:\\\\\\\\$?)(?:(?<!\\\\\\\\w)(?:[a-zA-Z_0-9-]+)(?!\\\\\\\\w))|@)|\\\\\\\\*)|(-?\\\\\\\\d+)))(\\\\\\\\]))?))(?:(?:(\\\\\\\\=)|(\\\\\\\\+\\\\\\\\=))|(\\\\\\\\-\\\\\\\\=))))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.alias.shell\"},\"2\":{\"patterns\":[{\"match\":\"(?<!\\\\\\\\w)-\\\\\\\\w+\\\\\\\\b\",\"name\":\"string.unquoted.argument.shell constant.other.option.shell\"}]},\"3\":{\"name\":\"string.unquoted.argument.shell constant.other.option.shell\"},\"4\":{\"name\":\"variable.other.assignment.shell\"},\"5\":{\"name\":\"punctuation.definition.array.access.shell\"},\"6\":{\"name\":\"variable.other.assignment.shell\"},\"7\":{\"name\":\"constant.numeric.shell constant.numeric.integer.shell\"},\"8\":{\"name\":\"punctuation.definition.array.access.shell\"},\"9\":{\"name\":\"keyword.operator.assignment.shell\"},\"10\":{\"name\":\"keyword.operator.assignment.compound.shell\"},\"11\":{\"name\":\"keyword.operator.assignment.compound.shell\"}},\"end\":\"(?:(?= |\\\\\\\\t|$)|(?:(?:(?:(;)|(&&))|(\\\\\\\\|\\\\\\\\|))|(&)))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.semicolon.shell\"},\"2\":{\"name\":\"punctuation.separator.statement.and.shell\"},\"3\":{\"name\":\"punctuation.separator.statement.or.shell\"},\"4\":{\"name\":\"punctuation.separator.statement.background.shell\"}},\"name\":\"meta.expression.assignment.alias.shell\",\"patterns\":[{\"include\":\"#normal_context\"}]},\"argument\":{\"begin\":\"(?:[ \\\\\\\\t]++)(?!(?:&|\\\\\\\\||\\\\\\\\(|\\\\\\\\[|#|\\\\\\\\n|$|;))\",\"beginCaptures\":{},\"end\":\"(?= |\\\\\\\\t|;|\\\\\\\\||&|$|\\\\\\\\n|\\\\\\\\)|\\\\\\\\\\`)\",\"endCaptures\":{},\"name\":\"meta.argument.shell\",\"patterns\":[{\"include\":\"#argument_context\"},{\"include\":\"#line_continuation\"}]},\"argument_context\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"string.unquoted.argument.shell\",\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"variable.language.special.wildcard.shell\"},{\"include\":\"#variable\"},{\"include\":\"#numeric_literal\"},{\"captures\":{\"1\":{\"name\":\"constant.language.$1.shell\"}},\"match\":\"(?<!\\\\\\\\w)(\\\\\\\\b(?:true|false)\\\\\\\\b)(?!\\\\\\\\w)\"}]}},\"match\":\"(?:[ \\\\\\\\t]*+)((?:[^ \\\\t\\\\n>&;<>\\\\\\\\(\\\\\\\\)\\\\\\\\$\\`\\\\\\\\\\\\\\\\\\\\\"'<\\\\\\\\|]+)(?!>))\"},{\"include\":\"#normal_context\"}]},\"arithmetic_double\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.arithmetic.double.shell\"}},\"end\":\"\\\\\\\\)(?:\\\\\\\\s*)\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arithmetic.double.shell\"}},\"name\":\"meta.arithmetic.shell\",\"patterns\":[{\"include\":\"#math\"},{\"include\":\"#string\"}]}]},\"arithmetic_no_dollar\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.arithmetic.single.shell\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arithmetic.single.shell\"}},\"name\":\"meta.arithmetic.shell\",\"patterns\":[{\"include\":\"#math\"},{\"include\":\"#string\"}]}]},\"array_access_inline\":{\"captures\":{\"1\":{\"name\":\"punctuation.section.array.shell\"},\"2\":{\"patterns\":[{\"include\":\"#special_expansion\"},{\"include\":\"#string\"},{\"include\":\"#variable\"}]},\"3\":{\"name\":\"punctuation.section.array.shell\"}},\"match\":\"(?:(\\\\\\\\[)([^\\\\\\\\[\\\\\\\\]]+)(\\\\\\\\]))\"},\"array_value\":{\"begin\":\"(?:[ \\\\\\\\t]*+)(?:((?<!\\\\\\\\w)(?:[a-zA-Z_0-9-]+)(?!\\\\\\\\w))(?:(?:(\\\\\\\\[)((?:(?:(?:(?:\\\\\\\\$?)(?:(?<!\\\\\\\\w)(?:[a-zA-Z_0-9-]+)(?!\\\\\\\\w))|@)|\\\\\\\\*)|(-?\\\\\\\\d+)))(\\\\\\\\]))?))(?:(?:(\\\\\\\\=)|(\\\\\\\\+\\\\\\\\=))|(\\\\\\\\-\\\\\\\\=))(?:[ \\\\\\\\t]*+)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.assignment.shell\"},\"2\":{\"name\":\"punctuation.definition.array.access.shell\"},\"3\":{\"name\":\"variable.other.assignment.shell\"},\"4\":{\"name\":\"constant.numeric.shell constant.numeric.integer.shell\"},\"5\":{\"name\":\"punctuation.definition.array.access.shell\"},\"6\":{\"name\":\"keyword.operator.assignment.shell\"},\"7\":{\"name\":\"keyword.operator.assignment.compound.shell\"},\"8\":{\"name\":\"keyword.operator.assignment.compound.shell\"},\"9\":{\"name\":\"punctuation.definition.array.shell\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.array.shell\"}},\"patterns\":[{\"include\":\"#comment\"},{\"captures\":{\"1\":{\"name\":\"variable.other.assignment.array.shell entity.other.attribute-name.shell\"},\"2\":{\"name\":\"keyword.operator.assignment.shell punctuation.definition.assignment.shell\"}},\"match\":\"(?:((?<!\\\\\\\\w)(?:[a-zA-Z_0-9-]+)(?!\\\\\\\\w))(\\\\\\\\=))\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.bracket.named-array.shell\"},\"2\":{\"name\":\"string.unquoted.shell entity.other.attribute-name.bracket.shell\"},\"3\":{\"name\":\"punctuation.definition.bracket.named-array.shell\"},\"4\":{\"name\":\"punctuation.definition.assignment.shell\"}},\"match\":\"(?:(\\\\\\\\[)(.+?)(\\\\\\\\])(\\\\\\\\=))\"},{\"include\":\"#normal_context\"},{\"include\":\"#simple_unquoted\"}]},\"assignment_statement\":{\"patterns\":[{\"include\":\"#array_value\"},{\"include\":\"#modified_assignment_statement\"},{\"include\":\"#normal_assignment_statement\"}]},\"basic_command_name\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.$1.shell\"},\"2\":{\"name\":\"entity.name.function.call.shell entity.name.command.shell\",\"patterns\":[{\"match\":\"(?<!\\\\\\\\w)(?:continue|return|break)(?!\\\\\\\\w)\",\"name\":\"keyword.control.$0.shell\"},{\"match\":\"(?<!\\\\\\\\w)(?:(?:unfunction|continue|autoload|unsetopt|bindkey|builtin|getopts|command|declare|unalias|history|unlimit|typeset|suspend|source|printf|unhash|disown|ulimit|return|which|alias|break|false|print|shift|times|umask|umask|unset|read|type|exec|eval|wait|echo|dirs|jobs|kill|hash|stat|exit|test|trap|true|let|set|pwd|cd|fg|bg|fc|:|\\\\\\\\.)(?!\\\\\\\\/))(?!\\\\\\\\w)(?!-)\",\"name\":\"support.function.builtin.shell\"},{\"include\":\"#variable\"}]}},\"match\":\"(?:(?:(?!(?:!|&|\\\\\\\\||\\\\\\\\(|\\\\\\\\)|\\\\\\\\{|\\\\\\\\[|<|>|#|\\\\\\\\n|$|;|[ \\\\\\\\t]))(?!nocorrect |nocorrect\\\\t|nocorrect$|readonly |readonly\\\\t|readonly$|function |function\\\\t|function$|foreach |foreach\\\\t|foreach$|coproc |coproc\\\\t|coproc$|logout |logout\\\\t|logout$|export |export\\\\t|export$|select |select\\\\t|select$|repeat |repeat\\\\t|repeat$|pushd |pushd\\\\t|pushd$|until |until\\\\t|until$|while |while\\\\t|while$|local |local\\\\t|local$|case |case\\\\t|case$|done |done\\\\t|done$|elif |elif\\\\t|elif$|else |else\\\\t|else$|esac |esac\\\\t|esac$|popd |popd\\\\t|popd$|then |then\\\\t|then$|time |time\\\\t|time$|for |for\\\\t|for$|end |end\\\\t|end$|fi |fi\\\\t|fi$|do |do\\\\t|do$|in |in\\\\t|in$|if |if\\\\t|if$))(?:((?<=^|;|&|[ \\\\\\\\t])(?:readonly|declare|typeset|export|local)(?=[ \\\\\\\\t]|;|&|$))|((?!\\\\\"|'|\\\\\\\\\\\\\\\\\\\\\\\\n?$)(?:[^!'\\\\\"<> \\\\\\\\t\\\\\\\\n\\\\\\\\r]+?)))(?:(?= |\\\\\\\\t)|(?:(?=;|\\\\\\\\||&|\\\\\\\\n|\\\\\\\\)|\\\\\\\\\\`|\\\\\\\\{|\\\\\\\\}|[ \\\\\\\\t]*#|\\\\\\\\])(?<!\\\\\\\\\\\\\\\\))))\",\"name\":\"meta.statement.command.name.basic.shell\"},\"block_comment\":{\"begin\":\"(?:(?:\\\\\\\\s*+)(\\\\\\\\/\\\\\\\\*))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.begin.shell\"}},\"end\":\"\\\\\\\\*\\\\\\\\/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.shell\"}},\"name\":\"comment.block.shell\"},\"boolean\":{\"match\":\"\\\\\\\\b(?:true|false)\\\\\\\\b\",\"name\":\"constant.language.$0.shell\"},\"case_statement\":{\"begin\":\"(?:(\\\\\\\\bcase\\\\\\\\b)(?:[ \\\\\\\\t]*+)(.+?)(?:[ \\\\\\\\t]*+)(\\\\\\\\bin\\\\\\\\b))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.case.shell\"},\"2\":{\"patterns\":[{\"include\":\"#initial_context\"}]},\"3\":{\"name\":\"keyword.control.in.shell\"}},\"end\":\"\\\\\\\\besac\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.esac.shell\"}},\"name\":\"meta.case.shell\",\"patterns\":[{\"include\":\"#comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.pattern.case.default.shell\"}},\"match\":\"(?:[ \\\\\\\\t]*+)(\\\\\\\\* *\\\\\\\\))\"},{\"begin\":\"(?<!\\\\\\\\))(?!(?:[ \\\\\\\\t]*+)(?:esac\\\\\\\\b|$))\",\"beginCaptures\":{},\"end\":\"(?:(?=\\\\\\\\besac\\\\\\\\b)|(\\\\\\\\)))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.pattern.case.shell\"}},\"name\":\"meta.case.entry.pattern.shell\",\"patterns\":[{\"include\":\"#case_statement_context\"}]},{\"begin\":\"(?<=\\\\\\\\))\",\"beginCaptures\":{},\"end\":\"(?:(;;)|(?=\\\\\\\\besac\\\\\\\\b))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.case.shell\"}},\"name\":\"meta.case.entry.body.shell\",\"patterns\":[{\"include\":\"#typical_statements\"},{\"include\":\"#initial_context\"}]}]},\"case_statement_context\":{\"patterns\":[{\"match\":\"\\\\\\\\*\",\"name\":\"variable.language.special.quantifier.star.shell keyword.operator.quantifier.star.shell punctuation.definition.arbitrary-repetition.shell punctuation.definition.regex.arbitrary-repetition.shell\"},{\"match\":\"\\\\\\\\+\",\"name\":\"variable.language.special.quantifier.plus.shell keyword.operator.quantifier.plus.shell punctuation.definition.arbitrary-repetition.shell punctuation.definition.regex.arbitrary-repetition.shell\"},{\"match\":\"\\\\\\\\?\",\"name\":\"variable.language.special.quantifier.question.shell keyword.operator.quantifier.question.shell punctuation.definition.arbitrary-repetition.shell punctuation.definition.regex.arbitrary-repetition.shell\"},{\"match\":\"@\",\"name\":\"variable.language.special.at.shell keyword.operator.at.shell punctuation.definition.regex.at.shell\"},{\"match\":\"\\\\\\\\|\",\"name\":\"keyword.operator.orvariable.language.special.or.shell keyword.operator.alternation.ruby.shell punctuation.definition.regex.alternation.shell punctuation.separator.regex.alternation.shell\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.shell\"},{\"match\":\"(?<=\\\\\\\\tin| in| |\\\\\\\\t|;;)\\\\\\\\(\",\"name\":\"keyword.operator.pattern.case.shell\"},{\"begin\":\"(?<=\\\\\\\\S)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.group.shell punctuation.definition.regex.group.shell\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.shell punctuation.definition.regex.group.shell\"}},\"name\":\"meta.parenthese.shell\",\"patterns\":[{\"include\":\"#case_statement_context\"}]},{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.character-class.shell\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.character-class.shell\"}},\"name\":\"string.regexp.character-class.shell\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.shell\"}]},{\"include\":\"#string\"},{\"match\":\"[^) \\\\\\\\t\\\\\\\\n\\\\\\\\[\\\\\\\\?\\\\\\\\*\\\\\\\\|\\\\\\\\@]\",\"name\":\"string.unquoted.pattern.shell string.regexp.unquoted.shell\"}]},\"command_name_range\":{\"begin\":\"\\\\\\\\G\",\"beginCaptures\":{},\"end\":\"(?:(?= |\\\\\\\\t|;|\\\\\\\\||&|$|\\\\\\\\n|\\\\\\\\)|\\\\\\\\\\`)|(?=<))\",\"endCaptures\":{},\"name\":\"meta.statement.command.name.shell\",\"patterns\":[{\"match\":\"(?<!\\\\\\\\w)(?:continue|return|break)(?!\\\\\\\\w)\",\"name\":\"entity.name.function.call.shell entity.name.command.shell keyword.control.$0.shell\"},{\"match\":\"(?<!\\\\\\\\w)(?:(?:unfunction|continue|autoload|unsetopt|bindkey|builtin|getopts|command|declare|unalias|history|unlimit|typeset|suspend|source|printf|unhash|disown|ulimit|return|which|alias|break|false|print|shift|times|umask|umask|unset|read|type|exec|eval|wait|echo|dirs|jobs|kill|hash|stat|exit|test|trap|true|let|set|pwd|cd|fg|bg|fc|:|\\\\\\\\.)(?!\\\\\\\\/))(?!\\\\\\\\w)(?!-)\",\"name\":\"entity.name.function.call.shell entity.name.command.shell support.function.builtin.shell\"},{\"include\":\"#variable\"},{\"captures\":{\"1\":{\"name\":\"entity.name.function.call.shell entity.name.command.shell\"}},\"match\":\"(?:(?<!\\\\\\\\w)(?<=\\\\\\\\G|'|\\\\\"|\\\\\\\\}|\\\\\\\\))([^ \\\\\\\\n\\\\\\\\t\\\\\\\\r\\\\\"'=;&\\\\\\\\|\\`\\\\\\\\)\\\\\\\\{<>]+))\"},{\"begin\":\"(?:(?:\\\\\\\\G|(?<! |\\\\\\\\t|;|\\\\\\\\||&|\\\\\\\\n|\\\\\\\\{|#))(?:(\\\\\\\\$?)((?:(\\\\\")|(')))))\",\"beginCaptures\":{\"1\":{\"name\":\"meta.statement.command.name.quoted.shell punctuation.definition.string.shell entity.name.function.call.shell entity.name.command.shell\"},\"2\":{},\"3\":{\"name\":\"meta.statement.command.name.quoted.shell string.quoted.double.shell punctuation.definition.string.begin.shell entity.name.function.call.shell entity.name.command.shell\"},\"4\":{\"name\":\"meta.statement.command.name.quoted.shell string.quoted.single.shell punctuation.definition.string.begin.shell entity.name.function.call.shell entity.name.command.shell\"}},\"end\":\"(?<!\\\\\\\\G)(?<=(?:\\\\\\\\2))\",\"endCaptures\":{},\"patterns\":[{\"include\":\"#continuation_of_single_quoted_command_name\"},{\"include\":\"#continuation_of_double_quoted_command_name\"}]},{\"include\":\"#line_continuation\"},{\"include\":\"#simple_unquoted\"}]},\"command_statement\":{\"begin\":\"(?:(?:[ \\\\\\\\t]*+)(?:(?!(?:!|&|\\\\\\\\||\\\\\\\\(|\\\\\\\\)|\\\\\\\\{|\\\\\\\\[|<|>|#|\\\\\\\\n|$|;|[ \\\\\\\\t]))(?!nocorrect |nocorrect\\\\t|nocorrect$|readonly |readonly\\\\t|readonly$|function |function\\\\t|function$|foreach |foreach\\\\t|foreach$|coproc |coproc\\\\t|coproc$|logout |logout\\\\t|logout$|export |export\\\\t|export$|select |select\\\\t|select$|repeat |repeat\\\\t|repeat$|pushd |pushd\\\\t|pushd$|until |until\\\\t|until$|while |while\\\\t|while$|local |local\\\\t|local$|case |case\\\\t|case$|done |done\\\\t|done$|elif |elif\\\\t|elif$|else |else\\\\t|else$|esac |esac\\\\t|esac$|popd |popd\\\\t|popd$|then |then\\\\t|then$|time |time\\\\t|time$|for |for\\\\t|for$|end |end\\\\t|end$|fi |fi\\\\t|fi$|do |do\\\\t|do$|in |in\\\\t|in$|if |if\\\\t|if$)(?!\\\\\\\\\\\\\\\\\\\\\\\\n?$)))\",\"beginCaptures\":{},\"end\":\"(?=;|\\\\\\\\||&|\\\\\\\\n|\\\\\\\\)|\\\\\\\\\\`|\\\\\\\\{|\\\\\\\\}|[ \\\\\\\\t]*#|\\\\\\\\])(?<!\\\\\\\\\\\\\\\\)\",\"endCaptures\":{},\"name\":\"meta.statement.command.shell\",\"patterns\":[{\"include\":\"#command_name_range\"},{\"include\":\"#line_continuation\"},{\"include\":\"#option\"},{\"include\":\"#argument\"},{\"include\":\"#string\"},{\"include\":\"#heredoc\"}]},\"comment\":{\"captures\":{\"1\":{\"name\":\"comment.line.number-sign.shell meta.shebang.shell\"},\"2\":{\"name\":\"punctuation.definition.comment.shebang.shell\"},\"3\":{\"name\":\"comment.line.number-sign.shell\"},\"4\":{\"name\":\"punctuation.definition.comment.shell\"}},\"match\":\"(?:(?:^|(?:[ \\\\\\\\t]++))(?:((?:(#!)(?:.*)))|((?:(#)(?:.*)))))\"},\"comments\":{\"patterns\":[{\"include\":\"#block_comment\"},{\"include\":\"#line_comment\"}]},\"compound-command\":{\"patterns\":[{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.logical-expression.shell\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.logical-expression.shell\"}},\"name\":\"meta.scope.logical-expression.shell\",\"patterns\":[{\"include\":\"#logical-expression\"},{\"include\":\"#initial_context\"}]},{\"begin\":\"(?<=\\\\\\\\s|^){(?=\\\\\\\\s|$)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.shell\"}},\"end\":\"(?<=^|;)\\\\\\\\s*(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.group.shell\"}},\"name\":\"meta.scope.group.shell\",\"patterns\":[{\"include\":\"#initial_context\"}]}]},\"continuation_of_double_quoted_command_name\":{\"begin\":\"(?:\\\\\\\\G(?<=\\\\\"))\",\"beginCaptures\":{},\"contentName\":\"meta.statement.command.name.continuation string.quoted.double entity.name.function.call entity.name.command\",\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"string.quoted.double.shell punctuation.definition.string.end.shell entity.name.function.call.shell entity.name.command.shell\"}},\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[\\\\\\\\$\\\\\\\\n\\`\\\\\"\\\\\\\\\\\\\\\\]\",\"name\":\"constant.character.escape.shell\"},{\"include\":\"#variable\"},{\"include\":\"#interpolation\"}]},\"continuation_of_single_quoted_command_name\":{\"begin\":\"(?:\\\\\\\\G(?<='))\",\"beginCaptures\":{},\"contentName\":\"meta.statement.command.name.continuation string.quoted.single entity.name.function.call entity.name.command\",\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"string.quoted.single.shell punctuation.definition.string.end.shell entity.name.function.call.shell entity.name.command.shell\"}}},\"custom_command_names\":{\"patterns\":[]},\"custom_commands\":{\"patterns\":[]},\"double_quote_context\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[\\\\\\\\$\\`\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\n]\",\"name\":\"constant.character.escape.shell\"},{\"include\":\"#variable\"},{\"include\":\"#interpolation\"}]},\"double_quote_escape_char\":{\"match\":\"\\\\\\\\\\\\\\\\[\\\\\\\\$\\`\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\n]\",\"name\":\"constant.character.escape.shell\"},\"floating_keyword\":{\"patterns\":[{\"match\":\"(?<=^|;|&| |\\\\\\\\t)(?:then|elif|else|done|end|do|if|fi)(?= |\\\\\\\\t|;|&|$)\",\"name\":\"keyword.control.$0.shell\"}]},\"for_statement\":{\"patterns\":[{\"begin\":\"(?:(\\\\\\\\bfor\\\\\\\\b)(?:(?:[ \\\\\\\\t]*+)((?<!\\\\\\\\w)(?:[a-zA-Z_0-9-]+)(?!\\\\\\\\w))(?:[ \\\\\\\\t]*+)(\\\\\\\\bin\\\\\\\\b)))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.for.shell\"},\"2\":{\"name\":\"variable.other.for.shell\"},\"3\":{\"name\":\"keyword.control.in.shell\"}},\"end\":\"(?=;|\\\\\\\\||&|\\\\\\\\n|\\\\\\\\)|\\\\\\\\\\`|\\\\\\\\{|\\\\\\\\}|[ \\\\\\\\t]*#|\\\\\\\\])(?<!\\\\\\\\\\\\\\\\)\",\"endCaptures\":{},\"name\":\"meta.for.in.shell\",\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#simple_unquoted\"},{\"include\":\"#normal_context\"}]},{\"begin\":\"(\\\\\\\\bfor\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.for.shell\"}},\"end\":\"(?=;|\\\\\\\\||&|\\\\\\\\n|\\\\\\\\)|\\\\\\\\\\`|\\\\\\\\{|\\\\\\\\}|[ \\\\\\\\t]*#|\\\\\\\\])(?<!\\\\\\\\\\\\\\\\)\",\"endCaptures\":{},\"name\":\"meta.for.shell\",\"patterns\":[{\"include\":\"#arithmetic_double\"},{\"include\":\"#normal_context\"}]}]},\"function_definition\":{\"applyEndPatternLast\":1,\"begin\":\"(?:[ \\\\\\\\t]*+)(?:(?:(\\\\\\\\bfunction\\\\\\\\b)(?:[ \\\\\\\\t]*+)([^ \\\\\\\\t\\\\\\\\n\\\\\\\\r\\\\\\\\(\\\\\\\\)=\\\\\"']+)(?:(?:(\\\\\\\\()(?:[ \\\\\\\\t]*+)(\\\\\\\\)))?))|(?:([^ \\\\\\\\t\\\\\\\\n\\\\\\\\r\\\\\\\\(\\\\\\\\)=\\\\\"']+)(?:[ \\\\\\\\t]*+)(\\\\\\\\()(?:[ \\\\\\\\t]*+)(\\\\\\\\))))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.shell\"},\"2\":{\"name\":\"entity.name.function.shell\"},\"3\":{\"name\":\"punctuation.definition.arguments.shell\"},\"4\":{\"name\":\"punctuation.definition.arguments.shell\"},\"5\":{\"name\":\"entity.name.function.shell\"},\"6\":{\"name\":\"punctuation.definition.arguments.shell\"},\"7\":{\"name\":\"punctuation.definition.arguments.shell\"}},\"end\":\"(?<=\\\\\\\\}|\\\\\\\\))\",\"endCaptures\":{},\"name\":\"meta.function.shell\",\"patterns\":[{\"match\":\"(?:\\\\\\\\G(?:\\\\\\\\t| |\\\\\\\\n))\"},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.shell punctuation.section.function.definition.shell\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.shell punctuation.section.function.definition.shell\"}},\"name\":\"meta.function.body.shell\",\"patterns\":[{\"include\":\"#initial_context\"}]},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.shell punctuation.section.function.definition.shell\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.shell punctuation.section.function.definition.shell\"}},\"name\":\"meta.function.body.shell\",\"patterns\":[{\"include\":\"#initial_context\"}]},{\"include\":\"#initial_context\"}]},\"heredoc\":{\"patterns\":[{\"begin\":\"(?:((?<!<)(?:<<-))(?:[ \\\\\\\\t]*+)(\\\\\"|')(?:[ \\\\\\\\t]*+)([^\\\\\"']+?)(?=\\\\\\\\s|;|&|<|\\\\\"|')((?:\\\\\\\\2))(.*))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.heredoc.shell\"},\"2\":{\"name\":\"punctuation.definition.string.heredoc.quote.shell\"},\"3\":{\"name\":\"punctuation.definition.string.heredoc.delimiter.shell\"},\"4\":{\"name\":\"punctuation.definition.string.heredoc.quote.shell\"},\"5\":{\"patterns\":[{\"include\":\"#redirect_fix\"},{\"include\":\"#typical_statements\"}]}},\"contentName\":\"string.quoted.heredoc.indent.$3\",\"end\":\"(?:(?:^\\\\\\\\t*)(?:\\\\\\\\3)(?=\\\\\\\\s|;|&|$))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.heredoc.$0.shell\"}},\"patterns\":[]},{\"begin\":\"(?:((?<!<)(?:<<)(?!<))(?:[ \\\\\\\\t]*+)(\\\\\"|')(?:[ \\\\\\\\t]*+)([^\\\\\"']+?)(?=\\\\\\\\s|;|&|<|\\\\\"|')((?:\\\\\\\\2))(.*))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.heredoc.shell\"},\"2\":{\"name\":\"punctuation.definition.string.heredoc.quote.shell\"},\"3\":{\"name\":\"punctuation.definition.string.heredoc.delimiter.shell\"},\"4\":{\"name\":\"punctuation.definition.string.heredoc.quote.shell\"},\"5\":{\"patterns\":[{\"include\":\"#redirect_fix\"},{\"include\":\"#typical_statements\"}]}},\"contentName\":\"string.quoted.heredoc.no-indent.$3\",\"end\":\"(?:^(?:\\\\\\\\3)(?=\\\\\\\\s|;|&|$))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.heredoc.delimiter.shell\"}},\"patterns\":[]},{\"begin\":\"(?:((?<!<)(?:<<-))(?:[ \\\\\\\\t]*+)([^\\\\\"' \\\\\\\\t]+)(?=\\\\\\\\s|;|&|<|\\\\\"|')(.*))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.heredoc.shell\"},\"2\":{\"name\":\"punctuation.definition.string.heredoc.delimiter.shell\"},\"3\":{\"patterns\":[{\"include\":\"#redirect_fix\"},{\"include\":\"#typical_statements\"}]}},\"contentName\":\"string.unquoted.heredoc.indent.$2\",\"end\":\"(?:(?:^\\\\\\\\t*)(?:\\\\\\\\2)(?=\\\\\\\\s|;|&|$))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.heredoc.delimiter.shell\"}},\"patterns\":[{\"include\":\"#double_quote_escape_char\"},{\"include\":\"#variable\"},{\"include\":\"#interpolation\"}]},{\"begin\":\"(?:((?<!<)(?:<<)(?!<))(?:[ \\\\\\\\t]*+)([^\\\\\"' \\\\\\\\t]+)(?=\\\\\\\\s|;|&|<|\\\\\"|')(.*))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.heredoc.shell\"},\"2\":{\"name\":\"punctuation.definition.string.heredoc.delimiter.shell\"},\"3\":{\"patterns\":[{\"include\":\"#redirect_fix\"},{\"include\":\"#typical_statements\"}]}},\"contentName\":\"string.unquoted.heredoc.no-indent.$2\",\"end\":\"(?:^(?:\\\\\\\\2)(?=\\\\\\\\s|;|&|$))\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.heredoc.delimiter.shell\"}},\"patterns\":[{\"include\":\"#double_quote_escape_char\"},{\"include\":\"#variable\"},{\"include\":\"#interpolation\"}]}]},\"herestring\":{\"patterns\":[{\"begin\":\"(<<<)\\\\\\\\s*(('))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.herestring.shell\"},\"2\":{\"name\":\"string.quoted.single.shell\"},\"3\":{\"name\":\"punctuation.definition.string.begin.shell\"}},\"contentName\":\"string.quoted.single.shell\",\"end\":\"(')\",\"endCaptures\":{\"0\":{\"name\":\"string.quoted.single.shell\"},\"1\":{\"name\":\"punctuation.definition.string.end.shell\"}},\"name\":\"meta.herestring.shell\"},{\"begin\":\"(<<<)\\\\\\\\s*((\\\\\"))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.herestring.shell\"},\"2\":{\"name\":\"string.quoted.double.shell\"},\"3\":{\"name\":\"punctuation.definition.string.begin.shell\"}},\"contentName\":\"string.quoted.double.shell\",\"end\":\"(\\\\\")\",\"endCaptures\":{\"0\":{\"name\":\"string.quoted.double.shell\"},\"1\":{\"name\":\"punctuation.definition.string.end.shell\"}},\"name\":\"meta.herestring.shell\",\"patterns\":[{\"include\":\"#double_quote_context\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.operator.herestring.shell\"},\"2\":{\"name\":\"string.unquoted.herestring.shell\",\"patterns\":[{\"include\":\"#initial_context\"}]}},\"match\":\"(<<<)\\\\\\\\s*(([^\\\\\\\\s)\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)+)\",\"name\":\"meta.herestring.shell\"}]},\"initial_context\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#pipeline\"},{\"include\":\"#normal_statement_seperator\"},{\"include\":\"#logical_expression_double\"},{\"include\":\"#logical_expression_single\"},{\"include\":\"#assignment_statement\"},{\"include\":\"#case_statement\"},{\"include\":\"#for_statement\"},{\"include\":\"#loop\"},{\"include\":\"#function_definition\"},{\"include\":\"#line_continuation\"},{\"include\":\"#arithmetic_double\"},{\"include\":\"#misc_ranges\"},{\"include\":\"#variable\"},{\"include\":\"#interpolation\"},{\"include\":\"#heredoc\"},{\"include\":\"#herestring\"},{\"include\":\"#redirection\"},{\"include\":\"#pathname\"},{\"include\":\"#floating_keyword\"},{\"include\":\"#alias_statement\"},{\"include\":\"#normal_statement\"},{\"include\":\"#string\"},{\"include\":\"#support\"}]},\"inline_comment\":{\"captures\":{\"1\":{\"name\":\"comment.block.shell punctuation.definition.comment.begin.shell\"},\"2\":{\"name\":\"comment.block.shell\"},\"3\":{\"patterns\":[{\"match\":\"\\\\\\\\*\\\\\\\\/\",\"name\":\"comment.block.shell punctuation.definition.comment.end.shell\"},{\"match\":\"\\\\\\\\*\",\"name\":\"comment.block.shell\"}]}},\"match\":\"(\\\\\\\\/\\\\\\\\*)((?:(?:[^\\\\\\\\*]|(?:(?:\\\\\\\\*++)[^\\\\\\\\/]))*+)((?:(?:\\\\\\\\*++)\\\\\\\\/)))\"},\"interpolation\":{\"patterns\":[{\"include\":\"#arithmetic_dollar\"},{\"include\":\"#subshell_dollar\"},{\"begin\":\"\\`\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.evaluation.backticks.shell\"}},\"end\":\"\\`\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.evaluation.backticks.shell\"}},\"name\":\"string.interpolated.backtick.shell\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[\\`\\\\\\\\\\\\\\\\$]\",\"name\":\"constant.character.escape.shell\"},{\"begin\":\"(?<=\\\\\\\\W)(?=#)(?!#{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.shell\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.shell\"}},\"end\":\"(?=\\`)\",\"name\":\"comment.line.number-sign.shell\"}]},{\"include\":\"#initial_context\"}]}]},\"keyword\":{\"patterns\":[{\"match\":\"(?<=^|;|&|\\\\\\\\s)(then|else|elif|fi|for|in|do|done|select|continue|esac|while|until|return)(?=\\\\\\\\s|;|&|$)\",\"name\":\"keyword.control.shell\"},{\"match\":\"(?<=^|;|&|\\\\\\\\s)(?:export|declare|typeset|local|readonly)(?=\\\\\\\\s|;|&|$)\",\"name\":\"storage.modifier.shell\"}]},\"line_comment\":{\"begin\":\"(?:\\\\\\\\s*+)(\\\\\\\\/\\\\\\\\/)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.shell\"}},\"end\":\"(?<=\\\\\\\\n)(?<!\\\\\\\\\\\\\\\\\\\\\\\\n)\",\"endCaptures\":{},\"name\":\"comment.line.double-slash.shell\",\"patterns\":[{\"include\":\"#line_continuation_character\"}]},\"line_continuation\":{\"match\":\"\\\\\\\\\\\\\\\\(?=\\\\\\\\n)\",\"name\":\"constant.character.escape.line-continuation.shell\"},\"logical-expression\":{\"patterns\":[{\"include\":\"#arithmetic_no_dollar\"},{\"comment\":\"do we want a special rule for ( expr )?\",\"match\":\"=[=~]?|!=?|<|>|&&|\\\\\\\\|\\\\\\\\|\",\"name\":\"keyword.operator.logical.shell\"},{\"match\":\"(?<!\\\\\\\\S)-(nt|ot|ef|eq|ne|l[te]|g[te]|[a-hknoprstuwxzOGLSN])\\\\\\\\b\",\"name\":\"keyword.operator.logical.shell\"}]},\"logical_expression_context\":{\"patterns\":[{\"include\":\"#regex_comparison\"},{\"include\":\"#arithmetic_no_dollar\"},{\"include\":\"#logical-expression\"},{\"include\":\"#logical_expression_single\"},{\"include\":\"#logical_expression_double\"},{\"include\":\"#comment\"},{\"include\":\"#boolean\"},{\"include\":\"#redirect_number\"},{\"include\":\"#numeric_literal\"},{\"include\":\"#pipeline\"},{\"include\":\"#normal_statement_seperator\"},{\"include\":\"#string\"},{\"include\":\"#variable\"},{\"include\":\"#interpolation\"},{\"include\":\"#heredoc\"},{\"include\":\"#herestring\"},{\"include\":\"#pathname\"},{\"include\":\"#floating_keyword\"},{\"include\":\"#support\"}]},\"logical_expression_double\":{\"begin\":\"\\\\\\\\[\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.logical-expression.shell\"}},\"end\":\"\\\\\\\\]\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.logical-expression.shell\"}},\"name\":\"meta.scope.logical-expression.shell\",\"patterns\":[{\"include\":\"#logical_expression_context\"}]},\"logical_expression_single\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.logical-expression.shell\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.logical-expression.shell\"}},\"name\":\"meta.scope.logical-expression.shell\",\"patterns\":[{\"include\":\"#logical_expression_context\"}]},\"loop\":{\"patterns\":[{\"begin\":\"(?<=^|;|&|\\\\\\\\s)(for)\\\\\\\\s+(.+?)\\\\\\\\s+(in)(?=\\\\\\\\s|;|&|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.shell\"},\"2\":{\"name\":\"variable.other.loop.shell\",\"patterns\":[{\"include\":\"#string\"}]},\"3\":{\"name\":\"keyword.control.shell\"}},\"end\":\"(?<=^|;|&|\\\\\\\\s)done(?=\\\\\\\\s|;|&|$|\\\\\\\\))\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.shell\"}},\"name\":\"meta.scope.for-in-loop.shell\",\"patterns\":[{\"include\":\"#initial_context\"}]},{\"begin\":\"(?<=^|;|&|\\\\\\\\s)(while|until)(?=\\\\\\\\s|;|&|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.shell\"}},\"end\":\"(?<=^|;|&|\\\\\\\\s)done(?=\\\\\\\\s|;|&|$|\\\\\\\\))\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.shell\"}},\"name\":\"meta.scope.while-loop.shell\",\"patterns\":[{\"include\":\"#initial_context\"}]},{\"begin\":\"(?<=^|;|&|\\\\\\\\s)(select)\\\\\\\\s+((?:[^\\\\\\\\s\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)+)(?=\\\\\\\\s|;|&|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.shell\"},\"2\":{\"name\":\"variable.other.loop.shell\"}},\"end\":\"(?<=^|;|&|\\\\\\\\s)(done)(?=\\\\\\\\s|;|&|$|\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.shell\"}},\"name\":\"meta.scope.select-block.shell\",\"patterns\":[{\"include\":\"#initial_context\"}]},{\"begin\":\"(?<=^|;|&|\\\\\\\\s)if(?=\\\\\\\\s|;|&|$)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.if.shell\"}},\"end\":\"(?<=^|;|&|\\\\\\\\s)fi(?=\\\\\\\\s|;|&|$)\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.fi.shell\"}},\"name\":\"meta.scope.if-block.shell\",\"patterns\":[{\"include\":\"#initial_context\"}]}]},\"math\":{\"patterns\":[{\"include\":\"#variable\"},{\"match\":\"\\\\\\\\+{1,2}|-{1,2}|!|~|\\\\\\\\*{1,2}|/|%|<[<=]?|>[>=]?|==|!=|^|\\\\\\\\|{1,2}|&{1,2}|\\\\\\\\?|\\\\\\\\:|,|=|[*/%+\\\\\\\\-&^|]=|<<=|>>=\",\"name\":\"keyword.operator.arithmetic.shell\"},{\"match\":\"0[xX][0-9A-Fa-f]+\",\"name\":\"constant.numeric.hex.shell\"},{\"match\":\";\",\"name\":\"punctuation.separator.semicolon.range\"},{\"match\":\"0\\\\\\\\d+\",\"name\":\"constant.numeric.octal.shell\"},{\"match\":\"\\\\\\\\d{1,2}#[0-9a-zA-Z@_]+\",\"name\":\"constant.numeric.other.shell\"},{\"match\":\"\\\\\\\\d+\",\"name\":\"constant.numeric.integer.shell\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_0-9]+)(?!\\\\\\\\w)\",\"name\":\"variable.other.normal.shell\"}]},\"math_operators\":{\"patterns\":[{\"match\":\"\\\\\\\\+{1,2}|-{1,2}|!|~|\\\\\\\\*{1,2}|/|%|<[<=]?|>[>=]?|==|!=|^|\\\\\\\\|{1,2}|&{1,2}|\\\\\\\\?|\\\\\\\\:|,|=|[*/%+\\\\\\\\-&^|]=|<<=|>>=\",\"name\":\"keyword.operator.arithmetic.shell\"},{\"match\":\"0[xX][0-9A-Fa-f]+\",\"name\":\"constant.numeric.hex.shell\"},{\"match\":\"0\\\\\\\\d+\",\"name\":\"constant.numeric.octal.shell\"},{\"match\":\"\\\\\\\\d{1,2}#[0-9a-zA-Z@_]+\",\"name\":\"constant.numeric.other.shell\"},{\"match\":\"\\\\\\\\d+\",\"name\":\"constant.numeric.integer.shell\"}]},\"misc_ranges\":{\"patterns\":[{\"include\":\"#logical_expression_single\"},{\"include\":\"#logical_expression_double\"},{\"include\":\"#subshell_dollar\"},{\"begin\":\"(?<![^ \\\\\\\\t])({)(?!\\\\\\\\w|\\\\\\\\$)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.group.shell\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.shell\"}},\"name\":\"meta.scope.group.shell\",\"patterns\":[{\"include\":\"#initial_context\"}]}]},\"modified_assignment_statement\":{\"begin\":\"(?<=^|;|&|[ \\\\\\\\t])(?:readonly|declare|typeset|export|local)(?=[ \\\\\\\\t]|;|&|$)\",\"beginCaptures\":{\"0\":{\"name\":\"storage.modifier.$0.shell\"}},\"end\":\"(?=;|\\\\\\\\||&|\\\\\\\\n|\\\\\\\\)|\\\\\\\\\\`|\\\\\\\\{|\\\\\\\\}|[ \\\\\\\\t]*#|\\\\\\\\])(?<!\\\\\\\\\\\\\\\\)\",\"endCaptures\":{},\"name\":\"meta.statement.shell meta.expression.assignment.modified.shell\",\"patterns\":[{\"match\":\"(?<!\\\\\\\\w)-\\\\\\\\w+\\\\\\\\b\",\"name\":\"string.unquoted.argument.shell constant.other.option.shell\"},{\"include\":\"#array_value\"},{\"captures\":{\"1\":{\"name\":\"variable.other.assignment.shell\"},\"2\":{\"name\":\"punctuation.definition.array.access.shell\"},\"3\":{\"name\":\"variable.other.assignment.shell\"},\"4\":{\"name\":\"constant.numeric.shell constant.numeric.integer.shell\"},\"5\":{\"name\":\"punctuation.definition.array.access.shell\"},\"6\":{\"name\":\"keyword.operator.assignment.shell\"},\"7\":{\"name\":\"keyword.operator.assignment.compound.shell\"},\"8\":{\"name\":\"keyword.operator.assignment.compound.shell\"},\"9\":{\"name\":\"constant.numeric.shell constant.numeric.hex.shell\"},\"10\":{\"name\":\"constant.numeric.shell constant.numeric.octal.shell\"},\"11\":{\"name\":\"constant.numeric.shell constant.numeric.other.shell\"},\"12\":{\"name\":\"constant.numeric.shell constant.numeric.decimal.shell\"},\"13\":{\"name\":\"constant.numeric.shell constant.numeric.version.shell\"},\"14\":{\"name\":\"constant.numeric.shell constant.numeric.integer.shell\"}},\"match\":\"(?:((?<!\\\\\\\\w)(?:[a-zA-Z_0-9-]+)(?!\\\\\\\\w))(?:(?:(\\\\\\\\[)((?:(?:(?:(?:\\\\\\\\$?)(?:(?<!\\\\\\\\w)(?:[a-zA-Z_0-9-]+)(?!\\\\\\\\w))|@)|\\\\\\\\*)|(-?\\\\\\\\d+)))(\\\\\\\\]))?)(?:(?:(?:(\\\\\\\\=)|(\\\\\\\\+\\\\\\\\=))|(\\\\\\\\-\\\\\\\\=))?)(?:(?:(?<==| |\\\\\\\\t|^|\\\\\\\\{|\\\\\\\\(|\\\\\\\\[)(?:(?:(?:(?:(?:(0[xX][0-9A-Fa-f]+)|(0\\\\\\\\d+))|(\\\\\\\\d{1,2}#[0-9a-zA-Z@_]+))|(-?\\\\\\\\d+(?:\\\\\\\\.\\\\\\\\d+)))|(-?\\\\\\\\d+(?:\\\\\\\\.\\\\\\\\d+)+))|(-?\\\\\\\\d+))(?= |\\\\\\\\t|$|\\\\\\\\}|\\\\\\\\)|;))?))\"},{\"include\":\"#normal_context\"}]},\"modifiers\":{\"match\":\"(?<=^|;|&|[ \\\\\\\\t])(?:readonly|declare|typeset|export|local)(?=[ \\\\\\\\t]|;|&|$)\",\"name\":\"storage.modifier.$0.shell\"},\"normal_assignment_statement\":{\"begin\":\"(?:[ \\\\\\\\t]*+)(?:((?<!\\\\\\\\w)(?:[a-zA-Z_0-9-]+)(?!\\\\\\\\w))(?:(?:(\\\\\\\\[)((?:(?:(?:(?:\\\\\\\\$?)(?:(?<!\\\\\\\\w)(?:[a-zA-Z_0-9-]+)(?!\\\\\\\\w))|@)|\\\\\\\\*)|(-?\\\\\\\\d+)))(\\\\\\\\]))?))(?:(?:(\\\\\\\\=)|(\\\\\\\\+\\\\\\\\=))|(\\\\\\\\-\\\\\\\\=))\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.assignment.shell\"},\"2\":{\"name\":\"punctuation.definition.array.access.shell\"},\"3\":{\"name\":\"variable.other.assignment.shell\"},\"4\":{\"name\":\"constant.numeric.shell constant.numeric.integer.shell\"},\"5\":{\"name\":\"punctuation.definition.array.access.shell\"},\"6\":{\"name\":\"keyword.operator.assignment.shell\"},\"7\":{\"name\":\"keyword.operator.assignment.compound.shell\"},\"8\":{\"name\":\"keyword.operator.assignment.compound.shell\"}},\"end\":\"(?=;|\\\\\\\\||&|\\\\\\\\n|\\\\\\\\)|\\\\\\\\\\`|\\\\\\\\{|\\\\\\\\}|[ \\\\\\\\t]*#|\\\\\\\\])(?<!\\\\\\\\\\\\\\\\)\",\"endCaptures\":{},\"name\":\"meta.expression.assignment.shell\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#normal_assignment_statement\"},{\"begin\":\"(?<= |\\\\\\\\t)(?! |\\\\\\\\t|\\\\\\\\w+=)\",\"beginCaptures\":{},\"end\":\"(?=;|\\\\\\\\||&|\\\\\\\\n|\\\\\\\\)|\\\\\\\\\\`|\\\\\\\\{|\\\\\\\\}|[ \\\\\\\\t]*#|\\\\\\\\])(?<!\\\\\\\\\\\\\\\\)\",\"endCaptures\":{},\"name\":\"meta.statement.command.env.shell\",\"patterns\":[{\"include\":\"#command_name_range\"},{\"include\":\"#line_continuation\"},{\"include\":\"#option\"},{\"include\":\"#argument\"},{\"include\":\"#string\"}]},{\"include\":\"#simple_unquoted\"},{\"include\":\"#normal_context\"}]},\"normal_context\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#pipeline\"},{\"include\":\"#normal_statement_seperator\"},{\"include\":\"#misc_ranges\"},{\"include\":\"#boolean\"},{\"include\":\"#redirect_number\"},{\"include\":\"#numeric_literal\"},{\"include\":\"#string\"},{\"include\":\"#variable\"},{\"include\":\"#interpolation\"},{\"include\":\"#heredoc\"},{\"include\":\"#herestring\"},{\"include\":\"#redirection\"},{\"include\":\"#pathname\"},{\"include\":\"#floating_keyword\"},{\"include\":\"#support\"},{\"include\":\"#parenthese\"}]},\"normal_statement\":{\"begin\":\"(?:(?!^[ \\\\\\\\t]*+$)(?:(?<=^until | until |\\\\\\\\tuntil |^while | while |\\\\\\\\twhile |^elif | elif |\\\\\\\\telif |^else | else |\\\\\\\\telse |^then | then |\\\\\\\\tthen |^do | do |\\\\\\\\tdo |^if | if |\\\\\\\\tif )|(?<=(?:^|;|\\\\\\\\||&|!|\\\\\\\\(|\\\\\\\\{|\\\\\\\\\\`)))(?:[ \\\\\\\\t]*+)(?!nocorrect\\\\\\\\W|nocorrect\\\\\\\\$|function\\\\\\\\W|function\\\\\\\\$|foreach\\\\\\\\W|foreach\\\\\\\\$|repeat\\\\\\\\W|repeat\\\\\\\\$|logout\\\\\\\\W|logout\\\\\\\\$|coproc\\\\\\\\W|coproc\\\\\\\\$|select\\\\\\\\W|select\\\\\\\\$|while\\\\\\\\W|while\\\\\\\\$|pushd\\\\\\\\W|pushd\\\\\\\\$|until\\\\\\\\W|until\\\\\\\\$|case\\\\\\\\W|case\\\\\\\\$|done\\\\\\\\W|done\\\\\\\\$|elif\\\\\\\\W|elif\\\\\\\\$|else\\\\\\\\W|else\\\\\\\\$|esac\\\\\\\\W|esac\\\\\\\\$|popd\\\\\\\\W|popd\\\\\\\\$|then\\\\\\\\W|then\\\\\\\\$|time\\\\\\\\W|time\\\\\\\\$|for\\\\\\\\W|for\\\\\\\\$|end\\\\\\\\W|end\\\\\\\\$|fi\\\\\\\\W|fi\\\\\\\\$|do\\\\\\\\W|do\\\\\\\\$|in\\\\\\\\W|in\\\\\\\\$|if\\\\\\\\W|if\\\\\\\\$))\",\"beginCaptures\":{},\"end\":\"(?=;|\\\\\\\\||&|\\\\\\\\n|\\\\\\\\)|\\\\\\\\\\`|\\\\\\\\{|\\\\\\\\}|[ \\\\\\\\t]*#|\\\\\\\\])(?<!\\\\\\\\\\\\\\\\)\",\"endCaptures\":{},\"name\":\"meta.statement.shell\",\"patterns\":[{\"include\":\"#typical_statements\"}]},\"normal_statement_seperator\":{\"captures\":{\"1\":{\"name\":\"punctuation.terminator.statement.semicolon.shell\"},\"2\":{\"name\":\"punctuation.separator.statement.and.shell\"},\"3\":{\"name\":\"punctuation.separator.statement.or.shell\"},\"4\":{\"name\":\"punctuation.separator.statement.background.shell\"}},\"match\":\"(?:(?:(?:(;)|(&&))|(\\\\\\\\|\\\\\\\\|))|(&))\"},\"numeric_literal\":{\"captures\":{\"1\":{\"name\":\"constant.numeric.shell constant.numeric.hex.shell\"},\"2\":{\"name\":\"constant.numeric.shell constant.numeric.octal.shell\"},\"3\":{\"name\":\"constant.numeric.shell constant.numeric.other.shell\"},\"4\":{\"name\":\"constant.numeric.shell constant.numeric.decimal.shell\"},\"5\":{\"name\":\"constant.numeric.shell constant.numeric.version.shell\"},\"6\":{\"name\":\"constant.numeric.shell constant.numeric.integer.shell\"}},\"match\":\"(?<==| |\\\\\\\\t|^|\\\\\\\\{|\\\\\\\\(|\\\\\\\\[)(?:(?:(?:(?:(?:(0[xX][0-9A-Fa-f]+)|(0\\\\\\\\d+))|(\\\\\\\\d{1,2}#[0-9a-zA-Z@_]+))|(-?\\\\\\\\d+(?:\\\\\\\\.\\\\\\\\d+)))|(-?\\\\\\\\d+(?:\\\\\\\\.\\\\\\\\d+)+))|(-?\\\\\\\\d+))(?= |\\\\\\\\t|$|\\\\\\\\}|\\\\\\\\)|;)\"},\"option\":{\"begin\":\"(?:(?:[ \\\\\\\\t]++)(-)((?!(?:!|&|\\\\\\\\||\\\\\\\\(|\\\\\\\\)|\\\\\\\\{|\\\\\\\\[|<|>|#|\\\\\\\\n|$|;|[ \\\\\\\\t]))))\",\"beginCaptures\":{\"1\":{\"name\":\"string.unquoted.argument.shell constant.other.option.dash.shell\"},\"2\":{\"name\":\"string.unquoted.argument.shell constant.other.option.shell\"}},\"contentName\":\"string.unquoted.argument constant.other.option\",\"end\":\"(?:(?=[ \\\\\\\\t])|(?:(?=;|\\\\\\\\||&|\\\\\\\\n|\\\\\\\\)|\\\\\\\\\\`|\\\\\\\\{|\\\\\\\\}|[ \\\\\\\\t]*#|\\\\\\\\])(?<!\\\\\\\\\\\\\\\\)))\",\"endCaptures\":{},\"patterns\":[{\"include\":\"#option_context\"}]},\"option_context\":{\"patterns\":[{\"include\":\"#misc_ranges\"},{\"include\":\"#string\"},{\"include\":\"#variable\"},{\"include\":\"#interpolation\"},{\"include\":\"#heredoc\"},{\"include\":\"#herestring\"},{\"include\":\"#redirection\"},{\"include\":\"#pathname\"},{\"include\":\"#floating_keyword\"},{\"include\":\"#support\"}]},\"parenthese\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parenthese.shell\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parenthese.shell\"}},\"name\":\"meta.parenthese.group.shell\",\"patterns\":[{\"include\":\"#initial_context\"}]}]},\"pathname\":{\"patterns\":[{\"match\":\"(?<=\\\\\\\\s|:|=|^)~\",\"name\":\"keyword.operator.tilde.shell\"},{\"match\":\"\\\\\\\\*|\\\\\\\\?\",\"name\":\"keyword.operator.glob.shell\"},{\"begin\":\"([?*+@!])(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.extglob.shell\"},\"2\":{\"name\":\"punctuation.definition.extglob.shell\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.extglob.shell\"}},\"name\":\"meta.structure.extglob.shell\",\"patterns\":[{\"include\":\"#initial_context\"}]}]},\"pipeline\":{\"patterns\":[{\"match\":\"(?<=^|;|&|\\\\\\\\s)(time)(?=\\\\\\\\s|;|&|$)\",\"name\":\"keyword.other.shell\"},{\"match\":\"[|!]\",\"name\":\"keyword.operator.pipe.shell\"}]},\"redirect_fix\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.redirect.shell\"},\"2\":{\"name\":\"string.unquoted.argument.shell\"}},\"match\":\"(?:(>>?)(?:[ \\\\\\\\t]*+)([^ \\\\t\\\\n>&;<>\\\\\\\\(\\\\\\\\)\\\\\\\\$\\`\\\\\\\\\\\\\\\\\\\\\"'<\\\\\\\\|]+))\"},\"redirect_number\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.redirect.stdout.shell\"},\"2\":{\"name\":\"keyword.operator.redirect.stderr.shell\"},\"3\":{\"name\":\"keyword.operator.redirect.$3.shell\"}},\"match\":\"(?<=[ \\\\\\\\t])(?:(?:(1)|(2)|(\\\\\\\\d+))(?=>))\"},\"redirection\":{\"patterns\":[{\"begin\":\"[><]\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.shell\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.shell\"}},\"name\":\"string.interpolated.process-substitution.shell\",\"patterns\":[{\"include\":\"#initial_context\"}]},{\"match\":\"(?<![<>])(&>|\\\\\\\\d*>&\\\\\\\\d*|\\\\\\\\d*(>>|>|<)|\\\\\\\\d*<&|\\\\\\\\d*<>)(?![<>])\",\"name\":\"keyword.operator.redirect.shell\"}]},\"regex_comparison\":{\"match\":\"\\\\\\\\=~\",\"name\":\"keyword.operator.logical.regex.shell\"},\"regexp\":{\"patterns\":[{\"match\":\"(?:.+)\"}]},\"simple_options\":{\"captures\":{\"0\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"string.unquoted.argument.shell constant.other.option.dash.shell\"},\"2\":{\"name\":\"string.unquoted.argument.shell constant.other.option.shell\"}},\"match\":\"(?:[ \\\\\\\\t]++)(\\\\\\\\-)(\\\\\\\\w+)\"}]}},\"match\":\"(?:(?:[ \\\\\\\\t]++)\\\\\\\\-(?:\\\\\\\\w+))*\"},\"simple_unquoted\":{\"match\":\"[^ \\\\\\\\t\\\\\\\\n>&;<>\\\\\\\\(\\\\\\\\)\\\\\\\\$\\`\\\\\\\\\\\\\\\\\\\\\"'<\\\\\\\\|]\",\"name\":\"string.unquoted.shell\"},\"special_expansion\":{\"match\":\"!|:[-=?]?|\\\\\\\\*|@|##|#|%%|%|\\\\\\\\/\",\"name\":\"keyword.operator.expansion.shell\"},\"start_of_command\":{\"match\":\"(?:(?:[ \\\\\\\\t]*+)(?:(?!(?:!|&|\\\\\\\\||\\\\\\\\(|\\\\\\\\)|\\\\\\\\{|\\\\\\\\[|<|>|#|\\\\\\\\n|$|;|[ \\\\\\\\t]))(?!nocorrect |nocorrect\\\\t|nocorrect$|readonly |readonly\\\\t|readonly$|function |function\\\\t|function$|foreach |foreach\\\\t|foreach$|coproc |coproc\\\\t|coproc$|logout |logout\\\\t|logout$|export |export\\\\t|export$|select |select\\\\t|select$|repeat |repeat\\\\t|repeat$|pushd |pushd\\\\t|pushd$|until |until\\\\t|until$|while |while\\\\t|while$|local |local\\\\t|local$|case |case\\\\t|case$|done |done\\\\t|done$|elif |elif\\\\t|elif$|else |else\\\\t|else$|esac |esac\\\\t|esac$|popd |popd\\\\t|popd$|then |then\\\\t|then$|time |time\\\\t|time$|for |for\\\\t|for$|end |end\\\\t|end$|fi |fi\\\\t|fi$|do |do\\\\t|do$|in |in\\\\t|in$|if |if\\\\t|if$)(?!\\\\\\\\\\\\\\\\\\\\\\\\n?$)))\"},\"string\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.shell\"},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.shell\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.shell\"}},\"name\":\"string.quoted.single.shell\"},{\"begin\":\"\\\\\\\\$?\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.shell\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.shell\"}},\"name\":\"string.quoted.double.shell\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[\\\\\\\\$\\\\\\\\n\\`\\\\\"\\\\\\\\\\\\\\\\]\",\"name\":\"constant.character.escape.shell\"},{\"include\":\"#variable\"},{\"include\":\"#interpolation\"}]},{\"begin\":\"\\\\\\\\$'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.shell\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.shell\"}},\"name\":\"string.quoted.single.dollar.shell\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(?:a|b|e|f|n|r|t|v|\\\\\\\\\\\\\\\\|')\",\"name\":\"constant.character.escape.ansi-c.shell\"},{\"match\":\"\\\\\\\\\\\\\\\\[0-9]{3}\\\\\"\",\"name\":\"constant.character.escape.octal.shell\"},{\"match\":\"\\\\\\\\\\\\\\\\x[0-9a-fA-F]{2}\\\\\"\",\"name\":\"constant.character.escape.hex.shell\"},{\"match\":\"\\\\\\\\\\\\\\\\c.\\\\\"\",\"name\":\"constant.character.escape.control-char.shell\"}]}]},\"subshell_dollar\":{\"patterns\":[{\"begin\":\"(?:\\\\\\\\$\\\\\\\\()\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.subshell.single.shell\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.subshell.single.shell\"}},\"name\":\"meta.scope.subshell\",\"patterns\":[{\"include\":\"#parenthese\"},{\"include\":\"#initial_context\"}]}]},\"support\":{\"patterns\":[{\"match\":\"(?<=^|;|&|\\\\\\\\s)(?::|\\\\\\\\.)(?=\\\\\\\\s|;|&|$)\",\"name\":\"support.function.builtin.shell\"}]},\"typical_statements\":{\"patterns\":[{\"include\":\"#assignment_statement\"},{\"include\":\"#case_statement\"},{\"include\":\"#for_statement\"},{\"include\":\"#while_statement\"},{\"include\":\"#function_definition\"},{\"include\":\"#command_statement\"},{\"include\":\"#line_continuation\"},{\"include\":\"#arithmetic_double\"},{\"include\":\"#normal_context\"}]},\"variable\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.shell variable.parameter.positional.all.shell\"},\"2\":{\"name\":\"variable.parameter.positional.all.shell\"}},\"match\":\"(?:(\\\\\\\\$)(\\\\\\\\@(?!\\\\\\\\w)))\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.shell variable.parameter.positional.shell\"},\"2\":{\"name\":\"variable.parameter.positional.shell\"}},\"match\":\"(?:(\\\\\\\\$)([0-9](?!\\\\\\\\w)))\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.shell variable.language.special.shell\"},\"2\":{\"name\":\"variable.language.special.shell\"}},\"match\":\"(?:(\\\\\\\\$)([-*#?$!0_](?!\\\\\\\\w)))\"},{\"begin\":\"(?:(\\\\\\\\$)(\\\\\\\\{)(?:[ \\\\\\\\t]*+)(?=\\\\\\\\d))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.variable.shell variable.parameter.positional.shell\"},\"2\":{\"name\":\"punctuation.section.bracket.curly.variable.begin.shell punctuation.definition.variable.shell variable.parameter.positional.shell\"}},\"contentName\":\"meta.parameter-expansion\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.bracket.curly.variable.end.shell punctuation.definition.variable.shell variable.parameter.positional.shell\"}},\"patterns\":[{\"include\":\"#special_expansion\"},{\"include\":\"#array_access_inline\"},{\"match\":\"[0-9]+\",\"name\":\"variable.parameter.positional.shell\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_0-9-]+)(?!\\\\\\\\w)\",\"name\":\"variable.other.normal.shell\"},{\"include\":\"#variable\"},{\"include\":\"#string\"}]},{\"begin\":\"(?:(\\\\\\\\$)(\\\\\\\\{))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.variable.shell\"},\"2\":{\"name\":\"punctuation.section.bracket.curly.variable.begin.shell punctuation.definition.variable.shell\"}},\"contentName\":\"meta.parameter-expansion\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.bracket.curly.variable.end.shell punctuation.definition.variable.shell\"}},\"patterns\":[{\"include\":\"#special_expansion\"},{\"include\":\"#array_access_inline\"},{\"match\":\"(?<!\\\\\\\\w)(?:[a-zA-Z_0-9-]+)(?!\\\\\\\\w)\",\"name\":\"variable.other.normal.shell\"},{\"include\":\"#variable\"},{\"include\":\"#string\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.shell variable.other.normal.shell\"},\"2\":{\"name\":\"variable.other.normal.shell\"}},\"match\":\"(?:(\\\\\\\\$)((?:\\\\\\\\w+)(?!\\\\\\\\w)))\"}]},\"while_statement\":{\"patterns\":[{\"begin\":\"(\\\\\\\\bwhile\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.while.shell\"}},\"end\":\"(?=;|\\\\\\\\||&|\\\\\\\\n|\\\\\\\\)|\\\\\\\\\\`|\\\\\\\\{|\\\\\\\\}|[ \\\\\\\\t]*#|\\\\\\\\])(?<!\\\\\\\\\\\\\\\\)\",\"endCaptures\":{},\"name\":\"meta.while.shell\",\"patterns\":[{\"include\":\"#line_continuation\"},{\"include\":\"#math_operators\"},{\"include\":\"#option\"},{\"include\":\"#simple_unquoted\"},{\"include\":\"#normal_context\"},{\"include\":\"#string\"}]}]}},\"scopeName\":\"source.shell\",\"aliases\":[\"bash\",\"sh\",\"shell\",\"zsh\"]}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/bCA53EVm.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Fennel\",\"name\":\"fennel\",\"patterns\":[{\"include\":\"#expression\"}],\"repository\":{\"comment\":{\"patterns\":[{\"begin\":\";\",\"end\":\"$\",\"name\":\"comment.line.semicolon.fennel\"}]},\"constants\":{\"patterns\":[{\"match\":\"nil\",\"name\":\"constant.language.nil.fennel\"},{\"match\":\"false|true\",\"name\":\"constant.language.boolean.fennel\"},{\"match\":\"(-?\\\\\\\\d+\\\\\\\\.\\\\\\\\d+([eE][+-]?\\\\\\\\d+)?)\",\"name\":\"constant.numeric.double.fennel\"},{\"match\":\"(-?\\\\\\\\d+)\",\"name\":\"constant.numeric.integer.fennel\"}]},\"expression\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#constants\"},{\"include\":\"#sexp\"},{\"include\":\"#table\"},{\"include\":\"#vector\"},{\"include\":\"#keywords\"},{\"include\":\"#special\"},{\"include\":\"#lua\"},{\"include\":\"#strings\"},{\"include\":\"#methods\"},{\"include\":\"#symbols\"}]},\"keywords\":{\"match\":\":[^ ]+\",\"name\":\"constant.keyword.fennel\"},\"lua\":{\"patterns\":[{\"match\":\"\\\\\\\\b(assert|collectgarbage|dofile|error|getmetatable|ipairs|load|loadfile|next|pairs|pcall|print|rawequal|rawget|rawlen|rawset|require|select|setmetatable|tonumber|tostring|type|xpcall)\\\\\\\\b\",\"name\":\"support.function.fennel\"},{\"match\":\"\\\\\\\\b(coroutine|coroutine.create|coroutine.isyieldable|coroutine.resume|coroutine.running|coroutine.status|coroutine.wrap|coroutine.yield|debug|debug.debug|debug.gethook|debug.getinfo|debug.getlocal|debug.getmetatable|debug.getregistry|debug.getupvalue|debug.getuservalue|debug.sethook|debug.setlocal|debug.setmetatable|debug.setupvalue|debug.setuservalue|debug.traceback|debug.upvalueid|debug.upvaluejoin|io|io.close|io.flush|io.input|io.lines|io.open|io.output|io.popen|io.read|io.stderr|io.stdin|io.stdout|io.tmpfile|io.type|io.write|math|math.abs|math.acos|math.asin|math.atan|math.ceil|math.cos|math.deg|math.exp|math.floor|math.fmod|math.huge|math.log|math.max|math.maxinteger|math.min|math.mininteger|math.modf|math.pi|math.rad|math.random|math.randomseed|math.sin|math.sqrt|math.tan|math.tointeger|math.type|math.ult|os|os.clock|os.date|os.difftime|os.execute|os.exit|os.getenv|os.remove|os.rename|os.setlocale|os.time|os.tmpname|package|package.config|package.cpath|package.loaded|package.loadlib|package.path|package.preload|package.searchers|package.searchpath|string|string.byte|string.char|string.dump|string.find|string.format|string.gmatch|string.gsub|string.len|string.lower|string.match|string.pack|string.packsize|string.rep|string.reverse|string.sub|string.unpack|string.upper|table|table.concat|table.insert|table.move|table.pack|table.remove|table.sort|table.unpack|utf8|utf8.char|utf8.charpattern|utf8.codepoint|utf8.codes|utf8.len|utf8.offset)\\\\\\\\b\",\"name\":\"support.function.library.fennel\"},{\"match\":\"\\\\\\\\b(_G|_VERSION)\\\\\\\\b\",\"name\":\"constant.language.fennel\"}]},\"methods\":{\"patterns\":[{\"match\":\"\\\\\\\\w+\\\\\\\\:\\\\\\\\w+\",\"name\":\"entity.name.function.method.fennel\"}]},\"sexp\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.paren.open.fennel\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.paren.close.fennel\"}},\"name\":\"sexp.fennel\",\"patterns\":[{\"include\":\"#expression\"}]},\"special\":{\"patterns\":[{\"match\":\"\\\\\\\\#|\\\\\\\\%|\\\\\\\\+|\\\\\\\\*|[?][.]|(\\\\\\\\.)?\\\\\\\\.|(\\\\\\\\/)?\\\\\\\\/|:|<=?|=|>=?|\\\\\\\\^\",\"name\":\"keyword.special.fennel\"},{\"match\":\"(\\\\\\\\-\\\\\\\\>(\\\\\\\\>)?)\",\"name\":\"keyword.special.fennel\"},{\"match\":\"\\\\\\\\-\\\\\\\\?\\\\\\\\>(\\\\\\\\>)?\",\"name\":\"keyword.special.fennel\"},{\"match\":\"-\",\"name\":\"keyword.special.fennel\"},{\"match\":\"not=\",\"name\":\"keyword.special.fennel\"},{\"match\":\"set-forcibly!\",\"name\":\"keyword.special.fennel\"},{\"match\":\"\\\\\\\\b(and|band|bnot|bor|bxor|collect|comment|do|doc|doto|each|eval-compiler|for|global|hashfn|icollect|if|import-macros|include|lambda|length|let|local|lshift|lua|macro|macrodebug|macros|match|not=?|or|partial|pick-args|pick-values|quote|require-macros|rshift|set|tset|values|var|when|while|with-open)\\\\\\\\b\",\"name\":\"keyword.special.fennel\"},{\"match\":\"\\\\\\\\b(fn)\\\\\\\\b\",\"name\":\"keyword.control.fennel\"},{\"match\":\"~=\",\"name\":\"keyword.special.fennel\"},{\"match\":\"λ\",\"name\":\"keyword.special.fennel\"}]},\"strings\":{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.fennel\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.fennel\"}]},\"symbols\":{\"patterns\":[{\"match\":\"\\\\\\\\w+(?:\\\\\\\\.\\\\\\\\w+)+\",\"name\":\"entity.name.function.symbol.fennel\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"variable.other.fennel\"}]},\"table\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.table.bracket.open.fennel\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.table.bracket.close.fennel\"}},\"name\":\"table.fennel\",\"patterns\":[{\"include\":\"#expression\"}]},\"vector\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.vector.bracket.open.fennel\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.vector.bracket.close.fennel\"}},\"name\":\"meta.vector.fennel\",\"patterns\":[{\"include\":\"#expression\"}]}},\"scopeName\":\"source.fnl\"}')),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/bN70gL4F.js",
    "content": "const e=Object.freeze(JSON.parse('{\"colors\":{\"activityBar.background\":\"#580000\",\"badge.background\":\"#cc3333\",\"button.background\":\"#833\",\"debugToolBar.background\":\"#660000\",\"dropdown.background\":\"#580000\",\"editor.background\":\"#390000\",\"editor.foreground\":\"#F8F8F8\",\"editor.hoverHighlightBackground\":\"#ff000044\",\"editor.lineHighlightBackground\":\"#ff000033\",\"editor.selectionBackground\":\"#750000\",\"editor.selectionHighlightBackground\":\"#f5500039\",\"editorCursor.foreground\":\"#970000\",\"editorGroup.border\":\"#ff666633\",\"editorGroupHeader.tabsBackground\":\"#330000\",\"editorHoverWidget.background\":\"#300000\",\"editorLineNumber.activeForeground\":\"#ffbbbb88\",\"editorLineNumber.foreground\":\"#ff777788\",\"editorLink.activeForeground\":\"#FFD0AA\",\"editorSuggestWidget.background\":\"#300000\",\"editorSuggestWidget.border\":\"#220000\",\"editorWhitespace.foreground\":\"#c10000\",\"editorWidget.background\":\"#300000\",\"errorForeground\":\"#ffeaea\",\"extensionButton.prominentBackground\":\"#cc3333\",\"extensionButton.prominentHoverBackground\":\"#cc333388\",\"focusBorder\":\"#ff6666aa\",\"input.background\":\"#580000\",\"inputOption.activeBorder\":\"#cc0000\",\"inputValidation.infoBackground\":\"#550000\",\"inputValidation.infoBorder\":\"#DB7E58\",\"list.activeSelectionBackground\":\"#880000\",\"list.dropBackground\":\"#662222\",\"list.highlightForeground\":\"#ff4444\",\"list.hoverBackground\":\"#800000\",\"list.inactiveSelectionBackground\":\"#770000\",\"minimap.selectionHighlight\":\"#750000\",\"peekView.border\":\"#ff000044\",\"peekViewEditor.background\":\"#300000\",\"peekViewResult.background\":\"#400000\",\"peekViewTitle.background\":\"#550000\",\"pickerGroup.border\":\"#ff000033\",\"pickerGroup.foreground\":\"#cc9999\",\"ports.iconRunningProcessForeground\":\"#DB7E58\",\"progressBar.background\":\"#cc3333\",\"quickInputList.focusBackground\":\"#660000\",\"selection.background\":\"#ff777788\",\"sideBar.background\":\"#330000\",\"statusBar.background\":\"#700000\",\"statusBar.noFolderBackground\":\"#700000\",\"statusBarItem.remoteBackground\":\"#c33\",\"tab.activeBackground\":\"#490000\",\"tab.inactiveBackground\":\"#300a0a\",\"tab.lastPinnedBorder\":\"#ff000044\",\"titleBar.activeBackground\":\"#770000\",\"titleBar.inactiveBackground\":\"#772222\"},\"displayName\":\"Red\",\"name\":\"red\",\"semanticHighlighting\":true,\"tokenColors\":[{\"settings\":{\"foreground\":\"#F8F8F8\"}},{\"scope\":[\"meta.embedded\",\"source.groovy.embedded\",\"string meta.image.inline.markdown\",\"variable.legacy.builtin.python\"],\"settings\":{\"foreground\":\"#F8F8F8\"}},{\"scope\":\"comment\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#e7c0c0ff\"}},{\"scope\":\"constant\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#994646ff\"}},{\"scope\":\"keyword\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#f12727ff\"}},{\"scope\":\"entity\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#fec758ff\"}},{\"scope\":\"storage\",\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#ff6262ff\"}},{\"scope\":\"string\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#cd8d8dff\"}},{\"scope\":\"support\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#9df39fff\"}},{\"scope\":\"variable\",\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#fb9a4bff\"}},{\"scope\":\"invalid\",\"settings\":{\"foreground\":\"#ffffffff\"}},{\"scope\":[\"entity.other.inherited-class\",\"punctuation.separator.namespace.ruby\"],\"settings\":{\"fontStyle\":\"underline\",\"foreground\":\"#aa5507ff\"}},{\"scope\":\"constant.character\",\"settings\":{\"foreground\":\"#ec0d1e\"}},{\"scope\":[\"string constant\",\"constant.character.escape\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#ffe862ff\"}},{\"scope\":\"string.regexp\",\"settings\":{\"foreground\":\"#ffb454ff\"}},{\"scope\":\"string variable\",\"settings\":{\"foreground\":\"#edef7dff\"}},{\"scope\":\"support.function\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#ffb454ff\"}},{\"scope\":[\"support.constant\",\"support.variable\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#eb939aff\"}},{\"scope\":[\"declaration.sgml.html declaration.doctype\",\"declaration.sgml.html declaration.doctype entity\",\"declaration.sgml.html declaration.doctype string\",\"declaration.xml-processing\",\"declaration.xml-processing entity\",\"declaration.xml-processing string\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#73817dff\"}},{\"scope\":[\"declaration.tag\",\"declaration.tag entity\",\"meta.tag\",\"meta.tag entity\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#ec0d1eff\"}},{\"scope\":\"meta.selector.css entity.name.tag\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#aa5507ff\"}},{\"scope\":\"meta.selector.css entity.other.attribute-name.id\",\"settings\":{\"foreground\":\"#fec758ff\"}},{\"scope\":\"meta.selector.css entity.other.attribute-name.class\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#41a83eff\"}},{\"scope\":\"support.type.property-name.css\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#96dd3bff\"}},{\"scope\":[\"meta.property-group support.constant.property-value.css\",\"meta.property-value support.constant.property-value.css\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#ffe862ff\"}},{\"scope\":[\"meta.property-value support.constant.named-color.css\",\"meta.property-value constant\"],\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#ffe862ff\"}},{\"scope\":\"meta.preprocessor.at-rule keyword.control.at-rule\",\"settings\":{\"foreground\":\"#fd6209ff\"}},{\"scope\":\"meta.constructor.argument.css\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#ec9799ff\"}},{\"scope\":[\"meta.diff\",\"meta.diff.header\"],\"settings\":{\"fontStyle\":\"italic\",\"foreground\":\"#f8f8f8ff\"}},{\"scope\":\"markup.deleted\",\"settings\":{\"foreground\":\"#ec9799ff\"}},{\"scope\":\"markup.changed\",\"settings\":{\"foreground\":\"#f8f8f8ff\"}},{\"scope\":\"markup.inserted\",\"settings\":{\"foreground\":\"#41a83eff\"}},{\"scope\":\"markup.quote\",\"settings\":{\"foreground\":\"#f12727ff\"}},{\"scope\":\"markup.list\",\"settings\":{\"foreground\":\"#ff6262ff\"}},{\"scope\":[\"markup.bold\",\"markup.italic\"],\"settings\":{\"foreground\":\"#fb9a4bff\"}},{\"scope\":\"markup.bold\",\"settings\":{\"fontStyle\":\"bold\"}},{\"scope\":\"markup.italic\",\"settings\":{\"fontStyle\":\"italic\"}},{\"scope\":\"markup.strikethrough\",\"settings\":{\"fontStyle\":\"strikethrough\"}},{\"scope\":\"markup.inline.raw\",\"settings\":{\"fontStyle\":\"\",\"foreground\":\"#cd8d8dff\"}},{\"scope\":[\"markup.heading\",\"markup.heading.setext\",\"punctuation.definition.heading\",\"entity.name.section\"],\"settings\":{\"fontStyle\":\"bold\",\"foreground\":\"#fec758ff\"}},{\"scope\":[\"punctuation.definition.template-expression.begin\",\"punctuation.definition.template-expression.end\",\"punctuation.section.embedded\",\".format.placeholder\"],\"settings\":{\"foreground\":\"#ec0d1e\"}}],\"type\":\"dark\"}'));export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/cPjAOO0u.js",
    "content": "import e from\"./xI-RfyKK.js\";const n=Object.freeze(JSON.parse(`{\"displayName\":\"XML\",\"name\":\"xml\",\"patterns\":[{\"begin\":\"(<\\\\\\\\?)\\\\\\\\s*([-_a-zA-Z0-9]+)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.xml\"},\"2\":{\"name\":\"entity.name.tag.xml\"}},\"end\":\"(\\\\\\\\?>)\",\"name\":\"meta.tag.preprocessor.xml\",\"patterns\":[{\"match\":\" ([a-zA-Z-]+)\",\"name\":\"entity.other.attribute-name.xml\"},{\"include\":\"#doublequotedString\"},{\"include\":\"#singlequotedString\"}]},{\"begin\":\"(<!)(DOCTYPE)\\\\\\\\s+([:a-zA-Z_][:a-zA-Z0-9_.-]*)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.xml\"},\"2\":{\"name\":\"keyword.other.doctype.xml\"},\"3\":{\"name\":\"variable.language.documentroot.xml\"}},\"end\":\"\\\\\\\\s*(>)\",\"name\":\"meta.tag.sgml.doctype.xml\",\"patterns\":[{\"include\":\"#internalSubset\"}]},{\"include\":\"#comments\"},{\"begin\":\"(<)((?:([-_a-zA-Z0-9]+)(:))?([-_a-zA-Z0-9:]+))(?=(\\\\\\\\s[^>]*)?></\\\\\\\\2>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.xml\"},\"2\":{\"name\":\"entity.name.tag.xml\"},\"3\":{\"name\":\"entity.name.tag.namespace.xml\"},\"4\":{\"name\":\"punctuation.separator.namespace.xml\"},\"5\":{\"name\":\"entity.name.tag.localname.xml\"}},\"end\":\"(>)(</)((?:([-_a-zA-Z0-9]+)(:))?([-_a-zA-Z0-9:]+))(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.xml\"},\"2\":{\"name\":\"punctuation.definition.tag.xml\"},\"3\":{\"name\":\"entity.name.tag.xml\"},\"4\":{\"name\":\"entity.name.tag.namespace.xml\"},\"5\":{\"name\":\"punctuation.separator.namespace.xml\"},\"6\":{\"name\":\"entity.name.tag.localname.xml\"},\"7\":{\"name\":\"punctuation.definition.tag.xml\"}},\"name\":\"meta.tag.no-content.xml\",\"patterns\":[{\"include\":\"#tagStuff\"}]},{\"begin\":\"(</?)(?:([-\\\\\\\\w\\\\\\\\.]+)((:)))?([-\\\\\\\\w\\\\\\\\.:]+)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.xml\"},\"2\":{\"name\":\"entity.name.tag.namespace.xml\"},\"3\":{\"name\":\"entity.name.tag.xml\"},\"4\":{\"name\":\"punctuation.separator.namespace.xml\"},\"5\":{\"name\":\"entity.name.tag.localname.xml\"}},\"end\":\"(/?>)\",\"name\":\"meta.tag.xml\",\"patterns\":[{\"include\":\"#tagStuff\"}]},{\"include\":\"#entity\"},{\"include\":\"#bare-ampersand\"},{\"begin\":\"<%@\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.xml\"}},\"end\":\"%>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.xml\"}},\"name\":\"source.java-props.embedded.xml\",\"patterns\":[{\"match\":\"page|include|taglib\",\"name\":\"keyword.other.page-props.xml\"}]},{\"begin\":\"<%[!=]?(?!--)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.xml\"}},\"end\":\"(?!--)%>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.xml\"}},\"name\":\"source.java.embedded.xml\",\"patterns\":[{\"include\":\"source.java\"}]},{\"begin\":\"<!\\\\\\\\[CDATA\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.xml\"}},\"end\":\"]]>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.xml\"}},\"name\":\"string.unquoted.cdata.xml\"}],\"repository\":{\"EntityDecl\":{\"begin\":\"(<!)(ENTITY)\\\\\\\\s+(%\\\\\\\\s+)?([:a-zA-Z_][:a-zA-Z0-9_.-]*)(\\\\\\\\s+(?:SYSTEM|PUBLIC)\\\\\\\\s+)?\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.tag.xml\"},\"2\":{\"name\":\"keyword.other.entity.xml\"},\"3\":{\"name\":\"punctuation.definition.entity.xml\"},\"4\":{\"name\":\"variable.language.entity.xml\"},\"5\":{\"name\":\"keyword.other.entitytype.xml\"}},\"end\":\"(>)\",\"patterns\":[{\"include\":\"#doublequotedString\"},{\"include\":\"#singlequotedString\"}]},\"bare-ampersand\":{\"match\":\"&\",\"name\":\"invalid.illegal.bad-ampersand.xml\"},\"comments\":{\"patterns\":[{\"begin\":\"<%--\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.xml\"},\"end\":\"--%>\",\"name\":\"comment.block.xml\"}},{\"begin\":\"<!--\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.xml\"}},\"end\":\"-->\",\"name\":\"comment.block.xml\",\"patterns\":[{\"begin\":\"--(?!>)\",\"captures\":{\"0\":{\"name\":\"invalid.illegal.bad-comments-or-CDATA.xml\"}}}]}]},\"doublequotedString\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.xml\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.xml\"}},\"name\":\"string.quoted.double.xml\",\"patterns\":[{\"include\":\"#entity\"},{\"include\":\"#bare-ampersand\"}]},\"entity\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.constant.xml\"},\"3\":{\"name\":\"punctuation.definition.constant.xml\"}},\"match\":\"(&)([:a-zA-Z_][:a-zA-Z0-9_.-]*|#[0-9]+|#x[0-9a-fA-F]+)(;)\",\"name\":\"constant.character.entity.xml\"},\"internalSubset\":{\"begin\":\"(\\\\\\\\[)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.constant.xml\"}},\"end\":\"(\\\\\\\\])\",\"name\":\"meta.internalsubset.xml\",\"patterns\":[{\"include\":\"#EntityDecl\"},{\"include\":\"#parameterEntity\"},{\"include\":\"#comments\"}]},\"parameterEntity\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.constant.xml\"},\"3\":{\"name\":\"punctuation.definition.constant.xml\"}},\"match\":\"(%)([:a-zA-Z_][:a-zA-Z0-9_.-]*)(;)\",\"name\":\"constant.character.parameter-entity.xml\"},\"singlequotedString\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.xml\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.xml\"}},\"name\":\"string.quoted.single.xml\",\"patterns\":[{\"include\":\"#entity\"},{\"include\":\"#bare-ampersand\"}]},\"tagStuff\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.namespace.xml\"},\"2\":{\"name\":\"entity.other.attribute-name.xml\"},\"3\":{\"name\":\"punctuation.separator.namespace.xml\"},\"4\":{\"name\":\"entity.other.attribute-name.localname.xml\"}},\"match\":\"(?:^|\\\\\\\\s+)(?:([-\\\\\\\\w.]+)((:)))?([-\\\\\\\\w.:]+)\\\\\\\\s*=\"},{\"include\":\"#doublequotedString\"},{\"include\":\"#singlequotedString\"}]}},\"scopeName\":\"text.xml\",\"embeddedLangs\":[\"java\"]}`)),a=[...e,n];export{a as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/dUAF8qyF.js",
    "content": "import{_ as Ie}from\"./CvhZxjKo.js\";import{aP as Fe,d as Q,aQ as K,c as E,aR as pe,B as ee,o as Pe,aS as we,ai as ce,aT as c,aU as H,aV as N,aW as De,aX as Z,aY as ke,aZ as de,a_ as ge,a$ as R,b0 as ne,b1 as re,F as te,b2 as L,r as T,b3 as ze,b4 as ve,b5 as Me,b6 as G,b7 as Ne,b8 as Ue,b9 as Oe,ba as Re,bb as je,bc as Le,bd as me,be as U,bf as ue,ak as He,aq as be,Q as xe,bg as ae,e as ie,g as F,f as D,i as r,E as O,C as M,H as q,R as ye,j as d,bh as _e,aj as le,X as Ae,am as Ge,an as he,V as qe,bi as Ke,w as W,bj as We,bk as Qe,a4 as Xe,P as Se,a0 as X,a7 as Je,t as Ye,N as Ze,x as et,k as tt,ay as at,af as lt,q as J,O as ot,G as oe,ag as st,s as Y}from\"./CU_MfyYc.js\";import{_ as nt}from\"./CqvT4tPC.js\";import{_ as rt}from\"./CYcD1Eih.js\";import{_ as ut}from\"./C4bX54si.js\";import{u as it}from\"./Cwg39VG_.js\";const pt={wrapper:\"relative\",container:\"z-50 group\",trigger:\"inline-flex w-full\",width:\"\",background:\"bg-white dark:bg-gray-900\",shadow:\"shadow-lg\",rounded:\"rounded-md\",ring:\"ring-1 ring-gray-200 dark:ring-gray-800\",base:\"overflow-hidden focus:outline-none relative\",transition:{enterActiveClass:\"transition ease-out duration-200\",enterFromClass:\"opacity-0 translate-y-1\",enterToClass:\"opacity-100 translate-y-0\",leaveActiveClass:\"transition ease-in duration-150\",leaveFromClass:\"opacity-100 translate-y-0\",leaveToClass:\"opacity-0 translate-y-1\"},overlay:{base:\"fixed inset-0 transition-opacity z-50\",background:\"bg-gray-200/75 dark:bg-gray-800/75\",transition:{enterActiveClass:\"ease-out duration-200\",enterFromClass:\"opacity-0\",enterToClass:\"opacity-100\",leaveActiveClass:\"ease-in duration-150\",leaveFromClass:\"opacity-100\",leaveToClass:\"opacity-0\"}},popper:{strategy:\"fixed\"},default:{openDelay:0,closeDelay:0},arrow:Fe};var ct=(a=>(a[a.Open=0]=\"Open\",a[a.Closed=1]=\"Closed\",a))(ct||{});let $e=Symbol(\"PopoverContext\");function fe(a){let C=me($e,null);if(C===null){let _=new Error(`<${a} /> is missing a parent <${Ve.name} /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(_,fe),_}return C}let dt=Symbol(\"PopoverGroupContext\");function Ce(){return me(dt,null)}let Te=Symbol(\"PopoverPanelContext\");function vt(){return me(Te,null)}let Ve=Q({name:\"Popover\",inheritAttrs:!1,props:{as:{type:[Object,String],default:\"div\"}},setup(a,{slots:C,attrs:_,expose:s}){var k;let $=T(null);s({el:$,$el:$});let n=T(1),l=T(null),p=T(null),g=T(null),b=T(null),x=E(()=>pe($)),B=E(()=>{var t,i;if(!c(l)||!c(b))return!1;for(let A of document.querySelectorAll(\"body > *\"))if(Number(A==null?void 0:A.contains(c(l)))^Number(A==null?void 0:A.contains(c(b))))return!0;let u=ve(),y=u.indexOf(c(l)),w=(y+u.length-1)%u.length,V=(y+1)%u.length,z=u[w],j=u[V];return!((t=c(b))!=null&&t.contains(z))&&!((i=c(b))!=null&&i.contains(j))}),S={popoverState:n,buttonId:T(null),panelId:T(null),panel:b,button:l,isPortalled:B,beforePanelSentinel:p,afterPanelSentinel:g,togglePopover(){n.value=G(n.value,{0:1,1:0})},closePopover(){n.value!==1&&(n.value=1)},close(t){S.closePopover();let i=t?t instanceof HTMLElement?t:t.value instanceof HTMLElement?c(t):c(S.button):c(S.button);i==null||i.focus()}};we($e,S),Me(E(()=>G(n.value,{0:Z.Open,1:Z.Closed})));let I={buttonId:S.buttonId,panelId:S.panelId,close(){S.closePopover()}},m=Ce(),h=m==null?void 0:m.registerPopover,[P,f]=Ne(),o=Ue({mainTreeNodeRef:m==null?void 0:m.mainTreeNodeRef,portals:P,defaultContainers:[l,b]});function e(){var t,i,u,y;return(y=m==null?void 0:m.isFocusWithinPopoverGroup())!=null?y:((t=x.value)==null?void 0:t.activeElement)&&(((i=c(l))==null?void 0:i.contains(x.value.activeElement))||((u=c(b))==null?void 0:u.contains(x.value.activeElement)))}return ce(()=>h==null?void 0:h(I)),Oe((k=x.value)==null?void 0:k.defaultView,\"focus\",t=>{var i,u;t.target!==window&&t.target instanceof HTMLElement&&n.value===0&&(e()||l&&b&&(o.contains(t.target)||(i=c(S.beforePanelSentinel))!=null&&i.contains(t.target)||(u=c(S.afterPanelSentinel))!=null&&u.contains(t.target)||S.closePopover()))},!0),Re(o.resolveContainers,(t,i)=>{var u;S.closePopover(),je(i,Le.Loose)||(t.preventDefault(),(u=c(l))==null||u.focus())},E(()=>n.value===0)),()=>{let t={open:n.value===0,close:S.close};return R(te,[R(f,{},()=>de({theirProps:{...a,..._},ourProps:{ref:$},slot:t,slots:C,attrs:_,name:\"Popover\"})),R(o.MainTreeNode)])}}}),mt=Q({name:\"PopoverButton\",props:{as:{type:[Object,String],default:\"button\"},disabled:{type:[Boolean],default:!1},id:{type:String,default:null}},inheritAttrs:!1,setup(a,{attrs:C,slots:_,expose:s}){var k;let $=(k=a.id)!=null?k:`headlessui-popover-button-${K()}`,n=fe(\"PopoverButton\"),l=E(()=>pe(n.button));s({el:n.button,$el:n.button}),ee(()=>{n.buttonId.value=$}),Pe(()=>{n.buttonId.value=null});let p=Ce(),g=p==null?void 0:p.closeOthers,b=vt(),x=E(()=>b===null?!1:b.value===n.panelId.value),B=T(null),S=`headlessui-focus-sentinel-${K()}`;x.value||ce(()=>{n.button.value=c(B)});let I=ze(E(()=>({as:a.as,type:C.type})),B);function m(t){var i,u,y,w,V;if(x.value){if(n.popoverState.value===1)return;switch(t.key){case L.Space:case L.Enter:t.preventDefault(),(u=(i=t.target).click)==null||u.call(i),n.closePopover(),(y=c(n.button))==null||y.focus();break}}else switch(t.key){case L.Space:case L.Enter:t.preventDefault(),t.stopPropagation(),n.popoverState.value===1&&(g==null||g(n.buttonId.value)),n.togglePopover();break;case L.Escape:if(n.popoverState.value!==0)return g==null?void 0:g(n.buttonId.value);if(!c(n.button)||(w=l.value)!=null&&w.activeElement&&!((V=c(n.button))!=null&&V.contains(l.value.activeElement)))return;t.preventDefault(),t.stopPropagation(),n.closePopover();break}}function h(t){x.value||t.key===L.Space&&t.preventDefault()}function P(t){var i,u;a.disabled||(x.value?(n.closePopover(),(i=c(n.button))==null||i.focus()):(t.preventDefault(),t.stopPropagation(),n.popoverState.value===1&&(g==null||g(n.buttonId.value)),n.togglePopover(),(u=c(n.button))==null||u.focus()))}function f(t){t.preventDefault(),t.stopPropagation()}let o=ke();function e(){let t=c(n.panel);if(!t)return;function i(){G(o.value,{[U.Forwards]:()=>H(t,N.First),[U.Backwards]:()=>H(t,N.Last)})===ue.Error&&H(ve().filter(u=>u.dataset.headlessuiFocusGuard!==\"true\"),G(o.value,{[U.Forwards]:N.Next,[U.Backwards]:N.Previous}),{relativeTo:c(n.button)})}i()}return()=>{let t=n.popoverState.value===0,i={open:t},{...u}=a,y=x.value?{ref:B,type:I.value,onKeydown:m,onClick:P}:{ref:B,id:$,type:I.value,\"aria-expanded\":n.popoverState.value===0,\"aria-controls\":c(n.panel)?n.panelId.value:void 0,disabled:a.disabled?!0:void 0,onKeydown:m,onKeyup:h,onClick:P,onMousedown:f};return R(te,[de({ourProps:y,theirProps:{...C,...u},slot:i,attrs:C,slots:_,name:\"PopoverButton\"}),t&&!x.value&&n.isPortalled.value&&R(ne,{id:S,features:re.Focusable,\"data-headlessui-focus-guard\":!0,as:\"button\",type:\"button\",onFocus:e})])}}}),ft=Q({name:\"PopoverPanel\",props:{as:{type:[Object,String],default:\"div\"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},focus:{type:Boolean,default:!1},id:{type:String,default:null}},inheritAttrs:!1,setup(a,{attrs:C,slots:_,expose:s}){var k;let $=(k=a.id)!=null?k:`headlessui-popover-panel-${K()}`,{focus:n}=a,l=fe(\"PopoverPanel\"),p=E(()=>pe(l.panel)),g=`headlessui-focus-sentinel-before-${K()}`,b=`headlessui-focus-sentinel-after-${K()}`;s({el:l.panel,$el:l.panel}),ee(()=>{l.panelId.value=$}),Pe(()=>{l.panelId.value=null}),we(Te,l.panelId),ce(()=>{var f,o;if(!n||l.popoverState.value!==0||!l.panel)return;let e=(f=p.value)==null?void 0:f.activeElement;(o=c(l.panel))!=null&&o.contains(e)||H(c(l.panel),N.First)});let x=De(),B=E(()=>x!==null?(x.value&Z.Open)===Z.Open:l.popoverState.value===0);function S(f){var o,e;switch(f.key){case L.Escape:if(l.popoverState.value!==0||!c(l.panel)||p.value&&!((o=c(l.panel))!=null&&o.contains(p.value.activeElement)))return;f.preventDefault(),f.stopPropagation(),l.closePopover(),(e=c(l.button))==null||e.focus();break}}function I(f){var o,e,t,i,u;let y=f.relatedTarget;y&&c(l.panel)&&((o=c(l.panel))!=null&&o.contains(y)||(l.closePopover(),((t=(e=c(l.beforePanelSentinel))==null?void 0:e.contains)!=null&&t.call(e,y)||(u=(i=c(l.afterPanelSentinel))==null?void 0:i.contains)!=null&&u.call(i,y))&&y.focus({preventScroll:!0})))}let m=ke();function h(){let f=c(l.panel);if(!f)return;function o(){G(m.value,{[U.Forwards]:()=>{var e;H(f,N.First)===ue.Error&&((e=c(l.afterPanelSentinel))==null||e.focus())},[U.Backwards]:()=>{var e;(e=c(l.button))==null||e.focus({preventScroll:!0})}})}o()}function P(){let f=c(l.panel);if(!f)return;function o(){G(m.value,{[U.Forwards]:()=>{let e=c(l.button),t=c(l.panel);if(!e)return;let i=ve(),u=i.indexOf(e),y=i.slice(0,u+1),w=[...i.slice(u+1),...y];for(let V of w.slice())if(V.dataset.headlessuiFocusGuard===\"true\"||t!=null&&t.contains(V)){let z=w.indexOf(V);z!==-1&&w.splice(z,1)}H(w,N.First,{sorted:!1})},[U.Backwards]:()=>{var e;H(f,N.Previous)===ue.Error&&((e=c(l.button))==null||e.focus())}})}o()}return()=>{let f={open:l.popoverState.value===0,close:l.close},{focus:o,...e}=a,t={ref:l.panel,id:$,onKeydown:S,onFocusout:n&&l.popoverState.value===0?I:void 0,tabIndex:-1};return de({ourProps:t,theirProps:{...C,...e},attrs:C,slot:f,slots:{..._,default:(...i)=>{var u;return[R(te,[B.value&&l.isPortalled.value&&R(ne,{id:g,ref:l.beforePanelSentinel,features:re.Focusable,\"data-headlessui-focus-guard\":!0,as:\"button\",type:\"button\",onFocus:h}),(u=_.default)==null?void 0:u.call(_,...i),B.value&&l.isPortalled.value&&R(ne,{id:b,ref:l.afterPanelSentinel,features:re.Focusable,\"data-headlessui-focus-guard\":!0,as:\"button\",type:\"button\",onFocus:P})])]}},features:ge.RenderStrategy|ge.Static,visible:B.value,name:\"PopoverPanel\"})}}});const se=He(be.ui.strategy,be.ui.popover,pt),gt=Q({components:{HPopover:Ve,HPopoverButton:mt,HPopoverPanel:ft},inheritAttrs:!1,props:{mode:{type:String,default:\"click\",validator:a=>[\"click\",\"hover\"].includes(a)},open:{type:Boolean,default:void 0},disabled:{type:Boolean,default:!1},openDelay:{type:Number,default:()=>se.default.openDelay},closeDelay:{type:Number,default:()=>se.default.closeDelay},overlay:{type:Boolean,default:!1},popper:{type:Object,default:()=>({})},class:{type:[String,Object,Array],default:()=>\"\"},ui:{type:Object,default:()=>({})}},emits:[\"update:open\"],setup(a,{emit:C}){const{ui:_,attrs:s}=Ge(\"popover\",he(a,\"ui\"),se,he(a,\"class\")),k=E(()=>qe(a.mode===\"hover\"?{offsetDistance:0}:{},a.popper,_.value.popper)),[$,n]=Ke(k.value),l=T(null),p=T(null);let g=null,b=null;ee(()=>{var P,f;const m=(P=l.value)==null?void 0:P.$.provides;if(!m)return;const h=Object.getOwnPropertySymbols(m);p.value=h.length&&m[h[0]],a.open&&((f=p.value)==null||f.togglePopover())});const x=E(()=>{var f,o,e;if(a.mode!==\"hover\")return{};const m=((f=a.popper)==null?void 0:f.offsetDistance)||((o=_.value.popper)==null?void 0:o.offsetDistance)||8,h=(e=k.value.placement)==null?void 0:e.split(\"-\")[0],P=`${m}px`;return h===\"top\"||h===\"bottom\"?{paddingTop:P,paddingBottom:P}:h===\"left\"||h===\"right\"?{paddingLeft:P,paddingRight:P}:{paddingTop:P,paddingBottom:P,paddingLeft:P,paddingRight:P}});function B(){p.value&&(p.value.popoverState===0?p.value.closePopover():p.value.togglePopover())}function S(){a.mode!==\"hover\"||!p.value||(b&&(clearTimeout(b),b=null),p.value.popoverState!==0&&(g=g||setTimeout(()=>{p.value.togglePopover&&p.value.togglePopover(),g=null},a.openDelay)))}function I(){a.mode!==\"hover\"||!p.value||(g&&(clearTimeout(g),g=null),p.value.popoverState!==1&&(b=b||setTimeout(()=>{p.value.closePopover&&p.value.closePopover(),b=null},a.closeDelay)))}return W(()=>a.open,(m,h)=>{p.value&&(h===void 0||m===h||(m?p.value.popoverState=0:p.value.closePopover()))}),W(()=>{var m;return(m=p.value)==null?void 0:m.popoverState},(m,h)=>{h===void 0||m===h||C(\"update:open\",m===0)}),We(()=>Qe()),{ui:_,attrs:s,popover:l,popper:k,trigger:$,container:n,containerStyle:x,onTouchStart:B,onMouseEnter:S,onMouseLeave:I}}}),bt=[\"disabled\"];function yt(a,C,_,s,k,$){const n=ae(\"HPopoverButton\"),l=ae(\"HPopoverPanel\"),p=ae(\"HPopover\");return F(),ie(p,le({ref:\"popover\",class:a.ui.wrapper},a.attrs,{onMouseleave:a.onMouseLeave}),{default:D(({open:g,close:b})=>[r(n,{ref:\"trigger\",as:\"div\",disabled:a.disabled,class:q(a.ui.trigger),role:\"button\",onMouseenter:a.onMouseEnter,onTouchstartPassive:a.onTouchStart},{default:D(()=>[ye(a.$slots,\"default\",{open:g,close:b},()=>[d(\"button\",{disabled:a.disabled},\" Open \",8,bt)])]),_:2},1032,[\"disabled\",\"class\",\"onMouseenter\",\"onTouchstartPassive\"]),a.overlay?(F(),ie(_e,le({key:0,appear:\"\"},a.ui.overlay.transition),{default:D(()=>[g?(F(),M(\"div\",{key:0,class:q([a.ui.overlay.base,a.ui.overlay.background])},null,2)):O(\"\",!0)]),_:2},1040)):O(\"\",!0),g?(F(),M(\"div\",{key:1,ref:\"container\",class:q([a.ui.container,a.ui.width]),style:Ae(a.containerStyle)},[r(_e,le({appear:\"\"},a.ui.transition),{default:D(()=>[d(\"div\",null,[a.popper.arrow?(F(),M(\"div\",{key:0,\"data-popper-arrow\":\"\",class:q(Object.values(a.ui.arrow))},null,2)):O(\"\",!0),r(l,{class:q([a.ui.base,a.ui.background,a.ui.ring,a.ui.rounded,a.ui.shadow]),static:\"\"},{default:D(()=>[ye(a.$slots,\"panel\",{open:g,close:b})]),_:2},1032,[\"class\"])])]),_:2},1040)],6)):O(\"\",!0)]),_:3},16,[\"class\",\"onMouseleave\"])}const _t=xe(gt,[[\"render\",yt]]),ht={key:0,class:\"space-y-6\"},St={class:\"mb-4\"},Pt={class:\"space-y-4\"},wt={class:\"space-y-4\"},kt={class:\"flex gap-2\"},xt={class:\"space-y-4\"},$t={class:\"space-y-3\"},Ct={class:\"space-y-4\"},Tt={class:\"space-y-4\"},Vt={class:\"space-y-3\"},Bt={class:\"flex gap-2\"},Et={class:\"space-y-4\"},It={class:\"flex items-center select-none flex-1 mb-4\"},Ft={class:\"space-y-4\"},Dt={class:\"flex items-center\"},zt={class:\"flex items-center\"},Mt={key:1},Nt={class:\"space-y-4\"},Ut={class:\"flex items-center gap-2 mb-2\"},Ot={class:\"flex justify-between\"},Rt={class:\"flex gap-2 mb-3 flex-wrap\"},jt={class:\"text-xs text-gray-500 dark:text-gray-400 mt-1\"},Lt={key:0},Ht={key:0,class:\"space-y-4\"},At={class:\"grid grid-cols-1 gap-6\"},Gt={key:0,class:\"space-y-4\"},qt={key:1},Kt=Q({__name:\"index\",setup(a){it({title:\"Monte Carlo - Jesse\"});const C=Xe(),_=Se(),s=E(()=>_.form),k=T(!1),$=T(!0),n=T([]),l=[{label:\"1 Day\",value:1440},{label:\"3 Days\",value:4320},{label:\"7 Days\",value:10080},{label:\"14 Days\",value:20160}],p=T(\"custom\"),g=E(()=>{var o;return typeof s.value.pipeline_type==\"string\"?s.value.pipeline_type:((o=s.value.pipeline_type)==null?void 0:o.value)||\"moving_block_bootstrap\"}),b=E(()=>X().jesseSupportedTimeframes.map(o=>({label:o,value:o})));ee(()=>{setTimeout(async()=>{m(),B();try{const e=(sessionStorage.getItem(\"previousRoute\")||\"\").match(/\\/monte-carlo\\/[^\\/]+$/);if(sessionStorage.removeItem(\"previousRoute\"),!e){const t=await _.getRunningSession();if(t){f(`/monte-carlo/${t}`);return}}}finally{$.value=!1}},50)});const x=Je(()=>{_.form.id&&_.saveState()},1e3);W(()=>_.form,()=>{x()},{deep:!0});function B(){const o=s.value.pipeline_params.batch_size,e=l.find(t=>t.value===o);p.value=e?e.value:\"custom\"}function S(o){p.value=o,o!==\"custom\"&&(s.value.pipeline_params.batch_size=o)}W(()=>s.value.pipeline_params.batch_size,o=>{const e=l.find(t=>t.value===o);e&&p.value!==e.value?p.value=e.value:!e&&p.value!==\"custom\"&&(p.value=\"custom\")}),W(()=>g.value,o=>{if(o===\"gaussian\"){const e=s.value.pipeline_params;(e.close_sigma===void 0||e.close_sigma===null)&&(e.close_sigma=.001),(e.high_sigma===void 0||e.high_sigma===null)&&(e.high_sigma=1e-4),(e.low_sigma===void 0||e.low_sigma===null)&&(e.low_sigma=1e-4)}});const I=T([]);async function m(){I.value=await X().getExchangeSupportedSymbols(s.value.exchange);for(let o=0;o<s.value.routes.length;o++)I.value.includes(s.value.routes[o].symbol)||(s.value.routes[o].symbol=I.value[0])}s.value.exchange=s.value.exchange||X().backtestingExchangeNames[0];function h(o){const e=o.slice(-1),t=parseInt(o.slice(0,-1));switch(e){case\"m\":return t;case\"h\":return t*60;case\"D\":return t*24*60;default:return 0}}async function P(){if(n.value.length){for(let w=0;w<n.value.length;w++)Y(\"error\",n.value[w]);return}if(!s.value.run_trades&&!s.value.run_candles){Y(\"error\",\"Please select at least one simulation type (Trades or Candles).\");return}const o=s.value.pipeline_params.batch_size,e=1440;if(o<e){Y(\"error\",`Batch size must be at least ${e} minutes (1 day). Current: ${o} minutes.`);return}const i=[...s.value.routes,...s.value.data_routes].map(w=>w.timeframe);let u=1/0;for(const w of i){const V=h(w);V>0&&V<u&&(u=V)}if(u===1/0&&(u=1),o%u!==0){Y(\"error\",`Batch size (${o} minutes) must be a multiple of the minimum timeframe (${u} minutes).`);return}k.value=!0;const y=await Se().start();y&&y.status&&y.status===\"success\"&&f(`/monte-carlo/${y.id}?status=running`),k.value=!1}function f(o){C.push(o)}return(o,e)=>{const t=Ie,i=Ze,u=nt,y=rt,w=tt,V=at,z=lt,j=Ye,A=_t,Be=st,Ee=ut;return F(),ie(Ee,null,{left:D(()=>[$.value?(F(),M(\"div\",ht,[d(\"div\",St,[r(t,{class:\"h-4 w-20 mb-2\"}),r(t,{class:\"h-12 w-full\"})]),d(\"div\",Pt,[r(t,{class:\"h-4 w-24\"}),r(t,{class:\"h-32 w-full\"})]),d(\"div\",wt,[r(t,{class:\"h-4 w-20\"}),d(\"div\",kt,[r(t,{class:\"h-12 flex-1\"}),r(t,{class:\"h-12 flex-1\"})])]),d(\"div\",xt,[r(t,{class:\"h-4 w-32\"}),d(\"div\",$t,[r(t,{class:\"h-5 w-48\"}),r(t,{class:\"h-5 w-52\"})])]),d(\"div\",Ct,[r(t,{class:\"h-4 w-20\"}),r(t,{class:\"h-12 w-full\"})]),d(\"div\",Tt,[r(t,{class:\"h-4 w-40\"}),d(\"div\",Vt,[r(t,{class:\"h-4 w-24\"}),r(t,{class:\"h-12 w-full\"}),d(\"div\",Bt,[r(t,{class:\"h-8 w-16\"}),r(t,{class:\"h-8 w-20\"}),r(t,{class:\"h-8 w-16\"}),r(t,{class:\"h-8 w-20\"}),r(t,{class:\"h-8 w-16\"})])])]),d(\"div\",Et,[r(t,{class:\"h-4 w-16\"}),r(t,{class:\"h-16 w-full\"})])])):O(\"\",!0),r(i,{class:\"mb-4\",title:\"Exchange\"}),r(u,{modelValue:s.value.exchange,\"onUpdate:modelValue\":e[0]||(e[0]=v=>s.value.exchange=v),placeholder:\"Select an exchange...\",searchable:\"\",options:et(X)().backtestingExchangeNames,class:\"mt-2 mb-16\",onChange:m},null,8,[\"modelValue\",\"options\"]),r(y,{\"total-routes-error\":n.value,form:s.value,symbols:I.value,timeframes:b.value},null,8,[\"total-routes-error\",\"form\",\"symbols\",\"timeframes\"]),r(i,{class:\"mt-16 mb-4\",title:\"Duration\"}),d(\"div\",It,[r(w,{modelValue:s.value.start_date,\"onUpdate:modelValue\":e[1]||(e[1]=v=>s.value.start_date=v),type:\"date\",variant:\"outline\",class:\"w-full mr-2\"},null,8,[\"modelValue\"]),r(w,{modelValue:s.value.finish_date,\"onUpdate:modelValue\":e[2]||(e[2]=v=>s.value.finish_date=v),type:\"date\",variant:\"outline\",class:\"w-full ml-2\"},null,8,[\"modelValue\"])]),r(i,{class:\"mt-16 mb-4\",title:\"Simulation Types\"}),d(\"div\",Ft,[d(\"div\",Dt,[r(V,{modelValue:s.value.run_trades,\"onUpdate:modelValue\":e[3]||(e[3]=v=>s.value.run_trades=v),label:\"Run Trades Simulation\"},null,8,[\"modelValue\"])]),d(\"div\",zt,[r(V,{modelValue:s.value.run_candles,\"onUpdate:modelValue\":e[4]||(e[4]=v=>s.value.run_candles=v),label:\"Run Candles Simulation\"},null,8,[\"modelValue\"])])]),r(i,{class:\"mt-16 mb-4\",title:\"Scenarios\"}),r(z,{modelValue:s.value.num_scenarios,\"onUpdate:modelValue\":e[5]||(e[5]=v=>s.value.num_scenarios=v),title:\"Number of scenarios:\"},null,8,[\"modelValue\"]),s.value.run_candles?(F(),M(\"div\",Mt,[r(i,{class:\"mt-16 mb-4\",title:\"Pipeline Configuration\"}),d(\"div\",Nt,[d(\"div\",null,[e[15]||(e[15]=d(\"label\",{class:\"text-sm font-medium text-gray-700 dark:text-gray-200 mb-2 block\"},\"Pipeline Type\",-1)),r(u,{modelValue:s.value.pipeline_type,\"onUpdate:modelValue\":e[6]||(e[6]=v=>s.value.pipeline_type=v),options:[{label:\"Moving Block Bootstrap\",value:\"moving_block_bootstrap\"},{label:\"Gaussian Noise\",value:\"gaussian\"}]},null,8,[\"modelValue\"])]),d(\"div\",null,[d(\"div\",Ut,[e[17]||(e[17]=d(\"label\",{class:\"text-sm font-medium text-gray-700 dark:text-gray-200\"},\" Batch Size \",-1)),r(A,{mode:\"hover\",popper:{placement:\"top\"}},{panel:D(()=>e[16]||(e[16]=[d(\"div\",{class:\"p-4 max-w-sm\"},[d(\"h3\",{class:\"font-semibold text-sm mb-2\"},\"What is Batch Size?\"),d(\"p\",{class:\"text-xs text-gray-600 dark:text-gray-400 mb-2\"},\" The batch size controls how many 1-minute candles are processed together in each regeneration cycle. \"),d(\"p\",{class:\"text-xs text-gray-600 dark:text-gray-400 mb-2\"},[d(\"strong\",null,\"Larger values\"),J(\" (e.g., 7-14 days) preserve longer-term market patterns and trends, making simulations more realistic. \")]),d(\"p\",{class:\"text-xs text-gray-600 dark:text-gray-400\"},[d(\"strong\",null,\"Smaller values\"),J(\" (e.g., 1-3 days) create more variation between scenarios but may lose longer-term dependencies. \")])],-1)])),default:D(()=>[r(j,{icon:\"i-heroicons-information-circle\",size:\"2xs\",color:\"gray\",variant:\"ghost\",ui:{rounded:\"rounded-full\"}})]),_:1})]),d(\"div\",Ot,[d(\"div\",Rt,[(F(),M(te,null,ot(l,v=>r(j,{key:v.value,color:p.value===v.value?\"primary\":\"gray\",variant:p.value===v.value?\"solid\":\"soft\",size:\"sm\",onClick:Wt=>S(v.value)},{default:D(()=>[J(oe(v.label),1)]),_:2},1032,[\"color\",\"variant\",\"onClick\"])),64)),r(j,{color:p.value===\"custom\"?\"primary\":\"gray\",variant:p.value===\"custom\"?\"solid\":\"soft\",size:\"sm\",onClick:e[7]||(e[7]=v=>S(\"custom\"))},{default:D(()=>e[18]||(e[18]=[J(\" Custom \")])),_:1},8,[\"color\",\"variant\"])]),d(\"div\",null,[d(\"p\",jt,oe(s.value.pipeline_params.batch_size)+\" minutes (\"+oe(Number((s.value.pipeline_params.batch_size/(24*60)).toFixed(1)))+\" days) \",1)])]),p.value===\"custom\"?(F(),M(\"div\",Lt,[r(z,{modelValue:s.value.pipeline_params.batch_size,\"onUpdate:modelValue\":e[8]||(e[8]=v=>s.value.pipeline_params.batch_size=v),title:\"Batch Size (in minutes):\",min:1,step:60},null,8,[\"modelValue\"])])):O(\"\",!0)]),g.value===\"gaussian\"?(F(),M(\"div\",Ht,[r(z,{modelValue:s.value.pipeline_params.close_sigma,\"onUpdate:modelValue\":e[9]||(e[9]=v=>s.value.pipeline_params.close_sigma=v),title:\"Close Sigma:\"},null,8,[\"modelValue\"]),r(z,{modelValue:s.value.pipeline_params.high_sigma,\"onUpdate:modelValue\":e[10]||(e[10]=v=>s.value.pipeline_params.high_sigma=v),title:\"High Sigma:\"},null,8,[\"modelValue\"]),r(z,{modelValue:s.value.pipeline_params.low_sigma,\"onUpdate:modelValue\":e[11]||(e[11]=v=>s.value.pipeline_params.low_sigma=v),title:\"Low Sigma:\"},null,8,[\"modelValue\"])])):O(\"\",!0)])])):O(\"\",!0),r(i,{class:\"mt-16 mb-4\",title:\"Options\"}),d(\"div\",At,[r(Be,{modelValue:s.value.fast_mode,\"onUpdate:modelValue\":e[12]||(e[12]=v=>s.value.fast_mode=v),title:\"Fast Mode\",description:\"Runs the simulation faster using an improved algorithm.\"},null,8,[\"modelValue\"])])]),right:D(()=>[$.value?(F(),M(\"div\",Gt,[r(t,{class:\"h-16 w-full\"}),r(t,{class:\"h-16 w-full\"})])):(F(),M(\"div\",qt,[r(j,{class:\"w-full flex justify-center\",icon:\"i-heroicons-bolt\",variant:\"solid\",label:\"Start\",disabled:k.value,loading:k.value,trailing:!1,onClick:e[13]||(e[13]=v=>P())},null,8,[\"disabled\",\"loading\"]),r(j,{class:\"w-full flex justify-center mt-4\",icon:\"i-heroicons-clock\",variant:\"soft\",color:\"gray\",label:\"History\",trailing:!1,onClick:e[14]||(e[14]=v=>f(\"/monte-carlo/history\"))})]))]),_:1})}}}),ta=xe(Kt,[[\"__scopeId\",\"data-v-7d864384\"]]);export{ta as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/din0uRiO.js",
    "content": "import t from\"./atvbtKCR.js\";import e from\"./BQoSv7ci.js\";import n from\"./cPjAOO0u.js\";import a from\"./DjHMNizO.js\";import\"./xI-RfyKK.js\";import\"./ySlJ1b_l.js\";import\"./Dj6nwHGl.js\";import\"./BAng5TT0.js\";import\"./B6W0miNI.js\";const s=Object.freeze(JSON.parse('{\"displayName\":\"HTTP\",\"fileTypes\":[\"http\",\"rest\"],\"name\":\"http\",\"patterns\":[{\"begin\":\"^\\\\\\\\s*(?=curl)\",\"end\":\"^\\\\\\\\s*(\\\\\\\\#{3,}.*?)?\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"comment.line.sharp.http\"}},\"name\":\"http.request.curl\",\"patterns\":[{\"include\":\"source.shell\"}]},{\"begin\":\"\\\\\\\\s*(?=(\\\\\\\\[|{[^{]))\",\"end\":\"^\\\\\\\\s*(\\\\\\\\#{3,}.*?)?\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"comment.line.sharp.http\"}},\"name\":\"http.request.body.json\",\"patterns\":[{\"include\":\"source.json\"}]},{\"begin\":\"^\\\\\\\\s*(?=<\\\\\\\\S)\",\"end\":\"^\\\\\\\\s*(\\\\\\\\#{3,}.*?)?\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"comment.line.sharp.http\"}},\"name\":\"http.request.body.xml\",\"patterns\":[{\"include\":\"text.xml\"}]},{\"begin\":\"\\\\\\\\s*(?=(query|mutation))\",\"end\":\"^\\\\\\\\s*(\\\\\\\\#{3,}.*?)?\\\\\\\\s*$\",\"endCaptures\":{\"0\":{\"name\":\"comment.line.sharp.http\"}},\"name\":\"http.request.body.graphql\",\"patterns\":[{\"include\":\"source.graphql\"}]},{\"begin\":\"\\\\\\\\s*(?=(query|mutation))\",\"end\":\"^\\\\\\\\{\\\\\\\\s*$\",\"name\":\"http.request.body.graphql\",\"patterns\":[{\"include\":\"source.graphql\"}]},{\"include\":\"#metadata\"},{\"include\":\"#comments\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.http\"},\"2\":{\"name\":\"variable.other.http\"},\"3\":{\"name\":\"string.other.http\"}},\"match\":\"^\\\\\\\\s*(@)([^\\\\\\\\s=]+)\\\\\\\\s*=\\\\\\\\s*(.*?)\\\\\\\\s*$\",\"name\":\"http.filevariable\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.http\"},\"2\":{\"name\":\"variable.other.http\"},\"3\":{\"name\":\"string.other.http\"}},\"match\":\"^\\\\\\\\s*(\\\\\\\\?|&)([^=\\\\\\\\s]+)=(.*)$\",\"name\":\"http.query\"},{\"captures\":{\"1\":{\"name\":\"entity.name.tag.http\"},\"2\":{\"name\":\"keyword.other.http\"},\"3\":{\"name\":\"string.other.http\"}},\"match\":\"^([\\\\\\\\w\\\\\\\\-]+)\\\\\\\\s*(\\\\\\\\:)\\\\\\\\s*([^/].*?)\\\\\\\\s*$\",\"name\":\"http.headers\"},{\"include\":\"#request-line\"},{\"include\":\"#response-line\"}],\"repository\":{\"comments\":{\"patterns\":[{\"match\":\"^\\\\\\\\s*\\\\\\\\#{1,}.*$\",\"name\":\"comment.line.sharp.http\"},{\"match\":\"^\\\\\\\\s*\\\\\\\\/{2,}.*$\",\"name\":\"comment.line.double-slash.http\"}]},\"metadata\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name\"},\"2\":{\"name\":\"punctuation.definition.block.tag.metadata\"},\"3\":{\"name\":\"entity.name.type.http\"}},\"match\":\"^\\\\\\\\s*\\\\\\\\#{1,}\\\\\\\\s+(?:((@)name)\\\\\\\\s+([^\\\\\\\\s\\\\\\\\.]+))$\",\"name\":\"comment.line.sharp.http\"},{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name\"},\"2\":{\"name\":\"punctuation.definition.block.tag.metadata\"},\"3\":{\"name\":\"entity.name.type.http\"}},\"match\":\"^\\\\\\\\s*\\\\\\\\/{2,}\\\\\\\\s+(?:((@)name)\\\\\\\\s+([^\\\\\\\\s\\\\\\\\.]+))$\",\"name\":\"comment.line.double-slash.http\"},{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name\"},\"2\":{\"name\":\"punctuation.definition.block.tag.metadata\"}},\"match\":\"^\\\\\\\\s*\\\\\\\\#{1,}\\\\\\\\s+((@)note)\\\\\\\\s*$\",\"name\":\"comment.line.sharp.http\"},{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name\"},\"2\":{\"name\":\"punctuation.definition.block.tag.metadata\"}},\"match\":\"^\\\\\\\\s*\\\\\\\\/{2,}\\\\\\\\s+((@)note)\\\\\\\\s*$\",\"name\":\"comment.line.double-slash.http\"},{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name\"},\"2\":{\"name\":\"punctuation.definition.block.tag.metadata\"},\"3\":{\"name\":\"variable.other.http\"},\"4\":{\"name\":\"string.other.http\"}},\"match\":\"^\\\\\\\\s*\\\\\\\\#{1,}\\\\\\\\s+(?:((@)prompt)\\\\\\\\s+([^\\\\\\\\s]+)(?:\\\\\\\\s+(.*))?\\\\\\\\s*)$\",\"name\":\"comment.line.sharp.http\"},{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name\"},\"2\":{\"name\":\"punctuation.definition.block.tag.metadata\"},\"3\":{\"name\":\"variable.other.http\"},\"4\":{\"name\":\"string.other.http\"}},\"match\":\"^\\\\\\\\s*\\\\\\\\/{2,}\\\\\\\\s+(?:((@)prompt)\\\\\\\\s+([^\\\\\\\\s]+)(?:\\\\\\\\s+(.*))?\\\\\\\\s*)$\",\"name\":\"comment.line.double-slash.http\"}]},\"protocol\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.http\"},\"2\":{\"name\":\"constant.numeric.http\"}},\"match\":\"(HTTP)/(\\\\\\\\d+.\\\\\\\\d+)\",\"name\":\"http.version\"}]},\"request-line\":{\"captures\":{\"1\":{\"name\":\"keyword.control.http\"},\"2\":{\"name\":\"const.language.http\"},\"3\":{\"patterns\":[{\"include\":\"#protocol\"}]}},\"match\":\"(?i)^(?:(get|post|put|delete|patch|head|options|connect|trace|lock|unlock|propfind|proppatch|copy|move|mkcol|mkcalendar|acl|search)\\\\\\\\s+)\\\\\\\\s*(.+?)(?:\\\\\\\\s+(HTTP\\\\\\\\/\\\\\\\\S+))?$\",\"name\":\"http.requestline\"},\"response-line\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#protocol\"}]},\"2\":{\"name\":\"constant.numeric.http\"},\"3\":{\"name\":\"string.other.http\"}},\"match\":\"(?i)^\\\\\\\\s*(HTTP\\\\\\\\/\\\\\\\\S+)\\\\\\\\s([1-5][0-9][0-9])\\\\\\\\s(.*)$\",\"name\":\"http.responseLine\"}},\"scopeName\":\"source.http\",\"embeddedLangs\":[\"shellscript\",\"json\",\"xml\",\"graphql\"]}')),d=[...t,...e,...n,...a,s];export{d as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/e4jU7D2d.js",
    "content": "import t from\"./BMYPR7BL.js\";import\"./ySlJ1b_l.js\";import\"./BPhBrDlE.js\";const e=Object.freeze(JSON.parse('{\"displayName\":\"HTML (Derivative)\",\"injections\":{\"R:text.html - (comment.block, text.html meta.embedded, meta.tag.*.*.html, meta.tag.*.*.*.html, meta.tag.*.*.*.*.html)\":{\"comment\":\"Uses R: to ensure this matches after any other injections.\",\"patterns\":[{\"match\":\"<\",\"name\":\"invalid.illegal.bad-angle-bracket.html\"}]}},\"name\":\"html-derivative\",\"patterns\":[{\"include\":\"text.html.basic#core-minus-invalid\"},{\"begin\":\"(</?)(\\\\\\\\w[^\\\\\\\\s>]*)(?<!/)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.html\"},\"2\":{\"name\":\"entity.name.tag.html\"}},\"end\":\"((?: ?/)?>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.html\"}},\"name\":\"meta.tag.other.unrecognized.html.derivative\",\"patterns\":[{\"include\":\"text.html.basic#attribute\"}]}],\"scopeName\":\"text.html.derivative\",\"embeddedLangs\":[\"html\"]}')),i=[...t,e];export{i as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/eg146-Ew.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"AWK\",\"fileTypes\":[\"awk\"],\"name\":\"awk\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#procedure\"},{\"include\":\"#pattern\"}],\"repository\":{\"builtin-pattern\":{\"match\":\"\\\\\\\\b(BEGINFILE|BEGIN|ENDFILE|END)\\\\\\\\b\",\"name\":\"constant.language.awk\"},\"command\":{\"patterns\":[{\"match\":\"\\\\\\\\b(?:next|print|printf)\\\\\\\\b\",\"name\":\"keyword.other.command.awk\"},{\"match\":\"\\\\\\\\b(?:close|getline|delete|system)\\\\\\\\b\",\"name\":\"keyword.other.command.nawk\"},{\"match\":\"\\\\\\\\b(?:fflush|nextfile)\\\\\\\\b\",\"name\":\"keyword.other.command.bell-awk\"}]},\"comment\":{\"match\":\"#.*\",\"name\":\"comment.line.number-sign.awk\"},\"constant\":{\"patterns\":[{\"include\":\"#numeric-constant\"},{\"include\":\"#string-constant\"}]},\"escaped-char\":{\"match\":\"\\\\\\\\\\\\\\\\(?:[\\\\\\\\\\\\\\\\abfnrtv/\\\\\"]|x[0-9A-Fa-f]{2}|[0-7]{3})\",\"name\":\"constant.character.escape.awk\"},\"expression\":{\"patterns\":[{\"include\":\"#command\"},{\"include\":\"#function\"},{\"include\":\"#constant\"},{\"include\":\"#variable\"},{\"include\":\"#regexp-in-expression\"},{\"include\":\"#operator\"},{\"include\":\"#groupings\"}]},\"function\":{\"patterns\":[{\"match\":\"\\\\\\\\b(?:exp|int|log|sqrt|index|length|split|sprintf|substr)\\\\\\\\b\",\"name\":\"support.function.awk\"},{\"match\":\"\\\\\\\\b(?:atan2|cos|rand|sin|srand|gsub|match|sub|tolower|toupper)\\\\\\\\b\",\"name\":\"support.function.nawk\"},{\"match\":\"\\\\\\\\b(?:gensub|strftime|systime)\\\\\\\\b\",\"name\":\"support.function.gawk\"}]},\"function-definition\":{\"begin\":\"\\\\\\\\b(function)\\\\\\\\s+(\\\\\\\\w+)(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.awk\"},\"2\":{\"name\":\"entity.name.function.awk\"},\"3\":{\"name\":\"punctuation.definition.parameters.begin.awk\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.awk\"}},\"patterns\":[{\"match\":\"\\\\\\\\b(\\\\\\\\w+)\\\\\\\\b\",\"name\":\"variable.parameter.function.awk\"},{\"match\":\"\\\\\\\\b(,)\\\\\\\\b\",\"name\":\"punctuation.separator.parameters.awk\"}]},\"groupings\":{\"patterns\":[{\"match\":\"\\\\\\\\(\",\"name\":\"meta.brace.round.awk\"},{\"match\":\"\\\\\\\\)\",\"name\":\"meta.brace.round.awk\"},{\"match\":\"\\\\\\\\,\",\"name\":\"punctuation.separator.parameters.awk\"}]},\"keyword\":{\"match\":\"\\\\\\\\b(?:break|continue|do|while|exit|for|if|else|return)\\\\\\\\b\",\"name\":\"keyword.control.awk\"},\"numeric-constant\":{\"match\":\"\\\\\\\\b[0-9]+(?:\\\\\\\\.[0-9]+)?(?:e[+-][0-9]+)?\\\\\\\\b\",\"name\":\"constant.numeric.awk\"},\"operator\":{\"patterns\":[{\"match\":\"(!?~|[=<>!]=|[<>])\",\"name\":\"keyword.operator.comparison.awk\"},{\"match\":\"\\\\\\\\b(in)\\\\\\\\b\",\"name\":\"keyword.operator.comparison.awk\"},{\"match\":\"([+\\\\\\\\-*/%^]=|\\\\\\\\+\\\\\\\\+|--|>>|=)\",\"name\":\"keyword.operator.assignment.awk\"},{\"match\":\"(\\\\\\\\|\\\\\\\\||&&|!)\",\"name\":\"keyword.operator.boolean.awk\"},{\"match\":\"([+\\\\\\\\-*/%^])\",\"name\":\"keyword.operator.arithmetic.awk\"},{\"match\":\"([?:])\",\"name\":\"keyword.operator.trinary.awk\"},{\"match\":\"(\\\\\\\\[|\\\\\\\\])\",\"name\":\"keyword.operator.index.awk\"}]},\"pattern\":{\"patterns\":[{\"include\":\"#regexp-as-pattern\"},{\"include\":\"#function-definition\"},{\"include\":\"#builtin-pattern\"},{\"include\":\"#expression\"}]},\"procedure\":{\"begin\":\"\\\\\\\\{\",\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#procedure\"},{\"include\":\"#keyword\"},{\"include\":\"#expression\"}]},\"regex-as-assignment\":{\"begin\":\"([^=<>!+\\\\\\\\-*/%^]=)\\\\\\\\s*(/)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.awk\"},\"2\":{\"name\":\"punctuation.definition.regex.begin.awk\"}},\"contentName\":\"string.regexp\",\"end\":\"/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.regex.end.awk\"}},\"patterns\":[{\"include\":\"source.regexp\"}]},\"regex-as-comparison\":{\"begin\":\"(!?~)\\\\\\\\s*(/)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.comparison.awk\"},\"2\":{\"name\":\"punctuation.definition.regex.begin.awk\"}},\"contentName\":\"string.regexp\",\"end\":\"/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.regex.end.awk\"}},\"patterns\":[{\"include\":\"source.regexp\"}]},\"regex-as-first-argument\":{\"begin\":\"(\\\\\\\\()\\\\\\\\s*(/)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.brace.round.awk\"},\"2\":{\"name\":\"punctuation.definition.regex.begin.awk\"}},\"contentName\":\"string.regexp\",\"end\":\"/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.regex.end.awk\"}},\"patterns\":[{\"include\":\"source.regexp\"}]},\"regex-as-nth-argument\":{\"begin\":\"(,)\\\\\\\\s*(/)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.parameters.awk\"},\"2\":{\"name\":\"punctuation.definition.regex.begin.awk\"}},\"contentName\":\"string.regexp\",\"end\":\"/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.regex.end.awk\"}},\"patterns\":[{\"include\":\"source.regexp\"}]},\"regexp-as-pattern\":{\"begin\":\"/\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.regex.begin.awk\"}},\"contentName\":\"string.regexp\",\"end\":\"/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.regex.end.awk\"}},\"patterns\":[{\"include\":\"source.regexp\"}]},\"regexp-in-expression\":{\"patterns\":[{\"include\":\"#regex-as-assignment\"},{\"include\":\"#regex-as-comparison\"},{\"include\":\"#regex-as-first-argument\"},{\"include\":\"#regex-as-nth-argument\"}]},\"string-constant\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.awk\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.awk\"}},\"name\":\"string.quoted.double.awk\",\"patterns\":[{\"include\":\"#escaped-char\"}]},\"variable\":{\"patterns\":[{\"match\":\"\\\\\\\\$[0-9]+\",\"name\":\"variable.language.awk\"},{\"match\":\"\\\\\\\\b(?:FILENAME|FS|NF|NR|OFMT|OFS|ORS|RS)\\\\\\\\b\",\"name\":\"variable.language.awk\"},{\"match\":\"\\\\\\\\b(?:ARGC|ARGV|CONVFMT|ENVIRON|FNR|RLENGTH|RSTART|SUBSEP)\\\\\\\\b\",\"name\":\"variable.language.nawk\"},{\"match\":\"\\\\\\\\b(?:ARGIND|ERRNO|FIELDWIDTHS|IGNORECASE|RT)\\\\\\\\b\",\"name\":\"variable.language.gawk\"}]}},\"scopeName\":\"source.awk\"}')),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/entry.Co9uk6v2.css",
    "content": "@import\"https://use.typekit.net/htv0whb.css\";*,::backdrop,:after,:before{--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:#3b82f680;--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: }/*! tailwindcss v3.4.18 | MIT License | https://tailwindcss.com*/*,:after,:before{border-color:rgb(var(--color-gray-200)/1);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--tw-content:\"\"}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:Inter;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:Inter;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:rgb(var(--color-gray-400)/1);opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.\\!container{margin-left:auto!important;margin-right:auto!important;padding-left:1rem!important;padding-right:1rem!important;width:100%!important}.container{margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem;width:100%}@media (min-width:640px){.\\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\\!container{max-width:1536px!important}.container{max-width:1536px}}.form-input,.form-multiselect,.form-select,.form-textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:rgb(var(--color-gray-500)/var(--tw-border-opacity,1));border-radius:0;border-width:1px;font-size:1rem;line-height:1.5rem;padding:.5rem .75rem;--tw-shadow:0 0 #0000}.form-input:focus,.form-multiselect:focus,.form-select:focus,.form-textarea:focus{outline:2px solid #0000;outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);border-color:#2563eb;box-shadow:0 0 #fff,0 0 0 1px #2563eb,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.form-input::placeholder,.form-textarea::placeholder{color:rgb(var(--color-gray-500)/1);color:rgb(var(--color-gray-500)/var(--tw-text-opacity,1));opacity:1}.form-input::-webkit-datetime-edit-fields-wrapper{padding:0}.form-input::-webkit-date-and-time-value{min-height:1.5em;text-align:inherit}.form-input::-webkit-datetime-edit{display:inline-flex}.form-input::-webkit-datetime-edit,.form-input::-webkit-datetime-edit-day-field,.form-input::-webkit-datetime-edit-hour-field,.form-input::-webkit-datetime-edit-meridiem-field,.form-input::-webkit-datetime-edit-millisecond-field,.form-input::-webkit-datetime-edit-minute-field,.form-input::-webkit-datetime-edit-month-field,.form-input::-webkit-datetime-edit-second-field,.form-input::-webkit-datetime-edit-year-field{padding-bottom:0;padding-top:0}.form-select{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E\");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}.form-select:where([size]:not([size=\"1\"])){background-image:none;background-position:0 0;background-repeat:unset;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:unset;print-color-adjust:unset}.form-checkbox,.form-radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;background-origin:border-box;border-color:rgb(var(--color-gray-500)/var(--tw-border-opacity,1));border-width:1px;color:#2563eb;display:inline-block;flex-shrink:0;height:1rem;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;-webkit-user-select:none;user-select:none;vertical-align:middle;width:1rem;--tw-shadow:0 0 #0000}.form-checkbox{border-radius:0}.form-radio{border-radius:100%}.form-checkbox:focus,.form-radio:focus{outline:2px solid #0000;outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:0 0 #fff,0 0 0 4px #2563eb,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.form-checkbox:checked,.form-radio:checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}.form-checkbox:checked{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Cpath d='M12.207 4.793a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414 0l-2-2a1 1 0 0 1 1.414-1.414L6.5 9.086l4.293-4.293a1 1 0 0 1 1.414 0'/%3E%3C/svg%3E\")}@media (forced-colors:active){.form-checkbox:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}.form-radio:checked{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E\")}@media (forced-colors:active){.form-radio:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}.form-checkbox:checked:focus,.form-checkbox:checked:hover,.form-checkbox:indeterminate,.form-radio:checked:focus,.form-radio:checked:hover{background-color:currentColor;border-color:#0000}.form-checkbox:indeterminate{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3E%3C/svg%3E\");background-position:50%;background-repeat:no-repeat;background-size:100% 100%}@media (forced-colors:active){.form-checkbox:indeterminate{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}.form-checkbox:indeterminate:focus,.form-checkbox:indeterminate:hover{background-color:currentColor;border-color:#0000}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em;margin-top:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-bottom:1.2em;margin-top:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-bottom:1.25em;margin-top:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=\"1\"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-bottom:1.25em;margin-top:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-bottom:3em;margin-top:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){border-inline-start-color:var(--tw-prose-quote-borders);border-inline-start-width:.25rem;color:var(--tw-prose-quotes);font-style:italic;font-weight:500;margin-bottom:1.6em;margin-top:1.6em;padding-inline-start:1em;quotes:\"“\"\"”\"\"‘\"\"’\"}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-size:2.25em;font-weight:800;line-height:1.1111111;margin-bottom:.8888889em;margin-top:0}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-size:1.5em;font-weight:700;line-height:1.3333333;margin-bottom:1em;margin-top:2em}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-size:1.25em;font-weight:600;line-height:1.6;margin-bottom:.6em;margin-top:1.6em}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;line-height:1.5;margin-bottom:.5em;margin-top:1.5em}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-bottom:2em;margin-top:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.3125rem;box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);color:var(--tw-prose-kbd);font-family:inherit;font-size:.875em;font-weight:500;padding-inline-end:.375em;padding-bottom:.1875em;padding-top:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:\"`\"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:\"`\"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:var(--tw-prose-pre-bg);border-radius:.375rem;color:var(--tw-prose-pre-code);font-size:.875em;font-weight:400;line-height:1.7142857;margin-bottom:1.7142857em;margin-top:1.7142857em;overflow-x:auto;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-top:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:initial;border-radius:0;border-width:0;color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;padding:0}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em;line-height:1.7142857;margin-bottom:2em;margin-top:2em;table-layout:auto;width:100%}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-color:var(--tw-prose-th-borders);border-bottom-width:1px}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em;vertical-align:bottom}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-color:var(--tw-prose-td-borders);border-bottom-width:1px}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:initial}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-color:var(--tw-prose-th-borders);border-top-width:1px}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:#1118271a;--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.5em;margin-top:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.75em;margin-top:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.75em;margin-top:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em;margin-top:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-top:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.i-heroicons-arrow-down{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M19.5 13.5 12 21m0 0-7.5-7.5M12 21V3'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M19.5 13.5 12 21m0 0-7.5-7.5M12 21V3'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M19.5 13.5 12 21m0 0-7.5-7.5M12 21V3'/%3E%3C/svg%3E\")}.i-heroicons-arrow-down,.i-heroicons-arrow-down-tray{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-arrow-down-tray{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3'/%3E%3C/svg%3E\")}.i-heroicons-arrow-left{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18'/%3E%3C/svg%3E\")}.i-heroicons-arrow-left,.i-heroicons-arrow-path{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-arrow-path{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99'/%3E%3C/svg%3E\")}.i-heroicons-arrow-path-20-solid{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M15.312 11.424a5.5 5.5 0 0 1-9.201 2.466l-.312-.311h2.433a.75.75 0 0 0 0-1.5H3.989a.75.75 0 0 0-.75.75v4.242a.75.75 0 0 0 1.5 0v-2.43l.31.31a7 7 0 0 0 11.712-3.138.75.75 0 0 0-1.449-.39m1.23-3.723a.75.75 0 0 0 .219-.53V2.929a.75.75 0 0 0-1.5 0V5.36l-.31-.31A7 7 0 0 0 3.239 8.188a.75.75 0 1 0 1.448.389A5.5 5.5 0 0 1 13.89 6.11l.311.31h-2.432a.75.75 0 0 0 0 1.5h4.243a.75.75 0 0 0 .53-.219' clip-rule='evenodd'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M15.312 11.424a5.5 5.5 0 0 1-9.201 2.466l-.312-.311h2.433a.75.75 0 0 0 0-1.5H3.989a.75.75 0 0 0-.75.75v4.242a.75.75 0 0 0 1.5 0v-2.43l.31.31a7 7 0 0 0 11.712-3.138.75.75 0 0 0-1.449-.39m1.23-3.723a.75.75 0 0 0 .219-.53V2.929a.75.75 0 0 0-1.5 0V5.36l-.31-.31A7 7 0 0 0 3.239 8.188a.75.75 0 1 0 1.448.389A5.5 5.5 0 0 1 13.89 6.11l.311.31h-2.432a.75.75 0 0 0 0 1.5h4.243a.75.75 0 0 0 .53-.219' clip-rule='evenodd'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M15.312 11.424a5.5 5.5 0 0 1-9.201 2.466l-.312-.311h2.433a.75.75 0 0 0 0-1.5H3.989a.75.75 0 0 0-.75.75v4.242a.75.75 0 0 0 1.5 0v-2.43l.31.31a7 7 0 0 0 11.712-3.138.75.75 0 0 0-1.449-.39m1.23-3.723a.75.75 0 0 0 .219-.53V2.929a.75.75 0 0 0-1.5 0V5.36l-.31-.31A7 7 0 0 0 3.239 8.188a.75.75 0 1 0 1.448.389A5.5 5.5 0 0 1 13.89 6.11l.311.31h-2.432a.75.75 0 0 0 0 1.5h4.243a.75.75 0 0 0 .53-.219' clip-rule='evenodd'/%3E%3C/svg%3E\")}.i-heroicons-arrow-path-20-solid,.i-heroicons-arrow-right{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-arrow-right{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3'/%3E%3C/svg%3E\")}.i-heroicons-arrow-top-right-on-square{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M13.5 6H5.25A2.25 2.25 0 0 0 3 8.25v10.5A2.25 2.25 0 0 0 5.25 21h10.5A2.25 2.25 0 0 0 18 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M13.5 6H5.25A2.25 2.25 0 0 0 3 8.25v10.5A2.25 2.25 0 0 0 5.25 21h10.5A2.25 2.25 0 0 0 18 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M13.5 6H5.25A2.25 2.25 0 0 0 3 8.25v10.5A2.25 2.25 0 0 0 5.25 21h10.5A2.25 2.25 0 0 0 18 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25'/%3E%3C/svg%3E\")}.i-heroicons-arrow-top-right-on-square,.i-heroicons-arrow-trending-up{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-arrow-trending-up{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M2.25 18 9 11.25l4.306 4.306a11.95 11.95 0 0 1 5.814-5.518l2.74-1.22m0 0-5.94-2.281m5.94 2.28-2.28 5.942'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M2.25 18 9 11.25l4.306 4.306a11.95 11.95 0 0 1 5.814-5.518l2.74-1.22m0 0-5.94-2.281m5.94 2.28-2.28 5.942'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M2.25 18 9 11.25l4.306 4.306a11.95 11.95 0 0 1 5.814-5.518l2.74-1.22m0 0-5.94-2.281m5.94 2.28-2.28 5.942'/%3E%3C/svg%3E\")}.i-heroicons-arrow-up{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M4.5 10.5 12 3m0 0 7.5 7.5M12 3v18'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M4.5 10.5 12 3m0 0 7.5 7.5M12 3v18'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M4.5 10.5 12 3m0 0 7.5 7.5M12 3v18'/%3E%3C/svg%3E\")}.i-heroicons-arrow-up,.i-heroicons-arrow-up-tray{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-arrow-up-tray{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5m-13.5-9L12 3m0 0 4.5 4.5M12 3v13.5'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5m-13.5-9L12 3m0 0 4.5 4.5M12 3v13.5'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5m-13.5-9L12 3m0 0 4.5 4.5M12 3v13.5'/%3E%3C/svg%3E\")}.i-heroicons-arrow-uturn-left{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M9 15 3 9m0 0 6-6M3 9h12a6 6 0 0 1 0 12h-3'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M9 15 3 9m0 0 6-6M3 9h12a6 6 0 0 1 0 12h-3'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M9 15 3 9m0 0 6-6M3 9h12a6 6 0 0 1 0 12h-3'/%3E%3C/svg%3E\")}.i-heroicons-arrow-uturn-left,.i-heroicons-arrows-right-left{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-arrows-right-left{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5'/%3E%3C/svg%3E\")}.i-heroicons-arrows-up-down-20-solid{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M2.24 6.8a.75.75 0 0 0 1.06-.04l1.95-2.1v8.59a.75.75 0 0 0 1.5 0V4.66l1.95 2.1a.75.75 0 1 0 1.1-1.02l-3.25-3.5a.75.75 0 0 0-1.1 0L2.2 5.74a.75.75 0 0 0 .04 1.06m8 6.4a.75.75 0 0 0-.04 1.06l3.25 3.5a.75.75 0 0 0 1.1 0l3.25-3.5a.75.75 0 1 0-1.1-1.02l-1.95 2.1V6.75a.75.75 0 0 0-1.5 0v8.59l-1.95-2.1a.75.75 0 0 0-1.06-.04' clip-rule='evenodd'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M2.24 6.8a.75.75 0 0 0 1.06-.04l1.95-2.1v8.59a.75.75 0 0 0 1.5 0V4.66l1.95 2.1a.75.75 0 1 0 1.1-1.02l-3.25-3.5a.75.75 0 0 0-1.1 0L2.2 5.74a.75.75 0 0 0 .04 1.06m8 6.4a.75.75 0 0 0-.04 1.06l3.25 3.5a.75.75 0 0 0 1.1 0l3.25-3.5a.75.75 0 1 0-1.1-1.02l-1.95 2.1V6.75a.75.75 0 0 0-1.5 0v8.59l-1.95-2.1a.75.75 0 0 0-1.06-.04' clip-rule='evenodd'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M2.24 6.8a.75.75 0 0 0 1.06-.04l1.95-2.1v8.59a.75.75 0 0 0 1.5 0V4.66l1.95 2.1a.75.75 0 1 0 1.1-1.02l-3.25-3.5a.75.75 0 0 0-1.1 0L2.2 5.74a.75.75 0 0 0 .04 1.06m8 6.4a.75.75 0 0 0-.04 1.06l3.25 3.5a.75.75 0 0 0 1.1 0l3.25-3.5a.75.75 0 1 0-1.1-1.02l-1.95 2.1V6.75a.75.75 0 0 0-1.5 0v8.59l-1.95-2.1a.75.75 0 0 0-1.06-.04' clip-rule='evenodd'/%3E%3C/svg%3E\")}.i-heroicons-arrows-up-down-20-solid,.i-heroicons-banknotes{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-banknotes{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M2.25 18.75a60 60 0 0 1 15.797 2.101c.727.198 1.453-.342 1.453-1.096V18.75M3.75 4.5v.75A.75.75 0 0 1 3 6h-.75m0 0v-.375c0-.621.504-1.125 1.125-1.125H20.25M2.25 6v9m18-10.5v.75c0 .414.336.75.75.75h.75m-1.5-1.5h.375c.621 0 1.125.504 1.125 1.125v9.75c0 .621-.504 1.125-1.125 1.125h-.375m1.5-1.5H21a.75.75 0 0 0-.75.75v.75m0 0H3.75m0 0h-.375a1.125 1.125 0 0 1-1.125-1.125V15m1.5 1.5v-.75A.75.75 0 0 0 3 15h-.75M15 10.5a3 3 0 1 1-6 0 3 3 0 0 1 6 0m3 0h.008v.008H18zm-12 0h.008v.008H6z'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M2.25 18.75a60 60 0 0 1 15.797 2.101c.727.198 1.453-.342 1.453-1.096V18.75M3.75 4.5v.75A.75.75 0 0 1 3 6h-.75m0 0v-.375c0-.621.504-1.125 1.125-1.125H20.25M2.25 6v9m18-10.5v.75c0 .414.336.75.75.75h.75m-1.5-1.5h.375c.621 0 1.125.504 1.125 1.125v9.75c0 .621-.504 1.125-1.125 1.125h-.375m1.5-1.5H21a.75.75 0 0 0-.75.75v.75m0 0H3.75m0 0h-.375a1.125 1.125 0 0 1-1.125-1.125V15m1.5 1.5v-.75A.75.75 0 0 0 3 15h-.75M15 10.5a3 3 0 1 1-6 0 3 3 0 0 1 6 0m3 0h.008v.008H18zm-12 0h.008v.008H6z'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M2.25 18.75a60 60 0 0 1 15.797 2.101c.727.198 1.453-.342 1.453-1.096V18.75M3.75 4.5v.75A.75.75 0 0 1 3 6h-.75m0 0v-.375c0-.621.504-1.125 1.125-1.125H20.25M2.25 6v9m18-10.5v.75c0 .414.336.75.75.75h.75m-1.5-1.5h.375c.621 0 1.125.504 1.125 1.125v9.75c0 .621-.504 1.125-1.125 1.125h-.375m1.5-1.5H21a.75.75 0 0 0-.75.75v.75m0 0H3.75m0 0h-.375a1.125 1.125 0 0 1-1.125-1.125V15m1.5 1.5v-.75A.75.75 0 0 0 3 15h-.75M15 10.5a3 3 0 1 1-6 0 3 3 0 0 1 6 0m3 0h.008v.008H18zm-12 0h.008v.008H6z'/%3E%3C/svg%3E\")}.i-heroicons-bars-arrow-down-20-solid{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M2 3.75A.75.75 0 0 1 2.75 3h11.5a.75.75 0 0 1 0 1.5H2.75A.75.75 0 0 1 2 3.75M2 7.5a.75.75 0 0 1 .75-.75h7.508a.75.75 0 0 1 0 1.5H2.75A.75.75 0 0 1 2 7.5M14 7a.75.75 0 0 1 .75.75v6.59l1.95-2.1a.75.75 0 1 1 1.1 1.02l-3.25 3.5a.75.75 0 0 1-1.1 0l-3.25-3.5a.75.75 0 1 1 1.1-1.02l1.95 2.1V7.75A.75.75 0 0 1 14 7M2 11.25a.75.75 0 0 1 .75-.75h4.562a.75.75 0 0 1 0 1.5H2.75a.75.75 0 0 1-.75-.75' clip-rule='evenodd'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M2 3.75A.75.75 0 0 1 2.75 3h11.5a.75.75 0 0 1 0 1.5H2.75A.75.75 0 0 1 2 3.75M2 7.5a.75.75 0 0 1 .75-.75h7.508a.75.75 0 0 1 0 1.5H2.75A.75.75 0 0 1 2 7.5M14 7a.75.75 0 0 1 .75.75v6.59l1.95-2.1a.75.75 0 1 1 1.1 1.02l-3.25 3.5a.75.75 0 0 1-1.1 0l-3.25-3.5a.75.75 0 1 1 1.1-1.02l1.95 2.1V7.75A.75.75 0 0 1 14 7M2 11.25a.75.75 0 0 1 .75-.75h4.562a.75.75 0 0 1 0 1.5H2.75a.75.75 0 0 1-.75-.75' clip-rule='evenodd'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M2 3.75A.75.75 0 0 1 2.75 3h11.5a.75.75 0 0 1 0 1.5H2.75A.75.75 0 0 1 2 3.75M2 7.5a.75.75 0 0 1 .75-.75h7.508a.75.75 0 0 1 0 1.5H2.75A.75.75 0 0 1 2 7.5M14 7a.75.75 0 0 1 .75.75v6.59l1.95-2.1a.75.75 0 1 1 1.1 1.02l-3.25 3.5a.75.75 0 0 1-1.1 0l-3.25-3.5a.75.75 0 1 1 1.1-1.02l1.95 2.1V7.75A.75.75 0 0 1 14 7M2 11.25a.75.75 0 0 1 .75-.75h4.562a.75.75 0 0 1 0 1.5H2.75a.75.75 0 0 1-.75-.75' clip-rule='evenodd'/%3E%3C/svg%3E\")}.i-heroicons-bars-arrow-down-20-solid,.i-heroicons-bars-arrow-up-20-solid{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-bars-arrow-up-20-solid{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M2 3.75A.75.75 0 0 1 2.75 3h11.5a.75.75 0 0 1 0 1.5H2.75A.75.75 0 0 1 2 3.75M2 7.5a.75.75 0 0 1 .75-.75h6.365a.75.75 0 0 1 0 1.5H2.75A.75.75 0 0 1 2 7.5M14 7a.75.75 0 0 1 .55.24l3.25 3.5a.75.75 0 1 1-1.1 1.02l-1.95-2.1v6.59a.75.75 0 0 1-1.5 0V9.66l-1.95 2.1a.75.75 0 1 1-1.1-1.02l3.25-3.5A.75.75 0 0 1 14 7M2 11.25a.75.75 0 0 1 .75-.75H7A.75.75 0 0 1 7 12H2.75a.75.75 0 0 1-.75-.75' clip-rule='evenodd'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M2 3.75A.75.75 0 0 1 2.75 3h11.5a.75.75 0 0 1 0 1.5H2.75A.75.75 0 0 1 2 3.75M2 7.5a.75.75 0 0 1 .75-.75h6.365a.75.75 0 0 1 0 1.5H2.75A.75.75 0 0 1 2 7.5M14 7a.75.75 0 0 1 .55.24l3.25 3.5a.75.75 0 1 1-1.1 1.02l-1.95-2.1v6.59a.75.75 0 0 1-1.5 0V9.66l-1.95 2.1a.75.75 0 1 1-1.1-1.02l3.25-3.5A.75.75 0 0 1 14 7M2 11.25a.75.75 0 0 1 .75-.75H7A.75.75 0 0 1 7 12H2.75a.75.75 0 0 1-.75-.75' clip-rule='evenodd'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M2 3.75A.75.75 0 0 1 2.75 3h11.5a.75.75 0 0 1 0 1.5H2.75A.75.75 0 0 1 2 3.75M2 7.5a.75.75 0 0 1 .75-.75h6.365a.75.75 0 0 1 0 1.5H2.75A.75.75 0 0 1 2 7.5M14 7a.75.75 0 0 1 .55.24l3.25 3.5a.75.75 0 1 1-1.1 1.02l-1.95-2.1v6.59a.75.75 0 0 1-1.5 0V9.66l-1.95 2.1a.75.75 0 1 1-1.1-1.02l3.25-3.5A.75.75 0 0 1 14 7M2 11.25a.75.75 0 0 1 .75-.75H7A.75.75 0 0 1 7 12H2.75a.75.75 0 0 1-.75-.75' clip-rule='evenodd'/%3E%3C/svg%3E\")}.i-heroicons-bolt{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m3.75 13.5 10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5z'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m3.75 13.5 10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5z'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m3.75 13.5 10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5z'/%3E%3C/svg%3E\")}.i-heroicons-bolt,.i-heroicons-chart-bar{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-chart-bar{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875zm6.75-4.5c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125zm6.75-4.5c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125z'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875zm6.75-4.5c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125zm6.75-4.5c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125z'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875zm6.75-4.5c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125zm6.75-4.5c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125z'/%3E%3C/svg%3E\")}.i-heroicons-check{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m4.5 12.75 6 6 9-13.5'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m4.5 12.75 6 6 9-13.5'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m4.5 12.75 6 6 9-13.5'/%3E%3C/svg%3E\")}.i-heroicons-check,.i-heroicons-check-20-solid{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-check-20-solid{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M16.705 4.153a.75.75 0 0 1 .142 1.052l-8 10.5a.75.75 0 0 1-1.127.075l-4.5-4.5a.75.75 0 0 1 1.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 0 1 1.05-.143' clip-rule='evenodd'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M16.705 4.153a.75.75 0 0 1 .142 1.052l-8 10.5a.75.75 0 0 1-1.127.075l-4.5-4.5a.75.75 0 0 1 1.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 0 1 1.05-.143' clip-rule='evenodd'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M16.705 4.153a.75.75 0 0 1 .142 1.052l-8 10.5a.75.75 0 0 1-1.127.075l-4.5-4.5a.75.75 0 0 1 1.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 0 1 1.05-.143' clip-rule='evenodd'/%3E%3C/svg%3E\")}.i-heroicons-check-circle{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0'/%3E%3C/svg%3E\")}.i-heroicons-check-circle,.i-heroicons-chevron-double-left-20-solid{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-chevron-double-left-20-solid{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M4.72 9.47a.75.75 0 0 0 0 1.06l4.25 4.25a.75.75 0 1 0 1.06-1.06L6.31 10l3.72-3.72a.75.75 0 1 0-1.06-1.06zm9.25-4.25L9.72 9.47a.75.75 0 0 0 0 1.06l4.25 4.25a.75.75 0 1 0 1.06-1.06L11.31 10l3.72-3.72a.75.75 0 0 0-1.06-1.06' clip-rule='evenodd'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M4.72 9.47a.75.75 0 0 0 0 1.06l4.25 4.25a.75.75 0 1 0 1.06-1.06L6.31 10l3.72-3.72a.75.75 0 1 0-1.06-1.06zm9.25-4.25L9.72 9.47a.75.75 0 0 0 0 1.06l4.25 4.25a.75.75 0 1 0 1.06-1.06L11.31 10l3.72-3.72a.75.75 0 0 0-1.06-1.06' clip-rule='evenodd'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M4.72 9.47a.75.75 0 0 0 0 1.06l4.25 4.25a.75.75 0 1 0 1.06-1.06L6.31 10l3.72-3.72a.75.75 0 1 0-1.06-1.06zm9.25-4.25L9.72 9.47a.75.75 0 0 0 0 1.06l4.25 4.25a.75.75 0 1 0 1.06-1.06L11.31 10l3.72-3.72a.75.75 0 0 0-1.06-1.06' clip-rule='evenodd'/%3E%3C/svg%3E\")}.i-heroicons-chevron-double-right-20-solid{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M15.28 9.47a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 1 1-1.06-1.06L13.69 10 9.97 6.28a.75.75 0 0 1 1.06-1.06zM6.03 5.22l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 0 1-1.06-1.06L8.69 10 4.97 6.28a.75.75 0 0 1 1.06-1.06' clip-rule='evenodd'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M15.28 9.47a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 1 1-1.06-1.06L13.69 10 9.97 6.28a.75.75 0 0 1 1.06-1.06zM6.03 5.22l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 0 1-1.06-1.06L8.69 10 4.97 6.28a.75.75 0 0 1 1.06-1.06' clip-rule='evenodd'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M15.28 9.47a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 1 1-1.06-1.06L13.69 10 9.97 6.28a.75.75 0 0 1 1.06-1.06zM6.03 5.22l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 0 1-1.06-1.06L8.69 10 4.97 6.28a.75.75 0 0 1 1.06-1.06' clip-rule='evenodd'/%3E%3C/svg%3E\")}.i-heroicons-chevron-double-right-20-solid,.i-heroicons-chevron-down-20-solid{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-chevron-down-20-solid{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06' clip-rule='evenodd'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06' clip-rule='evenodd'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06' clip-rule='evenodd'/%3E%3C/svg%3E\")}.i-heroicons-chevron-left-20-solid{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M11.78 5.22a.75.75 0 0 1 0 1.06L8.06 10l3.72 3.72a.75.75 0 1 1-1.06 1.06l-4.25-4.25a.75.75 0 0 1 0-1.06l4.25-4.25a.75.75 0 0 1 1.06 0' clip-rule='evenodd'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M11.78 5.22a.75.75 0 0 1 0 1.06L8.06 10l3.72 3.72a.75.75 0 1 1-1.06 1.06l-4.25-4.25a.75.75 0 0 1 0-1.06l4.25-4.25a.75.75 0 0 1 1.06 0' clip-rule='evenodd'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M11.78 5.22a.75.75 0 0 1 0 1.06L8.06 10l3.72 3.72a.75.75 0 1 1-1.06 1.06l-4.25-4.25a.75.75 0 0 1 0-1.06l4.25-4.25a.75.75 0 0 1 1.06 0' clip-rule='evenodd'/%3E%3C/svg%3E\")}.i-heroicons-chevron-left-20-solid,.i-heroicons-chevron-right-20-solid{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-chevron-right-20-solid{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M8.22 5.22a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 0 1-1.06-1.06L11.94 10 8.22 6.28a.75.75 0 0 1 0-1.06' clip-rule='evenodd'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M8.22 5.22a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 0 1-1.06-1.06L11.94 10 8.22 6.28a.75.75 0 0 1 0-1.06' clip-rule='evenodd'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M8.22 5.22a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 0 1-1.06-1.06L11.94 10 8.22 6.28a.75.75 0 0 1 0-1.06' clip-rule='evenodd'/%3E%3C/svg%3E\")}.i-heroicons-circle-stack-20-solid{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M10 1c3.866 0 7 1.79 7 4s-3.134 4-7 4-7-1.79-7-4 3.134-4 7-4m5.694 8.13c.464-.264.91-.583 1.306-.952V10c0 2.21-3.134 4-7 4s-7-1.79-7-4V8.178a7 7 0 0 0 1.306.953C5.838 10.006 7.854 10.5 10 10.5s4.162-.494 5.694-1.37M3 13.179V15c0 2.21 3.134 4 7 4s7-1.79 7-4v-1.822a7 7 0 0 1-1.306.953C14.162 15.006 12.146 15.5 10 15.5s-4.162-.494-5.694-1.37A7 7 0 0 1 3 13.179' clip-rule='evenodd'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M10 1c3.866 0 7 1.79 7 4s-3.134 4-7 4-7-1.79-7-4 3.134-4 7-4m5.694 8.13c.464-.264.91-.583 1.306-.952V10c0 2.21-3.134 4-7 4s-7-1.79-7-4V8.178a7 7 0 0 0 1.306.953C5.838 10.006 7.854 10.5 10 10.5s4.162-.494 5.694-1.37M3 13.179V15c0 2.21 3.134 4 7 4s7-1.79 7-4v-1.822a7 7 0 0 1-1.306.953C14.162 15.006 12.146 15.5 10 15.5s-4.162-.494-5.694-1.37A7 7 0 0 1 3 13.179' clip-rule='evenodd'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M10 1c3.866 0 7 1.79 7 4s-3.134 4-7 4-7-1.79-7-4 3.134-4 7-4m5.694 8.13c.464-.264.91-.583 1.306-.952V10c0 2.21-3.134 4-7 4s-7-1.79-7-4V8.178a7 7 0 0 0 1.306.953C5.838 10.006 7.854 10.5 10 10.5s4.162-.494 5.694-1.37M3 13.179V15c0 2.21 3.134 4 7 4s7-1.79 7-4v-1.822a7 7 0 0 1-1.306.953C14.162 15.006 12.146 15.5 10 15.5s-4.162-.494-5.694-1.37A7 7 0 0 1 3 13.179' clip-rule='evenodd'/%3E%3C/svg%3E\")}.i-heroicons-circle-stack-20-solid,.i-heroicons-clipboard{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-clipboard{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' 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 0q.083.292.084.612v0a.75.75 0 0 1-.75.75H9a.75.75 0 0 1-.75-.75v0q.002-.32.084-.612m7.332 0q.969.073 1.927.184c1.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 48 0 0 1 1.927-.184'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' 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 0q.083.292.084.612v0a.75.75 0 0 1-.75.75H9a.75.75 0 0 1-.75-.75v0q.002-.32.084-.612m7.332 0q.969.073 1.927.184c1.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 48 0 0 1 1.927-.184'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' 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 0q.083.292.084.612v0a.75.75 0 0 1-.75.75H9a.75.75 0 0 1-.75-.75v0q.002-.32.084-.612m7.332 0q.969.073 1.927.184c1.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 48 0 0 1 1.927-.184'/%3E%3C/svg%3E\")}.i-heroicons-clipboard-document{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M8.25 7.5V6.108c0-1.135.845-2.098 1.976-2.192q.56-.045 1.124-.08M15.75 18H18a2.25 2.25 0 0 0 2.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48 48 0 0 0-1.123-.08M15.75 18.75v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5A3.375 3.375 0 0 0 6.375 7.5H5.25m11.9-3.664A2.25 2.25 0 0 0 15 2.25h-1.5a2.25 2.25 0 0 0-2.15 1.586m5.8 0q.099.316.1.664v.75h-6V4.5q.001-.348.1-.664M6.75 7.5H4.875c-.621 0-1.125.504-1.125 1.125v12c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V16.5a9 9 0 0 0-9-9'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M8.25 7.5V6.108c0-1.135.845-2.098 1.976-2.192q.56-.045 1.124-.08M15.75 18H18a2.25 2.25 0 0 0 2.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48 48 0 0 0-1.123-.08M15.75 18.75v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5A3.375 3.375 0 0 0 6.375 7.5H5.25m11.9-3.664A2.25 2.25 0 0 0 15 2.25h-1.5a2.25 2.25 0 0 0-2.15 1.586m5.8 0q.099.316.1.664v.75h-6V4.5q.001-.348.1-.664M6.75 7.5H4.875c-.621 0-1.125.504-1.125 1.125v12c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V16.5a9 9 0 0 0-9-9'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M8.25 7.5V6.108c0-1.135.845-2.098 1.976-2.192q.56-.045 1.124-.08M15.75 18H18a2.25 2.25 0 0 0 2.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48 48 0 0 0-1.123-.08M15.75 18.75v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5A3.375 3.375 0 0 0 6.375 7.5H5.25m11.9-3.664A2.25 2.25 0 0 0 15 2.25h-1.5a2.25 2.25 0 0 0-2.15 1.586m5.8 0q.099.316.1.664v.75h-6V4.5q.001-.348.1-.664M6.75 7.5H4.875c-.621 0-1.125.504-1.125 1.125v12c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V16.5a9 9 0 0 0-9-9'/%3E%3C/svg%3E\")}.i-heroicons-clipboard-document,.i-heroicons-clipboard-document-list{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-clipboard-document-list{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M9 12h3.75M9 15h3.75M9 18h3.75m3 .75H18a2.25 2.25 0 0 0 2.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48 48 0 0 0-1.123-.08m-5.801 0q-.099.316-.1.664c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.3 2.3 0 0 0-.1-.664m-5.8 0A2.25 2.25 0 0 1 13.5 2.25H15a2.25 2.25 0 0 1 2.15 1.586m-5.8 0q-.563.035-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m0 0H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V9.375c0-.621-.504-1.125-1.125-1.125zM6.75 12h.008v.008H6.75zm0 3h.008v.008H6.75zm0 3h.008v.008H6.75z'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M9 12h3.75M9 15h3.75M9 18h3.75m3 .75H18a2.25 2.25 0 0 0 2.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48 48 0 0 0-1.123-.08m-5.801 0q-.099.316-.1.664c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.3 2.3 0 0 0-.1-.664m-5.8 0A2.25 2.25 0 0 1 13.5 2.25H15a2.25 2.25 0 0 1 2.15 1.586m-5.8 0q-.563.035-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m0 0H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V9.375c0-.621-.504-1.125-1.125-1.125zM6.75 12h.008v.008H6.75zm0 3h.008v.008H6.75zm0 3h.008v.008H6.75z'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M9 12h3.75M9 15h3.75M9 18h3.75m3 .75H18a2.25 2.25 0 0 0 2.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48 48 0 0 0-1.123-.08m-5.801 0q-.099.316-.1.664c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.3 2.3 0 0 0-.1-.664m-5.8 0A2.25 2.25 0 0 1 13.5 2.25H15a2.25 2.25 0 0 1 2.15 1.586m-5.8 0q-.563.035-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m0 0H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V9.375c0-.621-.504-1.125-1.125-1.125zM6.75 12h.008v.008H6.75zm0 3h.008v.008H6.75zm0 3h.008v.008H6.75z'/%3E%3C/svg%3E\")}.i-heroicons-clock{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0'/%3E%3C/svg%3E\")}.i-heroicons-clock,.i-heroicons-code-bracket{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-code-bracket{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' 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'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' 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'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' 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'/%3E%3C/svg%3E\")}.i-heroicons-currency-dollar{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12 6v12m-3-2.818.879.659c1.171.879 3.07.879 4.242 0s1.172-2.303 0-3.182C13.536 12.219 12.768 12 12 12c-.725 0-1.45-.22-2.003-.659-1.106-.879-1.106-2.303 0-3.182s2.9-.879 4.006 0l.415.33M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12 6v12m-3-2.818.879.659c1.171.879 3.07.879 4.242 0s1.172-2.303 0-3.182C13.536 12.219 12.768 12 12 12c-.725 0-1.45-.22-2.003-.659-1.106-.879-1.106-2.303 0-3.182s2.9-.879 4.006 0l.415.33M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12 6v12m-3-2.818.879.659c1.171.879 3.07.879 4.242 0s1.172-2.303 0-3.182C13.536 12.219 12.768 12 12 12c-.725 0-1.45-.22-2.003-.659-1.106-.879-1.106-2.303 0-3.182s2.9-.879 4.006 0l.415.33M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0'/%3E%3C/svg%3E\")}.i-heroicons-currency-dollar,.i-heroicons-document-arrow-down{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-document-arrow-down{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m.75 12 3 3m0 0 3-3m-3 3v-6m-1.5-9H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m.75 12 3 3m0 0 3-3m-3 3v-6m-1.5-9H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m.75 12 3 3m0 0 3-3m-3 3v-6m-1.5-9H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9'/%3E%3C/svg%3E\")}.i-heroicons-document-arrow-up{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m6.75 12-3-3m0 0-3 3m3-3v6m-1.5-15H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m6.75 12-3-3m0 0-3 3m3-3v6m-1.5-15H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m6.75 12-3-3m0 0-3 3m3-3v6m-1.5-15H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9'/%3E%3C/svg%3E\")}.i-heroicons-document-arrow-up,.i-heroicons-document-duplicate{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-document-duplicate{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9 9 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9 9 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9 9 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9 9 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9 9 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9 9 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75'/%3E%3C/svg%3E\")}.i-heroicons-document-text{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9'/%3E%3C/svg%3E\")}.i-heroicons-document-text,.i-heroicons-exclamation-triangle{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-exclamation-triangle{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' 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 0zM12 15.75h.007v.008H12z'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' 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 0zM12 15.75h.007v.008H12z'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' 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 0zM12 15.75h.007v.008H12z'/%3E%3C/svg%3E\")}.i-heroicons-eye{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'%3E%3Cpath d='M2.036 12.322a1 1 0 0 1 0-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178'/%3E%3Cpath d='M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0'/%3E%3C/g%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'%3E%3Cpath d='M2.036 12.322a1 1 0 0 1 0-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178'/%3E%3Cpath d='M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0'/%3E%3C/g%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'%3E%3Cpath d='M2.036 12.322a1 1 0 0 1 0-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178'/%3E%3Cpath d='M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0'/%3E%3C/g%3E%3C/svg%3E\")}.i-heroicons-eye,.i-heroicons-flag{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-flag{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M3 3v1.5M3 21v-6m0 0 2.77-.693a9 9 0 0 1 6.208.682l.108.054a9 9 0 0 0 6.086.71l3.114-.732a48.5 48.5 0 0 1-.005-10.499l-3.11.732a9 9 0 0 1-6.085-.711l-.108-.054a9 9 0 0 0-6.208-.682L3 4.5M3 15V4.5'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M3 3v1.5M3 21v-6m0 0 2.77-.693a9 9 0 0 1 6.208.682l.108.054a9 9 0 0 0 6.086.71l3.114-.732a48.5 48.5 0 0 1-.005-10.499l-3.11.732a9 9 0 0 1-6.085-.711l-.108-.054a9 9 0 0 0-6.208-.682L3 4.5M3 15V4.5'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M3 3v1.5M3 21v-6m0 0 2.77-.693a9 9 0 0 1 6.208.682l.108.054a9 9 0 0 0 6.086.71l3.114-.732a48.5 48.5 0 0 1-.005-10.499l-3.11.732a9 9 0 0 1-6.085-.711l-.108-.054a9 9 0 0 0-6.208-.682L3 4.5M3 15V4.5'/%3E%3C/svg%3E\")}.i-heroicons-information-circle{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' 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 0m-9-3.75h.008v.008H12z'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' 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 0m-9-3.75h.008v.008H12z'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' 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 0m-9-3.75h.008v.008H12z'/%3E%3C/svg%3E\")}.i-heroicons-information-circle,.i-heroicons-list-bullet{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-list-bullet{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0M3.75 12h.007v.008H3.75zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0m-.375 5.25h.007v.008H3.75zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0M3.75 12h.007v.008H3.75zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0m-.375 5.25h.007v.008H3.75zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0M3.75 12h.007v.008H3.75zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0m-.375 5.25h.007v.008H3.75zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0'/%3E%3C/svg%3E\")}.i-heroicons-lock-closed{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25'/%3E%3C/svg%3E\")}.i-heroicons-lock-closed,.i-heroicons-magnifying-glass{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-magnifying-glass{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' 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.607'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' 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.607'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' 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.607'/%3E%3C/svg%3E\")}.i-heroicons-magnifying-glass-20-solid{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M9 3.5a5.5 5.5 0 1 0 0 11 5.5 5.5 0 0 0 0-11M2 9a7 7 0 1 1 12.452 4.391l3.328 3.329a.75.75 0 1 1-1.06 1.06l-3.329-3.328A7 7 0 0 1 2 9' clip-rule='evenodd'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M9 3.5a5.5 5.5 0 1 0 0 11 5.5 5.5 0 0 0 0-11M2 9a7 7 0 1 1 12.452 4.391l3.328 3.329a.75.75 0 1 1-1.06 1.06l-3.329-3.328A7 7 0 0 1 2 9' clip-rule='evenodd'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M9 3.5a5.5 5.5 0 1 0 0 11 5.5 5.5 0 0 0 0-11M2 9a7 7 0 1 1 12.452 4.391l3.328 3.329a.75.75 0 1 1-1.06 1.06l-3.329-3.328A7 7 0 0 1 2 9' clip-rule='evenodd'/%3E%3C/svg%3E\")}.i-heroicons-magnifying-glass-20-solid,.i-heroicons-minus-20-solid{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-minus-20-solid{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M4 10a.75.75 0 0 1 .75-.75h10.5a.75.75 0 0 1 0 1.5H4.75A.75.75 0 0 1 4 10' clip-rule='evenodd'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M4 10a.75.75 0 0 1 .75-.75h10.5a.75.75 0 0 1 0 1.5H4.75A.75.75 0 0 1 4 10' clip-rule='evenodd'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M4 10a.75.75 0 0 1 .75-.75h10.5a.75.75 0 0 1 0 1.5H4.75A.75.75 0 0 1 4 10' clip-rule='evenodd'/%3E%3C/svg%3E\")}.i-heroicons-no-symbol{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M18.364 18.364A9 9 0 0 0 5.636 5.636m12.728 12.728A9 9 0 0 1 5.636 5.636m12.728 12.728L5.636 5.636'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M18.364 18.364A9 9 0 0 0 5.636 5.636m12.728 12.728A9 9 0 0 1 5.636 5.636m12.728 12.728L5.636 5.636'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M18.364 18.364A9 9 0 0 0 5.636 5.636m12.728 12.728A9 9 0 0 1 5.636 5.636m12.728 12.728L5.636 5.636'/%3E%3C/svg%3E\")}.i-heroicons-no-symbol,.i-heroicons-pause{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-pause{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M15.75 5.25v13.5m-7.5-13.5v13.5'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M15.75 5.25v13.5m-7.5-13.5v13.5'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M15.75 5.25v13.5m-7.5-13.5v13.5'/%3E%3C/svg%3E\")}.i-heroicons-pencil-square{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' 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.897zm0 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'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' 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.897zm0 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'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' 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.897zm0 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'/%3E%3C/svg%3E\")}.i-heroicons-pencil-square,.i-heroicons-play{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-play{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' 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-.986z'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' 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-.986z'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' 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-.986z'/%3E%3C/svg%3E\")}.i-heroicons-play-circle{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'%3E%3Cpath d='M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0'/%3E%3Cpath d='M15.91 11.672a.375.375 0 0 1 0 .656l-5.603 3.113a.375.375 0 0 1-.557-.328V8.887c0-.286.307-.466.557-.327z'/%3E%3C/g%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'%3E%3Cpath d='M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0'/%3E%3Cpath d='M15.91 11.672a.375.375 0 0 1 0 .656l-5.603 3.113a.375.375 0 0 1-.557-.328V8.887c0-.286.307-.466.557-.327z'/%3E%3C/g%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'%3E%3Cpath d='M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0'/%3E%3Cpath d='M15.91 11.672a.375.375 0 0 1 0 .656l-5.603 3.113a.375.375 0 0 1-.557-.328V8.887c0-.286.307-.466.557-.327z'/%3E%3C/g%3E%3C/svg%3E\")}.i-heroicons-play-circle,.i-heroicons-plus{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-plus{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12 4.5v15m7.5-7.5h-15'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12 4.5v15m7.5-7.5h-15'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12 4.5v15m7.5-7.5h-15'/%3E%3C/svg%3E\")}.i-heroicons-plus-circle{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0'/%3E%3C/svg%3E\")}.i-heroicons-plus-circle,.i-heroicons-queue-list{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-queue-list{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M3.75 12h16.5m-16.5 3.75h16.5M3.75 19.5h16.5M5.625 4.5h12.75a1.875 1.875 0 0 1 0 3.75H5.625a1.875 1.875 0 0 1 0-3.75'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M3.75 12h16.5m-16.5 3.75h16.5M3.75 19.5h16.5M5.625 4.5h12.75a1.875 1.875 0 0 1 0 3.75H5.625a1.875 1.875 0 0 1 0-3.75'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M3.75 12h16.5m-16.5 3.75h16.5M3.75 19.5h16.5M5.625 4.5h12.75a1.875 1.875 0 0 1 0 3.75H5.625a1.875 1.875 0 0 1 0-3.75'/%3E%3C/svg%3E\")}.i-heroicons-rectangle-stack{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 6.878V6a2.25 2.25 0 0 1 2.25-2.25h7.5A2.25 2.25 0 0 1 18 6v.878m-12 0q.354-.126.75-.128h10.5q.396.002.75.128m-12 0A2.25 2.25 0 0 0 4.5 9v.878m13.5-3A2.25 2.25 0 0 1 19.5 9v.878m0 0a2.3 2.3 0 0 0-.75-.128H5.25q-.396.002-.75.128m15 0A2.25 2.25 0 0 1 21 12v6a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 18v-6c0-.98.626-1.813 1.5-2.122'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 6.878V6a2.25 2.25 0 0 1 2.25-2.25h7.5A2.25 2.25 0 0 1 18 6v.878m-12 0q.354-.126.75-.128h10.5q.396.002.75.128m-12 0A2.25 2.25 0 0 0 4.5 9v.878m13.5-3A2.25 2.25 0 0 1 19.5 9v.878m0 0a2.3 2.3 0 0 0-.75-.128H5.25q-.396.002-.75.128m15 0A2.25 2.25 0 0 1 21 12v6a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 18v-6c0-.98.626-1.813 1.5-2.122'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 6.878V6a2.25 2.25 0 0 1 2.25-2.25h7.5A2.25 2.25 0 0 1 18 6v.878m-12 0q.354-.126.75-.128h10.5q.396.002.75.128m-12 0A2.25 2.25 0 0 0 4.5 9v.878m13.5-3A2.25 2.25 0 0 1 19.5 9v.878m0 0a2.3 2.3 0 0 0-.75-.128H5.25q-.396.002-.75.128m15 0A2.25 2.25 0 0 1 21 12v6a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 18v-6c0-.98.626-1.813 1.5-2.122'/%3E%3C/svg%3E\")}.i-heroicons-rectangle-stack,.i-heroicons-scale{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-scale{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12 3v17.25m0 0c-1.472 0-2.882.265-4.185.75M12 20.25c1.472 0 2.882.265 4.185.75M18.75 4.97A48 48 0 0 0 12 4.5c-2.291 0-4.545.16-6.75.47m13.5 0q1.515.215 3 .52m-3-.52 2.62 10.726c.122.499-.106 1.028-.589 1.202a6 6 0 0 1-2.031.352 6 6 0 0 1-2.031-.352c-.483-.174-.711-.703-.59-1.202zm-16.5.52q1.485-.305 3-.52m0 0 2.62 10.726c.122.499-.106 1.028-.589 1.202a6 6 0 0 1-2.031.352 6 6 0 0 1-2.031-.352c-.483-.174-.711-.703-.59-1.202z'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12 3v17.25m0 0c-1.472 0-2.882.265-4.185.75M12 20.25c1.472 0 2.882.265 4.185.75M18.75 4.97A48 48 0 0 0 12 4.5c-2.291 0-4.545.16-6.75.47m13.5 0q1.515.215 3 .52m-3-.52 2.62 10.726c.122.499-.106 1.028-.589 1.202a6 6 0 0 1-2.031.352 6 6 0 0 1-2.031-.352c-.483-.174-.711-.703-.59-1.202zm-16.5.52q1.485-.305 3-.52m0 0 2.62 10.726c.122.499-.106 1.028-.589 1.202a6 6 0 0 1-2.031.352 6 6 0 0 1-2.031-.352c-.483-.174-.711-.703-.59-1.202z'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12 3v17.25m0 0c-1.472 0-2.882.265-4.185.75M12 20.25c1.472 0 2.882.265 4.185.75M18.75 4.97A48 48 0 0 0 12 4.5c-2.291 0-4.545.16-6.75.47m13.5 0q1.515.215 3 .52m-3-.52 2.62 10.726c.122.499-.106 1.028-.589 1.202a6 6 0 0 1-2.031.352 6 6 0 0 1-2.031-.352c-.483-.174-.711-.703-.59-1.202zm-16.5.52q1.485-.305 3-.52m0 0 2.62 10.726c.122.499-.106 1.028-.589 1.202a6 6 0 0 1-2.031.352 6 6 0 0 1-2.031-.352c-.483-.174-.711-.703-.59-1.202z'/%3E%3C/svg%3E\")}.i-heroicons-squares-2x2{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M3.75 6A2.25 2.25 0 0 1 6 3.75h2.25A2.25 2.25 0 0 1 10.5 6v2.25a2.25 2.25 0 0 1-2.25 2.25H6a2.25 2.25 0 0 1-2.25-2.25zm0 9.75A2.25 2.25 0 0 1 6 13.5h2.25a2.25 2.25 0 0 1 2.25 2.25V18a2.25 2.25 0 0 1-2.25 2.25H6A2.25 2.25 0 0 1 3.75 18zM13.5 6a2.25 2.25 0 0 1 2.25-2.25H18A2.25 2.25 0 0 1 20.25 6v2.25A2.25 2.25 0 0 1 18 10.5h-2.25a2.25 2.25 0 0 1-2.25-2.25zm0 9.75a2.25 2.25 0 0 1 2.25-2.25H18a2.25 2.25 0 0 1 2.25 2.25V18A2.25 2.25 0 0 1 18 20.25h-2.25A2.25 2.25 0 0 1 13.5 18z'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M3.75 6A2.25 2.25 0 0 1 6 3.75h2.25A2.25 2.25 0 0 1 10.5 6v2.25a2.25 2.25 0 0 1-2.25 2.25H6a2.25 2.25 0 0 1-2.25-2.25zm0 9.75A2.25 2.25 0 0 1 6 13.5h2.25a2.25 2.25 0 0 1 2.25 2.25V18a2.25 2.25 0 0 1-2.25 2.25H6A2.25 2.25 0 0 1 3.75 18zM13.5 6a2.25 2.25 0 0 1 2.25-2.25H18A2.25 2.25 0 0 1 20.25 6v2.25A2.25 2.25 0 0 1 18 10.5h-2.25a2.25 2.25 0 0 1-2.25-2.25zm0 9.75a2.25 2.25 0 0 1 2.25-2.25H18a2.25 2.25 0 0 1 2.25 2.25V18A2.25 2.25 0 0 1 18 20.25h-2.25A2.25 2.25 0 0 1 13.5 18z'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M3.75 6A2.25 2.25 0 0 1 6 3.75h2.25A2.25 2.25 0 0 1 10.5 6v2.25a2.25 2.25 0 0 1-2.25 2.25H6a2.25 2.25 0 0 1-2.25-2.25zm0 9.75A2.25 2.25 0 0 1 6 13.5h2.25a2.25 2.25 0 0 1 2.25 2.25V18a2.25 2.25 0 0 1-2.25 2.25H6A2.25 2.25 0 0 1 3.75 18zM13.5 6a2.25 2.25 0 0 1 2.25-2.25H18A2.25 2.25 0 0 1 20.25 6v2.25A2.25 2.25 0 0 1 18 10.5h-2.25a2.25 2.25 0 0 1-2.25-2.25zm0 9.75a2.25 2.25 0 0 1 2.25-2.25H18a2.25 2.25 0 0 1 2.25 2.25V18A2.25 2.25 0 0 1 18 20.25h-2.25A2.25 2.25 0 0 1 13.5 18z'/%3E%3C/svg%3E\")}.i-heroicons-squares-2x2,.i-heroicons-stop{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-stop{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' 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.25z'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' 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.25z'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' 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.25z'/%3E%3C/svg%3E\")}.i-heroicons-stop-circle{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'%3E%3Cpath d='M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0'/%3E%3Cpath d='M9 9.563C9 9.252 9.252 9 9.563 9h4.874c.311 0 .563.252.563.563v4.874a.563.563 0 0 1-.562.563H9.561A.56.56 0 0 1 9 14.438z'/%3E%3C/g%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'%3E%3Cpath d='M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0'/%3E%3Cpath d='M9 9.563C9 9.252 9.252 9 9.563 9h4.874c.311 0 .563.252.563.563v4.874a.563.563 0 0 1-.562.563H9.561A.56.56 0 0 1 9 14.438z'/%3E%3C/g%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'%3E%3Cpath d='M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0'/%3E%3Cpath d='M9 9.563C9 9.252 9.252 9 9.563 9h4.874c.311 0 .563.252.563.563v4.874a.563.563 0 0 1-.562.563H9.561A.56.56 0 0 1 9 14.438z'/%3E%3C/g%3E%3C/svg%3E\")}.i-heroicons-stop-circle,.i-heroicons-trash{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-trash{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21q.512.078 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 48 0 0 0-3.478-.397m-12 .562q.51-.088 1.022-.165m0 0a48 48 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a52 52 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a49 49 0 0 0-7.5 0'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21q.512.078 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 48 0 0 0-3.478-.397m-12 .562q.51-.088 1.022-.165m0 0a48 48 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a52 52 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a49 49 0 0 0-7.5 0'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21q.512.078 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 48 0 0 0-3.478-.397m-12 .562q.51-.088 1.022-.165m0 0a48 48 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a52 52 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a49 49 0 0 0-7.5 0'/%3E%3C/svg%3E\")}.i-heroicons-trophy{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.45 7.45 0 0 1-.982-3.172M9.497 14.25a7.45 7.45 0 0 0 .981-3.172M5.25 4.236q-1.473.215-2.916.52A6 6 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25s4.545.16 6.75.47v1.516M7.73 9.728a6.7 6.7 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46 46 0 0 1 2.916.52 6 6 0 0 1-5.395 4.972m0 0a6.7 6.7 0 0 1-2.749 1.35m0 0a6.8 6.8 0 0 1-3.044 0'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.45 7.45 0 0 1-.982-3.172M9.497 14.25a7.45 7.45 0 0 0 .981-3.172M5.25 4.236q-1.473.215-2.916.52A6 6 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25s4.545.16 6.75.47v1.516M7.73 9.728a6.7 6.7 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46 46 0 0 1 2.916.52 6 6 0 0 1-5.395 4.972m0 0a6.7 6.7 0 0 1-2.749 1.35m0 0a6.8 6.8 0 0 1-3.044 0'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.45 7.45 0 0 1-.982-3.172M9.497 14.25a7.45 7.45 0 0 0 .981-3.172M5.25 4.236q-1.473.215-2.916.52A6 6 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25s4.545.16 6.75.47v1.516M7.73 9.728a6.7 6.7 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46 46 0 0 1 2.916.52 6 6 0 0 1-5.395 4.972m0 0a6.7 6.7 0 0 1-2.749 1.35m0 0a6.8 6.8 0 0 1-3.044 0'/%3E%3C/svg%3E\")}.i-heroicons-trophy,.i-heroicons-wallet{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-wallet{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M21 12a2.25 2.25 0 0 0-2.25-2.25H15a3 3 0 1 1-6 0H5.25A2.25 2.25 0 0 0 3 12m18 0v6a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 18v-6m18 0V9M3 12V9m18 0a2.25 2.25 0 0 0-2.25-2.25H5.25A2.25 2.25 0 0 0 3 9m18 0V6a2.25 2.25 0 0 0-2.25-2.25H5.25A2.25 2.25 0 0 0 3 6v3'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M21 12a2.25 2.25 0 0 0-2.25-2.25H15a3 3 0 1 1-6 0H5.25A2.25 2.25 0 0 0 3 12m18 0v6a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 18v-6m18 0V9M3 12V9m18 0a2.25 2.25 0 0 0-2.25-2.25H5.25A2.25 2.25 0 0 0 3 9m18 0V6a2.25 2.25 0 0 0-2.25-2.25H5.25A2.25 2.25 0 0 0 3 6v3'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M21 12a2.25 2.25 0 0 0-2.25-2.25H15a3 3 0 1 1-6 0H5.25A2.25 2.25 0 0 0 3 12m18 0v6a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 18v-6m18 0V9M3 12V9m18 0a2.25 2.25 0 0 0-2.25-2.25H5.25A2.25 2.25 0 0 0 3 9m18 0V6a2.25 2.25 0 0 0-2.25-2.25H5.25A2.25 2.25 0 0 0 3 6v3'/%3E%3C/svg%3E\")}.i-heroicons-wrench{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'%3E%3Cpath d='M21.75 6.75a4.5 4.5 0 0 1-4.884 4.484c-1.076-.091-2.264.071-2.95.904l-7.152 8.684a2.548 2.548 0 1 1-3.586-3.586l8.684-7.151c.833-.687.995-1.875.904-2.95a4.5 4.5 0 0 1 6.336-4.486l-3.276 3.275a3 3 0 0 0 2.25 2.25l3.276-3.276c.256.565.398 1.192.398 1.852'/%3E%3Cpath d='M4.867 19.125h.008v.008h-.008z'/%3E%3C/g%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'%3E%3Cpath d='M21.75 6.75a4.5 4.5 0 0 1-4.884 4.484c-1.076-.091-2.264.071-2.95.904l-7.152 8.684a2.548 2.548 0 1 1-3.586-3.586l8.684-7.151c.833-.687.995-1.875.904-2.95a4.5 4.5 0 0 1 6.336-4.486l-3.276 3.275a3 3 0 0 0 2.25 2.25l3.276-3.276c.256.565.398 1.192.398 1.852'/%3E%3Cpath d='M4.867 19.125h.008v.008h-.008z'/%3E%3C/g%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'%3E%3Cpath d='M21.75 6.75a4.5 4.5 0 0 1-4.884 4.484c-1.076-.091-2.264.071-2.95.904l-7.152 8.684a2.548 2.548 0 1 1-3.586-3.586l8.684-7.151c.833-.687.995-1.875.904-2.95a4.5 4.5 0 0 1 6.336-4.486l-3.276 3.275a3 3 0 0 0 2.25 2.25l3.276-3.276c.256.565.398 1.192.398 1.852'/%3E%3Cpath d='M4.867 19.125h.008v.008h-.008z'/%3E%3C/g%3E%3C/svg%3E\")}.i-heroicons-wrench,.i-heroicons-x-circle{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-x-circle{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0'/%3E%3C/svg%3E\")}.i-heroicons-x-mark{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 18 18 6M6 6l12 12'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 18 18 6M6 6l12 12'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 18 18 6M6 6l12 12'/%3E%3C/svg%3E\")}.i-heroicons-x-mark,.i-heroicons-x-mark-20-solid{background-color:currentColor;display:inline-block;height:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em}.i-heroicons-x-mark-20-solid{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94z'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94z'/%3E%3C/svg%3E\");mask-image:var(--svg);--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94z'/%3E%3C/svg%3E\")}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.inset-y-0{bottom:0;top:0}.-bottom-1{bottom:-.25rem}.-bottom-\\[0\\.5px\\]{bottom:-.5px}.-left-1{left:-.25rem}.-right-1{right:-.25rem}.-top-1{top:-.25rem}.-top-10{top:-2.5rem}.bottom-0{bottom:0}.bottom-4{bottom:1rem}.end-0{inset-inline-end:0}.end-4{inset-inline-end:1rem}.left-0{left:0}.left-2{left:.5rem}.left-3{left:.75rem}.left-4{left:1rem}.left-\\[4px\\]{left:4px}.right-0{right:0}.right-1{right:.25rem}.right-2{right:.5rem}.right-4{right:1rem}.right-auto{right:auto}.start-0{inset-inline-start:0}.start-4{inset-inline-start:1rem}.top-0{top:0}.top-1\\/2{top:50%}.top-9{top:2.25rem}.top-\\[4px\\]{top:4px}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.z-\\[1\\]{z-index:1}.z-\\[55\\]{z-index:55}.z-\\[60\\]{z-index:60}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-start-1{grid-column-start:1}.row-start-1{grid-row-start:1}.-m-1\\.5{margin:-.375rem}.-m-12{margin:-3rem}.-m-2{margin:-.5rem}.-m-6{margin:-1.5rem}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-mx-3{margin-left:-.75rem;margin-right:-.75rem}.-my-1{margin-bottom:-.25rem;margin-top:-.25rem}.-my-2{margin-bottom:-.5rem;margin-top:-.5rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-bottom:.5rem;margin-top:.5rem}.my-4{margin-bottom:1rem;margin-top:1rem}.my-8{margin-bottom:2rem;margin-top:2rem}.-me-1\\.5{margin-inline-end:-.375rem}.-ml-1{margin-left:-.25rem}.-ml-1\\.5{margin-left:-.375rem}.-mr-2{margin-right:-.5rem}.-mt-1{margin-top:-.25rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-1\\.5{margin-bottom:.375rem}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-0{margin-left:0}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-8{margin-left:2rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mr-8{margin-right:2rem}.ms-3{margin-inline-start:.75rem}.ms-auto{margin-inline-start:auto}.mt-0{margin-top:0}.mt-0\\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\\.5{margin-top:.375rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-\\[10\\%\\]{margin-top:10%}.mt-\\[6\\%\\]{margin-top:6%}.mt-auto{margin-top:auto}.line-clamp-1{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.flow-root{display:flow-root}.grid{display:grid}.inline-grid{display:inline-grid}.contents{display:contents}.hidden{display:none}.size-4{height:1rem;width:1rem}.h-0{height:0}.h-0\\.5{height:.125rem}.h-1{height:.25rem}.h-1\\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\\.5{height:.625rem}.h-20{height:5rem}.h-24{height:6rem}.h-3{height:.75rem}.h-3\\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-60{height:15rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\\[4px\\]{height:4px}.h-\\[5px\\]{height:5px}.h-\\[800px\\]{height:800px}.h-\\[calc\\(100vh-120px\\)\\]{height:calc(100vh - 120px)}.h-\\[calc\\(100vh-180px\\)\\]{height:calc(100vh - 180px)}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-60{max-height:15rem}.max-h-64{max-height:16rem}.max-h-\\[60vh\\]{max-height:60vh}.min-h-0{min-height:0}.min-h-\\[1\\.5rem\\]{min-height:1.5rem}.min-h-\\[160px\\]{min-height:160px}.min-h-\\[3\\.5rem\\]{min-height:3.5rem}.min-h-\\[80px\\]{min-height:80px}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-0{width:0}.w-1{width:.25rem}.w-1\\.5{width:.375rem}.w-1\\/2{width:50%}.w-1\\/3{width:33.333333%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\\.5{width:.625rem}.w-2\\/3{width:66.666667%}.w-2\\/6{width:33.333333%}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\\.5{width:.875rem}.w-3\\/4{width:75%}.w-32{width:8rem}.w-4{width:1rem}.w-4\\/5{width:80%}.w-4\\/6{width:66.666667%}.w-40{width:10rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-5\\/6{width:83.333333%}.w-52{width:13rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-96{width:24rem}.w-\\[10\\%\\]{width:10%}.w-\\[10em\\]{width:10em}.w-\\[12\\%\\]{width:12%}.w-\\[15\\%\\]{width:15%}.w-\\[18\\%\\]{width:18%}.w-\\[19\\%\\]{width:19%}.w-\\[20\\%\\]{width:20%}.w-\\[25\\%\\]{width:25%}.w-\\[28\\%\\]{width:28%}.w-\\[3\\.25rem\\]{width:3.25rem}.w-\\[3\\.75rem\\]{width:3.75rem}.w-\\[460px\\]{width:460px}.w-\\[calc\\(100\\%\\+0\\.5rem\\)\\]{width:calc(100% + .5rem)}.w-\\[calc\\(100\\%-384px\\)\\]{width:calc(100% - 384px)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.w-screen{width:100vw}.min-w-0{min-width:0}.min-w-40{min-width:10rem}.min-w-\\[0\\.375rem\\]{min-width:.375rem}.min-w-\\[0\\.5rem\\]{min-width:.5rem}.min-w-\\[0\\.625rem\\]{min-width:.625rem}.min-w-\\[0\\.75rem\\]{min-width:.75rem}.min-w-\\[0\\.875rem\\]{min-width:.875rem}.min-w-\\[1\\.25rem\\]{min-width:1.25rem}.min-w-\\[10rem\\]{min-width:10rem}.min-w-\\[16px\\]{min-width:16px}.min-w-\\[1rem\\]{min-width:1rem}.min-w-\\[20px\\]{min-width:20px}.min-w-\\[24px\\]{min-width:24px}.min-w-\\[4px\\]{min-width:4px}.min-w-\\[5px\\]{min-width:5px}.min-w-\\[6rem\\]{min-width:6rem}.min-w-fit{min-width:fit-content}.min-w-full{min-width:100%}.min-w-max{min-width:max-content}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-\\[240px\\]{max-width:240px}.max-w-\\[320px\\]{max-width:320px}.max-w-\\[600px\\]{max-width:600px}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-none{flex:none}.flex-shrink{flex-shrink:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.table-fixed{table-layout:fixed}.origin-top-right{transform-origin:top right}.-translate-x-1\\/2{--tw-translate-x:-50%;transform:translate(-50%,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));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))}.-translate-x-full{--tw-translate-x:-100%;transform:translate(-100%,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));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))}.-translate-y-1\\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),-50%) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));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))}.translate-x-0{--tw-translate-x:0px;transform:translateY(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));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))}.translate-x-1\\/2{--tw-translate-x:50%;transform:translate(50%,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));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))}.translate-x-2{--tw-translate-x:.5rem;transform:translate(.5rem,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));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))}.translate-x-2\\.5{--tw-translate-x:.625rem;transform:translate(.625rem,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));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))}.translate-x-3{--tw-translate-x:.75rem;transform:translate(.75rem,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));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))}.translate-x-4{--tw-translate-x:1rem;transform:translate(1rem,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));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))}.translate-x-5{--tw-translate-x:1.25rem;transform:translate(1.25rem,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));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))}.translate-x-6{--tw-translate-x:1.5rem;transform:translate(1.5rem,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));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))}.translate-x-7{--tw-translate-x:1.75rem;transform:translate(1.75rem,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));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))}.translate-x-full{--tw-translate-x:100%;transform:translate(100%,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));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))}.translate-y-0{--tw-translate-y:0px;transform:translate(var(--tw-translate-x)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));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))}.translate-y-1{--tw-translate-y:.25rem;transform:translate(var(--tw-translate-x),.25rem) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));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))}.translate-y-1\\/2{--tw-translate-y:50%;transform:translate(var(--tw-translate-x),50%) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));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))}.translate-y-2{--tw-translate-y:.5rem;transform:translate(var(--tw-translate-x),.5rem) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));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))}.translate-y-4{--tw-translate-y:1rem;transform:translate(var(--tw-translate-x),1rem) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));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))}.-rotate-180{--tw-rotate:-180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(-180deg) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));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))}.rotate-0{--tw-rotate:0deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(0) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));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))}.rotate-90{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(90deg) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));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))}.scale-100{--tw-scale-x:1;--tw-scale-y:1;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(1) scaleY(1);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))}.scale-95{--tw-scale-x:.95;--tw-scale-y:.95;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(.95) scaleY(.95)}.scale-95,.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))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.resize-none{resize:none}.resize{resize:both}.snap-x{scroll-snap-type:x var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness:mandatory}.snap-center{scroll-snap-align:center}.scroll-py-1{scroll-padding-bottom:.25rem;scroll-padding-top:.25rem}.scroll-py-2{scroll-padding-bottom:.5rem;scroll-padding-top:.5rem}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.content-center{align-content:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\\.5{gap:.375rem}.gap-12{gap:3rem}.gap-16{gap:4rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-x-1{column-gap:.25rem}.gap-x-1\\.5{column-gap:.375rem}.gap-x-2{column-gap:.5rem}.gap-x-2\\.5{column-gap:.625rem}.-space-x-px>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:-1px;margin-left:calc(-1px*(1 - var(--tw-space-x-reverse)));margin-right:0;margin-right:calc(-1px*var(--tw-space-x-reverse))}.-space-y-px>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:0;margin-bottom:calc(-1px*var(--tw-space-y-reverse));margin-top:-1px;margin-top:calc(-1px*(1 - var(--tw-space-y-reverse)))}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:.25rem;margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)));margin-right:0;margin-right:calc(.25rem*var(--tw-space-x-reverse))}.space-x-1\\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:.375rem;margin-left:calc(.375rem*(1 - var(--tw-space-x-reverse)));margin-right:0;margin-right:calc(.375rem*var(--tw-space-x-reverse))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:.5rem;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:0;margin-right:calc(.5rem*var(--tw-space-x-reverse))}.space-x-2\\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:.625rem;margin-left:calc(.625rem*(1 - var(--tw-space-x-reverse)));margin-right:0;margin-right:calc(.625rem*var(--tw-space-x-reverse))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:.75rem;margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)));margin-right:0;margin-right:calc(.75rem*var(--tw-space-x-reverse))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:1rem;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:0;margin-right:calc(1rem*var(--tw-space-x-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:.25rem;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:0;margin-bottom:calc(2.5rem*var(--tw-space-y-reverse));margin-top:2.5rem;margin-top:calc(2.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:0;margin-bottom:calc(3rem*var(--tw-space-y-reverse));margin-top:3rem;margin-top:calc(3rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:.5rem;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:.75rem;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:1rem;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:1.5rem;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:1px;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.divide-gray-100>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(var(--color-gray-100)/var(--tw-divide-opacity,1))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(var(--color-gray-200)/var(--tw-divide-opacity,1))}.divide-gray-300>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(var(--color-gray-300)/var(--tw-divide-opacity,1))}.self-center{align-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overflow-x-scroll{overflow-x:scroll}.overflow-y-scroll{overflow-y:scroll}.scroll-smooth{scroll-behavior:smooth}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-clip{text-overflow:clip}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-b{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-b-2xl{border-bottom-left-radius:1rem;border-bottom-right-radius:1rem}.rounded-b-3xl{border-bottom-left-radius:1.5rem;border-bottom-right-radius:1.5rem}.rounded-b-full{border-bottom-left-radius:9999px;border-bottom-right-radius:9999px}.rounded-b-lg{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.rounded-b-md{border-bottom-left-radius:.375rem;border-bottom-right-radius:.375rem}.rounded-b-none{border-bottom-left-radius:0;border-bottom-right-radius:0}.rounded-b-sm{border-bottom-left-radius:.125rem;border-bottom-right-radius:.125rem}.rounded-b-xl{border-bottom-left-radius:.75rem;border-bottom-right-radius:.75rem}.rounded-e{border-end-end-radius:.25rem;border-start-end-radius:.25rem}.rounded-e-2xl{border-end-end-radius:1rem;border-start-end-radius:1rem}.rounded-e-3xl{border-end-end-radius:1.5rem;border-start-end-radius:1.5rem}.rounded-e-full{border-end-end-radius:9999px;border-start-end-radius:9999px}.rounded-e-lg{border-end-end-radius:.5rem;border-start-end-radius:.5rem}.rounded-e-md{border-end-end-radius:.375rem;border-start-end-radius:.375rem}.rounded-e-none{border-end-end-radius:0;border-start-end-radius:0}.rounded-e-sm{border-end-end-radius:.125rem;border-start-end-radius:.125rem}.rounded-e-xl{border-end-end-radius:.75rem;border-start-end-radius:.75rem}.rounded-l{border-bottom-left-radius:.25rem;border-top-left-radius:.25rem}.rounded-l-full{border-bottom-left-radius:9999px;border-top-left-radius:9999px}.rounded-l-md{border-bottom-left-radius:.375rem;border-top-left-radius:.375rem}.rounded-r{border-bottom-right-radius:.25rem;border-top-right-radius:.25rem}.rounded-r-full{border-bottom-right-radius:9999px;border-top-right-radius:9999px}.rounded-r-md{border-bottom-right-radius:.375rem;border-top-right-radius:.375rem}.rounded-s{border-end-start-radius:.25rem;border-start-start-radius:.25rem}.rounded-s-2xl{border-end-start-radius:1rem;border-start-start-radius:1rem}.rounded-s-3xl{border-end-start-radius:1.5rem;border-start-start-radius:1.5rem}.rounded-s-full{border-end-start-radius:9999px;border-start-start-radius:9999px}.rounded-s-lg{border-end-start-radius:.5rem;border-start-start-radius:.5rem}.rounded-s-md{border-end-start-radius:.375rem;border-start-start-radius:.375rem}.rounded-s-none{border-end-start-radius:0;border-start-start-radius:0}.rounded-s-sm{border-end-start-radius:.125rem;border-start-start-radius:.125rem}.rounded-s-xl{border-end-start-radius:.75rem;border-start-start-radius:.75rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.rounded-t-3xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.rounded-t-full{border-top-left-radius:9999px;border-top-right-radius:9999px}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.rounded-t-sm{border-top-left-radius:.125rem;border-top-right-radius:.125rem}.rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.border{border-width:1px}.border-0{border-width:0}.border-2,.border-\\[2px\\]{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-r-2{border-right-width:2px}.border-s{border-inline-start-width:1px}.border-s-\\[2px\\]{border-inline-start-width:2px}.border-s-\\[3px\\]{border-inline-start-width:3px}.border-s-\\[4px\\]{border-inline-start-width:4px}.border-s-\\[5px\\]{border-inline-start-width:5px}.border-s-\\[6px\\]{border-inline-start-width:6px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-t-\\[1\\.5px\\]{border-top-width:1.5px}.border-t-\\[2px\\]{border-top-width:2px}.border-t-\\[3px\\]{border-top-width:3px}.border-t-\\[4px\\]{border-top-width:4px}.border-t-\\[5px\\]{border-top-width:5px}.border-t-\\[6px\\]{border-top-width:6px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-dotted{border-style:dotted}.border-none{border-style:none}.border-gray-100{--tw-border-opacity:1;border-color:rgb(var(--color-gray-100)/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(var(--color-gray-200)/var(--tw-border-opacity,1))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(var(--color-gray-300)/var(--tw-border-opacity,1))}.border-indigo-200{--tw-border-opacity:1;border-color:#c7d2fe;border-color:rgb(199 210 254/var(--tw-border-opacity,1))}.border-indigo-600{--tw-border-opacity:1;border-color:#4f46e5;border-color:rgb(79 70 229/var(--tw-border-opacity,1))}.border-red-200{--tw-border-opacity:1;border-color:#fecaca;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-rose-400\\/50{border-color:#fb718580}.border-rose-500\\/50{border-color:#f43f5e80}.border-transparent{border-color:#0000}.border-yellow-200{--tw-border-opacity:1;border-color:#fde68a;border-color:rgb(253 230 138/var(--tw-border-opacity,1))}.border-yellow-400{--tw-border-opacity:1;border-color:#fbbf24;border-color:rgb(251 191 36/var(--tw-border-opacity,1))}.bg-amber-400{--tw-bg-opacity:1;background-color:#fbbf24;background-color:rgb(251 191 36/var(--tw-bg-opacity,1))}.bg-amber-400\\/0{background-color:#fbbf2400}.bg-amber-400\\/10{background-color:#fbbf241a}.bg-amber-400\\/100{background-color:#fbbf24}.bg-amber-400\\/15{background-color:#fbbf2426}.bg-amber-400\\/20{background-color:#fbbf2433}.bg-amber-400\\/25{background-color:#fbbf2440}.bg-amber-400\\/30{background-color:#fbbf244d}.bg-amber-400\\/35{background-color:#fbbf2459}.bg-amber-400\\/40{background-color:#fbbf2466}.bg-amber-400\\/45{background-color:#fbbf2473}.bg-amber-400\\/5{background-color:#fbbf240d}.bg-amber-400\\/50{background-color:#fbbf2480}.bg-amber-400\\/55{background-color:#fbbf248c}.bg-amber-400\\/60{background-color:#fbbf2499}.bg-amber-400\\/65{background-color:#fbbf24a6}.bg-amber-400\\/70{background-color:#fbbf24b3}.bg-amber-400\\/75{background-color:#fbbf24bf}.bg-amber-400\\/80{background-color:#fbbf24cc}.bg-amber-400\\/85{background-color:#fbbf24d9}.bg-amber-400\\/90{background-color:#fbbf24e6}.bg-amber-400\\/95{background-color:#fbbf24f2}.bg-amber-50{--tw-bg-opacity:1;background-color:#fffbeb;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.bg-amber-500{--tw-bg-opacity:1;background-color:#f59e0b;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.bg-amber-500\\/0{background-color:#f59e0b00}.bg-amber-500\\/10{background-color:#f59e0b1a}.bg-amber-500\\/100{background-color:#f59e0b}.bg-amber-500\\/15{background-color:#f59e0b26}.bg-amber-500\\/20{background-color:#f59e0b33}.bg-amber-500\\/25{background-color:#f59e0b40}.bg-amber-500\\/30{background-color:#f59e0b4d}.bg-amber-500\\/35{background-color:#f59e0b59}.bg-amber-500\\/40{background-color:#f59e0b66}.bg-amber-500\\/45{background-color:#f59e0b73}.bg-amber-500\\/5{background-color:#f59e0b0d}.bg-amber-500\\/50{background-color:#f59e0b80}.bg-amber-500\\/55{background-color:#f59e0b8c}.bg-amber-500\\/60{background-color:#f59e0b99}.bg-amber-500\\/65{background-color:#f59e0ba6}.bg-amber-500\\/70{background-color:#f59e0bb3}.bg-amber-500\\/75{background-color:#f59e0bbf}.bg-amber-500\\/80{background-color:#f59e0bcc}.bg-amber-500\\/85{background-color:#f59e0bd9}.bg-amber-500\\/90{background-color:#f59e0be6}.bg-amber-500\\/95{background-color:#f59e0bf2}.bg-backdrop{--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-blue-100{--tw-bg-opacity:1;background-color:#dbeafe;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.bg-blue-400{--tw-bg-opacity:1;background-color:#60a5fa;background-color:rgb(96 165 250/var(--tw-bg-opacity,1))}.bg-blue-400\\/0{background-color:#60a5fa00}.bg-blue-400\\/10{background-color:#60a5fa1a}.bg-blue-400\\/100{background-color:#60a5fa}.bg-blue-400\\/15{background-color:#60a5fa26}.bg-blue-400\\/20{background-color:#60a5fa33}.bg-blue-400\\/25{background-color:#60a5fa40}.bg-blue-400\\/30{background-color:#60a5fa4d}.bg-blue-400\\/35{background-color:#60a5fa59}.bg-blue-400\\/40{background-color:#60a5fa66}.bg-blue-400\\/45{background-color:#60a5fa73}.bg-blue-400\\/5{background-color:#60a5fa0d}.bg-blue-400\\/50{background-color:#60a5fa80}.bg-blue-400\\/55{background-color:#60a5fa8c}.bg-blue-400\\/60{background-color:#60a5fa99}.bg-blue-400\\/65{background-color:#60a5faa6}.bg-blue-400\\/70{background-color:#60a5fab3}.bg-blue-400\\/75{background-color:#60a5fabf}.bg-blue-400\\/80{background-color:#60a5facc}.bg-blue-400\\/85{background-color:#60a5fad9}.bg-blue-400\\/90{background-color:#60a5fae6}.bg-blue-400\\/95{background-color:#60a5faf2}.bg-blue-50{--tw-bg-opacity:1;background-color:#eff6ff;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-blue-500{--tw-bg-opacity:1;background-color:#3b82f6;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.bg-blue-500\\/0{background-color:#3b82f600}.bg-blue-500\\/10{background-color:#3b82f61a}.bg-blue-500\\/100{background-color:#3b82f6}.bg-blue-500\\/15{background-color:#3b82f626}.bg-blue-500\\/20{background-color:#3b82f633}.bg-blue-500\\/25{background-color:#3b82f640}.bg-blue-500\\/30{background-color:#3b82f64d}.bg-blue-500\\/35{background-color:#3b82f659}.bg-blue-500\\/40{background-color:#3b82f666}.bg-blue-500\\/45{background-color:#3b82f673}.bg-blue-500\\/5{background-color:#3b82f60d}.bg-blue-500\\/50{background-color:#3b82f680}.bg-blue-500\\/55{background-color:#3b82f68c}.bg-blue-500\\/60{background-color:#3b82f699}.bg-blue-500\\/65{background-color:#3b82f6a6}.bg-blue-500\\/70{background-color:#3b82f6b3}.bg-blue-500\\/75{background-color:#3b82f6bf}.bg-blue-500\\/80{background-color:#3b82f6cc}.bg-blue-500\\/85{background-color:#3b82f6d9}.bg-blue-500\\/90{background-color:#3b82f6e6}.bg-blue-500\\/95{background-color:#3b82f6f2}.bg-blue-600{--tw-bg-opacity:1;background-color:#2563eb;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-blue-900{--tw-bg-opacity:1;background-color:#1e3a8a;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.bg-blue-950{--tw-bg-opacity:1;background-color:#172554;background-color:rgb(23 37 84/var(--tw-bg-opacity,1))}.bg-current{background-color:currentColor}.bg-cyan-400{--tw-bg-opacity:1;background-color:#22d3ee;background-color:rgb(34 211 238/var(--tw-bg-opacity,1))}.bg-cyan-400\\/0{background-color:#22d3ee00}.bg-cyan-400\\/10{background-color:#22d3ee1a}.bg-cyan-400\\/100{background-color:#22d3ee}.bg-cyan-400\\/15{background-color:#22d3ee26}.bg-cyan-400\\/20{background-color:#22d3ee33}.bg-cyan-400\\/25{background-color:#22d3ee40}.bg-cyan-400\\/30{background-color:#22d3ee4d}.bg-cyan-400\\/35{background-color:#22d3ee59}.bg-cyan-400\\/40{background-color:#22d3ee66}.bg-cyan-400\\/45{background-color:#22d3ee73}.bg-cyan-400\\/5{background-color:#22d3ee0d}.bg-cyan-400\\/50{background-color:#22d3ee80}.bg-cyan-400\\/55{background-color:#22d3ee8c}.bg-cyan-400\\/60{background-color:#22d3ee99}.bg-cyan-400\\/65{background-color:#22d3eea6}.bg-cyan-400\\/70{background-color:#22d3eeb3}.bg-cyan-400\\/75{background-color:#22d3eebf}.bg-cyan-400\\/80{background-color:#22d3eecc}.bg-cyan-400\\/85{background-color:#22d3eed9}.bg-cyan-400\\/90{background-color:#22d3eee6}.bg-cyan-400\\/95{background-color:#22d3eef2}.bg-cyan-500{--tw-bg-opacity:1;background-color:#06b6d4;background-color:rgb(6 182 212/var(--tw-bg-opacity,1))}.bg-cyan-500\\/0{background-color:#06b6d400}.bg-cyan-500\\/10{background-color:#06b6d41a}.bg-cyan-500\\/100{background-color:#06b6d4}.bg-cyan-500\\/15{background-color:#06b6d426}.bg-cyan-500\\/20{background-color:#06b6d433}.bg-cyan-500\\/25{background-color:#06b6d440}.bg-cyan-500\\/30{background-color:#06b6d44d}.bg-cyan-500\\/35{background-color:#06b6d459}.bg-cyan-500\\/40{background-color:#06b6d466}.bg-cyan-500\\/45{background-color:#06b6d473}.bg-cyan-500\\/5{background-color:#06b6d40d}.bg-cyan-500\\/50{background-color:#06b6d480}.bg-cyan-500\\/55{background-color:#06b6d48c}.bg-cyan-500\\/60{background-color:#06b6d499}.bg-cyan-500\\/65{background-color:#06b6d4a6}.bg-cyan-500\\/70{background-color:#06b6d4b3}.bg-cyan-500\\/75{background-color:#06b6d4bf}.bg-cyan-500\\/80{background-color:#06b6d4cc}.bg-cyan-500\\/85{background-color:#06b6d4d9}.bg-cyan-500\\/90{background-color:#06b6d4e6}.bg-cyan-500\\/95{background-color:#06b6d4f2}.bg-emerald-400{--tw-bg-opacity:1;background-color:#34d399;background-color:rgb(52 211 153/var(--tw-bg-opacity,1))}.bg-emerald-400\\/0{background-color:#34d39900}.bg-emerald-400\\/10{background-color:#34d3991a}.bg-emerald-400\\/100{background-color:#34d399}.bg-emerald-400\\/15{background-color:#34d39926}.bg-emerald-400\\/20{background-color:#34d39933}.bg-emerald-400\\/25{background-color:#34d39940}.bg-emerald-400\\/30{background-color:#34d3994d}.bg-emerald-400\\/35{background-color:#34d39959}.bg-emerald-400\\/40{background-color:#34d39966}.bg-emerald-400\\/45{background-color:#34d39973}.bg-emerald-400\\/5{background-color:#34d3990d}.bg-emerald-400\\/50{background-color:#34d39980}.bg-emerald-400\\/55{background-color:#34d3998c}.bg-emerald-400\\/60{background-color:#34d39999}.bg-emerald-400\\/65{background-color:#34d399a6}.bg-emerald-400\\/70{background-color:#34d399b3}.bg-emerald-400\\/75{background-color:#34d399bf}.bg-emerald-400\\/80{background-color:#34d399cc}.bg-emerald-400\\/85{background-color:#34d399d9}.bg-emerald-400\\/90{background-color:#34d399e6}.bg-emerald-400\\/95{background-color:#34d399f2}.bg-emerald-500{--tw-bg-opacity:1;background-color:#10b981;background-color:rgb(16 185 129/var(--tw-bg-opacity,1))}.bg-emerald-500\\/0{background-color:#10b98100}.bg-emerald-500\\/10{background-color:#10b9811a}.bg-emerald-500\\/100{background-color:#10b981}.bg-emerald-500\\/15{background-color:#10b98126}.bg-emerald-500\\/20{background-color:#10b98133}.bg-emerald-500\\/25{background-color:#10b98140}.bg-emerald-500\\/30{background-color:#10b9814d}.bg-emerald-500\\/35{background-color:#10b98159}.bg-emerald-500\\/40{background-color:#10b98166}.bg-emerald-500\\/45{background-color:#10b98173}.bg-emerald-500\\/5{background-color:#10b9810d}.bg-emerald-500\\/50{background-color:#10b98180}.bg-emerald-500\\/55{background-color:#10b9818c}.bg-emerald-500\\/60{background-color:#10b98199}.bg-emerald-500\\/65{background-color:#10b981a6}.bg-emerald-500\\/70{background-color:#10b981b3}.bg-emerald-500\\/75{background-color:#10b981bf}.bg-emerald-500\\/80{background-color:#10b981cc}.bg-emerald-500\\/85{background-color:#10b981d9}.bg-emerald-500\\/90{background-color:#10b981e6}.bg-emerald-500\\/95{background-color:#10b981f2}.bg-fuchsia-400{--tw-bg-opacity:1;background-color:#e879f9;background-color:rgb(232 121 249/var(--tw-bg-opacity,1))}.bg-fuchsia-400\\/0{background-color:#e879f900}.bg-fuchsia-400\\/10{background-color:#e879f91a}.bg-fuchsia-400\\/100{background-color:#e879f9}.bg-fuchsia-400\\/15{background-color:#e879f926}.bg-fuchsia-400\\/20{background-color:#e879f933}.bg-fuchsia-400\\/25{background-color:#e879f940}.bg-fuchsia-400\\/30{background-color:#e879f94d}.bg-fuchsia-400\\/35{background-color:#e879f959}.bg-fuchsia-400\\/40{background-color:#e879f966}.bg-fuchsia-400\\/45{background-color:#e879f973}.bg-fuchsia-400\\/5{background-color:#e879f90d}.bg-fuchsia-400\\/50{background-color:#e879f980}.bg-fuchsia-400\\/55{background-color:#e879f98c}.bg-fuchsia-400\\/60{background-color:#e879f999}.bg-fuchsia-400\\/65{background-color:#e879f9a6}.bg-fuchsia-400\\/70{background-color:#e879f9b3}.bg-fuchsia-400\\/75{background-color:#e879f9bf}.bg-fuchsia-400\\/80{background-color:#e879f9cc}.bg-fuchsia-400\\/85{background-color:#e879f9d9}.bg-fuchsia-400\\/90{background-color:#e879f9e6}.bg-fuchsia-400\\/95{background-color:#e879f9f2}.bg-fuchsia-500{--tw-bg-opacity:1;background-color:#d946ef;background-color:rgb(217 70 239/var(--tw-bg-opacity,1))}.bg-fuchsia-500\\/0{background-color:#d946ef00}.bg-fuchsia-500\\/10{background-color:#d946ef1a}.bg-fuchsia-500\\/100{background-color:#d946ef}.bg-fuchsia-500\\/15{background-color:#d946ef26}.bg-fuchsia-500\\/20{background-color:#d946ef33}.bg-fuchsia-500\\/25{background-color:#d946ef40}.bg-fuchsia-500\\/30{background-color:#d946ef4d}.bg-fuchsia-500\\/35{background-color:#d946ef59}.bg-fuchsia-500\\/40{background-color:#d946ef66}.bg-fuchsia-500\\/45{background-color:#d946ef73}.bg-fuchsia-500\\/5{background-color:#d946ef0d}.bg-fuchsia-500\\/50{background-color:#d946ef80}.bg-fuchsia-500\\/55{background-color:#d946ef8c}.bg-fuchsia-500\\/60{background-color:#d946ef99}.bg-fuchsia-500\\/65{background-color:#d946efa6}.bg-fuchsia-500\\/70{background-color:#d946efb3}.bg-fuchsia-500\\/75{background-color:#d946efbf}.bg-fuchsia-500\\/80{background-color:#d946efcc}.bg-fuchsia-500\\/85{background-color:#d946efd9}.bg-fuchsia-500\\/90{background-color:#d946efe6}.bg-fuchsia-500\\/95{background-color:#d946eff2}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-100)/1);background-color:rgb(var(--color-gray-100)/var(--tw-bg-opacity,1))}.bg-gray-100\\/70{background-color:rgb(var(--color-gray-100)/.7)}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-200)/1);background-color:rgb(var(--color-gray-200)/var(--tw-bg-opacity,1))}.bg-gray-200\\/75{background-color:rgb(var(--color-gray-200)/.75)}.bg-gray-300{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-300)/1);background-color:rgb(var(--color-gray-300)/var(--tw-bg-opacity,1))}.bg-gray-400{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-400)/1);background-color:rgb(var(--color-gray-400)/var(--tw-bg-opacity,1))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-50)/1);background-color:rgb(var(--color-gray-50)/var(--tw-bg-opacity,1))}.bg-gray-50\\/50{background-color:rgb(var(--color-gray-50)/.5)}.bg-gray-500{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-500)/1);background-color:rgb(var(--color-gray-500)/var(--tw-bg-opacity,1))}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-800)/1);background-color:rgb(var(--color-gray-800)/var(--tw-bg-opacity,1))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-900)/1);background-color:rgb(var(--color-gray-900)/var(--tw-bg-opacity,1))}.bg-green-100{--tw-bg-opacity:1;background-color:#ccfbf1;background-color:rgb(204 251 241/var(--tw-bg-opacity,1))}.bg-green-400{--tw-bg-opacity:1;background-color:#2dd4bf;background-color:rgb(45 212 191/var(--tw-bg-opacity,1))}.bg-green-400\\/0{background-color:#2dd4bf00}.bg-green-400\\/10{background-color:#2dd4bf1a}.bg-green-400\\/100{background-color:#2dd4bf}.bg-green-400\\/15{background-color:#2dd4bf26}.bg-green-400\\/20{background-color:#2dd4bf33}.bg-green-400\\/25{background-color:#2dd4bf40}.bg-green-400\\/30{background-color:#2dd4bf4d}.bg-green-400\\/35{background-color:#2dd4bf59}.bg-green-400\\/40{background-color:#2dd4bf66}.bg-green-400\\/45{background-color:#2dd4bf73}.bg-green-400\\/5{background-color:#2dd4bf0d}.bg-green-400\\/50{background-color:#2dd4bf80}.bg-green-400\\/55{background-color:#2dd4bf8c}.bg-green-400\\/60{background-color:#2dd4bf99}.bg-green-400\\/65{background-color:#2dd4bfa6}.bg-green-400\\/70{background-color:#2dd4bfb3}.bg-green-400\\/75{background-color:#2dd4bfbf}.bg-green-400\\/80{background-color:#2dd4bfcc}.bg-green-400\\/85{background-color:#2dd4bfd9}.bg-green-400\\/90{background-color:#2dd4bfe6}.bg-green-400\\/95{background-color:#2dd4bff2}.bg-green-50{--tw-bg-opacity:1;background-color:#f0fdfa;background-color:rgb(240 253 250/var(--tw-bg-opacity,1))}.bg-green-500{--tw-bg-opacity:1;background-color:#14b8a6;background-color:rgb(20 184 166/var(--tw-bg-opacity,1))}.bg-green-500\\/0{background-color:#14b8a600}.bg-green-500\\/10{background-color:#14b8a61a}.bg-green-500\\/100{background-color:#14b8a6}.bg-green-500\\/15{background-color:#14b8a626}.bg-green-500\\/20{background-color:#14b8a633}.bg-green-500\\/25{background-color:#14b8a640}.bg-green-500\\/30{background-color:#14b8a64d}.bg-green-500\\/35{background-color:#14b8a659}.bg-green-500\\/40{background-color:#14b8a666}.bg-green-500\\/45{background-color:#14b8a673}.bg-green-500\\/5{background-color:#14b8a60d}.bg-green-500\\/50{background-color:#14b8a680}.bg-green-500\\/55{background-color:#14b8a68c}.bg-green-500\\/60{background-color:#14b8a699}.bg-green-500\\/65{background-color:#14b8a6a6}.bg-green-500\\/70{background-color:#14b8a6b3}.bg-green-500\\/75{background-color:#14b8a6bf}.bg-green-500\\/80{background-color:#14b8a6cc}.bg-green-500\\/85{background-color:#14b8a6d9}.bg-green-500\\/90{background-color:#14b8a6e6}.bg-green-500\\/95{background-color:#14b8a6f2}.bg-green-600{--tw-bg-opacity:1;background-color:#0d9488;background-color:rgb(13 148 136/var(--tw-bg-opacity,1))}.bg-green-900{--tw-bg-opacity:1;background-color:#134e4a;background-color:rgb(19 78 74/var(--tw-bg-opacity,1))}.bg-green-950{--tw-bg-opacity:1;background-color:#042f2e;background-color:rgb(4 47 46/var(--tw-bg-opacity,1))}.bg-indigo-400{--tw-bg-opacity:1;background-color:#818cf8;background-color:rgb(129 140 248/var(--tw-bg-opacity,1))}.bg-indigo-400\\/0{background-color:#818cf800}.bg-indigo-400\\/10{background-color:#818cf81a}.bg-indigo-400\\/100{background-color:#818cf8}.bg-indigo-400\\/15{background-color:#818cf826}.bg-indigo-400\\/20{background-color:#818cf833}.bg-indigo-400\\/25{background-color:#818cf840}.bg-indigo-400\\/30{background-color:#818cf84d}.bg-indigo-400\\/35{background-color:#818cf859}.bg-indigo-400\\/40{background-color:#818cf866}.bg-indigo-400\\/45{background-color:#818cf873}.bg-indigo-400\\/5{background-color:#818cf80d}.bg-indigo-400\\/50{background-color:#818cf880}.bg-indigo-400\\/55{background-color:#818cf88c}.bg-indigo-400\\/60{background-color:#818cf899}.bg-indigo-400\\/65{background-color:#818cf8a6}.bg-indigo-400\\/70{background-color:#818cf8b3}.bg-indigo-400\\/75{background-color:#818cf8bf}.bg-indigo-400\\/80{background-color:#818cf8cc}.bg-indigo-400\\/85{background-color:#818cf8d9}.bg-indigo-400\\/90{background-color:#818cf8e6}.bg-indigo-400\\/95{background-color:#818cf8f2}.bg-indigo-50{--tw-bg-opacity:1;background-color:#eef2ff;background-color:rgb(238 242 255/var(--tw-bg-opacity,1))}.bg-indigo-500{--tw-bg-opacity:1;background-color:#6366f1;background-color:rgb(99 102 241/var(--tw-bg-opacity,1))}.bg-indigo-500\\/0{background-color:#6366f100}.bg-indigo-500\\/10{background-color:#6366f11a}.bg-indigo-500\\/100{background-color:#6366f1}.bg-indigo-500\\/15{background-color:#6366f126}.bg-indigo-500\\/20{background-color:#6366f133}.bg-indigo-500\\/25{background-color:#6366f140}.bg-indigo-500\\/30{background-color:#6366f14d}.bg-indigo-500\\/35{background-color:#6366f159}.bg-indigo-500\\/40{background-color:#6366f166}.bg-indigo-500\\/45{background-color:#6366f173}.bg-indigo-500\\/5{background-color:#6366f10d}.bg-indigo-500\\/50{background-color:#6366f180}.bg-indigo-500\\/55{background-color:#6366f18c}.bg-indigo-500\\/60{background-color:#6366f199}.bg-indigo-500\\/65{background-color:#6366f1a6}.bg-indigo-500\\/70{background-color:#6366f1b3}.bg-indigo-500\\/75{background-color:#6366f1bf}.bg-indigo-500\\/80{background-color:#6366f1cc}.bg-indigo-500\\/85{background-color:#6366f1d9}.bg-indigo-500\\/90{background-color:#6366f1e6}.bg-indigo-500\\/95{background-color:#6366f1f2}.bg-indigo-600{--tw-bg-opacity:1;background-color:#4f46e5;background-color:rgb(79 70 229/var(--tw-bg-opacity,1))}.bg-inherit{background-color:inherit}.bg-lime-400{--tw-bg-opacity:1;background-color:#a3e635;background-color:rgb(163 230 53/var(--tw-bg-opacity,1))}.bg-lime-400\\/0{background-color:#a3e63500}.bg-lime-400\\/10{background-color:#a3e6351a}.bg-lime-400\\/100{background-color:#a3e635}.bg-lime-400\\/15{background-color:#a3e63526}.bg-lime-400\\/20{background-color:#a3e63533}.bg-lime-400\\/25{background-color:#a3e63540}.bg-lime-400\\/30{background-color:#a3e6354d}.bg-lime-400\\/35{background-color:#a3e63559}.bg-lime-400\\/40{background-color:#a3e63566}.bg-lime-400\\/45{background-color:#a3e63573}.bg-lime-400\\/5{background-color:#a3e6350d}.bg-lime-400\\/50{background-color:#a3e63580}.bg-lime-400\\/55{background-color:#a3e6358c}.bg-lime-400\\/60{background-color:#a3e63599}.bg-lime-400\\/65{background-color:#a3e635a6}.bg-lime-400\\/70{background-color:#a3e635b3}.bg-lime-400\\/75{background-color:#a3e635bf}.bg-lime-400\\/80{background-color:#a3e635cc}.bg-lime-400\\/85{background-color:#a3e635d9}.bg-lime-400\\/90{background-color:#a3e635e6}.bg-lime-400\\/95{background-color:#a3e635f2}.bg-lime-500{--tw-bg-opacity:1;background-color:#84cc16;background-color:rgb(132 204 22/var(--tw-bg-opacity,1))}.bg-lime-500\\/0{background-color:#84cc1600}.bg-lime-500\\/10{background-color:#84cc161a}.bg-lime-500\\/100{background-color:#84cc16}.bg-lime-500\\/15{background-color:#84cc1626}.bg-lime-500\\/20{background-color:#84cc1633}.bg-lime-500\\/25{background-color:#84cc1640}.bg-lime-500\\/30{background-color:#84cc164d}.bg-lime-500\\/35{background-color:#84cc1659}.bg-lime-500\\/40{background-color:#84cc1666}.bg-lime-500\\/45{background-color:#84cc1673}.bg-lime-500\\/5{background-color:#84cc160d}.bg-lime-500\\/50{background-color:#84cc1680}.bg-lime-500\\/55{background-color:#84cc168c}.bg-lime-500\\/60{background-color:#84cc1699}.bg-lime-500\\/65{background-color:#84cc16a6}.bg-lime-500\\/70{background-color:#84cc16b3}.bg-lime-500\\/75{background-color:#84cc16bf}.bg-lime-500\\/80{background-color:#84cc16cc}.bg-lime-500\\/85{background-color:#84cc16d9}.bg-lime-500\\/90{background-color:#84cc16e6}.bg-lime-500\\/95{background-color:#84cc16f2}.bg-orange-400{--tw-bg-opacity:1;background-color:#fb923c;background-color:rgb(251 146 60/var(--tw-bg-opacity,1))}.bg-orange-400\\/0{background-color:#fb923c00}.bg-orange-400\\/10{background-color:#fb923c1a}.bg-orange-400\\/100{background-color:#fb923c}.bg-orange-400\\/15{background-color:#fb923c26}.bg-orange-400\\/20{background-color:#fb923c33}.bg-orange-400\\/25{background-color:#fb923c40}.bg-orange-400\\/30{background-color:#fb923c4d}.bg-orange-400\\/35{background-color:#fb923c59}.bg-orange-400\\/40{background-color:#fb923c66}.bg-orange-400\\/45{background-color:#fb923c73}.bg-orange-400\\/5{background-color:#fb923c0d}.bg-orange-400\\/50{background-color:#fb923c80}.bg-orange-400\\/55{background-color:#fb923c8c}.bg-orange-400\\/60{background-color:#fb923c99}.bg-orange-400\\/65{background-color:#fb923ca6}.bg-orange-400\\/70{background-color:#fb923cb3}.bg-orange-400\\/75{background-color:#fb923cbf}.bg-orange-400\\/80{background-color:#fb923ccc}.bg-orange-400\\/85{background-color:#fb923cd9}.bg-orange-400\\/90{background-color:#fb923ce6}.bg-orange-400\\/95{background-color:#fb923cf2}.bg-orange-50{--tw-bg-opacity:1;background-color:#fff7ed;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.bg-orange-500{--tw-bg-opacity:1;background-color:#f97316;background-color:rgb(249 115 22/var(--tw-bg-opacity,1))}.bg-orange-500\\/0{background-color:#f9731600}.bg-orange-500\\/10{background-color:#f973161a}.bg-orange-500\\/100{background-color:#f97316}.bg-orange-500\\/15{background-color:#f9731626}.bg-orange-500\\/20{background-color:#f9731633}.bg-orange-500\\/25{background-color:#f9731640}.bg-orange-500\\/30{background-color:#f973164d}.bg-orange-500\\/35{background-color:#f9731659}.bg-orange-500\\/40{background-color:#f9731666}.bg-orange-500\\/45{background-color:#f9731673}.bg-orange-500\\/5{background-color:#f973160d}.bg-orange-500\\/50{background-color:#f9731680}.bg-orange-500\\/55{background-color:#f973168c}.bg-orange-500\\/60{background-color:#f9731699}.bg-orange-500\\/65{background-color:#f97316a6}.bg-orange-500\\/70{background-color:#f97316b3}.bg-orange-500\\/75{background-color:#f97316bf}.bg-orange-500\\/80{background-color:#f97316cc}.bg-orange-500\\/85{background-color:#f97316d9}.bg-orange-500\\/90{background-color:#f97316e6}.bg-orange-500\\/95{background-color:#f97316f2}.bg-pink-400{--tw-bg-opacity:1;background-color:#f472b6;background-color:rgb(244 114 182/var(--tw-bg-opacity,1))}.bg-pink-400\\/0{background-color:#f472b600}.bg-pink-400\\/10{background-color:#f472b61a}.bg-pink-400\\/100{background-color:#f472b6}.bg-pink-400\\/15{background-color:#f472b626}.bg-pink-400\\/20{background-color:#f472b633}.bg-pink-400\\/25{background-color:#f472b640}.bg-pink-400\\/30{background-color:#f472b64d}.bg-pink-400\\/35{background-color:#f472b659}.bg-pink-400\\/40{background-color:#f472b666}.bg-pink-400\\/45{background-color:#f472b673}.bg-pink-400\\/5{background-color:#f472b60d}.bg-pink-400\\/50{background-color:#f472b680}.bg-pink-400\\/55{background-color:#f472b68c}.bg-pink-400\\/60{background-color:#f472b699}.bg-pink-400\\/65{background-color:#f472b6a6}.bg-pink-400\\/70{background-color:#f472b6b3}.bg-pink-400\\/75{background-color:#f472b6bf}.bg-pink-400\\/80{background-color:#f472b6cc}.bg-pink-400\\/85{background-color:#f472b6d9}.bg-pink-400\\/90{background-color:#f472b6e6}.bg-pink-400\\/95{background-color:#f472b6f2}.bg-pink-500{--tw-bg-opacity:1;background-color:#ec4899;background-color:rgb(236 72 153/var(--tw-bg-opacity,1))}.bg-pink-500\\/0{background-color:#ec489900}.bg-pink-500\\/10{background-color:#ec48991a}.bg-pink-500\\/100{background-color:#ec4899}.bg-pink-500\\/15{background-color:#ec489926}.bg-pink-500\\/20{background-color:#ec489933}.bg-pink-500\\/25{background-color:#ec489940}.bg-pink-500\\/30{background-color:#ec48994d}.bg-pink-500\\/35{background-color:#ec489959}.bg-pink-500\\/40{background-color:#ec489966}.bg-pink-500\\/45{background-color:#ec489973}.bg-pink-500\\/5{background-color:#ec48990d}.bg-pink-500\\/50{background-color:#ec489980}.bg-pink-500\\/55{background-color:#ec48998c}.bg-pink-500\\/60{background-color:#ec489999}.bg-pink-500\\/65{background-color:#ec4899a6}.bg-pink-500\\/70{background-color:#ec4899b3}.bg-pink-500\\/75{background-color:#ec4899bf}.bg-pink-500\\/80{background-color:#ec4899cc}.bg-pink-500\\/85{background-color:#ec4899d9}.bg-pink-500\\/90{background-color:#ec4899e6}.bg-pink-500\\/95{background-color:#ec4899f2}.bg-primary-100{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-100)/1);background-color:rgb(var(--color-primary-100)/var(--tw-bg-opacity,1))}.bg-primary-100\\/0{background-color:rgb(var(--color-primary-100)/0)}.bg-primary-100\\/10{background-color:rgb(var(--color-primary-100)/.1)}.bg-primary-100\\/100{background-color:rgb(var(--color-primary-100)/1)}.bg-primary-100\\/15{background-color:rgb(var(--color-primary-100)/.15)}.bg-primary-100\\/20{background-color:rgb(var(--color-primary-100)/.2)}.bg-primary-100\\/25{background-color:rgb(var(--color-primary-100)/.25)}.bg-primary-100\\/30{background-color:rgb(var(--color-primary-100)/.3)}.bg-primary-100\\/35{background-color:rgb(var(--color-primary-100)/.35)}.bg-primary-100\\/40{background-color:rgb(var(--color-primary-100)/.4)}.bg-primary-100\\/45{background-color:rgb(var(--color-primary-100)/.45)}.bg-primary-100\\/5{background-color:rgb(var(--color-primary-100)/.05)}.bg-primary-100\\/50{background-color:rgb(var(--color-primary-100)/.5)}.bg-primary-100\\/55{background-color:rgb(var(--color-primary-100)/.55)}.bg-primary-100\\/60{background-color:rgb(var(--color-primary-100)/.6)}.bg-primary-100\\/65{background-color:rgb(var(--color-primary-100)/.65)}.bg-primary-100\\/70{background-color:rgb(var(--color-primary-100)/.7)}.bg-primary-100\\/75{background-color:rgb(var(--color-primary-100)/.75)}.bg-primary-100\\/80{background-color:rgb(var(--color-primary-100)/.8)}.bg-primary-100\\/85{background-color:rgb(var(--color-primary-100)/.85)}.bg-primary-100\\/90{background-color:rgb(var(--color-primary-100)/.9)}.bg-primary-100\\/95{background-color:rgb(var(--color-primary-100)/.95)}.bg-primary-400{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-400)/1);background-color:rgb(var(--color-primary-400)/var(--tw-bg-opacity,1))}.bg-primary-400\\/0{background-color:rgb(var(--color-primary-400)/0)}.bg-primary-400\\/10{background-color:rgb(var(--color-primary-400)/.1)}.bg-primary-400\\/100{background-color:rgb(var(--color-primary-400)/1)}.bg-primary-400\\/15{background-color:rgb(var(--color-primary-400)/.15)}.bg-primary-400\\/20{background-color:rgb(var(--color-primary-400)/.2)}.bg-primary-400\\/25{background-color:rgb(var(--color-primary-400)/.25)}.bg-primary-400\\/30{background-color:rgb(var(--color-primary-400)/.3)}.bg-primary-400\\/35{background-color:rgb(var(--color-primary-400)/.35)}.bg-primary-400\\/40{background-color:rgb(var(--color-primary-400)/.4)}.bg-primary-400\\/45{background-color:rgb(var(--color-primary-400)/.45)}.bg-primary-400\\/5{background-color:rgb(var(--color-primary-400)/.05)}.bg-primary-400\\/50{background-color:rgb(var(--color-primary-400)/.5)}.bg-primary-400\\/55{background-color:rgb(var(--color-primary-400)/.55)}.bg-primary-400\\/60{background-color:rgb(var(--color-primary-400)/.6)}.bg-primary-400\\/65{background-color:rgb(var(--color-primary-400)/.65)}.bg-primary-400\\/70{background-color:rgb(var(--color-primary-400)/.7)}.bg-primary-400\\/75{background-color:rgb(var(--color-primary-400)/.75)}.bg-primary-400\\/80{background-color:rgb(var(--color-primary-400)/.8)}.bg-primary-400\\/85{background-color:rgb(var(--color-primary-400)/.85)}.bg-primary-400\\/90{background-color:rgb(var(--color-primary-400)/.9)}.bg-primary-400\\/95{background-color:rgb(var(--color-primary-400)/.95)}.bg-primary-50{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-50)/1);background-color:rgb(var(--color-primary-50)/var(--tw-bg-opacity,1))}.bg-primary-50\\/0{background-color:rgb(var(--color-primary-50)/0)}.bg-primary-50\\/10{background-color:rgb(var(--color-primary-50)/.1)}.bg-primary-50\\/100{background-color:rgb(var(--color-primary-50)/1)}.bg-primary-50\\/15{background-color:rgb(var(--color-primary-50)/.15)}.bg-primary-50\\/20{background-color:rgb(var(--color-primary-50)/.2)}.bg-primary-50\\/25{background-color:rgb(var(--color-primary-50)/.25)}.bg-primary-50\\/30{background-color:rgb(var(--color-primary-50)/.3)}.bg-primary-50\\/35{background-color:rgb(var(--color-primary-50)/.35)}.bg-primary-50\\/40{background-color:rgb(var(--color-primary-50)/.4)}.bg-primary-50\\/45{background-color:rgb(var(--color-primary-50)/.45)}.bg-primary-50\\/5{background-color:rgb(var(--color-primary-50)/.05)}.bg-primary-50\\/50{background-color:rgb(var(--color-primary-50)/.5)}.bg-primary-50\\/55{background-color:rgb(var(--color-primary-50)/.55)}.bg-primary-50\\/60{background-color:rgb(var(--color-primary-50)/.6)}.bg-primary-50\\/65{background-color:rgb(var(--color-primary-50)/.65)}.bg-primary-50\\/70{background-color:rgb(var(--color-primary-50)/.7)}.bg-primary-50\\/75{background-color:rgb(var(--color-primary-50)/.75)}.bg-primary-50\\/80{background-color:rgb(var(--color-primary-50)/.8)}.bg-primary-50\\/85{background-color:rgb(var(--color-primary-50)/.85)}.bg-primary-50\\/90{background-color:rgb(var(--color-primary-50)/.9)}.bg-primary-50\\/95{background-color:rgb(var(--color-primary-50)/.95)}.bg-primary-500{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-500)/1);background-color:rgb(var(--color-primary-500)/var(--tw-bg-opacity,1))}.bg-primary-500\\/0{background-color:rgb(var(--color-primary-500)/0)}.bg-primary-500\\/10{background-color:rgb(var(--color-primary-500)/.1)}.bg-primary-500\\/100{background-color:rgb(var(--color-primary-500)/1)}.bg-primary-500\\/15{background-color:rgb(var(--color-primary-500)/.15)}.bg-primary-500\\/20{background-color:rgb(var(--color-primary-500)/.2)}.bg-primary-500\\/25{background-color:rgb(var(--color-primary-500)/.25)}.bg-primary-500\\/30{background-color:rgb(var(--color-primary-500)/.3)}.bg-primary-500\\/35{background-color:rgb(var(--color-primary-500)/.35)}.bg-primary-500\\/40{background-color:rgb(var(--color-primary-500)/.4)}.bg-primary-500\\/45{background-color:rgb(var(--color-primary-500)/.45)}.bg-primary-500\\/5{background-color:rgb(var(--color-primary-500)/.05)}.bg-primary-500\\/50{background-color:rgb(var(--color-primary-500)/.5)}.bg-primary-500\\/55{background-color:rgb(var(--color-primary-500)/.55)}.bg-primary-500\\/60{background-color:rgb(var(--color-primary-500)/.6)}.bg-primary-500\\/65{background-color:rgb(var(--color-primary-500)/.65)}.bg-primary-500\\/70{background-color:rgb(var(--color-primary-500)/.7)}.bg-primary-500\\/75{background-color:rgb(var(--color-primary-500)/.75)}.bg-primary-500\\/80{background-color:rgb(var(--color-primary-500)/.8)}.bg-primary-500\\/85{background-color:rgb(var(--color-primary-500)/.85)}.bg-primary-500\\/90{background-color:rgb(var(--color-primary-500)/.9)}.bg-primary-500\\/95{background-color:rgb(var(--color-primary-500)/.95)}.bg-primary-600{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-600)/1);background-color:rgb(var(--color-primary-600)/var(--tw-bg-opacity,1))}.bg-primary-600\\/0{background-color:rgb(var(--color-primary-600)/0)}.bg-primary-600\\/10{background-color:rgb(var(--color-primary-600)/.1)}.bg-primary-600\\/100{background-color:rgb(var(--color-primary-600)/1)}.bg-primary-600\\/15{background-color:rgb(var(--color-primary-600)/.15)}.bg-primary-600\\/20{background-color:rgb(var(--color-primary-600)/.2)}.bg-primary-600\\/25{background-color:rgb(var(--color-primary-600)/.25)}.bg-primary-600\\/30{background-color:rgb(var(--color-primary-600)/.3)}.bg-primary-600\\/35{background-color:rgb(var(--color-primary-600)/.35)}.bg-primary-600\\/40{background-color:rgb(var(--color-primary-600)/.4)}.bg-primary-600\\/45{background-color:rgb(var(--color-primary-600)/.45)}.bg-primary-600\\/5{background-color:rgb(var(--color-primary-600)/.05)}.bg-primary-600\\/50{background-color:rgb(var(--color-primary-600)/.5)}.bg-primary-600\\/55{background-color:rgb(var(--color-primary-600)/.55)}.bg-primary-600\\/60{background-color:rgb(var(--color-primary-600)/.6)}.bg-primary-600\\/65{background-color:rgb(var(--color-primary-600)/.65)}.bg-primary-600\\/70{background-color:rgb(var(--color-primary-600)/.7)}.bg-primary-600\\/75{background-color:rgb(var(--color-primary-600)/.75)}.bg-primary-600\\/80{background-color:rgb(var(--color-primary-600)/.8)}.bg-primary-600\\/85{background-color:rgb(var(--color-primary-600)/.85)}.bg-primary-600\\/90{background-color:rgb(var(--color-primary-600)/.9)}.bg-primary-600\\/95{background-color:rgb(var(--color-primary-600)/.95)}.bg-primary-900{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-900)/1);background-color:rgb(var(--color-primary-900)/var(--tw-bg-opacity,1))}.bg-primary-900\\/0{background-color:rgb(var(--color-primary-900)/0)}.bg-primary-900\\/10{background-color:rgb(var(--color-primary-900)/.1)}.bg-primary-900\\/100{background-color:rgb(var(--color-primary-900)/1)}.bg-primary-900\\/15{background-color:rgb(var(--color-primary-900)/.15)}.bg-primary-900\\/20{background-color:rgb(var(--color-primary-900)/.2)}.bg-primary-900\\/25{background-color:rgb(var(--color-primary-900)/.25)}.bg-primary-900\\/30{background-color:rgb(var(--color-primary-900)/.3)}.bg-primary-900\\/35{background-color:rgb(var(--color-primary-900)/.35)}.bg-primary-900\\/40{background-color:rgb(var(--color-primary-900)/.4)}.bg-primary-900\\/45{background-color:rgb(var(--color-primary-900)/.45)}.bg-primary-900\\/5{background-color:rgb(var(--color-primary-900)/.05)}.bg-primary-900\\/50{background-color:rgb(var(--color-primary-900)/.5)}.bg-primary-900\\/55{background-color:rgb(var(--color-primary-900)/.55)}.bg-primary-900\\/60{background-color:rgb(var(--color-primary-900)/.6)}.bg-primary-900\\/65{background-color:rgb(var(--color-primary-900)/.65)}.bg-primary-900\\/70{background-color:rgb(var(--color-primary-900)/.7)}.bg-primary-900\\/75{background-color:rgb(var(--color-primary-900)/.75)}.bg-primary-900\\/80{background-color:rgb(var(--color-primary-900)/.8)}.bg-primary-900\\/85{background-color:rgb(var(--color-primary-900)/.85)}.bg-primary-900\\/90{background-color:rgb(var(--color-primary-900)/.9)}.bg-primary-900\\/95{background-color:rgb(var(--color-primary-900)/.95)}.bg-primary-950{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-950)/1);background-color:rgb(var(--color-primary-950)/var(--tw-bg-opacity,1))}.bg-primary-950\\/0{background-color:rgb(var(--color-primary-950)/0)}.bg-primary-950\\/10{background-color:rgb(var(--color-primary-950)/.1)}.bg-primary-950\\/100{background-color:rgb(var(--color-primary-950)/1)}.bg-primary-950\\/15{background-color:rgb(var(--color-primary-950)/.15)}.bg-primary-950\\/20{background-color:rgb(var(--color-primary-950)/.2)}.bg-primary-950\\/25{background-color:rgb(var(--color-primary-950)/.25)}.bg-primary-950\\/30{background-color:rgb(var(--color-primary-950)/.3)}.bg-primary-950\\/35{background-color:rgb(var(--color-primary-950)/.35)}.bg-primary-950\\/40{background-color:rgb(var(--color-primary-950)/.4)}.bg-primary-950\\/45{background-color:rgb(var(--color-primary-950)/.45)}.bg-primary-950\\/5{background-color:rgb(var(--color-primary-950)/.05)}.bg-primary-950\\/50{background-color:rgb(var(--color-primary-950)/.5)}.bg-primary-950\\/55{background-color:rgb(var(--color-primary-950)/.55)}.bg-primary-950\\/60{background-color:rgb(var(--color-primary-950)/.6)}.bg-primary-950\\/65{background-color:rgb(var(--color-primary-950)/.65)}.bg-primary-950\\/70{background-color:rgb(var(--color-primary-950)/.7)}.bg-primary-950\\/75{background-color:rgb(var(--color-primary-950)/.75)}.bg-primary-950\\/80{background-color:rgb(var(--color-primary-950)/.8)}.bg-primary-950\\/85{background-color:rgb(var(--color-primary-950)/.85)}.bg-primary-950\\/90{background-color:rgb(var(--color-primary-950)/.9)}.bg-primary-950\\/95{background-color:rgb(var(--color-primary-950)/.95)}.bg-purple-400{--tw-bg-opacity:1;background-color:#c084fc;background-color:rgb(192 132 252/var(--tw-bg-opacity,1))}.bg-purple-400\\/0{background-color:#c084fc00}.bg-purple-400\\/10{background-color:#c084fc1a}.bg-purple-400\\/100{background-color:#c084fc}.bg-purple-400\\/15{background-color:#c084fc26}.bg-purple-400\\/20{background-color:#c084fc33}.bg-purple-400\\/25{background-color:#c084fc40}.bg-purple-400\\/30{background-color:#c084fc4d}.bg-purple-400\\/35{background-color:#c084fc59}.bg-purple-400\\/40{background-color:#c084fc66}.bg-purple-400\\/45{background-color:#c084fc73}.bg-purple-400\\/5{background-color:#c084fc0d}.bg-purple-400\\/50{background-color:#c084fc80}.bg-purple-400\\/55{background-color:#c084fc8c}.bg-purple-400\\/60{background-color:#c084fc99}.bg-purple-400\\/65{background-color:#c084fca6}.bg-purple-400\\/70{background-color:#c084fcb3}.bg-purple-400\\/75{background-color:#c084fcbf}.bg-purple-400\\/80{background-color:#c084fccc}.bg-purple-400\\/85{background-color:#c084fcd9}.bg-purple-400\\/90{background-color:#c084fce6}.bg-purple-400\\/95{background-color:#c084fcf2}.bg-purple-500{--tw-bg-opacity:1;background-color:#a855f7;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.bg-purple-500\\/0{background-color:#a855f700}.bg-purple-500\\/10{background-color:#a855f71a}.bg-purple-500\\/100{background-color:#a855f7}.bg-purple-500\\/15{background-color:#a855f726}.bg-purple-500\\/20{background-color:#a855f733}.bg-purple-500\\/25{background-color:#a855f740}.bg-purple-500\\/30{background-color:#a855f74d}.bg-purple-500\\/35{background-color:#a855f759}.bg-purple-500\\/40{background-color:#a855f766}.bg-purple-500\\/45{background-color:#a855f773}.bg-purple-500\\/5{background-color:#a855f70d}.bg-purple-500\\/50{background-color:#a855f780}.bg-purple-500\\/55{background-color:#a855f78c}.bg-purple-500\\/60{background-color:#a855f799}.bg-purple-500\\/65{background-color:#a855f7a6}.bg-purple-500\\/70{background-color:#a855f7b3}.bg-purple-500\\/75{background-color:#a855f7bf}.bg-purple-500\\/80{background-color:#a855f7cc}.bg-purple-500\\/85{background-color:#a855f7d9}.bg-purple-500\\/90{background-color:#a855f7e6}.bg-purple-500\\/95{background-color:#a855f7f2}.bg-red-100{--tw-bg-opacity:1;background-color:#fee2e2;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.bg-red-400{--tw-bg-opacity:1;background-color:#f87171;background-color:rgb(248 113 113/var(--tw-bg-opacity,1))}.bg-red-400\\/0{background-color:#f8717100}.bg-red-400\\/10{background-color:#f871711a}.bg-red-400\\/100{background-color:#f87171}.bg-red-400\\/15{background-color:#f8717126}.bg-red-400\\/20{background-color:#f8717133}.bg-red-400\\/25{background-color:#f8717140}.bg-red-400\\/30{background-color:#f871714d}.bg-red-400\\/35{background-color:#f8717159}.bg-red-400\\/40{background-color:#f8717166}.bg-red-400\\/45{background-color:#f8717173}.bg-red-400\\/5{background-color:#f871710d}.bg-red-400\\/50{background-color:#f8717180}.bg-red-400\\/55{background-color:#f871718c}.bg-red-400\\/60{background-color:#f8717199}.bg-red-400\\/65{background-color:#f87171a6}.bg-red-400\\/70{background-color:#f87171b3}.bg-red-400\\/75{background-color:#f87171bf}.bg-red-400\\/80{background-color:#f87171cc}.bg-red-400\\/85{background-color:#f87171d9}.bg-red-400\\/90{background-color:#f87171e6}.bg-red-400\\/95{background-color:#f87171f2}.bg-red-50{--tw-bg-opacity:1;background-color:#fef2f2;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-red-500{--tw-bg-opacity:1;background-color:#ef4444;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-red-500\\/0{background-color:#ef444400}.bg-red-500\\/10{background-color:#ef44441a}.bg-red-500\\/100{background-color:#ef4444}.bg-red-500\\/15{background-color:#ef444426}.bg-red-500\\/20{background-color:#ef444433}.bg-red-500\\/25{background-color:#ef444440}.bg-red-500\\/30{background-color:#ef44444d}.bg-red-500\\/35{background-color:#ef444459}.bg-red-500\\/40{background-color:#ef444466}.bg-red-500\\/45{background-color:#ef444473}.bg-red-500\\/5{background-color:#ef44440d}.bg-red-500\\/50{background-color:#ef444480}.bg-red-500\\/55{background-color:#ef44448c}.bg-red-500\\/60{background-color:#ef444499}.bg-red-500\\/65{background-color:#ef4444a6}.bg-red-500\\/70{background-color:#ef4444b3}.bg-red-500\\/75{background-color:#ef4444bf}.bg-red-500\\/80{background-color:#ef4444cc}.bg-red-500\\/85{background-color:#ef4444d9}.bg-red-500\\/90{background-color:#ef4444e6}.bg-red-500\\/95{background-color:#ef4444f2}.bg-red-600{--tw-bg-opacity:1;background-color:#dc2626;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.bg-red-900{--tw-bg-opacity:1;background-color:#7f1d1d;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.bg-red-950{--tw-bg-opacity:1;background-color:#450a0a;background-color:rgb(69 10 10/var(--tw-bg-opacity,1))}.bg-rose-100{--tw-bg-opacity:1;background-color:#ffe4e6;background-color:rgb(255 228 230/var(--tw-bg-opacity,1))}.bg-rose-400{--tw-bg-opacity:1;background-color:#fb7185;background-color:rgb(251 113 133/var(--tw-bg-opacity,1))}.bg-rose-400\\/0{background-color:#fb718500}.bg-rose-400\\/10{background-color:#fb71851a}.bg-rose-400\\/100{background-color:#fb7185}.bg-rose-400\\/15{background-color:#fb718526}.bg-rose-400\\/20{background-color:#fb718533}.bg-rose-400\\/25{background-color:#fb718540}.bg-rose-400\\/30{background-color:#fb71854d}.bg-rose-400\\/35{background-color:#fb718559}.bg-rose-400\\/40{background-color:#fb718566}.bg-rose-400\\/45{background-color:#fb718573}.bg-rose-400\\/5{background-color:#fb71850d}.bg-rose-400\\/50{background-color:#fb718580}.bg-rose-400\\/55{background-color:#fb71858c}.bg-rose-400\\/60{background-color:#fb718599}.bg-rose-400\\/65{background-color:#fb7185a6}.bg-rose-400\\/70{background-color:#fb7185b3}.bg-rose-400\\/75{background-color:#fb7185bf}.bg-rose-400\\/80{background-color:#fb7185cc}.bg-rose-400\\/85{background-color:#fb7185d9}.bg-rose-400\\/90{background-color:#fb7185e6}.bg-rose-400\\/95{background-color:#fb7185f2}.bg-rose-50{--tw-bg-opacity:1;background-color:#fff1f2;background-color:rgb(255 241 242/var(--tw-bg-opacity,1))}.bg-rose-500{--tw-bg-opacity:1;background-color:#f43f5e;background-color:rgb(244 63 94/var(--tw-bg-opacity,1))}.bg-rose-500\\/0{background-color:#f43f5e00}.bg-rose-500\\/10{background-color:#f43f5e1a}.bg-rose-500\\/100{background-color:#f43f5e}.bg-rose-500\\/15{background-color:#f43f5e26}.bg-rose-500\\/20{background-color:#f43f5e33}.bg-rose-500\\/25{background-color:#f43f5e40}.bg-rose-500\\/30{background-color:#f43f5e4d}.bg-rose-500\\/35{background-color:#f43f5e59}.bg-rose-500\\/40{background-color:#f43f5e66}.bg-rose-500\\/45{background-color:#f43f5e73}.bg-rose-500\\/5{background-color:#f43f5e0d}.bg-rose-500\\/50{background-color:#f43f5e80}.bg-rose-500\\/55{background-color:#f43f5e8c}.bg-rose-500\\/60{background-color:#f43f5e99}.bg-rose-500\\/65{background-color:#f43f5ea6}.bg-rose-500\\/70{background-color:#f43f5eb3}.bg-rose-500\\/75{background-color:#f43f5ebf}.bg-rose-500\\/80{background-color:#f43f5ecc}.bg-rose-500\\/85{background-color:#f43f5ed9}.bg-rose-500\\/90{background-color:#f43f5ee6}.bg-rose-500\\/95{background-color:#f43f5ef2}.bg-rose-600{--tw-bg-opacity:1;background-color:#e11d48;background-color:rgb(225 29 72/var(--tw-bg-opacity,1))}.bg-rose-900{--tw-bg-opacity:1;background-color:#881337;background-color:rgb(136 19 55/var(--tw-bg-opacity,1))}.bg-rose-950{--tw-bg-opacity:1;background-color:#4c0519;background-color:rgb(76 5 25/var(--tw-bg-opacity,1))}.bg-sky-400{--tw-bg-opacity:1;background-color:#38bdf8;background-color:rgb(56 189 248/var(--tw-bg-opacity,1))}.bg-sky-400\\/0{background-color:#38bdf800}.bg-sky-400\\/10{background-color:#38bdf81a}.bg-sky-400\\/100{background-color:#38bdf8}.bg-sky-400\\/15{background-color:#38bdf826}.bg-sky-400\\/20{background-color:#38bdf833}.bg-sky-400\\/25{background-color:#38bdf840}.bg-sky-400\\/30{background-color:#38bdf84d}.bg-sky-400\\/35{background-color:#38bdf859}.bg-sky-400\\/40{background-color:#38bdf866}.bg-sky-400\\/45{background-color:#38bdf873}.bg-sky-400\\/5{background-color:#38bdf80d}.bg-sky-400\\/50{background-color:#38bdf880}.bg-sky-400\\/55{background-color:#38bdf88c}.bg-sky-400\\/60{background-color:#38bdf899}.bg-sky-400\\/65{background-color:#38bdf8a6}.bg-sky-400\\/70{background-color:#38bdf8b3}.bg-sky-400\\/75{background-color:#38bdf8bf}.bg-sky-400\\/80{background-color:#38bdf8cc}.bg-sky-400\\/85{background-color:#38bdf8d9}.bg-sky-400\\/90{background-color:#38bdf8e6}.bg-sky-400\\/95{background-color:#38bdf8f2}.bg-sky-500{--tw-bg-opacity:1;background-color:#0ea5e9;background-color:rgb(14 165 233/var(--tw-bg-opacity,1))}.bg-sky-500\\/0{background-color:#0ea5e900}.bg-sky-500\\/10{background-color:#0ea5e91a}.bg-sky-500\\/100{background-color:#0ea5e9}.bg-sky-500\\/15{background-color:#0ea5e926}.bg-sky-500\\/20{background-color:#0ea5e933}.bg-sky-500\\/25{background-color:#0ea5e940}.bg-sky-500\\/30{background-color:#0ea5e94d}.bg-sky-500\\/35{background-color:#0ea5e959}.bg-sky-500\\/40{background-color:#0ea5e966}.bg-sky-500\\/45{background-color:#0ea5e973}.bg-sky-500\\/5{background-color:#0ea5e90d}.bg-sky-500\\/50{background-color:#0ea5e980}.bg-sky-500\\/55{background-color:#0ea5e98c}.bg-sky-500\\/60{background-color:#0ea5e999}.bg-sky-500\\/65{background-color:#0ea5e9a6}.bg-sky-500\\/70{background-color:#0ea5e9b3}.bg-sky-500\\/75{background-color:#0ea5e9bf}.bg-sky-500\\/80{background-color:#0ea5e9cc}.bg-sky-500\\/85{background-color:#0ea5e9d9}.bg-sky-500\\/90{background-color:#0ea5e9e6}.bg-sky-500\\/95{background-color:#0ea5e9f2}.bg-stone-50{--tw-bg-opacity:1;background-color:#fafaf9;background-color:rgb(250 250 249/var(--tw-bg-opacity,1))}.bg-teal-100{--tw-bg-opacity:1;background-color:#ccfbf1;background-color:rgb(204 251 241/var(--tw-bg-opacity,1))}.bg-teal-400{--tw-bg-opacity:1;background-color:#2dd4bf;background-color:rgb(45 212 191/var(--tw-bg-opacity,1))}.bg-teal-400\\/0{background-color:#2dd4bf00}.bg-teal-400\\/10{background-color:#2dd4bf1a}.bg-teal-400\\/100{background-color:#2dd4bf}.bg-teal-400\\/15{background-color:#2dd4bf26}.bg-teal-400\\/20{background-color:#2dd4bf33}.bg-teal-400\\/25{background-color:#2dd4bf40}.bg-teal-400\\/30{background-color:#2dd4bf4d}.bg-teal-400\\/35{background-color:#2dd4bf59}.bg-teal-400\\/40{background-color:#2dd4bf66}.bg-teal-400\\/45{background-color:#2dd4bf73}.bg-teal-400\\/5{background-color:#2dd4bf0d}.bg-teal-400\\/50{background-color:#2dd4bf80}.bg-teal-400\\/55{background-color:#2dd4bf8c}.bg-teal-400\\/60{background-color:#2dd4bf99}.bg-teal-400\\/65{background-color:#2dd4bfa6}.bg-teal-400\\/70{background-color:#2dd4bfb3}.bg-teal-400\\/75{background-color:#2dd4bfbf}.bg-teal-400\\/80{background-color:#2dd4bfcc}.bg-teal-400\\/85{background-color:#2dd4bfd9}.bg-teal-400\\/90{background-color:#2dd4bfe6}.bg-teal-400\\/95{background-color:#2dd4bff2}.bg-teal-50{--tw-bg-opacity:1;background-color:#f0fdfa;background-color:rgb(240 253 250/var(--tw-bg-opacity,1))}.bg-teal-500{--tw-bg-opacity:1;background-color:#14b8a6;background-color:rgb(20 184 166/var(--tw-bg-opacity,1))}.bg-teal-500\\/0{background-color:#14b8a600}.bg-teal-500\\/10{background-color:#14b8a61a}.bg-teal-500\\/100{background-color:#14b8a6}.bg-teal-500\\/15{background-color:#14b8a626}.bg-teal-500\\/20{background-color:#14b8a633}.bg-teal-500\\/25{background-color:#14b8a640}.bg-teal-500\\/30{background-color:#14b8a64d}.bg-teal-500\\/35{background-color:#14b8a659}.bg-teal-500\\/40{background-color:#14b8a666}.bg-teal-500\\/45{background-color:#14b8a673}.bg-teal-500\\/5{background-color:#14b8a60d}.bg-teal-500\\/50{background-color:#14b8a680}.bg-teal-500\\/55{background-color:#14b8a68c}.bg-teal-500\\/60{background-color:#14b8a699}.bg-teal-500\\/65{background-color:#14b8a6a6}.bg-teal-500\\/70{background-color:#14b8a6b3}.bg-teal-500\\/75{background-color:#14b8a6bf}.bg-teal-500\\/80{background-color:#14b8a6cc}.bg-teal-500\\/85{background-color:#14b8a6d9}.bg-teal-500\\/90{background-color:#14b8a6e6}.bg-teal-500\\/95{background-color:#14b8a6f2}.bg-teal-600{--tw-bg-opacity:1;background-color:#0d9488;background-color:rgb(13 148 136/var(--tw-bg-opacity,1))}.bg-teal-900{--tw-bg-opacity:1;background-color:#134e4a;background-color:rgb(19 78 74/var(--tw-bg-opacity,1))}.bg-teal-950{--tw-bg-opacity:1;background-color:#042f2e;background-color:rgb(4 47 46/var(--tw-bg-opacity,1))}.bg-transparent{background-color:initial}.bg-violet-400{--tw-bg-opacity:1;background-color:#a78bfa;background-color:rgb(167 139 250/var(--tw-bg-opacity,1))}.bg-violet-400\\/0{background-color:#a78bfa00}.bg-violet-400\\/10{background-color:#a78bfa1a}.bg-violet-400\\/100{background-color:#a78bfa}.bg-violet-400\\/15{background-color:#a78bfa26}.bg-violet-400\\/20{background-color:#a78bfa33}.bg-violet-400\\/25{background-color:#a78bfa40}.bg-violet-400\\/30{background-color:#a78bfa4d}.bg-violet-400\\/35{background-color:#a78bfa59}.bg-violet-400\\/40{background-color:#a78bfa66}.bg-violet-400\\/45{background-color:#a78bfa73}.bg-violet-400\\/5{background-color:#a78bfa0d}.bg-violet-400\\/50{background-color:#a78bfa80}.bg-violet-400\\/55{background-color:#a78bfa8c}.bg-violet-400\\/60{background-color:#a78bfa99}.bg-violet-400\\/65{background-color:#a78bfaa6}.bg-violet-400\\/70{background-color:#a78bfab3}.bg-violet-400\\/75{background-color:#a78bfabf}.bg-violet-400\\/80{background-color:#a78bfacc}.bg-violet-400\\/85{background-color:#a78bfad9}.bg-violet-400\\/90{background-color:#a78bfae6}.bg-violet-400\\/95{background-color:#a78bfaf2}.bg-violet-500{--tw-bg-opacity:1;background-color:#8b5cf6;background-color:rgb(139 92 246/var(--tw-bg-opacity,1))}.bg-violet-500\\/0{background-color:#8b5cf600}.bg-violet-500\\/10{background-color:#8b5cf61a}.bg-violet-500\\/100{background-color:#8b5cf6}.bg-violet-500\\/15{background-color:#8b5cf626}.bg-violet-500\\/20{background-color:#8b5cf633}.bg-violet-500\\/25{background-color:#8b5cf640}.bg-violet-500\\/30{background-color:#8b5cf64d}.bg-violet-500\\/35{background-color:#8b5cf659}.bg-violet-500\\/40{background-color:#8b5cf666}.bg-violet-500\\/45{background-color:#8b5cf673}.bg-violet-500\\/5{background-color:#8b5cf60d}.bg-violet-500\\/50{background-color:#8b5cf680}.bg-violet-500\\/55{background-color:#8b5cf68c}.bg-violet-500\\/60{background-color:#8b5cf699}.bg-violet-500\\/65{background-color:#8b5cf6a6}.bg-violet-500\\/70{background-color:#8b5cf6b3}.bg-violet-500\\/75{background-color:#8b5cf6bf}.bg-violet-500\\/80{background-color:#8b5cf6cc}.bg-violet-500\\/85{background-color:#8b5cf6d9}.bg-violet-500\\/90{background-color:#8b5cf6e6}.bg-violet-500\\/95{background-color:#8b5cf6f2}.bg-white{--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\\/70{background-color:#ffffffb3}.bg-yellow-400{--tw-bg-opacity:1;background-color:#fbbf24;background-color:rgb(251 191 36/var(--tw-bg-opacity,1))}.bg-yellow-400\\/0{background-color:#fbbf2400}.bg-yellow-400\\/10{background-color:#fbbf241a}.bg-yellow-400\\/100{background-color:#fbbf24}.bg-yellow-400\\/15{background-color:#fbbf2426}.bg-yellow-400\\/20{background-color:#fbbf2433}.bg-yellow-400\\/25{background-color:#fbbf2440}.bg-yellow-400\\/30{background-color:#fbbf244d}.bg-yellow-400\\/35{background-color:#fbbf2459}.bg-yellow-400\\/40{background-color:#fbbf2466}.bg-yellow-400\\/45{background-color:#fbbf2473}.bg-yellow-400\\/5{background-color:#fbbf240d}.bg-yellow-400\\/50{background-color:#fbbf2480}.bg-yellow-400\\/55{background-color:#fbbf248c}.bg-yellow-400\\/60{background-color:#fbbf2499}.bg-yellow-400\\/65{background-color:#fbbf24a6}.bg-yellow-400\\/70{background-color:#fbbf24b3}.bg-yellow-400\\/75{background-color:#fbbf24bf}.bg-yellow-400\\/80{background-color:#fbbf24cc}.bg-yellow-400\\/85{background-color:#fbbf24d9}.bg-yellow-400\\/90{background-color:#fbbf24e6}.bg-yellow-400\\/95{background-color:#fbbf24f2}.bg-yellow-50{--tw-bg-opacity:1;background-color:#fffbeb;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.bg-yellow-500{--tw-bg-opacity:1;background-color:#f59e0b;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.bg-yellow-500\\/0{background-color:#f59e0b00}.bg-yellow-500\\/10{background-color:#f59e0b1a}.bg-yellow-500\\/100{background-color:#f59e0b}.bg-yellow-500\\/15{background-color:#f59e0b26}.bg-yellow-500\\/20{background-color:#f59e0b33}.bg-yellow-500\\/25{background-color:#f59e0b40}.bg-yellow-500\\/30{background-color:#f59e0b4d}.bg-yellow-500\\/35{background-color:#f59e0b59}.bg-yellow-500\\/40{background-color:#f59e0b66}.bg-yellow-500\\/45{background-color:#f59e0b73}.bg-yellow-500\\/5{background-color:#f59e0b0d}.bg-yellow-500\\/50{background-color:#f59e0b80}.bg-yellow-500\\/55{background-color:#f59e0b8c}.bg-yellow-500\\/60{background-color:#f59e0b99}.bg-yellow-500\\/65{background-color:#f59e0ba6}.bg-yellow-500\\/70{background-color:#f59e0bb3}.bg-yellow-500\\/75{background-color:#f59e0bbf}.bg-yellow-500\\/80{background-color:#f59e0bcc}.bg-yellow-500\\/85{background-color:#f59e0bd9}.bg-yellow-500\\/90{background-color:#f59e0be6}.bg-yellow-500\\/95{background-color:#f59e0bf2}.bg-none{background-image:none}.fill-current{fill:currentColor}.object-contain{object-fit:contain}.p-0{padding:0}.p-0\\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\\.5{padding:.375rem}.p-12{padding:3rem}.p-2{padding:.5rem}.p-2\\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-px{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0{padding-bottom:0;padding-top:0}.py-0\\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.py-10{padding-bottom:2.5rem;padding-top:2.5rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-14{padding-bottom:3.5rem;padding-top:3.5rem}.py-16{padding-bottom:4rem;padding-top:4rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\\.5{padding-bottom:.625rem;padding-top:.625rem}.py-20{padding-bottom:5rem;padding-top:5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-3\\.5{padding-bottom:.875rem;padding-top:.875rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.py-8{padding-bottom:2rem;padding-top:2rem}.pb-12{padding-bottom:3rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pe-10{padding-inline-end:2.5rem}.pe-11{padding-inline-end:2.75rem}.pe-12{padding-inline-end:3rem}.pe-2{padding-inline-end:.5rem}.pe-7{padding-inline-end:1.75rem}.pe-8{padding-inline-end:2rem}.pe-9{padding-inline-end:2.25rem}.pl-1{padding-left:.25rem}.pl-10{padding-left:2.5rem}.pl-14{padding-left:3.5rem}.pl-3{padding-left:.75rem}.pr-1{padding-right:.25rem}.pr-10{padding-right:2.5rem}.pr-16{padding-right:4rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pr-8{padding-right:2rem}.ps-10{padding-inline-start:2.5rem}.ps-11{padding-inline-start:2.75rem}.ps-12{padding-inline-start:3rem}.ps-4{padding-inline-start:1rem}.ps-7{padding-inline-start:1.75rem}.ps-8{padding-inline-start:2rem}.ps-9{padding-inline-start:2.25rem}.ps-\\[100px\\]{padding-inline-start:100px}.ps-\\[109px\\]{padding-inline-start:109px}.ps-\\[85px\\]{padding-inline-start:85px}.ps-\\[87px\\]{padding-inline-start:87px}.ps-\\[96px\\]{padding-inline-start:96px}.ps-\\[98px\\]{padding-inline-start:98px}.pt-1{padding-top:.25rem}.pt-1\\.5{padding-top:.375rem}.pt-16{padding-top:4rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-end{text-align:end}.align-middle{vertical-align:middle}.font-mono,.font-sans{font-family:Inter}.font-serif{font-family:source-serif-pro,ui-serif,Georgia,Cambria,Times New Roman,Times,serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.text-\\[12px\\]{font-size:12px}.text-\\[14px\\]{font-size:14px}.text-\\[4px\\]{font-size:4px}.text-\\[5px\\]{font-size:5px}.text-\\[6px\\]{font-size:6px}.text-\\[7px\\]{font-size:7px}.text-\\[8px\\]{font-size:8px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-black{font-weight:900}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.text-amber-400{--tw-text-opacity:1;color:#fbbf24;color:rgb(251 191 36/var(--tw-text-opacity,1))}.text-amber-400\\/0{color:#fbbf2400}.text-amber-400\\/10{color:#fbbf241a}.text-amber-400\\/100{color:#fbbf24}.text-amber-400\\/15{color:#fbbf2426}.text-amber-400\\/20{color:#fbbf2433}.text-amber-400\\/25{color:#fbbf2440}.text-amber-400\\/30{color:#fbbf244d}.text-amber-400\\/35{color:#fbbf2459}.text-amber-400\\/40{color:#fbbf2466}.text-amber-400\\/45{color:#fbbf2473}.text-amber-400\\/5{color:#fbbf240d}.text-amber-400\\/50{color:#fbbf2480}.text-amber-400\\/55{color:#fbbf248c}.text-amber-400\\/60{color:#fbbf2499}.text-amber-400\\/65{color:#fbbf24a6}.text-amber-400\\/70{color:#fbbf24b3}.text-amber-400\\/75{color:#fbbf24bf}.text-amber-400\\/80{color:#fbbf24cc}.text-amber-400\\/85{color:#fbbf24d9}.text-amber-400\\/90{color:#fbbf24e6}.text-amber-400\\/95{color:#fbbf24f2}.text-amber-500{--tw-text-opacity:1;color:#f59e0b;color:rgb(245 158 11/var(--tw-text-opacity,1))}.text-amber-500\\/0{color:#f59e0b00}.text-amber-500\\/10{color:#f59e0b1a}.text-amber-500\\/100{color:#f59e0b}.text-amber-500\\/15{color:#f59e0b26}.text-amber-500\\/20{color:#f59e0b33}.text-amber-500\\/25{color:#f59e0b40}.text-amber-500\\/30{color:#f59e0b4d}.text-amber-500\\/35{color:#f59e0b59}.text-amber-500\\/40{color:#f59e0b66}.text-amber-500\\/45{color:#f59e0b73}.text-amber-500\\/5{color:#f59e0b0d}.text-amber-500\\/50{color:#f59e0b80}.text-amber-500\\/55{color:#f59e0b8c}.text-amber-500\\/60{color:#f59e0b99}.text-amber-500\\/65{color:#f59e0ba6}.text-amber-500\\/70{color:#f59e0bb3}.text-amber-500\\/75{color:#f59e0bbf}.text-amber-500\\/80{color:#f59e0bcc}.text-amber-500\\/85{color:#f59e0bd9}.text-amber-500\\/90{color:#f59e0be6}.text-amber-500\\/95{color:#f59e0bf2}.text-black{--tw-text-opacity:1;color:#000;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-blue-400{--tw-text-opacity:1;color:#60a5fa;color:rgb(96 165 250/var(--tw-text-opacity,1))}.text-blue-400\\/0{color:#60a5fa00}.text-blue-400\\/10{color:#60a5fa1a}.text-blue-400\\/100{color:#60a5fa}.text-blue-400\\/15{color:#60a5fa26}.text-blue-400\\/20{color:#60a5fa33}.text-blue-400\\/25{color:#60a5fa40}.text-blue-400\\/30{color:#60a5fa4d}.text-blue-400\\/35{color:#60a5fa59}.text-blue-400\\/40{color:#60a5fa66}.text-blue-400\\/45{color:#60a5fa73}.text-blue-400\\/5{color:#60a5fa0d}.text-blue-400\\/50{color:#60a5fa80}.text-blue-400\\/55{color:#60a5fa8c}.text-blue-400\\/60{color:#60a5fa99}.text-blue-400\\/65{color:#60a5faa6}.text-blue-400\\/70{color:#60a5fab3}.text-blue-400\\/75{color:#60a5fabf}.text-blue-400\\/80{color:#60a5facc}.text-blue-400\\/85{color:#60a5fad9}.text-blue-400\\/90{color:#60a5fae6}.text-blue-400\\/95{color:#60a5faf2}.text-blue-500{--tw-text-opacity:1;color:#3b82f6;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-blue-500\\/0{color:#3b82f600}.text-blue-500\\/10{color:#3b82f61a}.text-blue-500\\/100{color:#3b82f6}.text-blue-500\\/15{color:#3b82f626}.text-blue-500\\/20{color:#3b82f633}.text-blue-500\\/25{color:#3b82f640}.text-blue-500\\/30{color:#3b82f64d}.text-blue-500\\/35{color:#3b82f659}.text-blue-500\\/40{color:#3b82f666}.text-blue-500\\/45{color:#3b82f673}.text-blue-500\\/5{color:#3b82f60d}.text-blue-500\\/50{color:#3b82f680}.text-blue-500\\/55{color:#3b82f68c}.text-blue-500\\/60{color:#3b82f699}.text-blue-500\\/65{color:#3b82f6a6}.text-blue-500\\/70{color:#3b82f6b3}.text-blue-500\\/75{color:#3b82f6bf}.text-blue-500\\/80{color:#3b82f6cc}.text-blue-500\\/85{color:#3b82f6d9}.text-blue-500\\/90{color:#3b82f6e6}.text-blue-500\\/95{color:#3b82f6f2}.text-blue-600{--tw-text-opacity:1;color:#2563eb;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-cyan-400{--tw-text-opacity:1;color:#22d3ee;color:rgb(34 211 238/var(--tw-text-opacity,1))}.text-cyan-400\\/0{color:#22d3ee00}.text-cyan-400\\/10{color:#22d3ee1a}.text-cyan-400\\/100{color:#22d3ee}.text-cyan-400\\/15{color:#22d3ee26}.text-cyan-400\\/20{color:#22d3ee33}.text-cyan-400\\/25{color:#22d3ee40}.text-cyan-400\\/30{color:#22d3ee4d}.text-cyan-400\\/35{color:#22d3ee59}.text-cyan-400\\/40{color:#22d3ee66}.text-cyan-400\\/45{color:#22d3ee73}.text-cyan-400\\/5{color:#22d3ee0d}.text-cyan-400\\/50{color:#22d3ee80}.text-cyan-400\\/55{color:#22d3ee8c}.text-cyan-400\\/60{color:#22d3ee99}.text-cyan-400\\/65{color:#22d3eea6}.text-cyan-400\\/70{color:#22d3eeb3}.text-cyan-400\\/75{color:#22d3eebf}.text-cyan-400\\/80{color:#22d3eecc}.text-cyan-400\\/85{color:#22d3eed9}.text-cyan-400\\/90{color:#22d3eee6}.text-cyan-400\\/95{color:#22d3eef2}.text-cyan-500{--tw-text-opacity:1;color:#06b6d4;color:rgb(6 182 212/var(--tw-text-opacity,1))}.text-cyan-500\\/0{color:#06b6d400}.text-cyan-500\\/10{color:#06b6d41a}.text-cyan-500\\/100{color:#06b6d4}.text-cyan-500\\/15{color:#06b6d426}.text-cyan-500\\/20{color:#06b6d433}.text-cyan-500\\/25{color:#06b6d440}.text-cyan-500\\/30{color:#06b6d44d}.text-cyan-500\\/35{color:#06b6d459}.text-cyan-500\\/40{color:#06b6d466}.text-cyan-500\\/45{color:#06b6d473}.text-cyan-500\\/5{color:#06b6d40d}.text-cyan-500\\/50{color:#06b6d480}.text-cyan-500\\/55{color:#06b6d48c}.text-cyan-500\\/60{color:#06b6d499}.text-cyan-500\\/65{color:#06b6d4a6}.text-cyan-500\\/70{color:#06b6d4b3}.text-cyan-500\\/75{color:#06b6d4bf}.text-cyan-500\\/80{color:#06b6d4cc}.text-cyan-500\\/85{color:#06b6d4d9}.text-cyan-500\\/90{color:#06b6d4e6}.text-cyan-500\\/95{color:#06b6d4f2}.text-emerald-400{--tw-text-opacity:1;color:#34d399;color:rgb(52 211 153/var(--tw-text-opacity,1))}.text-emerald-400\\/0{color:#34d39900}.text-emerald-400\\/10{color:#34d3991a}.text-emerald-400\\/100{color:#34d399}.text-emerald-400\\/15{color:#34d39926}.text-emerald-400\\/20{color:#34d39933}.text-emerald-400\\/25{color:#34d39940}.text-emerald-400\\/30{color:#34d3994d}.text-emerald-400\\/35{color:#34d39959}.text-emerald-400\\/40{color:#34d39966}.text-emerald-400\\/45{color:#34d39973}.text-emerald-400\\/5{color:#34d3990d}.text-emerald-400\\/50{color:#34d39980}.text-emerald-400\\/55{color:#34d3998c}.text-emerald-400\\/60{color:#34d39999}.text-emerald-400\\/65{color:#34d399a6}.text-emerald-400\\/70{color:#34d399b3}.text-emerald-400\\/75{color:#34d399bf}.text-emerald-400\\/80{color:#34d399cc}.text-emerald-400\\/85{color:#34d399d9}.text-emerald-400\\/90{color:#34d399e6}.text-emerald-400\\/95{color:#34d399f2}.text-emerald-500{--tw-text-opacity:1;color:#10b981;color:rgb(16 185 129/var(--tw-text-opacity,1))}.text-emerald-500\\/0{color:#10b98100}.text-emerald-500\\/10{color:#10b9811a}.text-emerald-500\\/100{color:#10b981}.text-emerald-500\\/15{color:#10b98126}.text-emerald-500\\/20{color:#10b98133}.text-emerald-500\\/25{color:#10b98140}.text-emerald-500\\/30{color:#10b9814d}.text-emerald-500\\/35{color:#10b98159}.text-emerald-500\\/40{color:#10b98166}.text-emerald-500\\/45{color:#10b98173}.text-emerald-500\\/5{color:#10b9810d}.text-emerald-500\\/50{color:#10b98180}.text-emerald-500\\/55{color:#10b9818c}.text-emerald-500\\/60{color:#10b98199}.text-emerald-500\\/65{color:#10b981a6}.text-emerald-500\\/70{color:#10b981b3}.text-emerald-500\\/75{color:#10b981bf}.text-emerald-500\\/80{color:#10b981cc}.text-emerald-500\\/85{color:#10b981d9}.text-emerald-500\\/90{color:#10b981e6}.text-emerald-500\\/95{color:#10b981f2}.text-fuchsia-400{--tw-text-opacity:1;color:#e879f9;color:rgb(232 121 249/var(--tw-text-opacity,1))}.text-fuchsia-400\\/0{color:#e879f900}.text-fuchsia-400\\/10{color:#e879f91a}.text-fuchsia-400\\/100{color:#e879f9}.text-fuchsia-400\\/15{color:#e879f926}.text-fuchsia-400\\/20{color:#e879f933}.text-fuchsia-400\\/25{color:#e879f940}.text-fuchsia-400\\/30{color:#e879f94d}.text-fuchsia-400\\/35{color:#e879f959}.text-fuchsia-400\\/40{color:#e879f966}.text-fuchsia-400\\/45{color:#e879f973}.text-fuchsia-400\\/5{color:#e879f90d}.text-fuchsia-400\\/50{color:#e879f980}.text-fuchsia-400\\/55{color:#e879f98c}.text-fuchsia-400\\/60{color:#e879f999}.text-fuchsia-400\\/65{color:#e879f9a6}.text-fuchsia-400\\/70{color:#e879f9b3}.text-fuchsia-400\\/75{color:#e879f9bf}.text-fuchsia-400\\/80{color:#e879f9cc}.text-fuchsia-400\\/85{color:#e879f9d9}.text-fuchsia-400\\/90{color:#e879f9e6}.text-fuchsia-400\\/95{color:#e879f9f2}.text-fuchsia-500{--tw-text-opacity:1;color:#d946ef;color:rgb(217 70 239/var(--tw-text-opacity,1))}.text-fuchsia-500\\/0{color:#d946ef00}.text-fuchsia-500\\/10{color:#d946ef1a}.text-fuchsia-500\\/100{color:#d946ef}.text-fuchsia-500\\/15{color:#d946ef26}.text-fuchsia-500\\/20{color:#d946ef33}.text-fuchsia-500\\/25{color:#d946ef40}.text-fuchsia-500\\/30{color:#d946ef4d}.text-fuchsia-500\\/35{color:#d946ef59}.text-fuchsia-500\\/40{color:#d946ef66}.text-fuchsia-500\\/45{color:#d946ef73}.text-fuchsia-500\\/5{color:#d946ef0d}.text-fuchsia-500\\/50{color:#d946ef80}.text-fuchsia-500\\/55{color:#d946ef8c}.text-fuchsia-500\\/60{color:#d946ef99}.text-fuchsia-500\\/65{color:#d946efa6}.text-fuchsia-500\\/70{color:#d946efb3}.text-fuchsia-500\\/75{color:#d946efbf}.text-fuchsia-500\\/80{color:#d946efcc}.text-fuchsia-500\\/85{color:#d946efd9}.text-fuchsia-500\\/90{color:#d946efe6}.text-fuchsia-500\\/95{color:#d946eff2}.text-gray-300{--tw-text-opacity:1;color:rgb(var(--color-gray-300)/1);color:rgb(var(--color-gray-300)/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(var(--color-gray-400)/1);color:rgb(var(--color-gray-400)/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(var(--color-gray-500)/1);color:rgb(var(--color-gray-500)/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(var(--color-gray-600)/1);color:rgb(var(--color-gray-600)/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:rgb(var(--color-gray-700)/1);color:rgb(var(--color-gray-700)/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:rgb(var(--color-gray-800)/1);color:rgb(var(--color-gray-800)/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(var(--color-gray-900)/1);color:rgb(var(--color-gray-900)/var(--tw-text-opacity,1))}.text-green-400{--tw-text-opacity:1;color:#2dd4bf;color:rgb(45 212 191/var(--tw-text-opacity,1))}.text-green-400\\/0{color:#2dd4bf00}.text-green-400\\/10{color:#2dd4bf1a}.text-green-400\\/100{color:#2dd4bf}.text-green-400\\/15{color:#2dd4bf26}.text-green-400\\/20{color:#2dd4bf33}.text-green-400\\/25{color:#2dd4bf40}.text-green-400\\/30{color:#2dd4bf4d}.text-green-400\\/35{color:#2dd4bf59}.text-green-400\\/40{color:#2dd4bf66}.text-green-400\\/45{color:#2dd4bf73}.text-green-400\\/5{color:#2dd4bf0d}.text-green-400\\/50{color:#2dd4bf80}.text-green-400\\/55{color:#2dd4bf8c}.text-green-400\\/60{color:#2dd4bf99}.text-green-400\\/65{color:#2dd4bfa6}.text-green-400\\/70{color:#2dd4bfb3}.text-green-400\\/75{color:#2dd4bfbf}.text-green-400\\/80{color:#2dd4bfcc}.text-green-400\\/85{color:#2dd4bfd9}.text-green-400\\/90{color:#2dd4bfe6}.text-green-400\\/95{color:#2dd4bff2}.text-green-500{--tw-text-opacity:1;color:#14b8a6;color:rgb(20 184 166/var(--tw-text-opacity,1))}.text-green-500\\/0{color:#14b8a600}.text-green-500\\/10{color:#14b8a61a}.text-green-500\\/100{color:#14b8a6}.text-green-500\\/15{color:#14b8a626}.text-green-500\\/20{color:#14b8a633}.text-green-500\\/25{color:#14b8a640}.text-green-500\\/30{color:#14b8a64d}.text-green-500\\/35{color:#14b8a659}.text-green-500\\/40{color:#14b8a666}.text-green-500\\/45{color:#14b8a673}.text-green-500\\/5{color:#14b8a60d}.text-green-500\\/50{color:#14b8a680}.text-green-500\\/55{color:#14b8a68c}.text-green-500\\/60{color:#14b8a699}.text-green-500\\/65{color:#14b8a6a6}.text-green-500\\/70{color:#14b8a6b3}.text-green-500\\/75{color:#14b8a6bf}.text-green-500\\/80{color:#14b8a6cc}.text-green-500\\/85{color:#14b8a6d9}.text-green-500\\/90{color:#14b8a6e6}.text-green-500\\/95{color:#14b8a6f2}.text-green-600{--tw-text-opacity:1;color:#0d9488;color:rgb(13 148 136/var(--tw-text-opacity,1))}.text-indigo-400{--tw-text-opacity:1;color:#818cf8;color:rgb(129 140 248/var(--tw-text-opacity,1))}.text-indigo-400\\/0{color:#818cf800}.text-indigo-400\\/10{color:#818cf81a}.text-indigo-400\\/100{color:#818cf8}.text-indigo-400\\/15{color:#818cf826}.text-indigo-400\\/20{color:#818cf833}.text-indigo-400\\/25{color:#818cf840}.text-indigo-400\\/30{color:#818cf84d}.text-indigo-400\\/35{color:#818cf859}.text-indigo-400\\/40{color:#818cf866}.text-indigo-400\\/45{color:#818cf873}.text-indigo-400\\/5{color:#818cf80d}.text-indigo-400\\/50{color:#818cf880}.text-indigo-400\\/55{color:#818cf88c}.text-indigo-400\\/60{color:#818cf899}.text-indigo-400\\/65{color:#818cf8a6}.text-indigo-400\\/70{color:#818cf8b3}.text-indigo-400\\/75{color:#818cf8bf}.text-indigo-400\\/80{color:#818cf8cc}.text-indigo-400\\/85{color:#818cf8d9}.text-indigo-400\\/90{color:#818cf8e6}.text-indigo-400\\/95{color:#818cf8f2}.text-indigo-500{--tw-text-opacity:1;color:#6366f1;color:rgb(99 102 241/var(--tw-text-opacity,1))}.text-indigo-500\\/0{color:#6366f100}.text-indigo-500\\/10{color:#6366f11a}.text-indigo-500\\/100{color:#6366f1}.text-indigo-500\\/15{color:#6366f126}.text-indigo-500\\/20{color:#6366f133}.text-indigo-500\\/25{color:#6366f140}.text-indigo-500\\/30{color:#6366f14d}.text-indigo-500\\/35{color:#6366f159}.text-indigo-500\\/40{color:#6366f166}.text-indigo-500\\/45{color:#6366f173}.text-indigo-500\\/5{color:#6366f10d}.text-indigo-500\\/50{color:#6366f180}.text-indigo-500\\/55{color:#6366f18c}.text-indigo-500\\/60{color:#6366f199}.text-indigo-500\\/65{color:#6366f1a6}.text-indigo-500\\/70{color:#6366f1b3}.text-indigo-500\\/75{color:#6366f1bf}.text-indigo-500\\/80{color:#6366f1cc}.text-indigo-500\\/85{color:#6366f1d9}.text-indigo-500\\/90{color:#6366f1e6}.text-indigo-500\\/95{color:#6366f1f2}.text-indigo-600{--tw-text-opacity:1;color:#4f46e5;color:rgb(79 70 229/var(--tw-text-opacity,1))}.text-indigo-700{--tw-text-opacity:1;color:#4338ca;color:rgb(67 56 202/var(--tw-text-opacity,1))}.text-indigo-900{--tw-text-opacity:1;color:#312e81;color:rgb(49 46 129/var(--tw-text-opacity,1))}.text-lime-400{--tw-text-opacity:1;color:#a3e635;color:rgb(163 230 53/var(--tw-text-opacity,1))}.text-lime-400\\/0{color:#a3e63500}.text-lime-400\\/10{color:#a3e6351a}.text-lime-400\\/100{color:#a3e635}.text-lime-400\\/15{color:#a3e63526}.text-lime-400\\/20{color:#a3e63533}.text-lime-400\\/25{color:#a3e63540}.text-lime-400\\/30{color:#a3e6354d}.text-lime-400\\/35{color:#a3e63559}.text-lime-400\\/40{color:#a3e63566}.text-lime-400\\/45{color:#a3e63573}.text-lime-400\\/5{color:#a3e6350d}.text-lime-400\\/50{color:#a3e63580}.text-lime-400\\/55{color:#a3e6358c}.text-lime-400\\/60{color:#a3e63599}.text-lime-400\\/65{color:#a3e635a6}.text-lime-400\\/70{color:#a3e635b3}.text-lime-400\\/75{color:#a3e635bf}.text-lime-400\\/80{color:#a3e635cc}.text-lime-400\\/85{color:#a3e635d9}.text-lime-400\\/90{color:#a3e635e6}.text-lime-400\\/95{color:#a3e635f2}.text-lime-500{--tw-text-opacity:1;color:#84cc16;color:rgb(132 204 22/var(--tw-text-opacity,1))}.text-lime-500\\/0{color:#84cc1600}.text-lime-500\\/10{color:#84cc161a}.text-lime-500\\/100{color:#84cc16}.text-lime-500\\/15{color:#84cc1626}.text-lime-500\\/20{color:#84cc1633}.text-lime-500\\/25{color:#84cc1640}.text-lime-500\\/30{color:#84cc164d}.text-lime-500\\/35{color:#84cc1659}.text-lime-500\\/40{color:#84cc1666}.text-lime-500\\/45{color:#84cc1673}.text-lime-500\\/5{color:#84cc160d}.text-lime-500\\/50{color:#84cc1680}.text-lime-500\\/55{color:#84cc168c}.text-lime-500\\/60{color:#84cc1699}.text-lime-500\\/65{color:#84cc16a6}.text-lime-500\\/70{color:#84cc16b3}.text-lime-500\\/75{color:#84cc16bf}.text-lime-500\\/80{color:#84cc16cc}.text-lime-500\\/85{color:#84cc16d9}.text-lime-500\\/90{color:#84cc16e6}.text-lime-500\\/95{color:#84cc16f2}.text-orange-400{--tw-text-opacity:1;color:#fb923c;color:rgb(251 146 60/var(--tw-text-opacity,1))}.text-orange-400\\/0{color:#fb923c00}.text-orange-400\\/10{color:#fb923c1a}.text-orange-400\\/100{color:#fb923c}.text-orange-400\\/15{color:#fb923c26}.text-orange-400\\/20{color:#fb923c33}.text-orange-400\\/25{color:#fb923c40}.text-orange-400\\/30{color:#fb923c4d}.text-orange-400\\/35{color:#fb923c59}.text-orange-400\\/40{color:#fb923c66}.text-orange-400\\/45{color:#fb923c73}.text-orange-400\\/5{color:#fb923c0d}.text-orange-400\\/50{color:#fb923c80}.text-orange-400\\/55{color:#fb923c8c}.text-orange-400\\/60{color:#fb923c99}.text-orange-400\\/65{color:#fb923ca6}.text-orange-400\\/70{color:#fb923cb3}.text-orange-400\\/75{color:#fb923cbf}.text-orange-400\\/80{color:#fb923ccc}.text-orange-400\\/85{color:#fb923cd9}.text-orange-400\\/90{color:#fb923ce6}.text-orange-400\\/95{color:#fb923cf2}.text-orange-500{--tw-text-opacity:1;color:#f97316;color:rgb(249 115 22/var(--tw-text-opacity,1))}.text-orange-500\\/0{color:#f9731600}.text-orange-500\\/10{color:#f973161a}.text-orange-500\\/100{color:#f97316}.text-orange-500\\/15{color:#f9731626}.text-orange-500\\/20{color:#f9731633}.text-orange-500\\/25{color:#f9731640}.text-orange-500\\/30{color:#f973164d}.text-orange-500\\/35{color:#f9731659}.text-orange-500\\/40{color:#f9731666}.text-orange-500\\/45{color:#f9731673}.text-orange-500\\/5{color:#f973160d}.text-orange-500\\/50{color:#f9731680}.text-orange-500\\/55{color:#f973168c}.text-orange-500\\/60{color:#f9731699}.text-orange-500\\/65{color:#f97316a6}.text-orange-500\\/70{color:#f97316b3}.text-orange-500\\/75{color:#f97316bf}.text-orange-500\\/80{color:#f97316cc}.text-orange-500\\/85{color:#f97316d9}.text-orange-500\\/90{color:#f97316e6}.text-orange-500\\/95{color:#f97316f2}.text-orange-600{--tw-text-opacity:1;color:#ea580c;color:rgb(234 88 12/var(--tw-text-opacity,1))}.text-pink-400{--tw-text-opacity:1;color:#f472b6;color:rgb(244 114 182/var(--tw-text-opacity,1))}.text-pink-400\\/0{color:#f472b600}.text-pink-400\\/10{color:#f472b61a}.text-pink-400\\/100{color:#f472b6}.text-pink-400\\/15{color:#f472b626}.text-pink-400\\/20{color:#f472b633}.text-pink-400\\/25{color:#f472b640}.text-pink-400\\/30{color:#f472b64d}.text-pink-400\\/35{color:#f472b659}.text-pink-400\\/40{color:#f472b666}.text-pink-400\\/45{color:#f472b673}.text-pink-400\\/5{color:#f472b60d}.text-pink-400\\/50{color:#f472b680}.text-pink-400\\/55{color:#f472b68c}.text-pink-400\\/60{color:#f472b699}.text-pink-400\\/65{color:#f472b6a6}.text-pink-400\\/70{color:#f472b6b3}.text-pink-400\\/75{color:#f472b6bf}.text-pink-400\\/80{color:#f472b6cc}.text-pink-400\\/85{color:#f472b6d9}.text-pink-400\\/90{color:#f472b6e6}.text-pink-400\\/95{color:#f472b6f2}.text-pink-500{--tw-text-opacity:1;color:#ec4899;color:rgb(236 72 153/var(--tw-text-opacity,1))}.text-pink-500\\/0{color:#ec489900}.text-pink-500\\/10{color:#ec48991a}.text-pink-500\\/100{color:#ec4899}.text-pink-500\\/15{color:#ec489926}.text-pink-500\\/20{color:#ec489933}.text-pink-500\\/25{color:#ec489940}.text-pink-500\\/30{color:#ec48994d}.text-pink-500\\/35{color:#ec489959}.text-pink-500\\/40{color:#ec489966}.text-pink-500\\/45{color:#ec489973}.text-pink-500\\/5{color:#ec48990d}.text-pink-500\\/50{color:#ec489980}.text-pink-500\\/55{color:#ec48998c}.text-pink-500\\/60{color:#ec489999}.text-pink-500\\/65{color:#ec4899a6}.text-pink-500\\/70{color:#ec4899b3}.text-pink-500\\/75{color:#ec4899bf}.text-pink-500\\/80{color:#ec4899cc}.text-pink-500\\/85{color:#ec4899d9}.text-pink-500\\/90{color:#ec4899e6}.text-pink-500\\/95{color:#ec4899f2}.text-primary-400{--tw-text-opacity:1;color:rgb(var(--color-primary-400)/1);color:rgb(var(--color-primary-400)/var(--tw-text-opacity,1))}.text-primary-400\\/0{color:rgb(var(--color-primary-400)/0)}.text-primary-400\\/10{color:rgb(var(--color-primary-400)/.1)}.text-primary-400\\/100{color:rgb(var(--color-primary-400)/1)}.text-primary-400\\/15{color:rgb(var(--color-primary-400)/.15)}.text-primary-400\\/20{color:rgb(var(--color-primary-400)/.2)}.text-primary-400\\/25{color:rgb(var(--color-primary-400)/.25)}.text-primary-400\\/30{color:rgb(var(--color-primary-400)/.3)}.text-primary-400\\/35{color:rgb(var(--color-primary-400)/.35)}.text-primary-400\\/40{color:rgb(var(--color-primary-400)/.4)}.text-primary-400\\/45{color:rgb(var(--color-primary-400)/.45)}.text-primary-400\\/5{color:rgb(var(--color-primary-400)/.05)}.text-primary-400\\/50{color:rgb(var(--color-primary-400)/.5)}.text-primary-400\\/55{color:rgb(var(--color-primary-400)/.55)}.text-primary-400\\/60{color:rgb(var(--color-primary-400)/.6)}.text-primary-400\\/65{color:rgb(var(--color-primary-400)/.65)}.text-primary-400\\/70{color:rgb(var(--color-primary-400)/.7)}.text-primary-400\\/75{color:rgb(var(--color-primary-400)/.75)}.text-primary-400\\/80{color:rgb(var(--color-primary-400)/.8)}.text-primary-400\\/85{color:rgb(var(--color-primary-400)/.85)}.text-primary-400\\/90{color:rgb(var(--color-primary-400)/.9)}.text-primary-400\\/95{color:rgb(var(--color-primary-400)/.95)}.text-primary-500{--tw-text-opacity:1;color:rgb(var(--color-primary-500)/1);color:rgb(var(--color-primary-500)/var(--tw-text-opacity,1))}.text-primary-500\\/0{color:rgb(var(--color-primary-500)/0)}.text-primary-500\\/10{color:rgb(var(--color-primary-500)/.1)}.text-primary-500\\/100{color:rgb(var(--color-primary-500)/1)}.text-primary-500\\/15{color:rgb(var(--color-primary-500)/.15)}.text-primary-500\\/20{color:rgb(var(--color-primary-500)/.2)}.text-primary-500\\/25{color:rgb(var(--color-primary-500)/.25)}.text-primary-500\\/30{color:rgb(var(--color-primary-500)/.3)}.text-primary-500\\/35{color:rgb(var(--color-primary-500)/.35)}.text-primary-500\\/40{color:rgb(var(--color-primary-500)/.4)}.text-primary-500\\/45{color:rgb(var(--color-primary-500)/.45)}.text-primary-500\\/5{color:rgb(var(--color-primary-500)/.05)}.text-primary-500\\/50{color:rgb(var(--color-primary-500)/.5)}.text-primary-500\\/55{color:rgb(var(--color-primary-500)/.55)}.text-primary-500\\/60{color:rgb(var(--color-primary-500)/.6)}.text-primary-500\\/65{color:rgb(var(--color-primary-500)/.65)}.text-primary-500\\/70{color:rgb(var(--color-primary-500)/.7)}.text-primary-500\\/75{color:rgb(var(--color-primary-500)/.75)}.text-primary-500\\/80{color:rgb(var(--color-primary-500)/.8)}.text-primary-500\\/85{color:rgb(var(--color-primary-500)/.85)}.text-primary-500\\/90{color:rgb(var(--color-primary-500)/.9)}.text-primary-500\\/95{color:rgb(var(--color-primary-500)/.95)}.text-primary-600{--tw-text-opacity:1;color:rgb(var(--color-primary-600)/1);color:rgb(var(--color-primary-600)/var(--tw-text-opacity,1))}.text-primary-600\\/0{color:rgb(var(--color-primary-600)/0)}.text-primary-600\\/10{color:rgb(var(--color-primary-600)/.1)}.text-primary-600\\/100{color:rgb(var(--color-primary-600)/1)}.text-primary-600\\/15{color:rgb(var(--color-primary-600)/.15)}.text-primary-600\\/20{color:rgb(var(--color-primary-600)/.2)}.text-primary-600\\/25{color:rgb(var(--color-primary-600)/.25)}.text-primary-600\\/30{color:rgb(var(--color-primary-600)/.3)}.text-primary-600\\/35{color:rgb(var(--color-primary-600)/.35)}.text-primary-600\\/40{color:rgb(var(--color-primary-600)/.4)}.text-primary-600\\/45{color:rgb(var(--color-primary-600)/.45)}.text-primary-600\\/5{color:rgb(var(--color-primary-600)/.05)}.text-primary-600\\/50{color:rgb(var(--color-primary-600)/.5)}.text-primary-600\\/55{color:rgb(var(--color-primary-600)/.55)}.text-primary-600\\/60{color:rgb(var(--color-primary-600)/.6)}.text-primary-600\\/65{color:rgb(var(--color-primary-600)/.65)}.text-primary-600\\/70{color:rgb(var(--color-primary-600)/.7)}.text-primary-600\\/75{color:rgb(var(--color-primary-600)/.75)}.text-primary-600\\/80{color:rgb(var(--color-primary-600)/.8)}.text-primary-600\\/85{color:rgb(var(--color-primary-600)/.85)}.text-primary-600\\/90{color:rgb(var(--color-primary-600)/.9)}.text-primary-600\\/95{color:rgb(var(--color-primary-600)/.95)}.text-primary-800{--tw-text-opacity:1;color:rgb(var(--color-primary-800)/1);color:rgb(var(--color-primary-800)/var(--tw-text-opacity,1))}.text-purple-400{--tw-text-opacity:1;color:#c084fc;color:rgb(192 132 252/var(--tw-text-opacity,1))}.text-purple-400\\/0{color:#c084fc00}.text-purple-400\\/10{color:#c084fc1a}.text-purple-400\\/100{color:#c084fc}.text-purple-400\\/15{color:#c084fc26}.text-purple-400\\/20{color:#c084fc33}.text-purple-400\\/25{color:#c084fc40}.text-purple-400\\/30{color:#c084fc4d}.text-purple-400\\/35{color:#c084fc59}.text-purple-400\\/40{color:#c084fc66}.text-purple-400\\/45{color:#c084fc73}.text-purple-400\\/5{color:#c084fc0d}.text-purple-400\\/50{color:#c084fc80}.text-purple-400\\/55{color:#c084fc8c}.text-purple-400\\/60{color:#c084fc99}.text-purple-400\\/65{color:#c084fca6}.text-purple-400\\/70{color:#c084fcb3}.text-purple-400\\/75{color:#c084fcbf}.text-purple-400\\/80{color:#c084fccc}.text-purple-400\\/85{color:#c084fcd9}.text-purple-400\\/90{color:#c084fce6}.text-purple-400\\/95{color:#c084fcf2}.text-purple-500{--tw-text-opacity:1;color:#a855f7;color:rgb(168 85 247/var(--tw-text-opacity,1))}.text-purple-500\\/0{color:#a855f700}.text-purple-500\\/10{color:#a855f71a}.text-purple-500\\/100{color:#a855f7}.text-purple-500\\/15{color:#a855f726}.text-purple-500\\/20{color:#a855f733}.text-purple-500\\/25{color:#a855f740}.text-purple-500\\/30{color:#a855f74d}.text-purple-500\\/35{color:#a855f759}.text-purple-500\\/40{color:#a855f766}.text-purple-500\\/45{color:#a855f773}.text-purple-500\\/5{color:#a855f70d}.text-purple-500\\/50{color:#a855f780}.text-purple-500\\/55{color:#a855f78c}.text-purple-500\\/60{color:#a855f799}.text-purple-500\\/65{color:#a855f7a6}.text-purple-500\\/70{color:#a855f7b3}.text-purple-500\\/75{color:#a855f7bf}.text-purple-500\\/80{color:#a855f7cc}.text-purple-500\\/85{color:#a855f7d9}.text-purple-500\\/90{color:#a855f7e6}.text-purple-500\\/95{color:#a855f7f2}.text-red-400{--tw-text-opacity:1;color:#f87171;color:rgb(248 113 113/var(--tw-text-opacity,1))}.text-red-400\\/0{color:#f8717100}.text-red-400\\/10{color:#f871711a}.text-red-400\\/100{color:#f87171}.text-red-400\\/15{color:#f8717126}.text-red-400\\/20{color:#f8717133}.text-red-400\\/25{color:#f8717140}.text-red-400\\/30{color:#f871714d}.text-red-400\\/35{color:#f8717159}.text-red-400\\/40{color:#f8717166}.text-red-400\\/45{color:#f8717173}.text-red-400\\/5{color:#f871710d}.text-red-400\\/50{color:#f8717180}.text-red-400\\/55{color:#f871718c}.text-red-400\\/60{color:#f8717199}.text-red-400\\/65{color:#f87171a6}.text-red-400\\/70{color:#f87171b3}.text-red-400\\/75{color:#f87171bf}.text-red-400\\/80{color:#f87171cc}.text-red-400\\/85{color:#f87171d9}.text-red-400\\/90{color:#f87171e6}.text-red-400\\/95{color:#f87171f2}.text-red-500{--tw-text-opacity:1;color:#ef4444;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-500\\/0{color:#ef444400}.text-red-500\\/10{color:#ef44441a}.text-red-500\\/100{color:#ef4444}.text-red-500\\/15{color:#ef444426}.text-red-500\\/20{color:#ef444433}.text-red-500\\/25{color:#ef444440}.text-red-500\\/30{color:#ef44444d}.text-red-500\\/35{color:#ef444459}.text-red-500\\/40{color:#ef444466}.text-red-500\\/45{color:#ef444473}.text-red-500\\/5{color:#ef44440d}.text-red-500\\/50{color:#ef444480}.text-red-500\\/55{color:#ef44448c}.text-red-500\\/60{color:#ef444499}.text-red-500\\/65{color:#ef4444a6}.text-red-500\\/70{color:#ef4444b3}.text-red-500\\/75{color:#ef4444bf}.text-red-500\\/80{color:#ef4444cc}.text-red-500\\/85{color:#ef4444d9}.text-red-500\\/90{color:#ef4444e6}.text-red-500\\/95{color:#ef4444f2}.text-red-600{--tw-text-opacity:1;color:#dc2626;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:#b91c1c;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-red-800{--tw-text-opacity:1;color:#991b1b;color:rgb(153 27 27/var(--tw-text-opacity,1))}.text-rose-400{--tw-text-opacity:1;color:#fb7185;color:rgb(251 113 133/var(--tw-text-opacity,1))}.text-rose-400\\/0{color:#fb718500}.text-rose-400\\/10{color:#fb71851a}.text-rose-400\\/100{color:#fb7185}.text-rose-400\\/15{color:#fb718526}.text-rose-400\\/20{color:#fb718533}.text-rose-400\\/25{color:#fb718540}.text-rose-400\\/30{color:#fb71854d}.text-rose-400\\/35{color:#fb718559}.text-rose-400\\/40{color:#fb718566}.text-rose-400\\/45{color:#fb718573}.text-rose-400\\/5{color:#fb71850d}.text-rose-400\\/50{color:#fb718580}.text-rose-400\\/55{color:#fb71858c}.text-rose-400\\/60{color:#fb718599}.text-rose-400\\/65{color:#fb7185a6}.text-rose-400\\/70{color:#fb7185b3}.text-rose-400\\/75{color:#fb7185bf}.text-rose-400\\/80{color:#fb7185cc}.text-rose-400\\/85{color:#fb7185d9}.text-rose-400\\/90{color:#fb7185e6}.text-rose-400\\/95{color:#fb7185f2}.text-rose-500{--tw-text-opacity:1;color:#f43f5e;color:rgb(244 63 94/var(--tw-text-opacity,1))}.text-rose-500\\/0{color:#f43f5e00}.text-rose-500\\/10{color:#f43f5e1a}.text-rose-500\\/100{color:#f43f5e}.text-rose-500\\/15{color:#f43f5e26}.text-rose-500\\/20{color:#f43f5e33}.text-rose-500\\/25{color:#f43f5e40}.text-rose-500\\/30{color:#f43f5e4d}.text-rose-500\\/35{color:#f43f5e59}.text-rose-500\\/40{color:#f43f5e66}.text-rose-500\\/45{color:#f43f5e73}.text-rose-500\\/5{color:#f43f5e0d}.text-rose-500\\/50{color:#f43f5e80}.text-rose-500\\/55{color:#f43f5e8c}.text-rose-500\\/60{color:#f43f5e99}.text-rose-500\\/65{color:#f43f5ea6}.text-rose-500\\/70{color:#f43f5eb3}.text-rose-500\\/75{color:#f43f5ebf}.text-rose-500\\/80{color:#f43f5ecc}.text-rose-500\\/85{color:#f43f5ed9}.text-rose-500\\/90{color:#f43f5ee6}.text-rose-500\\/95{color:#f43f5ef2}.text-rose-600{--tw-text-opacity:1;color:#e11d48;color:rgb(225 29 72/var(--tw-text-opacity,1))}.text-sky-400{--tw-text-opacity:1;color:#38bdf8;color:rgb(56 189 248/var(--tw-text-opacity,1))}.text-sky-400\\/0{color:#38bdf800}.text-sky-400\\/10{color:#38bdf81a}.text-sky-400\\/100{color:#38bdf8}.text-sky-400\\/15{color:#38bdf826}.text-sky-400\\/20{color:#38bdf833}.text-sky-400\\/25{color:#38bdf840}.text-sky-400\\/30{color:#38bdf84d}.text-sky-400\\/35{color:#38bdf859}.text-sky-400\\/40{color:#38bdf866}.text-sky-400\\/45{color:#38bdf873}.text-sky-400\\/5{color:#38bdf80d}.text-sky-400\\/50{color:#38bdf880}.text-sky-400\\/55{color:#38bdf88c}.text-sky-400\\/60{color:#38bdf899}.text-sky-400\\/65{color:#38bdf8a6}.text-sky-400\\/70{color:#38bdf8b3}.text-sky-400\\/75{color:#38bdf8bf}.text-sky-400\\/80{color:#38bdf8cc}.text-sky-400\\/85{color:#38bdf8d9}.text-sky-400\\/90{color:#38bdf8e6}.text-sky-400\\/95{color:#38bdf8f2}.text-sky-500{--tw-text-opacity:1;color:#0ea5e9;color:rgb(14 165 233/var(--tw-text-opacity,1))}.text-sky-500\\/0{color:#0ea5e900}.text-sky-500\\/10{color:#0ea5e91a}.text-sky-500\\/100{color:#0ea5e9}.text-sky-500\\/15{color:#0ea5e926}.text-sky-500\\/20{color:#0ea5e933}.text-sky-500\\/25{color:#0ea5e940}.text-sky-500\\/30{color:#0ea5e94d}.text-sky-500\\/35{color:#0ea5e959}.text-sky-500\\/40{color:#0ea5e966}.text-sky-500\\/45{color:#0ea5e973}.text-sky-500\\/5{color:#0ea5e90d}.text-sky-500\\/50{color:#0ea5e980}.text-sky-500\\/55{color:#0ea5e98c}.text-sky-500\\/60{color:#0ea5e999}.text-sky-500\\/65{color:#0ea5e9a6}.text-sky-500\\/70{color:#0ea5e9b3}.text-sky-500\\/75{color:#0ea5e9bf}.text-sky-500\\/80{color:#0ea5e9cc}.text-sky-500\\/85{color:#0ea5e9d9}.text-sky-500\\/90{color:#0ea5e9e6}.text-sky-500\\/95{color:#0ea5e9f2}.text-teal-400{--tw-text-opacity:1;color:#2dd4bf;color:rgb(45 212 191/var(--tw-text-opacity,1))}.text-teal-400\\/0{color:#2dd4bf00}.text-teal-400\\/10{color:#2dd4bf1a}.text-teal-400\\/100{color:#2dd4bf}.text-teal-400\\/15{color:#2dd4bf26}.text-teal-400\\/20{color:#2dd4bf33}.text-teal-400\\/25{color:#2dd4bf40}.text-teal-400\\/30{color:#2dd4bf4d}.text-teal-400\\/35{color:#2dd4bf59}.text-teal-400\\/40{color:#2dd4bf66}.text-teal-400\\/45{color:#2dd4bf73}.text-teal-400\\/5{color:#2dd4bf0d}.text-teal-400\\/50{color:#2dd4bf80}.text-teal-400\\/55{color:#2dd4bf8c}.text-teal-400\\/60{color:#2dd4bf99}.text-teal-400\\/65{color:#2dd4bfa6}.text-teal-400\\/70{color:#2dd4bfb3}.text-teal-400\\/75{color:#2dd4bfbf}.text-teal-400\\/80{color:#2dd4bfcc}.text-teal-400\\/85{color:#2dd4bfd9}.text-teal-400\\/90{color:#2dd4bfe6}.text-teal-400\\/95{color:#2dd4bff2}.text-teal-500{--tw-text-opacity:1;color:#14b8a6;color:rgb(20 184 166/var(--tw-text-opacity,1))}.text-teal-500\\/0{color:#14b8a600}.text-teal-500\\/10{color:#14b8a61a}.text-teal-500\\/100{color:#14b8a6}.text-teal-500\\/15{color:#14b8a626}.text-teal-500\\/20{color:#14b8a633}.text-teal-500\\/25{color:#14b8a640}.text-teal-500\\/30{color:#14b8a64d}.text-teal-500\\/35{color:#14b8a659}.text-teal-500\\/40{color:#14b8a666}.text-teal-500\\/45{color:#14b8a673}.text-teal-500\\/5{color:#14b8a60d}.text-teal-500\\/50{color:#14b8a680}.text-teal-500\\/55{color:#14b8a68c}.text-teal-500\\/60{color:#14b8a699}.text-teal-500\\/65{color:#14b8a6a6}.text-teal-500\\/70{color:#14b8a6b3}.text-teal-500\\/75{color:#14b8a6bf}.text-teal-500\\/80{color:#14b8a6cc}.text-teal-500\\/85{color:#14b8a6d9}.text-teal-500\\/90{color:#14b8a6e6}.text-teal-500\\/95{color:#14b8a6f2}.text-teal-600{--tw-text-opacity:1;color:#0d9488;color:rgb(13 148 136/var(--tw-text-opacity,1))}.text-teal-800{--tw-text-opacity:1;color:#115e59;color:rgb(17 94 89/var(--tw-text-opacity,1))}.text-violet-400{--tw-text-opacity:1;color:#a78bfa;color:rgb(167 139 250/var(--tw-text-opacity,1))}.text-violet-400\\/0{color:#a78bfa00}.text-violet-400\\/10{color:#a78bfa1a}.text-violet-400\\/100{color:#a78bfa}.text-violet-400\\/15{color:#a78bfa26}.text-violet-400\\/20{color:#a78bfa33}.text-violet-400\\/25{color:#a78bfa40}.text-violet-400\\/30{color:#a78bfa4d}.text-violet-400\\/35{color:#a78bfa59}.text-violet-400\\/40{color:#a78bfa66}.text-violet-400\\/45{color:#a78bfa73}.text-violet-400\\/5{color:#a78bfa0d}.text-violet-400\\/50{color:#a78bfa80}.text-violet-400\\/55{color:#a78bfa8c}.text-violet-400\\/60{color:#a78bfa99}.text-violet-400\\/65{color:#a78bfaa6}.text-violet-400\\/70{color:#a78bfab3}.text-violet-400\\/75{color:#a78bfabf}.text-violet-400\\/80{color:#a78bfacc}.text-violet-400\\/85{color:#a78bfad9}.text-violet-400\\/90{color:#a78bfae6}.text-violet-400\\/95{color:#a78bfaf2}.text-violet-500{--tw-text-opacity:1;color:#8b5cf6;color:rgb(139 92 246/var(--tw-text-opacity,1))}.text-violet-500\\/0{color:#8b5cf600}.text-violet-500\\/10{color:#8b5cf61a}.text-violet-500\\/100{color:#8b5cf6}.text-violet-500\\/15{color:#8b5cf626}.text-violet-500\\/20{color:#8b5cf633}.text-violet-500\\/25{color:#8b5cf640}.text-violet-500\\/30{color:#8b5cf64d}.text-violet-500\\/35{color:#8b5cf659}.text-violet-500\\/40{color:#8b5cf666}.text-violet-500\\/45{color:#8b5cf673}.text-violet-500\\/5{color:#8b5cf60d}.text-violet-500\\/50{color:#8b5cf680}.text-violet-500\\/55{color:#8b5cf68c}.text-violet-500\\/60{color:#8b5cf699}.text-violet-500\\/65{color:#8b5cf6a6}.text-violet-500\\/70{color:#8b5cf6b3}.text-violet-500\\/75{color:#8b5cf6bf}.text-violet-500\\/80{color:#8b5cf6cc}.text-violet-500\\/85{color:#8b5cf6d9}.text-violet-500\\/90{color:#8b5cf6e6}.text-violet-500\\/95{color:#8b5cf6f2}.text-white{--tw-text-opacity:1;color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-yellow-300{--tw-text-opacity:1;color:#fcd34d;color:rgb(252 211 77/var(--tw-text-opacity,1))}.text-yellow-400{--tw-text-opacity:1;color:#fbbf24;color:rgb(251 191 36/var(--tw-text-opacity,1))}.text-yellow-400\\/0{color:#fbbf2400}.text-yellow-400\\/10{color:#fbbf241a}.text-yellow-400\\/100{color:#fbbf24}.text-yellow-400\\/15{color:#fbbf2426}.text-yellow-400\\/20{color:#fbbf2433}.text-yellow-400\\/25{color:#fbbf2440}.text-yellow-400\\/30{color:#fbbf244d}.text-yellow-400\\/35{color:#fbbf2459}.text-yellow-400\\/40{color:#fbbf2466}.text-yellow-400\\/45{color:#fbbf2473}.text-yellow-400\\/5{color:#fbbf240d}.text-yellow-400\\/50{color:#fbbf2480}.text-yellow-400\\/55{color:#fbbf248c}.text-yellow-400\\/60{color:#fbbf2499}.text-yellow-400\\/65{color:#fbbf24a6}.text-yellow-400\\/70{color:#fbbf24b3}.text-yellow-400\\/75{color:#fbbf24bf}.text-yellow-400\\/80{color:#fbbf24cc}.text-yellow-400\\/85{color:#fbbf24d9}.text-yellow-400\\/90{color:#fbbf24e6}.text-yellow-400\\/95{color:#fbbf24f2}.text-yellow-500{--tw-text-opacity:1;color:#f59e0b;color:rgb(245 158 11/var(--tw-text-opacity,1))}.text-yellow-500\\/0{color:#f59e0b00}.text-yellow-500\\/10{color:#f59e0b1a}.text-yellow-500\\/100{color:#f59e0b}.text-yellow-500\\/15{color:#f59e0b26}.text-yellow-500\\/20{color:#f59e0b33}.text-yellow-500\\/25{color:#f59e0b40}.text-yellow-500\\/30{color:#f59e0b4d}.text-yellow-500\\/35{color:#f59e0b59}.text-yellow-500\\/40{color:#f59e0b66}.text-yellow-500\\/45{color:#f59e0b73}.text-yellow-500\\/5{color:#f59e0b0d}.text-yellow-500\\/50{color:#f59e0b80}.text-yellow-500\\/55{color:#f59e0b8c}.text-yellow-500\\/60{color:#f59e0b99}.text-yellow-500\\/65{color:#f59e0ba6}.text-yellow-500\\/70{color:#f59e0bb3}.text-yellow-500\\/75{color:#f59e0bbf}.text-yellow-500\\/80{color:#f59e0bcc}.text-yellow-500\\/85{color:#f59e0bd9}.text-yellow-500\\/90{color:#f59e0be6}.text-yellow-500\\/95{color:#f59e0bf2}.text-yellow-700{--tw-text-opacity:1;color:#b45309;color:rgb(180 83 9/var(--tw-text-opacity,1))}.text-yellow-800{--tw-text-opacity:1;color:#92400e;color:rgb(146 64 14/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.placeholder-gray-400::placeholder{--tw-placeholder-opacity:1;color:rgb(var(--color-gray-400)/1);color:rgb(var(--color-gray-400)/var(--tw-placeholder-opacity,1))}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-20{opacity:.2}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-90{opacity:.9}.mix-blend-overlay{mix-blend-mode:overlay}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:0 0 #0000,0 0 #0000,0 1px 3px #0000001a,0 1px 2px -1px #0000001a;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\\[0_0_15px_rgba\\(79\\,70\\,229\\,0\\.4\\)\\]{--tw-shadow:0 0 15px #4f46e566;--tw-shadow-colored:0 0 15px var(--tw-shadow-color);box-shadow:0 0 #0000,0 0 #0000,0 0 15px #4f46e566;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 #0000000d;--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:0 0 #0000,0 0 #0000,inset 0 2px 4px #0000000d;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:0 0 #0000,0 0 #0000,0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:0 0 #0000,0 0 #0000,0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:0 0 #0000,0 0 #0000,0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:0 0 #0000,0 0 #0000,0 1px 2px #0000000d;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:0 0 #0000,0 0 #0000,0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-primary-500\\/20{--tw-shadow-color:rgb(var(--color-primary-500)/.2);--tw-shadow:var(--tw-shadow-colored)}.outline-none{outline:2px solid #0000;outline-offset:2px}.outline{outline-style:solid}.outline-blue-400{outline-color:#60a5fa}.outline-blue-500{outline-color:#3b82f6}.outline-green-400{outline-color:#2dd4bf}.outline-green-500{outline-color:#14b8a6}.outline-primary-400{outline-color:rgb(var(--color-primary-400)/1)}.outline-primary-400\\/0{outline-color:rgb(var(--color-primary-400)/0)}.outline-primary-400\\/10{outline-color:rgb(var(--color-primary-400)/.1)}.outline-primary-400\\/100{outline-color:rgb(var(--color-primary-400)/1)}.outline-primary-400\\/15{outline-color:rgb(var(--color-primary-400)/.15)}.outline-primary-400\\/20{outline-color:rgb(var(--color-primary-400)/.2)}.outline-primary-400\\/25{outline-color:rgb(var(--color-primary-400)/.25)}.outline-primary-400\\/30{outline-color:rgb(var(--color-primary-400)/.3)}.outline-primary-400\\/35{outline-color:rgb(var(--color-primary-400)/.35)}.outline-primary-400\\/40{outline-color:rgb(var(--color-primary-400)/.4)}.outline-primary-400\\/45{outline-color:rgb(var(--color-primary-400)/.45)}.outline-primary-400\\/5{outline-color:rgb(var(--color-primary-400)/.05)}.outline-primary-400\\/50{outline-color:rgb(var(--color-primary-400)/.5)}.outline-primary-400\\/55{outline-color:rgb(var(--color-primary-400)/.55)}.outline-primary-400\\/60{outline-color:rgb(var(--color-primary-400)/.6)}.outline-primary-400\\/65{outline-color:rgb(var(--color-primary-400)/.65)}.outline-primary-400\\/70{outline-color:rgb(var(--color-primary-400)/.7)}.outline-primary-400\\/75{outline-color:rgb(var(--color-primary-400)/.75)}.outline-primary-400\\/80{outline-color:rgb(var(--color-primary-400)/.8)}.outline-primary-400\\/85{outline-color:rgb(var(--color-primary-400)/.85)}.outline-primary-400\\/90{outline-color:rgb(var(--color-primary-400)/.9)}.outline-primary-400\\/95{outline-color:rgb(var(--color-primary-400)/.95)}.outline-primary-500{outline-color:rgb(var(--color-primary-500)/1)}.outline-primary-500\\/0{outline-color:rgb(var(--color-primary-500)/0)}.outline-primary-500\\/10{outline-color:rgb(var(--color-primary-500)/.1)}.outline-primary-500\\/100{outline-color:rgb(var(--color-primary-500)/1)}.outline-primary-500\\/15{outline-color:rgb(var(--color-primary-500)/.15)}.outline-primary-500\\/20{outline-color:rgb(var(--color-primary-500)/.2)}.outline-primary-500\\/25{outline-color:rgb(var(--color-primary-500)/.25)}.outline-primary-500\\/30{outline-color:rgb(var(--color-primary-500)/.3)}.outline-primary-500\\/35{outline-color:rgb(var(--color-primary-500)/.35)}.outline-primary-500\\/40{outline-color:rgb(var(--color-primary-500)/.4)}.outline-primary-500\\/45{outline-color:rgb(var(--color-primary-500)/.45)}.outline-primary-500\\/5{outline-color:rgb(var(--color-primary-500)/.05)}.outline-primary-500\\/50{outline-color:rgb(var(--color-primary-500)/.5)}.outline-primary-500\\/55{outline-color:rgb(var(--color-primary-500)/.55)}.outline-primary-500\\/60{outline-color:rgb(var(--color-primary-500)/.6)}.outline-primary-500\\/65{outline-color:rgb(var(--color-primary-500)/.65)}.outline-primary-500\\/70{outline-color:rgb(var(--color-primary-500)/.7)}.outline-primary-500\\/75{outline-color:rgb(var(--color-primary-500)/.75)}.outline-primary-500\\/80{outline-color:rgb(var(--color-primary-500)/.8)}.outline-primary-500\\/85{outline-color:rgb(var(--color-primary-500)/.85)}.outline-primary-500\\/90{outline-color:rgb(var(--color-primary-500)/.9)}.outline-primary-500\\/95{outline-color:rgb(var(--color-primary-500)/.95)}.outline-red-400{outline-color:#f87171}.outline-red-500{outline-color:#ef4444}.outline-rose-400{outline-color:#fb7185}.outline-rose-500{outline-color:#f43f5e}.outline-teal-400{outline-color:#2dd4bf}.outline-teal-500{outline-color:#14b8a6}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring,.ring-0{box-shadow:0 0 #fff,var(--tw-ring-shadow),0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:0 0 #fff,0 0 0 1px #2563eb,0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:0 0 #fff,0 0 0 4px #2563eb,0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-inset{--tw-ring-inset:inset}.ring-amber-400{--tw-ring-opacity:1;--tw-ring-color:rgb(251 191 36/var(--tw-ring-opacity,1))}.ring-amber-500{--tw-ring-opacity:1;--tw-ring-color:rgb(245 158 11/var(--tw-ring-opacity,1))}.ring-black{--tw-ring-opacity:1;--tw-ring-color:rgb(0 0 0/var(--tw-ring-opacity,1))}.ring-blue-400{--tw-ring-opacity:1;--tw-ring-color:rgb(96 165 250/var(--tw-ring-opacity,1))}.ring-blue-500{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.ring-current{--tw-ring-color:currentColor}.ring-gray-200{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-gray-200)/var(--tw-ring-opacity,1))}.ring-gray-300{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-gray-300)/var(--tw-ring-opacity,1))}.ring-green-400{--tw-ring-opacity:1;--tw-ring-color:rgb(45 212 191/var(--tw-ring-opacity,1))}.ring-green-500{--tw-ring-opacity:1;--tw-ring-color:rgb(20 184 166/var(--tw-ring-opacity,1))}.ring-indigo-500\\/50{--tw-ring-color:#6366f180}.ring-orange-400{--tw-ring-opacity:1;--tw-ring-color:rgb(251 146 60/var(--tw-ring-opacity,1))}.ring-orange-500{--tw-ring-opacity:1;--tw-ring-color:rgb(249 115 22/var(--tw-ring-opacity,1))}.ring-primary-400{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-primary-400)/var(--tw-ring-opacity,1))}.ring-primary-400\\/0{--tw-ring-color:rgb(var(--color-primary-400)/0)}.ring-primary-400\\/10{--tw-ring-color:rgb(var(--color-primary-400)/.1)}.ring-primary-400\\/100{--tw-ring-color:rgb(var(--color-primary-400)/1)}.ring-primary-400\\/15{--tw-ring-color:rgb(var(--color-primary-400)/.15)}.ring-primary-400\\/20{--tw-ring-color:rgb(var(--color-primary-400)/.2)}.ring-primary-400\\/25{--tw-ring-color:rgb(var(--color-primary-400)/.25)}.ring-primary-400\\/30{--tw-ring-color:rgb(var(--color-primary-400)/.3)}.ring-primary-400\\/35{--tw-ring-color:rgb(var(--color-primary-400)/.35)}.ring-primary-400\\/40{--tw-ring-color:rgb(var(--color-primary-400)/.4)}.ring-primary-400\\/45{--tw-ring-color:rgb(var(--color-primary-400)/.45)}.ring-primary-400\\/5{--tw-ring-color:rgb(var(--color-primary-400)/.05)}.ring-primary-400\\/50{--tw-ring-color:rgb(var(--color-primary-400)/.5)}.ring-primary-400\\/55{--tw-ring-color:rgb(var(--color-primary-400)/.55)}.ring-primary-400\\/60{--tw-ring-color:rgb(var(--color-primary-400)/.6)}.ring-primary-400\\/65{--tw-ring-color:rgb(var(--color-primary-400)/.65)}.ring-primary-400\\/70{--tw-ring-color:rgb(var(--color-primary-400)/.7)}.ring-primary-400\\/75{--tw-ring-color:rgb(var(--color-primary-400)/.75)}.ring-primary-400\\/80{--tw-ring-color:rgb(var(--color-primary-400)/.8)}.ring-primary-400\\/85{--tw-ring-color:rgb(var(--color-primary-400)/.85)}.ring-primary-400\\/90{--tw-ring-color:rgb(var(--color-primary-400)/.9)}.ring-primary-400\\/95{--tw-ring-color:rgb(var(--color-primary-400)/.95)}.ring-primary-500{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-primary-500)/var(--tw-ring-opacity,1))}.ring-primary-500\\/0{--tw-ring-color:rgb(var(--color-primary-500)/0)}.ring-primary-500\\/10{--tw-ring-color:rgb(var(--color-primary-500)/.1)}.ring-primary-500\\/100{--tw-ring-color:rgb(var(--color-primary-500)/1)}.ring-primary-500\\/15{--tw-ring-color:rgb(var(--color-primary-500)/.15)}.ring-primary-500\\/20{--tw-ring-color:rgb(var(--color-primary-500)/.2)}.ring-primary-500\\/25{--tw-ring-color:rgb(var(--color-primary-500)/.25)}.ring-primary-500\\/30{--tw-ring-color:rgb(var(--color-primary-500)/.3)}.ring-primary-500\\/35{--tw-ring-color:rgb(var(--color-primary-500)/.35)}.ring-primary-500\\/40{--tw-ring-color:rgb(var(--color-primary-500)/.4)}.ring-primary-500\\/45{--tw-ring-color:rgb(var(--color-primary-500)/.45)}.ring-primary-500\\/5{--tw-ring-color:rgb(var(--color-primary-500)/.05)}.ring-primary-500\\/50{--tw-ring-color:rgb(var(--color-primary-500)/.5)}.ring-primary-500\\/55{--tw-ring-color:rgb(var(--color-primary-500)/.55)}.ring-primary-500\\/60{--tw-ring-color:rgb(var(--color-primary-500)/.6)}.ring-primary-500\\/65{--tw-ring-color:rgb(var(--color-primary-500)/.65)}.ring-primary-500\\/70{--tw-ring-color:rgb(var(--color-primary-500)/.7)}.ring-primary-500\\/75{--tw-ring-color:rgb(var(--color-primary-500)/.75)}.ring-primary-500\\/80{--tw-ring-color:rgb(var(--color-primary-500)/.8)}.ring-primary-500\\/85{--tw-ring-color:rgb(var(--color-primary-500)/.85)}.ring-primary-500\\/90{--tw-ring-color:rgb(var(--color-primary-500)/.9)}.ring-primary-500\\/95{--tw-ring-color:rgb(var(--color-primary-500)/.95)}.ring-red-400{--tw-ring-opacity:1;--tw-ring-color:rgb(248 113 113/var(--tw-ring-opacity,1))}.ring-red-400\\/0{--tw-ring-color:#f8717100}.ring-red-400\\/10{--tw-ring-color:#f871711a}.ring-red-400\\/100{--tw-ring-color:#f87171}.ring-red-400\\/15{--tw-ring-color:#f8717126}.ring-red-400\\/20{--tw-ring-color:#f8717133}.ring-red-400\\/25{--tw-ring-color:#f8717140}.ring-red-400\\/30{--tw-ring-color:#f871714d}.ring-red-400\\/35{--tw-ring-color:#f8717159}.ring-red-400\\/40{--tw-ring-color:#f8717166}.ring-red-400\\/45{--tw-ring-color:#f8717173}.ring-red-400\\/5{--tw-ring-color:#f871710d}.ring-red-400\\/50{--tw-ring-color:#f8717180}.ring-red-400\\/55{--tw-ring-color:#f871718c}.ring-red-400\\/60{--tw-ring-color:#f8717199}.ring-red-400\\/65{--tw-ring-color:#f87171a6}.ring-red-400\\/70{--tw-ring-color:#f87171b3}.ring-red-400\\/75{--tw-ring-color:#f87171bf}.ring-red-400\\/80{--tw-ring-color:#f87171cc}.ring-red-400\\/85{--tw-ring-color:#f87171d9}.ring-red-400\\/90{--tw-ring-color:#f87171e6}.ring-red-400\\/95{--tw-ring-color:#f87171f2}.ring-red-500{--tw-ring-opacity:1;--tw-ring-color:rgb(239 68 68/var(--tw-ring-opacity,1))}.ring-red-500\\/0{--tw-ring-color:#ef444400}.ring-red-500\\/10{--tw-ring-color:#ef44441a}.ring-red-500\\/100{--tw-ring-color:#ef4444}.ring-red-500\\/15{--tw-ring-color:#ef444426}.ring-red-500\\/20{--tw-ring-color:#ef444433}.ring-red-500\\/25{--tw-ring-color:#ef444440}.ring-red-500\\/30{--tw-ring-color:#ef44444d}.ring-red-500\\/35{--tw-ring-color:#ef444459}.ring-red-500\\/40{--tw-ring-color:#ef444466}.ring-red-500\\/45{--tw-ring-color:#ef444473}.ring-red-500\\/5{--tw-ring-color:#ef44440d}.ring-red-500\\/50{--tw-ring-color:#ef444480}.ring-red-500\\/55{--tw-ring-color:#ef44448c}.ring-red-500\\/60{--tw-ring-color:#ef444499}.ring-red-500\\/65{--tw-ring-color:#ef4444a6}.ring-red-500\\/70{--tw-ring-color:#ef4444b3}.ring-red-500\\/75{--tw-ring-color:#ef4444bf}.ring-red-500\\/80{--tw-ring-color:#ef4444cc}.ring-red-500\\/85{--tw-ring-color:#ef4444d9}.ring-red-500\\/90{--tw-ring-color:#ef4444e6}.ring-red-500\\/95{--tw-ring-color:#ef4444f2}.ring-rose-400{--tw-ring-opacity:1;--tw-ring-color:rgb(251 113 133/var(--tw-ring-opacity,1))}.ring-rose-500{--tw-ring-opacity:1;--tw-ring-color:rgb(244 63 94/var(--tw-ring-opacity,1))}.ring-teal-400{--tw-ring-opacity:1;--tw-ring-color:rgb(45 212 191/var(--tw-ring-opacity,1))}.ring-teal-500{--tw-ring-opacity:1;--tw-ring-color:rgb(20 184 166/var(--tw-ring-opacity,1))}.ring-white{--tw-ring-opacity:1;--tw-ring-color:rgb(255 255 255/var(--tw-ring-opacity,1))}.ring-yellow-400{--tw-ring-opacity:1;--tw-ring-color:rgb(251 191 36/var(--tw-ring-opacity,1))}.ring-yellow-500{--tw-ring-opacity:1;--tw-ring-color:rgb(245 158 11/var(--tw-ring-opacity,1))}.ring-opacity-25{--tw-ring-opacity:.25}.ring-opacity-5{--tw-ring-opacity:.05}.blur{--tw-blur:blur(8px);filter:blur(8px) 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)}.blur,.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-blur-sm{--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:blur(4px) 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:blur(4px) 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);-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-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\\[height\\]{transition-duration:.15s;transition-property:height;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-100{transition-duration:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-75{transition-duration:75ms}.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)}.content-\\[\\\"\\\"\\]{--tw-content:\"\";content:\"\";content:var(--tw-content)}.dark\\:prose-invert:is(.dark *){--tw-prose-body:var(--tw-prose-invert-body);--tw-prose-headings:var(--tw-prose-invert-headings);--tw-prose-lead:var(--tw-prose-invert-lead);--tw-prose-links:var(--tw-prose-invert-links);--tw-prose-bold:var(--tw-prose-invert-bold);--tw-prose-counters:var(--tw-prose-invert-counters);--tw-prose-bullets:var(--tw-prose-invert-bullets);--tw-prose-hr:var(--tw-prose-invert-hr);--tw-prose-quotes:var(--tw-prose-invert-quotes);--tw-prose-quote-borders:var(--tw-prose-invert-quote-borders);--tw-prose-captions:var(--tw-prose-invert-captions);--tw-prose-kbd:var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows:var(--tw-prose-invert-kbd-shadows);--tw-prose-code:var(--tw-prose-invert-code);--tw-prose-pre-code:var(--tw-prose-invert-pre-code);--tw-prose-pre-bg:var(--tw-prose-invert-pre-bg);--tw-prose-th-borders:var(--tw-prose-invert-th-borders);--tw-prose-td-borders:var(--tw-prose-invert-td-borders)}.rtl\\:i-heroicons-chevron-left-20-solid:where([dir=rtl],[dir=rtl] *){background-color:currentColor;display:inline-block;height:1em;-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M11.78 5.22a.75.75 0 0 1 0 1.06L8.06 10l3.72 3.72a.75.75 0 1 1-1.06 1.06l-4.25-4.25a.75.75 0 0 1 0-1.06l4.25-4.25a.75.75 0 0 1 1.06 0' clip-rule='evenodd'/%3E%3C/svg%3E\");-webkit-mask-image:var(--svg);mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M11.78 5.22a.75.75 0 0 1 0 1.06L8.06 10l3.72 3.72a.75.75 0 1 1-1.06 1.06l-4.25-4.25a.75.75 0 0 1 0-1.06l4.25-4.25a.75.75 0 0 1 1.06 0' clip-rule='evenodd'/%3E%3C/svg%3E\");mask-image:var(--svg);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;width:1em;--svg:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M11.78 5.22a.75.75 0 0 1 0 1.06L8.06 10l3.72 3.72a.75.75 0 1 1-1.06 1.06l-4.25-4.25a.75.75 0 0 1 0-1.06l4.25-4.25a.75.75 0 0 1 1.06 0' clip-rule='evenodd'/%3E%3C/svg%3E\")}.file\\:absolute::file-selector-button{position:absolute}.file\\:inset-y-0::file-selector-button{bottom:0;top:0}.file\\:left-0::file-selector-button{left:0}.file\\:m-0::file-selector-button{margin:0}.file\\:cursor-pointer::file-selector-button{cursor:pointer}.file\\:rounded-l-md::file-selector-button{border-bottom-left-radius:.375rem;border-top-left-radius:.375rem}.file\\:border-0::file-selector-button{border-width:0}.file\\:bg-gray-50::file-selector-button{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-50)/1);background-color:rgb(var(--color-gray-50)/var(--tw-bg-opacity,1))}.file\\:font-medium::file-selector-button{font-weight:500}.file\\:text-gray-900::file-selector-button{--tw-text-opacity:1;color:rgb(var(--color-gray-900)/1);color:rgb(var(--color-gray-900)/var(--tw-text-opacity,1))}.file\\:ring-1::file-selector-button{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:0 0 #fff,0 0 0 1px #2563eb,0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.file\\:ring-gray-300::file-selector-button{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-gray-300)/var(--tw-ring-opacity,1))}.before\\:visible:before{content:var(--tw-content);visibility:visible}.before\\:absolute:before{content:var(--tw-content);position:absolute}.before\\:inset-px:before{content:var(--tw-content);top:1px;right:1px;bottom:1px;left:1px}.before\\:inset-x-0:before{content:var(--tw-content);left:0;right:0}.before\\:inset-y-2:before{bottom:.5rem;content:var(--tw-content);top:.5rem}.before\\:z-\\[-1\\]:before{content:var(--tw-content);z-index:-1}.before\\:block:before{content:var(--tw-content);display:block}.before\\:h-2:before{content:var(--tw-content);height:.5rem}.before\\:w-2:before{content:var(--tw-content);width:.5rem}.before\\:rotate-45:before{content:var(--tw-content);--tw-rotate:45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(45deg) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));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))}.before\\:rounded-md:before{border-radius:.375rem;content:var(--tw-content)}.before\\:rounded-sm:before{border-radius:.125rem;content:var(--tw-content)}.before\\:bg-gray-100:before{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(var(--color-gray-100)/1);background-color:rgb(var(--color-gray-100)/var(--tw-bg-opacity,1))}.before\\:bg-gray-200:before{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(var(--color-gray-200)/1);background-color:rgb(var(--color-gray-200)/var(--tw-bg-opacity,1))}.before\\:bg-white:before{content:var(--tw-content);--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.before\\:shadow:before{content:var(--tw-content);--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:0 0 #0000,0 0 #0000,0 1px 3px #0000001a,0 1px 2px -1px #0000001a;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.before\\:ring-1:before{content:var(--tw-content);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:0 0 #fff,0 0 0 1px #2563eb,0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.before\\:ring-gray-200:before{content:var(--tw-content);--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-gray-200)/var(--tw-ring-opacity,1))}.after\\:absolute:after{content:var(--tw-content);position:absolute}.after\\:inset-x-2\\.5:after{content:var(--tw-content);left:.625rem;right:.625rem}.after\\:bottom-0:after{bottom:0;content:var(--tw-content)}.after\\:ms-0\\.5:after{content:var(--tw-content);margin-inline-start:.125rem}.after\\:mt-2:after{content:var(--tw-content);margin-top:.5rem}.after\\:block:after{content:var(--tw-content);display:block}.after\\:h-\\[2px\\]:after{content:var(--tw-content);height:2px}.after\\:rounded-full:after{border-radius:9999px;content:var(--tw-content)}.after\\:bg-primary-500:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(var(--color-primary-500)/1);background-color:rgb(var(--color-primary-500)/var(--tw-bg-opacity,1))}.after\\:text-red-500:after{content:var(--tw-content);--tw-text-opacity:1;color:#ef4444;color:rgb(239 68 68/var(--tw-text-opacity,1))}.after\\:content-\\[\\'\\*\\'\\]:after{--tw-content:\"*\";content:\"*\";content:var(--tw-content)}.first\\:me-0:first-child{margin-inline-end:0}.first\\:rounded-s-md:first-child{border-end-start-radius:.375rem;border-start-start-radius:.375rem}.last\\:rounded-e-md:last-child{border-end-end-radius:.375rem;border-start-end-radius:.375rem}.indeterminate\\:relative:indeterminate{position:relative}.indeterminate\\:after\\:rounded-full:indeterminate:after{border-radius:9999px;content:var(--tw-content)}.focus-within\\:ring-2:focus-within{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:0 0 #fff,0 0 0 4px #2563eb,0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-within\\:ring-indigo-500:focus-within{--tw-ring-opacity:1;--tw-ring-color:rgb(99 102 241/var(--tw-ring-opacity,1))}.hover\\:border-primary-400:hover{--tw-border-opacity:1;border-color:rgb(var(--color-primary-400)/var(--tw-border-opacity,1))}.hover\\:border-primary-500:hover{--tw-border-opacity:1;border-color:rgb(var(--color-primary-500)/var(--tw-border-opacity,1))}.hover\\:\\!bg-gray-50:hover{--tw-bg-opacity:1!important;background-color:rgb(var(--color-gray-50)/1)!important;background-color:rgb(var(--color-gray-50)/var(--tw-bg-opacity,1))!important}.hover\\:bg-blue-100:hover{--tw-bg-opacity:1;background-color:#dbeafe;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.hover\\:bg-blue-50:hover{--tw-bg-opacity:1;background-color:#eff6ff;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.hover\\:bg-blue-600:hover{--tw-bg-opacity:1;background-color:#2563eb;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.hover\\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-100)/1);background-color:rgb(var(--color-gray-100)/var(--tw-bg-opacity,1))}.hover\\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-200)/1);background-color:rgb(var(--color-gray-200)/var(--tw-bg-opacity,1))}.hover\\:bg-gray-200\\/50:hover{background-color:rgb(var(--color-gray-200)/.5)}.hover\\:bg-gray-300:hover{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-300)/1);background-color:rgb(var(--color-gray-300)/var(--tw-bg-opacity,1))}.hover\\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-50)/1);background-color:rgb(var(--color-gray-50)/var(--tw-bg-opacity,1))}.hover\\:bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-800)/1);background-color:rgb(var(--color-gray-800)/var(--tw-bg-opacity,1))}.hover\\:bg-green-100:hover{--tw-bg-opacity:1;background-color:#ccfbf1;background-color:rgb(204 251 241/var(--tw-bg-opacity,1))}.hover\\:bg-green-50:hover{--tw-bg-opacity:1;background-color:#f0fdfa;background-color:rgb(240 253 250/var(--tw-bg-opacity,1))}.hover\\:bg-green-600:hover{--tw-bg-opacity:1;background-color:#0d9488;background-color:rgb(13 148 136/var(--tw-bg-opacity,1))}.hover\\:bg-indigo-500:hover{--tw-bg-opacity:1;background-color:#6366f1;background-color:rgb(99 102 241/var(--tw-bg-opacity,1))}.hover\\:bg-primary-100:hover{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-100)/1);background-color:rgb(var(--color-primary-100)/var(--tw-bg-opacity,1))}.hover\\:bg-primary-100\\/0:hover{background-color:rgb(var(--color-primary-100)/0)}.hover\\:bg-primary-100\\/10:hover{background-color:rgb(var(--color-primary-100)/.1)}.hover\\:bg-primary-100\\/100:hover{background-color:rgb(var(--color-primary-100)/1)}.hover\\:bg-primary-100\\/15:hover{background-color:rgb(var(--color-primary-100)/.15)}.hover\\:bg-primary-100\\/20:hover{background-color:rgb(var(--color-primary-100)/.2)}.hover\\:bg-primary-100\\/25:hover{background-color:rgb(var(--color-primary-100)/.25)}.hover\\:bg-primary-100\\/30:hover{background-color:rgb(var(--color-primary-100)/.3)}.hover\\:bg-primary-100\\/35:hover{background-color:rgb(var(--color-primary-100)/.35)}.hover\\:bg-primary-100\\/40:hover{background-color:rgb(var(--color-primary-100)/.4)}.hover\\:bg-primary-100\\/45:hover{background-color:rgb(var(--color-primary-100)/.45)}.hover\\:bg-primary-100\\/5:hover{background-color:rgb(var(--color-primary-100)/.05)}.hover\\:bg-primary-100\\/50:hover{background-color:rgb(var(--color-primary-100)/.5)}.hover\\:bg-primary-100\\/55:hover{background-color:rgb(var(--color-primary-100)/.55)}.hover\\:bg-primary-100\\/60:hover{background-color:rgb(var(--color-primary-100)/.6)}.hover\\:bg-primary-100\\/65:hover{background-color:rgb(var(--color-primary-100)/.65)}.hover\\:bg-primary-100\\/70:hover{background-color:rgb(var(--color-primary-100)/.7)}.hover\\:bg-primary-100\\/75:hover{background-color:rgb(var(--color-primary-100)/.75)}.hover\\:bg-primary-100\\/80:hover{background-color:rgb(var(--color-primary-100)/.8)}.hover\\:bg-primary-100\\/85:hover{background-color:rgb(var(--color-primary-100)/.85)}.hover\\:bg-primary-100\\/90:hover{background-color:rgb(var(--color-primary-100)/.9)}.hover\\:bg-primary-100\\/95:hover{background-color:rgb(var(--color-primary-100)/.95)}.hover\\:bg-primary-50:hover{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-50)/1);background-color:rgb(var(--color-primary-50)/var(--tw-bg-opacity,1))}.hover\\:bg-primary-50\\/0:hover{background-color:rgb(var(--color-primary-50)/0)}.hover\\:bg-primary-50\\/10:hover{background-color:rgb(var(--color-primary-50)/.1)}.hover\\:bg-primary-50\\/100:hover{background-color:rgb(var(--color-primary-50)/1)}.hover\\:bg-primary-50\\/15:hover{background-color:rgb(var(--color-primary-50)/.15)}.hover\\:bg-primary-50\\/20:hover{background-color:rgb(var(--color-primary-50)/.2)}.hover\\:bg-primary-50\\/25:hover{background-color:rgb(var(--color-primary-50)/.25)}.hover\\:bg-primary-50\\/30:hover{background-color:rgb(var(--color-primary-50)/.3)}.hover\\:bg-primary-50\\/35:hover{background-color:rgb(var(--color-primary-50)/.35)}.hover\\:bg-primary-50\\/40:hover{background-color:rgb(var(--color-primary-50)/.4)}.hover\\:bg-primary-50\\/45:hover{background-color:rgb(var(--color-primary-50)/.45)}.hover\\:bg-primary-50\\/5:hover{background-color:rgb(var(--color-primary-50)/.05)}.hover\\:bg-primary-50\\/50:hover{background-color:rgb(var(--color-primary-50)/.5)}.hover\\:bg-primary-50\\/55:hover{background-color:rgb(var(--color-primary-50)/.55)}.hover\\:bg-primary-50\\/60:hover{background-color:rgb(var(--color-primary-50)/.6)}.hover\\:bg-primary-50\\/65:hover{background-color:rgb(var(--color-primary-50)/.65)}.hover\\:bg-primary-50\\/70:hover{background-color:rgb(var(--color-primary-50)/.7)}.hover\\:bg-primary-50\\/75:hover{background-color:rgb(var(--color-primary-50)/.75)}.hover\\:bg-primary-50\\/80:hover{background-color:rgb(var(--color-primary-50)/.8)}.hover\\:bg-primary-50\\/85:hover{background-color:rgb(var(--color-primary-50)/.85)}.hover\\:bg-primary-50\\/90:hover{background-color:rgb(var(--color-primary-50)/.9)}.hover\\:bg-primary-50\\/95:hover{background-color:rgb(var(--color-primary-50)/.95)}.hover\\:bg-primary-500:hover{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-500)/1);background-color:rgb(var(--color-primary-500)/var(--tw-bg-opacity,1))}.hover\\:bg-primary-500\\/0:hover{background-color:rgb(var(--color-primary-500)/0)}.hover\\:bg-primary-500\\/10:hover{background-color:rgb(var(--color-primary-500)/.1)}.hover\\:bg-primary-500\\/100:hover{background-color:rgb(var(--color-primary-500)/1)}.hover\\:bg-primary-500\\/15:hover{background-color:rgb(var(--color-primary-500)/.15)}.hover\\:bg-primary-500\\/20:hover{background-color:rgb(var(--color-primary-500)/.2)}.hover\\:bg-primary-500\\/25:hover{background-color:rgb(var(--color-primary-500)/.25)}.hover\\:bg-primary-500\\/30:hover{background-color:rgb(var(--color-primary-500)/.3)}.hover\\:bg-primary-500\\/35:hover{background-color:rgb(var(--color-primary-500)/.35)}.hover\\:bg-primary-500\\/40:hover{background-color:rgb(var(--color-primary-500)/.4)}.hover\\:bg-primary-500\\/45:hover{background-color:rgb(var(--color-primary-500)/.45)}.hover\\:bg-primary-500\\/5:hover{background-color:rgb(var(--color-primary-500)/.05)}.hover\\:bg-primary-500\\/50:hover{background-color:rgb(var(--color-primary-500)/.5)}.hover\\:bg-primary-500\\/55:hover{background-color:rgb(var(--color-primary-500)/.55)}.hover\\:bg-primary-500\\/60:hover{background-color:rgb(var(--color-primary-500)/.6)}.hover\\:bg-primary-500\\/65:hover{background-color:rgb(var(--color-primary-500)/.65)}.hover\\:bg-primary-500\\/70:hover{background-color:rgb(var(--color-primary-500)/.7)}.hover\\:bg-primary-500\\/75:hover{background-color:rgb(var(--color-primary-500)/.75)}.hover\\:bg-primary-500\\/80:hover{background-color:rgb(var(--color-primary-500)/.8)}.hover\\:bg-primary-500\\/85:hover{background-color:rgb(var(--color-primary-500)/.85)}.hover\\:bg-primary-500\\/90:hover{background-color:rgb(var(--color-primary-500)/.9)}.hover\\:bg-primary-500\\/95:hover{background-color:rgb(var(--color-primary-500)/.95)}.hover\\:bg-primary-600:hover{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-600)/1);background-color:rgb(var(--color-primary-600)/var(--tw-bg-opacity,1))}.hover\\:bg-primary-600\\/0:hover{background-color:rgb(var(--color-primary-600)/0)}.hover\\:bg-primary-600\\/10:hover{background-color:rgb(var(--color-primary-600)/.1)}.hover\\:bg-primary-600\\/100:hover{background-color:rgb(var(--color-primary-600)/1)}.hover\\:bg-primary-600\\/15:hover{background-color:rgb(var(--color-primary-600)/.15)}.hover\\:bg-primary-600\\/20:hover{background-color:rgb(var(--color-primary-600)/.2)}.hover\\:bg-primary-600\\/25:hover{background-color:rgb(var(--color-primary-600)/.25)}.hover\\:bg-primary-600\\/30:hover{background-color:rgb(var(--color-primary-600)/.3)}.hover\\:bg-primary-600\\/35:hover{background-color:rgb(var(--color-primary-600)/.35)}.hover\\:bg-primary-600\\/40:hover{background-color:rgb(var(--color-primary-600)/.4)}.hover\\:bg-primary-600\\/45:hover{background-color:rgb(var(--color-primary-600)/.45)}.hover\\:bg-primary-600\\/5:hover{background-color:rgb(var(--color-primary-600)/.05)}.hover\\:bg-primary-600\\/50:hover{background-color:rgb(var(--color-primary-600)/.5)}.hover\\:bg-primary-600\\/55:hover{background-color:rgb(var(--color-primary-600)/.55)}.hover\\:bg-primary-600\\/60:hover{background-color:rgb(var(--color-primary-600)/.6)}.hover\\:bg-primary-600\\/65:hover{background-color:rgb(var(--color-primary-600)/.65)}.hover\\:bg-primary-600\\/70:hover{background-color:rgb(var(--color-primary-600)/.7)}.hover\\:bg-primary-600\\/75:hover{background-color:rgb(var(--color-primary-600)/.75)}.hover\\:bg-primary-600\\/80:hover{background-color:rgb(var(--color-primary-600)/.8)}.hover\\:bg-primary-600\\/85:hover{background-color:rgb(var(--color-primary-600)/.85)}.hover\\:bg-primary-600\\/90:hover{background-color:rgb(var(--color-primary-600)/.9)}.hover\\:bg-primary-600\\/95:hover{background-color:rgb(var(--color-primary-600)/.95)}.hover\\:bg-red-100:hover{--tw-bg-opacity:1;background-color:#fee2e2;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.hover\\:bg-red-50:hover{--tw-bg-opacity:1;background-color:#fef2f2;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.hover\\:bg-red-600:hover{--tw-bg-opacity:1;background-color:#dc2626;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.hover\\:bg-rose-100:hover{--tw-bg-opacity:1;background-color:#ffe4e6;background-color:rgb(255 228 230/var(--tw-bg-opacity,1))}.hover\\:bg-rose-50:hover{--tw-bg-opacity:1;background-color:#fff1f2;background-color:rgb(255 241 242/var(--tw-bg-opacity,1))}.hover\\:bg-rose-600:hover{--tw-bg-opacity:1;background-color:#e11d48;background-color:rgb(225 29 72/var(--tw-bg-opacity,1))}.hover\\:bg-teal-100:hover{--tw-bg-opacity:1;background-color:#ccfbf1;background-color:rgb(204 251 241/var(--tw-bg-opacity,1))}.hover\\:bg-teal-50:hover{--tw-bg-opacity:1;background-color:#f0fdfa;background-color:rgb(240 253 250/var(--tw-bg-opacity,1))}.hover\\:bg-teal-600:hover{--tw-bg-opacity:1;background-color:#0d9488;background-color:rgb(13 148 136/var(--tw-bg-opacity,1))}.hover\\:bg-white:hover{--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.hover\\:text-blue-600:hover{--tw-text-opacity:1;color:#2563eb;color:rgb(37 99 235/var(--tw-text-opacity,1))}.hover\\:text-gray-500:hover{--tw-text-opacity:1;color:rgb(var(--color-gray-500)/1);color:rgb(var(--color-gray-500)/var(--tw-text-opacity,1))}.hover\\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(var(--color-gray-600)/1);color:rgb(var(--color-gray-600)/var(--tw-text-opacity,1))}.hover\\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(var(--color-gray-700)/1);color:rgb(var(--color-gray-700)/var(--tw-text-opacity,1))}.hover\\:text-gray-900:hover{--tw-text-opacity:1;color:rgb(var(--color-gray-900)/1);color:rgb(var(--color-gray-900)/var(--tw-text-opacity,1))}.hover\\:text-green-600:hover{--tw-text-opacity:1;color:#0d9488;color:rgb(13 148 136/var(--tw-text-opacity,1))}.hover\\:text-indigo-700:hover{--tw-text-opacity:1;color:#4338ca;color:rgb(67 56 202/var(--tw-text-opacity,1))}.hover\\:text-primary-600:hover{--tw-text-opacity:1;color:rgb(var(--color-primary-600)/1);color:rgb(var(--color-primary-600)/var(--tw-text-opacity,1))}.hover\\:text-primary-600\\/0:hover{color:rgb(var(--color-primary-600)/0)}.hover\\:text-primary-600\\/10:hover{color:rgb(var(--color-primary-600)/.1)}.hover\\:text-primary-600\\/100:hover{color:rgb(var(--color-primary-600)/1)}.hover\\:text-primary-600\\/15:hover{color:rgb(var(--color-primary-600)/.15)}.hover\\:text-primary-600\\/20:hover{color:rgb(var(--color-primary-600)/.2)}.hover\\:text-primary-600\\/25:hover{color:rgb(var(--color-primary-600)/.25)}.hover\\:text-primary-600\\/30:hover{color:rgb(var(--color-primary-600)/.3)}.hover\\:text-primary-600\\/35:hover{color:rgb(var(--color-primary-600)/.35)}.hover\\:text-primary-600\\/40:hover{color:rgb(var(--color-primary-600)/.4)}.hover\\:text-primary-600\\/45:hover{color:rgb(var(--color-primary-600)/.45)}.hover\\:text-primary-600\\/5:hover{color:rgb(var(--color-primary-600)/.05)}.hover\\:text-primary-600\\/50:hover{color:rgb(var(--color-primary-600)/.5)}.hover\\:text-primary-600\\/55:hover{color:rgb(var(--color-primary-600)/.55)}.hover\\:text-primary-600\\/60:hover{color:rgb(var(--color-primary-600)/.6)}.hover\\:text-primary-600\\/65:hover{color:rgb(var(--color-primary-600)/.65)}.hover\\:text-primary-600\\/70:hover{color:rgb(var(--color-primary-600)/.7)}.hover\\:text-primary-600\\/75:hover{color:rgb(var(--color-primary-600)/.75)}.hover\\:text-primary-600\\/80:hover{color:rgb(var(--color-primary-600)/.8)}.hover\\:text-primary-600\\/85:hover{color:rgb(var(--color-primary-600)/.85)}.hover\\:text-primary-600\\/90:hover{color:rgb(var(--color-primary-600)/.9)}.hover\\:text-primary-600\\/95:hover{color:rgb(var(--color-primary-600)/.95)}.hover\\:text-red-600:hover{--tw-text-opacity:1;color:#dc2626;color:rgb(220 38 38/var(--tw-text-opacity,1))}.hover\\:text-rose-600:hover{--tw-text-opacity:1;color:#e11d48;color:rgb(225 29 72/var(--tw-text-opacity,1))}.hover\\:text-teal-600:hover{--tw-text-opacity:1;color:#0d9488;color:rgb(13 148 136/var(--tw-text-opacity,1))}.hover\\:text-white:hover{--tw-text-opacity:1;color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:file\\:bg-gray-100::file-selector-button:hover{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-100)/1);background-color:rgb(var(--color-gray-100)/var(--tw-bg-opacity,1))}.hover\\:before\\:bg-gray-50:hover:before{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(var(--color-gray-50)/1);background-color:rgb(var(--color-gray-50)/var(--tw-bg-opacity,1))}.focus\\:border-indigo-500:focus{--tw-border-opacity:1;border-color:#6366f1;border-color:rgb(99 102 241/var(--tw-border-opacity,1))}.focus\\:border-indigo-600:focus{--tw-border-opacity:1;border-color:#4f46e5;border-color:rgb(79 70 229/var(--tw-border-opacity,1))}.focus\\:shadow-none:focus{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:0 0 #0000,0 0 #0000,0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\\:outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus\\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:0 0 #fff,var(--tw-ring-shadow),0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:0 0 #fff,0 0 0 4px #2563eb,0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\\:ring-inset:focus{--tw-ring-inset:inset}.focus\\:ring-indigo-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(99 102 241/var(--tw-ring-opacity,1))}.focus\\:ring-primary-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-primary-500)/var(--tw-ring-opacity,1))}.focus\\:ring-primary-500\\/0:focus{--tw-ring-color:rgb(var(--color-primary-500)/0)}.focus\\:ring-primary-500\\/10:focus{--tw-ring-color:rgb(var(--color-primary-500)/.1)}.focus\\:ring-primary-500\\/100:focus{--tw-ring-color:rgb(var(--color-primary-500)/1)}.focus\\:ring-primary-500\\/15:focus{--tw-ring-color:rgb(var(--color-primary-500)/.15)}.focus\\:ring-primary-500\\/20:focus{--tw-ring-color:rgb(var(--color-primary-500)/.2)}.focus\\:ring-primary-500\\/25:focus{--tw-ring-color:rgb(var(--color-primary-500)/.25)}.focus\\:ring-primary-500\\/30:focus{--tw-ring-color:rgb(var(--color-primary-500)/.3)}.focus\\:ring-primary-500\\/35:focus{--tw-ring-color:rgb(var(--color-primary-500)/.35)}.focus\\:ring-primary-500\\/40:focus{--tw-ring-color:rgb(var(--color-primary-500)/.4)}.focus\\:ring-primary-500\\/45:focus{--tw-ring-color:rgb(var(--color-primary-500)/.45)}.focus\\:ring-primary-500\\/5:focus{--tw-ring-color:rgb(var(--color-primary-500)/.05)}.focus\\:ring-primary-500\\/50:focus{--tw-ring-color:rgb(var(--color-primary-500)/.5)}.focus\\:ring-primary-500\\/55:focus{--tw-ring-color:rgb(var(--color-primary-500)/.55)}.focus\\:ring-primary-500\\/60:focus{--tw-ring-color:rgb(var(--color-primary-500)/.6)}.focus\\:ring-primary-500\\/65:focus{--tw-ring-color:rgb(var(--color-primary-500)/.65)}.focus\\:ring-primary-500\\/70:focus{--tw-ring-color:rgb(var(--color-primary-500)/.7)}.focus\\:ring-primary-500\\/75:focus{--tw-ring-color:rgb(var(--color-primary-500)/.75)}.focus\\:ring-primary-500\\/80:focus{--tw-ring-color:rgb(var(--color-primary-500)/.8)}.focus\\:ring-primary-500\\/85:focus{--tw-ring-color:rgb(var(--color-primary-500)/.85)}.focus\\:ring-primary-500\\/90:focus{--tw-ring-color:rgb(var(--color-primary-500)/.9)}.focus\\:ring-primary-500\\/95:focus{--tw-ring-color:rgb(var(--color-primary-500)/.95)}.focus\\:ring-red-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(239 68 68/var(--tw-ring-opacity,1))}.focus\\:ring-red-500\\/0:focus{--tw-ring-color:#ef444400}.focus\\:ring-red-500\\/10:focus{--tw-ring-color:#ef44441a}.focus\\:ring-red-500\\/100:focus{--tw-ring-color:#ef4444}.focus\\:ring-red-500\\/15:focus{--tw-ring-color:#ef444426}.focus\\:ring-red-500\\/20:focus{--tw-ring-color:#ef444433}.focus\\:ring-red-500\\/25:focus{--tw-ring-color:#ef444440}.focus\\:ring-red-500\\/30:focus{--tw-ring-color:#ef44444d}.focus\\:ring-red-500\\/35:focus{--tw-ring-color:#ef444459}.focus\\:ring-red-500\\/40:focus{--tw-ring-color:#ef444466}.focus\\:ring-red-500\\/45:focus{--tw-ring-color:#ef444473}.focus\\:ring-red-500\\/5:focus{--tw-ring-color:#ef44440d}.focus\\:ring-red-500\\/50:focus{--tw-ring-color:#ef444480}.focus\\:ring-red-500\\/55:focus{--tw-ring-color:#ef44448c}.focus\\:ring-red-500\\/60:focus{--tw-ring-color:#ef444499}.focus\\:ring-red-500\\/65:focus{--tw-ring-color:#ef4444a6}.focus\\:ring-red-500\\/70:focus{--tw-ring-color:#ef4444b3}.focus\\:ring-red-500\\/75:focus{--tw-ring-color:#ef4444bf}.focus\\:ring-red-500\\/80:focus{--tw-ring-color:#ef4444cc}.focus\\:ring-red-500\\/85:focus{--tw-ring-color:#ef4444d9}.focus\\:ring-red-500\\/90:focus{--tw-ring-color:#ef4444e6}.focus\\:ring-red-500\\/95:focus{--tw-ring-color:#ef4444f2}.focus\\:ring-transparent:focus{--tw-ring-color:#0000}.focus\\:ring-white:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(255 255 255/var(--tw-ring-opacity,1))}.focus\\:ring-offset-transparent:focus{--tw-ring-offset-color:#0000}.focus-visible\\:outline-none:focus-visible{outline:2px solid #0000;outline-offset:2px}.focus-visible\\:outline:focus-visible{outline-style:solid}.focus-visible\\:outline-0:focus-visible{outline-width:0}.focus-visible\\:outline-2:focus-visible{outline-width:2px}.focus-visible\\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\\:outline-blue-500:focus-visible{outline-color:#3b82f6}.focus-visible\\:outline-green-500:focus-visible{outline-color:#14b8a6}.focus-visible\\:outline-primary-500:focus-visible{outline-color:rgb(var(--color-primary-500)/1)}.focus-visible\\:outline-primary-500\\/0:focus-visible{outline-color:rgb(var(--color-primary-500)/0)}.focus-visible\\:outline-primary-500\\/10:focus-visible{outline-color:rgb(var(--color-primary-500)/.1)}.focus-visible\\:outline-primary-500\\/100:focus-visible{outline-color:rgb(var(--color-primary-500)/1)}.focus-visible\\:outline-primary-500\\/15:focus-visible{outline-color:rgb(var(--color-primary-500)/.15)}.focus-visible\\:outline-primary-500\\/20:focus-visible{outline-color:rgb(var(--color-primary-500)/.2)}.focus-visible\\:outline-primary-500\\/25:focus-visible{outline-color:rgb(var(--color-primary-500)/.25)}.focus-visible\\:outline-primary-500\\/30:focus-visible{outline-color:rgb(var(--color-primary-500)/.3)}.focus-visible\\:outline-primary-500\\/35:focus-visible{outline-color:rgb(var(--color-primary-500)/.35)}.focus-visible\\:outline-primary-500\\/40:focus-visible{outline-color:rgb(var(--color-primary-500)/.4)}.focus-visible\\:outline-primary-500\\/45:focus-visible{outline-color:rgb(var(--color-primary-500)/.45)}.focus-visible\\:outline-primary-500\\/5:focus-visible{outline-color:rgb(var(--color-primary-500)/.05)}.focus-visible\\:outline-primary-500\\/50:focus-visible{outline-color:rgb(var(--color-primary-500)/.5)}.focus-visible\\:outline-primary-500\\/55:focus-visible{outline-color:rgb(var(--color-primary-500)/.55)}.focus-visible\\:outline-primary-500\\/60:focus-visible{outline-color:rgb(var(--color-primary-500)/.6)}.focus-visible\\:outline-primary-500\\/65:focus-visible{outline-color:rgb(var(--color-primary-500)/.65)}.focus-visible\\:outline-primary-500\\/70:focus-visible{outline-color:rgb(var(--color-primary-500)/.7)}.focus-visible\\:outline-primary-500\\/75:focus-visible{outline-color:rgb(var(--color-primary-500)/.75)}.focus-visible\\:outline-primary-500\\/80:focus-visible{outline-color:rgb(var(--color-primary-500)/.8)}.focus-visible\\:outline-primary-500\\/85:focus-visible{outline-color:rgb(var(--color-primary-500)/.85)}.focus-visible\\:outline-primary-500\\/90:focus-visible{outline-color:rgb(var(--color-primary-500)/.9)}.focus-visible\\:outline-primary-500\\/95:focus-visible{outline-color:rgb(var(--color-primary-500)/.95)}.focus-visible\\:outline-red-500:focus-visible{outline-color:#ef4444}.focus-visible\\:outline-rose-500:focus-visible{outline-color:#f43f5e}.focus-visible\\:outline-teal-500:focus-visible{outline-color:#14b8a6}.focus-visible\\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:0 0 #fff,0 0 0 4px #2563eb,0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\\:ring-inset:focus-visible{--tw-ring-inset:inset}.focus-visible\\:ring-blue-500:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.focus-visible\\:ring-gray-500:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-gray-500)/var(--tw-ring-opacity,1))}.focus-visible\\:ring-green-500:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(20 184 166/var(--tw-ring-opacity,1))}.focus-visible\\:ring-primary-500:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-primary-500)/var(--tw-ring-opacity,1))}.focus-visible\\:ring-primary-500\\/0:focus-visible{--tw-ring-color:rgb(var(--color-primary-500)/0)}.focus-visible\\:ring-primary-500\\/10:focus-visible{--tw-ring-color:rgb(var(--color-primary-500)/.1)}.focus-visible\\:ring-primary-500\\/100:focus-visible{--tw-ring-color:rgb(var(--color-primary-500)/1)}.focus-visible\\:ring-primary-500\\/15:focus-visible{--tw-ring-color:rgb(var(--color-primary-500)/.15)}.focus-visible\\:ring-primary-500\\/20:focus-visible{--tw-ring-color:rgb(var(--color-primary-500)/.2)}.focus-visible\\:ring-primary-500\\/25:focus-visible{--tw-ring-color:rgb(var(--color-primary-500)/.25)}.focus-visible\\:ring-primary-500\\/30:focus-visible{--tw-ring-color:rgb(var(--color-primary-500)/.3)}.focus-visible\\:ring-primary-500\\/35:focus-visible{--tw-ring-color:rgb(var(--color-primary-500)/.35)}.focus-visible\\:ring-primary-500\\/40:focus-visible{--tw-ring-color:rgb(var(--color-primary-500)/.4)}.focus-visible\\:ring-primary-500\\/45:focus-visible{--tw-ring-color:rgb(var(--color-primary-500)/.45)}.focus-visible\\:ring-primary-500\\/5:focus-visible{--tw-ring-color:rgb(var(--color-primary-500)/.05)}.focus-visible\\:ring-primary-500\\/50:focus-visible{--tw-ring-color:rgb(var(--color-primary-500)/.5)}.focus-visible\\:ring-primary-500\\/55:focus-visible{--tw-ring-color:rgb(var(--color-primary-500)/.55)}.focus-visible\\:ring-primary-500\\/60:focus-visible{--tw-ring-color:rgb(var(--color-primary-500)/.6)}.focus-visible\\:ring-primary-500\\/65:focus-visible{--tw-ring-color:rgb(var(--color-primary-500)/.65)}.focus-visible\\:ring-primary-500\\/70:focus-visible{--tw-ring-color:rgb(var(--color-primary-500)/.7)}.focus-visible\\:ring-primary-500\\/75:focus-visible{--tw-ring-color:rgb(var(--color-primary-500)/.75)}.focus-visible\\:ring-primary-500\\/80:focus-visible{--tw-ring-color:rgb(var(--color-primary-500)/.8)}.focus-visible\\:ring-primary-500\\/85:focus-visible{--tw-ring-color:rgb(var(--color-primary-500)/.85)}.focus-visible\\:ring-primary-500\\/90:focus-visible{--tw-ring-color:rgb(var(--color-primary-500)/.9)}.focus-visible\\:ring-primary-500\\/95:focus-visible{--tw-ring-color:rgb(var(--color-primary-500)/.95)}.focus-visible\\:ring-red-500:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(239 68 68/var(--tw-ring-opacity,1))}.focus-visible\\:ring-red-500\\/0:focus-visible{--tw-ring-color:#ef444400}.focus-visible\\:ring-red-500\\/10:focus-visible{--tw-ring-color:#ef44441a}.focus-visible\\:ring-red-500\\/100:focus-visible{--tw-ring-color:#ef4444}.focus-visible\\:ring-red-500\\/15:focus-visible{--tw-ring-color:#ef444426}.focus-visible\\:ring-red-500\\/20:focus-visible{--tw-ring-color:#ef444433}.focus-visible\\:ring-red-500\\/25:focus-visible{--tw-ring-color:#ef444440}.focus-visible\\:ring-red-500\\/30:focus-visible{--tw-ring-color:#ef44444d}.focus-visible\\:ring-red-500\\/35:focus-visible{--tw-ring-color:#ef444459}.focus-visible\\:ring-red-500\\/40:focus-visible{--tw-ring-color:#ef444466}.focus-visible\\:ring-red-500\\/45:focus-visible{--tw-ring-color:#ef444473}.focus-visible\\:ring-red-500\\/5:focus-visible{--tw-ring-color:#ef44440d}.focus-visible\\:ring-red-500\\/50:focus-visible{--tw-ring-color:#ef444480}.focus-visible\\:ring-red-500\\/55:focus-visible{--tw-ring-color:#ef44448c}.focus-visible\\:ring-red-500\\/60:focus-visible{--tw-ring-color:#ef444499}.focus-visible\\:ring-red-500\\/65:focus-visible{--tw-ring-color:#ef4444a6}.focus-visible\\:ring-red-500\\/70:focus-visible{--tw-ring-color:#ef4444b3}.focus-visible\\:ring-red-500\\/75:focus-visible{--tw-ring-color:#ef4444bf}.focus-visible\\:ring-red-500\\/80:focus-visible{--tw-ring-color:#ef4444cc}.focus-visible\\:ring-red-500\\/85:focus-visible{--tw-ring-color:#ef4444d9}.focus-visible\\:ring-red-500\\/90:focus-visible{--tw-ring-color:#ef4444e6}.focus-visible\\:ring-red-500\\/95:focus-visible{--tw-ring-color:#ef4444f2}.focus-visible\\:ring-rose-500:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(244 63 94/var(--tw-ring-opacity,1))}.focus-visible\\:ring-teal-500:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(20 184 166/var(--tw-ring-opacity,1))}.focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.focus-visible\\:ring-offset-white:focus-visible{--tw-ring-offset-color:#fff}.focus-visible\\:before\\:ring-1:focus-visible:before{content:var(--tw-content);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:0 0 #fff,0 0 0 1px #2563eb,0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\\:before\\:ring-inset:focus-visible:before{content:var(--tw-content);--tw-ring-inset:inset}.focus-visible\\:before\\:ring-primary-500:focus-visible:before{content:var(--tw-content);--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-primary-500)/var(--tw-ring-opacity,1))}.active\\:scale-95:active{--tw-scale-x:.95;--tw-scale-y:.95;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(.95) scaleY(.95);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))}.active\\:bg-gray-200:active{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-200)/1);background-color:rgb(var(--color-gray-200)/var(--tw-bg-opacity,1))}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:bg-blue-50:disabled{--tw-bg-opacity:1;background-color:#eff6ff;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.disabled\\:bg-blue-500:disabled{--tw-bg-opacity:1;background-color:#3b82f6;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.disabled\\:bg-gray-50:disabled{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-50)/1);background-color:rgb(var(--color-gray-50)/var(--tw-bg-opacity,1))}.disabled\\:bg-gray-900:disabled{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-900)/1);background-color:rgb(var(--color-gray-900)/var(--tw-bg-opacity,1))}.disabled\\:bg-green-50:disabled{--tw-bg-opacity:1;background-color:#f0fdfa;background-color:rgb(240 253 250/var(--tw-bg-opacity,1))}.disabled\\:bg-green-500:disabled{--tw-bg-opacity:1;background-color:#14b8a6;background-color:rgb(20 184 166/var(--tw-bg-opacity,1))}.disabled\\:bg-primary-50:disabled{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-50)/1);background-color:rgb(var(--color-primary-50)/var(--tw-bg-opacity,1))}.disabled\\:bg-primary-50\\/0:disabled{background-color:rgb(var(--color-primary-50)/0)}.disabled\\:bg-primary-50\\/10:disabled{background-color:rgb(var(--color-primary-50)/.1)}.disabled\\:bg-primary-50\\/100:disabled{background-color:rgb(var(--color-primary-50)/1)}.disabled\\:bg-primary-50\\/15:disabled{background-color:rgb(var(--color-primary-50)/.15)}.disabled\\:bg-primary-50\\/20:disabled{background-color:rgb(var(--color-primary-50)/.2)}.disabled\\:bg-primary-50\\/25:disabled{background-color:rgb(var(--color-primary-50)/.25)}.disabled\\:bg-primary-50\\/30:disabled{background-color:rgb(var(--color-primary-50)/.3)}.disabled\\:bg-primary-50\\/35:disabled{background-color:rgb(var(--color-primary-50)/.35)}.disabled\\:bg-primary-50\\/40:disabled{background-color:rgb(var(--color-primary-50)/.4)}.disabled\\:bg-primary-50\\/45:disabled{background-color:rgb(var(--color-primary-50)/.45)}.disabled\\:bg-primary-50\\/5:disabled{background-color:rgb(var(--color-primary-50)/.05)}.disabled\\:bg-primary-50\\/50:disabled{background-color:rgb(var(--color-primary-50)/.5)}.disabled\\:bg-primary-50\\/55:disabled{background-color:rgb(var(--color-primary-50)/.55)}.disabled\\:bg-primary-50\\/60:disabled{background-color:rgb(var(--color-primary-50)/.6)}.disabled\\:bg-primary-50\\/65:disabled{background-color:rgb(var(--color-primary-50)/.65)}.disabled\\:bg-primary-50\\/70:disabled{background-color:rgb(var(--color-primary-50)/.7)}.disabled\\:bg-primary-50\\/75:disabled{background-color:rgb(var(--color-primary-50)/.75)}.disabled\\:bg-primary-50\\/80:disabled{background-color:rgb(var(--color-primary-50)/.8)}.disabled\\:bg-primary-50\\/85:disabled{background-color:rgb(var(--color-primary-50)/.85)}.disabled\\:bg-primary-50\\/90:disabled{background-color:rgb(var(--color-primary-50)/.9)}.disabled\\:bg-primary-50\\/95:disabled{background-color:rgb(var(--color-primary-50)/.95)}.disabled\\:bg-primary-500:disabled{--tw-bg-opacity:1;background-color:rgb(var(--color-primary-500)/1);background-color:rgb(var(--color-primary-500)/var(--tw-bg-opacity,1))}.disabled\\:bg-primary-500\\/0:disabled{background-color:rgb(var(--color-primary-500)/0)}.disabled\\:bg-primary-500\\/10:disabled{background-color:rgb(var(--color-primary-500)/.1)}.disabled\\:bg-primary-500\\/100:disabled{background-color:rgb(var(--color-primary-500)/1)}.disabled\\:bg-primary-500\\/15:disabled{background-color:rgb(var(--color-primary-500)/.15)}.disabled\\:bg-primary-500\\/20:disabled{background-color:rgb(var(--color-primary-500)/.2)}.disabled\\:bg-primary-500\\/25:disabled{background-color:rgb(var(--color-primary-500)/.25)}.disabled\\:bg-primary-500\\/30:disabled{background-color:rgb(var(--color-primary-500)/.3)}.disabled\\:bg-primary-500\\/35:disabled{background-color:rgb(var(--color-primary-500)/.35)}.disabled\\:bg-primary-500\\/40:disabled{background-color:rgb(var(--color-primary-500)/.4)}.disabled\\:bg-primary-500\\/45:disabled{background-color:rgb(var(--color-primary-500)/.45)}.disabled\\:bg-primary-500\\/5:disabled{background-color:rgb(var(--color-primary-500)/.05)}.disabled\\:bg-primary-500\\/50:disabled{background-color:rgb(var(--color-primary-500)/.5)}.disabled\\:bg-primary-500\\/55:disabled{background-color:rgb(var(--color-primary-500)/.55)}.disabled\\:bg-primary-500\\/60:disabled{background-color:rgb(var(--color-primary-500)/.6)}.disabled\\:bg-primary-500\\/65:disabled{background-color:rgb(var(--color-primary-500)/.65)}.disabled\\:bg-primary-500\\/70:disabled{background-color:rgb(var(--color-primary-500)/.7)}.disabled\\:bg-primary-500\\/75:disabled{background-color:rgb(var(--color-primary-500)/.75)}.disabled\\:bg-primary-500\\/80:disabled{background-color:rgb(var(--color-primary-500)/.8)}.disabled\\:bg-primary-500\\/85:disabled{background-color:rgb(var(--color-primary-500)/.85)}.disabled\\:bg-primary-500\\/90:disabled{background-color:rgb(var(--color-primary-500)/.9)}.disabled\\:bg-primary-500\\/95:disabled{background-color:rgb(var(--color-primary-500)/.95)}.disabled\\:bg-red-50:disabled{--tw-bg-opacity:1;background-color:#fef2f2;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.disabled\\:bg-red-500:disabled{--tw-bg-opacity:1;background-color:#ef4444;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.disabled\\:bg-rose-50:disabled{--tw-bg-opacity:1;background-color:#fff1f2;background-color:rgb(255 241 242/var(--tw-bg-opacity,1))}.disabled\\:bg-rose-500:disabled{--tw-bg-opacity:1;background-color:#f43f5e;background-color:rgb(244 63 94/var(--tw-bg-opacity,1))}.disabled\\:bg-teal-50:disabled{--tw-bg-opacity:1;background-color:#f0fdfa;background-color:rgb(240 253 250/var(--tw-bg-opacity,1))}.disabled\\:bg-teal-500:disabled{--tw-bg-opacity:1;background-color:#14b8a6;background-color:rgb(20 184 166/var(--tw-bg-opacity,1))}.disabled\\:bg-transparent:disabled{background-color:initial}.disabled\\:bg-white:disabled{--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.disabled\\:bg-opacity-50:disabled{--tw-bg-opacity:.5}.disabled\\:text-blue-500:disabled{--tw-text-opacity:1;color:#3b82f6;color:rgb(59 130 246/var(--tw-text-opacity,1))}.disabled\\:text-green-500:disabled{--tw-text-opacity:1;color:#14b8a6;color:rgb(20 184 166/var(--tw-text-opacity,1))}.disabled\\:text-primary-500:disabled{--tw-text-opacity:1;color:rgb(var(--color-primary-500)/1);color:rgb(var(--color-primary-500)/var(--tw-text-opacity,1))}.disabled\\:text-primary-500\\/0:disabled{color:rgb(var(--color-primary-500)/0)}.disabled\\:text-primary-500\\/10:disabled{color:rgb(var(--color-primary-500)/.1)}.disabled\\:text-primary-500\\/100:disabled{color:rgb(var(--color-primary-500)/1)}.disabled\\:text-primary-500\\/15:disabled{color:rgb(var(--color-primary-500)/.15)}.disabled\\:text-primary-500\\/20:disabled{color:rgb(var(--color-primary-500)/.2)}.disabled\\:text-primary-500\\/25:disabled{color:rgb(var(--color-primary-500)/.25)}.disabled\\:text-primary-500\\/30:disabled{color:rgb(var(--color-primary-500)/.3)}.disabled\\:text-primary-500\\/35:disabled{color:rgb(var(--color-primary-500)/.35)}.disabled\\:text-primary-500\\/40:disabled{color:rgb(var(--color-primary-500)/.4)}.disabled\\:text-primary-500\\/45:disabled{color:rgb(var(--color-primary-500)/.45)}.disabled\\:text-primary-500\\/5:disabled{color:rgb(var(--color-primary-500)/.05)}.disabled\\:text-primary-500\\/50:disabled{color:rgb(var(--color-primary-500)/.5)}.disabled\\:text-primary-500\\/55:disabled{color:rgb(var(--color-primary-500)/.55)}.disabled\\:text-primary-500\\/60:disabled{color:rgb(var(--color-primary-500)/.6)}.disabled\\:text-primary-500\\/65:disabled{color:rgb(var(--color-primary-500)/.65)}.disabled\\:text-primary-500\\/70:disabled{color:rgb(var(--color-primary-500)/.7)}.disabled\\:text-primary-500\\/75:disabled{color:rgb(var(--color-primary-500)/.75)}.disabled\\:text-primary-500\\/80:disabled{color:rgb(var(--color-primary-500)/.8)}.disabled\\:text-primary-500\\/85:disabled{color:rgb(var(--color-primary-500)/.85)}.disabled\\:text-primary-500\\/90:disabled{color:rgb(var(--color-primary-500)/.9)}.disabled\\:text-primary-500\\/95:disabled{color:rgb(var(--color-primary-500)/.95)}.disabled\\:text-red-500:disabled{--tw-text-opacity:1;color:#ef4444;color:rgb(239 68 68/var(--tw-text-opacity,1))}.disabled\\:text-rose-500:disabled{--tw-text-opacity:1;color:#f43f5e;color:rgb(244 63 94/var(--tw-text-opacity,1))}.disabled\\:text-teal-500:disabled{--tw-text-opacity:1;color:#14b8a6;color:rgb(20 184 166/var(--tw-text-opacity,1))}.disabled\\:opacity-50:disabled{opacity:.5}.disabled\\:opacity-75:disabled{opacity:.75}.group:hover .group-hover\\:pointer-events-auto{pointer-events:auto}.group:hover .group-hover\\:text-gray-500{--tw-text-opacity:1;color:rgb(var(--color-gray-500)/1);color:rgb(var(--color-gray-500)/var(--tw-text-opacity,1))}.group:hover .group-hover\\:text-gray-700{--tw-text-opacity:1;color:rgb(var(--color-gray-700)/1);color:rgb(var(--color-gray-700)/var(--tw-text-opacity,1))}.group:hover .group-hover\\:text-indigo-500{--tw-text-opacity:1;color:#6366f1;color:rgb(99 102 241/var(--tw-text-opacity,1))}.group:hover .group-hover\\:opacity-100{opacity:1}.peer:disabled~.peer-disabled\\:bg-opacity-50{--tw-bg-opacity:.5}.group[data-popper-placement*=bottom] .group-data-\\[popper-placement\\*\\=\\'bottom\\'\\]\\:-top-1{top:-.25rem}.group[data-popper-placement*=left] .group-data-\\[popper-placement\\*\\=\\'left\\'\\]\\:-right-1{right:-.25rem}.group[data-popper-placement*=right] .group-data-\\[popper-placement\\*\\=\\'right\\'\\]\\:-left-1{left:-.25rem}.group[data-popper-placement*=top] .group-data-\\[popper-placement\\*\\=\\'top\\'\\]\\:-bottom-1{bottom:-.25rem}:where([data-headlessui-focus-visible]) .ui-focus-visible\\:outline-0:focus{outline-width:0}:where([data-headlessui-focus-visible]) .ui-focus-visible\\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:0 0 #fff,0 0 0 4px #2563eb,0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}:where([data-headlessui-focus-visible]) .ui-focus-visible\\:ring-primary-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-primary-500)/var(--tw-ring-opacity,1))}.ui-not-focus-visible\\:outline-none:focus:where(:not([data-headlessui-focus-visible] .ui-not-focus-visible\\:outline-none)){outline:2px solid #0000;outline-offset:2px}.dark\\:block:is(.dark *){display:block}.dark\\:hidden:is(.dark *){display:none}.dark\\:divide-gray-600:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(var(--color-gray-600)/var(--tw-divide-opacity,1))}.dark\\:divide-gray-700:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(var(--color-gray-700)/var(--tw-divide-opacity,1))}.dark\\:divide-gray-800:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(var(--color-gray-800)/var(--tw-divide-opacity,1))}.dark\\:divide-gray-900:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(var(--color-gray-900)/var(--tw-divide-opacity,1))}.dark\\:border-gray-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(var(--color-gray-600)/var(--tw-border-opacity,1))}.dark\\:border-gray-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(var(--color-gray-700)/var(--tw-border-opacity,1))}.dark\\:border-gray-700\\/50:is(.dark *){border-color:rgb(var(--color-gray-700)/.5)}.dark\\:border-gray-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(var(--color-gray-800)/var(--tw-border-opacity,1))}.dark\\:border-gray-900:is(.dark *){--tw-border-opacity:1;border-color:rgb(var(--color-gray-900)/var(--tw-border-opacity,1))}.dark\\:border-indigo-400:is(.dark *){--tw-border-opacity:1;border-color:#818cf8;border-color:rgb(129 140 248/var(--tw-border-opacity,1))}.dark\\:border-indigo-800:is(.dark *){--tw-border-opacity:1;border-color:#3730a3;border-color:rgb(55 48 163/var(--tw-border-opacity,1))}.dark\\:border-red-800:is(.dark *){--tw-border-opacity:1;border-color:#991b1b;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.dark\\:border-rose-400\\/50:is(.dark *){border-color:#fb718580}.dark\\:border-yellow-800:is(.dark *){--tw-border-opacity:1;border-color:#92400e;border-color:rgb(146 64 14/var(--tw-border-opacity,1))}.dark\\:bg-\\[\\#242A2E\\]:is(.dark *){--tw-bg-opacity:1;background-color:#242a2e;background-color:rgb(36 42 46/var(--tw-bg-opacity,1))}.dark\\:bg-amber-400:is(.dark *){--tw-bg-opacity:1;background-color:#fbbf24;background-color:rgb(251 191 36/var(--tw-bg-opacity,1))}.dark\\:bg-amber-400\\/0:is(.dark *){background-color:#fbbf2400}.dark\\:bg-amber-400\\/10:is(.dark *){background-color:#fbbf241a}.dark\\:bg-amber-400\\/100:is(.dark *){background-color:#fbbf24}.dark\\:bg-amber-400\\/15:is(.dark *){background-color:#fbbf2426}.dark\\:bg-amber-400\\/20:is(.dark *){background-color:#fbbf2433}.dark\\:bg-amber-400\\/25:is(.dark *){background-color:#fbbf2440}.dark\\:bg-amber-400\\/30:is(.dark *){background-color:#fbbf244d}.dark\\:bg-amber-400\\/35:is(.dark *){background-color:#fbbf2459}.dark\\:bg-amber-400\\/40:is(.dark *){background-color:#fbbf2466}.dark\\:bg-amber-400\\/45:is(.dark *){background-color:#fbbf2473}.dark\\:bg-amber-400\\/5:is(.dark *){background-color:#fbbf240d}.dark\\:bg-amber-400\\/50:is(.dark *){background-color:#fbbf2480}.dark\\:bg-amber-400\\/55:is(.dark *){background-color:#fbbf248c}.dark\\:bg-amber-400\\/60:is(.dark *){background-color:#fbbf2499}.dark\\:bg-amber-400\\/65:is(.dark *){background-color:#fbbf24a6}.dark\\:bg-amber-400\\/70:is(.dark *){background-color:#fbbf24b3}.dark\\:bg-amber-400\\/75:is(.dark *){background-color:#fbbf24bf}.dark\\:bg-amber-400\\/80:is(.dark *){background-color:#fbbf24cc}.dark\\:bg-amber-400\\/85:is(.dark *){background-color:#fbbf24d9}.dark\\:bg-amber-400\\/90:is(.dark *){background-color:#fbbf24e6}.dark\\:bg-amber-400\\/95:is(.dark *){background-color:#fbbf24f2}.dark\\:bg-backdrop-dark:is(.dark *){--tw-bg-opacity:1;background-color:#333;background-color:rgb(51 51 51/var(--tw-bg-opacity,1))}.dark\\:bg-backdrop-dark\\/50:is(.dark *){background-color:#33333380}.dark\\:bg-black:is(.dark *){--tw-bg-opacity:1;background-color:#000;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.dark\\:bg-blue-400:is(.dark *){--tw-bg-opacity:1;background-color:#60a5fa;background-color:rgb(96 165 250/var(--tw-bg-opacity,1))}.dark\\:bg-blue-400\\/0:is(.dark *){background-color:#60a5fa00}.dark\\:bg-blue-400\\/10:is(.dark *){background-color:#60a5fa1a}.dark\\:bg-blue-400\\/100:is(.dark *){background-color:#60a5fa}.dark\\:bg-blue-400\\/15:is(.dark *){background-color:#60a5fa26}.dark\\:bg-blue-400\\/20:is(.dark *){background-color:#60a5fa33}.dark\\:bg-blue-400\\/25:is(.dark *){background-color:#60a5fa40}.dark\\:bg-blue-400\\/30:is(.dark *){background-color:#60a5fa4d}.dark\\:bg-blue-400\\/35:is(.dark *){background-color:#60a5fa59}.dark\\:bg-blue-400\\/40:is(.dark *){background-color:#60a5fa66}.dark\\:bg-blue-400\\/45:is(.dark *){background-color:#60a5fa73}.dark\\:bg-blue-400\\/5:is(.dark *){background-color:#60a5fa0d}.dark\\:bg-blue-400\\/50:is(.dark *){background-color:#60a5fa80}.dark\\:bg-blue-400\\/55:is(.dark *){background-color:#60a5fa8c}.dark\\:bg-blue-400\\/60:is(.dark *){background-color:#60a5fa99}.dark\\:bg-blue-400\\/65:is(.dark *){background-color:#60a5faa6}.dark\\:bg-blue-400\\/70:is(.dark *){background-color:#60a5fab3}.dark\\:bg-blue-400\\/75:is(.dark *){background-color:#60a5fabf}.dark\\:bg-blue-400\\/80:is(.dark *){background-color:#60a5facc}.dark\\:bg-blue-400\\/85:is(.dark *){background-color:#60a5fad9}.dark\\:bg-blue-400\\/90:is(.dark *){background-color:#60a5fae6}.dark\\:bg-blue-400\\/95:is(.dark *){background-color:#60a5faf2}.dark\\:bg-blue-900\\/20:is(.dark *){background-color:#1e3a8a33}.dark\\:bg-blue-950:is(.dark *){--tw-bg-opacity:1;background-color:#172554;background-color:rgb(23 37 84/var(--tw-bg-opacity,1))}.dark\\:bg-cyan-400:is(.dark *){--tw-bg-opacity:1;background-color:#22d3ee;background-color:rgb(34 211 238/var(--tw-bg-opacity,1))}.dark\\:bg-cyan-400\\/0:is(.dark *){background-color:#22d3ee00}.dark\\:bg-cyan-400\\/10:is(.dark *){background-color:#22d3ee1a}.dark\\:bg-cyan-400\\/100:is(.dark *){background-color:#22d3ee}.dark\\:bg-cyan-400\\/15:is(.dark *){background-color:#22d3ee26}.dark\\:bg-cyan-400\\/20:is(.dark *){background-color:#22d3ee33}.dark\\:bg-cyan-400\\/25:is(.dark *){background-color:#22d3ee40}.dark\\:bg-cyan-400\\/30:is(.dark *){background-color:#22d3ee4d}.dark\\:bg-cyan-400\\/35:is(.dark *){background-color:#22d3ee59}.dark\\:bg-cyan-400\\/40:is(.dark *){background-color:#22d3ee66}.dark\\:bg-cyan-400\\/45:is(.dark *){background-color:#22d3ee73}.dark\\:bg-cyan-400\\/5:is(.dark *){background-color:#22d3ee0d}.dark\\:bg-cyan-400\\/50:is(.dark *){background-color:#22d3ee80}.dark\\:bg-cyan-400\\/55:is(.dark *){background-color:#22d3ee8c}.dark\\:bg-cyan-400\\/60:is(.dark *){background-color:#22d3ee99}.dark\\:bg-cyan-400\\/65:is(.dark *){background-color:#22d3eea6}.dark\\:bg-cyan-400\\/70:is(.dark *){background-color:#22d3eeb3}.dark\\:bg-cyan-400\\/75:is(.dark *){background-color:#22d3eebf}.dark\\:bg-cyan-400\\/80:is(.dark *){background-color:#22d3eecc}.dark\\:bg-cyan-400\\/85:is(.dark *){background-color:#22d3eed9}.dark\\:bg-cyan-400\\/90:is(.dark *){background-color:#22d3eee6}.dark\\:bg-cyan-400\\/95:is(.dark *){background-color:#22d3eef2}.dark\\:bg-emerald-400:is(.dark *){--tw-bg-opacity:1;background-color:#34d399;background-color:rgb(52 211 153/var(--tw-bg-opacity,1))}.dark\\:bg-emerald-400\\/0:is(.dark *){background-color:#34d39900}.dark\\:bg-emerald-400\\/10:is(.dark *){background-color:#34d3991a}.dark\\:bg-emerald-400\\/100:is(.dark *){background-color:#34d399}.dark\\:bg-emerald-400\\/15:is(.dark *){background-color:#34d39926}.dark\\:bg-emerald-400\\/20:is(.dark *){background-color:#34d39933}.dark\\:bg-emerald-400\\/25:is(.dark *){background-color:#34d39940}.dark\\:bg-emerald-400\\/30:is(.dark *){background-color:#34d3994d}.dark\\:bg-emerald-400\\/35:is(.dark *){background-color:#34d39959}.dark\\:bg-emerald-400\\/40:is(.dark *){background-color:#34d39966}.dark\\:bg-emerald-400\\/45:is(.dark *){background-color:#34d39973}.dark\\:bg-emerald-400\\/5:is(.dark *){background-color:#34d3990d}.dark\\:bg-emerald-400\\/50:is(.dark *){background-color:#34d39980}.dark\\:bg-emerald-400\\/55:is(.dark *){background-color:#34d3998c}.dark\\:bg-emerald-400\\/60:is(.dark *){background-color:#34d39999}.dark\\:bg-emerald-400\\/65:is(.dark *){background-color:#34d399a6}.dark\\:bg-emerald-400\\/70:is(.dark *){background-color:#34d399b3}.dark\\:bg-emerald-400\\/75:is(.dark *){background-color:#34d399bf}.dark\\:bg-emerald-400\\/80:is(.dark *){background-color:#34d399cc}.dark\\:bg-emerald-400\\/85:is(.dark *){background-color:#34d399d9}.dark\\:bg-emerald-400\\/90:is(.dark *){background-color:#34d399e6}.dark\\:bg-emerald-400\\/95:is(.dark *){background-color:#34d399f2}.dark\\:bg-fuchsia-400:is(.dark *){--tw-bg-opacity:1;background-color:#e879f9;background-color:rgb(232 121 249/var(--tw-bg-opacity,1))}.dark\\:bg-fuchsia-400\\/0:is(.dark *){background-color:#e879f900}.dark\\:bg-fuchsia-400\\/10:is(.dark *){background-color:#e879f91a}.dark\\:bg-fuchsia-400\\/100:is(.dark *){background-color:#e879f9}.dark\\:bg-fuchsia-400\\/15:is(.dark *){background-color:#e879f926}.dark\\:bg-fuchsia-400\\/20:is(.dark *){background-color:#e879f933}.dark\\:bg-fuchsia-400\\/25:is(.dark *){background-color:#e879f940}.dark\\:bg-fuchsia-400\\/30:is(.dark *){background-color:#e879f94d}.dark\\:bg-fuchsia-400\\/35:is(.dark *){background-color:#e879f959}.dark\\:bg-fuchsia-400\\/40:is(.dark *){background-color:#e879f966}.dark\\:bg-fuchsia-400\\/45:is(.dark *){background-color:#e879f973}.dark\\:bg-fuchsia-400\\/5:is(.dark *){background-color:#e879f90d}.dark\\:bg-fuchsia-400\\/50:is(.dark *){background-color:#e879f980}.dark\\:bg-fuchsia-400\\/55:is(.dark *){background-color:#e879f98c}.dark\\:bg-fuchsia-400\\/60:is(.dark *){background-color:#e879f999}.dark\\:bg-fuchsia-400\\/65:is(.dark *){background-color:#e879f9a6}.dark\\:bg-fuchsia-400\\/70:is(.dark *){background-color:#e879f9b3}.dark\\:bg-fuchsia-400\\/75:is(.dark *){background-color:#e879f9bf}.dark\\:bg-fuchsia-400\\/80:is(.dark *){background-color:#e879f9cc}.dark\\:bg-fuchsia-400\\/85:is(.dark *){background-color:#e879f9d9}.dark\\:bg-fuchsia-400\\/90:is(.dark *){background-color:#e879f9e6}.dark\\:bg-fuchsia-400\\/95:is(.dark *){background-color:#e879f9f2}.dark\\:bg-gray-400:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-gray-400)/1);background-color:rgb(var(--color-gray-400)/var(--tw-bg-opacity,1))}.dark\\:bg-gray-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-gray-600)/1);background-color:rgb(var(--color-gray-600)/var(--tw-bg-opacity,1))}.dark\\:bg-gray-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-gray-700)/1);background-color:rgb(var(--color-gray-700)/var(--tw-bg-opacity,1))}.dark\\:bg-gray-700\\/50:is(.dark *){background-color:rgb(var(--color-gray-700)/.5)}.dark\\:bg-gray-700\\/60:is(.dark *){background-color:rgb(var(--color-gray-700)/.6)}.dark\\:bg-gray-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-gray-800)/1);background-color:rgb(var(--color-gray-800)/var(--tw-bg-opacity,1))}.dark\\:bg-gray-800\\/30:is(.dark *){background-color:rgb(var(--color-gray-800)/.3)}.dark\\:bg-gray-800\\/50:is(.dark *){background-color:rgb(var(--color-gray-800)/.5)}.dark\\:bg-gray-800\\/75:is(.dark *){background-color:rgb(var(--color-gray-800)/.75)}.dark\\:bg-gray-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-gray-900)/1);background-color:rgb(var(--color-gray-900)/var(--tw-bg-opacity,1))}.dark\\:bg-gray-900\\/20:is(.dark *){background-color:rgb(var(--color-gray-900)/.2)}.dark\\:bg-gray-900\\/30:is(.dark *){background-color:rgb(var(--color-gray-900)/.3)}.dark\\:bg-gray-900\\/50:is(.dark *){background-color:rgb(var(--color-gray-900)/.5)}.dark\\:bg-green-400:is(.dark *){--tw-bg-opacity:1;background-color:#2dd4bf;background-color:rgb(45 212 191/var(--tw-bg-opacity,1))}.dark\\:bg-green-400\\/0:is(.dark *){background-color:#2dd4bf00}.dark\\:bg-green-400\\/10:is(.dark *){background-color:#2dd4bf1a}.dark\\:bg-green-400\\/100:is(.dark *){background-color:#2dd4bf}.dark\\:bg-green-400\\/15:is(.dark *){background-color:#2dd4bf26}.dark\\:bg-green-400\\/20:is(.dark *){background-color:#2dd4bf33}.dark\\:bg-green-400\\/25:is(.dark *){background-color:#2dd4bf40}.dark\\:bg-green-400\\/30:is(.dark *){background-color:#2dd4bf4d}.dark\\:bg-green-400\\/35:is(.dark *){background-color:#2dd4bf59}.dark\\:bg-green-400\\/40:is(.dark *){background-color:#2dd4bf66}.dark\\:bg-green-400\\/45:is(.dark *){background-color:#2dd4bf73}.dark\\:bg-green-400\\/5:is(.dark *){background-color:#2dd4bf0d}.dark\\:bg-green-400\\/50:is(.dark *){background-color:#2dd4bf80}.dark\\:bg-green-400\\/55:is(.dark *){background-color:#2dd4bf8c}.dark\\:bg-green-400\\/60:is(.dark *){background-color:#2dd4bf99}.dark\\:bg-green-400\\/65:is(.dark *){background-color:#2dd4bfa6}.dark\\:bg-green-400\\/70:is(.dark *){background-color:#2dd4bfb3}.dark\\:bg-green-400\\/75:is(.dark *){background-color:#2dd4bfbf}.dark\\:bg-green-400\\/80:is(.dark *){background-color:#2dd4bfcc}.dark\\:bg-green-400\\/85:is(.dark *){background-color:#2dd4bfd9}.dark\\:bg-green-400\\/90:is(.dark *){background-color:#2dd4bfe6}.dark\\:bg-green-400\\/95:is(.dark *){background-color:#2dd4bff2}.dark\\:bg-green-900\\/20:is(.dark *){background-color:#134e4a33}.dark\\:bg-green-950:is(.dark *){--tw-bg-opacity:1;background-color:#042f2e;background-color:rgb(4 47 46/var(--tw-bg-opacity,1))}.dark\\:bg-indigo-400:is(.dark *){--tw-bg-opacity:1;background-color:#818cf8;background-color:rgb(129 140 248/var(--tw-bg-opacity,1))}.dark\\:bg-indigo-400\\/0:is(.dark *){background-color:#818cf800}.dark\\:bg-indigo-400\\/10:is(.dark *){background-color:#818cf81a}.dark\\:bg-indigo-400\\/100:is(.dark *){background-color:#818cf8}.dark\\:bg-indigo-400\\/15:is(.dark *){background-color:#818cf826}.dark\\:bg-indigo-400\\/20:is(.dark *){background-color:#818cf833}.dark\\:bg-indigo-400\\/25:is(.dark *){background-color:#818cf840}.dark\\:bg-indigo-400\\/30:is(.dark *){background-color:#818cf84d}.dark\\:bg-indigo-400\\/35:is(.dark *){background-color:#818cf859}.dark\\:bg-indigo-400\\/40:is(.dark *){background-color:#818cf866}.dark\\:bg-indigo-400\\/45:is(.dark *){background-color:#818cf873}.dark\\:bg-indigo-400\\/5:is(.dark *){background-color:#818cf80d}.dark\\:bg-indigo-400\\/50:is(.dark *){background-color:#818cf880}.dark\\:bg-indigo-400\\/55:is(.dark *){background-color:#818cf88c}.dark\\:bg-indigo-400\\/60:is(.dark *){background-color:#818cf899}.dark\\:bg-indigo-400\\/65:is(.dark *){background-color:#818cf8a6}.dark\\:bg-indigo-400\\/70:is(.dark *){background-color:#818cf8b3}.dark\\:bg-indigo-400\\/75:is(.dark *){background-color:#818cf8bf}.dark\\:bg-indigo-400\\/80:is(.dark *){background-color:#818cf8cc}.dark\\:bg-indigo-400\\/85:is(.dark *){background-color:#818cf8d9}.dark\\:bg-indigo-400\\/90:is(.dark *){background-color:#818cf8e6}.dark\\:bg-indigo-400\\/95:is(.dark *){background-color:#818cf8f2}.dark\\:bg-indigo-900\\/20:is(.dark *){background-color:#312e8133}.dark\\:bg-indigo-900\\/30:is(.dark *){background-color:#312e814d}.dark\\:bg-lime-400:is(.dark *){--tw-bg-opacity:1;background-color:#a3e635;background-color:rgb(163 230 53/var(--tw-bg-opacity,1))}.dark\\:bg-lime-400\\/0:is(.dark *){background-color:#a3e63500}.dark\\:bg-lime-400\\/10:is(.dark *){background-color:#a3e6351a}.dark\\:bg-lime-400\\/100:is(.dark *){background-color:#a3e635}.dark\\:bg-lime-400\\/15:is(.dark *){background-color:#a3e63526}.dark\\:bg-lime-400\\/20:is(.dark *){background-color:#a3e63533}.dark\\:bg-lime-400\\/25:is(.dark *){background-color:#a3e63540}.dark\\:bg-lime-400\\/30:is(.dark *){background-color:#a3e6354d}.dark\\:bg-lime-400\\/35:is(.dark *){background-color:#a3e63559}.dark\\:bg-lime-400\\/40:is(.dark *){background-color:#a3e63566}.dark\\:bg-lime-400\\/45:is(.dark *){background-color:#a3e63573}.dark\\:bg-lime-400\\/5:is(.dark *){background-color:#a3e6350d}.dark\\:bg-lime-400\\/50:is(.dark *){background-color:#a3e63580}.dark\\:bg-lime-400\\/55:is(.dark *){background-color:#a3e6358c}.dark\\:bg-lime-400\\/60:is(.dark *){background-color:#a3e63599}.dark\\:bg-lime-400\\/65:is(.dark *){background-color:#a3e635a6}.dark\\:bg-lime-400\\/70:is(.dark *){background-color:#a3e635b3}.dark\\:bg-lime-400\\/75:is(.dark *){background-color:#a3e635bf}.dark\\:bg-lime-400\\/80:is(.dark *){background-color:#a3e635cc}.dark\\:bg-lime-400\\/85:is(.dark *){background-color:#a3e635d9}.dark\\:bg-lime-400\\/90:is(.dark *){background-color:#a3e635e6}.dark\\:bg-lime-400\\/95:is(.dark *){background-color:#a3e635f2}.dark\\:bg-orange-400:is(.dark *){--tw-bg-opacity:1;background-color:#fb923c;background-color:rgb(251 146 60/var(--tw-bg-opacity,1))}.dark\\:bg-orange-400\\/0:is(.dark *){background-color:#fb923c00}.dark\\:bg-orange-400\\/10:is(.dark *){background-color:#fb923c1a}.dark\\:bg-orange-400\\/100:is(.dark *){background-color:#fb923c}.dark\\:bg-orange-400\\/15:is(.dark *){background-color:#fb923c26}.dark\\:bg-orange-400\\/20:is(.dark *){background-color:#fb923c33}.dark\\:bg-orange-400\\/25:is(.dark *){background-color:#fb923c40}.dark\\:bg-orange-400\\/30:is(.dark *){background-color:#fb923c4d}.dark\\:bg-orange-400\\/35:is(.dark *){background-color:#fb923c59}.dark\\:bg-orange-400\\/40:is(.dark *){background-color:#fb923c66}.dark\\:bg-orange-400\\/45:is(.dark *){background-color:#fb923c73}.dark\\:bg-orange-400\\/5:is(.dark *){background-color:#fb923c0d}.dark\\:bg-orange-400\\/50:is(.dark *){background-color:#fb923c80}.dark\\:bg-orange-400\\/55:is(.dark *){background-color:#fb923c8c}.dark\\:bg-orange-400\\/60:is(.dark *){background-color:#fb923c99}.dark\\:bg-orange-400\\/65:is(.dark *){background-color:#fb923ca6}.dark\\:bg-orange-400\\/70:is(.dark *){background-color:#fb923cb3}.dark\\:bg-orange-400\\/75:is(.dark *){background-color:#fb923cbf}.dark\\:bg-orange-400\\/80:is(.dark *){background-color:#fb923ccc}.dark\\:bg-orange-400\\/85:is(.dark *){background-color:#fb923cd9}.dark\\:bg-orange-400\\/90:is(.dark *){background-color:#fb923ce6}.dark\\:bg-orange-400\\/95:is(.dark *){background-color:#fb923cf2}.dark\\:bg-orange-900\\/20:is(.dark *){background-color:#7c2d1233}.dark\\:bg-pink-400:is(.dark *){--tw-bg-opacity:1;background-color:#f472b6;background-color:rgb(244 114 182/var(--tw-bg-opacity,1))}.dark\\:bg-pink-400\\/0:is(.dark *){background-color:#f472b600}.dark\\:bg-pink-400\\/10:is(.dark *){background-color:#f472b61a}.dark\\:bg-pink-400\\/100:is(.dark *){background-color:#f472b6}.dark\\:bg-pink-400\\/15:is(.dark *){background-color:#f472b626}.dark\\:bg-pink-400\\/20:is(.dark *){background-color:#f472b633}.dark\\:bg-pink-400\\/25:is(.dark *){background-color:#f472b640}.dark\\:bg-pink-400\\/30:is(.dark *){background-color:#f472b64d}.dark\\:bg-pink-400\\/35:is(.dark *){background-color:#f472b659}.dark\\:bg-pink-400\\/40:is(.dark *){background-color:#f472b666}.dark\\:bg-pink-400\\/45:is(.dark *){background-color:#f472b673}.dark\\:bg-pink-400\\/5:is(.dark *){background-color:#f472b60d}.dark\\:bg-pink-400\\/50:is(.dark *){background-color:#f472b680}.dark\\:bg-pink-400\\/55:is(.dark *){background-color:#f472b68c}.dark\\:bg-pink-400\\/60:is(.dark *){background-color:#f472b699}.dark\\:bg-pink-400\\/65:is(.dark *){background-color:#f472b6a6}.dark\\:bg-pink-400\\/70:is(.dark *){background-color:#f472b6b3}.dark\\:bg-pink-400\\/75:is(.dark *){background-color:#f472b6bf}.dark\\:bg-pink-400\\/80:is(.dark *){background-color:#f472b6cc}.dark\\:bg-pink-400\\/85:is(.dark *){background-color:#f472b6d9}.dark\\:bg-pink-400\\/90:is(.dark *){background-color:#f472b6e6}.dark\\:bg-pink-400\\/95:is(.dark *){background-color:#f472b6f2}.dark\\:bg-primary-400:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-primary-400)/1);background-color:rgb(var(--color-primary-400)/var(--tw-bg-opacity,1))}.dark\\:bg-primary-400\\/0:is(.dark *){background-color:rgb(var(--color-primary-400)/0)}.dark\\:bg-primary-400\\/10:is(.dark *){background-color:rgb(var(--color-primary-400)/.1)}.dark\\:bg-primary-400\\/100:is(.dark *){background-color:rgb(var(--color-primary-400)/1)}.dark\\:bg-primary-400\\/15:is(.dark *){background-color:rgb(var(--color-primary-400)/.15)}.dark\\:bg-primary-400\\/20:is(.dark *){background-color:rgb(var(--color-primary-400)/.2)}.dark\\:bg-primary-400\\/25:is(.dark *){background-color:rgb(var(--color-primary-400)/.25)}.dark\\:bg-primary-400\\/30:is(.dark *){background-color:rgb(var(--color-primary-400)/.3)}.dark\\:bg-primary-400\\/35:is(.dark *){background-color:rgb(var(--color-primary-400)/.35)}.dark\\:bg-primary-400\\/40:is(.dark *){background-color:rgb(var(--color-primary-400)/.4)}.dark\\:bg-primary-400\\/45:is(.dark *){background-color:rgb(var(--color-primary-400)/.45)}.dark\\:bg-primary-400\\/5:is(.dark *){background-color:rgb(var(--color-primary-400)/.05)}.dark\\:bg-primary-400\\/50:is(.dark *){background-color:rgb(var(--color-primary-400)/.5)}.dark\\:bg-primary-400\\/55:is(.dark *){background-color:rgb(var(--color-primary-400)/.55)}.dark\\:bg-primary-400\\/60:is(.dark *){background-color:rgb(var(--color-primary-400)/.6)}.dark\\:bg-primary-400\\/65:is(.dark *){background-color:rgb(var(--color-primary-400)/.65)}.dark\\:bg-primary-400\\/70:is(.dark *){background-color:rgb(var(--color-primary-400)/.7)}.dark\\:bg-primary-400\\/75:is(.dark *){background-color:rgb(var(--color-primary-400)/.75)}.dark\\:bg-primary-400\\/80:is(.dark *){background-color:rgb(var(--color-primary-400)/.8)}.dark\\:bg-primary-400\\/85:is(.dark *){background-color:rgb(var(--color-primary-400)/.85)}.dark\\:bg-primary-400\\/90:is(.dark *){background-color:rgb(var(--color-primary-400)/.9)}.dark\\:bg-primary-400\\/95:is(.dark *){background-color:rgb(var(--color-primary-400)/.95)}.dark\\:bg-primary-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-primary-900)/1);background-color:rgb(var(--color-primary-900)/var(--tw-bg-opacity,1))}.dark\\:bg-primary-950:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-primary-950)/1);background-color:rgb(var(--color-primary-950)/var(--tw-bg-opacity,1))}.dark\\:bg-primary-950\\/0:is(.dark *){background-color:rgb(var(--color-primary-950)/0)}.dark\\:bg-primary-950\\/10:is(.dark *){background-color:rgb(var(--color-primary-950)/.1)}.dark\\:bg-primary-950\\/100:is(.dark *){background-color:rgb(var(--color-primary-950)/1)}.dark\\:bg-primary-950\\/15:is(.dark *){background-color:rgb(var(--color-primary-950)/.15)}.dark\\:bg-primary-950\\/20:is(.dark *){background-color:rgb(var(--color-primary-950)/.2)}.dark\\:bg-primary-950\\/25:is(.dark *){background-color:rgb(var(--color-primary-950)/.25)}.dark\\:bg-primary-950\\/30:is(.dark *){background-color:rgb(var(--color-primary-950)/.3)}.dark\\:bg-primary-950\\/35:is(.dark *){background-color:rgb(var(--color-primary-950)/.35)}.dark\\:bg-primary-950\\/40:is(.dark *){background-color:rgb(var(--color-primary-950)/.4)}.dark\\:bg-primary-950\\/45:is(.dark *){background-color:rgb(var(--color-primary-950)/.45)}.dark\\:bg-primary-950\\/5:is(.dark *){background-color:rgb(var(--color-primary-950)/.05)}.dark\\:bg-primary-950\\/50:is(.dark *){background-color:rgb(var(--color-primary-950)/.5)}.dark\\:bg-primary-950\\/55:is(.dark *){background-color:rgb(var(--color-primary-950)/.55)}.dark\\:bg-primary-950\\/60:is(.dark *){background-color:rgb(var(--color-primary-950)/.6)}.dark\\:bg-primary-950\\/65:is(.dark *){background-color:rgb(var(--color-primary-950)/.65)}.dark\\:bg-primary-950\\/70:is(.dark *){background-color:rgb(var(--color-primary-950)/.7)}.dark\\:bg-primary-950\\/75:is(.dark *){background-color:rgb(var(--color-primary-950)/.75)}.dark\\:bg-primary-950\\/80:is(.dark *){background-color:rgb(var(--color-primary-950)/.8)}.dark\\:bg-primary-950\\/85:is(.dark *){background-color:rgb(var(--color-primary-950)/.85)}.dark\\:bg-primary-950\\/90:is(.dark *){background-color:rgb(var(--color-primary-950)/.9)}.dark\\:bg-primary-950\\/95:is(.dark *){background-color:rgb(var(--color-primary-950)/.95)}.dark\\:bg-purple-400:is(.dark *){--tw-bg-opacity:1;background-color:#c084fc;background-color:rgb(192 132 252/var(--tw-bg-opacity,1))}.dark\\:bg-purple-400\\/0:is(.dark *){background-color:#c084fc00}.dark\\:bg-purple-400\\/10:is(.dark *){background-color:#c084fc1a}.dark\\:bg-purple-400\\/100:is(.dark *){background-color:#c084fc}.dark\\:bg-purple-400\\/15:is(.dark *){background-color:#c084fc26}.dark\\:bg-purple-400\\/20:is(.dark *){background-color:#c084fc33}.dark\\:bg-purple-400\\/25:is(.dark *){background-color:#c084fc40}.dark\\:bg-purple-400\\/30:is(.dark *){background-color:#c084fc4d}.dark\\:bg-purple-400\\/35:is(.dark *){background-color:#c084fc59}.dark\\:bg-purple-400\\/40:is(.dark *){background-color:#c084fc66}.dark\\:bg-purple-400\\/45:is(.dark *){background-color:#c084fc73}.dark\\:bg-purple-400\\/5:is(.dark *){background-color:#c084fc0d}.dark\\:bg-purple-400\\/50:is(.dark *){background-color:#c084fc80}.dark\\:bg-purple-400\\/55:is(.dark *){background-color:#c084fc8c}.dark\\:bg-purple-400\\/60:is(.dark *){background-color:#c084fc99}.dark\\:bg-purple-400\\/65:is(.dark *){background-color:#c084fca6}.dark\\:bg-purple-400\\/70:is(.dark *){background-color:#c084fcb3}.dark\\:bg-purple-400\\/75:is(.dark *){background-color:#c084fcbf}.dark\\:bg-purple-400\\/80:is(.dark *){background-color:#c084fccc}.dark\\:bg-purple-400\\/85:is(.dark *){background-color:#c084fcd9}.dark\\:bg-purple-400\\/90:is(.dark *){background-color:#c084fce6}.dark\\:bg-purple-400\\/95:is(.dark *){background-color:#c084fcf2}.dark\\:bg-red-400:is(.dark *){--tw-bg-opacity:1;background-color:#f87171;background-color:rgb(248 113 113/var(--tw-bg-opacity,1))}.dark\\:bg-red-400\\/0:is(.dark *){background-color:#f8717100}.dark\\:bg-red-400\\/10:is(.dark *){background-color:#f871711a}.dark\\:bg-red-400\\/100:is(.dark *){background-color:#f87171}.dark\\:bg-red-400\\/15:is(.dark *){background-color:#f8717126}.dark\\:bg-red-400\\/20:is(.dark *){background-color:#f8717133}.dark\\:bg-red-400\\/25:is(.dark *){background-color:#f8717140}.dark\\:bg-red-400\\/30:is(.dark *){background-color:#f871714d}.dark\\:bg-red-400\\/35:is(.dark *){background-color:#f8717159}.dark\\:bg-red-400\\/40:is(.dark *){background-color:#f8717166}.dark\\:bg-red-400\\/45:is(.dark *){background-color:#f8717173}.dark\\:bg-red-400\\/5:is(.dark *){background-color:#f871710d}.dark\\:bg-red-400\\/50:is(.dark *){background-color:#f8717180}.dark\\:bg-red-400\\/55:is(.dark *){background-color:#f871718c}.dark\\:bg-red-400\\/60:is(.dark *){background-color:#f8717199}.dark\\:bg-red-400\\/65:is(.dark *){background-color:#f87171a6}.dark\\:bg-red-400\\/70:is(.dark *){background-color:#f87171b3}.dark\\:bg-red-400\\/75:is(.dark *){background-color:#f87171bf}.dark\\:bg-red-400\\/80:is(.dark *){background-color:#f87171cc}.dark\\:bg-red-400\\/85:is(.dark *){background-color:#f87171d9}.dark\\:bg-red-400\\/90:is(.dark *){background-color:#f87171e6}.dark\\:bg-red-400\\/95:is(.dark *){background-color:#f87171f2}.dark\\:bg-red-900:is(.dark *){--tw-bg-opacity:1;background-color:#7f1d1d;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.dark\\:bg-red-900\\/20:is(.dark *){background-color:#7f1d1d33}.dark\\:bg-red-950:is(.dark *){--tw-bg-opacity:1;background-color:#450a0a;background-color:rgb(69 10 10/var(--tw-bg-opacity,1))}.dark\\:bg-rose-400:is(.dark *){--tw-bg-opacity:1;background-color:#fb7185;background-color:rgb(251 113 133/var(--tw-bg-opacity,1))}.dark\\:bg-rose-400\\/0:is(.dark *){background-color:#fb718500}.dark\\:bg-rose-400\\/10:is(.dark *){background-color:#fb71851a}.dark\\:bg-rose-400\\/100:is(.dark *){background-color:#fb7185}.dark\\:bg-rose-400\\/15:is(.dark *){background-color:#fb718526}.dark\\:bg-rose-400\\/20:is(.dark *){background-color:#fb718533}.dark\\:bg-rose-400\\/25:is(.dark *){background-color:#fb718540}.dark\\:bg-rose-400\\/30:is(.dark *){background-color:#fb71854d}.dark\\:bg-rose-400\\/35:is(.dark *){background-color:#fb718559}.dark\\:bg-rose-400\\/40:is(.dark *){background-color:#fb718566}.dark\\:bg-rose-400\\/45:is(.dark *){background-color:#fb718573}.dark\\:bg-rose-400\\/5:is(.dark *){background-color:#fb71850d}.dark\\:bg-rose-400\\/50:is(.dark *){background-color:#fb718580}.dark\\:bg-rose-400\\/55:is(.dark *){background-color:#fb71858c}.dark\\:bg-rose-400\\/60:is(.dark *){background-color:#fb718599}.dark\\:bg-rose-400\\/65:is(.dark *){background-color:#fb7185a6}.dark\\:bg-rose-400\\/70:is(.dark *){background-color:#fb7185b3}.dark\\:bg-rose-400\\/75:is(.dark *){background-color:#fb7185bf}.dark\\:bg-rose-400\\/80:is(.dark *){background-color:#fb7185cc}.dark\\:bg-rose-400\\/85:is(.dark *){background-color:#fb7185d9}.dark\\:bg-rose-400\\/90:is(.dark *){background-color:#fb7185e6}.dark\\:bg-rose-400\\/95:is(.dark *){background-color:#fb7185f2}.dark\\:bg-rose-950:is(.dark *){--tw-bg-opacity:1;background-color:#4c0519;background-color:rgb(76 5 25/var(--tw-bg-opacity,1))}.dark\\:bg-sky-400:is(.dark *){--tw-bg-opacity:1;background-color:#38bdf8;background-color:rgb(56 189 248/var(--tw-bg-opacity,1))}.dark\\:bg-sky-400\\/0:is(.dark *){background-color:#38bdf800}.dark\\:bg-sky-400\\/10:is(.dark *){background-color:#38bdf81a}.dark\\:bg-sky-400\\/100:is(.dark *){background-color:#38bdf8}.dark\\:bg-sky-400\\/15:is(.dark *){background-color:#38bdf826}.dark\\:bg-sky-400\\/20:is(.dark *){background-color:#38bdf833}.dark\\:bg-sky-400\\/25:is(.dark *){background-color:#38bdf840}.dark\\:bg-sky-400\\/30:is(.dark *){background-color:#38bdf84d}.dark\\:bg-sky-400\\/35:is(.dark *){background-color:#38bdf859}.dark\\:bg-sky-400\\/40:is(.dark *){background-color:#38bdf866}.dark\\:bg-sky-400\\/45:is(.dark *){background-color:#38bdf873}.dark\\:bg-sky-400\\/5:is(.dark *){background-color:#38bdf80d}.dark\\:bg-sky-400\\/50:is(.dark *){background-color:#38bdf880}.dark\\:bg-sky-400\\/55:is(.dark *){background-color:#38bdf88c}.dark\\:bg-sky-400\\/60:is(.dark *){background-color:#38bdf899}.dark\\:bg-sky-400\\/65:is(.dark *){background-color:#38bdf8a6}.dark\\:bg-sky-400\\/70:is(.dark *){background-color:#38bdf8b3}.dark\\:bg-sky-400\\/75:is(.dark *){background-color:#38bdf8bf}.dark\\:bg-sky-400\\/80:is(.dark *){background-color:#38bdf8cc}.dark\\:bg-sky-400\\/85:is(.dark *){background-color:#38bdf8d9}.dark\\:bg-sky-400\\/90:is(.dark *){background-color:#38bdf8e6}.dark\\:bg-sky-400\\/95:is(.dark *){background-color:#38bdf8f2}.dark\\:bg-stone-800:is(.dark *){--tw-bg-opacity:1;background-color:#292524;background-color:rgb(41 37 36/var(--tw-bg-opacity,1))}.dark\\:bg-teal-400:is(.dark *){--tw-bg-opacity:1;background-color:#2dd4bf;background-color:rgb(45 212 191/var(--tw-bg-opacity,1))}.dark\\:bg-teal-400\\/0:is(.dark *){background-color:#2dd4bf00}.dark\\:bg-teal-400\\/10:is(.dark *){background-color:#2dd4bf1a}.dark\\:bg-teal-400\\/100:is(.dark *){background-color:#2dd4bf}.dark\\:bg-teal-400\\/15:is(.dark *){background-color:#2dd4bf26}.dark\\:bg-teal-400\\/20:is(.dark *){background-color:#2dd4bf33}.dark\\:bg-teal-400\\/25:is(.dark *){background-color:#2dd4bf40}.dark\\:bg-teal-400\\/30:is(.dark *){background-color:#2dd4bf4d}.dark\\:bg-teal-400\\/35:is(.dark *){background-color:#2dd4bf59}.dark\\:bg-teal-400\\/40:is(.dark *){background-color:#2dd4bf66}.dark\\:bg-teal-400\\/45:is(.dark *){background-color:#2dd4bf73}.dark\\:bg-teal-400\\/5:is(.dark *){background-color:#2dd4bf0d}.dark\\:bg-teal-400\\/50:is(.dark *){background-color:#2dd4bf80}.dark\\:bg-teal-400\\/55:is(.dark *){background-color:#2dd4bf8c}.dark\\:bg-teal-400\\/60:is(.dark *){background-color:#2dd4bf99}.dark\\:bg-teal-400\\/65:is(.dark *){background-color:#2dd4bfa6}.dark\\:bg-teal-400\\/70:is(.dark *){background-color:#2dd4bfb3}.dark\\:bg-teal-400\\/75:is(.dark *){background-color:#2dd4bfbf}.dark\\:bg-teal-400\\/80:is(.dark *){background-color:#2dd4bfcc}.dark\\:bg-teal-400\\/85:is(.dark *){background-color:#2dd4bfd9}.dark\\:bg-teal-400\\/90:is(.dark *){background-color:#2dd4bfe6}.dark\\:bg-teal-400\\/95:is(.dark *){background-color:#2dd4bff2}.dark\\:bg-teal-900:is(.dark *){--tw-bg-opacity:1;background-color:#134e4a;background-color:rgb(19 78 74/var(--tw-bg-opacity,1))}.dark\\:bg-teal-950:is(.dark *){--tw-bg-opacity:1;background-color:#042f2e;background-color:rgb(4 47 46/var(--tw-bg-opacity,1))}.dark\\:bg-transparent:is(.dark *){background-color:initial}.dark\\:bg-violet-400:is(.dark *){--tw-bg-opacity:1;background-color:#a78bfa;background-color:rgb(167 139 250/var(--tw-bg-opacity,1))}.dark\\:bg-violet-400\\/0:is(.dark *){background-color:#a78bfa00}.dark\\:bg-violet-400\\/10:is(.dark *){background-color:#a78bfa1a}.dark\\:bg-violet-400\\/100:is(.dark *){background-color:#a78bfa}.dark\\:bg-violet-400\\/15:is(.dark *){background-color:#a78bfa26}.dark\\:bg-violet-400\\/20:is(.dark *){background-color:#a78bfa33}.dark\\:bg-violet-400\\/25:is(.dark *){background-color:#a78bfa40}.dark\\:bg-violet-400\\/30:is(.dark *){background-color:#a78bfa4d}.dark\\:bg-violet-400\\/35:is(.dark *){background-color:#a78bfa59}.dark\\:bg-violet-400\\/40:is(.dark *){background-color:#a78bfa66}.dark\\:bg-violet-400\\/45:is(.dark *){background-color:#a78bfa73}.dark\\:bg-violet-400\\/5:is(.dark *){background-color:#a78bfa0d}.dark\\:bg-violet-400\\/50:is(.dark *){background-color:#a78bfa80}.dark\\:bg-violet-400\\/55:is(.dark *){background-color:#a78bfa8c}.dark\\:bg-violet-400\\/60:is(.dark *){background-color:#a78bfa99}.dark\\:bg-violet-400\\/65:is(.dark *){background-color:#a78bfaa6}.dark\\:bg-violet-400\\/70:is(.dark *){background-color:#a78bfab3}.dark\\:bg-violet-400\\/75:is(.dark *){background-color:#a78bfabf}.dark\\:bg-violet-400\\/80:is(.dark *){background-color:#a78bfacc}.dark\\:bg-violet-400\\/85:is(.dark *){background-color:#a78bfad9}.dark\\:bg-violet-400\\/90:is(.dark *){background-color:#a78bfae6}.dark\\:bg-violet-400\\/95:is(.dark *){background-color:#a78bfaf2}.dark\\:bg-white:is(.dark *){--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.dark\\:bg-yellow-400:is(.dark *){--tw-bg-opacity:1;background-color:#fbbf24;background-color:rgb(251 191 36/var(--tw-bg-opacity,1))}.dark\\:bg-yellow-400\\/0:is(.dark *){background-color:#fbbf2400}.dark\\:bg-yellow-400\\/10:is(.dark *){background-color:#fbbf241a}.dark\\:bg-yellow-400\\/100:is(.dark *){background-color:#fbbf24}.dark\\:bg-yellow-400\\/15:is(.dark *){background-color:#fbbf2426}.dark\\:bg-yellow-400\\/20:is(.dark *){background-color:#fbbf2433}.dark\\:bg-yellow-400\\/25:is(.dark *){background-color:#fbbf2440}.dark\\:bg-yellow-400\\/30:is(.dark *){background-color:#fbbf244d}.dark\\:bg-yellow-400\\/35:is(.dark *){background-color:#fbbf2459}.dark\\:bg-yellow-400\\/40:is(.dark *){background-color:#fbbf2466}.dark\\:bg-yellow-400\\/45:is(.dark *){background-color:#fbbf2473}.dark\\:bg-yellow-400\\/5:is(.dark *){background-color:#fbbf240d}.dark\\:bg-yellow-400\\/50:is(.dark *){background-color:#fbbf2480}.dark\\:bg-yellow-400\\/55:is(.dark *){background-color:#fbbf248c}.dark\\:bg-yellow-400\\/60:is(.dark *){background-color:#fbbf2499}.dark\\:bg-yellow-400\\/65:is(.dark *){background-color:#fbbf24a6}.dark\\:bg-yellow-400\\/70:is(.dark *){background-color:#fbbf24b3}.dark\\:bg-yellow-400\\/75:is(.dark *){background-color:#fbbf24bf}.dark\\:bg-yellow-400\\/80:is(.dark *){background-color:#fbbf24cc}.dark\\:bg-yellow-400\\/85:is(.dark *){background-color:#fbbf24d9}.dark\\:bg-yellow-400\\/90:is(.dark *){background-color:#fbbf24e6}.dark\\:bg-yellow-400\\/95:is(.dark *){background-color:#fbbf24f2}.dark\\:bg-yellow-900\\/20:is(.dark *){background-color:#78350f33}.dark\\:bg-opacity-10:is(.dark *){--tw-bg-opacity:.1}.dark\\:text-amber-400:is(.dark *){--tw-text-opacity:1;color:#fbbf24;color:rgb(251 191 36/var(--tw-text-opacity,1))}.dark\\:text-amber-400\\/0:is(.dark *){color:#fbbf2400}.dark\\:text-amber-400\\/10:is(.dark *){color:#fbbf241a}.dark\\:text-amber-400\\/100:is(.dark *){color:#fbbf24}.dark\\:text-amber-400\\/15:is(.dark *){color:#fbbf2426}.dark\\:text-amber-400\\/20:is(.dark *){color:#fbbf2433}.dark\\:text-amber-400\\/25:is(.dark *){color:#fbbf2440}.dark\\:text-amber-400\\/30:is(.dark *){color:#fbbf244d}.dark\\:text-amber-400\\/35:is(.dark *){color:#fbbf2459}.dark\\:text-amber-400\\/40:is(.dark *){color:#fbbf2466}.dark\\:text-amber-400\\/45:is(.dark *){color:#fbbf2473}.dark\\:text-amber-400\\/5:is(.dark *){color:#fbbf240d}.dark\\:text-amber-400\\/50:is(.dark *){color:#fbbf2480}.dark\\:text-amber-400\\/55:is(.dark *){color:#fbbf248c}.dark\\:text-amber-400\\/60:is(.dark *){color:#fbbf2499}.dark\\:text-amber-400\\/65:is(.dark *){color:#fbbf24a6}.dark\\:text-amber-400\\/70:is(.dark *){color:#fbbf24b3}.dark\\:text-amber-400\\/75:is(.dark *){color:#fbbf24bf}.dark\\:text-amber-400\\/80:is(.dark *){color:#fbbf24cc}.dark\\:text-amber-400\\/85:is(.dark *){color:#fbbf24d9}.dark\\:text-amber-400\\/90:is(.dark *){color:#fbbf24e6}.dark\\:text-amber-400\\/95:is(.dark *){color:#fbbf24f2}.dark\\:text-black:is(.dark *){--tw-text-opacity:1;color:#000;color:rgb(0 0 0/var(--tw-text-opacity,1))}.dark\\:text-blue-400:is(.dark *){--tw-text-opacity:1;color:#60a5fa;color:rgb(96 165 250/var(--tw-text-opacity,1))}.dark\\:text-blue-400\\/0:is(.dark *){color:#60a5fa00}.dark\\:text-blue-400\\/10:is(.dark *){color:#60a5fa1a}.dark\\:text-blue-400\\/100:is(.dark *){color:#60a5fa}.dark\\:text-blue-400\\/15:is(.dark *){color:#60a5fa26}.dark\\:text-blue-400\\/20:is(.dark *){color:#60a5fa33}.dark\\:text-blue-400\\/25:is(.dark *){color:#60a5fa40}.dark\\:text-blue-400\\/30:is(.dark *){color:#60a5fa4d}.dark\\:text-blue-400\\/35:is(.dark *){color:#60a5fa59}.dark\\:text-blue-400\\/40:is(.dark *){color:#60a5fa66}.dark\\:text-blue-400\\/45:is(.dark *){color:#60a5fa73}.dark\\:text-blue-400\\/5:is(.dark *){color:#60a5fa0d}.dark\\:text-blue-400\\/50:is(.dark *){color:#60a5fa80}.dark\\:text-blue-400\\/55:is(.dark *){color:#60a5fa8c}.dark\\:text-blue-400\\/60:is(.dark *){color:#60a5fa99}.dark\\:text-blue-400\\/65:is(.dark *){color:#60a5faa6}.dark\\:text-blue-400\\/70:is(.dark *){color:#60a5fab3}.dark\\:text-blue-400\\/75:is(.dark *){color:#60a5fabf}.dark\\:text-blue-400\\/80:is(.dark *){color:#60a5facc}.dark\\:text-blue-400\\/85:is(.dark *){color:#60a5fad9}.dark\\:text-blue-400\\/90:is(.dark *){color:#60a5fae6}.dark\\:text-blue-400\\/95:is(.dark *){color:#60a5faf2}.dark\\:text-cyan-400:is(.dark *){--tw-text-opacity:1;color:#22d3ee;color:rgb(34 211 238/var(--tw-text-opacity,1))}.dark\\:text-cyan-400\\/0:is(.dark *){color:#22d3ee00}.dark\\:text-cyan-400\\/10:is(.dark *){color:#22d3ee1a}.dark\\:text-cyan-400\\/100:is(.dark *){color:#22d3ee}.dark\\:text-cyan-400\\/15:is(.dark *){color:#22d3ee26}.dark\\:text-cyan-400\\/20:is(.dark *){color:#22d3ee33}.dark\\:text-cyan-400\\/25:is(.dark *){color:#22d3ee40}.dark\\:text-cyan-400\\/30:is(.dark *){color:#22d3ee4d}.dark\\:text-cyan-400\\/35:is(.dark *){color:#22d3ee59}.dark\\:text-cyan-400\\/40:is(.dark *){color:#22d3ee66}.dark\\:text-cyan-400\\/45:is(.dark *){color:#22d3ee73}.dark\\:text-cyan-400\\/5:is(.dark *){color:#22d3ee0d}.dark\\:text-cyan-400\\/50:is(.dark *){color:#22d3ee80}.dark\\:text-cyan-400\\/55:is(.dark *){color:#22d3ee8c}.dark\\:text-cyan-400\\/60:is(.dark *){color:#22d3ee99}.dark\\:text-cyan-400\\/65:is(.dark *){color:#22d3eea6}.dark\\:text-cyan-400\\/70:is(.dark *){color:#22d3eeb3}.dark\\:text-cyan-400\\/75:is(.dark *){color:#22d3eebf}.dark\\:text-cyan-400\\/80:is(.dark *){color:#22d3eecc}.dark\\:text-cyan-400\\/85:is(.dark *){color:#22d3eed9}.dark\\:text-cyan-400\\/90:is(.dark *){color:#22d3eee6}.dark\\:text-cyan-400\\/95:is(.dark *){color:#22d3eef2}.dark\\:text-emerald-400:is(.dark *){--tw-text-opacity:1;color:#34d399;color:rgb(52 211 153/var(--tw-text-opacity,1))}.dark\\:text-emerald-400\\/0:is(.dark *){color:#34d39900}.dark\\:text-emerald-400\\/10:is(.dark *){color:#34d3991a}.dark\\:text-emerald-400\\/100:is(.dark *){color:#34d399}.dark\\:text-emerald-400\\/15:is(.dark *){color:#34d39926}.dark\\:text-emerald-400\\/20:is(.dark *){color:#34d39933}.dark\\:text-emerald-400\\/25:is(.dark *){color:#34d39940}.dark\\:text-emerald-400\\/30:is(.dark *){color:#34d3994d}.dark\\:text-emerald-400\\/35:is(.dark *){color:#34d39959}.dark\\:text-emerald-400\\/40:is(.dark *){color:#34d39966}.dark\\:text-emerald-400\\/45:is(.dark *){color:#34d39973}.dark\\:text-emerald-400\\/5:is(.dark *){color:#34d3990d}.dark\\:text-emerald-400\\/50:is(.dark *){color:#34d39980}.dark\\:text-emerald-400\\/55:is(.dark *){color:#34d3998c}.dark\\:text-emerald-400\\/60:is(.dark *){color:#34d39999}.dark\\:text-emerald-400\\/65:is(.dark *){color:#34d399a6}.dark\\:text-emerald-400\\/70:is(.dark *){color:#34d399b3}.dark\\:text-emerald-400\\/75:is(.dark *){color:#34d399bf}.dark\\:text-emerald-400\\/80:is(.dark *){color:#34d399cc}.dark\\:text-emerald-400\\/85:is(.dark *){color:#34d399d9}.dark\\:text-emerald-400\\/90:is(.dark *){color:#34d399e6}.dark\\:text-emerald-400\\/95:is(.dark *){color:#34d399f2}.dark\\:text-fuchsia-400:is(.dark *){--tw-text-opacity:1;color:#e879f9;color:rgb(232 121 249/var(--tw-text-opacity,1))}.dark\\:text-fuchsia-400\\/0:is(.dark *){color:#e879f900}.dark\\:text-fuchsia-400\\/10:is(.dark *){color:#e879f91a}.dark\\:text-fuchsia-400\\/100:is(.dark *){color:#e879f9}.dark\\:text-fuchsia-400\\/15:is(.dark *){color:#e879f926}.dark\\:text-fuchsia-400\\/20:is(.dark *){color:#e879f933}.dark\\:text-fuchsia-400\\/25:is(.dark *){color:#e879f940}.dark\\:text-fuchsia-400\\/30:is(.dark *){color:#e879f94d}.dark\\:text-fuchsia-400\\/35:is(.dark *){color:#e879f959}.dark\\:text-fuchsia-400\\/40:is(.dark *){color:#e879f966}.dark\\:text-fuchsia-400\\/45:is(.dark *){color:#e879f973}.dark\\:text-fuchsia-400\\/5:is(.dark *){color:#e879f90d}.dark\\:text-fuchsia-400\\/50:is(.dark *){color:#e879f980}.dark\\:text-fuchsia-400\\/55:is(.dark *){color:#e879f98c}.dark\\:text-fuchsia-400\\/60:is(.dark *){color:#e879f999}.dark\\:text-fuchsia-400\\/65:is(.dark *){color:#e879f9a6}.dark\\:text-fuchsia-400\\/70:is(.dark *){color:#e879f9b3}.dark\\:text-fuchsia-400\\/75:is(.dark *){color:#e879f9bf}.dark\\:text-fuchsia-400\\/80:is(.dark *){color:#e879f9cc}.dark\\:text-fuchsia-400\\/85:is(.dark *){color:#e879f9d9}.dark\\:text-fuchsia-400\\/90:is(.dark *){color:#e879f9e6}.dark\\:text-fuchsia-400\\/95:is(.dark *){color:#e879f9f2}.dark\\:text-gray-100:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-gray-100)/1);color:rgb(var(--color-gray-100)/var(--tw-text-opacity,1))}.dark\\:text-gray-200:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-gray-200)/1);color:rgb(var(--color-gray-200)/var(--tw-text-opacity,1))}.dark\\:text-gray-300:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-gray-300)/1);color:rgb(var(--color-gray-300)/var(--tw-text-opacity,1))}.dark\\:text-gray-400:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-gray-400)/1);color:rgb(var(--color-gray-400)/var(--tw-text-opacity,1))}.dark\\:text-gray-500:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-gray-500)/1);color:rgb(var(--color-gray-500)/var(--tw-text-opacity,1))}.dark\\:text-gray-600:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-gray-600)/1);color:rgb(var(--color-gray-600)/var(--tw-text-opacity,1))}.dark\\:text-gray-900:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-gray-900)/1);color:rgb(var(--color-gray-900)/var(--tw-text-opacity,1))}.dark\\:text-green-400:is(.dark *){--tw-text-opacity:1;color:#2dd4bf;color:rgb(45 212 191/var(--tw-text-opacity,1))}.dark\\:text-green-400\\/0:is(.dark *){color:#2dd4bf00}.dark\\:text-green-400\\/10:is(.dark *){color:#2dd4bf1a}.dark\\:text-green-400\\/100:is(.dark *){color:#2dd4bf}.dark\\:text-green-400\\/15:is(.dark *){color:#2dd4bf26}.dark\\:text-green-400\\/20:is(.dark *){color:#2dd4bf33}.dark\\:text-green-400\\/25:is(.dark *){color:#2dd4bf40}.dark\\:text-green-400\\/30:is(.dark *){color:#2dd4bf4d}.dark\\:text-green-400\\/35:is(.dark *){color:#2dd4bf59}.dark\\:text-green-400\\/40:is(.dark *){color:#2dd4bf66}.dark\\:text-green-400\\/45:is(.dark *){color:#2dd4bf73}.dark\\:text-green-400\\/5:is(.dark *){color:#2dd4bf0d}.dark\\:text-green-400\\/50:is(.dark *){color:#2dd4bf80}.dark\\:text-green-400\\/55:is(.dark *){color:#2dd4bf8c}.dark\\:text-green-400\\/60:is(.dark *){color:#2dd4bf99}.dark\\:text-green-400\\/65:is(.dark *){color:#2dd4bfa6}.dark\\:text-green-400\\/70:is(.dark *){color:#2dd4bfb3}.dark\\:text-green-400\\/75:is(.dark *){color:#2dd4bfbf}.dark\\:text-green-400\\/80:is(.dark *){color:#2dd4bfcc}.dark\\:text-green-400\\/85:is(.dark *){color:#2dd4bfd9}.dark\\:text-green-400\\/90:is(.dark *){color:#2dd4bfe6}.dark\\:text-green-400\\/95:is(.dark *){color:#2dd4bff2}.dark\\:text-indigo-300:is(.dark *){--tw-text-opacity:1;color:#a5b4fc;color:rgb(165 180 252/var(--tw-text-opacity,1))}.dark\\:text-indigo-400:is(.dark *){--tw-text-opacity:1;color:#818cf8;color:rgb(129 140 248/var(--tw-text-opacity,1))}.dark\\:text-indigo-400\\/0:is(.dark *){color:#818cf800}.dark\\:text-indigo-400\\/10:is(.dark *){color:#818cf81a}.dark\\:text-indigo-400\\/100:is(.dark *){color:#818cf8}.dark\\:text-indigo-400\\/15:is(.dark *){color:#818cf826}.dark\\:text-indigo-400\\/20:is(.dark *){color:#818cf833}.dark\\:text-indigo-400\\/25:is(.dark *){color:#818cf840}.dark\\:text-indigo-400\\/30:is(.dark *){color:#818cf84d}.dark\\:text-indigo-400\\/35:is(.dark *){color:#818cf859}.dark\\:text-indigo-400\\/40:is(.dark *){color:#818cf866}.dark\\:text-indigo-400\\/45:is(.dark *){color:#818cf873}.dark\\:text-indigo-400\\/5:is(.dark *){color:#818cf80d}.dark\\:text-indigo-400\\/50:is(.dark *){color:#818cf880}.dark\\:text-indigo-400\\/55:is(.dark *){color:#818cf88c}.dark\\:text-indigo-400\\/60:is(.dark *){color:#818cf899}.dark\\:text-indigo-400\\/65:is(.dark *){color:#818cf8a6}.dark\\:text-indigo-400\\/70:is(.dark *){color:#818cf8b3}.dark\\:text-indigo-400\\/75:is(.dark *){color:#818cf8bf}.dark\\:text-indigo-400\\/80:is(.dark *){color:#818cf8cc}.dark\\:text-indigo-400\\/85:is(.dark *){color:#818cf8d9}.dark\\:text-indigo-400\\/90:is(.dark *){color:#818cf8e6}.dark\\:text-indigo-400\\/95:is(.dark *){color:#818cf8f2}.dark\\:text-lime-400:is(.dark *){--tw-text-opacity:1;color:#a3e635;color:rgb(163 230 53/var(--tw-text-opacity,1))}.dark\\:text-lime-400\\/0:is(.dark *){color:#a3e63500}.dark\\:text-lime-400\\/10:is(.dark *){color:#a3e6351a}.dark\\:text-lime-400\\/100:is(.dark *){color:#a3e635}.dark\\:text-lime-400\\/15:is(.dark *){color:#a3e63526}.dark\\:text-lime-400\\/20:is(.dark *){color:#a3e63533}.dark\\:text-lime-400\\/25:is(.dark *){color:#a3e63540}.dark\\:text-lime-400\\/30:is(.dark *){color:#a3e6354d}.dark\\:text-lime-400\\/35:is(.dark *){color:#a3e63559}.dark\\:text-lime-400\\/40:is(.dark *){color:#a3e63566}.dark\\:text-lime-400\\/45:is(.dark *){color:#a3e63573}.dark\\:text-lime-400\\/5:is(.dark *){color:#a3e6350d}.dark\\:text-lime-400\\/50:is(.dark *){color:#a3e63580}.dark\\:text-lime-400\\/55:is(.dark *){color:#a3e6358c}.dark\\:text-lime-400\\/60:is(.dark *){color:#a3e63599}.dark\\:text-lime-400\\/65:is(.dark *){color:#a3e635a6}.dark\\:text-lime-400\\/70:is(.dark *){color:#a3e635b3}.dark\\:text-lime-400\\/75:is(.dark *){color:#a3e635bf}.dark\\:text-lime-400\\/80:is(.dark *){color:#a3e635cc}.dark\\:text-lime-400\\/85:is(.dark *){color:#a3e635d9}.dark\\:text-lime-400\\/90:is(.dark *){color:#a3e635e6}.dark\\:text-lime-400\\/95:is(.dark *){color:#a3e635f2}.dark\\:text-orange-400:is(.dark *){--tw-text-opacity:1;color:#fb923c;color:rgb(251 146 60/var(--tw-text-opacity,1))}.dark\\:text-orange-400\\/0:is(.dark *){color:#fb923c00}.dark\\:text-orange-400\\/10:is(.dark *){color:#fb923c1a}.dark\\:text-orange-400\\/100:is(.dark *){color:#fb923c}.dark\\:text-orange-400\\/15:is(.dark *){color:#fb923c26}.dark\\:text-orange-400\\/20:is(.dark *){color:#fb923c33}.dark\\:text-orange-400\\/25:is(.dark *){color:#fb923c40}.dark\\:text-orange-400\\/30:is(.dark *){color:#fb923c4d}.dark\\:text-orange-400\\/35:is(.dark *){color:#fb923c59}.dark\\:text-orange-400\\/40:is(.dark *){color:#fb923c66}.dark\\:text-orange-400\\/45:is(.dark *){color:#fb923c73}.dark\\:text-orange-400\\/5:is(.dark *){color:#fb923c0d}.dark\\:text-orange-400\\/50:is(.dark *){color:#fb923c80}.dark\\:text-orange-400\\/55:is(.dark *){color:#fb923c8c}.dark\\:text-orange-400\\/60:is(.dark *){color:#fb923c99}.dark\\:text-orange-400\\/65:is(.dark *){color:#fb923ca6}.dark\\:text-orange-400\\/70:is(.dark *){color:#fb923cb3}.dark\\:text-orange-400\\/75:is(.dark *){color:#fb923cbf}.dark\\:text-orange-400\\/80:is(.dark *){color:#fb923ccc}.dark\\:text-orange-400\\/85:is(.dark *){color:#fb923cd9}.dark\\:text-orange-400\\/90:is(.dark *){color:#fb923ce6}.dark\\:text-orange-400\\/95:is(.dark *){color:#fb923cf2}.dark\\:text-pink-400:is(.dark *){--tw-text-opacity:1;color:#f472b6;color:rgb(244 114 182/var(--tw-text-opacity,1))}.dark\\:text-pink-400\\/0:is(.dark *){color:#f472b600}.dark\\:text-pink-400\\/10:is(.dark *){color:#f472b61a}.dark\\:text-pink-400\\/100:is(.dark *){color:#f472b6}.dark\\:text-pink-400\\/15:is(.dark *){color:#f472b626}.dark\\:text-pink-400\\/20:is(.dark *){color:#f472b633}.dark\\:text-pink-400\\/25:is(.dark *){color:#f472b640}.dark\\:text-pink-400\\/30:is(.dark *){color:#f472b64d}.dark\\:text-pink-400\\/35:is(.dark *){color:#f472b659}.dark\\:text-pink-400\\/40:is(.dark *){color:#f472b666}.dark\\:text-pink-400\\/45:is(.dark *){color:#f472b673}.dark\\:text-pink-400\\/5:is(.dark *){color:#f472b60d}.dark\\:text-pink-400\\/50:is(.dark *){color:#f472b680}.dark\\:text-pink-400\\/55:is(.dark *){color:#f472b68c}.dark\\:text-pink-400\\/60:is(.dark *){color:#f472b699}.dark\\:text-pink-400\\/65:is(.dark *){color:#f472b6a6}.dark\\:text-pink-400\\/70:is(.dark *){color:#f472b6b3}.dark\\:text-pink-400\\/75:is(.dark *){color:#f472b6bf}.dark\\:text-pink-400\\/80:is(.dark *){color:#f472b6cc}.dark\\:text-pink-400\\/85:is(.dark *){color:#f472b6d9}.dark\\:text-pink-400\\/90:is(.dark *){color:#f472b6e6}.dark\\:text-pink-400\\/95:is(.dark *){color:#f472b6f2}.dark\\:text-primary-200:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-primary-200)/1);color:rgb(var(--color-primary-200)/var(--tw-text-opacity,1))}.dark\\:text-primary-400:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-primary-400)/1);color:rgb(var(--color-primary-400)/var(--tw-text-opacity,1))}.dark\\:text-primary-400\\/0:is(.dark *){color:rgb(var(--color-primary-400)/0)}.dark\\:text-primary-400\\/10:is(.dark *){color:rgb(var(--color-primary-400)/.1)}.dark\\:text-primary-400\\/100:is(.dark *){color:rgb(var(--color-primary-400)/1)}.dark\\:text-primary-400\\/15:is(.dark *){color:rgb(var(--color-primary-400)/.15)}.dark\\:text-primary-400\\/20:is(.dark *){color:rgb(var(--color-primary-400)/.2)}.dark\\:text-primary-400\\/25:is(.dark *){color:rgb(var(--color-primary-400)/.25)}.dark\\:text-primary-400\\/30:is(.dark *){color:rgb(var(--color-primary-400)/.3)}.dark\\:text-primary-400\\/35:is(.dark *){color:rgb(var(--color-primary-400)/.35)}.dark\\:text-primary-400\\/40:is(.dark *){color:rgb(var(--color-primary-400)/.4)}.dark\\:text-primary-400\\/45:is(.dark *){color:rgb(var(--color-primary-400)/.45)}.dark\\:text-primary-400\\/5:is(.dark *){color:rgb(var(--color-primary-400)/.05)}.dark\\:text-primary-400\\/50:is(.dark *){color:rgb(var(--color-primary-400)/.5)}.dark\\:text-primary-400\\/55:is(.dark *){color:rgb(var(--color-primary-400)/.55)}.dark\\:text-primary-400\\/60:is(.dark *){color:rgb(var(--color-primary-400)/.6)}.dark\\:text-primary-400\\/65:is(.dark *){color:rgb(var(--color-primary-400)/.65)}.dark\\:text-primary-400\\/70:is(.dark *){color:rgb(var(--color-primary-400)/.7)}.dark\\:text-primary-400\\/75:is(.dark *){color:rgb(var(--color-primary-400)/.75)}.dark\\:text-primary-400\\/80:is(.dark *){color:rgb(var(--color-primary-400)/.8)}.dark\\:text-primary-400\\/85:is(.dark *){color:rgb(var(--color-primary-400)/.85)}.dark\\:text-primary-400\\/90:is(.dark *){color:rgb(var(--color-primary-400)/.9)}.dark\\:text-primary-400\\/95:is(.dark *){color:rgb(var(--color-primary-400)/.95)}.dark\\:text-purple-400:is(.dark *){--tw-text-opacity:1;color:#c084fc;color:rgb(192 132 252/var(--tw-text-opacity,1))}.dark\\:text-purple-400\\/0:is(.dark *){color:#c084fc00}.dark\\:text-purple-400\\/10:is(.dark *){color:#c084fc1a}.dark\\:text-purple-400\\/100:is(.dark *){color:#c084fc}.dark\\:text-purple-400\\/15:is(.dark *){color:#c084fc26}.dark\\:text-purple-400\\/20:is(.dark *){color:#c084fc33}.dark\\:text-purple-400\\/25:is(.dark *){color:#c084fc40}.dark\\:text-purple-400\\/30:is(.dark *){color:#c084fc4d}.dark\\:text-purple-400\\/35:is(.dark *){color:#c084fc59}.dark\\:text-purple-400\\/40:is(.dark *){color:#c084fc66}.dark\\:text-purple-400\\/45:is(.dark *){color:#c084fc73}.dark\\:text-purple-400\\/5:is(.dark *){color:#c084fc0d}.dark\\:text-purple-400\\/50:is(.dark *){color:#c084fc80}.dark\\:text-purple-400\\/55:is(.dark *){color:#c084fc8c}.dark\\:text-purple-400\\/60:is(.dark *){color:#c084fc99}.dark\\:text-purple-400\\/65:is(.dark *){color:#c084fca6}.dark\\:text-purple-400\\/70:is(.dark *){color:#c084fcb3}.dark\\:text-purple-400\\/75:is(.dark *){color:#c084fcbf}.dark\\:text-purple-400\\/80:is(.dark *){color:#c084fccc}.dark\\:text-purple-400\\/85:is(.dark *){color:#c084fcd9}.dark\\:text-purple-400\\/90:is(.dark *){color:#c084fce6}.dark\\:text-purple-400\\/95:is(.dark *){color:#c084fcf2}.dark\\:text-red-200:is(.dark *){--tw-text-opacity:1;color:#fecaca;color:rgb(254 202 202/var(--tw-text-opacity,1))}.dark\\:text-red-400:is(.dark *){--tw-text-opacity:1;color:#f87171;color:rgb(248 113 113/var(--tw-text-opacity,1))}.dark\\:text-red-400\\/0:is(.dark *){color:#f8717100}.dark\\:text-red-400\\/10:is(.dark *){color:#f871711a}.dark\\:text-red-400\\/100:is(.dark *){color:#f87171}.dark\\:text-red-400\\/15:is(.dark *){color:#f8717126}.dark\\:text-red-400\\/20:is(.dark *){color:#f8717133}.dark\\:text-red-400\\/25:is(.dark *){color:#f8717140}.dark\\:text-red-400\\/30:is(.dark *){color:#f871714d}.dark\\:text-red-400\\/35:is(.dark *){color:#f8717159}.dark\\:text-red-400\\/40:is(.dark *){color:#f8717166}.dark\\:text-red-400\\/45:is(.dark *){color:#f8717173}.dark\\:text-red-400\\/5:is(.dark *){color:#f871710d}.dark\\:text-red-400\\/50:is(.dark *){color:#f8717180}.dark\\:text-red-400\\/55:is(.dark *){color:#f871718c}.dark\\:text-red-400\\/60:is(.dark *){color:#f8717199}.dark\\:text-red-400\\/65:is(.dark *){color:#f87171a6}.dark\\:text-red-400\\/70:is(.dark *){color:#f87171b3}.dark\\:text-red-400\\/75:is(.dark *){color:#f87171bf}.dark\\:text-red-400\\/80:is(.dark *){color:#f87171cc}.dark\\:text-red-400\\/85:is(.dark *){color:#f87171d9}.dark\\:text-red-400\\/90:is(.dark *){color:#f87171e6}.dark\\:text-red-400\\/95:is(.dark *){color:#f87171f2}.dark\\:text-rose-300:is(.dark *){--tw-text-opacity:1;color:#fda4af;color:rgb(253 164 175/var(--tw-text-opacity,1))}.dark\\:text-rose-400:is(.dark *){--tw-text-opacity:1;color:#fb7185;color:rgb(251 113 133/var(--tw-text-opacity,1))}.dark\\:text-rose-400\\/0:is(.dark *){color:#fb718500}.dark\\:text-rose-400\\/10:is(.dark *){color:#fb71851a}.dark\\:text-rose-400\\/100:is(.dark *){color:#fb7185}.dark\\:text-rose-400\\/15:is(.dark *){color:#fb718526}.dark\\:text-rose-400\\/20:is(.dark *){color:#fb718533}.dark\\:text-rose-400\\/25:is(.dark *){color:#fb718540}.dark\\:text-rose-400\\/30:is(.dark *){color:#fb71854d}.dark\\:text-rose-400\\/35:is(.dark *){color:#fb718559}.dark\\:text-rose-400\\/40:is(.dark *){color:#fb718566}.dark\\:text-rose-400\\/45:is(.dark *){color:#fb718573}.dark\\:text-rose-400\\/5:is(.dark *){color:#fb71850d}.dark\\:text-rose-400\\/50:is(.dark *){color:#fb718580}.dark\\:text-rose-400\\/55:is(.dark *){color:#fb71858c}.dark\\:text-rose-400\\/60:is(.dark *){color:#fb718599}.dark\\:text-rose-400\\/65:is(.dark *){color:#fb7185a6}.dark\\:text-rose-400\\/70:is(.dark *){color:#fb7185b3}.dark\\:text-rose-400\\/75:is(.dark *){color:#fb7185bf}.dark\\:text-rose-400\\/80:is(.dark *){color:#fb7185cc}.dark\\:text-rose-400\\/85:is(.dark *){color:#fb7185d9}.dark\\:text-rose-400\\/90:is(.dark *){color:#fb7185e6}.dark\\:text-rose-400\\/95:is(.dark *){color:#fb7185f2}.dark\\:text-sky-400:is(.dark *){--tw-text-opacity:1;color:#38bdf8;color:rgb(56 189 248/var(--tw-text-opacity,1))}.dark\\:text-sky-400\\/0:is(.dark *){color:#38bdf800}.dark\\:text-sky-400\\/10:is(.dark *){color:#38bdf81a}.dark\\:text-sky-400\\/100:is(.dark *){color:#38bdf8}.dark\\:text-sky-400\\/15:is(.dark *){color:#38bdf826}.dark\\:text-sky-400\\/20:is(.dark *){color:#38bdf833}.dark\\:text-sky-400\\/25:is(.dark *){color:#38bdf840}.dark\\:text-sky-400\\/30:is(.dark *){color:#38bdf84d}.dark\\:text-sky-400\\/35:is(.dark *){color:#38bdf859}.dark\\:text-sky-400\\/40:is(.dark *){color:#38bdf866}.dark\\:text-sky-400\\/45:is(.dark *){color:#38bdf873}.dark\\:text-sky-400\\/5:is(.dark *){color:#38bdf80d}.dark\\:text-sky-400\\/50:is(.dark *){color:#38bdf880}.dark\\:text-sky-400\\/55:is(.dark *){color:#38bdf88c}.dark\\:text-sky-400\\/60:is(.dark *){color:#38bdf899}.dark\\:text-sky-400\\/65:is(.dark *){color:#38bdf8a6}.dark\\:text-sky-400\\/70:is(.dark *){color:#38bdf8b3}.dark\\:text-sky-400\\/75:is(.dark *){color:#38bdf8bf}.dark\\:text-sky-400\\/80:is(.dark *){color:#38bdf8cc}.dark\\:text-sky-400\\/85:is(.dark *){color:#38bdf8d9}.dark\\:text-sky-400\\/90:is(.dark *){color:#38bdf8e6}.dark\\:text-sky-400\\/95:is(.dark *){color:#38bdf8f2}.dark\\:text-teal-200:is(.dark *){--tw-text-opacity:1;color:#99f6e4;color:rgb(153 246 228/var(--tw-text-opacity,1))}.dark\\:text-teal-400:is(.dark *){--tw-text-opacity:1;color:#2dd4bf;color:rgb(45 212 191/var(--tw-text-opacity,1))}.dark\\:text-teal-400\\/0:is(.dark *){color:#2dd4bf00}.dark\\:text-teal-400\\/10:is(.dark *){color:#2dd4bf1a}.dark\\:text-teal-400\\/100:is(.dark *){color:#2dd4bf}.dark\\:text-teal-400\\/15:is(.dark *){color:#2dd4bf26}.dark\\:text-teal-400\\/20:is(.dark *){color:#2dd4bf33}.dark\\:text-teal-400\\/25:is(.dark *){color:#2dd4bf40}.dark\\:text-teal-400\\/30:is(.dark *){color:#2dd4bf4d}.dark\\:text-teal-400\\/35:is(.dark *){color:#2dd4bf59}.dark\\:text-teal-400\\/40:is(.dark *){color:#2dd4bf66}.dark\\:text-teal-400\\/45:is(.dark *){color:#2dd4bf73}.dark\\:text-teal-400\\/5:is(.dark *){color:#2dd4bf0d}.dark\\:text-teal-400\\/50:is(.dark *){color:#2dd4bf80}.dark\\:text-teal-400\\/55:is(.dark *){color:#2dd4bf8c}.dark\\:text-teal-400\\/60:is(.dark *){color:#2dd4bf99}.dark\\:text-teal-400\\/65:is(.dark *){color:#2dd4bfa6}.dark\\:text-teal-400\\/70:is(.dark *){color:#2dd4bfb3}.dark\\:text-teal-400\\/75:is(.dark *){color:#2dd4bfbf}.dark\\:text-teal-400\\/80:is(.dark *){color:#2dd4bfcc}.dark\\:text-teal-400\\/85:is(.dark *){color:#2dd4bfd9}.dark\\:text-teal-400\\/90:is(.dark *){color:#2dd4bfe6}.dark\\:text-teal-400\\/95:is(.dark *){color:#2dd4bff2}.dark\\:text-violet-400:is(.dark *){--tw-text-opacity:1;color:#a78bfa;color:rgb(167 139 250/var(--tw-text-opacity,1))}.dark\\:text-violet-400\\/0:is(.dark *){color:#a78bfa00}.dark\\:text-violet-400\\/10:is(.dark *){color:#a78bfa1a}.dark\\:text-violet-400\\/100:is(.dark *){color:#a78bfa}.dark\\:text-violet-400\\/15:is(.dark *){color:#a78bfa26}.dark\\:text-violet-400\\/20:is(.dark *){color:#a78bfa33}.dark\\:text-violet-400\\/25:is(.dark *){color:#a78bfa40}.dark\\:text-violet-400\\/30:is(.dark *){color:#a78bfa4d}.dark\\:text-violet-400\\/35:is(.dark *){color:#a78bfa59}.dark\\:text-violet-400\\/40:is(.dark *){color:#a78bfa66}.dark\\:text-violet-400\\/45:is(.dark *){color:#a78bfa73}.dark\\:text-violet-400\\/5:is(.dark *){color:#a78bfa0d}.dark\\:text-violet-400\\/50:is(.dark *){color:#a78bfa80}.dark\\:text-violet-400\\/55:is(.dark *){color:#a78bfa8c}.dark\\:text-violet-400\\/60:is(.dark *){color:#a78bfa99}.dark\\:text-violet-400\\/65:is(.dark *){color:#a78bfaa6}.dark\\:text-violet-400\\/70:is(.dark *){color:#a78bfab3}.dark\\:text-violet-400\\/75:is(.dark *){color:#a78bfabf}.dark\\:text-violet-400\\/80:is(.dark *){color:#a78bfacc}.dark\\:text-violet-400\\/85:is(.dark *){color:#a78bfad9}.dark\\:text-violet-400\\/90:is(.dark *){color:#a78bfae6}.dark\\:text-violet-400\\/95:is(.dark *){color:#a78bfaf2}.dark\\:text-white:is(.dark *){--tw-text-opacity:1;color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\\:text-yellow-200:is(.dark *){--tw-text-opacity:1;color:#fde68a;color:rgb(253 230 138/var(--tw-text-opacity,1))}.dark\\:text-yellow-300:is(.dark *){--tw-text-opacity:1;color:#fcd34d;color:rgb(252 211 77/var(--tw-text-opacity,1))}.dark\\:text-yellow-400:is(.dark *){--tw-text-opacity:1;color:#fbbf24;color:rgb(251 191 36/var(--tw-text-opacity,1))}.dark\\:text-yellow-400\\/0:is(.dark *){color:#fbbf2400}.dark\\:text-yellow-400\\/10:is(.dark *){color:#fbbf241a}.dark\\:text-yellow-400\\/100:is(.dark *){color:#fbbf24}.dark\\:text-yellow-400\\/15:is(.dark *){color:#fbbf2426}.dark\\:text-yellow-400\\/20:is(.dark *){color:#fbbf2433}.dark\\:text-yellow-400\\/25:is(.dark *){color:#fbbf2440}.dark\\:text-yellow-400\\/30:is(.dark *){color:#fbbf244d}.dark\\:text-yellow-400\\/35:is(.dark *){color:#fbbf2459}.dark\\:text-yellow-400\\/40:is(.dark *){color:#fbbf2466}.dark\\:text-yellow-400\\/45:is(.dark *){color:#fbbf2473}.dark\\:text-yellow-400\\/5:is(.dark *){color:#fbbf240d}.dark\\:text-yellow-400\\/50:is(.dark *){color:#fbbf2480}.dark\\:text-yellow-400\\/55:is(.dark *){color:#fbbf248c}.dark\\:text-yellow-400\\/60:is(.dark *){color:#fbbf2499}.dark\\:text-yellow-400\\/65:is(.dark *){color:#fbbf24a6}.dark\\:text-yellow-400\\/70:is(.dark *){color:#fbbf24b3}.dark\\:text-yellow-400\\/75:is(.dark *){color:#fbbf24bf}.dark\\:text-yellow-400\\/80:is(.dark *){color:#fbbf24cc}.dark\\:text-yellow-400\\/85:is(.dark *){color:#fbbf24d9}.dark\\:text-yellow-400\\/90:is(.dark *){color:#fbbf24e6}.dark\\:text-yellow-400\\/95:is(.dark *){color:#fbbf24f2}.dark\\:placeholder-gray-500:is(.dark *)::placeholder{--tw-placeholder-opacity:1;color:rgb(var(--color-gray-500)/1);color:rgb(var(--color-gray-500)/var(--tw-placeholder-opacity,1))}.dark\\:shadow-\\[0_0_15px_rgba\\(249\\,181\\,55\\,0\\.3\\)\\]:is(.dark *){--tw-shadow:0 0 15px #f9b5374d;--tw-shadow-colored:0 0 15px var(--tw-shadow-color);box-shadow:0 0 #0000,0 0 #0000,0 0 15px #f9b5374d;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.dark\\:shadow-primary-400\\/10:is(.dark *){--tw-shadow-color:rgb(var(--color-primary-400)/.1);--tw-shadow:var(--tw-shadow-colored)}.dark\\:ring-amber-400:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(251 191 36/var(--tw-ring-opacity,1))}.dark\\:ring-blue-400:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(96 165 250/var(--tw-ring-opacity,1))}.dark\\:ring-gray-600:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-gray-600)/var(--tw-ring-opacity,1))}.dark\\:ring-gray-700:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-gray-700)/var(--tw-ring-opacity,1))}.dark\\:ring-gray-800:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-gray-800)/var(--tw-ring-opacity,1))}.dark\\:ring-gray-900:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-gray-900)/var(--tw-ring-opacity,1))}.dark\\:ring-green-400:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(45 212 191/var(--tw-ring-opacity,1))}.dark\\:ring-orange-400:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(251 146 60/var(--tw-ring-opacity,1))}.dark\\:ring-primary-400:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-primary-400)/var(--tw-ring-opacity,1))}.dark\\:ring-primary-400\\/0:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/0)}.dark\\:ring-primary-400\\/10:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.1)}.dark\\:ring-primary-400\\/100:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/1)}.dark\\:ring-primary-400\\/15:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.15)}.dark\\:ring-primary-400\\/20:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.2)}.dark\\:ring-primary-400\\/25:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.25)}.dark\\:ring-primary-400\\/30:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.3)}.dark\\:ring-primary-400\\/35:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.35)}.dark\\:ring-primary-400\\/40:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.4)}.dark\\:ring-primary-400\\/45:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.45)}.dark\\:ring-primary-400\\/5:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.05)}.dark\\:ring-primary-400\\/50:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.5)}.dark\\:ring-primary-400\\/55:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.55)}.dark\\:ring-primary-400\\/60:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.6)}.dark\\:ring-primary-400\\/65:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.65)}.dark\\:ring-primary-400\\/70:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.7)}.dark\\:ring-primary-400\\/75:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.75)}.dark\\:ring-primary-400\\/80:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.8)}.dark\\:ring-primary-400\\/85:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.85)}.dark\\:ring-primary-400\\/90:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.9)}.dark\\:ring-primary-400\\/95:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.95)}.dark\\:ring-red-400:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(248 113 113/var(--tw-ring-opacity,1))}.dark\\:ring-red-400\\/0:is(.dark *){--tw-ring-color:#f8717100}.dark\\:ring-red-400\\/10:is(.dark *){--tw-ring-color:#f871711a}.dark\\:ring-red-400\\/100:is(.dark *){--tw-ring-color:#f87171}.dark\\:ring-red-400\\/15:is(.dark *){--tw-ring-color:#f8717126}.dark\\:ring-red-400\\/20:is(.dark *){--tw-ring-color:#f8717133}.dark\\:ring-red-400\\/25:is(.dark *){--tw-ring-color:#f8717140}.dark\\:ring-red-400\\/30:is(.dark *){--tw-ring-color:#f871714d}.dark\\:ring-red-400\\/35:is(.dark *){--tw-ring-color:#f8717159}.dark\\:ring-red-400\\/40:is(.dark *){--tw-ring-color:#f8717166}.dark\\:ring-red-400\\/45:is(.dark *){--tw-ring-color:#f8717173}.dark\\:ring-red-400\\/5:is(.dark *){--tw-ring-color:#f871710d}.dark\\:ring-red-400\\/50:is(.dark *){--tw-ring-color:#f8717180}.dark\\:ring-red-400\\/55:is(.dark *){--tw-ring-color:#f871718c}.dark\\:ring-red-400\\/60:is(.dark *){--tw-ring-color:#f8717199}.dark\\:ring-red-400\\/65:is(.dark *){--tw-ring-color:#f87171a6}.dark\\:ring-red-400\\/70:is(.dark *){--tw-ring-color:#f87171b3}.dark\\:ring-red-400\\/75:is(.dark *){--tw-ring-color:#f87171bf}.dark\\:ring-red-400\\/80:is(.dark *){--tw-ring-color:#f87171cc}.dark\\:ring-red-400\\/85:is(.dark *){--tw-ring-color:#f87171d9}.dark\\:ring-red-400\\/90:is(.dark *){--tw-ring-color:#f87171e6}.dark\\:ring-red-400\\/95:is(.dark *){--tw-ring-color:#f87171f2}.dark\\:ring-rose-400:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(251 113 133/var(--tw-ring-opacity,1))}.dark\\:ring-teal-400:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(45 212 191/var(--tw-ring-opacity,1))}.dark\\:ring-yellow-400:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(251 191 36/var(--tw-ring-opacity,1))}.dark\\:ring-opacity-25:is(.dark *){--tw-ring-opacity:.25}.dark\\:file\\:bg-gray-800:is(.dark *)::file-selector-button{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-800)/1);background-color:rgb(var(--color-gray-800)/var(--tw-bg-opacity,1))}.dark\\:file\\:text-white:is(.dark *)::file-selector-button{--tw-text-opacity:1;color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\\:file\\:ring-gray-700:is(.dark *)::file-selector-button{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-gray-700)/var(--tw-ring-opacity,1))}.dark\\:before\\:bg-gray-700:is(.dark *):before{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(var(--color-gray-700)/1);background-color:rgb(var(--color-gray-700)/var(--tw-bg-opacity,1))}.dark\\:before\\:bg-gray-800:is(.dark *):before{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(var(--color-gray-800)/1);background-color:rgb(var(--color-gray-800)/var(--tw-bg-opacity,1))}.dark\\:before\\:ring-gray-700:is(.dark *):before{content:var(--tw-content);--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-gray-700)/var(--tw-ring-opacity,1))}.dark\\:before\\:ring-gray-800:is(.dark *):before{content:var(--tw-content);--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-gray-800)/var(--tw-ring-opacity,1))}.dark\\:after\\:bg-primary-400:is(.dark *):after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(var(--color-primary-400)/1);background-color:rgb(var(--color-primary-400)/var(--tw-bg-opacity,1))}.dark\\:after\\:text-red-400:is(.dark *):after{content:var(--tw-content);--tw-text-opacity:1;color:#f87171;color:rgb(248 113 113/var(--tw-text-opacity,1))}.dark\\:checked\\:border-transparent:checked:is(.dark *){border-color:#0000}.dark\\:checked\\:bg-current:checked:is(.dark *){background-color:currentColor}.dark\\:indeterminate\\:border-transparent:indeterminate:is(.dark *){border-color:#0000}.dark\\:indeterminate\\:bg-current:indeterminate:is(.dark *){background-color:currentColor}.dark\\:hover\\:border-primary-600:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(var(--color-primary-600)/var(--tw-border-opacity,1))}.dark\\:hover\\:\\!bg-gray-700:hover:is(.dark *){--tw-bg-opacity:1!important;background-color:rgb(var(--color-gray-700)/1)!important;background-color:rgb(var(--color-gray-700)/var(--tw-bg-opacity,1))!important}.dark\\:hover\\:bg-blue-500:hover:is(.dark *){--tw-bg-opacity:1;background-color:#3b82f6;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.dark\\:hover\\:bg-blue-900:hover:is(.dark *){--tw-bg-opacity:1;background-color:#1e3a8a;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.dark\\:hover\\:bg-blue-950:hover:is(.dark *){--tw-bg-opacity:1;background-color:#172554;background-color:rgb(23 37 84/var(--tw-bg-opacity,1))}.dark\\:hover\\:bg-gray-100:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-gray-100)/1);background-color:rgb(var(--color-gray-100)/var(--tw-bg-opacity,1))}.dark\\:hover\\:bg-gray-600:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-gray-600)/1);background-color:rgb(var(--color-gray-600)/var(--tw-bg-opacity,1))}.dark\\:hover\\:bg-gray-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-gray-700)/1);background-color:rgb(var(--color-gray-700)/var(--tw-bg-opacity,1))}.dark\\:hover\\:bg-gray-700\\/30:hover:is(.dark *){background-color:rgb(var(--color-gray-700)/.3)}.dark\\:hover\\:bg-gray-700\\/50:hover:is(.dark *){background-color:rgb(var(--color-gray-700)/.5)}.dark\\:hover\\:bg-gray-800:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-gray-800)/1);background-color:rgb(var(--color-gray-800)/var(--tw-bg-opacity,1))}.dark\\:hover\\:bg-gray-800\\/50:hover:is(.dark *){background-color:rgb(var(--color-gray-800)/.5)}.dark\\:hover\\:bg-gray-900:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-gray-900)/1);background-color:rgb(var(--color-gray-900)/var(--tw-bg-opacity,1))}.dark\\:hover\\:bg-green-500:hover:is(.dark *){--tw-bg-opacity:1;background-color:#14b8a6;background-color:rgb(20 184 166/var(--tw-bg-opacity,1))}.dark\\:hover\\:bg-green-900:hover:is(.dark *){--tw-bg-opacity:1;background-color:#134e4a;background-color:rgb(19 78 74/var(--tw-bg-opacity,1))}.dark\\:hover\\:bg-green-950:hover:is(.dark *){--tw-bg-opacity:1;background-color:#042f2e;background-color:rgb(4 47 46/var(--tw-bg-opacity,1))}.dark\\:hover\\:bg-primary-500:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-primary-500)/1);background-color:rgb(var(--color-primary-500)/var(--tw-bg-opacity,1))}.dark\\:hover\\:bg-primary-500\\/0:hover:is(.dark *){background-color:rgb(var(--color-primary-500)/0)}.dark\\:hover\\:bg-primary-500\\/10:hover:is(.dark *){background-color:rgb(var(--color-primary-500)/.1)}.dark\\:hover\\:bg-primary-500\\/100:hover:is(.dark *){background-color:rgb(var(--color-primary-500)/1)}.dark\\:hover\\:bg-primary-500\\/15:hover:is(.dark *){background-color:rgb(var(--color-primary-500)/.15)}.dark\\:hover\\:bg-primary-500\\/20:hover:is(.dark *){background-color:rgb(var(--color-primary-500)/.2)}.dark\\:hover\\:bg-primary-500\\/25:hover:is(.dark *){background-color:rgb(var(--color-primary-500)/.25)}.dark\\:hover\\:bg-primary-500\\/30:hover:is(.dark *){background-color:rgb(var(--color-primary-500)/.3)}.dark\\:hover\\:bg-primary-500\\/35:hover:is(.dark *){background-color:rgb(var(--color-primary-500)/.35)}.dark\\:hover\\:bg-primary-500\\/40:hover:is(.dark *){background-color:rgb(var(--color-primary-500)/.4)}.dark\\:hover\\:bg-primary-500\\/45:hover:is(.dark *){background-color:rgb(var(--color-primary-500)/.45)}.dark\\:hover\\:bg-primary-500\\/5:hover:is(.dark *){background-color:rgb(var(--color-primary-500)/.05)}.dark\\:hover\\:bg-primary-500\\/50:hover:is(.dark *){background-color:rgb(var(--color-primary-500)/.5)}.dark\\:hover\\:bg-primary-500\\/55:hover:is(.dark *){background-color:rgb(var(--color-primary-500)/.55)}.dark\\:hover\\:bg-primary-500\\/60:hover:is(.dark *){background-color:rgb(var(--color-primary-500)/.6)}.dark\\:hover\\:bg-primary-500\\/65:hover:is(.dark *){background-color:rgb(var(--color-primary-500)/.65)}.dark\\:hover\\:bg-primary-500\\/70:hover:is(.dark *){background-color:rgb(var(--color-primary-500)/.7)}.dark\\:hover\\:bg-primary-500\\/75:hover:is(.dark *){background-color:rgb(var(--color-primary-500)/.75)}.dark\\:hover\\:bg-primary-500\\/80:hover:is(.dark *){background-color:rgb(var(--color-primary-500)/.8)}.dark\\:hover\\:bg-primary-500\\/85:hover:is(.dark *){background-color:rgb(var(--color-primary-500)/.85)}.dark\\:hover\\:bg-primary-500\\/90:hover:is(.dark *){background-color:rgb(var(--color-primary-500)/.9)}.dark\\:hover\\:bg-primary-500\\/95:hover:is(.dark *){background-color:rgb(var(--color-primary-500)/.95)}.dark\\:hover\\:bg-primary-900:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-primary-900)/1);background-color:rgb(var(--color-primary-900)/var(--tw-bg-opacity,1))}.dark\\:hover\\:bg-primary-900\\/0:hover:is(.dark *){background-color:rgb(var(--color-primary-900)/0)}.dark\\:hover\\:bg-primary-900\\/10:hover:is(.dark *){background-color:rgb(var(--color-primary-900)/.1)}.dark\\:hover\\:bg-primary-900\\/100:hover:is(.dark *){background-color:rgb(var(--color-primary-900)/1)}.dark\\:hover\\:bg-primary-900\\/15:hover:is(.dark *){background-color:rgb(var(--color-primary-900)/.15)}.dark\\:hover\\:bg-primary-900\\/20:hover:is(.dark *){background-color:rgb(var(--color-primary-900)/.2)}.dark\\:hover\\:bg-primary-900\\/25:hover:is(.dark *){background-color:rgb(var(--color-primary-900)/.25)}.dark\\:hover\\:bg-primary-900\\/30:hover:is(.dark *){background-color:rgb(var(--color-primary-900)/.3)}.dark\\:hover\\:bg-primary-900\\/35:hover:is(.dark *){background-color:rgb(var(--color-primary-900)/.35)}.dark\\:hover\\:bg-primary-900\\/40:hover:is(.dark *){background-color:rgb(var(--color-primary-900)/.4)}.dark\\:hover\\:bg-primary-900\\/45:hover:is(.dark *){background-color:rgb(var(--color-primary-900)/.45)}.dark\\:hover\\:bg-primary-900\\/5:hover:is(.dark *){background-color:rgb(var(--color-primary-900)/.05)}.dark\\:hover\\:bg-primary-900\\/50:hover:is(.dark *){background-color:rgb(var(--color-primary-900)/.5)}.dark\\:hover\\:bg-primary-900\\/55:hover:is(.dark *){background-color:rgb(var(--color-primary-900)/.55)}.dark\\:hover\\:bg-primary-900\\/60:hover:is(.dark *){background-color:rgb(var(--color-primary-900)/.6)}.dark\\:hover\\:bg-primary-900\\/65:hover:is(.dark *){background-color:rgb(var(--color-primary-900)/.65)}.dark\\:hover\\:bg-primary-900\\/70:hover:is(.dark *){background-color:rgb(var(--color-primary-900)/.7)}.dark\\:hover\\:bg-primary-900\\/75:hover:is(.dark *){background-color:rgb(var(--color-primary-900)/.75)}.dark\\:hover\\:bg-primary-900\\/80:hover:is(.dark *){background-color:rgb(var(--color-primary-900)/.8)}.dark\\:hover\\:bg-primary-900\\/85:hover:is(.dark *){background-color:rgb(var(--color-primary-900)/.85)}.dark\\:hover\\:bg-primary-900\\/90:hover:is(.dark *){background-color:rgb(var(--color-primary-900)/.9)}.dark\\:hover\\:bg-primary-900\\/95:hover:is(.dark *){background-color:rgb(var(--color-primary-900)/.95)}.dark\\:hover\\:bg-primary-950:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-primary-950)/1);background-color:rgb(var(--color-primary-950)/var(--tw-bg-opacity,1))}.dark\\:hover\\:bg-primary-950\\/0:hover:is(.dark *){background-color:rgb(var(--color-primary-950)/0)}.dark\\:hover\\:bg-primary-950\\/10:hover:is(.dark *){background-color:rgb(var(--color-primary-950)/.1)}.dark\\:hover\\:bg-primary-950\\/100:hover:is(.dark *){background-color:rgb(var(--color-primary-950)/1)}.dark\\:hover\\:bg-primary-950\\/15:hover:is(.dark *){background-color:rgb(var(--color-primary-950)/.15)}.dark\\:hover\\:bg-primary-950\\/20:hover:is(.dark *){background-color:rgb(var(--color-primary-950)/.2)}.dark\\:hover\\:bg-primary-950\\/25:hover:is(.dark *){background-color:rgb(var(--color-primary-950)/.25)}.dark\\:hover\\:bg-primary-950\\/30:hover:is(.dark *){background-color:rgb(var(--color-primary-950)/.3)}.dark\\:hover\\:bg-primary-950\\/35:hover:is(.dark *){background-color:rgb(var(--color-primary-950)/.35)}.dark\\:hover\\:bg-primary-950\\/40:hover:is(.dark *){background-color:rgb(var(--color-primary-950)/.4)}.dark\\:hover\\:bg-primary-950\\/45:hover:is(.dark *){background-color:rgb(var(--color-primary-950)/.45)}.dark\\:hover\\:bg-primary-950\\/5:hover:is(.dark *){background-color:rgb(var(--color-primary-950)/.05)}.dark\\:hover\\:bg-primary-950\\/50:hover:is(.dark *){background-color:rgb(var(--color-primary-950)/.5)}.dark\\:hover\\:bg-primary-950\\/55:hover:is(.dark *){background-color:rgb(var(--color-primary-950)/.55)}.dark\\:hover\\:bg-primary-950\\/60:hover:is(.dark *){background-color:rgb(var(--color-primary-950)/.6)}.dark\\:hover\\:bg-primary-950\\/65:hover:is(.dark *){background-color:rgb(var(--color-primary-950)/.65)}.dark\\:hover\\:bg-primary-950\\/70:hover:is(.dark *){background-color:rgb(var(--color-primary-950)/.7)}.dark\\:hover\\:bg-primary-950\\/75:hover:is(.dark *){background-color:rgb(var(--color-primary-950)/.75)}.dark\\:hover\\:bg-primary-950\\/80:hover:is(.dark *){background-color:rgb(var(--color-primary-950)/.8)}.dark\\:hover\\:bg-primary-950\\/85:hover:is(.dark *){background-color:rgb(var(--color-primary-950)/.85)}.dark\\:hover\\:bg-primary-950\\/90:hover:is(.dark *){background-color:rgb(var(--color-primary-950)/.9)}.dark\\:hover\\:bg-primary-950\\/95:hover:is(.dark *){background-color:rgb(var(--color-primary-950)/.95)}.dark\\:hover\\:bg-red-500:hover:is(.dark *){--tw-bg-opacity:1;background-color:#ef4444;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.dark\\:hover\\:bg-red-900:hover:is(.dark *){--tw-bg-opacity:1;background-color:#7f1d1d;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.dark\\:hover\\:bg-red-950:hover:is(.dark *){--tw-bg-opacity:1;background-color:#450a0a;background-color:rgb(69 10 10/var(--tw-bg-opacity,1))}.dark\\:hover\\:bg-rose-500:hover:is(.dark *){--tw-bg-opacity:1;background-color:#f43f5e;background-color:rgb(244 63 94/var(--tw-bg-opacity,1))}.dark\\:hover\\:bg-rose-900:hover:is(.dark *){--tw-bg-opacity:1;background-color:#881337;background-color:rgb(136 19 55/var(--tw-bg-opacity,1))}.dark\\:hover\\:bg-rose-950:hover:is(.dark *){--tw-bg-opacity:1;background-color:#4c0519;background-color:rgb(76 5 25/var(--tw-bg-opacity,1))}.dark\\:hover\\:bg-teal-500:hover:is(.dark *){--tw-bg-opacity:1;background-color:#14b8a6;background-color:rgb(20 184 166/var(--tw-bg-opacity,1))}.dark\\:hover\\:bg-teal-900:hover:is(.dark *){--tw-bg-opacity:1;background-color:#134e4a;background-color:rgb(19 78 74/var(--tw-bg-opacity,1))}.dark\\:hover\\:bg-teal-950:hover:is(.dark *){--tw-bg-opacity:1;background-color:#042f2e;background-color:rgb(4 47 46/var(--tw-bg-opacity,1))}.hover\\:dark\\:bg-gray-800:is(.dark *):hover{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-800)/1);background-color:rgb(var(--color-gray-800)/var(--tw-bg-opacity,1))}.dark\\:hover\\:text-blue-500:hover:is(.dark *){--tw-text-opacity:1;color:#3b82f6;color:rgb(59 130 246/var(--tw-text-opacity,1))}.dark\\:hover\\:text-gray-200:hover:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-gray-200)/1);color:rgb(var(--color-gray-200)/var(--tw-text-opacity,1))}.dark\\:hover\\:text-gray-300:hover:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-gray-300)/1);color:rgb(var(--color-gray-300)/var(--tw-text-opacity,1))}.dark\\:hover\\:text-green-500:hover:is(.dark *){--tw-text-opacity:1;color:#14b8a6;color:rgb(20 184 166/var(--tw-text-opacity,1))}.dark\\:hover\\:text-primary-500:hover:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-primary-500)/1);color:rgb(var(--color-primary-500)/var(--tw-text-opacity,1))}.dark\\:hover\\:text-primary-500\\/0:hover:is(.dark *){color:rgb(var(--color-primary-500)/0)}.dark\\:hover\\:text-primary-500\\/10:hover:is(.dark *){color:rgb(var(--color-primary-500)/.1)}.dark\\:hover\\:text-primary-500\\/100:hover:is(.dark *){color:rgb(var(--color-primary-500)/1)}.dark\\:hover\\:text-primary-500\\/15:hover:is(.dark *){color:rgb(var(--color-primary-500)/.15)}.dark\\:hover\\:text-primary-500\\/20:hover:is(.dark *){color:rgb(var(--color-primary-500)/.2)}.dark\\:hover\\:text-primary-500\\/25:hover:is(.dark *){color:rgb(var(--color-primary-500)/.25)}.dark\\:hover\\:text-primary-500\\/30:hover:is(.dark *){color:rgb(var(--color-primary-500)/.3)}.dark\\:hover\\:text-primary-500\\/35:hover:is(.dark *){color:rgb(var(--color-primary-500)/.35)}.dark\\:hover\\:text-primary-500\\/40:hover:is(.dark *){color:rgb(var(--color-primary-500)/.4)}.dark\\:hover\\:text-primary-500\\/45:hover:is(.dark *){color:rgb(var(--color-primary-500)/.45)}.dark\\:hover\\:text-primary-500\\/5:hover:is(.dark *){color:rgb(var(--color-primary-500)/.05)}.dark\\:hover\\:text-primary-500\\/50:hover:is(.dark *){color:rgb(var(--color-primary-500)/.5)}.dark\\:hover\\:text-primary-500\\/55:hover:is(.dark *){color:rgb(var(--color-primary-500)/.55)}.dark\\:hover\\:text-primary-500\\/60:hover:is(.dark *){color:rgb(var(--color-primary-500)/.6)}.dark\\:hover\\:text-primary-500\\/65:hover:is(.dark *){color:rgb(var(--color-primary-500)/.65)}.dark\\:hover\\:text-primary-500\\/70:hover:is(.dark *){color:rgb(var(--color-primary-500)/.7)}.dark\\:hover\\:text-primary-500\\/75:hover:is(.dark *){color:rgb(var(--color-primary-500)/.75)}.dark\\:hover\\:text-primary-500\\/80:hover:is(.dark *){color:rgb(var(--color-primary-500)/.8)}.dark\\:hover\\:text-primary-500\\/85:hover:is(.dark *){color:rgb(var(--color-primary-500)/.85)}.dark\\:hover\\:text-primary-500\\/90:hover:is(.dark *){color:rgb(var(--color-primary-500)/.9)}.dark\\:hover\\:text-primary-500\\/95:hover:is(.dark *){color:rgb(var(--color-primary-500)/.95)}.dark\\:hover\\:text-red-500:hover:is(.dark *){--tw-text-opacity:1;color:#ef4444;color:rgb(239 68 68/var(--tw-text-opacity,1))}.dark\\:hover\\:text-rose-500:hover:is(.dark *){--tw-text-opacity:1;color:#f43f5e;color:rgb(244 63 94/var(--tw-text-opacity,1))}.dark\\:hover\\:text-teal-500:hover:is(.dark *){--tw-text-opacity:1;color:#14b8a6;color:rgb(20 184 166/var(--tw-text-opacity,1))}.dark\\:hover\\:text-white:hover:is(.dark *){--tw-text-opacity:1;color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\\:hover\\:file\\:bg-gray-700\\/50:is(.dark *)::file-selector-button:hover{background-color:rgb(var(--color-gray-700)/.5)}.dark\\:hover\\:before\\:bg-gray-800\\/50:hover:is(.dark *):before{background-color:rgb(var(--color-gray-800)/.5);content:var(--tw-content)}.dark\\:focus\\:ring-gray-800:focus:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-gray-800)/var(--tw-ring-opacity,1))}.dark\\:focus\\:ring-primary-400:focus:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-primary-400)/var(--tw-ring-opacity,1))}.dark\\:focus\\:ring-primary-400\\/0:focus:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/0)}.dark\\:focus\\:ring-primary-400\\/10:focus:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.1)}.dark\\:focus\\:ring-primary-400\\/100:focus:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/1)}.dark\\:focus\\:ring-primary-400\\/15:focus:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.15)}.dark\\:focus\\:ring-primary-400\\/20:focus:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.2)}.dark\\:focus\\:ring-primary-400\\/25:focus:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.25)}.dark\\:focus\\:ring-primary-400\\/30:focus:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.3)}.dark\\:focus\\:ring-primary-400\\/35:focus:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.35)}.dark\\:focus\\:ring-primary-400\\/40:focus:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.4)}.dark\\:focus\\:ring-primary-400\\/45:focus:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.45)}.dark\\:focus\\:ring-primary-400\\/5:focus:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.05)}.dark\\:focus\\:ring-primary-400\\/50:focus:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.5)}.dark\\:focus\\:ring-primary-400\\/55:focus:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.55)}.dark\\:focus\\:ring-primary-400\\/60:focus:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.6)}.dark\\:focus\\:ring-primary-400\\/65:focus:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.65)}.dark\\:focus\\:ring-primary-400\\/70:focus:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.7)}.dark\\:focus\\:ring-primary-400\\/75:focus:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.75)}.dark\\:focus\\:ring-primary-400\\/80:focus:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.8)}.dark\\:focus\\:ring-primary-400\\/85:focus:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.85)}.dark\\:focus\\:ring-primary-400\\/90:focus:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.9)}.dark\\:focus\\:ring-primary-400\\/95:focus:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.95)}.dark\\:focus\\:ring-red-400:focus:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(248 113 113/var(--tw-ring-opacity,1))}.dark\\:focus\\:ring-red-400\\/0:focus:is(.dark *){--tw-ring-color:#f8717100}.dark\\:focus\\:ring-red-400\\/10:focus:is(.dark *){--tw-ring-color:#f871711a}.dark\\:focus\\:ring-red-400\\/100:focus:is(.dark *){--tw-ring-color:#f87171}.dark\\:focus\\:ring-red-400\\/15:focus:is(.dark *){--tw-ring-color:#f8717126}.dark\\:focus\\:ring-red-400\\/20:focus:is(.dark *){--tw-ring-color:#f8717133}.dark\\:focus\\:ring-red-400\\/25:focus:is(.dark *){--tw-ring-color:#f8717140}.dark\\:focus\\:ring-red-400\\/30:focus:is(.dark *){--tw-ring-color:#f871714d}.dark\\:focus\\:ring-red-400\\/35:focus:is(.dark *){--tw-ring-color:#f8717159}.dark\\:focus\\:ring-red-400\\/40:focus:is(.dark *){--tw-ring-color:#f8717166}.dark\\:focus\\:ring-red-400\\/45:focus:is(.dark *){--tw-ring-color:#f8717173}.dark\\:focus\\:ring-red-400\\/5:focus:is(.dark *){--tw-ring-color:#f871710d}.dark\\:focus\\:ring-red-400\\/50:focus:is(.dark *){--tw-ring-color:#f8717180}.dark\\:focus\\:ring-red-400\\/55:focus:is(.dark *){--tw-ring-color:#f871718c}.dark\\:focus\\:ring-red-400\\/60:focus:is(.dark *){--tw-ring-color:#f8717199}.dark\\:focus\\:ring-red-400\\/65:focus:is(.dark *){--tw-ring-color:#f87171a6}.dark\\:focus\\:ring-red-400\\/70:focus:is(.dark *){--tw-ring-color:#f87171b3}.dark\\:focus\\:ring-red-400\\/75:focus:is(.dark *){--tw-ring-color:#f87171bf}.dark\\:focus\\:ring-red-400\\/80:focus:is(.dark *){--tw-ring-color:#f87171cc}.dark\\:focus\\:ring-red-400\\/85:focus:is(.dark *){--tw-ring-color:#f87171d9}.dark\\:focus\\:ring-red-400\\/90:focus:is(.dark *){--tw-ring-color:#f87171e6}.dark\\:focus\\:ring-red-400\\/95:focus:is(.dark *){--tw-ring-color:#f87171f2}.dark\\:focus-visible\\:outline-none:focus-visible:is(.dark *){outline:2px solid #0000;outline-offset:2px}.dark\\:focus-visible\\:outline-blue-400:focus-visible:is(.dark *){outline-color:#60a5fa}.dark\\:focus-visible\\:outline-green-400:focus-visible:is(.dark *){outline-color:#2dd4bf}.dark\\:focus-visible\\:outline-primary-400:focus-visible:is(.dark *){outline-color:rgb(var(--color-primary-400)/1)}.dark\\:focus-visible\\:outline-primary-400\\/0:focus-visible:is(.dark *){outline-color:rgb(var(--color-primary-400)/0)}.dark\\:focus-visible\\:outline-primary-400\\/10:focus-visible:is(.dark *){outline-color:rgb(var(--color-primary-400)/.1)}.dark\\:focus-visible\\:outline-primary-400\\/100:focus-visible:is(.dark *){outline-color:rgb(var(--color-primary-400)/1)}.dark\\:focus-visible\\:outline-primary-400\\/15:focus-visible:is(.dark *){outline-color:rgb(var(--color-primary-400)/.15)}.dark\\:focus-visible\\:outline-primary-400\\/20:focus-visible:is(.dark *){outline-color:rgb(var(--color-primary-400)/.2)}.dark\\:focus-visible\\:outline-primary-400\\/25:focus-visible:is(.dark *){outline-color:rgb(var(--color-primary-400)/.25)}.dark\\:focus-visible\\:outline-primary-400\\/30:focus-visible:is(.dark *){outline-color:rgb(var(--color-primary-400)/.3)}.dark\\:focus-visible\\:outline-primary-400\\/35:focus-visible:is(.dark *){outline-color:rgb(var(--color-primary-400)/.35)}.dark\\:focus-visible\\:outline-primary-400\\/40:focus-visible:is(.dark *){outline-color:rgb(var(--color-primary-400)/.4)}.dark\\:focus-visible\\:outline-primary-400\\/45:focus-visible:is(.dark *){outline-color:rgb(var(--color-primary-400)/.45)}.dark\\:focus-visible\\:outline-primary-400\\/5:focus-visible:is(.dark *){outline-color:rgb(var(--color-primary-400)/.05)}.dark\\:focus-visible\\:outline-primary-400\\/50:focus-visible:is(.dark *){outline-color:rgb(var(--color-primary-400)/.5)}.dark\\:focus-visible\\:outline-primary-400\\/55:focus-visible:is(.dark *){outline-color:rgb(var(--color-primary-400)/.55)}.dark\\:focus-visible\\:outline-primary-400\\/60:focus-visible:is(.dark *){outline-color:rgb(var(--color-primary-400)/.6)}.dark\\:focus-visible\\:outline-primary-400\\/65:focus-visible:is(.dark *){outline-color:rgb(var(--color-primary-400)/.65)}.dark\\:focus-visible\\:outline-primary-400\\/70:focus-visible:is(.dark *){outline-color:rgb(var(--color-primary-400)/.7)}.dark\\:focus-visible\\:outline-primary-400\\/75:focus-visible:is(.dark *){outline-color:rgb(var(--color-primary-400)/.75)}.dark\\:focus-visible\\:outline-primary-400\\/80:focus-visible:is(.dark *){outline-color:rgb(var(--color-primary-400)/.8)}.dark\\:focus-visible\\:outline-primary-400\\/85:focus-visible:is(.dark *){outline-color:rgb(var(--color-primary-400)/.85)}.dark\\:focus-visible\\:outline-primary-400\\/90:focus-visible:is(.dark *){outline-color:rgb(var(--color-primary-400)/.9)}.dark\\:focus-visible\\:outline-primary-400\\/95:focus-visible:is(.dark *){outline-color:rgb(var(--color-primary-400)/.95)}.dark\\:focus-visible\\:outline-red-400:focus-visible:is(.dark *){outline-color:#f87171}.dark\\:focus-visible\\:outline-rose-400:focus-visible:is(.dark *){outline-color:#fb7185}.dark\\:focus-visible\\:outline-teal-400:focus-visible:is(.dark *){outline-color:#2dd4bf}.dark\\:focus-visible\\:ring-blue-400:focus-visible:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(96 165 250/var(--tw-ring-opacity,1))}.dark\\:focus-visible\\:ring-gray-400:focus-visible:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-gray-400)/var(--tw-ring-opacity,1))}.dark\\:focus-visible\\:ring-green-400:focus-visible:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(45 212 191/var(--tw-ring-opacity,1))}.dark\\:focus-visible\\:ring-primary-400:focus-visible:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-primary-400)/var(--tw-ring-opacity,1))}.dark\\:focus-visible\\:ring-primary-400\\/0:focus-visible:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/0)}.dark\\:focus-visible\\:ring-primary-400\\/10:focus-visible:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.1)}.dark\\:focus-visible\\:ring-primary-400\\/100:focus-visible:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/1)}.dark\\:focus-visible\\:ring-primary-400\\/15:focus-visible:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.15)}.dark\\:focus-visible\\:ring-primary-400\\/20:focus-visible:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.2)}.dark\\:focus-visible\\:ring-primary-400\\/25:focus-visible:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.25)}.dark\\:focus-visible\\:ring-primary-400\\/30:focus-visible:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.3)}.dark\\:focus-visible\\:ring-primary-400\\/35:focus-visible:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.35)}.dark\\:focus-visible\\:ring-primary-400\\/40:focus-visible:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.4)}.dark\\:focus-visible\\:ring-primary-400\\/45:focus-visible:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.45)}.dark\\:focus-visible\\:ring-primary-400\\/5:focus-visible:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.05)}.dark\\:focus-visible\\:ring-primary-400\\/50:focus-visible:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.5)}.dark\\:focus-visible\\:ring-primary-400\\/55:focus-visible:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.55)}.dark\\:focus-visible\\:ring-primary-400\\/60:focus-visible:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.6)}.dark\\:focus-visible\\:ring-primary-400\\/65:focus-visible:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.65)}.dark\\:focus-visible\\:ring-primary-400\\/70:focus-visible:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.7)}.dark\\:focus-visible\\:ring-primary-400\\/75:focus-visible:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.75)}.dark\\:focus-visible\\:ring-primary-400\\/80:focus-visible:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.8)}.dark\\:focus-visible\\:ring-primary-400\\/85:focus-visible:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.85)}.dark\\:focus-visible\\:ring-primary-400\\/90:focus-visible:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.9)}.dark\\:focus-visible\\:ring-primary-400\\/95:focus-visible:is(.dark *){--tw-ring-color:rgb(var(--color-primary-400)/.95)}.dark\\:focus-visible\\:ring-red-400:focus-visible:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(248 113 113/var(--tw-ring-opacity,1))}.dark\\:focus-visible\\:ring-red-400\\/0:focus-visible:is(.dark *){--tw-ring-color:#f8717100}.dark\\:focus-visible\\:ring-red-400\\/10:focus-visible:is(.dark *){--tw-ring-color:#f871711a}.dark\\:focus-visible\\:ring-red-400\\/100:focus-visible:is(.dark *){--tw-ring-color:#f87171}.dark\\:focus-visible\\:ring-red-400\\/15:focus-visible:is(.dark *){--tw-ring-color:#f8717126}.dark\\:focus-visible\\:ring-red-400\\/20:focus-visible:is(.dark *){--tw-ring-color:#f8717133}.dark\\:focus-visible\\:ring-red-400\\/25:focus-visible:is(.dark *){--tw-ring-color:#f8717140}.dark\\:focus-visible\\:ring-red-400\\/30:focus-visible:is(.dark *){--tw-ring-color:#f871714d}.dark\\:focus-visible\\:ring-red-400\\/35:focus-visible:is(.dark *){--tw-ring-color:#f8717159}.dark\\:focus-visible\\:ring-red-400\\/40:focus-visible:is(.dark *){--tw-ring-color:#f8717166}.dark\\:focus-visible\\:ring-red-400\\/45:focus-visible:is(.dark *){--tw-ring-color:#f8717173}.dark\\:focus-visible\\:ring-red-400\\/5:focus-visible:is(.dark *){--tw-ring-color:#f871710d}.dark\\:focus-visible\\:ring-red-400\\/50:focus-visible:is(.dark *){--tw-ring-color:#f8717180}.dark\\:focus-visible\\:ring-red-400\\/55:focus-visible:is(.dark *){--tw-ring-color:#f871718c}.dark\\:focus-visible\\:ring-red-400\\/60:focus-visible:is(.dark *){--tw-ring-color:#f8717199}.dark\\:focus-visible\\:ring-red-400\\/65:focus-visible:is(.dark *){--tw-ring-color:#f87171a6}.dark\\:focus-visible\\:ring-red-400\\/70:focus-visible:is(.dark *){--tw-ring-color:#f87171b3}.dark\\:focus-visible\\:ring-red-400\\/75:focus-visible:is(.dark *){--tw-ring-color:#f87171bf}.dark\\:focus-visible\\:ring-red-400\\/80:focus-visible:is(.dark *){--tw-ring-color:#f87171cc}.dark\\:focus-visible\\:ring-red-400\\/85:focus-visible:is(.dark *){--tw-ring-color:#f87171d9}.dark\\:focus-visible\\:ring-red-400\\/90:focus-visible:is(.dark *){--tw-ring-color:#f87171e6}.dark\\:focus-visible\\:ring-red-400\\/95:focus-visible:is(.dark *){--tw-ring-color:#f87171f2}.dark\\:focus-visible\\:ring-rose-400:focus-visible:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(251 113 133/var(--tw-ring-opacity,1))}.dark\\:focus-visible\\:ring-teal-400:focus-visible:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(45 212 191/var(--tw-ring-opacity,1))}.dark\\:focus-visible\\:ring-offset-gray-900:focus-visible:is(.dark *){--tw-ring-offset-color:rgb(var(--color-gray-900)/1)}.dark\\:focus-visible\\:before\\:ring-primary-400:focus-visible:is(.dark *):before{content:var(--tw-content);--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-primary-400)/var(--tw-ring-opacity,1))}.dark\\:active\\:bg-gray-700:active:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-gray-700)/1);background-color:rgb(var(--color-gray-700)/var(--tw-bg-opacity,1))}.dark\\:disabled\\:bg-blue-400:disabled:is(.dark *){--tw-bg-opacity:1;background-color:#60a5fa;background-color:rgb(96 165 250/var(--tw-bg-opacity,1))}.dark\\:disabled\\:bg-blue-950:disabled:is(.dark *){--tw-bg-opacity:1;background-color:#172554;background-color:rgb(23 37 84/var(--tw-bg-opacity,1))}.dark\\:disabled\\:bg-gray-800:disabled:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-gray-800)/1);background-color:rgb(var(--color-gray-800)/var(--tw-bg-opacity,1))}.dark\\:disabled\\:bg-gray-900:disabled:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-gray-900)/1);background-color:rgb(var(--color-gray-900)/var(--tw-bg-opacity,1))}.dark\\:disabled\\:bg-green-400:disabled:is(.dark *){--tw-bg-opacity:1;background-color:#2dd4bf;background-color:rgb(45 212 191/var(--tw-bg-opacity,1))}.dark\\:disabled\\:bg-green-950:disabled:is(.dark *){--tw-bg-opacity:1;background-color:#042f2e;background-color:rgb(4 47 46/var(--tw-bg-opacity,1))}.dark\\:disabled\\:bg-primary-400:disabled:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-primary-400)/1);background-color:rgb(var(--color-primary-400)/var(--tw-bg-opacity,1))}.dark\\:disabled\\:bg-primary-400\\/0:disabled:is(.dark *){background-color:rgb(var(--color-primary-400)/0)}.dark\\:disabled\\:bg-primary-400\\/10:disabled:is(.dark *){background-color:rgb(var(--color-primary-400)/.1)}.dark\\:disabled\\:bg-primary-400\\/100:disabled:is(.dark *){background-color:rgb(var(--color-primary-400)/1)}.dark\\:disabled\\:bg-primary-400\\/15:disabled:is(.dark *){background-color:rgb(var(--color-primary-400)/.15)}.dark\\:disabled\\:bg-primary-400\\/20:disabled:is(.dark *){background-color:rgb(var(--color-primary-400)/.2)}.dark\\:disabled\\:bg-primary-400\\/25:disabled:is(.dark *){background-color:rgb(var(--color-primary-400)/.25)}.dark\\:disabled\\:bg-primary-400\\/30:disabled:is(.dark *){background-color:rgb(var(--color-primary-400)/.3)}.dark\\:disabled\\:bg-primary-400\\/35:disabled:is(.dark *){background-color:rgb(var(--color-primary-400)/.35)}.dark\\:disabled\\:bg-primary-400\\/40:disabled:is(.dark *){background-color:rgb(var(--color-primary-400)/.4)}.dark\\:disabled\\:bg-primary-400\\/45:disabled:is(.dark *){background-color:rgb(var(--color-primary-400)/.45)}.dark\\:disabled\\:bg-primary-400\\/5:disabled:is(.dark *){background-color:rgb(var(--color-primary-400)/.05)}.dark\\:disabled\\:bg-primary-400\\/50:disabled:is(.dark *){background-color:rgb(var(--color-primary-400)/.5)}.dark\\:disabled\\:bg-primary-400\\/55:disabled:is(.dark *){background-color:rgb(var(--color-primary-400)/.55)}.dark\\:disabled\\:bg-primary-400\\/60:disabled:is(.dark *){background-color:rgb(var(--color-primary-400)/.6)}.dark\\:disabled\\:bg-primary-400\\/65:disabled:is(.dark *){background-color:rgb(var(--color-primary-400)/.65)}.dark\\:disabled\\:bg-primary-400\\/70:disabled:is(.dark *){background-color:rgb(var(--color-primary-400)/.7)}.dark\\:disabled\\:bg-primary-400\\/75:disabled:is(.dark *){background-color:rgb(var(--color-primary-400)/.75)}.dark\\:disabled\\:bg-primary-400\\/80:disabled:is(.dark *){background-color:rgb(var(--color-primary-400)/.8)}.dark\\:disabled\\:bg-primary-400\\/85:disabled:is(.dark *){background-color:rgb(var(--color-primary-400)/.85)}.dark\\:disabled\\:bg-primary-400\\/90:disabled:is(.dark *){background-color:rgb(var(--color-primary-400)/.9)}.dark\\:disabled\\:bg-primary-400\\/95:disabled:is(.dark *){background-color:rgb(var(--color-primary-400)/.95)}.dark\\:disabled\\:bg-primary-950:disabled:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-primary-950)/1);background-color:rgb(var(--color-primary-950)/var(--tw-bg-opacity,1))}.dark\\:disabled\\:bg-primary-950\\/0:disabled:is(.dark *){background-color:rgb(var(--color-primary-950)/0)}.dark\\:disabled\\:bg-primary-950\\/10:disabled:is(.dark *){background-color:rgb(var(--color-primary-950)/.1)}.dark\\:disabled\\:bg-primary-950\\/100:disabled:is(.dark *){background-color:rgb(var(--color-primary-950)/1)}.dark\\:disabled\\:bg-primary-950\\/15:disabled:is(.dark *){background-color:rgb(var(--color-primary-950)/.15)}.dark\\:disabled\\:bg-primary-950\\/20:disabled:is(.dark *){background-color:rgb(var(--color-primary-950)/.2)}.dark\\:disabled\\:bg-primary-950\\/25:disabled:is(.dark *){background-color:rgb(var(--color-primary-950)/.25)}.dark\\:disabled\\:bg-primary-950\\/30:disabled:is(.dark *){background-color:rgb(var(--color-primary-950)/.3)}.dark\\:disabled\\:bg-primary-950\\/35:disabled:is(.dark *){background-color:rgb(var(--color-primary-950)/.35)}.dark\\:disabled\\:bg-primary-950\\/40:disabled:is(.dark *){background-color:rgb(var(--color-primary-950)/.4)}.dark\\:disabled\\:bg-primary-950\\/45:disabled:is(.dark *){background-color:rgb(var(--color-primary-950)/.45)}.dark\\:disabled\\:bg-primary-950\\/5:disabled:is(.dark *){background-color:rgb(var(--color-primary-950)/.05)}.dark\\:disabled\\:bg-primary-950\\/50:disabled:is(.dark *){background-color:rgb(var(--color-primary-950)/.5)}.dark\\:disabled\\:bg-primary-950\\/55:disabled:is(.dark *){background-color:rgb(var(--color-primary-950)/.55)}.dark\\:disabled\\:bg-primary-950\\/60:disabled:is(.dark *){background-color:rgb(var(--color-primary-950)/.6)}.dark\\:disabled\\:bg-primary-950\\/65:disabled:is(.dark *){background-color:rgb(var(--color-primary-950)/.65)}.dark\\:disabled\\:bg-primary-950\\/70:disabled:is(.dark *){background-color:rgb(var(--color-primary-950)/.7)}.dark\\:disabled\\:bg-primary-950\\/75:disabled:is(.dark *){background-color:rgb(var(--color-primary-950)/.75)}.dark\\:disabled\\:bg-primary-950\\/80:disabled:is(.dark *){background-color:rgb(var(--color-primary-950)/.8)}.dark\\:disabled\\:bg-primary-950\\/85:disabled:is(.dark *){background-color:rgb(var(--color-primary-950)/.85)}.dark\\:disabled\\:bg-primary-950\\/90:disabled:is(.dark *){background-color:rgb(var(--color-primary-950)/.9)}.dark\\:disabled\\:bg-primary-950\\/95:disabled:is(.dark *){background-color:rgb(var(--color-primary-950)/.95)}.dark\\:disabled\\:bg-red-400:disabled:is(.dark *){--tw-bg-opacity:1;background-color:#f87171;background-color:rgb(248 113 113/var(--tw-bg-opacity,1))}.dark\\:disabled\\:bg-red-950:disabled:is(.dark *){--tw-bg-opacity:1;background-color:#450a0a;background-color:rgb(69 10 10/var(--tw-bg-opacity,1))}.dark\\:disabled\\:bg-rose-400:disabled:is(.dark *){--tw-bg-opacity:1;background-color:#fb7185;background-color:rgb(251 113 133/var(--tw-bg-opacity,1))}.dark\\:disabled\\:bg-rose-950:disabled:is(.dark *){--tw-bg-opacity:1;background-color:#4c0519;background-color:rgb(76 5 25/var(--tw-bg-opacity,1))}.dark\\:disabled\\:bg-teal-400:disabled:is(.dark *){--tw-bg-opacity:1;background-color:#2dd4bf;background-color:rgb(45 212 191/var(--tw-bg-opacity,1))}.dark\\:disabled\\:bg-teal-950:disabled:is(.dark *){--tw-bg-opacity:1;background-color:#042f2e;background-color:rgb(4 47 46/var(--tw-bg-opacity,1))}.dark\\:disabled\\:bg-transparent:disabled:is(.dark *){background-color:initial}.dark\\:disabled\\:bg-white:disabled:is(.dark *){--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.dark\\:disabled\\:text-blue-400:disabled:is(.dark *){--tw-text-opacity:1;color:#60a5fa;color:rgb(96 165 250/var(--tw-text-opacity,1))}.dark\\:disabled\\:text-green-400:disabled:is(.dark *){--tw-text-opacity:1;color:#2dd4bf;color:rgb(45 212 191/var(--tw-text-opacity,1))}.dark\\:disabled\\:text-primary-400:disabled:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-primary-400)/1);color:rgb(var(--color-primary-400)/var(--tw-text-opacity,1))}.dark\\:disabled\\:text-primary-400\\/0:disabled:is(.dark *){color:rgb(var(--color-primary-400)/0)}.dark\\:disabled\\:text-primary-400\\/10:disabled:is(.dark *){color:rgb(var(--color-primary-400)/.1)}.dark\\:disabled\\:text-primary-400\\/100:disabled:is(.dark *){color:rgb(var(--color-primary-400)/1)}.dark\\:disabled\\:text-primary-400\\/15:disabled:is(.dark *){color:rgb(var(--color-primary-400)/.15)}.dark\\:disabled\\:text-primary-400\\/20:disabled:is(.dark *){color:rgb(var(--color-primary-400)/.2)}.dark\\:disabled\\:text-primary-400\\/25:disabled:is(.dark *){color:rgb(var(--color-primary-400)/.25)}.dark\\:disabled\\:text-primary-400\\/30:disabled:is(.dark *){color:rgb(var(--color-primary-400)/.3)}.dark\\:disabled\\:text-primary-400\\/35:disabled:is(.dark *){color:rgb(var(--color-primary-400)/.35)}.dark\\:disabled\\:text-primary-400\\/40:disabled:is(.dark *){color:rgb(var(--color-primary-400)/.4)}.dark\\:disabled\\:text-primary-400\\/45:disabled:is(.dark *){color:rgb(var(--color-primary-400)/.45)}.dark\\:disabled\\:text-primary-400\\/5:disabled:is(.dark *){color:rgb(var(--color-primary-400)/.05)}.dark\\:disabled\\:text-primary-400\\/50:disabled:is(.dark *){color:rgb(var(--color-primary-400)/.5)}.dark\\:disabled\\:text-primary-400\\/55:disabled:is(.dark *){color:rgb(var(--color-primary-400)/.55)}.dark\\:disabled\\:text-primary-400\\/60:disabled:is(.dark *){color:rgb(var(--color-primary-400)/.6)}.dark\\:disabled\\:text-primary-400\\/65:disabled:is(.dark *){color:rgb(var(--color-primary-400)/.65)}.dark\\:disabled\\:text-primary-400\\/70:disabled:is(.dark *){color:rgb(var(--color-primary-400)/.7)}.dark\\:disabled\\:text-primary-400\\/75:disabled:is(.dark *){color:rgb(var(--color-primary-400)/.75)}.dark\\:disabled\\:text-primary-400\\/80:disabled:is(.dark *){color:rgb(var(--color-primary-400)/.8)}.dark\\:disabled\\:text-primary-400\\/85:disabled:is(.dark *){color:rgb(var(--color-primary-400)/.85)}.dark\\:disabled\\:text-primary-400\\/90:disabled:is(.dark *){color:rgb(var(--color-primary-400)/.9)}.dark\\:disabled\\:text-primary-400\\/95:disabled:is(.dark *){color:rgb(var(--color-primary-400)/.95)}.dark\\:disabled\\:text-red-400:disabled:is(.dark *){--tw-text-opacity:1;color:#f87171;color:rgb(248 113 113/var(--tw-text-opacity,1))}.dark\\:disabled\\:text-rose-400:disabled:is(.dark *){--tw-text-opacity:1;color:#fb7185;color:rgb(251 113 133/var(--tw-text-opacity,1))}.dark\\:disabled\\:text-teal-400:disabled:is(.dark *){--tw-text-opacity:1;color:#2dd4bf;color:rgb(45 212 191/var(--tw-text-opacity,1))}.group:hover .dark\\:group-hover\\:text-gray-200:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-gray-200)/1);color:rgb(var(--color-gray-200)/var(--tw-text-opacity,1))}.group:hover .dark\\:group-hover\\:text-gray-400:is(.dark *){--tw-text-opacity:1;color:rgb(var(--color-gray-400)/1);color:rgb(var(--color-gray-400)/var(--tw-text-opacity,1))}:where([data-headlessui-focus-visible]) .dark\\:ui-focus-visible\\:ring-primary-400:focus:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(var(--color-primary-400)/var(--tw-ring-opacity,1))}@media (min-width:640px){.sm\\:mx-0{margin-left:0;margin-right:0}.sm\\:my-8{margin-bottom:2rem;margin-top:2rem}.sm\\:ml-2{margin-left:.5rem}.sm\\:ml-4{margin-left:1rem}.sm\\:mt-0{margin-top:0}.sm\\:mt-4{margin-top:1rem}.sm\\:inline-block{display:inline-block}.sm\\:inline{display:inline}.sm\\:hidden{display:none}.sm\\:h-10{height:2.5rem}.sm\\:w-10{width:2.5rem}.sm\\:w-40{width:10rem}.sm\\:w-48{width:12rem}.sm\\:w-64{width:16rem}.sm\\:w-96{width:24rem}.sm\\:w-auto{width:auto}.sm\\:max-w-3xl{max-width:48rem}.sm\\:max-w-5xl{max-width:64rem}.sm\\:max-w-lg{max-width:32rem}.sm\\:flex-1{flex:1 1 0%}.sm\\:flex-none{flex:none}.sm\\:translate-x-0{--tw-translate-x:0px;transform:translateY(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));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))}.sm\\:translate-x-2{--tw-translate-x:.5rem;transform:translate(.5rem,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));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))}.sm\\:translate-y-0{--tw-translate-y:0px;transform:translate(var(--tw-translate-x)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));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))}.sm\\:scale-100{--tw-scale-x:1;--tw-scale-y:1;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(1) scaleY(1);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))}.sm\\:scale-95{--tw-scale-x:.95;--tw-scale-y:.95;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(.95) scaleY(.95);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))}.sm\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\\:flex-row{flex-direction:row}.sm\\:items-start{align-items:flex-start}.sm\\:items-end{align-items:flex-end}.sm\\:items-center{align-items:center}.sm\\:justify-between{justify-content:space-between}.sm\\:gap-0{gap:0}.sm\\:gap-3{gap:.75rem}.sm\\:rounded{border-radius:.25rem}.sm\\:rounded-lg{border-radius:.5rem}.sm\\:rounded-none{border-radius:0}.sm\\:rounded-l-lg{border-bottom-left-radius:.5rem;border-top-left-radius:.5rem}.sm\\:rounded-l-none{border-bottom-left-radius:0;border-top-left-radius:0}.sm\\:rounded-r-lg{border-bottom-right-radius:.5rem;border-top-right-radius:.5rem}.sm\\:rounded-r-none{border-bottom-right-radius:0;border-top-right-radius:0}.sm\\:p-0{padding:0}.sm\\:p-6{padding:1.5rem}.sm\\:px-14{padding-left:3.5rem;padding-right:3.5rem}.sm\\:px-16{padding-left:4rem;padding-right:4rem}.sm\\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\\:pr-2{padding-right:.5rem}.sm\\:pt-0{padding-top:0}.sm\\:pt-1{padding-top:.25rem}.sm\\:text-center{text-align:center}.sm\\:text-right{text-align:right}.sm\\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width:768px){.md\\:mx-0{margin-left:0;margin-right:0}.md\\:ml-4{margin-left:1rem}.md\\:mr-2{margin-right:.5rem}.md\\:mt-8{margin-top:2rem}.md\\:block{display:block}.md\\:inline{display:inline}.md\\:flex{display:flex}.md\\:inline-flex{display:inline-flex}.md\\:grid{display:grid}.md\\:hidden{display:none}.md\\:h-20{height:5rem}.md\\:h-32{height:8rem}.md\\:h-6{height:1.5rem}.md\\:min-h-\\[4rem\\]{min-height:4rem}.md\\:w-1\\/4{width:25%}.md\\:w-2\\/3{width:66.666667%}.md\\:w-20{width:5rem}.md\\:w-6{width:1.5rem}.md\\:w-\\[13em\\]{width:13em}.md\\:min-w-\\[13rem\\]{min-width:13rem}.md\\:flex-shrink-0{flex-shrink:0}.md\\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.md\\:flex-row{flex-direction:row}.md\\:items-center{align-items:center}.md\\:justify-between{justify-content:space-between}.md\\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:0;margin-bottom:calc(0px*var(--tw-space-y-reverse));margin-top:0;margin-top:calc(0px*(1 - var(--tw-space-y-reverse)))}.md\\:border-b-0{border-bottom-width:0}.md\\:border-r{border-right-width:1px}.md\\:p-4{padding:1rem}.md\\:px-4{padding-left:1rem;padding-right:1rem}.md\\:px-8{padding-left:2rem;padding-right:2rem}.md\\:py-10{padding-bottom:2.5rem;padding-top:2.5rem}.md\\:py-4{padding-bottom:1rem;padding-top:1rem}.md\\:text-2xl{font-size:1.5rem;line-height:2rem}.md\\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\\:text-base{font-size:1rem;line-height:1.5rem}.md\\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width:1024px){.lg\\:col-span-2{grid-column:span 2/span 2}.lg\\:col-span-3{grid-column:span 3/span 3}.lg\\:col-span-4{grid-column:span 4/span 4}.lg\\:col-span-6{grid-column:span 6/span 6}.lg\\:col-span-9{grid-column:span 9/span 9}.lg\\:mb-0{margin-bottom:0}.lg\\:ml-4{margin-left:1rem}.lg\\:ml-6{margin-left:1.5rem}.lg\\:mt-0{margin-top:0}.lg\\:block{display:block}.lg\\:flex{display:flex}.lg\\:grid{display:grid}.lg\\:hidden{display:none}.lg\\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\\:flex-row{flex-direction:row}.lg\\:gap-x-5{column-gap:1.25rem}.lg\\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:0;margin-bottom:calc(0px*var(--tw-space-y-reverse));margin-top:0;margin-top:calc(0px*(1 - var(--tw-space-y-reverse)))}.lg\\:break-normal{overflow-wrap:normal;word-break:normal}.lg\\:px-0{padding-left:0;padding-right:0}.lg\\:px-8{padding-left:2rem;padding-right:2rem}.lg\\:py-0{padding-bottom:0;padding-top:0}}@media (min-width:1280px){.xl\\:min-w-52{min-width:13rem}}.rtl\\:-translate-x-0:where([dir=rtl],[dir=rtl] *){--tw-translate-x:-0px;transform:translateY(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));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))}.rtl\\:-translate-x-2:where([dir=rtl],[dir=rtl] *){--tw-translate-x:-.5rem;transform:translate(-.5rem,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));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))}.rtl\\:-translate-x-2\\.5:where([dir=rtl],[dir=rtl] *){--tw-translate-x:-.625rem;transform:translate(-.625rem,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));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))}.rtl\\:-translate-x-3:where([dir=rtl],[dir=rtl] *){--tw-translate-x:-.75rem;transform:translate(-.75rem,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));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))}.rtl\\:-translate-x-4:where([dir=rtl],[dir=rtl] *){--tw-translate-x:-1rem;transform:translate(-1rem,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));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))}.rtl\\:-translate-x-5:where([dir=rtl],[dir=rtl] *){--tw-translate-x:-1.25rem;transform:translate(-1.25rem,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));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))}.rtl\\:-translate-x-6:where([dir=rtl],[dir=rtl] *){--tw-translate-x:-1.5rem;transform:translate(-1.5rem,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));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))}.rtl\\:-translate-x-7:where([dir=rtl],[dir=rtl] *){--tw-translate-x:-1.75rem;transform:translate(-1.75rem,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));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))}.rtl\\:-translate-x-full:where([dir=rtl],[dir=rtl] *){--tw-translate-x:-100%;transform:translate(-100%,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));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))}.rtl\\:translate-x-full:where([dir=rtl],[dir=rtl] *){--tw-translate-x:100%;transform:translate(100%,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));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))}.rtl\\:text-right:where([dir=rtl],[dir=rtl] *){text-align:right}.\\[\\&\\:\\:-moz-meter-bar\\]\\:h-0\\.5::-moz-meter-bar{height:.125rem}.\\[\\&\\:\\:-moz-meter-bar\\]\\:h-1::-moz-meter-bar{height:.25rem}.\\[\\&\\:\\:-moz-meter-bar\\]\\:h-2::-moz-meter-bar{height:.5rem}.\\[\\&\\:\\:-moz-meter-bar\\]\\:h-3::-moz-meter-bar{height:.75rem}.\\[\\&\\:\\:-moz-meter-bar\\]\\:h-4::-moz-meter-bar{height:1rem}.\\[\\&\\:\\:-moz-meter-bar\\]\\:h-5::-moz-meter-bar{height:1.25rem}.\\[\\&\\:\\:-moz-meter-bar\\]\\:h-px::-moz-meter-bar{height:1px}.\\[\\&\\:\\:-moz-meter-bar\\]\\:rounded-full::-moz-meter-bar{border-radius:9999px}.\\[\\&\\:\\:-moz-meter-bar\\]\\:border-none::-moz-meter-bar{border-style:none}.\\[\\&\\:\\:-moz-meter-bar\\]\\:bg-current::-moz-meter-bar{background-color:currentColor}.\\[\\&\\:\\:-moz-meter-bar\\]\\:bg-none::-moz-meter-bar{background-image:none}.\\[\\&\\:\\:-moz-meter-bar\\]\\:transition-all::-moz-meter-bar{transition-duration:.15s;-moz-transition-property:all;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.\\[\\&\\:\\:-moz-progress-bar\\]\\:rounded-full::-moz-progress-bar{border-radius:9999px}.\\[\\&\\:\\:-moz-progress-bar\\]\\:bg-current::-moz-progress-bar{background-color:currentColor}.\\[\\&\\:\\:-moz-range-thumb\\]\\:relative::-moz-range-thumb{position:relative}.\\[\\&\\:\\:-moz-range-thumb\\]\\:z-\\[1\\]::-moz-range-thumb{z-index:1}.\\[\\&\\:\\:-moz-range-thumb\\]\\:-mt-1::-moz-range-thumb{margin-top:-.25rem}.\\[\\&\\:\\:-moz-range-thumb\\]\\:mt-\\[-2\\.5px\\]::-moz-range-thumb{margin-top:-2.5px}.\\[\\&\\:\\:-moz-range-thumb\\]\\:mt-\\[-3px\\]::-moz-range-thumb{margin-top:-3px}.\\[\\&\\:\\:-moz-range-thumb\\]\\:h-1\\.5::-moz-range-thumb{height:.375rem}.\\[\\&\\:\\:-moz-range-thumb\\]\\:h-2::-moz-range-thumb{height:.5rem}.\\[\\&\\:\\:-moz-range-thumb\\]\\:h-3::-moz-range-thumb{height:.75rem}.\\[\\&\\:\\:-moz-range-thumb\\]\\:h-4::-moz-range-thumb{height:1rem}.\\[\\&\\:\\:-moz-range-thumb\\]\\:h-5::-moz-range-thumb{height:1.25rem}.\\[\\&\\:\\:-moz-range-thumb\\]\\:h-6::-moz-range-thumb{height:1.5rem}.\\[\\&\\:\\:-moz-range-thumb\\]\\:h-7::-moz-range-thumb{height:1.75rem}.\\[\\&\\:\\:-moz-range-thumb\\]\\:w-1\\.5::-moz-range-thumb{width:.375rem}.\\[\\&\\:\\:-moz-range-thumb\\]\\:w-2::-moz-range-thumb{width:.5rem}.\\[\\&\\:\\:-moz-range-thumb\\]\\:w-3::-moz-range-thumb{width:.75rem}.\\[\\&\\:\\:-moz-range-thumb\\]\\:w-4::-moz-range-thumb{width:1rem}.\\[\\&\\:\\:-moz-range-thumb\\]\\:w-5::-moz-range-thumb{width:1.25rem}.\\[\\&\\:\\:-moz-range-thumb\\]\\:w-6::-moz-range-thumb{width:1.5rem}.\\[\\&\\:\\:-moz-range-thumb\\]\\:w-7::-moz-range-thumb{width:1.75rem}.\\[\\&\\:\\:-moz-range-thumb\\]\\:appearance-none::-moz-range-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\\[\\&\\:\\:-moz-range-thumb\\]\\:rounded-full::-moz-range-thumb{border-radius:9999px}.\\[\\&\\:\\:-moz-range-thumb\\]\\:border-0::-moz-range-thumb{border-width:0}.\\[\\&\\:\\:-moz-range-thumb\\]\\:bg-current::-moz-range-thumb{background-color:currentColor}.\\[\\&\\:\\:-moz-range-track\\]\\:h-0\\.5::-moz-range-track{height:.125rem}.\\[\\&\\:\\:-moz-range-track\\]\\:h-1::-moz-range-track{height:.25rem}.\\[\\&\\:\\:-moz-range-track\\]\\:h-2::-moz-range-track{height:.5rem}.\\[\\&\\:\\:-moz-range-track\\]\\:h-3::-moz-range-track{height:.75rem}.\\[\\&\\:\\:-moz-range-track\\]\\:h-4::-moz-range-track{height:1rem}.\\[\\&\\:\\:-moz-range-track\\]\\:h-5::-moz-range-track{height:1.25rem}.\\[\\&\\:\\:-moz-range-track\\]\\:h-px::-moz-range-track{height:1px}.\\[\\&\\:\\:-moz-range-track\\]\\:rounded-lg::-moz-range-track{border-radius:.5rem}.\\[\\&\\:\\:-moz-range-track\\]\\:bg-gray-200::-moz-range-track{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-200)/1);background-color:rgb(var(--color-gray-200)/var(--tw-bg-opacity,1))}.group:disabled .\\[\\&\\:\\:-moz-range-track\\]\\:group-disabled\\:bg-opacity-50::-moz-range-track{--tw-bg-opacity:.5}.\\[\\&\\:\\:-moz-range-track\\]\\:dark\\:bg-gray-700:is(.dark *)::-moz-range-track{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-700)/1);background-color:rgb(var(--color-gray-700)/var(--tw-bg-opacity,1))}.\\[\\&\\:\\:-webkit-meter-bar\\]\\:border-none::-webkit-meter-bar{border-style:none}.\\[\\&\\:\\:-webkit-meter-bar\\]\\:bg-transparent::-webkit-meter-bar{background-color:initial}.\\[\\&\\:\\:-webkit-meter-bar\\]\\:bg-none::-webkit-meter-bar{background-image:none}.\\[\\&\\:\\:-webkit-meter-inner-element\\]\\:relative::-webkit-meter-inner-element{position:relative}.\\[\\&\\:\\:-webkit-meter-inner-element\\]\\:block::-webkit-meter-inner-element{display:block}.\\[\\&\\:\\:-webkit-meter-inner-element\\]\\:border-none::-webkit-meter-inner-element{border-style:none}.\\[\\&\\:\\:-webkit-meter-inner-element\\]\\:bg-transparent::-webkit-meter-inner-element{background-color:initial}.\\[\\&\\:\\:-webkit-meter-inner-element\\]\\:bg-none::-webkit-meter-inner-element{background-image:none}.\\[\\&\\:\\:-webkit-meter-optimum-value\\]\\:h-0\\.5::-webkit-meter-optimum-value{height:.125rem}.\\[\\&\\:\\:-webkit-meter-optimum-value\\]\\:h-1::-webkit-meter-optimum-value{height:.25rem}.\\[\\&\\:\\:-webkit-meter-optimum-value\\]\\:h-2::-webkit-meter-optimum-value{height:.5rem}.\\[\\&\\:\\:-webkit-meter-optimum-value\\]\\:h-3::-webkit-meter-optimum-value{height:.75rem}.\\[\\&\\:\\:-webkit-meter-optimum-value\\]\\:h-4::-webkit-meter-optimum-value{height:1rem}.\\[\\&\\:\\:-webkit-meter-optimum-value\\]\\:h-5::-webkit-meter-optimum-value{height:1.25rem}.\\[\\&\\:\\:-webkit-meter-optimum-value\\]\\:h-px::-webkit-meter-optimum-value{height:1px}.\\[\\&\\:\\:-webkit-meter-optimum-value\\]\\:rounded-full::-webkit-meter-optimum-value{border-radius:9999px}.\\[\\&\\:\\:-webkit-meter-optimum-value\\]\\:border-none::-webkit-meter-optimum-value{border-style:none}.\\[\\&\\:\\:-webkit-meter-optimum-value\\]\\:bg-current::-webkit-meter-optimum-value{background-color:currentColor}.\\[\\&\\:\\:-webkit-meter-optimum-value\\]\\:bg-none::-webkit-meter-optimum-value{background-image:none}.\\[\\&\\:\\:-webkit-meter-optimum-value\\]\\:transition-all::-webkit-meter-optimum-value{transition-duration:.15s;-webkit-transition-property:all;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.\\[\\&\\:\\:-webkit-progress-bar\\]\\:w-full::-webkit-progress-bar{width:100%}.\\[\\&\\:\\:-webkit-progress-bar\\]\\:rounded-full::-webkit-progress-bar{border-radius:9999px}.\\[\\&\\:\\:-webkit-progress-bar\\]\\:bg-gray-200::-webkit-progress-bar{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-200)/1);background-color:rgb(var(--color-gray-200)/var(--tw-bg-opacity,1))}.\\[\\&\\:\\:-webkit-progress-bar\\]\\:dark\\:bg-gray-700:is(.dark *)::-webkit-progress-bar{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-700)/1);background-color:rgb(var(--color-gray-700)/var(--tw-bg-opacity,1))}.\\[\\&\\:\\:-webkit-progress-value\\]\\:rounded-full::-webkit-progress-value{border-radius:9999px}.\\[\\&\\:\\:-webkit-progress-value\\]\\:bg-current::-webkit-progress-value{background-color:currentColor}.\\[\\&\\:\\:-webkit-progress-value\\]\\:transition-all::-webkit-progress-value{transition-duration:.15s;-webkit-transition-property:all;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.\\[\\&\\:\\:-webkit-progress-value\\]\\:ease-in-out::-webkit-progress-value{transition-timing-function:cubic-bezier(.4,0,.2,1)}.\\[\\&\\:\\:-webkit-slider-runnable-track\\]\\:h-0\\.5::-webkit-slider-runnable-track{height:.125rem}.\\[\\&\\:\\:-webkit-slider-runnable-track\\]\\:h-1::-webkit-slider-runnable-track{height:.25rem}.\\[\\&\\:\\:-webkit-slider-runnable-track\\]\\:h-2::-webkit-slider-runnable-track{height:.5rem}.\\[\\&\\:\\:-webkit-slider-runnable-track\\]\\:h-3::-webkit-slider-runnable-track{height:.75rem}.\\[\\&\\:\\:-webkit-slider-runnable-track\\]\\:h-4::-webkit-slider-runnable-track{height:1rem}.\\[\\&\\:\\:-webkit-slider-runnable-track\\]\\:h-5::-webkit-slider-runnable-track{height:1.25rem}.\\[\\&\\:\\:-webkit-slider-runnable-track\\]\\:h-px::-webkit-slider-runnable-track{height:1px}.\\[\\&\\:\\:-webkit-slider-runnable-track\\]\\:rounded-lg::-webkit-slider-runnable-track{border-radius:.5rem}.\\[\\&\\:\\:-webkit-slider-runnable-track\\]\\:bg-gray-200::-webkit-slider-runnable-track{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-200)/1);background-color:rgb(var(--color-gray-200)/var(--tw-bg-opacity,1))}.group:disabled .\\[\\&\\:\\:-webkit-slider-runnable-track\\]\\:group-disabled\\:bg-opacity-50::-webkit-slider-runnable-track{--tw-bg-opacity:.5}.\\[\\&\\:\\:-webkit-slider-runnable-track\\]\\:dark\\:bg-gray-700:is(.dark *)::-webkit-slider-runnable-track{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-700)/1);background-color:rgb(var(--color-gray-700)/var(--tw-bg-opacity,1))}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:relative::-webkit-slider-thumb{position:relative}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:z-\\[1\\]::-webkit-slider-thumb{z-index:1}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:-mt-1::-webkit-slider-thumb{margin-top:-.25rem}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:mt-\\[-2\\.5px\\]::-webkit-slider-thumb{margin-top:-2.5px}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:mt-\\[-3px\\]::-webkit-slider-thumb{margin-top:-3px}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:h-1\\.5::-webkit-slider-thumb{height:.375rem}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:h-2::-webkit-slider-thumb{height:.5rem}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:h-3::-webkit-slider-thumb{height:.75rem}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:h-4::-webkit-slider-thumb{height:1rem}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:h-5::-webkit-slider-thumb{height:1.25rem}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:h-6::-webkit-slider-thumb{height:1.5rem}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:h-7::-webkit-slider-thumb{height:1.75rem}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:w-1\\.5::-webkit-slider-thumb{width:.375rem}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:w-2::-webkit-slider-thumb{width:.5rem}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:w-3::-webkit-slider-thumb{width:.75rem}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:w-4::-webkit-slider-thumb{width:1rem}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:w-5::-webkit-slider-thumb{width:1.25rem}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:w-6::-webkit-slider-thumb{width:1.5rem}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:w-7::-webkit-slider-thumb{width:1.75rem}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:appearance-none::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:rounded-full::-webkit-slider-thumb{border-radius:9999px}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:bg-white::-webkit-slider-thumb{--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:ring-2::-webkit-slider-thumb{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:0 0 #fff,0 0 0 4px #2563eb,0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:ring-current::-webkit-slider-thumb{--tw-ring-color:currentColor}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:dark\\:bg-gray-900:is(.dark *)::-webkit-slider-thumb{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-900)/1);background-color:rgb(var(--color-gray-900)/var(--tw-bg-opacity,1))}.\\[\\&\\:indeterminate\\:\\:-moz-progress-bar\\]\\:rounded-full:indeterminate::-moz-progress-bar{border-radius:9999px}.\\[\\&\\:indeterminate\\:\\:-webkit-progress-value\\]\\:rounded-full:indeterminate::-webkit-progress-value{border-radius:9999px}.rtl\\:\\[\\&_span\\:first-child\\]\\:rotate-180 span:first-child:where([dir=rtl],[dir=rtl] *){--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(180deg) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));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))}.rtl\\:\\[\\&_span\\:last-child\\]\\:rotate-180 span:last-child:where([dir=rtl],[dir=rtl] *){--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(180deg) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));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))}@media (pointer:coarse){.\\[\\@media\\(pointer\\:coarse\\)\\]\\:hidden{display:none}}@supports (selector(&::-moz-progress-bar)){.\\[\\@supports\\(selector\\(\\&\\:\\:-moz-progress-bar\\)\\)\\]\\:bg-gray-200{--tw-bg-opacity:1;background-color:rgb(var(--color-gray-200)/1);background-color:rgb(var(--color-gray-200)/var(--tw-bg-opacity,1))}.\\[\\@supports\\(selector\\(\\&\\:\\:-moz-progress-bar\\)\\)\\]\\:dark\\:bg-gray-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(var(--color-gray-700)/1);background-color:rgb(var(--color-gray-700)/var(--tw-bg-opacity,1))}}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:400;src:url(./Inter-VariableFont_slnt_wght.Cl4AQHp9.ttf) format(\"truetype\")}html{background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));color:#333;color:rgb(51 51 51/var(--tw-text-opacity,1))}html,html.dark{--tw-bg-opacity:1;--tw-text-opacity:1}html.dark{background-color:#333;background-color:rgb(51 51 51/var(--tw-bg-opacity,1));color:#f6f7ee;color:rgb(246 247 238/var(--tw-text-opacity,1))}.h1,h1{font-size:1.25rem}.h1,.h2,h1,h2{line-height:1.75rem}.h2,h2{font-size:1.125rem}.h3,h3{font-size:1rem;font-weight:600;line-height:1.5rem}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAgklEQVR4nO2UOwrAIBAF5xKReP+bJFV+TSxynATBQiSI0TXVDggW7htesYKiKIogE7ADRiDLZxzAXPJ4BW7ANcpNyPBZS8nAAJxh4AJshTTNGGsH7R/SFnmztEYuJv0iF5eWyLtJc/Lu0rfddMld4sPJErfs3jTFt9vC6d5UURSFmAePTDtnrV72/QAAAABJRU5ErkJggg==);background-position:center right 14px;background-repeat:no-repeat;background-size:16px 16px;padding-right:2rem}select:is(.dark *){background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAgUlEQVR4nO2UOwrAIBAFvUQk3v8mSZVfE4scZ4LESlCMut0OCBa+HV6xGqMoijIKYAFOwA6YZYELWGse73z4HnmUhhmBrSYwAXcMPIBrkKYz5tagE5f2yLulLfJh0j/y4dIauZi0JBeXZnbTJ/fuD6dI0lK2aab5EY9sU0VRFJPwAs/UbERVyi05AAAAAElFTkSuQmCC)}.hide-scroll::-webkit-scrollbar{display:none}.hide-scroll{-ms-overflow-style:none;scrollbar-width:none}::-webkit-scrollbar{height:14px;width:14px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#63636366;background-clip:padding-box;border:3px solid transparent;border-radius:10px;-webkit-transition:background-color .1s linear;transition:background-color .1s linear}::-webkit-scrollbar-thumb:hover{background:#636363b3;background-clip:padding-box;border:3px solid transparent}::-webkit-scrollbar-thumb:active{background:#636363e6;background-clip:padding-box;border:3px solid transparent}::-webkit-scrollbar-corner{background:transparent}*{scrollbar-color:hsla(0,0%,39%,.4) transparent;scrollbar-width:thin}html.dark ::-webkit-scrollbar-thumb{background:#c7c7c74d;background-clip:padding-box;border:3px solid transparent}html.dark ::-webkit-scrollbar-thumb:hover{background:#c7c7c780;background-clip:padding-box;border:3px solid transparent}html.dark ::-webkit-scrollbar-thumb:active{background:#c7c7c7b3;background-clip:padding-box;border:3px solid transparent}html.dark *{scrollbar-color:hsla(0,0%,78%,.3) transparent}.dark{color-scheme:dark}a:focus-visible{outline-color:rgb(var(--color-primary-DEFAULT)/1)}::-moz-selection{background-color:rgb(var(--color-primary-DEFAULT)/.4)}::selection{background-color:rgb(var(--color-primary-DEFAULT)/.4)}.monaco-editor{font-family:-apple-system,BlinkMacSystemFont,Segoe WPC,Segoe UI,HelveticaNeue-Light,system-ui,Ubuntu,Droid Sans,sans-serif;--monaco-monospace-font:\"SF Mono\",Monaco,Menlo,Consolas,\"Ubuntu Mono\",\"Liberation Mono\",\"DejaVu Sans Mono\",\"Courier New\",monospace}.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.hc-light .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-hover p{margin:0}.monaco-aria-container{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;top:0;width:1px;clip:rect(1px,1px,1px,1px);clip-path:inset(50%)}.monaco-diff-editor .synthetic-focus,.monaco-diff-editor [tabindex=\"-1\"]:focus,.monaco-diff-editor [tabindex=\"0\"]:focus,.monaco-diff-editor button:focus,.monaco-diff-editor input[type=button]:focus,.monaco-diff-editor input[type=checkbox]:focus,.monaco-diff-editor input[type=search]:focus,.monaco-diff-editor input[type=text]:focus,.monaco-diff-editor select:focus,.monaco-diff-editor textarea:focus,.monaco-editor{opacity:1;outline-color:var(--vscode-focusBorder);outline-offset:-1px;outline-style:solid;outline-width:1px}.monaco-aria-container{left:-999em;position:absolute}::-ms-clear{display:none}.monaco-editor .editor-widget input{color:inherit}.monaco-editor{overflow:visible;position:relative;-webkit-text-size-adjust:100%;color:var(--vscode-editor-foreground)}.monaco-editor,.monaco-editor-background{background-color:var(--vscode-editor-background)}.monaco-editor .rangeHighlight{background-color:var(--vscode-editor-rangeHighlightBackground);border:1px solid var(--vscode-editor-rangeHighlightBorder);box-sizing:border-box}.monaco-editor.hc-black .rangeHighlight,.monaco-editor.hc-light .rangeHighlight{border-style:dotted}.monaco-editor .symbolHighlight{background-color:var(--vscode-editor-symbolHighlightBackground);border:1px solid var(--vscode-editor-symbolHighlightBorder);box-sizing:border-box}.monaco-editor.hc-black .symbolHighlight,.monaco-editor.hc-light .symbolHighlight{border-style:dotted}.monaco-editor .overflow-guard{overflow:hidden;position:relative}.monaco-editor .view-overlays{position:absolute;top:0}.monaco-editor .margin-view-overlays>div,.monaco-editor .view-overlays>div{position:absolute;width:100%}.monaco-editor .squiggly-error{border-bottom:4px double var(--vscode-editorError-border)}.monaco-editor .squiggly-error:before{background:var(--vscode-editorError-background);content:\"\";display:block;height:100%;width:100%}.monaco-editor .squiggly-warning{border-bottom:4px double var(--vscode-editorWarning-border)}.monaco-editor .squiggly-warning:before{background:var(--vscode-editorWarning-background);content:\"\";display:block;height:100%;width:100%}.monaco-editor .squiggly-info{border-bottom:4px double var(--vscode-editorInfo-border)}.monaco-editor .squiggly-info:before{background:var(--vscode-editorInfo-background);content:\"\";display:block;height:100%;width:100%}.monaco-editor .squiggly-hint{border-bottom:2px dotted var(--vscode-editorHint-border)}.monaco-editor.showUnused .squiggly-unnecessary{border-bottom:2px dashed var(--vscode-editorUnnecessaryCode-border)}.monaco-editor.showDeprecated .squiggly-inline-deprecated{text-decoration:line-through;text-decoration-color:inherit;text-decoration-color:var(--vscode-editor-foreground,inherit)}.monaco-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.monaco-scrollable-element>.visible{background:transparent;opacity:1;transition:opacity .1s linear;z-index:11}.monaco-scrollable-element>.invisible{opacity:0;pointer-events:none}.monaco-scrollable-element>.invisible.fade{transition:opacity .8s linear}.monaco-scrollable-element>.shadow{display:none;position:absolute}.monaco-scrollable-element>.shadow.top{box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset;display:block;height:3px;left:3px;top:0;width:100%}.monaco-scrollable-element>.shadow.left{box-shadow:var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset;display:block;height:100%;left:0;top:3px;width:3px}.monaco-scrollable-element>.shadow.top-left-corner{display:block;height:3px;left:0;top:0;width:3px}.monaco-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset}.monaco-scrollable-element>.scrollbar>.slider{background:var(--vscode-scrollbarSlider-background)}.monaco-scrollable-element>.scrollbar>.slider:hover{background:var(--vscode-scrollbarSlider-hoverBackground)}.monaco-scrollable-element>.scrollbar>.slider.active{background:var(--vscode-scrollbarSlider-activeBackground)}.monaco-editor .inputarea{background-color:transparent;border:none;color:transparent;margin:0;min-height:0;min-width:0;outline:none!important;overflow:hidden;padding:0;position:absolute;resize:none;z-index:-10}.monaco-editor .inputarea.ime-input{caret-color:var(--vscode-editorCursor-foreground);color:var(--vscode-editor-foreground);z-index:10}.monaco-editor .margin-view-overlays .line-numbers{bottom:0;box-sizing:border-box;cursor:default;display:inline-block;font-variant-numeric:tabular-nums;position:absolute;text-align:right;vertical-align:middle}.monaco-editor .relative-current-line-number{display:inline-block;text-align:left;width:100%}.monaco-editor .margin-view-overlays .line-numbers.lh-odd{margin-top:1px}.monaco-editor .line-numbers{color:var(--vscode-editorLineNumber-foreground)}.monaco-editor .line-numbers.active-line-number{color:var(--vscode-editorLineNumber-activeForeground)}.monaco-editor .margin{background-color:var(--vscode-editorGutter-background)}.monaco-mouse-cursor-text{cursor:text}.monaco-editor .blockDecorations-container{pointer-events:none;position:absolute;top:0}.monaco-editor .blockDecorations-block{box-sizing:border-box;position:absolute}.monaco-editor .margin-view-overlays .current-line,.monaco-editor .view-overlays .current-line{box-sizing:border-box;display:block;height:100%;left:0;position:absolute;top:0}.monaco-editor .margin-view-overlays .current-line.current-line-margin.current-line-margin-both{border-right:0}.monaco-editor .lines-content .cdr{height:100%;position:absolute}.monaco-editor .glyph-margin{position:absolute;top:0}.monaco-editor .glyph-margin-widgets .cgmr{align-items:center;display:flex;justify-content:center;position:absolute}.monaco-editor .glyph-margin-widgets .cgmr.codicon-modifier-spin:before{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.monaco-editor .lines-content .core-guide{box-sizing:border-box;height:100%;position:absolute}.mtkcontrol{background:#960000!important;color:#fff!important}.mtkoverflow{background-color:var(--vscode-button-background,var(--vscode-editor-background));border-color:var(--vscode-contrastBorder);border-radius:2px;border-style:solid;border-width:1px;color:var(--vscode-button-foreground,var(--vscode-editor-foreground));cursor:pointer;padding:4px}.mtkoverflow:hover{background-color:var(--vscode-button-hoverBackground)}.monaco-editor.no-user-select .lines-content,.monaco-editor.no-user-select .view-line,.monaco-editor.no-user-select .view-lines{-moz-user-select:none;user-select:none;-webkit-user-select:none}.monaco-editor.mac .lines-content:hover,.monaco-editor.mac .view-line:hover,.monaco-editor.mac .view-lines:hover{-moz-user-select:text;user-select:text;-webkit-user-select:text;-ms-user-select:text}.monaco-editor.enable-user-select{-moz-user-select:initial;user-select:auto;-webkit-user-select:initial}.monaco-editor .view-lines{white-space:nowrap}.monaco-editor .view-line{position:absolute;width:100%}.monaco-editor .lines-content>.view-lines>.view-line>span{bottom:0;position:absolute;top:0}.monaco-editor .mtkw,.monaco-editor .mtkz{color:var(--vscode-editorWhitespace-foreground)!important}.monaco-editor .mtkz{display:inline-block}.monaco-editor .lines-decorations{background:#fff;position:absolute;top:0}.monaco-editor .margin-view-overlays .cldr{height:100%;position:absolute}.monaco-editor .margin-view-overlays .cmdr{height:100%;left:0;position:absolute;width:100%}.monaco-editor .minimap.slider-mouseover .minimap-slider{opacity:0;transition:opacity .1s linear}.monaco-editor .minimap.slider-mouseover .minimap-slider.active,.monaco-editor .minimap.slider-mouseover:hover .minimap-slider{opacity:1}.monaco-editor .minimap-slider .minimap-slider-horizontal{background:var(--vscode-minimapSlider-background)}.monaco-editor .minimap-slider:hover .minimap-slider-horizontal{background:var(--vscode-minimapSlider-hoverBackground)}.monaco-editor .minimap-slider.active .minimap-slider-horizontal{background:var(--vscode-minimapSlider-activeBackground)}.monaco-editor .minimap-shadow-visible{box-shadow:var(--vscode-scrollbar-shadow) -6px 0 6px -6px inset}.monaco-editor .minimap-shadow-hidden{position:absolute;width:0}.monaco-editor .minimap-shadow-visible{left:-6px;position:absolute;width:6px}.monaco-editor.no-minimap-shadow .minimap-shadow-visible{left:-1px;position:absolute;width:1px}.minimap.autohide{opacity:0;transition:opacity .5s}.minimap.autohide:hover{opacity:1}.monaco-editor .minimap{z-index:5}.monaco-editor .overlayWidgets{left:0;position:absolute;top:0}.monaco-editor .view-ruler{box-shadow:1px 0 0 0 var(--vscode-editorRuler-foreground) inset;position:absolute;top:0}.monaco-editor .scroll-decoration{box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset;height:6px;left:0;position:absolute;top:0}.monaco-editor .lines-content .cslr{position:absolute}.monaco-editor .focused .selected-text{background-color:var(--vscode-editor-selectionBackground)}.monaco-editor .selected-text{background-color:var(--vscode-editor-inactiveSelectionBackground)}.monaco-editor .top-left-radius{border-top-left-radius:3px}.monaco-editor .bottom-left-radius{border-bottom-left-radius:3px}.monaco-editor .top-right-radius{border-top-right-radius:3px}.monaco-editor .bottom-right-radius{border-bottom-right-radius:3px}.monaco-editor.hc-black .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-black .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-black .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-black .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor.hc-light .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-light .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-light .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-light .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor .cursors-layer{position:absolute;top:0}.monaco-editor .cursors-layer>.cursor{box-sizing:border-box;overflow:hidden;position:absolute}.monaco-editor .cursors-layer.cursor-smooth-caret-animation>.cursor{transition:all 80ms}.monaco-editor .cursors-layer.cursor-block-outline-style>.cursor{background:transparent!important;border-style:solid;border-width:1px}.monaco-editor .cursors-layer.cursor-underline-style>.cursor{background:transparent!important;border-bottom-style:solid;border-bottom-width:2px}.monaco-editor .cursors-layer.cursor-underline-thin-style>.cursor{background:transparent!important;border-bottom-style:solid;border-bottom-width:1px}@keyframes monaco-cursor-smooth{0%,20%{opacity:1}60%,to{opacity:0}}@keyframes monaco-cursor-phase{0%,20%{opacity:1}90%,to{opacity:0}}@keyframes monaco-cursor-expand{0%,20%{transform:scaleY(1)}80%,to{transform:scaleY(0)}}.cursor-smooth{animation:monaco-cursor-smooth .5s ease-in-out 0s 20 alternate}.cursor-phase{animation:monaco-cursor-phase .5s ease-in-out 0s 20 alternate}.cursor-expand>.cursor{animation:monaco-cursor-expand .5s ease-in-out 0s 20 alternate}.monaco-editor .mwh{color:var(--vscode-editorWhitespace-foreground)!important;position:absolute}.monaco-workbench .workbench-hover{background:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);border-radius:3px;box-shadow:0 2px 8px var(--vscode-widget-shadow);color:var(--vscode-editorHoverWidget-foreground);font-size:13px;line-height:19px;max-width:700px;overflow:hidden;position:relative;z-index:40}.monaco-workbench .workbench-hover hr{border-bottom:none}.monaco-workbench .workbench-hover:not(.skip-fade-in){animation:fadein .1s linear}.monaco-workbench .workbench-hover.compact{font-size:12px}.monaco-workbench .workbench-hover.compact .hover-contents{padding:2px 8px}.monaco-workbench .workbench-hover-container.locked .workbench-hover{outline:1px solid var(--vscode-editorHoverWidget-border)}.monaco-workbench .workbench-hover-container.locked .workbench-hover:focus,.monaco-workbench .workbench-hover-lock:focus{outline:1px solid var(--vscode-focusBorder)}.monaco-workbench .workbench-hover-container.locked .workbench-hover-lock:hover{background:var(--vscode-toolbar-hoverBackground)}.monaco-workbench .workbench-hover-pointer{pointer-events:none;position:absolute;z-index:41}.monaco-workbench .workbench-hover-pointer:after{background-color:var(--vscode-editorHoverWidget-background);border-bottom:1px solid var(--vscode-editorHoverWidget-border);border-right:1px solid var(--vscode-editorHoverWidget-border);content:\"\";height:5px;position:absolute;width:5px}.monaco-workbench .locked .workbench-hover-pointer:after{border-bottom-width:2px;border-right-width:2px;height:4px;width:4px}.monaco-workbench .workbench-hover-pointer.left{left:-3px}.monaco-workbench .workbench-hover-pointer.right{right:3px}.monaco-workbench .workbench-hover-pointer.top{top:-3px}.monaco-workbench .workbench-hover-pointer.bottom{bottom:3px}.monaco-workbench .workbench-hover-pointer.left:after{transform:rotate(135deg)}.monaco-workbench .workbench-hover-pointer.right:after{transform:rotate(315deg)}.monaco-workbench .workbench-hover-pointer.top:after{transform:rotate(225deg)}.monaco-workbench .workbench-hover-pointer.bottom:after{transform:rotate(45deg)}.monaco-workbench .workbench-hover a{color:var(--vscode-textLink-foreground)}.monaco-workbench .workbench-hover a:focus{outline:1px solid;outline-color:var(--vscode-focusBorder);outline-offset:-1px;text-decoration:underline}.monaco-workbench .workbench-hover a:active,.monaco-workbench .workbench-hover a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-workbench .workbench-hover code{background:var(--vscode-textCodeBlock-background)}.monaco-workbench .workbench-hover .hover-row .actions{background:var(--vscode-editorHoverWidget-statusBarBackground)}.monaco-workbench .workbench-hover.right-aligned{left:1px}.monaco-workbench .workbench-hover.right-aligned .hover-row.status-bar .actions{flex-direction:row-reverse}.monaco-workbench .workbench-hover.right-aligned .hover-row.status-bar .actions .action-container{margin-left:16px;margin-right:0}.monaco-hover{animation:fadein .1s linear;box-sizing:border-box;cursor:default;line-height:1.5em;overflow:hidden;position:absolute;-moz-user-select:text;user-select:text;-webkit-user-select:text;white-space:normal;white-space:var(--vscode-hover-whiteSpace,normal)}.monaco-hover.hidden{display:none}.monaco-hover a:hover:not(.disabled){cursor:pointer}.monaco-hover .hover-contents:not(.html-hover-contents){padding:4px 8px}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents){max-width:500px;max-width:var(--vscode-hover-maxWidth,500px);word-wrap:break-word}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents) hr{min-width:100%}.monaco-hover .code,.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6,.monaco-hover p,.monaco-hover ul{margin:8px 0}.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6{line-height:1.1}.monaco-hover code{font-family:var(--monaco-monospace-font)}.monaco-hover hr{border-left:0;border-right:0;box-sizing:border-box;height:1px;margin:4px -8px -4px}.monaco-hover .code:first-child,.monaco-hover p:first-child,.monaco-hover ul:first-child{margin-top:0}.monaco-hover .code:last-child,.monaco-hover p:last-child,.monaco-hover ul:last-child{margin-bottom:0}.monaco-hover ol,.monaco-hover ul{padding-left:20px}.monaco-hover li>p{margin-bottom:0}.monaco-hover li>ul{margin-top:0}.monaco-hover code{border-radius:3px;padding:0 .4em}.monaco-hover .monaco-tokenized-source{white-space:pre-wrap;white-space:var(--vscode-hover-sourceWhiteSpace,pre-wrap)}.monaco-hover .hover-row.status-bar{font-size:12px;line-height:22px}.monaco-hover .hover-row.status-bar .info{font-style:italic;padding:0 8px}.monaco-hover .hover-row.status-bar .actions{display:flex;padding:0 8px;width:100%}.monaco-hover .hover-row.status-bar .actions .action-container{cursor:pointer;margin-right:16px}.monaco-hover .hover-row.status-bar .actions .action-container .action .icon{padding-right:4px}.monaco-hover .markdown-hover .hover-contents .codicon{color:inherit;font-size:inherit;vertical-align:middle}.monaco-hover .hover-contents a.code-link,.monaco-hover .hover-contents a.code-link:hover{color:inherit}.monaco-hover .hover-contents a.code-link:before{content:\"(\"}.monaco-hover .hover-contents a.code-link:after{content:\")\"}.monaco-hover .hover-contents a.code-link>span{border-bottom:1px solid transparent;color:var(--vscode-textLink-foreground);text-decoration:underline;text-underline-position:under}.monaco-hover .hover-contents a.code-link>span:hover{color:var(--vscode-textLink-activeForeground)}.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents):not(.html-hover-contents) span{display:inline-block;margin-bottom:4px}.monaco-hover-content .action-container a{-webkit-user-select:none;-moz-user-select:none;user-select:none}.monaco-hover-content .action-container.disabled{cursor:default;opacity:.4;pointer-events:none}.monaco-editor .rendered-markdown kbd{background-color:var(--vscode-keybindingLabel-background);border-color:var(--vscode-keybindingLabel-border);border-bottom-color:var(--vscode-keybindingLabel-bottomBorder);border-radius:3px;border-style:solid;border-width:1px;box-shadow:inset 0 -1px 0 var(--vscode-widget-shadow);color:var(--vscode-keybindingLabel-foreground);padding:1px 3px;vertical-align:middle}.rendered-markdown li:has(input[type=checkbox]){list-style-type:none}.context-view{position:absolute}.context-view.fixed{all:initial;color:inherit;font-family:inherit;font-size:13px;position:fixed}.monaco-list{height:100%;position:relative;white-space:nowrap;width:100%}.monaco-list.mouse-support{-moz-user-select:none;user-select:none;-webkit-user-select:none}.monaco-list>.monaco-scrollable-element{height:100%}.monaco-list-rows{height:100%;position:relative;width:100%}.monaco-list.horizontal-scrolling .monaco-list-rows{min-width:100%;width:auto}.monaco-list-row{box-sizing:border-box;overflow:hidden;position:absolute;width:100%}.monaco-list.mouse-support .monaco-list-row{cursor:pointer;touch-action:none}.monaco-list .monaco-scrollable-element>.scrollbar.vertical,.monaco-pane-view>.monaco-split-view2.vertical>.monaco-scrollable-element>.scrollbar.vertical{z-index:14}.monaco-list-row.scrolling{display:none!important}.monaco-list.element-focused,.monaco-list.selection-multiple,.monaco-list.selection-single{outline:0!important}.monaco-drag-image{border-radius:10px;display:inline-block;font-size:12px;padding:1px 7px;position:absolute;z-index:1000}.monaco-list-type-filter-message{box-sizing:border-box;height:100%;left:0;opacity:.7;padding:40px 1em 1em;pointer-events:none;position:absolute;text-align:center;top:0;white-space:normal;width:100%}.monaco-list-type-filter-message:empty{display:none}.monaco-select-box-dropdown-padding{--dropdown-padding-top:1px;--dropdown-padding-bottom:1px}.hc-black .monaco-select-box-dropdown-padding,.hc-light .monaco-select-box-dropdown-padding{--dropdown-padding-top:3px;--dropdown-padding-bottom:4px}.monaco-select-box-dropdown-container{box-sizing:border-box;display:none}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown *{margin:0}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown a:focus{outline:1px solid -webkit-focus-ring-color;outline-offset:-1px}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown code{font-family:var(--monaco-monospace-font);line-height:15px}.monaco-select-box-dropdown-container.visible{border-bottom-left-radius:3px;border-bottom-right-radius:3px;display:flex;flex-direction:column;overflow:hidden;text-align:left;width:1px}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container{align-self:flex-start;box-sizing:border-box;flex:0 0 auto;overflow:hidden;padding-bottom:var(--dropdown-padding-bottom);padding-left:1px;padding-right:1px;padding-top:var(--dropdown-padding-top);width:100%}.monaco-select-box-dropdown-container>.select-box-details-pane{padding:5px}.hc-black .monaco-select-box-dropdown-container>.select-box-dropdown-list-container{padding-bottom:var(--dropdown-padding-bottom);padding-top:var(--dropdown-padding-top)}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row{cursor:pointer}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-text{float:left;overflow:hidden;padding-left:3.5px;text-overflow:ellipsis;white-space:nowrap}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-detail{float:left;opacity:.7;overflow:hidden;padding-left:3.5px;text-overflow:ellipsis;white-space:nowrap}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-decorator-right{float:right;overflow:hidden;padding-right:10px;text-overflow:ellipsis;white-space:nowrap}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.visually-hidden{height:1px;left:-10000px;overflow:hidden;position:absolute;top:auto;width:1px}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control{align-self:flex-start;flex:1 1 auto;opacity:0}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control>.width-control-div{max-height:0;overflow:hidden}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control>.width-control-div>.option-text-width-control{padding-left:4px;padding-right:8px;white-space:nowrap}.monaco-select-box{border-radius:2px;cursor:pointer;width:100%}.monaco-select-box-dropdown-container{font-size:13px;font-weight:400;text-transform:none}.monaco-action-bar .action-item.select-container{cursor:default}.monaco-action-bar .action-item .monaco-select-box{cursor:pointer;min-height:18px;min-width:100px;padding:2px 23px 2px 8px}.mac .monaco-action-bar .action-item .monaco-select-box{border-radius:5px;font-size:11px}.monaco-action-bar{height:100%;white-space:nowrap}.monaco-action-bar .actions-container{align-items:center;display:flex;height:100%;margin:0 auto;padding:0;width:100%}.monaco-action-bar.vertical .actions-container{display:inline-block}.monaco-action-bar .action-item{align-items:center;cursor:pointer;display:block;justify-content:center;position:relative}.monaco-action-bar .action-item.disabled{cursor:default}.monaco-action-bar .action-item .codicon,.monaco-action-bar .action-item .icon{display:block}.monaco-action-bar .action-item .codicon{align-items:center;display:flex;height:16px;width:16px}.monaco-action-bar .action-label{border-radius:5px;display:flex;font-size:11px;padding:3px}.monaco-action-bar .action-item.disabled .action-label,.monaco-action-bar .action-item.disabled .action-label:before,.monaco-action-bar .action-item.disabled .action-label:hover{color:var(--vscode-disabledForeground)}.monaco-action-bar.vertical{text-align:left}.monaco-action-bar.vertical .action-item{display:block}.monaco-action-bar.vertical .action-label.separator{border-bottom:1px solid #bbb;display:block;margin-left:.8em;margin-right:.8em;padding-top:1px}.monaco-action-bar .action-item .action-label.separator{background-color:#bbb;cursor:default;height:16px;margin:5px 4px!important;min-width:1px;padding:0;width:1px}.secondary-actions .monaco-action-bar .action-label{margin-left:6px}.monaco-action-bar .action-item.select-container{align-items:center;display:flex;flex:1;justify-content:center;margin-right:10px;max-width:170px;min-width:60px;overflow:hidden}.monaco-action-bar .action-item.action-dropdown-item{display:flex}.monaco-action-bar .action-item.action-dropdown-item>.action-dropdown-item-separator{align-items:center;cursor:default;display:flex}.monaco-action-bar .action-item.action-dropdown-item>.action-dropdown-item-separator>div{width:1px}.monaco-dropdown{height:100%;padding:0}.monaco-dropdown>.dropdown-label{align-items:center;cursor:pointer;display:flex;height:100%;justify-content:center}.monaco-dropdown>.dropdown-label>.action-label.disabled{cursor:default}.monaco-dropdown-with-primary{border-radius:5px;display:flex!important;flex-direction:row}.monaco-dropdown-with-primary>.action-container>.action-label{margin-right:0}.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-]{font-size:12px;line-height:16px;margin-left:-3px;padding-left:0;padding-right:0}.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label{background-position:50%;background-repeat:no-repeat;background-size:16px;display:block}.monaco-action-bar .action-item.menu-entry .action-label.icon{background-position:50%;background-repeat:no-repeat;background-size:16px;height:16px;width:16px}.monaco-dropdown-with-default{border-radius:5px;display:flex!important;flex-direction:row}.monaco-dropdown-with-default>.action-container>.action-label{margin-right:0}.monaco-dropdown-with-default>.action-container.menu-entry>.action-label.icon{background-position:50%;background-repeat:no-repeat;background-size:16px;height:16px;width:16px}.monaco-dropdown-with-default:hover{background-color:var(--vscode-toolbar-hoverBackground)}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-]{font-size:12px;line-height:16px;margin-left:-3px;padding-left:0;padding-right:0}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label{background-position:50%;background-repeat:no-repeat;background-size:16px;display:block}.quick-input-widget{font-size:13px}.quick-input-widget .monaco-highlighted-label .highlight{color:#0066bf}.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight{color:#9dddff}.vs-dark .quick-input-widget .monaco-highlighted-label .highlight{color:#0097fb}.hc-black .quick-input-widget .monaco-highlighted-label .highlight{color:#f38518}.hc-light .quick-input-widget .monaco-highlighted-label .highlight{color:#0f4a85}.monaco-keybinding>.monaco-keybinding-key{background-color:#dedede66;border:1px solid hsla(0,0%,80%,.4);border-bottom-color:#bababa66;box-shadow:inset 0 -1px #bababa66;color:#555}.hc-black .monaco-keybinding>.monaco-keybinding-key{background-color:transparent;border:1px solid #6fc3df;box-shadow:none;color:#fff}.hc-light .monaco-keybinding>.monaco-keybinding-key{background-color:transparent;border:1px solid #0f4a85;box-shadow:none;color:#292929}.vs-dark .monaco-keybinding>.monaco-keybinding-key{background-color:#8080802b;border:1px solid rgba(51,51,51,.6);border-bottom-color:#4449;box-shadow:inset 0 -1px #4449;color:#ccc}.monaco-custom-toggle{border:1px solid transparent;border-radius:3px;box-sizing:border-box;cursor:pointer;float:left;height:20px;margin-left:2px;overflow:hidden;padding:1px;-moz-user-select:none;user-select:none;-webkit-user-select:none;width:20px}.monaco-custom-toggle:hover{background-color:var(--vscode-inputOption-hoverBackground)}.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle:hover{border:1px dashed var(--vscode-focusBorder)}.hc-black .monaco-custom-toggle,.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle,.hc-light .monaco-custom-toggle:hover{background:none}.monaco-custom-toggle.monaco-checkbox{background-size:16px!important;border:1px solid transparent;border-radius:3px;height:18px;margin-left:0;margin-right:9px;opacity:1;padding:0;width:18px}.monaco-action-bar .checkbox-action-item{align-items:center;display:flex}.monaco-action-bar .checkbox-action-item>.monaco-custom-toggle.monaco-checkbox{margin-right:4px}.monaco-action-bar .checkbox-action-item>.checkbox-label{font-size:12px}.monaco-custom-toggle.monaco-checkbox:not(.checked):before{visibility:hidden}.quick-input-widget{left:50%;margin-left:-300px;position:absolute;width:600px;z-index:2550;-webkit-app-region:no-drag;border-radius:6px}.quick-input-titlebar{align-items:center;border-radius:inherit;display:flex}.quick-input-left-action-bar{display:flex;flex:1;margin-left:4px}.quick-input-title{overflow:hidden;padding:3px 0;text-align:center;text-overflow:ellipsis}.quick-input-right-action-bar{display:flex;flex:1;margin-right:4px}.quick-input-right-action-bar>.actions-container{justify-content:flex-end}.quick-input-titlebar .monaco-action-bar .action-label.codicon{background-position:50%;background-repeat:no-repeat;padding:2px}.quick-input-description{margin:6px 6px 6px 11px}.quick-input-header .quick-input-description{flex:1;margin:4px 2px}.quick-input-header{display:flex;padding:8px 6px 2px}.quick-input-widget.hidden-input .quick-input-header{margin-bottom:0;padding:0}.quick-input-and-message{display:flex;flex-direction:column;flex-grow:1;min-width:0;position:relative}.quick-input-check-all{align-self:center;margin:0}.quick-input-filter{display:flex;flex-grow:1;position:relative}.quick-input-box{flex-grow:1}.quick-input-widget.show-checkboxes .quick-input-box,.quick-input-widget.show-checkboxes .quick-input-message{margin-left:5px}.quick-input-visible-count{left:-10000px;position:absolute}.quick-input-count{align-items:center;align-self:center;display:flex;position:absolute;right:4px}.quick-input-count .monaco-count-badge{border-radius:2px;line-height:normal;min-height:auto;padding:2px 4px;vertical-align:middle}.quick-input-action{margin-left:6px}.quick-input-action .monaco-text-button{align-items:center;display:flex;font-size:11px;height:25px;padding:0 6px}.quick-input-message{margin-top:-1px;overflow-wrap:break-word;padding:5px}.quick-input-message>.codicon{margin:0 .2em;vertical-align:text-bottom}.quick-input-message a{color:inherit}.quick-input-progress.monaco-progress-container{position:relative}.quick-input-list{line-height:22px}.quick-input-widget.hidden-input .quick-input-list{margin-top:4px;padding-bottom:4px}.quick-input-list .monaco-list{max-height:440px;overflow:hidden;padding-bottom:5px}.quick-input-list .monaco-scrollable-element{padding:0 5px}.quick-input-list .quick-input-list-entry{box-sizing:border-box;display:flex;height:100%;overflow:hidden;padding:0 6px}.quick-input-list .quick-input-list-entry.quick-input-list-separator-border{border-top-style:solid;border-top-width:1px}.quick-input-list .monaco-list-row{border-radius:3px}.quick-input-list .monaco-list-row[data-index=\"0\"] .quick-input-list-entry.quick-input-list-separator-border{border-top-style:none}.quick-input-list .quick-input-list-label{display:flex;flex:1;height:100%;overflow:hidden}.quick-input-list .quick-input-list-checkbox{align-self:center;margin:0}.quick-input-list .quick-input-list-icon{align-items:center;background-position:0;background-repeat:no-repeat;background-size:16px;display:flex;height:22px;justify-content:center;padding-right:6px;width:16px}.quick-input-list .quick-input-list-rows{display:flex;flex:1;flex-direction:column;height:100%;margin-left:5px;overflow:hidden;text-overflow:ellipsis}.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-rows{margin-left:10px}.quick-input-widget .quick-input-list .quick-input-list-checkbox{display:none}.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-checkbox{display:inline}.quick-input-list .quick-input-list-rows>.quick-input-list-row{align-items:center;display:flex}.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label,.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label .monaco-icon-label-container>.monaco-icon-name-container{flex:1}.quick-input-list .quick-input-list-rows>.quick-input-list-row .codicon[class*=codicon-]{vertical-align:text-bottom}.quick-input-list .quick-input-list-rows .monaco-highlighted-label>span{opacity:1}.quick-input-list .quick-input-list-entry .quick-input-list-entry-keybinding{margin-right:8px}.quick-input-list .quick-input-list-label-meta{line-height:normal;opacity:.7;overflow:hidden;text-overflow:ellipsis}.quick-input-list .monaco-list .monaco-list-row .monaco-highlighted-label .highlight{background-color:unset;color:var(--vscode-list-highlightForeground)!important;font-weight:700}.quick-input-list .monaco-list .monaco-list-row.focused .monaco-highlighted-label .highlight{color:var(--vscode-list-focusHighlightForeground)!important}.quick-input-list .quick-input-list-entry .quick-input-list-separator{margin-right:4px}.quick-input-list .quick-input-list-entry-action-bar{display:flex;flex:0;overflow:visible}.quick-input-list .quick-input-list-entry-action-bar .action-label{display:none}.quick-input-list .quick-input-list-entry-action-bar .action-label.codicon{margin-right:4px;padding:0 2px 2px}.quick-input-list .quick-input-list-entry-action-bar{margin-right:4px;margin-top:1px}.quick-input-list .monaco-list-row.focused .quick-input-list-entry-action-bar .action-label,.quick-input-list .monaco-list-row.passive-focused .quick-input-list-entry-action-bar .action-label,.quick-input-list .quick-input-list-entry .quick-input-list-entry-action-bar .action-label.always-visible,.quick-input-list .quick-input-list-entry.focus-inside .quick-input-list-entry-action-bar .action-label,.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .action-label{display:flex}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key,.quick-input-list .monaco-list-row.focused .quick-input-list-entry .quick-input-list-separator{color:inherit}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key{background:none}.quick-input-list .quick-input-list-separator-as-item{font-size:12px;padding:4px 6px}.quick-input-list .quick-input-list-separator-as-item .label-name{font-weight:600}.quick-input-list .quick-input-list-separator-as-item .label-description{opacity:1!important}.quick-input-list .monaco-tree-sticky-row .quick-input-list-entry.quick-input-list-separator-as-item.quick-input-list-separator-border{border-top-style:none}.quick-input-list .monaco-tree-sticky-row{padding:0 5px}.quick-input-list .monaco-tl-twistie{display:none!important}.monaco-text-button{align-items:center;border:1px solid transparent;border:1px solid var(--vscode-button-border,transparent);border-radius:2px;box-sizing:border-box;cursor:pointer;display:flex;justify-content:center;line-height:18px;padding:4px;text-align:center;width:100%}.monaco-text-button:focus{outline-offset:2px!important}.monaco-text-button:hover{text-decoration:none!important}.monaco-button.disabled,.monaco-button.disabled:focus{cursor:default;opacity:.4!important}.monaco-text-button .codicon{color:inherit!important;margin:0 .2em}.monaco-text-button.monaco-text-button-with-short-label{flex-direction:row;flex-wrap:wrap;height:28px;overflow:hidden;padding:0 4px}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label{flex-basis:100%}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label-short{flex-grow:1;overflow:hidden;width:0}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label,.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label-short{align-items:center;display:flex;font-style:inherit;font-weight:400;justify-content:center;padding:4px 0}.monaco-button-dropdown{cursor:pointer;display:flex}.monaco-button-dropdown.disabled{cursor:default}.monaco-button-dropdown>.monaco-button:focus{outline-offset:-1px!important}.monaco-button-dropdown.disabled>.monaco-button-dropdown-separator,.monaco-button-dropdown.disabled>.monaco-button.disabled,.monaco-button-dropdown.disabled>.monaco-button.disabled:focus{opacity:.4!important}.monaco-button-dropdown>.monaco-button.monaco-text-button{border-right-width:0!important}.monaco-button-dropdown .monaco-button-dropdown-separator{cursor:default;padding:4px 0}.monaco-button-dropdown .monaco-button-dropdown-separator>div{height:100%;width:1px}.monaco-button-dropdown>.monaco-button.monaco-dropdown-button{align-items:center;border:1px solid transparent;border:1px solid var(--vscode-button-border,transparent);border-left-width:0!important;border-radius:0 2px 2px 0;display:flex}.monaco-button-dropdown>.monaco-button.monaco-text-button{border-radius:2px 0 0 2px}.monaco-description-button{align-items:center;display:flex;flex-direction:column;margin:4px 5px}.monaco-description-button .monaco-button-description{font-size:11px;font-style:italic;padding:4px 20px}.monaco-description-button .monaco-button-description,.monaco-description-button .monaco-button-label{align-items:center;display:flex;justify-content:center}.monaco-description-button .monaco-button-description>.codicon,.monaco-description-button .monaco-button-label>.codicon{color:inherit!important;margin:0 .2em}.monaco-button-dropdown.default-colors>.monaco-button,.monaco-button.default-colors{background-color:var(--vscode-button-background);color:var(--vscode-button-foreground)}.monaco-button-dropdown.default-colors>.monaco-button:hover,.monaco-button.default-colors:hover{background-color:var(--vscode-button-hoverBackground)}.monaco-button-dropdown.default-colors>.monaco-button.secondary,.monaco-button.default-colors.secondary{background-color:var(--vscode-button-secondaryBackground);color:var(--vscode-button-secondaryForeground)}.monaco-button-dropdown.default-colors>.monaco-button.secondary:hover,.monaco-button.default-colors.secondary:hover{background-color:var(--vscode-button-secondaryHoverBackground)}.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator{background-color:var(--vscode-button-background);border-bottom:1px solid var(--vscode-button-border);border-top:1px solid var(--vscode-button-border)}.monaco-button-dropdown.default-colors .monaco-button.secondary+.monaco-button-dropdown-separator{background-color:var(--vscode-button-secondaryBackground)}.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator>div{background-color:var(--vscode-button-separator)}.monaco-count-badge{border-radius:11px;box-sizing:border-box;display:inline-block;font-size:11px;font-weight:400;line-height:11px;min-height:18px;min-width:18px;padding:3px 6px;text-align:center}.monaco-count-badge.long{border-radius:2px;line-height:normal;min-height:auto;padding:2px 3px}.monaco-progress-container{height:2px;overflow:hidden;width:100%}.monaco-progress-container .progress-bit{display:none;height:2px;left:0;position:absolute;width:2%}.monaco-progress-container.active .progress-bit{display:inherit}.monaco-progress-container.discrete .progress-bit{left:0;transition:width .1s linear}.monaco-progress-container.discrete.done .progress-bit{width:100%}.monaco-progress-container.infinite .progress-bit{animation-duration:4s;animation-iteration-count:infinite;animation-name:progress;animation-timing-function:linear;transform:translateZ(0)}.monaco-progress-container.infinite.infinite-long-running .progress-bit{animation-timing-function:steps(100)}@keyframes progress{0%{transform:translate(0) scaleX(1)}50%{transform:translate(2500%) scaleX(3)}to{transform:translate(4900%) scaleX(1)}}.monaco-inputbox{border-radius:2px;box-sizing:border-box;display:block;font-size:inherit;padding:0;position:relative}.monaco-inputbox>.ibwrapper>.input,.monaco-inputbox>.ibwrapper>.mirror{padding:4px 6px}.monaco-inputbox>.ibwrapper{height:100%;position:relative;width:100%}.monaco-inputbox>.ibwrapper>.input{border:none;box-sizing:border-box;color:inherit;display:inline-block;font-family:inherit;font-size:inherit;height:100%;line-height:inherit;resize:none;width:100%}.monaco-inputbox>.ibwrapper>input{text-overflow:ellipsis}.monaco-inputbox>.ibwrapper>textarea.input{display:block;outline:none;scrollbar-width:none}.monaco-inputbox>.ibwrapper>textarea.input::-webkit-scrollbar{display:none}.monaco-inputbox>.ibwrapper>textarea.input.empty{white-space:nowrap}.monaco-inputbox>.ibwrapper>.mirror{box-sizing:border-box;display:inline-block;left:0;position:absolute;top:0;visibility:hidden;white-space:pre-wrap;width:100%;word-wrap:break-word}.monaco-inputbox-container{text-align:right}.monaco-inputbox-container .monaco-inputbox-message{box-sizing:border-box;display:inline-block;font-size:12px;line-height:17px;margin-top:-1px;overflow:hidden;padding:.4em;text-align:left;width:100%;word-wrap:break-word}.monaco-inputbox .monaco-action-bar{position:absolute;right:2px;top:4px}.monaco-inputbox .monaco-action-bar .action-item{margin-left:2px}.monaco-inputbox .monaco-action-bar .action-item .codicon{background-repeat:no-repeat;height:16px;width:16px}.monaco-findInput{position:relative}.monaco-findInput .monaco-inputbox{font-size:13px;width:100%}.monaco-findInput>.controls{position:absolute;right:2px;top:3px}.vs .monaco-findInput.disabled{background-color:#e1e1e1}.vs-dark .monaco-findInput.disabled{background-color:#333}.hc-light .monaco-findInput.highlight-0 .controls,.monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-0 .1s linear 0s}.hc-light .monaco-findInput.highlight-1 .controls,.monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-1 .1s linear 0s}.hc-black .monaco-findInput.highlight-0 .controls,.vs-dark .monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-dark-0 .1s linear 0s}.hc-black .monaco-findInput.highlight-1 .controls,.vs-dark .monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-dark-1 .1s linear 0s}@keyframes monaco-findInput-highlight-0{0%{background:#fdff00cc}to{background:transparent}}@keyframes monaco-findInput-highlight-1{0%{background:#fdff00cc}99%{background:transparent}}@keyframes monaco-findInput-highlight-dark-0{0%{background:#ffffff70}to{background:transparent}}@keyframes monaco-findInput-highlight-dark-1{0%{background:#ffffff70}99%{background:transparent}}:root{--vscode-sash-size:4px;--vscode-sash-hover-size:4px}.monaco-sash{position:absolute;touch-action:none;z-index:35}.monaco-sash.disabled{pointer-events:none}.monaco-sash.mac.vertical{cursor:col-resize}.monaco-sash.vertical.minimum{cursor:e-resize}.monaco-sash.vertical.maximum{cursor:w-resize}.monaco-sash.mac.horizontal{cursor:row-resize}.monaco-sash.horizontal.minimum{cursor:s-resize}.monaco-sash.horizontal.maximum{cursor:n-resize}.monaco-sash.disabled{cursor:default!important;pointer-events:none!important}.monaco-sash.vertical{cursor:ew-resize;height:100%;top:0;width:4px;width:var(--vscode-sash-size)}.monaco-sash.horizontal{cursor:ns-resize;height:4px;height:var(--vscode-sash-size);left:0;width:100%}.monaco-sash:not(.disabled)>.orthogonal-drag-handle{content:\" \";cursor:all-scroll;display:block;height:8px;height:calc(var(--vscode-sash-size)*2);position:absolute;width:8px;width:calc(var(--vscode-sash-size)*2);z-index:100}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.start,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.end{cursor:nwse-resize}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.end,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.start{cursor:nesw-resize}.monaco-sash.vertical>.orthogonal-drag-handle.start{left:-2px;left:calc(var(--vscode-sash-size)*-.5);top:-4px;top:calc(var(--vscode-sash-size)*-1)}.monaco-sash.vertical>.orthogonal-drag-handle.end{bottom:-4px;bottom:calc(var(--vscode-sash-size)*-1);left:-2px;left:calc(var(--vscode-sash-size)*-.5)}.monaco-sash.horizontal>.orthogonal-drag-handle.start{left:-4px;left:calc(var(--vscode-sash-size)*-1);top:-2px;top:calc(var(--vscode-sash-size)*-.5)}.monaco-sash.horizontal>.orthogonal-drag-handle.end{right:-4px;right:calc(var(--vscode-sash-size)*-1);top:-2px;top:calc(var(--vscode-sash-size)*-.5)}.monaco-sash:before{background:transparent;content:\"\";height:100%;pointer-events:none;position:absolute;width:100%}.monaco-workbench:not(.reduce-motion) .monaco-sash:before{transition:background-color .1s ease-out}.monaco-sash.active:before,.monaco-sash.hover:before{background:var(--vscode-sash-hoverBorder)}.monaco-sash.vertical:before{left:calc(50% - 2px);left:calc(50% - var(--vscode-sash-hover-size)/2);width:4px;width:var(--vscode-sash-hover-size)}.monaco-sash.horizontal:before{height:4px;height:var(--vscode-sash-hover-size);top:calc(50% - 2px);top:calc(50% - var(--vscode-sash-hover-size)/2)}.pointer-events-disabled{pointer-events:none!important}.monaco-sash.debug{background:#0ff}.monaco-sash.debug.disabled{background:#0ff3}.monaco-sash.debug:not(.disabled)>.orthogonal-drag-handle{background:red}.monaco-split-view2{height:100%;position:relative;width:100%}.monaco-split-view2>.sash-container{height:100%;pointer-events:none;position:absolute;width:100%}.monaco-split-view2>.sash-container>.monaco-sash{pointer-events:auto}.monaco-split-view2>.monaco-scrollable-element{height:100%;width:100%}.monaco-split-view2>.monaco-scrollable-element>.split-view-container{height:100%;position:relative;white-space:nowrap;width:100%}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view{position:absolute;white-space:normal}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view:not(.visible){display:none}.monaco-split-view2.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view{width:100%}.monaco-split-view2.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view{height:100%}.monaco-split-view2.separator-border>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{background-color:var(--separator-border);content:\" \";left:0;pointer-events:none;position:absolute;top:0;z-index:5}.monaco-split-view2.separator-border.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:100%;width:1px}.monaco-split-view2.separator-border.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:1px;width:100%}.monaco-table{display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative;white-space:nowrap;width:100%}.monaco-table>.monaco-split-view2{border-bottom:1px solid transparent}.monaco-table>.monaco-list{flex:1}.monaco-table-tr{display:flex;height:100%}.monaco-table-th{font-weight:700;height:100%;overflow:hidden;text-overflow:ellipsis;width:100%}.monaco-table-td,.monaco-table-th{box-sizing:border-box;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{border-left:1px solid transparent;content:\"\";left:calc(var(--vscode-sash-size)/2);position:absolute;width:0}.monaco-workbench:not(.reduce-motion) .monaco-table>.monaco-split-view2,.monaco-workbench:not(.reduce-motion) .monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{transition:border-color .2s ease-out}.monaco-tl-row{align-items:center;display:flex;height:100%;position:relative}.monaco-tl-row.disabled{cursor:default}.monaco-tl-indent{height:100%;left:16px;pointer-events:none;position:absolute;top:0}.hide-arrows .monaco-tl-indent{left:12px}.monaco-tl-indent>.indent-guide{border-left:1px solid transparent;box-sizing:border-box;display:inline-block;height:100%}.monaco-workbench:not(.reduce-motion) .monaco-tl-indent>.indent-guide{transition:border-color .1s linear}.monaco-tl-contents,.monaco-tl-twistie{height:100%}.monaco-tl-twistie{align-items:center;display:flex!important;flex-shrink:0;font-size:10px;justify-content:center;padding-right:6px;text-align:right;transform:translate(3px);width:16px}.monaco-tl-contents{flex:1;overflow:hidden}.monaco-tl-twistie:before{border-radius:20px}.monaco-tl-twistie.collapsed:before{transform:rotate(-90deg)}.monaco-tl-twistie.codicon-tree-item-loading:before{animation:codicon-spin 1.25s steps(30) infinite}.monaco-tree-type-filter{border:1px solid var(--vscode-widget-border);border-bottom-left-radius:4px;border-bottom-right-radius:4px;display:flex;margin:0 6px;max-width:200px;padding:3px;position:absolute;top:0;z-index:100}.monaco-workbench:not(.reduce-motion) .monaco-tree-type-filter{transition:top .3s}.monaco-tree-type-filter.disabled{top:-40px!important}.monaco-tree-type-filter-grab{align-items:center;cursor:grab;display:flex!important;justify-content:center;margin-right:2px}.monaco-tree-type-filter-grab.grabbing{cursor:grabbing}.monaco-tree-type-filter-input{flex:1}.monaco-tree-type-filter-input .monaco-inputbox{height:23px}.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.input,.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.mirror{padding:2px 4px}.monaco-tree-type-filter-input .monaco-findInput>.controls{top:2px}.monaco-tree-type-filter-actionbar{margin-left:4px}.monaco-tree-type-filter-actionbar .monaco-action-bar .action-label{padding:2px}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container{background-color:var(--vscode-sideBar-background);height:0;left:0;position:absolute;top:0;width:100%;z-index:13}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row.monaco-list-row{background-color:var(--vscode-sideBar-background);opacity:1!important;overflow:hidden;position:absolute;width:100%}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row:hover{background-color:var(--vscode-list-hoverBackground)!important;cursor:pointer}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container.empty,.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container.empty .monaco-tree-sticky-container-shadow{display:none}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-container-shadow{bottom:-3px;height:0;left:0;position:absolute;width:100%}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container[tabindex=\"0\"]:focus{outline:none}.monaco-icon-label{display:flex;overflow:hidden;text-overflow:ellipsis}.monaco-icon-label:before{background-position:0;background-repeat:no-repeat;background-size:16px;display:inline-block;height:22px;line-height:inherit!important;padding-right:6px;width:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-shrink:0;vertical-align:top}.monaco-icon-label-iconpath{display:flex;height:16px;margin-top:2px;padding-left:2px;width:16px}.monaco-icon-label-container.disabled{color:var(--vscode-disabledForeground)}.monaco-icon-label>.monaco-icon-label-container{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{color:inherit;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name>.label-separator{margin:0 2px;opacity:.5}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-suffix-container>.label-suffix{opacity:.7;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{font-size:.9em;margin-left:.5em;opacity:.7;white-space:pre}.monaco-icon-label.nowrap>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{white-space:nowrap}.vs .monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:.95}.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-description-container>.label-description,.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{font-style:italic}.monaco-icon-label.deprecated{opacity:.66;text-decoration:line-through}.monaco-icon-label.italic:after{font-style:italic}.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-description-container>.label-description,.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{text-decoration:line-through}.monaco-icon-label:after{font-size:90%;font-weight:600;margin:auto 16px 0 5px;opacity:.75;text-align:center}.monaco-list:focus .selected .monaco-icon-label,.monaco-list:focus .selected .monaco-icon-label:after{color:inherit!important}.monaco-list-row.focused.selected .label-description,.monaco-list-row.selected .label-description{opacity:.8}.monaco-keybinding{align-items:center;display:flex;line-height:10px}.monaco-keybinding>.monaco-keybinding-key{border-radius:3px;border-style:solid;border-width:1px;display:inline-block;font-size:11px;margin:0 2px;padding:3px 5px;vertical-align:middle}.monaco-keybinding>.monaco-keybinding-key:first-child{margin-left:0}.monaco-keybinding>.monaco-keybinding-key:last-child{margin-right:0}.monaco-keybinding>.monaco-keybinding-key-separator{display:inline-block}.monaco-keybinding>.monaco-keybinding-key-chord-separator{width:6px}.monaco-editor .diff-hidden-lines-widget{width:100%}.monaco-editor .diff-hidden-lines{font-size:13px;height:0;line-height:14px;transform:translateY(-10px)}.monaco-editor .diff-hidden-lines .bottom.dragging,.monaco-editor .diff-hidden-lines .top.dragging,.monaco-editor .diff-hidden-lines:not(.dragging) .bottom:hover,.monaco-editor .diff-hidden-lines:not(.dragging) .top:hover{background-color:var(--vscode-focusBorder)}.monaco-editor .diff-hidden-lines .bottom,.monaco-editor .diff-hidden-lines .top{background-clip:padding-box;background-color:transparent;border-bottom:2px solid transparent;border-top:4px solid transparent;height:4px;transition:background-color .1s ease-out}.monaco-editor .diff-hidden-lines .bottom.canMoveTop:not(.canMoveBottom),.monaco-editor .diff-hidden-lines .top.canMoveTop:not(.canMoveBottom),.monaco-editor.draggingUnchangedRegion.canMoveTop:not(.canMoveBottom) *{cursor:n-resize!important}.monaco-editor .diff-hidden-lines .bottom:not(.canMoveTop).canMoveBottom,.monaco-editor .diff-hidden-lines .top:not(.canMoveTop).canMoveBottom,.monaco-editor.draggingUnchangedRegion:not(.canMoveTop).canMoveBottom *{cursor:s-resize!important}.monaco-editor .diff-hidden-lines .bottom.canMoveTop.canMoveBottom,.monaco-editor .diff-hidden-lines .top.canMoveTop.canMoveBottom,.monaco-editor.draggingUnchangedRegion.canMoveTop.canMoveBottom *{cursor:ns-resize!important}.monaco-editor .diff-hidden-lines .top{transform:translateY(4px)}.monaco-editor .diff-hidden-lines .bottom{transform:translateY(-6px)}.monaco-editor .diff-unchanged-lines{background:var(--vscode-diffEditor-unchangedCodeBackground)}.monaco-editor .noModificationsOverlay{align-items:center;background:var(--vscode-editor-background);display:flex;justify-content:center;z-index:1}.monaco-editor .diff-hidden-lines .center{background:var(--vscode-diffEditor-unchangedRegionBackground);box-shadow:inset 0 -5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow),inset 0 5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow);color:var(--vscode-diffEditor-unchangedRegionForeground);display:block;height:24px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .diff-hidden-lines .center span.codicon{vertical-align:middle}.monaco-editor .diff-hidden-lines .center a:hover .codicon{color:var(--vscode-editorLink-activeForeground)!important;cursor:pointer}.monaco-editor .diff-hidden-lines div.breadcrumb-item{cursor:pointer}.monaco-editor .diff-hidden-lines div.breadcrumb-item:hover{color:var(--vscode-editorLink-activeForeground)}.monaco-editor .movedModified,.monaco-editor .movedOriginal{border:2px solid var(--vscode-diffEditor-move-border)}.monaco-editor .movedModified.currentMove,.monaco-editor .movedOriginal.currentMove{border:2px solid var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines path.currentMove{stroke:var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines path{pointer-events:visiblestroke}.monaco-diff-editor .moved-blocks-lines .arrow{fill:var(--vscode-diffEditor-move-border)}.monaco-diff-editor .moved-blocks-lines .arrow.currentMove{fill:var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines .arrow-rectangle{fill:var(--vscode-editor-background)}.monaco-diff-editor .moved-blocks-lines{pointer-events:none;position:absolute}.monaco-diff-editor .moved-blocks-lines path{fill:none;stroke:var(--vscode-diffEditor-move-border);stroke-width:2}.monaco-editor .char-delete.diff-range-empty{border-left:3px solid var(--vscode-diffEditor-removedTextBackground);margin-left:-1px}.monaco-editor .char-insert.diff-range-empty{border-left:3px solid var(--vscode-diffEditor-insertedTextBackground)}.monaco-editor .fold-unchanged{cursor:pointer}.monaco-diff-editor .diff-moved-code-block{display:flex;justify-content:flex-end;margin-top:-4px}.monaco-diff-editor .diff-moved-code-block .action-bar .action-label.codicon{font-size:12px;height:12px;width:12px}.monaco-diff-editor .diffOverview{z-index:9}.monaco-diff-editor .diffOverview .diffViewport{z-index:10}.monaco-diff-editor.vs .diffOverview{background:#00000008}.monaco-diff-editor.vs-dark .diffOverview{background:#ffffff03}.monaco-scrollable-element.modified-in-monaco-diff-editor.vs .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark .scrollbar{background:transparent}.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-light .scrollbar{background:none}.monaco-scrollable-element.modified-in-monaco-diff-editor .slider{z-index:10}.modified-in-monaco-diff-editor .slider.active{background:#ababab66}.modified-in-monaco-diff-editor.hc-black .slider.active,.modified-in-monaco-diff-editor.hc-light .slider.active{background:none}.monaco-diff-editor .delete-sign,.monaco-diff-editor .insert-sign,.monaco-editor .delete-sign,.monaco-editor .insert-sign{align-items:center;display:flex!important;font-size:11px!important;opacity:.7!important}.monaco-diff-editor.hc-black .delete-sign,.monaco-diff-editor.hc-black .insert-sign,.monaco-diff-editor.hc-light .delete-sign,.monaco-diff-editor.hc-light .insert-sign,.monaco-editor.hc-black .delete-sign,.monaco-editor.hc-black .insert-sign,.monaco-editor.hc-light .delete-sign,.monaco-editor.hc-light .insert-sign{opacity:1}.monaco-editor .inline-added-margin-view-zone,.monaco-editor .inline-deleted-margin-view-zone{text-align:right}.monaco-editor .arrow-revert-change{position:absolute;z-index:10}.monaco-editor .arrow-revert-change:hover{cursor:pointer}.monaco-editor .view-zones .view-lines .view-line span{display:inline-block}.monaco-editor .margin-view-zones .lightbulb-glyph:hover{cursor:pointer}.monaco-diff-editor .char-insert,.monaco-editor .char-insert{background-color:var(--vscode-diffEditor-insertedTextBackground)}.monaco-diff-editor .line-insert,.monaco-editor .line-insert{background-color:var(--vscode-diffEditor-insertedLineBackground,var(--vscode-diffEditor-insertedTextBackground))}.monaco-editor .char-insert,.monaco-editor .line-insert{border:1px solid var(--vscode-diffEditor-insertedTextBorder);box-sizing:border-box}.monaco-editor.hc-black .char-insert,.monaco-editor.hc-black .line-insert,.monaco-editor.hc-light .char-insert,.monaco-editor.hc-light .line-insert{border-style:dashed}.monaco-editor .char-delete,.monaco-editor .line-delete{border:1px solid var(--vscode-diffEditor-removedTextBorder);box-sizing:border-box}.monaco-editor.hc-black .char-delete,.monaco-editor.hc-black .line-delete,.monaco-editor.hc-light .char-delete,.monaco-editor.hc-light .line-delete{border-style:dashed}.monaco-diff-editor .gutter-insert,.monaco-editor .gutter-insert,.monaco-editor .inline-added-margin-view-zone{background-color:var(--vscode-diffEditorGutter-insertedLineBackground,var(--vscode-diffEditor-insertedLineBackground),var(--vscode-diffEditor-insertedTextBackground))}.monaco-diff-editor .char-delete,.monaco-editor .char-delete{background-color:var(--vscode-diffEditor-removedTextBackground)}.monaco-diff-editor .line-delete,.monaco-editor .line-delete{background-color:var(--vscode-diffEditor-removedLineBackground,var(--vscode-diffEditor-removedTextBackground))}.monaco-diff-editor .gutter-delete,.monaco-editor .gutter-delete,.monaco-editor .inline-deleted-margin-view-zone{background-color:var(--vscode-diffEditorGutter-removedLineBackground,var(--vscode-diffEditor-removedLineBackground),var(--vscode-diffEditor-removedTextBackground))}.monaco-diff-editor.side-by-side .editor.modified{border-left:1px solid var(--vscode-diffEditor-border);box-shadow:-6px 0 5px -5px var(--vscode-scrollbar-shadow)}.monaco-diff-editor.side-by-side .editor.original{border-right:1px solid var(--vscode-diffEditor-border);box-shadow:6px 0 5px -5px var(--vscode-scrollbar-shadow)}.monaco-diff-editor .diffViewport{background:var(--vscode-scrollbarSlider-background)}.monaco-diff-editor .diffViewport:hover{background:var(--vscode-scrollbarSlider-hoverBackground)}.monaco-diff-editor .diffViewport:active{background:var(--vscode-scrollbarSlider-activeBackground)}.monaco-editor .diagonal-fill{background-image:linear-gradient(-45deg,var(--vscode-diffEditor-diagonalFill) 12.5%,#0000 12.5%,#0000 50%,var(--vscode-diffEditor-diagonalFill) 50%,var(--vscode-diffEditor-diagonalFill) 62.5%,#0000 62.5%,#0000 100%);background-size:8px 8px}.monaco-diff-editor .gutter{flex-grow:0;flex-shrink:0;overflow:hidden;position:relative}.monaco-diff-editor .gutter>div{position:absolute}.monaco-diff-editor .gutter .gutterItem{opacity:0;transition:opacity .7s}.monaco-diff-editor .gutter .gutterItem.showAlways{opacity:1;transition:none}.monaco-diff-editor .gutter .gutterItem.noTransition{transition:none}.monaco-diff-editor .gutter:hover .gutterItem{opacity:1;transition:opacity .1s ease-in-out}.monaco-diff-editor .gutter .gutterItem .background{border-left:2px solid var(--vscode-menu-border);height:100%;left:50%;position:absolute;width:1px}.monaco-diff-editor .gutter .gutterItem .buttons{align-items:center;display:flex;justify-content:center;position:absolute;width:100%}.monaco-diff-editor .gutter .gutterItem .buttons .monaco-toolbar{height:-moz-fit-content;height:fit-content}.monaco-diff-editor .gutter .gutterItem .buttons .monaco-toolbar .monaco-action-bar{line-height:1}.monaco-diff-editor .gutter .gutterItem .buttons .monaco-toolbar .monaco-action-bar .actions-container{background:var(--vscode-editorGutter-commentRangeForeground);border-radius:4px;width:-moz-fit-content;width:fit-content}.monaco-diff-editor .gutter .gutterItem .buttons .monaco-toolbar .monaco-action-bar .actions-container .action-item:hover{background:var(--vscode-toolbar-hoverBackground)}.monaco-diff-editor .gutter .gutterItem .buttons .monaco-toolbar .monaco-action-bar .actions-container .action-item .action-label{padding:1px 2px}.monaco-component.diff-review{-moz-user-select:none;user-select:none;-webkit-user-select:none;z-index:99}.monaco-diff-editor .diff-review{position:absolute}.monaco-component.diff-review .diff-review-line-number{color:var(--vscode-editorLineNumber-foreground);display:inline-block;text-align:right}.monaco-component.diff-review .diff-review-summary{padding-left:10px}.monaco-component.diff-review .diff-review-shadow{box-shadow:var(--vscode-scrollbar-shadow) 0 -6px 6px -6px inset;position:absolute}.monaco-component.diff-review .diff-review-row{white-space:pre}.monaco-component.diff-review .diff-review-table{display:table;min-width:100%}.monaco-component.diff-review .diff-review-row{display:table-row;width:100%}.monaco-component.diff-review .diff-review-spacer{display:inline-block;vertical-align:middle;width:10px}.monaco-component.diff-review .diff-review-spacer>.codicon{font-size:9px!important}.monaco-component.diff-review .diff-review-actions{display:inline-block;position:absolute;right:10px;top:2px;z-index:100}.monaco-component.diff-review .diff-review-actions .action-label{height:16px;margin:2px 0;width:16px}.monaco-component.diff-review .revertButton{cursor:pointer}.monaco-toolbar{height:100%}.monaco-toolbar .toolbar-toggle-more{display:inline-block;padding:0}.monaco-component.multiDiffEditor{background:var(--vscode-multiDiffEditor-background);height:100%;overflow-y:hidden;position:relative;width:100%}.monaco-component.multiDiffEditor>div{height:100%;left:0;position:absolute;top:0;width:100%}.monaco-component.multiDiffEditor>div.placeholder{visibility:hidden}.monaco-component.multiDiffEditor>div.placeholder.visible{visibility:visible}.monaco-component.multiDiffEditor>div.placeholder{display:grid;place-content:center;place-items:center}.monaco-component.multiDiffEditor .active{--vscode-multiDiffEditor-border:var(--vscode-focusBorder)}.monaco-component.multiDiffEditor .multiDiffEntry{display:flex;flex:1;flex-direction:column;overflow:hidden}.monaco-component.multiDiffEditor .multiDiffEntry .collapse-button{cursor:pointer;margin:0 5px}.monaco-component.multiDiffEditor .multiDiffEntry .collapse-button a{display:block}.monaco-component.multiDiffEditor .multiDiffEntry .header{background:var(--vscode-editor-background);z-index:1000}.monaco-component.multiDiffEditor .multiDiffEntry .header:not(.collapsed) .header-content{border-bottom:1px solid var(--vscode-sideBarSectionHeader-border)}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content{align-items:center;background:var(--vscode-multiDiffEditor-headerBackground);border-top:1px solid var(--vscode-multiDiffEditor-border);color:var(--vscode-foreground);display:flex;margin:8px 0 0;padding:4px 5px}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content.shadow{box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content .file-path{display:flex;flex:1;min-width:0}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content .file-path .title{font-size:14px;line-height:22px}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content .file-path .title.original{flex:1;min-width:0;text-overflow:ellipsis}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content .file-path .status{font-weight:600;line-height:22px;margin:0 10px;opacity:.75}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content .actions{padding:0 8px}.monaco-component.multiDiffEditor .multiDiffEntry .editorParent{border-bottom:1px solid var(--vscode-multiDiffEditor-border);display:flex;flex:1;flex-direction:column;overflow:hidden}.monaco-component.multiDiffEditor .multiDiffEntry .editorContainer{flex:1}.monaco-editor .selection-anchor{background-color:#007acc;width:2px!important}.monaco-editor .bracket-match{background-color:var(--vscode-editorBracketMatch-background);border:1px solid var(--vscode-editorBracketMatch-border);box-sizing:border-box}.inline-editor-progress-decoration{display:inline-block;height:1em;width:1em}.inline-progress-widget{align-items:center;display:flex!important;justify-content:center}.inline-progress-widget .icon{font-size:80%!important}.inline-progress-widget:hover .icon{animation:none;font-size:90%!important}.inline-progress-widget:hover .icon:before{content:var(--vscode-icon-x-content);font-family:var(--vscode-icon-x-font-family)}.monaco-editor .monaco-editor-overlaymessage{padding-bottom:8px;z-index:10000}.monaco-editor .monaco-editor-overlaymessage.below{padding-bottom:0;padding-top:8px;z-index:10000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.monaco-editor .monaco-editor-overlaymessage.fadeIn{animation:fadeIn .15s ease-out}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.monaco-editor .monaco-editor-overlaymessage.fadeOut{animation:fadeOut .1s ease-out}.monaco-editor .monaco-editor-overlaymessage .message{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-inputValidation-infoBorder);border-radius:3px;color:var(--vscode-editorHoverWidget-foreground);padding:2px 4px}.monaco-editor .monaco-editor-overlaymessage .message p{margin-block:0}.monaco-editor .monaco-editor-overlaymessage .message a{color:var(--vscode-textLink-foreground)}.monaco-editor .monaco-editor-overlaymessage .message a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor.hc-black .monaco-editor-overlaymessage .message,.monaco-editor.hc-light .monaco-editor-overlaymessage .message{border-width:2px}.monaco-editor .monaco-editor-overlaymessage .anchor{border:8px solid transparent;height:0!important;left:2px;position:absolute;width:0!important;z-index:1000}.monaco-editor .monaco-editor-overlaymessage .anchor.top{border-bottom-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage .anchor.below{border-top-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage.below .anchor.below,.monaco-editor .monaco-editor-overlaymessage:not(.below) .anchor.top{display:none}.monaco-editor .monaco-editor-overlaymessage.below .anchor.top{display:inherit;top:-8px}.post-edit-widget{background-color:var(--vscode-editorWidget-background);border:1px solid transparent;border:1px solid var(--vscode-widget-border,transparent);border-radius:4px;box-shadow:0 0 8px 2px var(--vscode-widget-shadow);overflow:hidden}.post-edit-widget .monaco-button{border:none;border-radius:0;padding:2px}.post-edit-widget .monaco-button:hover{background-color:var(--vscode-button-secondaryHoverBackground)!important}.post-edit-widget .monaco-button .codicon{margin:0}@font-face{font-display:block;font-family:codicon;src:url(./codicon.DCmgc-ay.ttf) format(\"truetype\")}.codicon[class*=codicon-]{display:inline-block;font: 16px/1 codicon;text-align:center;text-decoration:none;text-rendering:auto;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-user-select:none;user-select:none;-webkit-user-select:none}.codicon-wrench-subaction{opacity:.5}@keyframes codicon-spin{to{transform:rotate(1turn)}}.codicon-gear.codicon-modifier-spin,.codicon-loading.codicon-modifier-spin,.codicon-notebook-state-executing.codicon-modifier-spin,.codicon-sync.codicon-modifier-spin{animation:codicon-spin 1.5s steps(30) infinite}.codicon-modifier-disabled{opacity:.4}.codicon-loading,.codicon-tree-item-loading:before{animation-duration:1s!important;animation-timing-function:cubic-bezier(.53,.21,.29,.67)!important}.monaco-editor .codicon.codicon-symbol-array,.monaco-workbench .codicon.codicon-symbol-array{color:var(--vscode-symbolIcon-arrayForeground)}.monaco-editor .codicon.codicon-symbol-boolean,.monaco-workbench .codicon.codicon-symbol-boolean{color:var(--vscode-symbolIcon-booleanForeground)}.monaco-editor .codicon.codicon-symbol-class,.monaco-workbench .codicon.codicon-symbol-class{color:var(--vscode-symbolIcon-classForeground)}.monaco-editor .codicon.codicon-symbol-method,.monaco-workbench .codicon.codicon-symbol-method{color:var(--vscode-symbolIcon-methodForeground)}.monaco-editor .codicon.codicon-symbol-color,.monaco-workbench .codicon.codicon-symbol-color{color:var(--vscode-symbolIcon-colorForeground)}.monaco-editor .codicon.codicon-symbol-constant,.monaco-workbench .codicon.codicon-symbol-constant{color:var(--vscode-symbolIcon-constantForeground)}.monaco-editor .codicon.codicon-symbol-constructor,.monaco-workbench .codicon.codicon-symbol-constructor{color:var(--vscode-symbolIcon-constructorForeground)}.monaco-editor .codicon.codicon-symbol-enum,.monaco-editor .codicon.codicon-symbol-value,.monaco-workbench .codicon.codicon-symbol-enum,.monaco-workbench .codicon.codicon-symbol-value{color:var(--vscode-symbolIcon-enumeratorForeground)}.monaco-editor .codicon.codicon-symbol-enum-member,.monaco-workbench .codicon.codicon-symbol-enum-member{color:var(--vscode-symbolIcon-enumeratorMemberForeground)}.monaco-editor .codicon.codicon-symbol-event,.monaco-workbench .codicon.codicon-symbol-event{color:var(--vscode-symbolIcon-eventForeground)}.monaco-editor .codicon.codicon-symbol-field,.monaco-workbench .codicon.codicon-symbol-field{color:var(--vscode-symbolIcon-fieldForeground)}.monaco-editor .codicon.codicon-symbol-file,.monaco-workbench .codicon.codicon-symbol-file{color:var(--vscode-symbolIcon-fileForeground)}.monaco-editor .codicon.codicon-symbol-folder,.monaco-workbench .codicon.codicon-symbol-folder{color:var(--vscode-symbolIcon-folderForeground)}.monaco-editor .codicon.codicon-symbol-function,.monaco-workbench .codicon.codicon-symbol-function{color:var(--vscode-symbolIcon-functionForeground)}.monaco-editor .codicon.codicon-symbol-interface,.monaco-workbench .codicon.codicon-symbol-interface{color:var(--vscode-symbolIcon-interfaceForeground)}.monaco-editor .codicon.codicon-symbol-key,.monaco-workbench .codicon.codicon-symbol-key{color:var(--vscode-symbolIcon-keyForeground)}.monaco-editor .codicon.codicon-symbol-keyword,.monaco-workbench .codicon.codicon-symbol-keyword{color:var(--vscode-symbolIcon-keywordForeground)}.monaco-editor .codicon.codicon-symbol-module,.monaco-workbench .codicon.codicon-symbol-module{color:var(--vscode-symbolIcon-moduleForeground)}.monaco-editor .codicon.codicon-symbol-namespace,.monaco-workbench .codicon.codicon-symbol-namespace{color:var(--vscode-symbolIcon-namespaceForeground)}.monaco-editor .codicon.codicon-symbol-null,.monaco-workbench .codicon.codicon-symbol-null{color:var(--vscode-symbolIcon-nullForeground)}.monaco-editor .codicon.codicon-symbol-number,.monaco-workbench .codicon.codicon-symbol-number{color:var(--vscode-symbolIcon-numberForeground)}.monaco-editor .codicon.codicon-symbol-object,.monaco-workbench .codicon.codicon-symbol-object{color:var(--vscode-symbolIcon-objectForeground)}.monaco-editor .codicon.codicon-symbol-operator,.monaco-workbench .codicon.codicon-symbol-operator{color:var(--vscode-symbolIcon-operatorForeground)}.monaco-editor .codicon.codicon-symbol-package,.monaco-workbench .codicon.codicon-symbol-package{color:var(--vscode-symbolIcon-packageForeground)}.monaco-editor .codicon.codicon-symbol-property,.monaco-workbench .codicon.codicon-symbol-property{color:var(--vscode-symbolIcon-propertyForeground)}.monaco-editor .codicon.codicon-symbol-reference,.monaco-workbench .codicon.codicon-symbol-reference{color:var(--vscode-symbolIcon-referenceForeground)}.monaco-editor .codicon.codicon-symbol-snippet,.monaco-workbench .codicon.codicon-symbol-snippet{color:var(--vscode-symbolIcon-snippetForeground)}.monaco-editor .codicon.codicon-symbol-string,.monaco-workbench .codicon.codicon-symbol-string{color:var(--vscode-symbolIcon-stringForeground)}.monaco-editor .codicon.codicon-symbol-struct,.monaco-workbench .codicon.codicon-symbol-struct{color:var(--vscode-symbolIcon-structForeground)}.monaco-editor .codicon.codicon-symbol-text,.monaco-workbench .codicon.codicon-symbol-text{color:var(--vscode-symbolIcon-textForeground)}.monaco-editor .codicon.codicon-symbol-type-parameter,.monaco-workbench .codicon.codicon-symbol-type-parameter{color:var(--vscode-symbolIcon-typeParameterForeground)}.monaco-editor .codicon.codicon-symbol-unit,.monaco-workbench .codicon.codicon-symbol-unit{color:var(--vscode-symbolIcon-unitForeground)}.monaco-editor .codicon.codicon-symbol-variable,.monaco-workbench .codicon.codicon-symbol-variable{color:var(--vscode-symbolIcon-variableForeground)}.monaco-editor .lightBulbWidget{align-items:center;display:flex;justify-content:center}.monaco-editor .lightBulbWidget:hover{cursor:pointer}.monaco-editor .lightBulbWidget.codicon-light-bulb,.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle{color:var(--vscode-editorLightBulb-foreground)}.monaco-editor .lightBulbWidget.codicon-lightbulb-autofix,.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle-autofix{color:var(--vscode-editorLightBulbAutoFix-foreground,var(--vscode-editorLightBulb-foreground))}.monaco-editor .lightBulbWidget.codicon-sparkle-filled{color:var(--vscode-editorLightBulbAi-foreground,var(--vscode-icon-foreground))}.monaco-editor .lightBulbWidget:before{position:relative;z-index:2}.monaco-editor .lightBulbWidget:after{background-color:var(--vscode-editor-background);content:\"\";display:block;height:100%;left:0;opacity:.3;position:absolute;top:0;width:100%;z-index:1}.action-widget{background-color:var(--vscode-editorWidget-background);border:1px solid var(--vscode-editorWidget-border)!important;border-radius:2px;color:var(--vscode-editorWidget-foreground);display:block;font-size:13px;max-width:80vw;min-width:160px;width:100%;z-index:40}.context-view-block{z-index:-1}.context-view-block,.context-view-pointerBlock{cursor:auto;height:100%;left:0;position:fixed;top:0;width:100%}.context-view-pointerBlock{z-index:2}.action-widget .monaco-list{border:0!important;-moz-user-select:none;user-select:none;-webkit-user-select:none}.action-widget .monaco-list:focus:before{outline:0!important}.action-widget .monaco-list .monaco-scrollable-element{overflow:visible}.action-widget .monaco-list .monaco-list-row{cursor:pointer;padding:0 10px;touch-action:none;white-space:nowrap;width:100%}.action-widget .monaco-list .monaco-list-row.action.focused:not(.option-disabled){background-color:var(--vscode-quickInputList-focusBackground)!important;color:var(--vscode-quickInputList-focusForeground);outline:1px solid transparent;outline:1px solid var(--vscode-menu-selectionBorder,transparent);outline-offset:-1px}.action-widget .monaco-list-row.group-header{color:var(--vscode-descriptionForeground)!important;font-weight:600}.action-widget .monaco-list .group-header,.action-widget .monaco-list .option-disabled,.action-widget .monaco-list .option-disabled .focused,.action-widget .monaco-list .option-disabled .focused:before,.action-widget .monaco-list .option-disabled:before{cursor:default!important;-webkit-touch-callout:none;background-color:transparent!important;outline:0 solid!important;-webkit-user-select:none;-moz-user-select:none;user-select:none}.action-widget .monaco-list-row.action{align-items:center;display:flex;gap:6px}.action-widget .monaco-list-row.action.option-disabled,.action-widget .monaco-list-row.action.option-disabled .codicon,.action-widget .monaco-list:focus .monaco-list-row.focused.action.option-disabled,.action-widget .monaco-list:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused).option-disabled{color:var(--vscode-disabledForeground)}.action-widget .monaco-list-row.action:not(.option-disabled) .codicon{color:inherit}.action-widget .monaco-list-row.action .title{flex:1;overflow:hidden;text-overflow:ellipsis}.action-widget .monaco-list-row.action .monaco-keybinding>.monaco-keybinding-key{background-color:var(--vscode-keybindingLabel-background);border-color:var(--vscode-keybindingLabel-border);border-bottom-color:var(--vscode-keybindingLabel-bottomBorder);border-radius:3px;border-style:solid;border-width:1px;box-shadow:inset 0 -1px 0 var(--vscode-widget-shadow);color:var(--vscode-keybindingLabel-foreground)}.action-widget .action-widget-action-bar{background-color:var(--vscode-editorHoverWidget-statusBarBackground);border-top:1px solid var(--vscode-editorHoverWidget-border)}.action-widget .action-widget-action-bar:before{content:\"\";display:block;width:100%}.action-widget .action-widget-action-bar .actions-container{padding:0 8px}.action-widget-action-bar .action-label{color:var(--vscode-textLink-activeForeground);font-size:12px;line-height:22px;padding:0;pointer-events:all}.action-widget-action-bar .action-item{margin-right:16px;pointer-events:none}.action-widget-action-bar .action-label:hover{background-color:transparent!important}.monaco-action-bar .actions-container.highlight-toggled .action-label.checked{background:var(--vscode-actionBar-toggledBackground)!important}.monaco-editor .codelens-decoration{color:var(--vscode-editorCodeLens-foreground);display:inline-block;font-family:var(--vscode-editorCodeLens-fontFamily),var(--vscode-editorCodeLens-fontFamilyDefault);font-feature-settings:var(--vscode-editorCodeLens-fontFeatureSettings);font-size:var(--vscode-editorCodeLens-fontSize);line-height:var(--vscode-editorCodeLens-lineHeight);overflow:hidden;padding-right:calc(var(--vscode-editorCodeLens-fontSize)*.5);text-overflow:ellipsis;white-space:nowrap}.monaco-editor .codelens-decoration>a,.monaco-editor .codelens-decoration>span{-moz-user-select:none;user-select:none;-webkit-user-select:none;vertical-align:sub;white-space:nowrap}.monaco-editor .codelens-decoration>a{text-decoration:none}.monaco-editor .codelens-decoration>a:hover{cursor:pointer}.monaco-editor .codelens-decoration>a:hover,.monaco-editor .codelens-decoration>a:hover .codicon{color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .codelens-decoration .codicon{color:currentColor!important;color:var(--vscode-editorCodeLens-foreground);font-size:var(--vscode-editorCodeLens-fontSize);line-height:var(--vscode-editorCodeLens-lineHeight);vertical-align:middle}.monaco-editor .codelens-decoration>a:hover .codicon:before{cursor:pointer}@keyframes fadein{0%{opacity:0;visibility:visible}to{opacity:1}}.monaco-editor .codelens-decoration.fadein{animation:fadein .1s linear}.colorpicker-widget{height:190px;-moz-user-select:none;user-select:none;-webkit-user-select:none}.colorpicker-color-decoration,.hc-light .colorpicker-color-decoration{border:.1em solid #000;box-sizing:border-box;cursor:pointer;display:inline-block;height:.8em;line-height:.8em;margin:.1em .2em 0;width:.8em}.hc-black .colorpicker-color-decoration,.vs-dark .colorpicker-color-decoration{border:.1em solid #eee}.colorpicker-header{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;display:flex;height:24px;image-rendering:pixelated;position:relative}.colorpicker-header .picked-color{align-items:center;color:#fff;cursor:pointer;display:flex;flex:1;justify-content:center;line-height:24px;overflow:hidden;white-space:nowrap;width:240px}.colorpicker-header .picked-color .picked-color-presentation{margin-left:5px;margin-right:5px;white-space:nowrap}.colorpicker-header .picked-color .codicon{color:inherit;font-size:14px}.colorpicker-header .picked-color.light{color:#000}.colorpicker-header .original-color{cursor:pointer;width:74px;z-index:inherit}.standalone-colorpicker{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);color:var(--vscode-editorHoverWidget-foreground)}.colorpicker-header.standalone-colorpicker{border-bottom:none}.colorpicker-header .close-button{background-color:var(--vscode-editorHoverWidget-background);border-left:1px solid var(--vscode-editorHoverWidget-border);cursor:pointer}.colorpicker-header .close-button-inner-div{height:100%;text-align:center;width:100%}.colorpicker-header .close-button-inner-div:hover{background-color:var(--vscode-toolbar-hoverBackground)}.colorpicker-header .close-icon{padding:3px}.colorpicker-body{display:flex;padding:8px;position:relative}.colorpicker-body .saturation-wrap{flex:1;height:150px;min-width:220px;overflow:hidden;position:relative}.colorpicker-body .saturation-box{height:150px;position:absolute}.colorpicker-body .saturation-selection{border:1px solid #fff;border-radius:100%;box-shadow:0 0 2px #000c;height:9px;margin:-5px 0 0 -5px;position:absolute;width:9px}.colorpicker-body .strip{height:150px;width:25px}.colorpicker-body .standalone-strip{height:122px;width:25px}.colorpicker-body .hue-strip{background:linear-gradient(180deg,red 0,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red);cursor:grab;margin-left:8px;position:relative}.colorpicker-body .opacity-strip{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;cursor:grab;image-rendering:pixelated;margin-left:8px;position:relative}.colorpicker-body .strip.grabbing{cursor:grabbing}.colorpicker-body .slider{border:1px solid hsla(0,0%,100%,.71);box-shadow:0 0 1px #000000d9;box-sizing:border-box;height:4px;left:-2px;position:absolute;top:0;width:calc(100% + 4px)}.colorpicker-body .strip .overlay{height:150px;pointer-events:none}.colorpicker-body .standalone-strip .standalone-overlay{height:122px;pointer-events:none}.standalone-colorpicker-body{border:1px solid transparent;border-bottom:1px solid var(--vscode-editorHoverWidget-border);display:block;overflow:hidden}.colorpicker-body .insert-button{background:var(--vscode-button-background);border:none;border-radius:2px;bottom:8px;color:var(--vscode-button-foreground);cursor:pointer;height:20px;padding:0;position:absolute;right:8px;width:58px}.colorpicker-body .insert-button:hover{background:var(--vscode-button-hoverBackground)}.monaco-editor .inlineSuggestionsHints.withBorder{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);color:var(--vscode-editorHoverWidget-foreground);z-index:39}.monaco-editor .inlineSuggestionsHints a,.monaco-editor .inlineSuggestionsHints a:hover{color:var(--vscode-foreground)}.monaco-editor .inlineSuggestionsHints .keybinding{display:flex;margin-left:4px;opacity:.6}.monaco-editor .inlineSuggestionsHints .keybinding .monaco-keybinding-key{font-size:8px;padding:2px 3px}.monaco-editor .inlineSuggestionsHints .availableSuggestionCount a{display:flex;justify-content:center;min-width:19px}.monaco-editor .inlineSuggestionStatusBarItemLabel{margin-right:2px}.monaco-editor .peekview-widget .head{box-sizing:border-box;display:flex;flex-wrap:nowrap;justify-content:space-between}.monaco-editor .peekview-widget .head .peekview-title{align-items:baseline;display:flex;font-size:13px;margin-left:20px;min-width:0;overflow:hidden;text-overflow:ellipsis}.monaco-editor .peekview-widget .head .peekview-title.clickable{cursor:pointer}.monaco-editor .peekview-widget .head .peekview-title .dirname:not(:empty){font-size:.9em;margin-left:.5em}.monaco-editor .peekview-widget .head .peekview-title .dirname,.monaco-editor .peekview-widget .head .peekview-title .filename,.monaco-editor .peekview-widget .head .peekview-title .meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .peekview-widget .head .peekview-title .meta:not(:empty):before{content:\"-\";padding:0 .3em}.monaco-editor .peekview-widget .head .peekview-actions{flex:1;padding-right:2px;text-align:right}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar{display:inline-block}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar,.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar>.actions-container{height:100%}.monaco-editor .peekview-widget>.body{border-top:1px solid;position:relative}.monaco-editor .peekview-widget .head .peekview-title .codicon{align-self:center;margin-right:4px}.monaco-editor .peekview-widget .monaco-list .monaco-list-row.focused .codicon{color:inherit!important}.monaco-editor .zone-widget{position:absolute;z-index:10}.monaco-editor .zone-widget .zone-widget-container{border-bottom-style:solid;border-bottom-width:0;border-top-style:solid;border-top-width:0;position:relative}.monaco-editor .zone-widget .zone-widget-container.reference-zone-widget{border-bottom-width:1px;border-top-width:1px}.monaco-editor .reference-zone-widget .inline{display:inline-block;vertical-align:top}.monaco-editor .reference-zone-widget .messages{height:100%;padding:3em 0;text-align:center;width:100%}.monaco-editor .reference-zone-widget .ref-tree{background-color:var(--vscode-peekViewResult-background);color:var(--vscode-peekViewResult-lineForeground);line-height:23px}.monaco-editor .reference-zone-widget .ref-tree .reference{overflow:hidden;text-overflow:ellipsis}.monaco-editor .reference-zone-widget .ref-tree .reference-file{color:var(--vscode-peekViewResult-fileForeground);display:inline-flex;height:100%;width:100%}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .selected .reference-file{color:inherit!important}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows>.monaco-list-row.selected:not(.highlighted){background-color:var(--vscode-peekViewResult-selectionBackground);color:var(--vscode-peekViewResult-selectionForeground)!important}.monaco-editor .reference-zone-widget .ref-tree .reference-file .count{margin-left:auto;margin-right:12px}.monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight{background-color:var(--vscode-peekViewResult-matchHighlightBackground)}.monaco-editor .reference-zone-widget .preview .reference-decoration{background-color:var(--vscode-peekViewEditor-matchHighlightBackground);border:2px solid var(--vscode-peekViewEditor-matchHighlightBorder);box-sizing:border-box}.monaco-editor .reference-zone-widget .preview .monaco-editor .inputarea.ime-input,.monaco-editor .reference-zone-widget .preview .monaco-editor .monaco-editor-background{background-color:var(--vscode-peekViewEditor-background)}.monaco-editor .reference-zone-widget .preview .monaco-editor .margin{background-color:var(--vscode-peekViewEditorGutter-background)}.monaco-editor.hc-black .reference-zone-widget .ref-tree .reference-file,.monaco-editor.hc-light .reference-zone-widget .ref-tree .reference-file{font-weight:700}.monaco-editor.hc-black .reference-zone-widget .ref-tree .referenceMatch .highlight,.monaco-editor.hc-light .reference-zone-widget .ref-tree .referenceMatch .highlight{border:1px dotted transparent;border:1px dotted var(--vscode-contrastActiveBorder,transparent);box-sizing:border-box}.monaco-editor .hoverHighlight{background-color:var(--vscode-editor-hoverHighlightBackground)}.monaco-editor .monaco-hover-content{box-sizing:border-box;padding-bottom:2px;padding-right:2px}.monaco-editor .monaco-hover{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);border-radius:3px;color:var(--vscode-editorHoverWidget-foreground)}.monaco-editor .monaco-hover a{color:var(--vscode-textLink-foreground)}.monaco-editor .monaco-hover a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .monaco-hover .hover-row{display:flex}.monaco-editor .monaco-hover .hover-row .hover-row-contents{display:flex;flex-direction:column;min-width:0}.monaco-editor .monaco-hover .hover-row .verbosity-actions{border-right:1px solid var(--vscode-editorHoverWidget-border);display:flex;flex-direction:column;justify-content:end;padding-left:5px;padding-right:5px}.monaco-editor .monaco-hover .hover-row .verbosity-actions .codicon{cursor:pointer;font-size:11px}.monaco-editor .monaco-hover .hover-row .verbosity-actions .codicon.enabled{color:var(--vscode-textLink-foreground)}.monaco-editor .monaco-hover .hover-row .verbosity-actions .codicon.disabled{opacity:.6}.monaco-editor .monaco-hover .hover-row .actions{background-color:var(--vscode-editorHoverWidget-statusBarBackground)}.monaco-editor .monaco-hover code{background-color:var(--vscode-textCodeBlock-background)}.monaco-editor.hc-light .dnd-target,.monaco-editor.vs .dnd-target{border-right:2px dotted #000;color:#fff}.monaco-editor.vs-dark .dnd-target{border-right:2px dotted #aeafad;color:#51504f}.monaco-editor.hc-black .dnd-target{border-right:2px dotted #fff;color:#000}.monaco-editor.hc-black.mac.mouse-default .view-lines,.monaco-editor.hc-light.mac.mouse-default .view-lines,.monaco-editor.mouse-default .view-lines,.monaco-editor.vs-dark.mac.mouse-default .view-lines{cursor:default}.monaco-editor.hc-black.mac.mouse-copy .view-lines,.monaco-editor.hc-light.mac.mouse-copy .view-lines,.monaco-editor.mouse-copy .view-lines,.monaco-editor.vs-dark.mac.mouse-copy .view-lines{cursor:copy}.monaco-editor .findOptionsWidget{background-color:var(--vscode-editorWidget-background);border:2px solid var(--vscode-contrastBorder);box-shadow:0 0 8px 2px var(--vscode-widget-shadow);color:var(--vscode-editorWidget-foreground)}.monaco-editor .find-widget{background-color:var(--vscode-editorWidget-background);border-bottom:1px solid var(--vscode-widget-border);border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-left:1px solid var(--vscode-widget-border);border-right:1px solid var(--vscode-widget-border);box-shadow:0 0 8px 2px var(--vscode-widget-shadow);box-sizing:border-box;color:var(--vscode-editorWidget-foreground);height:33px;line-height:19px;overflow:hidden;padding:0 4px;position:absolute;transform:translateY(calc(-100% - 10px));transition:transform .2s linear;z-index:35}.monaco-workbench.reduce-motion .monaco-editor .find-widget{transition:transform 0s linear}.monaco-editor .find-widget textarea{margin:0}.monaco-editor .find-widget.hiddenEditor{display:none}.monaco-editor .find-widget.replaceToggled>.replace-part{display:flex}.monaco-editor .find-widget.visible{transform:translateY(0)}.monaco-editor .find-widget .monaco-inputbox.synthetic-focus{outline:1px solid -webkit-focus-ring-color;outline-color:var(--vscode-focusBorder);outline-offset:-1px}.monaco-editor .find-widget .monaco-inputbox .input{background-color:transparent;min-height:0}.monaco-editor .find-widget .monaco-findInput .input{font-size:13px}.monaco-editor .find-widget>.find-part,.monaco-editor .find-widget>.replace-part{display:flex;font-size:12px;margin:3px 25px 0 17px}.monaco-editor .find-widget>.find-part .monaco-inputbox,.monaco-editor .find-widget>.replace-part .monaco-inputbox{min-height:25px}.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-right:22px}.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.mirror,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-bottom:2px;padding-top:2px}.monaco-editor .find-widget>.find-part .find-actions,.monaco-editor .find-widget>.replace-part .replace-actions{align-items:center;display:flex;height:25px}.monaco-editor .find-widget .monaco-findInput{display:flex;flex:1;vertical-align:middle}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element{width:100%}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element .scrollbar.vertical{opacity:0}.monaco-editor .find-widget .matchesCount{box-sizing:border-box;display:flex;flex:initial;height:25px;line-height:23px;margin:0 0 0 3px;padding:2px 0 0 2px;text-align:center;vertical-align:middle}.monaco-editor .find-widget .button{align-items:center;background-position:50%;background-repeat:no-repeat;border-radius:5px;cursor:pointer;display:flex;flex:initial;height:16px;justify-content:center;margin-left:3px;padding:3px;width:16px}.monaco-editor .find-widget .codicon-find-selection{border-radius:5px;height:22px;padding:3px;width:22px}.monaco-editor .find-widget .button.left{margin-left:0;margin-right:3px}.monaco-editor .find-widget .button.wide{padding:1px 6px;top:-1px;width:auto}.monaco-editor .find-widget .button.toggle{border-radius:0;box-sizing:border-box;height:100%;left:3px;position:absolute;top:0;width:18px}.monaco-editor .find-widget .button.toggle.disabled{display:none}.monaco-editor .find-widget .disabled{color:var(--vscode-disabledForeground);cursor:default}.monaco-editor .find-widget>.replace-part{display:none}.monaco-editor .find-widget>.replace-part>.monaco-findInput{display:flex;flex:auto;flex-grow:0;flex-shrink:0;position:relative;vertical-align:middle}.monaco-editor .find-widget>.replace-part>.monaco-findInput>.controls{position:absolute;right:2px;top:3px}.monaco-editor .find-widget.reduced-find-widget .matchesCount{display:none}.monaco-editor .find-widget.narrow-find-widget{max-width:257px!important}.monaco-editor .find-widget.collapsed-find-widget{max-width:170px!important}.monaco-editor .find-widget.collapsed-find-widget .button.next,.monaco-editor .find-widget.collapsed-find-widget .button.previous,.monaco-editor .find-widget.collapsed-find-widget .button.replace,.monaco-editor .find-widget.collapsed-find-widget .button.replace-all,.monaco-editor .find-widget.collapsed-find-widget>.find-part .monaco-findInput .controls{display:none}.monaco-editor .find-widget.no-results .matchesCount{color:var(--vscode-errorForeground)}.monaco-editor .findMatch{animation-duration:0;animation-name:inherit!important;background-color:var(--vscode-editor-findMatchHighlightBackground)}.monaco-editor .currentFindMatch{background-color:var(--vscode-editor-findMatchBackground);border:2px solid var(--vscode-editor-findMatchBorder);box-sizing:border-box;padding:1px}.monaco-editor .findScope{background-color:var(--vscode-editor-findRangeHighlightBackground)}.monaco-editor .find-widget .monaco-sash{background-color:var(--vscode-editorWidget-resizeBorder,var(--vscode-editorWidget-border));left:0!important}.monaco-editor.hc-black .find-widget .button:before{left:2px;position:relative;top:1px}.monaco-editor .find-widget .button:not(.disabled):hover,.monaco-editor .find-widget .codicon-find-selection:hover{background-color:var(--vscode-toolbar-hoverBackground)!important}.monaco-editor.findMatch{background-color:var(--vscode-editor-findMatchHighlightBackground)}.monaco-editor.currentFindMatch{background-color:var(--vscode-editor-findMatchBackground)}.monaco-editor.findScope{background-color:var(--vscode-editor-findRangeHighlightBackground)}.monaco-editor.findMatch{background-color:var(--vscode-editorWidget-background)}.monaco-editor .find-widget>.button.codicon-widget-close{position:absolute;right:4px;top:5px}.monaco-editor .margin-view-overlays .codicon-folding-collapsed,.monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays .codicon-folding-manual-expanded{align-items:center;cursor:pointer;display:flex;font-size:140%;justify-content:center;margin-left:2px;opacity:0;transition:opacity .5s}.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-collapsed,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-expanded{transition:initial}.monaco-editor .margin-view-overlays .codicon.alwaysShowFoldIcons,.monaco-editor .margin-view-overlays .codicon.codicon-folding-collapsed,.monaco-editor .margin-view-overlays .codicon.codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays:hover .codicon{opacity:1}.monaco-editor .inline-folded:after{color:gray;content:\"⋯\";cursor:pointer;display:inline;line-height:1em;margin:.1em .2em 0}.monaco-editor .folded-background{background-color:var(--vscode-editor-foldBackground)}.monaco-editor .cldr.codicon.codicon-folding-collapsed,.monaco-editor .cldr.codicon.codicon-folding-expanded,.monaco-editor .cldr.codicon.codicon-folding-manual-collapsed,.monaco-editor .cldr.codicon.codicon-folding-manual-expanded{color:var(--vscode-editorGutter-foldingControlForeground)!important}.monaco-editor .suggest-preview-additional-widget{white-space:nowrap}.monaco-editor .suggest-preview-additional-widget .content-spacer{color:transparent;white-space:pre}.monaco-editor .suggest-preview-additional-widget .button{cursor:pointer;display:inline-block;text-decoration:underline;text-underline-position:under}.monaco-editor .ghost-text-hidden{font-size:0;opacity:0}.monaco-editor .ghost-text-decoration,.monaco-editor .suggest-preview-text .ghost-text{font-style:italic}.monaco-editor .ghost-text-decoration,.monaco-editor .ghost-text-decoration-preview,.monaco-editor .suggest-preview-text .ghost-text{background-color:var(--vscode-editorGhostText-background);border:1px solid var(--vscode-editorGhostText-border);color:var(--vscode-editorGhostText-foreground)!important}.monaco-editor .snippet-placeholder{background-color:transparent;background-color:var(--vscode-editor-snippetTabstopHighlightBackground,transparent);min-width:2px;outline-color:transparent;outline-color:var(--vscode-editor-snippetTabstopHighlightBorder,transparent);outline-style:solid;outline-width:1px}.monaco-editor .finish-snippet-placeholder{background-color:transparent;background-color:var(--vscode-editor-snippetFinalTabstopHighlightBackground,transparent);outline-color:transparent;outline-color:var(--vscode-editor-snippetFinalTabstopHighlightBorder,transparent);outline-style:solid;outline-width:1px}.monaco-editor .suggest-widget{border-radius:3px;display:flex;flex-direction:column;width:430px;z-index:40}.monaco-editor .suggest-widget.message{align-items:center;flex-direction:row}.monaco-editor .suggest-details,.monaco-editor .suggest-widget{background-color:var(--vscode-editorSuggestWidget-background);border-color:var(--vscode-editorSuggestWidget-border);border-style:solid;border-width:1px;flex:0 1 auto;width:100%}.monaco-editor.hc-black .suggest-details,.monaco-editor.hc-black .suggest-widget,.monaco-editor.hc-light .suggest-details,.monaco-editor.hc-light .suggest-widget{border-width:2px}.monaco-editor .suggest-widget .suggest-status-bar{border-top:1px solid var(--vscode-editorSuggestWidget-border);box-sizing:border-box;display:none;flex-flow:row nowrap;font-size:80%;justify-content:space-between;overflow:hidden;padding:0 4px;width:100%}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar{display:flex}.monaco-editor .suggest-widget .suggest-status-bar .left{padding-right:8px}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-label{color:var(--vscode-editorSuggestWidgetStatus-foreground)}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label{margin-right:0}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label:after{content:\", \";margin-right:.3em}.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore,.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget.with-status-bar:not(.docs-side) .monaco-list .monaco-list-row:hover>.contents>.main>.right.can-expand-details>.details-label{width:100%}.monaco-editor .suggest-widget>.message{padding-left:22px}.monaco-editor .suggest-widget>.tree{height:100%;width:100%}.monaco-editor .suggest-widget .monaco-list{-moz-user-select:none;user-select:none;-webkit-user-select:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row{background-position:2px 2px;background-repeat:no-repeat;-mox-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:flex;padding-right:10px;touch-action:none;white-space:nowrap}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused{color:var(--vscode-editorSuggestWidget-selectedForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused .codicon{color:var(--vscode-editorSuggestWidget-selectedIconForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents{flex:1;height:100%;overflow:hidden;padding-left:2px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main{display:flex;justify-content:space-between;overflow:hidden;text-overflow:ellipsis;white-space:pre}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{display:flex}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.focused)>.contents>.main .monaco-icon-label{color:var(--vscode-editorSuggestWidget-foreground)}.monaco-editor .suggest-widget:not(.frozen) .monaco-highlighted-label .highlight{font-weight:700}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-highlightForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-focusHighlightForeground)}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:before{color:inherit;cursor:pointer;font-size:14px;opacity:1}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close{position:absolute;right:2px;top:6px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close:hover,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:hover{opacity:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{opacity:.7}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.signature-label{opacity:.6;overflow:hidden;text-overflow:ellipsis}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.qualifier-label{align-self:center;font-size:85%;line-height:normal;margin-left:12px;opacity:.4;overflow:hidden;text-overflow:ellipsis}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{font-size:85%;margin-left:1.1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label>.monaco-tokenized-source{display:inline}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row.focused:not(.string-label)>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget:not(.shows-details) .monaco-list .monaco-list-row.focused>.contents>.main>.right>.details-label{display:inline}.monaco-editor .suggest-widget:not(.docs-side) .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right.can-expand-details>.details-label{width:calc(100% - 26px)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left{flex-grow:1;flex-shrink:1;overflow:hidden}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.monaco-icon-label{flex-shrink:0}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.left>.monaco-icon-label{max-width:100%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.left>.monaco-icon-label{flex-shrink:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{flex-shrink:4;max-width:70%;overflow:hidden}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:inline-block;height:18px;position:absolute;right:10px;visibility:hidden;width:18px}.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:none!important}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore{display:inline-block}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right>.readMore{visibility:visible}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated{opacity:.66;text-decoration:unset}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated>.monaco-icon-label-container>.monaco-icon-name-container{text-decoration:line-through}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label:before{height:100%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon{background-position:50%;background-repeat:no-repeat;background-size:80%;display:block;height:16px;margin-left:2px;width:16px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.hide{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .suggest-icon{align-items:center;display:flex;margin-right:4px}.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .icon,.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .suggest-icon:before{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.customcolor .colorspan{border:.1em solid #000;display:inline-block;height:.7em;margin:0 0 0 .3em;width:.7em}.monaco-editor .suggest-details-container{z-index:41}.monaco-editor .suggest-details{color:var(--vscode-editorSuggestWidget-foreground);cursor:default;display:flex;flex-direction:column}.monaco-editor .suggest-details.focused{border-color:var(--vscode-focusBorder)}.monaco-editor .suggest-details a{color:var(--vscode-textLink-foreground)}.monaco-editor .suggest-details a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .suggest-details code{background-color:var(--vscode-textCodeBlock-background)}.monaco-editor .suggest-details.no-docs{display:none}.monaco-editor .suggest-details>.monaco-scrollable-element{flex:1}.monaco-editor .suggest-details>.monaco-scrollable-element>.body{box-sizing:border-box;height:100%;width:100%}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type{flex:2;margin:0 24px 0 0;opacity:.7;overflow:hidden;padding:4px 0 12px 5px;text-overflow:ellipsis;white-space:pre}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type.auto-wrap{white-space:normal;word-break:break-all}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs{margin:0;padding:4px 5px;white-space:pre-wrap}.monaco-editor .suggest-details.no-type>.monaco-scrollable-element>.body>.docs{margin-right:24px;overflow:hidden}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs{min-height:calc(1rem + 8px);padding:0;white-space:normal}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>span:not(:empty){padding:4px 5px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:first-child{margin-top:0}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:last-child{margin-bottom:0}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .monaco-tokenized-source{white-space:pre}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs .code{white-space:pre-wrap;word-wrap:break-word}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .codicon{vertical-align:sub}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>p:empty{display:none}.monaco-editor .suggest-details code{border-radius:3px;padding:0 .4em}.monaco-editor .suggest-details ol,.monaco-editor .suggest-details ul{padding-left:20px}.monaco-editor .suggest-details p code{font-family:var(--monaco-monospace-font)}.monaco-editor .goto-definition-link{color:var(--vscode-editorLink-activeForeground)!important;cursor:pointer;text-decoration:underline}.monaco-editor .peekview-widget .head .peekview-title .severity-icon{display:inline-block;margin-right:4px;vertical-align:text-top}.monaco-editor .marker-widget{text-overflow:ellipsis;white-space:nowrap}.monaco-editor .marker-widget>.stale{font-style:italic;opacity:.6}.monaco-editor .marker-widget .title{display:inline-block;padding-right:5px}.monaco-editor .marker-widget .descriptioncontainer{padding:8px 12px 0 20px;position:absolute;-moz-user-select:text;user-select:text;-webkit-user-select:text;white-space:pre}.monaco-editor .marker-widget .descriptioncontainer .message{display:flex;flex-direction:column}.monaco-editor .marker-widget .descriptioncontainer .message .details{padding-left:6px}.monaco-editor .marker-widget .descriptioncontainer .message .source,.monaco-editor .marker-widget .descriptioncontainer .message span.code{opacity:.6}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link{color:inherit;opacity:.6}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:before{content:\"(\"}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:after{content:\")\"}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link>span{border-bottom:1px solid transparent;color:var(--vscode-textLink-activeForeground);text-decoration:underline;text-underline-position:under}.monaco-editor .marker-widget .descriptioncontainer .filename{color:var(--vscode-textLink-activeForeground);cursor:pointer}.extension-editor .codicon.codicon-error,.extensions-viewlet>.extensions .codicon.codicon-error,.markers-panel .marker-icon .codicon.codicon-error,.markers-panel .marker-icon.error,.monaco-editor .zone-widget .codicon.codicon-error,.preferences-editor .codicon.codicon-error,.text-search-provider-messages .providerMessage .codicon.codicon-error{color:var(--vscode-problemsErrorIcon-foreground)}.extension-editor .codicon.codicon-warning,.extensions-viewlet>.extensions .codicon.codicon-warning,.markers-panel .marker-icon .codicon.codicon-warning,.markers-panel .marker-icon.warning,.monaco-editor .zone-widget .codicon.codicon-warning,.preferences-editor .codicon.codicon-warning,.text-search-provider-messages .providerMessage .codicon.codicon-warning{color:var(--vscode-problemsWarningIcon-foreground)}.extension-editor .codicon.codicon-info,.extensions-viewlet>.extensions .codicon.codicon-info,.markers-panel .marker-icon .codicon.codicon-info,.markers-panel .marker-icon.info,.monaco-editor .zone-widget .codicon.codicon-info,.preferences-editor .codicon.codicon-info,.text-search-provider-messages .providerMessage .codicon.codicon-info{color:var(--vscode-problemsInfoIcon-foreground)}.monaco-editor.vs .valueSetReplacement{outline:solid 2px var(--vscode-editorBracketMatch-border)}.monaco-editor .linked-editing-decoration{background-color:var(--vscode-editor-linkedEditingBackground);min-width:1px}.monaco-editor .detected-link,.monaco-editor .detected-link-active{text-decoration:underline;text-underline-position:under}.monaco-editor .detected-link-active{color:var(--vscode-editorLink-activeForeground)!important;cursor:pointer}.monaco-editor .focused .selectionHighlight{background-color:var(--vscode-editor-selectionHighlightBackground);border:1px solid var(--vscode-editor-selectionHighlightBorder);box-sizing:border-box}.monaco-editor.hc-black .focused .selectionHighlight,.monaco-editor.hc-light .focused .selectionHighlight{border-style:dotted}.monaco-editor .wordHighlight{background-color:var(--vscode-editor-wordHighlightBackground);border:1px solid var(--vscode-editor-wordHighlightBorder);box-sizing:border-box}.monaco-editor.hc-black .wordHighlight,.monaco-editor.hc-light .wordHighlight{border-style:dotted}.monaco-editor .wordHighlightStrong{background-color:var(--vscode-editor-wordHighlightStrongBackground);border:1px solid var(--vscode-editor-wordHighlightStrongBorder);box-sizing:border-box}.monaco-editor.hc-black .wordHighlightStrong,.monaco-editor.hc-light .wordHighlightStrong{border-style:dotted}.monaco-editor .wordHighlightText{background-color:var(--vscode-editor-wordHighlightTextBackground);border:1px solid var(--vscode-editor-wordHighlightTextBorder);box-sizing:border-box}.monaco-editor.hc-black .wordHighlightText,.monaco-editor.hc-light .wordHighlightText{border-style:dotted}.monaco-editor .inline-edit-remove{background-color:var(--vscode-editorGhostText-background);font-style:italic;text-decoration:line-through}.monaco-editor .inline-edit-remove.backgroundColoring{background-color:var(--vscode-diffEditor-removedLineBackground)}.monaco-editor .inline-edit-hidden{font-size:0;opacity:0}.monaco-editor .inline-edit-decoration,.monaco-editor .suggest-preview-text .inline-edit{font-style:italic}.monaco-editor .inline-completion-text-to-replace{text-decoration:underline;text-underline-position:under}.monaco-editor .inline-edit-decoration,.monaco-editor .inline-edit-decoration-preview,.monaco-editor .suggest-preview-text .inline-edit{background-color:var(--vscode-editorGhostText-background);border:1px solid var(--vscode-editorGhostText-border);color:var(--vscode-editorGhostText-foreground)!important}.monaco-editor .inlineEditHints.withBorder{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);color:var(--vscode-editorHoverWidget-foreground);z-index:39}.monaco-editor .inlineEditHints a,.monaco-editor .inlineEditHints a:hover{color:var(--vscode-foreground)}.monaco-editor .inlineEditHints .keybinding{display:flex;margin-left:4px;opacity:.6}.monaco-editor .inlineEditHints .keybinding .monaco-keybinding-key{font-size:8px;padding:2px 3px}.monaco-editor .inlineEditStatusBarItemLabel{margin-right:2px}.monaco-editor .parameter-hints-widget{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);color:var(--vscode-editorHoverWidget-foreground);cursor:default;display:flex;flex-direction:column;line-height:1.5em;z-index:39}.hc-black .monaco-editor .parameter-hints-widget,.hc-light .monaco-editor .parameter-hints-widget{border-width:2px}.monaco-editor .parameter-hints-widget>.phwrapper{display:flex;flex-direction:row;max-width:440px}.monaco-editor .parameter-hints-widget.multiple{min-height:3.3em;padding:0}.monaco-editor .parameter-hints-widget.multiple .body:before{border-left:1px solid var(--vscode-editorHoverWidget-border);content:\"\";display:block;height:100%;opacity:.5;position:absolute}.monaco-editor .parameter-hints-widget p,.monaco-editor .parameter-hints-widget ul{margin:8px 0}.monaco-editor .parameter-hints-widget .body,.monaco-editor .parameter-hints-widget .monaco-scrollable-element{display:flex;flex:1;flex-direction:column;min-height:100%}.monaco-editor .parameter-hints-widget .signature{padding:4px 5px;position:relative}.monaco-editor .parameter-hints-widget .signature.has-docs:after{border-bottom:1px solid var(--vscode-editorHoverWidget-border);content:\"\";display:block;left:0;opacity:.5;padding-top:4px;position:absolute;width:100%}.monaco-editor .parameter-hints-widget .docs{padding:0 10px 0 5px;white-space:pre-wrap}.monaco-editor .parameter-hints-widget .docs.empty{display:none}.monaco-editor .parameter-hints-widget .docs a{color:var(--vscode-textLink-foreground)}.monaco-editor .parameter-hints-widget .docs a:hover{color:var(--vscode-textLink-activeForeground);cursor:pointer}.monaco-editor .parameter-hints-widget .docs .markdown-docs{white-space:normal}.monaco-editor .parameter-hints-widget .docs code{background-color:var(--vscode-textCodeBlock-background);border-radius:3px;font-family:var(--monaco-monospace-font);padding:0 .4em}.monaco-editor .parameter-hints-widget .docs .code,.monaco-editor .parameter-hints-widget .docs .monaco-tokenized-source{white-space:pre-wrap}.monaco-editor .parameter-hints-widget .controls{align-items:center;display:none;flex-direction:column;justify-content:flex-end;min-width:22px}.monaco-editor .parameter-hints-widget.multiple .controls{display:flex;padding:0 2px}.monaco-editor .parameter-hints-widget.multiple .button{background-repeat:no-repeat;cursor:pointer;height:16px;width:16px}.monaco-editor .parameter-hints-widget .button.previous{bottom:24px}.monaco-editor .parameter-hints-widget .overloads{font-family:var(--monaco-monospace-font);height:12px;line-height:12px;text-align:center}.monaco-editor .parameter-hints-widget .signature .parameter.active{color:var(--vscode-editorHoverWidget-highlightForeground);font-weight:700}.monaco-editor .parameter-hints-widget .documentation-parameter>.parameter{font-weight:700;margin-right:.5em}.monaco-editor .rename-box{border-radius:4px;color:inherit;z-index:100}.monaco-editor .rename-box.preview{padding:4px 4px 0}.monaco-editor .rename-box .rename-input-with-button{border-radius:2px;padding:3px;width:calc(100% - 8px)}.monaco-editor .rename-box .rename-input{padding:0;width:calc(100% - 8px)}.monaco-editor .rename-box .rename-input:focus{outline:none}.monaco-editor .rename-box .rename-suggestions-button{align-items:center;background-color:transparent;border:none;border-radius:5px;cursor:pointer;display:flex;padding:3px}.monaco-editor .rename-box .rename-suggestions-button:hover{background-color:var(--vscode-toolbar-hoverBackground)}.monaco-editor .rename-box .rename-candidate-list-container .monaco-list-row{border-radius:2px}.monaco-editor .rename-box .rename-label{display:none;opacity:.8}.monaco-editor .rename-box.preview .rename-label{display:inherit}.monaco-editor .sticky-widget{overflow:hidden}.monaco-editor .sticky-widget-line-numbers{background-color:inherit;float:left}.monaco-editor .sticky-widget-lines-scrollable{background-color:inherit;display:inline-block;overflow:hidden;position:absolute;width:var(--vscode-editorStickyScroll-scrollableWidth)}.monaco-editor .sticky-widget-lines{background-color:inherit;position:absolute}.monaco-editor .sticky-line-content,.monaco-editor .sticky-line-number{background-color:inherit;color:var(--vscode-editorLineNumber-foreground);display:inline-block;position:absolute;white-space:nowrap}.monaco-editor .sticky-line-number .codicon-folding-collapsed,.monaco-editor .sticky-line-number .codicon-folding-expanded{float:right;transition:var(--vscode-editorStickyScroll-foldingOpacityTransition)}.monaco-editor .sticky-line-content{background-color:inherit;white-space:nowrap;width:var(--vscode-editorStickyScroll-scrollableWidth)}.monaco-editor .sticky-line-number-inner{display:inline-block;text-align:right}.monaco-editor .sticky-widget{border-bottom:1px solid var(--vscode-editorStickyScroll-border)}.monaco-editor .sticky-line-content:hover{background-color:var(--vscode-editorStickyScrollHover-background);cursor:pointer}.monaco-editor .sticky-widget{background-color:var(--vscode-editorStickyScroll-background);box-shadow:var(--vscode-editorStickyScroll-shadow) 0 3px 2px -2px;right:auto!important;width:100%;z-index:4}.monaco-editor .sticky-widget.peek{background-color:var(--vscode-peekViewEditorStickyScroll-background)}.monaco-editor .unicode-highlight{background-color:var(--vscode-editorUnicodeHighlight-background);border:1px solid var(--vscode-editorUnicodeHighlight-border);box-sizing:border-box}.editor-banner{background:var(--vscode-banner-background);box-sizing:border-box;cursor:default;display:flex;font-size:12px;height:26px;overflow:visible;width:100%}.editor-banner .icon-container{align-items:center;display:flex;flex-shrink:0;padding:0 6px 0 10px}.editor-banner .icon-container.custom-icon{background-position:50%;background-repeat:no-repeat;background-size:16px;margin:0 6px 0 10px;padding:0;width:16px}.editor-banner .message-container{align-items:center;display:flex;line-height:26px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-banner .message-container p{margin-block-end:0;margin-block-start:0}.editor-banner .message-actions-container{flex-grow:1;flex-shrink:0;line-height:26px;margin:0 4px}.editor-banner .message-actions-container a.monaco-button{margin:2px 8px;padding:0 12px;width:inherit}.editor-banner .message-actions-container a{margin-left:12px;padding:3px;text-decoration:underline}.editor-banner .action-container{padding:0 10px 0 6px}.editor-banner{background-color:var(--vscode-banner-background)}.editor-banner,.editor-banner .action-container .codicon,.editor-banner .message-actions-container .monaco-link{color:var(--vscode-banner-foreground)}.editor-banner .icon-container .codicon{color:var(--vscode-banner-iconForeground)}.monaco-link{color:var(--vscode-textLink-foreground)}.monaco-link:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .iPadShowKeyboard{background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MyIgaGVpZ2h0PSIzNiIgZmlsbD0ibm9uZSIgdmlld0JveD0iMCAwIDUzIDM2Ij48ZyBjbGlwLXBhdGg9InVybCgjYSkiPjxwYXRoIGZpbGw9IiM0MjQyNDIiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTQ4LjAzNiA0LjAxSDQuMDA4VjMyLjAzaDQ0LjAyOHpNNC4wMDguMDA4QTQuMDAzIDQuMDAzIDAgMCAwIC4wMDUgNC4wMVYzMi4wM2E0LjAwMyA0LjAwMyAwIDAgMCA0LjAwMyA0LjAwMmg0NC4wMjhhNC4wMDMgNC4wMDMgMCAwIDAgNC4wMDMtNC4wMDJWNC4wMUE0LjAwMyA0LjAwMyAwIDAgMCA0OC4wMzYuMDA4ek04LjAxIDguMDEzaDQuMDAzdjQuMDAzSDguMDF6bTEyLjAwOCAwaC00LjAwMnY0LjAwM2g0LjAwMnptNC4wMDMgMGg0LjAwMnY0LjAwM2gtNC4wMDJ6bTEyLjAwOCAwaC00LjAwM3Y0LjAwM2g0LjAwM3ptNC4wMDIgMGg0LjAwM3Y0LjAwM0g0MC4wM3ptLTI0LjAxNSA4LjAwNUg4LjAxdjQuMDAzaDguMDA2em00LjAwMiAwaDQuMDAzdjQuMDAzaC00LjAwM3ptMTIuMDA4IDBoLTQuMDAzdjQuMDAzaDQuMDAzem0xMi4wMDggMHY0LjAwM2gtOC4wMDV2LTQuMDAzem0tMzIuMDIxIDguMDA1SDguMDF2NC4wMDNoNC4wMDN6bTQuMDAzIDBoMjAuMDEzdjQuMDAzSDE2LjAxNnptMjguMDE4IDBINDAuMDN2NC4wMDNoNC4wMDN6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDUzdjM2SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+) 50% no-repeat;border:4px solid #f6f6f6;border-radius:4px;height:36px;margin:0;min-height:0;min-width:0;overflow:hidden;padding:0;position:absolute;resize:none;width:58px}.monaco-editor.vs-dark .iPadShowKeyboard{background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MyIgaGVpZ2h0PSIzNiIgZmlsbD0ibm9uZSIgdmlld0JveD0iMCAwIDUzIDM2Ij48ZyBjbGlwLXBhdGg9InVybCgjYSkiPjxwYXRoIGZpbGw9IiNjNWM1YzUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTQ4LjAzNiA0LjAxSDQuMDA4VjMyLjAzaDQ0LjAyOHpNNC4wMDguMDA4QTQuMDAzIDQuMDAzIDAgMCAwIC4wMDUgNC4wMVYzMi4wM2E0LjAwMyA0LjAwMyAwIDAgMCA0LjAwMyA0LjAwMmg0NC4wMjhhNC4wMDMgNC4wMDMgMCAwIDAgNC4wMDMtNC4wMDJWNC4wMUE0LjAwMyA0LjAwMyAwIDAgMCA0OC4wMzYuMDA4ek04LjAxIDguMDEzaDQuMDAzdjQuMDAzSDguMDF6bTEyLjAwOCAwaC00LjAwMnY0LjAwM2g0LjAwMnptNC4wMDMgMGg0LjAwMnY0LjAwM2gtNC4wMDJ6bTEyLjAwOCAwaC00LjAwM3Y0LjAwM2g0LjAwM3ptNC4wMDIgMGg0LjAwM3Y0LjAwM0g0MC4wM3ptLTI0LjAxNSA4LjAwNUg4LjAxdjQuMDAzaDguMDA2em00LjAwMiAwaDQuMDAzdjQuMDAzaC00LjAwM3ptMTIuMDA4IDBoLTQuMDAzdjQuMDAzaDQuMDAzem0xMi4wMDggMHY0LjAwM2gtOC4wMDV2LTQuMDAzem0tMzIuMDIxIDguMDA1SDguMDF2NC4wMDNoNC4wMDN6bTQuMDAzIDBoMjAuMDEzdjQuMDAzSDE2LjAxNnptMjguMDE4IDBINDAuMDN2NC4wMDNoNC4wMDN6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDUzdjM2SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+) 50% no-repeat;border:4px solid #252526}.monaco-editor .tokens-inspect-widget{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);color:var(--vscode-editorHoverWidget-foreground);padding:10px;-moz-user-select:text;user-select:text;-webkit-user-select:text;z-index:50}.monaco-editor.hc-black .tokens-inspect-widget,.monaco-editor.hc-light .tokens-inspect-widget{border-width:2px}.monaco-editor .tokens-inspect-widget .tokens-inspect-separator{background-color:var(--vscode-editorHoverWidget-border);border:0;height:1px}.monaco-editor .tokens-inspect-widget .tm-token{font-family:var(--monaco-monospace-font)}.monaco-editor .tokens-inspect-widget .tm-token-length{float:right;font-size:60%;font-weight:400}.monaco-editor .tokens-inspect-widget .tm-metadata-table{width:100%}.monaco-editor .tokens-inspect-widget .tm-metadata-value{font-family:var(--monaco-monospace-font);text-align:right}.monaco-editor .tokens-inspect-widget .tm-token-type{font-family:var(--monaco-monospace-font)}.icon[data-v-e8d572f6]{display:inline-block;vertical-align:middle}.form-select[data-v-931b50ef]{background-image:none}.logo-wrapper[data-v-d4934b6a]{animation:float-d4934b6a 4s ease-in-out infinite}@keyframes float-d4934b6a{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes pulse-slow-d4934b6a{0%,to{opacity:.6;transform:scale(1)}50%{opacity:.3;transform:scale(1.1)}}@keyframes pulse-slower-d4934b6a{0%,to{opacity:.4;transform:scale(1)}50%{opacity:.1;transform:scale(1.2)}}.animate-pulse-slow[data-v-d4934b6a]{animation:pulse-slow-d4934b6a 3s ease-in-out infinite}.animate-pulse-slower[data-v-d4934b6a]{animation:pulse-slower-d4934b6a 4s ease-in-out infinite}@keyframes shake-d4934b6a{0%,to{transform:translate(0)}20%{transform:translate(-10px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(10px)}}.animate-shake[data-v-d4934b6a]{animation:shake-d4934b6a .5s cubic-bezier(.36,.07,.19,.97) both}@keyframes confetti-fall-d4934b6a{0%{opacity:1;transform:translateY(-100vh) rotate(0)}to{opacity:0;transform:translateY(100vh) rotate(2turn)}}.confetti[data-v-d4934b6a]{animation:confetti-fall-d4934b6a 3s linear forwards;border-radius:2px;position:absolute;top:-20px}.fade-slide-enter-active[data-v-d4934b6a],.fade-slide-leave-active[data-v-d4934b6a]{transition:all .4s ease}.fade-slide-enter-from[data-v-d4934b6a]{opacity:0;transform:translateY(10px)}.fade-slide-leave-to[data-v-d4934b6a]{opacity:0;transform:translateY(-10px)}@keyframes bounce-custom-d4934b6a{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.animate-bounce-custom-1[data-v-d4934b6a]{animation:bounce-custom-d4934b6a .8s ease-in-out infinite}.animate-bounce-custom-2[data-v-d4934b6a]{animation:bounce-custom-d4934b6a .8s ease-in-out .15s infinite}.animate-bounce-custom-3[data-v-d4934b6a]{animation:bounce-custom-d4934b6a .8s ease-in-out .3s infinite}@keyframes fade-d4934b6a{0%,to{opacity:.7}50%{opacity:1}}.animate-fade[data-v-d4934b6a]{animation:fade-d4934b6a 2s ease-in-out infinite}@keyframes progress-indefinite-d4934b6a{0%{transform:translate(-100%)}50%{transform:translate(-10%)}to{transform:translate(100%)}}.animate-progress-indefinite[data-v-d4934b6a]{animation:progress-indefinite-d4934b6a 2s cubic-bezier(.4,0,.2,1) infinite;width:100%}.logo-wrapper[data-v-9d7d34a0]{animation:float-9d7d34a0 4s ease-in-out infinite}@keyframes float-9d7d34a0{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes pulse-slow-9d7d34a0{0%,to{opacity:.6;transform:scale(1)}50%{opacity:.3;transform:scale(1.1)}}@keyframes pulse-slower-9d7d34a0{0%,to{opacity:.4;transform:scale(1)}50%{opacity:.1;transform:scale(1.2)}}.animate-pulse-slow[data-v-9d7d34a0]{animation:pulse-slow-9d7d34a0 3s ease-in-out infinite}.animate-pulse-slower[data-v-9d7d34a0]{animation:pulse-slower-9d7d34a0 4s ease-in-out infinite}@keyframes bounce-custom-9d7d34a0{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.animate-bounce-custom-1[data-v-9d7d34a0]{animation:bounce-custom-9d7d34a0 .8s ease-in-out infinite}.animate-bounce-custom-2[data-v-9d7d34a0]{animation:bounce-custom-9d7d34a0 .8s ease-in-out .15s infinite}.animate-bounce-custom-3[data-v-9d7d34a0]{animation:bounce-custom-9d7d34a0 .8s ease-in-out .3s infinite}@keyframes fade-9d7d34a0{0%,to{opacity:.7}50%{opacity:1}}.animate-fade[data-v-9d7d34a0]{animation:fade-9d7d34a0 2s ease-in-out infinite}@keyframes progress-indefinite-9d7d34a0{0%{transform:translate(-100%)}50%{transform:translate(-10%)}to{transform:translate(100%)}}.animate-progress-indefinite[data-v-9d7d34a0]{animation:progress-indefinite-9d7d34a0 2s cubic-bezier(.4,0,.2,1) infinite;width:100%}\n"
  },
  {
    "path": "jesse/static/_nuxt/error-404.DZraUJun.css",
    "content": ".spotlight[data-v-00b6b518]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);bottom:-30vh;filter:blur(20vh);height:40vh}.gradient-border[data-v-00b6b518]{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:.5rem;position:relative}@media (prefers-color-scheme:light){.gradient-border[data-v-00b6b518]{background-color:#ffffff4d}.gradient-border[data-v-00b6b518]:before{background:linear-gradient(90deg,#e2e2e2,#e2e2e2 25%,#00dc82,#36e4da 75%,#0047e1)}}@media (prefers-color-scheme:dark){.gradient-border[data-v-00b6b518]{background-color:#1414144d}.gradient-border[data-v-00b6b518]:before{background:linear-gradient(90deg,#303030,#303030 25%,#00dc82,#36e4da 75%,#0047e1)}}.gradient-border[data-v-00b6b518]:before{background-size:400% auto;border-radius:.5rem;bottom:0;content:\"\";left:0;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.5;padding:2px;position:absolute;right:0;top:0;transition:background-position .3s ease-in-out,opacity .2s ease-in-out;width:100%}.gradient-border[data-v-00b6b518]:hover:before{background-position:-50% 0;opacity:1}.fixed[data-v-00b6b518]{position:fixed}.left-0[data-v-00b6b518]{left:0}.right-0[data-v-00b6b518]{right:0}.z-10[data-v-00b6b518]{z-index:10}.z-20[data-v-00b6b518]{z-index:20}.grid[data-v-00b6b518]{display:grid}.mb-16[data-v-00b6b518]{margin-bottom:4rem}.mb-8[data-v-00b6b518]{margin-bottom:2rem}.max-w-520px[data-v-00b6b518]{max-width:520px}.min-h-screen[data-v-00b6b518]{min-height:100vh}.w-full[data-v-00b6b518]{width:100%}.flex[data-v-00b6b518]{display:flex}.cursor-pointer[data-v-00b6b518]{cursor:pointer}.place-content-center[data-v-00b6b518]{place-content:center}.items-center[data-v-00b6b518]{align-items:center}.justify-center[data-v-00b6b518]{justify-content:center}.overflow-hidden[data-v-00b6b518]{overflow:hidden}.bg-white[data-v-00b6b518]{--un-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-4[data-v-00b6b518]{padding-left:1rem;padding-right:1rem}.px-8[data-v-00b6b518]{padding-left:2rem;padding-right:2rem}.py-2[data-v-00b6b518]{padding-bottom:.5rem;padding-top:.5rem}.text-center[data-v-00b6b518]{text-align:center}.text-8xl[data-v-00b6b518]{font-size:6rem;line-height:1}.text-xl[data-v-00b6b518]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-00b6b518]{--un-text-opacity:1;color:#000;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-00b6b518]{font-weight:300}.font-medium[data-v-00b6b518]{font-weight:500}.leading-tight[data-v-00b6b518]{line-height:1.25}.font-sans[data-v-00b6b518]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.antialiased[data-v-00b6b518]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\\:bg-black[data-v-00b6b518]{--un-bg-opacity:1;background-color:#000;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\\:text-white[data-v-00b6b518]{--un-text-opacity:1;color:#fff;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\\:px-0[data-v-00b6b518]{padding-left:0;padding-right:0}.sm\\:px-6[data-v-00b6b518]{padding-left:1.5rem;padding-right:1.5rem}.sm\\:py-3[data-v-00b6b518]{padding-bottom:.75rem;padding-top:.75rem}.sm\\:text-4xl[data-v-00b6b518]{font-size:2.25rem;line-height:2.5rem}.sm\\:text-xl[data-v-00b6b518]{font-size:1.25rem;line-height:1.75rem}}\n"
  },
  {
    "path": "jesse/static/_nuxt/error-500.XmAVHPl_.css",
    "content": ".spotlight[data-v-f7ad9679]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);filter:blur(20vh)}.fixed[data-v-f7ad9679]{position:fixed}.-bottom-1\\/2[data-v-f7ad9679]{bottom:-50%}.left-0[data-v-f7ad9679]{left:0}.right-0[data-v-f7ad9679]{right:0}.grid[data-v-f7ad9679]{display:grid}.mb-16[data-v-f7ad9679]{margin-bottom:4rem}.mb-8[data-v-f7ad9679]{margin-bottom:2rem}.h-1\\/2[data-v-f7ad9679]{height:50%}.max-w-520px[data-v-f7ad9679]{max-width:520px}.min-h-screen[data-v-f7ad9679]{min-height:100vh}.place-content-center[data-v-f7ad9679]{place-content:center}.overflow-hidden[data-v-f7ad9679]{overflow:hidden}.bg-white[data-v-f7ad9679]{--un-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-8[data-v-f7ad9679]{padding-left:2rem;padding-right:2rem}.text-center[data-v-f7ad9679]{text-align:center}.text-8xl[data-v-f7ad9679]{font-size:6rem;line-height:1}.text-xl[data-v-f7ad9679]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-f7ad9679]{--un-text-opacity:1;color:#000;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-f7ad9679]{font-weight:300}.font-medium[data-v-f7ad9679]{font-weight:500}.leading-tight[data-v-f7ad9679]{line-height:1.25}.font-sans[data-v-f7ad9679]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.antialiased[data-v-f7ad9679]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\\:bg-black[data-v-f7ad9679]{--un-bg-opacity:1;background-color:#000;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\\:text-white[data-v-f7ad9679]{--un-text-opacity:1;color:#fff;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\\:px-0[data-v-f7ad9679]{padding-left:0;padding-right:0}.sm\\:text-4xl[data-v-f7ad9679]{font-size:2.25rem;line-height:2.5rem}}\n"
  },
  {
    "path": "jesse/static/_nuxt/fje9CFhw.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Batch File\",\"injections\":{\"L:meta.block.repeat.batchfile\":{\"patterns\":[{\"include\":\"#repeatParameter\"}]}},\"name\":\"bat\",\"patterns\":[{\"include\":\"#commands\"},{\"include\":\"#comments\"},{\"include\":\"#constants\"},{\"include\":\"#controls\"},{\"include\":\"#escaped_characters\"},{\"include\":\"#labels\"},{\"include\":\"#numbers\"},{\"include\":\"#operators\"},{\"include\":\"#parens\"},{\"include\":\"#strings\"},{\"include\":\"#variables\"}],\"repository\":{\"command_set\":{\"patterns\":[{\"begin\":\"(?<=^|[\\\\\\\\s@])(?i:SET)(?=$|\\\\\\\\s)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.command.batchfile\"}},\"end\":\"(?=$\\\\\\\\n|[&|><)])\",\"patterns\":[{\"include\":\"#command_set_inside\"}]}]},\"command_set_group\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.group.begin.batchfile\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.group.end.batchfile\"}},\"patterns\":[{\"include\":\"#command_set_inside_arithmetic\"}]}]},\"command_set_inside\":{\"patterns\":[{\"include\":\"#escaped_characters\"},{\"include\":\"#variables\"},{\"include\":\"#numbers\"},{\"include\":\"#parens\"},{\"include\":\"#command_set_strings\"},{\"include\":\"#strings\"},{\"begin\":\"([^ ][^=]*)(=)\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.readwrite.batchfile\"},\"2\":{\"name\":\"keyword.operator.assignment.batchfile\"}},\"end\":\"(?=$\\\\\\\\n|[&|><)])\",\"patterns\":[{\"include\":\"#escaped_characters\"},{\"include\":\"#variables\"},{\"include\":\"#numbers\"},{\"include\":\"#parens\"},{\"include\":\"#strings\"}]},{\"begin\":\"\\\\\\\\s+/[aA]\\\\\\\\s+\",\"end\":\"(?=$\\\\\\\\n|[&|><)])\",\"name\":\"meta.expression.set.batchfile\",\"patterns\":[{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.batchfile\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.batchfile\"}},\"name\":\"string.quoted.double.batchfile\",\"patterns\":[{\"include\":\"#command_set_inside_arithmetic\"},{\"include\":\"#command_set_group\"},{\"include\":\"#variables\"}]},{\"include\":\"#command_set_inside_arithmetic\"},{\"include\":\"#command_set_group\"}]},{\"begin\":\"\\\\\\\\s+/[pP]\\\\\\\\s+\",\"end\":\"(?=$\\\\\\\\n|[&|><)])\",\"patterns\":[{\"include\":\"#command_set_strings\"},{\"begin\":\"([^ ][^=]*)(=)\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.readwrite.batchfile\"},\"2\":{\"name\":\"keyword.operator.assignment.batchfile\"}},\"end\":\"(?=$\\\\\\\\n|[&|><)])\",\"name\":\"meta.prompt.set.batchfile\",\"patterns\":[{\"include\":\"#strings\"}]}]}]},\"command_set_inside_arithmetic\":{\"patterns\":[{\"include\":\"#command_set_operators\"},{\"include\":\"#numbers\"},{\"match\":\",\",\"name\":\"punctuation.separator.batchfile\"}]},\"command_set_operators\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.other.readwrite.batchfile\"},\"2\":{\"name\":\"keyword.operator.assignment.augmented.batchfile\"}},\"match\":\"([^ ]*)(\\\\\\\\+\\\\\\\\=|\\\\\\\\-\\\\\\\\=|\\\\\\\\*\\\\\\\\=|\\\\\\\\/\\\\\\\\=|%%\\\\\\\\=|&\\\\\\\\=|\\\\\\\\|\\\\\\\\=|\\\\\\\\^\\\\\\\\=|<<\\\\\\\\=|>>\\\\\\\\=)\"},{\"match\":\"\\\\\\\\+|\\\\\\\\-|/|\\\\\\\\*|%%|\\\\\\\\||&|\\\\\\\\^|<<|>>|~\",\"name\":\"keyword.operator.arithmetic.batchfile\"},{\"match\":\"!\",\"name\":\"keyword.operator.logical.batchfile\"},{\"captures\":{\"1\":{\"name\":\"variable.other.readwrite.batchfile\"},\"2\":{\"name\":\"keyword.operator.assignment.batchfile\"}},\"match\":\"([^ =]*)(=)\"}]},\"command_set_strings\":{\"patterns\":[{\"begin\":\"(\\\\\")\\\\\\\\s*([^ ][^=]*)(=)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.batchfile\"},\"2\":{\"name\":\"variable.other.readwrite.batchfile\"},\"3\":{\"name\":\"keyword.operator.assignment.batchfile\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.batchfile\"}},\"name\":\"string.quoted.double.batchfile\",\"patterns\":[{\"include\":\"#variables\"},{\"include\":\"#numbers\"},{\"include\":\"#escaped_characters\"}]}]},\"commands\":{\"patterns\":[{\"match\":\"(?<=^|[\\\\\\\\s@])(?i:adprep|append|arp|assoc|at|atmadm|attrib|auditpol|autochk|autoconv|autofmt|bcdboot|bcdedit|bdehdcfg|bitsadmin|bootcfg|brea|cacls|cd|certreq|certutil|change|chcp|chdir|chglogon|chgport|chgusr|chkdsk|chkntfs|choice|cipher|clip|cls|clscluadmin|cluster|cmd|cmdkey|cmstp|color|comp|compact|convert|copy|cprofile|cscript|csvde|date|dcdiag|dcgpofix|dcpromo|defra|del|dfscmd|dfsdiag|dfsrmig|diantz|dir|dirquota|diskcomp|diskcopy|diskpart|diskperf|diskraid|diskshadow|dispdiag|doin|dnscmd|doskey|driverquery|dsacls|dsadd|dsamain|dsdbutil|dsget|dsmgmt|dsmod|dsmove|dsquery|dsrm|edit|endlocal|eraseesentutl|eventcreate|eventquery|eventtriggers|evntcmd|expand|extract|fc|filescrn|find|findstr|finger|flattemp|fonde|forfiles|format|freedisk|fsutil|ftp|ftype|fveupdate|getmac|gettype|gpfixup|gpresult|gpupdate|graftabl|hashgen|hep|helpctr|hostname|icacls|iisreset|inuse|ipconfig|ipxroute|irftp|ismserv|jetpack|klist|ksetup|ktmutil|ktpass|label|ldifd|ldp|lodctr|logman|logoff|lpq|lpr|macfile|makecab|manage-bde|mapadmin|md|mkdir|mklink|mmc|mode|more|mount|mountvol|move|mqbup|mqsvc|mqtgsvc|msdt|msg|msiexec|msinfo32|mstsc|nbtstat|net computer|net group|net localgroup|net print|net session|net share|net start|net stop|net use|net user|net view|net|netcfg|netdiag|netdom|netsh|netstat|nfsadmin|nfsshare|nfsstat|nlb|nlbmgr|nltest|nslookup|ntackup|ntcmdprompt|ntdsutil|ntfrsutl|openfiles|pagefileconfig|path|pathping|pause|pbadmin|pentnt|perfmon|ping|pnpunatten|pnputil|popd|powercfg|powershell|powershell_ise|print|prncnfg|prndrvr|prnjobs|prnmngr|prnport|prnqctl|prompt|pubprn|pushd|pushprinterconnections|pwlauncher|qappsrv|qprocess|query|quser|qwinsta|rasdial|rcp|rd|rdpsign|regentc|recover|redircmp|redirusr|reg|regini|regsvr32|relog|ren|rename|rendom|repadmin|repair-bde|replace|reset session|rxec|risetup|rmdir|robocopy|route|rpcinfo|rpcping|rsh|runas|rundll32|rwinsta|sc|schtasks|scp|scwcmd|secedit|serverceipoptin|servrmanagercmd|serverweroptin|setspn|setx|sfc|sftp|shadow|shift|showmount|shutdown|sort|ssh|ssh-add|ssh-agent|ssh-keygen|ssh-keyscan|start|storrept|subst|sxstrace|ysocmgr|systeminfo|takeown|tapicfg|taskkill|tasklist|tcmsetup|telnet|tftp|time|timeout|title|tlntadmn|tpmvscmgr|tpmvscmgr|tacerpt|tracert|tree|tscon|tsdiscon|tsecimp|tskill|tsprof|type|typeperf|tzutil|uddiconfig|umount|unlodctr|ver|verifier|verif|vol|vssadmin|w32tm|waitfor|wbadmin|wdsutil|wecutil|wevtutil|where|whoami|winnt|winnt32|winpop|winrm|winrs|winsat|wlbs|wmic|wscript|wsl|xcopy)(?=$|\\\\\\\\s)\",\"name\":\"keyword.command.batchfile\"},{\"begin\":\"(?i)(?<=^|[\\\\\\\\s@])(echo)(?:(?=$|\\\\\\\\.|:)|\\\\\\\\s+(?:(on|off)(?=\\\\\\\\s*$))?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.command.batchfile\"},\"2\":{\"name\":\"keyword.other.special-method.batchfile\"}},\"end\":\"(?=$\\\\\\\\n|[&|><)])\",\"patterns\":[{\"include\":\"#escaped_characters\"},{\"include\":\"#variables\"},{\"include\":\"#numbers\"},{\"include\":\"#strings\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.command.batchfile\"},\"2\":{\"name\":\"keyword.other.special-method.batchfile\"}},\"match\":\"(?i)(?<=^|[\\\\\\\\s@])(setlocal)(?:\\\\\\\\s*$|\\\\\\\\s+(EnableExtensions|DisableExtensions|EnableDelayedExpansion|DisableDelayedExpansion)(?=\\\\\\\\s*$))\"},{\"include\":\"#command_set\"}]},\"comments\":{\"patterns\":[{\"begin\":\"(?:^|(&))\\\\\\\\s*(?=((?::[+=,;: ])))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.conditional.batchfile\"}},\"end\":\"\\\\\\\\n\",\"patterns\":[{\"begin\":\"((?::[+=,;: ]))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.batchfile\"}},\"end\":\"(?=\\\\\\\\n)\",\"name\":\"comment.line.colon.batchfile\"}]},{\"begin\":\"(?<=^|[\\\\\\\\s@])(?i)(REM)(\\\\\\\\.)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.command.rem.batchfile\"},\"2\":{\"name\":\"punctuation.separator.batchfile\"}},\"end\":\"(?=$\\\\\\\\n|[&|><)])\",\"name\":\"comment.line.rem.batchfile\"},{\"begin\":\"(?<=^|[\\\\\\\\s@])(?i:rem)\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.command.rem.batchfile\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.rem.batchfile\",\"patterns\":[{\"match\":\"[><|]\",\"name\":\"invalid.illegal.unexpected-character.batchfile\"}]}]},\"constants\":{\"patterns\":[{\"match\":\"\\\\\\\\b(?i:NUL)\\\\\\\\b\",\"name\":\"constant.language.batchfile\"}]},\"controls\":{\"patterns\":[{\"match\":\"(?i)(?<=^|\\\\\\\\s)(?:call|exit(?=$|\\\\\\\\s)|goto(?=$|\\\\\\\\s|:))\",\"name\":\"keyword.control.statement.batchfile\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.conditional.batchfile\"},\"2\":{\"name\":\"keyword.operator.logical.batchfile\"},\"3\":{\"name\":\"keyword.other.special-method.batchfile\"}},\"match\":\"(?<=^|\\\\\\\\s)(?i)(if)\\\\\\\\s+(?:(not)\\\\\\\\s+)?(exist|defined|errorlevel|cmdextversion)(?=\\\\\\\\s)\"},{\"match\":\"(?<=^|\\\\\\\\s)(?i)(?:if|else)(?=$|\\\\\\\\s)\",\"name\":\"keyword.control.conditional.batchfile\"},{\"begin\":\"(?<=^|[\\\\\\\\s(&^])(?i)for(?=\\\\\\\\s)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.repeat.batchfile\"}},\"end\":\"\\\\\\\\n\",\"name\":\"meta.block.repeat.batchfile\",\"patterns\":[{\"begin\":\"(?<=[\\\\\\\\s^])(?i)in(?=\\\\\\\\s)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.repeat.in.batchfile\"}},\"end\":\"(?<=[\\\\\\\\s)^])(?i)do(?=\\\\\\\\s)|\\\\\\\\n\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.repeat.do.batchfile\"}},\"patterns\":[{\"include\":\"$self\"}]},{\"include\":\"$self\"}]}]},\"escaped_characters\":{\"patterns\":[{\"match\":\"%%|\\\\\\\\^\\\\\\\\^!|\\\\\\\\^(?=.)|\\\\\\\\^\\\\\\\\n\",\"name\":\"constant.character.escape.batchfile\"}]},\"labels\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.batchfile\"},\"2\":{\"name\":\"keyword.other.special-method.batchfile\"}},\"match\":\"(?i)(?:^\\\\\\\\s*|(?<=call|goto)\\\\\\\\s*)(:)([^+=,;:\\\\\\\\s]\\\\\\\\S*)\"}]},\"numbers\":{\"patterns\":[{\"match\":\"(?<=^|\\\\\\\\s|=)(0[xX][0-9A-Fa-f]*|[+-]?\\\\\\\\d+)(?=$|\\\\\\\\s|<|>)\",\"name\":\"constant.numeric.batchfile\"}]},\"operators\":{\"patterns\":[{\"match\":\"@(?=\\\\\\\\S)\",\"name\":\"keyword.operator.at.batchfile\"},{\"match\":\"(?<=\\\\\\\\s)(?i:EQU|NEQ|LSS|LEQ|GTR|GEQ)(?=\\\\\\\\s)|==\",\"name\":\"keyword.operator.comparison.batchfile\"},{\"match\":\"(?<=\\\\\\\\s)(?i)(NOT)(?=\\\\\\\\s)\",\"name\":\"keyword.operator.logical.batchfile\"},{\"match\":\"(?<!\\\\\\\\^)&&?|\\\\\\\\|\\\\\\\\|\",\"name\":\"keyword.operator.conditional.batchfile\"},{\"match\":\"(?<!\\\\\\\\^)\\\\\\\\|\",\"name\":\"keyword.operator.pipe.batchfile\"},{\"match\":\"<&?|>[&>]?\",\"name\":\"keyword.operator.redirection.batchfile\"}]},\"parens\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.group.begin.batchfile\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.group.end.batchfile\"}},\"name\":\"meta.group.batchfile\",\"patterns\":[{\"match\":\",|;\",\"name\":\"punctuation.separator.batchfile\"},{\"include\":\"$self\"}]}]},\"repeatParameter\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.batchfile\"}},\"match\":\"(%%)(?:(?i:~[fdpnxsatz]*(?:\\\\\\\\$PATH:)?)?[a-zA-Z])\",\"name\":\"variable.parameter.repeat.batchfile\"}]},\"strings\":{\"patterns\":[{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.batchfile\"}},\"end\":\"(\\\\\")|(\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.batchfile\"},\"2\":{\"name\":\"invalid.illegal.newline.batchfile\"}},\"name\":\"string.quoted.double.batchfile\",\"patterns\":[{\"match\":\"%%\",\"name\":\"constant.character.escape.batchfile\"},{\"include\":\"#variables\"}]}]},\"variable\":{\"patterns\":[{\"begin\":\"%(?=[^%]+%)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.variable.begin.batchfile\"}},\"end\":\"(%)|\\\\\\\\n\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.variable.end.batchfile\"}},\"name\":\"variable.other.readwrite.batchfile\",\"patterns\":[{\"begin\":\":~\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.batchfile\"}},\"end\":\"(?=%|\\\\\\\\n)\",\"name\":\"meta.variable.substring.batchfile\",\"patterns\":[{\"include\":\"#variable_substring\"}]},{\"begin\":\":\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.batchfile\"}},\"end\":\"(?=%|\\\\\\\\n)\",\"name\":\"meta.variable.substitution.batchfile\",\"patterns\":[{\"include\":\"#variable_replace\"},{\"begin\":\"=\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.batchfile\"}},\"end\":\"(?=%|\\\\\\\\n)\",\"patterns\":[{\"include\":\"#variable_delayed_expansion\"},{\"match\":\"[^%]+\",\"name\":\"string.unquoted.batchfile\"}]}]}]}]},\"variable_delayed_expansion\":{\"patterns\":[{\"begin\":\"!(?=[^!]+!)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.variable.begin.batchfile\"}},\"end\":\"(!)|\\\\\\\\n\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.variable.end.batchfile\"}},\"name\":\"variable.other.readwrite.batchfile\",\"patterns\":[{\"begin\":\":~\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.batchfile\"}},\"end\":\"(?=!|\\\\\\\\n)\",\"name\":\"meta.variable.substring.batchfile\",\"patterns\":[{\"include\":\"#variable_substring\"}]},{\"begin\":\":\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.batchfile\"}},\"end\":\"(?=!|\\\\\\\\n)\",\"name\":\"meta.variable.substitution.batchfile\",\"patterns\":[{\"include\":\"#escaped_characters\"},{\"include\":\"#variable_replace\"},{\"include\":\"#variable\"},{\"begin\":\"=\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.batchfile\"}},\"end\":\"(?=!|\\\\\\\\n)\",\"patterns\":[{\"include\":\"#variable\"},{\"match\":\"[^!]+\",\"name\":\"string.unquoted.batchfile\"}]}]}]}]},\"variable_replace\":{\"patterns\":[{\"match\":\"[^=%!\\\\\\\\n]+\",\"name\":\"string.unquoted.batchfile\"}]},\"variable_substring\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.numeric.batchfile\"},\"2\":{\"name\":\"punctuation.separator.batchfile\"},\"3\":{\"name\":\"constant.numeric.batchfile\"}},\"match\":\"([+-]?\\\\\\\\d+)(?:(,)([+-]?\\\\\\\\d+))?\"}]},\"variables\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.batchfile\"}},\"match\":\"(%)(?:(?i:~[fdpnxsatz]*(?:\\\\\\\\$PATH:)?)?\\\\\\\\d|\\\\\\\\*)\",\"name\":\"variable.parameter.batchfile\"},{\"include\":\"#variable\"},{\"include\":\"#variable_delayed_expansion\"}]}},\"scopeName\":\"source.batchfile\",\"aliases\":[\"batch\"]}')),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/gRuQeaLk.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var n=e=>`\\\\b${e}\\\\b`,t=\"[_a-zA-Z]\",o=\"[_a-zA-Z0-9]\",r=n(`${t}${o}*`),i=[\"targetScope\",\"resource\",\"module\",\"param\",\"var\",\"output\",\"for\",\"in\",\"if\",\"existing\"],a=[\"true\",\"false\",\"null\"],s=\"[ \\\\t\\\\r\\\\n]\",c=\"[0-9]+\",g={comments:{lineComment:\"//\",blockComment:[\"/*\",\"*/\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"'\",close:\"'\"},{open:\"'''\",close:\"'''\"}],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"'\",close:\"'\",notIn:[\"string\",\"comment\"]},{open:\"'''\",close:\"'''\",notIn:[\"string\",\"comment\"]}],autoCloseBefore:`:.,=}])' \n\t`,indentationRules:{increaseIndentPattern:new RegExp(\"^((?!\\\\/\\\\/).)*(\\\\{[^}\\\"'`]*|\\\\([^)\\\"'`]*|\\\\[[^\\\\]\\\"'`]*)$\"),decreaseIndentPattern:new RegExp(\"^((?!.*?\\\\/\\\\*).*\\\\*/)?\\\\s*[\\\\}\\\\]].*$\")}},l={defaultToken:\"\",tokenPostfix:\".bicep\",brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"}],symbols:/[=><!~?:&|+\\-*/^%]+/,keywords:i,namedLiterals:a,escapes:\"\\\\\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\\\\\|'|\\\\${)\",tokenizer:{root:[{include:\"@expression\"},{include:\"@whitespace\"}],stringVerbatim:[{regex:\"(|'|'')[^']\",action:{token:\"string\"}},{regex:\"'''\",action:{token:\"string.quote\",next:\"@pop\"}}],stringLiteral:[{regex:\"\\\\${\",action:{token:\"delimiter.bracket\",next:\"@bracketCounting\"}},{regex:\"[^\\\\\\\\'$]+\",action:{token:\"string\"}},{regex:\"@escapes\",action:{token:\"string.escape\"}},{regex:\"\\\\\\\\.\",action:{token:\"string.escape.invalid\"}},{regex:\"'\",action:{token:\"string\",next:\"@pop\"}}],bracketCounting:[{regex:\"{\",action:{token:\"delimiter.bracket\",next:\"@bracketCounting\"}},{regex:\"}\",action:{token:\"delimiter.bracket\",next:\"@pop\"}},{include:\"expression\"}],comment:[{regex:\"[^\\\\*]+\",action:{token:\"comment\"}},{regex:\"\\\\*\\\\/\",action:{token:\"comment\",next:\"@pop\"}},{regex:\"[\\\\/*]\",action:{token:\"comment\"}}],whitespace:[{regex:s},{regex:\"\\\\/\\\\*\",action:{token:\"comment\",next:\"@comment\"}},{regex:\"\\\\/\\\\/.*$\",action:{token:\"comment\"}}],expression:[{regex:\"'''\",action:{token:\"string.quote\",next:\"@stringVerbatim\"}},{regex:\"'\",action:{token:\"string.quote\",next:\"@stringLiteral\"}},{regex:c,action:{token:\"number\"}},{regex:r,action:{cases:{\"@keywords\":{token:\"keyword\"},\"@namedLiterals\":{token:\"keyword\"},\"@default\":{token:\"identifier\"}}}}]}};export{g as conf,l as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/ifBTmRxC.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"HLSL\",\"name\":\"hlsl\",\"patterns\":[{\"begin\":\"/\\\\\\\\*\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.line.block.hlsl\"},{\"begin\":\"//\",\"end\":\"$\",\"name\":\"comment.line.double-slash.hlsl\"},{\"match\":\"\\\\\\\\b[0-9]+\\\\\\\\.[0-9]*(F|f)?\\\\\\\\b\",\"name\":\"constant.numeric.decimal.hlsl\"},{\"match\":\"(\\\\\\\\.([0-9]+)(F|f)?)\\\\\\\\b\",\"name\":\"constant.numeric.decimal.hlsl\"},{\"match\":\"\\\\\\\\b([0-9]+(F|f)?)\\\\\\\\b\",\"name\":\"constant.numeric.decimal.hlsl\"},{\"match\":\"\\\\\\\\b(0(x|X)[0-9a-fA-F]+)\\\\\\\\b\",\"name\":\"constant.numeric.hex.hlsl\"},{\"match\":\"\\\\\\\\b(false|true)\\\\\\\\b\",\"name\":\"constant.language.hlsl\"},{\"match\":\"^\\\\\\\\s*#\\\\\\\\s*(define|elif|else|endif|ifdef|ifndef|if|undef|include|line|error|pragma)\",\"name\":\"keyword.preprocessor.hlsl\"},{\"match\":\"\\\\\\\\b(break|case|continue|default|discard|do|else|for|if|return|switch|while)\\\\\\\\b\",\"name\":\"keyword.control.hlsl\"},{\"match\":\"\\\\\\\\b(compile)\\\\\\\\b\",\"name\":\"keyword.control.fx.hlsl\"},{\"match\":\"\\\\\\\\b(typedef)\\\\\\\\b\",\"name\":\"keyword.typealias.hlsl\"},{\"match\":\"\\\\\\\\b(bool([1-4](x[1-4])?)?|double([1-4](x[1-4])?)?|dword|float([1-4](x[1-4])?)?|half([1-4](x[1-4])?)?|int([1-4](x[1-4])?)?|matrix|min10float([1-4](x[1-4])?)?|min12int([1-4](x[1-4])?)?|min16float([1-4](x[1-4])?)?|min16int([1-4](x[1-4])?)?|min16uint([1-4](x[1-4])?)?|unsigned|uint([1-4](x[1-4])?)?|vector|void)\\\\\\\\b\",\"name\":\"storage.type.basic.hlsl\"},{\"match\":\"\\\\\\\\b([a-zA-Z_][a-zA-Z0-9_]*)(?=[\\\\\\\\s]*\\\\\\\\()\",\"name\":\"support.function.hlsl\"},{\"match\":\"(?<=\\\\\\\\:\\\\\\\\s|\\\\\\\\:)(?i:BINORMAL[0-9]*|BLENDINDICES[0-9]*|BLENDWEIGHT[0-9]*|COLOR[0-9]*|NORMAL[0-9]*|POSITIONT|POSITION|PSIZE[0-9]*|TANGENT[0-9]*|TEXCOORD[0-9]*|FOG|TESSFACTOR[0-9]*|VFACE|VPOS|DEPTH[0-9]*)\\\\\\\\b\",\"name\":\"support.variable.semantic.hlsl\"},{\"match\":\"(?<=\\\\\\\\:\\\\\\\\s|\\\\\\\\:)(?i:SV_ClipDistance[0-9]*|SV_CullDistance[0-9]*|SV_Coverage|SV_Depth|SV_DepthGreaterEqual[0-9]*|SV_DepthLessEqual[0-9]*|SV_InstanceID|SV_IsFrontFace|SV_Position|SV_RenderTargetArrayIndex|SV_SampleIndex|SV_StencilRef|SV_Target[0-7]?|SV_VertexID|SV_ViewportArrayIndex)\\\\\\\\b\",\"name\":\"support.variable.semantic.sm4.hlsl\"},{\"match\":\"(?<=\\\\\\\\:\\\\\\\\s|\\\\\\\\:)(?i:SV_DispatchThreadID|SV_DomainLocation|SV_GroupID|SV_GroupIndex|SV_GroupThreadID|SV_GSInstanceID|SV_InsideTessFactor|SV_OutputControlPointID|SV_TessFactor)\\\\\\\\b\",\"name\":\"support.variable.semantic.sm5.hlsl\"},{\"match\":\"(?<=\\\\\\\\:\\\\\\\\s|\\\\\\\\:)(?i:SV_InnerCoverage|SV_StencilRef)\\\\\\\\b\",\"name\":\"support.variable.semantic.sm5_1.hlsl\"},{\"match\":\"\\\\\\\\b(column_major|const|export|extern|globallycoherent|groupshared|inline|inout|in|out|precise|row_major|shared|static|uniform|volatile)\\\\\\\\b\",\"name\":\"storage.modifier.hlsl\"},{\"match\":\"\\\\\\\\b(snorm|unorm)\\\\\\\\b\",\"name\":\"storage.modifier.float.hlsl\"},{\"match\":\"\\\\\\\\b(packoffset|register)\\\\\\\\b\",\"name\":\"storage.modifier.postfix.hlsl\"},{\"match\":\"\\\\\\\\b(centroid|linear|nointerpolation|noperspective|sample)\\\\\\\\b\",\"name\":\"storage.modifier.interpolation.hlsl\"},{\"match\":\"\\\\\\\\b(lineadj|line|point|triangle|triangleadj)\\\\\\\\b\",\"name\":\"storage.modifier.geometryshader.hlsl\"},{\"match\":\"\\\\\\\\b(string)\\\\\\\\b\",\"name\":\"support.type.other.hlsl\"},{\"match\":\"\\\\\\\\b(AppendStructuredBuffer|Buffer|ByteAddressBuffer|ConstantBuffer|ConsumeStructuredBuffer|InputPatch|OutputPatch)\\\\\\\\b\",\"name\":\"support.type.object.hlsl\"},{\"match\":\"\\\\\\\\b(RasterizerOrderedBuffer|RasterizerOrderedByteAddressBuffer|RasterizerOrderedStructuredBuffer|RasterizerOrderedTexture1D|RasterizerOrderedTexture1DArray|RasterizerOrderedTexture2D|RasterizerOrderedTexture2DArray|RasterizerOrderedTexture3D)\\\\\\\\b\",\"name\":\"support.type.object.rasterizerordered.hlsl\"},{\"match\":\"\\\\\\\\b(RWBuffer|RWByteAddressBuffer|RWStructuredBuffer|RWTexture1D|RWTexture1DArray|RWTexture2D|RWTexture2DArray|RWTexture3D)\\\\\\\\b\",\"name\":\"support.type.object.rw.hlsl\"},{\"match\":\"\\\\\\\\b(LineStream|PointStream|TriangleStream)\\\\\\\\b\",\"name\":\"support.type.object.geometryshader.hlsl\"},{\"match\":\"\\\\\\\\b(sampler|sampler1D|sampler2D|sampler3D|samplerCUBE|sampler_state)\\\\\\\\b\",\"name\":\"support.type.sampler.legacy.hlsl\"},{\"match\":\"\\\\\\\\b(SamplerState|SamplerComparisonState)\\\\\\\\b\",\"name\":\"support.type.sampler.hlsl\"},{\"match\":\"\\\\\\\\b(texture2D|textureCUBE)\\\\\\\\b\",\"name\":\"support.type.texture.legacy.hlsl\"},{\"match\":\"\\\\\\\\b(Texture1D|Texture1DArray|Texture2D|Texture2DArray|Texture2DMS|Texture2DMSArray|Texture3D|TextureCube|TextureCubeArray)\\\\\\\\b\",\"name\":\"support.type.texture.hlsl\"},{\"match\":\"\\\\\\\\b(cbuffer|class|interface|namespace|struct|tbuffer)\\\\\\\\b\",\"name\":\"storage.type.structured.hlsl\"},{\"match\":\"\\\\\\\\b(FALSE|TRUE|NULL)\\\\\\\\b\",\"name\":\"support.constant.property-value.fx.hlsl\"},{\"match\":\"\\\\\\\\b(BlendState|DepthStencilState|RasterizerState)\\\\\\\\b\",\"name\":\"support.type.fx.hlsl\"},{\"match\":\"\\\\\\\\b(technique|Technique|technique10|technique11|pass)\\\\\\\\b\",\"name\":\"storage.type.fx.technique.hlsl\"},{\"match\":\"\\\\\\\\b(AlphaToCoverageEnable|BlendEnable|SrcBlend|DestBlend|BlendOp|SrcBlendAlpha|DestBlendAlpha|BlendOpAlpha|RenderTargetWriteMask)\\\\\\\\b\",\"name\":\"meta.object-literal.key.fx.blendstate.hlsl\"},{\"match\":\"\\\\\\\\b(DepthEnable|DepthWriteMask|DepthFunc|StencilEnable|StencilReadMask|StencilWriteMask|FrontFaceStencilFail|FrontFaceStencilZFail|FrontFaceStencilPass|FrontFaceStencilFunc|BackFaceStencilFail|BackFaceStencilZFail|BackFaceStencilPass|BackFaceStencilFunc)\\\\\\\\b\",\"name\":\"meta.object-literal.key.fx.depthstencilstate.hlsl\"},{\"match\":\"\\\\\\\\b(FillMode|CullMode|FrontCounterClockwise|DepthBias|DepthBiasClamp|SlopeScaleDepthBias|ZClipEnable|ScissorEnable|MultiSampleEnable|AntiAliasedLineEnable)\\\\\\\\b\",\"name\":\"meta.object-literal.key.fx.rasterizerstate.hlsl\"},{\"match\":\"\\\\\\\\b(Filter|AddressU|AddressV|AddressW|MipLODBias|MaxAnisotropy|ComparisonFunc|BorderColor|MinLOD|MaxLOD)\\\\\\\\b\",\"name\":\"meta.object-literal.key.fx.samplerstate.hlsl\"},{\"match\":\"\\\\\\\\b(?i:ZERO|ONE|SRC_COLOR|INV_SRC_COLOR|SRC_ALPHA|INV_SRC_ALPHA|DEST_ALPHA|INV_DEST_ALPHA|DEST_COLOR|INV_DEST_COLOR|SRC_ALPHA_SAT|BLEND_FACTOR|INV_BLEND_FACTOR|SRC1_COLOR|INV_SRC1_COLOR|SRC1_ALPHA|INV_SRC1_ALPHA)\\\\\\\\b\",\"name\":\"support.constant.property-value.fx.blend.hlsl\"},{\"match\":\"\\\\\\\\b(?i:ADD|SUBTRACT|REV_SUBTRACT|MIN|MAX)\\\\\\\\b\",\"name\":\"support.constant.property-value.fx.blendop.hlsl\"},{\"match\":\"\\\\\\\\b(?i:ALL)\\\\\\\\b\",\"name\":\"support.constant.property-value.fx.depthwritemask.hlsl\"},{\"match\":\"\\\\\\\\b(?i:NEVER|LESS|EQUAL|LESS_EQUAL|GREATER|NOT_EQUAL|GREATER_EQUAL|ALWAYS)\\\\\\\\b\",\"name\":\"support.constant.property-value.fx.comparisonfunc.hlsl\"},{\"match\":\"\\\\\\\\b(?i:KEEP|REPLACE|INCR_SAT|DECR_SAT|INVERT|INCR|DECR)\\\\\\\\b\",\"name\":\"support.constant.property-value.fx.stencilop.hlsl\"},{\"match\":\"\\\\\\\\b(?i:WIREFRAME|SOLID)\\\\\\\\b\",\"name\":\"support.constant.property-value.fx.fillmode.hlsl\"},{\"match\":\"\\\\\\\\b(?i:NONE|FRONT|BACK)\\\\\\\\b\",\"name\":\"support.constant.property-value.fx.cullmode.hlsl\"},{\"match\":\"\\\\\\\\b(?i:MIN_MAG_MIP_POINT|MIN_MAG_POINT_MIP_LINEAR|MIN_POINT_MAG_LINEAR_MIP_POINT|MIN_POINT_MAG_MIP_LINEAR|MIN_LINEAR_MAG_MIP_POINT|MIN_LINEAR_MAG_POINT_MIP_LINEAR|MIN_MAG_LINEAR_MIP_POINT|MIN_MAG_MIP_LINEAR|ANISOTROPIC|COMPARISON_MIN_MAG_MIP_POINT|COMPARISON_MIN_MAG_POINT_MIP_LINEAR|COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT|COMPARISON_MIN_POINT_MAG_MIP_LINEAR|COMPARISON_MIN_LINEAR_MAG_MIP_POINT|COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR|COMPARISON_MIN_MAG_LINEAR_MIP_POINT|COMPARISON_MIN_MAG_MIP_LINEAR|COMPARISON_ANISOTROPIC|TEXT_1BIT)\\\\\\\\b\",\"name\":\"support.constant.property-value.fx.filter.hlsl\"},{\"match\":\"\\\\\\\\b(?i:WRAP|MIRROR|CLAMP|BORDER|MIRROR_ONCE)\\\\\\\\b\",\"name\":\"support.constant.property-value.fx.textureaddressmode.hlsl\"},{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.hlsl\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.hlsl\"}]}],\"scopeName\":\"source.hlsl\"}')),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/index.dzGxyoTu.css",
    "content": "[data-v-7d864384] ::-webkit-scrollbar{display:none}[data-v-7d864384] *{-ms-overflow-style:none;scrollbar-width:none}\n"
  },
  {
    "path": "jesse/static/_nuxt/index.lQPmb1y9.css",
    "content": "pre[data-v-31f9d0a7]{position:relative}code[data-v-31f9d0a7]{font-size:15px}\n"
  },
  {
    "path": "jesse/static/_nuxt/m09vb5r-.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"COMMENT\"},brackets:[[\"(\",\")\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'},{open:\":\",close:\".\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"`\",close:\"`\"},{open:'\"',close:'\"'},{open:\"'\",close:\"'\"},{open:\":\",close:\".\"}],folding:{markers:{start:new RegExp(\"^\\\\s*(::\\\\s*|COMMENT\\\\s+)#region\"),end:new RegExp(\"^\\\\s*(::\\\\s*|COMMENT\\\\s+)#endregion\")}}},t={tokenPostfix:\".lexon\",ignoreCase:!0,keywords:[\"lexon\",\"lex\",\"clause\",\"terms\",\"contracts\",\"may\",\"pay\",\"pays\",\"appoints\",\"into\",\"to\"],typeKeywords:[\"amount\",\"person\",\"key\",\"time\",\"date\",\"asset\",\"text\"],operators:[\"less\",\"greater\",\"equal\",\"le\",\"gt\",\"or\",\"and\",\"add\",\"added\",\"subtract\",\"subtracted\",\"multiply\",\"multiplied\",\"times\",\"divide\",\"divided\",\"is\",\"be\",\"certified\"],symbols:/[=><!~?:&|+\\-*\\/\\^%]+/,tokenizer:{root:[[/^(\\s*)(comment:?(?:\\s.*|))$/,[\"\",\"comment\"]],[/\"/,{token:\"identifier.quote\",bracket:\"@open\",next:\"@quoted_identifier\"}],[\"LEX$\",{token:\"keyword\",bracket:\"@open\",next:\"@identifier_until_period\"}],[\"LEXON\",{token:\"keyword\",bracket:\"@open\",next:\"@semver\"}],[\":\",{token:\"delimiter\",bracket:\"@open\",next:\"@identifier_until_period\"}],[/[a-z_$][\\w$]*/,{cases:{\"@operators\":\"operator\",\"@typeKeywords\":\"keyword.type\",\"@keywords\":\"keyword\",\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,\"delimiter\"],[/\\d*\\.\\d*\\.\\d*/,\"number.semver\"],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/0[xX][0-9a-fA-F]+/,\"number.hex\"],[/\\d+/,\"number\"],[/[;,.]/,\"delimiter\"]],quoted_identifier:[[/[^\\\\\"]+/,\"identifier\"],[/\"/,{token:\"identifier.quote\",bracket:\"@close\",next:\"@pop\"}]],space_identifier_until_period:[[\":\",\"delimiter\"],[\" \",{token:\"white\",next:\"@identifier_rest\"}]],identifier_until_period:[{include:\"@whitespace\"},[\":\",{token:\"delimiter\",next:\"@identifier_rest\"}],[/[^\\\\.]+/,\"identifier\"],[/\\./,{token:\"delimiter\",bracket:\"@close\",next:\"@pop\"}]],identifier_rest:[[/[^\\\\.]+/,\"identifier\"],[/\\./,{token:\"delimiter\",bracket:\"@close\",next:\"@pop\"}]],semver:[{include:\"@whitespace\"},[\":\",\"delimiter\"],[/\\d*\\.\\d*\\.\\d*/,{token:\"number.semver\",bracket:\"@close\",next:\"@pop\"}]],whitespace:[[/[ \\t\\r\\n]+/,\"white\"]]}};export{e as conf,t as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/m2LEI-9-.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Cypher\",\"fileTypes\":[\"cql\",\"cyp\",\"cypher\"],\"name\":\"cypher\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#constants\"},{\"include\":\"#keywords\"},{\"include\":\"#functions\"},{\"include\":\"#path-patterns\"},{\"include\":\"#operators\"},{\"include\":\"#identifiers\"},{\"include\":\"#properties_literal\"},{\"include\":\"#numbers\"},{\"include\":\"#strings\"}],\"repository\":{\"comments\":{\"patterns\":[{\"match\":\"//.*$\\\\\\\\n?\",\"name\":\"comment.line.double-slash.cypher\"}]},\"constants\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\bTRUE|FALSE\\\\\\\\b\",\"name\":\"constant.language.bool.cypher\"},{\"match\":\"(?i)\\\\\\\\bNULL\\\\\\\\b\",\"name\":\"constant.language.missing.cypher\"}]},\"functions\":{\"patterns\":[{\"comment\":\"List of Cypher built-in functions from http://docs.neo4j.org/chunked/milestone/query-function.html\",\"match\":\"(?i)\\\\\\\\b((NOT)(?=\\\\\\\\s*\\\\\\\\()|IS\\\\\\\\s+NULL|IS\\\\\\\\s+NOT\\\\\\\\s+NULL)\",\"name\":\"keyword.control.function.boolean.cypher\"},{\"comment\":\"List of Cypher built-in functions from http://docs.neo4j.org/chunked/milestone/query-function.html\",\"match\":\"(?i)\\\\\\\\b(ALL|ANY|NONE|SINGLE)(?=\\\\\\\\s*\\\\\\\\()\",\"name\":\"support.function.predicate.cypher\"},{\"comment\":\"List of Cypher built-in functions from http://docs.neo4j.org/chunked/milestone/query-function.html\",\"match\":\"(?i)\\\\\\\\b(LENGTH|TYPE|ID|COALESCE|HEAD|LAST|TIMESTAMP|STARTNODE|ENDNODE|TOINT|TOFLOAT)(?=\\\\\\\\s*\\\\\\\\()\",\"name\":\"support.function.scalar.cypher\"},{\"comment\":\"List of Cypher built-in functions from http://docs.neo4j.org/chunked/milestone/query-function.html\",\"match\":\"(?i)\\\\\\\\b(NODES|RELATIONSHIPS|LABELS|EXTRACT|FILTER|TAIL|RANGE|REDUCE)(?=\\\\\\\\s*\\\\\\\\()\",\"name\":\"support.function.collection.cypher\"},{\"comment\":\"List of Cypher built-in functions from http://docs.neo4j.org/chunked/milestone/query-function.html\",\"match\":\"(?i)\\\\\\\\b(ABS|ACOS|ASIN|ATAN|ATAN2|COS|COT|DEGREES|E|EXP|FLOOR|HAVERSIN|LOG|LOG10|PI|RADIANS|RAND|ROUND|SIGN|SIN|SQRT|TAN)(?=\\\\\\\\s*\\\\\\\\()\",\"name\":\"support.function.math.cypher\"},{\"comment\":\"List of Cypher built-in functions from http://docs.neo4j.org/chunked/milestone/query-function.html\",\"match\":\"(?i)\\\\\\\\b(COUNT|sum|avg|max|min|stdev|stdevp|percentileDisc|percentileCont|collect)(?=\\\\\\\\s*\\\\\\\\()\",\"name\":\"support.function.aggregation.cypher\"},{\"comment\":\"List of Cypher built-in functions from http://docs.neo4j.org/chunked/milestone/query-function.html\",\"match\":\"(?i)\\\\\\\\b(STR|REPLACE|SUBSTRING|LEFT|RIGHT|LTRIM|RTRIM|TRIM|LOWER|UPPER|SPLIT)(?=\\\\\\\\s*\\\\\\\\()\",\"name\":\"support.function.string.cypher\"}]},\"identifiers\":{\"patterns\":[{\"match\":\"`.+?`\",\"name\":\"variable.other.quoted-identifier.cypher\"},{\"match\":\"[\\\\\\\\p{L}_][\\\\\\\\p{L}0-9_]*\",\"name\":\"variable.other.identifier.cypher\"}]},\"keywords\":{\"patterns\":[{\"match\":\"(?i)\\\\\\\\b(START|MATCH|WHERE|RETURN|UNION|FOREACH|WITH|AS|LIMIT|SKIP|UNWIND|HAS|DISTINCT|OPTIONAL\\\\\\\\\\\\\\\\s+MATCH|ORDER\\\\\\\\s+BY|CALL|YIELD)\\\\\\\\b\",\"name\":\"keyword.control.clause.cypher\"},{\"match\":\"(?i)\\\\\\\\b(ELSE|END|THEN|CASE|WHEN)\\\\\\\\b\",\"name\":\"keyword.control.case.cypher\"},{\"match\":\"(?i)\\\\\\\\b(FIELDTERMINATOR|USING\\\\\\\\s+PERIODIC\\\\\\\\s+COMMIT|HEADERS|LOAD\\\\\\\\s+CSV|FROM)\\\\\\\\b\",\"name\":\"keyword.data.import.cypher\"},{\"match\":\"(?i)\\\\\\\\b(USING\\\\\\\\s+INDEX|CREATE\\\\\\\\s+INDEX\\\\\\\\s+ON|DROP\\\\\\\\s+INDEX\\\\\\\\s+ON|CREATE\\\\\\\\s+CONSTRAINT\\\\\\\\s+ON|DROP\\\\\\\\s+CONSTRAINT\\\\\\\\s+ON)\\\\\\\\b\",\"name\":\"keyword.other.indexes.cypher\"},{\"match\":\"(?i)\\\\\\\\b(MERGE|DELETE|SET|REMOVE|ON\\\\\\\\s+CREATE|ON\\\\\\\\s+MATCH|CREATE\\\\\\\\s+UNIQUE|CREATE)\\\\\\\\b\",\"name\":\"keyword.data.definition.cypher\"},{\"match\":\"(?i)\\\\\\\\b(DESC|ASC)\\\\\\\\b\",\"name\":\"keyword.other.order.cypher\"},{\"begin\":\"(?i)\\\\\\\\b(node|relationship|rel)((:)([\\\\\\\\p{L}_-][\\\\\\\\p{L}0-9_]*))?(?=\\\\\\\\s*\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.class.starting-functions-point.cypher\"},\"2\":{\"name\":\"keyword.control.index-seperator.cypher\"},\"3\":{\"name\":\"keyword.control.index-seperator.cypher\"},\"4\":{\"name\":\"support.class.index.cypher\"}},\"end\":\"\\\\\\\\)\",\"name\":\"source.starting-functions.cypher\",\"patterns\":[{\"match\":\"((?:`.+?`)|(?:[\\\\\\\\p{L}_][\\\\\\\\p{L}0-9_]*))\",\"name\":\"variable.parameter.relationship-name.cypher\"},{\"match\":\"(\\\\\\\\*)\",\"name\":\"keyword.control.starting-function-params.cypher\"},{\"include\":\"#comments\"},{\"include\":\"#numbers\"},{\"include\":\"#strings\"}]}]},\"numbers\":{\"patterns\":[{\"match\":\"\\\\\\\\b\\\\\\\\d+(\\\\\\\\.\\\\\\\\d+)?\\\\\\\\b\",\"name\":\"constant.numeric.cypher\"}]},\"operators\":{\"patterns\":[{\"match\":\"(\\\\\\\\+|\\\\\\\\-|\\\\\\\\/|\\\\\\\\*|\\\\\\\\%|\\\\\\\\?|!)\",\"name\":\"keyword.operator.math.cypher\"},{\"match\":\"(<=|=>|<>|<|>|=~|=)\",\"name\":\"keyword.operator.compare.cypher\"},{\"match\":\"(?i)\\\\\\\\b(OR|AND|XOR|IS)\\\\\\\\b\",\"name\":\"keyword.operator.logical.cypher\"},{\"match\":\"(?i)\\\\\\\\b(IN)\\\\\\\\b\",\"name\":\"keyword.operator.in.cypher\"}]},\"path-patterns\":{\"patterns\":[{\"match\":\"(<--|-->|--)\",\"name\":\"support.function.relationship-pattern.cypher\"},{\"begin\":\"(<-|-)(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.relationship-pattern-start.cypher\"},\"2\":{\"name\":\"keyword.operator.relationship-pattern-start.cypher\"}},\"end\":\"(])(->|-)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.relationship-pattern-end.cypher\"},\"2\":{\"name\":\"support.function.relationship-pattern-end.cypher\"}},\"name\":\"path-pattern.cypher\",\"patterns\":[{\"include\":\"#identifiers\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.relationship-type-start.cypher\"},\"2\":{\"name\":\"entity.name.class.relationship.type.cypher\"}},\"match\":\"(:)((?:`.+?`)|(?:[\\\\\\\\p{L}_][\\\\\\\\p{L}0-9_]*))\",\"name\":\"entity.name.class.relationship-type.cypher\"},{\"captures\":{\"1\":{\"name\":\"support.type.operator.relationship-type-or.cypher\"},\"2\":{\"name\":\"entity.name.class.relationship.type-or.cypher\"}},\"match\":\"(\\\\\\\\|)(\\\\\\\\s*)((?:`.+?`)|(?:[\\\\\\\\p{L}_][\\\\\\\\p{L}0-9_]*))\",\"name\":\"entity.name.class.relationship-type-ored.cypher\"},{\"match\":\"(?:\\\\\\\\?\\\\\\\\*|\\\\\\\\?|\\\\\\\\*)\\\\\\\\s*(?:\\\\\\\\d+\\\\\\\\s*(?:\\\\\\\\.\\\\\\\\.\\\\\\\\s*\\\\\\\\d+)?)?\",\"name\":\"support.function.relationship-pattern.quant.cypher\"},{\"include\":\"#properties_literal\"}]}]},\"properties_literal\":{\"patterns\":[{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.properties_literal.cypher\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.properties_literal.cypher\"}},\"name\":\"source.cypher\",\"patterns\":[{\"match\":\":|,\",\"name\":\"keyword.control.properties_literal.seperator.cypher\"},{\"include\":\"#comments\"},{\"include\":\"#constants\"},{\"include\":\"#functions\"},{\"include\":\"#operators\"},{\"include\":\"#identifiers\"},{\"include\":\"#numbers\"},{\"include\":\"#strings\"}]}]},\"string_escape\":{\"captures\":{\"2\":{\"name\":\"string.quoted.double.cypher\"}},\"match\":\"(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\|\\\\\\\\\\\\\\\\[tbnrf])|(\\\\\\\\\\\\\\\\\\'|\\\\\\\\\\\\\\\\\\\\\")\",\"name\":\"constant.character.escape.cypher\"},\"strings\":{\"patterns\":[{\"begin\":\"\\'\",\"end\":\"\\'\",\"name\":\"string.quoted.single.cypher\",\"patterns\":[{\"include\":\"#string_escape\"}]},{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.cypher\",\"patterns\":[{\"include\":\"#string_escape\"}]}]}},\"scopeName\":\"source.cypher\",\"aliases\":[\"cql\"]}')),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/m4gc_qpA.js",
    "content": "import e from\"./ySlJ1b_l.js\";import n from\"./BPhBrDlE.js\";const a=Object.freeze(JSON.parse('{\"displayName\":\"Ruby Haml\",\"fileTypes\":[\"haml\",\"html.haml\"],\"foldingStartMarker\":\"^\\\\\\\\s*([-%#\\\\\\\\:\\\\\\\\.\\\\\\\\w\\\\\\\\=].*)\\\\\\\\s$\",\"foldingStopMarker\":\"^\\\\\\\\s*$\",\"name\":\"haml\",\"patterns\":[{\"begin\":\"^(\\\\\\\\s*)==\",\"contentName\":\"string.quoted.double.ruby\",\"end\":\"$\\\\\\\\n*\",\"patterns\":[{\"include\":\"#interpolated_ruby\"}]},{\"begin\":\"^(\\\\\\\\s*):ruby\",\"end\":\"^(?!\\\\\\\\1\\\\\\\\s+|$\\\\\\\\n*)\",\"name\":\"source.ruby.embedded.filter.haml\",\"patterns\":[{\"include\":\"source.ruby\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.prolog.haml\"}},\"match\":\"^(!!!)($|\\\\\\\\s.*)\",\"name\":\"meta.prolog.haml\"},{\"begin\":\"^(\\\\\\\\s*):javascript\",\"end\":\"^(?!\\\\\\\\1\\\\\\\\s+|$\\\\\\\\n*)\",\"name\":\"js.haml\",\"patterns\":[{\"include\":\"source.js\"}]},{\"begin\":\"^(\\\\\\\\s*)%script\",\"end\":\"^(?!\\\\\\\\1\\\\\\\\s+|$\\\\\\\\n*)\",\"name\":\"js.inline.haml\",\"patterns\":[{\"include\":\"source.js\"}]},{\"begin\":\"^(\\\\\\\\s*):ruby$\",\"end\":\"^(?!\\\\\\\\1\\\\\\\\s+|$\\\\\\\\n*)\",\"name\":\"source.ruby.embedded.filter.haml\",\"patterns\":[{\"include\":\"source.ruby\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.section.comment.haml\"}},\"match\":\"^(\\\\\\\\s*)(\\\\\\\\/\\\\\\\\[[^\\\\\\\\]].*?$\\\\\\\\n?)\",\"name\":\"comment.line.slash.haml\"},{\"begin\":\"^(\\\\\\\\s*)(\\\\\\\\-\\\\\\\\#|\\\\\\\\/|\\\\\\\\-\\\\\\\\s*\\\\\\\\/\\\\\\\\*+)\",\"beginCaptures\":{\"2\":{\"name\":\"punctuation.section.comment.haml\"}},\"end\":\"^(?!\\\\\\\\1\\\\\\\\s+|\\\\\\\\n)\",\"name\":\"comment.block.haml\",\"patterns\":[{\"include\":\"text.haml\"}]},{\"begin\":\"^\\\\\\\\s*(?:((%)([-\\\\\\\\w:]+))|(?=\\\\\\\\.|#))\",\"captures\":{\"1\":{\"name\":\"meta.tag.haml\"},\"2\":{\"name\":\"punctuation.definition.tag.haml\"},\"3\":{\"name\":\"entity.name.tag.haml\"}},\"end\":\"$|(?!\\\\\\\\.|#|\\\\\\\\{|\\\\\\\\(|\\\\\\\\[|&amp;|=|-|~|!=|&=|/)\",\"patterns\":[{\"begin\":\"==\",\"contentName\":\"string.quoted.double.ruby\",\"end\":\"$\\\\\\\\n?\",\"patterns\":[{\"include\":\"#interpolated_ruby\"}]},{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.class\"}},\"match\":\"(\\\\\\\\.[\\\\\\\\w\\\\\\\\-\\\\\\\\:]+)\",\"name\":\"meta.selector.css\"},{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.id\"}},\"match\":\"(#[\\\\\\\\w-]+)\",\"name\":\"meta.selector.css\"},{\"begin\":\"(?<!\\\\\\\\#)\\\\\\\\{(?=.*(,|(do)|\\\\\\\\{|\\\\\\\\}|\\\\\\\\||(\\\\\\\\#.*)|\\\\\\\\R)\\\\\\\\s*)\",\"end\":\"\\\\\\\\s*\\\\\\\\}(?!\\\\\\\\s*\\\\\\\\,)(?!\\\\\\\\s*\\\\\\\\|)(?!\\\\\\\\#\\\\\\\\{.*\\\\\\\\})\",\"name\":\"meta.section.attributes.haml\",\"patterns\":[{\"include\":\"source.ruby\"},{\"include\":\"#continuation\"},{\"include\":\"#rubyline\"}]},{\"begin\":\"\\\\\\\\(\",\"end\":\"\\\\\\\\)\",\"name\":\"meta.section.attributes.plain.haml\",\"patterns\":[{\"match\":\"([\\\\\\\\w-]+)\",\"name\":\"constant.other.symbol.ruby\"},{\"match\":\"\\\\\\\\=\",\"name\":\"punctuation\"},{\"include\":\"#variables\"},{\"begin\":\"\\\\\"\",\"end\":\"\\\\\"\",\"name\":\"string.quoted.double.ruby\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(x\\\\\\\\h{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)\",\"name\":\"constant.character.escape.ruby\"},{\"include\":\"#interpolated_ruby\"}]},{\"include\":\"#interpolated_ruby\"}]},{\"begin\":\"\\\\\\\\[(?=.+(,|\\\\\\\\[|\\\\\\\\]|\\\\\\\\||(\\\\\\\\#.*))\\\\\\\\s*)\",\"end\":\"\\\\\\\\s*\\\\\\\\](?!.*(?!\\\\\\\\#\\\\\\\\[)\\\\\\\\])\",\"name\":\"meta.section.object.haml\",\"patterns\":[{\"include\":\"source.ruby\"},{\"include\":\"#continuation\"},{\"include\":\"#rubyline\"}]},{\"include\":\"#interpolated_ruby_line\"},{\"include\":\"#rubyline\"},{\"match\":\"/\",\"name\":\"punctuation.terminator.tag.haml\"}]},{\"begin\":\"^(\\\\\\\\s*):(ruby|opal)$\",\"end\":\"^(?!\\\\\\\\1\\\\\\\\s+|$\\\\\\\\n*)\",\"name\":\"source.ruby.embedded.filter.haml\",\"patterns\":[{\"include\":\"source.ruby\"}]},{\"begin\":\"^(\\\\\\\\s*):ruby$\",\"end\":\"^(?!\\\\\\\\1\\\\\\\\s+|$\\\\\\\\n*)\",\"name\":\"source.ruby.embedded.filter.haml\",\"patterns\":[{\"include\":\"source.ruby\"}]},{\"begin\":\"^(\\\\\\\\s*):(style|sass)$\",\"end\":\"^(?=\\\\\\\\1\\\\\\\\s+|$\\\\\\\\n*)\",\"name\":\"source.sass.embedded.filter.haml\",\"patterns\":[{\"include\":\"source.sass\"}]},{\"begin\":\"^(\\\\\\\\s*):coffee(script)?\",\"end\":\"^(?!\\\\\\\\1\\\\\\\\s+|$\\\\\\\\n*)\",\"name\":\"source.coffee.embedded.filter.haml\",\"patterns\":[{\"include\":\"source.coffee\"}]},{\"begin\":\"^(\\\\\\\\s*):plain$\",\"end\":\"^(?=\\\\\\\\1\\\\\\\\s+|$\\\\\\\\n*)\",\"name\":\"text.plain.embedded.filter.haml\",\"patterns\":[{\"include\":\"text.plain\"}]},{\"begin\":\"^(\\\\\\\\s*)(:ruby)\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.control.filter.haml\"}},\"end\":\"(?m:(?<=\\\\\\\\n)(?!\\\\\\\\1\\\\\\\\s+|$\\\\\\\\n*))\",\"name\":\"source.ruby.embedded.filter.haml\",\"patterns\":[{\"include\":\"source.ruby\"}]},{\"begin\":\"^(\\\\\\\\s*)(:sass)\",\"beginCaptures\":{\"2\":{\"name\":\"keyword.control.filter.haml\"}},\"end\":\"^(?!\\\\\\\\1\\\\\\\\s+|$\\\\\\\\n*)\",\"name\":\"source.embedded.filter.sass\",\"patterns\":[{\"include\":\"source.sass\"}]},{\"begin\":\"^(\\\\\\\\s*):(styles|sass)$\",\"end\":\"^(?=\\\\\\\\1\\\\\\\\s+|$\\\\\\\\n*)\",\"name\":\"source.sass.embedded.filter.haml\",\"patterns\":[{\"include\":\"source.sass\"}]},{\"begin\":\"^(\\\\\\\\s*):plain$\",\"end\":\"^(?=\\\\\\\\1\\\\\\\\s+|$\\\\\\\\n*)\",\"name\":\"text.plain.embedded.filter.haml\",\"patterns\":[{\"include\":\"text.plain\"}]},{\"captures\":{\"1\":{\"name\":\"meta.escape.haml\"}},\"match\":\"^\\\\\\\\s*(\\\\\\\\.)\"},{\"begin\":\"^\\\\\\\\s*(?==|-|~|!=|&=)\",\"end\":\"$\",\"patterns\":[{\"include\":\"#interpolated_ruby_line\"},{\"include\":\"#rubyline\"}]},{\"begin\":\"^(\\\\\\\\s*)(:php)\",\"captures\":{\"2\":{\"name\":\"entity.name.tag.haml\"}},\"end\":\"^(?!\\\\\\\\1\\\\\\\\s+|$\\\\\\\\n*)\",\"name\":\"meta.embedded.php\",\"patterns\":[{\"include\":\"text.html.php#language\"}]},{\"begin\":\"^(\\\\\\\\s*)(:markdown)\",\"captures\":{\"2\":{\"name\":\"entity.name.tag.haml\"}},\"end\":\"^(?!\\\\\\\\1\\\\\\\\s+|$\\\\\\\\n*)\",\"name\":\"meta.embedded.markdown\",\"patterns\":[{\"include\":\"text.html.markdown\"}]},{\"begin\":\"^(\\\\\\\\s*)(:(css|styles?))$\",\"captures\":{\"2\":{\"name\":\"entity.name.tag.haml\"}},\"end\":\"^(?!\\\\\\\\1\\\\\\\\s+|$\\\\\\\\n*)\",\"name\":\"meta.embedded.css\",\"patterns\":[{\"include\":\"source.css\"}]},{\"begin\":\"^(\\\\\\\\s*)(:sass)$\",\"captures\":{\"2\":{\"name\":\"entity.name.tag.haml\"}},\"end\":\"^(?!\\\\\\\\1\\\\\\\\s+|$\\\\\\\\n*)\",\"name\":\"meta.embedded.sass\",\"patterns\":[{\"include\":\"source.sass\"}]},{\"begin\":\"^(\\\\\\\\s*)(:scss)$\",\"captures\":{\"2\":{\"name\":\"entity.name.tag.haml\"}},\"end\":\"^(?!\\\\\\\\1\\\\\\\\s+|$\\\\\\\\n*)\",\"name\":\"meta.embedded.scss\",\"patterns\":[{\"include\":\"source.scss\"}]}],\"repository\":{\"continuation\":{\"captures\":{\"1\":{\"name\":\"punctuation.separator.continuation.haml\"}},\"match\":\"(\\\\\\\\|)\\\\\\\\s*\\\\\\\\n\"},\"interpolated_ruby\":{\"patterns\":[{\"captures\":{\"0\":{\"name\":\"punctuation.section.embedded.ruby\"},\"1\":{\"name\":\"source.ruby.embedded.source.empty\"}},\"match\":\"#\\\\\\\\{(\\\\\\\\})\",\"name\":\"source.ruby.embedded.source\"},{\"begin\":\"#\\\\\\\\{\",\"captures\":{\"0\":{\"name\":\"punctuation.section.embedded.ruby\"}},\"end\":\"(\\\\\\\\})\",\"name\":\"source.ruby.embedded.source\",\"patterns\":[{\"include\":\"#nest_curly_and_self\"},{\"include\":\"source.ruby\"}]},{\"include\":\"#variables\"}]},\"interpolated_ruby_line\":{\"begin\":\"!?==\",\"contentName\":\"string.source.ruby.embedded.haml\",\"end\":\"$\",\"name\":\"meta.line.ruby.interpolated.haml\",\"patterns\":[{\"include\":\"#interpolated_ruby\"},{\"include\":\"source.ruby#escaped_char\"}]},\"nest_curly_and_self\":{\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"captures\":{\"0\":{\"name\":\"punctuation.section.scope.ruby\"}},\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"#nest_curly_and_self\"},{\"include\":\"source.ruby\"}]}]},\"rubyline\":{\"begin\":\"(&amp|!)?(=|-|~)\",\"contentName\":\"source.ruby.embedded.haml\",\"end\":\"((do|\\\\\\\\{)( \\\\\\\\|[.*]+\\\\\\\\|)?)$|$|^(?!.*\\\\\\\\|\\\\\\\\s*)$\\\\\\\\n?\",\"endCaptures\":{\"1\":{\"name\":\"source.ruby.embedded.html\"},\"2\":{\"name\":\"keyword.control.ruby.start-block\"}},\"name\":\"meta.line.ruby.haml\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.php\"}},\"match\":\"\\\\\\\\s+((elseif|foreach|switch|declare|default|use))(?=\\\\\\\\s|\\\\\\\\()\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.import.include.php\"}},\"match\":\"\\\\\\\\s+(require_once|include_once)(?=\\\\\\\\s|\\\\\\\\()\"},{\"match\":\"\\\\\\\\s+(catch|try|throw|exception|finally|die)(?=\\\\\\\\s|\\\\\\\\(|\\\\\\\\n*)\",\"name\":\"keyword.control.exception.php\"},{\"captures\":{\"1\":{\"name\":\"storage.type.function.php\"}},\"match\":\"\\\\\\\\s+(function\\\\\\\\s*)((?=\\\\\\\\())\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.php\"}},\"match\":\"\\\\\\\\s+(use\\\\\\\\s*)((?=\\\\\\\\())\"},{\"match\":\"(\\\\\\\\||,|<|do|\\\\\\\\{)\\\\\\\\s*(\\\\\\\\#.*)?$\\\\\\\\n*\",\"name\":\"source.ruby\",\"patterns\":[{\"include\":\"#rubyline\"}]},{\"comment\":\"Hack to let ruby comments work in this context properly\",\"match\":\"#.*$\",\"name\":\"comment.line.number-sign.ruby\"},{\"include\":\"source.ruby\"},{\"include\":\"#continuation\"}]},\"variables\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.ruby\"}},\"match\":\"(#@)[a-zA-Z_]\\\\\\\\w*\",\"name\":\"variable.other.readwrite.instance.ruby\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.ruby\"}},\"match\":\"(#@@)[a-zA-Z_]\\\\\\\\w*\",\"name\":\"variable.other.readwrite.class.ruby\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.ruby\"}},\"match\":\"(#\\\\\\\\$)[a-zA-Z_]\\\\\\\\w*\",\"name\":\"variable.other.readwrite.global.ruby\"}]}},\"scopeName\":\"text.haml\",\"embeddedLangs\":[\"javascript\",\"css\"],\"embeddedLangsLazy\":[\"ruby\",\"sass\",\"coffee\",\"markdown\"]}')),r=[...e,...n,a];export{r as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/m4uW47V2.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Vim Script\",\"name\":\"viml\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#constant\"},{\"include\":\"#entity\"},{\"include\":\"#keyword\"},{\"include\":\"#punctuation\"},{\"include\":\"#storage\"},{\"include\":\"#strings\"},{\"include\":\"#support\"},{\"include\":\"#variable\"},{\"include\":\"#syntax\"},{\"include\":\"#commands\"},{\"include\":\"#option\"},{\"include\":\"#map\"}],\"repository\":{\"commands\":{\"patterns\":[{\"match\":\"\\\\\\\\bcom(\\\\\\\\s|\\\\\\\\!)\",\"name\":\"storage.other.command.viml\"},{\"match\":\"\\\\\\\\bau(\\\\\\\\s|\\\\\\\\!)\",\"name\":\"storage.other.command.viml\"},{\"match\":\"-bang\",\"name\":\"storage.other.command.bang.viml\"},{\"match\":\"-nargs=[*+0-9]+\",\"name\":\"storage.other.command.args.viml\"},{\"match\":\"-complete=\\\\\\\\S+\",\"name\":\"storage.other.command.completion.viml\"},{\"begin\":\"(aug(roup)?)\",\"end\":\"(augroup\\\\\\\\sEND|$)\",\"name\":\"support.function.augroup.viml\"}]},\"comment\":{\"patterns\":[{\"begin\":\"((\\\\\\\\s+)?\\\\\"\\\\\"\\\\\")\",\"end\":\"^(?!\\\\\")\",\"name\":\"comment.block.documentation.viml\"},{\"match\":\"^\\\\\"\\\\\\\\svim:.*\",\"name\":\"comment.block.modeline.viml\"},{\"begin\":\"(\\\\\\\\s+\\\\\"\\\\\\\\s+)(?!\\\\\")\",\"end\":\"$\",\"name\":\"comment.line.viml\",\"patterns\":[{\"match\":\"\\\\\\\\{\\\\\\\\{\\\\\\\\{\\\\\\\\d?$\",\"name\":\"comment.line.foldmarker.viml\"},{\"match\":\"\\\\\\\\}\\\\\\\\}\\\\\\\\}\\\\\\\\d?\",\"name\":\"comment.line.foldmarker.viml\"}]},{\"begin\":\"^(\\\\\\\\s+)?\\\\\"\",\"end\":\"$\",\"name\":\"comment.line.viml\",\"patterns\":[{\"match\":\"\\\\\\\\{\\\\\\\\{\\\\\\\\{\\\\\\\\d?$\",\"name\":\"comment.line.foldmarker.viml\"},{\"match\":\"\\\\\\\\}\\\\\\\\}\\\\\\\\}\\\\\\\\d?\",\"name\":\"comment.line.foldmarker.viml\"}]}]},\"constant\":{\"patterns\":[{\"match\":\"\\\\\\\\b(true|false)\\\\\\\\b\",\"name\":\"constant.language.boolean.viml\"},{\"match\":\"\\\\\\\\b([0-9]+)\\\\\\\\b\",\"name\":\"constant.numeric.viml\"}]},\"entity\":{\"patterns\":[{\"match\":\"(([absg]\\\\\\\\:)?[a-zA-Z0-9_#.]{2,})\\\\\\\\b(?=\\\\\\\\()\",\"name\":\"entity.name.function.viml\"}]},\"keyword\":{\"patterns\":[{\"match\":\"\\\\\\\\b(if|while|for|return|au(g|group)|else(if|)?|do|in)\\\\\\\\b\",\"name\":\"keyword.control.viml\"},{\"match\":\"\\\\\\\\b(end|endif|endfor|endwhile)\\\\\\\\s|$\",\"name\":\"keyword.control.viml\"},{\"match\":\"\\\\\\\\b(break|continue|try|catch|endtry|finally|finish|throw|range)\\\\\\\\b\",\"name\":\"keyword.control.viml\"},{\"match\":\"\\\\\\\\b(fun|func|function|endfunction|endfunc)\\\\\\\\b\",\"name\":\"keyword.function.viml\"},{\"match\":\"\\\\\\\\b(normal|silent)\\\\\\\\b\",\"name\":\"keyword.other.viml\"},{\"include\":\"#operators\"}]},\"map\":{\"patterns\":[{\"begin\":\"(\\\\\\\\<)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.map.viml\"}},\"end\":\"(\\\\\\\\>|\\\\\\\\s)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.map.viml\"}},\"patterns\":[{\"match\":\"(?<=:\\\\\\\\s)(.+)\",\"name\":\"constant.character.map.rhs.viml\"},{\"match\":\"(?i:(bang|buffer|expr|nop|plug|sid|silent))\",\"name\":\"constant.character.map.special.viml\"},{\"match\":\"(?i:([adcms]-\\\\\\\\w))\",\"name\":\"constant.character.map.key.viml\"},{\"match\":\"(?i:(F[0-9]+))\",\"name\":\"constant.character.map.key.fn.viml\"},{\"match\":\"(?i:(bs|bar|cr|del|down|esc|left|right|space|tab|up|leader))\",\"name\":\"constant.character.map.viml\"}]},{\"match\":\"(\\\\\\\\b([cinostvx]?(nore)?map)\\\\\\\\b)\",\"name\":\"storage.type.map.viml\"}]},\"operators\":{\"patterns\":[{\"match\":\"([#+?!=~\\\\\\\\\\\\\\\\])\",\"name\":\"keyword.operator.viml\"},{\"match\":\" ([:\\\\\\\\-.]|[&|]{2})( |$)\",\"name\":\"keyword.operator.viml\"},{\"match\":\"([.]{3})\",\"name\":\"keyword.operator.viml\"},{\"match\":\"( [<>] )\",\"name\":\"keyword.operator.viml\"},{\"match\":\"(>=)\",\"name\":\"keyword.operator.viml\"}]},\"option\":{\"patterns\":[{\"match\":\"&?\\\\\\\\b(al|aleph|anti|antialias|arab|arabic|arshape|arabicshape|ari|allowrevins|akm|altkeymap|ambw|ambiwidth|acd|autochdir|ai|autoindent|ar|autoread|aw|autowrite|awa|autowriteall|bg|background|bs|backspace|bk|backup|bkc|backupcopy|bdir|backupdir|bex|backupext|bsk|backupskip|bdlay|balloondelay|beval|ballooneval|bevalterm|balloonevalterm|bexpr|balloonexpr|bo|belloff|bin|binary|bomb|brk|breakat|bri|breakindent|briopt|breakindentopt|bsdir|browsedir|bh|bufhidden|bl|buflisted|bt|buftype|cmp|casemap|cd|cdpath|cedit|ccv|charconvert|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|cb|clipboard|ch|cmdheight|cwh|cmdwinheight|cc|colorcolumn|co|columns|com|comments|cms|commentstring|cp|compatible|cpt|complete|cocu|concealcursor|cole|conceallevel|cfu|completefunc|cot|completeopt|cf|confirm|ci|copyindent|cpo|cpoptions|cm|cryptmethod|cspc|cscopepathcomp|csprg|cscopeprg|csqf|cscopequickfix|csre|cscoperelative|cst|cscopetag|csto|cscopetagorder|csverb|cscopeverbose|crb|cursorbind|cuc|cursorcolumn|cul|cursorline|debug|def|define|deco|delcombine|dict|dictionary|diff|dex|diffexpr|dip|diffopt|dg|digraph|dir|directory|dy|display|ead|eadirection|ed|edcompatible|emo|emoji|enc|encoding|eol|endofline|ea|equalalways|ep|equalprg|eb|errorbells|ef|errorfile|efm|errorformat|ek|esckeys|ei|eventignore|et|expandtab|ex|exrc|fenc|fileencoding|fencs|fileencodings|ff|fileformat|ffs|fileformats|fic|fileignorecase|ft|filetype|fcs|fillchars|fixeol|fixendofline|fk|fkmap|fcl|foldclose|fdc|foldcolumn|fen|foldenable|fde|foldexpr|fdi|foldignore|fdl|foldlevel|fdls|foldlevelstart|fmr|foldmarker|fdm|foldmethod|fml|foldminlines|fdn|foldnestmax|fdo|foldopen|fdt|foldtext|fex|formatexpr|fo|formatoptions|flp|formatlistpat|fp|formatprg|fs|fsync|gd|gdefault|gfm|grepformat|gp|grepprg|gcr|guicursor|gfn|guifont|gfs|guifontset|gfw|guifontwide|ghr|guiheadroom|go|guioptions|guipty|gtl|guitablabel|gtt|guitabtooltip|hf|helpfile|hh|helpheight|hlg|helplang|hid|hidden|hl|highlight|hi|history|hk|hkmap|hkp|hkmapp|hls|hlsearch|icon|iconstring|ic|ignorecase|imaf|imactivatefunc|imak|imactivatekey|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|imsf|imstatusfunc|imst|imstyle|inc|include|inex|includeexpr|is|incsearch|inde|indentexpr|indk|indentkeys|inf|infercase|im|insertmode|isf|isfname|isi|isident|isk|iskeyword|isp|isprint|js|joinspaces|key|kmp|keymap|km|keymodel|kp|keywordprg|lmap|langmap|lm|langmenu|lnr|langnoremap|lrm|langremap|ls|laststatus|lz|lazyredraw|lbr|linebreak|lines|lsp|linespace|lisp|lw|lispwords|list|lcs|listchars|lpl|loadplugins|luadll|macatsui|magic|mef|makeef|menc|makeencoding|mp|makeprg|mps|matchpairs|mat|matchtime|mco|maxcombine|mfd|maxfuncdepth|mmd|maxmapdepth|mm|maxmem|mmp|maxmempattern|mmt|maxmemtot|mis|menuitems|msm|mkspellmem|ml|modeline|mls|modelines|ma|modifiable|mod|modified|more|mouse|mousef|mousefocus|mh|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mzschemedll|mzschemegcdll|mzq|mzquantum|nf|nrformats|nu|number|nuw|numberwidth|ofu|omnifunc|odev|opendevice|opfunc|operatorfunc|pp|packpath|para|paragraphs|paste|pt|pastetoggle|pex|patchexpr|pm|patchmode|pa|path|perldll|pi|preserveindent|pvh|previewheight|pvw|previewwindow|pdev|printdevice|penc|printencoding|pexpr|printexpr|pfn|printfont|pheader|printheader|pmbcs|printmbcharset|pmbfn|printmbfont|popt|printoptions|prompt|ph|pumheight|pythonthreedll|pythondll|pyx|pyxversion|qe|quoteescape|ro|readonly|rdt|redrawtime|re|regexpengine|rnu|relativenumber|remap|rop|renderoptions|report|rs|restorescreen|ri|revins|rl|rightleft|rlc|rightleftcmd|rubydll|ru|ruler|ruf|rulerformat|rtp|runtimepath|scr|scroll|scb|scrollbind|sj|scrolljump|so|scrolloff|sbo|scrollopt|sect|sections|secure|sel|selection|slm|selectmode|ssop|sessionoptions|sh|shell|shcf|shellcmdflag|sp|shellpipe|shq|shellquote|srr|shellredir|ssl|shellslash|stmp|shelltemp|st|shelltype|sxq|shellxquote|sxe|shellxescape|sr|shiftround|sw|shiftwidth|shm|shortmess|sn|shortname|sbr|showbreak|sc|showcmd|sft|showfulltag|sm|showmatch|smd|showmode|stal|showtabline|ss|sidescroll|siso|sidescrolloff|scl|signcolumn|scs|smartcase|si|smartindent|sta|smarttab|sts|softtabstop|spell|spc|spellcapcheck|spf|spellfile|spl|spelllang|sps|spellsuggest|sb|splitbelow|spr|splitright|sol|startofline|stl|statusline|su|suffixes|sua|suffixesadd|swf|swapfile|sws|swapsync|swb|switchbuf|smc|synmaxcol|syn|syntax|tal|tabline|tpm|tabpagemax|ts|tabstop|tbs|tagbsearch|tc|tagcase|tl|taglength|tr|tagrelative|tag|tags|tgst|tagstack|tcldll|term|tbidi|termbidi|tenc|termencoding|tgc|termguicolors|tk|termkey|tms|termsize|terse|ta|textauto|tx|textmode|tw|textwidth|tsr|thesaurus|top|tildeop|to|timeout|tm|timeoutlen|title|titlelen|titleold|titlestring|tb|toolbar|tbis|toolbariconsize|ttimeout|ttm|ttimeoutlen|tbi|ttybuiltin|tf|ttyfast|ttym|ttymouse|tsl|ttyscroll|tty|ttytype|udir|undodir|udf|undofile|ul|undolevels|ur|undoreload|uc|updatecount|ut|updatetime|vbs|verbose|vfile|verbosefile|vdir|viewdir|vop|viewoptions|vi|viminfo|vif|viminfofile|ve|virtualedit|vb|visualbell|warn|wiv|weirdinvert|ww|whichwrap|wc|wildchar|wcm|wildcharm|wig|wildignore|wic|wildignorecase|wmnu|wildmenu|wim|wildmode|wop|wildoptions|wak|winaltkeys|wi|window|wh|winheight|wfh|winfixheight|wfw|winfixwidth|wmh|winminheight|wmw|winminwidth|winptydll|wiw|winwidth|wrap|wm|wrapmargin|ws|wrapscan|write|wa|writeany|wb|writebackup|wd|writedelay)\\\\\\\\b\",\"name\":\"support.type.option.viml\"},{\"match\":\"&?\\\\\\\\b(aleph|allowrevins|altkeymap|ambiwidth|autochdir|arabic|arabicshape|autoindent|autoread|autowrite|autowriteall|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|belloff|binary|bomb|breakat|breakindent|breakindentopt|browsedir|bufhidden|buflisted|buftype|casemap|cdpath|cedit|charconvert|cindent|cinkeys|cinoptions|cinwords|clipboard|cmdheight|cmdwinheight|colorcolumn|columns|comments|commentstring|complete|completefunc|completeopt|concealcursor|conceallevel|confirm|copyindent|cpoptions|cscopepathcomp|cscopeprg|cscopequickfix|cscoperelative|cscopetag|cscopetagorder|cscopeverbose|cursorbind|cursorcolumn|cursorline|debug|define|delcombine|dictionary|diff|diffexpr|diffopt|digraph|directory|display|eadirection|encoding|endofline|equalalways|equalprg|errorbells|errorfile|errorformat|eventignore|expandtab|exrc|fileencoding|fileencodings|fileformat|fileformats|fileignorecase|filetype|fillchars|fixendofline|fkmap|foldclose|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldopen|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fsync|gdefault|grepformat|grepprg|guicursor|guifont|guifontset|guifontwide|guioptions|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hidden|hlsearch|history|hkmap|hkmapp|icon|iconstring|ignorecase|imcmdline|imdisable|iminsert|imsearch|include|includeexpr|incsearch|indentexpr|indentkeys|infercase|insertmode|isfname|isident|iskeyword|isprint|joinspaces|keymap|keymodel|keywordprg|langmap|langmenu|langremap|laststatus|lazyredraw|linebreak|lines|linespace|lisp|lispwords|list|listchars|loadplugins|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|menuitems|mkspellmem|modeline|modelines|modifiable|modified|more|mouse|mousefocus|mousehide|mousemodel|mouseshape|mousetime|nrformats|number|numberwidth|omnifunc|opendevice|operatorfunc|packpath|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|perldll|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pumheight|pythondll|pythonthreedll|quoteescape|readonly|redrawtime|regexpengine|relativenumber|remap|report|revins|rightleft|rightleftcmd|rubydll|ruler|rulerformat|runtimepath|scroll|scrollbind|scrolljump|scrolloff|scrollopt|sections|secure|selection|selectmode|sessionoptions|shada|shell|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shellxescape|shellxquote|shiftround|shiftwidth|shortmess|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|sidescroll|sidescrolloff|signcolumn|smartcase|smartindent|smarttab|softtabstop|spell|spellcapcheck|spellfile|spelllang|spellsuggest|splitbelow|splitright|startofline|statusline|suffixes|suffixesadd|swapfile|switchbuf|synmaxcol|syntax|tabline|tabpagemax|tabstop|tagbsearch|tagcase|taglength|tagrelative|tags|tagstack|term|termbidi|terse|textwidth|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|ttimeout|ttimeoutlen|ttytype|undodir|undofile|undolevels|undoreload|updatecount|updatetime|verbose|verbosefile|viewdir|viewoptions|virtualedit|visualbell|warn|whichwrap|wildchar|wildcharm|wildignore|wildignorecase|wildmenu|wildmode|wildoptions|winaltkeys|window|winheight|winfixheight|winfixwidth|winminheight|winminwidth|winwidth|wrap|wrapmargin|wrapscan|write|writeany|writebackup|writedelay)\\\\\\\\b\",\"name\":\"support.type.option.viml\"},{\"match\":\"&?\\\\\\\\b(al|ari|akm|ambw|acd|arab|arshape|ai|ar|aw|awa|bg|bs|bk|bkc|bdir|bex|bsk|bdlay|beval|bexpr|bo|bin|bomb|brk|bri|briopt|bsdir|bh|bl|bt|cmp|cd|cedit|ccv|cin|cink|cino|cinw|cb|ch|cwh|cc|co|com|cms|cpt|cfu|cot|cocu|cole|cf|ci|cpo|cspc|csprg|csqf|csre|cst|csto|cpo|crb|cuc|cul|debug|def|deco|dict|diff|dex|dip|dg|dir|dy|ead|enc|eol|ea|ep|eb|ef|efm|ei|et|ex|fenc|fencs|ff|ffs|fic|ft|fcs|fixeol|fk|fcl|fdc|fen|fde|fdi|fdl|fdls|fmr|fdm|fml|fdn|fdo|fdt|fex|flp|fo|fp|fs|gd|gfm|gp|gcr|gfn|gfs|gfw|go|gtl|gtt|hf|hh|hlg|hid|hls|hi|hk|hkp|icon|iconstring|ic|imc|imd|imi|ims|inc|inex|is|inde|indk|inf|im|isf|isi|isk|isp|js|kmp|km|kp|lmap|lm|lrm|ls|lz|lbr|lines|lsp|lisp|lw|list|lcs|lpl|magic|mef|mp|mps|mat|mco|mfd|mmd|mm|mmp|mmt|mis|msm|ml|mls|ma|mod|more|mouse|mousef|mh|mousem|mouses|mouset|nf|nu|nuw|ofu|odev|opfunc|pp|para|paste|pt|pex|pm|pa|perldll|pi|pvh|pvw|pdev|penc|pexpr|pfn|pheader|pmbcs|pmbfn|popt|prompt|ph|pythondll|pythonthreedlll|qe|ro|rdt|re|rnu|remap|report|ri|rl|rlc|rubydll|ru|ruf|rtp|scr|scb|sj|so|sbo|sect|secure|sel|slm|ssop|sd|sh|shcf|sp|shq|srr|ssl|stmp|sxe|sxq|sr|sw|shm|sbr|sc|sft|sm|smd|stal|ss|siso|scl|scs|si|sta|sts|spell|spc|spf|spl|sps|sb|spr|sol|stl|su|sua|swf|swb|smc|syn|tal|tpm|ts|tbs|tc|tl|tr|tag|tgst|term|tbidi|terse|tw|tsr|top|to|tm|title|titlelen|titleold|titlestring|ttimeout|ttm|tty|udir|udf|ul|ur|uc|ut|vbs|vfile|vdir|vop|ve|vb|warn|ww|wc|wcm|wig|wic|wmnu|wim|wop|wak|wi|wh|wfh|wfw|wmh|wmw|wiw|wrap|wm|ws|write|wa|wb|wd)\\\\\\\\b\",\"name\":\"support.type.option.shortname.viml\"},{\"match\":\"\\\\\\\\b(noanti|noantialias|noarab|noarabic|noarshape|noarabicshape|noari|noallowrevins|noakm|noaltkeymap|noacd|noautochdir|noai|noautoindent|noar|noautoread|noaw|noautowrite|noawa|noautowriteall|nobk|nobackup|nobeval|noballooneval|nobevalterm|noballoonevalterm|nobin|nobinary|nobomb|nobri|nobreakindent|nobl|nobuflisted|nocin|nocindent|nocp|nocompatible|nocf|noconfirm|noci|nocopyindent|nocsre|nocscoperelative|nocst|nocscopetag|nocsverb|nocscopeverbose|nocrb|nocursorbind|nocuc|nocursorcolumn|nocul|nocursorline|nodeco|nodelcombine|nodiff|nodg|nodigraph|noed|noedcompatible|noemo|noemoji|noeol|noendofline|noea|noequalalways|noeb|noerrorbells|noek|noesckeys|noet|noexpandtab|noex|noexrc|nofic|nofileignorecase|nofixeol|nofixendofline|nofk|nofkmap|nofen|nofoldenable|nofs|nofsync|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkp|nohkmapp|nohls|nohlsearch|noicon|noic|noignorecase|noimc|noimcmdline|noimd|noimdisable|nois|noincsearch|noinf|noinfercase|noim|noinsertmode|nojs|nojoinspaces|nolnr|nolangnoremap|nolrm|nolangremap|nolz|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|nolpl|noloadplugins|nomacatsui|nomagic|noml|nomodeline|noma|nomodifiable|nomod|nomodified|nomore|nomousef|nomousefocus|nomh|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopvw|nopreviewwindow|noprompt|noro|noreadonly|nornu|norelativenumber|nors|norestorescreen|nori|norevins|norl|norightleft|noru|noruler|noscb|noscrollbind|nosecure|nossl|noshellslash|nostmp|noshelltemp|nosr|noshiftround|nosn|noshortname|nosc|noshowcmd|nosft|noshowfulltag|nosm|noshowmatch|nosmd|noshowmode|noscs|nosmartcase|nosi|nosmartindent|nosta|nosmarttab|nospell|nosb|nosplitbelow|nospr|nosplitright|nosol|nostartofline|noswf|noswapfile|notbs|notagbsearch|notr|notagrelative|notgst|notagstack|notbidi|notermbidi|notgc|notermguicolors|noterse|nota|notextauto|notx|notextmode|notop|notildeop|noto|notimeout|notitle|nottimeout|notbi|nottybuiltin|notf|nottyfast|noudf|noundofile|novb|novisualbell|nowarn|nowiv|noweirdinvert|nowic|nowildignorecase|nowmnu|nowildmenu|nowfh|nowinfixheight|nowfw|nowinfixwidth|nowrapscan|nowrap|nows|nowrite|nowa|nowriteany|nowb|nowritebackup)\\\\\\\\b\",\"name\":\"support.type.option.off.viml\"}]},\"punctuation\":{\"patterns\":[{\"match\":\"([()])\",\"name\":\"punctuation.parens.viml\"},{\"match\":\"([,])\",\"name\":\"punctuation.comma.viml\"}]},\"storage\":{\"patterns\":[{\"match\":\"\\\\\\\\b(call|let|unlet)\\\\\\\\b\",\"name\":\"storage.viml\"},{\"match\":\"\\\\\\\\b(abort|autocmd)\\\\\\\\b\",\"name\":\"storage.viml\"},{\"match\":\"\\\\\\\\b(set(l|local)?)\\\\\\\\b\",\"name\":\"storage.viml\"},{\"match\":\"\\\\\\\\b(com(mand)?)\\\\\\\\b\",\"name\":\"storage.viml\"},{\"match\":\"\\\\\\\\b(color(scheme)?)\\\\\\\\b\",\"name\":\"storage.viml\"},{\"match\":\"\\\\\\\\b(Plug|Plugin)\\\\\\\\b\",\"name\":\"storage.plugin.viml\"}]},\"strings\":{\"patterns\":[{\"begin\":\"\\\\\"\",\"end\":\"(\\\\\"|$)\",\"name\":\"string.quoted.double.viml\",\"patterns\":[]},{\"begin\":\"'\",\"end\":\"('|$)\",\"name\":\"string.quoted.single.viml\",\"patterns\":[]},{\"match\":\"/(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\|\\\\\\\\\\\\\\\\/|[^\\\\\\\\n/])*/\",\"name\":\"string.regexp.viml\"}]},\"support\":{\"patterns\":[{\"match\":\"(add|call|delete|empty|extend|get|has|isdirectory|join|printf)(?=\\\\\\\\()\",\"name\":\"support.function.viml\"},{\"match\":\"\\\\\\\\b(echo(m|hl)?|exe(cute)?|redir|redraw|sleep|so(urce)?|wincmd|setf)\\\\\\\\b\",\"name\":\"support.function.viml\"},{\"match\":\"(v\\\\\\\\:(beval_col|beval_bufnr|beval_lnum|beval_text|beval_winnr|char|charconvert_from|charconvert_to|cmdarg|cmdbang|count|count1|ctype|dying|errmsg|exception|fcs_reason|fcs_choice|fname_in|fname_out|fname_new|fname_diff|folddashes|foldlevel|foldend|foldstart|insertmode|key|lang|lc_time|lnum|mouse_win|mouse_lnum|mouse_col|oldfiles|operator|prevcount|profiling|progname|register|scrollstart|servername|searchforward|shell_error|statusmsg|swapname|swapchoice|swapcommand|termresponse|this_session|throwpoint|val|version|warningmsg|windowid))\",\"name\":\"support.type.builtin.vim-variable.viml\"},{\"match\":\"(&(cpo|isk|omnifunc|paste|previewwindow|rtp|tags|term|wrap))\",\"name\":\"support.type.builtin.viml\"},{\"match\":\"(&(shell(cmdflag|redir)?))\",\"name\":\"support.type.builtin.viml\"},{\"match\":\"\\\\\\\\<args\\\\\\\\>\",\"name\":\"support.variable.args.viml\"},{\"match\":\"\\\\\\\\b(None|ErrorMsg|WarningMsg)\\\\\\\\b\",\"name\":\"support.type.syntax.viml\"},{\"match\":\"\\\\\\\\b(BufNewFile|BufReadPre|BufRead|BufReadPost|BufReadCmd|FileReadPre|FileReadPost|FileReadCmd|FilterReadPre|FilterReadPost|StdinReadPre|StdinReadPost|BufWrite|BufWritePre|BufWritePost|BufWriteCmd|FileWritePre|FileWritePost|FileWriteCmd|FileAppendPre|FileAppendPost|FileAppendCmd|FilterWritePre|FilterWritePost|BufAdd|BufCreate|BufDelete|BufWipeout|BufFilePre|BufFilePost|BufEnter|BufLeave|BufWinEnter|BufWinLeave|BufUnload|BufHidden|BufNew|SwapExists|TermOpen|TermClose|FileType|Syntax|OptionSet|VimEnter|GUIEnter|GUIFailed|TermResponse|QuitPre|VimLeavePre|VimLeave|DirChanged|FileChangedShell|FileChangedShellPost|FileChangedRO|ShellCmdPost|ShellFilterPost|CmdUndefined|FuncUndefined|SpellFileMissing|SourcePre|SourceCmd|VimResized|FocusGained|FocusLost|CursorHold|CursorHoldI|CursorMoved|CursorMovedI|WinNew|WinEnter|WinLeave|TabEnter|TabLeave|TabNew|TabNewEntered|TabClosed|CmdlineEnter|CmdlineLeave|CmdwinEnter|CmdwinLeave|InsertEnter|InsertChange|InsertLeave|InsertCharPre|TextYankPost|TextChanged|TextChangedI|ColorScheme|RemoteReply|QuickFixCmdPre|QuickFixCmdPost|SessionLoadPost|MenuPopup|CompleteDone|User)\\\\\\\\b\",\"name\":\"support.type.event.viml\"},{\"match\":\"\\\\\\\\b(Comment|Constant|String|Character|Number|Boolean|Float|Identifier|Function|Statement|Conditional|Repeat|Label|Operator|Keyword|Exception|PreProc|Include|Define|Macro|PreCondit|Type|StorageClass|Structure|Typedef|Special|SpecialChar|Tag|Delimiter|SpecialComment|Debug|Underlined|Ignore|Error|Todo)\\\\\\\\b\",\"name\":\"support.type.syntax-group.viml\"}]},\"syntax\":{\"patterns\":[{\"match\":\"syn(tax)? case (ignore|match)\",\"name\":\"keyword.control.syntax.viml\"},{\"match\":\"syn(tax)? (clear|enable|include|off|on|manual|sync)\",\"name\":\"keyword.control.syntax.viml\"},{\"match\":\"\\\\\\\\b(contained|display|excludenl|fold|keepend|oneline|skipnl|skipwhite|transparent)\\\\\\\\b\",\"name\":\"keyword.other.syntax.viml\"},{\"match\":\"\\\\\\\\b(add|containedin|contains|matchgroup|nextgroup)\\\\\\\\=\",\"name\":\"keyword.other.syntax.viml\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.syntax-range.viml\"},\"3\":{\"name\":\"string.regexp.viml\"}},\"match\":\"((start|skip|end)\\\\\\\\=)(\\\\\\\\+\\\\\\\\S+\\\\\\\\+\\\\\\\\s)?\"},{\"captures\":{\"0\":{\"name\":\"support.type.syntax.viml\"},\"1\":{\"name\":\"storage.syntax.viml\"},\"3\":{\"name\":\"variable.other.syntax-scope.viml\"},\"4\":{\"name\":\"storage.modifier.syntax.viml\"}},\"match\":\"(syn|syntax)\\\\\\\\s+(cluster|keyword|match|region)(\\\\\\\\s+\\\\\\\\w+\\\\\\\\s+)(contained)?\",\"patterns\":[]},{\"captures\":{\"1\":{\"name\":\"storage.highlight.viml\"},\"2\":{\"name\":\"storage.modifier.syntax.viml\"},\"3\":{\"name\":\"support.function.highlight.viml\"},\"4\":{\"name\":\"variable.other.viml\"},\"5\":{\"name\":\"variable.other.viml\"}},\"match\":\"(hi|highlight)(?:\\\\\\\\s+)(def|default)(?:\\\\\\\\s+)(link)(?:\\\\\\\\s+)(\\\\\\\\w+)(?:\\\\\\\\s+)(\\\\\\\\w+)\",\"patterns\":[]}]},\"variable\":{\"patterns\":[{\"match\":\"https?://\\\\\\\\S+\",\"name\":\"variable.other.link.viml\"},{\"match\":\"(?<=\\\\\\\\()([a-zA-Z]+)(?=\\\\\\\\))\",\"name\":\"variable.parameter.viml\"},{\"match\":\"\\\\\\\\b([absgl]:[a-zA-Z0-9_.#]+)\\\\\\\\b(?!\\\\\\\\()\",\"name\":\"variable.other.viml\"}]}},\"scopeName\":\"source.viml\",\"aliases\":[\"vim\",\"vimscript\"]}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/mebxcVVE.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"Kusto\",\"fileTypes\":[\"csl\",\"kusto\",\"kql\"],\"name\":\"kusto\",\"patterns\":[{\"comment\":\"Tabular operators: common helper operators\",\"match\":\"\\\\\\\\b(by|from|of|to|step|with)\\\\\\\\b\",\"name\":\"keyword.other.operator.kusto\"},{\"comment\":\"Query statements: https://docs.microsoft.com/en-us/azure/kusto/query/statements\",\"match\":\"\\\\\\\\b(let|set|alias|declare|pattern|query_parameters|restrict|access|set)\\\\\\\\b\",\"name\":\"keyword.control.kusto\"},{\"comment\":\"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/datatypes-string-operators\",\"match\":\"\\\\\\\\b(and|or|has_all|has_any|matches|regex)\\\\\\\\b\",\"name\":\"keyword.other.operator.kusto\"},{\"captures\":{\"1\":{\"name\":\"support.function.kusto\"},\"2\":{\"patterns\":[{\"include\":\"#Strings\"}]}},\"comment\":\"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/clusterfunction\",\"match\":\"\\\\\\\\b(cluster|database)(?:\\\\\\\\s*\\\\\\\\(\\\\\\\\s*(.+?)\\\\\\\\s*\\\\\\\\))?(?!\\\\\\\\w)\",\"name\":\"meta.special.database.kusto\"},{\"comment\":\"Special functions: https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/tablefunction\",\"match\":\"\\\\\\\\b(external_table|materialized_view|materialize|table|toscalar)\\\\\\\\b\",\"name\":\"support.function.kusto\"},{\"comment\":\"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/betweenoperator\",\"match\":\"(?<!\\\\\\\\w)(!?between)\\\\\\\\b\",\"name\":\"keyword.other.operator.kusto\"},{\"captures\":{\"1\":{\"name\":\"support.function.kusto\"},\"2\":{\"patterns\":[{\"include\":\"#Numeric\"}]},\"3\":{\"patterns\":[{\"include\":\"#Numeric\"}]}},\"comment\":\"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/binoperators\",\"match\":\"\\\\\\\\b(binary_and|binary_or|binary_shift_left|binary_shift_right|binary_xor)(?:\\\\\\\\s*\\\\\\\\(\\\\\\\\s*(\\\\\\\\w+)\\\\\\\\s*,\\\\\\\\s*(\\\\\\\\w+)\\\\\\\\s*\\\\\\\\))?(?!\\\\\\\\w)\",\"name\":\"meta.scalar.bitwise.kusto\"},{\"captures\":{\"1\":{\"name\":\"support.function.kusto\"},\"2\":{\"patterns\":[{\"include\":\"#Numeric\"}]}},\"comment\":\"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/binary-notfunction\",\"match\":\"\\\\\\\\b(binary_not|bitset_count_ones)(?:\\\\\\\\s*\\\\\\\\(\\\\\\\\s*(\\\\\\\\w+)\\\\\\\\s*\\\\\\\\))?(?!\\\\\\\\w)\",\"name\":\"meta.scalar.bitwise.kusto\"},{\"comment\":\"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/in-cs-operator\",\"match\":\"(?<!\\\\\\\\w)(!?in~?)(?!\\\\\\\\w)\",\"name\":\"keyword.other.operator.kusto\"},{\"comment\":\"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/datatypes-string-operators\",\"match\":\"(?<!\\\\\\\\w)(!?(?:contains|endswith|hasprefix|hassuffix|has|startswith)(?:_cs)?)(?!\\\\\\\\w)\",\"name\":\"keyword.other.operator.kusto\"},{\"captures\":{\"1\":{\"name\":\"support.function.kusto\"},\"2\":{\"patterns\":[{\"include\":\"#DateTimeTimeSpanDataTypes\"},{\"include\":\"#TimeSpanLiterals\"},{\"include\":\"#DateTimeTimeSpanFunctions\"},{\"include\":\"#Numeric\"}]},\"3\":{\"patterns\":[{\"include\":\"#DateTimeTimeSpanDataTypes\"},{\"include\":\"#TimeSpanLiterals\"},{\"include\":\"#DateTimeTimeSpanFunctions\"},{\"include\":\"#Numeric\"}]},\"4\":{\"patterns\":[{\"include\":\"#DateTimeTimeSpanDataTypes\"},{\"include\":\"#TimeSpanLiterals\"},{\"include\":\"#DateTimeTimeSpanFunctions\"},{\"include\":\"#Numeric\"}]}},\"comment\":\"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/rangefunction\",\"match\":\"\\\\\\\\b(range)\\\\\\\\s*\\\\\\\\((?:\\\\\\\\s*(\\\\\\\\w+(?:\\\\\\\\(.*?\\\\\\\\))?)\\\\\\\\s*,\\\\\\\\s*(\\\\\\\\w+(?:\\\\\\\\(.*?\\\\\\\\))?)\\\\\\\\s*,?(?:\\\\\\\\s*)?(\\\\\\\\w+(?:\\\\\\\\(.*?\\\\\\\\))?)?\\\\\\\\s*\\\\\\\\))?(?!\\\\\\\\w)\",\"name\":\"meta.scalar.function.range.kusto\"},{\"comment\":\"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/scalarfunctions\",\"match\":\"\\\\\\\\b(abs|acos|around|array_concat|array_iff|array_index_of|array_length|array_reverse|array_rotate_left|array_rotate_right|array_shift_left|array_shift_right|array_slice|array_sort_asc|array_sort_desc|array_split|array_sum|asin|assert|atan2|atan|bag_has_key|bag_keys|bag_merge|bag_remove_keys|base64_decode_toarray|base64_decode_tostring|base64_decode_toguid|base64_encode_fromarray|base64_encode_tostring|base64_encode_fromguid|beta_cdf|beta_inv|beta_pdf|bin_at|bin_auto|case|ceiling|coalesce|column_ifexists|convert_angle|convert_energy|convert_force|convert_length|convert_mass|convert_speed|convert_temperature|convert_volume|cos|cot|countof|current_cluster_endpoint|current_database|current_principal_details|current_principal_is_member_of|current_principal|cursor_after|cursor_before_or_at|cursor_current|current_cursor|dcount_hll|degrees|dynamic_to_json|estimate_data_size|exp10|exp2|exp|extent_id|extent_tags|extract_all|extract_json|extractjson|extract|floor|format_bytes|format_ipv4_mask|format_ipv4|gamma|gettype|gzip_compress_to_base64_string|gzip_decompress_from_base64_string|has_any_index|has_any_ipv4_prefix|has_any_ipv4|has_ipv4_prefix|has_ipv4|hash_combine|hash_many|hash_md5|hash_sha1|hash_sha256|hash_xxhash64|hash|iff|iif|indexof_regex|indexof|ingestion_time|ipv4_compare|ipv4_is_in_range|ipv4_is_in_any_range|ipv4_is_match|ipv4_is_private|ipv4_netmask_suffix|ipv6_compare|ipv6_is_match|isascii|isempty|isfinite|isinf|isnan|isnotempty|notempty|isnotnull|notnull|isnull|isutf8|jaccard_index|log10|log2|loggamma|log|make_string|max_of|min_of|new_guid|not|bag_pack|pack_all|pack_array|pack_dictionary|pack|parse_command_line|parse_csv|parse_ipv4_mask|parse_ipv4|parse_ipv6_mask|parse_ipv6|parse_path|parse_urlquery|parse_url|parse_user_agent|parse_version|parse_xml|percentile_tdigest|percentile_array_tdigest|percentrank_tdigest|pi|pow|radians|rand|rank_tdigest|regex_quote|repeat|replace_regex|replace_string|reverse|round|set_difference|set_has_element|set_intersect|set_union|sign|sin|split|sqrt|strcat_array|strcat_delim|strcmp|strcat|string_size|strlen|strrep|substring|tan|to_utf8|tobool|todecimal|todouble|toreal|toguid|tohex|toint|tolong|tolower|tostring|toupper|translate|treepath|trim_end|trim_start|trim|unixtime_microseconds_todatetime|unixtime_milliseconds_todatetime|unixtime_nanoseconds_todatetime|unixtime_seconds_todatetime|url_decode|url_encode_component|url_encode|welch_test|zip|zlib_compress_to_base64_string|zlib_decompress_from_base64_string)\\\\\\\\b\",\"name\":\"support.function.kusto\"},{\"captures\":{\"1\":{\"name\":\"support.function.kusto\"},\"2\":{\"patterns\":[{\"include\":\"#DateTimeTimeSpanDataTypes\"},{\"include\":\"#TimeSpanLiterals\"},{\"include\":\"#DateTimeTimeSpanFunctions\"},{\"include\":\"#Numeric\"}]},\"3\":{\"patterns\":[{\"include\":\"#TimeSpanLiterals\"},{\"include\":\"#Numeric\"}]}},\"comment\":\"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/binfunction\",\"match\":\"\\\\\\\\b(bin)(?:\\\\\\\\s*\\\\\\\\(\\\\\\\\s*(.+?)\\\\\\\\s*,\\\\\\\\s*(.+?)\\\\\\\\s*\\\\\\\\))?(?!\\\\\\\\w)\",\"name\":\"meta.scalar.function.bin.kusto\"},{\"comment\":\"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/count-aggfunction\",\"match\":\"\\\\\\\\b(count)\\\\\\\\s*\\\\\\\\(\\\\\\\\s*\\\\\\\\)(?!\\\\\\\\w)\",\"name\":\"support.function.kusto\"},{\"comment\":\"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/aggregation-functions\",\"match\":\"\\\\\\\\b(arg_max|arg_min|avgif|avg|binary_all_and|binary_all_or|binary_all_xor|buildschema|countif|dcount|dcountif|hll|hll_merge|make_bag_if|make_bag|make_list_with_nulls|make_list_if|make_list|make_set_if|make_set|maxif|max|minif|min|percentilesw_array|percentiles_array|percentilesw|percentilew|percentiles|percentile|stdevif|stdevp|stdev|sumif|sum|take_anyif|take_any|tdigest_merge|merge_tdigest|tdigest|varianceif|variancep|variance)\\\\\\\\b\",\"name\":\"support.function.kusto\"},{\"comment\":\"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/geospatial-grid-systems\",\"match\":\"\\\\\\\\b(geo_distance_2points|geo_distance_point_to_line|geo_distance_point_to_polygon|geo_intersects_2lines|geo_intersects_2polygons|geo_intersects_line_with_polygon|geo_intersection_2lines|geo_intersection_2polygons|geo_intersection_line_with_polygon|geo_line_centroid|geo_line_densify|geo_line_length|geo_line_simplify|geo_polygon_area|geo_polygon_centroid|geo_polygon_densify|geo_polygon_perimeter|geo_polygon_simplify|geo_polygon_to_s2cells|geo_point_in_circle|geo_point_in_polygon|geo_point_to_geohash|geo_point_to_h3cell|geo_point_to_s2cell|geo_geohash_to_central_point|geo_geohash_neighbors|geo_geohash_to_polygon|geo_s2cell_to_central_point|geo_s2cell_neighbors|geo_s2cell_to_polygon|geo_h3cell_to_central_point|geo_h3cell_neighbors|geo_h3cell_to_polygon|geo_h3cell_parent|geo_h3cell_children|geo_h3cell_level|geo_h3cell_rings|geo_simplify_polygons_array|geo_union_lines_array|geo_union_polygons_array)\\\\\\\\b\",\"name\":\"support.function.kusto\"},{\"comment\":\"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/windowsfunctions\",\"match\":\"\\\\\\\\b(next|prev|row_cumsum|row_number|row_rank|row_window_session)\\\\\\\\b\",\"name\":\"support.function.kusto\"},{\"comment\":\"User-defined functions: https://docs.microsoft.com/en-us/azure/kusto/query/functions/user-defined-functions\",\"match\":\"\\\\\\\\.(create-or-alter|replace)\",\"name\":\"keyword.control.kusto\"},{\"comment\":\"User-defined functions: https://docs.microsoft.com/en-us/azure/kusto/query/functions/user-defined-functions\",\"match\":\"(?<=let )[^\\\\\\\\n]+(?=\\\\\\\\W*=)\",\"name\":\"entity.function.name.lambda.kusto\"},{\"comment\":\"User-defined functions: https://docs.microsoft.com/en-us/azure/kusto/query/functions/user-defined-functions\",\"match\":\"\\\\\\\\b(folder|docstring|skipvalidation)\\\\\\\\b\",\"name\":\"keyword.other.operator.kusto\"},{\"match\":\"\\\\\\\\b(function)\\\\\\\\b\",\"name\":\"storage.type.kusto\"},{\"comment\":\"Data types: https://docs.microsoft.com/en-us/azure/kusto/query/scalar-data-types\",\"match\":\"\\\\\\\\b(bool|decimal|dynamic|guid|int|long|real|string)\\\\\\\\b\",\"name\":\"storage.type.kusto\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.query.kusto\"},\"2\":{\"name\":\"variable.other.kusto\"}},\"comment\":\"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/asoperator\",\"match\":\"\\\\\\\\b(as)\\\\\\\\s+(\\\\\\\\w+)\\\\\\\\b\",\"name\":\"meta.query.as.kusto\"},{\"comment\":\"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/datatableoperator\",\"match\":\"\\\\\\\\b(datatable)(?=\\\\\\\\W*\\\\\\\\()\",\"name\":\"keyword.other.query.kusto\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.query.kusto\"},\"2\":{\"name\":\"keyword.other.operator.kusto\"}},\"comment\":\"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/facetoperator\",\"match\":\"\\\\\\\\b(facet)(?:\\\\\\\\s+(by))?\\\\\\\\b\",\"name\":\"meta.query.facet.kusto\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.query.kusto\"},\"2\":{\"name\":\"entity.name.function.kusto\"}},\"comment\":\"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/invokeoperator\",\"match\":\"\\\\\\\\b(invoke)(?:\\\\\\\\s+(\\\\\\\\w+))?\\\\\\\\b\",\"name\":\"meta.query.invoke.kusto\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.query.kusto\"},\"2\":{\"name\":\"keyword.other.operator.kusto\"},\"3\":{\"name\":\"variable.other.column.kusto\"}},\"comment\":\"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/orderoperator\",\"match\":\"\\\\\\\\b(order)(?:\\\\\\\\s+(by)\\\\\\\\s+(\\\\\\\\w+))?\\\\\\\\b\",\"name\":\"meta.query.order.kusto\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.query.kusto\"},\"2\":{\"name\":\"variable.other.column.kusto\"},\"3\":{\"name\":\"keyword.other.operator.kusto\"},\"4\":{\"patterns\":[{\"include\":\"#TimeSpanLiterals\"},{\"include\":\"#DateTimeTimeSpanFunctions\"},{\"include\":\"#Numeric\"}]},\"5\":{\"name\":\"keyword.other.operator.kusto\"},\"6\":{\"patterns\":[{\"include\":\"#TimeSpanLiterals\"},{\"include\":\"#DateTimeTimeSpanFunctions\"},{\"include\":\"#Numeric\"}]},\"7\":{\"name\":\"keyword.other.operator.kusto\"},\"8\":{\"patterns\":[{\"include\":\"#TimeSpanLiterals\"},{\"include\":\"#DateTimeTimeSpanFunctions\"},{\"include\":\"#Numeric\"}]}},\"comment\":\"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/rangeoperator\",\"match\":\"\\\\\\\\b(range)\\\\\\\\s+(\\\\\\\\w+)\\\\\\\\s+(from)\\\\\\\\s+(\\\\\\\\w+(?:\\\\\\\\(\\\\\\\\w*\\\\\\\\))?)\\\\\\\\s+(to)\\\\\\\\s+(\\\\\\\\w+(?:\\\\\\\\(\\\\\\\\w*\\\\\\\\))?)\\\\\\\\s+(step)\\\\\\\\s+(\\\\\\\\w+(?:\\\\\\\\(\\\\\\\\w*\\\\\\\\))?)\\\\\\\\b\",\"name\":\"meta.query.range.kusto\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.query.kusto\"},\"2\":{\"patterns\":[{\"include\":\"#Numeric\"}]}},\"comment\":\"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/sampleoperator\",\"match\":\"\\\\\\\\b(sample)(?:\\\\\\\\s+(\\\\\\\\d+))?(?![\\\\\\\\w-])\",\"name\":\"meta.query.sample.kusto\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.query.kusto\"},\"2\":{\"patterns\":[{\"include\":\"#Numeric\"}]},\"3\":{\"name\":\"keyword.other.operator.kusto\"},\"4\":{\"name\":\"variable.other.column.kusto\"}},\"comment\":\"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/sampledistinctoperator\",\"match\":\"\\\\\\\\b(sample-distinct)(?:\\\\\\\\s+(\\\\\\\\d+)\\\\\\\\s+(of)\\\\\\\\s+(\\\\\\\\w+))?\\\\\\\\b\",\"name\":\"meta.query.sample-distinct.kusto\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.query.kusto\"},\"2\":{\"name\":\"keyword.other.operator.kusto\"}},\"comment\":\"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/sortoperator\",\"match\":\"\\\\\\\\b(sort)(?:\\\\\\\\s+(by))?\\\\\\\\b\",\"name\":\"meta.query.sort.kusto\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.query.kusto\"},\"2\":{\"patterns\":[{\"include\":\"#Numeric\"}]}},\"comment\":\"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/takeoperator\",\"match\":\"\\\\\\\\b(take|limit)(?:\\\\\\\\s+(\\\\\\\\d+))\\\\\\\\b\",\"name\":\"meta.query.take.kusto\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.query.kusto\"},\"2\":{\"patterns\":[{\"include\":\"#Numeric\"}]},\"3\":{\"name\":\"keyword.other.operator.kusto\"},\"4\":{\"name\":\"variable.other.column.kusto\"}},\"comment\":\"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/topoperator\",\"match\":\"\\\\\\\\b(top)(?:\\\\\\\\s+(\\\\\\\\d+)\\\\\\\\s+(by)\\\\\\\\s+(\\\\\\\\w+))?(?![\\\\\\\\w-])\\\\\\\\b\",\"name\":\"meta.query.top.kusto\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.query.kusto\"},\"2\":{\"patterns\":[{\"include\":\"#Numeric\"}]},\"3\":{\"name\":\"keyword.other.operator.kusto\"},\"4\":{\"name\":\"variable.other.column.kusto\"},\"5\":{\"name\":\"keyword.other.operator.kusto\"},\"6\":{\"name\":\"variable.other.column.kusto\"}},\"comment\":\"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/tophittersoperator\",\"match\":\"\\\\\\\\b(top-hitters)(?:\\\\\\\\s+(\\\\\\\\d+)\\\\\\\\s+(of)\\\\\\\\s+(\\\\\\\\w+)(?:\\\\\\\\s+(by)\\\\\\\\s+(\\\\\\\\w+))?)?\\\\\\\\b\",\"name\":\"meta.query.top-hitters.kusto\"},{\"comment\":\"Tabular operators: https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/queries\",\"match\":\"\\\\\\\\b(consume|count|distinct|evaluate|extend|externaldata|find|fork|getschema|join|lookup|make-series|mv-apply|mv-expand|project-away|project-keep|project-rename|project-reorder|project|parse|parse-where|parse-kv|partition|print|reduce|render|scan|search|serialize|shuffle|summarize|top-nested|union|where)\\\\\\\\b\",\"name\":\"keyword.other.query.kusto\"},{\"comment\":\"Tabular operators: evalute (plugins): https://docs.microsoft.com/en-us/azure/kusto/query/evaluateoperator\",\"match\":\"\\\\\\\\b(active_users_count|activity_counts_metrics|activity_engagement|new_activity_metrics|activity_metrics|autocluster|azure_digital_twins_query_request|bag_unpack|basket|cosmosdb_sql_request|dcount_intersect|diffpatterns|funnel_sequence_completion|funnel_sequence|http_request_post|http_request|infer_storage_schema|ipv4_lookup|mysql_request|narrow|pivot|preview|rolling_percentile|rows_near|schema_merge|session_count|sequence_detect|sliding_window_counts|sql_request)\\\\\\\\b\",\"name\":\"support.function.kusto\"},{\"comment\":\"Tabular operators: join: https://docs.microsoft.com/en-us/azure/kusto/query/joinoperator\",\"match\":\"\\\\\\\\b(on|kind|hint\\\\\\\\.remote|hint\\\\\\\\.strategy)\\\\\\\\b\",\"name\":\"keyword.other.operator.kusto\"},{\"comment\":\"Tabular operators: join ($left, $right): https://docs.microsoft.com/en-us/azure/kusto/query/joinoperator\",\"match\":\"(\\\\\\\\$left|\\\\\\\\$right)\\\\\\\\b\",\"name\":\"keyword.other.kusto\"},{\"comment\":\"Tabular operators: join (kinds, strategies): https://docs.microsoft.com/en-us/azure/kusto/query/joinoperator\",\"match\":\"\\\\\\\\b(innerunique|inner|leftouter|rightouter|fullouter|leftanti|anti|leftantisemi|rightanti|rightantisemi|leftsemi|rightsemi|broadcast)\\\\\\\\b\",\"name\":\"keyword.other.kusto\"},{\"comment\":\"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/machine-learning-and-tsa\",\"match\":\"\\\\\\\\b(series_abs|series_acos|series_add|series_asin|series_atan|series_cos|series_decompose|series_decompose_anomalies|series_decompose_forecast|series_divide|series_equals|series_exp|series_fft|series_fill_backward|series_fill_const|series_fill_forward|series_fill_linear|series_fir|series_fit_2lines_dynamic|series_fit_2lines|series_fit_line_dynamic|series_fit_line|series_fit_poly|series_greater_equals|series_greater|series_ifft|series_iir|series_less_equals|series_less|series_multiply|series_not_equals|series_outliers|series_pearson_correlation|series_periods_detect|series_periods_validate|series_pow|series_seasonal|series_sign|series_sin|series_stats|series_stats_dynamic|series_subtract|series_tan)\\\\\\\\b\",\"name\":\"support.function.kusto\"},{\"comment\":\"Tabular operators: mv-expand (bagexpand options): https://docs.microsoft.com/en-us/azure/kusto/query/mvexpandoperator\",\"match\":\"\\\\\\\\b(bag|array)\\\\\\\\b\",\"name\":\"keyword.other.operator.kusto\"},{\"comment\":\"Tabular operators: order: https://docs.microsoft.com/en-us/azure/kusto/query/orderoperator\",\"match\":\"\\\\\\\\b(asc|desc|nulls first|nulls last)\\\\\\\\b\",\"name\":\"keyword.other.kusto\"},{\"comment\":\"Tabular operators: parse: https://docs.microsoft.com/en-us/azure/kusto/query/parseoperator\",\"match\":\"\\\\\\\\b(regex|simple|relaxed)\\\\\\\\b\",\"name\":\"keyword.other.kusto\"},{\"match\":\"\\\\\\\\b(anomalychart|areachart|barchart|card|columnchart|ladderchart|linechart|piechart|pivotchart|scatterchart|stackedareachart|timechart|timepivot)\\\\\\\\b\",\"name\":\"support.function.kusto\"},{\"include\":\"#Strings\"},{\"match\":\"\\\\\\\\{.*?\\\\\\\\}\",\"name\":\"string.other.kusto\"},{\"comment\":\"Comments\",\"match\":\"//.*\",\"name\":\"comment.line.kusto\"},{\"include\":\"#TimeSpanLiterals\"},{\"include\":\"#DateTimeTimeSpanFunctions\"},{\"include\":\"#DateTimeTimeSpanDataTypes\"},{\"include\":\"#Numeric\"},{\"match\":\"\\\\\\\\b(true|false|null)\\\\\\\\b\",\"name\":\"constant.language.kusto\"},{\"comment\":\"Deprecated functions\",\"match\":\"\\\\\\\\b(anyif|any|array_strcat|base64_decodestring|base64_encodestring|make_dictionary|makelist|makeset|mvexpand|todynamic|parse_json|replace|weekofyear)(?=\\\\\\\\W*\\\\\\\\(|\\\\\\\\b)\",\"name\":\"invalid.deprecated.kusto\"}],\"repository\":{\"DateTimeTimeSpanDataTypes\":{\"patterns\":[{\"match\":\"\\\\\\\\b(datetime|timespan|time)\\\\\\\\b\",\"name\":\"storage.type.kusto\"}]},\"DateTimeTimeSpanFunctions\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"support.function.kusto\"},\"2\":{\"patterns\":[{\"include\":\"#DateTimeTimeSpanDataTypes\"}]},\"3\":{\"patterns\":[{\"include\":\"#Strings\"}]}},\"comment\":\"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/format-datetimefunction\",\"match\":\"\\\\\\\\b(format_datetime)(?:\\\\\\\\s*\\\\\\\\(\\\\\\\\s*(.+?)\\\\\\\\s*,\\\\\\\\s*([\\'\\\\\"].*?[\\'\\\\\"])\\\\\\\\s*\\\\\\\\))?(?!\\\\\\\\w)\",\"name\":\"meta.scalar.function.format_datetime.kusto\"},{\"comment\":\"Scalar function: DateTime/Timespan Functions: https://docs.microsoft.com/en-us/azure/kusto/query/scalarfunctions#datetimetimespan-functions\",\"match\":\"\\\\\\\\b(ago|datetime_add|datetime_diff|datetime_local_to_utc|datetime_part|datetime_utc_to_local|dayofmonth|dayofweek|dayofyear|endofday|endofmonth|endofweek|endofyear|format_timespan|getmonth|getyear|hourofday|make_datetime|make_timespan|monthofyear|now|startofday|startofmonth|startofweek|startofyear|todatetime|totimespan|week_of_year)(?=\\\\\\\\W*\\\\\\\\()\",\"name\":\"support.function.kusto\"}]},\"Escapes\":{\"patterns\":[{\"match\":\"(\\\\\\\\\\\\\\\\[\\'\\\\\"]|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\)\",\"name\":\"constant.character.escape.kusto\"}]},\"Numeric\":{\"patterns\":[{\"match\":\"\\\\\\\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\\\\\\\.?[0-9]*+)|(\\\\\\\\.[0-9]+))((e|E)(\\\\\\\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?(?=\\\\\\\\b|\\\\\\\\w)\",\"name\":\"constant.numeric.kusto\"}]},\"Strings\":{\"patterns\":[{\"begin\":\"([@h]?\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.kusto\"}},\"comment\":\"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/scalar-data-types/string\",\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.kusto\"}},\"name\":\"string.quoted.double.kusto\",\"patterns\":[{\"include\":\"#Escapes\"}]},{\"begin\":\"([@h]?\\')\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.kusto\"}},\"comment\":\"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/scalar-data-types/string\",\"end\":\"\\'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.kusto\"}},\"name\":\"string.quoted.single.kusto\",\"patterns\":[{\"include\":\"#Escapes\"}]},{\"begin\":\"([@h]?```)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.kusto\"}},\"comment\":\"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/scalar-data-types/string#multi-line-string-literals\",\"end\":\"```\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.kusto\"}},\"name\":\"string.quoted.multi.kusto\",\"patterns\":[{\"include\":\"#Escapes\"}]}]},\"TimeSpanLiterals\":{\"patterns\":[{\"comment\":\"timespan literals: https://docs.microsoft.com/en-us/azure/kusto/query/scalar-data-types/timespan#timespan-literals\",\"match\":\"[+-]?(?:\\\\\\\\d*\\\\\\\\.)?\\\\\\\\d+(?:microseconds?|ticks?|seconds?|ms|d|h|m|s)\\\\\\\\b\",\"name\":\"constant.numeric.kusto\"}]}},\"scopeName\":\"source.kusto\",\"aliases\":[\"kql\"]}')),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/metadata.d.ts",
    "content": "\n/*!----------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *----------------------------------------------------------------*/\n\nexport interface IWorkerDefinition {\n\tid: string;\n\tentry: string;\n}\n\nexport interface IFeatureDefinition {\n\tlabel: string;\n\tentry: string | string[] | undefined;\n\tworker?: IWorkerDefinition;\n}\n\nexport const features: IFeatureDefinition[];\n\nexport const languages: IFeatureDefinition[];\n\nexport type EditorLanguage = 'abap' | 'apex' | 'azcli' | 'bat' | 'bicep' | 'cameligo' | 'clojure' | 'coffee' | 'cpp' | 'csharp' | 'csp' | 'css' | 'cypher' | 'dart' | 'dockerfile' | 'ecl' | 'elixir' | 'flow9' | 'freemarker2' | 'fsharp' | 'go' | 'graphql' | 'handlebars' | 'hcl' | 'html' | 'ini' | 'java' | 'javascript' | 'json' | 'julia' | 'kotlin' | 'less' | 'lexon' | 'liquid' | 'lua' | 'm3' | 'markdown' | 'mdx' | 'mips' | 'msdax' | 'mysql' | 'objective-c' | 'pascal' | 'pascaligo' | 'perl' | 'pgsql' | 'php' | 'pla' | 'postiats' | 'powerquery' | 'powershell' | 'protobuf' | 'pug' | 'python' | 'qsharp' | 'r' | 'razor' | 'redis' | 'redshift' | 'restructuredtext' | 'ruby' | 'rust' | 'sb' | 'scala' | 'scheme' | 'scss' | 'shell' | 'solidity' | 'sophia' | 'sparql' | 'sql' | 'st' | 'swift' | 'systemverilog' | 'tcl' | 'twig' | 'typescript' | 'typespec' | 'vb' | 'wgsl' | 'xml' | 'yaml';\n\nexport type EditorFeature = 'anchorSelect' | 'bracketMatching' | 'browser' | 'caretOperations' | 'clipboard' | 'codeAction' | 'codeEditor' | 'codelens' | 'colorPicker' | 'comment' | 'contextmenu' | 'cursorUndo' | 'diffEditor' | 'diffEditorBreadcrumbs' | 'dnd' | 'documentSymbols' | 'dropOrPasteInto' | 'find' | 'folding' | 'fontZoom' | 'format' | 'gotoError' | 'gotoLine' | 'gotoSymbol' | 'hover' | 'iPadShowKeyboard' | 'inPlaceReplace' | 'indentation' | 'inlayHints' | 'inlineCompletions' | 'inlineEdit' | 'inlineProgress' | 'inspectTokens' | 'lineSelection' | 'linesOperations' | 'linkedEditing' | 'links' | 'longLinesHelper' | 'multicursor' | 'parameterHints' | 'quickCommand' | 'quickHelp' | 'quickOutline' | 'readOnlyMessage' | 'referenceSearch' | 'rename' | 'sectionHeaders' | 'semanticTokens' | 'smartSelect' | 'snippet' | 'stickyScroll' | 'suggest' | 'toggleHighContrast' | 'toggleTabFocusMode' | 'tokenization' | 'unicodeHighlighter' | 'unusualLineTerminators' | 'wordHighlighter' | 'wordOperations' | 'wordPartOperations';\n\nexport type NegatedEditorFeature = '!anchorSelect' | '!bracketMatching' | '!browser' | '!caretOperations' | '!clipboard' | '!codeAction' | '!codeEditor' | '!codelens' | '!colorPicker' | '!comment' | '!contextmenu' | '!cursorUndo' | '!diffEditor' | '!diffEditorBreadcrumbs' | '!dnd' | '!documentSymbols' | '!dropOrPasteInto' | '!find' | '!folding' | '!fontZoom' | '!format' | '!gotoError' | '!gotoLine' | '!gotoSymbol' | '!hover' | '!iPadShowKeyboard' | '!inPlaceReplace' | '!indentation' | '!inlayHints' | '!inlineCompletions' | '!inlineEdit' | '!inlineProgress' | '!inspectTokens' | '!lineSelection' | '!linesOperations' | '!linkedEditing' | '!links' | '!longLinesHelper' | '!multicursor' | '!parameterHints' | '!quickCommand' | '!quickHelp' | '!quickOutline' | '!readOnlyMessage' | '!referenceSearch' | '!rename' | '!sectionHeaders' | '!semanticTokens' | '!smartSelect' | '!snippet' | '!stickyScroll' | '!suggest' | '!toggleHighContrast' | '!toggleTabFocusMode' | '!tokenization' | '!unicodeHighlighter' | '!unusualLineTerminators' | '!wordHighlighter' | '!wordOperations' | '!wordPartOperations';\n\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/metadata.js",
    "content": "\nexports.features = [\n  {\n    \"label\": \"anchorSelect\",\n    \"entry\": \"vs/editor/contrib/anchorSelect/browser/anchorSelect\"\n  },\n  {\n    \"label\": \"bracketMatching\",\n    \"entry\": \"vs/editor/contrib/bracketMatching/browser/bracketMatching\"\n  },\n  {\n    \"label\": \"browser\",\n    \"entry\": \"vs/editor/browser/coreCommands\"\n  },\n  {\n    \"label\": \"caretOperations\",\n    \"entry\": [\n      \"vs/editor/contrib/caretOperations/browser/caretOperations\",\n      \"vs/editor/contrib/caretOperations/browser/transpose\"\n    ]\n  },\n  {\n    \"label\": \"clipboard\",\n    \"entry\": \"vs/editor/contrib/clipboard/browser/clipboard\"\n  },\n  {\n    \"label\": \"codeAction\",\n    \"entry\": \"vs/editor/contrib/codeAction/browser/codeActionContributions\"\n  },\n  {\n    \"label\": \"codeEditor\",\n    \"entry\": \"vs/editor/browser/widget/codeEditor/codeEditorWidget\"\n  },\n  {\n    \"label\": \"codelens\",\n    \"entry\": \"vs/editor/contrib/codelens/browser/codelensController\"\n  },\n  {\n    \"label\": \"colorPicker\",\n    \"entry\": [\n      \"vs/editor/contrib/colorPicker/browser/colorContributions\",\n      \"vs/editor/contrib/colorPicker/browser/standaloneColorPickerActions\"\n    ]\n  },\n  {\n    \"label\": \"comment\",\n    \"entry\": \"vs/editor/contrib/comment/browser/comment\"\n  },\n  {\n    \"label\": \"contextmenu\",\n    \"entry\": \"vs/editor/contrib/contextmenu/browser/contextmenu\"\n  },\n  {\n    \"label\": \"cursorUndo\",\n    \"entry\": \"vs/editor/contrib/cursorUndo/browser/cursorUndo\"\n  },\n  {\n    \"label\": \"diffEditor\",\n    \"entry\": \"vs/editor/browser/widget/diffEditor/diffEditor.contribution\"\n  },\n  {\n    \"label\": \"diffEditorBreadcrumbs\",\n    \"entry\": \"vs/editor/contrib/diffEditorBreadcrumbs/browser/contribution\"\n  },\n  {\n    \"label\": \"dnd\",\n    \"entry\": \"vs/editor/contrib/dnd/browser/dnd\"\n  },\n  {\n    \"label\": \"documentSymbols\",\n    \"entry\": \"vs/editor/contrib/documentSymbols/browser/documentSymbols\"\n  },\n  {\n    \"label\": \"dropOrPasteInto\",\n    \"entry\": [\n      \"vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution\",\n      \"vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution\"\n    ]\n  },\n  {\n    \"label\": \"find\",\n    \"entry\": \"vs/editor/contrib/find/browser/findController\"\n  },\n  {\n    \"label\": \"folding\",\n    \"entry\": \"vs/editor/contrib/folding/browser/folding\"\n  },\n  {\n    \"label\": \"fontZoom\",\n    \"entry\": \"vs/editor/contrib/fontZoom/browser/fontZoom\"\n  },\n  {\n    \"label\": \"format\",\n    \"entry\": \"vs/editor/contrib/format/browser/formatActions\"\n  },\n  {\n    \"label\": \"gotoError\",\n    \"entry\": \"vs/editor/contrib/gotoError/browser/gotoError\"\n  },\n  {\n    \"label\": \"gotoLine\",\n    \"entry\": \"vs/editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess\"\n  },\n  {\n    \"label\": \"gotoSymbol\",\n    \"entry\": [\n      \"vs/editor/contrib/gotoSymbol/browser/goToCommands\",\n      \"vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition\"\n    ]\n  },\n  {\n    \"label\": \"hover\",\n    \"entry\": \"vs/editor/contrib/hover/browser/hoverContribution\"\n  },\n  {\n    \"label\": \"iPadShowKeyboard\",\n    \"entry\": \"vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard\"\n  },\n  {\n    \"label\": \"inPlaceReplace\",\n    \"entry\": \"vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace\"\n  },\n  {\n    \"label\": \"indentation\",\n    \"entry\": \"vs/editor/contrib/indentation/browser/indentation\"\n  },\n  {\n    \"label\": \"inlayHints\",\n    \"entry\": \"vs/editor/contrib/inlayHints/browser/inlayHintsContribution\"\n  },\n  {\n    \"label\": \"inlineCompletions\",\n    \"entry\": \"vs/editor/contrib/inlineCompletions/browser/inlineCompletions.contribution\"\n  },\n  {\n    \"label\": \"inlineEdit\",\n    \"entry\": \"vs/editor/contrib/inlineEdit/browser/inlineEdit.contribution\"\n  },\n  {\n    \"label\": \"inlineProgress\",\n    \"entry\": \"vs/editor/contrib/inlineProgress/browser/inlineProgress\"\n  },\n  {\n    \"label\": \"inspectTokens\",\n    \"entry\": \"vs/editor/standalone/browser/inspectTokens/inspectTokens\"\n  },\n  {\n    \"label\": \"lineSelection\",\n    \"entry\": \"vs/editor/contrib/lineSelection/browser/lineSelection\"\n  },\n  {\n    \"label\": \"linesOperations\",\n    \"entry\": \"vs/editor/contrib/linesOperations/browser/linesOperations\"\n  },\n  {\n    \"label\": \"linkedEditing\",\n    \"entry\": \"vs/editor/contrib/linkedEditing/browser/linkedEditing\"\n  },\n  {\n    \"label\": \"links\",\n    \"entry\": \"vs/editor/contrib/links/browser/links\"\n  },\n  {\n    \"label\": \"longLinesHelper\",\n    \"entry\": \"vs/editor/contrib/longLinesHelper/browser/longLinesHelper\"\n  },\n  {\n    \"label\": \"multicursor\",\n    \"entry\": \"vs/editor/contrib/multicursor/browser/multicursor\"\n  },\n  {\n    \"label\": \"parameterHints\",\n    \"entry\": \"vs/editor/contrib/parameterHints/browser/parameterHints\"\n  },\n  {\n    \"label\": \"quickCommand\",\n    \"entry\": \"vs/editor/standalone/browser/quickAccess/standaloneCommandsQuickAccess\"\n  },\n  {\n    \"label\": \"quickHelp\",\n    \"entry\": \"vs/editor/standalone/browser/quickAccess/standaloneHelpQuickAccess\"\n  },\n  {\n    \"label\": \"quickOutline\",\n    \"entry\": \"vs/editor/standalone/browser/quickAccess/standaloneGotoSymbolQuickAccess\"\n  },\n  {\n    \"label\": \"readOnlyMessage\",\n    \"entry\": \"vs/editor/contrib/readOnlyMessage/browser/contribution\"\n  },\n  {\n    \"label\": \"referenceSearch\",\n    \"entry\": \"vs/editor/standalone/browser/referenceSearch/standaloneReferenceSearch\"\n  },\n  {\n    \"label\": \"rename\",\n    \"entry\": \"vs/editor/contrib/rename/browser/rename\"\n  },\n  {\n    \"label\": \"sectionHeaders\",\n    \"entry\": \"vs/editor/contrib/sectionHeaders/browser/sectionHeaders\"\n  },\n  {\n    \"label\": \"semanticTokens\",\n    \"entry\": [\n      \"vs/editor/contrib/semanticTokens/browser/documentSemanticTokens\",\n      \"vs/editor/contrib/semanticTokens/browser/viewportSemanticTokens\"\n    ]\n  },\n  {\n    \"label\": \"smartSelect\",\n    \"entry\": \"vs/editor/contrib/smartSelect/browser/smartSelect\"\n  },\n  {\n    \"label\": \"snippet\",\n    \"entry\": \"vs/editor/contrib/snippet/browser/snippetController2\"\n  },\n  {\n    \"label\": \"stickyScroll\",\n    \"entry\": \"vs/editor/contrib/stickyScroll/browser/stickyScrollContribution\"\n  },\n  {\n    \"label\": \"suggest\",\n    \"entry\": [\n      \"vs/editor/contrib/suggest/browser/suggestController\",\n      \"vs/editor/contrib/suggest/browser/suggestInlineCompletions\"\n    ]\n  },\n  {\n    \"label\": \"toggleHighContrast\",\n    \"entry\": \"vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast\"\n  },\n  {\n    \"label\": \"toggleTabFocusMode\",\n    \"entry\": \"vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode\"\n  },\n  {\n    \"label\": \"tokenization\",\n    \"entry\": \"vs/editor/contrib/tokenization/browser/tokenization\"\n  },\n  {\n    \"label\": \"unicodeHighlighter\",\n    \"entry\": \"vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter\"\n  },\n  {\n    \"label\": \"unusualLineTerminators\",\n    \"entry\": \"vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators\"\n  },\n  {\n    \"label\": \"wordHighlighter\",\n    \"entry\": \"vs/editor/contrib/wordHighlighter/browser/wordHighlighter\"\n  },\n  {\n    \"label\": \"wordOperations\",\n    \"entry\": \"vs/editor/contrib/wordOperations/browser/wordOperations\"\n  },\n  {\n    \"label\": \"wordPartOperations\",\n    \"entry\": \"vs/editor/contrib/wordPartOperations/browser/wordPartOperations\"\n  }\n];\nexports.languages = [\n  {\n    \"label\": \"abap\",\n    \"entry\": \"vs/basic-languages/abap/abap.contribution\"\n  },\n  {\n    \"label\": \"apex\",\n    \"entry\": \"vs/basic-languages/apex/apex.contribution\"\n  },\n  {\n    \"label\": \"azcli\",\n    \"entry\": \"vs/basic-languages/azcli/azcli.contribution\"\n  },\n  {\n    \"label\": \"bat\",\n    \"entry\": \"vs/basic-languages/bat/bat.contribution\"\n  },\n  {\n    \"label\": \"bicep\",\n    \"entry\": \"vs/basic-languages/bicep/bicep.contribution\"\n  },\n  {\n    \"label\": \"cameligo\",\n    \"entry\": \"vs/basic-languages/cameligo/cameligo.contribution\"\n  },\n  {\n    \"label\": \"clojure\",\n    \"entry\": \"vs/basic-languages/clojure/clojure.contribution\"\n  },\n  {\n    \"label\": \"coffee\",\n    \"entry\": \"vs/basic-languages/coffee/coffee.contribution\"\n  },\n  {\n    \"label\": \"cpp\",\n    \"entry\": \"vs/basic-languages/cpp/cpp.contribution\"\n  },\n  {\n    \"label\": \"csharp\",\n    \"entry\": \"vs/basic-languages/csharp/csharp.contribution\"\n  },\n  {\n    \"label\": \"csp\",\n    \"entry\": \"vs/basic-languages/csp/csp.contribution\"\n  },\n  {\n    \"label\": \"css\",\n    \"entry\": [\n      \"vs/basic-languages/css/css.contribution\",\n      \"vs/language/css/monaco.contribution\"\n    ],\n    \"worker\": {\n      \"id\": \"vs/language/css/cssWorker\",\n      \"entry\": \"vs/language/css/css.worker\"\n    }\n  },\n  {\n    \"label\": \"cypher\",\n    \"entry\": \"vs/basic-languages/cypher/cypher.contribution\"\n  },\n  {\n    \"label\": \"dart\",\n    \"entry\": \"vs/basic-languages/dart/dart.contribution\"\n  },\n  {\n    \"label\": \"dockerfile\",\n    \"entry\": \"vs/basic-languages/dockerfile/dockerfile.contribution\"\n  },\n  {\n    \"label\": \"ecl\",\n    \"entry\": \"vs/basic-languages/ecl/ecl.contribution\"\n  },\n  {\n    \"label\": \"elixir\",\n    \"entry\": \"vs/basic-languages/elixir/elixir.contribution\"\n  },\n  {\n    \"label\": \"flow9\",\n    \"entry\": \"vs/basic-languages/flow9/flow9.contribution\"\n  },\n  {\n    \"label\": \"freemarker2\",\n    \"entry\": \"vs/basic-languages/freemarker2/freemarker2.contribution\"\n  },\n  {\n    \"label\": \"fsharp\",\n    \"entry\": \"vs/basic-languages/fsharp/fsharp.contribution\"\n  },\n  {\n    \"label\": \"go\",\n    \"entry\": \"vs/basic-languages/go/go.contribution\"\n  },\n  {\n    \"label\": \"graphql\",\n    \"entry\": \"vs/basic-languages/graphql/graphql.contribution\"\n  },\n  {\n    \"label\": \"handlebars\",\n    \"entry\": \"vs/basic-languages/handlebars/handlebars.contribution\"\n  },\n  {\n    \"label\": \"hcl\",\n    \"entry\": \"vs/basic-languages/hcl/hcl.contribution\"\n  },\n  {\n    \"label\": \"html\",\n    \"entry\": [\n      \"vs/basic-languages/html/html.contribution\",\n      \"vs/language/html/monaco.contribution\"\n    ],\n    \"worker\": {\n      \"id\": \"vs/language/html/htmlWorker\",\n      \"entry\": \"vs/language/html/html.worker\"\n    }\n  },\n  {\n    \"label\": \"ini\",\n    \"entry\": \"vs/basic-languages/ini/ini.contribution\"\n  },\n  {\n    \"label\": \"java\",\n    \"entry\": \"vs/basic-languages/java/java.contribution\"\n  },\n  {\n    \"label\": \"javascript\",\n    \"entry\": \"vs/basic-languages/javascript/javascript.contribution\"\n  },\n  {\n    \"label\": \"json\",\n    \"entry\": \"vs/language/json/monaco.contribution\",\n    \"worker\": {\n      \"id\": \"vs/language/json/jsonWorker\",\n      \"entry\": \"vs/language/json/json.worker\"\n    }\n  },\n  {\n    \"label\": \"julia\",\n    \"entry\": \"vs/basic-languages/julia/julia.contribution\"\n  },\n  {\n    \"label\": \"kotlin\",\n    \"entry\": \"vs/basic-languages/kotlin/kotlin.contribution\"\n  },\n  {\n    \"label\": \"less\",\n    \"entry\": \"vs/basic-languages/less/less.contribution\"\n  },\n  {\n    \"label\": \"lexon\",\n    \"entry\": \"vs/basic-languages/lexon/lexon.contribution\"\n  },\n  {\n    \"label\": \"liquid\",\n    \"entry\": \"vs/basic-languages/liquid/liquid.contribution\"\n  },\n  {\n    \"label\": \"lua\",\n    \"entry\": \"vs/basic-languages/lua/lua.contribution\"\n  },\n  {\n    \"label\": \"m3\",\n    \"entry\": \"vs/basic-languages/m3/m3.contribution\"\n  },\n  {\n    \"label\": \"markdown\",\n    \"entry\": \"vs/basic-languages/markdown/markdown.contribution\"\n  },\n  {\n    \"label\": \"mdx\",\n    \"entry\": \"vs/basic-languages/mdx/mdx.contribution\"\n  },\n  {\n    \"label\": \"mips\",\n    \"entry\": \"vs/basic-languages/mips/mips.contribution\"\n  },\n  {\n    \"label\": \"msdax\",\n    \"entry\": \"vs/basic-languages/msdax/msdax.contribution\"\n  },\n  {\n    \"label\": \"mysql\",\n    \"entry\": \"vs/basic-languages/mysql/mysql.contribution\"\n  },\n  {\n    \"label\": \"objective-c\",\n    \"entry\": \"vs/basic-languages/objective-c/objective-c.contribution\"\n  },\n  {\n    \"label\": \"pascal\",\n    \"entry\": \"vs/basic-languages/pascal/pascal.contribution\"\n  },\n  {\n    \"label\": \"pascaligo\",\n    \"entry\": \"vs/basic-languages/pascaligo/pascaligo.contribution\"\n  },\n  {\n    \"label\": \"perl\",\n    \"entry\": \"vs/basic-languages/perl/perl.contribution\"\n  },\n  {\n    \"label\": \"pgsql\",\n    \"entry\": \"vs/basic-languages/pgsql/pgsql.contribution\"\n  },\n  {\n    \"label\": \"php\",\n    \"entry\": \"vs/basic-languages/php/php.contribution\"\n  },\n  {\n    \"label\": \"pla\",\n    \"entry\": \"vs/basic-languages/pla/pla.contribution\"\n  },\n  {\n    \"label\": \"postiats\",\n    \"entry\": \"vs/basic-languages/postiats/postiats.contribution\"\n  },\n  {\n    \"label\": \"powerquery\",\n    \"entry\": \"vs/basic-languages/powerquery/powerquery.contribution\"\n  },\n  {\n    \"label\": \"powershell\",\n    \"entry\": \"vs/basic-languages/powershell/powershell.contribution\"\n  },\n  {\n    \"label\": \"protobuf\",\n    \"entry\": \"vs/basic-languages/protobuf/protobuf.contribution\"\n  },\n  {\n    \"label\": \"pug\",\n    \"entry\": \"vs/basic-languages/pug/pug.contribution\"\n  },\n  {\n    \"label\": \"python\",\n    \"entry\": \"vs/basic-languages/python/python.contribution\"\n  },\n  {\n    \"label\": \"qsharp\",\n    \"entry\": \"vs/basic-languages/qsharp/qsharp.contribution\"\n  },\n  {\n    \"label\": \"r\",\n    \"entry\": \"vs/basic-languages/r/r.contribution\"\n  },\n  {\n    \"label\": \"razor\",\n    \"entry\": \"vs/basic-languages/razor/razor.contribution\"\n  },\n  {\n    \"label\": \"redis\",\n    \"entry\": \"vs/basic-languages/redis/redis.contribution\"\n  },\n  {\n    \"label\": \"redshift\",\n    \"entry\": \"vs/basic-languages/redshift/redshift.contribution\"\n  },\n  {\n    \"label\": \"restructuredtext\",\n    \"entry\": \"vs/basic-languages/restructuredtext/restructuredtext.contribution\"\n  },\n  {\n    \"label\": \"ruby\",\n    \"entry\": \"vs/basic-languages/ruby/ruby.contribution\"\n  },\n  {\n    \"label\": \"rust\",\n    \"entry\": \"vs/basic-languages/rust/rust.contribution\"\n  },\n  {\n    \"label\": \"sb\",\n    \"entry\": \"vs/basic-languages/sb/sb.contribution\"\n  },\n  {\n    \"label\": \"scala\",\n    \"entry\": \"vs/basic-languages/scala/scala.contribution\"\n  },\n  {\n    \"label\": \"scheme\",\n    \"entry\": \"vs/basic-languages/scheme/scheme.contribution\"\n  },\n  {\n    \"label\": \"scss\",\n    \"entry\": \"vs/basic-languages/scss/scss.contribution\"\n  },\n  {\n    \"label\": \"shell\",\n    \"entry\": \"vs/basic-languages/shell/shell.contribution\"\n  },\n  {\n    \"label\": \"solidity\",\n    \"entry\": \"vs/basic-languages/solidity/solidity.contribution\"\n  },\n  {\n    \"label\": \"sophia\",\n    \"entry\": \"vs/basic-languages/sophia/sophia.contribution\"\n  },\n  {\n    \"label\": \"sparql\",\n    \"entry\": \"vs/basic-languages/sparql/sparql.contribution\"\n  },\n  {\n    \"label\": \"sql\",\n    \"entry\": \"vs/basic-languages/sql/sql.contribution\"\n  },\n  {\n    \"label\": \"st\",\n    \"entry\": \"vs/basic-languages/st/st.contribution\"\n  },\n  {\n    \"label\": \"swift\",\n    \"entry\": \"vs/basic-languages/swift/swift.contribution\"\n  },\n  {\n    \"label\": \"systemverilog\",\n    \"entry\": \"vs/basic-languages/systemverilog/systemverilog.contribution\"\n  },\n  {\n    \"label\": \"tcl\",\n    \"entry\": \"vs/basic-languages/tcl/tcl.contribution\"\n  },\n  {\n    \"label\": \"twig\",\n    \"entry\": \"vs/basic-languages/twig/twig.contribution\"\n  },\n  {\n    \"label\": \"typescript\",\n    \"entry\": [\n      \"vs/basic-languages/typescript/typescript.contribution\",\n      \"vs/language/typescript/monaco.contribution\"\n    ],\n    \"worker\": {\n      \"id\": \"vs/language/typescript/tsWorker\",\n      \"entry\": \"vs/language/typescript/ts.worker\"\n    }\n  },\n  {\n    \"label\": \"typespec\",\n    \"entry\": \"vs/basic-languages/typespec/typespec.contribution\"\n  },\n  {\n    \"label\": \"vb\",\n    \"entry\": \"vs/basic-languages/vb/vb.contribution\"\n  },\n  {\n    \"label\": \"wgsl\",\n    \"entry\": \"vs/basic-languages/wgsl/wgsl.contribution\"\n  },\n  {\n    \"label\": \"xml\",\n    \"entry\": \"vs/basic-languages/xml/xml.contribution\"\n  },\n  {\n    \"label\": \"yaml\",\n    \"entry\": \"vs/basic-languages/yaml/yaml.contribution\"\n  }\n];\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/browser.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { mainWindow } from './window.js';\nclass WindowManager {\n    constructor() {\n        // --- Zoom Factor\n        this.mapWindowIdToZoomFactor = new Map();\n    }\n    getZoomFactor(targetWindow) {\n        var _a;\n        return (_a = this.mapWindowIdToZoomFactor.get(this.getWindowId(targetWindow))) !== null && _a !== void 0 ? _a : 1;\n    }\n    getWindowId(targetWindow) {\n        return targetWindow.vscodeWindowId;\n    }\n}\nWindowManager.INSTANCE = new WindowManager();\nexport function addMatchMediaChangeListener(targetWindow, query, callback) {\n    if (typeof query === 'string') {\n        query = targetWindow.matchMedia(query);\n    }\n    query.addEventListener('change', callback);\n}\n/** The zoom scale for an index, e.g. 1, 1.2, 1.4 */\nexport function getZoomFactor(targetWindow) {\n    return WindowManager.INSTANCE.getZoomFactor(targetWindow);\n}\nconst userAgent = navigator.userAgent;\nexport const isFirefox = (userAgent.indexOf('Firefox') >= 0);\nexport const isWebKit = (userAgent.indexOf('AppleWebKit') >= 0);\nexport const isChrome = (userAgent.indexOf('Chrome') >= 0);\nexport const isSafari = (!isChrome && (userAgent.indexOf('Safari') >= 0));\nexport const isWebkitWebView = (!isChrome && !isSafari && isWebKit);\nexport const isElectron = (userAgent.indexOf('Electron/') >= 0);\nexport const isAndroid = (userAgent.indexOf('Android') >= 0);\nlet standalone = false;\nif (typeof mainWindow.matchMedia === 'function') {\n    const standaloneMatchMedia = mainWindow.matchMedia('(display-mode: standalone) or (display-mode: window-controls-overlay)');\n    const fullScreenMatchMedia = mainWindow.matchMedia('(display-mode: fullscreen)');\n    standalone = standaloneMatchMedia.matches;\n    addMatchMediaChangeListener(mainWindow, standaloneMatchMedia, ({ matches }) => {\n        // entering fullscreen would change standaloneMatchMedia.matches to false\n        // if standalone is true (running as PWA) and entering fullscreen, skip this change\n        if (standalone && fullScreenMatchMedia.matches) {\n            return;\n        }\n        // otherwise update standalone (browser to PWA or PWA to browser)\n        standalone = matches;\n    });\n}\nexport function isStandalone() {\n    return standalone;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/canIUse.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as browser from './browser.js';\nimport { mainWindow } from './window.js';\nimport * as platform from '../common/platform.js';\n/**\n * Browser feature we can support in current platform, browser and environment.\n */\nexport const BrowserFeatures = {\n    clipboard: {\n        writeText: (platform.isNative\n            || (document.queryCommandSupported && document.queryCommandSupported('copy'))\n            || !!(navigator && navigator.clipboard && navigator.clipboard.writeText)),\n        readText: (platform.isNative\n            || !!(navigator && navigator.clipboard && navigator.clipboard.readText))\n    },\n    keyboard: (() => {\n        if (platform.isNative || browser.isStandalone()) {\n            return 0 /* KeyboardSupport.Always */;\n        }\n        if (navigator.keyboard || browser.isSafari) {\n            return 1 /* KeyboardSupport.FullScreen */;\n        }\n        return 2 /* KeyboardSupport.None */;\n    })(),\n    // 'ontouchstart' in window always evaluates to true with typescript's modern typings. This causes `window` to be\n    // `never` later in `window.navigator`. That's why we need the explicit `window as Window` cast\n    touch: 'ontouchstart' in mainWindow || navigator.maxTouchPoints > 0,\n    pointerEvents: mainWindow.PointerEvent && ('ontouchstart' in mainWindow || navigator.maxTouchPoints > 0)\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/contextmenu.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport {};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/defaultWorkerFactory.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createTrustedTypesPolicy } from './trustedTypes.js';\nimport { onUnexpectedError } from '../common/errors.js';\nimport { logOnceWebWorkerWarning } from '../common/worker/simpleWorker.js';\nimport { Disposable, toDisposable } from '../common/lifecycle.js';\nconst ttPolicy = createTrustedTypesPolicy('defaultWorkerFactory', { createScriptURL: value => value });\nfunction getWorker(label) {\n    const monacoEnvironment = globalThis.MonacoEnvironment;\n    if (monacoEnvironment) {\n        if (typeof monacoEnvironment.getWorker === 'function') {\n            return monacoEnvironment.getWorker('workerMain.js', label);\n        }\n        if (typeof monacoEnvironment.getWorkerUrl === 'function') {\n            const workerUrl = monacoEnvironment.getWorkerUrl('workerMain.js', label);\n            return new Worker(ttPolicy ? ttPolicy.createScriptURL(workerUrl) : workerUrl, { name: label });\n        }\n    }\n    // ESM-comment-begin\n    // \tif (typeof require === 'function') {\n    // \t\t// check if the JS lives on a different origin\n    // \t\tconst workerMain = require.toUrl('vs/base/worker/workerMain.js'); // explicitly using require.toUrl(), see https://github.com/microsoft/vscode/issues/107440#issuecomment-698982321\n    // \t\tconst workerUrl = getWorkerBootstrapUrl(workerMain, label);\n    // \t\treturn new Worker(ttPolicy ? ttPolicy.createScriptURL(workerUrl) as unknown as string : workerUrl, { name: label });\n    // \t}\n    // ESM-comment-end\n    throw new Error(`You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker`);\n}\n// ESM-comment-begin\n// export function getWorkerBootstrapUrl(scriptPath: string, label: string): string {\n// \tif (/^((http:)|(https:)|(file:))/.test(scriptPath) && scriptPath.substring(0, globalThis.origin.length) !== globalThis.origin) {\n// \t\t// this is the cross-origin case\n// \t\t// i.e. the webpage is running at a different origin than where the scripts are loaded from\n// \t\tconst myPath = 'vs/base/worker/defaultWorkerFactory.js';\n// \t\tconst workerBaseUrl = require.toUrl(myPath).slice(0, -myPath.length); // explicitly using require.toUrl(), see https://github.com/microsoft/vscode/issues/107440#issuecomment-698982321\n// \t\tconst js = `/*${label}*/globalThis.MonacoEnvironment={baseUrl: '${workerBaseUrl}'};const ttPolicy = globalThis.trustedTypes?.createPolicy('defaultWorkerFactory', { createScriptURL: value => value });importScripts(ttPolicy?.createScriptURL('${scriptPath}') ?? '${scriptPath}');/*${label}*/`;\n// \t\tconst blob = new Blob([js], { type: 'application/javascript' });\n// \t\treturn URL.createObjectURL(blob);\n// \t}\n// \n// \tconst start = scriptPath.lastIndexOf('?');\n// \tconst end = scriptPath.lastIndexOf('#', start);\n// \tconst params = start > 0\n// \t\t? new URLSearchParams(scriptPath.substring(start + 1, ~end ? end : undefined))\n// \t\t: new URLSearchParams();\n// \n// \tCOI.addSearchParam(params, true, true);\n// \tconst search = params.toString();\n// \n// \tif (!search) {\n// \t\treturn `${scriptPath}#${label}`;\n// \t} else {\n// \t\treturn `${scriptPath}?${params.toString()}#${label}`;\n// \t}\n// }\n// ESM-comment-end\nfunction isPromiseLike(obj) {\n    if (typeof obj.then === 'function') {\n        return true;\n    }\n    return false;\n}\n/**\n * A worker that uses HTML5 web workers so that is has\n * its own global scope and its own thread.\n */\nclass WebWorker extends Disposable {\n    constructor(moduleId, id, label, onMessageCallback, onErrorCallback) {\n        super();\n        this.id = id;\n        this.label = label;\n        const workerOrPromise = getWorker(label);\n        if (isPromiseLike(workerOrPromise)) {\n            this.worker = workerOrPromise;\n        }\n        else {\n            this.worker = Promise.resolve(workerOrPromise);\n        }\n        this.postMessage(moduleId, []);\n        this.worker.then((w) => {\n            w.onmessage = function (ev) {\n                onMessageCallback(ev.data);\n            };\n            w.onmessageerror = onErrorCallback;\n            if (typeof w.addEventListener === 'function') {\n                w.addEventListener('error', onErrorCallback);\n            }\n        });\n        this._register(toDisposable(() => {\n            var _a;\n            (_a = this.worker) === null || _a === void 0 ? void 0 : _a.then(w => {\n                w.onmessage = null;\n                w.onmessageerror = null;\n                w.removeEventListener('error', onErrorCallback);\n                w.terminate();\n            });\n            this.worker = null;\n        }));\n    }\n    getId() {\n        return this.id;\n    }\n    postMessage(message, transfer) {\n        var _a;\n        (_a = this.worker) === null || _a === void 0 ? void 0 : _a.then(w => {\n            try {\n                w.postMessage(message, transfer);\n            }\n            catch (err) {\n                onUnexpectedError(err);\n                onUnexpectedError(new Error(`FAILED to post message to '${this.label}'-worker`, { cause: err }));\n            }\n        });\n    }\n}\nexport class DefaultWorkerFactory {\n    constructor(label) {\n        this._label = label;\n        this._webWorkerFailedBeforeError = false;\n    }\n    create(moduleId, onMessageCallback, onErrorCallback) {\n        const workerId = (++DefaultWorkerFactory.LAST_WORKER_ID);\n        if (this._webWorkerFailedBeforeError) {\n            throw this._webWorkerFailedBeforeError;\n        }\n        return new WebWorker(moduleId, workerId, this._label || 'anonymous' + workerId, onMessageCallback, (err) => {\n            logOnceWebWorkerWarning(err);\n            this._webWorkerFailedBeforeError = err;\n            onErrorCallback(err);\n        });\n    }\n}\nDefaultWorkerFactory.LAST_WORKER_ID = 0;\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/dnd.js",
    "content": "import { Mimes } from '../common/mime.js';\n// Common data transfers\nexport const DataTransfers = {\n    /**\n     * Application specific resource transfer type\n     */\n    RESOURCES: 'ResourceURLs',\n    /**\n     * Browser specific transfer type to download\n     */\n    DOWNLOAD_URL: 'DownloadURL',\n    /**\n     * Browser specific transfer type for files\n     */\n    FILES: 'Files',\n    /**\n     * Typically transfer type for copy/paste transfers.\n     */\n    TEXT: Mimes.text,\n    /**\n     * Internal type used to pass around text/uri-list data.\n     *\n     * This is needed to work around https://bugs.chromium.org/p/chromium/issues/detail?id=239745.\n     */\n    INTERNAL_URI_LIST: 'application/vnd.code.uri-list',\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/dom.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as browser from './browser.js';\nimport { BrowserFeatures } from './canIUse.js';\nimport { StandardKeyboardEvent } from './keyboardEvent.js';\nimport { StandardMouseEvent } from './mouseEvent.js';\nimport { AbstractIdleValue, IntervalTimer, _runWhenIdle } from '../common/async.js';\nimport { onUnexpectedError } from '../common/errors.js';\nimport * as event from '../common/event.js';\nimport * as dompurify from './dompurify/dompurify.js';\nimport { Disposable, DisposableStore, toDisposable } from '../common/lifecycle.js';\nimport { FileAccess, RemoteAuthorities } from '../common/network.js';\nimport * as platform from '../common/platform.js';\nimport { hash } from '../common/hash.js';\nimport { ensureCodeWindow, mainWindow } from './window.js';\n//# region Multi-Window Support Utilities\nexport const { registerWindow, getWindow, getDocument, getWindows, getWindowsCount, getWindowId, getWindowById, hasWindow, onDidRegisterWindow, onWillUnregisterWindow, onDidUnregisterWindow } = (function () {\n    const windows = new Map();\n    ensureCodeWindow(mainWindow, 1);\n    const mainWindowRegistration = { window: mainWindow, disposables: new DisposableStore() };\n    windows.set(mainWindow.vscodeWindowId, mainWindowRegistration);\n    const onDidRegisterWindow = new event.Emitter();\n    const onDidUnregisterWindow = new event.Emitter();\n    const onWillUnregisterWindow = new event.Emitter();\n    function getWindowById(windowId, fallbackToMain) {\n        const window = typeof windowId === 'number' ? windows.get(windowId) : undefined;\n        return window !== null && window !== void 0 ? window : (fallbackToMain ? mainWindowRegistration : undefined);\n    }\n    return {\n        onDidRegisterWindow: onDidRegisterWindow.event,\n        onWillUnregisterWindow: onWillUnregisterWindow.event,\n        onDidUnregisterWindow: onDidUnregisterWindow.event,\n        registerWindow(window) {\n            if (windows.has(window.vscodeWindowId)) {\n                return Disposable.None;\n            }\n            const disposables = new DisposableStore();\n            const registeredWindow = {\n                window,\n                disposables: disposables.add(new DisposableStore())\n            };\n            windows.set(window.vscodeWindowId, registeredWindow);\n            disposables.add(toDisposable(() => {\n                windows.delete(window.vscodeWindowId);\n                onDidUnregisterWindow.fire(window);\n            }));\n            disposables.add(addDisposableListener(window, EventType.BEFORE_UNLOAD, () => {\n                onWillUnregisterWindow.fire(window);\n            }));\n            onDidRegisterWindow.fire(registeredWindow);\n            return disposables;\n        },\n        getWindows() {\n            return windows.values();\n        },\n        getWindowsCount() {\n            return windows.size;\n        },\n        getWindowId(targetWindow) {\n            return targetWindow.vscodeWindowId;\n        },\n        hasWindow(windowId) {\n            return windows.has(windowId);\n        },\n        getWindowById,\n        getWindow(e) {\n            var _a;\n            const candidateNode = e;\n            if ((_a = candidateNode === null || candidateNode === void 0 ? void 0 : candidateNode.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView) {\n                return candidateNode.ownerDocument.defaultView.window;\n            }\n            const candidateEvent = e;\n            if (candidateEvent === null || candidateEvent === void 0 ? void 0 : candidateEvent.view) {\n                return candidateEvent.view.window;\n            }\n            return mainWindow;\n        },\n        getDocument(e) {\n            const candidateNode = e;\n            return getWindow(candidateNode).document;\n        }\n    };\n})();\n//#endregion\nexport function clearNode(node) {\n    while (node.firstChild) {\n        node.firstChild.remove();\n    }\n}\nclass DomListener {\n    constructor(node, type, handler, options) {\n        this._node = node;\n        this._type = type;\n        this._handler = handler;\n        this._options = (options || false);\n        this._node.addEventListener(this._type, this._handler, this._options);\n    }\n    dispose() {\n        if (!this._handler) {\n            // Already disposed\n            return;\n        }\n        this._node.removeEventListener(this._type, this._handler, this._options);\n        // Prevent leakers from holding on to the dom or handler func\n        this._node = null;\n        this._handler = null;\n    }\n}\nexport function addDisposableListener(node, type, handler, useCaptureOrOptions) {\n    return new DomListener(node, type, handler, useCaptureOrOptions);\n}\nfunction _wrapAsStandardMouseEvent(targetWindow, handler) {\n    return function (e) {\n        return handler(new StandardMouseEvent(targetWindow, e));\n    };\n}\nfunction _wrapAsStandardKeyboardEvent(handler) {\n    return function (e) {\n        return handler(new StandardKeyboardEvent(e));\n    };\n}\nexport const addStandardDisposableListener = function addStandardDisposableListener(node, type, handler, useCapture) {\n    let wrapHandler = handler;\n    if (type === 'click' || type === 'mousedown' || type === 'contextmenu') {\n        wrapHandler = _wrapAsStandardMouseEvent(getWindow(node), handler);\n    }\n    else if (type === 'keydown' || type === 'keypress' || type === 'keyup') {\n        wrapHandler = _wrapAsStandardKeyboardEvent(handler);\n    }\n    return addDisposableListener(node, type, wrapHandler, useCapture);\n};\nexport const addStandardDisposableGenericMouseDownListener = function addStandardDisposableListener(node, handler, useCapture) {\n    const wrapHandler = _wrapAsStandardMouseEvent(getWindow(node), handler);\n    return addDisposableGenericMouseDownListener(node, wrapHandler, useCapture);\n};\nexport const addStandardDisposableGenericMouseUpListener = function addStandardDisposableListener(node, handler, useCapture) {\n    const wrapHandler = _wrapAsStandardMouseEvent(getWindow(node), handler);\n    return addDisposableGenericMouseUpListener(node, wrapHandler, useCapture);\n};\nexport function addDisposableGenericMouseDownListener(node, handler, useCapture) {\n    return addDisposableListener(node, platform.isIOS && BrowserFeatures.pointerEvents ? EventType.POINTER_DOWN : EventType.MOUSE_DOWN, handler, useCapture);\n}\nexport function addDisposableGenericMouseUpListener(node, handler, useCapture) {\n    return addDisposableListener(node, platform.isIOS && BrowserFeatures.pointerEvents ? EventType.POINTER_UP : EventType.MOUSE_UP, handler, useCapture);\n}\n/**\n * Execute the callback the next time the browser is idle, returning an\n * {@link IDisposable} that will cancel the callback when disposed. This wraps\n * [requestIdleCallback] so it will fallback to [setTimeout] if the environment\n * doesn't support it.\n *\n * @param targetWindow The window for which to run the idle callback\n * @param callback The callback to run when idle, this includes an\n * [IdleDeadline] that provides the time alloted for the idle callback by the\n * browser. Not respecting this deadline will result in a degraded user\n * experience.\n * @param timeout A timeout at which point to queue no longer wait for an idle\n * callback but queue it on the regular event loop (like setTimeout). Typically\n * this should not be used.\n *\n * [IdleDeadline]: https://developer.mozilla.org/en-US/docs/Web/API/IdleDeadline\n * [requestIdleCallback]: https://developer.mozilla.org/en-US/docs/Web/API/Window/requestIdleCallback\n * [setTimeout]: https://developer.mozilla.org/en-US/docs/Web/API/Window/setTimeout\n */\nexport function runWhenWindowIdle(targetWindow, callback, timeout) {\n    return _runWhenIdle(targetWindow, callback, timeout);\n}\n/**\n * An implementation of the \"idle-until-urgent\"-strategy as introduced\n * here: https://philipwalton.com/articles/idle-until-urgent/\n */\nexport class WindowIdleValue extends AbstractIdleValue {\n    constructor(targetWindow, executor) {\n        super(targetWindow, executor);\n    }\n}\n/**\n * Schedule a callback to be run at the next animation frame.\n * This allows multiple parties to register callbacks that should run at the next animation frame.\n * If currently in an animation frame, `runner` will be executed immediately.\n * @return token that can be used to cancel the scheduled runner (only if `runner` was not executed immediately).\n */\nexport let runAtThisOrScheduleAtNextAnimationFrame;\n/**\n * Schedule a callback to be run at the next animation frame.\n * This allows multiple parties to register callbacks that should run at the next animation frame.\n * If currently in an animation frame, `runner` will be executed at the next animation frame.\n * @return token that can be used to cancel the scheduled runner.\n */\nexport let scheduleAtNextAnimationFrame;\nexport class WindowIntervalTimer extends IntervalTimer {\n    /**\n     *\n     * @param node The optional node from which the target window is determined\n     */\n    constructor(node) {\n        super();\n        this.defaultTarget = node && getWindow(node);\n    }\n    cancelAndSet(runner, interval, targetWindow) {\n        return super.cancelAndSet(runner, interval, targetWindow !== null && targetWindow !== void 0 ? targetWindow : this.defaultTarget);\n    }\n}\nclass AnimationFrameQueueItem {\n    constructor(runner, priority = 0) {\n        this._runner = runner;\n        this.priority = priority;\n        this._canceled = false;\n    }\n    dispose() {\n        this._canceled = true;\n    }\n    execute() {\n        if (this._canceled) {\n            return;\n        }\n        try {\n            this._runner();\n        }\n        catch (e) {\n            onUnexpectedError(e);\n        }\n    }\n    // Sort by priority (largest to lowest)\n    static sort(a, b) {\n        return b.priority - a.priority;\n    }\n}\n(function () {\n    /**\n     * The runners scheduled at the next animation frame\n     */\n    const NEXT_QUEUE = new Map();\n    /**\n     * The runners scheduled at the current animation frame\n     */\n    const CURRENT_QUEUE = new Map();\n    /**\n     * A flag to keep track if the native requestAnimationFrame was already called\n     */\n    const animFrameRequested = new Map();\n    /**\n     * A flag to indicate if currently handling a native requestAnimationFrame callback\n     */\n    const inAnimationFrameRunner = new Map();\n    const animationFrameRunner = (targetWindowId) => {\n        var _a;\n        animFrameRequested.set(targetWindowId, false);\n        const currentQueue = (_a = NEXT_QUEUE.get(targetWindowId)) !== null && _a !== void 0 ? _a : [];\n        CURRENT_QUEUE.set(targetWindowId, currentQueue);\n        NEXT_QUEUE.set(targetWindowId, []);\n        inAnimationFrameRunner.set(targetWindowId, true);\n        while (currentQueue.length > 0) {\n            currentQueue.sort(AnimationFrameQueueItem.sort);\n            const top = currentQueue.shift();\n            top.execute();\n        }\n        inAnimationFrameRunner.set(targetWindowId, false);\n    };\n    scheduleAtNextAnimationFrame = (targetWindow, runner, priority = 0) => {\n        const targetWindowId = getWindowId(targetWindow);\n        const item = new AnimationFrameQueueItem(runner, priority);\n        let nextQueue = NEXT_QUEUE.get(targetWindowId);\n        if (!nextQueue) {\n            nextQueue = [];\n            NEXT_QUEUE.set(targetWindowId, nextQueue);\n        }\n        nextQueue.push(item);\n        if (!animFrameRequested.get(targetWindowId)) {\n            animFrameRequested.set(targetWindowId, true);\n            targetWindow.requestAnimationFrame(() => animationFrameRunner(targetWindowId));\n        }\n        return item;\n    };\n    runAtThisOrScheduleAtNextAnimationFrame = (targetWindow, runner, priority) => {\n        const targetWindowId = getWindowId(targetWindow);\n        if (inAnimationFrameRunner.get(targetWindowId)) {\n            const item = new AnimationFrameQueueItem(runner, priority);\n            let currentQueue = CURRENT_QUEUE.get(targetWindowId);\n            if (!currentQueue) {\n                currentQueue = [];\n                CURRENT_QUEUE.set(targetWindowId, currentQueue);\n            }\n            currentQueue.push(item);\n            return item;\n        }\n        else {\n            return scheduleAtNextAnimationFrame(targetWindow, runner, priority);\n        }\n    };\n})();\nexport function getComputedStyle(el) {\n    return getWindow(el).getComputedStyle(el, null);\n}\nexport function getClientArea(element, fallback) {\n    const elWindow = getWindow(element);\n    const elDocument = elWindow.document;\n    // Try with DOM clientWidth / clientHeight\n    if (element !== elDocument.body) {\n        return new Dimension(element.clientWidth, element.clientHeight);\n    }\n    // If visual view port exits and it's on mobile, it should be used instead of window innerWidth / innerHeight, or document.body.clientWidth / document.body.clientHeight\n    if (platform.isIOS && (elWindow === null || elWindow === void 0 ? void 0 : elWindow.visualViewport)) {\n        return new Dimension(elWindow.visualViewport.width, elWindow.visualViewport.height);\n    }\n    // Try innerWidth / innerHeight\n    if ((elWindow === null || elWindow === void 0 ? void 0 : elWindow.innerWidth) && elWindow.innerHeight) {\n        return new Dimension(elWindow.innerWidth, elWindow.innerHeight);\n    }\n    // Try with document.body.clientWidth / document.body.clientHeight\n    if (elDocument.body && elDocument.body.clientWidth && elDocument.body.clientHeight) {\n        return new Dimension(elDocument.body.clientWidth, elDocument.body.clientHeight);\n    }\n    // Try with document.documentElement.clientWidth / document.documentElement.clientHeight\n    if (elDocument.documentElement && elDocument.documentElement.clientWidth && elDocument.documentElement.clientHeight) {\n        return new Dimension(elDocument.documentElement.clientWidth, elDocument.documentElement.clientHeight);\n    }\n    if (fallback) {\n        return getClientArea(fallback);\n    }\n    throw new Error('Unable to figure out browser width and height');\n}\nclass SizeUtils {\n    // Adapted from WinJS\n    // Converts a CSS positioning string for the specified element to pixels.\n    static convertToPixels(element, value) {\n        return parseFloat(value) || 0;\n    }\n    static getDimension(element, cssPropertyName, jsPropertyName) {\n        const computedStyle = getComputedStyle(element);\n        const value = computedStyle ? computedStyle.getPropertyValue(cssPropertyName) : '0';\n        return SizeUtils.convertToPixels(element, value);\n    }\n    static getBorderLeftWidth(element) {\n        return SizeUtils.getDimension(element, 'border-left-width', 'borderLeftWidth');\n    }\n    static getBorderRightWidth(element) {\n        return SizeUtils.getDimension(element, 'border-right-width', 'borderRightWidth');\n    }\n    static getBorderTopWidth(element) {\n        return SizeUtils.getDimension(element, 'border-top-width', 'borderTopWidth');\n    }\n    static getBorderBottomWidth(element) {\n        return SizeUtils.getDimension(element, 'border-bottom-width', 'borderBottomWidth');\n    }\n    static getPaddingLeft(element) {\n        return SizeUtils.getDimension(element, 'padding-left', 'paddingLeft');\n    }\n    static getPaddingRight(element) {\n        return SizeUtils.getDimension(element, 'padding-right', 'paddingRight');\n    }\n    static getPaddingTop(element) {\n        return SizeUtils.getDimension(element, 'padding-top', 'paddingTop');\n    }\n    static getPaddingBottom(element) {\n        return SizeUtils.getDimension(element, 'padding-bottom', 'paddingBottom');\n    }\n    static getMarginLeft(element) {\n        return SizeUtils.getDimension(element, 'margin-left', 'marginLeft');\n    }\n    static getMarginTop(element) {\n        return SizeUtils.getDimension(element, 'margin-top', 'marginTop');\n    }\n    static getMarginRight(element) {\n        return SizeUtils.getDimension(element, 'margin-right', 'marginRight');\n    }\n    static getMarginBottom(element) {\n        return SizeUtils.getDimension(element, 'margin-bottom', 'marginBottom');\n    }\n}\nexport class Dimension {\n    constructor(width, height) {\n        this.width = width;\n        this.height = height;\n    }\n    with(width = this.width, height = this.height) {\n        if (width !== this.width || height !== this.height) {\n            return new Dimension(width, height);\n        }\n        else {\n            return this;\n        }\n    }\n    static is(obj) {\n        return typeof obj === 'object' && typeof obj.height === 'number' && typeof obj.width === 'number';\n    }\n    static lift(obj) {\n        if (obj instanceof Dimension) {\n            return obj;\n        }\n        else {\n            return new Dimension(obj.width, obj.height);\n        }\n    }\n    static equals(a, b) {\n        if (a === b) {\n            return true;\n        }\n        if (!a || !b) {\n            return false;\n        }\n        return a.width === b.width && a.height === b.height;\n    }\n}\nDimension.None = new Dimension(0, 0);\nexport function getTopLeftOffset(element) {\n    // Adapted from WinJS.Utilities.getPosition\n    // and added borders to the mix\n    let offsetParent = element.offsetParent;\n    let top = element.offsetTop;\n    let left = element.offsetLeft;\n    while ((element = element.parentNode) !== null\n        && element !== element.ownerDocument.body\n        && element !== element.ownerDocument.documentElement) {\n        top -= element.scrollTop;\n        const c = isShadowRoot(element) ? null : getComputedStyle(element);\n        if (c) {\n            left -= c.direction !== 'rtl' ? element.scrollLeft : -element.scrollLeft;\n        }\n        if (element === offsetParent) {\n            left += SizeUtils.getBorderLeftWidth(element);\n            top += SizeUtils.getBorderTopWidth(element);\n            top += element.offsetTop;\n            left += element.offsetLeft;\n            offsetParent = element.offsetParent;\n        }\n    }\n    return {\n        left: left,\n        top: top\n    };\n}\nexport function size(element, width, height) {\n    if (typeof width === 'number') {\n        element.style.width = `${width}px`;\n    }\n    if (typeof height === 'number') {\n        element.style.height = `${height}px`;\n    }\n}\n/**\n * Returns the position of a dom node relative to the entire page.\n */\nexport function getDomNodePagePosition(domNode) {\n    const bb = domNode.getBoundingClientRect();\n    const window = getWindow(domNode);\n    return {\n        left: bb.left + window.scrollX,\n        top: bb.top + window.scrollY,\n        width: bb.width,\n        height: bb.height\n    };\n}\n/**\n * Returns the effective zoom on a given element before window zoom level is applied\n */\nexport function getDomNodeZoomLevel(domNode) {\n    let testElement = domNode;\n    let zoom = 1.0;\n    do {\n        const elementZoomLevel = getComputedStyle(testElement).zoom;\n        if (elementZoomLevel !== null && elementZoomLevel !== undefined && elementZoomLevel !== '1') {\n            zoom *= elementZoomLevel;\n        }\n        testElement = testElement.parentElement;\n    } while (testElement !== null && testElement !== testElement.ownerDocument.documentElement);\n    return zoom;\n}\n// Adapted from WinJS\n// Gets the width of the element, including margins.\nexport function getTotalWidth(element) {\n    const margin = SizeUtils.getMarginLeft(element) + SizeUtils.getMarginRight(element);\n    return element.offsetWidth + margin;\n}\nexport function getContentWidth(element) {\n    const border = SizeUtils.getBorderLeftWidth(element) + SizeUtils.getBorderRightWidth(element);\n    const padding = SizeUtils.getPaddingLeft(element) + SizeUtils.getPaddingRight(element);\n    return element.offsetWidth - border - padding;\n}\n// Adapted from WinJS\n// Gets the height of the content of the specified element. The content height does not include borders or padding.\nexport function getContentHeight(element) {\n    const border = SizeUtils.getBorderTopWidth(element) + SizeUtils.getBorderBottomWidth(element);\n    const padding = SizeUtils.getPaddingTop(element) + SizeUtils.getPaddingBottom(element);\n    return element.offsetHeight - border - padding;\n}\n// Adapted from WinJS\n// Gets the height of the element, including its margins.\nexport function getTotalHeight(element) {\n    const margin = SizeUtils.getMarginTop(element) + SizeUtils.getMarginBottom(element);\n    return element.offsetHeight + margin;\n}\n// ----------------------------------------------------------------------------------------\nexport function isAncestor(testChild, testAncestor) {\n    return Boolean(testAncestor === null || testAncestor === void 0 ? void 0 : testAncestor.contains(testChild));\n}\nexport function findParentWithClass(node, clazz, stopAtClazzOrNode) {\n    while (node && node.nodeType === node.ELEMENT_NODE) {\n        if (node.classList.contains(clazz)) {\n            return node;\n        }\n        if (stopAtClazzOrNode) {\n            if (typeof stopAtClazzOrNode === 'string') {\n                if (node.classList.contains(stopAtClazzOrNode)) {\n                    return null;\n                }\n            }\n            else {\n                if (node === stopAtClazzOrNode) {\n                    return null;\n                }\n            }\n        }\n        node = node.parentNode;\n    }\n    return null;\n}\nexport function hasParentWithClass(node, clazz, stopAtClazzOrNode) {\n    return !!findParentWithClass(node, clazz, stopAtClazzOrNode);\n}\nexport function isShadowRoot(node) {\n    return (node && !!node.host && !!node.mode);\n}\nexport function isInShadowDOM(domNode) {\n    return !!getShadowRoot(domNode);\n}\nexport function getShadowRoot(domNode) {\n    var _a;\n    while (domNode.parentNode) {\n        if (domNode === ((_a = domNode.ownerDocument) === null || _a === void 0 ? void 0 : _a.body)) {\n            // reached the body\n            return null;\n        }\n        domNode = domNode.parentNode;\n    }\n    return isShadowRoot(domNode) ? domNode : null;\n}\n/**\n * Returns the active element across all child windows\n * based on document focus. Falls back to the main\n * window if no window has focus.\n */\nexport function getActiveElement() {\n    let result = getActiveDocument().activeElement;\n    while (result === null || result === void 0 ? void 0 : result.shadowRoot) {\n        result = result.shadowRoot.activeElement;\n    }\n    return result;\n}\n/**\n * Returns true if the focused window active element matches\n * the provided element. Falls back to the main window if no\n * window has focus.\n */\nexport function isActiveElement(element) {\n    return getActiveElement() === element;\n}\n/**\n * Returns true if the focused window active element is contained in\n * `ancestor`. Falls back to the main window if no window has focus.\n */\nexport function isAncestorOfActiveElement(ancestor) {\n    return isAncestor(getActiveElement(), ancestor);\n}\n/**\n * Returns the active document across main and child windows.\n * Prefers the window with focus, otherwise falls back to\n * the main windows document.\n */\nexport function getActiveDocument() {\n    var _a;\n    if (getWindowsCount() <= 1) {\n        return mainWindow.document;\n    }\n    const documents = Array.from(getWindows()).map(({ window }) => window.document);\n    return (_a = documents.find(doc => doc.hasFocus())) !== null && _a !== void 0 ? _a : mainWindow.document;\n}\n/**\n * Returns the active window across main and child windows.\n * Prefers the window with focus, otherwise falls back to\n * the main window.\n */\nexport function getActiveWindow() {\n    var _a, _b;\n    const document = getActiveDocument();\n    return ((_b = (_a = document.defaultView) === null || _a === void 0 ? void 0 : _a.window) !== null && _b !== void 0 ? _b : mainWindow);\n}\nconst globalStylesheets = new Map();\n/**\n * A version of createStyleSheet which has a unified API to initialize/set the style content.\n */\nexport function createStyleSheet2() {\n    return new WrappedStyleElement();\n}\nclass WrappedStyleElement {\n    constructor() {\n        this._currentCssStyle = '';\n        this._styleSheet = undefined;\n    }\n    setStyle(cssStyle) {\n        if (cssStyle === this._currentCssStyle) {\n            return;\n        }\n        this._currentCssStyle = cssStyle;\n        if (!this._styleSheet) {\n            this._styleSheet = createStyleSheet(mainWindow.document.head, (s) => s.innerText = cssStyle);\n        }\n        else {\n            this._styleSheet.innerText = cssStyle;\n        }\n    }\n    dispose() {\n        if (this._styleSheet) {\n            this._styleSheet.remove();\n            this._styleSheet = undefined;\n        }\n    }\n}\nexport function createStyleSheet(container = mainWindow.document.head, beforeAppend, disposableStore) {\n    const style = document.createElement('style');\n    style.type = 'text/css';\n    style.media = 'screen';\n    beforeAppend === null || beforeAppend === void 0 ? void 0 : beforeAppend(style);\n    container.appendChild(style);\n    if (disposableStore) {\n        disposableStore.add(toDisposable(() => container.removeChild(style)));\n    }\n    // With <head> as container, the stylesheet becomes global and is tracked\n    // to support auxiliary windows to clone the stylesheet.\n    if (container === mainWindow.document.head) {\n        const globalStylesheetClones = new Set();\n        globalStylesheets.set(style, globalStylesheetClones);\n        for (const { window: targetWindow, disposables } of getWindows()) {\n            if (targetWindow === mainWindow) {\n                continue; // main window is already tracked\n            }\n            const cloneDisposable = disposables.add(cloneGlobalStyleSheet(style, globalStylesheetClones, targetWindow));\n            disposableStore === null || disposableStore === void 0 ? void 0 : disposableStore.add(cloneDisposable);\n        }\n    }\n    return style;\n}\nfunction cloneGlobalStyleSheet(globalStylesheet, globalStylesheetClones, targetWindow) {\n    var _a, _b;\n    const disposables = new DisposableStore();\n    const clone = globalStylesheet.cloneNode(true);\n    targetWindow.document.head.appendChild(clone);\n    disposables.add(toDisposable(() => targetWindow.document.head.removeChild(clone)));\n    for (const rule of getDynamicStyleSheetRules(globalStylesheet)) {\n        (_a = clone.sheet) === null || _a === void 0 ? void 0 : _a.insertRule(rule.cssText, (_b = clone.sheet) === null || _b === void 0 ? void 0 : _b.cssRules.length);\n    }\n    disposables.add(sharedMutationObserver.observe(globalStylesheet, disposables, { childList: true })(() => {\n        clone.textContent = globalStylesheet.textContent;\n    }));\n    globalStylesheetClones.add(clone);\n    disposables.add(toDisposable(() => globalStylesheetClones.delete(clone)));\n    return disposables;\n}\nexport const sharedMutationObserver = new class {\n    constructor() {\n        this.mutationObservers = new Map();\n    }\n    observe(target, disposables, options) {\n        let mutationObserversPerTarget = this.mutationObservers.get(target);\n        if (!mutationObserversPerTarget) {\n            mutationObserversPerTarget = new Map();\n            this.mutationObservers.set(target, mutationObserversPerTarget);\n        }\n        const optionsHash = hash(options);\n        let mutationObserverPerOptions = mutationObserversPerTarget.get(optionsHash);\n        if (!mutationObserverPerOptions) {\n            const onDidMutate = new event.Emitter();\n            const observer = new MutationObserver(mutations => onDidMutate.fire(mutations));\n            observer.observe(target, options);\n            const resolvedMutationObserverPerOptions = mutationObserverPerOptions = {\n                users: 1,\n                observer,\n                onDidMutate: onDidMutate.event\n            };\n            disposables.add(toDisposable(() => {\n                resolvedMutationObserverPerOptions.users -= 1;\n                if (resolvedMutationObserverPerOptions.users === 0) {\n                    onDidMutate.dispose();\n                    observer.disconnect();\n                    mutationObserversPerTarget === null || mutationObserversPerTarget === void 0 ? void 0 : mutationObserversPerTarget.delete(optionsHash);\n                    if ((mutationObserversPerTarget === null || mutationObserversPerTarget === void 0 ? void 0 : mutationObserversPerTarget.size) === 0) {\n                        this.mutationObservers.delete(target);\n                    }\n                }\n            }));\n            mutationObserversPerTarget.set(optionsHash, mutationObserverPerOptions);\n        }\n        else {\n            mutationObserverPerOptions.users += 1;\n        }\n        return mutationObserverPerOptions.onDidMutate;\n    }\n};\nlet _sharedStyleSheet = null;\nfunction getSharedStyleSheet() {\n    if (!_sharedStyleSheet) {\n        _sharedStyleSheet = createStyleSheet();\n    }\n    return _sharedStyleSheet;\n}\nfunction getDynamicStyleSheetRules(style) {\n    var _a, _b;\n    if ((_a = style === null || style === void 0 ? void 0 : style.sheet) === null || _a === void 0 ? void 0 : _a.rules) {\n        // Chrome, IE\n        return style.sheet.rules;\n    }\n    if ((_b = style === null || style === void 0 ? void 0 : style.sheet) === null || _b === void 0 ? void 0 : _b.cssRules) {\n        // FF\n        return style.sheet.cssRules;\n    }\n    return [];\n}\nexport function createCSSRule(selector, cssText, style = getSharedStyleSheet()) {\n    var _a, _b;\n    if (!style || !cssText) {\n        return;\n    }\n    (_a = style.sheet) === null || _a === void 0 ? void 0 : _a.insertRule(`${selector} {${cssText}}`, 0);\n    // Apply rule also to all cloned global stylesheets\n    for (const clonedGlobalStylesheet of (_b = globalStylesheets.get(style)) !== null && _b !== void 0 ? _b : []) {\n        createCSSRule(selector, cssText, clonedGlobalStylesheet);\n    }\n}\nexport function removeCSSRulesContainingSelector(ruleName, style = getSharedStyleSheet()) {\n    var _a, _b;\n    if (!style) {\n        return;\n    }\n    const rules = getDynamicStyleSheetRules(style);\n    const toDelete = [];\n    for (let i = 0; i < rules.length; i++) {\n        const rule = rules[i];\n        if (isCSSStyleRule(rule) && rule.selectorText.indexOf(ruleName) !== -1) {\n            toDelete.push(i);\n        }\n    }\n    for (let i = toDelete.length - 1; i >= 0; i--) {\n        (_a = style.sheet) === null || _a === void 0 ? void 0 : _a.deleteRule(toDelete[i]);\n    }\n    // Remove rules also from all cloned global stylesheets\n    for (const clonedGlobalStylesheet of (_b = globalStylesheets.get(style)) !== null && _b !== void 0 ? _b : []) {\n        removeCSSRulesContainingSelector(ruleName, clonedGlobalStylesheet);\n    }\n}\nfunction isCSSStyleRule(rule) {\n    return typeof rule.selectorText === 'string';\n}\nexport function isHTMLElement(e) {\n    // eslint-disable-next-line no-restricted-syntax\n    return e instanceof HTMLElement || e instanceof getWindow(e).HTMLElement;\n}\nexport function isHTMLAnchorElement(e) {\n    // eslint-disable-next-line no-restricted-syntax\n    return e instanceof HTMLAnchorElement || e instanceof getWindow(e).HTMLAnchorElement;\n}\nexport function isMouseEvent(e) {\n    // eslint-disable-next-line no-restricted-syntax\n    return e instanceof MouseEvent || e instanceof getWindow(e).MouseEvent;\n}\nexport function isKeyboardEvent(e) {\n    // eslint-disable-next-line no-restricted-syntax\n    return e instanceof KeyboardEvent || e instanceof getWindow(e).KeyboardEvent;\n}\nexport const EventType = {\n    // Mouse\n    CLICK: 'click',\n    AUXCLICK: 'auxclick',\n    DBLCLICK: 'dblclick',\n    MOUSE_UP: 'mouseup',\n    MOUSE_DOWN: 'mousedown',\n    MOUSE_OVER: 'mouseover',\n    MOUSE_MOVE: 'mousemove',\n    MOUSE_OUT: 'mouseout',\n    MOUSE_ENTER: 'mouseenter',\n    MOUSE_LEAVE: 'mouseleave',\n    MOUSE_WHEEL: 'wheel',\n    POINTER_UP: 'pointerup',\n    POINTER_DOWN: 'pointerdown',\n    POINTER_MOVE: 'pointermove',\n    POINTER_LEAVE: 'pointerleave',\n    CONTEXT_MENU: 'contextmenu',\n    WHEEL: 'wheel',\n    // Keyboard\n    KEY_DOWN: 'keydown',\n    KEY_PRESS: 'keypress',\n    KEY_UP: 'keyup',\n    // HTML Document\n    LOAD: 'load',\n    BEFORE_UNLOAD: 'beforeunload',\n    UNLOAD: 'unload',\n    PAGE_SHOW: 'pageshow',\n    PAGE_HIDE: 'pagehide',\n    PASTE: 'paste',\n    ABORT: 'abort',\n    ERROR: 'error',\n    RESIZE: 'resize',\n    SCROLL: 'scroll',\n    FULLSCREEN_CHANGE: 'fullscreenchange',\n    WK_FULLSCREEN_CHANGE: 'webkitfullscreenchange',\n    // Form\n    SELECT: 'select',\n    CHANGE: 'change',\n    SUBMIT: 'submit',\n    RESET: 'reset',\n    FOCUS: 'focus',\n    FOCUS_IN: 'focusin',\n    FOCUS_OUT: 'focusout',\n    BLUR: 'blur',\n    INPUT: 'input',\n    // Local Storage\n    STORAGE: 'storage',\n    // Drag\n    DRAG_START: 'dragstart',\n    DRAG: 'drag',\n    DRAG_ENTER: 'dragenter',\n    DRAG_LEAVE: 'dragleave',\n    DRAG_OVER: 'dragover',\n    DROP: 'drop',\n    DRAG_END: 'dragend',\n    // Animation\n    ANIMATION_START: browser.isWebKit ? 'webkitAnimationStart' : 'animationstart',\n    ANIMATION_END: browser.isWebKit ? 'webkitAnimationEnd' : 'animationend',\n    ANIMATION_ITERATION: browser.isWebKit ? 'webkitAnimationIteration' : 'animationiteration'\n};\nexport function isEventLike(obj) {\n    const candidate = obj;\n    return !!(candidate && typeof candidate.preventDefault === 'function' && typeof candidate.stopPropagation === 'function');\n}\nexport const EventHelper = {\n    stop: (e, cancelBubble) => {\n        e.preventDefault();\n        if (cancelBubble) {\n            e.stopPropagation();\n        }\n        return e;\n    }\n};\nexport function saveParentsScrollTop(node) {\n    const r = [];\n    for (let i = 0; node && node.nodeType === node.ELEMENT_NODE; i++) {\n        r[i] = node.scrollTop;\n        node = node.parentNode;\n    }\n    return r;\n}\nexport function restoreParentsScrollTop(node, state) {\n    for (let i = 0; node && node.nodeType === node.ELEMENT_NODE; i++) {\n        if (node.scrollTop !== state[i]) {\n            node.scrollTop = state[i];\n        }\n        node = node.parentNode;\n    }\n}\nclass FocusTracker extends Disposable {\n    static hasFocusWithin(element) {\n        if (isHTMLElement(element)) {\n            const shadowRoot = getShadowRoot(element);\n            const activeElement = (shadowRoot ? shadowRoot.activeElement : element.ownerDocument.activeElement);\n            return isAncestor(activeElement, element);\n        }\n        else {\n            const window = element;\n            return isAncestor(window.document.activeElement, window.document);\n        }\n    }\n    constructor(element) {\n        super();\n        this._onDidFocus = this._register(new event.Emitter());\n        this.onDidFocus = this._onDidFocus.event;\n        this._onDidBlur = this._register(new event.Emitter());\n        this.onDidBlur = this._onDidBlur.event;\n        let hasFocus = FocusTracker.hasFocusWithin(element);\n        let loosingFocus = false;\n        const onFocus = () => {\n            loosingFocus = false;\n            if (!hasFocus) {\n                hasFocus = true;\n                this._onDidFocus.fire();\n            }\n        };\n        const onBlur = () => {\n            if (hasFocus) {\n                loosingFocus = true;\n                (isHTMLElement(element) ? getWindow(element) : element).setTimeout(() => {\n                    if (loosingFocus) {\n                        loosingFocus = false;\n                        hasFocus = false;\n                        this._onDidBlur.fire();\n                    }\n                }, 0);\n            }\n        };\n        this._refreshStateHandler = () => {\n            const currentNodeHasFocus = FocusTracker.hasFocusWithin(element);\n            if (currentNodeHasFocus !== hasFocus) {\n                if (hasFocus) {\n                    onBlur();\n                }\n                else {\n                    onFocus();\n                }\n            }\n        };\n        this._register(addDisposableListener(element, EventType.FOCUS, onFocus, true));\n        this._register(addDisposableListener(element, EventType.BLUR, onBlur, true));\n        if (isHTMLElement(element)) {\n            this._register(addDisposableListener(element, EventType.FOCUS_IN, () => this._refreshStateHandler()));\n            this._register(addDisposableListener(element, EventType.FOCUS_OUT, () => this._refreshStateHandler()));\n        }\n    }\n}\n/**\n * Creates a new `IFocusTracker` instance that tracks focus changes on the given `element` and its descendants.\n *\n * @param element The `HTMLElement` or `Window` to track focus changes on.\n * @returns An `IFocusTracker` instance.\n */\nexport function trackFocus(element) {\n    return new FocusTracker(element);\n}\nexport function after(sibling, child) {\n    sibling.after(child);\n    return child;\n}\nexport function append(parent, ...children) {\n    parent.append(...children);\n    if (children.length === 1 && typeof children[0] !== 'string') {\n        return children[0];\n    }\n}\nexport function prepend(parent, child) {\n    parent.insertBefore(child, parent.firstChild);\n    return child;\n}\n/**\n * Removes all children from `parent` and appends `children`\n */\nexport function reset(parent, ...children) {\n    parent.innerText = '';\n    append(parent, ...children);\n}\nconst SELECTOR_REGEX = /([\\w\\-]+)?(#([\\w\\-]+))?((\\.([\\w\\-]+))*)/;\nexport var Namespace;\n(function (Namespace) {\n    Namespace[\"HTML\"] = \"http://www.w3.org/1999/xhtml\";\n    Namespace[\"SVG\"] = \"http://www.w3.org/2000/svg\";\n})(Namespace || (Namespace = {}));\nfunction _$(namespace, description, attrs, ...children) {\n    const match = SELECTOR_REGEX.exec(description);\n    if (!match) {\n        throw new Error('Bad use of emmet');\n    }\n    const tagName = match[1] || 'div';\n    let result;\n    if (namespace !== Namespace.HTML) {\n        result = document.createElementNS(namespace, tagName);\n    }\n    else {\n        result = document.createElement(tagName);\n    }\n    if (match[3]) {\n        result.id = match[3];\n    }\n    if (match[4]) {\n        result.className = match[4].replace(/\\./g, ' ').trim();\n    }\n    if (attrs) {\n        Object.entries(attrs).forEach(([name, value]) => {\n            if (typeof value === 'undefined') {\n                return;\n            }\n            if (/^on\\w+$/.test(name)) {\n                result[name] = value;\n            }\n            else if (name === 'selected') {\n                if (value) {\n                    result.setAttribute(name, 'true');\n                }\n            }\n            else {\n                result.setAttribute(name, value);\n            }\n        });\n    }\n    result.append(...children);\n    return result;\n}\nexport function $(description, attrs, ...children) {\n    return _$(Namespace.HTML, description, attrs, ...children);\n}\n$.SVG = function (description, attrs, ...children) {\n    return _$(Namespace.SVG, description, attrs, ...children);\n};\nexport function setVisibility(visible, ...elements) {\n    if (visible) {\n        show(...elements);\n    }\n    else {\n        hide(...elements);\n    }\n}\nexport function show(...elements) {\n    for (const element of elements) {\n        element.style.display = '';\n        element.removeAttribute('aria-hidden');\n    }\n}\nexport function hide(...elements) {\n    for (const element of elements) {\n        element.style.display = 'none';\n        element.setAttribute('aria-hidden', 'true');\n    }\n}\n/**\n * Find a value usable for a dom node size such that the likelihood that it would be\n * displayed with constant screen pixels size is as high as possible.\n *\n * e.g. We would desire for the cursors to be 2px (CSS px) wide. Under a devicePixelRatio\n * of 1.25, the cursor will be 2.5 screen pixels wide. Depending on how the dom node aligns/\"snaps\"\n * with the screen pixels, it will sometimes be rendered with 2 screen pixels, and sometimes with 3 screen pixels.\n */\nexport function computeScreenAwareSize(window, cssPx) {\n    const screenPx = window.devicePixelRatio * cssPx;\n    return Math.max(1, Math.floor(screenPx)) / window.devicePixelRatio;\n}\n/**\n * Open safely a new window. This is the best way to do so, but you cannot tell\n * if the window was opened or if it was blocked by the browser's popup blocker.\n * If you want to tell if the browser blocked the new window, use {@link windowOpenWithSuccess}.\n *\n * See https://github.com/microsoft/monaco-editor/issues/601\n * To protect against malicious code in the linked site, particularly phishing attempts,\n * the window.opener should be set to null to prevent the linked site from having access\n * to change the location of the current page.\n * See https://mathiasbynens.github.io/rel-noopener/\n */\nexport function windowOpenNoOpener(url) {\n    // By using 'noopener' in the `windowFeatures` argument, the newly created window will\n    // not be able to use `window.opener` to reach back to the current page.\n    // See https://stackoverflow.com/a/46958731\n    // See https://developer.mozilla.org/en-US/docs/Web/API/Window/open#noopener\n    // However, this also doesn't allow us to realize if the browser blocked\n    // the creation of the window.\n    mainWindow.open(url, '_blank', 'noopener');\n}\nexport function animate(targetWindow, fn) {\n    const step = () => {\n        fn();\n        stepDisposable = scheduleAtNextAnimationFrame(targetWindow, step);\n    };\n    let stepDisposable = scheduleAtNextAnimationFrame(targetWindow, step);\n    return toDisposable(() => stepDisposable.dispose());\n}\nRemoteAuthorities.setPreferredWebSchema(/^https:/.test(mainWindow.location.href) ? 'https' : 'http');\n/**\n * returns url('...')\n */\nexport function asCSSUrl(uri) {\n    if (!uri) {\n        return `url('')`;\n    }\n    return `url('${FileAccess.uriToBrowserUri(uri).toString(true).replace(/'/g, '%27')}')`;\n}\nexport function asCSSPropertyValue(value) {\n    return `'${value.replace(/'/g, '%27')}'`;\n}\nexport function asCssValueWithDefault(cssPropertyValue, dflt) {\n    if (cssPropertyValue !== undefined) {\n        const variableMatch = cssPropertyValue.match(/^\\s*var\\((.+)\\)$/);\n        if (variableMatch) {\n            const varArguments = variableMatch[1].split(',', 2);\n            if (varArguments.length === 2) {\n                dflt = asCssValueWithDefault(varArguments[1].trim(), dflt);\n            }\n            return `var(${varArguments[0]}, ${dflt})`;\n        }\n        return cssPropertyValue;\n    }\n    return dflt;\n}\n// -- sanitize and trusted html\n/**\n * Hooks dompurify using `afterSanitizeAttributes` to check that all `href` and `src`\n * attributes are valid.\n */\nexport function hookDomPurifyHrefAndSrcSanitizer(allowedProtocols, allowDataImages = false) {\n    // https://github.com/cure53/DOMPurify/blob/main/demos/hooks-scheme-allowlist.html\n    // build an anchor to map URLs to\n    const anchor = document.createElement('a');\n    dompurify.addHook('afterSanitizeAttributes', (node) => {\n        // check all href/src attributes for validity\n        for (const attr of ['href', 'src']) {\n            if (node.hasAttribute(attr)) {\n                const attrValue = node.getAttribute(attr);\n                if (attr === 'href' && attrValue.startsWith('#')) {\n                    // Allow fragment links\n                    continue;\n                }\n                anchor.href = attrValue;\n                if (!allowedProtocols.includes(anchor.protocol.replace(/:$/, ''))) {\n                    if (allowDataImages && attr === 'src' && anchor.href.startsWith('data:')) {\n                        continue;\n                    }\n                    node.removeAttribute(attr);\n                }\n            }\n        }\n    });\n    return toDisposable(() => {\n        dompurify.removeHook('afterSanitizeAttributes');\n    });\n}\n/**\n * List of safe, non-input html tags.\n */\nexport const basicMarkupHtmlTags = Object.freeze([\n    'a',\n    'abbr',\n    'b',\n    'bdo',\n    'blockquote',\n    'br',\n    'caption',\n    'cite',\n    'code',\n    'col',\n    'colgroup',\n    'dd',\n    'del',\n    'details',\n    'dfn',\n    'div',\n    'dl',\n    'dt',\n    'em',\n    'figcaption',\n    'figure',\n    'h1',\n    'h2',\n    'h3',\n    'h4',\n    'h5',\n    'h6',\n    'hr',\n    'i',\n    'img',\n    'input',\n    'ins',\n    'kbd',\n    'label',\n    'li',\n    'mark',\n    'ol',\n    'p',\n    'pre',\n    'q',\n    'rp',\n    'rt',\n    'ruby',\n    'samp',\n    'small',\n    'small',\n    'source',\n    'span',\n    'strike',\n    'strong',\n    'sub',\n    'summary',\n    'sup',\n    'table',\n    'tbody',\n    'td',\n    'tfoot',\n    'th',\n    'thead',\n    'time',\n    'tr',\n    'tt',\n    'u',\n    'ul',\n    'var',\n    'video',\n    'wbr',\n]);\nconst defaultDomPurifyConfig = Object.freeze({\n    ALLOWED_TAGS: ['a', 'button', 'blockquote', 'code', 'div', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'input', 'label', 'li', 'p', 'pre', 'select', 'small', 'span', 'strong', 'textarea', 'ul', 'ol'],\n    ALLOWED_ATTR: ['href', 'data-href', 'data-command', 'target', 'title', 'name', 'src', 'alt', 'class', 'id', 'role', 'tabindex', 'style', 'data-code', 'width', 'height', 'align', 'x-dispatch', 'required', 'checked', 'placeholder', 'type', 'start'],\n    RETURN_DOM: false,\n    RETURN_DOM_FRAGMENT: false,\n    RETURN_TRUSTED_TYPE: true\n});\nexport class ModifierKeyEmitter extends event.Emitter {\n    constructor() {\n        super();\n        this._subscriptions = new DisposableStore();\n        this._keyStatus = {\n            altKey: false,\n            shiftKey: false,\n            ctrlKey: false,\n            metaKey: false\n        };\n        this._subscriptions.add(event.Event.runAndSubscribe(onDidRegisterWindow, ({ window, disposables }) => this.registerListeners(window, disposables), { window: mainWindow, disposables: this._subscriptions }));\n    }\n    registerListeners(window, disposables) {\n        disposables.add(addDisposableListener(window, 'keydown', e => {\n            if (e.defaultPrevented) {\n                return;\n            }\n            const event = new StandardKeyboardEvent(e);\n            // If Alt-key keydown event is repeated, ignore it #112347\n            // Only known to be necessary for Alt-Key at the moment #115810\n            if (event.keyCode === 6 /* KeyCode.Alt */ && e.repeat) {\n                return;\n            }\n            if (e.altKey && !this._keyStatus.altKey) {\n                this._keyStatus.lastKeyPressed = 'alt';\n            }\n            else if (e.ctrlKey && !this._keyStatus.ctrlKey) {\n                this._keyStatus.lastKeyPressed = 'ctrl';\n            }\n            else if (e.metaKey && !this._keyStatus.metaKey) {\n                this._keyStatus.lastKeyPressed = 'meta';\n            }\n            else if (e.shiftKey && !this._keyStatus.shiftKey) {\n                this._keyStatus.lastKeyPressed = 'shift';\n            }\n            else if (event.keyCode !== 6 /* KeyCode.Alt */) {\n                this._keyStatus.lastKeyPressed = undefined;\n            }\n            else {\n                return;\n            }\n            this._keyStatus.altKey = e.altKey;\n            this._keyStatus.ctrlKey = e.ctrlKey;\n            this._keyStatus.metaKey = e.metaKey;\n            this._keyStatus.shiftKey = e.shiftKey;\n            if (this._keyStatus.lastKeyPressed) {\n                this._keyStatus.event = e;\n                this.fire(this._keyStatus);\n            }\n        }, true));\n        disposables.add(addDisposableListener(window, 'keyup', e => {\n            if (e.defaultPrevented) {\n                return;\n            }\n            if (!e.altKey && this._keyStatus.altKey) {\n                this._keyStatus.lastKeyReleased = 'alt';\n            }\n            else if (!e.ctrlKey && this._keyStatus.ctrlKey) {\n                this._keyStatus.lastKeyReleased = 'ctrl';\n            }\n            else if (!e.metaKey && this._keyStatus.metaKey) {\n                this._keyStatus.lastKeyReleased = 'meta';\n            }\n            else if (!e.shiftKey && this._keyStatus.shiftKey) {\n                this._keyStatus.lastKeyReleased = 'shift';\n            }\n            else {\n                this._keyStatus.lastKeyReleased = undefined;\n            }\n            if (this._keyStatus.lastKeyPressed !== this._keyStatus.lastKeyReleased) {\n                this._keyStatus.lastKeyPressed = undefined;\n            }\n            this._keyStatus.altKey = e.altKey;\n            this._keyStatus.ctrlKey = e.ctrlKey;\n            this._keyStatus.metaKey = e.metaKey;\n            this._keyStatus.shiftKey = e.shiftKey;\n            if (this._keyStatus.lastKeyReleased) {\n                this._keyStatus.event = e;\n                this.fire(this._keyStatus);\n            }\n        }, true));\n        disposables.add(addDisposableListener(window.document.body, 'mousedown', () => {\n            this._keyStatus.lastKeyPressed = undefined;\n        }, true));\n        disposables.add(addDisposableListener(window.document.body, 'mouseup', () => {\n            this._keyStatus.lastKeyPressed = undefined;\n        }, true));\n        disposables.add(addDisposableListener(window.document.body, 'mousemove', e => {\n            if (e.buttons) {\n                this._keyStatus.lastKeyPressed = undefined;\n            }\n        }, true));\n        disposables.add(addDisposableListener(window, 'blur', () => {\n            this.resetKeyStatus();\n        }));\n    }\n    get keyStatus() {\n        return this._keyStatus;\n    }\n    /**\n     * Allows to explicitly reset the key status based on more knowledge (#109062)\n     */\n    resetKeyStatus() {\n        this.doResetKeyStatus();\n        this.fire(this._keyStatus);\n    }\n    doResetKeyStatus() {\n        this._keyStatus = {\n            altKey: false,\n            shiftKey: false,\n            ctrlKey: false,\n            metaKey: false\n        };\n    }\n    static getInstance() {\n        if (!ModifierKeyEmitter.instance) {\n            ModifierKeyEmitter.instance = new ModifierKeyEmitter();\n        }\n        return ModifierKeyEmitter.instance;\n    }\n    dispose() {\n        super.dispose();\n        this._subscriptions.dispose();\n    }\n}\nexport class DragAndDropObserver extends Disposable {\n    constructor(element, callbacks) {\n        super();\n        this.element = element;\n        this.callbacks = callbacks;\n        // A helper to fix issues with repeated DRAG_ENTER / DRAG_LEAVE\n        // calls see https://github.com/microsoft/vscode/issues/14470\n        // when the element has child elements where the events are fired\n        // repeadedly.\n        this.counter = 0;\n        // Allows to measure the duration of the drag operation.\n        this.dragStartTime = 0;\n        this.registerListeners();\n    }\n    registerListeners() {\n        if (this.callbacks.onDragStart) {\n            this._register(addDisposableListener(this.element, EventType.DRAG_START, (e) => {\n                var _a, _b;\n                (_b = (_a = this.callbacks).onDragStart) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n            }));\n        }\n        if (this.callbacks.onDrag) {\n            this._register(addDisposableListener(this.element, EventType.DRAG, (e) => {\n                var _a, _b;\n                (_b = (_a = this.callbacks).onDrag) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n            }));\n        }\n        this._register(addDisposableListener(this.element, EventType.DRAG_ENTER, (e) => {\n            var _a, _b;\n            this.counter++;\n            this.dragStartTime = e.timeStamp;\n            (_b = (_a = this.callbacks).onDragEnter) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n        }));\n        this._register(addDisposableListener(this.element, EventType.DRAG_OVER, (e) => {\n            var _a, _b;\n            e.preventDefault(); // needed so that the drop event fires (https://stackoverflow.com/questions/21339924/drop-event-not-firing-in-chrome)\n            (_b = (_a = this.callbacks).onDragOver) === null || _b === void 0 ? void 0 : _b.call(_a, e, e.timeStamp - this.dragStartTime);\n        }));\n        this._register(addDisposableListener(this.element, EventType.DRAG_LEAVE, (e) => {\n            var _a, _b;\n            this.counter--;\n            if (this.counter === 0) {\n                this.dragStartTime = 0;\n                (_b = (_a = this.callbacks).onDragLeave) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n            }\n        }));\n        this._register(addDisposableListener(this.element, EventType.DRAG_END, (e) => {\n            var _a, _b;\n            this.counter = 0;\n            this.dragStartTime = 0;\n            (_b = (_a = this.callbacks).onDragEnd) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n        }));\n        this._register(addDisposableListener(this.element, EventType.DROP, (e) => {\n            var _a, _b;\n            this.counter = 0;\n            this.dragStartTime = 0;\n            (_b = (_a = this.callbacks).onDrop) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n        }));\n    }\n}\nconst H_REGEX = /(?<tag>[\\w\\-]+)?(?:#(?<id>[\\w\\-]+))?(?<class>(?:\\.(?:[\\w\\-]+))*)(?:@(?<name>(?:[\\w\\_])+))?/;\nexport function h(tag, ...args) {\n    let attributes;\n    let children;\n    if (Array.isArray(args[0])) {\n        attributes = {};\n        children = args[0];\n    }\n    else {\n        attributes = args[0] || {};\n        children = args[1];\n    }\n    const match = H_REGEX.exec(tag);\n    if (!match || !match.groups) {\n        throw new Error('Bad use of h');\n    }\n    const tagName = match.groups['tag'] || 'div';\n    const el = document.createElement(tagName);\n    if (match.groups['id']) {\n        el.id = match.groups['id'];\n    }\n    const classNames = [];\n    if (match.groups['class']) {\n        for (const className of match.groups['class'].split('.')) {\n            if (className !== '') {\n                classNames.push(className);\n            }\n        }\n    }\n    if (attributes.className !== undefined) {\n        for (const className of attributes.className.split('.')) {\n            if (className !== '') {\n                classNames.push(className);\n            }\n        }\n    }\n    if (classNames.length > 0) {\n        el.className = classNames.join(' ');\n    }\n    const result = {};\n    if (match.groups['name']) {\n        result[match.groups['name']] = el;\n    }\n    if (children) {\n        for (const c of children) {\n            if (isHTMLElement(c)) {\n                el.appendChild(c);\n            }\n            else if (typeof c === 'string') {\n                el.append(c);\n            }\n            else if ('root' in c) {\n                Object.assign(result, c);\n                el.appendChild(c.root);\n            }\n        }\n    }\n    for (const [key, value] of Object.entries(attributes)) {\n        if (key === 'className') {\n            continue;\n        }\n        else if (key === 'style') {\n            for (const [cssKey, cssValue] of Object.entries(value)) {\n                el.style.setProperty(camelCaseToHyphenCase(cssKey), typeof cssValue === 'number' ? cssValue + 'px' : '' + cssValue);\n            }\n        }\n        else if (key === 'tabIndex') {\n            el.tabIndex = value;\n        }\n        else {\n            el.setAttribute(camelCaseToHyphenCase(key), value.toString());\n        }\n    }\n    result['root'] = el;\n    return result;\n}\nfunction camelCaseToHyphenCase(str) {\n    return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/dompurify/dompurify.js",
    "content": "/*! @license DOMPurify 3.0.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.0.5/LICENSE */\n\nconst {\n\tentries,\n\tsetPrototypeOf,\n\tisFrozen,\n\tgetPrototypeOf,\n\tgetOwnPropertyDescriptor\n} = Object;\nlet {\n\tfreeze,\n\tseal,\n\tcreate\n} = Object; // eslint-disable-line import/no-mutable-exports\n\nlet {\n\tapply,\n\tconstruct\n} = typeof Reflect !== 'undefined' && Reflect;\n\nif (!apply) {\n\tapply = function apply(fun, thisValue, args) {\n\t\treturn fun.apply(thisValue, args);\n\t};\n}\n\nif (!freeze) {\n\tfreeze = function freeze(x) {\n\t\treturn x;\n\t};\n}\n\nif (!seal) {\n\tseal = function seal(x) {\n\t\treturn x;\n\t};\n}\n\nif (!construct) {\n\tconstruct = function construct(Func, args) {\n\t\treturn new Func(...args);\n\t};\n}\n\nconst arrayForEach = unapply(Array.prototype.forEach);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = unapply(Array.prototype.push);\nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst stringToString = unapply(String.prototype.toString);\nconst stringMatch = unapply(String.prototype.match);\nconst stringReplace = unapply(String.prototype.replace);\nconst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unapply(String.prototype.trim);\nconst regExpTest = unapply(RegExp.prototype.test);\nconst typeErrorCreate = unconstruct(TypeError);\nfunction unapply(func) {\n\treturn function (thisArg) {\n\t\tfor (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n\t\t\targs[_key - 1] = arguments[_key];\n\t\t}\n\n\t\treturn apply(func, thisArg, args);\n\t};\n}\nfunction unconstruct(func) {\n\treturn function () {\n\t\tfor (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n\t\t\targs[_key2] = arguments[_key2];\n\t\t}\n\n\t\treturn construct(func, args);\n\t};\n}\n/* Add properties to a lookup table */\n\nfunction addToSet(set, array, transformCaseFunc) {\n\tvar _transformCaseFunc;\n\n\ttransformCaseFunc = (_transformCaseFunc = transformCaseFunc) !== null && _transformCaseFunc !== void 0 ? _transformCaseFunc : stringToLowerCase;\n\n\tif (setPrototypeOf) {\n\t\t// Make 'in' and truthy checks like Boolean(set.constructor)\n\t\t// independent of any properties defined on Object.prototype.\n\t\t// Prevent prototype setters from intercepting set as a this value.\n\t\tsetPrototypeOf(set, null);\n\t}\n\n\tlet l = array.length;\n\n\twhile (l--) {\n\t\tlet element = array[l];\n\n\t\tif (typeof element === 'string') {\n\t\t\tconst lcElement = transformCaseFunc(element);\n\n\t\t\tif (lcElement !== element) {\n\t\t\t\t// Config presets (e.g. tags.js, attrs.js) are immutable.\n\t\t\t\tif (!isFrozen(array)) {\n\t\t\t\t\tarray[l] = lcElement;\n\t\t\t\t}\n\n\t\t\t\telement = lcElement;\n\t\t\t}\n\t\t}\n\n\t\tset[element] = true;\n\t}\n\n\treturn set;\n}\n/* Shallow clone an object */\n\nfunction clone(object) {\n\tconst newObject = create(null);\n\n\tfor (const [property, value] of entries(object)) {\n\t\tnewObject[property] = value;\n\t}\n\n\treturn newObject;\n}\n/* This method automatically checks if the prop is function\n * or getter and behaves accordingly. */\n\nfunction lookupGetter(object, prop) {\n\twhile (object !== null) {\n\t\tconst desc = getOwnPropertyDescriptor(object, prop);\n\n\t\tif (desc) {\n\t\t\tif (desc.get) {\n\t\t\t\treturn unapply(desc.get);\n\t\t\t}\n\n\t\t\tif (typeof desc.value === 'function') {\n\t\t\t\treturn unapply(desc.value);\n\t\t\t}\n\t\t}\n\n\t\tobject = getPrototypeOf(object);\n\t}\n\n\tfunction fallbackValue(element) {\n\t\tconsole.warn('fallback value for', element);\n\t\treturn null;\n\t}\n\n\treturn fallbackValue;\n}\n\nconst html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']); // SVG\n\nconst svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\nconst svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']); // List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\n\nconst svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\nconst mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']); // Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\n\nconst mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\nconst text = freeze(['#text']);\n\nconst html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'xmlns', 'slot']);\nconst svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\nconst mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\nconst xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\nconst MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n\nconst ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\nconst TMPLIT_EXPR = seal(/\\${[\\w\\W]*}/gm);\nconst DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n\nconst ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n\nconst IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nconst IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nconst ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\nconst DOCTYPE_NAME = seal(/^html$/i);\n\nvar EXPRESSIONS = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tMUSTACHE_EXPR: MUSTACHE_EXPR,\n\tERB_EXPR: ERB_EXPR,\n\tTMPLIT_EXPR: TMPLIT_EXPR,\n\tDATA_ATTR: DATA_ATTR,\n\tARIA_ATTR: ARIA_ATTR,\n\tIS_ALLOWED_URI: IS_ALLOWED_URI,\n\tIS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,\n\tATTR_WHITESPACE: ATTR_WHITESPACE,\n\tDOCTYPE_NAME: DOCTYPE_NAME\n});\n\nconst getGlobal = () => typeof window === 'undefined' ? null : window;\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {HTMLScriptElement} purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\n\n\nconst _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n\tif (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n\t\treturn null;\n\t} // Allow the callers to control the unique policy name\n\t// by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n\t// Policy creation with duplicate names throws in Trusted Types.\n\n\n\tlet suffix = null;\n\tconst ATTR_NAME = 'data-tt-policy-suffix';\n\n\tif (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n\t\tsuffix = purifyHostElement.getAttribute(ATTR_NAME);\n\t}\n\n\tconst policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n\ttry {\n\t\treturn trustedTypes.createPolicy(policyName, {\n\t\t\tcreateHTML(html) {\n\t\t\t\treturn html;\n\t\t\t},\n\n\t\t\tcreateScriptURL(scriptUrl) {\n\t\t\t\treturn scriptUrl;\n\t\t\t}\n\n\t\t});\n\t} catch (_) {\n\t\t// Policy creation failed (most likely another DOMPurify script has\n\t\t// already run). Skip creating the policy, as this will only cause errors\n\t\t// if TT are enforced.\n\t\tconsole.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n\t\treturn null;\n\t}\n};\n\nfunction createDOMPurify() {\n\tlet window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n\n\tconst DOMPurify = root => createDOMPurify(root);\n\t/**\n\t * Version label, exposed for easier checks\n\t * if DOMPurify is up to date or not\n\t */\n\n\n\tDOMPurify.version = '3.0.5';\n\t/**\n\t * Array of elements that DOMPurify removed during sanitation.\n\t * Empty if nothing was removed.\n\t */\n\n\tDOMPurify.removed = [];\n\n\tif (!window || !window.document || window.document.nodeType !== 9) {\n\t\t// Not running in a browser, provide a factory function\n\t\t// so that you can pass your own Window\n\t\tDOMPurify.isSupported = false;\n\t\treturn DOMPurify;\n\t}\n\n\tconst originalDocument = window.document;\n\tconst currentScript = originalDocument.currentScript;\n\tlet {\n\t\tdocument\n\t} = window;\n\tconst {\n\t\tDocumentFragment,\n\t\tHTMLTemplateElement,\n\t\tNode,\n\t\tElement,\n\t\tNodeFilter,\n\t\tNamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n\t\tHTMLFormElement,\n\t\tDOMParser,\n\t\ttrustedTypes\n\t} = window;\n\tconst ElementPrototype = Element.prototype;\n\tconst cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n\tconst getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n\tconst getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n\tconst getParentNode = lookupGetter(ElementPrototype, 'parentNode'); // As per issue #47, the web-components registry is inherited by a\n\t// new document created via createHTMLDocument. As per the spec\n\t// (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n\t// a new empty registry is used when creating a template contents owner\n\t// document, so we use that as our parent document to ensure nothing\n\t// is inherited.\n\n\tif (typeof HTMLTemplateElement === 'function') {\n\t\tconst template = document.createElement('template');\n\n\t\tif (template.content && template.content.ownerDocument) {\n\t\t\tdocument = template.content.ownerDocument;\n\t\t}\n\t}\n\n\tlet trustedTypesPolicy;\n\tlet emptyHTML = '';\n\tconst {\n\t\timplementation,\n\t\tcreateNodeIterator,\n\t\tcreateDocumentFragment,\n\t\tgetElementsByTagName\n\t} = document;\n\tconst {\n\t\timportNode\n\t} = originalDocument;\n\tlet hooks = {};\n\t/**\n\t * Expose whether this browser supports running the full DOMPurify.\n\t */\n\n\tDOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n\tconst {\n\t\tMUSTACHE_EXPR,\n\t\tERB_EXPR,\n\t\tTMPLIT_EXPR,\n\t\tDATA_ATTR,\n\t\tARIA_ATTR,\n\t\tIS_SCRIPT_OR_DATA,\n\t\tATTR_WHITESPACE\n\t} = EXPRESSIONS;\n\tlet {\n\t\tIS_ALLOWED_URI: IS_ALLOWED_URI$1\n\t} = EXPRESSIONS;\n\t/**\n\t * We consider the elements and attributes below to be safe. Ideally\n\t * don't add any new ones but feel free to remove unwanted ones.\n\t */\n\n\t/* allowed element names */\n\n\tlet ALLOWED_TAGS = null;\n\tconst DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n\t/* Allowed attribute names */\n\n\tlet ALLOWED_ATTR = null;\n\tconst DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n\t/*\n\t * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n\t * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n\t * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n\t * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n\t */\n\n\tlet CUSTOM_ELEMENT_HANDLING = Object.seal(Object.create(null, {\n\t\ttagNameCheck: {\n\t\t\twritable: true,\n\t\t\tconfigurable: false,\n\t\t\tenumerable: true,\n\t\t\tvalue: null\n\t\t},\n\t\tattributeNameCheck: {\n\t\t\twritable: true,\n\t\t\tconfigurable: false,\n\t\t\tenumerable: true,\n\t\t\tvalue: null\n\t\t},\n\t\tallowCustomizedBuiltInElements: {\n\t\t\twritable: true,\n\t\t\tconfigurable: false,\n\t\t\tenumerable: true,\n\t\t\tvalue: false\n\t\t}\n\t}));\n\t/* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n\n\tlet FORBID_TAGS = null;\n\t/* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n\n\tlet FORBID_ATTR = null;\n\t/* Decide if ARIA attributes are okay */\n\n\tlet ALLOW_ARIA_ATTR = true;\n\t/* Decide if custom data attributes are okay */\n\n\tlet ALLOW_DATA_ATTR = true;\n\t/* Decide if unknown protocols are okay */\n\n\tlet ALLOW_UNKNOWN_PROTOCOLS = false;\n\t/* Decide if self-closing tags in attributes are allowed.\n\t * Usually removed due to a mXSS issue in jQuery 3.0 */\n\n\tlet ALLOW_SELF_CLOSE_IN_ATTR = true;\n\t/* Output should be safe for common template engines.\n\t * This means, DOMPurify removes data attributes, mustaches and ERB\n\t */\n\n\tlet SAFE_FOR_TEMPLATES = false;\n\t/* Decide if document with <html>... should be returned */\n\n\tlet WHOLE_DOCUMENT = false;\n\t/* Track whether config is already set on this instance of DOMPurify. */\n\n\tlet SET_CONFIG = false;\n\t/* Decide if all elements (e.g. style, script) must be children of\n\t * document.body. By default, browsers might move them to document.head */\n\n\tlet FORCE_BODY = false;\n\t/* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n\t * string (or a TrustedHTML object if Trusted Types are supported).\n\t * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n\t */\n\n\tlet RETURN_DOM = false;\n\t/* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n\t * string  (or a TrustedHTML object if Trusted Types are supported) */\n\n\tlet RETURN_DOM_FRAGMENT = false;\n\t/* Try to return a Trusted Type object instead of a string, return a string in\n\t * case Trusted Types are not supported  */\n\n\tlet RETURN_TRUSTED_TYPE = false;\n\t/* Output should be free from DOM clobbering attacks?\n\t * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n\t */\n\n\tlet SANITIZE_DOM = true;\n\t/* Achieve full DOM Clobbering protection by isolating the namespace of named\n\t * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n\t *\n\t * HTML/DOM spec rules that enable DOM Clobbering:\n\t *   - Named Access on Window (§7.3.3)\n\t *   - DOM Tree Accessors (§3.1.5)\n\t *   - Form Element Parent-Child Relations (§4.10.3)\n\t *   - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n\t *   - HTMLCollection (§4.2.10.2)\n\t *\n\t * Namespace isolation is implemented by prefixing `id` and `name` attributes\n\t * with a constant string, i.e., `user-content-`\n\t */\n\n\tlet SANITIZE_NAMED_PROPS = false;\n\tconst SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n\t/* Keep element content when removing element? */\n\n\tlet KEEP_CONTENT = true;\n\t/* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n\t * of importing it into a new Document and returning a sanitized copy */\n\n\tlet IN_PLACE = false;\n\t/* Allow usage of profiles like html, svg and mathMl */\n\n\tlet USE_PROFILES = {};\n\t/* Tags to ignore content of when KEEP_CONTENT is true */\n\n\tlet FORBID_CONTENTS = null;\n\tconst DEFAULT_FORBID_CONTENTS = addToSet({}, ['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']);\n\t/* Tags that are safe for data: URIs */\n\n\tlet DATA_URI_TAGS = null;\n\tconst DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n\t/* Attributes safe for values like \"javascript:\" */\n\n\tlet URI_SAFE_ATTRIBUTES = null;\n\tconst DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n\tconst MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n\tconst SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n\tconst HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n\t/* Document namespace */\n\n\tlet NAMESPACE = HTML_NAMESPACE;\n\tlet IS_EMPTY_INPUT = false;\n\t/* Allowed XHTML+XML namespaces */\n\n\tlet ALLOWED_NAMESPACES = null;\n\tconst DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n\t/* Parsing of strict XHTML documents */\n\n\tlet PARSER_MEDIA_TYPE;\n\tconst SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n\tconst DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n\tlet transformCaseFunc;\n\t/* Keep a reference to config to pass to hooks */\n\n\tlet CONFIG = null;\n\t/* Ideally, do not touch anything below this line */\n\n\t/* ______________________________________________ */\n\n\tconst formElement = document.createElement('form');\n\n\tconst isRegexOrFunction = function isRegexOrFunction(testValue) {\n\t\treturn testValue instanceof RegExp || testValue instanceof Function;\n\t};\n\t/**\n\t * _parseConfig\n\t *\n\t * @param  {Object} cfg optional config literal\n\t */\n\t// eslint-disable-next-line complexity\n\n\n\tconst _parseConfig = function _parseConfig(cfg) {\n\t\tif (CONFIG && CONFIG === cfg) {\n\t\t\treturn;\n\t\t}\n\t\t/* Shield configuration object from tampering */\n\n\n\t\tif (!cfg || typeof cfg !== 'object') {\n\t\t\tcfg = {};\n\t\t}\n\t\t/* Shield configuration object from prototype pollution */\n\n\n\t\tcfg = clone(cfg);\n\t\tPARSER_MEDIA_TYPE = // eslint-disable-next-line unicorn/prefer-includes\n\t\t\tSUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE : PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE; // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n\n\t\ttransformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n\t\t/* Set configuration parameters */\n\n\t\tALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n\t\tALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n\t\tALLOWED_NAMESPACES = 'ALLOWED_NAMESPACES' in cfg ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n\t\tURI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), // eslint-disable-line indent\n\t\t\tcfg.ADD_URI_SAFE_ATTR, // eslint-disable-line indent\n\t\t\ttransformCaseFunc // eslint-disable-line indent\n\t\t) // eslint-disable-line indent\n\t\t\t: DEFAULT_URI_SAFE_ATTRIBUTES;\n\t\tDATA_URI_TAGS = 'ADD_DATA_URI_TAGS' in cfg ? addToSet(clone(DEFAULT_DATA_URI_TAGS), // eslint-disable-line indent\n\t\t\tcfg.ADD_DATA_URI_TAGS, // eslint-disable-line indent\n\t\t\ttransformCaseFunc // eslint-disable-line indent\n\t\t) // eslint-disable-line indent\n\t\t\t: DEFAULT_DATA_URI_TAGS;\n\t\tFORBID_CONTENTS = 'FORBID_CONTENTS' in cfg ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n\t\tFORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};\n\t\tFORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\n\t\tUSE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n\t\tALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n\n\t\tALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n\n\t\tALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n\n\t\tALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n\n\t\tSAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n\n\t\tWHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n\n\t\tRETURN_DOM = cfg.RETURN_DOM || false; // Default false\n\n\t\tRETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n\n\t\tRETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n\n\t\tFORCE_BODY = cfg.FORCE_BODY || false; // Default false\n\n\t\tSANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n\n\t\tSANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n\n\t\tKEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n\n\t\tIN_PLACE = cfg.IN_PLACE || false; // Default false\n\n\t\tIS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n\t\tNAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n\t\tCUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n\n\t\tif (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n\t\t\tCUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n\t\t}\n\n\t\tif (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n\t\t\tCUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n\t\t}\n\n\t\tif (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n\t\t\tCUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n\t\t}\n\n\t\tif (SAFE_FOR_TEMPLATES) {\n\t\t\tALLOW_DATA_ATTR = false;\n\t\t}\n\n\t\tif (RETURN_DOM_FRAGMENT) {\n\t\t\tRETURN_DOM = true;\n\t\t}\n\t\t/* Parse profile info */\n\n\n\t\tif (USE_PROFILES) {\n\t\t\tALLOWED_TAGS = addToSet({}, [...text]);\n\t\t\tALLOWED_ATTR = [];\n\n\t\t\tif (USE_PROFILES.html === true) {\n\t\t\t\taddToSet(ALLOWED_TAGS, html$1);\n\t\t\t\taddToSet(ALLOWED_ATTR, html);\n\t\t\t}\n\n\t\t\tif (USE_PROFILES.svg === true) {\n\t\t\t\taddToSet(ALLOWED_TAGS, svg$1);\n\t\t\t\taddToSet(ALLOWED_ATTR, svg);\n\t\t\t\taddToSet(ALLOWED_ATTR, xml);\n\t\t\t}\n\n\t\t\tif (USE_PROFILES.svgFilters === true) {\n\t\t\t\taddToSet(ALLOWED_TAGS, svgFilters);\n\t\t\t\taddToSet(ALLOWED_ATTR, svg);\n\t\t\t\taddToSet(ALLOWED_ATTR, xml);\n\t\t\t}\n\n\t\t\tif (USE_PROFILES.mathMl === true) {\n\t\t\t\taddToSet(ALLOWED_TAGS, mathMl$1);\n\t\t\t\taddToSet(ALLOWED_ATTR, mathMl);\n\t\t\t\taddToSet(ALLOWED_ATTR, xml);\n\t\t\t}\n\t\t}\n\t\t/* Merge configuration parameters */\n\n\n\t\tif (cfg.ADD_TAGS) {\n\t\t\tif (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n\t\t\t\tALLOWED_TAGS = clone(ALLOWED_TAGS);\n\t\t\t}\n\n\t\t\taddToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n\t\t}\n\n\t\tif (cfg.ADD_ATTR) {\n\t\t\tif (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n\t\t\t\tALLOWED_ATTR = clone(ALLOWED_ATTR);\n\t\t\t}\n\n\t\t\taddToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n\t\t}\n\n\t\tif (cfg.ADD_URI_SAFE_ATTR) {\n\t\t\taddToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n\t\t}\n\n\t\tif (cfg.FORBID_CONTENTS) {\n\t\t\tif (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n\t\t\t\tFORBID_CONTENTS = clone(FORBID_CONTENTS);\n\t\t\t}\n\n\t\t\taddToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n\t\t}\n\t\t/* Add #text in case KEEP_CONTENT is set to true */\n\n\n\t\tif (KEEP_CONTENT) {\n\t\t\tALLOWED_TAGS['#text'] = true;\n\t\t}\n\t\t/* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n\n\n\t\tif (WHOLE_DOCUMENT) {\n\t\t\taddToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n\t\t}\n\t\t/* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n\n\n\t\tif (ALLOWED_TAGS.table) {\n\t\t\taddToSet(ALLOWED_TAGS, ['tbody']);\n\t\t\tdelete FORBID_TAGS.tbody;\n\t\t}\n\n\t\tif (cfg.TRUSTED_TYPES_POLICY) {\n\t\t\tif (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n\t\t\t\tthrow typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n\t\t\t}\n\n\t\t\tif (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n\t\t\t\tthrow typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n\t\t\t} // Overwrite existing TrustedTypes policy.\n\n\n\t\t\ttrustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY; // Sign local variables required by `sanitize`.\n\n\t\t\temptyHTML = trustedTypesPolicy.createHTML('');\n\t\t} else {\n\t\t\t// Uninitialized policy, attempt to initialize the internal dompurify policy.\n\t\t\tif (trustedTypesPolicy === undefined) {\n\t\t\t\ttrustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n\t\t\t} // If creating the internal policy succeeded sign internal variables.\n\n\n\t\t\tif (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n\t\t\t\temptyHTML = trustedTypesPolicy.createHTML('');\n\t\t\t}\n\t\t} // Prevent further manipulation of configuration.\n\t\t// Not available in IE8, Safari 5, etc.\n\n\n\t\tif (freeze) {\n\t\t\tfreeze(cfg);\n\t\t}\n\n\t\tCONFIG = cfg;\n\t};\n\n\tconst MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n\tconst HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'desc', 'title', 'annotation-xml']); // Certain elements are allowed in both SVG and HTML\n\t// namespace. We need to specify them explicitly\n\t// so that they don't get erroneously deleted from\n\t// HTML namespace.\n\n\tconst COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n\t/* Keep track of all possible SVG and MathML tags\n\t * so that we can perform the namespace checks\n\t * correctly. */\n\n\tconst ALL_SVG_TAGS = addToSet({}, svg$1);\n\taddToSet(ALL_SVG_TAGS, svgFilters);\n\taddToSet(ALL_SVG_TAGS, svgDisallowed);\n\tconst ALL_MATHML_TAGS = addToSet({}, mathMl$1);\n\taddToSet(ALL_MATHML_TAGS, mathMlDisallowed);\n\t/**\n\t *\n\t *\n\t * @param  {Element} element a DOM element whose namespace is being checked\n\t * @returns {boolean} Return false if the element has a\n\t *  namespace that a spec-compliant parser would never\n\t *  return. Return true otherwise.\n\t */\n\n\tconst _checkValidNamespace = function _checkValidNamespace(element) {\n\t\tlet parent = getParentNode(element); // In JSDOM, if we're inside shadow DOM, then parentNode\n\t\t// can be null. We just simulate parent in this case.\n\n\t\tif (!parent || !parent.tagName) {\n\t\t\tparent = {\n\t\t\t\tnamespaceURI: NAMESPACE,\n\t\t\t\ttagName: 'template'\n\t\t\t};\n\t\t}\n\n\t\tconst tagName = stringToLowerCase(element.tagName);\n\t\tconst parentTagName = stringToLowerCase(parent.tagName);\n\n\t\tif (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (element.namespaceURI === SVG_NAMESPACE) {\n\t\t\t// The only way to switch from HTML namespace to SVG\n\t\t\t// is via <svg>. If it happens via any other tag, then\n\t\t\t// it should be killed.\n\t\t\tif (parent.namespaceURI === HTML_NAMESPACE) {\n\t\t\t\treturn tagName === 'svg';\n\t\t\t} // The only way to switch from MathML to SVG is via`\n\t\t\t// svg if parent is either <annotation-xml> or MathML\n\t\t\t// text integration points.\n\n\n\t\t\tif (parent.namespaceURI === MATHML_NAMESPACE) {\n\t\t\t\treturn tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n\t\t\t} // We only allow elements that are defined in SVG\n\t\t\t// spec. All others are disallowed in SVG namespace.\n\n\n\t\t\treturn Boolean(ALL_SVG_TAGS[tagName]);\n\t\t}\n\n\t\tif (element.namespaceURI === MATHML_NAMESPACE) {\n\t\t\t// The only way to switch from HTML namespace to MathML\n\t\t\t// is via <math>. If it happens via any other tag, then\n\t\t\t// it should be killed.\n\t\t\tif (parent.namespaceURI === HTML_NAMESPACE) {\n\t\t\t\treturn tagName === 'math';\n\t\t\t} // The only way to switch from SVG to MathML is via\n\t\t\t// <math> and HTML integration points\n\n\n\t\t\tif (parent.namespaceURI === SVG_NAMESPACE) {\n\t\t\t\treturn tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n\t\t\t} // We only allow elements that are defined in MathML\n\t\t\t// spec. All others are disallowed in MathML namespace.\n\n\n\t\t\treturn Boolean(ALL_MATHML_TAGS[tagName]);\n\t\t}\n\n\t\tif (element.namespaceURI === HTML_NAMESPACE) {\n\t\t\t// The only way to switch from SVG to HTML is via\n\t\t\t// HTML integration points, and from MathML to HTML\n\t\t\t// is via MathML text integration points\n\t\t\tif (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n\t\t\t\treturn false;\n\t\t\t} // We disallow tags that are specific for MathML\n\t\t\t// or SVG and should never appear in HTML namespace\n\n\n\t\t\treturn !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n\t\t} // For XHTML and XML documents that support custom namespaces\n\n\n\t\tif (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n\t\t\treturn true;\n\t\t} // The code should never reach this place (this means\n\t\t// that the element somehow got namespace that is not\n\t\t// HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n\t\t// Return false just in case.\n\n\n\t\treturn false;\n\t};\n\t/**\n\t * _forceRemove\n\t *\n\t * @param  {Node} node a DOM node\n\t */\n\n\n\tconst _forceRemove = function _forceRemove(node) {\n\t\tarrayPush(DOMPurify.removed, {\n\t\t\telement: node\n\t\t});\n\n\t\ttry {\n\t\t\t// eslint-disable-next-line unicorn/prefer-dom-node-remove\n\t\t\tnode.parentNode.removeChild(node);\n\t\t} catch (_) {\n\t\t\tnode.remove();\n\t\t}\n\t};\n\t/**\n\t * _removeAttribute\n\t *\n\t * @param  {String} name an Attribute name\n\t * @param  {Node} node a DOM node\n\t */\n\n\n\tconst _removeAttribute = function _removeAttribute(name, node) {\n\t\ttry {\n\t\t\tarrayPush(DOMPurify.removed, {\n\t\t\t\tattribute: node.getAttributeNode(name),\n\t\t\t\tfrom: node\n\t\t\t});\n\t\t} catch (_) {\n\t\t\tarrayPush(DOMPurify.removed, {\n\t\t\t\tattribute: null,\n\t\t\t\tfrom: node\n\t\t\t});\n\t\t}\n\n\t\tnode.removeAttribute(name); // We void attribute values for unremovable \"is\"\" attributes\n\n\t\tif (name === 'is' && !ALLOWED_ATTR[name]) {\n\t\t\tif (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n\t\t\t\ttry {\n\t\t\t\t\t_forceRemove(node);\n\t\t\t\t} catch (_) { }\n\t\t\t} else {\n\t\t\t\ttry {\n\t\t\t\t\tnode.setAttribute(name, '');\n\t\t\t\t} catch (_) { }\n\t\t\t}\n\t\t}\n\t};\n\t/**\n\t * _initDocument\n\t *\n\t * @param  {String} dirty a string of dirty markup\n\t * @return {Document} a DOM, filled with the dirty markup\n\t */\n\n\n\tconst _initDocument = function _initDocument(dirty) {\n\t\t/* Create a HTML document */\n\t\tlet doc;\n\t\tlet leadingWhitespace;\n\n\t\tif (FORCE_BODY) {\n\t\t\tdirty = '<remove></remove>' + dirty;\n\t\t} else {\n\t\t\t/* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n\t\t\tconst matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n\t\t\tleadingWhitespace = matches && matches[0];\n\t\t}\n\n\t\tif (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n\t\t\t// Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n\t\t\tdirty = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + dirty + '</body></html>';\n\t\t}\n\n\t\tconst dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n\t\t/*\n\t\t * Use the DOMParser API by default, fallback later if needs be\n\t\t * DOMParser not work for svg when has multiple root element.\n\t\t */\n\n\t\tif (NAMESPACE === HTML_NAMESPACE) {\n\t\t\ttry {\n\t\t\t\tdoc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n\t\t\t} catch (_) { }\n\t\t}\n\t\t/* Use createHTMLDocument in case DOMParser is not available */\n\n\n\t\tif (!doc || !doc.documentElement) {\n\t\t\tdoc = implementation.createDocument(NAMESPACE, 'template', null);\n\n\t\t\ttry {\n\t\t\t\tdoc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n\t\t\t} catch (_) {// Syntax error if dirtyPayload is invalid xml\n\t\t\t}\n\t\t}\n\n\t\tconst body = doc.body || doc.documentElement;\n\n\t\tif (dirty && leadingWhitespace) {\n\t\t\tbody.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n\t\t}\n\t\t/* Work on whole document or just its body */\n\n\n\t\tif (NAMESPACE === HTML_NAMESPACE) {\n\t\t\treturn getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n\t\t}\n\n\t\treturn WHOLE_DOCUMENT ? doc.documentElement : body;\n\t};\n\t/**\n\t * _createIterator\n\t *\n\t * @param  {Document} root document/fragment to create iterator for\n\t * @return {Iterator} iterator instance\n\t */\n\n\n\tconst _createIterator = function _createIterator(root) {\n\t\treturn createNodeIterator.call(root.ownerDocument || root, root, // eslint-disable-next-line no-bitwise\n\t\t\tNodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, null, false);\n\t};\n\t/**\n\t * _isClobbered\n\t *\n\t * @param  {Node} elm element to check for clobbering attacks\n\t * @return {Boolean} true if clobbered, false if safe\n\t */\n\n\n\tconst _isClobbered = function _isClobbered(elm) {\n\t\treturn elm instanceof HTMLFormElement && (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function' || typeof elm.hasChildNodes !== 'function');\n\t};\n\t/**\n\t * _isNode\n\t *\n\t * @param  {Node} obj object to check whether it's a DOM node\n\t * @return {Boolean} true is object is a DOM node\n\t */\n\n\n\tconst _isNode = function _isNode(object) {\n\t\treturn typeof Node === 'object' ? object instanceof Node : object && typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string';\n\t};\n\t/**\n\t * _executeHook\n\t * Execute user configurable hooks\n\t *\n\t * @param  {String} entryPoint  Name of the hook's entry point\n\t * @param  {Node} currentNode node to work on with the hook\n\t * @param  {Object} data additional hook parameters\n\t */\n\n\n\tconst _executeHook = function _executeHook(entryPoint, currentNode, data) {\n\t\tif (!hooks[entryPoint]) {\n\t\t\treturn;\n\t\t}\n\n\t\tarrayForEach(hooks[entryPoint], hook => {\n\t\t\thook.call(DOMPurify, currentNode, data, CONFIG);\n\t\t});\n\t};\n\t/**\n\t * _sanitizeElements\n\t *\n\t * @protect nodeName\n\t * @protect textContent\n\t * @protect removeChild\n\t *\n\t * @param   {Node} currentNode to check for permission to exist\n\t * @return  {Boolean} true if node was killed, false if left alive\n\t */\n\n\n\tconst _sanitizeElements = function _sanitizeElements(currentNode) {\n\t\tlet content;\n\t\t/* Execute a hook if present */\n\n\t\t_executeHook('beforeSanitizeElements', currentNode, null);\n\t\t/* Check if element is clobbered or can clobber */\n\n\n\t\tif (_isClobbered(currentNode)) {\n\t\t\t_forceRemove(currentNode);\n\n\t\t\treturn true;\n\t\t}\n\t\t/* Now let's check the element's type and name */\n\n\n\t\tconst tagName = transformCaseFunc(currentNode.nodeName);\n\t\t/* Execute a hook if present */\n\n\t\t_executeHook('uponSanitizeElement', currentNode, {\n\t\t\ttagName,\n\t\t\tallowedTags: ALLOWED_TAGS\n\t\t});\n\t\t/* Detect mXSS attempts abusing namespace confusion */\n\n\n\t\tif (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n\t\t\t_forceRemove(currentNode);\n\n\t\t\treturn true;\n\t\t}\n\t\t/* Remove element if anything forbids its presence */\n\n\n\t\tif (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n\t\t\t/* Check if we have a custom element to handle */\n\t\t\tif (!FORBID_TAGS[tagName] && _basicCustomElementTest(tagName)) {\n\t\t\t\tif (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) return false;\n\t\t\t\tif (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) return false;\n\t\t\t}\n\t\t\t/* Keep content except for bad-listed elements */\n\n\n\t\t\tif (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n\t\t\t\tconst parentNode = getParentNode(currentNode) || currentNode.parentNode;\n\t\t\t\tconst childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n\n\t\t\t\tif (childNodes && parentNode) {\n\t\t\t\t\tconst childCount = childNodes.length;\n\n\t\t\t\t\tfor (let i = childCount - 1; i >= 0; --i) {\n\t\t\t\t\t\tparentNode.insertBefore(cloneNode(childNodes[i], true), getNextSibling(currentNode));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t_forceRemove(currentNode);\n\n\t\t\treturn true;\n\t\t}\n\t\t/* Check whether element has a valid namespace */\n\n\n\t\tif (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n\t\t\t_forceRemove(currentNode);\n\n\t\t\treturn true;\n\t\t}\n\t\t/* Make sure that older browsers don't get fallback-tag mXSS */\n\n\n\t\tif ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n\t\t\t_forceRemove(currentNode);\n\n\t\t\treturn true;\n\t\t}\n\t\t/* Sanitize element content to be template-safe */\n\n\n\t\tif (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {\n\t\t\t/* Get the element's text content */\n\t\t\tcontent = currentNode.textContent;\n\t\t\tcontent = stringReplace(content, MUSTACHE_EXPR, ' ');\n\t\t\tcontent = stringReplace(content, ERB_EXPR, ' ');\n\t\t\tcontent = stringReplace(content, TMPLIT_EXPR, ' ');\n\n\t\t\tif (currentNode.textContent !== content) {\n\t\t\t\tarrayPush(DOMPurify.removed, {\n\t\t\t\t\telement: currentNode.cloneNode()\n\t\t\t\t});\n\t\t\t\tcurrentNode.textContent = content;\n\t\t\t}\n\t\t}\n\t\t/* Execute a hook if present */\n\n\n\t\t_executeHook('afterSanitizeElements', currentNode, null);\n\n\t\treturn false;\n\t};\n\t/**\n\t * _isValidAttribute\n\t *\n\t * @param  {string} lcTag Lowercase tag name of containing element.\n\t * @param  {string} lcName Lowercase attribute name.\n\t * @param  {string} value Attribute value.\n\t * @return {Boolean} Returns true if `value` is valid, otherwise false.\n\t */\n\t// eslint-disable-next-line complexity\n\n\n\tconst _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n\t\t/* Make sure attribute cannot clobber */\n\t\tif (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n\t\t\treturn false;\n\t\t}\n\t\t/* Allow valid data-* attributes: At least one character after \"-\"\n\t\t\t\t(https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n\t\t\t\tXML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n\t\t\t\tWe don't need to check the value; it's always URI safe. */\n\n\n\t\tif (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)); else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)); else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n\t\t\tif ( // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n\t\t\t\t// b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n\t\t\t\t// and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n\t\t\t\t_basicCustomElementTest(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) || // Alternative, second condition checks if it's an `is`-attribute, AND\n\t\t\t\t// the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n\t\t\t\tlcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))); else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t/* Check value is safe. First, is attr inert? If so, is safe */\n\n\t\t} else if (URI_SAFE_ATTRIBUTES[lcName]); else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))); else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]); else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))); else if (value) {\n\t\t\treturn false;\n\t\t} else;\n\n\t\treturn true;\n\t};\n\t/**\n\t * _basicCustomElementCheck\n\t * checks if at least one dash is included in tagName, and it's not the first char\n\t * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n\t * @param {string} tagName name of the tag of the node to sanitize\n\t */\n\n\n\tconst _basicCustomElementTest = function _basicCustomElementTest(tagName) {\n\t\treturn tagName.indexOf('-') > 0;\n\t};\n\t/**\n\t * _sanitizeAttributes\n\t *\n\t * @protect attributes\n\t * @protect nodeName\n\t * @protect removeAttribute\n\t * @protect setAttribute\n\t *\n\t * @param  {Node} currentNode to sanitize\n\t */\n\n\n\tconst _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n\t\tlet attr;\n\t\tlet value;\n\t\tlet lcName;\n\t\tlet l;\n\t\t/* Execute a hook if present */\n\n\t\t_executeHook('beforeSanitizeAttributes', currentNode, null);\n\n\t\tconst {\n\t\t\tattributes\n\t\t} = currentNode;\n\t\t/* Check if we have attributes; if not we might have a text node */\n\n\t\tif (!attributes) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst hookEvent = {\n\t\t\tattrName: '',\n\t\t\tattrValue: '',\n\t\t\tkeepAttr: true,\n\t\t\tallowedAttributes: ALLOWED_ATTR\n\t\t};\n\t\tl = attributes.length;\n\t\t/* Go backwards over all attributes; safely remove bad ones */\n\n\t\twhile (l--) {\n\t\t\tattr = attributes[l];\n\t\t\tconst {\n\t\t\t\tname,\n\t\t\t\tnamespaceURI\n\t\t\t} = attr;\n\t\t\tvalue = name === 'value' ? attr.value : stringTrim(attr.value);\n\t\t\tlcName = transformCaseFunc(name);\n\t\t\t/* Execute a hook if present */\n\n\t\t\thookEvent.attrName = lcName;\n\t\t\thookEvent.attrValue = value;\n\t\t\thookEvent.keepAttr = true;\n\t\t\thookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n\n\t\t\t_executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n\n\t\t\tvalue = hookEvent.attrValue;\n\t\t\t/* Did the hooks approve of the attribute? */\n\n\t\t\tif (hookEvent.forceKeepAttr) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t/* Remove attribute */\n\n\n\t\t\t_removeAttribute(name, currentNode);\n\t\t\t/* Did the hooks approve of the attribute? */\n\n\n\t\t\tif (!hookEvent.keepAttr) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t/* Work around a security issue in jQuery 3.0 */\n\n\n\t\t\tif (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n\t\t\t\t_removeAttribute(name, currentNode);\n\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t/* Sanitize attribute content to be template-safe */\n\n\n\t\t\tif (SAFE_FOR_TEMPLATES) {\n\t\t\t\tvalue = stringReplace(value, MUSTACHE_EXPR, ' ');\n\t\t\t\tvalue = stringReplace(value, ERB_EXPR, ' ');\n\t\t\t\tvalue = stringReplace(value, TMPLIT_EXPR, ' ');\n\t\t\t}\n\t\t\t/* Is `value` valid for this attribute? */\n\n\n\t\t\tconst lcTag = transformCaseFunc(currentNode.nodeName);\n\n\t\t\tif (!_isValidAttribute(lcTag, lcName, value)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t/* Full DOM Clobbering protection via namespace isolation,\n\t\t\t * Prefix id and name attributes with `user-content-`\n\t\t\t */\n\n\n\t\t\tif (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n\t\t\t\t// Remove the attribute with this value\n\t\t\t\t_removeAttribute(name, currentNode); // Prefix the value and later re-create the attribute with the sanitized value\n\n\n\t\t\t\tvalue = SANITIZE_NAMED_PROPS_PREFIX + value;\n\t\t\t}\n\t\t\t/* Handle attributes that require Trusted Types */\n\n\n\t\t\tif (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n\t\t\t\tif (namespaceURI); else {\n\t\t\t\t\tswitch (trustedTypes.getAttributeType(lcTag, lcName)) {\n\t\t\t\t\t\tcase 'TrustedHTML':\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue = trustedTypesPolicy.createHTML(value);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcase 'TrustedScriptURL':\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue = trustedTypesPolicy.createScriptURL(value);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t/* Handle invalid data-* attribute set by try-catching it */\n\n\n\t\t\ttry {\n\t\t\t\tif (namespaceURI) {\n\t\t\t\t\tcurrentNode.setAttributeNS(namespaceURI, name, value);\n\t\t\t\t} else {\n\t\t\t\t\t/* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n\t\t\t\t\tcurrentNode.setAttribute(name, value);\n\t\t\t\t}\n\n\t\t\t\tarrayPop(DOMPurify.removed);\n\t\t\t} catch (_) { }\n\t\t}\n\t\t/* Execute a hook if present */\n\n\n\t\t_executeHook('afterSanitizeAttributes', currentNode, null);\n\t};\n\t/**\n\t * _sanitizeShadowDOM\n\t *\n\t * @param  {DocumentFragment} fragment to iterate over recursively\n\t */\n\n\n\tconst _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n\t\tlet shadowNode;\n\n\t\tconst shadowIterator = _createIterator(fragment);\n\t\t/* Execute a hook if present */\n\n\n\t\t_executeHook('beforeSanitizeShadowDOM', fragment, null);\n\n\t\twhile (shadowNode = shadowIterator.nextNode()) {\n\t\t\t/* Execute a hook if present */\n\t\t\t_executeHook('uponSanitizeShadowNode', shadowNode, null);\n\t\t\t/* Sanitize tags and elements */\n\n\n\t\t\tif (_sanitizeElements(shadowNode)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t/* Deep shadow DOM detected */\n\n\n\t\t\tif (shadowNode.content instanceof DocumentFragment) {\n\t\t\t\t_sanitizeShadowDOM(shadowNode.content);\n\t\t\t}\n\t\t\t/* Check attributes, sanitize if necessary */\n\n\n\t\t\t_sanitizeAttributes(shadowNode);\n\t\t}\n\t\t/* Execute a hook if present */\n\n\n\t\t_executeHook('afterSanitizeShadowDOM', fragment, null);\n\t};\n\t/**\n\t * Sanitize\n\t * Public method providing core sanitation functionality\n\t *\n\t * @param {String|Node} dirty string or DOM node\n\t * @param {Object} configuration object\n\t */\n\t// eslint-disable-next-line complexity\n\n\n\tDOMPurify.sanitize = function (dirty) {\n\t\tlet cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\t\tlet body;\n\t\tlet importedNode;\n\t\tlet currentNode;\n\t\tlet returnNode;\n\t\t/* Make sure we have a string to sanitize.\n\t\t\tDO NOT return early, as this will return the wrong type if\n\t\t\tthe user has requested a DOM object rather than a string */\n\n\t\tIS_EMPTY_INPUT = !dirty;\n\n\t\tif (IS_EMPTY_INPUT) {\n\t\t\tdirty = '<!-->';\n\t\t}\n\t\t/* Stringify, in case dirty is an object */\n\n\n\t\tif (typeof dirty !== 'string' && !_isNode(dirty)) {\n\t\t\tif (typeof dirty.toString === 'function') {\n\t\t\t\tdirty = dirty.toString();\n\n\t\t\t\tif (typeof dirty !== 'string') {\n\t\t\t\t\tthrow typeErrorCreate('dirty is not a string, aborting');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthrow typeErrorCreate('toString is not a function');\n\t\t\t}\n\t\t}\n\t\t/* Return dirty HTML if DOMPurify cannot run */\n\n\n\t\tif (!DOMPurify.isSupported) {\n\t\t\treturn dirty;\n\t\t}\n\t\t/* Assign config vars */\n\n\n\t\tif (!SET_CONFIG) {\n\t\t\t_parseConfig(cfg);\n\t\t}\n\t\t/* Clean up removed elements */\n\n\n\t\tDOMPurify.removed = [];\n\t\t/* Check if dirty is correctly typed for IN_PLACE */\n\n\t\tif (typeof dirty === 'string') {\n\t\t\tIN_PLACE = false;\n\t\t}\n\n\t\tif (IN_PLACE) {\n\t\t\t/* Do some early pre-sanitization to avoid unsafe root nodes */\n\t\t\tif (dirty.nodeName) {\n\t\t\t\tconst tagName = transformCaseFunc(dirty.nodeName);\n\n\t\t\t\tif (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n\t\t\t\t\tthrow typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (dirty instanceof Node) {\n\t\t\t/* If dirty is a DOM element, append to an empty document to avoid\n\t\t\t\t elements being stripped by the parser */\n\t\t\tbody = _initDocument('<!---->');\n\t\t\timportedNode = body.ownerDocument.importNode(dirty, true);\n\n\t\t\tif (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {\n\t\t\t\t/* Node is already a body, use as is */\n\t\t\t\tbody = importedNode;\n\t\t\t} else if (importedNode.nodeName === 'HTML') {\n\t\t\t\tbody = importedNode;\n\t\t\t} else {\n\t\t\t\t// eslint-disable-next-line unicorn/prefer-dom-node-append\n\t\t\t\tbody.appendChild(importedNode);\n\t\t\t}\n\t\t} else {\n\t\t\t/* Exit directly if we have nothing to do */\n\t\t\tif (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && // eslint-disable-next-line unicorn/prefer-includes\n\t\t\t\tdirty.indexOf('<') === -1) {\n\t\t\t\treturn trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n\t\t\t}\n\t\t\t/* Initialize the document to work on */\n\n\n\t\t\tbody = _initDocument(dirty);\n\t\t\t/* Check we have a DOM node from the data */\n\n\t\t\tif (!body) {\n\t\t\t\treturn RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n\t\t\t}\n\t\t}\n\t\t/* Remove first element node (ours) if FORCE_BODY is set */\n\n\n\t\tif (body && FORCE_BODY) {\n\t\t\t_forceRemove(body.firstChild);\n\t\t}\n\t\t/* Get node iterator */\n\n\n\t\tconst nodeIterator = _createIterator(IN_PLACE ? dirty : body);\n\t\t/* Now start iterating over the created document */\n\n\n\t\twhile (currentNode = nodeIterator.nextNode()) {\n\t\t\t/* Sanitize tags and elements */\n\t\t\tif (_sanitizeElements(currentNode)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t/* Shadow DOM detected, sanitize it */\n\n\n\t\t\tif (currentNode.content instanceof DocumentFragment) {\n\t\t\t\t_sanitizeShadowDOM(currentNode.content);\n\t\t\t}\n\t\t\t/* Check attributes, sanitize if necessary */\n\n\n\t\t\t_sanitizeAttributes(currentNode);\n\t\t}\n\t\t/* If we sanitized `dirty` in-place, return it. */\n\n\n\t\tif (IN_PLACE) {\n\t\t\treturn dirty;\n\t\t}\n\t\t/* Return sanitized string or DOM */\n\n\n\t\tif (RETURN_DOM) {\n\t\t\tif (RETURN_DOM_FRAGMENT) {\n\t\t\t\treturnNode = createDocumentFragment.call(body.ownerDocument);\n\n\t\t\t\twhile (body.firstChild) {\n\t\t\t\t\t// eslint-disable-next-line unicorn/prefer-dom-node-append\n\t\t\t\t\treturnNode.appendChild(body.firstChild);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturnNode = body;\n\t\t\t}\n\n\t\t\tif (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n\t\t\t\t/*\n\t\t\t\t\tAdoptNode() is not used because internal state is not reset\n\t\t\t\t\t(e.g. the past names map of a HTMLFormElement), this is safe\n\t\t\t\t\tin theory but we would rather not risk another attack vector.\n\t\t\t\t\tThe state that is cloned by importNode() is explicitly defined\n\t\t\t\t\tby the specs.\n\t\t\t\t*/\n\t\t\t\treturnNode = importNode.call(originalDocument, returnNode, true);\n\t\t\t}\n\n\t\t\treturn returnNode;\n\t\t}\n\n\t\tlet serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\t\t/* Serialize doctype if allowed */\n\n\t\tif (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n\t\t\tserializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n\t\t}\n\t\t/* Sanitize final string template-safe */\n\n\n\t\tif (SAFE_FOR_TEMPLATES) {\n\t\t\tserializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR, ' ');\n\t\t\tserializedHTML = stringReplace(serializedHTML, ERB_EXPR, ' ');\n\t\t\tserializedHTML = stringReplace(serializedHTML, TMPLIT_EXPR, ' ');\n\t\t}\n\n\t\treturn trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n\t};\n\t/**\n\t * Public method to set the configuration once\n\t * setConfig\n\t *\n\t * @param {Object} cfg configuration object\n\t */\n\n\n\tDOMPurify.setConfig = function (cfg) {\n\t\t_parseConfig(cfg);\n\n\t\tSET_CONFIG = true;\n\t};\n\t/**\n\t * Public method to remove the configuration\n\t * clearConfig\n\t *\n\t */\n\n\n\tDOMPurify.clearConfig = function () {\n\t\tCONFIG = null;\n\t\tSET_CONFIG = false;\n\t};\n\t/**\n\t * Public method to check if an attribute value is valid.\n\t * Uses last set config, if any. Otherwise, uses config defaults.\n\t * isValidAttribute\n\t *\n\t * @param  {string} tag Tag name of containing element.\n\t * @param  {string} attr Attribute name.\n\t * @param  {string} value Attribute value.\n\t * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n\t */\n\n\n\tDOMPurify.isValidAttribute = function (tag, attr, value) {\n\t\t/* Initialize shared config vars if necessary. */\n\t\tif (!CONFIG) {\n\t\t\t_parseConfig({});\n\t\t}\n\n\t\tconst lcTag = transformCaseFunc(tag);\n\t\tconst lcName = transformCaseFunc(attr);\n\t\treturn _isValidAttribute(lcTag, lcName, value);\n\t};\n\t/**\n\t * AddHook\n\t * Public method to add DOMPurify hooks\n\t *\n\t * @param {String} entryPoint entry point for the hook to add\n\t * @param {Function} hookFunction function to execute\n\t */\n\n\n\tDOMPurify.addHook = function (entryPoint, hookFunction) {\n\t\tif (typeof hookFunction !== 'function') {\n\t\t\treturn;\n\t\t}\n\n\t\thooks[entryPoint] = hooks[entryPoint] || [];\n\t\tarrayPush(hooks[entryPoint], hookFunction);\n\t};\n\t/**\n\t * RemoveHook\n\t * Public method to remove a DOMPurify hook at a given entryPoint\n\t * (pops it from the stack of hooks if more are present)\n\t *\n\t * @param {String} entryPoint entry point for the hook to remove\n\t * @return {Function} removed(popped) hook\n\t */\n\n\n\tDOMPurify.removeHook = function (entryPoint) {\n\t\tif (hooks[entryPoint]) {\n\t\t\treturn arrayPop(hooks[entryPoint]);\n\t\t}\n\t};\n\t/**\n\t * RemoveHooks\n\t * Public method to remove all DOMPurify hooks at a given entryPoint\n\t *\n\t * @param  {String} entryPoint entry point for the hooks to remove\n\t */\n\n\n\tDOMPurify.removeHooks = function (entryPoint) {\n\t\tif (hooks[entryPoint]) {\n\t\t\thooks[entryPoint] = [];\n\t\t}\n\t};\n\t/**\n\t * RemoveAllHooks\n\t * Public method to remove all DOMPurify hooks\n\t *\n\t */\n\n\n\tDOMPurify.removeAllHooks = function () {\n\t\thooks = {};\n\t};\n\n\treturn DOMPurify;\n}\n\nvar purify = createDOMPurify();\n\n// ESM-comment-begin\n// define(function () { return purify; });\n// ESM-comment-end\n\n// ESM-uncomment-begin\nexport default purify;\nexport const version = purify.version;\nexport const isSupported = purify.isSupported;\nexport const sanitize = purify.sanitize;\nexport const setConfig = purify.setConfig;\nexport const clearConfig = purify.clearConfig;\nexport const isValidAttribute = purify.isValidAttribute;\nexport const addHook = purify.addHook;\nexport const removeHook = purify.removeHook;\nexport const removeHooks = purify.removeHooks;\nexport const removeAllHooks = purify.removeAllHooks;\n// ESM-uncomment-end\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/event.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../common/event.js';\nexport class DomEmitter {\n    get event() {\n        return this.emitter.event;\n    }\n    constructor(element, type, useCapture) {\n        const fn = (e) => this.emitter.fire(e);\n        this.emitter = new Emitter({\n            onWillAddFirstListener: () => element.addEventListener(type, fn, useCapture),\n            onDidRemoveLastListener: () => element.removeEventListener(type, fn, useCapture)\n        });\n    }\n    dispose() {\n        this.emitter.dispose();\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/fastDomNode.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class FastDomNode {\n    constructor(domNode) {\n        this.domNode = domNode;\n        this._maxWidth = '';\n        this._width = '';\n        this._height = '';\n        this._top = '';\n        this._left = '';\n        this._bottom = '';\n        this._right = '';\n        this._paddingLeft = '';\n        this._fontFamily = '';\n        this._fontWeight = '';\n        this._fontSize = '';\n        this._fontStyle = '';\n        this._fontFeatureSettings = '';\n        this._fontVariationSettings = '';\n        this._textDecoration = '';\n        this._lineHeight = '';\n        this._letterSpacing = '';\n        this._className = '';\n        this._display = '';\n        this._position = '';\n        this._visibility = '';\n        this._color = '';\n        this._backgroundColor = '';\n        this._layerHint = false;\n        this._contain = 'none';\n        this._boxShadow = '';\n    }\n    setMaxWidth(_maxWidth) {\n        const maxWidth = numberAsPixels(_maxWidth);\n        if (this._maxWidth === maxWidth) {\n            return;\n        }\n        this._maxWidth = maxWidth;\n        this.domNode.style.maxWidth = this._maxWidth;\n    }\n    setWidth(_width) {\n        const width = numberAsPixels(_width);\n        if (this._width === width) {\n            return;\n        }\n        this._width = width;\n        this.domNode.style.width = this._width;\n    }\n    setHeight(_height) {\n        const height = numberAsPixels(_height);\n        if (this._height === height) {\n            return;\n        }\n        this._height = height;\n        this.domNode.style.height = this._height;\n    }\n    setTop(_top) {\n        const top = numberAsPixels(_top);\n        if (this._top === top) {\n            return;\n        }\n        this._top = top;\n        this.domNode.style.top = this._top;\n    }\n    setLeft(_left) {\n        const left = numberAsPixels(_left);\n        if (this._left === left) {\n            return;\n        }\n        this._left = left;\n        this.domNode.style.left = this._left;\n    }\n    setBottom(_bottom) {\n        const bottom = numberAsPixels(_bottom);\n        if (this._bottom === bottom) {\n            return;\n        }\n        this._bottom = bottom;\n        this.domNode.style.bottom = this._bottom;\n    }\n    setRight(_right) {\n        const right = numberAsPixels(_right);\n        if (this._right === right) {\n            return;\n        }\n        this._right = right;\n        this.domNode.style.right = this._right;\n    }\n    setPaddingLeft(_paddingLeft) {\n        const paddingLeft = numberAsPixels(_paddingLeft);\n        if (this._paddingLeft === paddingLeft) {\n            return;\n        }\n        this._paddingLeft = paddingLeft;\n        this.domNode.style.paddingLeft = this._paddingLeft;\n    }\n    setFontFamily(fontFamily) {\n        if (this._fontFamily === fontFamily) {\n            return;\n        }\n        this._fontFamily = fontFamily;\n        this.domNode.style.fontFamily = this._fontFamily;\n    }\n    setFontWeight(fontWeight) {\n        if (this._fontWeight === fontWeight) {\n            return;\n        }\n        this._fontWeight = fontWeight;\n        this.domNode.style.fontWeight = this._fontWeight;\n    }\n    setFontSize(_fontSize) {\n        const fontSize = numberAsPixels(_fontSize);\n        if (this._fontSize === fontSize) {\n            return;\n        }\n        this._fontSize = fontSize;\n        this.domNode.style.fontSize = this._fontSize;\n    }\n    setFontStyle(fontStyle) {\n        if (this._fontStyle === fontStyle) {\n            return;\n        }\n        this._fontStyle = fontStyle;\n        this.domNode.style.fontStyle = this._fontStyle;\n    }\n    setFontFeatureSettings(fontFeatureSettings) {\n        if (this._fontFeatureSettings === fontFeatureSettings) {\n            return;\n        }\n        this._fontFeatureSettings = fontFeatureSettings;\n        this.domNode.style.fontFeatureSettings = this._fontFeatureSettings;\n    }\n    setFontVariationSettings(fontVariationSettings) {\n        if (this._fontVariationSettings === fontVariationSettings) {\n            return;\n        }\n        this._fontVariationSettings = fontVariationSettings;\n        this.domNode.style.fontVariationSettings = this._fontVariationSettings;\n    }\n    setTextDecoration(textDecoration) {\n        if (this._textDecoration === textDecoration) {\n            return;\n        }\n        this._textDecoration = textDecoration;\n        this.domNode.style.textDecoration = this._textDecoration;\n    }\n    setLineHeight(_lineHeight) {\n        const lineHeight = numberAsPixels(_lineHeight);\n        if (this._lineHeight === lineHeight) {\n            return;\n        }\n        this._lineHeight = lineHeight;\n        this.domNode.style.lineHeight = this._lineHeight;\n    }\n    setLetterSpacing(_letterSpacing) {\n        const letterSpacing = numberAsPixels(_letterSpacing);\n        if (this._letterSpacing === letterSpacing) {\n            return;\n        }\n        this._letterSpacing = letterSpacing;\n        this.domNode.style.letterSpacing = this._letterSpacing;\n    }\n    setClassName(className) {\n        if (this._className === className) {\n            return;\n        }\n        this._className = className;\n        this.domNode.className = this._className;\n    }\n    toggleClassName(className, shouldHaveIt) {\n        this.domNode.classList.toggle(className, shouldHaveIt);\n        this._className = this.domNode.className;\n    }\n    setDisplay(display) {\n        if (this._display === display) {\n            return;\n        }\n        this._display = display;\n        this.domNode.style.display = this._display;\n    }\n    setPosition(position) {\n        if (this._position === position) {\n            return;\n        }\n        this._position = position;\n        this.domNode.style.position = this._position;\n    }\n    setVisibility(visibility) {\n        if (this._visibility === visibility) {\n            return;\n        }\n        this._visibility = visibility;\n        this.domNode.style.visibility = this._visibility;\n    }\n    setColor(color) {\n        if (this._color === color) {\n            return;\n        }\n        this._color = color;\n        this.domNode.style.color = this._color;\n    }\n    setBackgroundColor(backgroundColor) {\n        if (this._backgroundColor === backgroundColor) {\n            return;\n        }\n        this._backgroundColor = backgroundColor;\n        this.domNode.style.backgroundColor = this._backgroundColor;\n    }\n    setLayerHinting(layerHint) {\n        if (this._layerHint === layerHint) {\n            return;\n        }\n        this._layerHint = layerHint;\n        this.domNode.style.transform = this._layerHint ? 'translate3d(0px, 0px, 0px)' : '';\n    }\n    setBoxShadow(boxShadow) {\n        if (this._boxShadow === boxShadow) {\n            return;\n        }\n        this._boxShadow = boxShadow;\n        this.domNode.style.boxShadow = boxShadow;\n    }\n    setContain(contain) {\n        if (this._contain === contain) {\n            return;\n        }\n        this._contain = contain;\n        this.domNode.style.contain = this._contain;\n    }\n    setAttribute(name, value) {\n        this.domNode.setAttribute(name, value);\n    }\n    removeAttribute(name) {\n        this.domNode.removeAttribute(name);\n    }\n    appendChild(child) {\n        this.domNode.appendChild(child.domNode);\n    }\n    removeChild(child) {\n        this.domNode.removeChild(child.domNode);\n    }\n}\nfunction numberAsPixels(value) {\n    return (typeof value === 'number' ? `${value}px` : value);\n}\nexport function createFastDomNode(domNode) {\n    return new FastDomNode(domNode);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/fonts.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { isMacintosh, isWindows } from '../common/platform.js';\n/**\n * The best font-family to be used in CSS based on the platform:\n * - Windows: Segoe preferred, fallback to sans-serif\n * - macOS: standard system font, fallback to sans-serif\n * - Linux: standard system font preferred, fallback to Ubuntu fonts\n *\n * Note: this currently does not adjust for different locales.\n */\nexport const DEFAULT_FONT_FAMILY = isWindows ? '\"Segoe WPC\", \"Segoe UI\", sans-serif' : isMacintosh ? '-apple-system, BlinkMacSystemFont, sans-serif' : 'system-ui, \"Ubuntu\", \"Droid Sans\", sans-serif';\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/formattedTextRenderer.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as DOM from './dom.js';\nexport function renderText(text, options = {}) {\n    const element = createElement(options);\n    element.textContent = text;\n    return element;\n}\nexport function renderFormattedText(formattedText, options = {}) {\n    const element = createElement(options);\n    _renderFormattedText(element, parseFormattedText(formattedText, !!options.renderCodeSegments), options.actionHandler, options.renderCodeSegments);\n    return element;\n}\nexport function createElement(options) {\n    const tagName = options.inline ? 'span' : 'div';\n    const element = document.createElement(tagName);\n    if (options.className) {\n        element.className = options.className;\n    }\n    return element;\n}\nclass StringStream {\n    constructor(source) {\n        this.source = source;\n        this.index = 0;\n    }\n    eos() {\n        return this.index >= this.source.length;\n    }\n    next() {\n        const next = this.peek();\n        this.advance();\n        return next;\n    }\n    peek() {\n        return this.source[this.index];\n    }\n    advance() {\n        this.index++;\n    }\n}\nfunction _renderFormattedText(element, treeNode, actionHandler, renderCodeSegments) {\n    let child;\n    if (treeNode.type === 2 /* FormatType.Text */) {\n        child = document.createTextNode(treeNode.content || '');\n    }\n    else if (treeNode.type === 3 /* FormatType.Bold */) {\n        child = document.createElement('b');\n    }\n    else if (treeNode.type === 4 /* FormatType.Italics */) {\n        child = document.createElement('i');\n    }\n    else if (treeNode.type === 7 /* FormatType.Code */ && renderCodeSegments) {\n        child = document.createElement('code');\n    }\n    else if (treeNode.type === 5 /* FormatType.Action */ && actionHandler) {\n        const a = document.createElement('a');\n        actionHandler.disposables.add(DOM.addStandardDisposableListener(a, 'click', (event) => {\n            actionHandler.callback(String(treeNode.index), event);\n        }));\n        child = a;\n    }\n    else if (treeNode.type === 8 /* FormatType.NewLine */) {\n        child = document.createElement('br');\n    }\n    else if (treeNode.type === 1 /* FormatType.Root */) {\n        child = element;\n    }\n    if (child && element !== child) {\n        element.appendChild(child);\n    }\n    if (child && Array.isArray(treeNode.children)) {\n        treeNode.children.forEach((nodeChild) => {\n            _renderFormattedText(child, nodeChild, actionHandler, renderCodeSegments);\n        });\n    }\n}\nfunction parseFormattedText(content, parseCodeSegments) {\n    const root = {\n        type: 1 /* FormatType.Root */,\n        children: []\n    };\n    let actionViewItemIndex = 0;\n    let current = root;\n    const stack = [];\n    const stream = new StringStream(content);\n    while (!stream.eos()) {\n        let next = stream.next();\n        const isEscapedFormatType = (next === '\\\\' && formatTagType(stream.peek(), parseCodeSegments) !== 0 /* FormatType.Invalid */);\n        if (isEscapedFormatType) {\n            next = stream.next(); // unread the backslash if it escapes a format tag type\n        }\n        if (!isEscapedFormatType && isFormatTag(next, parseCodeSegments) && next === stream.peek()) {\n            stream.advance();\n            if (current.type === 2 /* FormatType.Text */) {\n                current = stack.pop();\n            }\n            const type = formatTagType(next, parseCodeSegments);\n            if (current.type === type || (current.type === 5 /* FormatType.Action */ && type === 6 /* FormatType.ActionClose */)) {\n                current = stack.pop();\n            }\n            else {\n                const newCurrent = {\n                    type: type,\n                    children: []\n                };\n                if (type === 5 /* FormatType.Action */) {\n                    newCurrent.index = actionViewItemIndex;\n                    actionViewItemIndex++;\n                }\n                current.children.push(newCurrent);\n                stack.push(current);\n                current = newCurrent;\n            }\n        }\n        else if (next === '\\n') {\n            if (current.type === 2 /* FormatType.Text */) {\n                current = stack.pop();\n            }\n            current.children.push({\n                type: 8 /* FormatType.NewLine */\n            });\n        }\n        else {\n            if (current.type !== 2 /* FormatType.Text */) {\n                const textCurrent = {\n                    type: 2 /* FormatType.Text */,\n                    content: next\n                };\n                current.children.push(textCurrent);\n                stack.push(current);\n                current = textCurrent;\n            }\n            else {\n                current.content += next;\n            }\n        }\n    }\n    if (current.type === 2 /* FormatType.Text */) {\n        current = stack.pop();\n    }\n    if (stack.length) {\n        // incorrectly formatted string literal\n    }\n    return root;\n}\nfunction isFormatTag(char, supportCodeSegments) {\n    return formatTagType(char, supportCodeSegments) !== 0 /* FormatType.Invalid */;\n}\nfunction formatTagType(char, supportCodeSegments) {\n    switch (char) {\n        case '*':\n            return 3 /* FormatType.Bold */;\n        case '_':\n            return 4 /* FormatType.Italics */;\n        case '[':\n            return 5 /* FormatType.Action */;\n        case ']':\n            return 6 /* FormatType.ActionClose */;\n        case '`':\n            return supportCodeSegments ? 7 /* FormatType.Code */ : 0 /* FormatType.Invalid */;\n        default:\n            return 0 /* FormatType.Invalid */;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/globalPointerMoveMonitor.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from './dom.js';\nimport { DisposableStore, toDisposable } from '../common/lifecycle.js';\nexport class GlobalPointerMoveMonitor {\n    constructor() {\n        this._hooks = new DisposableStore();\n        this._pointerMoveCallback = null;\n        this._onStopCallback = null;\n    }\n    dispose() {\n        this.stopMonitoring(false);\n        this._hooks.dispose();\n    }\n    stopMonitoring(invokeStopCallback, browserEvent) {\n        if (!this.isMonitoring()) {\n            // Not monitoring\n            return;\n        }\n        // Unhook\n        this._hooks.clear();\n        this._pointerMoveCallback = null;\n        const onStopCallback = this._onStopCallback;\n        this._onStopCallback = null;\n        if (invokeStopCallback && onStopCallback) {\n            onStopCallback(browserEvent);\n        }\n    }\n    isMonitoring() {\n        return !!this._pointerMoveCallback;\n    }\n    startMonitoring(initialElement, pointerId, initialButtons, pointerMoveCallback, onStopCallback) {\n        if (this.isMonitoring()) {\n            this.stopMonitoring(false);\n        }\n        this._pointerMoveCallback = pointerMoveCallback;\n        this._onStopCallback = onStopCallback;\n        let eventSource = initialElement;\n        try {\n            initialElement.setPointerCapture(pointerId);\n            this._hooks.add(toDisposable(() => {\n                try {\n                    initialElement.releasePointerCapture(pointerId);\n                }\n                catch (err) {\n                    // See https://github.com/microsoft/vscode/issues/161731\n                    //\n                    // `releasePointerCapture` sometimes fails when being invoked with the exception:\n                    //     DOMException: Failed to execute 'releasePointerCapture' on 'Element':\n                    //     No active pointer with the given id is found.\n                    //\n                    // There's no need to do anything in case of failure\n                }\n            }));\n        }\n        catch (err) {\n            // See https://github.com/microsoft/vscode/issues/144584\n            // See https://github.com/microsoft/vscode/issues/146947\n            // `setPointerCapture` sometimes fails when being invoked\n            // from a `mousedown` listener on macOS and Windows\n            // and it always fails on Linux with the exception:\n            //     DOMException: Failed to execute 'setPointerCapture' on 'Element':\n            //     No active pointer with the given id is found.\n            // In case of failure, we bind the listeners on the window\n            eventSource = dom.getWindow(initialElement);\n        }\n        this._hooks.add(dom.addDisposableListener(eventSource, dom.EventType.POINTER_MOVE, (e) => {\n            if (e.buttons !== initialButtons) {\n                // Buttons state has changed in the meantime\n                this.stopMonitoring(true);\n                return;\n            }\n            e.preventDefault();\n            this._pointerMoveCallback(e);\n        }));\n        this._hooks.add(dom.addDisposableListener(eventSource, dom.EventType.POINTER_UP, (e) => this.stopMonitoring(true)));\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/history.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport {};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/iframe.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nconst sameOriginWindowChainCache = new WeakMap();\nfunction getParentWindowIfSameOrigin(w) {\n    if (!w.parent || w.parent === w) {\n        return null;\n    }\n    // Cannot really tell if we have access to the parent window unless we try to access something in it\n    try {\n        const location = w.location;\n        const parentLocation = w.parent.location;\n        if (location.origin !== 'null' && parentLocation.origin !== 'null' && location.origin !== parentLocation.origin) {\n            return null;\n        }\n    }\n    catch (e) {\n        return null;\n    }\n    return w.parent;\n}\nexport class IframeUtils {\n    /**\n     * Returns a chain of embedded windows with the same origin (which can be accessed programmatically).\n     * Having a chain of length 1 might mean that the current execution environment is running outside of an iframe or inside an iframe embedded in a window with a different origin.\n     */\n    static getSameOriginWindowChain(targetWindow) {\n        let windowChainCache = sameOriginWindowChainCache.get(targetWindow);\n        if (!windowChainCache) {\n            windowChainCache = [];\n            sameOriginWindowChainCache.set(targetWindow, windowChainCache);\n            let w = targetWindow;\n            let parent;\n            do {\n                parent = getParentWindowIfSameOrigin(w);\n                if (parent) {\n                    windowChainCache.push({\n                        window: new WeakRef(w),\n                        iframeElement: w.frameElement || null\n                    });\n                }\n                else {\n                    windowChainCache.push({\n                        window: new WeakRef(w),\n                        iframeElement: null\n                    });\n                }\n                w = parent;\n            } while (w);\n        }\n        return windowChainCache.slice(0);\n    }\n    /**\n     * Returns the position of `childWindow` relative to `ancestorWindow`\n     */\n    static getPositionOfChildWindowRelativeToAncestorWindow(childWindow, ancestorWindow) {\n        var _a, _b;\n        if (!ancestorWindow || childWindow === ancestorWindow) {\n            return {\n                top: 0,\n                left: 0\n            };\n        }\n        let top = 0, left = 0;\n        const windowChain = this.getSameOriginWindowChain(childWindow);\n        for (const windowChainEl of windowChain) {\n            const windowInChain = windowChainEl.window.deref();\n            top += (_a = windowInChain === null || windowInChain === void 0 ? void 0 : windowInChain.scrollY) !== null && _a !== void 0 ? _a : 0;\n            left += (_b = windowInChain === null || windowInChain === void 0 ? void 0 : windowInChain.scrollX) !== null && _b !== void 0 ? _b : 0;\n            if (windowInChain === ancestorWindow) {\n                break;\n            }\n            if (!windowChainEl.iframeElement) {\n                break;\n            }\n            const boundingRect = windowChainEl.iframeElement.getBoundingClientRect();\n            top += boundingRect.top;\n            left += boundingRect.left;\n        }\n        return {\n            top: top,\n            left: left\n        };\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/keyboardEvent.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as browser from './browser.js';\nimport { EVENT_KEY_CODE_MAP, KeyCodeUtils } from '../common/keyCodes.js';\nimport { KeyCodeChord } from '../common/keybindings.js';\nimport * as platform from '../common/platform.js';\nfunction extractKeyCode(e) {\n    if (e.charCode) {\n        // \"keypress\" events mostly\n        const char = String.fromCharCode(e.charCode).toUpperCase();\n        return KeyCodeUtils.fromString(char);\n    }\n    const keyCode = e.keyCode;\n    // browser quirks\n    if (keyCode === 3) {\n        return 7 /* KeyCode.PauseBreak */;\n    }\n    else if (browser.isFirefox) {\n        switch (keyCode) {\n            case 59: return 85 /* KeyCode.Semicolon */;\n            case 60:\n                if (platform.isLinux) {\n                    return 97 /* KeyCode.IntlBackslash */;\n                }\n                break;\n            case 61: return 86 /* KeyCode.Equal */;\n            // based on: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode#numpad_keys\n            case 107: return 109 /* KeyCode.NumpadAdd */;\n            case 109: return 111 /* KeyCode.NumpadSubtract */;\n            case 173: return 88 /* KeyCode.Minus */;\n            case 224:\n                if (platform.isMacintosh) {\n                    return 57 /* KeyCode.Meta */;\n                }\n                break;\n        }\n    }\n    else if (browser.isWebKit) {\n        if (platform.isMacintosh && keyCode === 93) {\n            // the two meta keys in the Mac have different key codes (91 and 93)\n            return 57 /* KeyCode.Meta */;\n        }\n        else if (!platform.isMacintosh && keyCode === 92) {\n            return 57 /* KeyCode.Meta */;\n        }\n    }\n    // cross browser keycodes:\n    return EVENT_KEY_CODE_MAP[keyCode] || 0 /* KeyCode.Unknown */;\n}\nconst ctrlKeyMod = (platform.isMacintosh ? 256 /* KeyMod.WinCtrl */ : 2048 /* KeyMod.CtrlCmd */);\nconst altKeyMod = 512 /* KeyMod.Alt */;\nconst shiftKeyMod = 1024 /* KeyMod.Shift */;\nconst metaKeyMod = (platform.isMacintosh ? 2048 /* KeyMod.CtrlCmd */ : 256 /* KeyMod.WinCtrl */);\nexport class StandardKeyboardEvent {\n    constructor(source) {\n        var _a;\n        this._standardKeyboardEventBrand = true;\n        const e = source;\n        this.browserEvent = e;\n        this.target = e.target;\n        this.ctrlKey = e.ctrlKey;\n        this.shiftKey = e.shiftKey;\n        this.altKey = e.altKey;\n        this.metaKey = e.metaKey;\n        this.altGraphKey = (_a = e.getModifierState) === null || _a === void 0 ? void 0 : _a.call(e, 'AltGraph');\n        this.keyCode = extractKeyCode(e);\n        this.code = e.code;\n        // console.info(e.type + \": keyCode: \" + e.keyCode + \", which: \" + e.which + \", charCode: \" + e.charCode + \", detail: \" + e.detail + \" ====> \" + this.keyCode + ' -- ' + KeyCode[this.keyCode]);\n        this.ctrlKey = this.ctrlKey || this.keyCode === 5 /* KeyCode.Ctrl */;\n        this.altKey = this.altKey || this.keyCode === 6 /* KeyCode.Alt */;\n        this.shiftKey = this.shiftKey || this.keyCode === 4 /* KeyCode.Shift */;\n        this.metaKey = this.metaKey || this.keyCode === 57 /* KeyCode.Meta */;\n        this._asKeybinding = this._computeKeybinding();\n        this._asKeyCodeChord = this._computeKeyCodeChord();\n        // console.log(`code: ${e.code}, keyCode: ${e.keyCode}, key: ${e.key}`);\n    }\n    preventDefault() {\n        if (this.browserEvent && this.browserEvent.preventDefault) {\n            this.browserEvent.preventDefault();\n        }\n    }\n    stopPropagation() {\n        if (this.browserEvent && this.browserEvent.stopPropagation) {\n            this.browserEvent.stopPropagation();\n        }\n    }\n    toKeyCodeChord() {\n        return this._asKeyCodeChord;\n    }\n    equals(other) {\n        return this._asKeybinding === other;\n    }\n    _computeKeybinding() {\n        let key = 0 /* KeyCode.Unknown */;\n        if (this.keyCode !== 5 /* KeyCode.Ctrl */ && this.keyCode !== 4 /* KeyCode.Shift */ && this.keyCode !== 6 /* KeyCode.Alt */ && this.keyCode !== 57 /* KeyCode.Meta */) {\n            key = this.keyCode;\n        }\n        let result = 0;\n        if (this.ctrlKey) {\n            result |= ctrlKeyMod;\n        }\n        if (this.altKey) {\n            result |= altKeyMod;\n        }\n        if (this.shiftKey) {\n            result |= shiftKeyMod;\n        }\n        if (this.metaKey) {\n            result |= metaKeyMod;\n        }\n        result |= key;\n        return result;\n    }\n    _computeKeyCodeChord() {\n        let key = 0 /* KeyCode.Unknown */;\n        if (this.keyCode !== 5 /* KeyCode.Ctrl */ && this.keyCode !== 4 /* KeyCode.Shift */ && this.keyCode !== 6 /* KeyCode.Alt */ && this.keyCode !== 57 /* KeyCode.Meta */) {\n            key = this.keyCode;\n        }\n        return new KeyCodeChord(this.ctrlKey, this.shiftKey, this.altKey, this.metaKey, key);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/markdownRenderer.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as DOM from './dom.js';\nimport * as dompurify from './dompurify/dompurify.js';\nimport { DomEmitter } from './event.js';\nimport { createElement } from './formattedTextRenderer.js';\nimport { StandardKeyboardEvent } from './keyboardEvent.js';\nimport { StandardMouseEvent } from './mouseEvent.js';\nimport { renderLabelWithIcons } from './ui/iconLabel/iconLabels.js';\nimport { onUnexpectedError } from '../common/errors.js';\nimport { Event } from '../common/event.js';\nimport { escapeDoubleQuotes, parseHrefAndDimensions, removeMarkdownEscapes } from '../common/htmlContent.js';\nimport { markdownEscapeEscapedIcons } from '../common/iconLabels.js';\nimport { defaultGenerator } from '../common/idGenerator.js';\nimport { Lazy } from '../common/lazy.js';\nimport { DisposableStore, toDisposable } from '../common/lifecycle.js';\nimport { marked } from '../common/marked/marked.js';\nimport { parse } from '../common/marshalling.js';\nimport { FileAccess, Schemas } from '../common/network.js';\nimport { cloneAndChange } from '../common/objects.js';\nimport { dirname, resolvePath } from '../common/resources.js';\nimport { escape } from '../common/strings.js';\nimport { URI } from '../common/uri.js';\nconst defaultMarkedRenderers = Object.freeze({\n    image: (href, title, text) => {\n        let dimensions = [];\n        let attributes = [];\n        if (href) {\n            ({ href, dimensions } = parseHrefAndDimensions(href));\n            attributes.push(`src=\"${escapeDoubleQuotes(href)}\"`);\n        }\n        if (text) {\n            attributes.push(`alt=\"${escapeDoubleQuotes(text)}\"`);\n        }\n        if (title) {\n            attributes.push(`title=\"${escapeDoubleQuotes(title)}\"`);\n        }\n        if (dimensions.length) {\n            attributes = attributes.concat(dimensions);\n        }\n        return '<img ' + attributes.join(' ') + '>';\n    },\n    paragraph: (text) => {\n        return `<p>${text}</p>`;\n    },\n    link: (href, title, text) => {\n        if (typeof href !== 'string') {\n            return '';\n        }\n        // Remove markdown escapes. Workaround for https://github.com/chjj/marked/issues/829\n        if (href === text) { // raw link case\n            text = removeMarkdownEscapes(text);\n        }\n        title = typeof title === 'string' ? escapeDoubleQuotes(removeMarkdownEscapes(title)) : '';\n        href = removeMarkdownEscapes(href);\n        // HTML Encode href\n        href = href.replace(/&/g, '&amp;')\n            .replace(/</g, '&lt;')\n            .replace(/>/g, '&gt;')\n            .replace(/\"/g, '&quot;')\n            .replace(/'/g, '&#39;');\n        return `<a href=\"${href}\" title=\"${title || href}\" draggable=\"false\">${text}</a>`;\n    },\n});\n/**\n * Low-level way create a html element from a markdown string.\n *\n * **Note** that for most cases you should be using [`MarkdownRenderer`](./src/vs/editor/contrib/markdownRenderer/browser/markdownRenderer.ts)\n * which comes with support for pretty code block rendering and which uses the default way of handling links.\n */\nexport function renderMarkdown(markdown, options = {}, markedOptions = {}) {\n    var _a, _b;\n    const disposables = new DisposableStore();\n    let isDisposed = false;\n    const element = createElement(options);\n    const _uriMassage = function (part) {\n        let data;\n        try {\n            data = parse(decodeURIComponent(part));\n        }\n        catch (e) {\n            // ignore\n        }\n        if (!data) {\n            return part;\n        }\n        data = cloneAndChange(data, value => {\n            if (markdown.uris && markdown.uris[value]) {\n                return URI.revive(markdown.uris[value]);\n            }\n            else {\n                return undefined;\n            }\n        });\n        return encodeURIComponent(JSON.stringify(data));\n    };\n    const _href = function (href, isDomUri) {\n        const data = markdown.uris && markdown.uris[href];\n        let uri = URI.revive(data);\n        if (isDomUri) {\n            if (href.startsWith(Schemas.data + ':')) {\n                return href;\n            }\n            if (!uri) {\n                uri = URI.parse(href);\n            }\n            // this URI will end up as \"src\"-attribute of a dom node\n            // and because of that special rewriting needs to be done\n            // so that the URI uses a protocol that's understood by\n            // browsers (like http or https)\n            return FileAccess.uriToBrowserUri(uri).toString(true);\n        }\n        if (!uri) {\n            return href;\n        }\n        if (URI.parse(href).toString() === uri.toString()) {\n            return href; // no transformation performed\n        }\n        if (uri.query) {\n            uri = uri.with({ query: _uriMassage(uri.query) });\n        }\n        return uri.toString();\n    };\n    const renderer = new marked.Renderer();\n    renderer.image = defaultMarkedRenderers.image;\n    renderer.link = defaultMarkedRenderers.link;\n    renderer.paragraph = defaultMarkedRenderers.paragraph;\n    // Will collect [id, renderedElement] tuples\n    const codeBlocks = [];\n    const syncCodeBlocks = [];\n    if (options.codeBlockRendererSync) {\n        renderer.code = (code, lang) => {\n            const id = defaultGenerator.nextId();\n            const value = options.codeBlockRendererSync(postProcessCodeBlockLanguageId(lang), code);\n            syncCodeBlocks.push([id, value]);\n            return `<div class=\"code\" data-code=\"${id}\">${escape(code)}</div>`;\n        };\n    }\n    else if (options.codeBlockRenderer) {\n        renderer.code = (code, lang) => {\n            const id = defaultGenerator.nextId();\n            const value = options.codeBlockRenderer(postProcessCodeBlockLanguageId(lang), code);\n            codeBlocks.push(value.then(element => [id, element]));\n            return `<div class=\"code\" data-code=\"${id}\">${escape(code)}</div>`;\n        };\n    }\n    if (options.actionHandler) {\n        const _activateLink = function (event) {\n            let target = event.target;\n            if (target.tagName !== 'A') {\n                target = target.parentElement;\n                if (!target || target.tagName !== 'A') {\n                    return;\n                }\n            }\n            try {\n                let href = target.dataset['href'];\n                if (href) {\n                    if (markdown.baseUri) {\n                        href = resolveWithBaseUri(URI.from(markdown.baseUri), href);\n                    }\n                    options.actionHandler.callback(href, event);\n                }\n            }\n            catch (err) {\n                onUnexpectedError(err);\n            }\n            finally {\n                event.preventDefault();\n            }\n        };\n        const onClick = options.actionHandler.disposables.add(new DomEmitter(element, 'click'));\n        const onAuxClick = options.actionHandler.disposables.add(new DomEmitter(element, 'auxclick'));\n        options.actionHandler.disposables.add(Event.any(onClick.event, onAuxClick.event)(e => {\n            const mouseEvent = new StandardMouseEvent(DOM.getWindow(element), e);\n            if (!mouseEvent.leftButton && !mouseEvent.middleButton) {\n                return;\n            }\n            _activateLink(mouseEvent);\n        }));\n        options.actionHandler.disposables.add(DOM.addDisposableListener(element, 'keydown', (e) => {\n            const keyboardEvent = new StandardKeyboardEvent(e);\n            if (!keyboardEvent.equals(10 /* KeyCode.Space */) && !keyboardEvent.equals(3 /* KeyCode.Enter */)) {\n                return;\n            }\n            _activateLink(keyboardEvent);\n        }));\n    }\n    if (!markdown.supportHtml) {\n        // TODO: Can we deprecated this in favor of 'supportHtml'?\n        // Use our own sanitizer so that we can let through only spans.\n        // Otherwise, we'd be letting all html be rendered.\n        // If we want to allow markdown permitted tags, then we can delete sanitizer and sanitize.\n        // We always pass the output through dompurify after this so that we don't rely on\n        // marked for sanitization.\n        markedOptions.sanitizer = (html) => {\n            var _a;\n            if ((_a = options.sanitizerOptions) === null || _a === void 0 ? void 0 : _a.replaceWithPlaintext) {\n                return escape(html);\n            }\n            const match = markdown.isTrusted ? html.match(/^(<span[^>]+>)|(<\\/\\s*span>)$/) : undefined;\n            return match ? html : '';\n        };\n        markedOptions.sanitize = true;\n        markedOptions.silent = true;\n    }\n    markedOptions.renderer = renderer;\n    // values that are too long will freeze the UI\n    let value = (_a = markdown.value) !== null && _a !== void 0 ? _a : '';\n    if (value.length > 100000) {\n        value = `${value.substr(0, 100000)}…`;\n    }\n    // escape theme icons\n    if (markdown.supportThemeIcons) {\n        value = markdownEscapeEscapedIcons(value);\n    }\n    let renderedMarkdown;\n    if (options.fillInIncompleteTokens) {\n        // The defaults are applied by parse but not lexer()/parser(), and they need to be present\n        const opts = {\n            ...marked.defaults,\n            ...markedOptions\n        };\n        const tokens = marked.lexer(value, opts);\n        const newTokens = fillInIncompleteTokens(tokens);\n        renderedMarkdown = marked.parser(newTokens, opts);\n    }\n    else {\n        renderedMarkdown = marked.parse(value, markedOptions);\n    }\n    // Rewrite theme icons\n    if (markdown.supportThemeIcons) {\n        const elements = renderLabelWithIcons(renderedMarkdown);\n        renderedMarkdown = elements.map(e => typeof e === 'string' ? e : e.outerHTML).join('');\n    }\n    const htmlParser = new DOMParser();\n    const markdownHtmlDoc = htmlParser.parseFromString(sanitizeRenderedMarkdown({ isTrusted: markdown.isTrusted, ...options.sanitizerOptions }, renderedMarkdown), 'text/html');\n    markdownHtmlDoc.body.querySelectorAll('img, audio, video, source')\n        .forEach(img => {\n        const src = img.getAttribute('src'); // Get the raw 'src' attribute value as text, not the resolved 'src'\n        if (src) {\n            let href = src;\n            try {\n                if (markdown.baseUri) { // absolute or relative local path, or file: uri\n                    href = resolveWithBaseUri(URI.from(markdown.baseUri), href);\n                }\n            }\n            catch (err) { }\n            img.setAttribute('src', _href(href, true));\n            if (options.remoteImageIsAllowed) {\n                const uri = URI.parse(href);\n                if (uri.scheme !== Schemas.file && uri.scheme !== Schemas.data && !options.remoteImageIsAllowed(uri)) {\n                    img.replaceWith(DOM.$('', undefined, img.outerHTML));\n                }\n            }\n        }\n    });\n    markdownHtmlDoc.body.querySelectorAll('a')\n        .forEach(a => {\n        const href = a.getAttribute('href'); // Get the raw 'href' attribute value as text, not the resolved 'href'\n        a.setAttribute('href', ''); // Clear out href. We use the `data-href` for handling clicks instead\n        if (!href\n            || /^data:|javascript:/i.test(href)\n            || (/^command:/i.test(href) && !markdown.isTrusted)\n            || /^command:(\\/\\/\\/)?_workbench\\.downloadResource/i.test(href)) {\n            // drop the link\n            a.replaceWith(...a.childNodes);\n        }\n        else {\n            let resolvedHref = _href(href, false);\n            if (markdown.baseUri) {\n                resolvedHref = resolveWithBaseUri(URI.from(markdown.baseUri), href);\n            }\n            a.dataset.href = resolvedHref;\n        }\n    });\n    element.innerHTML = sanitizeRenderedMarkdown({ isTrusted: markdown.isTrusted, ...options.sanitizerOptions }, markdownHtmlDoc.body.innerHTML);\n    if (codeBlocks.length > 0) {\n        Promise.all(codeBlocks).then((tuples) => {\n            var _a, _b;\n            if (isDisposed) {\n                return;\n            }\n            const renderedElements = new Map(tuples);\n            const placeholderElements = element.querySelectorAll(`div[data-code]`);\n            for (const placeholderElement of placeholderElements) {\n                const renderedElement = renderedElements.get((_a = placeholderElement.dataset['code']) !== null && _a !== void 0 ? _a : '');\n                if (renderedElement) {\n                    DOM.reset(placeholderElement, renderedElement);\n                }\n            }\n            (_b = options.asyncRenderCallback) === null || _b === void 0 ? void 0 : _b.call(options);\n        });\n    }\n    else if (syncCodeBlocks.length > 0) {\n        const renderedElements = new Map(syncCodeBlocks);\n        const placeholderElements = element.querySelectorAll(`div[data-code]`);\n        for (const placeholderElement of placeholderElements) {\n            const renderedElement = renderedElements.get((_b = placeholderElement.dataset['code']) !== null && _b !== void 0 ? _b : '');\n            if (renderedElement) {\n                DOM.reset(placeholderElement, renderedElement);\n            }\n        }\n    }\n    // signal size changes for image tags\n    if (options.asyncRenderCallback) {\n        for (const img of element.getElementsByTagName('img')) {\n            const listener = disposables.add(DOM.addDisposableListener(img, 'load', () => {\n                listener.dispose();\n                options.asyncRenderCallback();\n            }));\n        }\n    }\n    return {\n        element,\n        dispose: () => {\n            isDisposed = true;\n            disposables.dispose();\n        }\n    };\n}\nfunction postProcessCodeBlockLanguageId(lang) {\n    if (!lang) {\n        return '';\n    }\n    const parts = lang.split(/[\\s+|:|,|\\{|\\?]/, 1);\n    if (parts.length) {\n        return parts[0];\n    }\n    return lang;\n}\nfunction resolveWithBaseUri(baseUri, href) {\n    const hasScheme = /^\\w[\\w\\d+.-]*:/.test(href);\n    if (hasScheme) {\n        return href;\n    }\n    if (baseUri.path.endsWith('/')) {\n        return resolvePath(baseUri, href).toString();\n    }\n    else {\n        return resolvePath(dirname(baseUri), href).toString();\n    }\n}\nconst selfClosingTags = ['area', 'base', 'br', 'col', 'command', 'embed', 'hr', 'img', 'input', 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr'];\nfunction sanitizeRenderedMarkdown(options, renderedMarkdown) {\n    const { config, allowedSchemes } = getSanitizerOptions(options);\n    const store = new DisposableStore();\n    store.add(addDompurifyHook('uponSanitizeAttribute', (element, e) => {\n        var _a;\n        if (e.attrName === 'style' || e.attrName === 'class') {\n            if (element.tagName === 'SPAN') {\n                if (e.attrName === 'style') {\n                    e.keepAttr = /^(color\\:(#[0-9a-fA-F]+|var\\(--vscode(-[a-zA-Z]+)+\\));)?(background-color\\:(#[0-9a-fA-F]+|var\\(--vscode(-[a-zA-Z]+)+\\));)?$/.test(e.attrValue);\n                    return;\n                }\n                else if (e.attrName === 'class') {\n                    e.keepAttr = /^codicon codicon-[a-z\\-]+( codicon-modifier-[a-z\\-]+)?$/.test(e.attrValue);\n                    return;\n                }\n            }\n            e.keepAttr = false;\n            return;\n        }\n        else if (element.tagName === 'INPUT' && ((_a = element.attributes.getNamedItem('type')) === null || _a === void 0 ? void 0 : _a.value) === 'checkbox') {\n            if ((e.attrName === 'type' && e.attrValue === 'checkbox') || e.attrName === 'disabled' || e.attrName === 'checked') {\n                e.keepAttr = true;\n                return;\n            }\n            e.keepAttr = false;\n        }\n    }));\n    store.add(addDompurifyHook('uponSanitizeElement', (element, e) => {\n        var _a, _b;\n        if (e.tagName === 'input') {\n            if (((_a = element.attributes.getNamedItem('type')) === null || _a === void 0 ? void 0 : _a.value) === 'checkbox') {\n                element.setAttribute('disabled', '');\n            }\n            else if (!options.replaceWithPlaintext) {\n                (_b = element.parentElement) === null || _b === void 0 ? void 0 : _b.removeChild(element);\n            }\n        }\n        if (options.replaceWithPlaintext && !e.allowedTags[e.tagName] && e.tagName !== 'body') {\n            if (element.parentElement) {\n                let startTagText;\n                let endTagText;\n                if (e.tagName === '#comment') {\n                    startTagText = `<!--${element.textContent}-->`;\n                }\n                else {\n                    const isSelfClosing = selfClosingTags.includes(e.tagName);\n                    const attrString = element.attributes.length ?\n                        ' ' + Array.from(element.attributes)\n                            .map(attr => `${attr.name}=\"${attr.value}\"`)\n                            .join(' ')\n                        : '';\n                    startTagText = `<${e.tagName}${attrString}>`;\n                    if (!isSelfClosing) {\n                        endTagText = `</${e.tagName}>`;\n                    }\n                }\n                const fragment = document.createDocumentFragment();\n                const textNode = element.parentElement.ownerDocument.createTextNode(startTagText);\n                fragment.appendChild(textNode);\n                const endTagTextNode = endTagText ? element.parentElement.ownerDocument.createTextNode(endTagText) : undefined;\n                while (element.firstChild) {\n                    fragment.appendChild(element.firstChild);\n                }\n                if (endTagTextNode) {\n                    fragment.appendChild(endTagTextNode);\n                }\n                element.parentElement.replaceChild(fragment, element);\n            }\n        }\n    }));\n    store.add(DOM.hookDomPurifyHrefAndSrcSanitizer(allowedSchemes));\n    try {\n        return dompurify.sanitize(renderedMarkdown, { ...config, RETURN_TRUSTED_TYPE: true });\n    }\n    finally {\n        store.dispose();\n    }\n}\nexport const allowedMarkdownAttr = [\n    'align',\n    'autoplay',\n    'alt',\n    'checked',\n    'class',\n    'controls',\n    'data-code',\n    'data-href',\n    'disabled',\n    'draggable',\n    'height',\n    'href',\n    'loop',\n    'muted',\n    'playsinline',\n    'poster',\n    'src',\n    'style',\n    'target',\n    'title',\n    'type',\n    'width',\n    'start',\n];\nfunction getSanitizerOptions(options) {\n    var _a;\n    const allowedSchemes = [\n        Schemas.http,\n        Schemas.https,\n        Schemas.mailto,\n        Schemas.data,\n        Schemas.file,\n        Schemas.vscodeFileResource,\n        Schemas.vscodeRemote,\n        Schemas.vscodeRemoteResource,\n    ];\n    if (options.isTrusted) {\n        allowedSchemes.push(Schemas.command);\n    }\n    return {\n        config: {\n            // allowedTags should included everything that markdown renders to.\n            // Since we have our own sanitize function for marked, it's possible we missed some tag so let dompurify make sure.\n            // HTML tags that can result from markdown are from reading https://spec.commonmark.org/0.29/\n            // HTML table tags that can result from markdown are from https://github.github.com/gfm/#tables-extension-\n            ALLOWED_TAGS: (_a = options.allowedTags) !== null && _a !== void 0 ? _a : [...DOM.basicMarkupHtmlTags],\n            ALLOWED_ATTR: allowedMarkdownAttr,\n            ALLOW_UNKNOWN_PROTOCOLS: true,\n        },\n        allowedSchemes\n    };\n}\n/**\n * Strips all markdown from `string`, if it's an IMarkdownString. For example\n * `# Header` would be output as `Header`. If it's not, the string is returned.\n */\nexport function renderStringAsPlaintext(string) {\n    return typeof string === 'string' ? string : renderMarkdownAsPlaintext(string);\n}\n/**\n * Strips all markdown from `markdown`. For example `# Header` would be output as `Header`.\n * provide @param withCodeBlocks to retain code blocks\n */\nexport function renderMarkdownAsPlaintext(markdown, withCodeBlocks) {\n    var _a;\n    // values that are too long will freeze the UI\n    let value = (_a = markdown.value) !== null && _a !== void 0 ? _a : '';\n    if (value.length > 100000) {\n        value = `${value.substr(0, 100000)}…`;\n    }\n    const html = marked.parse(value, { renderer: withCodeBlocks ? plainTextWithCodeBlocksRenderer.value : plainTextRenderer.value }).replace(/&(#\\d+|[a-zA-Z]+);/g, m => { var _a; return (_a = unescapeInfo.get(m)) !== null && _a !== void 0 ? _a : m; });\n    return sanitizeRenderedMarkdown({ isTrusted: false }, html).toString();\n}\nconst unescapeInfo = new Map([\n    ['&quot;', '\"'],\n    ['&nbsp;', ' '],\n    ['&amp;', '&'],\n    ['&#39;', '\\''],\n    ['&lt;', '<'],\n    ['&gt;', '>'],\n]);\nfunction createRenderer() {\n    const renderer = new marked.Renderer();\n    renderer.code = (code) => {\n        return code;\n    };\n    renderer.blockquote = (quote) => {\n        return quote;\n    };\n    renderer.html = (_html) => {\n        return '';\n    };\n    renderer.heading = (text, _level, _raw) => {\n        return text + '\\n';\n    };\n    renderer.hr = () => {\n        return '';\n    };\n    renderer.list = (body, _ordered) => {\n        return body;\n    };\n    renderer.listitem = (text) => {\n        return text + '\\n';\n    };\n    renderer.paragraph = (text) => {\n        return text + '\\n';\n    };\n    renderer.table = (header, body) => {\n        return header + body + '\\n';\n    };\n    renderer.tablerow = (content) => {\n        return content;\n    };\n    renderer.tablecell = (content, _flags) => {\n        return content + ' ';\n    };\n    renderer.strong = (text) => {\n        return text;\n    };\n    renderer.em = (text) => {\n        return text;\n    };\n    renderer.codespan = (code) => {\n        return code;\n    };\n    renderer.br = () => {\n        return '\\n';\n    };\n    renderer.del = (text) => {\n        return text;\n    };\n    renderer.image = (_href, _title, _text) => {\n        return '';\n    };\n    renderer.text = (text) => {\n        return text;\n    };\n    renderer.link = (_href, _title, text) => {\n        return text;\n    };\n    return renderer;\n}\nconst plainTextRenderer = new Lazy((withCodeBlocks) => createRenderer());\nconst plainTextWithCodeBlocksRenderer = new Lazy(() => {\n    const renderer = createRenderer();\n    renderer.code = (code) => {\n        return '\\n' + '```' + code + '```' + '\\n';\n    };\n    return renderer;\n});\nfunction mergeRawTokenText(tokens) {\n    let mergedTokenText = '';\n    tokens.forEach(token => {\n        mergedTokenText += token.raw;\n    });\n    return mergedTokenText;\n}\nfunction completeSingleLinePattern(token) {\n    var _a, _b;\n    if (!token.tokens) {\n        return undefined;\n    }\n    for (let i = token.tokens.length - 1; i >= 0; i--) {\n        const subtoken = token.tokens[i];\n        if (subtoken.type === 'text') {\n            const lines = subtoken.raw.split('\\n');\n            const lastLine = lines[lines.length - 1];\n            if (lastLine.includes('`')) {\n                return completeCodespan(token);\n            }\n            else if (lastLine.includes('**')) {\n                return completeDoublestar(token);\n            }\n            else if (lastLine.match(/\\*\\w/)) {\n                return completeStar(token);\n            }\n            else if (lastLine.match(/(^|\\s)__\\w/)) {\n                return completeDoubleUnderscore(token);\n            }\n            else if (lastLine.match(/(^|\\s)_\\w/)) {\n                return completeUnderscore(token);\n            }\n            else if (\n            // Text with start of link target\n            hasLinkTextAndStartOfLinkTarget(lastLine) ||\n                // This token doesn't have the link text, eg if it contains other markdown constructs that are in other subtokens.\n                // But some preceding token does have an unbalanced [ at least\n                hasStartOfLinkTargetAndNoLinkText(lastLine) && token.tokens.slice(0, i).some(t => t.type === 'text' && t.raw.match(/\\[[^\\]]*$/))) {\n                const nextTwoSubTokens = token.tokens.slice(i + 1);\n                // A markdown link can look like\n                // [link text](https://microsoft.com \"more text\")\n                // Where \"more text\" is a title for the link or an argument to a vscode command link\n                if (\n                // If the link was parsed as a link, then look for a link token and a text token with a quote\n                ((_a = nextTwoSubTokens[0]) === null || _a === void 0 ? void 0 : _a.type) === 'link' && ((_b = nextTwoSubTokens[1]) === null || _b === void 0 ? void 0 : _b.type) === 'text' && nextTwoSubTokens[1].raw.match(/^ *\"[^\"]*$/) ||\n                    // And if the link was not parsed as a link (eg command link), just look for a single quote in this token\n                    lastLine.match(/^[^\"]* +\"[^\"]*$/)) {\n                    return completeLinkTargetArg(token);\n                }\n                return completeLinkTarget(token);\n            }\n            // Contains the start of link text, and no following tokens contain the link target\n            else if (lastLine.match(/(^|\\s)\\[\\w*/)) {\n                return completeLinkText(token);\n            }\n        }\n    }\n    return undefined;\n}\nfunction hasLinkTextAndStartOfLinkTarget(str) {\n    return !!str.match(/(^|\\s)\\[.*\\]\\(\\w*/);\n}\nfunction hasStartOfLinkTargetAndNoLinkText(str) {\n    return !!str.match(/^[^\\[]*\\]\\([^\\)]*$/);\n}\nfunction completeListItemPattern(list) {\n    var _a;\n    // Patch up this one list item\n    const lastListItem = list.items[list.items.length - 1];\n    const lastListSubToken = lastListItem.tokens ? lastListItem.tokens[lastListItem.tokens.length - 1] : undefined;\n    /*\n    Example list token structures:\n\n    list\n        list_item\n            text\n                text\n                codespan\n                link\n        list_item\n            text\n            code // Complete indented codeblock\n        list_item\n            text\n            space\n            text\n                text // Incomplete indented codeblock\n        list_item\n            text\n            list // Nested list\n                list_item\n                    text\n                        text\n\n    Contrast with paragraph:\n    paragraph\n        text\n        codespan\n    */\n    let newToken;\n    if ((lastListSubToken === null || lastListSubToken === void 0 ? void 0 : lastListSubToken.type) === 'text' && !('inRawBlock' in lastListItem)) { // Why does Tag have a type of 'text'\n        newToken = completeSingleLinePattern(lastListSubToken);\n    }\n    if (!newToken || newToken.type !== 'paragraph') { // 'text' item inside the list item turns into paragraph\n        // Nothing to fix, or not a pattern we were expecting\n        return;\n    }\n    const previousListItemsText = mergeRawTokenText(list.items.slice(0, -1));\n    // Grabbing the `- ` or `1. ` off the list item because I can't find a better way to do this\n    const lastListItemLead = (_a = lastListItem.raw.match(/^(\\s*(-|\\d+\\.) +)/)) === null || _a === void 0 ? void 0 : _a[0];\n    if (!lastListItemLead) {\n        // Is badly formatted\n        return;\n    }\n    const newListItemText = lastListItemLead +\n        mergeRawTokenText(lastListItem.tokens.slice(0, -1)) +\n        newToken.raw;\n    const newList = marked.lexer(previousListItemsText + newListItemText)[0];\n    if (newList.type !== 'list') {\n        // Something went wrong\n        return;\n    }\n    return newList;\n}\nconst maxIncompleteTokensFixRounds = 3;\nexport function fillInIncompleteTokens(tokens) {\n    for (let i = 0; i < maxIncompleteTokensFixRounds; i++) {\n        const newTokens = fillInIncompleteTokensOnce(tokens);\n        if (newTokens) {\n            tokens = newTokens;\n        }\n        else {\n            break;\n        }\n    }\n    return tokens;\n}\nfunction fillInIncompleteTokensOnce(tokens) {\n    let i;\n    let newTokens;\n    for (i = 0; i < tokens.length; i++) {\n        const token = tokens[i];\n        let codeblockStart;\n        if (token.type === 'paragraph' && (codeblockStart = token.raw.match(/(\\n|^)(````*)/))) {\n            const codeblockLead = codeblockStart[2];\n            // If the code block was complete, it would be in a type='code'\n            newTokens = completeCodeBlock(tokens.slice(i), codeblockLead);\n            break;\n        }\n        if (token.type === 'paragraph' && token.raw.match(/(\\n|^)\\|/)) {\n            newTokens = completeTable(tokens.slice(i));\n            break;\n        }\n        if (i === tokens.length - 1 && token.type === 'list') {\n            const newListToken = completeListItemPattern(token);\n            if (newListToken) {\n                newTokens = [newListToken];\n                break;\n            }\n        }\n        if (i === tokens.length - 1 && token.type === 'paragraph') {\n            // Only operates on a single token, because any newline that follows this should break these patterns\n            const newToken = completeSingleLinePattern(token);\n            if (newToken) {\n                newTokens = [newToken];\n                break;\n            }\n        }\n    }\n    if (newTokens) {\n        const newTokensList = [\n            ...tokens.slice(0, i),\n            ...newTokens\n        ];\n        newTokensList.links = tokens.links;\n        return newTokensList;\n    }\n    return null;\n}\nfunction completeCodeBlock(tokens, leader) {\n    const mergedRawText = mergeRawTokenText(tokens);\n    return marked.lexer(mergedRawText + `\\n${leader}`);\n}\nfunction completeCodespan(token) {\n    return completeWithString(token, '`');\n}\nfunction completeStar(tokens) {\n    return completeWithString(tokens, '*');\n}\nfunction completeUnderscore(tokens) {\n    return completeWithString(tokens, '_');\n}\nfunction completeLinkTarget(tokens) {\n    return completeWithString(tokens, ')');\n}\nfunction completeLinkTargetArg(tokens) {\n    return completeWithString(tokens, '\")');\n}\nfunction completeLinkText(tokens) {\n    return completeWithString(tokens, '](https://microsoft.com)');\n}\nfunction completeDoublestar(tokens) {\n    return completeWithString(tokens, '**');\n}\nfunction completeDoubleUnderscore(tokens) {\n    return completeWithString(tokens, '__');\n}\nfunction completeWithString(tokens, closingString) {\n    const mergedRawText = mergeRawTokenText(Array.isArray(tokens) ? tokens : [tokens]);\n    // If it was completed correctly, this should be a single token.\n    // Expecting either a Paragraph or a List\n    return marked.lexer(mergedRawText + closingString)[0];\n}\nfunction completeTable(tokens) {\n    const mergedRawText = mergeRawTokenText(tokens);\n    const lines = mergedRawText.split('\\n');\n    let numCols; // The number of line1 col headers\n    let hasSeparatorRow = false;\n    for (let i = 0; i < lines.length; i++) {\n        const line = lines[i].trim();\n        if (typeof numCols === 'undefined' && line.match(/^\\s*\\|/)) {\n            const line1Matches = line.match(/(\\|[^\\|]+)(?=\\||$)/g);\n            if (line1Matches) {\n                numCols = line1Matches.length;\n            }\n        }\n        else if (typeof numCols === 'number') {\n            if (line.match(/^\\s*\\|/)) {\n                if (i !== lines.length - 1) {\n                    // We got the line1 header row, and the line2 separator row, but there are more lines, and it wasn't parsed as a table!\n                    // That's strange and means that the table is probably malformed in the source, so I won't try to patch it up.\n                    return undefined;\n                }\n                // Got a line2 separator row- partial or complete, doesn't matter, we'll replace it with a correct one\n                hasSeparatorRow = true;\n            }\n            else {\n                // The line after the header row isn't a valid separator row, so the table is malformed, don't fix it up\n                return undefined;\n            }\n        }\n    }\n    if (typeof numCols === 'number' && numCols > 0) {\n        const prefixText = hasSeparatorRow ? lines.slice(0, -1).join('\\n') : mergedRawText;\n        const line1EndsInPipe = !!prefixText.match(/\\|\\s*$/);\n        const newRawText = prefixText + (line1EndsInPipe ? '' : '|') + `\\n|${' --- |'.repeat(numCols)}`;\n        return marked.lexer(newRawText);\n    }\n    return undefined;\n}\nfunction addDompurifyHook(hook, cb) {\n    dompurify.addHook(hook, cb);\n    return toDisposable(() => dompurify.removeHook(hook));\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/mouseEvent.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as browser from './browser.js';\nimport { IframeUtils } from './iframe.js';\nimport * as platform from '../common/platform.js';\nexport class StandardMouseEvent {\n    constructor(targetWindow, e) {\n        this.timestamp = Date.now();\n        this.browserEvent = e;\n        this.leftButton = e.button === 0;\n        this.middleButton = e.button === 1;\n        this.rightButton = e.button === 2;\n        this.buttons = e.buttons;\n        this.target = e.target;\n        this.detail = e.detail || 1;\n        if (e.type === 'dblclick') {\n            this.detail = 2;\n        }\n        this.ctrlKey = e.ctrlKey;\n        this.shiftKey = e.shiftKey;\n        this.altKey = e.altKey;\n        this.metaKey = e.metaKey;\n        if (typeof e.pageX === 'number') {\n            this.posx = e.pageX;\n            this.posy = e.pageY;\n        }\n        else {\n            // Probably hit by MSGestureEvent\n            this.posx = e.clientX + this.target.ownerDocument.body.scrollLeft + this.target.ownerDocument.documentElement.scrollLeft;\n            this.posy = e.clientY + this.target.ownerDocument.body.scrollTop + this.target.ownerDocument.documentElement.scrollTop;\n        }\n        // Find the position of the iframe this code is executing in relative to the iframe where the event was captured.\n        const iframeOffsets = IframeUtils.getPositionOfChildWindowRelativeToAncestorWindow(targetWindow, e.view);\n        this.posx -= iframeOffsets.left;\n        this.posy -= iframeOffsets.top;\n    }\n    preventDefault() {\n        this.browserEvent.preventDefault();\n    }\n    stopPropagation() {\n        this.browserEvent.stopPropagation();\n    }\n}\nexport class StandardWheelEvent {\n    constructor(e, deltaX = 0, deltaY = 0) {\n        var _a;\n        this.browserEvent = e || null;\n        this.target = e ? (e.target || e.targetNode || e.srcElement) : null;\n        this.deltaY = deltaY;\n        this.deltaX = deltaX;\n        let shouldFactorDPR = false;\n        if (browser.isChrome) {\n            // Chrome version >= 123 contains the fix to factor devicePixelRatio into the wheel event.\n            // See https://chromium.googlesource.com/chromium/src.git/+/be51b448441ff0c9d1f17e0f25c4bf1ab3f11f61\n            const chromeVersionMatch = navigator.userAgent.match(/Chrome\\/(\\d+)/);\n            const chromeMajorVersion = chromeVersionMatch ? parseInt(chromeVersionMatch[1]) : 123;\n            shouldFactorDPR = chromeMajorVersion <= 122;\n        }\n        if (e) {\n            // Old (deprecated) wheel events\n            const e1 = e;\n            const e2 = e;\n            const devicePixelRatio = ((_a = e.view) === null || _a === void 0 ? void 0 : _a.devicePixelRatio) || 1;\n            // vertical delta scroll\n            if (typeof e1.wheelDeltaY !== 'undefined') {\n                if (shouldFactorDPR) {\n                    // Refs https://github.com/microsoft/vscode/issues/146403#issuecomment-1854538928\n                    this.deltaY = e1.wheelDeltaY / (120 * devicePixelRatio);\n                }\n                else {\n                    this.deltaY = e1.wheelDeltaY / 120;\n                }\n            }\n            else if (typeof e2.VERTICAL_AXIS !== 'undefined' && e2.axis === e2.VERTICAL_AXIS) {\n                this.deltaY = -e2.detail / 3;\n            }\n            else if (e.type === 'wheel') {\n                // Modern wheel event\n                // https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent\n                const ev = e;\n                if (ev.deltaMode === ev.DOM_DELTA_LINE) {\n                    // the deltas are expressed in lines\n                    if (browser.isFirefox && !platform.isMacintosh) {\n                        this.deltaY = -e.deltaY / 3;\n                    }\n                    else {\n                        this.deltaY = -e.deltaY;\n                    }\n                }\n                else {\n                    this.deltaY = -e.deltaY / 40;\n                }\n            }\n            // horizontal delta scroll\n            if (typeof e1.wheelDeltaX !== 'undefined') {\n                if (browser.isSafari && platform.isWindows) {\n                    this.deltaX = -(e1.wheelDeltaX / 120);\n                }\n                else if (shouldFactorDPR) {\n                    // Refs https://github.com/microsoft/vscode/issues/146403#issuecomment-1854538928\n                    this.deltaX = e1.wheelDeltaX / (120 * devicePixelRatio);\n                }\n                else {\n                    this.deltaX = e1.wheelDeltaX / 120;\n                }\n            }\n            else if (typeof e2.HORIZONTAL_AXIS !== 'undefined' && e2.axis === e2.HORIZONTAL_AXIS) {\n                this.deltaX = -e.detail / 3;\n            }\n            else if (e.type === 'wheel') {\n                // Modern wheel event\n                // https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent\n                const ev = e;\n                if (ev.deltaMode === ev.DOM_DELTA_LINE) {\n                    // the deltas are expressed in lines\n                    if (browser.isFirefox && !platform.isMacintosh) {\n                        this.deltaX = -e.deltaX / 3;\n                    }\n                    else {\n                        this.deltaX = -e.deltaX;\n                    }\n                }\n                else {\n                    this.deltaX = -e.deltaX / 40;\n                }\n            }\n            // Assume a vertical scroll if nothing else worked\n            if (this.deltaY === 0 && this.deltaX === 0 && e.wheelDelta) {\n                if (shouldFactorDPR) {\n                    // Refs https://github.com/microsoft/vscode/issues/146403#issuecomment-1854538928\n                    this.deltaY = e.wheelDelta / (120 * devicePixelRatio);\n                }\n                else {\n                    this.deltaY = e.wheelDelta / 120;\n                }\n            }\n        }\n    }\n    preventDefault() {\n        var _a;\n        (_a = this.browserEvent) === null || _a === void 0 ? void 0 : _a.preventDefault();\n    }\n    stopPropagation() {\n        var _a;\n        (_a = this.browserEvent) === null || _a === void 0 ? void 0 : _a.stopPropagation();\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/performance.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport var inputLatency;\n(function (inputLatency) {\n    const totalKeydownTime = { total: 0, min: Number.MAX_VALUE, max: 0 };\n    const totalInputTime = { ...totalKeydownTime };\n    const totalRenderTime = { ...totalKeydownTime };\n    const totalInputLatencyTime = { ...totalKeydownTime };\n    let measurementsCount = 0;\n    const state = {\n        keydown: 0 /* EventPhase.Before */,\n        input: 0 /* EventPhase.Before */,\n        render: 0 /* EventPhase.Before */,\n    };\n    /**\n     * Record the start of the keydown event.\n     */\n    function onKeyDown() {\n        /** Direct Check C. See explanation in {@link recordIfFinished} */\n        recordIfFinished();\n        performance.mark('inputlatency/start');\n        performance.mark('keydown/start');\n        state.keydown = 1 /* EventPhase.InProgress */;\n        queueMicrotask(markKeyDownEnd);\n    }\n    inputLatency.onKeyDown = onKeyDown;\n    /**\n     * Mark the end of the keydown event.\n     */\n    function markKeyDownEnd() {\n        if (state.keydown === 1 /* EventPhase.InProgress */) {\n            performance.mark('keydown/end');\n            state.keydown = 2 /* EventPhase.Finished */;\n        }\n    }\n    /**\n     * Record the start of the beforeinput event.\n     */\n    function onBeforeInput() {\n        performance.mark('input/start');\n        state.input = 1 /* EventPhase.InProgress */;\n        /** Schedule Task A. See explanation in {@link recordIfFinished} */\n        scheduleRecordIfFinishedTask();\n    }\n    inputLatency.onBeforeInput = onBeforeInput;\n    /**\n     * Record the start of the input event.\n     */\n    function onInput() {\n        if (state.input === 0 /* EventPhase.Before */) {\n            // it looks like we didn't receive a `beforeinput`\n            onBeforeInput();\n        }\n        queueMicrotask(markInputEnd);\n    }\n    inputLatency.onInput = onInput;\n    function markInputEnd() {\n        if (state.input === 1 /* EventPhase.InProgress */) {\n            performance.mark('input/end');\n            state.input = 2 /* EventPhase.Finished */;\n        }\n    }\n    /**\n     * Record the start of the keyup event.\n     */\n    function onKeyUp() {\n        /** Direct Check D. See explanation in {@link recordIfFinished} */\n        recordIfFinished();\n    }\n    inputLatency.onKeyUp = onKeyUp;\n    /**\n     * Record the start of the selectionchange event.\n     */\n    function onSelectionChange() {\n        /** Direct Check E. See explanation in {@link recordIfFinished} */\n        recordIfFinished();\n    }\n    inputLatency.onSelectionChange = onSelectionChange;\n    /**\n     * Record the start of the animation frame performing the rendering.\n     */\n    function onRenderStart() {\n        // Render may be triggered during input, but we only measure the following animation frame\n        if (state.keydown === 2 /* EventPhase.Finished */ && state.input === 2 /* EventPhase.Finished */ && state.render === 0 /* EventPhase.Before */) {\n            // Only measure the first render after keyboard input\n            performance.mark('render/start');\n            state.render = 1 /* EventPhase.InProgress */;\n            queueMicrotask(markRenderEnd);\n            /** Schedule Task B. See explanation in {@link recordIfFinished} */\n            scheduleRecordIfFinishedTask();\n        }\n    }\n    inputLatency.onRenderStart = onRenderStart;\n    /**\n     * Mark the end of the animation frame performing the rendering.\n     */\n    function markRenderEnd() {\n        if (state.render === 1 /* EventPhase.InProgress */) {\n            performance.mark('render/end');\n            state.render = 2 /* EventPhase.Finished */;\n        }\n    }\n    function scheduleRecordIfFinishedTask() {\n        // Here we can safely assume that the `setTimeout` will not be\n        // artificially delayed by 4ms because we schedule it from\n        // event handlers\n        setTimeout(recordIfFinished);\n    }\n    /**\n     * Record the input latency sample if input handling and rendering are finished.\n     *\n     * The challenge here is that we want to record the latency in such a way that it includes\n     * also the layout and painting work the browser does during the animation frame task.\n     *\n     * Simply scheduling a new task (via `setTimeout`) from the animation frame task would\n     * schedule the new task at the end of the task queue (after other code that uses `setTimeout`),\n     * so we need to use multiple strategies to make sure our task runs before others:\n     *\n     * We schedule tasks (A and B):\n     *    - we schedule a task A (via a `setTimeout` call) when the input starts in `markInputStart`.\n     *      If the animation frame task is scheduled quickly by the browser, then task A has a very good\n     *      chance of being the very first task after the animation frame and thus will record the input latency.\n     *    - however, if the animation frame task is scheduled a bit later, then task A might execute\n     *      before the animation frame task. We therefore schedule another task B from `markRenderStart`.\n     *\n     * We do direct checks in browser event handlers (C, D, E):\n     *    - if the browser has multiple keydown events queued up, they will be scheduled before the `setTimeout` tasks,\n     *      so we do a direct check in the keydown event handler (C).\n     *    - depending on timing, sometimes the animation frame is scheduled even before the `keyup` event, so we\n     *      do a direct check there too (E).\n     *    - the browser oftentimes emits a `selectionchange` event after an `input`, so we do a direct check there (D).\n     */\n    function recordIfFinished() {\n        if (state.keydown === 2 /* EventPhase.Finished */ && state.input === 2 /* EventPhase.Finished */ && state.render === 2 /* EventPhase.Finished */) {\n            performance.mark('inputlatency/end');\n            performance.measure('keydown', 'keydown/start', 'keydown/end');\n            performance.measure('input', 'input/start', 'input/end');\n            performance.measure('render', 'render/start', 'render/end');\n            performance.measure('inputlatency', 'inputlatency/start', 'inputlatency/end');\n            addMeasure('keydown', totalKeydownTime);\n            addMeasure('input', totalInputTime);\n            addMeasure('render', totalRenderTime);\n            addMeasure('inputlatency', totalInputLatencyTime);\n            // console.info(\n            // \t`input latency=${performance.getEntriesByName('inputlatency')[0].duration.toFixed(1)} [` +\n            // \t`keydown=${performance.getEntriesByName('keydown')[0].duration.toFixed(1)}, ` +\n            // \t`input=${performance.getEntriesByName('input')[0].duration.toFixed(1)}, ` +\n            // \t`render=${performance.getEntriesByName('render')[0].duration.toFixed(1)}` +\n            // \t`]`\n            // );\n            measurementsCount++;\n            reset();\n        }\n    }\n    function addMeasure(entryName, cumulativeMeasurement) {\n        const duration = performance.getEntriesByName(entryName)[0].duration;\n        cumulativeMeasurement.total += duration;\n        cumulativeMeasurement.min = Math.min(cumulativeMeasurement.min, duration);\n        cumulativeMeasurement.max = Math.max(cumulativeMeasurement.max, duration);\n    }\n    /**\n     * Clear the current sample.\n     */\n    function reset() {\n        performance.clearMarks('keydown/start');\n        performance.clearMarks('keydown/end');\n        performance.clearMarks('input/start');\n        performance.clearMarks('input/end');\n        performance.clearMarks('render/start');\n        performance.clearMarks('render/end');\n        performance.clearMarks('inputlatency/start');\n        performance.clearMarks('inputlatency/end');\n        performance.clearMeasures('keydown');\n        performance.clearMeasures('input');\n        performance.clearMeasures('render');\n        performance.clearMeasures('inputlatency');\n        state.keydown = 0 /* EventPhase.Before */;\n        state.input = 0 /* EventPhase.Before */;\n        state.render = 0 /* EventPhase.Before */;\n    }\n    /**\n     * Gets all input latency samples and clears the internal buffers to start recording a new set\n     * of samples.\n     */\n    function getAndClearMeasurements() {\n        if (measurementsCount === 0) {\n            return undefined;\n        }\n        // Assemble the result\n        const result = {\n            keydown: cumulativeToFinalMeasurement(totalKeydownTime),\n            input: cumulativeToFinalMeasurement(totalInputTime),\n            render: cumulativeToFinalMeasurement(totalRenderTime),\n            total: cumulativeToFinalMeasurement(totalInputLatencyTime),\n            sampleCount: measurementsCount\n        };\n        // Clear the cumulative measurements\n        clearCumulativeMeasurement(totalKeydownTime);\n        clearCumulativeMeasurement(totalInputTime);\n        clearCumulativeMeasurement(totalRenderTime);\n        clearCumulativeMeasurement(totalInputLatencyTime);\n        measurementsCount = 0;\n        return result;\n    }\n    inputLatency.getAndClearMeasurements = getAndClearMeasurements;\n    function cumulativeToFinalMeasurement(cumulative) {\n        return {\n            average: cumulative.total / measurementsCount,\n            max: cumulative.max,\n            min: cumulative.min,\n        };\n    }\n    function clearCumulativeMeasurement(cumulative) {\n        cumulative.total = 0;\n        cumulative.min = Number.MAX_VALUE;\n        cumulative.max = 0;\n    }\n})(inputLatency || (inputLatency = {}));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/pixelRatio.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { getWindowId, onDidUnregisterWindow } from './dom.js';\nimport { Emitter, Event } from '../common/event.js';\nimport { Disposable, markAsSingleton } from '../common/lifecycle.js';\n/**\n * See https://developer.mozilla.org/en-US/docs/Web/API/Window/devicePixelRatio#monitoring_screen_resolution_or_zoom_level_changes\n */\nclass DevicePixelRatioMonitor extends Disposable {\n    constructor(targetWindow) {\n        super();\n        this._onDidChange = this._register(new Emitter());\n        this.onDidChange = this._onDidChange.event;\n        this._listener = () => this._handleChange(targetWindow, true);\n        this._mediaQueryList = null;\n        this._handleChange(targetWindow, false);\n    }\n    _handleChange(targetWindow, fireEvent) {\n        var _a;\n        (_a = this._mediaQueryList) === null || _a === void 0 ? void 0 : _a.removeEventListener('change', this._listener);\n        this._mediaQueryList = targetWindow.matchMedia(`(resolution: ${targetWindow.devicePixelRatio}dppx)`);\n        this._mediaQueryList.addEventListener('change', this._listener);\n        if (fireEvent) {\n            this._onDidChange.fire();\n        }\n    }\n}\nclass PixelRatioMonitorImpl extends Disposable {\n    get value() {\n        return this._value;\n    }\n    constructor(targetWindow) {\n        super();\n        this._onDidChange = this._register(new Emitter());\n        this.onDidChange = this._onDidChange.event;\n        this._value = this._getPixelRatio(targetWindow);\n        const dprMonitor = this._register(new DevicePixelRatioMonitor(targetWindow));\n        this._register(dprMonitor.onDidChange(() => {\n            this._value = this._getPixelRatio(targetWindow);\n            this._onDidChange.fire(this._value);\n        }));\n    }\n    _getPixelRatio(targetWindow) {\n        const ctx = document.createElement('canvas').getContext('2d');\n        const dpr = targetWindow.devicePixelRatio || 1;\n        const bsr = ctx.webkitBackingStorePixelRatio ||\n            ctx.mozBackingStorePixelRatio ||\n            ctx.msBackingStorePixelRatio ||\n            ctx.oBackingStorePixelRatio ||\n            ctx.backingStorePixelRatio || 1;\n        return dpr / bsr;\n    }\n}\nclass PixelRatioMonitorFacade {\n    constructor() {\n        this.mapWindowIdToPixelRatioMonitor = new Map();\n    }\n    _getOrCreatePixelRatioMonitor(targetWindow) {\n        const targetWindowId = getWindowId(targetWindow);\n        let pixelRatioMonitor = this.mapWindowIdToPixelRatioMonitor.get(targetWindowId);\n        if (!pixelRatioMonitor) {\n            pixelRatioMonitor = markAsSingleton(new PixelRatioMonitorImpl(targetWindow));\n            this.mapWindowIdToPixelRatioMonitor.set(targetWindowId, pixelRatioMonitor);\n            markAsSingleton(Event.once(onDidUnregisterWindow)(({ vscodeWindowId }) => {\n                if (vscodeWindowId === targetWindowId) {\n                    pixelRatioMonitor === null || pixelRatioMonitor === void 0 ? void 0 : pixelRatioMonitor.dispose();\n                    this.mapWindowIdToPixelRatioMonitor.delete(targetWindowId);\n                }\n            }));\n        }\n        return pixelRatioMonitor;\n    }\n    getInstance(targetWindow) {\n        return this._getOrCreatePixelRatioMonitor(targetWindow);\n    }\n}\n/**\n * Returns the pixel ratio.\n *\n * This is useful for rendering <canvas> elements at native screen resolution or for being used as\n * a cache key when storing font measurements. Fonts might render differently depending on resolution\n * and any measurements need to be discarded for example when a window is moved from a monitor to another.\n */\nexport const PixelRatio = new PixelRatioMonitorFacade();\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/touch.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport * as DomUtils from './dom.js';\nimport { mainWindow } from './window.js';\nimport * as arrays from '../common/arrays.js';\nimport { memoize } from '../common/decorators.js';\nimport { Event as EventUtils } from '../common/event.js';\nimport { Disposable, markAsSingleton, toDisposable } from '../common/lifecycle.js';\nimport { LinkedList } from '../common/linkedList.js';\nexport var EventType;\n(function (EventType) {\n    EventType.Tap = '-monaco-gesturetap';\n    EventType.Change = '-monaco-gesturechange';\n    EventType.Start = '-monaco-gesturestart';\n    EventType.End = '-monaco-gesturesend';\n    EventType.Contextmenu = '-monaco-gesturecontextmenu';\n})(EventType || (EventType = {}));\nexport class Gesture extends Disposable {\n    constructor() {\n        super();\n        this.dispatched = false;\n        this.targets = new LinkedList();\n        this.ignoreTargets = new LinkedList();\n        this.activeTouches = {};\n        this.handle = null;\n        this._lastSetTapCountTime = 0;\n        this._register(EventUtils.runAndSubscribe(DomUtils.onDidRegisterWindow, ({ window, disposables }) => {\n            disposables.add(DomUtils.addDisposableListener(window.document, 'touchstart', (e) => this.onTouchStart(e), { passive: false }));\n            disposables.add(DomUtils.addDisposableListener(window.document, 'touchend', (e) => this.onTouchEnd(window, e)));\n            disposables.add(DomUtils.addDisposableListener(window.document, 'touchmove', (e) => this.onTouchMove(e), { passive: false }));\n        }, { window: mainWindow, disposables: this._store }));\n    }\n    static addTarget(element) {\n        if (!Gesture.isTouchDevice()) {\n            return Disposable.None;\n        }\n        if (!Gesture.INSTANCE) {\n            Gesture.INSTANCE = markAsSingleton(new Gesture());\n        }\n        const remove = Gesture.INSTANCE.targets.push(element);\n        return toDisposable(remove);\n    }\n    static ignoreTarget(element) {\n        if (!Gesture.isTouchDevice()) {\n            return Disposable.None;\n        }\n        if (!Gesture.INSTANCE) {\n            Gesture.INSTANCE = markAsSingleton(new Gesture());\n        }\n        const remove = Gesture.INSTANCE.ignoreTargets.push(element);\n        return toDisposable(remove);\n    }\n    static isTouchDevice() {\n        // `'ontouchstart' in window` always evaluates to true with typescript's modern typings. This causes `window` to be\n        // `never` later in `window.navigator`. That's why we need the explicit `window as Window` cast\n        return 'ontouchstart' in mainWindow || navigator.maxTouchPoints > 0;\n    }\n    dispose() {\n        if (this.handle) {\n            this.handle.dispose();\n            this.handle = null;\n        }\n        super.dispose();\n    }\n    onTouchStart(e) {\n        const timestamp = Date.now(); // use Date.now() because on FF e.timeStamp is not epoch based.\n        if (this.handle) {\n            this.handle.dispose();\n            this.handle = null;\n        }\n        for (let i = 0, len = e.targetTouches.length; i < len; i++) {\n            const touch = e.targetTouches.item(i);\n            this.activeTouches[touch.identifier] = {\n                id: touch.identifier,\n                initialTarget: touch.target,\n                initialTimeStamp: timestamp,\n                initialPageX: touch.pageX,\n                initialPageY: touch.pageY,\n                rollingTimestamps: [timestamp],\n                rollingPageX: [touch.pageX],\n                rollingPageY: [touch.pageY]\n            };\n            const evt = this.newGestureEvent(EventType.Start, touch.target);\n            evt.pageX = touch.pageX;\n            evt.pageY = touch.pageY;\n            this.dispatchEvent(evt);\n        }\n        if (this.dispatched) {\n            e.preventDefault();\n            e.stopPropagation();\n            this.dispatched = false;\n        }\n    }\n    onTouchEnd(targetWindow, e) {\n        const timestamp = Date.now(); // use Date.now() because on FF e.timeStamp is not epoch based.\n        const activeTouchCount = Object.keys(this.activeTouches).length;\n        for (let i = 0, len = e.changedTouches.length; i < len; i++) {\n            const touch = e.changedTouches.item(i);\n            if (!this.activeTouches.hasOwnProperty(String(touch.identifier))) {\n                console.warn('move of an UNKNOWN touch', touch);\n                continue;\n            }\n            const data = this.activeTouches[touch.identifier], holdTime = Date.now() - data.initialTimeStamp;\n            if (holdTime < Gesture.HOLD_DELAY\n                && Math.abs(data.initialPageX - arrays.tail(data.rollingPageX)) < 30\n                && Math.abs(data.initialPageY - arrays.tail(data.rollingPageY)) < 30) {\n                const evt = this.newGestureEvent(EventType.Tap, data.initialTarget);\n                evt.pageX = arrays.tail(data.rollingPageX);\n                evt.pageY = arrays.tail(data.rollingPageY);\n                this.dispatchEvent(evt);\n            }\n            else if (holdTime >= Gesture.HOLD_DELAY\n                && Math.abs(data.initialPageX - arrays.tail(data.rollingPageX)) < 30\n                && Math.abs(data.initialPageY - arrays.tail(data.rollingPageY)) < 30) {\n                const evt = this.newGestureEvent(EventType.Contextmenu, data.initialTarget);\n                evt.pageX = arrays.tail(data.rollingPageX);\n                evt.pageY = arrays.tail(data.rollingPageY);\n                this.dispatchEvent(evt);\n            }\n            else if (activeTouchCount === 1) {\n                const finalX = arrays.tail(data.rollingPageX);\n                const finalY = arrays.tail(data.rollingPageY);\n                const deltaT = arrays.tail(data.rollingTimestamps) - data.rollingTimestamps[0];\n                const deltaX = finalX - data.rollingPageX[0];\n                const deltaY = finalY - data.rollingPageY[0];\n                // We need to get all the dispatch targets on the start of the inertia event\n                const dispatchTo = [...this.targets].filter(t => data.initialTarget instanceof Node && t.contains(data.initialTarget));\n                this.inertia(targetWindow, dispatchTo, timestamp, // time now\n                Math.abs(deltaX) / deltaT, // speed\n                deltaX > 0 ? 1 : -1, // x direction\n                finalX, // x now\n                Math.abs(deltaY) / deltaT, // y speed\n                deltaY > 0 ? 1 : -1, // y direction\n                finalY // y now\n                );\n            }\n            this.dispatchEvent(this.newGestureEvent(EventType.End, data.initialTarget));\n            // forget about this touch\n            delete this.activeTouches[touch.identifier];\n        }\n        if (this.dispatched) {\n            e.preventDefault();\n            e.stopPropagation();\n            this.dispatched = false;\n        }\n    }\n    newGestureEvent(type, initialTarget) {\n        const event = document.createEvent('CustomEvent');\n        event.initEvent(type, false, true);\n        event.initialTarget = initialTarget;\n        event.tapCount = 0;\n        return event;\n    }\n    dispatchEvent(event) {\n        if (event.type === EventType.Tap) {\n            const currentTime = (new Date()).getTime();\n            let setTapCount = 0;\n            if (currentTime - this._lastSetTapCountTime > Gesture.CLEAR_TAP_COUNT_TIME) {\n                setTapCount = 1;\n            }\n            else {\n                setTapCount = 2;\n            }\n            this._lastSetTapCountTime = currentTime;\n            event.tapCount = setTapCount;\n        }\n        else if (event.type === EventType.Change || event.type === EventType.Contextmenu) {\n            // tap is canceled by scrolling or context menu\n            this._lastSetTapCountTime = 0;\n        }\n        if (event.initialTarget instanceof Node) {\n            for (const ignoreTarget of this.ignoreTargets) {\n                if (ignoreTarget.contains(event.initialTarget)) {\n                    return;\n                }\n            }\n            const targets = [];\n            for (const target of this.targets) {\n                if (target.contains(event.initialTarget)) {\n                    let depth = 0;\n                    let now = event.initialTarget;\n                    while (now && now !== target) {\n                        depth++;\n                        now = now.parentElement;\n                    }\n                    targets.push([depth, target]);\n                }\n            }\n            targets.sort((a, b) => a[0] - b[0]);\n            for (const [_, target] of targets) {\n                target.dispatchEvent(event);\n                this.dispatched = true;\n            }\n        }\n    }\n    inertia(targetWindow, dispatchTo, t1, vX, dirX, x, vY, dirY, y) {\n        this.handle = DomUtils.scheduleAtNextAnimationFrame(targetWindow, () => {\n            const now = Date.now();\n            // velocity: old speed + accel_over_time\n            const deltaT = now - t1;\n            let delta_pos_x = 0, delta_pos_y = 0;\n            let stopped = true;\n            vX += Gesture.SCROLL_FRICTION * deltaT;\n            vY += Gesture.SCROLL_FRICTION * deltaT;\n            if (vX > 0) {\n                stopped = false;\n                delta_pos_x = dirX * vX * deltaT;\n            }\n            if (vY > 0) {\n                stopped = false;\n                delta_pos_y = dirY * vY * deltaT;\n            }\n            // dispatch translation event\n            const evt = this.newGestureEvent(EventType.Change);\n            evt.translationX = delta_pos_x;\n            evt.translationY = delta_pos_y;\n            dispatchTo.forEach(d => d.dispatchEvent(evt));\n            if (!stopped) {\n                this.inertia(targetWindow, dispatchTo, now, vX, dirX, x + delta_pos_x, vY, dirY, y + delta_pos_y);\n            }\n        });\n    }\n    onTouchMove(e) {\n        const timestamp = Date.now(); // use Date.now() because on FF e.timeStamp is not epoch based.\n        for (let i = 0, len = e.changedTouches.length; i < len; i++) {\n            const touch = e.changedTouches.item(i);\n            if (!this.activeTouches.hasOwnProperty(String(touch.identifier))) {\n                console.warn('end of an UNKNOWN touch', touch);\n                continue;\n            }\n            const data = this.activeTouches[touch.identifier];\n            const evt = this.newGestureEvent(EventType.Change, data.initialTarget);\n            evt.translationX = touch.pageX - arrays.tail(data.rollingPageX);\n            evt.translationY = touch.pageY - arrays.tail(data.rollingPageY);\n            evt.pageX = touch.pageX;\n            evt.pageY = touch.pageY;\n            this.dispatchEvent(evt);\n            // only keep a few data points, to average the final speed\n            if (data.rollingPageX.length > 3) {\n                data.rollingPageX.shift();\n                data.rollingPageY.shift();\n                data.rollingTimestamps.shift();\n            }\n            data.rollingPageX.push(touch.pageX);\n            data.rollingPageY.push(touch.pageY);\n            data.rollingTimestamps.push(timestamp);\n        }\n        if (this.dispatched) {\n            e.preventDefault();\n            e.stopPropagation();\n            this.dispatched = false;\n        }\n    }\n}\nGesture.SCROLL_FRICTION = -0.005;\nGesture.HOLD_DELAY = 700;\nGesture.CLEAR_TAP_COUNT_TIME = 400; // ms\n__decorate([\n    memoize\n], Gesture, \"isTouchDevice\", null);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/trustedTypes.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { mainWindow } from './window.js';\nimport { onUnexpectedError } from '../common/errors.js';\nexport function createTrustedTypesPolicy(policyName, policyOptions) {\n    var _a;\n    const monacoEnvironment = globalThis.MonacoEnvironment;\n    if (monacoEnvironment === null || monacoEnvironment === void 0 ? void 0 : monacoEnvironment.createTrustedTypesPolicy) {\n        try {\n            return monacoEnvironment.createTrustedTypesPolicy(policyName, policyOptions);\n        }\n        catch (err) {\n            onUnexpectedError(err);\n            return undefined;\n        }\n    }\n    try {\n        return (_a = mainWindow.trustedTypes) === null || _a === void 0 ? void 0 : _a.createPolicy(policyName, policyOptions);\n    }\n    catch (err) {\n        onUnexpectedError(err);\n        return undefined;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/actionbar/actionViewItems.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { isFirefox } from '../../browser.js';\nimport { DataTransfers } from '../../dnd.js';\nimport { addDisposableListener, EventHelper, EventType } from '../../dom.js';\nimport { EventType as TouchEventType, Gesture } from '../../touch.js';\nimport { getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';\nimport { SelectBox } from '../selectBox/selectBox.js';\nimport { Action, ActionRunner, Separator } from '../../../common/actions.js';\nimport { Disposable } from '../../../common/lifecycle.js';\nimport * as platform from '../../../common/platform.js';\nimport * as types from '../../../common/types.js';\nimport './actionbar.css';\nimport * as nls from '../../../../nls.js';\nimport { getBaseLayerHoverDelegate } from '../hover/hoverDelegate2.js';\nexport class BaseActionViewItem extends Disposable {\n    get action() {\n        return this._action;\n    }\n    constructor(context, action, options = {}) {\n        super();\n        this.options = options;\n        this._context = context || this;\n        this._action = action;\n        if (action instanceof Action) {\n            this._register(action.onDidChange(event => {\n                if (!this.element) {\n                    // we have not been rendered yet, so there\n                    // is no point in updating the UI\n                    return;\n                }\n                this.handleActionChangeEvent(event);\n            }));\n        }\n    }\n    handleActionChangeEvent(event) {\n        if (event.enabled !== undefined) {\n            this.updateEnabled();\n        }\n        if (event.checked !== undefined) {\n            this.updateChecked();\n        }\n        if (event.class !== undefined) {\n            this.updateClass();\n        }\n        if (event.label !== undefined) {\n            this.updateLabel();\n            this.updateTooltip();\n        }\n        if (event.tooltip !== undefined) {\n            this.updateTooltip();\n        }\n    }\n    get actionRunner() {\n        if (!this._actionRunner) {\n            this._actionRunner = this._register(new ActionRunner());\n        }\n        return this._actionRunner;\n    }\n    set actionRunner(actionRunner) {\n        this._actionRunner = actionRunner;\n    }\n    isEnabled() {\n        return this._action.enabled;\n    }\n    setActionContext(newContext) {\n        this._context = newContext;\n    }\n    render(container) {\n        const element = this.element = container;\n        this._register(Gesture.addTarget(container));\n        const enableDragging = this.options && this.options.draggable;\n        if (enableDragging) {\n            container.draggable = true;\n            if (isFirefox) {\n                // Firefox: requires to set a text data transfer to get going\n                this._register(addDisposableListener(container, EventType.DRAG_START, e => { var _a; return (_a = e.dataTransfer) === null || _a === void 0 ? void 0 : _a.setData(DataTransfers.TEXT, this._action.label); }));\n            }\n        }\n        this._register(addDisposableListener(element, TouchEventType.Tap, e => this.onClick(e, true))); // Preserve focus on tap #125470\n        this._register(addDisposableListener(element, EventType.MOUSE_DOWN, e => {\n            if (!enableDragging) {\n                EventHelper.stop(e, true); // do not run when dragging is on because that would disable it\n            }\n            if (this._action.enabled && e.button === 0) {\n                element.classList.add('active');\n            }\n        }));\n        if (platform.isMacintosh) {\n            // macOS: allow to trigger the button when holding Ctrl+key and pressing the\n            // main mouse button. This is for scenarios where e.g. some interaction forces\n            // the Ctrl+key to be pressed and hold but the user still wants to interact\n            // with the actions (for example quick access in quick navigation mode).\n            this._register(addDisposableListener(element, EventType.CONTEXT_MENU, e => {\n                if (e.button === 0 && e.ctrlKey === true) {\n                    this.onClick(e);\n                }\n            }));\n        }\n        this._register(addDisposableListener(element, EventType.CLICK, e => {\n            EventHelper.stop(e, true);\n            // menus do not use the click event\n            if (!(this.options && this.options.isMenu)) {\n                this.onClick(e);\n            }\n        }));\n        this._register(addDisposableListener(element, EventType.DBLCLICK, e => {\n            EventHelper.stop(e, true);\n        }));\n        [EventType.MOUSE_UP, EventType.MOUSE_OUT].forEach(event => {\n            this._register(addDisposableListener(element, event, e => {\n                EventHelper.stop(e);\n                element.classList.remove('active');\n            }));\n        });\n    }\n    onClick(event, preserveFocus = false) {\n        var _a;\n        EventHelper.stop(event, true);\n        const context = types.isUndefinedOrNull(this._context) ? ((_a = this.options) === null || _a === void 0 ? void 0 : _a.useEventAsContext) ? event : { preserveFocus } : this._context;\n        this.actionRunner.run(this._action, context);\n    }\n    // Only set the tabIndex on the element once it is about to get focused\n    // That way this element wont be a tab stop when it is not needed #106441\n    focus() {\n        if (this.element) {\n            this.element.tabIndex = 0;\n            this.element.focus();\n            this.element.classList.add('focused');\n        }\n    }\n    blur() {\n        if (this.element) {\n            this.element.blur();\n            this.element.tabIndex = -1;\n            this.element.classList.remove('focused');\n        }\n    }\n    setFocusable(focusable) {\n        if (this.element) {\n            this.element.tabIndex = focusable ? 0 : -1;\n        }\n    }\n    get trapsArrowNavigation() {\n        return false;\n    }\n    updateEnabled() {\n        // implement in subclass\n    }\n    updateLabel() {\n        // implement in subclass\n    }\n    getClass() {\n        return this.action.class;\n    }\n    getTooltip() {\n        return this.action.tooltip;\n    }\n    updateTooltip() {\n        var _a, _b, _c;\n        if (!this.element) {\n            return;\n        }\n        const title = (_a = this.getTooltip()) !== null && _a !== void 0 ? _a : '';\n        this.updateAriaLabel();\n        if ((_b = this.options.hoverDelegate) === null || _b === void 0 ? void 0 : _b.showNativeHover) {\n            /* While custom hover is not inside custom hover */\n            this.element.title = title;\n        }\n        else {\n            if (!this.customHover && title !== '') {\n                const hoverDelegate = (_c = this.options.hoverDelegate) !== null && _c !== void 0 ? _c : getDefaultHoverDelegate('element');\n                this.customHover = this._store.add(getBaseLayerHoverDelegate().setupUpdatableHover(hoverDelegate, this.element, title));\n            }\n            else if (this.customHover) {\n                this.customHover.update(title);\n            }\n        }\n    }\n    updateAriaLabel() {\n        var _a;\n        if (this.element) {\n            const title = (_a = this.getTooltip()) !== null && _a !== void 0 ? _a : '';\n            this.element.setAttribute('aria-label', title);\n        }\n    }\n    updateClass() {\n        // implement in subclass\n    }\n    updateChecked() {\n        // implement in subclass\n    }\n    dispose() {\n        if (this.element) {\n            this.element.remove();\n            this.element = undefined;\n        }\n        this._context = undefined;\n        super.dispose();\n    }\n}\nexport class ActionViewItem extends BaseActionViewItem {\n    constructor(context, action, options) {\n        super(context, action, options);\n        this.options = options;\n        this.options.icon = options.icon !== undefined ? options.icon : false;\n        this.options.label = options.label !== undefined ? options.label : true;\n        this.cssClass = '';\n    }\n    render(container) {\n        super.render(container);\n        types.assertType(this.element);\n        const label = document.createElement('a');\n        label.classList.add('action-label');\n        label.setAttribute('role', this.getDefaultAriaRole());\n        this.label = label;\n        this.element.appendChild(label);\n        if (this.options.label && this.options.keybinding) {\n            const kbLabel = document.createElement('span');\n            kbLabel.classList.add('keybinding');\n            kbLabel.textContent = this.options.keybinding;\n            this.element.appendChild(kbLabel);\n        }\n        this.updateClass();\n        this.updateLabel();\n        this.updateTooltip();\n        this.updateEnabled();\n        this.updateChecked();\n    }\n    getDefaultAriaRole() {\n        if (this._action.id === Separator.ID) {\n            return 'presentation'; // A separator is a presentation item\n        }\n        else {\n            if (this.options.isMenu) {\n                return 'menuitem';\n            }\n            else {\n                return 'button';\n            }\n        }\n    }\n    // Only set the tabIndex on the element once it is about to get focused\n    // That way this element wont be a tab stop when it is not needed #106441\n    focus() {\n        if (this.label) {\n            this.label.tabIndex = 0;\n            this.label.focus();\n        }\n    }\n    blur() {\n        if (this.label) {\n            this.label.tabIndex = -1;\n        }\n    }\n    setFocusable(focusable) {\n        if (this.label) {\n            this.label.tabIndex = focusable ? 0 : -1;\n        }\n    }\n    updateLabel() {\n        if (this.options.label && this.label) {\n            this.label.textContent = this.action.label;\n        }\n    }\n    getTooltip() {\n        let title = null;\n        if (this.action.tooltip) {\n            title = this.action.tooltip;\n        }\n        else if (!this.options.label && this.action.label && this.options.icon) {\n            title = this.action.label;\n            if (this.options.keybinding) {\n                title = nls.localize({ key: 'titleLabel', comment: ['action title', 'action keybinding'] }, \"{0} ({1})\", title, this.options.keybinding);\n            }\n        }\n        return title !== null && title !== void 0 ? title : undefined;\n    }\n    updateClass() {\n        var _a;\n        if (this.cssClass && this.label) {\n            this.label.classList.remove(...this.cssClass.split(' '));\n        }\n        if (this.options.icon) {\n            this.cssClass = this.getClass();\n            if (this.label) {\n                this.label.classList.add('codicon');\n                if (this.cssClass) {\n                    this.label.classList.add(...this.cssClass.split(' '));\n                }\n            }\n            this.updateEnabled();\n        }\n        else {\n            (_a = this.label) === null || _a === void 0 ? void 0 : _a.classList.remove('codicon');\n        }\n    }\n    updateEnabled() {\n        var _a, _b;\n        if (this.action.enabled) {\n            if (this.label) {\n                this.label.removeAttribute('aria-disabled');\n                this.label.classList.remove('disabled');\n            }\n            (_a = this.element) === null || _a === void 0 ? void 0 : _a.classList.remove('disabled');\n        }\n        else {\n            if (this.label) {\n                this.label.setAttribute('aria-disabled', 'true');\n                this.label.classList.add('disabled');\n            }\n            (_b = this.element) === null || _b === void 0 ? void 0 : _b.classList.add('disabled');\n        }\n    }\n    updateAriaLabel() {\n        var _a;\n        if (this.label) {\n            const title = (_a = this.getTooltip()) !== null && _a !== void 0 ? _a : '';\n            this.label.setAttribute('aria-label', title);\n        }\n    }\n    updateChecked() {\n        if (this.label) {\n            if (this.action.checked !== undefined) {\n                this.label.classList.toggle('checked', this.action.checked);\n                this.label.setAttribute('aria-checked', this.action.checked ? 'true' : 'false');\n                this.label.setAttribute('role', 'checkbox');\n            }\n            else {\n                this.label.classList.remove('checked');\n                this.label.removeAttribute('aria-checked');\n                this.label.setAttribute('role', this.getDefaultAriaRole());\n            }\n        }\n    }\n}\nexport class SelectActionViewItem extends BaseActionViewItem {\n    constructor(ctx, action, options, selected, contextViewProvider, styles, selectBoxOptions) {\n        super(ctx, action);\n        this.selectBox = new SelectBox(options, selected, contextViewProvider, styles, selectBoxOptions);\n        this.selectBox.setFocusable(false);\n        this._register(this.selectBox);\n        this.registerListeners();\n    }\n    select(index) {\n        this.selectBox.select(index);\n    }\n    registerListeners() {\n        this._register(this.selectBox.onDidSelect(e => this.runAction(e.selected, e.index)));\n    }\n    runAction(option, index) {\n        this.actionRunner.run(this._action, this.getActionContext(option, index));\n    }\n    getActionContext(option, index) {\n        return option;\n    }\n    setFocusable(focusable) {\n        this.selectBox.setFocusable(focusable);\n    }\n    focus() {\n        var _a;\n        (_a = this.selectBox) === null || _a === void 0 ? void 0 : _a.focus();\n    }\n    blur() {\n        var _a;\n        (_a = this.selectBox) === null || _a === void 0 ? void 0 : _a.blur();\n    }\n    render(container) {\n        this.selectBox.render(container);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/actionbar/actionbar.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-action-bar {\n\twhite-space: nowrap;\n\theight: 100%;\n}\n\n.monaco-action-bar .actions-container {\n\tdisplay: flex;\n\tmargin: 0 auto;\n\tpadding: 0;\n\theight: 100%;\n\twidth: 100%;\n\talign-items: center;\n}\n\n.monaco-action-bar.vertical .actions-container {\n\tdisplay: inline-block;\n}\n\n.monaco-action-bar .action-item {\n\tdisplay: block;\n\talign-items: center;\n\tjustify-content: center;\n\tcursor: pointer;\n\tposition: relative;  /* DO NOT REMOVE - this is the key to preventing the ghosting icon bug in Chrome 42 */\n}\n\n.monaco-action-bar .action-item.disabled {\n\tcursor: default;\n}\n\n.monaco-action-bar .action-item .icon,\n.monaco-action-bar .action-item .codicon {\n\tdisplay: block;\n}\n\n.monaco-action-bar .action-item .codicon {\n\tdisplay: flex;\n\talign-items: center;\n\twidth: 16px;\n\theight: 16px;\n}\n\n.monaco-action-bar .action-label {\n\tdisplay: flex;\n\tfont-size: 11px;\n\tpadding: 3px;\n\tborder-radius: 5px;\n}\n\n.monaco-action-bar .action-item.disabled .action-label,\n.monaco-action-bar .action-item.disabled .action-label::before,\n.monaco-action-bar .action-item.disabled .action-label:hover {\n\tcolor: var(--vscode-disabledForeground);\n}\n\n/* Vertical actions */\n\n.monaco-action-bar.vertical {\n\ttext-align: left;\n}\n\n.monaco-action-bar.vertical .action-item {\n\tdisplay: block;\n}\n\n.monaco-action-bar.vertical .action-label.separator {\n\tdisplay: block;\n\tborder-bottom: 1px solid #bbb;\n\tpadding-top: 1px;\n\tmargin-left: .8em;\n\tmargin-right: .8em;\n}\n\n.monaco-action-bar .action-item .action-label.separator {\n\twidth: 1px;\n\theight: 16px;\n\tmargin: 5px 4px !important;\n\tcursor: default;\n\tmin-width: 1px;\n\tpadding: 0;\n\tbackground-color: #bbb;\n}\n\n.secondary-actions .monaco-action-bar .action-label {\n\tmargin-left: 6px;\n}\n\n/* Action Items */\n.monaco-action-bar .action-item.select-container {\n\toverflow: hidden; /* somehow the dropdown overflows its container, we prevent it here to not push */\n\tflex: 1;\n\tmax-width: 170px;\n\tmin-width: 60px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin-right: 10px;\n}\n\n.monaco-action-bar .action-item.action-dropdown-item {\n\tdisplay: flex;\n}\n\n.monaco-action-bar .action-item.action-dropdown-item > .action-dropdown-item-separator {\n\tdisplay: flex;\n\talign-items: center;\n\tcursor: default;\n}\n\n.monaco-action-bar .action-item.action-dropdown-item > .action-dropdown-item-separator > div {\n\twidth: 1px;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/actionbar/actionbar.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as DOM from '../../dom.js';\nimport { StandardKeyboardEvent } from '../../keyboardEvent.js';\nimport { ActionViewItem, BaseActionViewItem } from './actionViewItems.js';\nimport { createInstantHoverDelegate } from '../hover/hoverDelegateFactory.js';\nimport { ActionRunner, Separator } from '../../../common/actions.js';\nimport { Emitter } from '../../../common/event.js';\nimport { Disposable, DisposableMap, DisposableStore, dispose } from '../../../common/lifecycle.js';\nimport * as types from '../../../common/types.js';\nimport './actionbar.css';\nexport class ActionBar extends Disposable {\n    constructor(container, options = {}) {\n        var _a, _b, _c, _d, _e, _f, _g;\n        super();\n        this._actionRunnerDisposables = this._register(new DisposableStore());\n        this.viewItemDisposables = this._register(new DisposableMap());\n        // Trigger Key Tracking\n        this.triggerKeyDown = false;\n        this.focusable = true;\n        this._onDidBlur = this._register(new Emitter());\n        this.onDidBlur = this._onDidBlur.event;\n        this._onDidCancel = this._register(new Emitter({ onWillAddFirstListener: () => this.cancelHasListener = true }));\n        this.onDidCancel = this._onDidCancel.event;\n        this.cancelHasListener = false;\n        this._onDidRun = this._register(new Emitter());\n        this.onDidRun = this._onDidRun.event;\n        this._onWillRun = this._register(new Emitter());\n        this.onWillRun = this._onWillRun.event;\n        this.options = options;\n        this._context = (_a = options.context) !== null && _a !== void 0 ? _a : null;\n        this._orientation = (_b = this.options.orientation) !== null && _b !== void 0 ? _b : 0 /* ActionsOrientation.HORIZONTAL */;\n        this._triggerKeys = {\n            keyDown: (_d = (_c = this.options.triggerKeys) === null || _c === void 0 ? void 0 : _c.keyDown) !== null && _d !== void 0 ? _d : false,\n            keys: (_f = (_e = this.options.triggerKeys) === null || _e === void 0 ? void 0 : _e.keys) !== null && _f !== void 0 ? _f : [3 /* KeyCode.Enter */, 10 /* KeyCode.Space */]\n        };\n        this._hoverDelegate = (_g = options.hoverDelegate) !== null && _g !== void 0 ? _g : this._register(createInstantHoverDelegate());\n        if (this.options.actionRunner) {\n            this._actionRunner = this.options.actionRunner;\n        }\n        else {\n            this._actionRunner = new ActionRunner();\n            this._actionRunnerDisposables.add(this._actionRunner);\n        }\n        this._actionRunnerDisposables.add(this._actionRunner.onDidRun(e => this._onDidRun.fire(e)));\n        this._actionRunnerDisposables.add(this._actionRunner.onWillRun(e => this._onWillRun.fire(e)));\n        this.viewItems = [];\n        this.focusedItem = undefined;\n        this.domNode = document.createElement('div');\n        this.domNode.className = 'monaco-action-bar';\n        let previousKeys;\n        let nextKeys;\n        switch (this._orientation) {\n            case 0 /* ActionsOrientation.HORIZONTAL */:\n                previousKeys = [15 /* KeyCode.LeftArrow */];\n                nextKeys = [17 /* KeyCode.RightArrow */];\n                break;\n            case 1 /* ActionsOrientation.VERTICAL */:\n                previousKeys = [16 /* KeyCode.UpArrow */];\n                nextKeys = [18 /* KeyCode.DownArrow */];\n                this.domNode.className += ' vertical';\n                break;\n        }\n        this._register(DOM.addDisposableListener(this.domNode, DOM.EventType.KEY_DOWN, e => {\n            const event = new StandardKeyboardEvent(e);\n            let eventHandled = true;\n            const focusedItem = typeof this.focusedItem === 'number' ? this.viewItems[this.focusedItem] : undefined;\n            if (previousKeys && (event.equals(previousKeys[0]) || event.equals(previousKeys[1]))) {\n                eventHandled = this.focusPrevious();\n            }\n            else if (nextKeys && (event.equals(nextKeys[0]) || event.equals(nextKeys[1]))) {\n                eventHandled = this.focusNext();\n            }\n            else if (event.equals(9 /* KeyCode.Escape */) && this.cancelHasListener) {\n                this._onDidCancel.fire();\n            }\n            else if (event.equals(14 /* KeyCode.Home */)) {\n                eventHandled = this.focusFirst();\n            }\n            else if (event.equals(13 /* KeyCode.End */)) {\n                eventHandled = this.focusLast();\n            }\n            else if (event.equals(2 /* KeyCode.Tab */) && focusedItem instanceof BaseActionViewItem && focusedItem.trapsArrowNavigation) {\n                eventHandled = this.focusNext();\n            }\n            else if (this.isTriggerKeyEvent(event)) {\n                // Staying out of the else branch even if not triggered\n                if (this._triggerKeys.keyDown) {\n                    this.doTrigger(event);\n                }\n                else {\n                    this.triggerKeyDown = true;\n                }\n            }\n            else {\n                eventHandled = false;\n            }\n            if (eventHandled) {\n                event.preventDefault();\n                event.stopPropagation();\n            }\n        }));\n        this._register(DOM.addDisposableListener(this.domNode, DOM.EventType.KEY_UP, e => {\n            const event = new StandardKeyboardEvent(e);\n            // Run action on Enter/Space\n            if (this.isTriggerKeyEvent(event)) {\n                if (!this._triggerKeys.keyDown && this.triggerKeyDown) {\n                    this.triggerKeyDown = false;\n                    this.doTrigger(event);\n                }\n                event.preventDefault();\n                event.stopPropagation();\n            }\n            // Recompute focused item\n            else if (event.equals(2 /* KeyCode.Tab */) || event.equals(1024 /* KeyMod.Shift */ | 2 /* KeyCode.Tab */) || event.equals(16 /* KeyCode.UpArrow */) || event.equals(18 /* KeyCode.DownArrow */) || event.equals(15 /* KeyCode.LeftArrow */) || event.equals(17 /* KeyCode.RightArrow */)) {\n                this.updateFocusedItem();\n            }\n        }));\n        this.focusTracker = this._register(DOM.trackFocus(this.domNode));\n        this._register(this.focusTracker.onDidBlur(() => {\n            if (DOM.getActiveElement() === this.domNode || !DOM.isAncestor(DOM.getActiveElement(), this.domNode)) {\n                this._onDidBlur.fire();\n                this.previouslyFocusedItem = this.focusedItem;\n                this.focusedItem = undefined;\n                this.triggerKeyDown = false;\n            }\n        }));\n        this._register(this.focusTracker.onDidFocus(() => this.updateFocusedItem()));\n        this.actionsList = document.createElement('ul');\n        this.actionsList.className = 'actions-container';\n        if (this.options.highlightToggledItems) {\n            this.actionsList.classList.add('highlight-toggled');\n        }\n        this.actionsList.setAttribute('role', this.options.ariaRole || 'toolbar');\n        if (this.options.ariaLabel) {\n            this.actionsList.setAttribute('aria-label', this.options.ariaLabel);\n        }\n        this.domNode.appendChild(this.actionsList);\n        container.appendChild(this.domNode);\n    }\n    refreshRole() {\n        if (this.length() >= 1) {\n            this.actionsList.setAttribute('role', this.options.ariaRole || 'toolbar');\n        }\n        else {\n            this.actionsList.setAttribute('role', 'presentation');\n        }\n    }\n    // Some action bars should not be focusable at times\n    // When an action bar is not focusable make sure to make all the elements inside it not focusable\n    // When an action bar is focusable again, make sure the first item can be focused\n    setFocusable(focusable) {\n        this.focusable = focusable;\n        if (this.focusable) {\n            const firstEnabled = this.viewItems.find(vi => vi instanceof BaseActionViewItem && vi.isEnabled());\n            if (firstEnabled instanceof BaseActionViewItem) {\n                firstEnabled.setFocusable(true);\n            }\n        }\n        else {\n            this.viewItems.forEach(vi => {\n                if (vi instanceof BaseActionViewItem) {\n                    vi.setFocusable(false);\n                }\n            });\n        }\n    }\n    isTriggerKeyEvent(event) {\n        let ret = false;\n        this._triggerKeys.keys.forEach(keyCode => {\n            ret = ret || event.equals(keyCode);\n        });\n        return ret;\n    }\n    updateFocusedItem() {\n        var _a, _b;\n        for (let i = 0; i < this.actionsList.children.length; i++) {\n            const elem = this.actionsList.children[i];\n            if (DOM.isAncestor(DOM.getActiveElement(), elem)) {\n                this.focusedItem = i;\n                (_b = (_a = this.viewItems[this.focusedItem]) === null || _a === void 0 ? void 0 : _a.showHover) === null || _b === void 0 ? void 0 : _b.call(_a);\n                break;\n            }\n        }\n    }\n    get context() {\n        return this._context;\n    }\n    set context(context) {\n        this._context = context;\n        this.viewItems.forEach(i => i.setActionContext(context));\n    }\n    get actionRunner() {\n        return this._actionRunner;\n    }\n    set actionRunner(actionRunner) {\n        this._actionRunner = actionRunner;\n        // when setting a new `IActionRunner` make sure to dispose old listeners and\n        // start to forward events from the new listener\n        this._actionRunnerDisposables.clear();\n        this._actionRunnerDisposables.add(this._actionRunner.onDidRun(e => this._onDidRun.fire(e)));\n        this._actionRunnerDisposables.add(this._actionRunner.onWillRun(e => this._onWillRun.fire(e)));\n        this.viewItems.forEach(item => item.actionRunner = actionRunner);\n    }\n    getContainer() {\n        return this.domNode;\n    }\n    getAction(indexOrElement) {\n        var _a;\n        // by index\n        if (typeof indexOrElement === 'number') {\n            return (_a = this.viewItems[indexOrElement]) === null || _a === void 0 ? void 0 : _a.action;\n        }\n        // by element\n        if (DOM.isHTMLElement(indexOrElement)) {\n            while (indexOrElement.parentElement !== this.actionsList) {\n                if (!indexOrElement.parentElement) {\n                    return undefined;\n                }\n                indexOrElement = indexOrElement.parentElement;\n            }\n            for (let i = 0; i < this.actionsList.childNodes.length; i++) {\n                if (this.actionsList.childNodes[i] === indexOrElement) {\n                    return this.viewItems[i].action;\n                }\n            }\n        }\n        return undefined;\n    }\n    push(arg, options = {}) {\n        const actions = Array.isArray(arg) ? arg : [arg];\n        let index = types.isNumber(options.index) ? options.index : null;\n        actions.forEach((action) => {\n            const actionViewItemElement = document.createElement('li');\n            actionViewItemElement.className = 'action-item';\n            actionViewItemElement.setAttribute('role', 'presentation');\n            let item;\n            const viewItemOptions = { hoverDelegate: this._hoverDelegate, ...options };\n            if (this.options.actionViewItemProvider) {\n                item = this.options.actionViewItemProvider(action, viewItemOptions);\n            }\n            if (!item) {\n                item = new ActionViewItem(this.context, action, viewItemOptions);\n            }\n            // Prevent native context menu on actions\n            if (!this.options.allowContextMenu) {\n                this.viewItemDisposables.set(item, DOM.addDisposableListener(actionViewItemElement, DOM.EventType.CONTEXT_MENU, (e) => {\n                    DOM.EventHelper.stop(e, true);\n                }));\n            }\n            item.actionRunner = this._actionRunner;\n            item.setActionContext(this.context);\n            item.render(actionViewItemElement);\n            if (this.focusable && item instanceof BaseActionViewItem && this.viewItems.length === 0) {\n                // We need to allow for the first enabled item to be focused on using tab navigation #106441\n                item.setFocusable(true);\n            }\n            if (index === null || index < 0 || index >= this.actionsList.children.length) {\n                this.actionsList.appendChild(actionViewItemElement);\n                this.viewItems.push(item);\n            }\n            else {\n                this.actionsList.insertBefore(actionViewItemElement, this.actionsList.children[index]);\n                this.viewItems.splice(index, 0, item);\n                index++;\n            }\n        });\n        if (typeof this.focusedItem === 'number') {\n            // After a clear actions might be re-added to simply toggle some actions. We should preserve focus #97128\n            this.focus(this.focusedItem);\n        }\n        this.refreshRole();\n    }\n    clear() {\n        if (this.isEmpty()) {\n            return;\n        }\n        this.viewItems = dispose(this.viewItems);\n        this.viewItemDisposables.clearAndDisposeAll();\n        DOM.clearNode(this.actionsList);\n        this.refreshRole();\n    }\n    length() {\n        return this.viewItems.length;\n    }\n    isEmpty() {\n        return this.viewItems.length === 0;\n    }\n    focus(arg) {\n        let selectFirst = false;\n        let index = undefined;\n        if (arg === undefined) {\n            selectFirst = true;\n        }\n        else if (typeof arg === 'number') {\n            index = arg;\n        }\n        else if (typeof arg === 'boolean') {\n            selectFirst = arg;\n        }\n        if (selectFirst && typeof this.focusedItem === 'undefined') {\n            const firstEnabled = this.viewItems.findIndex(item => item.isEnabled());\n            // Focus the first enabled item\n            this.focusedItem = firstEnabled === -1 ? undefined : firstEnabled;\n            this.updateFocus(undefined, undefined, true);\n        }\n        else {\n            if (index !== undefined) {\n                this.focusedItem = index;\n            }\n            this.updateFocus(undefined, undefined, true);\n        }\n    }\n    focusFirst() {\n        this.focusedItem = this.length() - 1;\n        return this.focusNext(true);\n    }\n    focusLast() {\n        this.focusedItem = 0;\n        return this.focusPrevious(true);\n    }\n    focusNext(forceLoop) {\n        if (typeof this.focusedItem === 'undefined') {\n            this.focusedItem = this.viewItems.length - 1;\n        }\n        else if (this.viewItems.length <= 1) {\n            return false;\n        }\n        const startIndex = this.focusedItem;\n        let item;\n        do {\n            if (!forceLoop && this.options.preventLoopNavigation && this.focusedItem + 1 >= this.viewItems.length) {\n                this.focusedItem = startIndex;\n                return false;\n            }\n            this.focusedItem = (this.focusedItem + 1) % this.viewItems.length;\n            item = this.viewItems[this.focusedItem];\n        } while (this.focusedItem !== startIndex && ((this.options.focusOnlyEnabledItems && !item.isEnabled()) || item.action.id === Separator.ID));\n        this.updateFocus();\n        return true;\n    }\n    focusPrevious(forceLoop) {\n        if (typeof this.focusedItem === 'undefined') {\n            this.focusedItem = 0;\n        }\n        else if (this.viewItems.length <= 1) {\n            return false;\n        }\n        const startIndex = this.focusedItem;\n        let item;\n        do {\n            this.focusedItem = this.focusedItem - 1;\n            if (this.focusedItem < 0) {\n                if (!forceLoop && this.options.preventLoopNavigation) {\n                    this.focusedItem = startIndex;\n                    return false;\n                }\n                this.focusedItem = this.viewItems.length - 1;\n            }\n            item = this.viewItems[this.focusedItem];\n        } while (this.focusedItem !== startIndex && ((this.options.focusOnlyEnabledItems && !item.isEnabled()) || item.action.id === Separator.ID));\n        this.updateFocus(true);\n        return true;\n    }\n    updateFocus(fromRight, preventScroll, forceFocus = false) {\n        var _a, _b;\n        if (typeof this.focusedItem === 'undefined') {\n            this.actionsList.focus({ preventScroll });\n        }\n        if (this.previouslyFocusedItem !== undefined && this.previouslyFocusedItem !== this.focusedItem) {\n            (_a = this.viewItems[this.previouslyFocusedItem]) === null || _a === void 0 ? void 0 : _a.blur();\n        }\n        const actionViewItem = this.focusedItem !== undefined ? this.viewItems[this.focusedItem] : undefined;\n        if (actionViewItem) {\n            let focusItem = true;\n            if (!types.isFunction(actionViewItem.focus)) {\n                focusItem = false;\n            }\n            if (this.options.focusOnlyEnabledItems && types.isFunction(actionViewItem.isEnabled) && !actionViewItem.isEnabled()) {\n                focusItem = false;\n            }\n            if (actionViewItem.action.id === Separator.ID) {\n                focusItem = false;\n            }\n            if (!focusItem) {\n                this.actionsList.focus({ preventScroll });\n                this.previouslyFocusedItem = undefined;\n            }\n            else if (forceFocus || this.previouslyFocusedItem !== this.focusedItem) {\n                actionViewItem.focus(fromRight);\n                this.previouslyFocusedItem = this.focusedItem;\n            }\n            if (focusItem) {\n                (_b = actionViewItem.showHover) === null || _b === void 0 ? void 0 : _b.call(actionViewItem);\n            }\n        }\n    }\n    doTrigger(event) {\n        if (typeof this.focusedItem === 'undefined') {\n            return; //nothing to focus\n        }\n        // trigger action\n        const actionViewItem = this.viewItems[this.focusedItem];\n        if (actionViewItem instanceof BaseActionViewItem) {\n            const context = (actionViewItem._context === null || actionViewItem._context === undefined) ? event : actionViewItem._context;\n            this.run(actionViewItem._action, context);\n        }\n    }\n    async run(action, context) {\n        await this._actionRunner.run(action, context);\n    }\n    dispose() {\n        this._context = undefined;\n        this.viewItems = dispose(this.viewItems);\n        this.getContainer().remove();\n        super.dispose();\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/aria/aria.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-aria-container {\n\tposition: absolute; /* try to hide from window but not from screen readers */\n\tleft:-999em;\n}"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/aria/aria.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../dom.js';\nimport './aria.css';\n// Use a max length since we are inserting the whole msg in the DOM and that can cause browsers to freeze for long messages #94233\nconst MAX_MESSAGE_LENGTH = 20000;\nlet ariaContainer;\nlet alertContainer;\nlet alertContainer2;\nlet statusContainer;\nlet statusContainer2;\nexport function setARIAContainer(parent) {\n    ariaContainer = document.createElement('div');\n    ariaContainer.className = 'monaco-aria-container';\n    const createAlertContainer = () => {\n        const element = document.createElement('div');\n        element.className = 'monaco-alert';\n        element.setAttribute('role', 'alert');\n        element.setAttribute('aria-atomic', 'true');\n        ariaContainer.appendChild(element);\n        return element;\n    };\n    alertContainer = createAlertContainer();\n    alertContainer2 = createAlertContainer();\n    const createStatusContainer = () => {\n        const element = document.createElement('div');\n        element.className = 'monaco-status';\n        element.setAttribute('aria-live', 'polite');\n        element.setAttribute('aria-atomic', 'true');\n        ariaContainer.appendChild(element);\n        return element;\n    };\n    statusContainer = createStatusContainer();\n    statusContainer2 = createStatusContainer();\n    parent.appendChild(ariaContainer);\n}\n/**\n * Given the provided message, will make sure that it is read as alert to screen readers.\n */\nexport function alert(msg) {\n    if (!ariaContainer) {\n        return;\n    }\n    // Use alternate containers such that duplicated messages get read out by screen readers #99466\n    if (alertContainer.textContent !== msg) {\n        dom.clearNode(alertContainer2);\n        insertMessage(alertContainer, msg);\n    }\n    else {\n        dom.clearNode(alertContainer);\n        insertMessage(alertContainer2, msg);\n    }\n}\n/**\n * Given the provided message, will make sure that it is read as status to screen readers.\n */\nexport function status(msg) {\n    if (!ariaContainer) {\n        return;\n    }\n    if (statusContainer.textContent !== msg) {\n        dom.clearNode(statusContainer2);\n        insertMessage(statusContainer, msg);\n    }\n    else {\n        dom.clearNode(statusContainer);\n        insertMessage(statusContainer2, msg);\n    }\n}\nfunction insertMessage(target, msg) {\n    dom.clearNode(target);\n    if (msg.length > MAX_MESSAGE_LENGTH) {\n        msg = msg.substr(0, MAX_MESSAGE_LENGTH);\n    }\n    target.textContent = msg;\n    // See https://www.paciellogroup.com/blog/2012/06/html5-accessibility-chops-aria-rolealert-browser-support/\n    target.style.visibility = 'hidden';\n    target.style.visibility = 'visible';\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/breadcrumbs/breadcrumbsWidget.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-breadcrumbs {\n\tuser-select: none;\n\t-webkit-user-select: none;\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\tjustify-content: flex-start;\n\toutline-style: none;\n}\n\n.monaco-breadcrumbs .monaco-breadcrumb-item {\n\tdisplay: flex;\n\talign-items: center;\n\tflex: 0 1 auto;\n\twhite-space: nowrap;\n\tcursor: pointer;\n\talign-self: center;\n\theight: 100%;\n\toutline: none;\n}\n.monaco-breadcrumbs.disabled .monaco-breadcrumb-item {\n\tcursor: default;\n}\n\n.monaco-breadcrumbs .monaco-breadcrumb-item .codicon-breadcrumb-separator {\n\tcolor: inherit;\n}\n\n.monaco-breadcrumbs .monaco-breadcrumb-item:first-of-type::before {\n\tcontent: ' ';\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/breadcrumbs/breadcrumbsWidget.js",
    "content": "import './breadcrumbsWidget.css';\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/button/button.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-text-button {\n\tbox-sizing: border-box;\n\tdisplay: flex;\n\twidth: 100%;\n\tpadding: 4px;\n\tborder-radius: 2px;\n\ttext-align: center;\n\tcursor: pointer;\n\tjustify-content: center;\n\talign-items: center;\n\tborder: 1px solid var(--vscode-button-border, transparent);\n\tline-height: 18px;\n}\n\n.monaco-text-button:focus {\n\toutline-offset: 2px !important;\n}\n\n.monaco-text-button:hover {\n\ttext-decoration: none !important;\n}\n\n.monaco-button.disabled:focus,\n.monaco-button.disabled {\n\topacity: 0.4 !important;\n\tcursor: default;\n}\n\n.monaco-text-button .codicon {\n\tmargin: 0 0.2em;\n\tcolor: inherit !important;\n}\n\n.monaco-text-button.monaco-text-button-with-short-label {\n\tflex-direction: row;\n\tflex-wrap: wrap;\n\tpadding: 0 4px;\n\toverflow: hidden;\n\theight: 28px;\n}\n\n.monaco-text-button.monaco-text-button-with-short-label > .monaco-button-label {\n\tflex-basis: 100%;\n}\n\n.monaco-text-button.monaco-text-button-with-short-label > .monaco-button-label-short {\n\tflex-grow: 1;\n\twidth: 0;\n\toverflow: hidden;\n}\n\n.monaco-text-button.monaco-text-button-with-short-label > .monaco-button-label,\n.monaco-text-button.monaco-text-button-with-short-label > .monaco-button-label-short {\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\tfont-weight: normal;\n\tfont-style: inherit;\n\tpadding: 4px 0;\n}\n\n.monaco-button-dropdown {\n\tdisplay: flex;\n\tcursor: pointer;\n}\n\n.monaco-button-dropdown.disabled {\n\tcursor: default;\n}\n\n.monaco-button-dropdown > .monaco-button:focus {\n\toutline-offset: -1px !important;\n}\n\n.monaco-button-dropdown.disabled > .monaco-button.disabled,\n.monaco-button-dropdown.disabled > .monaco-button.disabled:focus,\n.monaco-button-dropdown.disabled > .monaco-button-dropdown-separator {\n\topacity: 0.4 !important;\n}\n\n.monaco-button-dropdown > .monaco-button.monaco-text-button {\n\tborder-right-width: 0 !important;\n}\n\n.monaco-button-dropdown .monaco-button-dropdown-separator {\n\tpadding: 4px 0;\n\tcursor: default;\n}\n\n.monaco-button-dropdown .monaco-button-dropdown-separator > div {\n\theight: 100%;\n\twidth: 1px;\n}\n\n.monaco-button-dropdown > .monaco-button.monaco-dropdown-button {\n\tborder: 1px solid var(--vscode-button-border, transparent);\n\tborder-left-width: 0 !important;\n\tborder-radius: 0 2px 2px 0;\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.monaco-button-dropdown > .monaco-button.monaco-text-button {\n\tborder-radius: 2px 0 0 2px;\n}\n\n.monaco-description-button {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tmargin: 4px 5px; /* allows button focus outline to be visible */\n}\n\n.monaco-description-button .monaco-button-description {\n\tfont-style: italic;\n\tfont-size: 11px;\n\tpadding: 4px 20px;\n}\n\n.monaco-description-button .monaco-button-label,\n.monaco-description-button .monaco-button-description {\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n}\n\n.monaco-description-button .monaco-button-label > .codicon,\n.monaco-description-button .monaco-button-description > .codicon {\n\tmargin: 0 0.2em;\n\tcolor: inherit !important;\n}\n\n/* default color styles - based on CSS variables */\n\n.monaco-button.default-colors,\n.monaco-button-dropdown.default-colors > .monaco-button{\n\tcolor: var(--vscode-button-foreground);\n\tbackground-color: var(--vscode-button-background);\n}\n\n.monaco-button.default-colors:hover,\n.monaco-button-dropdown.default-colors > .monaco-button:hover {\n\tbackground-color: var(--vscode-button-hoverBackground);\n}\n\n.monaco-button.default-colors.secondary,\n.monaco-button-dropdown.default-colors > .monaco-button.secondary {\n\tcolor: var(--vscode-button-secondaryForeground);\n\tbackground-color: var(--vscode-button-secondaryBackground);\n}\n\n.monaco-button.default-colors.secondary:hover,\n.monaco-button-dropdown.default-colors > .monaco-button.secondary:hover {\n\tbackground-color: var(--vscode-button-secondaryHoverBackground);\n}\n\n.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator {\n\tbackground-color: var(--vscode-button-background);\n\tborder-top: 1px solid var(--vscode-button-border);\n\tborder-bottom: 1px solid var(--vscode-button-border);\n}\n\n.monaco-button-dropdown.default-colors .monaco-button.secondary + .monaco-button-dropdown-separator {\n\tbackground-color: var(--vscode-button-secondaryBackground);\n}\n\n.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator > div {\n\tbackground-color: var(--vscode-button-separator);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/button/button.js",
    "content": "import { addDisposableListener, EventHelper, EventType, reset, trackFocus } from '../../dom.js';\nimport { sanitize } from '../../dompurify/dompurify.js';\nimport { StandardKeyboardEvent } from '../../keyboardEvent.js';\nimport { renderMarkdown, renderStringAsPlaintext } from '../../markdownRenderer.js';\nimport { Gesture, EventType as TouchEventType } from '../../touch.js';\nimport { getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';\nimport { renderLabelWithIcons } from '../iconLabel/iconLabels.js';\nimport { Color } from '../../../common/color.js';\nimport { Emitter } from '../../../common/event.js';\nimport { isMarkdownString, markdownStringEqual } from '../../../common/htmlContent.js';\nimport { Disposable } from '../../../common/lifecycle.js';\nimport { ThemeIcon } from '../../../common/themables.js';\nimport './button.css';\nimport { getBaseLayerHoverDelegate } from '../hover/hoverDelegate2.js';\nexport const unthemedButtonStyles = {\n    buttonBackground: '#0E639C',\n    buttonHoverBackground: '#006BB3',\n    buttonSeparator: Color.white.toString(),\n    buttonForeground: Color.white.toString(),\n    buttonBorder: undefined,\n    buttonSecondaryBackground: undefined,\n    buttonSecondaryForeground: undefined,\n    buttonSecondaryHoverBackground: undefined\n};\nexport class Button extends Disposable {\n    get onDidClick() { return this._onDidClick.event; }\n    constructor(container, options) {\n        super();\n        this._label = '';\n        this._onDidClick = this._register(new Emitter());\n        this._onDidEscape = this._register(new Emitter());\n        this.options = options;\n        this._element = document.createElement('a');\n        this._element.classList.add('monaco-button');\n        this._element.tabIndex = 0;\n        this._element.setAttribute('role', 'button');\n        this._element.classList.toggle('secondary', !!options.secondary);\n        const background = options.secondary ? options.buttonSecondaryBackground : options.buttonBackground;\n        const foreground = options.secondary ? options.buttonSecondaryForeground : options.buttonForeground;\n        this._element.style.color = foreground || '';\n        this._element.style.backgroundColor = background || '';\n        if (options.supportShortLabel) {\n            this._labelShortElement = document.createElement('div');\n            this._labelShortElement.classList.add('monaco-button-label-short');\n            this._element.appendChild(this._labelShortElement);\n            this._labelElement = document.createElement('div');\n            this._labelElement.classList.add('monaco-button-label');\n            this._element.appendChild(this._labelElement);\n            this._element.classList.add('monaco-text-button-with-short-label');\n        }\n        if (typeof options.title === 'string') {\n            this.setTitle(options.title);\n        }\n        if (typeof options.ariaLabel === 'string') {\n            this._element.setAttribute('aria-label', options.ariaLabel);\n        }\n        container.appendChild(this._element);\n        this._register(Gesture.addTarget(this._element));\n        [EventType.CLICK, TouchEventType.Tap].forEach(eventType => {\n            this._register(addDisposableListener(this._element, eventType, e => {\n                if (!this.enabled) {\n                    EventHelper.stop(e);\n                    return;\n                }\n                this._onDidClick.fire(e);\n            }));\n        });\n        this._register(addDisposableListener(this._element, EventType.KEY_DOWN, e => {\n            const event = new StandardKeyboardEvent(e);\n            let eventHandled = false;\n            if (this.enabled && (event.equals(3 /* KeyCode.Enter */) || event.equals(10 /* KeyCode.Space */))) {\n                this._onDidClick.fire(e);\n                eventHandled = true;\n            }\n            else if (event.equals(9 /* KeyCode.Escape */)) {\n                this._onDidEscape.fire(e);\n                this._element.blur();\n                eventHandled = true;\n            }\n            if (eventHandled) {\n                EventHelper.stop(event, true);\n            }\n        }));\n        this._register(addDisposableListener(this._element, EventType.MOUSE_OVER, e => {\n            if (!this._element.classList.contains('disabled')) {\n                this.updateBackground(true);\n            }\n        }));\n        this._register(addDisposableListener(this._element, EventType.MOUSE_OUT, e => {\n            this.updateBackground(false); // restore standard styles\n        }));\n        // Also set hover background when button is focused for feedback\n        this.focusTracker = this._register(trackFocus(this._element));\n        this._register(this.focusTracker.onDidFocus(() => { if (this.enabled) {\n            this.updateBackground(true);\n        } }));\n        this._register(this.focusTracker.onDidBlur(() => { if (this.enabled) {\n            this.updateBackground(false);\n        } }));\n    }\n    dispose() {\n        super.dispose();\n        this._element.remove();\n    }\n    getContentElements(content) {\n        const elements = [];\n        for (let segment of renderLabelWithIcons(content)) {\n            if (typeof (segment) === 'string') {\n                segment = segment.trim();\n                // Ignore empty segment\n                if (segment === '') {\n                    continue;\n                }\n                // Convert string segments to <span> nodes\n                const node = document.createElement('span');\n                node.textContent = segment;\n                elements.push(node);\n            }\n            else {\n                elements.push(segment);\n            }\n        }\n        return elements;\n    }\n    updateBackground(hover) {\n        let background;\n        if (this.options.secondary) {\n            background = hover ? this.options.buttonSecondaryHoverBackground : this.options.buttonSecondaryBackground;\n        }\n        else {\n            background = hover ? this.options.buttonHoverBackground : this.options.buttonBackground;\n        }\n        if (background) {\n            this._element.style.backgroundColor = background;\n        }\n    }\n    get element() {\n        return this._element;\n    }\n    set label(value) {\n        var _a;\n        if (this._label === value) {\n            return;\n        }\n        if (isMarkdownString(this._label) && isMarkdownString(value) && markdownStringEqual(this._label, value)) {\n            return;\n        }\n        this._element.classList.add('monaco-text-button');\n        const labelElement = this.options.supportShortLabel ? this._labelElement : this._element;\n        if (isMarkdownString(value)) {\n            const rendered = renderMarkdown(value, { inline: true });\n            rendered.dispose();\n            // Don't include outer `<p>`\n            const root = (_a = rendered.element.querySelector('p')) === null || _a === void 0 ? void 0 : _a.innerHTML;\n            if (root) {\n                // Only allow a very limited set of inline html tags\n                const sanitized = sanitize(root, { ADD_TAGS: ['b', 'i', 'u', 'code', 'span'], ALLOWED_ATTR: ['class'], RETURN_TRUSTED_TYPE: true });\n                labelElement.innerHTML = sanitized;\n            }\n            else {\n                reset(labelElement);\n            }\n        }\n        else {\n            if (this.options.supportIcons) {\n                reset(labelElement, ...this.getContentElements(value));\n            }\n            else {\n                labelElement.textContent = value;\n            }\n        }\n        let title = '';\n        if (typeof this.options.title === 'string') {\n            title = this.options.title;\n        }\n        else if (this.options.title) {\n            title = renderStringAsPlaintext(value);\n        }\n        this.setTitle(title);\n        if (typeof this.options.ariaLabel === 'string') {\n            this._element.setAttribute('aria-label', this.options.ariaLabel);\n        }\n        else if (this.options.ariaLabel) {\n            this._element.setAttribute('aria-label', title);\n        }\n        this._label = value;\n    }\n    get label() {\n        return this._label;\n    }\n    set icon(icon) {\n        this._element.classList.add(...ThemeIcon.asClassNameArray(icon));\n    }\n    set enabled(value) {\n        if (value) {\n            this._element.classList.remove('disabled');\n            this._element.setAttribute('aria-disabled', String(false));\n            this._element.tabIndex = 0;\n        }\n        else {\n            this._element.classList.add('disabled');\n            this._element.setAttribute('aria-disabled', String(true));\n        }\n    }\n    get enabled() {\n        return !this._element.classList.contains('disabled');\n    }\n    setTitle(title) {\n        var _a;\n        if (!this._hover && title !== '') {\n            this._hover = this._register(getBaseLayerHoverDelegate().setupUpdatableHover((_a = this.options.hoverDelegate) !== null && _a !== void 0 ? _a : getDefaultHoverDelegate('mouse'), this._element, title));\n        }\n        else if (this._hover) {\n            this._hover.update(title);\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/codicons/codicon/codicon-modifiers.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.codicon-wrench-subaction {\n\topacity: 0.5;\n}\n\n@keyframes codicon-spin {\n\t100% {\n\t\ttransform:rotate(360deg);\n\t}\n}\n\n.codicon-sync.codicon-modifier-spin,\n.codicon-loading.codicon-modifier-spin,\n.codicon-gear.codicon-modifier-spin,\n.codicon-notebook-state-executing.codicon-modifier-spin {\n\t/* Use steps to throttle FPS to reduce CPU usage */\n\tanimation: codicon-spin 1.5s steps(30) infinite;\n}\n\n.codicon-modifier-disabled {\n\topacity: 0.4;\n}\n\n/* custom speed & easing for loading icon */\n.codicon-loading,\n.codicon-tree-item-loading::before {\n\tanimation-duration: 1s !important;\n\tanimation-timing-function: cubic-bezier(0.53, 0.21, 0.29, 0.67) !important;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/codicons/codicon/codicon.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n@font-face {\n\tfont-family: \"codicon\";\n\tfont-display: block;\n\tsrc: url(./codicon.ttf) format(\"truetype\");\n}\n\n.codicon[class*='codicon-'] {\n\tfont: normal normal normal 16px/1 codicon;\n\tdisplay: inline-block;\n\ttext-decoration: none;\n\ttext-rendering: auto;\n\ttext-align: center;\n\ttext-transform: none;\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n\tuser-select: none;\n\t-webkit-user-select: none;\n}\n\n/* icon rules are dynamically created by the platform theme service (see iconsStyleSheet.ts) */\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/codicons/codiconStyles.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './codicon/codicon.css';\nimport './codicon/codicon-modifiers.css';\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/contextview/contextview.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.context-view {\n\tposition: absolute;\n}\n\n.context-view.fixed {\n\tall: initial;\n\tfont-family: inherit;\n\tfont-size: 13px;\n\tposition: fixed;\n\tcolor: inherit;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/contextview/contextview.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { BrowserFeatures } from '../../canIUse.js';\nimport * as DOM from '../../dom.js';\nimport { Disposable, DisposableStore, toDisposable } from '../../../common/lifecycle.js';\nimport * as platform from '../../../common/platform.js';\nimport { Range } from '../../../common/range.js';\nimport './contextview.css';\nexport function isAnchor(obj) {\n    const anchor = obj;\n    return !!anchor && typeof anchor.x === 'number' && typeof anchor.y === 'number';\n}\nexport var LayoutAnchorMode;\n(function (LayoutAnchorMode) {\n    LayoutAnchorMode[LayoutAnchorMode[\"AVOID\"] = 0] = \"AVOID\";\n    LayoutAnchorMode[LayoutAnchorMode[\"ALIGN\"] = 1] = \"ALIGN\";\n})(LayoutAnchorMode || (LayoutAnchorMode = {}));\n/**\n * Lays out a one dimensional view next to an anchor in a viewport.\n *\n * @returns The view offset within the viewport.\n */\nexport function layout(viewportSize, viewSize, anchor) {\n    const layoutAfterAnchorBoundary = anchor.mode === LayoutAnchorMode.ALIGN ? anchor.offset : anchor.offset + anchor.size;\n    const layoutBeforeAnchorBoundary = anchor.mode === LayoutAnchorMode.ALIGN ? anchor.offset + anchor.size : anchor.offset;\n    if (anchor.position === 0 /* LayoutAnchorPosition.Before */) {\n        if (viewSize <= viewportSize - layoutAfterAnchorBoundary) {\n            return layoutAfterAnchorBoundary; // happy case, lay it out after the anchor\n        }\n        if (viewSize <= layoutBeforeAnchorBoundary) {\n            return layoutBeforeAnchorBoundary - viewSize; // ok case, lay it out before the anchor\n        }\n        return Math.max(viewportSize - viewSize, 0); // sad case, lay it over the anchor\n    }\n    else {\n        if (viewSize <= layoutBeforeAnchorBoundary) {\n            return layoutBeforeAnchorBoundary - viewSize; // happy case, lay it out before the anchor\n        }\n        if (viewSize <= viewportSize - layoutAfterAnchorBoundary) {\n            return layoutAfterAnchorBoundary; // ok case, lay it out after the anchor\n        }\n        return 0; // sad case, lay it over the anchor\n    }\n}\nexport class ContextView extends Disposable {\n    constructor(container, domPosition) {\n        super();\n        this.container = null;\n        this.useFixedPosition = false;\n        this.useShadowDOM = false;\n        this.delegate = null;\n        this.toDisposeOnClean = Disposable.None;\n        this.toDisposeOnSetContainer = Disposable.None;\n        this.shadowRoot = null;\n        this.shadowRootHostElement = null;\n        this.view = DOM.$('.context-view');\n        DOM.hide(this.view);\n        this.setContainer(container, domPosition);\n        this._register(toDisposable(() => this.setContainer(null, 1 /* ContextViewDOMPosition.ABSOLUTE */)));\n    }\n    setContainer(container, domPosition) {\n        var _a;\n        this.useFixedPosition = domPosition !== 1 /* ContextViewDOMPosition.ABSOLUTE */;\n        const usedShadowDOM = this.useShadowDOM;\n        this.useShadowDOM = domPosition === 3 /* ContextViewDOMPosition.FIXED_SHADOW */;\n        if (container === this.container && usedShadowDOM === this.useShadowDOM) {\n            return; // container is the same and no shadow DOM usage has changed\n        }\n        if (this.container) {\n            this.toDisposeOnSetContainer.dispose();\n            if (this.shadowRoot) {\n                this.shadowRoot.removeChild(this.view);\n                this.shadowRoot = null;\n                (_a = this.shadowRootHostElement) === null || _a === void 0 ? void 0 : _a.remove();\n                this.shadowRootHostElement = null;\n            }\n            else {\n                this.container.removeChild(this.view);\n            }\n            this.container = null;\n        }\n        if (container) {\n            this.container = container;\n            if (this.useShadowDOM) {\n                this.shadowRootHostElement = DOM.$('.shadow-root-host');\n                this.container.appendChild(this.shadowRootHostElement);\n                this.shadowRoot = this.shadowRootHostElement.attachShadow({ mode: 'open' });\n                const style = document.createElement('style');\n                style.textContent = SHADOW_ROOT_CSS;\n                this.shadowRoot.appendChild(style);\n                this.shadowRoot.appendChild(this.view);\n                this.shadowRoot.appendChild(DOM.$('slot'));\n            }\n            else {\n                this.container.appendChild(this.view);\n            }\n            const toDisposeOnSetContainer = new DisposableStore();\n            ContextView.BUBBLE_UP_EVENTS.forEach(event => {\n                toDisposeOnSetContainer.add(DOM.addStandardDisposableListener(this.container, event, e => {\n                    this.onDOMEvent(e, false);\n                }));\n            });\n            ContextView.BUBBLE_DOWN_EVENTS.forEach(event => {\n                toDisposeOnSetContainer.add(DOM.addStandardDisposableListener(this.container, event, e => {\n                    this.onDOMEvent(e, true);\n                }, true));\n            });\n            this.toDisposeOnSetContainer = toDisposeOnSetContainer;\n        }\n    }\n    show(delegate) {\n        var _a, _b, _c;\n        if (this.isVisible()) {\n            this.hide();\n        }\n        // Show static box\n        DOM.clearNode(this.view);\n        this.view.className = 'context-view monaco-component';\n        this.view.style.top = '0px';\n        this.view.style.left = '0px';\n        this.view.style.zIndex = `${2575 + ((_a = delegate.layer) !== null && _a !== void 0 ? _a : 0)}`;\n        this.view.style.position = this.useFixedPosition ? 'fixed' : 'absolute';\n        DOM.show(this.view);\n        // Render content\n        this.toDisposeOnClean = delegate.render(this.view) || Disposable.None;\n        // Set active delegate\n        this.delegate = delegate;\n        // Layout\n        this.doLayout();\n        // Focus\n        (_c = (_b = this.delegate).focus) === null || _c === void 0 ? void 0 : _c.call(_b);\n    }\n    getViewElement() {\n        return this.view;\n    }\n    layout() {\n        var _a, _b;\n        if (!this.isVisible()) {\n            return;\n        }\n        if (this.delegate.canRelayout === false && !(platform.isIOS && BrowserFeatures.pointerEvents)) {\n            this.hide();\n            return;\n        }\n        (_b = (_a = this.delegate) === null || _a === void 0 ? void 0 : _a.layout) === null || _b === void 0 ? void 0 : _b.call(_a);\n        this.doLayout();\n    }\n    doLayout() {\n        // Check that we still have a delegate - this.delegate.layout may have hidden\n        if (!this.isVisible()) {\n            return;\n        }\n        // Get anchor\n        const anchor = this.delegate.getAnchor();\n        // Compute around\n        let around;\n        // Get the element's position and size (to anchor the view)\n        if (DOM.isHTMLElement(anchor)) {\n            const elementPosition = DOM.getDomNodePagePosition(anchor);\n            // In areas where zoom is applied to the element or its ancestors, we need to adjust the size of the element\n            // e.g. The title bar has counter zoom behavior meaning it applies the inverse of zoom level.\n            // Window Zoom Level: 1.5, Title Bar Zoom: 1/1.5, Size Multiplier: 1.5\n            const zoom = DOM.getDomNodeZoomLevel(anchor);\n            around = {\n                top: elementPosition.top * zoom,\n                left: elementPosition.left * zoom,\n                width: elementPosition.width * zoom,\n                height: elementPosition.height * zoom\n            };\n        }\n        else if (isAnchor(anchor)) {\n            around = {\n                top: anchor.y,\n                left: anchor.x,\n                width: anchor.width || 1,\n                height: anchor.height || 2\n            };\n        }\n        else {\n            around = {\n                top: anchor.posy,\n                left: anchor.posx,\n                // We are about to position the context view where the mouse\n                // cursor is. To prevent the view being exactly under the mouse\n                // when showing and thus potentially triggering an action within,\n                // we treat the mouse location like a small sized block element.\n                width: 2,\n                height: 2\n            };\n        }\n        const viewSizeWidth = DOM.getTotalWidth(this.view);\n        const viewSizeHeight = DOM.getTotalHeight(this.view);\n        const anchorPosition = this.delegate.anchorPosition || 0 /* AnchorPosition.BELOW */;\n        const anchorAlignment = this.delegate.anchorAlignment || 0 /* AnchorAlignment.LEFT */;\n        const anchorAxisAlignment = this.delegate.anchorAxisAlignment || 0 /* AnchorAxisAlignment.VERTICAL */;\n        let top;\n        let left;\n        const activeWindow = DOM.getActiveWindow();\n        if (anchorAxisAlignment === 0 /* AnchorAxisAlignment.VERTICAL */) {\n            const verticalAnchor = { offset: around.top - activeWindow.pageYOffset, size: around.height, position: anchorPosition === 0 /* AnchorPosition.BELOW */ ? 0 /* LayoutAnchorPosition.Before */ : 1 /* LayoutAnchorPosition.After */ };\n            const horizontalAnchor = { offset: around.left, size: around.width, position: anchorAlignment === 0 /* AnchorAlignment.LEFT */ ? 0 /* LayoutAnchorPosition.Before */ : 1 /* LayoutAnchorPosition.After */, mode: LayoutAnchorMode.ALIGN };\n            top = layout(activeWindow.innerHeight, viewSizeHeight, verticalAnchor) + activeWindow.pageYOffset;\n            // if view intersects vertically with anchor,  we must avoid the anchor\n            if (Range.intersects({ start: top, end: top + viewSizeHeight }, { start: verticalAnchor.offset, end: verticalAnchor.offset + verticalAnchor.size })) {\n                horizontalAnchor.mode = LayoutAnchorMode.AVOID;\n            }\n            left = layout(activeWindow.innerWidth, viewSizeWidth, horizontalAnchor);\n        }\n        else {\n            const horizontalAnchor = { offset: around.left, size: around.width, position: anchorAlignment === 0 /* AnchorAlignment.LEFT */ ? 0 /* LayoutAnchorPosition.Before */ : 1 /* LayoutAnchorPosition.After */ };\n            const verticalAnchor = { offset: around.top, size: around.height, position: anchorPosition === 0 /* AnchorPosition.BELOW */ ? 0 /* LayoutAnchorPosition.Before */ : 1 /* LayoutAnchorPosition.After */, mode: LayoutAnchorMode.ALIGN };\n            left = layout(activeWindow.innerWidth, viewSizeWidth, horizontalAnchor);\n            // if view intersects horizontally with anchor, we must avoid the anchor\n            if (Range.intersects({ start: left, end: left + viewSizeWidth }, { start: horizontalAnchor.offset, end: horizontalAnchor.offset + horizontalAnchor.size })) {\n                verticalAnchor.mode = LayoutAnchorMode.AVOID;\n            }\n            top = layout(activeWindow.innerHeight, viewSizeHeight, verticalAnchor) + activeWindow.pageYOffset;\n        }\n        this.view.classList.remove('top', 'bottom', 'left', 'right');\n        this.view.classList.add(anchorPosition === 0 /* AnchorPosition.BELOW */ ? 'bottom' : 'top');\n        this.view.classList.add(anchorAlignment === 0 /* AnchorAlignment.LEFT */ ? 'left' : 'right');\n        this.view.classList.toggle('fixed', this.useFixedPosition);\n        const containerPosition = DOM.getDomNodePagePosition(this.container);\n        this.view.style.top = `${top - (this.useFixedPosition ? DOM.getDomNodePagePosition(this.view).top : containerPosition.top)}px`;\n        this.view.style.left = `${left - (this.useFixedPosition ? DOM.getDomNodePagePosition(this.view).left : containerPosition.left)}px`;\n        this.view.style.width = 'initial';\n    }\n    hide(data) {\n        const delegate = this.delegate;\n        this.delegate = null;\n        if (delegate === null || delegate === void 0 ? void 0 : delegate.onHide) {\n            delegate.onHide(data);\n        }\n        this.toDisposeOnClean.dispose();\n        DOM.hide(this.view);\n    }\n    isVisible() {\n        return !!this.delegate;\n    }\n    onDOMEvent(e, onCapture) {\n        if (this.delegate) {\n            if (this.delegate.onDOMEvent) {\n                this.delegate.onDOMEvent(e, DOM.getWindow(e).document.activeElement);\n            }\n            else if (onCapture && !DOM.isAncestor(e.target, this.container)) {\n                this.hide();\n            }\n        }\n    }\n    dispose() {\n        this.hide();\n        super.dispose();\n    }\n}\nContextView.BUBBLE_UP_EVENTS = ['click', 'keydown', 'focus', 'blur'];\nContextView.BUBBLE_DOWN_EVENTS = ['click'];\nconst SHADOW_ROOT_CSS = /* css */ `\n\t:host {\n\t\tall: initial; /* 1st rule so subsequent properties are reset. */\n\t}\n\n\t.codicon[class*='codicon-'] {\n\t\tfont: normal normal normal 16px/1 codicon;\n\t\tdisplay: inline-block;\n\t\ttext-decoration: none;\n\t\ttext-rendering: auto;\n\t\ttext-align: center;\n\t\t-webkit-font-smoothing: antialiased;\n\t\t-moz-osx-font-smoothing: grayscale;\n\t\tuser-select: none;\n\t\t-webkit-user-select: none;\n\t\t-ms-user-select: none;\n\t}\n\n\t:host {\n\t\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe WPC\", \"Segoe UI\", \"HelveticaNeue-Light\", system-ui, \"Ubuntu\", \"Droid Sans\", sans-serif;\n\t}\n\n\t:host-context(.mac) { font-family: -apple-system, BlinkMacSystemFont, sans-serif; }\n\t:host-context(.mac:lang(zh-Hans)) { font-family: -apple-system, BlinkMacSystemFont, \"PingFang SC\", \"Hiragino Sans GB\", sans-serif; }\n\t:host-context(.mac:lang(zh-Hant)) { font-family: -apple-system, BlinkMacSystemFont, \"PingFang TC\", sans-serif; }\n\t:host-context(.mac:lang(ja)) { font-family: -apple-system, BlinkMacSystemFont, \"Hiragino Kaku Gothic Pro\", sans-serif; }\n\t:host-context(.mac:lang(ko)) { font-family: -apple-system, BlinkMacSystemFont, \"Nanum Gothic\", \"Apple SD Gothic Neo\", \"AppleGothic\", sans-serif; }\n\n\t:host-context(.windows) { font-family: \"Segoe WPC\", \"Segoe UI\", sans-serif; }\n\t:host-context(.windows:lang(zh-Hans)) { font-family: \"Segoe WPC\", \"Segoe UI\", \"Microsoft YaHei\", sans-serif; }\n\t:host-context(.windows:lang(zh-Hant)) { font-family: \"Segoe WPC\", \"Segoe UI\", \"Microsoft Jhenghei\", sans-serif; }\n\t:host-context(.windows:lang(ja)) { font-family: \"Segoe WPC\", \"Segoe UI\", \"Yu Gothic UI\", \"Meiryo UI\", sans-serif; }\n\t:host-context(.windows:lang(ko)) { font-family: \"Segoe WPC\", \"Segoe UI\", \"Malgun Gothic\", \"Dotom\", sans-serif; }\n\n\t:host-context(.linux) { font-family: system-ui, \"Ubuntu\", \"Droid Sans\", sans-serif; }\n\t:host-context(.linux:lang(zh-Hans)) { font-family: system-ui, \"Ubuntu\", \"Droid Sans\", \"Source Han Sans SC\", \"Source Han Sans CN\", \"Source Han Sans\", sans-serif; }\n\t:host-context(.linux:lang(zh-Hant)) { font-family: system-ui, \"Ubuntu\", \"Droid Sans\", \"Source Han Sans TC\", \"Source Han Sans TW\", \"Source Han Sans\", sans-serif; }\n\t:host-context(.linux:lang(ja)) { font-family: system-ui, \"Ubuntu\", \"Droid Sans\", \"Source Han Sans J\", \"Source Han Sans JP\", \"Source Han Sans\", sans-serif; }\n\t:host-context(.linux:lang(ko)) { font-family: system-ui, \"Ubuntu\", \"Droid Sans\", \"Source Han Sans K\", \"Source Han Sans JR\", \"Source Han Sans\", \"UnDotum\", \"FBaekmuk Gulim\", sans-serif; }\n`;\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/countBadge/countBadge.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-count-badge {\n\tpadding: 3px 6px;\n\tborder-radius: 11px;\n\tfont-size: 11px;\n\tmin-width: 18px;\n\tmin-height: 18px;\n\tline-height: 11px;\n\tfont-weight: normal;\n\ttext-align: center;\n\tdisplay: inline-block;\n\tbox-sizing: border-box;\n}\n\n.monaco-count-badge.long {\n\tpadding: 2px 3px;\n\tborder-radius: 2px;\n\tmin-height: auto;\n\tline-height: normal;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/countBadge/countBadge.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { $, append } from '../../dom.js';\nimport { format } from '../../../common/strings.js';\nimport './countBadge.css';\nexport class CountBadge {\n    constructor(container, options, styles) {\n        this.options = options;\n        this.styles = styles;\n        this.count = 0;\n        this.element = append(container, $('.monaco-count-badge'));\n        this.countFormat = this.options.countFormat || '{0}';\n        this.titleFormat = this.options.titleFormat || '';\n        this.setCount(this.options.count || 0);\n    }\n    setCount(count) {\n        this.count = count;\n        this.render();\n    }\n    setTitleFormat(titleFormat) {\n        this.titleFormat = titleFormat;\n        this.render();\n    }\n    render() {\n        var _a, _b;\n        this.element.textContent = format(this.countFormat, this.count);\n        this.element.title = format(this.titleFormat, this.count);\n        this.element.style.backgroundColor = (_a = this.styles.badgeBackground) !== null && _a !== void 0 ? _a : '';\n        this.element.style.color = (_b = this.styles.badgeForeground) !== null && _b !== void 0 ? _b : '';\n        if (this.styles.badgeBorder) {\n            this.element.style.border = `1px solid ${this.styles.badgeBorder}`;\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/dialog/dialog.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n/** Dialog: Modal Block */\n.monaco-dialog-modal-block {\n\tposition: fixed;\n\theight: 100%;\n\twidth: 100%;\n\tleft:0;\n\ttop:0;\n\tz-index: 2600;\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n}\n\n.monaco-dialog-modal-block.dimmed {\n\tbackground: rgba(0, 0, 0, 0.3);\n}\n\n/** Dialog: Container */\n.monaco-dialog-box {\n\tdisplay: flex;\n\tflex-direction: column-reverse;\n\twidth: min-content;\n\tmin-width: 500px;\n\tmax-width: 90vw;\n\tmin-height: 75px;\n\tpadding: 10px;\n\ttransform: translate3d(0px, 0px, 0px);\n}\n\n/** Dialog: Title Actions Row */\n.monaco-dialog-box .dialog-toolbar-row {\n\theight: 22px;\n\tpadding-bottom: 4px;\n}\n\n.monaco-dialog-box .dialog-toolbar-row .actions-container {\n\tjustify-content: flex-end;\n}\n\n/** Dialog: Message Row */\n.monaco-dialog-box .dialog-message-row {\n\tdisplay: flex;\n\tflex-grow: 1;\n\talign-items: center;\n\tpadding: 0 10px;\n}\n\n.monaco-dialog-box .dialog-message-row > .dialog-icon.codicon {\n\tflex: 0 0 48px;\n\theight: 48px;\n\talign-self: baseline;\n\tfont-size: 48px;\n}\n\n/** Dialog: Message Container */\n.monaco-dialog-box .dialog-message-row .dialog-message-container {\n\tdisplay: flex;\n\tflex-direction: column;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\tpadding-left: 24px;\n\tuser-select: text;\n\t-webkit-user-select: text;\n\tword-wrap: break-word; /* never overflow long words, but break to next line */\n\twhite-space: normal;\n}\n\n/** Dialog: Message */\n.monaco-dialog-box .dialog-message-row .dialog-message-container .dialog-message {\n\tline-height: 22px;\n\tfont-size: 18px;\n\tflex: 1; /* let the message always grow */\n\twhite-space: normal;\n\tword-wrap: break-word; /* never overflow long words, but break to next line */\n\tmin-height: 48px; /* matches icon height */\n\tmargin-bottom: 8px;\n\tdisplay: flex;\n\talign-items: center;\n}\n\n/** Dialog: Details */\n.monaco-dialog-box .dialog-message-row .dialog-message-container .dialog-message-detail {\n\tline-height: 22px;\n\tflex: 1; /* let the message always grow */\n}\n\n.monaco-dialog-box .dialog-message-row .dialog-message-container .dialog-message a:focus {\n\toutline-width: 1px;\n\toutline-style: solid;\n}\n\n/** Dialog: Checkbox */\n.monaco-dialog-box .dialog-message-row .dialog-message-container .dialog-checkbox-row {\n\tpadding: 15px 0px 0px;\n\tdisplay: flex;\n}\n\n.monaco-dialog-box .dialog-message-row .dialog-message-container .dialog-checkbox-row .dialog-checkbox-message {\n\tcursor: pointer;\n\tuser-select: none;\n\t-webkit-user-select: none;\n}\n\n/** Dialog: Input */\n.monaco-dialog-box .dialog-message-row .dialog-message-container .dialog-message-input {\n\tpadding: 15px 0px 0px;\n\tdisplay: flex;\n}\n\n.monaco-dialog-box .dialog-message-row .dialog-message-container .dialog-message-input .monaco-inputbox {\n\tflex: 1;\n}\n\n/** Dialog: File Path */\n.monaco-dialog-box code {\n\tfont-family: var(--monaco-monospace-font);\n}\n\n/** Dialog: Buttons Row */\n.monaco-dialog-box > .dialog-buttons-row {\n\tdisplay: flex;\n\talign-items: center;\n\tpadding-right: 1px;\n\toverflow: hidden; /* buttons row should never overflow */\n}\n\n.monaco-dialog-box > .dialog-buttons-row {\n\tdisplay: flex;\n\twhite-space: nowrap;\n\tpadding: 20px 10px 10px;\n}\n\n/** Dialog: Buttons */\n.monaco-dialog-box > .dialog-buttons-row > .dialog-buttons {\n\tdisplay: flex;\n\twidth: 100%;\n\tjustify-content: flex-end;\n\toverflow: hidden;\n\tmargin-left: 67px; /* for long buttons, force align with text */\n}\n\n.monaco-dialog-box > .dialog-buttons-row > .dialog-buttons > .monaco-button {\n\twidth: fit-content;\n\tpadding: 5px 10px;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\tmargin: 4px 5px; /* allows button focus outline to be visible */\n\toutline-offset: 2px !important;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/dialog/dialog.js",
    "content": "import './dialog.css';\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/dropdown/dropdown.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-dropdown {\n\theight: 100%;\n\tpadding: 0;\n}\n\n.monaco-dropdown > .dropdown-label {\n\tcursor: pointer;\n\theight: 100%;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.monaco-dropdown > .dropdown-label > .action-label.disabled {\n\tcursor: default;\n}\n\n.monaco-dropdown-with-primary {\n\tdisplay: flex !important;\n\tflex-direction: row;\n\tborder-radius: 5px;\n}\n\n.monaco-dropdown-with-primary > .action-container > .action-label {\n\tmargin-right: 0;\n}\n\n.monaco-dropdown-with-primary > .dropdown-action-container > .monaco-dropdown > .dropdown-label .codicon[class*='codicon-'] {\n\tfont-size: 12px;\n\tpadding-left: 0px;\n\tpadding-right: 0px;\n\tline-height: 16px;\n\tmargin-left: -3px;\n}\n\n.monaco-dropdown-with-primary > .dropdown-action-container > .monaco-dropdown > .dropdown-label > .action-label {\n\tdisplay: block;\n\tbackground-size: 16px;\n\tbackground-position: center center;\n\tbackground-repeat: no-repeat;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/dropdown/dropdown.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { $, addDisposableListener, append, EventHelper, EventType, isMouseEvent } from '../../dom.js';\nimport { StandardKeyboardEvent } from '../../keyboardEvent.js';\nimport { EventType as GestureEventType, Gesture } from '../../touch.js';\nimport { ActionRunner } from '../../../common/actions.js';\nimport { Emitter } from '../../../common/event.js';\nimport './dropdown.css';\nclass BaseDropdown extends ActionRunner {\n    constructor(container, options) {\n        super();\n        this._onDidChangeVisibility = this._register(new Emitter());\n        this.onDidChangeVisibility = this._onDidChangeVisibility.event;\n        this._element = append(container, $('.monaco-dropdown'));\n        this._label = append(this._element, $('.dropdown-label'));\n        let labelRenderer = options.labelRenderer;\n        if (!labelRenderer) {\n            labelRenderer = (container) => {\n                container.textContent = options.label || '';\n                return null;\n            };\n        }\n        for (const event of [EventType.CLICK, EventType.MOUSE_DOWN, GestureEventType.Tap]) {\n            this._register(addDisposableListener(this.element, event, e => EventHelper.stop(e, true))); // prevent default click behaviour to trigger\n        }\n        for (const event of [EventType.MOUSE_DOWN, GestureEventType.Tap]) {\n            this._register(addDisposableListener(this._label, event, e => {\n                if (isMouseEvent(e) && (e.detail > 1 || e.button !== 0)) {\n                    // prevent right click trigger to allow separate context menu (https://github.com/microsoft/vscode/issues/151064)\n                    // prevent multiple clicks to open multiple context menus (https://github.com/microsoft/vscode/issues/41363)\n                    return;\n                }\n                if (this.visible) {\n                    this.hide();\n                }\n                else {\n                    this.show();\n                }\n            }));\n        }\n        this._register(addDisposableListener(this._label, EventType.KEY_UP, e => {\n            const event = new StandardKeyboardEvent(e);\n            if (event.equals(3 /* KeyCode.Enter */) || event.equals(10 /* KeyCode.Space */)) {\n                EventHelper.stop(e, true); // https://github.com/microsoft/vscode/issues/57997\n                if (this.visible) {\n                    this.hide();\n                }\n                else {\n                    this.show();\n                }\n            }\n        }));\n        const cleanupFn = labelRenderer(this._label);\n        if (cleanupFn) {\n            this._register(cleanupFn);\n        }\n        this._register(Gesture.addTarget(this._label));\n    }\n    get element() {\n        return this._element;\n    }\n    show() {\n        if (!this.visible) {\n            this.visible = true;\n            this._onDidChangeVisibility.fire(true);\n        }\n    }\n    hide() {\n        if (this.visible) {\n            this.visible = false;\n            this._onDidChangeVisibility.fire(false);\n        }\n    }\n    dispose() {\n        super.dispose();\n        this.hide();\n        if (this.boxContainer) {\n            this.boxContainer.remove();\n            this.boxContainer = undefined;\n        }\n        if (this.contents) {\n            this.contents.remove();\n            this.contents = undefined;\n        }\n        if (this._label) {\n            this._label.remove();\n            this._label = undefined;\n        }\n    }\n}\nexport class DropdownMenu extends BaseDropdown {\n    constructor(container, _options) {\n        super(container, _options);\n        this._options = _options;\n        this._actions = [];\n        this.actions = _options.actions || [];\n    }\n    set menuOptions(options) {\n        this._menuOptions = options;\n    }\n    get menuOptions() {\n        return this._menuOptions;\n    }\n    get actions() {\n        if (this._options.actionProvider) {\n            return this._options.actionProvider.getActions();\n        }\n        return this._actions;\n    }\n    set actions(actions) {\n        this._actions = actions;\n    }\n    show() {\n        super.show();\n        this.element.classList.add('active');\n        this._options.contextMenuProvider.showContextMenu({\n            getAnchor: () => this.element,\n            getActions: () => this.actions,\n            getActionsContext: () => this.menuOptions ? this.menuOptions.context : null,\n            getActionViewItem: (action, options) => this.menuOptions && this.menuOptions.actionViewItemProvider ? this.menuOptions.actionViewItemProvider(action, options) : undefined,\n            getKeyBinding: action => this.menuOptions && this.menuOptions.getKeyBinding ? this.menuOptions.getKeyBinding(action) : undefined,\n            getMenuClassName: () => this._options.menuClassName || '',\n            onHide: () => this.onHide(),\n            actionRunner: this.menuOptions ? this.menuOptions.actionRunner : undefined,\n            anchorAlignment: this.menuOptions ? this.menuOptions.anchorAlignment : 0 /* AnchorAlignment.LEFT */,\n            domForShadowRoot: this._options.menuAsChild ? this.element : undefined,\n            skipTelemetry: this._options.skipTelemetry\n        });\n    }\n    hide() {\n        super.hide();\n    }\n    onHide() {\n        this.hide();\n        this.element.classList.remove('active');\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/dropdown/dropdownActionViewItem.js",
    "content": "import { $, append } from '../../dom.js';\nimport { BaseActionViewItem } from '../actionbar/actionViewItems.js';\nimport { DropdownMenu } from './dropdown.js';\nimport { Emitter } from '../../../common/event.js';\nimport './dropdown.css';\nimport { getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';\nimport { getBaseLayerHoverDelegate } from '../hover/hoverDelegate2.js';\nexport class DropdownMenuActionViewItem extends BaseActionViewItem {\n    constructor(action, menuActionsOrProvider, contextMenuProvider, options = Object.create(null)) {\n        super(null, action, options);\n        this.actionItem = null;\n        this._onDidChangeVisibility = this._register(new Emitter());\n        this.onDidChangeVisibility = this._onDidChangeVisibility.event;\n        this.menuActionsOrProvider = menuActionsOrProvider;\n        this.contextMenuProvider = contextMenuProvider;\n        this.options = options;\n        if (this.options.actionRunner) {\n            this.actionRunner = this.options.actionRunner;\n        }\n    }\n    render(container) {\n        this.actionItem = container;\n        const labelRenderer = (el) => {\n            var _a;\n            this.element = append(el, $('a.action-label'));\n            let classNames = [];\n            if (typeof this.options.classNames === 'string') {\n                classNames = this.options.classNames.split(/\\s+/g).filter(s => !!s);\n            }\n            else if (this.options.classNames) {\n                classNames = this.options.classNames;\n            }\n            // todo@aeschli: remove codicon, should come through `this.options.classNames`\n            if (!classNames.find(c => c === 'icon')) {\n                classNames.push('codicon');\n            }\n            this.element.classList.add(...classNames);\n            this.element.setAttribute('role', 'button');\n            this.element.setAttribute('aria-haspopup', 'true');\n            this.element.setAttribute('aria-expanded', 'false');\n            if (this._action.label) {\n                this._register(getBaseLayerHoverDelegate().setupUpdatableHover((_a = this.options.hoverDelegate) !== null && _a !== void 0 ? _a : getDefaultHoverDelegate('mouse'), this.element, this._action.label));\n            }\n            this.element.ariaLabel = this._action.label || '';\n            return null;\n        };\n        const isActionsArray = Array.isArray(this.menuActionsOrProvider);\n        const options = {\n            contextMenuProvider: this.contextMenuProvider,\n            labelRenderer: labelRenderer,\n            menuAsChild: this.options.menuAsChild,\n            actions: isActionsArray ? this.menuActionsOrProvider : undefined,\n            actionProvider: isActionsArray ? undefined : this.menuActionsOrProvider,\n            skipTelemetry: this.options.skipTelemetry\n        };\n        this.dropdownMenu = this._register(new DropdownMenu(container, options));\n        this._register(this.dropdownMenu.onDidChangeVisibility(visible => {\n            var _a;\n            (_a = this.element) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-expanded', `${visible}`);\n            this._onDidChangeVisibility.fire(visible);\n        }));\n        this.dropdownMenu.menuOptions = {\n            actionViewItemProvider: this.options.actionViewItemProvider,\n            actionRunner: this.actionRunner,\n            getKeyBinding: this.options.keybindingProvider,\n            context: this._context\n        };\n        if (this.options.anchorAlignmentProvider) {\n            const that = this;\n            this.dropdownMenu.menuOptions = {\n                ...this.dropdownMenu.menuOptions,\n                get anchorAlignment() {\n                    return that.options.anchorAlignmentProvider();\n                }\n            };\n        }\n        this.updateTooltip();\n        this.updateEnabled();\n    }\n    getTooltip() {\n        let title = null;\n        if (this.action.tooltip) {\n            title = this.action.tooltip;\n        }\n        else if (this.action.label) {\n            title = this.action.label;\n        }\n        return title !== null && title !== void 0 ? title : undefined;\n    }\n    setActionContext(newContext) {\n        super.setActionContext(newContext);\n        if (this.dropdownMenu) {\n            if (this.dropdownMenu.menuOptions) {\n                this.dropdownMenu.menuOptions.context = newContext;\n            }\n            else {\n                this.dropdownMenu.menuOptions = { context: newContext };\n            }\n        }\n    }\n    show() {\n        var _a;\n        (_a = this.dropdownMenu) === null || _a === void 0 ? void 0 : _a.show();\n    }\n    updateEnabled() {\n        var _a, _b;\n        const disabled = !this.action.enabled;\n        (_a = this.actionItem) === null || _a === void 0 ? void 0 : _a.classList.toggle('disabled', disabled);\n        (_b = this.element) === null || _b === void 0 ? void 0 : _b.classList.toggle('disabled', disabled);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/findinput/findInput.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/* ---------- Find input ---------- */\n\n.monaco-findInput {\n\tposition: relative;\n}\n\n.monaco-findInput .monaco-inputbox {\n\tfont-size: 13px;\n\twidth: 100%;\n}\n\n.monaco-findInput > .controls {\n\tposition: absolute;\n\ttop: 3px;\n\tright: 2px;\n}\n\n.vs .monaco-findInput.disabled {\n\tbackground-color: #E1E1E1;\n}\n\n/* Theming */\n.vs-dark .monaco-findInput.disabled {\n\tbackground-color: #333;\n}\n\n/* Highlighting */\n.monaco-findInput.highlight-0 .controls,\n.hc-light .monaco-findInput.highlight-0 .controls {\n\tanimation: monaco-findInput-highlight-0 100ms linear 0s;\n}\n\n.monaco-findInput.highlight-1 .controls,\n.hc-light .monaco-findInput.highlight-1 .controls {\n\tanimation: monaco-findInput-highlight-1 100ms linear 0s;\n}\n\n.hc-black .monaco-findInput.highlight-0 .controls,\n.vs-dark  .monaco-findInput.highlight-0 .controls {\n\tanimation: monaco-findInput-highlight-dark-0 100ms linear 0s;\n}\n\n.hc-black .monaco-findInput.highlight-1 .controls,\n.vs-dark  .monaco-findInput.highlight-1 .controls {\n\tanimation: monaco-findInput-highlight-dark-1 100ms linear 0s;\n}\n\n@keyframes monaco-findInput-highlight-0 {\n\t0% { background: rgba(253, 255, 0, 0.8); }\n\t100% { background: transparent; }\n}\n@keyframes monaco-findInput-highlight-1 {\n\t0% { background: rgba(253, 255, 0, 0.8); }\n\t/* Made intentionally different such that the CSS minifier does not collapse the two animations into a single one*/\n\t99% { background: transparent; }\n}\n\n@keyframes monaco-findInput-highlight-dark-0 {\n\t0% { background: rgba(255, 255, 255, 0.44); }\n\t100% { background: transparent; }\n}\n@keyframes monaco-findInput-highlight-dark-1 {\n\t0% { background: rgba(255, 255, 255, 0.44); }\n\t/* Made intentionally different such that the CSS minifier does not collapse the two animations into a single one*/\n\t99% { background: transparent; }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/findinput/findInput.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../dom.js';\nimport { CaseSensitiveToggle, RegexToggle, WholeWordsToggle } from './findInputToggles.js';\nimport { HistoryInputBox } from '../inputbox/inputBox.js';\nimport { Widget } from '../widget.js';\nimport { Emitter } from '../../../common/event.js';\nimport './findInput.css';\nimport * as nls from '../../../../nls.js';\nimport { DisposableStore, MutableDisposable } from '../../../common/lifecycle.js';\nimport { createInstantHoverDelegate } from '../hover/hoverDelegateFactory.js';\nconst NLS_DEFAULT_LABEL = nls.localize('defaultLabel', \"input\");\nexport class FindInput extends Widget {\n    constructor(parent, contextViewProvider, options) {\n        super();\n        this.fixFocusOnOptionClickEnabled = true;\n        this.imeSessionInProgress = false;\n        this.additionalTogglesDisposables = this._register(new MutableDisposable());\n        this.additionalToggles = [];\n        this._onDidOptionChange = this._register(new Emitter());\n        this.onDidOptionChange = this._onDidOptionChange.event;\n        this._onKeyDown = this._register(new Emitter());\n        this.onKeyDown = this._onKeyDown.event;\n        this._onMouseDown = this._register(new Emitter());\n        this.onMouseDown = this._onMouseDown.event;\n        this._onInput = this._register(new Emitter());\n        this._onKeyUp = this._register(new Emitter());\n        this._onCaseSensitiveKeyDown = this._register(new Emitter());\n        this.onCaseSensitiveKeyDown = this._onCaseSensitiveKeyDown.event;\n        this._onRegexKeyDown = this._register(new Emitter());\n        this.onRegexKeyDown = this._onRegexKeyDown.event;\n        this._lastHighlightFindOptions = 0;\n        this.placeholder = options.placeholder || '';\n        this.validation = options.validation;\n        this.label = options.label || NLS_DEFAULT_LABEL;\n        this.showCommonFindToggles = !!options.showCommonFindToggles;\n        const appendCaseSensitiveLabel = options.appendCaseSensitiveLabel || '';\n        const appendWholeWordsLabel = options.appendWholeWordsLabel || '';\n        const appendRegexLabel = options.appendRegexLabel || '';\n        const history = options.history || [];\n        const flexibleHeight = !!options.flexibleHeight;\n        const flexibleWidth = !!options.flexibleWidth;\n        const flexibleMaxHeight = options.flexibleMaxHeight;\n        this.domNode = document.createElement('div');\n        this.domNode.classList.add('monaco-findInput');\n        this.inputBox = this._register(new HistoryInputBox(this.domNode, contextViewProvider, {\n            placeholder: this.placeholder || '',\n            ariaLabel: this.label || '',\n            validationOptions: {\n                validation: this.validation\n            },\n            history,\n            showHistoryHint: options.showHistoryHint,\n            flexibleHeight,\n            flexibleWidth,\n            flexibleMaxHeight,\n            inputBoxStyles: options.inputBoxStyles,\n        }));\n        const hoverDelegate = this._register(createInstantHoverDelegate());\n        if (this.showCommonFindToggles) {\n            this.regex = this._register(new RegexToggle({\n                appendTitle: appendRegexLabel,\n                isChecked: false,\n                hoverDelegate,\n                ...options.toggleStyles\n            }));\n            this._register(this.regex.onChange(viaKeyboard => {\n                this._onDidOptionChange.fire(viaKeyboard);\n                if (!viaKeyboard && this.fixFocusOnOptionClickEnabled) {\n                    this.inputBox.focus();\n                }\n                this.validate();\n            }));\n            this._register(this.regex.onKeyDown(e => {\n                this._onRegexKeyDown.fire(e);\n            }));\n            this.wholeWords = this._register(new WholeWordsToggle({\n                appendTitle: appendWholeWordsLabel,\n                isChecked: false,\n                hoverDelegate,\n                ...options.toggleStyles\n            }));\n            this._register(this.wholeWords.onChange(viaKeyboard => {\n                this._onDidOptionChange.fire(viaKeyboard);\n                if (!viaKeyboard && this.fixFocusOnOptionClickEnabled) {\n                    this.inputBox.focus();\n                }\n                this.validate();\n            }));\n            this.caseSensitive = this._register(new CaseSensitiveToggle({\n                appendTitle: appendCaseSensitiveLabel,\n                isChecked: false,\n                hoverDelegate,\n                ...options.toggleStyles\n            }));\n            this._register(this.caseSensitive.onChange(viaKeyboard => {\n                this._onDidOptionChange.fire(viaKeyboard);\n                if (!viaKeyboard && this.fixFocusOnOptionClickEnabled) {\n                    this.inputBox.focus();\n                }\n                this.validate();\n            }));\n            this._register(this.caseSensitive.onKeyDown(e => {\n                this._onCaseSensitiveKeyDown.fire(e);\n            }));\n            // Arrow-Key support to navigate between options\n            const indexes = [this.caseSensitive.domNode, this.wholeWords.domNode, this.regex.domNode];\n            this.onkeydown(this.domNode, (event) => {\n                if (event.equals(15 /* KeyCode.LeftArrow */) || event.equals(17 /* KeyCode.RightArrow */) || event.equals(9 /* KeyCode.Escape */)) {\n                    const index = indexes.indexOf(this.domNode.ownerDocument.activeElement);\n                    if (index >= 0) {\n                        let newIndex = -1;\n                        if (event.equals(17 /* KeyCode.RightArrow */)) {\n                            newIndex = (index + 1) % indexes.length;\n                        }\n                        else if (event.equals(15 /* KeyCode.LeftArrow */)) {\n                            if (index === 0) {\n                                newIndex = indexes.length - 1;\n                            }\n                            else {\n                                newIndex = index - 1;\n                            }\n                        }\n                        if (event.equals(9 /* KeyCode.Escape */)) {\n                            indexes[index].blur();\n                            this.inputBox.focus();\n                        }\n                        else if (newIndex >= 0) {\n                            indexes[newIndex].focus();\n                        }\n                        dom.EventHelper.stop(event, true);\n                    }\n                }\n            });\n        }\n        this.controls = document.createElement('div');\n        this.controls.className = 'controls';\n        this.controls.style.display = this.showCommonFindToggles ? '' : 'none';\n        if (this.caseSensitive) {\n            this.controls.append(this.caseSensitive.domNode);\n        }\n        if (this.wholeWords) {\n            this.controls.appendChild(this.wholeWords.domNode);\n        }\n        if (this.regex) {\n            this.controls.appendChild(this.regex.domNode);\n        }\n        this.setAdditionalToggles(options === null || options === void 0 ? void 0 : options.additionalToggles);\n        if (this.controls) {\n            this.domNode.appendChild(this.controls);\n        }\n        parent === null || parent === void 0 ? void 0 : parent.appendChild(this.domNode);\n        this._register(dom.addDisposableListener(this.inputBox.inputElement, 'compositionstart', (e) => {\n            this.imeSessionInProgress = true;\n        }));\n        this._register(dom.addDisposableListener(this.inputBox.inputElement, 'compositionend', (e) => {\n            this.imeSessionInProgress = false;\n            this._onInput.fire();\n        }));\n        this.onkeydown(this.inputBox.inputElement, (e) => this._onKeyDown.fire(e));\n        this.onkeyup(this.inputBox.inputElement, (e) => this._onKeyUp.fire(e));\n        this.oninput(this.inputBox.inputElement, (e) => this._onInput.fire());\n        this.onmousedown(this.inputBox.inputElement, (e) => this._onMouseDown.fire(e));\n    }\n    get onDidChange() {\n        return this.inputBox.onDidChange;\n    }\n    layout(style) {\n        this.inputBox.layout();\n        this.updateInputBoxPadding(style.collapsedFindWidget);\n    }\n    enable() {\n        var _a, _b, _c;\n        this.domNode.classList.remove('disabled');\n        this.inputBox.enable();\n        (_a = this.regex) === null || _a === void 0 ? void 0 : _a.enable();\n        (_b = this.wholeWords) === null || _b === void 0 ? void 0 : _b.enable();\n        (_c = this.caseSensitive) === null || _c === void 0 ? void 0 : _c.enable();\n        for (const toggle of this.additionalToggles) {\n            toggle.enable();\n        }\n    }\n    disable() {\n        var _a, _b, _c;\n        this.domNode.classList.add('disabled');\n        this.inputBox.disable();\n        (_a = this.regex) === null || _a === void 0 ? void 0 : _a.disable();\n        (_b = this.wholeWords) === null || _b === void 0 ? void 0 : _b.disable();\n        (_c = this.caseSensitive) === null || _c === void 0 ? void 0 : _c.disable();\n        for (const toggle of this.additionalToggles) {\n            toggle.disable();\n        }\n    }\n    setFocusInputOnOptionClick(value) {\n        this.fixFocusOnOptionClickEnabled = value;\n    }\n    setEnabled(enabled) {\n        if (enabled) {\n            this.enable();\n        }\n        else {\n            this.disable();\n        }\n    }\n    setAdditionalToggles(toggles) {\n        for (const currentToggle of this.additionalToggles) {\n            currentToggle.domNode.remove();\n        }\n        this.additionalToggles = [];\n        this.additionalTogglesDisposables.value = new DisposableStore();\n        for (const toggle of toggles !== null && toggles !== void 0 ? toggles : []) {\n            this.additionalTogglesDisposables.value.add(toggle);\n            this.controls.appendChild(toggle.domNode);\n            this.additionalTogglesDisposables.value.add(toggle.onChange(viaKeyboard => {\n                this._onDidOptionChange.fire(viaKeyboard);\n                if (!viaKeyboard && this.fixFocusOnOptionClickEnabled) {\n                    this.inputBox.focus();\n                }\n            }));\n            this.additionalToggles.push(toggle);\n        }\n        if (this.additionalToggles.length > 0) {\n            this.controls.style.display = '';\n        }\n        this.updateInputBoxPadding();\n    }\n    updateInputBoxPadding(controlsHidden = false) {\n        var _a, _b, _c, _d, _e, _f;\n        if (controlsHidden) {\n            this.inputBox.paddingRight = 0;\n        }\n        else {\n            this.inputBox.paddingRight =\n                (((_b = (_a = this.caseSensitive) === null || _a === void 0 ? void 0 : _a.width()) !== null && _b !== void 0 ? _b : 0) + ((_d = (_c = this.wholeWords) === null || _c === void 0 ? void 0 : _c.width()) !== null && _d !== void 0 ? _d : 0) + ((_f = (_e = this.regex) === null || _e === void 0 ? void 0 : _e.width()) !== null && _f !== void 0 ? _f : 0))\n                    + this.additionalToggles.reduce((r, t) => r + t.width(), 0);\n        }\n    }\n    getValue() {\n        return this.inputBox.value;\n    }\n    setValue(value) {\n        if (this.inputBox.value !== value) {\n            this.inputBox.value = value;\n        }\n    }\n    select() {\n        this.inputBox.select();\n    }\n    focus() {\n        this.inputBox.focus();\n    }\n    getCaseSensitive() {\n        var _a, _b;\n        return (_b = (_a = this.caseSensitive) === null || _a === void 0 ? void 0 : _a.checked) !== null && _b !== void 0 ? _b : false;\n    }\n    setCaseSensitive(value) {\n        if (this.caseSensitive) {\n            this.caseSensitive.checked = value;\n        }\n    }\n    getWholeWords() {\n        var _a, _b;\n        return (_b = (_a = this.wholeWords) === null || _a === void 0 ? void 0 : _a.checked) !== null && _b !== void 0 ? _b : false;\n    }\n    setWholeWords(value) {\n        if (this.wholeWords) {\n            this.wholeWords.checked = value;\n        }\n    }\n    getRegex() {\n        var _a, _b;\n        return (_b = (_a = this.regex) === null || _a === void 0 ? void 0 : _a.checked) !== null && _b !== void 0 ? _b : false;\n    }\n    setRegex(value) {\n        if (this.regex) {\n            this.regex.checked = value;\n            this.validate();\n        }\n    }\n    focusOnCaseSensitive() {\n        var _a;\n        (_a = this.caseSensitive) === null || _a === void 0 ? void 0 : _a.focus();\n    }\n    highlightFindOptions() {\n        this.domNode.classList.remove('highlight-' + (this._lastHighlightFindOptions));\n        this._lastHighlightFindOptions = 1 - this._lastHighlightFindOptions;\n        this.domNode.classList.add('highlight-' + (this._lastHighlightFindOptions));\n    }\n    validate() {\n        this.inputBox.validate();\n    }\n    showMessage(message) {\n        this.inputBox.showMessage(message);\n    }\n    clearMessage() {\n        this.inputBox.hideMessage();\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/findinput/findInputToggles.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';\nimport { Toggle } from '../toggle/toggle.js';\nimport { Codicon } from '../../../common/codicons.js';\nimport * as nls from '../../../../nls.js';\nconst NLS_CASE_SENSITIVE_TOGGLE_LABEL = nls.localize('caseDescription', \"Match Case\");\nconst NLS_WHOLE_WORD_TOGGLE_LABEL = nls.localize('wordsDescription', \"Match Whole Word\");\nconst NLS_REGEX_TOGGLE_LABEL = nls.localize('regexDescription', \"Use Regular Expression\");\nexport class CaseSensitiveToggle extends Toggle {\n    constructor(opts) {\n        var _a;\n        super({\n            icon: Codicon.caseSensitive,\n            title: NLS_CASE_SENSITIVE_TOGGLE_LABEL + opts.appendTitle,\n            isChecked: opts.isChecked,\n            hoverDelegate: (_a = opts.hoverDelegate) !== null && _a !== void 0 ? _a : getDefaultHoverDelegate('element'),\n            inputActiveOptionBorder: opts.inputActiveOptionBorder,\n            inputActiveOptionForeground: opts.inputActiveOptionForeground,\n            inputActiveOptionBackground: opts.inputActiveOptionBackground\n        });\n    }\n}\nexport class WholeWordsToggle extends Toggle {\n    constructor(opts) {\n        var _a;\n        super({\n            icon: Codicon.wholeWord,\n            title: NLS_WHOLE_WORD_TOGGLE_LABEL + opts.appendTitle,\n            isChecked: opts.isChecked,\n            hoverDelegate: (_a = opts.hoverDelegate) !== null && _a !== void 0 ? _a : getDefaultHoverDelegate('element'),\n            inputActiveOptionBorder: opts.inputActiveOptionBorder,\n            inputActiveOptionForeground: opts.inputActiveOptionForeground,\n            inputActiveOptionBackground: opts.inputActiveOptionBackground\n        });\n    }\n}\nexport class RegexToggle extends Toggle {\n    constructor(opts) {\n        var _a;\n        super({\n            icon: Codicon.regex,\n            title: NLS_REGEX_TOGGLE_LABEL + opts.appendTitle,\n            isChecked: opts.isChecked,\n            hoverDelegate: (_a = opts.hoverDelegate) !== null && _a !== void 0 ? _a : getDefaultHoverDelegate('element'),\n            inputActiveOptionBorder: opts.inputActiveOptionBorder,\n            inputActiveOptionForeground: opts.inputActiveOptionForeground,\n            inputActiveOptionBackground: opts.inputActiveOptionBackground\n        });\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/findinput/replaceInput.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../dom.js';\nimport { Toggle } from '../toggle/toggle.js';\nimport { HistoryInputBox } from '../inputbox/inputBox.js';\nimport { Widget } from '../widget.js';\nimport { Codicon } from '../../../common/codicons.js';\nimport { Emitter } from '../../../common/event.js';\nimport './findInput.css';\nimport * as nls from '../../../../nls.js';\nimport { getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';\nconst NLS_DEFAULT_LABEL = nls.localize('defaultLabel', \"input\");\nconst NLS_PRESERVE_CASE_LABEL = nls.localize('label.preserveCaseToggle', \"Preserve Case\");\nclass PreserveCaseToggle extends Toggle {\n    constructor(opts) {\n        var _a;\n        super({\n            // TODO: does this need its own icon?\n            icon: Codicon.preserveCase,\n            title: NLS_PRESERVE_CASE_LABEL + opts.appendTitle,\n            isChecked: opts.isChecked,\n            hoverDelegate: (_a = opts.hoverDelegate) !== null && _a !== void 0 ? _a : getDefaultHoverDelegate('element'),\n            inputActiveOptionBorder: opts.inputActiveOptionBorder,\n            inputActiveOptionForeground: opts.inputActiveOptionForeground,\n            inputActiveOptionBackground: opts.inputActiveOptionBackground,\n        });\n    }\n}\nexport class ReplaceInput extends Widget {\n    constructor(parent, contextViewProvider, _showOptionButtons, options) {\n        super();\n        this._showOptionButtons = _showOptionButtons;\n        this.fixFocusOnOptionClickEnabled = true;\n        this.cachedOptionsWidth = 0;\n        this._onDidOptionChange = this._register(new Emitter());\n        this.onDidOptionChange = this._onDidOptionChange.event;\n        this._onKeyDown = this._register(new Emitter());\n        this.onKeyDown = this._onKeyDown.event;\n        this._onMouseDown = this._register(new Emitter());\n        this._onInput = this._register(new Emitter());\n        this._onKeyUp = this._register(new Emitter());\n        this._onPreserveCaseKeyDown = this._register(new Emitter());\n        this.onPreserveCaseKeyDown = this._onPreserveCaseKeyDown.event;\n        this.contextViewProvider = contextViewProvider;\n        this.placeholder = options.placeholder || '';\n        this.validation = options.validation;\n        this.label = options.label || NLS_DEFAULT_LABEL;\n        const appendPreserveCaseLabel = options.appendPreserveCaseLabel || '';\n        const history = options.history || [];\n        const flexibleHeight = !!options.flexibleHeight;\n        const flexibleWidth = !!options.flexibleWidth;\n        const flexibleMaxHeight = options.flexibleMaxHeight;\n        this.domNode = document.createElement('div');\n        this.domNode.classList.add('monaco-findInput');\n        this.inputBox = this._register(new HistoryInputBox(this.domNode, this.contextViewProvider, {\n            ariaLabel: this.label || '',\n            placeholder: this.placeholder || '',\n            validationOptions: {\n                validation: this.validation\n            },\n            history,\n            showHistoryHint: options.showHistoryHint,\n            flexibleHeight,\n            flexibleWidth,\n            flexibleMaxHeight,\n            inputBoxStyles: options.inputBoxStyles\n        }));\n        this.preserveCase = this._register(new PreserveCaseToggle({\n            appendTitle: appendPreserveCaseLabel,\n            isChecked: false,\n            ...options.toggleStyles\n        }));\n        this._register(this.preserveCase.onChange(viaKeyboard => {\n            this._onDidOptionChange.fire(viaKeyboard);\n            if (!viaKeyboard && this.fixFocusOnOptionClickEnabled) {\n                this.inputBox.focus();\n            }\n            this.validate();\n        }));\n        this._register(this.preserveCase.onKeyDown(e => {\n            this._onPreserveCaseKeyDown.fire(e);\n        }));\n        if (this._showOptionButtons) {\n            this.cachedOptionsWidth = this.preserveCase.width();\n        }\n        else {\n            this.cachedOptionsWidth = 0;\n        }\n        // Arrow-Key support to navigate between options\n        const indexes = [this.preserveCase.domNode];\n        this.onkeydown(this.domNode, (event) => {\n            if (event.equals(15 /* KeyCode.LeftArrow */) || event.equals(17 /* KeyCode.RightArrow */) || event.equals(9 /* KeyCode.Escape */)) {\n                const index = indexes.indexOf(this.domNode.ownerDocument.activeElement);\n                if (index >= 0) {\n                    let newIndex = -1;\n                    if (event.equals(17 /* KeyCode.RightArrow */)) {\n                        newIndex = (index + 1) % indexes.length;\n                    }\n                    else if (event.equals(15 /* KeyCode.LeftArrow */)) {\n                        if (index === 0) {\n                            newIndex = indexes.length - 1;\n                        }\n                        else {\n                            newIndex = index - 1;\n                        }\n                    }\n                    if (event.equals(9 /* KeyCode.Escape */)) {\n                        indexes[index].blur();\n                        this.inputBox.focus();\n                    }\n                    else if (newIndex >= 0) {\n                        indexes[newIndex].focus();\n                    }\n                    dom.EventHelper.stop(event, true);\n                }\n            }\n        });\n        const controls = document.createElement('div');\n        controls.className = 'controls';\n        controls.style.display = this._showOptionButtons ? 'block' : 'none';\n        controls.appendChild(this.preserveCase.domNode);\n        this.domNode.appendChild(controls);\n        parent === null || parent === void 0 ? void 0 : parent.appendChild(this.domNode);\n        this.onkeydown(this.inputBox.inputElement, (e) => this._onKeyDown.fire(e));\n        this.onkeyup(this.inputBox.inputElement, (e) => this._onKeyUp.fire(e));\n        this.oninput(this.inputBox.inputElement, (e) => this._onInput.fire());\n        this.onmousedown(this.inputBox.inputElement, (e) => this._onMouseDown.fire(e));\n    }\n    enable() {\n        this.domNode.classList.remove('disabled');\n        this.inputBox.enable();\n        this.preserveCase.enable();\n    }\n    disable() {\n        this.domNode.classList.add('disabled');\n        this.inputBox.disable();\n        this.preserveCase.disable();\n    }\n    setEnabled(enabled) {\n        if (enabled) {\n            this.enable();\n        }\n        else {\n            this.disable();\n        }\n    }\n    select() {\n        this.inputBox.select();\n    }\n    focus() {\n        this.inputBox.focus();\n    }\n    getPreserveCase() {\n        return this.preserveCase.checked;\n    }\n    setPreserveCase(value) {\n        this.preserveCase.checked = value;\n    }\n    focusOnPreserve() {\n        this.preserveCase.focus();\n    }\n    validate() {\n        var _a;\n        (_a = this.inputBox) === null || _a === void 0 ? void 0 : _a.validate();\n    }\n    set width(newWidth) {\n        this.inputBox.paddingRight = this.cachedOptionsWidth;\n        this.domNode.style.width = newWidth + 'px';\n    }\n    dispose() {\n        super.dispose();\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/highlightedlabel/highlightedLabel.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../dom.js';\nimport { getBaseLayerHoverDelegate } from '../hover/hoverDelegate2.js';\nimport { getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';\nimport { renderLabelWithIcons } from '../iconLabel/iconLabels.js';\nimport { Disposable } from '../../../common/lifecycle.js';\nimport * as objects from '../../../common/objects.js';\n/**\n * A widget which can render a label with substring highlights, often\n * originating from a filter function like the fuzzy matcher.\n */\nexport class HighlightedLabel extends Disposable {\n    /**\n     * Create a new {@link HighlightedLabel}.\n     *\n     * @param container The parent container to append to.\n     */\n    constructor(container, options) {\n        var _a;\n        super();\n        this.options = options;\n        this.text = '';\n        this.title = '';\n        this.highlights = [];\n        this.didEverRender = false;\n        this.supportIcons = (_a = options === null || options === void 0 ? void 0 : options.supportIcons) !== null && _a !== void 0 ? _a : false;\n        this.domNode = dom.append(container, dom.$('span.monaco-highlighted-label'));\n    }\n    /**\n     * The label's DOM node.\n     */\n    get element() {\n        return this.domNode;\n    }\n    /**\n     * Set the label and highlights.\n     *\n     * @param text The label to display.\n     * @param highlights The ranges to highlight.\n     * @param title An optional title for the hover tooltip.\n     * @param escapeNewLines Whether to escape new lines.\n     * @returns\n     */\n    set(text, highlights = [], title = '', escapeNewLines) {\n        if (!text) {\n            text = '';\n        }\n        if (escapeNewLines) {\n            // adjusts highlights inplace\n            text = HighlightedLabel.escapeNewLines(text, highlights);\n        }\n        if (this.didEverRender && this.text === text && this.title === title && objects.equals(this.highlights, highlights)) {\n            return;\n        }\n        this.text = text;\n        this.title = title;\n        this.highlights = highlights;\n        this.render();\n    }\n    render() {\n        var _a, _b, _c, _d;\n        const children = [];\n        let pos = 0;\n        for (const highlight of this.highlights) {\n            if (highlight.end === highlight.start) {\n                continue;\n            }\n            if (pos < highlight.start) {\n                const substring = this.text.substring(pos, highlight.start);\n                if (this.supportIcons) {\n                    children.push(...renderLabelWithIcons(substring));\n                }\n                else {\n                    children.push(substring);\n                }\n                pos = highlight.start;\n            }\n            const substring = this.text.substring(pos, highlight.end);\n            const element = dom.$('span.highlight', undefined, ...this.supportIcons ? renderLabelWithIcons(substring) : [substring]);\n            if (highlight.extraClasses) {\n                element.classList.add(...highlight.extraClasses);\n            }\n            children.push(element);\n            pos = highlight.end;\n        }\n        if (pos < this.text.length) {\n            const substring = this.text.substring(pos);\n            if (this.supportIcons) {\n                children.push(...renderLabelWithIcons(substring));\n            }\n            else {\n                children.push(substring);\n            }\n        }\n        dom.reset(this.domNode, ...children);\n        if ((_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.hoverDelegate) === null || _b === void 0 ? void 0 : _b.showNativeHover) {\n            /* While custom hover is not inside custom hover */\n            this.domNode.title = this.title;\n        }\n        else {\n            if (!this.customHover && this.title !== '') {\n                const hoverDelegate = (_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.hoverDelegate) !== null && _d !== void 0 ? _d : getDefaultHoverDelegate('mouse');\n                this.customHover = this._register(getBaseLayerHoverDelegate().setupUpdatableHover(hoverDelegate, this.domNode, this.title));\n            }\n            else if (this.customHover) {\n                this.customHover.update(this.title);\n            }\n        }\n        this.didEverRender = true;\n    }\n    static escapeNewLines(text, highlights) {\n        let total = 0;\n        let extra = 0;\n        return text.replace(/\\r\\n|\\r|\\n/g, (match, offset) => {\n            extra = match === '\\r\\n' ? -1 : 0;\n            offset += total;\n            for (const highlight of highlights) {\n                if (highlight.end <= offset) {\n                    continue;\n                }\n                if (highlight.start >= offset) {\n                    highlight.start += extra;\n                }\n                if (highlight.end >= offset) {\n                    highlight.end += extra;\n                }\n            }\n            total += extra;\n            return '\\u23CE';\n        });\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/hover/hover.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport {};\n// #endregion Updatable hover\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/hover/hoverDelegate.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport {};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/hover/hoverDelegate2.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nlet baseHoverDelegate = {\n    showHover: () => undefined,\n    hideHover: () => undefined,\n    showAndFocusLastHover: () => undefined,\n    setupUpdatableHover: () => null,\n    triggerUpdatableHover: () => undefined\n};\n/**\n * Sets the hover delegate for use **only in the `base/` layer**.\n */\nexport function setBaseLayerHoverDelegate(hoverDelegate) {\n    baseHoverDelegate = hoverDelegate;\n}\n/**\n * Gets the hover delegate for use **only in the `base/` layer**.\n *\n * Since the hover service depends on various platform services, this delegate essentially bypasses\n * the standard dependency injection mechanism by injecting a global hover service at start up. The\n * only reason this should be used is if `IHoverService` is not available.\n */\nexport function getBaseLayerHoverDelegate() {\n    return baseHoverDelegate;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/hover/hoverDelegateFactory.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Lazy } from '../../../common/lazy.js';\nconst nullHoverDelegateFactory = () => ({\n    get delay() { return -1; },\n    dispose: () => { },\n    showHover: () => { return undefined; },\n});\nlet hoverDelegateFactory = nullHoverDelegateFactory;\nconst defaultHoverDelegateMouse = new Lazy(() => hoverDelegateFactory('mouse', false));\nconst defaultHoverDelegateElement = new Lazy(() => hoverDelegateFactory('element', false));\n// TODO: Remove when getDefaultHoverDelegate is no longer used\nexport function setHoverDelegateFactory(hoverDelegateProvider) {\n    hoverDelegateFactory = hoverDelegateProvider;\n}\n// TODO: Refine type for use in new IHoverService interface\nexport function getDefaultHoverDelegate(placement) {\n    if (placement === 'element') {\n        return defaultHoverDelegateElement.value;\n    }\n    return defaultHoverDelegateMouse.value;\n}\n// TODO: Create equivalent in IHoverService\nexport function createInstantHoverDelegate() {\n    // Creates a hover delegate with instant hover enabled.\n    // This hover belongs to the consumer and requires the them to dispose it.\n    // Instant hover only makes sense for 'element' placement.\n    return hoverDelegateFactory('element', true);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/hover/hoverWidget.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-hover {\n\tcursor: default;\n\tposition: absolute;\n\toverflow: hidden;\n\tuser-select: text;\n\t-webkit-user-select: text;\n\tbox-sizing: border-box;\n\tanimation: fadein 100ms linear;\n\tline-height: 1.5em;\n\twhite-space: var(--vscode-hover-whiteSpace, normal);\n}\n\n.monaco-hover.hidden {\n\tdisplay: none;\n}\n\n.monaco-hover a:hover:not(.disabled) {\n\tcursor: pointer;\n}\n\n.monaco-hover .hover-contents:not(.html-hover-contents) {\n\tpadding: 4px 8px;\n}\n\n.monaco-hover .markdown-hover > .hover-contents:not(.code-hover-contents) {\n\tmax-width: var(--vscode-hover-maxWidth, 500px);\n\tword-wrap: break-word;\n}\n\n.monaco-hover .markdown-hover > .hover-contents:not(.code-hover-contents) hr {\n\tmin-width: 100%;\n}\n\n.monaco-hover p,\n.monaco-hover .code,\n.monaco-hover ul,\n.monaco-hover h1,\n.monaco-hover h2,\n.monaco-hover h3,\n.monaco-hover h4,\n.monaco-hover h5,\n.monaco-hover h6 {\n\tmargin: 8px 0;\n}\n\n.monaco-hover h1,\n.monaco-hover h2,\n.monaco-hover h3,\n.monaco-hover h4,\n.monaco-hover h5,\n.monaco-hover h6 {\n\tline-height: 1.1;\n}\n\n.monaco-hover code {\n\tfont-family: var(--monaco-monospace-font);\n}\n\n.monaco-hover hr {\n\tbox-sizing: border-box;\n\tborder-left: 0px;\n\tborder-right: 0px;\n\tmargin-top: 4px;\n\tmargin-bottom: -4px;\n\tmargin-left: -8px;\n\tmargin-right: -8px;\n\theight: 1px;\n}\n\n.monaco-hover p:first-child,\n.monaco-hover .code:first-child,\n.monaco-hover ul:first-child {\n\tmargin-top: 0;\n}\n\n.monaco-hover p:last-child,\n.monaco-hover .code:last-child,\n.monaco-hover ul:last-child {\n\tmargin-bottom: 0;\n}\n\n/* MarkupContent Layout */\n.monaco-hover ul {\n\tpadding-left: 20px;\n}\n.monaco-hover ol {\n\tpadding-left: 20px;\n}\n\n.monaco-hover li > p {\n\tmargin-bottom: 0;\n}\n\n.monaco-hover li > ul {\n\tmargin-top: 0;\n}\n\n.monaco-hover code {\n\tborder-radius: 3px;\n\tpadding: 0 0.4em;\n}\n\n.monaco-hover .monaco-tokenized-source {\n\twhite-space: var(--vscode-hover-sourceWhiteSpace, pre-wrap);\n}\n\n.monaco-hover .hover-row.status-bar {\n\tfont-size: 12px;\n\tline-height: 22px;\n}\n\n.monaco-hover .hover-row.status-bar .info {\n\tfont-style: italic;\n\tpadding: 0px 8px;\n}\n\n.monaco-hover .hover-row.status-bar .actions {\n\tdisplay: flex;\n\tpadding: 0px 8px;\n\twidth: 100%;\n}\n\n.monaco-hover .hover-row.status-bar .actions .action-container {\n\tmargin-right: 16px;\n\tcursor: pointer;\n}\n\n.monaco-hover .hover-row.status-bar .actions .action-container .action .icon {\n\tpadding-right: 4px;\n}\n\n.monaco-hover .markdown-hover .hover-contents .codicon {\n\tcolor: inherit;\n\tfont-size: inherit;\n\tvertical-align: middle;\n}\n\n.monaco-hover .hover-contents a.code-link:hover,\n.monaco-hover .hover-contents a.code-link {\n\tcolor: inherit;\n}\n\n.monaco-hover .hover-contents a.code-link:before {\n\tcontent: '(';\n}\n\n.monaco-hover .hover-contents a.code-link:after {\n\tcontent: ')';\n}\n\n.monaco-hover .hover-contents a.code-link > span {\n\ttext-decoration: underline;\n\t/** Hack to force underline to show **/\n\tborder-bottom: 1px solid transparent;\n\ttext-underline-position: under;\n\tcolor: var(--vscode-textLink-foreground);\n}\n\n.monaco-hover .hover-contents a.code-link > span:hover {\n\tcolor: var(--vscode-textLink-activeForeground);\n}\n\n/** Spans in markdown hovers need a margin-bottom to avoid looking cramped: https://github.com/microsoft/vscode/issues/101496 **/\n.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents):not(.html-hover-contents) span {\n\tmargin-bottom: 4px;\n\tdisplay: inline-block;\n}\n\n.monaco-hover-content .action-container a {\n\t-webkit-user-select: none;\n\tuser-select: none;\n}\n\n.monaco-hover-content .action-container.disabled {\n\tpointer-events: none;\n\topacity: 0.4;\n\tcursor: default;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/hover/hoverWidget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../dom.js';\nimport { StandardKeyboardEvent } from '../../keyboardEvent.js';\nimport { DomScrollableElement } from '../scrollbar/scrollableElement.js';\nimport { Disposable } from '../../../common/lifecycle.js';\nimport './hoverWidget.css';\nimport { localize } from '../../../../nls.js';\nconst $ = dom.$;\nexport class HoverWidget extends Disposable {\n    constructor() {\n        super();\n        this.containerDomNode = document.createElement('div');\n        this.containerDomNode.className = 'monaco-hover';\n        this.containerDomNode.tabIndex = 0;\n        this.containerDomNode.setAttribute('role', 'tooltip');\n        this.contentsDomNode = document.createElement('div');\n        this.contentsDomNode.className = 'monaco-hover-content';\n        this.scrollbar = this._register(new DomScrollableElement(this.contentsDomNode, {\n            consumeMouseWheelIfScrollbarIsNeeded: true\n        }));\n        this.containerDomNode.appendChild(this.scrollbar.getDomNode());\n    }\n    onContentsChanged() {\n        this.scrollbar.scanDomNode();\n    }\n}\nexport class HoverAction extends Disposable {\n    static render(parent, actionOptions, keybindingLabel) {\n        return new HoverAction(parent, actionOptions, keybindingLabel);\n    }\n    constructor(parent, actionOptions, keybindingLabel) {\n        super();\n        this.actionContainer = dom.append(parent, $('div.action-container'));\n        this.actionContainer.setAttribute('tabindex', '0');\n        this.action = dom.append(this.actionContainer, $('a.action'));\n        this.action.setAttribute('role', 'button');\n        if (actionOptions.iconClass) {\n            dom.append(this.action, $(`span.icon.${actionOptions.iconClass}`));\n        }\n        const label = dom.append(this.action, $('span'));\n        label.textContent = keybindingLabel ? `${actionOptions.label} (${keybindingLabel})` : actionOptions.label;\n        this._store.add(new ClickAction(this.actionContainer, actionOptions.run));\n        this._store.add(new KeyDownAction(this.actionContainer, actionOptions.run, [3 /* KeyCode.Enter */, 10 /* KeyCode.Space */]));\n        this.setEnabled(true);\n    }\n    setEnabled(enabled) {\n        if (enabled) {\n            this.actionContainer.classList.remove('disabled');\n            this.actionContainer.removeAttribute('aria-disabled');\n        }\n        else {\n            this.actionContainer.classList.add('disabled');\n            this.actionContainer.setAttribute('aria-disabled', 'true');\n        }\n    }\n}\nexport function getHoverAccessibleViewHint(shouldHaveHint, keybinding) {\n    return shouldHaveHint && keybinding ? localize('acessibleViewHint', \"Inspect this in the accessible view with {0}.\", keybinding) : shouldHaveHint ? localize('acessibleViewHintNoKbOpen', \"Inspect this in the accessible view via the command Open Accessible View which is currently not triggerable via keybinding.\") : '';\n}\nexport class ClickAction extends Disposable {\n    constructor(container, run) {\n        super();\n        this._register(dom.addDisposableListener(container, dom.EventType.CLICK, e => {\n            e.stopPropagation();\n            e.preventDefault();\n            run(container);\n        }));\n    }\n}\nexport class KeyDownAction extends Disposable {\n    constructor(container, run, keyCodes) {\n        super();\n        this._register(dom.addDisposableListener(container, dom.EventType.KEY_DOWN, e => {\n            const event = new StandardKeyboardEvent(e);\n            if (keyCodes.some(keyCode => event.equals(keyCode))) {\n                e.stopPropagation();\n                e.preventDefault();\n                run(container);\n            }\n        }));\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/iconLabel/iconLabel.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './iconlabel.css';\nimport * as dom from '../../dom.js';\nimport { HighlightedLabel } from '../highlightedlabel/highlightedLabel.js';\nimport { Disposable } from '../../../common/lifecycle.js';\nimport { equals } from '../../../common/objects.js';\nimport { Range } from '../../../common/range.js';\nimport { getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';\nimport { getBaseLayerHoverDelegate } from '../hover/hoverDelegate2.js';\nimport { isString } from '../../../common/types.js';\nimport { stripIcons } from '../../../common/iconLabels.js';\nclass FastLabelNode {\n    constructor(_element) {\n        this._element = _element;\n    }\n    get element() {\n        return this._element;\n    }\n    set textContent(content) {\n        if (this.disposed || content === this._textContent) {\n            return;\n        }\n        this._textContent = content;\n        this._element.textContent = content;\n    }\n    set className(className) {\n        if (this.disposed || className === this._className) {\n            return;\n        }\n        this._className = className;\n        this._element.className = className;\n    }\n    set empty(empty) {\n        if (this.disposed || empty === this._empty) {\n            return;\n        }\n        this._empty = empty;\n        this._element.style.marginLeft = empty ? '0' : '';\n    }\n    dispose() {\n        this.disposed = true;\n    }\n}\nexport class IconLabel extends Disposable {\n    constructor(container, options) {\n        var _a;\n        super();\n        this.customHovers = new Map();\n        this.creationOptions = options;\n        this.domNode = this._register(new FastLabelNode(dom.append(container, dom.$('.monaco-icon-label'))));\n        this.labelContainer = dom.append(this.domNode.element, dom.$('.monaco-icon-label-container'));\n        this.nameContainer = dom.append(this.labelContainer, dom.$('span.monaco-icon-name-container'));\n        if ((options === null || options === void 0 ? void 0 : options.supportHighlights) || (options === null || options === void 0 ? void 0 : options.supportIcons)) {\n            this.nameNode = this._register(new LabelWithHighlights(this.nameContainer, !!options.supportIcons));\n        }\n        else {\n            this.nameNode = new Label(this.nameContainer);\n        }\n        this.hoverDelegate = (_a = options === null || options === void 0 ? void 0 : options.hoverDelegate) !== null && _a !== void 0 ? _a : getDefaultHoverDelegate('mouse');\n    }\n    get element() {\n        return this.domNode.element;\n    }\n    setLabel(label, description, options) {\n        var _a;\n        const labelClasses = ['monaco-icon-label'];\n        const containerClasses = ['monaco-icon-label-container'];\n        let ariaLabel = '';\n        if (options) {\n            if (options.extraClasses) {\n                labelClasses.push(...options.extraClasses);\n            }\n            if (options.italic) {\n                labelClasses.push('italic');\n            }\n            if (options.strikethrough) {\n                labelClasses.push('strikethrough');\n            }\n            if (options.disabledCommand) {\n                containerClasses.push('disabled');\n            }\n            if (options.title) {\n                if (typeof options.title === 'string') {\n                    ariaLabel += options.title;\n                }\n                else {\n                    ariaLabel += label;\n                }\n            }\n        }\n        const existingIconNode = this.domNode.element.querySelector('.monaco-icon-label-iconpath');\n        if (options === null || options === void 0 ? void 0 : options.iconPath) {\n            let iconNode;\n            if (!existingIconNode || !(dom.isHTMLElement(existingIconNode))) {\n                iconNode = dom.$('.monaco-icon-label-iconpath');\n                this.domNode.element.prepend(iconNode);\n            }\n            else {\n                iconNode = existingIconNode;\n            }\n            iconNode.style.backgroundImage = dom.asCSSUrl(options === null || options === void 0 ? void 0 : options.iconPath);\n        }\n        else if (existingIconNode) {\n            existingIconNode.remove();\n        }\n        this.domNode.className = labelClasses.join(' ');\n        this.domNode.element.setAttribute('aria-label', ariaLabel);\n        this.labelContainer.className = containerClasses.join(' ');\n        this.setupHover((options === null || options === void 0 ? void 0 : options.descriptionTitle) ? this.labelContainer : this.element, options === null || options === void 0 ? void 0 : options.title);\n        this.nameNode.setLabel(label, options);\n        if (description || this.descriptionNode) {\n            const descriptionNode = this.getOrCreateDescriptionNode();\n            if (descriptionNode instanceof HighlightedLabel) {\n                descriptionNode.set(description || '', options ? options.descriptionMatches : undefined, undefined, options === null || options === void 0 ? void 0 : options.labelEscapeNewLines);\n                this.setupHover(descriptionNode.element, options === null || options === void 0 ? void 0 : options.descriptionTitle);\n            }\n            else {\n                descriptionNode.textContent = description && (options === null || options === void 0 ? void 0 : options.labelEscapeNewLines) ? HighlightedLabel.escapeNewLines(description, []) : (description || '');\n                this.setupHover(descriptionNode.element, (options === null || options === void 0 ? void 0 : options.descriptionTitle) || '');\n                descriptionNode.empty = !description;\n            }\n        }\n        if ((options === null || options === void 0 ? void 0 : options.suffix) || this.suffixNode) {\n            const suffixNode = this.getOrCreateSuffixNode();\n            suffixNode.textContent = (_a = options === null || options === void 0 ? void 0 : options.suffix) !== null && _a !== void 0 ? _a : '';\n        }\n    }\n    setupHover(htmlElement, tooltip) {\n        const previousCustomHover = this.customHovers.get(htmlElement);\n        if (previousCustomHover) {\n            previousCustomHover.dispose();\n            this.customHovers.delete(htmlElement);\n        }\n        if (!tooltip) {\n            htmlElement.removeAttribute('title');\n            return;\n        }\n        if (this.hoverDelegate.showNativeHover) {\n            function setupNativeHover(htmlElement, tooltip) {\n                if (isString(tooltip)) {\n                    // Icons don't render in the native hover so we strip them out\n                    htmlElement.title = stripIcons(tooltip);\n                }\n                else if (tooltip === null || tooltip === void 0 ? void 0 : tooltip.markdownNotSupportedFallback) {\n                    htmlElement.title = tooltip.markdownNotSupportedFallback;\n                }\n                else {\n                    htmlElement.removeAttribute('title');\n                }\n            }\n            setupNativeHover(htmlElement, tooltip);\n        }\n        else {\n            const hoverDisposable = getBaseLayerHoverDelegate().setupUpdatableHover(this.hoverDelegate, htmlElement, tooltip);\n            if (hoverDisposable) {\n                this.customHovers.set(htmlElement, hoverDisposable);\n            }\n        }\n    }\n    dispose() {\n        super.dispose();\n        for (const disposable of this.customHovers.values()) {\n            disposable.dispose();\n        }\n        this.customHovers.clear();\n    }\n    getOrCreateSuffixNode() {\n        if (!this.suffixNode) {\n            const suffixContainer = this._register(new FastLabelNode(dom.after(this.nameContainer, dom.$('span.monaco-icon-suffix-container'))));\n            this.suffixNode = this._register(new FastLabelNode(dom.append(suffixContainer.element, dom.$('span.label-suffix'))));\n        }\n        return this.suffixNode;\n    }\n    getOrCreateDescriptionNode() {\n        var _a;\n        if (!this.descriptionNode) {\n            const descriptionContainer = this._register(new FastLabelNode(dom.append(this.labelContainer, dom.$('span.monaco-icon-description-container'))));\n            if ((_a = this.creationOptions) === null || _a === void 0 ? void 0 : _a.supportDescriptionHighlights) {\n                this.descriptionNode = this._register(new HighlightedLabel(dom.append(descriptionContainer.element, dom.$('span.label-description')), { supportIcons: !!this.creationOptions.supportIcons }));\n            }\n            else {\n                this.descriptionNode = this._register(new FastLabelNode(dom.append(descriptionContainer.element, dom.$('span.label-description'))));\n            }\n        }\n        return this.descriptionNode;\n    }\n}\nclass Label {\n    constructor(container) {\n        this.container = container;\n        this.label = undefined;\n        this.singleLabel = undefined;\n    }\n    setLabel(label, options) {\n        if (this.label === label && equals(this.options, options)) {\n            return;\n        }\n        this.label = label;\n        this.options = options;\n        if (typeof label === 'string') {\n            if (!this.singleLabel) {\n                this.container.innerText = '';\n                this.container.classList.remove('multiple');\n                this.singleLabel = dom.append(this.container, dom.$('a.label-name', { id: options === null || options === void 0 ? void 0 : options.domId }));\n            }\n            this.singleLabel.textContent = label;\n        }\n        else {\n            this.container.innerText = '';\n            this.container.classList.add('multiple');\n            this.singleLabel = undefined;\n            for (let i = 0; i < label.length; i++) {\n                const l = label[i];\n                const id = (options === null || options === void 0 ? void 0 : options.domId) && `${options === null || options === void 0 ? void 0 : options.domId}_${i}`;\n                dom.append(this.container, dom.$('a.label-name', { id, 'data-icon-label-count': label.length, 'data-icon-label-index': i, 'role': 'treeitem' }, l));\n                if (i < label.length - 1) {\n                    dom.append(this.container, dom.$('span.label-separator', undefined, (options === null || options === void 0 ? void 0 : options.separator) || '/'));\n                }\n            }\n        }\n    }\n}\nfunction splitMatches(labels, separator, matches) {\n    if (!matches) {\n        return undefined;\n    }\n    let labelStart = 0;\n    return labels.map(label => {\n        const labelRange = { start: labelStart, end: labelStart + label.length };\n        const result = matches\n            .map(match => Range.intersect(labelRange, match))\n            .filter(range => !Range.isEmpty(range))\n            .map(({ start, end }) => ({ start: start - labelStart, end: end - labelStart }));\n        labelStart = labelRange.end + separator.length;\n        return result;\n    });\n}\nclass LabelWithHighlights extends Disposable {\n    constructor(container, supportIcons) {\n        super();\n        this.container = container;\n        this.supportIcons = supportIcons;\n        this.label = undefined;\n        this.singleLabel = undefined;\n    }\n    setLabel(label, options) {\n        if (this.label === label && equals(this.options, options)) {\n            return;\n        }\n        this.label = label;\n        this.options = options;\n        if (typeof label === 'string') {\n            if (!this.singleLabel) {\n                this.container.innerText = '';\n                this.container.classList.remove('multiple');\n                this.singleLabel = this._register(new HighlightedLabel(dom.append(this.container, dom.$('a.label-name', { id: options === null || options === void 0 ? void 0 : options.domId })), { supportIcons: this.supportIcons }));\n            }\n            this.singleLabel.set(label, options === null || options === void 0 ? void 0 : options.matches, undefined, options === null || options === void 0 ? void 0 : options.labelEscapeNewLines);\n        }\n        else {\n            this.container.innerText = '';\n            this.container.classList.add('multiple');\n            this.singleLabel = undefined;\n            const separator = (options === null || options === void 0 ? void 0 : options.separator) || '/';\n            const matches = splitMatches(label, separator, options === null || options === void 0 ? void 0 : options.matches);\n            for (let i = 0; i < label.length; i++) {\n                const l = label[i];\n                const m = matches ? matches[i] : undefined;\n                const id = (options === null || options === void 0 ? void 0 : options.domId) && `${options === null || options === void 0 ? void 0 : options.domId}_${i}`;\n                const name = dom.$('a.label-name', { id, 'data-icon-label-count': label.length, 'data-icon-label-index': i, 'role': 'treeitem' });\n                const highlightedLabel = this._register(new HighlightedLabel(dom.append(this.container, name), { supportIcons: this.supportIcons }));\n                highlightedLabel.set(l, m, undefined, options === null || options === void 0 ? void 0 : options.labelEscapeNewLines);\n                if (i < label.length - 1) {\n                    dom.append(name, dom.$('span.label-separator', undefined, separator));\n                }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/iconLabel/iconLabels.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../dom.js';\nimport { ThemeIcon } from '../../../common/themables.js';\nconst labelWithIconsRegex = new RegExp(`(\\\\\\\\)?\\\\$\\\\((${ThemeIcon.iconNameExpression}(?:${ThemeIcon.iconModifierExpression})?)\\\\)`, 'g');\nexport function renderLabelWithIcons(text) {\n    const elements = new Array();\n    let match;\n    let textStart = 0, textStop = 0;\n    while ((match = labelWithIconsRegex.exec(text)) !== null) {\n        textStop = match.index || 0;\n        if (textStart < textStop) {\n            elements.push(text.substring(textStart, textStop));\n        }\n        textStart = (match.index || 0) + match[0].length;\n        const [, escaped, codicon] = match;\n        elements.push(escaped ? `$(${codicon})` : renderIcon({ id: codicon }));\n    }\n    if (textStart < text.length) {\n        elements.push(text.substring(textStart));\n    }\n    return elements;\n}\nexport function renderIcon(icon) {\n    const node = dom.$(`span`);\n    node.classList.add(...ThemeIcon.asClassNameArray(icon));\n    return node;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/iconLabel/iconlabel.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n/* ---------- Icon label ---------- */\n\n.monaco-icon-label {\n\tdisplay: flex; /* required for icons support :before rule */\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n}\n\n.monaco-icon-label::before {\n\n\t/* svg icons rendered as background image */\n\tbackground-size: 16px;\n\tbackground-position: left center;\n\tbackground-repeat: no-repeat;\n\tpadding-right: 6px;\n\twidth: 16px;\n\theight: 22px;\n\tline-height: inherit !important;\n\tdisplay: inline-block;\n\n\t/* fonts icons */\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n\tvertical-align: top;\n\n\tflex-shrink: 0; /* fix for https://github.com/microsoft/vscode/issues/13787 */\n}\n\n.monaco-icon-label-iconpath {\n\twidth: 16px;\n\theight: 16px;\n\tpadding-left: 2px;\n\tmargin-top: 2px;\n\tdisplay: flex;\n}\n\n.monaco-icon-label-container.disabled {\n\tcolor: var(--vscode-disabledForeground);\n}\n.monaco-icon-label > .monaco-icon-label-container {\n\tmin-width: 0;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\tflex: 1;\n}\n\n.monaco-icon-label > .monaco-icon-label-container > .monaco-icon-name-container > .label-name {\n\tcolor: inherit;\n\twhite-space: pre; /* enable to show labels that include multiple whitespaces */\n}\n\n.monaco-icon-label > .monaco-icon-label-container > .monaco-icon-name-container > .label-name > .label-separator {\n\tmargin: 0 2px;\n\topacity: 0.5;\n}\n\n.monaco-icon-label > .monaco-icon-label-container > .monaco-icon-suffix-container > .label-suffix {\n\topacity: .7;\n\twhite-space: pre;\n}\n\n.monaco-icon-label > .monaco-icon-label-container > .monaco-icon-description-container > .label-description {\n\topacity: .7;\n\tmargin-left: 0.5em;\n\tfont-size: 0.9em;\n\twhite-space: pre; /* enable to show labels that include multiple whitespaces */\n}\n\n.monaco-icon-label.nowrap > .monaco-icon-label-container > .monaco-icon-description-container > .label-description{\n\twhite-space: nowrap\n}\n\n.vs .monaco-icon-label > .monaco-icon-label-container > .monaco-icon-description-container > .label-description {\n\topacity: .95;\n}\n\n.monaco-icon-label.italic > .monaco-icon-label-container > .monaco-icon-name-container > .label-name,\n.monaco-icon-label.italic > .monaco-icon-label-container > .monaco-icon-description-container > .label-description {\n\tfont-style: italic;\n}\n\n.monaco-icon-label.deprecated {\n\ttext-decoration: line-through;\n\topacity: 0.66;\n}\n\n/* make sure apply italic font style to decorations as well */\n.monaco-icon-label.italic::after {\n\tfont-style: italic;\n}\n\n.monaco-icon-label.strikethrough > .monaco-icon-label-container > .monaco-icon-name-container > .label-name,\n.monaco-icon-label.strikethrough > .monaco-icon-label-container > .monaco-icon-description-container > .label-description {\n\ttext-decoration: line-through;\n}\n\n.monaco-icon-label::after {\n\topacity: 0.75;\n\tfont-size: 90%;\n\tfont-weight: 600;\n\tmargin: auto 16px 0 5px; /* https://github.com/microsoft/vscode/issues/113223 */\n\ttext-align: center;\n}\n\n/* make sure selection color wins when a label is being selected */\n.monaco-list:focus .selected .monaco-icon-label, /* list */\n.monaco-list:focus .selected .monaco-icon-label::after\n{\n\tcolor: inherit !important;\n}\n\n.monaco-list-row.focused.selected .label-description,\n.monaco-list-row.selected .label-description {\n\topacity: .8;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/inputbox/inputBox.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-inputbox {\n\tposition: relative;\n\tdisplay: block;\n\tpadding: 0;\n\tbox-sizing:\tborder-box;\n\tborder-radius: 2px;\n\n\t/* Customizable */\n\tfont-size: inherit;\n}\n\n.monaco-inputbox > .ibwrapper > .input,\n.monaco-inputbox > .ibwrapper > .mirror {\n\n\t/* Customizable */\n\tpadding: 4px 6px;\n}\n\n.monaco-inputbox > .ibwrapper {\n\tposition: relative;\n\twidth: 100%;\n\theight: 100%;\n}\n\n.monaco-inputbox > .ibwrapper > .input {\n\tdisplay: inline-block;\n\tbox-sizing:\tborder-box;\n\twidth: 100%;\n\theight: 100%;\n\tline-height: inherit;\n\tborder: none;\n\tfont-family: inherit;\n\tfont-size: inherit;\n\tresize: none;\n\tcolor: inherit;\n}\n\n.monaco-inputbox > .ibwrapper > input {\n\ttext-overflow: ellipsis;\n}\n\n.monaco-inputbox > .ibwrapper > textarea.input {\n\tdisplay: block;\n\tscrollbar-width: none; /* Firefox: hide scrollbars */\n\toutline: none;\n}\n\n.monaco-inputbox > .ibwrapper > textarea.input::-webkit-scrollbar {\n\tdisplay: none; /* Chrome + Safari: hide scrollbar */\n}\n\n.monaco-inputbox > .ibwrapper > textarea.input.empty {\n\twhite-space: nowrap;\n}\n\n.monaco-inputbox > .ibwrapper > .mirror {\n\tposition: absolute;\n\tdisplay: inline-block;\n\twidth: 100%;\n\ttop: 0;\n\tleft: 0;\n\tbox-sizing: border-box;\n\twhite-space: pre-wrap;\n\tvisibility: hidden;\n\tword-wrap: break-word;\n}\n\n/* Context view */\n\n.monaco-inputbox-container {\n\ttext-align: right;\n}\n\n.monaco-inputbox-container .monaco-inputbox-message {\n\tdisplay: inline-block;\n\toverflow: hidden;\n\ttext-align: left;\n\twidth: 100%;\n\tbox-sizing:\tborder-box;\n\tpadding: 0.4em;\n\tfont-size: 12px;\n\tline-height: 17px;\n\tmargin-top: -1px;\n\tword-wrap: break-word;\n}\n\n/* Action bar support */\n.monaco-inputbox .monaco-action-bar {\n\tposition: absolute;\n\tright: 2px;\n\ttop: 4px;\n}\n\n.monaco-inputbox .monaco-action-bar .action-item {\n\tmargin-left: 2px;\n}\n\n.monaco-inputbox .monaco-action-bar .action-item .codicon {\n\tbackground-repeat: no-repeat;\n\twidth: 16px;\n\theight: 16px;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/inputbox/inputBox.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../dom.js';\nimport { DomEmitter } from '../../event.js';\nimport { renderFormattedText, renderText } from '../../formattedTextRenderer.js';\nimport { ActionBar } from '../actionbar/actionbar.js';\nimport * as aria from '../aria/aria.js';\nimport { getBaseLayerHoverDelegate } from '../hover/hoverDelegate2.js';\nimport { getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';\nimport { ScrollableElement } from '../scrollbar/scrollableElement.js';\nimport { Widget } from '../widget.js';\nimport { Emitter, Event } from '../../../common/event.js';\nimport { HistoryNavigator } from '../../../common/history.js';\nimport { equals } from '../../../common/objects.js';\nimport './inputBox.css';\nimport * as nls from '../../../../nls.js';\nconst $ = dom.$;\nexport const unthemedInboxStyles = {\n    inputBackground: '#3C3C3C',\n    inputForeground: '#CCCCCC',\n    inputValidationInfoBorder: '#55AAFF',\n    inputValidationInfoBackground: '#063B49',\n    inputValidationWarningBorder: '#B89500',\n    inputValidationWarningBackground: '#352A05',\n    inputValidationErrorBorder: '#BE1100',\n    inputValidationErrorBackground: '#5A1D1D',\n    inputBorder: undefined,\n    inputValidationErrorForeground: undefined,\n    inputValidationInfoForeground: undefined,\n    inputValidationWarningForeground: undefined\n};\nexport class InputBox extends Widget {\n    constructor(container, contextViewProvider, options) {\n        var _a;\n        super();\n        this.state = 'idle';\n        this.maxHeight = Number.POSITIVE_INFINITY;\n        this._onDidChange = this._register(new Emitter());\n        this.onDidChange = this._onDidChange.event;\n        this._onDidHeightChange = this._register(new Emitter());\n        this.onDidHeightChange = this._onDidHeightChange.event;\n        this.contextViewProvider = contextViewProvider;\n        this.options = options;\n        this.message = null;\n        this.placeholder = this.options.placeholder || '';\n        this.tooltip = (_a = this.options.tooltip) !== null && _a !== void 0 ? _a : (this.placeholder || '');\n        this.ariaLabel = this.options.ariaLabel || '';\n        if (this.options.validationOptions) {\n            this.validation = this.options.validationOptions.validation;\n        }\n        this.element = dom.append(container, $('.monaco-inputbox.idle'));\n        const tagName = this.options.flexibleHeight ? 'textarea' : 'input';\n        const wrapper = dom.append(this.element, $('.ibwrapper'));\n        this.input = dom.append(wrapper, $(tagName + '.input.empty'));\n        this.input.setAttribute('autocorrect', 'off');\n        this.input.setAttribute('autocapitalize', 'off');\n        this.input.setAttribute('spellcheck', 'false');\n        this.onfocus(this.input, () => this.element.classList.add('synthetic-focus'));\n        this.onblur(this.input, () => this.element.classList.remove('synthetic-focus'));\n        if (this.options.flexibleHeight) {\n            this.maxHeight = typeof this.options.flexibleMaxHeight === 'number' ? this.options.flexibleMaxHeight : Number.POSITIVE_INFINITY;\n            this.mirror = dom.append(wrapper, $('div.mirror'));\n            this.mirror.innerText = '\\u00a0';\n            this.scrollableElement = new ScrollableElement(this.element, { vertical: 1 /* ScrollbarVisibility.Auto */ });\n            if (this.options.flexibleWidth) {\n                this.input.setAttribute('wrap', 'off');\n                this.mirror.style.whiteSpace = 'pre';\n                this.mirror.style.wordWrap = 'initial';\n            }\n            dom.append(container, this.scrollableElement.getDomNode());\n            this._register(this.scrollableElement);\n            // from ScrollableElement to DOM\n            this._register(this.scrollableElement.onScroll(e => this.input.scrollTop = e.scrollTop));\n            const onSelectionChange = this._register(new DomEmitter(container.ownerDocument, 'selectionchange'));\n            const onAnchoredSelectionChange = Event.filter(onSelectionChange.event, () => {\n                const selection = container.ownerDocument.getSelection();\n                return (selection === null || selection === void 0 ? void 0 : selection.anchorNode) === wrapper;\n            });\n            // from DOM to ScrollableElement\n            this._register(onAnchoredSelectionChange(this.updateScrollDimensions, this));\n            this._register(this.onDidHeightChange(this.updateScrollDimensions, this));\n        }\n        else {\n            this.input.type = this.options.type || 'text';\n            this.input.setAttribute('wrap', 'off');\n        }\n        if (this.ariaLabel) {\n            this.input.setAttribute('aria-label', this.ariaLabel);\n        }\n        if (this.placeholder && !this.options.showPlaceholderOnFocus) {\n            this.setPlaceHolder(this.placeholder);\n        }\n        if (this.tooltip) {\n            this.setTooltip(this.tooltip);\n        }\n        this.oninput(this.input, () => this.onValueChange());\n        this.onblur(this.input, () => this.onBlur());\n        this.onfocus(this.input, () => this.onFocus());\n        this._register(this.ignoreGesture(this.input));\n        setTimeout(() => this.updateMirror(), 0);\n        // Support actions\n        if (this.options.actions) {\n            this.actionbar = this._register(new ActionBar(this.element));\n            this.actionbar.push(this.options.actions, { icon: true, label: false });\n        }\n        this.applyStyles();\n    }\n    onBlur() {\n        this._hideMessage();\n        if (this.options.showPlaceholderOnFocus) {\n            this.input.setAttribute('placeholder', '');\n        }\n    }\n    onFocus() {\n        this._showMessage();\n        if (this.options.showPlaceholderOnFocus) {\n            this.input.setAttribute('placeholder', this.placeholder || '');\n        }\n    }\n    setPlaceHolder(placeHolder) {\n        this.placeholder = placeHolder;\n        this.input.setAttribute('placeholder', placeHolder);\n    }\n    setTooltip(tooltip) {\n        this.tooltip = tooltip;\n        if (!this.hover) {\n            this.hover = this._register(getBaseLayerHoverDelegate().setupUpdatableHover(getDefaultHoverDelegate('mouse'), this.input, tooltip));\n        }\n        else {\n            this.hover.update(tooltip);\n        }\n    }\n    get inputElement() {\n        return this.input;\n    }\n    get value() {\n        return this.input.value;\n    }\n    set value(newValue) {\n        if (this.input.value !== newValue) {\n            this.input.value = newValue;\n            this.onValueChange();\n        }\n    }\n    get height() {\n        return typeof this.cachedHeight === 'number' ? this.cachedHeight : dom.getTotalHeight(this.element);\n    }\n    focus() {\n        this.input.focus();\n    }\n    blur() {\n        this.input.blur();\n    }\n    hasFocus() {\n        return dom.isActiveElement(this.input);\n    }\n    select(range = null) {\n        this.input.select();\n        if (range) {\n            this.input.setSelectionRange(range.start, range.end);\n            if (range.end === this.input.value.length) {\n                this.input.scrollLeft = this.input.scrollWidth;\n            }\n        }\n    }\n    isSelectionAtEnd() {\n        return this.input.selectionEnd === this.input.value.length && this.input.selectionStart === this.input.selectionEnd;\n    }\n    getSelection() {\n        var _a;\n        const selectionStart = this.input.selectionStart;\n        if (selectionStart === null) {\n            return null;\n        }\n        const selectionEnd = (_a = this.input.selectionEnd) !== null && _a !== void 0 ? _a : selectionStart;\n        return {\n            start: selectionStart,\n            end: selectionEnd,\n        };\n    }\n    enable() {\n        this.input.removeAttribute('disabled');\n    }\n    disable() {\n        this.blur();\n        this.input.disabled = true;\n        this._hideMessage();\n    }\n    set paddingRight(paddingRight) {\n        // Set width to avoid hint text overlapping buttons\n        this.input.style.width = `calc(100% - ${paddingRight}px)`;\n        if (this.mirror) {\n            this.mirror.style.paddingRight = paddingRight + 'px';\n        }\n    }\n    updateScrollDimensions() {\n        if (typeof this.cachedContentHeight !== 'number' || typeof this.cachedHeight !== 'number' || !this.scrollableElement) {\n            return;\n        }\n        const scrollHeight = this.cachedContentHeight;\n        const height = this.cachedHeight;\n        const scrollTop = this.input.scrollTop;\n        this.scrollableElement.setScrollDimensions({ scrollHeight, height });\n        this.scrollableElement.setScrollPosition({ scrollTop });\n    }\n    showMessage(message, force) {\n        if (this.state === 'open' && equals(this.message, message)) {\n            // Already showing\n            return;\n        }\n        this.message = message;\n        this.element.classList.remove('idle');\n        this.element.classList.remove('info');\n        this.element.classList.remove('warning');\n        this.element.classList.remove('error');\n        this.element.classList.add(this.classForType(message.type));\n        const styles = this.stylesForType(this.message.type);\n        this.element.style.border = `1px solid ${dom.asCssValueWithDefault(styles.border, 'transparent')}`;\n        if (this.message.content && (this.hasFocus() || force)) {\n            this._showMessage();\n        }\n    }\n    hideMessage() {\n        this.message = null;\n        this.element.classList.remove('info');\n        this.element.classList.remove('warning');\n        this.element.classList.remove('error');\n        this.element.classList.add('idle');\n        this._hideMessage();\n        this.applyStyles();\n    }\n    validate() {\n        let errorMsg = null;\n        if (this.validation) {\n            errorMsg = this.validation(this.value);\n            if (errorMsg) {\n                this.inputElement.setAttribute('aria-invalid', 'true');\n                this.showMessage(errorMsg);\n            }\n            else if (this.inputElement.hasAttribute('aria-invalid')) {\n                this.inputElement.removeAttribute('aria-invalid');\n                this.hideMessage();\n            }\n        }\n        return errorMsg === null || errorMsg === void 0 ? void 0 : errorMsg.type;\n    }\n    stylesForType(type) {\n        const styles = this.options.inputBoxStyles;\n        switch (type) {\n            case 1 /* MessageType.INFO */: return { border: styles.inputValidationInfoBorder, background: styles.inputValidationInfoBackground, foreground: styles.inputValidationInfoForeground };\n            case 2 /* MessageType.WARNING */: return { border: styles.inputValidationWarningBorder, background: styles.inputValidationWarningBackground, foreground: styles.inputValidationWarningForeground };\n            default: return { border: styles.inputValidationErrorBorder, background: styles.inputValidationErrorBackground, foreground: styles.inputValidationErrorForeground };\n        }\n    }\n    classForType(type) {\n        switch (type) {\n            case 1 /* MessageType.INFO */: return 'info';\n            case 2 /* MessageType.WARNING */: return 'warning';\n            default: return 'error';\n        }\n    }\n    _showMessage() {\n        if (!this.contextViewProvider || !this.message) {\n            return;\n        }\n        let div;\n        const layout = () => div.style.width = dom.getTotalWidth(this.element) + 'px';\n        this.contextViewProvider.showContextView({\n            getAnchor: () => this.element,\n            anchorAlignment: 1 /* AnchorAlignment.RIGHT */,\n            render: (container) => {\n                var _a, _b;\n                if (!this.message) {\n                    return null;\n                }\n                div = dom.append(container, $('.monaco-inputbox-container'));\n                layout();\n                const renderOptions = {\n                    inline: true,\n                    className: 'monaco-inputbox-message'\n                };\n                const spanElement = (this.message.formatContent\n                    ? renderFormattedText(this.message.content, renderOptions)\n                    : renderText(this.message.content, renderOptions));\n                spanElement.classList.add(this.classForType(this.message.type));\n                const styles = this.stylesForType(this.message.type);\n                spanElement.style.backgroundColor = (_a = styles.background) !== null && _a !== void 0 ? _a : '';\n                spanElement.style.color = (_b = styles.foreground) !== null && _b !== void 0 ? _b : '';\n                spanElement.style.border = styles.border ? `1px solid ${styles.border}` : '';\n                dom.append(div, spanElement);\n                return null;\n            },\n            onHide: () => {\n                this.state = 'closed';\n            },\n            layout: layout\n        });\n        // ARIA Support\n        let alertText;\n        if (this.message.type === 3 /* MessageType.ERROR */) {\n            alertText = nls.localize('alertErrorMessage', \"Error: {0}\", this.message.content);\n        }\n        else if (this.message.type === 2 /* MessageType.WARNING */) {\n            alertText = nls.localize('alertWarningMessage', \"Warning: {0}\", this.message.content);\n        }\n        else {\n            alertText = nls.localize('alertInfoMessage', \"Info: {0}\", this.message.content);\n        }\n        aria.alert(alertText);\n        this.state = 'open';\n    }\n    _hideMessage() {\n        if (!this.contextViewProvider) {\n            return;\n        }\n        if (this.state === 'open') {\n            this.contextViewProvider.hideContextView();\n        }\n        this.state = 'idle';\n    }\n    onValueChange() {\n        this._onDidChange.fire(this.value);\n        this.validate();\n        this.updateMirror();\n        this.input.classList.toggle('empty', !this.value);\n        if (this.state === 'open' && this.contextViewProvider) {\n            this.contextViewProvider.layout();\n        }\n    }\n    updateMirror() {\n        if (!this.mirror) {\n            return;\n        }\n        const value = this.value;\n        const lastCharCode = value.charCodeAt(value.length - 1);\n        const suffix = lastCharCode === 10 ? ' ' : '';\n        const mirrorTextContent = (value + suffix)\n            .replace(/\\u000c/g, ''); // Don't measure with the form feed character, which messes up sizing\n        if (mirrorTextContent) {\n            this.mirror.textContent = value + suffix;\n        }\n        else {\n            this.mirror.innerText = '\\u00a0';\n        }\n        this.layout();\n    }\n    applyStyles() {\n        var _a, _b, _c;\n        const styles = this.options.inputBoxStyles;\n        const background = (_a = styles.inputBackground) !== null && _a !== void 0 ? _a : '';\n        const foreground = (_b = styles.inputForeground) !== null && _b !== void 0 ? _b : '';\n        const border = (_c = styles.inputBorder) !== null && _c !== void 0 ? _c : '';\n        this.element.style.backgroundColor = background;\n        this.element.style.color = foreground;\n        this.input.style.backgroundColor = 'inherit';\n        this.input.style.color = foreground;\n        // there's always a border, even if the color is not set.\n        this.element.style.border = `1px solid ${dom.asCssValueWithDefault(border, 'transparent')}`;\n    }\n    layout() {\n        if (!this.mirror) {\n            return;\n        }\n        const previousHeight = this.cachedContentHeight;\n        this.cachedContentHeight = dom.getTotalHeight(this.mirror);\n        if (previousHeight !== this.cachedContentHeight) {\n            this.cachedHeight = Math.min(this.cachedContentHeight, this.maxHeight);\n            this.input.style.height = this.cachedHeight + 'px';\n            this._onDidHeightChange.fire(this.cachedContentHeight);\n        }\n    }\n    insertAtCursor(text) {\n        const inputElement = this.inputElement;\n        const start = inputElement.selectionStart;\n        const end = inputElement.selectionEnd;\n        const content = inputElement.value;\n        if (start !== null && end !== null) {\n            this.value = content.substr(0, start) + text + content.substr(end);\n            inputElement.setSelectionRange(start + 1, start + 1);\n            this.layout();\n        }\n    }\n    dispose() {\n        var _a;\n        this._hideMessage();\n        this.message = null;\n        (_a = this.actionbar) === null || _a === void 0 ? void 0 : _a.dispose();\n        super.dispose();\n    }\n}\nexport class HistoryInputBox extends InputBox {\n    constructor(container, contextViewProvider, options) {\n        const NLS_PLACEHOLDER_HISTORY_HINT_SUFFIX_NO_PARENS = nls.localize({\n            key: 'history.inputbox.hint.suffix.noparens',\n            comment: ['Text is the suffix of an input field placeholder coming after the action the input field performs, this will be used when the input field ends in a closing parenthesis \")\", for example \"Filter (e.g. text, !exclude)\". The character inserted into the final string is \\u21C5 to represent the up and down arrow keys.']\n        }, ' or {0} for history', `\\u21C5`);\n        const NLS_PLACEHOLDER_HISTORY_HINT_SUFFIX_IN_PARENS = nls.localize({\n            key: 'history.inputbox.hint.suffix.inparens',\n            comment: ['Text is the suffix of an input field placeholder coming after the action the input field performs, this will be used when the input field does NOT end in a closing parenthesis (eg. \"Find\"). The character inserted into the final string is \\u21C5 to represent the up and down arrow keys.']\n        }, ' ({0} for history)', `\\u21C5`);\n        super(container, contextViewProvider, options);\n        this._onDidFocus = this._register(new Emitter());\n        this.onDidFocus = this._onDidFocus.event;\n        this._onDidBlur = this._register(new Emitter());\n        this.onDidBlur = this._onDidBlur.event;\n        this.history = new HistoryNavigator(options.history, 100);\n        // Function to append the history suffix to the placeholder if necessary\n        const addSuffix = () => {\n            if (options.showHistoryHint && options.showHistoryHint() && !this.placeholder.endsWith(NLS_PLACEHOLDER_HISTORY_HINT_SUFFIX_NO_PARENS) && !this.placeholder.endsWith(NLS_PLACEHOLDER_HISTORY_HINT_SUFFIX_IN_PARENS) && this.history.getHistory().length) {\n                const suffix = this.placeholder.endsWith(')') ? NLS_PLACEHOLDER_HISTORY_HINT_SUFFIX_NO_PARENS : NLS_PLACEHOLDER_HISTORY_HINT_SUFFIX_IN_PARENS;\n                const suffixedPlaceholder = this.placeholder + suffix;\n                if (options.showPlaceholderOnFocus && !dom.isActiveElement(this.input)) {\n                    this.placeholder = suffixedPlaceholder;\n                }\n                else {\n                    this.setPlaceHolder(suffixedPlaceholder);\n                }\n            }\n        };\n        // Spot the change to the textarea class attribute which occurs when it changes between non-empty and empty,\n        // and add the history suffix to the placeholder if not yet present\n        this.observer = new MutationObserver((mutationList, observer) => {\n            mutationList.forEach((mutation) => {\n                if (!mutation.target.textContent) {\n                    addSuffix();\n                }\n            });\n        });\n        this.observer.observe(this.input, { attributeFilter: ['class'] });\n        this.onfocus(this.input, () => addSuffix());\n        this.onblur(this.input, () => {\n            const resetPlaceholder = (historyHint) => {\n                if (!this.placeholder.endsWith(historyHint)) {\n                    return false;\n                }\n                else {\n                    const revertedPlaceholder = this.placeholder.slice(0, this.placeholder.length - historyHint.length);\n                    if (options.showPlaceholderOnFocus) {\n                        this.placeholder = revertedPlaceholder;\n                    }\n                    else {\n                        this.setPlaceHolder(revertedPlaceholder);\n                    }\n                    return true;\n                }\n            };\n            if (!resetPlaceholder(NLS_PLACEHOLDER_HISTORY_HINT_SUFFIX_IN_PARENS)) {\n                resetPlaceholder(NLS_PLACEHOLDER_HISTORY_HINT_SUFFIX_NO_PARENS);\n            }\n        });\n    }\n    dispose() {\n        super.dispose();\n        if (this.observer) {\n            this.observer.disconnect();\n            this.observer = undefined;\n        }\n    }\n    addToHistory(always) {\n        if (this.value && (always || this.value !== this.getCurrentValue())) {\n            this.history.add(this.value);\n        }\n    }\n    isAtLastInHistory() {\n        return this.history.isLast();\n    }\n    isNowhereInHistory() {\n        return this.history.isNowhere();\n    }\n    showNextValue() {\n        if (!this.history.has(this.value)) {\n            this.addToHistory();\n        }\n        let next = this.getNextValue();\n        if (next) {\n            next = next === this.value ? this.getNextValue() : next;\n        }\n        this.value = next !== null && next !== void 0 ? next : '';\n        aria.status(this.value ? this.value : nls.localize('clearedInput', \"Cleared Input\"));\n    }\n    showPreviousValue() {\n        if (!this.history.has(this.value)) {\n            this.addToHistory();\n        }\n        let previous = this.getPreviousValue();\n        if (previous) {\n            previous = previous === this.value ? this.getPreviousValue() : previous;\n        }\n        if (previous) {\n            this.value = previous;\n            aria.status(this.value);\n        }\n    }\n    setPlaceHolder(placeHolder) {\n        super.setPlaceHolder(placeHolder);\n        this.setTooltip(placeHolder);\n    }\n    onBlur() {\n        super.onBlur();\n        this._onDidBlur.fire();\n    }\n    onFocus() {\n        super.onFocus();\n        this._onDidFocus.fire();\n    }\n    getCurrentValue() {\n        let currentValue = this.history.current();\n        if (!currentValue) {\n            currentValue = this.history.last();\n            this.history.next();\n        }\n        return currentValue;\n    }\n    getPreviousValue() {\n        return this.history.previous() || this.history.first();\n    }\n    getNextValue() {\n        return this.history.next();\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/keybindingLabel/keybindingLabel.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-keybinding {\n\tdisplay: flex;\n\talign-items: center;\n\tline-height: 10px;\n}\n\n.monaco-keybinding > .monaco-keybinding-key {\n\tdisplay: inline-block;\n\tborder-style: solid;\n\tborder-width: 1px;\n\tborder-radius: 3px;\n\tvertical-align: middle;\n\tfont-size: 11px;\n\tpadding: 3px 5px;\n\tmargin: 0 2px;\n}\n\n.monaco-keybinding > .monaco-keybinding-key:first-child {\n\tmargin-left: 0;\n}\n\n.monaco-keybinding > .monaco-keybinding-key:last-child {\n\tmargin-right: 0;\n}\n\n.monaco-keybinding > .monaco-keybinding-key-separator {\n\tdisplay: inline-block;\n}\n\n.monaco-keybinding > .monaco-keybinding-key-chord-separator {\n\twidth: 6px;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/keybindingLabel/keybindingLabel.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../dom.js';\nimport { getBaseLayerHoverDelegate } from '../hover/hoverDelegate2.js';\nimport { getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';\nimport { UILabelProvider } from '../../../common/keybindingLabels.js';\nimport { Disposable } from '../../../common/lifecycle.js';\nimport { equals } from '../../../common/objects.js';\nimport './keybindingLabel.css';\nimport { localize } from '../../../../nls.js';\nconst $ = dom.$;\nexport const unthemedKeybindingLabelOptions = {\n    keybindingLabelBackground: undefined,\n    keybindingLabelForeground: undefined,\n    keybindingLabelBorder: undefined,\n    keybindingLabelBottomBorder: undefined,\n    keybindingLabelShadow: undefined\n};\nexport class KeybindingLabel extends Disposable {\n    constructor(container, os, options) {\n        super();\n        this.os = os;\n        this.keyElements = new Set();\n        this.options = options || Object.create(null);\n        const labelForeground = this.options.keybindingLabelForeground;\n        this.domNode = dom.append(container, $('.monaco-keybinding'));\n        if (labelForeground) {\n            this.domNode.style.color = labelForeground;\n        }\n        this.hover = this._register(getBaseLayerHoverDelegate().setupUpdatableHover(getDefaultHoverDelegate('mouse'), this.domNode, ''));\n        this.didEverRender = false;\n        container.appendChild(this.domNode);\n    }\n    get element() {\n        return this.domNode;\n    }\n    set(keybinding, matches) {\n        if (this.didEverRender && this.keybinding === keybinding && KeybindingLabel.areSame(this.matches, matches)) {\n            return;\n        }\n        this.keybinding = keybinding;\n        this.matches = matches;\n        this.render();\n    }\n    render() {\n        var _a;\n        this.clear();\n        if (this.keybinding) {\n            const chords = this.keybinding.getChords();\n            if (chords[0]) {\n                this.renderChord(this.domNode, chords[0], this.matches ? this.matches.firstPart : null);\n            }\n            for (let i = 1; i < chords.length; i++) {\n                dom.append(this.domNode, $('span.monaco-keybinding-key-chord-separator', undefined, ' '));\n                this.renderChord(this.domNode, chords[i], this.matches ? this.matches.chordPart : null);\n            }\n            const title = ((_a = this.options.disableTitle) !== null && _a !== void 0 ? _a : false) ? undefined : this.keybinding.getAriaLabel() || undefined;\n            this.hover.update(title);\n            this.domNode.setAttribute('aria-label', title || '');\n        }\n        else if (this.options && this.options.renderUnboundKeybindings) {\n            this.renderUnbound(this.domNode);\n        }\n        this.didEverRender = true;\n    }\n    clear() {\n        dom.clearNode(this.domNode);\n        this.keyElements.clear();\n    }\n    renderChord(parent, chord, match) {\n        const modifierLabels = UILabelProvider.modifierLabels[this.os];\n        if (chord.ctrlKey) {\n            this.renderKey(parent, modifierLabels.ctrlKey, Boolean(match === null || match === void 0 ? void 0 : match.ctrlKey), modifierLabels.separator);\n        }\n        if (chord.shiftKey) {\n            this.renderKey(parent, modifierLabels.shiftKey, Boolean(match === null || match === void 0 ? void 0 : match.shiftKey), modifierLabels.separator);\n        }\n        if (chord.altKey) {\n            this.renderKey(parent, modifierLabels.altKey, Boolean(match === null || match === void 0 ? void 0 : match.altKey), modifierLabels.separator);\n        }\n        if (chord.metaKey) {\n            this.renderKey(parent, modifierLabels.metaKey, Boolean(match === null || match === void 0 ? void 0 : match.metaKey), modifierLabels.separator);\n        }\n        const keyLabel = chord.keyLabel;\n        if (keyLabel) {\n            this.renderKey(parent, keyLabel, Boolean(match === null || match === void 0 ? void 0 : match.keyCode), '');\n        }\n    }\n    renderKey(parent, label, highlight, separator) {\n        dom.append(parent, this.createKeyElement(label, highlight ? '.highlight' : ''));\n        if (separator) {\n            dom.append(parent, $('span.monaco-keybinding-key-separator', undefined, separator));\n        }\n    }\n    renderUnbound(parent) {\n        dom.append(parent, this.createKeyElement(localize('unbound', \"Unbound\")));\n    }\n    createKeyElement(label, extraClass = '') {\n        const keyElement = $('span.monaco-keybinding-key' + extraClass, undefined, label);\n        this.keyElements.add(keyElement);\n        if (this.options.keybindingLabelBackground) {\n            keyElement.style.backgroundColor = this.options.keybindingLabelBackground;\n        }\n        if (this.options.keybindingLabelBorder) {\n            keyElement.style.borderColor = this.options.keybindingLabelBorder;\n        }\n        if (this.options.keybindingLabelBottomBorder) {\n            keyElement.style.borderBottomColor = this.options.keybindingLabelBottomBorder;\n        }\n        if (this.options.keybindingLabelShadow) {\n            keyElement.style.boxShadow = `inset 0 -1px 0 ${this.options.keybindingLabelShadow}`;\n        }\n        return keyElement;\n    }\n    static areSame(a, b) {\n        if (a === b || (!a && !b)) {\n            return true;\n        }\n        return !!a && !!b && equals(a.firstPart, b.firstPart) && equals(a.chordPart, b.chordPart);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/list/list.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-list {\n\tposition: relative;\n\theight: 100%;\n\twidth: 100%;\n\twhite-space: nowrap;\n}\n\n.monaco-list.mouse-support {\n\tuser-select: none;\n\t-webkit-user-select: none;\n}\n\n.monaco-list > .monaco-scrollable-element {\n\theight: 100%;\n}\n\n.monaco-list-rows {\n\tposition: relative;\n\twidth: 100%;\n\theight: 100%;\n}\n\n.monaco-list.horizontal-scrolling .monaco-list-rows {\n\twidth: auto;\n\tmin-width: 100%;\n}\n\n.monaco-list-row {\n\tposition: absolute;\n\tbox-sizing: border-box;\n\toverflow: hidden;\n\twidth: 100%;\n}\n\n.monaco-list.mouse-support .monaco-list-row {\n\tcursor: pointer;\n\ttouch-action: none;\n}\n\n/* Make sure the scrollbar renders above overlays (sticky scroll) */\n.monaco-list .monaco-scrollable-element > .scrollbar.vertical,\n.monaco-pane-view > .monaco-split-view2.vertical > .monaco-scrollable-element > .scrollbar.vertical {\n\tz-index: 14;\n}\n\n/* for OS X ballistic scrolling */\n.monaco-list-row.scrolling {\n\tdisplay: none !important;\n}\n\n/* Focus */\n.monaco-list.element-focused,\n.monaco-list.selection-single,\n.monaco-list.selection-multiple {\n\toutline: 0 !important;\n}\n\n/* Dnd */\n.monaco-drag-image {\n\tdisplay: inline-block;\n\tpadding: 1px 7px;\n\tborder-radius: 10px;\n\tfont-size: 12px;\n\tposition: absolute;\n\tz-index: 1000;\n}\n\n/* Filter */\n\n.monaco-list-type-filter-message {\n\tposition: absolute;\n\tbox-sizing: border-box;\n\twidth: 100%;\n\theight: 100%;\n\ttop: 0;\n\tleft: 0;\n\tpadding: 40px 1em 1em 1em;\n\ttext-align: center;\n\twhite-space: normal;\n\topacity: 0.7;\n\tpointer-events: none;\n}\n\n.monaco-list-type-filter-message:empty {\n\tdisplay: none;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/list/list.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class ListError extends Error {\n    constructor(user, message) {\n        super(`ListError [${user}] ${message}`);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/list/listPaging.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { range } from '../../../common/arrays.js';\nimport { CancellationTokenSource } from '../../../common/cancellation.js';\nimport { Event } from '../../../common/event.js';\nimport { Disposable } from '../../../common/lifecycle.js';\nimport './list.css';\nimport { List } from './listWidget.js';\nclass PagedRenderer {\n    get templateId() { return this.renderer.templateId; }\n    constructor(renderer, modelProvider) {\n        this.renderer = renderer;\n        this.modelProvider = modelProvider;\n    }\n    renderTemplate(container) {\n        const data = this.renderer.renderTemplate(container);\n        return { data, disposable: Disposable.None };\n    }\n    renderElement(index, _, data, height) {\n        var _a;\n        (_a = data.disposable) === null || _a === void 0 ? void 0 : _a.dispose();\n        if (!data.data) {\n            return;\n        }\n        const model = this.modelProvider();\n        if (model.isResolved(index)) {\n            return this.renderer.renderElement(model.get(index), index, data.data, height);\n        }\n        const cts = new CancellationTokenSource();\n        const promise = model.resolve(index, cts.token);\n        data.disposable = { dispose: () => cts.cancel() };\n        this.renderer.renderPlaceholder(index, data.data);\n        promise.then(entry => this.renderer.renderElement(entry, index, data.data, height));\n    }\n    disposeTemplate(data) {\n        if (data.disposable) {\n            data.disposable.dispose();\n            data.disposable = undefined;\n        }\n        if (data.data) {\n            this.renderer.disposeTemplate(data.data);\n            data.data = undefined;\n        }\n    }\n}\nclass PagedAccessibilityProvider {\n    constructor(modelProvider, accessibilityProvider) {\n        this.modelProvider = modelProvider;\n        this.accessibilityProvider = accessibilityProvider;\n    }\n    getWidgetAriaLabel() {\n        return this.accessibilityProvider.getWidgetAriaLabel();\n    }\n    getAriaLabel(index) {\n        const model = this.modelProvider();\n        if (!model.isResolved(index)) {\n            return null;\n        }\n        return this.accessibilityProvider.getAriaLabel(model.get(index));\n    }\n}\nfunction fromPagedListOptions(modelProvider, options) {\n    return {\n        ...options,\n        accessibilityProvider: options.accessibilityProvider && new PagedAccessibilityProvider(modelProvider, options.accessibilityProvider)\n    };\n}\nexport class PagedList {\n    constructor(user, container, virtualDelegate, renderers, options = {}) {\n        const modelProvider = () => this.model;\n        const pagedRenderers = renderers.map(r => new PagedRenderer(r, modelProvider));\n        this.list = new List(user, container, virtualDelegate, pagedRenderers, fromPagedListOptions(modelProvider, options));\n    }\n    updateOptions(options) {\n        this.list.updateOptions(options);\n    }\n    getHTMLElement() {\n        return this.list.getHTMLElement();\n    }\n    get onDidFocus() {\n        return this.list.onDidFocus;\n    }\n    get widget() {\n        return this.list;\n    }\n    get onDidDispose() {\n        return this.list.onDidDispose;\n    }\n    get onMouseDblClick() {\n        return Event.map(this.list.onMouseDblClick, ({ element, index, browserEvent }) => ({ element: element === undefined ? undefined : this._model.get(element), index, browserEvent }));\n    }\n    get onPointer() {\n        return Event.map(this.list.onPointer, ({ element, index, browserEvent }) => ({ element: element === undefined ? undefined : this._model.get(element), index, browserEvent }));\n    }\n    get onDidChangeSelection() {\n        return Event.map(this.list.onDidChangeSelection, ({ elements, indexes, browserEvent }) => ({ elements: elements.map(e => this._model.get(e)), indexes, browserEvent }));\n    }\n    get model() {\n        return this._model;\n    }\n    set model(model) {\n        this._model = model;\n        this.list.splice(0, this.list.length, range(model.length));\n    }\n    getFocus() {\n        return this.list.getFocus();\n    }\n    getSelection() {\n        return this.list.getSelection();\n    }\n    getSelectedElements() {\n        return this.getSelection().map(i => this.model.get(i));\n    }\n    style(styles) {\n        this.list.style(styles);\n    }\n    dispose() {\n        this.list.dispose();\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/list/listView.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { DataTransfers } from '../../dnd.js';\nimport { $, addDisposableListener, animate, getContentHeight, getContentWidth, getTopLeftOffset, getWindow, isAncestor, isHTMLElement, scheduleAtNextAnimationFrame } from '../../dom.js';\nimport { DomEmitter } from '../../event.js';\nimport { EventType as TouchEventType, Gesture } from '../../touch.js';\nimport { SmoothScrollableElement } from '../scrollbar/scrollableElement.js';\nimport { distinct, equals } from '../../../common/arrays.js';\nimport { Delayer, disposableTimeout } from '../../../common/async.js';\nimport { memoize } from '../../../common/decorators.js';\nimport { Emitter, Event } from '../../../common/event.js';\nimport { Disposable, DisposableStore, toDisposable } from '../../../common/lifecycle.js';\nimport { Range } from '../../../common/range.js';\nimport { Scrollable } from '../../../common/scrollable.js';\nimport { RangeMap, shift } from './rangeMap.js';\nimport { RowCache } from './rowCache.js';\nimport { BugIndicatingError } from '../../../common/errors.js';\nimport { clamp } from '../../../common/numbers.js';\nconst StaticDND = {\n    CurrentDragAndDropData: undefined\n};\nconst DefaultOptions = {\n    useShadows: true,\n    verticalScrollMode: 1 /* ScrollbarVisibility.Auto */,\n    setRowLineHeight: true,\n    setRowHeight: true,\n    supportDynamicHeights: false,\n    dnd: {\n        getDragElements(e) { return [e]; },\n        getDragURI() { return null; },\n        onDragStart() { },\n        onDragOver() { return false; },\n        drop() { },\n        dispose() { }\n    },\n    horizontalScrolling: false,\n    transformOptimization: true,\n    alwaysConsumeMouseWheel: true,\n};\nexport class ElementsDragAndDropData {\n    constructor(elements) {\n        this.elements = elements;\n    }\n    update() { }\n    getData() {\n        return this.elements;\n    }\n}\nexport class ExternalElementsDragAndDropData {\n    constructor(elements) {\n        this.elements = elements;\n    }\n    update() { }\n    getData() {\n        return this.elements;\n    }\n}\nexport class NativeDragAndDropData {\n    constructor() {\n        this.types = [];\n        this.files = [];\n    }\n    update(dataTransfer) {\n        if (dataTransfer.types) {\n            this.types.splice(0, this.types.length, ...dataTransfer.types);\n        }\n        if (dataTransfer.files) {\n            this.files.splice(0, this.files.length);\n            for (let i = 0; i < dataTransfer.files.length; i++) {\n                const file = dataTransfer.files.item(i);\n                if (file && (file.size || file.type)) {\n                    this.files.push(file);\n                }\n            }\n        }\n    }\n    getData() {\n        return {\n            types: this.types,\n            files: this.files\n        };\n    }\n}\nfunction equalsDragFeedback(f1, f2) {\n    if (Array.isArray(f1) && Array.isArray(f2)) {\n        return equals(f1, f2);\n    }\n    return f1 === f2;\n}\nclass ListViewAccessibilityProvider {\n    constructor(accessibilityProvider) {\n        if (accessibilityProvider === null || accessibilityProvider === void 0 ? void 0 : accessibilityProvider.getSetSize) {\n            this.getSetSize = accessibilityProvider.getSetSize.bind(accessibilityProvider);\n        }\n        else {\n            this.getSetSize = (e, i, l) => l;\n        }\n        if (accessibilityProvider === null || accessibilityProvider === void 0 ? void 0 : accessibilityProvider.getPosInSet) {\n            this.getPosInSet = accessibilityProvider.getPosInSet.bind(accessibilityProvider);\n        }\n        else {\n            this.getPosInSet = (e, i) => i + 1;\n        }\n        if (accessibilityProvider === null || accessibilityProvider === void 0 ? void 0 : accessibilityProvider.getRole) {\n            this.getRole = accessibilityProvider.getRole.bind(accessibilityProvider);\n        }\n        else {\n            this.getRole = _ => 'listitem';\n        }\n        if (accessibilityProvider === null || accessibilityProvider === void 0 ? void 0 : accessibilityProvider.isChecked) {\n            this.isChecked = accessibilityProvider.isChecked.bind(accessibilityProvider);\n        }\n        else {\n            this.isChecked = _ => undefined;\n        }\n    }\n}\n/**\n * The {@link ListView} is a virtual scrolling engine.\n *\n * Given that it only renders elements within its viewport, it can hold large\n * collections of elements and stay very performant. The performance bottleneck\n * usually lies within the user's rendering code for each element.\n *\n * @remarks It is a low-level widget, not meant to be used directly. Refer to the\n * List widget instead.\n */\nexport class ListView {\n    get contentHeight() { return this.rangeMap.size; }\n    get onDidScroll() { return this.scrollableElement.onScroll; }\n    get scrollableElementDomNode() { return this.scrollableElement.getDomNode(); }\n    get horizontalScrolling() { return this._horizontalScrolling; }\n    set horizontalScrolling(value) {\n        if (value === this._horizontalScrolling) {\n            return;\n        }\n        if (value && this.supportDynamicHeights) {\n            throw new Error('Horizontal scrolling and dynamic heights not supported simultaneously');\n        }\n        this._horizontalScrolling = value;\n        this.domNode.classList.toggle('horizontal-scrolling', this._horizontalScrolling);\n        if (this._horizontalScrolling) {\n            for (const item of this.items) {\n                this.measureItemWidth(item);\n            }\n            this.updateScrollWidth();\n            this.scrollableElement.setScrollDimensions({ width: getContentWidth(this.domNode) });\n            this.rowsContainer.style.width = `${Math.max(this.scrollWidth || 0, this.renderWidth)}px`;\n        }\n        else {\n            this.scrollableElementWidthDelayer.cancel();\n            this.scrollableElement.setScrollDimensions({ width: this.renderWidth, scrollWidth: this.renderWidth });\n            this.rowsContainer.style.width = '';\n        }\n    }\n    constructor(container, virtualDelegate, renderers, options = DefaultOptions) {\n        var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;\n        this.virtualDelegate = virtualDelegate;\n        this.domId = `list_id_${++ListView.InstanceCount}`;\n        this.renderers = new Map();\n        this.renderWidth = 0;\n        this._scrollHeight = 0;\n        this.scrollableElementUpdateDisposable = null;\n        this.scrollableElementWidthDelayer = new Delayer(50);\n        this.splicing = false;\n        this.dragOverAnimationStopDisposable = Disposable.None;\n        this.dragOverMouseY = 0;\n        this.canDrop = false;\n        this.currentDragFeedbackDisposable = Disposable.None;\n        this.onDragLeaveTimeout = Disposable.None;\n        this.disposables = new DisposableStore();\n        this._onDidChangeContentHeight = new Emitter();\n        this._onDidChangeContentWidth = new Emitter();\n        this.onDidChangeContentHeight = Event.latch(this._onDidChangeContentHeight.event, undefined, this.disposables);\n        this._horizontalScrolling = false;\n        if (options.horizontalScrolling && options.supportDynamicHeights) {\n            throw new Error('Horizontal scrolling and dynamic heights not supported simultaneously');\n        }\n        this.items = [];\n        this.itemId = 0;\n        this.rangeMap = this.createRangeMap((_a = options.paddingTop) !== null && _a !== void 0 ? _a : 0);\n        for (const renderer of renderers) {\n            this.renderers.set(renderer.templateId, renderer);\n        }\n        this.cache = this.disposables.add(new RowCache(this.renderers));\n        this.lastRenderTop = 0;\n        this.lastRenderHeight = 0;\n        this.domNode = document.createElement('div');\n        this.domNode.className = 'monaco-list';\n        this.domNode.classList.add(this.domId);\n        this.domNode.tabIndex = 0;\n        this.domNode.classList.toggle('mouse-support', typeof options.mouseSupport === 'boolean' ? options.mouseSupport : true);\n        this._horizontalScrolling = (_b = options.horizontalScrolling) !== null && _b !== void 0 ? _b : DefaultOptions.horizontalScrolling;\n        this.domNode.classList.toggle('horizontal-scrolling', this._horizontalScrolling);\n        this.paddingBottom = typeof options.paddingBottom === 'undefined' ? 0 : options.paddingBottom;\n        this.accessibilityProvider = new ListViewAccessibilityProvider(options.accessibilityProvider);\n        this.rowsContainer = document.createElement('div');\n        this.rowsContainer.className = 'monaco-list-rows';\n        const transformOptimization = (_c = options.transformOptimization) !== null && _c !== void 0 ? _c : DefaultOptions.transformOptimization;\n        if (transformOptimization) {\n            this.rowsContainer.style.transform = 'translate3d(0px, 0px, 0px)';\n            this.rowsContainer.style.overflow = 'hidden';\n            this.rowsContainer.style.contain = 'strict';\n        }\n        this.disposables.add(Gesture.addTarget(this.rowsContainer));\n        this.scrollable = this.disposables.add(new Scrollable({\n            forceIntegerValues: true,\n            smoothScrollDuration: ((_d = options.smoothScrolling) !== null && _d !== void 0 ? _d : false) ? 125 : 0,\n            scheduleAtNextAnimationFrame: cb => scheduleAtNextAnimationFrame(getWindow(this.domNode), cb)\n        }));\n        this.scrollableElement = this.disposables.add(new SmoothScrollableElement(this.rowsContainer, {\n            alwaysConsumeMouseWheel: (_e = options.alwaysConsumeMouseWheel) !== null && _e !== void 0 ? _e : DefaultOptions.alwaysConsumeMouseWheel,\n            horizontal: 1 /* ScrollbarVisibility.Auto */,\n            vertical: (_f = options.verticalScrollMode) !== null && _f !== void 0 ? _f : DefaultOptions.verticalScrollMode,\n            useShadows: (_g = options.useShadows) !== null && _g !== void 0 ? _g : DefaultOptions.useShadows,\n            mouseWheelScrollSensitivity: options.mouseWheelScrollSensitivity,\n            fastScrollSensitivity: options.fastScrollSensitivity,\n            scrollByPage: options.scrollByPage\n        }, this.scrollable));\n        this.domNode.appendChild(this.scrollableElement.getDomNode());\n        container.appendChild(this.domNode);\n        this.scrollableElement.onScroll(this.onScroll, this, this.disposables);\n        this.disposables.add(addDisposableListener(this.rowsContainer, TouchEventType.Change, e => this.onTouchChange(e)));\n        // Prevent the monaco-scrollable-element from scrolling\n        // https://github.com/microsoft/vscode/issues/44181\n        this.disposables.add(addDisposableListener(this.scrollableElement.getDomNode(), 'scroll', e => e.target.scrollTop = 0));\n        this.disposables.add(addDisposableListener(this.domNode, 'dragover', e => this.onDragOver(this.toDragEvent(e))));\n        this.disposables.add(addDisposableListener(this.domNode, 'drop', e => this.onDrop(this.toDragEvent(e))));\n        this.disposables.add(addDisposableListener(this.domNode, 'dragleave', e => this.onDragLeave(this.toDragEvent(e))));\n        this.disposables.add(addDisposableListener(this.domNode, 'dragend', e => this.onDragEnd(e)));\n        this.setRowLineHeight = (_h = options.setRowLineHeight) !== null && _h !== void 0 ? _h : DefaultOptions.setRowLineHeight;\n        this.setRowHeight = (_j = options.setRowHeight) !== null && _j !== void 0 ? _j : DefaultOptions.setRowHeight;\n        this.supportDynamicHeights = (_k = options.supportDynamicHeights) !== null && _k !== void 0 ? _k : DefaultOptions.supportDynamicHeights;\n        this.dnd = (_l = options.dnd) !== null && _l !== void 0 ? _l : this.disposables.add(DefaultOptions.dnd);\n        this.layout((_m = options.initialSize) === null || _m === void 0 ? void 0 : _m.height, (_o = options.initialSize) === null || _o === void 0 ? void 0 : _o.width);\n    }\n    updateOptions(options) {\n        if (options.paddingBottom !== undefined) {\n            this.paddingBottom = options.paddingBottom;\n            this.scrollableElement.setScrollDimensions({ scrollHeight: this.scrollHeight });\n        }\n        if (options.smoothScrolling !== undefined) {\n            this.scrollable.setSmoothScrollDuration(options.smoothScrolling ? 125 : 0);\n        }\n        if (options.horizontalScrolling !== undefined) {\n            this.horizontalScrolling = options.horizontalScrolling;\n        }\n        let scrollableOptions;\n        if (options.scrollByPage !== undefined) {\n            scrollableOptions = { ...(scrollableOptions !== null && scrollableOptions !== void 0 ? scrollableOptions : {}), scrollByPage: options.scrollByPage };\n        }\n        if (options.mouseWheelScrollSensitivity !== undefined) {\n            scrollableOptions = { ...(scrollableOptions !== null && scrollableOptions !== void 0 ? scrollableOptions : {}), mouseWheelScrollSensitivity: options.mouseWheelScrollSensitivity };\n        }\n        if (options.fastScrollSensitivity !== undefined) {\n            scrollableOptions = { ...(scrollableOptions !== null && scrollableOptions !== void 0 ? scrollableOptions : {}), fastScrollSensitivity: options.fastScrollSensitivity };\n        }\n        if (scrollableOptions) {\n            this.scrollableElement.updateOptions(scrollableOptions);\n        }\n        if (options.paddingTop !== undefined && options.paddingTop !== this.rangeMap.paddingTop) {\n            // trigger a rerender\n            const lastRenderRange = this.getRenderRange(this.lastRenderTop, this.lastRenderHeight);\n            const offset = options.paddingTop - this.rangeMap.paddingTop;\n            this.rangeMap.paddingTop = options.paddingTop;\n            this.render(lastRenderRange, Math.max(0, this.lastRenderTop + offset), this.lastRenderHeight, undefined, undefined, true);\n            this.setScrollTop(this.lastRenderTop);\n            this.eventuallyUpdateScrollDimensions();\n            if (this.supportDynamicHeights) {\n                this._rerender(this.lastRenderTop, this.lastRenderHeight);\n            }\n        }\n    }\n    createRangeMap(paddingTop) {\n        return new RangeMap(paddingTop);\n    }\n    splice(start, deleteCount, elements = []) {\n        if (this.splicing) {\n            throw new Error('Can\\'t run recursive splices.');\n        }\n        this.splicing = true;\n        try {\n            return this._splice(start, deleteCount, elements);\n        }\n        finally {\n            this.splicing = false;\n            this._onDidChangeContentHeight.fire(this.contentHeight);\n        }\n    }\n    _splice(start, deleteCount, elements = []) {\n        const previousRenderRange = this.getRenderRange(this.lastRenderTop, this.lastRenderHeight);\n        const deleteRange = { start, end: start + deleteCount };\n        const removeRange = Range.intersect(previousRenderRange, deleteRange);\n        // try to reuse rows, avoid removing them from DOM\n        const rowsToDispose = new Map();\n        for (let i = removeRange.end - 1; i >= removeRange.start; i--) {\n            const item = this.items[i];\n            item.dragStartDisposable.dispose();\n            item.checkedDisposable.dispose();\n            if (item.row) {\n                let rows = rowsToDispose.get(item.templateId);\n                if (!rows) {\n                    rows = [];\n                    rowsToDispose.set(item.templateId, rows);\n                }\n                const renderer = this.renderers.get(item.templateId);\n                if (renderer && renderer.disposeElement) {\n                    renderer.disposeElement(item.element, i, item.row.templateData, item.size);\n                }\n                rows.unshift(item.row);\n            }\n            item.row = null;\n            item.stale = true;\n        }\n        const previousRestRange = { start: start + deleteCount, end: this.items.length };\n        const previousRenderedRestRange = Range.intersect(previousRestRange, previousRenderRange);\n        const previousUnrenderedRestRanges = Range.relativeComplement(previousRestRange, previousRenderRange);\n        const inserted = elements.map(element => ({\n            id: String(this.itemId++),\n            element,\n            templateId: this.virtualDelegate.getTemplateId(element),\n            size: this.virtualDelegate.getHeight(element),\n            width: undefined,\n            hasDynamicHeight: !!this.virtualDelegate.hasDynamicHeight && this.virtualDelegate.hasDynamicHeight(element),\n            lastDynamicHeightWidth: undefined,\n            row: null,\n            uri: undefined,\n            dropTarget: false,\n            dragStartDisposable: Disposable.None,\n            checkedDisposable: Disposable.None,\n            stale: false\n        }));\n        let deleted;\n        // TODO@joao: improve this optimization to catch even more cases\n        if (start === 0 && deleteCount >= this.items.length) {\n            this.rangeMap = this.createRangeMap(this.rangeMap.paddingTop);\n            this.rangeMap.splice(0, 0, inserted);\n            deleted = this.items;\n            this.items = inserted;\n        }\n        else {\n            this.rangeMap.splice(start, deleteCount, inserted);\n            deleted = this.items.splice(start, deleteCount, ...inserted);\n        }\n        const delta = elements.length - deleteCount;\n        const renderRange = this.getRenderRange(this.lastRenderTop, this.lastRenderHeight);\n        const renderedRestRange = shift(previousRenderedRestRange, delta);\n        const updateRange = Range.intersect(renderRange, renderedRestRange);\n        for (let i = updateRange.start; i < updateRange.end; i++) {\n            this.updateItemInDOM(this.items[i], i);\n        }\n        const removeRanges = Range.relativeComplement(renderedRestRange, renderRange);\n        for (const range of removeRanges) {\n            for (let i = range.start; i < range.end; i++) {\n                this.removeItemFromDOM(i);\n            }\n        }\n        const unrenderedRestRanges = previousUnrenderedRestRanges.map(r => shift(r, delta));\n        const elementsRange = { start, end: start + elements.length };\n        const insertRanges = [elementsRange, ...unrenderedRestRanges].map(r => Range.intersect(renderRange, r)).reverse();\n        for (const range of insertRanges) {\n            for (let i = range.end - 1; i >= range.start; i--) {\n                const item = this.items[i];\n                const rows = rowsToDispose.get(item.templateId);\n                const row = rows === null || rows === void 0 ? void 0 : rows.pop();\n                this.insertItemInDOM(i, row);\n            }\n        }\n        for (const rows of rowsToDispose.values()) {\n            for (const row of rows) {\n                this.cache.release(row);\n            }\n        }\n        this.eventuallyUpdateScrollDimensions();\n        if (this.supportDynamicHeights) {\n            this._rerender(this.scrollTop, this.renderHeight);\n        }\n        return deleted.map(i => i.element);\n    }\n    eventuallyUpdateScrollDimensions() {\n        this._scrollHeight = this.contentHeight;\n        this.rowsContainer.style.height = `${this._scrollHeight}px`;\n        if (!this.scrollableElementUpdateDisposable) {\n            this.scrollableElementUpdateDisposable = scheduleAtNextAnimationFrame(getWindow(this.domNode), () => {\n                this.scrollableElement.setScrollDimensions({ scrollHeight: this.scrollHeight });\n                this.updateScrollWidth();\n                this.scrollableElementUpdateDisposable = null;\n            });\n        }\n    }\n    eventuallyUpdateScrollWidth() {\n        if (!this.horizontalScrolling) {\n            this.scrollableElementWidthDelayer.cancel();\n            return;\n        }\n        this.scrollableElementWidthDelayer.trigger(() => this.updateScrollWidth());\n    }\n    updateScrollWidth() {\n        if (!this.horizontalScrolling) {\n            return;\n        }\n        let scrollWidth = 0;\n        for (const item of this.items) {\n            if (typeof item.width !== 'undefined') {\n                scrollWidth = Math.max(scrollWidth, item.width);\n            }\n        }\n        this.scrollWidth = scrollWidth;\n        this.scrollableElement.setScrollDimensions({ scrollWidth: scrollWidth === 0 ? 0 : (scrollWidth + 10) });\n        this._onDidChangeContentWidth.fire(this.scrollWidth);\n    }\n    rerender() {\n        if (!this.supportDynamicHeights) {\n            return;\n        }\n        for (const item of this.items) {\n            item.lastDynamicHeightWidth = undefined;\n        }\n        this._rerender(this.lastRenderTop, this.lastRenderHeight);\n    }\n    get length() {\n        return this.items.length;\n    }\n    get renderHeight() {\n        const scrollDimensions = this.scrollableElement.getScrollDimensions();\n        return scrollDimensions.height;\n    }\n    get firstVisibleIndex() {\n        const range = this.getRenderRange(this.lastRenderTop, this.lastRenderHeight);\n        return range.start;\n    }\n    element(index) {\n        return this.items[index].element;\n    }\n    indexOf(element) {\n        return this.items.findIndex(item => item.element === element);\n    }\n    domElement(index) {\n        const row = this.items[index].row;\n        return row && row.domNode;\n    }\n    elementHeight(index) {\n        return this.items[index].size;\n    }\n    elementTop(index) {\n        return this.rangeMap.positionAt(index);\n    }\n    indexAt(position) {\n        return this.rangeMap.indexAt(position);\n    }\n    indexAfter(position) {\n        return this.rangeMap.indexAfter(position);\n    }\n    layout(height, width) {\n        const scrollDimensions = {\n            height: typeof height === 'number' ? height : getContentHeight(this.domNode)\n        };\n        if (this.scrollableElementUpdateDisposable) {\n            this.scrollableElementUpdateDisposable.dispose();\n            this.scrollableElementUpdateDisposable = null;\n            scrollDimensions.scrollHeight = this.scrollHeight;\n        }\n        this.scrollableElement.setScrollDimensions(scrollDimensions);\n        if (typeof width !== 'undefined') {\n            this.renderWidth = width;\n            if (this.supportDynamicHeights) {\n                this._rerender(this.scrollTop, this.renderHeight);\n            }\n        }\n        if (this.horizontalScrolling) {\n            this.scrollableElement.setScrollDimensions({\n                width: typeof width === 'number' ? width : getContentWidth(this.domNode)\n            });\n        }\n    }\n    // Render\n    render(previousRenderRange, renderTop, renderHeight, renderLeft, scrollWidth, updateItemsInDOM = false) {\n        const renderRange = this.getRenderRange(renderTop, renderHeight);\n        const rangesToInsert = Range.relativeComplement(renderRange, previousRenderRange).reverse();\n        const rangesToRemove = Range.relativeComplement(previousRenderRange, renderRange);\n        if (updateItemsInDOM) {\n            const rangesToUpdate = Range.intersect(previousRenderRange, renderRange);\n            for (let i = rangesToUpdate.start; i < rangesToUpdate.end; i++) {\n                this.updateItemInDOM(this.items[i], i);\n            }\n        }\n        this.cache.transact(() => {\n            for (const range of rangesToRemove) {\n                for (let i = range.start; i < range.end; i++) {\n                    this.removeItemFromDOM(i);\n                }\n            }\n            for (const range of rangesToInsert) {\n                for (let i = range.end - 1; i >= range.start; i--) {\n                    this.insertItemInDOM(i);\n                }\n            }\n        });\n        if (renderLeft !== undefined) {\n            this.rowsContainer.style.left = `-${renderLeft}px`;\n        }\n        this.rowsContainer.style.top = `-${renderTop}px`;\n        if (this.horizontalScrolling && scrollWidth !== undefined) {\n            this.rowsContainer.style.width = `${Math.max(scrollWidth, this.renderWidth)}px`;\n        }\n        this.lastRenderTop = renderTop;\n        this.lastRenderHeight = renderHeight;\n    }\n    // DOM operations\n    insertItemInDOM(index, row) {\n        var _a, _b, _c;\n        const item = this.items[index];\n        if (!item.row) {\n            if (row) {\n                item.row = row;\n                item.stale = true;\n            }\n            else {\n                const result = this.cache.alloc(item.templateId);\n                item.row = result.row;\n                item.stale || (item.stale = result.isReusingConnectedDomNode);\n            }\n        }\n        const role = this.accessibilityProvider.getRole(item.element) || 'listitem';\n        item.row.domNode.setAttribute('role', role);\n        const checked = this.accessibilityProvider.isChecked(item.element);\n        if (typeof checked === 'boolean') {\n            item.row.domNode.setAttribute('aria-checked', String(!!checked));\n        }\n        else if (checked) {\n            const update = (checked) => item.row.domNode.setAttribute('aria-checked', String(!!checked));\n            update(checked.value);\n            item.checkedDisposable = checked.onDidChange(() => update(checked.value));\n        }\n        if (item.stale || !item.row.domNode.parentElement) {\n            const referenceNode = (_c = (_b = (_a = this.items.at(index + 1)) === null || _a === void 0 ? void 0 : _a.row) === null || _b === void 0 ? void 0 : _b.domNode) !== null && _c !== void 0 ? _c : null;\n            if (item.row.domNode.parentElement !== this.rowsContainer || item.row.domNode.nextElementSibling !== referenceNode) {\n                this.rowsContainer.insertBefore(item.row.domNode, referenceNode);\n            }\n            item.stale = false;\n        }\n        this.updateItemInDOM(item, index);\n        const renderer = this.renderers.get(item.templateId);\n        if (!renderer) {\n            throw new Error(`No renderer found for template id ${item.templateId}`);\n        }\n        renderer === null || renderer === void 0 ? void 0 : renderer.renderElement(item.element, index, item.row.templateData, item.size);\n        const uri = this.dnd.getDragURI(item.element);\n        item.dragStartDisposable.dispose();\n        item.row.domNode.draggable = !!uri;\n        if (uri) {\n            item.dragStartDisposable = addDisposableListener(item.row.domNode, 'dragstart', event => this.onDragStart(item.element, uri, event));\n        }\n        if (this.horizontalScrolling) {\n            this.measureItemWidth(item);\n            this.eventuallyUpdateScrollWidth();\n        }\n    }\n    measureItemWidth(item) {\n        if (!item.row || !item.row.domNode) {\n            return;\n        }\n        item.row.domNode.style.width = 'fit-content';\n        item.width = getContentWidth(item.row.domNode);\n        const style = getWindow(item.row.domNode).getComputedStyle(item.row.domNode);\n        if (style.paddingLeft) {\n            item.width += parseFloat(style.paddingLeft);\n        }\n        if (style.paddingRight) {\n            item.width += parseFloat(style.paddingRight);\n        }\n        item.row.domNode.style.width = '';\n    }\n    updateItemInDOM(item, index) {\n        item.row.domNode.style.top = `${this.elementTop(index)}px`;\n        if (this.setRowHeight) {\n            item.row.domNode.style.height = `${item.size}px`;\n        }\n        if (this.setRowLineHeight) {\n            item.row.domNode.style.lineHeight = `${item.size}px`;\n        }\n        item.row.domNode.setAttribute('data-index', `${index}`);\n        item.row.domNode.setAttribute('data-last-element', index === this.length - 1 ? 'true' : 'false');\n        item.row.domNode.setAttribute('data-parity', index % 2 === 0 ? 'even' : 'odd');\n        item.row.domNode.setAttribute('aria-setsize', String(this.accessibilityProvider.getSetSize(item.element, index, this.length)));\n        item.row.domNode.setAttribute('aria-posinset', String(this.accessibilityProvider.getPosInSet(item.element, index)));\n        item.row.domNode.setAttribute('id', this.getElementDomId(index));\n        item.row.domNode.classList.toggle('drop-target', item.dropTarget);\n    }\n    removeItemFromDOM(index) {\n        const item = this.items[index];\n        item.dragStartDisposable.dispose();\n        item.checkedDisposable.dispose();\n        if (item.row) {\n            const renderer = this.renderers.get(item.templateId);\n            if (renderer && renderer.disposeElement) {\n                renderer.disposeElement(item.element, index, item.row.templateData, item.size);\n            }\n            this.cache.release(item.row);\n            item.row = null;\n        }\n        if (this.horizontalScrolling) {\n            this.eventuallyUpdateScrollWidth();\n        }\n    }\n    getScrollTop() {\n        const scrollPosition = this.scrollableElement.getScrollPosition();\n        return scrollPosition.scrollTop;\n    }\n    setScrollTop(scrollTop, reuseAnimation) {\n        if (this.scrollableElementUpdateDisposable) {\n            this.scrollableElementUpdateDisposable.dispose();\n            this.scrollableElementUpdateDisposable = null;\n            this.scrollableElement.setScrollDimensions({ scrollHeight: this.scrollHeight });\n        }\n        this.scrollableElement.setScrollPosition({ scrollTop, reuseAnimation });\n    }\n    get scrollTop() {\n        return this.getScrollTop();\n    }\n    set scrollTop(scrollTop) {\n        this.setScrollTop(scrollTop);\n    }\n    get scrollHeight() {\n        return this._scrollHeight + (this.horizontalScrolling ? 10 : 0) + this.paddingBottom;\n    }\n    // Events\n    get onMouseClick() { return Event.map(this.disposables.add(new DomEmitter(this.domNode, 'click')).event, e => this.toMouseEvent(e), this.disposables); }\n    get onMouseDblClick() { return Event.map(this.disposables.add(new DomEmitter(this.domNode, 'dblclick')).event, e => this.toMouseEvent(e), this.disposables); }\n    get onMouseMiddleClick() { return Event.filter(Event.map(this.disposables.add(new DomEmitter(this.domNode, 'auxclick')).event, e => this.toMouseEvent(e), this.disposables), e => e.browserEvent.button === 1, this.disposables); }\n    get onMouseDown() { return Event.map(this.disposables.add(new DomEmitter(this.domNode, 'mousedown')).event, e => this.toMouseEvent(e), this.disposables); }\n    get onMouseOver() { return Event.map(this.disposables.add(new DomEmitter(this.domNode, 'mouseover')).event, e => this.toMouseEvent(e), this.disposables); }\n    get onMouseOut() { return Event.map(this.disposables.add(new DomEmitter(this.domNode, 'mouseout')).event, e => this.toMouseEvent(e), this.disposables); }\n    get onContextMenu() { return Event.any(Event.map(this.disposables.add(new DomEmitter(this.domNode, 'contextmenu')).event, e => this.toMouseEvent(e), this.disposables), Event.map(this.disposables.add(new DomEmitter(this.domNode, TouchEventType.Contextmenu)).event, e => this.toGestureEvent(e), this.disposables)); }\n    get onTouchStart() { return Event.map(this.disposables.add(new DomEmitter(this.domNode, 'touchstart')).event, e => this.toTouchEvent(e), this.disposables); }\n    get onTap() { return Event.map(this.disposables.add(new DomEmitter(this.rowsContainer, TouchEventType.Tap)).event, e => this.toGestureEvent(e), this.disposables); }\n    toMouseEvent(browserEvent) {\n        const index = this.getItemIndexFromEventTarget(browserEvent.target || null);\n        const item = typeof index === 'undefined' ? undefined : this.items[index];\n        const element = item && item.element;\n        return { browserEvent, index, element };\n    }\n    toTouchEvent(browserEvent) {\n        const index = this.getItemIndexFromEventTarget(browserEvent.target || null);\n        const item = typeof index === 'undefined' ? undefined : this.items[index];\n        const element = item && item.element;\n        return { browserEvent, index, element };\n    }\n    toGestureEvent(browserEvent) {\n        const index = this.getItemIndexFromEventTarget(browserEvent.initialTarget || null);\n        const item = typeof index === 'undefined' ? undefined : this.items[index];\n        const element = item && item.element;\n        return { browserEvent, index, element };\n    }\n    toDragEvent(browserEvent) {\n        const index = this.getItemIndexFromEventTarget(browserEvent.target || null);\n        const item = typeof index === 'undefined' ? undefined : this.items[index];\n        const element = item && item.element;\n        const sector = this.getTargetSector(browserEvent, index);\n        return { browserEvent, index, element, sector };\n    }\n    onScroll(e) {\n        try {\n            const previousRenderRange = this.getRenderRange(this.lastRenderTop, this.lastRenderHeight);\n            this.render(previousRenderRange, e.scrollTop, e.height, e.scrollLeft, e.scrollWidth);\n            if (this.supportDynamicHeights) {\n                this._rerender(e.scrollTop, e.height, e.inSmoothScrolling);\n            }\n        }\n        catch (err) {\n            console.error('Got bad scroll event:', e);\n            throw err;\n        }\n    }\n    onTouchChange(event) {\n        event.preventDefault();\n        event.stopPropagation();\n        this.scrollTop -= event.translationY;\n    }\n    // DND\n    onDragStart(element, uri, event) {\n        var _a, _b;\n        if (!event.dataTransfer) {\n            return;\n        }\n        const elements = this.dnd.getDragElements(element);\n        event.dataTransfer.effectAllowed = 'copyMove';\n        event.dataTransfer.setData(DataTransfers.TEXT, uri);\n        if (event.dataTransfer.setDragImage) {\n            let label;\n            if (this.dnd.getDragLabel) {\n                label = this.dnd.getDragLabel(elements, event);\n            }\n            if (typeof label === 'undefined') {\n                label = String(elements.length);\n            }\n            const dragImage = $('.monaco-drag-image');\n            dragImage.textContent = label;\n            const getDragImageContainer = (e) => {\n                while (e && !e.classList.contains('monaco-workbench')) {\n                    e = e.parentElement;\n                }\n                return e || this.domNode.ownerDocument;\n            };\n            const container = getDragImageContainer(this.domNode);\n            container.appendChild(dragImage);\n            event.dataTransfer.setDragImage(dragImage, -10, -10);\n            setTimeout(() => container.removeChild(dragImage), 0);\n        }\n        this.domNode.classList.add('dragging');\n        this.currentDragData = new ElementsDragAndDropData(elements);\n        StaticDND.CurrentDragAndDropData = new ExternalElementsDragAndDropData(elements);\n        (_b = (_a = this.dnd).onDragStart) === null || _b === void 0 ? void 0 : _b.call(_a, this.currentDragData, event);\n    }\n    onDragOver(event) {\n        var _a, _b;\n        event.browserEvent.preventDefault(); // needed so that the drop event fires (https://stackoverflow.com/questions/21339924/drop-event-not-firing-in-chrome)\n        this.onDragLeaveTimeout.dispose();\n        if (StaticDND.CurrentDragAndDropData && StaticDND.CurrentDragAndDropData.getData() === 'vscode-ui') {\n            return false;\n        }\n        this.setupDragAndDropScrollTopAnimation(event.browserEvent);\n        if (!event.browserEvent.dataTransfer) {\n            return false;\n        }\n        // Drag over from outside\n        if (!this.currentDragData) {\n            if (StaticDND.CurrentDragAndDropData) {\n                // Drag over from another list\n                this.currentDragData = StaticDND.CurrentDragAndDropData;\n            }\n            else {\n                // Drag over from the desktop\n                if (!event.browserEvent.dataTransfer.types) {\n                    return false;\n                }\n                this.currentDragData = new NativeDragAndDropData();\n            }\n        }\n        const result = this.dnd.onDragOver(this.currentDragData, event.element, event.index, event.sector, event.browserEvent);\n        this.canDrop = typeof result === 'boolean' ? result : result.accept;\n        if (!this.canDrop) {\n            this.currentDragFeedback = undefined;\n            this.currentDragFeedbackDisposable.dispose();\n            return false;\n        }\n        event.browserEvent.dataTransfer.dropEffect = (typeof result !== 'boolean' && ((_a = result.effect) === null || _a === void 0 ? void 0 : _a.type) === 0 /* ListDragOverEffectType.Copy */) ? 'copy' : 'move';\n        let feedback;\n        if (typeof result !== 'boolean' && result.feedback) {\n            feedback = result.feedback;\n        }\n        else {\n            if (typeof event.index === 'undefined') {\n                feedback = [-1];\n            }\n            else {\n                feedback = [event.index];\n            }\n        }\n        // sanitize feedback list\n        feedback = distinct(feedback).filter(i => i >= -1 && i < this.length).sort((a, b) => a - b);\n        feedback = feedback[0] === -1 ? [-1] : feedback;\n        let dragOverEffectPosition = typeof result !== 'boolean' && result.effect && result.effect.position ? result.effect.position : \"drop-target\" /* ListDragOverEffectPosition.Over */;\n        if (equalsDragFeedback(this.currentDragFeedback, feedback) && this.currentDragFeedbackPosition === dragOverEffectPosition) {\n            return true;\n        }\n        this.currentDragFeedback = feedback;\n        this.currentDragFeedbackPosition = dragOverEffectPosition;\n        this.currentDragFeedbackDisposable.dispose();\n        if (feedback[0] === -1) { // entire list feedback\n            this.domNode.classList.add(dragOverEffectPosition);\n            this.rowsContainer.classList.add(dragOverEffectPosition);\n            this.currentDragFeedbackDisposable = toDisposable(() => {\n                this.domNode.classList.remove(dragOverEffectPosition);\n                this.rowsContainer.classList.remove(dragOverEffectPosition);\n            });\n        }\n        else {\n            if (feedback.length > 1 && dragOverEffectPosition !== \"drop-target\" /* ListDragOverEffectPosition.Over */) {\n                throw new Error('Can\\'t use multiple feedbacks with position different than \\'over\\'');\n            }\n            // Make sure there is no flicker when moving between two items\n            // Always use the before feedback if possible\n            if (dragOverEffectPosition === \"drop-target-after\" /* ListDragOverEffectPosition.After */) {\n                if (feedback[0] < this.length - 1) {\n                    feedback[0] += 1;\n                    dragOverEffectPosition = \"drop-target-before\" /* ListDragOverEffectPosition.Before */;\n                }\n            }\n            for (const index of feedback) {\n                const item = this.items[index];\n                item.dropTarget = true;\n                (_b = item.row) === null || _b === void 0 ? void 0 : _b.domNode.classList.add(dragOverEffectPosition);\n            }\n            this.currentDragFeedbackDisposable = toDisposable(() => {\n                var _a;\n                for (const index of feedback) {\n                    const item = this.items[index];\n                    item.dropTarget = false;\n                    (_a = item.row) === null || _a === void 0 ? void 0 : _a.domNode.classList.remove(dragOverEffectPosition);\n                }\n            });\n        }\n        return true;\n    }\n    onDragLeave(event) {\n        var _a, _b;\n        this.onDragLeaveTimeout.dispose();\n        this.onDragLeaveTimeout = disposableTimeout(() => this.clearDragOverFeedback(), 100, this.disposables);\n        if (this.currentDragData) {\n            (_b = (_a = this.dnd).onDragLeave) === null || _b === void 0 ? void 0 : _b.call(_a, this.currentDragData, event.element, event.index, event.browserEvent);\n        }\n    }\n    onDrop(event) {\n        if (!this.canDrop) {\n            return;\n        }\n        const dragData = this.currentDragData;\n        this.teardownDragAndDropScrollTopAnimation();\n        this.clearDragOverFeedback();\n        this.domNode.classList.remove('dragging');\n        this.currentDragData = undefined;\n        StaticDND.CurrentDragAndDropData = undefined;\n        if (!dragData || !event.browserEvent.dataTransfer) {\n            return;\n        }\n        event.browserEvent.preventDefault();\n        dragData.update(event.browserEvent.dataTransfer);\n        this.dnd.drop(dragData, event.element, event.index, event.sector, event.browserEvent);\n    }\n    onDragEnd(event) {\n        var _a, _b;\n        this.canDrop = false;\n        this.teardownDragAndDropScrollTopAnimation();\n        this.clearDragOverFeedback();\n        this.domNode.classList.remove('dragging');\n        this.currentDragData = undefined;\n        StaticDND.CurrentDragAndDropData = undefined;\n        (_b = (_a = this.dnd).onDragEnd) === null || _b === void 0 ? void 0 : _b.call(_a, event);\n    }\n    clearDragOverFeedback() {\n        this.currentDragFeedback = undefined;\n        this.currentDragFeedbackPosition = undefined;\n        this.currentDragFeedbackDisposable.dispose();\n        this.currentDragFeedbackDisposable = Disposable.None;\n    }\n    // DND scroll top animation\n    setupDragAndDropScrollTopAnimation(event) {\n        if (!this.dragOverAnimationDisposable) {\n            const viewTop = getTopLeftOffset(this.domNode).top;\n            this.dragOverAnimationDisposable = animate(getWindow(this.domNode), this.animateDragAndDropScrollTop.bind(this, viewTop));\n        }\n        this.dragOverAnimationStopDisposable.dispose();\n        this.dragOverAnimationStopDisposable = disposableTimeout(() => {\n            if (this.dragOverAnimationDisposable) {\n                this.dragOverAnimationDisposable.dispose();\n                this.dragOverAnimationDisposable = undefined;\n            }\n        }, 1000, this.disposables);\n        this.dragOverMouseY = event.pageY;\n    }\n    animateDragAndDropScrollTop(viewTop) {\n        if (this.dragOverMouseY === undefined) {\n            return;\n        }\n        const diff = this.dragOverMouseY - viewTop;\n        const upperLimit = this.renderHeight - 35;\n        if (diff < 35) {\n            this.scrollTop += Math.max(-14, Math.floor(0.3 * (diff - 35)));\n        }\n        else if (diff > upperLimit) {\n            this.scrollTop += Math.min(14, Math.floor(0.3 * (diff - upperLimit)));\n        }\n    }\n    teardownDragAndDropScrollTopAnimation() {\n        this.dragOverAnimationStopDisposable.dispose();\n        if (this.dragOverAnimationDisposable) {\n            this.dragOverAnimationDisposable.dispose();\n            this.dragOverAnimationDisposable = undefined;\n        }\n    }\n    // Util\n    getTargetSector(browserEvent, targetIndex) {\n        if (targetIndex === undefined) {\n            return undefined;\n        }\n        const relativePosition = browserEvent.offsetY / this.items[targetIndex].size;\n        const sector = Math.floor(relativePosition / 0.25);\n        return clamp(sector, 0, 3);\n    }\n    getItemIndexFromEventTarget(target) {\n        const scrollableElement = this.scrollableElement.getDomNode();\n        let element = target;\n        while (isHTMLElement(element) && element !== this.rowsContainer && scrollableElement.contains(element)) {\n            const rawIndex = element.getAttribute('data-index');\n            if (rawIndex) {\n                const index = Number(rawIndex);\n                if (!isNaN(index)) {\n                    return index;\n                }\n            }\n            element = element.parentElement;\n        }\n        return undefined;\n    }\n    getRenderRange(renderTop, renderHeight) {\n        return {\n            start: this.rangeMap.indexAt(renderTop),\n            end: this.rangeMap.indexAfter(renderTop + renderHeight - 1)\n        };\n    }\n    /**\n     * Given a stable rendered state, checks every rendered element whether it needs\n     * to be probed for dynamic height. Adjusts scroll height and top if necessary.\n     */\n    _rerender(renderTop, renderHeight, inSmoothScrolling) {\n        const previousRenderRange = this.getRenderRange(renderTop, renderHeight);\n        // Let's remember the second element's position, this helps in scrolling up\n        // and preserving a linear upwards scroll movement\n        let anchorElementIndex;\n        let anchorElementTopDelta;\n        if (renderTop === this.elementTop(previousRenderRange.start)) {\n            anchorElementIndex = previousRenderRange.start;\n            anchorElementTopDelta = 0;\n        }\n        else if (previousRenderRange.end - previousRenderRange.start > 1) {\n            anchorElementIndex = previousRenderRange.start + 1;\n            anchorElementTopDelta = this.elementTop(anchorElementIndex) - renderTop;\n        }\n        let heightDiff = 0;\n        while (true) {\n            const renderRange = this.getRenderRange(renderTop, renderHeight);\n            let didChange = false;\n            for (let i = renderRange.start; i < renderRange.end; i++) {\n                const diff = this.probeDynamicHeight(i);\n                if (diff !== 0) {\n                    this.rangeMap.splice(i, 1, [this.items[i]]);\n                }\n                heightDiff += diff;\n                didChange = didChange || diff !== 0;\n            }\n            if (!didChange) {\n                if (heightDiff !== 0) {\n                    this.eventuallyUpdateScrollDimensions();\n                }\n                const unrenderRanges = Range.relativeComplement(previousRenderRange, renderRange);\n                for (const range of unrenderRanges) {\n                    for (let i = range.start; i < range.end; i++) {\n                        if (this.items[i].row) {\n                            this.removeItemFromDOM(i);\n                        }\n                    }\n                }\n                const renderRanges = Range.relativeComplement(renderRange, previousRenderRange).reverse();\n                for (const range of renderRanges) {\n                    for (let i = range.end - 1; i >= range.start; i--) {\n                        this.insertItemInDOM(i);\n                    }\n                }\n                for (let i = renderRange.start; i < renderRange.end; i++) {\n                    if (this.items[i].row) {\n                        this.updateItemInDOM(this.items[i], i);\n                    }\n                }\n                if (typeof anchorElementIndex === 'number') {\n                    // To compute a destination scroll top, we need to take into account the current smooth scrolling\n                    // animation, and then reuse it with a new target (to avoid prolonging the scroll)\n                    // See https://github.com/microsoft/vscode/issues/104144\n                    // See https://github.com/microsoft/vscode/pull/104284\n                    // See https://github.com/microsoft/vscode/issues/107704\n                    const deltaScrollTop = this.scrollable.getFutureScrollPosition().scrollTop - renderTop;\n                    const newScrollTop = this.elementTop(anchorElementIndex) - anchorElementTopDelta + deltaScrollTop;\n                    this.setScrollTop(newScrollTop, inSmoothScrolling);\n                }\n                this._onDidChangeContentHeight.fire(this.contentHeight);\n                return;\n            }\n        }\n    }\n    probeDynamicHeight(index) {\n        var _a, _b, _c;\n        const item = this.items[index];\n        if (!!this.virtualDelegate.getDynamicHeight) {\n            const newSize = this.virtualDelegate.getDynamicHeight(item.element);\n            if (newSize !== null) {\n                const size = item.size;\n                item.size = newSize;\n                item.lastDynamicHeightWidth = this.renderWidth;\n                return newSize - size;\n            }\n        }\n        if (!item.hasDynamicHeight || item.lastDynamicHeightWidth === this.renderWidth) {\n            return 0;\n        }\n        if (!!this.virtualDelegate.hasDynamicHeight && !this.virtualDelegate.hasDynamicHeight(item.element)) {\n            return 0;\n        }\n        const size = item.size;\n        if (item.row) {\n            item.row.domNode.style.height = '';\n            item.size = item.row.domNode.offsetHeight;\n            if (item.size === 0 && !isAncestor(item.row.domNode, getWindow(item.row.domNode).document.body)) {\n                console.warn('Measuring item node that is not in DOM! Add ListView to the DOM before measuring row height!');\n            }\n            item.lastDynamicHeightWidth = this.renderWidth;\n            return item.size - size;\n        }\n        const { row } = this.cache.alloc(item.templateId);\n        row.domNode.style.height = '';\n        this.rowsContainer.appendChild(row.domNode);\n        const renderer = this.renderers.get(item.templateId);\n        if (!renderer) {\n            throw new BugIndicatingError('Missing renderer for templateId: ' + item.templateId);\n        }\n        renderer.renderElement(item.element, index, row.templateData, undefined);\n        item.size = row.domNode.offsetHeight;\n        (_a = renderer.disposeElement) === null || _a === void 0 ? void 0 : _a.call(renderer, item.element, index, row.templateData, undefined);\n        (_c = (_b = this.virtualDelegate).setDynamicHeight) === null || _c === void 0 ? void 0 : _c.call(_b, item.element, item.size);\n        item.lastDynamicHeightWidth = this.renderWidth;\n        this.rowsContainer.removeChild(row.domNode);\n        this.cache.release(row);\n        return item.size - size;\n    }\n    getElementDomId(index) {\n        return `${this.domId}_${index}`;\n    }\n    // Dispose\n    dispose() {\n        var _a, _b;\n        for (const item of this.items) {\n            item.dragStartDisposable.dispose();\n            item.checkedDisposable.dispose();\n            if (item.row) {\n                const renderer = this.renderers.get(item.row.templateId);\n                if (renderer) {\n                    (_a = renderer.disposeElement) === null || _a === void 0 ? void 0 : _a.call(renderer, item.element, -1, item.row.templateData, undefined);\n                    renderer.disposeTemplate(item.row.templateData);\n                }\n            }\n        }\n        this.items = [];\n        if (this.domNode && this.domNode.parentNode) {\n            this.domNode.parentNode.removeChild(this.domNode);\n        }\n        (_b = this.dragOverAnimationDisposable) === null || _b === void 0 ? void 0 : _b.dispose();\n        this.disposables.dispose();\n    }\n}\nListView.InstanceCount = 0;\n__decorate([\n    memoize\n], ListView.prototype, \"onMouseClick\", null);\n__decorate([\n    memoize\n], ListView.prototype, \"onMouseDblClick\", null);\n__decorate([\n    memoize\n], ListView.prototype, \"onMouseMiddleClick\", null);\n__decorate([\n    memoize\n], ListView.prototype, \"onMouseDown\", null);\n__decorate([\n    memoize\n], ListView.prototype, \"onMouseOver\", null);\n__decorate([\n    memoize\n], ListView.prototype, \"onMouseOut\", null);\n__decorate([\n    memoize\n], ListView.prototype, \"onContextMenu\", null);\n__decorate([\n    memoize\n], ListView.prototype, \"onTouchStart\", null);\n__decorate([\n    memoize\n], ListView.prototype, \"onTap\", null);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/list/listWidget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { asCssValueWithDefault, createStyleSheet, EventHelper, getActiveElement, getWindow, isHTMLElement, isMouseEvent } from '../../dom.js';\nimport { DomEmitter } from '../../event.js';\nimport { StandardKeyboardEvent } from '../../keyboardEvent.js';\nimport { Gesture } from '../../touch.js';\nimport { alert } from '../aria/aria.js';\nimport { CombinedSpliceable } from './splice.js';\nimport { binarySearch, firstOrDefault, range } from '../../../common/arrays.js';\nimport { timeout } from '../../../common/async.js';\nimport { Color } from '../../../common/color.js';\nimport { memoize } from '../../../common/decorators.js';\nimport { Emitter, Event, EventBufferer } from '../../../common/event.js';\nimport { matchesFuzzy2, matchesPrefix } from '../../../common/filters.js';\nimport { DisposableStore, dispose } from '../../../common/lifecycle.js';\nimport { clamp } from '../../../common/numbers.js';\nimport * as platform from '../../../common/platform.js';\nimport { isNumber } from '../../../common/types.js';\nimport './list.css';\nimport { ListError } from './list.js';\nimport { ListView } from './listView.js';\nimport { StandardMouseEvent } from '../../mouseEvent.js';\nimport { autorun, constObservable } from '../../../common/observable.js';\nclass TraitRenderer {\n    constructor(trait) {\n        this.trait = trait;\n        this.renderedElements = [];\n    }\n    get templateId() {\n        return `template:${this.trait.name}`;\n    }\n    renderTemplate(container) {\n        return container;\n    }\n    renderElement(element, index, templateData) {\n        const renderedElementIndex = this.renderedElements.findIndex(el => el.templateData === templateData);\n        if (renderedElementIndex >= 0) {\n            const rendered = this.renderedElements[renderedElementIndex];\n            this.trait.unrender(templateData);\n            rendered.index = index;\n        }\n        else {\n            const rendered = { index, templateData };\n            this.renderedElements.push(rendered);\n        }\n        this.trait.renderIndex(index, templateData);\n    }\n    splice(start, deleteCount, insertCount) {\n        const rendered = [];\n        for (const renderedElement of this.renderedElements) {\n            if (renderedElement.index < start) {\n                rendered.push(renderedElement);\n            }\n            else if (renderedElement.index >= start + deleteCount) {\n                rendered.push({\n                    index: renderedElement.index + insertCount - deleteCount,\n                    templateData: renderedElement.templateData\n                });\n            }\n        }\n        this.renderedElements = rendered;\n    }\n    renderIndexes(indexes) {\n        for (const { index, templateData } of this.renderedElements) {\n            if (indexes.indexOf(index) > -1) {\n                this.trait.renderIndex(index, templateData);\n            }\n        }\n    }\n    disposeTemplate(templateData) {\n        const index = this.renderedElements.findIndex(el => el.templateData === templateData);\n        if (index < 0) {\n            return;\n        }\n        this.renderedElements.splice(index, 1);\n    }\n}\nclass Trait {\n    get name() { return this._trait; }\n    get renderer() {\n        return new TraitRenderer(this);\n    }\n    constructor(_trait) {\n        this._trait = _trait;\n        this.indexes = [];\n        this.sortedIndexes = [];\n        this._onChange = new Emitter();\n        this.onChange = this._onChange.event;\n    }\n    splice(start, deleteCount, elements) {\n        const diff = elements.length - deleteCount;\n        const end = start + deleteCount;\n        const sortedIndexes = [];\n        let i = 0;\n        while (i < this.sortedIndexes.length && this.sortedIndexes[i] < start) {\n            sortedIndexes.push(this.sortedIndexes[i++]);\n        }\n        for (let j = 0; j < elements.length; j++) {\n            if (elements[j]) {\n                sortedIndexes.push(j + start);\n            }\n        }\n        while (i < this.sortedIndexes.length && this.sortedIndexes[i] >= end) {\n            sortedIndexes.push(this.sortedIndexes[i++] + diff);\n        }\n        this.renderer.splice(start, deleteCount, elements.length);\n        this._set(sortedIndexes, sortedIndexes);\n    }\n    renderIndex(index, container) {\n        container.classList.toggle(this._trait, this.contains(index));\n    }\n    unrender(container) {\n        container.classList.remove(this._trait);\n    }\n    /**\n     * Sets the indexes which should have this trait.\n     *\n     * @param indexes Indexes which should have this trait.\n     * @return The old indexes which had this trait.\n     */\n    set(indexes, browserEvent) {\n        return this._set(indexes, [...indexes].sort(numericSort), browserEvent);\n    }\n    _set(indexes, sortedIndexes, browserEvent) {\n        const result = this.indexes;\n        const sortedResult = this.sortedIndexes;\n        this.indexes = indexes;\n        this.sortedIndexes = sortedIndexes;\n        const toRender = disjunction(sortedResult, indexes);\n        this.renderer.renderIndexes(toRender);\n        this._onChange.fire({ indexes, browserEvent });\n        return result;\n    }\n    get() {\n        return this.indexes;\n    }\n    contains(index) {\n        return binarySearch(this.sortedIndexes, index, numericSort) >= 0;\n    }\n    dispose() {\n        dispose(this._onChange);\n    }\n}\n__decorate([\n    memoize\n], Trait.prototype, \"renderer\", null);\nclass SelectionTrait extends Trait {\n    constructor(setAriaSelected) {\n        super('selected');\n        this.setAriaSelected = setAriaSelected;\n    }\n    renderIndex(index, container) {\n        super.renderIndex(index, container);\n        if (this.setAriaSelected) {\n            if (this.contains(index)) {\n                container.setAttribute('aria-selected', 'true');\n            }\n            else {\n                container.setAttribute('aria-selected', 'false');\n            }\n        }\n    }\n}\n/**\n * The TraitSpliceable is used as a util class to be able\n * to preserve traits across splice calls, given an identity\n * provider.\n */\nclass TraitSpliceable {\n    constructor(trait, view, identityProvider) {\n        this.trait = trait;\n        this.view = view;\n        this.identityProvider = identityProvider;\n    }\n    splice(start, deleteCount, elements) {\n        if (!this.identityProvider) {\n            return this.trait.splice(start, deleteCount, new Array(elements.length).fill(false));\n        }\n        const pastElementsWithTrait = this.trait.get().map(i => this.identityProvider.getId(this.view.element(i)).toString());\n        if (pastElementsWithTrait.length === 0) {\n            return this.trait.splice(start, deleteCount, new Array(elements.length).fill(false));\n        }\n        const pastElementsWithTraitSet = new Set(pastElementsWithTrait);\n        const elementsWithTrait = elements.map(e => pastElementsWithTraitSet.has(this.identityProvider.getId(e).toString()));\n        this.trait.splice(start, deleteCount, elementsWithTrait);\n    }\n}\nexport function isInputElement(e) {\n    return e.tagName === 'INPUT' || e.tagName === 'TEXTAREA';\n}\nfunction isListElementDescendantOfClass(e, className) {\n    if (e.classList.contains(className)) {\n        return true;\n    }\n    if (e.classList.contains('monaco-list')) {\n        return false;\n    }\n    if (!e.parentElement) {\n        return false;\n    }\n    return isListElementDescendantOfClass(e.parentElement, className);\n}\nexport function isMonacoEditor(e) {\n    return isListElementDescendantOfClass(e, 'monaco-editor');\n}\nexport function isMonacoCustomToggle(e) {\n    return isListElementDescendantOfClass(e, 'monaco-custom-toggle');\n}\nexport function isActionItem(e) {\n    return isListElementDescendantOfClass(e, 'action-item');\n}\nexport function isStickyScrollElement(e) {\n    return isListElementDescendantOfClass(e, 'monaco-tree-sticky-row');\n}\nexport function isStickyScrollContainer(e) {\n    return e.classList.contains('monaco-tree-sticky-container');\n}\nexport function isButton(e) {\n    if ((e.tagName === 'A' && e.classList.contains('monaco-button')) ||\n        (e.tagName === 'DIV' && e.classList.contains('monaco-button-dropdown'))) {\n        return true;\n    }\n    if (e.classList.contains('monaco-list')) {\n        return false;\n    }\n    if (!e.parentElement) {\n        return false;\n    }\n    return isButton(e.parentElement);\n}\nclass KeyboardController {\n    get onKeyDown() {\n        return Event.chain(this.disposables.add(new DomEmitter(this.view.domNode, 'keydown')).event, $ => $.filter(e => !isInputElement(e.target))\n            .map(e => new StandardKeyboardEvent(e)));\n    }\n    constructor(list, view, options) {\n        this.list = list;\n        this.view = view;\n        this.disposables = new DisposableStore();\n        this.multipleSelectionDisposables = new DisposableStore();\n        this.multipleSelectionSupport = options.multipleSelectionSupport;\n        this.disposables.add(this.onKeyDown(e => {\n            switch (e.keyCode) {\n                case 3 /* KeyCode.Enter */:\n                    return this.onEnter(e);\n                case 16 /* KeyCode.UpArrow */:\n                    return this.onUpArrow(e);\n                case 18 /* KeyCode.DownArrow */:\n                    return this.onDownArrow(e);\n                case 11 /* KeyCode.PageUp */:\n                    return this.onPageUpArrow(e);\n                case 12 /* KeyCode.PageDown */:\n                    return this.onPageDownArrow(e);\n                case 9 /* KeyCode.Escape */:\n                    return this.onEscape(e);\n                case 31 /* KeyCode.KeyA */:\n                    if (this.multipleSelectionSupport && (platform.isMacintosh ? e.metaKey : e.ctrlKey)) {\n                        this.onCtrlA(e);\n                    }\n            }\n        }));\n    }\n    updateOptions(optionsUpdate) {\n        if (optionsUpdate.multipleSelectionSupport !== undefined) {\n            this.multipleSelectionSupport = optionsUpdate.multipleSelectionSupport;\n        }\n    }\n    onEnter(e) {\n        e.preventDefault();\n        e.stopPropagation();\n        this.list.setSelection(this.list.getFocus(), e.browserEvent);\n    }\n    onUpArrow(e) {\n        e.preventDefault();\n        e.stopPropagation();\n        this.list.focusPrevious(1, false, e.browserEvent);\n        const el = this.list.getFocus()[0];\n        this.list.setAnchor(el);\n        this.list.reveal(el);\n        this.view.domNode.focus();\n    }\n    onDownArrow(e) {\n        e.preventDefault();\n        e.stopPropagation();\n        this.list.focusNext(1, false, e.browserEvent);\n        const el = this.list.getFocus()[0];\n        this.list.setAnchor(el);\n        this.list.reveal(el);\n        this.view.domNode.focus();\n    }\n    onPageUpArrow(e) {\n        e.preventDefault();\n        e.stopPropagation();\n        this.list.focusPreviousPage(e.browserEvent);\n        const el = this.list.getFocus()[0];\n        this.list.setAnchor(el);\n        this.list.reveal(el);\n        this.view.domNode.focus();\n    }\n    onPageDownArrow(e) {\n        e.preventDefault();\n        e.stopPropagation();\n        this.list.focusNextPage(e.browserEvent);\n        const el = this.list.getFocus()[0];\n        this.list.setAnchor(el);\n        this.list.reveal(el);\n        this.view.domNode.focus();\n    }\n    onCtrlA(e) {\n        e.preventDefault();\n        e.stopPropagation();\n        this.list.setSelection(range(this.list.length), e.browserEvent);\n        this.list.setAnchor(undefined);\n        this.view.domNode.focus();\n    }\n    onEscape(e) {\n        if (this.list.getSelection().length) {\n            e.preventDefault();\n            e.stopPropagation();\n            this.list.setSelection([], e.browserEvent);\n            this.list.setAnchor(undefined);\n            this.view.domNode.focus();\n        }\n    }\n    dispose() {\n        this.disposables.dispose();\n        this.multipleSelectionDisposables.dispose();\n    }\n}\n__decorate([\n    memoize\n], KeyboardController.prototype, \"onKeyDown\", null);\nexport var TypeNavigationMode;\n(function (TypeNavigationMode) {\n    TypeNavigationMode[TypeNavigationMode[\"Automatic\"] = 0] = \"Automatic\";\n    TypeNavigationMode[TypeNavigationMode[\"Trigger\"] = 1] = \"Trigger\";\n})(TypeNavigationMode || (TypeNavigationMode = {}));\nvar TypeNavigationControllerState;\n(function (TypeNavigationControllerState) {\n    TypeNavigationControllerState[TypeNavigationControllerState[\"Idle\"] = 0] = \"Idle\";\n    TypeNavigationControllerState[TypeNavigationControllerState[\"Typing\"] = 1] = \"Typing\";\n})(TypeNavigationControllerState || (TypeNavigationControllerState = {}));\nexport const DefaultKeyboardNavigationDelegate = new class {\n    mightProducePrintableCharacter(event) {\n        if (event.ctrlKey || event.metaKey || event.altKey) {\n            return false;\n        }\n        return (event.keyCode >= 31 /* KeyCode.KeyA */ && event.keyCode <= 56 /* KeyCode.KeyZ */)\n            || (event.keyCode >= 21 /* KeyCode.Digit0 */ && event.keyCode <= 30 /* KeyCode.Digit9 */)\n            || (event.keyCode >= 98 /* KeyCode.Numpad0 */ && event.keyCode <= 107 /* KeyCode.Numpad9 */)\n            || (event.keyCode >= 85 /* KeyCode.Semicolon */ && event.keyCode <= 95 /* KeyCode.Quote */);\n    }\n};\nclass TypeNavigationController {\n    constructor(list, view, keyboardNavigationLabelProvider, keyboardNavigationEventFilter, delegate) {\n        this.list = list;\n        this.view = view;\n        this.keyboardNavigationLabelProvider = keyboardNavigationLabelProvider;\n        this.keyboardNavigationEventFilter = keyboardNavigationEventFilter;\n        this.delegate = delegate;\n        this.enabled = false;\n        this.state = TypeNavigationControllerState.Idle;\n        this.mode = TypeNavigationMode.Automatic;\n        this.triggered = false;\n        this.previouslyFocused = -1;\n        this.enabledDisposables = new DisposableStore();\n        this.disposables = new DisposableStore();\n        this.updateOptions(list.options);\n    }\n    updateOptions(options) {\n        var _a, _b;\n        if ((_a = options.typeNavigationEnabled) !== null && _a !== void 0 ? _a : true) {\n            this.enable();\n        }\n        else {\n            this.disable();\n        }\n        this.mode = (_b = options.typeNavigationMode) !== null && _b !== void 0 ? _b : TypeNavigationMode.Automatic;\n    }\n    enable() {\n        if (this.enabled) {\n            return;\n        }\n        let typing = false;\n        const onChar = Event.chain(this.enabledDisposables.add(new DomEmitter(this.view.domNode, 'keydown')).event, $ => $.filter(e => !isInputElement(e.target))\n            .filter(() => this.mode === TypeNavigationMode.Automatic || this.triggered)\n            .map(event => new StandardKeyboardEvent(event))\n            .filter(e => typing || this.keyboardNavigationEventFilter(e))\n            .filter(e => this.delegate.mightProducePrintableCharacter(e))\n            .forEach(e => EventHelper.stop(e, true))\n            .map(event => event.browserEvent.key));\n        const onClear = Event.debounce(onChar, () => null, 800, undefined, undefined, undefined, this.enabledDisposables);\n        const onInput = Event.reduce(Event.any(onChar, onClear), (r, i) => i === null ? null : ((r || '') + i), undefined, this.enabledDisposables);\n        onInput(this.onInput, this, this.enabledDisposables);\n        onClear(this.onClear, this, this.enabledDisposables);\n        onChar(() => typing = true, undefined, this.enabledDisposables);\n        onClear(() => typing = false, undefined, this.enabledDisposables);\n        this.enabled = true;\n        this.triggered = false;\n    }\n    disable() {\n        if (!this.enabled) {\n            return;\n        }\n        this.enabledDisposables.clear();\n        this.enabled = false;\n        this.triggered = false;\n    }\n    onClear() {\n        var _a;\n        const focus = this.list.getFocus();\n        if (focus.length > 0 && focus[0] === this.previouslyFocused) {\n            // List: re-announce element on typing end since typed keys will interrupt aria label of focused element\n            // Do not announce if there was a focus change at the end to prevent duplication https://github.com/microsoft/vscode/issues/95961\n            const ariaLabel = (_a = this.list.options.accessibilityProvider) === null || _a === void 0 ? void 0 : _a.getAriaLabel(this.list.element(focus[0]));\n            if (typeof ariaLabel === 'string') {\n                alert(ariaLabel);\n            }\n            else if (ariaLabel) {\n                alert(ariaLabel.get());\n            }\n        }\n        this.previouslyFocused = -1;\n    }\n    onInput(word) {\n        if (!word) {\n            this.state = TypeNavigationControllerState.Idle;\n            this.triggered = false;\n            return;\n        }\n        const focus = this.list.getFocus();\n        const start = focus.length > 0 ? focus[0] : 0;\n        const delta = this.state === TypeNavigationControllerState.Idle ? 1 : 0;\n        this.state = TypeNavigationControllerState.Typing;\n        for (let i = 0; i < this.list.length; i++) {\n            const index = (start + i + delta) % this.list.length;\n            const label = this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(this.view.element(index));\n            const labelStr = label && label.toString();\n            if (this.list.options.typeNavigationEnabled) {\n                if (typeof labelStr !== 'undefined') {\n                    // If prefix is found, focus and return early\n                    if (matchesPrefix(word, labelStr)) {\n                        this.previouslyFocused = start;\n                        this.list.setFocus([index]);\n                        this.list.reveal(index);\n                        return;\n                    }\n                    const fuzzy = matchesFuzzy2(word, labelStr);\n                    if (fuzzy) {\n                        const fuzzyScore = fuzzy[0].end - fuzzy[0].start;\n                        // ensures that when fuzzy matching, doesn't clash with prefix matching (1 input vs 1+ should be prefix and fuzzy respecitvely). Also makes sure that exact matches are prioritized.\n                        if (fuzzyScore > 1 && fuzzy.length === 1) {\n                            this.previouslyFocused = start;\n                            this.list.setFocus([index]);\n                            this.list.reveal(index);\n                            return;\n                        }\n                    }\n                }\n            }\n            else if (typeof labelStr === 'undefined' || matchesPrefix(word, labelStr)) {\n                this.previouslyFocused = start;\n                this.list.setFocus([index]);\n                this.list.reveal(index);\n                return;\n            }\n        }\n    }\n    dispose() {\n        this.disable();\n        this.enabledDisposables.dispose();\n        this.disposables.dispose();\n    }\n}\nclass DOMFocusController {\n    constructor(list, view) {\n        this.list = list;\n        this.view = view;\n        this.disposables = new DisposableStore();\n        const onKeyDown = Event.chain(this.disposables.add(new DomEmitter(view.domNode, 'keydown')).event, $ => $\n            .filter(e => !isInputElement(e.target))\n            .map(e => new StandardKeyboardEvent(e)));\n        const onTab = Event.chain(onKeyDown, $ => $.filter(e => e.keyCode === 2 /* KeyCode.Tab */ && !e.ctrlKey && !e.metaKey && !e.shiftKey && !e.altKey));\n        onTab(this.onTab, this, this.disposables);\n    }\n    onTab(e) {\n        if (e.target !== this.view.domNode) {\n            return;\n        }\n        const focus = this.list.getFocus();\n        if (focus.length === 0) {\n            return;\n        }\n        const focusedDomElement = this.view.domElement(focus[0]);\n        if (!focusedDomElement) {\n            return;\n        }\n        const tabIndexElement = focusedDomElement.querySelector('[tabIndex]');\n        if (!tabIndexElement || !(isHTMLElement(tabIndexElement)) || tabIndexElement.tabIndex === -1) {\n            return;\n        }\n        const style = getWindow(tabIndexElement).getComputedStyle(tabIndexElement);\n        if (style.visibility === 'hidden' || style.display === 'none') {\n            return;\n        }\n        e.preventDefault();\n        e.stopPropagation();\n        tabIndexElement.focus();\n    }\n    dispose() {\n        this.disposables.dispose();\n    }\n}\nexport function isSelectionSingleChangeEvent(event) {\n    return platform.isMacintosh ? event.browserEvent.metaKey : event.browserEvent.ctrlKey;\n}\nexport function isSelectionRangeChangeEvent(event) {\n    return event.browserEvent.shiftKey;\n}\nfunction isMouseRightClick(event) {\n    return isMouseEvent(event) && event.button === 2;\n}\nconst DefaultMultipleSelectionController = {\n    isSelectionSingleChangeEvent,\n    isSelectionRangeChangeEvent\n};\nexport class MouseController {\n    constructor(list) {\n        this.list = list;\n        this.disposables = new DisposableStore();\n        this._onPointer = new Emitter();\n        this.onPointer = this._onPointer.event;\n        if (list.options.multipleSelectionSupport !== false) {\n            this.multipleSelectionController = this.list.options.multipleSelectionController || DefaultMultipleSelectionController;\n        }\n        this.mouseSupport = typeof list.options.mouseSupport === 'undefined' || !!list.options.mouseSupport;\n        if (this.mouseSupport) {\n            list.onMouseDown(this.onMouseDown, this, this.disposables);\n            list.onContextMenu(this.onContextMenu, this, this.disposables);\n            list.onMouseDblClick(this.onDoubleClick, this, this.disposables);\n            list.onTouchStart(this.onMouseDown, this, this.disposables);\n            this.disposables.add(Gesture.addTarget(list.getHTMLElement()));\n        }\n        Event.any(list.onMouseClick, list.onMouseMiddleClick, list.onTap)(this.onViewPointer, this, this.disposables);\n    }\n    updateOptions(optionsUpdate) {\n        if (optionsUpdate.multipleSelectionSupport !== undefined) {\n            this.multipleSelectionController = undefined;\n            if (optionsUpdate.multipleSelectionSupport) {\n                this.multipleSelectionController = this.list.options.multipleSelectionController || DefaultMultipleSelectionController;\n            }\n        }\n    }\n    isSelectionSingleChangeEvent(event) {\n        if (!this.multipleSelectionController) {\n            return false;\n        }\n        return this.multipleSelectionController.isSelectionSingleChangeEvent(event);\n    }\n    isSelectionRangeChangeEvent(event) {\n        if (!this.multipleSelectionController) {\n            return false;\n        }\n        return this.multipleSelectionController.isSelectionRangeChangeEvent(event);\n    }\n    isSelectionChangeEvent(event) {\n        return this.isSelectionSingleChangeEvent(event) || this.isSelectionRangeChangeEvent(event);\n    }\n    onMouseDown(e) {\n        if (isMonacoEditor(e.browserEvent.target)) {\n            return;\n        }\n        if (getActiveElement() !== e.browserEvent.target) {\n            this.list.domFocus();\n        }\n    }\n    onContextMenu(e) {\n        if (isInputElement(e.browserEvent.target) || isMonacoEditor(e.browserEvent.target)) {\n            return;\n        }\n        const focus = typeof e.index === 'undefined' ? [] : [e.index];\n        this.list.setFocus(focus, e.browserEvent);\n    }\n    onViewPointer(e) {\n        if (!this.mouseSupport) {\n            return;\n        }\n        if (isInputElement(e.browserEvent.target) || isMonacoEditor(e.browserEvent.target)) {\n            return;\n        }\n        if (e.browserEvent.isHandledByList) {\n            return;\n        }\n        e.browserEvent.isHandledByList = true;\n        const focus = e.index;\n        if (typeof focus === 'undefined') {\n            this.list.setFocus([], e.browserEvent);\n            this.list.setSelection([], e.browserEvent);\n            this.list.setAnchor(undefined);\n            return;\n        }\n        if (this.isSelectionChangeEvent(e)) {\n            return this.changeSelection(e);\n        }\n        this.list.setFocus([focus], e.browserEvent);\n        this.list.setAnchor(focus);\n        if (!isMouseRightClick(e.browserEvent)) {\n            this.list.setSelection([focus], e.browserEvent);\n        }\n        this._onPointer.fire(e);\n    }\n    onDoubleClick(e) {\n        if (isInputElement(e.browserEvent.target) || isMonacoEditor(e.browserEvent.target)) {\n            return;\n        }\n        if (this.isSelectionChangeEvent(e)) {\n            return;\n        }\n        if (e.browserEvent.isHandledByList) {\n            return;\n        }\n        e.browserEvent.isHandledByList = true;\n        const focus = this.list.getFocus();\n        this.list.setSelection(focus, e.browserEvent);\n    }\n    changeSelection(e) {\n        const focus = e.index;\n        let anchor = this.list.getAnchor();\n        if (this.isSelectionRangeChangeEvent(e)) {\n            if (typeof anchor === 'undefined') {\n                const currentFocus = this.list.getFocus()[0];\n                anchor = currentFocus !== null && currentFocus !== void 0 ? currentFocus : focus;\n                this.list.setAnchor(anchor);\n            }\n            const min = Math.min(anchor, focus);\n            const max = Math.max(anchor, focus);\n            const rangeSelection = range(min, max + 1);\n            const selection = this.list.getSelection();\n            const contiguousRange = getContiguousRangeContaining(disjunction(selection, [anchor]), anchor);\n            if (contiguousRange.length === 0) {\n                return;\n            }\n            const newSelection = disjunction(rangeSelection, relativeComplement(selection, contiguousRange));\n            this.list.setSelection(newSelection, e.browserEvent);\n            this.list.setFocus([focus], e.browserEvent);\n        }\n        else if (this.isSelectionSingleChangeEvent(e)) {\n            const selection = this.list.getSelection();\n            const newSelection = selection.filter(i => i !== focus);\n            this.list.setFocus([focus]);\n            this.list.setAnchor(focus);\n            if (selection.length === newSelection.length) {\n                this.list.setSelection([...newSelection, focus], e.browserEvent);\n            }\n            else {\n                this.list.setSelection(newSelection, e.browserEvent);\n            }\n        }\n    }\n    dispose() {\n        this.disposables.dispose();\n    }\n}\nexport class DefaultStyleController {\n    constructor(styleElement, selectorSuffix) {\n        this.styleElement = styleElement;\n        this.selectorSuffix = selectorSuffix;\n    }\n    style(styles) {\n        var _a, _b;\n        const suffix = this.selectorSuffix && `.${this.selectorSuffix}`;\n        const content = [];\n        if (styles.listBackground) {\n            content.push(`.monaco-list${suffix} .monaco-list-rows { background: ${styles.listBackground}; }`);\n        }\n        if (styles.listFocusBackground) {\n            content.push(`.monaco-list${suffix}:focus .monaco-list-row.focused { background-color: ${styles.listFocusBackground}; }`);\n            content.push(`.monaco-list${suffix}:focus .monaco-list-row.focused:hover { background-color: ${styles.listFocusBackground}; }`); // overwrite :hover style in this case!\n        }\n        if (styles.listFocusForeground) {\n            content.push(`.monaco-list${suffix}:focus .monaco-list-row.focused { color: ${styles.listFocusForeground}; }`);\n        }\n        if (styles.listActiveSelectionBackground) {\n            content.push(`.monaco-list${suffix}:focus .monaco-list-row.selected { background-color: ${styles.listActiveSelectionBackground}; }`);\n            content.push(`.monaco-list${suffix}:focus .monaco-list-row.selected:hover { background-color: ${styles.listActiveSelectionBackground}; }`); // overwrite :hover style in this case!\n        }\n        if (styles.listActiveSelectionForeground) {\n            content.push(`.monaco-list${suffix}:focus .monaco-list-row.selected { color: ${styles.listActiveSelectionForeground}; }`);\n        }\n        if (styles.listActiveSelectionIconForeground) {\n            content.push(`.monaco-list${suffix}:focus .monaco-list-row.selected .codicon { color: ${styles.listActiveSelectionIconForeground}; }`);\n        }\n        if (styles.listFocusAndSelectionBackground) {\n            content.push(`\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list${suffix}:focus .monaco-list-row.selected.focused { background-color: ${styles.listFocusAndSelectionBackground}; }\n\t\t\t`);\n        }\n        if (styles.listFocusAndSelectionForeground) {\n            content.push(`\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list${suffix}:focus .monaco-list-row.selected.focused { color: ${styles.listFocusAndSelectionForeground}; }\n\t\t\t`);\n        }\n        if (styles.listInactiveFocusForeground) {\n            content.push(`.monaco-list${suffix} .monaco-list-row.focused { color:  ${styles.listInactiveFocusForeground}; }`);\n            content.push(`.monaco-list${suffix} .monaco-list-row.focused:hover { color:  ${styles.listInactiveFocusForeground}; }`); // overwrite :hover style in this case!\n        }\n        if (styles.listInactiveSelectionIconForeground) {\n            content.push(`.monaco-list${suffix} .monaco-list-row.focused .codicon { color:  ${styles.listInactiveSelectionIconForeground}; }`);\n        }\n        if (styles.listInactiveFocusBackground) {\n            content.push(`.monaco-list${suffix} .monaco-list-row.focused { background-color:  ${styles.listInactiveFocusBackground}; }`);\n            content.push(`.monaco-list${suffix} .monaco-list-row.focused:hover { background-color:  ${styles.listInactiveFocusBackground}; }`); // overwrite :hover style in this case!\n        }\n        if (styles.listInactiveSelectionBackground) {\n            content.push(`.monaco-list${suffix} .monaco-list-row.selected { background-color:  ${styles.listInactiveSelectionBackground}; }`);\n            content.push(`.monaco-list${suffix} .monaco-list-row.selected:hover { background-color:  ${styles.listInactiveSelectionBackground}; }`); // overwrite :hover style in this case!\n        }\n        if (styles.listInactiveSelectionForeground) {\n            content.push(`.monaco-list${suffix} .monaco-list-row.selected { color: ${styles.listInactiveSelectionForeground}; }`);\n        }\n        if (styles.listHoverBackground) {\n            content.push(`.monaco-list${suffix}:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused) { background-color: ${styles.listHoverBackground}; }`);\n        }\n        if (styles.listHoverForeground) {\n            content.push(`.monaco-list${suffix}:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused) { color:  ${styles.listHoverForeground}; }`);\n        }\n        /**\n         * Outlines\n         */\n        const focusAndSelectionOutline = asCssValueWithDefault(styles.listFocusAndSelectionOutline, asCssValueWithDefault(styles.listSelectionOutline, (_a = styles.listFocusOutline) !== null && _a !== void 0 ? _a : ''));\n        if (focusAndSelectionOutline) { // default: listFocusOutline\n            content.push(`.monaco-list${suffix}:focus .monaco-list-row.focused.selected { outline: 1px solid ${focusAndSelectionOutline}; outline-offset: -1px;}`);\n        }\n        if (styles.listFocusOutline) { // default: set\n            content.push(`\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list${suffix}:focus .monaco-list-row.focused { outline: 1px solid ${styles.listFocusOutline}; outline-offset: -1px; }\n\t\t\t\t.monaco-workbench.context-menu-visible .monaco-list${suffix}.last-focused .monaco-list-row.focused { outline: 1px solid ${styles.listFocusOutline}; outline-offset: -1px; }\n\t\t\t`);\n        }\n        const inactiveFocusAndSelectionOutline = asCssValueWithDefault(styles.listSelectionOutline, (_b = styles.listInactiveFocusOutline) !== null && _b !== void 0 ? _b : '');\n        if (inactiveFocusAndSelectionOutline) {\n            content.push(`.monaco-list${suffix} .monaco-list-row.focused.selected { outline: 1px dotted ${inactiveFocusAndSelectionOutline}; outline-offset: -1px; }`);\n        }\n        if (styles.listSelectionOutline) { // default: activeContrastBorder\n            content.push(`.monaco-list${suffix} .monaco-list-row.selected { outline: 1px dotted ${styles.listSelectionOutline}; outline-offset: -1px; }`);\n        }\n        if (styles.listInactiveFocusOutline) { // default: null\n            content.push(`.monaco-list${suffix} .monaco-list-row.focused { outline: 1px dotted ${styles.listInactiveFocusOutline}; outline-offset: -1px; }`);\n        }\n        if (styles.listHoverOutline) { // default: activeContrastBorder\n            content.push(`.monaco-list${suffix} .monaco-list-row:hover { outline: 1px dashed ${styles.listHoverOutline}; outline-offset: -1px; }`);\n        }\n        if (styles.listDropOverBackground) {\n            content.push(`\n\t\t\t\t.monaco-list${suffix}.drop-target,\n\t\t\t\t.monaco-list${suffix} .monaco-list-rows.drop-target,\n\t\t\t\t.monaco-list${suffix} .monaco-list-row.drop-target { background-color: ${styles.listDropOverBackground} !important; color: inherit !important; }\n\t\t\t`);\n        }\n        if (styles.listDropBetweenBackground) {\n            content.push(`\n\t\t\t.monaco-list${suffix} .monaco-list-rows.drop-target-before .monaco-list-row:first-child::before,\n\t\t\t.monaco-list${suffix} .monaco-list-row.drop-target-before::before {\n\t\t\t\tcontent: \"\"; position: absolute; top: 0px; left: 0px; width: 100%; height: 1px;\n\t\t\t\tbackground-color: ${styles.listDropBetweenBackground};\n\t\t\t}`);\n            content.push(`\n\t\t\t.monaco-list${suffix} .monaco-list-rows.drop-target-after .monaco-list-row:last-child::after,\n\t\t\t.monaco-list${suffix} .monaco-list-row.drop-target-after::after {\n\t\t\t\tcontent: \"\"; position: absolute; bottom: 0px; left: 0px; width: 100%; height: 1px;\n\t\t\t\tbackground-color: ${styles.listDropBetweenBackground};\n\t\t\t}`);\n        }\n        if (styles.tableColumnsBorder) {\n            content.push(`\n\t\t\t\t.monaco-table > .monaco-split-view2,\n\t\t\t\t.monaco-table > .monaco-split-view2 .monaco-sash.vertical::before,\n\t\t\t\t.monaco-workbench:not(.reduce-motion) .monaco-table:hover > .monaco-split-view2,\n\t\t\t\t.monaco-workbench:not(.reduce-motion) .monaco-table:hover > .monaco-split-view2 .monaco-sash.vertical::before {\n\t\t\t\t\tborder-color: ${styles.tableColumnsBorder};\n\t\t\t\t}\n\n\t\t\t\t.monaco-workbench:not(.reduce-motion) .monaco-table > .monaco-split-view2,\n\t\t\t\t.monaco-workbench:not(.reduce-motion) .monaco-table > .monaco-split-view2 .monaco-sash.vertical::before {\n\t\t\t\t\tborder-color: transparent;\n\t\t\t\t}\n\t\t\t`);\n        }\n        if (styles.tableOddRowsBackgroundColor) {\n            content.push(`\n\t\t\t\t.monaco-table .monaco-list-row[data-parity=odd]:not(.focused):not(.selected):not(:hover) .monaco-table-tr,\n\t\t\t\t.monaco-table .monaco-list:not(:focus) .monaco-list-row[data-parity=odd].focused:not(.selected):not(:hover) .monaco-table-tr,\n\t\t\t\t.monaco-table .monaco-list:not(.focused) .monaco-list-row[data-parity=odd].focused:not(.selected):not(:hover) .monaco-table-tr {\n\t\t\t\t\tbackground-color: ${styles.tableOddRowsBackgroundColor};\n\t\t\t\t}\n\t\t\t`);\n        }\n        this.styleElement.textContent = content.join('\\n');\n    }\n}\nexport const unthemedListStyles = {\n    listFocusBackground: '#7FB0D0',\n    listActiveSelectionBackground: '#0E639C',\n    listActiveSelectionForeground: '#FFFFFF',\n    listActiveSelectionIconForeground: '#FFFFFF',\n    listFocusAndSelectionOutline: '#90C2F9',\n    listFocusAndSelectionBackground: '#094771',\n    listFocusAndSelectionForeground: '#FFFFFF',\n    listInactiveSelectionBackground: '#3F3F46',\n    listInactiveSelectionIconForeground: '#FFFFFF',\n    listHoverBackground: '#2A2D2E',\n    listDropOverBackground: '#383B3D',\n    listDropBetweenBackground: '#EEEEEE',\n    treeIndentGuidesStroke: '#a9a9a9',\n    treeInactiveIndentGuidesStroke: Color.fromHex('#a9a9a9').transparent(0.4).toString(),\n    tableColumnsBorder: Color.fromHex('#cccccc').transparent(0.2).toString(),\n    tableOddRowsBackgroundColor: Color.fromHex('#cccccc').transparent(0.04).toString(),\n    listBackground: undefined,\n    listFocusForeground: undefined,\n    listInactiveSelectionForeground: undefined,\n    listInactiveFocusForeground: undefined,\n    listInactiveFocusBackground: undefined,\n    listHoverForeground: undefined,\n    listFocusOutline: undefined,\n    listInactiveFocusOutline: undefined,\n    listSelectionOutline: undefined,\n    listHoverOutline: undefined,\n    treeStickyScrollBackground: undefined,\n    treeStickyScrollBorder: undefined,\n    treeStickyScrollShadow: undefined\n};\nconst DefaultOptions = {\n    keyboardSupport: true,\n    mouseSupport: true,\n    multipleSelectionSupport: true,\n    dnd: {\n        getDragURI() { return null; },\n        onDragStart() { },\n        onDragOver() { return false; },\n        drop() { },\n        dispose() { }\n    }\n};\n// TODO@Joao: move these utils into a SortedArray class\nfunction getContiguousRangeContaining(range, value) {\n    const index = range.indexOf(value);\n    if (index === -1) {\n        return [];\n    }\n    const result = [];\n    let i = index - 1;\n    while (i >= 0 && range[i] === value - (index - i)) {\n        result.push(range[i--]);\n    }\n    result.reverse();\n    i = index;\n    while (i < range.length && range[i] === value + (i - index)) {\n        result.push(range[i++]);\n    }\n    return result;\n}\n/**\n * Given two sorted collections of numbers, returns the intersection\n * between them (OR).\n */\nfunction disjunction(one, other) {\n    const result = [];\n    let i = 0, j = 0;\n    while (i < one.length || j < other.length) {\n        if (i >= one.length) {\n            result.push(other[j++]);\n        }\n        else if (j >= other.length) {\n            result.push(one[i++]);\n        }\n        else if (one[i] === other[j]) {\n            result.push(one[i]);\n            i++;\n            j++;\n            continue;\n        }\n        else if (one[i] < other[j]) {\n            result.push(one[i++]);\n        }\n        else {\n            result.push(other[j++]);\n        }\n    }\n    return result;\n}\n/**\n * Given two sorted collections of numbers, returns the relative\n * complement between them (XOR).\n */\nfunction relativeComplement(one, other) {\n    const result = [];\n    let i = 0, j = 0;\n    while (i < one.length || j < other.length) {\n        if (i >= one.length) {\n            result.push(other[j++]);\n        }\n        else if (j >= other.length) {\n            result.push(one[i++]);\n        }\n        else if (one[i] === other[j]) {\n            i++;\n            j++;\n            continue;\n        }\n        else if (one[i] < other[j]) {\n            result.push(one[i++]);\n        }\n        else {\n            j++;\n        }\n    }\n    return result;\n}\nconst numericSort = (a, b) => a - b;\nclass PipelineRenderer {\n    constructor(_templateId, renderers) {\n        this._templateId = _templateId;\n        this.renderers = renderers;\n    }\n    get templateId() {\n        return this._templateId;\n    }\n    renderTemplate(container) {\n        return this.renderers.map(r => r.renderTemplate(container));\n    }\n    renderElement(element, index, templateData, height) {\n        let i = 0;\n        for (const renderer of this.renderers) {\n            renderer.renderElement(element, index, templateData[i++], height);\n        }\n    }\n    disposeElement(element, index, templateData, height) {\n        var _a;\n        let i = 0;\n        for (const renderer of this.renderers) {\n            (_a = renderer.disposeElement) === null || _a === void 0 ? void 0 : _a.call(renderer, element, index, templateData[i], height);\n            i += 1;\n        }\n    }\n    disposeTemplate(templateData) {\n        let i = 0;\n        for (const renderer of this.renderers) {\n            renderer.disposeTemplate(templateData[i++]);\n        }\n    }\n}\nclass AccessibiltyRenderer {\n    constructor(accessibilityProvider) {\n        this.accessibilityProvider = accessibilityProvider;\n        this.templateId = 'a18n';\n    }\n    renderTemplate(container) {\n        return { container, disposables: new DisposableStore() };\n    }\n    renderElement(element, index, data) {\n        const ariaLabel = this.accessibilityProvider.getAriaLabel(element);\n        const observable = (ariaLabel && typeof ariaLabel !== 'string') ? ariaLabel : constObservable(ariaLabel);\n        data.disposables.add(autorun(reader => {\n            this.setAriaLabel(reader.readObservable(observable), data.container);\n        }));\n        const ariaLevel = this.accessibilityProvider.getAriaLevel && this.accessibilityProvider.getAriaLevel(element);\n        if (typeof ariaLevel === 'number') {\n            data.container.setAttribute('aria-level', `${ariaLevel}`);\n        }\n        else {\n            data.container.removeAttribute('aria-level');\n        }\n    }\n    setAriaLabel(ariaLabel, element) {\n        if (ariaLabel) {\n            element.setAttribute('aria-label', ariaLabel);\n        }\n        else {\n            element.removeAttribute('aria-label');\n        }\n    }\n    disposeElement(element, index, templateData, height) {\n        templateData.disposables.clear();\n    }\n    disposeTemplate(templateData) {\n        templateData.disposables.dispose();\n    }\n}\nclass ListViewDragAndDrop {\n    constructor(list, dnd) {\n        this.list = list;\n        this.dnd = dnd;\n    }\n    getDragElements(element) {\n        const selection = this.list.getSelectedElements();\n        const elements = selection.indexOf(element) > -1 ? selection : [element];\n        return elements;\n    }\n    getDragURI(element) {\n        return this.dnd.getDragURI(element);\n    }\n    getDragLabel(elements, originalEvent) {\n        if (this.dnd.getDragLabel) {\n            return this.dnd.getDragLabel(elements, originalEvent);\n        }\n        return undefined;\n    }\n    onDragStart(data, originalEvent) {\n        var _a, _b;\n        (_b = (_a = this.dnd).onDragStart) === null || _b === void 0 ? void 0 : _b.call(_a, data, originalEvent);\n    }\n    onDragOver(data, targetElement, targetIndex, targetSector, originalEvent) {\n        return this.dnd.onDragOver(data, targetElement, targetIndex, targetSector, originalEvent);\n    }\n    onDragLeave(data, targetElement, targetIndex, originalEvent) {\n        var _a, _b;\n        (_b = (_a = this.dnd).onDragLeave) === null || _b === void 0 ? void 0 : _b.call(_a, data, targetElement, targetIndex, originalEvent);\n    }\n    onDragEnd(originalEvent) {\n        var _a, _b;\n        (_b = (_a = this.dnd).onDragEnd) === null || _b === void 0 ? void 0 : _b.call(_a, originalEvent);\n    }\n    drop(data, targetElement, targetIndex, targetSector, originalEvent) {\n        this.dnd.drop(data, targetElement, targetIndex, targetSector, originalEvent);\n    }\n    dispose() {\n        this.dnd.dispose();\n    }\n}\n/**\n * The {@link List} is a virtual scrolling widget, built on top of the {@link ListView}\n * widget.\n *\n * Features:\n * - Customizable keyboard and mouse support\n * - Element traits: focus, selection, achor\n * - Accessibility support\n * - Touch support\n * - Performant template-based rendering\n * - Horizontal scrolling\n * - Variable element height support\n * - Dynamic element height support\n * - Drag-and-drop support\n */\nexport class List {\n    get onDidChangeFocus() {\n        return Event.map(this.eventBufferer.wrapEvent(this.focus.onChange), e => this.toListEvent(e), this.disposables);\n    }\n    get onDidChangeSelection() {\n        return Event.map(this.eventBufferer.wrapEvent(this.selection.onChange), e => this.toListEvent(e), this.disposables);\n    }\n    get domId() { return this.view.domId; }\n    get onDidScroll() { return this.view.onDidScroll; }\n    get onMouseClick() { return this.view.onMouseClick; }\n    get onMouseDblClick() { return this.view.onMouseDblClick; }\n    get onMouseMiddleClick() { return this.view.onMouseMiddleClick; }\n    get onPointer() { return this.mouseController.onPointer; }\n    get onMouseDown() { return this.view.onMouseDown; }\n    get onMouseOver() { return this.view.onMouseOver; }\n    get onMouseOut() { return this.view.onMouseOut; }\n    get onTouchStart() { return this.view.onTouchStart; }\n    get onTap() { return this.view.onTap; }\n    /**\n     * Possible context menu trigger events:\n     * - ContextMenu key\n     * - Shift F10\n     * - Ctrl Option Shift M (macOS with VoiceOver)\n     * - Mouse right click\n     */\n    get onContextMenu() {\n        let didJustPressContextMenuKey = false;\n        const fromKeyDown = Event.chain(this.disposables.add(new DomEmitter(this.view.domNode, 'keydown')).event, $ => $.map(e => new StandardKeyboardEvent(e))\n            .filter(e => didJustPressContextMenuKey = e.keyCode === 58 /* KeyCode.ContextMenu */ || (e.shiftKey && e.keyCode === 68 /* KeyCode.F10 */))\n            .map(e => EventHelper.stop(e, true))\n            .filter(() => false));\n        const fromKeyUp = Event.chain(this.disposables.add(new DomEmitter(this.view.domNode, 'keyup')).event, $ => $.forEach(() => didJustPressContextMenuKey = false)\n            .map(e => new StandardKeyboardEvent(e))\n            .filter(e => e.keyCode === 58 /* KeyCode.ContextMenu */ || (e.shiftKey && e.keyCode === 68 /* KeyCode.F10 */))\n            .map(e => EventHelper.stop(e, true))\n            .map(({ browserEvent }) => {\n            const focus = this.getFocus();\n            const index = focus.length ? focus[0] : undefined;\n            const element = typeof index !== 'undefined' ? this.view.element(index) : undefined;\n            const anchor = typeof index !== 'undefined' ? this.view.domElement(index) : this.view.domNode;\n            return { index, element, anchor, browserEvent };\n        }));\n        const fromMouse = Event.chain(this.view.onContextMenu, $ => $.filter(_ => !didJustPressContextMenuKey)\n            .map(({ element, index, browserEvent }) => ({ element, index, anchor: new StandardMouseEvent(getWindow(this.view.domNode), browserEvent), browserEvent })));\n        return Event.any(fromKeyDown, fromKeyUp, fromMouse);\n    }\n    get onKeyDown() { return this.disposables.add(new DomEmitter(this.view.domNode, 'keydown')).event; }\n    get onDidFocus() { return Event.signal(this.disposables.add(new DomEmitter(this.view.domNode, 'focus', true)).event); }\n    get onDidBlur() { return Event.signal(this.disposables.add(new DomEmitter(this.view.domNode, 'blur', true)).event); }\n    constructor(user, container, virtualDelegate, renderers, _options = DefaultOptions) {\n        var _a, _b, _c, _d;\n        this.user = user;\n        this._options = _options;\n        this.focus = new Trait('focused');\n        this.anchor = new Trait('anchor');\n        this.eventBufferer = new EventBufferer();\n        this._ariaLabel = '';\n        this.disposables = new DisposableStore();\n        this._onDidDispose = new Emitter();\n        this.onDidDispose = this._onDidDispose.event;\n        const role = this._options.accessibilityProvider && this._options.accessibilityProvider.getWidgetRole ? (_a = this._options.accessibilityProvider) === null || _a === void 0 ? void 0 : _a.getWidgetRole() : 'list';\n        this.selection = new SelectionTrait(role !== 'listbox');\n        const baseRenderers = [this.focus.renderer, this.selection.renderer];\n        this.accessibilityProvider = _options.accessibilityProvider;\n        if (this.accessibilityProvider) {\n            baseRenderers.push(new AccessibiltyRenderer(this.accessibilityProvider));\n            (_c = (_b = this.accessibilityProvider).onDidChangeActiveDescendant) === null || _c === void 0 ? void 0 : _c.call(_b, this.onDidChangeActiveDescendant, this, this.disposables);\n        }\n        renderers = renderers.map(r => new PipelineRenderer(r.templateId, [...baseRenderers, r]));\n        const viewOptions = {\n            ..._options,\n            dnd: _options.dnd && new ListViewDragAndDrop(this, _options.dnd)\n        };\n        this.view = this.createListView(container, virtualDelegate, renderers, viewOptions);\n        this.view.domNode.setAttribute('role', role);\n        if (_options.styleController) {\n            this.styleController = _options.styleController(this.view.domId);\n        }\n        else {\n            const styleElement = createStyleSheet(this.view.domNode);\n            this.styleController = new DefaultStyleController(styleElement, this.view.domId);\n        }\n        this.spliceable = new CombinedSpliceable([\n            new TraitSpliceable(this.focus, this.view, _options.identityProvider),\n            new TraitSpliceable(this.selection, this.view, _options.identityProvider),\n            new TraitSpliceable(this.anchor, this.view, _options.identityProvider),\n            this.view\n        ]);\n        this.disposables.add(this.focus);\n        this.disposables.add(this.selection);\n        this.disposables.add(this.anchor);\n        this.disposables.add(this.view);\n        this.disposables.add(this._onDidDispose);\n        this.disposables.add(new DOMFocusController(this, this.view));\n        if (typeof _options.keyboardSupport !== 'boolean' || _options.keyboardSupport) {\n            this.keyboardController = new KeyboardController(this, this.view, _options);\n            this.disposables.add(this.keyboardController);\n        }\n        if (_options.keyboardNavigationLabelProvider) {\n            const delegate = _options.keyboardNavigationDelegate || DefaultKeyboardNavigationDelegate;\n            this.typeNavigationController = new TypeNavigationController(this, this.view, _options.keyboardNavigationLabelProvider, (_d = _options.keyboardNavigationEventFilter) !== null && _d !== void 0 ? _d : (() => true), delegate);\n            this.disposables.add(this.typeNavigationController);\n        }\n        this.mouseController = this.createMouseController(_options);\n        this.disposables.add(this.mouseController);\n        this.onDidChangeFocus(this._onFocusChange, this, this.disposables);\n        this.onDidChangeSelection(this._onSelectionChange, this, this.disposables);\n        if (this.accessibilityProvider) {\n            this.ariaLabel = this.accessibilityProvider.getWidgetAriaLabel();\n        }\n        if (this._options.multipleSelectionSupport !== false) {\n            this.view.domNode.setAttribute('aria-multiselectable', 'true');\n        }\n    }\n    createListView(container, virtualDelegate, renderers, viewOptions) {\n        return new ListView(container, virtualDelegate, renderers, viewOptions);\n    }\n    createMouseController(options) {\n        return new MouseController(this);\n    }\n    updateOptions(optionsUpdate = {}) {\n        var _a, _b;\n        this._options = { ...this._options, ...optionsUpdate };\n        (_a = this.typeNavigationController) === null || _a === void 0 ? void 0 : _a.updateOptions(this._options);\n        if (this._options.multipleSelectionController !== undefined) {\n            if (this._options.multipleSelectionSupport) {\n                this.view.domNode.setAttribute('aria-multiselectable', 'true');\n            }\n            else {\n                this.view.domNode.removeAttribute('aria-multiselectable');\n            }\n        }\n        this.mouseController.updateOptions(optionsUpdate);\n        (_b = this.keyboardController) === null || _b === void 0 ? void 0 : _b.updateOptions(optionsUpdate);\n        this.view.updateOptions(optionsUpdate);\n    }\n    get options() {\n        return this._options;\n    }\n    splice(start, deleteCount, elements = []) {\n        if (start < 0 || start > this.view.length) {\n            throw new ListError(this.user, `Invalid start index: ${start}`);\n        }\n        if (deleteCount < 0) {\n            throw new ListError(this.user, `Invalid delete count: ${deleteCount}`);\n        }\n        if (deleteCount === 0 && elements.length === 0) {\n            return;\n        }\n        this.eventBufferer.bufferEvents(() => this.spliceable.splice(start, deleteCount, elements));\n    }\n    rerender() {\n        this.view.rerender();\n    }\n    element(index) {\n        return this.view.element(index);\n    }\n    indexOf(element) {\n        return this.view.indexOf(element);\n    }\n    indexAt(position) {\n        return this.view.indexAt(position);\n    }\n    get length() {\n        return this.view.length;\n    }\n    get contentHeight() {\n        return this.view.contentHeight;\n    }\n    get onDidChangeContentHeight() {\n        return this.view.onDidChangeContentHeight;\n    }\n    get scrollTop() {\n        return this.view.getScrollTop();\n    }\n    set scrollTop(scrollTop) {\n        this.view.setScrollTop(scrollTop);\n    }\n    get scrollHeight() {\n        return this.view.scrollHeight;\n    }\n    get renderHeight() {\n        return this.view.renderHeight;\n    }\n    get firstVisibleIndex() {\n        return this.view.firstVisibleIndex;\n    }\n    get ariaLabel() {\n        return this._ariaLabel;\n    }\n    set ariaLabel(value) {\n        this._ariaLabel = value;\n        this.view.domNode.setAttribute('aria-label', value);\n    }\n    domFocus() {\n        this.view.domNode.focus({ preventScroll: true });\n    }\n    layout(height, width) {\n        this.view.layout(height, width);\n    }\n    setSelection(indexes, browserEvent) {\n        for (const index of indexes) {\n            if (index < 0 || index >= this.length) {\n                throw new ListError(this.user, `Invalid index ${index}`);\n            }\n        }\n        this.selection.set(indexes, browserEvent);\n    }\n    getSelection() {\n        return this.selection.get();\n    }\n    getSelectedElements() {\n        return this.getSelection().map(i => this.view.element(i));\n    }\n    setAnchor(index) {\n        if (typeof index === 'undefined') {\n            this.anchor.set([]);\n            return;\n        }\n        if (index < 0 || index >= this.length) {\n            throw new ListError(this.user, `Invalid index ${index}`);\n        }\n        this.anchor.set([index]);\n    }\n    getAnchor() {\n        return firstOrDefault(this.anchor.get(), undefined);\n    }\n    getAnchorElement() {\n        const anchor = this.getAnchor();\n        return typeof anchor === 'undefined' ? undefined : this.element(anchor);\n    }\n    setFocus(indexes, browserEvent) {\n        for (const index of indexes) {\n            if (index < 0 || index >= this.length) {\n                throw new ListError(this.user, `Invalid index ${index}`);\n            }\n        }\n        this.focus.set(indexes, browserEvent);\n    }\n    focusNext(n = 1, loop = false, browserEvent, filter) {\n        if (this.length === 0) {\n            return;\n        }\n        const focus = this.focus.get();\n        const index = this.findNextIndex(focus.length > 0 ? focus[0] + n : 0, loop, filter);\n        if (index > -1) {\n            this.setFocus([index], browserEvent);\n        }\n    }\n    focusPrevious(n = 1, loop = false, browserEvent, filter) {\n        if (this.length === 0) {\n            return;\n        }\n        const focus = this.focus.get();\n        const index = this.findPreviousIndex(focus.length > 0 ? focus[0] - n : 0, loop, filter);\n        if (index > -1) {\n            this.setFocus([index], browserEvent);\n        }\n    }\n    async focusNextPage(browserEvent, filter) {\n        let lastPageIndex = this.view.indexAt(this.view.getScrollTop() + this.view.renderHeight);\n        lastPageIndex = lastPageIndex === 0 ? 0 : lastPageIndex - 1;\n        const currentlyFocusedElementIndex = this.getFocus()[0];\n        if (currentlyFocusedElementIndex !== lastPageIndex && (currentlyFocusedElementIndex === undefined || lastPageIndex > currentlyFocusedElementIndex)) {\n            const lastGoodPageIndex = this.findPreviousIndex(lastPageIndex, false, filter);\n            if (lastGoodPageIndex > -1 && currentlyFocusedElementIndex !== lastGoodPageIndex) {\n                this.setFocus([lastGoodPageIndex], browserEvent);\n            }\n            else {\n                this.setFocus([lastPageIndex], browserEvent);\n            }\n        }\n        else {\n            const previousScrollTop = this.view.getScrollTop();\n            let nextpageScrollTop = previousScrollTop + this.view.renderHeight;\n            if (lastPageIndex > currentlyFocusedElementIndex) {\n                // scroll last page element to the top only if the last page element is below the focused element\n                nextpageScrollTop -= this.view.elementHeight(lastPageIndex);\n            }\n            this.view.setScrollTop(nextpageScrollTop);\n            if (this.view.getScrollTop() !== previousScrollTop) {\n                this.setFocus([]);\n                // Let the scroll event listener run\n                await timeout(0);\n                await this.focusNextPage(browserEvent, filter);\n            }\n        }\n    }\n    async focusPreviousPage(browserEvent, filter, getPaddingTop = () => 0) {\n        let firstPageIndex;\n        const paddingTop = getPaddingTop();\n        const scrollTop = this.view.getScrollTop() + paddingTop;\n        if (scrollTop === 0) {\n            firstPageIndex = this.view.indexAt(scrollTop);\n        }\n        else {\n            firstPageIndex = this.view.indexAfter(scrollTop - 1);\n        }\n        const currentlyFocusedElementIndex = this.getFocus()[0];\n        if (currentlyFocusedElementIndex !== firstPageIndex && (currentlyFocusedElementIndex === undefined || currentlyFocusedElementIndex >= firstPageIndex)) {\n            const firstGoodPageIndex = this.findNextIndex(firstPageIndex, false, filter);\n            if (firstGoodPageIndex > -1 && currentlyFocusedElementIndex !== firstGoodPageIndex) {\n                this.setFocus([firstGoodPageIndex], browserEvent);\n            }\n            else {\n                this.setFocus([firstPageIndex], browserEvent);\n            }\n        }\n        else {\n            const previousScrollTop = scrollTop;\n            this.view.setScrollTop(scrollTop - this.view.renderHeight - paddingTop);\n            if (this.view.getScrollTop() + getPaddingTop() !== previousScrollTop) {\n                this.setFocus([]);\n                // Let the scroll event listener run\n                await timeout(0);\n                await this.focusPreviousPage(browserEvent, filter, getPaddingTop);\n            }\n        }\n    }\n    focusLast(browserEvent, filter) {\n        if (this.length === 0) {\n            return;\n        }\n        const index = this.findPreviousIndex(this.length - 1, false, filter);\n        if (index > -1) {\n            this.setFocus([index], browserEvent);\n        }\n    }\n    focusFirst(browserEvent, filter) {\n        this.focusNth(0, browserEvent, filter);\n    }\n    focusNth(n, browserEvent, filter) {\n        if (this.length === 0) {\n            return;\n        }\n        const index = this.findNextIndex(n, false, filter);\n        if (index > -1) {\n            this.setFocus([index], browserEvent);\n        }\n    }\n    findNextIndex(index, loop = false, filter) {\n        for (let i = 0; i < this.length; i++) {\n            if (index >= this.length && !loop) {\n                return -1;\n            }\n            index = index % this.length;\n            if (!filter || filter(this.element(index))) {\n                return index;\n            }\n            index++;\n        }\n        return -1;\n    }\n    findPreviousIndex(index, loop = false, filter) {\n        for (let i = 0; i < this.length; i++) {\n            if (index < 0 && !loop) {\n                return -1;\n            }\n            index = (this.length + (index % this.length)) % this.length;\n            if (!filter || filter(this.element(index))) {\n                return index;\n            }\n            index--;\n        }\n        return -1;\n    }\n    getFocus() {\n        return this.focus.get();\n    }\n    getFocusedElements() {\n        return this.getFocus().map(i => this.view.element(i));\n    }\n    reveal(index, relativeTop, paddingTop = 0) {\n        if (index < 0 || index >= this.length) {\n            throw new ListError(this.user, `Invalid index ${index}`);\n        }\n        const scrollTop = this.view.getScrollTop();\n        const elementTop = this.view.elementTop(index);\n        const elementHeight = this.view.elementHeight(index);\n        if (isNumber(relativeTop)) {\n            // y = mx + b\n            const m = elementHeight - this.view.renderHeight + paddingTop;\n            this.view.setScrollTop(m * clamp(relativeTop, 0, 1) + elementTop - paddingTop);\n        }\n        else {\n            const viewItemBottom = elementTop + elementHeight;\n            const scrollBottom = scrollTop + this.view.renderHeight;\n            if (elementTop < scrollTop + paddingTop && viewItemBottom >= scrollBottom) {\n                // The element is already overflowing the viewport, no-op\n            }\n            else if (elementTop < scrollTop + paddingTop || (viewItemBottom >= scrollBottom && elementHeight >= this.view.renderHeight)) {\n                this.view.setScrollTop(elementTop - paddingTop);\n            }\n            else if (viewItemBottom >= scrollBottom) {\n                this.view.setScrollTop(viewItemBottom - this.view.renderHeight);\n            }\n        }\n    }\n    /**\n     * Returns the relative position of an element rendered in the list.\n     * Returns `null` if the element isn't *entirely* in the visible viewport.\n     */\n    getRelativeTop(index, paddingTop = 0) {\n        if (index < 0 || index >= this.length) {\n            throw new ListError(this.user, `Invalid index ${index}`);\n        }\n        const scrollTop = this.view.getScrollTop();\n        const elementTop = this.view.elementTop(index);\n        const elementHeight = this.view.elementHeight(index);\n        if (elementTop < scrollTop + paddingTop || elementTop + elementHeight > scrollTop + this.view.renderHeight) {\n            return null;\n        }\n        // y = mx + b\n        const m = elementHeight - this.view.renderHeight + paddingTop;\n        return Math.abs((scrollTop + paddingTop - elementTop) / m);\n    }\n    getHTMLElement() {\n        return this.view.domNode;\n    }\n    getScrollableElement() {\n        return this.view.scrollableElementDomNode;\n    }\n    getElementID(index) {\n        return this.view.getElementDomId(index);\n    }\n    getElementTop(index) {\n        return this.view.elementTop(index);\n    }\n    style(styles) {\n        this.styleController.style(styles);\n    }\n    toListEvent({ indexes, browserEvent }) {\n        return { indexes, elements: indexes.map(i => this.view.element(i)), browserEvent };\n    }\n    _onFocusChange() {\n        const focus = this.focus.get();\n        this.view.domNode.classList.toggle('element-focused', focus.length > 0);\n        this.onDidChangeActiveDescendant();\n    }\n    onDidChangeActiveDescendant() {\n        var _a;\n        const focus = this.focus.get();\n        if (focus.length > 0) {\n            let id;\n            if ((_a = this.accessibilityProvider) === null || _a === void 0 ? void 0 : _a.getActiveDescendantId) {\n                id = this.accessibilityProvider.getActiveDescendantId(this.view.element(focus[0]));\n            }\n            this.view.domNode.setAttribute('aria-activedescendant', id || this.view.getElementDomId(focus[0]));\n        }\n        else {\n            this.view.domNode.removeAttribute('aria-activedescendant');\n        }\n    }\n    _onSelectionChange() {\n        const selection = this.selection.get();\n        this.view.domNode.classList.toggle('selection-none', selection.length === 0);\n        this.view.domNode.classList.toggle('selection-single', selection.length === 1);\n        this.view.domNode.classList.toggle('selection-multiple', selection.length > 1);\n    }\n    dispose() {\n        this._onDidDispose.fire();\n        this.disposables.dispose();\n        this._onDidDispose.dispose();\n    }\n}\n__decorate([\n    memoize\n], List.prototype, \"onDidChangeFocus\", null);\n__decorate([\n    memoize\n], List.prototype, \"onDidChangeSelection\", null);\n__decorate([\n    memoize\n], List.prototype, \"onContextMenu\", null);\n__decorate([\n    memoize\n], List.prototype, \"onKeyDown\", null);\n__decorate([\n    memoize\n], List.prototype, \"onDidFocus\", null);\n__decorate([\n    memoize\n], List.prototype, \"onDidBlur\", null);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/list/rangeMap.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Range } from '../../../common/range.js';\n/**\n * Returns the intersection between a ranged group and a range.\n * Returns `[]` if the intersection is empty.\n */\nexport function groupIntersect(range, groups) {\n    const result = [];\n    for (const r of groups) {\n        if (range.start >= r.range.end) {\n            continue;\n        }\n        if (range.end < r.range.start) {\n            break;\n        }\n        const intersection = Range.intersect(range, r.range);\n        if (Range.isEmpty(intersection)) {\n            continue;\n        }\n        result.push({\n            range: intersection,\n            size: r.size\n        });\n    }\n    return result;\n}\n/**\n * Shifts a range by that `much`.\n */\nexport function shift({ start, end }, much) {\n    return { start: start + much, end: end + much };\n}\n/**\n * Consolidates a collection of ranged groups.\n *\n * Consolidation is the process of merging consecutive ranged groups\n * that share the same `size`.\n */\nexport function consolidate(groups) {\n    const result = [];\n    let previousGroup = null;\n    for (const group of groups) {\n        const start = group.range.start;\n        const end = group.range.end;\n        const size = group.size;\n        if (previousGroup && size === previousGroup.size) {\n            previousGroup.range.end = end;\n            continue;\n        }\n        previousGroup = { range: { start, end }, size };\n        result.push(previousGroup);\n    }\n    return result;\n}\n/**\n * Concatenates several collections of ranged groups into a single\n * collection.\n */\nfunction concat(...groups) {\n    return consolidate(groups.reduce((r, g) => r.concat(g), []));\n}\nexport class RangeMap {\n    get paddingTop() {\n        return this._paddingTop;\n    }\n    set paddingTop(paddingTop) {\n        this._size = this._size + paddingTop - this._paddingTop;\n        this._paddingTop = paddingTop;\n    }\n    constructor(topPadding) {\n        this.groups = [];\n        this._size = 0;\n        this._paddingTop = 0;\n        this._paddingTop = topPadding !== null && topPadding !== void 0 ? topPadding : 0;\n        this._size = this._paddingTop;\n    }\n    splice(index, deleteCount, items = []) {\n        const diff = items.length - deleteCount;\n        const before = groupIntersect({ start: 0, end: index }, this.groups);\n        const after = groupIntersect({ start: index + deleteCount, end: Number.POSITIVE_INFINITY }, this.groups)\n            .map(g => ({ range: shift(g.range, diff), size: g.size }));\n        const middle = items.map((item, i) => ({\n            range: { start: index + i, end: index + i + 1 },\n            size: item.size\n        }));\n        this.groups = concat(before, middle, after);\n        this._size = this._paddingTop + this.groups.reduce((t, g) => t + (g.size * (g.range.end - g.range.start)), 0);\n    }\n    /**\n     * Returns the number of items in the range map.\n     */\n    get count() {\n        const len = this.groups.length;\n        if (!len) {\n            return 0;\n        }\n        return this.groups[len - 1].range.end;\n    }\n    /**\n     * Returns the sum of the sizes of all items in the range map.\n     */\n    get size() {\n        return this._size;\n    }\n    /**\n     * Returns the index of the item at the given position.\n     */\n    indexAt(position) {\n        if (position < 0) {\n            return -1;\n        }\n        if (position < this._paddingTop) {\n            return 0;\n        }\n        let index = 0;\n        let size = this._paddingTop;\n        for (const group of this.groups) {\n            const count = group.range.end - group.range.start;\n            const newSize = size + (count * group.size);\n            if (position < newSize) {\n                return index + Math.floor((position - size) / group.size);\n            }\n            index += count;\n            size = newSize;\n        }\n        return index;\n    }\n    /**\n     * Returns the index of the item right after the item at the\n     * index of the given position.\n     */\n    indexAfter(position) {\n        return Math.min(this.indexAt(position) + 1, this.count);\n    }\n    /**\n     * Returns the start position of the item at the given index.\n     */\n    positionAt(index) {\n        if (index < 0) {\n            return -1;\n        }\n        let position = 0;\n        let count = 0;\n        for (const group of this.groups) {\n            const groupCount = group.range.end - group.range.start;\n            const newCount = count + groupCount;\n            if (index < newCount) {\n                return this._paddingTop + position + ((index - count) * group.size);\n            }\n            position += groupCount * group.size;\n            count = newCount;\n        }\n        return -1;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/list/rowCache.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { $ } from '../../dom.js';\nfunction removeFromParent(element) {\n    var _a;\n    try {\n        (_a = element.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(element);\n    }\n    catch (e) {\n        // this will throw if this happens due to a blur event, nasty business\n    }\n}\nexport class RowCache {\n    constructor(renderers) {\n        this.renderers = renderers;\n        this.cache = new Map();\n        this.transactionNodesPendingRemoval = new Set();\n        this.inTransaction = false;\n    }\n    /**\n     * Returns a row either by creating a new one or reusing\n     * a previously released row which shares the same templateId.\n     *\n     * @returns A row and `isReusingConnectedDomNode` if the row's node is already in the dom in a stale position.\n     */\n    alloc(templateId) {\n        let result = this.getTemplateCache(templateId).pop();\n        let isStale = false;\n        if (result) {\n            isStale = this.transactionNodesPendingRemoval.has(result.domNode);\n            if (isStale) {\n                this.transactionNodesPendingRemoval.delete(result.domNode);\n            }\n        }\n        else {\n            const domNode = $('.monaco-list-row');\n            const renderer = this.getRenderer(templateId);\n            const templateData = renderer.renderTemplate(domNode);\n            result = { domNode, templateId, templateData };\n        }\n        return { row: result, isReusingConnectedDomNode: isStale };\n    }\n    /**\n     * Releases the row for eventual reuse.\n     */\n    release(row) {\n        if (!row) {\n            return;\n        }\n        this.releaseRow(row);\n    }\n    /**\n     * Begin a set of changes that use the cache. This lets us skip work when a row is removed and then inserted again.\n     */\n    transact(makeChanges) {\n        if (this.inTransaction) {\n            throw new Error('Already in transaction');\n        }\n        this.inTransaction = true;\n        try {\n            makeChanges();\n        }\n        finally {\n            for (const domNode of this.transactionNodesPendingRemoval) {\n                this.doRemoveNode(domNode);\n            }\n            this.transactionNodesPendingRemoval.clear();\n            this.inTransaction = false;\n        }\n    }\n    releaseRow(row) {\n        const { domNode, templateId } = row;\n        if (domNode) {\n            if (this.inTransaction) {\n                this.transactionNodesPendingRemoval.add(domNode);\n            }\n            else {\n                this.doRemoveNode(domNode);\n            }\n        }\n        const cache = this.getTemplateCache(templateId);\n        cache.push(row);\n    }\n    doRemoveNode(domNode) {\n        domNode.classList.remove('scrolling');\n        removeFromParent(domNode);\n    }\n    getTemplateCache(templateId) {\n        let result = this.cache.get(templateId);\n        if (!result) {\n            result = [];\n            this.cache.set(templateId, result);\n        }\n        return result;\n    }\n    dispose() {\n        this.cache.forEach((cachedRows, templateId) => {\n            for (const cachedRow of cachedRows) {\n                const renderer = this.getRenderer(templateId);\n                renderer.disposeTemplate(cachedRow.templateData);\n                cachedRow.templateData = null;\n            }\n        });\n        this.cache.clear();\n        this.transactionNodesPendingRemoval.clear();\n    }\n    getRenderer(templateId) {\n        const renderer = this.renderers.get(templateId);\n        if (!renderer) {\n            throw new Error(`No renderer found for ${templateId}`);\n        }\n        return renderer;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/list/splice.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class CombinedSpliceable {\n    constructor(spliceables) {\n        this.spliceables = spliceables;\n    }\n    splice(start, deleteCount, elements) {\n        this.spliceables.forEach(s => s.splice(start, deleteCount, elements));\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/menu/menu.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { isFirefox } from '../../browser.js';\nimport { EventType as TouchEventType, Gesture } from '../../touch.js';\nimport { $, addDisposableListener, append, clearNode, createStyleSheet, Dimension, EventHelper, EventType, getActiveElement, getWindow, isAncestor, isInShadowDOM } from '../../dom.js';\nimport { StandardKeyboardEvent } from '../../keyboardEvent.js';\nimport { StandardMouseEvent } from '../../mouseEvent.js';\nimport { ActionBar } from '../actionbar/actionbar.js';\nimport { ActionViewItem, BaseActionViewItem } from '../actionbar/actionViewItems.js';\nimport { layout } from '../contextview/contextview.js';\nimport { DomScrollableElement } from '../scrollbar/scrollableElement.js';\nimport { EmptySubmenuAction, Separator, SubmenuAction } from '../../../common/actions.js';\nimport { RunOnceScheduler } from '../../../common/async.js';\nimport { Codicon } from '../../../common/codicons.js';\nimport { getCodiconFontCharacters } from '../../../common/codiconsUtil.js';\nimport { ThemeIcon } from '../../../common/themables.js';\nimport { stripIcons } from '../../../common/iconLabels.js';\nimport { DisposableStore } from '../../../common/lifecycle.js';\nimport { isLinux, isMacintosh } from '../../../common/platform.js';\nimport * as strings from '../../../common/strings.js';\nexport const MENU_MNEMONIC_REGEX = /\\(&([^\\s&])\\)|(^|[^&])&([^\\s&])/;\nexport const MENU_ESCAPED_MNEMONIC_REGEX = /(&amp;)?(&amp;)([^\\s&])/g;\nexport var HorizontalDirection;\n(function (HorizontalDirection) {\n    HorizontalDirection[HorizontalDirection[\"Right\"] = 0] = \"Right\";\n    HorizontalDirection[HorizontalDirection[\"Left\"] = 1] = \"Left\";\n})(HorizontalDirection || (HorizontalDirection = {}));\nexport var VerticalDirection;\n(function (VerticalDirection) {\n    VerticalDirection[VerticalDirection[\"Above\"] = 0] = \"Above\";\n    VerticalDirection[VerticalDirection[\"Below\"] = 1] = \"Below\";\n})(VerticalDirection || (VerticalDirection = {}));\nexport class Menu extends ActionBar {\n    constructor(container, actions, options, menuStyles) {\n        container.classList.add('monaco-menu-container');\n        container.setAttribute('role', 'presentation');\n        const menuElement = document.createElement('div');\n        menuElement.classList.add('monaco-menu');\n        menuElement.setAttribute('role', 'presentation');\n        super(menuElement, {\n            orientation: 1 /* ActionsOrientation.VERTICAL */,\n            actionViewItemProvider: action => this.doGetActionViewItem(action, options, parentData),\n            context: options.context,\n            actionRunner: options.actionRunner,\n            ariaLabel: options.ariaLabel,\n            ariaRole: 'menu',\n            focusOnlyEnabledItems: true,\n            triggerKeys: { keys: [3 /* KeyCode.Enter */, ...(isMacintosh || isLinux ? [10 /* KeyCode.Space */] : [])], keyDown: true }\n        });\n        this.menuStyles = menuStyles;\n        this.menuElement = menuElement;\n        this.actionsList.tabIndex = 0;\n        this.initializeOrUpdateStyleSheet(container, menuStyles);\n        this._register(Gesture.addTarget(menuElement));\n        this._register(addDisposableListener(menuElement, EventType.KEY_DOWN, (e) => {\n            const event = new StandardKeyboardEvent(e);\n            // Stop tab navigation of menus\n            if (event.equals(2 /* KeyCode.Tab */)) {\n                e.preventDefault();\n            }\n        }));\n        if (options.enableMnemonics) {\n            this._register(addDisposableListener(menuElement, EventType.KEY_DOWN, (e) => {\n                const key = e.key.toLocaleLowerCase();\n                if (this.mnemonics.has(key)) {\n                    EventHelper.stop(e, true);\n                    const actions = this.mnemonics.get(key);\n                    if (actions.length === 1) {\n                        if (actions[0] instanceof SubmenuMenuActionViewItem && actions[0].container) {\n                            this.focusItemByElement(actions[0].container);\n                        }\n                        actions[0].onClick(e);\n                    }\n                    if (actions.length > 1) {\n                        const action = actions.shift();\n                        if (action && action.container) {\n                            this.focusItemByElement(action.container);\n                            actions.push(action);\n                        }\n                        this.mnemonics.set(key, actions);\n                    }\n                }\n            }));\n        }\n        if (isLinux) {\n            this._register(addDisposableListener(menuElement, EventType.KEY_DOWN, e => {\n                const event = new StandardKeyboardEvent(e);\n                if (event.equals(14 /* KeyCode.Home */) || event.equals(11 /* KeyCode.PageUp */)) {\n                    this.focusedItem = this.viewItems.length - 1;\n                    this.focusNext();\n                    EventHelper.stop(e, true);\n                }\n                else if (event.equals(13 /* KeyCode.End */) || event.equals(12 /* KeyCode.PageDown */)) {\n                    this.focusedItem = 0;\n                    this.focusPrevious();\n                    EventHelper.stop(e, true);\n                }\n            }));\n        }\n        this._register(addDisposableListener(this.domNode, EventType.MOUSE_OUT, e => {\n            const relatedTarget = e.relatedTarget;\n            if (!isAncestor(relatedTarget, this.domNode)) {\n                this.focusedItem = undefined;\n                this.updateFocus();\n                e.stopPropagation();\n            }\n        }));\n        this._register(addDisposableListener(this.actionsList, EventType.MOUSE_OVER, e => {\n            let target = e.target;\n            if (!target || !isAncestor(target, this.actionsList) || target === this.actionsList) {\n                return;\n            }\n            while (target.parentElement !== this.actionsList && target.parentElement !== null) {\n                target = target.parentElement;\n            }\n            if (target.classList.contains('action-item')) {\n                const lastFocusedItem = this.focusedItem;\n                this.setFocusedItem(target);\n                if (lastFocusedItem !== this.focusedItem) {\n                    this.updateFocus();\n                }\n            }\n        }));\n        // Support touch on actions list to focus items (needed for submenus)\n        this._register(Gesture.addTarget(this.actionsList));\n        this._register(addDisposableListener(this.actionsList, TouchEventType.Tap, e => {\n            let target = e.initialTarget;\n            if (!target || !isAncestor(target, this.actionsList) || target === this.actionsList) {\n                return;\n            }\n            while (target.parentElement !== this.actionsList && target.parentElement !== null) {\n                target = target.parentElement;\n            }\n            if (target.classList.contains('action-item')) {\n                const lastFocusedItem = this.focusedItem;\n                this.setFocusedItem(target);\n                if (lastFocusedItem !== this.focusedItem) {\n                    this.updateFocus();\n                }\n            }\n        }));\n        const parentData = {\n            parent: this\n        };\n        this.mnemonics = new Map();\n        // Scroll Logic\n        this.scrollableElement = this._register(new DomScrollableElement(menuElement, {\n            alwaysConsumeMouseWheel: true,\n            horizontal: 2 /* ScrollbarVisibility.Hidden */,\n            vertical: 3 /* ScrollbarVisibility.Visible */,\n            verticalScrollbarSize: 7,\n            handleMouseWheel: true,\n            useShadows: true\n        }));\n        const scrollElement = this.scrollableElement.getDomNode();\n        scrollElement.style.position = '';\n        this.styleScrollElement(scrollElement, menuStyles);\n        // Support scroll on menu drag\n        this._register(addDisposableListener(menuElement, TouchEventType.Change, e => {\n            EventHelper.stop(e, true);\n            const scrollTop = this.scrollableElement.getScrollPosition().scrollTop;\n            this.scrollableElement.setScrollPosition({ scrollTop: scrollTop - e.translationY });\n        }));\n        this._register(addDisposableListener(scrollElement, EventType.MOUSE_UP, e => {\n            // Absorb clicks in menu dead space https://github.com/microsoft/vscode/issues/63575\n            // We do this on the scroll element so the scroll bar doesn't dismiss the menu either\n            e.preventDefault();\n        }));\n        const window = getWindow(container);\n        menuElement.style.maxHeight = `${Math.max(10, window.innerHeight - container.getBoundingClientRect().top - 35)}px`;\n        actions = actions.filter((a, idx) => {\n            var _a;\n            if ((_a = options.submenuIds) === null || _a === void 0 ? void 0 : _a.has(a.id)) {\n                console.warn(`Found submenu cycle: ${a.id}`);\n                return false;\n            }\n            // Filter out consecutive or useless separators\n            if (a instanceof Separator) {\n                if (idx === actions.length - 1 || idx === 0) {\n                    return false;\n                }\n                const prevAction = actions[idx - 1];\n                if (prevAction instanceof Separator) {\n                    return false;\n                }\n            }\n            return true;\n        });\n        this.push(actions, { icon: true, label: true, isMenu: true });\n        container.appendChild(this.scrollableElement.getDomNode());\n        this.scrollableElement.scanDomNode();\n        this.viewItems.filter(item => !(item instanceof MenuSeparatorActionViewItem)).forEach((item, index, array) => {\n            item.updatePositionInSet(index + 1, array.length);\n        });\n    }\n    initializeOrUpdateStyleSheet(container, style) {\n        if (!this.styleSheet) {\n            if (isInShadowDOM(container)) {\n                this.styleSheet = createStyleSheet(container);\n            }\n            else {\n                if (!Menu.globalStyleSheet) {\n                    Menu.globalStyleSheet = createStyleSheet();\n                }\n                this.styleSheet = Menu.globalStyleSheet;\n            }\n        }\n        this.styleSheet.textContent = getMenuWidgetCSS(style, isInShadowDOM(container));\n    }\n    styleScrollElement(scrollElement, style) {\n        var _a, _b;\n        const fgColor = (_a = style.foregroundColor) !== null && _a !== void 0 ? _a : '';\n        const bgColor = (_b = style.backgroundColor) !== null && _b !== void 0 ? _b : '';\n        const border = style.borderColor ? `1px solid ${style.borderColor}` : '';\n        const borderRadius = '5px';\n        const shadow = style.shadowColor ? `0 2px 8px ${style.shadowColor}` : '';\n        scrollElement.style.outline = border;\n        scrollElement.style.borderRadius = borderRadius;\n        scrollElement.style.color = fgColor;\n        scrollElement.style.backgroundColor = bgColor;\n        scrollElement.style.boxShadow = shadow;\n    }\n    getContainer() {\n        return this.scrollableElement.getDomNode();\n    }\n    get onScroll() {\n        return this.scrollableElement.onScroll;\n    }\n    focusItemByElement(element) {\n        const lastFocusedItem = this.focusedItem;\n        this.setFocusedItem(element);\n        if (lastFocusedItem !== this.focusedItem) {\n            this.updateFocus();\n        }\n    }\n    setFocusedItem(element) {\n        for (let i = 0; i < this.actionsList.children.length; i++) {\n            const elem = this.actionsList.children[i];\n            if (element === elem) {\n                this.focusedItem = i;\n                break;\n            }\n        }\n    }\n    updateFocus(fromRight) {\n        super.updateFocus(fromRight, true, true);\n        if (typeof this.focusedItem !== 'undefined') {\n            // Workaround for #80047 caused by an issue in chromium\n            // https://bugs.chromium.org/p/chromium/issues/detail?id=414283\n            // When that's fixed, just call this.scrollableElement.scanDomNode()\n            this.scrollableElement.setScrollPosition({\n                scrollTop: Math.round(this.menuElement.scrollTop)\n            });\n        }\n    }\n    doGetActionViewItem(action, options, parentData) {\n        if (action instanceof Separator) {\n            return new MenuSeparatorActionViewItem(options.context, action, { icon: true }, this.menuStyles);\n        }\n        else if (action instanceof SubmenuAction) {\n            const menuActionViewItem = new SubmenuMenuActionViewItem(action, action.actions, parentData, { ...options, submenuIds: new Set([...(options.submenuIds || []), action.id]) }, this.menuStyles);\n            if (options.enableMnemonics) {\n                const mnemonic = menuActionViewItem.getMnemonic();\n                if (mnemonic && menuActionViewItem.isEnabled()) {\n                    let actionViewItems = [];\n                    if (this.mnemonics.has(mnemonic)) {\n                        actionViewItems = this.mnemonics.get(mnemonic);\n                    }\n                    actionViewItems.push(menuActionViewItem);\n                    this.mnemonics.set(mnemonic, actionViewItems);\n                }\n            }\n            return menuActionViewItem;\n        }\n        else {\n            const menuItemOptions = { enableMnemonics: options.enableMnemonics, useEventAsContext: options.useEventAsContext };\n            if (options.getKeyBinding) {\n                const keybinding = options.getKeyBinding(action);\n                if (keybinding) {\n                    const keybindingLabel = keybinding.getLabel();\n                    if (keybindingLabel) {\n                        menuItemOptions.keybinding = keybindingLabel;\n                    }\n                }\n            }\n            const menuActionViewItem = new BaseMenuActionViewItem(options.context, action, menuItemOptions, this.menuStyles);\n            if (options.enableMnemonics) {\n                const mnemonic = menuActionViewItem.getMnemonic();\n                if (mnemonic && menuActionViewItem.isEnabled()) {\n                    let actionViewItems = [];\n                    if (this.mnemonics.has(mnemonic)) {\n                        actionViewItems = this.mnemonics.get(mnemonic);\n                    }\n                    actionViewItems.push(menuActionViewItem);\n                    this.mnemonics.set(mnemonic, actionViewItems);\n                }\n            }\n            return menuActionViewItem;\n        }\n    }\n}\nclass BaseMenuActionViewItem extends BaseActionViewItem {\n    constructor(ctx, action, options, menuStyle) {\n        options.isMenu = true;\n        super(action, action, options);\n        this.menuStyle = menuStyle;\n        this.options = options;\n        this.options.icon = options.icon !== undefined ? options.icon : false;\n        this.options.label = options.label !== undefined ? options.label : true;\n        this.cssClass = '';\n        // Set mnemonic\n        if (this.options.label && options.enableMnemonics) {\n            const label = this.action.label;\n            if (label) {\n                const matches = MENU_MNEMONIC_REGEX.exec(label);\n                if (matches) {\n                    this.mnemonic = (!!matches[1] ? matches[1] : matches[3]).toLocaleLowerCase();\n                }\n            }\n        }\n        // Add mouse up listener later to avoid accidental clicks\n        this.runOnceToEnableMouseUp = new RunOnceScheduler(() => {\n            if (!this.element) {\n                return;\n            }\n            this._register(addDisposableListener(this.element, EventType.MOUSE_UP, e => {\n                // removed default prevention as it conflicts\n                // with BaseActionViewItem #101537\n                // add back if issues arise and link new issue\n                EventHelper.stop(e, true);\n                // See https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Interact_with_the_clipboard\n                // > Writing to the clipboard\n                // > You can use the \"cut\" and \"copy\" commands without any special\n                // permission if you are using them in a short-lived event handler\n                // for a user action (for example, a click handler).\n                // => to get the Copy and Paste context menu actions working on Firefox,\n                // there should be no timeout here\n                if (isFirefox) {\n                    const mouseEvent = new StandardMouseEvent(getWindow(this.element), e);\n                    // Allowing right click to trigger the event causes the issue described below,\n                    // but since the solution below does not work in FF, we must disable right click\n                    if (mouseEvent.rightButton) {\n                        return;\n                    }\n                    this.onClick(e);\n                }\n                // In all other cases, set timeout to allow context menu cancellation to trigger\n                // otherwise the action will destroy the menu and a second context menu\n                // will still trigger for right click.\n                else {\n                    setTimeout(() => {\n                        this.onClick(e);\n                    }, 0);\n                }\n            }));\n            this._register(addDisposableListener(this.element, EventType.CONTEXT_MENU, e => {\n                EventHelper.stop(e, true);\n            }));\n        }, 100);\n        this._register(this.runOnceToEnableMouseUp);\n    }\n    render(container) {\n        super.render(container);\n        if (!this.element) {\n            return;\n        }\n        this.container = container;\n        this.item = append(this.element, $('a.action-menu-item'));\n        if (this._action.id === Separator.ID) {\n            // A separator is a presentation item\n            this.item.setAttribute('role', 'presentation');\n        }\n        else {\n            this.item.setAttribute('role', 'menuitem');\n            if (this.mnemonic) {\n                this.item.setAttribute('aria-keyshortcuts', `${this.mnemonic}`);\n            }\n        }\n        this.check = append(this.item, $('span.menu-item-check' + ThemeIcon.asCSSSelector(Codicon.menuSelection)));\n        this.check.setAttribute('role', 'none');\n        this.label = append(this.item, $('span.action-label'));\n        if (this.options.label && this.options.keybinding) {\n            append(this.item, $('span.keybinding')).textContent = this.options.keybinding;\n        }\n        // Adds mouse up listener to actually run the action\n        this.runOnceToEnableMouseUp.schedule();\n        this.updateClass();\n        this.updateLabel();\n        this.updateTooltip();\n        this.updateEnabled();\n        this.updateChecked();\n        this.applyStyle();\n    }\n    blur() {\n        super.blur();\n        this.applyStyle();\n    }\n    focus() {\n        var _a;\n        super.focus();\n        (_a = this.item) === null || _a === void 0 ? void 0 : _a.focus();\n        this.applyStyle();\n    }\n    updatePositionInSet(pos, setSize) {\n        if (this.item) {\n            this.item.setAttribute('aria-posinset', `${pos}`);\n            this.item.setAttribute('aria-setsize', `${setSize}`);\n        }\n    }\n    updateLabel() {\n        var _a;\n        if (!this.label) {\n            return;\n        }\n        if (this.options.label) {\n            clearNode(this.label);\n            let label = stripIcons(this.action.label);\n            if (label) {\n                const cleanLabel = cleanMnemonic(label);\n                if (!this.options.enableMnemonics) {\n                    label = cleanLabel;\n                }\n                this.label.setAttribute('aria-label', cleanLabel.replace(/&&/g, '&'));\n                const matches = MENU_MNEMONIC_REGEX.exec(label);\n                if (matches) {\n                    label = strings.escape(label);\n                    // This is global, reset it\n                    MENU_ESCAPED_MNEMONIC_REGEX.lastIndex = 0;\n                    let escMatch = MENU_ESCAPED_MNEMONIC_REGEX.exec(label);\n                    // We can't use negative lookbehind so if we match our negative and skip\n                    while (escMatch && escMatch[1]) {\n                        escMatch = MENU_ESCAPED_MNEMONIC_REGEX.exec(label);\n                    }\n                    const replaceDoubleEscapes = (str) => str.replace(/&amp;&amp;/g, '&amp;');\n                    if (escMatch) {\n                        this.label.append(strings.ltrim(replaceDoubleEscapes(label.substr(0, escMatch.index)), ' '), $('u', { 'aria-hidden': 'true' }, escMatch[3]), strings.rtrim(replaceDoubleEscapes(label.substr(escMatch.index + escMatch[0].length)), ' '));\n                    }\n                    else {\n                        this.label.innerText = replaceDoubleEscapes(label).trim();\n                    }\n                    (_a = this.item) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-keyshortcuts', (!!matches[1] ? matches[1] : matches[3]).toLocaleLowerCase());\n                }\n                else {\n                    this.label.innerText = label.replace(/&&/g, '&').trim();\n                }\n            }\n        }\n    }\n    updateTooltip() {\n        // menus should function like native menus and they do not have tooltips\n    }\n    updateClass() {\n        if (this.cssClass && this.item) {\n            this.item.classList.remove(...this.cssClass.split(' '));\n        }\n        if (this.options.icon && this.label) {\n            this.cssClass = this.action.class || '';\n            this.label.classList.add('icon');\n            if (this.cssClass) {\n                this.label.classList.add(...this.cssClass.split(' '));\n            }\n            this.updateEnabled();\n        }\n        else if (this.label) {\n            this.label.classList.remove('icon');\n        }\n    }\n    updateEnabled() {\n        if (this.action.enabled) {\n            if (this.element) {\n                this.element.classList.remove('disabled');\n                this.element.removeAttribute('aria-disabled');\n            }\n            if (this.item) {\n                this.item.classList.remove('disabled');\n                this.item.removeAttribute('aria-disabled');\n                this.item.tabIndex = 0;\n            }\n        }\n        else {\n            if (this.element) {\n                this.element.classList.add('disabled');\n                this.element.setAttribute('aria-disabled', 'true');\n            }\n            if (this.item) {\n                this.item.classList.add('disabled');\n                this.item.setAttribute('aria-disabled', 'true');\n            }\n        }\n    }\n    updateChecked() {\n        if (!this.item) {\n            return;\n        }\n        const checked = this.action.checked;\n        this.item.classList.toggle('checked', !!checked);\n        if (checked !== undefined) {\n            this.item.setAttribute('role', 'menuitemcheckbox');\n            this.item.setAttribute('aria-checked', checked ? 'true' : 'false');\n        }\n        else {\n            this.item.setAttribute('role', 'menuitem');\n            this.item.setAttribute('aria-checked', '');\n        }\n    }\n    getMnemonic() {\n        return this.mnemonic;\n    }\n    applyStyle() {\n        const isSelected = this.element && this.element.classList.contains('focused');\n        const fgColor = isSelected && this.menuStyle.selectionForegroundColor ? this.menuStyle.selectionForegroundColor : this.menuStyle.foregroundColor;\n        const bgColor = isSelected && this.menuStyle.selectionBackgroundColor ? this.menuStyle.selectionBackgroundColor : undefined;\n        const outline = isSelected && this.menuStyle.selectionBorderColor ? `1px solid ${this.menuStyle.selectionBorderColor}` : '';\n        const outlineOffset = isSelected && this.menuStyle.selectionBorderColor ? `-1px` : '';\n        if (this.item) {\n            this.item.style.color = fgColor !== null && fgColor !== void 0 ? fgColor : '';\n            this.item.style.backgroundColor = bgColor !== null && bgColor !== void 0 ? bgColor : '';\n            this.item.style.outline = outline;\n            this.item.style.outlineOffset = outlineOffset;\n        }\n        if (this.check) {\n            this.check.style.color = fgColor !== null && fgColor !== void 0 ? fgColor : '';\n        }\n    }\n}\nclass SubmenuMenuActionViewItem extends BaseMenuActionViewItem {\n    constructor(action, submenuActions, parentData, submenuOptions, menuStyles) {\n        super(action, action, submenuOptions, menuStyles);\n        this.submenuActions = submenuActions;\n        this.parentData = parentData;\n        this.submenuOptions = submenuOptions;\n        this.mysubmenu = null;\n        this.submenuDisposables = this._register(new DisposableStore());\n        this.mouseOver = false;\n        this.expandDirection = submenuOptions && submenuOptions.expandDirection !== undefined ? submenuOptions.expandDirection : { horizontal: HorizontalDirection.Right, vertical: VerticalDirection.Below };\n        this.showScheduler = new RunOnceScheduler(() => {\n            if (this.mouseOver) {\n                this.cleanupExistingSubmenu(false);\n                this.createSubmenu(false);\n            }\n        }, 250);\n        this.hideScheduler = new RunOnceScheduler(() => {\n            if (this.element && (!isAncestor(getActiveElement(), this.element) && this.parentData.submenu === this.mysubmenu)) {\n                this.parentData.parent.focus(false);\n                this.cleanupExistingSubmenu(true);\n            }\n        }, 750);\n    }\n    render(container) {\n        super.render(container);\n        if (!this.element) {\n            return;\n        }\n        if (this.item) {\n            this.item.classList.add('monaco-submenu-item');\n            this.item.tabIndex = 0;\n            this.item.setAttribute('aria-haspopup', 'true');\n            this.updateAriaExpanded('false');\n            this.submenuIndicator = append(this.item, $('span.submenu-indicator' + ThemeIcon.asCSSSelector(Codicon.menuSubmenu)));\n            this.submenuIndicator.setAttribute('aria-hidden', 'true');\n        }\n        this._register(addDisposableListener(this.element, EventType.KEY_UP, e => {\n            const event = new StandardKeyboardEvent(e);\n            if (event.equals(17 /* KeyCode.RightArrow */) || event.equals(3 /* KeyCode.Enter */)) {\n                EventHelper.stop(e, true);\n                this.createSubmenu(true);\n            }\n        }));\n        this._register(addDisposableListener(this.element, EventType.KEY_DOWN, e => {\n            const event = new StandardKeyboardEvent(e);\n            if (getActiveElement() === this.item) {\n                if (event.equals(17 /* KeyCode.RightArrow */) || event.equals(3 /* KeyCode.Enter */)) {\n                    EventHelper.stop(e, true);\n                }\n            }\n        }));\n        this._register(addDisposableListener(this.element, EventType.MOUSE_OVER, e => {\n            if (!this.mouseOver) {\n                this.mouseOver = true;\n                this.showScheduler.schedule();\n            }\n        }));\n        this._register(addDisposableListener(this.element, EventType.MOUSE_LEAVE, e => {\n            this.mouseOver = false;\n        }));\n        this._register(addDisposableListener(this.element, EventType.FOCUS_OUT, e => {\n            if (this.element && !isAncestor(getActiveElement(), this.element)) {\n                this.hideScheduler.schedule();\n            }\n        }));\n        this._register(this.parentData.parent.onScroll(() => {\n            if (this.parentData.submenu === this.mysubmenu) {\n                this.parentData.parent.focus(false);\n                this.cleanupExistingSubmenu(true);\n            }\n        }));\n    }\n    updateEnabled() {\n        // override on submenu entry\n        // native menus do not observe enablement on sumbenus\n        // we mimic that behavior\n    }\n    onClick(e) {\n        // stop clicking from trying to run an action\n        EventHelper.stop(e, true);\n        this.cleanupExistingSubmenu(false);\n        this.createSubmenu(true);\n    }\n    cleanupExistingSubmenu(force) {\n        if (this.parentData.submenu && (force || (this.parentData.submenu !== this.mysubmenu))) {\n            // disposal may throw if the submenu has already been removed\n            try {\n                this.parentData.submenu.dispose();\n            }\n            catch (_a) { }\n            this.parentData.submenu = undefined;\n            this.updateAriaExpanded('false');\n            if (this.submenuContainer) {\n                this.submenuDisposables.clear();\n                this.submenuContainer = undefined;\n            }\n        }\n    }\n    calculateSubmenuMenuLayout(windowDimensions, submenu, entry, expandDirection) {\n        const ret = { top: 0, left: 0 };\n        // Start with horizontal\n        ret.left = layout(windowDimensions.width, submenu.width, { position: expandDirection.horizontal === HorizontalDirection.Right ? 0 /* LayoutAnchorPosition.Before */ : 1 /* LayoutAnchorPosition.After */, offset: entry.left, size: entry.width });\n        // We don't have enough room to layout the menu fully, so we are overlapping the menu\n        if (ret.left >= entry.left && ret.left < entry.left + entry.width) {\n            if (entry.left + 10 + submenu.width <= windowDimensions.width) {\n                ret.left = entry.left + 10;\n            }\n            entry.top += 10;\n            entry.height = 0;\n        }\n        // Now that we have a horizontal position, try layout vertically\n        ret.top = layout(windowDimensions.height, submenu.height, { position: 0 /* LayoutAnchorPosition.Before */, offset: entry.top, size: 0 });\n        // We didn't have enough room below, but we did above, so we shift down to align the menu\n        if (ret.top + submenu.height === entry.top && ret.top + entry.height + submenu.height <= windowDimensions.height) {\n            ret.top += entry.height;\n        }\n        return ret;\n    }\n    createSubmenu(selectFirstItem = true) {\n        if (!this.element) {\n            return;\n        }\n        if (!this.parentData.submenu) {\n            this.updateAriaExpanded('true');\n            this.submenuContainer = append(this.element, $('div.monaco-submenu'));\n            this.submenuContainer.classList.add('menubar-menu-items-holder', 'context-view');\n            // Set the top value of the menu container before construction\n            // This allows the menu constructor to calculate the proper max height\n            const computedStyles = getWindow(this.parentData.parent.domNode).getComputedStyle(this.parentData.parent.domNode);\n            const paddingTop = parseFloat(computedStyles.paddingTop || '0') || 0;\n            // this.submenuContainer.style.top = `${this.element.offsetTop - this.parentData.parent.scrollOffset - paddingTop}px`;\n            this.submenuContainer.style.zIndex = '1';\n            this.submenuContainer.style.position = 'fixed';\n            this.submenuContainer.style.top = '0';\n            this.submenuContainer.style.left = '0';\n            this.parentData.submenu = new Menu(this.submenuContainer, this.submenuActions.length ? this.submenuActions : [new EmptySubmenuAction()], this.submenuOptions, this.menuStyle);\n            // layout submenu\n            const entryBox = this.element.getBoundingClientRect();\n            const entryBoxUpdated = {\n                top: entryBox.top - paddingTop,\n                left: entryBox.left,\n                height: entryBox.height + 2 * paddingTop,\n                width: entryBox.width\n            };\n            const viewBox = this.submenuContainer.getBoundingClientRect();\n            const window = getWindow(this.element);\n            const { top, left } = this.calculateSubmenuMenuLayout(new Dimension(window.innerWidth, window.innerHeight), Dimension.lift(viewBox), entryBoxUpdated, this.expandDirection);\n            // subtract offsets caused by transform parent\n            this.submenuContainer.style.left = `${left - viewBox.left}px`;\n            this.submenuContainer.style.top = `${top - viewBox.top}px`;\n            this.submenuDisposables.add(addDisposableListener(this.submenuContainer, EventType.KEY_UP, e => {\n                const event = new StandardKeyboardEvent(e);\n                if (event.equals(15 /* KeyCode.LeftArrow */)) {\n                    EventHelper.stop(e, true);\n                    this.parentData.parent.focus();\n                    this.cleanupExistingSubmenu(true);\n                }\n            }));\n            this.submenuDisposables.add(addDisposableListener(this.submenuContainer, EventType.KEY_DOWN, e => {\n                const event = new StandardKeyboardEvent(e);\n                if (event.equals(15 /* KeyCode.LeftArrow */)) {\n                    EventHelper.stop(e, true);\n                }\n            }));\n            this.submenuDisposables.add(this.parentData.submenu.onDidCancel(() => {\n                this.parentData.parent.focus();\n                this.cleanupExistingSubmenu(true);\n            }));\n            this.parentData.submenu.focus(selectFirstItem);\n            this.mysubmenu = this.parentData.submenu;\n        }\n        else {\n            this.parentData.submenu.focus(false);\n        }\n    }\n    updateAriaExpanded(value) {\n        var _a;\n        if (this.item) {\n            (_a = this.item) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-expanded', value);\n        }\n    }\n    applyStyle() {\n        super.applyStyle();\n        const isSelected = this.element && this.element.classList.contains('focused');\n        const fgColor = isSelected && this.menuStyle.selectionForegroundColor ? this.menuStyle.selectionForegroundColor : this.menuStyle.foregroundColor;\n        if (this.submenuIndicator) {\n            this.submenuIndicator.style.color = fgColor !== null && fgColor !== void 0 ? fgColor : '';\n        }\n    }\n    dispose() {\n        super.dispose();\n        this.hideScheduler.dispose();\n        if (this.mysubmenu) {\n            this.mysubmenu.dispose();\n            this.mysubmenu = null;\n        }\n        if (this.submenuContainer) {\n            this.submenuContainer = undefined;\n        }\n    }\n}\nclass MenuSeparatorActionViewItem extends ActionViewItem {\n    constructor(context, action, options, menuStyles) {\n        super(context, action, options);\n        this.menuStyles = menuStyles;\n    }\n    render(container) {\n        super.render(container);\n        if (this.label) {\n            this.label.style.borderBottomColor = this.menuStyles.separatorColor ? `${this.menuStyles.separatorColor}` : '';\n        }\n    }\n}\nexport function cleanMnemonic(label) {\n    const regex = MENU_MNEMONIC_REGEX;\n    const matches = regex.exec(label);\n    if (!matches) {\n        return label;\n    }\n    const mnemonicInText = !matches[1];\n    return label.replace(regex, mnemonicInText ? '$2$3' : '').trim();\n}\nexport function formatRule(c) {\n    const fontCharacter = getCodiconFontCharacters()[c.id];\n    return `.codicon-${c.id}:before { content: '\\\\${fontCharacter.toString(16)}'; }`;\n}\nfunction getMenuWidgetCSS(style, isForShadowDom) {\n    let result = /* css */ `\n.monaco-menu {\n\tfont-size: 13px;\n\tborder-radius: 5px;\n\tmin-width: 160px;\n}\n\n${formatRule(Codicon.menuSelection)}\n${formatRule(Codicon.menuSubmenu)}\n\n.monaco-menu .monaco-action-bar {\n\ttext-align: right;\n\toverflow: hidden;\n\twhite-space: nowrap;\n}\n\n.monaco-menu .monaco-action-bar .actions-container {\n\tdisplay: flex;\n\tmargin: 0 auto;\n\tpadding: 0;\n\twidth: 100%;\n\tjustify-content: flex-end;\n}\n\n.monaco-menu .monaco-action-bar.vertical .actions-container {\n\tdisplay: inline-block;\n}\n\n.monaco-menu .monaco-action-bar.reverse .actions-container {\n\tflex-direction: row-reverse;\n}\n\n.monaco-menu .monaco-action-bar .action-item {\n\tcursor: pointer;\n\tdisplay: inline-block;\n\ttransition: transform 50ms ease;\n\tposition: relative;  /* DO NOT REMOVE - this is the key to preventing the ghosting icon bug in Chrome 42 */\n}\n\n.monaco-menu .monaco-action-bar .action-item.disabled {\n\tcursor: default;\n}\n\n.monaco-menu .monaco-action-bar .action-item .icon,\n.monaco-menu .monaco-action-bar .action-item .codicon {\n\tdisplay: inline-block;\n}\n\n.monaco-menu .monaco-action-bar .action-item .codicon {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.monaco-menu .monaco-action-bar .action-label {\n\tfont-size: 11px;\n\tmargin-right: 4px;\n}\n\n.monaco-menu .monaco-action-bar .action-item.disabled .action-label,\n.monaco-menu .monaco-action-bar .action-item.disabled .action-label:hover {\n\tcolor: var(--vscode-disabledForeground);\n}\n\n/* Vertical actions */\n\n.monaco-menu .monaco-action-bar.vertical {\n\ttext-align: left;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tdisplay: block;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tdisplay: block;\n\tborder-bottom: 1px solid var(--vscode-menu-separatorBackground);\n\tpadding-top: 1px;\n\tpadding: 30px;\n}\n\n.monaco-menu .secondary-actions .monaco-action-bar .action-label {\n\tmargin-left: 6px;\n}\n\n/* Action Items */\n.monaco-menu .monaco-action-bar .action-item.select-container {\n\toverflow: hidden; /* somehow the dropdown overflows its container, we prevent it here to not push */\n\tflex: 1;\n\tmax-width: 170px;\n\tmin-width: 60px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin-right: 10px;\n}\n\n.monaco-menu .monaco-action-bar.vertical {\n\tmargin-left: 0;\n\toverflow: visible;\n}\n\n.monaco-menu .monaco-action-bar.vertical .actions-container {\n\tdisplay: block;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tpadding: 0;\n\ttransform: none;\n\tdisplay: flex;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item.active {\n\ttransform: none;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item {\n\tflex: 1 1 auto;\n\tdisplay: flex;\n\theight: 2em;\n\talign-items: center;\n\tposition: relative;\n\tmargin: 0 4px;\n\tborder-radius: 4px;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .keybinding,\n.monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .keybinding {\n\topacity: unset;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label {\n\tflex: 1 1 auto;\n\ttext-decoration: none;\n\tpadding: 0 1em;\n\tbackground: none;\n\tfont-size: 12px;\n\tline-height: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .keybinding,\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\tdisplay: inline-block;\n\tflex: 2 1 auto;\n\tpadding: 0 1em;\n\ttext-align: right;\n\tfont-size: 12px;\n\tline-height: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\theight: 100%;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon {\n\tfont-size: 16px !important;\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon::before {\n\tmargin-left: auto;\n\tmargin-right: -20px;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item.disabled .keybinding,\n.monaco-menu .monaco-action-bar.vertical .action-item.disabled .submenu-indicator {\n\topacity: 0.4;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator) {\n\tdisplay: inline-block;\n\tbox-sizing: border-box;\n\tmargin: 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tposition: static;\n\toverflow: visible;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item .monaco-submenu {\n\tposition: absolute;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\twidth: 100%;\n\theight: 0px !important;\n\topacity: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator.text {\n\tpadding: 0.7em 1em 0.1em 1em;\n\tfont-weight: bold;\n\topacity: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:hover {\n\tcolor: inherit;\n}\n\n.monaco-menu .monaco-action-bar.vertical .menu-item-check {\n\tposition: absolute;\n\tvisibility: hidden;\n\twidth: 1em;\n\theight: 100%;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item.checked .menu-item-check {\n\tvisibility: visible;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n/* Context Menu */\n\n.context-view.monaco-menu-container {\n\toutline: 0;\n\tborder: none;\n\tanimation: fadeIn 0.083s linear;\n\t-webkit-app-region: no-drag;\n}\n\n.context-view.monaco-menu-container :focus,\n.context-view.monaco-menu-container .monaco-action-bar.vertical:focus,\n.context-view.monaco-menu-container .monaco-action-bar.vertical :focus {\n\toutline: 0;\n}\n\n.hc-black .context-view.monaco-menu-container,\n.hc-light .context-view.monaco-menu-container,\n:host-context(.hc-black) .context-view.monaco-menu-container,\n:host-context(.hc-light) .context-view.monaco-menu-container {\n\tbox-shadow: none;\n}\n\n.hc-black .monaco-menu .monaco-action-bar.vertical .action-item.focused,\n.hc-light .monaco-menu .monaco-action-bar.vertical .action-item.focused,\n:host-context(.hc-black) .monaco-menu .monaco-action-bar.vertical .action-item.focused,\n:host-context(.hc-light) .monaco-menu .monaco-action-bar.vertical .action-item.focused {\n\tbackground: none;\n}\n\n/* Vertical Action Bar Styles */\n\n.monaco-menu .monaco-action-bar.vertical {\n\tpadding: 4px 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item {\n\theight: 2em;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator),\n.monaco-menu .monaco-action-bar.vertical .keybinding {\n\tfont-size: inherit;\n\tpadding: 0 2em;\n\tmax-height: 100%;\n}\n\n.monaco-menu .monaco-action-bar.vertical .menu-item-check {\n\tfont-size: inherit;\n\twidth: 2em;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tfont-size: inherit;\n\tmargin: 5px 0 !important;\n\tpadding: 0;\n\tborder-radius: 0;\n}\n\n.linux .monaco-menu .monaco-action-bar.vertical .action-label.separator,\n:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tmargin-left: 0;\n\tmargin-right: 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\tfont-size: 60%;\n\tpadding: 0 1.8em;\n}\n\n.linux .monaco-menu .monaco-action-bar.vertical .submenu-indicator,\n:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\theight: 100%;\n\tmask-size: 10px 10px;\n\t-webkit-mask-size: 10px 10px;\n}\n\n.monaco-menu .action-item {\n\tcursor: default;\n}`;\n    if (isForShadowDom) {\n        // Only define scrollbar styles when used inside shadow dom,\n        // otherwise leave their styling to the global workbench styling.\n        result += `\n\t\t\t/* Arrows */\n\t\t\t.monaco-scrollable-element > .scrollbar > .scra {\n\t\t\t\tcursor: pointer;\n\t\t\t\tfont-size: 11px !important;\n\t\t\t}\n\n\t\t\t.monaco-scrollable-element > .visible {\n\t\t\t\topacity: 1;\n\n\t\t\t\t/* Background rule added for IE9 - to allow clicks on dom node */\n\t\t\t\tbackground:rgba(0,0,0,0);\n\n\t\t\t\ttransition: opacity 100ms linear;\n\t\t\t}\n\t\t\t.monaco-scrollable-element > .invisible {\n\t\t\t\topacity: 0;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\t\t\t.monaco-scrollable-element > .invisible.fade {\n\t\t\t\ttransition: opacity 800ms linear;\n\t\t\t}\n\n\t\t\t/* Scrollable Content Inset Shadow */\n\t\t\t.monaco-scrollable-element > .shadow {\n\t\t\t\tposition: absolute;\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t\t.monaco-scrollable-element > .shadow.top {\n\t\t\t\tdisplay: block;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 3px;\n\t\t\t\theight: 3px;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t\t.monaco-scrollable-element > .shadow.left {\n\t\t\t\tdisplay: block;\n\t\t\t\ttop: 3px;\n\t\t\t\tleft: 0;\n\t\t\t\theight: 100%;\n\t\t\t\twidth: 3px;\n\t\t\t}\n\t\t\t.monaco-scrollable-element > .shadow.top-left-corner {\n\t\t\t\tdisplay: block;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\theight: 3px;\n\t\t\t\twidth: 3px;\n\t\t\t}\n\t\t`;\n        // Scrollbars\n        const scrollbarShadowColor = style.scrollbarShadow;\n        if (scrollbarShadowColor) {\n            result += `\n\t\t\t\t.monaco-scrollable-element > .shadow.top {\n\t\t\t\t\tbox-shadow: ${scrollbarShadowColor} 0 6px 6px -6px inset;\n\t\t\t\t}\n\n\t\t\t\t.monaco-scrollable-element > .shadow.left {\n\t\t\t\t\tbox-shadow: ${scrollbarShadowColor} 6px 0 6px -6px inset;\n\t\t\t\t}\n\n\t\t\t\t.monaco-scrollable-element > .shadow.top.left {\n\t\t\t\t\tbox-shadow: ${scrollbarShadowColor} 6px 6px 6px -6px inset;\n\t\t\t\t}\n\t\t\t`;\n        }\n        const scrollbarSliderBackgroundColor = style.scrollbarSliderBackground;\n        if (scrollbarSliderBackgroundColor) {\n            result += `\n\t\t\t\t.monaco-scrollable-element > .scrollbar > .slider {\n\t\t\t\t\tbackground: ${scrollbarSliderBackgroundColor};\n\t\t\t\t}\n\t\t\t`;\n        }\n        const scrollbarSliderHoverBackgroundColor = style.scrollbarSliderHoverBackground;\n        if (scrollbarSliderHoverBackgroundColor) {\n            result += `\n\t\t\t\t.monaco-scrollable-element > .scrollbar > .slider:hover {\n\t\t\t\t\tbackground: ${scrollbarSliderHoverBackgroundColor};\n\t\t\t\t}\n\t\t\t`;\n        }\n        const scrollbarSliderActiveBackgroundColor = style.scrollbarSliderActiveBackground;\n        if (scrollbarSliderActiveBackgroundColor) {\n            result += `\n\t\t\t\t.monaco-scrollable-element > .scrollbar > .slider.active {\n\t\t\t\t\tbackground: ${scrollbarSliderActiveBackgroundColor};\n\t\t\t\t}\n\t\t\t`;\n        }\n    }\n    return result;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/mouseCursor/mouseCursor.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-mouse-cursor-text {\n\tcursor: text;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/mouseCursor/mouseCursor.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './mouseCursor.css';\nexport const MOUSE_CURSOR_TEXT_CSS_CLASS_NAME = `monaco-mouse-cursor-text`;\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/progressbar/progressbar.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-progress-container {\n\twidth: 100%;\n\theight: 2px;\n\toverflow: hidden; /* keep progress bit in bounds */\n}\n\n.monaco-progress-container .progress-bit {\n\twidth: 2%;\n\theight: 2px;\n\tposition: absolute;\n\tleft: 0;\n\tdisplay: none;\n}\n\n.monaco-progress-container.active .progress-bit {\n\tdisplay: inherit;\n}\n\n.monaco-progress-container.discrete .progress-bit {\n\tleft: 0;\n\ttransition: width 100ms linear;\n}\n\n.monaco-progress-container.discrete.done .progress-bit {\n\twidth: 100%;\n}\n\n.monaco-progress-container.infinite .progress-bit {\n\tanimation-name: progress;\n\tanimation-duration: 4s;\n\tanimation-iteration-count: infinite;\n\ttransform: translate3d(0px, 0px, 0px);\n\tanimation-timing-function: linear;\n}\n\n.monaco-progress-container.infinite.infinite-long-running .progress-bit {\n\t/*\n\t\tThe more smooth `linear` timing function can cause\n\t\thigher GPU consumption as indicated in\n\t\thttps://github.com/microsoft/vscode/issues/97900 &\n\t\thttps://github.com/microsoft/vscode/issues/138396\n\t*/\n\tanimation-timing-function: steps(100);\n}\n\n/**\n * The progress bit has a width: 2% (1/50) of the parent container. The animation moves it from 0% to 100% of\n * that container. Since translateX is relative to the progress bit size, we have to multiple it with\n * its relative size to the parent container:\n * parent width: 5000%\n *    bit width: 100%\n * translateX should be as follow:\n *  50%: 5000% * 50% - 50% (set to center) = 2450%\n * 100%: 5000% * 100% - 100% (do not overflow) = 4900%\n */\n@keyframes progress { from { transform: translateX(0%) scaleX(1) } 50% { transform: translateX(2500%) scaleX(3) } to { transform: translateX(4900%) scaleX(1) } }\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/progressbar/progressbar.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { show } from '../../dom.js';\nimport { RunOnceScheduler } from '../../../common/async.js';\nimport { Disposable, MutableDisposable } from '../../../common/lifecycle.js';\nimport './progressbar.css';\nconst CSS_DONE = 'done';\nconst CSS_ACTIVE = 'active';\nconst CSS_INFINITE = 'infinite';\nconst CSS_INFINITE_LONG_RUNNING = 'infinite-long-running';\nconst CSS_DISCRETE = 'discrete';\n/**\n * A progress bar with support for infinite or discrete progress.\n */\nexport class ProgressBar extends Disposable {\n    constructor(container, options) {\n        super();\n        this.progressSignal = this._register(new MutableDisposable());\n        this.workedVal = 0;\n        this.showDelayedScheduler = this._register(new RunOnceScheduler(() => show(this.element), 0));\n        this.longRunningScheduler = this._register(new RunOnceScheduler(() => this.infiniteLongRunning(), ProgressBar.LONG_RUNNING_INFINITE_THRESHOLD));\n        this.create(container, options);\n    }\n    create(container, options) {\n        this.element = document.createElement('div');\n        this.element.classList.add('monaco-progress-container');\n        this.element.setAttribute('role', 'progressbar');\n        this.element.setAttribute('aria-valuemin', '0');\n        container.appendChild(this.element);\n        this.bit = document.createElement('div');\n        this.bit.classList.add('progress-bit');\n        this.bit.style.backgroundColor = (options === null || options === void 0 ? void 0 : options.progressBarBackground) || '#0E70C0';\n        this.element.appendChild(this.bit);\n    }\n    off() {\n        this.bit.style.width = 'inherit';\n        this.bit.style.opacity = '1';\n        this.element.classList.remove(CSS_ACTIVE, CSS_INFINITE, CSS_INFINITE_LONG_RUNNING, CSS_DISCRETE);\n        this.workedVal = 0;\n        this.totalWork = undefined;\n        this.longRunningScheduler.cancel();\n        this.progressSignal.clear();\n    }\n    /**\n     * Stops the progressbar from showing any progress instantly without fading out.\n     */\n    stop() {\n        return this.doDone(false);\n    }\n    doDone(delayed) {\n        this.element.classList.add(CSS_DONE);\n        // discrete: let it grow to 100% width and hide afterwards\n        if (!this.element.classList.contains(CSS_INFINITE)) {\n            this.bit.style.width = 'inherit';\n            if (delayed) {\n                setTimeout(() => this.off(), 200);\n            }\n            else {\n                this.off();\n            }\n        }\n        // infinite: let it fade out and hide afterwards\n        else {\n            this.bit.style.opacity = '0';\n            if (delayed) {\n                setTimeout(() => this.off(), 200);\n            }\n            else {\n                this.off();\n            }\n        }\n        return this;\n    }\n    /**\n     * Use this mode to indicate progress that has no total number of work units.\n     */\n    infinite() {\n        this.bit.style.width = '2%';\n        this.bit.style.opacity = '1';\n        this.element.classList.remove(CSS_DISCRETE, CSS_DONE, CSS_INFINITE_LONG_RUNNING);\n        this.element.classList.add(CSS_ACTIVE, CSS_INFINITE);\n        this.longRunningScheduler.schedule();\n        return this;\n    }\n    infiniteLongRunning() {\n        this.element.classList.add(CSS_INFINITE_LONG_RUNNING);\n    }\n    getContainer() {\n        return this.element;\n    }\n}\n/**\n * After a certain time of showing the progress bar, switch\n * to long-running mode and throttle animations to reduce\n * the pressure on the GPU process.\n *\n * https://github.com/microsoft/vscode/issues/97900\n * https://github.com/microsoft/vscode/issues/138396\n */\nProgressBar.LONG_RUNNING_INFINITE_THRESHOLD = 10000;\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/resizable/resizable.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Dimension } from '../../dom.js';\nimport { OrthogonalEdge, Sash } from '../sash/sash.js';\nimport { Emitter, Event } from '../../../common/event.js';\nimport { DisposableStore } from '../../../common/lifecycle.js';\nexport class ResizableHTMLElement {\n    constructor() {\n        this._onDidWillResize = new Emitter();\n        this.onDidWillResize = this._onDidWillResize.event;\n        this._onDidResize = new Emitter();\n        this.onDidResize = this._onDidResize.event;\n        this._sashListener = new DisposableStore();\n        this._size = new Dimension(0, 0);\n        this._minSize = new Dimension(0, 0);\n        this._maxSize = new Dimension(Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);\n        this.domNode = document.createElement('div');\n        this._eastSash = new Sash(this.domNode, { getVerticalSashLeft: () => this._size.width }, { orientation: 0 /* Orientation.VERTICAL */ });\n        this._westSash = new Sash(this.domNode, { getVerticalSashLeft: () => 0 }, { orientation: 0 /* Orientation.VERTICAL */ });\n        this._northSash = new Sash(this.domNode, { getHorizontalSashTop: () => 0 }, { orientation: 1 /* Orientation.HORIZONTAL */, orthogonalEdge: OrthogonalEdge.North });\n        this._southSash = new Sash(this.domNode, { getHorizontalSashTop: () => this._size.height }, { orientation: 1 /* Orientation.HORIZONTAL */, orthogonalEdge: OrthogonalEdge.South });\n        this._northSash.orthogonalStartSash = this._westSash;\n        this._northSash.orthogonalEndSash = this._eastSash;\n        this._southSash.orthogonalStartSash = this._westSash;\n        this._southSash.orthogonalEndSash = this._eastSash;\n        let currentSize;\n        let deltaY = 0;\n        let deltaX = 0;\n        this._sashListener.add(Event.any(this._northSash.onDidStart, this._eastSash.onDidStart, this._southSash.onDidStart, this._westSash.onDidStart)(() => {\n            if (currentSize === undefined) {\n                this._onDidWillResize.fire();\n                currentSize = this._size;\n                deltaY = 0;\n                deltaX = 0;\n            }\n        }));\n        this._sashListener.add(Event.any(this._northSash.onDidEnd, this._eastSash.onDidEnd, this._southSash.onDidEnd, this._westSash.onDidEnd)(() => {\n            if (currentSize !== undefined) {\n                currentSize = undefined;\n                deltaY = 0;\n                deltaX = 0;\n                this._onDidResize.fire({ dimension: this._size, done: true });\n            }\n        }));\n        this._sashListener.add(this._eastSash.onDidChange(e => {\n            if (currentSize) {\n                deltaX = e.currentX - e.startX;\n                this.layout(currentSize.height + deltaY, currentSize.width + deltaX);\n                this._onDidResize.fire({ dimension: this._size, done: false, east: true });\n            }\n        }));\n        this._sashListener.add(this._westSash.onDidChange(e => {\n            if (currentSize) {\n                deltaX = -(e.currentX - e.startX);\n                this.layout(currentSize.height + deltaY, currentSize.width + deltaX);\n                this._onDidResize.fire({ dimension: this._size, done: false, west: true });\n            }\n        }));\n        this._sashListener.add(this._northSash.onDidChange(e => {\n            if (currentSize) {\n                deltaY = -(e.currentY - e.startY);\n                this.layout(currentSize.height + deltaY, currentSize.width + deltaX);\n                this._onDidResize.fire({ dimension: this._size, done: false, north: true });\n            }\n        }));\n        this._sashListener.add(this._southSash.onDidChange(e => {\n            if (currentSize) {\n                deltaY = e.currentY - e.startY;\n                this.layout(currentSize.height + deltaY, currentSize.width + deltaX);\n                this._onDidResize.fire({ dimension: this._size, done: false, south: true });\n            }\n        }));\n        this._sashListener.add(Event.any(this._eastSash.onDidReset, this._westSash.onDidReset)(e => {\n            if (this._preferredSize) {\n                this.layout(this._size.height, this._preferredSize.width);\n                this._onDidResize.fire({ dimension: this._size, done: true });\n            }\n        }));\n        this._sashListener.add(Event.any(this._northSash.onDidReset, this._southSash.onDidReset)(e => {\n            if (this._preferredSize) {\n                this.layout(this._preferredSize.height, this._size.width);\n                this._onDidResize.fire({ dimension: this._size, done: true });\n            }\n        }));\n    }\n    dispose() {\n        this._northSash.dispose();\n        this._southSash.dispose();\n        this._eastSash.dispose();\n        this._westSash.dispose();\n        this._sashListener.dispose();\n        this._onDidResize.dispose();\n        this._onDidWillResize.dispose();\n        this.domNode.remove();\n    }\n    enableSashes(north, east, south, west) {\n        this._northSash.state = north ? 3 /* SashState.Enabled */ : 0 /* SashState.Disabled */;\n        this._eastSash.state = east ? 3 /* SashState.Enabled */ : 0 /* SashState.Disabled */;\n        this._southSash.state = south ? 3 /* SashState.Enabled */ : 0 /* SashState.Disabled */;\n        this._westSash.state = west ? 3 /* SashState.Enabled */ : 0 /* SashState.Disabled */;\n    }\n    layout(height = this.size.height, width = this.size.width) {\n        const { height: minHeight, width: minWidth } = this._minSize;\n        const { height: maxHeight, width: maxWidth } = this._maxSize;\n        height = Math.max(minHeight, Math.min(maxHeight, height));\n        width = Math.max(minWidth, Math.min(maxWidth, width));\n        const newSize = new Dimension(width, height);\n        if (!Dimension.equals(newSize, this._size)) {\n            this.domNode.style.height = height + 'px';\n            this.domNode.style.width = width + 'px';\n            this._size = newSize;\n            this._northSash.layout();\n            this._eastSash.layout();\n            this._southSash.layout();\n            this._westSash.layout();\n        }\n    }\n    clearSashHoverState() {\n        this._eastSash.clearSashHoverState();\n        this._westSash.clearSashHoverState();\n        this._northSash.clearSashHoverState();\n        this._southSash.clearSashHoverState();\n    }\n    get size() {\n        return this._size;\n    }\n    set maxSize(value) {\n        this._maxSize = value;\n    }\n    get maxSize() {\n        return this._maxSize;\n    }\n    set minSize(value) {\n        this._minSize = value;\n    }\n    get minSize() {\n        return this._minSize;\n    }\n    set preferredSize(value) {\n        this._preferredSize = value;\n    }\n    get preferredSize() {\n        return this._preferredSize;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/sash/sash.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n:root {\n\t--vscode-sash-size: 4px;\n\t--vscode-sash-hover-size: 4px;\n}\n\n.monaco-sash {\n\tposition: absolute;\n\tz-index: 35;\n\ttouch-action: none;\n}\n\n.monaco-sash.disabled {\n\tpointer-events: none;\n}\n\n.monaco-sash.mac.vertical {\n\tcursor: col-resize;\n}\n\n.monaco-sash.vertical.minimum {\n\tcursor: e-resize;\n}\n\n.monaco-sash.vertical.maximum {\n\tcursor: w-resize;\n}\n\n.monaco-sash.mac.horizontal {\n\tcursor: row-resize;\n}\n\n.monaco-sash.horizontal.minimum {\n\tcursor: s-resize;\n}\n\n.monaco-sash.horizontal.maximum {\n\tcursor: n-resize;\n}\n\n.monaco-sash.disabled {\n\tcursor: default !important;\n\tpointer-events: none !important;\n}\n\n.monaco-sash.vertical {\n\tcursor: ew-resize;\n\ttop: 0;\n\twidth: var(--vscode-sash-size);\n\theight: 100%;\n}\n\n.monaco-sash.horizontal {\n\tcursor: ns-resize;\n\tleft: 0;\n\twidth: 100%;\n\theight: var(--vscode-sash-size);\n}\n\n.monaco-sash:not(.disabled) > .orthogonal-drag-handle {\n\tcontent: \" \";\n\theight: calc(var(--vscode-sash-size) * 2);\n\twidth: calc(var(--vscode-sash-size) * 2);\n\tz-index: 100;\n\tdisplay: block;\n\tcursor: all-scroll;\n\tposition: absolute;\n}\n\n.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)\n\t> .orthogonal-drag-handle.start,\n.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)\n\t> .orthogonal-drag-handle.end {\n\tcursor: nwse-resize;\n}\n\n.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)\n\t> .orthogonal-drag-handle.end,\n.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)\n\t> .orthogonal-drag-handle.start {\n\tcursor: nesw-resize;\n}\n\n.monaco-sash.vertical > .orthogonal-drag-handle.start {\n\tleft: calc(var(--vscode-sash-size) * -0.5);\n\ttop: calc(var(--vscode-sash-size) * -1);\n}\n.monaco-sash.vertical > .orthogonal-drag-handle.end {\n\tleft: calc(var(--vscode-sash-size) * -0.5);\n\tbottom: calc(var(--vscode-sash-size) * -1);\n}\n.monaco-sash.horizontal > .orthogonal-drag-handle.start {\n\ttop: calc(var(--vscode-sash-size) * -0.5);\n\tleft: calc(var(--vscode-sash-size) * -1);\n}\n.monaco-sash.horizontal > .orthogonal-drag-handle.end {\n\ttop: calc(var(--vscode-sash-size) * -0.5);\n\tright: calc(var(--vscode-sash-size) * -1);\n}\n\n.monaco-sash:before {\n\tcontent: '';\n\tpointer-events: none;\n\tposition: absolute;\n\twidth: 100%;\n\theight: 100%;\n\tbackground: transparent;\n}\n\n.monaco-workbench:not(.reduce-motion) .monaco-sash:before {\n\ttransition: background-color 0.1s ease-out;\n}\n\n.monaco-sash.hover:before,\n.monaco-sash.active:before {\n\tbackground: var(--vscode-sash-hoverBorder);\n}\n\n.monaco-sash.vertical:before {\n\twidth: var(--vscode-sash-hover-size);\n\tleft: calc(50% - (var(--vscode-sash-hover-size) / 2));\n}\n\n.monaco-sash.horizontal:before {\n\theight: var(--vscode-sash-hover-size);\n\ttop: calc(50% - (var(--vscode-sash-hover-size) / 2));\n}\n\n.pointer-events-disabled {\n\tpointer-events: none !important;\n}\n\n/** Debug **/\n\n.monaco-sash.debug {\n\tbackground: cyan;\n}\n\n.monaco-sash.debug.disabled {\n\tbackground: rgba(0, 255, 255, 0.2);\n}\n\n.monaco-sash.debug:not(.disabled) > .orthogonal-drag-handle {\n\tbackground: red;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/sash/sash.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { $, append, createStyleSheet, EventHelper, getWindow, isHTMLElement } from '../../dom.js';\nimport { DomEmitter } from '../../event.js';\nimport { EventType, Gesture } from '../../touch.js';\nimport { Delayer } from '../../../common/async.js';\nimport { memoize } from '../../../common/decorators.js';\nimport { Emitter } from '../../../common/event.js';\nimport { Disposable, DisposableStore, toDisposable } from '../../../common/lifecycle.js';\nimport { isMacintosh } from '../../../common/platform.js';\nimport './sash.css';\n/**\n * Allow the sashes to be visible at runtime.\n * @remark Use for development purposes only.\n */\nconst DEBUG = false;\nexport var OrthogonalEdge;\n(function (OrthogonalEdge) {\n    OrthogonalEdge[\"North\"] = \"north\";\n    OrthogonalEdge[\"South\"] = \"south\";\n    OrthogonalEdge[\"East\"] = \"east\";\n    OrthogonalEdge[\"West\"] = \"west\";\n})(OrthogonalEdge || (OrthogonalEdge = {}));\nlet globalSize = 4;\nconst onDidChangeGlobalSize = new Emitter();\nlet globalHoverDelay = 300;\nconst onDidChangeHoverDelay = new Emitter();\nclass MouseEventFactory {\n    constructor(el) {\n        this.el = el;\n        this.disposables = new DisposableStore();\n    }\n    get onPointerMove() {\n        return this.disposables.add(new DomEmitter(getWindow(this.el), 'mousemove')).event;\n    }\n    get onPointerUp() {\n        return this.disposables.add(new DomEmitter(getWindow(this.el), 'mouseup')).event;\n    }\n    dispose() {\n        this.disposables.dispose();\n    }\n}\n__decorate([\n    memoize\n], MouseEventFactory.prototype, \"onPointerMove\", null);\n__decorate([\n    memoize\n], MouseEventFactory.prototype, \"onPointerUp\", null);\nclass GestureEventFactory {\n    get onPointerMove() {\n        return this.disposables.add(new DomEmitter(this.el, EventType.Change)).event;\n    }\n    get onPointerUp() {\n        return this.disposables.add(new DomEmitter(this.el, EventType.End)).event;\n    }\n    constructor(el) {\n        this.el = el;\n        this.disposables = new DisposableStore();\n    }\n    dispose() {\n        this.disposables.dispose();\n    }\n}\n__decorate([\n    memoize\n], GestureEventFactory.prototype, \"onPointerMove\", null);\n__decorate([\n    memoize\n], GestureEventFactory.prototype, \"onPointerUp\", null);\nclass OrthogonalPointerEventFactory {\n    get onPointerMove() {\n        return this.factory.onPointerMove;\n    }\n    get onPointerUp() {\n        return this.factory.onPointerUp;\n    }\n    constructor(factory) {\n        this.factory = factory;\n    }\n    dispose() {\n        // noop\n    }\n}\n__decorate([\n    memoize\n], OrthogonalPointerEventFactory.prototype, \"onPointerMove\", null);\n__decorate([\n    memoize\n], OrthogonalPointerEventFactory.prototype, \"onPointerUp\", null);\nconst PointerEventsDisabledCssClass = 'pointer-events-disabled';\n/**\n * The {@link Sash} is the UI component which allows the user to resize other\n * components. It's usually an invisible horizontal or vertical line which, when\n * hovered, becomes highlighted and can be dragged along the perpendicular dimension\n * to its direction.\n *\n * Features:\n * - Touch event handling\n * - Corner sash support\n * - Hover with different mouse cursor support\n * - Configurable hover size\n * - Linked sash support, for 2x2 corner sashes\n */\nexport class Sash extends Disposable {\n    get state() { return this._state; }\n    get orthogonalStartSash() { return this._orthogonalStartSash; }\n    get orthogonalEndSash() { return this._orthogonalEndSash; }\n    /**\n     * The state of a sash defines whether it can be interacted with by the user\n     * as well as what mouse cursor to use, when hovered.\n     */\n    set state(state) {\n        if (this._state === state) {\n            return;\n        }\n        this.el.classList.toggle('disabled', state === 0 /* SashState.Disabled */);\n        this.el.classList.toggle('minimum', state === 1 /* SashState.AtMinimum */);\n        this.el.classList.toggle('maximum', state === 2 /* SashState.AtMaximum */);\n        this._state = state;\n        this.onDidEnablementChange.fire(state);\n    }\n    /**\n     * A reference to another sash, perpendicular to this one, which\n     * aligns at the start of this one. A corner sash will be created\n     * automatically at that location.\n     *\n     * The start of a horizontal sash is its left-most position.\n     * The start of a vertical sash is its top-most position.\n     */\n    set orthogonalStartSash(sash) {\n        if (this._orthogonalStartSash === sash) {\n            return;\n        }\n        this.orthogonalStartDragHandleDisposables.clear();\n        this.orthogonalStartSashDisposables.clear();\n        if (sash) {\n            const onChange = (state) => {\n                this.orthogonalStartDragHandleDisposables.clear();\n                if (state !== 0 /* SashState.Disabled */) {\n                    this._orthogonalStartDragHandle = append(this.el, $('.orthogonal-drag-handle.start'));\n                    this.orthogonalStartDragHandleDisposables.add(toDisposable(() => this._orthogonalStartDragHandle.remove()));\n                    this.orthogonalStartDragHandleDisposables.add(new DomEmitter(this._orthogonalStartDragHandle, 'mouseenter')).event(() => Sash.onMouseEnter(sash), undefined, this.orthogonalStartDragHandleDisposables);\n                    this.orthogonalStartDragHandleDisposables.add(new DomEmitter(this._orthogonalStartDragHandle, 'mouseleave')).event(() => Sash.onMouseLeave(sash), undefined, this.orthogonalStartDragHandleDisposables);\n                }\n            };\n            this.orthogonalStartSashDisposables.add(sash.onDidEnablementChange.event(onChange, this));\n            onChange(sash.state);\n        }\n        this._orthogonalStartSash = sash;\n    }\n    /**\n     * A reference to another sash, perpendicular to this one, which\n     * aligns at the end of this one. A corner sash will be created\n     * automatically at that location.\n     *\n     * The end of a horizontal sash is its right-most position.\n     * The end of a vertical sash is its bottom-most position.\n     */\n    set orthogonalEndSash(sash) {\n        if (this._orthogonalEndSash === sash) {\n            return;\n        }\n        this.orthogonalEndDragHandleDisposables.clear();\n        this.orthogonalEndSashDisposables.clear();\n        if (sash) {\n            const onChange = (state) => {\n                this.orthogonalEndDragHandleDisposables.clear();\n                if (state !== 0 /* SashState.Disabled */) {\n                    this._orthogonalEndDragHandle = append(this.el, $('.orthogonal-drag-handle.end'));\n                    this.orthogonalEndDragHandleDisposables.add(toDisposable(() => this._orthogonalEndDragHandle.remove()));\n                    this.orthogonalEndDragHandleDisposables.add(new DomEmitter(this._orthogonalEndDragHandle, 'mouseenter')).event(() => Sash.onMouseEnter(sash), undefined, this.orthogonalEndDragHandleDisposables);\n                    this.orthogonalEndDragHandleDisposables.add(new DomEmitter(this._orthogonalEndDragHandle, 'mouseleave')).event(() => Sash.onMouseLeave(sash), undefined, this.orthogonalEndDragHandleDisposables);\n                }\n            };\n            this.orthogonalEndSashDisposables.add(sash.onDidEnablementChange.event(onChange, this));\n            onChange(sash.state);\n        }\n        this._orthogonalEndSash = sash;\n    }\n    constructor(container, layoutProvider, options) {\n        super();\n        this.hoverDelay = globalHoverDelay;\n        this.hoverDelayer = this._register(new Delayer(this.hoverDelay));\n        this._state = 3 /* SashState.Enabled */;\n        this.onDidEnablementChange = this._register(new Emitter());\n        this._onDidStart = this._register(new Emitter());\n        this._onDidChange = this._register(new Emitter());\n        this._onDidReset = this._register(new Emitter());\n        this._onDidEnd = this._register(new Emitter());\n        this.orthogonalStartSashDisposables = this._register(new DisposableStore());\n        this.orthogonalStartDragHandleDisposables = this._register(new DisposableStore());\n        this.orthogonalEndSashDisposables = this._register(new DisposableStore());\n        this.orthogonalEndDragHandleDisposables = this._register(new DisposableStore());\n        /**\n         * An event which fires whenever the user starts dragging this sash.\n         */\n        this.onDidStart = this._onDidStart.event;\n        /**\n         * An event which fires whenever the user moves the mouse while\n         * dragging this sash.\n         */\n        this.onDidChange = this._onDidChange.event;\n        /**\n         * An event which fires whenever the user double clicks this sash.\n         */\n        this.onDidReset = this._onDidReset.event;\n        /**\n         * An event which fires whenever the user stops dragging this sash.\n         */\n        this.onDidEnd = this._onDidEnd.event;\n        /**\n         * A linked sash will be forwarded the same user interactions and events\n         * so it moves exactly the same way as this sash.\n         *\n         * Useful in 2x2 grids. Not meant for widespread usage.\n         */\n        this.linkedSash = undefined;\n        this.el = append(container, $('.monaco-sash'));\n        if (options.orthogonalEdge) {\n            this.el.classList.add(`orthogonal-edge-${options.orthogonalEdge}`);\n        }\n        if (isMacintosh) {\n            this.el.classList.add('mac');\n        }\n        const onMouseDown = this._register(new DomEmitter(this.el, 'mousedown')).event;\n        this._register(onMouseDown(e => this.onPointerStart(e, new MouseEventFactory(container)), this));\n        const onMouseDoubleClick = this._register(new DomEmitter(this.el, 'dblclick')).event;\n        this._register(onMouseDoubleClick(this.onPointerDoublePress, this));\n        const onMouseEnter = this._register(new DomEmitter(this.el, 'mouseenter')).event;\n        this._register(onMouseEnter(() => Sash.onMouseEnter(this)));\n        const onMouseLeave = this._register(new DomEmitter(this.el, 'mouseleave')).event;\n        this._register(onMouseLeave(() => Sash.onMouseLeave(this)));\n        this._register(Gesture.addTarget(this.el));\n        const onTouchStart = this._register(new DomEmitter(this.el, EventType.Start)).event;\n        this._register(onTouchStart(e => this.onPointerStart(e, new GestureEventFactory(this.el)), this));\n        const onTap = this._register(new DomEmitter(this.el, EventType.Tap)).event;\n        let doubleTapTimeout = undefined;\n        this._register(onTap(event => {\n            if (doubleTapTimeout) {\n                clearTimeout(doubleTapTimeout);\n                doubleTapTimeout = undefined;\n                this.onPointerDoublePress(event);\n                return;\n            }\n            clearTimeout(doubleTapTimeout);\n            doubleTapTimeout = setTimeout(() => doubleTapTimeout = undefined, 250);\n        }, this));\n        if (typeof options.size === 'number') {\n            this.size = options.size;\n            if (options.orientation === 0 /* Orientation.VERTICAL */) {\n                this.el.style.width = `${this.size}px`;\n            }\n            else {\n                this.el.style.height = `${this.size}px`;\n            }\n        }\n        else {\n            this.size = globalSize;\n            this._register(onDidChangeGlobalSize.event(size => {\n                this.size = size;\n                this.layout();\n            }));\n        }\n        this._register(onDidChangeHoverDelay.event(delay => this.hoverDelay = delay));\n        this.layoutProvider = layoutProvider;\n        this.orthogonalStartSash = options.orthogonalStartSash;\n        this.orthogonalEndSash = options.orthogonalEndSash;\n        this.orientation = options.orientation || 0 /* Orientation.VERTICAL */;\n        if (this.orientation === 1 /* Orientation.HORIZONTAL */) {\n            this.el.classList.add('horizontal');\n            this.el.classList.remove('vertical');\n        }\n        else {\n            this.el.classList.remove('horizontal');\n            this.el.classList.add('vertical');\n        }\n        this.el.classList.toggle('debug', DEBUG);\n        this.layout();\n    }\n    onPointerStart(event, pointerEventFactory) {\n        EventHelper.stop(event);\n        let isMultisashResize = false;\n        if (!event.__orthogonalSashEvent) {\n            const orthogonalSash = this.getOrthogonalSash(event);\n            if (orthogonalSash) {\n                isMultisashResize = true;\n                event.__orthogonalSashEvent = true;\n                orthogonalSash.onPointerStart(event, new OrthogonalPointerEventFactory(pointerEventFactory));\n            }\n        }\n        if (this.linkedSash && !event.__linkedSashEvent) {\n            event.__linkedSashEvent = true;\n            this.linkedSash.onPointerStart(event, new OrthogonalPointerEventFactory(pointerEventFactory));\n        }\n        if (!this.state) {\n            return;\n        }\n        const iframes = this.el.ownerDocument.getElementsByTagName('iframe');\n        for (const iframe of iframes) {\n            iframe.classList.add(PointerEventsDisabledCssClass); // disable mouse events on iframes as long as we drag the sash\n        }\n        const startX = event.pageX;\n        const startY = event.pageY;\n        const altKey = event.altKey;\n        const startEvent = { startX, currentX: startX, startY, currentY: startY, altKey };\n        this.el.classList.add('active');\n        this._onDidStart.fire(startEvent);\n        // fix https://github.com/microsoft/vscode/issues/21675\n        const style = createStyleSheet(this.el);\n        const updateStyle = () => {\n            let cursor = '';\n            if (isMultisashResize) {\n                cursor = 'all-scroll';\n            }\n            else if (this.orientation === 1 /* Orientation.HORIZONTAL */) {\n                if (this.state === 1 /* SashState.AtMinimum */) {\n                    cursor = 's-resize';\n                }\n                else if (this.state === 2 /* SashState.AtMaximum */) {\n                    cursor = 'n-resize';\n                }\n                else {\n                    cursor = isMacintosh ? 'row-resize' : 'ns-resize';\n                }\n            }\n            else {\n                if (this.state === 1 /* SashState.AtMinimum */) {\n                    cursor = 'e-resize';\n                }\n                else if (this.state === 2 /* SashState.AtMaximum */) {\n                    cursor = 'w-resize';\n                }\n                else {\n                    cursor = isMacintosh ? 'col-resize' : 'ew-resize';\n                }\n            }\n            style.textContent = `* { cursor: ${cursor} !important; }`;\n        };\n        const disposables = new DisposableStore();\n        updateStyle();\n        if (!isMultisashResize) {\n            this.onDidEnablementChange.event(updateStyle, null, disposables);\n        }\n        const onPointerMove = (e) => {\n            EventHelper.stop(e, false);\n            const event = { startX, currentX: e.pageX, startY, currentY: e.pageY, altKey };\n            this._onDidChange.fire(event);\n        };\n        const onPointerUp = (e) => {\n            EventHelper.stop(e, false);\n            this.el.removeChild(style);\n            this.el.classList.remove('active');\n            this._onDidEnd.fire();\n            disposables.dispose();\n            for (const iframe of iframes) {\n                iframe.classList.remove(PointerEventsDisabledCssClass);\n            }\n        };\n        pointerEventFactory.onPointerMove(onPointerMove, null, disposables);\n        pointerEventFactory.onPointerUp(onPointerUp, null, disposables);\n        disposables.add(pointerEventFactory);\n    }\n    onPointerDoublePress(e) {\n        const orthogonalSash = this.getOrthogonalSash(e);\n        if (orthogonalSash) {\n            orthogonalSash._onDidReset.fire();\n        }\n        if (this.linkedSash) {\n            this.linkedSash._onDidReset.fire();\n        }\n        this._onDidReset.fire();\n    }\n    static onMouseEnter(sash, fromLinkedSash = false) {\n        if (sash.el.classList.contains('active')) {\n            sash.hoverDelayer.cancel();\n            sash.el.classList.add('hover');\n        }\n        else {\n            sash.hoverDelayer.trigger(() => sash.el.classList.add('hover'), sash.hoverDelay).then(undefined, () => { });\n        }\n        if (!fromLinkedSash && sash.linkedSash) {\n            Sash.onMouseEnter(sash.linkedSash, true);\n        }\n    }\n    static onMouseLeave(sash, fromLinkedSash = false) {\n        sash.hoverDelayer.cancel();\n        sash.el.classList.remove('hover');\n        if (!fromLinkedSash && sash.linkedSash) {\n            Sash.onMouseLeave(sash.linkedSash, true);\n        }\n    }\n    /**\n     * Forcefully stop any user interactions with this sash.\n     * Useful when hiding a parent component, while the user is still\n     * interacting with the sash.\n     */\n    clearSashHoverState() {\n        Sash.onMouseLeave(this);\n    }\n    /**\n     * Layout the sash. The sash will size and position itself\n     * based on its provided {@link ISashLayoutProvider layout provider}.\n     */\n    layout() {\n        if (this.orientation === 0 /* Orientation.VERTICAL */) {\n            const verticalProvider = this.layoutProvider;\n            this.el.style.left = verticalProvider.getVerticalSashLeft(this) - (this.size / 2) + 'px';\n            if (verticalProvider.getVerticalSashTop) {\n                this.el.style.top = verticalProvider.getVerticalSashTop(this) + 'px';\n            }\n            if (verticalProvider.getVerticalSashHeight) {\n                this.el.style.height = verticalProvider.getVerticalSashHeight(this) + 'px';\n            }\n        }\n        else {\n            const horizontalProvider = this.layoutProvider;\n            this.el.style.top = horizontalProvider.getHorizontalSashTop(this) - (this.size / 2) + 'px';\n            if (horizontalProvider.getHorizontalSashLeft) {\n                this.el.style.left = horizontalProvider.getHorizontalSashLeft(this) + 'px';\n            }\n            if (horizontalProvider.getHorizontalSashWidth) {\n                this.el.style.width = horizontalProvider.getHorizontalSashWidth(this) + 'px';\n            }\n        }\n    }\n    getOrthogonalSash(e) {\n        var _a;\n        const target = (_a = e.initialTarget) !== null && _a !== void 0 ? _a : e.target;\n        if (!target || !(isHTMLElement(target))) {\n            return undefined;\n        }\n        if (target.classList.contains('orthogonal-drag-handle')) {\n            return target.classList.contains('start') ? this.orthogonalStartSash : this.orthogonalEndSash;\n        }\n        return undefined;\n    }\n    dispose() {\n        super.dispose();\n        this.el.remove();\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/scrollbar/abstractScrollbar.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../dom.js';\nimport { createFastDomNode } from '../../fastDomNode.js';\nimport { GlobalPointerMoveMonitor } from '../../globalPointerMoveMonitor.js';\nimport { ScrollbarArrow } from './scrollbarArrow.js';\nimport { ScrollbarVisibilityController } from './scrollbarVisibilityController.js';\nimport { Widget } from '../widget.js';\nimport * as platform from '../../../common/platform.js';\n/**\n * The orthogonal distance to the slider at which dragging \"resets\". This implements \"snapping\"\n */\nconst POINTER_DRAG_RESET_DISTANCE = 140;\nexport class AbstractScrollbar extends Widget {\n    constructor(opts) {\n        super();\n        this._lazyRender = opts.lazyRender;\n        this._host = opts.host;\n        this._scrollable = opts.scrollable;\n        this._scrollByPage = opts.scrollByPage;\n        this._scrollbarState = opts.scrollbarState;\n        this._visibilityController = this._register(new ScrollbarVisibilityController(opts.visibility, 'visible scrollbar ' + opts.extraScrollbarClassName, 'invisible scrollbar ' + opts.extraScrollbarClassName));\n        this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded());\n        this._pointerMoveMonitor = this._register(new GlobalPointerMoveMonitor());\n        this._shouldRender = true;\n        this.domNode = createFastDomNode(document.createElement('div'));\n        this.domNode.setAttribute('role', 'presentation');\n        this.domNode.setAttribute('aria-hidden', 'true');\n        this._visibilityController.setDomNode(this.domNode);\n        this.domNode.setPosition('absolute');\n        this._register(dom.addDisposableListener(this.domNode.domNode, dom.EventType.POINTER_DOWN, (e) => this._domNodePointerDown(e)));\n    }\n    // ----------------- creation\n    /**\n     * Creates the dom node for an arrow & adds it to the container\n     */\n    _createArrow(opts) {\n        const arrow = this._register(new ScrollbarArrow(opts));\n        this.domNode.domNode.appendChild(arrow.bgDomNode);\n        this.domNode.domNode.appendChild(arrow.domNode);\n    }\n    /**\n     * Creates the slider dom node, adds it to the container & hooks up the events\n     */\n    _createSlider(top, left, width, height) {\n        this.slider = createFastDomNode(document.createElement('div'));\n        this.slider.setClassName('slider');\n        this.slider.setPosition('absolute');\n        this.slider.setTop(top);\n        this.slider.setLeft(left);\n        if (typeof width === 'number') {\n            this.slider.setWidth(width);\n        }\n        if (typeof height === 'number') {\n            this.slider.setHeight(height);\n        }\n        this.slider.setLayerHinting(true);\n        this.slider.setContain('strict');\n        this.domNode.domNode.appendChild(this.slider.domNode);\n        this._register(dom.addDisposableListener(this.slider.domNode, dom.EventType.POINTER_DOWN, (e) => {\n            if (e.button === 0) {\n                e.preventDefault();\n                this._sliderPointerDown(e);\n            }\n        }));\n        this.onclick(this.slider.domNode, e => {\n            if (e.leftButton) {\n                e.stopPropagation();\n            }\n        });\n    }\n    // ----------------- Update state\n    _onElementSize(visibleSize) {\n        if (this._scrollbarState.setVisibleSize(visibleSize)) {\n            this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded());\n            this._shouldRender = true;\n            if (!this._lazyRender) {\n                this.render();\n            }\n        }\n        return this._shouldRender;\n    }\n    _onElementScrollSize(elementScrollSize) {\n        if (this._scrollbarState.setScrollSize(elementScrollSize)) {\n            this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded());\n            this._shouldRender = true;\n            if (!this._lazyRender) {\n                this.render();\n            }\n        }\n        return this._shouldRender;\n    }\n    _onElementScrollPosition(elementScrollPosition) {\n        if (this._scrollbarState.setScrollPosition(elementScrollPosition)) {\n            this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded());\n            this._shouldRender = true;\n            if (!this._lazyRender) {\n                this.render();\n            }\n        }\n        return this._shouldRender;\n    }\n    // ----------------- rendering\n    beginReveal() {\n        this._visibilityController.setShouldBeVisible(true);\n    }\n    beginHide() {\n        this._visibilityController.setShouldBeVisible(false);\n    }\n    render() {\n        if (!this._shouldRender) {\n            return;\n        }\n        this._shouldRender = false;\n        this._renderDomNode(this._scrollbarState.getRectangleLargeSize(), this._scrollbarState.getRectangleSmallSize());\n        this._updateSlider(this._scrollbarState.getSliderSize(), this._scrollbarState.getArrowSize() + this._scrollbarState.getSliderPosition());\n    }\n    // ----------------- DOM events\n    _domNodePointerDown(e) {\n        if (e.target !== this.domNode.domNode) {\n            return;\n        }\n        this._onPointerDown(e);\n    }\n    delegatePointerDown(e) {\n        const domTop = this.domNode.domNode.getClientRects()[0].top;\n        const sliderStart = domTop + this._scrollbarState.getSliderPosition();\n        const sliderStop = domTop + this._scrollbarState.getSliderPosition() + this._scrollbarState.getSliderSize();\n        const pointerPos = this._sliderPointerPosition(e);\n        if (sliderStart <= pointerPos && pointerPos <= sliderStop) {\n            // Act as if it was a pointer down on the slider\n            if (e.button === 0) {\n                e.preventDefault();\n                this._sliderPointerDown(e);\n            }\n        }\n        else {\n            // Act as if it was a pointer down on the scrollbar\n            this._onPointerDown(e);\n        }\n    }\n    _onPointerDown(e) {\n        let offsetX;\n        let offsetY;\n        if (e.target === this.domNode.domNode && typeof e.offsetX === 'number' && typeof e.offsetY === 'number') {\n            offsetX = e.offsetX;\n            offsetY = e.offsetY;\n        }\n        else {\n            const domNodePosition = dom.getDomNodePagePosition(this.domNode.domNode);\n            offsetX = e.pageX - domNodePosition.left;\n            offsetY = e.pageY - domNodePosition.top;\n        }\n        const offset = this._pointerDownRelativePosition(offsetX, offsetY);\n        this._setDesiredScrollPositionNow(this._scrollByPage\n            ? this._scrollbarState.getDesiredScrollPositionFromOffsetPaged(offset)\n            : this._scrollbarState.getDesiredScrollPositionFromOffset(offset));\n        if (e.button === 0) {\n            // left button\n            e.preventDefault();\n            this._sliderPointerDown(e);\n        }\n    }\n    _sliderPointerDown(e) {\n        if (!e.target || !(e.target instanceof Element)) {\n            return;\n        }\n        const initialPointerPosition = this._sliderPointerPosition(e);\n        const initialPointerOrthogonalPosition = this._sliderOrthogonalPointerPosition(e);\n        const initialScrollbarState = this._scrollbarState.clone();\n        this.slider.toggleClassName('active', true);\n        this._pointerMoveMonitor.startMonitoring(e.target, e.pointerId, e.buttons, (pointerMoveData) => {\n            const pointerOrthogonalPosition = this._sliderOrthogonalPointerPosition(pointerMoveData);\n            const pointerOrthogonalDelta = Math.abs(pointerOrthogonalPosition - initialPointerOrthogonalPosition);\n            if (platform.isWindows && pointerOrthogonalDelta > POINTER_DRAG_RESET_DISTANCE) {\n                // The pointer has wondered away from the scrollbar => reset dragging\n                this._setDesiredScrollPositionNow(initialScrollbarState.getScrollPosition());\n                return;\n            }\n            const pointerPosition = this._sliderPointerPosition(pointerMoveData);\n            const pointerDelta = pointerPosition - initialPointerPosition;\n            this._setDesiredScrollPositionNow(initialScrollbarState.getDesiredScrollPositionFromDelta(pointerDelta));\n        }, () => {\n            this.slider.toggleClassName('active', false);\n            this._host.onDragEnd();\n        });\n        this._host.onDragStart();\n    }\n    _setDesiredScrollPositionNow(_desiredScrollPosition) {\n        const desiredScrollPosition = {};\n        this.writeScrollPosition(desiredScrollPosition, _desiredScrollPosition);\n        this._scrollable.setScrollPositionNow(desiredScrollPosition);\n    }\n    updateScrollbarSize(scrollbarSize) {\n        this._updateScrollbarSize(scrollbarSize);\n        this._scrollbarState.setScrollbarSize(scrollbarSize);\n        this._shouldRender = true;\n        if (!this._lazyRender) {\n            this.render();\n        }\n    }\n    isNeeded() {\n        return this._scrollbarState.isNeeded();\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/scrollbar/horizontalScrollbar.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { StandardWheelEvent } from '../../mouseEvent.js';\nimport { AbstractScrollbar } from './abstractScrollbar.js';\nimport { ARROW_IMG_SIZE } from './scrollbarArrow.js';\nimport { ScrollbarState } from './scrollbarState.js';\nimport { Codicon } from '../../../common/codicons.js';\nexport class HorizontalScrollbar extends AbstractScrollbar {\n    constructor(scrollable, options, host) {\n        const scrollDimensions = scrollable.getScrollDimensions();\n        const scrollPosition = scrollable.getCurrentScrollPosition();\n        super({\n            lazyRender: options.lazyRender,\n            host: host,\n            scrollbarState: new ScrollbarState((options.horizontalHasArrows ? options.arrowSize : 0), (options.horizontal === 2 /* ScrollbarVisibility.Hidden */ ? 0 : options.horizontalScrollbarSize), (options.vertical === 2 /* ScrollbarVisibility.Hidden */ ? 0 : options.verticalScrollbarSize), scrollDimensions.width, scrollDimensions.scrollWidth, scrollPosition.scrollLeft),\n            visibility: options.horizontal,\n            extraScrollbarClassName: 'horizontal',\n            scrollable: scrollable,\n            scrollByPage: options.scrollByPage\n        });\n        if (options.horizontalHasArrows) {\n            const arrowDelta = (options.arrowSize - ARROW_IMG_SIZE) / 2;\n            const scrollbarDelta = (options.horizontalScrollbarSize - ARROW_IMG_SIZE) / 2;\n            this._createArrow({\n                className: 'scra',\n                icon: Codicon.scrollbarButtonLeft,\n                top: scrollbarDelta,\n                left: arrowDelta,\n                bottom: undefined,\n                right: undefined,\n                bgWidth: options.arrowSize,\n                bgHeight: options.horizontalScrollbarSize,\n                onActivate: () => this._host.onMouseWheel(new StandardWheelEvent(null, 1, 0)),\n            });\n            this._createArrow({\n                className: 'scra',\n                icon: Codicon.scrollbarButtonRight,\n                top: scrollbarDelta,\n                left: undefined,\n                bottom: undefined,\n                right: arrowDelta,\n                bgWidth: options.arrowSize,\n                bgHeight: options.horizontalScrollbarSize,\n                onActivate: () => this._host.onMouseWheel(new StandardWheelEvent(null, -1, 0)),\n            });\n        }\n        this._createSlider(Math.floor((options.horizontalScrollbarSize - options.horizontalSliderSize) / 2), 0, undefined, options.horizontalSliderSize);\n    }\n    _updateSlider(sliderSize, sliderPosition) {\n        this.slider.setWidth(sliderSize);\n        this.slider.setLeft(sliderPosition);\n    }\n    _renderDomNode(largeSize, smallSize) {\n        this.domNode.setWidth(largeSize);\n        this.domNode.setHeight(smallSize);\n        this.domNode.setLeft(0);\n        this.domNode.setBottom(0);\n    }\n    onDidScroll(e) {\n        this._shouldRender = this._onElementScrollSize(e.scrollWidth) || this._shouldRender;\n        this._shouldRender = this._onElementScrollPosition(e.scrollLeft) || this._shouldRender;\n        this._shouldRender = this._onElementSize(e.width) || this._shouldRender;\n        return this._shouldRender;\n    }\n    _pointerDownRelativePosition(offsetX, offsetY) {\n        return offsetX;\n    }\n    _sliderPointerPosition(e) {\n        return e.pageX;\n    }\n    _sliderOrthogonalPointerPosition(e) {\n        return e.pageY;\n    }\n    _updateScrollbarSize(size) {\n        this.slider.setHeight(size);\n    }\n    writeScrollPosition(target, scrollPosition) {\n        target.scrollLeft = scrollPosition;\n    }\n    updateOptions(options) {\n        this.updateScrollbarSize(options.horizontal === 2 /* ScrollbarVisibility.Hidden */ ? 0 : options.horizontalScrollbarSize);\n        this._scrollbarState.setOppositeScrollbarSize(options.vertical === 2 /* ScrollbarVisibility.Hidden */ ? 0 : options.verticalScrollbarSize);\n        this._visibilityController.setVisibility(options.horizontal);\n        this._scrollByPage = options.scrollByPage;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/scrollbar/media/scrollbars.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n/* Arrows */\n.monaco-scrollable-element > .scrollbar > .scra {\n\tcursor: pointer;\n\tfont-size: 11px !important;\n}\n\n.monaco-scrollable-element > .visible {\n\topacity: 1;\n\n\t/* Background rule added for IE9 - to allow clicks on dom node */\n\tbackground:rgba(0,0,0,0);\n\n\ttransition: opacity 100ms linear;\n\t/* In front of peek view */\n\tz-index: 11;\n}\n.monaco-scrollable-element > .invisible {\n\topacity: 0;\n\tpointer-events: none;\n}\n.monaco-scrollable-element > .invisible.fade {\n\ttransition: opacity 800ms linear;\n}\n\n/* Scrollable Content Inset Shadow */\n.monaco-scrollable-element > .shadow {\n\tposition: absolute;\n\tdisplay: none;\n}\n.monaco-scrollable-element > .shadow.top {\n\tdisplay: block;\n\ttop: 0;\n\tleft: 3px;\n\theight: 3px;\n\twidth: 100%;\n\tbox-shadow: var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset;\n}\n.monaco-scrollable-element > .shadow.left {\n\tdisplay: block;\n\ttop: 3px;\n\tleft: 0;\n\theight: 100%;\n\twidth: 3px;\n\tbox-shadow: var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset;\n}\n.monaco-scrollable-element > .shadow.top-left-corner {\n\tdisplay: block;\n\ttop: 0;\n\tleft: 0;\n\theight: 3px;\n\twidth: 3px;\n}\n.monaco-scrollable-element > .shadow.top.left {\n\tbox-shadow: var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset;\n}\n\n.monaco-scrollable-element > .scrollbar > .slider {\n\tbackground: var(--vscode-scrollbarSlider-background);\n}\n\n.monaco-scrollable-element > .scrollbar > .slider:hover {\n\tbackground: var(--vscode-scrollbarSlider-hoverBackground);\n}\n\n.monaco-scrollable-element > .scrollbar > .slider.active {\n\tbackground: var(--vscode-scrollbarSlider-activeBackground);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/scrollbar/scrollableElement.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { getZoomFactor, isChrome } from '../../browser.js';\nimport * as dom from '../../dom.js';\nimport { createFastDomNode } from '../../fastDomNode.js';\nimport { StandardWheelEvent } from '../../mouseEvent.js';\nimport { HorizontalScrollbar } from './horizontalScrollbar.js';\nimport { VerticalScrollbar } from './verticalScrollbar.js';\nimport { Widget } from '../widget.js';\nimport { TimeoutTimer } from '../../../common/async.js';\nimport { Emitter } from '../../../common/event.js';\nimport { dispose } from '../../../common/lifecycle.js';\nimport * as platform from '../../../common/platform.js';\nimport { Scrollable } from '../../../common/scrollable.js';\nimport './media/scrollbars.css';\nconst HIDE_TIMEOUT = 500;\nconst SCROLL_WHEEL_SENSITIVITY = 50;\nconst SCROLL_WHEEL_SMOOTH_SCROLL_ENABLED = true;\nclass MouseWheelClassifierItem {\n    constructor(timestamp, deltaX, deltaY) {\n        this.timestamp = timestamp;\n        this.deltaX = deltaX;\n        this.deltaY = deltaY;\n        this.score = 0;\n    }\n}\nexport class MouseWheelClassifier {\n    constructor() {\n        this._capacity = 5;\n        this._memory = [];\n        this._front = -1;\n        this._rear = -1;\n    }\n    isPhysicalMouseWheel() {\n        if (this._front === -1 && this._rear === -1) {\n            // no elements\n            return false;\n        }\n        // 0.5 * last + 0.25 * 2nd last + 0.125 * 3rd last + ...\n        let remainingInfluence = 1;\n        let score = 0;\n        let iteration = 1;\n        let index = this._rear;\n        do {\n            const influence = (index === this._front ? remainingInfluence : Math.pow(2, -iteration));\n            remainingInfluence -= influence;\n            score += this._memory[index].score * influence;\n            if (index === this._front) {\n                break;\n            }\n            index = (this._capacity + index - 1) % this._capacity;\n            iteration++;\n        } while (true);\n        return (score <= 0.5);\n    }\n    acceptStandardWheelEvent(e) {\n        if (isChrome) {\n            const targetWindow = dom.getWindow(e.browserEvent);\n            const pageZoomFactor = getZoomFactor(targetWindow);\n            // On Chrome, the incoming delta events are multiplied with the OS zoom factor.\n            // The OS zoom factor can be reverse engineered by using the device pixel ratio and the configured zoom factor into account.\n            this.accept(Date.now(), e.deltaX * pageZoomFactor, e.deltaY * pageZoomFactor);\n        }\n        else {\n            this.accept(Date.now(), e.deltaX, e.deltaY);\n        }\n    }\n    accept(timestamp, deltaX, deltaY) {\n        let previousItem = null;\n        const item = new MouseWheelClassifierItem(timestamp, deltaX, deltaY);\n        if (this._front === -1 && this._rear === -1) {\n            this._memory[0] = item;\n            this._front = 0;\n            this._rear = 0;\n        }\n        else {\n            previousItem = this._memory[this._rear];\n            this._rear = (this._rear + 1) % this._capacity;\n            if (this._rear === this._front) {\n                // Drop oldest\n                this._front = (this._front + 1) % this._capacity;\n            }\n            this._memory[this._rear] = item;\n        }\n        item.score = this._computeScore(item, previousItem);\n    }\n    /**\n     * A score between 0 and 1 for `item`.\n     *  - a score towards 0 indicates that the source appears to be a physical mouse wheel\n     *  - a score towards 1 indicates that the source appears to be a touchpad or magic mouse, etc.\n     */\n    _computeScore(item, previousItem) {\n        if (Math.abs(item.deltaX) > 0 && Math.abs(item.deltaY) > 0) {\n            // both axes exercised => definitely not a physical mouse wheel\n            return 1;\n        }\n        let score = 0.5;\n        if (!this._isAlmostInt(item.deltaX) || !this._isAlmostInt(item.deltaY)) {\n            // non-integer deltas => indicator that this is not a physical mouse wheel\n            score += 0.25;\n        }\n        // Non-accelerating scroll => indicator that this is a physical mouse wheel\n        // These can be identified by seeing whether they are the module of one another.\n        if (previousItem) {\n            const absDeltaX = Math.abs(item.deltaX);\n            const absDeltaY = Math.abs(item.deltaY);\n            const absPreviousDeltaX = Math.abs(previousItem.deltaX);\n            const absPreviousDeltaY = Math.abs(previousItem.deltaY);\n            // Min 1 to avoid division by zero, module 1 will still be 0.\n            const minDeltaX = Math.max(Math.min(absDeltaX, absPreviousDeltaX), 1);\n            const minDeltaY = Math.max(Math.min(absDeltaY, absPreviousDeltaY), 1);\n            const maxDeltaX = Math.max(absDeltaX, absPreviousDeltaX);\n            const maxDeltaY = Math.max(absDeltaY, absPreviousDeltaY);\n            const isSameModulo = (maxDeltaX % minDeltaX === 0 && maxDeltaY % minDeltaY === 0);\n            if (isSameModulo) {\n                score -= 0.5;\n            }\n        }\n        return Math.min(Math.max(score, 0), 1);\n    }\n    _isAlmostInt(value) {\n        const delta = Math.abs(Math.round(value) - value);\n        return (delta < 0.01);\n    }\n}\nMouseWheelClassifier.INSTANCE = new MouseWheelClassifier();\nexport class AbstractScrollableElement extends Widget {\n    get options() {\n        return this._options;\n    }\n    constructor(element, options, scrollable) {\n        super();\n        this._onScroll = this._register(new Emitter());\n        this.onScroll = this._onScroll.event;\n        this._onWillScroll = this._register(new Emitter());\n        element.style.overflow = 'hidden';\n        this._options = resolveOptions(options);\n        this._scrollable = scrollable;\n        this._register(this._scrollable.onScroll((e) => {\n            this._onWillScroll.fire(e);\n            this._onDidScroll(e);\n            this._onScroll.fire(e);\n        }));\n        const scrollbarHost = {\n            onMouseWheel: (mouseWheelEvent) => this._onMouseWheel(mouseWheelEvent),\n            onDragStart: () => this._onDragStart(),\n            onDragEnd: () => this._onDragEnd(),\n        };\n        this._verticalScrollbar = this._register(new VerticalScrollbar(this._scrollable, this._options, scrollbarHost));\n        this._horizontalScrollbar = this._register(new HorizontalScrollbar(this._scrollable, this._options, scrollbarHost));\n        this._domNode = document.createElement('div');\n        this._domNode.className = 'monaco-scrollable-element ' + this._options.className;\n        this._domNode.setAttribute('role', 'presentation');\n        this._domNode.style.position = 'relative';\n        this._domNode.style.overflow = 'hidden';\n        this._domNode.appendChild(element);\n        this._domNode.appendChild(this._horizontalScrollbar.domNode.domNode);\n        this._domNode.appendChild(this._verticalScrollbar.domNode.domNode);\n        if (this._options.useShadows) {\n            this._leftShadowDomNode = createFastDomNode(document.createElement('div'));\n            this._leftShadowDomNode.setClassName('shadow');\n            this._domNode.appendChild(this._leftShadowDomNode.domNode);\n            this._topShadowDomNode = createFastDomNode(document.createElement('div'));\n            this._topShadowDomNode.setClassName('shadow');\n            this._domNode.appendChild(this._topShadowDomNode.domNode);\n            this._topLeftShadowDomNode = createFastDomNode(document.createElement('div'));\n            this._topLeftShadowDomNode.setClassName('shadow');\n            this._domNode.appendChild(this._topLeftShadowDomNode.domNode);\n        }\n        else {\n            this._leftShadowDomNode = null;\n            this._topShadowDomNode = null;\n            this._topLeftShadowDomNode = null;\n        }\n        this._listenOnDomNode = this._options.listenOnDomNode || this._domNode;\n        this._mouseWheelToDispose = [];\n        this._setListeningToMouseWheel(this._options.handleMouseWheel);\n        this.onmouseover(this._listenOnDomNode, (e) => this._onMouseOver(e));\n        this.onmouseleave(this._listenOnDomNode, (e) => this._onMouseLeave(e));\n        this._hideTimeout = this._register(new TimeoutTimer());\n        this._isDragging = false;\n        this._mouseIsOver = false;\n        this._shouldRender = true;\n        this._revealOnScroll = true;\n    }\n    dispose() {\n        this._mouseWheelToDispose = dispose(this._mouseWheelToDispose);\n        super.dispose();\n    }\n    /**\n     * Get the generated 'scrollable' dom node\n     */\n    getDomNode() {\n        return this._domNode;\n    }\n    getOverviewRulerLayoutInfo() {\n        return {\n            parent: this._domNode,\n            insertBefore: this._verticalScrollbar.domNode.domNode,\n        };\n    }\n    /**\n     * Delegate a pointer down event to the vertical scrollbar.\n     * This is to help with clicking somewhere else and having the scrollbar react.\n     */\n    delegateVerticalScrollbarPointerDown(browserEvent) {\n        this._verticalScrollbar.delegatePointerDown(browserEvent);\n    }\n    getScrollDimensions() {\n        return this._scrollable.getScrollDimensions();\n    }\n    setScrollDimensions(dimensions) {\n        this._scrollable.setScrollDimensions(dimensions, false);\n    }\n    /**\n     * Update the class name of the scrollable element.\n     */\n    updateClassName(newClassName) {\n        this._options.className = newClassName;\n        // Defaults are different on Macs\n        if (platform.isMacintosh) {\n            this._options.className += ' mac';\n        }\n        this._domNode.className = 'monaco-scrollable-element ' + this._options.className;\n    }\n    /**\n     * Update configuration options for the scrollbar.\n     */\n    updateOptions(newOptions) {\n        if (typeof newOptions.handleMouseWheel !== 'undefined') {\n            this._options.handleMouseWheel = newOptions.handleMouseWheel;\n            this._setListeningToMouseWheel(this._options.handleMouseWheel);\n        }\n        if (typeof newOptions.mouseWheelScrollSensitivity !== 'undefined') {\n            this._options.mouseWheelScrollSensitivity = newOptions.mouseWheelScrollSensitivity;\n        }\n        if (typeof newOptions.fastScrollSensitivity !== 'undefined') {\n            this._options.fastScrollSensitivity = newOptions.fastScrollSensitivity;\n        }\n        if (typeof newOptions.scrollPredominantAxis !== 'undefined') {\n            this._options.scrollPredominantAxis = newOptions.scrollPredominantAxis;\n        }\n        if (typeof newOptions.horizontal !== 'undefined') {\n            this._options.horizontal = newOptions.horizontal;\n        }\n        if (typeof newOptions.vertical !== 'undefined') {\n            this._options.vertical = newOptions.vertical;\n        }\n        if (typeof newOptions.horizontalScrollbarSize !== 'undefined') {\n            this._options.horizontalScrollbarSize = newOptions.horizontalScrollbarSize;\n        }\n        if (typeof newOptions.verticalScrollbarSize !== 'undefined') {\n            this._options.verticalScrollbarSize = newOptions.verticalScrollbarSize;\n        }\n        if (typeof newOptions.scrollByPage !== 'undefined') {\n            this._options.scrollByPage = newOptions.scrollByPage;\n        }\n        this._horizontalScrollbar.updateOptions(this._options);\n        this._verticalScrollbar.updateOptions(this._options);\n        if (!this._options.lazyRender) {\n            this._render();\n        }\n    }\n    delegateScrollFromMouseWheelEvent(browserEvent) {\n        this._onMouseWheel(new StandardWheelEvent(browserEvent));\n    }\n    // -------------------- mouse wheel scrolling --------------------\n    _setListeningToMouseWheel(shouldListen) {\n        const isListening = (this._mouseWheelToDispose.length > 0);\n        if (isListening === shouldListen) {\n            // No change\n            return;\n        }\n        // Stop listening (if necessary)\n        this._mouseWheelToDispose = dispose(this._mouseWheelToDispose);\n        // Start listening (if necessary)\n        if (shouldListen) {\n            const onMouseWheel = (browserEvent) => {\n                this._onMouseWheel(new StandardWheelEvent(browserEvent));\n            };\n            this._mouseWheelToDispose.push(dom.addDisposableListener(this._listenOnDomNode, dom.EventType.MOUSE_WHEEL, onMouseWheel, { passive: false }));\n        }\n    }\n    _onMouseWheel(e) {\n        var _a;\n        if ((_a = e.browserEvent) === null || _a === void 0 ? void 0 : _a.defaultPrevented) {\n            return;\n        }\n        const classifier = MouseWheelClassifier.INSTANCE;\n        if (SCROLL_WHEEL_SMOOTH_SCROLL_ENABLED) {\n            classifier.acceptStandardWheelEvent(e);\n        }\n        // useful for creating unit tests:\n        // console.log(`${Date.now()}, ${e.deltaY}, ${e.deltaX}`);\n        let didScroll = false;\n        if (e.deltaY || e.deltaX) {\n            let deltaY = e.deltaY * this._options.mouseWheelScrollSensitivity;\n            let deltaX = e.deltaX * this._options.mouseWheelScrollSensitivity;\n            if (this._options.scrollPredominantAxis) {\n                if (this._options.scrollYToX && deltaX + deltaY === 0) {\n                    // when configured to map Y to X and we both see\n                    // no dominant axis and X and Y are competing with\n                    // identical values into opposite directions, we\n                    // ignore the delta as we cannot make a decision then\n                    deltaX = deltaY = 0;\n                }\n                else if (Math.abs(deltaY) >= Math.abs(deltaX)) {\n                    deltaX = 0;\n                }\n                else {\n                    deltaY = 0;\n                }\n            }\n            if (this._options.flipAxes) {\n                [deltaY, deltaX] = [deltaX, deltaY];\n            }\n            // Convert vertical scrolling to horizontal if shift is held, this\n            // is handled at a higher level on Mac\n            const shiftConvert = !platform.isMacintosh && e.browserEvent && e.browserEvent.shiftKey;\n            if ((this._options.scrollYToX || shiftConvert) && !deltaX) {\n                deltaX = deltaY;\n                deltaY = 0;\n            }\n            if (e.browserEvent && e.browserEvent.altKey) {\n                // fastScrolling\n                deltaX = deltaX * this._options.fastScrollSensitivity;\n                deltaY = deltaY * this._options.fastScrollSensitivity;\n            }\n            const futureScrollPosition = this._scrollable.getFutureScrollPosition();\n            let desiredScrollPosition = {};\n            if (deltaY) {\n                const deltaScrollTop = SCROLL_WHEEL_SENSITIVITY * deltaY;\n                // Here we convert values such as -0.3 to -1 or 0.3 to 1, otherwise low speed scrolling will never scroll\n                const desiredScrollTop = futureScrollPosition.scrollTop - (deltaScrollTop < 0 ? Math.floor(deltaScrollTop) : Math.ceil(deltaScrollTop));\n                this._verticalScrollbar.writeScrollPosition(desiredScrollPosition, desiredScrollTop);\n            }\n            if (deltaX) {\n                const deltaScrollLeft = SCROLL_WHEEL_SENSITIVITY * deltaX;\n                // Here we convert values such as -0.3 to -1 or 0.3 to 1, otherwise low speed scrolling will never scroll\n                const desiredScrollLeft = futureScrollPosition.scrollLeft - (deltaScrollLeft < 0 ? Math.floor(deltaScrollLeft) : Math.ceil(deltaScrollLeft));\n                this._horizontalScrollbar.writeScrollPosition(desiredScrollPosition, desiredScrollLeft);\n            }\n            // Check that we are scrolling towards a location which is valid\n            desiredScrollPosition = this._scrollable.validateScrollPosition(desiredScrollPosition);\n            if (futureScrollPosition.scrollLeft !== desiredScrollPosition.scrollLeft || futureScrollPosition.scrollTop !== desiredScrollPosition.scrollTop) {\n                const canPerformSmoothScroll = (SCROLL_WHEEL_SMOOTH_SCROLL_ENABLED\n                    && this._options.mouseWheelSmoothScroll\n                    && classifier.isPhysicalMouseWheel());\n                if (canPerformSmoothScroll) {\n                    this._scrollable.setScrollPositionSmooth(desiredScrollPosition);\n                }\n                else {\n                    this._scrollable.setScrollPositionNow(desiredScrollPosition);\n                }\n                didScroll = true;\n            }\n        }\n        let consumeMouseWheel = didScroll;\n        if (!consumeMouseWheel && this._options.alwaysConsumeMouseWheel) {\n            consumeMouseWheel = true;\n        }\n        if (!consumeMouseWheel && this._options.consumeMouseWheelIfScrollbarIsNeeded && (this._verticalScrollbar.isNeeded() || this._horizontalScrollbar.isNeeded())) {\n            consumeMouseWheel = true;\n        }\n        if (consumeMouseWheel) {\n            e.preventDefault();\n            e.stopPropagation();\n        }\n    }\n    _onDidScroll(e) {\n        this._shouldRender = this._horizontalScrollbar.onDidScroll(e) || this._shouldRender;\n        this._shouldRender = this._verticalScrollbar.onDidScroll(e) || this._shouldRender;\n        if (this._options.useShadows) {\n            this._shouldRender = true;\n        }\n        if (this._revealOnScroll) {\n            this._reveal();\n        }\n        if (!this._options.lazyRender) {\n            this._render();\n        }\n    }\n    /**\n     * Render / mutate the DOM now.\n     * Should be used together with the ctor option `lazyRender`.\n     */\n    renderNow() {\n        if (!this._options.lazyRender) {\n            throw new Error('Please use `lazyRender` together with `renderNow`!');\n        }\n        this._render();\n    }\n    _render() {\n        if (!this._shouldRender) {\n            return;\n        }\n        this._shouldRender = false;\n        this._horizontalScrollbar.render();\n        this._verticalScrollbar.render();\n        if (this._options.useShadows) {\n            const scrollState = this._scrollable.getCurrentScrollPosition();\n            const enableTop = scrollState.scrollTop > 0;\n            const enableLeft = scrollState.scrollLeft > 0;\n            const leftClassName = (enableLeft ? ' left' : '');\n            const topClassName = (enableTop ? ' top' : '');\n            const topLeftClassName = (enableLeft || enableTop ? ' top-left-corner' : '');\n            this._leftShadowDomNode.setClassName(`shadow${leftClassName}`);\n            this._topShadowDomNode.setClassName(`shadow${topClassName}`);\n            this._topLeftShadowDomNode.setClassName(`shadow${topLeftClassName}${topClassName}${leftClassName}`);\n        }\n    }\n    // -------------------- fade in / fade out --------------------\n    _onDragStart() {\n        this._isDragging = true;\n        this._reveal();\n    }\n    _onDragEnd() {\n        this._isDragging = false;\n        this._hide();\n    }\n    _onMouseLeave(e) {\n        this._mouseIsOver = false;\n        this._hide();\n    }\n    _onMouseOver(e) {\n        this._mouseIsOver = true;\n        this._reveal();\n    }\n    _reveal() {\n        this._verticalScrollbar.beginReveal();\n        this._horizontalScrollbar.beginReveal();\n        this._scheduleHide();\n    }\n    _hide() {\n        if (!this._mouseIsOver && !this._isDragging) {\n            this._verticalScrollbar.beginHide();\n            this._horizontalScrollbar.beginHide();\n        }\n    }\n    _scheduleHide() {\n        if (!this._mouseIsOver && !this._isDragging) {\n            this._hideTimeout.cancelAndSet(() => this._hide(), HIDE_TIMEOUT);\n        }\n    }\n}\nexport class ScrollableElement extends AbstractScrollableElement {\n    constructor(element, options) {\n        options = options || {};\n        options.mouseWheelSmoothScroll = false;\n        const scrollable = new Scrollable({\n            forceIntegerValues: true,\n            smoothScrollDuration: 0,\n            scheduleAtNextAnimationFrame: (callback) => dom.scheduleAtNextAnimationFrame(dom.getWindow(element), callback)\n        });\n        super(element, options, scrollable);\n        this._register(scrollable);\n    }\n    setScrollPosition(update) {\n        this._scrollable.setScrollPositionNow(update);\n    }\n}\nexport class SmoothScrollableElement extends AbstractScrollableElement {\n    constructor(element, options, scrollable) {\n        super(element, options, scrollable);\n    }\n    setScrollPosition(update) {\n        if (update.reuseAnimation) {\n            this._scrollable.setScrollPositionSmooth(update, update.reuseAnimation);\n        }\n        else {\n            this._scrollable.setScrollPositionNow(update);\n        }\n    }\n    getScrollPosition() {\n        return this._scrollable.getCurrentScrollPosition();\n    }\n}\nexport class DomScrollableElement extends AbstractScrollableElement {\n    constructor(element, options) {\n        options = options || {};\n        options.mouseWheelSmoothScroll = false;\n        const scrollable = new Scrollable({\n            forceIntegerValues: false, // See https://github.com/microsoft/vscode/issues/139877\n            smoothScrollDuration: 0,\n            scheduleAtNextAnimationFrame: (callback) => dom.scheduleAtNextAnimationFrame(dom.getWindow(element), callback)\n        });\n        super(element, options, scrollable);\n        this._register(scrollable);\n        this._element = element;\n        this._register(this.onScroll((e) => {\n            if (e.scrollTopChanged) {\n                this._element.scrollTop = e.scrollTop;\n            }\n            if (e.scrollLeftChanged) {\n                this._element.scrollLeft = e.scrollLeft;\n            }\n        }));\n        this.scanDomNode();\n    }\n    setScrollPosition(update) {\n        this._scrollable.setScrollPositionNow(update);\n    }\n    getScrollPosition() {\n        return this._scrollable.getCurrentScrollPosition();\n    }\n    scanDomNode() {\n        // width, scrollLeft, scrollWidth, height, scrollTop, scrollHeight\n        this.setScrollDimensions({\n            width: this._element.clientWidth,\n            scrollWidth: this._element.scrollWidth,\n            height: this._element.clientHeight,\n            scrollHeight: this._element.scrollHeight\n        });\n        this.setScrollPosition({\n            scrollLeft: this._element.scrollLeft,\n            scrollTop: this._element.scrollTop,\n        });\n    }\n}\nfunction resolveOptions(opts) {\n    const result = {\n        lazyRender: (typeof opts.lazyRender !== 'undefined' ? opts.lazyRender : false),\n        className: (typeof opts.className !== 'undefined' ? opts.className : ''),\n        useShadows: (typeof opts.useShadows !== 'undefined' ? opts.useShadows : true),\n        handleMouseWheel: (typeof opts.handleMouseWheel !== 'undefined' ? opts.handleMouseWheel : true),\n        flipAxes: (typeof opts.flipAxes !== 'undefined' ? opts.flipAxes : false),\n        consumeMouseWheelIfScrollbarIsNeeded: (typeof opts.consumeMouseWheelIfScrollbarIsNeeded !== 'undefined' ? opts.consumeMouseWheelIfScrollbarIsNeeded : false),\n        alwaysConsumeMouseWheel: (typeof opts.alwaysConsumeMouseWheel !== 'undefined' ? opts.alwaysConsumeMouseWheel : false),\n        scrollYToX: (typeof opts.scrollYToX !== 'undefined' ? opts.scrollYToX : false),\n        mouseWheelScrollSensitivity: (typeof opts.mouseWheelScrollSensitivity !== 'undefined' ? opts.mouseWheelScrollSensitivity : 1),\n        fastScrollSensitivity: (typeof opts.fastScrollSensitivity !== 'undefined' ? opts.fastScrollSensitivity : 5),\n        scrollPredominantAxis: (typeof opts.scrollPredominantAxis !== 'undefined' ? opts.scrollPredominantAxis : true),\n        mouseWheelSmoothScroll: (typeof opts.mouseWheelSmoothScroll !== 'undefined' ? opts.mouseWheelSmoothScroll : true),\n        arrowSize: (typeof opts.arrowSize !== 'undefined' ? opts.arrowSize : 11),\n        listenOnDomNode: (typeof opts.listenOnDomNode !== 'undefined' ? opts.listenOnDomNode : null),\n        horizontal: (typeof opts.horizontal !== 'undefined' ? opts.horizontal : 1 /* ScrollbarVisibility.Auto */),\n        horizontalScrollbarSize: (typeof opts.horizontalScrollbarSize !== 'undefined' ? opts.horizontalScrollbarSize : 10),\n        horizontalSliderSize: (typeof opts.horizontalSliderSize !== 'undefined' ? opts.horizontalSliderSize : 0),\n        horizontalHasArrows: (typeof opts.horizontalHasArrows !== 'undefined' ? opts.horizontalHasArrows : false),\n        vertical: (typeof opts.vertical !== 'undefined' ? opts.vertical : 1 /* ScrollbarVisibility.Auto */),\n        verticalScrollbarSize: (typeof opts.verticalScrollbarSize !== 'undefined' ? opts.verticalScrollbarSize : 10),\n        verticalHasArrows: (typeof opts.verticalHasArrows !== 'undefined' ? opts.verticalHasArrows : false),\n        verticalSliderSize: (typeof opts.verticalSliderSize !== 'undefined' ? opts.verticalSliderSize : 0),\n        scrollByPage: (typeof opts.scrollByPage !== 'undefined' ? opts.scrollByPage : false)\n    };\n    result.horizontalSliderSize = (typeof opts.horizontalSliderSize !== 'undefined' ? opts.horizontalSliderSize : result.horizontalScrollbarSize);\n    result.verticalSliderSize = (typeof opts.verticalSliderSize !== 'undefined' ? opts.verticalSliderSize : result.verticalScrollbarSize);\n    // Defaults are different on Macs\n    if (platform.isMacintosh) {\n        result.className += ' mac';\n    }\n    return result;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/scrollbar/scrollableElementOptions.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport {};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/scrollbar/scrollbarArrow.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { GlobalPointerMoveMonitor } from '../../globalPointerMoveMonitor.js';\nimport { Widget } from '../widget.js';\nimport { TimeoutTimer } from '../../../common/async.js';\nimport { ThemeIcon } from '../../../common/themables.js';\nimport * as dom from '../../dom.js';\n/**\n * The arrow image size.\n */\nexport const ARROW_IMG_SIZE = 11;\nexport class ScrollbarArrow extends Widget {\n    constructor(opts) {\n        super();\n        this._onActivate = opts.onActivate;\n        this.bgDomNode = document.createElement('div');\n        this.bgDomNode.className = 'arrow-background';\n        this.bgDomNode.style.position = 'absolute';\n        this.bgDomNode.style.width = opts.bgWidth + 'px';\n        this.bgDomNode.style.height = opts.bgHeight + 'px';\n        if (typeof opts.top !== 'undefined') {\n            this.bgDomNode.style.top = '0px';\n        }\n        if (typeof opts.left !== 'undefined') {\n            this.bgDomNode.style.left = '0px';\n        }\n        if (typeof opts.bottom !== 'undefined') {\n            this.bgDomNode.style.bottom = '0px';\n        }\n        if (typeof opts.right !== 'undefined') {\n            this.bgDomNode.style.right = '0px';\n        }\n        this.domNode = document.createElement('div');\n        this.domNode.className = opts.className;\n        this.domNode.classList.add(...ThemeIcon.asClassNameArray(opts.icon));\n        this.domNode.style.position = 'absolute';\n        this.domNode.style.width = ARROW_IMG_SIZE + 'px';\n        this.domNode.style.height = ARROW_IMG_SIZE + 'px';\n        if (typeof opts.top !== 'undefined') {\n            this.domNode.style.top = opts.top + 'px';\n        }\n        if (typeof opts.left !== 'undefined') {\n            this.domNode.style.left = opts.left + 'px';\n        }\n        if (typeof opts.bottom !== 'undefined') {\n            this.domNode.style.bottom = opts.bottom + 'px';\n        }\n        if (typeof opts.right !== 'undefined') {\n            this.domNode.style.right = opts.right + 'px';\n        }\n        this._pointerMoveMonitor = this._register(new GlobalPointerMoveMonitor());\n        this._register(dom.addStandardDisposableListener(this.bgDomNode, dom.EventType.POINTER_DOWN, (e) => this._arrowPointerDown(e)));\n        this._register(dom.addStandardDisposableListener(this.domNode, dom.EventType.POINTER_DOWN, (e) => this._arrowPointerDown(e)));\n        this._pointerdownRepeatTimer = this._register(new dom.WindowIntervalTimer());\n        this._pointerdownScheduleRepeatTimer = this._register(new TimeoutTimer());\n    }\n    _arrowPointerDown(e) {\n        if (!e.target || !(e.target instanceof Element)) {\n            return;\n        }\n        const scheduleRepeater = () => {\n            this._pointerdownRepeatTimer.cancelAndSet(() => this._onActivate(), 1000 / 24, dom.getWindow(e));\n        };\n        this._onActivate();\n        this._pointerdownRepeatTimer.cancel();\n        this._pointerdownScheduleRepeatTimer.cancelAndSet(scheduleRepeater, 200);\n        this._pointerMoveMonitor.startMonitoring(e.target, e.pointerId, e.buttons, (pointerMoveData) => { }, () => {\n            this._pointerdownRepeatTimer.cancel();\n            this._pointerdownScheduleRepeatTimer.cancel();\n        });\n        e.preventDefault();\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/scrollbar/scrollbarState.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * The minimal size of the slider (such that it can still be clickable) -- it is artificially enlarged.\n */\nconst MINIMUM_SLIDER_SIZE = 20;\nexport class ScrollbarState {\n    constructor(arrowSize, scrollbarSize, oppositeScrollbarSize, visibleSize, scrollSize, scrollPosition) {\n        this._scrollbarSize = Math.round(scrollbarSize);\n        this._oppositeScrollbarSize = Math.round(oppositeScrollbarSize);\n        this._arrowSize = Math.round(arrowSize);\n        this._visibleSize = visibleSize;\n        this._scrollSize = scrollSize;\n        this._scrollPosition = scrollPosition;\n        this._computedAvailableSize = 0;\n        this._computedIsNeeded = false;\n        this._computedSliderSize = 0;\n        this._computedSliderRatio = 0;\n        this._computedSliderPosition = 0;\n        this._refreshComputedValues();\n    }\n    clone() {\n        return new ScrollbarState(this._arrowSize, this._scrollbarSize, this._oppositeScrollbarSize, this._visibleSize, this._scrollSize, this._scrollPosition);\n    }\n    setVisibleSize(visibleSize) {\n        const iVisibleSize = Math.round(visibleSize);\n        if (this._visibleSize !== iVisibleSize) {\n            this._visibleSize = iVisibleSize;\n            this._refreshComputedValues();\n            return true;\n        }\n        return false;\n    }\n    setScrollSize(scrollSize) {\n        const iScrollSize = Math.round(scrollSize);\n        if (this._scrollSize !== iScrollSize) {\n            this._scrollSize = iScrollSize;\n            this._refreshComputedValues();\n            return true;\n        }\n        return false;\n    }\n    setScrollPosition(scrollPosition) {\n        const iScrollPosition = Math.round(scrollPosition);\n        if (this._scrollPosition !== iScrollPosition) {\n            this._scrollPosition = iScrollPosition;\n            this._refreshComputedValues();\n            return true;\n        }\n        return false;\n    }\n    setScrollbarSize(scrollbarSize) {\n        this._scrollbarSize = Math.round(scrollbarSize);\n    }\n    setOppositeScrollbarSize(oppositeScrollbarSize) {\n        this._oppositeScrollbarSize = Math.round(oppositeScrollbarSize);\n    }\n    static _computeValues(oppositeScrollbarSize, arrowSize, visibleSize, scrollSize, scrollPosition) {\n        const computedAvailableSize = Math.max(0, visibleSize - oppositeScrollbarSize);\n        const computedRepresentableSize = Math.max(0, computedAvailableSize - 2 * arrowSize);\n        const computedIsNeeded = (scrollSize > 0 && scrollSize > visibleSize);\n        if (!computedIsNeeded) {\n            // There is no need for a slider\n            return {\n                computedAvailableSize: Math.round(computedAvailableSize),\n                computedIsNeeded: computedIsNeeded,\n                computedSliderSize: Math.round(computedRepresentableSize),\n                computedSliderRatio: 0,\n                computedSliderPosition: 0,\n            };\n        }\n        // We must artificially increase the size of the slider if needed, since the slider would be too small to grab with the mouse otherwise\n        const computedSliderSize = Math.round(Math.max(MINIMUM_SLIDER_SIZE, Math.floor(visibleSize * computedRepresentableSize / scrollSize)));\n        // The slider can move from 0 to `computedRepresentableSize` - `computedSliderSize`\n        // in the same way `scrollPosition` can move from 0 to `scrollSize` - `visibleSize`.\n        const computedSliderRatio = (computedRepresentableSize - computedSliderSize) / (scrollSize - visibleSize);\n        const computedSliderPosition = (scrollPosition * computedSliderRatio);\n        return {\n            computedAvailableSize: Math.round(computedAvailableSize),\n            computedIsNeeded: computedIsNeeded,\n            computedSliderSize: Math.round(computedSliderSize),\n            computedSliderRatio: computedSliderRatio,\n            computedSliderPosition: Math.round(computedSliderPosition),\n        };\n    }\n    _refreshComputedValues() {\n        const r = ScrollbarState._computeValues(this._oppositeScrollbarSize, this._arrowSize, this._visibleSize, this._scrollSize, this._scrollPosition);\n        this._computedAvailableSize = r.computedAvailableSize;\n        this._computedIsNeeded = r.computedIsNeeded;\n        this._computedSliderSize = r.computedSliderSize;\n        this._computedSliderRatio = r.computedSliderRatio;\n        this._computedSliderPosition = r.computedSliderPosition;\n    }\n    getArrowSize() {\n        return this._arrowSize;\n    }\n    getScrollPosition() {\n        return this._scrollPosition;\n    }\n    getRectangleLargeSize() {\n        return this._computedAvailableSize;\n    }\n    getRectangleSmallSize() {\n        return this._scrollbarSize;\n    }\n    isNeeded() {\n        return this._computedIsNeeded;\n    }\n    getSliderSize() {\n        return this._computedSliderSize;\n    }\n    getSliderPosition() {\n        return this._computedSliderPosition;\n    }\n    /**\n     * Compute a desired `scrollPosition` such that `offset` ends up in the center of the slider.\n     * `offset` is based on the same coordinate system as the `sliderPosition`.\n     */\n    getDesiredScrollPositionFromOffset(offset) {\n        if (!this._computedIsNeeded) {\n            // no need for a slider\n            return 0;\n        }\n        const desiredSliderPosition = offset - this._arrowSize - this._computedSliderSize / 2;\n        return Math.round(desiredSliderPosition / this._computedSliderRatio);\n    }\n    /**\n     * Compute a desired `scrollPosition` from if offset is before or after the slider position.\n     * If offset is before slider, treat as a page up (or left).  If after, page down (or right).\n     * `offset` and `_computedSliderPosition` are based on the same coordinate system.\n     * `_visibleSize` corresponds to a \"page\" of lines in the returned coordinate system.\n     */\n    getDesiredScrollPositionFromOffsetPaged(offset) {\n        if (!this._computedIsNeeded) {\n            // no need for a slider\n            return 0;\n        }\n        const correctedOffset = offset - this._arrowSize; // compensate if has arrows\n        let desiredScrollPosition = this._scrollPosition;\n        if (correctedOffset < this._computedSliderPosition) {\n            desiredScrollPosition -= this._visibleSize; // page up/left\n        }\n        else {\n            desiredScrollPosition += this._visibleSize; // page down/right\n        }\n        return desiredScrollPosition;\n    }\n    /**\n     * Compute a desired `scrollPosition` such that the slider moves by `delta`.\n     */\n    getDesiredScrollPositionFromDelta(delta) {\n        if (!this._computedIsNeeded) {\n            // no need for a slider\n            return 0;\n        }\n        const desiredSliderPosition = this._computedSliderPosition + delta;\n        return Math.round(desiredSliderPosition / this._computedSliderRatio);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/scrollbar/scrollbarVisibilityController.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { TimeoutTimer } from '../../../common/async.js';\nimport { Disposable } from '../../../common/lifecycle.js';\nexport class ScrollbarVisibilityController extends Disposable {\n    constructor(visibility, visibleClassName, invisibleClassName) {\n        super();\n        this._visibility = visibility;\n        this._visibleClassName = visibleClassName;\n        this._invisibleClassName = invisibleClassName;\n        this._domNode = null;\n        this._isVisible = false;\n        this._isNeeded = false;\n        this._rawShouldBeVisible = false;\n        this._shouldBeVisible = false;\n        this._revealTimer = this._register(new TimeoutTimer());\n    }\n    setVisibility(visibility) {\n        if (this._visibility !== visibility) {\n            this._visibility = visibility;\n            this._updateShouldBeVisible();\n        }\n    }\n    // ----------------- Hide / Reveal\n    setShouldBeVisible(rawShouldBeVisible) {\n        this._rawShouldBeVisible = rawShouldBeVisible;\n        this._updateShouldBeVisible();\n    }\n    _applyVisibilitySetting() {\n        if (this._visibility === 2 /* ScrollbarVisibility.Hidden */) {\n            return false;\n        }\n        if (this._visibility === 3 /* ScrollbarVisibility.Visible */) {\n            return true;\n        }\n        return this._rawShouldBeVisible;\n    }\n    _updateShouldBeVisible() {\n        const shouldBeVisible = this._applyVisibilitySetting();\n        if (this._shouldBeVisible !== shouldBeVisible) {\n            this._shouldBeVisible = shouldBeVisible;\n            this.ensureVisibility();\n        }\n    }\n    setIsNeeded(isNeeded) {\n        if (this._isNeeded !== isNeeded) {\n            this._isNeeded = isNeeded;\n            this.ensureVisibility();\n        }\n    }\n    setDomNode(domNode) {\n        this._domNode = domNode;\n        this._domNode.setClassName(this._invisibleClassName);\n        // Now that the flags & the dom node are in a consistent state, ensure the Hidden/Visible configuration\n        this.setShouldBeVisible(false);\n    }\n    ensureVisibility() {\n        if (!this._isNeeded) {\n            // Nothing to be rendered\n            this._hide(false);\n            return;\n        }\n        if (this._shouldBeVisible) {\n            this._reveal();\n        }\n        else {\n            this._hide(true);\n        }\n    }\n    _reveal() {\n        if (this._isVisible) {\n            return;\n        }\n        this._isVisible = true;\n        // The CSS animation doesn't play otherwise\n        this._revealTimer.setIfNotSet(() => {\n            var _a;\n            (_a = this._domNode) === null || _a === void 0 ? void 0 : _a.setClassName(this._visibleClassName);\n        }, 0);\n    }\n    _hide(withFadeAway) {\n        var _a;\n        this._revealTimer.cancel();\n        if (!this._isVisible) {\n            return;\n        }\n        this._isVisible = false;\n        (_a = this._domNode) === null || _a === void 0 ? void 0 : _a.setClassName(this._invisibleClassName + (withFadeAway ? ' fade' : ''));\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/scrollbar/verticalScrollbar.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { StandardWheelEvent } from '../../mouseEvent.js';\nimport { AbstractScrollbar } from './abstractScrollbar.js';\nimport { ARROW_IMG_SIZE } from './scrollbarArrow.js';\nimport { ScrollbarState } from './scrollbarState.js';\nimport { Codicon } from '../../../common/codicons.js';\nexport class VerticalScrollbar extends AbstractScrollbar {\n    constructor(scrollable, options, host) {\n        const scrollDimensions = scrollable.getScrollDimensions();\n        const scrollPosition = scrollable.getCurrentScrollPosition();\n        super({\n            lazyRender: options.lazyRender,\n            host: host,\n            scrollbarState: new ScrollbarState((options.verticalHasArrows ? options.arrowSize : 0), (options.vertical === 2 /* ScrollbarVisibility.Hidden */ ? 0 : options.verticalScrollbarSize), \n            // give priority to vertical scroll bar over horizontal and let it scroll all the way to the bottom\n            0, scrollDimensions.height, scrollDimensions.scrollHeight, scrollPosition.scrollTop),\n            visibility: options.vertical,\n            extraScrollbarClassName: 'vertical',\n            scrollable: scrollable,\n            scrollByPage: options.scrollByPage\n        });\n        if (options.verticalHasArrows) {\n            const arrowDelta = (options.arrowSize - ARROW_IMG_SIZE) / 2;\n            const scrollbarDelta = (options.verticalScrollbarSize - ARROW_IMG_SIZE) / 2;\n            this._createArrow({\n                className: 'scra',\n                icon: Codicon.scrollbarButtonUp,\n                top: arrowDelta,\n                left: scrollbarDelta,\n                bottom: undefined,\n                right: undefined,\n                bgWidth: options.verticalScrollbarSize,\n                bgHeight: options.arrowSize,\n                onActivate: () => this._host.onMouseWheel(new StandardWheelEvent(null, 0, 1)),\n            });\n            this._createArrow({\n                className: 'scra',\n                icon: Codicon.scrollbarButtonDown,\n                top: undefined,\n                left: scrollbarDelta,\n                bottom: arrowDelta,\n                right: undefined,\n                bgWidth: options.verticalScrollbarSize,\n                bgHeight: options.arrowSize,\n                onActivate: () => this._host.onMouseWheel(new StandardWheelEvent(null, 0, -1)),\n            });\n        }\n        this._createSlider(0, Math.floor((options.verticalScrollbarSize - options.verticalSliderSize) / 2), options.verticalSliderSize, undefined);\n    }\n    _updateSlider(sliderSize, sliderPosition) {\n        this.slider.setHeight(sliderSize);\n        this.slider.setTop(sliderPosition);\n    }\n    _renderDomNode(largeSize, smallSize) {\n        this.domNode.setWidth(smallSize);\n        this.domNode.setHeight(largeSize);\n        this.domNode.setRight(0);\n        this.domNode.setTop(0);\n    }\n    onDidScroll(e) {\n        this._shouldRender = this._onElementScrollSize(e.scrollHeight) || this._shouldRender;\n        this._shouldRender = this._onElementScrollPosition(e.scrollTop) || this._shouldRender;\n        this._shouldRender = this._onElementSize(e.height) || this._shouldRender;\n        return this._shouldRender;\n    }\n    _pointerDownRelativePosition(offsetX, offsetY) {\n        return offsetY;\n    }\n    _sliderPointerPosition(e) {\n        return e.pageY;\n    }\n    _sliderOrthogonalPointerPosition(e) {\n        return e.pageX;\n    }\n    _updateScrollbarSize(size) {\n        this.slider.setWidth(size);\n    }\n    writeScrollPosition(target, scrollPosition) {\n        target.scrollTop = scrollPosition;\n    }\n    updateOptions(options) {\n        this.updateScrollbarSize(options.vertical === 2 /* ScrollbarVisibility.Hidden */ ? 0 : options.verticalScrollbarSize);\n        // give priority to vertical scroll bar over horizontal and let it scroll all the way to the bottom\n        this._scrollbarState.setOppositeScrollbarSize(0);\n        this._visibilityController.setVisibility(options.vertical);\n        this._scrollByPage = options.scrollByPage;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/selectBox/selectBox.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-select-box {\n\twidth: 100%;\n\tcursor: pointer;\n\tborder-radius: 2px;\n}\n\n.monaco-select-box-dropdown-container {\n\tfont-size: 13px;\n\tfont-weight: normal;\n\ttext-transform: none;\n}\n\n/** Actions */\n\n.monaco-action-bar .action-item.select-container {\n\tcursor: default;\n}\n\n.monaco-action-bar .action-item .monaco-select-box {\n\tcursor: pointer;\n\tmin-width: 100px;\n\tmin-height: 18px;\n\tpadding: 2px 23px 2px 8px;\n}\n\n.mac .monaco-action-bar .action-item .monaco-select-box {\n\tfont-size: 11px;\n\tborder-radius: 5px;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/selectBox/selectBox.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { SelectBoxList } from './selectBoxCustom.js';\nimport { SelectBoxNative } from './selectBoxNative.js';\nimport { Widget } from '../widget.js';\nimport { isMacintosh } from '../../../common/platform.js';\nimport './selectBox.css';\nexport class SelectBox extends Widget {\n    constructor(options, selected, contextViewProvider, styles, selectBoxOptions) {\n        super();\n        // Default to native SelectBox for OSX unless overridden\n        if (isMacintosh && !(selectBoxOptions === null || selectBoxOptions === void 0 ? void 0 : selectBoxOptions.useCustomDrawn)) {\n            this.selectBoxDelegate = new SelectBoxNative(options, selected, styles, selectBoxOptions);\n        }\n        else {\n            this.selectBoxDelegate = new SelectBoxList(options, selected, contextViewProvider, styles, selectBoxOptions);\n        }\n        this._register(this.selectBoxDelegate);\n    }\n    // Public SelectBox Methods - routed through delegate interface\n    get onDidSelect() {\n        return this.selectBoxDelegate.onDidSelect;\n    }\n    setOptions(options, selected) {\n        this.selectBoxDelegate.setOptions(options, selected);\n    }\n    select(index) {\n        this.selectBoxDelegate.select(index);\n    }\n    focus() {\n        this.selectBoxDelegate.focus();\n    }\n    blur() {\n        this.selectBoxDelegate.blur();\n    }\n    setFocusable(focusable) {\n        this.selectBoxDelegate.setFocusable(focusable);\n    }\n    render(container) {\n        this.selectBoxDelegate.render(container);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/selectBox/selectBoxCustom.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n/* Use custom CSS vars to expose padding into parent select for padding calculation */\n.monaco-select-box-dropdown-padding {\n\t--dropdown-padding-top: 1px;\n\t--dropdown-padding-bottom: 1px;\n}\n\n.hc-black .monaco-select-box-dropdown-padding,\n.hc-light .monaco-select-box-dropdown-padding {\n\t--dropdown-padding-top: 3px;\n\t--dropdown-padding-bottom: 4px;\n}\n\n.monaco-select-box-dropdown-container {\n\tdisplay: none;\n\tbox-sizing:\tborder-box;\n}\n\n.monaco-select-box-dropdown-container > .select-box-details-pane > .select-box-description-markdown * {\n\tmargin: 0;\n}\n\n.monaco-select-box-dropdown-container > .select-box-details-pane > .select-box-description-markdown a:focus {\n\toutline: 1px solid -webkit-focus-ring-color;\n\toutline-offset: -1px;\n}\n\n.monaco-select-box-dropdown-container > .select-box-details-pane > .select-box-description-markdown code {\n\tline-height: 15px; /** For some reason, this is needed, otherwise <code> will take up 20px height */\n\tfont-family: var(--monaco-monospace-font);\n}\n\n\n.monaco-select-box-dropdown-container.visible {\n\tdisplay: flex;\n\tflex-direction: column;\n\ttext-align: left;\n\twidth: 1px;\n\toverflow: hidden;\n\tborder-bottom-left-radius: 3px;\n\tborder-bottom-right-radius: 3px;\n}\n\n.monaco-select-box-dropdown-container > .select-box-dropdown-list-container {\n\tflex: 0 0 auto;\n\talign-self: flex-start;\n\tpadding-top: var(--dropdown-padding-top);\n\tpadding-bottom: var(--dropdown-padding-bottom);\n\tpadding-left: 1px;\n\tpadding-right: 1px;\n\twidth: 100%;\n\toverflow: hidden;\n\tbox-sizing:\tborder-box;\n}\n\n.monaco-select-box-dropdown-container > .select-box-details-pane {\n\tpadding: 5px;\n}\n\n.hc-black .monaco-select-box-dropdown-container > .select-box-dropdown-list-container {\n\tpadding-top: var(--dropdown-padding-top);\n\tpadding-bottom: var(--dropdown-padding-bottom);\n}\n\n.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row {\n\tcursor: pointer;\n}\n\n.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row > .option-text {\n\ttext-overflow: ellipsis;\n\toverflow: hidden;\n\tpadding-left: 3.5px;\n\twhite-space: nowrap;\n\tfloat: left;\n}\n\n.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row > .option-detail {\n\ttext-overflow: ellipsis;\n\toverflow: hidden;\n\tpadding-left: 3.5px;\n\twhite-space: nowrap;\n\tfloat: left;\n\topacity: 0.7;\n}\n\n.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row > .option-decorator-right {\n\ttext-overflow: ellipsis;\n\toverflow: hidden;\n\tpadding-right: 10px;\n\twhite-space: nowrap;\n\tfloat: right;\n}\n\n\n/* Accepted CSS hiding technique for accessibility reader text  */\n/* https://webaim.org/techniques/css/invisiblecontent/ */\n\n.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row > .visually-hidden {\n\t\tposition: absolute;\n\t\tleft: -10000px;\n\t\ttop: auto;\n\t\twidth: 1px;\n\t\theight: 1px;\n\t\toverflow: hidden;\n}\n\n.monaco-select-box-dropdown-container > .select-box-dropdown-container-width-control {\n\tflex: 1 1 auto;\n\talign-self: flex-start;\n\topacity: 0;\n}\n\n.monaco-select-box-dropdown-container > .select-box-dropdown-container-width-control > .width-control-div {\n\toverflow: hidden;\n\tmax-height: 0px;\n}\n\n.monaco-select-box-dropdown-container > .select-box-dropdown-container-width-control > .width-control-div > .option-text-width-control {\n\tpadding-left: 4px;\n\tpadding-right: 8px;\n\twhite-space: nowrap;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/selectBox/selectBoxCustom.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../dom.js';\nimport { DomEmitter } from '../../event.js';\nimport { StandardKeyboardEvent } from '../../keyboardEvent.js';\nimport { renderMarkdown } from '../../markdownRenderer.js';\nimport { getBaseLayerHoverDelegate } from '../hover/hoverDelegate2.js';\nimport { getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';\nimport { List } from '../list/listWidget.js';\nimport * as arrays from '../../../common/arrays.js';\nimport { Emitter, Event } from '../../../common/event.js';\nimport { KeyCodeUtils } from '../../../common/keyCodes.js';\nimport { Disposable } from '../../../common/lifecycle.js';\nimport { isMacintosh } from '../../../common/platform.js';\nimport './selectBoxCustom.css';\nimport { localize } from '../../../../nls.js';\nconst $ = dom.$;\nconst SELECT_OPTION_ENTRY_TEMPLATE_ID = 'selectOption.entry.template';\nclass SelectListRenderer {\n    get templateId() { return SELECT_OPTION_ENTRY_TEMPLATE_ID; }\n    renderTemplate(container) {\n        const data = Object.create(null);\n        data.root = container;\n        data.text = dom.append(container, $('.option-text'));\n        data.detail = dom.append(container, $('.option-detail'));\n        data.decoratorRight = dom.append(container, $('.option-decorator-right'));\n        return data;\n    }\n    renderElement(element, index, templateData) {\n        const data = templateData;\n        const text = element.text;\n        const detail = element.detail;\n        const decoratorRight = element.decoratorRight;\n        const isDisabled = element.isDisabled;\n        data.text.textContent = text;\n        data.detail.textContent = !!detail ? detail : '';\n        data.decoratorRight.innerText = !!decoratorRight ? decoratorRight : '';\n        // pseudo-select disabled option\n        if (isDisabled) {\n            data.root.classList.add('option-disabled');\n        }\n        else {\n            // Make sure we do class removal from prior template rendering\n            data.root.classList.remove('option-disabled');\n        }\n    }\n    disposeTemplate(_templateData) {\n        // noop\n    }\n}\nexport class SelectBoxList extends Disposable {\n    constructor(options, selected, contextViewProvider, styles, selectBoxOptions) {\n        super();\n        this.options = [];\n        this._currentSelection = 0;\n        this._hasDetails = false;\n        this._skipLayout = false;\n        this._sticky = false; // for dev purposes only\n        this._isVisible = false;\n        this.styles = styles;\n        this.selectBoxOptions = selectBoxOptions || Object.create(null);\n        if (typeof this.selectBoxOptions.minBottomMargin !== 'number') {\n            this.selectBoxOptions.minBottomMargin = SelectBoxList.DEFAULT_DROPDOWN_MINIMUM_BOTTOM_MARGIN;\n        }\n        else if (this.selectBoxOptions.minBottomMargin < 0) {\n            this.selectBoxOptions.minBottomMargin = 0;\n        }\n        this.selectElement = document.createElement('select');\n        // Use custom CSS vars for padding calculation\n        this.selectElement.className = 'monaco-select-box monaco-select-box-dropdown-padding';\n        if (typeof this.selectBoxOptions.ariaLabel === 'string') {\n            this.selectElement.setAttribute('aria-label', this.selectBoxOptions.ariaLabel);\n        }\n        if (typeof this.selectBoxOptions.ariaDescription === 'string') {\n            this.selectElement.setAttribute('aria-description', this.selectBoxOptions.ariaDescription);\n        }\n        this._onDidSelect = new Emitter();\n        this._register(this._onDidSelect);\n        this.registerListeners();\n        this.constructSelectDropDown(contextViewProvider);\n        this.selected = selected || 0;\n        if (options) {\n            this.setOptions(options, selected);\n        }\n        this.initStyleSheet();\n    }\n    setTitle(title) {\n        if (!this._hover && title) {\n            this._hover = this._register(getBaseLayerHoverDelegate().setupUpdatableHover(getDefaultHoverDelegate('mouse'), this.selectElement, title));\n        }\n        else if (this._hover) {\n            this._hover.update(title);\n        }\n    }\n    // IDelegate - List renderer\n    getHeight() {\n        return 22;\n    }\n    getTemplateId() {\n        return SELECT_OPTION_ENTRY_TEMPLATE_ID;\n    }\n    constructSelectDropDown(contextViewProvider) {\n        // SetUp ContextView container to hold select Dropdown\n        this.contextViewProvider = contextViewProvider;\n        this.selectDropDownContainer = dom.$('.monaco-select-box-dropdown-container');\n        // Use custom CSS vars for padding calculation (shared with parent select)\n        this.selectDropDownContainer.classList.add('monaco-select-box-dropdown-padding');\n        // Setup container for select option details\n        this.selectionDetailsPane = dom.append(this.selectDropDownContainer, $('.select-box-details-pane'));\n        // Create span flex box item/div we can measure and control\n        const widthControlOuterDiv = dom.append(this.selectDropDownContainer, $('.select-box-dropdown-container-width-control'));\n        const widthControlInnerDiv = dom.append(widthControlOuterDiv, $('.width-control-div'));\n        this.widthControlElement = document.createElement('span');\n        this.widthControlElement.className = 'option-text-width-control';\n        dom.append(widthControlInnerDiv, this.widthControlElement);\n        // Always default to below position\n        this._dropDownPosition = 0 /* AnchorPosition.BELOW */;\n        // Inline stylesheet for themes\n        this.styleElement = dom.createStyleSheet(this.selectDropDownContainer);\n        // Prevent dragging of dropdown #114329\n        this.selectDropDownContainer.setAttribute('draggable', 'true');\n        this._register(dom.addDisposableListener(this.selectDropDownContainer, dom.EventType.DRAG_START, (e) => {\n            dom.EventHelper.stop(e, true);\n        }));\n    }\n    registerListeners() {\n        // Parent native select keyboard listeners\n        this._register(dom.addStandardDisposableListener(this.selectElement, 'change', (e) => {\n            this.selected = e.target.selectedIndex;\n            this._onDidSelect.fire({\n                index: e.target.selectedIndex,\n                selected: e.target.value\n            });\n            if (!!this.options[this.selected] && !!this.options[this.selected].text) {\n                this.setTitle(this.options[this.selected].text);\n            }\n        }));\n        // Have to implement both keyboard and mouse controllers to handle disabled options\n        // Intercept mouse events to override normal select actions on parents\n        this._register(dom.addDisposableListener(this.selectElement, dom.EventType.CLICK, (e) => {\n            dom.EventHelper.stop(e);\n            if (this._isVisible) {\n                this.hideSelectDropDown(true);\n            }\n            else {\n                this.showSelectDropDown();\n            }\n        }));\n        this._register(dom.addDisposableListener(this.selectElement, dom.EventType.MOUSE_DOWN, (e) => {\n            dom.EventHelper.stop(e);\n        }));\n        // Intercept touch events\n        // The following implementation is slightly different from the mouse event handlers above.\n        // Use the following helper variable, otherwise the list flickers.\n        let listIsVisibleOnTouchStart;\n        this._register(dom.addDisposableListener(this.selectElement, 'touchstart', (e) => {\n            listIsVisibleOnTouchStart = this._isVisible;\n        }));\n        this._register(dom.addDisposableListener(this.selectElement, 'touchend', (e) => {\n            dom.EventHelper.stop(e);\n            if (listIsVisibleOnTouchStart) {\n                this.hideSelectDropDown(true);\n            }\n            else {\n                this.showSelectDropDown();\n            }\n        }));\n        // Intercept keyboard handling\n        this._register(dom.addDisposableListener(this.selectElement, dom.EventType.KEY_DOWN, (e) => {\n            const event = new StandardKeyboardEvent(e);\n            let showDropDown = false;\n            // Create and drop down select list on keyboard select\n            if (isMacintosh) {\n                if (event.keyCode === 18 /* KeyCode.DownArrow */ || event.keyCode === 16 /* KeyCode.UpArrow */ || event.keyCode === 10 /* KeyCode.Space */ || event.keyCode === 3 /* KeyCode.Enter */) {\n                    showDropDown = true;\n                }\n            }\n            else {\n                if (event.keyCode === 18 /* KeyCode.DownArrow */ && event.altKey || event.keyCode === 16 /* KeyCode.UpArrow */ && event.altKey || event.keyCode === 10 /* KeyCode.Space */ || event.keyCode === 3 /* KeyCode.Enter */) {\n                    showDropDown = true;\n                }\n            }\n            if (showDropDown) {\n                this.showSelectDropDown();\n                dom.EventHelper.stop(e, true);\n            }\n        }));\n    }\n    get onDidSelect() {\n        return this._onDidSelect.event;\n    }\n    setOptions(options, selected) {\n        if (!arrays.equals(this.options, options)) {\n            this.options = options;\n            this.selectElement.options.length = 0;\n            this._hasDetails = false;\n            this._cachedMaxDetailsHeight = undefined;\n            this.options.forEach((option, index) => {\n                this.selectElement.add(this.createOption(option.text, index, option.isDisabled));\n                if (typeof option.description === 'string') {\n                    this._hasDetails = true;\n                }\n            });\n        }\n        if (selected !== undefined) {\n            this.select(selected);\n            // Set current = selected since this is not necessarily a user exit\n            this._currentSelection = this.selected;\n        }\n    }\n    setOptionsList() {\n        var _a;\n        // Mirror options in drop-down\n        // Populate select list for non-native select mode\n        (_a = this.selectList) === null || _a === void 0 ? void 0 : _a.splice(0, this.selectList.length, this.options);\n    }\n    select(index) {\n        if (index >= 0 && index < this.options.length) {\n            this.selected = index;\n        }\n        else if (index > this.options.length - 1) {\n            // Adjust index to end of list\n            // This could make client out of sync with the select\n            this.select(this.options.length - 1);\n        }\n        else if (this.selected < 0) {\n            this.selected = 0;\n        }\n        this.selectElement.selectedIndex = this.selected;\n        if (!!this.options[this.selected] && !!this.options[this.selected].text) {\n            this.setTitle(this.options[this.selected].text);\n        }\n    }\n    focus() {\n        if (this.selectElement) {\n            this.selectElement.tabIndex = 0;\n            this.selectElement.focus();\n        }\n    }\n    blur() {\n        if (this.selectElement) {\n            this.selectElement.tabIndex = -1;\n            this.selectElement.blur();\n        }\n    }\n    setFocusable(focusable) {\n        this.selectElement.tabIndex = focusable ? 0 : -1;\n    }\n    render(container) {\n        this.container = container;\n        container.classList.add('select-container');\n        container.appendChild(this.selectElement);\n        this.styleSelectElement();\n    }\n    initStyleSheet() {\n        const content = [];\n        // Style non-native select mode\n        if (this.styles.listFocusBackground) {\n            content.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { background-color: ${this.styles.listFocusBackground} !important; }`);\n        }\n        if (this.styles.listFocusForeground) {\n            content.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { color: ${this.styles.listFocusForeground} !important; }`);\n        }\n        if (this.styles.decoratorRightForeground) {\n            content.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.focused) .option-decorator-right { color: ${this.styles.decoratorRightForeground}; }`);\n        }\n        if (this.styles.selectBackground && this.styles.selectBorder && this.styles.selectBorder !== this.styles.selectBackground) {\n            content.push(`.monaco-select-box-dropdown-container { border: 1px solid ${this.styles.selectBorder} } `);\n            content.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-top { border-top: 1px solid ${this.styles.selectBorder} } `);\n            content.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-bottom { border-bottom: 1px solid ${this.styles.selectBorder} } `);\n        }\n        else if (this.styles.selectListBorder) {\n            content.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-top { border-top: 1px solid ${this.styles.selectListBorder} } `);\n            content.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-bottom { border-bottom: 1px solid ${this.styles.selectListBorder} } `);\n        }\n        // Hover foreground - ignore for disabled options\n        if (this.styles.listHoverForeground) {\n            content.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { color: ${this.styles.listHoverForeground} !important; }`);\n        }\n        // Hover background - ignore for disabled options\n        if (this.styles.listHoverBackground) {\n            content.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { background-color: ${this.styles.listHoverBackground} !important; }`);\n        }\n        // Match quick input outline styles - ignore for disabled options\n        if (this.styles.listFocusOutline) {\n            content.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { outline: 1.6px dotted ${this.styles.listFocusOutline} !important; outline-offset: -1.6px !important; }`);\n        }\n        if (this.styles.listHoverOutline) {\n            content.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { outline: 1.6px dashed ${this.styles.listHoverOutline} !important; outline-offset: -1.6px !important; }`);\n        }\n        // Clear list styles on focus and on hover for disabled options\n        content.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.option-disabled.focused { background-color: transparent !important; color: inherit !important; outline: none !important; }`);\n        content.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.option-disabled:hover { background-color: transparent !important; color: inherit !important; outline: none !important; }`);\n        this.styleElement.textContent = content.join('\\n');\n    }\n    styleSelectElement() {\n        var _a, _b, _c;\n        const background = (_a = this.styles.selectBackground) !== null && _a !== void 0 ? _a : '';\n        const foreground = (_b = this.styles.selectForeground) !== null && _b !== void 0 ? _b : '';\n        const border = (_c = this.styles.selectBorder) !== null && _c !== void 0 ? _c : '';\n        this.selectElement.style.backgroundColor = background;\n        this.selectElement.style.color = foreground;\n        this.selectElement.style.borderColor = border;\n    }\n    styleList() {\n        var _a, _b;\n        const background = (_a = this.styles.selectBackground) !== null && _a !== void 0 ? _a : '';\n        const listBackground = dom.asCssValueWithDefault(this.styles.selectListBackground, background);\n        this.selectDropDownListContainer.style.backgroundColor = listBackground;\n        this.selectionDetailsPane.style.backgroundColor = listBackground;\n        const optionsBorder = (_b = this.styles.focusBorder) !== null && _b !== void 0 ? _b : '';\n        this.selectDropDownContainer.style.outlineColor = optionsBorder;\n        this.selectDropDownContainer.style.outlineOffset = '-1px';\n        this.selectList.style(this.styles);\n    }\n    createOption(value, index, disabled) {\n        const option = document.createElement('option');\n        option.value = value;\n        option.text = value;\n        option.disabled = !!disabled;\n        return option;\n    }\n    // ContextView dropdown methods\n    showSelectDropDown() {\n        this.selectionDetailsPane.innerText = '';\n        if (!this.contextViewProvider || this._isVisible) {\n            return;\n        }\n        // Lazily create and populate list only at open, moved from constructor\n        this.createSelectList(this.selectDropDownContainer);\n        this.setOptionsList();\n        // This allows us to flip the position based on measurement\n        // Set drop-down position above/below from required height and margins\n        // If pre-layout cannot fit at least one option do not show drop-down\n        this.contextViewProvider.showContextView({\n            getAnchor: () => this.selectElement,\n            render: (container) => this.renderSelectDropDown(container, true),\n            layout: () => {\n                this.layoutSelectDropDown();\n            },\n            onHide: () => {\n                this.selectDropDownContainer.classList.remove('visible');\n                this.selectElement.classList.remove('synthetic-focus');\n            },\n            anchorPosition: this._dropDownPosition\n        }, this.selectBoxOptions.optionsAsChildren ? this.container : undefined);\n        // Hide so we can relay out\n        this._isVisible = true;\n        this.hideSelectDropDown(false);\n        this.contextViewProvider.showContextView({\n            getAnchor: () => this.selectElement,\n            render: (container) => this.renderSelectDropDown(container),\n            layout: () => this.layoutSelectDropDown(),\n            onHide: () => {\n                this.selectDropDownContainer.classList.remove('visible');\n                this.selectElement.classList.remove('synthetic-focus');\n            },\n            anchorPosition: this._dropDownPosition\n        }, this.selectBoxOptions.optionsAsChildren ? this.container : undefined);\n        // Track initial selection the case user escape, blur\n        this._currentSelection = this.selected;\n        this._isVisible = true;\n        this.selectElement.setAttribute('aria-expanded', 'true');\n    }\n    hideSelectDropDown(focusSelect) {\n        if (!this.contextViewProvider || !this._isVisible) {\n            return;\n        }\n        this._isVisible = false;\n        this.selectElement.setAttribute('aria-expanded', 'false');\n        if (focusSelect) {\n            this.selectElement.focus();\n        }\n        this.contextViewProvider.hideContextView();\n    }\n    renderSelectDropDown(container, preLayoutPosition) {\n        container.appendChild(this.selectDropDownContainer);\n        // Pre-Layout allows us to change position\n        this.layoutSelectDropDown(preLayoutPosition);\n        return {\n            dispose: () => {\n                // contextView will dispose itself if moving from one View to another\n                try {\n                    container.removeChild(this.selectDropDownContainer); // remove to take out the CSS rules we add\n                }\n                catch (error) {\n                    // Ignore, removed already by change of focus\n                }\n            }\n        };\n    }\n    // Iterate over detailed descriptions, find max height\n    measureMaxDetailsHeight() {\n        let maxDetailsPaneHeight = 0;\n        this.options.forEach((_option, index) => {\n            this.updateDetail(index);\n            if (this.selectionDetailsPane.offsetHeight > maxDetailsPaneHeight) {\n                maxDetailsPaneHeight = this.selectionDetailsPane.offsetHeight;\n            }\n        });\n        return maxDetailsPaneHeight;\n    }\n    layoutSelectDropDown(preLayoutPosition) {\n        // Avoid recursion from layout called in onListFocus\n        if (this._skipLayout) {\n            return false;\n        }\n        // Layout ContextView drop down select list and container\n        // Have to manage our vertical overflow, sizing, position below or above\n        // Position has to be determined and set prior to contextView instantiation\n        if (this.selectList) {\n            // Make visible to enable measurements\n            this.selectDropDownContainer.classList.add('visible');\n            const window = dom.getWindow(this.selectElement);\n            const selectPosition = dom.getDomNodePagePosition(this.selectElement);\n            const styles = dom.getWindow(this.selectElement).getComputedStyle(this.selectElement);\n            const verticalPadding = parseFloat(styles.getPropertyValue('--dropdown-padding-top')) + parseFloat(styles.getPropertyValue('--dropdown-padding-bottom'));\n            const maxSelectDropDownHeightBelow = (window.innerHeight - selectPosition.top - selectPosition.height - (this.selectBoxOptions.minBottomMargin || 0));\n            const maxSelectDropDownHeightAbove = (selectPosition.top - SelectBoxList.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN);\n            // Determine optimal width - min(longest option), opt(parent select, excluding margins), max(ContextView controlled)\n            const selectWidth = this.selectElement.offsetWidth;\n            const selectMinWidth = this.setWidthControlElement(this.widthControlElement);\n            const selectOptimalWidth = Math.max(selectMinWidth, Math.round(selectWidth)).toString() + 'px';\n            this.selectDropDownContainer.style.width = selectOptimalWidth;\n            // Get initial list height and determine space above and below\n            this.selectList.getHTMLElement().style.height = '';\n            this.selectList.layout();\n            let listHeight = this.selectList.contentHeight;\n            if (this._hasDetails && this._cachedMaxDetailsHeight === undefined) {\n                this._cachedMaxDetailsHeight = this.measureMaxDetailsHeight();\n            }\n            const maxDetailsPaneHeight = this._hasDetails ? this._cachedMaxDetailsHeight : 0;\n            const minRequiredDropDownHeight = listHeight + verticalPadding + maxDetailsPaneHeight;\n            const maxVisibleOptionsBelow = ((Math.floor((maxSelectDropDownHeightBelow - verticalPadding - maxDetailsPaneHeight) / this.getHeight())));\n            const maxVisibleOptionsAbove = ((Math.floor((maxSelectDropDownHeightAbove - verticalPadding - maxDetailsPaneHeight) / this.getHeight())));\n            // If we are only doing pre-layout check/adjust position only\n            // Calculate vertical space available, flip up if insufficient\n            // Use reflected padding on parent select, ContextView style\n            // properties not available before DOM attachment\n            if (preLayoutPosition) {\n                // Check if select moved out of viewport , do not open\n                // If at least one option cannot be shown, don't open the drop-down or hide/remove if open\n                if ((selectPosition.top + selectPosition.height) > (window.innerHeight - 22)\n                    || selectPosition.top < SelectBoxList.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN\n                    || ((maxVisibleOptionsBelow < 1) && (maxVisibleOptionsAbove < 1))) {\n                    // Indicate we cannot open\n                    return false;\n                }\n                // Determine if we have to flip up\n                // Always show complete list items - never more than Max available vertical height\n                if (maxVisibleOptionsBelow < SelectBoxList.DEFAULT_MINIMUM_VISIBLE_OPTIONS\n                    && maxVisibleOptionsAbove > maxVisibleOptionsBelow\n                    && this.options.length > maxVisibleOptionsBelow) {\n                    this._dropDownPosition = 1 /* AnchorPosition.ABOVE */;\n                    this.selectDropDownContainer.removeChild(this.selectDropDownListContainer);\n                    this.selectDropDownContainer.removeChild(this.selectionDetailsPane);\n                    this.selectDropDownContainer.appendChild(this.selectionDetailsPane);\n                    this.selectDropDownContainer.appendChild(this.selectDropDownListContainer);\n                    this.selectionDetailsPane.classList.remove('border-top');\n                    this.selectionDetailsPane.classList.add('border-bottom');\n                }\n                else {\n                    this._dropDownPosition = 0 /* AnchorPosition.BELOW */;\n                    this.selectDropDownContainer.removeChild(this.selectDropDownListContainer);\n                    this.selectDropDownContainer.removeChild(this.selectionDetailsPane);\n                    this.selectDropDownContainer.appendChild(this.selectDropDownListContainer);\n                    this.selectDropDownContainer.appendChild(this.selectionDetailsPane);\n                    this.selectionDetailsPane.classList.remove('border-bottom');\n                    this.selectionDetailsPane.classList.add('border-top');\n                }\n                // Do full layout on showSelectDropDown only\n                return true;\n            }\n            // Check if select out of viewport or cutting into status bar\n            if ((selectPosition.top + selectPosition.height) > (window.innerHeight - 22)\n                || selectPosition.top < SelectBoxList.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN\n                || (this._dropDownPosition === 0 /* AnchorPosition.BELOW */ && maxVisibleOptionsBelow < 1)\n                || (this._dropDownPosition === 1 /* AnchorPosition.ABOVE */ && maxVisibleOptionsAbove < 1)) {\n                // Cannot properly layout, close and hide\n                this.hideSelectDropDown(true);\n                return false;\n            }\n            // SetUp list dimensions and layout - account for container padding\n            // Use position to check above or below available space\n            if (this._dropDownPosition === 0 /* AnchorPosition.BELOW */) {\n                if (this._isVisible && maxVisibleOptionsBelow + maxVisibleOptionsAbove < 1) {\n                    // If drop-down is visible, must be doing a DOM re-layout, hide since we don't fit\n                    // Hide drop-down, hide contextview, focus on parent select\n                    this.hideSelectDropDown(true);\n                    return false;\n                }\n                // Adjust list height to max from select bottom to margin (default/minBottomMargin)\n                if (minRequiredDropDownHeight > maxSelectDropDownHeightBelow) {\n                    listHeight = (maxVisibleOptionsBelow * this.getHeight());\n                }\n            }\n            else {\n                if (minRequiredDropDownHeight > maxSelectDropDownHeightAbove) {\n                    listHeight = (maxVisibleOptionsAbove * this.getHeight());\n                }\n            }\n            // Set adjusted list height and relayout\n            this.selectList.layout(listHeight);\n            this.selectList.domFocus();\n            // Finally set focus on selected item\n            if (this.selectList.length > 0) {\n                this.selectList.setFocus([this.selected || 0]);\n                this.selectList.reveal(this.selectList.getFocus()[0] || 0);\n            }\n            if (this._hasDetails) {\n                // Leave the selectDropDownContainer to size itself according to children (list + details) - #57447\n                this.selectList.getHTMLElement().style.height = (listHeight + verticalPadding) + 'px';\n                this.selectDropDownContainer.style.height = '';\n            }\n            else {\n                this.selectDropDownContainer.style.height = (listHeight + verticalPadding) + 'px';\n            }\n            this.updateDetail(this.selected);\n            this.selectDropDownContainer.style.width = selectOptimalWidth;\n            // Maintain focus outline on parent select as well as list container - tabindex for focus\n            this.selectDropDownListContainer.setAttribute('tabindex', '0');\n            this.selectElement.classList.add('synthetic-focus');\n            this.selectDropDownContainer.classList.add('synthetic-focus');\n            return true;\n        }\n        else {\n            return false;\n        }\n    }\n    setWidthControlElement(container) {\n        let elementWidth = 0;\n        if (container) {\n            let longest = 0;\n            let longestLength = 0;\n            this.options.forEach((option, index) => {\n                const detailLength = !!option.detail ? option.detail.length : 0;\n                const rightDecoratorLength = !!option.decoratorRight ? option.decoratorRight.length : 0;\n                const len = option.text.length + detailLength + rightDecoratorLength;\n                if (len > longestLength) {\n                    longest = index;\n                    longestLength = len;\n                }\n            });\n            container.textContent = this.options[longest].text + (!!this.options[longest].decoratorRight ? (this.options[longest].decoratorRight + ' ') : '');\n            elementWidth = dom.getTotalWidth(container);\n        }\n        return elementWidth;\n    }\n    createSelectList(parent) {\n        // If we have already constructive list on open, skip\n        if (this.selectList) {\n            return;\n        }\n        // SetUp container for list\n        this.selectDropDownListContainer = dom.append(parent, $('.select-box-dropdown-list-container'));\n        this.listRenderer = new SelectListRenderer();\n        this.selectList = new List('SelectBoxCustom', this.selectDropDownListContainer, this, [this.listRenderer], {\n            useShadows: false,\n            verticalScrollMode: 3 /* ScrollbarVisibility.Visible */,\n            keyboardSupport: false,\n            mouseSupport: false,\n            accessibilityProvider: {\n                getAriaLabel: element => {\n                    let label = element.text;\n                    if (element.detail) {\n                        label += `. ${element.detail}`;\n                    }\n                    if (element.decoratorRight) {\n                        label += `. ${element.decoratorRight}`;\n                    }\n                    if (element.description) {\n                        label += `. ${element.description}`;\n                    }\n                    return label;\n                },\n                getWidgetAriaLabel: () => localize({ key: 'selectBox', comment: ['Behave like native select dropdown element.'] }, \"Select Box\"),\n                getRole: () => isMacintosh ? '' : 'option',\n                getWidgetRole: () => 'listbox'\n            }\n        });\n        if (this.selectBoxOptions.ariaLabel) {\n            this.selectList.ariaLabel = this.selectBoxOptions.ariaLabel;\n        }\n        // SetUp list keyboard controller - control navigation, disabled items, focus\n        const onKeyDown = this._register(new DomEmitter(this.selectDropDownListContainer, 'keydown'));\n        const onSelectDropDownKeyDown = Event.chain(onKeyDown.event, $ => $.filter(() => this.selectList.length > 0)\n            .map(e => new StandardKeyboardEvent(e)));\n        this._register(Event.chain(onSelectDropDownKeyDown, $ => $.filter(e => e.keyCode === 3 /* KeyCode.Enter */))(this.onEnter, this));\n        this._register(Event.chain(onSelectDropDownKeyDown, $ => $.filter(e => e.keyCode === 2 /* KeyCode.Tab */))(this.onEnter, this)); // Tab should behave the same as enter, #79339\n        this._register(Event.chain(onSelectDropDownKeyDown, $ => $.filter(e => e.keyCode === 9 /* KeyCode.Escape */))(this.onEscape, this));\n        this._register(Event.chain(onSelectDropDownKeyDown, $ => $.filter(e => e.keyCode === 16 /* KeyCode.UpArrow */))(this.onUpArrow, this));\n        this._register(Event.chain(onSelectDropDownKeyDown, $ => $.filter(e => e.keyCode === 18 /* KeyCode.DownArrow */))(this.onDownArrow, this));\n        this._register(Event.chain(onSelectDropDownKeyDown, $ => $.filter(e => e.keyCode === 12 /* KeyCode.PageDown */))(this.onPageDown, this));\n        this._register(Event.chain(onSelectDropDownKeyDown, $ => $.filter(e => e.keyCode === 11 /* KeyCode.PageUp */))(this.onPageUp, this));\n        this._register(Event.chain(onSelectDropDownKeyDown, $ => $.filter(e => e.keyCode === 14 /* KeyCode.Home */))(this.onHome, this));\n        this._register(Event.chain(onSelectDropDownKeyDown, $ => $.filter(e => e.keyCode === 13 /* KeyCode.End */))(this.onEnd, this));\n        this._register(Event.chain(onSelectDropDownKeyDown, $ => $.filter(e => (e.keyCode >= 21 /* KeyCode.Digit0 */ && e.keyCode <= 56 /* KeyCode.KeyZ */) || (e.keyCode >= 85 /* KeyCode.Semicolon */ && e.keyCode <= 113 /* KeyCode.NumpadDivide */)))(this.onCharacter, this));\n        // SetUp list mouse controller - control navigation, disabled items, focus\n        this._register(dom.addDisposableListener(this.selectList.getHTMLElement(), dom.EventType.POINTER_UP, e => this.onPointerUp(e)));\n        this._register(this.selectList.onMouseOver(e => typeof e.index !== 'undefined' && this.selectList.setFocus([e.index])));\n        this._register(this.selectList.onDidChangeFocus(e => this.onListFocus(e)));\n        this._register(dom.addDisposableListener(this.selectDropDownContainer, dom.EventType.FOCUS_OUT, e => {\n            if (!this._isVisible || dom.isAncestor(e.relatedTarget, this.selectDropDownContainer)) {\n                return;\n            }\n            this.onListBlur();\n        }));\n        this.selectList.getHTMLElement().setAttribute('aria-label', this.selectBoxOptions.ariaLabel || '');\n        this.selectList.getHTMLElement().setAttribute('aria-expanded', 'true');\n        this.styleList();\n    }\n    // List methods\n    // List mouse controller - active exit, select option, fire onDidSelect if change, return focus to parent select\n    // Also takes in touchend events\n    onPointerUp(e) {\n        if (!this.selectList.length) {\n            return;\n        }\n        dom.EventHelper.stop(e);\n        const target = e.target;\n        if (!target) {\n            return;\n        }\n        // Check our mouse event is on an option (not scrollbar)\n        if (target.classList.contains('slider')) {\n            return;\n        }\n        const listRowElement = target.closest('.monaco-list-row');\n        if (!listRowElement) {\n            return;\n        }\n        const index = Number(listRowElement.getAttribute('data-index'));\n        const disabled = listRowElement.classList.contains('option-disabled');\n        // Ignore mouse selection of disabled options\n        if (index >= 0 && index < this.options.length && !disabled) {\n            this.selected = index;\n            this.select(this.selected);\n            this.selectList.setFocus([this.selected]);\n            this.selectList.reveal(this.selectList.getFocus()[0]);\n            // Only fire if selection change\n            if (this.selected !== this._currentSelection) {\n                // Set current = selected\n                this._currentSelection = this.selected;\n                this._onDidSelect.fire({\n                    index: this.selectElement.selectedIndex,\n                    selected: this.options[this.selected].text\n                });\n                if (!!this.options[this.selected] && !!this.options[this.selected].text) {\n                    this.setTitle(this.options[this.selected].text);\n                }\n            }\n            this.hideSelectDropDown(true);\n        }\n    }\n    // List Exit - passive - implicit no selection change, hide drop-down\n    onListBlur() {\n        if (this._sticky) {\n            return;\n        }\n        if (this.selected !== this._currentSelection) {\n            // Reset selected to current if no change\n            this.select(this._currentSelection);\n        }\n        this.hideSelectDropDown(false);\n    }\n    renderDescriptionMarkdown(text, actionHandler) {\n        const cleanRenderedMarkdown = (element) => {\n            for (let i = 0; i < element.childNodes.length; i++) {\n                const child = element.childNodes.item(i);\n                const tagName = child.tagName && child.tagName.toLowerCase();\n                if (tagName === 'img') {\n                    element.removeChild(child);\n                }\n                else {\n                    cleanRenderedMarkdown(child);\n                }\n            }\n        };\n        const rendered = renderMarkdown({ value: text, supportThemeIcons: true }, { actionHandler });\n        rendered.element.classList.add('select-box-description-markdown');\n        cleanRenderedMarkdown(rendered.element);\n        return rendered.element;\n    }\n    // List Focus Change - passive - update details pane with newly focused element's data\n    onListFocus(e) {\n        // Skip during initial layout\n        if (!this._isVisible || !this._hasDetails) {\n            return;\n        }\n        this.updateDetail(e.indexes[0]);\n    }\n    updateDetail(selectedIndex) {\n        var _a, _b;\n        this.selectionDetailsPane.innerText = '';\n        const option = this.options[selectedIndex];\n        const description = (_a = option === null || option === void 0 ? void 0 : option.description) !== null && _a !== void 0 ? _a : '';\n        const descriptionIsMarkdown = (_b = option === null || option === void 0 ? void 0 : option.descriptionIsMarkdown) !== null && _b !== void 0 ? _b : false;\n        if (description) {\n            if (descriptionIsMarkdown) {\n                const actionHandler = option.descriptionMarkdownActionHandler;\n                this.selectionDetailsPane.appendChild(this.renderDescriptionMarkdown(description, actionHandler));\n            }\n            else {\n                this.selectionDetailsPane.innerText = description;\n            }\n            this.selectionDetailsPane.style.display = 'block';\n        }\n        else {\n            this.selectionDetailsPane.style.display = 'none';\n        }\n        // Avoid recursion\n        this._skipLayout = true;\n        this.contextViewProvider.layout();\n        this._skipLayout = false;\n    }\n    // List keyboard controller\n    // List exit - active - hide ContextView dropdown, reset selection, return focus to parent select\n    onEscape(e) {\n        dom.EventHelper.stop(e);\n        // Reset selection to value when opened\n        this.select(this._currentSelection);\n        this.hideSelectDropDown(true);\n    }\n    // List exit - active - hide ContextView dropdown, return focus to parent select, fire onDidSelect if change\n    onEnter(e) {\n        dom.EventHelper.stop(e);\n        // Only fire if selection change\n        if (this.selected !== this._currentSelection) {\n            this._currentSelection = this.selected;\n            this._onDidSelect.fire({\n                index: this.selectElement.selectedIndex,\n                selected: this.options[this.selected].text\n            });\n            if (!!this.options[this.selected] && !!this.options[this.selected].text) {\n                this.setTitle(this.options[this.selected].text);\n            }\n        }\n        this.hideSelectDropDown(true);\n    }\n    // List navigation - have to handle a disabled option (jump over)\n    onDownArrow(e) {\n        if (this.selected < this.options.length - 1) {\n            dom.EventHelper.stop(e, true);\n            // Skip disabled options\n            const nextOptionDisabled = this.options[this.selected + 1].isDisabled;\n            if (nextOptionDisabled && this.options.length > this.selected + 2) {\n                this.selected += 2;\n            }\n            else if (nextOptionDisabled) {\n                return;\n            }\n            else {\n                this.selected++;\n            }\n            // Set focus/selection - only fire event when closing drop-down or on blur\n            this.select(this.selected);\n            this.selectList.setFocus([this.selected]);\n            this.selectList.reveal(this.selectList.getFocus()[0]);\n        }\n    }\n    onUpArrow(e) {\n        if (this.selected > 0) {\n            dom.EventHelper.stop(e, true);\n            // Skip disabled options\n            const previousOptionDisabled = this.options[this.selected - 1].isDisabled;\n            if (previousOptionDisabled && this.selected > 1) {\n                this.selected -= 2;\n            }\n            else {\n                this.selected--;\n            }\n            // Set focus/selection - only fire event when closing drop-down or on blur\n            this.select(this.selected);\n            this.selectList.setFocus([this.selected]);\n            this.selectList.reveal(this.selectList.getFocus()[0]);\n        }\n    }\n    onPageUp(e) {\n        dom.EventHelper.stop(e);\n        this.selectList.focusPreviousPage();\n        // Allow scrolling to settle\n        setTimeout(() => {\n            this.selected = this.selectList.getFocus()[0];\n            // Shift selection down if we land on a disabled option\n            if (this.options[this.selected].isDisabled && this.selected < this.options.length - 1) {\n                this.selected++;\n                this.selectList.setFocus([this.selected]);\n            }\n            this.selectList.reveal(this.selected);\n            this.select(this.selected);\n        }, 1);\n    }\n    onPageDown(e) {\n        dom.EventHelper.stop(e);\n        this.selectList.focusNextPage();\n        // Allow scrolling to settle\n        setTimeout(() => {\n            this.selected = this.selectList.getFocus()[0];\n            // Shift selection up if we land on a disabled option\n            if (this.options[this.selected].isDisabled && this.selected > 0) {\n                this.selected--;\n                this.selectList.setFocus([this.selected]);\n            }\n            this.selectList.reveal(this.selected);\n            this.select(this.selected);\n        }, 1);\n    }\n    onHome(e) {\n        dom.EventHelper.stop(e);\n        if (this.options.length < 2) {\n            return;\n        }\n        this.selected = 0;\n        if (this.options[this.selected].isDisabled && this.selected > 1) {\n            this.selected++;\n        }\n        this.selectList.setFocus([this.selected]);\n        this.selectList.reveal(this.selected);\n        this.select(this.selected);\n    }\n    onEnd(e) {\n        dom.EventHelper.stop(e);\n        if (this.options.length < 2) {\n            return;\n        }\n        this.selected = this.options.length - 1;\n        if (this.options[this.selected].isDisabled && this.selected > 1) {\n            this.selected--;\n        }\n        this.selectList.setFocus([this.selected]);\n        this.selectList.reveal(this.selected);\n        this.select(this.selected);\n    }\n    // Mimic option first character navigation of native select\n    onCharacter(e) {\n        const ch = KeyCodeUtils.toString(e.keyCode);\n        let optionIndex = -1;\n        for (let i = 0; i < this.options.length - 1; i++) {\n            optionIndex = (i + this.selected + 1) % this.options.length;\n            if (this.options[optionIndex].text.charAt(0).toUpperCase() === ch && !this.options[optionIndex].isDisabled) {\n                this.select(optionIndex);\n                this.selectList.setFocus([optionIndex]);\n                this.selectList.reveal(this.selectList.getFocus()[0]);\n                dom.EventHelper.stop(e);\n                break;\n            }\n        }\n    }\n    dispose() {\n        this.hideSelectDropDown(false);\n        super.dispose();\n    }\n}\nSelectBoxList.DEFAULT_DROPDOWN_MINIMUM_BOTTOM_MARGIN = 32;\nSelectBoxList.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN = 2;\nSelectBoxList.DEFAULT_MINIMUM_VISIBLE_OPTIONS = 3;\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/selectBox/selectBoxNative.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../dom.js';\nimport { EventType, Gesture } from '../../touch.js';\nimport * as arrays from '../../../common/arrays.js';\nimport { Emitter } from '../../../common/event.js';\nimport { Disposable } from '../../../common/lifecycle.js';\nimport { isMacintosh } from '../../../common/platform.js';\nexport class SelectBoxNative extends Disposable {\n    constructor(options, selected, styles, selectBoxOptions) {\n        super();\n        this.selected = 0;\n        this.selectBoxOptions = selectBoxOptions || Object.create(null);\n        this.options = [];\n        this.selectElement = document.createElement('select');\n        this.selectElement.className = 'monaco-select-box';\n        if (typeof this.selectBoxOptions.ariaLabel === 'string') {\n            this.selectElement.setAttribute('aria-label', this.selectBoxOptions.ariaLabel);\n        }\n        if (typeof this.selectBoxOptions.ariaDescription === 'string') {\n            this.selectElement.setAttribute('aria-description', this.selectBoxOptions.ariaDescription);\n        }\n        this._onDidSelect = this._register(new Emitter());\n        this.styles = styles;\n        this.registerListeners();\n        this.setOptions(options, selected);\n    }\n    registerListeners() {\n        this._register(Gesture.addTarget(this.selectElement));\n        [EventType.Tap].forEach(eventType => {\n            this._register(dom.addDisposableListener(this.selectElement, eventType, (e) => {\n                this.selectElement.focus();\n            }));\n        });\n        this._register(dom.addStandardDisposableListener(this.selectElement, 'click', (e) => {\n            dom.EventHelper.stop(e, true);\n        }));\n        this._register(dom.addStandardDisposableListener(this.selectElement, 'change', (e) => {\n            this.selectElement.title = e.target.value;\n            this._onDidSelect.fire({\n                index: e.target.selectedIndex,\n                selected: e.target.value\n            });\n        }));\n        this._register(dom.addStandardDisposableListener(this.selectElement, 'keydown', (e) => {\n            let showSelect = false;\n            if (isMacintosh) {\n                if (e.keyCode === 18 /* KeyCode.DownArrow */ || e.keyCode === 16 /* KeyCode.UpArrow */ || e.keyCode === 10 /* KeyCode.Space */) {\n                    showSelect = true;\n                }\n            }\n            else {\n                if (e.keyCode === 18 /* KeyCode.DownArrow */ && e.altKey || e.keyCode === 10 /* KeyCode.Space */ || e.keyCode === 3 /* KeyCode.Enter */) {\n                    showSelect = true;\n                }\n            }\n            if (showSelect) {\n                // Space, Enter, is used to expand select box, do not propagate it (prevent action bar action run)\n                e.stopPropagation();\n            }\n        }));\n    }\n    get onDidSelect() {\n        return this._onDidSelect.event;\n    }\n    setOptions(options, selected) {\n        if (!this.options || !arrays.equals(this.options, options)) {\n            this.options = options;\n            this.selectElement.options.length = 0;\n            this.options.forEach((option, index) => {\n                this.selectElement.add(this.createOption(option.text, index, option.isDisabled));\n            });\n        }\n        if (selected !== undefined) {\n            this.select(selected);\n        }\n    }\n    select(index) {\n        if (this.options.length === 0) {\n            this.selected = 0;\n        }\n        else if (index >= 0 && index < this.options.length) {\n            this.selected = index;\n        }\n        else if (index > this.options.length - 1) {\n            // Adjust index to end of list\n            // This could make client out of sync with the select\n            this.select(this.options.length - 1);\n        }\n        else if (this.selected < 0) {\n            this.selected = 0;\n        }\n        this.selectElement.selectedIndex = this.selected;\n        if ((this.selected < this.options.length) && typeof this.options[this.selected].text === 'string') {\n            this.selectElement.title = this.options[this.selected].text;\n        }\n        else {\n            this.selectElement.title = '';\n        }\n    }\n    focus() {\n        if (this.selectElement) {\n            this.selectElement.tabIndex = 0;\n            this.selectElement.focus();\n        }\n    }\n    blur() {\n        if (this.selectElement) {\n            this.selectElement.tabIndex = -1;\n            this.selectElement.blur();\n        }\n    }\n    setFocusable(focusable) {\n        this.selectElement.tabIndex = focusable ? 0 : -1;\n    }\n    render(container) {\n        container.classList.add('select-container');\n        container.appendChild(this.selectElement);\n        this.setOptions(this.options, this.selected);\n        this.applyStyles();\n    }\n    applyStyles() {\n        var _a, _b, _c;\n        // Style native select\n        if (this.selectElement) {\n            this.selectElement.style.backgroundColor = (_a = this.styles.selectBackground) !== null && _a !== void 0 ? _a : '';\n            this.selectElement.style.color = (_b = this.styles.selectForeground) !== null && _b !== void 0 ? _b : '';\n            this.selectElement.style.borderColor = (_c = this.styles.selectBorder) !== null && _c !== void 0 ? _c : '';\n        }\n    }\n    createOption(value, index, disabled) {\n        const option = document.createElement('option');\n        option.value = value;\n        option.text = value;\n        option.disabled = !!disabled;\n        return option;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/splitview/splitview.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-split-view2 {\n\tposition: relative;\n\twidth: 100%;\n\theight: 100%;\n}\n\n.monaco-split-view2 > .sash-container {\n\tposition: absolute;\n\twidth: 100%;\n\theight: 100%;\n\tpointer-events: none;\n}\n\n.monaco-split-view2 > .sash-container > .monaco-sash {\n\tpointer-events: initial;\n}\n\n.monaco-split-view2 > .monaco-scrollable-element {\n\twidth: 100%;\n\theight: 100%;\n}\n\n.monaco-split-view2 > .monaco-scrollable-element > .split-view-container {\n\twidth: 100%;\n\theight: 100%;\n\twhite-space: nowrap;\n\tposition: relative;\n}\n\n.monaco-split-view2 > .monaco-scrollable-element > .split-view-container > .split-view-view {\n\twhite-space: initial;\n\tposition: absolute;\n}\n\n.monaco-split-view2 > .monaco-scrollable-element > .split-view-container > .split-view-view:not(.visible) {\n\tdisplay: none;\n}\n\n.monaco-split-view2.vertical > .monaco-scrollable-element > .split-view-container > .split-view-view {\n\twidth: 100%;\n}\n\n.monaco-split-view2.horizontal > .monaco-scrollable-element > .split-view-container > .split-view-view {\n\theight: 100%;\n}\n\n.monaco-split-view2.separator-border > .monaco-scrollable-element > .split-view-container > .split-view-view:not(:first-child)::before {\n\tcontent: ' ';\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tz-index: 5;\n\tpointer-events: none;\n\tbackground-color: var(--separator-border);\n}\n\n.monaco-split-view2.separator-border.horizontal > .monaco-scrollable-element > .split-view-container > .split-view-view:not(:first-child)::before {\n\theight: 100%;\n\twidth: 1px;\n}\n\n.monaco-split-view2.separator-border.vertical > .monaco-scrollable-element > .split-view-container > .split-view-view:not(:first-child)::before {\n\theight: 1px;\n\twidth: 100%;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/splitview/splitview.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { $, addDisposableListener, append, getWindow, scheduleAtNextAnimationFrame } from '../../dom.js';\nimport { DomEmitter } from '../../event.js';\nimport { Sash } from '../sash/sash.js';\nimport { SmoothScrollableElement } from '../scrollbar/scrollableElement.js';\nimport { pushToEnd, pushToStart, range } from '../../../common/arrays.js';\nimport { Color } from '../../../common/color.js';\nimport { Emitter, Event } from '../../../common/event.js';\nimport { combinedDisposable, Disposable, dispose, toDisposable } from '../../../common/lifecycle.js';\nimport { clamp } from '../../../common/numbers.js';\nimport { Scrollable } from '../../../common/scrollable.js';\nimport * as types from '../../../common/types.js';\nimport './splitview.css';\nconst defaultStyles = {\n    separatorBorder: Color.transparent\n};\nclass ViewItem {\n    set size(size) {\n        this._size = size;\n    }\n    get size() {\n        return this._size;\n    }\n    get visible() {\n        return typeof this._cachedVisibleSize === 'undefined';\n    }\n    setVisible(visible, size) {\n        var _a, _b;\n        if (visible === this.visible) {\n            return;\n        }\n        if (visible) {\n            this.size = clamp(this._cachedVisibleSize, this.viewMinimumSize, this.viewMaximumSize);\n            this._cachedVisibleSize = undefined;\n        }\n        else {\n            this._cachedVisibleSize = typeof size === 'number' ? size : this.size;\n            this.size = 0;\n        }\n        this.container.classList.toggle('visible', visible);\n        try {\n            (_b = (_a = this.view).setVisible) === null || _b === void 0 ? void 0 : _b.call(_a, visible);\n        }\n        catch (e) {\n            console.error('Splitview: Failed to set visible view');\n            console.error(e);\n        }\n    }\n    get minimumSize() { return this.visible ? this.view.minimumSize : 0; }\n    get viewMinimumSize() { return this.view.minimumSize; }\n    get maximumSize() { return this.visible ? this.view.maximumSize : 0; }\n    get viewMaximumSize() { return this.view.maximumSize; }\n    get priority() { return this.view.priority; }\n    get proportionalLayout() { var _a; return (_a = this.view.proportionalLayout) !== null && _a !== void 0 ? _a : true; }\n    get snap() { return !!this.view.snap; }\n    set enabled(enabled) {\n        this.container.style.pointerEvents = enabled ? '' : 'none';\n    }\n    constructor(container, view, size, disposable) {\n        this.container = container;\n        this.view = view;\n        this.disposable = disposable;\n        this._cachedVisibleSize = undefined;\n        if (typeof size === 'number') {\n            this._size = size;\n            this._cachedVisibleSize = undefined;\n            container.classList.add('visible');\n        }\n        else {\n            this._size = 0;\n            this._cachedVisibleSize = size.cachedVisibleSize;\n        }\n    }\n    layout(offset, layoutContext) {\n        this.layoutContainer(offset);\n        try {\n            this.view.layout(this.size, offset, layoutContext);\n        }\n        catch (e) {\n            console.error('Splitview: Failed to layout view');\n            console.error(e);\n        }\n    }\n    dispose() {\n        this.disposable.dispose();\n    }\n}\nclass VerticalViewItem extends ViewItem {\n    layoutContainer(offset) {\n        this.container.style.top = `${offset}px`;\n        this.container.style.height = `${this.size}px`;\n    }\n}\nclass HorizontalViewItem extends ViewItem {\n    layoutContainer(offset) {\n        this.container.style.left = `${offset}px`;\n        this.container.style.width = `${this.size}px`;\n    }\n}\nvar State;\n(function (State) {\n    State[State[\"Idle\"] = 0] = \"Idle\";\n    State[State[\"Busy\"] = 1] = \"Busy\";\n})(State || (State = {}));\nexport var Sizing;\n(function (Sizing) {\n    /**\n     * When adding or removing views, distribute the delta space among\n     * all other views.\n     */\n    Sizing.Distribute = { type: 'distribute' };\n    /**\n     * When adding or removing views, split the delta space with another\n     * specific view, indexed by the provided `index`.\n     */\n    function Split(index) { return { type: 'split', index }; }\n    Sizing.Split = Split;\n    /**\n     * When adding a view, use DistributeSizing when all pre-existing views are\n     * distributed evenly, otherwise use SplitSizing.\n     */\n    function Auto(index) { return { type: 'auto', index }; }\n    Sizing.Auto = Auto;\n    /**\n     * When adding or removing views, assume the view is invisible.\n     */\n    function Invisible(cachedVisibleSize) { return { type: 'invisible', cachedVisibleSize }; }\n    Sizing.Invisible = Invisible;\n})(Sizing || (Sizing = {}));\n/**\n * The {@link SplitView} is the UI component which implements a one dimensional\n * flex-like layout algorithm for a collection of {@link IView} instances, which\n * are essentially HTMLElement instances with the following size constraints:\n *\n * - {@link IView.minimumSize}\n * - {@link IView.maximumSize}\n * - {@link IView.priority}\n * - {@link IView.snap}\n *\n * In case the SplitView doesn't have enough size to fit all views, it will overflow\n * its content with a scrollbar.\n *\n * In between each pair of views there will be a {@link Sash} allowing the user\n * to resize the views, making sure the constraints are respected.\n *\n * An optional {@link TLayoutContext layout context type} may be used in order to\n * pass along layout contextual data from the {@link SplitView.layout} method down\n * to each view's {@link IView.layout} calls.\n *\n * Features:\n * - Flex-like layout algorithm\n * - Snap support\n * - Orthogonal sash support, for corner sashes\n * - View hide/show support\n * - View swap/move support\n * - Alt key modifier behavior, macOS style\n */\nexport class SplitView extends Disposable {\n    get orthogonalStartSash() { return this._orthogonalStartSash; }\n    get orthogonalEndSash() { return this._orthogonalEndSash; }\n    get startSnappingEnabled() { return this._startSnappingEnabled; }\n    get endSnappingEnabled() { return this._endSnappingEnabled; }\n    /**\n     * A reference to a sash, perpendicular to all sashes in this {@link SplitView},\n     * located at the left- or top-most side of the SplitView.\n     * Corner sashes will be created automatically at the intersections.\n     */\n    set orthogonalStartSash(sash) {\n        for (const sashItem of this.sashItems) {\n            sashItem.sash.orthogonalStartSash = sash;\n        }\n        this._orthogonalStartSash = sash;\n    }\n    /**\n     * A reference to a sash, perpendicular to all sashes in this {@link SplitView},\n     * located at the right- or bottom-most side of the SplitView.\n     * Corner sashes will be created automatically at the intersections.\n     */\n    set orthogonalEndSash(sash) {\n        for (const sashItem of this.sashItems) {\n            sashItem.sash.orthogonalEndSash = sash;\n        }\n        this._orthogonalEndSash = sash;\n    }\n    /**\n     * Enable/disable snapping at the beginning of this {@link SplitView}.\n     */\n    set startSnappingEnabled(startSnappingEnabled) {\n        if (this._startSnappingEnabled === startSnappingEnabled) {\n            return;\n        }\n        this._startSnappingEnabled = startSnappingEnabled;\n        this.updateSashEnablement();\n    }\n    /**\n     * Enable/disable snapping at the end of this {@link SplitView}.\n     */\n    set endSnappingEnabled(endSnappingEnabled) {\n        if (this._endSnappingEnabled === endSnappingEnabled) {\n            return;\n        }\n        this._endSnappingEnabled = endSnappingEnabled;\n        this.updateSashEnablement();\n    }\n    /**\n     * Create a new {@link SplitView} instance.\n     */\n    constructor(container, options = {}) {\n        var _a, _b, _c, _d, _e;\n        super();\n        this.size = 0;\n        this._contentSize = 0;\n        this.proportions = undefined;\n        this.viewItems = [];\n        this.sashItems = []; // used in tests\n        this.state = State.Idle;\n        this._onDidSashChange = this._register(new Emitter());\n        this._onDidSashReset = this._register(new Emitter());\n        this._startSnappingEnabled = true;\n        this._endSnappingEnabled = true;\n        /**\n         * Fires whenever the user resizes a {@link Sash sash}.\n         */\n        this.onDidSashChange = this._onDidSashChange.event;\n        /**\n         * Fires whenever the user double clicks a {@link Sash sash}.\n         */\n        this.onDidSashReset = this._onDidSashReset.event;\n        this.orientation = (_a = options.orientation) !== null && _a !== void 0 ? _a : 0 /* Orientation.VERTICAL */;\n        this.inverseAltBehavior = (_b = options.inverseAltBehavior) !== null && _b !== void 0 ? _b : false;\n        this.proportionalLayout = (_c = options.proportionalLayout) !== null && _c !== void 0 ? _c : true;\n        this.getSashOrthogonalSize = options.getSashOrthogonalSize;\n        this.el = document.createElement('div');\n        this.el.classList.add('monaco-split-view2');\n        this.el.classList.add(this.orientation === 0 /* Orientation.VERTICAL */ ? 'vertical' : 'horizontal');\n        container.appendChild(this.el);\n        this.sashContainer = append(this.el, $('.sash-container'));\n        this.viewContainer = $('.split-view-container');\n        this.scrollable = this._register(new Scrollable({\n            forceIntegerValues: true,\n            smoothScrollDuration: 125,\n            scheduleAtNextAnimationFrame: callback => scheduleAtNextAnimationFrame(getWindow(this.el), callback),\n        }));\n        this.scrollableElement = this._register(new SmoothScrollableElement(this.viewContainer, {\n            vertical: this.orientation === 0 /* Orientation.VERTICAL */ ? ((_d = options.scrollbarVisibility) !== null && _d !== void 0 ? _d : 1 /* ScrollbarVisibility.Auto */) : 2 /* ScrollbarVisibility.Hidden */,\n            horizontal: this.orientation === 1 /* Orientation.HORIZONTAL */ ? ((_e = options.scrollbarVisibility) !== null && _e !== void 0 ? _e : 1 /* ScrollbarVisibility.Auto */) : 2 /* ScrollbarVisibility.Hidden */\n        }, this.scrollable));\n        // https://github.com/microsoft/vscode/issues/157737\n        const onDidScrollViewContainer = this._register(new DomEmitter(this.viewContainer, 'scroll')).event;\n        this._register(onDidScrollViewContainer(_ => {\n            const position = this.scrollableElement.getScrollPosition();\n            const scrollLeft = Math.abs(this.viewContainer.scrollLeft - position.scrollLeft) <= 1 ? undefined : this.viewContainer.scrollLeft;\n            const scrollTop = Math.abs(this.viewContainer.scrollTop - position.scrollTop) <= 1 ? undefined : this.viewContainer.scrollTop;\n            if (scrollLeft !== undefined || scrollTop !== undefined) {\n                this.scrollableElement.setScrollPosition({ scrollLeft, scrollTop });\n            }\n        }));\n        this.onDidScroll = this.scrollableElement.onScroll;\n        this._register(this.onDidScroll(e => {\n            if (e.scrollTopChanged) {\n                this.viewContainer.scrollTop = e.scrollTop;\n            }\n            if (e.scrollLeftChanged) {\n                this.viewContainer.scrollLeft = e.scrollLeft;\n            }\n        }));\n        append(this.el, this.scrollableElement.getDomNode());\n        this.style(options.styles || defaultStyles);\n        // We have an existing set of view, add them now\n        if (options.descriptor) {\n            this.size = options.descriptor.size;\n            options.descriptor.views.forEach((viewDescriptor, index) => {\n                const sizing = types.isUndefined(viewDescriptor.visible) || viewDescriptor.visible ? viewDescriptor.size : { type: 'invisible', cachedVisibleSize: viewDescriptor.size };\n                const view = viewDescriptor.view;\n                this.doAddView(view, sizing, index, true);\n            });\n            // Initialize content size and proportions for first layout\n            this._contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);\n            this.saveProportions();\n        }\n    }\n    style(styles) {\n        if (styles.separatorBorder.isTransparent()) {\n            this.el.classList.remove('separator-border');\n            this.el.style.removeProperty('--separator-border');\n        }\n        else {\n            this.el.classList.add('separator-border');\n            this.el.style.setProperty('--separator-border', styles.separatorBorder.toString());\n        }\n    }\n    /**\n     * Add a {@link IView view} to this {@link SplitView}.\n     *\n     * @param view The view to add.\n     * @param size Either a fixed size, or a dynamic {@link Sizing} strategy.\n     * @param index The index to insert the view on.\n     * @param skipLayout Whether layout should be skipped.\n     */\n    addView(view, size, index = this.viewItems.length, skipLayout) {\n        this.doAddView(view, size, index, skipLayout);\n    }\n    /**\n     * Layout the {@link SplitView}.\n     *\n     * @param size The entire size of the {@link SplitView}.\n     * @param layoutContext An optional layout context to pass along to {@link IView views}.\n     */\n    layout(size, layoutContext) {\n        const previousSize = Math.max(this.size, this._contentSize);\n        this.size = size;\n        this.layoutContext = layoutContext;\n        if (!this.proportions) {\n            const indexes = range(this.viewItems.length);\n            const lowPriorityIndexes = indexes.filter(i => this.viewItems[i].priority === 1 /* LayoutPriority.Low */);\n            const highPriorityIndexes = indexes.filter(i => this.viewItems[i].priority === 2 /* LayoutPriority.High */);\n            this.resize(this.viewItems.length - 1, size - previousSize, undefined, lowPriorityIndexes, highPriorityIndexes);\n        }\n        else {\n            let total = 0;\n            for (let i = 0; i < this.viewItems.length; i++) {\n                const item = this.viewItems[i];\n                const proportion = this.proportions[i];\n                if (typeof proportion === 'number') {\n                    total += proportion;\n                }\n                else {\n                    size -= item.size;\n                }\n            }\n            for (let i = 0; i < this.viewItems.length; i++) {\n                const item = this.viewItems[i];\n                const proportion = this.proportions[i];\n                if (typeof proportion === 'number' && total > 0) {\n                    item.size = clamp(Math.round(proportion * size / total), item.minimumSize, item.maximumSize);\n                }\n            }\n        }\n        this.distributeEmptySpace();\n        this.layoutViews();\n    }\n    saveProportions() {\n        if (this.proportionalLayout && this._contentSize > 0) {\n            this.proportions = this.viewItems.map(v => v.proportionalLayout && v.visible ? v.size / this._contentSize : undefined);\n        }\n    }\n    onSashStart({ sash, start, alt }) {\n        for (const item of this.viewItems) {\n            item.enabled = false;\n        }\n        const index = this.sashItems.findIndex(item => item.sash === sash);\n        // This way, we can press Alt while we resize a sash, macOS style!\n        const disposable = combinedDisposable(addDisposableListener(this.el.ownerDocument.body, 'keydown', e => resetSashDragState(this.sashDragState.current, e.altKey)), addDisposableListener(this.el.ownerDocument.body, 'keyup', () => resetSashDragState(this.sashDragState.current, false)));\n        const resetSashDragState = (start, alt) => {\n            const sizes = this.viewItems.map(i => i.size);\n            let minDelta = Number.NEGATIVE_INFINITY;\n            let maxDelta = Number.POSITIVE_INFINITY;\n            if (this.inverseAltBehavior) {\n                alt = !alt;\n            }\n            if (alt) {\n                // When we're using the last sash with Alt, we're resizing\n                // the view to the left/up, instead of right/down as usual\n                // Thus, we must do the inverse of the usual\n                const isLastSash = index === this.sashItems.length - 1;\n                if (isLastSash) {\n                    const viewItem = this.viewItems[index];\n                    minDelta = (viewItem.minimumSize - viewItem.size) / 2;\n                    maxDelta = (viewItem.maximumSize - viewItem.size) / 2;\n                }\n                else {\n                    const viewItem = this.viewItems[index + 1];\n                    minDelta = (viewItem.size - viewItem.maximumSize) / 2;\n                    maxDelta = (viewItem.size - viewItem.minimumSize) / 2;\n                }\n            }\n            let snapBefore;\n            let snapAfter;\n            if (!alt) {\n                const upIndexes = range(index, -1);\n                const downIndexes = range(index + 1, this.viewItems.length);\n                const minDeltaUp = upIndexes.reduce((r, i) => r + (this.viewItems[i].minimumSize - sizes[i]), 0);\n                const maxDeltaUp = upIndexes.reduce((r, i) => r + (this.viewItems[i].viewMaximumSize - sizes[i]), 0);\n                const maxDeltaDown = downIndexes.length === 0 ? Number.POSITIVE_INFINITY : downIndexes.reduce((r, i) => r + (sizes[i] - this.viewItems[i].minimumSize), 0);\n                const minDeltaDown = downIndexes.length === 0 ? Number.NEGATIVE_INFINITY : downIndexes.reduce((r, i) => r + (sizes[i] - this.viewItems[i].viewMaximumSize), 0);\n                const minDelta = Math.max(minDeltaUp, minDeltaDown);\n                const maxDelta = Math.min(maxDeltaDown, maxDeltaUp);\n                const snapBeforeIndex = this.findFirstSnapIndex(upIndexes);\n                const snapAfterIndex = this.findFirstSnapIndex(downIndexes);\n                if (typeof snapBeforeIndex === 'number') {\n                    const viewItem = this.viewItems[snapBeforeIndex];\n                    const halfSize = Math.floor(viewItem.viewMinimumSize / 2);\n                    snapBefore = {\n                        index: snapBeforeIndex,\n                        limitDelta: viewItem.visible ? minDelta - halfSize : minDelta + halfSize,\n                        size: viewItem.size\n                    };\n                }\n                if (typeof snapAfterIndex === 'number') {\n                    const viewItem = this.viewItems[snapAfterIndex];\n                    const halfSize = Math.floor(viewItem.viewMinimumSize / 2);\n                    snapAfter = {\n                        index: snapAfterIndex,\n                        limitDelta: viewItem.visible ? maxDelta + halfSize : maxDelta - halfSize,\n                        size: viewItem.size\n                    };\n                }\n            }\n            this.sashDragState = { start, current: start, index, sizes, minDelta, maxDelta, alt, snapBefore, snapAfter, disposable };\n        };\n        resetSashDragState(start, alt);\n    }\n    onSashChange({ current }) {\n        const { index, start, sizes, alt, minDelta, maxDelta, snapBefore, snapAfter } = this.sashDragState;\n        this.sashDragState.current = current;\n        const delta = current - start;\n        const newDelta = this.resize(index, delta, sizes, undefined, undefined, minDelta, maxDelta, snapBefore, snapAfter);\n        if (alt) {\n            const isLastSash = index === this.sashItems.length - 1;\n            const newSizes = this.viewItems.map(i => i.size);\n            const viewItemIndex = isLastSash ? index : index + 1;\n            const viewItem = this.viewItems[viewItemIndex];\n            const newMinDelta = viewItem.size - viewItem.maximumSize;\n            const newMaxDelta = viewItem.size - viewItem.minimumSize;\n            const resizeIndex = isLastSash ? index - 1 : index + 1;\n            this.resize(resizeIndex, -newDelta, newSizes, undefined, undefined, newMinDelta, newMaxDelta);\n        }\n        this.distributeEmptySpace();\n        this.layoutViews();\n    }\n    onSashEnd(index) {\n        this._onDidSashChange.fire(index);\n        this.sashDragState.disposable.dispose();\n        this.saveProportions();\n        for (const item of this.viewItems) {\n            item.enabled = true;\n        }\n    }\n    onViewChange(item, size) {\n        const index = this.viewItems.indexOf(item);\n        if (index < 0 || index >= this.viewItems.length) {\n            return;\n        }\n        size = typeof size === 'number' ? size : item.size;\n        size = clamp(size, item.minimumSize, item.maximumSize);\n        if (this.inverseAltBehavior && index > 0) {\n            // In this case, we want the view to grow or shrink both sides equally\n            // so we just resize the \"left\" side by half and let `resize` do the clamping magic\n            this.resize(index - 1, Math.floor((item.size - size) / 2));\n            this.distributeEmptySpace();\n            this.layoutViews();\n        }\n        else {\n            item.size = size;\n            this.relayout([index], undefined);\n        }\n    }\n    /**\n     * Resize a {@link IView view} within the {@link SplitView}.\n     *\n     * @param index The {@link IView view} index.\n     * @param size The {@link IView view} size.\n     */\n    resizeView(index, size) {\n        if (index < 0 || index >= this.viewItems.length) {\n            return;\n        }\n        if (this.state !== State.Idle) {\n            throw new Error('Cant modify splitview');\n        }\n        this.state = State.Busy;\n        try {\n            const indexes = range(this.viewItems.length).filter(i => i !== index);\n            const lowPriorityIndexes = [...indexes.filter(i => this.viewItems[i].priority === 1 /* LayoutPriority.Low */), index];\n            const highPriorityIndexes = indexes.filter(i => this.viewItems[i].priority === 2 /* LayoutPriority.High */);\n            const item = this.viewItems[index];\n            size = Math.round(size);\n            size = clamp(size, item.minimumSize, Math.min(item.maximumSize, this.size));\n            item.size = size;\n            this.relayout(lowPriorityIndexes, highPriorityIndexes);\n        }\n        finally {\n            this.state = State.Idle;\n        }\n    }\n    /**\n     * Distribute the entire {@link SplitView} size among all {@link IView views}.\n     */\n    distributeViewSizes() {\n        const flexibleViewItems = [];\n        let flexibleSize = 0;\n        for (const item of this.viewItems) {\n            if (item.maximumSize - item.minimumSize > 0) {\n                flexibleViewItems.push(item);\n                flexibleSize += item.size;\n            }\n        }\n        const size = Math.floor(flexibleSize / flexibleViewItems.length);\n        for (const item of flexibleViewItems) {\n            item.size = clamp(size, item.minimumSize, item.maximumSize);\n        }\n        const indexes = range(this.viewItems.length);\n        const lowPriorityIndexes = indexes.filter(i => this.viewItems[i].priority === 1 /* LayoutPriority.Low */);\n        const highPriorityIndexes = indexes.filter(i => this.viewItems[i].priority === 2 /* LayoutPriority.High */);\n        this.relayout(lowPriorityIndexes, highPriorityIndexes);\n    }\n    /**\n     * Returns the size of a {@link IView view}.\n     */\n    getViewSize(index) {\n        if (index < 0 || index >= this.viewItems.length) {\n            return -1;\n        }\n        return this.viewItems[index].size;\n    }\n    doAddView(view, size, index = this.viewItems.length, skipLayout) {\n        if (this.state !== State.Idle) {\n            throw new Error('Cant modify splitview');\n        }\n        this.state = State.Busy;\n        try {\n            // Add view\n            const container = $('.split-view-view');\n            if (index === this.viewItems.length) {\n                this.viewContainer.appendChild(container);\n            }\n            else {\n                this.viewContainer.insertBefore(container, this.viewContainer.children.item(index));\n            }\n            const onChangeDisposable = view.onDidChange(size => this.onViewChange(item, size));\n            const containerDisposable = toDisposable(() => this.viewContainer.removeChild(container));\n            const disposable = combinedDisposable(onChangeDisposable, containerDisposable);\n            let viewSize;\n            if (typeof size === 'number') {\n                viewSize = size;\n            }\n            else {\n                if (size.type === 'auto') {\n                    if (this.areViewsDistributed()) {\n                        size = { type: 'distribute' };\n                    }\n                    else {\n                        size = { type: 'split', index: size.index };\n                    }\n                }\n                if (size.type === 'split') {\n                    viewSize = this.getViewSize(size.index) / 2;\n                }\n                else if (size.type === 'invisible') {\n                    viewSize = { cachedVisibleSize: size.cachedVisibleSize };\n                }\n                else {\n                    viewSize = view.minimumSize;\n                }\n            }\n            const item = this.orientation === 0 /* Orientation.VERTICAL */\n                ? new VerticalViewItem(container, view, viewSize, disposable)\n                : new HorizontalViewItem(container, view, viewSize, disposable);\n            this.viewItems.splice(index, 0, item);\n            // Add sash\n            if (this.viewItems.length > 1) {\n                const opts = { orthogonalStartSash: this.orthogonalStartSash, orthogonalEndSash: this.orthogonalEndSash };\n                const sash = this.orientation === 0 /* Orientation.VERTICAL */\n                    ? new Sash(this.sashContainer, { getHorizontalSashTop: s => this.getSashPosition(s), getHorizontalSashWidth: this.getSashOrthogonalSize }, { ...opts, orientation: 1 /* Orientation.HORIZONTAL */ })\n                    : new Sash(this.sashContainer, { getVerticalSashLeft: s => this.getSashPosition(s), getVerticalSashHeight: this.getSashOrthogonalSize }, { ...opts, orientation: 0 /* Orientation.VERTICAL */ });\n                const sashEventMapper = this.orientation === 0 /* Orientation.VERTICAL */\n                    ? (e) => ({ sash, start: e.startY, current: e.currentY, alt: e.altKey })\n                    : (e) => ({ sash, start: e.startX, current: e.currentX, alt: e.altKey });\n                const onStart = Event.map(sash.onDidStart, sashEventMapper);\n                const onStartDisposable = onStart(this.onSashStart, this);\n                const onChange = Event.map(sash.onDidChange, sashEventMapper);\n                const onChangeDisposable = onChange(this.onSashChange, this);\n                const onEnd = Event.map(sash.onDidEnd, () => this.sashItems.findIndex(item => item.sash === sash));\n                const onEndDisposable = onEnd(this.onSashEnd, this);\n                const onDidResetDisposable = sash.onDidReset(() => {\n                    const index = this.sashItems.findIndex(item => item.sash === sash);\n                    const upIndexes = range(index, -1);\n                    const downIndexes = range(index + 1, this.viewItems.length);\n                    const snapBeforeIndex = this.findFirstSnapIndex(upIndexes);\n                    const snapAfterIndex = this.findFirstSnapIndex(downIndexes);\n                    if (typeof snapBeforeIndex === 'number' && !this.viewItems[snapBeforeIndex].visible) {\n                        return;\n                    }\n                    if (typeof snapAfterIndex === 'number' && !this.viewItems[snapAfterIndex].visible) {\n                        return;\n                    }\n                    this._onDidSashReset.fire(index);\n                });\n                const disposable = combinedDisposable(onStartDisposable, onChangeDisposable, onEndDisposable, onDidResetDisposable, sash);\n                const sashItem = { sash, disposable };\n                this.sashItems.splice(index - 1, 0, sashItem);\n            }\n            container.appendChild(view.element);\n            let highPriorityIndexes;\n            if (typeof size !== 'number' && size.type === 'split') {\n                highPriorityIndexes = [size.index];\n            }\n            if (!skipLayout) {\n                this.relayout([index], highPriorityIndexes);\n            }\n            if (!skipLayout && typeof size !== 'number' && size.type === 'distribute') {\n                this.distributeViewSizes();\n            }\n        }\n        finally {\n            this.state = State.Idle;\n        }\n    }\n    relayout(lowPriorityIndexes, highPriorityIndexes) {\n        const contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);\n        this.resize(this.viewItems.length - 1, this.size - contentSize, undefined, lowPriorityIndexes, highPriorityIndexes);\n        this.distributeEmptySpace();\n        this.layoutViews();\n        this.saveProportions();\n    }\n    resize(index, delta, sizes = this.viewItems.map(i => i.size), lowPriorityIndexes, highPriorityIndexes, overloadMinDelta = Number.NEGATIVE_INFINITY, overloadMaxDelta = Number.POSITIVE_INFINITY, snapBefore, snapAfter) {\n        if (index < 0 || index >= this.viewItems.length) {\n            return 0;\n        }\n        const upIndexes = range(index, -1);\n        const downIndexes = range(index + 1, this.viewItems.length);\n        if (highPriorityIndexes) {\n            for (const index of highPriorityIndexes) {\n                pushToStart(upIndexes, index);\n                pushToStart(downIndexes, index);\n            }\n        }\n        if (lowPriorityIndexes) {\n            for (const index of lowPriorityIndexes) {\n                pushToEnd(upIndexes, index);\n                pushToEnd(downIndexes, index);\n            }\n        }\n        const upItems = upIndexes.map(i => this.viewItems[i]);\n        const upSizes = upIndexes.map(i => sizes[i]);\n        const downItems = downIndexes.map(i => this.viewItems[i]);\n        const downSizes = downIndexes.map(i => sizes[i]);\n        const minDeltaUp = upIndexes.reduce((r, i) => r + (this.viewItems[i].minimumSize - sizes[i]), 0);\n        const maxDeltaUp = upIndexes.reduce((r, i) => r + (this.viewItems[i].maximumSize - sizes[i]), 0);\n        const maxDeltaDown = downIndexes.length === 0 ? Number.POSITIVE_INFINITY : downIndexes.reduce((r, i) => r + (sizes[i] - this.viewItems[i].minimumSize), 0);\n        const minDeltaDown = downIndexes.length === 0 ? Number.NEGATIVE_INFINITY : downIndexes.reduce((r, i) => r + (sizes[i] - this.viewItems[i].maximumSize), 0);\n        const minDelta = Math.max(minDeltaUp, minDeltaDown, overloadMinDelta);\n        const maxDelta = Math.min(maxDeltaDown, maxDeltaUp, overloadMaxDelta);\n        let snapped = false;\n        if (snapBefore) {\n            const snapView = this.viewItems[snapBefore.index];\n            const visible = delta >= snapBefore.limitDelta;\n            snapped = visible !== snapView.visible;\n            snapView.setVisible(visible, snapBefore.size);\n        }\n        if (!snapped && snapAfter) {\n            const snapView = this.viewItems[snapAfter.index];\n            const visible = delta < snapAfter.limitDelta;\n            snapped = visible !== snapView.visible;\n            snapView.setVisible(visible, snapAfter.size);\n        }\n        if (snapped) {\n            return this.resize(index, delta, sizes, lowPriorityIndexes, highPriorityIndexes, overloadMinDelta, overloadMaxDelta);\n        }\n        delta = clamp(delta, minDelta, maxDelta);\n        for (let i = 0, deltaUp = delta; i < upItems.length; i++) {\n            const item = upItems[i];\n            const size = clamp(upSizes[i] + deltaUp, item.minimumSize, item.maximumSize);\n            const viewDelta = size - upSizes[i];\n            deltaUp -= viewDelta;\n            item.size = size;\n        }\n        for (let i = 0, deltaDown = delta; i < downItems.length; i++) {\n            const item = downItems[i];\n            const size = clamp(downSizes[i] - deltaDown, item.minimumSize, item.maximumSize);\n            const viewDelta = size - downSizes[i];\n            deltaDown += viewDelta;\n            item.size = size;\n        }\n        return delta;\n    }\n    distributeEmptySpace(lowPriorityIndex) {\n        const contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);\n        let emptyDelta = this.size - contentSize;\n        const indexes = range(this.viewItems.length - 1, -1);\n        const lowPriorityIndexes = indexes.filter(i => this.viewItems[i].priority === 1 /* LayoutPriority.Low */);\n        const highPriorityIndexes = indexes.filter(i => this.viewItems[i].priority === 2 /* LayoutPriority.High */);\n        for (const index of highPriorityIndexes) {\n            pushToStart(indexes, index);\n        }\n        for (const index of lowPriorityIndexes) {\n            pushToEnd(indexes, index);\n        }\n        if (typeof lowPriorityIndex === 'number') {\n            pushToEnd(indexes, lowPriorityIndex);\n        }\n        for (let i = 0; emptyDelta !== 0 && i < indexes.length; i++) {\n            const item = this.viewItems[indexes[i]];\n            const size = clamp(item.size + emptyDelta, item.minimumSize, item.maximumSize);\n            const viewDelta = size - item.size;\n            emptyDelta -= viewDelta;\n            item.size = size;\n        }\n    }\n    layoutViews() {\n        // Save new content size\n        this._contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);\n        // Layout views\n        let offset = 0;\n        for (const viewItem of this.viewItems) {\n            viewItem.layout(offset, this.layoutContext);\n            offset += viewItem.size;\n        }\n        // Layout sashes\n        this.sashItems.forEach(item => item.sash.layout());\n        this.updateSashEnablement();\n        this.updateScrollableElement();\n    }\n    updateScrollableElement() {\n        if (this.orientation === 0 /* Orientation.VERTICAL */) {\n            this.scrollableElement.setScrollDimensions({\n                height: this.size,\n                scrollHeight: this._contentSize\n            });\n        }\n        else {\n            this.scrollableElement.setScrollDimensions({\n                width: this.size,\n                scrollWidth: this._contentSize\n            });\n        }\n    }\n    updateSashEnablement() {\n        let previous = false;\n        const collapsesDown = this.viewItems.map(i => previous = (i.size - i.minimumSize > 0) || previous);\n        previous = false;\n        const expandsDown = this.viewItems.map(i => previous = (i.maximumSize - i.size > 0) || previous);\n        const reverseViews = [...this.viewItems].reverse();\n        previous = false;\n        const collapsesUp = reverseViews.map(i => previous = (i.size - i.minimumSize > 0) || previous).reverse();\n        previous = false;\n        const expandsUp = reverseViews.map(i => previous = (i.maximumSize - i.size > 0) || previous).reverse();\n        let position = 0;\n        for (let index = 0; index < this.sashItems.length; index++) {\n            const { sash } = this.sashItems[index];\n            const viewItem = this.viewItems[index];\n            position += viewItem.size;\n            const min = !(collapsesDown[index] && expandsUp[index + 1]);\n            const max = !(expandsDown[index] && collapsesUp[index + 1]);\n            if (min && max) {\n                const upIndexes = range(index, -1);\n                const downIndexes = range(index + 1, this.viewItems.length);\n                const snapBeforeIndex = this.findFirstSnapIndex(upIndexes);\n                const snapAfterIndex = this.findFirstSnapIndex(downIndexes);\n                const snappedBefore = typeof snapBeforeIndex === 'number' && !this.viewItems[snapBeforeIndex].visible;\n                const snappedAfter = typeof snapAfterIndex === 'number' && !this.viewItems[snapAfterIndex].visible;\n                if (snappedBefore && collapsesUp[index] && (position > 0 || this.startSnappingEnabled)) {\n                    sash.state = 1 /* SashState.AtMinimum */;\n                }\n                else if (snappedAfter && collapsesDown[index] && (position < this._contentSize || this.endSnappingEnabled)) {\n                    sash.state = 2 /* SashState.AtMaximum */;\n                }\n                else {\n                    sash.state = 0 /* SashState.Disabled */;\n                }\n            }\n            else if (min && !max) {\n                sash.state = 1 /* SashState.AtMinimum */;\n            }\n            else if (!min && max) {\n                sash.state = 2 /* SashState.AtMaximum */;\n            }\n            else {\n                sash.state = 3 /* SashState.Enabled */;\n            }\n        }\n    }\n    getSashPosition(sash) {\n        let position = 0;\n        for (let i = 0; i < this.sashItems.length; i++) {\n            position += this.viewItems[i].size;\n            if (this.sashItems[i].sash === sash) {\n                return position;\n            }\n        }\n        return 0;\n    }\n    findFirstSnapIndex(indexes) {\n        // visible views first\n        for (const index of indexes) {\n            const viewItem = this.viewItems[index];\n            if (!viewItem.visible) {\n                continue;\n            }\n            if (viewItem.snap) {\n                return index;\n            }\n        }\n        // then, hidden views\n        for (const index of indexes) {\n            const viewItem = this.viewItems[index];\n            if (viewItem.visible && viewItem.maximumSize - viewItem.minimumSize > 0) {\n                return undefined;\n            }\n            if (!viewItem.visible && viewItem.snap) {\n                return index;\n            }\n        }\n        return undefined;\n    }\n    areViewsDistributed() {\n        let min = undefined, max = undefined;\n        for (const view of this.viewItems) {\n            min = min === undefined ? view.size : Math.min(min, view.size);\n            max = max === undefined ? view.size : Math.max(max, view.size);\n            if (max - min > 2) {\n                return false;\n            }\n        }\n        return true;\n    }\n    dispose() {\n        var _a;\n        (_a = this.sashDragState) === null || _a === void 0 ? void 0 : _a.disposable.dispose();\n        dispose(this.viewItems);\n        this.viewItems = [];\n        this.sashItems.forEach(i => i.disposable.dispose());\n        this.sashItems = [];\n        super.dispose();\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/table/table.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-table {\n\tdisplay: flex;\n\tflex-direction: column;\n\tposition: relative;\n\theight: 100%;\n\twidth: 100%;\n\twhite-space: nowrap;\n\toverflow: hidden;\n}\n\n.monaco-table > .monaco-split-view2 {\n\tborder-bottom: 1px solid transparent;\n}\n\n.monaco-table > .monaco-list {\n\tflex: 1;\n}\n\n.monaco-table-tr {\n\tdisplay: flex;\n\theight: 100%;\n}\n\n.monaco-table-th {\n\twidth: 100%;\n\theight: 100%;\n\tfont-weight: bold;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n}\n\n.monaco-table-th,\n.monaco-table-td {\n\tbox-sizing: border-box;\n\tflex-shrink: 0;\n\toverflow: hidden;\n\twhite-space: nowrap;\n\ttext-overflow: ellipsis;\n}\n\n.monaco-table > .monaco-split-view2 .monaco-sash.vertical::before {\n\tcontent: \"\";\n\tposition: absolute;\n\tleft: calc(var(--vscode-sash-size) / 2);\n\twidth: 0;\n\tborder-left: 1px solid transparent;\n}\n\n.monaco-workbench:not(.reduce-motion) .monaco-table > .monaco-split-view2,\n.monaco-workbench:not(.reduce-motion) .monaco-table > .monaco-split-view2 .monaco-sash.vertical::before {\n\ttransition: border-color 0.2s ease-out;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/table/table.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport {};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/table/tableWidget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { $, append, clearNode, createStyleSheet } from '../../dom.js';\nimport { getBaseLayerHoverDelegate } from '../hover/hoverDelegate2.js';\nimport { getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';\nimport { List, unthemedListStyles } from '../list/listWidget.js';\nimport { SplitView } from '../splitview/splitview.js';\nimport { Emitter, Event } from '../../../common/event.js';\nimport { Disposable, DisposableStore } from '../../../common/lifecycle.js';\nimport './table.css';\nclass TableListRenderer {\n    constructor(columns, renderers, getColumnSize) {\n        this.columns = columns;\n        this.getColumnSize = getColumnSize;\n        this.templateId = TableListRenderer.TemplateId;\n        this.renderedTemplates = new Set();\n        const rendererMap = new Map(renderers.map(r => [r.templateId, r]));\n        this.renderers = [];\n        for (const column of columns) {\n            const renderer = rendererMap.get(column.templateId);\n            if (!renderer) {\n                throw new Error(`Table cell renderer for template id ${column.templateId} not found.`);\n            }\n            this.renderers.push(renderer);\n        }\n    }\n    renderTemplate(container) {\n        const rowContainer = append(container, $('.monaco-table-tr'));\n        const cellContainers = [];\n        const cellTemplateData = [];\n        for (let i = 0; i < this.columns.length; i++) {\n            const renderer = this.renderers[i];\n            const cellContainer = append(rowContainer, $('.monaco-table-td', { 'data-col-index': i }));\n            cellContainer.style.width = `${this.getColumnSize(i)}px`;\n            cellContainers.push(cellContainer);\n            cellTemplateData.push(renderer.renderTemplate(cellContainer));\n        }\n        const result = { container, cellContainers, cellTemplateData };\n        this.renderedTemplates.add(result);\n        return result;\n    }\n    renderElement(element, index, templateData, height) {\n        for (let i = 0; i < this.columns.length; i++) {\n            const column = this.columns[i];\n            const cell = column.project(element);\n            const renderer = this.renderers[i];\n            renderer.renderElement(cell, index, templateData.cellTemplateData[i], height);\n        }\n    }\n    disposeElement(element, index, templateData, height) {\n        for (let i = 0; i < this.columns.length; i++) {\n            const renderer = this.renderers[i];\n            if (renderer.disposeElement) {\n                const column = this.columns[i];\n                const cell = column.project(element);\n                renderer.disposeElement(cell, index, templateData.cellTemplateData[i], height);\n            }\n        }\n    }\n    disposeTemplate(templateData) {\n        for (let i = 0; i < this.columns.length; i++) {\n            const renderer = this.renderers[i];\n            renderer.disposeTemplate(templateData.cellTemplateData[i]);\n        }\n        clearNode(templateData.container);\n        this.renderedTemplates.delete(templateData);\n    }\n    layoutColumn(index, size) {\n        for (const { cellContainers } of this.renderedTemplates) {\n            cellContainers[index].style.width = `${size}px`;\n        }\n    }\n}\nTableListRenderer.TemplateId = 'row';\nfunction asListVirtualDelegate(delegate) {\n    return {\n        getHeight(row) { return delegate.getHeight(row); },\n        getTemplateId() { return TableListRenderer.TemplateId; },\n    };\n}\nclass ColumnHeader extends Disposable {\n    get minimumSize() { var _a; return (_a = this.column.minimumWidth) !== null && _a !== void 0 ? _a : 120; }\n    get maximumSize() { var _a; return (_a = this.column.maximumWidth) !== null && _a !== void 0 ? _a : Number.POSITIVE_INFINITY; }\n    get onDidChange() { var _a; return (_a = this.column.onDidChangeWidthConstraints) !== null && _a !== void 0 ? _a : Event.None; }\n    constructor(column, index) {\n        super();\n        this.column = column;\n        this.index = index;\n        this._onDidLayout = new Emitter();\n        this.onDidLayout = this._onDidLayout.event;\n        this.element = $('.monaco-table-th', { 'data-col-index': index }, column.label);\n        if (column.tooltip) {\n            this._register(getBaseLayerHoverDelegate().setupUpdatableHover(getDefaultHoverDelegate('mouse'), this.element, column.tooltip));\n        }\n    }\n    layout(size) {\n        this._onDidLayout.fire([this.index, size]);\n    }\n}\nexport class Table {\n    get onDidChangeFocus() { return this.list.onDidChangeFocus; }\n    get onDidChangeSelection() { return this.list.onDidChangeSelection; }\n    get onDidScroll() { return this.list.onDidScroll; }\n    get onMouseDblClick() { return this.list.onMouseDblClick; }\n    get onPointer() { return this.list.onPointer; }\n    get onDidFocus() { return this.list.onDidFocus; }\n    get scrollTop() { return this.list.scrollTop; }\n    set scrollTop(scrollTop) { this.list.scrollTop = scrollTop; }\n    get scrollHeight() { return this.list.scrollHeight; }\n    get renderHeight() { return this.list.renderHeight; }\n    get onDidDispose() { return this.list.onDidDispose; }\n    constructor(user, container, virtualDelegate, columns, renderers, _options) {\n        this.virtualDelegate = virtualDelegate;\n        this.domId = `table_id_${++Table.InstanceCount}`;\n        this.disposables = new DisposableStore();\n        this.cachedWidth = 0;\n        this.cachedHeight = 0;\n        this.domNode = append(container, $(`.monaco-table.${this.domId}`));\n        const headers = columns.map((c, i) => this.disposables.add(new ColumnHeader(c, i)));\n        const descriptor = {\n            size: headers.reduce((a, b) => a + b.column.weight, 0),\n            views: headers.map(view => ({ size: view.column.weight, view }))\n        };\n        this.splitview = this.disposables.add(new SplitView(this.domNode, {\n            orientation: 1 /* Orientation.HORIZONTAL */,\n            scrollbarVisibility: 2 /* ScrollbarVisibility.Hidden */,\n            getSashOrthogonalSize: () => this.cachedHeight,\n            descriptor\n        }));\n        this.splitview.el.style.height = `${virtualDelegate.headerRowHeight}px`;\n        this.splitview.el.style.lineHeight = `${virtualDelegate.headerRowHeight}px`;\n        const renderer = new TableListRenderer(columns, renderers, i => this.splitview.getViewSize(i));\n        this.list = this.disposables.add(new List(user, this.domNode, asListVirtualDelegate(virtualDelegate), [renderer], _options));\n        Event.any(...headers.map(h => h.onDidLayout))(([index, size]) => renderer.layoutColumn(index, size), null, this.disposables);\n        this.splitview.onDidSashReset(index => {\n            const totalWeight = columns.reduce((r, c) => r + c.weight, 0);\n            const size = columns[index].weight / totalWeight * this.cachedWidth;\n            this.splitview.resizeView(index, size);\n        }, null, this.disposables);\n        this.styleElement = createStyleSheet(this.domNode);\n        this.style(unthemedListStyles);\n    }\n    updateOptions(options) {\n        this.list.updateOptions(options);\n    }\n    splice(start, deleteCount, elements = []) {\n        this.list.splice(start, deleteCount, elements);\n    }\n    getHTMLElement() {\n        return this.domNode;\n    }\n    style(styles) {\n        const content = [];\n        content.push(`.monaco-table.${this.domId} > .monaco-split-view2 .monaco-sash.vertical::before {\n\t\t\ttop: ${this.virtualDelegate.headerRowHeight + 1}px;\n\t\t\theight: calc(100% - ${this.virtualDelegate.headerRowHeight}px);\n\t\t}`);\n        this.styleElement.textContent = content.join('\\n');\n        this.list.style(styles);\n    }\n    getSelectedElements() {\n        return this.list.getSelectedElements();\n    }\n    getSelection() {\n        return this.list.getSelection();\n    }\n    getFocus() {\n        return this.list.getFocus();\n    }\n    dispose() {\n        this.disposables.dispose();\n    }\n}\nTable.InstanceCount = 0;\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/toggle/toggle.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-custom-toggle {\n\tmargin-left: 2px;\n\tfloat: left;\n\tcursor: pointer;\n\toverflow: hidden;\n\twidth: 20px;\n\theight: 20px;\n\tborder-radius: 3px;\n\tborder: 1px solid transparent;\n\tpadding: 1px;\n\tbox-sizing:\tborder-box;\n\tuser-select: none;\n\t-webkit-user-select: none;\n}\n\n.monaco-custom-toggle:hover {\n\tbackground-color: var(--vscode-inputOption-hoverBackground);\n}\n\n.hc-black .monaco-custom-toggle:hover,\n.hc-light .monaco-custom-toggle:hover {\n\tborder: 1px dashed var(--vscode-focusBorder);\n}\n\n.hc-black .monaco-custom-toggle,\n.hc-light .monaco-custom-toggle {\n\tbackground: none;\n}\n\n.hc-black .monaco-custom-toggle:hover,\n.hc-light .monaco-custom-toggle:hover {\n\tbackground: none;\n}\n\n.monaco-custom-toggle.monaco-checkbox {\n\theight: 18px;\n\twidth: 18px;\n\tborder: 1px solid transparent;\n\tborder-radius: 3px;\n\tmargin-right: 9px;\n\tmargin-left: 0px;\n\tpadding: 0px;\n\topacity: 1;\n\tbackground-size: 16px !important;\n}\n\n.monaco-action-bar .checkbox-action-item {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.monaco-action-bar .checkbox-action-item > .monaco-custom-toggle.monaco-checkbox {\n\tmargin-right: 4px;\n}\n\n.monaco-action-bar .checkbox-action-item > .checkbox-label {\n\tfont-size: 12px;\n}\n\n/* hide check when unchecked */\n.monaco-custom-toggle.monaco-checkbox:not(.checked)::before {\n\tvisibility: hidden;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/toggle/toggle.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Widget } from '../widget.js';\nimport { ThemeIcon } from '../../../common/themables.js';\nimport { Emitter } from '../../../common/event.js';\nimport './toggle.css';\nimport { getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';\nimport { getBaseLayerHoverDelegate } from '../hover/hoverDelegate2.js';\nexport const unthemedToggleStyles = {\n    inputActiveOptionBorder: '#007ACC00',\n    inputActiveOptionForeground: '#FFFFFF',\n    inputActiveOptionBackground: '#0E639C50'\n};\nexport class Toggle extends Widget {\n    constructor(opts) {\n        var _a;\n        super();\n        this._onChange = this._register(new Emitter());\n        this.onChange = this._onChange.event;\n        this._onKeyDown = this._register(new Emitter());\n        this.onKeyDown = this._onKeyDown.event;\n        this._opts = opts;\n        this._checked = this._opts.isChecked;\n        const classes = ['monaco-custom-toggle'];\n        if (this._opts.icon) {\n            this._icon = this._opts.icon;\n            classes.push(...ThemeIcon.asClassNameArray(this._icon));\n        }\n        if (this._opts.actionClassName) {\n            classes.push(...this._opts.actionClassName.split(' '));\n        }\n        if (this._checked) {\n            classes.push('checked');\n        }\n        this.domNode = document.createElement('div');\n        this._hover = this._register(getBaseLayerHoverDelegate().setupUpdatableHover((_a = opts.hoverDelegate) !== null && _a !== void 0 ? _a : getDefaultHoverDelegate('mouse'), this.domNode, this._opts.title));\n        this.domNode.classList.add(...classes);\n        if (!this._opts.notFocusable) {\n            this.domNode.tabIndex = 0;\n        }\n        this.domNode.setAttribute('role', 'checkbox');\n        this.domNode.setAttribute('aria-checked', String(this._checked));\n        this.domNode.setAttribute('aria-label', this._opts.title);\n        this.applyStyles();\n        this.onclick(this.domNode, (ev) => {\n            if (this.enabled) {\n                this.checked = !this._checked;\n                this._onChange.fire(false);\n                ev.preventDefault();\n            }\n        });\n        this._register(this.ignoreGesture(this.domNode));\n        this.onkeydown(this.domNode, (keyboardEvent) => {\n            if (keyboardEvent.keyCode === 10 /* KeyCode.Space */ || keyboardEvent.keyCode === 3 /* KeyCode.Enter */) {\n                this.checked = !this._checked;\n                this._onChange.fire(true);\n                keyboardEvent.preventDefault();\n                keyboardEvent.stopPropagation();\n                return;\n            }\n            this._onKeyDown.fire(keyboardEvent);\n        });\n    }\n    get enabled() {\n        return this.domNode.getAttribute('aria-disabled') !== 'true';\n    }\n    focus() {\n        this.domNode.focus();\n    }\n    get checked() {\n        return this._checked;\n    }\n    set checked(newIsChecked) {\n        this._checked = newIsChecked;\n        this.domNode.setAttribute('aria-checked', String(this._checked));\n        this.domNode.classList.toggle('checked', this._checked);\n        this.applyStyles();\n    }\n    width() {\n        return 2 /*margin left*/ + 2 /*border*/ + 2 /*padding*/ + 16 /* icon width */;\n    }\n    applyStyles() {\n        if (this.domNode) {\n            this.domNode.style.borderColor = (this._checked && this._opts.inputActiveOptionBorder) || '';\n            this.domNode.style.color = (this._checked && this._opts.inputActiveOptionForeground) || 'inherit';\n            this.domNode.style.backgroundColor = (this._checked && this._opts.inputActiveOptionBackground) || '';\n        }\n    }\n    enable() {\n        this.domNode.setAttribute('aria-disabled', String(false));\n    }\n    disable() {\n        this.domNode.setAttribute('aria-disabled', String(true));\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/toolbar/toolbar.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-toolbar {\n\theight: 100%;\n}\n\n.monaco-toolbar .toolbar-toggle-more {\n\tdisplay: inline-block;\n\tpadding: 0;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/toolbar/toolbar.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { ActionBar } from '../actionbar/actionbar.js';\nimport { DropdownMenuActionViewItem } from '../dropdown/dropdownActionViewItem.js';\nimport { Action, SubmenuAction } from '../../../common/actions.js';\nimport { Codicon } from '../../../common/codicons.js';\nimport { ThemeIcon } from '../../../common/themables.js';\nimport { EventMultiplexer } from '../../../common/event.js';\nimport { Disposable, DisposableStore } from '../../../common/lifecycle.js';\nimport './toolbar.css';\nimport * as nls from '../../../../nls.js';\nimport { createInstantHoverDelegate } from '../hover/hoverDelegateFactory.js';\n/**\n * A widget that combines an action bar for primary actions and a dropdown for secondary actions.\n */\nexport class ToolBar extends Disposable {\n    constructor(container, contextMenuProvider, options = { orientation: 0 /* ActionsOrientation.HORIZONTAL */ }) {\n        var _a;\n        super();\n        this.submenuActionViewItems = [];\n        this.hasSecondaryActions = false;\n        this._onDidChangeDropdownVisibility = this._register(new EventMultiplexer());\n        this.onDidChangeDropdownVisibility = this._onDidChangeDropdownVisibility.event;\n        this.disposables = this._register(new DisposableStore());\n        options.hoverDelegate = (_a = options.hoverDelegate) !== null && _a !== void 0 ? _a : this._register(createInstantHoverDelegate());\n        this.options = options;\n        this.lookupKeybindings = typeof this.options.getKeyBinding === 'function';\n        this.toggleMenuAction = this._register(new ToggleMenuAction(() => { var _a; return (_a = this.toggleMenuActionViewItem) === null || _a === void 0 ? void 0 : _a.show(); }, options.toggleMenuTitle));\n        this.element = document.createElement('div');\n        this.element.className = 'monaco-toolbar';\n        container.appendChild(this.element);\n        this.actionBar = this._register(new ActionBar(this.element, {\n            orientation: options.orientation,\n            ariaLabel: options.ariaLabel,\n            actionRunner: options.actionRunner,\n            allowContextMenu: options.allowContextMenu,\n            highlightToggledItems: options.highlightToggledItems,\n            hoverDelegate: options.hoverDelegate,\n            actionViewItemProvider: (action, viewItemOptions) => {\n                var _a;\n                if (action.id === ToggleMenuAction.ID) {\n                    this.toggleMenuActionViewItem = new DropdownMenuActionViewItem(action, action.menuActions, contextMenuProvider, {\n                        actionViewItemProvider: this.options.actionViewItemProvider,\n                        actionRunner: this.actionRunner,\n                        keybindingProvider: this.options.getKeyBinding,\n                        classNames: ThemeIcon.asClassNameArray((_a = options.moreIcon) !== null && _a !== void 0 ? _a : Codicon.toolBarMore),\n                        anchorAlignmentProvider: this.options.anchorAlignmentProvider,\n                        menuAsChild: !!this.options.renderDropdownAsChildElement,\n                        skipTelemetry: this.options.skipTelemetry,\n                        isMenu: true,\n                        hoverDelegate: this.options.hoverDelegate\n                    });\n                    this.toggleMenuActionViewItem.setActionContext(this.actionBar.context);\n                    this.disposables.add(this._onDidChangeDropdownVisibility.add(this.toggleMenuActionViewItem.onDidChangeVisibility));\n                    return this.toggleMenuActionViewItem;\n                }\n                if (options.actionViewItemProvider) {\n                    const result = options.actionViewItemProvider(action, viewItemOptions);\n                    if (result) {\n                        return result;\n                    }\n                }\n                if (action instanceof SubmenuAction) {\n                    const result = new DropdownMenuActionViewItem(action, action.actions, contextMenuProvider, {\n                        actionViewItemProvider: this.options.actionViewItemProvider,\n                        actionRunner: this.actionRunner,\n                        keybindingProvider: this.options.getKeyBinding,\n                        classNames: action.class,\n                        anchorAlignmentProvider: this.options.anchorAlignmentProvider,\n                        menuAsChild: !!this.options.renderDropdownAsChildElement,\n                        skipTelemetry: this.options.skipTelemetry,\n                        hoverDelegate: this.options.hoverDelegate\n                    });\n                    result.setActionContext(this.actionBar.context);\n                    this.submenuActionViewItems.push(result);\n                    this.disposables.add(this._onDidChangeDropdownVisibility.add(result.onDidChangeVisibility));\n                    return result;\n                }\n                return undefined;\n            }\n        }));\n    }\n    set actionRunner(actionRunner) {\n        this.actionBar.actionRunner = actionRunner;\n    }\n    get actionRunner() {\n        return this.actionBar.actionRunner;\n    }\n    getElement() {\n        return this.element;\n    }\n    getItemAction(indexOrElement) {\n        return this.actionBar.getAction(indexOrElement);\n    }\n    setActions(primaryActions, secondaryActions) {\n        this.clear();\n        const primaryActionsToSet = primaryActions ? primaryActions.slice(0) : [];\n        // Inject additional action to open secondary actions if present\n        this.hasSecondaryActions = !!(secondaryActions && secondaryActions.length > 0);\n        if (this.hasSecondaryActions && secondaryActions) {\n            this.toggleMenuAction.menuActions = secondaryActions.slice(0);\n            primaryActionsToSet.push(this.toggleMenuAction);\n        }\n        primaryActionsToSet.forEach(action => {\n            this.actionBar.push(action, { icon: true, label: false, keybinding: this.getKeybindingLabel(action) });\n        });\n    }\n    getKeybindingLabel(action) {\n        var _a, _b, _c;\n        const key = this.lookupKeybindings ? (_b = (_a = this.options).getKeyBinding) === null || _b === void 0 ? void 0 : _b.call(_a, action) : undefined;\n        return (_c = key === null || key === void 0 ? void 0 : key.getLabel()) !== null && _c !== void 0 ? _c : undefined;\n    }\n    clear() {\n        this.submenuActionViewItems = [];\n        this.disposables.clear();\n        this.actionBar.clear();\n    }\n    dispose() {\n        this.clear();\n        this.disposables.dispose();\n        super.dispose();\n    }\n}\nexport class ToggleMenuAction extends Action {\n    constructor(toggleDropdownMenu, title) {\n        title = title || nls.localize('moreActions', \"More Actions...\");\n        super(ToggleMenuAction.ID, title, undefined, true);\n        this._menuActions = [];\n        this.toggleDropdownMenu = toggleDropdownMenu;\n    }\n    async run() {\n        this.toggleDropdownMenu();\n    }\n    get menuActions() {\n        return this._menuActions;\n    }\n    set menuActions(actions) {\n        this._menuActions = actions;\n    }\n}\nToggleMenuAction.ID = 'toolbar.toggle.more';\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/tree/abstractTree.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { $, append, clearNode, createStyleSheet, getWindow, h, hasParentWithClass, asCssValueWithDefault, isKeyboardEvent } from '../../dom.js';\nimport { DomEmitter } from '../../event.js';\nimport { StandardKeyboardEvent } from '../../keyboardEvent.js';\nimport { ActionBar } from '../actionbar/actionbar.js';\nimport { FindInput } from '../findinput/findInput.js';\nimport { unthemedInboxStyles } from '../inputbox/inputBox.js';\nimport { ElementsDragAndDropData } from '../list/listView.js';\nimport { isActionItem, isButton, isInputElement, isMonacoCustomToggle, isMonacoEditor, isStickyScrollContainer, isStickyScrollElement, List, MouseController } from '../list/listWidget.js';\nimport { Toggle, unthemedToggleStyles } from '../toggle/toggle.js';\nimport { getVisibleState, isFilterResult } from './indexTreeModel.js';\nimport { TreeMouseEventTarget } from './tree.js';\nimport { Action } from '../../../common/actions.js';\nimport { distinct, equals, range } from '../../../common/arrays.js';\nimport { Delayer, disposableTimeout, timeout } from '../../../common/async.js';\nimport { Codicon } from '../../../common/codicons.js';\nimport { ThemeIcon } from '../../../common/themables.js';\nimport { SetMap } from '../../../common/map.js';\nimport { Emitter, Event, EventBufferer, Relay } from '../../../common/event.js';\nimport { fuzzyScore, FuzzyScore } from '../../../common/filters.js';\nimport { Disposable, DisposableStore, dispose, toDisposable } from '../../../common/lifecycle.js';\nimport { clamp } from '../../../common/numbers.js';\nimport { isNumber } from '../../../common/types.js';\nimport './media/tree.css';\nimport { localize } from '../../../../nls.js';\nimport { createInstantHoverDelegate, getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';\nimport { autorun, constObservable } from '../../../common/observable.js';\nclass TreeElementsDragAndDropData extends ElementsDragAndDropData {\n    constructor(data) {\n        super(data.elements.map(node => node.element));\n        this.data = data;\n    }\n}\nfunction asTreeDragAndDropData(data) {\n    if (data instanceof ElementsDragAndDropData) {\n        return new TreeElementsDragAndDropData(data);\n    }\n    return data;\n}\nclass TreeNodeListDragAndDrop {\n    constructor(modelProvider, dnd) {\n        this.modelProvider = modelProvider;\n        this.dnd = dnd;\n        this.autoExpandDisposable = Disposable.None;\n        this.disposables = new DisposableStore();\n    }\n    getDragURI(node) {\n        return this.dnd.getDragURI(node.element);\n    }\n    getDragLabel(nodes, originalEvent) {\n        if (this.dnd.getDragLabel) {\n            return this.dnd.getDragLabel(nodes.map(node => node.element), originalEvent);\n        }\n        return undefined;\n    }\n    onDragStart(data, originalEvent) {\n        var _a, _b;\n        (_b = (_a = this.dnd).onDragStart) === null || _b === void 0 ? void 0 : _b.call(_a, asTreeDragAndDropData(data), originalEvent);\n    }\n    onDragOver(data, targetNode, targetIndex, targetSector, originalEvent, raw = true) {\n        const result = this.dnd.onDragOver(asTreeDragAndDropData(data), targetNode && targetNode.element, targetIndex, targetSector, originalEvent);\n        const didChangeAutoExpandNode = this.autoExpandNode !== targetNode;\n        if (didChangeAutoExpandNode) {\n            this.autoExpandDisposable.dispose();\n            this.autoExpandNode = targetNode;\n        }\n        if (typeof targetNode === 'undefined') {\n            return result;\n        }\n        if (didChangeAutoExpandNode && typeof result !== 'boolean' && result.autoExpand) {\n            this.autoExpandDisposable = disposableTimeout(() => {\n                const model = this.modelProvider();\n                const ref = model.getNodeLocation(targetNode);\n                if (model.isCollapsed(ref)) {\n                    model.setCollapsed(ref, false);\n                }\n                this.autoExpandNode = undefined;\n            }, 500, this.disposables);\n        }\n        if (typeof result === 'boolean' || !result.accept || typeof result.bubble === 'undefined' || result.feedback) {\n            if (!raw) {\n                const accept = typeof result === 'boolean' ? result : result.accept;\n                const effect = typeof result === 'boolean' ? undefined : result.effect;\n                return { accept, effect, feedback: [targetIndex] };\n            }\n            return result;\n        }\n        if (result.bubble === 1 /* TreeDragOverBubble.Up */) {\n            const model = this.modelProvider();\n            const ref = model.getNodeLocation(targetNode);\n            const parentRef = model.getParentNodeLocation(ref);\n            const parentNode = model.getNode(parentRef);\n            const parentIndex = parentRef && model.getListIndex(parentRef);\n            return this.onDragOver(data, parentNode, parentIndex, targetSector, originalEvent, false);\n        }\n        const model = this.modelProvider();\n        const ref = model.getNodeLocation(targetNode);\n        const start = model.getListIndex(ref);\n        const length = model.getListRenderCount(ref);\n        return { ...result, feedback: range(start, start + length) };\n    }\n    drop(data, targetNode, targetIndex, targetSector, originalEvent) {\n        this.autoExpandDisposable.dispose();\n        this.autoExpandNode = undefined;\n        this.dnd.drop(asTreeDragAndDropData(data), targetNode && targetNode.element, targetIndex, targetSector, originalEvent);\n    }\n    onDragEnd(originalEvent) {\n        var _a, _b;\n        (_b = (_a = this.dnd).onDragEnd) === null || _b === void 0 ? void 0 : _b.call(_a, originalEvent);\n    }\n    dispose() {\n        this.disposables.dispose();\n        this.dnd.dispose();\n    }\n}\nfunction asListOptions(modelProvider, options) {\n    return options && {\n        ...options,\n        identityProvider: options.identityProvider && {\n            getId(el) {\n                return options.identityProvider.getId(el.element);\n            }\n        },\n        dnd: options.dnd && new TreeNodeListDragAndDrop(modelProvider, options.dnd),\n        multipleSelectionController: options.multipleSelectionController && {\n            isSelectionSingleChangeEvent(e) {\n                return options.multipleSelectionController.isSelectionSingleChangeEvent({ ...e, element: e.element });\n            },\n            isSelectionRangeChangeEvent(e) {\n                return options.multipleSelectionController.isSelectionRangeChangeEvent({ ...e, element: e.element });\n            }\n        },\n        accessibilityProvider: options.accessibilityProvider && {\n            ...options.accessibilityProvider,\n            getSetSize(node) {\n                const model = modelProvider();\n                const ref = model.getNodeLocation(node);\n                const parentRef = model.getParentNodeLocation(ref);\n                const parentNode = model.getNode(parentRef);\n                return parentNode.visibleChildrenCount;\n            },\n            getPosInSet(node) {\n                return node.visibleChildIndex + 1;\n            },\n            isChecked: options.accessibilityProvider && options.accessibilityProvider.isChecked ? (node) => {\n                return options.accessibilityProvider.isChecked(node.element);\n            } : undefined,\n            getRole: options.accessibilityProvider && options.accessibilityProvider.getRole ? (node) => {\n                return options.accessibilityProvider.getRole(node.element);\n            } : () => 'treeitem',\n            getAriaLabel(e) {\n                return options.accessibilityProvider.getAriaLabel(e.element);\n            },\n            getWidgetAriaLabel() {\n                return options.accessibilityProvider.getWidgetAriaLabel();\n            },\n            getWidgetRole: options.accessibilityProvider && options.accessibilityProvider.getWidgetRole ? () => options.accessibilityProvider.getWidgetRole() : () => 'tree',\n            getAriaLevel: options.accessibilityProvider && options.accessibilityProvider.getAriaLevel ? (node) => options.accessibilityProvider.getAriaLevel(node.element) : (node) => {\n                return node.depth;\n            },\n            getActiveDescendantId: options.accessibilityProvider.getActiveDescendantId && (node => {\n                return options.accessibilityProvider.getActiveDescendantId(node.element);\n            })\n        },\n        keyboardNavigationLabelProvider: options.keyboardNavigationLabelProvider && {\n            ...options.keyboardNavigationLabelProvider,\n            getKeyboardNavigationLabel(node) {\n                return options.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(node.element);\n            }\n        }\n    };\n}\nexport class ComposedTreeDelegate {\n    constructor(delegate) {\n        this.delegate = delegate;\n    }\n    getHeight(element) {\n        return this.delegate.getHeight(element.element);\n    }\n    getTemplateId(element) {\n        return this.delegate.getTemplateId(element.element);\n    }\n    hasDynamicHeight(element) {\n        return !!this.delegate.hasDynamicHeight && this.delegate.hasDynamicHeight(element.element);\n    }\n    setDynamicHeight(element, height) {\n        var _a, _b;\n        (_b = (_a = this.delegate).setDynamicHeight) === null || _b === void 0 ? void 0 : _b.call(_a, element.element, height);\n    }\n}\nexport var RenderIndentGuides;\n(function (RenderIndentGuides) {\n    RenderIndentGuides[\"None\"] = \"none\";\n    RenderIndentGuides[\"OnHover\"] = \"onHover\";\n    RenderIndentGuides[\"Always\"] = \"always\";\n})(RenderIndentGuides || (RenderIndentGuides = {}));\nclass EventCollection {\n    get elements() {\n        return this._elements;\n    }\n    constructor(onDidChange, _elements = []) {\n        this._elements = _elements;\n        this.disposables = new DisposableStore();\n        this.onDidChange = Event.forEach(onDidChange, elements => this._elements = elements, this.disposables);\n    }\n    dispose() {\n        this.disposables.dispose();\n    }\n}\nexport class TreeRenderer {\n    constructor(renderer, modelProvider, onDidChangeCollapseState, activeNodes, renderedIndentGuides, options = {}) {\n        var _a;\n        this.renderer = renderer;\n        this.modelProvider = modelProvider;\n        this.activeNodes = activeNodes;\n        this.renderedIndentGuides = renderedIndentGuides;\n        this.renderedElements = new Map();\n        this.renderedNodes = new Map();\n        this.indent = TreeRenderer.DefaultIndent;\n        this.hideTwistiesOfChildlessElements = false;\n        this.shouldRenderIndentGuides = false;\n        this.activeIndentNodes = new Set();\n        this.indentGuidesDisposable = Disposable.None;\n        this.disposables = new DisposableStore();\n        this.templateId = renderer.templateId;\n        this.updateOptions(options);\n        Event.map(onDidChangeCollapseState, e => e.node)(this.onDidChangeNodeTwistieState, this, this.disposables);\n        (_a = renderer.onDidChangeTwistieState) === null || _a === void 0 ? void 0 : _a.call(renderer, this.onDidChangeTwistieState, this, this.disposables);\n    }\n    updateOptions(options = {}) {\n        if (typeof options.indent !== 'undefined') {\n            const indent = clamp(options.indent, 0, 40);\n            if (indent !== this.indent) {\n                this.indent = indent;\n                for (const [node, templateData] of this.renderedNodes) {\n                    this.renderTreeElement(node, templateData);\n                }\n            }\n        }\n        if (typeof options.renderIndentGuides !== 'undefined') {\n            const shouldRenderIndentGuides = options.renderIndentGuides !== RenderIndentGuides.None;\n            if (shouldRenderIndentGuides !== this.shouldRenderIndentGuides) {\n                this.shouldRenderIndentGuides = shouldRenderIndentGuides;\n                for (const [node, templateData] of this.renderedNodes) {\n                    this._renderIndentGuides(node, templateData);\n                }\n                this.indentGuidesDisposable.dispose();\n                if (shouldRenderIndentGuides) {\n                    const disposables = new DisposableStore();\n                    this.activeNodes.onDidChange(this._onDidChangeActiveNodes, this, disposables);\n                    this.indentGuidesDisposable = disposables;\n                    this._onDidChangeActiveNodes(this.activeNodes.elements);\n                }\n            }\n        }\n        if (typeof options.hideTwistiesOfChildlessElements !== 'undefined') {\n            this.hideTwistiesOfChildlessElements = options.hideTwistiesOfChildlessElements;\n        }\n    }\n    renderTemplate(container) {\n        const el = append(container, $('.monaco-tl-row'));\n        const indent = append(el, $('.monaco-tl-indent'));\n        const twistie = append(el, $('.monaco-tl-twistie'));\n        const contents = append(el, $('.monaco-tl-contents'));\n        const templateData = this.renderer.renderTemplate(contents);\n        return { container, indent, twistie, indentGuidesDisposable: Disposable.None, templateData };\n    }\n    renderElement(node, index, templateData, height) {\n        this.renderedNodes.set(node, templateData);\n        this.renderedElements.set(node.element, node);\n        this.renderTreeElement(node, templateData);\n        this.renderer.renderElement(node, index, templateData.templateData, height);\n    }\n    disposeElement(node, index, templateData, height) {\n        var _a, _b;\n        templateData.indentGuidesDisposable.dispose();\n        (_b = (_a = this.renderer).disposeElement) === null || _b === void 0 ? void 0 : _b.call(_a, node, index, templateData.templateData, height);\n        if (typeof height === 'number') {\n            this.renderedNodes.delete(node);\n            this.renderedElements.delete(node.element);\n        }\n    }\n    disposeTemplate(templateData) {\n        this.renderer.disposeTemplate(templateData.templateData);\n    }\n    onDidChangeTwistieState(element) {\n        const node = this.renderedElements.get(element);\n        if (!node) {\n            return;\n        }\n        this.onDidChangeNodeTwistieState(node);\n    }\n    onDidChangeNodeTwistieState(node) {\n        const templateData = this.renderedNodes.get(node);\n        if (!templateData) {\n            return;\n        }\n        this._onDidChangeActiveNodes(this.activeNodes.elements);\n        this.renderTreeElement(node, templateData);\n    }\n    renderTreeElement(node, templateData) {\n        const indent = TreeRenderer.DefaultIndent + (node.depth - 1) * this.indent;\n        templateData.twistie.style.paddingLeft = `${indent}px`;\n        templateData.indent.style.width = `${indent + this.indent - 16}px`;\n        if (node.collapsible) {\n            templateData.container.setAttribute('aria-expanded', String(!node.collapsed));\n        }\n        else {\n            templateData.container.removeAttribute('aria-expanded');\n        }\n        templateData.twistie.classList.remove(...ThemeIcon.asClassNameArray(Codicon.treeItemExpanded));\n        let twistieRendered = false;\n        if (this.renderer.renderTwistie) {\n            twistieRendered = this.renderer.renderTwistie(node.element, templateData.twistie);\n        }\n        if (node.collapsible && (!this.hideTwistiesOfChildlessElements || node.visibleChildrenCount > 0)) {\n            if (!twistieRendered) {\n                templateData.twistie.classList.add(...ThemeIcon.asClassNameArray(Codicon.treeItemExpanded));\n            }\n            templateData.twistie.classList.add('collapsible');\n            templateData.twistie.classList.toggle('collapsed', node.collapsed);\n        }\n        else {\n            templateData.twistie.classList.remove('collapsible', 'collapsed');\n        }\n        this._renderIndentGuides(node, templateData);\n    }\n    _renderIndentGuides(node, templateData) {\n        clearNode(templateData.indent);\n        templateData.indentGuidesDisposable.dispose();\n        if (!this.shouldRenderIndentGuides) {\n            return;\n        }\n        const disposableStore = new DisposableStore();\n        const model = this.modelProvider();\n        while (true) {\n            const ref = model.getNodeLocation(node);\n            const parentRef = model.getParentNodeLocation(ref);\n            if (!parentRef) {\n                break;\n            }\n            const parent = model.getNode(parentRef);\n            const guide = $('.indent-guide', { style: `width: ${this.indent}px` });\n            if (this.activeIndentNodes.has(parent)) {\n                guide.classList.add('active');\n            }\n            if (templateData.indent.childElementCount === 0) {\n                templateData.indent.appendChild(guide);\n            }\n            else {\n                templateData.indent.insertBefore(guide, templateData.indent.firstElementChild);\n            }\n            this.renderedIndentGuides.add(parent, guide);\n            disposableStore.add(toDisposable(() => this.renderedIndentGuides.delete(parent, guide)));\n            node = parent;\n        }\n        templateData.indentGuidesDisposable = disposableStore;\n    }\n    _onDidChangeActiveNodes(nodes) {\n        if (!this.shouldRenderIndentGuides) {\n            return;\n        }\n        const set = new Set();\n        const model = this.modelProvider();\n        nodes.forEach(node => {\n            const ref = model.getNodeLocation(node);\n            try {\n                const parentRef = model.getParentNodeLocation(ref);\n                if (node.collapsible && node.children.length > 0 && !node.collapsed) {\n                    set.add(node);\n                }\n                else if (parentRef) {\n                    set.add(model.getNode(parentRef));\n                }\n            }\n            catch (_a) {\n                // noop\n            }\n        });\n        this.activeIndentNodes.forEach(node => {\n            if (!set.has(node)) {\n                this.renderedIndentGuides.forEach(node, line => line.classList.remove('active'));\n            }\n        });\n        set.forEach(node => {\n            if (!this.activeIndentNodes.has(node)) {\n                this.renderedIndentGuides.forEach(node, line => line.classList.add('active'));\n            }\n        });\n        this.activeIndentNodes = set;\n    }\n    dispose() {\n        this.renderedNodes.clear();\n        this.renderedElements.clear();\n        this.indentGuidesDisposable.dispose();\n        dispose(this.disposables);\n    }\n}\nTreeRenderer.DefaultIndent = 8;\nclass FindFilter {\n    get totalCount() { return this._totalCount; }\n    get matchCount() { return this._matchCount; }\n    constructor(tree, keyboardNavigationLabelProvider, _filter) {\n        this.tree = tree;\n        this.keyboardNavigationLabelProvider = keyboardNavigationLabelProvider;\n        this._filter = _filter;\n        this._totalCount = 0;\n        this._matchCount = 0;\n        this._pattern = '';\n        this._lowercasePattern = '';\n        this.disposables = new DisposableStore();\n        tree.onWillRefilter(this.reset, this, this.disposables);\n    }\n    filter(element, parentVisibility) {\n        let visibility = 1 /* TreeVisibility.Visible */;\n        if (this._filter) {\n            const result = this._filter.filter(element, parentVisibility);\n            if (typeof result === 'boolean') {\n                visibility = result ? 1 /* TreeVisibility.Visible */ : 0 /* TreeVisibility.Hidden */;\n            }\n            else if (isFilterResult(result)) {\n                visibility = getVisibleState(result.visibility);\n            }\n            else {\n                visibility = result;\n            }\n            if (visibility === 0 /* TreeVisibility.Hidden */) {\n                return false;\n            }\n        }\n        this._totalCount++;\n        if (!this._pattern) {\n            this._matchCount++;\n            return { data: FuzzyScore.Default, visibility };\n        }\n        const label = this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(element);\n        const labels = Array.isArray(label) ? label : [label];\n        for (const l of labels) {\n            const labelStr = l && l.toString();\n            if (typeof labelStr === 'undefined') {\n                return { data: FuzzyScore.Default, visibility };\n            }\n            let score;\n            if (this.tree.findMatchType === TreeFindMatchType.Contiguous) {\n                const index = labelStr.toLowerCase().indexOf(this._lowercasePattern);\n                if (index > -1) {\n                    score = [Number.MAX_SAFE_INTEGER, 0];\n                    for (let i = this._lowercasePattern.length; i > 0; i--) {\n                        score.push(index + i - 1);\n                    }\n                }\n            }\n            else {\n                score = fuzzyScore(this._pattern, this._lowercasePattern, 0, labelStr, labelStr.toLowerCase(), 0, { firstMatchCanBeWeak: true, boostFullMatch: true });\n            }\n            if (score) {\n                this._matchCount++;\n                return labels.length === 1 ?\n                    { data: score, visibility } :\n                    { data: { label: labelStr, score: score }, visibility };\n            }\n        }\n        if (this.tree.findMode === TreeFindMode.Filter) {\n            if (typeof this.tree.options.defaultFindVisibility === 'number') {\n                return this.tree.options.defaultFindVisibility;\n            }\n            else if (this.tree.options.defaultFindVisibility) {\n                return this.tree.options.defaultFindVisibility(element);\n            }\n            else {\n                return 2 /* TreeVisibility.Recurse */;\n            }\n        }\n        else {\n            return { data: FuzzyScore.Default, visibility };\n        }\n    }\n    reset() {\n        this._totalCount = 0;\n        this._matchCount = 0;\n    }\n    dispose() {\n        dispose(this.disposables);\n    }\n}\nexport class ModeToggle extends Toggle {\n    constructor(opts) {\n        var _a, _b;\n        super({\n            icon: Codicon.listFilter,\n            title: localize('filter', \"Filter\"),\n            isChecked: (_a = opts.isChecked) !== null && _a !== void 0 ? _a : false,\n            hoverDelegate: (_b = opts.hoverDelegate) !== null && _b !== void 0 ? _b : getDefaultHoverDelegate('element'),\n            inputActiveOptionBorder: opts.inputActiveOptionBorder,\n            inputActiveOptionForeground: opts.inputActiveOptionForeground,\n            inputActiveOptionBackground: opts.inputActiveOptionBackground\n        });\n    }\n}\nexport class FuzzyToggle extends Toggle {\n    constructor(opts) {\n        var _a, _b;\n        super({\n            icon: Codicon.searchFuzzy,\n            title: localize('fuzzySearch', \"Fuzzy Match\"),\n            isChecked: (_a = opts.isChecked) !== null && _a !== void 0 ? _a : false,\n            hoverDelegate: (_b = opts.hoverDelegate) !== null && _b !== void 0 ? _b : getDefaultHoverDelegate('element'),\n            inputActiveOptionBorder: opts.inputActiveOptionBorder,\n            inputActiveOptionForeground: opts.inputActiveOptionForeground,\n            inputActiveOptionBackground: opts.inputActiveOptionBackground\n        });\n    }\n}\nconst unthemedFindWidgetStyles = {\n    inputBoxStyles: unthemedInboxStyles,\n    toggleStyles: unthemedToggleStyles,\n    listFilterWidgetBackground: undefined,\n    listFilterWidgetNoMatchesOutline: undefined,\n    listFilterWidgetOutline: undefined,\n    listFilterWidgetShadow: undefined\n};\nexport var TreeFindMode;\n(function (TreeFindMode) {\n    TreeFindMode[TreeFindMode[\"Highlight\"] = 0] = \"Highlight\";\n    TreeFindMode[TreeFindMode[\"Filter\"] = 1] = \"Filter\";\n})(TreeFindMode || (TreeFindMode = {}));\nexport var TreeFindMatchType;\n(function (TreeFindMatchType) {\n    TreeFindMatchType[TreeFindMatchType[\"Fuzzy\"] = 0] = \"Fuzzy\";\n    TreeFindMatchType[TreeFindMatchType[\"Contiguous\"] = 1] = \"Contiguous\";\n})(TreeFindMatchType || (TreeFindMatchType = {}));\nclass FindWidget extends Disposable {\n    set mode(mode) {\n        this.modeToggle.checked = mode === TreeFindMode.Filter;\n        this.findInput.inputBox.setPlaceHolder(mode === TreeFindMode.Filter ? localize('type to filter', \"Type to filter\") : localize('type to search', \"Type to search\"));\n    }\n    set matchType(matchType) {\n        this.matchTypeToggle.checked = matchType === TreeFindMatchType.Fuzzy;\n    }\n    constructor(container, tree, contextViewProvider, mode, matchType, options) {\n        var _a;\n        super();\n        this.tree = tree;\n        this.elements = h('.monaco-tree-type-filter', [\n            h('.monaco-tree-type-filter-grab.codicon.codicon-debug-gripper@grab', { tabIndex: 0 }),\n            h('.monaco-tree-type-filter-input@findInput'),\n            h('.monaco-tree-type-filter-actionbar@actionbar'),\n        ]);\n        this.width = 0;\n        this.right = 0;\n        this.top = 0;\n        this._onDidDisable = new Emitter();\n        container.appendChild(this.elements.root);\n        this._register(toDisposable(() => container.removeChild(this.elements.root)));\n        const styles = (_a = options === null || options === void 0 ? void 0 : options.styles) !== null && _a !== void 0 ? _a : unthemedFindWidgetStyles;\n        if (styles.listFilterWidgetBackground) {\n            this.elements.root.style.backgroundColor = styles.listFilterWidgetBackground;\n        }\n        if (styles.listFilterWidgetShadow) {\n            this.elements.root.style.boxShadow = `0 0 8px 2px ${styles.listFilterWidgetShadow}`;\n        }\n        const toggleHoverDelegate = this._register(createInstantHoverDelegate());\n        this.modeToggle = this._register(new ModeToggle({ ...styles.toggleStyles, isChecked: mode === TreeFindMode.Filter, hoverDelegate: toggleHoverDelegate }));\n        this.matchTypeToggle = this._register(new FuzzyToggle({ ...styles.toggleStyles, isChecked: matchType === TreeFindMatchType.Fuzzy, hoverDelegate: toggleHoverDelegate }));\n        this.onDidChangeMode = Event.map(this.modeToggle.onChange, () => this.modeToggle.checked ? TreeFindMode.Filter : TreeFindMode.Highlight, this._store);\n        this.onDidChangeMatchType = Event.map(this.matchTypeToggle.onChange, () => this.matchTypeToggle.checked ? TreeFindMatchType.Fuzzy : TreeFindMatchType.Contiguous, this._store);\n        this.findInput = this._register(new FindInput(this.elements.findInput, contextViewProvider, {\n            label: localize('type to search', \"Type to search\"),\n            additionalToggles: [this.modeToggle, this.matchTypeToggle],\n            showCommonFindToggles: false,\n            inputBoxStyles: styles.inputBoxStyles,\n            toggleStyles: styles.toggleStyles,\n            history: options === null || options === void 0 ? void 0 : options.history\n        }));\n        this.actionbar = this._register(new ActionBar(this.elements.actionbar));\n        this.mode = mode;\n        const emitter = this._register(new DomEmitter(this.findInput.inputBox.inputElement, 'keydown'));\n        const onKeyDown = Event.chain(emitter.event, $ => $.map(e => new StandardKeyboardEvent(e)));\n        this._register(onKeyDown((e) => {\n            // Using equals() so we reserve modified keys for future use\n            if (e.equals(3 /* KeyCode.Enter */)) {\n                // This is the only keyboard way to return to the tree from a history item that isn't the last one\n                e.preventDefault();\n                e.stopPropagation();\n                this.findInput.inputBox.addToHistory();\n                this.tree.domFocus();\n                return;\n            }\n            if (e.equals(18 /* KeyCode.DownArrow */)) {\n                e.preventDefault();\n                e.stopPropagation();\n                if (this.findInput.inputBox.isAtLastInHistory() || this.findInput.inputBox.isNowhereInHistory()) {\n                    // Retain original pre-history DownArrow behavior\n                    this.findInput.inputBox.addToHistory();\n                    this.tree.domFocus();\n                }\n                else {\n                    // Downward through history\n                    this.findInput.inputBox.showNextValue();\n                }\n                return;\n            }\n            if (e.equals(16 /* KeyCode.UpArrow */)) {\n                e.preventDefault();\n                e.stopPropagation();\n                // Upward through history\n                this.findInput.inputBox.showPreviousValue();\n                return;\n            }\n        }));\n        const closeAction = this._register(new Action('close', localize('close', \"Close\"), 'codicon codicon-close', true, () => this.dispose()));\n        this.actionbar.push(closeAction, { icon: true, label: false });\n        const onGrabMouseDown = this._register(new DomEmitter(this.elements.grab, 'mousedown'));\n        this._register(onGrabMouseDown.event(e => {\n            const disposables = new DisposableStore();\n            const onWindowMouseMove = disposables.add(new DomEmitter(getWindow(e), 'mousemove'));\n            const onWindowMouseUp = disposables.add(new DomEmitter(getWindow(e), 'mouseup'));\n            const startRight = this.right;\n            const startX = e.pageX;\n            const startTop = this.top;\n            const startY = e.pageY;\n            this.elements.grab.classList.add('grabbing');\n            const transition = this.elements.root.style.transition;\n            this.elements.root.style.transition = 'unset';\n            const update = (e) => {\n                const deltaX = e.pageX - startX;\n                this.right = startRight - deltaX;\n                const deltaY = e.pageY - startY;\n                this.top = startTop + deltaY;\n                this.layout();\n            };\n            disposables.add(onWindowMouseMove.event(update));\n            disposables.add(onWindowMouseUp.event(e => {\n                update(e);\n                this.elements.grab.classList.remove('grabbing');\n                this.elements.root.style.transition = transition;\n                disposables.dispose();\n            }));\n        }));\n        const onGrabKeyDown = Event.chain(this._register(new DomEmitter(this.elements.grab, 'keydown')).event, $ => $.map(e => new StandardKeyboardEvent(e)));\n        this._register(onGrabKeyDown((e) => {\n            let right;\n            let top;\n            if (e.keyCode === 15 /* KeyCode.LeftArrow */) {\n                right = Number.POSITIVE_INFINITY;\n            }\n            else if (e.keyCode === 17 /* KeyCode.RightArrow */) {\n                right = 0;\n            }\n            else if (e.keyCode === 10 /* KeyCode.Space */) {\n                right = this.right === 0 ? Number.POSITIVE_INFINITY : 0;\n            }\n            if (e.keyCode === 16 /* KeyCode.UpArrow */) {\n                top = 0;\n            }\n            else if (e.keyCode === 18 /* KeyCode.DownArrow */) {\n                top = Number.POSITIVE_INFINITY;\n            }\n            if (right !== undefined) {\n                e.preventDefault();\n                e.stopPropagation();\n                this.right = right;\n                this.layout();\n            }\n            if (top !== undefined) {\n                e.preventDefault();\n                e.stopPropagation();\n                this.top = top;\n                const transition = this.elements.root.style.transition;\n                this.elements.root.style.transition = 'unset';\n                this.layout();\n                setTimeout(() => {\n                    this.elements.root.style.transition = transition;\n                }, 0);\n            }\n        }));\n        this.onDidChangeValue = this.findInput.onDidChange;\n    }\n    layout(width = this.width) {\n        this.width = width;\n        this.right = clamp(this.right, 0, Math.max(0, width - 212));\n        this.elements.root.style.right = `${this.right}px`;\n        this.top = clamp(this.top, 0, 24);\n        this.elements.root.style.top = `${this.top}px`;\n    }\n    showMessage(message) {\n        this.findInput.showMessage(message);\n    }\n    clearMessage() {\n        this.findInput.clearMessage();\n    }\n    async dispose() {\n        this._onDidDisable.fire();\n        this.elements.root.classList.add('disabled');\n        await timeout(300);\n        super.dispose();\n    }\n}\nclass FindController {\n    get pattern() { return this._pattern; }\n    get mode() { return this._mode; }\n    set mode(mode) {\n        if (mode === this._mode) {\n            return;\n        }\n        this._mode = mode;\n        if (this.widget) {\n            this.widget.mode = this._mode;\n        }\n        this.tree.refilter();\n        this.render();\n        this._onDidChangeMode.fire(mode);\n    }\n    get matchType() { return this._matchType; }\n    set matchType(matchType) {\n        if (matchType === this._matchType) {\n            return;\n        }\n        this._matchType = matchType;\n        if (this.widget) {\n            this.widget.matchType = this._matchType;\n        }\n        this.tree.refilter();\n        this.render();\n        this._onDidChangeMatchType.fire(matchType);\n    }\n    constructor(tree, model, view, filter, contextViewProvider, options = {}) {\n        var _a, _b;\n        this.tree = tree;\n        this.view = view;\n        this.filter = filter;\n        this.contextViewProvider = contextViewProvider;\n        this.options = options;\n        this._pattern = '';\n        this.width = 0;\n        this._onDidChangeMode = new Emitter();\n        this.onDidChangeMode = this._onDidChangeMode.event;\n        this._onDidChangeMatchType = new Emitter();\n        this.onDidChangeMatchType = this._onDidChangeMatchType.event;\n        this._onDidChangePattern = new Emitter();\n        this._onDidChangeOpenState = new Emitter();\n        this.onDidChangeOpenState = this._onDidChangeOpenState.event;\n        this.enabledDisposables = new DisposableStore();\n        this.disposables = new DisposableStore();\n        this._mode = (_a = tree.options.defaultFindMode) !== null && _a !== void 0 ? _a : TreeFindMode.Highlight;\n        this._matchType = (_b = tree.options.defaultFindMatchType) !== null && _b !== void 0 ? _b : TreeFindMatchType.Fuzzy;\n        model.onDidSplice(this.onDidSpliceModel, this, this.disposables);\n    }\n    updateOptions(optionsUpdate = {}) {\n        if (optionsUpdate.defaultFindMode !== undefined) {\n            this.mode = optionsUpdate.defaultFindMode;\n        }\n        if (optionsUpdate.defaultFindMatchType !== undefined) {\n            this.matchType = optionsUpdate.defaultFindMatchType;\n        }\n    }\n    onDidSpliceModel() {\n        if (!this.widget || this.pattern.length === 0) {\n            return;\n        }\n        this.tree.refilter();\n        this.render();\n    }\n    render() {\n        var _a, _b, _c, _d;\n        const noMatches = this.filter.totalCount > 0 && this.filter.matchCount === 0;\n        if (this.pattern && noMatches) {\n            if ((_a = this.tree.options.showNotFoundMessage) !== null && _a !== void 0 ? _a : true) {\n                (_b = this.widget) === null || _b === void 0 ? void 0 : _b.showMessage({ type: 2 /* MessageType.WARNING */, content: localize('not found', \"No elements found.\") });\n            }\n            else {\n                (_c = this.widget) === null || _c === void 0 ? void 0 : _c.showMessage({ type: 2 /* MessageType.WARNING */ });\n            }\n        }\n        else {\n            (_d = this.widget) === null || _d === void 0 ? void 0 : _d.clearMessage();\n        }\n    }\n    shouldAllowFocus(node) {\n        if (!this.widget || !this.pattern) {\n            return true;\n        }\n        if (this.filter.totalCount > 0 && this.filter.matchCount <= 1) {\n            return true;\n        }\n        return !FuzzyScore.isDefault(node.filterData);\n    }\n    layout(width) {\n        var _a;\n        this.width = width;\n        (_a = this.widget) === null || _a === void 0 ? void 0 : _a.layout(width);\n    }\n    dispose() {\n        this._history = undefined;\n        this._onDidChangePattern.dispose();\n        this.enabledDisposables.dispose();\n        this.disposables.dispose();\n    }\n}\nfunction stickyScrollNodeStateEquals(node1, node2) {\n    return node1.position === node2.position && stickyScrollNodeEquals(node1, node2);\n}\nfunction stickyScrollNodeEquals(node1, node2) {\n    return node1.node.element === node2.node.element &&\n        node1.startIndex === node2.startIndex &&\n        node1.height === node2.height &&\n        node1.endIndex === node2.endIndex;\n}\nclass StickyScrollState {\n    constructor(stickyNodes = []) {\n        this.stickyNodes = stickyNodes;\n    }\n    get count() { return this.stickyNodes.length; }\n    equal(state) {\n        return equals(this.stickyNodes, state.stickyNodes, stickyScrollNodeStateEquals);\n    }\n    lastNodePartiallyVisible() {\n        if (this.count === 0) {\n            return false;\n        }\n        const lastStickyNode = this.stickyNodes[this.count - 1];\n        if (this.count === 1) {\n            return lastStickyNode.position !== 0;\n        }\n        const secondLastStickyNode = this.stickyNodes[this.count - 2];\n        return secondLastStickyNode.position + secondLastStickyNode.height !== lastStickyNode.position;\n    }\n    animationStateChanged(previousState) {\n        if (!equals(this.stickyNodes, previousState.stickyNodes, stickyScrollNodeEquals)) {\n            return false;\n        }\n        if (this.count === 0) {\n            return false;\n        }\n        const lastStickyNode = this.stickyNodes[this.count - 1];\n        const previousLastStickyNode = previousState.stickyNodes[previousState.count - 1];\n        return lastStickyNode.position !== previousLastStickyNode.position;\n    }\n}\nclass DefaultStickyScrollDelegate {\n    constrainStickyScrollNodes(stickyNodes, stickyScrollMaxItemCount, maxWidgetHeight) {\n        for (let i = 0; i < stickyNodes.length; i++) {\n            const stickyNode = stickyNodes[i];\n            const stickyNodeBottom = stickyNode.position + stickyNode.height;\n            if (stickyNodeBottom > maxWidgetHeight || i >= stickyScrollMaxItemCount) {\n                return stickyNodes.slice(0, i);\n            }\n        }\n        return stickyNodes;\n    }\n}\nclass StickyScrollController extends Disposable {\n    constructor(tree, model, view, renderers, treeDelegate, options = {}) {\n        var _a;\n        super();\n        this.tree = tree;\n        this.model = model;\n        this.view = view;\n        this.treeDelegate = treeDelegate;\n        this.maxWidgetViewRatio = 0.4;\n        const stickyScrollOptions = this.validateStickySettings(options);\n        this.stickyScrollMaxItemCount = stickyScrollOptions.stickyScrollMaxItemCount;\n        this.stickyScrollDelegate = (_a = options.stickyScrollDelegate) !== null && _a !== void 0 ? _a : new DefaultStickyScrollDelegate();\n        this._widget = this._register(new StickyScrollWidget(view.getScrollableElement(), view, tree, renderers, treeDelegate, options.accessibilityProvider));\n        this.onDidChangeHasFocus = this._widget.onDidChangeHasFocus;\n        this.onContextMenu = this._widget.onContextMenu;\n        this._register(view.onDidScroll(() => this.update()));\n        this._register(view.onDidChangeContentHeight(() => this.update()));\n        this._register(tree.onDidChangeCollapseState(() => this.update()));\n        this.update();\n    }\n    get height() {\n        return this._widget.height;\n    }\n    getNodeAtHeight(height) {\n        let index;\n        if (height === 0) {\n            index = this.view.firstVisibleIndex;\n        }\n        else {\n            index = this.view.indexAt(height + this.view.scrollTop);\n        }\n        if (index < 0 || index >= this.view.length) {\n            return undefined;\n        }\n        return this.view.element(index);\n    }\n    update() {\n        const firstVisibleNode = this.getNodeAtHeight(0);\n        // Don't render anything if there are no elements\n        if (!firstVisibleNode || this.tree.scrollTop === 0) {\n            this._widget.setState(undefined);\n            return;\n        }\n        const stickyState = this.findStickyState(firstVisibleNode);\n        this._widget.setState(stickyState);\n    }\n    findStickyState(firstVisibleNode) {\n        const stickyNodes = [];\n        let firstVisibleNodeUnderWidget = firstVisibleNode;\n        let stickyNodesHeight = 0;\n        let nextStickyNode = this.getNextStickyNode(firstVisibleNodeUnderWidget, undefined, stickyNodesHeight);\n        while (nextStickyNode) {\n            stickyNodes.push(nextStickyNode);\n            stickyNodesHeight += nextStickyNode.height;\n            if (stickyNodes.length <= this.stickyScrollMaxItemCount) {\n                firstVisibleNodeUnderWidget = this.getNextVisibleNode(nextStickyNode);\n                if (!firstVisibleNodeUnderWidget) {\n                    break;\n                }\n            }\n            nextStickyNode = this.getNextStickyNode(firstVisibleNodeUnderWidget, nextStickyNode.node, stickyNodesHeight);\n        }\n        const contrainedStickyNodes = this.constrainStickyNodes(stickyNodes);\n        return contrainedStickyNodes.length ? new StickyScrollState(contrainedStickyNodes) : undefined;\n    }\n    getNextVisibleNode(previousStickyNode) {\n        return this.getNodeAtHeight(previousStickyNode.position + previousStickyNode.height);\n    }\n    getNextStickyNode(firstVisibleNodeUnderWidget, previousStickyNode, stickyNodesHeight) {\n        const nextStickyNode = this.getAncestorUnderPrevious(firstVisibleNodeUnderWidget, previousStickyNode);\n        if (!nextStickyNode) {\n            return undefined;\n        }\n        if (nextStickyNode === firstVisibleNodeUnderWidget) {\n            if (!this.nodeIsUncollapsedParent(firstVisibleNodeUnderWidget)) {\n                return undefined;\n            }\n            if (this.nodeTopAlignsWithStickyNodesBottom(firstVisibleNodeUnderWidget, stickyNodesHeight)) {\n                return undefined;\n            }\n        }\n        return this.createStickyScrollNode(nextStickyNode, stickyNodesHeight);\n    }\n    nodeTopAlignsWithStickyNodesBottom(node, stickyNodesHeight) {\n        const nodeIndex = this.getNodeIndex(node);\n        const elementTop = this.view.getElementTop(nodeIndex);\n        const stickyPosition = stickyNodesHeight;\n        return this.view.scrollTop === elementTop - stickyPosition;\n    }\n    createStickyScrollNode(node, currentStickyNodesHeight) {\n        const height = this.treeDelegate.getHeight(node);\n        const { startIndex, endIndex } = this.getNodeRange(node);\n        const position = this.calculateStickyNodePosition(endIndex, currentStickyNodesHeight, height);\n        return { node, position, height, startIndex, endIndex };\n    }\n    getAncestorUnderPrevious(node, previousAncestor = undefined) {\n        let currentAncestor = node;\n        let parentOfcurrentAncestor = this.getParentNode(currentAncestor);\n        while (parentOfcurrentAncestor) {\n            if (parentOfcurrentAncestor === previousAncestor) {\n                return currentAncestor;\n            }\n            currentAncestor = parentOfcurrentAncestor;\n            parentOfcurrentAncestor = this.getParentNode(currentAncestor);\n        }\n        if (previousAncestor === undefined) {\n            return currentAncestor;\n        }\n        return undefined;\n    }\n    calculateStickyNodePosition(lastDescendantIndex, stickyRowPositionTop, stickyNodeHeight) {\n        let lastChildRelativeTop = this.view.getRelativeTop(lastDescendantIndex);\n        // If the last descendant is only partially visible at the top of the view, getRelativeTop() returns null\n        // In that case, utilize the next node's relative top to calculate the sticky node's position\n        if (lastChildRelativeTop === null && this.view.firstVisibleIndex === lastDescendantIndex && lastDescendantIndex + 1 < this.view.length) {\n            const nodeHeight = this.treeDelegate.getHeight(this.view.element(lastDescendantIndex));\n            const nextNodeRelativeTop = this.view.getRelativeTop(lastDescendantIndex + 1);\n            lastChildRelativeTop = nextNodeRelativeTop ? nextNodeRelativeTop - nodeHeight / this.view.renderHeight : null;\n        }\n        if (lastChildRelativeTop === null) {\n            return stickyRowPositionTop;\n        }\n        const lastChildNode = this.view.element(lastDescendantIndex);\n        const lastChildHeight = this.treeDelegate.getHeight(lastChildNode);\n        const topOfLastChild = lastChildRelativeTop * this.view.renderHeight;\n        const bottomOfLastChild = topOfLastChild + lastChildHeight;\n        if (stickyRowPositionTop + stickyNodeHeight > bottomOfLastChild && stickyRowPositionTop <= bottomOfLastChild) {\n            return bottomOfLastChild - stickyNodeHeight;\n        }\n        return stickyRowPositionTop;\n    }\n    constrainStickyNodes(stickyNodes) {\n        if (stickyNodes.length === 0) {\n            return [];\n        }\n        // Check if sticky nodes need to be constrained\n        const maximumStickyWidgetHeight = this.view.renderHeight * this.maxWidgetViewRatio;\n        const lastStickyNode = stickyNodes[stickyNodes.length - 1];\n        if (stickyNodes.length <= this.stickyScrollMaxItemCount && lastStickyNode.position + lastStickyNode.height <= maximumStickyWidgetHeight) {\n            return stickyNodes;\n        }\n        // constrain sticky nodes\n        const constrainedStickyNodes = this.stickyScrollDelegate.constrainStickyScrollNodes(stickyNodes, this.stickyScrollMaxItemCount, maximumStickyWidgetHeight);\n        if (!constrainedStickyNodes.length) {\n            return [];\n        }\n        // Validate constraints\n        const lastConstrainedStickyNode = constrainedStickyNodes[constrainedStickyNodes.length - 1];\n        if (constrainedStickyNodes.length > this.stickyScrollMaxItemCount || lastConstrainedStickyNode.position + lastConstrainedStickyNode.height > maximumStickyWidgetHeight) {\n            throw new Error('stickyScrollDelegate violates constraints');\n        }\n        return constrainedStickyNodes;\n    }\n    getParentNode(node) {\n        const nodeLocation = this.model.getNodeLocation(node);\n        const parentLocation = this.model.getParentNodeLocation(nodeLocation);\n        return parentLocation ? this.model.getNode(parentLocation) : undefined;\n    }\n    nodeIsUncollapsedParent(node) {\n        const nodeLocation = this.model.getNodeLocation(node);\n        return this.model.getListRenderCount(nodeLocation) > 1;\n    }\n    getNodeIndex(node) {\n        const nodeLocation = this.model.getNodeLocation(node);\n        const nodeIndex = this.model.getListIndex(nodeLocation);\n        return nodeIndex;\n    }\n    getNodeRange(node) {\n        const nodeLocation = this.model.getNodeLocation(node);\n        const startIndex = this.model.getListIndex(nodeLocation);\n        if (startIndex < 0) {\n            throw new Error('Node not found in tree');\n        }\n        const renderCount = this.model.getListRenderCount(nodeLocation);\n        const endIndex = startIndex + renderCount - 1;\n        return { startIndex, endIndex };\n    }\n    nodePositionTopBelowWidget(node) {\n        const ancestors = [];\n        let currentAncestor = this.getParentNode(node);\n        while (currentAncestor) {\n            ancestors.push(currentAncestor);\n            currentAncestor = this.getParentNode(currentAncestor);\n        }\n        let widgetHeight = 0;\n        for (let i = 0; i < ancestors.length && i < this.stickyScrollMaxItemCount; i++) {\n            widgetHeight += this.treeDelegate.getHeight(ancestors[i]);\n        }\n        return widgetHeight;\n    }\n    domFocus() {\n        this._widget.domFocus();\n    }\n    // Whether sticky scroll was the last focused part in the tree or not\n    focusedLast() {\n        return this._widget.focusedLast();\n    }\n    updateOptions(optionsUpdate = {}) {\n        if (!optionsUpdate.stickyScrollMaxItemCount) {\n            return;\n        }\n        const validatedOptions = this.validateStickySettings(optionsUpdate);\n        if (this.stickyScrollMaxItemCount !== validatedOptions.stickyScrollMaxItemCount) {\n            this.stickyScrollMaxItemCount = validatedOptions.stickyScrollMaxItemCount;\n            this.update();\n        }\n    }\n    validateStickySettings(options) {\n        let stickyScrollMaxItemCount = 7;\n        if (typeof options.stickyScrollMaxItemCount === 'number') {\n            stickyScrollMaxItemCount = Math.max(options.stickyScrollMaxItemCount, 1);\n        }\n        return { stickyScrollMaxItemCount };\n    }\n}\nclass StickyScrollWidget {\n    constructor(container, view, tree, treeRenderers, treeDelegate, accessibilityProvider) {\n        this.view = view;\n        this.tree = tree;\n        this.treeRenderers = treeRenderers;\n        this.treeDelegate = treeDelegate;\n        this.accessibilityProvider = accessibilityProvider;\n        this._previousElements = [];\n        this._previousStateDisposables = new DisposableStore();\n        this._rootDomNode = $('.monaco-tree-sticky-container.empty');\n        container.appendChild(this._rootDomNode);\n        const shadow = $('.monaco-tree-sticky-container-shadow');\n        this._rootDomNode.appendChild(shadow);\n        this.stickyScrollFocus = new StickyScrollFocus(this._rootDomNode, view);\n        this.onDidChangeHasFocus = this.stickyScrollFocus.onDidChangeHasFocus;\n        this.onContextMenu = this.stickyScrollFocus.onContextMenu;\n    }\n    get height() {\n        if (!this._previousState) {\n            return 0;\n        }\n        const lastElement = this._previousState.stickyNodes[this._previousState.count - 1];\n        return lastElement.position + lastElement.height;\n    }\n    setState(state) {\n        const wasVisible = !!this._previousState && this._previousState.count > 0;\n        const isVisible = !!state && state.count > 0;\n        // If state has not changed, do nothing\n        if ((!wasVisible && !isVisible) || (wasVisible && isVisible && this._previousState.equal(state))) {\n            return;\n        }\n        // Update visibility of the widget if changed\n        if (wasVisible !== isVisible) {\n            this.setVisible(isVisible);\n        }\n        if (!isVisible) {\n            this._previousState = undefined;\n            this._previousElements = [];\n            this._previousStateDisposables.clear();\n            return;\n        }\n        const lastStickyNode = state.stickyNodes[state.count - 1];\n        // If the new state is only a change in the last node's position, update the position of the last element\n        if (this._previousState && state.animationStateChanged(this._previousState)) {\n            this._previousElements[this._previousState.count - 1].style.top = `${lastStickyNode.position}px`;\n        }\n        // create new dom elements\n        else {\n            this._previousStateDisposables.clear();\n            const elements = Array(state.count);\n            for (let stickyIndex = state.count - 1; stickyIndex >= 0; stickyIndex--) {\n                const stickyNode = state.stickyNodes[stickyIndex];\n                const { element, disposable } = this.createElement(stickyNode, stickyIndex, state.count);\n                elements[stickyIndex] = element;\n                this._rootDomNode.appendChild(element);\n                this._previousStateDisposables.add(disposable);\n            }\n            this.stickyScrollFocus.updateElements(elements, state);\n            this._previousElements = elements;\n        }\n        this._previousState = state;\n        // Set the height of the widget to the bottom of the last sticky node\n        this._rootDomNode.style.height = `${lastStickyNode.position + lastStickyNode.height}px`;\n    }\n    createElement(stickyNode, stickyIndex, stickyNodesTotal) {\n        const nodeIndex = stickyNode.startIndex;\n        // Sticky element container\n        const stickyElement = document.createElement('div');\n        stickyElement.style.top = `${stickyNode.position}px`;\n        if (this.tree.options.setRowHeight !== false) {\n            stickyElement.style.height = `${stickyNode.height}px`;\n        }\n        if (this.tree.options.setRowLineHeight !== false) {\n            stickyElement.style.lineHeight = `${stickyNode.height}px`;\n        }\n        stickyElement.classList.add('monaco-tree-sticky-row');\n        stickyElement.classList.add('monaco-list-row');\n        stickyElement.setAttribute('data-index', `${nodeIndex}`);\n        stickyElement.setAttribute('data-parity', nodeIndex % 2 === 0 ? 'even' : 'odd');\n        stickyElement.setAttribute('id', this.view.getElementID(nodeIndex));\n        const accessibilityDisposable = this.setAccessibilityAttributes(stickyElement, stickyNode.node.element, stickyIndex, stickyNodesTotal);\n        // Get the renderer for the node\n        const nodeTemplateId = this.treeDelegate.getTemplateId(stickyNode.node);\n        const renderer = this.treeRenderers.find((renderer) => renderer.templateId === nodeTemplateId);\n        if (!renderer) {\n            throw new Error(`No renderer found for template id ${nodeTemplateId}`);\n        }\n        // To make sure we do not influence the original node, we create a copy of the node\n        // We need to check if it is already a unique instance of the node by the delegate\n        let nodeCopy = stickyNode.node;\n        if (nodeCopy === this.tree.getNode(this.tree.getNodeLocation(stickyNode.node))) {\n            nodeCopy = new Proxy(stickyNode.node, {});\n        }\n        // Render the element\n        const templateData = renderer.renderTemplate(stickyElement);\n        renderer.renderElement(nodeCopy, stickyNode.startIndex, templateData, stickyNode.height);\n        // Remove the element from the DOM when state is disposed\n        const disposable = toDisposable(() => {\n            accessibilityDisposable.dispose();\n            renderer.disposeElement(nodeCopy, stickyNode.startIndex, templateData, stickyNode.height);\n            renderer.disposeTemplate(templateData);\n            stickyElement.remove();\n        });\n        return { element: stickyElement, disposable };\n    }\n    setAccessibilityAttributes(container, element, stickyIndex, stickyNodesTotal) {\n        var _a;\n        if (!this.accessibilityProvider) {\n            return Disposable.None;\n        }\n        if (this.accessibilityProvider.getSetSize) {\n            container.setAttribute('aria-setsize', String(this.accessibilityProvider.getSetSize(element, stickyIndex, stickyNodesTotal)));\n        }\n        if (this.accessibilityProvider.getPosInSet) {\n            container.setAttribute('aria-posinset', String(this.accessibilityProvider.getPosInSet(element, stickyIndex)));\n        }\n        if (this.accessibilityProvider.getRole) {\n            container.setAttribute('role', (_a = this.accessibilityProvider.getRole(element)) !== null && _a !== void 0 ? _a : 'treeitem');\n        }\n        const ariaLabel = this.accessibilityProvider.getAriaLabel(element);\n        const observable = (ariaLabel && typeof ariaLabel !== 'string') ? ariaLabel : constObservable(ariaLabel);\n        const result = autorun(reader => {\n            const value = reader.readObservable(observable);\n            if (value) {\n                container.setAttribute('aria-label', value);\n            }\n            else {\n                container.removeAttribute('aria-label');\n            }\n        });\n        if (typeof ariaLabel === 'string') {\n        }\n        else if (ariaLabel) {\n            container.setAttribute('aria-label', ariaLabel.get());\n        }\n        const ariaLevel = this.accessibilityProvider.getAriaLevel && this.accessibilityProvider.getAriaLevel(element);\n        if (typeof ariaLevel === 'number') {\n            container.setAttribute('aria-level', `${ariaLevel}`);\n        }\n        // Sticky Scroll elements can not be selected\n        container.setAttribute('aria-selected', String(false));\n        return result;\n    }\n    setVisible(visible) {\n        this._rootDomNode.classList.toggle('empty', !visible);\n        if (!visible) {\n            this.stickyScrollFocus.updateElements([], undefined);\n        }\n    }\n    domFocus() {\n        this.stickyScrollFocus.domFocus();\n    }\n    focusedLast() {\n        return this.stickyScrollFocus.focusedLast();\n    }\n    dispose() {\n        this.stickyScrollFocus.dispose();\n        this._previousStateDisposables.dispose();\n        this._rootDomNode.remove();\n    }\n}\nclass StickyScrollFocus extends Disposable {\n    get domHasFocus() { return this._domHasFocus; }\n    set domHasFocus(hasFocus) {\n        if (hasFocus !== this._domHasFocus) {\n            this._onDidChangeHasFocus.fire(hasFocus);\n            this._domHasFocus = hasFocus;\n        }\n    }\n    constructor(container, view) {\n        super();\n        this.container = container;\n        this.view = view;\n        this.focusedIndex = -1;\n        this.elements = [];\n        this._onDidChangeHasFocus = new Emitter();\n        this.onDidChangeHasFocus = this._onDidChangeHasFocus.event;\n        this._onContextMenu = new Emitter();\n        this.onContextMenu = this._onContextMenu.event;\n        this._domHasFocus = false;\n        this.container.addEventListener('focus', () => this.onFocus());\n        this.container.addEventListener('blur', () => this.onBlur());\n        this._register(this.view.onDidFocus(() => this.toggleStickyScrollFocused(false)));\n        this._register(this.view.onKeyDown((e) => this.onKeyDown(e)));\n        this._register(this.view.onMouseDown((e) => this.onMouseDown(e)));\n        this._register(this.view.onContextMenu((e) => this.handleContextMenu(e)));\n    }\n    handleContextMenu(e) {\n        const target = e.browserEvent.target;\n        if (!isStickyScrollContainer(target) && !isStickyScrollElement(target)) {\n            if (this.focusedLast()) {\n                this.view.domFocus();\n            }\n            return;\n        }\n        // The list handles the context menu triggered by a mouse event\n        // In that case only set the focus of the element clicked and leave the rest to the list to handle\n        if (!isKeyboardEvent(e.browserEvent)) {\n            if (!this.state) {\n                throw new Error('Context menu should not be triggered when state is undefined');\n            }\n            const stickyIndex = this.state.stickyNodes.findIndex(stickyNode => { var _a; return stickyNode.node.element === ((_a = e.element) === null || _a === void 0 ? void 0 : _a.element); });\n            if (stickyIndex === -1) {\n                throw new Error('Context menu should not be triggered when element is not in sticky scroll widget');\n            }\n            this.container.focus();\n            this.setFocus(stickyIndex);\n            return;\n        }\n        if (!this.state || this.focusedIndex < 0) {\n            throw new Error('Context menu key should not be triggered when focus is not in sticky scroll widget');\n        }\n        const stickyNode = this.state.stickyNodes[this.focusedIndex];\n        const element = stickyNode.node.element;\n        const anchor = this.elements[this.focusedIndex];\n        this._onContextMenu.fire({ element, anchor, browserEvent: e.browserEvent, isStickyScroll: true });\n    }\n    onKeyDown(e) {\n        // Sticky Scroll Navigation\n        if (this.domHasFocus && this.state) {\n            // Move up\n            if (e.key === 'ArrowUp') {\n                this.setFocusedElement(Math.max(0, this.focusedIndex - 1));\n                e.preventDefault();\n                e.stopPropagation();\n            }\n            // Move down, if last sticky node is focused, move focus into first child of last sticky node\n            else if (e.key === 'ArrowDown' || e.key === 'ArrowRight') {\n                if (this.focusedIndex >= this.state.count - 1) {\n                    const nodeIndexToFocus = this.state.stickyNodes[this.state.count - 1].startIndex + 1;\n                    this.view.domFocus();\n                    this.view.setFocus([nodeIndexToFocus]);\n                    this.scrollNodeUnderWidget(nodeIndexToFocus, this.state);\n                }\n                else {\n                    this.setFocusedElement(this.focusedIndex + 1);\n                }\n                e.preventDefault();\n                e.stopPropagation();\n            }\n        }\n    }\n    onMouseDown(e) {\n        const target = e.browserEvent.target;\n        if (!isStickyScrollContainer(target) && !isStickyScrollElement(target)) {\n            return;\n        }\n        e.browserEvent.preventDefault();\n        e.browserEvent.stopPropagation();\n    }\n    updateElements(elements, state) {\n        if (state && state.count === 0) {\n            throw new Error('Sticky scroll state must be undefined when there are no sticky nodes');\n        }\n        if (state && state.count !== elements.length) {\n            throw new Error('Sticky scroll focus received illigel state');\n        }\n        const previousIndex = this.focusedIndex;\n        this.removeFocus();\n        this.elements = elements;\n        this.state = state;\n        if (state) {\n            const newFocusedIndex = clamp(previousIndex, 0, state.count - 1);\n            this.setFocus(newFocusedIndex);\n        }\n        else {\n            if (this.domHasFocus) {\n                this.view.domFocus();\n            }\n        }\n        // must come last as it calls blur()\n        this.container.tabIndex = state ? 0 : -1;\n    }\n    setFocusedElement(stickyIndex) {\n        // doesn't imply that the widget has (or will have) focus\n        const state = this.state;\n        if (!state) {\n            throw new Error('Cannot set focus when state is undefined');\n        }\n        this.setFocus(stickyIndex);\n        if (stickyIndex < state.count - 1) {\n            return;\n        }\n        // If the last sticky node is not fully visible, scroll it into view\n        if (state.lastNodePartiallyVisible()) {\n            const lastStickyNode = state.stickyNodes[stickyIndex];\n            this.scrollNodeUnderWidget(lastStickyNode.endIndex + 1, state);\n        }\n    }\n    scrollNodeUnderWidget(nodeIndex, state) {\n        const lastStickyNode = state.stickyNodes[state.count - 1];\n        const secondLastStickyNode = state.count > 1 ? state.stickyNodes[state.count - 2] : undefined;\n        const elementScrollTop = this.view.getElementTop(nodeIndex);\n        const elementTargetViewTop = secondLastStickyNode ? secondLastStickyNode.position + secondLastStickyNode.height + lastStickyNode.height : lastStickyNode.height;\n        this.view.scrollTop = elementScrollTop - elementTargetViewTop;\n    }\n    domFocus() {\n        if (!this.state) {\n            throw new Error('Cannot focus when state is undefined');\n        }\n        this.container.focus();\n    }\n    focusedLast() {\n        if (!this.state) {\n            return false;\n        }\n        return this.view.getHTMLElement().classList.contains('sticky-scroll-focused');\n    }\n    removeFocus() {\n        if (this.focusedIndex === -1) {\n            return;\n        }\n        this.toggleElementFocus(this.elements[this.focusedIndex], false);\n        this.focusedIndex = -1;\n    }\n    setFocus(newFocusIndex) {\n        if (0 > newFocusIndex) {\n            throw new Error('addFocus() can not remove focus');\n        }\n        if (!this.state && newFocusIndex >= 0) {\n            throw new Error('Cannot set focus index when state is undefined');\n        }\n        if (this.state && newFocusIndex >= this.state.count) {\n            throw new Error('Cannot set focus index to an index that does not exist');\n        }\n        const oldIndex = this.focusedIndex;\n        if (oldIndex >= 0) {\n            this.toggleElementFocus(this.elements[oldIndex], false);\n        }\n        if (newFocusIndex >= 0) {\n            this.toggleElementFocus(this.elements[newFocusIndex], true);\n        }\n        this.focusedIndex = newFocusIndex;\n    }\n    toggleElementFocus(element, focused) {\n        this.toggleElementActiveFocus(element, focused && this.domHasFocus);\n        this.toggleElementPassiveFocus(element, focused);\n    }\n    toggleCurrentElementActiveFocus(focused) {\n        if (this.focusedIndex === -1) {\n            return;\n        }\n        this.toggleElementActiveFocus(this.elements[this.focusedIndex], focused);\n    }\n    toggleElementActiveFocus(element, focused) {\n        // active focus is set when sticky scroll has focus\n        element.classList.toggle('focused', focused);\n    }\n    toggleElementPassiveFocus(element, focused) {\n        // passive focus allows to show focus when sticky scroll does not have focus\n        // for example when the context menu has focus\n        element.classList.toggle('passive-focused', focused);\n    }\n    toggleStickyScrollFocused(focused) {\n        // Weather the last focus in the view was sticky scroll and not the list\n        // Is only removed when the focus is back in the tree an no longer in sticky scroll\n        this.view.getHTMLElement().classList.toggle('sticky-scroll-focused', focused);\n    }\n    onFocus() {\n        if (!this.state || this.elements.length === 0) {\n            throw new Error('Cannot focus when state is undefined or elements are empty');\n        }\n        this.domHasFocus = true;\n        this.toggleStickyScrollFocused(true);\n        this.toggleCurrentElementActiveFocus(true);\n        if (this.focusedIndex === -1) {\n            this.setFocus(0);\n        }\n    }\n    onBlur() {\n        this.domHasFocus = false;\n        this.toggleCurrentElementActiveFocus(false);\n    }\n    dispose() {\n        this.toggleStickyScrollFocused(false);\n        this._onDidChangeHasFocus.fire(false);\n        super.dispose();\n    }\n}\nfunction asTreeMouseEvent(event) {\n    let target = TreeMouseEventTarget.Unknown;\n    if (hasParentWithClass(event.browserEvent.target, 'monaco-tl-twistie', 'monaco-tl-row')) {\n        target = TreeMouseEventTarget.Twistie;\n    }\n    else if (hasParentWithClass(event.browserEvent.target, 'monaco-tl-contents', 'monaco-tl-row')) {\n        target = TreeMouseEventTarget.Element;\n    }\n    else if (hasParentWithClass(event.browserEvent.target, 'monaco-tree-type-filter', 'monaco-list')) {\n        target = TreeMouseEventTarget.Filter;\n    }\n    return {\n        browserEvent: event.browserEvent,\n        element: event.element ? event.element.element : null,\n        target\n    };\n}\nfunction asTreeContextMenuEvent(event) {\n    const isStickyScroll = isStickyScrollContainer(event.browserEvent.target);\n    return {\n        element: event.element ? event.element.element : null,\n        browserEvent: event.browserEvent,\n        anchor: event.anchor,\n        isStickyScroll\n    };\n}\nfunction dfs(node, fn) {\n    fn(node);\n    node.children.forEach(child => dfs(child, fn));\n}\n/**\n * The trait concept needs to exist at the tree level, because collapsed\n * tree nodes will not be known by the list.\n */\nclass Trait {\n    get nodeSet() {\n        if (!this._nodeSet) {\n            this._nodeSet = this.createNodeSet();\n        }\n        return this._nodeSet;\n    }\n    constructor(getFirstViewElementWithTrait, identityProvider) {\n        this.getFirstViewElementWithTrait = getFirstViewElementWithTrait;\n        this.identityProvider = identityProvider;\n        this.nodes = [];\n        this._onDidChange = new Emitter();\n        this.onDidChange = this._onDidChange.event;\n    }\n    set(nodes, browserEvent) {\n        if (!(browserEvent === null || browserEvent === void 0 ? void 0 : browserEvent.__forceEvent) && equals(this.nodes, nodes)) {\n            return;\n        }\n        this._set(nodes, false, browserEvent);\n    }\n    _set(nodes, silent, browserEvent) {\n        this.nodes = [...nodes];\n        this.elements = undefined;\n        this._nodeSet = undefined;\n        if (!silent) {\n            const that = this;\n            this._onDidChange.fire({ get elements() { return that.get(); }, browserEvent });\n        }\n    }\n    get() {\n        if (!this.elements) {\n            this.elements = this.nodes.map(node => node.element);\n        }\n        return [...this.elements];\n    }\n    getNodes() {\n        return this.nodes;\n    }\n    has(node) {\n        return this.nodeSet.has(node);\n    }\n    onDidModelSplice({ insertedNodes, deletedNodes }) {\n        if (!this.identityProvider) {\n            const set = this.createNodeSet();\n            const visit = (node) => set.delete(node);\n            deletedNodes.forEach(node => dfs(node, visit));\n            this.set([...set.values()]);\n            return;\n        }\n        const deletedNodesIdSet = new Set();\n        const deletedNodesVisitor = (node) => deletedNodesIdSet.add(this.identityProvider.getId(node.element).toString());\n        deletedNodes.forEach(node => dfs(node, deletedNodesVisitor));\n        const insertedNodesMap = new Map();\n        const insertedNodesVisitor = (node) => insertedNodesMap.set(this.identityProvider.getId(node.element).toString(), node);\n        insertedNodes.forEach(node => dfs(node, insertedNodesVisitor));\n        const nodes = [];\n        for (const node of this.nodes) {\n            const id = this.identityProvider.getId(node.element).toString();\n            const wasDeleted = deletedNodesIdSet.has(id);\n            if (!wasDeleted) {\n                nodes.push(node);\n            }\n            else {\n                const insertedNode = insertedNodesMap.get(id);\n                if (insertedNode && insertedNode.visible) {\n                    nodes.push(insertedNode);\n                }\n            }\n        }\n        if (this.nodes.length > 0 && nodes.length === 0) {\n            const node = this.getFirstViewElementWithTrait();\n            if (node) {\n                nodes.push(node);\n            }\n        }\n        this._set(nodes, true);\n    }\n    createNodeSet() {\n        const set = new Set();\n        for (const node of this.nodes) {\n            set.add(node);\n        }\n        return set;\n    }\n}\nclass TreeNodeListMouseController extends MouseController {\n    constructor(list, tree, stickyScrollProvider) {\n        super(list);\n        this.tree = tree;\n        this.stickyScrollProvider = stickyScrollProvider;\n    }\n    onViewPointer(e) {\n        if (isButton(e.browserEvent.target) ||\n            isInputElement(e.browserEvent.target) ||\n            isMonacoEditor(e.browserEvent.target)) {\n            return;\n        }\n        if (e.browserEvent.isHandledByList) {\n            return;\n        }\n        const node = e.element;\n        if (!node) {\n            return super.onViewPointer(e);\n        }\n        if (this.isSelectionRangeChangeEvent(e) || this.isSelectionSingleChangeEvent(e)) {\n            return super.onViewPointer(e);\n        }\n        const target = e.browserEvent.target;\n        const onTwistie = target.classList.contains('monaco-tl-twistie')\n            || (target.classList.contains('monaco-icon-label') && target.classList.contains('folder-icon') && e.browserEvent.offsetX < 16);\n        const isStickyElement = isStickyScrollElement(e.browserEvent.target);\n        let expandOnlyOnTwistieClick = false;\n        if (isStickyElement) {\n            expandOnlyOnTwistieClick = true;\n        }\n        else if (typeof this.tree.expandOnlyOnTwistieClick === 'function') {\n            expandOnlyOnTwistieClick = this.tree.expandOnlyOnTwistieClick(node.element);\n        }\n        else {\n            expandOnlyOnTwistieClick = !!this.tree.expandOnlyOnTwistieClick;\n        }\n        if (!isStickyElement) {\n            if (expandOnlyOnTwistieClick && !onTwistie && e.browserEvent.detail !== 2) {\n                return super.onViewPointer(e);\n            }\n            if (!this.tree.expandOnDoubleClick && e.browserEvent.detail === 2) {\n                return super.onViewPointer(e);\n            }\n        }\n        else {\n            this.handleStickyScrollMouseEvent(e, node);\n        }\n        if (node.collapsible && (!isStickyElement || onTwistie)) {\n            const location = this.tree.getNodeLocation(node);\n            const recursive = e.browserEvent.altKey;\n            this.tree.setFocus([location]);\n            this.tree.toggleCollapsed(location, recursive);\n            if (onTwistie) {\n                // Do not set this before calling a handler on the super class, because it will reject it as handled\n                e.browserEvent.isHandledByList = true;\n                return;\n            }\n        }\n        if (!isStickyElement) {\n            super.onViewPointer(e);\n        }\n    }\n    handleStickyScrollMouseEvent(e, node) {\n        if (isMonacoCustomToggle(e.browserEvent.target) || isActionItem(e.browserEvent.target)) {\n            return;\n        }\n        const stickyScrollController = this.stickyScrollProvider();\n        if (!stickyScrollController) {\n            throw new Error('Sticky scroll controller not found');\n        }\n        const nodeIndex = this.list.indexOf(node);\n        const elementScrollTop = this.list.getElementTop(nodeIndex);\n        const elementTargetViewTop = stickyScrollController.nodePositionTopBelowWidget(node);\n        this.tree.scrollTop = elementScrollTop - elementTargetViewTop;\n        this.list.domFocus();\n        this.list.setFocus([nodeIndex]);\n        this.list.setSelection([nodeIndex]);\n    }\n    onDoubleClick(e) {\n        const onTwistie = e.browserEvent.target.classList.contains('monaco-tl-twistie');\n        if (onTwistie || !this.tree.expandOnDoubleClick) {\n            return;\n        }\n        if (e.browserEvent.isHandledByList) {\n            return;\n        }\n        super.onDoubleClick(e);\n    }\n    // to make sure dom focus is not stolen (for example with context menu)\n    onMouseDown(e) {\n        const target = e.browserEvent.target;\n        if (!isStickyScrollContainer(target) && !isStickyScrollElement(target)) {\n            super.onMouseDown(e);\n            return;\n        }\n    }\n    onContextMenu(e) {\n        const target = e.browserEvent.target;\n        if (!isStickyScrollContainer(target) && !isStickyScrollElement(target)) {\n            super.onContextMenu(e);\n            return;\n        }\n    }\n}\n/**\n * We use this List subclass to restore selection and focus as nodes\n * get rendered in the list, possibly due to a node expand() call.\n */\nclass TreeNodeList extends List {\n    constructor(user, container, virtualDelegate, renderers, focusTrait, selectionTrait, anchorTrait, options) {\n        super(user, container, virtualDelegate, renderers, options);\n        this.focusTrait = focusTrait;\n        this.selectionTrait = selectionTrait;\n        this.anchorTrait = anchorTrait;\n    }\n    createMouseController(options) {\n        return new TreeNodeListMouseController(this, options.tree, options.stickyScrollProvider);\n    }\n    splice(start, deleteCount, elements = []) {\n        super.splice(start, deleteCount, elements);\n        if (elements.length === 0) {\n            return;\n        }\n        const additionalFocus = [];\n        const additionalSelection = [];\n        let anchor;\n        elements.forEach((node, index) => {\n            if (this.focusTrait.has(node)) {\n                additionalFocus.push(start + index);\n            }\n            if (this.selectionTrait.has(node)) {\n                additionalSelection.push(start + index);\n            }\n            if (this.anchorTrait.has(node)) {\n                anchor = start + index;\n            }\n        });\n        if (additionalFocus.length > 0) {\n            super.setFocus(distinct([...super.getFocus(), ...additionalFocus]));\n        }\n        if (additionalSelection.length > 0) {\n            super.setSelection(distinct([...super.getSelection(), ...additionalSelection]));\n        }\n        if (typeof anchor === 'number') {\n            super.setAnchor(anchor);\n        }\n    }\n    setFocus(indexes, browserEvent, fromAPI = false) {\n        super.setFocus(indexes, browserEvent);\n        if (!fromAPI) {\n            this.focusTrait.set(indexes.map(i => this.element(i)), browserEvent);\n        }\n    }\n    setSelection(indexes, browserEvent, fromAPI = false) {\n        super.setSelection(indexes, browserEvent);\n        if (!fromAPI) {\n            this.selectionTrait.set(indexes.map(i => this.element(i)), browserEvent);\n        }\n    }\n    setAnchor(index, fromAPI = false) {\n        super.setAnchor(index);\n        if (!fromAPI) {\n            if (typeof index === 'undefined') {\n                this.anchorTrait.set([]);\n            }\n            else {\n                this.anchorTrait.set([this.element(index)]);\n            }\n        }\n    }\n}\nexport class AbstractTree {\n    get onDidScroll() { return this.view.onDidScroll; }\n    get onDidChangeFocus() { return this.eventBufferer.wrapEvent(this.focus.onDidChange); }\n    get onDidChangeSelection() { return this.eventBufferer.wrapEvent(this.selection.onDidChange); }\n    get onMouseDblClick() { return Event.filter(Event.map(this.view.onMouseDblClick, asTreeMouseEvent), e => e.target !== TreeMouseEventTarget.Filter); }\n    get onMouseOver() { return Event.map(this.view.onMouseOver, asTreeMouseEvent); }\n    get onMouseOut() { return Event.map(this.view.onMouseOut, asTreeMouseEvent); }\n    get onContextMenu() { var _a, _b; return Event.any(Event.filter(Event.map(this.view.onContextMenu, asTreeContextMenuEvent), e => !e.isStickyScroll), (_b = (_a = this.stickyScrollController) === null || _a === void 0 ? void 0 : _a.onContextMenu) !== null && _b !== void 0 ? _b : Event.None); }\n    get onPointer() { return Event.map(this.view.onPointer, asTreeMouseEvent); }\n    get onKeyDown() { return this.view.onKeyDown; }\n    get onDidFocus() { return this.view.onDidFocus; }\n    get onDidChangeModel() { return Event.signal(this.model.onDidSplice); }\n    get onDidChangeCollapseState() { return this.model.onDidChangeCollapseState; }\n    get findMode() { var _a, _b; return (_b = (_a = this.findController) === null || _a === void 0 ? void 0 : _a.mode) !== null && _b !== void 0 ? _b : TreeFindMode.Highlight; }\n    set findMode(findMode) { if (this.findController) {\n        this.findController.mode = findMode;\n    } }\n    get findMatchType() { var _a, _b; return (_b = (_a = this.findController) === null || _a === void 0 ? void 0 : _a.matchType) !== null && _b !== void 0 ? _b : TreeFindMatchType.Fuzzy; }\n    set findMatchType(findFuzzy) { if (this.findController) {\n        this.findController.matchType = findFuzzy;\n    } }\n    get expandOnDoubleClick() { return typeof this._options.expandOnDoubleClick === 'undefined' ? true : this._options.expandOnDoubleClick; }\n    get expandOnlyOnTwistieClick() { return typeof this._options.expandOnlyOnTwistieClick === 'undefined' ? true : this._options.expandOnlyOnTwistieClick; }\n    get onDidDispose() { return this.view.onDidDispose; }\n    constructor(_user, container, delegate, renderers, _options = {}) {\n        var _a;\n        this._user = _user;\n        this._options = _options;\n        this.eventBufferer = new EventBufferer();\n        this.onDidChangeFindOpenState = Event.None;\n        this.onDidChangeStickyScrollFocused = Event.None;\n        this.disposables = new DisposableStore();\n        this._onWillRefilter = new Emitter();\n        this.onWillRefilter = this._onWillRefilter.event;\n        this._onDidUpdateOptions = new Emitter();\n        this.treeDelegate = new ComposedTreeDelegate(delegate);\n        const onDidChangeCollapseStateRelay = new Relay();\n        const onDidChangeActiveNodes = new Relay();\n        const activeNodes = this.disposables.add(new EventCollection(onDidChangeActiveNodes.event));\n        const renderedIndentGuides = new SetMap();\n        this.renderers = renderers.map(r => new TreeRenderer(r, () => this.model, onDidChangeCollapseStateRelay.event, activeNodes, renderedIndentGuides, _options));\n        for (const r of this.renderers) {\n            this.disposables.add(r);\n        }\n        let filter;\n        if (_options.keyboardNavigationLabelProvider) {\n            filter = new FindFilter(this, _options.keyboardNavigationLabelProvider, _options.filter);\n            _options = { ..._options, filter: filter }; // TODO need typescript help here\n            this.disposables.add(filter);\n        }\n        this.focus = new Trait(() => this.view.getFocusedElements()[0], _options.identityProvider);\n        this.selection = new Trait(() => this.view.getSelectedElements()[0], _options.identityProvider);\n        this.anchor = new Trait(() => this.view.getAnchorElement(), _options.identityProvider);\n        this.view = new TreeNodeList(_user, container, this.treeDelegate, this.renderers, this.focus, this.selection, this.anchor, { ...asListOptions(() => this.model, _options), tree: this, stickyScrollProvider: () => this.stickyScrollController });\n        this.model = this.createModel(_user, this.view, _options);\n        onDidChangeCollapseStateRelay.input = this.model.onDidChangeCollapseState;\n        const onDidModelSplice = Event.forEach(this.model.onDidSplice, e => {\n            this.eventBufferer.bufferEvents(() => {\n                this.focus.onDidModelSplice(e);\n                this.selection.onDidModelSplice(e);\n            });\n        }, this.disposables);\n        // Make sure the `forEach` always runs\n        onDidModelSplice(() => null, null, this.disposables);\n        // Active nodes can change when the model changes or when focus or selection change.\n        // We debounce it with 0 delay since these events may fire in the same stack and we only\n        // want to run this once. It also doesn't matter if it runs on the next tick since it's only\n        // a nice to have UI feature.\n        const activeNodesEmitter = this.disposables.add(new Emitter());\n        const activeNodesDebounce = this.disposables.add(new Delayer(0));\n        this.disposables.add(Event.any(onDidModelSplice, this.focus.onDidChange, this.selection.onDidChange)(() => {\n            activeNodesDebounce.trigger(() => {\n                const set = new Set();\n                for (const node of this.focus.getNodes()) {\n                    set.add(node);\n                }\n                for (const node of this.selection.getNodes()) {\n                    set.add(node);\n                }\n                activeNodesEmitter.fire([...set.values()]);\n            });\n        }));\n        onDidChangeActiveNodes.input = activeNodesEmitter.event;\n        if (_options.keyboardSupport !== false) {\n            const onKeyDown = Event.chain(this.view.onKeyDown, $ => $.filter(e => !isInputElement(e.target))\n                .map(e => new StandardKeyboardEvent(e)));\n            Event.chain(onKeyDown, $ => $.filter(e => e.keyCode === 15 /* KeyCode.LeftArrow */))(this.onLeftArrow, this, this.disposables);\n            Event.chain(onKeyDown, $ => $.filter(e => e.keyCode === 17 /* KeyCode.RightArrow */))(this.onRightArrow, this, this.disposables);\n            Event.chain(onKeyDown, $ => $.filter(e => e.keyCode === 10 /* KeyCode.Space */))(this.onSpace, this, this.disposables);\n        }\n        if (((_a = _options.findWidgetEnabled) !== null && _a !== void 0 ? _a : true) && _options.keyboardNavigationLabelProvider && _options.contextViewProvider) {\n            const opts = this.options.findWidgetStyles ? { styles: this.options.findWidgetStyles } : undefined;\n            this.findController = new FindController(this, this.model, this.view, filter, _options.contextViewProvider, opts);\n            this.focusNavigationFilter = node => this.findController.shouldAllowFocus(node);\n            this.onDidChangeFindOpenState = this.findController.onDidChangeOpenState;\n            this.disposables.add(this.findController);\n            this.onDidChangeFindMode = this.findController.onDidChangeMode;\n            this.onDidChangeFindMatchType = this.findController.onDidChangeMatchType;\n        }\n        else {\n            this.onDidChangeFindMode = Event.None;\n            this.onDidChangeFindMatchType = Event.None;\n        }\n        if (_options.enableStickyScroll) {\n            this.stickyScrollController = new StickyScrollController(this, this.model, this.view, this.renderers, this.treeDelegate, _options);\n            this.onDidChangeStickyScrollFocused = this.stickyScrollController.onDidChangeHasFocus;\n        }\n        this.styleElement = createStyleSheet(this.view.getHTMLElement());\n        this.getHTMLElement().classList.toggle('always', this._options.renderIndentGuides === RenderIndentGuides.Always);\n    }\n    updateOptions(optionsUpdate = {}) {\n        var _a;\n        this._options = { ...this._options, ...optionsUpdate };\n        for (const renderer of this.renderers) {\n            renderer.updateOptions(optionsUpdate);\n        }\n        this.view.updateOptions(this._options);\n        (_a = this.findController) === null || _a === void 0 ? void 0 : _a.updateOptions(optionsUpdate);\n        this.updateStickyScroll(optionsUpdate);\n        this._onDidUpdateOptions.fire(this._options);\n        this.getHTMLElement().classList.toggle('always', this._options.renderIndentGuides === RenderIndentGuides.Always);\n    }\n    get options() {\n        return this._options;\n    }\n    updateStickyScroll(optionsUpdate) {\n        var _a;\n        if (!this.stickyScrollController && this._options.enableStickyScroll) {\n            this.stickyScrollController = new StickyScrollController(this, this.model, this.view, this.renderers, this.treeDelegate, this._options);\n            this.onDidChangeStickyScrollFocused = this.stickyScrollController.onDidChangeHasFocus;\n        }\n        else if (this.stickyScrollController && !this._options.enableStickyScroll) {\n            this.onDidChangeStickyScrollFocused = Event.None;\n            this.stickyScrollController.dispose();\n            this.stickyScrollController = undefined;\n        }\n        (_a = this.stickyScrollController) === null || _a === void 0 ? void 0 : _a.updateOptions(optionsUpdate);\n    }\n    // Widget\n    getHTMLElement() {\n        return this.view.getHTMLElement();\n    }\n    get scrollTop() {\n        return this.view.scrollTop;\n    }\n    set scrollTop(scrollTop) {\n        this.view.scrollTop = scrollTop;\n    }\n    get scrollHeight() {\n        return this.view.scrollHeight;\n    }\n    get renderHeight() {\n        return this.view.renderHeight;\n    }\n    get ariaLabel() {\n        return this.view.ariaLabel;\n    }\n    set ariaLabel(value) {\n        this.view.ariaLabel = value;\n    }\n    domFocus() {\n        var _a;\n        if ((_a = this.stickyScrollController) === null || _a === void 0 ? void 0 : _a.focusedLast()) {\n            this.stickyScrollController.domFocus();\n        }\n        else {\n            this.view.domFocus();\n        }\n    }\n    layout(height, width) {\n        var _a;\n        this.view.layout(height, width);\n        if (isNumber(width)) {\n            (_a = this.findController) === null || _a === void 0 ? void 0 : _a.layout(width);\n        }\n    }\n    style(styles) {\n        var _a, _b;\n        const suffix = `.${this.view.domId}`;\n        const content = [];\n        if (styles.treeIndentGuidesStroke) {\n            content.push(`.monaco-list${suffix}:hover .monaco-tl-indent > .indent-guide, .monaco-list${suffix}.always .monaco-tl-indent > .indent-guide  { border-color: ${styles.treeInactiveIndentGuidesStroke}; }`);\n            content.push(`.monaco-list${suffix} .monaco-tl-indent > .indent-guide.active { border-color: ${styles.treeIndentGuidesStroke}; }`);\n        }\n        // Sticky Scroll Background\n        const stickyScrollBackground = (_a = styles.treeStickyScrollBackground) !== null && _a !== void 0 ? _a : styles.listBackground;\n        if (stickyScrollBackground) {\n            content.push(`.monaco-list${suffix} .monaco-scrollable-element .monaco-tree-sticky-container { background-color: ${stickyScrollBackground}; }`);\n            content.push(`.monaco-list${suffix} .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row { background-color: ${stickyScrollBackground}; }`);\n        }\n        // Sticky Scroll Border\n        if (styles.treeStickyScrollBorder) {\n            content.push(`.monaco-list${suffix} .monaco-scrollable-element .monaco-tree-sticky-container { border-bottom: 1px solid ${styles.treeStickyScrollBorder}; }`);\n        }\n        // Sticky Scroll Shadow\n        if (styles.treeStickyScrollShadow) {\n            content.push(`.monaco-list${suffix} .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-container-shadow { box-shadow: ${styles.treeStickyScrollShadow} 0 6px 6px -6px inset; height: 3px; }`);\n        }\n        // Sticky Scroll Focus\n        if (styles.listFocusForeground) {\n            content.push(`.monaco-list${suffix}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused { color: ${styles.listFocusForeground}; }`);\n            content.push(`.monaco-list${suffix}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused { color: inherit; }`);\n        }\n        // Sticky Scroll Focus Outlines\n        const focusAndSelectionOutline = asCssValueWithDefault(styles.listFocusAndSelectionOutline, asCssValueWithDefault(styles.listSelectionOutline, (_b = styles.listFocusOutline) !== null && _b !== void 0 ? _b : ''));\n        if (focusAndSelectionOutline) { // default: listFocusOutline\n            content.push(`.monaco-list${suffix}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused.selected { outline: 1px solid ${focusAndSelectionOutline}; outline-offset: -1px;}`);\n            content.push(`.monaco-list${suffix}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused.selected { outline: inherit;}`);\n        }\n        if (styles.listFocusOutline) { // default: set\n            content.push(`.monaco-list${suffix}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused { outline: 1px solid ${styles.listFocusOutline}; outline-offset: -1px; }`);\n            content.push(`.monaco-list${suffix}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused { outline: inherit; }`);\n            content.push(`.monaco-workbench.context-menu-visible .monaco-list${suffix}.last-focused.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.passive-focused { outline: 1px solid ${styles.listFocusOutline}; outline-offset: -1px; }`);\n            content.push(`.monaco-workbench.context-menu-visible .monaco-list${suffix}.last-focused.sticky-scroll-focused .monaco-list-rows .monaco-list-row.focused { outline: inherit; }`);\n            content.push(`.monaco-workbench.context-menu-visible .monaco-list${suffix}.last-focused:not(.sticky-scroll-focused) .monaco-tree-sticky-container .monaco-list-rows .monaco-list-row.focused { outline: inherit; }`);\n        }\n        this.styleElement.textContent = content.join('\\n');\n        this.view.style(styles);\n    }\n    // Tree navigation\n    getParentElement(location) {\n        const parentRef = this.model.getParentNodeLocation(location);\n        const parentNode = this.model.getNode(parentRef);\n        return parentNode.element;\n    }\n    getFirstElementChild(location) {\n        return this.model.getFirstElementChild(location);\n    }\n    // Tree\n    getNode(location) {\n        return this.model.getNode(location);\n    }\n    getNodeLocation(node) {\n        return this.model.getNodeLocation(node);\n    }\n    collapse(location, recursive = false) {\n        return this.model.setCollapsed(location, true, recursive);\n    }\n    expand(location, recursive = false) {\n        return this.model.setCollapsed(location, false, recursive);\n    }\n    toggleCollapsed(location, recursive = false) {\n        return this.model.setCollapsed(location, undefined, recursive);\n    }\n    isCollapsible(location) {\n        return this.model.isCollapsible(location);\n    }\n    setCollapsible(location, collapsible) {\n        return this.model.setCollapsible(location, collapsible);\n    }\n    isCollapsed(location) {\n        return this.model.isCollapsed(location);\n    }\n    refilter() {\n        this._onWillRefilter.fire(undefined);\n        this.model.refilter();\n    }\n    setSelection(elements, browserEvent) {\n        this.eventBufferer.bufferEvents(() => {\n            const nodes = elements.map(e => this.model.getNode(e));\n            this.selection.set(nodes, browserEvent);\n            const indexes = elements.map(e => this.model.getListIndex(e)).filter(i => i > -1);\n            this.view.setSelection(indexes, browserEvent, true);\n        });\n    }\n    getSelection() {\n        return this.selection.get();\n    }\n    setFocus(elements, browserEvent) {\n        this.eventBufferer.bufferEvents(() => {\n            const nodes = elements.map(e => this.model.getNode(e));\n            this.focus.set(nodes, browserEvent);\n            const indexes = elements.map(e => this.model.getListIndex(e)).filter(i => i > -1);\n            this.view.setFocus(indexes, browserEvent, true);\n        });\n    }\n    focusNext(n = 1, loop = false, browserEvent, filter = (isKeyboardEvent(browserEvent) && browserEvent.altKey) ? undefined : this.focusNavigationFilter) {\n        this.view.focusNext(n, loop, browserEvent, filter);\n    }\n    focusPrevious(n = 1, loop = false, browserEvent, filter = (isKeyboardEvent(browserEvent) && browserEvent.altKey) ? undefined : this.focusNavigationFilter) {\n        this.view.focusPrevious(n, loop, browserEvent, filter);\n    }\n    focusNextPage(browserEvent, filter = (isKeyboardEvent(browserEvent) && browserEvent.altKey) ? undefined : this.focusNavigationFilter) {\n        return this.view.focusNextPage(browserEvent, filter);\n    }\n    focusPreviousPage(browserEvent, filter = (isKeyboardEvent(browserEvent) && browserEvent.altKey) ? undefined : this.focusNavigationFilter) {\n        return this.view.focusPreviousPage(browserEvent, filter, () => { var _a, _b; return (_b = (_a = this.stickyScrollController) === null || _a === void 0 ? void 0 : _a.height) !== null && _b !== void 0 ? _b : 0; });\n    }\n    focusFirst(browserEvent, filter = (isKeyboardEvent(browserEvent) && browserEvent.altKey) ? undefined : this.focusNavigationFilter) {\n        this.view.focusFirst(browserEvent, filter);\n    }\n    getFocus() {\n        return this.focus.get();\n    }\n    reveal(location, relativeTop) {\n        this.model.expandTo(location);\n        const index = this.model.getListIndex(location);\n        if (index === -1) {\n            return;\n        }\n        if (!this.stickyScrollController) {\n            this.view.reveal(index, relativeTop);\n        }\n        else {\n            const paddingTop = this.stickyScrollController.nodePositionTopBelowWidget(this.getNode(location));\n            this.view.reveal(index, relativeTop, paddingTop);\n        }\n    }\n    // List\n    onLeftArrow(e) {\n        e.preventDefault();\n        e.stopPropagation();\n        const nodes = this.view.getFocusedElements();\n        if (nodes.length === 0) {\n            return;\n        }\n        const node = nodes[0];\n        const location = this.model.getNodeLocation(node);\n        const didChange = this.model.setCollapsed(location, true);\n        if (!didChange) {\n            const parentLocation = this.model.getParentNodeLocation(location);\n            if (!parentLocation) {\n                return;\n            }\n            const parentListIndex = this.model.getListIndex(parentLocation);\n            this.view.reveal(parentListIndex);\n            this.view.setFocus([parentListIndex]);\n        }\n    }\n    onRightArrow(e) {\n        e.preventDefault();\n        e.stopPropagation();\n        const nodes = this.view.getFocusedElements();\n        if (nodes.length === 0) {\n            return;\n        }\n        const node = nodes[0];\n        const location = this.model.getNodeLocation(node);\n        const didChange = this.model.setCollapsed(location, false);\n        if (!didChange) {\n            if (!node.children.some(child => child.visible)) {\n                return;\n            }\n            const [focusedIndex] = this.view.getFocus();\n            const firstChildIndex = focusedIndex + 1;\n            this.view.reveal(firstChildIndex);\n            this.view.setFocus([firstChildIndex]);\n        }\n    }\n    onSpace(e) {\n        e.preventDefault();\n        e.stopPropagation();\n        const nodes = this.view.getFocusedElements();\n        if (nodes.length === 0) {\n            return;\n        }\n        const node = nodes[0];\n        const location = this.model.getNodeLocation(node);\n        const recursive = e.browserEvent.altKey;\n        this.model.setCollapsed(location, undefined, recursive);\n    }\n    dispose() {\n        var _a;\n        dispose(this.disposables);\n        (_a = this.stickyScrollController) === null || _a === void 0 ? void 0 : _a.dispose();\n        this.view.dispose();\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/tree/asyncDataTree.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { ElementsDragAndDropData } from '../list/listView.js';\nimport { ComposedTreeDelegate } from './abstractTree.js';\nimport { getVisibleState, isFilterResult } from './indexTreeModel.js';\nimport { CompressibleObjectTree, ObjectTree } from './objectTree.js';\nimport { ObjectTreeElementCollapseState, TreeError, WeakMapper } from './tree.js';\nimport { createCancelablePromise, Promises, timeout } from '../../../common/async.js';\nimport { Codicon } from '../../../common/codicons.js';\nimport { ThemeIcon } from '../../../common/themables.js';\nimport { isCancellationError, onUnexpectedError } from '../../../common/errors.js';\nimport { Emitter, Event } from '../../../common/event.js';\nimport { Iterable } from '../../../common/iterator.js';\nimport { DisposableStore, dispose } from '../../../common/lifecycle.js';\nimport { isIterable } from '../../../common/types.js';\nfunction createAsyncDataTreeNode(props) {\n    return {\n        ...props,\n        children: [],\n        refreshPromise: undefined,\n        stale: true,\n        slow: false,\n        forceExpanded: false\n    };\n}\nfunction isAncestor(ancestor, descendant) {\n    if (!descendant.parent) {\n        return false;\n    }\n    else if (descendant.parent === ancestor) {\n        return true;\n    }\n    else {\n        return isAncestor(ancestor, descendant.parent);\n    }\n}\nfunction intersects(node, other) {\n    return node === other || isAncestor(node, other) || isAncestor(other, node);\n}\nclass AsyncDataTreeNodeWrapper {\n    get element() { return this.node.element.element; }\n    get children() { return this.node.children.map(node => new AsyncDataTreeNodeWrapper(node)); }\n    get depth() { return this.node.depth; }\n    get visibleChildrenCount() { return this.node.visibleChildrenCount; }\n    get visibleChildIndex() { return this.node.visibleChildIndex; }\n    get collapsible() { return this.node.collapsible; }\n    get collapsed() { return this.node.collapsed; }\n    get visible() { return this.node.visible; }\n    get filterData() { return this.node.filterData; }\n    constructor(node) {\n        this.node = node;\n    }\n}\nclass AsyncDataTreeRenderer {\n    constructor(renderer, nodeMapper, onDidChangeTwistieState) {\n        this.renderer = renderer;\n        this.nodeMapper = nodeMapper;\n        this.onDidChangeTwistieState = onDidChangeTwistieState;\n        this.renderedNodes = new Map();\n        this.templateId = renderer.templateId;\n    }\n    renderTemplate(container) {\n        const templateData = this.renderer.renderTemplate(container);\n        return { templateData };\n    }\n    renderElement(node, index, templateData, height) {\n        this.renderer.renderElement(this.nodeMapper.map(node), index, templateData.templateData, height);\n    }\n    renderTwistie(element, twistieElement) {\n        if (element.slow) {\n            twistieElement.classList.add(...ThemeIcon.asClassNameArray(Codicon.treeItemLoading));\n            return true;\n        }\n        else {\n            twistieElement.classList.remove(...ThemeIcon.asClassNameArray(Codicon.treeItemLoading));\n            return false;\n        }\n    }\n    disposeElement(node, index, templateData, height) {\n        var _a, _b;\n        (_b = (_a = this.renderer).disposeElement) === null || _b === void 0 ? void 0 : _b.call(_a, this.nodeMapper.map(node), index, templateData.templateData, height);\n    }\n    disposeTemplate(templateData) {\n        this.renderer.disposeTemplate(templateData.templateData);\n    }\n    dispose() {\n        this.renderedNodes.clear();\n    }\n}\nfunction asTreeEvent(e) {\n    return {\n        browserEvent: e.browserEvent,\n        elements: e.elements.map(e => e.element)\n    };\n}\nfunction asTreeMouseEvent(e) {\n    return {\n        browserEvent: e.browserEvent,\n        element: e.element && e.element.element,\n        target: e.target\n    };\n}\nclass AsyncDataTreeElementsDragAndDropData extends ElementsDragAndDropData {\n    constructor(data) {\n        super(data.elements.map(node => node.element));\n        this.data = data;\n    }\n}\nfunction asAsyncDataTreeDragAndDropData(data) {\n    if (data instanceof ElementsDragAndDropData) {\n        return new AsyncDataTreeElementsDragAndDropData(data);\n    }\n    return data;\n}\nclass AsyncDataTreeNodeListDragAndDrop {\n    constructor(dnd) {\n        this.dnd = dnd;\n    }\n    getDragURI(node) {\n        return this.dnd.getDragURI(node.element);\n    }\n    getDragLabel(nodes, originalEvent) {\n        if (this.dnd.getDragLabel) {\n            return this.dnd.getDragLabel(nodes.map(node => node.element), originalEvent);\n        }\n        return undefined;\n    }\n    onDragStart(data, originalEvent) {\n        var _a, _b;\n        (_b = (_a = this.dnd).onDragStart) === null || _b === void 0 ? void 0 : _b.call(_a, asAsyncDataTreeDragAndDropData(data), originalEvent);\n    }\n    onDragOver(data, targetNode, targetIndex, targetSector, originalEvent, raw = true) {\n        return this.dnd.onDragOver(asAsyncDataTreeDragAndDropData(data), targetNode && targetNode.element, targetIndex, targetSector, originalEvent);\n    }\n    drop(data, targetNode, targetIndex, targetSector, originalEvent) {\n        this.dnd.drop(asAsyncDataTreeDragAndDropData(data), targetNode && targetNode.element, targetIndex, targetSector, originalEvent);\n    }\n    onDragEnd(originalEvent) {\n        var _a, _b;\n        (_b = (_a = this.dnd).onDragEnd) === null || _b === void 0 ? void 0 : _b.call(_a, originalEvent);\n    }\n    dispose() {\n        this.dnd.dispose();\n    }\n}\nfunction asObjectTreeOptions(options) {\n    return options && {\n        ...options,\n        collapseByDefault: true,\n        identityProvider: options.identityProvider && {\n            getId(el) {\n                return options.identityProvider.getId(el.element);\n            }\n        },\n        dnd: options.dnd && new AsyncDataTreeNodeListDragAndDrop(options.dnd),\n        multipleSelectionController: options.multipleSelectionController && {\n            isSelectionSingleChangeEvent(e) {\n                return options.multipleSelectionController.isSelectionSingleChangeEvent({ ...e, element: e.element });\n            },\n            isSelectionRangeChangeEvent(e) {\n                return options.multipleSelectionController.isSelectionRangeChangeEvent({ ...e, element: e.element });\n            }\n        },\n        accessibilityProvider: options.accessibilityProvider && {\n            ...options.accessibilityProvider,\n            getPosInSet: undefined,\n            getSetSize: undefined,\n            getRole: options.accessibilityProvider.getRole ? (el) => {\n                return options.accessibilityProvider.getRole(el.element);\n            } : () => 'treeitem',\n            isChecked: options.accessibilityProvider.isChecked ? (e) => {\n                var _a;\n                return !!((_a = options.accessibilityProvider) === null || _a === void 0 ? void 0 : _a.isChecked(e.element));\n            } : undefined,\n            getAriaLabel(e) {\n                return options.accessibilityProvider.getAriaLabel(e.element);\n            },\n            getWidgetAriaLabel() {\n                return options.accessibilityProvider.getWidgetAriaLabel();\n            },\n            getWidgetRole: options.accessibilityProvider.getWidgetRole ? () => options.accessibilityProvider.getWidgetRole() : () => 'tree',\n            getAriaLevel: options.accessibilityProvider.getAriaLevel && (node => {\n                return options.accessibilityProvider.getAriaLevel(node.element);\n            }),\n            getActiveDescendantId: options.accessibilityProvider.getActiveDescendantId && (node => {\n                return options.accessibilityProvider.getActiveDescendantId(node.element);\n            })\n        },\n        filter: options.filter && {\n            filter(e, parentVisibility) {\n                return options.filter.filter(e.element, parentVisibility);\n            }\n        },\n        keyboardNavigationLabelProvider: options.keyboardNavigationLabelProvider && {\n            ...options.keyboardNavigationLabelProvider,\n            getKeyboardNavigationLabel(e) {\n                return options.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e.element);\n            }\n        },\n        sorter: undefined,\n        expandOnlyOnTwistieClick: typeof options.expandOnlyOnTwistieClick === 'undefined' ? undefined : (typeof options.expandOnlyOnTwistieClick !== 'function' ? options.expandOnlyOnTwistieClick : (e => options.expandOnlyOnTwistieClick(e.element))),\n        defaultFindVisibility: e => {\n            if (e.hasChildren && e.stale) {\n                return 1 /* TreeVisibility.Visible */;\n            }\n            else if (typeof options.defaultFindVisibility === 'number') {\n                return options.defaultFindVisibility;\n            }\n            else if (typeof options.defaultFindVisibility === 'undefined') {\n                return 2 /* TreeVisibility.Recurse */;\n            }\n            else {\n                return options.defaultFindVisibility(e.element);\n            }\n        }\n    };\n}\nfunction dfs(node, fn) {\n    fn(node);\n    node.children.forEach(child => dfs(child, fn));\n}\nexport class AsyncDataTree {\n    get onDidScroll() { return this.tree.onDidScroll; }\n    get onDidChangeFocus() { return Event.map(this.tree.onDidChangeFocus, asTreeEvent); }\n    get onDidChangeSelection() { return Event.map(this.tree.onDidChangeSelection, asTreeEvent); }\n    get onMouseDblClick() { return Event.map(this.tree.onMouseDblClick, asTreeMouseEvent); }\n    get onPointer() { return Event.map(this.tree.onPointer, asTreeMouseEvent); }\n    get onDidFocus() { return this.tree.onDidFocus; }\n    /**\n     * To be used internally only!\n     * @deprecated\n     */\n    get onDidChangeModel() { return this.tree.onDidChangeModel; }\n    get onDidChangeCollapseState() { return this.tree.onDidChangeCollapseState; }\n    get onDidChangeFindOpenState() { return this.tree.onDidChangeFindOpenState; }\n    get onDidChangeStickyScrollFocused() { return this.tree.onDidChangeStickyScrollFocused; }\n    get onDidDispose() { return this.tree.onDidDispose; }\n    constructor(user, container, delegate, renderers, dataSource, options = {}) {\n        this.user = user;\n        this.dataSource = dataSource;\n        this.nodes = new Map();\n        this.subTreeRefreshPromises = new Map();\n        this.refreshPromises = new Map();\n        this._onDidRender = new Emitter();\n        this._onDidChangeNodeSlowState = new Emitter();\n        this.nodeMapper = new WeakMapper(node => new AsyncDataTreeNodeWrapper(node));\n        this.disposables = new DisposableStore();\n        this.identityProvider = options.identityProvider;\n        this.autoExpandSingleChildren = typeof options.autoExpandSingleChildren === 'undefined' ? false : options.autoExpandSingleChildren;\n        this.sorter = options.sorter;\n        this.getDefaultCollapseState = e => options.collapseByDefault ? (options.collapseByDefault(e) ? ObjectTreeElementCollapseState.PreserveOrCollapsed : ObjectTreeElementCollapseState.PreserveOrExpanded) : undefined;\n        this.tree = this.createTree(user, container, delegate, renderers, options);\n        this.onDidChangeFindMode = this.tree.onDidChangeFindMode;\n        this.onDidChangeFindMatchType = this.tree.onDidChangeFindMatchType;\n        this.root = createAsyncDataTreeNode({\n            element: undefined,\n            parent: null,\n            hasChildren: true,\n            defaultCollapseState: undefined\n        });\n        if (this.identityProvider) {\n            this.root = {\n                ...this.root,\n                id: null\n            };\n        }\n        this.nodes.set(null, this.root);\n        this.tree.onDidChangeCollapseState(this._onDidChangeCollapseState, this, this.disposables);\n    }\n    createTree(user, container, delegate, renderers, options) {\n        const objectTreeDelegate = new ComposedTreeDelegate(delegate);\n        const objectTreeRenderers = renderers.map(r => new AsyncDataTreeRenderer(r, this.nodeMapper, this._onDidChangeNodeSlowState.event));\n        const objectTreeOptions = asObjectTreeOptions(options) || {};\n        return new ObjectTree(user, container, objectTreeDelegate, objectTreeRenderers, objectTreeOptions);\n    }\n    updateOptions(options = {}) {\n        this.tree.updateOptions(options);\n    }\n    // Widget\n    getHTMLElement() {\n        return this.tree.getHTMLElement();\n    }\n    get scrollTop() {\n        return this.tree.scrollTop;\n    }\n    set scrollTop(scrollTop) {\n        this.tree.scrollTop = scrollTop;\n    }\n    get scrollHeight() {\n        return this.tree.scrollHeight;\n    }\n    get renderHeight() {\n        return this.tree.renderHeight;\n    }\n    domFocus() {\n        this.tree.domFocus();\n    }\n    layout(height, width) {\n        this.tree.layout(height, width);\n    }\n    style(styles) {\n        this.tree.style(styles);\n    }\n    // Model\n    getInput() {\n        return this.root.element;\n    }\n    async setInput(input, viewState) {\n        this.refreshPromises.forEach(promise => promise.cancel());\n        this.refreshPromises.clear();\n        this.root.element = input;\n        const viewStateContext = viewState && { viewState, focus: [], selection: [] };\n        await this._updateChildren(input, true, false, viewStateContext);\n        if (viewStateContext) {\n            this.tree.setFocus(viewStateContext.focus);\n            this.tree.setSelection(viewStateContext.selection);\n        }\n        if (viewState && typeof viewState.scrollTop === 'number') {\n            this.scrollTop = viewState.scrollTop;\n        }\n    }\n    async _updateChildren(element = this.root.element, recursive = true, rerender = false, viewStateContext, options) {\n        if (typeof this.root.element === 'undefined') {\n            throw new TreeError(this.user, 'Tree input not set');\n        }\n        if (this.root.refreshPromise) {\n            await this.root.refreshPromise;\n            await Event.toPromise(this._onDidRender.event);\n        }\n        const node = this.getDataNode(element);\n        await this.refreshAndRenderNode(node, recursive, viewStateContext, options);\n        if (rerender) {\n            try {\n                this.tree.rerender(node);\n            }\n            catch (_a) {\n                // missing nodes are fine, this could've resulted from\n                // parallel refresh calls, removing `node` altogether\n            }\n        }\n    }\n    // View\n    rerender(element) {\n        if (element === undefined || element === this.root.element) {\n            this.tree.rerender();\n            return;\n        }\n        const node = this.getDataNode(element);\n        this.tree.rerender(node);\n    }\n    // Tree\n    getNode(element = this.root.element) {\n        const dataNode = this.getDataNode(element);\n        const node = this.tree.getNode(dataNode === this.root ? null : dataNode);\n        return this.nodeMapper.map(node);\n    }\n    collapse(element, recursive = false) {\n        const node = this.getDataNode(element);\n        return this.tree.collapse(node === this.root ? null : node, recursive);\n    }\n    async expand(element, recursive = false) {\n        if (typeof this.root.element === 'undefined') {\n            throw new TreeError(this.user, 'Tree input not set');\n        }\n        if (this.root.refreshPromise) {\n            await this.root.refreshPromise;\n            await Event.toPromise(this._onDidRender.event);\n        }\n        const node = this.getDataNode(element);\n        if (this.tree.hasElement(node) && !this.tree.isCollapsible(node)) {\n            return false;\n        }\n        if (node.refreshPromise) {\n            await this.root.refreshPromise;\n            await Event.toPromise(this._onDidRender.event);\n        }\n        if (node !== this.root && !node.refreshPromise && !this.tree.isCollapsed(node)) {\n            return false;\n        }\n        const result = this.tree.expand(node === this.root ? null : node, recursive);\n        if (node.refreshPromise) {\n            await this.root.refreshPromise;\n            await Event.toPromise(this._onDidRender.event);\n        }\n        return result;\n    }\n    setSelection(elements, browserEvent) {\n        const nodes = elements.map(e => this.getDataNode(e));\n        this.tree.setSelection(nodes, browserEvent);\n    }\n    getSelection() {\n        const nodes = this.tree.getSelection();\n        return nodes.map(n => n.element);\n    }\n    setFocus(elements, browserEvent) {\n        const nodes = elements.map(e => this.getDataNode(e));\n        this.tree.setFocus(nodes, browserEvent);\n    }\n    getFocus() {\n        const nodes = this.tree.getFocus();\n        return nodes.map(n => n.element);\n    }\n    reveal(element, relativeTop) {\n        this.tree.reveal(this.getDataNode(element), relativeTop);\n    }\n    // Tree navigation\n    getParentElement(element) {\n        const node = this.tree.getParentElement(this.getDataNode(element));\n        return (node && node.element);\n    }\n    getFirstElementChild(element = this.root.element) {\n        const dataNode = this.getDataNode(element);\n        const node = this.tree.getFirstElementChild(dataNode === this.root ? null : dataNode);\n        return (node && node.element);\n    }\n    // Implementation\n    getDataNode(element) {\n        const node = this.nodes.get((element === this.root.element ? null : element));\n        if (!node) {\n            throw new TreeError(this.user, `Data tree node not found: ${element}`);\n        }\n        return node;\n    }\n    async refreshAndRenderNode(node, recursive, viewStateContext, options) {\n        await this.refreshNode(node, recursive, viewStateContext);\n        if (this.disposables.isDisposed) {\n            return; // tree disposed during refresh (#199264)\n        }\n        this.render(node, viewStateContext, options);\n    }\n    async refreshNode(node, recursive, viewStateContext) {\n        let result;\n        this.subTreeRefreshPromises.forEach((refreshPromise, refreshNode) => {\n            if (!result && intersects(refreshNode, node)) {\n                result = refreshPromise.then(() => this.refreshNode(node, recursive, viewStateContext));\n            }\n        });\n        if (result) {\n            return result;\n        }\n        if (node !== this.root) {\n            const treeNode = this.tree.getNode(node);\n            if (treeNode.collapsed) {\n                node.hasChildren = !!this.dataSource.hasChildren(node.element);\n                node.stale = true;\n                this.setChildren(node, [], recursive, viewStateContext);\n                return;\n            }\n        }\n        return this.doRefreshSubTree(node, recursive, viewStateContext);\n    }\n    async doRefreshSubTree(node, recursive, viewStateContext) {\n        let done;\n        node.refreshPromise = new Promise(c => done = c);\n        this.subTreeRefreshPromises.set(node, node.refreshPromise);\n        node.refreshPromise.finally(() => {\n            node.refreshPromise = undefined;\n            this.subTreeRefreshPromises.delete(node);\n        });\n        try {\n            const childrenToRefresh = await this.doRefreshNode(node, recursive, viewStateContext);\n            node.stale = false;\n            await Promises.settled(childrenToRefresh.map(child => this.doRefreshSubTree(child, recursive, viewStateContext)));\n        }\n        finally {\n            done();\n        }\n    }\n    async doRefreshNode(node, recursive, viewStateContext) {\n        node.hasChildren = !!this.dataSource.hasChildren(node.element);\n        let childrenPromise;\n        if (!node.hasChildren) {\n            childrenPromise = Promise.resolve(Iterable.empty());\n        }\n        else {\n            const children = this.doGetChildren(node);\n            if (isIterable(children)) {\n                childrenPromise = Promise.resolve(children);\n            }\n            else {\n                const slowTimeout = timeout(800);\n                slowTimeout.then(() => {\n                    node.slow = true;\n                    this._onDidChangeNodeSlowState.fire(node);\n                }, _ => null);\n                childrenPromise = children.finally(() => slowTimeout.cancel());\n            }\n        }\n        try {\n            const children = await childrenPromise;\n            return this.setChildren(node, children, recursive, viewStateContext);\n        }\n        catch (err) {\n            if (node !== this.root && this.tree.hasElement(node)) {\n                this.tree.collapse(node);\n            }\n            if (isCancellationError(err)) {\n                return [];\n            }\n            throw err;\n        }\n        finally {\n            if (node.slow) {\n                node.slow = false;\n                this._onDidChangeNodeSlowState.fire(node);\n            }\n        }\n    }\n    doGetChildren(node) {\n        let result = this.refreshPromises.get(node);\n        if (result) {\n            return result;\n        }\n        const children = this.dataSource.getChildren(node.element);\n        if (isIterable(children)) {\n            return this.processChildren(children);\n        }\n        else {\n            result = createCancelablePromise(async () => this.processChildren(await children));\n            this.refreshPromises.set(node, result);\n            return result.finally(() => { this.refreshPromises.delete(node); });\n        }\n    }\n    _onDidChangeCollapseState({ node, deep }) {\n        if (node.element === null) {\n            return;\n        }\n        if (!node.collapsed && node.element.stale) {\n            if (deep) {\n                this.collapse(node.element.element);\n            }\n            else {\n                this.refreshAndRenderNode(node.element, false)\n                    .catch(onUnexpectedError);\n            }\n        }\n    }\n    setChildren(node, childrenElementsIterable, recursive, viewStateContext) {\n        const childrenElements = [...childrenElementsIterable];\n        // perf: if the node was and still is a leaf, avoid all this hassle\n        if (node.children.length === 0 && childrenElements.length === 0) {\n            return [];\n        }\n        const nodesToForget = new Map();\n        const childrenTreeNodesById = new Map();\n        for (const child of node.children) {\n            nodesToForget.set(child.element, child);\n            if (this.identityProvider) {\n                childrenTreeNodesById.set(child.id, { node: child, collapsed: this.tree.hasElement(child) && this.tree.isCollapsed(child) });\n            }\n        }\n        const childrenToRefresh = [];\n        const children = childrenElements.map(element => {\n            const hasChildren = !!this.dataSource.hasChildren(element);\n            if (!this.identityProvider) {\n                const asyncDataTreeNode = createAsyncDataTreeNode({ element, parent: node, hasChildren, defaultCollapseState: this.getDefaultCollapseState(element) });\n                if (hasChildren && asyncDataTreeNode.defaultCollapseState === ObjectTreeElementCollapseState.PreserveOrExpanded) {\n                    childrenToRefresh.push(asyncDataTreeNode);\n                }\n                return asyncDataTreeNode;\n            }\n            const id = this.identityProvider.getId(element).toString();\n            const result = childrenTreeNodesById.get(id);\n            if (result) {\n                const asyncDataTreeNode = result.node;\n                nodesToForget.delete(asyncDataTreeNode.element);\n                this.nodes.delete(asyncDataTreeNode.element);\n                this.nodes.set(element, asyncDataTreeNode);\n                asyncDataTreeNode.element = element;\n                asyncDataTreeNode.hasChildren = hasChildren;\n                if (recursive) {\n                    if (result.collapsed) {\n                        asyncDataTreeNode.children.forEach(node => dfs(node, node => this.nodes.delete(node.element)));\n                        asyncDataTreeNode.children.splice(0, asyncDataTreeNode.children.length);\n                        asyncDataTreeNode.stale = true;\n                    }\n                    else {\n                        childrenToRefresh.push(asyncDataTreeNode);\n                    }\n                }\n                else if (hasChildren && !result.collapsed) {\n                    childrenToRefresh.push(asyncDataTreeNode);\n                }\n                return asyncDataTreeNode;\n            }\n            const childAsyncDataTreeNode = createAsyncDataTreeNode({ element, parent: node, id, hasChildren, defaultCollapseState: this.getDefaultCollapseState(element) });\n            if (viewStateContext && viewStateContext.viewState.focus && viewStateContext.viewState.focus.indexOf(id) > -1) {\n                viewStateContext.focus.push(childAsyncDataTreeNode);\n            }\n            if (viewStateContext && viewStateContext.viewState.selection && viewStateContext.viewState.selection.indexOf(id) > -1) {\n                viewStateContext.selection.push(childAsyncDataTreeNode);\n            }\n            if (viewStateContext && viewStateContext.viewState.expanded && viewStateContext.viewState.expanded.indexOf(id) > -1) {\n                childrenToRefresh.push(childAsyncDataTreeNode);\n            }\n            else if (hasChildren && childAsyncDataTreeNode.defaultCollapseState === ObjectTreeElementCollapseState.PreserveOrExpanded) {\n                childrenToRefresh.push(childAsyncDataTreeNode);\n            }\n            return childAsyncDataTreeNode;\n        });\n        for (const node of nodesToForget.values()) {\n            dfs(node, node => this.nodes.delete(node.element));\n        }\n        for (const child of children) {\n            this.nodes.set(child.element, child);\n        }\n        node.children.splice(0, node.children.length, ...children);\n        // TODO@joao this doesn't take filter into account\n        if (node !== this.root && this.autoExpandSingleChildren && children.length === 1 && childrenToRefresh.length === 0) {\n            children[0].forceExpanded = true;\n            childrenToRefresh.push(children[0]);\n        }\n        return childrenToRefresh;\n    }\n    render(node, viewStateContext, options) {\n        const children = node.children.map(node => this.asTreeElement(node, viewStateContext));\n        const objectTreeOptions = options && {\n            ...options,\n            diffIdentityProvider: options.diffIdentityProvider && {\n                getId(node) {\n                    return options.diffIdentityProvider.getId(node.element);\n                }\n            }\n        };\n        this.tree.setChildren(node === this.root ? null : node, children, objectTreeOptions);\n        if (node !== this.root) {\n            this.tree.setCollapsible(node, node.hasChildren);\n        }\n        this._onDidRender.fire();\n    }\n    asTreeElement(node, viewStateContext) {\n        if (node.stale) {\n            return {\n                element: node,\n                collapsible: node.hasChildren,\n                collapsed: true\n            };\n        }\n        let collapsed;\n        if (viewStateContext && viewStateContext.viewState.expanded && node.id && viewStateContext.viewState.expanded.indexOf(node.id) > -1) {\n            collapsed = false;\n        }\n        else if (node.forceExpanded) {\n            collapsed = false;\n            node.forceExpanded = false;\n        }\n        else {\n            collapsed = node.defaultCollapseState;\n        }\n        return {\n            element: node,\n            children: node.hasChildren ? Iterable.map(node.children, child => this.asTreeElement(child, viewStateContext)) : [],\n            collapsible: node.hasChildren,\n            collapsed\n        };\n    }\n    processChildren(children) {\n        if (this.sorter) {\n            children = [...children].sort(this.sorter.compare.bind(this.sorter));\n        }\n        return children;\n    }\n    dispose() {\n        this.disposables.dispose();\n        this.tree.dispose();\n    }\n}\nclass CompressibleAsyncDataTreeNodeWrapper {\n    get element() {\n        return {\n            elements: this.node.element.elements.map(e => e.element),\n            incompressible: this.node.element.incompressible\n        };\n    }\n    get children() { return this.node.children.map(node => new CompressibleAsyncDataTreeNodeWrapper(node)); }\n    get depth() { return this.node.depth; }\n    get visibleChildrenCount() { return this.node.visibleChildrenCount; }\n    get visibleChildIndex() { return this.node.visibleChildIndex; }\n    get collapsible() { return this.node.collapsible; }\n    get collapsed() { return this.node.collapsed; }\n    get visible() { return this.node.visible; }\n    get filterData() { return this.node.filterData; }\n    constructor(node) {\n        this.node = node;\n    }\n}\nclass CompressibleAsyncDataTreeRenderer {\n    constructor(renderer, nodeMapper, compressibleNodeMapperProvider, onDidChangeTwistieState) {\n        this.renderer = renderer;\n        this.nodeMapper = nodeMapper;\n        this.compressibleNodeMapperProvider = compressibleNodeMapperProvider;\n        this.onDidChangeTwistieState = onDidChangeTwistieState;\n        this.renderedNodes = new Map();\n        this.disposables = [];\n        this.templateId = renderer.templateId;\n    }\n    renderTemplate(container) {\n        const templateData = this.renderer.renderTemplate(container);\n        return { templateData };\n    }\n    renderElement(node, index, templateData, height) {\n        this.renderer.renderElement(this.nodeMapper.map(node), index, templateData.templateData, height);\n    }\n    renderCompressedElements(node, index, templateData, height) {\n        this.renderer.renderCompressedElements(this.compressibleNodeMapperProvider().map(node), index, templateData.templateData, height);\n    }\n    renderTwistie(element, twistieElement) {\n        if (element.slow) {\n            twistieElement.classList.add(...ThemeIcon.asClassNameArray(Codicon.treeItemLoading));\n            return true;\n        }\n        else {\n            twistieElement.classList.remove(...ThemeIcon.asClassNameArray(Codicon.treeItemLoading));\n            return false;\n        }\n    }\n    disposeElement(node, index, templateData, height) {\n        var _a, _b;\n        (_b = (_a = this.renderer).disposeElement) === null || _b === void 0 ? void 0 : _b.call(_a, this.nodeMapper.map(node), index, templateData.templateData, height);\n    }\n    disposeCompressedElements(node, index, templateData, height) {\n        var _a, _b;\n        (_b = (_a = this.renderer).disposeCompressedElements) === null || _b === void 0 ? void 0 : _b.call(_a, this.compressibleNodeMapperProvider().map(node), index, templateData.templateData, height);\n    }\n    disposeTemplate(templateData) {\n        this.renderer.disposeTemplate(templateData.templateData);\n    }\n    dispose() {\n        this.renderedNodes.clear();\n        this.disposables = dispose(this.disposables);\n    }\n}\nfunction asCompressibleObjectTreeOptions(options) {\n    const objectTreeOptions = options && asObjectTreeOptions(options);\n    return objectTreeOptions && {\n        ...objectTreeOptions,\n        keyboardNavigationLabelProvider: objectTreeOptions.keyboardNavigationLabelProvider && {\n            ...objectTreeOptions.keyboardNavigationLabelProvider,\n            getCompressedNodeKeyboardNavigationLabel(els) {\n                return options.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(els.map(e => e.element));\n            }\n        }\n    };\n}\nexport class CompressibleAsyncDataTree extends AsyncDataTree {\n    constructor(user, container, virtualDelegate, compressionDelegate, renderers, dataSource, options = {}) {\n        super(user, container, virtualDelegate, renderers, dataSource, options);\n        this.compressionDelegate = compressionDelegate;\n        this.compressibleNodeMapper = new WeakMapper(node => new CompressibleAsyncDataTreeNodeWrapper(node));\n        this.filter = options.filter;\n    }\n    createTree(user, container, delegate, renderers, options) {\n        const objectTreeDelegate = new ComposedTreeDelegate(delegate);\n        const objectTreeRenderers = renderers.map(r => new CompressibleAsyncDataTreeRenderer(r, this.nodeMapper, () => this.compressibleNodeMapper, this._onDidChangeNodeSlowState.event));\n        const objectTreeOptions = asCompressibleObjectTreeOptions(options) || {};\n        return new CompressibleObjectTree(user, container, objectTreeDelegate, objectTreeRenderers, objectTreeOptions);\n    }\n    asTreeElement(node, viewStateContext) {\n        return {\n            incompressible: this.compressionDelegate.isIncompressible(node.element),\n            ...super.asTreeElement(node, viewStateContext)\n        };\n    }\n    updateOptions(options = {}) {\n        this.tree.updateOptions(options);\n    }\n    render(node, viewStateContext, options) {\n        if (!this.identityProvider) {\n            return super.render(node, viewStateContext);\n        }\n        // Preserve traits across compressions. Hacky but does the trick.\n        // This is hard to fix properly since it requires rewriting the traits\n        // across trees and lists. Let's just keep it this way for now.\n        const getId = (element) => this.identityProvider.getId(element).toString();\n        const getUncompressedIds = (nodes) => {\n            const result = new Set();\n            for (const node of nodes) {\n                const compressedNode = this.tree.getCompressedTreeNode(node === this.root ? null : node);\n                if (!compressedNode.element) {\n                    continue;\n                }\n                for (const node of compressedNode.element.elements) {\n                    result.add(getId(node.element));\n                }\n            }\n            return result;\n        };\n        const oldSelection = getUncompressedIds(this.tree.getSelection());\n        const oldFocus = getUncompressedIds(this.tree.getFocus());\n        super.render(node, viewStateContext, options);\n        const selection = this.getSelection();\n        let didChangeSelection = false;\n        const focus = this.getFocus();\n        let didChangeFocus = false;\n        const visit = (node) => {\n            const compressedNode = node.element;\n            if (compressedNode) {\n                for (let i = 0; i < compressedNode.elements.length; i++) {\n                    const id = getId(compressedNode.elements[i].element);\n                    const element = compressedNode.elements[compressedNode.elements.length - 1].element;\n                    // github.com/microsoft/vscode/issues/85938\n                    if (oldSelection.has(id) && selection.indexOf(element) === -1) {\n                        selection.push(element);\n                        didChangeSelection = true;\n                    }\n                    if (oldFocus.has(id) && focus.indexOf(element) === -1) {\n                        focus.push(element);\n                        didChangeFocus = true;\n                    }\n                }\n            }\n            node.children.forEach(visit);\n        };\n        visit(this.tree.getCompressedTreeNode(node === this.root ? null : node));\n        if (didChangeSelection) {\n            this.setSelection(selection);\n        }\n        if (didChangeFocus) {\n            this.setFocus(focus);\n        }\n    }\n    // For compressed async data trees, `TreeVisibility.Recurse` doesn't currently work\n    // and we have to filter everything beforehand\n    // Related to #85193 and #85835\n    processChildren(children) {\n        if (this.filter) {\n            children = Iterable.filter(children, e => {\n                const result = this.filter.filter(e, 1 /* TreeVisibility.Visible */);\n                const visibility = getVisibility(result);\n                if (visibility === 2 /* TreeVisibility.Recurse */) {\n                    throw new Error('Recursive tree visibility not supported in async data compressed trees');\n                }\n                return visibility === 1 /* TreeVisibility.Visible */;\n            });\n        }\n        return super.processChildren(children);\n    }\n}\nfunction getVisibility(filterResult) {\n    if (typeof filterResult === 'boolean') {\n        return filterResult ? 1 /* TreeVisibility.Visible */ : 0 /* TreeVisibility.Hidden */;\n    }\n    else if (isFilterResult(filterResult)) {\n        return getVisibleState(filterResult.visibility);\n    }\n    else {\n        return getVisibleState(filterResult);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/tree/compressedObjectTreeModel.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { ObjectTreeModel } from './objectTreeModel.js';\nimport { TreeError, WeakMapper } from './tree.js';\nimport { equals } from '../../../common/arrays.js';\nimport { Event } from '../../../common/event.js';\nimport { Iterable } from '../../../common/iterator.js';\nfunction noCompress(element) {\n    const elements = [element.element];\n    const incompressible = element.incompressible || false;\n    return {\n        element: { elements, incompressible },\n        children: Iterable.map(Iterable.from(element.children), noCompress),\n        collapsible: element.collapsible,\n        collapsed: element.collapsed\n    };\n}\n// Exported only for test reasons, do not use directly\nexport function compress(element) {\n    const elements = [element.element];\n    const incompressible = element.incompressible || false;\n    let childrenIterator;\n    let children;\n    while (true) {\n        [children, childrenIterator] = Iterable.consume(Iterable.from(element.children), 2);\n        if (children.length !== 1) {\n            break;\n        }\n        if (children[0].incompressible) {\n            break;\n        }\n        element = children[0];\n        elements.push(element.element);\n    }\n    return {\n        element: { elements, incompressible },\n        children: Iterable.map(Iterable.concat(children, childrenIterator), compress),\n        collapsible: element.collapsible,\n        collapsed: element.collapsed\n    };\n}\nfunction _decompress(element, index = 0) {\n    let children;\n    if (index < element.element.elements.length - 1) {\n        children = [_decompress(element, index + 1)];\n    }\n    else {\n        children = Iterable.map(Iterable.from(element.children), el => _decompress(el, 0));\n    }\n    if (index === 0 && element.element.incompressible) {\n        return {\n            element: element.element.elements[index],\n            children,\n            incompressible: true,\n            collapsible: element.collapsible,\n            collapsed: element.collapsed\n        };\n    }\n    return {\n        element: element.element.elements[index],\n        children,\n        collapsible: element.collapsible,\n        collapsed: element.collapsed\n    };\n}\n// Exported only for test reasons, do not use directly\nexport function decompress(element) {\n    return _decompress(element, 0);\n}\nfunction splice(treeElement, element, children) {\n    if (treeElement.element === element) {\n        return { ...treeElement, children };\n    }\n    return { ...treeElement, children: Iterable.map(Iterable.from(treeElement.children), e => splice(e, element, children)) };\n}\nconst wrapIdentityProvider = (base) => ({\n    getId(node) {\n        return node.elements.map(e => base.getId(e).toString()).join('\\0');\n    }\n});\n// Exported only for test reasons, do not use directly\nexport class CompressedObjectTreeModel {\n    get onDidSplice() { return this.model.onDidSplice; }\n    get onDidChangeCollapseState() { return this.model.onDidChangeCollapseState; }\n    get onDidChangeRenderNodeCount() { return this.model.onDidChangeRenderNodeCount; }\n    constructor(user, list, options = {}) {\n        this.user = user;\n        this.rootRef = null;\n        this.nodes = new Map();\n        this.model = new ObjectTreeModel(user, list, options);\n        this.enabled = typeof options.compressionEnabled === 'undefined' ? true : options.compressionEnabled;\n        this.identityProvider = options.identityProvider;\n    }\n    setChildren(element, children = Iterable.empty(), options) {\n        // Diffs must be deep, since the compression can affect nested elements.\n        // @see https://github.com/microsoft/vscode/pull/114237#issuecomment-759425034\n        const diffIdentityProvider = options.diffIdentityProvider && wrapIdentityProvider(options.diffIdentityProvider);\n        if (element === null) {\n            const compressedChildren = Iterable.map(children, this.enabled ? compress : noCompress);\n            this._setChildren(null, compressedChildren, { diffIdentityProvider, diffDepth: Infinity });\n            return;\n        }\n        const compressedNode = this.nodes.get(element);\n        if (!compressedNode) {\n            throw new TreeError(this.user, 'Unknown compressed tree node');\n        }\n        const node = this.model.getNode(compressedNode);\n        const compressedParentNode = this.model.getParentNodeLocation(compressedNode);\n        const parent = this.model.getNode(compressedParentNode);\n        const decompressedElement = decompress(node);\n        const splicedElement = splice(decompressedElement, element, children);\n        const recompressedElement = (this.enabled ? compress : noCompress)(splicedElement);\n        // If the recompressed node is identical to the original, just set its children.\n        // Saves work and churn diffing the parent element.\n        const elementComparator = options.diffIdentityProvider\n            ? ((a, b) => options.diffIdentityProvider.getId(a) === options.diffIdentityProvider.getId(b))\n            : undefined;\n        if (equals(recompressedElement.element.elements, node.element.elements, elementComparator)) {\n            this._setChildren(compressedNode, recompressedElement.children || Iterable.empty(), { diffIdentityProvider, diffDepth: 1 });\n            return;\n        }\n        const parentChildren = parent.children\n            .map(child => child === node ? recompressedElement : child);\n        this._setChildren(parent.element, parentChildren, {\n            diffIdentityProvider,\n            diffDepth: node.depth - parent.depth,\n        });\n    }\n    isCompressionEnabled() {\n        return this.enabled;\n    }\n    setCompressionEnabled(enabled) {\n        if (enabled === this.enabled) {\n            return;\n        }\n        this.enabled = enabled;\n        const root = this.model.getNode();\n        const rootChildren = root.children;\n        const decompressedRootChildren = Iterable.map(rootChildren, decompress);\n        const recompressedRootChildren = Iterable.map(decompressedRootChildren, enabled ? compress : noCompress);\n        // it should be safe to always use deep diff mode here if an identity\n        // provider is available, since we know the raw nodes are unchanged.\n        this._setChildren(null, recompressedRootChildren, {\n            diffIdentityProvider: this.identityProvider,\n            diffDepth: Infinity,\n        });\n    }\n    _setChildren(node, children, options) {\n        const insertedElements = new Set();\n        const onDidCreateNode = (node) => {\n            for (const element of node.element.elements) {\n                insertedElements.add(element);\n                this.nodes.set(element, node.element);\n            }\n        };\n        const onDidDeleteNode = (node) => {\n            for (const element of node.element.elements) {\n                if (!insertedElements.has(element)) {\n                    this.nodes.delete(element);\n                }\n            }\n        };\n        this.model.setChildren(node, children, { ...options, onDidCreateNode, onDidDeleteNode });\n    }\n    has(element) {\n        return this.nodes.has(element);\n    }\n    getListIndex(location) {\n        const node = this.getCompressedNode(location);\n        return this.model.getListIndex(node);\n    }\n    getListRenderCount(location) {\n        const node = this.getCompressedNode(location);\n        return this.model.getListRenderCount(node);\n    }\n    getNode(location) {\n        if (typeof location === 'undefined') {\n            return this.model.getNode();\n        }\n        const node = this.getCompressedNode(location);\n        return this.model.getNode(node);\n    }\n    // TODO: review this\n    getNodeLocation(node) {\n        const compressedNode = this.model.getNodeLocation(node);\n        if (compressedNode === null) {\n            return null;\n        }\n        return compressedNode.elements[compressedNode.elements.length - 1];\n    }\n    // TODO: review this\n    getParentNodeLocation(location) {\n        const compressedNode = this.getCompressedNode(location);\n        const parentNode = this.model.getParentNodeLocation(compressedNode);\n        if (parentNode === null) {\n            return null;\n        }\n        return parentNode.elements[parentNode.elements.length - 1];\n    }\n    getFirstElementChild(location) {\n        const compressedNode = this.getCompressedNode(location);\n        return this.model.getFirstElementChild(compressedNode);\n    }\n    isCollapsible(location) {\n        const compressedNode = this.getCompressedNode(location);\n        return this.model.isCollapsible(compressedNode);\n    }\n    setCollapsible(location, collapsible) {\n        const compressedNode = this.getCompressedNode(location);\n        return this.model.setCollapsible(compressedNode, collapsible);\n    }\n    isCollapsed(location) {\n        const compressedNode = this.getCompressedNode(location);\n        return this.model.isCollapsed(compressedNode);\n    }\n    setCollapsed(location, collapsed, recursive) {\n        const compressedNode = this.getCompressedNode(location);\n        return this.model.setCollapsed(compressedNode, collapsed, recursive);\n    }\n    expandTo(location) {\n        const compressedNode = this.getCompressedNode(location);\n        this.model.expandTo(compressedNode);\n    }\n    rerender(location) {\n        const compressedNode = this.getCompressedNode(location);\n        this.model.rerender(compressedNode);\n    }\n    refilter() {\n        this.model.refilter();\n    }\n    getCompressedNode(element) {\n        if (element === null) {\n            return null;\n        }\n        const node = this.nodes.get(element);\n        if (!node) {\n            throw new TreeError(this.user, `Tree element not found: ${element}`);\n        }\n        return node;\n    }\n}\nexport const DefaultElementMapper = elements => elements[elements.length - 1];\nclass CompressedTreeNodeWrapper {\n    get element() { return this.node.element === null ? null : this.unwrapper(this.node.element); }\n    get children() { return this.node.children.map(node => new CompressedTreeNodeWrapper(this.unwrapper, node)); }\n    get depth() { return this.node.depth; }\n    get visibleChildrenCount() { return this.node.visibleChildrenCount; }\n    get visibleChildIndex() { return this.node.visibleChildIndex; }\n    get collapsible() { return this.node.collapsible; }\n    get collapsed() { return this.node.collapsed; }\n    get visible() { return this.node.visible; }\n    get filterData() { return this.node.filterData; }\n    constructor(unwrapper, node) {\n        this.unwrapper = unwrapper;\n        this.node = node;\n    }\n}\nfunction mapList(nodeMapper, list) {\n    return {\n        splice(start, deleteCount, toInsert) {\n            list.splice(start, deleteCount, toInsert.map(node => nodeMapper.map(node)));\n        },\n        updateElementHeight(index, height) {\n            list.updateElementHeight(index, height);\n        }\n    };\n}\nfunction mapOptions(compressedNodeUnwrapper, options) {\n    return {\n        ...options,\n        identityProvider: options.identityProvider && {\n            getId(node) {\n                return options.identityProvider.getId(compressedNodeUnwrapper(node));\n            }\n        },\n        sorter: options.sorter && {\n            compare(node, otherNode) {\n                return options.sorter.compare(node.elements[0], otherNode.elements[0]);\n            }\n        },\n        filter: options.filter && {\n            filter(node, parentVisibility) {\n                return options.filter.filter(compressedNodeUnwrapper(node), parentVisibility);\n            }\n        }\n    };\n}\nexport class CompressibleObjectTreeModel {\n    get onDidSplice() {\n        return Event.map(this.model.onDidSplice, ({ insertedNodes, deletedNodes }) => ({\n            insertedNodes: insertedNodes.map(node => this.nodeMapper.map(node)),\n            deletedNodes: deletedNodes.map(node => this.nodeMapper.map(node)),\n        }));\n    }\n    get onDidChangeCollapseState() {\n        return Event.map(this.model.onDidChangeCollapseState, ({ node, deep }) => ({\n            node: this.nodeMapper.map(node),\n            deep\n        }));\n    }\n    get onDidChangeRenderNodeCount() {\n        return Event.map(this.model.onDidChangeRenderNodeCount, node => this.nodeMapper.map(node));\n    }\n    constructor(user, list, options = {}) {\n        this.rootRef = null;\n        this.elementMapper = options.elementMapper || DefaultElementMapper;\n        const compressedNodeUnwrapper = node => this.elementMapper(node.elements);\n        this.nodeMapper = new WeakMapper(node => new CompressedTreeNodeWrapper(compressedNodeUnwrapper, node));\n        this.model = new CompressedObjectTreeModel(user, mapList(this.nodeMapper, list), mapOptions(compressedNodeUnwrapper, options));\n    }\n    setChildren(element, children = Iterable.empty(), options = {}) {\n        this.model.setChildren(element, children, options);\n    }\n    isCompressionEnabled() {\n        return this.model.isCompressionEnabled();\n    }\n    setCompressionEnabled(enabled) {\n        this.model.setCompressionEnabled(enabled);\n    }\n    has(location) {\n        return this.model.has(location);\n    }\n    getListIndex(location) {\n        return this.model.getListIndex(location);\n    }\n    getListRenderCount(location) {\n        return this.model.getListRenderCount(location);\n    }\n    getNode(location) {\n        return this.nodeMapper.map(this.model.getNode(location));\n    }\n    getNodeLocation(node) {\n        return node.element;\n    }\n    getParentNodeLocation(location) {\n        return this.model.getParentNodeLocation(location);\n    }\n    getFirstElementChild(location) {\n        const result = this.model.getFirstElementChild(location);\n        if (result === null || typeof result === 'undefined') {\n            return result;\n        }\n        return this.elementMapper(result.elements);\n    }\n    isCollapsible(location) {\n        return this.model.isCollapsible(location);\n    }\n    setCollapsible(location, collapsed) {\n        return this.model.setCollapsible(location, collapsed);\n    }\n    isCollapsed(location) {\n        return this.model.isCollapsed(location);\n    }\n    setCollapsed(location, collapsed, recursive) {\n        return this.model.setCollapsed(location, collapsed, recursive);\n    }\n    expandTo(location) {\n        return this.model.expandTo(location);\n    }\n    rerender(location) {\n        return this.model.rerender(location);\n    }\n    refilter() {\n        return this.model.refilter();\n    }\n    getCompressedTreeNode(location = null) {\n        return this.model.getNode(location);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/tree/dataTree.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { AbstractTree } from './abstractTree.js';\nimport { ObjectTreeModel } from './objectTreeModel.js';\nexport class DataTree extends AbstractTree {\n    constructor(user, container, delegate, renderers, dataSource, options = {}) {\n        super(user, container, delegate, renderers, options);\n        this.user = user;\n        this.dataSource = dataSource;\n        this.identityProvider = options.identityProvider;\n    }\n    createModel(user, view, options) {\n        return new ObjectTreeModel(user, view, options);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/tree/indexTreeModel.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { TreeError } from './tree.js';\nimport { splice, tail2 } from '../../../common/arrays.js';\nimport { Delayer } from '../../../common/async.js';\nimport { MicrotaskDelay } from '../../../common/symbols.js';\nimport { LcsDiff } from '../../../common/diff/diff.js';\nimport { Emitter, EventBufferer } from '../../../common/event.js';\nimport { Iterable } from '../../../common/iterator.js';\nexport function isFilterResult(obj) {\n    return typeof obj === 'object' && 'visibility' in obj && 'data' in obj;\n}\nexport function getVisibleState(visibility) {\n    switch (visibility) {\n        case true: return 1 /* TreeVisibility.Visible */;\n        case false: return 0 /* TreeVisibility.Hidden */;\n        default: return visibility;\n    }\n}\nfunction isCollapsibleStateUpdate(update) {\n    return typeof update.collapsible === 'boolean';\n}\nexport class IndexTreeModel {\n    constructor(user, list, rootElement, options = {}) {\n        var _a;\n        this.user = user;\n        this.list = list;\n        this.rootRef = [];\n        this.eventBufferer = new EventBufferer();\n        this._onDidChangeCollapseState = new Emitter();\n        this.onDidChangeCollapseState = this.eventBufferer.wrapEvent(this._onDidChangeCollapseState.event);\n        this._onDidChangeRenderNodeCount = new Emitter();\n        this.onDidChangeRenderNodeCount = this.eventBufferer.wrapEvent(this._onDidChangeRenderNodeCount.event);\n        this._onDidSplice = new Emitter();\n        this.onDidSplice = this._onDidSplice.event;\n        this.refilterDelayer = new Delayer(MicrotaskDelay);\n        this.collapseByDefault = typeof options.collapseByDefault === 'undefined' ? false : options.collapseByDefault;\n        this.allowNonCollapsibleParents = (_a = options.allowNonCollapsibleParents) !== null && _a !== void 0 ? _a : false;\n        this.filter = options.filter;\n        this.autoExpandSingleChildren = typeof options.autoExpandSingleChildren === 'undefined' ? false : options.autoExpandSingleChildren;\n        this.root = {\n            parent: undefined,\n            element: rootElement,\n            children: [],\n            depth: 0,\n            visibleChildrenCount: 0,\n            visibleChildIndex: -1,\n            collapsible: false,\n            collapsed: false,\n            renderNodeCount: 0,\n            visibility: 1 /* TreeVisibility.Visible */,\n            visible: true,\n            filterData: undefined\n        };\n    }\n    splice(location, deleteCount, toInsert = Iterable.empty(), options = {}) {\n        if (location.length === 0) {\n            throw new TreeError(this.user, 'Invalid tree location');\n        }\n        if (options.diffIdentityProvider) {\n            this.spliceSmart(options.diffIdentityProvider, location, deleteCount, toInsert, options);\n        }\n        else {\n            this.spliceSimple(location, deleteCount, toInsert, options);\n        }\n    }\n    spliceSmart(identity, location, deleteCount, toInsertIterable, options, recurseLevels) {\n        var _a;\n        if (toInsertIterable === void 0) { toInsertIterable = Iterable.empty(); }\n        if (recurseLevels === void 0) { recurseLevels = (_a = options.diffDepth) !== null && _a !== void 0 ? _a : 0; }\n        const { parentNode } = this.getParentNodeWithListIndex(location);\n        if (!parentNode.lastDiffIds) {\n            return this.spliceSimple(location, deleteCount, toInsertIterable, options);\n        }\n        const toInsert = [...toInsertIterable];\n        const index = location[location.length - 1];\n        const diff = new LcsDiff({ getElements: () => parentNode.lastDiffIds }, {\n            getElements: () => [\n                ...parentNode.children.slice(0, index),\n                ...toInsert,\n                ...parentNode.children.slice(index + deleteCount),\n            ].map(e => identity.getId(e.element).toString())\n        }).ComputeDiff(false);\n        // if we were given a 'best effort' diff, use default behavior\n        if (diff.quitEarly) {\n            parentNode.lastDiffIds = undefined;\n            return this.spliceSimple(location, deleteCount, toInsert, options);\n        }\n        const locationPrefix = location.slice(0, -1);\n        const recurseSplice = (fromOriginal, fromModified, count) => {\n            if (recurseLevels > 0) {\n                for (let i = 0; i < count; i++) {\n                    fromOriginal--;\n                    fromModified--;\n                    this.spliceSmart(identity, [...locationPrefix, fromOriginal, 0], Number.MAX_SAFE_INTEGER, toInsert[fromModified].children, options, recurseLevels - 1);\n                }\n            }\n        };\n        let lastStartO = Math.min(parentNode.children.length, index + deleteCount);\n        let lastStartM = toInsert.length;\n        for (const change of diff.changes.sort((a, b) => b.originalStart - a.originalStart)) {\n            recurseSplice(lastStartO, lastStartM, lastStartO - (change.originalStart + change.originalLength));\n            lastStartO = change.originalStart;\n            lastStartM = change.modifiedStart - index;\n            this.spliceSimple([...locationPrefix, lastStartO], change.originalLength, Iterable.slice(toInsert, lastStartM, lastStartM + change.modifiedLength), options);\n        }\n        // at this point, startO === startM === count since any remaining prefix should match\n        recurseSplice(lastStartO, lastStartM, lastStartO);\n    }\n    spliceSimple(location, deleteCount, toInsert = Iterable.empty(), { onDidCreateNode, onDidDeleteNode, diffIdentityProvider }) {\n        const { parentNode, listIndex, revealed, visible } = this.getParentNodeWithListIndex(location);\n        const treeListElementsToInsert = [];\n        const nodesToInsertIterator = Iterable.map(toInsert, el => this.createTreeNode(el, parentNode, parentNode.visible ? 1 /* TreeVisibility.Visible */ : 0 /* TreeVisibility.Hidden */, revealed, treeListElementsToInsert, onDidCreateNode));\n        const lastIndex = location[location.length - 1];\n        // figure out what's the visible child start index right before the\n        // splice point\n        let visibleChildStartIndex = 0;\n        for (let i = lastIndex; i >= 0 && i < parentNode.children.length; i--) {\n            const child = parentNode.children[i];\n            if (child.visible) {\n                visibleChildStartIndex = child.visibleChildIndex;\n                break;\n            }\n        }\n        const nodesToInsert = [];\n        let insertedVisibleChildrenCount = 0;\n        let renderNodeCount = 0;\n        for (const child of nodesToInsertIterator) {\n            nodesToInsert.push(child);\n            renderNodeCount += child.renderNodeCount;\n            if (child.visible) {\n                child.visibleChildIndex = visibleChildStartIndex + insertedVisibleChildrenCount++;\n            }\n        }\n        const deletedNodes = splice(parentNode.children, lastIndex, deleteCount, nodesToInsert);\n        if (!diffIdentityProvider) {\n            parentNode.lastDiffIds = undefined;\n        }\n        else if (parentNode.lastDiffIds) {\n            splice(parentNode.lastDiffIds, lastIndex, deleteCount, nodesToInsert.map(n => diffIdentityProvider.getId(n.element).toString()));\n        }\n        else {\n            parentNode.lastDiffIds = parentNode.children.map(n => diffIdentityProvider.getId(n.element).toString());\n        }\n        // figure out what is the count of deleted visible children\n        let deletedVisibleChildrenCount = 0;\n        for (const child of deletedNodes) {\n            if (child.visible) {\n                deletedVisibleChildrenCount++;\n            }\n        }\n        // and adjust for all visible children after the splice point\n        if (deletedVisibleChildrenCount !== 0) {\n            for (let i = lastIndex + nodesToInsert.length; i < parentNode.children.length; i++) {\n                const child = parentNode.children[i];\n                if (child.visible) {\n                    child.visibleChildIndex -= deletedVisibleChildrenCount;\n                }\n            }\n        }\n        // update parent's visible children count\n        parentNode.visibleChildrenCount += insertedVisibleChildrenCount - deletedVisibleChildrenCount;\n        if (revealed && visible) {\n            const visibleDeleteCount = deletedNodes.reduce((r, node) => r + (node.visible ? node.renderNodeCount : 0), 0);\n            this._updateAncestorsRenderNodeCount(parentNode, renderNodeCount - visibleDeleteCount);\n            this.list.splice(listIndex, visibleDeleteCount, treeListElementsToInsert);\n        }\n        if (deletedNodes.length > 0 && onDidDeleteNode) {\n            const visit = (node) => {\n                onDidDeleteNode(node);\n                node.children.forEach(visit);\n            };\n            deletedNodes.forEach(visit);\n        }\n        this._onDidSplice.fire({ insertedNodes: nodesToInsert, deletedNodes });\n        let node = parentNode;\n        while (node) {\n            if (node.visibility === 2 /* TreeVisibility.Recurse */) {\n                // delayed to avoid excessive refiltering, see #135941\n                this.refilterDelayer.trigger(() => this.refilter());\n                break;\n            }\n            node = node.parent;\n        }\n    }\n    rerender(location) {\n        if (location.length === 0) {\n            throw new TreeError(this.user, 'Invalid tree location');\n        }\n        const { node, listIndex, revealed } = this.getTreeNodeWithListIndex(location);\n        if (node.visible && revealed) {\n            this.list.splice(listIndex, 1, [node]);\n        }\n    }\n    has(location) {\n        return this.hasTreeNode(location);\n    }\n    getListIndex(location) {\n        const { listIndex, visible, revealed } = this.getTreeNodeWithListIndex(location);\n        return visible && revealed ? listIndex : -1;\n    }\n    getListRenderCount(location) {\n        return this.getTreeNode(location).renderNodeCount;\n    }\n    isCollapsible(location) {\n        return this.getTreeNode(location).collapsible;\n    }\n    setCollapsible(location, collapsible) {\n        const node = this.getTreeNode(location);\n        if (typeof collapsible === 'undefined') {\n            collapsible = !node.collapsible;\n        }\n        const update = { collapsible };\n        return this.eventBufferer.bufferEvents(() => this._setCollapseState(location, update));\n    }\n    isCollapsed(location) {\n        return this.getTreeNode(location).collapsed;\n    }\n    setCollapsed(location, collapsed, recursive) {\n        const node = this.getTreeNode(location);\n        if (typeof collapsed === 'undefined') {\n            collapsed = !node.collapsed;\n        }\n        const update = { collapsed, recursive: recursive || false };\n        return this.eventBufferer.bufferEvents(() => this._setCollapseState(location, update));\n    }\n    _setCollapseState(location, update) {\n        const { node, listIndex, revealed } = this.getTreeNodeWithListIndex(location);\n        const result = this._setListNodeCollapseState(node, listIndex, revealed, update);\n        if (node !== this.root && this.autoExpandSingleChildren && result && !isCollapsibleStateUpdate(update) && node.collapsible && !node.collapsed && !update.recursive) {\n            let onlyVisibleChildIndex = -1;\n            for (let i = 0; i < node.children.length; i++) {\n                const child = node.children[i];\n                if (child.visible) {\n                    if (onlyVisibleChildIndex > -1) {\n                        onlyVisibleChildIndex = -1;\n                        break;\n                    }\n                    else {\n                        onlyVisibleChildIndex = i;\n                    }\n                }\n            }\n            if (onlyVisibleChildIndex > -1) {\n                this._setCollapseState([...location, onlyVisibleChildIndex], update);\n            }\n        }\n        return result;\n    }\n    _setListNodeCollapseState(node, listIndex, revealed, update) {\n        const result = this._setNodeCollapseState(node, update, false);\n        if (!revealed || !node.visible || !result) {\n            return result;\n        }\n        const previousRenderNodeCount = node.renderNodeCount;\n        const toInsert = this.updateNodeAfterCollapseChange(node);\n        const deleteCount = previousRenderNodeCount - (listIndex === -1 ? 0 : 1);\n        this.list.splice(listIndex + 1, deleteCount, toInsert.slice(1));\n        return result;\n    }\n    _setNodeCollapseState(node, update, deep) {\n        let result;\n        if (node === this.root) {\n            result = false;\n        }\n        else {\n            if (isCollapsibleStateUpdate(update)) {\n                result = node.collapsible !== update.collapsible;\n                node.collapsible = update.collapsible;\n            }\n            else if (!node.collapsible) {\n                result = false;\n            }\n            else {\n                result = node.collapsed !== update.collapsed;\n                node.collapsed = update.collapsed;\n            }\n            if (result) {\n                this._onDidChangeCollapseState.fire({ node, deep });\n            }\n        }\n        if (!isCollapsibleStateUpdate(update) && update.recursive) {\n            for (const child of node.children) {\n                result = this._setNodeCollapseState(child, update, true) || result;\n            }\n        }\n        return result;\n    }\n    expandTo(location) {\n        this.eventBufferer.bufferEvents(() => {\n            let node = this.getTreeNode(location);\n            while (node.parent) {\n                node = node.parent;\n                location = location.slice(0, location.length - 1);\n                if (node.collapsed) {\n                    this._setCollapseState(location, { collapsed: false, recursive: false });\n                }\n            }\n        });\n    }\n    refilter() {\n        const previousRenderNodeCount = this.root.renderNodeCount;\n        const toInsert = this.updateNodeAfterFilterChange(this.root);\n        this.list.splice(0, previousRenderNodeCount, toInsert);\n        this.refilterDelayer.cancel();\n    }\n    createTreeNode(treeElement, parent, parentVisibility, revealed, treeListElements, onDidCreateNode) {\n        const node = {\n            parent,\n            element: treeElement.element,\n            children: [],\n            depth: parent.depth + 1,\n            visibleChildrenCount: 0,\n            visibleChildIndex: -1,\n            collapsible: typeof treeElement.collapsible === 'boolean' ? treeElement.collapsible : (typeof treeElement.collapsed !== 'undefined'),\n            collapsed: typeof treeElement.collapsed === 'undefined' ? this.collapseByDefault : treeElement.collapsed,\n            renderNodeCount: 1,\n            visibility: 1 /* TreeVisibility.Visible */,\n            visible: true,\n            filterData: undefined\n        };\n        const visibility = this._filterNode(node, parentVisibility);\n        node.visibility = visibility;\n        if (revealed) {\n            treeListElements.push(node);\n        }\n        const childElements = treeElement.children || Iterable.empty();\n        const childRevealed = revealed && visibility !== 0 /* TreeVisibility.Hidden */ && !node.collapsed;\n        let visibleChildrenCount = 0;\n        let renderNodeCount = 1;\n        for (const el of childElements) {\n            const child = this.createTreeNode(el, node, visibility, childRevealed, treeListElements, onDidCreateNode);\n            node.children.push(child);\n            renderNodeCount += child.renderNodeCount;\n            if (child.visible) {\n                child.visibleChildIndex = visibleChildrenCount++;\n            }\n        }\n        if (!this.allowNonCollapsibleParents) {\n            node.collapsible = node.collapsible || node.children.length > 0;\n        }\n        node.visibleChildrenCount = visibleChildrenCount;\n        node.visible = visibility === 2 /* TreeVisibility.Recurse */ ? visibleChildrenCount > 0 : (visibility === 1 /* TreeVisibility.Visible */);\n        if (!node.visible) {\n            node.renderNodeCount = 0;\n            if (revealed) {\n                treeListElements.pop();\n            }\n        }\n        else if (!node.collapsed) {\n            node.renderNodeCount = renderNodeCount;\n        }\n        onDidCreateNode === null || onDidCreateNode === void 0 ? void 0 : onDidCreateNode(node);\n        return node;\n    }\n    updateNodeAfterCollapseChange(node) {\n        const previousRenderNodeCount = node.renderNodeCount;\n        const result = [];\n        this._updateNodeAfterCollapseChange(node, result);\n        this._updateAncestorsRenderNodeCount(node.parent, result.length - previousRenderNodeCount);\n        return result;\n    }\n    _updateNodeAfterCollapseChange(node, result) {\n        if (node.visible === false) {\n            return 0;\n        }\n        result.push(node);\n        node.renderNodeCount = 1;\n        if (!node.collapsed) {\n            for (const child of node.children) {\n                node.renderNodeCount += this._updateNodeAfterCollapseChange(child, result);\n            }\n        }\n        this._onDidChangeRenderNodeCount.fire(node);\n        return node.renderNodeCount;\n    }\n    updateNodeAfterFilterChange(node) {\n        const previousRenderNodeCount = node.renderNodeCount;\n        const result = [];\n        this._updateNodeAfterFilterChange(node, node.visible ? 1 /* TreeVisibility.Visible */ : 0 /* TreeVisibility.Hidden */, result);\n        this._updateAncestorsRenderNodeCount(node.parent, result.length - previousRenderNodeCount);\n        return result;\n    }\n    _updateNodeAfterFilterChange(node, parentVisibility, result, revealed = true) {\n        let visibility;\n        if (node !== this.root) {\n            visibility = this._filterNode(node, parentVisibility);\n            if (visibility === 0 /* TreeVisibility.Hidden */) {\n                node.visible = false;\n                node.renderNodeCount = 0;\n                return false;\n            }\n            if (revealed) {\n                result.push(node);\n            }\n        }\n        const resultStartLength = result.length;\n        node.renderNodeCount = node === this.root ? 0 : 1;\n        let hasVisibleDescendants = false;\n        if (!node.collapsed || visibility !== 0 /* TreeVisibility.Hidden */) {\n            let visibleChildIndex = 0;\n            for (const child of node.children) {\n                hasVisibleDescendants = this._updateNodeAfterFilterChange(child, visibility, result, revealed && !node.collapsed) || hasVisibleDescendants;\n                if (child.visible) {\n                    child.visibleChildIndex = visibleChildIndex++;\n                }\n            }\n            node.visibleChildrenCount = visibleChildIndex;\n        }\n        else {\n            node.visibleChildrenCount = 0;\n        }\n        if (node !== this.root) {\n            node.visible = visibility === 2 /* TreeVisibility.Recurse */ ? hasVisibleDescendants : (visibility === 1 /* TreeVisibility.Visible */);\n            node.visibility = visibility;\n        }\n        if (!node.visible) {\n            node.renderNodeCount = 0;\n            if (revealed) {\n                result.pop();\n            }\n        }\n        else if (!node.collapsed) {\n            node.renderNodeCount += result.length - resultStartLength;\n        }\n        this._onDidChangeRenderNodeCount.fire(node);\n        return node.visible;\n    }\n    _updateAncestorsRenderNodeCount(node, diff) {\n        if (diff === 0) {\n            return;\n        }\n        while (node) {\n            node.renderNodeCount += diff;\n            this._onDidChangeRenderNodeCount.fire(node);\n            node = node.parent;\n        }\n    }\n    _filterNode(node, parentVisibility) {\n        const result = this.filter ? this.filter.filter(node.element, parentVisibility) : 1 /* TreeVisibility.Visible */;\n        if (typeof result === 'boolean') {\n            node.filterData = undefined;\n            return result ? 1 /* TreeVisibility.Visible */ : 0 /* TreeVisibility.Hidden */;\n        }\n        else if (isFilterResult(result)) {\n            node.filterData = result.data;\n            return getVisibleState(result.visibility);\n        }\n        else {\n            node.filterData = undefined;\n            return getVisibleState(result);\n        }\n    }\n    // cheap\n    hasTreeNode(location, node = this.root) {\n        if (!location || location.length === 0) {\n            return true;\n        }\n        const [index, ...rest] = location;\n        if (index < 0 || index > node.children.length) {\n            return false;\n        }\n        return this.hasTreeNode(rest, node.children[index]);\n    }\n    // cheap\n    getTreeNode(location, node = this.root) {\n        if (!location || location.length === 0) {\n            return node;\n        }\n        const [index, ...rest] = location;\n        if (index < 0 || index > node.children.length) {\n            throw new TreeError(this.user, 'Invalid tree location');\n        }\n        return this.getTreeNode(rest, node.children[index]);\n    }\n    // expensive\n    getTreeNodeWithListIndex(location) {\n        if (location.length === 0) {\n            return { node: this.root, listIndex: -1, revealed: true, visible: false };\n        }\n        const { parentNode, listIndex, revealed, visible } = this.getParentNodeWithListIndex(location);\n        const index = location[location.length - 1];\n        if (index < 0 || index > parentNode.children.length) {\n            throw new TreeError(this.user, 'Invalid tree location');\n        }\n        const node = parentNode.children[index];\n        return { node, listIndex, revealed, visible: visible && node.visible };\n    }\n    getParentNodeWithListIndex(location, node = this.root, listIndex = 0, revealed = true, visible = true) {\n        const [index, ...rest] = location;\n        if (index < 0 || index > node.children.length) {\n            throw new TreeError(this.user, 'Invalid tree location');\n        }\n        // TODO@joao perf!\n        for (let i = 0; i < index; i++) {\n            listIndex += node.children[i].renderNodeCount;\n        }\n        revealed = revealed && !node.collapsed;\n        visible = visible && node.visible;\n        if (rest.length === 0) {\n            return { parentNode: node, listIndex, revealed, visible };\n        }\n        return this.getParentNodeWithListIndex(rest, node.children[index], listIndex + 1, revealed, visible);\n    }\n    getNode(location = []) {\n        return this.getTreeNode(location);\n    }\n    // TODO@joao perf!\n    getNodeLocation(node) {\n        const location = [];\n        let indexTreeNode = node; // typing woes\n        while (indexTreeNode.parent) {\n            location.push(indexTreeNode.parent.children.indexOf(indexTreeNode));\n            indexTreeNode = indexTreeNode.parent;\n        }\n        return location.reverse();\n    }\n    getParentNodeLocation(location) {\n        if (location.length === 0) {\n            return undefined;\n        }\n        else if (location.length === 1) {\n            return [];\n        }\n        else {\n            return tail2(location)[0];\n        }\n    }\n    getFirstElementChild(location) {\n        const node = this.getTreeNode(location);\n        if (node.children.length === 0) {\n            return undefined;\n        }\n        return node.children[0].element;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/tree/media/tree.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-tl-row {\n\tdisplay: flex;\n\theight: 100%;\n\talign-items: center;\n\tposition: relative;\n}\n\n.monaco-tl-row.disabled {\n\tcursor: default;\n}\n.monaco-tl-indent {\n\theight: 100%;\n\tposition: absolute;\n\ttop: 0;\n\tleft: 16px;\n\tpointer-events: none;\n}\n\n.hide-arrows .monaco-tl-indent {\n\tleft: 12px;\n}\n\n.monaco-tl-indent > .indent-guide {\n\tdisplay: inline-block;\n\tbox-sizing: border-box;\n\theight: 100%;\n\tborder-left: 1px solid transparent;\n}\n\n.monaco-workbench:not(.reduce-motion) .monaco-tl-indent > .indent-guide {\n\ttransition: border-color 0.1s linear;\n}\n\n.monaco-tl-twistie,\n.monaco-tl-contents {\n\theight: 100%;\n}\n\n.monaco-tl-twistie {\n\tfont-size: 10px;\n\ttext-align: right;\n\tpadding-right: 6px;\n\tflex-shrink: 0;\n\twidth: 16px;\n\tdisplay: flex !important;\n\talign-items: center;\n\tjustify-content: center;\n\ttransform: translateX(3px);\n}\n\n.monaco-tl-contents {\n\tflex: 1;\n\toverflow: hidden;\n}\n\n.monaco-tl-twistie::before {\n\tborder-radius: 20px;\n}\n\n.monaco-tl-twistie.collapsed::before {\n\ttransform: rotate(-90deg);\n}\n\n.monaco-tl-twistie.codicon-tree-item-loading::before {\n\t/* Use steps to throttle FPS to reduce CPU usage */\n\tanimation: codicon-spin 1.25s steps(30) infinite;\n}\n\n.monaco-tree-type-filter {\n\tposition: absolute;\n\ttop: 0;\n\tdisplay: flex;\n\tpadding: 3px;\n\tmax-width: 200px;\n\tz-index: 100;\n\tmargin: 0 6px;\n\tborder: 1px solid var(--vscode-widget-border);\n\tborder-bottom-left-radius: 4px;\n\tborder-bottom-right-radius: 4px;\n}\n\n.monaco-workbench:not(.reduce-motion) .monaco-tree-type-filter {\n\ttransition: top 0.3s;\n}\n\n.monaco-tree-type-filter.disabled {\n\ttop: -40px !important;\n}\n\n.monaco-tree-type-filter-grab {\n\tdisplay: flex !important;\n\talign-items: center;\n\tjustify-content: center;\n\tcursor: grab;\n\tmargin-right: 2px;\n}\n\n.monaco-tree-type-filter-grab.grabbing {\n\tcursor: grabbing;\n}\n\n.monaco-tree-type-filter-input {\n\tflex: 1;\n}\n\n.monaco-tree-type-filter-input .monaco-inputbox {\n\theight: 23px;\n}\n\n.monaco-tree-type-filter-input .monaco-inputbox > .ibwrapper > .input,\n.monaco-tree-type-filter-input .monaco-inputbox > .ibwrapper > .mirror {\n\tpadding: 2px 4px;\n}\n\n.monaco-tree-type-filter-input .monaco-findInput > .controls {\n\ttop: 2px;\n}\n\n.monaco-tree-type-filter-actionbar {\n\tmargin-left: 4px;\n}\n\n.monaco-tree-type-filter-actionbar .monaco-action-bar .action-label {\n\tpadding: 2px;\n}\n\n.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container{\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: 0;\n\tz-index: 13; /* Settings editor uses z-index: 12 */\n\n\t/* Backup color in case the tree does not provide the background color */\n\tbackground-color: var(--vscode-sideBar-background);\n}\n\n.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row.monaco-list-row{\n\tposition: absolute;\n\twidth: 100%;\n\topacity: 1 !important; /* Settings editor uses opacity < 1 */\n\toverflow: hidden;\n\n\t/* Backup color in case the tree does not provide the background color */\n\tbackground-color: var(--vscode-sideBar-background);\n}\n\n.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row:hover{\n\tbackground-color: var(--vscode-list-hoverBackground) !important;\n\tcursor: pointer;\n}\n\n.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container.empty,\n.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container.empty .monaco-tree-sticky-container-shadow {\n\tdisplay: none;\n}\n\n.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-container-shadow {\n\tposition: absolute;\n\tbottom: -3px;\n\tleft: 0px;\n\theight: 0px; /* heigt is 3px and only set when there is a treeStickyScrollShadow color */\n\twidth: 100%;\n}\n\n.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container[tabindex=\"0\"]:focus{\n\toutline: none;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/tree/objectTree.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AbstractTree } from './abstractTree.js';\nimport { CompressibleObjectTreeModel } from './compressedObjectTreeModel.js';\nimport { ObjectTreeModel } from './objectTreeModel.js';\nimport { memoize } from '../../../common/decorators.js';\nimport { Iterable } from '../../../common/iterator.js';\nexport class ObjectTree extends AbstractTree {\n    get onDidChangeCollapseState() { return this.model.onDidChangeCollapseState; }\n    constructor(user, container, delegate, renderers, options = {}) {\n        super(user, container, delegate, renderers, options);\n        this.user = user;\n    }\n    setChildren(element, children = Iterable.empty(), options) {\n        this.model.setChildren(element, children, options);\n    }\n    rerender(element) {\n        if (element === undefined) {\n            this.view.rerender();\n            return;\n        }\n        this.model.rerender(element);\n    }\n    hasElement(element) {\n        return this.model.has(element);\n    }\n    createModel(user, view, options) {\n        return new ObjectTreeModel(user, view, options);\n    }\n}\nclass CompressibleRenderer {\n    get compressedTreeNodeProvider() {\n        return this._compressedTreeNodeProvider();\n    }\n    constructor(_compressedTreeNodeProvider, stickyScrollDelegate, renderer) {\n        this._compressedTreeNodeProvider = _compressedTreeNodeProvider;\n        this.stickyScrollDelegate = stickyScrollDelegate;\n        this.renderer = renderer;\n        this.templateId = renderer.templateId;\n        if (renderer.onDidChangeTwistieState) {\n            this.onDidChangeTwistieState = renderer.onDidChangeTwistieState;\n        }\n    }\n    renderTemplate(container) {\n        const data = this.renderer.renderTemplate(container);\n        return { compressedTreeNode: undefined, data };\n    }\n    renderElement(node, index, templateData, height) {\n        let compressedTreeNode = this.stickyScrollDelegate.getCompressedNode(node);\n        if (!compressedTreeNode) {\n            compressedTreeNode = this.compressedTreeNodeProvider.getCompressedTreeNode(node.element);\n        }\n        if (compressedTreeNode.element.elements.length === 1) {\n            templateData.compressedTreeNode = undefined;\n            this.renderer.renderElement(node, index, templateData.data, height);\n        }\n        else {\n            templateData.compressedTreeNode = compressedTreeNode;\n            this.renderer.renderCompressedElements(compressedTreeNode, index, templateData.data, height);\n        }\n    }\n    disposeElement(node, index, templateData, height) {\n        var _a, _b, _c, _d;\n        if (templateData.compressedTreeNode) {\n            (_b = (_a = this.renderer).disposeCompressedElements) === null || _b === void 0 ? void 0 : _b.call(_a, templateData.compressedTreeNode, index, templateData.data, height);\n        }\n        else {\n            (_d = (_c = this.renderer).disposeElement) === null || _d === void 0 ? void 0 : _d.call(_c, node, index, templateData.data, height);\n        }\n    }\n    disposeTemplate(templateData) {\n        this.renderer.disposeTemplate(templateData.data);\n    }\n    renderTwistie(element, twistieElement) {\n        if (this.renderer.renderTwistie) {\n            return this.renderer.renderTwistie(element, twistieElement);\n        }\n        return false;\n    }\n}\n__decorate([\n    memoize\n], CompressibleRenderer.prototype, \"compressedTreeNodeProvider\", null);\nclass CompressibleStickyScrollDelegate {\n    constructor(modelProvider) {\n        this.modelProvider = modelProvider;\n        this.compressedStickyNodes = new Map();\n    }\n    getCompressedNode(node) {\n        return this.compressedStickyNodes.get(node);\n    }\n    constrainStickyScrollNodes(stickyNodes, stickyScrollMaxItemCount, maxWidgetHeight) {\n        this.compressedStickyNodes.clear();\n        if (stickyNodes.length === 0) {\n            return [];\n        }\n        for (let i = 0; i < stickyNodes.length; i++) {\n            const stickyNode = stickyNodes[i];\n            const stickyNodeBottom = stickyNode.position + stickyNode.height;\n            const followingReachesMaxHeight = i + 1 < stickyNodes.length && stickyNodeBottom + stickyNodes[i + 1].height > maxWidgetHeight;\n            if (followingReachesMaxHeight || i >= stickyScrollMaxItemCount - 1 && stickyScrollMaxItemCount < stickyNodes.length) {\n                const uncompressedStickyNodes = stickyNodes.slice(0, i);\n                const overflowingStickyNodes = stickyNodes.slice(i);\n                const compressedStickyNode = this.compressStickyNodes(overflowingStickyNodes);\n                return [...uncompressedStickyNodes, compressedStickyNode];\n            }\n        }\n        return stickyNodes;\n    }\n    compressStickyNodes(stickyNodes) {\n        if (stickyNodes.length === 0) {\n            throw new Error('Can\\'t compress empty sticky nodes');\n        }\n        const compressionModel = this.modelProvider();\n        if (!compressionModel.isCompressionEnabled()) {\n            return stickyNodes[0];\n        }\n        // Collect all elements to be compressed\n        const elements = [];\n        for (let i = 0; i < stickyNodes.length; i++) {\n            const stickyNode = stickyNodes[i];\n            const compressedNode = compressionModel.getCompressedTreeNode(stickyNode.node.element);\n            if (compressedNode.element) {\n                // if an element is incompressible, it can't be compressed with it's parent element\n                if (i !== 0 && compressedNode.element.incompressible) {\n                    break;\n                }\n                elements.push(...compressedNode.element.elements);\n            }\n        }\n        if (elements.length < 2) {\n            return stickyNodes[0];\n        }\n        // Compress the elements\n        const lastStickyNode = stickyNodes[stickyNodes.length - 1];\n        const compressedElement = { elements, incompressible: false };\n        const compressedNode = { ...lastStickyNode.node, children: [], element: compressedElement };\n        const stickyTreeNode = new Proxy(stickyNodes[0].node, {});\n        const compressedStickyNode = {\n            node: stickyTreeNode,\n            startIndex: stickyNodes[0].startIndex,\n            endIndex: lastStickyNode.endIndex,\n            position: stickyNodes[0].position,\n            height: stickyNodes[0].height,\n        };\n        this.compressedStickyNodes.set(stickyTreeNode, compressedNode);\n        return compressedStickyNode;\n    }\n}\nfunction asObjectTreeOptions(compressedTreeNodeProvider, options) {\n    return options && {\n        ...options,\n        keyboardNavigationLabelProvider: options.keyboardNavigationLabelProvider && {\n            getKeyboardNavigationLabel(e) {\n                let compressedTreeNode;\n                try {\n                    compressedTreeNode = compressedTreeNodeProvider().getCompressedTreeNode(e);\n                }\n                catch (_a) {\n                    return options.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e);\n                }\n                if (compressedTreeNode.element.elements.length === 1) {\n                    return options.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e);\n                }\n                else {\n                    return options.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(compressedTreeNode.element.elements);\n                }\n            }\n        }\n    };\n}\nexport class CompressibleObjectTree extends ObjectTree {\n    constructor(user, container, delegate, renderers, options = {}) {\n        const compressedTreeNodeProvider = () => this;\n        const stickyScrollDelegate = new CompressibleStickyScrollDelegate(() => this.model);\n        const compressibleRenderers = renderers.map(r => new CompressibleRenderer(compressedTreeNodeProvider, stickyScrollDelegate, r));\n        super(user, container, delegate, compressibleRenderers, { ...asObjectTreeOptions(compressedTreeNodeProvider, options), stickyScrollDelegate });\n    }\n    setChildren(element, children = Iterable.empty(), options) {\n        this.model.setChildren(element, children, options);\n    }\n    createModel(user, view, options) {\n        return new CompressibleObjectTreeModel(user, view, options);\n    }\n    updateOptions(optionsUpdate = {}) {\n        super.updateOptions(optionsUpdate);\n        if (typeof optionsUpdate.compressionEnabled !== 'undefined') {\n            this.model.setCompressionEnabled(optionsUpdate.compressionEnabled);\n        }\n    }\n    getCompressedTreeNode(element = null) {\n        return this.model.getCompressedTreeNode(element);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/tree/objectTreeModel.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { IndexTreeModel } from './indexTreeModel.js';\nimport { ObjectTreeElementCollapseState, TreeError } from './tree.js';\nimport { Iterable } from '../../../common/iterator.js';\nexport class ObjectTreeModel {\n    constructor(user, list, options = {}) {\n        this.user = user;\n        this.rootRef = null;\n        this.nodes = new Map();\n        this.nodesByIdentity = new Map();\n        this.model = new IndexTreeModel(user, list, null, options);\n        this.onDidSplice = this.model.onDidSplice;\n        this.onDidChangeCollapseState = this.model.onDidChangeCollapseState;\n        this.onDidChangeRenderNodeCount = this.model.onDidChangeRenderNodeCount;\n        if (options.sorter) {\n            this.sorter = {\n                compare(a, b) {\n                    return options.sorter.compare(a.element, b.element);\n                }\n            };\n        }\n        this.identityProvider = options.identityProvider;\n    }\n    setChildren(element, children = Iterable.empty(), options = {}) {\n        const location = this.getElementLocation(element);\n        this._setChildren(location, this.preserveCollapseState(children), options);\n    }\n    _setChildren(location, children = Iterable.empty(), options) {\n        const insertedElements = new Set();\n        const insertedElementIds = new Set();\n        const onDidCreateNode = (node) => {\n            var _a;\n            if (node.element === null) {\n                return;\n            }\n            const tnode = node;\n            insertedElements.add(tnode.element);\n            this.nodes.set(tnode.element, tnode);\n            if (this.identityProvider) {\n                const id = this.identityProvider.getId(tnode.element).toString();\n                insertedElementIds.add(id);\n                this.nodesByIdentity.set(id, tnode);\n            }\n            (_a = options.onDidCreateNode) === null || _a === void 0 ? void 0 : _a.call(options, tnode);\n        };\n        const onDidDeleteNode = (node) => {\n            var _a;\n            if (node.element === null) {\n                return;\n            }\n            const tnode = node;\n            if (!insertedElements.has(tnode.element)) {\n                this.nodes.delete(tnode.element);\n            }\n            if (this.identityProvider) {\n                const id = this.identityProvider.getId(tnode.element).toString();\n                if (!insertedElementIds.has(id)) {\n                    this.nodesByIdentity.delete(id);\n                }\n            }\n            (_a = options.onDidDeleteNode) === null || _a === void 0 ? void 0 : _a.call(options, tnode);\n        };\n        this.model.splice([...location, 0], Number.MAX_VALUE, children, { ...options, onDidCreateNode, onDidDeleteNode });\n    }\n    preserveCollapseState(elements = Iterable.empty()) {\n        if (this.sorter) {\n            elements = [...elements].sort(this.sorter.compare.bind(this.sorter));\n        }\n        return Iterable.map(elements, treeElement => {\n            let node = this.nodes.get(treeElement.element);\n            if (!node && this.identityProvider) {\n                const id = this.identityProvider.getId(treeElement.element).toString();\n                node = this.nodesByIdentity.get(id);\n            }\n            if (!node) {\n                let collapsed;\n                if (typeof treeElement.collapsed === 'undefined') {\n                    collapsed = undefined;\n                }\n                else if (treeElement.collapsed === ObjectTreeElementCollapseState.Collapsed || treeElement.collapsed === ObjectTreeElementCollapseState.PreserveOrCollapsed) {\n                    collapsed = true;\n                }\n                else if (treeElement.collapsed === ObjectTreeElementCollapseState.Expanded || treeElement.collapsed === ObjectTreeElementCollapseState.PreserveOrExpanded) {\n                    collapsed = false;\n                }\n                else {\n                    collapsed = Boolean(treeElement.collapsed);\n                }\n                return {\n                    ...treeElement,\n                    children: this.preserveCollapseState(treeElement.children),\n                    collapsed\n                };\n            }\n            const collapsible = typeof treeElement.collapsible === 'boolean' ? treeElement.collapsible : node.collapsible;\n            let collapsed;\n            if (typeof treeElement.collapsed === 'undefined' || treeElement.collapsed === ObjectTreeElementCollapseState.PreserveOrCollapsed || treeElement.collapsed === ObjectTreeElementCollapseState.PreserveOrExpanded) {\n                collapsed = node.collapsed;\n            }\n            else if (treeElement.collapsed === ObjectTreeElementCollapseState.Collapsed) {\n                collapsed = true;\n            }\n            else if (treeElement.collapsed === ObjectTreeElementCollapseState.Expanded) {\n                collapsed = false;\n            }\n            else {\n                collapsed = Boolean(treeElement.collapsed);\n            }\n            return {\n                ...treeElement,\n                collapsible,\n                collapsed,\n                children: this.preserveCollapseState(treeElement.children)\n            };\n        });\n    }\n    rerender(element) {\n        const location = this.getElementLocation(element);\n        this.model.rerender(location);\n    }\n    getFirstElementChild(ref = null) {\n        const location = this.getElementLocation(ref);\n        return this.model.getFirstElementChild(location);\n    }\n    has(element) {\n        return this.nodes.has(element);\n    }\n    getListIndex(element) {\n        const location = this.getElementLocation(element);\n        return this.model.getListIndex(location);\n    }\n    getListRenderCount(element) {\n        const location = this.getElementLocation(element);\n        return this.model.getListRenderCount(location);\n    }\n    isCollapsible(element) {\n        const location = this.getElementLocation(element);\n        return this.model.isCollapsible(location);\n    }\n    setCollapsible(element, collapsible) {\n        const location = this.getElementLocation(element);\n        return this.model.setCollapsible(location, collapsible);\n    }\n    isCollapsed(element) {\n        const location = this.getElementLocation(element);\n        return this.model.isCollapsed(location);\n    }\n    setCollapsed(element, collapsed, recursive) {\n        const location = this.getElementLocation(element);\n        return this.model.setCollapsed(location, collapsed, recursive);\n    }\n    expandTo(element) {\n        const location = this.getElementLocation(element);\n        this.model.expandTo(location);\n    }\n    refilter() {\n        this.model.refilter();\n    }\n    getNode(element = null) {\n        if (element === null) {\n            return this.model.getNode(this.model.rootRef);\n        }\n        const node = this.nodes.get(element);\n        if (!node) {\n            throw new TreeError(this.user, `Tree element not found: ${element}`);\n        }\n        return node;\n    }\n    getNodeLocation(node) {\n        return node.element;\n    }\n    getParentNodeLocation(element) {\n        if (element === null) {\n            throw new TreeError(this.user, `Invalid getParentNodeLocation call`);\n        }\n        const node = this.nodes.get(element);\n        if (!node) {\n            throw new TreeError(this.user, `Tree element not found: ${element}`);\n        }\n        const location = this.model.getNodeLocation(node);\n        const parentLocation = this.model.getParentNodeLocation(location);\n        const parent = this.model.getNode(parentLocation);\n        return parent.element;\n    }\n    getElementLocation(element) {\n        if (element === null) {\n            return [];\n        }\n        const node = this.nodes.get(element);\n        if (!node) {\n            throw new TreeError(this.user, `Tree element not found: ${element}`);\n        }\n        return this.model.getNodeLocation(node);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/tree/tree.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport var ObjectTreeElementCollapseState;\n(function (ObjectTreeElementCollapseState) {\n    ObjectTreeElementCollapseState[ObjectTreeElementCollapseState[\"Expanded\"] = 0] = \"Expanded\";\n    ObjectTreeElementCollapseState[ObjectTreeElementCollapseState[\"Collapsed\"] = 1] = \"Collapsed\";\n    /**\n     * If the element is already in the tree, preserve its current state. Else, expand it.\n     */\n    ObjectTreeElementCollapseState[ObjectTreeElementCollapseState[\"PreserveOrExpanded\"] = 2] = \"PreserveOrExpanded\";\n    /**\n     * If the element is already in the tree, preserve its current state. Else, collapse it.\n     */\n    ObjectTreeElementCollapseState[ObjectTreeElementCollapseState[\"PreserveOrCollapsed\"] = 3] = \"PreserveOrCollapsed\";\n})(ObjectTreeElementCollapseState || (ObjectTreeElementCollapseState = {}));\nexport var TreeMouseEventTarget;\n(function (TreeMouseEventTarget) {\n    TreeMouseEventTarget[TreeMouseEventTarget[\"Unknown\"] = 0] = \"Unknown\";\n    TreeMouseEventTarget[TreeMouseEventTarget[\"Twistie\"] = 1] = \"Twistie\";\n    TreeMouseEventTarget[TreeMouseEventTarget[\"Element\"] = 2] = \"Element\";\n    TreeMouseEventTarget[TreeMouseEventTarget[\"Filter\"] = 3] = \"Filter\";\n})(TreeMouseEventTarget || (TreeMouseEventTarget = {}));\nexport class TreeError extends Error {\n    constructor(user, message) {\n        super(`TreeError [${user}] ${message}`);\n    }\n}\nexport class WeakMapper {\n    constructor(fn) {\n        this.fn = fn;\n        this._map = new WeakMap();\n    }\n    map(key) {\n        let result = this._map.get(key);\n        if (!result) {\n            result = this.fn(key);\n            this._map.set(key, result);\n        }\n        return result;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/ui/widget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../dom.js';\nimport { StandardKeyboardEvent } from '../keyboardEvent.js';\nimport { StandardMouseEvent } from '../mouseEvent.js';\nimport { Gesture } from '../touch.js';\nimport { Disposable } from '../../common/lifecycle.js';\nexport class Widget extends Disposable {\n    onclick(domNode, listener) {\n        this._register(dom.addDisposableListener(domNode, dom.EventType.CLICK, (e) => listener(new StandardMouseEvent(dom.getWindow(domNode), e))));\n    }\n    onmousedown(domNode, listener) {\n        this._register(dom.addDisposableListener(domNode, dom.EventType.MOUSE_DOWN, (e) => listener(new StandardMouseEvent(dom.getWindow(domNode), e))));\n    }\n    onmouseover(domNode, listener) {\n        this._register(dom.addDisposableListener(domNode, dom.EventType.MOUSE_OVER, (e) => listener(new StandardMouseEvent(dom.getWindow(domNode), e))));\n    }\n    onmouseleave(domNode, listener) {\n        this._register(dom.addDisposableListener(domNode, dom.EventType.MOUSE_LEAVE, (e) => listener(new StandardMouseEvent(dom.getWindow(domNode), e))));\n    }\n    onkeydown(domNode, listener) {\n        this._register(dom.addDisposableListener(domNode, dom.EventType.KEY_DOWN, (e) => listener(new StandardKeyboardEvent(e))));\n    }\n    onkeyup(domNode, listener) {\n        this._register(dom.addDisposableListener(domNode, dom.EventType.KEY_UP, (e) => listener(new StandardKeyboardEvent(e))));\n    }\n    oninput(domNode, listener) {\n        this._register(dom.addDisposableListener(domNode, dom.EventType.INPUT, listener));\n    }\n    onblur(domNode, listener) {\n        this._register(dom.addDisposableListener(domNode, dom.EventType.BLUR, listener));\n    }\n    onfocus(domNode, listener) {\n        this._register(dom.addDisposableListener(domNode, dom.EventType.FOCUS, listener));\n    }\n    ignoreGesture(domNode) {\n        return Gesture.ignoreTarget(domNode);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/browser/window.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport function ensureCodeWindow(targetWindow, fallbackWindowId) {\n    const codeWindow = targetWindow;\n    if (typeof codeWindow.vscodeWindowId !== 'number') {\n        Object.defineProperty(codeWindow, 'vscodeWindowId', {\n            get: () => fallbackWindowId\n        });\n    }\n}\n// eslint-disable-next-line no-restricted-globals\nexport const mainWindow = window;\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/actions.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from './event.js';\nimport { Disposable } from './lifecycle.js';\nimport * as nls from '../../nls.js';\nexport class Action extends Disposable {\n    constructor(id, label = '', cssClass = '', enabled = true, actionCallback) {\n        super();\n        this._onDidChange = this._register(new Emitter());\n        this.onDidChange = this._onDidChange.event;\n        this._enabled = true;\n        this._id = id;\n        this._label = label;\n        this._cssClass = cssClass;\n        this._enabled = enabled;\n        this._actionCallback = actionCallback;\n    }\n    get id() {\n        return this._id;\n    }\n    get label() {\n        return this._label;\n    }\n    set label(value) {\n        this._setLabel(value);\n    }\n    _setLabel(value) {\n        if (this._label !== value) {\n            this._label = value;\n            this._onDidChange.fire({ label: value });\n        }\n    }\n    get tooltip() {\n        return this._tooltip || '';\n    }\n    set tooltip(value) {\n        this._setTooltip(value);\n    }\n    _setTooltip(value) {\n        if (this._tooltip !== value) {\n            this._tooltip = value;\n            this._onDidChange.fire({ tooltip: value });\n        }\n    }\n    get class() {\n        return this._cssClass;\n    }\n    set class(value) {\n        this._setClass(value);\n    }\n    _setClass(value) {\n        if (this._cssClass !== value) {\n            this._cssClass = value;\n            this._onDidChange.fire({ class: value });\n        }\n    }\n    get enabled() {\n        return this._enabled;\n    }\n    set enabled(value) {\n        this._setEnabled(value);\n    }\n    _setEnabled(value) {\n        if (this._enabled !== value) {\n            this._enabled = value;\n            this._onDidChange.fire({ enabled: value });\n        }\n    }\n    get checked() {\n        return this._checked;\n    }\n    set checked(value) {\n        this._setChecked(value);\n    }\n    _setChecked(value) {\n        if (this._checked !== value) {\n            this._checked = value;\n            this._onDidChange.fire({ checked: value });\n        }\n    }\n    async run(event, data) {\n        if (this._actionCallback) {\n            await this._actionCallback(event);\n        }\n    }\n}\nexport class ActionRunner extends Disposable {\n    constructor() {\n        super(...arguments);\n        this._onWillRun = this._register(new Emitter());\n        this.onWillRun = this._onWillRun.event;\n        this._onDidRun = this._register(new Emitter());\n        this.onDidRun = this._onDidRun.event;\n    }\n    async run(action, context) {\n        if (!action.enabled) {\n            return;\n        }\n        this._onWillRun.fire({ action });\n        let error = undefined;\n        try {\n            await this.runAction(action, context);\n        }\n        catch (e) {\n            error = e;\n        }\n        this._onDidRun.fire({ action, error });\n    }\n    async runAction(action, context) {\n        await action.run(context);\n    }\n}\nexport class Separator {\n    constructor() {\n        this.id = Separator.ID;\n        this.label = '';\n        this.tooltip = '';\n        this.class = 'separator';\n        this.enabled = false;\n        this.checked = false;\n    }\n    /**\n     * Joins all non-empty lists of actions with separators.\n     */\n    static join(...actionLists) {\n        let out = [];\n        for (const list of actionLists) {\n            if (!list.length) {\n                // skip\n            }\n            else if (out.length) {\n                out = [...out, new Separator(), ...list];\n            }\n            else {\n                out = list;\n            }\n        }\n        return out;\n    }\n    async run() { }\n}\nSeparator.ID = 'vs.actions.separator';\nexport class SubmenuAction {\n    get actions() { return this._actions; }\n    constructor(id, label, actions, cssClass) {\n        this.tooltip = '';\n        this.enabled = true;\n        this.checked = undefined;\n        this.id = id;\n        this.label = label;\n        this.class = cssClass;\n        this._actions = actions;\n    }\n    async run() { }\n}\nexport class EmptySubmenuAction extends Action {\n    constructor() {\n        super(EmptySubmenuAction.ID, nls.localize('submenu.empty', '(empty)'), undefined, false);\n    }\n}\nEmptySubmenuAction.ID = 'vs.actions.empty';\nexport function toAction(props) {\n    var _a, _b;\n    return {\n        id: props.id,\n        label: props.label,\n        tooltip: (_a = props.tooltip) !== null && _a !== void 0 ? _a : props.label,\n        class: props.class,\n        enabled: (_b = props.enabled) !== null && _b !== void 0 ? _b : true,\n        checked: props.checked,\n        run: async (...args) => props.run(...args),\n    };\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/arrays.js",
    "content": "/**\n * Returns the last element of an array.\n * @param array The array.\n * @param n Which element from the end (default is zero).\n */\nexport function tail(array, n = 0) {\n    return array[array.length - (1 + n)];\n}\nexport function tail2(arr) {\n    if (arr.length === 0) {\n        throw new Error('Invalid tail call');\n    }\n    return [arr.slice(0, arr.length - 1), arr[arr.length - 1]];\n}\nexport function equals(one, other, itemEquals = (a, b) => a === b) {\n    if (one === other) {\n        return true;\n    }\n    if (!one || !other) {\n        return false;\n    }\n    if (one.length !== other.length) {\n        return false;\n    }\n    for (let i = 0, len = one.length; i < len; i++) {\n        if (!itemEquals(one[i], other[i])) {\n            return false;\n        }\n    }\n    return true;\n}\n/**\n * Remove the element at `index` by replacing it with the last element. This is faster than `splice`\n * but changes the order of the array\n */\nexport function removeFastWithoutKeepingOrder(array, index) {\n    const last = array.length - 1;\n    if (index < last) {\n        array[index] = array[last];\n    }\n    array.pop();\n}\n/**\n * Performs a binary search algorithm over a sorted array.\n *\n * @param array The array being searched.\n * @param key The value we search for.\n * @param comparator A function that takes two array elements and returns zero\n *   if they are equal, a negative number if the first element precedes the\n *   second one in the sorting order, or a positive number if the second element\n *   precedes the first one.\n * @return See {@link binarySearch2}\n */\nexport function binarySearch(array, key, comparator) {\n    return binarySearch2(array.length, i => comparator(array[i], key));\n}\n/**\n * Performs a binary search algorithm over a sorted collection. Useful for cases\n * when we need to perform a binary search over something that isn't actually an\n * array, and converting data to an array would defeat the use of binary search\n * in the first place.\n *\n * @param length The collection length.\n * @param compareToKey A function that takes an index of an element in the\n *   collection and returns zero if the value at this index is equal to the\n *   search key, a negative number if the value precedes the search key in the\n *   sorting order, or a positive number if the search key precedes the value.\n * @return A non-negative index of an element, if found. If not found, the\n *   result is -(n+1) (or ~n, using bitwise notation), where n is the index\n *   where the key should be inserted to maintain the sorting order.\n */\nexport function binarySearch2(length, compareToKey) {\n    let low = 0, high = length - 1;\n    while (low <= high) {\n        const mid = ((low + high) / 2) | 0;\n        const comp = compareToKey(mid);\n        if (comp < 0) {\n            low = mid + 1;\n        }\n        else if (comp > 0) {\n            high = mid - 1;\n        }\n        else {\n            return mid;\n        }\n    }\n    return -(low + 1);\n}\nexport function quickSelect(nth, data, compare) {\n    nth = nth | 0;\n    if (nth >= data.length) {\n        throw new TypeError('invalid index');\n    }\n    const pivotValue = data[Math.floor(data.length * Math.random())];\n    const lower = [];\n    const higher = [];\n    const pivots = [];\n    for (const value of data) {\n        const val = compare(value, pivotValue);\n        if (val < 0) {\n            lower.push(value);\n        }\n        else if (val > 0) {\n            higher.push(value);\n        }\n        else {\n            pivots.push(value);\n        }\n    }\n    if (nth < lower.length) {\n        return quickSelect(nth, lower, compare);\n    }\n    else if (nth < lower.length + pivots.length) {\n        return pivots[0];\n    }\n    else {\n        return quickSelect(nth - (lower.length + pivots.length), higher, compare);\n    }\n}\nexport function groupBy(data, compare) {\n    const result = [];\n    let currentGroup = undefined;\n    for (const element of data.slice(0).sort(compare)) {\n        if (!currentGroup || compare(currentGroup[0], element) !== 0) {\n            currentGroup = [element];\n            result.push(currentGroup);\n        }\n        else {\n            currentGroup.push(element);\n        }\n    }\n    return result;\n}\n/**\n * Splits the given items into a list of (non-empty) groups.\n * `shouldBeGrouped` is used to decide if two consecutive items should be in the same group.\n * The order of the items is preserved.\n */\nexport function* groupAdjacentBy(items, shouldBeGrouped) {\n    let currentGroup;\n    let last;\n    for (const item of items) {\n        if (last !== undefined && shouldBeGrouped(last, item)) {\n            currentGroup.push(item);\n        }\n        else {\n            if (currentGroup) {\n                yield currentGroup;\n            }\n            currentGroup = [item];\n        }\n        last = item;\n    }\n    if (currentGroup) {\n        yield currentGroup;\n    }\n}\nexport function forEachAdjacent(arr, f) {\n    for (let i = 0; i <= arr.length; i++) {\n        f(i === 0 ? undefined : arr[i - 1], i === arr.length ? undefined : arr[i]);\n    }\n}\nexport function forEachWithNeighbors(arr, f) {\n    for (let i = 0; i < arr.length; i++) {\n        f(i === 0 ? undefined : arr[i - 1], arr[i], i + 1 === arr.length ? undefined : arr[i + 1]);\n    }\n}\n/**\n * @returns New array with all falsy values removed. The original array IS NOT modified.\n */\nexport function coalesce(array) {\n    return array.filter((e) => !!e);\n}\n/**\n * Remove all falsy values from `array`. The original array IS modified.\n */\nexport function coalesceInPlace(array) {\n    let to = 0;\n    for (let i = 0; i < array.length; i++) {\n        if (!!array[i]) {\n            array[to] = array[i];\n            to += 1;\n        }\n    }\n    array.length = to;\n}\n/**\n * @returns false if the provided object is an array and not empty.\n */\nexport function isFalsyOrEmpty(obj) {\n    return !Array.isArray(obj) || obj.length === 0;\n}\nexport function isNonEmptyArray(obj) {\n    return Array.isArray(obj) && obj.length > 0;\n}\n/**\n * Removes duplicates from the given array. The optional keyFn allows to specify\n * how elements are checked for equality by returning an alternate value for each.\n */\nexport function distinct(array, keyFn = value => value) {\n    const seen = new Set();\n    return array.filter(element => {\n        const key = keyFn(element);\n        if (seen.has(key)) {\n            return false;\n        }\n        seen.add(key);\n        return true;\n    });\n}\nexport function firstOrDefault(array, notFoundValue) {\n    return array.length > 0 ? array[0] : notFoundValue;\n}\nexport function range(arg, to) {\n    let from = typeof to === 'number' ? arg : 0;\n    if (typeof to === 'number') {\n        from = arg;\n    }\n    else {\n        from = 0;\n        to = arg;\n    }\n    const result = [];\n    if (from <= to) {\n        for (let i = from; i < to; i++) {\n            result.push(i);\n        }\n    }\n    else {\n        for (let i = from; i > to; i--) {\n            result.push(i);\n        }\n    }\n    return result;\n}\n/**\n * Insert `insertArr` inside `target` at `insertIndex`.\n * Please don't touch unless you understand https://jsperf.com/inserting-an-array-within-an-array\n */\nexport function arrayInsert(target, insertIndex, insertArr) {\n    const before = target.slice(0, insertIndex);\n    const after = target.slice(insertIndex);\n    return before.concat(insertArr, after);\n}\n/**\n * Pushes an element to the start of the array, if found.\n */\nexport function pushToStart(arr, value) {\n    const index = arr.indexOf(value);\n    if (index > -1) {\n        arr.splice(index, 1);\n        arr.unshift(value);\n    }\n}\n/**\n * Pushes an element to the end of the array, if found.\n */\nexport function pushToEnd(arr, value) {\n    const index = arr.indexOf(value);\n    if (index > -1) {\n        arr.splice(index, 1);\n        arr.push(value);\n    }\n}\nexport function pushMany(arr, items) {\n    for (const item of items) {\n        arr.push(item);\n    }\n}\nexport function asArray(x) {\n    return Array.isArray(x) ? x : [x];\n}\n/**\n * Insert the new items in the array.\n * @param array The original array.\n * @param start The zero-based location in the array from which to start inserting elements.\n * @param newItems The items to be inserted\n */\nexport function insertInto(array, start, newItems) {\n    const startIdx = getActualStartIndex(array, start);\n    const originalLength = array.length;\n    const newItemsLength = newItems.length;\n    array.length = originalLength + newItemsLength;\n    // Move the items after the start index, start from the end so that we don't overwrite any value.\n    for (let i = originalLength - 1; i >= startIdx; i--) {\n        array[i + newItemsLength] = array[i];\n    }\n    for (let i = 0; i < newItemsLength; i++) {\n        array[i + startIdx] = newItems[i];\n    }\n}\n/**\n * Removes elements from an array and inserts new elements in their place, returning the deleted elements. Alternative to the native Array.splice method, it\n * can only support limited number of items due to the maximum call stack size limit.\n * @param array The original array.\n * @param start The zero-based location in the array from which to start removing elements.\n * @param deleteCount The number of elements to remove.\n * @returns An array containing the elements that were deleted.\n */\nexport function splice(array, start, deleteCount, newItems) {\n    const index = getActualStartIndex(array, start);\n    let result = array.splice(index, deleteCount);\n    if (result === undefined) {\n        // see https://bugs.webkit.org/show_bug.cgi?id=261140\n        result = [];\n    }\n    insertInto(array, index, newItems);\n    return result;\n}\n/**\n * Determine the actual start index (same logic as the native splice() or slice())\n * If greater than the length of the array, start will be set to the length of the array. In this case, no element will be deleted but the method will behave as an adding function, adding as many element as item[n*] provided.\n * If negative, it will begin that many elements from the end of the array. (In this case, the origin -1, meaning -n is the index of the nth last element, and is therefore equivalent to the index of array.length - n.) If array.length + start is less than 0, it will begin from index 0.\n * @param array The target array.\n * @param start The operation index.\n */\nfunction getActualStartIndex(array, start) {\n    return start < 0 ? Math.max(start + array.length, 0) : Math.min(start, array.length);\n}\nexport var CompareResult;\n(function (CompareResult) {\n    function isLessThan(result) {\n        return result < 0;\n    }\n    CompareResult.isLessThan = isLessThan;\n    function isLessThanOrEqual(result) {\n        return result <= 0;\n    }\n    CompareResult.isLessThanOrEqual = isLessThanOrEqual;\n    function isGreaterThan(result) {\n        return result > 0;\n    }\n    CompareResult.isGreaterThan = isGreaterThan;\n    function isNeitherLessOrGreaterThan(result) {\n        return result === 0;\n    }\n    CompareResult.isNeitherLessOrGreaterThan = isNeitherLessOrGreaterThan;\n    CompareResult.greaterThan = 1;\n    CompareResult.lessThan = -1;\n    CompareResult.neitherLessOrGreaterThan = 0;\n})(CompareResult || (CompareResult = {}));\nexport function compareBy(selector, comparator) {\n    return (a, b) => comparator(selector(a), selector(b));\n}\nexport function tieBreakComparators(...comparators) {\n    return (item1, item2) => {\n        for (const comparator of comparators) {\n            const result = comparator(item1, item2);\n            if (!CompareResult.isNeitherLessOrGreaterThan(result)) {\n                return result;\n            }\n        }\n        return CompareResult.neitherLessOrGreaterThan;\n    };\n}\n/**\n * The natural order on numbers.\n*/\nexport const numberComparator = (a, b) => a - b;\nexport const booleanComparator = (a, b) => numberComparator(a ? 1 : 0, b ? 1 : 0);\nexport function reverseOrder(comparator) {\n    return (a, b) => -comparator(a, b);\n}\nexport class ArrayQueue {\n    /**\n     * Constructs a queue that is backed by the given array. Runtime is O(1).\n    */\n    constructor(items) {\n        this.items = items;\n        this.firstIdx = 0;\n        this.lastIdx = this.items.length - 1;\n    }\n    get length() {\n        return this.lastIdx - this.firstIdx + 1;\n    }\n    /**\n     * Consumes elements from the beginning of the queue as long as the predicate returns true.\n     * If no elements were consumed, `null` is returned. Has a runtime of O(result.length).\n    */\n    takeWhile(predicate) {\n        // P(k) := k <= this.lastIdx && predicate(this.items[k])\n        // Find s := min { k | k >= this.firstIdx && !P(k) } and return this.data[this.firstIdx...s)\n        let startIdx = this.firstIdx;\n        while (startIdx < this.items.length && predicate(this.items[startIdx])) {\n            startIdx++;\n        }\n        const result = startIdx === this.firstIdx ? null : this.items.slice(this.firstIdx, startIdx);\n        this.firstIdx = startIdx;\n        return result;\n    }\n    /**\n     * Consumes elements from the end of the queue as long as the predicate returns true.\n     * If no elements were consumed, `null` is returned.\n     * The result has the same order as the underlying array!\n    */\n    takeFromEndWhile(predicate) {\n        // P(k) := this.firstIdx >= k && predicate(this.items[k])\n        // Find s := max { k | k <= this.lastIdx && !P(k) } and return this.data(s...this.lastIdx]\n        let endIdx = this.lastIdx;\n        while (endIdx >= 0 && predicate(this.items[endIdx])) {\n            endIdx--;\n        }\n        const result = endIdx === this.lastIdx ? null : this.items.slice(endIdx + 1, this.lastIdx + 1);\n        this.lastIdx = endIdx;\n        return result;\n    }\n    peek() {\n        if (this.length === 0) {\n            return undefined;\n        }\n        return this.items[this.firstIdx];\n    }\n    dequeue() {\n        const result = this.items[this.firstIdx];\n        this.firstIdx++;\n        return result;\n    }\n    takeCount(count) {\n        const result = this.items.slice(this.firstIdx, this.firstIdx + count);\n        this.firstIdx += count;\n        return result;\n    }\n}\n/**\n * This class is faster than an iterator and array for lazy computed data.\n*/\nexport class CallbackIterable {\n    constructor(\n    /**\n     * Calls the callback for every item.\n     * Stops when the callback returns false.\n    */\n    iterate) {\n        this.iterate = iterate;\n    }\n    toArray() {\n        const result = [];\n        this.iterate(item => { result.push(item); return true; });\n        return result;\n    }\n    filter(predicate) {\n        return new CallbackIterable(cb => this.iterate(item => predicate(item) ? cb(item) : true));\n    }\n    map(mapFn) {\n        return new CallbackIterable(cb => this.iterate(item => cb(mapFn(item))));\n    }\n    findLast(predicate) {\n        let result;\n        this.iterate(item => {\n            if (predicate(item)) {\n                result = item;\n            }\n            return true;\n        });\n        return result;\n    }\n    findLastMaxBy(comparator) {\n        let result;\n        let first = true;\n        this.iterate(item => {\n            if (first || CompareResult.isGreaterThan(comparator(item, result))) {\n                first = false;\n                result = item;\n            }\n            return true;\n        });\n        return result;\n    }\n}\nCallbackIterable.empty = new CallbackIterable(_callback => { });\n/**\n * Represents a re-arrangement of items in an array.\n */\nexport class Permutation {\n    constructor(_indexMap) {\n        this._indexMap = _indexMap;\n    }\n    /**\n     * Returns a permutation that sorts the given array according to the given compare function.\n     */\n    static createSortPermutation(arr, compareFn) {\n        const sortIndices = Array.from(arr.keys()).sort((index1, index2) => compareFn(arr[index1], arr[index2]));\n        return new Permutation(sortIndices);\n    }\n    /**\n     * Returns a new array with the elements of the given array re-arranged according to this permutation.\n     */\n    apply(arr) {\n        return arr.map((_, index) => arr[this._indexMap[index]]);\n    }\n    /**\n     * Returns a new permutation that undoes the re-arrangement of this permutation.\n    */\n    inverse() {\n        const inverseIndexMap = this._indexMap.slice();\n        for (let i = 0; i < this._indexMap.length; i++) {\n            inverseIndexMap[this._indexMap[i]] = i;\n        }\n        return new Permutation(inverseIndexMap);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/arraysFind.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport function findLast(array, predicate) {\n    const idx = findLastIdx(array, predicate);\n    if (idx === -1) {\n        return undefined;\n    }\n    return array[idx];\n}\nexport function findLastIdx(array, predicate, fromIndex = array.length - 1) {\n    for (let i = fromIndex; i >= 0; i--) {\n        const element = array[i];\n        if (predicate(element)) {\n            return i;\n        }\n    }\n    return -1;\n}\n/**\n * Finds the last item where predicate is true using binary search.\n * `predicate` must be monotonous, i.e. `arr.map(predicate)` must be like `[true, ..., true, false, ..., false]`!\n *\n * @returns `undefined` if no item matches, otherwise the last item that matches the predicate.\n */\nexport function findLastMonotonous(array, predicate) {\n    const idx = findLastIdxMonotonous(array, predicate);\n    return idx === -1 ? undefined : array[idx];\n}\n/**\n * Finds the last item where predicate is true using binary search.\n * `predicate` must be monotonous, i.e. `arr.map(predicate)` must be like `[true, ..., true, false, ..., false]`!\n *\n * @returns `startIdx - 1` if predicate is false for all items, otherwise the index of the last item that matches the predicate.\n */\nexport function findLastIdxMonotonous(array, predicate, startIdx = 0, endIdxEx = array.length) {\n    let i = startIdx;\n    let j = endIdxEx;\n    while (i < j) {\n        const k = Math.floor((i + j) / 2);\n        if (predicate(array[k])) {\n            i = k + 1;\n        }\n        else {\n            j = k;\n        }\n    }\n    return i - 1;\n}\n/**\n * Finds the first item where predicate is true using binary search.\n * `predicate` must be monotonous, i.e. `arr.map(predicate)` must be like `[false, ..., false, true, ..., true]`!\n *\n * @returns `undefined` if no item matches, otherwise the first item that matches the predicate.\n */\nexport function findFirstMonotonous(array, predicate) {\n    const idx = findFirstIdxMonotonousOrArrLen(array, predicate);\n    return idx === array.length ? undefined : array[idx];\n}\n/**\n * Finds the first item where predicate is true using binary search.\n * `predicate` must be monotonous, i.e. `arr.map(predicate)` must be like `[false, ..., false, true, ..., true]`!\n *\n * @returns `endIdxEx` if predicate is false for all items, otherwise the index of the first item that matches the predicate.\n */\nexport function findFirstIdxMonotonousOrArrLen(array, predicate, startIdx = 0, endIdxEx = array.length) {\n    let i = startIdx;\n    let j = endIdxEx;\n    while (i < j) {\n        const k = Math.floor((i + j) / 2);\n        if (predicate(array[k])) {\n            j = k;\n        }\n        else {\n            i = k + 1;\n        }\n    }\n    return i;\n}\n/**\n * Use this when\n * * You have a sorted array\n * * You query this array with a monotonous predicate to find the last item that has a certain property.\n * * You query this array multiple times with monotonous predicates that get weaker and weaker.\n */\nexport class MonotonousArray {\n    constructor(_array) {\n        this._array = _array;\n        this._findLastMonotonousLastIdx = 0;\n    }\n    /**\n     * The predicate must be monotonous, i.e. `arr.map(predicate)` must be like `[true, ..., true, false, ..., false]`!\n     * For subsequent calls, current predicate must be weaker than (or equal to) the previous predicate, i.e. more entries must be `true`.\n     */\n    findLastMonotonous(predicate) {\n        if (MonotonousArray.assertInvariants) {\n            if (this._prevFindLastPredicate) {\n                for (const item of this._array) {\n                    if (this._prevFindLastPredicate(item) && !predicate(item)) {\n                        throw new Error('MonotonousArray: current predicate must be weaker than (or equal to) the previous predicate.');\n                    }\n                }\n            }\n            this._prevFindLastPredicate = predicate;\n        }\n        const idx = findLastIdxMonotonous(this._array, predicate, this._findLastMonotonousLastIdx);\n        this._findLastMonotonousLastIdx = idx + 1;\n        return idx === -1 ? undefined : this._array[idx];\n    }\n}\nMonotonousArray.assertInvariants = false;\n/**\n * Returns the first item that is equal to or greater than every other item.\n*/\nexport function findFirstMax(array, comparator) {\n    if (array.length === 0) {\n        return undefined;\n    }\n    let max = array[0];\n    for (let i = 1; i < array.length; i++) {\n        const item = array[i];\n        if (comparator(item, max) > 0) {\n            max = item;\n        }\n    }\n    return max;\n}\n/**\n * Returns the last item that is equal to or greater than every other item.\n*/\nexport function findLastMax(array, comparator) {\n    if (array.length === 0) {\n        return undefined;\n    }\n    let max = array[0];\n    for (let i = 1; i < array.length; i++) {\n        const item = array[i];\n        if (comparator(item, max) >= 0) {\n            max = item;\n        }\n    }\n    return max;\n}\n/**\n * Returns the first item that is equal to or less than every other item.\n*/\nexport function findFirstMin(array, comparator) {\n    return findFirstMax(array, (a, b) => -comparator(a, b));\n}\nexport function findMaxIdx(array, comparator) {\n    if (array.length === 0) {\n        return -1;\n    }\n    let maxIdx = 0;\n    for (let i = 1; i < array.length; i++) {\n        const item = array[i];\n        if (comparator(item, array[maxIdx]) > 0) {\n            maxIdx = i;\n        }\n    }\n    return maxIdx;\n}\n/**\n * Returns the first mapped value of the array which is not undefined.\n */\nexport function mapFindFirst(items, mapFn) {\n    for (const value of items) {\n        const mapped = mapFn(value);\n        if (mapped !== undefined) {\n            return mapped;\n        }\n    }\n    return undefined;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/assert.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { BugIndicatingError, onUnexpectedError } from './errors.js';\n/**\n * Throws an error with the provided message if the provided value does not evaluate to a true Javascript value.\n *\n * @deprecated Use `assert(...)` instead.\n * This method is usually used like this:\n * ```ts\n * import * as assert from 'vs/base/common/assert';\n * assert.ok(...);\n * ```\n *\n * However, `assert` in that example is a user chosen name.\n * There is no tooling for generating such an import statement.\n * Thus, the `assert(...)` function should be used instead.\n */\nexport function ok(value, message) {\n    if (!value) {\n        throw new Error(message ? `Assertion failed (${message})` : 'Assertion Failed');\n    }\n}\nexport function assertNever(value, message = 'Unreachable') {\n    throw new Error(message);\n}\n/**\n * Like assert, but doesn't throw.\n */\nexport function softAssert(condition) {\n    if (!condition) {\n        onUnexpectedError(new BugIndicatingError('Soft Assertion Failed'));\n    }\n}\n/**\n * condition must be side-effect free!\n */\nexport function assertFn(condition) {\n    if (!condition()) {\n        // eslint-disable-next-line no-debugger\n        debugger;\n        // Reevaluate `condition` again to make debugging easier\n        condition();\n        onUnexpectedError(new BugIndicatingError('Assertion Failed'));\n    }\n}\nexport function checkAdjacentItems(items, predicate) {\n    let i = 0;\n    while (i < items.length - 1) {\n        const a = items[i];\n        const b = items[i + 1];\n        if (!predicate(a, b)) {\n            return false;\n        }\n        i++;\n    }\n    return true;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/async.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { CancellationTokenSource } from './cancellation.js';\nimport { BugIndicatingError, CancellationError } from './errors.js';\nimport { Emitter, Event } from './event.js';\nimport { toDisposable } from './lifecycle.js';\nimport { setTimeout0 } from './platform.js';\nimport { MicrotaskDelay } from './symbols.js';\nexport function isThenable(obj) {\n    return !!obj && typeof obj.then === 'function';\n}\nexport function createCancelablePromise(callback) {\n    const source = new CancellationTokenSource();\n    const thenable = callback(source.token);\n    const promise = new Promise((resolve, reject) => {\n        const subscription = source.token.onCancellationRequested(() => {\n            subscription.dispose();\n            reject(new CancellationError());\n        });\n        Promise.resolve(thenable).then(value => {\n            subscription.dispose();\n            source.dispose();\n            resolve(value);\n        }, err => {\n            subscription.dispose();\n            source.dispose();\n            reject(err);\n        });\n    });\n    return new class {\n        cancel() {\n            source.cancel();\n            source.dispose();\n        }\n        then(resolve, reject) {\n            return promise.then(resolve, reject);\n        }\n        catch(reject) {\n            return this.then(undefined, reject);\n        }\n        finally(onfinally) {\n            return promise.finally(onfinally);\n        }\n    };\n}\nexport function raceCancellation(promise, token, defaultValue) {\n    return new Promise((resolve, reject) => {\n        const ref = token.onCancellationRequested(() => {\n            ref.dispose();\n            resolve(defaultValue);\n        });\n        promise.then(resolve, reject).finally(() => ref.dispose());\n    });\n}\n/**\n * A helper to prevent accumulation of sequential async tasks.\n *\n * Imagine a mail man with the sole task of delivering letters. As soon as\n * a letter submitted for delivery, he drives to the destination, delivers it\n * and returns to his base. Imagine that during the trip, N more letters were submitted.\n * When the mail man returns, he picks those N letters and delivers them all in a\n * single trip. Even though N+1 submissions occurred, only 2 deliveries were made.\n *\n * The throttler implements this via the queue() method, by providing it a task\n * factory. Following the example:\n *\n * \t\tconst throttler = new Throttler();\n * \t\tconst letters = [];\n *\n * \t\tfunction deliver() {\n * \t\t\tconst lettersToDeliver = letters;\n * \t\t\tletters = [];\n * \t\t\treturn makeTheTrip(lettersToDeliver);\n * \t\t}\n *\n * \t\tfunction onLetterReceived(l) {\n * \t\t\tletters.push(l);\n * \t\t\tthrottler.queue(deliver);\n * \t\t}\n */\nexport class Throttler {\n    constructor() {\n        this.isDisposed = false;\n        this.activePromise = null;\n        this.queuedPromise = null;\n        this.queuedPromiseFactory = null;\n    }\n    queue(promiseFactory) {\n        if (this.isDisposed) {\n            return Promise.reject(new Error('Throttler is disposed'));\n        }\n        if (this.activePromise) {\n            this.queuedPromiseFactory = promiseFactory;\n            if (!this.queuedPromise) {\n                const onComplete = () => {\n                    this.queuedPromise = null;\n                    if (this.isDisposed) {\n                        return;\n                    }\n                    const result = this.queue(this.queuedPromiseFactory);\n                    this.queuedPromiseFactory = null;\n                    return result;\n                };\n                this.queuedPromise = new Promise(resolve => {\n                    this.activePromise.then(onComplete, onComplete).then(resolve);\n                });\n            }\n            return new Promise((resolve, reject) => {\n                this.queuedPromise.then(resolve, reject);\n            });\n        }\n        this.activePromise = promiseFactory();\n        return new Promise((resolve, reject) => {\n            this.activePromise.then((result) => {\n                this.activePromise = null;\n                resolve(result);\n            }, (err) => {\n                this.activePromise = null;\n                reject(err);\n            });\n        });\n    }\n    dispose() {\n        this.isDisposed = true;\n    }\n}\nconst timeoutDeferred = (timeout, fn) => {\n    let scheduled = true;\n    const handle = setTimeout(() => {\n        scheduled = false;\n        fn();\n    }, timeout);\n    return {\n        isTriggered: () => scheduled,\n        dispose: () => {\n            clearTimeout(handle);\n            scheduled = false;\n        },\n    };\n};\nconst microtaskDeferred = (fn) => {\n    let scheduled = true;\n    queueMicrotask(() => {\n        if (scheduled) {\n            scheduled = false;\n            fn();\n        }\n    });\n    return {\n        isTriggered: () => scheduled,\n        dispose: () => { scheduled = false; },\n    };\n};\n/**\n * A helper to delay (debounce) execution of a task that is being requested often.\n *\n * Following the throttler, now imagine the mail man wants to optimize the number of\n * trips proactively. The trip itself can be long, so he decides not to make the trip\n * as soon as a letter is submitted. Instead he waits a while, in case more\n * letters are submitted. After said waiting period, if no letters were submitted, he\n * decides to make the trip. Imagine that N more letters were submitted after the first\n * one, all within a short period of time between each other. Even though N+1\n * submissions occurred, only 1 delivery was made.\n *\n * The delayer offers this behavior via the trigger() method, into which both the task\n * to be executed and the waiting period (delay) must be passed in as arguments. Following\n * the example:\n *\n * \t\tconst delayer = new Delayer(WAITING_PERIOD);\n * \t\tconst letters = [];\n *\n * \t\tfunction letterReceived(l) {\n * \t\t\tletters.push(l);\n * \t\t\tdelayer.trigger(() => { return makeTheTrip(); });\n * \t\t}\n */\nexport class Delayer {\n    constructor(defaultDelay) {\n        this.defaultDelay = defaultDelay;\n        this.deferred = null;\n        this.completionPromise = null;\n        this.doResolve = null;\n        this.doReject = null;\n        this.task = null;\n    }\n    trigger(task, delay = this.defaultDelay) {\n        this.task = task;\n        this.cancelTimeout();\n        if (!this.completionPromise) {\n            this.completionPromise = new Promise((resolve, reject) => {\n                this.doResolve = resolve;\n                this.doReject = reject;\n            }).then(() => {\n                this.completionPromise = null;\n                this.doResolve = null;\n                if (this.task) {\n                    const task = this.task;\n                    this.task = null;\n                    return task();\n                }\n                return undefined;\n            });\n        }\n        const fn = () => {\n            var _a;\n            this.deferred = null;\n            (_a = this.doResolve) === null || _a === void 0 ? void 0 : _a.call(this, null);\n        };\n        this.deferred = delay === MicrotaskDelay ? microtaskDeferred(fn) : timeoutDeferred(delay, fn);\n        return this.completionPromise;\n    }\n    isTriggered() {\n        var _a;\n        return !!((_a = this.deferred) === null || _a === void 0 ? void 0 : _a.isTriggered());\n    }\n    cancel() {\n        var _a;\n        this.cancelTimeout();\n        if (this.completionPromise) {\n            (_a = this.doReject) === null || _a === void 0 ? void 0 : _a.call(this, new CancellationError());\n            this.completionPromise = null;\n        }\n    }\n    cancelTimeout() {\n        var _a;\n        (_a = this.deferred) === null || _a === void 0 ? void 0 : _a.dispose();\n        this.deferred = null;\n    }\n    dispose() {\n        this.cancel();\n    }\n}\n/**\n * A helper to delay execution of a task that is being requested often, while\n * preventing accumulation of consecutive executions, while the task runs.\n *\n * The mail man is clever and waits for a certain amount of time, before going\n * out to deliver letters. While the mail man is going out, more letters arrive\n * and can only be delivered once he is back. Once he is back the mail man will\n * do one more trip to deliver the letters that have accumulated while he was out.\n */\nexport class ThrottledDelayer {\n    constructor(defaultDelay) {\n        this.delayer = new Delayer(defaultDelay);\n        this.throttler = new Throttler();\n    }\n    trigger(promiseFactory, delay) {\n        return this.delayer.trigger(() => this.throttler.queue(promiseFactory), delay);\n    }\n    cancel() {\n        this.delayer.cancel();\n    }\n    dispose() {\n        this.delayer.dispose();\n        this.throttler.dispose();\n    }\n}\nexport function timeout(millis, token) {\n    if (!token) {\n        return createCancelablePromise(token => timeout(millis, token));\n    }\n    return new Promise((resolve, reject) => {\n        const handle = setTimeout(() => {\n            disposable.dispose();\n            resolve();\n        }, millis);\n        const disposable = token.onCancellationRequested(() => {\n            clearTimeout(handle);\n            disposable.dispose();\n            reject(new CancellationError());\n        });\n    });\n}\n/**\n * Creates a timeout that can be disposed using its returned value.\n * @param handler The timeout handler.\n * @param timeout An optional timeout in milliseconds.\n * @param store An optional {@link DisposableStore} that will have the timeout disposable managed automatically.\n *\n * @example\n * const store = new DisposableStore;\n * // Call the timeout after 1000ms at which point it will be automatically\n * // evicted from the store.\n * const timeoutDisposable = disposableTimeout(() => {}, 1000, store);\n *\n * if (foo) {\n *   // Cancel the timeout and evict it from store.\n *   timeoutDisposable.dispose();\n * }\n */\nexport function disposableTimeout(handler, timeout = 0, store) {\n    const timer = setTimeout(() => {\n        handler();\n        if (store) {\n            disposable.dispose();\n        }\n    }, timeout);\n    const disposable = toDisposable(() => {\n        clearTimeout(timer);\n        store === null || store === void 0 ? void 0 : store.deleteAndLeak(disposable);\n    });\n    store === null || store === void 0 ? void 0 : store.add(disposable);\n    return disposable;\n}\nexport function first(promiseFactories, shouldStop = t => !!t, defaultValue = null) {\n    let index = 0;\n    const len = promiseFactories.length;\n    const loop = () => {\n        if (index >= len) {\n            return Promise.resolve(defaultValue);\n        }\n        const factory = promiseFactories[index++];\n        const promise = Promise.resolve(factory());\n        return promise.then(result => {\n            if (shouldStop(result)) {\n                return Promise.resolve(result);\n            }\n            return loop();\n        });\n    };\n    return loop();\n}\nexport class TimeoutTimer {\n    constructor(runner, timeout) {\n        this._isDisposed = false;\n        this._token = -1;\n        if (typeof runner === 'function' && typeof timeout === 'number') {\n            this.setIfNotSet(runner, timeout);\n        }\n    }\n    dispose() {\n        this.cancel();\n        this._isDisposed = true;\n    }\n    cancel() {\n        if (this._token !== -1) {\n            clearTimeout(this._token);\n            this._token = -1;\n        }\n    }\n    cancelAndSet(runner, timeout) {\n        if (this._isDisposed) {\n            throw new BugIndicatingError(`Calling 'cancelAndSet' on a disposed TimeoutTimer`);\n        }\n        this.cancel();\n        this._token = setTimeout(() => {\n            this._token = -1;\n            runner();\n        }, timeout);\n    }\n    setIfNotSet(runner, timeout) {\n        if (this._isDisposed) {\n            throw new BugIndicatingError(`Calling 'setIfNotSet' on a disposed TimeoutTimer`);\n        }\n        if (this._token !== -1) {\n            // timer is already set\n            return;\n        }\n        this._token = setTimeout(() => {\n            this._token = -1;\n            runner();\n        }, timeout);\n    }\n}\nexport class IntervalTimer {\n    constructor() {\n        this.disposable = undefined;\n        this.isDisposed = false;\n    }\n    cancel() {\n        var _a;\n        (_a = this.disposable) === null || _a === void 0 ? void 0 : _a.dispose();\n        this.disposable = undefined;\n    }\n    cancelAndSet(runner, interval, context = globalThis) {\n        if (this.isDisposed) {\n            throw new BugIndicatingError(`Calling 'cancelAndSet' on a disposed IntervalTimer`);\n        }\n        this.cancel();\n        const handle = context.setInterval(() => {\n            runner();\n        }, interval);\n        this.disposable = toDisposable(() => {\n            context.clearInterval(handle);\n            this.disposable = undefined;\n        });\n    }\n    dispose() {\n        this.cancel();\n        this.isDisposed = true;\n    }\n}\nexport class RunOnceScheduler {\n    constructor(runner, delay) {\n        this.timeoutToken = -1;\n        this.runner = runner;\n        this.timeout = delay;\n        this.timeoutHandler = this.onTimeout.bind(this);\n    }\n    /**\n     * Dispose RunOnceScheduler\n     */\n    dispose() {\n        this.cancel();\n        this.runner = null;\n    }\n    /**\n     * Cancel current scheduled runner (if any).\n     */\n    cancel() {\n        if (this.isScheduled()) {\n            clearTimeout(this.timeoutToken);\n            this.timeoutToken = -1;\n        }\n    }\n    /**\n     * Cancel previous runner (if any) & schedule a new runner.\n     */\n    schedule(delay = this.timeout) {\n        this.cancel();\n        this.timeoutToken = setTimeout(this.timeoutHandler, delay);\n    }\n    get delay() {\n        return this.timeout;\n    }\n    set delay(value) {\n        this.timeout = value;\n    }\n    /**\n     * Returns true if scheduled.\n     */\n    isScheduled() {\n        return this.timeoutToken !== -1;\n    }\n    onTimeout() {\n        this.timeoutToken = -1;\n        if (this.runner) {\n            this.doRun();\n        }\n    }\n    doRun() {\n        var _a;\n        (_a = this.runner) === null || _a === void 0 ? void 0 : _a.call(this);\n    }\n}\n/**\n * Execute the callback the next time the browser is idle, returning an\n * {@link IDisposable} that will cancel the callback when disposed. This wraps\n * [requestIdleCallback] so it will fallback to [setTimeout] if the environment\n * doesn't support it.\n *\n * @param callback The callback to run when idle, this includes an\n * [IdleDeadline] that provides the time alloted for the idle callback by the\n * browser. Not respecting this deadline will result in a degraded user\n * experience.\n * @param timeout A timeout at which point to queue no longer wait for an idle\n * callback but queue it on the regular event loop (like setTimeout). Typically\n * this should not be used.\n *\n * [IdleDeadline]: https://developer.mozilla.org/en-US/docs/Web/API/IdleDeadline\n * [requestIdleCallback]: https://developer.mozilla.org/en-US/docs/Web/API/Window/requestIdleCallback\n * [setTimeout]: https://developer.mozilla.org/en-US/docs/Web/API/Window/setTimeout\n *\n * **Note** that there is `dom.ts#runWhenWindowIdle` which is better suited when running inside a browser\n * context\n */\nexport let runWhenGlobalIdle;\nexport let _runWhenIdle;\n(function () {\n    if (typeof globalThis.requestIdleCallback !== 'function' || typeof globalThis.cancelIdleCallback !== 'function') {\n        _runWhenIdle = (_targetWindow, runner) => {\n            setTimeout0(() => {\n                if (disposed) {\n                    return;\n                }\n                const end = Date.now() + 15; // one frame at 64fps\n                const deadline = {\n                    didTimeout: true,\n                    timeRemaining() {\n                        return Math.max(0, end - Date.now());\n                    }\n                };\n                runner(Object.freeze(deadline));\n            });\n            let disposed = false;\n            return {\n                dispose() {\n                    if (disposed) {\n                        return;\n                    }\n                    disposed = true;\n                }\n            };\n        };\n    }\n    else {\n        _runWhenIdle = (targetWindow, runner, timeout) => {\n            const handle = targetWindow.requestIdleCallback(runner, typeof timeout === 'number' ? { timeout } : undefined);\n            let disposed = false;\n            return {\n                dispose() {\n                    if (disposed) {\n                        return;\n                    }\n                    disposed = true;\n                    targetWindow.cancelIdleCallback(handle);\n                }\n            };\n        };\n    }\n    runWhenGlobalIdle = (runner) => _runWhenIdle(globalThis, runner);\n})();\nexport class AbstractIdleValue {\n    constructor(targetWindow, executor) {\n        this._didRun = false;\n        this._executor = () => {\n            try {\n                this._value = executor();\n            }\n            catch (err) {\n                this._error = err;\n            }\n            finally {\n                this._didRun = true;\n            }\n        };\n        this._handle = _runWhenIdle(targetWindow, () => this._executor());\n    }\n    dispose() {\n        this._handle.dispose();\n    }\n    get value() {\n        if (!this._didRun) {\n            this._handle.dispose();\n            this._executor();\n        }\n        if (this._error) {\n            throw this._error;\n        }\n        return this._value;\n    }\n    get isInitialized() {\n        return this._didRun;\n    }\n}\n/**\n * An `IdleValue` that always uses the current window (which might be throttled or inactive)\n *\n * **Note** that there is `dom.ts#WindowIdleValue` which is better suited when running inside a browser\n * context\n */\nexport class GlobalIdleValue extends AbstractIdleValue {\n    constructor(executor) {\n        super(globalThis, executor);\n    }\n}\n/**\n * Creates a promise whose resolution or rejection can be controlled imperatively.\n */\nexport class DeferredPromise {\n    get isRejected() {\n        var _a;\n        return ((_a = this.outcome) === null || _a === void 0 ? void 0 : _a.outcome) === 1 /* DeferredOutcome.Rejected */;\n    }\n    get isSettled() {\n        return !!this.outcome;\n    }\n    constructor() {\n        this.p = new Promise((c, e) => {\n            this.completeCallback = c;\n            this.errorCallback = e;\n        });\n    }\n    complete(value) {\n        return new Promise(resolve => {\n            this.completeCallback(value);\n            this.outcome = { outcome: 0 /* DeferredOutcome.Resolved */, value };\n            resolve();\n        });\n    }\n    error(err) {\n        return new Promise(resolve => {\n            this.errorCallback(err);\n            this.outcome = { outcome: 1 /* DeferredOutcome.Rejected */, value: err };\n            resolve();\n        });\n    }\n    cancel() {\n        return this.error(new CancellationError());\n    }\n}\n//#endregion\n//#region Promises\nexport var Promises;\n(function (Promises) {\n    /**\n     * A drop-in replacement for `Promise.all` with the only difference\n     * that the method awaits every promise to either fulfill or reject.\n     *\n     * Similar to `Promise.all`, only the first error will be returned\n     * if any.\n     */\n    async function settled(promises) {\n        let firstError = undefined;\n        const result = await Promise.all(promises.map(promise => promise.then(value => value, error => {\n            if (!firstError) {\n                firstError = error;\n            }\n            return undefined; // do not rethrow so that other promises can settle\n        })));\n        if (typeof firstError !== 'undefined') {\n            throw firstError;\n        }\n        return result; // cast is needed and protected by the `throw` above\n    }\n    Promises.settled = settled;\n    /**\n     * A helper to create a new `Promise<T>` with a body that is a promise\n     * itself. By default, an error that raises from the async body will\n     * end up as a unhandled rejection, so this utility properly awaits the\n     * body and rejects the promise as a normal promise does without async\n     * body.\n     *\n     * This method should only be used in rare cases where otherwise `async`\n     * cannot be used (e.g. when callbacks are involved that require this).\n     */\n    function withAsyncBody(bodyFn) {\n        // eslint-disable-next-line no-async-promise-executor\n        return new Promise(async (resolve, reject) => {\n            try {\n                await bodyFn(resolve, reject);\n            }\n            catch (error) {\n                reject(error);\n            }\n        });\n    }\n    Promises.withAsyncBody = withAsyncBody;\n})(Promises || (Promises = {}));\n/**\n * A rich implementation for an `AsyncIterable<T>`.\n */\nexport class AsyncIterableObject {\n    static fromArray(items) {\n        return new AsyncIterableObject((writer) => {\n            writer.emitMany(items);\n        });\n    }\n    static fromPromise(promise) {\n        return new AsyncIterableObject(async (emitter) => {\n            emitter.emitMany(await promise);\n        });\n    }\n    static fromPromises(promises) {\n        return new AsyncIterableObject(async (emitter) => {\n            await Promise.all(promises.map(async (p) => emitter.emitOne(await p)));\n        });\n    }\n    static merge(iterables) {\n        return new AsyncIterableObject(async (emitter) => {\n            await Promise.all(iterables.map(async (iterable) => {\n                for await (const item of iterable) {\n                    emitter.emitOne(item);\n                }\n            }));\n        });\n    }\n    constructor(executor, onReturn) {\n        this._state = 0 /* AsyncIterableSourceState.Initial */;\n        this._results = [];\n        this._error = null;\n        this._onReturn = onReturn;\n        this._onStateChanged = new Emitter();\n        queueMicrotask(async () => {\n            const writer = {\n                emitOne: (item) => this.emitOne(item),\n                emitMany: (items) => this.emitMany(items),\n                reject: (error) => this.reject(error)\n            };\n            try {\n                await Promise.resolve(executor(writer));\n                this.resolve();\n            }\n            catch (err) {\n                this.reject(err);\n            }\n            finally {\n                writer.emitOne = undefined;\n                writer.emitMany = undefined;\n                writer.reject = undefined;\n            }\n        });\n    }\n    [Symbol.asyncIterator]() {\n        let i = 0;\n        return {\n            next: async () => {\n                do {\n                    if (this._state === 2 /* AsyncIterableSourceState.DoneError */) {\n                        throw this._error;\n                    }\n                    if (i < this._results.length) {\n                        return { done: false, value: this._results[i++] };\n                    }\n                    if (this._state === 1 /* AsyncIterableSourceState.DoneOK */) {\n                        return { done: true, value: undefined };\n                    }\n                    await Event.toPromise(this._onStateChanged.event);\n                } while (true);\n            },\n            return: async () => {\n                var _a;\n                (_a = this._onReturn) === null || _a === void 0 ? void 0 : _a.call(this);\n                return { done: true, value: undefined };\n            }\n        };\n    }\n    static map(iterable, mapFn) {\n        return new AsyncIterableObject(async (emitter) => {\n            for await (const item of iterable) {\n                emitter.emitOne(mapFn(item));\n            }\n        });\n    }\n    map(mapFn) {\n        return AsyncIterableObject.map(this, mapFn);\n    }\n    static filter(iterable, filterFn) {\n        return new AsyncIterableObject(async (emitter) => {\n            for await (const item of iterable) {\n                if (filterFn(item)) {\n                    emitter.emitOne(item);\n                }\n            }\n        });\n    }\n    filter(filterFn) {\n        return AsyncIterableObject.filter(this, filterFn);\n    }\n    static coalesce(iterable) {\n        return AsyncIterableObject.filter(iterable, item => !!item);\n    }\n    coalesce() {\n        return AsyncIterableObject.coalesce(this);\n    }\n    static async toPromise(iterable) {\n        const result = [];\n        for await (const item of iterable) {\n            result.push(item);\n        }\n        return result;\n    }\n    toPromise() {\n        return AsyncIterableObject.toPromise(this);\n    }\n    /**\n     * The value will be appended at the end.\n     *\n     * **NOTE** If `resolve()` or `reject()` have already been called, this method has no effect.\n     */\n    emitOne(value) {\n        if (this._state !== 0 /* AsyncIterableSourceState.Initial */) {\n            return;\n        }\n        // it is important to add new values at the end,\n        // as we may have iterators already running on the array\n        this._results.push(value);\n        this._onStateChanged.fire();\n    }\n    /**\n     * The values will be appended at the end.\n     *\n     * **NOTE** If `resolve()` or `reject()` have already been called, this method has no effect.\n     */\n    emitMany(values) {\n        if (this._state !== 0 /* AsyncIterableSourceState.Initial */) {\n            return;\n        }\n        // it is important to add new values at the end,\n        // as we may have iterators already running on the array\n        this._results = this._results.concat(values);\n        this._onStateChanged.fire();\n    }\n    /**\n     * Calling `resolve()` will mark the result array as complete.\n     *\n     * **NOTE** `resolve()` must be called, otherwise all consumers of this iterable will hang indefinitely, similar to a non-resolved promise.\n     * **NOTE** If `resolve()` or `reject()` have already been called, this method has no effect.\n     */\n    resolve() {\n        if (this._state !== 0 /* AsyncIterableSourceState.Initial */) {\n            return;\n        }\n        this._state = 1 /* AsyncIterableSourceState.DoneOK */;\n        this._onStateChanged.fire();\n    }\n    /**\n     * Writing an error will permanently invalidate this iterable.\n     * The current users will receive an error thrown, as will all future users.\n     *\n     * **NOTE** If `resolve()` or `reject()` have already been called, this method has no effect.\n     */\n    reject(error) {\n        if (this._state !== 0 /* AsyncIterableSourceState.Initial */) {\n            return;\n        }\n        this._state = 2 /* AsyncIterableSourceState.DoneError */;\n        this._error = error;\n        this._onStateChanged.fire();\n    }\n}\nAsyncIterableObject.EMPTY = AsyncIterableObject.fromArray([]);\nexport class CancelableAsyncIterableObject extends AsyncIterableObject {\n    constructor(_source, executor) {\n        super(executor);\n        this._source = _source;\n    }\n    cancel() {\n        this._source.cancel();\n    }\n}\nexport function createCancelableAsyncIterable(callback) {\n    const source = new CancellationTokenSource();\n    const innerIterable = callback(source.token);\n    return new CancelableAsyncIterableObject(source, async (emitter) => {\n        const subscription = source.token.onCancellationRequested(() => {\n            subscription.dispose();\n            source.dispose();\n            emitter.reject(new CancellationError());\n        });\n        try {\n            for await (const item of innerIterable) {\n                if (source.token.isCancellationRequested) {\n                    // canceled in the meantime\n                    return;\n                }\n                emitter.emitOne(item);\n            }\n            subscription.dispose();\n            source.dispose();\n        }\n        catch (err) {\n            subscription.dispose();\n            source.dispose();\n            emitter.reject(err);\n        }\n    });\n}\n//#endregion\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/buffer.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Lazy } from './lazy.js';\nconst hasBuffer = (typeof Buffer !== 'undefined');\nconst indexOfTable = new Lazy(() => new Uint8Array(256));\nlet textDecoder;\nexport class VSBuffer {\n    /**\n     * When running in a nodejs context, if `actual` is not a nodejs Buffer, the backing store for\n     * the returned `VSBuffer` instance might use a nodejs Buffer allocated from node's Buffer pool,\n     * which is not transferrable.\n     */\n    static wrap(actual) {\n        if (hasBuffer && !(Buffer.isBuffer(actual))) {\n            // https://nodejs.org/dist/latest-v10.x/docs/api/buffer.html#buffer_class_method_buffer_from_arraybuffer_byteoffset_length\n            // Create a zero-copy Buffer wrapper around the ArrayBuffer pointed to by the Uint8Array\n            actual = Buffer.from(actual.buffer, actual.byteOffset, actual.byteLength);\n        }\n        return new VSBuffer(actual);\n    }\n    constructor(buffer) {\n        this.buffer = buffer;\n        this.byteLength = this.buffer.byteLength;\n    }\n    toString() {\n        if (hasBuffer) {\n            return this.buffer.toString();\n        }\n        else {\n            if (!textDecoder) {\n                textDecoder = new TextDecoder();\n            }\n            return textDecoder.decode(this.buffer);\n        }\n    }\n}\nexport function readUInt16LE(source, offset) {\n    return (((source[offset + 0] << 0) >>> 0) |\n        ((source[offset + 1] << 8) >>> 0));\n}\nexport function writeUInt16LE(destination, value, offset) {\n    destination[offset + 0] = (value & 0b11111111);\n    value = value >>> 8;\n    destination[offset + 1] = (value & 0b11111111);\n}\nexport function readUInt32BE(source, offset) {\n    return (source[offset] * 2 ** 24\n        + source[offset + 1] * 2 ** 16\n        + source[offset + 2] * 2 ** 8\n        + source[offset + 3]);\n}\nexport function writeUInt32BE(destination, value, offset) {\n    destination[offset + 3] = value;\n    value = value >>> 8;\n    destination[offset + 2] = value;\n    value = value >>> 8;\n    destination[offset + 1] = value;\n    value = value >>> 8;\n    destination[offset] = value;\n}\nexport function readUInt8(source, offset) {\n    return source[offset];\n}\nexport function writeUInt8(destination, value, offset) {\n    destination[offset] = value;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/cache.js",
    "content": "export function identity(t) {\n    return t;\n}\n/**\n * Uses a LRU cache to make a given parametrized function cached.\n * Caches just the last key/value.\n*/\nexport class LRUCachedFunction {\n    constructor(arg1, arg2) {\n        this.lastCache = undefined;\n        this.lastArgKey = undefined;\n        if (typeof arg1 === 'function') {\n            this._fn = arg1;\n            this._computeKey = identity;\n        }\n        else {\n            this._fn = arg2;\n            this._computeKey = arg1.getCacheKey;\n        }\n    }\n    get(arg) {\n        const key = this._computeKey(arg);\n        if (this.lastArgKey !== key) {\n            this.lastArgKey = key;\n            this.lastCache = this._fn(arg);\n        }\n        return this.lastCache;\n    }\n}\n/**\n * Uses an unbounded cache to memoize the results of the given function.\n*/\nexport class CachedFunction {\n    get cachedValues() {\n        return this._map;\n    }\n    constructor(arg1, arg2) {\n        this._map = new Map();\n        this._map2 = new Map();\n        if (typeof arg1 === 'function') {\n            this._fn = arg1;\n            this._computeKey = identity;\n        }\n        else {\n            this._fn = arg2;\n            this._computeKey = arg1.getCacheKey;\n        }\n    }\n    get(arg) {\n        const key = this._computeKey(arg);\n        if (this._map2.has(key)) {\n            return this._map2.get(key);\n        }\n        const value = this._fn(arg);\n        this._map.set(arg, value);\n        this._map2.set(key, value);\n        return value;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/cancellation.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter, Event } from './event.js';\nconst shortcutEvent = Object.freeze(function (callback, context) {\n    const handle = setTimeout(callback.bind(context), 0);\n    return { dispose() { clearTimeout(handle); } };\n});\nexport var CancellationToken;\n(function (CancellationToken) {\n    function isCancellationToken(thing) {\n        if (thing === CancellationToken.None || thing === CancellationToken.Cancelled) {\n            return true;\n        }\n        if (thing instanceof MutableToken) {\n            return true;\n        }\n        if (!thing || typeof thing !== 'object') {\n            return false;\n        }\n        return typeof thing.isCancellationRequested === 'boolean'\n            && typeof thing.onCancellationRequested === 'function';\n    }\n    CancellationToken.isCancellationToken = isCancellationToken;\n    CancellationToken.None = Object.freeze({\n        isCancellationRequested: false,\n        onCancellationRequested: Event.None\n    });\n    CancellationToken.Cancelled = Object.freeze({\n        isCancellationRequested: true,\n        onCancellationRequested: shortcutEvent\n    });\n})(CancellationToken || (CancellationToken = {}));\nclass MutableToken {\n    constructor() {\n        this._isCancelled = false;\n        this._emitter = null;\n    }\n    cancel() {\n        if (!this._isCancelled) {\n            this._isCancelled = true;\n            if (this._emitter) {\n                this._emitter.fire(undefined);\n                this.dispose();\n            }\n        }\n    }\n    get isCancellationRequested() {\n        return this._isCancelled;\n    }\n    get onCancellationRequested() {\n        if (this._isCancelled) {\n            return shortcutEvent;\n        }\n        if (!this._emitter) {\n            this._emitter = new Emitter();\n        }\n        return this._emitter.event;\n    }\n    dispose() {\n        if (this._emitter) {\n            this._emitter.dispose();\n            this._emitter = null;\n        }\n    }\n}\nexport class CancellationTokenSource {\n    constructor(parent) {\n        this._token = undefined;\n        this._parentListener = undefined;\n        this._parentListener = parent && parent.onCancellationRequested(this.cancel, this);\n    }\n    get token() {\n        if (!this._token) {\n            // be lazy and create the token only when\n            // actually needed\n            this._token = new MutableToken();\n        }\n        return this._token;\n    }\n    cancel() {\n        if (!this._token) {\n            // save an object by returning the default\n            // cancelled token when cancellation happens\n            // before someone asks for the token\n            this._token = CancellationToken.Cancelled;\n        }\n        else if (this._token instanceof MutableToken) {\n            // actually cancel\n            this._token.cancel();\n        }\n    }\n    dispose(cancel = false) {\n        var _a;\n        if (cancel) {\n            this.cancel();\n        }\n        (_a = this._parentListener) === null || _a === void 0 ? void 0 : _a.dispose();\n        if (!this._token) {\n            // ensure to initialize with an empty token if we had none\n            this._token = CancellationToken.None;\n        }\n        else if (this._token instanceof MutableToken) {\n            // actually dispose\n            this._token.dispose();\n        }\n    }\n}\nexport function cancelOnDispose(store) {\n    const source = new CancellationTokenSource();\n    store.add({ dispose() { source.cancel(); } });\n    return source.token;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/charCode.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport {};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/codicons.js",
    "content": "import { register } from './codiconsUtil.js';\nimport { codiconsLibrary } from './codiconsLibrary.js';\n/**\n * Derived icons, that could become separate icons.\n * These mappings should be moved into the mapping file in the vscode-codicons repo at some point.\n */\nexport const codiconsDerived = {\n    dialogError: register('dialog-error', 'error'),\n    dialogWarning: register('dialog-warning', 'warning'),\n    dialogInfo: register('dialog-info', 'info'),\n    dialogClose: register('dialog-close', 'close'),\n    treeItemExpanded: register('tree-item-expanded', 'chevron-down'), // collapsed is done with rotation\n    treeFilterOnTypeOn: register('tree-filter-on-type-on', 'list-filter'),\n    treeFilterOnTypeOff: register('tree-filter-on-type-off', 'list-selection'),\n    treeFilterClear: register('tree-filter-clear', 'close'),\n    treeItemLoading: register('tree-item-loading', 'loading'),\n    menuSelection: register('menu-selection', 'check'),\n    menuSubmenu: register('menu-submenu', 'chevron-right'),\n    menuBarMore: register('menubar-more', 'more'),\n    scrollbarButtonLeft: register('scrollbar-button-left', 'triangle-left'),\n    scrollbarButtonRight: register('scrollbar-button-right', 'triangle-right'),\n    scrollbarButtonUp: register('scrollbar-button-up', 'triangle-up'),\n    scrollbarButtonDown: register('scrollbar-button-down', 'triangle-down'),\n    toolBarMore: register('toolbar-more', 'more'),\n    quickInputBack: register('quick-input-back', 'arrow-left'),\n    dropDownButton: register('drop-down-button', 0xeab4),\n    symbolCustomColor: register('symbol-customcolor', 0xeb5c),\n    exportIcon: register('export', 0xebac),\n    workspaceUnspecified: register('workspace-unspecified', 0xebc3),\n    newLine: register('newline', 0xebea),\n    thumbsDownFilled: register('thumbsdown-filled', 0xec13),\n    thumbsUpFilled: register('thumbsup-filled', 0xec14),\n    gitFetch: register('git-fetch', 0xec1d),\n    lightbulbSparkleAutofix: register('lightbulb-sparkle-autofix', 0xec1f),\n    debugBreakpointPending: register('debug-breakpoint-pending', 0xebd9),\n};\n/**\n * The Codicon library is a set of default icons that are built-in in VS Code.\n *\n * In the product (outside of base) Codicons should only be used as defaults. In order to have all icons in VS Code\n * themeable, component should define new, UI component specific icons using `iconRegistry.registerIcon`.\n * In that call a Codicon can be named as default.\n */\nexport const Codicon = {\n    ...codiconsLibrary,\n    ...codiconsDerived\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/codiconsLibrary.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { register } from './codiconsUtil.js';\n// This file is automatically generated by (microsoft/vscode-codicons)/scripts/export-to-ts.js\n// Please don't edit it, as your changes will be overwritten.\n// Instead, add mappings to codiconsDerived in codicons.ts.\nexport const codiconsLibrary = {\n    add: register('add', 0xea60),\n    plus: register('plus', 0xea60),\n    gistNew: register('gist-new', 0xea60),\n    repoCreate: register('repo-create', 0xea60),\n    lightbulb: register('lightbulb', 0xea61),\n    lightBulb: register('light-bulb', 0xea61),\n    repo: register('repo', 0xea62),\n    repoDelete: register('repo-delete', 0xea62),\n    gistFork: register('gist-fork', 0xea63),\n    repoForked: register('repo-forked', 0xea63),\n    gitPullRequest: register('git-pull-request', 0xea64),\n    gitPullRequestAbandoned: register('git-pull-request-abandoned', 0xea64),\n    recordKeys: register('record-keys', 0xea65),\n    keyboard: register('keyboard', 0xea65),\n    tag: register('tag', 0xea66),\n    gitPullRequestLabel: register('git-pull-request-label', 0xea66),\n    tagAdd: register('tag-add', 0xea66),\n    tagRemove: register('tag-remove', 0xea66),\n    person: register('person', 0xea67),\n    personFollow: register('person-follow', 0xea67),\n    personOutline: register('person-outline', 0xea67),\n    personFilled: register('person-filled', 0xea67),\n    gitBranch: register('git-branch', 0xea68),\n    gitBranchCreate: register('git-branch-create', 0xea68),\n    gitBranchDelete: register('git-branch-delete', 0xea68),\n    sourceControl: register('source-control', 0xea68),\n    mirror: register('mirror', 0xea69),\n    mirrorPublic: register('mirror-public', 0xea69),\n    star: register('star', 0xea6a),\n    starAdd: register('star-add', 0xea6a),\n    starDelete: register('star-delete', 0xea6a),\n    starEmpty: register('star-empty', 0xea6a),\n    comment: register('comment', 0xea6b),\n    commentAdd: register('comment-add', 0xea6b),\n    alert: register('alert', 0xea6c),\n    warning: register('warning', 0xea6c),\n    search: register('search', 0xea6d),\n    searchSave: register('search-save', 0xea6d),\n    logOut: register('log-out', 0xea6e),\n    signOut: register('sign-out', 0xea6e),\n    logIn: register('log-in', 0xea6f),\n    signIn: register('sign-in', 0xea6f),\n    eye: register('eye', 0xea70),\n    eyeUnwatch: register('eye-unwatch', 0xea70),\n    eyeWatch: register('eye-watch', 0xea70),\n    circleFilled: register('circle-filled', 0xea71),\n    primitiveDot: register('primitive-dot', 0xea71),\n    closeDirty: register('close-dirty', 0xea71),\n    debugBreakpoint: register('debug-breakpoint', 0xea71),\n    debugBreakpointDisabled: register('debug-breakpoint-disabled', 0xea71),\n    debugHint: register('debug-hint', 0xea71),\n    terminalDecorationSuccess: register('terminal-decoration-success', 0xea71),\n    primitiveSquare: register('primitive-square', 0xea72),\n    edit: register('edit', 0xea73),\n    pencil: register('pencil', 0xea73),\n    info: register('info', 0xea74),\n    issueOpened: register('issue-opened', 0xea74),\n    gistPrivate: register('gist-private', 0xea75),\n    gitForkPrivate: register('git-fork-private', 0xea75),\n    lock: register('lock', 0xea75),\n    mirrorPrivate: register('mirror-private', 0xea75),\n    close: register('close', 0xea76),\n    removeClose: register('remove-close', 0xea76),\n    x: register('x', 0xea76),\n    repoSync: register('repo-sync', 0xea77),\n    sync: register('sync', 0xea77),\n    clone: register('clone', 0xea78),\n    desktopDownload: register('desktop-download', 0xea78),\n    beaker: register('beaker', 0xea79),\n    microscope: register('microscope', 0xea79),\n    vm: register('vm', 0xea7a),\n    deviceDesktop: register('device-desktop', 0xea7a),\n    file: register('file', 0xea7b),\n    fileText: register('file-text', 0xea7b),\n    more: register('more', 0xea7c),\n    ellipsis: register('ellipsis', 0xea7c),\n    kebabHorizontal: register('kebab-horizontal', 0xea7c),\n    mailReply: register('mail-reply', 0xea7d),\n    reply: register('reply', 0xea7d),\n    organization: register('organization', 0xea7e),\n    organizationFilled: register('organization-filled', 0xea7e),\n    organizationOutline: register('organization-outline', 0xea7e),\n    newFile: register('new-file', 0xea7f),\n    fileAdd: register('file-add', 0xea7f),\n    newFolder: register('new-folder', 0xea80),\n    fileDirectoryCreate: register('file-directory-create', 0xea80),\n    trash: register('trash', 0xea81),\n    trashcan: register('trashcan', 0xea81),\n    history: register('history', 0xea82),\n    clock: register('clock', 0xea82),\n    folder: register('folder', 0xea83),\n    fileDirectory: register('file-directory', 0xea83),\n    symbolFolder: register('symbol-folder', 0xea83),\n    logoGithub: register('logo-github', 0xea84),\n    markGithub: register('mark-github', 0xea84),\n    github: register('github', 0xea84),\n    terminal: register('terminal', 0xea85),\n    console: register('console', 0xea85),\n    repl: register('repl', 0xea85),\n    zap: register('zap', 0xea86),\n    symbolEvent: register('symbol-event', 0xea86),\n    error: register('error', 0xea87),\n    stop: register('stop', 0xea87),\n    variable: register('variable', 0xea88),\n    symbolVariable: register('symbol-variable', 0xea88),\n    array: register('array', 0xea8a),\n    symbolArray: register('symbol-array', 0xea8a),\n    symbolModule: register('symbol-module', 0xea8b),\n    symbolPackage: register('symbol-package', 0xea8b),\n    symbolNamespace: register('symbol-namespace', 0xea8b),\n    symbolObject: register('symbol-object', 0xea8b),\n    symbolMethod: register('symbol-method', 0xea8c),\n    symbolFunction: register('symbol-function', 0xea8c),\n    symbolConstructor: register('symbol-constructor', 0xea8c),\n    symbolBoolean: register('symbol-boolean', 0xea8f),\n    symbolNull: register('symbol-null', 0xea8f),\n    symbolNumeric: register('symbol-numeric', 0xea90),\n    symbolNumber: register('symbol-number', 0xea90),\n    symbolStructure: register('symbol-structure', 0xea91),\n    symbolStruct: register('symbol-struct', 0xea91),\n    symbolParameter: register('symbol-parameter', 0xea92),\n    symbolTypeParameter: register('symbol-type-parameter', 0xea92),\n    symbolKey: register('symbol-key', 0xea93),\n    symbolText: register('symbol-text', 0xea93),\n    symbolReference: register('symbol-reference', 0xea94),\n    goToFile: register('go-to-file', 0xea94),\n    symbolEnum: register('symbol-enum', 0xea95),\n    symbolValue: register('symbol-value', 0xea95),\n    symbolRuler: register('symbol-ruler', 0xea96),\n    symbolUnit: register('symbol-unit', 0xea96),\n    activateBreakpoints: register('activate-breakpoints', 0xea97),\n    archive: register('archive', 0xea98),\n    arrowBoth: register('arrow-both', 0xea99),\n    arrowDown: register('arrow-down', 0xea9a),\n    arrowLeft: register('arrow-left', 0xea9b),\n    arrowRight: register('arrow-right', 0xea9c),\n    arrowSmallDown: register('arrow-small-down', 0xea9d),\n    arrowSmallLeft: register('arrow-small-left', 0xea9e),\n    arrowSmallRight: register('arrow-small-right', 0xea9f),\n    arrowSmallUp: register('arrow-small-up', 0xeaa0),\n    arrowUp: register('arrow-up', 0xeaa1),\n    bell: register('bell', 0xeaa2),\n    bold: register('bold', 0xeaa3),\n    book: register('book', 0xeaa4),\n    bookmark: register('bookmark', 0xeaa5),\n    debugBreakpointConditionalUnverified: register('debug-breakpoint-conditional-unverified', 0xeaa6),\n    debugBreakpointConditional: register('debug-breakpoint-conditional', 0xeaa7),\n    debugBreakpointConditionalDisabled: register('debug-breakpoint-conditional-disabled', 0xeaa7),\n    debugBreakpointDataUnverified: register('debug-breakpoint-data-unverified', 0xeaa8),\n    debugBreakpointData: register('debug-breakpoint-data', 0xeaa9),\n    debugBreakpointDataDisabled: register('debug-breakpoint-data-disabled', 0xeaa9),\n    debugBreakpointLogUnverified: register('debug-breakpoint-log-unverified', 0xeaaa),\n    debugBreakpointLog: register('debug-breakpoint-log', 0xeaab),\n    debugBreakpointLogDisabled: register('debug-breakpoint-log-disabled', 0xeaab),\n    briefcase: register('briefcase', 0xeaac),\n    broadcast: register('broadcast', 0xeaad),\n    browser: register('browser', 0xeaae),\n    bug: register('bug', 0xeaaf),\n    calendar: register('calendar', 0xeab0),\n    caseSensitive: register('case-sensitive', 0xeab1),\n    check: register('check', 0xeab2),\n    checklist: register('checklist', 0xeab3),\n    chevronDown: register('chevron-down', 0xeab4),\n    chevronLeft: register('chevron-left', 0xeab5),\n    chevronRight: register('chevron-right', 0xeab6),\n    chevronUp: register('chevron-up', 0xeab7),\n    chromeClose: register('chrome-close', 0xeab8),\n    chromeMaximize: register('chrome-maximize', 0xeab9),\n    chromeMinimize: register('chrome-minimize', 0xeaba),\n    chromeRestore: register('chrome-restore', 0xeabb),\n    circleOutline: register('circle-outline', 0xeabc),\n    circle: register('circle', 0xeabc),\n    debugBreakpointUnverified: register('debug-breakpoint-unverified', 0xeabc),\n    terminalDecorationIncomplete: register('terminal-decoration-incomplete', 0xeabc),\n    circleSlash: register('circle-slash', 0xeabd),\n    circuitBoard: register('circuit-board', 0xeabe),\n    clearAll: register('clear-all', 0xeabf),\n    clippy: register('clippy', 0xeac0),\n    closeAll: register('close-all', 0xeac1),\n    cloudDownload: register('cloud-download', 0xeac2),\n    cloudUpload: register('cloud-upload', 0xeac3),\n    code: register('code', 0xeac4),\n    collapseAll: register('collapse-all', 0xeac5),\n    colorMode: register('color-mode', 0xeac6),\n    commentDiscussion: register('comment-discussion', 0xeac7),\n    creditCard: register('credit-card', 0xeac9),\n    dash: register('dash', 0xeacc),\n    dashboard: register('dashboard', 0xeacd),\n    database: register('database', 0xeace),\n    debugContinue: register('debug-continue', 0xeacf),\n    debugDisconnect: register('debug-disconnect', 0xead0),\n    debugPause: register('debug-pause', 0xead1),\n    debugRestart: register('debug-restart', 0xead2),\n    debugStart: register('debug-start', 0xead3),\n    debugStepInto: register('debug-step-into', 0xead4),\n    debugStepOut: register('debug-step-out', 0xead5),\n    debugStepOver: register('debug-step-over', 0xead6),\n    debugStop: register('debug-stop', 0xead7),\n    debug: register('debug', 0xead8),\n    deviceCameraVideo: register('device-camera-video', 0xead9),\n    deviceCamera: register('device-camera', 0xeada),\n    deviceMobile: register('device-mobile', 0xeadb),\n    diffAdded: register('diff-added', 0xeadc),\n    diffIgnored: register('diff-ignored', 0xeadd),\n    diffModified: register('diff-modified', 0xeade),\n    diffRemoved: register('diff-removed', 0xeadf),\n    diffRenamed: register('diff-renamed', 0xeae0),\n    diff: register('diff', 0xeae1),\n    diffSidebyside: register('diff-sidebyside', 0xeae1),\n    discard: register('discard', 0xeae2),\n    editorLayout: register('editor-layout', 0xeae3),\n    emptyWindow: register('empty-window', 0xeae4),\n    exclude: register('exclude', 0xeae5),\n    extensions: register('extensions', 0xeae6),\n    eyeClosed: register('eye-closed', 0xeae7),\n    fileBinary: register('file-binary', 0xeae8),\n    fileCode: register('file-code', 0xeae9),\n    fileMedia: register('file-media', 0xeaea),\n    filePdf: register('file-pdf', 0xeaeb),\n    fileSubmodule: register('file-submodule', 0xeaec),\n    fileSymlinkDirectory: register('file-symlink-directory', 0xeaed),\n    fileSymlinkFile: register('file-symlink-file', 0xeaee),\n    fileZip: register('file-zip', 0xeaef),\n    files: register('files', 0xeaf0),\n    filter: register('filter', 0xeaf1),\n    flame: register('flame', 0xeaf2),\n    foldDown: register('fold-down', 0xeaf3),\n    foldUp: register('fold-up', 0xeaf4),\n    fold: register('fold', 0xeaf5),\n    folderActive: register('folder-active', 0xeaf6),\n    folderOpened: register('folder-opened', 0xeaf7),\n    gear: register('gear', 0xeaf8),\n    gift: register('gift', 0xeaf9),\n    gistSecret: register('gist-secret', 0xeafa),\n    gist: register('gist', 0xeafb),\n    gitCommit: register('git-commit', 0xeafc),\n    gitCompare: register('git-compare', 0xeafd),\n    compareChanges: register('compare-changes', 0xeafd),\n    gitMerge: register('git-merge', 0xeafe),\n    githubAction: register('github-action', 0xeaff),\n    githubAlt: register('github-alt', 0xeb00),\n    globe: register('globe', 0xeb01),\n    grabber: register('grabber', 0xeb02),\n    graph: register('graph', 0xeb03),\n    gripper: register('gripper', 0xeb04),\n    heart: register('heart', 0xeb05),\n    home: register('home', 0xeb06),\n    horizontalRule: register('horizontal-rule', 0xeb07),\n    hubot: register('hubot', 0xeb08),\n    inbox: register('inbox', 0xeb09),\n    issueReopened: register('issue-reopened', 0xeb0b),\n    issues: register('issues', 0xeb0c),\n    italic: register('italic', 0xeb0d),\n    jersey: register('jersey', 0xeb0e),\n    json: register('json', 0xeb0f),\n    kebabVertical: register('kebab-vertical', 0xeb10),\n    key: register('key', 0xeb11),\n    law: register('law', 0xeb12),\n    lightbulbAutofix: register('lightbulb-autofix', 0xeb13),\n    linkExternal: register('link-external', 0xeb14),\n    link: register('link', 0xeb15),\n    listOrdered: register('list-ordered', 0xeb16),\n    listUnordered: register('list-unordered', 0xeb17),\n    liveShare: register('live-share', 0xeb18),\n    loading: register('loading', 0xeb19),\n    location: register('location', 0xeb1a),\n    mailRead: register('mail-read', 0xeb1b),\n    mail: register('mail', 0xeb1c),\n    markdown: register('markdown', 0xeb1d),\n    megaphone: register('megaphone', 0xeb1e),\n    mention: register('mention', 0xeb1f),\n    milestone: register('milestone', 0xeb20),\n    gitPullRequestMilestone: register('git-pull-request-milestone', 0xeb20),\n    mortarBoard: register('mortar-board', 0xeb21),\n    move: register('move', 0xeb22),\n    multipleWindows: register('multiple-windows', 0xeb23),\n    mute: register('mute', 0xeb24),\n    noNewline: register('no-newline', 0xeb25),\n    note: register('note', 0xeb26),\n    octoface: register('octoface', 0xeb27),\n    openPreview: register('open-preview', 0xeb28),\n    package: register('package', 0xeb29),\n    paintcan: register('paintcan', 0xeb2a),\n    pin: register('pin', 0xeb2b),\n    play: register('play', 0xeb2c),\n    run: register('run', 0xeb2c),\n    plug: register('plug', 0xeb2d),\n    preserveCase: register('preserve-case', 0xeb2e),\n    preview: register('preview', 0xeb2f),\n    project: register('project', 0xeb30),\n    pulse: register('pulse', 0xeb31),\n    question: register('question', 0xeb32),\n    quote: register('quote', 0xeb33),\n    radioTower: register('radio-tower', 0xeb34),\n    reactions: register('reactions', 0xeb35),\n    references: register('references', 0xeb36),\n    refresh: register('refresh', 0xeb37),\n    regex: register('regex', 0xeb38),\n    remoteExplorer: register('remote-explorer', 0xeb39),\n    remote: register('remote', 0xeb3a),\n    remove: register('remove', 0xeb3b),\n    replaceAll: register('replace-all', 0xeb3c),\n    replace: register('replace', 0xeb3d),\n    repoClone: register('repo-clone', 0xeb3e),\n    repoForcePush: register('repo-force-push', 0xeb3f),\n    repoPull: register('repo-pull', 0xeb40),\n    repoPush: register('repo-push', 0xeb41),\n    report: register('report', 0xeb42),\n    requestChanges: register('request-changes', 0xeb43),\n    rocket: register('rocket', 0xeb44),\n    rootFolderOpened: register('root-folder-opened', 0xeb45),\n    rootFolder: register('root-folder', 0xeb46),\n    rss: register('rss', 0xeb47),\n    ruby: register('ruby', 0xeb48),\n    saveAll: register('save-all', 0xeb49),\n    saveAs: register('save-as', 0xeb4a),\n    save: register('save', 0xeb4b),\n    screenFull: register('screen-full', 0xeb4c),\n    screenNormal: register('screen-normal', 0xeb4d),\n    searchStop: register('search-stop', 0xeb4e),\n    server: register('server', 0xeb50),\n    settingsGear: register('settings-gear', 0xeb51),\n    settings: register('settings', 0xeb52),\n    shield: register('shield', 0xeb53),\n    smiley: register('smiley', 0xeb54),\n    sortPrecedence: register('sort-precedence', 0xeb55),\n    splitHorizontal: register('split-horizontal', 0xeb56),\n    splitVertical: register('split-vertical', 0xeb57),\n    squirrel: register('squirrel', 0xeb58),\n    starFull: register('star-full', 0xeb59),\n    starHalf: register('star-half', 0xeb5a),\n    symbolClass: register('symbol-class', 0xeb5b),\n    symbolColor: register('symbol-color', 0xeb5c),\n    symbolConstant: register('symbol-constant', 0xeb5d),\n    symbolEnumMember: register('symbol-enum-member', 0xeb5e),\n    symbolField: register('symbol-field', 0xeb5f),\n    symbolFile: register('symbol-file', 0xeb60),\n    symbolInterface: register('symbol-interface', 0xeb61),\n    symbolKeyword: register('symbol-keyword', 0xeb62),\n    symbolMisc: register('symbol-misc', 0xeb63),\n    symbolOperator: register('symbol-operator', 0xeb64),\n    symbolProperty: register('symbol-property', 0xeb65),\n    wrench: register('wrench', 0xeb65),\n    wrenchSubaction: register('wrench-subaction', 0xeb65),\n    symbolSnippet: register('symbol-snippet', 0xeb66),\n    tasklist: register('tasklist', 0xeb67),\n    telescope: register('telescope', 0xeb68),\n    textSize: register('text-size', 0xeb69),\n    threeBars: register('three-bars', 0xeb6a),\n    thumbsdown: register('thumbsdown', 0xeb6b),\n    thumbsup: register('thumbsup', 0xeb6c),\n    tools: register('tools', 0xeb6d),\n    triangleDown: register('triangle-down', 0xeb6e),\n    triangleLeft: register('triangle-left', 0xeb6f),\n    triangleRight: register('triangle-right', 0xeb70),\n    triangleUp: register('triangle-up', 0xeb71),\n    twitter: register('twitter', 0xeb72),\n    unfold: register('unfold', 0xeb73),\n    unlock: register('unlock', 0xeb74),\n    unmute: register('unmute', 0xeb75),\n    unverified: register('unverified', 0xeb76),\n    verified: register('verified', 0xeb77),\n    versions: register('versions', 0xeb78),\n    vmActive: register('vm-active', 0xeb79),\n    vmOutline: register('vm-outline', 0xeb7a),\n    vmRunning: register('vm-running', 0xeb7b),\n    watch: register('watch', 0xeb7c),\n    whitespace: register('whitespace', 0xeb7d),\n    wholeWord: register('whole-word', 0xeb7e),\n    window: register('window', 0xeb7f),\n    wordWrap: register('word-wrap', 0xeb80),\n    zoomIn: register('zoom-in', 0xeb81),\n    zoomOut: register('zoom-out', 0xeb82),\n    listFilter: register('list-filter', 0xeb83),\n    listFlat: register('list-flat', 0xeb84),\n    listSelection: register('list-selection', 0xeb85),\n    selection: register('selection', 0xeb85),\n    listTree: register('list-tree', 0xeb86),\n    debugBreakpointFunctionUnverified: register('debug-breakpoint-function-unverified', 0xeb87),\n    debugBreakpointFunction: register('debug-breakpoint-function', 0xeb88),\n    debugBreakpointFunctionDisabled: register('debug-breakpoint-function-disabled', 0xeb88),\n    debugStackframeActive: register('debug-stackframe-active', 0xeb89),\n    circleSmallFilled: register('circle-small-filled', 0xeb8a),\n    debugStackframeDot: register('debug-stackframe-dot', 0xeb8a),\n    terminalDecorationMark: register('terminal-decoration-mark', 0xeb8a),\n    debugStackframe: register('debug-stackframe', 0xeb8b),\n    debugStackframeFocused: register('debug-stackframe-focused', 0xeb8b),\n    debugBreakpointUnsupported: register('debug-breakpoint-unsupported', 0xeb8c),\n    symbolString: register('symbol-string', 0xeb8d),\n    debugReverseContinue: register('debug-reverse-continue', 0xeb8e),\n    debugStepBack: register('debug-step-back', 0xeb8f),\n    debugRestartFrame: register('debug-restart-frame', 0xeb90),\n    debugAlt: register('debug-alt', 0xeb91),\n    callIncoming: register('call-incoming', 0xeb92),\n    callOutgoing: register('call-outgoing', 0xeb93),\n    menu: register('menu', 0xeb94),\n    expandAll: register('expand-all', 0xeb95),\n    feedback: register('feedback', 0xeb96),\n    gitPullRequestReviewer: register('git-pull-request-reviewer', 0xeb96),\n    groupByRefType: register('group-by-ref-type', 0xeb97),\n    ungroupByRefType: register('ungroup-by-ref-type', 0xeb98),\n    account: register('account', 0xeb99),\n    gitPullRequestAssignee: register('git-pull-request-assignee', 0xeb99),\n    bellDot: register('bell-dot', 0xeb9a),\n    debugConsole: register('debug-console', 0xeb9b),\n    library: register('library', 0xeb9c),\n    output: register('output', 0xeb9d),\n    runAll: register('run-all', 0xeb9e),\n    syncIgnored: register('sync-ignored', 0xeb9f),\n    pinned: register('pinned', 0xeba0),\n    githubInverted: register('github-inverted', 0xeba1),\n    serverProcess: register('server-process', 0xeba2),\n    serverEnvironment: register('server-environment', 0xeba3),\n    pass: register('pass', 0xeba4),\n    issueClosed: register('issue-closed', 0xeba4),\n    stopCircle: register('stop-circle', 0xeba5),\n    playCircle: register('play-circle', 0xeba6),\n    record: register('record', 0xeba7),\n    debugAltSmall: register('debug-alt-small', 0xeba8),\n    vmConnect: register('vm-connect', 0xeba9),\n    cloud: register('cloud', 0xebaa),\n    merge: register('merge', 0xebab),\n    export: register('export', 0xebac),\n    graphLeft: register('graph-left', 0xebad),\n    magnet: register('magnet', 0xebae),\n    notebook: register('notebook', 0xebaf),\n    redo: register('redo', 0xebb0),\n    checkAll: register('check-all', 0xebb1),\n    pinnedDirty: register('pinned-dirty', 0xebb2),\n    passFilled: register('pass-filled', 0xebb3),\n    circleLargeFilled: register('circle-large-filled', 0xebb4),\n    circleLarge: register('circle-large', 0xebb5),\n    circleLargeOutline: register('circle-large-outline', 0xebb5),\n    combine: register('combine', 0xebb6),\n    gather: register('gather', 0xebb6),\n    table: register('table', 0xebb7),\n    variableGroup: register('variable-group', 0xebb8),\n    typeHierarchy: register('type-hierarchy', 0xebb9),\n    typeHierarchySub: register('type-hierarchy-sub', 0xebba),\n    typeHierarchySuper: register('type-hierarchy-super', 0xebbb),\n    gitPullRequestCreate: register('git-pull-request-create', 0xebbc),\n    runAbove: register('run-above', 0xebbd),\n    runBelow: register('run-below', 0xebbe),\n    notebookTemplate: register('notebook-template', 0xebbf),\n    debugRerun: register('debug-rerun', 0xebc0),\n    workspaceTrusted: register('workspace-trusted', 0xebc1),\n    workspaceUntrusted: register('workspace-untrusted', 0xebc2),\n    workspaceUnknown: register('workspace-unknown', 0xebc3),\n    terminalCmd: register('terminal-cmd', 0xebc4),\n    terminalDebian: register('terminal-debian', 0xebc5),\n    terminalLinux: register('terminal-linux', 0xebc6),\n    terminalPowershell: register('terminal-powershell', 0xebc7),\n    terminalTmux: register('terminal-tmux', 0xebc8),\n    terminalUbuntu: register('terminal-ubuntu', 0xebc9),\n    terminalBash: register('terminal-bash', 0xebca),\n    arrowSwap: register('arrow-swap', 0xebcb),\n    copy: register('copy', 0xebcc),\n    personAdd: register('person-add', 0xebcd),\n    filterFilled: register('filter-filled', 0xebce),\n    wand: register('wand', 0xebcf),\n    debugLineByLine: register('debug-line-by-line', 0xebd0),\n    inspect: register('inspect', 0xebd1),\n    layers: register('layers', 0xebd2),\n    layersDot: register('layers-dot', 0xebd3),\n    layersActive: register('layers-active', 0xebd4),\n    compass: register('compass', 0xebd5),\n    compassDot: register('compass-dot', 0xebd6),\n    compassActive: register('compass-active', 0xebd7),\n    azure: register('azure', 0xebd8),\n    issueDraft: register('issue-draft', 0xebd9),\n    gitPullRequestClosed: register('git-pull-request-closed', 0xebda),\n    gitPullRequestDraft: register('git-pull-request-draft', 0xebdb),\n    debugAll: register('debug-all', 0xebdc),\n    debugCoverage: register('debug-coverage', 0xebdd),\n    runErrors: register('run-errors', 0xebde),\n    folderLibrary: register('folder-library', 0xebdf),\n    debugContinueSmall: register('debug-continue-small', 0xebe0),\n    beakerStop: register('beaker-stop', 0xebe1),\n    graphLine: register('graph-line', 0xebe2),\n    graphScatter: register('graph-scatter', 0xebe3),\n    pieChart: register('pie-chart', 0xebe4),\n    bracket: register('bracket', 0xeb0f),\n    bracketDot: register('bracket-dot', 0xebe5),\n    bracketError: register('bracket-error', 0xebe6),\n    lockSmall: register('lock-small', 0xebe7),\n    azureDevops: register('azure-devops', 0xebe8),\n    verifiedFilled: register('verified-filled', 0xebe9),\n    newline: register('newline', 0xebea),\n    layout: register('layout', 0xebeb),\n    layoutActivitybarLeft: register('layout-activitybar-left', 0xebec),\n    layoutActivitybarRight: register('layout-activitybar-right', 0xebed),\n    layoutPanelLeft: register('layout-panel-left', 0xebee),\n    layoutPanelCenter: register('layout-panel-center', 0xebef),\n    layoutPanelJustify: register('layout-panel-justify', 0xebf0),\n    layoutPanelRight: register('layout-panel-right', 0xebf1),\n    layoutPanel: register('layout-panel', 0xebf2),\n    layoutSidebarLeft: register('layout-sidebar-left', 0xebf3),\n    layoutSidebarRight: register('layout-sidebar-right', 0xebf4),\n    layoutStatusbar: register('layout-statusbar', 0xebf5),\n    layoutMenubar: register('layout-menubar', 0xebf6),\n    layoutCentered: register('layout-centered', 0xebf7),\n    target: register('target', 0xebf8),\n    indent: register('indent', 0xebf9),\n    recordSmall: register('record-small', 0xebfa),\n    errorSmall: register('error-small', 0xebfb),\n    terminalDecorationError: register('terminal-decoration-error', 0xebfb),\n    arrowCircleDown: register('arrow-circle-down', 0xebfc),\n    arrowCircleLeft: register('arrow-circle-left', 0xebfd),\n    arrowCircleRight: register('arrow-circle-right', 0xebfe),\n    arrowCircleUp: register('arrow-circle-up', 0xebff),\n    layoutSidebarRightOff: register('layout-sidebar-right-off', 0xec00),\n    layoutPanelOff: register('layout-panel-off', 0xec01),\n    layoutSidebarLeftOff: register('layout-sidebar-left-off', 0xec02),\n    blank: register('blank', 0xec03),\n    heartFilled: register('heart-filled', 0xec04),\n    map: register('map', 0xec05),\n    mapHorizontal: register('map-horizontal', 0xec05),\n    foldHorizontal: register('fold-horizontal', 0xec05),\n    mapFilled: register('map-filled', 0xec06),\n    mapHorizontalFilled: register('map-horizontal-filled', 0xec06),\n    foldHorizontalFilled: register('fold-horizontal-filled', 0xec06),\n    circleSmall: register('circle-small', 0xec07),\n    bellSlash: register('bell-slash', 0xec08),\n    bellSlashDot: register('bell-slash-dot', 0xec09),\n    commentUnresolved: register('comment-unresolved', 0xec0a),\n    gitPullRequestGoToChanges: register('git-pull-request-go-to-changes', 0xec0b),\n    gitPullRequestNewChanges: register('git-pull-request-new-changes', 0xec0c),\n    searchFuzzy: register('search-fuzzy', 0xec0d),\n    commentDraft: register('comment-draft', 0xec0e),\n    send: register('send', 0xec0f),\n    sparkle: register('sparkle', 0xec10),\n    insert: register('insert', 0xec11),\n    mic: register('mic', 0xec12),\n    thumbsdownFilled: register('thumbsdown-filled', 0xec13),\n    thumbsupFilled: register('thumbsup-filled', 0xec14),\n    coffee: register('coffee', 0xec15),\n    snake: register('snake', 0xec16),\n    game: register('game', 0xec17),\n    vr: register('vr', 0xec18),\n    chip: register('chip', 0xec19),\n    piano: register('piano', 0xec1a),\n    music: register('music', 0xec1b),\n    micFilled: register('mic-filled', 0xec1c),\n    repoFetch: register('repo-fetch', 0xec1d),\n    copilot: register('copilot', 0xec1e),\n    lightbulbSparkle: register('lightbulb-sparkle', 0xec1f),\n    robot: register('robot', 0xec20),\n    sparkleFilled: register('sparkle-filled', 0xec21),\n    diffSingle: register('diff-single', 0xec22),\n    diffMultiple: register('diff-multiple', 0xec23),\n    surroundWith: register('surround-with', 0xec24),\n    share: register('share', 0xec25),\n    gitStash: register('git-stash', 0xec26),\n    gitStashApply: register('git-stash-apply', 0xec27),\n    gitStashPop: register('git-stash-pop', 0xec28),\n    vscode: register('vscode', 0xec29),\n    vscodeInsiders: register('vscode-insiders', 0xec2a),\n    codeOss: register('code-oss', 0xec2b),\n    runCoverage: register('run-coverage', 0xec2c),\n    runAllCoverage: register('run-all-coverage', 0xec2d),\n    coverage: register('coverage', 0xec2e),\n    githubProject: register('github-project', 0xec2f),\n    mapVertical: register('map-vertical', 0xec30),\n    foldVertical: register('fold-vertical', 0xec30),\n    mapVerticalFilled: register('map-vertical-filled', 0xec31),\n    foldVerticalFilled: register('fold-vertical-filled', 0xec31),\n    goToSearch: register('go-to-search', 0xec32),\n    percentage: register('percentage', 0xec33),\n    sortPercentage: register('sort-percentage', 0xec33),\n    attach: register('attach', 0xec34),\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/codiconsUtil.js",
    "content": "import { isString } from './types.js';\nconst _codiconFontCharacters = Object.create(null);\nexport function register(id, fontCharacter) {\n    if (isString(fontCharacter)) {\n        const val = _codiconFontCharacters[fontCharacter];\n        if (val === undefined) {\n            throw new Error(`${id} references an unknown codicon: ${fontCharacter}`);\n        }\n        fontCharacter = val;\n    }\n    _codiconFontCharacters[id] = fontCharacter;\n    return { id };\n}\n/**\n * Only to be used by the iconRegistry.\n */\nexport function getCodiconFontCharacters() {\n    return _codiconFontCharacters;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/collections.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport function diffSets(before, after) {\n    const removed = [];\n    const added = [];\n    for (const element of before) {\n        if (!after.has(element)) {\n            removed.push(element);\n        }\n    }\n    for (const element of after) {\n        if (!before.has(element)) {\n            added.push(element);\n        }\n    }\n    return { removed, added };\n}\n/**\n * Computes the intersection of two sets.\n *\n * @param setA - The first set.\n * @param setB - The second iterable.\n * @returns A new set containing the elements that are in both `setA` and `setB`.\n */\nexport function intersection(setA, setB) {\n    const result = new Set();\n    for (const elem of setB) {\n        if (setA.has(elem)) {\n            result.add(elem);\n        }\n    }\n    return result;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/color.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nfunction roundFloat(number, decimalPoints) {\n    const decimal = Math.pow(10, decimalPoints);\n    return Math.round(number * decimal) / decimal;\n}\nexport class RGBA {\n    constructor(r, g, b, a = 1) {\n        this._rgbaBrand = undefined;\n        this.r = Math.min(255, Math.max(0, r)) | 0;\n        this.g = Math.min(255, Math.max(0, g)) | 0;\n        this.b = Math.min(255, Math.max(0, b)) | 0;\n        this.a = roundFloat(Math.max(Math.min(1, a), 0), 3);\n    }\n    static equals(a, b) {\n        return a.r === b.r && a.g === b.g && a.b === b.b && a.a === b.a;\n    }\n}\nexport class HSLA {\n    constructor(h, s, l, a) {\n        this._hslaBrand = undefined;\n        this.h = Math.max(Math.min(360, h), 0) | 0;\n        this.s = roundFloat(Math.max(Math.min(1, s), 0), 3);\n        this.l = roundFloat(Math.max(Math.min(1, l), 0), 3);\n        this.a = roundFloat(Math.max(Math.min(1, a), 0), 3);\n    }\n    static equals(a, b) {\n        return a.h === b.h && a.s === b.s && a.l === b.l && a.a === b.a;\n    }\n    /**\n     * Converts an RGB color value to HSL. Conversion formula\n     * adapted from http://en.wikipedia.org/wiki/HSL_color_space.\n     * Assumes r, g, and b are contained in the set [0, 255] and\n     * returns h in the set [0, 360], s, and l in the set [0, 1].\n     */\n    static fromRGBA(rgba) {\n        const r = rgba.r / 255;\n        const g = rgba.g / 255;\n        const b = rgba.b / 255;\n        const a = rgba.a;\n        const max = Math.max(r, g, b);\n        const min = Math.min(r, g, b);\n        let h = 0;\n        let s = 0;\n        const l = (min + max) / 2;\n        const chroma = max - min;\n        if (chroma > 0) {\n            s = Math.min((l <= 0.5 ? chroma / (2 * l) : chroma / (2 - (2 * l))), 1);\n            switch (max) {\n                case r:\n                    h = (g - b) / chroma + (g < b ? 6 : 0);\n                    break;\n                case g:\n                    h = (b - r) / chroma + 2;\n                    break;\n                case b:\n                    h = (r - g) / chroma + 4;\n                    break;\n            }\n            h *= 60;\n            h = Math.round(h);\n        }\n        return new HSLA(h, s, l, a);\n    }\n    static _hue2rgb(p, q, t) {\n        if (t < 0) {\n            t += 1;\n        }\n        if (t > 1) {\n            t -= 1;\n        }\n        if (t < 1 / 6) {\n            return p + (q - p) * 6 * t;\n        }\n        if (t < 1 / 2) {\n            return q;\n        }\n        if (t < 2 / 3) {\n            return p + (q - p) * (2 / 3 - t) * 6;\n        }\n        return p;\n    }\n    /**\n     * Converts an HSL color value to RGB. Conversion formula\n     * adapted from http://en.wikipedia.org/wiki/HSL_color_space.\n     * Assumes h in the set [0, 360] s, and l are contained in the set [0, 1] and\n     * returns r, g, and b in the set [0, 255].\n     */\n    static toRGBA(hsla) {\n        const h = hsla.h / 360;\n        const { s, l, a } = hsla;\n        let r, g, b;\n        if (s === 0) {\n            r = g = b = l; // achromatic\n        }\n        else {\n            const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n            const p = 2 * l - q;\n            r = HSLA._hue2rgb(p, q, h + 1 / 3);\n            g = HSLA._hue2rgb(p, q, h);\n            b = HSLA._hue2rgb(p, q, h - 1 / 3);\n        }\n        return new RGBA(Math.round(r * 255), Math.round(g * 255), Math.round(b * 255), a);\n    }\n}\nexport class HSVA {\n    constructor(h, s, v, a) {\n        this._hsvaBrand = undefined;\n        this.h = Math.max(Math.min(360, h), 0) | 0;\n        this.s = roundFloat(Math.max(Math.min(1, s), 0), 3);\n        this.v = roundFloat(Math.max(Math.min(1, v), 0), 3);\n        this.a = roundFloat(Math.max(Math.min(1, a), 0), 3);\n    }\n    static equals(a, b) {\n        return a.h === b.h && a.s === b.s && a.v === b.v && a.a === b.a;\n    }\n    // from http://www.rapidtables.com/convert/color/rgb-to-hsv.htm\n    static fromRGBA(rgba) {\n        const r = rgba.r / 255;\n        const g = rgba.g / 255;\n        const b = rgba.b / 255;\n        const cmax = Math.max(r, g, b);\n        const cmin = Math.min(r, g, b);\n        const delta = cmax - cmin;\n        const s = cmax === 0 ? 0 : (delta / cmax);\n        let m;\n        if (delta === 0) {\n            m = 0;\n        }\n        else if (cmax === r) {\n            m = ((((g - b) / delta) % 6) + 6) % 6;\n        }\n        else if (cmax === g) {\n            m = ((b - r) / delta) + 2;\n        }\n        else {\n            m = ((r - g) / delta) + 4;\n        }\n        return new HSVA(Math.round(m * 60), s, cmax, rgba.a);\n    }\n    // from http://www.rapidtables.com/convert/color/hsv-to-rgb.htm\n    static toRGBA(hsva) {\n        const { h, s, v, a } = hsva;\n        const c = v * s;\n        const x = c * (1 - Math.abs((h / 60) % 2 - 1));\n        const m = v - c;\n        let [r, g, b] = [0, 0, 0];\n        if (h < 60) {\n            r = c;\n            g = x;\n        }\n        else if (h < 120) {\n            r = x;\n            g = c;\n        }\n        else if (h < 180) {\n            g = c;\n            b = x;\n        }\n        else if (h < 240) {\n            g = x;\n            b = c;\n        }\n        else if (h < 300) {\n            r = x;\n            b = c;\n        }\n        else if (h <= 360) {\n            r = c;\n            b = x;\n        }\n        r = Math.round((r + m) * 255);\n        g = Math.round((g + m) * 255);\n        b = Math.round((b + m) * 255);\n        return new RGBA(r, g, b, a);\n    }\n}\nexport class Color {\n    static fromHex(hex) {\n        return Color.Format.CSS.parseHex(hex) || Color.red;\n    }\n    static equals(a, b) {\n        if (!a && !b) {\n            return true;\n        }\n        if (!a || !b) {\n            return false;\n        }\n        return a.equals(b);\n    }\n    get hsla() {\n        if (this._hsla) {\n            return this._hsla;\n        }\n        else {\n            return HSLA.fromRGBA(this.rgba);\n        }\n    }\n    get hsva() {\n        if (this._hsva) {\n            return this._hsva;\n        }\n        return HSVA.fromRGBA(this.rgba);\n    }\n    constructor(arg) {\n        if (!arg) {\n            throw new Error('Color needs a value');\n        }\n        else if (arg instanceof RGBA) {\n            this.rgba = arg;\n        }\n        else if (arg instanceof HSLA) {\n            this._hsla = arg;\n            this.rgba = HSLA.toRGBA(arg);\n        }\n        else if (arg instanceof HSVA) {\n            this._hsva = arg;\n            this.rgba = HSVA.toRGBA(arg);\n        }\n        else {\n            throw new Error('Invalid color ctor argument');\n        }\n    }\n    equals(other) {\n        return !!other && RGBA.equals(this.rgba, other.rgba) && HSLA.equals(this.hsla, other.hsla) && HSVA.equals(this.hsva, other.hsva);\n    }\n    /**\n     * http://www.w3.org/TR/WCAG20/#relativeluminancedef\n     * Returns the number in the set [0, 1]. O => Darkest Black. 1 => Lightest white.\n     */\n    getRelativeLuminance() {\n        const R = Color._relativeLuminanceForComponent(this.rgba.r);\n        const G = Color._relativeLuminanceForComponent(this.rgba.g);\n        const B = Color._relativeLuminanceForComponent(this.rgba.b);\n        const luminance = 0.2126 * R + 0.7152 * G + 0.0722 * B;\n        return roundFloat(luminance, 4);\n    }\n    static _relativeLuminanceForComponent(color) {\n        const c = color / 255;\n        return (c <= 0.03928) ? c / 12.92 : Math.pow(((c + 0.055) / 1.055), 2.4);\n    }\n    /**\n     *\thttp://24ways.org/2010/calculating-color-contrast\n     *  Return 'true' if lighter color otherwise 'false'\n     */\n    isLighter() {\n        const yiq = (this.rgba.r * 299 + this.rgba.g * 587 + this.rgba.b * 114) / 1000;\n        return yiq >= 128;\n    }\n    isLighterThan(another) {\n        const lum1 = this.getRelativeLuminance();\n        const lum2 = another.getRelativeLuminance();\n        return lum1 > lum2;\n    }\n    isDarkerThan(another) {\n        const lum1 = this.getRelativeLuminance();\n        const lum2 = another.getRelativeLuminance();\n        return lum1 < lum2;\n    }\n    lighten(factor) {\n        return new Color(new HSLA(this.hsla.h, this.hsla.s, this.hsla.l + this.hsla.l * factor, this.hsla.a));\n    }\n    darken(factor) {\n        return new Color(new HSLA(this.hsla.h, this.hsla.s, this.hsla.l - this.hsla.l * factor, this.hsla.a));\n    }\n    transparent(factor) {\n        const { r, g, b, a } = this.rgba;\n        return new Color(new RGBA(r, g, b, a * factor));\n    }\n    isTransparent() {\n        return this.rgba.a === 0;\n    }\n    isOpaque() {\n        return this.rgba.a === 1;\n    }\n    opposite() {\n        return new Color(new RGBA(255 - this.rgba.r, 255 - this.rgba.g, 255 - this.rgba.b, this.rgba.a));\n    }\n    makeOpaque(opaqueBackground) {\n        if (this.isOpaque() || opaqueBackground.rgba.a !== 1) {\n            // only allow to blend onto a non-opaque color onto a opaque color\n            return this;\n        }\n        const { r, g, b, a } = this.rgba;\n        // https://stackoverflow.com/questions/12228548/finding-equivalent-color-with-opacity\n        return new Color(new RGBA(opaqueBackground.rgba.r - a * (opaqueBackground.rgba.r - r), opaqueBackground.rgba.g - a * (opaqueBackground.rgba.g - g), opaqueBackground.rgba.b - a * (opaqueBackground.rgba.b - b), 1));\n    }\n    toString() {\n        if (!this._toString) {\n            this._toString = Color.Format.CSS.format(this);\n        }\n        return this._toString;\n    }\n    static getLighterColor(of, relative, factor) {\n        if (of.isLighterThan(relative)) {\n            return of;\n        }\n        factor = factor ? factor : 0.5;\n        const lum1 = of.getRelativeLuminance();\n        const lum2 = relative.getRelativeLuminance();\n        factor = factor * (lum2 - lum1) / lum2;\n        return of.lighten(factor);\n    }\n    static getDarkerColor(of, relative, factor) {\n        if (of.isDarkerThan(relative)) {\n            return of;\n        }\n        factor = factor ? factor : 0.5;\n        const lum1 = of.getRelativeLuminance();\n        const lum2 = relative.getRelativeLuminance();\n        factor = factor * (lum1 - lum2) / lum1;\n        return of.darken(factor);\n    }\n}\nColor.white = new Color(new RGBA(255, 255, 255, 1));\nColor.black = new Color(new RGBA(0, 0, 0, 1));\nColor.red = new Color(new RGBA(255, 0, 0, 1));\nColor.blue = new Color(new RGBA(0, 0, 255, 1));\nColor.green = new Color(new RGBA(0, 255, 0, 1));\nColor.cyan = new Color(new RGBA(0, 255, 255, 1));\nColor.lightgrey = new Color(new RGBA(211, 211, 211, 1));\nColor.transparent = new Color(new RGBA(0, 0, 0, 0));\n(function (Color) {\n    let Format;\n    (function (Format) {\n        let CSS;\n        (function (CSS) {\n            function formatRGB(color) {\n                if (color.rgba.a === 1) {\n                    return `rgb(${color.rgba.r}, ${color.rgba.g}, ${color.rgba.b})`;\n                }\n                return Color.Format.CSS.formatRGBA(color);\n            }\n            CSS.formatRGB = formatRGB;\n            function formatRGBA(color) {\n                return `rgba(${color.rgba.r}, ${color.rgba.g}, ${color.rgba.b}, ${+(color.rgba.a).toFixed(2)})`;\n            }\n            CSS.formatRGBA = formatRGBA;\n            function formatHSL(color) {\n                if (color.hsla.a === 1) {\n                    return `hsl(${color.hsla.h}, ${(color.hsla.s * 100).toFixed(2)}%, ${(color.hsla.l * 100).toFixed(2)}%)`;\n                }\n                return Color.Format.CSS.formatHSLA(color);\n            }\n            CSS.formatHSL = formatHSL;\n            function formatHSLA(color) {\n                return `hsla(${color.hsla.h}, ${(color.hsla.s * 100).toFixed(2)}%, ${(color.hsla.l * 100).toFixed(2)}%, ${color.hsla.a.toFixed(2)})`;\n            }\n            CSS.formatHSLA = formatHSLA;\n            function _toTwoDigitHex(n) {\n                const r = n.toString(16);\n                return r.length !== 2 ? '0' + r : r;\n            }\n            /**\n             * Formats the color as #RRGGBB\n             */\n            function formatHex(color) {\n                return `#${_toTwoDigitHex(color.rgba.r)}${_toTwoDigitHex(color.rgba.g)}${_toTwoDigitHex(color.rgba.b)}`;\n            }\n            CSS.formatHex = formatHex;\n            /**\n             * Formats the color as #RRGGBBAA\n             * If 'compact' is set, colors without transparancy will be printed as #RRGGBB\n             */\n            function formatHexA(color, compact = false) {\n                if (compact && color.rgba.a === 1) {\n                    return Color.Format.CSS.formatHex(color);\n                }\n                return `#${_toTwoDigitHex(color.rgba.r)}${_toTwoDigitHex(color.rgba.g)}${_toTwoDigitHex(color.rgba.b)}${_toTwoDigitHex(Math.round(color.rgba.a * 255))}`;\n            }\n            CSS.formatHexA = formatHexA;\n            /**\n             * The default format will use HEX if opaque and RGBA otherwise.\n             */\n            function format(color) {\n                if (color.isOpaque()) {\n                    return Color.Format.CSS.formatHex(color);\n                }\n                return Color.Format.CSS.formatRGBA(color);\n            }\n            CSS.format = format;\n            /**\n             * Converts an Hex color value to a Color.\n             * returns r, g, and b are contained in the set [0, 255]\n             * @param hex string (#RGB, #RGBA, #RRGGBB or #RRGGBBAA).\n             */\n            function parseHex(hex) {\n                const length = hex.length;\n                if (length === 0) {\n                    // Invalid color\n                    return null;\n                }\n                if (hex.charCodeAt(0) !== 35 /* CharCode.Hash */) {\n                    // Does not begin with a #\n                    return null;\n                }\n                if (length === 7) {\n                    // #RRGGBB format\n                    const r = 16 * _parseHexDigit(hex.charCodeAt(1)) + _parseHexDigit(hex.charCodeAt(2));\n                    const g = 16 * _parseHexDigit(hex.charCodeAt(3)) + _parseHexDigit(hex.charCodeAt(4));\n                    const b = 16 * _parseHexDigit(hex.charCodeAt(5)) + _parseHexDigit(hex.charCodeAt(6));\n                    return new Color(new RGBA(r, g, b, 1));\n                }\n                if (length === 9) {\n                    // #RRGGBBAA format\n                    const r = 16 * _parseHexDigit(hex.charCodeAt(1)) + _parseHexDigit(hex.charCodeAt(2));\n                    const g = 16 * _parseHexDigit(hex.charCodeAt(3)) + _parseHexDigit(hex.charCodeAt(4));\n                    const b = 16 * _parseHexDigit(hex.charCodeAt(5)) + _parseHexDigit(hex.charCodeAt(6));\n                    const a = 16 * _parseHexDigit(hex.charCodeAt(7)) + _parseHexDigit(hex.charCodeAt(8));\n                    return new Color(new RGBA(r, g, b, a / 255));\n                }\n                if (length === 4) {\n                    // #RGB format\n                    const r = _parseHexDigit(hex.charCodeAt(1));\n                    const g = _parseHexDigit(hex.charCodeAt(2));\n                    const b = _parseHexDigit(hex.charCodeAt(3));\n                    return new Color(new RGBA(16 * r + r, 16 * g + g, 16 * b + b));\n                }\n                if (length === 5) {\n                    // #RGBA format\n                    const r = _parseHexDigit(hex.charCodeAt(1));\n                    const g = _parseHexDigit(hex.charCodeAt(2));\n                    const b = _parseHexDigit(hex.charCodeAt(3));\n                    const a = _parseHexDigit(hex.charCodeAt(4));\n                    return new Color(new RGBA(16 * r + r, 16 * g + g, 16 * b + b, (16 * a + a) / 255));\n                }\n                // Invalid color\n                return null;\n            }\n            CSS.parseHex = parseHex;\n            function _parseHexDigit(charCode) {\n                switch (charCode) {\n                    case 48 /* CharCode.Digit0 */: return 0;\n                    case 49 /* CharCode.Digit1 */: return 1;\n                    case 50 /* CharCode.Digit2 */: return 2;\n                    case 51 /* CharCode.Digit3 */: return 3;\n                    case 52 /* CharCode.Digit4 */: return 4;\n                    case 53 /* CharCode.Digit5 */: return 5;\n                    case 54 /* CharCode.Digit6 */: return 6;\n                    case 55 /* CharCode.Digit7 */: return 7;\n                    case 56 /* CharCode.Digit8 */: return 8;\n                    case 57 /* CharCode.Digit9 */: return 9;\n                    case 97 /* CharCode.a */: return 10;\n                    case 65 /* CharCode.A */: return 10;\n                    case 98 /* CharCode.b */: return 11;\n                    case 66 /* CharCode.B */: return 11;\n                    case 99 /* CharCode.c */: return 12;\n                    case 67 /* CharCode.C */: return 12;\n                    case 100 /* CharCode.d */: return 13;\n                    case 68 /* CharCode.D */: return 13;\n                    case 101 /* CharCode.e */: return 14;\n                    case 69 /* CharCode.E */: return 14;\n                    case 102 /* CharCode.f */: return 15;\n                    case 70 /* CharCode.F */: return 15;\n                }\n                return 0;\n            }\n        })(CSS = Format.CSS || (Format.CSS = {}));\n    })(Format = Color.Format || (Color.Format = {}));\n})(Color || (Color = {}));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/comparers.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Lazy } from './lazy.js';\n// When comparing large numbers of strings it's better for performance to create an\n// Intl.Collator object and use the function provided by its compare property\n// than it is to use String.prototype.localeCompare()\n// A collator with numeric sorting enabled, and no sensitivity to case, accents or diacritics.\nconst intlFileNameCollatorBaseNumeric = new Lazy(() => {\n    const collator = new Intl.Collator(undefined, { numeric: true, sensitivity: 'base' });\n    return {\n        collator,\n        collatorIsNumeric: collator.resolvedOptions().numeric\n    };\n});\n// A collator with numeric sorting enabled.\nconst intlFileNameCollatorNumeric = new Lazy(() => {\n    const collator = new Intl.Collator(undefined, { numeric: true });\n    return {\n        collator\n    };\n});\n// A collator with numeric sorting enabled, and sensitivity to accents and diacritics but not case.\nconst intlFileNameCollatorNumericCaseInsensitive = new Lazy(() => {\n    const collator = new Intl.Collator(undefined, { numeric: true, sensitivity: 'accent' });\n    return {\n        collator\n    };\n});\n/** Compares filenames without distinguishing the name from the extension. Disambiguates by unicode comparison. */\nexport function compareFileNames(one, other, caseSensitive = false) {\n    const a = one || '';\n    const b = other || '';\n    const result = intlFileNameCollatorBaseNumeric.value.collator.compare(a, b);\n    // Using the numeric option will make compare(`foo1`, `foo01`) === 0. Disambiguate.\n    if (intlFileNameCollatorBaseNumeric.value.collatorIsNumeric && result === 0 && a !== b) {\n        return a < b ? -1 : 1;\n    }\n    return result;\n}\nexport function compareAnything(one, other, lookFor) {\n    const elementAName = one.toLowerCase();\n    const elementBName = other.toLowerCase();\n    // Sort prefix matches over non prefix matches\n    const prefixCompare = compareByPrefix(one, other, lookFor);\n    if (prefixCompare) {\n        return prefixCompare;\n    }\n    // Sort suffix matches over non suffix matches\n    const elementASuffixMatch = elementAName.endsWith(lookFor);\n    const elementBSuffixMatch = elementBName.endsWith(lookFor);\n    if (elementASuffixMatch !== elementBSuffixMatch) {\n        return elementASuffixMatch ? -1 : 1;\n    }\n    // Understand file names\n    const r = compareFileNames(elementAName, elementBName);\n    if (r !== 0) {\n        return r;\n    }\n    // Compare by name\n    return elementAName.localeCompare(elementBName);\n}\nexport function compareByPrefix(one, other, lookFor) {\n    const elementAName = one.toLowerCase();\n    const elementBName = other.toLowerCase();\n    // Sort prefix matches over non prefix matches\n    const elementAPrefixMatch = elementAName.startsWith(lookFor);\n    const elementBPrefixMatch = elementBName.startsWith(lookFor);\n    if (elementAPrefixMatch !== elementBPrefixMatch) {\n        return elementAPrefixMatch ? -1 : 1;\n    }\n    // Same prefix: Sort shorter matches to the top to have those on top that match more precisely\n    else if (elementAPrefixMatch && elementBPrefixMatch) {\n        if (elementAName.length < elementBName.length) {\n            return -1;\n        }\n        if (elementAName.length > elementBName.length) {\n            return 1;\n        }\n    }\n    return 0;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/dataTransfer.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { distinct } from './arrays.js';\nimport { Iterable } from './iterator.js';\nimport { generateUuid } from './uuid.js';\nexport function createStringDataTransferItem(stringOrPromise) {\n    return {\n        asString: async () => stringOrPromise,\n        asFile: () => undefined,\n        value: typeof stringOrPromise === 'string' ? stringOrPromise : undefined,\n    };\n}\nexport function createFileDataTransferItem(fileName, uri, data) {\n    const file = { id: generateUuid(), name: fileName, uri, data };\n    return {\n        asString: async () => '',\n        asFile: () => file,\n        value: undefined,\n    };\n}\nexport class VSDataTransfer {\n    constructor() {\n        this._entries = new Map();\n    }\n    get size() {\n        let size = 0;\n        for (const _ of this._entries) {\n            size++;\n        }\n        return size;\n    }\n    has(mimeType) {\n        return this._entries.has(this.toKey(mimeType));\n    }\n    matches(pattern) {\n        const mimes = [...this._entries.keys()];\n        if (Iterable.some(this, ([_, item]) => item.asFile())) {\n            mimes.push('files');\n        }\n        return matchesMimeType_normalized(normalizeMimeType(pattern), mimes);\n    }\n    get(mimeType) {\n        var _a;\n        return (_a = this._entries.get(this.toKey(mimeType))) === null || _a === void 0 ? void 0 : _a[0];\n    }\n    /**\n     * Add a new entry to this data transfer.\n     *\n     * This does not replace existing entries for `mimeType`.\n     */\n    append(mimeType, value) {\n        const existing = this._entries.get(mimeType);\n        if (existing) {\n            existing.push(value);\n        }\n        else {\n            this._entries.set(this.toKey(mimeType), [value]);\n        }\n    }\n    /**\n     * Set the entry for a given mime type.\n     *\n     * This replaces all existing entries for `mimeType`.\n     */\n    replace(mimeType, value) {\n        this._entries.set(this.toKey(mimeType), [value]);\n    }\n    /**\n     * Remove all entries for `mimeType`.\n     */\n    delete(mimeType) {\n        this._entries.delete(this.toKey(mimeType));\n    }\n    /**\n     * Iterate over all `[mime, item]` pairs in this data transfer.\n     *\n     * There may be multiple entries for each mime type.\n     */\n    *[Symbol.iterator]() {\n        for (const [mine, items] of this._entries) {\n            for (const item of items) {\n                yield [mine, item];\n            }\n        }\n    }\n    toKey(mimeType) {\n        return normalizeMimeType(mimeType);\n    }\n}\nfunction normalizeMimeType(mimeType) {\n    return mimeType.toLowerCase();\n}\nexport function matchesMimeType(pattern, mimeTypes) {\n    return matchesMimeType_normalized(normalizeMimeType(pattern), mimeTypes.map(normalizeMimeType));\n}\nfunction matchesMimeType_normalized(normalizedPattern, normalizedMimeTypes) {\n    // Anything wildcard\n    if (normalizedPattern === '*/*') {\n        return normalizedMimeTypes.length > 0;\n    }\n    // Exact match\n    if (normalizedMimeTypes.includes(normalizedPattern)) {\n        return true;\n    }\n    // Wildcard, such as `image/*`\n    const wildcard = normalizedPattern.match(/^([a-z]+)\\/([a-z]+|\\*)$/i);\n    if (!wildcard) {\n        return false;\n    }\n    const [_, type, subtype] = wildcard;\n    if (subtype === '*') {\n        return normalizedMimeTypes.some(mime => mime.startsWith(type + '/'));\n    }\n    return false;\n}\nexport const UriList = Object.freeze({\n    // http://amundsen.com/hypermedia/urilist/\n    create: (entries) => {\n        return distinct(entries.map(x => x.toString())).join('\\r\\n');\n    },\n    split: (str) => {\n        return str.split('\\r\\n');\n    },\n    parse: (str) => {\n        return UriList.split(str).filter(value => !value.startsWith('#'));\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/decorators.js",
    "content": "export function memoize(_target, key, descriptor) {\n    let fnKey = null;\n    let fn = null;\n    if (typeof descriptor.value === 'function') {\n        fnKey = 'value';\n        fn = descriptor.value;\n        if (fn.length !== 0) {\n            console.warn('Memoize should only be used in functions with zero parameters');\n        }\n    }\n    else if (typeof descriptor.get === 'function') {\n        fnKey = 'get';\n        fn = descriptor.get;\n    }\n    if (!fn) {\n        throw new Error('not supported');\n    }\n    const memoizeKey = `$memoize$${key}`;\n    descriptor[fnKey] = function (...args) {\n        if (!this.hasOwnProperty(memoizeKey)) {\n            Object.defineProperty(this, memoizeKey, {\n                configurable: false,\n                enumerable: false,\n                writable: false,\n                value: fn.apply(this, args)\n            });\n        }\n        return this[memoizeKey];\n    };\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/diff/diff.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { DiffChange } from './diffChange.js';\nimport { stringHash } from '../hash.js';\nexport class StringDiffSequence {\n    constructor(source) {\n        this.source = source;\n    }\n    getElements() {\n        const source = this.source;\n        const characters = new Int32Array(source.length);\n        for (let i = 0, len = source.length; i < len; i++) {\n            characters[i] = source.charCodeAt(i);\n        }\n        return characters;\n    }\n}\nexport function stringDiff(original, modified, pretty) {\n    return new LcsDiff(new StringDiffSequence(original), new StringDiffSequence(modified)).ComputeDiff(pretty).changes;\n}\n//\n// The code below has been ported from a C# implementation in VS\n//\nclass Debug {\n    static Assert(condition, message) {\n        if (!condition) {\n            throw new Error(message);\n        }\n    }\n}\nclass MyArray {\n    /**\n     * Copies a range of elements from an Array starting at the specified source index and pastes\n     * them to another Array starting at the specified destination index. The length and the indexes\n     * are specified as 64-bit integers.\n     * sourceArray:\n     *\t\tThe Array that contains the data to copy.\n     * sourceIndex:\n     *\t\tA 64-bit integer that represents the index in the sourceArray at which copying begins.\n     * destinationArray:\n     *\t\tThe Array that receives the data.\n     * destinationIndex:\n     *\t\tA 64-bit integer that represents the index in the destinationArray at which storing begins.\n     * length:\n     *\t\tA 64-bit integer that represents the number of elements to copy.\n     */\n    static Copy(sourceArray, sourceIndex, destinationArray, destinationIndex, length) {\n        for (let i = 0; i < length; i++) {\n            destinationArray[destinationIndex + i] = sourceArray[sourceIndex + i];\n        }\n    }\n    static Copy2(sourceArray, sourceIndex, destinationArray, destinationIndex, length) {\n        for (let i = 0; i < length; i++) {\n            destinationArray[destinationIndex + i] = sourceArray[sourceIndex + i];\n        }\n    }\n}\n/**\n * A utility class which helps to create the set of DiffChanges from\n * a difference operation. This class accepts original DiffElements and\n * modified DiffElements that are involved in a particular change. The\n * MarkNextChange() method can be called to mark the separation between\n * distinct changes. At the end, the Changes property can be called to retrieve\n * the constructed changes.\n */\nclass DiffChangeHelper {\n    /**\n     * Constructs a new DiffChangeHelper for the given DiffSequences.\n     */\n    constructor() {\n        this.m_changes = [];\n        this.m_originalStart = 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */;\n        this.m_modifiedStart = 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */;\n        this.m_originalCount = 0;\n        this.m_modifiedCount = 0;\n    }\n    /**\n     * Marks the beginning of the next change in the set of differences.\n     */\n    MarkNextChange() {\n        // Only add to the list if there is something to add\n        if (this.m_originalCount > 0 || this.m_modifiedCount > 0) {\n            // Add the new change to our list\n            this.m_changes.push(new DiffChange(this.m_originalStart, this.m_originalCount, this.m_modifiedStart, this.m_modifiedCount));\n        }\n        // Reset for the next change\n        this.m_originalCount = 0;\n        this.m_modifiedCount = 0;\n        this.m_originalStart = 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */;\n        this.m_modifiedStart = 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */;\n    }\n    /**\n     * Adds the original element at the given position to the elements\n     * affected by the current change. The modified index gives context\n     * to the change position with respect to the original sequence.\n     * @param originalIndex The index of the original element to add.\n     * @param modifiedIndex The index of the modified element that provides corresponding position in the modified sequence.\n     */\n    AddOriginalElement(originalIndex, modifiedIndex) {\n        // The 'true' start index is the smallest of the ones we've seen\n        this.m_originalStart = Math.min(this.m_originalStart, originalIndex);\n        this.m_modifiedStart = Math.min(this.m_modifiedStart, modifiedIndex);\n        this.m_originalCount++;\n    }\n    /**\n     * Adds the modified element at the given position to the elements\n     * affected by the current change. The original index gives context\n     * to the change position with respect to the modified sequence.\n     * @param originalIndex The index of the original element that provides corresponding position in the original sequence.\n     * @param modifiedIndex The index of the modified element to add.\n     */\n    AddModifiedElement(originalIndex, modifiedIndex) {\n        // The 'true' start index is the smallest of the ones we've seen\n        this.m_originalStart = Math.min(this.m_originalStart, originalIndex);\n        this.m_modifiedStart = Math.min(this.m_modifiedStart, modifiedIndex);\n        this.m_modifiedCount++;\n    }\n    /**\n     * Retrieves all of the changes marked by the class.\n     */\n    getChanges() {\n        if (this.m_originalCount > 0 || this.m_modifiedCount > 0) {\n            // Finish up on whatever is left\n            this.MarkNextChange();\n        }\n        return this.m_changes;\n    }\n    /**\n     * Retrieves all of the changes marked by the class in the reverse order\n     */\n    getReverseChanges() {\n        if (this.m_originalCount > 0 || this.m_modifiedCount > 0) {\n            // Finish up on whatever is left\n            this.MarkNextChange();\n        }\n        this.m_changes.reverse();\n        return this.m_changes;\n    }\n}\n/**\n * An implementation of the difference algorithm described in\n * \"An O(ND) Difference Algorithm and its variations\" by Eugene W. Myers\n */\nexport class LcsDiff {\n    /**\n     * Constructs the DiffFinder\n     */\n    constructor(originalSequence, modifiedSequence, continueProcessingPredicate = null) {\n        this.ContinueProcessingPredicate = continueProcessingPredicate;\n        this._originalSequence = originalSequence;\n        this._modifiedSequence = modifiedSequence;\n        const [originalStringElements, originalElementsOrHash, originalHasStrings] = LcsDiff._getElements(originalSequence);\n        const [modifiedStringElements, modifiedElementsOrHash, modifiedHasStrings] = LcsDiff._getElements(modifiedSequence);\n        this._hasStrings = (originalHasStrings && modifiedHasStrings);\n        this._originalStringElements = originalStringElements;\n        this._originalElementsOrHash = originalElementsOrHash;\n        this._modifiedStringElements = modifiedStringElements;\n        this._modifiedElementsOrHash = modifiedElementsOrHash;\n        this.m_forwardHistory = [];\n        this.m_reverseHistory = [];\n    }\n    static _isStringArray(arr) {\n        return (arr.length > 0 && typeof arr[0] === 'string');\n    }\n    static _getElements(sequence) {\n        const elements = sequence.getElements();\n        if (LcsDiff._isStringArray(elements)) {\n            const hashes = new Int32Array(elements.length);\n            for (let i = 0, len = elements.length; i < len; i++) {\n                hashes[i] = stringHash(elements[i], 0);\n            }\n            return [elements, hashes, true];\n        }\n        if (elements instanceof Int32Array) {\n            return [[], elements, false];\n        }\n        return [[], new Int32Array(elements), false];\n    }\n    ElementsAreEqual(originalIndex, newIndex) {\n        if (this._originalElementsOrHash[originalIndex] !== this._modifiedElementsOrHash[newIndex]) {\n            return false;\n        }\n        return (this._hasStrings ? this._originalStringElements[originalIndex] === this._modifiedStringElements[newIndex] : true);\n    }\n    ElementsAreStrictEqual(originalIndex, newIndex) {\n        if (!this.ElementsAreEqual(originalIndex, newIndex)) {\n            return false;\n        }\n        const originalElement = LcsDiff._getStrictElement(this._originalSequence, originalIndex);\n        const modifiedElement = LcsDiff._getStrictElement(this._modifiedSequence, newIndex);\n        return (originalElement === modifiedElement);\n    }\n    static _getStrictElement(sequence, index) {\n        if (typeof sequence.getStrictElement === 'function') {\n            return sequence.getStrictElement(index);\n        }\n        return null;\n    }\n    OriginalElementsAreEqual(index1, index2) {\n        if (this._originalElementsOrHash[index1] !== this._originalElementsOrHash[index2]) {\n            return false;\n        }\n        return (this._hasStrings ? this._originalStringElements[index1] === this._originalStringElements[index2] : true);\n    }\n    ModifiedElementsAreEqual(index1, index2) {\n        if (this._modifiedElementsOrHash[index1] !== this._modifiedElementsOrHash[index2]) {\n            return false;\n        }\n        return (this._hasStrings ? this._modifiedStringElements[index1] === this._modifiedStringElements[index2] : true);\n    }\n    ComputeDiff(pretty) {\n        return this._ComputeDiff(0, this._originalElementsOrHash.length - 1, 0, this._modifiedElementsOrHash.length - 1, pretty);\n    }\n    /**\n     * Computes the differences between the original and modified input\n     * sequences on the bounded range.\n     * @returns An array of the differences between the two input sequences.\n     */\n    _ComputeDiff(originalStart, originalEnd, modifiedStart, modifiedEnd, pretty) {\n        const quitEarlyArr = [false];\n        let changes = this.ComputeDiffRecursive(originalStart, originalEnd, modifiedStart, modifiedEnd, quitEarlyArr);\n        if (pretty) {\n            // We have to clean up the computed diff to be more intuitive\n            // but it turns out this cannot be done correctly until the entire set\n            // of diffs have been computed\n            changes = this.PrettifyChanges(changes);\n        }\n        return {\n            quitEarly: quitEarlyArr[0],\n            changes: changes\n        };\n    }\n    /**\n     * Private helper method which computes the differences on the bounded range\n     * recursively.\n     * @returns An array of the differences between the two input sequences.\n     */\n    ComputeDiffRecursive(originalStart, originalEnd, modifiedStart, modifiedEnd, quitEarlyArr) {\n        quitEarlyArr[0] = false;\n        // Find the start of the differences\n        while (originalStart <= originalEnd && modifiedStart <= modifiedEnd && this.ElementsAreEqual(originalStart, modifiedStart)) {\n            originalStart++;\n            modifiedStart++;\n        }\n        // Find the end of the differences\n        while (originalEnd >= originalStart && modifiedEnd >= modifiedStart && this.ElementsAreEqual(originalEnd, modifiedEnd)) {\n            originalEnd--;\n            modifiedEnd--;\n        }\n        // In the special case where we either have all insertions or all deletions or the sequences are identical\n        if (originalStart > originalEnd || modifiedStart > modifiedEnd) {\n            let changes;\n            if (modifiedStart <= modifiedEnd) {\n                Debug.Assert(originalStart === originalEnd + 1, 'originalStart should only be one more than originalEnd');\n                // All insertions\n                changes = [\n                    new DiffChange(originalStart, 0, modifiedStart, modifiedEnd - modifiedStart + 1)\n                ];\n            }\n            else if (originalStart <= originalEnd) {\n                Debug.Assert(modifiedStart === modifiedEnd + 1, 'modifiedStart should only be one more than modifiedEnd');\n                // All deletions\n                changes = [\n                    new DiffChange(originalStart, originalEnd - originalStart + 1, modifiedStart, 0)\n                ];\n            }\n            else {\n                Debug.Assert(originalStart === originalEnd + 1, 'originalStart should only be one more than originalEnd');\n                Debug.Assert(modifiedStart === modifiedEnd + 1, 'modifiedStart should only be one more than modifiedEnd');\n                // Identical sequences - No differences\n                changes = [];\n            }\n            return changes;\n        }\n        // This problem can be solved using the Divide-And-Conquer technique.\n        const midOriginalArr = [0];\n        const midModifiedArr = [0];\n        const result = this.ComputeRecursionPoint(originalStart, originalEnd, modifiedStart, modifiedEnd, midOriginalArr, midModifiedArr, quitEarlyArr);\n        const midOriginal = midOriginalArr[0];\n        const midModified = midModifiedArr[0];\n        if (result !== null) {\n            // Result is not-null when there was enough memory to compute the changes while\n            // searching for the recursion point\n            return result;\n        }\n        else if (!quitEarlyArr[0]) {\n            // We can break the problem down recursively by finding the changes in the\n            // First Half:   (originalStart, modifiedStart) to (midOriginal, midModified)\n            // Second Half:  (midOriginal + 1, minModified + 1) to (originalEnd, modifiedEnd)\n            // NOTE: ComputeDiff() is inclusive, therefore the second range starts on the next point\n            const leftChanges = this.ComputeDiffRecursive(originalStart, midOriginal, modifiedStart, midModified, quitEarlyArr);\n            let rightChanges = [];\n            if (!quitEarlyArr[0]) {\n                rightChanges = this.ComputeDiffRecursive(midOriginal + 1, originalEnd, midModified + 1, modifiedEnd, quitEarlyArr);\n            }\n            else {\n                // We didn't have time to finish the first half, so we don't have time to compute this half.\n                // Consider the entire rest of the sequence different.\n                rightChanges = [\n                    new DiffChange(midOriginal + 1, originalEnd - (midOriginal + 1) + 1, midModified + 1, modifiedEnd - (midModified + 1) + 1)\n                ];\n            }\n            return this.ConcatenateChanges(leftChanges, rightChanges);\n        }\n        // If we hit here, we quit early, and so can't return anything meaningful\n        return [\n            new DiffChange(originalStart, originalEnd - originalStart + 1, modifiedStart, modifiedEnd - modifiedStart + 1)\n        ];\n    }\n    WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset, diagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset, forwardPoints, reversePoints, originalIndex, originalEnd, midOriginalArr, modifiedIndex, modifiedEnd, midModifiedArr, deltaIsEven, quitEarlyArr) {\n        let forwardChanges = null;\n        let reverseChanges = null;\n        // First, walk backward through the forward diagonals history\n        let changeHelper = new DiffChangeHelper();\n        let diagonalMin = diagonalForwardStart;\n        let diagonalMax = diagonalForwardEnd;\n        let diagonalRelative = (midOriginalArr[0] - midModifiedArr[0]) - diagonalForwardOffset;\n        let lastOriginalIndex = -1073741824 /* Constants.MIN_SAFE_SMALL_INTEGER */;\n        let historyIndex = this.m_forwardHistory.length - 1;\n        do {\n            // Get the diagonal index from the relative diagonal number\n            const diagonal = diagonalRelative + diagonalForwardBase;\n            // Figure out where we came from\n            if (diagonal === diagonalMin || (diagonal < diagonalMax && forwardPoints[diagonal - 1] < forwardPoints[diagonal + 1])) {\n                // Vertical line (the element is an insert)\n                originalIndex = forwardPoints[diagonal + 1];\n                modifiedIndex = originalIndex - diagonalRelative - diagonalForwardOffset;\n                if (originalIndex < lastOriginalIndex) {\n                    changeHelper.MarkNextChange();\n                }\n                lastOriginalIndex = originalIndex;\n                changeHelper.AddModifiedElement(originalIndex + 1, modifiedIndex);\n                diagonalRelative = (diagonal + 1) - diagonalForwardBase; //Setup for the next iteration\n            }\n            else {\n                // Horizontal line (the element is a deletion)\n                originalIndex = forwardPoints[diagonal - 1] + 1;\n                modifiedIndex = originalIndex - diagonalRelative - diagonalForwardOffset;\n                if (originalIndex < lastOriginalIndex) {\n                    changeHelper.MarkNextChange();\n                }\n                lastOriginalIndex = originalIndex - 1;\n                changeHelper.AddOriginalElement(originalIndex, modifiedIndex + 1);\n                diagonalRelative = (diagonal - 1) - diagonalForwardBase; //Setup for the next iteration\n            }\n            if (historyIndex >= 0) {\n                forwardPoints = this.m_forwardHistory[historyIndex];\n                diagonalForwardBase = forwardPoints[0]; //We stored this in the first spot\n                diagonalMin = 1;\n                diagonalMax = forwardPoints.length - 1;\n            }\n        } while (--historyIndex >= -1);\n        // Ironically, we get the forward changes as the reverse of the\n        // order we added them since we technically added them backwards\n        forwardChanges = changeHelper.getReverseChanges();\n        if (quitEarlyArr[0]) {\n            // TODO: Calculate a partial from the reverse diagonals.\n            //       For now, just assume everything after the midOriginal/midModified point is a diff\n            let originalStartPoint = midOriginalArr[0] + 1;\n            let modifiedStartPoint = midModifiedArr[0] + 1;\n            if (forwardChanges !== null && forwardChanges.length > 0) {\n                const lastForwardChange = forwardChanges[forwardChanges.length - 1];\n                originalStartPoint = Math.max(originalStartPoint, lastForwardChange.getOriginalEnd());\n                modifiedStartPoint = Math.max(modifiedStartPoint, lastForwardChange.getModifiedEnd());\n            }\n            reverseChanges = [\n                new DiffChange(originalStartPoint, originalEnd - originalStartPoint + 1, modifiedStartPoint, modifiedEnd - modifiedStartPoint + 1)\n            ];\n        }\n        else {\n            // Now walk backward through the reverse diagonals history\n            changeHelper = new DiffChangeHelper();\n            diagonalMin = diagonalReverseStart;\n            diagonalMax = diagonalReverseEnd;\n            diagonalRelative = (midOriginalArr[0] - midModifiedArr[0]) - diagonalReverseOffset;\n            lastOriginalIndex = 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */;\n            historyIndex = (deltaIsEven) ? this.m_reverseHistory.length - 1 : this.m_reverseHistory.length - 2;\n            do {\n                // Get the diagonal index from the relative diagonal number\n                const diagonal = diagonalRelative + diagonalReverseBase;\n                // Figure out where we came from\n                if (diagonal === diagonalMin || (diagonal < diagonalMax && reversePoints[diagonal - 1] >= reversePoints[diagonal + 1])) {\n                    // Horizontal line (the element is a deletion))\n                    originalIndex = reversePoints[diagonal + 1] - 1;\n                    modifiedIndex = originalIndex - diagonalRelative - diagonalReverseOffset;\n                    if (originalIndex > lastOriginalIndex) {\n                        changeHelper.MarkNextChange();\n                    }\n                    lastOriginalIndex = originalIndex + 1;\n                    changeHelper.AddOriginalElement(originalIndex + 1, modifiedIndex + 1);\n                    diagonalRelative = (diagonal + 1) - diagonalReverseBase; //Setup for the next iteration\n                }\n                else {\n                    // Vertical line (the element is an insertion)\n                    originalIndex = reversePoints[diagonal - 1];\n                    modifiedIndex = originalIndex - diagonalRelative - diagonalReverseOffset;\n                    if (originalIndex > lastOriginalIndex) {\n                        changeHelper.MarkNextChange();\n                    }\n                    lastOriginalIndex = originalIndex;\n                    changeHelper.AddModifiedElement(originalIndex + 1, modifiedIndex + 1);\n                    diagonalRelative = (diagonal - 1) - diagonalReverseBase; //Setup for the next iteration\n                }\n                if (historyIndex >= 0) {\n                    reversePoints = this.m_reverseHistory[historyIndex];\n                    diagonalReverseBase = reversePoints[0]; //We stored this in the first spot\n                    diagonalMin = 1;\n                    diagonalMax = reversePoints.length - 1;\n                }\n            } while (--historyIndex >= -1);\n            // There are cases where the reverse history will find diffs that\n            // are correct, but not intuitive, so we need shift them.\n            reverseChanges = changeHelper.getChanges();\n        }\n        return this.ConcatenateChanges(forwardChanges, reverseChanges);\n    }\n    /**\n     * Given the range to compute the diff on, this method finds the point:\n     * (midOriginal, midModified)\n     * that exists in the middle of the LCS of the two sequences and\n     * is the point at which the LCS problem may be broken down recursively.\n     * This method will try to keep the LCS trace in memory. If the LCS recursion\n     * point is calculated and the full trace is available in memory, then this method\n     * will return the change list.\n     * @param originalStart The start bound of the original sequence range\n     * @param originalEnd The end bound of the original sequence range\n     * @param modifiedStart The start bound of the modified sequence range\n     * @param modifiedEnd The end bound of the modified sequence range\n     * @param midOriginal The middle point of the original sequence range\n     * @param midModified The middle point of the modified sequence range\n     * @returns The diff changes, if available, otherwise null\n     */\n    ComputeRecursionPoint(originalStart, originalEnd, modifiedStart, modifiedEnd, midOriginalArr, midModifiedArr, quitEarlyArr) {\n        let originalIndex = 0, modifiedIndex = 0;\n        let diagonalForwardStart = 0, diagonalForwardEnd = 0;\n        let diagonalReverseStart = 0, diagonalReverseEnd = 0;\n        // To traverse the edit graph and produce the proper LCS, our actual\n        // start position is just outside the given boundary\n        originalStart--;\n        modifiedStart--;\n        // We set these up to make the compiler happy, but they will\n        // be replaced before we return with the actual recursion point\n        midOriginalArr[0] = 0;\n        midModifiedArr[0] = 0;\n        // Clear out the history\n        this.m_forwardHistory = [];\n        this.m_reverseHistory = [];\n        // Each cell in the two arrays corresponds to a diagonal in the edit graph.\n        // The integer value in the cell represents the originalIndex of the furthest\n        // reaching point found so far that ends in that diagonal.\n        // The modifiedIndex can be computed mathematically from the originalIndex and the diagonal number.\n        const maxDifferences = (originalEnd - originalStart) + (modifiedEnd - modifiedStart);\n        const numDiagonals = maxDifferences + 1;\n        const forwardPoints = new Int32Array(numDiagonals);\n        const reversePoints = new Int32Array(numDiagonals);\n        // diagonalForwardBase: Index into forwardPoints of the diagonal which passes through (originalStart, modifiedStart)\n        // diagonalReverseBase: Index into reversePoints of the diagonal which passes through (originalEnd, modifiedEnd)\n        const diagonalForwardBase = (modifiedEnd - modifiedStart);\n        const diagonalReverseBase = (originalEnd - originalStart);\n        // diagonalForwardOffset: Geometric offset which allows modifiedIndex to be computed from originalIndex and the\n        //    diagonal number (relative to diagonalForwardBase)\n        // diagonalReverseOffset: Geometric offset which allows modifiedIndex to be computed from originalIndex and the\n        //    diagonal number (relative to diagonalReverseBase)\n        const diagonalForwardOffset = (originalStart - modifiedStart);\n        const diagonalReverseOffset = (originalEnd - modifiedEnd);\n        // delta: The difference between the end diagonal and the start diagonal. This is used to relate diagonal numbers\n        //   relative to the start diagonal with diagonal numbers relative to the end diagonal.\n        // The Even/Oddn-ness of this delta is important for determining when we should check for overlap\n        const delta = diagonalReverseBase - diagonalForwardBase;\n        const deltaIsEven = (delta % 2 === 0);\n        // Here we set up the start and end points as the furthest points found so far\n        // in both the forward and reverse directions, respectively\n        forwardPoints[diagonalForwardBase] = originalStart;\n        reversePoints[diagonalReverseBase] = originalEnd;\n        // Remember if we quit early, and thus need to do a best-effort result instead of a real result.\n        quitEarlyArr[0] = false;\n        // A couple of points:\n        // --With this method, we iterate on the number of differences between the two sequences.\n        //   The more differences there actually are, the longer this will take.\n        // --Also, as the number of differences increases, we have to search on diagonals further\n        //   away from the reference diagonal (which is diagonalForwardBase for forward, diagonalReverseBase for reverse).\n        // --We extend on even diagonals (relative to the reference diagonal) only when numDifferences\n        //   is even and odd diagonals only when numDifferences is odd.\n        for (let numDifferences = 1; numDifferences <= (maxDifferences / 2) + 1; numDifferences++) {\n            let furthestOriginalIndex = 0;\n            let furthestModifiedIndex = 0;\n            // Run the algorithm in the forward direction\n            diagonalForwardStart = this.ClipDiagonalBound(diagonalForwardBase - numDifferences, numDifferences, diagonalForwardBase, numDiagonals);\n            diagonalForwardEnd = this.ClipDiagonalBound(diagonalForwardBase + numDifferences, numDifferences, diagonalForwardBase, numDiagonals);\n            for (let diagonal = diagonalForwardStart; diagonal <= diagonalForwardEnd; diagonal += 2) {\n                // STEP 1: We extend the furthest reaching point in the present diagonal\n                // by looking at the diagonals above and below and picking the one whose point\n                // is further away from the start point (originalStart, modifiedStart)\n                if (diagonal === diagonalForwardStart || (diagonal < diagonalForwardEnd && forwardPoints[diagonal - 1] < forwardPoints[diagonal + 1])) {\n                    originalIndex = forwardPoints[diagonal + 1];\n                }\n                else {\n                    originalIndex = forwardPoints[diagonal - 1] + 1;\n                }\n                modifiedIndex = originalIndex - (diagonal - diagonalForwardBase) - diagonalForwardOffset;\n                // Save the current originalIndex so we can test for false overlap in step 3\n                const tempOriginalIndex = originalIndex;\n                // STEP 2: We can continue to extend the furthest reaching point in the present diagonal\n                // so long as the elements are equal.\n                while (originalIndex < originalEnd && modifiedIndex < modifiedEnd && this.ElementsAreEqual(originalIndex + 1, modifiedIndex + 1)) {\n                    originalIndex++;\n                    modifiedIndex++;\n                }\n                forwardPoints[diagonal] = originalIndex;\n                if (originalIndex + modifiedIndex > furthestOriginalIndex + furthestModifiedIndex) {\n                    furthestOriginalIndex = originalIndex;\n                    furthestModifiedIndex = modifiedIndex;\n                }\n                // STEP 3: If delta is odd (overlap first happens on forward when delta is odd)\n                // and diagonal is in the range of reverse diagonals computed for numDifferences-1\n                // (the previous iteration; we haven't computed reverse diagonals for numDifferences yet)\n                // then check for overlap.\n                if (!deltaIsEven && Math.abs(diagonal - diagonalReverseBase) <= (numDifferences - 1)) {\n                    if (originalIndex >= reversePoints[diagonal]) {\n                        midOriginalArr[0] = originalIndex;\n                        midModifiedArr[0] = modifiedIndex;\n                        if (tempOriginalIndex <= reversePoints[diagonal] && 1447 /* LocalConstants.MaxDifferencesHistory */ > 0 && numDifferences <= (1447 /* LocalConstants.MaxDifferencesHistory */ + 1)) {\n                            // BINGO! We overlapped, and we have the full trace in memory!\n                            return this.WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset, diagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset, forwardPoints, reversePoints, originalIndex, originalEnd, midOriginalArr, modifiedIndex, modifiedEnd, midModifiedArr, deltaIsEven, quitEarlyArr);\n                        }\n                        else {\n                            // Either false overlap, or we didn't have enough memory for the full trace\n                            // Just return the recursion point\n                            return null;\n                        }\n                    }\n                }\n            }\n            // Check to see if we should be quitting early, before moving on to the next iteration.\n            const matchLengthOfLongest = ((furthestOriginalIndex - originalStart) + (furthestModifiedIndex - modifiedStart) - numDifferences) / 2;\n            if (this.ContinueProcessingPredicate !== null && !this.ContinueProcessingPredicate(furthestOriginalIndex, matchLengthOfLongest)) {\n                // We can't finish, so skip ahead to generating a result from what we have.\n                quitEarlyArr[0] = true;\n                // Use the furthest distance we got in the forward direction.\n                midOriginalArr[0] = furthestOriginalIndex;\n                midModifiedArr[0] = furthestModifiedIndex;\n                if (matchLengthOfLongest > 0 && 1447 /* LocalConstants.MaxDifferencesHistory */ > 0 && numDifferences <= (1447 /* LocalConstants.MaxDifferencesHistory */ + 1)) {\n                    // Enough of the history is in memory to walk it backwards\n                    return this.WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset, diagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset, forwardPoints, reversePoints, originalIndex, originalEnd, midOriginalArr, modifiedIndex, modifiedEnd, midModifiedArr, deltaIsEven, quitEarlyArr);\n                }\n                else {\n                    // We didn't actually remember enough of the history.\n                    //Since we are quitting the diff early, we need to shift back the originalStart and modified start\n                    //back into the boundary limits since we decremented their value above beyond the boundary limit.\n                    originalStart++;\n                    modifiedStart++;\n                    return [\n                        new DiffChange(originalStart, originalEnd - originalStart + 1, modifiedStart, modifiedEnd - modifiedStart + 1)\n                    ];\n                }\n            }\n            // Run the algorithm in the reverse direction\n            diagonalReverseStart = this.ClipDiagonalBound(diagonalReverseBase - numDifferences, numDifferences, diagonalReverseBase, numDiagonals);\n            diagonalReverseEnd = this.ClipDiagonalBound(diagonalReverseBase + numDifferences, numDifferences, diagonalReverseBase, numDiagonals);\n            for (let diagonal = diagonalReverseStart; diagonal <= diagonalReverseEnd; diagonal += 2) {\n                // STEP 1: We extend the furthest reaching point in the present diagonal\n                // by looking at the diagonals above and below and picking the one whose point\n                // is further away from the start point (originalEnd, modifiedEnd)\n                if (diagonal === diagonalReverseStart || (diagonal < diagonalReverseEnd && reversePoints[diagonal - 1] >= reversePoints[diagonal + 1])) {\n                    originalIndex = reversePoints[diagonal + 1] - 1;\n                }\n                else {\n                    originalIndex = reversePoints[diagonal - 1];\n                }\n                modifiedIndex = originalIndex - (diagonal - diagonalReverseBase) - diagonalReverseOffset;\n                // Save the current originalIndex so we can test for false overlap\n                const tempOriginalIndex = originalIndex;\n                // STEP 2: We can continue to extend the furthest reaching point in the present diagonal\n                // as long as the elements are equal.\n                while (originalIndex > originalStart && modifiedIndex > modifiedStart && this.ElementsAreEqual(originalIndex, modifiedIndex)) {\n                    originalIndex--;\n                    modifiedIndex--;\n                }\n                reversePoints[diagonal] = originalIndex;\n                // STEP 4: If delta is even (overlap first happens on reverse when delta is even)\n                // and diagonal is in the range of forward diagonals computed for numDifferences\n                // then check for overlap.\n                if (deltaIsEven && Math.abs(diagonal - diagonalForwardBase) <= numDifferences) {\n                    if (originalIndex <= forwardPoints[diagonal]) {\n                        midOriginalArr[0] = originalIndex;\n                        midModifiedArr[0] = modifiedIndex;\n                        if (tempOriginalIndex >= forwardPoints[diagonal] && 1447 /* LocalConstants.MaxDifferencesHistory */ > 0 && numDifferences <= (1447 /* LocalConstants.MaxDifferencesHistory */ + 1)) {\n                            // BINGO! We overlapped, and we have the full trace in memory!\n                            return this.WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset, diagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset, forwardPoints, reversePoints, originalIndex, originalEnd, midOriginalArr, modifiedIndex, modifiedEnd, midModifiedArr, deltaIsEven, quitEarlyArr);\n                        }\n                        else {\n                            // Either false overlap, or we didn't have enough memory for the full trace\n                            // Just return the recursion point\n                            return null;\n                        }\n                    }\n                }\n            }\n            // Save current vectors to history before the next iteration\n            if (numDifferences <= 1447 /* LocalConstants.MaxDifferencesHistory */) {\n                // We are allocating space for one extra int, which we fill with\n                // the index of the diagonal base index\n                let temp = new Int32Array(diagonalForwardEnd - diagonalForwardStart + 2);\n                temp[0] = diagonalForwardBase - diagonalForwardStart + 1;\n                MyArray.Copy2(forwardPoints, diagonalForwardStart, temp, 1, diagonalForwardEnd - diagonalForwardStart + 1);\n                this.m_forwardHistory.push(temp);\n                temp = new Int32Array(diagonalReverseEnd - diagonalReverseStart + 2);\n                temp[0] = diagonalReverseBase - diagonalReverseStart + 1;\n                MyArray.Copy2(reversePoints, diagonalReverseStart, temp, 1, diagonalReverseEnd - diagonalReverseStart + 1);\n                this.m_reverseHistory.push(temp);\n            }\n        }\n        // If we got here, then we have the full trace in history. We just have to convert it to a change list\n        // NOTE: This part is a bit messy\n        return this.WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset, diagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset, forwardPoints, reversePoints, originalIndex, originalEnd, midOriginalArr, modifiedIndex, modifiedEnd, midModifiedArr, deltaIsEven, quitEarlyArr);\n    }\n    /**\n     * Shifts the given changes to provide a more intuitive diff.\n     * While the first element in a diff matches the first element after the diff,\n     * we shift the diff down.\n     *\n     * @param changes The list of changes to shift\n     * @returns The shifted changes\n     */\n    PrettifyChanges(changes) {\n        // Shift all the changes down first\n        for (let i = 0; i < changes.length; i++) {\n            const change = changes[i];\n            const originalStop = (i < changes.length - 1) ? changes[i + 1].originalStart : this._originalElementsOrHash.length;\n            const modifiedStop = (i < changes.length - 1) ? changes[i + 1].modifiedStart : this._modifiedElementsOrHash.length;\n            const checkOriginal = change.originalLength > 0;\n            const checkModified = change.modifiedLength > 0;\n            while (change.originalStart + change.originalLength < originalStop\n                && change.modifiedStart + change.modifiedLength < modifiedStop\n                && (!checkOriginal || this.OriginalElementsAreEqual(change.originalStart, change.originalStart + change.originalLength))\n                && (!checkModified || this.ModifiedElementsAreEqual(change.modifiedStart, change.modifiedStart + change.modifiedLength))) {\n                const startStrictEqual = this.ElementsAreStrictEqual(change.originalStart, change.modifiedStart);\n                const endStrictEqual = this.ElementsAreStrictEqual(change.originalStart + change.originalLength, change.modifiedStart + change.modifiedLength);\n                if (endStrictEqual && !startStrictEqual) {\n                    // moving the change down would create an equal change, but the elements are not strict equal\n                    break;\n                }\n                change.originalStart++;\n                change.modifiedStart++;\n            }\n            const mergedChangeArr = [null];\n            if (i < changes.length - 1 && this.ChangesOverlap(changes[i], changes[i + 1], mergedChangeArr)) {\n                changes[i] = mergedChangeArr[0];\n                changes.splice(i + 1, 1);\n                i--;\n                continue;\n            }\n        }\n        // Shift changes back up until we hit empty or whitespace-only lines\n        for (let i = changes.length - 1; i >= 0; i--) {\n            const change = changes[i];\n            let originalStop = 0;\n            let modifiedStop = 0;\n            if (i > 0) {\n                const prevChange = changes[i - 1];\n                originalStop = prevChange.originalStart + prevChange.originalLength;\n                modifiedStop = prevChange.modifiedStart + prevChange.modifiedLength;\n            }\n            const checkOriginal = change.originalLength > 0;\n            const checkModified = change.modifiedLength > 0;\n            let bestDelta = 0;\n            let bestScore = this._boundaryScore(change.originalStart, change.originalLength, change.modifiedStart, change.modifiedLength);\n            for (let delta = 1;; delta++) {\n                const originalStart = change.originalStart - delta;\n                const modifiedStart = change.modifiedStart - delta;\n                if (originalStart < originalStop || modifiedStart < modifiedStop) {\n                    break;\n                }\n                if (checkOriginal && !this.OriginalElementsAreEqual(originalStart, originalStart + change.originalLength)) {\n                    break;\n                }\n                if (checkModified && !this.ModifiedElementsAreEqual(modifiedStart, modifiedStart + change.modifiedLength)) {\n                    break;\n                }\n                const touchingPreviousChange = (originalStart === originalStop && modifiedStart === modifiedStop);\n                const score = ((touchingPreviousChange ? 5 : 0)\n                    + this._boundaryScore(originalStart, change.originalLength, modifiedStart, change.modifiedLength));\n                if (score > bestScore) {\n                    bestScore = score;\n                    bestDelta = delta;\n                }\n            }\n            change.originalStart -= bestDelta;\n            change.modifiedStart -= bestDelta;\n            const mergedChangeArr = [null];\n            if (i > 0 && this.ChangesOverlap(changes[i - 1], changes[i], mergedChangeArr)) {\n                changes[i - 1] = mergedChangeArr[0];\n                changes.splice(i, 1);\n                i++;\n                continue;\n            }\n        }\n        // There could be multiple longest common substrings.\n        // Give preference to the ones containing longer lines\n        if (this._hasStrings) {\n            for (let i = 1, len = changes.length; i < len; i++) {\n                const aChange = changes[i - 1];\n                const bChange = changes[i];\n                const matchedLength = bChange.originalStart - aChange.originalStart - aChange.originalLength;\n                const aOriginalStart = aChange.originalStart;\n                const bOriginalEnd = bChange.originalStart + bChange.originalLength;\n                const abOriginalLength = bOriginalEnd - aOriginalStart;\n                const aModifiedStart = aChange.modifiedStart;\n                const bModifiedEnd = bChange.modifiedStart + bChange.modifiedLength;\n                const abModifiedLength = bModifiedEnd - aModifiedStart;\n                // Avoid wasting a lot of time with these searches\n                if (matchedLength < 5 && abOriginalLength < 20 && abModifiedLength < 20) {\n                    const t = this._findBetterContiguousSequence(aOriginalStart, abOriginalLength, aModifiedStart, abModifiedLength, matchedLength);\n                    if (t) {\n                        const [originalMatchStart, modifiedMatchStart] = t;\n                        if (originalMatchStart !== aChange.originalStart + aChange.originalLength || modifiedMatchStart !== aChange.modifiedStart + aChange.modifiedLength) {\n                            // switch to another sequence that has a better score\n                            aChange.originalLength = originalMatchStart - aChange.originalStart;\n                            aChange.modifiedLength = modifiedMatchStart - aChange.modifiedStart;\n                            bChange.originalStart = originalMatchStart + matchedLength;\n                            bChange.modifiedStart = modifiedMatchStart + matchedLength;\n                            bChange.originalLength = bOriginalEnd - bChange.originalStart;\n                            bChange.modifiedLength = bModifiedEnd - bChange.modifiedStart;\n                        }\n                    }\n                }\n            }\n        }\n        return changes;\n    }\n    _findBetterContiguousSequence(originalStart, originalLength, modifiedStart, modifiedLength, desiredLength) {\n        if (originalLength < desiredLength || modifiedLength < desiredLength) {\n            return null;\n        }\n        const originalMax = originalStart + originalLength - desiredLength + 1;\n        const modifiedMax = modifiedStart + modifiedLength - desiredLength + 1;\n        let bestScore = 0;\n        let bestOriginalStart = 0;\n        let bestModifiedStart = 0;\n        for (let i = originalStart; i < originalMax; i++) {\n            for (let j = modifiedStart; j < modifiedMax; j++) {\n                const score = this._contiguousSequenceScore(i, j, desiredLength);\n                if (score > 0 && score > bestScore) {\n                    bestScore = score;\n                    bestOriginalStart = i;\n                    bestModifiedStart = j;\n                }\n            }\n        }\n        if (bestScore > 0) {\n            return [bestOriginalStart, bestModifiedStart];\n        }\n        return null;\n    }\n    _contiguousSequenceScore(originalStart, modifiedStart, length) {\n        let score = 0;\n        for (let l = 0; l < length; l++) {\n            if (!this.ElementsAreEqual(originalStart + l, modifiedStart + l)) {\n                return 0;\n            }\n            score += this._originalStringElements[originalStart + l].length;\n        }\n        return score;\n    }\n    _OriginalIsBoundary(index) {\n        if (index <= 0 || index >= this._originalElementsOrHash.length - 1) {\n            return true;\n        }\n        return (this._hasStrings && /^\\s*$/.test(this._originalStringElements[index]));\n    }\n    _OriginalRegionIsBoundary(originalStart, originalLength) {\n        if (this._OriginalIsBoundary(originalStart) || this._OriginalIsBoundary(originalStart - 1)) {\n            return true;\n        }\n        if (originalLength > 0) {\n            const originalEnd = originalStart + originalLength;\n            if (this._OriginalIsBoundary(originalEnd - 1) || this._OriginalIsBoundary(originalEnd)) {\n                return true;\n            }\n        }\n        return false;\n    }\n    _ModifiedIsBoundary(index) {\n        if (index <= 0 || index >= this._modifiedElementsOrHash.length - 1) {\n            return true;\n        }\n        return (this._hasStrings && /^\\s*$/.test(this._modifiedStringElements[index]));\n    }\n    _ModifiedRegionIsBoundary(modifiedStart, modifiedLength) {\n        if (this._ModifiedIsBoundary(modifiedStart) || this._ModifiedIsBoundary(modifiedStart - 1)) {\n            return true;\n        }\n        if (modifiedLength > 0) {\n            const modifiedEnd = modifiedStart + modifiedLength;\n            if (this._ModifiedIsBoundary(modifiedEnd - 1) || this._ModifiedIsBoundary(modifiedEnd)) {\n                return true;\n            }\n        }\n        return false;\n    }\n    _boundaryScore(originalStart, originalLength, modifiedStart, modifiedLength) {\n        const originalScore = (this._OriginalRegionIsBoundary(originalStart, originalLength) ? 1 : 0);\n        const modifiedScore = (this._ModifiedRegionIsBoundary(modifiedStart, modifiedLength) ? 1 : 0);\n        return (originalScore + modifiedScore);\n    }\n    /**\n     * Concatenates the two input DiffChange lists and returns the resulting\n     * list.\n     * @param The left changes\n     * @param The right changes\n     * @returns The concatenated list\n     */\n    ConcatenateChanges(left, right) {\n        const mergedChangeArr = [];\n        if (left.length === 0 || right.length === 0) {\n            return (right.length > 0) ? right : left;\n        }\n        else if (this.ChangesOverlap(left[left.length - 1], right[0], mergedChangeArr)) {\n            // Since we break the problem down recursively, it is possible that we\n            // might recurse in the middle of a change thereby splitting it into\n            // two changes. Here in the combining stage, we detect and fuse those\n            // changes back together\n            const result = new Array(left.length + right.length - 1);\n            MyArray.Copy(left, 0, result, 0, left.length - 1);\n            result[left.length - 1] = mergedChangeArr[0];\n            MyArray.Copy(right, 1, result, left.length, right.length - 1);\n            return result;\n        }\n        else {\n            const result = new Array(left.length + right.length);\n            MyArray.Copy(left, 0, result, 0, left.length);\n            MyArray.Copy(right, 0, result, left.length, right.length);\n            return result;\n        }\n    }\n    /**\n     * Returns true if the two changes overlap and can be merged into a single\n     * change\n     * @param left The left change\n     * @param right The right change\n     * @param mergedChange The merged change if the two overlap, null otherwise\n     * @returns True if the two changes overlap\n     */\n    ChangesOverlap(left, right, mergedChangeArr) {\n        Debug.Assert(left.originalStart <= right.originalStart, 'Left change is not less than or equal to right change');\n        Debug.Assert(left.modifiedStart <= right.modifiedStart, 'Left change is not less than or equal to right change');\n        if (left.originalStart + left.originalLength >= right.originalStart || left.modifiedStart + left.modifiedLength >= right.modifiedStart) {\n            const originalStart = left.originalStart;\n            let originalLength = left.originalLength;\n            const modifiedStart = left.modifiedStart;\n            let modifiedLength = left.modifiedLength;\n            if (left.originalStart + left.originalLength >= right.originalStart) {\n                originalLength = right.originalStart + right.originalLength - left.originalStart;\n            }\n            if (left.modifiedStart + left.modifiedLength >= right.modifiedStart) {\n                modifiedLength = right.modifiedStart + right.modifiedLength - left.modifiedStart;\n            }\n            mergedChangeArr[0] = new DiffChange(originalStart, originalLength, modifiedStart, modifiedLength);\n            return true;\n        }\n        else {\n            mergedChangeArr[0] = null;\n            return false;\n        }\n    }\n    /**\n     * Helper method used to clip a diagonal index to the range of valid\n     * diagonals. This also decides whether or not the diagonal index,\n     * if it exceeds the boundary, should be clipped to the boundary or clipped\n     * one inside the boundary depending on the Even/Odd status of the boundary\n     * and numDifferences.\n     * @param diagonal The index of the diagonal to clip.\n     * @param numDifferences The current number of differences being iterated upon.\n     * @param diagonalBaseIndex The base reference diagonal.\n     * @param numDiagonals The total number of diagonals.\n     * @returns The clipped diagonal index.\n     */\n    ClipDiagonalBound(diagonal, numDifferences, diagonalBaseIndex, numDiagonals) {\n        if (diagonal >= 0 && diagonal < numDiagonals) {\n            // Nothing to clip, its in range\n            return diagonal;\n        }\n        // diagonalsBelow: The number of diagonals below the reference diagonal\n        // diagonalsAbove: The number of diagonals above the reference diagonal\n        const diagonalsBelow = diagonalBaseIndex;\n        const diagonalsAbove = numDiagonals - diagonalBaseIndex - 1;\n        const diffEven = (numDifferences % 2 === 0);\n        if (diagonal < 0) {\n            const lowerBoundEven = (diagonalsBelow % 2 === 0);\n            return (diffEven === lowerBoundEven) ? 0 : 1;\n        }\n        else {\n            const upperBoundEven = (diagonalsAbove % 2 === 0);\n            return (diffEven === upperBoundEven) ? numDiagonals - 1 : numDiagonals - 2;\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/diff/diffChange.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * Represents information about a specific difference between two sequences.\n */\nexport class DiffChange {\n    /**\n     * Constructs a new DiffChange with the given sequence information\n     * and content.\n     */\n    constructor(originalStart, originalLength, modifiedStart, modifiedLength) {\n        //Debug.Assert(originalLength > 0 || modifiedLength > 0, \"originalLength and modifiedLength cannot both be <= 0\");\n        this.originalStart = originalStart;\n        this.originalLength = originalLength;\n        this.modifiedStart = modifiedStart;\n        this.modifiedLength = modifiedLength;\n    }\n    /**\n     * The end point (exclusive) of the change in the original sequence.\n     */\n    getOriginalEnd() {\n        return this.originalStart + this.originalLength;\n    }\n    /**\n     * The end point (exclusive) of the change in the modified sequence.\n     */\n    getModifiedEnd() {\n        return this.modifiedStart + this.modifiedLength;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/equals.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as arrays from './arrays.js';\nexport const strictEquals = (a, b) => a === b;\n/**\n * Checks if the items of two arrays are equal.\n * By default, strict equality is used to compare elements, but a custom equality comparer can be provided.\n */\nexport function itemsEquals(itemEquals = strictEquals) {\n    return (a, b) => arrays.equals(a, b, itemEquals);\n}\n/**\n * Uses `item.equals(other)` to determine equality.\n */\nexport function itemEquals() {\n    return (a, b) => a.equals(b);\n}\nexport function equalsIfDefined(v1, v2, equals) {\n    if (!v1 || !v2) {\n        return v1 === v2;\n    }\n    return equals(v1, v2);\n}\nconst objIds = new WeakMap();\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/errorMessage.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as arrays from './arrays.js';\nimport * as types from './types.js';\nimport * as nls from '../../nls.js';\nfunction exceptionToErrorMessage(exception, verbose) {\n    if (verbose && (exception.stack || exception.stacktrace)) {\n        return nls.localize('stackTrace.format', \"{0}: {1}\", detectSystemErrorMessage(exception), stackToString(exception.stack) || stackToString(exception.stacktrace));\n    }\n    return detectSystemErrorMessage(exception);\n}\nfunction stackToString(stack) {\n    if (Array.isArray(stack)) {\n        return stack.join('\\n');\n    }\n    return stack;\n}\nfunction detectSystemErrorMessage(exception) {\n    // Custom node.js error from us\n    if (exception.code === 'ERR_UNC_HOST_NOT_ALLOWED') {\n        return `${exception.message}. Please update the 'security.allowedUNCHosts' setting if you want to allow this host.`;\n    }\n    // See https://nodejs.org/api/errors.html#errors_class_system_error\n    if (typeof exception.code === 'string' && typeof exception.errno === 'number' && typeof exception.syscall === 'string') {\n        return nls.localize('nodeExceptionMessage', \"A system error occurred ({0})\", exception.message);\n    }\n    return exception.message || nls.localize('error.defaultMessage', \"An unknown error occurred. Please consult the log for more details.\");\n}\n/**\n * Tries to generate a human readable error message out of the error. If the verbose parameter\n * is set to true, the error message will include stacktrace details if provided.\n *\n * @returns A string containing the error message.\n */\nexport function toErrorMessage(error = null, verbose = false) {\n    if (!error) {\n        return nls.localize('error.defaultMessage', \"An unknown error occurred. Please consult the log for more details.\");\n    }\n    if (Array.isArray(error)) {\n        const errors = arrays.coalesce(error);\n        const msg = toErrorMessage(errors[0], verbose);\n        if (errors.length > 1) {\n            return nls.localize('error.moreErrors', \"{0} ({1} errors in total)\", msg, errors.length);\n        }\n        return msg;\n    }\n    if (types.isString(error)) {\n        return error;\n    }\n    if (error.detail) {\n        const detail = error.detail;\n        if (detail.error) {\n            return exceptionToErrorMessage(detail.error, verbose);\n        }\n        if (detail.exception) {\n            return exceptionToErrorMessage(detail.exception, verbose);\n        }\n    }\n    if (error.stack) {\n        return exceptionToErrorMessage(error, verbose);\n    }\n    if (error.message) {\n        return error.message;\n    }\n    return nls.localize('error.defaultMessage', \"An unknown error occurred. Please consult the log for more details.\");\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/errors.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n// Avoid circular dependency on EventEmitter by implementing a subset of the interface.\nexport class ErrorHandler {\n    constructor() {\n        this.listeners = [];\n        this.unexpectedErrorHandler = function (e) {\n            setTimeout(() => {\n                if (e.stack) {\n                    if (ErrorNoTelemetry.isErrorNoTelemetry(e)) {\n                        throw new ErrorNoTelemetry(e.message + '\\n\\n' + e.stack);\n                    }\n                    throw new Error(e.message + '\\n\\n' + e.stack);\n                }\n                throw e;\n            }, 0);\n        };\n    }\n    emit(e) {\n        this.listeners.forEach((listener) => {\n            listener(e);\n        });\n    }\n    onUnexpectedError(e) {\n        this.unexpectedErrorHandler(e);\n        this.emit(e);\n    }\n    // For external errors, we don't want the listeners to be called\n    onUnexpectedExternalError(e) {\n        this.unexpectedErrorHandler(e);\n    }\n}\nexport const errorHandler = new ErrorHandler();\nexport function onUnexpectedError(e) {\n    // ignore errors from cancelled promises\n    if (!isCancellationError(e)) {\n        errorHandler.onUnexpectedError(e);\n    }\n    return undefined;\n}\nexport function onUnexpectedExternalError(e) {\n    // ignore errors from cancelled promises\n    if (!isCancellationError(e)) {\n        errorHandler.onUnexpectedExternalError(e);\n    }\n    return undefined;\n}\nexport function transformErrorForSerialization(error) {\n    if (error instanceof Error) {\n        const { name, message } = error;\n        const stack = error.stacktrace || error.stack;\n        return {\n            $isError: true,\n            name,\n            message,\n            stack,\n            noTelemetry: ErrorNoTelemetry.isErrorNoTelemetry(error)\n        };\n    }\n    // return as is\n    return error;\n}\nconst canceledName = 'Canceled';\n/**\n * Checks if the given error is a promise in canceled state\n */\nexport function isCancellationError(error) {\n    if (error instanceof CancellationError) {\n        return true;\n    }\n    return error instanceof Error && error.name === canceledName && error.message === canceledName;\n}\n// !!!IMPORTANT!!!\n// Do NOT change this class because it is also used as an API-type.\nexport class CancellationError extends Error {\n    constructor() {\n        super(canceledName);\n        this.name = this.message;\n    }\n}\n/**\n * @deprecated use {@link CancellationError `new CancellationError()`} instead\n */\nexport function canceled() {\n    const error = new Error(canceledName);\n    error.name = error.message;\n    return error;\n}\nexport function illegalArgument(name) {\n    if (name) {\n        return new Error(`Illegal argument: ${name}`);\n    }\n    else {\n        return new Error('Illegal argument');\n    }\n}\nexport function illegalState(name) {\n    if (name) {\n        return new Error(`Illegal state: ${name}`);\n    }\n    else {\n        return new Error('Illegal state');\n    }\n}\nexport class NotSupportedError extends Error {\n    constructor(message) {\n        super('NotSupported');\n        if (message) {\n            this.message = message;\n        }\n    }\n}\n/**\n * Error that when thrown won't be logged in telemetry as an unhandled error.\n */\nexport class ErrorNoTelemetry extends Error {\n    constructor(msg) {\n        super(msg);\n        this.name = 'CodeExpectedError';\n    }\n    static fromError(err) {\n        if (err instanceof ErrorNoTelemetry) {\n            return err;\n        }\n        const result = new ErrorNoTelemetry();\n        result.message = err.message;\n        result.stack = err.stack;\n        return result;\n    }\n    static isErrorNoTelemetry(err) {\n        return err.name === 'CodeExpectedError';\n    }\n}\n/**\n * This error indicates a bug.\n * Do not throw this for invalid user input.\n * Only catch this error to recover gracefully from bugs.\n */\nexport class BugIndicatingError extends Error {\n    constructor(message) {\n        super(message || 'An unexpected bug occurred.');\n        Object.setPrototypeOf(this, BugIndicatingError.prototype);\n        // Because we know for sure only buggy code throws this,\n        // we definitely want to break here and fix the bug.\n        // eslint-disable-next-line no-debugger\n        // debugger;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/event.js",
    "content": "import { onUnexpectedError } from './errors.js';\nimport { createSingleCallFunction } from './functional.js';\nimport { combinedDisposable, Disposable, DisposableStore, toDisposable } from './lifecycle.js';\nimport { LinkedList } from './linkedList.js';\nimport { StopWatch } from './stopwatch.js';\n// -----------------------------------------------------------------------------------------------------------------------\n// Uncomment the next line to print warnings whenever a listener is GC'ed without having been disposed. This is a LEAK.\n// -----------------------------------------------------------------------------------------------------------------------\nconst _enableListenerGCedWarning = false;\n// -----------------------------------------------------------------------------------------------------------------------\n// Uncomment the next line to print warnings whenever an emitter with listeners is disposed. That is a sign of code smell.\n// -----------------------------------------------------------------------------------------------------------------------\nconst _enableDisposeWithListenerWarning = false;\n// -----------------------------------------------------------------------------------------------------------------------\n// Uncomment the next line to print warnings whenever a snapshotted event is used repeatedly without cleanup.\n// See https://github.com/microsoft/vscode/issues/142851\n// -----------------------------------------------------------------------------------------------------------------------\nconst _enableSnapshotPotentialLeakWarning = false;\nexport var Event;\n(function (Event) {\n    Event.None = () => Disposable.None;\n    function _addLeakageTraceLogic(options) {\n        if (_enableSnapshotPotentialLeakWarning) {\n            const { onDidAddListener: origListenerDidAdd } = options;\n            const stack = Stacktrace.create();\n            let count = 0;\n            options.onDidAddListener = () => {\n                if (++count === 2) {\n                    console.warn('snapshotted emitter LIKELY used public and SHOULD HAVE BEEN created with DisposableStore. snapshotted here');\n                    stack.print();\n                }\n                origListenerDidAdd === null || origListenerDidAdd === void 0 ? void 0 : origListenerDidAdd();\n            };\n        }\n    }\n    /**\n     * Given an event, returns another event which debounces calls and defers the listeners to a later task via a shared\n     * `setTimeout`. The event is converted into a signal (`Event<void>`) to avoid additional object creation as a\n     * result of merging events and to try prevent race conditions that could arise when using related deferred and\n     * non-deferred events.\n     *\n     * This is useful for deferring non-critical work (eg. general UI updates) to ensure it does not block critical work\n     * (eg. latency of keypress to text rendered).\n     *\n     * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned\n     * event is accessible to \"third parties\", e.g the event is a public property. Otherwise a leaked listener on the\n     * returned event causes this utility to leak a listener on the original event.\n     *\n     * @param event The event source for the new event.\n     * @param disposable A disposable store to add the new EventEmitter to.\n     */\n    function defer(event, disposable) {\n        return debounce(event, () => void 0, 0, undefined, true, undefined, disposable);\n    }\n    Event.defer = defer;\n    /**\n     * Given an event, returns another event which only fires once.\n     *\n     * @param event The event source for the new event.\n     */\n    function once(event) {\n        return (listener, thisArgs = null, disposables) => {\n            // we need this, in case the event fires during the listener call\n            let didFire = false;\n            let result = undefined;\n            result = event(e => {\n                if (didFire) {\n                    return;\n                }\n                else if (result) {\n                    result.dispose();\n                }\n                else {\n                    didFire = true;\n                }\n                return listener.call(thisArgs, e);\n            }, null, disposables);\n            if (didFire) {\n                result.dispose();\n            }\n            return result;\n        };\n    }\n    Event.once = once;\n    /**\n     * Maps an event of one type into an event of another type using a mapping function, similar to how\n     * `Array.prototype.map` works.\n     *\n     * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned\n     * event is accessible to \"third parties\", e.g the event is a public property. Otherwise a leaked listener on the\n     * returned event causes this utility to leak a listener on the original event.\n     *\n     * @param event The event source for the new event.\n     * @param map The mapping function.\n     * @param disposable A disposable store to add the new EventEmitter to.\n     */\n    function map(event, map, disposable) {\n        return snapshot((listener, thisArgs = null, disposables) => event(i => listener.call(thisArgs, map(i)), null, disposables), disposable);\n    }\n    Event.map = map;\n    /**\n     * Wraps an event in another event that performs some function on the event object before firing.\n     *\n     * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned\n     * event is accessible to \"third parties\", e.g the event is a public property. Otherwise a leaked listener on the\n     * returned event causes this utility to leak a listener on the original event.\n     *\n     * @param event The event source for the new event.\n     * @param each The function to perform on the event object.\n     * @param disposable A disposable store to add the new EventEmitter to.\n     */\n    function forEach(event, each, disposable) {\n        return snapshot((listener, thisArgs = null, disposables) => event(i => { each(i); listener.call(thisArgs, i); }, null, disposables), disposable);\n    }\n    Event.forEach = forEach;\n    function filter(event, filter, disposable) {\n        return snapshot((listener, thisArgs = null, disposables) => event(e => filter(e) && listener.call(thisArgs, e), null, disposables), disposable);\n    }\n    Event.filter = filter;\n    /**\n     * Given an event, returns the same event but typed as `Event<void>`.\n     */\n    function signal(event) {\n        return event;\n    }\n    Event.signal = signal;\n    function any(...events) {\n        return (listener, thisArgs = null, disposables) => {\n            const disposable = combinedDisposable(...events.map(event => event(e => listener.call(thisArgs, e))));\n            return addAndReturnDisposable(disposable, disposables);\n        };\n    }\n    Event.any = any;\n    /**\n     * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned\n     * event is accessible to \"third parties\", e.g the event is a public property. Otherwise a leaked listener on the\n     * returned event causes this utility to leak a listener on the original event.\n     */\n    function reduce(event, merge, initial, disposable) {\n        let output = initial;\n        return map(event, e => {\n            output = merge(output, e);\n            return output;\n        }, disposable);\n    }\n    Event.reduce = reduce;\n    function snapshot(event, disposable) {\n        let listener;\n        const options = {\n            onWillAddFirstListener() {\n                listener = event(emitter.fire, emitter);\n            },\n            onDidRemoveLastListener() {\n                listener === null || listener === void 0 ? void 0 : listener.dispose();\n            }\n        };\n        if (!disposable) {\n            _addLeakageTraceLogic(options);\n        }\n        const emitter = new Emitter(options);\n        disposable === null || disposable === void 0 ? void 0 : disposable.add(emitter);\n        return emitter.event;\n    }\n    /**\n     * Adds the IDisposable to the store if it's set, and returns it. Useful to\n     * Event function implementation.\n     */\n    function addAndReturnDisposable(d, store) {\n        if (store instanceof Array) {\n            store.push(d);\n        }\n        else if (store) {\n            store.add(d);\n        }\n        return d;\n    }\n    function debounce(event, merge, delay = 100, leading = false, flushOnListenerRemove = false, leakWarningThreshold, disposable) {\n        let subscription;\n        let output = undefined;\n        let handle = undefined;\n        let numDebouncedCalls = 0;\n        let doFire;\n        const options = {\n            leakWarningThreshold,\n            onWillAddFirstListener() {\n                subscription = event(cur => {\n                    numDebouncedCalls++;\n                    output = merge(output, cur);\n                    if (leading && !handle) {\n                        emitter.fire(output);\n                        output = undefined;\n                    }\n                    doFire = () => {\n                        const _output = output;\n                        output = undefined;\n                        handle = undefined;\n                        if (!leading || numDebouncedCalls > 1) {\n                            emitter.fire(_output);\n                        }\n                        numDebouncedCalls = 0;\n                    };\n                    if (typeof delay === 'number') {\n                        clearTimeout(handle);\n                        handle = setTimeout(doFire, delay);\n                    }\n                    else {\n                        if (handle === undefined) {\n                            handle = 0;\n                            queueMicrotask(doFire);\n                        }\n                    }\n                });\n            },\n            onWillRemoveListener() {\n                if (flushOnListenerRemove && numDebouncedCalls > 0) {\n                    doFire === null || doFire === void 0 ? void 0 : doFire();\n                }\n            },\n            onDidRemoveLastListener() {\n                doFire = undefined;\n                subscription.dispose();\n            }\n        };\n        if (!disposable) {\n            _addLeakageTraceLogic(options);\n        }\n        const emitter = new Emitter(options);\n        disposable === null || disposable === void 0 ? void 0 : disposable.add(emitter);\n        return emitter.event;\n    }\n    Event.debounce = debounce;\n    /**\n     * Debounces an event, firing after some delay (default=0) with an array of all event original objects.\n     *\n     * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned\n     * event is accessible to \"third parties\", e.g the event is a public property. Otherwise a leaked listener on the\n     * returned event causes this utility to leak a listener on the original event.\n     */\n    function accumulate(event, delay = 0, disposable) {\n        return Event.debounce(event, (last, e) => {\n            if (!last) {\n                return [e];\n            }\n            last.push(e);\n            return last;\n        }, delay, undefined, true, undefined, disposable);\n    }\n    Event.accumulate = accumulate;\n    /**\n     * Filters an event such that some condition is _not_ met more than once in a row, effectively ensuring duplicate\n     * event objects from different sources do not fire the same event object.\n     *\n     * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned\n     * event is accessible to \"third parties\", e.g the event is a public property. Otherwise a leaked listener on the\n     * returned event causes this utility to leak a listener on the original event.\n     *\n     * @param event The event source for the new event.\n     * @param equals The equality condition.\n     * @param disposable A disposable store to add the new EventEmitter to.\n     *\n     * @example\n     * ```\n     * // Fire only one time when a single window is opened or focused\n     * Event.latch(Event.any(onDidOpenWindow, onDidFocusWindow))\n     * ```\n     */\n    function latch(event, equals = (a, b) => a === b, disposable) {\n        let firstCall = true;\n        let cache;\n        return filter(event, value => {\n            const shouldEmit = firstCall || !equals(value, cache);\n            firstCall = false;\n            cache = value;\n            return shouldEmit;\n        }, disposable);\n    }\n    Event.latch = latch;\n    /**\n     * Splits an event whose parameter is a union type into 2 separate events for each type in the union.\n     *\n     * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned\n     * event is accessible to \"third parties\", e.g the event is a public property. Otherwise a leaked listener on the\n     * returned event causes this utility to leak a listener on the original event.\n     *\n     * @example\n     * ```\n     * const event = new EventEmitter<number | undefined>().event;\n     * const [numberEvent, undefinedEvent] = Event.split(event, isUndefined);\n     * ```\n     *\n     * @param event The event source for the new event.\n     * @param isT A function that determines what event is of the first type.\n     * @param disposable A disposable store to add the new EventEmitter to.\n     */\n    function split(event, isT, disposable) {\n        return [\n            Event.filter(event, isT, disposable),\n            Event.filter(event, e => !isT(e), disposable),\n        ];\n    }\n    Event.split = split;\n    /**\n     * Buffers an event until it has a listener attached.\n     *\n     * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned\n     * event is accessible to \"third parties\", e.g the event is a public property. Otherwise a leaked listener on the\n     * returned event causes this utility to leak a listener on the original event.\n     *\n     * @param event The event source for the new event.\n     * @param flushAfterTimeout Determines whether to flush the buffer after a timeout immediately or after a\n     * `setTimeout` when the first event listener is added.\n     * @param _buffer Internal: A source event array used for tests.\n     *\n     * @example\n     * ```\n     * // Start accumulating events, when the first listener is attached, flush\n     * // the event after a timeout such that multiple listeners attached before\n     * // the timeout would receive the event\n     * this.onInstallExtension = Event.buffer(service.onInstallExtension, true);\n     * ```\n     */\n    function buffer(event, flushAfterTimeout = false, _buffer = [], disposable) {\n        let buffer = _buffer.slice();\n        let listener = event(e => {\n            if (buffer) {\n                buffer.push(e);\n            }\n            else {\n                emitter.fire(e);\n            }\n        });\n        if (disposable) {\n            disposable.add(listener);\n        }\n        const flush = () => {\n            buffer === null || buffer === void 0 ? void 0 : buffer.forEach(e => emitter.fire(e));\n            buffer = null;\n        };\n        const emitter = new Emitter({\n            onWillAddFirstListener() {\n                if (!listener) {\n                    listener = event(e => emitter.fire(e));\n                    if (disposable) {\n                        disposable.add(listener);\n                    }\n                }\n            },\n            onDidAddFirstListener() {\n                if (buffer) {\n                    if (flushAfterTimeout) {\n                        setTimeout(flush);\n                    }\n                    else {\n                        flush();\n                    }\n                }\n            },\n            onDidRemoveLastListener() {\n                if (listener) {\n                    listener.dispose();\n                }\n                listener = null;\n            }\n        });\n        if (disposable) {\n            disposable.add(emitter);\n        }\n        return emitter.event;\n    }\n    Event.buffer = buffer;\n    /**\n     * Wraps the event in an {@link IChainableEvent}, allowing a more functional programming style.\n     *\n     * @example\n     * ```\n     * // Normal\n     * const onEnterPressNormal = Event.filter(\n     *   Event.map(onKeyPress.event, e => new StandardKeyboardEvent(e)),\n     *   e.keyCode === KeyCode.Enter\n     * ).event;\n     *\n     * // Using chain\n     * const onEnterPressChain = Event.chain(onKeyPress.event, $ => $\n     *   .map(e => new StandardKeyboardEvent(e))\n     *   .filter(e => e.keyCode === KeyCode.Enter)\n     * );\n     * ```\n     */\n    function chain(event, sythensize) {\n        const fn = (listener, thisArgs, disposables) => {\n            const cs = sythensize(new ChainableSynthesis());\n            return event(function (value) {\n                const result = cs.evaluate(value);\n                if (result !== HaltChainable) {\n                    listener.call(thisArgs, result);\n                }\n            }, undefined, disposables);\n        };\n        return fn;\n    }\n    Event.chain = chain;\n    const HaltChainable = Symbol('HaltChainable');\n    class ChainableSynthesis {\n        constructor() {\n            this.steps = [];\n        }\n        map(fn) {\n            this.steps.push(fn);\n            return this;\n        }\n        forEach(fn) {\n            this.steps.push(v => {\n                fn(v);\n                return v;\n            });\n            return this;\n        }\n        filter(fn) {\n            this.steps.push(v => fn(v) ? v : HaltChainable);\n            return this;\n        }\n        reduce(merge, initial) {\n            let last = initial;\n            this.steps.push(v => {\n                last = merge(last, v);\n                return last;\n            });\n            return this;\n        }\n        latch(equals = (a, b) => a === b) {\n            let firstCall = true;\n            let cache;\n            this.steps.push(value => {\n                const shouldEmit = firstCall || !equals(value, cache);\n                firstCall = false;\n                cache = value;\n                return shouldEmit ? value : HaltChainable;\n            });\n            return this;\n        }\n        evaluate(value) {\n            for (const step of this.steps) {\n                value = step(value);\n                if (value === HaltChainable) {\n                    break;\n                }\n            }\n            return value;\n        }\n    }\n    /**\n     * Creates an {@link Event} from a node event emitter.\n     */\n    function fromNodeEventEmitter(emitter, eventName, map = id => id) {\n        const fn = (...args) => result.fire(map(...args));\n        const onFirstListenerAdd = () => emitter.on(eventName, fn);\n        const onLastListenerRemove = () => emitter.removeListener(eventName, fn);\n        const result = new Emitter({ onWillAddFirstListener: onFirstListenerAdd, onDidRemoveLastListener: onLastListenerRemove });\n        return result.event;\n    }\n    Event.fromNodeEventEmitter = fromNodeEventEmitter;\n    /**\n     * Creates an {@link Event} from a DOM event emitter.\n     */\n    function fromDOMEventEmitter(emitter, eventName, map = id => id) {\n        const fn = (...args) => result.fire(map(...args));\n        const onFirstListenerAdd = () => emitter.addEventListener(eventName, fn);\n        const onLastListenerRemove = () => emitter.removeEventListener(eventName, fn);\n        const result = new Emitter({ onWillAddFirstListener: onFirstListenerAdd, onDidRemoveLastListener: onLastListenerRemove });\n        return result.event;\n    }\n    Event.fromDOMEventEmitter = fromDOMEventEmitter;\n    /**\n     * Creates a promise out of an event, using the {@link Event.once} helper.\n     */\n    function toPromise(event) {\n        return new Promise(resolve => once(event)(resolve));\n    }\n    Event.toPromise = toPromise;\n    /**\n     * Creates an event out of a promise that fires once when the promise is\n     * resolved with the result of the promise or `undefined`.\n     */\n    function fromPromise(promise) {\n        const result = new Emitter();\n        promise.then(res => {\n            result.fire(res);\n        }, () => {\n            result.fire(undefined);\n        }).finally(() => {\n            result.dispose();\n        });\n        return result.event;\n    }\n    Event.fromPromise = fromPromise;\n    function runAndSubscribe(event, handler, initial) {\n        handler(initial);\n        return event(e => handler(e));\n    }\n    Event.runAndSubscribe = runAndSubscribe;\n    class EmitterObserver {\n        constructor(_observable, store) {\n            this._observable = _observable;\n            this._counter = 0;\n            this._hasChanged = false;\n            const options = {\n                onWillAddFirstListener: () => {\n                    _observable.addObserver(this);\n                },\n                onDidRemoveLastListener: () => {\n                    _observable.removeObserver(this);\n                }\n            };\n            if (!store) {\n                _addLeakageTraceLogic(options);\n            }\n            this.emitter = new Emitter(options);\n            if (store) {\n                store.add(this.emitter);\n            }\n        }\n        beginUpdate(_observable) {\n            // assert(_observable === this.obs);\n            this._counter++;\n        }\n        handlePossibleChange(_observable) {\n            // assert(_observable === this.obs);\n        }\n        handleChange(_observable, _change) {\n            // assert(_observable === this.obs);\n            this._hasChanged = true;\n        }\n        endUpdate(_observable) {\n            // assert(_observable === this.obs);\n            this._counter--;\n            if (this._counter === 0) {\n                this._observable.reportChanges();\n                if (this._hasChanged) {\n                    this._hasChanged = false;\n                    this.emitter.fire(this._observable.get());\n                }\n            }\n        }\n    }\n    /**\n     * Creates an event emitter that is fired when the observable changes.\n     * Each listeners subscribes to the emitter.\n     */\n    function fromObservable(obs, store) {\n        const observer = new EmitterObserver(obs, store);\n        return observer.emitter.event;\n    }\n    Event.fromObservable = fromObservable;\n    /**\n     * Each listener is attached to the observable directly.\n     */\n    function fromObservableLight(observable) {\n        return (listener, thisArgs, disposables) => {\n            let count = 0;\n            let didChange = false;\n            const observer = {\n                beginUpdate() {\n                    count++;\n                },\n                endUpdate() {\n                    count--;\n                    if (count === 0) {\n                        observable.reportChanges();\n                        if (didChange) {\n                            didChange = false;\n                            listener.call(thisArgs);\n                        }\n                    }\n                },\n                handlePossibleChange() {\n                    // noop\n                },\n                handleChange() {\n                    didChange = true;\n                }\n            };\n            observable.addObserver(observer);\n            observable.reportChanges();\n            const disposable = {\n                dispose() {\n                    observable.removeObserver(observer);\n                }\n            };\n            if (disposables instanceof DisposableStore) {\n                disposables.add(disposable);\n            }\n            else if (Array.isArray(disposables)) {\n                disposables.push(disposable);\n            }\n            return disposable;\n        };\n    }\n    Event.fromObservableLight = fromObservableLight;\n})(Event || (Event = {}));\nexport class EventProfiling {\n    constructor(name) {\n        this.listenerCount = 0;\n        this.invocationCount = 0;\n        this.elapsedOverall = 0;\n        this.durations = [];\n        this.name = `${name}_${EventProfiling._idPool++}`;\n        EventProfiling.all.add(this);\n    }\n    start(listenerCount) {\n        this._stopWatch = new StopWatch();\n        this.listenerCount = listenerCount;\n    }\n    stop() {\n        if (this._stopWatch) {\n            const elapsed = this._stopWatch.elapsed();\n            this.durations.push(elapsed);\n            this.elapsedOverall += elapsed;\n            this.invocationCount += 1;\n            this._stopWatch = undefined;\n        }\n    }\n}\nEventProfiling.all = new Set();\nEventProfiling._idPool = 0;\nlet _globalLeakWarningThreshold = -1;\nclass LeakageMonitor {\n    constructor(_errorHandler, threshold, name = Math.random().toString(18).slice(2, 5)) {\n        this._errorHandler = _errorHandler;\n        this.threshold = threshold;\n        this.name = name;\n        this._warnCountdown = 0;\n    }\n    dispose() {\n        var _a;\n        (_a = this._stacks) === null || _a === void 0 ? void 0 : _a.clear();\n    }\n    check(stack, listenerCount) {\n        const threshold = this.threshold;\n        if (threshold <= 0 || listenerCount < threshold) {\n            return undefined;\n        }\n        if (!this._stacks) {\n            this._stacks = new Map();\n        }\n        const count = (this._stacks.get(stack.value) || 0);\n        this._stacks.set(stack.value, count + 1);\n        this._warnCountdown -= 1;\n        if (this._warnCountdown <= 0) {\n            // only warn on first exceed and then every time the limit\n            // is exceeded by 50% again\n            this._warnCountdown = threshold * 0.5;\n            const [topStack, topCount] = this.getMostFrequentStack();\n            const message = `[${this.name}] potential listener LEAK detected, having ${listenerCount} listeners already. MOST frequent listener (${topCount}):`;\n            console.warn(message);\n            console.warn(topStack);\n            const error = new ListenerLeakError(message, topStack);\n            this._errorHandler(error);\n        }\n        return () => {\n            const count = (this._stacks.get(stack.value) || 0);\n            this._stacks.set(stack.value, count - 1);\n        };\n    }\n    getMostFrequentStack() {\n        if (!this._stacks) {\n            return undefined;\n        }\n        let topStack;\n        let topCount = 0;\n        for (const [stack, count] of this._stacks) {\n            if (!topStack || topCount < count) {\n                topStack = [stack, count];\n                topCount = count;\n            }\n        }\n        return topStack;\n    }\n}\nclass Stacktrace {\n    static create() {\n        var _a;\n        const err = new Error();\n        return new Stacktrace((_a = err.stack) !== null && _a !== void 0 ? _a : '');\n    }\n    constructor(value) {\n        this.value = value;\n    }\n    print() {\n        console.warn(this.value.split('\\n').slice(2).join('\\n'));\n    }\n}\n// error that is logged when going over the configured listener threshold\nexport class ListenerLeakError extends Error {\n    constructor(message, stack) {\n        super(message);\n        this.name = 'ListenerLeakError';\n        this.stack = stack;\n    }\n}\n// SEVERE error that is logged when having gone way over the configured listener\n// threshold so that the emitter refuses to accept more listeners\nexport class ListenerRefusalError extends Error {\n    constructor(message, stack) {\n        super(message);\n        this.name = 'ListenerRefusalError';\n        this.stack = stack;\n    }\n}\nclass UniqueContainer {\n    constructor(value) {\n        this.value = value;\n    }\n}\nconst compactionThreshold = 2;\nconst forEachListener = (listeners, fn) => {\n    if (listeners instanceof UniqueContainer) {\n        fn(listeners);\n    }\n    else {\n        for (let i = 0; i < listeners.length; i++) {\n            const l = listeners[i];\n            if (l) {\n                fn(l);\n            }\n        }\n    }\n};\nconst _listenerFinalizers = _enableListenerGCedWarning\n    ? new FinalizationRegistry(heldValue => {\n        if (typeof heldValue === 'string') {\n            console.warn('[LEAKING LISTENER] GC\\'ed a listener that was NOT yet disposed. This is where is was created:');\n            console.warn(heldValue);\n        }\n    })\n    : undefined;\n/**\n * The Emitter can be used to expose an Event to the public\n * to fire it from the insides.\n * Sample:\n    class Document {\n\n        private readonly _onDidChange = new Emitter<(value:string)=>any>();\n\n        public onDidChange = this._onDidChange.event;\n\n        // getter-style\n        // get onDidChange(): Event<(value:string)=>any> {\n        // \treturn this._onDidChange.event;\n        // }\n\n        private _doIt() {\n            //...\n            this._onDidChange.fire(value);\n        }\n    }\n */\nexport class Emitter {\n    constructor(options) {\n        var _a, _b, _c, _d, _e, _f;\n        this._size = 0;\n        this._options = options;\n        this._leakageMon = (_globalLeakWarningThreshold > 0 || ((_a = this._options) === null || _a === void 0 ? void 0 : _a.leakWarningThreshold))\n            ? new LeakageMonitor((_b = options === null || options === void 0 ? void 0 : options.onListenerError) !== null && _b !== void 0 ? _b : onUnexpectedError, (_d = (_c = this._options) === null || _c === void 0 ? void 0 : _c.leakWarningThreshold) !== null && _d !== void 0 ? _d : _globalLeakWarningThreshold) :\n            undefined;\n        this._perfMon = ((_e = this._options) === null || _e === void 0 ? void 0 : _e._profName) ? new EventProfiling(this._options._profName) : undefined;\n        this._deliveryQueue = (_f = this._options) === null || _f === void 0 ? void 0 : _f.deliveryQueue;\n    }\n    dispose() {\n        var _a, _b, _c, _d;\n        if (!this._disposed) {\n            this._disposed = true;\n            // It is bad to have listeners at the time of disposing an emitter, it is worst to have listeners keep the emitter\n            // alive via the reference that's embedded in their disposables. Therefore we loop over all remaining listeners and\n            // unset their subscriptions/disposables. Looping and blaming remaining listeners is done on next tick because the\n            // the following programming pattern is very popular:\n            //\n            // const someModel = this._disposables.add(new ModelObject()); // (1) create and register model\n            // this._disposables.add(someModel.onDidChange(() => { ... }); // (2) subscribe and register model-event listener\n            // ...later...\n            // this._disposables.dispose(); disposes (1) then (2): don't warn after (1) but after the \"overall dispose\" is done\n            if (((_a = this._deliveryQueue) === null || _a === void 0 ? void 0 : _a.current) === this) {\n                this._deliveryQueue.reset();\n            }\n            if (this._listeners) {\n                if (_enableDisposeWithListenerWarning) {\n                    const listeners = this._listeners;\n                    queueMicrotask(() => {\n                        forEachListener(listeners, l => { var _a; return (_a = l.stack) === null || _a === void 0 ? void 0 : _a.print(); });\n                    });\n                }\n                this._listeners = undefined;\n                this._size = 0;\n            }\n            (_c = (_b = this._options) === null || _b === void 0 ? void 0 : _b.onDidRemoveLastListener) === null || _c === void 0 ? void 0 : _c.call(_b);\n            (_d = this._leakageMon) === null || _d === void 0 ? void 0 : _d.dispose();\n        }\n    }\n    /**\n     * For the public to allow to subscribe\n     * to events from this Emitter\n     */\n    get event() {\n        var _a;\n        (_a = this._event) !== null && _a !== void 0 ? _a : (this._event = (callback, thisArgs, disposables) => {\n            var _a, _b, _c, _d, _e, _f, _g;\n            if (this._leakageMon && this._size > this._leakageMon.threshold ** 2) {\n                const message = `[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;\n                console.warn(message);\n                const tuple = (_a = this._leakageMon.getMostFrequentStack()) !== null && _a !== void 0 ? _a : ['UNKNOWN stack', -1];\n                const error = new ListenerRefusalError(`${message}. HINT: Stack shows most frequent listener (${tuple[1]}-times)`, tuple[0]);\n                const errorHandler = ((_b = this._options) === null || _b === void 0 ? void 0 : _b.onListenerError) || onUnexpectedError;\n                errorHandler(error);\n                return Disposable.None;\n            }\n            if (this._disposed) {\n                // todo: should we warn if a listener is added to a disposed emitter? This happens often\n                return Disposable.None;\n            }\n            if (thisArgs) {\n                callback = callback.bind(thisArgs);\n            }\n            const contained = new UniqueContainer(callback);\n            let removeMonitor;\n            let stack;\n            if (this._leakageMon && this._size >= Math.ceil(this._leakageMon.threshold * 0.2)) {\n                // check and record this emitter for potential leakage\n                contained.stack = Stacktrace.create();\n                removeMonitor = this._leakageMon.check(contained.stack, this._size + 1);\n            }\n            if (_enableDisposeWithListenerWarning) {\n                contained.stack = stack !== null && stack !== void 0 ? stack : Stacktrace.create();\n            }\n            if (!this._listeners) {\n                (_d = (_c = this._options) === null || _c === void 0 ? void 0 : _c.onWillAddFirstListener) === null || _d === void 0 ? void 0 : _d.call(_c, this);\n                this._listeners = contained;\n                (_f = (_e = this._options) === null || _e === void 0 ? void 0 : _e.onDidAddFirstListener) === null || _f === void 0 ? void 0 : _f.call(_e, this);\n            }\n            else if (this._listeners instanceof UniqueContainer) {\n                (_g = this._deliveryQueue) !== null && _g !== void 0 ? _g : (this._deliveryQueue = new EventDeliveryQueuePrivate());\n                this._listeners = [this._listeners, contained];\n            }\n            else {\n                this._listeners.push(contained);\n            }\n            this._size++;\n            const result = toDisposable(() => {\n                _listenerFinalizers === null || _listenerFinalizers === void 0 ? void 0 : _listenerFinalizers.unregister(result);\n                removeMonitor === null || removeMonitor === void 0 ? void 0 : removeMonitor();\n                this._removeListener(contained);\n            });\n            if (disposables instanceof DisposableStore) {\n                disposables.add(result);\n            }\n            else if (Array.isArray(disposables)) {\n                disposables.push(result);\n            }\n            if (_listenerFinalizers) {\n                const stack = new Error().stack.split('\\n').slice(2).join('\\n').trim();\n                _listenerFinalizers.register(result, stack, result);\n            }\n            return result;\n        });\n        return this._event;\n    }\n    _removeListener(listener) {\n        var _a, _b, _c, _d;\n        (_b = (_a = this._options) === null || _a === void 0 ? void 0 : _a.onWillRemoveListener) === null || _b === void 0 ? void 0 : _b.call(_a, this);\n        if (!this._listeners) {\n            return; // expected if a listener gets disposed\n        }\n        if (this._size === 1) {\n            this._listeners = undefined;\n            (_d = (_c = this._options) === null || _c === void 0 ? void 0 : _c.onDidRemoveLastListener) === null || _d === void 0 ? void 0 : _d.call(_c, this);\n            this._size = 0;\n            return;\n        }\n        // size > 1 which requires that listeners be a list:\n        const listeners = this._listeners;\n        const index = listeners.indexOf(listener);\n        if (index === -1) {\n            console.log('disposed?', this._disposed);\n            console.log('size?', this._size);\n            console.log('arr?', JSON.stringify(this._listeners));\n            throw new Error('Attempted to dispose unknown listener');\n        }\n        this._size--;\n        listeners[index] = undefined;\n        const adjustDeliveryQueue = this._deliveryQueue.current === this;\n        if (this._size * compactionThreshold <= listeners.length) {\n            let n = 0;\n            for (let i = 0; i < listeners.length; i++) {\n                if (listeners[i]) {\n                    listeners[n++] = listeners[i];\n                }\n                else if (adjustDeliveryQueue) {\n                    this._deliveryQueue.end--;\n                    if (n < this._deliveryQueue.i) {\n                        this._deliveryQueue.i--;\n                    }\n                }\n            }\n            listeners.length = n;\n        }\n    }\n    _deliver(listener, value) {\n        var _a;\n        if (!listener) {\n            return;\n        }\n        const errorHandler = ((_a = this._options) === null || _a === void 0 ? void 0 : _a.onListenerError) || onUnexpectedError;\n        if (!errorHandler) {\n            listener.value(value);\n            return;\n        }\n        try {\n            listener.value(value);\n        }\n        catch (e) {\n            errorHandler(e);\n        }\n    }\n    /** Delivers items in the queue. Assumes the queue is ready to go. */\n    _deliverQueue(dq) {\n        const listeners = dq.current._listeners;\n        while (dq.i < dq.end) {\n            // important: dq.i is incremented before calling deliver() because it might reenter deliverQueue()\n            this._deliver(listeners[dq.i++], dq.value);\n        }\n        dq.reset();\n    }\n    /**\n     * To be kept private to fire an event to\n     * subscribers\n     */\n    fire(event) {\n        var _a, _b, _c, _d;\n        if ((_a = this._deliveryQueue) === null || _a === void 0 ? void 0 : _a.current) {\n            this._deliverQueue(this._deliveryQueue);\n            (_b = this._perfMon) === null || _b === void 0 ? void 0 : _b.stop(); // last fire() will have starting perfmon, stop it before starting the next dispatch\n        }\n        (_c = this._perfMon) === null || _c === void 0 ? void 0 : _c.start(this._size);\n        if (!this._listeners) {\n            // no-op\n        }\n        else if (this._listeners instanceof UniqueContainer) {\n            this._deliver(this._listeners, event);\n        }\n        else {\n            const dq = this._deliveryQueue;\n            dq.enqueue(this, event, this._listeners.length);\n            this._deliverQueue(dq);\n        }\n        (_d = this._perfMon) === null || _d === void 0 ? void 0 : _d.stop();\n    }\n    hasListeners() {\n        return this._size > 0;\n    }\n}\nexport const createEventDeliveryQueue = () => new EventDeliveryQueuePrivate();\nclass EventDeliveryQueuePrivate {\n    constructor() {\n        /**\n         * Index in current's listener list.\n         */\n        this.i = -1;\n        /**\n         * The last index in the listener's list to deliver.\n         */\n        this.end = 0;\n    }\n    enqueue(emitter, value, end) {\n        this.i = 0;\n        this.end = end;\n        this.current = emitter;\n        this.value = value;\n    }\n    reset() {\n        this.i = this.end; // force any current emission loop to stop, mainly for during dispose\n        this.current = undefined;\n        this.value = undefined;\n    }\n}\nexport class PauseableEmitter extends Emitter {\n    constructor(options) {\n        super(options);\n        this._isPaused = 0;\n        this._eventQueue = new LinkedList();\n        this._mergeFn = options === null || options === void 0 ? void 0 : options.merge;\n    }\n    pause() {\n        this._isPaused++;\n    }\n    resume() {\n        if (this._isPaused !== 0 && --this._isPaused === 0) {\n            if (this._mergeFn) {\n                // use the merge function to create a single composite\n                // event. make a copy in case firing pauses this emitter\n                if (this._eventQueue.size > 0) {\n                    const events = Array.from(this._eventQueue);\n                    this._eventQueue.clear();\n                    super.fire(this._mergeFn(events));\n                }\n            }\n            else {\n                // no merging, fire each event individually and test\n                // that this emitter isn't paused halfway through\n                while (!this._isPaused && this._eventQueue.size !== 0) {\n                    super.fire(this._eventQueue.shift());\n                }\n            }\n        }\n    }\n    fire(event) {\n        if (this._size) {\n            if (this._isPaused !== 0) {\n                this._eventQueue.push(event);\n            }\n            else {\n                super.fire(event);\n            }\n        }\n    }\n}\nexport class DebounceEmitter extends PauseableEmitter {\n    constructor(options) {\n        var _a;\n        super(options);\n        this._delay = (_a = options.delay) !== null && _a !== void 0 ? _a : 100;\n    }\n    fire(event) {\n        if (!this._handle) {\n            this.pause();\n            this._handle = setTimeout(() => {\n                this._handle = undefined;\n                this.resume();\n            }, this._delay);\n        }\n        super.fire(event);\n    }\n}\n/**\n * An emitter which queue all events and then process them at the\n * end of the event loop.\n */\nexport class MicrotaskEmitter extends Emitter {\n    constructor(options) {\n        super(options);\n        this._queuedEvents = [];\n        this._mergeFn = options === null || options === void 0 ? void 0 : options.merge;\n    }\n    fire(event) {\n        if (!this.hasListeners()) {\n            return;\n        }\n        this._queuedEvents.push(event);\n        if (this._queuedEvents.length === 1) {\n            queueMicrotask(() => {\n                if (this._mergeFn) {\n                    super.fire(this._mergeFn(this._queuedEvents));\n                }\n                else {\n                    this._queuedEvents.forEach(e => super.fire(e));\n                }\n                this._queuedEvents = [];\n            });\n        }\n    }\n}\n/**\n * An event emitter that multiplexes many events into a single event.\n *\n * @example Listen to the `onData` event of all `Thing`s, dynamically adding and removing `Thing`s\n * to the multiplexer as needed.\n *\n * ```typescript\n * const anythingDataMultiplexer = new EventMultiplexer<{ data: string }>();\n *\n * const thingListeners = DisposableMap<Thing, IDisposable>();\n *\n * thingService.onDidAddThing(thing => {\n *   thingListeners.set(thing, anythingDataMultiplexer.add(thing.onData);\n * });\n * thingService.onDidRemoveThing(thing => {\n *   thingListeners.deleteAndDispose(thing);\n * });\n *\n * anythingDataMultiplexer.event(e => {\n *   console.log('Something fired data ' + e.data)\n * });\n * ```\n */\nexport class EventMultiplexer {\n    constructor() {\n        this.hasListeners = false;\n        this.events = [];\n        this.emitter = new Emitter({\n            onWillAddFirstListener: () => this.onFirstListenerAdd(),\n            onDidRemoveLastListener: () => this.onLastListenerRemove()\n        });\n    }\n    get event() {\n        return this.emitter.event;\n    }\n    add(event) {\n        const e = { event: event, listener: null };\n        this.events.push(e);\n        if (this.hasListeners) {\n            this.hook(e);\n        }\n        const dispose = () => {\n            if (this.hasListeners) {\n                this.unhook(e);\n            }\n            const idx = this.events.indexOf(e);\n            this.events.splice(idx, 1);\n        };\n        return toDisposable(createSingleCallFunction(dispose));\n    }\n    onFirstListenerAdd() {\n        this.hasListeners = true;\n        this.events.forEach(e => this.hook(e));\n    }\n    onLastListenerRemove() {\n        this.hasListeners = false;\n        this.events.forEach(e => this.unhook(e));\n    }\n    hook(e) {\n        e.listener = e.event(r => this.emitter.fire(r));\n    }\n    unhook(e) {\n        var _a;\n        (_a = e.listener) === null || _a === void 0 ? void 0 : _a.dispose();\n        e.listener = null;\n    }\n    dispose() {\n        var _a;\n        this.emitter.dispose();\n        for (const e of this.events) {\n            (_a = e.listener) === null || _a === void 0 ? void 0 : _a.dispose();\n        }\n        this.events = [];\n    }\n}\n/**\n * The EventBufferer is useful in situations in which you want\n * to delay firing your events during some code.\n * You can wrap that code and be sure that the event will not\n * be fired during that wrap.\n *\n * ```\n * const emitter: Emitter;\n * const delayer = new EventDelayer();\n * const delayedEvent = delayer.wrapEvent(emitter.event);\n *\n * delayedEvent(console.log);\n *\n * delayer.bufferEvents(() => {\n *   emitter.fire(); // event will not be fired yet\n * });\n *\n * // event will only be fired at this point\n * ```\n */\nexport class EventBufferer {\n    constructor() {\n        this.data = [];\n    }\n    wrapEvent(event, reduce, initial) {\n        return (listener, thisArgs, disposables) => {\n            return event(i => {\n                var _a;\n                const data = this.data[this.data.length - 1];\n                // Non-reduce scenario\n                if (!reduce) {\n                    // Buffering case\n                    if (data) {\n                        data.buffers.push(() => listener.call(thisArgs, i));\n                    }\n                    else {\n                        // Not buffering case\n                        listener.call(thisArgs, i);\n                    }\n                    return;\n                }\n                // Reduce scenario\n                const reduceData = data;\n                // Not buffering case\n                if (!reduceData) {\n                    // TODO: Is there a way to cache this reduce call for all listeners?\n                    listener.call(thisArgs, reduce(initial, i));\n                    return;\n                }\n                // Buffering case\n                (_a = reduceData.items) !== null && _a !== void 0 ? _a : (reduceData.items = []);\n                reduceData.items.push(i);\n                if (reduceData.buffers.length === 0) {\n                    // Include a single buffered function that will reduce all events when we're done buffering events\n                    data.buffers.push(() => {\n                        var _a;\n                        // cache the reduced result so that the value can be shared across all listeners\n                        (_a = reduceData.reducedResult) !== null && _a !== void 0 ? _a : (reduceData.reducedResult = initial\n                            ? reduceData.items.reduce(reduce, initial)\n                            : reduceData.items.reduce(reduce));\n                        listener.call(thisArgs, reduceData.reducedResult);\n                    });\n                }\n            }, undefined, disposables);\n        };\n    }\n    bufferEvents(fn) {\n        const data = { buffers: new Array() };\n        this.data.push(data);\n        const r = fn();\n        this.data.pop();\n        data.buffers.forEach(flush => flush());\n        return r;\n    }\n}\n/**\n * A Relay is an event forwarder which functions as a replugabble event pipe.\n * Once created, you can connect an input event to it and it will simply forward\n * events from that input event through its own `event` property. The `input`\n * can be changed at any point in time.\n */\nexport class Relay {\n    constructor() {\n        this.listening = false;\n        this.inputEvent = Event.None;\n        this.inputEventListener = Disposable.None;\n        this.emitter = new Emitter({\n            onDidAddFirstListener: () => {\n                this.listening = true;\n                this.inputEventListener = this.inputEvent(this.emitter.fire, this.emitter);\n            },\n            onDidRemoveLastListener: () => {\n                this.listening = false;\n                this.inputEventListener.dispose();\n            }\n        });\n        this.event = this.emitter.event;\n    }\n    set input(event) {\n        this.inputEvent = event;\n        if (this.listening) {\n            this.inputEventListener.dispose();\n            this.inputEventListener = event(this.emitter.fire, this.emitter);\n        }\n    }\n    dispose() {\n        this.inputEventListener.dispose();\n        this.emitter.dispose();\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/extpath.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { posix, sep } from './path.js';\nimport { isWindows } from './platform.js';\nimport { startsWithIgnoreCase } from './strings.js';\nexport function isPathSeparator(code) {\n    return code === 47 /* CharCode.Slash */ || code === 92 /* CharCode.Backslash */;\n}\n/**\n * Takes a Windows OS path and changes backward slashes to forward slashes.\n * This should only be done for OS paths from Windows (or user provided paths potentially from Windows).\n * Using it on a Linux or MaxOS path might change it.\n */\nexport function toSlashes(osPath) {\n    return osPath.replace(/[\\\\/]/g, posix.sep);\n}\n/**\n * Takes a Windows OS path (using backward or forward slashes) and turns it into a posix path:\n * - turns backward slashes into forward slashes\n * - makes it absolute if it starts with a drive letter\n * This should only be done for OS paths from Windows (or user provided paths potentially from Windows).\n * Using it on a Linux or MaxOS path might change it.\n */\nexport function toPosixPath(osPath) {\n    if (osPath.indexOf('/') === -1) {\n        osPath = toSlashes(osPath);\n    }\n    if (/^[a-zA-Z]:(\\/|$)/.test(osPath)) { // starts with a drive letter\n        osPath = '/' + osPath;\n    }\n    return osPath;\n}\n/**\n * Computes the _root_ this path, like `getRoot('c:\\files') === c:\\`,\n * `getRoot('files:///files/path') === files:///`,\n * or `getRoot('\\\\server\\shares\\path') === \\\\server\\shares\\`\n */\nexport function getRoot(path, sep = posix.sep) {\n    if (!path) {\n        return '';\n    }\n    const len = path.length;\n    const firstLetter = path.charCodeAt(0);\n    if (isPathSeparator(firstLetter)) {\n        if (isPathSeparator(path.charCodeAt(1))) {\n            // UNC candidate \\\\localhost\\shares\\ddd\n            //               ^^^^^^^^^^^^^^^^^^^\n            if (!isPathSeparator(path.charCodeAt(2))) {\n                let pos = 3;\n                const start = pos;\n                for (; pos < len; pos++) {\n                    if (isPathSeparator(path.charCodeAt(pos))) {\n                        break;\n                    }\n                }\n                if (start !== pos && !isPathSeparator(path.charCodeAt(pos + 1))) {\n                    pos += 1;\n                    for (; pos < len; pos++) {\n                        if (isPathSeparator(path.charCodeAt(pos))) {\n                            return path.slice(0, pos + 1) // consume this separator\n                                .replace(/[\\\\/]/g, sep);\n                        }\n                    }\n                }\n            }\n        }\n        // /user/far\n        // ^\n        return sep;\n    }\n    else if (isWindowsDriveLetter(firstLetter)) {\n        // check for windows drive letter c:\\ or c:\n        if (path.charCodeAt(1) === 58 /* CharCode.Colon */) {\n            if (isPathSeparator(path.charCodeAt(2))) {\n                // C:\\fff\n                // ^^^\n                return path.slice(0, 2) + sep;\n            }\n            else {\n                // C:\n                // ^^\n                return path.slice(0, 2);\n            }\n        }\n    }\n    // check for URI\n    // scheme://authority/path\n    // ^^^^^^^^^^^^^^^^^^^\n    let pos = path.indexOf('://');\n    if (pos !== -1) {\n        pos += 3; // 3 -> \"://\".length\n        for (; pos < len; pos++) {\n            if (isPathSeparator(path.charCodeAt(pos))) {\n                return path.slice(0, pos + 1); // consume this separator\n            }\n        }\n    }\n    return '';\n}\n/**\n * @deprecated please use `IUriIdentityService.extUri.isEqualOrParent` instead. If\n * you are in a context without services, consider to pass down the `extUri` from the\n * outside, or use `extUriBiasedIgnorePathCase` if you know what you are doing.\n */\nexport function isEqualOrParent(base, parentCandidate, ignoreCase, separator = sep) {\n    if (base === parentCandidate) {\n        return true;\n    }\n    if (!base || !parentCandidate) {\n        return false;\n    }\n    if (parentCandidate.length > base.length) {\n        return false;\n    }\n    if (ignoreCase) {\n        const beginsWith = startsWithIgnoreCase(base, parentCandidate);\n        if (!beginsWith) {\n            return false;\n        }\n        if (parentCandidate.length === base.length) {\n            return true; // same path, different casing\n        }\n        let sepOffset = parentCandidate.length;\n        if (parentCandidate.charAt(parentCandidate.length - 1) === separator) {\n            sepOffset--; // adjust the expected sep offset in case our candidate already ends in separator character\n        }\n        return base.charAt(sepOffset) === separator;\n    }\n    if (parentCandidate.charAt(parentCandidate.length - 1) !== separator) {\n        parentCandidate += separator;\n    }\n    return base.indexOf(parentCandidate) === 0;\n}\nexport function isWindowsDriveLetter(char0) {\n    return char0 >= 65 /* CharCode.A */ && char0 <= 90 /* CharCode.Z */ || char0 >= 97 /* CharCode.a */ && char0 <= 122 /* CharCode.z */;\n}\nexport function hasDriveLetter(path, isWindowsOS = isWindows) {\n    if (isWindowsOS) {\n        return isWindowsDriveLetter(path.charCodeAt(0)) && path.charCodeAt(1) === 58 /* CharCode.Colon */;\n    }\n    return false;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/filters.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { LRUCache } from './map.js';\nimport { getKoreanAltChars } from './naturalLanguage/korean.js';\nimport * as strings from './strings.js';\n// Combined filters\n/**\n * @returns A filter which combines the provided set\n * of filters with an or. The *first* filters that\n * matches defined the return value of the returned\n * filter.\n */\nexport function or(...filter) {\n    return function (word, wordToMatchAgainst) {\n        for (let i = 0, len = filter.length; i < len; i++) {\n            const match = filter[i](word, wordToMatchAgainst);\n            if (match) {\n                return match;\n            }\n        }\n        return null;\n    };\n}\n// Prefix\nexport const matchesStrictPrefix = _matchesPrefix.bind(undefined, false);\nexport const matchesPrefix = _matchesPrefix.bind(undefined, true);\nfunction _matchesPrefix(ignoreCase, word, wordToMatchAgainst) {\n    if (!wordToMatchAgainst || wordToMatchAgainst.length < word.length) {\n        return null;\n    }\n    let matches;\n    if (ignoreCase) {\n        matches = strings.startsWithIgnoreCase(wordToMatchAgainst, word);\n    }\n    else {\n        matches = wordToMatchAgainst.indexOf(word) === 0;\n    }\n    if (!matches) {\n        return null;\n    }\n    return word.length > 0 ? [{ start: 0, end: word.length }] : [];\n}\n// Contiguous Substring\nexport function matchesContiguousSubString(word, wordToMatchAgainst) {\n    const index = wordToMatchAgainst.toLowerCase().indexOf(word.toLowerCase());\n    if (index === -1) {\n        return null;\n    }\n    return [{ start: index, end: index + word.length }];\n}\n// Substring\nexport function matchesSubString(word, wordToMatchAgainst) {\n    return _matchesSubString(word.toLowerCase(), wordToMatchAgainst.toLowerCase(), 0, 0);\n}\nfunction _matchesSubString(word, wordToMatchAgainst, i, j) {\n    if (i === word.length) {\n        return [];\n    }\n    else if (j === wordToMatchAgainst.length) {\n        return null;\n    }\n    else {\n        if (word[i] === wordToMatchAgainst[j]) {\n            let result = null;\n            if (result = _matchesSubString(word, wordToMatchAgainst, i + 1, j + 1)) {\n                return join({ start: j, end: j + 1 }, result);\n            }\n            return null;\n        }\n        return _matchesSubString(word, wordToMatchAgainst, i, j + 1);\n    }\n}\n// CamelCase\nfunction isLower(code) {\n    return 97 /* CharCode.a */ <= code && code <= 122 /* CharCode.z */;\n}\nexport function isUpper(code) {\n    return 65 /* CharCode.A */ <= code && code <= 90 /* CharCode.Z */;\n}\nfunction isNumber(code) {\n    return 48 /* CharCode.Digit0 */ <= code && code <= 57 /* CharCode.Digit9 */;\n}\nfunction isWhitespace(code) {\n    return (code === 32 /* CharCode.Space */\n        || code === 9 /* CharCode.Tab */\n        || code === 10 /* CharCode.LineFeed */\n        || code === 13 /* CharCode.CarriageReturn */);\n}\nconst wordSeparators = new Set();\n// These are chosen as natural word separators based on writen text.\n// It is a subset of the word separators used by the monaco editor.\n'()[]{}<>`\\'\"-/;:,.?!'\n    .split('')\n    .forEach(s => wordSeparators.add(s.charCodeAt(0)));\nfunction isWordSeparator(code) {\n    return isWhitespace(code) || wordSeparators.has(code);\n}\nfunction charactersMatch(codeA, codeB) {\n    return (codeA === codeB) || (isWordSeparator(codeA) && isWordSeparator(codeB));\n}\nconst alternateCharsCache = new Map();\n/**\n * Gets alternative codes to the character code passed in. This comes in the\n * form of an array of character codes, all of which must match _in order_ to\n * successfully match.\n *\n * @param code The character code to check.\n */\nfunction getAlternateCodes(code) {\n    if (alternateCharsCache.has(code)) {\n        return alternateCharsCache.get(code);\n    }\n    // NOTE: This function is written in such a way that it can be extended in\n    // the future, but right now the return type takes into account it's only\n    // supported by a single \"alt codes provider\".\n    // `ArrayLike<ArrayLike<number>>` is a more appropriate type if changed.\n    let result;\n    const codes = getKoreanAltChars(code);\n    if (codes) {\n        result = codes;\n    }\n    alternateCharsCache.set(code, result);\n    return result;\n}\nfunction isAlphanumeric(code) {\n    return isLower(code) || isUpper(code) || isNumber(code);\n}\nfunction join(head, tail) {\n    if (tail.length === 0) {\n        tail = [head];\n    }\n    else if (head.end === tail[0].start) {\n        tail[0].start = head.start;\n    }\n    else {\n        tail.unshift(head);\n    }\n    return tail;\n}\nfunction nextAnchor(camelCaseWord, start) {\n    for (let i = start; i < camelCaseWord.length; i++) {\n        const c = camelCaseWord.charCodeAt(i);\n        if (isUpper(c) || isNumber(c) || (i > 0 && !isAlphanumeric(camelCaseWord.charCodeAt(i - 1)))) {\n            return i;\n        }\n    }\n    return camelCaseWord.length;\n}\nfunction _matchesCamelCase(word, camelCaseWord, i, j) {\n    if (i === word.length) {\n        return [];\n    }\n    else if (j === camelCaseWord.length) {\n        return null;\n    }\n    else if (word[i] !== camelCaseWord[j].toLowerCase()) {\n        return null;\n    }\n    else {\n        let result = null;\n        let nextUpperIndex = j + 1;\n        result = _matchesCamelCase(word, camelCaseWord, i + 1, j + 1);\n        while (!result && (nextUpperIndex = nextAnchor(camelCaseWord, nextUpperIndex)) < camelCaseWord.length) {\n            result = _matchesCamelCase(word, camelCaseWord, i + 1, nextUpperIndex);\n            nextUpperIndex++;\n        }\n        return result === null ? null : join({ start: j, end: j + 1 }, result);\n    }\n}\n// Heuristic to avoid computing camel case matcher for words that don't\n// look like camelCaseWords.\nfunction analyzeCamelCaseWord(word) {\n    let upper = 0, lower = 0, alpha = 0, numeric = 0, code = 0;\n    for (let i = 0; i < word.length; i++) {\n        code = word.charCodeAt(i);\n        if (isUpper(code)) {\n            upper++;\n        }\n        if (isLower(code)) {\n            lower++;\n        }\n        if (isAlphanumeric(code)) {\n            alpha++;\n        }\n        if (isNumber(code)) {\n            numeric++;\n        }\n    }\n    const upperPercent = upper / word.length;\n    const lowerPercent = lower / word.length;\n    const alphaPercent = alpha / word.length;\n    const numericPercent = numeric / word.length;\n    return { upperPercent, lowerPercent, alphaPercent, numericPercent };\n}\nfunction isUpperCaseWord(analysis) {\n    const { upperPercent, lowerPercent } = analysis;\n    return lowerPercent === 0 && upperPercent > 0.6;\n}\nfunction isCamelCaseWord(analysis) {\n    const { upperPercent, lowerPercent, alphaPercent, numericPercent } = analysis;\n    return lowerPercent > 0.2 && upperPercent < 0.8 && alphaPercent > 0.6 && numericPercent < 0.2;\n}\n// Heuristic to avoid computing camel case matcher for words that don't\n// look like camel case patterns.\nfunction isCamelCasePattern(word) {\n    let upper = 0, lower = 0, code = 0, whitespace = 0;\n    for (let i = 0; i < word.length; i++) {\n        code = word.charCodeAt(i);\n        if (isUpper(code)) {\n            upper++;\n        }\n        if (isLower(code)) {\n            lower++;\n        }\n        if (isWhitespace(code)) {\n            whitespace++;\n        }\n    }\n    if ((upper === 0 || lower === 0) && whitespace === 0) {\n        return word.length <= 30;\n    }\n    else {\n        return upper <= 5;\n    }\n}\nexport function matchesCamelCase(word, camelCaseWord) {\n    if (!camelCaseWord) {\n        return null;\n    }\n    camelCaseWord = camelCaseWord.trim();\n    if (camelCaseWord.length === 0) {\n        return null;\n    }\n    if (!isCamelCasePattern(word)) {\n        return null;\n    }\n    // TODO: Consider removing this check\n    if (camelCaseWord.length > 60) {\n        camelCaseWord = camelCaseWord.substring(0, 60);\n    }\n    const analysis = analyzeCamelCaseWord(camelCaseWord);\n    if (!isCamelCaseWord(analysis)) {\n        if (!isUpperCaseWord(analysis)) {\n            return null;\n        }\n        camelCaseWord = camelCaseWord.toLowerCase();\n    }\n    let result = null;\n    let i = 0;\n    word = word.toLowerCase();\n    while (i < camelCaseWord.length && (result = _matchesCamelCase(word, camelCaseWord, 0, i)) === null) {\n        i = nextAnchor(camelCaseWord, i + 1);\n    }\n    return result;\n}\n// Matches beginning of words supporting non-ASCII languages\n// If `contiguous` is true then matches word with beginnings of the words in the target. E.g. \"pul\" will match \"Git: Pull\"\n// Otherwise also matches sub string of the word with beginnings of the words in the target. E.g. \"gp\" or \"g p\" will match \"Git: Pull\"\n// Useful in cases where the target is words (e.g. command labels)\nexport function matchesWords(word, target, contiguous = false) {\n    if (!target || target.length === 0) {\n        return null;\n    }\n    let result = null;\n    let targetIndex = 0;\n    word = word.toLowerCase();\n    target = target.toLowerCase();\n    while (targetIndex < target.length) {\n        result = _matchesWords(word, target, 0, targetIndex, contiguous);\n        if (result !== null) {\n            break;\n        }\n        targetIndex = nextWord(target, targetIndex + 1);\n    }\n    return result;\n}\nfunction _matchesWords(word, target, wordIndex, targetIndex, contiguous) {\n    let targetIndexOffset = 0;\n    if (wordIndex === word.length) {\n        return [];\n    }\n    else if (targetIndex === target.length) {\n        return null;\n    }\n    else if (!charactersMatch(word.charCodeAt(wordIndex), target.charCodeAt(targetIndex))) {\n        // Verify alternate characters before exiting\n        const altChars = getAlternateCodes(word.charCodeAt(wordIndex));\n        if (!altChars) {\n            return null;\n        }\n        for (let k = 0; k < altChars.length; k++) {\n            if (!charactersMatch(altChars[k], target.charCodeAt(targetIndex + k))) {\n                return null;\n            }\n        }\n        targetIndexOffset += altChars.length - 1;\n    }\n    let result = null;\n    let nextWordIndex = targetIndex + targetIndexOffset + 1;\n    result = _matchesWords(word, target, wordIndex + 1, nextWordIndex, contiguous);\n    if (!contiguous) {\n        while (!result && (nextWordIndex = nextWord(target, nextWordIndex)) < target.length) {\n            result = _matchesWords(word, target, wordIndex + 1, nextWordIndex, contiguous);\n            nextWordIndex++;\n        }\n    }\n    if (!result) {\n        return null;\n    }\n    // If the characters don't exactly match, then they must be word separators (see charactersMatch(...)).\n    // We don't want to include this in the matches but we don't want to throw the target out all together so we return `result`.\n    if (word.charCodeAt(wordIndex) !== target.charCodeAt(targetIndex)) {\n        // Verify alternate characters before exiting\n        const altChars = getAlternateCodes(word.charCodeAt(wordIndex));\n        if (!altChars) {\n            return result;\n        }\n        for (let k = 0; k < altChars.length; k++) {\n            if (altChars[k] !== target.charCodeAt(targetIndex + k)) {\n                return result;\n            }\n        }\n    }\n    return join({ start: targetIndex, end: targetIndex + targetIndexOffset + 1 }, result);\n}\nfunction nextWord(word, start) {\n    for (let i = start; i < word.length; i++) {\n        if (isWordSeparator(word.charCodeAt(i)) ||\n            (i > 0 && isWordSeparator(word.charCodeAt(i - 1)))) {\n            return i;\n        }\n    }\n    return word.length;\n}\n// Fuzzy\nconst fuzzyContiguousFilter = or(matchesPrefix, matchesCamelCase, matchesContiguousSubString);\nconst fuzzySeparateFilter = or(matchesPrefix, matchesCamelCase, matchesSubString);\nconst fuzzyRegExpCache = new LRUCache(10000); // bounded to 10000 elements\nexport function matchesFuzzy(word, wordToMatchAgainst, enableSeparateSubstringMatching = false) {\n    if (typeof word !== 'string' || typeof wordToMatchAgainst !== 'string') {\n        return null; // return early for invalid input\n    }\n    // Form RegExp for wildcard matches\n    let regexp = fuzzyRegExpCache.get(word);\n    if (!regexp) {\n        regexp = new RegExp(strings.convertSimple2RegExpPattern(word), 'i');\n        fuzzyRegExpCache.set(word, regexp);\n    }\n    // RegExp Filter\n    const match = regexp.exec(wordToMatchAgainst);\n    if (match) {\n        return [{ start: match.index, end: match.index + match[0].length }];\n    }\n    // Default Filter\n    return enableSeparateSubstringMatching ? fuzzySeparateFilter(word, wordToMatchAgainst) : fuzzyContiguousFilter(word, wordToMatchAgainst);\n}\n/**\n * Match pattern against word in a fuzzy way. As in IntelliSense and faster and more\n * powerful than `matchesFuzzy`\n */\nexport function matchesFuzzy2(pattern, word) {\n    const score = fuzzyScore(pattern, pattern.toLowerCase(), 0, word, word.toLowerCase(), 0, { firstMatchCanBeWeak: true, boostFullMatch: true });\n    return score ? createMatches(score) : null;\n}\nexport function anyScore(pattern, lowPattern, patternPos, word, lowWord, wordPos) {\n    const max = Math.min(13, pattern.length);\n    for (; patternPos < max; patternPos++) {\n        const result = fuzzyScore(pattern, lowPattern, patternPos, word, lowWord, wordPos, { firstMatchCanBeWeak: true, boostFullMatch: true });\n        if (result) {\n            return result;\n        }\n    }\n    return [0, wordPos];\n}\n//#region --- fuzzyScore ---\nexport function createMatches(score) {\n    if (typeof score === 'undefined') {\n        return [];\n    }\n    const res = [];\n    const wordPos = score[1];\n    for (let i = score.length - 1; i > 1; i--) {\n        const pos = score[i] + wordPos;\n        const last = res[res.length - 1];\n        if (last && last.end === pos) {\n            last.end = pos + 1;\n        }\n        else {\n            res.push({ start: pos, end: pos + 1 });\n        }\n    }\n    return res;\n}\nconst _maxLen = 128;\nfunction initTable() {\n    const table = [];\n    const row = [];\n    for (let i = 0; i <= _maxLen; i++) {\n        row[i] = 0;\n    }\n    for (let i = 0; i <= _maxLen; i++) {\n        table.push(row.slice(0));\n    }\n    return table;\n}\nfunction initArr(maxLen) {\n    const row = [];\n    for (let i = 0; i <= maxLen; i++) {\n        row[i] = 0;\n    }\n    return row;\n}\nconst _minWordMatchPos = initArr(2 * _maxLen); // min word position for a certain pattern position\nconst _maxWordMatchPos = initArr(2 * _maxLen); // max word position for a certain pattern position\nconst _diag = initTable(); // the length of a contiguous diagonal match\nconst _table = initTable();\nconst _arrows = initTable();\nconst _debug = false;\nfunction printTable(table, pattern, patternLen, word, wordLen) {\n    function pad(s, n, pad = ' ') {\n        while (s.length < n) {\n            s = pad + s;\n        }\n        return s;\n    }\n    let ret = ` |   |${word.split('').map(c => pad(c, 3)).join('|')}\\n`;\n    for (let i = 0; i <= patternLen; i++) {\n        if (i === 0) {\n            ret += ' |';\n        }\n        else {\n            ret += `${pattern[i - 1]}|`;\n        }\n        ret += table[i].slice(0, wordLen + 1).map(n => pad(n.toString(), 3)).join('|') + '\\n';\n    }\n    return ret;\n}\nfunction printTables(pattern, patternStart, word, wordStart) {\n    pattern = pattern.substr(patternStart);\n    word = word.substr(wordStart);\n    console.log(printTable(_table, pattern, pattern.length, word, word.length));\n    console.log(printTable(_arrows, pattern, pattern.length, word, word.length));\n    console.log(printTable(_diag, pattern, pattern.length, word, word.length));\n}\nfunction isSeparatorAtPos(value, index) {\n    if (index < 0 || index >= value.length) {\n        return false;\n    }\n    const code = value.codePointAt(index);\n    switch (code) {\n        case 95 /* CharCode.Underline */:\n        case 45 /* CharCode.Dash */:\n        case 46 /* CharCode.Period */:\n        case 32 /* CharCode.Space */:\n        case 47 /* CharCode.Slash */:\n        case 92 /* CharCode.Backslash */:\n        case 39 /* CharCode.SingleQuote */:\n        case 34 /* CharCode.DoubleQuote */:\n        case 58 /* CharCode.Colon */:\n        case 36 /* CharCode.DollarSign */:\n        case 60 /* CharCode.LessThan */:\n        case 62 /* CharCode.GreaterThan */:\n        case 40 /* CharCode.OpenParen */:\n        case 41 /* CharCode.CloseParen */:\n        case 91 /* CharCode.OpenSquareBracket */:\n        case 93 /* CharCode.CloseSquareBracket */:\n        case 123 /* CharCode.OpenCurlyBrace */:\n        case 125 /* CharCode.CloseCurlyBrace */:\n            return true;\n        case undefined:\n            return false;\n        default:\n            if (strings.isEmojiImprecise(code)) {\n                return true;\n            }\n            return false;\n    }\n}\nfunction isWhitespaceAtPos(value, index) {\n    if (index < 0 || index >= value.length) {\n        return false;\n    }\n    const code = value.charCodeAt(index);\n    switch (code) {\n        case 32 /* CharCode.Space */:\n        case 9 /* CharCode.Tab */:\n            return true;\n        default:\n            return false;\n    }\n}\nfunction isUpperCaseAtPos(pos, word, wordLow) {\n    return word[pos] !== wordLow[pos];\n}\nexport function isPatternInWord(patternLow, patternPos, patternLen, wordLow, wordPos, wordLen, fillMinWordPosArr = false) {\n    while (patternPos < patternLen && wordPos < wordLen) {\n        if (patternLow[patternPos] === wordLow[wordPos]) {\n            if (fillMinWordPosArr) {\n                // Remember the min word position for each pattern position\n                _minWordMatchPos[patternPos] = wordPos;\n            }\n            patternPos += 1;\n        }\n        wordPos += 1;\n    }\n    return patternPos === patternLen; // pattern must be exhausted\n}\nexport var FuzzyScore;\n(function (FuzzyScore) {\n    /**\n     * No matches and value `-100`\n     */\n    FuzzyScore.Default = ([-100, 0]);\n    function isDefault(score) {\n        return !score || (score.length === 2 && score[0] === -100 && score[1] === 0);\n    }\n    FuzzyScore.isDefault = isDefault;\n})(FuzzyScore || (FuzzyScore = {}));\nexport class FuzzyScoreOptions {\n    constructor(firstMatchCanBeWeak, boostFullMatch) {\n        this.firstMatchCanBeWeak = firstMatchCanBeWeak;\n        this.boostFullMatch = boostFullMatch;\n    }\n}\nFuzzyScoreOptions.default = { boostFullMatch: true, firstMatchCanBeWeak: false };\nexport function fuzzyScore(pattern, patternLow, patternStart, word, wordLow, wordStart, options = FuzzyScoreOptions.default) {\n    const patternLen = pattern.length > _maxLen ? _maxLen : pattern.length;\n    const wordLen = word.length > _maxLen ? _maxLen : word.length;\n    if (patternStart >= patternLen || wordStart >= wordLen || (patternLen - patternStart) > (wordLen - wordStart)) {\n        return undefined;\n    }\n    // Run a simple check if the characters of pattern occur\n    // (in order) at all in word. If that isn't the case we\n    // stop because no match will be possible\n    if (!isPatternInWord(patternLow, patternStart, patternLen, wordLow, wordStart, wordLen, true)) {\n        return undefined;\n    }\n    // Find the max matching word position for each pattern position\n    // NOTE: the min matching word position was filled in above, in the `isPatternInWord` call\n    _fillInMaxWordMatchPos(patternLen, wordLen, patternStart, wordStart, patternLow, wordLow);\n    let row = 1;\n    let column = 1;\n    let patternPos = patternStart;\n    let wordPos = wordStart;\n    const hasStrongFirstMatch = [false];\n    // There will be a match, fill in tables\n    for (row = 1, patternPos = patternStart; patternPos < patternLen; row++, patternPos++) {\n        // Reduce search space to possible matching word positions and to possible access from next row\n        const minWordMatchPos = _minWordMatchPos[patternPos];\n        const maxWordMatchPos = _maxWordMatchPos[patternPos];\n        const nextMaxWordMatchPos = (patternPos + 1 < patternLen ? _maxWordMatchPos[patternPos + 1] : wordLen);\n        for (column = minWordMatchPos - wordStart + 1, wordPos = minWordMatchPos; wordPos < nextMaxWordMatchPos; column++, wordPos++) {\n            let score = Number.MIN_SAFE_INTEGER;\n            let canComeDiag = false;\n            if (wordPos <= maxWordMatchPos) {\n                score = _doScore(pattern, patternLow, patternPos, patternStart, word, wordLow, wordPos, wordLen, wordStart, _diag[row - 1][column - 1] === 0, hasStrongFirstMatch);\n            }\n            let diagScore = 0;\n            if (score !== Number.MAX_SAFE_INTEGER) {\n                canComeDiag = true;\n                diagScore = score + _table[row - 1][column - 1];\n            }\n            const canComeLeft = wordPos > minWordMatchPos;\n            const leftScore = canComeLeft ? _table[row][column - 1] + (_diag[row][column - 1] > 0 ? -5 : 0) : 0; // penalty for a gap start\n            const canComeLeftLeft = wordPos > minWordMatchPos + 1 && _diag[row][column - 1] > 0;\n            const leftLeftScore = canComeLeftLeft ? _table[row][column - 2] + (_diag[row][column - 2] > 0 ? -5 : 0) : 0; // penalty for a gap start\n            if (canComeLeftLeft && (!canComeLeft || leftLeftScore >= leftScore) && (!canComeDiag || leftLeftScore >= diagScore)) {\n                // always prefer choosing left left to jump over a diagonal because that means a match is earlier in the word\n                _table[row][column] = leftLeftScore;\n                _arrows[row][column] = 3 /* Arrow.LeftLeft */;\n                _diag[row][column] = 0;\n            }\n            else if (canComeLeft && (!canComeDiag || leftScore >= diagScore)) {\n                // always prefer choosing left since that means a match is earlier in the word\n                _table[row][column] = leftScore;\n                _arrows[row][column] = 2 /* Arrow.Left */;\n                _diag[row][column] = 0;\n            }\n            else if (canComeDiag) {\n                _table[row][column] = diagScore;\n                _arrows[row][column] = 1 /* Arrow.Diag */;\n                _diag[row][column] = _diag[row - 1][column - 1] + 1;\n            }\n            else {\n                throw new Error(`not possible`);\n            }\n        }\n    }\n    if (_debug) {\n        printTables(pattern, patternStart, word, wordStart);\n    }\n    if (!hasStrongFirstMatch[0] && !options.firstMatchCanBeWeak) {\n        return undefined;\n    }\n    row--;\n    column--;\n    const result = [_table[row][column], wordStart];\n    let backwardsDiagLength = 0;\n    let maxMatchColumn = 0;\n    while (row >= 1) {\n        // Find the column where we go diagonally up\n        let diagColumn = column;\n        do {\n            const arrow = _arrows[row][diagColumn];\n            if (arrow === 3 /* Arrow.LeftLeft */) {\n                diagColumn = diagColumn - 2;\n            }\n            else if (arrow === 2 /* Arrow.Left */) {\n                diagColumn = diagColumn - 1;\n            }\n            else {\n                // found the diagonal\n                break;\n            }\n        } while (diagColumn >= 1);\n        // Overturn the \"forwards\" decision if keeping the \"backwards\" diagonal would give a better match\n        if (backwardsDiagLength > 1 // only if we would have a contiguous match of 3 characters\n            && patternLow[patternStart + row - 1] === wordLow[wordStart + column - 1] // only if we can do a contiguous match diagonally\n            && !isUpperCaseAtPos(diagColumn + wordStart - 1, word, wordLow) // only if the forwards chose diagonal is not an uppercase\n            && backwardsDiagLength + 1 > _diag[row][diagColumn] // only if our contiguous match would be longer than the \"forwards\" contiguous match\n        ) {\n            diagColumn = column;\n        }\n        if (diagColumn === column) {\n            // this is a contiguous match\n            backwardsDiagLength++;\n        }\n        else {\n            backwardsDiagLength = 1;\n        }\n        if (!maxMatchColumn) {\n            // remember the last matched column\n            maxMatchColumn = diagColumn;\n        }\n        row--;\n        column = diagColumn - 1;\n        result.push(column);\n    }\n    if (wordLen - wordStart === patternLen && options.boostFullMatch) {\n        // the word matches the pattern with all characters!\n        // giving the score a total match boost (to come up ahead other words)\n        result[0] += 2;\n    }\n    // Add 1 penalty for each skipped character in the word\n    const skippedCharsCount = maxMatchColumn - patternLen;\n    result[0] -= skippedCharsCount;\n    return result;\n}\nfunction _fillInMaxWordMatchPos(patternLen, wordLen, patternStart, wordStart, patternLow, wordLow) {\n    let patternPos = patternLen - 1;\n    let wordPos = wordLen - 1;\n    while (patternPos >= patternStart && wordPos >= wordStart) {\n        if (patternLow[patternPos] === wordLow[wordPos]) {\n            _maxWordMatchPos[patternPos] = wordPos;\n            patternPos--;\n        }\n        wordPos--;\n    }\n}\nfunction _doScore(pattern, patternLow, patternPos, patternStart, word, wordLow, wordPos, wordLen, wordStart, newMatchStart, outFirstMatchStrong) {\n    if (patternLow[patternPos] !== wordLow[wordPos]) {\n        return Number.MIN_SAFE_INTEGER;\n    }\n    let score = 1;\n    let isGapLocation = false;\n    if (wordPos === (patternPos - patternStart)) {\n        // common prefix: `foobar <-> foobaz`\n        //                            ^^^^^\n        score = pattern[patternPos] === word[wordPos] ? 7 : 5;\n    }\n    else if (isUpperCaseAtPos(wordPos, word, wordLow) && (wordPos === 0 || !isUpperCaseAtPos(wordPos - 1, word, wordLow))) {\n        // hitting upper-case: `foo <-> forOthers`\n        //                              ^^ ^\n        score = pattern[patternPos] === word[wordPos] ? 7 : 5;\n        isGapLocation = true;\n    }\n    else if (isSeparatorAtPos(wordLow, wordPos) && (wordPos === 0 || !isSeparatorAtPos(wordLow, wordPos - 1))) {\n        // hitting a separator: `. <-> foo.bar`\n        //                                ^\n        score = 5;\n    }\n    else if (isSeparatorAtPos(wordLow, wordPos - 1) || isWhitespaceAtPos(wordLow, wordPos - 1)) {\n        // post separator: `foo <-> bar_foo`\n        //                              ^^^\n        score = 5;\n        isGapLocation = true;\n    }\n    if (score > 1 && patternPos === patternStart) {\n        outFirstMatchStrong[0] = true;\n    }\n    if (!isGapLocation) {\n        isGapLocation = isUpperCaseAtPos(wordPos, word, wordLow) || isSeparatorAtPos(wordLow, wordPos - 1) || isWhitespaceAtPos(wordLow, wordPos - 1);\n    }\n    //\n    if (patternPos === patternStart) { // first character in pattern\n        if (wordPos > wordStart) {\n            // the first pattern character would match a word character that is not at the word start\n            // so introduce a penalty to account for the gap preceding this match\n            score -= isGapLocation ? 3 : 5;\n        }\n    }\n    else {\n        if (newMatchStart) {\n            // this would be the beginning of a new match (i.e. there would be a gap before this location)\n            score += isGapLocation ? 2 : 0;\n        }\n        else {\n            // this is part of a contiguous match, so give it a slight bonus, but do so only if it would not be a preferred gap location\n            score += isGapLocation ? 0 : 1;\n        }\n    }\n    if (wordPos + 1 === wordLen) {\n        // we always penalize gaps, but this gives unfair advantages to a match that would match the last character in the word\n        // so pretend there is a gap after the last character in the word to normalize things\n        score -= isGapLocation ? 3 : 5;\n    }\n    return score;\n}\n//#endregion\n//#region --- graceful ---\nexport function fuzzyScoreGracefulAggressive(pattern, lowPattern, patternPos, word, lowWord, wordPos, options) {\n    return fuzzyScoreWithPermutations(pattern, lowPattern, patternPos, word, lowWord, wordPos, true, options);\n}\nfunction fuzzyScoreWithPermutations(pattern, lowPattern, patternPos, word, lowWord, wordPos, aggressive, options) {\n    let top = fuzzyScore(pattern, lowPattern, patternPos, word, lowWord, wordPos, options);\n    if (top && !aggressive) {\n        // when using the original pattern yield a result we`\n        // return it unless we are aggressive and try to find\n        // a better alignment, e.g. `cno` -> `^co^ns^ole` or `^c^o^nsole`.\n        return top;\n    }\n    if (pattern.length >= 3) {\n        // When the pattern is long enough then try a few (max 7)\n        // permutations of the pattern to find a better match. The\n        // permutations only swap neighbouring characters, e.g\n        // `cnoso` becomes `conso`, `cnsoo`, `cnoos`.\n        const tries = Math.min(7, pattern.length - 1);\n        for (let movingPatternPos = patternPos + 1; movingPatternPos < tries; movingPatternPos++) {\n            const newPattern = nextTypoPermutation(pattern, movingPatternPos);\n            if (newPattern) {\n                const candidate = fuzzyScore(newPattern, newPattern.toLowerCase(), patternPos, word, lowWord, wordPos, options);\n                if (candidate) {\n                    candidate[0] -= 3; // permutation penalty\n                    if (!top || candidate[0] > top[0]) {\n                        top = candidate;\n                    }\n                }\n            }\n        }\n    }\n    return top;\n}\nfunction nextTypoPermutation(pattern, patternPos) {\n    if (patternPos + 1 >= pattern.length) {\n        return undefined;\n    }\n    const swap1 = pattern[patternPos];\n    const swap2 = pattern[patternPos + 1];\n    if (swap1 === swap2) {\n        return undefined;\n    }\n    return pattern.slice(0, patternPos)\n        + swap2\n        + swap1\n        + pattern.slice(patternPos + 2);\n}\n//#endregion\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/functional.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * Given a function, returns a function that is only calling that function once.\n */\nexport function createSingleCallFunction(fn, fnDidRunCallback) {\n    const _this = this;\n    let didCall = false;\n    let result;\n    return function () {\n        if (didCall) {\n            return result;\n        }\n        didCall = true;\n        if (fnDidRunCallback) {\n            try {\n                result = fn.apply(_this, arguments);\n            }\n            finally {\n                fnDidRunCallback();\n            }\n        }\n        else {\n            result = fn.apply(_this, arguments);\n        }\n        return result;\n    };\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/fuzzyScorer.js",
    "content": "import { createMatches as createFuzzyMatches, fuzzyScore } from './filters.js';\nimport { sep } from './path.js';\nimport { isWindows } from './platform.js';\nimport { stripWildcards } from './strings.js';\nconst NO_SCORE2 = [undefined, []];\nexport function scoreFuzzy2(target, query, patternStart = 0, wordStart = 0) {\n    // Score: multiple inputs\n    const preparedQuery = query;\n    if (preparedQuery.values && preparedQuery.values.length > 1) {\n        return doScoreFuzzy2Multiple(target, preparedQuery.values, patternStart, wordStart);\n    }\n    // Score: single input\n    return doScoreFuzzy2Single(target, query, patternStart, wordStart);\n}\nfunction doScoreFuzzy2Multiple(target, query, patternStart, wordStart) {\n    let totalScore = 0;\n    const totalMatches = [];\n    for (const queryPiece of query) {\n        const [score, matches] = doScoreFuzzy2Single(target, queryPiece, patternStart, wordStart);\n        if (typeof score !== 'number') {\n            // if a single query value does not match, return with\n            // no score entirely, we require all queries to match\n            return NO_SCORE2;\n        }\n        totalScore += score;\n        totalMatches.push(...matches);\n    }\n    // if we have a score, ensure that the positions are\n    // sorted in ascending order and distinct\n    return [totalScore, normalizeMatches(totalMatches)];\n}\nfunction doScoreFuzzy2Single(target, query, patternStart, wordStart) {\n    const score = fuzzyScore(query.original, query.originalLowercase, patternStart, target, target.toLowerCase(), wordStart, { firstMatchCanBeWeak: true, boostFullMatch: true });\n    if (!score) {\n        return NO_SCORE2;\n    }\n    return [score[0], createFuzzyMatches(score)];\n}\nconst NO_ITEM_SCORE = Object.freeze({ score: 0 });\nfunction normalizeMatches(matches) {\n    // sort matches by start to be able to normalize\n    const sortedMatches = matches.sort((matchA, matchB) => {\n        return matchA.start - matchB.start;\n    });\n    // merge matches that overlap\n    const normalizedMatches = [];\n    let currentMatch = undefined;\n    for (const match of sortedMatches) {\n        // if we have no current match or the matches\n        // do not overlap, we take it as is and remember\n        // it for future merging\n        if (!currentMatch || !matchOverlaps(currentMatch, match)) {\n            currentMatch = match;\n            normalizedMatches.push(match);\n        }\n        // otherwise we merge the matches\n        else {\n            currentMatch.start = Math.min(currentMatch.start, match.start);\n            currentMatch.end = Math.max(currentMatch.end, match.end);\n        }\n    }\n    return normalizedMatches;\n}\nfunction matchOverlaps(matchA, matchB) {\n    if (matchA.end < matchB.start) {\n        return false; // A ends before B starts\n    }\n    if (matchB.end < matchA.start) {\n        return false; // B ends before A starts\n    }\n    return true;\n}\n/*\n * If a query is wrapped in quotes, the user does not want to\n * use fuzzy search for this query.\n */\nfunction queryExpectsExactMatch(query) {\n    return query.startsWith('\"') && query.endsWith('\"');\n}\n/**\n * Helper function to prepare a search value for scoring by removing unwanted characters\n * and allowing to score on multiple pieces separated by whitespace character.\n */\nconst MULTIPLE_QUERY_VALUES_SEPARATOR = ' ';\nexport function prepareQuery(original) {\n    if (typeof original !== 'string') {\n        original = '';\n    }\n    const originalLowercase = original.toLowerCase();\n    const { pathNormalized, normalized, normalizedLowercase } = normalizeQuery(original);\n    const containsPathSeparator = pathNormalized.indexOf(sep) >= 0;\n    const expectExactMatch = queryExpectsExactMatch(original);\n    let values = undefined;\n    const originalSplit = original.split(MULTIPLE_QUERY_VALUES_SEPARATOR);\n    if (originalSplit.length > 1) {\n        for (const originalPiece of originalSplit) {\n            const expectExactMatchPiece = queryExpectsExactMatch(originalPiece);\n            const { pathNormalized: pathNormalizedPiece, normalized: normalizedPiece, normalizedLowercase: normalizedLowercasePiece } = normalizeQuery(originalPiece);\n            if (normalizedPiece) {\n                if (!values) {\n                    values = [];\n                }\n                values.push({\n                    original: originalPiece,\n                    originalLowercase: originalPiece.toLowerCase(),\n                    pathNormalized: pathNormalizedPiece,\n                    normalized: normalizedPiece,\n                    normalizedLowercase: normalizedLowercasePiece,\n                    expectContiguousMatch: expectExactMatchPiece\n                });\n            }\n        }\n    }\n    return { original, originalLowercase, pathNormalized, normalized, normalizedLowercase, values, containsPathSeparator, expectContiguousMatch: expectExactMatch };\n}\nfunction normalizeQuery(original) {\n    let pathNormalized;\n    if (isWindows) {\n        pathNormalized = original.replace(/\\//g, sep); // Help Windows users to search for paths when using slash\n    }\n    else {\n        pathNormalized = original.replace(/\\\\/g, sep); // Help macOS/Linux users to search for paths when using backslash\n    }\n    // we remove quotes here because quotes are used for exact match search\n    const normalized = stripWildcards(pathNormalized).replace(/\\s|\"/g, '');\n    return {\n        pathNormalized,\n        normalized,\n        normalizedLowercase: normalized.toLowerCase()\n    };\n}\nexport function pieceToQuery(arg1) {\n    if (Array.isArray(arg1)) {\n        return prepareQuery(arg1.map(piece => piece.original).join(MULTIPLE_QUERY_VALUES_SEPARATOR));\n    }\n    return prepareQuery(arg1.original);\n}\n//#endregion\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/glob.js",
    "content": "import { isThenable } from './async.js';\nimport { isEqualOrParent } from './extpath.js';\nimport { LRUCache } from './map.js';\nimport { basename, extname, posix, sep } from './path.js';\nimport { isLinux } from './platform.js';\nimport { escapeRegExpCharacters, ltrim } from './strings.js';\nexport const GLOBSTAR = '**';\nexport const GLOB_SPLIT = '/';\nconst PATH_REGEX = '[/\\\\\\\\]'; // any slash or backslash\nconst NO_PATH_REGEX = '[^/\\\\\\\\]'; // any non-slash and non-backslash\nconst ALL_FORWARD_SLASHES = /\\//g;\nfunction starsToRegExp(starCount, isLastPattern) {\n    switch (starCount) {\n        case 0:\n            return '';\n        case 1:\n            return `${NO_PATH_REGEX}*?`; // 1 star matches any number of characters except path separator (/ and \\) - non greedy (?)\n        default:\n            // Matches:  (Path Sep OR Path Val followed by Path Sep) 0-many times except when it's the last pattern\n            //           in which case also matches (Path Sep followed by Path Val)\n            // Group is non capturing because we don't need to capture at all (?:...)\n            // Overall we use non-greedy matching because it could be that we match too much\n            return `(?:${PATH_REGEX}|${NO_PATH_REGEX}+${PATH_REGEX}${isLastPattern ? `|${PATH_REGEX}${NO_PATH_REGEX}+` : ''})*?`;\n    }\n}\nexport function splitGlobAware(pattern, splitChar) {\n    if (!pattern) {\n        return [];\n    }\n    const segments = [];\n    let inBraces = false;\n    let inBrackets = false;\n    let curVal = '';\n    for (const char of pattern) {\n        switch (char) {\n            case splitChar:\n                if (!inBraces && !inBrackets) {\n                    segments.push(curVal);\n                    curVal = '';\n                    continue;\n                }\n                break;\n            case '{':\n                inBraces = true;\n                break;\n            case '}':\n                inBraces = false;\n                break;\n            case '[':\n                inBrackets = true;\n                break;\n            case ']':\n                inBrackets = false;\n                break;\n        }\n        curVal += char;\n    }\n    // Tail\n    if (curVal) {\n        segments.push(curVal);\n    }\n    return segments;\n}\nfunction parseRegExp(pattern) {\n    if (!pattern) {\n        return '';\n    }\n    let regEx = '';\n    // Split up into segments for each slash found\n    const segments = splitGlobAware(pattern, GLOB_SPLIT);\n    // Special case where we only have globstars\n    if (segments.every(segment => segment === GLOBSTAR)) {\n        regEx = '.*';\n    }\n    // Build regex over segments\n    else {\n        let previousSegmentWasGlobStar = false;\n        segments.forEach((segment, index) => {\n            // Treat globstar specially\n            if (segment === GLOBSTAR) {\n                // if we have more than one globstar after another, just ignore it\n                if (previousSegmentWasGlobStar) {\n                    return;\n                }\n                regEx += starsToRegExp(2, index === segments.length - 1);\n            }\n            // Anything else, not globstar\n            else {\n                // States\n                let inBraces = false;\n                let braceVal = '';\n                let inBrackets = false;\n                let bracketVal = '';\n                for (const char of segment) {\n                    // Support brace expansion\n                    if (char !== '}' && inBraces) {\n                        braceVal += char;\n                        continue;\n                    }\n                    // Support brackets\n                    if (inBrackets && (char !== ']' || !bracketVal) /* ] is literally only allowed as first character in brackets to match it */) {\n                        let res;\n                        // range operator\n                        if (char === '-') {\n                            res = char;\n                        }\n                        // negation operator (only valid on first index in bracket)\n                        else if ((char === '^' || char === '!') && !bracketVal) {\n                            res = '^';\n                        }\n                        // glob split matching is not allowed within character ranges\n                        // see http://man7.org/linux/man-pages/man7/glob.7.html\n                        else if (char === GLOB_SPLIT) {\n                            res = '';\n                        }\n                        // anything else gets escaped\n                        else {\n                            res = escapeRegExpCharacters(char);\n                        }\n                        bracketVal += res;\n                        continue;\n                    }\n                    switch (char) {\n                        case '{':\n                            inBraces = true;\n                            continue;\n                        case '[':\n                            inBrackets = true;\n                            continue;\n                        case '}': {\n                            const choices = splitGlobAware(braceVal, ',');\n                            // Converts {foo,bar} => [foo|bar]\n                            const braceRegExp = `(?:${choices.map(choice => parseRegExp(choice)).join('|')})`;\n                            regEx += braceRegExp;\n                            inBraces = false;\n                            braceVal = '';\n                            break;\n                        }\n                        case ']': {\n                            regEx += ('[' + bracketVal + ']');\n                            inBrackets = false;\n                            bracketVal = '';\n                            break;\n                        }\n                        case '?':\n                            regEx += NO_PATH_REGEX; // 1 ? matches any single character except path separator (/ and \\)\n                            continue;\n                        case '*':\n                            regEx += starsToRegExp(1);\n                            continue;\n                        default:\n                            regEx += escapeRegExpCharacters(char);\n                    }\n                }\n                // Tail: Add the slash we had split on if there is more to\n                // come and the remaining pattern is not a globstar\n                // For example if pattern: some/**/*.js we want the \"/\" after\n                // some to be included in the RegEx to prevent a folder called\n                // \"something\" to match as well.\n                if (index < segments.length - 1 && // more segments to come after this\n                    (segments[index + 1] !== GLOBSTAR || // next segment is not **, or...\n                        index + 2 < segments.length // ...next segment is ** but there is more segments after that\n                    )) {\n                    regEx += PATH_REGEX;\n                }\n            }\n            // update globstar state\n            previousSegmentWasGlobStar = (segment === GLOBSTAR);\n        });\n    }\n    return regEx;\n}\n// regexes to check for trivial glob patterns that just check for String#endsWith\nconst T1 = /^\\*\\*\\/\\*\\.[\\w\\.-]+$/; // **/*.something\nconst T2 = /^\\*\\*\\/([\\w\\.-]+)\\/?$/; // **/something\nconst T3 = /^{\\*\\*\\/\\*?[\\w\\.-]+\\/?(,\\*\\*\\/\\*?[\\w\\.-]+\\/?)*}$/; // {**/*.something,**/*.else} or {**/package.json,**/project.json}\nconst T3_2 = /^{\\*\\*\\/\\*?[\\w\\.-]+(\\/(\\*\\*)?)?(,\\*\\*\\/\\*?[\\w\\.-]+(\\/(\\*\\*)?)?)*}$/; // Like T3, with optional trailing /**\nconst T4 = /^\\*\\*((\\/[\\w\\.-]+)+)\\/?$/; // **/something/else\nconst T5 = /^([\\w\\.-]+(\\/[\\w\\.-]+)*)\\/?$/; // something/else\nconst CACHE = new LRUCache(10000); // bounded to 10000 elements\nconst FALSE = function () {\n    return false;\n};\nconst NULL = function () {\n    return null;\n};\nfunction parsePattern(arg1, options) {\n    if (!arg1) {\n        return NULL;\n    }\n    // Handle relative patterns\n    let pattern;\n    if (typeof arg1 !== 'string') {\n        pattern = arg1.pattern;\n    }\n    else {\n        pattern = arg1;\n    }\n    // Whitespace trimming\n    pattern = pattern.trim();\n    // Check cache\n    const patternKey = `${pattern}_${!!options.trimForExclusions}`;\n    let parsedPattern = CACHE.get(patternKey);\n    if (parsedPattern) {\n        return wrapRelativePattern(parsedPattern, arg1);\n    }\n    // Check for Trivials\n    let match;\n    if (T1.test(pattern)) {\n        parsedPattern = trivia1(pattern.substr(4), pattern); // common pattern: **/*.txt just need endsWith check\n    }\n    else if (match = T2.exec(trimForExclusions(pattern, options))) { // common pattern: **/some.txt just need basename check\n        parsedPattern = trivia2(match[1], pattern);\n    }\n    else if ((options.trimForExclusions ? T3_2 : T3).test(pattern)) { // repetition of common patterns (see above) {**/*.txt,**/*.png}\n        parsedPattern = trivia3(pattern, options);\n    }\n    else if (match = T4.exec(trimForExclusions(pattern, options))) { // common pattern: **/something/else just need endsWith check\n        parsedPattern = trivia4and5(match[1].substr(1), pattern, true);\n    }\n    else if (match = T5.exec(trimForExclusions(pattern, options))) { // common pattern: something/else just need equals check\n        parsedPattern = trivia4and5(match[1], pattern, false);\n    }\n    // Otherwise convert to pattern\n    else {\n        parsedPattern = toRegExp(pattern);\n    }\n    // Cache\n    CACHE.set(patternKey, parsedPattern);\n    return wrapRelativePattern(parsedPattern, arg1);\n}\nfunction wrapRelativePattern(parsedPattern, arg2) {\n    if (typeof arg2 === 'string') {\n        return parsedPattern;\n    }\n    const wrappedPattern = function (path, basename) {\n        if (!isEqualOrParent(path, arg2.base, !isLinux)) {\n            // skip glob matching if `base` is not a parent of `path`\n            return null;\n        }\n        // Given we have checked `base` being a parent of `path`,\n        // we can now remove the `base` portion of the `path`\n        // and only match on the remaining path components\n        // For that we try to extract the portion of the `path`\n        // that comes after the `base` portion. We have to account\n        // for the fact that `base` might end in a path separator\n        // (https://github.com/microsoft/vscode/issues/162498)\n        return parsedPattern(ltrim(path.substr(arg2.base.length), sep), basename);\n    };\n    // Make sure to preserve associated metadata\n    wrappedPattern.allBasenames = parsedPattern.allBasenames;\n    wrappedPattern.allPaths = parsedPattern.allPaths;\n    wrappedPattern.basenames = parsedPattern.basenames;\n    wrappedPattern.patterns = parsedPattern.patterns;\n    return wrappedPattern;\n}\nfunction trimForExclusions(pattern, options) {\n    return options.trimForExclusions && pattern.endsWith('/**') ? pattern.substr(0, pattern.length - 2) : pattern; // dropping **, tailing / is dropped later\n}\n// common pattern: **/*.txt just need endsWith check\nfunction trivia1(base, pattern) {\n    return function (path, basename) {\n        return typeof path === 'string' && path.endsWith(base) ? pattern : null;\n    };\n}\n// common pattern: **/some.txt just need basename check\nfunction trivia2(base, pattern) {\n    const slashBase = `/${base}`;\n    const backslashBase = `\\\\${base}`;\n    const parsedPattern = function (path, basename) {\n        if (typeof path !== 'string') {\n            return null;\n        }\n        if (basename) {\n            return basename === base ? pattern : null;\n        }\n        return path === base || path.endsWith(slashBase) || path.endsWith(backslashBase) ? pattern : null;\n    };\n    const basenames = [base];\n    parsedPattern.basenames = basenames;\n    parsedPattern.patterns = [pattern];\n    parsedPattern.allBasenames = basenames;\n    return parsedPattern;\n}\n// repetition of common patterns (see above) {**/*.txt,**/*.png}\nfunction trivia3(pattern, options) {\n    const parsedPatterns = aggregateBasenameMatches(pattern.slice(1, -1)\n        .split(',')\n        .map(pattern => parsePattern(pattern, options))\n        .filter(pattern => pattern !== NULL), pattern);\n    const patternsLength = parsedPatterns.length;\n    if (!patternsLength) {\n        return NULL;\n    }\n    if (patternsLength === 1) {\n        return parsedPatterns[0];\n    }\n    const parsedPattern = function (path, basename) {\n        for (let i = 0, n = parsedPatterns.length; i < n; i++) {\n            if (parsedPatterns[i](path, basename)) {\n                return pattern;\n            }\n        }\n        return null;\n    };\n    const withBasenames = parsedPatterns.find(pattern => !!pattern.allBasenames);\n    if (withBasenames) {\n        parsedPattern.allBasenames = withBasenames.allBasenames;\n    }\n    const allPaths = parsedPatterns.reduce((all, current) => current.allPaths ? all.concat(current.allPaths) : all, []);\n    if (allPaths.length) {\n        parsedPattern.allPaths = allPaths;\n    }\n    return parsedPattern;\n}\n// common patterns: **/something/else just need endsWith check, something/else just needs and equals check\nfunction trivia4and5(targetPath, pattern, matchPathEnds) {\n    const usingPosixSep = sep === posix.sep;\n    const nativePath = usingPosixSep ? targetPath : targetPath.replace(ALL_FORWARD_SLASHES, sep);\n    const nativePathEnd = sep + nativePath;\n    const targetPathEnd = posix.sep + targetPath;\n    let parsedPattern;\n    if (matchPathEnds) {\n        parsedPattern = function (path, basename) {\n            return typeof path === 'string' && ((path === nativePath || path.endsWith(nativePathEnd)) || !usingPosixSep && (path === targetPath || path.endsWith(targetPathEnd))) ? pattern : null;\n        };\n    }\n    else {\n        parsedPattern = function (path, basename) {\n            return typeof path === 'string' && (path === nativePath || (!usingPosixSep && path === targetPath)) ? pattern : null;\n        };\n    }\n    parsedPattern.allPaths = [(matchPathEnds ? '*/' : './') + targetPath];\n    return parsedPattern;\n}\nfunction toRegExp(pattern) {\n    try {\n        const regExp = new RegExp(`^${parseRegExp(pattern)}$`);\n        return function (path) {\n            regExp.lastIndex = 0; // reset RegExp to its initial state to reuse it!\n            return typeof path === 'string' && regExp.test(path) ? pattern : null;\n        };\n    }\n    catch (error) {\n        return NULL;\n    }\n}\nexport function match(arg1, path, hasSibling) {\n    if (!arg1 || typeof path !== 'string') {\n        return false;\n    }\n    return parse(arg1)(path, undefined, hasSibling);\n}\nexport function parse(arg1, options = {}) {\n    if (!arg1) {\n        return FALSE;\n    }\n    // Glob with String\n    if (typeof arg1 === 'string' || isRelativePattern(arg1)) {\n        const parsedPattern = parsePattern(arg1, options);\n        if (parsedPattern === NULL) {\n            return FALSE;\n        }\n        const resultPattern = function (path, basename) {\n            return !!parsedPattern(path, basename);\n        };\n        if (parsedPattern.allBasenames) {\n            resultPattern.allBasenames = parsedPattern.allBasenames;\n        }\n        if (parsedPattern.allPaths) {\n            resultPattern.allPaths = parsedPattern.allPaths;\n        }\n        return resultPattern;\n    }\n    // Glob with Expression\n    return parsedExpression(arg1, options);\n}\nexport function isRelativePattern(obj) {\n    const rp = obj;\n    if (!rp) {\n        return false;\n    }\n    return typeof rp.base === 'string' && typeof rp.pattern === 'string';\n}\nfunction parsedExpression(expression, options) {\n    const parsedPatterns = aggregateBasenameMatches(Object.getOwnPropertyNames(expression)\n        .map(pattern => parseExpressionPattern(pattern, expression[pattern], options))\n        .filter(pattern => pattern !== NULL));\n    const patternsLength = parsedPatterns.length;\n    if (!patternsLength) {\n        return NULL;\n    }\n    if (!parsedPatterns.some(parsedPattern => !!parsedPattern.requiresSiblings)) {\n        if (patternsLength === 1) {\n            return parsedPatterns[0];\n        }\n        const resultExpression = function (path, basename) {\n            let resultPromises = undefined;\n            for (let i = 0, n = parsedPatterns.length; i < n; i++) {\n                const result = parsedPatterns[i](path, basename);\n                if (typeof result === 'string') {\n                    return result; // immediately return as soon as the first expression matches\n                }\n                // If the result is a promise, we have to keep it for\n                // later processing and await the result properly.\n                if (isThenable(result)) {\n                    if (!resultPromises) {\n                        resultPromises = [];\n                    }\n                    resultPromises.push(result);\n                }\n            }\n            // With result promises, we have to loop over each and\n            // await the result before we can return any result.\n            if (resultPromises) {\n                return (async () => {\n                    for (const resultPromise of resultPromises) {\n                        const result = await resultPromise;\n                        if (typeof result === 'string') {\n                            return result;\n                        }\n                    }\n                    return null;\n                })();\n            }\n            return null;\n        };\n        const withBasenames = parsedPatterns.find(pattern => !!pattern.allBasenames);\n        if (withBasenames) {\n            resultExpression.allBasenames = withBasenames.allBasenames;\n        }\n        const allPaths = parsedPatterns.reduce((all, current) => current.allPaths ? all.concat(current.allPaths) : all, []);\n        if (allPaths.length) {\n            resultExpression.allPaths = allPaths;\n        }\n        return resultExpression;\n    }\n    const resultExpression = function (path, base, hasSibling) {\n        let name = undefined;\n        let resultPromises = undefined;\n        for (let i = 0, n = parsedPatterns.length; i < n; i++) {\n            // Pattern matches path\n            const parsedPattern = parsedPatterns[i];\n            if (parsedPattern.requiresSiblings && hasSibling) {\n                if (!base) {\n                    base = basename(path);\n                }\n                if (!name) {\n                    name = base.substr(0, base.length - extname(path).length);\n                }\n            }\n            const result = parsedPattern(path, base, name, hasSibling);\n            if (typeof result === 'string') {\n                return result; // immediately return as soon as the first expression matches\n            }\n            // If the result is a promise, we have to keep it for\n            // later processing and await the result properly.\n            if (isThenable(result)) {\n                if (!resultPromises) {\n                    resultPromises = [];\n                }\n                resultPromises.push(result);\n            }\n        }\n        // With result promises, we have to loop over each and\n        // await the result before we can return any result.\n        if (resultPromises) {\n            return (async () => {\n                for (const resultPromise of resultPromises) {\n                    const result = await resultPromise;\n                    if (typeof result === 'string') {\n                        return result;\n                    }\n                }\n                return null;\n            })();\n        }\n        return null;\n    };\n    const withBasenames = parsedPatterns.find(pattern => !!pattern.allBasenames);\n    if (withBasenames) {\n        resultExpression.allBasenames = withBasenames.allBasenames;\n    }\n    const allPaths = parsedPatterns.reduce((all, current) => current.allPaths ? all.concat(current.allPaths) : all, []);\n    if (allPaths.length) {\n        resultExpression.allPaths = allPaths;\n    }\n    return resultExpression;\n}\nfunction parseExpressionPattern(pattern, value, options) {\n    if (value === false) {\n        return NULL; // pattern is disabled\n    }\n    const parsedPattern = parsePattern(pattern, options);\n    if (parsedPattern === NULL) {\n        return NULL;\n    }\n    // Expression Pattern is <boolean>\n    if (typeof value === 'boolean') {\n        return parsedPattern;\n    }\n    // Expression Pattern is <SiblingClause>\n    if (value) {\n        const when = value.when;\n        if (typeof when === 'string') {\n            const result = (path, basename, name, hasSibling) => {\n                if (!hasSibling || !parsedPattern(path, basename)) {\n                    return null;\n                }\n                const clausePattern = when.replace('$(basename)', () => name);\n                const matched = hasSibling(clausePattern);\n                return isThenable(matched) ?\n                    matched.then(match => match ? pattern : null) :\n                    matched ? pattern : null;\n            };\n            result.requiresSiblings = true;\n            return result;\n        }\n    }\n    // Expression is anything\n    return parsedPattern;\n}\nfunction aggregateBasenameMatches(parsedPatterns, result) {\n    const basenamePatterns = parsedPatterns.filter(parsedPattern => !!parsedPattern.basenames);\n    if (basenamePatterns.length < 2) {\n        return parsedPatterns;\n    }\n    const basenames = basenamePatterns.reduce((all, current) => {\n        const basenames = current.basenames;\n        return basenames ? all.concat(basenames) : all;\n    }, []);\n    let patterns;\n    if (result) {\n        patterns = [];\n        for (let i = 0, n = basenames.length; i < n; i++) {\n            patterns.push(result);\n        }\n    }\n    else {\n        patterns = basenamePatterns.reduce((all, current) => {\n            const patterns = current.patterns;\n            return patterns ? all.concat(patterns) : all;\n        }, []);\n    }\n    const aggregate = function (path, basename) {\n        if (typeof path !== 'string') {\n            return null;\n        }\n        if (!basename) {\n            let i;\n            for (i = path.length; i > 0; i--) {\n                const ch = path.charCodeAt(i - 1);\n                if (ch === 47 /* CharCode.Slash */ || ch === 92 /* CharCode.Backslash */) {\n                    break;\n                }\n            }\n            basename = path.substr(i);\n        }\n        const index = basenames.indexOf(basename);\n        return index !== -1 ? patterns[index] : null;\n    };\n    aggregate.basenames = basenames;\n    aggregate.patterns = patterns;\n    aggregate.allBasenames = basenames;\n    const aggregatedPatterns = parsedPatterns.filter(parsedPattern => !parsedPattern.basenames);\n    aggregatedPatterns.push(aggregate);\n    return aggregatedPatterns;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/hash.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from './strings.js';\n/**\n * Return a hash value for an object.\n */\nexport function hash(obj) {\n    return doHash(obj, 0);\n}\nexport function doHash(obj, hashVal) {\n    switch (typeof obj) {\n        case 'object':\n            if (obj === null) {\n                return numberHash(349, hashVal);\n            }\n            else if (Array.isArray(obj)) {\n                return arrayHash(obj, hashVal);\n            }\n            return objectHash(obj, hashVal);\n        case 'string':\n            return stringHash(obj, hashVal);\n        case 'boolean':\n            return booleanHash(obj, hashVal);\n        case 'number':\n            return numberHash(obj, hashVal);\n        case 'undefined':\n            return numberHash(937, hashVal);\n        default:\n            return numberHash(617, hashVal);\n    }\n}\nexport function numberHash(val, initialHashVal) {\n    return (((initialHashVal << 5) - initialHashVal) + val) | 0; // hashVal * 31 + ch, keep as int32\n}\nfunction booleanHash(b, initialHashVal) {\n    return numberHash(b ? 433 : 863, initialHashVal);\n}\nexport function stringHash(s, hashVal) {\n    hashVal = numberHash(149417, hashVal);\n    for (let i = 0, length = s.length; i < length; i++) {\n        hashVal = numberHash(s.charCodeAt(i), hashVal);\n    }\n    return hashVal;\n}\nfunction arrayHash(arr, initialHashVal) {\n    initialHashVal = numberHash(104579, initialHashVal);\n    return arr.reduce((hashVal, item) => doHash(item, hashVal), initialHashVal);\n}\nfunction objectHash(obj, initialHashVal) {\n    initialHashVal = numberHash(181387, initialHashVal);\n    return Object.keys(obj).sort().reduce((hashVal, key) => {\n        hashVal = stringHash(key, hashVal);\n        return doHash(obj[key], hashVal);\n    }, initialHashVal);\n}\nfunction leftRotate(value, bits, totalBits = 32) {\n    // delta + bits = totalBits\n    const delta = totalBits - bits;\n    // All ones, expect `delta` zeros aligned to the right\n    const mask = ~((1 << delta) - 1);\n    // Join (value left-shifted `bits` bits) with (masked value right-shifted `delta` bits)\n    return ((value << bits) | ((mask & value) >>> delta)) >>> 0;\n}\nfunction fill(dest, index = 0, count = dest.byteLength, value = 0) {\n    for (let i = 0; i < count; i++) {\n        dest[index + i] = value;\n    }\n}\nfunction leftPad(value, length, char = '0') {\n    while (value.length < length) {\n        value = char + value;\n    }\n    return value;\n}\nexport function toHexString(bufferOrValue, bitsize = 32) {\n    if (bufferOrValue instanceof ArrayBuffer) {\n        return Array.from(new Uint8Array(bufferOrValue)).map(b => b.toString(16).padStart(2, '0')).join('');\n    }\n    return leftPad((bufferOrValue >>> 0).toString(16), bitsize / 4);\n}\n/**\n * A SHA1 implementation that works with strings and does not allocate.\n */\nexport class StringSHA1 {\n    constructor() {\n        this._h0 = 0x67452301;\n        this._h1 = 0xEFCDAB89;\n        this._h2 = 0x98BADCFE;\n        this._h3 = 0x10325476;\n        this._h4 = 0xC3D2E1F0;\n        this._buff = new Uint8Array(64 /* SHA1Constant.BLOCK_SIZE */ + 3 /* to fit any utf-8 */);\n        this._buffDV = new DataView(this._buff.buffer);\n        this._buffLen = 0;\n        this._totalLen = 0;\n        this._leftoverHighSurrogate = 0;\n        this._finished = false;\n    }\n    update(str) {\n        const strLen = str.length;\n        if (strLen === 0) {\n            return;\n        }\n        const buff = this._buff;\n        let buffLen = this._buffLen;\n        let leftoverHighSurrogate = this._leftoverHighSurrogate;\n        let charCode;\n        let offset;\n        if (leftoverHighSurrogate !== 0) {\n            charCode = leftoverHighSurrogate;\n            offset = -1;\n            leftoverHighSurrogate = 0;\n        }\n        else {\n            charCode = str.charCodeAt(0);\n            offset = 0;\n        }\n        while (true) {\n            let codePoint = charCode;\n            if (strings.isHighSurrogate(charCode)) {\n                if (offset + 1 < strLen) {\n                    const nextCharCode = str.charCodeAt(offset + 1);\n                    if (strings.isLowSurrogate(nextCharCode)) {\n                        offset++;\n                        codePoint = strings.computeCodePoint(charCode, nextCharCode);\n                    }\n                    else {\n                        // illegal => unicode replacement character\n                        codePoint = 65533 /* SHA1Constant.UNICODE_REPLACEMENT */;\n                    }\n                }\n                else {\n                    // last character is a surrogate pair\n                    leftoverHighSurrogate = charCode;\n                    break;\n                }\n            }\n            else if (strings.isLowSurrogate(charCode)) {\n                // illegal => unicode replacement character\n                codePoint = 65533 /* SHA1Constant.UNICODE_REPLACEMENT */;\n            }\n            buffLen = this._push(buff, buffLen, codePoint);\n            offset++;\n            if (offset < strLen) {\n                charCode = str.charCodeAt(offset);\n            }\n            else {\n                break;\n            }\n        }\n        this._buffLen = buffLen;\n        this._leftoverHighSurrogate = leftoverHighSurrogate;\n    }\n    _push(buff, buffLen, codePoint) {\n        if (codePoint < 0x0080) {\n            buff[buffLen++] = codePoint;\n        }\n        else if (codePoint < 0x0800) {\n            buff[buffLen++] = 0b11000000 | ((codePoint & 0b00000000000000000000011111000000) >>> 6);\n            buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0);\n        }\n        else if (codePoint < 0x10000) {\n            buff[buffLen++] = 0b11100000 | ((codePoint & 0b00000000000000001111000000000000) >>> 12);\n            buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000000000111111000000) >>> 6);\n            buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0);\n        }\n        else {\n            buff[buffLen++] = 0b11110000 | ((codePoint & 0b00000000000111000000000000000000) >>> 18);\n            buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000111111000000000000) >>> 12);\n            buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000000000111111000000) >>> 6);\n            buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0);\n        }\n        if (buffLen >= 64 /* SHA1Constant.BLOCK_SIZE */) {\n            this._step();\n            buffLen -= 64 /* SHA1Constant.BLOCK_SIZE */;\n            this._totalLen += 64 /* SHA1Constant.BLOCK_SIZE */;\n            // take last 3 in case of UTF8 overflow\n            buff[0] = buff[64 /* SHA1Constant.BLOCK_SIZE */ + 0];\n            buff[1] = buff[64 /* SHA1Constant.BLOCK_SIZE */ + 1];\n            buff[2] = buff[64 /* SHA1Constant.BLOCK_SIZE */ + 2];\n        }\n        return buffLen;\n    }\n    digest() {\n        if (!this._finished) {\n            this._finished = true;\n            if (this._leftoverHighSurrogate) {\n                // illegal => unicode replacement character\n                this._leftoverHighSurrogate = 0;\n                this._buffLen = this._push(this._buff, this._buffLen, 65533 /* SHA1Constant.UNICODE_REPLACEMENT */);\n            }\n            this._totalLen += this._buffLen;\n            this._wrapUp();\n        }\n        return toHexString(this._h0) + toHexString(this._h1) + toHexString(this._h2) + toHexString(this._h3) + toHexString(this._h4);\n    }\n    _wrapUp() {\n        this._buff[this._buffLen++] = 0x80;\n        fill(this._buff, this._buffLen);\n        if (this._buffLen > 56) {\n            this._step();\n            fill(this._buff);\n        }\n        // this will fit because the mantissa can cover up to 52 bits\n        const ml = 8 * this._totalLen;\n        this._buffDV.setUint32(56, Math.floor(ml / 4294967296), false);\n        this._buffDV.setUint32(60, ml % 4294967296, false);\n        this._step();\n    }\n    _step() {\n        const bigBlock32 = StringSHA1._bigBlock32;\n        const data = this._buffDV;\n        for (let j = 0; j < 64 /* 16*4 */; j += 4) {\n            bigBlock32.setUint32(j, data.getUint32(j, false), false);\n        }\n        for (let j = 64; j < 320 /* 80*4 */; j += 4) {\n            bigBlock32.setUint32(j, leftRotate((bigBlock32.getUint32(j - 12, false) ^ bigBlock32.getUint32(j - 32, false) ^ bigBlock32.getUint32(j - 56, false) ^ bigBlock32.getUint32(j - 64, false)), 1), false);\n        }\n        let a = this._h0;\n        let b = this._h1;\n        let c = this._h2;\n        let d = this._h3;\n        let e = this._h4;\n        let f, k;\n        let temp;\n        for (let j = 0; j < 80; j++) {\n            if (j < 20) {\n                f = (b & c) | ((~b) & d);\n                k = 0x5A827999;\n            }\n            else if (j < 40) {\n                f = b ^ c ^ d;\n                k = 0x6ED9EBA1;\n            }\n            else if (j < 60) {\n                f = (b & c) | (b & d) | (c & d);\n                k = 0x8F1BBCDC;\n            }\n            else {\n                f = b ^ c ^ d;\n                k = 0xCA62C1D6;\n            }\n            temp = (leftRotate(a, 5) + f + e + k + bigBlock32.getUint32(j * 4, false)) & 0xffffffff;\n            e = d;\n            d = c;\n            c = leftRotate(b, 30);\n            b = a;\n            a = temp;\n        }\n        this._h0 = (this._h0 + a) & 0xffffffff;\n        this._h1 = (this._h1 + b) & 0xffffffff;\n        this._h2 = (this._h2 + c) & 0xffffffff;\n        this._h3 = (this._h3 + d) & 0xffffffff;\n        this._h4 = (this._h4 + e) & 0xffffffff;\n    }\n}\nStringSHA1._bigBlock32 = new DataView(new ArrayBuffer(320)); // 80 * 4 = 320\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/hierarchicalKind.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class HierarchicalKind {\n    constructor(value) {\n        this.value = value;\n    }\n    equals(other) {\n        return this.value === other.value;\n    }\n    contains(other) {\n        return this.equals(other) || this.value === '' || other.value.startsWith(this.value + HierarchicalKind.sep);\n    }\n    intersects(other) {\n        return this.contains(other) || other.contains(this);\n    }\n    append(...parts) {\n        return new HierarchicalKind((this.value ? [this.value, ...parts] : parts).join(HierarchicalKind.sep));\n    }\n}\nHierarchicalKind.sep = '.';\nHierarchicalKind.None = new HierarchicalKind('@@none@@'); // Special kind that matches nothing\nHierarchicalKind.Empty = new HierarchicalKind('');\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/history.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { ArrayNavigator } from './navigator.js';\nexport class HistoryNavigator {\n    constructor(history = [], limit = 10) {\n        this._initialize(history);\n        this._limit = limit;\n        this._onChange();\n    }\n    getHistory() {\n        return this._elements;\n    }\n    add(t) {\n        this._history.delete(t);\n        this._history.add(t);\n        this._onChange();\n    }\n    next() {\n        // This will navigate past the end of the last element, and in that case the input should be cleared\n        return this._navigator.next();\n    }\n    previous() {\n        if (this._currentPosition() !== 0) {\n            return this._navigator.previous();\n        }\n        return null;\n    }\n    current() {\n        return this._navigator.current();\n    }\n    first() {\n        return this._navigator.first();\n    }\n    last() {\n        return this._navigator.last();\n    }\n    isLast() {\n        return this._currentPosition() >= this._elements.length - 1;\n    }\n    isNowhere() {\n        return this._navigator.current() === null;\n    }\n    has(t) {\n        return this._history.has(t);\n    }\n    _onChange() {\n        this._reduceToLimit();\n        const elements = this._elements;\n        this._navigator = new ArrayNavigator(elements, 0, elements.length, elements.length);\n    }\n    _reduceToLimit() {\n        const data = this._elements;\n        if (data.length > this._limit) {\n            this._initialize(data.slice(data.length - this._limit));\n        }\n    }\n    _currentPosition() {\n        const currentElement = this._navigator.current();\n        if (!currentElement) {\n            return -1;\n        }\n        return this._elements.indexOf(currentElement);\n    }\n    _initialize(history) {\n        this._history = new Set();\n        for (const entry of history) {\n            this._history.add(entry);\n        }\n    }\n    get _elements() {\n        const elements = [];\n        this._history.forEach(e => elements.push(e));\n        return elements;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/hotReload.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { env } from './process.js';\nexport function isHotReloadEnabled() {\n    return env && !!env['VSCODE_DEV'];\n}\nexport function registerHotReloadHandler(handler) {\n    if (!isHotReloadEnabled()) {\n        return { dispose() { } };\n    }\n    else {\n        const handlers = registerGlobalHotReloadHandler();\n        handlers.add(handler);\n        return {\n            dispose() { handlers.delete(handler); }\n        };\n    }\n}\nfunction registerGlobalHotReloadHandler() {\n    if (!hotReloadHandlers) {\n        hotReloadHandlers = new Set();\n    }\n    const g = globalThis;\n    if (!g.$hotReload_applyNewExports) {\n        g.$hotReload_applyNewExports = args => {\n            const args2 = { config: { mode: undefined }, ...args };\n            for (const h of hotReloadHandlers) {\n                const result = h(args2);\n                if (result) {\n                    return result;\n                }\n            }\n            return undefined;\n        };\n    }\n    return hotReloadHandlers;\n}\nlet hotReloadHandlers = undefined;\nif (isHotReloadEnabled()) {\n    // This code does not run in production.\n    registerHotReloadHandler(({ oldExports, newSrc, config }) => {\n        if (config.mode !== 'patch-prototype') {\n            return undefined;\n        }\n        return newExports => {\n            var _a, _b;\n            for (const key in newExports) {\n                const exportedItem = newExports[key];\n                console.log(`[hot-reload] Patching prototype methods of '${key}'`, { exportedItem });\n                if (typeof exportedItem === 'function' && exportedItem.prototype) {\n                    const oldExportedItem = oldExports[key];\n                    if (oldExportedItem) {\n                        for (const prop of Object.getOwnPropertyNames(exportedItem.prototype)) {\n                            const descriptor = Object.getOwnPropertyDescriptor(exportedItem.prototype, prop);\n                            const oldDescriptor = Object.getOwnPropertyDescriptor(oldExportedItem.prototype, prop);\n                            if (((_a = descriptor === null || descriptor === void 0 ? void 0 : descriptor.value) === null || _a === void 0 ? void 0 : _a.toString()) !== ((_b = oldDescriptor === null || oldDescriptor === void 0 ? void 0 : oldDescriptor.value) === null || _b === void 0 ? void 0 : _b.toString())) {\n                                console.log(`[hot-reload] Patching prototype method '${key}.${prop}'`);\n                            }\n                            Object.defineProperty(oldExportedItem.prototype, prop, descriptor);\n                        }\n                        newExports[key] = oldExportedItem;\n                    }\n                }\n            }\n            return true;\n        };\n    });\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/htmlContent.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { illegalArgument } from './errors.js';\nimport { escapeIcons } from './iconLabels.js';\nimport { isEqual } from './resources.js';\nimport { escapeRegExpCharacters } from './strings.js';\nimport { URI } from './uri.js';\nexport class MarkdownString {\n    constructor(value = '', isTrustedOrOptions = false) {\n        var _a, _b, _c;\n        this.value = value;\n        if (typeof this.value !== 'string') {\n            throw illegalArgument('value');\n        }\n        if (typeof isTrustedOrOptions === 'boolean') {\n            this.isTrusted = isTrustedOrOptions;\n            this.supportThemeIcons = false;\n            this.supportHtml = false;\n        }\n        else {\n            this.isTrusted = (_a = isTrustedOrOptions.isTrusted) !== null && _a !== void 0 ? _a : undefined;\n            this.supportThemeIcons = (_b = isTrustedOrOptions.supportThemeIcons) !== null && _b !== void 0 ? _b : false;\n            this.supportHtml = (_c = isTrustedOrOptions.supportHtml) !== null && _c !== void 0 ? _c : false;\n        }\n    }\n    appendText(value, newlineStyle = 0 /* MarkdownStringTextNewlineStyle.Paragraph */) {\n        this.value += escapeMarkdownSyntaxTokens(this.supportThemeIcons ? escapeIcons(value) : value) // CodeQL [SM02383] The Markdown is fully sanitized after being rendered.\n            .replace(/([ \\t]+)/g, (_match, g1) => '&nbsp;'.repeat(g1.length)) // CodeQL [SM02383] The Markdown is fully sanitized after being rendered.\n            .replace(/\\>/gm, '\\\\>') // CodeQL [SM02383] The Markdown is fully sanitized after being rendered.\n            .replace(/\\n/g, newlineStyle === 1 /* MarkdownStringTextNewlineStyle.Break */ ? '\\\\\\n' : '\\n\\n'); // CodeQL [SM02383] The Markdown is fully sanitized after being rendered.\n        return this;\n    }\n    appendMarkdown(value) {\n        this.value += value;\n        return this;\n    }\n    appendCodeblock(langId, code) {\n        this.value += `\\n${appendEscapedMarkdownCodeBlockFence(code, langId)}\\n`;\n        return this;\n    }\n    appendLink(target, label, title) {\n        this.value += '[';\n        this.value += this._escape(label, ']');\n        this.value += '](';\n        this.value += this._escape(String(target), ')');\n        if (title) {\n            this.value += ` \"${this._escape(this._escape(title, '\"'), ')')}\"`;\n        }\n        this.value += ')';\n        return this;\n    }\n    _escape(value, ch) {\n        const r = new RegExp(escapeRegExpCharacters(ch), 'g');\n        return value.replace(r, (match, offset) => {\n            if (value.charAt(offset - 1) !== '\\\\') {\n                return `\\\\${match}`;\n            }\n            else {\n                return match;\n            }\n        });\n    }\n}\nexport function isEmptyMarkdownString(oneOrMany) {\n    if (isMarkdownString(oneOrMany)) {\n        return !oneOrMany.value;\n    }\n    else if (Array.isArray(oneOrMany)) {\n        return oneOrMany.every(isEmptyMarkdownString);\n    }\n    else {\n        return true;\n    }\n}\nexport function isMarkdownString(thing) {\n    if (thing instanceof MarkdownString) {\n        return true;\n    }\n    else if (thing && typeof thing === 'object') {\n        return typeof thing.value === 'string'\n            && (typeof thing.isTrusted === 'boolean' || typeof thing.isTrusted === 'object' || thing.isTrusted === undefined)\n            && (typeof thing.supportThemeIcons === 'boolean' || thing.supportThemeIcons === undefined);\n    }\n    return false;\n}\nexport function markdownStringEqual(a, b) {\n    if (a === b) {\n        return true;\n    }\n    else if (!a || !b) {\n        return false;\n    }\n    else {\n        return a.value === b.value\n            && a.isTrusted === b.isTrusted\n            && a.supportThemeIcons === b.supportThemeIcons\n            && a.supportHtml === b.supportHtml\n            && (a.baseUri === b.baseUri || !!a.baseUri && !!b.baseUri && isEqual(URI.from(a.baseUri), URI.from(b.baseUri)));\n    }\n}\nexport function escapeMarkdownSyntaxTokens(text) {\n    // escape markdown syntax tokens: http://daringfireball.net/projects/markdown/syntax#backslash\n    return text.replace(/[\\\\`*_{}[\\]()#+\\-!~]/g, '\\\\$&'); // CodeQL [SM02383] Backslash is escaped in the character class\n}\n/**\n * @see https://github.com/microsoft/vscode/issues/193746\n */\nexport function appendEscapedMarkdownCodeBlockFence(code, langId) {\n    var _a, _b;\n    const longestFenceLength = (_b = (_a = code.match(/^`+/gm)) === null || _a === void 0 ? void 0 : _a.reduce((a, b) => (a.length > b.length ? a : b)).length) !== null && _b !== void 0 ? _b : 0;\n    const desiredFenceLength = longestFenceLength >= 3 ? longestFenceLength + 1 : 3;\n    // the markdown result\n    return [\n        `${'`'.repeat(desiredFenceLength)}${langId}`,\n        code,\n        `${'`'.repeat(desiredFenceLength)}`,\n    ].join('\\n');\n}\nexport function escapeDoubleQuotes(input) {\n    return input.replace(/\"/g, '&quot;');\n}\nexport function removeMarkdownEscapes(text) {\n    if (!text) {\n        return text;\n    }\n    return text.replace(/\\\\([\\\\`*_{}[\\]()#+\\-.!~])/g, '$1');\n}\nexport function parseHrefAndDimensions(href) {\n    const dimensions = [];\n    const splitted = href.split('|').map(s => s.trim());\n    href = splitted[0];\n    const parameters = splitted[1];\n    if (parameters) {\n        const heightFromParams = /height=(\\d+)/.exec(parameters);\n        const widthFromParams = /width=(\\d+)/.exec(parameters);\n        const height = heightFromParams ? heightFromParams[1] : '';\n        const width = widthFromParams ? widthFromParams[1] : '';\n        const widthIsFinite = isFinite(parseInt(width));\n        const heightIsFinite = isFinite(parseInt(height));\n        if (widthIsFinite) {\n            dimensions.push(`width=\"${width}\"`);\n        }\n        if (heightIsFinite) {\n            dimensions.push(`height=\"${height}\"`);\n        }\n    }\n    return { href, dimensions };\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/iconLabels.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { matchesFuzzy } from './filters.js';\nimport { ltrim } from './strings.js';\nimport { ThemeIcon } from './themables.js';\nconst iconStartMarker = '$(';\nconst iconsRegex = new RegExp(`\\\\$\\\\(${ThemeIcon.iconNameExpression}(?:${ThemeIcon.iconModifierExpression})?\\\\)`, 'g'); // no capturing groups\nconst escapeIconsRegex = new RegExp(`(\\\\\\\\)?${iconsRegex.source}`, 'g');\nexport function escapeIcons(text) {\n    return text.replace(escapeIconsRegex, (match, escaped) => escaped ? match : `\\\\${match}`);\n}\nconst markdownEscapedIconsRegex = new RegExp(`\\\\\\\\${iconsRegex.source}`, 'g');\nexport function markdownEscapeEscapedIcons(text) {\n    // Need to add an extra \\ for escaping in markdown\n    return text.replace(markdownEscapedIconsRegex, match => `\\\\${match}`);\n}\nconst stripIconsRegex = new RegExp(`(\\\\s)?(\\\\\\\\)?${iconsRegex.source}(\\\\s)?`, 'g');\n/**\n * Takes a label with icons (`$(iconId)xyz`)  and strips the icons out (`xyz`)\n */\nexport function stripIcons(text) {\n    if (text.indexOf(iconStartMarker) === -1) {\n        return text;\n    }\n    return text.replace(stripIconsRegex, (match, preWhitespace, escaped, postWhitespace) => escaped ? match : preWhitespace || postWhitespace || '');\n}\n/**\n * Takes a label with icons (`$(iconId)xyz`), removes the icon syntax adds whitespace so that screen readers can read the text better.\n */\nexport function getCodiconAriaLabel(text) {\n    if (!text) {\n        return '';\n    }\n    return text.replace(/\\$\\((.*?)\\)/g, (_match, codiconName) => ` ${codiconName} `).trim();\n}\nconst _parseIconsRegex = new RegExp(`\\\\$\\\\(${ThemeIcon.iconNameCharacter}+\\\\)`, 'g');\n/**\n * Takes a label with icons (`abc $(iconId)xyz`) and returns the text (`abc xyz`) and the offsets of the icons (`[3]`)\n */\nexport function parseLabelWithIcons(input) {\n    _parseIconsRegex.lastIndex = 0;\n    let text = '';\n    const iconOffsets = [];\n    let iconsOffset = 0;\n    while (true) {\n        const pos = _parseIconsRegex.lastIndex;\n        const match = _parseIconsRegex.exec(input);\n        const chars = input.substring(pos, match === null || match === void 0 ? void 0 : match.index);\n        if (chars.length > 0) {\n            text += chars;\n            for (let i = 0; i < chars.length; i++) {\n                iconOffsets.push(iconsOffset);\n            }\n        }\n        if (!match) {\n            break;\n        }\n        iconsOffset += match[0].length;\n    }\n    return { text, iconOffsets };\n}\nexport function matchesFuzzyIconAware(query, target, enableSeparateSubstringMatching = false) {\n    const { text, iconOffsets } = target;\n    // Return early if there are no icon markers in the word to match against\n    if (!iconOffsets || iconOffsets.length === 0) {\n        return matchesFuzzy(query, text, enableSeparateSubstringMatching);\n    }\n    // Trim the word to match against because it could have leading\n    // whitespace now if the word started with an icon\n    const wordToMatchAgainstWithoutIconsTrimmed = ltrim(text, ' ');\n    const leadingWhitespaceOffset = text.length - wordToMatchAgainstWithoutIconsTrimmed.length;\n    // match on value without icon\n    const matches = matchesFuzzy(query, wordToMatchAgainstWithoutIconsTrimmed, enableSeparateSubstringMatching);\n    // Map matches back to offsets with icon and trimming\n    if (matches) {\n        for (const match of matches) {\n            const iconOffset = iconOffsets[match.start + leadingWhitespaceOffset] /* icon offsets at index */ + leadingWhitespaceOffset /* overall leading whitespace offset */;\n            match.start += iconOffset;\n            match.end += iconOffset;\n        }\n    }\n    return matches;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/idGenerator.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class IdGenerator {\n    constructor(prefix) {\n        this._prefix = prefix;\n        this._lastId = 0;\n    }\n    nextId() {\n        return this._prefix + (++this._lastId);\n    }\n}\nexport const defaultGenerator = new IdGenerator('id#');\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/ime.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from './event.js';\nexport class IMEImpl {\n    constructor() {\n        this._onDidChange = new Emitter();\n        this.onDidChange = this._onDidChange.event;\n        this._enabled = true;\n    }\n    get enabled() {\n        return this._enabled;\n    }\n    /**\n     * Enable IME\n     */\n    enable() {\n        this._enabled = true;\n        this._onDidChange.fire();\n    }\n    /**\n     * Disable IME\n     */\n    disable() {\n        this._enabled = false;\n        this._onDidChange.fire();\n    }\n}\nexport const IME = new IMEImpl();\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/iterator.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport var Iterable;\n(function (Iterable) {\n    function is(thing) {\n        return thing && typeof thing === 'object' && typeof thing[Symbol.iterator] === 'function';\n    }\n    Iterable.is = is;\n    const _empty = Object.freeze([]);\n    function empty() {\n        return _empty;\n    }\n    Iterable.empty = empty;\n    function* single(element) {\n        yield element;\n    }\n    Iterable.single = single;\n    function wrap(iterableOrElement) {\n        if (is(iterableOrElement)) {\n            return iterableOrElement;\n        }\n        else {\n            return single(iterableOrElement);\n        }\n    }\n    Iterable.wrap = wrap;\n    function from(iterable) {\n        return iterable || _empty;\n    }\n    Iterable.from = from;\n    function* reverse(array) {\n        for (let i = array.length - 1; i >= 0; i--) {\n            yield array[i];\n        }\n    }\n    Iterable.reverse = reverse;\n    function isEmpty(iterable) {\n        return !iterable || iterable[Symbol.iterator]().next().done === true;\n    }\n    Iterable.isEmpty = isEmpty;\n    function first(iterable) {\n        return iterable[Symbol.iterator]().next().value;\n    }\n    Iterable.first = first;\n    function some(iterable, predicate) {\n        for (const element of iterable) {\n            if (predicate(element)) {\n                return true;\n            }\n        }\n        return false;\n    }\n    Iterable.some = some;\n    function find(iterable, predicate) {\n        for (const element of iterable) {\n            if (predicate(element)) {\n                return element;\n            }\n        }\n        return undefined;\n    }\n    Iterable.find = find;\n    function* filter(iterable, predicate) {\n        for (const element of iterable) {\n            if (predicate(element)) {\n                yield element;\n            }\n        }\n    }\n    Iterable.filter = filter;\n    function* map(iterable, fn) {\n        let index = 0;\n        for (const element of iterable) {\n            yield fn(element, index++);\n        }\n    }\n    Iterable.map = map;\n    function* concat(...iterables) {\n        for (const iterable of iterables) {\n            yield* iterable;\n        }\n    }\n    Iterable.concat = concat;\n    function reduce(iterable, reducer, initialValue) {\n        let value = initialValue;\n        for (const element of iterable) {\n            value = reducer(value, element);\n        }\n        return value;\n    }\n    Iterable.reduce = reduce;\n    /**\n     * Returns an iterable slice of the array, with the same semantics as `array.slice()`.\n     */\n    function* slice(arr, from, to = arr.length) {\n        if (from < 0) {\n            from += arr.length;\n        }\n        if (to < 0) {\n            to += arr.length;\n        }\n        else if (to > arr.length) {\n            to = arr.length;\n        }\n        for (; from < to; from++) {\n            yield arr[from];\n        }\n    }\n    Iterable.slice = slice;\n    /**\n     * Consumes `atMost` elements from iterable and returns the consumed elements,\n     * and an iterable for the rest of the elements.\n     */\n    function consume(iterable, atMost = Number.POSITIVE_INFINITY) {\n        const consumed = [];\n        if (atMost === 0) {\n            return [consumed, iterable];\n        }\n        const iterator = iterable[Symbol.iterator]();\n        for (let i = 0; i < atMost; i++) {\n            const next = iterator.next();\n            if (next.done) {\n                return [consumed, Iterable.empty()];\n            }\n            consumed.push(next.value);\n        }\n        return [consumed, { [Symbol.iterator]() { return iterator; } }];\n    }\n    Iterable.consume = consume;\n    async function asyncToArray(iterable) {\n        const result = [];\n        for await (const item of iterable) {\n            result.push(item);\n        }\n        return Promise.resolve(result);\n    }\n    Iterable.asyncToArray = asyncToArray;\n})(Iterable || (Iterable = {}));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/jsonSchema.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport {};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/keyCodes.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass KeyCodeStrMap {\n    constructor() {\n        this._keyCodeToStr = [];\n        this._strToKeyCode = Object.create(null);\n    }\n    define(keyCode, str) {\n        this._keyCodeToStr[keyCode] = str;\n        this._strToKeyCode[str.toLowerCase()] = keyCode;\n    }\n    keyCodeToStr(keyCode) {\n        return this._keyCodeToStr[keyCode];\n    }\n    strToKeyCode(str) {\n        return this._strToKeyCode[str.toLowerCase()] || 0 /* KeyCode.Unknown */;\n    }\n}\nconst uiMap = new KeyCodeStrMap();\nconst userSettingsUSMap = new KeyCodeStrMap();\nconst userSettingsGeneralMap = new KeyCodeStrMap();\nexport const EVENT_KEY_CODE_MAP = new Array(230);\nexport const NATIVE_WINDOWS_KEY_CODE_TO_KEY_CODE = {};\nconst scanCodeIntToStr = [];\nconst scanCodeStrToInt = Object.create(null);\nconst scanCodeLowerCaseStrToInt = Object.create(null);\n/**\n * -1 if a ScanCode => KeyCode mapping depends on kb layout.\n */\nexport const IMMUTABLE_CODE_TO_KEY_CODE = [];\n/**\n * -1 if a KeyCode => ScanCode mapping depends on kb layout.\n */\nexport const IMMUTABLE_KEY_CODE_TO_CODE = [];\nfor (let i = 0; i <= 193 /* ScanCode.MAX_VALUE */; i++) {\n    IMMUTABLE_CODE_TO_KEY_CODE[i] = -1 /* KeyCode.DependsOnKbLayout */;\n}\nfor (let i = 0; i <= 132 /* KeyCode.MAX_VALUE */; i++) {\n    IMMUTABLE_KEY_CODE_TO_CODE[i] = -1 /* ScanCode.DependsOnKbLayout */;\n}\n(function () {\n    // See https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx\n    // See https://github.com/microsoft/node-native-keymap/blob/88c0b0e5/deps/chromium/keyboard_codes_win.h\n    const empty = '';\n    const mappings = [\n        // immutable, scanCode, scanCodeStr, keyCode, keyCodeStr, eventKeyCode, vkey, usUserSettingsLabel, generalUserSettingsLabel\n        [1, 0 /* ScanCode.None */, 'None', 0 /* KeyCode.Unknown */, 'unknown', 0, 'VK_UNKNOWN', empty, empty],\n        [1, 1 /* ScanCode.Hyper */, 'Hyper', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 2 /* ScanCode.Super */, 'Super', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 3 /* ScanCode.Fn */, 'Fn', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 4 /* ScanCode.FnLock */, 'FnLock', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 5 /* ScanCode.Suspend */, 'Suspend', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 6 /* ScanCode.Resume */, 'Resume', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 7 /* ScanCode.Turbo */, 'Turbo', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 8 /* ScanCode.Sleep */, 'Sleep', 0 /* KeyCode.Unknown */, empty, 0, 'VK_SLEEP', empty, empty],\n        [1, 9 /* ScanCode.WakeUp */, 'WakeUp', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [0, 10 /* ScanCode.KeyA */, 'KeyA', 31 /* KeyCode.KeyA */, 'A', 65, 'VK_A', empty, empty],\n        [0, 11 /* ScanCode.KeyB */, 'KeyB', 32 /* KeyCode.KeyB */, 'B', 66, 'VK_B', empty, empty],\n        [0, 12 /* ScanCode.KeyC */, 'KeyC', 33 /* KeyCode.KeyC */, 'C', 67, 'VK_C', empty, empty],\n        [0, 13 /* ScanCode.KeyD */, 'KeyD', 34 /* KeyCode.KeyD */, 'D', 68, 'VK_D', empty, empty],\n        [0, 14 /* ScanCode.KeyE */, 'KeyE', 35 /* KeyCode.KeyE */, 'E', 69, 'VK_E', empty, empty],\n        [0, 15 /* ScanCode.KeyF */, 'KeyF', 36 /* KeyCode.KeyF */, 'F', 70, 'VK_F', empty, empty],\n        [0, 16 /* ScanCode.KeyG */, 'KeyG', 37 /* KeyCode.KeyG */, 'G', 71, 'VK_G', empty, empty],\n        [0, 17 /* ScanCode.KeyH */, 'KeyH', 38 /* KeyCode.KeyH */, 'H', 72, 'VK_H', empty, empty],\n        [0, 18 /* ScanCode.KeyI */, 'KeyI', 39 /* KeyCode.KeyI */, 'I', 73, 'VK_I', empty, empty],\n        [0, 19 /* ScanCode.KeyJ */, 'KeyJ', 40 /* KeyCode.KeyJ */, 'J', 74, 'VK_J', empty, empty],\n        [0, 20 /* ScanCode.KeyK */, 'KeyK', 41 /* KeyCode.KeyK */, 'K', 75, 'VK_K', empty, empty],\n        [0, 21 /* ScanCode.KeyL */, 'KeyL', 42 /* KeyCode.KeyL */, 'L', 76, 'VK_L', empty, empty],\n        [0, 22 /* ScanCode.KeyM */, 'KeyM', 43 /* KeyCode.KeyM */, 'M', 77, 'VK_M', empty, empty],\n        [0, 23 /* ScanCode.KeyN */, 'KeyN', 44 /* KeyCode.KeyN */, 'N', 78, 'VK_N', empty, empty],\n        [0, 24 /* ScanCode.KeyO */, 'KeyO', 45 /* KeyCode.KeyO */, 'O', 79, 'VK_O', empty, empty],\n        [0, 25 /* ScanCode.KeyP */, 'KeyP', 46 /* KeyCode.KeyP */, 'P', 80, 'VK_P', empty, empty],\n        [0, 26 /* ScanCode.KeyQ */, 'KeyQ', 47 /* KeyCode.KeyQ */, 'Q', 81, 'VK_Q', empty, empty],\n        [0, 27 /* ScanCode.KeyR */, 'KeyR', 48 /* KeyCode.KeyR */, 'R', 82, 'VK_R', empty, empty],\n        [0, 28 /* ScanCode.KeyS */, 'KeyS', 49 /* KeyCode.KeyS */, 'S', 83, 'VK_S', empty, empty],\n        [0, 29 /* ScanCode.KeyT */, 'KeyT', 50 /* KeyCode.KeyT */, 'T', 84, 'VK_T', empty, empty],\n        [0, 30 /* ScanCode.KeyU */, 'KeyU', 51 /* KeyCode.KeyU */, 'U', 85, 'VK_U', empty, empty],\n        [0, 31 /* ScanCode.KeyV */, 'KeyV', 52 /* KeyCode.KeyV */, 'V', 86, 'VK_V', empty, empty],\n        [0, 32 /* ScanCode.KeyW */, 'KeyW', 53 /* KeyCode.KeyW */, 'W', 87, 'VK_W', empty, empty],\n        [0, 33 /* ScanCode.KeyX */, 'KeyX', 54 /* KeyCode.KeyX */, 'X', 88, 'VK_X', empty, empty],\n        [0, 34 /* ScanCode.KeyY */, 'KeyY', 55 /* KeyCode.KeyY */, 'Y', 89, 'VK_Y', empty, empty],\n        [0, 35 /* ScanCode.KeyZ */, 'KeyZ', 56 /* KeyCode.KeyZ */, 'Z', 90, 'VK_Z', empty, empty],\n        [0, 36 /* ScanCode.Digit1 */, 'Digit1', 22 /* KeyCode.Digit1 */, '1', 49, 'VK_1', empty, empty],\n        [0, 37 /* ScanCode.Digit2 */, 'Digit2', 23 /* KeyCode.Digit2 */, '2', 50, 'VK_2', empty, empty],\n        [0, 38 /* ScanCode.Digit3 */, 'Digit3', 24 /* KeyCode.Digit3 */, '3', 51, 'VK_3', empty, empty],\n        [0, 39 /* ScanCode.Digit4 */, 'Digit4', 25 /* KeyCode.Digit4 */, '4', 52, 'VK_4', empty, empty],\n        [0, 40 /* ScanCode.Digit5 */, 'Digit5', 26 /* KeyCode.Digit5 */, '5', 53, 'VK_5', empty, empty],\n        [0, 41 /* ScanCode.Digit6 */, 'Digit6', 27 /* KeyCode.Digit6 */, '6', 54, 'VK_6', empty, empty],\n        [0, 42 /* ScanCode.Digit7 */, 'Digit7', 28 /* KeyCode.Digit7 */, '7', 55, 'VK_7', empty, empty],\n        [0, 43 /* ScanCode.Digit8 */, 'Digit8', 29 /* KeyCode.Digit8 */, '8', 56, 'VK_8', empty, empty],\n        [0, 44 /* ScanCode.Digit9 */, 'Digit9', 30 /* KeyCode.Digit9 */, '9', 57, 'VK_9', empty, empty],\n        [0, 45 /* ScanCode.Digit0 */, 'Digit0', 21 /* KeyCode.Digit0 */, '0', 48, 'VK_0', empty, empty],\n        [1, 46 /* ScanCode.Enter */, 'Enter', 3 /* KeyCode.Enter */, 'Enter', 13, 'VK_RETURN', empty, empty],\n        [1, 47 /* ScanCode.Escape */, 'Escape', 9 /* KeyCode.Escape */, 'Escape', 27, 'VK_ESCAPE', empty, empty],\n        [1, 48 /* ScanCode.Backspace */, 'Backspace', 1 /* KeyCode.Backspace */, 'Backspace', 8, 'VK_BACK', empty, empty],\n        [1, 49 /* ScanCode.Tab */, 'Tab', 2 /* KeyCode.Tab */, 'Tab', 9, 'VK_TAB', empty, empty],\n        [1, 50 /* ScanCode.Space */, 'Space', 10 /* KeyCode.Space */, 'Space', 32, 'VK_SPACE', empty, empty],\n        [0, 51 /* ScanCode.Minus */, 'Minus', 88 /* KeyCode.Minus */, '-', 189, 'VK_OEM_MINUS', '-', 'OEM_MINUS'],\n        [0, 52 /* ScanCode.Equal */, 'Equal', 86 /* KeyCode.Equal */, '=', 187, 'VK_OEM_PLUS', '=', 'OEM_PLUS'],\n        [0, 53 /* ScanCode.BracketLeft */, 'BracketLeft', 92 /* KeyCode.BracketLeft */, '[', 219, 'VK_OEM_4', '[', 'OEM_4'],\n        [0, 54 /* ScanCode.BracketRight */, 'BracketRight', 94 /* KeyCode.BracketRight */, ']', 221, 'VK_OEM_6', ']', 'OEM_6'],\n        [0, 55 /* ScanCode.Backslash */, 'Backslash', 93 /* KeyCode.Backslash */, '\\\\', 220, 'VK_OEM_5', '\\\\', 'OEM_5'],\n        [0, 56 /* ScanCode.IntlHash */, 'IntlHash', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty], // has been dropped from the w3c spec\n        [0, 57 /* ScanCode.Semicolon */, 'Semicolon', 85 /* KeyCode.Semicolon */, ';', 186, 'VK_OEM_1', ';', 'OEM_1'],\n        [0, 58 /* ScanCode.Quote */, 'Quote', 95 /* KeyCode.Quote */, '\\'', 222, 'VK_OEM_7', '\\'', 'OEM_7'],\n        [0, 59 /* ScanCode.Backquote */, 'Backquote', 91 /* KeyCode.Backquote */, '`', 192, 'VK_OEM_3', '`', 'OEM_3'],\n        [0, 60 /* ScanCode.Comma */, 'Comma', 87 /* KeyCode.Comma */, ',', 188, 'VK_OEM_COMMA', ',', 'OEM_COMMA'],\n        [0, 61 /* ScanCode.Period */, 'Period', 89 /* KeyCode.Period */, '.', 190, 'VK_OEM_PERIOD', '.', 'OEM_PERIOD'],\n        [0, 62 /* ScanCode.Slash */, 'Slash', 90 /* KeyCode.Slash */, '/', 191, 'VK_OEM_2', '/', 'OEM_2'],\n        [1, 63 /* ScanCode.CapsLock */, 'CapsLock', 8 /* KeyCode.CapsLock */, 'CapsLock', 20, 'VK_CAPITAL', empty, empty],\n        [1, 64 /* ScanCode.F1 */, 'F1', 59 /* KeyCode.F1 */, 'F1', 112, 'VK_F1', empty, empty],\n        [1, 65 /* ScanCode.F2 */, 'F2', 60 /* KeyCode.F2 */, 'F2', 113, 'VK_F2', empty, empty],\n        [1, 66 /* ScanCode.F3 */, 'F3', 61 /* KeyCode.F3 */, 'F3', 114, 'VK_F3', empty, empty],\n        [1, 67 /* ScanCode.F4 */, 'F4', 62 /* KeyCode.F4 */, 'F4', 115, 'VK_F4', empty, empty],\n        [1, 68 /* ScanCode.F5 */, 'F5', 63 /* KeyCode.F5 */, 'F5', 116, 'VK_F5', empty, empty],\n        [1, 69 /* ScanCode.F6 */, 'F6', 64 /* KeyCode.F6 */, 'F6', 117, 'VK_F6', empty, empty],\n        [1, 70 /* ScanCode.F7 */, 'F7', 65 /* KeyCode.F7 */, 'F7', 118, 'VK_F7', empty, empty],\n        [1, 71 /* ScanCode.F8 */, 'F8', 66 /* KeyCode.F8 */, 'F8', 119, 'VK_F8', empty, empty],\n        [1, 72 /* ScanCode.F9 */, 'F9', 67 /* KeyCode.F9 */, 'F9', 120, 'VK_F9', empty, empty],\n        [1, 73 /* ScanCode.F10 */, 'F10', 68 /* KeyCode.F10 */, 'F10', 121, 'VK_F10', empty, empty],\n        [1, 74 /* ScanCode.F11 */, 'F11', 69 /* KeyCode.F11 */, 'F11', 122, 'VK_F11', empty, empty],\n        [1, 75 /* ScanCode.F12 */, 'F12', 70 /* KeyCode.F12 */, 'F12', 123, 'VK_F12', empty, empty],\n        [1, 76 /* ScanCode.PrintScreen */, 'PrintScreen', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 77 /* ScanCode.ScrollLock */, 'ScrollLock', 84 /* KeyCode.ScrollLock */, 'ScrollLock', 145, 'VK_SCROLL', empty, empty],\n        [1, 78 /* ScanCode.Pause */, 'Pause', 7 /* KeyCode.PauseBreak */, 'PauseBreak', 19, 'VK_PAUSE', empty, empty],\n        [1, 79 /* ScanCode.Insert */, 'Insert', 19 /* KeyCode.Insert */, 'Insert', 45, 'VK_INSERT', empty, empty],\n        [1, 80 /* ScanCode.Home */, 'Home', 14 /* KeyCode.Home */, 'Home', 36, 'VK_HOME', empty, empty],\n        [1, 81 /* ScanCode.PageUp */, 'PageUp', 11 /* KeyCode.PageUp */, 'PageUp', 33, 'VK_PRIOR', empty, empty],\n        [1, 82 /* ScanCode.Delete */, 'Delete', 20 /* KeyCode.Delete */, 'Delete', 46, 'VK_DELETE', empty, empty],\n        [1, 83 /* ScanCode.End */, 'End', 13 /* KeyCode.End */, 'End', 35, 'VK_END', empty, empty],\n        [1, 84 /* ScanCode.PageDown */, 'PageDown', 12 /* KeyCode.PageDown */, 'PageDown', 34, 'VK_NEXT', empty, empty],\n        [1, 85 /* ScanCode.ArrowRight */, 'ArrowRight', 17 /* KeyCode.RightArrow */, 'RightArrow', 39, 'VK_RIGHT', 'Right', empty],\n        [1, 86 /* ScanCode.ArrowLeft */, 'ArrowLeft', 15 /* KeyCode.LeftArrow */, 'LeftArrow', 37, 'VK_LEFT', 'Left', empty],\n        [1, 87 /* ScanCode.ArrowDown */, 'ArrowDown', 18 /* KeyCode.DownArrow */, 'DownArrow', 40, 'VK_DOWN', 'Down', empty],\n        [1, 88 /* ScanCode.ArrowUp */, 'ArrowUp', 16 /* KeyCode.UpArrow */, 'UpArrow', 38, 'VK_UP', 'Up', empty],\n        [1, 89 /* ScanCode.NumLock */, 'NumLock', 83 /* KeyCode.NumLock */, 'NumLock', 144, 'VK_NUMLOCK', empty, empty],\n        [1, 90 /* ScanCode.NumpadDivide */, 'NumpadDivide', 113 /* KeyCode.NumpadDivide */, 'NumPad_Divide', 111, 'VK_DIVIDE', empty, empty],\n        [1, 91 /* ScanCode.NumpadMultiply */, 'NumpadMultiply', 108 /* KeyCode.NumpadMultiply */, 'NumPad_Multiply', 106, 'VK_MULTIPLY', empty, empty],\n        [1, 92 /* ScanCode.NumpadSubtract */, 'NumpadSubtract', 111 /* KeyCode.NumpadSubtract */, 'NumPad_Subtract', 109, 'VK_SUBTRACT', empty, empty],\n        [1, 93 /* ScanCode.NumpadAdd */, 'NumpadAdd', 109 /* KeyCode.NumpadAdd */, 'NumPad_Add', 107, 'VK_ADD', empty, empty],\n        [1, 94 /* ScanCode.NumpadEnter */, 'NumpadEnter', 3 /* KeyCode.Enter */, empty, 0, empty, empty, empty],\n        [1, 95 /* ScanCode.Numpad1 */, 'Numpad1', 99 /* KeyCode.Numpad1 */, 'NumPad1', 97, 'VK_NUMPAD1', empty, empty],\n        [1, 96 /* ScanCode.Numpad2 */, 'Numpad2', 100 /* KeyCode.Numpad2 */, 'NumPad2', 98, 'VK_NUMPAD2', empty, empty],\n        [1, 97 /* ScanCode.Numpad3 */, 'Numpad3', 101 /* KeyCode.Numpad3 */, 'NumPad3', 99, 'VK_NUMPAD3', empty, empty],\n        [1, 98 /* ScanCode.Numpad4 */, 'Numpad4', 102 /* KeyCode.Numpad4 */, 'NumPad4', 100, 'VK_NUMPAD4', empty, empty],\n        [1, 99 /* ScanCode.Numpad5 */, 'Numpad5', 103 /* KeyCode.Numpad5 */, 'NumPad5', 101, 'VK_NUMPAD5', empty, empty],\n        [1, 100 /* ScanCode.Numpad6 */, 'Numpad6', 104 /* KeyCode.Numpad6 */, 'NumPad6', 102, 'VK_NUMPAD6', empty, empty],\n        [1, 101 /* ScanCode.Numpad7 */, 'Numpad7', 105 /* KeyCode.Numpad7 */, 'NumPad7', 103, 'VK_NUMPAD7', empty, empty],\n        [1, 102 /* ScanCode.Numpad8 */, 'Numpad8', 106 /* KeyCode.Numpad8 */, 'NumPad8', 104, 'VK_NUMPAD8', empty, empty],\n        [1, 103 /* ScanCode.Numpad9 */, 'Numpad9', 107 /* KeyCode.Numpad9 */, 'NumPad9', 105, 'VK_NUMPAD9', empty, empty],\n        [1, 104 /* ScanCode.Numpad0 */, 'Numpad0', 98 /* KeyCode.Numpad0 */, 'NumPad0', 96, 'VK_NUMPAD0', empty, empty],\n        [1, 105 /* ScanCode.NumpadDecimal */, 'NumpadDecimal', 112 /* KeyCode.NumpadDecimal */, 'NumPad_Decimal', 110, 'VK_DECIMAL', empty, empty],\n        [0, 106 /* ScanCode.IntlBackslash */, 'IntlBackslash', 97 /* KeyCode.IntlBackslash */, 'OEM_102', 226, 'VK_OEM_102', empty, empty],\n        [1, 107 /* ScanCode.ContextMenu */, 'ContextMenu', 58 /* KeyCode.ContextMenu */, 'ContextMenu', 93, empty, empty, empty],\n        [1, 108 /* ScanCode.Power */, 'Power', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 109 /* ScanCode.NumpadEqual */, 'NumpadEqual', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 110 /* ScanCode.F13 */, 'F13', 71 /* KeyCode.F13 */, 'F13', 124, 'VK_F13', empty, empty],\n        [1, 111 /* ScanCode.F14 */, 'F14', 72 /* KeyCode.F14 */, 'F14', 125, 'VK_F14', empty, empty],\n        [1, 112 /* ScanCode.F15 */, 'F15', 73 /* KeyCode.F15 */, 'F15', 126, 'VK_F15', empty, empty],\n        [1, 113 /* ScanCode.F16 */, 'F16', 74 /* KeyCode.F16 */, 'F16', 127, 'VK_F16', empty, empty],\n        [1, 114 /* ScanCode.F17 */, 'F17', 75 /* KeyCode.F17 */, 'F17', 128, 'VK_F17', empty, empty],\n        [1, 115 /* ScanCode.F18 */, 'F18', 76 /* KeyCode.F18 */, 'F18', 129, 'VK_F18', empty, empty],\n        [1, 116 /* ScanCode.F19 */, 'F19', 77 /* KeyCode.F19 */, 'F19', 130, 'VK_F19', empty, empty],\n        [1, 117 /* ScanCode.F20 */, 'F20', 78 /* KeyCode.F20 */, 'F20', 131, 'VK_F20', empty, empty],\n        [1, 118 /* ScanCode.F21 */, 'F21', 79 /* KeyCode.F21 */, 'F21', 132, 'VK_F21', empty, empty],\n        [1, 119 /* ScanCode.F22 */, 'F22', 80 /* KeyCode.F22 */, 'F22', 133, 'VK_F22', empty, empty],\n        [1, 120 /* ScanCode.F23 */, 'F23', 81 /* KeyCode.F23 */, 'F23', 134, 'VK_F23', empty, empty],\n        [1, 121 /* ScanCode.F24 */, 'F24', 82 /* KeyCode.F24 */, 'F24', 135, 'VK_F24', empty, empty],\n        [1, 122 /* ScanCode.Open */, 'Open', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 123 /* ScanCode.Help */, 'Help', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 124 /* ScanCode.Select */, 'Select', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 125 /* ScanCode.Again */, 'Again', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 126 /* ScanCode.Undo */, 'Undo', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 127 /* ScanCode.Cut */, 'Cut', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 128 /* ScanCode.Copy */, 'Copy', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 129 /* ScanCode.Paste */, 'Paste', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 130 /* ScanCode.Find */, 'Find', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 131 /* ScanCode.AudioVolumeMute */, 'AudioVolumeMute', 117 /* KeyCode.AudioVolumeMute */, 'AudioVolumeMute', 173, 'VK_VOLUME_MUTE', empty, empty],\n        [1, 132 /* ScanCode.AudioVolumeUp */, 'AudioVolumeUp', 118 /* KeyCode.AudioVolumeUp */, 'AudioVolumeUp', 175, 'VK_VOLUME_UP', empty, empty],\n        [1, 133 /* ScanCode.AudioVolumeDown */, 'AudioVolumeDown', 119 /* KeyCode.AudioVolumeDown */, 'AudioVolumeDown', 174, 'VK_VOLUME_DOWN', empty, empty],\n        [1, 134 /* ScanCode.NumpadComma */, 'NumpadComma', 110 /* KeyCode.NUMPAD_SEPARATOR */, 'NumPad_Separator', 108, 'VK_SEPARATOR', empty, empty],\n        [0, 135 /* ScanCode.IntlRo */, 'IntlRo', 115 /* KeyCode.ABNT_C1 */, 'ABNT_C1', 193, 'VK_ABNT_C1', empty, empty],\n        [1, 136 /* ScanCode.KanaMode */, 'KanaMode', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [0, 137 /* ScanCode.IntlYen */, 'IntlYen', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 138 /* ScanCode.Convert */, 'Convert', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 139 /* ScanCode.NonConvert */, 'NonConvert', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 140 /* ScanCode.Lang1 */, 'Lang1', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 141 /* ScanCode.Lang2 */, 'Lang2', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 142 /* ScanCode.Lang3 */, 'Lang3', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 143 /* ScanCode.Lang4 */, 'Lang4', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 144 /* ScanCode.Lang5 */, 'Lang5', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 145 /* ScanCode.Abort */, 'Abort', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 146 /* ScanCode.Props */, 'Props', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 147 /* ScanCode.NumpadParenLeft */, 'NumpadParenLeft', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 148 /* ScanCode.NumpadParenRight */, 'NumpadParenRight', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 149 /* ScanCode.NumpadBackspace */, 'NumpadBackspace', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 150 /* ScanCode.NumpadMemoryStore */, 'NumpadMemoryStore', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 151 /* ScanCode.NumpadMemoryRecall */, 'NumpadMemoryRecall', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 152 /* ScanCode.NumpadMemoryClear */, 'NumpadMemoryClear', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 153 /* ScanCode.NumpadMemoryAdd */, 'NumpadMemoryAdd', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 154 /* ScanCode.NumpadMemorySubtract */, 'NumpadMemorySubtract', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 155 /* ScanCode.NumpadClear */, 'NumpadClear', 131 /* KeyCode.Clear */, 'Clear', 12, 'VK_CLEAR', empty, empty],\n        [1, 156 /* ScanCode.NumpadClearEntry */, 'NumpadClearEntry', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 5 /* KeyCode.Ctrl */, 'Ctrl', 17, 'VK_CONTROL', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 4 /* KeyCode.Shift */, 'Shift', 16, 'VK_SHIFT', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 6 /* KeyCode.Alt */, 'Alt', 18, 'VK_MENU', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 57 /* KeyCode.Meta */, 'Meta', 91, 'VK_COMMAND', empty, empty],\n        [1, 157 /* ScanCode.ControlLeft */, 'ControlLeft', 5 /* KeyCode.Ctrl */, empty, 0, 'VK_LCONTROL', empty, empty],\n        [1, 158 /* ScanCode.ShiftLeft */, 'ShiftLeft', 4 /* KeyCode.Shift */, empty, 0, 'VK_LSHIFT', empty, empty],\n        [1, 159 /* ScanCode.AltLeft */, 'AltLeft', 6 /* KeyCode.Alt */, empty, 0, 'VK_LMENU', empty, empty],\n        [1, 160 /* ScanCode.MetaLeft */, 'MetaLeft', 57 /* KeyCode.Meta */, empty, 0, 'VK_LWIN', empty, empty],\n        [1, 161 /* ScanCode.ControlRight */, 'ControlRight', 5 /* KeyCode.Ctrl */, empty, 0, 'VK_RCONTROL', empty, empty],\n        [1, 162 /* ScanCode.ShiftRight */, 'ShiftRight', 4 /* KeyCode.Shift */, empty, 0, 'VK_RSHIFT', empty, empty],\n        [1, 163 /* ScanCode.AltRight */, 'AltRight', 6 /* KeyCode.Alt */, empty, 0, 'VK_RMENU', empty, empty],\n        [1, 164 /* ScanCode.MetaRight */, 'MetaRight', 57 /* KeyCode.Meta */, empty, 0, 'VK_RWIN', empty, empty],\n        [1, 165 /* ScanCode.BrightnessUp */, 'BrightnessUp', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 166 /* ScanCode.BrightnessDown */, 'BrightnessDown', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 167 /* ScanCode.MediaPlay */, 'MediaPlay', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 168 /* ScanCode.MediaRecord */, 'MediaRecord', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 169 /* ScanCode.MediaFastForward */, 'MediaFastForward', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 170 /* ScanCode.MediaRewind */, 'MediaRewind', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 171 /* ScanCode.MediaTrackNext */, 'MediaTrackNext', 124 /* KeyCode.MediaTrackNext */, 'MediaTrackNext', 176, 'VK_MEDIA_NEXT_TRACK', empty, empty],\n        [1, 172 /* ScanCode.MediaTrackPrevious */, 'MediaTrackPrevious', 125 /* KeyCode.MediaTrackPrevious */, 'MediaTrackPrevious', 177, 'VK_MEDIA_PREV_TRACK', empty, empty],\n        [1, 173 /* ScanCode.MediaStop */, 'MediaStop', 126 /* KeyCode.MediaStop */, 'MediaStop', 178, 'VK_MEDIA_STOP', empty, empty],\n        [1, 174 /* ScanCode.Eject */, 'Eject', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 175 /* ScanCode.MediaPlayPause */, 'MediaPlayPause', 127 /* KeyCode.MediaPlayPause */, 'MediaPlayPause', 179, 'VK_MEDIA_PLAY_PAUSE', empty, empty],\n        [1, 176 /* ScanCode.MediaSelect */, 'MediaSelect', 128 /* KeyCode.LaunchMediaPlayer */, 'LaunchMediaPlayer', 181, 'VK_MEDIA_LAUNCH_MEDIA_SELECT', empty, empty],\n        [1, 177 /* ScanCode.LaunchMail */, 'LaunchMail', 129 /* KeyCode.LaunchMail */, 'LaunchMail', 180, 'VK_MEDIA_LAUNCH_MAIL', empty, empty],\n        [1, 178 /* ScanCode.LaunchApp2 */, 'LaunchApp2', 130 /* KeyCode.LaunchApp2 */, 'LaunchApp2', 183, 'VK_MEDIA_LAUNCH_APP2', empty, empty],\n        [1, 179 /* ScanCode.LaunchApp1 */, 'LaunchApp1', 0 /* KeyCode.Unknown */, empty, 0, 'VK_MEDIA_LAUNCH_APP1', empty, empty],\n        [1, 180 /* ScanCode.SelectTask */, 'SelectTask', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 181 /* ScanCode.LaunchScreenSaver */, 'LaunchScreenSaver', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 182 /* ScanCode.BrowserSearch */, 'BrowserSearch', 120 /* KeyCode.BrowserSearch */, 'BrowserSearch', 170, 'VK_BROWSER_SEARCH', empty, empty],\n        [1, 183 /* ScanCode.BrowserHome */, 'BrowserHome', 121 /* KeyCode.BrowserHome */, 'BrowserHome', 172, 'VK_BROWSER_HOME', empty, empty],\n        [1, 184 /* ScanCode.BrowserBack */, 'BrowserBack', 122 /* KeyCode.BrowserBack */, 'BrowserBack', 166, 'VK_BROWSER_BACK', empty, empty],\n        [1, 185 /* ScanCode.BrowserForward */, 'BrowserForward', 123 /* KeyCode.BrowserForward */, 'BrowserForward', 167, 'VK_BROWSER_FORWARD', empty, empty],\n        [1, 186 /* ScanCode.BrowserStop */, 'BrowserStop', 0 /* KeyCode.Unknown */, empty, 0, 'VK_BROWSER_STOP', empty, empty],\n        [1, 187 /* ScanCode.BrowserRefresh */, 'BrowserRefresh', 0 /* KeyCode.Unknown */, empty, 0, 'VK_BROWSER_REFRESH', empty, empty],\n        [1, 188 /* ScanCode.BrowserFavorites */, 'BrowserFavorites', 0 /* KeyCode.Unknown */, empty, 0, 'VK_BROWSER_FAVORITES', empty, empty],\n        [1, 189 /* ScanCode.ZoomToggle */, 'ZoomToggle', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 190 /* ScanCode.MailReply */, 'MailReply', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 191 /* ScanCode.MailForward */, 'MailForward', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        [1, 192 /* ScanCode.MailSend */, 'MailSend', 0 /* KeyCode.Unknown */, empty, 0, empty, empty, empty],\n        // See https://lists.w3.org/Archives/Public/www-dom/2010JulSep/att-0182/keyCode-spec.html\n        // If an Input Method Editor is processing key input and the event is keydown, return 229.\n        [1, 0 /* ScanCode.None */, empty, 114 /* KeyCode.KEY_IN_COMPOSITION */, 'KeyInComposition', 229, empty, empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 116 /* KeyCode.ABNT_C2 */, 'ABNT_C2', 194, 'VK_ABNT_C2', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 96 /* KeyCode.OEM_8 */, 'OEM_8', 223, 'VK_OEM_8', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_KANA', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_HANGUL', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_JUNJA', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_FINAL', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_HANJA', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_KANJI', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_CONVERT', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_NONCONVERT', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_ACCEPT', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_MODECHANGE', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_SELECT', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_PRINT', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_EXECUTE', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_SNAPSHOT', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_HELP', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_APPS', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_PROCESSKEY', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_PACKET', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_DBE_SBCSCHAR', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_DBE_DBCSCHAR', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_ATTN', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_CRSEL', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_EXSEL', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_EREOF', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_PLAY', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_ZOOM', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_NONAME', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_PA1', empty, empty],\n        [1, 0 /* ScanCode.None */, empty, 0 /* KeyCode.Unknown */, empty, 0, 'VK_OEM_CLEAR', empty, empty],\n    ];\n    const seenKeyCode = [];\n    const seenScanCode = [];\n    for (const mapping of mappings) {\n        const [immutable, scanCode, scanCodeStr, keyCode, keyCodeStr, eventKeyCode, vkey, usUserSettingsLabel, generalUserSettingsLabel] = mapping;\n        if (!seenScanCode[scanCode]) {\n            seenScanCode[scanCode] = true;\n            scanCodeIntToStr[scanCode] = scanCodeStr;\n            scanCodeStrToInt[scanCodeStr] = scanCode;\n            scanCodeLowerCaseStrToInt[scanCodeStr.toLowerCase()] = scanCode;\n            if (immutable) {\n                IMMUTABLE_CODE_TO_KEY_CODE[scanCode] = keyCode;\n                if ((keyCode !== 0 /* KeyCode.Unknown */)\n                    && (keyCode !== 3 /* KeyCode.Enter */)\n                    && (keyCode !== 5 /* KeyCode.Ctrl */)\n                    && (keyCode !== 4 /* KeyCode.Shift */)\n                    && (keyCode !== 6 /* KeyCode.Alt */)\n                    && (keyCode !== 57 /* KeyCode.Meta */)) {\n                    IMMUTABLE_KEY_CODE_TO_CODE[keyCode] = scanCode;\n                }\n            }\n        }\n        if (!seenKeyCode[keyCode]) {\n            seenKeyCode[keyCode] = true;\n            if (!keyCodeStr) {\n                throw new Error(`String representation missing for key code ${keyCode} around scan code ${scanCodeStr}`);\n            }\n            uiMap.define(keyCode, keyCodeStr);\n            userSettingsUSMap.define(keyCode, usUserSettingsLabel || keyCodeStr);\n            userSettingsGeneralMap.define(keyCode, generalUserSettingsLabel || usUserSettingsLabel || keyCodeStr);\n        }\n        if (eventKeyCode) {\n            EVENT_KEY_CODE_MAP[eventKeyCode] = keyCode;\n        }\n        if (vkey) {\n            NATIVE_WINDOWS_KEY_CODE_TO_KEY_CODE[vkey] = keyCode;\n        }\n    }\n    // Manually added due to the exclusion above (due to duplication with NumpadEnter)\n    IMMUTABLE_KEY_CODE_TO_CODE[3 /* KeyCode.Enter */] = 46 /* ScanCode.Enter */;\n})();\nexport var KeyCodeUtils;\n(function (KeyCodeUtils) {\n    function toString(keyCode) {\n        return uiMap.keyCodeToStr(keyCode);\n    }\n    KeyCodeUtils.toString = toString;\n    function fromString(key) {\n        return uiMap.strToKeyCode(key);\n    }\n    KeyCodeUtils.fromString = fromString;\n    function toUserSettingsUS(keyCode) {\n        return userSettingsUSMap.keyCodeToStr(keyCode);\n    }\n    KeyCodeUtils.toUserSettingsUS = toUserSettingsUS;\n    function toUserSettingsGeneral(keyCode) {\n        return userSettingsGeneralMap.keyCodeToStr(keyCode);\n    }\n    KeyCodeUtils.toUserSettingsGeneral = toUserSettingsGeneral;\n    function fromUserSettings(key) {\n        return userSettingsUSMap.strToKeyCode(key) || userSettingsGeneralMap.strToKeyCode(key);\n    }\n    KeyCodeUtils.fromUserSettings = fromUserSettings;\n    function toElectronAccelerator(keyCode) {\n        if (keyCode >= 98 /* KeyCode.Numpad0 */ && keyCode <= 113 /* KeyCode.NumpadDivide */) {\n            // [Electron Accelerators] Electron is able to parse numpad keys, but unfortunately it\n            // renders them just as regular keys in menus. For example, num0 is rendered as \"0\",\n            // numdiv is rendered as \"/\", numsub is rendered as \"-\".\n            //\n            // This can lead to incredible confusion, as it makes numpad based keybindings indistinguishable\n            // from keybindings based on regular keys.\n            //\n            // We therefore need to fall back to custom rendering for numpad keys.\n            return null;\n        }\n        switch (keyCode) {\n            case 16 /* KeyCode.UpArrow */:\n                return 'Up';\n            case 18 /* KeyCode.DownArrow */:\n                return 'Down';\n            case 15 /* KeyCode.LeftArrow */:\n                return 'Left';\n            case 17 /* KeyCode.RightArrow */:\n                return 'Right';\n        }\n        return uiMap.keyCodeToStr(keyCode);\n    }\n    KeyCodeUtils.toElectronAccelerator = toElectronAccelerator;\n})(KeyCodeUtils || (KeyCodeUtils = {}));\nexport function KeyChord(firstPart, secondPart) {\n    const chordPart = ((secondPart & 0x0000FFFF) << 16) >>> 0;\n    return (firstPart | chordPart) >>> 0;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/keybindingLabels.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../nls.js';\nexport class ModifierLabelProvider {\n    constructor(mac, windows, linux = windows) {\n        this.modifierLabels = [null]; // index 0 will never me accessed.\n        this.modifierLabels[2 /* OperatingSystem.Macintosh */] = mac;\n        this.modifierLabels[1 /* OperatingSystem.Windows */] = windows;\n        this.modifierLabels[3 /* OperatingSystem.Linux */] = linux;\n    }\n    toLabel(OS, chords, keyLabelProvider) {\n        if (chords.length === 0) {\n            return null;\n        }\n        const result = [];\n        for (let i = 0, len = chords.length; i < len; i++) {\n            const chord = chords[i];\n            const keyLabel = keyLabelProvider(chord);\n            if (keyLabel === null) {\n                // this keybinding cannot be expressed...\n                return null;\n            }\n            result[i] = _simpleAsString(chord, keyLabel, this.modifierLabels[OS]);\n        }\n        return result.join(' ');\n    }\n}\n/**\n * A label provider that prints modifiers in a suitable format for displaying in the UI.\n */\nexport const UILabelProvider = new ModifierLabelProvider({\n    ctrlKey: '\\u2303',\n    shiftKey: '⇧',\n    altKey: '⌥',\n    metaKey: '⌘',\n    separator: '',\n}, {\n    ctrlKey: nls.localize({ key: 'ctrlKey', comment: ['This is the short form for the Control key on the keyboard'] }, \"Ctrl\"),\n    shiftKey: nls.localize({ key: 'shiftKey', comment: ['This is the short form for the Shift key on the keyboard'] }, \"Shift\"),\n    altKey: nls.localize({ key: 'altKey', comment: ['This is the short form for the Alt key on the keyboard'] }, \"Alt\"),\n    metaKey: nls.localize({ key: 'windowsKey', comment: ['This is the short form for the Windows key on the keyboard'] }, \"Windows\"),\n    separator: '+',\n}, {\n    ctrlKey: nls.localize({ key: 'ctrlKey', comment: ['This is the short form for the Control key on the keyboard'] }, \"Ctrl\"),\n    shiftKey: nls.localize({ key: 'shiftKey', comment: ['This is the short form for the Shift key on the keyboard'] }, \"Shift\"),\n    altKey: nls.localize({ key: 'altKey', comment: ['This is the short form for the Alt key on the keyboard'] }, \"Alt\"),\n    metaKey: nls.localize({ key: 'superKey', comment: ['This is the short form for the Super key on the keyboard'] }, \"Super\"),\n    separator: '+',\n});\n/**\n * A label provider that prints modifiers in a suitable format for ARIA.\n */\nexport const AriaLabelProvider = new ModifierLabelProvider({\n    ctrlKey: nls.localize({ key: 'ctrlKey.long', comment: ['This is the long form for the Control key on the keyboard'] }, \"Control\"),\n    shiftKey: nls.localize({ key: 'shiftKey.long', comment: ['This is the long form for the Shift key on the keyboard'] }, \"Shift\"),\n    altKey: nls.localize({ key: 'optKey.long', comment: ['This is the long form for the Alt/Option key on the keyboard'] }, \"Option\"),\n    metaKey: nls.localize({ key: 'cmdKey.long', comment: ['This is the long form for the Command key on the keyboard'] }, \"Command\"),\n    separator: '+',\n}, {\n    ctrlKey: nls.localize({ key: 'ctrlKey.long', comment: ['This is the long form for the Control key on the keyboard'] }, \"Control\"),\n    shiftKey: nls.localize({ key: 'shiftKey.long', comment: ['This is the long form for the Shift key on the keyboard'] }, \"Shift\"),\n    altKey: nls.localize({ key: 'altKey.long', comment: ['This is the long form for the Alt key on the keyboard'] }, \"Alt\"),\n    metaKey: nls.localize({ key: 'windowsKey.long', comment: ['This is the long form for the Windows key on the keyboard'] }, \"Windows\"),\n    separator: '+',\n}, {\n    ctrlKey: nls.localize({ key: 'ctrlKey.long', comment: ['This is the long form for the Control key on the keyboard'] }, \"Control\"),\n    shiftKey: nls.localize({ key: 'shiftKey.long', comment: ['This is the long form for the Shift key on the keyboard'] }, \"Shift\"),\n    altKey: nls.localize({ key: 'altKey.long', comment: ['This is the long form for the Alt key on the keyboard'] }, \"Alt\"),\n    metaKey: nls.localize({ key: 'superKey.long', comment: ['This is the long form for the Super key on the keyboard'] }, \"Super\"),\n    separator: '+',\n});\n/**\n * A label provider that prints modifiers in a suitable format for Electron Accelerators.\n * See https://github.com/electron/electron/blob/master/docs/api/accelerator.md\n */\nexport const ElectronAcceleratorLabelProvider = new ModifierLabelProvider({\n    ctrlKey: 'Ctrl',\n    shiftKey: 'Shift',\n    altKey: 'Alt',\n    metaKey: 'Cmd',\n    separator: '+',\n}, {\n    ctrlKey: 'Ctrl',\n    shiftKey: 'Shift',\n    altKey: 'Alt',\n    metaKey: 'Super',\n    separator: '+',\n});\n/**\n * A label provider that prints modifiers in a suitable format for user settings.\n */\nexport const UserSettingsLabelProvider = new ModifierLabelProvider({\n    ctrlKey: 'ctrl',\n    shiftKey: 'shift',\n    altKey: 'alt',\n    metaKey: 'cmd',\n    separator: '+',\n}, {\n    ctrlKey: 'ctrl',\n    shiftKey: 'shift',\n    altKey: 'alt',\n    metaKey: 'win',\n    separator: '+',\n}, {\n    ctrlKey: 'ctrl',\n    shiftKey: 'shift',\n    altKey: 'alt',\n    metaKey: 'meta',\n    separator: '+',\n});\nfunction _simpleAsString(modifiers, key, labels) {\n    if (key === null) {\n        return '';\n    }\n    const result = [];\n    // translate modifier keys: Ctrl-Shift-Alt-Meta\n    if (modifiers.ctrlKey) {\n        result.push(labels.ctrlKey);\n    }\n    if (modifiers.shiftKey) {\n        result.push(labels.shiftKey);\n    }\n    if (modifiers.altKey) {\n        result.push(labels.altKey);\n    }\n    if (modifiers.metaKey) {\n        result.push(labels.metaKey);\n    }\n    // the actual key\n    if (key !== '') {\n        result.push(key);\n    }\n    return result.join(labels.separator);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/keybindings.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { illegalArgument } from './errors.js';\nexport function decodeKeybinding(keybinding, OS) {\n    if (typeof keybinding === 'number') {\n        if (keybinding === 0) {\n            return null;\n        }\n        const firstChord = (keybinding & 0x0000FFFF) >>> 0;\n        const secondChord = (keybinding & 0xFFFF0000) >>> 16;\n        if (secondChord !== 0) {\n            return new Keybinding([\n                createSimpleKeybinding(firstChord, OS),\n                createSimpleKeybinding(secondChord, OS)\n            ]);\n        }\n        return new Keybinding([createSimpleKeybinding(firstChord, OS)]);\n    }\n    else {\n        const chords = [];\n        for (let i = 0; i < keybinding.length; i++) {\n            chords.push(createSimpleKeybinding(keybinding[i], OS));\n        }\n        return new Keybinding(chords);\n    }\n}\nexport function createSimpleKeybinding(keybinding, OS) {\n    const ctrlCmd = (keybinding & 2048 /* BinaryKeybindingsMask.CtrlCmd */ ? true : false);\n    const winCtrl = (keybinding & 256 /* BinaryKeybindingsMask.WinCtrl */ ? true : false);\n    const ctrlKey = (OS === 2 /* OperatingSystem.Macintosh */ ? winCtrl : ctrlCmd);\n    const shiftKey = (keybinding & 1024 /* BinaryKeybindingsMask.Shift */ ? true : false);\n    const altKey = (keybinding & 512 /* BinaryKeybindingsMask.Alt */ ? true : false);\n    const metaKey = (OS === 2 /* OperatingSystem.Macintosh */ ? ctrlCmd : winCtrl);\n    const keyCode = (keybinding & 255 /* BinaryKeybindingsMask.KeyCode */);\n    return new KeyCodeChord(ctrlKey, shiftKey, altKey, metaKey, keyCode);\n}\n/**\n * Represents a chord which uses the `keyCode` field of keyboard events.\n * A chord is a combination of keys pressed simultaneously.\n */\nexport class KeyCodeChord {\n    constructor(ctrlKey, shiftKey, altKey, metaKey, keyCode) {\n        this.ctrlKey = ctrlKey;\n        this.shiftKey = shiftKey;\n        this.altKey = altKey;\n        this.metaKey = metaKey;\n        this.keyCode = keyCode;\n    }\n    equals(other) {\n        return (other instanceof KeyCodeChord\n            && this.ctrlKey === other.ctrlKey\n            && this.shiftKey === other.shiftKey\n            && this.altKey === other.altKey\n            && this.metaKey === other.metaKey\n            && this.keyCode === other.keyCode);\n    }\n    isModifierKey() {\n        return (this.keyCode === 0 /* KeyCode.Unknown */\n            || this.keyCode === 5 /* KeyCode.Ctrl */\n            || this.keyCode === 57 /* KeyCode.Meta */\n            || this.keyCode === 6 /* KeyCode.Alt */\n            || this.keyCode === 4 /* KeyCode.Shift */);\n    }\n    /**\n     * Does this keybinding refer to the key code of a modifier and it also has the modifier flag?\n     */\n    isDuplicateModifierCase() {\n        return ((this.ctrlKey && this.keyCode === 5 /* KeyCode.Ctrl */)\n            || (this.shiftKey && this.keyCode === 4 /* KeyCode.Shift */)\n            || (this.altKey && this.keyCode === 6 /* KeyCode.Alt */)\n            || (this.metaKey && this.keyCode === 57 /* KeyCode.Meta */));\n    }\n}\n/**\n * Represents a chord which uses the `code` field of keyboard events.\n * A chord is a combination of keys pressed simultaneously.\n */\nexport class ScanCodeChord {\n    constructor(ctrlKey, shiftKey, altKey, metaKey, scanCode) {\n        this.ctrlKey = ctrlKey;\n        this.shiftKey = shiftKey;\n        this.altKey = altKey;\n        this.metaKey = metaKey;\n        this.scanCode = scanCode;\n    }\n    /**\n     * Does this keybinding refer to the key code of a modifier and it also has the modifier flag?\n     */\n    isDuplicateModifierCase() {\n        return ((this.ctrlKey && (this.scanCode === 157 /* ScanCode.ControlLeft */ || this.scanCode === 161 /* ScanCode.ControlRight */))\n            || (this.shiftKey && (this.scanCode === 158 /* ScanCode.ShiftLeft */ || this.scanCode === 162 /* ScanCode.ShiftRight */))\n            || (this.altKey && (this.scanCode === 159 /* ScanCode.AltLeft */ || this.scanCode === 163 /* ScanCode.AltRight */))\n            || (this.metaKey && (this.scanCode === 160 /* ScanCode.MetaLeft */ || this.scanCode === 164 /* ScanCode.MetaRight */)));\n    }\n}\n/**\n * A keybinding is a sequence of chords.\n */\nexport class Keybinding {\n    constructor(chords) {\n        if (chords.length === 0) {\n            throw illegalArgument(`chords`);\n        }\n        this.chords = chords;\n    }\n}\nexport class ResolvedChord {\n    constructor(ctrlKey, shiftKey, altKey, metaKey, keyLabel, keyAriaLabel) {\n        this.ctrlKey = ctrlKey;\n        this.shiftKey = shiftKey;\n        this.altKey = altKey;\n        this.metaKey = metaKey;\n        this.keyLabel = keyLabel;\n        this.keyAriaLabel = keyAriaLabel;\n    }\n}\n/**\n * A resolved keybinding. Consists of one or multiple chords.\n */\nexport class ResolvedKeybinding {\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/labels.js",
    "content": "import { hasDriveLetter } from './extpath.js';\nimport { isWindows } from './platform.js';\nexport function normalizeDriveLetter(path, isWindowsOS = isWindows) {\n    if (hasDriveLetter(path, isWindowsOS)) {\n        return path.charAt(0).toUpperCase() + path.slice(1);\n    }\n    return path;\n}\nlet normalizedUserHomeCached = Object.create(null);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/lazy.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class Lazy {\n    constructor(executor) {\n        this.executor = executor;\n        this._didRun = false;\n    }\n    /**\n     * Get the wrapped value.\n     *\n     * This will force evaluation of the lazy value if it has not been resolved yet. Lazy values are only\n     * resolved once. `getValue` will re-throw exceptions that are hit while resolving the value\n     */\n    get value() {\n        if (!this._didRun) {\n            try {\n                this._value = this.executor();\n            }\n            catch (err) {\n                this._error = err;\n            }\n            finally {\n                this._didRun = true;\n            }\n        }\n        if (this._error) {\n            throw this._error;\n        }\n        return this._value;\n    }\n    /**\n     * Get the wrapped value without forcing evaluation.\n     */\n    get rawValue() { return this._value; }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/lifecycle.js",
    "content": "import { createSingleCallFunction } from './functional.js';\nimport { Iterable } from './iterator.js';\n// #region Disposable Tracking\n/**\n * Enables logging of potentially leaked disposables.\n *\n * A disposable is considered leaked if it is not disposed or not registered as the child of\n * another disposable. This tracking is very simple an only works for classes that either\n * extend Disposable or use a DisposableStore. This means there are a lot of false positives.\n */\nconst TRACK_DISPOSABLES = false;\nlet disposableTracker = null;\nexport function setDisposableTracker(tracker) {\n    disposableTracker = tracker;\n}\nif (TRACK_DISPOSABLES) {\n    const __is_disposable_tracked__ = '__is_disposable_tracked__';\n    setDisposableTracker(new class {\n        trackDisposable(x) {\n            const stack = new Error('Potentially leaked disposable').stack;\n            setTimeout(() => {\n                if (!x[__is_disposable_tracked__]) {\n                    console.log(stack);\n                }\n            }, 3000);\n        }\n        setParent(child, parent) {\n            if (child && child !== Disposable.None) {\n                try {\n                    child[__is_disposable_tracked__] = true;\n                }\n                catch (_a) {\n                    // noop\n                }\n            }\n        }\n        markAsDisposed(disposable) {\n            if (disposable && disposable !== Disposable.None) {\n                try {\n                    disposable[__is_disposable_tracked__] = true;\n                }\n                catch (_a) {\n                    // noop\n                }\n            }\n        }\n        markAsSingleton(disposable) { }\n    });\n}\nexport function trackDisposable(x) {\n    disposableTracker === null || disposableTracker === void 0 ? void 0 : disposableTracker.trackDisposable(x);\n    return x;\n}\nexport function markAsDisposed(disposable) {\n    disposableTracker === null || disposableTracker === void 0 ? void 0 : disposableTracker.markAsDisposed(disposable);\n}\nfunction setParentOfDisposable(child, parent) {\n    disposableTracker === null || disposableTracker === void 0 ? void 0 : disposableTracker.setParent(child, parent);\n}\nfunction setParentOfDisposables(children, parent) {\n    if (!disposableTracker) {\n        return;\n    }\n    for (const child of children) {\n        disposableTracker.setParent(child, parent);\n    }\n}\n/**\n * Indicates that the given object is a singleton which does not need to be disposed.\n*/\nexport function markAsSingleton(singleton) {\n    disposableTracker === null || disposableTracker === void 0 ? void 0 : disposableTracker.markAsSingleton(singleton);\n    return singleton;\n}\n/**\n * Check if `thing` is {@link IDisposable disposable}.\n */\nexport function isDisposable(thing) {\n    return typeof thing === 'object' && thing !== null && typeof thing.dispose === 'function' && thing.dispose.length === 0;\n}\nexport function dispose(arg) {\n    if (Iterable.is(arg)) {\n        const errors = [];\n        for (const d of arg) {\n            if (d) {\n                try {\n                    d.dispose();\n                }\n                catch (e) {\n                    errors.push(e);\n                }\n            }\n        }\n        if (errors.length === 1) {\n            throw errors[0];\n        }\n        else if (errors.length > 1) {\n            throw new AggregateError(errors, 'Encountered errors while disposing of store');\n        }\n        return Array.isArray(arg) ? [] : arg;\n    }\n    else if (arg) {\n        arg.dispose();\n        return arg;\n    }\n}\n/**\n * Combine multiple disposable values into a single {@link IDisposable}.\n */\nexport function combinedDisposable(...disposables) {\n    const parent = toDisposable(() => dispose(disposables));\n    setParentOfDisposables(disposables, parent);\n    return parent;\n}\n/**\n * Turn a function that implements dispose into an {@link IDisposable}.\n *\n * @param fn Clean up function, guaranteed to be called only **once**.\n */\nexport function toDisposable(fn) {\n    const self = trackDisposable({\n        dispose: createSingleCallFunction(() => {\n            markAsDisposed(self);\n            fn();\n        })\n    });\n    return self;\n}\n/**\n * Manages a collection of disposable values.\n *\n * This is the preferred way to manage multiple disposables. A `DisposableStore` is safer to work with than an\n * `IDisposable[]` as it considers edge cases, such as registering the same value multiple times or adding an item to a\n * store that has already been disposed of.\n */\nexport class DisposableStore {\n    constructor() {\n        this._toDispose = new Set();\n        this._isDisposed = false;\n        trackDisposable(this);\n    }\n    /**\n     * Dispose of all registered disposables and mark this object as disposed.\n     *\n     * Any future disposables added to this object will be disposed of on `add`.\n     */\n    dispose() {\n        if (this._isDisposed) {\n            return;\n        }\n        markAsDisposed(this);\n        this._isDisposed = true;\n        this.clear();\n    }\n    /**\n     * @return `true` if this object has been disposed of.\n     */\n    get isDisposed() {\n        return this._isDisposed;\n    }\n    /**\n     * Dispose of all registered disposables but do not mark this object as disposed.\n     */\n    clear() {\n        if (this._toDispose.size === 0) {\n            return;\n        }\n        try {\n            dispose(this._toDispose);\n        }\n        finally {\n            this._toDispose.clear();\n        }\n    }\n    /**\n     * Add a new {@link IDisposable disposable} to the collection.\n     */\n    add(o) {\n        if (!o) {\n            return o;\n        }\n        if (o === this) {\n            throw new Error('Cannot register a disposable on itself!');\n        }\n        setParentOfDisposable(o, this);\n        if (this._isDisposed) {\n            if (!DisposableStore.DISABLE_DISPOSED_WARNING) {\n                console.warn(new Error('Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!').stack);\n            }\n        }\n        else {\n            this._toDispose.add(o);\n        }\n        return o;\n    }\n    /**\n     * Deletes the value from the store, but does not dispose it.\n     */\n    deleteAndLeak(o) {\n        if (!o) {\n            return;\n        }\n        if (this._toDispose.has(o)) {\n            this._toDispose.delete(o);\n            setParentOfDisposable(o, null);\n        }\n    }\n}\nDisposableStore.DISABLE_DISPOSED_WARNING = false;\n/**\n * Abstract base class for a {@link IDisposable disposable} object.\n *\n * Subclasses can {@linkcode _register} disposables that will be automatically cleaned up when this object is disposed of.\n */\nexport class Disposable {\n    constructor() {\n        this._store = new DisposableStore();\n        trackDisposable(this);\n        setParentOfDisposable(this._store, this);\n    }\n    dispose() {\n        markAsDisposed(this);\n        this._store.dispose();\n    }\n    /**\n     * Adds `o` to the collection of disposables managed by this object.\n     */\n    _register(o) {\n        if (o === this) {\n            throw new Error('Cannot register a disposable on itself!');\n        }\n        return this._store.add(o);\n    }\n}\n/**\n * A disposable that does nothing when it is disposed of.\n *\n * TODO: This should not be a static property.\n */\nDisposable.None = Object.freeze({ dispose() { } });\n/**\n * Manages the lifecycle of a disposable value that may be changed.\n *\n * This ensures that when the disposable value is changed, the previously held disposable is disposed of. You can\n * also register a `MutableDisposable` on a `Disposable` to ensure it is automatically cleaned up.\n */\nexport class MutableDisposable {\n    constructor() {\n        this._isDisposed = false;\n        trackDisposable(this);\n    }\n    get value() {\n        return this._isDisposed ? undefined : this._value;\n    }\n    set value(value) {\n        var _a;\n        if (this._isDisposed || value === this._value) {\n            return;\n        }\n        (_a = this._value) === null || _a === void 0 ? void 0 : _a.dispose();\n        if (value) {\n            setParentOfDisposable(value, this);\n        }\n        this._value = value;\n    }\n    /**\n     * Resets the stored value and disposed of the previously stored value.\n     */\n    clear() {\n        this.value = undefined;\n    }\n    dispose() {\n        var _a;\n        this._isDisposed = true;\n        markAsDisposed(this);\n        (_a = this._value) === null || _a === void 0 ? void 0 : _a.dispose();\n        this._value = undefined;\n    }\n}\nexport class RefCountedDisposable {\n    constructor(_disposable) {\n        this._disposable = _disposable;\n        this._counter = 1;\n    }\n    acquire() {\n        this._counter++;\n        return this;\n    }\n    release() {\n        if (--this._counter === 0) {\n            this._disposable.dispose();\n        }\n        return this;\n    }\n}\nexport class ImmortalReference {\n    constructor(object) {\n        this.object = object;\n    }\n    dispose() { }\n}\n/**\n * A map the manages the lifecycle of the values that it stores.\n */\nexport class DisposableMap {\n    constructor() {\n        this._store = new Map();\n        this._isDisposed = false;\n        trackDisposable(this);\n    }\n    /**\n     * Disposes of all stored values and mark this object as disposed.\n     *\n     * Trying to use this object after it has been disposed of is an error.\n     */\n    dispose() {\n        markAsDisposed(this);\n        this._isDisposed = true;\n        this.clearAndDisposeAll();\n    }\n    /**\n     * Disposes of all stored values and clear the map, but DO NOT mark this object as disposed.\n     */\n    clearAndDisposeAll() {\n        if (!this._store.size) {\n            return;\n        }\n        try {\n            dispose(this._store.values());\n        }\n        finally {\n            this._store.clear();\n        }\n    }\n    get(key) {\n        return this._store.get(key);\n    }\n    set(key, value, skipDisposeOnOverwrite = false) {\n        var _a;\n        if (this._isDisposed) {\n            console.warn(new Error('Trying to add a disposable to a DisposableMap that has already been disposed of. The added object will be leaked!').stack);\n        }\n        if (!skipDisposeOnOverwrite) {\n            (_a = this._store.get(key)) === null || _a === void 0 ? void 0 : _a.dispose();\n        }\n        this._store.set(key, value);\n    }\n    /**\n     * Delete the value stored for `key` from this map and also dispose of it.\n     */\n    deleteAndDispose(key) {\n        var _a;\n        (_a = this._store.get(key)) === null || _a === void 0 ? void 0 : _a.dispose();\n        this._store.delete(key);\n    }\n    [Symbol.iterator]() {\n        return this._store[Symbol.iterator]();\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/linkedList.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass Node {\n    constructor(element) {\n        this.element = element;\n        this.next = Node.Undefined;\n        this.prev = Node.Undefined;\n    }\n}\nNode.Undefined = new Node(undefined);\nexport class LinkedList {\n    constructor() {\n        this._first = Node.Undefined;\n        this._last = Node.Undefined;\n        this._size = 0;\n    }\n    get size() {\n        return this._size;\n    }\n    isEmpty() {\n        return this._first === Node.Undefined;\n    }\n    clear() {\n        let node = this._first;\n        while (node !== Node.Undefined) {\n            const next = node.next;\n            node.prev = Node.Undefined;\n            node.next = Node.Undefined;\n            node = next;\n        }\n        this._first = Node.Undefined;\n        this._last = Node.Undefined;\n        this._size = 0;\n    }\n    unshift(element) {\n        return this._insert(element, false);\n    }\n    push(element) {\n        return this._insert(element, true);\n    }\n    _insert(element, atTheEnd) {\n        const newNode = new Node(element);\n        if (this._first === Node.Undefined) {\n            this._first = newNode;\n            this._last = newNode;\n        }\n        else if (atTheEnd) {\n            // push\n            const oldLast = this._last;\n            this._last = newNode;\n            newNode.prev = oldLast;\n            oldLast.next = newNode;\n        }\n        else {\n            // unshift\n            const oldFirst = this._first;\n            this._first = newNode;\n            newNode.next = oldFirst;\n            oldFirst.prev = newNode;\n        }\n        this._size += 1;\n        let didRemove = false;\n        return () => {\n            if (!didRemove) {\n                didRemove = true;\n                this._remove(newNode);\n            }\n        };\n    }\n    shift() {\n        if (this._first === Node.Undefined) {\n            return undefined;\n        }\n        else {\n            const res = this._first.element;\n            this._remove(this._first);\n            return res;\n        }\n    }\n    pop() {\n        if (this._last === Node.Undefined) {\n            return undefined;\n        }\n        else {\n            const res = this._last.element;\n            this._remove(this._last);\n            return res;\n        }\n    }\n    _remove(node) {\n        if (node.prev !== Node.Undefined && node.next !== Node.Undefined) {\n            // middle\n            const anchor = node.prev;\n            anchor.next = node.next;\n            node.next.prev = anchor;\n        }\n        else if (node.prev === Node.Undefined && node.next === Node.Undefined) {\n            // only node\n            this._first = Node.Undefined;\n            this._last = Node.Undefined;\n        }\n        else if (node.next === Node.Undefined) {\n            // last\n            this._last = this._last.prev;\n            this._last.next = Node.Undefined;\n        }\n        else if (node.prev === Node.Undefined) {\n            // first\n            this._first = this._first.next;\n            this._first.prev = Node.Undefined;\n        }\n        // done\n        this._size -= 1;\n    }\n    *[Symbol.iterator]() {\n        let node = this._first;\n        while (node !== Node.Undefined) {\n            yield node.element;\n            node = node.next;\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/linkedText.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { memoize } from './decorators.js';\nexport class LinkedText {\n    constructor(nodes) {\n        this.nodes = nodes;\n    }\n    toString() {\n        return this.nodes.map(node => typeof node === 'string' ? node : node.label).join('');\n    }\n}\n__decorate([\n    memoize\n], LinkedText.prototype, \"toString\", null);\nconst LINK_REGEX = /\\[([^\\]]+)\\]\\(((?:https?:\\/\\/|command:|file:)[^\\)\\s]+)(?: ([\"'])(.+?)(\\3))?\\)/gi;\nexport function parseLinkedText(text) {\n    const result = [];\n    let index = 0;\n    let match;\n    while (match = LINK_REGEX.exec(text)) {\n        if (match.index - index > 0) {\n            result.push(text.substring(index, match.index));\n        }\n        const [, label, href, , title] = match;\n        if (title) {\n            result.push({ label, href, title });\n        }\n        else {\n            result.push({ label, href });\n        }\n        index = match.index + match[0].length;\n    }\n    if (index < text.length) {\n        result.push(text.substring(index));\n    }\n    return new LinkedText(result);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/map.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar _a, _b;\nclass ResourceMapEntry {\n    constructor(uri, value) {\n        this.uri = uri;\n        this.value = value;\n    }\n}\nfunction isEntries(arg) {\n    return Array.isArray(arg);\n}\nexport class ResourceMap {\n    constructor(arg, toKey) {\n        this[_a] = 'ResourceMap';\n        if (arg instanceof ResourceMap) {\n            this.map = new Map(arg.map);\n            this.toKey = toKey !== null && toKey !== void 0 ? toKey : ResourceMap.defaultToKey;\n        }\n        else if (isEntries(arg)) {\n            this.map = new Map();\n            this.toKey = toKey !== null && toKey !== void 0 ? toKey : ResourceMap.defaultToKey;\n            for (const [resource, value] of arg) {\n                this.set(resource, value);\n            }\n        }\n        else {\n            this.map = new Map();\n            this.toKey = arg !== null && arg !== void 0 ? arg : ResourceMap.defaultToKey;\n        }\n    }\n    set(resource, value) {\n        this.map.set(this.toKey(resource), new ResourceMapEntry(resource, value));\n        return this;\n    }\n    get(resource) {\n        var _c;\n        return (_c = this.map.get(this.toKey(resource))) === null || _c === void 0 ? void 0 : _c.value;\n    }\n    has(resource) {\n        return this.map.has(this.toKey(resource));\n    }\n    get size() {\n        return this.map.size;\n    }\n    clear() {\n        this.map.clear();\n    }\n    delete(resource) {\n        return this.map.delete(this.toKey(resource));\n    }\n    forEach(clb, thisArg) {\n        if (typeof thisArg !== 'undefined') {\n            clb = clb.bind(thisArg);\n        }\n        for (const [_, entry] of this.map) {\n            clb(entry.value, entry.uri, this);\n        }\n    }\n    *values() {\n        for (const entry of this.map.values()) {\n            yield entry.value;\n        }\n    }\n    *keys() {\n        for (const entry of this.map.values()) {\n            yield entry.uri;\n        }\n    }\n    *entries() {\n        for (const entry of this.map.values()) {\n            yield [entry.uri, entry.value];\n        }\n    }\n    *[(_a = Symbol.toStringTag, Symbol.iterator)]() {\n        for (const [, entry] of this.map) {\n            yield [entry.uri, entry.value];\n        }\n    }\n}\nResourceMap.defaultToKey = (resource) => resource.toString();\nexport class LinkedMap {\n    constructor() {\n        this[_b] = 'LinkedMap';\n        this._map = new Map();\n        this._head = undefined;\n        this._tail = undefined;\n        this._size = 0;\n        this._state = 0;\n    }\n    clear() {\n        this._map.clear();\n        this._head = undefined;\n        this._tail = undefined;\n        this._size = 0;\n        this._state++;\n    }\n    isEmpty() {\n        return !this._head && !this._tail;\n    }\n    get size() {\n        return this._size;\n    }\n    get first() {\n        var _c;\n        return (_c = this._head) === null || _c === void 0 ? void 0 : _c.value;\n    }\n    get last() {\n        var _c;\n        return (_c = this._tail) === null || _c === void 0 ? void 0 : _c.value;\n    }\n    has(key) {\n        return this._map.has(key);\n    }\n    get(key, touch = 0 /* Touch.None */) {\n        const item = this._map.get(key);\n        if (!item) {\n            return undefined;\n        }\n        if (touch !== 0 /* Touch.None */) {\n            this.touch(item, touch);\n        }\n        return item.value;\n    }\n    set(key, value, touch = 0 /* Touch.None */) {\n        let item = this._map.get(key);\n        if (item) {\n            item.value = value;\n            if (touch !== 0 /* Touch.None */) {\n                this.touch(item, touch);\n            }\n        }\n        else {\n            item = { key, value, next: undefined, previous: undefined };\n            switch (touch) {\n                case 0 /* Touch.None */:\n                    this.addItemLast(item);\n                    break;\n                case 1 /* Touch.AsOld */:\n                    this.addItemFirst(item);\n                    break;\n                case 2 /* Touch.AsNew */:\n                    this.addItemLast(item);\n                    break;\n                default:\n                    this.addItemLast(item);\n                    break;\n            }\n            this._map.set(key, item);\n            this._size++;\n        }\n        return this;\n    }\n    delete(key) {\n        return !!this.remove(key);\n    }\n    remove(key) {\n        const item = this._map.get(key);\n        if (!item) {\n            return undefined;\n        }\n        this._map.delete(key);\n        this.removeItem(item);\n        this._size--;\n        return item.value;\n    }\n    shift() {\n        if (!this._head && !this._tail) {\n            return undefined;\n        }\n        if (!this._head || !this._tail) {\n            throw new Error('Invalid list');\n        }\n        const item = this._head;\n        this._map.delete(item.key);\n        this.removeItem(item);\n        this._size--;\n        return item.value;\n    }\n    forEach(callbackfn, thisArg) {\n        const state = this._state;\n        let current = this._head;\n        while (current) {\n            if (thisArg) {\n                callbackfn.bind(thisArg)(current.value, current.key, this);\n            }\n            else {\n                callbackfn(current.value, current.key, this);\n            }\n            if (this._state !== state) {\n                throw new Error(`LinkedMap got modified during iteration.`);\n            }\n            current = current.next;\n        }\n    }\n    keys() {\n        const map = this;\n        const state = this._state;\n        let current = this._head;\n        const iterator = {\n            [Symbol.iterator]() {\n                return iterator;\n            },\n            next() {\n                if (map._state !== state) {\n                    throw new Error(`LinkedMap got modified during iteration.`);\n                }\n                if (current) {\n                    const result = { value: current.key, done: false };\n                    current = current.next;\n                    return result;\n                }\n                else {\n                    return { value: undefined, done: true };\n                }\n            }\n        };\n        return iterator;\n    }\n    values() {\n        const map = this;\n        const state = this._state;\n        let current = this._head;\n        const iterator = {\n            [Symbol.iterator]() {\n                return iterator;\n            },\n            next() {\n                if (map._state !== state) {\n                    throw new Error(`LinkedMap got modified during iteration.`);\n                }\n                if (current) {\n                    const result = { value: current.value, done: false };\n                    current = current.next;\n                    return result;\n                }\n                else {\n                    return { value: undefined, done: true };\n                }\n            }\n        };\n        return iterator;\n    }\n    entries() {\n        const map = this;\n        const state = this._state;\n        let current = this._head;\n        const iterator = {\n            [Symbol.iterator]() {\n                return iterator;\n            },\n            next() {\n                if (map._state !== state) {\n                    throw new Error(`LinkedMap got modified during iteration.`);\n                }\n                if (current) {\n                    const result = { value: [current.key, current.value], done: false };\n                    current = current.next;\n                    return result;\n                }\n                else {\n                    return { value: undefined, done: true };\n                }\n            }\n        };\n        return iterator;\n    }\n    [(_b = Symbol.toStringTag, Symbol.iterator)]() {\n        return this.entries();\n    }\n    trimOld(newSize) {\n        if (newSize >= this.size) {\n            return;\n        }\n        if (newSize === 0) {\n            this.clear();\n            return;\n        }\n        let current = this._head;\n        let currentSize = this.size;\n        while (current && currentSize > newSize) {\n            this._map.delete(current.key);\n            current = current.next;\n            currentSize--;\n        }\n        this._head = current;\n        this._size = currentSize;\n        if (current) {\n            current.previous = undefined;\n        }\n        this._state++;\n    }\n    trimNew(newSize) {\n        if (newSize >= this.size) {\n            return;\n        }\n        if (newSize === 0) {\n            this.clear();\n            return;\n        }\n        let current = this._tail;\n        let currentSize = this.size;\n        while (current && currentSize > newSize) {\n            this._map.delete(current.key);\n            current = current.previous;\n            currentSize--;\n        }\n        this._tail = current;\n        this._size = currentSize;\n        if (current) {\n            current.next = undefined;\n        }\n        this._state++;\n    }\n    addItemFirst(item) {\n        // First time Insert\n        if (!this._head && !this._tail) {\n            this._tail = item;\n        }\n        else if (!this._head) {\n            throw new Error('Invalid list');\n        }\n        else {\n            item.next = this._head;\n            this._head.previous = item;\n        }\n        this._head = item;\n        this._state++;\n    }\n    addItemLast(item) {\n        // First time Insert\n        if (!this._head && !this._tail) {\n            this._head = item;\n        }\n        else if (!this._tail) {\n            throw new Error('Invalid list');\n        }\n        else {\n            item.previous = this._tail;\n            this._tail.next = item;\n        }\n        this._tail = item;\n        this._state++;\n    }\n    removeItem(item) {\n        if (item === this._head && item === this._tail) {\n            this._head = undefined;\n            this._tail = undefined;\n        }\n        else if (item === this._head) {\n            // This can only happen if size === 1 which is handled\n            // by the case above.\n            if (!item.next) {\n                throw new Error('Invalid list');\n            }\n            item.next.previous = undefined;\n            this._head = item.next;\n        }\n        else if (item === this._tail) {\n            // This can only happen if size === 1 which is handled\n            // by the case above.\n            if (!item.previous) {\n                throw new Error('Invalid list');\n            }\n            item.previous.next = undefined;\n            this._tail = item.previous;\n        }\n        else {\n            const next = item.next;\n            const previous = item.previous;\n            if (!next || !previous) {\n                throw new Error('Invalid list');\n            }\n            next.previous = previous;\n            previous.next = next;\n        }\n        item.next = undefined;\n        item.previous = undefined;\n        this._state++;\n    }\n    touch(item, touch) {\n        if (!this._head || !this._tail) {\n            throw new Error('Invalid list');\n        }\n        if ((touch !== 1 /* Touch.AsOld */ && touch !== 2 /* Touch.AsNew */)) {\n            return;\n        }\n        if (touch === 1 /* Touch.AsOld */) {\n            if (item === this._head) {\n                return;\n            }\n            const next = item.next;\n            const previous = item.previous;\n            // Unlink the item\n            if (item === this._tail) {\n                // previous must be defined since item was not head but is tail\n                // So there are more than on item in the map\n                previous.next = undefined;\n                this._tail = previous;\n            }\n            else {\n                // Both next and previous are not undefined since item was neither head nor tail.\n                next.previous = previous;\n                previous.next = next;\n            }\n            // Insert the node at head\n            item.previous = undefined;\n            item.next = this._head;\n            this._head.previous = item;\n            this._head = item;\n            this._state++;\n        }\n        else if (touch === 2 /* Touch.AsNew */) {\n            if (item === this._tail) {\n                return;\n            }\n            const next = item.next;\n            const previous = item.previous;\n            // Unlink the item.\n            if (item === this._head) {\n                // next must be defined since item was not tail but is head\n                // So there are more than on item in the map\n                next.previous = undefined;\n                this._head = next;\n            }\n            else {\n                // Both next and previous are not undefined since item was neither head nor tail.\n                next.previous = previous;\n                previous.next = next;\n            }\n            item.next = undefined;\n            item.previous = this._tail;\n            this._tail.next = item;\n            this._tail = item;\n            this._state++;\n        }\n    }\n    toJSON() {\n        const data = [];\n        this.forEach((value, key) => {\n            data.push([key, value]);\n        });\n        return data;\n    }\n    fromJSON(data) {\n        this.clear();\n        for (const [key, value] of data) {\n            this.set(key, value);\n        }\n    }\n}\nclass Cache extends LinkedMap {\n    constructor(limit, ratio = 1) {\n        super();\n        this._limit = limit;\n        this._ratio = Math.min(Math.max(0, ratio), 1);\n    }\n    get limit() {\n        return this._limit;\n    }\n    set limit(limit) {\n        this._limit = limit;\n        this.checkTrim();\n    }\n    get(key, touch = 2 /* Touch.AsNew */) {\n        return super.get(key, touch);\n    }\n    peek(key) {\n        return super.get(key, 0 /* Touch.None */);\n    }\n    set(key, value) {\n        super.set(key, value, 2 /* Touch.AsNew */);\n        return this;\n    }\n    checkTrim() {\n        if (this.size > this._limit) {\n            this.trim(Math.round(this._limit * this._ratio));\n        }\n    }\n}\nexport class LRUCache extends Cache {\n    constructor(limit, ratio = 1) {\n        super(limit, ratio);\n    }\n    trim(newSize) {\n        this.trimOld(newSize);\n    }\n    set(key, value) {\n        super.set(key, value);\n        this.checkTrim();\n        return this;\n    }\n}\n/**\n * A map that allows access both by keys and values.\n * **NOTE**: values need to be unique.\n */\nexport class BidirectionalMap {\n    constructor(entries) {\n        this._m1 = new Map();\n        this._m2 = new Map();\n        if (entries) {\n            for (const [key, value] of entries) {\n                this.set(key, value);\n            }\n        }\n    }\n    clear() {\n        this._m1.clear();\n        this._m2.clear();\n    }\n    set(key, value) {\n        this._m1.set(key, value);\n        this._m2.set(value, key);\n    }\n    get(key) {\n        return this._m1.get(key);\n    }\n    getKey(value) {\n        return this._m2.get(value);\n    }\n    delete(key) {\n        const value = this._m1.get(key);\n        if (value === undefined) {\n            return false;\n        }\n        this._m1.delete(key);\n        this._m2.delete(value);\n        return true;\n    }\n    keys() {\n        return this._m1.keys();\n    }\n    values() {\n        return this._m1.values();\n    }\n}\nexport class SetMap {\n    constructor() {\n        this.map = new Map();\n    }\n    add(key, value) {\n        let values = this.map.get(key);\n        if (!values) {\n            values = new Set();\n            this.map.set(key, values);\n        }\n        values.add(value);\n    }\n    delete(key, value) {\n        const values = this.map.get(key);\n        if (!values) {\n            return;\n        }\n        values.delete(value);\n        if (values.size === 0) {\n            this.map.delete(key);\n        }\n    }\n    forEach(key, fn) {\n        const values = this.map.get(key);\n        if (!values) {\n            return;\n        }\n        values.forEach(fn);\n    }\n    get(key) {\n        const values = this.map.get(key);\n        if (!values) {\n            return new Set();\n        }\n        return values;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/marked/marked.js",
    "content": "/**\n * marked - a markdown parser\n * Copyright (c) 2011-2022, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\n// ESM-uncomment-begin\nlet __marked_exports = {};\n(function() {\n  function define(deps, factory) {\n    factory(__marked_exports);\n  }\n  define.amd = true;\n// ESM-uncomment-end\n\n (function (global, factory) {\n  typeof define === 'function' && define.amd ? define(['exports'], factory) :\n  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.marked = {}));\n})(this, (function (exports) { 'use strict';\n\n  function _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  function _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) _defineProperties(Constructor, staticProps);\n    Object.defineProperty(Constructor, \"prototype\", {\n      writable: false\n    });\n    return Constructor;\n  }\n\n  function _unsupportedIterableToArray(o, minLen) {\n    if (!o) return;\n    if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n    var n = Object.prototype.toString.call(o).slice(8, -1);\n    if (n === \"Object\" && o.constructor) n = o.constructor.name;\n    if (n === \"Map\" || n === \"Set\") return Array.from(o);\n    if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n  }\n\n  function _arrayLikeToArray(arr, len) {\n    if (len == null || len > arr.length) len = arr.length;\n\n    for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n    return arr2;\n  }\n\n  function _createForOfIteratorHelperLoose(o, allowArrayLike) {\n    var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n    if (it) return (it = it.call(o)).next.bind(it);\n\n    if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n      if (it) o = it;\n      var i = 0;\n      return function () {\n        if (i >= o.length) return {\n          done: true\n        };\n        return {\n          done: false,\n          value: o[i++]\n        };\n      };\n    }\n\n    throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n  }\n\n  function getDefaults() {\n    return {\n      async: false,\n      baseUrl: null,\n      breaks: false,\n      extensions: null,\n      gfm: true,\n      headerIds: true,\n      headerPrefix: '',\n      highlight: null,\n      langPrefix: 'language-',\n      mangle: true,\n      pedantic: false,\n      renderer: null,\n      sanitize: false,\n      sanitizer: null,\n      silent: false,\n      smartLists: false,\n      smartypants: false,\n      tokenizer: null,\n      walkTokens: null,\n      xhtml: false\n    };\n  }\n  exports.defaults = getDefaults();\n  function changeDefaults(newDefaults) {\n    exports.defaults = newDefaults;\n  }\n\n  /**\n   * Helpers\n   */\n  var escapeTest = /[&<>\"']/;\n  var escapeReplace = /[&<>\"']/g;\n  var escapeTestNoEncode = /[<>\"']|&(?!#?\\w+;)/;\n  var escapeReplaceNoEncode = /[<>\"']|&(?!#?\\w+;)/g;\n  var escapeReplacements = {\n    '&': '&amp;',\n    '<': '&lt;',\n    '>': '&gt;',\n    '\"': '&quot;',\n    \"'\": '&#39;'\n  };\n\n  var getEscapeReplacement = function getEscapeReplacement(ch) {\n    return escapeReplacements[ch];\n  };\n\n  function escape(html, encode) {\n    if (encode) {\n      if (escapeTest.test(html)) {\n        return html.replace(escapeReplace, getEscapeReplacement);\n      }\n    } else {\n      if (escapeTestNoEncode.test(html)) {\n        return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\n      }\n    }\n\n    return html;\n  }\n  var unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;\n  /**\n   * @param {string} html\n   */\n\n  function unescape(html) {\n    // explicitly match decimal, hex, and named HTML entities\n    return html.replace(unescapeTest, function (_, n) {\n      n = n.toLowerCase();\n      if (n === 'colon') return ':';\n\n      if (n.charAt(0) === '#') {\n        return n.charAt(1) === 'x' ? String.fromCharCode(parseInt(n.substring(2), 16)) : String.fromCharCode(+n.substring(1));\n      }\n\n      return '';\n    });\n  }\n  var caret = /(^|[^\\[])\\^/g;\n  /**\n   * @param {string | RegExp} regex\n   * @param {string} opt\n   */\n\n  function edit(regex, opt) {\n    regex = typeof regex === 'string' ? regex : regex.source;\n    opt = opt || '';\n    var obj = {\n      replace: function replace(name, val) {\n        val = val.source || val;\n        val = val.replace(caret, '$1');\n        regex = regex.replace(name, val);\n        return obj;\n      },\n      getRegex: function getRegex() {\n        return new RegExp(regex, opt);\n      }\n    };\n    return obj;\n  }\n  var nonWordAndColonTest = /[^\\w:]/g;\n  var originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;\n  /**\n   * @param {boolean} sanitize\n   * @param {string} base\n   * @param {string} href\n   */\n\n  function cleanUrl(sanitize, base, href) {\n    if (sanitize) {\n      var prot;\n\n      try {\n        prot = decodeURIComponent(unescape(href)).replace(nonWordAndColonTest, '').toLowerCase();\n      } catch (e) {\n        return null;\n      }\n\n      if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {\n        return null;\n      }\n    }\n\n    if (base && !originIndependentUrl.test(href)) {\n      href = resolveUrl(base, href);\n    }\n\n    try {\n      href = encodeURI(href).replace(/%25/g, '%');\n    } catch (e) {\n      return null;\n    }\n\n    return href;\n  }\n  var baseUrls = {};\n  var justDomain = /^[^:]+:\\/*[^/]*$/;\n  var protocol = /^([^:]+:)[\\s\\S]*$/;\n  var domain = /^([^:]+:\\/*[^/]*)[\\s\\S]*$/;\n  /**\n   * @param {string} base\n   * @param {string} href\n   */\n\n  function resolveUrl(base, href) {\n    if (!baseUrls[' ' + base]) {\n      // we can ignore everything in base after the last slash of its path component,\n      // but we might need to add _that_\n      // https://tools.ietf.org/html/rfc3986#section-3\n      if (justDomain.test(base)) {\n        baseUrls[' ' + base] = base + '/';\n      } else {\n        baseUrls[' ' + base] = rtrim(base, '/', true);\n      }\n    }\n\n    base = baseUrls[' ' + base];\n    var relativeBase = base.indexOf(':') === -1;\n\n    if (href.substring(0, 2) === '//') {\n      if (relativeBase) {\n        return href;\n      }\n\n      return base.replace(protocol, '$1') + href;\n    } else if (href.charAt(0) === '/') {\n      if (relativeBase) {\n        return href;\n      }\n\n      return base.replace(domain, '$1') + href;\n    } else {\n      return base + href;\n    }\n  }\n  var noopTest = {\n    exec: function noopTest() {}\n  };\n  function merge(obj) {\n    var i = 1,\n        target,\n        key;\n\n    for (; i < arguments.length; i++) {\n      target = arguments[i];\n\n      for (key in target) {\n        if (Object.prototype.hasOwnProperty.call(target, key)) {\n          obj[key] = target[key];\n        }\n      }\n    }\n\n    return obj;\n  }\n  function splitCells(tableRow, count) {\n    // ensure that every cell-delimiting pipe has a space\n    // before it to distinguish it from an escaped pipe\n    var row = tableRow.replace(/\\|/g, function (match, offset, str) {\n      var escaped = false,\n          curr = offset;\n\n      while (--curr >= 0 && str[curr] === '\\\\') {\n        escaped = !escaped;\n      }\n\n      if (escaped) {\n        // odd number of slashes means | is escaped\n        // so we leave it alone\n        return '|';\n      } else {\n        // add space before unescaped |\n        return ' |';\n      }\n    }),\n        cells = row.split(/ \\|/);\n    var i = 0; // First/last cell in a row cannot be empty if it has no leading/trailing pipe\n\n    if (!cells[0].trim()) {\n      cells.shift();\n    }\n\n    if (cells.length > 0 && !cells[cells.length - 1].trim()) {\n      cells.pop();\n    }\n\n    if (cells.length > count) {\n      cells.splice(count);\n    } else {\n      while (cells.length < count) {\n        cells.push('');\n      }\n    }\n\n    for (; i < cells.length; i++) {\n      // leading or trailing whitespace is ignored per the gfm spec\n      cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n    }\n\n    return cells;\n  }\n  /**\n   * Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n   * /c*$/ is vulnerable to REDOS.\n   *\n   * @param {string} str\n   * @param {string} c\n   * @param {boolean} invert Remove suffix of non-c chars instead. Default falsey.\n   */\n\n  function rtrim(str, c, invert) {\n    var l = str.length;\n\n    if (l === 0) {\n      return '';\n    } // Length of suffix matching the invert condition.\n\n\n    var suffLen = 0; // Step left until we fail to match the invert condition.\n\n    while (suffLen < l) {\n      var currChar = str.charAt(l - suffLen - 1);\n\n      if (currChar === c && !invert) {\n        suffLen++;\n      } else if (currChar !== c && invert) {\n        suffLen++;\n      } else {\n        break;\n      }\n    }\n\n    return str.slice(0, l - suffLen);\n  }\n  function findClosingBracket(str, b) {\n    if (str.indexOf(b[1]) === -1) {\n      return -1;\n    }\n\n    var l = str.length;\n    var level = 0,\n        i = 0;\n\n    for (; i < l; i++) {\n      if (str[i] === '\\\\') {\n        i++;\n      } else if (str[i] === b[0]) {\n        level++;\n      } else if (str[i] === b[1]) {\n        level--;\n\n        if (level < 0) {\n          return i;\n        }\n      }\n    }\n\n    return -1;\n  }\n  function checkSanitizeDeprecation(opt) {\n    if (opt && opt.sanitize && !opt.silent) {\n      console.warn('marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options');\n    }\n  } // copied from https://stackoverflow.com/a/5450113/806777\n\n  /**\n   * @param {string} pattern\n   * @param {number} count\n   */\n\n  function repeatString(pattern, count) {\n    if (count < 1) {\n      return '';\n    }\n\n    var result = '';\n\n    while (count > 1) {\n      if (count & 1) {\n        result += pattern;\n      }\n\n      count >>= 1;\n      pattern += pattern;\n    }\n\n    return result + pattern;\n  }\n\n  function outputLink(cap, link, raw, lexer) {\n    var href = link.href;\n    var title = link.title ? escape(link.title) : null;\n    var text = cap[1].replace(/\\\\([\\[\\]])/g, '$1');\n\n    if (cap[0].charAt(0) !== '!') {\n      lexer.state.inLink = true;\n      var token = {\n        type: 'link',\n        raw: raw,\n        href: href,\n        title: title,\n        text: text,\n        tokens: lexer.inlineTokens(text)\n      };\n      lexer.state.inLink = false;\n      return token;\n    }\n\n    return {\n      type: 'image',\n      raw: raw,\n      href: href,\n      title: title,\n      text: escape(text)\n    };\n  }\n\n  function indentCodeCompensation(raw, text) {\n    var matchIndentToCode = raw.match(/^(\\s+)(?:```)/);\n\n    if (matchIndentToCode === null) {\n      return text;\n    }\n\n    var indentToCode = matchIndentToCode[1];\n    return text.split('\\n').map(function (node) {\n      var matchIndentInNode = node.match(/^\\s+/);\n\n      if (matchIndentInNode === null) {\n        return node;\n      }\n\n      var indentInNode = matchIndentInNode[0];\n\n      if (indentInNode.length >= indentToCode.length) {\n        return node.slice(indentToCode.length);\n      }\n\n      return node;\n    }).join('\\n');\n  }\n  /**\n   * Tokenizer\n   */\n\n\n  var Tokenizer = /*#__PURE__*/function () {\n    function Tokenizer(options) {\n      this.options = options || exports.defaults;\n    }\n\n    var _proto = Tokenizer.prototype;\n\n    _proto.space = function space(src) {\n      var cap = this.rules.block.newline.exec(src);\n\n      if (cap && cap[0].length > 0) {\n        return {\n          type: 'space',\n          raw: cap[0]\n        };\n      }\n    };\n\n    _proto.code = function code(src) {\n      var cap = this.rules.block.code.exec(src);\n\n      if (cap) {\n        var text = cap[0].replace(/^ {1,4}/gm, '');\n        return {\n          type: 'code',\n          raw: cap[0],\n          codeBlockStyle: 'indented',\n          text: !this.options.pedantic ? rtrim(text, '\\n') : text\n        };\n      }\n    };\n\n    _proto.fences = function fences(src) {\n      var cap = this.rules.block.fences.exec(src);\n\n      if (cap) {\n        var raw = cap[0];\n        var text = indentCodeCompensation(raw, cap[3] || '');\n        return {\n          type: 'code',\n          raw: raw,\n          lang: cap[2] ? cap[2].trim() : cap[2],\n          text: text\n        };\n      }\n    };\n\n    _proto.heading = function heading(src) {\n      var cap = this.rules.block.heading.exec(src);\n\n      if (cap) {\n        var text = cap[2].trim(); // remove trailing #s\n\n        if (/#$/.test(text)) {\n          var trimmed = rtrim(text, '#');\n\n          if (this.options.pedantic) {\n            text = trimmed.trim();\n          } else if (!trimmed || / $/.test(trimmed)) {\n            // CommonMark requires space before trailing #s\n            text = trimmed.trim();\n          }\n        }\n\n        return {\n          type: 'heading',\n          raw: cap[0],\n          depth: cap[1].length,\n          text: text,\n          tokens: this.lexer.inline(text)\n        };\n      }\n    };\n\n    _proto.hr = function hr(src) {\n      var cap = this.rules.block.hr.exec(src);\n\n      if (cap) {\n        return {\n          type: 'hr',\n          raw: cap[0]\n        };\n      }\n    };\n\n    _proto.blockquote = function blockquote(src) {\n      var cap = this.rules.block.blockquote.exec(src);\n\n      if (cap) {\n        var text = cap[0].replace(/^ *>[ \\t]?/gm, '');\n        return {\n          type: 'blockquote',\n          raw: cap[0],\n          tokens: this.lexer.blockTokens(text, []),\n          text: text\n        };\n      }\n    };\n\n    _proto.list = function list(src) {\n      var cap = this.rules.block.list.exec(src);\n\n      if (cap) {\n        var raw, istask, ischecked, indent, i, blankLine, endsWithBlankLine, line, nextLine, rawLine, itemContents, endEarly;\n        var bull = cap[1].trim();\n        var isordered = bull.length > 1;\n        var list = {\n          type: 'list',\n          raw: '',\n          ordered: isordered,\n          start: isordered ? +bull.slice(0, -1) : '',\n          loose: false,\n          items: []\n        };\n        bull = isordered ? \"\\\\d{1,9}\\\\\" + bull.slice(-1) : \"\\\\\" + bull;\n\n        if (this.options.pedantic) {\n          bull = isordered ? bull : '[*+-]';\n        } // Get next list item\n\n\n        var itemRegex = new RegExp(\"^( {0,3}\" + bull + \")((?:[\\t ][^\\\\n]*)?(?:\\\\n|$))\"); // Check if current bullet point can start a new List Item\n\n        while (src) {\n          endEarly = false;\n\n          if (!(cap = itemRegex.exec(src))) {\n            break;\n          }\n\n          if (this.rules.block.hr.test(src)) {\n            // End list if bullet was actually HR (possibly move into itemRegex?)\n            break;\n          }\n\n          raw = cap[0];\n          src = src.substring(raw.length);\n          line = cap[2].split('\\n', 1)[0];\n          nextLine = src.split('\\n', 1)[0];\n\n          if (this.options.pedantic) {\n            indent = 2;\n            itemContents = line.trimLeft();\n          } else {\n            indent = cap[2].search(/[^ ]/); // Find first non-space char\n\n            indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent\n\n            itemContents = line.slice(indent);\n            indent += cap[1].length;\n          }\n\n          blankLine = false;\n\n          if (!line && /^ *$/.test(nextLine)) {\n            // Items begin with at most one blank line\n            raw += nextLine + '\\n';\n            src = src.substring(nextLine.length + 1);\n            endEarly = true;\n          }\n\n          if (!endEarly) {\n            var nextBulletRegex = new RegExp(\"^ {0,\" + Math.min(3, indent - 1) + \"}(?:[*+-]|\\\\d{1,9}[.)])((?: [^\\\\n]*)?(?:\\\\n|$))\");\n            var hrRegex = new RegExp(\"^ {0,\" + Math.min(3, indent - 1) + \"}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)\");\n            var fencesBeginRegex = new RegExp(\"^ {0,\" + Math.min(3, indent - 1) + \"}(?:```|~~~)\");\n            var headingBeginRegex = new RegExp(\"^ {0,\" + Math.min(3, indent - 1) + \"}#\"); // Check if following lines should be included in List Item\n\n            while (src) {\n              rawLine = src.split('\\n', 1)[0];\n              line = rawLine; // Re-align to follow commonmark nesting rules\n\n              if (this.options.pedantic) {\n                line = line.replace(/^ {1,4}(?=( {4})*[^ ])/g, '  ');\n              } // End list item if found code fences\n\n\n              if (fencesBeginRegex.test(line)) {\n                break;\n              } // End list item if found start of new heading\n\n\n              if (headingBeginRegex.test(line)) {\n                break;\n              } // End list item if found start of new bullet\n\n\n              if (nextBulletRegex.test(line)) {\n                break;\n              } // Horizontal rule found\n\n\n              if (hrRegex.test(src)) {\n                break;\n              }\n\n              if (line.search(/[^ ]/) >= indent || !line.trim()) {\n                // Dedent if possible\n                itemContents += '\\n' + line.slice(indent);\n              } else if (!blankLine) {\n                // Until blank line, item doesn't need indentation\n                itemContents += '\\n' + line;\n              } else {\n                // Otherwise, improper indentation ends this item\n                break;\n              }\n\n              if (!blankLine && !line.trim()) {\n                // Check if current line is blank\n                blankLine = true;\n              }\n\n              raw += rawLine + '\\n';\n              src = src.substring(rawLine.length + 1);\n            }\n          }\n\n          if (!list.loose) {\n            // If the previous item ended with a blank line, the list is loose\n            if (endsWithBlankLine) {\n              list.loose = true;\n            } else if (/\\n *\\n *$/.test(raw)) {\n              endsWithBlankLine = true;\n            }\n          } // Check for task list items\n\n\n          if (this.options.gfm) {\n            istask = /^\\[[ xX]\\] /.exec(itemContents);\n\n            if (istask) {\n              ischecked = istask[0] !== '[ ] ';\n              itemContents = itemContents.replace(/^\\[[ xX]\\] +/, '');\n            }\n          }\n\n          list.items.push({\n            type: 'list_item',\n            raw: raw,\n            task: !!istask,\n            checked: ischecked,\n            loose: false,\n            text: itemContents\n          });\n          list.raw += raw;\n        } // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic\n\n\n        list.items[list.items.length - 1].raw = raw.trimRight();\n        list.items[list.items.length - 1].text = itemContents.trimRight();\n        list.raw = list.raw.trimRight();\n        var l = list.items.length; // Item child tokens handled here at end because we needed to have the final item to trim it first\n\n        for (i = 0; i < l; i++) {\n          this.lexer.state.top = false;\n          list.items[i].tokens = this.lexer.blockTokens(list.items[i].text, []);\n          var spacers = list.items[i].tokens.filter(function (t) {\n            return t.type === 'space';\n          });\n          var hasMultipleLineBreaks = spacers.every(function (t) {\n            var chars = t.raw.split('');\n            var lineBreaks = 0;\n\n            for (var _iterator = _createForOfIteratorHelperLoose(chars), _step; !(_step = _iterator()).done;) {\n              var _char = _step.value;\n\n              if (_char === '\\n') {\n                lineBreaks += 1;\n              }\n\n              if (lineBreaks > 1) {\n                return true;\n              }\n            }\n\n            return false;\n          });\n\n          if (!list.loose && spacers.length && hasMultipleLineBreaks) {\n            // Having a single line break doesn't mean a list is loose. A single line break is terminating the last list item\n            list.loose = true;\n            list.items[i].loose = true;\n          }\n        }\n\n        return list;\n      }\n    };\n\n    _proto.html = function html(src) {\n      var cap = this.rules.block.html.exec(src);\n\n      if (cap) {\n        var token = {\n          type: 'html',\n          raw: cap[0],\n          pre: !this.options.sanitizer && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),\n          text: cap[0]\n        };\n\n        if (this.options.sanitize) {\n          var text = this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0]);\n          token.type = 'paragraph';\n          token.text = text;\n          token.tokens = this.lexer.inline(text);\n        }\n\n        return token;\n      }\n    };\n\n    _proto.def = function def(src) {\n      var cap = this.rules.block.def.exec(src);\n\n      if (cap) {\n        if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1);\n        var tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n        return {\n          type: 'def',\n          tag: tag,\n          raw: cap[0],\n          href: cap[2],\n          title: cap[3]\n        };\n      }\n    };\n\n    _proto.table = function table(src) {\n      var cap = this.rules.block.table.exec(src);\n\n      if (cap) {\n        var item = {\n          type: 'table',\n          header: splitCells(cap[1]).map(function (c) {\n            return {\n              text: c\n            };\n          }),\n          align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n          rows: cap[3] && cap[3].trim() ? cap[3].replace(/\\n[ \\t]*$/, '').split('\\n') : []\n        };\n\n        if (item.header.length === item.align.length) {\n          item.raw = cap[0];\n          var l = item.align.length;\n          var i, j, k, row;\n\n          for (i = 0; i < l; i++) {\n            if (/^ *-+: *$/.test(item.align[i])) {\n              item.align[i] = 'right';\n            } else if (/^ *:-+: *$/.test(item.align[i])) {\n              item.align[i] = 'center';\n            } else if (/^ *:-+ *$/.test(item.align[i])) {\n              item.align[i] = 'left';\n            } else {\n              item.align[i] = null;\n            }\n          }\n\n          l = item.rows.length;\n\n          for (i = 0; i < l; i++) {\n            item.rows[i] = splitCells(item.rows[i], item.header.length).map(function (c) {\n              return {\n                text: c\n              };\n            });\n          } // parse child tokens inside headers and cells\n          // header child tokens\n\n\n          l = item.header.length;\n\n          for (j = 0; j < l; j++) {\n            item.header[j].tokens = this.lexer.inline(item.header[j].text);\n          } // cell child tokens\n\n\n          l = item.rows.length;\n\n          for (j = 0; j < l; j++) {\n            row = item.rows[j];\n\n            for (k = 0; k < row.length; k++) {\n              row[k].tokens = this.lexer.inline(row[k].text);\n            }\n          }\n\n          return item;\n        }\n      }\n    };\n\n    _proto.lheading = function lheading(src) {\n      var cap = this.rules.block.lheading.exec(src);\n\n      if (cap) {\n        return {\n          type: 'heading',\n          raw: cap[0],\n          depth: cap[2].charAt(0) === '=' ? 1 : 2,\n          text: cap[1],\n          tokens: this.lexer.inline(cap[1])\n        };\n      }\n    };\n\n    _proto.paragraph = function paragraph(src) {\n      var cap = this.rules.block.paragraph.exec(src);\n\n      if (cap) {\n        var text = cap[1].charAt(cap[1].length - 1) === '\\n' ? cap[1].slice(0, -1) : cap[1];\n        return {\n          type: 'paragraph',\n          raw: cap[0],\n          text: text,\n          tokens: this.lexer.inline(text)\n        };\n      }\n    };\n\n    _proto.text = function text(src) {\n      var cap = this.rules.block.text.exec(src);\n\n      if (cap) {\n        return {\n          type: 'text',\n          raw: cap[0],\n          text: cap[0],\n          tokens: this.lexer.inline(cap[0])\n        };\n      }\n    };\n\n    _proto.escape = function escape$1(src) {\n      var cap = this.rules.inline.escape.exec(src);\n\n      if (cap) {\n        return {\n          type: 'escape',\n          raw: cap[0],\n          text: escape(cap[1])\n        };\n      }\n    };\n\n    _proto.tag = function tag(src) {\n      var cap = this.rules.inline.tag.exec(src);\n\n      if (cap) {\n        if (!this.lexer.state.inLink && /^<a /i.test(cap[0])) {\n          this.lexer.state.inLink = true;\n        } else if (this.lexer.state.inLink && /^<\\/a>/i.test(cap[0])) {\n          this.lexer.state.inLink = false;\n        }\n\n        if (!this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n          this.lexer.state.inRawBlock = true;\n        } else if (this.lexer.state.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n          this.lexer.state.inRawBlock = false;\n        }\n\n        return {\n          type: this.options.sanitize ? 'text' : 'html',\n          raw: cap[0],\n          inLink: this.lexer.state.inLink,\n          inRawBlock: this.lexer.state.inRawBlock,\n          text: this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0]) : cap[0]\n        };\n      }\n    };\n\n    _proto.link = function link(src) {\n      var cap = this.rules.inline.link.exec(src);\n\n      if (cap) {\n        var trimmedUrl = cap[2].trim();\n\n        if (!this.options.pedantic && /^</.test(trimmedUrl)) {\n          // commonmark requires matching angle brackets\n          if (!/>$/.test(trimmedUrl)) {\n            return;\n          } // ending angle bracket cannot be escaped\n\n\n          var rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\\\');\n\n          if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n            return;\n          }\n        } else {\n          // find closing parenthesis\n          var lastParenIndex = findClosingBracket(cap[2], '()');\n\n          if (lastParenIndex > -1) {\n            var start = cap[0].indexOf('!') === 0 ? 5 : 4;\n            var linkLen = start + cap[1].length + lastParenIndex;\n            cap[2] = cap[2].substring(0, lastParenIndex);\n            cap[0] = cap[0].substring(0, linkLen).trim();\n            cap[3] = '';\n          }\n        }\n\n        var href = cap[2];\n        var title = '';\n\n        if (this.options.pedantic) {\n          // split pedantic href and title\n          var link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n\n          if (link) {\n            href = link[1];\n            title = link[3];\n          }\n        } else {\n          title = cap[3] ? cap[3].slice(1, -1) : '';\n        }\n\n        href = href.trim();\n\n        if (/^</.test(href)) {\n          if (this.options.pedantic && !/>$/.test(trimmedUrl)) {\n            // pedantic allows starting angle bracket without ending angle bracket\n            href = href.slice(1);\n          } else {\n            href = href.slice(1, -1);\n          }\n        }\n\n        return outputLink(cap, {\n          href: href ? href.replace(this.rules.inline._escapes, '$1') : href,\n          title: title ? title.replace(this.rules.inline._escapes, '$1') : title\n        }, cap[0], this.lexer);\n      }\n    };\n\n    _proto.reflink = function reflink(src, links) {\n      var cap;\n\n      if ((cap = this.rules.inline.reflink.exec(src)) || (cap = this.rules.inline.nolink.exec(src))) {\n        var link = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n        link = links[link.toLowerCase()];\n\n        if (!link || !link.href) {\n          var text = cap[0].charAt(0);\n          return {\n            type: 'text',\n            raw: text,\n            text: text\n          };\n        }\n\n        return outputLink(cap, link, cap[0], this.lexer);\n      }\n    };\n\n    _proto.emStrong = function emStrong(src, maskedSrc, prevChar) {\n      if (prevChar === void 0) {\n        prevChar = '';\n      }\n\n      var match = this.rules.inline.emStrong.lDelim.exec(src);\n      if (!match) return; // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n\n      if (match[3] && prevChar.match(/(?:[0-9A-Za-z\\xAA\\xB2\\xB3\\xB5\\xB9\\xBA\\xBC-\\xBE\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u0660-\\u0669\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07C0-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0966-\\u096F\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09E6-\\u09F1\\u09F4-\\u09F9\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A6F\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AE6-\\u0AEF\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B66-\\u0B6F\\u0B71-\\u0B77\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0BE6-\\u0BF2\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C66-\\u0C6F\\u0C78-\\u0C7E\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D58-\\u0D61\\u0D66-\\u0D78\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DE6-\\u0DEF\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F20-\\u0F33\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F-\\u1049\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u1090-\\u1099\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1369-\\u137C\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u17E0-\\u17E9\\u17F0-\\u17F9\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B50-\\u1B59\\u1B83-\\u1BA0\\u1BAE-\\u1BE5\\u1C00-\\u1C23\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2070\\u2071\\u2074-\\u2079\\u207F-\\u2089\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2150-\\u2189\\u2460-\\u249B\\u24EA-\\u24FF\\u2776-\\u2793\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2CFD\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u3192-\\u3195\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3220-\\u3229\\u3248-\\u324F\\u3251-\\u325F\\u3280-\\u3289\\u32B1-\\u32BF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA830-\\uA835\\uA840-\\uA873\\uA882-\\uA8B3\\uA8D0-\\uA8D9\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA900-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF-\\uA9D9\\uA9E0-\\uA9E4\\uA9E6-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD07-\\uDD33\\uDD40-\\uDD78\\uDD8A\\uDD8B\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE1-\\uDEFB\\uDF00-\\uDF23\\uDF2D-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC58-\\uDC76\\uDC79-\\uDC9E\\uDCA7-\\uDCAF\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDCFB-\\uDD1B\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBC-\\uDDCF\\uDDD2-\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE40-\\uDE48\\uDE60-\\uDE7E\\uDE80-\\uDE9F\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDEEB-\\uDEEF\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF58-\\uDF72\\uDF78-\\uDF91\\uDFA9-\\uDFAF]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDCFA-\\uDD23\\uDD30-\\uDD39\\uDE60-\\uDE7E\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF27\\uDF30-\\uDF45\\uDF51-\\uDF54\\uDF70-\\uDF81\\uDFB0-\\uDFCB\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC52-\\uDC6F\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD03-\\uDD26\\uDD36-\\uDD3F\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDD0-\\uDDDA\\uDDDC\\uDDE1-\\uDDF4\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDEF0-\\uDEF9\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC50-\\uDC59\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEAA\\uDEB8\\uDEC0-\\uDEC9\\uDF00-\\uDF1A\\uDF30-\\uDF3B\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCF2\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDD50-\\uDD59\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC50-\\uDC6C\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD50-\\uDD59\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDDA0-\\uDDA9\\uDEE0-\\uDEF2\\uDFB0\\uDFC0-\\uDFD4]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDE70-\\uDEBE\\uDEC0-\\uDEC9\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF5B-\\uDF61\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE96\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD50-\\uDD52\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD834[\\uDEE0-\\uDEF3\\uDF60-\\uDF78]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD837[\\uDF00-\\uDF1E]|\\uD838[\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD40-\\uDD49\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB\\uDEF0-\\uDEF9]|\\uD839[\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDCC7-\\uDCCF\\uDD00-\\uDD43\\uDD4B\\uDD50-\\uDD59]|\\uD83B[\\uDC71-\\uDCAB\\uDCAD-\\uDCAF\\uDCB1-\\uDCB4\\uDD01-\\uDD2D\\uDD2F-\\uDD3D\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD83C[\\uDD00-\\uDD0C]|\\uD83E[\\uDFF0-\\uDFF9]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF38\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A])/)) return;\n      var nextChar = match[1] || match[2] || '';\n\n      if (!nextChar || nextChar && (prevChar === '' || this.rules.inline.punctuation.exec(prevChar))) {\n        var lLength = match[0].length - 1;\n        var rDelim,\n            rLength,\n            delimTotal = lLength,\n            midDelimTotal = 0;\n        var endReg = match[0][0] === '*' ? this.rules.inline.emStrong.rDelimAst : this.rules.inline.emStrong.rDelimUnd;\n        endReg.lastIndex = 0; // Clip maskedSrc to same section of string as src (move to lexer?)\n\n        maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n\n        while ((match = endReg.exec(maskedSrc)) != null) {\n          rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n          if (!rDelim) continue; // skip single * in __abc*abc__\n\n          rLength = rDelim.length;\n\n          if (match[3] || match[4]) {\n            // found another Left Delim\n            delimTotal += rLength;\n            continue;\n          } else if (match[5] || match[6]) {\n            // either Left or Right Delim\n            if (lLength % 3 && !((lLength + rLength) % 3)) {\n              midDelimTotal += rLength;\n              continue; // CommonMark Emphasis Rules 9-10\n            }\n          }\n\n          delimTotal -= rLength;\n          if (delimTotal > 0) continue; // Haven't found enough closing delimiters\n          // Remove extra characters. *a*** -> *a*\n\n          rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal); // Create `em` if smallest delimiter has odd char count. *a***\n\n          if (Math.min(lLength, rLength) % 2) {\n            var _text = src.slice(1, lLength + match.index + rLength);\n\n            return {\n              type: 'em',\n              raw: src.slice(0, lLength + match.index + rLength + 1),\n              text: _text,\n              tokens: this.lexer.inlineTokens(_text)\n            };\n          } // Create 'strong' if smallest delimiter has even char count. **a***\n\n\n          var text = src.slice(2, lLength + match.index + rLength - 1);\n          return {\n            type: 'strong',\n            raw: src.slice(0, lLength + match.index + rLength + 1),\n            text: text,\n            tokens: this.lexer.inlineTokens(text)\n          };\n        }\n      }\n    };\n\n    _proto.codespan = function codespan(src) {\n      var cap = this.rules.inline.code.exec(src);\n\n      if (cap) {\n        var text = cap[2].replace(/\\n/g, ' ');\n        var hasNonSpaceChars = /[^ ]/.test(text);\n        var hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);\n\n        if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n          text = text.substring(1, text.length - 1);\n        }\n\n        text = escape(text, true);\n        return {\n          type: 'codespan',\n          raw: cap[0],\n          text: text\n        };\n      }\n    };\n\n    _proto.br = function br(src) {\n      var cap = this.rules.inline.br.exec(src);\n\n      if (cap) {\n        return {\n          type: 'br',\n          raw: cap[0]\n        };\n      }\n    };\n\n    _proto.del = function del(src) {\n      var cap = this.rules.inline.del.exec(src);\n\n      if (cap) {\n        return {\n          type: 'del',\n          raw: cap[0],\n          text: cap[2],\n          tokens: this.lexer.inlineTokens(cap[2])\n        };\n      }\n    };\n\n    _proto.autolink = function autolink(src, mangle) {\n      var cap = this.rules.inline.autolink.exec(src);\n\n      if (cap) {\n        var text, href;\n\n        if (cap[2] === '@') {\n          text = escape(this.options.mangle ? mangle(cap[1]) : cap[1]);\n          href = 'mailto:' + text;\n        } else {\n          text = escape(cap[1]);\n          href = text;\n        }\n\n        return {\n          type: 'link',\n          raw: cap[0],\n          text: text,\n          href: href,\n          tokens: [{\n            type: 'text',\n            raw: text,\n            text: text\n          }]\n        };\n      }\n    };\n\n    _proto.url = function url(src, mangle) {\n      var cap;\n\n      if (cap = this.rules.inline.url.exec(src)) {\n        var text, href;\n\n        if (cap[2] === '@') {\n          text = escape(this.options.mangle ? mangle(cap[0]) : cap[0]);\n          href = 'mailto:' + text;\n        } else {\n          // do extended autolink path validation\n          var prevCapZero;\n\n          do {\n            prevCapZero = cap[0];\n            cap[0] = this.rules.inline._backpedal.exec(cap[0])[0];\n          } while (prevCapZero !== cap[0]);\n\n          text = escape(cap[0]);\n\n          if (cap[1] === 'www.') {\n            href = 'http://' + text;\n          } else {\n            href = text;\n          }\n        }\n\n        return {\n          type: 'link',\n          raw: cap[0],\n          text: text,\n          href: href,\n          tokens: [{\n            type: 'text',\n            raw: text,\n            text: text\n          }]\n        };\n      }\n    };\n\n    _proto.inlineText = function inlineText(src, smartypants) {\n      var cap = this.rules.inline.text.exec(src);\n\n      if (cap) {\n        var text;\n\n        if (this.lexer.state.inRawBlock) {\n          text = this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0]) : cap[0];\n        } else {\n          text = escape(this.options.smartypants ? smartypants(cap[0]) : cap[0]);\n        }\n\n        return {\n          type: 'text',\n          raw: cap[0],\n          text: text\n        };\n      }\n    };\n\n    return Tokenizer;\n  }();\n\n  /**\n   * Block-Level Grammar\n   */\n\n  var block = {\n    newline: /^(?: *(?:\\n|$))+/,\n    code: /^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/,\n    fences: /^ {0,3}(`{3,}(?=[^`\\n]*\\n)|~{3,})([^\\n]*)\\n(?:|([\\s\\S]*?)\\n)(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/,\n    hr: /^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/,\n    heading: /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,\n    blockquote: /^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,\n    list: /^( {0,3}bull)([ \\t][^\\n]+?)?(?:\\n|$)/,\n    html: '^ {0,3}(?:' // optional indentation\n    + '<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)' // (1)\n    + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n    + '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n    + '|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)' // (4)\n    + '|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)' // (5)\n    + '|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (6)\n    + '|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) open tag\n    + '|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) closing tag\n    + ')',\n    def: /^ {0,3}\\[(label)\\]: *(?:\\n *)?<?([^\\s>]+)>?(?:(?: +(?:\\n *)?| *\\n *)(title))? *(?:\\n+|$)/,\n    table: noopTest,\n    lheading: /^([^\\n]+)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n    // regex template, placeholders will be replaced according to different paragraph\n    // interruption rules of commonmark and the original markdown spec:\n    _paragraph: /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/,\n    text: /^[^\\n]+/\n  };\n  block._label = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\n  block._title = /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/;\n  block.def = edit(block.def).replace('label', block._label).replace('title', block._title).getRegex();\n  block.bullet = /(?:[*+-]|\\d{1,9}[.)])/;\n  block.listItemStart = edit(/^( *)(bull) */).replace('bull', block.bullet).getRegex();\n  block.list = edit(block.list).replace(/bull/g, block.bullet).replace('hr', '\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))').replace('def', '\\\\n+(?=' + block.def.source + ')').getRegex();\n  block._tag = 'address|article|aside|base|basefont|blockquote|body|caption' + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption' + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe' + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option' + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr' + '|track|ul';\n  block._comment = /<!--(?!-?>)[\\s\\S]*?(?:-->|$)/;\n  block.html = edit(block.html, 'i').replace('comment', block._comment).replace('tag', block._tag).replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex();\n  block.paragraph = edit(block._paragraph).replace('hr', block.hr).replace('heading', ' {0,3}#{1,6} ').replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n  .replace('|table', '').replace('blockquote', ' {0,3}>').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n  .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)').replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n  .getRegex();\n  block.blockquote = edit(block.blockquote).replace('paragraph', block.paragraph).getRegex();\n  /**\n   * Normal Block Grammar\n   */\n\n  block.normal = merge({}, block);\n  /**\n   * GFM Block Grammar\n   */\n\n  block.gfm = merge({}, block.normal, {\n    table: '^ *([^\\\\n ].*\\\\|.*)\\\\n' // Header\n    + ' {0,3}(?:\\\\| *)?(:?-+:? *(?:\\\\| *:?-+:? *)*)(?:\\\\| *)?' // Align\n    + '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)' // Cells\n\n  });\n  block.gfm.table = edit(block.gfm.table).replace('hr', block.hr).replace('heading', ' {0,3}#{1,6} ').replace('blockquote', ' {0,3}>').replace('code', ' {4}[^\\\\n]').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n  .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)').replace('tag', block._tag) // tables can be interrupted by type (6) html blocks\n  .getRegex();\n  block.gfm.paragraph = edit(block._paragraph).replace('hr', block.hr).replace('heading', ' {0,3}#{1,6} ').replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n  .replace('table', block.gfm.table) // interrupt paragraphs with table\n  .replace('blockquote', ' {0,3}>').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n  .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)').replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n  .getRegex();\n  /**\n   * Pedantic grammar (original John Gruber's loose markdown specification)\n   */\n\n  block.pedantic = merge({}, block.normal, {\n    html: edit('^ *(?:comment *(?:\\\\n|\\\\s*$)' + '|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n    + '|<tag(?:\"[^\"]*\"|\\'[^\\']*\\'|\\\\s[^\\'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))').replace('comment', block._comment).replace(/tag/g, '(?!(?:' + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub' + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)' + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b').getRegex(),\n    def: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n    heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n    fences: noopTest,\n    // fences not supported\n    paragraph: edit(block.normal._paragraph).replace('hr', block.hr).replace('heading', ' *#{1,6} *[^\\n]').replace('lheading', block.lheading).replace('blockquote', ' {0,3}>').replace('|fences', '').replace('|list', '').replace('|html', '').getRegex()\n  });\n  /**\n   * Inline-Level Grammar\n   */\n\n  var inline = {\n    escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n    autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n    url: noopTest,\n    tag: '^comment' + '|^</[a-zA-Z][\\\\w:-]*\\\\s*>' // self-closing tag\n    + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n    + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. <?php ?>\n    + '|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>' // declaration, e.g. <!DOCTYPE html>\n    + '|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>',\n    // CDATA section\n    link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n    reflink: /^!?\\[(label)\\]\\[(ref)\\]/,\n    nolink: /^!?\\[(ref)\\](?:\\[\\])?/,\n    reflinkSearch: 'reflink|nolink(?!\\\\()',\n    emStrong: {\n      lDelim: /^(?:\\*+(?:([punct_])|[^\\s*]))|^_+(?:([punct*])|([^\\s_]))/,\n      //        (1) and (2) can only be a Right Delimiter. (3) and (4) can only be Left.  (5) and (6) can be either Left or Right.\n      //          () Skip orphan inside strong  () Consume to delim (1) #***                (2) a***#, a***                   (3) #***a, ***a                 (4) ***#              (5) #***#                 (6) a***a\n      rDelimAst: /^[^_*]*?\\_\\_[^_*]*?\\*[^_*]*?(?=\\_\\_)|[^*]+(?=[^*])|[punct_](\\*+)(?=[\\s]|$)|[^punct*_\\s](\\*+)(?=[punct_\\s]|$)|[punct_\\s](\\*+)(?=[^punct*_\\s])|[\\s](\\*+)(?=[punct_])|[punct_](\\*+)(?=[punct_])|[^punct*_\\s](\\*+)(?=[^punct*_\\s])/,\n      rDelimUnd: /^[^_*]*?\\*\\*[^_*]*?\\_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|[punct*](\\_+)(?=[\\s]|$)|[^punct*_\\s](\\_+)(?=[punct*\\s]|$)|[punct*\\s](\\_+)(?=[^punct*_\\s])|[\\s](\\_+)(?=[punct*])|[punct*](\\_+)(?=[punct*])/ // ^- Not allowed for _\n\n    },\n    code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n    br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n    del: noopTest,\n    text: /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/,\n    punctuation: /^([\\spunctuation])/\n  }; // list of punctuation marks from CommonMark spec\n  // without * and _ to handle the different emphasis markers * and _\n\n  inline._punctuation = '!\"#$%&\\'()+\\\\-.,/:;<=>?@\\\\[\\\\]`^{|}~';\n  inline.punctuation = edit(inline.punctuation).replace(/punctuation/g, inline._punctuation).getRegex(); // sequences em should skip over [title](link), `code`, <html>\n\n  inline.blockSkip = /\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>/g;\n  inline.escapedEmSt = /\\\\\\*|\\\\_/g;\n  inline._comment = edit(block._comment).replace('(?:-->|$)', '-->').getRegex();\n  inline.emStrong.lDelim = edit(inline.emStrong.lDelim).replace(/punct/g, inline._punctuation).getRegex();\n  inline.emStrong.rDelimAst = edit(inline.emStrong.rDelimAst, 'g').replace(/punct/g, inline._punctuation).getRegex();\n  inline.emStrong.rDelimUnd = edit(inline.emStrong.rDelimUnd, 'g').replace(/punct/g, inline._punctuation).getRegex();\n  inline._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\n  inline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\n  inline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;\n  inline.autolink = edit(inline.autolink).replace('scheme', inline._scheme).replace('email', inline._email).getRegex();\n  inline._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n  inline.tag = edit(inline.tag).replace('comment', inline._comment).replace('attribute', inline._attribute).getRegex();\n  inline._label = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\n  inline._href = /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/;\n  inline._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n  inline.link = edit(inline.link).replace('label', inline._label).replace('href', inline._href).replace('title', inline._title).getRegex();\n  inline.reflink = edit(inline.reflink).replace('label', inline._label).replace('ref', block._label).getRegex();\n  inline.nolink = edit(inline.nolink).replace('ref', block._label).getRegex();\n  inline.reflinkSearch = edit(inline.reflinkSearch, 'g').replace('reflink', inline.reflink).replace('nolink', inline.nolink).getRegex();\n  /**\n   * Normal Inline Grammar\n   */\n\n  inline.normal = merge({}, inline);\n  /**\n   * Pedantic Inline Grammar\n   */\n\n  inline.pedantic = merge({}, inline.normal, {\n    strong: {\n      start: /^__|\\*\\*/,\n      middle: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n      endAst: /\\*\\*(?!\\*)/g,\n      endUnd: /__(?!_)/g\n    },\n    em: {\n      start: /^_|\\*/,\n      middle: /^()\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)|^_(?=\\S)([\\s\\S]*?\\S)_(?!_)/,\n      endAst: /\\*(?!\\*)/g,\n      endUnd: /_(?!_)/g\n    },\n    link: edit(/^!?\\[(label)\\]\\((.*?)\\)/).replace('label', inline._label).getRegex(),\n    reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace('label', inline._label).getRegex()\n  });\n  /**\n   * GFM Inline Grammar\n   */\n\n  inline.gfm = merge({}, inline.normal, {\n    escape: edit(inline.escape).replace('])', '~|])').getRegex(),\n    _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n    url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n    _backpedal: /(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,\n    del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n    text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/\n  });\n  inline.gfm.url = edit(inline.gfm.url, 'i').replace('email', inline.gfm._extended_email).getRegex();\n  /**\n   * GFM + Line Breaks Inline Grammar\n   */\n\n  inline.breaks = merge({}, inline.gfm, {\n    br: edit(inline.br).replace('{2,}', '*').getRegex(),\n    text: edit(inline.gfm.text).replace('\\\\b_', '\\\\b_| {2,}\\\\n').replace(/\\{2,\\}/g, '*').getRegex()\n  });\n\n  /**\n   * smartypants text replacement\n   * @param {string} text\n   */\n\n  function smartypants(text) {\n    return text // em-dashes\n    .replace(/---/g, \"\\u2014\") // en-dashes\n    .replace(/--/g, \"\\u2013\") // opening singles\n    .replace(/(^|[-\\u2014/(\\[{\"\\s])'/g, \"$1\\u2018\") // closing singles & apostrophes\n    .replace(/'/g, \"\\u2019\") // opening doubles\n    .replace(/(^|[-\\u2014/(\\[{\\u2018\\s])\"/g, \"$1\\u201C\") // closing doubles\n    .replace(/\"/g, \"\\u201D\") // ellipses\n    .replace(/\\.{3}/g, \"\\u2026\");\n  }\n  /**\n   * mangle email addresses\n   * @param {string} text\n   */\n\n\n  function mangle(text) {\n    var out = '',\n        i,\n        ch;\n    var l = text.length;\n\n    for (i = 0; i < l; i++) {\n      ch = text.charCodeAt(i);\n\n      if (Math.random() > 0.5) {\n        ch = 'x' + ch.toString(16);\n      }\n\n      out += '&#' + ch + ';';\n    }\n\n    return out;\n  }\n  /**\n   * Block Lexer\n   */\n\n\n  var Lexer = /*#__PURE__*/function () {\n    function Lexer(options) {\n      this.tokens = [];\n      this.tokens.links = Object.create(null);\n      this.options = options || exports.defaults;\n      this.options.tokenizer = this.options.tokenizer || new Tokenizer();\n      this.tokenizer = this.options.tokenizer;\n      this.tokenizer.options = this.options;\n      this.tokenizer.lexer = this;\n      this.inlineQueue = [];\n      this.state = {\n        inLink: false,\n        inRawBlock: false,\n        top: true\n      };\n      var rules = {\n        block: block.normal,\n        inline: inline.normal\n      };\n\n      if (this.options.pedantic) {\n        rules.block = block.pedantic;\n        rules.inline = inline.pedantic;\n      } else if (this.options.gfm) {\n        rules.block = block.gfm;\n\n        if (this.options.breaks) {\n          rules.inline = inline.breaks;\n        } else {\n          rules.inline = inline.gfm;\n        }\n      }\n\n      this.tokenizer.rules = rules;\n    }\n    /**\n     * Expose Rules\n     */\n\n\n    /**\n     * Static Lex Method\n     */\n    Lexer.lex = function lex(src, options) {\n      var lexer = new Lexer(options);\n      return lexer.lex(src);\n    }\n    /**\n     * Static Lex Inline Method\n     */\n    ;\n\n    Lexer.lexInline = function lexInline(src, options) {\n      var lexer = new Lexer(options);\n      return lexer.inlineTokens(src);\n    }\n    /**\n     * Preprocessing\n     */\n    ;\n\n    var _proto = Lexer.prototype;\n\n    _proto.lex = function lex(src) {\n      src = src.replace(/\\r\\n|\\r/g, '\\n');\n      this.blockTokens(src, this.tokens);\n      var next;\n\n      while (next = this.inlineQueue.shift()) {\n        this.inlineTokens(next.src, next.tokens);\n      }\n\n      return this.tokens;\n    }\n    /**\n     * Lexing\n     */\n    ;\n\n    _proto.blockTokens = function blockTokens(src, tokens) {\n      var _this = this;\n\n      if (tokens === void 0) {\n        tokens = [];\n      }\n\n      if (this.options.pedantic) {\n        src = src.replace(/\\t/g, '    ').replace(/^ +$/gm, '');\n      } else {\n        src = src.replace(/^( *)(\\t+)/gm, function (_, leading, tabs) {\n          return leading + '    '.repeat(tabs.length);\n        });\n      }\n\n      var token, lastToken, cutSrc, lastParagraphClipped;\n\n      while (src) {\n        if (this.options.extensions && this.options.extensions.block && this.options.extensions.block.some(function (extTokenizer) {\n          if (token = extTokenizer.call({\n            lexer: _this\n          }, src, tokens)) {\n            src = src.substring(token.raw.length);\n            tokens.push(token);\n            return true;\n          }\n\n          return false;\n        })) {\n          continue;\n        } // newline\n\n\n        if (token = this.tokenizer.space(src)) {\n          src = src.substring(token.raw.length);\n\n          if (token.raw.length === 1 && tokens.length > 0) {\n            // if there's a single \\n as a spacer, it's terminating the last line,\n            // so move it there so that we don't get unecessary paragraph tags\n            tokens[tokens.length - 1].raw += '\\n';\n          } else {\n            tokens.push(token);\n          }\n\n          continue;\n        } // code\n\n\n        if (token = this.tokenizer.code(src)) {\n          src = src.substring(token.raw.length);\n          lastToken = tokens[tokens.length - 1]; // An indented code block cannot interrupt a paragraph.\n\n          if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n            lastToken.raw += '\\n' + token.raw;\n            lastToken.text += '\\n' + token.text;\n            this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n          } else {\n            tokens.push(token);\n          }\n\n          continue;\n        } // fences\n\n\n        if (token = this.tokenizer.fences(src)) {\n          src = src.substring(token.raw.length);\n          tokens.push(token);\n          continue;\n        } // heading\n\n\n        if (token = this.tokenizer.heading(src)) {\n          src = src.substring(token.raw.length);\n          tokens.push(token);\n          continue;\n        } // hr\n\n\n        if (token = this.tokenizer.hr(src)) {\n          src = src.substring(token.raw.length);\n          tokens.push(token);\n          continue;\n        } // blockquote\n\n\n        if (token = this.tokenizer.blockquote(src)) {\n          src = src.substring(token.raw.length);\n          tokens.push(token);\n          continue;\n        } // list\n\n\n        if (token = this.tokenizer.list(src)) {\n          src = src.substring(token.raw.length);\n          tokens.push(token);\n          continue;\n        } // html\n\n\n        if (token = this.tokenizer.html(src)) {\n          src = src.substring(token.raw.length);\n          tokens.push(token);\n          continue;\n        } // def\n\n\n        if (token = this.tokenizer.def(src)) {\n          src = src.substring(token.raw.length);\n          lastToken = tokens[tokens.length - 1];\n\n          if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n            lastToken.raw += '\\n' + token.raw;\n            lastToken.text += '\\n' + token.raw;\n            this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n          } else if (!this.tokens.links[token.tag]) {\n            this.tokens.links[token.tag] = {\n              href: token.href,\n              title: token.title\n            };\n          }\n\n          continue;\n        } // table (gfm)\n\n\n        if (token = this.tokenizer.table(src)) {\n          src = src.substring(token.raw.length);\n          tokens.push(token);\n          continue;\n        } // lheading\n\n\n        if (token = this.tokenizer.lheading(src)) {\n          src = src.substring(token.raw.length);\n          tokens.push(token);\n          continue;\n        } // top-level paragraph\n        // prevent paragraph consuming extensions by clipping 'src' to extension start\n\n\n        cutSrc = src;\n\n        if (this.options.extensions && this.options.extensions.startBlock) {\n          (function () {\n            var startIndex = Infinity;\n            var tempSrc = src.slice(1);\n            var tempStart = void 0;\n\n            _this.options.extensions.startBlock.forEach(function (getStartIndex) {\n              tempStart = getStartIndex.call({\n                lexer: this\n              }, tempSrc);\n\n              if (typeof tempStart === 'number' && tempStart >= 0) {\n                startIndex = Math.min(startIndex, tempStart);\n              }\n            });\n\n            if (startIndex < Infinity && startIndex >= 0) {\n              cutSrc = src.substring(0, startIndex + 1);\n            }\n          })();\n        }\n\n        if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n          lastToken = tokens[tokens.length - 1];\n\n          if (lastParagraphClipped && lastToken.type === 'paragraph') {\n            lastToken.raw += '\\n' + token.raw;\n            lastToken.text += '\\n' + token.text;\n            this.inlineQueue.pop();\n            this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n          } else {\n            tokens.push(token);\n          }\n\n          lastParagraphClipped = cutSrc.length !== src.length;\n          src = src.substring(token.raw.length);\n          continue;\n        } // text\n\n\n        if (token = this.tokenizer.text(src)) {\n          src = src.substring(token.raw.length);\n          lastToken = tokens[tokens.length - 1];\n\n          if (lastToken && lastToken.type === 'text') {\n            lastToken.raw += '\\n' + token.raw;\n            lastToken.text += '\\n' + token.text;\n            this.inlineQueue.pop();\n            this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n          } else {\n            tokens.push(token);\n          }\n\n          continue;\n        }\n\n        if (src) {\n          var errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n\n          if (this.options.silent) {\n            console.error(errMsg);\n            break;\n          } else {\n            throw new Error(errMsg);\n          }\n        }\n      }\n\n      this.state.top = true;\n      return tokens;\n    };\n\n    _proto.inline = function inline(src, tokens) {\n      if (tokens === void 0) {\n        tokens = [];\n      }\n\n      this.inlineQueue.push({\n        src: src,\n        tokens: tokens\n      });\n      return tokens;\n    }\n    /**\n     * Lexing/Compiling\n     */\n    ;\n\n    _proto.inlineTokens = function inlineTokens(src, tokens) {\n      var _this2 = this;\n\n      if (tokens === void 0) {\n        tokens = [];\n      }\n\n      var token, lastToken, cutSrc; // String with links masked to avoid interference with em and strong\n\n      var maskedSrc = src;\n      var match;\n      var keepPrevChar, prevChar; // Mask out reflinks\n\n      if (this.tokens.links) {\n        var links = Object.keys(this.tokens.links);\n\n        if (links.length > 0) {\n          while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n            if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n              maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n            }\n          }\n        }\n      } // Mask out other blocks\n\n\n      while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n        maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n      } // Mask out escaped em & strong delimiters\n\n\n      while ((match = this.tokenizer.rules.inline.escapedEmSt.exec(maskedSrc)) != null) {\n        maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);\n      }\n\n      while (src) {\n        if (!keepPrevChar) {\n          prevChar = '';\n        }\n\n        keepPrevChar = false; // extensions\n\n        if (this.options.extensions && this.options.extensions.inline && this.options.extensions.inline.some(function (extTokenizer) {\n          if (token = extTokenizer.call({\n            lexer: _this2\n          }, src, tokens)) {\n            src = src.substring(token.raw.length);\n            tokens.push(token);\n            return true;\n          }\n\n          return false;\n        })) {\n          continue;\n        } // escape\n\n\n        if (token = this.tokenizer.escape(src)) {\n          src = src.substring(token.raw.length);\n          tokens.push(token);\n          continue;\n        } // tag\n\n\n        if (token = this.tokenizer.tag(src)) {\n          src = src.substring(token.raw.length);\n          lastToken = tokens[tokens.length - 1];\n\n          if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n            lastToken.raw += token.raw;\n            lastToken.text += token.text;\n          } else {\n            tokens.push(token);\n          }\n\n          continue;\n        } // link\n\n\n        if (token = this.tokenizer.link(src)) {\n          src = src.substring(token.raw.length);\n          tokens.push(token);\n          continue;\n        } // reflink, nolink\n\n\n        if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n          src = src.substring(token.raw.length);\n          lastToken = tokens[tokens.length - 1];\n\n          if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n            lastToken.raw += token.raw;\n            lastToken.text += token.text;\n          } else {\n            tokens.push(token);\n          }\n\n          continue;\n        } // em & strong\n\n\n        if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n          src = src.substring(token.raw.length);\n          tokens.push(token);\n          continue;\n        } // code\n\n\n        if (token = this.tokenizer.codespan(src)) {\n          src = src.substring(token.raw.length);\n          tokens.push(token);\n          continue;\n        } // br\n\n\n        if (token = this.tokenizer.br(src)) {\n          src = src.substring(token.raw.length);\n          tokens.push(token);\n          continue;\n        } // del (gfm)\n\n\n        if (token = this.tokenizer.del(src)) {\n          src = src.substring(token.raw.length);\n          tokens.push(token);\n          continue;\n        } // autolink\n\n\n        if (token = this.tokenizer.autolink(src, mangle)) {\n          src = src.substring(token.raw.length);\n          tokens.push(token);\n          continue;\n        } // url (gfm)\n\n\n        if (!this.state.inLink && (token = this.tokenizer.url(src, mangle))) {\n          src = src.substring(token.raw.length);\n          tokens.push(token);\n          continue;\n        } // text\n        // prevent inlineText consuming extensions by clipping 'src' to extension start\n\n\n        cutSrc = src;\n\n        if (this.options.extensions && this.options.extensions.startInline) {\n          (function () {\n            var startIndex = Infinity;\n            var tempSrc = src.slice(1);\n            var tempStart = void 0;\n\n            _this2.options.extensions.startInline.forEach(function (getStartIndex) {\n              tempStart = getStartIndex.call({\n                lexer: this\n              }, tempSrc);\n\n              if (typeof tempStart === 'number' && tempStart >= 0) {\n                startIndex = Math.min(startIndex, tempStart);\n              }\n            });\n\n            if (startIndex < Infinity && startIndex >= 0) {\n              cutSrc = src.substring(0, startIndex + 1);\n            }\n          })();\n        }\n\n        if (token = this.tokenizer.inlineText(cutSrc, smartypants)) {\n          src = src.substring(token.raw.length);\n\n          if (token.raw.slice(-1) !== '_') {\n            // Track prevChar before string of ____ started\n            prevChar = token.raw.slice(-1);\n          }\n\n          keepPrevChar = true;\n          lastToken = tokens[tokens.length - 1];\n\n          if (lastToken && lastToken.type === 'text') {\n            lastToken.raw += token.raw;\n            lastToken.text += token.text;\n          } else {\n            tokens.push(token);\n          }\n\n          continue;\n        }\n\n        if (src) {\n          var errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n\n          if (this.options.silent) {\n            console.error(errMsg);\n            break;\n          } else {\n            throw new Error(errMsg);\n          }\n        }\n      }\n\n      return tokens;\n    };\n\n    _createClass(Lexer, null, [{\n      key: \"rules\",\n      get: function get() {\n        return {\n          block: block,\n          inline: inline\n        };\n      }\n    }]);\n\n    return Lexer;\n  }();\n\n  /**\n   * Renderer\n   */\n\n  var Renderer = /*#__PURE__*/function () {\n    function Renderer(options) {\n      this.options = options || exports.defaults;\n    }\n\n    var _proto = Renderer.prototype;\n\n    _proto.code = function code(_code, infostring, escaped) {\n      var lang = (infostring || '').match(/\\S*/)[0];\n\n      if (this.options.highlight) {\n        var out = this.options.highlight(_code, lang);\n\n        if (out != null && out !== _code) {\n          escaped = true;\n          _code = out;\n        }\n      }\n\n      _code = _code.replace(/\\n$/, '') + '\\n';\n\n      if (!lang) {\n        return '<pre><code>' + (escaped ? _code : escape(_code, true)) + '</code></pre>\\n';\n      }\n\n      return '<pre><code class=\"' + this.options.langPrefix + escape(lang, true) + '\">' + (escaped ? _code : escape(_code, true)) + '</code></pre>\\n';\n    }\n    /**\n     * @param {string} quote\n     */\n    ;\n\n    _proto.blockquote = function blockquote(quote) {\n      return \"<blockquote>\\n\" + quote + \"</blockquote>\\n\";\n    };\n\n    _proto.html = function html(_html) {\n      return _html;\n    }\n    /**\n     * @param {string} text\n     * @param {string} level\n     * @param {string} raw\n     * @param {any} slugger\n     */\n    ;\n\n    _proto.heading = function heading(text, level, raw, slugger) {\n      if (this.options.headerIds) {\n        var id = this.options.headerPrefix + slugger.slug(raw);\n        return \"<h\" + level + \" id=\\\"\" + id + \"\\\">\" + text + \"</h\" + level + \">\\n\";\n      } // ignore IDs\n\n\n      return \"<h\" + level + \">\" + text + \"</h\" + level + \">\\n\";\n    };\n\n    _proto.hr = function hr() {\n      return this.options.xhtml ? '<hr/>\\n' : '<hr>\\n';\n    };\n\n    _proto.list = function list(body, ordered, start) {\n      var type = ordered ? 'ol' : 'ul',\n          startatt = ordered && start !== 1 ? ' start=\"' + start + '\"' : '';\n      return '<' + type + startatt + '>\\n' + body + '</' + type + '>\\n';\n    }\n    /**\n     * @param {string} text\n     */\n    ;\n\n    _proto.listitem = function listitem(text) {\n      return \"<li>\" + text + \"</li>\\n\";\n    };\n\n    _proto.checkbox = function checkbox(checked) {\n      return '<input ' + (checked ? 'checked=\"\" ' : '') + 'disabled=\"\" type=\"checkbox\"' + (this.options.xhtml ? ' /' : '') + '> ';\n    }\n    /**\n     * @param {string} text\n     */\n    ;\n\n    _proto.paragraph = function paragraph(text) {\n      return \"<p>\" + text + \"</p>\\n\";\n    }\n    /**\n     * @param {string} header\n     * @param {string} body\n     */\n    ;\n\n    _proto.table = function table(header, body) {\n      if (body) body = \"<tbody>\" + body + \"</tbody>\";\n      return '<table>\\n' + '<thead>\\n' + header + '</thead>\\n' + body + '</table>\\n';\n    }\n    /**\n     * @param {string} content\n     */\n    ;\n\n    _proto.tablerow = function tablerow(content) {\n      return \"<tr>\\n\" + content + \"</tr>\\n\";\n    };\n\n    _proto.tablecell = function tablecell(content, flags) {\n      var type = flags.header ? 'th' : 'td';\n      var tag = flags.align ? \"<\" + type + \" align=\\\"\" + flags.align + \"\\\">\" : \"<\" + type + \">\";\n      return tag + content + (\"</\" + type + \">\\n\");\n    }\n    /**\n     * span level renderer\n     * @param {string} text\n     */\n    ;\n\n    _proto.strong = function strong(text) {\n      return \"<strong>\" + text + \"</strong>\";\n    }\n    /**\n     * @param {string} text\n     */\n    ;\n\n    _proto.em = function em(text) {\n      return \"<em>\" + text + \"</em>\";\n    }\n    /**\n     * @param {string} text\n     */\n    ;\n\n    _proto.codespan = function codespan(text) {\n      return \"<code>\" + text + \"</code>\";\n    };\n\n    _proto.br = function br() {\n      return this.options.xhtml ? '<br/>' : '<br>';\n    }\n    /**\n     * @param {string} text\n     */\n    ;\n\n    _proto.del = function del(text) {\n      return \"<del>\" + text + \"</del>\";\n    }\n    /**\n     * @param {string} href\n     * @param {string} title\n     * @param {string} text\n     */\n    ;\n\n    _proto.link = function link(href, title, text) {\n      href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n\n      if (href === null) {\n        return text;\n      }\n\n      var out = '<a href=\"' + escape(href) + '\"';\n\n      if (title) {\n        out += ' title=\"' + title + '\"';\n      }\n\n      out += '>' + text + '</a>';\n      return out;\n    }\n    /**\n     * @param {string} href\n     * @param {string} title\n     * @param {string} text\n     */\n    ;\n\n    _proto.image = function image(href, title, text) {\n      href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n\n      if (href === null) {\n        return text;\n      }\n\n      var out = \"<img src=\\\"\" + href + \"\\\" alt=\\\"\" + text + \"\\\"\";\n\n      if (title) {\n        out += \" title=\\\"\" + title + \"\\\"\";\n      }\n\n      out += this.options.xhtml ? '/>' : '>';\n      return out;\n    };\n\n    _proto.text = function text(_text) {\n      return _text;\n    };\n\n    return Renderer;\n  }();\n\n  /**\n   * TextRenderer\n   * returns only the textual part of the token\n   */\n  var TextRenderer = /*#__PURE__*/function () {\n    function TextRenderer() {}\n\n    var _proto = TextRenderer.prototype;\n\n    // no need for block level renderers\n    _proto.strong = function strong(text) {\n      return text;\n    };\n\n    _proto.em = function em(text) {\n      return text;\n    };\n\n    _proto.codespan = function codespan(text) {\n      return text;\n    };\n\n    _proto.del = function del(text) {\n      return text;\n    };\n\n    _proto.html = function html(text) {\n      return text;\n    };\n\n    _proto.text = function text(_text) {\n      return _text;\n    };\n\n    _proto.link = function link(href, title, text) {\n      return '' + text;\n    };\n\n    _proto.image = function image(href, title, text) {\n      return '' + text;\n    };\n\n    _proto.br = function br() {\n      return '';\n    };\n\n    return TextRenderer;\n  }();\n\n  /**\n   * Slugger generates header id\n   */\n  var Slugger = /*#__PURE__*/function () {\n    function Slugger() {\n      this.seen = {};\n    }\n    /**\n     * @param {string} value\n     */\n\n\n    var _proto = Slugger.prototype;\n\n    _proto.serialize = function serialize(value) {\n      return value.toLowerCase().trim() // remove html tags\n      .replace(/<[!\\/a-z].*?>/ig, '') // remove unwanted chars\n      .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, '').replace(/\\s/g, '-');\n    }\n    /**\n     * Finds the next safe (unique) slug to use\n     * @param {string} originalSlug\n     * @param {boolean} isDryRun\n     */\n    ;\n\n    _proto.getNextSafeSlug = function getNextSafeSlug(originalSlug, isDryRun) {\n      var slug = originalSlug;\n      var occurenceAccumulator = 0;\n\n      if (this.seen.hasOwnProperty(slug)) {\n        occurenceAccumulator = this.seen[originalSlug];\n\n        do {\n          occurenceAccumulator++;\n          slug = originalSlug + '-' + occurenceAccumulator;\n        } while (this.seen.hasOwnProperty(slug));\n      }\n\n      if (!isDryRun) {\n        this.seen[originalSlug] = occurenceAccumulator;\n        this.seen[slug] = 0;\n      }\n\n      return slug;\n    }\n    /**\n     * Convert string to unique id\n     * @param {object} [options]\n     * @param {boolean} [options.dryrun] Generates the next unique slug without\n     * updating the internal accumulator.\n     */\n    ;\n\n    _proto.slug = function slug(value, options) {\n      if (options === void 0) {\n        options = {};\n      }\n\n      var slug = this.serialize(value);\n      return this.getNextSafeSlug(slug, options.dryrun);\n    };\n\n    return Slugger;\n  }();\n\n  /**\n   * Parsing & Compiling\n   */\n\n  var Parser = /*#__PURE__*/function () {\n    function Parser(options) {\n      this.options = options || exports.defaults;\n      this.options.renderer = this.options.renderer || new Renderer();\n      this.renderer = this.options.renderer;\n      this.renderer.options = this.options;\n      this.textRenderer = new TextRenderer();\n      this.slugger = new Slugger();\n    }\n    /**\n     * Static Parse Method\n     */\n\n\n    Parser.parse = function parse(tokens, options) {\n      var parser = new Parser(options);\n      return parser.parse(tokens);\n    }\n    /**\n     * Static Parse Inline Method\n     */\n    ;\n\n    Parser.parseInline = function parseInline(tokens, options) {\n      var parser = new Parser(options);\n      return parser.parseInline(tokens);\n    }\n    /**\n     * Parse Loop\n     */\n    ;\n\n    var _proto = Parser.prototype;\n\n    _proto.parse = function parse(tokens, top) {\n      if (top === void 0) {\n        top = true;\n      }\n\n      var out = '',\n          i,\n          j,\n          k,\n          l2,\n          l3,\n          row,\n          cell,\n          header,\n          body,\n          token,\n          ordered,\n          start,\n          loose,\n          itemBody,\n          item,\n          checked,\n          task,\n          checkbox,\n          ret;\n      var l = tokens.length;\n\n      for (i = 0; i < l; i++) {\n        token = tokens[i]; // Run any renderer extensions\n\n        if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n          ret = this.options.extensions.renderers[token.type].call({\n            parser: this\n          }, token);\n\n          if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(token.type)) {\n            out += ret || '';\n            continue;\n          }\n        }\n\n        switch (token.type) {\n          case 'space':\n            {\n              continue;\n            }\n\n          case 'hr':\n            {\n              out += this.renderer.hr();\n              continue;\n            }\n\n          case 'heading':\n            {\n              out += this.renderer.heading(this.parseInline(token.tokens), token.depth, unescape(this.parseInline(token.tokens, this.textRenderer)), this.slugger);\n              continue;\n            }\n\n          case 'code':\n            {\n              out += this.renderer.code(token.text, token.lang, token.escaped);\n              continue;\n            }\n\n          case 'table':\n            {\n              header = ''; // header\n\n              cell = '';\n              l2 = token.header.length;\n\n              for (j = 0; j < l2; j++) {\n                cell += this.renderer.tablecell(this.parseInline(token.header[j].tokens), {\n                  header: true,\n                  align: token.align[j]\n                });\n              }\n\n              header += this.renderer.tablerow(cell);\n              body = '';\n              l2 = token.rows.length;\n\n              for (j = 0; j < l2; j++) {\n                row = token.rows[j];\n                cell = '';\n                l3 = row.length;\n\n                for (k = 0; k < l3; k++) {\n                  cell += this.renderer.tablecell(this.parseInline(row[k].tokens), {\n                    header: false,\n                    align: token.align[k]\n                  });\n                }\n\n                body += this.renderer.tablerow(cell);\n              }\n\n              out += this.renderer.table(header, body);\n              continue;\n            }\n\n          case 'blockquote':\n            {\n              body = this.parse(token.tokens);\n              out += this.renderer.blockquote(body);\n              continue;\n            }\n\n          case 'list':\n            {\n              ordered = token.ordered;\n              start = token.start;\n              loose = token.loose;\n              l2 = token.items.length;\n              body = '';\n\n              for (j = 0; j < l2; j++) {\n                item = token.items[j];\n                checked = item.checked;\n                task = item.task;\n                itemBody = '';\n\n                if (item.task) {\n                  checkbox = this.renderer.checkbox(checked);\n\n                  if (loose) {\n                    if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {\n                      item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n\n                      if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n                        item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n                      }\n                    } else {\n                      item.tokens.unshift({\n                        type: 'text',\n                        text: checkbox\n                      });\n                    }\n                  } else {\n                    itemBody += checkbox;\n                  }\n                }\n\n                itemBody += this.parse(item.tokens, loose);\n                body += this.renderer.listitem(itemBody, task, checked);\n              }\n\n              out += this.renderer.list(body, ordered, start);\n              continue;\n            }\n\n          case 'html':\n            {\n              // TODO parse inline content if parameter markdown=1\n              out += this.renderer.html(token.text);\n              continue;\n            }\n\n          case 'paragraph':\n            {\n              out += this.renderer.paragraph(this.parseInline(token.tokens));\n              continue;\n            }\n\n          case 'text':\n            {\n              body = token.tokens ? this.parseInline(token.tokens) : token.text;\n\n              while (i + 1 < l && tokens[i + 1].type === 'text') {\n                token = tokens[++i];\n                body += '\\n' + (token.tokens ? this.parseInline(token.tokens) : token.text);\n              }\n\n              out += top ? this.renderer.paragraph(body) : body;\n              continue;\n            }\n\n          default:\n            {\n              var errMsg = 'Token with \"' + token.type + '\" type was not found.';\n\n              if (this.options.silent) {\n                console.error(errMsg);\n                return;\n              } else {\n                throw new Error(errMsg);\n              }\n            }\n        }\n      }\n\n      return out;\n    }\n    /**\n     * Parse Inline Tokens\n     */\n    ;\n\n    _proto.parseInline = function parseInline(tokens, renderer) {\n      renderer = renderer || this.renderer;\n      var out = '',\n          i,\n          token,\n          ret;\n      var l = tokens.length;\n\n      for (i = 0; i < l; i++) {\n        token = tokens[i]; // Run any renderer extensions\n\n        if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n          ret = this.options.extensions.renderers[token.type].call({\n            parser: this\n          }, token);\n\n          if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {\n            out += ret || '';\n            continue;\n          }\n        }\n\n        switch (token.type) {\n          case 'escape':\n            {\n              out += renderer.text(token.text);\n              break;\n            }\n\n          case 'html':\n            {\n              out += renderer.html(token.text);\n              break;\n            }\n\n          case 'link':\n            {\n              out += renderer.link(token.href, token.title, this.parseInline(token.tokens, renderer));\n              break;\n            }\n\n          case 'image':\n            {\n              out += renderer.image(token.href, token.title, token.text);\n              break;\n            }\n\n          case 'strong':\n            {\n              out += renderer.strong(this.parseInline(token.tokens, renderer));\n              break;\n            }\n\n          case 'em':\n            {\n              out += renderer.em(this.parseInline(token.tokens, renderer));\n              break;\n            }\n\n          case 'codespan':\n            {\n              out += renderer.codespan(token.text);\n              break;\n            }\n\n          case 'br':\n            {\n              out += renderer.br();\n              break;\n            }\n\n          case 'del':\n            {\n              out += renderer.del(this.parseInline(token.tokens, renderer));\n              break;\n            }\n\n          case 'text':\n            {\n              out += renderer.text(token.text);\n              break;\n            }\n\n          default:\n            {\n              var errMsg = 'Token with \"' + token.type + '\" type was not found.';\n\n              if (this.options.silent) {\n                console.error(errMsg);\n                return;\n              } else {\n                throw new Error(errMsg);\n              }\n            }\n        }\n      }\n\n      return out;\n    };\n\n    return Parser;\n  }();\n\n  /**\n   * Marked\n   */\n\n  function marked(src, opt, callback) {\n    // throw error in case of non string input\n    if (typeof src === 'undefined' || src === null) {\n      throw new Error('marked(): input parameter is undefined or null');\n    }\n\n    if (typeof src !== 'string') {\n      throw new Error('marked(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected');\n    }\n\n    if (typeof opt === 'function') {\n      callback = opt;\n      opt = null;\n    }\n\n    opt = merge({}, marked.defaults, opt || {});\n    checkSanitizeDeprecation(opt);\n\n    if (callback) {\n      var highlight = opt.highlight;\n      var tokens;\n\n      try {\n        tokens = Lexer.lex(src, opt);\n      } catch (e) {\n        return callback(e);\n      }\n\n      var done = function done(err) {\n        var out;\n\n        if (!err) {\n          try {\n            if (opt.walkTokens) {\n              marked.walkTokens(tokens, opt.walkTokens);\n            }\n\n            out = Parser.parse(tokens, opt);\n          } catch (e) {\n            err = e;\n          }\n        }\n\n        opt.highlight = highlight;\n        return err ? callback(err) : callback(null, out);\n      };\n\n      if (!highlight || highlight.length < 3) {\n        return done();\n      }\n\n      delete opt.highlight;\n      if (!tokens.length) return done();\n      var pending = 0;\n      marked.walkTokens(tokens, function (token) {\n        if (token.type === 'code') {\n          pending++;\n          setTimeout(function () {\n            highlight(token.text, token.lang, function (err, code) {\n              if (err) {\n                return done(err);\n              }\n\n              if (code != null && code !== token.text) {\n                token.text = code;\n                token.escaped = true;\n              }\n\n              pending--;\n\n              if (pending === 0) {\n                done();\n              }\n            });\n          }, 0);\n        }\n      });\n\n      if (pending === 0) {\n        done();\n      }\n\n      return;\n    }\n\n    function onError(e) {\n      e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n\n      if (opt.silent) {\n        return '<p>An error occurred:</p><pre>' + escape(e.message + '', true) + '</pre>';\n      }\n\n      throw e;\n    }\n\n    try {\n      var _tokens = Lexer.lex(src, opt);\n\n      if (opt.walkTokens) {\n        if (opt.async) {\n          return Promise.all(marked.walkTokens(_tokens, opt.walkTokens)).then(function () {\n            return Parser.parse(_tokens, opt);\n          })[\"catch\"](onError);\n        }\n\n        marked.walkTokens(_tokens, opt.walkTokens);\n      }\n\n      return Parser.parse(_tokens, opt);\n    } catch (e) {\n      onError(e);\n    }\n  }\n  /**\n   * Options\n   */\n\n  marked.options = marked.setOptions = function (opt) {\n    merge(marked.defaults, opt);\n    changeDefaults(marked.defaults);\n    return marked;\n  };\n\n  marked.getDefaults = getDefaults;\n  marked.defaults = exports.defaults;\n  /**\n   * Use Extension\n   */\n\n  marked.use = function () {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    var opts = merge.apply(void 0, [{}].concat(args));\n    var extensions = marked.defaults.extensions || {\n      renderers: {},\n      childTokens: {}\n    };\n    var hasExtensions;\n    args.forEach(function (pack) {\n      // ==-- Parse \"addon\" extensions --== //\n      if (pack.extensions) {\n        hasExtensions = true;\n        pack.extensions.forEach(function (ext) {\n          if (!ext.name) {\n            throw new Error('extension name required');\n          }\n\n          if (ext.renderer) {\n            // Renderer extensions\n            var prevRenderer = extensions.renderers ? extensions.renderers[ext.name] : null;\n\n            if (prevRenderer) {\n              // Replace extension with func to run new extension but fall back if false\n              extensions.renderers[ext.name] = function () {\n                for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n                  args[_key2] = arguments[_key2];\n                }\n\n                var ret = ext.renderer.apply(this, args);\n\n                if (ret === false) {\n                  ret = prevRenderer.apply(this, args);\n                }\n\n                return ret;\n              };\n            } else {\n              extensions.renderers[ext.name] = ext.renderer;\n            }\n          }\n\n          if (ext.tokenizer) {\n            // Tokenizer Extensions\n            if (!ext.level || ext.level !== 'block' && ext.level !== 'inline') {\n              throw new Error(\"extension level must be 'block' or 'inline'\");\n            }\n\n            if (extensions[ext.level]) {\n              extensions[ext.level].unshift(ext.tokenizer);\n            } else {\n              extensions[ext.level] = [ext.tokenizer];\n            }\n\n            if (ext.start) {\n              // Function to check for start of token\n              if (ext.level === 'block') {\n                if (extensions.startBlock) {\n                  extensions.startBlock.push(ext.start);\n                } else {\n                  extensions.startBlock = [ext.start];\n                }\n              } else if (ext.level === 'inline') {\n                if (extensions.startInline) {\n                  extensions.startInline.push(ext.start);\n                } else {\n                  extensions.startInline = [ext.start];\n                }\n              }\n            }\n          }\n\n          if (ext.childTokens) {\n            // Child tokens to be visited by walkTokens\n            extensions.childTokens[ext.name] = ext.childTokens;\n          }\n        });\n      } // ==-- Parse \"overwrite\" extensions --== //\n\n\n      if (pack.renderer) {\n        (function () {\n          var renderer = marked.defaults.renderer || new Renderer();\n\n          var _loop = function _loop(prop) {\n            var prevRenderer = renderer[prop]; // Replace renderer with func to run extension, but fall back if false\n\n            renderer[prop] = function () {\n              for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n                args[_key3] = arguments[_key3];\n              }\n\n              var ret = pack.renderer[prop].apply(renderer, args);\n\n              if (ret === false) {\n                ret = prevRenderer.apply(renderer, args);\n              }\n\n              return ret;\n            };\n          };\n\n          for (var prop in pack.renderer) {\n            _loop(prop);\n          }\n\n          opts.renderer = renderer;\n        })();\n      }\n\n      if (pack.tokenizer) {\n        (function () {\n          var tokenizer = marked.defaults.tokenizer || new Tokenizer();\n\n          var _loop2 = function _loop2(prop) {\n            var prevTokenizer = tokenizer[prop]; // Replace tokenizer with func to run extension, but fall back if false\n\n            tokenizer[prop] = function () {\n              for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n                args[_key4] = arguments[_key4];\n              }\n\n              var ret = pack.tokenizer[prop].apply(tokenizer, args);\n\n              if (ret === false) {\n                ret = prevTokenizer.apply(tokenizer, args);\n              }\n\n              return ret;\n            };\n          };\n\n          for (var prop in pack.tokenizer) {\n            _loop2(prop);\n          }\n\n          opts.tokenizer = tokenizer;\n        })();\n      } // ==-- Parse WalkTokens extensions --== //\n\n\n      if (pack.walkTokens) {\n        var _walkTokens = marked.defaults.walkTokens;\n\n        opts.walkTokens = function (token) {\n          var values = [];\n          values.push(pack.walkTokens.call(this, token));\n\n          if (_walkTokens) {\n            values = values.concat(_walkTokens.call(this, token));\n          }\n\n          return values;\n        };\n      }\n\n      if (hasExtensions) {\n        opts.extensions = extensions;\n      }\n\n      marked.setOptions(opts);\n    });\n  };\n  /**\n   * Run callback for every token\n   */\n\n\n  marked.walkTokens = function (tokens, callback) {\n    var values = [];\n\n    var _loop3 = function _loop3() {\n      var token = _step.value;\n      values = values.concat(callback.call(marked, token));\n\n      switch (token.type) {\n        case 'table':\n          {\n            for (var _iterator2 = _createForOfIteratorHelperLoose(token.header), _step2; !(_step2 = _iterator2()).done;) {\n              var cell = _step2.value;\n              values = values.concat(marked.walkTokens(cell.tokens, callback));\n            }\n\n            for (var _iterator3 = _createForOfIteratorHelperLoose(token.rows), _step3; !(_step3 = _iterator3()).done;) {\n              var row = _step3.value;\n\n              for (var _iterator4 = _createForOfIteratorHelperLoose(row), _step4; !(_step4 = _iterator4()).done;) {\n                var _cell = _step4.value;\n                values = values.concat(marked.walkTokens(_cell.tokens, callback));\n              }\n            }\n\n            break;\n          }\n\n        case 'list':\n          {\n            values = values.concat(marked.walkTokens(token.items, callback));\n            break;\n          }\n\n        default:\n          {\n            if (marked.defaults.extensions && marked.defaults.extensions.childTokens && marked.defaults.extensions.childTokens[token.type]) {\n              // Walk any extensions\n              marked.defaults.extensions.childTokens[token.type].forEach(function (childTokens) {\n                values = values.concat(marked.walkTokens(token[childTokens], callback));\n              });\n            } else if (token.tokens) {\n              values = values.concat(marked.walkTokens(token.tokens, callback));\n            }\n          }\n      }\n    };\n\n    for (var _iterator = _createForOfIteratorHelperLoose(tokens), _step; !(_step = _iterator()).done;) {\n      _loop3();\n    }\n\n    return values;\n  };\n  /**\n   * Parse Inline\n   * @param {string} src\n   */\n\n\n  marked.parseInline = function (src, opt) {\n    // throw error in case of non string input\n    if (typeof src === 'undefined' || src === null) {\n      throw new Error('marked.parseInline(): input parameter is undefined or null');\n    }\n\n    if (typeof src !== 'string') {\n      throw new Error('marked.parseInline(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected');\n    }\n\n    opt = merge({}, marked.defaults, opt || {});\n    checkSanitizeDeprecation(opt);\n\n    try {\n      var tokens = Lexer.lexInline(src, opt);\n\n      if (opt.walkTokens) {\n        marked.walkTokens(tokens, opt.walkTokens);\n      }\n\n      return Parser.parseInline(tokens, opt);\n    } catch (e) {\n      e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n\n      if (opt.silent) {\n        return '<p>An error occurred:</p><pre>' + escape(e.message + '', true) + '</pre>';\n      }\n\n      throw e;\n    }\n  };\n  /**\n   * Expose\n   */\n\n\n  marked.Parser = Parser;\n  marked.parser = Parser.parse;\n  marked.Renderer = Renderer;\n  marked.TextRenderer = TextRenderer;\n  marked.Lexer = Lexer;\n  marked.lexer = Lexer.lex;\n  marked.Tokenizer = Tokenizer;\n  marked.Slugger = Slugger;\n  marked.parse = marked;\n  var options = marked.options;\n  var setOptions = marked.setOptions;\n  var use = marked.use;\n  var walkTokens = marked.walkTokens;\n  var parseInline = marked.parseInline;\n  var parse = marked;\n  var parser = Parser.parse;\n  var lexer = Lexer.lex;\n\n  exports.Lexer = Lexer;\n  exports.Parser = Parser;\n  exports.Renderer = Renderer;\n  exports.Slugger = Slugger;\n  exports.TextRenderer = TextRenderer;\n  exports.Tokenizer = Tokenizer;\n  exports.getDefaults = getDefaults;\n  exports.lexer = lexer;\n  exports.marked = marked;\n  exports.options = options;\n  exports.parse = parse;\n  exports.parseInline = parseInline;\n  exports.parser = parser;\n  exports.setOptions = setOptions;\n  exports.use = use;\n  exports.walkTokens = walkTokens;\n\n  Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n\n// ESM-uncomment-begin\n})();\nexport var Lexer = (__marked_exports.Lexer || exports.Lexer);\nexport var Parser = (__marked_exports.Parser || exports.Parser);\nexport var Renderer = (__marked_exports.Renderer || exports.Renderer);\nexport var Slugger = (__marked_exports.Slugger || exports.Slugger);\nexport var TextRenderer = (__marked_exports.TextRenderer || exports.TextRenderer);\nexport var Tokenizer = (__marked_exports.Tokenizer || exports.Tokenizer);\nexport var getDefaults = (__marked_exports.getDefaults || exports.getDefaults);\nexport var lexer = (__marked_exports.lexer || exports.lexer);\nexport var marked = (__marked_exports.marked || exports.marked);\nexport var options = (__marked_exports.options || exports.options);\nexport var parse = (__marked_exports.parse || exports.parse);\nexport var parseInline = (__marked_exports.parseInline || exports.parseInline);\nexport var parser = (__marked_exports.parser || exports.parser);\nexport var setOptions = (__marked_exports.setOptions || exports.setOptions);\nexport var use = (__marked_exports.use || exports.use);\nexport var walkTokens = (__marked_exports.walkTokens || exports.walkTokens);\n// ESM-uncomment-end\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/marshalling.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { VSBuffer } from './buffer.js';\nimport { URI } from './uri.js';\nexport function stringify(obj) {\n    return JSON.stringify(obj, replacer);\n}\nexport function parse(text) {\n    let data = JSON.parse(text);\n    data = revive(data);\n    return data;\n}\nfunction replacer(key, value) {\n    // URI is done via toJSON-member\n    if (value instanceof RegExp) {\n        return {\n            $mid: 2 /* MarshalledId.Regexp */,\n            source: value.source,\n            flags: value.flags,\n        };\n    }\n    return value;\n}\nexport function revive(obj, depth = 0) {\n    if (!obj || depth > 200) {\n        return obj;\n    }\n    if (typeof obj === 'object') {\n        switch (obj.$mid) {\n            case 1 /* MarshalledId.Uri */: return URI.revive(obj);\n            case 2 /* MarshalledId.Regexp */: return new RegExp(obj.source, obj.flags);\n            case 17 /* MarshalledId.Date */: return new Date(obj.source);\n        }\n        if (obj instanceof VSBuffer\n            || obj instanceof Uint8Array) {\n            return obj;\n        }\n        if (Array.isArray(obj)) {\n            for (let i = 0; i < obj.length; ++i) {\n                obj[i] = revive(obj[i], depth + 1);\n            }\n        }\n        else {\n            // walk object\n            for (const key in obj) {\n                if (Object.hasOwnProperty.call(obj, key)) {\n                    obj[key] = revive(obj[key], depth + 1);\n                }\n            }\n        }\n    }\n    return obj;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/marshallingIds.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport {};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/mime.js",
    "content": "export const Mimes = Object.freeze({\n    text: 'text/plain',\n    binary: 'application/octet-stream',\n    unknown: 'application/unknown',\n    markdown: 'text/markdown',\n    latex: 'text/latex',\n    uriList: 'text/uri-list',\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/naturalLanguage/korean.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n// allow-any-unicode-comment-file\n/**\n * Gets alternative Korean characters for the character code. This will return the ascii\n * character code(s) that a Hangul character may have been input with using a qwerty layout.\n *\n * This only aims to cover modern (not archaic) Hangul syllables.\n *\n * @param code The character code to get alternate characters for\n */\nexport function getKoreanAltChars(code) {\n    const result = disassembleKorean(code);\n    if (result && result.length > 0) {\n        return new Uint32Array(result);\n    }\n    return undefined;\n}\nlet codeBufferLength = 0;\nconst codeBuffer = new Uint32Array(10);\nfunction disassembleKorean(code) {\n    codeBufferLength = 0;\n    // Initial consonants (초성)\n    getCodesFromArray(code, modernConsonants, 4352 /* HangulRangeStartCode.InitialConsonant */);\n    if (codeBufferLength > 0) {\n        return codeBuffer.subarray(0, codeBufferLength);\n    }\n    // Vowels (중성)\n    getCodesFromArray(code, modernVowels, 4449 /* HangulRangeStartCode.Vowel */);\n    if (codeBufferLength > 0) {\n        return codeBuffer.subarray(0, codeBufferLength);\n    }\n    // Final consonants (종성)\n    getCodesFromArray(code, modernFinalConsonants, 4520 /* HangulRangeStartCode.FinalConsonant */);\n    if (codeBufferLength > 0) {\n        return codeBuffer.subarray(0, codeBufferLength);\n    }\n    // Hangul Compatibility Jamo\n    getCodesFromArray(code, compatibilityJamo, 12593 /* HangulRangeStartCode.CompatibilityJamo */);\n    if (codeBufferLength) {\n        return codeBuffer.subarray(0, codeBufferLength);\n    }\n    // Hangul Syllables\n    if (code >= 0xAC00 && code <= 0xD7A3) {\n        const hangulIndex = code - 0xAC00;\n        const vowelAndFinalConsonantProduct = hangulIndex % 588;\n        // 0-based starting at 0x1100\n        const initialConsonantIndex = Math.floor(hangulIndex / 588);\n        // 0-based starting at 0x1161\n        const vowelIndex = Math.floor(vowelAndFinalConsonantProduct / 28);\n        // 0-based starting at 0x11A8\n        // Subtract 1 as the standard algorithm uses the 0 index to represent no\n        // final consonant\n        const finalConsonantIndex = vowelAndFinalConsonantProduct % 28 - 1;\n        if (initialConsonantIndex < modernConsonants.length) {\n            getCodesFromArray(initialConsonantIndex, modernConsonants, 0);\n        }\n        else if (4352 /* HangulRangeStartCode.InitialConsonant */ + initialConsonantIndex - 12593 /* HangulRangeStartCode.CompatibilityJamo */ < compatibilityJamo.length) {\n            getCodesFromArray(4352 /* HangulRangeStartCode.InitialConsonant */ + initialConsonantIndex, compatibilityJamo, 12593 /* HangulRangeStartCode.CompatibilityJamo */);\n        }\n        if (vowelIndex < modernVowels.length) {\n            getCodesFromArray(vowelIndex, modernVowels, 0);\n        }\n        else if (4449 /* HangulRangeStartCode.Vowel */ + vowelIndex - 12593 /* HangulRangeStartCode.CompatibilityJamo */ < compatibilityJamo.length) {\n            getCodesFromArray(4449 /* HangulRangeStartCode.Vowel */ + vowelIndex - 12593 /* HangulRangeStartCode.CompatibilityJamo */, compatibilityJamo, 12593 /* HangulRangeStartCode.CompatibilityJamo */);\n        }\n        if (finalConsonantIndex >= 0) {\n            if (finalConsonantIndex < modernFinalConsonants.length) {\n                getCodesFromArray(finalConsonantIndex, modernFinalConsonants, 0);\n            }\n            else if (4520 /* HangulRangeStartCode.FinalConsonant */ + finalConsonantIndex - 12593 /* HangulRangeStartCode.CompatibilityJamo */ < compatibilityJamo.length) {\n                getCodesFromArray(4520 /* HangulRangeStartCode.FinalConsonant */ + finalConsonantIndex - 12593 /* HangulRangeStartCode.CompatibilityJamo */, compatibilityJamo, 12593 /* HangulRangeStartCode.CompatibilityJamo */);\n            }\n        }\n        if (codeBufferLength > 0) {\n            return codeBuffer.subarray(0, codeBufferLength);\n        }\n    }\n    return undefined;\n}\nfunction getCodesFromArray(code, array, arrayStartIndex) {\n    // Verify the code is within the array's range\n    if (code >= arrayStartIndex && code < arrayStartIndex + array.length) {\n        addCodesToBuffer(array[code - arrayStartIndex]);\n    }\n}\nfunction addCodesToBuffer(codes) {\n    // NUL is ignored, this is used for archaic characters to avoid using a Map\n    // for the data\n    if (codes === 0 /* AsciiCode.NUL */) {\n        return;\n    }\n    // Number stored in format: OptionalThirdCode << 16 | OptionalSecondCode << 8 | Code\n    codeBuffer[codeBufferLength++] = codes & 0xFF;\n    if (codes >> 8) {\n        codeBuffer[codeBufferLength++] = (codes >> 8) & 0xFF;\n    }\n    if (codes >> 16) {\n        codeBuffer[codeBufferLength++] = (codes >> 16) & 0xFF;\n    }\n}\n/**\n * Hangul Jamo - Modern consonants #1\n *\n * Range U+1100..U+1112\n *\n * |        | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |\n * |--------|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n * | U+110x | ᄀ | ᄁ | ᄂ | ᄃ | ᄄ | ᄅ | ᄆ | ᄇ | ᄈ | ᄉ | ᄊ | ᄋ | ᄌ | ᄍ | ᄎ | ᄏ |\n * | U+111x | ᄐ | ᄑ | ᄒ |\n */\nconst modernConsonants = new Uint8Array([\n    114 /* AsciiCode.r */, // ㄱ\n    82 /* AsciiCode.R */, // ㄲ\n    115 /* AsciiCode.s */, // ㄴ\n    101 /* AsciiCode.e */, // ㄷ\n    69 /* AsciiCode.E */, // ㄸ\n    102 /* AsciiCode.f */, // ㄹ\n    97 /* AsciiCode.a */, // ㅁ\n    113 /* AsciiCode.q */, // ㅂ\n    81 /* AsciiCode.Q */, // ㅃ\n    116 /* AsciiCode.t */, // ㅅ\n    84 /* AsciiCode.T */, // ㅆ\n    100 /* AsciiCode.d */, // ㅇ\n    119 /* AsciiCode.w */, // ㅈ\n    87 /* AsciiCode.W */, // ㅉ\n    99 /* AsciiCode.c */, // ㅊ\n    122 /* AsciiCode.z */, // ㅋ\n    120 /* AsciiCode.x */, // ㅌ\n    118 /* AsciiCode.v */, // ㅍ\n    103 /* AsciiCode.g */, // ㅎ\n]);\n/**\n * Hangul Jamo - Modern Vowels\n *\n * Range U+1161..U+1175\n *\n * |        | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |\n * |--------|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n * | U+116x |   | ᅡ | ᅢ | ᅣ | ᅤ | ᅥ | ᅦ | ᅧ | ᅨ | ᅩ | ᅪ | ᅫ | ᅬ | ᅭ | ᅮ | ᅯ |\n * | U+117x | ᅰ | ᅱ | ᅲ | ᅳ | ᅴ | ᅵ |\n */\nconst modernVowels = new Uint16Array([\n    107 /* AsciiCode.k */, //  -> ㅏ\n    111 /* AsciiCode.o */, //  -> ㅐ\n    105 /* AsciiCode.i */, //  -> ㅑ\n    79 /* AsciiCode.O */, //  -> ㅒ\n    106 /* AsciiCode.j */, //  -> ㅓ\n    112 /* AsciiCode.p */, //  -> ㅔ\n    117 /* AsciiCode.u */, //  -> ㅕ\n    80 /* AsciiCode.P */, //  -> ㅖ\n    104 /* AsciiCode.h */, //  -> ㅗ\n    27496 /* AsciiCodeCombo.hk */, //  -> ㅘ\n    28520 /* AsciiCodeCombo.ho */, //  -> ㅙ\n    27752 /* AsciiCodeCombo.hl */, //  -> ㅚ\n    121 /* AsciiCode.y */, //  -> ㅛ\n    110 /* AsciiCode.n */, //  -> ㅜ\n    27246 /* AsciiCodeCombo.nj */, //  -> ㅝ\n    28782 /* AsciiCodeCombo.np */, //  -> ㅞ\n    27758 /* AsciiCodeCombo.nl */, //  -> ㅟ\n    98 /* AsciiCode.b */, //  -> ㅠ\n    109 /* AsciiCode.m */, //  -> ㅡ\n    27757 /* AsciiCodeCombo.ml */, //  -> ㅢ\n    108 /* AsciiCode.l */, //  -> ㅣ\n]);\n/**\n * Hangul Jamo - Modern Consonants #2\n *\n * Range U+11A8..U+11C2\n *\n * |        | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |\n * |--------|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n * | U+11Ax |   |   |   |   |   |   |   |   | ᆨ | ᆩ | ᆪ | ᆫ | ᆬ | ᆭ | ᆮ | ᆯ |\n * | U+11Bx | ᆰ | ᆱ | ᆲ | ᆳ | ᆴ | ᆵ | ᆶ | ᆷ | ᆸ | ᆹ | ᆺ | ᆻ | ᆼ | ᆽ | ᆾ | ᆿ |\n * | U+11Cx | ᇀ | ᇁ | ᇂ |\n */\nconst modernFinalConsonants = new Uint16Array([\n    114 /* AsciiCode.r */, // ㄱ\n    82 /* AsciiCode.R */, // ㄲ\n    29810 /* AsciiCodeCombo.rt */, // ㄳ\n    115 /* AsciiCode.s */, // ㄴ\n    30579 /* AsciiCodeCombo.sw */, // ㄵ\n    26483 /* AsciiCodeCombo.sg */, // ㄶ\n    101 /* AsciiCode.e */, // ㄷ\n    102 /* AsciiCode.f */, // ㄹ\n    29286 /* AsciiCodeCombo.fr */, // ㄺ\n    24934 /* AsciiCodeCombo.fa */, // ㄻ\n    29030 /* AsciiCodeCombo.fq */, // ㄼ\n    29798 /* AsciiCodeCombo.ft */, // ㄽ\n    30822 /* AsciiCodeCombo.fx */, // ㄾ\n    30310 /* AsciiCodeCombo.fv */, // ㄿ\n    26470 /* AsciiCodeCombo.fg */, // ㅀ\n    97 /* AsciiCode.a */, // ㅁ\n    113 /* AsciiCode.q */, // ㅂ\n    29809 /* AsciiCodeCombo.qt */, // ㅄ\n    116 /* AsciiCode.t */, // ㅅ\n    84 /* AsciiCode.T */, // ㅆ\n    100 /* AsciiCode.d */, // ㅇ\n    119 /* AsciiCode.w */, // ㅈ\n    99 /* AsciiCode.c */, // ㅊ\n    122 /* AsciiCode.z */, // ㅋ\n    120 /* AsciiCode.x */, // ㅌ\n    118 /* AsciiCode.v */, // ㅍ\n    103 /* AsciiCode.g */, // ㅎ\n]);\n/**\n * Hangul Compatibility Jamo\n *\n * Range U+3131..U+318F\n *\n * This includes range includes archaic jamo which we don't consider, these are\n * given the NUL character code in order to be ignored.\n *\n * |        | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |\n * |--------|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n * | U+313x |   | ㄱ | ㄲ | ㄳ | ㄴ | ㄵ | ㄶ | ㄷ | ㄸ | ㄹ | ㄺ | ㄻ | ㄼ | ㄽ | ㄾ | ㄿ |\n * | U+314x | ㅀ | ㅁ | ㅂ | ㅃ | ㅄ | ㅅ | ㅆ | ㅇ | ㅈ | ㅉ | ㅊ | ㅋ | ㅌ | ㅍ | ㅎ | ㅏ |\n * | U+315x | ㅐ | ㅑ | ㅒ | ㅓ | ㅔ | ㅕ | ㅖ | ㅗ | ㅘ | ㅙ | ㅚ | ㅛ | ㅜ | ㅝ | ㅞ | ㅟ |\n * | U+316x | ㅠ | ㅡ | ㅢ | ㅣ | HF | ㅥ | ㅦ | ㅧ | ㅨ | ㅩ | ㅪ | ㅫ | ㅬ | ㅭ | ㅮ | ㅯ |\n * | U+317x | ㅰ | ㅱ | ㅲ | ㅳ | ㅴ | ㅵ | ㅶ | ㅷ | ㅸ | ㅹ | ㅺ | ㅻ | ㅼ | ㅽ | ㅾ | ㅿ |\n * | U+318x | ㆀ | ㆁ | ㆂ | ㆃ | ㆄ | ㆅ | ㆆ | ㆇ | ㆈ | ㆉ | ㆊ | ㆋ | ㆌ | ㆍ | ㆎ |\n */\nconst compatibilityJamo = new Uint16Array([\n    114 /* AsciiCode.r */, // ㄱ\n    82 /* AsciiCode.R */, // ㄲ\n    29810 /* AsciiCodeCombo.rt */, // ㄳ\n    115 /* AsciiCode.s */, // ㄴ\n    30579 /* AsciiCodeCombo.sw */, // ㄵ\n    26483 /* AsciiCodeCombo.sg */, // ㄶ\n    101 /* AsciiCode.e */, // ㄷ\n    69 /* AsciiCode.E */, // ㄸ\n    102 /* AsciiCode.f */, // ㄹ\n    29286 /* AsciiCodeCombo.fr */, // ㄺ\n    24934 /* AsciiCodeCombo.fa */, // ㄻ\n    29030 /* AsciiCodeCombo.fq */, // ㄼ\n    29798 /* AsciiCodeCombo.ft */, // ㄽ\n    30822 /* AsciiCodeCombo.fx */, // ㄾ\n    30310 /* AsciiCodeCombo.fv */, // ㄿ\n    26470 /* AsciiCodeCombo.fg */, // ㅀ\n    97 /* AsciiCode.a */, // ㅁ\n    113 /* AsciiCode.q */, // ㅂ\n    81 /* AsciiCode.Q */, // ㅃ\n    29809 /* AsciiCodeCombo.qt */, // ㅄ\n    116 /* AsciiCode.t */, // ㅅ\n    84 /* AsciiCode.T */, // ㅆ\n    100 /* AsciiCode.d */, // ㅇ\n    119 /* AsciiCode.w */, // ㅈ\n    87 /* AsciiCode.W */, // ㅉ\n    99 /* AsciiCode.c */, // ㅊ\n    122 /* AsciiCode.z */, // ㅋ\n    120 /* AsciiCode.x */, // ㅌ\n    118 /* AsciiCode.v */, // ㅍ\n    103 /* AsciiCode.g */, // ㅎ\n    107 /* AsciiCode.k */, // ㅏ\n    111 /* AsciiCode.o */, // ㅐ\n    105 /* AsciiCode.i */, // ㅑ\n    79 /* AsciiCode.O */, // ㅒ\n    106 /* AsciiCode.j */, // ㅓ\n    112 /* AsciiCode.p */, // ㅔ\n    117 /* AsciiCode.u */, // ㅕ\n    80 /* AsciiCode.P */, // ㅖ\n    104 /* AsciiCode.h */, // ㅗ\n    27496 /* AsciiCodeCombo.hk */, // ㅘ\n    28520 /* AsciiCodeCombo.ho */, // ㅙ\n    27752 /* AsciiCodeCombo.hl */, // ㅚ\n    121 /* AsciiCode.y */, // ㅛ\n    110 /* AsciiCode.n */, // ㅜ\n    27246 /* AsciiCodeCombo.nj */, // ㅝ\n    28782 /* AsciiCodeCombo.np */, // ㅞ\n    27758 /* AsciiCodeCombo.nl */, // ㅟ\n    98 /* AsciiCode.b */, // ㅠ\n    109 /* AsciiCode.m */, // ㅡ\n    27757 /* AsciiCodeCombo.ml */, // ㅢ\n    108 /* AsciiCode.l */, // ㅣ\n    // HF: Hangul Filler (everything after this is archaic)\n    // ㅥ\n    // ㅦ\n    // ㅧ\n    // ㅨ\n    // ㅩ\n    // ㅪ\n    // ㅫ\n    // ㅬ\n    // ㅮ\n    // ㅯ\n    // ㅰ\n    // ㅱ\n    // ㅲ\n    // ㅳ\n    // ㅴ\n    // ㅵ\n    // ㅶ\n    // ㅷ\n    // ㅸ\n    // ㅹ\n    // ㅺ\n    // ㅻ\n    // ㅼ\n    // ㅽ\n    // ㅾ\n    // ㅿ\n    // ㆀ\n    // ㆁ\n    // ㆂ\n    // ㆃ\n    // ㆄ\n    // ㆅ\n    // ㆆ\n    // ㆇ\n    // ㆈ\n    // ㆉ\n    // ㆊ\n    // ㆋ\n    // ㆌ\n    // ㆍ\n    // ㆎ\n]);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/navigator.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class ArrayNavigator {\n    constructor(items, start = 0, end = items.length, index = start - 1) {\n        this.items = items;\n        this.start = start;\n        this.end = end;\n        this.index = index;\n    }\n    current() {\n        if (this.index === this.start - 1 || this.index === this.end) {\n            return null;\n        }\n        return this.items[this.index];\n    }\n    next() {\n        this.index = Math.min(this.index + 1, this.end);\n        return this.current();\n    }\n    previous() {\n        this.index = Math.max(this.index - 1, this.start - 1);\n        return this.current();\n    }\n    first() {\n        this.index = this.start;\n        return this.current();\n    }\n    last() {\n        this.index = this.end - 1;\n        return this.current();\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/network.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as errors from './errors.js';\nimport * as platform from './platform.js';\nimport { equalsIgnoreCase, startsWithIgnoreCase } from './strings.js';\nimport { URI } from './uri.js';\nimport * as paths from './path.js';\nexport var Schemas;\n(function (Schemas) {\n    /**\n     * A schema that is used for models that exist in memory\n     * only and that have no correspondence on a server or such.\n     */\n    Schemas.inMemory = 'inmemory';\n    /**\n     * A schema that is used for setting files\n     */\n    Schemas.vscode = 'vscode';\n    /**\n     * A schema that is used for internal private files\n     */\n    Schemas.internal = 'private';\n    /**\n     * A walk-through document.\n     */\n    Schemas.walkThrough = 'walkThrough';\n    /**\n     * An embedded code snippet.\n     */\n    Schemas.walkThroughSnippet = 'walkThroughSnippet';\n    Schemas.http = 'http';\n    Schemas.https = 'https';\n    Schemas.file = 'file';\n    Schemas.mailto = 'mailto';\n    Schemas.untitled = 'untitled';\n    Schemas.data = 'data';\n    Schemas.command = 'command';\n    Schemas.vscodeRemote = 'vscode-remote';\n    Schemas.vscodeRemoteResource = 'vscode-remote-resource';\n    Schemas.vscodeManagedRemoteResource = 'vscode-managed-remote-resource';\n    Schemas.vscodeUserData = 'vscode-userdata';\n    Schemas.vscodeCustomEditor = 'vscode-custom-editor';\n    Schemas.vscodeNotebookCell = 'vscode-notebook-cell';\n    Schemas.vscodeNotebookCellMetadata = 'vscode-notebook-cell-metadata';\n    Schemas.vscodeNotebookCellOutput = 'vscode-notebook-cell-output';\n    Schemas.vscodeInteractiveInput = 'vscode-interactive-input';\n    Schemas.vscodeSettings = 'vscode-settings';\n    Schemas.vscodeWorkspaceTrust = 'vscode-workspace-trust';\n    Schemas.vscodeTerminal = 'vscode-terminal';\n    /** Scheme used for code blocks in chat. */\n    Schemas.vscodeChatCodeBlock = 'vscode-chat-code-block';\n    /**\n     * Scheme used for backing documents created by copilot for chat.\n     */\n    Schemas.vscodeCopilotBackingChatCodeBlock = 'vscode-copilot-chat-code-block';\n    /** Scheme used for LHS of code compare (aka diff) blocks in chat. */\n    Schemas.vscodeChatCodeCompareBlock = 'vscode-chat-code-compare-block';\n    /** Scheme used for the chat input editor. */\n    Schemas.vscodeChatSesssion = 'vscode-chat-editor';\n    /**\n     * Scheme used internally for webviews that aren't linked to a resource (i.e. not custom editors)\n     */\n    Schemas.webviewPanel = 'webview-panel';\n    /**\n     * Scheme used for loading the wrapper html and script in webviews.\n     */\n    Schemas.vscodeWebview = 'vscode-webview';\n    /**\n     * Scheme used for extension pages\n     */\n    Schemas.extension = 'extension';\n    /**\n     * Scheme used as a replacement of `file` scheme to load\n     * files with our custom protocol handler (desktop only).\n     */\n    Schemas.vscodeFileResource = 'vscode-file';\n    /**\n     * Scheme used for temporary resources\n     */\n    Schemas.tmp = 'tmp';\n    /**\n     * Scheme used vs live share\n     */\n    Schemas.vsls = 'vsls';\n    /**\n     * Scheme used for the Source Control commit input's text document\n     */\n    Schemas.vscodeSourceControl = 'vscode-scm';\n    /**\n     * Scheme used for input box for creating comments.\n     */\n    Schemas.commentsInput = 'comment';\n    /**\n     * Scheme used for special rendering of settings in the release notes\n     */\n    Schemas.codeSetting = 'code-setting';\n})(Schemas || (Schemas = {}));\nexport function matchesScheme(target, scheme) {\n    if (URI.isUri(target)) {\n        return equalsIgnoreCase(target.scheme, scheme);\n    }\n    else {\n        return startsWithIgnoreCase(target, scheme + ':');\n    }\n}\nexport function matchesSomeScheme(target, ...schemes) {\n    return schemes.some(scheme => matchesScheme(target, scheme));\n}\nexport const connectionTokenQueryName = 'tkn';\nclass RemoteAuthoritiesImpl {\n    constructor() {\n        this._hosts = Object.create(null);\n        this._ports = Object.create(null);\n        this._connectionTokens = Object.create(null);\n        this._preferredWebSchema = 'http';\n        this._delegate = null;\n        this._serverRootPath = '/';\n    }\n    setPreferredWebSchema(schema) {\n        this._preferredWebSchema = schema;\n    }\n    get _remoteResourcesPath() {\n        return paths.posix.join(this._serverRootPath, Schemas.vscodeRemoteResource);\n    }\n    rewrite(uri) {\n        if (this._delegate) {\n            try {\n                return this._delegate(uri);\n            }\n            catch (err) {\n                errors.onUnexpectedError(err);\n                return uri;\n            }\n        }\n        const authority = uri.authority;\n        let host = this._hosts[authority];\n        if (host && host.indexOf(':') !== -1 && host.indexOf('[') === -1) {\n            host = `[${host}]`;\n        }\n        const port = this._ports[authority];\n        const connectionToken = this._connectionTokens[authority];\n        let query = `path=${encodeURIComponent(uri.path)}`;\n        if (typeof connectionToken === 'string') {\n            query += `&${connectionTokenQueryName}=${encodeURIComponent(connectionToken)}`;\n        }\n        return URI.from({\n            scheme: platform.isWeb ? this._preferredWebSchema : Schemas.vscodeRemoteResource,\n            authority: `${host}:${port}`,\n            path: this._remoteResourcesPath,\n            query\n        });\n    }\n}\nexport const RemoteAuthorities = new RemoteAuthoritiesImpl();\nexport const VSCODE_AUTHORITY = 'vscode-app';\nclass FileAccessImpl {\n    /**\n     * Returns a URI to use in contexts where the browser is responsible\n     * for loading (e.g. fetch()) or when used within the DOM.\n     *\n     * **Note:** use `dom.ts#asCSSUrl` whenever the URL is to be used in CSS context.\n     */\n    uriToBrowserUri(uri) {\n        // Handle remote URIs via `RemoteAuthorities`\n        if (uri.scheme === Schemas.vscodeRemote) {\n            return RemoteAuthorities.rewrite(uri);\n        }\n        // Convert to `vscode-file` resource..\n        if (\n        // ...only ever for `file` resources\n        uri.scheme === Schemas.file &&\n            (\n            // ...and we run in native environments\n            platform.isNative ||\n                // ...or web worker extensions on desktop\n                (platform.webWorkerOrigin === `${Schemas.vscodeFileResource}://${FileAccessImpl.FALLBACK_AUTHORITY}`))) {\n            return uri.with({\n                scheme: Schemas.vscodeFileResource,\n                // We need to provide an authority here so that it can serve\n                // as origin for network and loading matters in chromium.\n                // If the URI is not coming with an authority already, we\n                // add our own\n                authority: uri.authority || FileAccessImpl.FALLBACK_AUTHORITY,\n                query: null,\n                fragment: null\n            });\n        }\n        return uri;\n    }\n}\nFileAccessImpl.FALLBACK_AUTHORITY = VSCODE_AUTHORITY;\nexport const FileAccess = new FileAccessImpl();\nexport var COI;\n(function (COI) {\n    const coiHeaders = new Map([\n        ['1', { 'Cross-Origin-Opener-Policy': 'same-origin' }],\n        ['2', { 'Cross-Origin-Embedder-Policy': 'require-corp' }],\n        ['3', { 'Cross-Origin-Opener-Policy': 'same-origin', 'Cross-Origin-Embedder-Policy': 'require-corp' }],\n    ]);\n    COI.CoopAndCoep = Object.freeze(coiHeaders.get('3'));\n    const coiSearchParamName = 'vscode-coi';\n    /**\n     * Extract desired headers from `vscode-coi` invocation\n     */\n    function getHeadersFromQuery(url) {\n        let params;\n        if (typeof url === 'string') {\n            params = new URL(url).searchParams;\n        }\n        else if (url instanceof URL) {\n            params = url.searchParams;\n        }\n        else if (URI.isUri(url)) {\n            params = new URL(url.toString(true)).searchParams;\n        }\n        const value = params === null || params === void 0 ? void 0 : params.get(coiSearchParamName);\n        if (!value) {\n            return undefined;\n        }\n        return coiHeaders.get(value);\n    }\n    COI.getHeadersFromQuery = getHeadersFromQuery;\n    /**\n     * Add the `vscode-coi` query attribute based on wanting `COOP` and `COEP`. Will be a noop when `crossOriginIsolated`\n     * isn't enabled the current context\n     */\n    function addSearchParam(urlOrSearch, coop, coep) {\n        if (!globalThis.crossOriginIsolated) {\n            // depends on the current context being COI\n            return;\n        }\n        const value = coop && coep ? '3' : coep ? '2' : '1';\n        if (urlOrSearch instanceof URLSearchParams) {\n            urlOrSearch.set(coiSearchParamName, value);\n        }\n        else {\n            urlOrSearch[coiSearchParamName] = value;\n        }\n    }\n    COI.addSearchParam = addSearchParam;\n})(COI || (COI = {}));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/numbers.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport function clamp(value, min, max) {\n    return Math.min(Math.max(value, min), max);\n}\nexport class MovingAverage {\n    constructor() {\n        this._n = 1;\n        this._val = 0;\n    }\n    update(value) {\n        this._val = this._val + (value - this._val) / this._n;\n        this._n += 1;\n        return this._val;\n    }\n    get value() {\n        return this._val;\n    }\n}\nexport class SlidingWindowAverage {\n    constructor(size) {\n        this._n = 0;\n        this._val = 0;\n        this._values = [];\n        this._index = 0;\n        this._sum = 0;\n        this._values = new Array(size);\n        this._values.fill(0, 0, size);\n    }\n    update(value) {\n        const oldValue = this._values[this._index];\n        this._values[this._index] = value;\n        this._index = (this._index + 1) % this._values.length;\n        this._sum -= oldValue;\n        this._sum += value;\n        if (this._n < this._values.length) {\n            this._n += 1;\n        }\n        this._val = this._sum / this._n;\n        return this._val;\n    }\n    get value() {\n        return this._val;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/objects.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { isTypedArray, isObject, isUndefinedOrNull } from './types.js';\nexport function deepClone(obj) {\n    if (!obj || typeof obj !== 'object') {\n        return obj;\n    }\n    if (obj instanceof RegExp) {\n        return obj;\n    }\n    const result = Array.isArray(obj) ? [] : {};\n    Object.entries(obj).forEach(([key, value]) => {\n        result[key] = value && typeof value === 'object' ? deepClone(value) : value;\n    });\n    return result;\n}\nexport function deepFreeze(obj) {\n    if (!obj || typeof obj !== 'object') {\n        return obj;\n    }\n    const stack = [obj];\n    while (stack.length > 0) {\n        const obj = stack.shift();\n        Object.freeze(obj);\n        for (const key in obj) {\n            if (_hasOwnProperty.call(obj, key)) {\n                const prop = obj[key];\n                if (typeof prop === 'object' && !Object.isFrozen(prop) && !isTypedArray(prop)) {\n                    stack.push(prop);\n                }\n            }\n        }\n    }\n    return obj;\n}\nconst _hasOwnProperty = Object.prototype.hasOwnProperty;\nexport function cloneAndChange(obj, changer) {\n    return _cloneAndChange(obj, changer, new Set());\n}\nfunction _cloneAndChange(obj, changer, seen) {\n    if (isUndefinedOrNull(obj)) {\n        return obj;\n    }\n    const changed = changer(obj);\n    if (typeof changed !== 'undefined') {\n        return changed;\n    }\n    if (Array.isArray(obj)) {\n        const r1 = [];\n        for (const e of obj) {\n            r1.push(_cloneAndChange(e, changer, seen));\n        }\n        return r1;\n    }\n    if (isObject(obj)) {\n        if (seen.has(obj)) {\n            throw new Error('Cannot clone recursive data-structure');\n        }\n        seen.add(obj);\n        const r2 = {};\n        for (const i2 in obj) {\n            if (_hasOwnProperty.call(obj, i2)) {\n                r2[i2] = _cloneAndChange(obj[i2], changer, seen);\n            }\n        }\n        seen.delete(obj);\n        return r2;\n    }\n    return obj;\n}\n/**\n * Copies all properties of source into destination. The optional parameter \"overwrite\" allows to control\n * if existing properties on the destination should be overwritten or not. Defaults to true (overwrite).\n */\nexport function mixin(destination, source, overwrite = true) {\n    if (!isObject(destination)) {\n        return source;\n    }\n    if (isObject(source)) {\n        Object.keys(source).forEach(key => {\n            if (key in destination) {\n                if (overwrite) {\n                    if (isObject(destination[key]) && isObject(source[key])) {\n                        mixin(destination[key], source[key], overwrite);\n                    }\n                    else {\n                        destination[key] = source[key];\n                    }\n                }\n            }\n            else {\n                destination[key] = source[key];\n            }\n        });\n    }\n    return destination;\n}\nexport function equals(one, other) {\n    if (one === other) {\n        return true;\n    }\n    if (one === null || one === undefined || other === null || other === undefined) {\n        return false;\n    }\n    if (typeof one !== typeof other) {\n        return false;\n    }\n    if (typeof one !== 'object') {\n        return false;\n    }\n    if ((Array.isArray(one)) !== (Array.isArray(other))) {\n        return false;\n    }\n    let i;\n    let key;\n    if (Array.isArray(one)) {\n        if (one.length !== other.length) {\n            return false;\n        }\n        for (i = 0; i < one.length; i++) {\n            if (!equals(one[i], other[i])) {\n                return false;\n            }\n        }\n    }\n    else {\n        const oneKeys = [];\n        for (key in one) {\n            oneKeys.push(key);\n        }\n        oneKeys.sort();\n        const otherKeys = [];\n        for (key in other) {\n            otherKeys.push(key);\n        }\n        otherKeys.sort();\n        if (!equals(oneKeys, otherKeys)) {\n            return false;\n        }\n        for (i = 0; i < oneKeys.length; i++) {\n            if (!equals(one[oneKeys[i]], other[oneKeys[i]])) {\n                return false;\n            }\n        }\n    }\n    return true;\n}\nexport function getAllPropertyNames(obj) {\n    let res = [];\n    while (Object.prototype !== obj) {\n        res = res.concat(Object.getOwnPropertyNames(obj));\n        obj = Object.getPrototypeOf(obj);\n    }\n    return res;\n}\nexport function getAllMethodNames(obj) {\n    const methods = [];\n    for (const prop of getAllPropertyNames(obj)) {\n        if (typeof obj[prop] === 'function') {\n            methods.push(prop);\n        }\n    }\n    return methods;\n}\nexport function createProxyObject(methodNames, invoke) {\n    const createProxyMethod = (method) => {\n        return function () {\n            const args = Array.prototype.slice.call(arguments, 0);\n            return invoke(method, args);\n        };\n    };\n    const result = {};\n    for (const methodName of methodNames) {\n        result[methodName] = createProxyMethod(methodName);\n    }\n    return result;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/observable.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport { observableValue, disposableObservableValue, transaction, subtransaction } from './observableInternal/base.js';\nexport { derived, derivedOpts, derivedHandleChanges, derivedWithStore } from './observableInternal/derived.js';\nexport { autorun, autorunHandleChanges, autorunWithStore, autorunOpts } from './observableInternal/autorun.js';\nexport { constObservable, derivedObservableWithCache, derivedObservableWithWritableCache, keepObserved, recomputeInitiallyAndOnChange, observableFromEvent, observableSignal, observableSignalFromEvent } from './observableInternal/utils.js';\nexport { waitForState } from './observableInternal/promise.js';\nimport { ConsoleObservableLogger, setLogger } from './observableInternal/logging.js';\n// Remove \"//\" in the next line to enable logging\nconst enableLogging = false;\nif (enableLogging) {\n    setLogger(new ConsoleObservableLogger());\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/observableInternal/autorun.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { assertFn } from '../assert.js';\nimport { DisposableStore, markAsDisposed, toDisposable, trackDisposable } from '../lifecycle.js';\nimport { DebugNameData } from './debugName.js';\nimport { getLogger } from './logging.js';\n/**\n * Runs immediately and whenever a transaction ends and an observed observable changed.\n * {@link fn} should start with a JS Doc using `@description` to name the autorun.\n */\nexport function autorun(fn) {\n    return new AutorunObserver(new DebugNameData(undefined, undefined, fn), fn, undefined, undefined);\n}\n/**\n * Runs immediately and whenever a transaction ends and an observed observable changed.\n * {@link fn} should start with a JS Doc using `@description` to name the autorun.\n */\nexport function autorunOpts(options, fn) {\n    var _a;\n    return new AutorunObserver(new DebugNameData(options.owner, options.debugName, (_a = options.debugReferenceFn) !== null && _a !== void 0 ? _a : fn), fn, undefined, undefined);\n}\n/**\n * Runs immediately and whenever a transaction ends and an observed observable changed.\n * {@link fn} should start with a JS Doc using `@description` to name the autorun.\n *\n * Use `createEmptyChangeSummary` to create a \"change summary\" that can collect the changes.\n * Use `handleChange` to add a reported change to the change summary.\n * The run function is given the last change summary.\n * The change summary is discarded after the run function was called.\n *\n * @see autorun\n */\nexport function autorunHandleChanges(options, fn) {\n    var _a;\n    return new AutorunObserver(new DebugNameData(options.owner, options.debugName, (_a = options.debugReferenceFn) !== null && _a !== void 0 ? _a : fn), fn, options.createEmptyChangeSummary, options.handleChange);\n}\n/**\n * @see autorun (but with a disposable store that is cleared before the next run or on dispose)\n */\nexport function autorunWithStore(fn) {\n    const store = new DisposableStore();\n    const disposable = autorunOpts({\n        owner: undefined,\n        debugName: undefined,\n        debugReferenceFn: fn,\n    }, reader => {\n        store.clear();\n        fn(reader, store);\n    });\n    return toDisposable(() => {\n        disposable.dispose();\n        store.dispose();\n    });\n}\nexport class AutorunObserver {\n    get debugName() {\n        var _a;\n        return (_a = this._debugNameData.getDebugName(this)) !== null && _a !== void 0 ? _a : '(anonymous)';\n    }\n    constructor(_debugNameData, _runFn, createChangeSummary, _handleChange) {\n        var _a, _b;\n        this._debugNameData = _debugNameData;\n        this._runFn = _runFn;\n        this.createChangeSummary = createChangeSummary;\n        this._handleChange = _handleChange;\n        this.state = 2 /* AutorunState.stale */;\n        this.updateCount = 0;\n        this.disposed = false;\n        this.dependencies = new Set();\n        this.dependenciesToBeRemoved = new Set();\n        this.changeSummary = (_a = this.createChangeSummary) === null || _a === void 0 ? void 0 : _a.call(this);\n        (_b = getLogger()) === null || _b === void 0 ? void 0 : _b.handleAutorunCreated(this);\n        this._runIfNeeded();\n        trackDisposable(this);\n    }\n    dispose() {\n        this.disposed = true;\n        for (const o of this.dependencies) {\n            o.removeObserver(this);\n        }\n        this.dependencies.clear();\n        markAsDisposed(this);\n    }\n    _runIfNeeded() {\n        var _a, _b, _c;\n        if (this.state === 3 /* AutorunState.upToDate */) {\n            return;\n        }\n        const emptySet = this.dependenciesToBeRemoved;\n        this.dependenciesToBeRemoved = this.dependencies;\n        this.dependencies = emptySet;\n        this.state = 3 /* AutorunState.upToDate */;\n        const isDisposed = this.disposed;\n        try {\n            if (!isDisposed) {\n                (_a = getLogger()) === null || _a === void 0 ? void 0 : _a.handleAutorunTriggered(this);\n                const changeSummary = this.changeSummary;\n                this.changeSummary = (_b = this.createChangeSummary) === null || _b === void 0 ? void 0 : _b.call(this);\n                this._runFn(this, changeSummary);\n            }\n        }\n        finally {\n            if (!isDisposed) {\n                (_c = getLogger()) === null || _c === void 0 ? void 0 : _c.handleAutorunFinished(this);\n            }\n            // We don't want our observed observables to think that they are (not even temporarily) not being observed.\n            // Thus, we only unsubscribe from observables that are definitely not read anymore.\n            for (const o of this.dependenciesToBeRemoved) {\n                o.removeObserver(this);\n            }\n            this.dependenciesToBeRemoved.clear();\n        }\n    }\n    toString() {\n        return `Autorun<${this.debugName}>`;\n    }\n    // IObserver implementation\n    beginUpdate() {\n        if (this.state === 3 /* AutorunState.upToDate */) {\n            this.state = 1 /* AutorunState.dependenciesMightHaveChanged */;\n        }\n        this.updateCount++;\n    }\n    endUpdate() {\n        if (this.updateCount === 1) {\n            do {\n                if (this.state === 1 /* AutorunState.dependenciesMightHaveChanged */) {\n                    this.state = 3 /* AutorunState.upToDate */;\n                    for (const d of this.dependencies) {\n                        d.reportChanges();\n                        if (this.state === 2 /* AutorunState.stale */) {\n                            // The other dependencies will refresh on demand\n                            break;\n                        }\n                    }\n                }\n                this._runIfNeeded();\n            } while (this.state !== 3 /* AutorunState.upToDate */);\n        }\n        this.updateCount--;\n        assertFn(() => this.updateCount >= 0);\n    }\n    handlePossibleChange(observable) {\n        if (this.state === 3 /* AutorunState.upToDate */ && this.dependencies.has(observable) && !this.dependenciesToBeRemoved.has(observable)) {\n            this.state = 1 /* AutorunState.dependenciesMightHaveChanged */;\n        }\n    }\n    handleChange(observable, change) {\n        if (this.dependencies.has(observable) && !this.dependenciesToBeRemoved.has(observable)) {\n            const shouldReact = this._handleChange ? this._handleChange({\n                changedObservable: observable,\n                change,\n                didChange: (o) => o === observable,\n            }, this.changeSummary) : true;\n            if (shouldReact) {\n                this.state = 2 /* AutorunState.stale */;\n            }\n        }\n    }\n    // IReader implementation\n    readObservable(observable) {\n        // In case the run action disposes the autorun\n        if (this.disposed) {\n            return observable.get();\n        }\n        observable.addObserver(this);\n        const value = observable.get();\n        this.dependencies.add(observable);\n        this.dependenciesToBeRemoved.delete(observable);\n        return value;\n    }\n}\n(function (autorun) {\n    autorun.Observer = AutorunObserver;\n})(autorun || (autorun = {}));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/observableInternal/base.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { strictEquals } from '../equals.js';\nimport { DebugNameData, getFunctionName } from './debugName.js';\nimport { getLogger } from './logging.js';\nlet _recomputeInitiallyAndOnChange;\nexport function _setRecomputeInitiallyAndOnChange(recomputeInitiallyAndOnChange) {\n    _recomputeInitiallyAndOnChange = recomputeInitiallyAndOnChange;\n}\nlet _keepObserved;\nexport function _setKeepObserved(keepObserved) {\n    _keepObserved = keepObserved;\n}\nlet _derived;\n/**\n * @internal\n * This is to allow splitting files.\n*/\nexport function _setDerivedOpts(derived) {\n    _derived = derived;\n}\nexport class ConvenientObservable {\n    get TChange() { return null; }\n    reportChanges() {\n        this.get();\n    }\n    /** @sealed */\n    read(reader) {\n        if (reader) {\n            return reader.readObservable(this);\n        }\n        else {\n            return this.get();\n        }\n    }\n    map(fnOrOwner, fnOrUndefined) {\n        const owner = fnOrUndefined === undefined ? undefined : fnOrOwner;\n        const fn = fnOrUndefined === undefined ? fnOrOwner : fnOrUndefined;\n        return _derived({\n            owner,\n            debugName: () => {\n                const name = getFunctionName(fn);\n                if (name !== undefined) {\n                    return name;\n                }\n                // regexp to match `x => x.y` or `x => x?.y` where x and y can be arbitrary identifiers (uses backref):\n                const regexp = /^\\s*\\(?\\s*([a-zA-Z_$][a-zA-Z_$0-9]*)\\s*\\)?\\s*=>\\s*\\1(?:\\??)\\.([a-zA-Z_$][a-zA-Z_$0-9]*)\\s*$/;\n                const match = regexp.exec(fn.toString());\n                if (match) {\n                    return `${this.debugName}.${match[2]}`;\n                }\n                if (!owner) {\n                    return `${this.debugName} (mapped)`;\n                }\n                return undefined;\n            },\n            debugReferenceFn: fn,\n        }, (reader) => fn(this.read(reader), reader));\n    }\n    recomputeInitiallyAndOnChange(store, handleValue) {\n        store.add(_recomputeInitiallyAndOnChange(this, handleValue));\n        return this;\n    }\n}\nexport class BaseObservable extends ConvenientObservable {\n    constructor() {\n        super(...arguments);\n        this.observers = new Set();\n    }\n    addObserver(observer) {\n        const len = this.observers.size;\n        this.observers.add(observer);\n        if (len === 0) {\n            this.onFirstObserverAdded();\n        }\n    }\n    removeObserver(observer) {\n        const deleted = this.observers.delete(observer);\n        if (deleted && this.observers.size === 0) {\n            this.onLastObserverRemoved();\n        }\n    }\n    onFirstObserverAdded() { }\n    onLastObserverRemoved() { }\n}\n/**\n * Starts a transaction in which many observables can be changed at once.\n * {@link fn} should start with a JS Doc using `@description` to give the transaction a debug name.\n * Reaction run on demand or when the transaction ends.\n */\nexport function transaction(fn, getDebugName) {\n    const tx = new TransactionImpl(fn, getDebugName);\n    try {\n        fn(tx);\n    }\n    finally {\n        tx.finish();\n    }\n}\nlet _globalTransaction = undefined;\nexport function globalTransaction(fn) {\n    if (_globalTransaction) {\n        fn(_globalTransaction);\n    }\n    else {\n        const tx = new TransactionImpl(fn, undefined);\n        _globalTransaction = tx;\n        try {\n            fn(tx);\n        }\n        finally {\n            tx.finish(); // During finish, more actions might be added to the transaction.\n            // Which is why we only clear the global transaction after finish.\n            _globalTransaction = undefined;\n        }\n    }\n}\nexport async function asyncTransaction(fn, getDebugName) {\n    const tx = new TransactionImpl(fn, getDebugName);\n    try {\n        await fn(tx);\n    }\n    finally {\n        tx.finish();\n    }\n}\n/**\n * Allows to chain transactions.\n */\nexport function subtransaction(tx, fn, getDebugName) {\n    if (!tx) {\n        transaction(fn, getDebugName);\n    }\n    else {\n        fn(tx);\n    }\n}\nexport class TransactionImpl {\n    constructor(_fn, _getDebugName) {\n        var _a;\n        this._fn = _fn;\n        this._getDebugName = _getDebugName;\n        this.updatingObservers = [];\n        (_a = getLogger()) === null || _a === void 0 ? void 0 : _a.handleBeginTransaction(this);\n    }\n    getDebugName() {\n        if (this._getDebugName) {\n            return this._getDebugName();\n        }\n        return getFunctionName(this._fn);\n    }\n    updateObserver(observer, observable) {\n        // When this gets called while finish is active, they will still get considered\n        this.updatingObservers.push({ observer, observable });\n        observer.beginUpdate(observable);\n    }\n    finish() {\n        var _a;\n        const updatingObservers = this.updatingObservers;\n        for (let i = 0; i < updatingObservers.length; i++) {\n            const { observer, observable } = updatingObservers[i];\n            observer.endUpdate(observable);\n        }\n        // Prevent anyone from updating observers from now on.\n        this.updatingObservers = null;\n        (_a = getLogger()) === null || _a === void 0 ? void 0 : _a.handleEndTransaction();\n    }\n}\nexport function observableValue(nameOrOwner, initialValue) {\n    let debugNameData;\n    if (typeof nameOrOwner === 'string') {\n        debugNameData = new DebugNameData(undefined, nameOrOwner, undefined);\n    }\n    else {\n        debugNameData = new DebugNameData(nameOrOwner, undefined, undefined);\n    }\n    return new ObservableValue(debugNameData, initialValue, strictEquals);\n}\nexport function observableValueOpts(options, initialValue) {\n    var _a;\n    return new ObservableValue(new DebugNameData(options.owner, options.debugName, undefined), initialValue, (_a = options.equalsFn) !== null && _a !== void 0 ? _a : strictEquals);\n}\nexport class ObservableValue extends BaseObservable {\n    get debugName() {\n        var _a;\n        return (_a = this._debugNameData.getDebugName(this)) !== null && _a !== void 0 ? _a : 'ObservableValue';\n    }\n    constructor(_debugNameData, initialValue, _equalityComparator) {\n        super();\n        this._debugNameData = _debugNameData;\n        this._equalityComparator = _equalityComparator;\n        this._value = initialValue;\n    }\n    get() {\n        return this._value;\n    }\n    set(value, tx, change) {\n        var _a;\n        if (change === undefined && this._equalityComparator(this._value, value)) {\n            return;\n        }\n        let _tx;\n        if (!tx) {\n            tx = _tx = new TransactionImpl(() => { }, () => `Setting ${this.debugName}`);\n        }\n        try {\n            const oldValue = this._value;\n            this._setValue(value);\n            (_a = getLogger()) === null || _a === void 0 ? void 0 : _a.handleObservableChanged(this, { oldValue, newValue: value, change, didChange: true, hadValue: true });\n            for (const observer of this.observers) {\n                tx.updateObserver(observer, this);\n                observer.handleChange(this, change);\n            }\n        }\n        finally {\n            if (_tx) {\n                _tx.finish();\n            }\n        }\n    }\n    toString() {\n        return `${this.debugName}: ${this._value}`;\n    }\n    _setValue(newValue) {\n        this._value = newValue;\n    }\n}\n/**\n * A disposable observable. When disposed, its value is also disposed.\n * When a new value is set, the previous value is disposed.\n */\nexport function disposableObservableValue(nameOrOwner, initialValue) {\n    let debugNameData;\n    if (typeof nameOrOwner === 'string') {\n        debugNameData = new DebugNameData(undefined, nameOrOwner, undefined);\n    }\n    else {\n        debugNameData = new DebugNameData(nameOrOwner, undefined, undefined);\n    }\n    return new DisposableObservableValue(debugNameData, initialValue, strictEquals);\n}\nexport class DisposableObservableValue extends ObservableValue {\n    _setValue(newValue) {\n        if (this._value === newValue) {\n            return;\n        }\n        if (this._value) {\n            this._value.dispose();\n        }\n        this._value = newValue;\n    }\n    dispose() {\n        var _a;\n        (_a = this._value) === null || _a === void 0 ? void 0 : _a.dispose();\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/observableInternal/debugName.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class DebugNameData {\n    constructor(owner, debugNameSource, referenceFn) {\n        this.owner = owner;\n        this.debugNameSource = debugNameSource;\n        this.referenceFn = referenceFn;\n    }\n    getDebugName(target) {\n        return getDebugName(target, this);\n    }\n}\nconst countPerName = new Map();\nconst cachedDebugName = new WeakMap();\nexport function getDebugName(target, data) {\n    var _a;\n    const cached = cachedDebugName.get(target);\n    if (cached) {\n        return cached;\n    }\n    const dbgName = computeDebugName(target, data);\n    if (dbgName) {\n        let count = (_a = countPerName.get(dbgName)) !== null && _a !== void 0 ? _a : 0;\n        count++;\n        countPerName.set(dbgName, count);\n        const result = count === 1 ? dbgName : `${dbgName}#${count}`;\n        cachedDebugName.set(target, result);\n        return result;\n    }\n    return undefined;\n}\nfunction computeDebugName(self, data) {\n    const cached = cachedDebugName.get(self);\n    if (cached) {\n        return cached;\n    }\n    const ownerStr = data.owner ? formatOwner(data.owner) + `.` : '';\n    let result;\n    const debugNameSource = data.debugNameSource;\n    if (debugNameSource !== undefined) {\n        if (typeof debugNameSource === 'function') {\n            result = debugNameSource();\n            if (result !== undefined) {\n                return ownerStr + result;\n            }\n        }\n        else {\n            return ownerStr + debugNameSource;\n        }\n    }\n    const referenceFn = data.referenceFn;\n    if (referenceFn !== undefined) {\n        result = getFunctionName(referenceFn);\n        if (result !== undefined) {\n            return ownerStr + result;\n        }\n    }\n    if (data.owner !== undefined) {\n        const key = findKey(data.owner, self);\n        if (key !== undefined) {\n            return ownerStr + key;\n        }\n    }\n    return undefined;\n}\nfunction findKey(obj, value) {\n    for (const key in obj) {\n        if (obj[key] === value) {\n            return key;\n        }\n    }\n    return undefined;\n}\nconst countPerClassName = new Map();\nconst ownerId = new WeakMap();\nfunction formatOwner(owner) {\n    var _a;\n    const id = ownerId.get(owner);\n    if (id) {\n        return id;\n    }\n    const className = getClassName(owner);\n    let count = (_a = countPerClassName.get(className)) !== null && _a !== void 0 ? _a : 0;\n    count++;\n    countPerClassName.set(className, count);\n    const result = count === 1 ? className : `${className}#${count}`;\n    ownerId.set(owner, result);\n    return result;\n}\nfunction getClassName(obj) {\n    const ctor = obj.constructor;\n    if (ctor) {\n        return ctor.name;\n    }\n    return 'Object';\n}\nexport function getFunctionName(fn) {\n    const fnSrc = fn.toString();\n    // Pattern: /** @description ... */\n    const regexp = /\\/\\*\\*\\s*@description\\s*([^*]*)\\*\\//;\n    const match = regexp.exec(fnSrc);\n    const result = match ? match[1] : undefined;\n    return result === null || result === void 0 ? void 0 : result.trim();\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/observableInternal/derived.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { assertFn } from '../assert.js';\nimport { strictEquals } from '../equals.js';\nimport { DisposableStore } from '../lifecycle.js';\nimport { BaseObservable, _setDerivedOpts } from './base.js';\nimport { DebugNameData } from './debugName.js';\nimport { getLogger } from './logging.js';\nexport function derived(computeFnOrOwner, computeFn) {\n    if (computeFn !== undefined) {\n        return new Derived(new DebugNameData(computeFnOrOwner, undefined, computeFn), computeFn, undefined, undefined, undefined, strictEquals);\n    }\n    return new Derived(new DebugNameData(undefined, undefined, computeFnOrOwner), computeFnOrOwner, undefined, undefined, undefined, strictEquals);\n}\nexport function derivedWithSetter(owner, computeFn, setter) {\n    return new DerivedWithSetter(new DebugNameData(owner, undefined, computeFn), computeFn, undefined, undefined, undefined, strictEquals, setter);\n}\nexport function derivedOpts(options, computeFn) {\n    var _a;\n    return new Derived(new DebugNameData(options.owner, options.debugName, options.debugReferenceFn), computeFn, undefined, undefined, options.onLastObserverRemoved, (_a = options.equalsFn) !== null && _a !== void 0 ? _a : strictEquals);\n}\n_setDerivedOpts(derivedOpts);\n/**\n * Represents an observable that is derived from other observables.\n * The value is only recomputed when absolutely needed.\n *\n * {@link computeFn} should start with a JS Doc using `@description` to name the derived.\n *\n * Use `createEmptyChangeSummary` to create a \"change summary\" that can collect the changes.\n * Use `handleChange` to add a reported change to the change summary.\n * The compute function is given the last change summary.\n * The change summary is discarded after the compute function was called.\n *\n * @see derived\n */\nexport function derivedHandleChanges(options, computeFn) {\n    var _a;\n    return new Derived(new DebugNameData(options.owner, options.debugName, undefined), computeFn, options.createEmptyChangeSummary, options.handleChange, undefined, (_a = options.equalityComparer) !== null && _a !== void 0 ? _a : strictEquals);\n}\nexport function derivedWithStore(computeFnOrOwner, computeFnOrUndefined) {\n    let computeFn;\n    let owner;\n    if (computeFnOrUndefined === undefined) {\n        computeFn = computeFnOrOwner;\n        owner = undefined;\n    }\n    else {\n        owner = computeFnOrOwner;\n        computeFn = computeFnOrUndefined;\n    }\n    const store = new DisposableStore();\n    return new Derived(new DebugNameData(owner, undefined, computeFn), r => {\n        store.clear();\n        return computeFn(r, store);\n    }, undefined, undefined, () => store.dispose(), strictEquals);\n}\nexport function derivedDisposable(computeFnOrOwner, computeFnOrUndefined) {\n    let computeFn;\n    let owner;\n    if (computeFnOrUndefined === undefined) {\n        computeFn = computeFnOrOwner;\n        owner = undefined;\n    }\n    else {\n        owner = computeFnOrOwner;\n        computeFn = computeFnOrUndefined;\n    }\n    const store = new DisposableStore();\n    return new Derived(new DebugNameData(owner, undefined, computeFn), r => {\n        store.clear();\n        const result = computeFn(r);\n        if (result) {\n            store.add(result);\n        }\n        return result;\n    }, undefined, undefined, () => store.dispose(), strictEquals);\n}\nexport class Derived extends BaseObservable {\n    get debugName() {\n        var _a;\n        return (_a = this._debugNameData.getDebugName(this)) !== null && _a !== void 0 ? _a : '(anonymous)';\n    }\n    constructor(_debugNameData, _computeFn, createChangeSummary, _handleChange, _handleLastObserverRemoved = undefined, _equalityComparator) {\n        var _a, _b;\n        super();\n        this._debugNameData = _debugNameData;\n        this._computeFn = _computeFn;\n        this.createChangeSummary = createChangeSummary;\n        this._handleChange = _handleChange;\n        this._handleLastObserverRemoved = _handleLastObserverRemoved;\n        this._equalityComparator = _equalityComparator;\n        this.state = 0 /* DerivedState.initial */;\n        this.value = undefined;\n        this.updateCount = 0;\n        this.dependencies = new Set();\n        this.dependenciesToBeRemoved = new Set();\n        this.changeSummary = undefined;\n        this.changeSummary = (_a = this.createChangeSummary) === null || _a === void 0 ? void 0 : _a.call(this);\n        (_b = getLogger()) === null || _b === void 0 ? void 0 : _b.handleDerivedCreated(this);\n    }\n    onLastObserverRemoved() {\n        var _a;\n        /**\n         * We are not tracking changes anymore, thus we have to assume\n         * that our cache is invalid.\n         */\n        this.state = 0 /* DerivedState.initial */;\n        this.value = undefined;\n        for (const d of this.dependencies) {\n            d.removeObserver(this);\n        }\n        this.dependencies.clear();\n        (_a = this._handleLastObserverRemoved) === null || _a === void 0 ? void 0 : _a.call(this);\n    }\n    get() {\n        var _a;\n        if (this.observers.size === 0) {\n            // Without observers, we don't know when to clean up stuff.\n            // Thus, we don't cache anything to prevent memory leaks.\n            const result = this._computeFn(this, (_a = this.createChangeSummary) === null || _a === void 0 ? void 0 : _a.call(this));\n            // Clear new dependencies\n            this.onLastObserverRemoved();\n            return result;\n        }\n        else {\n            do {\n                // We might not get a notification for a dependency that changed while it is updating,\n                // thus we also have to ask all our depedencies if they changed in this case.\n                if (this.state === 1 /* DerivedState.dependenciesMightHaveChanged */) {\n                    for (const d of this.dependencies) {\n                        /** might call {@link handleChange} indirectly, which could make us stale */\n                        d.reportChanges();\n                        if (this.state === 2 /* DerivedState.stale */) {\n                            // The other dependencies will refresh on demand, so early break\n                            break;\n                        }\n                    }\n                }\n                // We called report changes of all dependencies.\n                // If we are still not stale, we can assume to be up to date again.\n                if (this.state === 1 /* DerivedState.dependenciesMightHaveChanged */) {\n                    this.state = 3 /* DerivedState.upToDate */;\n                }\n                this._recomputeIfNeeded();\n                // In case recomputation changed one of our dependencies, we need to recompute again.\n            } while (this.state !== 3 /* DerivedState.upToDate */);\n            return this.value;\n        }\n    }\n    _recomputeIfNeeded() {\n        var _a, _b;\n        if (this.state === 3 /* DerivedState.upToDate */) {\n            return;\n        }\n        const emptySet = this.dependenciesToBeRemoved;\n        this.dependenciesToBeRemoved = this.dependencies;\n        this.dependencies = emptySet;\n        const hadValue = this.state !== 0 /* DerivedState.initial */;\n        const oldValue = this.value;\n        this.state = 3 /* DerivedState.upToDate */;\n        const changeSummary = this.changeSummary;\n        this.changeSummary = (_a = this.createChangeSummary) === null || _a === void 0 ? void 0 : _a.call(this);\n        try {\n            /** might call {@link handleChange} indirectly, which could invalidate us */\n            this.value = this._computeFn(this, changeSummary);\n        }\n        finally {\n            // We don't want our observed observables to think that they are (not even temporarily) not being observed.\n            // Thus, we only unsubscribe from observables that are definitely not read anymore.\n            for (const o of this.dependenciesToBeRemoved) {\n                o.removeObserver(this);\n            }\n            this.dependenciesToBeRemoved.clear();\n        }\n        const didChange = hadValue && !(this._equalityComparator(oldValue, this.value));\n        (_b = getLogger()) === null || _b === void 0 ? void 0 : _b.handleDerivedRecomputed(this, {\n            oldValue,\n            newValue: this.value,\n            change: undefined,\n            didChange,\n            hadValue,\n        });\n        if (didChange) {\n            for (const r of this.observers) {\n                r.handleChange(this, undefined);\n            }\n        }\n    }\n    toString() {\n        return `LazyDerived<${this.debugName}>`;\n    }\n    // IObserver Implementation\n    beginUpdate(_observable) {\n        this.updateCount++;\n        const propagateBeginUpdate = this.updateCount === 1;\n        if (this.state === 3 /* DerivedState.upToDate */) {\n            this.state = 1 /* DerivedState.dependenciesMightHaveChanged */;\n            // If we propagate begin update, that will already signal a possible change.\n            if (!propagateBeginUpdate) {\n                for (const r of this.observers) {\n                    r.handlePossibleChange(this);\n                }\n            }\n        }\n        if (propagateBeginUpdate) {\n            for (const r of this.observers) {\n                r.beginUpdate(this); // This signals a possible change\n            }\n        }\n    }\n    endUpdate(_observable) {\n        this.updateCount--;\n        if (this.updateCount === 0) {\n            // End update could change the observer list.\n            const observers = [...this.observers];\n            for (const r of observers) {\n                r.endUpdate(this);\n            }\n        }\n        assertFn(() => this.updateCount >= 0);\n    }\n    handlePossibleChange(observable) {\n        // In all other states, observers already know that we might have changed.\n        if (this.state === 3 /* DerivedState.upToDate */ && this.dependencies.has(observable) && !this.dependenciesToBeRemoved.has(observable)) {\n            this.state = 1 /* DerivedState.dependenciesMightHaveChanged */;\n            for (const r of this.observers) {\n                r.handlePossibleChange(this);\n            }\n        }\n    }\n    handleChange(observable, change) {\n        if (this.dependencies.has(observable) && !this.dependenciesToBeRemoved.has(observable)) {\n            const shouldReact = this._handleChange ? this._handleChange({\n                changedObservable: observable,\n                change,\n                didChange: (o) => o === observable,\n            }, this.changeSummary) : true;\n            const wasUpToDate = this.state === 3 /* DerivedState.upToDate */;\n            if (shouldReact && (this.state === 1 /* DerivedState.dependenciesMightHaveChanged */ || wasUpToDate)) {\n                this.state = 2 /* DerivedState.stale */;\n                if (wasUpToDate) {\n                    for (const r of this.observers) {\n                        r.handlePossibleChange(this);\n                    }\n                }\n            }\n        }\n    }\n    // IReader Implementation\n    readObservable(observable) {\n        // Subscribe before getting the value to enable caching\n        observable.addObserver(this);\n        /** This might call {@link handleChange} indirectly, which could invalidate us */\n        const value = observable.get();\n        // Which is why we only add the observable to the dependencies now.\n        this.dependencies.add(observable);\n        this.dependenciesToBeRemoved.delete(observable);\n        return value;\n    }\n    addObserver(observer) {\n        const shouldCallBeginUpdate = !this.observers.has(observer) && this.updateCount > 0;\n        super.addObserver(observer);\n        if (shouldCallBeginUpdate) {\n            observer.beginUpdate(this);\n        }\n    }\n    removeObserver(observer) {\n        const shouldCallEndUpdate = this.observers.has(observer) && this.updateCount > 0;\n        super.removeObserver(observer);\n        if (shouldCallEndUpdate) {\n            // Calling end update after removing the observer makes sure endUpdate cannot be called twice here.\n            observer.endUpdate(this);\n        }\n    }\n}\nexport class DerivedWithSetter extends Derived {\n    constructor(debugNameData, computeFn, createChangeSummary, handleChange, handleLastObserverRemoved = undefined, equalityComparator, set) {\n        super(debugNameData, computeFn, createChangeSummary, handleChange, handleLastObserverRemoved, equalityComparator);\n        this.set = set;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/observableInternal/logging.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nlet globalObservableLogger;\nexport function setLogger(logger) {\n    globalObservableLogger = logger;\n}\nexport function getLogger() {\n    return globalObservableLogger;\n}\nexport class ConsoleObservableLogger {\n    constructor() {\n        this.indentation = 0;\n        this.changedObservablesSets = new WeakMap();\n    }\n    textToConsoleArgs(text) {\n        return consoleTextToArgs([\n            normalText(repeat('|  ', this.indentation)),\n            text,\n        ]);\n    }\n    formatInfo(info) {\n        if (!info.hadValue) {\n            return [\n                normalText(` `),\n                styled(formatValue(info.newValue, 60), {\n                    color: 'green',\n                }),\n                normalText(` (initial)`),\n            ];\n        }\n        return info.didChange\n            ? [\n                normalText(` `),\n                styled(formatValue(info.oldValue, 70), {\n                    color: 'red',\n                    strikeThrough: true,\n                }),\n                normalText(` `),\n                styled(formatValue(info.newValue, 60), {\n                    color: 'green',\n                }),\n            ]\n            : [normalText(` (unchanged)`)];\n    }\n    handleObservableChanged(observable, info) {\n        console.log(...this.textToConsoleArgs([\n            formatKind('observable value changed'),\n            styled(observable.debugName, { color: 'BlueViolet' }),\n            ...this.formatInfo(info),\n        ]));\n    }\n    formatChanges(changes) {\n        if (changes.size === 0) {\n            return undefined;\n        }\n        return styled(' (changed deps: ' +\n            [...changes].map((o) => o.debugName).join(', ') +\n            ')', { color: 'gray' });\n    }\n    handleDerivedCreated(derived) {\n        const existingHandleChange = derived.handleChange;\n        this.changedObservablesSets.set(derived, new Set());\n        derived.handleChange = (observable, change) => {\n            this.changedObservablesSets.get(derived).add(observable);\n            return existingHandleChange.apply(derived, [observable, change]);\n        };\n    }\n    handleDerivedRecomputed(derived, info) {\n        const changedObservables = this.changedObservablesSets.get(derived);\n        console.log(...this.textToConsoleArgs([\n            formatKind('derived recomputed'),\n            styled(derived.debugName, { color: 'BlueViolet' }),\n            ...this.formatInfo(info),\n            this.formatChanges(changedObservables),\n            { data: [{ fn: derived._computeFn }] }\n        ]));\n        changedObservables.clear();\n    }\n    handleFromEventObservableTriggered(observable, info) {\n        console.log(...this.textToConsoleArgs([\n            formatKind('observable from event triggered'),\n            styled(observable.debugName, { color: 'BlueViolet' }),\n            ...this.formatInfo(info),\n            { data: [{ fn: observable._getValue }] }\n        ]));\n    }\n    handleAutorunCreated(autorun) {\n        const existingHandleChange = autorun.handleChange;\n        this.changedObservablesSets.set(autorun, new Set());\n        autorun.handleChange = (observable, change) => {\n            this.changedObservablesSets.get(autorun).add(observable);\n            return existingHandleChange.apply(autorun, [observable, change]);\n        };\n    }\n    handleAutorunTriggered(autorun) {\n        const changedObservables = this.changedObservablesSets.get(autorun);\n        console.log(...this.textToConsoleArgs([\n            formatKind('autorun'),\n            styled(autorun.debugName, { color: 'BlueViolet' }),\n            this.formatChanges(changedObservables),\n            { data: [{ fn: autorun._runFn }] }\n        ]));\n        changedObservables.clear();\n        this.indentation++;\n    }\n    handleAutorunFinished(autorun) {\n        this.indentation--;\n    }\n    handleBeginTransaction(transaction) {\n        let transactionName = transaction.getDebugName();\n        if (transactionName === undefined) {\n            transactionName = '';\n        }\n        console.log(...this.textToConsoleArgs([\n            formatKind('transaction'),\n            styled(transactionName, { color: 'BlueViolet' }),\n            { data: [{ fn: transaction._fn }] }\n        ]));\n        this.indentation++;\n    }\n    handleEndTransaction() {\n        this.indentation--;\n    }\n}\nfunction consoleTextToArgs(text) {\n    const styles = new Array();\n    const data = [];\n    let firstArg = '';\n    function process(t) {\n        if ('length' in t) {\n            for (const item of t) {\n                if (item) {\n                    process(item);\n                }\n            }\n        }\n        else if ('text' in t) {\n            firstArg += `%c${t.text}`;\n            styles.push(t.style);\n            if (t.data) {\n                data.push(...t.data);\n            }\n        }\n        else if ('data' in t) {\n            data.push(...t.data);\n        }\n    }\n    process(text);\n    const result = [firstArg, ...styles];\n    result.push(...data);\n    return result;\n}\nfunction normalText(text) {\n    return styled(text, { color: 'black' });\n}\nfunction formatKind(kind) {\n    return styled(padStr(`${kind}: `, 10), { color: 'black', bold: true });\n}\nfunction styled(text, options = {\n    color: 'black',\n}) {\n    function objToCss(styleObj) {\n        return Object.entries(styleObj).reduce((styleString, [propName, propValue]) => {\n            return `${styleString}${propName}:${propValue};`;\n        }, '');\n    }\n    const style = {\n        color: options.color,\n    };\n    if (options.strikeThrough) {\n        style['text-decoration'] = 'line-through';\n    }\n    if (options.bold) {\n        style['font-weight'] = 'bold';\n    }\n    return {\n        text,\n        style: objToCss(style),\n    };\n}\nfunction formatValue(value, availableLen) {\n    switch (typeof value) {\n        case 'number':\n            return '' + value;\n        case 'string':\n            if (value.length + 2 <= availableLen) {\n                return `\"${value}\"`;\n            }\n            return `\"${value.substr(0, availableLen - 7)}\"+...`;\n        case 'boolean':\n            return value ? 'true' : 'false';\n        case 'undefined':\n            return 'undefined';\n        case 'object':\n            if (value === null) {\n                return 'null';\n            }\n            if (Array.isArray(value)) {\n                return formatArray(value, availableLen);\n            }\n            return formatObject(value, availableLen);\n        case 'symbol':\n            return value.toString();\n        case 'function':\n            return `[[Function${value.name ? ' ' + value.name : ''}]]`;\n        default:\n            return '' + value;\n    }\n}\nfunction formatArray(value, availableLen) {\n    let result = '[ ';\n    let first = true;\n    for (const val of value) {\n        if (!first) {\n            result += ', ';\n        }\n        if (result.length - 5 > availableLen) {\n            result += '...';\n            break;\n        }\n        first = false;\n        result += `${formatValue(val, availableLen - result.length)}`;\n    }\n    result += ' ]';\n    return result;\n}\nfunction formatObject(value, availableLen) {\n    let result = '{ ';\n    let first = true;\n    for (const [key, val] of Object.entries(value)) {\n        if (!first) {\n            result += ', ';\n        }\n        if (result.length - 5 > availableLen) {\n            result += '...';\n            break;\n        }\n        first = false;\n        result += `${key}: ${formatValue(val, availableLen - result.length)}`;\n    }\n    result += ' }';\n    return result;\n}\nfunction repeat(str, count) {\n    let result = '';\n    for (let i = 1; i <= count; i++) {\n        result += str;\n    }\n    return result;\n}\nfunction padStr(str, length) {\n    while (str.length < length) {\n        str += ' ';\n    }\n    return str;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/observableInternal/promise.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { autorun } from './autorun.js';\nimport { CancellationError } from '../errors.js';\nexport function waitForState(observable, predicate, isError, cancellationToken) {\n    if (!predicate) {\n        predicate = state => state !== null && state !== undefined;\n    }\n    return new Promise((resolve, reject) => {\n        let isImmediateRun = true;\n        let shouldDispose = false;\n        const stateObs = observable.map(state => {\n            /** @description waitForState.state */\n            return {\n                isFinished: predicate(state),\n                error: isError ? isError(state) : false,\n                state\n            };\n        });\n        const d = autorun(reader => {\n            /** @description waitForState */\n            const { isFinished, error, state } = stateObs.read(reader);\n            if (isFinished || error) {\n                if (isImmediateRun) {\n                    // The variable `d` is not initialized yet\n                    shouldDispose = true;\n                }\n                else {\n                    d.dispose();\n                }\n                if (error) {\n                    reject(error === true ? state : error);\n                }\n                else {\n                    resolve(state);\n                }\n            }\n        });\n        if (cancellationToken) {\n            const dc = cancellationToken.onCancellationRequested(() => {\n                d.dispose();\n                dc.dispose();\n                reject(new CancellationError());\n            });\n            if (cancellationToken.isCancellationRequested) {\n                d.dispose();\n                dc.dispose();\n                reject(new CancellationError());\n                return;\n            }\n        }\n        isImmediateRun = false;\n        if (shouldDispose) {\n            d.dispose();\n        }\n    });\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/observableInternal/utils.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Event } from '../event.js';\nimport { DisposableStore, toDisposable } from '../lifecycle.js';\nimport { BaseObservable, ConvenientObservable, _setKeepObserved, _setRecomputeInitiallyAndOnChange, subtransaction, transaction } from './base.js';\nimport { DebugNameData, getFunctionName } from './debugName.js';\nimport { derived, derivedOpts } from './derived.js';\nimport { getLogger } from './logging.js';\n/**\n * Represents an efficient observable whose value never changes.\n */\nexport function constObservable(value) {\n    return new ConstObservable(value);\n}\nclass ConstObservable extends ConvenientObservable {\n    constructor(value) {\n        super();\n        this.value = value;\n    }\n    get debugName() {\n        return this.toString();\n    }\n    get() {\n        return this.value;\n    }\n    addObserver(observer) {\n        // NO OP\n    }\n    removeObserver(observer) {\n        // NO OP\n    }\n    toString() {\n        return `Const: ${this.value}`;\n    }\n}\nexport function observableFromEvent(event, getValue) {\n    return new FromEventObservable(event, getValue);\n}\nexport class FromEventObservable extends BaseObservable {\n    constructor(event, _getValue) {\n        super();\n        this.event = event;\n        this._getValue = _getValue;\n        this.hasValue = false;\n        this.handleEvent = (args) => {\n            var _a;\n            const newValue = this._getValue(args);\n            const oldValue = this.value;\n            const didChange = !this.hasValue || oldValue !== newValue;\n            let didRunTransaction = false;\n            if (didChange) {\n                this.value = newValue;\n                if (this.hasValue) {\n                    didRunTransaction = true;\n                    subtransaction(FromEventObservable.globalTransaction, (tx) => {\n                        var _a;\n                        (_a = getLogger()) === null || _a === void 0 ? void 0 : _a.handleFromEventObservableTriggered(this, { oldValue, newValue, change: undefined, didChange, hadValue: this.hasValue });\n                        for (const o of this.observers) {\n                            tx.updateObserver(o, this);\n                            o.handleChange(this, undefined);\n                        }\n                    }, () => {\n                        const name = this.getDebugName();\n                        return 'Event fired' + (name ? `: ${name}` : '');\n                    });\n                }\n                this.hasValue = true;\n            }\n            if (!didRunTransaction) {\n                (_a = getLogger()) === null || _a === void 0 ? void 0 : _a.handleFromEventObservableTriggered(this, { oldValue, newValue, change: undefined, didChange, hadValue: this.hasValue });\n            }\n        };\n    }\n    getDebugName() {\n        return getFunctionName(this._getValue);\n    }\n    get debugName() {\n        const name = this.getDebugName();\n        return 'From Event' + (name ? `: ${name}` : '');\n    }\n    onFirstObserverAdded() {\n        this.subscription = this.event(this.handleEvent);\n    }\n    onLastObserverRemoved() {\n        this.subscription.dispose();\n        this.subscription = undefined;\n        this.hasValue = false;\n        this.value = undefined;\n    }\n    get() {\n        if (this.subscription) {\n            if (!this.hasValue) {\n                this.handleEvent(undefined);\n            }\n            return this.value;\n        }\n        else {\n            // no cache, as there are no subscribers to keep it updated\n            const value = this._getValue(undefined);\n            return value;\n        }\n    }\n}\n(function (observableFromEvent) {\n    observableFromEvent.Observer = FromEventObservable;\n    function batchEventsGlobally(tx, fn) {\n        let didSet = false;\n        if (FromEventObservable.globalTransaction === undefined) {\n            FromEventObservable.globalTransaction = tx;\n            didSet = true;\n        }\n        try {\n            fn();\n        }\n        finally {\n            if (didSet) {\n                FromEventObservable.globalTransaction = undefined;\n            }\n        }\n    }\n    observableFromEvent.batchEventsGlobally = batchEventsGlobally;\n})(observableFromEvent || (observableFromEvent = {}));\nexport function observableSignalFromEvent(debugName, event) {\n    return new FromEventObservableSignal(debugName, event);\n}\nclass FromEventObservableSignal extends BaseObservable {\n    constructor(debugName, event) {\n        super();\n        this.debugName = debugName;\n        this.event = event;\n        this.handleEvent = () => {\n            transaction((tx) => {\n                for (const o of this.observers) {\n                    tx.updateObserver(o, this);\n                    o.handleChange(this, undefined);\n                }\n            }, () => this.debugName);\n        };\n    }\n    onFirstObserverAdded() {\n        this.subscription = this.event(this.handleEvent);\n    }\n    onLastObserverRemoved() {\n        this.subscription.dispose();\n        this.subscription = undefined;\n    }\n    get() {\n        // NO OP\n    }\n}\nexport function observableSignal(debugNameOrOwner) {\n    if (typeof debugNameOrOwner === 'string') {\n        return new ObservableSignal(debugNameOrOwner);\n    }\n    else {\n        return new ObservableSignal(undefined, debugNameOrOwner);\n    }\n}\nclass ObservableSignal extends BaseObservable {\n    get debugName() {\n        var _a;\n        return (_a = new DebugNameData(this._owner, this._debugName, undefined).getDebugName(this)) !== null && _a !== void 0 ? _a : 'Observable Signal';\n    }\n    constructor(_debugName, _owner) {\n        super();\n        this._debugName = _debugName;\n        this._owner = _owner;\n    }\n    trigger(tx, change) {\n        if (!tx) {\n            transaction(tx => {\n                this.trigger(tx, change);\n            }, () => `Trigger signal ${this.debugName}`);\n            return;\n        }\n        for (const o of this.observers) {\n            tx.updateObserver(o, this);\n            o.handleChange(this, change);\n        }\n    }\n    get() {\n        // NO OP\n    }\n}\n/**\n * This makes sure the observable is being observed and keeps its cache alive.\n */\nexport function keepObserved(observable) {\n    const o = new KeepAliveObserver(false, undefined);\n    observable.addObserver(o);\n    return toDisposable(() => {\n        observable.removeObserver(o);\n    });\n}\n_setKeepObserved(keepObserved);\n/**\n * This converts the given observable into an autorun.\n */\nexport function recomputeInitiallyAndOnChange(observable, handleValue) {\n    const o = new KeepAliveObserver(true, handleValue);\n    observable.addObserver(o);\n    if (handleValue) {\n        handleValue(observable.get());\n    }\n    else {\n        observable.reportChanges();\n    }\n    return toDisposable(() => {\n        observable.removeObserver(o);\n    });\n}\n_setRecomputeInitiallyAndOnChange(recomputeInitiallyAndOnChange);\nexport class KeepAliveObserver {\n    constructor(_forceRecompute, _handleValue) {\n        this._forceRecompute = _forceRecompute;\n        this._handleValue = _handleValue;\n        this._counter = 0;\n    }\n    beginUpdate(observable) {\n        this._counter++;\n    }\n    endUpdate(observable) {\n        this._counter--;\n        if (this._counter === 0 && this._forceRecompute) {\n            if (this._handleValue) {\n                this._handleValue(observable.get());\n            }\n            else {\n                observable.reportChanges();\n            }\n        }\n    }\n    handlePossibleChange(observable) {\n        // NO OP\n    }\n    handleChange(observable, change) {\n        // NO OP\n    }\n}\nexport function derivedObservableWithCache(owner, computeFn) {\n    let lastValue = undefined;\n    const observable = derived(owner, reader => {\n        lastValue = computeFn(reader, lastValue);\n        return lastValue;\n    });\n    return observable;\n}\nexport function derivedObservableWithWritableCache(owner, computeFn) {\n    let lastValue = undefined;\n    const onChange = observableSignal('derivedObservableWithWritableCache');\n    const observable = derived(owner, reader => {\n        onChange.read(reader);\n        lastValue = computeFn(reader, lastValue);\n        return lastValue;\n    });\n    return Object.assign(observable, {\n        clearCache: (tx) => {\n            lastValue = undefined;\n            onChange.trigger(tx);\n        },\n        setCache: (newValue, tx) => {\n            lastValue = newValue;\n            onChange.trigger(tx);\n        }\n    });\n}\n/**\n * When the items array changes, referential equal items are not mapped again.\n */\nexport function mapObservableArrayCached(owner, items, map, keySelector) {\n    let m = new ArrayMap(map, keySelector);\n    const self = derivedOpts({\n        debugReferenceFn: map,\n        owner,\n        onLastObserverRemoved: () => {\n            m.dispose();\n            m = new ArrayMap(map);\n        }\n    }, (reader) => {\n        m.setItems(items.read(reader));\n        return m.getItems();\n    });\n    return self;\n}\nclass ArrayMap {\n    constructor(_map, _keySelector) {\n        this._map = _map;\n        this._keySelector = _keySelector;\n        this._cache = new Map();\n        this._items = [];\n    }\n    dispose() {\n        this._cache.forEach(entry => entry.store.dispose());\n        this._cache.clear();\n    }\n    setItems(items) {\n        const newItems = [];\n        const itemsToRemove = new Set(this._cache.keys());\n        for (const item of items) {\n            const key = this._keySelector ? this._keySelector(item) : item;\n            let entry = this._cache.get(key);\n            if (!entry) {\n                const store = new DisposableStore();\n                const out = this._map(item, store);\n                entry = { out, store };\n                this._cache.set(key, entry);\n            }\n            else {\n                itemsToRemove.delete(key);\n            }\n            newItems.push(entry.out);\n        }\n        for (const item of itemsToRemove) {\n            const entry = this._cache.get(item);\n            entry.store.dispose();\n            this._cache.delete(item);\n        }\n        this._items = newItems;\n    }\n    getItems() {\n        return this._items;\n    }\n}\nexport class ValueWithChangeEventFromObservable {\n    constructor(observable) {\n        this.observable = observable;\n    }\n    get onDidChange() {\n        return Event.fromObservableLight(this.observable);\n    }\n    get value() {\n        return this.observable.get();\n    }\n}\nexport function observableFromValueWithChangeEvent(_owner, value) {\n    if (value instanceof ValueWithChangeEventFromObservable) {\n        return value.observable;\n    }\n    return observableFromEvent(value.onDidChange, () => value.value);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/paging.js",
    "content": "export {};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/path.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n// NOTE: VSCode's copy of nodejs path library to be usable in common (non-node) namespace\n// Copied from: https://github.com/nodejs/node/blob/v16.14.2/lib/path.js\n/**\n * Copyright Joyent, Inc. and other Node contributors.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n * copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to permit\n * persons to whom the Software is furnished to do so, subject to the\n * following conditions:\n *\n * The above copyright notice and this permission notice shall be included\n * in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n * USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\nimport * as process from './process.js';\nconst CHAR_UPPERCASE_A = 65; /* A */\nconst CHAR_LOWERCASE_A = 97; /* a */\nconst CHAR_UPPERCASE_Z = 90; /* Z */\nconst CHAR_LOWERCASE_Z = 122; /* z */\nconst CHAR_DOT = 46; /* . */\nconst CHAR_FORWARD_SLASH = 47; /* / */\nconst CHAR_BACKWARD_SLASH = 92; /* \\ */\nconst CHAR_COLON = 58; /* : */\nconst CHAR_QUESTION_MARK = 63; /* ? */\nclass ErrorInvalidArgType extends Error {\n    constructor(name, expected, actual) {\n        // determiner: 'must be' or 'must not be'\n        let determiner;\n        if (typeof expected === 'string' && expected.indexOf('not ') === 0) {\n            determiner = 'must not be';\n            expected = expected.replace(/^not /, '');\n        }\n        else {\n            determiner = 'must be';\n        }\n        const type = name.indexOf('.') !== -1 ? 'property' : 'argument';\n        let msg = `The \"${name}\" ${type} ${determiner} of type ${expected}`;\n        msg += `. Received type ${typeof actual}`;\n        super(msg);\n        this.code = 'ERR_INVALID_ARG_TYPE';\n    }\n}\nfunction validateObject(pathObject, name) {\n    if (pathObject === null || typeof pathObject !== 'object') {\n        throw new ErrorInvalidArgType(name, 'Object', pathObject);\n    }\n}\nfunction validateString(value, name) {\n    if (typeof value !== 'string') {\n        throw new ErrorInvalidArgType(name, 'string', value);\n    }\n}\nconst platformIsWin32 = (process.platform === 'win32');\nfunction isPathSeparator(code) {\n    return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;\n}\nfunction isPosixPathSeparator(code) {\n    return code === CHAR_FORWARD_SLASH;\n}\nfunction isWindowsDeviceRoot(code) {\n    return (code >= CHAR_UPPERCASE_A && code <= CHAR_UPPERCASE_Z) ||\n        (code >= CHAR_LOWERCASE_A && code <= CHAR_LOWERCASE_Z);\n}\n// Resolves . and .. elements in a path with directory names\nfunction normalizeString(path, allowAboveRoot, separator, isPathSeparator) {\n    let res = '';\n    let lastSegmentLength = 0;\n    let lastSlash = -1;\n    let dots = 0;\n    let code = 0;\n    for (let i = 0; i <= path.length; ++i) {\n        if (i < path.length) {\n            code = path.charCodeAt(i);\n        }\n        else if (isPathSeparator(code)) {\n            break;\n        }\n        else {\n            code = CHAR_FORWARD_SLASH;\n        }\n        if (isPathSeparator(code)) {\n            if (lastSlash === i - 1 || dots === 1) {\n                // NOOP\n            }\n            else if (dots === 2) {\n                if (res.length < 2 || lastSegmentLength !== 2 ||\n                    res.charCodeAt(res.length - 1) !== CHAR_DOT ||\n                    res.charCodeAt(res.length - 2) !== CHAR_DOT) {\n                    if (res.length > 2) {\n                        const lastSlashIndex = res.lastIndexOf(separator);\n                        if (lastSlashIndex === -1) {\n                            res = '';\n                            lastSegmentLength = 0;\n                        }\n                        else {\n                            res = res.slice(0, lastSlashIndex);\n                            lastSegmentLength = res.length - 1 - res.lastIndexOf(separator);\n                        }\n                        lastSlash = i;\n                        dots = 0;\n                        continue;\n                    }\n                    else if (res.length !== 0) {\n                        res = '';\n                        lastSegmentLength = 0;\n                        lastSlash = i;\n                        dots = 0;\n                        continue;\n                    }\n                }\n                if (allowAboveRoot) {\n                    res += res.length > 0 ? `${separator}..` : '..';\n                    lastSegmentLength = 2;\n                }\n            }\n            else {\n                if (res.length > 0) {\n                    res += `${separator}${path.slice(lastSlash + 1, i)}`;\n                }\n                else {\n                    res = path.slice(lastSlash + 1, i);\n                }\n                lastSegmentLength = i - lastSlash - 1;\n            }\n            lastSlash = i;\n            dots = 0;\n        }\n        else if (code === CHAR_DOT && dots !== -1) {\n            ++dots;\n        }\n        else {\n            dots = -1;\n        }\n    }\n    return res;\n}\nfunction _format(sep, pathObject) {\n    validateObject(pathObject, 'pathObject');\n    const dir = pathObject.dir || pathObject.root;\n    const base = pathObject.base ||\n        `${pathObject.name || ''}${pathObject.ext || ''}`;\n    if (!dir) {\n        return base;\n    }\n    return dir === pathObject.root ? `${dir}${base}` : `${dir}${sep}${base}`;\n}\nexport const win32 = {\n    // path.resolve([from ...], to)\n    resolve(...pathSegments) {\n        let resolvedDevice = '';\n        let resolvedTail = '';\n        let resolvedAbsolute = false;\n        for (let i = pathSegments.length - 1; i >= -1; i--) {\n            let path;\n            if (i >= 0) {\n                path = pathSegments[i];\n                validateString(path, 'path');\n                // Skip empty entries\n                if (path.length === 0) {\n                    continue;\n                }\n            }\n            else if (resolvedDevice.length === 0) {\n                path = process.cwd();\n            }\n            else {\n                // Windows has the concept of drive-specific current working\n                // directories. If we've resolved a drive letter but not yet an\n                // absolute path, get cwd for that drive, or the process cwd if\n                // the drive cwd is not available. We're sure the device is not\n                // a UNC path at this points, because UNC paths are always absolute.\n                path = process.env[`=${resolvedDevice}`] || process.cwd();\n                // Verify that a cwd was found and that it actually points\n                // to our drive. If not, default to the drive's root.\n                if (path === undefined ||\n                    (path.slice(0, 2).toLowerCase() !== resolvedDevice.toLowerCase() &&\n                        path.charCodeAt(2) === CHAR_BACKWARD_SLASH)) {\n                    path = `${resolvedDevice}\\\\`;\n                }\n            }\n            const len = path.length;\n            let rootEnd = 0;\n            let device = '';\n            let isAbsolute = false;\n            const code = path.charCodeAt(0);\n            // Try to match a root\n            if (len === 1) {\n                if (isPathSeparator(code)) {\n                    // `path` contains just a path separator\n                    rootEnd = 1;\n                    isAbsolute = true;\n                }\n            }\n            else if (isPathSeparator(code)) {\n                // Possible UNC root\n                // If we started with a separator, we know we at least have an\n                // absolute path of some kind (UNC or otherwise)\n                isAbsolute = true;\n                if (isPathSeparator(path.charCodeAt(1))) {\n                    // Matched double path separator at beginning\n                    let j = 2;\n                    let last = j;\n                    // Match 1 or more non-path separators\n                    while (j < len && !isPathSeparator(path.charCodeAt(j))) {\n                        j++;\n                    }\n                    if (j < len && j !== last) {\n                        const firstPart = path.slice(last, j);\n                        // Matched!\n                        last = j;\n                        // Match 1 or more path separators\n                        while (j < len && isPathSeparator(path.charCodeAt(j))) {\n                            j++;\n                        }\n                        if (j < len && j !== last) {\n                            // Matched!\n                            last = j;\n                            // Match 1 or more non-path separators\n                            while (j < len && !isPathSeparator(path.charCodeAt(j))) {\n                                j++;\n                            }\n                            if (j === len || j !== last) {\n                                // We matched a UNC root\n                                device = `\\\\\\\\${firstPart}\\\\${path.slice(last, j)}`;\n                                rootEnd = j;\n                            }\n                        }\n                    }\n                }\n                else {\n                    rootEnd = 1;\n                }\n            }\n            else if (isWindowsDeviceRoot(code) &&\n                path.charCodeAt(1) === CHAR_COLON) {\n                // Possible device root\n                device = path.slice(0, 2);\n                rootEnd = 2;\n                if (len > 2 && isPathSeparator(path.charCodeAt(2))) {\n                    // Treat separator following drive name as an absolute path\n                    // indicator\n                    isAbsolute = true;\n                    rootEnd = 3;\n                }\n            }\n            if (device.length > 0) {\n                if (resolvedDevice.length > 0) {\n                    if (device.toLowerCase() !== resolvedDevice.toLowerCase()) {\n                        // This path points to another device so it is not applicable\n                        continue;\n                    }\n                }\n                else {\n                    resolvedDevice = device;\n                }\n            }\n            if (resolvedAbsolute) {\n                if (resolvedDevice.length > 0) {\n                    break;\n                }\n            }\n            else {\n                resolvedTail = `${path.slice(rootEnd)}\\\\${resolvedTail}`;\n                resolvedAbsolute = isAbsolute;\n                if (isAbsolute && resolvedDevice.length > 0) {\n                    break;\n                }\n            }\n        }\n        // At this point the path should be resolved to a full absolute path,\n        // but handle relative paths to be safe (might happen when process.cwd()\n        // fails)\n        // Normalize the tail path\n        resolvedTail = normalizeString(resolvedTail, !resolvedAbsolute, '\\\\', isPathSeparator);\n        return resolvedAbsolute ?\n            `${resolvedDevice}\\\\${resolvedTail}` :\n            `${resolvedDevice}${resolvedTail}` || '.';\n    },\n    normalize(path) {\n        validateString(path, 'path');\n        const len = path.length;\n        if (len === 0) {\n            return '.';\n        }\n        let rootEnd = 0;\n        let device;\n        let isAbsolute = false;\n        const code = path.charCodeAt(0);\n        // Try to match a root\n        if (len === 1) {\n            // `path` contains just a single char, exit early to avoid\n            // unnecessary work\n            return isPosixPathSeparator(code) ? '\\\\' : path;\n        }\n        if (isPathSeparator(code)) {\n            // Possible UNC root\n            // If we started with a separator, we know we at least have an absolute\n            // path of some kind (UNC or otherwise)\n            isAbsolute = true;\n            if (isPathSeparator(path.charCodeAt(1))) {\n                // Matched double path separator at beginning\n                let j = 2;\n                let last = j;\n                // Match 1 or more non-path separators\n                while (j < len && !isPathSeparator(path.charCodeAt(j))) {\n                    j++;\n                }\n                if (j < len && j !== last) {\n                    const firstPart = path.slice(last, j);\n                    // Matched!\n                    last = j;\n                    // Match 1 or more path separators\n                    while (j < len && isPathSeparator(path.charCodeAt(j))) {\n                        j++;\n                    }\n                    if (j < len && j !== last) {\n                        // Matched!\n                        last = j;\n                        // Match 1 or more non-path separators\n                        while (j < len && !isPathSeparator(path.charCodeAt(j))) {\n                            j++;\n                        }\n                        if (j === len) {\n                            // We matched a UNC root only\n                            // Return the normalized version of the UNC root since there\n                            // is nothing left to process\n                            return `\\\\\\\\${firstPart}\\\\${path.slice(last)}\\\\`;\n                        }\n                        if (j !== last) {\n                            // We matched a UNC root with leftovers\n                            device = `\\\\\\\\${firstPart}\\\\${path.slice(last, j)}`;\n                            rootEnd = j;\n                        }\n                    }\n                }\n            }\n            else {\n                rootEnd = 1;\n            }\n        }\n        else if (isWindowsDeviceRoot(code) && path.charCodeAt(1) === CHAR_COLON) {\n            // Possible device root\n            device = path.slice(0, 2);\n            rootEnd = 2;\n            if (len > 2 && isPathSeparator(path.charCodeAt(2))) {\n                // Treat separator following drive name as an absolute path\n                // indicator\n                isAbsolute = true;\n                rootEnd = 3;\n            }\n        }\n        let tail = rootEnd < len ?\n            normalizeString(path.slice(rootEnd), !isAbsolute, '\\\\', isPathSeparator) :\n            '';\n        if (tail.length === 0 && !isAbsolute) {\n            tail = '.';\n        }\n        if (tail.length > 0 && isPathSeparator(path.charCodeAt(len - 1))) {\n            tail += '\\\\';\n        }\n        if (device === undefined) {\n            return isAbsolute ? `\\\\${tail}` : tail;\n        }\n        return isAbsolute ? `${device}\\\\${tail}` : `${device}${tail}`;\n    },\n    isAbsolute(path) {\n        validateString(path, 'path');\n        const len = path.length;\n        if (len === 0) {\n            return false;\n        }\n        const code = path.charCodeAt(0);\n        return isPathSeparator(code) ||\n            // Possible device root\n            (len > 2 &&\n                isWindowsDeviceRoot(code) &&\n                path.charCodeAt(1) === CHAR_COLON &&\n                isPathSeparator(path.charCodeAt(2)));\n    },\n    join(...paths) {\n        if (paths.length === 0) {\n            return '.';\n        }\n        let joined;\n        let firstPart;\n        for (let i = 0; i < paths.length; ++i) {\n            const arg = paths[i];\n            validateString(arg, 'path');\n            if (arg.length > 0) {\n                if (joined === undefined) {\n                    joined = firstPart = arg;\n                }\n                else {\n                    joined += `\\\\${arg}`;\n                }\n            }\n        }\n        if (joined === undefined) {\n            return '.';\n        }\n        // Make sure that the joined path doesn't start with two slashes, because\n        // normalize() will mistake it for a UNC path then.\n        //\n        // This step is skipped when it is very clear that the user actually\n        // intended to point at a UNC path. This is assumed when the first\n        // non-empty string arguments starts with exactly two slashes followed by\n        // at least one more non-slash character.\n        //\n        // Note that for normalize() to treat a path as a UNC path it needs to\n        // have at least 2 components, so we don't filter for that here.\n        // This means that the user can use join to construct UNC paths from\n        // a server name and a share name; for example:\n        //   path.join('//server', 'share') -> '\\\\\\\\server\\\\share\\\\')\n        let needsReplace = true;\n        let slashCount = 0;\n        if (typeof firstPart === 'string' && isPathSeparator(firstPart.charCodeAt(0))) {\n            ++slashCount;\n            const firstLen = firstPart.length;\n            if (firstLen > 1 && isPathSeparator(firstPart.charCodeAt(1))) {\n                ++slashCount;\n                if (firstLen > 2) {\n                    if (isPathSeparator(firstPart.charCodeAt(2))) {\n                        ++slashCount;\n                    }\n                    else {\n                        // We matched a UNC path in the first part\n                        needsReplace = false;\n                    }\n                }\n            }\n        }\n        if (needsReplace) {\n            // Find any more consecutive slashes we need to replace\n            while (slashCount < joined.length &&\n                isPathSeparator(joined.charCodeAt(slashCount))) {\n                slashCount++;\n            }\n            // Replace the slashes if needed\n            if (slashCount >= 2) {\n                joined = `\\\\${joined.slice(slashCount)}`;\n            }\n        }\n        return win32.normalize(joined);\n    },\n    // It will solve the relative path from `from` to `to`, for instance:\n    //  from = 'C:\\\\orandea\\\\test\\\\aaa'\n    //  to = 'C:\\\\orandea\\\\impl\\\\bbb'\n    // The output of the function should be: '..\\\\..\\\\impl\\\\bbb'\n    relative(from, to) {\n        validateString(from, 'from');\n        validateString(to, 'to');\n        if (from === to) {\n            return '';\n        }\n        const fromOrig = win32.resolve(from);\n        const toOrig = win32.resolve(to);\n        if (fromOrig === toOrig) {\n            return '';\n        }\n        from = fromOrig.toLowerCase();\n        to = toOrig.toLowerCase();\n        if (from === to) {\n            return '';\n        }\n        // Trim any leading backslashes\n        let fromStart = 0;\n        while (fromStart < from.length &&\n            from.charCodeAt(fromStart) === CHAR_BACKWARD_SLASH) {\n            fromStart++;\n        }\n        // Trim trailing backslashes (applicable to UNC paths only)\n        let fromEnd = from.length;\n        while (fromEnd - 1 > fromStart &&\n            from.charCodeAt(fromEnd - 1) === CHAR_BACKWARD_SLASH) {\n            fromEnd--;\n        }\n        const fromLen = fromEnd - fromStart;\n        // Trim any leading backslashes\n        let toStart = 0;\n        while (toStart < to.length &&\n            to.charCodeAt(toStart) === CHAR_BACKWARD_SLASH) {\n            toStart++;\n        }\n        // Trim trailing backslashes (applicable to UNC paths only)\n        let toEnd = to.length;\n        while (toEnd - 1 > toStart &&\n            to.charCodeAt(toEnd - 1) === CHAR_BACKWARD_SLASH) {\n            toEnd--;\n        }\n        const toLen = toEnd - toStart;\n        // Compare paths to find the longest common path from root\n        const length = fromLen < toLen ? fromLen : toLen;\n        let lastCommonSep = -1;\n        let i = 0;\n        for (; i < length; i++) {\n            const fromCode = from.charCodeAt(fromStart + i);\n            if (fromCode !== to.charCodeAt(toStart + i)) {\n                break;\n            }\n            else if (fromCode === CHAR_BACKWARD_SLASH) {\n                lastCommonSep = i;\n            }\n        }\n        // We found a mismatch before the first common path separator was seen, so\n        // return the original `to`.\n        if (i !== length) {\n            if (lastCommonSep === -1) {\n                return toOrig;\n            }\n        }\n        else {\n            if (toLen > length) {\n                if (to.charCodeAt(toStart + i) === CHAR_BACKWARD_SLASH) {\n                    // We get here if `from` is the exact base path for `to`.\n                    // For example: from='C:\\\\foo\\\\bar'; to='C:\\\\foo\\\\bar\\\\baz'\n                    return toOrig.slice(toStart + i + 1);\n                }\n                if (i === 2) {\n                    // We get here if `from` is the device root.\n                    // For example: from='C:\\\\'; to='C:\\\\foo'\n                    return toOrig.slice(toStart + i);\n                }\n            }\n            if (fromLen > length) {\n                if (from.charCodeAt(fromStart + i) === CHAR_BACKWARD_SLASH) {\n                    // We get here if `to` is the exact base path for `from`.\n                    // For example: from='C:\\\\foo\\\\bar'; to='C:\\\\foo'\n                    lastCommonSep = i;\n                }\n                else if (i === 2) {\n                    // We get here if `to` is the device root.\n                    // For example: from='C:\\\\foo\\\\bar'; to='C:\\\\'\n                    lastCommonSep = 3;\n                }\n            }\n            if (lastCommonSep === -1) {\n                lastCommonSep = 0;\n            }\n        }\n        let out = '';\n        // Generate the relative path based on the path difference between `to` and\n        // `from`\n        for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n            if (i === fromEnd || from.charCodeAt(i) === CHAR_BACKWARD_SLASH) {\n                out += out.length === 0 ? '..' : '\\\\..';\n            }\n        }\n        toStart += lastCommonSep;\n        // Lastly, append the rest of the destination (`to`) path that comes after\n        // the common path parts\n        if (out.length > 0) {\n            return `${out}${toOrig.slice(toStart, toEnd)}`;\n        }\n        if (toOrig.charCodeAt(toStart) === CHAR_BACKWARD_SLASH) {\n            ++toStart;\n        }\n        return toOrig.slice(toStart, toEnd);\n    },\n    toNamespacedPath(path) {\n        // Note: this will *probably* throw somewhere.\n        if (typeof path !== 'string' || path.length === 0) {\n            return path;\n        }\n        const resolvedPath = win32.resolve(path);\n        if (resolvedPath.length <= 2) {\n            return path;\n        }\n        if (resolvedPath.charCodeAt(0) === CHAR_BACKWARD_SLASH) {\n            // Possible UNC root\n            if (resolvedPath.charCodeAt(1) === CHAR_BACKWARD_SLASH) {\n                const code = resolvedPath.charCodeAt(2);\n                if (code !== CHAR_QUESTION_MARK && code !== CHAR_DOT) {\n                    // Matched non-long UNC root, convert the path to a long UNC path\n                    return `\\\\\\\\?\\\\UNC\\\\${resolvedPath.slice(2)}`;\n                }\n            }\n        }\n        else if (isWindowsDeviceRoot(resolvedPath.charCodeAt(0)) &&\n            resolvedPath.charCodeAt(1) === CHAR_COLON &&\n            resolvedPath.charCodeAt(2) === CHAR_BACKWARD_SLASH) {\n            // Matched device root, convert the path to a long UNC path\n            return `\\\\\\\\?\\\\${resolvedPath}`;\n        }\n        return path;\n    },\n    dirname(path) {\n        validateString(path, 'path');\n        const len = path.length;\n        if (len === 0) {\n            return '.';\n        }\n        let rootEnd = -1;\n        let offset = 0;\n        const code = path.charCodeAt(0);\n        if (len === 1) {\n            // `path` contains just a path separator, exit early to avoid\n            // unnecessary work or a dot.\n            return isPathSeparator(code) ? path : '.';\n        }\n        // Try to match a root\n        if (isPathSeparator(code)) {\n            // Possible UNC root\n            rootEnd = offset = 1;\n            if (isPathSeparator(path.charCodeAt(1))) {\n                // Matched double path separator at beginning\n                let j = 2;\n                let last = j;\n                // Match 1 or more non-path separators\n                while (j < len && !isPathSeparator(path.charCodeAt(j))) {\n                    j++;\n                }\n                if (j < len && j !== last) {\n                    // Matched!\n                    last = j;\n                    // Match 1 or more path separators\n                    while (j < len && isPathSeparator(path.charCodeAt(j))) {\n                        j++;\n                    }\n                    if (j < len && j !== last) {\n                        // Matched!\n                        last = j;\n                        // Match 1 or more non-path separators\n                        while (j < len && !isPathSeparator(path.charCodeAt(j))) {\n                            j++;\n                        }\n                        if (j === len) {\n                            // We matched a UNC root only\n                            return path;\n                        }\n                        if (j !== last) {\n                            // We matched a UNC root with leftovers\n                            // Offset by 1 to include the separator after the UNC root to\n                            // treat it as a \"normal root\" on top of a (UNC) root\n                            rootEnd = offset = j + 1;\n                        }\n                    }\n                }\n            }\n            // Possible device root\n        }\n        else if (isWindowsDeviceRoot(code) && path.charCodeAt(1) === CHAR_COLON) {\n            rootEnd = len > 2 && isPathSeparator(path.charCodeAt(2)) ? 3 : 2;\n            offset = rootEnd;\n        }\n        let end = -1;\n        let matchedSlash = true;\n        for (let i = len - 1; i >= offset; --i) {\n            if (isPathSeparator(path.charCodeAt(i))) {\n                if (!matchedSlash) {\n                    end = i;\n                    break;\n                }\n            }\n            else {\n                // We saw the first non-path separator\n                matchedSlash = false;\n            }\n        }\n        if (end === -1) {\n            if (rootEnd === -1) {\n                return '.';\n            }\n            end = rootEnd;\n        }\n        return path.slice(0, end);\n    },\n    basename(path, ext) {\n        if (ext !== undefined) {\n            validateString(ext, 'ext');\n        }\n        validateString(path, 'path');\n        let start = 0;\n        let end = -1;\n        let matchedSlash = true;\n        let i;\n        // Check for a drive letter prefix so as not to mistake the following\n        // path separator as an extra separator at the end of the path that can be\n        // disregarded\n        if (path.length >= 2 &&\n            isWindowsDeviceRoot(path.charCodeAt(0)) &&\n            path.charCodeAt(1) === CHAR_COLON) {\n            start = 2;\n        }\n        if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n            if (ext === path) {\n                return '';\n            }\n            let extIdx = ext.length - 1;\n            let firstNonSlashEnd = -1;\n            for (i = path.length - 1; i >= start; --i) {\n                const code = path.charCodeAt(i);\n                if (isPathSeparator(code)) {\n                    // If we reached a path separator that was not part of a set of path\n                    // separators at the end of the string, stop now\n                    if (!matchedSlash) {\n                        start = i + 1;\n                        break;\n                    }\n                }\n                else {\n                    if (firstNonSlashEnd === -1) {\n                        // We saw the first non-path separator, remember this index in case\n                        // we need it if the extension ends up not matching\n                        matchedSlash = false;\n                        firstNonSlashEnd = i + 1;\n                    }\n                    if (extIdx >= 0) {\n                        // Try to match the explicit extension\n                        if (code === ext.charCodeAt(extIdx)) {\n                            if (--extIdx === -1) {\n                                // We matched the extension, so mark this as the end of our path\n                                // component\n                                end = i;\n                            }\n                        }\n                        else {\n                            // Extension does not match, so our result is the entire path\n                            // component\n                            extIdx = -1;\n                            end = firstNonSlashEnd;\n                        }\n                    }\n                }\n            }\n            if (start === end) {\n                end = firstNonSlashEnd;\n            }\n            else if (end === -1) {\n                end = path.length;\n            }\n            return path.slice(start, end);\n        }\n        for (i = path.length - 1; i >= start; --i) {\n            if (isPathSeparator(path.charCodeAt(i))) {\n                // If we reached a path separator that was not part of a set of path\n                // separators at the end of the string, stop now\n                if (!matchedSlash) {\n                    start = i + 1;\n                    break;\n                }\n            }\n            else if (end === -1) {\n                // We saw the first non-path separator, mark this as the end of our\n                // path component\n                matchedSlash = false;\n                end = i + 1;\n            }\n        }\n        if (end === -1) {\n            return '';\n        }\n        return path.slice(start, end);\n    },\n    extname(path) {\n        validateString(path, 'path');\n        let start = 0;\n        let startDot = -1;\n        let startPart = 0;\n        let end = -1;\n        let matchedSlash = true;\n        // Track the state of characters (if any) we see before our first dot and\n        // after any path separator we find\n        let preDotState = 0;\n        // Check for a drive letter prefix so as not to mistake the following\n        // path separator as an extra separator at the end of the path that can be\n        // disregarded\n        if (path.length >= 2 &&\n            path.charCodeAt(1) === CHAR_COLON &&\n            isWindowsDeviceRoot(path.charCodeAt(0))) {\n            start = startPart = 2;\n        }\n        for (let i = path.length - 1; i >= start; --i) {\n            const code = path.charCodeAt(i);\n            if (isPathSeparator(code)) {\n                // If we reached a path separator that was not part of a set of path\n                // separators at the end of the string, stop now\n                if (!matchedSlash) {\n                    startPart = i + 1;\n                    break;\n                }\n                continue;\n            }\n            if (end === -1) {\n                // We saw the first non-path separator, mark this as the end of our\n                // extension\n                matchedSlash = false;\n                end = i + 1;\n            }\n            if (code === CHAR_DOT) {\n                // If this is our first dot, mark it as the start of our extension\n                if (startDot === -1) {\n                    startDot = i;\n                }\n                else if (preDotState !== 1) {\n                    preDotState = 1;\n                }\n            }\n            else if (startDot !== -1) {\n                // We saw a non-dot and non-path separator before our dot, so we should\n                // have a good chance at having a non-empty extension\n                preDotState = -1;\n            }\n        }\n        if (startDot === -1 ||\n            end === -1 ||\n            // We saw a non-dot character immediately before the dot\n            preDotState === 0 ||\n            // The (right-most) trimmed path component is exactly '..'\n            (preDotState === 1 &&\n                startDot === end - 1 &&\n                startDot === startPart + 1)) {\n            return '';\n        }\n        return path.slice(startDot, end);\n    },\n    format: _format.bind(null, '\\\\'),\n    parse(path) {\n        validateString(path, 'path');\n        const ret = { root: '', dir: '', base: '', ext: '', name: '' };\n        if (path.length === 0) {\n            return ret;\n        }\n        const len = path.length;\n        let rootEnd = 0;\n        let code = path.charCodeAt(0);\n        if (len === 1) {\n            if (isPathSeparator(code)) {\n                // `path` contains just a path separator, exit early to avoid\n                // unnecessary work\n                ret.root = ret.dir = path;\n                return ret;\n            }\n            ret.base = ret.name = path;\n            return ret;\n        }\n        // Try to match a root\n        if (isPathSeparator(code)) {\n            // Possible UNC root\n            rootEnd = 1;\n            if (isPathSeparator(path.charCodeAt(1))) {\n                // Matched double path separator at beginning\n                let j = 2;\n                let last = j;\n                // Match 1 or more non-path separators\n                while (j < len && !isPathSeparator(path.charCodeAt(j))) {\n                    j++;\n                }\n                if (j < len && j !== last) {\n                    // Matched!\n                    last = j;\n                    // Match 1 or more path separators\n                    while (j < len && isPathSeparator(path.charCodeAt(j))) {\n                        j++;\n                    }\n                    if (j < len && j !== last) {\n                        // Matched!\n                        last = j;\n                        // Match 1 or more non-path separators\n                        while (j < len && !isPathSeparator(path.charCodeAt(j))) {\n                            j++;\n                        }\n                        if (j === len) {\n                            // We matched a UNC root only\n                            rootEnd = j;\n                        }\n                        else if (j !== last) {\n                            // We matched a UNC root with leftovers\n                            rootEnd = j + 1;\n                        }\n                    }\n                }\n            }\n        }\n        else if (isWindowsDeviceRoot(code) && path.charCodeAt(1) === CHAR_COLON) {\n            // Possible device root\n            if (len <= 2) {\n                // `path` contains just a drive root, exit early to avoid\n                // unnecessary work\n                ret.root = ret.dir = path;\n                return ret;\n            }\n            rootEnd = 2;\n            if (isPathSeparator(path.charCodeAt(2))) {\n                if (len === 3) {\n                    // `path` contains just a drive root, exit early to avoid\n                    // unnecessary work\n                    ret.root = ret.dir = path;\n                    return ret;\n                }\n                rootEnd = 3;\n            }\n        }\n        if (rootEnd > 0) {\n            ret.root = path.slice(0, rootEnd);\n        }\n        let startDot = -1;\n        let startPart = rootEnd;\n        let end = -1;\n        let matchedSlash = true;\n        let i = path.length - 1;\n        // Track the state of characters (if any) we see before our first dot and\n        // after any path separator we find\n        let preDotState = 0;\n        // Get non-dir info\n        for (; i >= rootEnd; --i) {\n            code = path.charCodeAt(i);\n            if (isPathSeparator(code)) {\n                // If we reached a path separator that was not part of a set of path\n                // separators at the end of the string, stop now\n                if (!matchedSlash) {\n                    startPart = i + 1;\n                    break;\n                }\n                continue;\n            }\n            if (end === -1) {\n                // We saw the first non-path separator, mark this as the end of our\n                // extension\n                matchedSlash = false;\n                end = i + 1;\n            }\n            if (code === CHAR_DOT) {\n                // If this is our first dot, mark it as the start of our extension\n                if (startDot === -1) {\n                    startDot = i;\n                }\n                else if (preDotState !== 1) {\n                    preDotState = 1;\n                }\n            }\n            else if (startDot !== -1) {\n                // We saw a non-dot and non-path separator before our dot, so we should\n                // have a good chance at having a non-empty extension\n                preDotState = -1;\n            }\n        }\n        if (end !== -1) {\n            if (startDot === -1 ||\n                // We saw a non-dot character immediately before the dot\n                preDotState === 0 ||\n                // The (right-most) trimmed path component is exactly '..'\n                (preDotState === 1 &&\n                    startDot === end - 1 &&\n                    startDot === startPart + 1)) {\n                ret.base = ret.name = path.slice(startPart, end);\n            }\n            else {\n                ret.name = path.slice(startPart, startDot);\n                ret.base = path.slice(startPart, end);\n                ret.ext = path.slice(startDot, end);\n            }\n        }\n        // If the directory is the root, use the entire root as the `dir` including\n        // the trailing slash if any (`C:\\abc` -> `C:\\`). Otherwise, strip out the\n        // trailing slash (`C:\\abc\\def` -> `C:\\abc`).\n        if (startPart > 0 && startPart !== rootEnd) {\n            ret.dir = path.slice(0, startPart - 1);\n        }\n        else {\n            ret.dir = ret.root;\n        }\n        return ret;\n    },\n    sep: '\\\\',\n    delimiter: ';',\n    win32: null,\n    posix: null\n};\nconst posixCwd = (() => {\n    if (platformIsWin32) {\n        // Converts Windows' backslash path separators to POSIX forward slashes\n        // and truncates any drive indicator\n        const regexp = /\\\\/g;\n        return () => {\n            const cwd = process.cwd().replace(regexp, '/');\n            return cwd.slice(cwd.indexOf('/'));\n        };\n    }\n    // We're already on POSIX, no need for any transformations\n    return () => process.cwd();\n})();\nexport const posix = {\n    // path.resolve([from ...], to)\n    resolve(...pathSegments) {\n        let resolvedPath = '';\n        let resolvedAbsolute = false;\n        for (let i = pathSegments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n            const path = i >= 0 ? pathSegments[i] : posixCwd();\n            validateString(path, 'path');\n            // Skip empty entries\n            if (path.length === 0) {\n                continue;\n            }\n            resolvedPath = `${path}/${resolvedPath}`;\n            resolvedAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH;\n        }\n        // At this point the path should be resolved to a full absolute path, but\n        // handle relative paths to be safe (might happen when process.cwd() fails)\n        // Normalize the path\n        resolvedPath = normalizeString(resolvedPath, !resolvedAbsolute, '/', isPosixPathSeparator);\n        if (resolvedAbsolute) {\n            return `/${resolvedPath}`;\n        }\n        return resolvedPath.length > 0 ? resolvedPath : '.';\n    },\n    normalize(path) {\n        validateString(path, 'path');\n        if (path.length === 0) {\n            return '.';\n        }\n        const isAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH;\n        const trailingSeparator = path.charCodeAt(path.length - 1) === CHAR_FORWARD_SLASH;\n        // Normalize the path\n        path = normalizeString(path, !isAbsolute, '/', isPosixPathSeparator);\n        if (path.length === 0) {\n            if (isAbsolute) {\n                return '/';\n            }\n            return trailingSeparator ? './' : '.';\n        }\n        if (trailingSeparator) {\n            path += '/';\n        }\n        return isAbsolute ? `/${path}` : path;\n    },\n    isAbsolute(path) {\n        validateString(path, 'path');\n        return path.length > 0 && path.charCodeAt(0) === CHAR_FORWARD_SLASH;\n    },\n    join(...paths) {\n        if (paths.length === 0) {\n            return '.';\n        }\n        let joined;\n        for (let i = 0; i < paths.length; ++i) {\n            const arg = paths[i];\n            validateString(arg, 'path');\n            if (arg.length > 0) {\n                if (joined === undefined) {\n                    joined = arg;\n                }\n                else {\n                    joined += `/${arg}`;\n                }\n            }\n        }\n        if (joined === undefined) {\n            return '.';\n        }\n        return posix.normalize(joined);\n    },\n    relative(from, to) {\n        validateString(from, 'from');\n        validateString(to, 'to');\n        if (from === to) {\n            return '';\n        }\n        // Trim leading forward slashes.\n        from = posix.resolve(from);\n        to = posix.resolve(to);\n        if (from === to) {\n            return '';\n        }\n        const fromStart = 1;\n        const fromEnd = from.length;\n        const fromLen = fromEnd - fromStart;\n        const toStart = 1;\n        const toLen = to.length - toStart;\n        // Compare paths to find the longest common path from root\n        const length = (fromLen < toLen ? fromLen : toLen);\n        let lastCommonSep = -1;\n        let i = 0;\n        for (; i < length; i++) {\n            const fromCode = from.charCodeAt(fromStart + i);\n            if (fromCode !== to.charCodeAt(toStart + i)) {\n                break;\n            }\n            else if (fromCode === CHAR_FORWARD_SLASH) {\n                lastCommonSep = i;\n            }\n        }\n        if (i === length) {\n            if (toLen > length) {\n                if (to.charCodeAt(toStart + i) === CHAR_FORWARD_SLASH) {\n                    // We get here if `from` is the exact base path for `to`.\n                    // For example: from='/foo/bar'; to='/foo/bar/baz'\n                    return to.slice(toStart + i + 1);\n                }\n                if (i === 0) {\n                    // We get here if `from` is the root\n                    // For example: from='/'; to='/foo'\n                    return to.slice(toStart + i);\n                }\n            }\n            else if (fromLen > length) {\n                if (from.charCodeAt(fromStart + i) === CHAR_FORWARD_SLASH) {\n                    // We get here if `to` is the exact base path for `from`.\n                    // For example: from='/foo/bar/baz'; to='/foo/bar'\n                    lastCommonSep = i;\n                }\n                else if (i === 0) {\n                    // We get here if `to` is the root.\n                    // For example: from='/foo/bar'; to='/'\n                    lastCommonSep = 0;\n                }\n            }\n        }\n        let out = '';\n        // Generate the relative path based on the path difference between `to`\n        // and `from`.\n        for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n            if (i === fromEnd || from.charCodeAt(i) === CHAR_FORWARD_SLASH) {\n                out += out.length === 0 ? '..' : '/..';\n            }\n        }\n        // Lastly, append the rest of the destination (`to`) path that comes after\n        // the common path parts.\n        return `${out}${to.slice(toStart + lastCommonSep)}`;\n    },\n    toNamespacedPath(path) {\n        // Non-op on posix systems\n        return path;\n    },\n    dirname(path) {\n        validateString(path, 'path');\n        if (path.length === 0) {\n            return '.';\n        }\n        const hasRoot = path.charCodeAt(0) === CHAR_FORWARD_SLASH;\n        let end = -1;\n        let matchedSlash = true;\n        for (let i = path.length - 1; i >= 1; --i) {\n            if (path.charCodeAt(i) === CHAR_FORWARD_SLASH) {\n                if (!matchedSlash) {\n                    end = i;\n                    break;\n                }\n            }\n            else {\n                // We saw the first non-path separator\n                matchedSlash = false;\n            }\n        }\n        if (end === -1) {\n            return hasRoot ? '/' : '.';\n        }\n        if (hasRoot && end === 1) {\n            return '//';\n        }\n        return path.slice(0, end);\n    },\n    basename(path, ext) {\n        if (ext !== undefined) {\n            validateString(ext, 'ext');\n        }\n        validateString(path, 'path');\n        let start = 0;\n        let end = -1;\n        let matchedSlash = true;\n        let i;\n        if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n            if (ext === path) {\n                return '';\n            }\n            let extIdx = ext.length - 1;\n            let firstNonSlashEnd = -1;\n            for (i = path.length - 1; i >= 0; --i) {\n                const code = path.charCodeAt(i);\n                if (code === CHAR_FORWARD_SLASH) {\n                    // If we reached a path separator that was not part of a set of path\n                    // separators at the end of the string, stop now\n                    if (!matchedSlash) {\n                        start = i + 1;\n                        break;\n                    }\n                }\n                else {\n                    if (firstNonSlashEnd === -1) {\n                        // We saw the first non-path separator, remember this index in case\n                        // we need it if the extension ends up not matching\n                        matchedSlash = false;\n                        firstNonSlashEnd = i + 1;\n                    }\n                    if (extIdx >= 0) {\n                        // Try to match the explicit extension\n                        if (code === ext.charCodeAt(extIdx)) {\n                            if (--extIdx === -1) {\n                                // We matched the extension, so mark this as the end of our path\n                                // component\n                                end = i;\n                            }\n                        }\n                        else {\n                            // Extension does not match, so our result is the entire path\n                            // component\n                            extIdx = -1;\n                            end = firstNonSlashEnd;\n                        }\n                    }\n                }\n            }\n            if (start === end) {\n                end = firstNonSlashEnd;\n            }\n            else if (end === -1) {\n                end = path.length;\n            }\n            return path.slice(start, end);\n        }\n        for (i = path.length - 1; i >= 0; --i) {\n            if (path.charCodeAt(i) === CHAR_FORWARD_SLASH) {\n                // If we reached a path separator that was not part of a set of path\n                // separators at the end of the string, stop now\n                if (!matchedSlash) {\n                    start = i + 1;\n                    break;\n                }\n            }\n            else if (end === -1) {\n                // We saw the first non-path separator, mark this as the end of our\n                // path component\n                matchedSlash = false;\n                end = i + 1;\n            }\n        }\n        if (end === -1) {\n            return '';\n        }\n        return path.slice(start, end);\n    },\n    extname(path) {\n        validateString(path, 'path');\n        let startDot = -1;\n        let startPart = 0;\n        let end = -1;\n        let matchedSlash = true;\n        // Track the state of characters (if any) we see before our first dot and\n        // after any path separator we find\n        let preDotState = 0;\n        for (let i = path.length - 1; i >= 0; --i) {\n            const code = path.charCodeAt(i);\n            if (code === CHAR_FORWARD_SLASH) {\n                // If we reached a path separator that was not part of a set of path\n                // separators at the end of the string, stop now\n                if (!matchedSlash) {\n                    startPart = i + 1;\n                    break;\n                }\n                continue;\n            }\n            if (end === -1) {\n                // We saw the first non-path separator, mark this as the end of our\n                // extension\n                matchedSlash = false;\n                end = i + 1;\n            }\n            if (code === CHAR_DOT) {\n                // If this is our first dot, mark it as the start of our extension\n                if (startDot === -1) {\n                    startDot = i;\n                }\n                else if (preDotState !== 1) {\n                    preDotState = 1;\n                }\n            }\n            else if (startDot !== -1) {\n                // We saw a non-dot and non-path separator before our dot, so we should\n                // have a good chance at having a non-empty extension\n                preDotState = -1;\n            }\n        }\n        if (startDot === -1 ||\n            end === -1 ||\n            // We saw a non-dot character immediately before the dot\n            preDotState === 0 ||\n            // The (right-most) trimmed path component is exactly '..'\n            (preDotState === 1 &&\n                startDot === end - 1 &&\n                startDot === startPart + 1)) {\n            return '';\n        }\n        return path.slice(startDot, end);\n    },\n    format: _format.bind(null, '/'),\n    parse(path) {\n        validateString(path, 'path');\n        const ret = { root: '', dir: '', base: '', ext: '', name: '' };\n        if (path.length === 0) {\n            return ret;\n        }\n        const isAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH;\n        let start;\n        if (isAbsolute) {\n            ret.root = '/';\n            start = 1;\n        }\n        else {\n            start = 0;\n        }\n        let startDot = -1;\n        let startPart = 0;\n        let end = -1;\n        let matchedSlash = true;\n        let i = path.length - 1;\n        // Track the state of characters (if any) we see before our first dot and\n        // after any path separator we find\n        let preDotState = 0;\n        // Get non-dir info\n        for (; i >= start; --i) {\n            const code = path.charCodeAt(i);\n            if (code === CHAR_FORWARD_SLASH) {\n                // If we reached a path separator that was not part of a set of path\n                // separators at the end of the string, stop now\n                if (!matchedSlash) {\n                    startPart = i + 1;\n                    break;\n                }\n                continue;\n            }\n            if (end === -1) {\n                // We saw the first non-path separator, mark this as the end of our\n                // extension\n                matchedSlash = false;\n                end = i + 1;\n            }\n            if (code === CHAR_DOT) {\n                // If this is our first dot, mark it as the start of our extension\n                if (startDot === -1) {\n                    startDot = i;\n                }\n                else if (preDotState !== 1) {\n                    preDotState = 1;\n                }\n            }\n            else if (startDot !== -1) {\n                // We saw a non-dot and non-path separator before our dot, so we should\n                // have a good chance at having a non-empty extension\n                preDotState = -1;\n            }\n        }\n        if (end !== -1) {\n            const start = startPart === 0 && isAbsolute ? 1 : startPart;\n            if (startDot === -1 ||\n                // We saw a non-dot character immediately before the dot\n                preDotState === 0 ||\n                // The (right-most) trimmed path component is exactly '..'\n                (preDotState === 1 &&\n                    startDot === end - 1 &&\n                    startDot === startPart + 1)) {\n                ret.base = ret.name = path.slice(start, end);\n            }\n            else {\n                ret.name = path.slice(start, startDot);\n                ret.base = path.slice(start, end);\n                ret.ext = path.slice(startDot, end);\n            }\n        }\n        if (startPart > 0) {\n            ret.dir = path.slice(0, startPart - 1);\n        }\n        else if (isAbsolute) {\n            ret.dir = '/';\n        }\n        return ret;\n    },\n    sep: '/',\n    delimiter: ':',\n    win32: null,\n    posix: null\n};\nposix.win32 = win32.win32 = win32;\nposix.posix = win32.posix = posix;\nexport const normalize = (platformIsWin32 ? win32.normalize : posix.normalize);\nexport const resolve = (platformIsWin32 ? win32.resolve : posix.resolve);\nexport const relative = (platformIsWin32 ? win32.relative : posix.relative);\nexport const dirname = (platformIsWin32 ? win32.dirname : posix.dirname);\nexport const basename = (platformIsWin32 ? win32.basename : posix.basename);\nexport const extname = (platformIsWin32 ? win32.extname : posix.extname);\nexport const sep = (platformIsWin32 ? win32.sep : posix.sep);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/platform.js",
    "content": "var _a, _b;\n/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../nls.js';\nexport const LANGUAGE_DEFAULT = 'en';\nlet _isWindows = false;\nlet _isMacintosh = false;\nlet _isLinux = false;\nlet _isLinuxSnap = false;\nlet _isNative = false;\nlet _isWeb = false;\nlet _isElectron = false;\nlet _isIOS = false;\nlet _isCI = false;\nlet _isMobile = false;\nlet _locale = undefined;\nlet _language = LANGUAGE_DEFAULT;\nlet _platformLocale = LANGUAGE_DEFAULT;\nlet _translationsConfigFile = undefined;\nlet _userAgent = undefined;\nconst $globalThis = globalThis;\nlet nodeProcess = undefined;\nif (typeof $globalThis.vscode !== 'undefined' && typeof $globalThis.vscode.process !== 'undefined') {\n    // Native environment (sandboxed)\n    nodeProcess = $globalThis.vscode.process;\n}\nelse if (typeof process !== 'undefined' && typeof ((_a = process === null || process === void 0 ? void 0 : process.versions) === null || _a === void 0 ? void 0 : _a.node) === 'string') {\n    // Native environment (non-sandboxed)\n    nodeProcess = process;\n}\nconst isElectronProcess = typeof ((_b = nodeProcess === null || nodeProcess === void 0 ? void 0 : nodeProcess.versions) === null || _b === void 0 ? void 0 : _b.electron) === 'string';\nconst isElectronRenderer = isElectronProcess && (nodeProcess === null || nodeProcess === void 0 ? void 0 : nodeProcess.type) === 'renderer';\n// Native environment\nif (typeof nodeProcess === 'object') {\n    _isWindows = (nodeProcess.platform === 'win32');\n    _isMacintosh = (nodeProcess.platform === 'darwin');\n    _isLinux = (nodeProcess.platform === 'linux');\n    _isLinuxSnap = _isLinux && !!nodeProcess.env['SNAP'] && !!nodeProcess.env['SNAP_REVISION'];\n    _isElectron = isElectronProcess;\n    _isCI = !!nodeProcess.env['CI'] || !!nodeProcess.env['BUILD_ARTIFACTSTAGINGDIRECTORY'];\n    _locale = LANGUAGE_DEFAULT;\n    _language = LANGUAGE_DEFAULT;\n    const rawNlsConfig = nodeProcess.env['VSCODE_NLS_CONFIG'];\n    if (rawNlsConfig) {\n        try {\n            const nlsConfig = JSON.parse(rawNlsConfig);\n            const resolved = nlsConfig.availableLanguages['*'];\n            _locale = nlsConfig.locale;\n            _platformLocale = nlsConfig.osLocale;\n            // VSCode's default language is 'en'\n            _language = resolved ? resolved : LANGUAGE_DEFAULT;\n            _translationsConfigFile = nlsConfig._translationsConfigFile;\n        }\n        catch (e) {\n        }\n    }\n    _isNative = true;\n}\n// Web environment\nelse if (typeof navigator === 'object' && !isElectronRenderer) {\n    _userAgent = navigator.userAgent;\n    _isWindows = _userAgent.indexOf('Windows') >= 0;\n    _isMacintosh = _userAgent.indexOf('Macintosh') >= 0;\n    _isIOS = (_userAgent.indexOf('Macintosh') >= 0 || _userAgent.indexOf('iPad') >= 0 || _userAgent.indexOf('iPhone') >= 0) && !!navigator.maxTouchPoints && navigator.maxTouchPoints > 0;\n    _isLinux = _userAgent.indexOf('Linux') >= 0;\n    _isMobile = (_userAgent === null || _userAgent === void 0 ? void 0 : _userAgent.indexOf('Mobi')) >= 0;\n    _isWeb = true;\n    const configuredLocale = nls.getConfiguredDefaultLocale(\n    // This call _must_ be done in the file that calls `nls.getConfiguredDefaultLocale`\n    // to ensure that the NLS AMD Loader plugin has been loaded and configured.\n    // This is because the loader plugin decides what the default locale is based on\n    // how it's able to resolve the strings.\n    nls.localize({ key: 'ensureLoaderPluginIsLoaded', comment: ['{Locked}'] }, '_'));\n    _locale = configuredLocale || LANGUAGE_DEFAULT;\n    _language = _locale;\n    _platformLocale = navigator.language;\n}\n// Unknown environment\nelse {\n    console.error('Unable to resolve platform.');\n}\nlet _platform = 0 /* Platform.Web */;\nif (_isMacintosh) {\n    _platform = 1 /* Platform.Mac */;\n}\nelse if (_isWindows) {\n    _platform = 3 /* Platform.Windows */;\n}\nelse if (_isLinux) {\n    _platform = 2 /* Platform.Linux */;\n}\nexport const isWindows = _isWindows;\nexport const isMacintosh = _isMacintosh;\nexport const isLinux = _isLinux;\nexport const isNative = _isNative;\nexport const isWeb = _isWeb;\nexport const isWebWorker = (_isWeb && typeof $globalThis.importScripts === 'function');\nexport const webWorkerOrigin = isWebWorker ? $globalThis.origin : undefined;\nexport const isIOS = _isIOS;\nexport const isMobile = _isMobile;\nexport const userAgent = _userAgent;\n/**\n * The language used for the user interface. The format of\n * the string is all lower case (e.g. zh-tw for Traditional\n * Chinese)\n */\nexport const language = _language;\nexport const setTimeout0IsFaster = (typeof $globalThis.postMessage === 'function' && !$globalThis.importScripts);\n/**\n * See https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#:~:text=than%204%2C%20then-,set%20timeout%20to%204,-.\n *\n * Works similarly to `setTimeout(0)` but doesn't suffer from the 4ms artificial delay\n * that browsers set when the nesting level is > 5.\n */\nexport const setTimeout0 = (() => {\n    if (setTimeout0IsFaster) {\n        const pending = [];\n        $globalThis.addEventListener('message', (e) => {\n            if (e.data && e.data.vscodeScheduleAsyncWork) {\n                for (let i = 0, len = pending.length; i < len; i++) {\n                    const candidate = pending[i];\n                    if (candidate.id === e.data.vscodeScheduleAsyncWork) {\n                        pending.splice(i, 1);\n                        candidate.callback();\n                        return;\n                    }\n                }\n            }\n        });\n        let lastId = 0;\n        return (callback) => {\n            const myId = ++lastId;\n            pending.push({\n                id: myId,\n                callback: callback\n            });\n            $globalThis.postMessage({ vscodeScheduleAsyncWork: myId }, '*');\n        };\n    }\n    return (callback) => setTimeout(callback);\n})();\nexport const OS = (_isMacintosh || _isIOS ? 2 /* OperatingSystem.Macintosh */ : (_isWindows ? 1 /* OperatingSystem.Windows */ : 3 /* OperatingSystem.Linux */));\nlet _isLittleEndian = true;\nlet _isLittleEndianComputed = false;\nexport function isLittleEndian() {\n    if (!_isLittleEndianComputed) {\n        _isLittleEndianComputed = true;\n        const test = new Uint8Array(2);\n        test[0] = 1;\n        test[1] = 2;\n        const view = new Uint16Array(test.buffer);\n        _isLittleEndian = (view[0] === (2 << 8) + 1);\n    }\n    return _isLittleEndian;\n}\nexport const isChrome = !!(userAgent && userAgent.indexOf('Chrome') >= 0);\nexport const isFirefox = !!(userAgent && userAgent.indexOf('Firefox') >= 0);\nexport const isSafari = !!(!isChrome && (userAgent && userAgent.indexOf('Safari') >= 0));\nexport const isEdge = !!(userAgent && userAgent.indexOf('Edg/') >= 0);\nexport const isAndroid = !!(userAgent && userAgent.indexOf('Android') >= 0);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/process.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { isMacintosh, isWindows } from './platform.js';\nlet safeProcess;\n// Native sandbox environment\nconst vscodeGlobal = globalThis.vscode;\nif (typeof vscodeGlobal !== 'undefined' && typeof vscodeGlobal.process !== 'undefined') {\n    const sandboxProcess = vscodeGlobal.process;\n    safeProcess = {\n        get platform() { return sandboxProcess.platform; },\n        get arch() { return sandboxProcess.arch; },\n        get env() { return sandboxProcess.env; },\n        cwd() { return sandboxProcess.cwd(); }\n    };\n}\n// Native node.js environment\nelse if (typeof process !== 'undefined') {\n    safeProcess = {\n        get platform() { return process.platform; },\n        get arch() { return process.arch; },\n        get env() { return process.env; },\n        cwd() { return process.env['VSCODE_CWD'] || process.cwd(); }\n    };\n}\n// Web environment\nelse {\n    safeProcess = {\n        // Supported\n        get platform() { return isWindows ? 'win32' : isMacintosh ? 'darwin' : 'linux'; },\n        get arch() { return undefined; /* arch is undefined in web */ },\n        // Unsupported\n        get env() { return {}; },\n        cwd() { return '/'; }\n    };\n}\n/**\n * Provides safe access to the `cwd` property in node.js, sandboxed or web\n * environments.\n *\n * Note: in web, this property is hardcoded to be `/`.\n *\n * @skipMangle\n */\nexport const cwd = safeProcess.cwd;\n/**\n * Provides safe access to the `env` property in node.js, sandboxed or web\n * environments.\n *\n * Note: in web, this property is hardcoded to be `{}`.\n */\nexport const env = safeProcess.env;\n/**\n * Provides safe access to the `platform` property in node.js, sandboxed or web\n * environments.\n */\nexport const platform = safeProcess.platform;\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/range.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport var Range;\n(function (Range) {\n    /**\n     * Returns the intersection between two ranges as a range itself.\n     * Returns `{ start: 0, end: 0 }` if the intersection is empty.\n     */\n    function intersect(one, other) {\n        if (one.start >= other.end || other.start >= one.end) {\n            return { start: 0, end: 0 };\n        }\n        const start = Math.max(one.start, other.start);\n        const end = Math.min(one.end, other.end);\n        if (end - start <= 0) {\n            return { start: 0, end: 0 };\n        }\n        return { start, end };\n    }\n    Range.intersect = intersect;\n    function isEmpty(range) {\n        return range.end - range.start <= 0;\n    }\n    Range.isEmpty = isEmpty;\n    function intersects(one, other) {\n        return !isEmpty(intersect(one, other));\n    }\n    Range.intersects = intersects;\n    function relativeComplement(one, other) {\n        const result = [];\n        const first = { start: one.start, end: Math.min(other.start, one.end) };\n        const second = { start: Math.max(other.end, one.start), end: one.end };\n        if (!isEmpty(first)) {\n            result.push(first);\n        }\n        if (!isEmpty(second)) {\n            result.push(second);\n        }\n        return result;\n    }\n    Range.relativeComplement = relativeComplement;\n})(Range || (Range = {}));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/resources.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as extpath from './extpath.js';\nimport { Schemas } from './network.js';\nimport * as paths from './path.js';\nimport { isLinux, isWindows } from './platform.js';\nimport { compare as strCompare, equalsIgnoreCase } from './strings.js';\nimport { URI, uriToFsPath } from './uri.js';\nexport function originalFSPath(uri) {\n    return uriToFsPath(uri, true);\n}\nexport class ExtUri {\n    constructor(_ignorePathCasing) {\n        this._ignorePathCasing = _ignorePathCasing;\n    }\n    compare(uri1, uri2, ignoreFragment = false) {\n        if (uri1 === uri2) {\n            return 0;\n        }\n        return strCompare(this.getComparisonKey(uri1, ignoreFragment), this.getComparisonKey(uri2, ignoreFragment));\n    }\n    isEqual(uri1, uri2, ignoreFragment = false) {\n        if (uri1 === uri2) {\n            return true;\n        }\n        if (!uri1 || !uri2) {\n            return false;\n        }\n        return this.getComparisonKey(uri1, ignoreFragment) === this.getComparisonKey(uri2, ignoreFragment);\n    }\n    getComparisonKey(uri, ignoreFragment = false) {\n        return uri.with({\n            path: this._ignorePathCasing(uri) ? uri.path.toLowerCase() : undefined,\n            fragment: ignoreFragment ? null : undefined\n        }).toString();\n    }\n    isEqualOrParent(base, parentCandidate, ignoreFragment = false) {\n        if (base.scheme === parentCandidate.scheme) {\n            if (base.scheme === Schemas.file) {\n                return extpath.isEqualOrParent(originalFSPath(base), originalFSPath(parentCandidate), this._ignorePathCasing(base)) && base.query === parentCandidate.query && (ignoreFragment || base.fragment === parentCandidate.fragment);\n            }\n            if (isEqualAuthority(base.authority, parentCandidate.authority)) {\n                return extpath.isEqualOrParent(base.path, parentCandidate.path, this._ignorePathCasing(base), '/') && base.query === parentCandidate.query && (ignoreFragment || base.fragment === parentCandidate.fragment);\n            }\n        }\n        return false;\n    }\n    // --- path math\n    joinPath(resource, ...pathFragment) {\n        return URI.joinPath(resource, ...pathFragment);\n    }\n    basenameOrAuthority(resource) {\n        return basename(resource) || resource.authority;\n    }\n    basename(resource) {\n        return paths.posix.basename(resource.path);\n    }\n    extname(resource) {\n        return paths.posix.extname(resource.path);\n    }\n    dirname(resource) {\n        if (resource.path.length === 0) {\n            return resource;\n        }\n        let dirname;\n        if (resource.scheme === Schemas.file) {\n            dirname = URI.file(paths.dirname(originalFSPath(resource))).path;\n        }\n        else {\n            dirname = paths.posix.dirname(resource.path);\n            if (resource.authority && dirname.length && dirname.charCodeAt(0) !== 47 /* CharCode.Slash */) {\n                console.error(`dirname(\"${resource.toString})) resulted in a relative path`);\n                dirname = '/'; // If a URI contains an authority component, then the path component must either be empty or begin with a CharCode.Slash (\"/\") character\n            }\n        }\n        return resource.with({\n            path: dirname\n        });\n    }\n    normalizePath(resource) {\n        if (!resource.path.length) {\n            return resource;\n        }\n        let normalizedPath;\n        if (resource.scheme === Schemas.file) {\n            normalizedPath = URI.file(paths.normalize(originalFSPath(resource))).path;\n        }\n        else {\n            normalizedPath = paths.posix.normalize(resource.path);\n        }\n        return resource.with({\n            path: normalizedPath\n        });\n    }\n    relativePath(from, to) {\n        if (from.scheme !== to.scheme || !isEqualAuthority(from.authority, to.authority)) {\n            return undefined;\n        }\n        if (from.scheme === Schemas.file) {\n            const relativePath = paths.relative(originalFSPath(from), originalFSPath(to));\n            return isWindows ? extpath.toSlashes(relativePath) : relativePath;\n        }\n        let fromPath = from.path || '/';\n        const toPath = to.path || '/';\n        if (this._ignorePathCasing(from)) {\n            // make casing of fromPath match toPath\n            let i = 0;\n            for (const len = Math.min(fromPath.length, toPath.length); i < len; i++) {\n                if (fromPath.charCodeAt(i) !== toPath.charCodeAt(i)) {\n                    if (fromPath.charAt(i).toLowerCase() !== toPath.charAt(i).toLowerCase()) {\n                        break;\n                    }\n                }\n            }\n            fromPath = toPath.substr(0, i) + fromPath.substr(i);\n        }\n        return paths.posix.relative(fromPath, toPath);\n    }\n    resolvePath(base, path) {\n        if (base.scheme === Schemas.file) {\n            const newURI = URI.file(paths.resolve(originalFSPath(base), path));\n            return base.with({\n                authority: newURI.authority,\n                path: newURI.path\n            });\n        }\n        path = extpath.toPosixPath(path); // we allow path to be a windows path\n        return base.with({\n            path: paths.posix.resolve(base.path, path)\n        });\n    }\n    // --- misc\n    isAbsolutePath(resource) {\n        return !!resource.path && resource.path[0] === '/';\n    }\n    isEqualAuthority(a1, a2) {\n        return a1 === a2 || (a1 !== undefined && a2 !== undefined && equalsIgnoreCase(a1, a2));\n    }\n    hasTrailingPathSeparator(resource, sep = paths.sep) {\n        if (resource.scheme === Schemas.file) {\n            const fsp = originalFSPath(resource);\n            return fsp.length > extpath.getRoot(fsp).length && fsp[fsp.length - 1] === sep;\n        }\n        else {\n            const p = resource.path;\n            return (p.length > 1 && p.charCodeAt(p.length - 1) === 47 /* CharCode.Slash */) && !(/^[a-zA-Z]:(\\/$|\\\\$)/.test(resource.fsPath)); // ignore the slash at offset 0\n        }\n    }\n    removeTrailingPathSeparator(resource, sep = paths.sep) {\n        // Make sure that the path isn't a drive letter. A trailing separator there is not removable.\n        if (hasTrailingPathSeparator(resource, sep)) {\n            return resource.with({ path: resource.path.substr(0, resource.path.length - 1) });\n        }\n        return resource;\n    }\n    addTrailingPathSeparator(resource, sep = paths.sep) {\n        let isRootSep = false;\n        if (resource.scheme === Schemas.file) {\n            const fsp = originalFSPath(resource);\n            isRootSep = ((fsp !== undefined) && (fsp.length === extpath.getRoot(fsp).length) && (fsp[fsp.length - 1] === sep));\n        }\n        else {\n            sep = '/';\n            const p = resource.path;\n            isRootSep = p.length === 1 && p.charCodeAt(p.length - 1) === 47 /* CharCode.Slash */;\n        }\n        if (!isRootSep && !hasTrailingPathSeparator(resource, sep)) {\n            return resource.with({ path: resource.path + '/' });\n        }\n        return resource;\n    }\n}\n/**\n * Unbiased utility that takes uris \"as they are\". This means it can be interchanged with\n * uri#toString() usages. The following is true\n * ```\n * assertEqual(aUri.toString() === bUri.toString(), exturi.isEqual(aUri, bUri))\n * ```\n */\nexport const extUri = new ExtUri(() => false);\n/**\n * BIASED utility that _mostly_ ignored the case of urs paths. ONLY use this util if you\n * understand what you are doing.\n *\n * This utility is INCOMPATIBLE with `uri.toString()`-usages and both CANNOT be used interchanged.\n *\n * When dealing with uris from files or documents, `extUri` (the unbiased friend)is sufficient\n * because those uris come from a \"trustworthy source\". When creating unknown uris it's always\n * better to use `IUriIdentityService` which exposes an `IExtUri`-instance which knows when path\n * casing matters.\n */\nexport const extUriBiasedIgnorePathCase = new ExtUri(uri => {\n    // A file scheme resource is in the same platform as code, so ignore case for non linux platforms\n    // Resource can be from another platform. Lowering the case as an hack. Should come from File system provider\n    return uri.scheme === Schemas.file ? !isLinux : true;\n});\n/**\n * BIASED utility that always ignores the casing of uris paths. ONLY use this util if you\n * understand what you are doing.\n *\n * This utility is INCOMPATIBLE with `uri.toString()`-usages and both CANNOT be used interchanged.\n *\n * When dealing with uris from files or documents, `extUri` (the unbiased friend)is sufficient\n * because those uris come from a \"trustworthy source\". When creating unknown uris it's always\n * better to use `IUriIdentityService` which exposes an `IExtUri`-instance which knows when path\n * casing matters.\n */\nexport const extUriIgnorePathCase = new ExtUri(_ => true);\nexport const isEqual = extUri.isEqual.bind(extUri);\nexport const isEqualOrParent = extUri.isEqualOrParent.bind(extUri);\nexport const getComparisonKey = extUri.getComparisonKey.bind(extUri);\nexport const basenameOrAuthority = extUri.basenameOrAuthority.bind(extUri);\nexport const basename = extUri.basename.bind(extUri);\nexport const extname = extUri.extname.bind(extUri);\nexport const dirname = extUri.dirname.bind(extUri);\nexport const joinPath = extUri.joinPath.bind(extUri);\nexport const normalizePath = extUri.normalizePath.bind(extUri);\nexport const relativePath = extUri.relativePath.bind(extUri);\nexport const resolvePath = extUri.resolvePath.bind(extUri);\nexport const isAbsolutePath = extUri.isAbsolutePath.bind(extUri);\nexport const isEqualAuthority = extUri.isEqualAuthority.bind(extUri);\nexport const hasTrailingPathSeparator = extUri.hasTrailingPathSeparator.bind(extUri);\nexport const removeTrailingPathSeparator = extUri.removeTrailingPathSeparator.bind(extUri);\nexport const addTrailingPathSeparator = extUri.addTrailingPathSeparator.bind(extUri);\n/**\n * Data URI related helpers.\n */\nexport var DataUri;\n(function (DataUri) {\n    DataUri.META_DATA_LABEL = 'label';\n    DataUri.META_DATA_DESCRIPTION = 'description';\n    DataUri.META_DATA_SIZE = 'size';\n    DataUri.META_DATA_MIME = 'mime';\n    function parseMetaData(dataUri) {\n        const metadata = new Map();\n        // Given a URI of:  data:image/png;size:2313;label:SomeLabel;description:SomeDescription;base64,77+9UE5...\n        // the metadata is: size:2313;label:SomeLabel;description:SomeDescription\n        const meta = dataUri.path.substring(dataUri.path.indexOf(';') + 1, dataUri.path.lastIndexOf(';'));\n        meta.split(';').forEach(property => {\n            const [key, value] = property.split(':');\n            if (key && value) {\n                metadata.set(key, value);\n            }\n        });\n        // Given a URI of:  data:image/png;size:2313;label:SomeLabel;description:SomeDescription;base64,77+9UE5...\n        // the mime is: image/png\n        const mime = dataUri.path.substring(0, dataUri.path.indexOf(';'));\n        if (mime) {\n            metadata.set(DataUri.META_DATA_MIME, mime);\n        }\n        return metadata;\n    }\n    DataUri.parseMetaData = parseMetaData;\n})(DataUri || (DataUri = {}));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/scrollable.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from './event.js';\nimport { Disposable } from './lifecycle.js';\nexport class ScrollState {\n    constructor(_forceIntegerValues, width, scrollWidth, scrollLeft, height, scrollHeight, scrollTop) {\n        this._forceIntegerValues = _forceIntegerValues;\n        this._scrollStateBrand = undefined;\n        if (this._forceIntegerValues) {\n            width = width | 0;\n            scrollWidth = scrollWidth | 0;\n            scrollLeft = scrollLeft | 0;\n            height = height | 0;\n            scrollHeight = scrollHeight | 0;\n            scrollTop = scrollTop | 0;\n        }\n        this.rawScrollLeft = scrollLeft; // before validation\n        this.rawScrollTop = scrollTop; // before validation\n        if (width < 0) {\n            width = 0;\n        }\n        if (scrollLeft + width > scrollWidth) {\n            scrollLeft = scrollWidth - width;\n        }\n        if (scrollLeft < 0) {\n            scrollLeft = 0;\n        }\n        if (height < 0) {\n            height = 0;\n        }\n        if (scrollTop + height > scrollHeight) {\n            scrollTop = scrollHeight - height;\n        }\n        if (scrollTop < 0) {\n            scrollTop = 0;\n        }\n        this.width = width;\n        this.scrollWidth = scrollWidth;\n        this.scrollLeft = scrollLeft;\n        this.height = height;\n        this.scrollHeight = scrollHeight;\n        this.scrollTop = scrollTop;\n    }\n    equals(other) {\n        return (this.rawScrollLeft === other.rawScrollLeft\n            && this.rawScrollTop === other.rawScrollTop\n            && this.width === other.width\n            && this.scrollWidth === other.scrollWidth\n            && this.scrollLeft === other.scrollLeft\n            && this.height === other.height\n            && this.scrollHeight === other.scrollHeight\n            && this.scrollTop === other.scrollTop);\n    }\n    withScrollDimensions(update, useRawScrollPositions) {\n        return new ScrollState(this._forceIntegerValues, (typeof update.width !== 'undefined' ? update.width : this.width), (typeof update.scrollWidth !== 'undefined' ? update.scrollWidth : this.scrollWidth), useRawScrollPositions ? this.rawScrollLeft : this.scrollLeft, (typeof update.height !== 'undefined' ? update.height : this.height), (typeof update.scrollHeight !== 'undefined' ? update.scrollHeight : this.scrollHeight), useRawScrollPositions ? this.rawScrollTop : this.scrollTop);\n    }\n    withScrollPosition(update) {\n        return new ScrollState(this._forceIntegerValues, this.width, this.scrollWidth, (typeof update.scrollLeft !== 'undefined' ? update.scrollLeft : this.rawScrollLeft), this.height, this.scrollHeight, (typeof update.scrollTop !== 'undefined' ? update.scrollTop : this.rawScrollTop));\n    }\n    createScrollEvent(previous, inSmoothScrolling) {\n        const widthChanged = (this.width !== previous.width);\n        const scrollWidthChanged = (this.scrollWidth !== previous.scrollWidth);\n        const scrollLeftChanged = (this.scrollLeft !== previous.scrollLeft);\n        const heightChanged = (this.height !== previous.height);\n        const scrollHeightChanged = (this.scrollHeight !== previous.scrollHeight);\n        const scrollTopChanged = (this.scrollTop !== previous.scrollTop);\n        return {\n            inSmoothScrolling: inSmoothScrolling,\n            oldWidth: previous.width,\n            oldScrollWidth: previous.scrollWidth,\n            oldScrollLeft: previous.scrollLeft,\n            width: this.width,\n            scrollWidth: this.scrollWidth,\n            scrollLeft: this.scrollLeft,\n            oldHeight: previous.height,\n            oldScrollHeight: previous.scrollHeight,\n            oldScrollTop: previous.scrollTop,\n            height: this.height,\n            scrollHeight: this.scrollHeight,\n            scrollTop: this.scrollTop,\n            widthChanged: widthChanged,\n            scrollWidthChanged: scrollWidthChanged,\n            scrollLeftChanged: scrollLeftChanged,\n            heightChanged: heightChanged,\n            scrollHeightChanged: scrollHeightChanged,\n            scrollTopChanged: scrollTopChanged,\n        };\n    }\n}\nexport class Scrollable extends Disposable {\n    constructor(options) {\n        super();\n        this._scrollableBrand = undefined;\n        this._onScroll = this._register(new Emitter());\n        this.onScroll = this._onScroll.event;\n        this._smoothScrollDuration = options.smoothScrollDuration;\n        this._scheduleAtNextAnimationFrame = options.scheduleAtNextAnimationFrame;\n        this._state = new ScrollState(options.forceIntegerValues, 0, 0, 0, 0, 0, 0);\n        this._smoothScrolling = null;\n    }\n    dispose() {\n        if (this._smoothScrolling) {\n            this._smoothScrolling.dispose();\n            this._smoothScrolling = null;\n        }\n        super.dispose();\n    }\n    setSmoothScrollDuration(smoothScrollDuration) {\n        this._smoothScrollDuration = smoothScrollDuration;\n    }\n    validateScrollPosition(scrollPosition) {\n        return this._state.withScrollPosition(scrollPosition);\n    }\n    getScrollDimensions() {\n        return this._state;\n    }\n    setScrollDimensions(dimensions, useRawScrollPositions) {\n        var _a;\n        const newState = this._state.withScrollDimensions(dimensions, useRawScrollPositions);\n        this._setState(newState, Boolean(this._smoothScrolling));\n        // Validate outstanding animated scroll position target\n        (_a = this._smoothScrolling) === null || _a === void 0 ? void 0 : _a.acceptScrollDimensions(this._state);\n    }\n    /**\n     * Returns the final scroll position that the instance will have once the smooth scroll animation concludes.\n     * If no scroll animation is occurring, it will return the current scroll position instead.\n     */\n    getFutureScrollPosition() {\n        if (this._smoothScrolling) {\n            return this._smoothScrolling.to;\n        }\n        return this._state;\n    }\n    /**\n     * Returns the current scroll position.\n     * Note: This result might be an intermediate scroll position, as there might be an ongoing smooth scroll animation.\n     */\n    getCurrentScrollPosition() {\n        return this._state;\n    }\n    setScrollPositionNow(update) {\n        // no smooth scrolling requested\n        const newState = this._state.withScrollPosition(update);\n        // Terminate any outstanding smooth scrolling\n        if (this._smoothScrolling) {\n            this._smoothScrolling.dispose();\n            this._smoothScrolling = null;\n        }\n        this._setState(newState, false);\n    }\n    setScrollPositionSmooth(update, reuseAnimation) {\n        if (this._smoothScrollDuration === 0) {\n            // Smooth scrolling not supported.\n            return this.setScrollPositionNow(update);\n        }\n        if (this._smoothScrolling) {\n            // Combine our pending scrollLeft/scrollTop with incoming scrollLeft/scrollTop\n            update = {\n                scrollLeft: (typeof update.scrollLeft === 'undefined' ? this._smoothScrolling.to.scrollLeft : update.scrollLeft),\n                scrollTop: (typeof update.scrollTop === 'undefined' ? this._smoothScrolling.to.scrollTop : update.scrollTop)\n            };\n            // Validate `update`\n            const validTarget = this._state.withScrollPosition(update);\n            if (this._smoothScrolling.to.scrollLeft === validTarget.scrollLeft && this._smoothScrolling.to.scrollTop === validTarget.scrollTop) {\n                // No need to interrupt or extend the current animation since we're going to the same place\n                return;\n            }\n            let newSmoothScrolling;\n            if (reuseAnimation) {\n                newSmoothScrolling = new SmoothScrollingOperation(this._smoothScrolling.from, validTarget, this._smoothScrolling.startTime, this._smoothScrolling.duration);\n            }\n            else {\n                newSmoothScrolling = this._smoothScrolling.combine(this._state, validTarget, this._smoothScrollDuration);\n            }\n            this._smoothScrolling.dispose();\n            this._smoothScrolling = newSmoothScrolling;\n        }\n        else {\n            // Validate `update`\n            const validTarget = this._state.withScrollPosition(update);\n            this._smoothScrolling = SmoothScrollingOperation.start(this._state, validTarget, this._smoothScrollDuration);\n        }\n        // Begin smooth scrolling animation\n        this._smoothScrolling.animationFrameDisposable = this._scheduleAtNextAnimationFrame(() => {\n            if (!this._smoothScrolling) {\n                return;\n            }\n            this._smoothScrolling.animationFrameDisposable = null;\n            this._performSmoothScrolling();\n        });\n    }\n    hasPendingScrollAnimation() {\n        return Boolean(this._smoothScrolling);\n    }\n    _performSmoothScrolling() {\n        if (!this._smoothScrolling) {\n            return;\n        }\n        const update = this._smoothScrolling.tick();\n        const newState = this._state.withScrollPosition(update);\n        this._setState(newState, true);\n        if (!this._smoothScrolling) {\n            // Looks like someone canceled the smooth scrolling\n            // from the scroll event handler\n            return;\n        }\n        if (update.isDone) {\n            this._smoothScrolling.dispose();\n            this._smoothScrolling = null;\n            return;\n        }\n        // Continue smooth scrolling animation\n        this._smoothScrolling.animationFrameDisposable = this._scheduleAtNextAnimationFrame(() => {\n            if (!this._smoothScrolling) {\n                return;\n            }\n            this._smoothScrolling.animationFrameDisposable = null;\n            this._performSmoothScrolling();\n        });\n    }\n    _setState(newState, inSmoothScrolling) {\n        const oldState = this._state;\n        if (oldState.equals(newState)) {\n            // no change\n            return;\n        }\n        this._state = newState;\n        this._onScroll.fire(this._state.createScrollEvent(oldState, inSmoothScrolling));\n    }\n}\nexport class SmoothScrollingUpdate {\n    constructor(scrollLeft, scrollTop, isDone) {\n        this.scrollLeft = scrollLeft;\n        this.scrollTop = scrollTop;\n        this.isDone = isDone;\n    }\n}\nfunction createEaseOutCubic(from, to) {\n    const delta = to - from;\n    return function (completion) {\n        return from + delta * easeOutCubic(completion);\n    };\n}\nfunction createComposed(a, b, cut) {\n    return function (completion) {\n        if (completion < cut) {\n            return a(completion / cut);\n        }\n        return b((completion - cut) / (1 - cut));\n    };\n}\nexport class SmoothScrollingOperation {\n    constructor(from, to, startTime, duration) {\n        this.from = from;\n        this.to = to;\n        this.duration = duration;\n        this.startTime = startTime;\n        this.animationFrameDisposable = null;\n        this._initAnimations();\n    }\n    _initAnimations() {\n        this.scrollLeft = this._initAnimation(this.from.scrollLeft, this.to.scrollLeft, this.to.width);\n        this.scrollTop = this._initAnimation(this.from.scrollTop, this.to.scrollTop, this.to.height);\n    }\n    _initAnimation(from, to, viewportSize) {\n        const delta = Math.abs(from - to);\n        if (delta > 2.5 * viewportSize) {\n            let stop1, stop2;\n            if (from < to) {\n                // scroll to 75% of the viewportSize\n                stop1 = from + 0.75 * viewportSize;\n                stop2 = to - 0.75 * viewportSize;\n            }\n            else {\n                stop1 = from - 0.75 * viewportSize;\n                stop2 = to + 0.75 * viewportSize;\n            }\n            return createComposed(createEaseOutCubic(from, stop1), createEaseOutCubic(stop2, to), 0.33);\n        }\n        return createEaseOutCubic(from, to);\n    }\n    dispose() {\n        if (this.animationFrameDisposable !== null) {\n            this.animationFrameDisposable.dispose();\n            this.animationFrameDisposable = null;\n        }\n    }\n    acceptScrollDimensions(state) {\n        this.to = state.withScrollPosition(this.to);\n        this._initAnimations();\n    }\n    tick() {\n        return this._tick(Date.now());\n    }\n    _tick(now) {\n        const completion = (now - this.startTime) / this.duration;\n        if (completion < 1) {\n            const newScrollLeft = this.scrollLeft(completion);\n            const newScrollTop = this.scrollTop(completion);\n            return new SmoothScrollingUpdate(newScrollLeft, newScrollTop, false);\n        }\n        return new SmoothScrollingUpdate(this.to.scrollLeft, this.to.scrollTop, true);\n    }\n    combine(from, to, duration) {\n        return SmoothScrollingOperation.start(from, to, duration);\n    }\n    static start(from, to, duration) {\n        // +10 / -10 : pretend the animation already started for a quicker response to a scroll request\n        duration = duration + 10;\n        const startTime = Date.now() - 10;\n        return new SmoothScrollingOperation(from, to, startTime, duration);\n    }\n}\nfunction easeInCubic(t) {\n    return Math.pow(t, 3);\n}\nfunction easeOutCubic(t) {\n    return 1 - easeInCubic(1 - t);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/search.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from './strings.js';\nexport function buildReplaceStringWithCasePreserved(matches, pattern) {\n    if (matches && (matches[0] !== '')) {\n        const containsHyphens = validateSpecificSpecialCharacter(matches, pattern, '-');\n        const containsUnderscores = validateSpecificSpecialCharacter(matches, pattern, '_');\n        if (containsHyphens && !containsUnderscores) {\n            return buildReplaceStringForSpecificSpecialCharacter(matches, pattern, '-');\n        }\n        else if (!containsHyphens && containsUnderscores) {\n            return buildReplaceStringForSpecificSpecialCharacter(matches, pattern, '_');\n        }\n        if (matches[0].toUpperCase() === matches[0]) {\n            return pattern.toUpperCase();\n        }\n        else if (matches[0].toLowerCase() === matches[0]) {\n            return pattern.toLowerCase();\n        }\n        else if (strings.containsUppercaseCharacter(matches[0][0]) && pattern.length > 0) {\n            return pattern[0].toUpperCase() + pattern.substr(1);\n        }\n        else if (matches[0][0].toUpperCase() !== matches[0][0] && pattern.length > 0) {\n            return pattern[0].toLowerCase() + pattern.substr(1);\n        }\n        else {\n            // we don't understand its pattern yet.\n            return pattern;\n        }\n    }\n    else {\n        return pattern;\n    }\n}\nfunction validateSpecificSpecialCharacter(matches, pattern, specialCharacter) {\n    const doesContainSpecialCharacter = matches[0].indexOf(specialCharacter) !== -1 && pattern.indexOf(specialCharacter) !== -1;\n    return doesContainSpecialCharacter && matches[0].split(specialCharacter).length === pattern.split(specialCharacter).length;\n}\nfunction buildReplaceStringForSpecificSpecialCharacter(matches, pattern, specialCharacter) {\n    const splitPatternAtSpecialCharacter = pattern.split(specialCharacter);\n    const splitMatchAtSpecialCharacter = matches[0].split(specialCharacter);\n    let replaceString = '';\n    splitPatternAtSpecialCharacter.forEach((splitValue, index) => {\n        replaceString += buildReplaceStringWithCasePreserved([splitMatchAtSpecialCharacter[index]], splitValue) + specialCharacter;\n    });\n    return replaceString.slice(0, -1);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/sequence.js",
    "content": "export {};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/severity.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from './strings.js';\nvar Severity;\n(function (Severity) {\n    Severity[Severity[\"Ignore\"] = 0] = \"Ignore\";\n    Severity[Severity[\"Info\"] = 1] = \"Info\";\n    Severity[Severity[\"Warning\"] = 2] = \"Warning\";\n    Severity[Severity[\"Error\"] = 3] = \"Error\";\n})(Severity || (Severity = {}));\n(function (Severity) {\n    const _error = 'error';\n    const _warning = 'warning';\n    const _warn = 'warn';\n    const _info = 'info';\n    const _ignore = 'ignore';\n    /**\n     * Parses 'error', 'warning', 'warn', 'info' in call casings\n     * and falls back to ignore.\n     */\n    function fromValue(value) {\n        if (!value) {\n            return Severity.Ignore;\n        }\n        if (strings.equalsIgnoreCase(_error, value)) {\n            return Severity.Error;\n        }\n        if (strings.equalsIgnoreCase(_warning, value) || strings.equalsIgnoreCase(_warn, value)) {\n            return Severity.Warning;\n        }\n        if (strings.equalsIgnoreCase(_info, value)) {\n            return Severity.Info;\n        }\n        return Severity.Ignore;\n    }\n    Severity.fromValue = fromValue;\n    function toString(severity) {\n        switch (severity) {\n            case Severity.Error: return _error;\n            case Severity.Warning: return _warning;\n            case Severity.Info: return _info;\n            default: return _ignore;\n        }\n    }\n    Severity.toString = toString;\n})(Severity || (Severity = {}));\nexport default Severity;\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/stopwatch.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nconst hasPerformanceNow = (globalThis.performance && typeof globalThis.performance.now === 'function');\nexport class StopWatch {\n    static create(highResolution) {\n        return new StopWatch(highResolution);\n    }\n    constructor(highResolution) {\n        this._now = hasPerformanceNow && highResolution === false ? Date.now : globalThis.performance.now.bind(globalThis.performance);\n        this._startTime = this._now();\n        this._stopTime = -1;\n    }\n    stop() {\n        this._stopTime = this._now();\n    }\n    reset() {\n        this._startTime = this._now();\n        this._stopTime = -1;\n    }\n    elapsed() {\n        if (this._stopTime !== -1) {\n            return this._stopTime - this._startTime;\n        }\n        return this._now() - this._startTime;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/strings.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar _a;\nimport { LRUCachedFunction } from './cache.js';\nimport { Lazy } from './lazy.js';\nexport function isFalsyOrWhitespace(str) {\n    if (!str || typeof str !== 'string') {\n        return true;\n    }\n    return str.trim().length === 0;\n}\nconst _formatRegexp = /{(\\d+)}/g;\n/**\n * Helper to produce a string with a variable number of arguments. Insert variable segments\n * into the string using the {n} notation where N is the index of the argument following the string.\n * @param value string to which formatting is applied\n * @param args replacements for {n}-entries\n */\nexport function format(value, ...args) {\n    if (args.length === 0) {\n        return value;\n    }\n    return value.replace(_formatRegexp, function (match, group) {\n        const idx = parseInt(group, 10);\n        return isNaN(idx) || idx < 0 || idx >= args.length ?\n            match :\n            args[idx];\n    });\n}\n/**\n * Encodes the given value so that it can be used as literal value in html attributes.\n *\n * In other words, computes `$val`, such that `attr` in `<div attr=\"$val\" />` has the runtime value `value`.\n * This prevents XSS injection.\n */\nexport function htmlAttributeEncodeValue(value) {\n    return value.replace(/[<>\"'&]/g, ch => {\n        switch (ch) {\n            case '<': return '&lt;';\n            case '>': return '&gt;';\n            case '\"': return '&quot;';\n            case '\\'': return '&apos;';\n            case '&': return '&amp;';\n        }\n        return ch;\n    });\n}\n/**\n * Converts HTML characters inside the string to use entities instead. Makes the string safe from\n * being used e.g. in HTMLElement.innerHTML.\n */\nexport function escape(html) {\n    return html.replace(/[<>&]/g, function (match) {\n        switch (match) {\n            case '<': return '&lt;';\n            case '>': return '&gt;';\n            case '&': return '&amp;';\n            default: return match;\n        }\n    });\n}\n/**\n * Escapes regular expression characters in a given string\n */\nexport function escapeRegExpCharacters(value) {\n    return value.replace(/[\\\\\\{\\}\\*\\+\\?\\|\\^\\$\\.\\[\\]\\(\\)]/g, '\\\\$&');\n}\n/**\n * Removes all occurrences of needle from the beginning and end of haystack.\n * @param haystack string to trim\n * @param needle the thing to trim (default is a blank)\n */\nexport function trim(haystack, needle = ' ') {\n    const trimmed = ltrim(haystack, needle);\n    return rtrim(trimmed, needle);\n}\n/**\n * Removes all occurrences of needle from the beginning of haystack.\n * @param haystack string to trim\n * @param needle the thing to trim\n */\nexport function ltrim(haystack, needle) {\n    if (!haystack || !needle) {\n        return haystack;\n    }\n    const needleLen = needle.length;\n    if (needleLen === 0 || haystack.length === 0) {\n        return haystack;\n    }\n    let offset = 0;\n    while (haystack.indexOf(needle, offset) === offset) {\n        offset = offset + needleLen;\n    }\n    return haystack.substring(offset);\n}\n/**\n * Removes all occurrences of needle from the end of haystack.\n * @param haystack string to trim\n * @param needle the thing to trim\n */\nexport function rtrim(haystack, needle) {\n    if (!haystack || !needle) {\n        return haystack;\n    }\n    const needleLen = needle.length, haystackLen = haystack.length;\n    if (needleLen === 0 || haystackLen === 0) {\n        return haystack;\n    }\n    let offset = haystackLen, idx = -1;\n    while (true) {\n        idx = haystack.lastIndexOf(needle, offset - 1);\n        if (idx === -1 || idx + needleLen !== offset) {\n            break;\n        }\n        if (idx === 0) {\n            return '';\n        }\n        offset = idx;\n    }\n    return haystack.substring(0, offset);\n}\nexport function convertSimple2RegExpPattern(pattern) {\n    return pattern.replace(/[\\-\\\\\\{\\}\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g, '\\\\$&').replace(/[\\*]/g, '.*');\n}\nexport function stripWildcards(pattern) {\n    return pattern.replace(/\\*/g, '');\n}\nexport function createRegExp(searchString, isRegex, options = {}) {\n    if (!searchString) {\n        throw new Error('Cannot create regex from empty string');\n    }\n    if (!isRegex) {\n        searchString = escapeRegExpCharacters(searchString);\n    }\n    if (options.wholeWord) {\n        if (!/\\B/.test(searchString.charAt(0))) {\n            searchString = '\\\\b' + searchString;\n        }\n        if (!/\\B/.test(searchString.charAt(searchString.length - 1))) {\n            searchString = searchString + '\\\\b';\n        }\n    }\n    let modifiers = '';\n    if (options.global) {\n        modifiers += 'g';\n    }\n    if (!options.matchCase) {\n        modifiers += 'i';\n    }\n    if (options.multiline) {\n        modifiers += 'm';\n    }\n    if (options.unicode) {\n        modifiers += 'u';\n    }\n    return new RegExp(searchString, modifiers);\n}\nexport function regExpLeadsToEndlessLoop(regexp) {\n    // Exit early if it's one of these special cases which are meant to match\n    // against an empty string\n    if (regexp.source === '^' || regexp.source === '^$' || regexp.source === '$' || regexp.source === '^\\\\s*$') {\n        return false;\n    }\n    // We check against an empty string. If the regular expression doesn't advance\n    // (e.g. ends in an endless loop) it will match an empty string.\n    const match = regexp.exec('');\n    return !!(match && regexp.lastIndex === 0);\n}\nexport function splitLines(str) {\n    return str.split(/\\r\\n|\\r|\\n/);\n}\nexport function splitLinesIncludeSeparators(str) {\n    var _b;\n    const linesWithSeparators = [];\n    const splitLinesAndSeparators = str.split(/(\\r\\n|\\r|\\n)/);\n    for (let i = 0; i < Math.ceil(splitLinesAndSeparators.length / 2); i++) {\n        linesWithSeparators.push(splitLinesAndSeparators[2 * i] + ((_b = splitLinesAndSeparators[2 * i + 1]) !== null && _b !== void 0 ? _b : ''));\n    }\n    return linesWithSeparators;\n}\n/**\n * Returns first index of the string that is not whitespace.\n * If string is empty or contains only whitespaces, returns -1\n */\nexport function firstNonWhitespaceIndex(str) {\n    for (let i = 0, len = str.length; i < len; i++) {\n        const chCode = str.charCodeAt(i);\n        if (chCode !== 32 /* CharCode.Space */ && chCode !== 9 /* CharCode.Tab */) {\n            return i;\n        }\n    }\n    return -1;\n}\n/**\n * Returns the leading whitespace of the string.\n * If the string contains only whitespaces, returns entire string\n */\nexport function getLeadingWhitespace(str, start = 0, end = str.length) {\n    for (let i = start; i < end; i++) {\n        const chCode = str.charCodeAt(i);\n        if (chCode !== 32 /* CharCode.Space */ && chCode !== 9 /* CharCode.Tab */) {\n            return str.substring(start, i);\n        }\n    }\n    return str.substring(start, end);\n}\n/**\n * Returns last index of the string that is not whitespace.\n * If string is empty or contains only whitespaces, returns -1\n */\nexport function lastNonWhitespaceIndex(str, startIndex = str.length - 1) {\n    for (let i = startIndex; i >= 0; i--) {\n        const chCode = str.charCodeAt(i);\n        if (chCode !== 32 /* CharCode.Space */ && chCode !== 9 /* CharCode.Tab */) {\n            return i;\n        }\n    }\n    return -1;\n}\nexport function compare(a, b) {\n    if (a < b) {\n        return -1;\n    }\n    else if (a > b) {\n        return 1;\n    }\n    else {\n        return 0;\n    }\n}\nexport function compareSubstring(a, b, aStart = 0, aEnd = a.length, bStart = 0, bEnd = b.length) {\n    for (; aStart < aEnd && bStart < bEnd; aStart++, bStart++) {\n        const codeA = a.charCodeAt(aStart);\n        const codeB = b.charCodeAt(bStart);\n        if (codeA < codeB) {\n            return -1;\n        }\n        else if (codeA > codeB) {\n            return 1;\n        }\n    }\n    const aLen = aEnd - aStart;\n    const bLen = bEnd - bStart;\n    if (aLen < bLen) {\n        return -1;\n    }\n    else if (aLen > bLen) {\n        return 1;\n    }\n    return 0;\n}\nexport function compareIgnoreCase(a, b) {\n    return compareSubstringIgnoreCase(a, b, 0, a.length, 0, b.length);\n}\nexport function compareSubstringIgnoreCase(a, b, aStart = 0, aEnd = a.length, bStart = 0, bEnd = b.length) {\n    for (; aStart < aEnd && bStart < bEnd; aStart++, bStart++) {\n        let codeA = a.charCodeAt(aStart);\n        let codeB = b.charCodeAt(bStart);\n        if (codeA === codeB) {\n            // equal\n            continue;\n        }\n        if (codeA >= 128 || codeB >= 128) {\n            // not ASCII letters -> fallback to lower-casing strings\n            return compareSubstring(a.toLowerCase(), b.toLowerCase(), aStart, aEnd, bStart, bEnd);\n        }\n        // mapper lower-case ascii letter onto upper-case varinats\n        // [97-122] (lower ascii) --> [65-90] (upper ascii)\n        if (isLowerAsciiLetter(codeA)) {\n            codeA -= 32;\n        }\n        if (isLowerAsciiLetter(codeB)) {\n            codeB -= 32;\n        }\n        // compare both code points\n        const diff = codeA - codeB;\n        if (diff === 0) {\n            continue;\n        }\n        return diff;\n    }\n    const aLen = aEnd - aStart;\n    const bLen = bEnd - bStart;\n    if (aLen < bLen) {\n        return -1;\n    }\n    else if (aLen > bLen) {\n        return 1;\n    }\n    return 0;\n}\nexport function isAsciiDigit(code) {\n    return code >= 48 /* CharCode.Digit0 */ && code <= 57 /* CharCode.Digit9 */;\n}\nexport function isLowerAsciiLetter(code) {\n    return code >= 97 /* CharCode.a */ && code <= 122 /* CharCode.z */;\n}\nexport function isUpperAsciiLetter(code) {\n    return code >= 65 /* CharCode.A */ && code <= 90 /* CharCode.Z */;\n}\nexport function equalsIgnoreCase(a, b) {\n    return a.length === b.length && compareSubstringIgnoreCase(a, b) === 0;\n}\nexport function startsWithIgnoreCase(str, candidate) {\n    const candidateLength = candidate.length;\n    if (candidate.length > str.length) {\n        return false;\n    }\n    return compareSubstringIgnoreCase(str, candidate, 0, candidateLength) === 0;\n}\n/**\n * @returns the length of the common prefix of the two strings.\n */\nexport function commonPrefixLength(a, b) {\n    const len = Math.min(a.length, b.length);\n    let i;\n    for (i = 0; i < len; i++) {\n        if (a.charCodeAt(i) !== b.charCodeAt(i)) {\n            return i;\n        }\n    }\n    return len;\n}\n/**\n * @returns the length of the common suffix of the two strings.\n */\nexport function commonSuffixLength(a, b) {\n    const len = Math.min(a.length, b.length);\n    let i;\n    const aLastIndex = a.length - 1;\n    const bLastIndex = b.length - 1;\n    for (i = 0; i < len; i++) {\n        if (a.charCodeAt(aLastIndex - i) !== b.charCodeAt(bLastIndex - i)) {\n            return i;\n        }\n    }\n    return len;\n}\n/**\n * See http://en.wikipedia.org/wiki/Surrogate_pair\n */\nexport function isHighSurrogate(charCode) {\n    return (0xD800 <= charCode && charCode <= 0xDBFF);\n}\n/**\n * See http://en.wikipedia.org/wiki/Surrogate_pair\n */\nexport function isLowSurrogate(charCode) {\n    return (0xDC00 <= charCode && charCode <= 0xDFFF);\n}\n/**\n * See http://en.wikipedia.org/wiki/Surrogate_pair\n */\nexport function computeCodePoint(highSurrogate, lowSurrogate) {\n    return ((highSurrogate - 0xD800) << 10) + (lowSurrogate - 0xDC00) + 0x10000;\n}\n/**\n * get the code point that begins at offset `offset`\n */\nexport function getNextCodePoint(str, len, offset) {\n    const charCode = str.charCodeAt(offset);\n    if (isHighSurrogate(charCode) && offset + 1 < len) {\n        const nextCharCode = str.charCodeAt(offset + 1);\n        if (isLowSurrogate(nextCharCode)) {\n            return computeCodePoint(charCode, nextCharCode);\n        }\n    }\n    return charCode;\n}\n/**\n * get the code point that ends right before offset `offset`\n */\nfunction getPrevCodePoint(str, offset) {\n    const charCode = str.charCodeAt(offset - 1);\n    if (isLowSurrogate(charCode) && offset > 1) {\n        const prevCharCode = str.charCodeAt(offset - 2);\n        if (isHighSurrogate(prevCharCode)) {\n            return computeCodePoint(prevCharCode, charCode);\n        }\n    }\n    return charCode;\n}\nexport class CodePointIterator {\n    get offset() {\n        return this._offset;\n    }\n    constructor(str, offset = 0) {\n        this._str = str;\n        this._len = str.length;\n        this._offset = offset;\n    }\n    setOffset(offset) {\n        this._offset = offset;\n    }\n    prevCodePoint() {\n        const codePoint = getPrevCodePoint(this._str, this._offset);\n        this._offset -= (codePoint >= 65536 /* Constants.UNICODE_SUPPLEMENTARY_PLANE_BEGIN */ ? 2 : 1);\n        return codePoint;\n    }\n    nextCodePoint() {\n        const codePoint = getNextCodePoint(this._str, this._len, this._offset);\n        this._offset += (codePoint >= 65536 /* Constants.UNICODE_SUPPLEMENTARY_PLANE_BEGIN */ ? 2 : 1);\n        return codePoint;\n    }\n    eol() {\n        return (this._offset >= this._len);\n    }\n}\nexport class GraphemeIterator {\n    get offset() {\n        return this._iterator.offset;\n    }\n    constructor(str, offset = 0) {\n        this._iterator = new CodePointIterator(str, offset);\n    }\n    nextGraphemeLength() {\n        const graphemeBreakTree = GraphemeBreakTree.getInstance();\n        const iterator = this._iterator;\n        const initialOffset = iterator.offset;\n        let graphemeBreakType = graphemeBreakTree.getGraphemeBreakType(iterator.nextCodePoint());\n        while (!iterator.eol()) {\n            const offset = iterator.offset;\n            const nextGraphemeBreakType = graphemeBreakTree.getGraphemeBreakType(iterator.nextCodePoint());\n            if (breakBetweenGraphemeBreakType(graphemeBreakType, nextGraphemeBreakType)) {\n                // move iterator back\n                iterator.setOffset(offset);\n                break;\n            }\n            graphemeBreakType = nextGraphemeBreakType;\n        }\n        return (iterator.offset - initialOffset);\n    }\n    prevGraphemeLength() {\n        const graphemeBreakTree = GraphemeBreakTree.getInstance();\n        const iterator = this._iterator;\n        const initialOffset = iterator.offset;\n        let graphemeBreakType = graphemeBreakTree.getGraphemeBreakType(iterator.prevCodePoint());\n        while (iterator.offset > 0) {\n            const offset = iterator.offset;\n            const prevGraphemeBreakType = graphemeBreakTree.getGraphemeBreakType(iterator.prevCodePoint());\n            if (breakBetweenGraphemeBreakType(prevGraphemeBreakType, graphemeBreakType)) {\n                // move iterator back\n                iterator.setOffset(offset);\n                break;\n            }\n            graphemeBreakType = prevGraphemeBreakType;\n        }\n        return (initialOffset - iterator.offset);\n    }\n    eol() {\n        return this._iterator.eol();\n    }\n}\nexport function nextCharLength(str, initialOffset) {\n    const iterator = new GraphemeIterator(str, initialOffset);\n    return iterator.nextGraphemeLength();\n}\nexport function prevCharLength(str, initialOffset) {\n    const iterator = new GraphemeIterator(str, initialOffset);\n    return iterator.prevGraphemeLength();\n}\nexport function getCharContainingOffset(str, offset) {\n    if (offset > 0 && isLowSurrogate(str.charCodeAt(offset))) {\n        offset--;\n    }\n    const endOffset = offset + nextCharLength(str, offset);\n    const startOffset = endOffset - prevCharLength(str, endOffset);\n    return [startOffset, endOffset];\n}\nlet CONTAINS_RTL = undefined;\nfunction makeContainsRtl() {\n    // Generated using https://github.com/alexdima/unicode-utils/blob/main/rtl-test.js\n    return /(?:[\\u05BE\\u05C0\\u05C3\\u05C6\\u05D0-\\u05F4\\u0608\\u060B\\u060D\\u061B-\\u064A\\u066D-\\u066F\\u0671-\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1-\\u07EA\\u07F4\\u07F5\\u07FA\\u07FE-\\u0815\\u081A\\u0824\\u0828\\u0830-\\u0858\\u085E-\\u088E\\u08A0-\\u08C9\\u200F\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFD3D\\uFD50-\\uFDC7\\uFDF0-\\uFDFC\\uFE70-\\uFEFC]|\\uD802[\\uDC00-\\uDD1B\\uDD20-\\uDE00\\uDE10-\\uDE35\\uDE40-\\uDEE4\\uDEEB-\\uDF35\\uDF40-\\uDFFF]|\\uD803[\\uDC00-\\uDD23\\uDE80-\\uDEA9\\uDEAD-\\uDF45\\uDF51-\\uDF81\\uDF86-\\uDFF6]|\\uD83A[\\uDC00-\\uDCCF\\uDD00-\\uDD43\\uDD4B-\\uDFFF]|\\uD83B[\\uDC00-\\uDEBB])/;\n}\n/**\n * Returns true if `str` contains any Unicode character that is classified as \"R\" or \"AL\".\n */\nexport function containsRTL(str) {\n    if (!CONTAINS_RTL) {\n        CONTAINS_RTL = makeContainsRtl();\n    }\n    return CONTAINS_RTL.test(str);\n}\nconst IS_BASIC_ASCII = /^[\\t\\n\\r\\x20-\\x7E]*$/;\n/**\n * Returns true if `str` contains only basic ASCII characters in the range 32 - 126 (including 32 and 126) or \\n, \\r, \\t\n */\nexport function isBasicASCII(str) {\n    return IS_BASIC_ASCII.test(str);\n}\nexport const UNUSUAL_LINE_TERMINATORS = /[\\u2028\\u2029]/; // LINE SEPARATOR (LS) or PARAGRAPH SEPARATOR (PS)\n/**\n * Returns true if `str` contains unusual line terminators, like LS or PS\n */\nexport function containsUnusualLineTerminators(str) {\n    return UNUSUAL_LINE_TERMINATORS.test(str);\n}\nexport function isFullWidthCharacter(charCode) {\n    // Do a cheap trick to better support wrapping of wide characters, treat them as 2 columns\n    // http://jrgraphix.net/research/unicode_blocks.php\n    //          2E80 - 2EFF   CJK Radicals Supplement\n    //          2F00 - 2FDF   Kangxi Radicals\n    //          2FF0 - 2FFF   Ideographic Description Characters\n    //          3000 - 303F   CJK Symbols and Punctuation\n    //          3040 - 309F   Hiragana\n    //          30A0 - 30FF   Katakana\n    //          3100 - 312F   Bopomofo\n    //          3130 - 318F   Hangul Compatibility Jamo\n    //          3190 - 319F   Kanbun\n    //          31A0 - 31BF   Bopomofo Extended\n    //          31F0 - 31FF   Katakana Phonetic Extensions\n    //          3200 - 32FF   Enclosed CJK Letters and Months\n    //          3300 - 33FF   CJK Compatibility\n    //          3400 - 4DBF   CJK Unified Ideographs Extension A\n    //          4DC0 - 4DFF   Yijing Hexagram Symbols\n    //          4E00 - 9FFF   CJK Unified Ideographs\n    //          A000 - A48F   Yi Syllables\n    //          A490 - A4CF   Yi Radicals\n    //          AC00 - D7AF   Hangul Syllables\n    // [IGNORE] D800 - DB7F   High Surrogates\n    // [IGNORE] DB80 - DBFF   High Private Use Surrogates\n    // [IGNORE] DC00 - DFFF   Low Surrogates\n    // [IGNORE] E000 - F8FF   Private Use Area\n    //          F900 - FAFF   CJK Compatibility Ideographs\n    // [IGNORE] FB00 - FB4F   Alphabetic Presentation Forms\n    // [IGNORE] FB50 - FDFF   Arabic Presentation Forms-A\n    // [IGNORE] FE00 - FE0F   Variation Selectors\n    // [IGNORE] FE20 - FE2F   Combining Half Marks\n    // [IGNORE] FE30 - FE4F   CJK Compatibility Forms\n    // [IGNORE] FE50 - FE6F   Small Form Variants\n    // [IGNORE] FE70 - FEFF   Arabic Presentation Forms-B\n    //          FF00 - FFEF   Halfwidth and Fullwidth Forms\n    //               [https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms]\n    //               of which FF01 - FF5E fullwidth ASCII of 21 to 7E\n    // [IGNORE]    and FF65 - FFDC halfwidth of Katakana and Hangul\n    // [IGNORE] FFF0 - FFFF   Specials\n    return ((charCode >= 0x2E80 && charCode <= 0xD7AF)\n        || (charCode >= 0xF900 && charCode <= 0xFAFF)\n        || (charCode >= 0xFF01 && charCode <= 0xFF5E));\n}\n/**\n * A fast function (therefore imprecise) to check if code points are emojis.\n * Generated using https://github.com/alexdima/unicode-utils/blob/main/emoji-test.js\n */\nexport function isEmojiImprecise(x) {\n    return ((x >= 0x1F1E6 && x <= 0x1F1FF) || (x === 8986) || (x === 8987) || (x === 9200)\n        || (x === 9203) || (x >= 9728 && x <= 10175) || (x === 11088) || (x === 11093)\n        || (x >= 127744 && x <= 128591) || (x >= 128640 && x <= 128764)\n        || (x >= 128992 && x <= 129008) || (x >= 129280 && x <= 129535)\n        || (x >= 129648 && x <= 129782));\n}\n// -- UTF-8 BOM\nexport const UTF8_BOM_CHARACTER = String.fromCharCode(65279 /* CharCode.UTF8_BOM */);\nexport function startsWithUTF8BOM(str) {\n    return !!(str && str.length > 0 && str.charCodeAt(0) === 65279 /* CharCode.UTF8_BOM */);\n}\nexport function containsUppercaseCharacter(target, ignoreEscapedChars = false) {\n    if (!target) {\n        return false;\n    }\n    if (ignoreEscapedChars) {\n        target = target.replace(/\\\\./g, '');\n    }\n    return target.toLowerCase() !== target;\n}\n/**\n * Produces 'a'-'z', followed by 'A'-'Z'... followed by 'a'-'z', etc.\n */\nexport function singleLetterHash(n) {\n    const LETTERS_CNT = (90 /* CharCode.Z */ - 65 /* CharCode.A */ + 1);\n    n = n % (2 * LETTERS_CNT);\n    if (n < LETTERS_CNT) {\n        return String.fromCharCode(97 /* CharCode.a */ + n);\n    }\n    return String.fromCharCode(65 /* CharCode.A */ + n - LETTERS_CNT);\n}\nfunction breakBetweenGraphemeBreakType(breakTypeA, breakTypeB) {\n    // http://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundary_Rules\n    // !!! Let's make the common case a bit faster\n    if (breakTypeA === 0 /* GraphemeBreakType.Other */) {\n        // see https://www.unicode.org/Public/13.0.0/ucd/auxiliary/GraphemeBreakTest-13.0.0d10.html#table\n        return (breakTypeB !== 5 /* GraphemeBreakType.Extend */ && breakTypeB !== 7 /* GraphemeBreakType.SpacingMark */);\n    }\n    // Do not break between a CR and LF. Otherwise, break before and after controls.\n    // GB3                                        CR × LF\n    // GB4                       (Control | CR | LF) ÷\n    // GB5                                           ÷ (Control | CR | LF)\n    if (breakTypeA === 2 /* GraphemeBreakType.CR */) {\n        if (breakTypeB === 3 /* GraphemeBreakType.LF */) {\n            return false; // GB3\n        }\n    }\n    if (breakTypeA === 4 /* GraphemeBreakType.Control */ || breakTypeA === 2 /* GraphemeBreakType.CR */ || breakTypeA === 3 /* GraphemeBreakType.LF */) {\n        return true; // GB4\n    }\n    if (breakTypeB === 4 /* GraphemeBreakType.Control */ || breakTypeB === 2 /* GraphemeBreakType.CR */ || breakTypeB === 3 /* GraphemeBreakType.LF */) {\n        return true; // GB5\n    }\n    // Do not break Hangul syllable sequences.\n    // GB6                                         L × (L | V | LV | LVT)\n    // GB7                                  (LV | V) × (V | T)\n    // GB8                                 (LVT | T) × T\n    if (breakTypeA === 8 /* GraphemeBreakType.L */) {\n        if (breakTypeB === 8 /* GraphemeBreakType.L */ || breakTypeB === 9 /* GraphemeBreakType.V */ || breakTypeB === 11 /* GraphemeBreakType.LV */ || breakTypeB === 12 /* GraphemeBreakType.LVT */) {\n            return false; // GB6\n        }\n    }\n    if (breakTypeA === 11 /* GraphemeBreakType.LV */ || breakTypeA === 9 /* GraphemeBreakType.V */) {\n        if (breakTypeB === 9 /* GraphemeBreakType.V */ || breakTypeB === 10 /* GraphemeBreakType.T */) {\n            return false; // GB7\n        }\n    }\n    if (breakTypeA === 12 /* GraphemeBreakType.LVT */ || breakTypeA === 10 /* GraphemeBreakType.T */) {\n        if (breakTypeB === 10 /* GraphemeBreakType.T */) {\n            return false; // GB8\n        }\n    }\n    // Do not break before extending characters or ZWJ.\n    // GB9                                           × (Extend | ZWJ)\n    if (breakTypeB === 5 /* GraphemeBreakType.Extend */ || breakTypeB === 13 /* GraphemeBreakType.ZWJ */) {\n        return false; // GB9\n    }\n    // The GB9a and GB9b rules only apply to extended grapheme clusters:\n    // Do not break before SpacingMarks, or after Prepend characters.\n    // GB9a                                          × SpacingMark\n    // GB9b                                  Prepend ×\n    if (breakTypeB === 7 /* GraphemeBreakType.SpacingMark */) {\n        return false; // GB9a\n    }\n    if (breakTypeA === 1 /* GraphemeBreakType.Prepend */) {\n        return false; // GB9b\n    }\n    // Do not break within emoji modifier sequences or emoji zwj sequences.\n    // GB11    \\p{Extended_Pictographic} Extend* ZWJ × \\p{Extended_Pictographic}\n    if (breakTypeA === 13 /* GraphemeBreakType.ZWJ */ && breakTypeB === 14 /* GraphemeBreakType.Extended_Pictographic */) {\n        // Note: we are not implementing the rule entirely here to avoid introducing states\n        return false; // GB11\n    }\n    // GB12                          sot (RI RI)* RI × RI\n    // GB13                        [^RI] (RI RI)* RI × RI\n    if (breakTypeA === 6 /* GraphemeBreakType.Regional_Indicator */ && breakTypeB === 6 /* GraphemeBreakType.Regional_Indicator */) {\n        // Note: we are not implementing the rule entirely here to avoid introducing states\n        return false; // GB12 & GB13\n    }\n    // GB999                                     Any ÷ Any\n    return true;\n}\nclass GraphemeBreakTree {\n    static getInstance() {\n        if (!GraphemeBreakTree._INSTANCE) {\n            GraphemeBreakTree._INSTANCE = new GraphemeBreakTree();\n        }\n        return GraphemeBreakTree._INSTANCE;\n    }\n    constructor() {\n        this._data = getGraphemeBreakRawData();\n    }\n    getGraphemeBreakType(codePoint) {\n        // !!! Let's make 7bit ASCII a bit faster: 0..31\n        if (codePoint < 32) {\n            if (codePoint === 10 /* CharCode.LineFeed */) {\n                return 3 /* GraphemeBreakType.LF */;\n            }\n            if (codePoint === 13 /* CharCode.CarriageReturn */) {\n                return 2 /* GraphemeBreakType.CR */;\n            }\n            return 4 /* GraphemeBreakType.Control */;\n        }\n        // !!! Let's make 7bit ASCII a bit faster: 32..126\n        if (codePoint < 127) {\n            return 0 /* GraphemeBreakType.Other */;\n        }\n        const data = this._data;\n        const nodeCount = data.length / 3;\n        let nodeIndex = 1;\n        while (nodeIndex <= nodeCount) {\n            if (codePoint < data[3 * nodeIndex]) {\n                // go left\n                nodeIndex = 2 * nodeIndex;\n            }\n            else if (codePoint > data[3 * nodeIndex + 1]) {\n                // go right\n                nodeIndex = 2 * nodeIndex + 1;\n            }\n            else {\n                // hit\n                return data[3 * nodeIndex + 2];\n            }\n        }\n        return 0 /* GraphemeBreakType.Other */;\n    }\n}\nGraphemeBreakTree._INSTANCE = null;\nfunction getGraphemeBreakRawData() {\n    // generated using https://github.com/alexdima/unicode-utils/blob/main/grapheme-break.js\n    return JSON.parse('[0,0,0,51229,51255,12,44061,44087,12,127462,127487,6,7083,7085,5,47645,47671,12,54813,54839,12,128678,128678,14,3270,3270,5,9919,9923,14,45853,45879,12,49437,49463,12,53021,53047,12,71216,71218,7,128398,128399,14,129360,129374,14,2519,2519,5,4448,4519,9,9742,9742,14,12336,12336,14,44957,44983,12,46749,46775,12,48541,48567,12,50333,50359,12,52125,52151,12,53917,53943,12,69888,69890,5,73018,73018,5,127990,127990,14,128558,128559,14,128759,128760,14,129653,129655,14,2027,2035,5,2891,2892,7,3761,3761,5,6683,6683,5,8293,8293,4,9825,9826,14,9999,9999,14,43452,43453,5,44509,44535,12,45405,45431,12,46301,46327,12,47197,47223,12,48093,48119,12,48989,49015,12,49885,49911,12,50781,50807,12,51677,51703,12,52573,52599,12,53469,53495,12,54365,54391,12,65279,65279,4,70471,70472,7,72145,72147,7,119173,119179,5,127799,127818,14,128240,128244,14,128512,128512,14,128652,128652,14,128721,128722,14,129292,129292,14,129445,129450,14,129734,129743,14,1476,1477,5,2366,2368,7,2750,2752,7,3076,3076,5,3415,3415,5,4141,4144,5,6109,6109,5,6964,6964,5,7394,7400,5,9197,9198,14,9770,9770,14,9877,9877,14,9968,9969,14,10084,10084,14,43052,43052,5,43713,43713,5,44285,44311,12,44733,44759,12,45181,45207,12,45629,45655,12,46077,46103,12,46525,46551,12,46973,46999,12,47421,47447,12,47869,47895,12,48317,48343,12,48765,48791,12,49213,49239,12,49661,49687,12,50109,50135,12,50557,50583,12,51005,51031,12,51453,51479,12,51901,51927,12,52349,52375,12,52797,52823,12,53245,53271,12,53693,53719,12,54141,54167,12,54589,54615,12,55037,55063,12,69506,69509,5,70191,70193,5,70841,70841,7,71463,71467,5,72330,72342,5,94031,94031,5,123628,123631,5,127763,127765,14,127941,127941,14,128043,128062,14,128302,128317,14,128465,128467,14,128539,128539,14,128640,128640,14,128662,128662,14,128703,128703,14,128745,128745,14,129004,129007,14,129329,129330,14,129402,129402,14,129483,129483,14,129686,129704,14,130048,131069,14,173,173,4,1757,1757,1,2200,2207,5,2434,2435,7,2631,2632,5,2817,2817,5,3008,3008,5,3201,3201,5,3387,3388,5,3542,3542,5,3902,3903,7,4190,4192,5,6002,6003,5,6439,6440,5,6765,6770,7,7019,7027,5,7154,7155,7,8205,8205,13,8505,8505,14,9654,9654,14,9757,9757,14,9792,9792,14,9852,9853,14,9890,9894,14,9937,9937,14,9981,9981,14,10035,10036,14,11035,11036,14,42654,42655,5,43346,43347,7,43587,43587,5,44006,44007,7,44173,44199,12,44397,44423,12,44621,44647,12,44845,44871,12,45069,45095,12,45293,45319,12,45517,45543,12,45741,45767,12,45965,45991,12,46189,46215,12,46413,46439,12,46637,46663,12,46861,46887,12,47085,47111,12,47309,47335,12,47533,47559,12,47757,47783,12,47981,48007,12,48205,48231,12,48429,48455,12,48653,48679,12,48877,48903,12,49101,49127,12,49325,49351,12,49549,49575,12,49773,49799,12,49997,50023,12,50221,50247,12,50445,50471,12,50669,50695,12,50893,50919,12,51117,51143,12,51341,51367,12,51565,51591,12,51789,51815,12,52013,52039,12,52237,52263,12,52461,52487,12,52685,52711,12,52909,52935,12,53133,53159,12,53357,53383,12,53581,53607,12,53805,53831,12,54029,54055,12,54253,54279,12,54477,54503,12,54701,54727,12,54925,54951,12,55149,55175,12,68101,68102,5,69762,69762,7,70067,70069,7,70371,70378,5,70720,70721,7,71087,71087,5,71341,71341,5,71995,71996,5,72249,72249,7,72850,72871,5,73109,73109,5,118576,118598,5,121505,121519,5,127245,127247,14,127568,127569,14,127777,127777,14,127872,127891,14,127956,127967,14,128015,128016,14,128110,128172,14,128259,128259,14,128367,128368,14,128424,128424,14,128488,128488,14,128530,128532,14,128550,128551,14,128566,128566,14,128647,128647,14,128656,128656,14,128667,128673,14,128691,128693,14,128715,128715,14,128728,128732,14,128752,128752,14,128765,128767,14,129096,129103,14,129311,129311,14,129344,129349,14,129394,129394,14,129413,129425,14,129466,129471,14,129511,129535,14,129664,129666,14,129719,129722,14,129760,129767,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2307,2307,7,2382,2383,7,2497,2500,5,2563,2563,7,2677,2677,5,2763,2764,7,2879,2879,5,2914,2915,5,3021,3021,5,3142,3144,5,3263,3263,5,3285,3286,5,3398,3400,7,3530,3530,5,3633,3633,5,3864,3865,5,3974,3975,5,4155,4156,7,4229,4230,5,5909,5909,7,6078,6085,7,6277,6278,5,6451,6456,7,6744,6750,5,6846,6846,5,6972,6972,5,7074,7077,5,7146,7148,7,7222,7223,5,7416,7417,5,8234,8238,4,8417,8417,5,9000,9000,14,9203,9203,14,9730,9731,14,9748,9749,14,9762,9763,14,9776,9783,14,9800,9811,14,9831,9831,14,9872,9873,14,9882,9882,14,9900,9903,14,9929,9933,14,9941,9960,14,9974,9974,14,9989,9989,14,10006,10006,14,10062,10062,14,10160,10160,14,11647,11647,5,12953,12953,14,43019,43019,5,43232,43249,5,43443,43443,5,43567,43568,7,43696,43696,5,43765,43765,7,44013,44013,5,44117,44143,12,44229,44255,12,44341,44367,12,44453,44479,12,44565,44591,12,44677,44703,12,44789,44815,12,44901,44927,12,45013,45039,12,45125,45151,12,45237,45263,12,45349,45375,12,45461,45487,12,45573,45599,12,45685,45711,12,45797,45823,12,45909,45935,12,46021,46047,12,46133,46159,12,46245,46271,12,46357,46383,12,46469,46495,12,46581,46607,12,46693,46719,12,46805,46831,12,46917,46943,12,47029,47055,12,47141,47167,12,47253,47279,12,47365,47391,12,47477,47503,12,47589,47615,12,47701,47727,12,47813,47839,12,47925,47951,12,48037,48063,12,48149,48175,12,48261,48287,12,48373,48399,12,48485,48511,12,48597,48623,12,48709,48735,12,48821,48847,12,48933,48959,12,49045,49071,12,49157,49183,12,49269,49295,12,49381,49407,12,49493,49519,12,49605,49631,12,49717,49743,12,49829,49855,12,49941,49967,12,50053,50079,12,50165,50191,12,50277,50303,12,50389,50415,12,50501,50527,12,50613,50639,12,50725,50751,12,50837,50863,12,50949,50975,12,51061,51087,12,51173,51199,12,51285,51311,12,51397,51423,12,51509,51535,12,51621,51647,12,51733,51759,12,51845,51871,12,51957,51983,12,52069,52095,12,52181,52207,12,52293,52319,12,52405,52431,12,52517,52543,12,52629,52655,12,52741,52767,12,52853,52879,12,52965,52991,12,53077,53103,12,53189,53215,12,53301,53327,12,53413,53439,12,53525,53551,12,53637,53663,12,53749,53775,12,53861,53887,12,53973,53999,12,54085,54111,12,54197,54223,12,54309,54335,12,54421,54447,12,54533,54559,12,54645,54671,12,54757,54783,12,54869,54895,12,54981,55007,12,55093,55119,12,55243,55291,10,66045,66045,5,68325,68326,5,69688,69702,5,69817,69818,5,69957,69958,7,70089,70092,5,70198,70199,5,70462,70462,5,70502,70508,5,70750,70750,5,70846,70846,7,71100,71101,5,71230,71230,7,71351,71351,5,71737,71738,5,72000,72000,7,72160,72160,5,72273,72278,5,72752,72758,5,72882,72883,5,73031,73031,5,73461,73462,7,94192,94193,7,119149,119149,7,121403,121452,5,122915,122916,5,126980,126980,14,127358,127359,14,127535,127535,14,127759,127759,14,127771,127771,14,127792,127793,14,127825,127867,14,127897,127899,14,127945,127945,14,127985,127986,14,128000,128007,14,128021,128021,14,128066,128100,14,128184,128235,14,128249,128252,14,128266,128276,14,128335,128335,14,128379,128390,14,128407,128419,14,128444,128444,14,128481,128481,14,128499,128499,14,128526,128526,14,128536,128536,14,128543,128543,14,128556,128556,14,128564,128564,14,128577,128580,14,128643,128645,14,128649,128649,14,128654,128654,14,128660,128660,14,128664,128664,14,128675,128675,14,128686,128689,14,128695,128696,14,128705,128709,14,128717,128719,14,128725,128725,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129009,129023,14,129160,129167,14,129296,129304,14,129320,129327,14,129340,129342,14,129356,129356,14,129388,129392,14,129399,129400,14,129404,129407,14,129432,129442,14,129454,129455,14,129473,129474,14,129485,129487,14,129648,129651,14,129659,129660,14,129671,129679,14,129709,129711,14,129728,129730,14,129751,129753,14,129776,129782,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2274,2274,1,2363,2363,7,2377,2380,7,2402,2403,5,2494,2494,5,2507,2508,7,2558,2558,5,2622,2624,7,2641,2641,5,2691,2691,7,2759,2760,5,2786,2787,5,2876,2876,5,2881,2884,5,2901,2902,5,3006,3006,5,3014,3016,7,3072,3072,5,3134,3136,5,3157,3158,5,3260,3260,5,3266,3266,5,3274,3275,7,3328,3329,5,3391,3392,7,3405,3405,5,3457,3457,5,3536,3537,7,3551,3551,5,3636,3642,5,3764,3772,5,3895,3895,5,3967,3967,7,3993,4028,5,4146,4151,5,4182,4183,7,4226,4226,5,4253,4253,5,4957,4959,5,5940,5940,7,6070,6070,7,6087,6088,7,6158,6158,4,6432,6434,5,6448,6449,7,6679,6680,5,6742,6742,5,6754,6754,5,6783,6783,5,6912,6915,5,6966,6970,5,6978,6978,5,7042,7042,7,7080,7081,5,7143,7143,7,7150,7150,7,7212,7219,5,7380,7392,5,7412,7412,5,8203,8203,4,8232,8232,4,8265,8265,14,8400,8412,5,8421,8432,5,8617,8618,14,9167,9167,14,9200,9200,14,9410,9410,14,9723,9726,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9774,14,9786,9786,14,9794,9794,14,9823,9823,14,9828,9828,14,9833,9850,14,9855,9855,14,9875,9875,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9935,9935,14,9939,9939,14,9962,9962,14,9972,9972,14,9978,9978,14,9986,9986,14,9997,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10133,10135,14,10548,10549,14,11093,11093,14,12330,12333,5,12441,12442,5,42608,42610,5,43010,43010,5,43045,43046,5,43188,43203,7,43302,43309,5,43392,43394,5,43446,43449,5,43493,43493,5,43571,43572,7,43597,43597,7,43703,43704,5,43756,43757,5,44003,44004,7,44009,44010,7,44033,44059,12,44089,44115,12,44145,44171,12,44201,44227,12,44257,44283,12,44313,44339,12,44369,44395,12,44425,44451,12,44481,44507,12,44537,44563,12,44593,44619,12,44649,44675,12,44705,44731,12,44761,44787,12,44817,44843,12,44873,44899,12,44929,44955,12,44985,45011,12,45041,45067,12,45097,45123,12,45153,45179,12,45209,45235,12,45265,45291,12,45321,45347,12,45377,45403,12,45433,45459,12,45489,45515,12,45545,45571,12,45601,45627,12,45657,45683,12,45713,45739,12,45769,45795,12,45825,45851,12,45881,45907,12,45937,45963,12,45993,46019,12,46049,46075,12,46105,46131,12,46161,46187,12,46217,46243,12,46273,46299,12,46329,46355,12,46385,46411,12,46441,46467,12,46497,46523,12,46553,46579,12,46609,46635,12,46665,46691,12,46721,46747,12,46777,46803,12,46833,46859,12,46889,46915,12,46945,46971,12,47001,47027,12,47057,47083,12,47113,47139,12,47169,47195,12,47225,47251,12,47281,47307,12,47337,47363,12,47393,47419,12,47449,47475,12,47505,47531,12,47561,47587,12,47617,47643,12,47673,47699,12,47729,47755,12,47785,47811,12,47841,47867,12,47897,47923,12,47953,47979,12,48009,48035,12,48065,48091,12,48121,48147,12,48177,48203,12,48233,48259,12,48289,48315,12,48345,48371,12,48401,48427,12,48457,48483,12,48513,48539,12,48569,48595,12,48625,48651,12,48681,48707,12,48737,48763,12,48793,48819,12,48849,48875,12,48905,48931,12,48961,48987,12,49017,49043,12,49073,49099,12,49129,49155,12,49185,49211,12,49241,49267,12,49297,49323,12,49353,49379,12,49409,49435,12,49465,49491,12,49521,49547,12,49577,49603,12,49633,49659,12,49689,49715,12,49745,49771,12,49801,49827,12,49857,49883,12,49913,49939,12,49969,49995,12,50025,50051,12,50081,50107,12,50137,50163,12,50193,50219,12,50249,50275,12,50305,50331,12,50361,50387,12,50417,50443,12,50473,50499,12,50529,50555,12,50585,50611,12,50641,50667,12,50697,50723,12,50753,50779,12,50809,50835,12,50865,50891,12,50921,50947,12,50977,51003,12,51033,51059,12,51089,51115,12,51145,51171,12,51201,51227,12,51257,51283,12,51313,51339,12,51369,51395,12,51425,51451,12,51481,51507,12,51537,51563,12,51593,51619,12,51649,51675,12,51705,51731,12,51761,51787,12,51817,51843,12,51873,51899,12,51929,51955,12,51985,52011,12,52041,52067,12,52097,52123,12,52153,52179,12,52209,52235,12,52265,52291,12,52321,52347,12,52377,52403,12,52433,52459,12,52489,52515,12,52545,52571,12,52601,52627,12,52657,52683,12,52713,52739,12,52769,52795,12,52825,52851,12,52881,52907,12,52937,52963,12,52993,53019,12,53049,53075,12,53105,53131,12,53161,53187,12,53217,53243,12,53273,53299,12,53329,53355,12,53385,53411,12,53441,53467,12,53497,53523,12,53553,53579,12,53609,53635,12,53665,53691,12,53721,53747,12,53777,53803,12,53833,53859,12,53889,53915,12,53945,53971,12,54001,54027,12,54057,54083,12,54113,54139,12,54169,54195,12,54225,54251,12,54281,54307,12,54337,54363,12,54393,54419,12,54449,54475,12,54505,54531,12,54561,54587,12,54617,54643,12,54673,54699,12,54729,54755,12,54785,54811,12,54841,54867,12,54897,54923,12,54953,54979,12,55009,55035,12,55065,55091,12,55121,55147,12,55177,55203,12,65024,65039,5,65520,65528,4,66422,66426,5,68152,68154,5,69291,69292,5,69633,69633,5,69747,69748,5,69811,69814,5,69826,69826,5,69932,69932,7,70016,70017,5,70079,70080,7,70095,70095,5,70196,70196,5,70367,70367,5,70402,70403,7,70464,70464,5,70487,70487,5,70709,70711,7,70725,70725,7,70833,70834,7,70843,70844,7,70849,70849,7,71090,71093,5,71103,71104,5,71227,71228,7,71339,71339,5,71344,71349,5,71458,71461,5,71727,71735,5,71985,71989,7,71998,71998,5,72002,72002,7,72154,72155,5,72193,72202,5,72251,72254,5,72281,72283,5,72344,72345,5,72766,72766,7,72874,72880,5,72885,72886,5,73023,73029,5,73104,73105,5,73111,73111,5,92912,92916,5,94095,94098,5,113824,113827,4,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,125252,125258,5,127183,127183,14,127340,127343,14,127377,127386,14,127491,127503,14,127548,127551,14,127744,127756,14,127761,127761,14,127769,127769,14,127773,127774,14,127780,127788,14,127796,127797,14,127820,127823,14,127869,127869,14,127894,127895,14,127902,127903,14,127943,127943,14,127947,127950,14,127972,127972,14,127988,127988,14,127992,127994,14,128009,128011,14,128019,128019,14,128023,128041,14,128064,128064,14,128102,128107,14,128174,128181,14,128238,128238,14,128246,128247,14,128254,128254,14,128264,128264,14,128278,128299,14,128329,128330,14,128348,128359,14,128371,128377,14,128392,128393,14,128401,128404,14,128421,128421,14,128433,128434,14,128450,128452,14,128476,128478,14,128483,128483,14,128495,128495,14,128506,128506,14,128519,128520,14,128528,128528,14,128534,128534,14,128538,128538,14,128540,128542,14,128544,128549,14,128552,128555,14,128557,128557,14,128560,128563,14,128565,128565,14,128567,128576,14,128581,128591,14,128641,128642,14,128646,128646,14,128648,128648,14,128650,128651,14,128653,128653,14,128655,128655,14,128657,128659,14,128661,128661,14,128663,128663,14,128665,128666,14,128674,128674,14,128676,128677,14,128679,128685,14,128690,128690,14,128694,128694,14,128697,128702,14,128704,128704,14,128710,128714,14,128716,128716,14,128720,128720,14,128723,128724,14,128726,128727,14,128733,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129008,129008,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129661,129663,14,129667,129670,14,129680,129685,14,129705,129708,14,129712,129718,14,129723,129727,14,129731,129733,14,129744,129750,14,129754,129759,14,129768,129775,14,129783,129791,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2192,2193,1,2250,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3132,3132,5,3137,3140,7,3146,3149,5,3170,3171,5,3202,3203,7,3262,3262,7,3264,3265,7,3267,3268,7,3271,3272,7,3276,3277,5,3298,3299,5,3330,3331,7,3390,3390,5,3393,3396,5,3402,3404,7,3406,3406,1,3426,3427,5,3458,3459,7,3535,3535,5,3538,3540,5,3544,3550,7,3570,3571,7,3635,3635,7,3655,3662,5,3763,3763,7,3784,3789,5,3893,3893,5,3897,3897,5,3953,3966,5,3968,3972,5,3981,3991,5,4038,4038,5,4145,4145,7,4153,4154,5,4157,4158,5,4184,4185,5,4209,4212,5,4228,4228,7,4237,4237,5,4352,4447,8,4520,4607,10,5906,5908,5,5938,5939,5,5970,5971,5,6068,6069,5,6071,6077,5,6086,6086,5,6089,6099,5,6155,6157,5,6159,6159,5,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6862,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7679,5,8204,8204,5,8206,8207,4,8233,8233,4,8252,8252,14,8288,8292,4,8294,8303,4,8413,8416,5,8418,8420,5,8482,8482,14,8596,8601,14,8986,8987,14,9096,9096,14,9193,9196,14,9199,9199,14,9201,9202,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9729,14,9732,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9775,9775,14,9784,9785,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9874,14,9876,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9934,14,9936,9936,14,9938,9938,14,9940,9940,14,9961,9961,14,9963,9967,14,9970,9971,14,9973,9973,14,9975,9977,14,9979,9980,14,9982,9985,14,9987,9988,14,9992,9996,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10083,14,10085,10087,14,10145,10145,14,10175,10175,14,11013,11015,14,11088,11088,14,11503,11505,5,11744,11775,5,12334,12335,5,12349,12349,14,12951,12951,14,42607,42607,5,42612,42621,5,42736,42737,5,43014,43014,5,43043,43044,7,43047,43047,7,43136,43137,7,43204,43205,5,43263,43263,5,43335,43345,5,43360,43388,8,43395,43395,7,43444,43445,7,43450,43451,7,43454,43456,7,43561,43566,5,43569,43570,5,43573,43574,5,43596,43596,5,43644,43644,5,43698,43700,5,43710,43711,5,43755,43755,7,43758,43759,7,43766,43766,5,44005,44005,5,44008,44008,5,44012,44012,7,44032,44032,11,44060,44060,11,44088,44088,11,44116,44116,11,44144,44144,11,44172,44172,11,44200,44200,11,44228,44228,11,44256,44256,11,44284,44284,11,44312,44312,11,44340,44340,11,44368,44368,11,44396,44396,11,44424,44424,11,44452,44452,11,44480,44480,11,44508,44508,11,44536,44536,11,44564,44564,11,44592,44592,11,44620,44620,11,44648,44648,11,44676,44676,11,44704,44704,11,44732,44732,11,44760,44760,11,44788,44788,11,44816,44816,11,44844,44844,11,44872,44872,11,44900,44900,11,44928,44928,11,44956,44956,11,44984,44984,11,45012,45012,11,45040,45040,11,45068,45068,11,45096,45096,11,45124,45124,11,45152,45152,11,45180,45180,11,45208,45208,11,45236,45236,11,45264,45264,11,45292,45292,11,45320,45320,11,45348,45348,11,45376,45376,11,45404,45404,11,45432,45432,11,45460,45460,11,45488,45488,11,45516,45516,11,45544,45544,11,45572,45572,11,45600,45600,11,45628,45628,11,45656,45656,11,45684,45684,11,45712,45712,11,45740,45740,11,45768,45768,11,45796,45796,11,45824,45824,11,45852,45852,11,45880,45880,11,45908,45908,11,45936,45936,11,45964,45964,11,45992,45992,11,46020,46020,11,46048,46048,11,46076,46076,11,46104,46104,11,46132,46132,11,46160,46160,11,46188,46188,11,46216,46216,11,46244,46244,11,46272,46272,11,46300,46300,11,46328,46328,11,46356,46356,11,46384,46384,11,46412,46412,11,46440,46440,11,46468,46468,11,46496,46496,11,46524,46524,11,46552,46552,11,46580,46580,11,46608,46608,11,46636,46636,11,46664,46664,11,46692,46692,11,46720,46720,11,46748,46748,11,46776,46776,11,46804,46804,11,46832,46832,11,46860,46860,11,46888,46888,11,46916,46916,11,46944,46944,11,46972,46972,11,47000,47000,11,47028,47028,11,47056,47056,11,47084,47084,11,47112,47112,11,47140,47140,11,47168,47168,11,47196,47196,11,47224,47224,11,47252,47252,11,47280,47280,11,47308,47308,11,47336,47336,11,47364,47364,11,47392,47392,11,47420,47420,11,47448,47448,11,47476,47476,11,47504,47504,11,47532,47532,11,47560,47560,11,47588,47588,11,47616,47616,11,47644,47644,11,47672,47672,11,47700,47700,11,47728,47728,11,47756,47756,11,47784,47784,11,47812,47812,11,47840,47840,11,47868,47868,11,47896,47896,11,47924,47924,11,47952,47952,11,47980,47980,11,48008,48008,11,48036,48036,11,48064,48064,11,48092,48092,11,48120,48120,11,48148,48148,11,48176,48176,11,48204,48204,11,48232,48232,11,48260,48260,11,48288,48288,11,48316,48316,11,48344,48344,11,48372,48372,11,48400,48400,11,48428,48428,11,48456,48456,11,48484,48484,11,48512,48512,11,48540,48540,11,48568,48568,11,48596,48596,11,48624,48624,11,48652,48652,11,48680,48680,11,48708,48708,11,48736,48736,11,48764,48764,11,48792,48792,11,48820,48820,11,48848,48848,11,48876,48876,11,48904,48904,11,48932,48932,11,48960,48960,11,48988,48988,11,49016,49016,11,49044,49044,11,49072,49072,11,49100,49100,11,49128,49128,11,49156,49156,11,49184,49184,11,49212,49212,11,49240,49240,11,49268,49268,11,49296,49296,11,49324,49324,11,49352,49352,11,49380,49380,11,49408,49408,11,49436,49436,11,49464,49464,11,49492,49492,11,49520,49520,11,49548,49548,11,49576,49576,11,49604,49604,11,49632,49632,11,49660,49660,11,49688,49688,11,49716,49716,11,49744,49744,11,49772,49772,11,49800,49800,11,49828,49828,11,49856,49856,11,49884,49884,11,49912,49912,11,49940,49940,11,49968,49968,11,49996,49996,11,50024,50024,11,50052,50052,11,50080,50080,11,50108,50108,11,50136,50136,11,50164,50164,11,50192,50192,11,50220,50220,11,50248,50248,11,50276,50276,11,50304,50304,11,50332,50332,11,50360,50360,11,50388,50388,11,50416,50416,11,50444,50444,11,50472,50472,11,50500,50500,11,50528,50528,11,50556,50556,11,50584,50584,11,50612,50612,11,50640,50640,11,50668,50668,11,50696,50696,11,50724,50724,11,50752,50752,11,50780,50780,11,50808,50808,11,50836,50836,11,50864,50864,11,50892,50892,11,50920,50920,11,50948,50948,11,50976,50976,11,51004,51004,11,51032,51032,11,51060,51060,11,51088,51088,11,51116,51116,11,51144,51144,11,51172,51172,11,51200,51200,11,51228,51228,11,51256,51256,11,51284,51284,11,51312,51312,11,51340,51340,11,51368,51368,11,51396,51396,11,51424,51424,11,51452,51452,11,51480,51480,11,51508,51508,11,51536,51536,11,51564,51564,11,51592,51592,11,51620,51620,11,51648,51648,11,51676,51676,11,51704,51704,11,51732,51732,11,51760,51760,11,51788,51788,11,51816,51816,11,51844,51844,11,51872,51872,11,51900,51900,11,51928,51928,11,51956,51956,11,51984,51984,11,52012,52012,11,52040,52040,11,52068,52068,11,52096,52096,11,52124,52124,11,52152,52152,11,52180,52180,11,52208,52208,11,52236,52236,11,52264,52264,11,52292,52292,11,52320,52320,11,52348,52348,11,52376,52376,11,52404,52404,11,52432,52432,11,52460,52460,11,52488,52488,11,52516,52516,11,52544,52544,11,52572,52572,11,52600,52600,11,52628,52628,11,52656,52656,11,52684,52684,11,52712,52712,11,52740,52740,11,52768,52768,11,52796,52796,11,52824,52824,11,52852,52852,11,52880,52880,11,52908,52908,11,52936,52936,11,52964,52964,11,52992,52992,11,53020,53020,11,53048,53048,11,53076,53076,11,53104,53104,11,53132,53132,11,53160,53160,11,53188,53188,11,53216,53216,11,53244,53244,11,53272,53272,11,53300,53300,11,53328,53328,11,53356,53356,11,53384,53384,11,53412,53412,11,53440,53440,11,53468,53468,11,53496,53496,11,53524,53524,11,53552,53552,11,53580,53580,11,53608,53608,11,53636,53636,11,53664,53664,11,53692,53692,11,53720,53720,11,53748,53748,11,53776,53776,11,53804,53804,11,53832,53832,11,53860,53860,11,53888,53888,11,53916,53916,11,53944,53944,11,53972,53972,11,54000,54000,11,54028,54028,11,54056,54056,11,54084,54084,11,54112,54112,11,54140,54140,11,54168,54168,11,54196,54196,11,54224,54224,11,54252,54252,11,54280,54280,11,54308,54308,11,54336,54336,11,54364,54364,11,54392,54392,11,54420,54420,11,54448,54448,11,54476,54476,11,54504,54504,11,54532,54532,11,54560,54560,11,54588,54588,11,54616,54616,11,54644,54644,11,54672,54672,11,54700,54700,11,54728,54728,11,54756,54756,11,54784,54784,11,54812,54812,11,54840,54840,11,54868,54868,11,54896,54896,11,54924,54924,11,54952,54952,11,54980,54980,11,55008,55008,11,55036,55036,11,55064,55064,11,55092,55092,11,55120,55120,11,55148,55148,11,55176,55176,11,55216,55238,9,64286,64286,5,65056,65071,5,65438,65439,5,65529,65531,4,66272,66272,5,68097,68099,5,68108,68111,5,68159,68159,5,68900,68903,5,69446,69456,5,69632,69632,7,69634,69634,7,69744,69744,5,69759,69761,5,69808,69810,7,69815,69816,7,69821,69821,1,69837,69837,1,69927,69931,5,69933,69940,5,70003,70003,5,70018,70018,7,70070,70078,5,70082,70083,1,70094,70094,7,70188,70190,7,70194,70195,7,70197,70197,7,70206,70206,5,70368,70370,7,70400,70401,5,70459,70460,5,70463,70463,7,70465,70468,7,70475,70477,7,70498,70499,7,70512,70516,5,70712,70719,5,70722,70724,5,70726,70726,5,70832,70832,5,70835,70840,5,70842,70842,5,70845,70845,5,70847,70848,5,70850,70851,5,71088,71089,7,71096,71099,7,71102,71102,7,71132,71133,5,71219,71226,5,71229,71229,5,71231,71232,5,71340,71340,7,71342,71343,7,71350,71350,7,71453,71455,5,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,118528,118573,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123566,123566,5,125136,125142,5,126976,126979,14,126981,127182,14,127184,127231,14,127279,127279,14,127344,127345,14,127374,127374,14,127405,127461,14,127489,127490,14,127514,127514,14,127538,127546,14,127561,127567,14,127570,127743,14,127757,127758,14,127760,127760,14,127762,127762,14,127766,127768,14,127770,127770,14,127772,127772,14,127775,127776,14,127778,127779,14,127789,127791,14,127794,127795,14,127798,127798,14,127819,127819,14,127824,127824,14,127868,127868,14,127870,127871,14,127892,127893,14,127896,127896,14,127900,127901,14,127904,127940,14,127942,127942,14,127944,127944,14,127946,127946,14,127951,127955,14,127968,127971,14,127973,127984,14,127987,127987,14,127989,127989,14,127991,127991,14,127995,127999,5,128008,128008,14,128012,128014,14,128017,128018,14,128020,128020,14,128022,128022,14,128042,128042,14,128063,128063,14,128065,128065,14,128101,128101,14,128108,128109,14,128173,128173,14,128182,128183,14,128236,128237,14,128239,128239,14,128245,128245,14,128248,128248,14,128253,128253,14,128255,128258,14,128260,128263,14,128265,128265,14,128277,128277,14,128300,128301,14,128326,128328,14,128331,128334,14,128336,128347,14,128360,128366,14,128369,128370,14,128378,128378,14,128391,128391,14,128394,128397,14,128400,128400,14,128405,128406,14,128420,128420,14,128422,128423,14,128425,128432,14,128435,128443,14,128445,128449,14,128453,128464,14,128468,128475,14,128479,128480,14,128482,128482,14,128484,128487,14,128489,128494,14,128496,128498,14,128500,128505,14,128507,128511,14,128513,128518,14,128521,128525,14,128527,128527,14,128529,128529,14,128533,128533,14,128535,128535,14,128537,128537,14]');\n}\n//#endregion\n/**\n * Computes the offset after performing a left delete on the given string,\n * while considering unicode grapheme/emoji rules.\n*/\nexport function getLeftDeleteOffset(offset, str) {\n    if (offset === 0) {\n        return 0;\n    }\n    // Try to delete emoji part.\n    const emojiOffset = getOffsetBeforeLastEmojiComponent(offset, str);\n    if (emojiOffset !== undefined) {\n        return emojiOffset;\n    }\n    // Otherwise, just skip a single code point.\n    const iterator = new CodePointIterator(str, offset);\n    iterator.prevCodePoint();\n    return iterator.offset;\n}\nfunction getOffsetBeforeLastEmojiComponent(initialOffset, str) {\n    // See https://www.unicode.org/reports/tr51/tr51-14.html#EBNF_and_Regex for the\n    // structure of emojis.\n    const iterator = new CodePointIterator(str, initialOffset);\n    let codePoint = iterator.prevCodePoint();\n    // Skip modifiers\n    while ((isEmojiModifier(codePoint) || codePoint === 65039 /* CodePoint.emojiVariantSelector */ || codePoint === 8419 /* CodePoint.enclosingKeyCap */)) {\n        if (iterator.offset === 0) {\n            // Cannot skip modifier, no preceding emoji base.\n            return undefined;\n        }\n        codePoint = iterator.prevCodePoint();\n    }\n    // Expect base emoji\n    if (!isEmojiImprecise(codePoint)) {\n        // Unexpected code point, not a valid emoji.\n        return undefined;\n    }\n    let resultOffset = iterator.offset;\n    if (resultOffset > 0) {\n        // Skip optional ZWJ code points that combine multiple emojis.\n        // In theory, we should check if that ZWJ actually combines multiple emojis\n        // to prevent deleting ZWJs in situations we didn't account for.\n        const optionalZwjCodePoint = iterator.prevCodePoint();\n        if (optionalZwjCodePoint === 8205 /* CodePoint.zwj */) {\n            resultOffset = iterator.offset;\n        }\n    }\n    return resultOffset;\n}\nfunction isEmojiModifier(codePoint) {\n    return 0x1F3FB <= codePoint && codePoint <= 0x1F3FF;\n}\nexport const noBreakWhitespace = '\\xa0';\nexport class AmbiguousCharacters {\n    static getInstance(locales) {\n        return _a.cache.get(Array.from(locales));\n    }\n    static getLocales() {\n        return _a._locales.value;\n    }\n    constructor(confusableDictionary) {\n        this.confusableDictionary = confusableDictionary;\n    }\n    isAmbiguous(codePoint) {\n        return this.confusableDictionary.has(codePoint);\n    }\n    /**\n     * Returns the non basic ASCII code point that the given code point can be confused,\n     * or undefined if such code point does note exist.\n     */\n    getPrimaryConfusable(codePoint) {\n        return this.confusableDictionary.get(codePoint);\n    }\n    getConfusableCodePoints() {\n        return new Set(this.confusableDictionary.keys());\n    }\n}\n_a = AmbiguousCharacters;\nAmbiguousCharacters.ambiguousCharacterData = new Lazy(() => {\n    // Generated using https://github.com/hediet/vscode-unicode-data\n    // Stored as key1, value1, key2, value2, ...\n    return JSON.parse('{\\\"_common\\\":[8232,32,8233,32,5760,32,8192,32,8193,32,8194,32,8195,32,8196,32,8197,32,8198,32,8200,32,8201,32,8202,32,8287,32,8199,32,8239,32,2042,95,65101,95,65102,95,65103,95,8208,45,8209,45,8210,45,65112,45,1748,45,8259,45,727,45,8722,45,10134,45,11450,45,1549,44,1643,44,8218,44,184,44,42233,44,894,59,2307,58,2691,58,1417,58,1795,58,1796,58,5868,58,65072,58,6147,58,6153,58,8282,58,1475,58,760,58,42889,58,8758,58,720,58,42237,58,451,33,11601,33,660,63,577,63,2429,63,5038,63,42731,63,119149,46,8228,46,1793,46,1794,46,42510,46,68176,46,1632,46,1776,46,42232,46,1373,96,65287,96,8219,96,8242,96,1370,96,1523,96,8175,96,65344,96,900,96,8189,96,8125,96,8127,96,8190,96,697,96,884,96,712,96,714,96,715,96,756,96,699,96,701,96,700,96,702,96,42892,96,1497,96,2036,96,2037,96,5194,96,5836,96,94033,96,94034,96,65339,91,10088,40,10098,40,12308,40,64830,40,65341,93,10089,41,10099,41,12309,41,64831,41,10100,123,119060,123,10101,125,65342,94,8270,42,1645,42,8727,42,66335,42,5941,47,8257,47,8725,47,8260,47,9585,47,10187,47,10744,47,119354,47,12755,47,12339,47,11462,47,20031,47,12035,47,65340,92,65128,92,8726,92,10189,92,10741,92,10745,92,119311,92,119355,92,12756,92,20022,92,12034,92,42872,38,708,94,710,94,5869,43,10133,43,66203,43,8249,60,10094,60,706,60,119350,60,5176,60,5810,60,5120,61,11840,61,12448,61,42239,61,8250,62,10095,62,707,62,119351,62,5171,62,94015,62,8275,126,732,126,8128,126,8764,126,65372,124,65293,45,120784,50,120794,50,120804,50,120814,50,120824,50,130034,50,42842,50,423,50,1000,50,42564,50,5311,50,42735,50,119302,51,120785,51,120795,51,120805,51,120815,51,120825,51,130035,51,42923,51,540,51,439,51,42858,51,11468,51,1248,51,94011,51,71882,51,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,120789,55,120799,55,120809,55,120819,55,120829,55,130039,55,66770,55,71878,55,2819,56,2538,56,2666,56,125131,56,120790,56,120800,56,120810,56,120820,56,120830,56,130040,56,547,56,546,56,66330,56,2663,57,2920,57,2541,57,3437,57,120791,57,120801,57,120811,57,120821,57,120831,57,130041,57,42862,57,11466,57,71884,57,71852,57,71894,57,9082,97,65345,97,119834,97,119886,97,119938,97,119990,97,120042,97,120094,97,120146,97,120198,97,120250,97,120302,97,120354,97,120406,97,120458,97,593,97,945,97,120514,97,120572,97,120630,97,120688,97,120746,97,65313,65,119808,65,119860,65,119912,65,119964,65,120016,65,120068,65,120120,65,120172,65,120224,65,120276,65,120328,65,120380,65,120432,65,913,65,120488,65,120546,65,120604,65,120662,65,120720,65,5034,65,5573,65,42222,65,94016,65,66208,65,119835,98,119887,98,119939,98,119991,98,120043,98,120095,98,120147,98,120199,98,120251,98,120303,98,120355,98,120407,98,120459,98,388,98,5071,98,5234,98,5551,98,65314,66,8492,66,119809,66,119861,66,119913,66,120017,66,120069,66,120121,66,120173,66,120225,66,120277,66,120329,66,120381,66,120433,66,42932,66,914,66,120489,66,120547,66,120605,66,120663,66,120721,66,5108,66,5623,66,42192,66,66178,66,66209,66,66305,66,65347,99,8573,99,119836,99,119888,99,119940,99,119992,99,120044,99,120096,99,120148,99,120200,99,120252,99,120304,99,120356,99,120408,99,120460,99,7428,99,1010,99,11429,99,43951,99,66621,99,128844,67,71922,67,71913,67,65315,67,8557,67,8450,67,8493,67,119810,67,119862,67,119914,67,119966,67,120018,67,120174,67,120226,67,120278,67,120330,67,120382,67,120434,67,1017,67,11428,67,5087,67,42202,67,66210,67,66306,67,66581,67,66844,67,8574,100,8518,100,119837,100,119889,100,119941,100,119993,100,120045,100,120097,100,120149,100,120201,100,120253,100,120305,100,120357,100,120409,100,120461,100,1281,100,5095,100,5231,100,42194,100,8558,68,8517,68,119811,68,119863,68,119915,68,119967,68,120019,68,120071,68,120123,68,120175,68,120227,68,120279,68,120331,68,120383,68,120435,68,5024,68,5598,68,5610,68,42195,68,8494,101,65349,101,8495,101,8519,101,119838,101,119890,101,119942,101,120046,101,120098,101,120150,101,120202,101,120254,101,120306,101,120358,101,120410,101,120462,101,43826,101,1213,101,8959,69,65317,69,8496,69,119812,69,119864,69,119916,69,120020,69,120072,69,120124,69,120176,69,120228,69,120280,69,120332,69,120384,69,120436,69,917,69,120492,69,120550,69,120608,69,120666,69,120724,69,11577,69,5036,69,42224,69,71846,69,71854,69,66182,69,119839,102,119891,102,119943,102,119995,102,120047,102,120099,102,120151,102,120203,102,120255,102,120307,102,120359,102,120411,102,120463,102,43829,102,42905,102,383,102,7837,102,1412,102,119315,70,8497,70,119813,70,119865,70,119917,70,120021,70,120073,70,120125,70,120177,70,120229,70,120281,70,120333,70,120385,70,120437,70,42904,70,988,70,120778,70,5556,70,42205,70,71874,70,71842,70,66183,70,66213,70,66853,70,65351,103,8458,103,119840,103,119892,103,119944,103,120048,103,120100,103,120152,103,120204,103,120256,103,120308,103,120360,103,120412,103,120464,103,609,103,7555,103,397,103,1409,103,119814,71,119866,71,119918,71,119970,71,120022,71,120074,71,120126,71,120178,71,120230,71,120282,71,120334,71,120386,71,120438,71,1292,71,5056,71,5107,71,42198,71,65352,104,8462,104,119841,104,119945,104,119997,104,120049,104,120101,104,120153,104,120205,104,120257,104,120309,104,120361,104,120413,104,120465,104,1211,104,1392,104,5058,104,65320,72,8459,72,8460,72,8461,72,119815,72,119867,72,119919,72,120023,72,120179,72,120231,72,120283,72,120335,72,120387,72,120439,72,919,72,120494,72,120552,72,120610,72,120668,72,120726,72,11406,72,5051,72,5500,72,42215,72,66255,72,731,105,9075,105,65353,105,8560,105,8505,105,8520,105,119842,105,119894,105,119946,105,119998,105,120050,105,120102,105,120154,105,120206,105,120258,105,120310,105,120362,105,120414,105,120466,105,120484,105,618,105,617,105,953,105,8126,105,890,105,120522,105,120580,105,120638,105,120696,105,120754,105,1110,105,42567,105,1231,105,43893,105,5029,105,71875,105,65354,106,8521,106,119843,106,119895,106,119947,106,119999,106,120051,106,120103,106,120155,106,120207,106,120259,106,120311,106,120363,106,120415,106,120467,106,1011,106,1112,106,65322,74,119817,74,119869,74,119921,74,119973,74,120025,74,120077,74,120129,74,120181,74,120233,74,120285,74,120337,74,120389,74,120441,74,42930,74,895,74,1032,74,5035,74,5261,74,42201,74,119844,107,119896,107,119948,107,120000,107,120052,107,120104,107,120156,107,120208,107,120260,107,120312,107,120364,107,120416,107,120468,107,8490,75,65323,75,119818,75,119870,75,119922,75,119974,75,120026,75,120078,75,120130,75,120182,75,120234,75,120286,75,120338,75,120390,75,120442,75,922,75,120497,75,120555,75,120613,75,120671,75,120729,75,11412,75,5094,75,5845,75,42199,75,66840,75,1472,108,8739,73,9213,73,65512,73,1633,108,1777,73,66336,108,125127,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,119816,73,119868,73,119920,73,120024,73,120128,73,120180,73,120232,73,120284,73,120336,73,120388,73,120440,73,65356,108,8572,73,8467,108,119845,108,119897,108,119949,108,120001,108,120053,108,120105,73,120157,73,120209,73,120261,73,120313,73,120365,73,120417,73,120469,73,448,73,120496,73,120554,73,120612,73,120670,73,120728,73,11410,73,1030,73,1216,73,1493,108,1503,108,1575,108,126464,108,126592,108,65166,108,65165,108,1994,108,11599,73,5825,73,42226,73,93992,73,66186,124,66313,124,119338,76,8556,76,8466,76,119819,76,119871,76,119923,76,120027,76,120079,76,120131,76,120183,76,120235,76,120287,76,120339,76,120391,76,120443,76,11472,76,5086,76,5290,76,42209,76,93974,76,71843,76,71858,76,66587,76,66854,76,65325,77,8559,77,8499,77,119820,77,119872,77,119924,77,120028,77,120080,77,120132,77,120184,77,120236,77,120288,77,120340,77,120392,77,120444,77,924,77,120499,77,120557,77,120615,77,120673,77,120731,77,1018,77,11416,77,5047,77,5616,77,5846,77,42207,77,66224,77,66321,77,119847,110,119899,110,119951,110,120003,110,120055,110,120107,110,120159,110,120211,110,120263,110,120315,110,120367,110,120419,110,120471,110,1400,110,1404,110,65326,78,8469,78,119821,78,119873,78,119925,78,119977,78,120029,78,120081,78,120185,78,120237,78,120289,78,120341,78,120393,78,120445,78,925,78,120500,78,120558,78,120616,78,120674,78,120732,78,11418,78,42208,78,66835,78,3074,111,3202,111,3330,111,3458,111,2406,111,2662,111,2790,111,3046,111,3174,111,3302,111,3430,111,3664,111,3792,111,4160,111,1637,111,1781,111,65359,111,8500,111,119848,111,119900,111,119952,111,120056,111,120108,111,120160,111,120212,111,120264,111,120316,111,120368,111,120420,111,120472,111,7439,111,7441,111,43837,111,959,111,120528,111,120586,111,120644,111,120702,111,120760,111,963,111,120532,111,120590,111,120648,111,120706,111,120764,111,11423,111,4351,111,1413,111,1505,111,1607,111,126500,111,126564,111,126596,111,65259,111,65260,111,65258,111,65257,111,1726,111,64428,111,64429,111,64427,111,64426,111,1729,111,64424,111,64425,111,64423,111,64422,111,1749,111,3360,111,4125,111,66794,111,71880,111,71895,111,66604,111,1984,79,2534,79,2918,79,12295,79,70864,79,71904,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,119822,79,119874,79,119926,79,119978,79,120030,79,120082,79,120134,79,120186,79,120238,79,120290,79,120342,79,120394,79,120446,79,927,79,120502,79,120560,79,120618,79,120676,79,120734,79,11422,79,1365,79,11604,79,4816,79,2848,79,66754,79,42227,79,71861,79,66194,79,66219,79,66564,79,66838,79,9076,112,65360,112,119849,112,119901,112,119953,112,120005,112,120057,112,120109,112,120161,112,120213,112,120265,112,120317,112,120369,112,120421,112,120473,112,961,112,120530,112,120544,112,120588,112,120602,112,120646,112,120660,112,120704,112,120718,112,120762,112,120776,112,11427,112,65328,80,8473,80,119823,80,119875,80,119927,80,119979,80,120031,80,120083,80,120187,80,120239,80,120291,80,120343,80,120395,80,120447,80,929,80,120504,80,120562,80,120620,80,120678,80,120736,80,11426,80,5090,80,5229,80,42193,80,66197,80,119850,113,119902,113,119954,113,120006,113,120058,113,120110,113,120162,113,120214,113,120266,113,120318,113,120370,113,120422,113,120474,113,1307,113,1379,113,1382,113,8474,81,119824,81,119876,81,119928,81,119980,81,120032,81,120084,81,120188,81,120240,81,120292,81,120344,81,120396,81,120448,81,11605,81,119851,114,119903,114,119955,114,120007,114,120059,114,120111,114,120163,114,120215,114,120267,114,120319,114,120371,114,120423,114,120475,114,43847,114,43848,114,7462,114,11397,114,43905,114,119318,82,8475,82,8476,82,8477,82,119825,82,119877,82,119929,82,120033,82,120189,82,120241,82,120293,82,120345,82,120397,82,120449,82,422,82,5025,82,5074,82,66740,82,5511,82,42211,82,94005,82,65363,115,119852,115,119904,115,119956,115,120008,115,120060,115,120112,115,120164,115,120216,115,120268,115,120320,115,120372,115,120424,115,120476,115,42801,115,445,115,1109,115,43946,115,71873,115,66632,115,65331,83,119826,83,119878,83,119930,83,119982,83,120034,83,120086,83,120138,83,120190,83,120242,83,120294,83,120346,83,120398,83,120450,83,1029,83,1359,83,5077,83,5082,83,42210,83,94010,83,66198,83,66592,83,119853,116,119905,116,119957,116,120009,116,120061,116,120113,116,120165,116,120217,116,120269,116,120321,116,120373,116,120425,116,120477,116,8868,84,10201,84,128872,84,65332,84,119827,84,119879,84,119931,84,119983,84,120035,84,120087,84,120139,84,120191,84,120243,84,120295,84,120347,84,120399,84,120451,84,932,84,120507,84,120565,84,120623,84,120681,84,120739,84,11430,84,5026,84,42196,84,93962,84,71868,84,66199,84,66225,84,66325,84,119854,117,119906,117,119958,117,120010,117,120062,117,120114,117,120166,117,120218,117,120270,117,120322,117,120374,117,120426,117,120478,117,42911,117,7452,117,43854,117,43858,117,651,117,965,117,120534,117,120592,117,120650,117,120708,117,120766,117,1405,117,66806,117,71896,117,8746,85,8899,85,119828,85,119880,85,119932,85,119984,85,120036,85,120088,85,120140,85,120192,85,120244,85,120296,85,120348,85,120400,85,120452,85,1357,85,4608,85,66766,85,5196,85,42228,85,94018,85,71864,85,8744,118,8897,118,65366,118,8564,118,119855,118,119907,118,119959,118,120011,118,120063,118,120115,118,120167,118,120219,118,120271,118,120323,118,120375,118,120427,118,120479,118,7456,118,957,118,120526,118,120584,118,120642,118,120700,118,120758,118,1141,118,1496,118,71430,118,43945,118,71872,118,119309,86,1639,86,1783,86,8548,86,119829,86,119881,86,119933,86,119985,86,120037,86,120089,86,120141,86,120193,86,120245,86,120297,86,120349,86,120401,86,120453,86,1140,86,11576,86,5081,86,5167,86,42719,86,42214,86,93960,86,71840,86,66845,86,623,119,119856,119,119908,119,119960,119,120012,119,120064,119,120116,119,120168,119,120220,119,120272,119,120324,119,120376,119,120428,119,120480,119,7457,119,1121,119,1309,119,1377,119,71434,119,71438,119,71439,119,43907,119,71919,87,71910,87,119830,87,119882,87,119934,87,119986,87,120038,87,120090,87,120142,87,120194,87,120246,87,120298,87,120350,87,120402,87,120454,87,1308,87,5043,87,5076,87,42218,87,5742,120,10539,120,10540,120,10799,120,65368,120,8569,120,119857,120,119909,120,119961,120,120013,120,120065,120,120117,120,120169,120,120221,120,120273,120,120325,120,120377,120,120429,120,120481,120,5441,120,5501,120,5741,88,9587,88,66338,88,71916,88,65336,88,8553,88,119831,88,119883,88,119935,88,119987,88,120039,88,120091,88,120143,88,120195,88,120247,88,120299,88,120351,88,120403,88,120455,88,42931,88,935,88,120510,88,120568,88,120626,88,120684,88,120742,88,11436,88,11613,88,5815,88,42219,88,66192,88,66228,88,66327,88,66855,88,611,121,7564,121,65369,121,119858,121,119910,121,119962,121,120014,121,120066,121,120118,121,120170,121,120222,121,120274,121,120326,121,120378,121,120430,121,120482,121,655,121,7935,121,43866,121,947,121,8509,121,120516,121,120574,121,120632,121,120690,121,120748,121,1199,121,4327,121,71900,121,65337,89,119832,89,119884,89,119936,89,119988,89,120040,89,120092,89,120144,89,120196,89,120248,89,120300,89,120352,89,120404,89,120456,89,933,89,978,89,120508,89,120566,89,120624,89,120682,89,120740,89,11432,89,1198,89,5033,89,5053,89,42220,89,94019,89,71844,89,66226,89,119859,122,119911,122,119963,122,120015,122,120067,122,120119,122,120171,122,120223,122,120275,122,120327,122,120379,122,120431,122,120483,122,7458,122,43923,122,71876,122,66293,90,71909,90,65338,90,8484,90,8488,90,119833,90,119885,90,119937,90,119989,90,120041,90,120197,90,120249,90,120301,90,120353,90,120405,90,120457,90,918,90,120493,90,120551,90,120609,90,120667,90,120725,90,5059,90,42204,90,71849,90,65282,34,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,65297,49,65298,50,65299,51,65300,52,65301,53,65302,54,65303,55,65304,56,65305,57,65308,60,65309,61,65310,62,65312,64,65316,68,65318,70,65319,71,65324,76,65329,81,65330,82,65333,85,65334,86,65335,87,65343,95,65346,98,65348,100,65350,102,65355,107,65357,109,65358,110,65361,113,65362,114,65364,116,65365,117,65367,119,65370,122,65371,123,65373,125,119846,109],\\\"_default\\\":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"cs\\\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"de\\\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"es\\\":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"fr\\\":[65374,126,65306,58,65281,33,8216,96,8245,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"it\\\":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"ja\\\":[8211,45,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65292,44,65307,59],\\\"ko\\\":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"pl\\\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"pt-BR\\\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"qps-ploc\\\":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"ru\\\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"tr\\\":[160,32,8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"zh-hans\\\":[65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41],\\\"zh-hant\\\":[8211,45,65374,126,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65307,59]}');\n});\nAmbiguousCharacters.cache = new LRUCachedFunction({ getCacheKey: JSON.stringify }, (locales) => {\n    function arrayToMap(arr) {\n        const result = new Map();\n        for (let i = 0; i < arr.length; i += 2) {\n            result.set(arr[i], arr[i + 1]);\n        }\n        return result;\n    }\n    function mergeMaps(map1, map2) {\n        const result = new Map(map1);\n        for (const [key, value] of map2) {\n            result.set(key, value);\n        }\n        return result;\n    }\n    function intersectMaps(map1, map2) {\n        if (!map1) {\n            return map2;\n        }\n        const result = new Map();\n        for (const [key, value] of map1) {\n            if (map2.has(key)) {\n                result.set(key, value);\n            }\n        }\n        return result;\n    }\n    const data = _a.ambiguousCharacterData.value;\n    let filteredLocales = locales.filter((l) => !l.startsWith('_') && l in data);\n    if (filteredLocales.length === 0) {\n        filteredLocales = ['_default'];\n    }\n    let languageSpecificMap = undefined;\n    for (const locale of filteredLocales) {\n        const map = arrayToMap(data[locale]);\n        languageSpecificMap = intersectMaps(languageSpecificMap, map);\n    }\n    const commonMap = arrayToMap(data['_common']);\n    const map = mergeMaps(commonMap, languageSpecificMap);\n    return new _a(map);\n});\nAmbiguousCharacters._locales = new Lazy(() => Object.keys(_a.ambiguousCharacterData.value).filter((k) => !k.startsWith('_')));\nexport class InvisibleCharacters {\n    static getRawData() {\n        // Generated using https://github.com/hediet/vscode-unicode-data\n        return JSON.parse('[9,10,11,12,13,32,127,160,173,847,1564,4447,4448,6068,6069,6155,6156,6157,6158,7355,7356,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203,8204,8205,8206,8207,8234,8235,8236,8237,8238,8239,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,10240,12288,12644,65024,65025,65026,65027,65028,65029,65030,65031,65032,65033,65034,65035,65036,65037,65038,65039,65279,65440,65520,65521,65522,65523,65524,65525,65526,65527,65528,65532,78844,119155,119156,119157,119158,119159,119160,119161,119162,917504,917505,917506,917507,917508,917509,917510,917511,917512,917513,917514,917515,917516,917517,917518,917519,917520,917521,917522,917523,917524,917525,917526,917527,917528,917529,917530,917531,917532,917533,917534,917535,917536,917537,917538,917539,917540,917541,917542,917543,917544,917545,917546,917547,917548,917549,917550,917551,917552,917553,917554,917555,917556,917557,917558,917559,917560,917561,917562,917563,917564,917565,917566,917567,917568,917569,917570,917571,917572,917573,917574,917575,917576,917577,917578,917579,917580,917581,917582,917583,917584,917585,917586,917587,917588,917589,917590,917591,917592,917593,917594,917595,917596,917597,917598,917599,917600,917601,917602,917603,917604,917605,917606,917607,917608,917609,917610,917611,917612,917613,917614,917615,917616,917617,917618,917619,917620,917621,917622,917623,917624,917625,917626,917627,917628,917629,917630,917631,917760,917761,917762,917763,917764,917765,917766,917767,917768,917769,917770,917771,917772,917773,917774,917775,917776,917777,917778,917779,917780,917781,917782,917783,917784,917785,917786,917787,917788,917789,917790,917791,917792,917793,917794,917795,917796,917797,917798,917799,917800,917801,917802,917803,917804,917805,917806,917807,917808,917809,917810,917811,917812,917813,917814,917815,917816,917817,917818,917819,917820,917821,917822,917823,917824,917825,917826,917827,917828,917829,917830,917831,917832,917833,917834,917835,917836,917837,917838,917839,917840,917841,917842,917843,917844,917845,917846,917847,917848,917849,917850,917851,917852,917853,917854,917855,917856,917857,917858,917859,917860,917861,917862,917863,917864,917865,917866,917867,917868,917869,917870,917871,917872,917873,917874,917875,917876,917877,917878,917879,917880,917881,917882,917883,917884,917885,917886,917887,917888,917889,917890,917891,917892,917893,917894,917895,917896,917897,917898,917899,917900,917901,917902,917903,917904,917905,917906,917907,917908,917909,917910,917911,917912,917913,917914,917915,917916,917917,917918,917919,917920,917921,917922,917923,917924,917925,917926,917927,917928,917929,917930,917931,917932,917933,917934,917935,917936,917937,917938,917939,917940,917941,917942,917943,917944,917945,917946,917947,917948,917949,917950,917951,917952,917953,917954,917955,917956,917957,917958,917959,917960,917961,917962,917963,917964,917965,917966,917967,917968,917969,917970,917971,917972,917973,917974,917975,917976,917977,917978,917979,917980,917981,917982,917983,917984,917985,917986,917987,917988,917989,917990,917991,917992,917993,917994,917995,917996,917997,917998,917999]');\n    }\n    static getData() {\n        if (!this._data) {\n            this._data = new Set(InvisibleCharacters.getRawData());\n        }\n        return this._data;\n    }\n    static isInvisibleCharacter(codePoint) {\n        return InvisibleCharacters.getData().has(codePoint);\n    }\n    static get codePoints() {\n        return InvisibleCharacters.getData();\n    }\n}\nInvisibleCharacters._data = undefined;\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/symbols.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * Can be passed into the Delayed to defer using a microtask\n * */\nexport const MicrotaskDelay = Symbol('MicrotaskDelay');\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/ternarySearchTree.js",
    "content": "import { compare, compareIgnoreCase, compareSubstring, compareSubstringIgnoreCase } from './strings.js';\nexport class StringIterator {\n    constructor() {\n        this._value = '';\n        this._pos = 0;\n    }\n    reset(key) {\n        this._value = key;\n        this._pos = 0;\n        return this;\n    }\n    next() {\n        this._pos += 1;\n        return this;\n    }\n    hasNext() {\n        return this._pos < this._value.length - 1;\n    }\n    cmp(a) {\n        const aCode = a.charCodeAt(0);\n        const thisCode = this._value.charCodeAt(this._pos);\n        return aCode - thisCode;\n    }\n    value() {\n        return this._value[this._pos];\n    }\n}\nexport class ConfigKeysIterator {\n    constructor(_caseSensitive = true) {\n        this._caseSensitive = _caseSensitive;\n    }\n    reset(key) {\n        this._value = key;\n        this._from = 0;\n        this._to = 0;\n        return this.next();\n    }\n    hasNext() {\n        return this._to < this._value.length;\n    }\n    next() {\n        // this._data = key.split(/[\\\\/]/).filter(s => !!s);\n        this._from = this._to;\n        let justSeps = true;\n        for (; this._to < this._value.length; this._to++) {\n            const ch = this._value.charCodeAt(this._to);\n            if (ch === 46 /* CharCode.Period */) {\n                if (justSeps) {\n                    this._from++;\n                }\n                else {\n                    break;\n                }\n            }\n            else {\n                justSeps = false;\n            }\n        }\n        return this;\n    }\n    cmp(a) {\n        return this._caseSensitive\n            ? compareSubstring(a, this._value, 0, a.length, this._from, this._to)\n            : compareSubstringIgnoreCase(a, this._value, 0, a.length, this._from, this._to);\n    }\n    value() {\n        return this._value.substring(this._from, this._to);\n    }\n}\nexport class PathIterator {\n    constructor(_splitOnBackslash = true, _caseSensitive = true) {\n        this._splitOnBackslash = _splitOnBackslash;\n        this._caseSensitive = _caseSensitive;\n    }\n    reset(key) {\n        this._from = 0;\n        this._to = 0;\n        this._value = key;\n        this._valueLen = key.length;\n        for (let pos = key.length - 1; pos >= 0; pos--, this._valueLen--) {\n            const ch = this._value.charCodeAt(pos);\n            if (!(ch === 47 /* CharCode.Slash */ || this._splitOnBackslash && ch === 92 /* CharCode.Backslash */)) {\n                break;\n            }\n        }\n        return this.next();\n    }\n    hasNext() {\n        return this._to < this._valueLen;\n    }\n    next() {\n        // this._data = key.split(/[\\\\/]/).filter(s => !!s);\n        this._from = this._to;\n        let justSeps = true;\n        for (; this._to < this._valueLen; this._to++) {\n            const ch = this._value.charCodeAt(this._to);\n            if (ch === 47 /* CharCode.Slash */ || this._splitOnBackslash && ch === 92 /* CharCode.Backslash */) {\n                if (justSeps) {\n                    this._from++;\n                }\n                else {\n                    break;\n                }\n            }\n            else {\n                justSeps = false;\n            }\n        }\n        return this;\n    }\n    cmp(a) {\n        return this._caseSensitive\n            ? compareSubstring(a, this._value, 0, a.length, this._from, this._to)\n            : compareSubstringIgnoreCase(a, this._value, 0, a.length, this._from, this._to);\n    }\n    value() {\n        return this._value.substring(this._from, this._to);\n    }\n}\nexport class UriIterator {\n    constructor(_ignorePathCasing, _ignoreQueryAndFragment) {\n        this._ignorePathCasing = _ignorePathCasing;\n        this._ignoreQueryAndFragment = _ignoreQueryAndFragment;\n        this._states = [];\n        this._stateIdx = 0;\n    }\n    reset(key) {\n        this._value = key;\n        this._states = [];\n        if (this._value.scheme) {\n            this._states.push(1 /* UriIteratorState.Scheme */);\n        }\n        if (this._value.authority) {\n            this._states.push(2 /* UriIteratorState.Authority */);\n        }\n        if (this._value.path) {\n            this._pathIterator = new PathIterator(false, !this._ignorePathCasing(key));\n            this._pathIterator.reset(key.path);\n            if (this._pathIterator.value()) {\n                this._states.push(3 /* UriIteratorState.Path */);\n            }\n        }\n        if (!this._ignoreQueryAndFragment(key)) {\n            if (this._value.query) {\n                this._states.push(4 /* UriIteratorState.Query */);\n            }\n            if (this._value.fragment) {\n                this._states.push(5 /* UriIteratorState.Fragment */);\n            }\n        }\n        this._stateIdx = 0;\n        return this;\n    }\n    next() {\n        if (this._states[this._stateIdx] === 3 /* UriIteratorState.Path */ && this._pathIterator.hasNext()) {\n            this._pathIterator.next();\n        }\n        else {\n            this._stateIdx += 1;\n        }\n        return this;\n    }\n    hasNext() {\n        return (this._states[this._stateIdx] === 3 /* UriIteratorState.Path */ && this._pathIterator.hasNext())\n            || this._stateIdx < this._states.length - 1;\n    }\n    cmp(a) {\n        if (this._states[this._stateIdx] === 1 /* UriIteratorState.Scheme */) {\n            return compareIgnoreCase(a, this._value.scheme);\n        }\n        else if (this._states[this._stateIdx] === 2 /* UriIteratorState.Authority */) {\n            return compareIgnoreCase(a, this._value.authority);\n        }\n        else if (this._states[this._stateIdx] === 3 /* UriIteratorState.Path */) {\n            return this._pathIterator.cmp(a);\n        }\n        else if (this._states[this._stateIdx] === 4 /* UriIteratorState.Query */) {\n            return compare(a, this._value.query);\n        }\n        else if (this._states[this._stateIdx] === 5 /* UriIteratorState.Fragment */) {\n            return compare(a, this._value.fragment);\n        }\n        throw new Error();\n    }\n    value() {\n        if (this._states[this._stateIdx] === 1 /* UriIteratorState.Scheme */) {\n            return this._value.scheme;\n        }\n        else if (this._states[this._stateIdx] === 2 /* UriIteratorState.Authority */) {\n            return this._value.authority;\n        }\n        else if (this._states[this._stateIdx] === 3 /* UriIteratorState.Path */) {\n            return this._pathIterator.value();\n        }\n        else if (this._states[this._stateIdx] === 4 /* UriIteratorState.Query */) {\n            return this._value.query;\n        }\n        else if (this._states[this._stateIdx] === 5 /* UriIteratorState.Fragment */) {\n            return this._value.fragment;\n        }\n        throw new Error();\n    }\n}\nclass TernarySearchTreeNode {\n    constructor() {\n        this.height = 1;\n    }\n    rotateLeft() {\n        const tmp = this.right;\n        this.right = tmp.left;\n        tmp.left = this;\n        this.updateHeight();\n        tmp.updateHeight();\n        return tmp;\n    }\n    rotateRight() {\n        const tmp = this.left;\n        this.left = tmp.right;\n        tmp.right = this;\n        this.updateHeight();\n        tmp.updateHeight();\n        return tmp;\n    }\n    updateHeight() {\n        this.height = 1 + Math.max(this.heightLeft, this.heightRight);\n    }\n    balanceFactor() {\n        return this.heightRight - this.heightLeft;\n    }\n    get heightLeft() {\n        var _a, _b;\n        return (_b = (_a = this.left) === null || _a === void 0 ? void 0 : _a.height) !== null && _b !== void 0 ? _b : 0;\n    }\n    get heightRight() {\n        var _a, _b;\n        return (_b = (_a = this.right) === null || _a === void 0 ? void 0 : _a.height) !== null && _b !== void 0 ? _b : 0;\n    }\n}\nexport class TernarySearchTree {\n    static forUris(ignorePathCasing = () => false, ignoreQueryAndFragment = () => false) {\n        return new TernarySearchTree(new UriIterator(ignorePathCasing, ignoreQueryAndFragment));\n    }\n    static forStrings() {\n        return new TernarySearchTree(new StringIterator());\n    }\n    static forConfigKeys() {\n        return new TernarySearchTree(new ConfigKeysIterator());\n    }\n    constructor(segments) {\n        this._iter = segments;\n    }\n    clear() {\n        this._root = undefined;\n    }\n    set(key, element) {\n        const iter = this._iter.reset(key);\n        let node;\n        if (!this._root) {\n            this._root = new TernarySearchTreeNode();\n            this._root.segment = iter.value();\n        }\n        const stack = [];\n        // find insert_node\n        node = this._root;\n        while (true) {\n            const val = iter.cmp(node.segment);\n            if (val > 0) {\n                // left\n                if (!node.left) {\n                    node.left = new TernarySearchTreeNode();\n                    node.left.segment = iter.value();\n                }\n                stack.push([-1 /* Dir.Left */, node]);\n                node = node.left;\n            }\n            else if (val < 0) {\n                // right\n                if (!node.right) {\n                    node.right = new TernarySearchTreeNode();\n                    node.right.segment = iter.value();\n                }\n                stack.push([1 /* Dir.Right */, node]);\n                node = node.right;\n            }\n            else if (iter.hasNext()) {\n                // mid\n                iter.next();\n                if (!node.mid) {\n                    node.mid = new TernarySearchTreeNode();\n                    node.mid.segment = iter.value();\n                }\n                stack.push([0 /* Dir.Mid */, node]);\n                node = node.mid;\n            }\n            else {\n                break;\n            }\n        }\n        // set value\n        const oldElement = node.value;\n        node.value = element;\n        node.key = key;\n        // balance\n        for (let i = stack.length - 1; i >= 0; i--) {\n            const node = stack[i][1];\n            node.updateHeight();\n            const bf = node.balanceFactor();\n            if (bf < -1 || bf > 1) {\n                // needs rotate\n                const d1 = stack[i][0];\n                const d2 = stack[i + 1][0];\n                if (d1 === 1 /* Dir.Right */ && d2 === 1 /* Dir.Right */) {\n                    //right, right -> rotate left\n                    stack[i][1] = node.rotateLeft();\n                }\n                else if (d1 === -1 /* Dir.Left */ && d2 === -1 /* Dir.Left */) {\n                    // left, left -> rotate right\n                    stack[i][1] = node.rotateRight();\n                }\n                else if (d1 === 1 /* Dir.Right */ && d2 === -1 /* Dir.Left */) {\n                    // right, left -> double rotate right, left\n                    node.right = stack[i + 1][1] = stack[i + 1][1].rotateRight();\n                    stack[i][1] = node.rotateLeft();\n                }\n                else if (d1 === -1 /* Dir.Left */ && d2 === 1 /* Dir.Right */) {\n                    // left, right -> double rotate left, right\n                    node.left = stack[i + 1][1] = stack[i + 1][1].rotateLeft();\n                    stack[i][1] = node.rotateRight();\n                }\n                else {\n                    throw new Error();\n                }\n                // patch path to parent\n                if (i > 0) {\n                    switch (stack[i - 1][0]) {\n                        case -1 /* Dir.Left */:\n                            stack[i - 1][1].left = stack[i][1];\n                            break;\n                        case 1 /* Dir.Right */:\n                            stack[i - 1][1].right = stack[i][1];\n                            break;\n                        case 0 /* Dir.Mid */:\n                            stack[i - 1][1].mid = stack[i][1];\n                            break;\n                    }\n                }\n                else {\n                    this._root = stack[0][1];\n                }\n            }\n        }\n        return oldElement;\n    }\n    get(key) {\n        var _a;\n        return (_a = this._getNode(key)) === null || _a === void 0 ? void 0 : _a.value;\n    }\n    _getNode(key) {\n        const iter = this._iter.reset(key);\n        let node = this._root;\n        while (node) {\n            const val = iter.cmp(node.segment);\n            if (val > 0) {\n                // left\n                node = node.left;\n            }\n            else if (val < 0) {\n                // right\n                node = node.right;\n            }\n            else if (iter.hasNext()) {\n                // mid\n                iter.next();\n                node = node.mid;\n            }\n            else {\n                break;\n            }\n        }\n        return node;\n    }\n    has(key) {\n        const node = this._getNode(key);\n        return !((node === null || node === void 0 ? void 0 : node.value) === undefined && (node === null || node === void 0 ? void 0 : node.mid) === undefined);\n    }\n    delete(key) {\n        return this._delete(key, false);\n    }\n    deleteSuperstr(key) {\n        return this._delete(key, true);\n    }\n    _delete(key, superStr) {\n        var _a;\n        const iter = this._iter.reset(key);\n        const stack = [];\n        let node = this._root;\n        // find node\n        while (node) {\n            const val = iter.cmp(node.segment);\n            if (val > 0) {\n                // left\n                stack.push([-1 /* Dir.Left */, node]);\n                node = node.left;\n            }\n            else if (val < 0) {\n                // right\n                stack.push([1 /* Dir.Right */, node]);\n                node = node.right;\n            }\n            else if (iter.hasNext()) {\n                // mid\n                iter.next();\n                stack.push([0 /* Dir.Mid */, node]);\n                node = node.mid;\n            }\n            else {\n                break;\n            }\n        }\n        if (!node) {\n            // node not found\n            return;\n        }\n        if (superStr) {\n            // removing children, reset height\n            node.left = undefined;\n            node.mid = undefined;\n            node.right = undefined;\n            node.height = 1;\n        }\n        else {\n            // removing element\n            node.key = undefined;\n            node.value = undefined;\n        }\n        // BST node removal\n        if (!node.mid && !node.value) {\n            if (node.left && node.right) {\n                // full node\n                // replace deleted-node with the min-node of the right branch.\n                // If there is no true min-node leave things as they are\n                const min = this._min(node.right);\n                if (min.key) {\n                    const { key, value, segment } = min;\n                    this._delete(min.key, false);\n                    node.key = key;\n                    node.value = value;\n                    node.segment = segment;\n                }\n            }\n            else {\n                // empty or half empty\n                const newChild = (_a = node.left) !== null && _a !== void 0 ? _a : node.right;\n                if (stack.length > 0) {\n                    const [dir, parent] = stack[stack.length - 1];\n                    switch (dir) {\n                        case -1 /* Dir.Left */:\n                            parent.left = newChild;\n                            break;\n                        case 0 /* Dir.Mid */:\n                            parent.mid = newChild;\n                            break;\n                        case 1 /* Dir.Right */:\n                            parent.right = newChild;\n                            break;\n                    }\n                }\n                else {\n                    this._root = newChild;\n                }\n            }\n        }\n        // AVL balance\n        for (let i = stack.length - 1; i >= 0; i--) {\n            const node = stack[i][1];\n            node.updateHeight();\n            const bf = node.balanceFactor();\n            if (bf > 1) {\n                // right heavy\n                if (node.right.balanceFactor() >= 0) {\n                    // right, right -> rotate left\n                    stack[i][1] = node.rotateLeft();\n                }\n                else {\n                    // right, left -> double rotate\n                    node.right = node.right.rotateRight();\n                    stack[i][1] = node.rotateLeft();\n                }\n            }\n            else if (bf < -1) {\n                // left heavy\n                if (node.left.balanceFactor() <= 0) {\n                    // left, left -> rotate right\n                    stack[i][1] = node.rotateRight();\n                }\n                else {\n                    // left, right -> double rotate\n                    node.left = node.left.rotateLeft();\n                    stack[i][1] = node.rotateRight();\n                }\n            }\n            // patch path to parent\n            if (i > 0) {\n                switch (stack[i - 1][0]) {\n                    case -1 /* Dir.Left */:\n                        stack[i - 1][1].left = stack[i][1];\n                        break;\n                    case 1 /* Dir.Right */:\n                        stack[i - 1][1].right = stack[i][1];\n                        break;\n                    case 0 /* Dir.Mid */:\n                        stack[i - 1][1].mid = stack[i][1];\n                        break;\n                }\n            }\n            else {\n                this._root = stack[0][1];\n            }\n        }\n    }\n    _min(node) {\n        while (node.left) {\n            node = node.left;\n        }\n        return node;\n    }\n    findSubstr(key) {\n        const iter = this._iter.reset(key);\n        let node = this._root;\n        let candidate = undefined;\n        while (node) {\n            const val = iter.cmp(node.segment);\n            if (val > 0) {\n                // left\n                node = node.left;\n            }\n            else if (val < 0) {\n                // right\n                node = node.right;\n            }\n            else if (iter.hasNext()) {\n                // mid\n                iter.next();\n                candidate = node.value || candidate;\n                node = node.mid;\n            }\n            else {\n                break;\n            }\n        }\n        return node && node.value || candidate;\n    }\n    findSuperstr(key) {\n        return this._findSuperstrOrElement(key, false);\n    }\n    _findSuperstrOrElement(key, allowValue) {\n        const iter = this._iter.reset(key);\n        let node = this._root;\n        while (node) {\n            const val = iter.cmp(node.segment);\n            if (val > 0) {\n                // left\n                node = node.left;\n            }\n            else if (val < 0) {\n                // right\n                node = node.right;\n            }\n            else if (iter.hasNext()) {\n                // mid\n                iter.next();\n                node = node.mid;\n            }\n            else {\n                // collect\n                if (!node.mid) {\n                    if (allowValue) {\n                        return node.value;\n                    }\n                    else {\n                        return undefined;\n                    }\n                }\n                else {\n                    return this._entries(node.mid);\n                }\n            }\n        }\n        return undefined;\n    }\n    forEach(callback) {\n        for (const [key, value] of this) {\n            callback(value, key);\n        }\n    }\n    *[Symbol.iterator]() {\n        yield* this._entries(this._root);\n    }\n    _entries(node) {\n        const result = [];\n        this._dfsEntries(node, result);\n        return result[Symbol.iterator]();\n    }\n    _dfsEntries(node, bucket) {\n        // DFS\n        if (!node) {\n            return;\n        }\n        if (node.left) {\n            this._dfsEntries(node.left, bucket);\n        }\n        if (node.value) {\n            bucket.push([node.key, node.value]);\n        }\n        if (node.mid) {\n            this._dfsEntries(node.mid, bucket);\n        }\n        if (node.right) {\n            this._dfsEntries(node.right, bucket);\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/tfIdf.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nfunction countMapFrom(values) {\n    var _a;\n    const map = new Map();\n    for (const value of values) {\n        map.set(value, ((_a = map.get(value)) !== null && _a !== void 0 ? _a : 0) + 1);\n    }\n    return map;\n}\n/**\n * Implementation of tf-idf (term frequency-inverse document frequency) for a set of\n * documents where each document contains one or more chunks of text.\n * Each document is identified by a key, and the score for each document is computed\n * by taking the max score over all the chunks in the document.\n */\nexport class TfIdfCalculator {\n    constructor() {\n        /**\n         * Total number of chunks\n         */\n        this.chunkCount = 0;\n        this.chunkOccurrences = new Map();\n        this.documents = new Map();\n    }\n    calculateScores(query, token) {\n        const embedding = this.computeEmbedding(query);\n        const idfCache = new Map();\n        const scores = [];\n        // For each document, generate one score\n        for (const [key, doc] of this.documents) {\n            if (token.isCancellationRequested) {\n                return [];\n            }\n            for (const chunk of doc.chunks) {\n                const score = this.computeSimilarityScore(chunk, embedding, idfCache);\n                if (score > 0) {\n                    scores.push({ key, score });\n                }\n            }\n        }\n        return scores;\n    }\n    /**\n     * Count how many times each term (word) appears in a string.\n     */\n    static termFrequencies(input) {\n        return countMapFrom(TfIdfCalculator.splitTerms(input));\n    }\n    /**\n     * Break a string into terms (words).\n     */\n    static *splitTerms(input) {\n        const normalize = (word) => word.toLowerCase();\n        // Only match on words that are at least 3 characters long and start with a letter\n        for (const [word] of input.matchAll(/\\b\\p{Letter}[\\p{Letter}\\d]{2,}\\b/gu)) {\n            yield normalize(word);\n            const camelParts = word.replace(/([a-z])([A-Z])/g, '$1 $2').split(/\\s+/g);\n            if (camelParts.length > 1) {\n                for (const part of camelParts) {\n                    // Require at least 3 letters in the parts of a camel case word\n                    if (part.length > 2 && /\\p{Letter}{3,}/gu.test(part)) {\n                        yield normalize(part);\n                    }\n                }\n            }\n        }\n    }\n    updateDocuments(documents) {\n        var _a;\n        for (const { key } of documents) {\n            this.deleteDocument(key);\n        }\n        for (const doc of documents) {\n            const chunks = [];\n            for (const text of doc.textChunks) {\n                // TODO: See if we can compute the tf lazily\n                // The challenge is that we need to also update the `chunkOccurrences`\n                // and all of those updates need to get flushed before the real TF-IDF of\n                // anything is computed.\n                const tf = TfIdfCalculator.termFrequencies(text);\n                // Update occurrences list\n                for (const term of tf.keys()) {\n                    this.chunkOccurrences.set(term, ((_a = this.chunkOccurrences.get(term)) !== null && _a !== void 0 ? _a : 0) + 1);\n                }\n                chunks.push({ text, tf });\n            }\n            this.chunkCount += chunks.length;\n            this.documents.set(doc.key, { chunks });\n        }\n        return this;\n    }\n    deleteDocument(key) {\n        const doc = this.documents.get(key);\n        if (!doc) {\n            return;\n        }\n        this.documents.delete(key);\n        this.chunkCount -= doc.chunks.length;\n        // Update term occurrences for the document\n        for (const chunk of doc.chunks) {\n            for (const term of chunk.tf.keys()) {\n                const currentOccurrences = this.chunkOccurrences.get(term);\n                if (typeof currentOccurrences === 'number') {\n                    const newOccurrences = currentOccurrences - 1;\n                    if (newOccurrences <= 0) {\n                        this.chunkOccurrences.delete(term);\n                    }\n                    else {\n                        this.chunkOccurrences.set(term, newOccurrences);\n                    }\n                }\n            }\n        }\n    }\n    computeSimilarityScore(chunk, queryEmbedding, idfCache) {\n        // Compute the dot product between the chunk's embedding and the query embedding\n        // Note that the chunk embedding is computed lazily on a per-term basis.\n        // This lets us skip a large number of calculations because the majority\n        // of chunks do not share any terms with the query.\n        let sum = 0;\n        for (const [term, termTfidf] of Object.entries(queryEmbedding)) {\n            const chunkTf = chunk.tf.get(term);\n            if (!chunkTf) {\n                // Term does not appear in chunk so it has no contribution\n                continue;\n            }\n            let chunkIdf = idfCache.get(term);\n            if (typeof chunkIdf !== 'number') {\n                chunkIdf = this.computeIdf(term);\n                idfCache.set(term, chunkIdf);\n            }\n            const chunkTfidf = chunkTf * chunkIdf;\n            sum += chunkTfidf * termTfidf;\n        }\n        return sum;\n    }\n    computeEmbedding(input) {\n        const tf = TfIdfCalculator.termFrequencies(input);\n        return this.computeTfidf(tf);\n    }\n    computeIdf(term) {\n        var _a;\n        const chunkOccurrences = (_a = this.chunkOccurrences.get(term)) !== null && _a !== void 0 ? _a : 0;\n        return chunkOccurrences > 0\n            ? Math.log((this.chunkCount + 1) / chunkOccurrences)\n            : 0;\n    }\n    computeTfidf(termFrequencies) {\n        const embedding = Object.create(null);\n        for (const [word, occurrences] of termFrequencies) {\n            const idf = this.computeIdf(word);\n            if (idf > 0) {\n                embedding[word] = occurrences * idf;\n            }\n        }\n        return embedding;\n    }\n}\n/**\n * Normalize the scores to be between 0 and 1 and sort them decending.\n * @param scores array of scores from {@link TfIdfCalculator.calculateScores}\n * @returns normalized scores\n */\nexport function normalizeTfIdfScores(scores) {\n    var _a, _b;\n    // copy of scores\n    const result = scores.slice(0);\n    // sort descending\n    result.sort((a, b) => b.score - a.score);\n    // normalize\n    const max = (_b = (_a = result[0]) === null || _a === void 0 ? void 0 : _a.score) !== null && _b !== void 0 ? _b : 0;\n    if (max > 0) {\n        for (const score of result) {\n            score.score /= max;\n        }\n    }\n    return result;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/themables.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Codicon } from './codicons.js';\nexport var ThemeColor;\n(function (ThemeColor) {\n    function isThemeColor(obj) {\n        return obj && typeof obj === 'object' && typeof obj.id === 'string';\n    }\n    ThemeColor.isThemeColor = isThemeColor;\n})(ThemeColor || (ThemeColor = {}));\nexport var ThemeIcon;\n(function (ThemeIcon) {\n    ThemeIcon.iconNameSegment = '[A-Za-z0-9]+';\n    ThemeIcon.iconNameExpression = '[A-Za-z0-9-]+';\n    ThemeIcon.iconModifierExpression = '~[A-Za-z]+';\n    ThemeIcon.iconNameCharacter = '[A-Za-z0-9~-]';\n    const ThemeIconIdRegex = new RegExp(`^(${ThemeIcon.iconNameExpression})(${ThemeIcon.iconModifierExpression})?$`);\n    function asClassNameArray(icon) {\n        const match = ThemeIconIdRegex.exec(icon.id);\n        if (!match) {\n            return asClassNameArray(Codicon.error);\n        }\n        const [, id, modifier] = match;\n        const classNames = ['codicon', 'codicon-' + id];\n        if (modifier) {\n            classNames.push('codicon-modifier-' + modifier.substring(1));\n        }\n        return classNames;\n    }\n    ThemeIcon.asClassNameArray = asClassNameArray;\n    function asClassName(icon) {\n        return asClassNameArray(icon).join(' ');\n    }\n    ThemeIcon.asClassName = asClassName;\n    function asCSSSelector(icon) {\n        return '.' + asClassNameArray(icon).join('.');\n    }\n    ThemeIcon.asCSSSelector = asCSSSelector;\n    function isThemeIcon(obj) {\n        return obj && typeof obj === 'object' && typeof obj.id === 'string' && (typeof obj.color === 'undefined' || ThemeColor.isThemeColor(obj.color));\n    }\n    ThemeIcon.isThemeIcon = isThemeIcon;\n    const _regexFromString = new RegExp(`^\\\\$\\\\((${ThemeIcon.iconNameExpression}(?:${ThemeIcon.iconModifierExpression})?)\\\\)$`);\n    function fromString(str) {\n        const match = _regexFromString.exec(str);\n        if (!match) {\n            return undefined;\n        }\n        const [, name] = match;\n        return { id: name };\n    }\n    ThemeIcon.fromString = fromString;\n    function fromId(id) {\n        return { id };\n    }\n    ThemeIcon.fromId = fromId;\n    function modify(icon, modifier) {\n        let id = icon.id;\n        const tildeIndex = id.lastIndexOf('~');\n        if (tildeIndex !== -1) {\n            id = id.substring(0, tildeIndex);\n        }\n        if (modifier) {\n            id = `${id}~${modifier}`;\n        }\n        return { id };\n    }\n    ThemeIcon.modify = modify;\n    function getModifier(icon) {\n        const tildeIndex = icon.id.lastIndexOf('~');\n        if (tildeIndex !== -1) {\n            return icon.id.substring(tildeIndex + 1);\n        }\n        return undefined;\n    }\n    ThemeIcon.getModifier = getModifier;\n    function isEqual(ti1, ti2) {\n        var _a, _b;\n        return ti1.id === ti2.id && ((_a = ti1.color) === null || _a === void 0 ? void 0 : _a.id) === ((_b = ti2.color) === null || _b === void 0 ? void 0 : _b.id);\n    }\n    ThemeIcon.isEqual = isEqual;\n})(ThemeIcon || (ThemeIcon = {}));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/types.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * @returns whether the provided parameter is a JavaScript String or not.\n */\nexport function isString(str) {\n    return (typeof str === 'string');\n}\n/**\n * @returns whether the provided parameter is of type `object` but **not**\n *\t`null`, an `array`, a `regexp`, nor a `date`.\n */\nexport function isObject(obj) {\n    // The method can't do a type cast since there are type (like strings) which\n    // are subclasses of any put not positvely matched by the function. Hence type\n    // narrowing results in wrong results.\n    return typeof obj === 'object'\n        && obj !== null\n        && !Array.isArray(obj)\n        && !(obj instanceof RegExp)\n        && !(obj instanceof Date);\n}\n/**\n * @returns whether the provided parameter is of type `Buffer` or Uint8Array dervived type\n */\nexport function isTypedArray(obj) {\n    const TypedArray = Object.getPrototypeOf(Uint8Array);\n    return typeof obj === 'object'\n        && obj instanceof TypedArray;\n}\n/**\n * In **contrast** to just checking `typeof` this will return `false` for `NaN`.\n * @returns whether the provided parameter is a JavaScript Number or not.\n */\nexport function isNumber(obj) {\n    return (typeof obj === 'number' && !isNaN(obj));\n}\n/**\n * @returns whether the provided parameter is an Iterable, casting to the given generic\n */\nexport function isIterable(obj) {\n    return !!obj && typeof obj[Symbol.iterator] === 'function';\n}\n/**\n * @returns whether the provided parameter is a JavaScript Boolean or not.\n */\nexport function isBoolean(obj) {\n    return (obj === true || obj === false);\n}\n/**\n * @returns whether the provided parameter is undefined.\n */\nexport function isUndefined(obj) {\n    return (typeof obj === 'undefined');\n}\n/**\n * @returns whether the provided parameter is defined.\n */\nexport function isDefined(arg) {\n    return !isUndefinedOrNull(arg);\n}\n/**\n * @returns whether the provided parameter is undefined or null.\n */\nexport function isUndefinedOrNull(obj) {\n    return (isUndefined(obj) || obj === null);\n}\nexport function assertType(condition, type) {\n    if (!condition) {\n        throw new Error(type ? `Unexpected type, expected '${type}'` : 'Unexpected type');\n    }\n}\n/**\n * Asserts that the argument passed in is neither undefined nor null.\n */\nexport function assertIsDefined(arg) {\n    if (isUndefinedOrNull(arg)) {\n        throw new Error('Assertion Failed: argument is undefined or null');\n    }\n    return arg;\n}\n/**\n * @returns whether the provided parameter is a JavaScript Function or not.\n */\nexport function isFunction(obj) {\n    return (typeof obj === 'function');\n}\nexport function validateConstraints(args, constraints) {\n    const len = Math.min(args.length, constraints.length);\n    for (let i = 0; i < len; i++) {\n        validateConstraint(args[i], constraints[i]);\n    }\n}\nexport function validateConstraint(arg, constraint) {\n    if (isString(constraint)) {\n        if (typeof arg !== constraint) {\n            throw new Error(`argument does not match constraint: typeof ${constraint}`);\n        }\n    }\n    else if (isFunction(constraint)) {\n        try {\n            if (arg instanceof constraint) {\n                return;\n            }\n        }\n        catch (_a) {\n            // ignore\n        }\n        if (!isUndefinedOrNull(arg) && arg.constructor === constraint) {\n            return;\n        }\n        if (constraint.length === 1 && constraint.call(undefined, arg) === true) {\n            return;\n        }\n        throw new Error(`argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true`);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/uint.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport function toUint8(v) {\n    if (v < 0) {\n        return 0;\n    }\n    if (v > 255 /* Constants.MAX_UINT_8 */) {\n        return 255 /* Constants.MAX_UINT_8 */;\n    }\n    return v | 0;\n}\nexport function toUint32(v) {\n    if (v < 0) {\n        return 0;\n    }\n    if (v > 4294967295 /* Constants.MAX_UINT_32 */) {\n        return 4294967295 /* Constants.MAX_UINT_32 */;\n    }\n    return v | 0;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/uri.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as paths from './path.js';\nimport { isWindows } from './platform.js';\nconst _schemePattern = /^\\w[\\w\\d+.-]*$/;\nconst _singleSlashStart = /^\\//;\nconst _doubleSlashStart = /^\\/\\//;\nfunction _validateUri(ret, _strict) {\n    // scheme, must be set\n    if (!ret.scheme && _strict) {\n        throw new Error(`[UriError]: Scheme is missing: {scheme: \"\", authority: \"${ret.authority}\", path: \"${ret.path}\", query: \"${ret.query}\", fragment: \"${ret.fragment}\"}`);\n    }\n    // scheme, https://tools.ietf.org/html/rfc3986#section-3.1\n    // ALPHA *( ALPHA / DIGIT / \"+\" / \"-\" / \".\" )\n    if (ret.scheme && !_schemePattern.test(ret.scheme)) {\n        throw new Error('[UriError]: Scheme contains illegal characters.');\n    }\n    // path, http://tools.ietf.org/html/rfc3986#section-3.3\n    // If a URI contains an authority component, then the path component\n    // must either be empty or begin with a slash (\"/\") character.  If a URI\n    // does not contain an authority component, then the path cannot begin\n    // with two slash characters (\"//\").\n    if (ret.path) {\n        if (ret.authority) {\n            if (!_singleSlashStart.test(ret.path)) {\n                throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash (\"/\") character');\n            }\n        }\n        else {\n            if (_doubleSlashStart.test(ret.path)) {\n                throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")');\n            }\n        }\n    }\n}\n// for a while we allowed uris *without* schemes and this is the migration\n// for them, e.g. an uri without scheme and without strict-mode warns and falls\n// back to the file-scheme. that should cause the least carnage and still be a\n// clear warning\nfunction _schemeFix(scheme, _strict) {\n    if (!scheme && !_strict) {\n        return 'file';\n    }\n    return scheme;\n}\n// implements a bit of https://tools.ietf.org/html/rfc3986#section-5\nfunction _referenceResolution(scheme, path) {\n    // the slash-character is our 'default base' as we don't\n    // support constructing URIs relative to other URIs. This\n    // also means that we alter and potentially break paths.\n    // see https://tools.ietf.org/html/rfc3986#section-5.1.4\n    switch (scheme) {\n        case 'https':\n        case 'http':\n        case 'file':\n            if (!path) {\n                path = _slash;\n            }\n            else if (path[0] !== _slash) {\n                path = _slash + path;\n            }\n            break;\n    }\n    return path;\n}\nconst _empty = '';\nconst _slash = '/';\nconst _regexp = /^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/;\n/**\n * Uniform Resource Identifier (URI) http://tools.ietf.org/html/rfc3986.\n * This class is a simple parser which creates the basic component parts\n * (http://tools.ietf.org/html/rfc3986#section-3) with minimal validation\n * and encoding.\n *\n * ```txt\n *       foo://example.com:8042/over/there?name=ferret#nose\n *       \\_/   \\______________/\\_________/ \\_________/ \\__/\n *        |           |            |            |        |\n *     scheme     authority       path        query   fragment\n *        |   _____________________|__\n *       / \\ /                        \\\n *       urn:example:animal:ferret:nose\n * ```\n */\nexport class URI {\n    static isUri(thing) {\n        if (thing instanceof URI) {\n            return true;\n        }\n        if (!thing) {\n            return false;\n        }\n        return typeof thing.authority === 'string'\n            && typeof thing.fragment === 'string'\n            && typeof thing.path === 'string'\n            && typeof thing.query === 'string'\n            && typeof thing.scheme === 'string'\n            && typeof thing.fsPath === 'string'\n            && typeof thing.with === 'function'\n            && typeof thing.toString === 'function';\n    }\n    /**\n     * @internal\n     */\n    constructor(schemeOrData, authority, path, query, fragment, _strict = false) {\n        if (typeof schemeOrData === 'object') {\n            this.scheme = schemeOrData.scheme || _empty;\n            this.authority = schemeOrData.authority || _empty;\n            this.path = schemeOrData.path || _empty;\n            this.query = schemeOrData.query || _empty;\n            this.fragment = schemeOrData.fragment || _empty;\n            // no validation because it's this URI\n            // that creates uri components.\n            // _validateUri(this);\n        }\n        else {\n            this.scheme = _schemeFix(schemeOrData, _strict);\n            this.authority = authority || _empty;\n            this.path = _referenceResolution(this.scheme, path || _empty);\n            this.query = query || _empty;\n            this.fragment = fragment || _empty;\n            _validateUri(this, _strict);\n        }\n    }\n    // ---- filesystem path -----------------------\n    /**\n     * Returns a string representing the corresponding file system path of this URI.\n     * Will handle UNC paths, normalizes windows drive letters to lower-case, and uses the\n     * platform specific path separator.\n     *\n     * * Will *not* validate the path for invalid characters and semantics.\n     * * Will *not* look at the scheme of this URI.\n     * * The result shall *not* be used for display purposes but for accessing a file on disk.\n     *\n     *\n     * The *difference* to `URI#path` is the use of the platform specific separator and the handling\n     * of UNC paths. See the below sample of a file-uri with an authority (UNC path).\n     *\n     * ```ts\n        const u = URI.parse('file://server/c$/folder/file.txt')\n        u.authority === 'server'\n        u.path === '/shares/c$/file.txt'\n        u.fsPath === '\\\\server\\c$\\folder\\file.txt'\n    ```\n     *\n     * Using `URI#path` to read a file (using fs-apis) would not be enough because parts of the path,\n     * namely the server name, would be missing. Therefore `URI#fsPath` exists - it's sugar to ease working\n     * with URIs that represent files on disk (`file` scheme).\n     */\n    get fsPath() {\n        // if (this.scheme !== 'file') {\n        // \tconsole.warn(`[UriError] calling fsPath with scheme ${this.scheme}`);\n        // }\n        return uriToFsPath(this, false);\n    }\n    // ---- modify to new -------------------------\n    with(change) {\n        if (!change) {\n            return this;\n        }\n        let { scheme, authority, path, query, fragment } = change;\n        if (scheme === undefined) {\n            scheme = this.scheme;\n        }\n        else if (scheme === null) {\n            scheme = _empty;\n        }\n        if (authority === undefined) {\n            authority = this.authority;\n        }\n        else if (authority === null) {\n            authority = _empty;\n        }\n        if (path === undefined) {\n            path = this.path;\n        }\n        else if (path === null) {\n            path = _empty;\n        }\n        if (query === undefined) {\n            query = this.query;\n        }\n        else if (query === null) {\n            query = _empty;\n        }\n        if (fragment === undefined) {\n            fragment = this.fragment;\n        }\n        else if (fragment === null) {\n            fragment = _empty;\n        }\n        if (scheme === this.scheme\n            && authority === this.authority\n            && path === this.path\n            && query === this.query\n            && fragment === this.fragment) {\n            return this;\n        }\n        return new Uri(scheme, authority, path, query, fragment);\n    }\n    // ---- parse & validate ------------------------\n    /**\n     * Creates a new URI from a string, e.g. `http://www.example.com/some/path`,\n     * `file:///usr/home`, or `scheme:with/path`.\n     *\n     * @param value A string which represents an URI (see `URI#toString`).\n     */\n    static parse(value, _strict = false) {\n        const match = _regexp.exec(value);\n        if (!match) {\n            return new Uri(_empty, _empty, _empty, _empty, _empty);\n        }\n        return new Uri(match[2] || _empty, percentDecode(match[4] || _empty), percentDecode(match[5] || _empty), percentDecode(match[7] || _empty), percentDecode(match[9] || _empty), _strict);\n    }\n    /**\n     * Creates a new URI from a file system path, e.g. `c:\\my\\files`,\n     * `/usr/home`, or `\\\\server\\share\\some\\path`.\n     *\n     * The *difference* between `URI#parse` and `URI#file` is that the latter treats the argument\n     * as path, not as stringified-uri. E.g. `URI.file(path)` is **not the same as**\n     * `URI.parse('file://' + path)` because the path might contain characters that are\n     * interpreted (# and ?). See the following sample:\n     * ```ts\n    const good = URI.file('/coding/c#/project1');\n    good.scheme === 'file';\n    good.path === '/coding/c#/project1';\n    good.fragment === '';\n    const bad = URI.parse('file://' + '/coding/c#/project1');\n    bad.scheme === 'file';\n    bad.path === '/coding/c'; // path is now broken\n    bad.fragment === '/project1';\n    ```\n     *\n     * @param path A file system path (see `URI#fsPath`)\n     */\n    static file(path) {\n        let authority = _empty;\n        // normalize to fwd-slashes on windows,\n        // on other systems bwd-slashes are valid\n        // filename character, eg /f\\oo/ba\\r.txt\n        if (isWindows) {\n            path = path.replace(/\\\\/g, _slash);\n        }\n        // check for authority as used in UNC shares\n        // or use the path as given\n        if (path[0] === _slash && path[1] === _slash) {\n            const idx = path.indexOf(_slash, 2);\n            if (idx === -1) {\n                authority = path.substring(2);\n                path = _slash;\n            }\n            else {\n                authority = path.substring(2, idx);\n                path = path.substring(idx) || _slash;\n            }\n        }\n        return new Uri('file', authority, path, _empty, _empty);\n    }\n    /**\n     * Creates new URI from uri components.\n     *\n     * Unless `strict` is `true` the scheme is defaults to be `file`. This function performs\n     * validation and should be used for untrusted uri components retrieved from storage,\n     * user input, command arguments etc\n     */\n    static from(components, strict) {\n        const result = new Uri(components.scheme, components.authority, components.path, components.query, components.fragment, strict);\n        return result;\n    }\n    /**\n     * Join a URI path with path fragments and normalizes the resulting path.\n     *\n     * @param uri The input URI.\n     * @param pathFragment The path fragment to add to the URI path.\n     * @returns The resulting URI.\n     */\n    static joinPath(uri, ...pathFragment) {\n        if (!uri.path) {\n            throw new Error(`[UriError]: cannot call joinPath on URI without path`);\n        }\n        let newPath;\n        if (isWindows && uri.scheme === 'file') {\n            newPath = URI.file(paths.win32.join(uriToFsPath(uri, true), ...pathFragment)).path;\n        }\n        else {\n            newPath = paths.posix.join(uri.path, ...pathFragment);\n        }\n        return uri.with({ path: newPath });\n    }\n    // ---- printing/externalize ---------------------------\n    /**\n     * Creates a string representation for this URI. It's guaranteed that calling\n     * `URI.parse` with the result of this function creates an URI which is equal\n     * to this URI.\n     *\n     * * The result shall *not* be used for display purposes but for externalization or transport.\n     * * The result will be encoded using the percentage encoding and encoding happens mostly\n     * ignore the scheme-specific encoding rules.\n     *\n     * @param skipEncoding Do not encode the result, default is `false`\n     */\n    toString(skipEncoding = false) {\n        return _asFormatted(this, skipEncoding);\n    }\n    toJSON() {\n        return this;\n    }\n    static revive(data) {\n        var _a, _b;\n        if (!data) {\n            return data;\n        }\n        else if (data instanceof URI) {\n            return data;\n        }\n        else {\n            const result = new Uri(data);\n            result._formatted = (_a = data.external) !== null && _a !== void 0 ? _a : null;\n            result._fsPath = data._sep === _pathSepMarker ? (_b = data.fsPath) !== null && _b !== void 0 ? _b : null : null;\n            return result;\n        }\n    }\n}\nconst _pathSepMarker = isWindows ? 1 : undefined;\n// This class exists so that URI is compatible with vscode.Uri (API).\nclass Uri extends URI {\n    constructor() {\n        super(...arguments);\n        this._formatted = null;\n        this._fsPath = null;\n    }\n    get fsPath() {\n        if (!this._fsPath) {\n            this._fsPath = uriToFsPath(this, false);\n        }\n        return this._fsPath;\n    }\n    toString(skipEncoding = false) {\n        if (!skipEncoding) {\n            if (!this._formatted) {\n                this._formatted = _asFormatted(this, false);\n            }\n            return this._formatted;\n        }\n        else {\n            // we don't cache that\n            return _asFormatted(this, true);\n        }\n    }\n    toJSON() {\n        const res = {\n            $mid: 1 /* MarshalledId.Uri */\n        };\n        // cached state\n        if (this._fsPath) {\n            res.fsPath = this._fsPath;\n            res._sep = _pathSepMarker;\n        }\n        if (this._formatted) {\n            res.external = this._formatted;\n        }\n        //--- uri components\n        if (this.path) {\n            res.path = this.path;\n        }\n        // TODO\n        // this isn't correct and can violate the UriComponents contract but\n        // this is part of the vscode.Uri API and we shouldn't change how that\n        // works anymore\n        if (this.scheme) {\n            res.scheme = this.scheme;\n        }\n        if (this.authority) {\n            res.authority = this.authority;\n        }\n        if (this.query) {\n            res.query = this.query;\n        }\n        if (this.fragment) {\n            res.fragment = this.fragment;\n        }\n        return res;\n    }\n}\n// reserved characters: https://tools.ietf.org/html/rfc3986#section-2.2\nconst encodeTable = {\n    [58 /* CharCode.Colon */]: '%3A', // gen-delims\n    [47 /* CharCode.Slash */]: '%2F',\n    [63 /* CharCode.QuestionMark */]: '%3F',\n    [35 /* CharCode.Hash */]: '%23',\n    [91 /* CharCode.OpenSquareBracket */]: '%5B',\n    [93 /* CharCode.CloseSquareBracket */]: '%5D',\n    [64 /* CharCode.AtSign */]: '%40',\n    [33 /* CharCode.ExclamationMark */]: '%21', // sub-delims\n    [36 /* CharCode.DollarSign */]: '%24',\n    [38 /* CharCode.Ampersand */]: '%26',\n    [39 /* CharCode.SingleQuote */]: '%27',\n    [40 /* CharCode.OpenParen */]: '%28',\n    [41 /* CharCode.CloseParen */]: '%29',\n    [42 /* CharCode.Asterisk */]: '%2A',\n    [43 /* CharCode.Plus */]: '%2B',\n    [44 /* CharCode.Comma */]: '%2C',\n    [59 /* CharCode.Semicolon */]: '%3B',\n    [61 /* CharCode.Equals */]: '%3D',\n    [32 /* CharCode.Space */]: '%20',\n};\nfunction encodeURIComponentFast(uriComponent, isPath, isAuthority) {\n    let res = undefined;\n    let nativeEncodePos = -1;\n    for (let pos = 0; pos < uriComponent.length; pos++) {\n        const code = uriComponent.charCodeAt(pos);\n        // unreserved characters: https://tools.ietf.org/html/rfc3986#section-2.3\n        if ((code >= 97 /* CharCode.a */ && code <= 122 /* CharCode.z */)\n            || (code >= 65 /* CharCode.A */ && code <= 90 /* CharCode.Z */)\n            || (code >= 48 /* CharCode.Digit0 */ && code <= 57 /* CharCode.Digit9 */)\n            || code === 45 /* CharCode.Dash */\n            || code === 46 /* CharCode.Period */\n            || code === 95 /* CharCode.Underline */\n            || code === 126 /* CharCode.Tilde */\n            || (isPath && code === 47 /* CharCode.Slash */)\n            || (isAuthority && code === 91 /* CharCode.OpenSquareBracket */)\n            || (isAuthority && code === 93 /* CharCode.CloseSquareBracket */)\n            || (isAuthority && code === 58 /* CharCode.Colon */)) {\n            // check if we are delaying native encode\n            if (nativeEncodePos !== -1) {\n                res += encodeURIComponent(uriComponent.substring(nativeEncodePos, pos));\n                nativeEncodePos = -1;\n            }\n            // check if we write into a new string (by default we try to return the param)\n            if (res !== undefined) {\n                res += uriComponent.charAt(pos);\n            }\n        }\n        else {\n            // encoding needed, we need to allocate a new string\n            if (res === undefined) {\n                res = uriComponent.substr(0, pos);\n            }\n            // check with default table first\n            const escaped = encodeTable[code];\n            if (escaped !== undefined) {\n                // check if we are delaying native encode\n                if (nativeEncodePos !== -1) {\n                    res += encodeURIComponent(uriComponent.substring(nativeEncodePos, pos));\n                    nativeEncodePos = -1;\n                }\n                // append escaped variant to result\n                res += escaped;\n            }\n            else if (nativeEncodePos === -1) {\n                // use native encode only when needed\n                nativeEncodePos = pos;\n            }\n        }\n    }\n    if (nativeEncodePos !== -1) {\n        res += encodeURIComponent(uriComponent.substring(nativeEncodePos));\n    }\n    return res !== undefined ? res : uriComponent;\n}\nfunction encodeURIComponentMinimal(path) {\n    let res = undefined;\n    for (let pos = 0; pos < path.length; pos++) {\n        const code = path.charCodeAt(pos);\n        if (code === 35 /* CharCode.Hash */ || code === 63 /* CharCode.QuestionMark */) {\n            if (res === undefined) {\n                res = path.substr(0, pos);\n            }\n            res += encodeTable[code];\n        }\n        else {\n            if (res !== undefined) {\n                res += path[pos];\n            }\n        }\n    }\n    return res !== undefined ? res : path;\n}\n/**\n * Compute `fsPath` for the given uri\n */\nexport function uriToFsPath(uri, keepDriveLetterCasing) {\n    let value;\n    if (uri.authority && uri.path.length > 1 && uri.scheme === 'file') {\n        // unc path: file://shares/c$/far/boo\n        value = `//${uri.authority}${uri.path}`;\n    }\n    else if (uri.path.charCodeAt(0) === 47 /* CharCode.Slash */\n        && (uri.path.charCodeAt(1) >= 65 /* CharCode.A */ && uri.path.charCodeAt(1) <= 90 /* CharCode.Z */ || uri.path.charCodeAt(1) >= 97 /* CharCode.a */ && uri.path.charCodeAt(1) <= 122 /* CharCode.z */)\n        && uri.path.charCodeAt(2) === 58 /* CharCode.Colon */) {\n        if (!keepDriveLetterCasing) {\n            // windows drive letter: file:///c:/far/boo\n            value = uri.path[1].toLowerCase() + uri.path.substr(2);\n        }\n        else {\n            value = uri.path.substr(1);\n        }\n    }\n    else {\n        // other path\n        value = uri.path;\n    }\n    if (isWindows) {\n        value = value.replace(/\\//g, '\\\\');\n    }\n    return value;\n}\n/**\n * Create the external version of a uri\n */\nfunction _asFormatted(uri, skipEncoding) {\n    const encoder = !skipEncoding\n        ? encodeURIComponentFast\n        : encodeURIComponentMinimal;\n    let res = '';\n    let { scheme, authority, path, query, fragment } = uri;\n    if (scheme) {\n        res += scheme;\n        res += ':';\n    }\n    if (authority || scheme === 'file') {\n        res += _slash;\n        res += _slash;\n    }\n    if (authority) {\n        let idx = authority.indexOf('@');\n        if (idx !== -1) {\n            // <user>@<auth>\n            const userinfo = authority.substr(0, idx);\n            authority = authority.substr(idx + 1);\n            idx = userinfo.lastIndexOf(':');\n            if (idx === -1) {\n                res += encoder(userinfo, false, false);\n            }\n            else {\n                // <user>:<pass>@<auth>\n                res += encoder(userinfo.substr(0, idx), false, false);\n                res += ':';\n                res += encoder(userinfo.substr(idx + 1), false, true);\n            }\n            res += '@';\n        }\n        authority = authority.toLowerCase();\n        idx = authority.lastIndexOf(':');\n        if (idx === -1) {\n            res += encoder(authority, false, true);\n        }\n        else {\n            // <auth>:<port>\n            res += encoder(authority.substr(0, idx), false, true);\n            res += authority.substr(idx);\n        }\n    }\n    if (path) {\n        // lower-case windows drive letters in /C:/fff or C:/fff\n        if (path.length >= 3 && path.charCodeAt(0) === 47 /* CharCode.Slash */ && path.charCodeAt(2) === 58 /* CharCode.Colon */) {\n            const code = path.charCodeAt(1);\n            if (code >= 65 /* CharCode.A */ && code <= 90 /* CharCode.Z */) {\n                path = `/${String.fromCharCode(code + 32)}:${path.substr(3)}`; // \"/c:\".length === 3\n            }\n        }\n        else if (path.length >= 2 && path.charCodeAt(1) === 58 /* CharCode.Colon */) {\n            const code = path.charCodeAt(0);\n            if (code >= 65 /* CharCode.A */ && code <= 90 /* CharCode.Z */) {\n                path = `${String.fromCharCode(code + 32)}:${path.substr(2)}`; // \"/c:\".length === 3\n            }\n        }\n        // encode the rest of the path\n        res += encoder(path, true, false);\n    }\n    if (query) {\n        res += '?';\n        res += encoder(query, false, false);\n    }\n    if (fragment) {\n        res += '#';\n        res += !skipEncoding ? encodeURIComponentFast(fragment, false, false) : fragment;\n    }\n    return res;\n}\n// --- decode\nfunction decodeURIComponentGraceful(str) {\n    try {\n        return decodeURIComponent(str);\n    }\n    catch (_a) {\n        if (str.length > 3) {\n            return str.substr(0, 3) + decodeURIComponentGraceful(str.substr(3));\n        }\n        else {\n            return str;\n        }\n    }\n}\nconst _rEncodedAsHex = /(%[0-9A-Za-z][0-9A-Za-z])+/g;\nfunction percentDecode(str) {\n    if (!str.match(_rEncodedAsHex)) {\n        return str;\n    }\n    return str.replace(_rEncodedAsHex, (match) => decodeURIComponentGraceful(match));\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/uuid.js",
    "content": "export const generateUuid = (function () {\n    // use `randomUUID` if possible\n    if (typeof crypto === 'object' && typeof crypto.randomUUID === 'function') {\n        return crypto.randomUUID.bind(crypto);\n    }\n    // use `randomValues` if possible\n    let getRandomValues;\n    if (typeof crypto === 'object' && typeof crypto.getRandomValues === 'function') {\n        getRandomValues = crypto.getRandomValues.bind(crypto);\n    }\n    else {\n        getRandomValues = function (bucket) {\n            for (let i = 0; i < bucket.length; i++) {\n                bucket[i] = Math.floor(Math.random() * 256);\n            }\n            return bucket;\n        };\n    }\n    // prep-work\n    const _data = new Uint8Array(16);\n    const _hex = [];\n    for (let i = 0; i < 256; i++) {\n        _hex.push(i.toString(16).padStart(2, '0'));\n    }\n    return function generateUuid() {\n        // get data\n        getRandomValues(_data);\n        // set version bits\n        _data[6] = (_data[6] & 0x0f) | 0x40;\n        _data[8] = (_data[8] & 0x3f) | 0x80;\n        // print as string\n        let i = 0;\n        let result = '';\n        result += _hex[_data[i++]];\n        result += _hex[_data[i++]];\n        result += _hex[_data[i++]];\n        result += _hex[_data[i++]];\n        result += '-';\n        result += _hex[_data[i++]];\n        result += _hex[_data[i++]];\n        result += '-';\n        result += _hex[_data[i++]];\n        result += _hex[_data[i++]];\n        result += '-';\n        result += _hex[_data[i++]];\n        result += _hex[_data[i++]];\n        result += '-';\n        result += _hex[_data[i++]];\n        result += _hex[_data[i++]];\n        result += _hex[_data[i++]];\n        result += _hex[_data[i++]];\n        result += _hex[_data[i++]];\n        result += _hex[_data[i++]];\n        return result;\n    };\n})();\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/base/common/worker/simpleWorker.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { transformErrorForSerialization } from '../errors.js';\nimport { Emitter } from '../event.js';\nimport { Disposable } from '../lifecycle.js';\nimport { getAllMethodNames } from '../objects.js';\nimport { isWeb } from '../platform.js';\nimport * as strings from '../strings.js';\nconst INITIALIZE = '$initialize';\nlet webWorkerWarningLogged = false;\nexport function logOnceWebWorkerWarning(err) {\n    if (!isWeb) {\n        // running tests\n        return;\n    }\n    if (!webWorkerWarningLogged) {\n        webWorkerWarningLogged = true;\n        console.warn('Could not create web worker(s). Falling back to loading web worker code in main thread, which might cause UI freezes. Please see https://github.com/microsoft/monaco-editor#faq');\n    }\n    console.warn(err.message);\n}\nclass RequestMessage {\n    constructor(vsWorker, req, method, args) {\n        this.vsWorker = vsWorker;\n        this.req = req;\n        this.method = method;\n        this.args = args;\n        this.type = 0 /* MessageType.Request */;\n    }\n}\nclass ReplyMessage {\n    constructor(vsWorker, seq, res, err) {\n        this.vsWorker = vsWorker;\n        this.seq = seq;\n        this.res = res;\n        this.err = err;\n        this.type = 1 /* MessageType.Reply */;\n    }\n}\nclass SubscribeEventMessage {\n    constructor(vsWorker, req, eventName, arg) {\n        this.vsWorker = vsWorker;\n        this.req = req;\n        this.eventName = eventName;\n        this.arg = arg;\n        this.type = 2 /* MessageType.SubscribeEvent */;\n    }\n}\nclass EventMessage {\n    constructor(vsWorker, req, event) {\n        this.vsWorker = vsWorker;\n        this.req = req;\n        this.event = event;\n        this.type = 3 /* MessageType.Event */;\n    }\n}\nclass UnsubscribeEventMessage {\n    constructor(vsWorker, req) {\n        this.vsWorker = vsWorker;\n        this.req = req;\n        this.type = 4 /* MessageType.UnsubscribeEvent */;\n    }\n}\nclass SimpleWorkerProtocol {\n    constructor(handler) {\n        this._workerId = -1;\n        this._handler = handler;\n        this._lastSentReq = 0;\n        this._pendingReplies = Object.create(null);\n        this._pendingEmitters = new Map();\n        this._pendingEvents = new Map();\n    }\n    setWorkerId(workerId) {\n        this._workerId = workerId;\n    }\n    sendMessage(method, args) {\n        const req = String(++this._lastSentReq);\n        return new Promise((resolve, reject) => {\n            this._pendingReplies[req] = {\n                resolve: resolve,\n                reject: reject\n            };\n            this._send(new RequestMessage(this._workerId, req, method, args));\n        });\n    }\n    listen(eventName, arg) {\n        let req = null;\n        const emitter = new Emitter({\n            onWillAddFirstListener: () => {\n                req = String(++this._lastSentReq);\n                this._pendingEmitters.set(req, emitter);\n                this._send(new SubscribeEventMessage(this._workerId, req, eventName, arg));\n            },\n            onDidRemoveLastListener: () => {\n                this._pendingEmitters.delete(req);\n                this._send(new UnsubscribeEventMessage(this._workerId, req));\n                req = null;\n            }\n        });\n        return emitter.event;\n    }\n    handleMessage(message) {\n        if (!message || !message.vsWorker) {\n            return;\n        }\n        if (this._workerId !== -1 && message.vsWorker !== this._workerId) {\n            return;\n        }\n        this._handleMessage(message);\n    }\n    _handleMessage(msg) {\n        switch (msg.type) {\n            case 1 /* MessageType.Reply */:\n                return this._handleReplyMessage(msg);\n            case 0 /* MessageType.Request */:\n                return this._handleRequestMessage(msg);\n            case 2 /* MessageType.SubscribeEvent */:\n                return this._handleSubscribeEventMessage(msg);\n            case 3 /* MessageType.Event */:\n                return this._handleEventMessage(msg);\n            case 4 /* MessageType.UnsubscribeEvent */:\n                return this._handleUnsubscribeEventMessage(msg);\n        }\n    }\n    _handleReplyMessage(replyMessage) {\n        if (!this._pendingReplies[replyMessage.seq]) {\n            console.warn('Got reply to unknown seq');\n            return;\n        }\n        const reply = this._pendingReplies[replyMessage.seq];\n        delete this._pendingReplies[replyMessage.seq];\n        if (replyMessage.err) {\n            let err = replyMessage.err;\n            if (replyMessage.err.$isError) {\n                err = new Error();\n                err.name = replyMessage.err.name;\n                err.message = replyMessage.err.message;\n                err.stack = replyMessage.err.stack;\n            }\n            reply.reject(err);\n            return;\n        }\n        reply.resolve(replyMessage.res);\n    }\n    _handleRequestMessage(requestMessage) {\n        const req = requestMessage.req;\n        const result = this._handler.handleMessage(requestMessage.method, requestMessage.args);\n        result.then((r) => {\n            this._send(new ReplyMessage(this._workerId, req, r, undefined));\n        }, (e) => {\n            if (e.detail instanceof Error) {\n                // Loading errors have a detail property that points to the actual error\n                e.detail = transformErrorForSerialization(e.detail);\n            }\n            this._send(new ReplyMessage(this._workerId, req, undefined, transformErrorForSerialization(e)));\n        });\n    }\n    _handleSubscribeEventMessage(msg) {\n        const req = msg.req;\n        const disposable = this._handler.handleEvent(msg.eventName, msg.arg)((event) => {\n            this._send(new EventMessage(this._workerId, req, event));\n        });\n        this._pendingEvents.set(req, disposable);\n    }\n    _handleEventMessage(msg) {\n        if (!this._pendingEmitters.has(msg.req)) {\n            console.warn('Got event for unknown req');\n            return;\n        }\n        this._pendingEmitters.get(msg.req).fire(msg.event);\n    }\n    _handleUnsubscribeEventMessage(msg) {\n        if (!this._pendingEvents.has(msg.req)) {\n            console.warn('Got unsubscribe for unknown req');\n            return;\n        }\n        this._pendingEvents.get(msg.req).dispose();\n        this._pendingEvents.delete(msg.req);\n    }\n    _send(msg) {\n        const transfer = [];\n        if (msg.type === 0 /* MessageType.Request */) {\n            for (let i = 0; i < msg.args.length; i++) {\n                if (msg.args[i] instanceof ArrayBuffer) {\n                    transfer.push(msg.args[i]);\n                }\n            }\n        }\n        else if (msg.type === 1 /* MessageType.Reply */) {\n            if (msg.res instanceof ArrayBuffer) {\n                transfer.push(msg.res);\n            }\n        }\n        this._handler.sendMessage(msg, transfer);\n    }\n}\n/**\n * Main thread side\n */\nexport class SimpleWorkerClient extends Disposable {\n    constructor(workerFactory, moduleId, host) {\n        super();\n        let lazyProxyReject = null;\n        this._worker = this._register(workerFactory.create('vs/base/common/worker/simpleWorker', (msg) => {\n            this._protocol.handleMessage(msg);\n        }, (err) => {\n            // in Firefox, web workers fail lazily :(\n            // we will reject the proxy\n            lazyProxyReject === null || lazyProxyReject === void 0 ? void 0 : lazyProxyReject(err);\n        }));\n        this._protocol = new SimpleWorkerProtocol({\n            sendMessage: (msg, transfer) => {\n                this._worker.postMessage(msg, transfer);\n            },\n            handleMessage: (method, args) => {\n                if (typeof host[method] !== 'function') {\n                    return Promise.reject(new Error('Missing method ' + method + ' on main thread host.'));\n                }\n                try {\n                    return Promise.resolve(host[method].apply(host, args));\n                }\n                catch (e) {\n                    return Promise.reject(e);\n                }\n            },\n            handleEvent: (eventName, arg) => {\n                if (propertyIsDynamicEvent(eventName)) {\n                    const event = host[eventName].call(host, arg);\n                    if (typeof event !== 'function') {\n                        throw new Error(`Missing dynamic event ${eventName} on main thread host.`);\n                    }\n                    return event;\n                }\n                if (propertyIsEvent(eventName)) {\n                    const event = host[eventName];\n                    if (typeof event !== 'function') {\n                        throw new Error(`Missing event ${eventName} on main thread host.`);\n                    }\n                    return event;\n                }\n                throw new Error(`Malformed event name ${eventName}`);\n            }\n        });\n        this._protocol.setWorkerId(this._worker.getId());\n        // Gather loader configuration\n        let loaderConfiguration = null;\n        const globalRequire = globalThis.require;\n        if (typeof globalRequire !== 'undefined' && typeof globalRequire.getConfig === 'function') {\n            // Get the configuration from the Monaco AMD Loader\n            loaderConfiguration = globalRequire.getConfig();\n        }\n        else if (typeof globalThis.requirejs !== 'undefined') {\n            // Get the configuration from requirejs\n            loaderConfiguration = globalThis.requirejs.s.contexts._.config;\n        }\n        const hostMethods = getAllMethodNames(host);\n        // Send initialize message\n        this._onModuleLoaded = this._protocol.sendMessage(INITIALIZE, [\n            this._worker.getId(),\n            JSON.parse(JSON.stringify(loaderConfiguration)),\n            moduleId,\n            hostMethods,\n        ]);\n        // Create proxy to loaded code\n        const proxyMethodRequest = (method, args) => {\n            return this._request(method, args);\n        };\n        const proxyListen = (eventName, arg) => {\n            return this._protocol.listen(eventName, arg);\n        };\n        this._lazyProxy = new Promise((resolve, reject) => {\n            lazyProxyReject = reject;\n            this._onModuleLoaded.then((availableMethods) => {\n                resolve(createProxyObject(availableMethods, proxyMethodRequest, proxyListen));\n            }, (e) => {\n                reject(e);\n                this._onError('Worker failed to load ' + moduleId, e);\n            });\n        });\n    }\n    getProxyObject() {\n        return this._lazyProxy;\n    }\n    _request(method, args) {\n        return new Promise((resolve, reject) => {\n            this._onModuleLoaded.then(() => {\n                this._protocol.sendMessage(method, args).then(resolve, reject);\n            }, reject);\n        });\n    }\n    _onError(message, error) {\n        console.error(message);\n        console.info(error);\n    }\n}\nfunction propertyIsEvent(name) {\n    // Assume a property is an event if it has a form of \"onSomething\"\n    return name[0] === 'o' && name[1] === 'n' && strings.isUpperAsciiLetter(name.charCodeAt(2));\n}\nfunction propertyIsDynamicEvent(name) {\n    // Assume a property is a dynamic event (a method that returns an event) if it has a form of \"onDynamicSomething\"\n    return /^onDynamic/.test(name) && strings.isUpperAsciiLetter(name.charCodeAt(9));\n}\nfunction createProxyObject(methodNames, invoke, proxyListen) {\n    const createProxyMethod = (method) => {\n        return function () {\n            const args = Array.prototype.slice.call(arguments, 0);\n            return invoke(method, args);\n        };\n    };\n    const createProxyDynamicEvent = (eventName) => {\n        return function (arg) {\n            return proxyListen(eventName, arg);\n        };\n    };\n    const result = {};\n    for (const methodName of methodNames) {\n        if (propertyIsDynamicEvent(methodName)) {\n            result[methodName] = createProxyDynamicEvent(methodName);\n            continue;\n        }\n        if (propertyIsEvent(methodName)) {\n            result[methodName] = proxyListen(methodName, undefined);\n            continue;\n        }\n        result[methodName] = createProxyMethod(methodName);\n    }\n    return result;\n}\n/**\n * Worker side\n */\nexport class SimpleWorkerServer {\n    constructor(postMessage, requestHandlerFactory) {\n        this._requestHandlerFactory = requestHandlerFactory;\n        this._requestHandler = null;\n        this._protocol = new SimpleWorkerProtocol({\n            sendMessage: (msg, transfer) => {\n                postMessage(msg, transfer);\n            },\n            handleMessage: (method, args) => this._handleMessage(method, args),\n            handleEvent: (eventName, arg) => this._handleEvent(eventName, arg)\n        });\n    }\n    onmessage(msg) {\n        this._protocol.handleMessage(msg);\n    }\n    _handleMessage(method, args) {\n        if (method === INITIALIZE) {\n            return this.initialize(args[0], args[1], args[2], args[3]);\n        }\n        if (!this._requestHandler || typeof this._requestHandler[method] !== 'function') {\n            return Promise.reject(new Error('Missing requestHandler or method: ' + method));\n        }\n        try {\n            return Promise.resolve(this._requestHandler[method].apply(this._requestHandler, args));\n        }\n        catch (e) {\n            return Promise.reject(e);\n        }\n    }\n    _handleEvent(eventName, arg) {\n        if (!this._requestHandler) {\n            throw new Error(`Missing requestHandler`);\n        }\n        if (propertyIsDynamicEvent(eventName)) {\n            const event = this._requestHandler[eventName].call(this._requestHandler, arg);\n            if (typeof event !== 'function') {\n                throw new Error(`Missing dynamic event ${eventName} on request handler.`);\n            }\n            return event;\n        }\n        if (propertyIsEvent(eventName)) {\n            const event = this._requestHandler[eventName];\n            if (typeof event !== 'function') {\n                throw new Error(`Missing event ${eventName} on request handler.`);\n            }\n            return event;\n        }\n        throw new Error(`Malformed event name ${eventName}`);\n    }\n    initialize(workerId, loaderConfig, moduleId, hostMethods) {\n        this._protocol.setWorkerId(workerId);\n        const proxyMethodRequest = (method, args) => {\n            return this._protocol.sendMessage(method, args);\n        };\n        const proxyListen = (eventName, arg) => {\n            return this._protocol.listen(eventName, arg);\n        };\n        const hostProxy = createProxyObject(hostMethods, proxyMethodRequest, proxyListen);\n        if (this._requestHandlerFactory) {\n            // static request handler\n            this._requestHandler = this._requestHandlerFactory(hostProxy);\n            return Promise.resolve(getAllMethodNames(this._requestHandler));\n        }\n        if (loaderConfig) {\n            // Remove 'baseUrl', handling it is beyond scope for now\n            if (typeof loaderConfig.baseUrl !== 'undefined') {\n                delete loaderConfig['baseUrl'];\n            }\n            if (typeof loaderConfig.paths !== 'undefined') {\n                if (typeof loaderConfig.paths.vs !== 'undefined') {\n                    delete loaderConfig.paths['vs'];\n                }\n            }\n            if (typeof loaderConfig.trustedTypesPolicy !== 'undefined') {\n                // don't use, it has been destroyed during serialize\n                delete loaderConfig['trustedTypesPolicy'];\n            }\n            // Since this is in a web worker, enable catching errors\n            loaderConfig.catchError = true;\n            globalThis.require.config(loaderConfig);\n        }\n        return new Promise((resolve, reject) => {\n            // Use the global require to be sure to get the global config\n            // ESM-comment-begin\n            // \t\t\tconst req = (globalThis.require || require);\n            // ESM-comment-end\n            // ESM-uncomment-begin\n            const req = globalThis.require;\n            // ESM-uncomment-end\n            req([moduleId], (module) => {\n                this._requestHandler = module.create(hostProxy);\n                if (!this._requestHandler) {\n                    reject(new Error(`No RequestHandler!`));\n                    return;\n                }\n                resolve(getAllMethodNames(this._requestHandler));\n            }, reject);\n        });\n    }\n}\n/**\n * Called on the worker side\n * @skipMangle\n */\nexport function create(postMessage) {\n    return new SimpleWorkerServer(postMessage, null);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/_.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\n\n// src/fillers/monaco-editor-core.ts\nvar monaco_editor_core_exports = {};\n__reExport(monaco_editor_core_exports, monaco_editor_core_star);\nimport * as monaco_editor_core_star from \"../editor/editor.api.js\";\n\n// src/basic-languages/_.contribution.ts\nvar languageDefinitions = {};\nvar lazyLanguageLoaders = {};\nvar LazyLanguageLoader = class _LazyLanguageLoader {\n  static getOrCreate(languageId) {\n    if (!lazyLanguageLoaders[languageId]) {\n      lazyLanguageLoaders[languageId] = new _LazyLanguageLoader(languageId);\n    }\n    return lazyLanguageLoaders[languageId];\n  }\n  constructor(languageId) {\n    this._languageId = languageId;\n    this._loadingTriggered = false;\n    this._lazyLoadPromise = new Promise((resolve, reject) => {\n      this._lazyLoadPromiseResolve = resolve;\n      this._lazyLoadPromiseReject = reject;\n    });\n  }\n  load() {\n    if (!this._loadingTriggered) {\n      this._loadingTriggered = true;\n      languageDefinitions[this._languageId].loader().then(\n        (mod) => this._lazyLoadPromiseResolve(mod),\n        (err) => this._lazyLoadPromiseReject(err)\n      );\n    }\n    return this._lazyLoadPromise;\n  }\n};\nasync function loadLanguage(languageId) {\n  await LazyLanguageLoader.getOrCreate(languageId).load();\n  const model = monaco_editor_core_exports.editor.createModel(\"\", languageId);\n  model.dispose();\n}\nfunction registerLanguage(def) {\n  const languageId = def.id;\n  languageDefinitions[languageId] = def;\n  monaco_editor_core_exports.languages.register(def);\n  const lazyLanguageLoader = LazyLanguageLoader.getOrCreate(languageId);\n  monaco_editor_core_exports.languages.registerTokensProviderFactory(languageId, {\n    create: async () => {\n      const mod = await lazyLanguageLoader.load();\n      return mod.language;\n    }\n  });\n  monaco_editor_core_exports.languages.onLanguageEncountered(languageId, async () => {\n    const mod = await lazyLanguageLoader.load();\n    monaco_editor_core_exports.languages.setLanguageConfiguration(languageId, mod.conf);\n  });\n}\nexport {\n  loadLanguage,\n  registerLanguage\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/abap/abap.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/abap/abap.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/abap/abap.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"abap\",\n  extensions: [\".abap\"],\n  aliases: [\"abap\", \"ABAP\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/abap/abap\"], resolve, reject);\n      });\n    } else {\n      return import(\"./abap.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/abap/abap.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/abap/abap.ts\nvar conf = {\n  comments: {\n    lineComment: \"*\"\n  },\n  brackets: [\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ]\n};\nvar language = {\n  defaultToken: \"invalid\",\n  ignoreCase: true,\n  tokenPostfix: \".abap\",\n  keywords: [\n    \"abap-source\",\n    \"abbreviated\",\n    \"abstract\",\n    \"accept\",\n    \"accepting\",\n    \"according\",\n    \"activation\",\n    \"actual\",\n    \"add\",\n    \"add-corresponding\",\n    \"adjacent\",\n    \"after\",\n    \"alias\",\n    \"aliases\",\n    \"align\",\n    \"all\",\n    \"allocate\",\n    \"alpha\",\n    \"analysis\",\n    \"analyzer\",\n    \"and\",\n    // also an operator\n    \"append\",\n    \"appendage\",\n    \"appending\",\n    \"application\",\n    \"archive\",\n    \"area\",\n    \"arithmetic\",\n    \"as\",\n    \"ascending\",\n    \"aspect\",\n    \"assert\",\n    \"assign\",\n    \"assigned\",\n    \"assigning\",\n    \"association\",\n    \"asynchronous\",\n    \"at\",\n    \"attributes\",\n    \"authority\",\n    \"authority-check\",\n    \"avg\",\n    \"back\",\n    \"background\",\n    \"backup\",\n    \"backward\",\n    \"badi\",\n    \"base\",\n    \"before\",\n    \"begin\",\n    \"between\",\n    // also an operator\n    \"big\",\n    \"binary\",\n    \"bintohex\",\n    \"bit\",\n    \"black\",\n    \"blank\",\n    \"blanks\",\n    \"blob\",\n    \"block\",\n    \"blocks\",\n    \"blue\",\n    \"bound\",\n    \"boundaries\",\n    \"bounds\",\n    \"boxed\",\n    \"break-point\",\n    \"buffer\",\n    \"by\",\n    \"bypassing\",\n    \"byte\",\n    \"byte-order\",\n    \"call\",\n    \"calling\",\n    \"case\",\n    \"cast\",\n    \"casting\",\n    \"catch\",\n    \"center\",\n    \"centered\",\n    \"chain\",\n    \"chain-input\",\n    \"chain-request\",\n    \"change\",\n    \"changing\",\n    \"channels\",\n    \"character\",\n    \"char-to-hex\",\n    \"check\",\n    \"checkbox\",\n    \"ci_\",\n    \"circular\",\n    \"class\",\n    \"class-coding\",\n    \"class-data\",\n    \"class-events\",\n    \"class-methods\",\n    \"class-pool\",\n    \"cleanup\",\n    \"clear\",\n    \"client\",\n    \"clob\",\n    \"clock\",\n    \"close\",\n    \"coalesce\",\n    \"code\",\n    \"coding\",\n    \"col_background\",\n    \"col_group\",\n    \"col_heading\",\n    \"col_key\",\n    \"col_negative\",\n    \"col_normal\",\n    \"col_positive\",\n    \"col_total\",\n    \"collect\",\n    \"color\",\n    \"column\",\n    \"columns\",\n    \"comment\",\n    \"comments\",\n    \"commit\",\n    \"common\",\n    \"communication\",\n    \"comparing\",\n    \"component\",\n    \"components\",\n    \"compression\",\n    \"compute\",\n    \"concat\",\n    \"concat_with_space\",\n    \"concatenate\",\n    \"cond\",\n    \"condense\",\n    // also a built-in\n    \"condition\",\n    \"connect\",\n    \"connection\",\n    \"constants\",\n    \"context\",\n    \"contexts\",\n    \"continue\",\n    \"control\",\n    \"controls\",\n    \"conv\",\n    \"conversion\",\n    \"convert\",\n    \"copies\",\n    \"copy\",\n    \"corresponding\",\n    \"country\",\n    \"cover\",\n    \"cpi\",\n    \"create\",\n    \"creating\",\n    \"critical\",\n    \"currency\",\n    \"currency_conversion\",\n    \"current\",\n    \"cursor\",\n    \"cursor-selection\",\n    \"customer\",\n    \"customer-function\",\n    \"dangerous\",\n    \"data\",\n    \"database\",\n    \"datainfo\",\n    \"dataset\",\n    \"date\",\n    \"dats_add_days\",\n    \"dats_add_months\",\n    \"dats_days_between\",\n    \"dats_is_valid\",\n    \"daylight\",\n    \"dd/mm/yy\",\n    \"dd/mm/yyyy\",\n    \"ddmmyy\",\n    \"deallocate\",\n    \"decimal_shift\",\n    \"decimals\",\n    \"declarations\",\n    \"deep\",\n    \"default\",\n    \"deferred\",\n    \"define\",\n    \"defining\",\n    \"definition\",\n    \"delete\",\n    \"deleting\",\n    \"demand\",\n    \"department\",\n    \"descending\",\n    \"describe\",\n    \"destination\",\n    \"detail\",\n    \"dialog\",\n    \"directory\",\n    \"disconnect\",\n    \"display\",\n    \"display-mode\",\n    \"distinct\",\n    \"divide\",\n    \"divide-corresponding\",\n    \"division\",\n    \"do\",\n    \"dummy\",\n    \"duplicate\",\n    \"duplicates\",\n    \"duration\",\n    \"during\",\n    \"dynamic\",\n    \"dynpro\",\n    \"edit\",\n    \"editor-call\",\n    \"else\",\n    \"elseif\",\n    \"empty\",\n    \"enabled\",\n    \"enabling\",\n    \"encoding\",\n    \"end\",\n    \"endat\",\n    \"endcase\",\n    \"endcatch\",\n    \"endchain\",\n    \"endclass\",\n    \"enddo\",\n    \"endenhancement\",\n    \"end-enhancement-section\",\n    \"endexec\",\n    \"endform\",\n    \"endfunction\",\n    \"endian\",\n    \"endif\",\n    \"ending\",\n    \"endinterface\",\n    \"end-lines\",\n    \"endloop\",\n    \"endmethod\",\n    \"endmodule\",\n    \"end-of-definition\",\n    \"end-of-editing\",\n    \"end-of-file\",\n    \"end-of-page\",\n    \"end-of-selection\",\n    \"endon\",\n    \"endprovide\",\n    \"endselect\",\n    \"end-test-injection\",\n    \"end-test-seam\",\n    \"endtry\",\n    \"endwhile\",\n    \"endwith\",\n    \"engineering\",\n    \"enhancement\",\n    \"enhancement-point\",\n    \"enhancements\",\n    \"enhancement-section\",\n    \"entries\",\n    \"entry\",\n    \"enum\",\n    \"environment\",\n    \"equiv\",\n    // also an operator\n    \"errormessage\",\n    \"errors\",\n    \"escaping\",\n    \"event\",\n    \"events\",\n    \"exact\",\n    \"except\",\n    \"exception\",\n    \"exceptions\",\n    \"exception-table\",\n    \"exclude\",\n    \"excluding\",\n    \"exec\",\n    \"execute\",\n    \"exists\",\n    \"exit\",\n    \"exit-command\",\n    \"expand\",\n    \"expanding\",\n    \"expiration\",\n    \"explicit\",\n    \"exponent\",\n    \"export\",\n    \"exporting\",\n    \"extend\",\n    \"extended\",\n    \"extension\",\n    \"extract\",\n    \"fail\",\n    \"fetch\",\n    \"field\",\n    \"field-groups\",\n    \"fields\",\n    \"field-symbol\",\n    \"field-symbols\",\n    \"file\",\n    \"filter\",\n    \"filters\",\n    \"filter-table\",\n    \"final\",\n    \"find\",\n    // also a built-in\n    \"first\",\n    \"first-line\",\n    \"fixed-point\",\n    \"fkeq\",\n    \"fkge\",\n    \"flush\",\n    \"font\",\n    \"for\",\n    \"form\",\n    \"format\",\n    \"forward\",\n    \"found\",\n    \"frame\",\n    \"frames\",\n    \"free\",\n    \"friends\",\n    \"from\",\n    \"function\",\n    \"functionality\",\n    \"function-pool\",\n    \"further\",\n    \"gaps\",\n    \"generate\",\n    \"get\",\n    \"giving\",\n    \"gkeq\",\n    \"gkge\",\n    \"global\",\n    \"grant\",\n    \"green\",\n    \"group\",\n    \"groups\",\n    \"handle\",\n    \"handler\",\n    \"harmless\",\n    \"hashed\",\n    // also a table type\n    \"having\",\n    \"hdb\",\n    \"header\",\n    \"headers\",\n    \"heading\",\n    \"head-lines\",\n    \"help-id\",\n    \"help-request\",\n    \"hextobin\",\n    \"hide\",\n    \"high\",\n    \"hint\",\n    \"hold\",\n    \"hotspot\",\n    \"icon\",\n    \"id\",\n    \"identification\",\n    \"identifier\",\n    \"ids\",\n    \"if\",\n    \"ignore\",\n    \"ignoring\",\n    \"immediately\",\n    \"implementation\",\n    \"implementations\",\n    \"implemented\",\n    \"implicit\",\n    \"import\",\n    \"importing\",\n    \"in\",\n    // also an operator\n    \"inactive\",\n    \"incl\",\n    \"include\",\n    \"includes\",\n    \"including\",\n    \"increment\",\n    \"index\",\n    // also a table type\n    \"index-line\",\n    \"infotypes\",\n    \"inheriting\",\n    \"init\",\n    \"initial\",\n    \"initialization\",\n    \"inner\",\n    \"inout\",\n    \"input\",\n    \"insert\",\n    // also a built-in\n    \"instance\",\n    \"instances\",\n    \"instr\",\n    \"intensified\",\n    \"interface\",\n    \"interface-pool\",\n    \"interfaces\",\n    \"internal\",\n    \"intervals\",\n    \"into\",\n    \"inverse\",\n    \"inverted-date\",\n    \"is\",\n    \"iso\",\n    \"job\",\n    \"join\",\n    \"keep\",\n    \"keeping\",\n    \"kernel\",\n    \"key\",\n    \"keys\",\n    \"keywords\",\n    \"kind\",\n    \"language\",\n    \"last\",\n    \"late\",\n    \"layout\",\n    \"leading\",\n    \"leave\",\n    \"left\",\n    \"left-justified\",\n    \"leftplus\",\n    \"leftspace\",\n    \"legacy\",\n    \"length\",\n    \"let\",\n    \"level\",\n    \"levels\",\n    \"like\",\n    \"line\",\n    \"lines\",\n    // also a built-in\n    \"line-count\",\n    \"linefeed\",\n    \"line-selection\",\n    \"line-size\",\n    \"list\",\n    \"listbox\",\n    \"list-processing\",\n    \"little\",\n    \"llang\",\n    \"load\",\n    \"load-of-program\",\n    \"lob\",\n    \"local\",\n    \"locale\",\n    \"locator\",\n    \"logfile\",\n    \"logical\",\n    \"log-point\",\n    \"long\",\n    \"loop\",\n    \"low\",\n    \"lower\",\n    \"lpad\",\n    \"lpi\",\n    \"ltrim\",\n    \"mail\",\n    \"main\",\n    \"major-id\",\n    \"mapping\",\n    \"margin\",\n    \"mark\",\n    \"mask\",\n    \"match\",\n    // also a built-in\n    \"matchcode\",\n    \"max\",\n    \"maximum\",\n    \"medium\",\n    \"members\",\n    \"memory\",\n    \"mesh\",\n    \"message\",\n    \"message-id\",\n    \"messages\",\n    \"messaging\",\n    \"method\",\n    \"methods\",\n    \"min\",\n    \"minimum\",\n    \"minor-id\",\n    \"mm/dd/yy\",\n    \"mm/dd/yyyy\",\n    \"mmddyy\",\n    \"mode\",\n    \"modif\",\n    \"modifier\",\n    \"modify\",\n    \"module\",\n    \"move\",\n    \"move-corresponding\",\n    \"multiply\",\n    \"multiply-corresponding\",\n    \"name\",\n    \"nametab\",\n    \"native\",\n    \"nested\",\n    \"nesting\",\n    \"new\",\n    \"new-line\",\n    \"new-page\",\n    \"new-section\",\n    \"next\",\n    \"no\",\n    \"no-display\",\n    \"no-extension\",\n    \"no-gap\",\n    \"no-gaps\",\n    \"no-grouping\",\n    \"no-heading\",\n    \"no-scrolling\",\n    \"no-sign\",\n    \"no-title\",\n    \"no-topofpage\",\n    \"no-zero\",\n    \"node\",\n    \"nodes\",\n    \"non-unicode\",\n    \"non-unique\",\n    \"not\",\n    // also an operator\n    \"null\",\n    \"number\",\n    \"object\",\n    // also a data type\n    \"objects\",\n    \"obligatory\",\n    \"occurrence\",\n    \"occurrences\",\n    \"occurs\",\n    \"of\",\n    \"off\",\n    \"offset\",\n    \"ole\",\n    \"on\",\n    \"only\",\n    \"open\",\n    \"option\",\n    \"optional\",\n    \"options\",\n    \"or\",\n    // also an operator\n    \"order\",\n    \"other\",\n    \"others\",\n    \"out\",\n    \"outer\",\n    \"output\",\n    \"output-length\",\n    \"overflow\",\n    \"overlay\",\n    \"pack\",\n    \"package\",\n    \"pad\",\n    \"padding\",\n    \"page\",\n    \"pages\",\n    \"parameter\",\n    \"parameters\",\n    \"parameter-table\",\n    \"part\",\n    \"partially\",\n    \"pattern\",\n    \"percentage\",\n    \"perform\",\n    \"performing\",\n    \"person\",\n    \"pf1\",\n    \"pf10\",\n    \"pf11\",\n    \"pf12\",\n    \"pf13\",\n    \"pf14\",\n    \"pf15\",\n    \"pf2\",\n    \"pf3\",\n    \"pf4\",\n    \"pf5\",\n    \"pf6\",\n    \"pf7\",\n    \"pf8\",\n    \"pf9\",\n    \"pf-status\",\n    \"pink\",\n    \"places\",\n    \"pool\",\n    \"pos_high\",\n    \"pos_low\",\n    \"position\",\n    \"pragmas\",\n    \"precompiled\",\n    \"preferred\",\n    \"preserving\",\n    \"primary\",\n    \"print\",\n    \"print-control\",\n    \"priority\",\n    \"private\",\n    \"procedure\",\n    \"process\",\n    \"program\",\n    \"property\",\n    \"protected\",\n    \"provide\",\n    \"public\",\n    \"push\",\n    \"pushbutton\",\n    \"put\",\n    \"queue-only\",\n    \"quickinfo\",\n    \"radiobutton\",\n    \"raise\",\n    \"raising\",\n    \"range\",\n    \"ranges\",\n    \"read\",\n    \"reader\",\n    \"read-only\",\n    \"receive\",\n    \"received\",\n    \"receiver\",\n    \"receiving\",\n    \"red\",\n    \"redefinition\",\n    \"reduce\",\n    \"reduced\",\n    \"ref\",\n    \"reference\",\n    \"refresh\",\n    \"regex\",\n    \"reject\",\n    \"remote\",\n    \"renaming\",\n    \"replace\",\n    // also a built-in\n    \"replacement\",\n    \"replacing\",\n    \"report\",\n    \"request\",\n    \"requested\",\n    \"reserve\",\n    \"reset\",\n    \"resolution\",\n    \"respecting\",\n    \"responsible\",\n    \"result\",\n    \"results\",\n    \"resumable\",\n    \"resume\",\n    \"retry\",\n    \"return\",\n    \"returncode\",\n    \"returning\",\n    \"returns\",\n    \"right\",\n    \"right-justified\",\n    \"rightplus\",\n    \"rightspace\",\n    \"risk\",\n    \"rmc_communication_failure\",\n    \"rmc_invalid_status\",\n    \"rmc_system_failure\",\n    \"role\",\n    \"rollback\",\n    \"rows\",\n    \"rpad\",\n    \"rtrim\",\n    \"run\",\n    \"sap\",\n    \"sap-spool\",\n    \"saving\",\n    \"scale_preserving\",\n    \"scale_preserving_scientific\",\n    \"scan\",\n    \"scientific\",\n    \"scientific_with_leading_zero\",\n    \"scroll\",\n    \"scroll-boundary\",\n    \"scrolling\",\n    \"search\",\n    \"secondary\",\n    \"seconds\",\n    \"section\",\n    \"select\",\n    \"selection\",\n    \"selections\",\n    \"selection-screen\",\n    \"selection-set\",\n    \"selection-sets\",\n    \"selection-table\",\n    \"select-options\",\n    \"send\",\n    \"separate\",\n    \"separated\",\n    \"set\",\n    \"shared\",\n    \"shift\",\n    \"short\",\n    \"shortdump-id\",\n    \"sign_as_postfix\",\n    \"single\",\n    \"size\",\n    \"skip\",\n    \"skipping\",\n    \"smart\",\n    \"some\",\n    \"sort\",\n    \"sortable\",\n    \"sorted\",\n    // also a table type\n    \"source\",\n    \"specified\",\n    \"split\",\n    \"spool\",\n    \"spots\",\n    \"sql\",\n    \"sqlscript\",\n    \"stable\",\n    \"stamp\",\n    \"standard\",\n    // also a table type\n    \"starting\",\n    \"start-of-editing\",\n    \"start-of-selection\",\n    \"state\",\n    \"statement\",\n    \"statements\",\n    \"static\",\n    \"statics\",\n    \"statusinfo\",\n    \"step-loop\",\n    \"stop\",\n    \"structure\",\n    \"structures\",\n    \"style\",\n    \"subkey\",\n    \"submatches\",\n    \"submit\",\n    \"subroutine\",\n    \"subscreen\",\n    \"subtract\",\n    \"subtract-corresponding\",\n    \"suffix\",\n    \"sum\",\n    \"summary\",\n    \"summing\",\n    \"supplied\",\n    \"supply\",\n    \"suppress\",\n    \"switch\",\n    \"switchstates\",\n    \"symbol\",\n    \"syncpoints\",\n    \"syntax\",\n    \"syntax-check\",\n    \"syntax-trace\",\n    \"system-call\",\n    \"system-exceptions\",\n    \"system-exit\",\n    \"tab\",\n    \"tabbed\",\n    \"table\",\n    \"tables\",\n    \"tableview\",\n    \"tabstrip\",\n    \"target\",\n    \"task\",\n    \"tasks\",\n    \"test\",\n    \"testing\",\n    \"test-injection\",\n    \"test-seam\",\n    \"text\",\n    \"textpool\",\n    \"then\",\n    \"throw\",\n    \"time\",\n    \"times\",\n    \"timestamp\",\n    \"timezone\",\n    \"tims_is_valid\",\n    \"title\",\n    \"titlebar\",\n    \"title-lines\",\n    \"to\",\n    \"tokenization\",\n    \"tokens\",\n    \"top-lines\",\n    \"top-of-page\",\n    \"trace-file\",\n    \"trace-table\",\n    \"trailing\",\n    \"transaction\",\n    \"transfer\",\n    \"transformation\",\n    \"translate\",\n    // also a built-in\n    \"transporting\",\n    \"trmac\",\n    \"truncate\",\n    \"truncation\",\n    \"try\",\n    \"tstmp_add_seconds\",\n    \"tstmp_current_utctimestamp\",\n    \"tstmp_is_valid\",\n    \"tstmp_seconds_between\",\n    \"type\",\n    \"type-pool\",\n    \"type-pools\",\n    \"types\",\n    \"uline\",\n    \"unassign\",\n    \"under\",\n    \"unicode\",\n    \"union\",\n    \"unique\",\n    \"unit_conversion\",\n    \"unix\",\n    \"unpack\",\n    \"until\",\n    \"unwind\",\n    \"up\",\n    \"update\",\n    \"upper\",\n    \"user\",\n    \"user-command\",\n    \"using\",\n    \"utf-8\",\n    \"valid\",\n    \"value\",\n    \"value-request\",\n    \"values\",\n    \"vary\",\n    \"varying\",\n    \"verification-message\",\n    \"version\",\n    \"via\",\n    \"view\",\n    \"visible\",\n    \"wait\",\n    \"warning\",\n    \"when\",\n    \"whenever\",\n    \"where\",\n    \"while\",\n    \"width\",\n    \"window\",\n    \"windows\",\n    \"with\",\n    \"with-heading\",\n    \"without\",\n    \"with-title\",\n    \"word\",\n    \"work\",\n    \"write\",\n    \"writer\",\n    \"xml\",\n    \"xsd\",\n    \"yellow\",\n    \"yes\",\n    \"yymmdd\",\n    \"zero\",\n    \"zone\",\n    // since 7.55:\n    \"abap_system_timezone\",\n    \"abap_user_timezone\",\n    \"access\",\n    \"action\",\n    \"adabas\",\n    \"adjust_numbers\",\n    \"allow_precision_loss\",\n    \"allowed\",\n    \"amdp\",\n    \"applicationuser\",\n    \"as_geo_json\",\n    \"as400\",\n    \"associations\",\n    \"balance\",\n    \"behavior\",\n    \"breakup\",\n    \"bulk\",\n    \"cds\",\n    \"cds_client\",\n    \"check_before_save\",\n    \"child\",\n    \"clients\",\n    \"corr\",\n    \"corr_spearman\",\n    \"cross\",\n    \"cycles\",\n    \"datn_add_days\",\n    \"datn_add_months\",\n    \"datn_days_between\",\n    \"dats_from_datn\",\n    \"dats_tims_to_tstmp\",\n    \"dats_to_datn\",\n    \"db2\",\n    \"db6\",\n    \"ddl\",\n    \"dense_rank\",\n    \"depth\",\n    \"deterministic\",\n    \"discarding\",\n    \"entities\",\n    \"entity\",\n    \"error\",\n    \"failed\",\n    \"finalize\",\n    \"first_value\",\n    \"fltp_to_dec\",\n    \"following\",\n    \"fractional\",\n    \"full\",\n    \"graph\",\n    \"grouping\",\n    \"hierarchy\",\n    \"hierarchy_ancestors\",\n    \"hierarchy_ancestors_aggregate\",\n    \"hierarchy_descendants\",\n    \"hierarchy_descendants_aggregate\",\n    \"hierarchy_siblings\",\n    \"incremental\",\n    \"indicators\",\n    \"lag\",\n    \"last_value\",\n    \"lead\",\n    \"leaves\",\n    \"like_regexpr\",\n    \"link\",\n    \"locale_sap\",\n    \"lock\",\n    \"locks\",\n    \"many\",\n    \"mapped\",\n    \"matched\",\n    \"measures\",\n    \"median\",\n    \"mssqlnt\",\n    \"multiple\",\n    \"nodetype\",\n    \"ntile\",\n    \"nulls\",\n    \"occurrences_regexpr\",\n    \"one\",\n    \"operations\",\n    \"oracle\",\n    \"orphans\",\n    \"over\",\n    \"parent\",\n    \"parents\",\n    \"partition\",\n    \"pcre\",\n    \"period\",\n    \"pfcg_mapping\",\n    \"preceding\",\n    \"privileged\",\n    \"product\",\n    \"projection\",\n    \"rank\",\n    \"redirected\",\n    \"replace_regexpr\",\n    \"reported\",\n    \"response\",\n    \"responses\",\n    \"root\",\n    \"row\",\n    \"row_number\",\n    \"sap_system_date\",\n    \"save\",\n    \"schema\",\n    \"session\",\n    \"sets\",\n    \"shortdump\",\n    \"siblings\",\n    \"spantree\",\n    \"start\",\n    \"stddev\",\n    \"string_agg\",\n    \"subtotal\",\n    \"sybase\",\n    \"tims_from_timn\",\n    \"tims_to_timn\",\n    \"to_blob\",\n    \"to_clob\",\n    \"total\",\n    \"trace-entry\",\n    \"tstmp_to_dats\",\n    \"tstmp_to_dst\",\n    \"tstmp_to_tims\",\n    \"tstmpl_from_utcl\",\n    \"tstmpl_to_utcl\",\n    \"unbounded\",\n    \"utcl_add_seconds\",\n    \"utcl_current\",\n    \"utcl_seconds_between\",\n    \"uuid\",\n    \"var\",\n    \"verbatim\"\n  ],\n  //\n  // Built-in Functions\n  //\n  // Functions that are also statements have been moved to keywords\n  //\n  builtinFunctions: [\n    \"abs\",\n    \"acos\",\n    \"asin\",\n    \"atan\",\n    \"bit-set\",\n    \"boolc\",\n    \"boolx\",\n    \"ceil\",\n    \"char_off\",\n    \"charlen\",\n    \"cmax\",\n    \"cmin\",\n    \"concat_lines_of\",\n    // 'condense', // moved to keywords\n    \"contains\",\n    \"contains_any_not_of\",\n    \"contains_any_of\",\n    \"cos\",\n    \"cosh\",\n    \"count\",\n    \"count_any_not_of\",\n    \"count_any_of\",\n    \"dbmaxlen\",\n    \"distance\",\n    \"escape\",\n    \"exp\",\n    // 'find', // moved to keywords\n    \"find_any_not_of\",\n    \"find_any_of\",\n    \"find_end\",\n    \"floor\",\n    \"frac\",\n    \"from_mixed\",\n    // 'insert', // moved to keywords\n    \"ipow\",\n    \"line_exists\",\n    \"line_index\",\n    // 'lines', // moved to keywords\n    \"log\",\n    \"log10\",\n    // 'match', // moved to keywords\n    \"matches\",\n    \"nmax\",\n    \"nmin\",\n    \"numofchar\",\n    \"repeat\",\n    // 'replace', // moved to keywords\n    \"rescale\",\n    \"reverse\",\n    \"round\",\n    \"segment\",\n    \"shift_left\",\n    \"shift_right\",\n    \"sign\",\n    \"sin\",\n    \"sinh\",\n    \"sqrt\",\n    \"strlen\",\n    \"substring\",\n    \"substring_after\",\n    \"substring_before\",\n    \"substring_from\",\n    \"substring_to\",\n    \"tan\",\n    \"tanh\",\n    \"to_lower\",\n    \"to_mixed\",\n    \"to_upper\",\n    // 'translate', // moved to keywords\n    \"trunc\",\n    \"utclong_add\",\n    // since 7.54\n    \"utclong_current\",\n    // since 7.54\n    \"utclong_diff\",\n    // since 7.54\n    \"xsdbool\",\n    \"xstrlen\"\n  ],\n  //\n  // Data Types\n  //\n  // Data types that are also part of statements have been moved to keywords\n  //\n  typeKeywords: [\n    // built-in abap types\n    \"b\",\n    \"c\",\n    \"d\",\n    \"decfloat16\",\n    \"decfloat34\",\n    \"f\",\n    \"i\",\n    \"int8\",\n    // since 7.54\n    \"n\",\n    \"p\",\n    \"s\",\n    \"string\",\n    \"t\",\n    \"utclong\",\n    // since 7.54\n    \"x\",\n    \"xstring\",\n    // generic data types\n    \"any\",\n    \"clike\",\n    \"csequence\",\n    \"decfloat\",\n    // 'object', // moved to keywords\n    \"numeric\",\n    \"simple\",\n    \"xsequence\",\n    // ddic/sql data types\n    \"accp\",\n    \"char\",\n    \"clnt\",\n    \"cuky\",\n    \"curr\",\n    \"datn\",\n    // since 7.55\n    \"dats\",\n    \"d16d\",\n    // since 7.55\n    \"d16n\",\n    // since 7.55\n    \"d16r\",\n    // since 7.55\n    \"d34d\",\n    // since 7.55\n    \"d34n\",\n    // since 7.55\n    \"d34r\",\n    // since 7.55\n    \"dec\",\n    \"df16_dec\",\n    \"df16_raw\",\n    \"df34_dec\",\n    \"df34_raw\",\n    \"fltp\",\n    \"geom_ewkb\",\n    // since 7.55\n    \"int1\",\n    \"int2\",\n    \"int4\",\n    \"lang\",\n    \"lchr\",\n    \"lraw\",\n    \"numc\",\n    \"quan\",\n    \"raw\",\n    \"rawstring\",\n    \"sstring\",\n    \"timn\",\n    // since 7.55\n    \"tims\",\n    \"unit\",\n    \"utcl\",\n    // since 7.55\n    // ddic data types (obsolete)\n    \"df16_scl\",\n    \"df34_scl\",\n    \"prec\",\n    \"varc\",\n    // special data types and constants\n    \"abap_bool\",\n    \"abap_false\",\n    \"abap_true\",\n    \"abap_undefined\",\n    \"me\",\n    \"screen\",\n    \"space\",\n    \"super\",\n    \"sy\",\n    \"syst\",\n    \"table_line\",\n    // obsolete data object\n    \"*sys*\"\n  ],\n  builtinMethods: [\"class_constructor\", \"constructor\"],\n  derivedTypes: [\n    \"%CID\",\n    \"%CID_REF\",\n    \"%CONTROL\",\n    \"%DATA\",\n    \"%ELEMENT\",\n    \"%FAIL\",\n    \"%KEY\",\n    \"%MSG\",\n    \"%PARAM\",\n    \"%PID\",\n    \"%PID_ASSOC\",\n    \"%PID_PARENT\",\n    \"%_HINTS\"\n  ],\n  cdsLanguage: [\n    \"@AbapAnnotation\",\n    \"@AbapCatalog\",\n    \"@AccessControl\",\n    \"@API\",\n    \"@ClientDependent\",\n    \"@ClientHandling\",\n    \"@CompatibilityContract\",\n    \"@DataAging\",\n    \"@EndUserText\",\n    \"@Environment\",\n    \"@LanguageDependency\",\n    \"@MappingRole\",\n    \"@Metadata\",\n    \"@MetadataExtension\",\n    \"@ObjectModel\",\n    \"@Scope\",\n    \"@Semantics\",\n    \"$EXTENSION\",\n    \"$SELF\"\n  ],\n  selectors: [\"->\", \"->*\", \"=>\", \"~\", \"~*\"],\n  //\n  // Operators\n  //\n  // Operators that can be part of statements have been moved to keywords\n  //\n  operators: [\n    // arithmetic operators\n    \" +\",\n    \" -\",\n    \"/\",\n    \"*\",\n    \"**\",\n    \"div\",\n    \"mod\",\n    // assignment operators\n    \"=\",\n    \"#\",\n    \"@\",\n    \"+=\",\n    \"-=\",\n    \"*=\",\n    \"/=\",\n    \"**=\",\n    \"&&=\",\n    // casting operator\n    \"?=\",\n    // concat operators\n    \"&\",\n    \"&&\",\n    // bit operators\n    \"bit-and\",\n    \"bit-not\",\n    \"bit-or\",\n    \"bit-xor\",\n    \"m\",\n    \"o\",\n    \"z\",\n    // boolean operators\n    // 'and', // moved to keywords\n    // 'equiv', // moved to keywords\n    // 'not', // moved to keywords\n    // 'or', // moved to keywords\n    // comparison operators\n    \"<\",\n    \" >\",\n    // todo: separate from -> and =>\n    \"<=\",\n    \">=\",\n    \"<>\",\n    \"><\",\n    // obsolete\n    \"=<\",\n    // obsolete\n    \"=>\",\n    // obsolete\n    // 'between', // moved to keywords\n    \"bt\",\n    \"byte-ca\",\n    \"byte-cn\",\n    \"byte-co\",\n    \"byte-cs\",\n    \"byte-na\",\n    \"byte-ns\",\n    \"ca\",\n    \"cn\",\n    \"co\",\n    \"cp\",\n    \"cs\",\n    \"eq\",\n    // obsolete\n    \"ge\",\n    // obsolete\n    \"gt\",\n    // obsolete\n    // 'in', // moved to keywords\n    \"le\",\n    // obsolete\n    \"lt\",\n    // obsolete\n    \"na\",\n    \"nb\",\n    \"ne\",\n    // obsolete\n    \"np\",\n    \"ns\",\n    // cds\n    \"*/\",\n    \"*:\",\n    \"--\",\n    \"/*\",\n    \"//\"\n  ],\n  symbols: /[=><!~?&+\\-*\\/\\^%#@]+/,\n  tokenizer: {\n    root: [\n      [\n        /[a-z_\\/$%@]([\\w\\/$%]|-(?!>))*/,\n        // exclude '->' selector\n        {\n          cases: {\n            \"@typeKeywords\": \"type\",\n            \"@keywords\": \"keyword\",\n            \"@cdsLanguage\": \"annotation\",\n            \"@derivedTypes\": \"type\",\n            \"@builtinFunctions\": \"type\",\n            \"@builtinMethods\": \"type\",\n            \"@operators\": \"key\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      [/<[\\w]+>/, \"identifier\"],\n      // field symbols\n      [/##[\\w|_]+/, \"comment\"],\n      // pragmas\n      { include: \"@whitespace\" },\n      [/[:,.]/, \"delimiter\"],\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      [\n        /@symbols/,\n        {\n          cases: {\n            \"@selectors\": \"tag\",\n            \"@operators\": \"key\",\n            \"@default\": \"\"\n          }\n        }\n      ],\n      [/'/, { token: \"string\", bracket: \"@open\", next: \"@stringquote\" }],\n      [/`/, { token: \"string\", bracket: \"@open\", next: \"@stringping\" }],\n      [/\\|/, { token: \"string\", bracket: \"@open\", next: \"@stringtemplate\" }],\n      [/\\d+/, \"number\"]\n    ],\n    stringtemplate: [\n      [/[^\\\\\\|]+/, \"string\"],\n      [/\\\\\\|/, \"string\"],\n      [/\\|/, { token: \"string\", bracket: \"@close\", next: \"@pop\" }]\n    ],\n    stringping: [\n      [/[^\\\\`]+/, \"string\"],\n      [/`/, { token: \"string\", bracket: \"@close\", next: \"@pop\" }]\n    ],\n    stringquote: [\n      [/[^\\\\']+/, \"string\"],\n      [/'/, { token: \"string\", bracket: \"@close\", next: \"@pop\" }]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"\"],\n      [/^\\*.*$/, \"comment\"],\n      [/\\\".*$/, \"comment\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/apex/apex.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/apex/apex.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/apex/apex.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"apex\",\n  extensions: [\".cls\"],\n  aliases: [\"Apex\", \"apex\"],\n  mimetypes: [\"text/x-apex-source\", \"text/x-apex\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/apex/apex\"], resolve, reject);\n      });\n    } else {\n      return import(\"./apex.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/apex/apex.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/apex/apex.ts\nvar conf = {\n  // the default separators except `@$`\n  wordPattern: /(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,\n  comments: {\n    lineComment: \"//\",\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" },\n    { open: \"<\", close: \">\" }\n  ],\n  folding: {\n    markers: {\n      start: new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?region\\\\b)|(?:<editor-fold\\\\b))\"),\n      end: new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?endregion\\\\b)|(?:</editor-fold>))\")\n    }\n  }\n};\nvar keywords = [\n  \"abstract\",\n  \"activate\",\n  \"and\",\n  \"any\",\n  \"array\",\n  \"as\",\n  \"asc\",\n  \"assert\",\n  \"autonomous\",\n  \"begin\",\n  \"bigdecimal\",\n  \"blob\",\n  \"boolean\",\n  \"break\",\n  \"bulk\",\n  \"by\",\n  \"case\",\n  \"cast\",\n  \"catch\",\n  \"char\",\n  \"class\",\n  \"collect\",\n  \"commit\",\n  \"const\",\n  \"continue\",\n  \"convertcurrency\",\n  \"decimal\",\n  \"default\",\n  \"delete\",\n  \"desc\",\n  \"do\",\n  \"double\",\n  \"else\",\n  \"end\",\n  \"enum\",\n  \"exception\",\n  \"exit\",\n  \"export\",\n  \"extends\",\n  \"false\",\n  \"final\",\n  \"finally\",\n  \"float\",\n  \"for\",\n  \"from\",\n  \"future\",\n  \"get\",\n  \"global\",\n  \"goto\",\n  \"group\",\n  \"having\",\n  \"hint\",\n  \"if\",\n  \"implements\",\n  \"import\",\n  \"in\",\n  \"inner\",\n  \"insert\",\n  \"instanceof\",\n  \"int\",\n  \"interface\",\n  \"into\",\n  \"join\",\n  \"last_90_days\",\n  \"last_month\",\n  \"last_n_days\",\n  \"last_week\",\n  \"like\",\n  \"limit\",\n  \"list\",\n  \"long\",\n  \"loop\",\n  \"map\",\n  \"merge\",\n  \"native\",\n  \"new\",\n  \"next_90_days\",\n  \"next_month\",\n  \"next_n_days\",\n  \"next_week\",\n  \"not\",\n  \"null\",\n  \"nulls\",\n  \"number\",\n  \"object\",\n  \"of\",\n  \"on\",\n  \"or\",\n  \"outer\",\n  \"override\",\n  \"package\",\n  \"parallel\",\n  \"pragma\",\n  \"private\",\n  \"protected\",\n  \"public\",\n  \"retrieve\",\n  \"return\",\n  \"returning\",\n  \"rollback\",\n  \"savepoint\",\n  \"search\",\n  \"select\",\n  \"set\",\n  \"short\",\n  \"sort\",\n  \"stat\",\n  \"static\",\n  \"strictfp\",\n  \"super\",\n  \"switch\",\n  \"synchronized\",\n  \"system\",\n  \"testmethod\",\n  \"then\",\n  \"this\",\n  \"this_month\",\n  \"this_week\",\n  \"throw\",\n  \"throws\",\n  \"today\",\n  \"tolabel\",\n  \"tomorrow\",\n  \"transaction\",\n  \"transient\",\n  \"trigger\",\n  \"true\",\n  \"try\",\n  \"type\",\n  \"undelete\",\n  \"update\",\n  \"upsert\",\n  \"using\",\n  \"virtual\",\n  \"void\",\n  \"volatile\",\n  \"webservice\",\n  \"when\",\n  \"where\",\n  \"while\",\n  \"yesterday\"\n];\nvar uppercaseFirstLetter = (lowercase) => lowercase.charAt(0).toUpperCase() + lowercase.substr(1);\nvar keywordsWithCaseVariations = [];\nkeywords.forEach((lowercase) => {\n  keywordsWithCaseVariations.push(lowercase);\n  keywordsWithCaseVariations.push(lowercase.toUpperCase());\n  keywordsWithCaseVariations.push(uppercaseFirstLetter(lowercase));\n});\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".apex\",\n  keywords: keywordsWithCaseVariations,\n  operators: [\n    \"=\",\n    \">\",\n    \"<\",\n    \"!\",\n    \"~\",\n    \"?\",\n    \":\",\n    \"==\",\n    \"<=\",\n    \">=\",\n    \"!=\",\n    \"&&\",\n    \"||\",\n    \"++\",\n    \"--\",\n    \"+\",\n    \"-\",\n    \"*\",\n    \"/\",\n    \"&\",\n    \"|\",\n    \"^\",\n    \"%\",\n    \"<<\",\n    \">>\",\n    \">>>\",\n    \"+=\",\n    \"-=\",\n    \"*=\",\n    \"/=\",\n    \"&=\",\n    \"|=\",\n    \"^=\",\n    \"%=\",\n    \"<<=\",\n    \">>=\",\n    \">>>=\"\n  ],\n  // we include these common regular expressions\n  symbols: /[=><!~?:&|+\\-*\\/\\^%]+/,\n  escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n  digits: /\\d+(_+\\d+)*/,\n  octaldigits: /[0-7]+(_+[0-7]+)*/,\n  binarydigits: /[0-1]+(_+[0-1]+)*/,\n  hexdigits: /[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      // identifiers and keywords\n      [\n        /[a-z_$][\\w$]*/,\n        {\n          cases: {\n            \"@keywords\": { token: \"keyword.$0\" },\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      // assume that identifiers starting with an uppercase letter are types\n      [\n        /[A-Z][\\w\\$]*/,\n        {\n          cases: {\n            \"@keywords\": { token: \"keyword.$0\" },\n            \"@default\": \"type.identifier\"\n          }\n        }\n      ],\n      // whitespace\n      { include: \"@whitespace\" },\n      // delimiters and operators\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      [/[<>](?!@symbols)/, \"@brackets\"],\n      [\n        /@symbols/,\n        {\n          cases: {\n            \"@operators\": \"delimiter\",\n            \"@default\": \"\"\n          }\n        }\n      ],\n      // @ annotations.\n      [/@\\s*[a-zA-Z_\\$][\\w\\$]*/, \"annotation\"],\n      // numbers\n      [/(@digits)[eE]([\\-+]?(@digits))?[fFdD]?/, \"number.float\"],\n      [/(@digits)\\.(@digits)([eE][\\-+]?(@digits))?[fFdD]?/, \"number.float\"],\n      [/(@digits)[fFdD]/, \"number.float\"],\n      [/(@digits)[lL]?/, \"number\"],\n      // delimiter: after number because of .\\d floats\n      [/[;,.]/, \"delimiter\"],\n      // strings\n      [/\"([^\"\\\\]|\\\\.)*$/, \"string.invalid\"],\n      // non-teminated string\n      [/'([^'\\\\]|\\\\.)*$/, \"string.invalid\"],\n      // non-teminated string\n      [/\"/, \"string\", '@string.\"'],\n      [/'/, \"string\", \"@string.'\"],\n      // characters\n      [/'[^\\\\']'/, \"string\"],\n      [/(')(@escapes)(')/, [\"string\", \"string.escape\", \"string\"]],\n      [/'/, \"string.invalid\"]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"\"],\n      [/\\/\\*\\*(?!\\/)/, \"comment.doc\", \"@apexdoc\"],\n      [/\\/\\*/, \"comment\", \"@comment\"],\n      [/\\/\\/.*$/, \"comment\"]\n    ],\n    comment: [\n      [/[^\\/*]+/, \"comment\"],\n      // [/\\/\\*/, 'comment', '@push' ],    // nested comment not allowed :-(\n      // [/\\/\\*/,    'comment.invalid' ],    // this breaks block comments in the shape of /* //*/\n      [/\\*\\//, \"comment\", \"@pop\"],\n      [/[\\/*]/, \"comment\"]\n    ],\n    //Identical copy of comment above, except for the addition of .doc\n    apexdoc: [\n      [/[^\\/*]+/, \"comment.doc\"],\n      [/\\*\\//, \"comment.doc\", \"@pop\"],\n      [/[\\/*]/, \"comment.doc\"]\n    ],\n    string: [\n      [/[^\\\\\"']+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [\n        /[\"']/,\n        {\n          cases: {\n            \"$#==$S2\": { token: \"string\", next: \"@pop\" },\n            \"@default\": \"string\"\n          }\n        }\n      ]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/azcli/azcli.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/azcli/azcli.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/azcli/azcli.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"azcli\",\n  extensions: [\".azcli\"],\n  aliases: [\"Azure CLI\", \"azcli\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/azcli/azcli\"], resolve, reject);\n      });\n    } else {\n      return import(\"./azcli.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/azcli/azcli.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/azcli/azcli.ts\nvar conf = {\n  comments: {\n    lineComment: \"#\"\n  }\n};\nvar language = {\n  defaultToken: \"keyword\",\n  ignoreCase: true,\n  tokenPostfix: \".azcli\",\n  str: /[^#\\s]/,\n  tokenizer: {\n    root: [\n      { include: \"@comment\" },\n      [\n        /\\s-+@str*\\s*/,\n        {\n          cases: {\n            \"@eos\": { token: \"key.identifier\", next: \"@popall\" },\n            \"@default\": { token: \"key.identifier\", next: \"@type\" }\n          }\n        }\n      ],\n      [\n        /^-+@str*\\s*/,\n        {\n          cases: {\n            \"@eos\": { token: \"key.identifier\", next: \"@popall\" },\n            \"@default\": { token: \"key.identifier\", next: \"@type\" }\n          }\n        }\n      ]\n    ],\n    type: [\n      { include: \"@comment\" },\n      [\n        /-+@str*\\s*/,\n        {\n          cases: {\n            \"@eos\": { token: \"key.identifier\", next: \"@popall\" },\n            \"@default\": \"key.identifier\"\n          }\n        }\n      ],\n      [\n        /@str+\\s*/,\n        {\n          cases: {\n            \"@eos\": { token: \"string\", next: \"@popall\" },\n            \"@default\": \"string\"\n          }\n        }\n      ]\n    ],\n    comment: [\n      [\n        /#.*$/,\n        {\n          cases: {\n            \"@eos\": { token: \"comment\", next: \"@popall\" }\n          }\n        }\n      ]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/bat/bat.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/bat/bat.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/bat/bat.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"bat\",\n  extensions: [\".bat\", \".cmd\"],\n  aliases: [\"Batch\", \"bat\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/bat/bat\"], resolve, reject);\n      });\n    } else {\n      return import(\"./bat.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/bat/bat.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/bat/bat.ts\nvar conf = {\n  comments: {\n    lineComment: \"REM\"\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' }\n  ],\n  surroundingPairs: [\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' }\n  ],\n  folding: {\n    markers: {\n      start: new RegExp(\"^\\\\s*(::\\\\s*|REM\\\\s+)#region\"),\n      end: new RegExp(\"^\\\\s*(::\\\\s*|REM\\\\s+)#endregion\")\n    }\n  }\n};\nvar language = {\n  defaultToken: \"\",\n  ignoreCase: true,\n  tokenPostfix: \".bat\",\n  brackets: [\n    { token: \"delimiter.bracket\", open: \"{\", close: \"}\" },\n    { token: \"delimiter.parenthesis\", open: \"(\", close: \")\" },\n    { token: \"delimiter.square\", open: \"[\", close: \"]\" }\n  ],\n  keywords: /call|defined|echo|errorlevel|exist|for|goto|if|pause|set|shift|start|title|not|pushd|popd/,\n  // we include these common regular expressions\n  symbols: /[=><!~?&|+\\-*\\/\\^;\\.,]+/,\n  escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      [/^(\\s*)(rem(?:\\s.*|))$/, [\"\", \"comment\"]],\n      [/(\\@?)(@keywords)(?!\\w)/, [{ token: \"keyword\" }, { token: \"keyword.$2\" }]],\n      // whitespace\n      [/[ \\t\\r\\n]+/, \"\"],\n      // blocks\n      [/setlocal(?!\\w)/, \"keyword.tag-setlocal\"],\n      [/endlocal(?!\\w)/, \"keyword.tag-setlocal\"],\n      // words\n      [/[a-zA-Z_]\\w*/, \"\"],\n      // labels\n      [/:\\w*/, \"metatag\"],\n      // variables\n      [/%[^%]+%/, \"variable\"],\n      [/%%[\\w]+(?!\\w)/, \"variable\"],\n      // punctuations\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      [/@symbols/, \"delimiter\"],\n      // numbers\n      [/\\d*\\.\\d+([eE][\\-+]?\\d+)?/, \"number.float\"],\n      [/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/, \"number.hex\"],\n      [/\\d+/, \"number\"],\n      // punctuation: after number because of .\\d floats\n      [/[;,.]/, \"delimiter\"],\n      // strings:\n      [/\"/, \"string\", '@string.\"'],\n      [/'/, \"string\", \"@string.'\"]\n    ],\n    string: [\n      [\n        /[^\\\\\"'%]+/,\n        {\n          cases: {\n            \"@eos\": { token: \"string\", next: \"@popall\" },\n            \"@default\": \"string\"\n          }\n        }\n      ],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/%[\\w ]+%/, \"variable\"],\n      [/%%[\\w]+(?!\\w)/, \"variable\"],\n      [\n        /[\"']/,\n        {\n          cases: {\n            \"$#==$S2\": { token: \"string\", next: \"@pop\" },\n            \"@default\": \"string\"\n          }\n        }\n      ],\n      [/$/, \"string\", \"@popall\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/bicep/bicep.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/bicep/bicep.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/bicep/bicep.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"bicep\",\n  extensions: [\".bicep\"],\n  aliases: [\"Bicep\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/bicep/bicep\"], resolve, reject);\n      });\n    } else {\n      return import(\"./bicep.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/bicep/bicep.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/bicep/bicep.ts\nvar bounded = (text) => `\\\\b${text}\\\\b`;\nvar identifierStart = \"[_a-zA-Z]\";\nvar identifierContinue = \"[_a-zA-Z0-9]\";\nvar identifier = bounded(`${identifierStart}${identifierContinue}*`);\nvar keywords = [\n  \"targetScope\",\n  \"resource\",\n  \"module\",\n  \"param\",\n  \"var\",\n  \"output\",\n  \"for\",\n  \"in\",\n  \"if\",\n  \"existing\"\n];\nvar namedLiterals = [\"true\", \"false\", \"null\"];\nvar nonCommentWs = `[ \\\\t\\\\r\\\\n]`;\nvar numericLiteral = `[0-9]+`;\nvar conf = {\n  comments: {\n    lineComment: \"//\",\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: \"'\", close: \"'\" },\n    { open: \"'''\", close: \"'''\" }\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: \"'\", close: \"'\", notIn: [\"string\", \"comment\"] },\n    { open: \"'''\", close: \"'''\", notIn: [\"string\", \"comment\"] }\n  ],\n  autoCloseBefore: \":.,=}])' \\n\t\",\n  indentationRules: {\n    increaseIndentPattern: new RegExp(\"^((?!\\\\/\\\\/).)*(\\\\{[^}\\\"'`]*|\\\\([^)\\\"'`]*|\\\\[[^\\\\]\\\"'`]*)$\"),\n    decreaseIndentPattern: new RegExp(\"^((?!.*?\\\\/\\\\*).*\\\\*/)?\\\\s*[\\\\}\\\\]].*$\")\n  }\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".bicep\",\n  brackets: [\n    { open: \"{\", close: \"}\", token: \"delimiter.curly\" },\n    { open: \"[\", close: \"]\", token: \"delimiter.square\" },\n    { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" }\n  ],\n  symbols: /[=><!~?:&|+\\-*/^%]+/,\n  keywords,\n  namedLiterals,\n  escapes: `\\\\\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\\\\\|'|\\\\\\${)`,\n  tokenizer: {\n    root: [{ include: \"@expression\" }, { include: \"@whitespace\" }],\n    stringVerbatim: [\n      { regex: `(|'|'')[^']`, action: { token: \"string\" } },\n      { regex: `'''`, action: { token: \"string.quote\", next: \"@pop\" } }\n    ],\n    stringLiteral: [\n      { regex: `\\\\\\${`, action: { token: \"delimiter.bracket\", next: \"@bracketCounting\" } },\n      { regex: `[^\\\\\\\\'$]+`, action: { token: \"string\" } },\n      { regex: \"@escapes\", action: { token: \"string.escape\" } },\n      { regex: `\\\\\\\\.`, action: { token: \"string.escape.invalid\" } },\n      { regex: `'`, action: { token: \"string\", next: \"@pop\" } }\n    ],\n    bracketCounting: [\n      { regex: `{`, action: { token: \"delimiter.bracket\", next: \"@bracketCounting\" } },\n      { regex: `}`, action: { token: \"delimiter.bracket\", next: \"@pop\" } },\n      { include: \"expression\" }\n    ],\n    comment: [\n      { regex: `[^\\\\*]+`, action: { token: \"comment\" } },\n      { regex: `\\\\*\\\\/`, action: { token: \"comment\", next: \"@pop\" } },\n      { regex: `[\\\\/*]`, action: { token: \"comment\" } }\n    ],\n    whitespace: [\n      { regex: nonCommentWs },\n      { regex: `\\\\/\\\\*`, action: { token: \"comment\", next: \"@comment\" } },\n      { regex: `\\\\/\\\\/.*$`, action: { token: \"comment\" } }\n    ],\n    expression: [\n      { regex: `'''`, action: { token: \"string.quote\", next: \"@stringVerbatim\" } },\n      { regex: `'`, action: { token: \"string.quote\", next: \"@stringLiteral\" } },\n      { regex: numericLiteral, action: { token: \"number\" } },\n      {\n        regex: identifier,\n        action: {\n          cases: {\n            \"@keywords\": { token: \"keyword\" },\n            \"@namedLiterals\": { token: \"keyword\" },\n            \"@default\": { token: \"identifier\" }\n          }\n        }\n      }\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/cameligo/cameligo.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/cameligo/cameligo.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/cameligo/cameligo.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"cameligo\",\n  extensions: [\".mligo\"],\n  aliases: [\"Cameligo\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/cameligo/cameligo\"], resolve, reject);\n      });\n    } else {\n      return import(\"./cameligo.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/cameligo/cameligo.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/cameligo/cameligo.ts\nvar conf = {\n  comments: {\n    lineComment: \"//\",\n    blockComment: [\"(*\", \"*)\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"],\n    [\"<\", \">\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: \"<\", close: \">\" },\n    { open: \"'\", close: \"'\" },\n    { open: '\"', close: '\"' },\n    { open: \"(*\", close: \"*)\" }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: \"<\", close: \">\" },\n    { open: \"'\", close: \"'\" },\n    { open: '\"', close: '\"' },\n    { open: \"(*\", close: \"*)\" }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".cameligo\",\n  ignoreCase: true,\n  brackets: [\n    { open: \"{\", close: \"}\", token: \"delimiter.curly\" },\n    { open: \"[\", close: \"]\", token: \"delimiter.square\" },\n    { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" },\n    { open: \"<\", close: \">\", token: \"delimiter.angle\" }\n  ],\n  keywords: [\n    \"abs\",\n    \"assert\",\n    \"block\",\n    \"Bytes\",\n    \"case\",\n    \"Crypto\",\n    \"Current\",\n    \"else\",\n    \"failwith\",\n    \"false\",\n    \"for\",\n    \"fun\",\n    \"if\",\n    \"in\",\n    \"let\",\n    \"let%entry\",\n    \"let%init\",\n    \"List\",\n    \"list\",\n    \"Map\",\n    \"map\",\n    \"match\",\n    \"match%nat\",\n    \"mod\",\n    \"not\",\n    \"operation\",\n    \"Operation\",\n    \"of\",\n    \"record\",\n    \"Set\",\n    \"set\",\n    \"sender\",\n    \"skip\",\n    \"source\",\n    \"String\",\n    \"then\",\n    \"to\",\n    \"true\",\n    \"type\",\n    \"with\"\n  ],\n  typeKeywords: [\"int\", \"unit\", \"string\", \"tz\", \"nat\", \"bool\"],\n  operators: [\n    \"=\",\n    \">\",\n    \"<\",\n    \"<=\",\n    \">=\",\n    \"<>\",\n    \":\",\n    \":=\",\n    \"and\",\n    \"mod\",\n    \"or\",\n    \"+\",\n    \"-\",\n    \"*\",\n    \"/\",\n    \"@\",\n    \"&\",\n    \"^\",\n    \"%\",\n    \"->\",\n    \"<-\",\n    \"&&\",\n    \"||\"\n  ],\n  // we include these common regular expressions\n  symbols: /[=><:@\\^&|+\\-*\\/\\^%]+/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      // identifiers and keywords\n      [\n        /[a-zA-Z_][\\w]*/,\n        {\n          cases: {\n            \"@keywords\": { token: \"keyword.$0\" },\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      // whitespace\n      { include: \"@whitespace\" },\n      // delimiters and operators\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      [/[<>](?!@symbols)/, \"@brackets\"],\n      [\n        /@symbols/,\n        {\n          cases: {\n            \"@operators\": \"delimiter\",\n            \"@default\": \"\"\n          }\n        }\n      ],\n      // numbers\n      [/\\d*\\.\\d+([eE][\\-+]?\\d+)?/, \"number.float\"],\n      [/\\$[0-9a-fA-F]{1,16}/, \"number.hex\"],\n      [/\\d+/, \"number\"],\n      // delimiter: after number because of .\\d floats\n      [/[;,.]/, \"delimiter\"],\n      // strings\n      [/'([^'\\\\]|\\\\.)*$/, \"string.invalid\"],\n      // non-teminated string\n      [/'/, \"string\", \"@string\"],\n      // characters\n      [/'[^\\\\']'/, \"string\"],\n      [/'/, \"string.invalid\"],\n      [/\\#\\d+/, \"string\"]\n    ],\n    /* */\n    comment: [\n      [/[^\\(\\*]+/, \"comment\"],\n      //[/\\(\\*/,    'comment', '@push' ],    // nested comment  not allowed :-(\n      [/\\*\\)/, \"comment\", \"@pop\"],\n      [/\\(\\*/, \"comment\"]\n    ],\n    string: [\n      [/[^\\\\']+/, \"string\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/'/, { token: \"string.quote\", bracket: \"@close\", next: \"@pop\" }]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"white\"],\n      [/\\(\\*/, \"comment\", \"@comment\"],\n      [/\\/\\/.*$/, \"comment\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/clojure/clojure.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/clojure/clojure.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/clojure/clojure.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"clojure\",\n  extensions: [\".clj\", \".cljs\", \".cljc\", \".edn\"],\n  aliases: [\"clojure\", \"Clojure\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/clojure/clojure\"], resolve, reject);\n      });\n    } else {\n      return import(\"./clojure.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/clojure/clojure.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/clojure/clojure.ts\nvar conf = {\n  comments: {\n    lineComment: \";;\"\n  },\n  brackets: [\n    [\"[\", \"]\"],\n    [\"(\", \")\"],\n    [\"{\", \"}\"]\n  ],\n  autoClosingPairs: [\n    { open: \"[\", close: \"]\" },\n    { open: '\"', close: '\"' },\n    { open: \"(\", close: \")\" },\n    { open: \"{\", close: \"}\" }\n  ],\n  surroundingPairs: [\n    { open: \"[\", close: \"]\" },\n    { open: '\"', close: '\"' },\n    { open: \"(\", close: \")\" },\n    { open: \"{\", close: \"}\" }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  ignoreCase: true,\n  tokenPostfix: \".clj\",\n  brackets: [\n    { open: \"[\", close: \"]\", token: \"delimiter.square\" },\n    { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" },\n    { open: \"{\", close: \"}\", token: \"delimiter.curly\" }\n  ],\n  constants: [\"true\", \"false\", \"nil\"],\n  // delimiters: /[\\\\\\[\\]\\s\"#'(),;@^`{}~]|$/,\n  numbers: /^(?:[+\\-]?\\d+(?:(?:N|(?:[eE][+\\-]?\\d+))|(?:\\.?\\d*(?:M|(?:[eE][+\\-]?\\d+))?)|\\/\\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\\\\[\\]\\s\"#'(),;@^`{}~]|$))/,\n  characters: /^(?:\\\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\\\\[\\]\\s\"(),;@^`{}~]|$))/,\n  escapes: /^\\\\(?:[\"'\\\\bfnrt]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n  // simple-namespace := /^[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~][^\\\\\\[\\]\\s\"(),;@^`{}~]*/\n  // simple-symbol    := /^(?:\\/|[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~][^\\\\\\[\\]\\s\"(),;@^`{}~]*)/\n  // qualified-symbol := (<simple-namespace>(<.><simple-namespace>)*</>)?<simple-symbol>\n  qualifiedSymbols: /^(?:(?:[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~][^\\\\\\[\\]\\s\"(),;@^`{}~]*(?:\\.[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~][^\\\\\\[\\]\\s\"(),;@^`{}~]*)*\\/)?(?:\\/|[^\\\\\\/\\[\\]\\d\\s\"#'(),;@^`{}~][^\\\\\\[\\]\\s\"(),;@^`{}~]*)*(?=[\\\\\\[\\]\\s\"(),;@^`{}~]|$))/,\n  specialForms: [\n    \".\",\n    \"catch\",\n    \"def\",\n    \"do\",\n    \"if\",\n    \"monitor-enter\",\n    \"monitor-exit\",\n    \"new\",\n    \"quote\",\n    \"recur\",\n    \"set!\",\n    \"throw\",\n    \"try\",\n    \"var\"\n  ],\n  coreSymbols: [\n    \"*\",\n    \"*'\",\n    \"*1\",\n    \"*2\",\n    \"*3\",\n    \"*agent*\",\n    \"*allow-unresolved-vars*\",\n    \"*assert*\",\n    \"*clojure-version*\",\n    \"*command-line-args*\",\n    \"*compile-files*\",\n    \"*compile-path*\",\n    \"*compiler-options*\",\n    \"*data-readers*\",\n    \"*default-data-reader-fn*\",\n    \"*e\",\n    \"*err*\",\n    \"*file*\",\n    \"*flush-on-newline*\",\n    \"*fn-loader*\",\n    \"*in*\",\n    \"*math-context*\",\n    \"*ns*\",\n    \"*out*\",\n    \"*print-dup*\",\n    \"*print-length*\",\n    \"*print-level*\",\n    \"*print-meta*\",\n    \"*print-namespace-maps*\",\n    \"*print-readably*\",\n    \"*read-eval*\",\n    \"*reader-resolver*\",\n    \"*source-path*\",\n    \"*suppress-read*\",\n    \"*unchecked-math*\",\n    \"*use-context-classloader*\",\n    \"*verbose-defrecords*\",\n    \"*warn-on-reflection*\",\n    \"+\",\n    \"+'\",\n    \"-\",\n    \"-'\",\n    \"->\",\n    \"->>\",\n    \"->ArrayChunk\",\n    \"->Eduction\",\n    \"->Vec\",\n    \"->VecNode\",\n    \"->VecSeq\",\n    \"-cache-protocol-fn\",\n    \"-reset-methods\",\n    \"..\",\n    \"/\",\n    \"<\",\n    \"<=\",\n    \"=\",\n    \"==\",\n    \">\",\n    \">=\",\n    \"EMPTY-NODE\",\n    \"Inst\",\n    \"StackTraceElement->vec\",\n    \"Throwable->map\",\n    \"accessor\",\n    \"aclone\",\n    \"add-classpath\",\n    \"add-watch\",\n    \"agent\",\n    \"agent-error\",\n    \"agent-errors\",\n    \"aget\",\n    \"alength\",\n    \"alias\",\n    \"all-ns\",\n    \"alter\",\n    \"alter-meta!\",\n    \"alter-var-root\",\n    \"amap\",\n    \"ancestors\",\n    \"and\",\n    \"any?\",\n    \"apply\",\n    \"areduce\",\n    \"array-map\",\n    \"as->\",\n    \"aset\",\n    \"aset-boolean\",\n    \"aset-byte\",\n    \"aset-char\",\n    \"aset-double\",\n    \"aset-float\",\n    \"aset-int\",\n    \"aset-long\",\n    \"aset-short\",\n    \"assert\",\n    \"assoc\",\n    \"assoc!\",\n    \"assoc-in\",\n    \"associative?\",\n    \"atom\",\n    \"await\",\n    \"await-for\",\n    \"await1\",\n    \"bases\",\n    \"bean\",\n    \"bigdec\",\n    \"bigint\",\n    \"biginteger\",\n    \"binding\",\n    \"bit-and\",\n    \"bit-and-not\",\n    \"bit-clear\",\n    \"bit-flip\",\n    \"bit-not\",\n    \"bit-or\",\n    \"bit-set\",\n    \"bit-shift-left\",\n    \"bit-shift-right\",\n    \"bit-test\",\n    \"bit-xor\",\n    \"boolean\",\n    \"boolean-array\",\n    \"boolean?\",\n    \"booleans\",\n    \"bound-fn\",\n    \"bound-fn*\",\n    \"bound?\",\n    \"bounded-count\",\n    \"butlast\",\n    \"byte\",\n    \"byte-array\",\n    \"bytes\",\n    \"bytes?\",\n    \"case\",\n    \"cast\",\n    \"cat\",\n    \"char\",\n    \"char-array\",\n    \"char-escape-string\",\n    \"char-name-string\",\n    \"char?\",\n    \"chars\",\n    \"chunk\",\n    \"chunk-append\",\n    \"chunk-buffer\",\n    \"chunk-cons\",\n    \"chunk-first\",\n    \"chunk-next\",\n    \"chunk-rest\",\n    \"chunked-seq?\",\n    \"class\",\n    \"class?\",\n    \"clear-agent-errors\",\n    \"clojure-version\",\n    \"coll?\",\n    \"comment\",\n    \"commute\",\n    \"comp\",\n    \"comparator\",\n    \"compare\",\n    \"compare-and-set!\",\n    \"compile\",\n    \"complement\",\n    \"completing\",\n    \"concat\",\n    \"cond\",\n    \"cond->\",\n    \"cond->>\",\n    \"condp\",\n    \"conj\",\n    \"conj!\",\n    \"cons\",\n    \"constantly\",\n    \"construct-proxy\",\n    \"contains?\",\n    \"count\",\n    \"counted?\",\n    \"create-ns\",\n    \"create-struct\",\n    \"cycle\",\n    \"dec\",\n    \"dec'\",\n    \"decimal?\",\n    \"declare\",\n    \"dedupe\",\n    \"default-data-readers\",\n    \"definline\",\n    \"definterface\",\n    \"defmacro\",\n    \"defmethod\",\n    \"defmulti\",\n    \"defn\",\n    \"defn-\",\n    \"defonce\",\n    \"defprotocol\",\n    \"defrecord\",\n    \"defstruct\",\n    \"deftype\",\n    \"delay\",\n    \"delay?\",\n    \"deliver\",\n    \"denominator\",\n    \"deref\",\n    \"derive\",\n    \"descendants\",\n    \"destructure\",\n    \"disj\",\n    \"disj!\",\n    \"dissoc\",\n    \"dissoc!\",\n    \"distinct\",\n    \"distinct?\",\n    \"doall\",\n    \"dorun\",\n    \"doseq\",\n    \"dosync\",\n    \"dotimes\",\n    \"doto\",\n    \"double\",\n    \"double-array\",\n    \"double?\",\n    \"doubles\",\n    \"drop\",\n    \"drop-last\",\n    \"drop-while\",\n    \"eduction\",\n    \"empty\",\n    \"empty?\",\n    \"ensure\",\n    \"ensure-reduced\",\n    \"enumeration-seq\",\n    \"error-handler\",\n    \"error-mode\",\n    \"eval\",\n    \"even?\",\n    \"every-pred\",\n    \"every?\",\n    \"ex-data\",\n    \"ex-info\",\n    \"extend\",\n    \"extend-protocol\",\n    \"extend-type\",\n    \"extenders\",\n    \"extends?\",\n    \"false?\",\n    \"ffirst\",\n    \"file-seq\",\n    \"filter\",\n    \"filterv\",\n    \"find\",\n    \"find-keyword\",\n    \"find-ns\",\n    \"find-protocol-impl\",\n    \"find-protocol-method\",\n    \"find-var\",\n    \"first\",\n    \"flatten\",\n    \"float\",\n    \"float-array\",\n    \"float?\",\n    \"floats\",\n    \"flush\",\n    \"fn\",\n    \"fn?\",\n    \"fnext\",\n    \"fnil\",\n    \"for\",\n    \"force\",\n    \"format\",\n    \"frequencies\",\n    \"future\",\n    \"future-call\",\n    \"future-cancel\",\n    \"future-cancelled?\",\n    \"future-done?\",\n    \"future?\",\n    \"gen-class\",\n    \"gen-interface\",\n    \"gensym\",\n    \"get\",\n    \"get-in\",\n    \"get-method\",\n    \"get-proxy-class\",\n    \"get-thread-bindings\",\n    \"get-validator\",\n    \"group-by\",\n    \"halt-when\",\n    \"hash\",\n    \"hash-combine\",\n    \"hash-map\",\n    \"hash-ordered-coll\",\n    \"hash-set\",\n    \"hash-unordered-coll\",\n    \"ident?\",\n    \"identical?\",\n    \"identity\",\n    \"if-let\",\n    \"if-not\",\n    \"if-some\",\n    \"ifn?\",\n    \"import\",\n    \"in-ns\",\n    \"inc\",\n    \"inc'\",\n    \"indexed?\",\n    \"init-proxy\",\n    \"inst-ms\",\n    \"inst-ms*\",\n    \"inst?\",\n    \"instance?\",\n    \"int\",\n    \"int-array\",\n    \"int?\",\n    \"integer?\",\n    \"interleave\",\n    \"intern\",\n    \"interpose\",\n    \"into\",\n    \"into-array\",\n    \"ints\",\n    \"io!\",\n    \"isa?\",\n    \"iterate\",\n    \"iterator-seq\",\n    \"juxt\",\n    \"keep\",\n    \"keep-indexed\",\n    \"key\",\n    \"keys\",\n    \"keyword\",\n    \"keyword?\",\n    \"last\",\n    \"lazy-cat\",\n    \"lazy-seq\",\n    \"let\",\n    \"letfn\",\n    \"line-seq\",\n    \"list\",\n    \"list*\",\n    \"list?\",\n    \"load\",\n    \"load-file\",\n    \"load-reader\",\n    \"load-string\",\n    \"loaded-libs\",\n    \"locking\",\n    \"long\",\n    \"long-array\",\n    \"longs\",\n    \"loop\",\n    \"macroexpand\",\n    \"macroexpand-1\",\n    \"make-array\",\n    \"make-hierarchy\",\n    \"map\",\n    \"map-entry?\",\n    \"map-indexed\",\n    \"map?\",\n    \"mapcat\",\n    \"mapv\",\n    \"max\",\n    \"max-key\",\n    \"memfn\",\n    \"memoize\",\n    \"merge\",\n    \"merge-with\",\n    \"meta\",\n    \"method-sig\",\n    \"methods\",\n    \"min\",\n    \"min-key\",\n    \"mix-collection-hash\",\n    \"mod\",\n    \"munge\",\n    \"name\",\n    \"namespace\",\n    \"namespace-munge\",\n    \"nat-int?\",\n    \"neg-int?\",\n    \"neg?\",\n    \"newline\",\n    \"next\",\n    \"nfirst\",\n    \"nil?\",\n    \"nnext\",\n    \"not\",\n    \"not-any?\",\n    \"not-empty\",\n    \"not-every?\",\n    \"not=\",\n    \"ns\",\n    \"ns-aliases\",\n    \"ns-imports\",\n    \"ns-interns\",\n    \"ns-map\",\n    \"ns-name\",\n    \"ns-publics\",\n    \"ns-refers\",\n    \"ns-resolve\",\n    \"ns-unalias\",\n    \"ns-unmap\",\n    \"nth\",\n    \"nthnext\",\n    \"nthrest\",\n    \"num\",\n    \"number?\",\n    \"numerator\",\n    \"object-array\",\n    \"odd?\",\n    \"or\",\n    \"parents\",\n    \"partial\",\n    \"partition\",\n    \"partition-all\",\n    \"partition-by\",\n    \"pcalls\",\n    \"peek\",\n    \"persistent!\",\n    \"pmap\",\n    \"pop\",\n    \"pop!\",\n    \"pop-thread-bindings\",\n    \"pos-int?\",\n    \"pos?\",\n    \"pr\",\n    \"pr-str\",\n    \"prefer-method\",\n    \"prefers\",\n    \"primitives-classnames\",\n    \"print\",\n    \"print-ctor\",\n    \"print-dup\",\n    \"print-method\",\n    \"print-simple\",\n    \"print-str\",\n    \"printf\",\n    \"println\",\n    \"println-str\",\n    \"prn\",\n    \"prn-str\",\n    \"promise\",\n    \"proxy\",\n    \"proxy-call-with-super\",\n    \"proxy-mappings\",\n    \"proxy-name\",\n    \"proxy-super\",\n    \"push-thread-bindings\",\n    \"pvalues\",\n    \"qualified-ident?\",\n    \"qualified-keyword?\",\n    \"qualified-symbol?\",\n    \"quot\",\n    \"rand\",\n    \"rand-int\",\n    \"rand-nth\",\n    \"random-sample\",\n    \"range\",\n    \"ratio?\",\n    \"rational?\",\n    \"rationalize\",\n    \"re-find\",\n    \"re-groups\",\n    \"re-matcher\",\n    \"re-matches\",\n    \"re-pattern\",\n    \"re-seq\",\n    \"read\",\n    \"read-line\",\n    \"read-string\",\n    \"reader-conditional\",\n    \"reader-conditional?\",\n    \"realized?\",\n    \"record?\",\n    \"reduce\",\n    \"reduce-kv\",\n    \"reduced\",\n    \"reduced?\",\n    \"reductions\",\n    \"ref\",\n    \"ref-history-count\",\n    \"ref-max-history\",\n    \"ref-min-history\",\n    \"ref-set\",\n    \"refer\",\n    \"refer-clojure\",\n    \"reify\",\n    \"release-pending-sends\",\n    \"rem\",\n    \"remove\",\n    \"remove-all-methods\",\n    \"remove-method\",\n    \"remove-ns\",\n    \"remove-watch\",\n    \"repeat\",\n    \"repeatedly\",\n    \"replace\",\n    \"replicate\",\n    \"require\",\n    \"reset!\",\n    \"reset-meta!\",\n    \"reset-vals!\",\n    \"resolve\",\n    \"rest\",\n    \"restart-agent\",\n    \"resultset-seq\",\n    \"reverse\",\n    \"reversible?\",\n    \"rseq\",\n    \"rsubseq\",\n    \"run!\",\n    \"satisfies?\",\n    \"second\",\n    \"select-keys\",\n    \"send\",\n    \"send-off\",\n    \"send-via\",\n    \"seq\",\n    \"seq?\",\n    \"seqable?\",\n    \"seque\",\n    \"sequence\",\n    \"sequential?\",\n    \"set\",\n    \"set-agent-send-executor!\",\n    \"set-agent-send-off-executor!\",\n    \"set-error-handler!\",\n    \"set-error-mode!\",\n    \"set-validator!\",\n    \"set?\",\n    \"short\",\n    \"short-array\",\n    \"shorts\",\n    \"shuffle\",\n    \"shutdown-agents\",\n    \"simple-ident?\",\n    \"simple-keyword?\",\n    \"simple-symbol?\",\n    \"slurp\",\n    \"some\",\n    \"some->\",\n    \"some->>\",\n    \"some-fn\",\n    \"some?\",\n    \"sort\",\n    \"sort-by\",\n    \"sorted-map\",\n    \"sorted-map-by\",\n    \"sorted-set\",\n    \"sorted-set-by\",\n    \"sorted?\",\n    \"special-symbol?\",\n    \"spit\",\n    \"split-at\",\n    \"split-with\",\n    \"str\",\n    \"string?\",\n    \"struct\",\n    \"struct-map\",\n    \"subs\",\n    \"subseq\",\n    \"subvec\",\n    \"supers\",\n    \"swap!\",\n    \"swap-vals!\",\n    \"symbol\",\n    \"symbol?\",\n    \"sync\",\n    \"tagged-literal\",\n    \"tagged-literal?\",\n    \"take\",\n    \"take-last\",\n    \"take-nth\",\n    \"take-while\",\n    \"test\",\n    \"the-ns\",\n    \"thread-bound?\",\n    \"time\",\n    \"to-array\",\n    \"to-array-2d\",\n    \"trampoline\",\n    \"transduce\",\n    \"transient\",\n    \"tree-seq\",\n    \"true?\",\n    \"type\",\n    \"unchecked-add\",\n    \"unchecked-add-int\",\n    \"unchecked-byte\",\n    \"unchecked-char\",\n    \"unchecked-dec\",\n    \"unchecked-dec-int\",\n    \"unchecked-divide-int\",\n    \"unchecked-double\",\n    \"unchecked-float\",\n    \"unchecked-inc\",\n    \"unchecked-inc-int\",\n    \"unchecked-int\",\n    \"unchecked-long\",\n    \"unchecked-multiply\",\n    \"unchecked-multiply-int\",\n    \"unchecked-negate\",\n    \"unchecked-negate-int\",\n    \"unchecked-remainder-int\",\n    \"unchecked-short\",\n    \"unchecked-subtract\",\n    \"unchecked-subtract-int\",\n    \"underive\",\n    \"unquote\",\n    \"unquote-splicing\",\n    \"unreduced\",\n    \"unsigned-bit-shift-right\",\n    \"update\",\n    \"update-in\",\n    \"update-proxy\",\n    \"uri?\",\n    \"use\",\n    \"uuid?\",\n    \"val\",\n    \"vals\",\n    \"var-get\",\n    \"var-set\",\n    \"var?\",\n    \"vary-meta\",\n    \"vec\",\n    \"vector\",\n    \"vector-of\",\n    \"vector?\",\n    \"volatile!\",\n    \"volatile?\",\n    \"vreset!\",\n    \"vswap!\",\n    \"when\",\n    \"when-first\",\n    \"when-let\",\n    \"when-not\",\n    \"when-some\",\n    \"while\",\n    \"with-bindings\",\n    \"with-bindings*\",\n    \"with-in-str\",\n    \"with-loading-context\",\n    \"with-local-vars\",\n    \"with-meta\",\n    \"with-open\",\n    \"with-out-str\",\n    \"with-precision\",\n    \"with-redefs\",\n    \"with-redefs-fn\",\n    \"xml-seq\",\n    \"zero?\",\n    \"zipmap\"\n  ],\n  tokenizer: {\n    root: [\n      // whitespaces and comments\n      { include: \"@whitespace\" },\n      // numbers\n      [/@numbers/, \"number\"],\n      // characters\n      [/@characters/, \"string\"],\n      // strings\n      { include: \"@string\" },\n      // brackets\n      [/[()\\[\\]{}]/, \"@brackets\"],\n      // regular expressions\n      [/\\/#\"(?:\\.|(?:\")|[^\"\\n])*\"\\/g/, \"regexp\"],\n      // reader macro characters\n      [/[#'@^`~]/, \"meta\"],\n      // symbols\n      [\n        /@qualifiedSymbols/,\n        {\n          cases: {\n            \"^:.+$\": \"constant\",\n            // Clojure keywords (e.g., `:foo/bar`)\n            \"@specialForms\": \"keyword\",\n            \"@coreSymbols\": \"keyword\",\n            \"@constants\": \"constant\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ]\n    ],\n    whitespace: [\n      [/[\\s,]+/, \"white\"],\n      [/;.*$/, \"comment\"],\n      [/\\(comment\\b/, \"comment\", \"@comment\"]\n    ],\n    comment: [\n      [/\\(/, \"comment\", \"@push\"],\n      [/\\)/, \"comment\", \"@pop\"],\n      [/[^()]/, \"comment\"]\n    ],\n    string: [[/\"/, \"string\", \"@multiLineString\"]],\n    multiLineString: [\n      [/\"/, \"string\", \"@popall\"],\n      [/@escapes/, \"string.escape\"],\n      [/./, \"string\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/coffee/coffee.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/coffee/coffee.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/coffee/coffee.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"coffeescript\",\n  extensions: [\".coffee\"],\n  aliases: [\"CoffeeScript\", \"coffeescript\", \"coffee\"],\n  mimetypes: [\"text/x-coffeescript\", \"text/coffeescript\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/coffee/coffee\"], resolve, reject);\n      });\n    } else {\n      return import(\"./coffee.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/coffee/coffee.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/coffee/coffee.ts\nvar conf = {\n  wordPattern: /(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#%\\^\\&\\*\\(\\)\\=\\$\\-\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,\n  comments: {\n    blockComment: [\"###\", \"###\"],\n    lineComment: \"#\"\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  folding: {\n    markers: {\n      start: new RegExp(\"^\\\\s*#region\\\\b\"),\n      end: new RegExp(\"^\\\\s*#endregion\\\\b\")\n    }\n  }\n};\nvar language = {\n  defaultToken: \"\",\n  ignoreCase: true,\n  tokenPostfix: \".coffee\",\n  brackets: [\n    { open: \"{\", close: \"}\", token: \"delimiter.curly\" },\n    { open: \"[\", close: \"]\", token: \"delimiter.square\" },\n    { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" }\n  ],\n  regEx: /\\/(?!\\/\\/)(?:[^\\/\\\\]|\\\\.)*\\/[igm]*/,\n  keywords: [\n    \"and\",\n    \"or\",\n    \"is\",\n    \"isnt\",\n    \"not\",\n    \"on\",\n    \"yes\",\n    \"@\",\n    \"no\",\n    \"off\",\n    \"true\",\n    \"false\",\n    \"null\",\n    \"this\",\n    \"new\",\n    \"delete\",\n    \"typeof\",\n    \"in\",\n    \"instanceof\",\n    \"return\",\n    \"throw\",\n    \"break\",\n    \"continue\",\n    \"debugger\",\n    \"if\",\n    \"else\",\n    \"switch\",\n    \"for\",\n    \"while\",\n    \"do\",\n    \"try\",\n    \"catch\",\n    \"finally\",\n    \"class\",\n    \"extends\",\n    \"super\",\n    \"undefined\",\n    \"then\",\n    \"unless\",\n    \"until\",\n    \"loop\",\n    \"of\",\n    \"by\",\n    \"when\"\n  ],\n  // we include these common regular expressions\n  symbols: /[=><!~?&%|+\\-*\\/\\^\\.,\\:]+/,\n  escapes: /\\\\(?:[abfnrtv\\\\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      // identifiers and keywords\n      [/\\@[a-zA-Z_]\\w*/, \"variable.predefined\"],\n      [\n        /[a-zA-Z_]\\w*/,\n        {\n          cases: {\n            this: \"variable.predefined\",\n            \"@keywords\": { token: \"keyword.$0\" },\n            \"@default\": \"\"\n          }\n        }\n      ],\n      // whitespace\n      [/[ \\t\\r\\n]+/, \"\"],\n      // Comments\n      [/###/, \"comment\", \"@comment\"],\n      [/#.*$/, \"comment\"],\n      // regular expressions\n      [\"///\", { token: \"regexp\", next: \"@hereregexp\" }],\n      [/^(\\s*)(@regEx)/, [\"\", \"regexp\"]],\n      [/(\\()(\\s*)(@regEx)/, [\"@brackets\", \"\", \"regexp\"]],\n      [/(\\,)(\\s*)(@regEx)/, [\"delimiter\", \"\", \"regexp\"]],\n      [/(\\=)(\\s*)(@regEx)/, [\"delimiter\", \"\", \"regexp\"]],\n      [/(\\:)(\\s*)(@regEx)/, [\"delimiter\", \"\", \"regexp\"]],\n      [/(\\[)(\\s*)(@regEx)/, [\"@brackets\", \"\", \"regexp\"]],\n      [/(\\!)(\\s*)(@regEx)/, [\"delimiter\", \"\", \"regexp\"]],\n      [/(\\&)(\\s*)(@regEx)/, [\"delimiter\", \"\", \"regexp\"]],\n      [/(\\|)(\\s*)(@regEx)/, [\"delimiter\", \"\", \"regexp\"]],\n      [/(\\?)(\\s*)(@regEx)/, [\"delimiter\", \"\", \"regexp\"]],\n      [/(\\{)(\\s*)(@regEx)/, [\"@brackets\", \"\", \"regexp\"]],\n      [/(\\;)(\\s*)(@regEx)/, [\"\", \"\", \"regexp\"]],\n      // delimiters\n      [\n        /}/,\n        {\n          cases: {\n            \"$S2==interpolatedstring\": {\n              token: \"string\",\n              next: \"@pop\"\n            },\n            \"@default\": \"@brackets\"\n          }\n        }\n      ],\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      [/@symbols/, \"delimiter\"],\n      // numbers\n      [/\\d+[eE]([\\-+]?\\d+)?/, \"number.float\"],\n      [/\\d+\\.\\d+([eE][\\-+]?\\d+)?/, \"number.float\"],\n      [/0[xX][0-9a-fA-F]+/, \"number.hex\"],\n      [/0[0-7]+(?!\\d)/, \"number.octal\"],\n      [/\\d+/, \"number\"],\n      // delimiter: after number because of .\\d floats\n      [/[,.]/, \"delimiter\"],\n      // strings:\n      [/\"\"\"/, \"string\", '@herestring.\"\"\"'],\n      [/'''/, \"string\", \"@herestring.'''\"],\n      [\n        /\"/,\n        {\n          cases: {\n            \"@eos\": \"string\",\n            \"@default\": { token: \"string\", next: '@string.\"' }\n          }\n        }\n      ],\n      [\n        /'/,\n        {\n          cases: {\n            \"@eos\": \"string\",\n            \"@default\": { token: \"string\", next: \"@string.'\" }\n          }\n        }\n      ]\n    ],\n    string: [\n      [/[^\"'\\#\\\\]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\./, \"string.escape.invalid\"],\n      [/\\./, \"string.escape.invalid\"],\n      [\n        /#{/,\n        {\n          cases: {\n            '$S2==\"': {\n              token: \"string\",\n              next: \"root.interpolatedstring\"\n            },\n            \"@default\": \"string\"\n          }\n        }\n      ],\n      [\n        /[\"']/,\n        {\n          cases: {\n            \"$#==$S2\": { token: \"string\", next: \"@pop\" },\n            \"@default\": \"string\"\n          }\n        }\n      ],\n      [/#/, \"string\"]\n    ],\n    herestring: [\n      [\n        /(\"\"\"|''')/,\n        {\n          cases: {\n            \"$1==$S2\": { token: \"string\", next: \"@pop\" },\n            \"@default\": \"string\"\n          }\n        }\n      ],\n      [/[^#\\\\'\"]+/, \"string\"],\n      [/['\"]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\./, \"string.escape.invalid\"],\n      [/#{/, { token: \"string.quote\", next: \"root.interpolatedstring\" }],\n      [/#/, \"string\"]\n    ],\n    comment: [\n      [/[^#]+/, \"comment\"],\n      [/###/, \"comment\", \"@pop\"],\n      [/#/, \"comment\"]\n    ],\n    hereregexp: [\n      [/[^\\\\\\/#]+/, \"regexp\"],\n      [/\\\\./, \"regexp\"],\n      [/#.*$/, \"comment\"],\n      [\"///[igm]*\", { token: \"regexp\", next: \"@pop\" }],\n      [/\\//, \"regexp\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/cpp/cpp.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/cpp/cpp.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/cpp/cpp.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"c\",\n  extensions: [\".c\", \".h\"],\n  aliases: [\"C\", \"c\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/cpp/cpp\"], resolve, reject);\n      });\n    } else {\n      return import(\"./cpp.js\");\n    }\n  }\n});\nregisterLanguage({\n  id: \"cpp\",\n  extensions: [\".cpp\", \".cc\", \".cxx\", \".hpp\", \".hh\", \".hxx\"],\n  aliases: [\"C++\", \"Cpp\", \"cpp\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/cpp/cpp\"], resolve, reject);\n      });\n    } else {\n      return import(\"./cpp.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/cpp/cpp.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/cpp/cpp.ts\nvar conf = {\n  comments: {\n    lineComment: \"//\",\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"[\", close: \"]\" },\n    { open: \"{\", close: \"}\" },\n    { open: \"(\", close: \")\" },\n    { open: \"'\", close: \"'\", notIn: [\"string\", \"comment\"] },\n    { open: '\"', close: '\"', notIn: [\"string\"] }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  folding: {\n    markers: {\n      start: new RegExp(\"^\\\\s*#pragma\\\\s+region\\\\b\"),\n      end: new RegExp(\"^\\\\s*#pragma\\\\s+endregion\\\\b\")\n    }\n  }\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".cpp\",\n  brackets: [\n    { token: \"delimiter.curly\", open: \"{\", close: \"}\" },\n    { token: \"delimiter.parenthesis\", open: \"(\", close: \")\" },\n    { token: \"delimiter.square\", open: \"[\", close: \"]\" },\n    { token: \"delimiter.angle\", open: \"<\", close: \">\" }\n  ],\n  keywords: [\n    \"abstract\",\n    \"amp\",\n    \"array\",\n    \"auto\",\n    \"bool\",\n    \"break\",\n    \"case\",\n    \"catch\",\n    \"char\",\n    \"class\",\n    \"const\",\n    \"constexpr\",\n    \"const_cast\",\n    \"continue\",\n    \"cpu\",\n    \"decltype\",\n    \"default\",\n    \"delegate\",\n    \"delete\",\n    \"do\",\n    \"double\",\n    \"dynamic_cast\",\n    \"each\",\n    \"else\",\n    \"enum\",\n    \"event\",\n    \"explicit\",\n    \"export\",\n    \"extern\",\n    \"false\",\n    \"final\",\n    \"finally\",\n    \"float\",\n    \"for\",\n    \"friend\",\n    \"gcnew\",\n    \"generic\",\n    \"goto\",\n    \"if\",\n    \"in\",\n    \"initonly\",\n    \"inline\",\n    \"int\",\n    \"interface\",\n    \"interior_ptr\",\n    \"internal\",\n    \"literal\",\n    \"long\",\n    \"mutable\",\n    \"namespace\",\n    \"new\",\n    \"noexcept\",\n    \"nullptr\",\n    \"__nullptr\",\n    \"operator\",\n    \"override\",\n    \"partial\",\n    \"pascal\",\n    \"pin_ptr\",\n    \"private\",\n    \"property\",\n    \"protected\",\n    \"public\",\n    \"ref\",\n    \"register\",\n    \"reinterpret_cast\",\n    \"restrict\",\n    \"return\",\n    \"safe_cast\",\n    \"sealed\",\n    \"short\",\n    \"signed\",\n    \"sizeof\",\n    \"static\",\n    \"static_assert\",\n    \"static_cast\",\n    \"struct\",\n    \"switch\",\n    \"template\",\n    \"this\",\n    \"thread_local\",\n    \"throw\",\n    \"tile_static\",\n    \"true\",\n    \"try\",\n    \"typedef\",\n    \"typeid\",\n    \"typename\",\n    \"union\",\n    \"unsigned\",\n    \"using\",\n    \"virtual\",\n    \"void\",\n    \"volatile\",\n    \"wchar_t\",\n    \"where\",\n    \"while\",\n    \"_asm\",\n    // reserved word with one underscores\n    \"_based\",\n    \"_cdecl\",\n    \"_declspec\",\n    \"_fastcall\",\n    \"_if_exists\",\n    \"_if_not_exists\",\n    \"_inline\",\n    \"_multiple_inheritance\",\n    \"_pascal\",\n    \"_single_inheritance\",\n    \"_stdcall\",\n    \"_virtual_inheritance\",\n    \"_w64\",\n    \"__abstract\",\n    // reserved word with two underscores\n    \"__alignof\",\n    \"__asm\",\n    \"__assume\",\n    \"__based\",\n    \"__box\",\n    \"__builtin_alignof\",\n    \"__cdecl\",\n    \"__clrcall\",\n    \"__declspec\",\n    \"__delegate\",\n    \"__event\",\n    \"__except\",\n    \"__fastcall\",\n    \"__finally\",\n    \"__forceinline\",\n    \"__gc\",\n    \"__hook\",\n    \"__identifier\",\n    \"__if_exists\",\n    \"__if_not_exists\",\n    \"__inline\",\n    \"__int128\",\n    \"__int16\",\n    \"__int32\",\n    \"__int64\",\n    \"__int8\",\n    \"__interface\",\n    \"__leave\",\n    \"__m128\",\n    \"__m128d\",\n    \"__m128i\",\n    \"__m256\",\n    \"__m256d\",\n    \"__m256i\",\n    \"__m512\",\n    \"__m512d\",\n    \"__m512i\",\n    \"__m64\",\n    \"__multiple_inheritance\",\n    \"__newslot\",\n    \"__nogc\",\n    \"__noop\",\n    \"__nounwind\",\n    \"__novtordisp\",\n    \"__pascal\",\n    \"__pin\",\n    \"__pragma\",\n    \"__property\",\n    \"__ptr32\",\n    \"__ptr64\",\n    \"__raise\",\n    \"__restrict\",\n    \"__resume\",\n    \"__sealed\",\n    \"__single_inheritance\",\n    \"__stdcall\",\n    \"__super\",\n    \"__thiscall\",\n    \"__try\",\n    \"__try_cast\",\n    \"__typeof\",\n    \"__unaligned\",\n    \"__unhook\",\n    \"__uuidof\",\n    \"__value\",\n    \"__virtual_inheritance\",\n    \"__w64\",\n    \"__wchar_t\"\n  ],\n  operators: [\n    \"=\",\n    \">\",\n    \"<\",\n    \"!\",\n    \"~\",\n    \"?\",\n    \":\",\n    \"==\",\n    \"<=\",\n    \">=\",\n    \"!=\",\n    \"&&\",\n    \"||\",\n    \"++\",\n    \"--\",\n    \"+\",\n    \"-\",\n    \"*\",\n    \"/\",\n    \"&\",\n    \"|\",\n    \"^\",\n    \"%\",\n    \"<<\",\n    \">>\",\n    \"+=\",\n    \"-=\",\n    \"*=\",\n    \"/=\",\n    \"&=\",\n    \"|=\",\n    \"^=\",\n    \"%=\",\n    \"<<=\",\n    \">>=\"\n  ],\n  // we include these common regular expressions\n  symbols: /[=><!~?:&|+\\-*\\/\\^%]+/,\n  escapes: /\\\\(?:[0abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n  integersuffix: /([uU](ll|LL|l|L)|(ll|LL|l|L)?[uU]?)/,\n  floatsuffix: /[fFlL]?/,\n  encoding: /u|u8|U|L/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      // C++ 11 Raw String\n      [/@encoding?R\\\"(?:([^ ()\\\\\\t]*))\\(/, { token: \"string.raw.begin\", next: \"@raw.$1\" }],\n      // identifiers and keywords\n      [\n        /[a-zA-Z_]\\w*/,\n        {\n          cases: {\n            \"@keywords\": { token: \"keyword.$0\" },\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      // The preprocessor checks must be before whitespace as they check /^\\s*#/ which\n      // otherwise fails to match later after other whitespace has been removed.\n      // Inclusion\n      [/^\\s*#\\s*include/, { token: \"keyword.directive.include\", next: \"@include\" }],\n      // Preprocessor directive\n      [/^\\s*#\\s*\\w+/, \"keyword.directive\"],\n      // whitespace\n      { include: \"@whitespace\" },\n      // [[ attributes ]].\n      [/\\[\\s*\\[/, { token: \"annotation\", next: \"@annotation\" }],\n      // delimiters and operators\n      [/[{}()<>\\[\\]]/, \"@brackets\"],\n      [\n        /@symbols/,\n        {\n          cases: {\n            \"@operators\": \"delimiter\",\n            \"@default\": \"\"\n          }\n        }\n      ],\n      // numbers\n      [/\\d*\\d+[eE]([\\-+]?\\d+)?(@floatsuffix)/, \"number.float\"],\n      [/\\d*\\.\\d+([eE][\\-+]?\\d+)?(@floatsuffix)/, \"number.float\"],\n      [/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/, \"number.hex\"],\n      [/0[0-7']*[0-7](@integersuffix)/, \"number.octal\"],\n      [/0[bB][0-1']*[0-1](@integersuffix)/, \"number.binary\"],\n      [/\\d[\\d']*\\d(@integersuffix)/, \"number\"],\n      [/\\d(@integersuffix)/, \"number\"],\n      // delimiter: after number because of .\\d floats\n      [/[;,.]/, \"delimiter\"],\n      // strings\n      [/\"([^\"\\\\]|\\\\.)*$/, \"string.invalid\"],\n      // non-teminated string\n      [/\"/, \"string\", \"@string\"],\n      // characters\n      [/'[^\\\\']'/, \"string\"],\n      [/(')(@escapes)(')/, [\"string\", \"string.escape\", \"string\"]],\n      [/'/, \"string.invalid\"]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"\"],\n      [/\\/\\*\\*(?!\\/)/, \"comment.doc\", \"@doccomment\"],\n      [/\\/\\*/, \"comment\", \"@comment\"],\n      [/\\/\\/.*\\\\$/, \"comment\", \"@linecomment\"],\n      [/\\/\\/.*$/, \"comment\"]\n    ],\n    comment: [\n      [/[^\\/*]+/, \"comment\"],\n      [/\\*\\//, \"comment\", \"@pop\"],\n      [/[\\/*]/, \"comment\"]\n    ],\n    //For use with continuous line comments\n    linecomment: [\n      [/.*[^\\\\]$/, \"comment\", \"@pop\"],\n      [/[^]+/, \"comment\"]\n    ],\n    //Identical copy of comment above, except for the addition of .doc\n    doccomment: [\n      [/[^\\/*]+/, \"comment.doc\"],\n      [/\\*\\//, \"comment.doc\", \"@pop\"],\n      [/[\\/*]/, \"comment.doc\"]\n    ],\n    string: [\n      [/[^\\\\\"]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/\"/, \"string\", \"@pop\"]\n    ],\n    raw: [\n      [/[^)]+/, \"string.raw\"],\n      [/\\)$S2\\\"/, { token: \"string.raw.end\", next: \"@pop\" }],\n      [/\\)/, \"string.raw\"]\n    ],\n    annotation: [\n      { include: \"@whitespace\" },\n      [/using|alignas/, \"keyword\"],\n      [/[a-zA-Z0-9_]+/, \"annotation\"],\n      [/[,:]/, \"delimiter\"],\n      [/[()]/, \"@brackets\"],\n      [/\\]\\s*\\]/, { token: \"annotation\", next: \"@pop\" }]\n    ],\n    include: [\n      [\n        /(\\s*)(<)([^<>]*)(>)/,\n        [\n          \"\",\n          \"keyword.directive.include.begin\",\n          \"string.include.identifier\",\n          { token: \"keyword.directive.include.end\", next: \"@pop\" }\n        ]\n      ],\n      [\n        /(\\s*)(\")([^\"]*)(\")/,\n        [\n          \"\",\n          \"keyword.directive.include.begin\",\n          \"string.include.identifier\",\n          { token: \"keyword.directive.include.end\", next: \"@pop\" }\n        ]\n      ]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/csharp/csharp.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/csharp/csharp.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/csharp/csharp.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"csharp\",\n  extensions: [\".cs\", \".csx\", \".cake\"],\n  aliases: [\"C#\", \"csharp\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/csharp/csharp\"], resolve, reject);\n      });\n    } else {\n      return import(\"./csharp.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/csharp/csharp.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/csharp/csharp.ts\nvar conf = {\n  wordPattern: /(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\#\\$\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,\n  comments: {\n    lineComment: \"//\",\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: \"'\", close: \"'\", notIn: [\"string\", \"comment\"] },\n    { open: '\"', close: '\"', notIn: [\"string\", \"comment\"] }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: \"<\", close: \">\" },\n    { open: \"'\", close: \"'\" },\n    { open: '\"', close: '\"' }\n  ],\n  folding: {\n    markers: {\n      start: new RegExp(\"^\\\\s*#region\\\\b\"),\n      end: new RegExp(\"^\\\\s*#endregion\\\\b\")\n    }\n  }\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".cs\",\n  brackets: [\n    { open: \"{\", close: \"}\", token: \"delimiter.curly\" },\n    { open: \"[\", close: \"]\", token: \"delimiter.square\" },\n    { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" },\n    { open: \"<\", close: \">\", token: \"delimiter.angle\" }\n  ],\n  keywords: [\n    \"extern\",\n    \"alias\",\n    \"using\",\n    \"bool\",\n    \"decimal\",\n    \"sbyte\",\n    \"byte\",\n    \"short\",\n    \"ushort\",\n    \"int\",\n    \"uint\",\n    \"long\",\n    \"ulong\",\n    \"char\",\n    \"float\",\n    \"double\",\n    \"object\",\n    \"dynamic\",\n    \"string\",\n    \"assembly\",\n    \"is\",\n    \"as\",\n    \"ref\",\n    \"out\",\n    \"this\",\n    \"base\",\n    \"new\",\n    \"typeof\",\n    \"void\",\n    \"checked\",\n    \"unchecked\",\n    \"default\",\n    \"delegate\",\n    \"var\",\n    \"const\",\n    \"if\",\n    \"else\",\n    \"switch\",\n    \"case\",\n    \"while\",\n    \"do\",\n    \"for\",\n    \"foreach\",\n    \"in\",\n    \"break\",\n    \"continue\",\n    \"goto\",\n    \"return\",\n    \"throw\",\n    \"try\",\n    \"catch\",\n    \"finally\",\n    \"lock\",\n    \"yield\",\n    \"from\",\n    \"let\",\n    \"where\",\n    \"join\",\n    \"on\",\n    \"equals\",\n    \"into\",\n    \"orderby\",\n    \"ascending\",\n    \"descending\",\n    \"select\",\n    \"group\",\n    \"by\",\n    \"namespace\",\n    \"partial\",\n    \"class\",\n    \"field\",\n    \"event\",\n    \"method\",\n    \"param\",\n    \"public\",\n    \"protected\",\n    \"internal\",\n    \"private\",\n    \"abstract\",\n    \"sealed\",\n    \"static\",\n    \"struct\",\n    \"readonly\",\n    \"volatile\",\n    \"virtual\",\n    \"override\",\n    \"params\",\n    \"get\",\n    \"set\",\n    \"add\",\n    \"remove\",\n    \"operator\",\n    \"true\",\n    \"false\",\n    \"implicit\",\n    \"explicit\",\n    \"interface\",\n    \"enum\",\n    \"null\",\n    \"async\",\n    \"await\",\n    \"fixed\",\n    \"sizeof\",\n    \"stackalloc\",\n    \"unsafe\",\n    \"nameof\",\n    \"when\"\n  ],\n  namespaceFollows: [\"namespace\", \"using\"],\n  parenFollows: [\"if\", \"for\", \"while\", \"switch\", \"foreach\", \"using\", \"catch\", \"when\"],\n  operators: [\n    \"=\",\n    \"??\",\n    \"||\",\n    \"&&\",\n    \"|\",\n    \"^\",\n    \"&\",\n    \"==\",\n    \"!=\",\n    \"<=\",\n    \">=\",\n    \"<<\",\n    \"+\",\n    \"-\",\n    \"*\",\n    \"/\",\n    \"%\",\n    \"!\",\n    \"~\",\n    \"++\",\n    \"--\",\n    \"+=\",\n    \"-=\",\n    \"*=\",\n    \"/=\",\n    \"%=\",\n    \"&=\",\n    \"|=\",\n    \"^=\",\n    \"<<=\",\n    \">>=\",\n    \">>\",\n    \"=>\"\n  ],\n  symbols: /[=><!~?:&|+\\-*\\/\\^%]+/,\n  // escape sequences\n  escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      // identifiers and keywords\n      [\n        /\\@?[a-zA-Z_]\\w*/,\n        {\n          cases: {\n            \"@namespaceFollows\": {\n              token: \"keyword.$0\",\n              next: \"@namespace\"\n            },\n            \"@keywords\": {\n              token: \"keyword.$0\",\n              next: \"@qualified\"\n            },\n            \"@default\": { token: \"identifier\", next: \"@qualified\" }\n          }\n        }\n      ],\n      // whitespace\n      { include: \"@whitespace\" },\n      // delimiters and operators\n      [\n        /}/,\n        {\n          cases: {\n            \"$S2==interpolatedstring\": {\n              token: \"string.quote\",\n              next: \"@pop\"\n            },\n            \"$S2==litinterpstring\": {\n              token: \"string.quote\",\n              next: \"@pop\"\n            },\n            \"@default\": \"@brackets\"\n          }\n        }\n      ],\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      [/[<>](?!@symbols)/, \"@brackets\"],\n      [\n        /@symbols/,\n        {\n          cases: {\n            \"@operators\": \"delimiter\",\n            \"@default\": \"\"\n          }\n        }\n      ],\n      // numbers\n      [/[0-9_]*\\.[0-9_]+([eE][\\-+]?\\d+)?[fFdD]?/, \"number.float\"],\n      [/0[xX][0-9a-fA-F_]+/, \"number.hex\"],\n      [/0[bB][01_]+/, \"number.hex\"],\n      // binary: use same theme style as hex\n      [/[0-9_]+/, \"number\"],\n      // delimiter: after number because of .\\d floats\n      [/[;,.]/, \"delimiter\"],\n      // strings\n      [/\"([^\"\\\\]|\\\\.)*$/, \"string.invalid\"],\n      // non-teminated string\n      [/\"/, { token: \"string.quote\", next: \"@string\" }],\n      [/\\$\\@\"/, { token: \"string.quote\", next: \"@litinterpstring\" }],\n      [/\\@\"/, { token: \"string.quote\", next: \"@litstring\" }],\n      [/\\$\"/, { token: \"string.quote\", next: \"@interpolatedstring\" }],\n      // characters\n      [/'[^\\\\']'/, \"string\"],\n      [/(')(@escapes)(')/, [\"string\", \"string.escape\", \"string\"]],\n      [/'/, \"string.invalid\"]\n    ],\n    qualified: [\n      [\n        /[a-zA-Z_][\\w]*/,\n        {\n          cases: {\n            \"@keywords\": { token: \"keyword.$0\" },\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      [/\\./, \"delimiter\"],\n      [\"\", \"\", \"@pop\"]\n    ],\n    namespace: [\n      { include: \"@whitespace\" },\n      [/[A-Z]\\w*/, \"namespace\"],\n      [/[\\.=]/, \"delimiter\"],\n      [\"\", \"\", \"@pop\"]\n    ],\n    comment: [\n      [/[^\\/*]+/, \"comment\"],\n      // [/\\/\\*/,    'comment', '@push' ],    // no nested comments :-(\n      [\"\\\\*/\", \"comment\", \"@pop\"],\n      [/[\\/*]/, \"comment\"]\n    ],\n    string: [\n      [/[^\\\\\"]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/\"/, { token: \"string.quote\", next: \"@pop\" }]\n    ],\n    litstring: [\n      [/[^\"]+/, \"string\"],\n      [/\"\"/, \"string.escape\"],\n      [/\"/, { token: \"string.quote\", next: \"@pop\" }]\n    ],\n    litinterpstring: [\n      [/[^\"{]+/, \"string\"],\n      [/\"\"/, \"string.escape\"],\n      [/{{/, \"string.escape\"],\n      [/}}/, \"string.escape\"],\n      [/{/, { token: \"string.quote\", next: \"root.litinterpstring\" }],\n      [/\"/, { token: \"string.quote\", next: \"@pop\" }]\n    ],\n    interpolatedstring: [\n      [/[^\\\\\"{]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/{{/, \"string.escape\"],\n      [/}}/, \"string.escape\"],\n      [/{/, { token: \"string.quote\", next: \"root.interpolatedstring\" }],\n      [/\"/, { token: \"string.quote\", next: \"@pop\" }]\n    ],\n    whitespace: [\n      [/^[ \\t\\v\\f]*#((r)|(load))(?=\\s)/, \"directive.csx\"],\n      [/^[ \\t\\v\\f]*#\\w.*$/, \"namespace.cpp\"],\n      [/[ \\t\\v\\f\\r\\n]+/, \"\"],\n      [/\\/\\*/, \"comment\", \"@comment\"],\n      [/\\/\\/.*$/, \"comment\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/csp/csp.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/csp/csp.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/csp/csp.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"csp\",\n  extensions: [\".csp\"],\n  aliases: [\"CSP\", \"csp\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/csp/csp\"], resolve, reject);\n      });\n    } else {\n      return import(\"./csp.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/csp/csp.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/csp/csp.ts\nvar conf = {\n  brackets: [],\n  autoClosingPairs: [],\n  surroundingPairs: []\n};\nvar language = {\n  // Set defaultToken to invalid to see what you do not tokenize yet\n  // defaultToken: 'invalid',\n  keywords: [],\n  typeKeywords: [],\n  tokenPostfix: \".csp\",\n  operators: [],\n  symbols: /[=><!~?:&|+\\-*\\/\\^%]+/,\n  escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n  tokenizer: {\n    root: [\n      [/child-src/, \"string.quote\"],\n      [/connect-src/, \"string.quote\"],\n      [/default-src/, \"string.quote\"],\n      [/font-src/, \"string.quote\"],\n      [/frame-src/, \"string.quote\"],\n      [/img-src/, \"string.quote\"],\n      [/manifest-src/, \"string.quote\"],\n      [/media-src/, \"string.quote\"],\n      [/object-src/, \"string.quote\"],\n      [/script-src/, \"string.quote\"],\n      [/style-src/, \"string.quote\"],\n      [/worker-src/, \"string.quote\"],\n      [/base-uri/, \"string.quote\"],\n      [/plugin-types/, \"string.quote\"],\n      [/sandbox/, \"string.quote\"],\n      [/disown-opener/, \"string.quote\"],\n      [/form-action/, \"string.quote\"],\n      [/frame-ancestors/, \"string.quote\"],\n      [/report-uri/, \"string.quote\"],\n      [/report-to/, \"string.quote\"],\n      [/upgrade-insecure-requests/, \"string.quote\"],\n      [/block-all-mixed-content/, \"string.quote\"],\n      [/require-sri-for/, \"string.quote\"],\n      [/reflected-xss/, \"string.quote\"],\n      [/referrer/, \"string.quote\"],\n      [/policy-uri/, \"string.quote\"],\n      [/'self'/, \"string.quote\"],\n      [/'unsafe-inline'/, \"string.quote\"],\n      [/'unsafe-eval'/, \"string.quote\"],\n      [/'strict-dynamic'/, \"string.quote\"],\n      [/'unsafe-hashed-attributes'/, \"string.quote\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/css/css.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/css/css.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/css/css.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"css\",\n  extensions: [\".css\"],\n  aliases: [\"CSS\", \"css\"],\n  mimetypes: [\"text/css\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/css/css\"], resolve, reject);\n      });\n    } else {\n      return import(\"./css.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/css/css.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/css/css.ts\nvar conf = {\n  wordPattern: /(#?-?\\d*\\.\\d\\w*%?)|((::|[@#.!:])?[\\w-?]+%?)|::|[@#.!:]/g,\n  comments: {\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\", notIn: [\"string\", \"comment\"] },\n    { open: \"[\", close: \"]\", notIn: [\"string\", \"comment\"] },\n    { open: \"(\", close: \")\", notIn: [\"string\", \"comment\"] },\n    { open: '\"', close: '\"', notIn: [\"string\", \"comment\"] },\n    { open: \"'\", close: \"'\", notIn: [\"string\", \"comment\"] }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  folding: {\n    markers: {\n      start: new RegExp(\"^\\\\s*\\\\/\\\\*\\\\s*#region\\\\b\\\\s*(.*?)\\\\s*\\\\*\\\\/\"),\n      end: new RegExp(\"^\\\\s*\\\\/\\\\*\\\\s*#endregion\\\\b.*\\\\*\\\\/\")\n    }\n  }\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".css\",\n  ws: \"[ \t\\n\\r\\f]*\",\n  // whitespaces (referenced in several rules)\n  identifier: \"-?-?([a-zA-Z]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))([\\\\w\\\\-]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))*\",\n  brackets: [\n    { open: \"{\", close: \"}\", token: \"delimiter.bracket\" },\n    { open: \"[\", close: \"]\", token: \"delimiter.bracket\" },\n    { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" },\n    { open: \"<\", close: \">\", token: \"delimiter.angle\" }\n  ],\n  tokenizer: {\n    root: [{ include: \"@selector\" }],\n    selector: [\n      { include: \"@comments\" },\n      { include: \"@import\" },\n      { include: \"@strings\" },\n      [\n        \"[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)\",\n        { token: \"keyword\", next: \"@keyframedeclaration\" }\n      ],\n      [\"[@](page|content|font-face|-moz-document)\", { token: \"keyword\" }],\n      [\"[@](charset|namespace)\", { token: \"keyword\", next: \"@declarationbody\" }],\n      [\n        \"(url-prefix)(\\\\()\",\n        [\"attribute.value\", { token: \"delimiter.parenthesis\", next: \"@urldeclaration\" }]\n      ],\n      [\n        \"(url)(\\\\()\",\n        [\"attribute.value\", { token: \"delimiter.parenthesis\", next: \"@urldeclaration\" }]\n      ],\n      { include: \"@selectorname\" },\n      [\"[\\\\*]\", \"tag\"],\n      // selector symbols\n      [\"[>\\\\+,]\", \"delimiter\"],\n      // selector operators\n      [\"\\\\[\", { token: \"delimiter.bracket\", next: \"@selectorattribute\" }],\n      [\"{\", { token: \"delimiter.bracket\", next: \"@selectorbody\" }]\n    ],\n    selectorbody: [\n      { include: \"@comments\" },\n      [\"[*_]?@identifier@ws:(?=(\\\\s|\\\\d|[^{;}]*[;}]))\", \"attribute.name\", \"@rulevalue\"],\n      // rule definition: to distinguish from a nested selector check for whitespace, number or a semicolon\n      [\"}\", { token: \"delimiter.bracket\", next: \"@pop\" }]\n    ],\n    selectorname: [\n      [\"(\\\\.|#(?=[^{])|%|(@identifier)|:)+\", \"tag\"]\n      // selector (.foo, div, ...)\n    ],\n    selectorattribute: [{ include: \"@term\" }, [\"]\", { token: \"delimiter.bracket\", next: \"@pop\" }]],\n    term: [\n      { include: \"@comments\" },\n      [\n        \"(url-prefix)(\\\\()\",\n        [\"attribute.value\", { token: \"delimiter.parenthesis\", next: \"@urldeclaration\" }]\n      ],\n      [\n        \"(url)(\\\\()\",\n        [\"attribute.value\", { token: \"delimiter.parenthesis\", next: \"@urldeclaration\" }]\n      ],\n      { include: \"@functioninvocation\" },\n      { include: \"@numbers\" },\n      { include: \"@name\" },\n      { include: \"@strings\" },\n      [\"([<>=\\\\+\\\\-\\\\*\\\\/\\\\^\\\\|\\\\~,])\", \"delimiter\"],\n      [\",\", \"delimiter\"]\n    ],\n    rulevalue: [\n      { include: \"@comments\" },\n      { include: \"@strings\" },\n      { include: \"@term\" },\n      [\"!important\", \"keyword\"],\n      [\";\", \"delimiter\", \"@pop\"],\n      [\"(?=})\", { token: \"\", next: \"@pop\" }]\n      // missing semicolon\n    ],\n    warndebug: [[\"[@](warn|debug)\", { token: \"keyword\", next: \"@declarationbody\" }]],\n    import: [[\"[@](import)\", { token: \"keyword\", next: \"@declarationbody\" }]],\n    urldeclaration: [\n      { include: \"@strings\" },\n      [\"[^)\\r\\n]+\", \"string\"],\n      [\"\\\\)\", { token: \"delimiter.parenthesis\", next: \"@pop\" }]\n    ],\n    parenthizedterm: [\n      { include: \"@term\" },\n      [\"\\\\)\", { token: \"delimiter.parenthesis\", next: \"@pop\" }]\n    ],\n    declarationbody: [\n      { include: \"@term\" },\n      [\";\", \"delimiter\", \"@pop\"],\n      [\"(?=})\", { token: \"\", next: \"@pop\" }]\n      // missing semicolon\n    ],\n    comments: [\n      [\"\\\\/\\\\*\", \"comment\", \"@comment\"],\n      [\"\\\\/\\\\/+.*\", \"comment\"]\n    ],\n    comment: [\n      [\"\\\\*\\\\/\", \"comment\", \"@pop\"],\n      [/[^*/]+/, \"comment\"],\n      [/./, \"comment\"]\n    ],\n    name: [[\"@identifier\", \"attribute.value\"]],\n    numbers: [\n      [\"-?(\\\\d*\\\\.)?\\\\d+([eE][\\\\-+]?\\\\d+)?\", { token: \"attribute.value.number\", next: \"@units\" }],\n      [\"#[0-9a-fA-F_]+(?!\\\\w)\", \"attribute.value.hex\"]\n    ],\n    units: [\n      [\n        \"(em|ex|ch|rem|fr|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?\",\n        \"attribute.value.unit\",\n        \"@pop\"\n      ]\n    ],\n    keyframedeclaration: [\n      [\"@identifier\", \"attribute.value\"],\n      [\"{\", { token: \"delimiter.bracket\", switchTo: \"@keyframebody\" }]\n    ],\n    keyframebody: [\n      { include: \"@term\" },\n      [\"{\", { token: \"delimiter.bracket\", next: \"@selectorbody\" }],\n      [\"}\", { token: \"delimiter.bracket\", next: \"@pop\" }]\n    ],\n    functioninvocation: [\n      [\"@identifier\\\\(\", { token: \"attribute.value\", next: \"@functionarguments\" }]\n    ],\n    functionarguments: [\n      [\"\\\\$@identifier@ws:\", \"attribute.name\"],\n      [\"[,]\", \"delimiter\"],\n      { include: \"@term\" },\n      [\"\\\\)\", { token: \"attribute.value\", next: \"@pop\" }]\n    ],\n    strings: [\n      ['~?\"', { token: \"string\", next: \"@stringenddoublequote\" }],\n      [\"~?'\", { token: \"string\", next: \"@stringendquote\" }]\n    ],\n    stringenddoublequote: [\n      [\"\\\\\\\\.\", \"string\"],\n      ['\"', { token: \"string\", next: \"@pop\" }],\n      [/[^\\\\\"]+/, \"string\"],\n      [\".\", \"string\"]\n    ],\n    stringendquote: [\n      [\"\\\\\\\\.\", \"string\"],\n      [\"'\", { token: \"string\", next: \"@pop\" }],\n      [/[^\\\\']+/, \"string\"],\n      [\".\", \"string\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/cypher/cypher.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/cypher/cypher.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/cypher/cypher.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"cypher\",\n  extensions: [\".cypher\", \".cyp\"],\n  aliases: [\"Cypher\", \"OpenCypher\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/cypher/cypher\"], resolve, reject);\n      });\n    } else {\n      return import(\"./cypher.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/cypher/cypher.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/cypher/cypher.ts\nvar conf = {\n  comments: {\n    lineComment: \"//\",\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" },\n    { open: \"`\", close: \"`\" }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" },\n    { open: \"`\", close: \"`\" }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: `.cypher`,\n  ignoreCase: true,\n  brackets: [\n    { open: \"{\", close: \"}\", token: \"delimiter.curly\" },\n    { open: \"[\", close: \"]\", token: \"delimiter.bracket\" },\n    { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" }\n  ],\n  keywords: [\n    \"ALL\",\n    \"AND\",\n    \"AS\",\n    \"ASC\",\n    \"ASCENDING\",\n    \"BY\",\n    \"CALL\",\n    \"CASE\",\n    \"CONTAINS\",\n    \"CREATE\",\n    \"DELETE\",\n    \"DESC\",\n    \"DESCENDING\",\n    \"DETACH\",\n    \"DISTINCT\",\n    \"ELSE\",\n    \"END\",\n    \"ENDS\",\n    \"EXISTS\",\n    \"IN\",\n    \"IS\",\n    \"LIMIT\",\n    \"MANDATORY\",\n    \"MATCH\",\n    \"MERGE\",\n    \"NOT\",\n    \"ON\",\n    \"ON\",\n    \"OPTIONAL\",\n    \"OR\",\n    \"ORDER\",\n    \"REMOVE\",\n    \"RETURN\",\n    \"SET\",\n    \"SKIP\",\n    \"STARTS\",\n    \"THEN\",\n    \"UNION\",\n    \"UNWIND\",\n    \"WHEN\",\n    \"WHERE\",\n    \"WITH\",\n    \"XOR\",\n    \"YIELD\"\n  ],\n  builtinLiterals: [\"true\", \"TRUE\", \"false\", \"FALSE\", \"null\", \"NULL\"],\n  builtinFunctions: [\n    \"abs\",\n    \"acos\",\n    \"asin\",\n    \"atan\",\n    \"atan2\",\n    \"avg\",\n    \"ceil\",\n    \"coalesce\",\n    \"collect\",\n    \"cos\",\n    \"cot\",\n    \"count\",\n    \"degrees\",\n    \"e\",\n    \"endNode\",\n    \"exists\",\n    \"exp\",\n    \"floor\",\n    \"head\",\n    \"id\",\n    \"keys\",\n    \"labels\",\n    \"last\",\n    \"left\",\n    \"length\",\n    \"log\",\n    \"log10\",\n    \"lTrim\",\n    \"max\",\n    \"min\",\n    \"nodes\",\n    \"percentileCont\",\n    \"percentileDisc\",\n    \"pi\",\n    \"properties\",\n    \"radians\",\n    \"rand\",\n    \"range\",\n    \"relationships\",\n    \"replace\",\n    \"reverse\",\n    \"right\",\n    \"round\",\n    \"rTrim\",\n    \"sign\",\n    \"sin\",\n    \"size\",\n    \"split\",\n    \"sqrt\",\n    \"startNode\",\n    \"stDev\",\n    \"stDevP\",\n    \"substring\",\n    \"sum\",\n    \"tail\",\n    \"tan\",\n    \"timestamp\",\n    \"toBoolean\",\n    \"toFloat\",\n    \"toInteger\",\n    \"toLower\",\n    \"toString\",\n    \"toUpper\",\n    \"trim\",\n    \"type\"\n  ],\n  operators: [\n    // Math operators\n    \"+\",\n    \"-\",\n    \"*\",\n    \"/\",\n    \"%\",\n    \"^\",\n    // Comparison operators\n    \"=\",\n    \"<>\",\n    \"<\",\n    \">\",\n    \"<=\",\n    \">=\",\n    // Pattern operators\n    \"->\",\n    \"<-\",\n    \"-->\",\n    \"<--\"\n  ],\n  escapes: /\\\\(?:[tbnrf\\\\\"'`]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n  digits: /\\d+/,\n  octaldigits: /[0-7]+/,\n  hexdigits: /[0-9a-fA-F]+/,\n  tokenizer: {\n    root: [[/[{}[\\]()]/, \"@brackets\"], { include: \"common\" }],\n    common: [\n      { include: \"@whitespace\" },\n      { include: \"@numbers\" },\n      { include: \"@strings\" },\n      // Cypher labels on nodes/relationships, e.g. (n:NodeLabel)-[e:RelationshipLabel]\n      [/:[a-zA-Z_][\\w]*/, \"type.identifier\"],\n      [\n        /[a-zA-Z_][\\w]*(?=\\()/,\n        {\n          cases: {\n            \"@builtinFunctions\": \"predefined.function\"\n          }\n        }\n      ],\n      [\n        /[a-zA-Z_$][\\w$]*/,\n        {\n          cases: {\n            \"@keywords\": \"keyword\",\n            \"@builtinLiterals\": \"predefined.literal\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      [/`/, \"identifier.escape\", \"@identifierBacktick\"],\n      // delimiter and operator after number because of `.\\d` floats and `:` in labels\n      [/[;,.:|]/, \"delimiter\"],\n      [\n        /[<>=%+\\-*/^]+/,\n        {\n          cases: {\n            \"@operators\": \"delimiter\",\n            \"@default\": \"\"\n          }\n        }\n      ]\n    ],\n    numbers: [\n      [/-?(@digits)[eE](-?(@digits))?/, \"number.float\"],\n      [/-?(@digits)?\\.(@digits)([eE]-?(@digits))?/, \"number.float\"],\n      [/-?0x(@hexdigits)/, \"number.hex\"],\n      [/-?0(@octaldigits)/, \"number.octal\"],\n      [/-?(@digits)/, \"number\"]\n    ],\n    strings: [\n      [/\"([^\"\\\\]|\\\\.)*$/, \"string.invalid\"],\n      // non-teminated string\n      [/'([^'\\\\]|\\\\.)*$/, \"string.invalid\"],\n      // non-teminated string\n      [/\"/, \"string\", \"@stringDouble\"],\n      [/'/, \"string\", \"@stringSingle\"]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"white\"],\n      [/\\/\\*/, \"comment\", \"@comment\"],\n      [/\\/\\/.*$/, \"comment\"]\n    ],\n    comment: [\n      [/\\/\\/.*/, \"comment\"],\n      [/[^/*]+/, \"comment\"],\n      [/\\*\\//, \"comment\", \"@pop\"],\n      [/[/*]/, \"comment\"]\n    ],\n    stringDouble: [\n      [/[^\\\\\"]+/, \"string\"],\n      [/@escapes/, \"string\"],\n      [/\\\\./, \"string.invalid\"],\n      [/\"/, \"string\", \"@pop\"]\n    ],\n    stringSingle: [\n      [/[^\\\\']+/, \"string\"],\n      [/@escapes/, \"string\"],\n      [/\\\\./, \"string.invalid\"],\n      [/'/, \"string\", \"@pop\"]\n    ],\n    identifierBacktick: [\n      [/[^\\\\`]+/, \"identifier.escape\"],\n      [/@escapes/, \"identifier.escape\"],\n      [/\\\\./, \"identifier.escape.invalid\"],\n      [/`/, \"identifier.escape\", \"@pop\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/dart/dart.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/dart/dart.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/dart/dart.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"dart\",\n  extensions: [\".dart\"],\n  aliases: [\"Dart\", \"dart\"],\n  mimetypes: [\"text/x-dart-source\", \"text/x-dart\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/dart/dart\"], resolve, reject);\n      });\n    } else {\n      return import(\"./dart.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/dart/dart.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/dart/dart.ts\nvar conf = {\n  comments: {\n    lineComment: \"//\",\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: \"'\", close: \"'\", notIn: [\"string\", \"comment\"] },\n    { open: '\"', close: '\"', notIn: [\"string\"] },\n    { open: \"`\", close: \"`\", notIn: [\"string\", \"comment\"] },\n    { open: \"/**\", close: \" */\", notIn: [\"string\"] }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: \"<\", close: \">\" },\n    { open: \"'\", close: \"'\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"`\", close: \"`\" }\n  ],\n  folding: {\n    markers: {\n      start: /^\\s*\\s*#?region\\b/,\n      end: /^\\s*\\s*#?endregion\\b/\n    }\n  }\n};\nvar language = {\n  defaultToken: \"invalid\",\n  tokenPostfix: \".dart\",\n  keywords: [\n    \"abstract\",\n    \"dynamic\",\n    \"implements\",\n    \"show\",\n    \"as\",\n    \"else\",\n    \"import\",\n    \"static\",\n    \"assert\",\n    \"enum\",\n    \"in\",\n    \"super\",\n    \"async\",\n    \"export\",\n    \"interface\",\n    \"switch\",\n    \"await\",\n    \"extends\",\n    \"is\",\n    \"sync\",\n    \"break\",\n    \"external\",\n    \"library\",\n    \"this\",\n    \"case\",\n    \"factory\",\n    \"mixin\",\n    \"throw\",\n    \"catch\",\n    \"false\",\n    \"new\",\n    \"true\",\n    \"class\",\n    \"final\",\n    \"null\",\n    \"try\",\n    \"const\",\n    \"finally\",\n    \"on\",\n    \"typedef\",\n    \"continue\",\n    \"for\",\n    \"operator\",\n    \"var\",\n    \"covariant\",\n    \"Function\",\n    \"part\",\n    \"void\",\n    \"default\",\n    \"get\",\n    \"rethrow\",\n    \"while\",\n    \"deferred\",\n    \"hide\",\n    \"return\",\n    \"with\",\n    \"do\",\n    \"if\",\n    \"set\",\n    \"yield\"\n  ],\n  typeKeywords: [\"int\", \"double\", \"String\", \"bool\"],\n  operators: [\n    \"+\",\n    \"-\",\n    \"*\",\n    \"/\",\n    \"~/\",\n    \"%\",\n    \"++\",\n    \"--\",\n    \"==\",\n    \"!=\",\n    \">\",\n    \"<\",\n    \">=\",\n    \"<=\",\n    \"=\",\n    \"-=\",\n    \"/=\",\n    \"%=\",\n    \">>=\",\n    \"^=\",\n    \"+=\",\n    \"*=\",\n    \"~/=\",\n    \"<<=\",\n    \"&=\",\n    \"!=\",\n    \"||\",\n    \"&&\",\n    \"&\",\n    \"|\",\n    \"^\",\n    \"~\",\n    \"<<\",\n    \">>\",\n    \"!\",\n    \">>>\",\n    \"??\",\n    \"?\",\n    \":\",\n    \"|=\"\n  ],\n  // we include these common regular expressions\n  symbols: /[=><!~?:&|+\\-*\\/\\^%]+/,\n  escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n  digits: /\\d+(_+\\d+)*/,\n  octaldigits: /[0-7]+(_+[0-7]+)*/,\n  binarydigits: /[0-1]+(_+[0-1]+)*/,\n  hexdigits: /[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,\n  regexpctl: /[(){}\\[\\]\\$\\^|\\-*+?\\.]/,\n  regexpesc: /\\\\(?:[bBdDfnrstvwWn0\\\\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [[/[{}]/, \"delimiter.bracket\"], { include: \"common\" }],\n    common: [\n      // identifiers and keywords\n      [\n        /[a-z_$][\\w$]*/,\n        {\n          cases: {\n            \"@typeKeywords\": \"type.identifier\",\n            \"@keywords\": \"keyword\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      [/[A-Z_$][\\w\\$]*/, \"type.identifier\"],\n      // show class names\n      // [/[A-Z][\\w\\$]*/, 'identifier'],\n      // whitespace\n      { include: \"@whitespace\" },\n      // regular expression: ensure it is terminated before beginning (otherwise it is an opeator)\n      [\n        /\\/(?=([^\\\\\\/]|\\\\.)+\\/([gimsuy]*)(\\s*)(\\.|;|,|\\)|\\]|\\}|$))/,\n        { token: \"regexp\", bracket: \"@open\", next: \"@regexp\" }\n      ],\n      // @ annotations.\n      [/@[a-zA-Z]+/, \"annotation\"],\n      // variable\n      // delimiters and operators\n      [/[()\\[\\]]/, \"@brackets\"],\n      [/[<>](?!@symbols)/, \"@brackets\"],\n      [/!(?=([^=]|$))/, \"delimiter\"],\n      [\n        /@symbols/,\n        {\n          cases: {\n            \"@operators\": \"delimiter\",\n            \"@default\": \"\"\n          }\n        }\n      ],\n      // numbers\n      [/(@digits)[eE]([\\-+]?(@digits))?/, \"number.float\"],\n      [/(@digits)\\.(@digits)([eE][\\-+]?(@digits))?/, \"number.float\"],\n      [/0[xX](@hexdigits)n?/, \"number.hex\"],\n      [/0[oO]?(@octaldigits)n?/, \"number.octal\"],\n      [/0[bB](@binarydigits)n?/, \"number.binary\"],\n      [/(@digits)n?/, \"number\"],\n      // delimiter: after number because of .\\d floats\n      [/[;,.]/, \"delimiter\"],\n      // strings\n      [/\"([^\"\\\\]|\\\\.)*$/, \"string.invalid\"],\n      // non-teminated string\n      [/'([^'\\\\]|\\\\.)*$/, \"string.invalid\"],\n      // non-teminated string\n      [/\"/, \"string\", \"@string_double\"],\n      [/'/, \"string\", \"@string_single\"]\n      //   [/[a-zA-Z]+/, \"variable\"]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"\"],\n      [/\\/\\*\\*(?!\\/)/, \"comment.doc\", \"@jsdoc\"],\n      [/\\/\\*/, \"comment\", \"@comment\"],\n      [/\\/\\/\\/.*$/, \"comment.doc\"],\n      [/\\/\\/.*$/, \"comment\"]\n    ],\n    comment: [\n      [/[^\\/*]+/, \"comment\"],\n      [/\\*\\//, \"comment\", \"@pop\"],\n      [/[\\/*]/, \"comment\"]\n    ],\n    jsdoc: [\n      [/[^\\/*]+/, \"comment.doc\"],\n      [/\\*\\//, \"comment.doc\", \"@pop\"],\n      [/[\\/*]/, \"comment.doc\"]\n    ],\n    // We match regular expression quite precisely\n    regexp: [\n      [\n        /(\\{)(\\d+(?:,\\d*)?)(\\})/,\n        [\"regexp.escape.control\", \"regexp.escape.control\", \"regexp.escape.control\"]\n      ],\n      [\n        /(\\[)(\\^?)(?=(?:[^\\]\\\\\\/]|\\\\.)+)/,\n        [\"regexp.escape.control\", { token: \"regexp.escape.control\", next: \"@regexrange\" }]\n      ],\n      [/(\\()(\\?:|\\?=|\\?!)/, [\"regexp.escape.control\", \"regexp.escape.control\"]],\n      [/[()]/, \"regexp.escape.control\"],\n      [/@regexpctl/, \"regexp.escape.control\"],\n      [/[^\\\\\\/]/, \"regexp\"],\n      [/@regexpesc/, \"regexp.escape\"],\n      [/\\\\\\./, \"regexp.invalid\"],\n      [/(\\/)([gimsuy]*)/, [{ token: \"regexp\", bracket: \"@close\", next: \"@pop\" }, \"keyword.other\"]]\n    ],\n    regexrange: [\n      [/-/, \"regexp.escape.control\"],\n      [/\\^/, \"regexp.invalid\"],\n      [/@regexpesc/, \"regexp.escape\"],\n      [/[^\\]]/, \"regexp\"],\n      [\n        /\\]/,\n        {\n          token: \"regexp.escape.control\",\n          next: \"@pop\",\n          bracket: \"@close\"\n        }\n      ]\n    ],\n    string_double: [\n      [/[^\\\\\"\\$]+/, \"string\"],\n      [/[^\\\\\"]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/\"/, \"string\", \"@pop\"],\n      [/\\$\\w+/, \"identifier\"]\n    ],\n    string_single: [\n      [/[^\\\\'\\$]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/'/, \"string\", \"@pop\"],\n      [/\\$\\w+/, \"identifier\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/dockerfile/dockerfile.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/dockerfile/dockerfile.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/dockerfile/dockerfile.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"dockerfile\",\n  extensions: [\".dockerfile\"],\n  filenames: [\"Dockerfile\"],\n  aliases: [\"Dockerfile\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/dockerfile/dockerfile\"], resolve, reject);\n      });\n    } else {\n      return import(\"./dockerfile.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/dockerfile/dockerfile.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/dockerfile/dockerfile.ts\nvar conf = {\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".dockerfile\",\n  variable: /\\${?[\\w]+}?/,\n  tokenizer: {\n    root: [\n      { include: \"@whitespace\" },\n      { include: \"@comment\" },\n      [/(ONBUILD)(\\s+)/, [\"keyword\", \"\"]],\n      [/(ENV)(\\s+)([\\w]+)/, [\"keyword\", \"\", { token: \"variable\", next: \"@arguments\" }]],\n      [\n        /(FROM|MAINTAINER|RUN|EXPOSE|ENV|ADD|ARG|VOLUME|LABEL|USER|WORKDIR|COPY|CMD|STOPSIGNAL|SHELL|HEALTHCHECK|ENTRYPOINT)/,\n        { token: \"keyword\", next: \"@arguments\" }\n      ]\n    ],\n    arguments: [\n      { include: \"@whitespace\" },\n      { include: \"@strings\" },\n      [\n        /(@variable)/,\n        {\n          cases: {\n            \"@eos\": { token: \"variable\", next: \"@popall\" },\n            \"@default\": \"variable\"\n          }\n        }\n      ],\n      [\n        /\\\\/,\n        {\n          cases: {\n            \"@eos\": \"\",\n            \"@default\": \"\"\n          }\n        }\n      ],\n      [\n        /./,\n        {\n          cases: {\n            \"@eos\": { token: \"\", next: \"@popall\" },\n            \"@default\": \"\"\n          }\n        }\n      ]\n    ],\n    // Deal with white space, including comments\n    whitespace: [\n      [\n        /\\s+/,\n        {\n          cases: {\n            \"@eos\": { token: \"\", next: \"@popall\" },\n            \"@default\": \"\"\n          }\n        }\n      ]\n    ],\n    comment: [[/(^#.*$)/, \"comment\", \"@popall\"]],\n    // Recognize strings, including those broken across lines with \\ (but not without)\n    strings: [\n      [/\\\\'$/, \"\", \"@popall\"],\n      // \\' leaves @arguments at eol\n      [/\\\\'/, \"\"],\n      // \\' is not a string\n      [/'$/, \"string\", \"@popall\"],\n      [/'/, \"string\", \"@stringBody\"],\n      [/\"$/, \"string\", \"@popall\"],\n      [/\"/, \"string\", \"@dblStringBody\"]\n    ],\n    stringBody: [\n      [\n        /[^\\\\\\$']/,\n        {\n          cases: {\n            \"@eos\": { token: \"string\", next: \"@popall\" },\n            \"@default\": \"string\"\n          }\n        }\n      ],\n      [/\\\\./, \"string.escape\"],\n      [/'$/, \"string\", \"@popall\"],\n      [/'/, \"string\", \"@pop\"],\n      [/(@variable)/, \"variable\"],\n      [/\\\\$/, \"string\"],\n      [/$/, \"string\", \"@popall\"]\n    ],\n    dblStringBody: [\n      [\n        /[^\\\\\\$\"]/,\n        {\n          cases: {\n            \"@eos\": { token: \"string\", next: \"@popall\" },\n            \"@default\": \"string\"\n          }\n        }\n      ],\n      [/\\\\./, \"string.escape\"],\n      [/\"$/, \"string\", \"@popall\"],\n      [/\"/, \"string\", \"@pop\"],\n      [/(@variable)/, \"variable\"],\n      [/\\\\$/, \"string\"],\n      [/$/, \"string\", \"@popall\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/ecl/ecl.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/ecl/ecl.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/ecl/ecl.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"ecl\",\n  extensions: [\".ecl\"],\n  aliases: [\"ECL\", \"Ecl\", \"ecl\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/ecl/ecl\"], resolve, reject);\n      });\n    } else {\n      return import(\"./ecl.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/ecl/ecl.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/ecl/ecl.ts\nvar conf = {\n  comments: {\n    lineComment: \"//\",\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: \"'\", close: \"'\", notIn: [\"string\", \"comment\"] },\n    { open: '\"', close: '\"', notIn: [\"string\", \"comment\"] }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: \"<\", close: \">\" },\n    { open: \"'\", close: \"'\" },\n    { open: '\"', close: '\"' }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".ecl\",\n  ignoreCase: true,\n  brackets: [\n    { open: \"{\", close: \"}\", token: \"delimiter.curly\" },\n    { open: \"[\", close: \"]\", token: \"delimiter.square\" },\n    { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" },\n    { open: \"<\", close: \">\", token: \"delimiter.angle\" }\n  ],\n  pounds: [\n    \"append\",\n    \"break\",\n    \"declare\",\n    \"demangle\",\n    \"end\",\n    \"for\",\n    \"getdatatype\",\n    \"if\",\n    \"inmodule\",\n    \"loop\",\n    \"mangle\",\n    \"onwarning\",\n    \"option\",\n    \"set\",\n    \"stored\",\n    \"uniquename\"\n  ].join(\"|\"),\n  keywords: [\n    \"__compressed__\",\n    \"after\",\n    \"all\",\n    \"and\",\n    \"any\",\n    \"as\",\n    \"atmost\",\n    \"before\",\n    \"beginc\",\n    \"best\",\n    \"between\",\n    \"case\",\n    \"cluster\",\n    \"compressed\",\n    \"compression\",\n    \"const\",\n    \"counter\",\n    \"csv\",\n    \"default\",\n    \"descend\",\n    \"embed\",\n    \"encoding\",\n    \"encrypt\",\n    \"end\",\n    \"endc\",\n    \"endembed\",\n    \"endmacro\",\n    \"enum\",\n    \"escape\",\n    \"except\",\n    \"exclusive\",\n    \"expire\",\n    \"export\",\n    \"extend\",\n    \"fail\",\n    \"few\",\n    \"fileposition\",\n    \"first\",\n    \"flat\",\n    \"forward\",\n    \"from\",\n    \"full\",\n    \"function\",\n    \"functionmacro\",\n    \"group\",\n    \"grouped\",\n    \"heading\",\n    \"hole\",\n    \"ifblock\",\n    \"import\",\n    \"in\",\n    \"inner\",\n    \"interface\",\n    \"internal\",\n    \"joined\",\n    \"keep\",\n    \"keyed\",\n    \"last\",\n    \"left\",\n    \"limit\",\n    \"linkcounted\",\n    \"literal\",\n    \"little_endian\",\n    \"load\",\n    \"local\",\n    \"locale\",\n    \"lookup\",\n    \"lzw\",\n    \"macro\",\n    \"many\",\n    \"maxcount\",\n    \"maxlength\",\n    \"min skew\",\n    \"module\",\n    \"mofn\",\n    \"multiple\",\n    \"named\",\n    \"namespace\",\n    \"nocase\",\n    \"noroot\",\n    \"noscan\",\n    \"nosort\",\n    \"not\",\n    \"noxpath\",\n    \"of\",\n    \"onfail\",\n    \"only\",\n    \"opt\",\n    \"or\",\n    \"outer\",\n    \"overwrite\",\n    \"packed\",\n    \"partition\",\n    \"penalty\",\n    \"physicallength\",\n    \"pipe\",\n    \"prefetch\",\n    \"quote\",\n    \"record\",\n    \"repeat\",\n    \"retry\",\n    \"return\",\n    \"right\",\n    \"right1\",\n    \"right2\",\n    \"rows\",\n    \"rowset\",\n    \"scan\",\n    \"scope\",\n    \"self\",\n    \"separator\",\n    \"service\",\n    \"shared\",\n    \"skew\",\n    \"skip\",\n    \"smart\",\n    \"soapaction\",\n    \"sql\",\n    \"stable\",\n    \"store\",\n    \"terminator\",\n    \"thor\",\n    \"threshold\",\n    \"timelimit\",\n    \"timeout\",\n    \"token\",\n    \"transform\",\n    \"trim\",\n    \"type\",\n    \"unicodeorder\",\n    \"unordered\",\n    \"unsorted\",\n    \"unstable\",\n    \"update\",\n    \"use\",\n    \"validate\",\n    \"virtual\",\n    \"whole\",\n    \"width\",\n    \"wild\",\n    \"within\",\n    \"wnotrim\",\n    \"xml\",\n    \"xpath\"\n  ],\n  functions: [\n    \"abs\",\n    \"acos\",\n    \"aggregate\",\n    \"allnodes\",\n    \"apply\",\n    \"ascii\",\n    \"asin\",\n    \"assert\",\n    \"asstring\",\n    \"atan\",\n    \"atan2\",\n    \"ave\",\n    \"build\",\n    \"buildindex\",\n    \"case\",\n    \"catch\",\n    \"choose\",\n    \"choosen\",\n    \"choosesets\",\n    \"clustersize\",\n    \"combine\",\n    \"correlation\",\n    \"cos\",\n    \"cosh\",\n    \"count\",\n    \"covariance\",\n    \"cron\",\n    \"dataset\",\n    \"dedup\",\n    \"define\",\n    \"denormalize\",\n    \"dictionary\",\n    \"distribute\",\n    \"distributed\",\n    \"distribution\",\n    \"ebcdic\",\n    \"enth\",\n    \"error\",\n    \"evaluate\",\n    \"event\",\n    \"eventextra\",\n    \"eventname\",\n    \"exists\",\n    \"exp\",\n    \"fail\",\n    \"failcode\",\n    \"failmessage\",\n    \"fetch\",\n    \"fromunicode\",\n    \"fromxml\",\n    \"getenv\",\n    \"getisvalid\",\n    \"global\",\n    \"graph\",\n    \"group\",\n    \"hash\",\n    \"hash32\",\n    \"hash64\",\n    \"hashcrc\",\n    \"hashmd5\",\n    \"having\",\n    \"httpcall\",\n    \"httpheader\",\n    \"if\",\n    \"iff\",\n    \"index\",\n    \"intformat\",\n    \"isvalid\",\n    \"iterate\",\n    \"join\",\n    \"keydiff\",\n    \"keypatch\",\n    \"keyunicode\",\n    \"length\",\n    \"library\",\n    \"limit\",\n    \"ln\",\n    \"loadxml\",\n    \"local\",\n    \"log\",\n    \"loop\",\n    \"map\",\n    \"matched\",\n    \"matchlength\",\n    \"matchposition\",\n    \"matchtext\",\n    \"matchunicode\",\n    \"max\",\n    \"merge\",\n    \"mergejoin\",\n    \"min\",\n    \"nofold\",\n    \"nolocal\",\n    \"nonempty\",\n    \"normalize\",\n    \"nothor\",\n    \"notify\",\n    \"output\",\n    \"parallel\",\n    \"parse\",\n    \"pipe\",\n    \"power\",\n    \"preload\",\n    \"process\",\n    \"project\",\n    \"pull\",\n    \"random\",\n    \"range\",\n    \"rank\",\n    \"ranked\",\n    \"realformat\",\n    \"recordof\",\n    \"regexfind\",\n    \"regexreplace\",\n    \"regroup\",\n    \"rejected\",\n    \"rollup\",\n    \"round\",\n    \"roundup\",\n    \"row\",\n    \"rowdiff\",\n    \"sample\",\n    \"sequential\",\n    \"set\",\n    \"sin\",\n    \"sinh\",\n    \"sizeof\",\n    \"soapcall\",\n    \"sort\",\n    \"sorted\",\n    \"sqrt\",\n    \"stepped\",\n    \"stored\",\n    \"sum\",\n    \"table\",\n    \"tan\",\n    \"tanh\",\n    \"thisnode\",\n    \"topn\",\n    \"tounicode\",\n    \"toxml\",\n    \"transfer\",\n    \"transform\",\n    \"trim\",\n    \"truncate\",\n    \"typeof\",\n    \"ungroup\",\n    \"unicodeorder\",\n    \"variance\",\n    \"wait\",\n    \"which\",\n    \"workunit\",\n    \"xmldecode\",\n    \"xmlencode\",\n    \"xmltext\",\n    \"xmlunicode\"\n  ],\n  typesint: [\"integer\", \"unsigned\"].join(\"|\"),\n  typesnum: [\"data\", \"qstring\", \"string\", \"unicode\", \"utf8\", \"varstring\", \"varunicode\"],\n  typesone: [\n    \"ascii\",\n    \"big_endian\",\n    \"boolean\",\n    \"data\",\n    \"decimal\",\n    \"ebcdic\",\n    \"grouped\",\n    \"integer\",\n    \"linkcounted\",\n    \"pattern\",\n    \"qstring\",\n    \"real\",\n    \"record\",\n    \"rule\",\n    \"set of\",\n    \"streamed\",\n    \"string\",\n    \"token\",\n    \"udecimal\",\n    \"unicode\",\n    \"unsigned\",\n    \"utf8\",\n    \"varstring\",\n    \"varunicode\"\n  ].join(\"|\"),\n  operators: [\"+\", \"-\", \"/\", \":=\", \"<\", \"<>\", \"=\", \">\", \"\\\\\", \"and\", \"in\", \"not\", \"or\"],\n  symbols: /[=><!~?:&|+\\-*\\/\\^%]+/,\n  // escape sequences\n  escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      [/@typesint[4|8]/, \"type\"],\n      [/#(@pounds)/, \"type\"],\n      [/@typesone/, \"type\"],\n      [\n        /[a-zA-Z_$][\\w-$]*/,\n        {\n          cases: {\n            \"@functions\": \"keyword.function\",\n            \"@keywords\": \"keyword\",\n            \"@operators\": \"operator\"\n          }\n        }\n      ],\n      // whitespace\n      { include: \"@whitespace\" },\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      [/[<>](?!@symbols)/, \"@brackets\"],\n      [\n        /@symbols/,\n        {\n          cases: {\n            \"@operators\": \"delimiter\",\n            \"@default\": \"\"\n          }\n        }\n      ],\n      // numbers\n      [/[0-9_]*\\.[0-9_]+([eE][\\-+]?\\d+)?/, \"number.float\"],\n      [/0[xX][0-9a-fA-F_]+/, \"number.hex\"],\n      [/0[bB][01]+/, \"number.hex\"],\n      // binary: use same theme style as hex\n      [/[0-9_]+/, \"number\"],\n      // delimiter: after number because of .\\d floats\n      [/[;,.]/, \"delimiter\"],\n      // strings\n      [/\"([^\"\\\\]|\\\\.)*$/, \"string.invalid\"],\n      [/\"/, \"string\", \"@string\"],\n      // characters\n      [/'[^\\\\']'/, \"string\"],\n      [/(')(@escapes)(')/, [\"string\", \"string.escape\", \"string\"]],\n      [/'/, \"string.invalid\"]\n    ],\n    whitespace: [\n      [/[ \\t\\v\\f\\r\\n]+/, \"\"],\n      [/\\/\\*/, \"comment\", \"@comment\"],\n      [/\\/\\/.*$/, \"comment\"]\n    ],\n    comment: [\n      [/[^\\/*]+/, \"comment\"],\n      [/\\*\\//, \"comment\", \"@pop\"],\n      [/[\\/*]/, \"comment\"]\n    ],\n    string: [\n      [/[^\\\\']+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/'/, \"string\", \"@pop\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/elixir/elixir.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/elixir/elixir.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/elixir/elixir.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"elixir\",\n  extensions: [\".ex\", \".exs\"],\n  aliases: [\"Elixir\", \"elixir\", \"ex\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/elixir/elixir\"], resolve, reject);\n      });\n    } else {\n      return import(\"./elixir.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/elixir/elixir.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/elixir/elixir.ts\nvar conf = {\n  comments: {\n    lineComment: \"#\"\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: \"'\", close: \"'\" },\n    { open: '\"', close: '\"' }\n  ],\n  autoClosingPairs: [\n    { open: \"'\", close: \"'\", notIn: [\"string\", \"comment\"] },\n    { open: '\"', close: '\"', notIn: [\"comment\"] },\n    { open: '\"\"\"', close: '\"\"\"' },\n    { open: \"`\", close: \"`\", notIn: [\"string\", \"comment\"] },\n    { open: \"(\", close: \")\" },\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"<<\", close: \">>\" }\n  ],\n  indentationRules: {\n    increaseIndentPattern: /^\\s*(after|else|catch|rescue|fn|[^#]*(do|<\\-|\\->|\\{|\\[|\\=))\\s*$/,\n    decreaseIndentPattern: /^\\s*((\\}|\\])\\s*$|(after|else|catch|rescue|end)\\b)/\n  }\n};\nvar language = {\n  defaultToken: \"source\",\n  tokenPostfix: \".elixir\",\n  brackets: [\n    { open: \"[\", close: \"]\", token: \"delimiter.square\" },\n    { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" },\n    { open: \"{\", close: \"}\", token: \"delimiter.curly\" },\n    { open: \"<<\", close: \">>\", token: \"delimiter.angle.special\" }\n  ],\n  // Below are lists/regexps to which we reference later.\n  declarationKeywords: [\n    \"def\",\n    \"defp\",\n    \"defn\",\n    \"defnp\",\n    \"defguard\",\n    \"defguardp\",\n    \"defmacro\",\n    \"defmacrop\",\n    \"defdelegate\",\n    \"defcallback\",\n    \"defmacrocallback\",\n    \"defmodule\",\n    \"defprotocol\",\n    \"defexception\",\n    \"defimpl\",\n    \"defstruct\"\n  ],\n  operatorKeywords: [\"and\", \"in\", \"not\", \"or\", \"when\"],\n  namespaceKeywords: [\"alias\", \"import\", \"require\", \"use\"],\n  otherKeywords: [\n    \"after\",\n    \"case\",\n    \"catch\",\n    \"cond\",\n    \"do\",\n    \"else\",\n    \"end\",\n    \"fn\",\n    \"for\",\n    \"if\",\n    \"quote\",\n    \"raise\",\n    \"receive\",\n    \"rescue\",\n    \"super\",\n    \"throw\",\n    \"try\",\n    \"unless\",\n    \"unquote_splicing\",\n    \"unquote\",\n    \"with\"\n  ],\n  constants: [\"true\", \"false\", \"nil\"],\n  nameBuiltin: [\"__MODULE__\", \"__DIR__\", \"__ENV__\", \"__CALLER__\", \"__STACKTRACE__\"],\n  // Matches any of the operator names:\n  // <<< >>> ||| &&& ^^^ ~~~ === !== ~>> <~> |~> <|> == != <= >= && || \\\\ <> ++ -- |> =~ -> <- ~> <~ :: .. = < > + - * / | . ^ & !\n  operator: /-[->]?|!={0,2}|\\*{1,2}|\\/|\\\\\\\\|&{1,3}|\\.\\.?|\\^(?:\\^\\^)?|\\+\\+?|<(?:-|<<|=|>|\\|>|~>?)?|=~|={1,3}|>(?:=|>>)?|\\|~>|\\|>|\\|{1,3}|~>>?|~~~|::/,\n  // See https://hexdocs.pm/elixir/syntax-reference.html#variables\n  variableName: /[a-z_][a-zA-Z0-9_]*[?!]?/,\n  // See https://hexdocs.pm/elixir/syntax-reference.html#atoms\n  atomName: /[a-zA-Z_][a-zA-Z0-9_@]*[?!]?|@specialAtomName|@operator/,\n  specialAtomName: /\\.\\.\\.|<<>>|%\\{\\}|%|\\{\\}/,\n  aliasPart: /[A-Z][a-zA-Z0-9_]*/,\n  moduleName: /@aliasPart(?:\\.@aliasPart)*/,\n  // Sigil pairs are: \"\"\" \"\"\", ''' ''', \" \", ' ', / /, | |, < >, { }, [ ], ( )\n  sigilSymmetricDelimiter: /\"\"\"|'''|\"|'|\\/|\\|/,\n  sigilStartDelimiter: /@sigilSymmetricDelimiter|<|\\{|\\[|\\(/,\n  sigilEndDelimiter: /@sigilSymmetricDelimiter|>|\\}|\\]|\\)/,\n  sigilModifiers: /[a-zA-Z0-9]*/,\n  decimal: /\\d(?:_?\\d)*/,\n  hex: /[0-9a-fA-F](_?[0-9a-fA-F])*/,\n  octal: /[0-7](_?[0-7])*/,\n  binary: /[01](_?[01])*/,\n  // See https://hexdocs.pm/elixir/master/String.html#module-escape-characters\n  escape: /\\\\u[0-9a-fA-F]{4}|\\\\x[0-9a-fA-F]{2}|\\\\./,\n  // The keys below correspond to tokenizer states.\n  // We start from the root state and match against its rules\n  // until we explicitly transition into another state.\n  // The `include` simply brings in all operations from the given state\n  // and is useful for improving readability.\n  tokenizer: {\n    root: [\n      { include: \"@whitespace\" },\n      { include: \"@comments\" },\n      // Keywords start as either an identifier or a string,\n      // but end with a : so it's important to match this first.\n      { include: \"@keywordsShorthand\" },\n      { include: \"@numbers\" },\n      { include: \"@identifiers\" },\n      { include: \"@strings\" },\n      { include: \"@atoms\" },\n      { include: \"@sigils\" },\n      { include: \"@attributes\" },\n      { include: \"@symbols\" }\n    ],\n    // Whitespace\n    whitespace: [[/\\s+/, \"white\"]],\n    // Comments\n    comments: [[/(#)(.*)/, [\"comment.punctuation\", \"comment\"]]],\n    // Keyword list shorthand\n    keywordsShorthand: [\n      [/(@atomName)(:)(\\s+)/, [\"constant\", \"constant.punctuation\", \"white\"]],\n      // Use positive look-ahead to ensure the string is followed by :\n      // and should be considered a keyword.\n      [\n        /\"(?=([^\"]|#\\{.*?\\}|\\\\\")*\":)/,\n        { token: \"constant.delimiter\", next: \"@doubleQuotedStringKeyword\" }\n      ],\n      [\n        /'(?=([^']|#\\{.*?\\}|\\\\')*':)/,\n        { token: \"constant.delimiter\", next: \"@singleQuotedStringKeyword\" }\n      ]\n    ],\n    doubleQuotedStringKeyword: [\n      [/\":/, { token: \"constant.delimiter\", next: \"@pop\" }],\n      { include: \"@stringConstantContentInterpol\" }\n    ],\n    singleQuotedStringKeyword: [\n      [/':/, { token: \"constant.delimiter\", next: \"@pop\" }],\n      { include: \"@stringConstantContentInterpol\" }\n    ],\n    // Numbers\n    numbers: [\n      [/0b@binary/, \"number.binary\"],\n      [/0o@octal/, \"number.octal\"],\n      [/0x@hex/, \"number.hex\"],\n      [/@decimal\\.@decimal([eE]-?@decimal)?/, \"number.float\"],\n      [/@decimal/, \"number\"]\n    ],\n    // Identifiers\n    identifiers: [\n      // Tokenize identifier name in function-like definitions.\n      // Note: given `def a + b, do: nil`, `a` is not a function name,\n      // so we use negative look-ahead to ensure there's no operator.\n      [\n        /\\b(defp?|defnp?|defmacrop?|defguardp?|defdelegate)(\\s+)(@variableName)(?!\\s+@operator)/,\n        [\n          \"keyword.declaration\",\n          \"white\",\n          {\n            cases: {\n              unquote: \"keyword\",\n              \"@default\": \"function\"\n            }\n          }\n        ]\n      ],\n      // Tokenize function calls\n      [\n        // In-scope call - an identifier followed by ( or .(\n        /(@variableName)(?=\\s*\\.?\\s*\\()/,\n        {\n          cases: {\n            // Tokenize as keyword in cases like `if(..., do: ..., else: ...)`\n            \"@declarationKeywords\": \"keyword.declaration\",\n            \"@namespaceKeywords\": \"keyword\",\n            \"@otherKeywords\": \"keyword\",\n            \"@default\": \"function.call\"\n          }\n        }\n      ],\n      [\n        // Referencing function in a module\n        /(@moduleName)(\\s*)(\\.)(\\s*)(@variableName)/,\n        [\"type.identifier\", \"white\", \"operator\", \"white\", \"function.call\"]\n      ],\n      [\n        // Referencing function in an Erlang module\n        /(:)(@atomName)(\\s*)(\\.)(\\s*)(@variableName)/,\n        [\"constant.punctuation\", \"constant\", \"white\", \"operator\", \"white\", \"function.call\"]\n      ],\n      [\n        // Piping into a function (tokenized separately as it may not have parentheses)\n        /(\\|>)(\\s*)(@variableName)/,\n        [\n          \"operator\",\n          \"white\",\n          {\n            cases: {\n              \"@otherKeywords\": \"keyword\",\n              \"@default\": \"function.call\"\n            }\n          }\n        ]\n      ],\n      [\n        // Function reference passed to another function\n        /(&)(\\s*)(@variableName)/,\n        [\"operator\", \"white\", \"function.call\"]\n      ],\n      // Language keywords, builtins, constants and variables\n      [\n        /@variableName/,\n        {\n          cases: {\n            \"@declarationKeywords\": \"keyword.declaration\",\n            \"@operatorKeywords\": \"keyword.operator\",\n            \"@namespaceKeywords\": \"keyword\",\n            \"@otherKeywords\": \"keyword\",\n            \"@constants\": \"constant.language\",\n            \"@nameBuiltin\": \"variable.language\",\n            \"_.*\": \"comment.unused\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      // Module names\n      [/@moduleName/, \"type.identifier\"]\n    ],\n    // Strings\n    strings: [\n      [/\"\"\"/, { token: \"string.delimiter\", next: \"@doubleQuotedHeredoc\" }],\n      [/'''/, { token: \"string.delimiter\", next: \"@singleQuotedHeredoc\" }],\n      [/\"/, { token: \"string.delimiter\", next: \"@doubleQuotedString\" }],\n      [/'/, { token: \"string.delimiter\", next: \"@singleQuotedString\" }]\n    ],\n    doubleQuotedHeredoc: [\n      [/\"\"\"/, { token: \"string.delimiter\", next: \"@pop\" }],\n      { include: \"@stringContentInterpol\" }\n    ],\n    singleQuotedHeredoc: [\n      [/'''/, { token: \"string.delimiter\", next: \"@pop\" }],\n      { include: \"@stringContentInterpol\" }\n    ],\n    doubleQuotedString: [\n      [/\"/, { token: \"string.delimiter\", next: \"@pop\" }],\n      { include: \"@stringContentInterpol\" }\n    ],\n    singleQuotedString: [\n      [/'/, { token: \"string.delimiter\", next: \"@pop\" }],\n      { include: \"@stringContentInterpol\" }\n    ],\n    // Atoms\n    atoms: [\n      [/(:)(@atomName)/, [\"constant.punctuation\", \"constant\"]],\n      [/:\"/, { token: \"constant.delimiter\", next: \"@doubleQuotedStringAtom\" }],\n      [/:'/, { token: \"constant.delimiter\", next: \"@singleQuotedStringAtom\" }]\n    ],\n    doubleQuotedStringAtom: [\n      [/\"/, { token: \"constant.delimiter\", next: \"@pop\" }],\n      { include: \"@stringConstantContentInterpol\" }\n    ],\n    singleQuotedStringAtom: [\n      [/'/, { token: \"constant.delimiter\", next: \"@pop\" }],\n      { include: \"@stringConstantContentInterpol\" }\n    ],\n    // Sigils\n    // See https://elixir-lang.org/getting-started/sigils.html\n    // Sigils allow for typing values using their textual representation.\n    // All sigils start with ~ followed by a letter or\n    // multi-letter uppercase starting at Elixir v1.15.0, indicating sigil type\n    // and then a delimiter pair enclosing the textual representation.\n    // Optional modifiers are allowed after the closing delimiter.\n    // For instance a regular expressions can be written as:\n    // ~r/foo|bar/ ~r{foo|bar} ~r/foo|bar/g\n    //\n    // In general lowercase sigils allow for interpolation\n    // and escaped characters, whereas uppercase sigils don't\n    //\n    // During tokenization we want to distinguish some\n    // specific sigil types, namely string and regexp,\n    // so that they cen be themed separately.\n    //\n    // To reasonably handle all those combinations we leverage\n    // dot-separated states, so if we transition to @sigilStart.interpol.s.{.}\n    // then \"sigilStart.interpol.s\" state will match and also all\n    // the individual dot-separated parameters can be accessed.\n    sigils: [\n      [/~[a-z]@sigilStartDelimiter/, { token: \"@rematch\", next: \"@sigil.interpol\" }],\n      [/~([A-Z]+)@sigilStartDelimiter/, { token: \"@rematch\", next: \"@sigil.noInterpol\" }]\n    ],\n    sigil: [\n      [/~([a-z]|[A-Z]+)\\{/, { token: \"@rematch\", switchTo: \"@sigilStart.$S2.$1.{.}\" }],\n      [/~([a-z]|[A-Z]+)\\[/, { token: \"@rematch\", switchTo: \"@sigilStart.$S2.$1.[.]\" }],\n      [/~([a-z]|[A-Z]+)\\(/, { token: \"@rematch\", switchTo: \"@sigilStart.$S2.$1.(.)\" }],\n      [/~([a-z]|[A-Z]+)\\</, { token: \"@rematch\", switchTo: \"@sigilStart.$S2.$1.<.>\" }],\n      [\n        /~([a-z]|[A-Z]+)(@sigilSymmetricDelimiter)/,\n        { token: \"@rematch\", switchTo: \"@sigilStart.$S2.$1.$2.$2\" }\n      ]\n    ],\n    // The definitions below expect states to be of the form:\n    //\n    // sigilStart.<interpol-or-noInterpol>.<sigil-letter>.<start-delimiter>.<end-delimiter>\n    // sigilContinue.<interpol-or-noInterpol>.<sigil-letter>.<start-delimiter>.<end-delimiter>\n    //\n    // The sigilStart state is used only to properly classify the token (as string/regex/sigil)\n    // and immediately switches to the sigilContinue sate, which handles the actual content\n    // and waits for the corresponding end delimiter.\n    \"sigilStart.interpol.s\": [\n      [\n        /~s@sigilStartDelimiter/,\n        {\n          token: \"string.delimiter\",\n          switchTo: \"@sigilContinue.$S2.$S3.$S4.$S5\"\n        }\n      ]\n    ],\n    \"sigilContinue.interpol.s\": [\n      [\n        /(@sigilEndDelimiter)@sigilModifiers/,\n        {\n          cases: {\n            \"$1==$S5\": { token: \"string.delimiter\", next: \"@pop\" },\n            \"@default\": \"string\"\n          }\n        }\n      ],\n      { include: \"@stringContentInterpol\" }\n    ],\n    \"sigilStart.noInterpol.S\": [\n      [\n        /~S@sigilStartDelimiter/,\n        {\n          token: \"string.delimiter\",\n          switchTo: \"@sigilContinue.$S2.$S3.$S4.$S5\"\n        }\n      ]\n    ],\n    \"sigilContinue.noInterpol.S\": [\n      // Ignore escaped sigil end\n      [/(^|[^\\\\])\\\\@sigilEndDelimiter/, \"string\"],\n      [\n        /(@sigilEndDelimiter)@sigilModifiers/,\n        {\n          cases: {\n            \"$1==$S5\": { token: \"string.delimiter\", next: \"@pop\" },\n            \"@default\": \"string\"\n          }\n        }\n      ],\n      { include: \"@stringContent\" }\n    ],\n    \"sigilStart.interpol.r\": [\n      [\n        /~r@sigilStartDelimiter/,\n        {\n          token: \"regexp.delimiter\",\n          switchTo: \"@sigilContinue.$S2.$S3.$S4.$S5\"\n        }\n      ]\n    ],\n    \"sigilContinue.interpol.r\": [\n      [\n        /(@sigilEndDelimiter)@sigilModifiers/,\n        {\n          cases: {\n            \"$1==$S5\": { token: \"regexp.delimiter\", next: \"@pop\" },\n            \"@default\": \"regexp\"\n          }\n        }\n      ],\n      { include: \"@regexpContentInterpol\" }\n    ],\n    \"sigilStart.noInterpol.R\": [\n      [\n        /~R@sigilStartDelimiter/,\n        {\n          token: \"regexp.delimiter\",\n          switchTo: \"@sigilContinue.$S2.$S3.$S4.$S5\"\n        }\n      ]\n    ],\n    \"sigilContinue.noInterpol.R\": [\n      // Ignore escaped sigil end\n      [/(^|[^\\\\])\\\\@sigilEndDelimiter/, \"regexp\"],\n      [\n        /(@sigilEndDelimiter)@sigilModifiers/,\n        {\n          cases: {\n            \"$1==$S5\": { token: \"regexp.delimiter\", next: \"@pop\" },\n            \"@default\": \"regexp\"\n          }\n        }\n      ],\n      { include: \"@regexpContent\" }\n    ],\n    // Fallback to the generic sigil by default\n    \"sigilStart.interpol\": [\n      [\n        /~([a-z]|[A-Z]+)@sigilStartDelimiter/,\n        {\n          token: \"sigil.delimiter\",\n          switchTo: \"@sigilContinue.$S2.$S3.$S4.$S5\"\n        }\n      ]\n    ],\n    \"sigilContinue.interpol\": [\n      [\n        /(@sigilEndDelimiter)@sigilModifiers/,\n        {\n          cases: {\n            \"$1==$S5\": { token: \"sigil.delimiter\", next: \"@pop\" },\n            \"@default\": \"sigil\"\n          }\n        }\n      ],\n      { include: \"@sigilContentInterpol\" }\n    ],\n    \"sigilStart.noInterpol\": [\n      [\n        /~([a-z]|[A-Z]+)@sigilStartDelimiter/,\n        {\n          token: \"sigil.delimiter\",\n          switchTo: \"@sigilContinue.$S2.$S3.$S4.$S5\"\n        }\n      ]\n    ],\n    \"sigilContinue.noInterpol\": [\n      // Ignore escaped sigil end\n      [/(^|[^\\\\])\\\\@sigilEndDelimiter/, \"sigil\"],\n      [\n        /(@sigilEndDelimiter)@sigilModifiers/,\n        {\n          cases: {\n            \"$1==$S5\": { token: \"sigil.delimiter\", next: \"@pop\" },\n            \"@default\": \"sigil\"\n          }\n        }\n      ],\n      { include: \"@sigilContent\" }\n    ],\n    // Attributes\n    attributes: [\n      // Module @doc* attributes - tokenized as comments\n      [\n        /\\@(module|type)?doc (~[sS])?\"\"\"/,\n        {\n          token: \"comment.block.documentation\",\n          next: \"@doubleQuotedHeredocDocstring\"\n        }\n      ],\n      [\n        /\\@(module|type)?doc (~[sS])?'''/,\n        {\n          token: \"comment.block.documentation\",\n          next: \"@singleQuotedHeredocDocstring\"\n        }\n      ],\n      [\n        /\\@(module|type)?doc (~[sS])?\"/,\n        {\n          token: \"comment.block.documentation\",\n          next: \"@doubleQuotedStringDocstring\"\n        }\n      ],\n      [\n        /\\@(module|type)?doc (~[sS])?'/,\n        {\n          token: \"comment.block.documentation\",\n          next: \"@singleQuotedStringDocstring\"\n        }\n      ],\n      [/\\@(module|type)?doc false/, \"comment.block.documentation\"],\n      // Module attributes\n      [/\\@(@variableName)/, \"variable\"]\n    ],\n    doubleQuotedHeredocDocstring: [\n      [/\"\"\"/, { token: \"comment.block.documentation\", next: \"@pop\" }],\n      { include: \"@docstringContent\" }\n    ],\n    singleQuotedHeredocDocstring: [\n      [/'''/, { token: \"comment.block.documentation\", next: \"@pop\" }],\n      { include: \"@docstringContent\" }\n    ],\n    doubleQuotedStringDocstring: [\n      [/\"/, { token: \"comment.block.documentation\", next: \"@pop\" }],\n      { include: \"@docstringContent\" }\n    ],\n    singleQuotedStringDocstring: [\n      [/'/, { token: \"comment.block.documentation\", next: \"@pop\" }],\n      { include: \"@docstringContent\" }\n    ],\n    // Operators, punctuation, brackets\n    symbols: [\n      // Code point operator (either with regular character ?a or an escaped one ?\\n)\n      [/\\?(\\\\.|[^\\\\\\s])/, \"number.constant\"],\n      // Anonymous function arguments\n      [/&\\d+/, \"operator\"],\n      // Bitshift operators (must go before delimiters, so that << >> don't match first)\n      [/<<<|>>>/, \"operator\"],\n      // Delimiter pairs\n      [/[()\\[\\]\\{\\}]|<<|>>/, \"@brackets\"],\n      // Triple dot is a valid name (must go before operators, so that .. doesn't match instead)\n      [/\\.\\.\\./, \"identifier\"],\n      // Punctuation => (must go before operators, so it's not tokenized as = then >)\n      [/=>/, \"punctuation\"],\n      // Operators\n      [/@operator/, \"operator\"],\n      // Punctuation\n      [/[:;,.%]/, \"punctuation\"]\n    ],\n    // Generic helpers\n    stringContentInterpol: [\n      { include: \"@interpolation\" },\n      { include: \"@escapeChar\" },\n      { include: \"@stringContent\" }\n    ],\n    stringContent: [[/./, \"string\"]],\n    stringConstantContentInterpol: [\n      { include: \"@interpolation\" },\n      { include: \"@escapeChar\" },\n      { include: \"@stringConstantContent\" }\n    ],\n    stringConstantContent: [[/./, \"constant\"]],\n    regexpContentInterpol: [\n      { include: \"@interpolation\" },\n      { include: \"@escapeChar\" },\n      { include: \"@regexpContent\" }\n    ],\n    regexpContent: [\n      // # may be a regular regexp char, so we use a heuristic\n      // assuming a # surrounded by whitespace is actually a comment.\n      [/(\\s)(#)(\\s.*)$/, [\"white\", \"comment.punctuation\", \"comment\"]],\n      [/./, \"regexp\"]\n    ],\n    sigilContentInterpol: [\n      { include: \"@interpolation\" },\n      { include: \"@escapeChar\" },\n      { include: \"@sigilContent\" }\n    ],\n    sigilContent: [[/./, \"sigil\"]],\n    docstringContent: [[/./, \"comment.block.documentation\"]],\n    escapeChar: [[/@escape/, \"constant.character.escape\"]],\n    interpolation: [[/#{/, { token: \"delimiter.bracket.embed\", next: \"@interpolationContinue\" }]],\n    interpolationContinue: [\n      [/}/, { token: \"delimiter.bracket.embed\", next: \"@pop\" }],\n      // Interpolation brackets may contain arbitrary code,\n      // so we simply match against all the root rules,\n      // until we reach interpolation end (the above matches).\n      { include: \"@root\" }\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/flow9/flow9.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/flow9/flow9.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/flow9/flow9.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"flow9\",\n  extensions: [\".flow\"],\n  aliases: [\"Flow9\", \"Flow\", \"flow9\", \"flow\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/flow9/flow9\"], resolve, reject);\n      });\n    } else {\n      return import(\"./flow9.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/flow9/flow9.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/flow9/flow9.ts\nvar conf = {\n  comments: {\n    blockComment: [\"/*\", \"*/\"],\n    lineComment: \"//\"\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\", notIn: [\"string\"] },\n    { open: \"[\", close: \"]\", notIn: [\"string\"] },\n    { open: \"(\", close: \")\", notIn: [\"string\"] },\n    { open: '\"', close: '\"', notIn: [\"string\"] },\n    { open: \"'\", close: \"'\", notIn: [\"string\"] }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" },\n    { open: \"<\", close: \">\" }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".flow\",\n  keywords: [\n    \"import\",\n    \"require\",\n    \"export\",\n    \"forbid\",\n    \"native\",\n    \"if\",\n    \"else\",\n    \"cast\",\n    \"unsafe\",\n    \"switch\",\n    \"default\"\n  ],\n  types: [\n    \"io\",\n    \"mutable\",\n    \"bool\",\n    \"int\",\n    \"double\",\n    \"string\",\n    \"flow\",\n    \"void\",\n    \"ref\",\n    \"true\",\n    \"false\",\n    \"with\"\n  ],\n  operators: [\n    \"=\",\n    \">\",\n    \"<\",\n    \"<=\",\n    \">=\",\n    \"==\",\n    \"!\",\n    \"!=\",\n    \":=\",\n    \"::=\",\n    \"&&\",\n    \"||\",\n    \"+\",\n    \"-\",\n    \"*\",\n    \"/\",\n    \"@\",\n    \"&\",\n    \"%\",\n    \":\",\n    \"->\",\n    \"\\\\\",\n    \"$\",\n    \"??\",\n    \"^\"\n  ],\n  symbols: /[@$=><!~?:&|+\\-*\\\\\\/\\^%]+/,\n  escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      // identifiers and keywords\n      [\n        /[a-zA-Z_]\\w*/,\n        {\n          cases: {\n            \"@keywords\": \"keyword\",\n            \"@types\": \"type\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      // whitespace\n      { include: \"@whitespace\" },\n      // delimiters and operators\n      [/[{}()\\[\\]]/, \"delimiter\"],\n      [/[<>](?!@symbols)/, \"delimiter\"],\n      [\n        /@symbols/,\n        {\n          cases: {\n            \"@operators\": \"delimiter\",\n            \"@default\": \"\"\n          }\n        }\n      ],\n      // numbers\n      [/((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)/, \"number\"],\n      // delimiter: after number because of .\\d floats\n      [/[;,.]/, \"delimiter\"],\n      // strings\n      [/\"([^\"\\\\]|\\\\.)*$/, \"string.invalid\"],\n      [/\"/, \"string\", \"@string\"]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"\"],\n      [/\\/\\*/, \"comment\", \"@comment\"],\n      [/\\/\\/.*$/, \"comment\"]\n    ],\n    comment: [\n      [/[^\\/*]+/, \"comment\"],\n      [/\\*\\//, \"comment\", \"@pop\"],\n      [/[\\/*]/, \"comment\"]\n    ],\n    string: [\n      [/[^\\\\\"]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/\"/, \"string\", \"@pop\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/freemarker2/freemarker2.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/freemarker2/freemarker2.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/freemarker2/freemarker2.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"freemarker2\",\n  extensions: [\".ftl\", \".ftlh\", \".ftlx\"],\n  aliases: [\"FreeMarker2\", \"Apache FreeMarker2\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/freemarker2/freemarker2\"], resolve, reject);\n      }).then((m) => m.TagAngleInterpolationDollar);\n    } else {\n      return import(\"./freemarker2.js\").then((m) => m.TagAutoInterpolationDollar);\n    }\n  }\n});\nregisterLanguage({\n  id: \"freemarker2.tag-angle.interpolation-dollar\",\n  aliases: [\"FreeMarker2 (Angle/Dollar)\", \"Apache FreeMarker2 (Angle/Dollar)\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/freemarker2/freemarker2\"], resolve, reject);\n      }).then((m) => m.TagAngleInterpolationDollar);\n    } else {\n      return import(\"./freemarker2.js\").then((m) => m.TagAngleInterpolationDollar);\n    }\n  }\n});\nregisterLanguage({\n  id: \"freemarker2.tag-bracket.interpolation-dollar\",\n  aliases: [\"FreeMarker2 (Bracket/Dollar)\", \"Apache FreeMarker2 (Bracket/Dollar)\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/freemarker2/freemarker2\"], resolve, reject);\n      }).then((m) => m.TagBracketInterpolationDollar);\n    } else {\n      return import(\"./freemarker2.js\").then((m) => m.TagBracketInterpolationDollar);\n    }\n  }\n});\nregisterLanguage({\n  id: \"freemarker2.tag-angle.interpolation-bracket\",\n  aliases: [\"FreeMarker2 (Angle/Bracket)\", \"Apache FreeMarker2 (Angle/Bracket)\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/freemarker2/freemarker2\"], resolve, reject);\n      }).then((m) => m.TagAngleInterpolationBracket);\n    } else {\n      return import(\"./freemarker2.js\").then((m) => m.TagAngleInterpolationBracket);\n    }\n  }\n});\nregisterLanguage({\n  id: \"freemarker2.tag-bracket.interpolation-bracket\",\n  aliases: [\"FreeMarker2 (Bracket/Bracket)\", \"Apache FreeMarker2 (Bracket/Bracket)\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/freemarker2/freemarker2\"], resolve, reject);\n      }).then((m) => m.TagBracketInterpolationBracket);\n    } else {\n      return import(\"./freemarker2.js\").then((m) => m.TagBracketInterpolationBracket);\n    }\n  }\n});\nregisterLanguage({\n  id: \"freemarker2.tag-auto.interpolation-dollar\",\n  aliases: [\"FreeMarker2 (Auto/Dollar)\", \"Apache FreeMarker2 (Auto/Dollar)\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/freemarker2/freemarker2\"], resolve, reject);\n      }).then((m) => m.TagAutoInterpolationDollar);\n    } else {\n      return import(\"./freemarker2.js\").then((m) => m.TagAutoInterpolationDollar);\n    }\n  }\n});\nregisterLanguage({\n  id: \"freemarker2.tag-auto.interpolation-bracket\",\n  aliases: [\"FreeMarker2 (Auto/Bracket)\", \"Apache FreeMarker2 (Auto/Bracket)\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/freemarker2/freemarker2\"], resolve, reject);\n      }).then((m) => m.TagAutoInterpolationBracket);\n    } else {\n      return import(\"./freemarker2.js\").then((m) => m.TagAutoInterpolationBracket);\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/freemarker2/freemarker2.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\n\n// src/fillers/monaco-editor-core.ts\nvar monaco_editor_core_exports = {};\n__reExport(monaco_editor_core_exports, monaco_editor_core_star);\nimport * as monaco_editor_core_star from \"../../editor/editor.api.js\";\n\n// src/basic-languages/freemarker2/freemarker2.ts\nvar EMPTY_ELEMENTS = [\n  \"assign\",\n  \"flush\",\n  \"ftl\",\n  \"return\",\n  \"global\",\n  \"import\",\n  \"include\",\n  \"break\",\n  \"continue\",\n  \"local\",\n  \"nested\",\n  \"nt\",\n  \"setting\",\n  \"stop\",\n  \"t\",\n  \"lt\",\n  \"rt\",\n  \"fallback\"\n];\nvar BLOCK_ELEMENTS = [\n  \"attempt\",\n  \"autoesc\",\n  \"autoEsc\",\n  \"compress\",\n  \"comment\",\n  \"escape\",\n  \"noescape\",\n  \"function\",\n  \"if\",\n  \"list\",\n  \"items\",\n  \"sep\",\n  \"macro\",\n  \"noparse\",\n  \"noParse\",\n  \"noautoesc\",\n  \"noAutoEsc\",\n  \"outputformat\",\n  \"switch\",\n  \"visit\",\n  \"recurse\"\n];\nvar TagSyntaxAngle = {\n  close: \">\",\n  id: \"angle\",\n  open: \"<\"\n};\nvar TagSyntaxBracket = {\n  close: \"\\\\]\",\n  id: \"bracket\",\n  open: \"\\\\[\"\n};\nvar TagSyntaxAuto = {\n  close: \"[>\\\\]]\",\n  id: \"auto\",\n  open: \"[<\\\\[]\"\n};\nvar InterpolationSyntaxDollar = {\n  close: \"\\\\}\",\n  id: \"dollar\",\n  open1: \"\\\\$\",\n  open2: \"\\\\{\"\n};\nvar InterpolationSyntaxBracket = {\n  close: \"\\\\]\",\n  id: \"bracket\",\n  open1: \"\\\\[\",\n  open2: \"=\"\n};\nfunction createLangConfiguration(ts) {\n  return {\n    brackets: [\n      [\"<\", \">\"],\n      [\"[\", \"]\"],\n      [\"(\", \")\"],\n      [\"{\", \"}\"]\n    ],\n    comments: {\n      blockComment: [`${ts.open}--`, `--${ts.close}`]\n    },\n    autoCloseBefore: \"\\n\\r\t }]),.:;=\",\n    autoClosingPairs: [\n      { open: \"{\", close: \"}\" },\n      { open: \"[\", close: \"]\" },\n      { open: \"(\", close: \")\" },\n      { open: '\"', close: '\"', notIn: [\"string\"] },\n      { open: \"'\", close: \"'\", notIn: [\"string\"] }\n    ],\n    surroundingPairs: [\n      { open: '\"', close: '\"' },\n      { open: \"'\", close: \"'\" },\n      { open: \"{\", close: \"}\" },\n      { open: \"[\", close: \"]\" },\n      { open: \"(\", close: \")\" },\n      { open: \"<\", close: \">\" }\n    ],\n    folding: {\n      markers: {\n        start: new RegExp(\n          `${ts.open}#(?:${BLOCK_ELEMENTS.join(\"|\")})([^/${ts.close}]*(?!/)${ts.close})[^${ts.open}]*$`\n        ),\n        end: new RegExp(`${ts.open}/#(?:${BLOCK_ELEMENTS.join(\"|\")})[\\\\r\\\\n\\\\t ]*>`)\n      }\n    },\n    onEnterRules: [\n      {\n        beforeText: new RegExp(\n          `${ts.open}#(?!(?:${EMPTY_ELEMENTS.join(\"|\")}))([a-zA-Z_]+)([^/${ts.close}]*(?!/)${ts.close})[^${ts.open}]*$`\n        ),\n        afterText: new RegExp(`^${ts.open}/#([a-zA-Z_]+)[\\\\r\\\\n\\\\t ]*${ts.close}$`),\n        action: {\n          indentAction: monaco_editor_core_exports.languages.IndentAction.IndentOutdent\n        }\n      },\n      {\n        beforeText: new RegExp(\n          `${ts.open}#(?!(?:${EMPTY_ELEMENTS.join(\"|\")}))([a-zA-Z_]+)([^/${ts.close}]*(?!/)${ts.close})[^${ts.open}]*$`\n        ),\n        action: { indentAction: monaco_editor_core_exports.languages.IndentAction.Indent }\n      }\n    ]\n  };\n}\nfunction createLangConfigurationAuto() {\n  return {\n    // Cannot set block comment delimiter in auto mode...\n    // It depends on the content and the cursor position of the file...\n    brackets: [\n      [\"<\", \">\"],\n      [\"[\", \"]\"],\n      [\"(\", \")\"],\n      [\"{\", \"}\"]\n    ],\n    autoCloseBefore: \"\\n\\r\t }]),.:;=\",\n    autoClosingPairs: [\n      { open: \"{\", close: \"}\" },\n      { open: \"[\", close: \"]\" },\n      { open: \"(\", close: \")\" },\n      { open: '\"', close: '\"', notIn: [\"string\"] },\n      { open: \"'\", close: \"'\", notIn: [\"string\"] }\n    ],\n    surroundingPairs: [\n      { open: '\"', close: '\"' },\n      { open: \"'\", close: \"'\" },\n      { open: \"{\", close: \"}\" },\n      { open: \"[\", close: \"]\" },\n      { open: \"(\", close: \")\" },\n      { open: \"<\", close: \">\" }\n    ],\n    folding: {\n      markers: {\n        start: new RegExp(`[<\\\\[]#(?:${BLOCK_ELEMENTS.join(\"|\")})([^/>\\\\]]*(?!/)[>\\\\]])[^<\\\\[]*$`),\n        end: new RegExp(`[<\\\\[]/#(?:${BLOCK_ELEMENTS.join(\"|\")})[\\\\r\\\\n\\\\t ]*>`)\n      }\n    },\n    onEnterRules: [\n      {\n        beforeText: new RegExp(\n          `[<\\\\[]#(?!(?:${EMPTY_ELEMENTS.join(\"|\")}))([a-zA-Z_]+)([^/>\\\\]]*(?!/)[>\\\\]])[^[<\\\\[]]*$`\n        ),\n        afterText: new RegExp(`^[<\\\\[]/#([a-zA-Z_]+)[\\\\r\\\\n\\\\t ]*[>\\\\]]$`),\n        action: {\n          indentAction: monaco_editor_core_exports.languages.IndentAction.IndentOutdent\n        }\n      },\n      {\n        beforeText: new RegExp(\n          `[<\\\\[]#(?!(?:${EMPTY_ELEMENTS.join(\"|\")}))([a-zA-Z_]+)([^/>\\\\]]*(?!/)[>\\\\]])[^[<\\\\[]]*$`\n        ),\n        action: { indentAction: monaco_editor_core_exports.languages.IndentAction.Indent }\n      }\n    ]\n  };\n}\nfunction createMonarchLanguage(ts, is) {\n  const id = `_${ts.id}_${is.id}`;\n  const s = (name) => name.replace(/__id__/g, id);\n  const r = (regexp) => {\n    const source = regexp.source.replace(/__id__/g, id);\n    return new RegExp(source, regexp.flags);\n  };\n  return {\n    // Settings\n    unicode: true,\n    includeLF: false,\n    start: s(\"default__id__\"),\n    ignoreCase: false,\n    defaultToken: \"invalid\",\n    tokenPostfix: `.freemarker2`,\n    brackets: [\n      { open: \"{\", close: \"}\", token: \"delimiter.curly\" },\n      { open: \"[\", close: \"]\", token: \"delimiter.square\" },\n      { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" },\n      { open: \"<\", close: \">\", token: \"delimiter.angle\" }\n    ],\n    // Dynamic RegExp\n    [s(\"open__id__\")]: new RegExp(ts.open),\n    [s(\"close__id__\")]: new RegExp(ts.close),\n    [s(\"iOpen1__id__\")]: new RegExp(is.open1),\n    [s(\"iOpen2__id__\")]: new RegExp(is.open2),\n    [s(\"iClose__id__\")]: new RegExp(is.close),\n    // <#START_TAG : \"<\" | \"<#\" | \"[#\">\n    // <#END_TAG : \"</\" | \"</#\" | \"[/#\">\n    [s(\"startTag__id__\")]: r(/(@open__id__)(#)/),\n    [s(\"endTag__id__\")]: r(/(@open__id__)(\\/#)/),\n    [s(\"startOrEndTag__id__\")]: r(/(@open__id__)(\\/?#)/),\n    // <#CLOSE_TAG1 : (<BLANK>)* (\">\" | \"]\")>\n    [s(\"closeTag1__id__\")]: r(/((?:@blank)*)(@close__id__)/),\n    // <#CLOSE_TAG2 : (<BLANK>)* (\"/\")? (\">\" | \"]\")>\n    [s(\"closeTag2__id__\")]: r(/((?:@blank)*\\/?)(@close__id__)/),\n    // Static RegExp\n    // <#BLANK : \" \" | \"\\t\" | \"\\n\" | \"\\r\">\n    blank: /[ \\t\\n\\r]/,\n    // <FALSE : \"false\">\n    // <TRUE : \"true\">\n    // <IN : \"in\">\n    // <AS : \"as\">\n    // <USING : \"using\">\n    keywords: [\"false\", \"true\", \"in\", \"as\", \"using\"],\n    // Directive names that cannot have an expression parameters and cannot be self-closing\n    // E.g. <#if id==2> ... </#if>\n    directiveStartCloseTag1: /attempt|recover|sep|auto[eE]sc|no(?:autoe|AutoE)sc|compress|default|no[eE]scape|comment|no[pP]arse/,\n    // Directive names that cannot have an expression parameter and can be self-closing\n    // E.g. <#if> ... <#else>  ... </#if>\n    // E.g. <#if> ... <#else /></#if>\n    directiveStartCloseTag2: /else|break|continue|return|stop|flush|t|lt|rt|nt|nested|recurse|fallback|ftl/,\n    // Directive names that can have an expression parameter and cannot be self-closing\n    // E.g. <#if id==2> ... </#if>\n    directiveStartBlank: /if|else[iI]f|list|for[eE]ach|switch|case|assign|global|local|include|import|function|macro|transform|visit|stop|return|call|setting|output[fF]ormat|nested|recurse|escape|ftl|items/,\n    // Directive names that can have an end tag\n    // E.g. </#if>\n    directiveEndCloseTag1: /if|list|items|sep|recover|attempt|for[eE]ach|local|global|assign|function|macro|output[fF]ormat|auto[eE]sc|no(?:autoe|AutoE)sc|compress|transform|switch|escape|no[eE]scape/,\n    // <#ESCAPED_CHAR :\n    //     \"\\\\\"\n    //     (\n    //         (\"n\" | \"t\" | \"r\" | \"f\" | \"b\" | \"g\" | \"l\" | \"a\" | \"\\\\\" | \"'\" | \"\\\"\" | \"{\" | \"=\")\n    //         |\n    //         (\"x\" [\"0\"-\"9\", \"A\"-\"F\", \"a\"-\"f\"])\n    //     )\n    // >\n    // Note: While the JavaCC tokenizer rule only specifies one hex digit,\n    // FreeMarker actually interprets up to 4 hex digits.\n    escapedChar: /\\\\(?:[ntrfbgla\\\\'\"\\{=]|(?:x[0-9A-Fa-f]{1,4}))/,\n    // <#ASCII_DIGIT: [\"0\" - \"9\"]>\n    asciiDigit: /[0-9]/,\n    // <INTEGER : ([\"0\"-\"9\"])+>\n    integer: /[0-9]+/,\n    // <#NON_ESCAPED_ID_START_CHAR:\n    // [\n    // \t  // This was generated on JDK 1.8.0_20 Win64 with src/main/misc/identifierChars/IdentifierCharGenerator.java\n    //    ...\n    // ]\n    nonEscapedIdStartChar: /[\\$@-Z_a-z\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u1FFF\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183-\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3006\\u3031-\\u3035\\u303B-\\u303C\\u3040-\\u318F\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3300-\\u337F\\u3400-\\u4DB5\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8D0-\\uA8D9\\uA8F2-\\uA8F7\\uA8FB\\uA900-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF-\\uA9D9\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5-\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40-\\uFB41\\uFB43-\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/,\n    // <#ESCAPED_ID_CHAR: \"\\\\\" (\"-\" | \".\" | \":\" | \"#\")>\n    escapedIdChar: /\\\\[\\-\\.:#]/,\n    // <#ID_START_CHAR: <NON_ESCAPED_ID_START_CHAR>|<ESCAPED_ID_CHAR>>\n    idStartChar: /(?:@nonEscapedIdStartChar)|(?:@escapedIdChar)/,\n    // <ID: <ID_START_CHAR> (<ID_START_CHAR>|<ASCII_DIGIT>)*>\n    id: /(?:@idStartChar)(?:(?:@idStartChar)|(?:@asciiDigit))*/,\n    // Certain keywords / operators are allowed to index hashes\n    //\n    // Expression DotVariable(Expression exp) :\n    // {\n    // \tToken t;\n    // }\n    // {\n    // \t\t<DOT>\n    // \t\t(\n    // \t\t\tt = <ID> | t = <TIMES> | t = <DOUBLE_STAR>\n    // \t\t\t|\n    // \t\t\t(\n    // \t\t\t\tt = <LESS_THAN>\n    // \t\t\t\t|\n    // \t\t\t\tt = <LESS_THAN_EQUALS>\n    // \t\t\t\t|\n    // \t\t\t\tt = <ESCAPED_GT>\n    // \t\t\t\t|\n    // \t\t\t\tt = <ESCAPED_GTE>\n    // \t\t\t\t|\n    // \t\t\t\tt = <FALSE>\n    // \t\t\t\t|\n    // \t\t\t\tt = <TRUE>\n    // \t\t\t\t|\n    // \t\t\t\tt = <IN>\n    // \t\t\t\t|\n    // \t\t\t\tt = <AS>\n    // \t\t\t\t|\n    // \t\t\t\tt = <USING>\n    // \t\t\t)\n    // \t\t\t{\n    // \t\t\t\tif (!Character.isLetter(t.image.charAt(0))) {\n    // \t\t\t\t\tthrow new ParseException(t.image + \" is not a valid identifier.\", template, t);\n    // \t\t\t\t}\n    // \t\t\t}\n    // \t\t)\n    // \t\t{\n    // \t\t\tnotListLiteral(exp, \"hash\");\n    // \t\t\tnotStringLiteral(exp, \"hash\");\n    // \t\t\tnotBooleanLiteral(exp, \"hash\");\n    // \t\t\tDot dot = new Dot(exp, t.image);\n    // \t\t\tdot.setLocation(template, exp, t);\n    // \t\t\treturn dot;\n    // \t\t}\n    // }\n    specialHashKeys: /\\*\\*|\\*|false|true|in|as|using/,\n    // <DOUBLE_EQUALS : \"==\">\n    // <EQUALS : \"=\">\n    // <NOT_EQUALS : \"!=\">\n    // <PLUS_EQUALS : \"+=\">\n    // <MINUS_EQUALS : \"-=\">\n    // <TIMES_EQUALS : \"*=\">\n    // <DIV_EQUALS : \"/=\">\n    // <MOD_EQUALS : \"%=\">\n    // <PLUS_PLUS : \"++\">\n    // <MINUS_MINUS : \"--\">\n    // <LESS_THAN_EQUALS : \"lte\" | \"\\\\lte\" | \"<=\" | \"&lt;=\">\n    // <LESS_THAN : \"lt\" | \"\\\\lt\" | \"<\" | \"&lt;\">\n    // <ESCAPED_GTE : \"gte\" | \"\\\\gte\" | \"&gt;=\">\n    // <ESCAPED_GT: \"gt\" | \"\\\\gt\" |  \"&gt;\">\n    // <DOUBLE_STAR : \"**\">\n    // <PLUS : \"+\">\n    // <MINUS : \"-\">\n    // <TIMES : \"*\">\n    // <PERCENT : \"%\">\n    // <AND : \"&\" | \"&&\" | \"&amp;&amp;\" | \"\\\\and\" >\n    // <OR : \"|\" | \"||\">\n    // <EXCLAM : \"!\">\n    // <COMMA : \",\">\n    // <SEMICOLON : \";\">\n    // <COLON : \":\">\n    // <ELLIPSIS : \"...\">\n    // <DOT_DOT_ASTERISK : \"..*\" >\n    // <DOT_DOT_LESS : \"..<\" | \"..!\" >\n    // <DOT_DOT : \"..\">\n    // <EXISTS : \"??\">\n    // <BUILT_IN : \"?\">\n    // <LAMBDA_ARROW : \"->\" | \"-&gt;\">\n    namedSymbols: /&lt;=|&gt;=|\\\\lte|\\\\lt|&lt;|\\\\gte|\\\\gt|&gt;|&amp;&amp;|\\\\and|-&gt;|->|==|!=|\\+=|-=|\\*=|\\/=|%=|\\+\\+|--|<=|&&|\\|\\||:|\\.\\.\\.|\\.\\.\\*|\\.\\.<|\\.\\.!|\\?\\?|=|<|\\+|-|\\*|\\/|%|\\||\\.\\.|\\?|!|&|\\.|,|;/,\n    arrows: [\"->\", \"-&gt;\"],\n    delimiters: [\";\", \":\", \",\", \".\"],\n    stringOperators: [\"lte\", \"lt\", \"gte\", \"gt\"],\n    noParseTags: [\"noparse\", \"noParse\", \"comment\"],\n    tokenizer: {\n      // Parser states\n      // Plain text\n      [s(\"default__id__\")]: [\n        { include: s(\"@directive_token__id__\") },\n        { include: s(\"@interpolation_and_text_token__id__\") }\n      ],\n      // A FreeMarker expression inside a directive, e.g. <#if 2<3>\n      [s(\"fmExpression__id__.directive\")]: [\n        { include: s(\"@blank_and_expression_comment_token__id__\") },\n        { include: s(\"@directive_end_token__id__\") },\n        { include: s(\"@expression_token__id__\") }\n      ],\n      // A FreeMarker expression inside an interpolation, e.g. ${2+3}\n      [s(\"fmExpression__id__.interpolation\")]: [\n        { include: s(\"@blank_and_expression_comment_token__id__\") },\n        { include: s(\"@expression_token__id__\") },\n        { include: s(\"@greater_operators_token__id__\") }\n      ],\n      // In an expression and inside a not-yet closed parenthesis / bracket\n      [s(\"inParen__id__.plain\")]: [\n        { include: s(\"@blank_and_expression_comment_token__id__\") },\n        { include: s(\"@directive_end_token__id__\") },\n        { include: s(\"@expression_token__id__\") }\n      ],\n      [s(\"inParen__id__.gt\")]: [\n        { include: s(\"@blank_and_expression_comment_token__id__\") },\n        { include: s(\"@expression_token__id__\") },\n        { include: s(\"@greater_operators_token__id__\") }\n      ],\n      // Expression for the unified call, e.g. <@createMacro() ... >\n      [s(\"noSpaceExpression__id__\")]: [\n        { include: s(\"@no_space_expression_end_token__id__\") },\n        { include: s(\"@directive_end_token__id__\") },\n        { include: s(\"@expression_token__id__\") }\n      ],\n      // For the function of a unified call. Special case for when the\n      // expression is a simple identifier.\n      // <@join [1,2] \",\">\n      // <@null!join [1,2] \",\">\n      [s(\"unifiedCall__id__\")]: [{ include: s(\"@unified_call_token__id__\") }],\n      // For singly and doubly quoted string (that may contain interpolations)\n      [s(\"singleString__id__\")]: [{ include: s(\"@string_single_token__id__\") }],\n      [s(\"doubleString__id__\")]: [{ include: s(\"@string_double_token__id__\") }],\n      // For singly and doubly quoted string (that may not contain interpolations)\n      [s(\"rawSingleString__id__\")]: [{ include: s(\"@string_single_raw_token__id__\") }],\n      [s(\"rawDoubleString__id__\")]: [{ include: s(\"@string_double_raw_token__id__\") }],\n      // For a comment in an expression\n      // ${ 1 + <#-- comment --> 2}\n      [s(\"expressionComment__id__\")]: [{ include: s(\"@expression_comment_token__id__\") }],\n      // For <#noparse> ... </#noparse>\n      // For <#noParse> ... </#noParse>\n      // For <#comment> ... </#comment>\n      [s(\"noParse__id__\")]: [{ include: s(\"@no_parse_token__id__\") }],\n      // For <#-- ... -->\n      [s(\"terseComment__id__\")]: [{ include: s(\"@terse_comment_token__id__\") }],\n      // Common rules\n      [s(\"directive_token__id__\")]: [\n        // <ATTEMPT : <START_TAG> \"attempt\" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }\n        // <RECOVER : <START_TAG> \"recover\" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }\n        // <SEP : <START_TAG> \"sep\" <CLOSE_TAG1>>\n        // <AUTOESC : <START_TAG> \"auto\" (\"e\"|\"E\") \"sc\" <CLOSE_TAG1>> {\n        //     handleTagSyntaxAndSwitch(matchedToken, getTagNamingConvention(matchedToken, 4), DEFAULT);\n        // }\n        // <NOAUTOESC : <START_TAG> \"no\" (\"autoe\"|\"AutoE\") \"sc\" <CLOSE_TAG1>> {\n        //     handleTagSyntaxAndSwitch(matchedToken, getTagNamingConvention(matchedToken, 2), DEFAULT);\n        // }\n        // <COMPRESS : <START_TAG> \"compress\" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }\n        // <DEFAUL : <START_TAG> \"default\" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }\n        // <NOESCAPE : <START_TAG> \"no\" (\"e\" | \"E\") \"scape\" <CLOSE_TAG1>> {\n        //     handleTagSyntaxAndSwitch(matchedToken, getTagNamingConvention(matchedToken, 2), DEFAULT);\n        // }\n        //\n        // <COMMENT : <START_TAG> \"comment\" <CLOSE_TAG1>> {\n        //     handleTagSyntaxAndSwitch(matchedToken, NO_PARSE); noparseTag = \"comment\";\n        // }\n        // <NOPARSE: <START_TAG> \"no\" (\"p\" | \"P\") \"arse\" <CLOSE_TAG1>> {\n        //     int tagNamingConvention = getTagNamingConvention(matchedToken, 2);\n        //     handleTagSyntaxAndSwitch(matchedToken, tagNamingConvention, NO_PARSE);\n        //     noparseTag = tagNamingConvention == Configuration.CAMEL_CASE_NAMING_CONVENTION ? \"noParse\" : \"noparse\";\n        // }\n        [\n          r(/(?:@startTag__id__)(@directiveStartCloseTag1)(?:@closeTag1__id__)/),\n          ts.id === \"auto\" ? {\n            cases: {\n              \"$1==<\": { token: \"@rematch\", switchTo: `@default_angle_${is.id}` },\n              \"$1==[\": { token: \"@rematch\", switchTo: `@default_bracket_${is.id}` }\n            }\n          } : [\n            { token: \"@brackets.directive\" },\n            { token: \"delimiter.directive\" },\n            {\n              cases: {\n                \"@noParseTags\": { token: \"tag\", next: s(\"@noParse__id__.$3\") },\n                \"@default\": { token: \"tag\" }\n              }\n            },\n            { token: \"delimiter.directive\" },\n            { token: \"@brackets.directive\" }\n          ]\n        ],\n        // <ELSE : <START_TAG> \"else\" <CLOSE_TAG2>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }\n        // <BREAK : <START_TAG> \"break\" <CLOSE_TAG2>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }\n        // <CONTINUE : <START_TAG> \"continue\" <CLOSE_TAG2>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }\n        // <SIMPLE_RETURN : <START_TAG> \"return\" <CLOSE_TAG2>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }\n        // <HALT : <START_TAG> \"stop\" <CLOSE_TAG2>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }\n        // <FLUSH : <START_TAG> \"flush\" <CLOSE_TAG2>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }\n        // <TRIM : <START_TAG> \"t\" <CLOSE_TAG2>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }\n        // <LTRIM : <START_TAG> \"lt\" <CLOSE_TAG2>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }\n        // <RTRIM : <START_TAG> \"rt\" <CLOSE_TAG2>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }\n        // <NOTRIM : <START_TAG> \"nt\" <CLOSE_TAG2>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }\n        // <SIMPLE_NESTED : <START_TAG> \"nested\" <CLOSE_TAG2>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }\n        // <SIMPLE_RECURSE : <START_TAG> \"recurse\" <CLOSE_TAG2>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }\n        // <FALLBACK : <START_TAG> \"fallback\" <CLOSE_TAG2>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }\n        // <TRIVIAL_FTL_HEADER : (\"<#ftl\" | \"[#ftl\") (\"/\")? (\">\" | \"]\")> { ftlHeader(matchedToken); }\n        [\n          r(/(?:@startTag__id__)(@directiveStartCloseTag2)(?:@closeTag2__id__)/),\n          ts.id === \"auto\" ? {\n            cases: {\n              \"$1==<\": { token: \"@rematch\", switchTo: `@default_angle_${is.id}` },\n              \"$1==[\": { token: \"@rematch\", switchTo: `@default_bracket_${is.id}` }\n            }\n          } : [\n            { token: \"@brackets.directive\" },\n            { token: \"delimiter.directive\" },\n            { token: \"tag\" },\n            { token: \"delimiter.directive\" },\n            { token: \"@brackets.directive\" }\n          ]\n        ],\n        // <IF : <START_TAG> \"if\" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }\n        // <ELSE_IF : <START_TAG> \"else\" (\"i\" | \"I\") \"f\" <BLANK>> {\n        // \thandleTagSyntaxAndSwitch(matchedToken, getTagNamingConvention(matchedToken, 4), FM_EXPRESSION);\n        // }\n        // <LIST : <START_TAG> \"list\" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }\n        // <FOREACH : <START_TAG> \"for\" (\"e\" | \"E\") \"ach\" <BLANK>> {\n        //    handleTagSyntaxAndSwitch(matchedToken, getTagNamingConvention(matchedToken, 3), FM_EXPRESSION);\n        // }\n        // <SWITCH : <START_TAG> \"switch\" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }\n        // <CASE : <START_TAG> \"case\" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }\n        // <ASSIGN : <START_TAG> \"assign\" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }\n        // <GLOBALASSIGN : <START_TAG> \"global\" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }\n        // <LOCALASSIGN : <START_TAG> \"local\" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }\n        // <_INCLUDE : <START_TAG> \"include\" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }\n        // <IMPORT : <START_TAG> \"import\" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }\n        // <FUNCTION : <START_TAG> \"function\" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }\n        // <MACRO : <START_TAG> \"macro\" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }\n        // <TRANSFORM : <START_TAG> \"transform\" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }\n        // <VISIT : <START_TAG> \"visit\" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }\n        // <STOP : <START_TAG> \"stop\" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }\n        // <RETURN : <START_TAG> \"return\" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }\n        // <CALL : <START_TAG> \"call\" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }\n        // <SETTING : <START_TAG> \"setting\" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }\n        // <OUTPUTFORMAT : <START_TAG> \"output\" (\"f\"|\"F\") \"ormat\" <BLANK>> {\n        //    handleTagSyntaxAndSwitch(matchedToken, getTagNamingConvention(matchedToken, 6), FM_EXPRESSION);\n        // }\n        // <NESTED : <START_TAG> \"nested\" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }\n        // <RECURSE : <START_TAG> \"recurse\" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }\n        // <ESCAPE : <START_TAG> \"escape\" <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }\n        //\n        // Note: FreeMarker grammar appears to treat the FTL header as a special case,\n        // in order to remove new lines after the header (?), but since we only need\n        // to tokenize for highlighting, we can include this directive here.\n        // <FTL_HEADER : (\"<#ftl\" | \"[#ftl\") <BLANK>> { ftlHeader(matchedToken); }\n        //\n        // Note: FreeMarker grammar appears to treat the items directive as a special case for\n        // the AST parsing process, but since we only need to tokenize, we can include this\n        // directive here.\n        // <ITEMS : <START_TAG> \"items\" (<BLANK>)+ <AS> <BLANK>> { handleTagSyntaxAndSwitch(matchedToken, FM_EXPRESSION); }\n        [\n          r(/(?:@startTag__id__)(@directiveStartBlank)(@blank)/),\n          ts.id === \"auto\" ? {\n            cases: {\n              \"$1==<\": { token: \"@rematch\", switchTo: `@default_angle_${is.id}` },\n              \"$1==[\": { token: \"@rematch\", switchTo: `@default_bracket_${is.id}` }\n            }\n          } : [\n            { token: \"@brackets.directive\" },\n            { token: \"delimiter.directive\" },\n            { token: \"tag\" },\n            { token: \"\", next: s(\"@fmExpression__id__.directive\") }\n          ]\n        ],\n        // <END_IF : <END_TAG> \"if\" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }\n        // <END_LIST : <END_TAG> \"list\" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }\n        // <END_SEP : <END_TAG> \"sep\" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }\n        // <END_RECOVER : <END_TAG> \"recover\" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }\n        // <END_ATTEMPT : <END_TAG> \"attempt\" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }\n        // <END_FOREACH : <END_TAG> \"for\" (\"e\" | \"E\") \"ach\" <CLOSE_TAG1>> {\n        //     handleTagSyntaxAndSwitch(matchedToken, getTagNamingConvention(matchedToken, 3), DEFAULT);\n        // }\n        // <END_LOCAL : <END_TAG> \"local\" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }\n        // <END_GLOBAL : <END_TAG> \"global\" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }\n        // <END_ASSIGN : <END_TAG> \"assign\" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }\n        // <END_FUNCTION : <END_TAG> \"function\" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }\n        // <END_MACRO : <END_TAG> \"macro\" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }\n        // <END_OUTPUTFORMAT : <END_TAG> \"output\" (\"f\" | \"F\") \"ormat\" <CLOSE_TAG1>> {\n        //     handleTagSyntaxAndSwitch(matchedToken, getTagNamingConvention(matchedToken, 6), DEFAULT);\n        // }\n        // <END_AUTOESC : <END_TAG> \"auto\" (\"e\" | \"E\") \"sc\" <CLOSE_TAG1>> {\n        //     handleTagSyntaxAndSwitch(matchedToken, getTagNamingConvention(matchedToken, 4), DEFAULT);\n        // }\n        // <END_NOAUTOESC : <END_TAG> \"no\" (\"autoe\"|\"AutoE\") \"sc\" <CLOSE_TAG1>> {\n        //   handleTagSyntaxAndSwitch(matchedToken, getTagNamingConvention(matchedToken, 2), DEFAULT);\n        // }\n        // <END_COMPRESS : <END_TAG> \"compress\" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }\n        // <END_TRANSFORM : <END_TAG> \"transform\" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }\n        // <END_SWITCH : <END_TAG> \"switch\" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }\n        // <END_ESCAPE : <END_TAG> \"escape\" <CLOSE_TAG1>> { handleTagSyntaxAndSwitch(matchedToken, DEFAULT); }\n        // <END_NOESCAPE : <END_TAG> \"no\" (\"e\" | \"E\") \"scape\" <CLOSE_TAG1>> {\n        //     handleTagSyntaxAndSwitch(matchedToken, getTagNamingConvention(matchedToken, 2), DEFAULT);\n        // }\n        [\n          r(/(?:@endTag__id__)(@directiveEndCloseTag1)(?:@closeTag1__id__)/),\n          ts.id === \"auto\" ? {\n            cases: {\n              \"$1==<\": { token: \"@rematch\", switchTo: `@default_angle_${is.id}` },\n              \"$1==[\": { token: \"@rematch\", switchTo: `@default_bracket_${is.id}` }\n            }\n          } : [\n            { token: \"@brackets.directive\" },\n            { token: \"delimiter.directive\" },\n            { token: \"tag\" },\n            { token: \"delimiter.directive\" },\n            { token: \"@brackets.directive\" }\n          ]\n        ],\n        // <UNIFIED_CALL : \"<@\" | \"[@\" > { unifiedCall(matchedToken); }\n        [\n          r(/(@open__id__)(@)/),\n          ts.id === \"auto\" ? {\n            cases: {\n              \"$1==<\": { token: \"@rematch\", switchTo: `@default_angle_${is.id}` },\n              \"$1==[\": { token: \"@rematch\", switchTo: `@default_bracket_${is.id}` }\n            }\n          } : [\n            { token: \"@brackets.directive\" },\n            { token: \"delimiter.directive\", next: s(\"@unifiedCall__id__\") }\n          ]\n        ],\n        // <UNIFIED_CALL_END : (\"<\" | \"[\") \"/@\" ((<ID>) (\".\"<ID>)*)? <CLOSE_TAG1>> { unifiedCallEnd(matchedToken); }\n        [\n          r(/(@open__id__)(\\/@)((?:(?:@id)(?:\\.(?:@id))*)?)(?:@closeTag1__id__)/),\n          [\n            { token: \"@brackets.directive\" },\n            { token: \"delimiter.directive\" },\n            { token: \"tag\" },\n            { token: \"delimiter.directive\" },\n            { token: \"@brackets.directive\" }\n          ]\n        ],\n        // <TERSE_COMMENT : (\"<\" | \"[\") \"#--\" > { noparseTag = \"-->\"; handleTagSyntaxAndSwitch(matchedToken, NO_PARSE); }\n        [\n          r(/(@open__id__)#--/),\n          ts.id === \"auto\" ? {\n            cases: {\n              \"$1==<\": { token: \"@rematch\", switchTo: `@default_angle_${is.id}` },\n              \"$1==[\": { token: \"@rematch\", switchTo: `@default_bracket_${is.id}` }\n            }\n          } : { token: \"comment\", next: s(\"@terseComment__id__\") }\n        ],\n        // <UNKNOWN_DIRECTIVE : (\"[#\" | \"[/#\" | \"<#\" | \"</#\") ([\"a\"-\"z\", \"A\"-\"Z\", \"_\"])+>\n        [\n          r(/(?:@startOrEndTag__id__)([a-zA-Z_]+)/),\n          ts.id === \"auto\" ? {\n            cases: {\n              \"$1==<\": { token: \"@rematch\", switchTo: `@default_angle_${is.id}` },\n              \"$1==[\": { token: \"@rematch\", switchTo: `@default_bracket_${is.id}` }\n            }\n          } : [\n            { token: \"@brackets.directive\" },\n            { token: \"delimiter.directive\" },\n            { token: \"tag.invalid\", next: s(\"@fmExpression__id__.directive\") }\n          ]\n        ]\n      ],\n      // <DEFAULT, NO_DIRECTIVE> TOKEN :\n      [s(\"interpolation_and_text_token__id__\")]: [\n        // <DOLLAR_INTERPOLATION_OPENING : \"${\"> { startInterpolation(matchedToken); }\n        // <SQUARE_BRACKET_INTERPOLATION_OPENING : \"[=\"> { startInterpolation(matchedToken); }\n        [\n          r(/(@iOpen1__id__)(@iOpen2__id__)/),\n          [\n            { token: is.id === \"bracket\" ? \"@brackets.interpolation\" : \"delimiter.interpolation\" },\n            {\n              token: is.id === \"bracket\" ? \"delimiter.interpolation\" : \"@brackets.interpolation\",\n              next: s(\"@fmExpression__id__.interpolation\")\n            }\n          ]\n        ],\n        // <STATIC_TEXT_FALSE_ALARM : \"$\" | \"#\" | \"<\" | \"[\" | \"{\"> // to handle a lone dollar sign or \"<\" or \"# or <@ with whitespace after\"\n        // <STATIC_TEXT_WS : (\"\\n\" | \"\\r\" | \"\\t\" | \" \")+>\n        // <STATIC_TEXT_NON_WS : (~[\"$\", \"<\", \"#\", \"[\", \"{\", \"\\n\", \"\\r\", \"\\t\", \" \"])+>\n        [/[\\$#<\\[\\{]|(?:@blank)+|[^\\$<#\\[\\{\\n\\r\\t ]+/, { token: \"source\" }]\n      ],\n      // <STRING_LITERAL :\n      // \t(\n      // \t\t\"\\\"\"\n      // \t\t((~[\"\\\"\", \"\\\\\"]) | <ESCAPED_CHAR>)*\n      // \t\t\"\\\"\"\n      // \t)\n      // \t|\n      // \t(\n      // \t\t\"'\"\n      // \t\t((~[\"'\", \"\\\\\"]) | <ESCAPED_CHAR>)*\n      // \t\t\"'\"\n      // \t)\n      // >\n      [s(\"string_single_token__id__\")]: [\n        [/[^'\\\\]/, { token: \"string\" }],\n        [/@escapedChar/, { token: \"string.escape\" }],\n        [/'/, { token: \"string\", next: \"@pop\" }]\n      ],\n      [s(\"string_double_token__id__\")]: [\n        [/[^\"\\\\]/, { token: \"string\" }],\n        [/@escapedChar/, { token: \"string.escape\" }],\n        [/\"/, { token: \"string\", next: \"@pop\" }]\n      ],\n      // <RAW_STRING : \"r\" ((\"\\\"\" (~[\"\\\"\"])* \"\\\"\") | (\"'\" (~[\"'\"])* \"'\"))>\n      [s(\"string_single_raw_token__id__\")]: [\n        [/[^']+/, { token: \"string.raw\" }],\n        [/'/, { token: \"string.raw\", next: \"@pop\" }]\n      ],\n      [s(\"string_double_raw_token__id__\")]: [\n        [/[^\"]+/, { token: \"string.raw\" }],\n        [/\"/, { token: \"string.raw\", next: \"@pop\" }]\n      ],\n      // <FM_EXPRESSION, IN_PAREN, NO_SPACE_EXPRESSION, NAMED_PARAMETER_EXPRESSION> TOKEN :\n      [s(\"expression_token__id__\")]: [\n        // Strings\n        [\n          /(r?)(['\"])/,\n          {\n            cases: {\n              \"r'\": [\n                { token: \"keyword\" },\n                { token: \"string.raw\", next: s(\"@rawSingleString__id__\") }\n              ],\n              'r\"': [\n                { token: \"keyword\" },\n                { token: \"string.raw\", next: s(\"@rawDoubleString__id__\") }\n              ],\n              \"'\": [{ token: \"source\" }, { token: \"string\", next: s(\"@singleString__id__\") }],\n              '\"': [{ token: \"source\" }, { token: \"string\", next: s(\"@doubleString__id__\") }]\n            }\n          }\n        ],\n        // Numbers\n        // <INTEGER : ([\"0\"-\"9\"])+>\n        // <DECIMAL : <INTEGER> \".\" <INTEGER>>\n        [\n          /(?:@integer)(?:\\.(?:@integer))?/,\n          {\n            cases: {\n              \"(?:@integer)\": { token: \"number\" },\n              \"@default\": { token: \"number.float\" }\n            }\n          }\n        ],\n        // Special hash keys that must not be treated as identifiers\n        // after a period, e.g. a.** is accessing the key \"**\" of a\n        [\n          /(\\.)(@blank*)(@specialHashKeys)/,\n          [{ token: \"delimiter\" }, { token: \"\" }, { token: \"identifier\" }]\n        ],\n        // Symbols / operators\n        [\n          /(?:@namedSymbols)/,\n          {\n            cases: {\n              \"@arrows\": { token: \"meta.arrow\" },\n              \"@delimiters\": { token: \"delimiter\" },\n              \"@default\": { token: \"operators\" }\n            }\n          }\n        ],\n        // Identifiers\n        [\n          /@id/,\n          {\n            cases: {\n              \"@keywords\": { token: \"keyword.$0\" },\n              \"@stringOperators\": { token: \"operators\" },\n              \"@default\": { token: \"identifier\" }\n            }\n          }\n        ],\n        // <OPEN_BRACKET : \"[\">\n        // <CLOSE_BRACKET : \"]\">\n        // <OPEN_PAREN : \"(\">\n        // <CLOSE_PAREN : \")\">\n        // <OPENING_CURLY_BRACKET : \"{\">\n        // <CLOSING_CURLY_BRACKET : \"}\">\n        [\n          /[\\[\\]\\(\\)\\{\\}]/,\n          {\n            cases: {\n              \"\\\\[\": {\n                cases: {\n                  \"$S2==gt\": { token: \"@brackets\", next: s(\"@inParen__id__.gt\") },\n                  \"@default\": { token: \"@brackets\", next: s(\"@inParen__id__.plain\") }\n                }\n              },\n              \"\\\\]\": {\n                cases: {\n                  ...is.id === \"bracket\" ? {\n                    \"$S2==interpolation\": { token: \"@brackets.interpolation\", next: \"@popall\" }\n                  } : {},\n                  // This cannot happen while in auto mode, since this applies only to an\n                  // fmExpression inside a directive. But once we encounter the start of a\n                  // directive, we can establish the tag syntax mode.\n                  ...ts.id === \"bracket\" ? {\n                    \"$S2==directive\": { token: \"@brackets.directive\", next: \"@popall\" }\n                  } : {},\n                  // Ignore mismatched paren\n                  [s(\"$S1==inParen__id__\")]: { token: \"@brackets\", next: \"@pop\" },\n                  \"@default\": { token: \"@brackets\" }\n                }\n              },\n              \"\\\\(\": { token: \"@brackets\", next: s(\"@inParen__id__.gt\") },\n              \"\\\\)\": {\n                cases: {\n                  [s(\"$S1==inParen__id__\")]: { token: \"@brackets\", next: \"@pop\" },\n                  \"@default\": { token: \"@brackets\" }\n                }\n              },\n              \"\\\\{\": {\n                cases: {\n                  \"$S2==gt\": { token: \"@brackets\", next: s(\"@inParen__id__.gt\") },\n                  \"@default\": { token: \"@brackets\", next: s(\"@inParen__id__.plain\") }\n                }\n              },\n              \"\\\\}\": {\n                cases: {\n                  ...is.id === \"bracket\" ? {} : {\n                    \"$S2==interpolation\": { token: \"@brackets.interpolation\", next: \"@popall\" }\n                  },\n                  // Ignore mismatched paren\n                  [s(\"$S1==inParen__id__\")]: { token: \"@brackets\", next: \"@pop\" },\n                  \"@default\": { token: \"@brackets\" }\n                }\n              }\n            }\n          }\n        ],\n        // <OPEN_MISPLACED_INTERPOLATION : \"${\" | \"#{\" | \"[=\">\n        [/\\$\\{/, { token: \"delimiter.invalid\" }]\n      ],\n      // <FM_EXPRESSION, IN_PAREN, NAMED_PARAMETER_EXPRESSION> SKIP :\n      [s(\"blank_and_expression_comment_token__id__\")]: [\n        // < ( \" \" | \"\\t\" | \"\\n\" | \"\\r\" )+ >\n        [/(?:@blank)+/, { token: \"\" }],\n        // < (\"<\" | \"[\") (\"#\" | \"!\") \"--\"> : EXPRESSION_COMMENT\n        [/[<\\[][#!]--/, { token: \"comment\", next: s(\"@expressionComment__id__\") }]\n      ],\n      // <FM_EXPRESSION, NO_SPACE_EXPRESSION, NAMED_PARAMETER_EXPRESSION> TOKEN :\n      [s(\"directive_end_token__id__\")]: [\n        // <DIRECTIVE_END : \">\">\n        // {\n        //     if (inFTLHeader) {\n        //         eatNewline();\n        //         inFTLHeader = false;\n        //     }\n        //     if (squBracTagSyntax || postInterpolationLexState != -1 /* We are in an interpolation */) {\n        //         matchedToken.kind = NATURAL_GT;\n        //     } else {\n        //         SwitchTo(DEFAULT);\n        //     }\n        // }\n        // This cannot happen while in auto mode, since this applies only to an\n        // fmExpression inside a directive. But once we encounter the start of a\n        // directive, we can establish the tag syntax mode.\n        [\n          />/,\n          ts.id === \"bracket\" ? { token: \"operators\" } : { token: \"@brackets.directive\", next: \"@popall\" }\n        ],\n        // <EMPTY_DIRECTIVE_END : \"/>\" | \"/]\">\n        // It is a syntax error to end a tag with the wrong close token\n        // Let's indicate that to the user by not closing the tag\n        [\n          r(/(\\/)(@close__id__)/),\n          [{ token: \"delimiter.directive\" }, { token: \"@brackets.directive\", next: \"@popall\" }]\n        ]\n      ],\n      // <IN_PAREN> TOKEN :\n      [s(\"greater_operators_token__id__\")]: [\n        // <NATURAL_GT : \">\">\n        [/>/, { token: \"operators\" }],\n        // <NATURAL_GTE : \">=\">\n        [/>=/, { token: \"operators\" }]\n      ],\n      // <NO_SPACE_EXPRESSION> TOKEN :\n      [s(\"no_space_expression_end_token__id__\")]: [\n        // <TERMINATING_WHITESPACE :  ([\"\\n\", \"\\r\", \"\\t\", \" \"])+> : FM_EXPRESSION\n        [/(?:@blank)+/, { token: \"\", switchTo: s(\"@fmExpression__id__.directive\") }]\n      ],\n      [s(\"unified_call_token__id__\")]: [\n        // Special case for a call where the expression is just an ID\n        // <UNIFIED_CALL> <ID> <BLANK>+\n        [\n          /(@id)((?:@blank)+)/,\n          [{ token: \"tag\" }, { token: \"\", next: s(\"@fmExpression__id__.directive\") }]\n        ],\n        [\n          r(/(@id)(\\/?)(@close__id__)/),\n          [\n            { token: \"tag\" },\n            { token: \"delimiter.directive\" },\n            { token: \"@brackets.directive\", next: \"@popall\" }\n          ]\n        ],\n        [/./, { token: \"@rematch\", next: s(\"@noSpaceExpression__id__\") }]\n      ],\n      // <NO_PARSE> TOKEN :\n      [s(\"no_parse_token__id__\")]: [\n        // <MAYBE_END :\n        // \t (\"<\" | \"[\")\n        // \t \"/\"\n        // \t (\"#\")?\n        // \t ([\"a\"-\"z\", \"A\"-\"Z\"])+\n        // \t ( \" \" | \"\\t\" | \"\\n\" | \"\\r\" )*\n        // \t (\">\" | \"]\")\n        // >\n        [\n          r(/(@open__id__)(\\/#?)([a-zA-Z]+)((?:@blank)*)(@close__id__)/),\n          {\n            cases: {\n              \"$S2==$3\": [\n                { token: \"@brackets.directive\" },\n                { token: \"delimiter.directive\" },\n                { token: \"tag\" },\n                { token: \"\" },\n                { token: \"@brackets.directive\", next: \"@popall\" }\n              ],\n              \"$S2==comment\": [\n                { token: \"comment\" },\n                { token: \"comment\" },\n                { token: \"comment\" },\n                { token: \"comment\" },\n                { token: \"comment\" }\n              ],\n              \"@default\": [\n                { token: \"source\" },\n                { token: \"source\" },\n                { token: \"source\" },\n                { token: \"source\" },\n                { token: \"source\" }\n              ]\n            }\n          }\n        ],\n        // <KEEP_GOING : (~[\"<\", \"[\", \"-\"])+>\n        // <LONE_LESS_THAN_OR_DASH : [\"<\", \"[\", \"-\"]>\n        [\n          /[^<\\[\\-]+|[<\\[\\-]/,\n          {\n            cases: {\n              \"$S2==comment\": { token: \"comment\" },\n              \"@default\": { token: \"source\" }\n            }\n          }\n        ]\n      ],\n      // <EXPRESSION_COMMENT> SKIP:\n      [s(\"expression_comment_token__id__\")]: [\n        // < \"-->\" | \"--]\">\n        [\n          /--[>\\]]/,\n          {\n            token: \"comment\",\n            next: \"@pop\"\n          }\n        ],\n        // < (~[\"-\", \">\", \"]\"])+ >\n        // < \">\">\n        // < \"]\">\n        // < \"-\">\n        [/[^\\->\\]]+|[>\\]\\-]/, { token: \"comment\" }]\n      ],\n      [s(\"terse_comment_token__id__\")]: [\n        //  <TERSE_COMMENT_END : \"-->\" | \"--]\">\n        [r(/--(?:@close__id__)/), { token: \"comment\", next: \"@popall\" }],\n        // <KEEP_GOING : (~[\"<\", \"[\", \"-\"])+>\n        // <LONE_LESS_THAN_OR_DASH : [\"<\", \"[\", \"-\"]>\n        [/[^<\\[\\-]+|[<\\[\\-]/, { token: \"comment\" }]\n      ]\n    }\n  };\n}\nfunction createMonarchLanguageAuto(is) {\n  const angle = createMonarchLanguage(TagSyntaxAngle, is);\n  const bracket = createMonarchLanguage(TagSyntaxBracket, is);\n  const auto = createMonarchLanguage(TagSyntaxAuto, is);\n  return {\n    // Angle and bracket syntax mode\n    // We switch to one of these once we have determined the mode\n    ...angle,\n    ...bracket,\n    ...auto,\n    // Settings\n    unicode: true,\n    includeLF: false,\n    start: `default_auto_${is.id}`,\n    ignoreCase: false,\n    defaultToken: \"invalid\",\n    tokenPostfix: `.freemarker2`,\n    brackets: [\n      { open: \"{\", close: \"}\", token: \"delimiter.curly\" },\n      { open: \"[\", close: \"]\", token: \"delimiter.square\" },\n      { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" },\n      { open: \"<\", close: \">\", token: \"delimiter.angle\" }\n    ],\n    tokenizer: {\n      ...angle.tokenizer,\n      ...bracket.tokenizer,\n      ...auto.tokenizer\n    }\n  };\n}\nvar TagAngleInterpolationDollar = {\n  conf: createLangConfiguration(TagSyntaxAngle),\n  language: createMonarchLanguage(TagSyntaxAngle, InterpolationSyntaxDollar)\n};\nvar TagBracketInterpolationDollar = {\n  conf: createLangConfiguration(TagSyntaxBracket),\n  language: createMonarchLanguage(TagSyntaxBracket, InterpolationSyntaxDollar)\n};\nvar TagAngleInterpolationBracket = {\n  conf: createLangConfiguration(TagSyntaxAngle),\n  language: createMonarchLanguage(TagSyntaxAngle, InterpolationSyntaxBracket)\n};\nvar TagBracketInterpolationBracket = {\n  conf: createLangConfiguration(TagSyntaxBracket),\n  language: createMonarchLanguage(TagSyntaxBracket, InterpolationSyntaxBracket)\n};\nvar TagAutoInterpolationDollar = {\n  conf: createLangConfigurationAuto(),\n  language: createMonarchLanguageAuto(InterpolationSyntaxDollar)\n};\nvar TagAutoInterpolationBracket = {\n  conf: createLangConfigurationAuto(),\n  language: createMonarchLanguageAuto(InterpolationSyntaxBracket)\n};\nexport {\n  TagAngleInterpolationBracket,\n  TagAngleInterpolationDollar,\n  TagAutoInterpolationBracket,\n  TagAutoInterpolationDollar,\n  TagBracketInterpolationBracket,\n  TagBracketInterpolationDollar\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/fsharp/fsharp.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/fsharp/fsharp.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/fsharp/fsharp.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"fsharp\",\n  extensions: [\".fs\", \".fsi\", \".ml\", \".mli\", \".fsx\", \".fsscript\"],\n  aliases: [\"F#\", \"FSharp\", \"fsharp\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/fsharp/fsharp\"], resolve, reject);\n      });\n    } else {\n      return import(\"./fsharp.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/fsharp/fsharp.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/fsharp/fsharp.ts\nvar conf = {\n  comments: {\n    lineComment: \"//\",\n    blockComment: [\"(*\", \"*)\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  folding: {\n    markers: {\n      start: new RegExp(\"^\\\\s*//\\\\s*#region\\\\b|^\\\\s*\\\\(\\\\*\\\\s*#region(.*)\\\\*\\\\)\"),\n      end: new RegExp(\"^\\\\s*//\\\\s*#endregion\\\\b|^\\\\s*\\\\(\\\\*\\\\s*#endregion\\\\s*\\\\*\\\\)\")\n    }\n  }\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".fs\",\n  keywords: [\n    \"abstract\",\n    \"and\",\n    \"atomic\",\n    \"as\",\n    \"assert\",\n    \"asr\",\n    \"base\",\n    \"begin\",\n    \"break\",\n    \"checked\",\n    \"component\",\n    \"const\",\n    \"constraint\",\n    \"constructor\",\n    \"continue\",\n    \"class\",\n    \"default\",\n    \"delegate\",\n    \"do\",\n    \"done\",\n    \"downcast\",\n    \"downto\",\n    \"elif\",\n    \"else\",\n    \"end\",\n    \"exception\",\n    \"eager\",\n    \"event\",\n    \"external\",\n    \"extern\",\n    \"false\",\n    \"finally\",\n    \"for\",\n    \"fun\",\n    \"function\",\n    \"fixed\",\n    \"functor\",\n    \"global\",\n    \"if\",\n    \"in\",\n    \"include\",\n    \"inherit\",\n    \"inline\",\n    \"interface\",\n    \"internal\",\n    \"land\",\n    \"lor\",\n    \"lsl\",\n    \"lsr\",\n    \"lxor\",\n    \"lazy\",\n    \"let\",\n    \"match\",\n    \"member\",\n    \"mod\",\n    \"module\",\n    \"mutable\",\n    \"namespace\",\n    \"method\",\n    \"mixin\",\n    \"new\",\n    \"not\",\n    \"null\",\n    \"of\",\n    \"open\",\n    \"or\",\n    \"object\",\n    \"override\",\n    \"private\",\n    \"parallel\",\n    \"process\",\n    \"protected\",\n    \"pure\",\n    \"public\",\n    \"rec\",\n    \"return\",\n    \"static\",\n    \"sealed\",\n    \"struct\",\n    \"sig\",\n    \"then\",\n    \"to\",\n    \"true\",\n    \"tailcall\",\n    \"trait\",\n    \"try\",\n    \"type\",\n    \"upcast\",\n    \"use\",\n    \"val\",\n    \"void\",\n    \"virtual\",\n    \"volatile\",\n    \"when\",\n    \"while\",\n    \"with\",\n    \"yield\"\n  ],\n  // we include these common regular expressions\n  symbols: /[=><!~?:&|+\\-*\\^%;\\.,\\/]+/,\n  escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n  integersuffix: /[uU]?[yslnLI]?/,\n  floatsuffix: /[fFmM]?/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      // identifiers and keywords\n      [\n        /[a-zA-Z_]\\w*/,\n        {\n          cases: {\n            \"@keywords\": { token: \"keyword.$0\" },\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      // whitespace\n      { include: \"@whitespace\" },\n      // [< attributes >].\n      [/\\[<.*>\\]/, \"annotation\"],\n      // Preprocessor directive\n      [/^#(if|else|endif)/, \"keyword\"],\n      // delimiters and operators\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      [/[<>](?!@symbols)/, \"@brackets\"],\n      [/@symbols/, \"delimiter\"],\n      // numbers\n      [/\\d*\\d+[eE]([\\-+]?\\d+)?(@floatsuffix)/, \"number.float\"],\n      [/\\d*\\.\\d+([eE][\\-+]?\\d+)?(@floatsuffix)/, \"number.float\"],\n      [/0x[0-9a-fA-F]+LF/, \"number.float\"],\n      [/0x[0-9a-fA-F]+(@integersuffix)/, \"number.hex\"],\n      [/0b[0-1]+(@integersuffix)/, \"number.bin\"],\n      [/\\d+(@integersuffix)/, \"number\"],\n      // delimiter: after number because of .\\d floats\n      [/[;,.]/, \"delimiter\"],\n      // strings\n      [/\"([^\"\\\\]|\\\\.)*$/, \"string.invalid\"],\n      // non-teminated string\n      [/\"\"\"/, \"string\", '@string.\"\"\"'],\n      [/\"/, \"string\", '@string.\"'],\n      // literal string\n      [/\\@\"/, { token: \"string.quote\", next: \"@litstring\" }],\n      // characters\n      [/'[^\\\\']'B?/, \"string\"],\n      [/(')(@escapes)(')/, [\"string\", \"string.escape\", \"string\"]],\n      [/'/, \"string.invalid\"]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"\"],\n      [/\\(\\*(?!\\))/, \"comment\", \"@comment\"],\n      [/\\/\\/.*$/, \"comment\"]\n    ],\n    comment: [\n      [/[^*(]+/, \"comment\"],\n      [/\\*\\)/, \"comment\", \"@pop\"],\n      [/\\*/, \"comment\"],\n      [/\\(\\*\\)/, \"comment\"],\n      [/\\(/, \"comment\"]\n    ],\n    string: [\n      [/[^\\\\\"]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [\n        /(\"\"\"|\"B?)/,\n        {\n          cases: {\n            \"$#==$S2\": { token: \"string\", next: \"@pop\" },\n            \"@default\": \"string\"\n          }\n        }\n      ]\n    ],\n    litstring: [\n      [/[^\"]+/, \"string\"],\n      [/\"\"/, \"string.escape\"],\n      [/\"/, { token: \"string.quote\", next: \"@pop\" }]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/go/go.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/go/go.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/go/go.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"go\",\n  extensions: [\".go\"],\n  aliases: [\"Go\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/go/go\"], resolve, reject);\n      });\n    } else {\n      return import(\"./go.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/go/go.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/go/go.ts\nvar conf = {\n  comments: {\n    lineComment: \"//\",\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: \"`\", close: \"`\", notIn: [\"string\"] },\n    { open: '\"', close: '\"', notIn: [\"string\"] },\n    { open: \"'\", close: \"'\", notIn: [\"string\", \"comment\"] }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: \"`\", close: \"`\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".go\",\n  keywords: [\n    \"break\",\n    \"case\",\n    \"chan\",\n    \"const\",\n    \"continue\",\n    \"default\",\n    \"defer\",\n    \"else\",\n    \"fallthrough\",\n    \"for\",\n    \"func\",\n    \"go\",\n    \"goto\",\n    \"if\",\n    \"import\",\n    \"interface\",\n    \"map\",\n    \"package\",\n    \"range\",\n    \"return\",\n    \"select\",\n    \"struct\",\n    \"switch\",\n    \"type\",\n    \"var\",\n    \"bool\",\n    \"true\",\n    \"false\",\n    \"uint8\",\n    \"uint16\",\n    \"uint32\",\n    \"uint64\",\n    \"int8\",\n    \"int16\",\n    \"int32\",\n    \"int64\",\n    \"float32\",\n    \"float64\",\n    \"complex64\",\n    \"complex128\",\n    \"byte\",\n    \"rune\",\n    \"uint\",\n    \"int\",\n    \"uintptr\",\n    \"string\",\n    \"nil\"\n  ],\n  operators: [\n    \"+\",\n    \"-\",\n    \"*\",\n    \"/\",\n    \"%\",\n    \"&\",\n    \"|\",\n    \"^\",\n    \"<<\",\n    \">>\",\n    \"&^\",\n    \"+=\",\n    \"-=\",\n    \"*=\",\n    \"/=\",\n    \"%=\",\n    \"&=\",\n    \"|=\",\n    \"^=\",\n    \"<<=\",\n    \">>=\",\n    \"&^=\",\n    \"&&\",\n    \"||\",\n    \"<-\",\n    \"++\",\n    \"--\",\n    \"==\",\n    \"<\",\n    \">\",\n    \"=\",\n    \"!\",\n    \"!=\",\n    \"<=\",\n    \">=\",\n    \":=\",\n    \"...\",\n    \"(\",\n    \")\",\n    \"\",\n    \"]\",\n    \"{\",\n    \"}\",\n    \",\",\n    \";\",\n    \".\",\n    \":\"\n  ],\n  // we include these common regular expressions\n  symbols: /[=><!~?:&|+\\-*\\/\\^%]+/,\n  escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      // identifiers and keywords\n      [\n        /[a-zA-Z_]\\w*/,\n        {\n          cases: {\n            \"@keywords\": { token: \"keyword.$0\" },\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      // whitespace\n      { include: \"@whitespace\" },\n      // [[ attributes ]].\n      [/\\[\\[.*\\]\\]/, \"annotation\"],\n      // Preprocessor directive\n      [/^\\s*#\\w+/, \"keyword\"],\n      // delimiters and operators\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      [/[<>](?!@symbols)/, \"@brackets\"],\n      [\n        /@symbols/,\n        {\n          cases: {\n            \"@operators\": \"delimiter\",\n            \"@default\": \"\"\n          }\n        }\n      ],\n      // numbers\n      [/\\d*\\d+[eE]([\\-+]?\\d+)?/, \"number.float\"],\n      [/\\d*\\.\\d+([eE][\\-+]?\\d+)?/, \"number.float\"],\n      [/0[xX][0-9a-fA-F']*[0-9a-fA-F]/, \"number.hex\"],\n      [/0[0-7']*[0-7]/, \"number.octal\"],\n      [/0[bB][0-1']*[0-1]/, \"number.binary\"],\n      [/\\d[\\d']*/, \"number\"],\n      [/\\d/, \"number\"],\n      // delimiter: after number because of .\\d floats\n      [/[;,.]/, \"delimiter\"],\n      // strings\n      [/\"([^\"\\\\]|\\\\.)*$/, \"string.invalid\"],\n      // non-teminated string\n      [/\"/, \"string\", \"@string\"],\n      [/`/, \"string\", \"@rawstring\"],\n      // characters\n      [/'[^\\\\']'/, \"string\"],\n      [/(')(@escapes)(')/, [\"string\", \"string.escape\", \"string\"]],\n      [/'/, \"string.invalid\"]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"\"],\n      [/\\/\\*\\*(?!\\/)/, \"comment.doc\", \"@doccomment\"],\n      [/\\/\\*/, \"comment\", \"@comment\"],\n      [/\\/\\/.*$/, \"comment\"]\n    ],\n    comment: [\n      [/[^\\/*]+/, \"comment\"],\n      // [/\\/\\*/, 'comment', '@push' ],    // nested comment not allowed :-(\n      // [/\\/\\*/,    'comment.invalid' ],    // this breaks block comments in the shape of /* //*/\n      [/\\*\\//, \"comment\", \"@pop\"],\n      [/[\\/*]/, \"comment\"]\n    ],\n    //Identical copy of comment above, except for the addition of .doc\n    doccomment: [\n      [/[^\\/*]+/, \"comment.doc\"],\n      // [/\\/\\*/, 'comment.doc', '@push' ],    // nested comment not allowed :-(\n      [/\\/\\*/, \"comment.doc.invalid\"],\n      [/\\*\\//, \"comment.doc\", \"@pop\"],\n      [/[\\/*]/, \"comment.doc\"]\n    ],\n    string: [\n      [/[^\\\\\"]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/\"/, \"string\", \"@pop\"]\n    ],\n    rawstring: [\n      [/[^\\`]/, \"string\"],\n      [/`/, \"string\", \"@pop\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/graphql/graphql.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/graphql/graphql.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/graphql/graphql.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"graphql\",\n  extensions: [\".graphql\", \".gql\"],\n  aliases: [\"GraphQL\", \"graphql\", \"gql\"],\n  mimetypes: [\"application/graphql\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/graphql/graphql\"], resolve, reject);\n      });\n    } else {\n      return import(\"./graphql.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/graphql/graphql.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/graphql/graphql.ts\nvar conf = {\n  comments: {\n    lineComment: \"#\"\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"\"\"', close: '\"\"\"', notIn: [\"string\", \"comment\"] },\n    { open: '\"', close: '\"', notIn: [\"string\", \"comment\"] }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"\"\"', close: '\"\"\"' },\n    { open: '\"', close: '\"' }\n  ],\n  folding: {\n    offSide: true\n  }\n};\nvar language = {\n  // Set defaultToken to invalid to see what you do not tokenize yet\n  defaultToken: \"invalid\",\n  tokenPostfix: \".gql\",\n  keywords: [\n    \"null\",\n    \"true\",\n    \"false\",\n    \"query\",\n    \"mutation\",\n    \"subscription\",\n    \"extend\",\n    \"schema\",\n    \"directive\",\n    \"scalar\",\n    \"type\",\n    \"interface\",\n    \"union\",\n    \"enum\",\n    \"input\",\n    \"implements\",\n    \"fragment\",\n    \"on\"\n  ],\n  typeKeywords: [\"Int\", \"Float\", \"String\", \"Boolean\", \"ID\"],\n  directiveLocations: [\n    \"SCHEMA\",\n    \"SCALAR\",\n    \"OBJECT\",\n    \"FIELD_DEFINITION\",\n    \"ARGUMENT_DEFINITION\",\n    \"INTERFACE\",\n    \"UNION\",\n    \"ENUM\",\n    \"ENUM_VALUE\",\n    \"INPUT_OBJECT\",\n    \"INPUT_FIELD_DEFINITION\",\n    \"QUERY\",\n    \"MUTATION\",\n    \"SUBSCRIPTION\",\n    \"FIELD\",\n    \"FRAGMENT_DEFINITION\",\n    \"FRAGMENT_SPREAD\",\n    \"INLINE_FRAGMENT\",\n    \"VARIABLE_DEFINITION\"\n  ],\n  operators: [\"=\", \"!\", \"?\", \":\", \"&\", \"|\"],\n  // we include these common regular expressions\n  symbols: /[=!?:&|]+/,\n  // https://facebook.github.io/graphql/draft/#sec-String-Value\n  escapes: /\\\\(?:[\"\\\\\\/bfnrt]|u[0-9A-Fa-f]{4})/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      // fields and argument names\n      [\n        /[a-z_][\\w$]*/,\n        {\n          cases: {\n            \"@keywords\": \"keyword\",\n            \"@default\": \"key.identifier\"\n          }\n        }\n      ],\n      // identify typed input variables\n      [\n        /[$][\\w$]*/,\n        {\n          cases: {\n            \"@keywords\": \"keyword\",\n            \"@default\": \"argument.identifier\"\n          }\n        }\n      ],\n      // to show class names nicely\n      [\n        /[A-Z][\\w\\$]*/,\n        {\n          cases: {\n            \"@typeKeywords\": \"keyword\",\n            \"@default\": \"type.identifier\"\n          }\n        }\n      ],\n      // whitespace\n      { include: \"@whitespace\" },\n      // delimiters and operators\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      [/@symbols/, { cases: { \"@operators\": \"operator\", \"@default\": \"\" } }],\n      // @ annotations.\n      // As an example, we emit a debugging log message on these tokens.\n      // Note: message are supressed during the first load -- change some lines to see them.\n      [/@\\s*[a-zA-Z_\\$][\\w\\$]*/, { token: \"annotation\", log: \"annotation token: $0\" }],\n      // numbers\n      [/\\d*\\.\\d+([eE][\\-+]?\\d+)?/, \"number.float\"],\n      [/0[xX][0-9a-fA-F]+/, \"number.hex\"],\n      [/\\d+/, \"number\"],\n      // delimiter: after number because of .\\d floats\n      [/[;,.]/, \"delimiter\"],\n      [/\"\"\"/, { token: \"string\", next: \"@mlstring\", nextEmbedded: \"markdown\" }],\n      // strings\n      [/\"([^\"\\\\]|\\\\.)*$/, \"string.invalid\"],\n      // non-teminated string\n      [/\"/, { token: \"string.quote\", bracket: \"@open\", next: \"@string\" }]\n    ],\n    mlstring: [\n      [/[^\"]+/, \"string\"],\n      ['\"\"\"', { token: \"string\", next: \"@pop\", nextEmbedded: \"@pop\" }]\n    ],\n    string: [\n      [/[^\\\\\"]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/\"/, { token: \"string.quote\", bracket: \"@close\", next: \"@pop\" }]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"\"],\n      [/#.*$/, \"comment\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/handlebars/handlebars.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/handlebars/handlebars.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/handlebars/handlebars.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"handlebars\",\n  extensions: [\".handlebars\", \".hbs\"],\n  aliases: [\"Handlebars\", \"handlebars\", \"hbs\"],\n  mimetypes: [\"text/x-handlebars-template\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/handlebars/handlebars\"], resolve, reject);\n      });\n    } else {\n      return import(\"./handlebars.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/handlebars/handlebars.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\n\n// src/fillers/monaco-editor-core.ts\nvar monaco_editor_core_exports = {};\n__reExport(monaco_editor_core_exports, monaco_editor_core_star);\nimport * as monaco_editor_core_star from \"../../editor/editor.api.js\";\n\n// src/basic-languages/handlebars/handlebars.ts\nvar EMPTY_ELEMENTS = [\n  \"area\",\n  \"base\",\n  \"br\",\n  \"col\",\n  \"embed\",\n  \"hr\",\n  \"img\",\n  \"input\",\n  \"keygen\",\n  \"link\",\n  \"menuitem\",\n  \"meta\",\n  \"param\",\n  \"source\",\n  \"track\",\n  \"wbr\"\n];\nvar conf = {\n  wordPattern: /(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\$\\^\\&\\*\\(\\)\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\s]+)/g,\n  comments: {\n    blockComment: [\"{{!--\", \"--}}\"]\n  },\n  brackets: [\n    [\"<!--\", \"-->\"],\n    [\"<\", \">\"],\n    [\"{{\", \"}}\"],\n    [\"{\", \"}\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  surroundingPairs: [\n    { open: \"<\", close: \">\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  onEnterRules: [\n    {\n      beforeText: new RegExp(\n        `<(?!(?:${EMPTY_ELEMENTS.join(\"|\")}))(\\\\w[\\\\w\\\\d]*)([^/>]*(?!/)>)[^<]*$`,\n        \"i\"\n      ),\n      afterText: /^<\\/(\\w[\\w\\d]*)\\s*>$/i,\n      action: {\n        indentAction: monaco_editor_core_exports.languages.IndentAction.IndentOutdent\n      }\n    },\n    {\n      beforeText: new RegExp(\n        `<(?!(?:${EMPTY_ELEMENTS.join(\"|\")}))(\\\\w[\\\\w\\\\d]*)([^/>]*(?!/)>)[^<]*$`,\n        \"i\"\n      ),\n      action: { indentAction: monaco_editor_core_exports.languages.IndentAction.Indent }\n    }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \"\",\n  // ignoreCase: true,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      [/\\{\\{!--/, \"comment.block.start.handlebars\", \"@commentBlock\"],\n      [/\\{\\{!/, \"comment.start.handlebars\", \"@comment\"],\n      [/\\{\\{/, { token: \"@rematch\", switchTo: \"@handlebarsInSimpleState.root\" }],\n      [/<!DOCTYPE/, \"metatag.html\", \"@doctype\"],\n      [/<!--/, \"comment.html\", \"@commentHtml\"],\n      [/(<)(\\w+)(\\/>)/, [\"delimiter.html\", \"tag.html\", \"delimiter.html\"]],\n      [/(<)(script)/, [\"delimiter.html\", { token: \"tag.html\", next: \"@script\" }]],\n      [/(<)(style)/, [\"delimiter.html\", { token: \"tag.html\", next: \"@style\" }]],\n      [/(<)([:\\w]+)/, [\"delimiter.html\", { token: \"tag.html\", next: \"@otherTag\" }]],\n      [/(<\\/)(\\w+)/, [\"delimiter.html\", { token: \"tag.html\", next: \"@otherTag\" }]],\n      [/</, \"delimiter.html\"],\n      [/\\{/, \"delimiter.html\"],\n      [/[^<{]+/]\n      // text\n    ],\n    doctype: [\n      [\n        /\\{\\{/,\n        {\n          token: \"@rematch\",\n          switchTo: \"@handlebarsInSimpleState.comment\"\n        }\n      ],\n      [/[^>]+/, \"metatag.content.html\"],\n      [/>/, \"metatag.html\", \"@pop\"]\n    ],\n    comment: [\n      [/\\}\\}/, \"comment.end.handlebars\", \"@pop\"],\n      [/./, \"comment.content.handlebars\"]\n    ],\n    commentBlock: [\n      [/--\\}\\}/, \"comment.block.end.handlebars\", \"@pop\"],\n      [/./, \"comment.content.handlebars\"]\n    ],\n    commentHtml: [\n      [\n        /\\{\\{/,\n        {\n          token: \"@rematch\",\n          switchTo: \"@handlebarsInSimpleState.comment\"\n        }\n      ],\n      [/-->/, \"comment.html\", \"@pop\"],\n      [/[^-]+/, \"comment.content.html\"],\n      [/./, \"comment.content.html\"]\n    ],\n    otherTag: [\n      [\n        /\\{\\{/,\n        {\n          token: \"@rematch\",\n          switchTo: \"@handlebarsInSimpleState.otherTag\"\n        }\n      ],\n      [/\\/?>/, \"delimiter.html\", \"@pop\"],\n      [/\"([^\"]*)\"/, \"attribute.value\"],\n      [/'([^']*)'/, \"attribute.value\"],\n      [/[\\w\\-]+/, \"attribute.name\"],\n      [/=/, \"delimiter\"],\n      [/[ \\t\\r\\n]+/]\n      // whitespace\n    ],\n    // -- BEGIN <script> tags handling\n    // After <script\n    script: [\n      [\n        /\\{\\{/,\n        {\n          token: \"@rematch\",\n          switchTo: \"@handlebarsInSimpleState.script\"\n        }\n      ],\n      [/type/, \"attribute.name\", \"@scriptAfterType\"],\n      [/\"([^\"]*)\"/, \"attribute.value\"],\n      [/'([^']*)'/, \"attribute.value\"],\n      [/[\\w\\-]+/, \"attribute.name\"],\n      [/=/, \"delimiter\"],\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@scriptEmbedded.text/javascript\",\n          nextEmbedded: \"text/javascript\"\n        }\n      ],\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [\n        /(<\\/)(script\\s*)(>)/,\n        [\"delimiter.html\", \"tag.html\", { token: \"delimiter.html\", next: \"@pop\" }]\n      ]\n    ],\n    // After <script ... type\n    scriptAfterType: [\n      [\n        /\\{\\{/,\n        {\n          token: \"@rematch\",\n          switchTo: \"@handlebarsInSimpleState.scriptAfterType\"\n        }\n      ],\n      [/=/, \"delimiter\", \"@scriptAfterTypeEquals\"],\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@scriptEmbedded.text/javascript\",\n          nextEmbedded: \"text/javascript\"\n        }\n      ],\n      // cover invalid e.g. <script type>\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/<\\/script\\s*>/, { token: \"@rematch\", next: \"@pop\" }]\n    ],\n    // After <script ... type =\n    scriptAfterTypeEquals: [\n      [\n        /\\{\\{/,\n        {\n          token: \"@rematch\",\n          switchTo: \"@handlebarsInSimpleState.scriptAfterTypeEquals\"\n        }\n      ],\n      [\n        /\"([^\"]*)\"/,\n        {\n          token: \"attribute.value\",\n          switchTo: \"@scriptWithCustomType.$1\"\n        }\n      ],\n      [\n        /'([^']*)'/,\n        {\n          token: \"attribute.value\",\n          switchTo: \"@scriptWithCustomType.$1\"\n        }\n      ],\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@scriptEmbedded.text/javascript\",\n          nextEmbedded: \"text/javascript\"\n        }\n      ],\n      // cover invalid e.g. <script type=>\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/<\\/script\\s*>/, { token: \"@rematch\", next: \"@pop\" }]\n    ],\n    // After <script ... type = $S2\n    scriptWithCustomType: [\n      [\n        /\\{\\{/,\n        {\n          token: \"@rematch\",\n          switchTo: \"@handlebarsInSimpleState.scriptWithCustomType.$S2\"\n        }\n      ],\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@scriptEmbedded.$S2\",\n          nextEmbedded: \"$S2\"\n        }\n      ],\n      [/\"([^\"]*)\"/, \"attribute.value\"],\n      [/'([^']*)'/, \"attribute.value\"],\n      [/[\\w\\-]+/, \"attribute.name\"],\n      [/=/, \"delimiter\"],\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/<\\/script\\s*>/, { token: \"@rematch\", next: \"@pop\" }]\n    ],\n    scriptEmbedded: [\n      [\n        /\\{\\{/,\n        {\n          token: \"@rematch\",\n          switchTo: \"@handlebarsInEmbeddedState.scriptEmbedded.$S2\",\n          nextEmbedded: \"@pop\"\n        }\n      ],\n      [/<\\/script/, { token: \"@rematch\", next: \"@pop\", nextEmbedded: \"@pop\" }]\n    ],\n    // -- END <script> tags handling\n    // -- BEGIN <style> tags handling\n    // After <style\n    style: [\n      [\n        /\\{\\{/,\n        {\n          token: \"@rematch\",\n          switchTo: \"@handlebarsInSimpleState.style\"\n        }\n      ],\n      [/type/, \"attribute.name\", \"@styleAfterType\"],\n      [/\"([^\"]*)\"/, \"attribute.value\"],\n      [/'([^']*)'/, \"attribute.value\"],\n      [/[\\w\\-]+/, \"attribute.name\"],\n      [/=/, \"delimiter\"],\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@styleEmbedded.text/css\",\n          nextEmbedded: \"text/css\"\n        }\n      ],\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [\n        /(<\\/)(style\\s*)(>)/,\n        [\"delimiter.html\", \"tag.html\", { token: \"delimiter.html\", next: \"@pop\" }]\n      ]\n    ],\n    // After <style ... type\n    styleAfterType: [\n      [\n        /\\{\\{/,\n        {\n          token: \"@rematch\",\n          switchTo: \"@handlebarsInSimpleState.styleAfterType\"\n        }\n      ],\n      [/=/, \"delimiter\", \"@styleAfterTypeEquals\"],\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@styleEmbedded.text/css\",\n          nextEmbedded: \"text/css\"\n        }\n      ],\n      // cover invalid e.g. <style type>\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/<\\/style\\s*>/, { token: \"@rematch\", next: \"@pop\" }]\n    ],\n    // After <style ... type =\n    styleAfterTypeEquals: [\n      [\n        /\\{\\{/,\n        {\n          token: \"@rematch\",\n          switchTo: \"@handlebarsInSimpleState.styleAfterTypeEquals\"\n        }\n      ],\n      [\n        /\"([^\"]*)\"/,\n        {\n          token: \"attribute.value\",\n          switchTo: \"@styleWithCustomType.$1\"\n        }\n      ],\n      [\n        /'([^']*)'/,\n        {\n          token: \"attribute.value\",\n          switchTo: \"@styleWithCustomType.$1\"\n        }\n      ],\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@styleEmbedded.text/css\",\n          nextEmbedded: \"text/css\"\n        }\n      ],\n      // cover invalid e.g. <style type=>\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/<\\/style\\s*>/, { token: \"@rematch\", next: \"@pop\" }]\n    ],\n    // After <style ... type = $S2\n    styleWithCustomType: [\n      [\n        /\\{\\{/,\n        {\n          token: \"@rematch\",\n          switchTo: \"@handlebarsInSimpleState.styleWithCustomType.$S2\"\n        }\n      ],\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@styleEmbedded.$S2\",\n          nextEmbedded: \"$S2\"\n        }\n      ],\n      [/\"([^\"]*)\"/, \"attribute.value\"],\n      [/'([^']*)'/, \"attribute.value\"],\n      [/[\\w\\-]+/, \"attribute.name\"],\n      [/=/, \"delimiter\"],\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/<\\/style\\s*>/, { token: \"@rematch\", next: \"@pop\" }]\n    ],\n    styleEmbedded: [\n      [\n        /\\{\\{/,\n        {\n          token: \"@rematch\",\n          switchTo: \"@handlebarsInEmbeddedState.styleEmbedded.$S2\",\n          nextEmbedded: \"@pop\"\n        }\n      ],\n      [/<\\/style/, { token: \"@rematch\", next: \"@pop\", nextEmbedded: \"@pop\" }]\n    ],\n    // -- END <style> tags handling\n    handlebarsInSimpleState: [\n      [/\\{\\{\\{?/, \"delimiter.handlebars\"],\n      [/\\}\\}\\}?/, { token: \"delimiter.handlebars\", switchTo: \"@$S2.$S3\" }],\n      { include: \"handlebarsRoot\" }\n    ],\n    handlebarsInEmbeddedState: [\n      [/\\{\\{\\{?/, \"delimiter.handlebars\"],\n      [\n        /\\}\\}\\}?/,\n        {\n          token: \"delimiter.handlebars\",\n          switchTo: \"@$S2.$S3\",\n          nextEmbedded: \"$S3\"\n        }\n      ],\n      { include: \"handlebarsRoot\" }\n    ],\n    handlebarsRoot: [\n      [/\"[^\"]*\"/, \"string.handlebars\"],\n      [/[#/][^\\s}]+/, \"keyword.helper.handlebars\"],\n      [/else\\b/, \"keyword.helper.handlebars\"],\n      [/[\\s]+/],\n      [/[^}]/, \"variable.parameter.handlebars\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/hcl/hcl.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/hcl/hcl.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/hcl/hcl.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"hcl\",\n  extensions: [\".tf\", \".tfvars\", \".hcl\"],\n  aliases: [\"Terraform\", \"tf\", \"HCL\", \"hcl\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/hcl/hcl\"], resolve, reject);\n      });\n    } else {\n      return import(\"./hcl.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/hcl/hcl.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/hcl/hcl.ts\nvar conf = {\n  comments: {\n    lineComment: \"#\",\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"', notIn: [\"string\"] }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".hcl\",\n  keywords: [\n    \"var\",\n    \"local\",\n    \"path\",\n    \"for_each\",\n    \"any\",\n    \"string\",\n    \"number\",\n    \"bool\",\n    \"true\",\n    \"false\",\n    \"null\",\n    \"if \",\n    \"else \",\n    \"endif \",\n    \"for \",\n    \"in\",\n    \"endfor\"\n  ],\n  operators: [\n    \"=\",\n    \">=\",\n    \"<=\",\n    \"==\",\n    \"!=\",\n    \"+\",\n    \"-\",\n    \"*\",\n    \"/\",\n    \"%\",\n    \"&&\",\n    \"||\",\n    \"!\",\n    \"<\",\n    \">\",\n    \"?\",\n    \"...\",\n    \":\"\n  ],\n  symbols: /[=><!~?:&|+\\-*\\/\\^%]+/,\n  escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n  terraformFunctions: /(abs|ceil|floor|log|max|min|pow|signum|chomp|format|formatlist|indent|join|lower|regex|regexall|replace|split|strrev|substr|title|trimspace|upper|chunklist|coalesce|coalescelist|compact|concat|contains|distinct|element|flatten|index|keys|length|list|lookup|map|matchkeys|merge|range|reverse|setintersection|setproduct|setunion|slice|sort|transpose|values|zipmap|base64decode|base64encode|base64gzip|csvdecode|jsondecode|jsonencode|urlencode|yamldecode|yamlencode|abspath|dirname|pathexpand|basename|file|fileexists|fileset|filebase64|templatefile|formatdate|timeadd|timestamp|base64sha256|base64sha512|bcrypt|filebase64sha256|filebase64sha512|filemd5|filemd1|filesha256|filesha512|md5|rsadecrypt|sha1|sha256|sha512|uuid|uuidv5|cidrhost|cidrnetmask|cidrsubnet|tobool|tolist|tomap|tonumber|toset|tostring)/,\n  terraformMainBlocks: /(module|data|terraform|resource|provider|variable|output|locals)/,\n  tokenizer: {\n    root: [\n      // highlight main blocks\n      [\n        /^@terraformMainBlocks([ \\t]*)([\\w-]+|\"[\\w-]+\"|)([ \\t]*)([\\w-]+|\"[\\w-]+\"|)([ \\t]*)(\\{)/,\n        [\"type\", \"\", \"string\", \"\", \"string\", \"\", \"@brackets\"]\n      ],\n      // highlight all the remaining blocks\n      [\n        /(\\w+[ \\t]+)([ \\t]*)([\\w-]+|\"[\\w-]+\"|)([ \\t]*)([\\w-]+|\"[\\w-]+\"|)([ \\t]*)(\\{)/,\n        [\"identifier\", \"\", \"string\", \"\", \"string\", \"\", \"@brackets\"]\n      ],\n      // highlight block\n      [\n        /(\\w+[ \\t]+)([ \\t]*)([\\w-]+|\"[\\w-]+\"|)([ \\t]*)([\\w-]+|\"[\\w-]+\"|)(=)(\\{)/,\n        [\"identifier\", \"\", \"string\", \"\", \"operator\", \"\", \"@brackets\"]\n      ],\n      // terraform general highlight - shared with expressions\n      { include: \"@terraform\" }\n    ],\n    terraform: [\n      // highlight terraform functions\n      [/@terraformFunctions(\\()/, [\"type\", \"@brackets\"]],\n      // all other words are variables or keywords\n      [\n        /[a-zA-Z_]\\w*-*/,\n        // must work with variables such as foo-bar and also with negative numbers\n        {\n          cases: {\n            \"@keywords\": { token: \"keyword.$0\" },\n            \"@default\": \"variable\"\n          }\n        }\n      ],\n      { include: \"@whitespace\" },\n      { include: \"@heredoc\" },\n      // delimiters and operators\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      [/[<>](?!@symbols)/, \"@brackets\"],\n      [\n        /@symbols/,\n        {\n          cases: {\n            \"@operators\": \"operator\",\n            \"@default\": \"\"\n          }\n        }\n      ],\n      // numbers\n      [/\\d*\\d+[eE]([\\-+]?\\d+)?/, \"number.float\"],\n      [/\\d*\\.\\d+([eE][\\-+]?\\d+)?/, \"number.float\"],\n      [/\\d[\\d']*/, \"number\"],\n      [/\\d/, \"number\"],\n      [/[;,.]/, \"delimiter\"],\n      // delimiter: after number because of .\\d floats\n      // strings\n      [/\"/, \"string\", \"@string\"],\n      // this will include expressions\n      [/'/, \"invalid\"]\n    ],\n    heredoc: [\n      [/<<[-]*\\s*[\"]?([\\w\\-]+)[\"]?/, { token: \"string.heredoc.delimiter\", next: \"@heredocBody.$1\" }]\n    ],\n    heredocBody: [\n      [\n        /([\\w\\-]+)$/,\n        {\n          cases: {\n            \"$1==$S2\": [\n              {\n                token: \"string.heredoc.delimiter\",\n                next: \"@popall\"\n              }\n            ],\n            \"@default\": \"string.heredoc\"\n          }\n        }\n      ],\n      [/./, \"string.heredoc\"]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"\"],\n      [/\\/\\*/, \"comment\", \"@comment\"],\n      [/\\/\\/.*$/, \"comment\"],\n      [/#.*$/, \"comment\"]\n    ],\n    comment: [\n      [/[^\\/*]+/, \"comment\"],\n      [/\\*\\//, \"comment\", \"@pop\"],\n      [/[\\/*]/, \"comment\"]\n    ],\n    string: [\n      [/\\$\\{/, { token: \"delimiter\", next: \"@stringExpression\" }],\n      [/[^\\\\\"\\$]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/\"/, \"string\", \"@popall\"]\n    ],\n    stringInsideExpression: [\n      [/[^\\\\\"]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/\"/, \"string\", \"@pop\"]\n    ],\n    stringExpression: [\n      [/\\}/, { token: \"delimiter\", next: \"@pop\" }],\n      [/\"/, \"string\", \"@stringInsideExpression\"],\n      { include: \"@terraform\" }\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/html/html.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/html/html.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/html/html.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"html\",\n  extensions: [\".html\", \".htm\", \".shtml\", \".xhtml\", \".mdoc\", \".jsp\", \".asp\", \".aspx\", \".jshtm\"],\n  aliases: [\"HTML\", \"htm\", \"html\", \"xhtml\"],\n  mimetypes: [\"text/html\", \"text/x-jshtm\", \"text/template\", \"text/ng-template\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/html/html\"], resolve, reject);\n      });\n    } else {\n      return import(\"./html.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/html/html.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\n\n// src/fillers/monaco-editor-core.ts\nvar monaco_editor_core_exports = {};\n__reExport(monaco_editor_core_exports, monaco_editor_core_star);\nimport * as monaco_editor_core_star from \"../../editor/editor.api.js\";\n\n// src/basic-languages/html/html.ts\nvar EMPTY_ELEMENTS = [\n  \"area\",\n  \"base\",\n  \"br\",\n  \"col\",\n  \"embed\",\n  \"hr\",\n  \"img\",\n  \"input\",\n  \"keygen\",\n  \"link\",\n  \"menuitem\",\n  \"meta\",\n  \"param\",\n  \"source\",\n  \"track\",\n  \"wbr\"\n];\nvar conf = {\n  wordPattern: /(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\$\\^\\&\\*\\(\\)\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\s]+)/g,\n  comments: {\n    blockComment: [\"<!--\", \"-->\"]\n  },\n  brackets: [\n    [\"<!--\", \"-->\"],\n    [\"<\", \">\"],\n    [\"{\", \"}\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  surroundingPairs: [\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" },\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: \"<\", close: \">\" }\n  ],\n  onEnterRules: [\n    {\n      beforeText: new RegExp(\n        `<(?!(?:${EMPTY_ELEMENTS.join(\"|\")}))([_:\\\\w][_:\\\\w-.\\\\d]*)([^/>]*(?!/)>)[^<]*$`,\n        \"i\"\n      ),\n      afterText: /^<\\/([_:\\w][_:\\w-.\\d]*)\\s*>$/i,\n      action: {\n        indentAction: monaco_editor_core_exports.languages.IndentAction.IndentOutdent\n      }\n    },\n    {\n      beforeText: new RegExp(\n        `<(?!(?:${EMPTY_ELEMENTS.join(\"|\")}))(\\\\w[\\\\w\\\\d]*)([^/>]*(?!/)>)[^<]*$`,\n        \"i\"\n      ),\n      action: { indentAction: monaco_editor_core_exports.languages.IndentAction.Indent }\n    }\n  ],\n  folding: {\n    markers: {\n      start: new RegExp(\"^\\\\s*<!--\\\\s*#region\\\\b.*-->\"),\n      end: new RegExp(\"^\\\\s*<!--\\\\s*#endregion\\\\b.*-->\")\n    }\n  }\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".html\",\n  ignoreCase: true,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      [/<!DOCTYPE/, \"metatag\", \"@doctype\"],\n      [/<!--/, \"comment\", \"@comment\"],\n      [/(<)((?:[\\w\\-]+:)?[\\w\\-]+)(\\s*)(\\/>)/, [\"delimiter\", \"tag\", \"\", \"delimiter\"]],\n      [/(<)(script)/, [\"delimiter\", { token: \"tag\", next: \"@script\" }]],\n      [/(<)(style)/, [\"delimiter\", { token: \"tag\", next: \"@style\" }]],\n      [/(<)((?:[\\w\\-]+:)?[\\w\\-]+)/, [\"delimiter\", { token: \"tag\", next: \"@otherTag\" }]],\n      [/(<\\/)((?:[\\w\\-]+:)?[\\w\\-]+)/, [\"delimiter\", { token: \"tag\", next: \"@otherTag\" }]],\n      [/</, \"delimiter\"],\n      [/[^<]+/]\n      // text\n    ],\n    doctype: [\n      [/[^>]+/, \"metatag.content\"],\n      [/>/, \"metatag\", \"@pop\"]\n    ],\n    comment: [\n      [/-->/, \"comment\", \"@pop\"],\n      [/[^-]+/, \"comment.content\"],\n      [/./, \"comment.content\"]\n    ],\n    otherTag: [\n      [/\\/?>/, \"delimiter\", \"@pop\"],\n      [/\"([^\"]*)\"/, \"attribute.value\"],\n      [/'([^']*)'/, \"attribute.value\"],\n      [/[\\w\\-]+/, \"attribute.name\"],\n      [/=/, \"delimiter\"],\n      [/[ \\t\\r\\n]+/]\n      // whitespace\n    ],\n    // -- BEGIN <script> tags handling\n    // After <script\n    script: [\n      [/type/, \"attribute.name\", \"@scriptAfterType\"],\n      [/\"([^\"]*)\"/, \"attribute.value\"],\n      [/'([^']*)'/, \"attribute.value\"],\n      [/[\\w\\-]+/, \"attribute.name\"],\n      [/=/, \"delimiter\"],\n      [\n        />/,\n        {\n          token: \"delimiter\",\n          next: \"@scriptEmbedded\",\n          nextEmbedded: \"text/javascript\"\n        }\n      ],\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/(<\\/)(script\\s*)(>)/, [\"delimiter\", \"tag\", { token: \"delimiter\", next: \"@pop\" }]]\n    ],\n    // After <script ... type\n    scriptAfterType: [\n      [/=/, \"delimiter\", \"@scriptAfterTypeEquals\"],\n      [\n        />/,\n        {\n          token: \"delimiter\",\n          next: \"@scriptEmbedded\",\n          nextEmbedded: \"text/javascript\"\n        }\n      ],\n      // cover invalid e.g. <script type>\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/<\\/script\\s*>/, { token: \"@rematch\", next: \"@pop\" }]\n    ],\n    // After <script ... type =\n    scriptAfterTypeEquals: [\n      [\n        /\"module\"/,\n        {\n          token: \"attribute.value\",\n          switchTo: \"@scriptWithCustomType.text/javascript\"\n        }\n      ],\n      [\n        /'module'/,\n        {\n          token: \"attribute.value\",\n          switchTo: \"@scriptWithCustomType.text/javascript\"\n        }\n      ],\n      [\n        /\"([^\"]*)\"/,\n        {\n          token: \"attribute.value\",\n          switchTo: \"@scriptWithCustomType.$1\"\n        }\n      ],\n      [\n        /'([^']*)'/,\n        {\n          token: \"attribute.value\",\n          switchTo: \"@scriptWithCustomType.$1\"\n        }\n      ],\n      [\n        />/,\n        {\n          token: \"delimiter\",\n          next: \"@scriptEmbedded\",\n          nextEmbedded: \"text/javascript\"\n        }\n      ],\n      // cover invalid e.g. <script type=>\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/<\\/script\\s*>/, { token: \"@rematch\", next: \"@pop\" }]\n    ],\n    // After <script ... type = $S2\n    scriptWithCustomType: [\n      [\n        />/,\n        {\n          token: \"delimiter\",\n          next: \"@scriptEmbedded.$S2\",\n          nextEmbedded: \"$S2\"\n        }\n      ],\n      [/\"([^\"]*)\"/, \"attribute.value\"],\n      [/'([^']*)'/, \"attribute.value\"],\n      [/[\\w\\-]+/, \"attribute.name\"],\n      [/=/, \"delimiter\"],\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/<\\/script\\s*>/, { token: \"@rematch\", next: \"@pop\" }]\n    ],\n    scriptEmbedded: [\n      [/<\\/script/, { token: \"@rematch\", next: \"@pop\", nextEmbedded: \"@pop\" }],\n      [/[^<]+/, \"\"]\n    ],\n    // -- END <script> tags handling\n    // -- BEGIN <style> tags handling\n    // After <style\n    style: [\n      [/type/, \"attribute.name\", \"@styleAfterType\"],\n      [/\"([^\"]*)\"/, \"attribute.value\"],\n      [/'([^']*)'/, \"attribute.value\"],\n      [/[\\w\\-]+/, \"attribute.name\"],\n      [/=/, \"delimiter\"],\n      [\n        />/,\n        {\n          token: \"delimiter\",\n          next: \"@styleEmbedded\",\n          nextEmbedded: \"text/css\"\n        }\n      ],\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/(<\\/)(style\\s*)(>)/, [\"delimiter\", \"tag\", { token: \"delimiter\", next: \"@pop\" }]]\n    ],\n    // After <style ... type\n    styleAfterType: [\n      [/=/, \"delimiter\", \"@styleAfterTypeEquals\"],\n      [\n        />/,\n        {\n          token: \"delimiter\",\n          next: \"@styleEmbedded\",\n          nextEmbedded: \"text/css\"\n        }\n      ],\n      // cover invalid e.g. <style type>\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/<\\/style\\s*>/, { token: \"@rematch\", next: \"@pop\" }]\n    ],\n    // After <style ... type =\n    styleAfterTypeEquals: [\n      [\n        /\"([^\"]*)\"/,\n        {\n          token: \"attribute.value\",\n          switchTo: \"@styleWithCustomType.$1\"\n        }\n      ],\n      [\n        /'([^']*)'/,\n        {\n          token: \"attribute.value\",\n          switchTo: \"@styleWithCustomType.$1\"\n        }\n      ],\n      [\n        />/,\n        {\n          token: \"delimiter\",\n          next: \"@styleEmbedded\",\n          nextEmbedded: \"text/css\"\n        }\n      ],\n      // cover invalid e.g. <style type=>\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/<\\/style\\s*>/, { token: \"@rematch\", next: \"@pop\" }]\n    ],\n    // After <style ... type = $S2\n    styleWithCustomType: [\n      [\n        />/,\n        {\n          token: \"delimiter\",\n          next: \"@styleEmbedded.$S2\",\n          nextEmbedded: \"$S2\"\n        }\n      ],\n      [/\"([^\"]*)\"/, \"attribute.value\"],\n      [/'([^']*)'/, \"attribute.value\"],\n      [/[\\w\\-]+/, \"attribute.name\"],\n      [/=/, \"delimiter\"],\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/<\\/style\\s*>/, { token: \"@rematch\", next: \"@pop\" }]\n    ],\n    styleEmbedded: [\n      [/<\\/style/, { token: \"@rematch\", next: \"@pop\", nextEmbedded: \"@pop\" }],\n      [/[^<]+/, \"\"]\n    ]\n    // -- END <style> tags handling\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/ini/ini.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/ini/ini.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/ini/ini.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"ini\",\n  extensions: [\".ini\", \".properties\", \".gitconfig\"],\n  filenames: [\"config\", \".gitattributes\", \".gitconfig\", \".editorconfig\"],\n  aliases: [\"Ini\", \"ini\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/ini/ini\"], resolve, reject);\n      });\n    } else {\n      return import(\"./ini.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/ini/ini.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/ini/ini.ts\nvar conf = {\n  comments: {\n    lineComment: \"#\"\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".ini\",\n  // we include these common regular expressions\n  escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      // sections\n      [/^\\[[^\\]]*\\]/, \"metatag\"],\n      // keys\n      [/(^\\w+)(\\s*)(\\=)/, [\"key\", \"\", \"delimiter\"]],\n      // whitespace\n      { include: \"@whitespace\" },\n      // numbers\n      [/\\d+/, \"number\"],\n      // strings: recover on non-terminated strings\n      [/\"([^\"\\\\]|\\\\.)*$/, \"string.invalid\"],\n      // non-teminated string\n      [/'([^'\\\\]|\\\\.)*$/, \"string.invalid\"],\n      // non-teminated string\n      [/\"/, \"string\", '@string.\"'],\n      [/'/, \"string\", \"@string.'\"]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"\"],\n      [/^\\s*[#;].*$/, \"comment\"]\n    ],\n    string: [\n      [/[^\\\\\"']+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [\n        /[\"']/,\n        {\n          cases: {\n            \"$#==$S2\": { token: \"string\", next: \"@pop\" },\n            \"@default\": \"string\"\n          }\n        }\n      ]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/java/java.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/java/java.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/java/java.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"java\",\n  extensions: [\".java\", \".jav\"],\n  aliases: [\"Java\", \"java\"],\n  mimetypes: [\"text/x-java-source\", \"text/x-java\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/java/java\"], resolve, reject);\n      });\n    } else {\n      return import(\"./java.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/java/java.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/java/java.ts\nvar conf = {\n  // the default separators except `@$`\n  wordPattern: /(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,\n  comments: {\n    lineComment: \"//\",\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" },\n    { open: \"<\", close: \">\" }\n  ],\n  folding: {\n    markers: {\n      start: new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?region\\\\b)|(?:<editor-fold\\\\b))\"),\n      end: new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?endregion\\\\b)|(?:</editor-fold>))\")\n    }\n  }\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".java\",\n  keywords: [\n    \"abstract\",\n    \"continue\",\n    \"for\",\n    \"new\",\n    \"switch\",\n    \"assert\",\n    \"default\",\n    \"goto\",\n    \"package\",\n    \"synchronized\",\n    \"boolean\",\n    \"do\",\n    \"if\",\n    \"private\",\n    \"this\",\n    \"break\",\n    \"double\",\n    \"implements\",\n    \"protected\",\n    \"throw\",\n    \"byte\",\n    \"else\",\n    \"import\",\n    \"public\",\n    \"throws\",\n    \"case\",\n    \"enum\",\n    \"instanceof\",\n    \"return\",\n    \"transient\",\n    \"catch\",\n    \"extends\",\n    \"int\",\n    \"short\",\n    \"try\",\n    \"char\",\n    \"final\",\n    \"interface\",\n    \"static\",\n    \"void\",\n    \"class\",\n    \"finally\",\n    \"long\",\n    \"strictfp\",\n    \"volatile\",\n    \"const\",\n    \"float\",\n    \"native\",\n    \"super\",\n    \"while\",\n    \"true\",\n    \"false\",\n    \"yield\",\n    \"record\",\n    \"sealed\",\n    \"non-sealed\",\n    \"permits\"\n  ],\n  operators: [\n    \"=\",\n    \">\",\n    \"<\",\n    \"!\",\n    \"~\",\n    \"?\",\n    \":\",\n    \"==\",\n    \"<=\",\n    \">=\",\n    \"!=\",\n    \"&&\",\n    \"||\",\n    \"++\",\n    \"--\",\n    \"+\",\n    \"-\",\n    \"*\",\n    \"/\",\n    \"&\",\n    \"|\",\n    \"^\",\n    \"%\",\n    \"<<\",\n    \">>\",\n    \">>>\",\n    \"+=\",\n    \"-=\",\n    \"*=\",\n    \"/=\",\n    \"&=\",\n    \"|=\",\n    \"^=\",\n    \"%=\",\n    \"<<=\",\n    \">>=\",\n    \">>>=\"\n  ],\n  // we include these common regular expressions\n  symbols: /[=><!~?:&|+\\-*\\/\\^%]+/,\n  escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n  digits: /\\d+(_+\\d+)*/,\n  octaldigits: /[0-7]+(_+[0-7]+)*/,\n  binarydigits: /[0-1]+(_+[0-1]+)*/,\n  hexdigits: /[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      // Special keyword with a dash\n      [\"non-sealed\", \"keyword.non-sealed\"],\n      // identifiers and keywords\n      [\n        /[a-zA-Z_$][\\w$]*/,\n        {\n          cases: {\n            \"@keywords\": { token: \"keyword.$0\" },\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      // whitespace\n      { include: \"@whitespace\" },\n      // delimiters and operators\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      [/[<>](?!@symbols)/, \"@brackets\"],\n      [\n        /@symbols/,\n        {\n          cases: {\n            \"@operators\": \"delimiter\",\n            \"@default\": \"\"\n          }\n        }\n      ],\n      // @ annotations.\n      [/@\\s*[a-zA-Z_\\$][\\w\\$]*/, \"annotation\"],\n      // numbers\n      [/(@digits)[eE]([\\-+]?(@digits))?[fFdD]?/, \"number.float\"],\n      [/(@digits)\\.(@digits)([eE][\\-+]?(@digits))?[fFdD]?/, \"number.float\"],\n      [/0[xX](@hexdigits)[Ll]?/, \"number.hex\"],\n      [/0(@octaldigits)[Ll]?/, \"number.octal\"],\n      [/0[bB](@binarydigits)[Ll]?/, \"number.binary\"],\n      [/(@digits)[fFdD]/, \"number.float\"],\n      [/(@digits)[lL]?/, \"number\"],\n      // delimiter: after number because of .\\d floats\n      [/[;,.]/, \"delimiter\"],\n      // strings\n      [/\"([^\"\\\\]|\\\\.)*$/, \"string.invalid\"],\n      // non-teminated string\n      [/\"\"\"/, \"string\", \"@multistring\"],\n      [/\"/, \"string\", \"@string\"],\n      // characters\n      [/'[^\\\\']'/, \"string\"],\n      [/(')(@escapes)(')/, [\"string\", \"string.escape\", \"string\"]],\n      [/'/, \"string.invalid\"]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"\"],\n      [/\\/\\*\\*(?!\\/)/, \"comment.doc\", \"@javadoc\"],\n      [/\\/\\*/, \"comment\", \"@comment\"],\n      [/\\/\\/.*$/, \"comment\"]\n    ],\n    comment: [\n      [/[^\\/*]+/, \"comment\"],\n      // [/\\/\\*/, 'comment', '@push' ],    // nested comment not allowed :-(\n      // [/\\/\\*/,    'comment.invalid' ],    // this breaks block comments in the shape of /* //*/\n      [/\\*\\//, \"comment\", \"@pop\"],\n      [/[\\/*]/, \"comment\"]\n    ],\n    //Identical copy of comment above, except for the addition of .doc\n    javadoc: [\n      [/[^\\/*]+/, \"comment.doc\"],\n      // [/\\/\\*/, 'comment.doc', '@push' ],    // nested comment not allowed :-(\n      [/\\/\\*/, \"comment.doc.invalid\"],\n      [/\\*\\//, \"comment.doc\", \"@pop\"],\n      [/[\\/*]/, \"comment.doc\"]\n    ],\n    string: [\n      [/[^\\\\\"]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/\"/, \"string\", \"@pop\"]\n    ],\n    multistring: [\n      [/[^\\\\\"]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/\"\"\"/, \"string\", \"@pop\"],\n      [/./, \"string\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/javascript/javascript.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/javascript/javascript.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/javascript/javascript.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"javascript\",\n  extensions: [\".js\", \".es6\", \".jsx\", \".mjs\", \".cjs\"],\n  firstLine: \"^#!.*\\\\bnode\",\n  filenames: [\"jakefile\"],\n  aliases: [\"JavaScript\", \"javascript\", \"js\"],\n  mimetypes: [\"text/javascript\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/javascript/javascript\"], resolve, reject);\n      });\n    } else {\n      return import(\"./javascript.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/javascript/javascript.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/javascript/javascript.ts\nimport { conf as tsConf, language as tsLanguage } from \"../typescript/typescript.js\";\nvar conf = tsConf;\nvar language = {\n  // Set defaultToken to invalid to see what you do not tokenize yet\n  defaultToken: \"invalid\",\n  tokenPostfix: \".js\",\n  keywords: [\n    \"break\",\n    \"case\",\n    \"catch\",\n    \"class\",\n    \"continue\",\n    \"const\",\n    \"constructor\",\n    \"debugger\",\n    \"default\",\n    \"delete\",\n    \"do\",\n    \"else\",\n    \"export\",\n    \"extends\",\n    \"false\",\n    \"finally\",\n    \"for\",\n    \"from\",\n    \"function\",\n    \"get\",\n    \"if\",\n    \"import\",\n    \"in\",\n    \"instanceof\",\n    \"let\",\n    \"new\",\n    \"null\",\n    \"return\",\n    \"set\",\n    \"static\",\n    \"super\",\n    \"switch\",\n    \"symbol\",\n    \"this\",\n    \"throw\",\n    \"true\",\n    \"try\",\n    \"typeof\",\n    \"undefined\",\n    \"var\",\n    \"void\",\n    \"while\",\n    \"with\",\n    \"yield\",\n    \"async\",\n    \"await\",\n    \"of\"\n  ],\n  typeKeywords: [],\n  operators: tsLanguage.operators,\n  symbols: tsLanguage.symbols,\n  escapes: tsLanguage.escapes,\n  digits: tsLanguage.digits,\n  octaldigits: tsLanguage.octaldigits,\n  binarydigits: tsLanguage.binarydigits,\n  hexdigits: tsLanguage.hexdigits,\n  regexpctl: tsLanguage.regexpctl,\n  regexpesc: tsLanguage.regexpesc,\n  tokenizer: tsLanguage.tokenizer\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/julia/julia.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/julia/julia.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/julia/julia.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"julia\",\n  extensions: [\".jl\"],\n  aliases: [\"julia\", \"Julia\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/julia/julia\"], resolve, reject);\n      });\n    } else {\n      return import(\"./julia.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/julia/julia.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/julia/julia.ts\nvar conf = {\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ]\n};\nvar language = {\n  tokenPostfix: \".julia\",\n  keywords: [\n    \"begin\",\n    \"while\",\n    \"if\",\n    \"for\",\n    \"try\",\n    \"return\",\n    \"break\",\n    \"continue\",\n    \"function\",\n    \"macro\",\n    \"quote\",\n    \"let\",\n    \"local\",\n    \"global\",\n    \"const\",\n    \"do\",\n    \"struct\",\n    \"module\",\n    \"baremodule\",\n    \"using\",\n    \"import\",\n    \"export\",\n    \"end\",\n    \"else\",\n    \"elseif\",\n    \"catch\",\n    \"finally\",\n    \"mutable\",\n    \"primitive\",\n    \"abstract\",\n    \"type\",\n    \"in\",\n    \"isa\",\n    \"where\",\n    \"new\"\n  ],\n  types: [\n    \"LinRange\",\n    \"LineNumberNode\",\n    \"LinearIndices\",\n    \"LoadError\",\n    \"MIME\",\n    \"Matrix\",\n    \"Method\",\n    \"MethodError\",\n    \"Missing\",\n    \"MissingException\",\n    \"Module\",\n    \"NTuple\",\n    \"NamedTuple\",\n    \"Nothing\",\n    \"Number\",\n    \"OrdinalRange\",\n    \"OutOfMemoryError\",\n    \"OverflowError\",\n    \"Pair\",\n    \"PartialQuickSort\",\n    \"PermutedDimsArray\",\n    \"Pipe\",\n    \"Ptr\",\n    \"QuoteNode\",\n    \"Rational\",\n    \"RawFD\",\n    \"ReadOnlyMemoryError\",\n    \"Real\",\n    \"ReentrantLock\",\n    \"Ref\",\n    \"Regex\",\n    \"RegexMatch\",\n    \"RoundingMode\",\n    \"SegmentationFault\",\n    \"Set\",\n    \"Signed\",\n    \"Some\",\n    \"StackOverflowError\",\n    \"StepRange\",\n    \"StepRangeLen\",\n    \"StridedArray\",\n    \"StridedMatrix\",\n    \"StridedVecOrMat\",\n    \"StridedVector\",\n    \"String\",\n    \"StringIndexError\",\n    \"SubArray\",\n    \"SubString\",\n    \"SubstitutionString\",\n    \"Symbol\",\n    \"SystemError\",\n    \"Task\",\n    \"Text\",\n    \"TextDisplay\",\n    \"Timer\",\n    \"Tuple\",\n    \"Type\",\n    \"TypeError\",\n    \"TypeVar\",\n    \"UInt\",\n    \"UInt128\",\n    \"UInt16\",\n    \"UInt32\",\n    \"UInt64\",\n    \"UInt8\",\n    \"UndefInitializer\",\n    \"AbstractArray\",\n    \"UndefKeywordError\",\n    \"AbstractChannel\",\n    \"UndefRefError\",\n    \"AbstractChar\",\n    \"UndefVarError\",\n    \"AbstractDict\",\n    \"Union\",\n    \"AbstractDisplay\",\n    \"UnionAll\",\n    \"AbstractFloat\",\n    \"UnitRange\",\n    \"AbstractIrrational\",\n    \"Unsigned\",\n    \"AbstractMatrix\",\n    \"AbstractRange\",\n    \"Val\",\n    \"AbstractSet\",\n    \"Vararg\",\n    \"AbstractString\",\n    \"VecElement\",\n    \"AbstractUnitRange\",\n    \"VecOrMat\",\n    \"AbstractVecOrMat\",\n    \"Vector\",\n    \"AbstractVector\",\n    \"VersionNumber\",\n    \"Any\",\n    \"WeakKeyDict\",\n    \"ArgumentError\",\n    \"WeakRef\",\n    \"Array\",\n    \"AssertionError\",\n    \"BigFloat\",\n    \"BigInt\",\n    \"BitArray\",\n    \"BitMatrix\",\n    \"BitSet\",\n    \"BitVector\",\n    \"Bool\",\n    \"BoundsError\",\n    \"CapturedException\",\n    \"CartesianIndex\",\n    \"CartesianIndices\",\n    \"Cchar\",\n    \"Cdouble\",\n    \"Cfloat\",\n    \"Channel\",\n    \"Char\",\n    \"Cint\",\n    \"Cintmax_t\",\n    \"Clong\",\n    \"Clonglong\",\n    \"Cmd\",\n    \"Colon\",\n    \"Complex\",\n    \"ComplexF16\",\n    \"ComplexF32\",\n    \"ComplexF64\",\n    \"CompositeException\",\n    \"Condition\",\n    \"Cptrdiff_t\",\n    \"Cshort\",\n    \"Csize_t\",\n    \"Cssize_t\",\n    \"Cstring\",\n    \"Cuchar\",\n    \"Cuint\",\n    \"Cuintmax_t\",\n    \"Culong\",\n    \"Culonglong\",\n    \"Cushort\",\n    \"Cvoid\",\n    \"Cwchar_t\",\n    \"Cwstring\",\n    \"DataType\",\n    \"DenseArray\",\n    \"DenseMatrix\",\n    \"DenseVecOrMat\",\n    \"DenseVector\",\n    \"Dict\",\n    \"DimensionMismatch\",\n    \"Dims\",\n    \"DivideError\",\n    \"DomainError\",\n    \"EOFError\",\n    \"Enum\",\n    \"ErrorException\",\n    \"Exception\",\n    \"ExponentialBackOff\",\n    \"Expr\",\n    \"Float16\",\n    \"Float32\",\n    \"Float64\",\n    \"Function\",\n    \"GlobalRef\",\n    \"HTML\",\n    \"IO\",\n    \"IOBuffer\",\n    \"IOContext\",\n    \"IOStream\",\n    \"IdDict\",\n    \"IndexCartesian\",\n    \"IndexLinear\",\n    \"IndexStyle\",\n    \"InexactError\",\n    \"InitError\",\n    \"Int\",\n    \"Int128\",\n    \"Int16\",\n    \"Int32\",\n    \"Int64\",\n    \"Int8\",\n    \"Integer\",\n    \"InterruptException\",\n    \"InvalidStateException\",\n    \"Irrational\",\n    \"KeyError\"\n  ],\n  keywordops: [\"<:\", \">:\", \":\", \"=>\", \"...\", \".\", \"->\", \"?\"],\n  allops: /[^\\w\\d\\s()\\[\\]{}\"'#]+/,\n  constants: [\n    \"true\",\n    \"false\",\n    \"nothing\",\n    \"missing\",\n    \"undef\",\n    \"Inf\",\n    \"pi\",\n    \"NaN\",\n    \"\\u03C0\",\n    \"\\u212F\",\n    \"ans\",\n    \"PROGRAM_FILE\",\n    \"ARGS\",\n    \"C_NULL\",\n    \"VERSION\",\n    \"DEPOT_PATH\",\n    \"LOAD_PATH\"\n  ],\n  operators: [\n    \"!\",\n    \"!=\",\n    \"!==\",\n    \"%\",\n    \"&\",\n    \"*\",\n    \"+\",\n    \"-\",\n    \"/\",\n    \"//\",\n    \"<\",\n    \"<<\",\n    \"<=\",\n    \"==\",\n    \"===\",\n    \"=>\",\n    \">\",\n    \">=\",\n    \">>\",\n    \">>>\",\n    \"\\\\\",\n    \"^\",\n    \"|\",\n    \"|>\",\n    \"~\",\n    \"\\xF7\",\n    \"\\u2208\",\n    \"\\u2209\",\n    \"\\u220B\",\n    \"\\u220C\",\n    \"\\u2218\",\n    \"\\u221A\",\n    \"\\u221B\",\n    \"\\u2229\",\n    \"\\u222A\",\n    \"\\u2248\",\n    \"\\u2249\",\n    \"\\u2260\",\n    \"\\u2261\",\n    \"\\u2262\",\n    \"\\u2264\",\n    \"\\u2265\",\n    \"\\u2286\",\n    \"\\u2287\",\n    \"\\u2288\",\n    \"\\u2289\",\n    \"\\u228A\",\n    \"\\u228B\",\n    \"\\u22BB\"\n  ],\n  brackets: [\n    { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" },\n    { open: \"{\", close: \"}\", token: \"delimiter.curly\" },\n    { open: \"[\", close: \"]\", token: \"delimiter.square\" }\n  ],\n  ident: /π|ℯ|\\b(?!\\d)\\w+\\b/,\n  // escape sequences\n  escape: /(?:[abefnrstv\\\\\"'\\n\\r]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2}|u[0-9A-Fa-f]{4})/,\n  escapes: /\\\\(?:C\\-(@escape|.)|c(@escape|.)|@escape)/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      [/(::)\\s*|\\b(isa)\\s+/, \"keyword\", \"@typeanno\"],\n      [/\\b(isa)(\\s*\\(@ident\\s*,\\s*)/, [\"keyword\", { token: \"\", next: \"@typeanno\" }]],\n      [/\\b(type|struct)[ \\t]+/, \"keyword\", \"@typeanno\"],\n      // symbols\n      [/^\\s*:@ident[!?]?/, \"metatag\"],\n      [/(return)(\\s*:@ident[!?]?)/, [\"keyword\", \"metatag\"]],\n      [/(\\(|\\[|\\{|@allops)(\\s*:@ident[!?]?)/, [\"\", \"metatag\"]],\n      [/:\\(/, \"metatag\", \"@quote\"],\n      // regular expressions\n      [/r\"\"\"/, \"regexp.delim\", \"@tregexp\"],\n      [/r\"/, \"regexp.delim\", \"@sregexp\"],\n      // strings\n      [/raw\"\"\"/, \"string.delim\", \"@rtstring\"],\n      [/[bv]?\"\"\"/, \"string.delim\", \"@dtstring\"],\n      [/raw\"/, \"string.delim\", \"@rsstring\"],\n      [/[bv]?\"/, \"string.delim\", \"@dsstring\"],\n      [\n        /(@ident)\\{/,\n        {\n          cases: {\n            \"$1@types\": { token: \"type\", next: \"@gen\" },\n            \"@default\": { token: \"type\", next: \"@gen\" }\n          }\n        }\n      ],\n      [\n        /@ident[!?'']?(?=\\.?\\()/,\n        {\n          cases: {\n            \"@types\": \"type\",\n            \"@keywords\": \"keyword\",\n            \"@constants\": \"variable\",\n            \"@default\": \"keyword.flow\"\n          }\n        }\n      ],\n      [\n        /@ident[!?']?/,\n        {\n          cases: {\n            \"@types\": \"type\",\n            \"@keywords\": \"keyword\",\n            \"@constants\": \"variable\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      [/\\$\\w+/, \"key\"],\n      [/\\$\\(/, \"key\", \"@paste\"],\n      [/@@@ident/, \"annotation\"],\n      // whitespace\n      { include: \"@whitespace\" },\n      // characters\n      [/'(?:@escapes|.)'/, \"string.character\"],\n      // delimiters and operators\n      [/[()\\[\\]{}]/, \"@brackets\"],\n      [\n        /@allops/,\n        {\n          cases: {\n            \"@keywordops\": \"keyword\",\n            \"@operators\": \"operator\"\n          }\n        }\n      ],\n      [/[;,]/, \"delimiter\"],\n      // numbers\n      [/0[xX][0-9a-fA-F](_?[0-9a-fA-F])*/, \"number.hex\"],\n      [/0[_oO][0-7](_?[0-7])*/, \"number.octal\"],\n      [/0[bB][01](_?[01])*/, \"number.binary\"],\n      [/[+\\-]?\\d+(\\.\\d+)?(im?|[eE][+\\-]?\\d+(\\.\\d+)?)?/, \"number\"]\n    ],\n    // type\n    typeanno: [\n      [/[a-zA-Z_]\\w*(?:\\.[a-zA-Z_]\\w*)*\\{/, \"type\", \"@gen\"],\n      [/([a-zA-Z_]\\w*(?:\\.[a-zA-Z_]\\w*)*)(\\s*<:\\s*)/, [\"type\", \"keyword\"]],\n      [/[a-zA-Z_]\\w*(?:\\.[a-zA-Z_]\\w*)*/, \"type\", \"@pop\"],\n      [\"\", \"\", \"@pop\"]\n    ],\n    // generic type\n    gen: [\n      [/[a-zA-Z_]\\w*(?:\\.[a-zA-Z_]\\w*)*\\{/, \"type\", \"@push\"],\n      [/[a-zA-Z_]\\w*(?:\\.[a-zA-Z_]\\w*)*/, \"type\"],\n      [/<:/, \"keyword\"],\n      [/(\\})(\\s*<:\\s*)/, [\"type\", { token: \"keyword\", next: \"@pop\" }]],\n      [/\\}/, \"type\", \"@pop\"],\n      { include: \"@root\" }\n    ],\n    // $(...)\n    quote: [\n      [/\\$\\(/, \"key\", \"@paste\"],\n      [/\\(/, \"@brackets\", \"@paren\"],\n      [/\\)/, \"metatag\", \"@pop\"],\n      { include: \"@root\" }\n    ],\n    // :(...)\n    paste: [\n      [/:\\(/, \"metatag\", \"@quote\"],\n      [/\\(/, \"@brackets\", \"@paren\"],\n      [/\\)/, \"key\", \"@pop\"],\n      { include: \"@root\" }\n    ],\n    // (...)\n    paren: [\n      [/\\$\\(/, \"key\", \"@paste\"],\n      [/:\\(/, \"metatag\", \"@quote\"],\n      [/\\(/, \"@brackets\", \"@push\"],\n      [/\\)/, \"@brackets\", \"@pop\"],\n      { include: \"@root\" }\n    ],\n    // r\"egex string\"\n    sregexp: [\n      [/^.*/, \"invalid\"],\n      [/[^\\\\\"()\\[\\]{}]/, \"regexp\"],\n      [/[()\\[\\]{}]/, \"@brackets\"],\n      [/\\\\./, \"operator.scss\"],\n      [/\"[imsx]*/, \"regexp.delim\", \"@pop\"]\n    ],\n    tregexp: [\n      [/[^\\\\\"()\\[\\]{}]/, \"regexp\"],\n      [/[()\\[\\]{}]/, \"@brackets\"],\n      [/\\\\./, \"operator.scss\"],\n      [/\"(?!\"\")/, \"string\"],\n      [/\"\"\"[imsx]*/, \"regexp.delim\", \"@pop\"]\n    ],\n    // raw\"string\"\n    rsstring: [\n      [/^.*/, \"invalid\"],\n      [/[^\\\\\"]/, \"string\"],\n      [/\\\\./, \"string.escape\"],\n      [/\"/, \"string.delim\", \"@pop\"]\n    ],\n    rtstring: [\n      [/[^\\\\\"]/, \"string\"],\n      [/\\\\./, \"string.escape\"],\n      [/\"(?!\"\")/, \"string\"],\n      [/\"\"\"/, \"string.delim\", \"@pop\"]\n    ],\n    // \"string\".\n    dsstring: [\n      [/^.*/, \"invalid\"],\n      [/[^\\\\\"\\$]/, \"string\"],\n      [/\\$/, \"\", \"@interpolated\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/\"/, \"string.delim\", \"@pop\"]\n    ],\n    dtstring: [\n      [/[^\\\\\"\\$]/, \"string\"],\n      [/\\$/, \"\", \"@interpolated\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/\"(?!\"\")/, \"string\"],\n      [/\"\"\"/, \"string.delim\", \"@pop\"]\n    ],\n    // interpolated sequence\n    interpolated: [\n      [/\\(/, { token: \"\", switchTo: \"@interpolated_compound\" }],\n      [/[a-zA-Z_]\\w*/, \"identifier\"],\n      [\"\", \"\", \"@pop\"]\n      // just a $ is interpreted as a $\n    ],\n    // any code\n    interpolated_compound: [[/\\)/, \"\", \"@pop\"], { include: \"@root\" }],\n    // whitespace & comments\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"\"],\n      [/#=/, \"comment\", \"@multi_comment\"],\n      [/#.*$/, \"comment\"]\n    ],\n    multi_comment: [\n      [/#=/, \"comment\", \"@push\"],\n      [/=#/, \"comment\", \"@pop\"],\n      [/=(?!#)|#(?!=)/, \"comment\"],\n      [/[^#=]+/, \"comment\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/kotlin/kotlin.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/kotlin/kotlin.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/kotlin/kotlin.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"kotlin\",\n  extensions: [\".kt\", \".kts\"],\n  aliases: [\"Kotlin\", \"kotlin\"],\n  mimetypes: [\"text/x-kotlin-source\", \"text/x-kotlin\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/kotlin/kotlin\"], resolve, reject);\n      });\n    } else {\n      return import(\"./kotlin.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/kotlin/kotlin.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/kotlin/kotlin.ts\nvar conf = {\n  // the default separators except `@$`\n  wordPattern: /(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,\n  comments: {\n    lineComment: \"//\",\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" },\n    { open: \"<\", close: \">\" }\n  ],\n  folding: {\n    markers: {\n      start: new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?region\\\\b)|(?:<editor-fold\\\\b))\"),\n      end: new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?endregion\\\\b)|(?:</editor-fold>))\")\n    }\n  }\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".kt\",\n  keywords: [\n    \"as\",\n    \"as?\",\n    \"break\",\n    \"class\",\n    \"continue\",\n    \"do\",\n    \"else\",\n    \"false\",\n    \"for\",\n    \"fun\",\n    \"if\",\n    \"in\",\n    \"!in\",\n    \"interface\",\n    \"is\",\n    \"!is\",\n    \"null\",\n    \"object\",\n    \"package\",\n    \"return\",\n    \"super\",\n    \"this\",\n    \"throw\",\n    \"true\",\n    \"try\",\n    \"typealias\",\n    \"val\",\n    \"var\",\n    \"when\",\n    \"while\",\n    \"by\",\n    \"catch\",\n    \"constructor\",\n    \"delegate\",\n    \"dynamic\",\n    \"field\",\n    \"file\",\n    \"finally\",\n    \"get\",\n    \"import\",\n    \"init\",\n    \"param\",\n    \"property\",\n    \"receiver\",\n    \"set\",\n    \"setparam\",\n    \"where\",\n    \"actual\",\n    \"abstract\",\n    \"annotation\",\n    \"companion\",\n    \"const\",\n    \"crossinline\",\n    \"data\",\n    \"enum\",\n    \"expect\",\n    \"external\",\n    \"final\",\n    \"infix\",\n    \"inline\",\n    \"inner\",\n    \"internal\",\n    \"lateinit\",\n    \"noinline\",\n    \"open\",\n    \"operator\",\n    \"out\",\n    \"override\",\n    \"private\",\n    \"protected\",\n    \"public\",\n    \"reified\",\n    \"sealed\",\n    \"suspend\",\n    \"tailrec\",\n    \"vararg\",\n    \"field\",\n    \"it\"\n  ],\n  operators: [\n    \"+\",\n    \"-\",\n    \"*\",\n    \"/\",\n    \"%\",\n    \"=\",\n    \"+=\",\n    \"-=\",\n    \"*=\",\n    \"/=\",\n    \"%=\",\n    \"++\",\n    \"--\",\n    \"&&\",\n    \"||\",\n    \"!\",\n    \"==\",\n    \"!=\",\n    \"===\",\n    \"!==\",\n    \">\",\n    \"<\",\n    \"<=\",\n    \">=\",\n    \"[\",\n    \"]\",\n    \"!!\",\n    \"?.\",\n    \"?:\",\n    \"::\",\n    \"..\",\n    \":\",\n    \"?\",\n    \"->\",\n    \"@\",\n    \";\",\n    \"$\",\n    \"_\"\n  ],\n  // we include these common regular expressions\n  symbols: /[=><!~?:&|+\\-*\\/\\^%]+/,\n  escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n  digits: /\\d+(_+\\d+)*/,\n  octaldigits: /[0-7]+(_+[0-7]+)*/,\n  binarydigits: /[0-1]+(_+[0-1]+)*/,\n  hexdigits: /[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      // class name highlighting\n      [/[A-Z][\\w\\$]*/, \"type.identifier\"],\n      // identifiers and keywords\n      [\n        /[a-zA-Z_$][\\w$]*/,\n        {\n          cases: {\n            \"@keywords\": { token: \"keyword.$0\" },\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      // whitespace\n      { include: \"@whitespace\" },\n      // delimiters and operators\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      [/[<>](?!@symbols)/, \"@brackets\"],\n      [\n        /@symbols/,\n        {\n          cases: {\n            \"@operators\": \"delimiter\",\n            \"@default\": \"\"\n          }\n        }\n      ],\n      // @ annotations.\n      [/@\\s*[a-zA-Z_\\$][\\w\\$]*/, \"annotation\"],\n      // numbers\n      [/(@digits)[eE]([\\-+]?(@digits))?[fFdD]?/, \"number.float\"],\n      [/(@digits)\\.(@digits)([eE][\\-+]?(@digits))?[fFdD]?/, \"number.float\"],\n      [/0[xX](@hexdigits)[Ll]?/, \"number.hex\"],\n      [/0(@octaldigits)[Ll]?/, \"number.octal\"],\n      [/0[bB](@binarydigits)[Ll]?/, \"number.binary\"],\n      [/(@digits)[fFdD]/, \"number.float\"],\n      [/(@digits)[lL]?/, \"number\"],\n      // delimiter: after number because of .\\d floats\n      [/[;,.]/, \"delimiter\"],\n      // strings\n      [/\"([^\"\\\\]|\\\\.)*$/, \"string.invalid\"],\n      // non-teminated string\n      [/\"\"\"/, \"string\", \"@multistring\"],\n      [/\"/, \"string\", \"@string\"],\n      // characters\n      [/'[^\\\\']'/, \"string\"],\n      [/(')(@escapes)(')/, [\"string\", \"string.escape\", \"string\"]],\n      [/'/, \"string.invalid\"]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"\"],\n      [/\\/\\*\\*(?!\\/)/, \"comment.doc\", \"@javadoc\"],\n      [/\\/\\*/, \"comment\", \"@comment\"],\n      [/\\/\\/.*$/, \"comment\"]\n    ],\n    comment: [\n      [/[^\\/*]+/, \"comment\"],\n      [/\\/\\*/, \"comment\", \"@comment\"],\n      [/\\*\\//, \"comment\", \"@pop\"],\n      [/[\\/*]/, \"comment\"]\n    ],\n    //Identical copy of comment above, except for the addition of .doc\n    javadoc: [\n      [/[^\\/*]+/, \"comment.doc\"],\n      [/\\/\\*/, \"comment.doc\", \"@push\"],\n      [/\\/\\*/, \"comment.doc.invalid\"],\n      [/\\*\\//, \"comment.doc\", \"@pop\"],\n      [/[\\/*]/, \"comment.doc\"]\n    ],\n    string: [\n      [/[^\\\\\"]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/\"/, \"string\", \"@pop\"]\n    ],\n    multistring: [\n      [/[^\\\\\"]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/\"\"\"/, \"string\", \"@pop\"],\n      [/./, \"string\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/less/less.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/less/less.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/less/less.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"less\",\n  extensions: [\".less\"],\n  aliases: [\"Less\", \"less\"],\n  mimetypes: [\"text/x-less\", \"text/less\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/less/less\"], resolve, reject);\n      });\n    } else {\n      return import(\"./less.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/less/less.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/less/less.ts\nvar conf = {\n  wordPattern: /(#?-?\\d*\\.\\d\\w*%?)|([@#!.:]?[\\w-?]+%?)|[@#!.]/g,\n  comments: {\n    blockComment: [\"/*\", \"*/\"],\n    lineComment: \"//\"\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\", notIn: [\"string\", \"comment\"] },\n    { open: \"[\", close: \"]\", notIn: [\"string\", \"comment\"] },\n    { open: \"(\", close: \")\", notIn: [\"string\", \"comment\"] },\n    { open: '\"', close: '\"', notIn: [\"string\", \"comment\"] },\n    { open: \"'\", close: \"'\", notIn: [\"string\", \"comment\"] }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  folding: {\n    markers: {\n      start: new RegExp(\"^\\\\s*\\\\/\\\\*\\\\s*#region\\\\b\\\\s*(.*?)\\\\s*\\\\*\\\\/\"),\n      end: new RegExp(\"^\\\\s*\\\\/\\\\*\\\\s*#endregion\\\\b.*\\\\*\\\\/\")\n    }\n  }\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".less\",\n  identifier: \"-?-?([a-zA-Z]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))([\\\\w\\\\-]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))*\",\n  identifierPlus: \"-?-?([a-zA-Z:.]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))([\\\\w\\\\-:.]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))*\",\n  brackets: [\n    { open: \"{\", close: \"}\", token: \"delimiter.curly\" },\n    { open: \"[\", close: \"]\", token: \"delimiter.bracket\" },\n    { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" },\n    { open: \"<\", close: \">\", token: \"delimiter.angle\" }\n  ],\n  tokenizer: {\n    root: [\n      { include: \"@nestedJSBegin\" },\n      [\"[ \\\\t\\\\r\\\\n]+\", \"\"],\n      { include: \"@comments\" },\n      { include: \"@keyword\" },\n      { include: \"@strings\" },\n      { include: \"@numbers\" },\n      [\"[*_]?[a-zA-Z\\\\-\\\\s]+(?=:.*(;|(\\\\\\\\$)))\", \"attribute.name\", \"@attribute\"],\n      [\"url(\\\\-prefix)?\\\\(\", { token: \"tag\", next: \"@urldeclaration\" }],\n      [\"[{}()\\\\[\\\\]]\", \"@brackets\"],\n      [\"[,:;]\", \"delimiter\"],\n      [\"#@identifierPlus\", \"tag.id\"],\n      [\"&\", \"tag\"],\n      [\"\\\\.@identifierPlus(?=\\\\()\", \"tag.class\", \"@attribute\"],\n      [\"\\\\.@identifierPlus\", \"tag.class\"],\n      [\"@identifierPlus\", \"tag\"],\n      { include: \"@operators\" },\n      [\"@(@identifier(?=[:,\\\\)]))\", \"variable\", \"@attribute\"],\n      [\"@(@identifier)\", \"variable\"],\n      [\"@\", \"key\", \"@atRules\"]\n    ],\n    nestedJSBegin: [\n      [\"``\", \"delimiter.backtick\"],\n      [\n        \"`\",\n        {\n          token: \"delimiter.backtick\",\n          next: \"@nestedJSEnd\",\n          nextEmbedded: \"text/javascript\"\n        }\n      ]\n    ],\n    nestedJSEnd: [\n      [\n        \"`\",\n        {\n          token: \"delimiter.backtick\",\n          next: \"@pop\",\n          nextEmbedded: \"@pop\"\n        }\n      ]\n    ],\n    operators: [[\"[<>=\\\\+\\\\-\\\\*\\\\/\\\\^\\\\|\\\\~]\", \"operator\"]],\n    keyword: [\n      [\n        \"(@[\\\\s]*import|![\\\\s]*important|true|false|when|iscolor|isnumber|isstring|iskeyword|isurl|ispixel|ispercentage|isem|hue|saturation|lightness|alpha|lighten|darken|saturate|desaturate|fadein|fadeout|fade|spin|mix|round|ceil|floor|percentage)\\\\b\",\n        \"keyword\"\n      ]\n    ],\n    urldeclaration: [\n      { include: \"@strings\" },\n      [\"[^)\\r\\n]+\", \"string\"],\n      [\"\\\\)\", { token: \"tag\", next: \"@pop\" }]\n    ],\n    attribute: [\n      { include: \"@nestedJSBegin\" },\n      { include: \"@comments\" },\n      { include: \"@strings\" },\n      { include: \"@numbers\" },\n      { include: \"@keyword\" },\n      [\"[a-zA-Z\\\\-]+(?=\\\\()\", \"attribute.value\", \"@attribute\"],\n      [\">\", \"operator\", \"@pop\"],\n      [\"@identifier\", \"attribute.value\"],\n      { include: \"@operators\" },\n      [\"@(@identifier)\", \"variable\"],\n      [\"[)\\\\}]\", \"@brackets\", \"@pop\"],\n      [\"[{}()\\\\[\\\\]>]\", \"@brackets\"],\n      [\"[;]\", \"delimiter\", \"@pop\"],\n      [\"[,=:]\", \"delimiter\"],\n      [\"\\\\s\", \"\"],\n      [\".\", \"attribute.value\"]\n    ],\n    comments: [\n      [\"\\\\/\\\\*\", \"comment\", \"@comment\"],\n      [\"\\\\/\\\\/+.*\", \"comment\"]\n    ],\n    comment: [\n      [\"\\\\*\\\\/\", \"comment\", \"@pop\"],\n      [\".\", \"comment\"]\n    ],\n    numbers: [\n      [\"(\\\\d*\\\\.)?\\\\d+([eE][\\\\-+]?\\\\d+)?\", { token: \"attribute.value.number\", next: \"@units\" }],\n      [\"#[0-9a-fA-F_]+(?!\\\\w)\", \"attribute.value.hex\"]\n    ],\n    units: [\n      [\n        \"(em|ex|ch|rem|fr|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?\",\n        \"attribute.value.unit\",\n        \"@pop\"\n      ]\n    ],\n    strings: [\n      ['~?\"', { token: \"string.delimiter\", next: \"@stringsEndDoubleQuote\" }],\n      [\"~?'\", { token: \"string.delimiter\", next: \"@stringsEndQuote\" }]\n    ],\n    stringsEndDoubleQuote: [\n      ['\\\\\\\\\"', \"string\"],\n      ['\"', { token: \"string.delimiter\", next: \"@popall\" }],\n      [\".\", \"string\"]\n    ],\n    stringsEndQuote: [\n      [\"\\\\\\\\'\", \"string\"],\n      [\"'\", { token: \"string.delimiter\", next: \"@popall\" }],\n      [\".\", \"string\"]\n    ],\n    atRules: [\n      { include: \"@comments\" },\n      { include: \"@strings\" },\n      [\"[()]\", \"delimiter\"],\n      [\"[\\\\{;]\", \"delimiter\", \"@pop\"],\n      [\".\", \"key\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/lexon/lexon.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/lexon/lexon.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/lexon/lexon.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"lexon\",\n  extensions: [\".lex\"],\n  aliases: [\"Lexon\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/lexon/lexon\"], resolve, reject);\n      });\n    } else {\n      return import(\"./lexon.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/lexon/lexon.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/lexon/lexon.ts\nvar conf = {\n  comments: {\n    lineComment: \"COMMENT\"\n    // blockComment: ['COMMENT', '.'],\n  },\n  brackets: [[\"(\", \")\"]],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \":\", close: \".\" }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: \"`\", close: \"`\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" },\n    { open: \":\", close: \".\" }\n  ],\n  folding: {\n    markers: {\n      start: new RegExp(\"^\\\\s*(::\\\\s*|COMMENT\\\\s+)#region\"),\n      end: new RegExp(\"^\\\\s*(::\\\\s*|COMMENT\\\\s+)#endregion\")\n    }\n  }\n};\nvar language = {\n  // Set defaultToken to invalid to see what you do not tokenize yet\n  // defaultToken: 'invalid',\n  tokenPostfix: \".lexon\",\n  ignoreCase: true,\n  keywords: [\n    \"lexon\",\n    \"lex\",\n    \"clause\",\n    \"terms\",\n    \"contracts\",\n    \"may\",\n    \"pay\",\n    \"pays\",\n    \"appoints\",\n    \"into\",\n    \"to\"\n  ],\n  typeKeywords: [\"amount\", \"person\", \"key\", \"time\", \"date\", \"asset\", \"text\"],\n  operators: [\n    \"less\",\n    \"greater\",\n    \"equal\",\n    \"le\",\n    \"gt\",\n    \"or\",\n    \"and\",\n    \"add\",\n    \"added\",\n    \"subtract\",\n    \"subtracted\",\n    \"multiply\",\n    \"multiplied\",\n    \"times\",\n    \"divide\",\n    \"divided\",\n    \"is\",\n    \"be\",\n    \"certified\"\n  ],\n  // we include these common regular expressions\n  symbols: /[=><!~?:&|+\\-*\\/\\^%]+/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      // comment\n      [/^(\\s*)(comment:?(?:\\s.*|))$/, [\"\", \"comment\"]],\n      // special identifier cases\n      [\n        /\"/,\n        {\n          token: \"identifier.quote\",\n          bracket: \"@open\",\n          next: \"@quoted_identifier\"\n        }\n      ],\n      [\n        \"LEX$\",\n        {\n          token: \"keyword\",\n          bracket: \"@open\",\n          next: \"@identifier_until_period\"\n        }\n      ],\n      [\"LEXON\", { token: \"keyword\", bracket: \"@open\", next: \"@semver\" }],\n      [\n        \":\",\n        {\n          token: \"delimiter\",\n          bracket: \"@open\",\n          next: \"@identifier_until_period\"\n        }\n      ],\n      // identifiers and keywords\n      [\n        /[a-z_$][\\w$]*/,\n        {\n          cases: {\n            \"@operators\": \"operator\",\n            \"@typeKeywords\": \"keyword.type\",\n            \"@keywords\": \"keyword\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      // whitespace\n      { include: \"@whitespace\" },\n      // delimiters and operators\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      [/[<>](?!@symbols)/, \"@brackets\"],\n      [/@symbols/, \"delimiter\"],\n      // numbers\n      [/\\d*\\.\\d*\\.\\d*/, \"number.semver\"],\n      [/\\d*\\.\\d+([eE][\\-+]?\\d+)?/, \"number.float\"],\n      [/0[xX][0-9a-fA-F]+/, \"number.hex\"],\n      [/\\d+/, \"number\"],\n      // delimiter: after number because of .\\d floats\n      [/[;,.]/, \"delimiter\"]\n    ],\n    quoted_identifier: [\n      [/[^\\\\\"]+/, \"identifier\"],\n      [/\"/, { token: \"identifier.quote\", bracket: \"@close\", next: \"@pop\" }]\n    ],\n    space_identifier_until_period: [\n      [\":\", \"delimiter\"],\n      [\" \", { token: \"white\", next: \"@identifier_rest\" }]\n    ],\n    identifier_until_period: [\n      { include: \"@whitespace\" },\n      [\":\", { token: \"delimiter\", next: \"@identifier_rest\" }],\n      [/[^\\\\.]+/, \"identifier\"],\n      [/\\./, { token: \"delimiter\", bracket: \"@close\", next: \"@pop\" }]\n    ],\n    identifier_rest: [\n      [/[^\\\\.]+/, \"identifier\"],\n      [/\\./, { token: \"delimiter\", bracket: \"@close\", next: \"@pop\" }]\n    ],\n    semver: [\n      { include: \"@whitespace\" },\n      [\":\", \"delimiter\"],\n      [/\\d*\\.\\d*\\.\\d*/, { token: \"number.semver\", bracket: \"@close\", next: \"@pop\" }]\n    ],\n    whitespace: [[/[ \\t\\r\\n]+/, \"white\"]]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/liquid/liquid.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/liquid/liquid.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/liquid/liquid.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"liquid\",\n  extensions: [\".liquid\", \".html.liquid\"],\n  aliases: [\"Liquid\", \"liquid\"],\n  mimetypes: [\"application/liquid\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/liquid/liquid\"], resolve, reject);\n      });\n    } else {\n      return import(\"./liquid.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/liquid/liquid.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\n\n// src/fillers/monaco-editor-core.ts\nvar monaco_editor_core_exports = {};\n__reExport(monaco_editor_core_exports, monaco_editor_core_star);\nimport * as monaco_editor_core_star from \"../../editor/editor.api.js\";\n\n// src/basic-languages/liquid/liquid.ts\nvar EMPTY_ELEMENTS = [\n  \"area\",\n  \"base\",\n  \"br\",\n  \"col\",\n  \"embed\",\n  \"hr\",\n  \"img\",\n  \"input\",\n  \"keygen\",\n  \"link\",\n  \"menuitem\",\n  \"meta\",\n  \"param\",\n  \"source\",\n  \"track\",\n  \"wbr\"\n];\nvar conf = {\n  wordPattern: /(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\$\\^\\&\\*\\(\\)\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\s]+)/g,\n  brackets: [\n    [\"<!--\", \"-->\"],\n    [\"<\", \">\"],\n    [\"{{\", \"}}\"],\n    [\"{%\", \"%}\"],\n    [\"{\", \"}\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"%\", close: \"%\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  surroundingPairs: [\n    { open: \"<\", close: \">\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  onEnterRules: [\n    {\n      beforeText: new RegExp(\n        `<(?!(?:${EMPTY_ELEMENTS.join(\"|\")}))(\\\\w[\\\\w\\\\d]*)([^/>]*(?!/)>)[^<]*$`,\n        \"i\"\n      ),\n      afterText: /^<\\/(\\w[\\w\\d]*)\\s*>$/i,\n      action: {\n        indentAction: monaco_editor_core_exports.languages.IndentAction.IndentOutdent\n      }\n    },\n    {\n      beforeText: new RegExp(\n        `<(?!(?:${EMPTY_ELEMENTS.join(\"|\")}))(\\\\w[\\\\w\\\\d]*)([^/>]*(?!/)>)[^<]*$`,\n        \"i\"\n      ),\n      action: { indentAction: monaco_editor_core_exports.languages.IndentAction.Indent }\n    }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \"\",\n  builtinTags: [\n    \"if\",\n    \"else\",\n    \"elseif\",\n    \"endif\",\n    \"render\",\n    \"assign\",\n    \"capture\",\n    \"endcapture\",\n    \"case\",\n    \"endcase\",\n    \"comment\",\n    \"endcomment\",\n    \"cycle\",\n    \"decrement\",\n    \"for\",\n    \"endfor\",\n    \"include\",\n    \"increment\",\n    \"layout\",\n    \"raw\",\n    \"endraw\",\n    \"render\",\n    \"tablerow\",\n    \"endtablerow\",\n    \"unless\",\n    \"endunless\"\n  ],\n  builtinFilters: [\n    \"abs\",\n    \"append\",\n    \"at_least\",\n    \"at_most\",\n    \"capitalize\",\n    \"ceil\",\n    \"compact\",\n    \"date\",\n    \"default\",\n    \"divided_by\",\n    \"downcase\",\n    \"escape\",\n    \"escape_once\",\n    \"first\",\n    \"floor\",\n    \"join\",\n    \"json\",\n    \"last\",\n    \"lstrip\",\n    \"map\",\n    \"minus\",\n    \"modulo\",\n    \"newline_to_br\",\n    \"plus\",\n    \"prepend\",\n    \"remove\",\n    \"remove_first\",\n    \"replace\",\n    \"replace_first\",\n    \"reverse\",\n    \"round\",\n    \"rstrip\",\n    \"size\",\n    \"slice\",\n    \"sort\",\n    \"sort_natural\",\n    \"split\",\n    \"strip\",\n    \"strip_html\",\n    \"strip_newlines\",\n    \"times\",\n    \"truncate\",\n    \"truncatewords\",\n    \"uniq\",\n    \"upcase\",\n    \"url_decode\",\n    \"url_encode\",\n    \"where\"\n  ],\n  constants: [\"true\", \"false\"],\n  operators: [\"==\", \"!=\", \">\", \"<\", \">=\", \"<=\"],\n  symbol: /[=><!]+/,\n  identifier: /[a-zA-Z_][\\w]*/,\n  tokenizer: {\n    root: [\n      [/\\{\\%\\s*comment\\s*\\%\\}/, \"comment.start.liquid\", \"@comment\"],\n      [/\\{\\{/, { token: \"@rematch\", switchTo: \"@liquidState.root\" }],\n      [/\\{\\%/, { token: \"@rematch\", switchTo: \"@liquidState.root\" }],\n      [/(<)([\\w\\-]+)(\\/>)/, [\"delimiter.html\", \"tag.html\", \"delimiter.html\"]],\n      [/(<)([:\\w]+)/, [\"delimiter.html\", { token: \"tag.html\", next: \"@otherTag\" }]],\n      [/(<\\/)([\\w\\-]+)/, [\"delimiter.html\", { token: \"tag.html\", next: \"@otherTag\" }]],\n      [/</, \"delimiter.html\"],\n      [/\\{/, \"delimiter.html\"],\n      [/[^<{]+/]\n      // text\n    ],\n    comment: [\n      [/\\{\\%\\s*endcomment\\s*\\%\\}/, \"comment.end.liquid\", \"@pop\"],\n      [/./, \"comment.content.liquid\"]\n    ],\n    otherTag: [\n      [\n        /\\{\\{/,\n        {\n          token: \"@rematch\",\n          switchTo: \"@liquidState.otherTag\"\n        }\n      ],\n      [\n        /\\{\\%/,\n        {\n          token: \"@rematch\",\n          switchTo: \"@liquidState.otherTag\"\n        }\n      ],\n      [/\\/?>/, \"delimiter.html\", \"@pop\"],\n      [/\"([^\"]*)\"/, \"attribute.value\"],\n      [/'([^']*)'/, \"attribute.value\"],\n      [/[\\w\\-]+/, \"attribute.name\"],\n      [/=/, \"delimiter\"],\n      [/[ \\t\\r\\n]+/]\n      // whitespace\n    ],\n    liquidState: [\n      [/\\{\\{/, \"delimiter.output.liquid\"],\n      [/\\}\\}/, { token: \"delimiter.output.liquid\", switchTo: \"@$S2.$S3\" }],\n      [/\\{\\%/, \"delimiter.tag.liquid\"],\n      [/raw\\s*\\%\\}/, \"delimiter.tag.liquid\", \"@liquidRaw\"],\n      [/\\%\\}/, { token: \"delimiter.tag.liquid\", switchTo: \"@$S2.$S3\" }],\n      { include: \"liquidRoot\" }\n    ],\n    liquidRaw: [\n      [/^(?!\\{\\%\\s*endraw\\s*\\%\\}).+/],\n      [/\\{\\%/, \"delimiter.tag.liquid\"],\n      [/@identifier/],\n      [/\\%\\}/, { token: \"delimiter.tag.liquid\", next: \"@root\" }]\n    ],\n    liquidRoot: [\n      [/\\d+(\\.\\d+)?/, \"number.liquid\"],\n      [/\"[^\"]*\"/, \"string.liquid\"],\n      [/'[^']*'/, \"string.liquid\"],\n      [/\\s+/],\n      [\n        /@symbol/,\n        {\n          cases: {\n            \"@operators\": \"operator.liquid\",\n            \"@default\": \"\"\n          }\n        }\n      ],\n      [/\\./],\n      [\n        /@identifier/,\n        {\n          cases: {\n            \"@constants\": \"keyword.liquid\",\n            \"@builtinFilters\": \"predefined.liquid\",\n            \"@builtinTags\": \"predefined.liquid\",\n            \"@default\": \"variable.liquid\"\n          }\n        }\n      ],\n      [/[^}|%]/, \"variable.liquid\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/lua/lua.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/lua/lua.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/lua/lua.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"lua\",\n  extensions: [\".lua\"],\n  aliases: [\"Lua\", \"lua\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/lua/lua\"], resolve, reject);\n      });\n    } else {\n      return import(\"./lua.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/lua/lua.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/lua/lua.ts\nvar conf = {\n  comments: {\n    lineComment: \"--\",\n    blockComment: [\"--[[\", \"]]\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".lua\",\n  keywords: [\n    \"and\",\n    \"break\",\n    \"do\",\n    \"else\",\n    \"elseif\",\n    \"end\",\n    \"false\",\n    \"for\",\n    \"function\",\n    \"goto\",\n    \"if\",\n    \"in\",\n    \"local\",\n    \"nil\",\n    \"not\",\n    \"or\",\n    \"repeat\",\n    \"return\",\n    \"then\",\n    \"true\",\n    \"until\",\n    \"while\"\n  ],\n  brackets: [\n    { token: \"delimiter.bracket\", open: \"{\", close: \"}\" },\n    { token: \"delimiter.array\", open: \"[\", close: \"]\" },\n    { token: \"delimiter.parenthesis\", open: \"(\", close: \")\" }\n  ],\n  operators: [\n    \"+\",\n    \"-\",\n    \"*\",\n    \"/\",\n    \"%\",\n    \"^\",\n    \"#\",\n    \"==\",\n    \"~=\",\n    \"<=\",\n    \">=\",\n    \"<\",\n    \">\",\n    \"=\",\n    \";\",\n    \":\",\n    \",\",\n    \".\",\n    \"..\",\n    \"...\"\n  ],\n  // we include these common regular expressions\n  symbols: /[=><!~?:&|+\\-*\\/\\^%]+/,\n  escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      // identifiers and keywords\n      [\n        /[a-zA-Z_]\\w*/,\n        {\n          cases: {\n            \"@keywords\": { token: \"keyword.$0\" },\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      // whitespace\n      { include: \"@whitespace\" },\n      // keys\n      [/(,)(\\s*)([a-zA-Z_]\\w*)(\\s*)(:)(?!:)/, [\"delimiter\", \"\", \"key\", \"\", \"delimiter\"]],\n      [/({)(\\s*)([a-zA-Z_]\\w*)(\\s*)(:)(?!:)/, [\"@brackets\", \"\", \"key\", \"\", \"delimiter\"]],\n      // delimiters and operators\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      [\n        /@symbols/,\n        {\n          cases: {\n            \"@operators\": \"delimiter\",\n            \"@default\": \"\"\n          }\n        }\n      ],\n      // numbers\n      [/\\d*\\.\\d+([eE][\\-+]?\\d+)?/, \"number.float\"],\n      [/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/, \"number.hex\"],\n      [/\\d+?/, \"number\"],\n      // delimiter: after number because of .\\d floats\n      [/[;,.]/, \"delimiter\"],\n      // strings: recover on non-terminated strings\n      [/\"([^\"\\\\]|\\\\.)*$/, \"string.invalid\"],\n      // non-teminated string\n      [/'([^'\\\\]|\\\\.)*$/, \"string.invalid\"],\n      // non-teminated string\n      [/\"/, \"string\", '@string.\"'],\n      [/'/, \"string\", \"@string.'\"]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"\"],\n      [/--\\[([=]*)\\[/, \"comment\", \"@comment.$1\"],\n      [/--.*$/, \"comment\"]\n    ],\n    comment: [\n      [/[^\\]]+/, \"comment\"],\n      [\n        /\\]([=]*)\\]/,\n        {\n          cases: {\n            \"$1==$S2\": { token: \"comment\", next: \"@pop\" },\n            \"@default\": \"comment\"\n          }\n        }\n      ],\n      [/./, \"comment\"]\n    ],\n    string: [\n      [/[^\\\\\"']+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [\n        /[\"']/,\n        {\n          cases: {\n            \"$#==$S2\": { token: \"string\", next: \"@pop\" },\n            \"@default\": \"string\"\n          }\n        }\n      ]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/m3/m3.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/m3/m3.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/m3/m3.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"m3\",\n  extensions: [\".m3\", \".i3\", \".mg\", \".ig\"],\n  aliases: [\"Modula-3\", \"Modula3\", \"modula3\", \"m3\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/m3/m3\"], resolve, reject);\n      });\n    } else {\n      return import(\"./m3.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/m3/m3.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/m3/m3.ts\nvar conf = {\n  comments: {\n    blockComment: [\"(*\", \"*)\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"[\", close: \"]\" },\n    { open: \"{\", close: \"}\" },\n    { open: \"(\", close: \")\" },\n    { open: \"(*\", close: \"*)\" },\n    { open: \"<*\", close: \"*>\" },\n    { open: \"'\", close: \"'\", notIn: [\"string\", \"comment\"] },\n    { open: '\"', close: '\"', notIn: [\"string\", \"comment\"] }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".m3\",\n  brackets: [\n    { token: \"delimiter.curly\", open: \"{\", close: \"}\" },\n    { token: \"delimiter.parenthesis\", open: \"(\", close: \")\" },\n    { token: \"delimiter.square\", open: \"[\", close: \"]\" }\n  ],\n  keywords: [\n    \"AND\",\n    \"ANY\",\n    \"ARRAY\",\n    \"AS\",\n    \"BEGIN\",\n    \"BITS\",\n    \"BRANDED\",\n    \"BY\",\n    \"CASE\",\n    \"CONST\",\n    \"DIV\",\n    \"DO\",\n    \"ELSE\",\n    \"ELSIF\",\n    \"END\",\n    \"EVAL\",\n    \"EXCEPT\",\n    \"EXCEPTION\",\n    \"EXIT\",\n    \"EXPORTS\",\n    \"FINALLY\",\n    \"FOR\",\n    \"FROM\",\n    \"GENERIC\",\n    \"IF\",\n    \"IMPORT\",\n    \"IN\",\n    \"INTERFACE\",\n    \"LOCK\",\n    \"LOOP\",\n    \"METHODS\",\n    \"MOD\",\n    \"MODULE\",\n    \"NOT\",\n    \"OBJECT\",\n    \"OF\",\n    \"OR\",\n    \"OVERRIDES\",\n    \"PROCEDURE\",\n    \"RAISE\",\n    \"RAISES\",\n    \"READONLY\",\n    \"RECORD\",\n    \"REF\",\n    \"REPEAT\",\n    \"RETURN\",\n    \"REVEAL\",\n    \"SET\",\n    \"THEN\",\n    \"TO\",\n    \"TRY\",\n    \"TYPE\",\n    \"TYPECASE\",\n    \"UNSAFE\",\n    \"UNTIL\",\n    \"UNTRACED\",\n    \"VALUE\",\n    \"VAR\",\n    \"WHILE\",\n    \"WITH\"\n  ],\n  reservedConstNames: [\n    \"ABS\",\n    \"ADR\",\n    \"ADRSIZE\",\n    \"BITSIZE\",\n    \"BYTESIZE\",\n    \"CEILING\",\n    \"DEC\",\n    \"DISPOSE\",\n    \"FALSE\",\n    \"FIRST\",\n    \"FLOAT\",\n    \"FLOOR\",\n    \"INC\",\n    \"ISTYPE\",\n    \"LAST\",\n    \"LOOPHOLE\",\n    \"MAX\",\n    \"MIN\",\n    \"NARROW\",\n    \"NEW\",\n    \"NIL\",\n    \"NUMBER\",\n    \"ORD\",\n    \"ROUND\",\n    \"SUBARRAY\",\n    \"TRUE\",\n    \"TRUNC\",\n    \"TYPECODE\",\n    \"VAL\"\n  ],\n  reservedTypeNames: [\n    \"ADDRESS\",\n    \"ANY\",\n    \"BOOLEAN\",\n    \"CARDINAL\",\n    \"CHAR\",\n    \"EXTENDED\",\n    \"INTEGER\",\n    \"LONGCARD\",\n    \"LONGINT\",\n    \"LONGREAL\",\n    \"MUTEX\",\n    \"NULL\",\n    \"REAL\",\n    \"REFANY\",\n    \"ROOT\",\n    \"TEXT\"\n  ],\n  operators: [\"+\", \"-\", \"*\", \"/\", \"&\", \"^\", \".\"],\n  relations: [\"=\", \"#\", \"<\", \"<=\", \">\", \">=\", \"<:\", \":\"],\n  delimiters: [\"|\", \"..\", \"=>\", \",\", \";\", \":=\"],\n  symbols: /[>=<#.,:;+\\-*/&^]+/,\n  escapes: /\\\\(?:[\\\\fnrt\"']|[0-7]{3})/,\n  tokenizer: {\n    root: [\n      // Identifiers and keywords\n      [/_\\w*/, \"invalid\"],\n      [\n        /[a-zA-Z][a-zA-Z0-9_]*/,\n        {\n          cases: {\n            \"@keywords\": { token: \"keyword.$0\" },\n            \"@reservedConstNames\": { token: \"constant.reserved.$0\" },\n            \"@reservedTypeNames\": { token: \"type.reserved.$0\" },\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      // Whitespace\n      { include: \"@whitespace\" },\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      // Integer- and real literals\n      [/[0-9]+\\.[0-9]+(?:[DdEeXx][\\+\\-]?[0-9]+)?/, \"number.float\"],\n      [/[0-9]+(?:\\_[0-9a-fA-F]+)?L?/, \"number\"],\n      // Operators, relations, and delimiters\n      [\n        /@symbols/,\n        {\n          cases: {\n            \"@operators\": \"operators\",\n            \"@relations\": \"operators\",\n            \"@delimiters\": \"delimiter\",\n            \"@default\": \"invalid\"\n          }\n        }\n      ],\n      // Character literals\n      [/'[^\\\\']'/, \"string.char\"],\n      [/(')(@escapes)(')/, [\"string.char\", \"string.escape\", \"string.char\"]],\n      [/'/, \"invalid\"],\n      // Text literals\n      [/\"([^\"\\\\]|\\\\.)*$/, \"invalid\"],\n      [/\"/, \"string.text\", \"@text\"]\n    ],\n    text: [\n      [/[^\\\\\"]+/, \"string.text\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"invalid\"],\n      [/\"/, \"string.text\", \"@pop\"]\n    ],\n    comment: [\n      [/\\(\\*/, \"comment\", \"@push\"],\n      [/\\*\\)/, \"comment\", \"@pop\"],\n      [/./, \"comment\"]\n    ],\n    pragma: [\n      [/<\\*/, \"keyword.pragma\", \"@push\"],\n      [/\\*>/, \"keyword.pragma\", \"@pop\"],\n      [/./, \"keyword.pragma\"]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"white\"],\n      [/\\(\\*/, \"comment\", \"@comment\"],\n      [/<\\*/, \"keyword.pragma\", \"@pragma\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/markdown/markdown.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/markdown/markdown.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/markdown/markdown.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"markdown\",\n  extensions: [\".md\", \".markdown\", \".mdown\", \".mkdn\", \".mkd\", \".mdwn\", \".mdtxt\", \".mdtext\"],\n  aliases: [\"Markdown\", \"markdown\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/markdown/markdown\"], resolve, reject);\n      });\n    } else {\n      return import(\"./markdown.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/markdown/markdown.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/markdown/markdown.ts\nvar conf = {\n  comments: {\n    blockComment: [\"<!--\", \"-->\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: \"<\", close: \">\", notIn: [\"string\"] }\n  ],\n  surroundingPairs: [\n    { open: \"(\", close: \")\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"`\", close: \"`\" }\n  ],\n  folding: {\n    markers: {\n      start: new RegExp(\"^\\\\s*<!--\\\\s*#?region\\\\b.*-->\"),\n      end: new RegExp(\"^\\\\s*<!--\\\\s*#?endregion\\\\b.*-->\")\n    }\n  }\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".md\",\n  // escape codes\n  control: /[\\\\`*_\\[\\]{}()#+\\-\\.!]/,\n  noncontrol: /[^\\\\`*_\\[\\]{}()#+\\-\\.!]/,\n  escapes: /\\\\(?:@control)/,\n  // escape codes for javascript/CSS strings\n  jsescapes: /\\\\(?:[btnfr\\\\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,\n  // non matched elements\n  empty: [\n    \"area\",\n    \"base\",\n    \"basefont\",\n    \"br\",\n    \"col\",\n    \"frame\",\n    \"hr\",\n    \"img\",\n    \"input\",\n    \"isindex\",\n    \"link\",\n    \"meta\",\n    \"param\"\n  ],\n  tokenizer: {\n    root: [\n      // markdown tables\n      [/^\\s*\\|/, \"@rematch\", \"@table_header\"],\n      // headers (with #)\n      [/^(\\s{0,3})(#+)((?:[^\\\\#]|@escapes)+)((?:#+)?)/, [\"white\", \"keyword\", \"keyword\", \"keyword\"]],\n      // headers (with =)\n      [/^\\s*(=+|\\-+)\\s*$/, \"keyword\"],\n      // headers (with ***)\n      [/^\\s*((\\*[ ]?)+)\\s*$/, \"meta.separator\"],\n      // quote\n      [/^\\s*>+/, \"comment\"],\n      // list (starting with * or number)\n      [/^\\s*([\\*\\-+:]|\\d+\\.)\\s/, \"keyword\"],\n      // code block (4 spaces indent)\n      [/^(\\t|[ ]{4})[^ ].*$/, \"string\"],\n      // code block (3 tilde)\n      [/^\\s*~~~\\s*((?:\\w|[\\/\\-#])+)?\\s*$/, { token: \"string\", next: \"@codeblock\" }],\n      // github style code blocks (with backticks and language)\n      [\n        /^\\s*```\\s*((?:\\w|[\\/\\-#])+).*$/,\n        { token: \"string\", next: \"@codeblockgh\", nextEmbedded: \"$1\" }\n      ],\n      // github style code blocks (with backticks but no language)\n      [/^\\s*```\\s*$/, { token: \"string\", next: \"@codeblock\" }],\n      // markup within lines\n      { include: \"@linecontent\" }\n    ],\n    table_header: [\n      { include: \"@table_common\" },\n      [/[^\\|]+/, \"keyword.table.header\"]\n      // table header\n    ],\n    table_body: [{ include: \"@table_common\" }, { include: \"@linecontent\" }],\n    table_common: [\n      [/\\s*[\\-:]+\\s*/, { token: \"keyword\", switchTo: \"table_body\" }],\n      // header-divider\n      [/^\\s*\\|/, \"keyword.table.left\"],\n      // opening |\n      [/^\\s*[^\\|]/, \"@rematch\", \"@pop\"],\n      // exiting\n      [/^\\s*$/, \"@rematch\", \"@pop\"],\n      // exiting\n      [\n        /\\|/,\n        {\n          cases: {\n            \"@eos\": \"keyword.table.right\",\n            // closing |\n            \"@default\": \"keyword.table.middle\"\n            // inner |\n          }\n        }\n      ]\n    ],\n    codeblock: [\n      [/^\\s*~~~\\s*$/, { token: \"string\", next: \"@pop\" }],\n      [/^\\s*```\\s*$/, { token: \"string\", next: \"@pop\" }],\n      [/.*$/, \"variable.source\"]\n    ],\n    // github style code blocks\n    codeblockgh: [\n      [/```\\s*$/, { token: \"string\", next: \"@pop\", nextEmbedded: \"@pop\" }],\n      [/[^`]+/, \"variable.source\"]\n    ],\n    linecontent: [\n      // escapes\n      [/&\\w+;/, \"string.escape\"],\n      [/@escapes/, \"escape\"],\n      // various markup\n      [/\\b__([^\\\\_]|@escapes|_(?!_))+__\\b/, \"strong\"],\n      [/\\*\\*([^\\\\*]|@escapes|\\*(?!\\*))+\\*\\*/, \"strong\"],\n      [/\\b_[^_]+_\\b/, \"emphasis\"],\n      [/\\*([^\\\\*]|@escapes)+\\*/, \"emphasis\"],\n      [/`([^\\\\`]|@escapes)+`/, \"variable\"],\n      // links\n      [/\\{+[^}]+\\}+/, \"string.target\"],\n      [/(!?\\[)((?:[^\\]\\\\]|@escapes)*)(\\]\\([^\\)]+\\))/, [\"string.link\", \"\", \"string.link\"]],\n      [/(!?\\[)((?:[^\\]\\\\]|@escapes)*)(\\])/, \"string.link\"],\n      // or html\n      { include: \"html\" }\n    ],\n    // Note: it is tempting to rather switch to the real HTML mode instead of building our own here\n    // but currently there is a limitation in Monarch that prevents us from doing it: The opening\n    // '<' would start the HTML mode, however there is no way to jump 1 character back to let the\n    // HTML mode also tokenize the opening angle bracket. Thus, even though we could jump to HTML,\n    // we cannot correctly tokenize it in that mode yet.\n    html: [\n      // html tags\n      [/<(\\w+)\\/>/, \"tag\"],\n      [\n        /<(\\w+)(\\-|\\w)*/,\n        {\n          cases: {\n            \"@empty\": { token: \"tag\", next: \"@tag.$1\" },\n            \"@default\": { token: \"tag\", next: \"@tag.$1\" }\n          }\n        }\n      ],\n      [/<\\/(\\w+)(\\-|\\w)*\\s*>/, { token: \"tag\" }],\n      [/<!--/, \"comment\", \"@comment\"]\n    ],\n    comment: [\n      [/[^<\\-]+/, \"comment.content\"],\n      [/-->/, \"comment\", \"@pop\"],\n      [/<!--/, \"comment.content.invalid\"],\n      [/[<\\-]/, \"comment.content\"]\n    ],\n    // Almost full HTML tag matching, complete with embedded scripts & styles\n    tag: [\n      [/[ \\t\\r\\n]+/, \"white\"],\n      [\n        /(type)(\\s*=\\s*)(\")([^\"]+)(\")/,\n        [\n          \"attribute.name.html\",\n          \"delimiter.html\",\n          \"string.html\",\n          { token: \"string.html\", switchTo: \"@tag.$S2.$4\" },\n          \"string.html\"\n        ]\n      ],\n      [\n        /(type)(\\s*=\\s*)(')([^']+)(')/,\n        [\n          \"attribute.name.html\",\n          \"delimiter.html\",\n          \"string.html\",\n          { token: \"string.html\", switchTo: \"@tag.$S2.$4\" },\n          \"string.html\"\n        ]\n      ],\n      [/(\\w+)(\\s*=\\s*)(\"[^\"]*\"|'[^']*')/, [\"attribute.name.html\", \"delimiter.html\", \"string.html\"]],\n      [/\\w+/, \"attribute.name.html\"],\n      [/\\/>/, \"tag\", \"@pop\"],\n      [\n        />/,\n        {\n          cases: {\n            \"$S2==style\": {\n              token: \"tag\",\n              switchTo: \"embeddedStyle\",\n              nextEmbedded: \"text/css\"\n            },\n            \"$S2==script\": {\n              cases: {\n                $S3: {\n                  token: \"tag\",\n                  switchTo: \"embeddedScript\",\n                  nextEmbedded: \"$S3\"\n                },\n                \"@default\": {\n                  token: \"tag\",\n                  switchTo: \"embeddedScript\",\n                  nextEmbedded: \"text/javascript\"\n                }\n              }\n            },\n            \"@default\": { token: \"tag\", next: \"@pop\" }\n          }\n        }\n      ]\n    ],\n    embeddedStyle: [\n      [/[^<]+/, \"\"],\n      [/<\\/style\\s*>/, { token: \"@rematch\", next: \"@pop\", nextEmbedded: \"@pop\" }],\n      [/</, \"\"]\n    ],\n    embeddedScript: [\n      [/[^<]+/, \"\"],\n      [/<\\/script\\s*>/, { token: \"@rematch\", next: \"@pop\", nextEmbedded: \"@pop\" }],\n      [/</, \"\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/mdx/mdx.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/mdx/mdx.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/mdx/mdx.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"mdx\",\n  extensions: [\".mdx\"],\n  aliases: [\"MDX\", \"mdx\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/mdx/mdx\"], resolve, reject);\n      });\n    } else {\n      return import(\"./mdx.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/mdx/mdx.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\n\n// src/fillers/monaco-editor-core.ts\nvar monaco_editor_core_exports = {};\n__reExport(monaco_editor_core_exports, monaco_editor_core_star);\nimport * as monaco_editor_core_star from \"../../editor/editor.api.js\";\n\n// src/basic-languages/mdx/mdx.ts\nvar conf = {\n  comments: {\n    blockComment: [\"{/*\", \"*/}\"]\n  },\n  brackets: [[\"{\", \"}\"]],\n  autoClosingPairs: [\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" },\n    { open: \"\\u201C\", close: \"\\u201D\" },\n    { open: \"\\u2018\", close: \"\\u2019\" },\n    { open: \"`\", close: \"`\" },\n    { open: \"{\", close: \"}\" },\n    { open: \"(\", close: \")\" },\n    { open: \"_\", close: \"_\" },\n    { open: \"**\", close: \"**\" },\n    { open: \"<\", close: \">\" }\n  ],\n  onEnterRules: [\n    {\n      beforeText: /^\\s*- .+/,\n      action: { indentAction: monaco_editor_core_exports.languages.IndentAction.None, appendText: \"- \" }\n    },\n    {\n      beforeText: /^\\s*\\+ .+/,\n      action: { indentAction: monaco_editor_core_exports.languages.IndentAction.None, appendText: \"+ \" }\n    },\n    {\n      beforeText: /^\\s*\\* .+/,\n      action: { indentAction: monaco_editor_core_exports.languages.IndentAction.None, appendText: \"* \" }\n    },\n    {\n      beforeText: /^> /,\n      action: { indentAction: monaco_editor_core_exports.languages.IndentAction.None, appendText: \"> \" }\n    },\n    {\n      beforeText: /<\\w+/,\n      action: { indentAction: monaco_editor_core_exports.languages.IndentAction.Indent }\n    },\n    {\n      beforeText: /\\s+>\\s*$/,\n      action: { indentAction: monaco_editor_core_exports.languages.IndentAction.Indent }\n    },\n    {\n      beforeText: /<\\/\\w+>/,\n      action: { indentAction: monaco_editor_core_exports.languages.IndentAction.Outdent }\n    },\n    ...Array.from({ length: 100 }, (_, index) => ({\n      beforeText: new RegExp(`^${index}\\\\. .+`),\n      action: { indentAction: monaco_editor_core_exports.languages.IndentAction.None, appendText: `${index + 1}. ` }\n    }))\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".mdx\",\n  control: /[!#()*+.[\\\\\\]_`{}\\-]/,\n  escapes: /\\\\@control/,\n  tokenizer: {\n    root: [\n      [/^---$/, { token: \"meta.content\", next: \"@frontmatter\", nextEmbedded: \"yaml\" }],\n      [/^\\s*import/, { token: \"keyword\", next: \"@import\", nextEmbedded: \"js\" }],\n      [/^\\s*export/, { token: \"keyword\", next: \"@export\", nextEmbedded: \"js\" }],\n      [/<\\w+/, { token: \"type.identifier\", next: \"@jsx\" }],\n      [/<\\/?\\w+>/, \"type.identifier\"],\n      [\n        /^(\\s*)(>*\\s*)(#{1,6}\\s)/,\n        [{ token: \"white\" }, { token: \"comment\" }, { token: \"keyword\", next: \"@header\" }]\n      ],\n      [/^(\\s*)(>*\\s*)([*+-])(\\s+)/, [\"white\", \"comment\", \"keyword\", \"white\"]],\n      [/^(\\s*)(>*\\s*)(\\d{1,9}\\.)(\\s+)/, [\"white\", \"comment\", \"number\", \"white\"]],\n      [/^(\\s*)(>*\\s*)(\\d{1,9}\\.)(\\s+)/, [\"white\", \"comment\", \"number\", \"white\"]],\n      [/^(\\s*)(>*\\s*)(-{3,}|\\*{3,}|_{3,})$/, [\"white\", \"comment\", \"keyword\"]],\n      [/`{3,}(\\s.*)?$/, { token: \"string\", next: \"@codeblock_backtick\" }],\n      [/~{3,}(\\s.*)?$/, { token: \"string\", next: \"@codeblock_tilde\" }],\n      [\n        /`{3,}(\\S+).*$/,\n        { token: \"string\", next: \"@codeblock_highlight_backtick\", nextEmbedded: \"$1\" }\n      ],\n      [\n        /~{3,}(\\S+).*$/,\n        { token: \"string\", next: \"@codeblock_highlight_tilde\", nextEmbedded: \"$1\" }\n      ],\n      [/^(\\s*)(-{4,})$/, [\"white\", \"comment\"]],\n      [/^(\\s*)(>+)/, [\"white\", \"comment\"]],\n      { include: \"content\" }\n    ],\n    content: [\n      [\n        /(\\[)(.+)(]\\()(.+)(\\s+\".*\")(\\))/,\n        [\"\", \"string.link\", \"\", \"type.identifier\", \"string.link\", \"\"]\n      ],\n      [/(\\[)(.+)(]\\()(.+)(\\))/, [\"\", \"type.identifier\", \"\", \"string.link\", \"\"]],\n      [/(\\[)(.+)(]\\[)(.+)(])/, [\"\", \"type.identifier\", \"\", \"type.identifier\", \"\"]],\n      [/(\\[)(.+)(]:\\s+)(\\S*)/, [\"\", \"type.identifier\", \"\", \"string.link\"]],\n      [/(\\[)(.+)(])/, [\"\", \"type.identifier\", \"\"]],\n      [/`.*`/, \"variable.source\"],\n      [/_/, { token: \"emphasis\", next: \"@emphasis_underscore\" }],\n      [/\\*(?!\\*)/, { token: \"emphasis\", next: \"@emphasis_asterisk\" }],\n      [/\\*\\*/, { token: \"strong\", next: \"@strong\" }],\n      [/{/, { token: \"delimiter.bracket\", next: \"@expression\", nextEmbedded: \"js\" }]\n    ],\n    import: [[/'\\s*(;|$)/, { token: \"string\", next: \"@pop\", nextEmbedded: \"@pop\" }]],\n    expression: [\n      [/{/, { token: \"delimiter.bracket\", next: \"@expression\" }],\n      [/}/, { token: \"delimiter.bracket\", next: \"@pop\", nextEmbedded: \"@pop\" }]\n    ],\n    export: [[/^\\s*$/, { token: \"delimiter.bracket\", next: \"@pop\", nextEmbedded: \"@pop\" }]],\n    jsx: [\n      [/\\s+/, \"\"],\n      [/(\\w+)(=)(\"(?:[^\"\\\\]|\\\\.)*\")/, [\"attribute.name\", \"operator\", \"string\"]],\n      [/(\\w+)(=)('(?:[^'\\\\]|\\\\.)*')/, [\"attribute.name\", \"operator\", \"string\"]],\n      [/(\\w+(?=\\s|>|={|$))/, [\"attribute.name\"]],\n      [/={/, { token: \"delimiter.bracket\", next: \"@expression\", nextEmbedded: \"js\" }],\n      [/>/, { token: \"type.identifier\", next: \"@pop\" }]\n    ],\n    header: [\n      [/.$/, { token: \"keyword\", next: \"@pop\" }],\n      { include: \"content\" },\n      [/./, { token: \"keyword\" }]\n    ],\n    strong: [\n      [/\\*\\*/, { token: \"strong\", next: \"@pop\" }],\n      { include: \"content\" },\n      [/./, { token: \"strong\" }]\n    ],\n    emphasis_underscore: [\n      [/_/, { token: \"emphasis\", next: \"@pop\" }],\n      { include: \"content\" },\n      [/./, { token: \"emphasis\" }]\n    ],\n    emphasis_asterisk: [\n      [/\\*(?!\\*)/, { token: \"emphasis\", next: \"@pop\" }],\n      { include: \"content\" },\n      [/./, { token: \"emphasis\" }]\n    ],\n    frontmatter: [[/^---$/, { token: \"meta.content\", nextEmbedded: \"@pop\", next: \"@pop\" }]],\n    codeblock_highlight_backtick: [\n      [/\\s*`{3,}\\s*$/, { token: \"string\", next: \"@pop\", nextEmbedded: \"@pop\" }],\n      [/.*$/, \"variable.source\"]\n    ],\n    codeblock_highlight_tilde: [\n      [/\\s*~{3,}\\s*$/, { token: \"string\", next: \"@pop\", nextEmbedded: \"@pop\" }],\n      [/.*$/, \"variable.source\"]\n    ],\n    codeblock_backtick: [\n      [/\\s*`{3,}\\s*$/, { token: \"string\", next: \"@pop\" }],\n      [/.*$/, \"variable.source\"]\n    ],\n    codeblock_tilde: [\n      [/\\s*~{3,}\\s*$/, { token: \"string\", next: \"@pop\" }],\n      [/.*$/, \"variable.source\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/mips/mips.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/mips/mips.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/mips/mips.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"mips\",\n  extensions: [\".s\"],\n  aliases: [\"MIPS\", \"MIPS-V\"],\n  mimetypes: [\"text/x-mips\", \"text/mips\", \"text/plaintext\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/mips/mips\"], resolve, reject);\n      });\n    } else {\n      return import(\"./mips.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/mips/mips.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/mips/mips.ts\nvar conf = {\n  wordPattern: /(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#%\\^\\&\\*\\(\\)\\=\\$\\-\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,\n  comments: {\n    blockComment: [\"###\", \"###\"],\n    lineComment: \"#\"\n  },\n  folding: {\n    markers: {\n      start: new RegExp(\"^\\\\s*#region\\\\b\"),\n      end: new RegExp(\"^\\\\s*#endregion\\\\b\")\n    }\n  }\n};\nvar language = {\n  defaultToken: \"\",\n  ignoreCase: false,\n  tokenPostfix: \".mips\",\n  regEx: /\\/(?!\\/\\/)(?:[^\\/\\\\]|\\\\.)*\\/[igm]*/,\n  keywords: [\n    \".data\",\n    \".text\",\n    \"syscall\",\n    \"trap\",\n    \"add\",\n    \"addu\",\n    \"addi\",\n    \"addiu\",\n    \"and\",\n    \"andi\",\n    \"div\",\n    \"divu\",\n    \"mult\",\n    \"multu\",\n    \"nor\",\n    \"or\",\n    \"ori\",\n    \"sll\",\n    \"slv\",\n    \"sra\",\n    \"srav\",\n    \"srl\",\n    \"srlv\",\n    \"sub\",\n    \"subu\",\n    \"xor\",\n    \"xori\",\n    \"lhi\",\n    \"lho\",\n    \"lhi\",\n    \"llo\",\n    \"slt\",\n    \"slti\",\n    \"sltu\",\n    \"sltiu\",\n    \"beq\",\n    \"bgtz\",\n    \"blez\",\n    \"bne\",\n    \"j\",\n    \"jal\",\n    \"jalr\",\n    \"jr\",\n    \"lb\",\n    \"lbu\",\n    \"lh\",\n    \"lhu\",\n    \"lw\",\n    \"li\",\n    \"la\",\n    \"sb\",\n    \"sh\",\n    \"sw\",\n    \"mfhi\",\n    \"mflo\",\n    \"mthi\",\n    \"mtlo\",\n    \"move\"\n  ],\n  // we include these common regular expressions\n  symbols: /[\\.,\\:]+/,\n  escapes: /\\\\(?:[abfnrtv\\\\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      // identifiers and keywords\n      [/\\$[a-zA-Z_]\\w*/, \"variable.predefined\"],\n      [\n        /[.a-zA-Z_]\\w*/,\n        {\n          cases: {\n            this: \"variable.predefined\",\n            \"@keywords\": { token: \"keyword.$0\" },\n            \"@default\": \"\"\n          }\n        }\n      ],\n      // whitespace\n      [/[ \\t\\r\\n]+/, \"\"],\n      // Comments\n      [/#.*$/, \"comment\"],\n      // regular expressions\n      [\"///\", { token: \"regexp\", next: \"@hereregexp\" }],\n      [/^(\\s*)(@regEx)/, [\"\", \"regexp\"]],\n      [/(\\,)(\\s*)(@regEx)/, [\"delimiter\", \"\", \"regexp\"]],\n      [/(\\:)(\\s*)(@regEx)/, [\"delimiter\", \"\", \"regexp\"]],\n      // delimiters\n      [/@symbols/, \"delimiter\"],\n      // numbers\n      [/\\d+[eE]([\\-+]?\\d+)?/, \"number.float\"],\n      [/\\d+\\.\\d+([eE][\\-+]?\\d+)?/, \"number.float\"],\n      [/0[xX][0-9a-fA-F]+/, \"number.hex\"],\n      [/0[0-7]+(?!\\d)/, \"number.octal\"],\n      [/\\d+/, \"number\"],\n      // delimiter: after number because of .\\d floats\n      [/[,.]/, \"delimiter\"],\n      // strings:\n      [/\"\"\"/, \"string\", '@herestring.\"\"\"'],\n      [/'''/, \"string\", \"@herestring.'''\"],\n      [\n        /\"/,\n        {\n          cases: {\n            \"@eos\": \"string\",\n            \"@default\": { token: \"string\", next: '@string.\"' }\n          }\n        }\n      ],\n      [\n        /'/,\n        {\n          cases: {\n            \"@eos\": \"string\",\n            \"@default\": { token: \"string\", next: \"@string.'\" }\n          }\n        }\n      ]\n    ],\n    string: [\n      [/[^\"'\\#\\\\]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\./, \"string.escape.invalid\"],\n      [/\\./, \"string.escape.invalid\"],\n      [\n        /#{/,\n        {\n          cases: {\n            '$S2==\"': {\n              token: \"string\",\n              next: \"root.interpolatedstring\"\n            },\n            \"@default\": \"string\"\n          }\n        }\n      ],\n      [\n        /[\"']/,\n        {\n          cases: {\n            \"$#==$S2\": { token: \"string\", next: \"@pop\" },\n            \"@default\": \"string\"\n          }\n        }\n      ],\n      [/#/, \"string\"]\n    ],\n    herestring: [\n      [\n        /(\"\"\"|''')/,\n        {\n          cases: {\n            \"$1==$S2\": { token: \"string\", next: \"@pop\" },\n            \"@default\": \"string\"\n          }\n        }\n      ],\n      [/[^#\\\\'\"]+/, \"string\"],\n      [/['\"]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\./, \"string.escape.invalid\"],\n      [/#{/, { token: \"string.quote\", next: \"root.interpolatedstring\" }],\n      [/#/, \"string\"]\n    ],\n    comment: [\n      [/[^#]+/, \"comment\"],\n      [/#/, \"comment\"]\n    ],\n    hereregexp: [\n      [/[^\\\\\\/#]+/, \"regexp\"],\n      [/\\\\./, \"regexp\"],\n      [/#.*$/, \"comment\"],\n      [\"///[igm]*\", { token: \"regexp\", next: \"@pop\" }],\n      [/\\//, \"regexp\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/monaco.contribution.js",
    "content": "import '../editor/editor.api.js';\n/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/monaco.contribution.ts\nimport \"./abap/abap.contribution.js\";\nimport \"./apex/apex.contribution.js\";\nimport \"./azcli/azcli.contribution.js\";\nimport \"./bat/bat.contribution.js\";\nimport \"./bicep/bicep.contribution.js\";\nimport \"./cameligo/cameligo.contribution.js\";\nimport \"./clojure/clojure.contribution.js\";\nimport \"./coffee/coffee.contribution.js\";\nimport \"./cpp/cpp.contribution.js\";\nimport \"./csharp/csharp.contribution.js\";\nimport \"./csp/csp.contribution.js\";\nimport \"./css/css.contribution.js\";\nimport \"./cypher/cypher.contribution.js\";\nimport \"./dart/dart.contribution.js\";\nimport \"./dockerfile/dockerfile.contribution.js\";\nimport \"./ecl/ecl.contribution.js\";\nimport \"./elixir/elixir.contribution.js\";\nimport \"./flow9/flow9.contribution.js\";\nimport \"./fsharp/fsharp.contribution.js\";\nimport \"./freemarker2/freemarker2.contribution.js\";\nimport \"./go/go.contribution.js\";\nimport \"./graphql/graphql.contribution.js\";\nimport \"./handlebars/handlebars.contribution.js\";\nimport \"./hcl/hcl.contribution.js\";\nimport \"./html/html.contribution.js\";\nimport \"./ini/ini.contribution.js\";\nimport \"./java/java.contribution.js\";\nimport \"./javascript/javascript.contribution.js\";\nimport \"./julia/julia.contribution.js\";\nimport \"./kotlin/kotlin.contribution.js\";\nimport \"./less/less.contribution.js\";\nimport \"./lexon/lexon.contribution.js\";\nimport \"./lua/lua.contribution.js\";\nimport \"./liquid/liquid.contribution.js\";\nimport \"./m3/m3.contribution.js\";\nimport \"./markdown/markdown.contribution.js\";\nimport \"./mdx/mdx.contribution.js\";\nimport \"./mips/mips.contribution.js\";\nimport \"./msdax/msdax.contribution.js\";\nimport \"./mysql/mysql.contribution.js\";\nimport \"./objective-c/objective-c.contribution.js\";\nimport \"./pascal/pascal.contribution.js\";\nimport \"./pascaligo/pascaligo.contribution.js\";\nimport \"./perl/perl.contribution.js\";\nimport \"./pgsql/pgsql.contribution.js\";\nimport \"./php/php.contribution.js\";\nimport \"./pla/pla.contribution.js\";\nimport \"./postiats/postiats.contribution.js\";\nimport \"./powerquery/powerquery.contribution.js\";\nimport \"./powershell/powershell.contribution.js\";\nimport \"./protobuf/protobuf.contribution.js\";\nimport \"./pug/pug.contribution.js\";\nimport \"./python/python.contribution.js\";\nimport \"./qsharp/qsharp.contribution.js\";\nimport \"./r/r.contribution.js\";\nimport \"./razor/razor.contribution.js\";\nimport \"./redis/redis.contribution.js\";\nimport \"./redshift/redshift.contribution.js\";\nimport \"./restructuredtext/restructuredtext.contribution.js\";\nimport \"./ruby/ruby.contribution.js\";\nimport \"./rust/rust.contribution.js\";\nimport \"./sb/sb.contribution.js\";\nimport \"./scala/scala.contribution.js\";\nimport \"./scheme/scheme.contribution.js\";\nimport \"./scss/scss.contribution.js\";\nimport \"./shell/shell.contribution.js\";\nimport \"./solidity/solidity.contribution.js\";\nimport \"./sophia/sophia.contribution.js\";\nimport \"./sparql/sparql.contribution.js\";\nimport \"./sql/sql.contribution.js\";\nimport \"./st/st.contribution.js\";\nimport \"./swift/swift.contribution.js\";\nimport \"./systemverilog/systemverilog.contribution.js\";\nimport \"./tcl/tcl.contribution.js\";\nimport \"./twig/twig.contribution.js\";\nimport \"./typescript/typescript.contribution.js\";\nimport \"./typespec/typespec.contribution.js\";\nimport \"./vb/vb.contribution.js\";\nimport \"./wgsl/wgsl.contribution.js\";\nimport \"./xml/xml.contribution.js\";\nimport \"./yaml/yaml.contribution.js\";\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/msdax/msdax.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/msdax/msdax.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/msdax/msdax.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"msdax\",\n  extensions: [\".dax\", \".msdax\"],\n  aliases: [\"DAX\", \"MSDAX\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/msdax/msdax\"], resolve, reject);\n      });\n    } else {\n      return import(\"./msdax.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/msdax/msdax.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/msdax/msdax.ts\nvar conf = {\n  comments: {\n    lineComment: \"//\",\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"[\", \"]\"],\n    [\"(\", \")\"],\n    [\"{\", \"}\"]\n  ],\n  autoClosingPairs: [\n    { open: '\"', close: '\"', notIn: [\"string\", \"comment\"] },\n    { open: \"'\", close: \"'\", notIn: [\"string\", \"comment\"] },\n    { open: \"[\", close: \"]\", notIn: [\"string\", \"comment\"] },\n    { open: \"(\", close: \")\", notIn: [\"string\", \"comment\"] },\n    { open: \"{\", close: \"}\", notIn: [\"string\", \"comment\"] }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".msdax\",\n  ignoreCase: true,\n  brackets: [\n    { open: \"[\", close: \"]\", token: \"delimiter.square\" },\n    { open: \"{\", close: \"}\", token: \"delimiter.brackets\" },\n    { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" }\n  ],\n  keywords: [\n    // Query keywords\n    \"VAR\",\n    \"RETURN\",\n    \"NOT\",\n    \"EVALUATE\",\n    \"DATATABLE\",\n    \"ORDER\",\n    \"BY\",\n    \"START\",\n    \"AT\",\n    \"DEFINE\",\n    \"MEASURE\",\n    \"ASC\",\n    \"DESC\",\n    \"IN\",\n    // Datatable types\n    \"BOOLEAN\",\n    \"DOUBLE\",\n    \"INTEGER\",\n    \"DATETIME\",\n    \"CURRENCY\",\n    \"STRING\"\n  ],\n  functions: [\n    // Relational\n    \"CLOSINGBALANCEMONTH\",\n    \"CLOSINGBALANCEQUARTER\",\n    \"CLOSINGBALANCEYEAR\",\n    \"DATEADD\",\n    \"DATESBETWEEN\",\n    \"DATESINPERIOD\",\n    \"DATESMTD\",\n    \"DATESQTD\",\n    \"DATESYTD\",\n    \"ENDOFMONTH\",\n    \"ENDOFQUARTER\",\n    \"ENDOFYEAR\",\n    \"FIRSTDATE\",\n    \"FIRSTNONBLANK\",\n    \"LASTDATE\",\n    \"LASTNONBLANK\",\n    \"NEXTDAY\",\n    \"NEXTMONTH\",\n    \"NEXTQUARTER\",\n    \"NEXTYEAR\",\n    \"OPENINGBALANCEMONTH\",\n    \"OPENINGBALANCEQUARTER\",\n    \"OPENINGBALANCEYEAR\",\n    \"PARALLELPERIOD\",\n    \"PREVIOUSDAY\",\n    \"PREVIOUSMONTH\",\n    \"PREVIOUSQUARTER\",\n    \"PREVIOUSYEAR\",\n    \"SAMEPERIODLASTYEAR\",\n    \"STARTOFMONTH\",\n    \"STARTOFQUARTER\",\n    \"STARTOFYEAR\",\n    \"TOTALMTD\",\n    \"TOTALQTD\",\n    \"TOTALYTD\",\n    \"ADDCOLUMNS\",\n    \"ADDMISSINGITEMS\",\n    \"ALL\",\n    \"ALLEXCEPT\",\n    \"ALLNOBLANKROW\",\n    \"ALLSELECTED\",\n    \"CALCULATE\",\n    \"CALCULATETABLE\",\n    \"CALENDAR\",\n    \"CALENDARAUTO\",\n    \"CROSSFILTER\",\n    \"CROSSJOIN\",\n    \"CURRENTGROUP\",\n    \"DATATABLE\",\n    \"DETAILROWS\",\n    \"DISTINCT\",\n    \"EARLIER\",\n    \"EARLIEST\",\n    \"EXCEPT\",\n    \"FILTER\",\n    \"FILTERS\",\n    \"GENERATE\",\n    \"GENERATEALL\",\n    \"GROUPBY\",\n    \"IGNORE\",\n    \"INTERSECT\",\n    \"ISONORAFTER\",\n    \"KEEPFILTERS\",\n    \"LOOKUPVALUE\",\n    \"NATURALINNERJOIN\",\n    \"NATURALLEFTOUTERJOIN\",\n    \"RELATED\",\n    \"RELATEDTABLE\",\n    \"ROLLUP\",\n    \"ROLLUPADDISSUBTOTAL\",\n    \"ROLLUPGROUP\",\n    \"ROLLUPISSUBTOTAL\",\n    \"ROW\",\n    \"SAMPLE\",\n    \"SELECTCOLUMNS\",\n    \"SUBSTITUTEWITHINDEX\",\n    \"SUMMARIZE\",\n    \"SUMMARIZECOLUMNS\",\n    \"TOPN\",\n    \"TREATAS\",\n    \"UNION\",\n    \"USERELATIONSHIP\",\n    \"VALUES\",\n    \"SUM\",\n    \"SUMX\",\n    \"PATH\",\n    \"PATHCONTAINS\",\n    \"PATHITEM\",\n    \"PATHITEMREVERSE\",\n    \"PATHLENGTH\",\n    \"AVERAGE\",\n    \"AVERAGEA\",\n    \"AVERAGEX\",\n    \"COUNT\",\n    \"COUNTA\",\n    \"COUNTAX\",\n    \"COUNTBLANK\",\n    \"COUNTROWS\",\n    \"COUNTX\",\n    \"DISTINCTCOUNT\",\n    \"DIVIDE\",\n    \"GEOMEAN\",\n    \"GEOMEANX\",\n    \"MAX\",\n    \"MAXA\",\n    \"MAXX\",\n    \"MEDIAN\",\n    \"MEDIANX\",\n    \"MIN\",\n    \"MINA\",\n    \"MINX\",\n    \"PERCENTILE.EXC\",\n    \"PERCENTILE.INC\",\n    \"PERCENTILEX.EXC\",\n    \"PERCENTILEX.INC\",\n    \"PRODUCT\",\n    \"PRODUCTX\",\n    \"RANK.EQ\",\n    \"RANKX\",\n    \"STDEV.P\",\n    \"STDEV.S\",\n    \"STDEVX.P\",\n    \"STDEVX.S\",\n    \"VAR.P\",\n    \"VAR.S\",\n    \"VARX.P\",\n    \"VARX.S\",\n    \"XIRR\",\n    \"XNPV\",\n    // Scalar\n    \"DATE\",\n    \"DATEDIFF\",\n    \"DATEVALUE\",\n    \"DAY\",\n    \"EDATE\",\n    \"EOMONTH\",\n    \"HOUR\",\n    \"MINUTE\",\n    \"MONTH\",\n    \"NOW\",\n    \"SECOND\",\n    \"TIME\",\n    \"TIMEVALUE\",\n    \"TODAY\",\n    \"WEEKDAY\",\n    \"WEEKNUM\",\n    \"YEAR\",\n    \"YEARFRAC\",\n    \"CONTAINS\",\n    \"CONTAINSROW\",\n    \"CUSTOMDATA\",\n    \"ERROR\",\n    \"HASONEFILTER\",\n    \"HASONEVALUE\",\n    \"ISBLANK\",\n    \"ISCROSSFILTERED\",\n    \"ISEMPTY\",\n    \"ISERROR\",\n    \"ISEVEN\",\n    \"ISFILTERED\",\n    \"ISLOGICAL\",\n    \"ISNONTEXT\",\n    \"ISNUMBER\",\n    \"ISODD\",\n    \"ISSUBTOTAL\",\n    \"ISTEXT\",\n    \"USERNAME\",\n    \"USERPRINCIPALNAME\",\n    \"AND\",\n    \"FALSE\",\n    \"IF\",\n    \"IFERROR\",\n    \"NOT\",\n    \"OR\",\n    \"SWITCH\",\n    \"TRUE\",\n    \"ABS\",\n    \"ACOS\",\n    \"ACOSH\",\n    \"ACOT\",\n    \"ACOTH\",\n    \"ASIN\",\n    \"ASINH\",\n    \"ATAN\",\n    \"ATANH\",\n    \"BETA.DIST\",\n    \"BETA.INV\",\n    \"CEILING\",\n    \"CHISQ.DIST\",\n    \"CHISQ.DIST.RT\",\n    \"CHISQ.INV\",\n    \"CHISQ.INV.RT\",\n    \"COMBIN\",\n    \"COMBINA\",\n    \"CONFIDENCE.NORM\",\n    \"CONFIDENCE.T\",\n    \"COS\",\n    \"COSH\",\n    \"COT\",\n    \"COTH\",\n    \"CURRENCY\",\n    \"DEGREES\",\n    \"EVEN\",\n    \"EXP\",\n    \"EXPON.DIST\",\n    \"FACT\",\n    \"FLOOR\",\n    \"GCD\",\n    \"INT\",\n    \"ISO.CEILING\",\n    \"LCM\",\n    \"LN\",\n    \"LOG\",\n    \"LOG10\",\n    \"MOD\",\n    \"MROUND\",\n    \"ODD\",\n    \"PERMUT\",\n    \"PI\",\n    \"POISSON.DIST\",\n    \"POWER\",\n    \"QUOTIENT\",\n    \"RADIANS\",\n    \"RAND\",\n    \"RANDBETWEEN\",\n    \"ROUND\",\n    \"ROUNDDOWN\",\n    \"ROUNDUP\",\n    \"SIGN\",\n    \"SIN\",\n    \"SINH\",\n    \"SQRT\",\n    \"SQRTPI\",\n    \"TAN\",\n    \"TANH\",\n    \"TRUNC\",\n    \"BLANK\",\n    \"CONCATENATE\",\n    \"CONCATENATEX\",\n    \"EXACT\",\n    \"FIND\",\n    \"FIXED\",\n    \"FORMAT\",\n    \"LEFT\",\n    \"LEN\",\n    \"LOWER\",\n    \"MID\",\n    \"REPLACE\",\n    \"REPT\",\n    \"RIGHT\",\n    \"SEARCH\",\n    \"SUBSTITUTE\",\n    \"TRIM\",\n    \"UNICHAR\",\n    \"UNICODE\",\n    \"UPPER\",\n    \"VALUE\"\n  ],\n  tokenizer: {\n    root: [\n      { include: \"@comments\" },\n      { include: \"@whitespace\" },\n      { include: \"@numbers\" },\n      { include: \"@strings\" },\n      { include: \"@complexIdentifiers\" },\n      [/[;,.]/, \"delimiter\"],\n      [/[({})]/, \"@brackets\"],\n      [\n        /[a-z_][a-zA-Z0-9_]*/,\n        {\n          cases: {\n            \"@keywords\": \"keyword\",\n            \"@functions\": \"keyword\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      [/[<>=!%&+\\-*/|~^]/, \"operator\"]\n    ],\n    whitespace: [[/\\s+/, \"white\"]],\n    comments: [\n      [/\\/\\/+.*/, \"comment\"],\n      [/\\/\\*/, { token: \"comment.quote\", next: \"@comment\" }]\n    ],\n    comment: [\n      [/[^*/]+/, \"comment\"],\n      [/\\*\\//, { token: \"comment.quote\", next: \"@pop\" }],\n      [/./, \"comment\"]\n    ],\n    numbers: [\n      [/0[xX][0-9a-fA-F]*/, \"number\"],\n      [/[$][+-]*\\d*(\\.\\d*)?/, \"number\"],\n      [/((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][\\-+]?\\d+)?/, \"number\"]\n    ],\n    strings: [\n      [/N\"/, { token: \"string\", next: \"@string\" }],\n      [/\"/, { token: \"string\", next: \"@string\" }]\n    ],\n    string: [\n      [/[^\"]+/, \"string\"],\n      [/\"\"/, \"string\"],\n      [/\"/, { token: \"string\", next: \"@pop\" }]\n    ],\n    complexIdentifiers: [\n      [/\\[/, { token: \"identifier.quote\", next: \"@bracketedIdentifier\" }],\n      [/'/, { token: \"identifier.quote\", next: \"@quotedIdentifier\" }]\n    ],\n    bracketedIdentifier: [\n      [/[^\\]]+/, \"identifier\"],\n      [/]]/, \"identifier\"],\n      [/]/, { token: \"identifier.quote\", next: \"@pop\" }]\n    ],\n    quotedIdentifier: [\n      [/[^']+/, \"identifier\"],\n      [/''/, \"identifier\"],\n      [/'/, { token: \"identifier.quote\", next: \"@pop\" }]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/mysql/mysql.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/mysql/mysql.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/mysql/mysql.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"mysql\",\n  extensions: [],\n  aliases: [\"MySQL\", \"mysql\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/mysql/mysql\"], resolve, reject);\n      });\n    } else {\n      return import(\"./mysql.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/mysql/mysql.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/mysql/mysql.ts\nvar conf = {\n  comments: {\n    lineComment: \"--\",\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".sql\",\n  ignoreCase: true,\n  brackets: [\n    { open: \"[\", close: \"]\", token: \"delimiter.square\" },\n    { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" }\n  ],\n  keywords: [\n    // This list is generated using `keywords.js`\n    \"ACCESSIBLE\",\n    \"ADD\",\n    \"ALL\",\n    \"ALTER\",\n    \"ANALYZE\",\n    \"AND\",\n    \"AS\",\n    \"ASC\",\n    \"ASENSITIVE\",\n    \"BEFORE\",\n    \"BETWEEN\",\n    \"BIGINT\",\n    \"BINARY\",\n    \"BLOB\",\n    \"BOTH\",\n    \"BY\",\n    \"CALL\",\n    \"CASCADE\",\n    \"CASE\",\n    \"CHANGE\",\n    \"CHAR\",\n    \"CHARACTER\",\n    \"CHECK\",\n    \"COLLATE\",\n    \"COLUMN\",\n    \"CONDITION\",\n    \"CONSTRAINT\",\n    \"CONTINUE\",\n    \"CONVERT\",\n    \"CREATE\",\n    \"CROSS\",\n    \"CUBE\",\n    \"CUME_DIST\",\n    \"CURRENT_DATE\",\n    \"CURRENT_TIME\",\n    \"CURRENT_TIMESTAMP\",\n    \"CURRENT_USER\",\n    \"CURSOR\",\n    \"DATABASE\",\n    \"DATABASES\",\n    \"DAY_HOUR\",\n    \"DAY_MICROSECOND\",\n    \"DAY_MINUTE\",\n    \"DAY_SECOND\",\n    \"DEC\",\n    \"DECIMAL\",\n    \"DECLARE\",\n    \"DEFAULT\",\n    \"DELAYED\",\n    \"DELETE\",\n    \"DENSE_RANK\",\n    \"DESC\",\n    \"DESCRIBE\",\n    \"DETERMINISTIC\",\n    \"DISTINCT\",\n    \"DISTINCTROW\",\n    \"DIV\",\n    \"DOUBLE\",\n    \"DROP\",\n    \"DUAL\",\n    \"EACH\",\n    \"ELSE\",\n    \"ELSEIF\",\n    \"EMPTY\",\n    \"ENCLOSED\",\n    \"ESCAPED\",\n    \"EXCEPT\",\n    \"EXISTS\",\n    \"EXIT\",\n    \"EXPLAIN\",\n    \"FALSE\",\n    \"FETCH\",\n    \"FIRST_VALUE\",\n    \"FLOAT\",\n    \"FLOAT4\",\n    \"FLOAT8\",\n    \"FOR\",\n    \"FORCE\",\n    \"FOREIGN\",\n    \"FROM\",\n    \"FULLTEXT\",\n    \"FUNCTION\",\n    \"GENERATED\",\n    \"GET\",\n    \"GRANT\",\n    \"GROUP\",\n    \"GROUPING\",\n    \"GROUPS\",\n    \"HAVING\",\n    \"HIGH_PRIORITY\",\n    \"HOUR_MICROSECOND\",\n    \"HOUR_MINUTE\",\n    \"HOUR_SECOND\",\n    \"IF\",\n    \"IGNORE\",\n    \"IN\",\n    \"INDEX\",\n    \"INFILE\",\n    \"INNER\",\n    \"INOUT\",\n    \"INSENSITIVE\",\n    \"INSERT\",\n    \"INT\",\n    \"INT1\",\n    \"INT2\",\n    \"INT3\",\n    \"INT4\",\n    \"INT8\",\n    \"INTEGER\",\n    \"INTERVAL\",\n    \"INTO\",\n    \"IO_AFTER_GTIDS\",\n    \"IO_BEFORE_GTIDS\",\n    \"IS\",\n    \"ITERATE\",\n    \"JOIN\",\n    \"JSON_TABLE\",\n    \"KEY\",\n    \"KEYS\",\n    \"KILL\",\n    \"LAG\",\n    \"LAST_VALUE\",\n    \"LATERAL\",\n    \"LEAD\",\n    \"LEADING\",\n    \"LEAVE\",\n    \"LEFT\",\n    \"LIKE\",\n    \"LIMIT\",\n    \"LINEAR\",\n    \"LINES\",\n    \"LOAD\",\n    \"LOCALTIME\",\n    \"LOCALTIMESTAMP\",\n    \"LOCK\",\n    \"LONG\",\n    \"LONGBLOB\",\n    \"LONGTEXT\",\n    \"LOOP\",\n    \"LOW_PRIORITY\",\n    \"MASTER_BIND\",\n    \"MASTER_SSL_VERIFY_SERVER_CERT\",\n    \"MATCH\",\n    \"MAXVALUE\",\n    \"MEDIUMBLOB\",\n    \"MEDIUMINT\",\n    \"MEDIUMTEXT\",\n    \"MIDDLEINT\",\n    \"MINUTE_MICROSECOND\",\n    \"MINUTE_SECOND\",\n    \"MOD\",\n    \"MODIFIES\",\n    \"NATURAL\",\n    \"NOT\",\n    \"NO_WRITE_TO_BINLOG\",\n    \"NTH_VALUE\",\n    \"NTILE\",\n    \"NULL\",\n    \"NUMERIC\",\n    \"OF\",\n    \"ON\",\n    \"OPTIMIZE\",\n    \"OPTIMIZER_COSTS\",\n    \"OPTION\",\n    \"OPTIONALLY\",\n    \"OR\",\n    \"ORDER\",\n    \"OUT\",\n    \"OUTER\",\n    \"OUTFILE\",\n    \"OVER\",\n    \"PARTITION\",\n    \"PERCENT_RANK\",\n    \"PRECISION\",\n    \"PRIMARY\",\n    \"PROCEDURE\",\n    \"PURGE\",\n    \"RANGE\",\n    \"RANK\",\n    \"READ\",\n    \"READS\",\n    \"READ_WRITE\",\n    \"REAL\",\n    \"RECURSIVE\",\n    \"REFERENCES\",\n    \"REGEXP\",\n    \"RELEASE\",\n    \"RENAME\",\n    \"REPEAT\",\n    \"REPLACE\",\n    \"REQUIRE\",\n    \"RESIGNAL\",\n    \"RESTRICT\",\n    \"RETURN\",\n    \"REVOKE\",\n    \"RIGHT\",\n    \"RLIKE\",\n    \"ROW\",\n    \"ROWS\",\n    \"ROW_NUMBER\",\n    \"SCHEMA\",\n    \"SCHEMAS\",\n    \"SECOND_MICROSECOND\",\n    \"SELECT\",\n    \"SENSITIVE\",\n    \"SEPARATOR\",\n    \"SET\",\n    \"SHOW\",\n    \"SIGNAL\",\n    \"SMALLINT\",\n    \"SPATIAL\",\n    \"SPECIFIC\",\n    \"SQL\",\n    \"SQLEXCEPTION\",\n    \"SQLSTATE\",\n    \"SQLWARNING\",\n    \"SQL_BIG_RESULT\",\n    \"SQL_CALC_FOUND_ROWS\",\n    \"SQL_SMALL_RESULT\",\n    \"SSL\",\n    \"STARTING\",\n    \"STORED\",\n    \"STRAIGHT_JOIN\",\n    \"SYSTEM\",\n    \"TABLE\",\n    \"TERMINATED\",\n    \"THEN\",\n    \"TINYBLOB\",\n    \"TINYINT\",\n    \"TINYTEXT\",\n    \"TO\",\n    \"TRAILING\",\n    \"TRIGGER\",\n    \"TRUE\",\n    \"UNDO\",\n    \"UNION\",\n    \"UNIQUE\",\n    \"UNLOCK\",\n    \"UNSIGNED\",\n    \"UPDATE\",\n    \"USAGE\",\n    \"USE\",\n    \"USING\",\n    \"UTC_DATE\",\n    \"UTC_TIME\",\n    \"UTC_TIMESTAMP\",\n    \"VALUES\",\n    \"VARBINARY\",\n    \"VARCHAR\",\n    \"VARCHARACTER\",\n    \"VARYING\",\n    \"VIRTUAL\",\n    \"WHEN\",\n    \"WHERE\",\n    \"WHILE\",\n    \"WINDOW\",\n    \"WITH\",\n    \"WRITE\",\n    \"XOR\",\n    \"YEAR_MONTH\",\n    \"ZEROFILL\"\n  ],\n  operators: [\n    \"AND\",\n    \"BETWEEN\",\n    \"IN\",\n    \"LIKE\",\n    \"NOT\",\n    \"OR\",\n    \"IS\",\n    \"NULL\",\n    \"INTERSECT\",\n    \"UNION\",\n    \"INNER\",\n    \"JOIN\",\n    \"LEFT\",\n    \"OUTER\",\n    \"RIGHT\"\n  ],\n  builtinFunctions: [\n    \"ABS\",\n    \"ACOS\",\n    \"ADDDATE\",\n    \"ADDTIME\",\n    \"AES_DECRYPT\",\n    \"AES_ENCRYPT\",\n    \"ANY_VALUE\",\n    \"Area\",\n    \"AsBinary\",\n    \"AsWKB\",\n    \"ASCII\",\n    \"ASIN\",\n    \"AsText\",\n    \"AsWKT\",\n    \"ASYMMETRIC_DECRYPT\",\n    \"ASYMMETRIC_DERIVE\",\n    \"ASYMMETRIC_ENCRYPT\",\n    \"ASYMMETRIC_SIGN\",\n    \"ASYMMETRIC_VERIFY\",\n    \"ATAN\",\n    \"ATAN2\",\n    \"ATAN\",\n    \"AVG\",\n    \"BENCHMARK\",\n    \"BIN\",\n    \"BIT_AND\",\n    \"BIT_COUNT\",\n    \"BIT_LENGTH\",\n    \"BIT_OR\",\n    \"BIT_XOR\",\n    \"Buffer\",\n    \"CAST\",\n    \"CEIL\",\n    \"CEILING\",\n    \"Centroid\",\n    \"CHAR\",\n    \"CHAR_LENGTH\",\n    \"CHARACTER_LENGTH\",\n    \"CHARSET\",\n    \"COALESCE\",\n    \"COERCIBILITY\",\n    \"COLLATION\",\n    \"COMPRESS\",\n    \"CONCAT\",\n    \"CONCAT_WS\",\n    \"CONNECTION_ID\",\n    \"Contains\",\n    \"CONV\",\n    \"CONVERT\",\n    \"CONVERT_TZ\",\n    \"ConvexHull\",\n    \"COS\",\n    \"COT\",\n    \"COUNT\",\n    \"CRC32\",\n    \"CREATE_ASYMMETRIC_PRIV_KEY\",\n    \"CREATE_ASYMMETRIC_PUB_KEY\",\n    \"CREATE_DH_PARAMETERS\",\n    \"CREATE_DIGEST\",\n    \"Crosses\",\n    \"CUME_DIST\",\n    \"CURDATE\",\n    \"CURRENT_DATE\",\n    \"CURRENT_ROLE\",\n    \"CURRENT_TIME\",\n    \"CURRENT_TIMESTAMP\",\n    \"CURRENT_USER\",\n    \"CURTIME\",\n    \"DATABASE\",\n    \"DATE\",\n    \"DATE_ADD\",\n    \"DATE_FORMAT\",\n    \"DATE_SUB\",\n    \"DATEDIFF\",\n    \"DAY\",\n    \"DAYNAME\",\n    \"DAYOFMONTH\",\n    \"DAYOFWEEK\",\n    \"DAYOFYEAR\",\n    \"DECODE\",\n    \"DEFAULT\",\n    \"DEGREES\",\n    \"DES_DECRYPT\",\n    \"DES_ENCRYPT\",\n    \"DENSE_RANK\",\n    \"Dimension\",\n    \"Disjoint\",\n    \"Distance\",\n    \"ELT\",\n    \"ENCODE\",\n    \"ENCRYPT\",\n    \"EndPoint\",\n    \"Envelope\",\n    \"Equals\",\n    \"EXP\",\n    \"EXPORT_SET\",\n    \"ExteriorRing\",\n    \"EXTRACT\",\n    \"ExtractValue\",\n    \"FIELD\",\n    \"FIND_IN_SET\",\n    \"FIRST_VALUE\",\n    \"FLOOR\",\n    \"FORMAT\",\n    \"FORMAT_BYTES\",\n    \"FORMAT_PICO_TIME\",\n    \"FOUND_ROWS\",\n    \"FROM_BASE64\",\n    \"FROM_DAYS\",\n    \"FROM_UNIXTIME\",\n    \"GEN_RANGE\",\n    \"GEN_RND_EMAIL\",\n    \"GEN_RND_PAN\",\n    \"GEN_RND_SSN\",\n    \"GEN_RND_US_PHONE\",\n    \"GeomCollection\",\n    \"GeomCollFromText\",\n    \"GeometryCollectionFromText\",\n    \"GeomCollFromWKB\",\n    \"GeometryCollectionFromWKB\",\n    \"GeometryCollection\",\n    \"GeometryN\",\n    \"GeometryType\",\n    \"GeomFromText\",\n    \"GeometryFromText\",\n    \"GeomFromWKB\",\n    \"GeometryFromWKB\",\n    \"GET_FORMAT\",\n    \"GET_LOCK\",\n    \"GLength\",\n    \"GREATEST\",\n    \"GROUP_CONCAT\",\n    \"GROUPING\",\n    \"GTID_SUBSET\",\n    \"GTID_SUBTRACT\",\n    \"HEX\",\n    \"HOUR\",\n    \"ICU_VERSION\",\n    \"IF\",\n    \"IFNULL\",\n    \"INET_ATON\",\n    \"INET_NTOA\",\n    \"INET6_ATON\",\n    \"INET6_NTOA\",\n    \"INSERT\",\n    \"INSTR\",\n    \"InteriorRingN\",\n    \"Intersects\",\n    \"INTERVAL\",\n    \"IS_FREE_LOCK\",\n    \"IS_IPV4\",\n    \"IS_IPV4_COMPAT\",\n    \"IS_IPV4_MAPPED\",\n    \"IS_IPV6\",\n    \"IS_USED_LOCK\",\n    \"IS_UUID\",\n    \"IsClosed\",\n    \"IsEmpty\",\n    \"ISNULL\",\n    \"IsSimple\",\n    \"JSON_APPEND\",\n    \"JSON_ARRAY\",\n    \"JSON_ARRAY_APPEND\",\n    \"JSON_ARRAY_INSERT\",\n    \"JSON_ARRAYAGG\",\n    \"JSON_CONTAINS\",\n    \"JSON_CONTAINS_PATH\",\n    \"JSON_DEPTH\",\n    \"JSON_EXTRACT\",\n    \"JSON_INSERT\",\n    \"JSON_KEYS\",\n    \"JSON_LENGTH\",\n    \"JSON_MERGE\",\n    \"JSON_MERGE_PATCH\",\n    \"JSON_MERGE_PRESERVE\",\n    \"JSON_OBJECT\",\n    \"JSON_OBJECTAGG\",\n    \"JSON_OVERLAPS\",\n    \"JSON_PRETTY\",\n    \"JSON_QUOTE\",\n    \"JSON_REMOVE\",\n    \"JSON_REPLACE\",\n    \"JSON_SCHEMA_VALID\",\n    \"JSON_SCHEMA_VALIDATION_REPORT\",\n    \"JSON_SEARCH\",\n    \"JSON_SET\",\n    \"JSON_STORAGE_FREE\",\n    \"JSON_STORAGE_SIZE\",\n    \"JSON_TABLE\",\n    \"JSON_TYPE\",\n    \"JSON_UNQUOTE\",\n    \"JSON_VALID\",\n    \"LAG\",\n    \"LAST_DAY\",\n    \"LAST_INSERT_ID\",\n    \"LAST_VALUE\",\n    \"LCASE\",\n    \"LEAD\",\n    \"LEAST\",\n    \"LEFT\",\n    \"LENGTH\",\n    \"LineFromText\",\n    \"LineStringFromText\",\n    \"LineFromWKB\",\n    \"LineStringFromWKB\",\n    \"LineString\",\n    \"LN\",\n    \"LOAD_FILE\",\n    \"LOCALTIME\",\n    \"LOCALTIMESTAMP\",\n    \"LOCATE\",\n    \"LOG\",\n    \"LOG10\",\n    \"LOG2\",\n    \"LOWER\",\n    \"LPAD\",\n    \"LTRIM\",\n    \"MAKE_SET\",\n    \"MAKEDATE\",\n    \"MAKETIME\",\n    \"MASK_INNER\",\n    \"MASK_OUTER\",\n    \"MASK_PAN\",\n    \"MASK_PAN_RELAXED\",\n    \"MASK_SSN\",\n    \"MASTER_POS_WAIT\",\n    \"MAX\",\n    \"MBRContains\",\n    \"MBRCoveredBy\",\n    \"MBRCovers\",\n    \"MBRDisjoint\",\n    \"MBREqual\",\n    \"MBREquals\",\n    \"MBRIntersects\",\n    \"MBROverlaps\",\n    \"MBRTouches\",\n    \"MBRWithin\",\n    \"MD5\",\n    \"MEMBER OF\",\n    \"MICROSECOND\",\n    \"MID\",\n    \"MIN\",\n    \"MINUTE\",\n    \"MLineFromText\",\n    \"MultiLineStringFromText\",\n    \"MLineFromWKB\",\n    \"MultiLineStringFromWKB\",\n    \"MOD\",\n    \"MONTH\",\n    \"MONTHNAME\",\n    \"MPointFromText\",\n    \"MultiPointFromText\",\n    \"MPointFromWKB\",\n    \"MultiPointFromWKB\",\n    \"MPolyFromText\",\n    \"MultiPolygonFromText\",\n    \"MPolyFromWKB\",\n    \"MultiPolygonFromWKB\",\n    \"MultiLineString\",\n    \"MultiPoint\",\n    \"MultiPolygon\",\n    \"NAME_CONST\",\n    \"NOT IN\",\n    \"NOW\",\n    \"NTH_VALUE\",\n    \"NTILE\",\n    \"NULLIF\",\n    \"NumGeometries\",\n    \"NumInteriorRings\",\n    \"NumPoints\",\n    \"OCT\",\n    \"OCTET_LENGTH\",\n    \"OLD_PASSWORD\",\n    \"ORD\",\n    \"Overlaps\",\n    \"PASSWORD\",\n    \"PERCENT_RANK\",\n    \"PERIOD_ADD\",\n    \"PERIOD_DIFF\",\n    \"PI\",\n    \"Point\",\n    \"PointFromText\",\n    \"PointFromWKB\",\n    \"PointN\",\n    \"PolyFromText\",\n    \"PolygonFromText\",\n    \"PolyFromWKB\",\n    \"PolygonFromWKB\",\n    \"Polygon\",\n    \"POSITION\",\n    \"POW\",\n    \"POWER\",\n    \"PS_CURRENT_THREAD_ID\",\n    \"PS_THREAD_ID\",\n    \"PROCEDURE ANALYSE\",\n    \"QUARTER\",\n    \"QUOTE\",\n    \"RADIANS\",\n    \"RAND\",\n    \"RANDOM_BYTES\",\n    \"RANK\",\n    \"REGEXP_INSTR\",\n    \"REGEXP_LIKE\",\n    \"REGEXP_REPLACE\",\n    \"REGEXP_REPLACE\",\n    \"RELEASE_ALL_LOCKS\",\n    \"RELEASE_LOCK\",\n    \"REPEAT\",\n    \"REPLACE\",\n    \"REVERSE\",\n    \"RIGHT\",\n    \"ROLES_GRAPHML\",\n    \"ROUND\",\n    \"ROW_COUNT\",\n    \"ROW_NUMBER\",\n    \"RPAD\",\n    \"RTRIM\",\n    \"SCHEMA\",\n    \"SEC_TO_TIME\",\n    \"SECOND\",\n    \"SESSION_USER\",\n    \"SHA1\",\n    \"SHA\",\n    \"SHA2\",\n    \"SIGN\",\n    \"SIN\",\n    \"SLEEP\",\n    \"SOUNDEX\",\n    \"SOURCE_POS_WAIT\",\n    \"SPACE\",\n    \"SQRT\",\n    \"SRID\",\n    \"ST_Area\",\n    \"ST_AsBinary\",\n    \"ST_AsWKB\",\n    \"ST_AsGeoJSON\",\n    \"ST_AsText\",\n    \"ST_AsWKT\",\n    \"ST_Buffer\",\n    \"ST_Buffer_Strategy\",\n    \"ST_Centroid\",\n    \"ST_Collect\",\n    \"ST_Contains\",\n    \"ST_ConvexHull\",\n    \"ST_Crosses\",\n    \"ST_Difference\",\n    \"ST_Dimension\",\n    \"ST_Disjoint\",\n    \"ST_Distance\",\n    \"ST_Distance_Sphere\",\n    \"ST_EndPoint\",\n    \"ST_Envelope\",\n    \"ST_Equals\",\n    \"ST_ExteriorRing\",\n    \"ST_FrechetDistance\",\n    \"ST_GeoHash\",\n    \"ST_GeomCollFromText\",\n    \"ST_GeometryCollectionFromText\",\n    \"ST_GeomCollFromTxt\",\n    \"ST_GeomCollFromWKB\",\n    \"ST_GeometryCollectionFromWKB\",\n    \"ST_GeometryN\",\n    \"ST_GeometryType\",\n    \"ST_GeomFromGeoJSON\",\n    \"ST_GeomFromText\",\n    \"ST_GeometryFromText\",\n    \"ST_GeomFromWKB\",\n    \"ST_GeometryFromWKB\",\n    \"ST_HausdorffDistance\",\n    \"ST_InteriorRingN\",\n    \"ST_Intersection\",\n    \"ST_Intersects\",\n    \"ST_IsClosed\",\n    \"ST_IsEmpty\",\n    \"ST_IsSimple\",\n    \"ST_IsValid\",\n    \"ST_LatFromGeoHash\",\n    \"ST_Length\",\n    \"ST_LineFromText\",\n    \"ST_LineStringFromText\",\n    \"ST_LineFromWKB\",\n    \"ST_LineStringFromWKB\",\n    \"ST_LineInterpolatePoint\",\n    \"ST_LineInterpolatePoints\",\n    \"ST_LongFromGeoHash\",\n    \"ST_Longitude\",\n    \"ST_MakeEnvelope\",\n    \"ST_MLineFromText\",\n    \"ST_MultiLineStringFromText\",\n    \"ST_MLineFromWKB\",\n    \"ST_MultiLineStringFromWKB\",\n    \"ST_MPointFromText\",\n    \"ST_MultiPointFromText\",\n    \"ST_MPointFromWKB\",\n    \"ST_MultiPointFromWKB\",\n    \"ST_MPolyFromText\",\n    \"ST_MultiPolygonFromText\",\n    \"ST_MPolyFromWKB\",\n    \"ST_MultiPolygonFromWKB\",\n    \"ST_NumGeometries\",\n    \"ST_NumInteriorRing\",\n    \"ST_NumInteriorRings\",\n    \"ST_NumPoints\",\n    \"ST_Overlaps\",\n    \"ST_PointAtDistance\",\n    \"ST_PointFromGeoHash\",\n    \"ST_PointFromText\",\n    \"ST_PointFromWKB\",\n    \"ST_PointN\",\n    \"ST_PolyFromText\",\n    \"ST_PolygonFromText\",\n    \"ST_PolyFromWKB\",\n    \"ST_PolygonFromWKB\",\n    \"ST_Simplify\",\n    \"ST_SRID\",\n    \"ST_StartPoint\",\n    \"ST_SwapXY\",\n    \"ST_SymDifference\",\n    \"ST_Touches\",\n    \"ST_Transform\",\n    \"ST_Union\",\n    \"ST_Validate\",\n    \"ST_Within\",\n    \"ST_X\",\n    \"ST_Y\",\n    \"StartPoint\",\n    \"STATEMENT_DIGEST\",\n    \"STATEMENT_DIGEST_TEXT\",\n    \"STD\",\n    \"STDDEV\",\n    \"STDDEV_POP\",\n    \"STDDEV_SAMP\",\n    \"STR_TO_DATE\",\n    \"STRCMP\",\n    \"SUBDATE\",\n    \"SUBSTR\",\n    \"SUBSTRING\",\n    \"SUBSTRING_INDEX\",\n    \"SUBTIME\",\n    \"SUM\",\n    \"SYSDATE\",\n    \"SYSTEM_USER\",\n    \"TAN\",\n    \"TIME\",\n    \"TIME_FORMAT\",\n    \"TIME_TO_SEC\",\n    \"TIMEDIFF\",\n    \"TIMESTAMP\",\n    \"TIMESTAMPADD\",\n    \"TIMESTAMPDIFF\",\n    \"TO_BASE64\",\n    \"TO_DAYS\",\n    \"TO_SECONDS\",\n    \"Touches\",\n    \"TRIM\",\n    \"TRUNCATE\",\n    \"UCASE\",\n    \"UNCOMPRESS\",\n    \"UNCOMPRESSED_LENGTH\",\n    \"UNHEX\",\n    \"UNIX_TIMESTAMP\",\n    \"UpdateXML\",\n    \"UPPER\",\n    \"USER\",\n    \"UTC_DATE\",\n    \"UTC_TIME\",\n    \"UTC_TIMESTAMP\",\n    \"UUID\",\n    \"UUID_SHORT\",\n    \"UUID_TO_BIN\",\n    \"VALIDATE_PASSWORD_STRENGTH\",\n    \"VALUES\",\n    \"VAR_POP\",\n    \"VAR_SAMP\",\n    \"VARIANCE\",\n    \"VERSION\",\n    \"WAIT_FOR_EXECUTED_GTID_SET\",\n    \"WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS\",\n    \"WEEK\",\n    \"WEEKDAY\",\n    \"WEEKOFYEAR\",\n    \"WEIGHT_STRING\",\n    \"Within\",\n    \"X\",\n    \"Y\",\n    \"YEAR\",\n    \"YEARWEEK\"\n  ],\n  builtinVariables: [\n    // NOT SUPPORTED\n  ],\n  tokenizer: {\n    root: [\n      { include: \"@comments\" },\n      { include: \"@whitespace\" },\n      { include: \"@numbers\" },\n      { include: \"@strings\" },\n      { include: \"@complexIdentifiers\" },\n      { include: \"@scopes\" },\n      [/[;,.]/, \"delimiter\"],\n      [/[()]/, \"@brackets\"],\n      [\n        /[\\w@]+/,\n        {\n          cases: {\n            \"@operators\": \"operator\",\n            \"@builtinVariables\": \"predefined\",\n            \"@builtinFunctions\": \"predefined\",\n            \"@keywords\": \"keyword\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      [/[<>=!%&+\\-*/|~^]/, \"operator\"]\n    ],\n    whitespace: [[/\\s+/, \"white\"]],\n    comments: [\n      [/--+.*/, \"comment\"],\n      [/#+.*/, \"comment\"],\n      [/\\/\\*/, { token: \"comment.quote\", next: \"@comment\" }]\n    ],\n    comment: [\n      [/[^*/]+/, \"comment\"],\n      // Not supporting nested comments, as nested comments seem to not be standard?\n      // i.e. http://stackoverflow.com/questions/728172/are-there-multiline-comment-delimiters-in-sql-that-are-vendor-agnostic\n      // [/\\/\\*/, { token: 'comment.quote', next: '@push' }],    // nested comment not allowed :-(\n      [/\\*\\//, { token: \"comment.quote\", next: \"@pop\" }],\n      [/./, \"comment\"]\n    ],\n    numbers: [\n      [/0[xX][0-9a-fA-F]*/, \"number\"],\n      [/[$][+-]*\\d*(\\.\\d*)?/, \"number\"],\n      [/((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][\\-+]?\\d+)?/, \"number\"]\n    ],\n    strings: [\n      [/'/, { token: \"string\", next: \"@string\" }],\n      [/\"/, { token: \"string.double\", next: \"@stringDouble\" }]\n    ],\n    string: [\n      [/\\\\'/, \"string\"],\n      [/[^']+/, \"string\"],\n      [/''/, \"string\"],\n      [/'/, { token: \"string\", next: \"@pop\" }]\n    ],\n    stringDouble: [\n      [/[^\"]+/, \"string.double\"],\n      [/\"\"/, \"string.double\"],\n      [/\"/, { token: \"string.double\", next: \"@pop\" }]\n    ],\n    complexIdentifiers: [[/`/, { token: \"identifier.quote\", next: \"@quotedIdentifier\" }]],\n    quotedIdentifier: [\n      [/[^`]+/, \"identifier\"],\n      [/``/, \"identifier\"],\n      [/`/, { token: \"identifier.quote\", next: \"@pop\" }]\n    ],\n    scopes: [\n      // NOT SUPPORTED\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/objective-c/objective-c.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/objective-c/objective-c.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/objective-c/objective-c.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"objective-c\",\n  extensions: [\".m\"],\n  aliases: [\"Objective-C\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/objective-c/objective-c\"], resolve, reject);\n      });\n    } else {\n      return import(\"./objective-c.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/objective-c/objective-c.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/objective-c/objective-c.ts\nvar conf = {\n  comments: {\n    lineComment: \"//\",\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".objective-c\",\n  keywords: [\n    \"#import\",\n    \"#include\",\n    \"#define\",\n    \"#else\",\n    \"#endif\",\n    \"#if\",\n    \"#ifdef\",\n    \"#ifndef\",\n    \"#ident\",\n    \"#undef\",\n    \"@class\",\n    \"@defs\",\n    \"@dynamic\",\n    \"@encode\",\n    \"@end\",\n    \"@implementation\",\n    \"@interface\",\n    \"@package\",\n    \"@private\",\n    \"@protected\",\n    \"@property\",\n    \"@protocol\",\n    \"@public\",\n    \"@selector\",\n    \"@synthesize\",\n    \"__declspec\",\n    \"assign\",\n    \"auto\",\n    \"BOOL\",\n    \"break\",\n    \"bycopy\",\n    \"byref\",\n    \"case\",\n    \"char\",\n    \"Class\",\n    \"const\",\n    \"copy\",\n    \"continue\",\n    \"default\",\n    \"do\",\n    \"double\",\n    \"else\",\n    \"enum\",\n    \"extern\",\n    \"FALSE\",\n    \"false\",\n    \"float\",\n    \"for\",\n    \"goto\",\n    \"if\",\n    \"in\",\n    \"int\",\n    \"id\",\n    \"inout\",\n    \"IMP\",\n    \"long\",\n    \"nil\",\n    \"nonatomic\",\n    \"NULL\",\n    \"oneway\",\n    \"out\",\n    \"private\",\n    \"public\",\n    \"protected\",\n    \"readwrite\",\n    \"readonly\",\n    \"register\",\n    \"return\",\n    \"SEL\",\n    \"self\",\n    \"short\",\n    \"signed\",\n    \"sizeof\",\n    \"static\",\n    \"struct\",\n    \"super\",\n    \"switch\",\n    \"typedef\",\n    \"TRUE\",\n    \"true\",\n    \"union\",\n    \"unsigned\",\n    \"volatile\",\n    \"void\",\n    \"while\"\n  ],\n  decpart: /\\d(_?\\d)*/,\n  decimal: /0|@decpart/,\n  tokenizer: {\n    root: [\n      { include: \"@comments\" },\n      { include: \"@whitespace\" },\n      { include: \"@numbers\" },\n      { include: \"@strings\" },\n      [/[,:;]/, \"delimiter\"],\n      [/[{}\\[\\]()<>]/, \"@brackets\"],\n      [\n        /[a-zA-Z@#]\\w*/,\n        {\n          cases: {\n            \"@keywords\": \"keyword\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      [/[<>=\\\\+\\\\-\\\\*\\\\/\\\\^\\\\|\\\\~,]|and\\\\b|or\\\\b|not\\\\b]/, \"operator\"]\n    ],\n    whitespace: [[/\\s+/, \"white\"]],\n    comments: [\n      [\"\\\\/\\\\*\", \"comment\", \"@comment\"],\n      [\"\\\\/\\\\/+.*\", \"comment\"]\n    ],\n    comment: [\n      [\"\\\\*\\\\/\", \"comment\", \"@pop\"],\n      [\".\", \"comment\"]\n    ],\n    numbers: [\n      [/0[xX][0-9a-fA-F]*(_?[0-9a-fA-F])*/, \"number.hex\"],\n      [\n        /@decimal((\\.@decpart)?([eE][\\-+]?@decpart)?)[fF]*/,\n        {\n          cases: {\n            \"(\\\\d)*\": \"number\",\n            $0: \"number.float\"\n          }\n        }\n      ]\n    ],\n    // Recognize strings, including those broken across lines with \\ (but not without)\n    strings: [\n      [/'$/, \"string.escape\", \"@popall\"],\n      [/'/, \"string.escape\", \"@stringBody\"],\n      [/\"$/, \"string.escape\", \"@popall\"],\n      [/\"/, \"string.escape\", \"@dblStringBody\"]\n    ],\n    stringBody: [\n      [/[^\\\\']+$/, \"string\", \"@popall\"],\n      [/[^\\\\']+/, \"string\"],\n      [/\\\\./, \"string\"],\n      [/'/, \"string.escape\", \"@popall\"],\n      [/\\\\$/, \"string\"]\n    ],\n    dblStringBody: [\n      [/[^\\\\\"]+$/, \"string\", \"@popall\"],\n      [/[^\\\\\"]+/, \"string\"],\n      [/\\\\./, \"string\"],\n      [/\"/, \"string.escape\", \"@popall\"],\n      [/\\\\$/, \"string\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/pascal/pascal.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/pascal/pascal.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/pascal/pascal.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"pascal\",\n  extensions: [\".pas\", \".p\", \".pp\"],\n  aliases: [\"Pascal\", \"pas\"],\n  mimetypes: [\"text/x-pascal-source\", \"text/x-pascal\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/pascal/pascal\"], resolve, reject);\n      });\n    } else {\n      return import(\"./pascal.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/pascal/pascal.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/pascal/pascal.ts\nvar conf = {\n  // the default separators except `@$`\n  wordPattern: /(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,\n  comments: {\n    lineComment: \"//\",\n    blockComment: [\"{\", \"}\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"],\n    [\"<\", \">\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: \"<\", close: \">\" },\n    { open: \"'\", close: \"'\" }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: \"<\", close: \">\" },\n    { open: \"'\", close: \"'\" }\n  ],\n  folding: {\n    markers: {\n      start: new RegExp(\"^\\\\s*\\\\{\\\\$REGION(\\\\s\\\\'.*\\\\')?\\\\}\"),\n      end: new RegExp(\"^\\\\s*\\\\{\\\\$ENDREGION\\\\}\")\n    }\n  }\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".pascal\",\n  ignoreCase: true,\n  brackets: [\n    { open: \"{\", close: \"}\", token: \"delimiter.curly\" },\n    { open: \"[\", close: \"]\", token: \"delimiter.square\" },\n    { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" },\n    { open: \"<\", close: \">\", token: \"delimiter.angle\" }\n  ],\n  keywords: [\n    \"absolute\",\n    \"abstract\",\n    \"all\",\n    \"and_then\",\n    \"array\",\n    \"as\",\n    \"asm\",\n    \"attribute\",\n    \"begin\",\n    \"bindable\",\n    \"case\",\n    \"class\",\n    \"const\",\n    \"contains\",\n    \"default\",\n    \"div\",\n    \"else\",\n    \"end\",\n    \"except\",\n    \"exports\",\n    \"external\",\n    \"far\",\n    \"file\",\n    \"finalization\",\n    \"finally\",\n    \"forward\",\n    \"generic\",\n    \"goto\",\n    \"if\",\n    \"implements\",\n    \"import\",\n    \"in\",\n    \"index\",\n    \"inherited\",\n    \"initialization\",\n    \"interrupt\",\n    \"is\",\n    \"label\",\n    \"library\",\n    \"mod\",\n    \"module\",\n    \"name\",\n    \"near\",\n    \"not\",\n    \"object\",\n    \"of\",\n    \"on\",\n    \"only\",\n    \"operator\",\n    \"or_else\",\n    \"otherwise\",\n    \"override\",\n    \"package\",\n    \"packed\",\n    \"pow\",\n    \"private\",\n    \"program\",\n    \"protected\",\n    \"public\",\n    \"published\",\n    \"interface\",\n    \"implementation\",\n    \"qualified\",\n    \"read\",\n    \"record\",\n    \"resident\",\n    \"requires\",\n    \"resourcestring\",\n    \"restricted\",\n    \"segment\",\n    \"set\",\n    \"shl\",\n    \"shr\",\n    \"specialize\",\n    \"stored\",\n    \"strict\",\n    \"then\",\n    \"threadvar\",\n    \"to\",\n    \"try\",\n    \"type\",\n    \"unit\",\n    \"uses\",\n    \"var\",\n    \"view\",\n    \"virtual\",\n    \"dynamic\",\n    \"overload\",\n    \"reintroduce\",\n    \"with\",\n    \"write\",\n    \"xor\",\n    \"true\",\n    \"false\",\n    \"procedure\",\n    \"function\",\n    \"constructor\",\n    \"destructor\",\n    \"property\",\n    \"break\",\n    \"continue\",\n    \"exit\",\n    \"abort\",\n    \"while\",\n    \"do\",\n    \"for\",\n    \"raise\",\n    \"repeat\",\n    \"until\"\n  ],\n  typeKeywords: [\n    \"boolean\",\n    \"double\",\n    \"byte\",\n    \"integer\",\n    \"shortint\",\n    \"char\",\n    \"longint\",\n    \"float\",\n    \"string\"\n  ],\n  operators: [\n    \"=\",\n    \">\",\n    \"<\",\n    \"<=\",\n    \">=\",\n    \"<>\",\n    \":\",\n    \":=\",\n    \"and\",\n    \"or\",\n    \"+\",\n    \"-\",\n    \"*\",\n    \"/\",\n    \"@\",\n    \"&\",\n    \"^\",\n    \"%\"\n  ],\n  // we include these common regular expressions\n  symbols: /[=><:@\\^&|+\\-*\\/\\^%]+/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      // identifiers and keywords\n      [\n        /[a-zA-Z_][\\w]*/,\n        {\n          cases: {\n            \"@keywords\": { token: \"keyword.$0\" },\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      // whitespace\n      { include: \"@whitespace\" },\n      // delimiters and operators\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      [/[<>](?!@symbols)/, \"@brackets\"],\n      [\n        /@symbols/,\n        {\n          cases: {\n            \"@operators\": \"delimiter\",\n            \"@default\": \"\"\n          }\n        }\n      ],\n      // numbers\n      [/\\d*\\.\\d+([eE][\\-+]?\\d+)?/, \"number.float\"],\n      [/\\$[0-9a-fA-F]{1,16}/, \"number.hex\"],\n      [/\\d+/, \"number\"],\n      // delimiter: after number because of .\\d floats\n      [/[;,.]/, \"delimiter\"],\n      // strings\n      [/'([^'\\\\]|\\\\.)*$/, \"string.invalid\"],\n      // non-teminated string\n      [/'/, \"string\", \"@string\"],\n      // characters\n      [/'[^\\\\']'/, \"string\"],\n      [/'/, \"string.invalid\"],\n      [/\\#\\d+/, \"string\"]\n    ],\n    comment: [\n      [/[^\\*\\}]+/, \"comment\"],\n      //[/\\(\\*/,    'comment', '@push' ],    // nested comment  not allowed :-(\n      [/\\}/, \"comment\", \"@pop\"],\n      [/[\\{]/, \"comment\"]\n    ],\n    string: [\n      [/[^\\\\']+/, \"string\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/'/, { token: \"string.quote\", bracket: \"@close\", next: \"@pop\" }]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"white\"],\n      [/\\{/, \"comment\", \"@comment\"],\n      [/\\/\\/.*$/, \"comment\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/pascaligo/pascaligo.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/pascaligo/pascaligo.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/pascaligo/pascaligo.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"pascaligo\",\n  extensions: [\".ligo\"],\n  aliases: [\"Pascaligo\", \"ligo\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/pascaligo/pascaligo\"], resolve, reject);\n      });\n    } else {\n      return import(\"./pascaligo.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/pascaligo/pascaligo.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/pascaligo/pascaligo.ts\nvar conf = {\n  comments: {\n    lineComment: \"//\",\n    blockComment: [\"(*\", \"*)\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"],\n    [\"<\", \">\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: \"<\", close: \">\" },\n    { open: \"'\", close: \"'\" }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: \"<\", close: \">\" },\n    { open: \"'\", close: \"'\" }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".pascaligo\",\n  ignoreCase: true,\n  brackets: [\n    { open: \"{\", close: \"}\", token: \"delimiter.curly\" },\n    { open: \"[\", close: \"]\", token: \"delimiter.square\" },\n    { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" },\n    { open: \"<\", close: \">\", token: \"delimiter.angle\" }\n  ],\n  keywords: [\n    \"begin\",\n    \"block\",\n    \"case\",\n    \"const\",\n    \"else\",\n    \"end\",\n    \"fail\",\n    \"for\",\n    \"from\",\n    \"function\",\n    \"if\",\n    \"is\",\n    \"nil\",\n    \"of\",\n    \"remove\",\n    \"return\",\n    \"skip\",\n    \"then\",\n    \"type\",\n    \"var\",\n    \"while\",\n    \"with\",\n    \"option\",\n    \"None\",\n    \"transaction\"\n  ],\n  typeKeywords: [\n    \"bool\",\n    \"int\",\n    \"list\",\n    \"map\",\n    \"nat\",\n    \"record\",\n    \"string\",\n    \"unit\",\n    \"address\",\n    \"map\",\n    \"mtz\",\n    \"xtz\"\n  ],\n  operators: [\n    \"=\",\n    \">\",\n    \"<\",\n    \"<=\",\n    \">=\",\n    \"<>\",\n    \":\",\n    \":=\",\n    \"and\",\n    \"mod\",\n    \"or\",\n    \"+\",\n    \"-\",\n    \"*\",\n    \"/\",\n    \"@\",\n    \"&\",\n    \"^\",\n    \"%\"\n  ],\n  // we include these common regular expressions\n  symbols: /[=><:@\\^&|+\\-*\\/\\^%]+/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      // identifiers and keywords\n      [\n        /[a-zA-Z_][\\w]*/,\n        {\n          cases: {\n            \"@keywords\": { token: \"keyword.$0\" },\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      // whitespace\n      { include: \"@whitespace\" },\n      // delimiters and operators\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      [/[<>](?!@symbols)/, \"@brackets\"],\n      [\n        /@symbols/,\n        {\n          cases: {\n            \"@operators\": \"delimiter\",\n            \"@default\": \"\"\n          }\n        }\n      ],\n      // numbers\n      [/\\d*\\.\\d+([eE][\\-+]?\\d+)?/, \"number.float\"],\n      [/\\$[0-9a-fA-F]{1,16}/, \"number.hex\"],\n      [/\\d+/, \"number\"],\n      // delimiter: after number because of .\\d floats\n      [/[;,.]/, \"delimiter\"],\n      // strings\n      [/'([^'\\\\]|\\\\.)*$/, \"string.invalid\"],\n      // non-teminated string\n      [/'/, \"string\", \"@string\"],\n      // characters\n      [/'[^\\\\']'/, \"string\"],\n      [/'/, \"string.invalid\"],\n      [/\\#\\d+/, \"string\"]\n    ],\n    /* */\n    comment: [\n      [/[^\\(\\*]+/, \"comment\"],\n      //[/\\(\\*/,    'comment', '@push' ],    // nested comment  not allowed :-(\n      [/\\*\\)/, \"comment\", \"@pop\"],\n      [/\\(\\*/, \"comment\"]\n    ],\n    string: [\n      [/[^\\\\']+/, \"string\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/'/, { token: \"string.quote\", bracket: \"@close\", next: \"@pop\" }]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"white\"],\n      [/\\(\\*/, \"comment\", \"@comment\"],\n      [/\\/\\/.*$/, \"comment\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/perl/perl.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/perl/perl.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/perl/perl.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"perl\",\n  extensions: [\".pl\", \".pm\"],\n  aliases: [\"Perl\", \"pl\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/perl/perl\"], resolve, reject);\n      });\n    } else {\n      return import(\"./perl.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/perl/perl.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/perl/perl.ts\nvar conf = {\n  comments: {\n    lineComment: \"#\"\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" },\n    { open: \"`\", close: \"`\" }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" },\n    { open: \"`\", close: \"`\" }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".perl\",\n  brackets: [\n    { token: \"delimiter.bracket\", open: \"{\", close: \"}\" },\n    { token: \"delimiter.parenthesis\", open: \"(\", close: \")\" },\n    { token: \"delimiter.square\", open: \"[\", close: \"]\" }\n  ],\n  // https://learn.perl.org/docs/keywords.html\n  // Perl syntax\n  keywords: [\n    \"__DATA__\",\n    \"else\",\n    \"lock\",\n    \"__END__\",\n    \"elsif\",\n    \"lt\",\n    \"__FILE__\",\n    \"eq\",\n    \"__LINE__\",\n    \"exp\",\n    \"ne\",\n    \"sub\",\n    \"__PACKAGE__\",\n    \"for\",\n    \"no\",\n    \"and\",\n    \"foreach\",\n    \"or\",\n    \"unless\",\n    \"cmp\",\n    \"ge\",\n    \"package\",\n    \"until\",\n    \"continue\",\n    \"gt\",\n    \"while\",\n    \"CORE\",\n    \"if\",\n    \"xor\",\n    \"do\",\n    \"le\",\n    \"__DIE__\",\n    \"__WARN__\"\n  ],\n  // Perl functions\n  builtinFunctions: [\n    \"-A\",\n    \"END\",\n    \"length\",\n    \"setpgrp\",\n    \"-B\",\n    \"endgrent\",\n    \"link\",\n    \"setpriority\",\n    \"-b\",\n    \"endhostent\",\n    \"listen\",\n    \"setprotoent\",\n    \"-C\",\n    \"endnetent\",\n    \"local\",\n    \"setpwent\",\n    \"-c\",\n    \"endprotoent\",\n    \"localtime\",\n    \"setservent\",\n    \"-d\",\n    \"endpwent\",\n    \"log\",\n    \"setsockopt\",\n    \"-e\",\n    \"endservent\",\n    \"lstat\",\n    \"shift\",\n    \"-f\",\n    \"eof\",\n    \"map\",\n    \"shmctl\",\n    \"-g\",\n    \"eval\",\n    \"mkdir\",\n    \"shmget\",\n    \"-k\",\n    \"exec\",\n    \"msgctl\",\n    \"shmread\",\n    \"-l\",\n    \"exists\",\n    \"msgget\",\n    \"shmwrite\",\n    \"-M\",\n    \"exit\",\n    \"msgrcv\",\n    \"shutdown\",\n    \"-O\",\n    \"fcntl\",\n    \"msgsnd\",\n    \"sin\",\n    \"-o\",\n    \"fileno\",\n    \"my\",\n    \"sleep\",\n    \"-p\",\n    \"flock\",\n    \"next\",\n    \"socket\",\n    \"-r\",\n    \"fork\",\n    \"not\",\n    \"socketpair\",\n    \"-R\",\n    \"format\",\n    \"oct\",\n    \"sort\",\n    \"-S\",\n    \"formline\",\n    \"open\",\n    \"splice\",\n    \"-s\",\n    \"getc\",\n    \"opendir\",\n    \"split\",\n    \"-T\",\n    \"getgrent\",\n    \"ord\",\n    \"sprintf\",\n    \"-t\",\n    \"getgrgid\",\n    \"our\",\n    \"sqrt\",\n    \"-u\",\n    \"getgrnam\",\n    \"pack\",\n    \"srand\",\n    \"-w\",\n    \"gethostbyaddr\",\n    \"pipe\",\n    \"stat\",\n    \"-W\",\n    \"gethostbyname\",\n    \"pop\",\n    \"state\",\n    \"-X\",\n    \"gethostent\",\n    \"pos\",\n    \"study\",\n    \"-x\",\n    \"getlogin\",\n    \"print\",\n    \"substr\",\n    \"-z\",\n    \"getnetbyaddr\",\n    \"printf\",\n    \"symlink\",\n    \"abs\",\n    \"getnetbyname\",\n    \"prototype\",\n    \"syscall\",\n    \"accept\",\n    \"getnetent\",\n    \"push\",\n    \"sysopen\",\n    \"alarm\",\n    \"getpeername\",\n    \"quotemeta\",\n    \"sysread\",\n    \"atan2\",\n    \"getpgrp\",\n    \"rand\",\n    \"sysseek\",\n    \"AUTOLOAD\",\n    \"getppid\",\n    \"read\",\n    \"system\",\n    \"BEGIN\",\n    \"getpriority\",\n    \"readdir\",\n    \"syswrite\",\n    \"bind\",\n    \"getprotobyname\",\n    \"readline\",\n    \"tell\",\n    \"binmode\",\n    \"getprotobynumber\",\n    \"readlink\",\n    \"telldir\",\n    \"bless\",\n    \"getprotoent\",\n    \"readpipe\",\n    \"tie\",\n    \"break\",\n    \"getpwent\",\n    \"recv\",\n    \"tied\",\n    \"caller\",\n    \"getpwnam\",\n    \"redo\",\n    \"time\",\n    \"chdir\",\n    \"getpwuid\",\n    \"ref\",\n    \"times\",\n    \"CHECK\",\n    \"getservbyname\",\n    \"rename\",\n    \"truncate\",\n    \"chmod\",\n    \"getservbyport\",\n    \"require\",\n    \"uc\",\n    \"chomp\",\n    \"getservent\",\n    \"reset\",\n    \"ucfirst\",\n    \"chop\",\n    \"getsockname\",\n    \"return\",\n    \"umask\",\n    \"chown\",\n    \"getsockopt\",\n    \"reverse\",\n    \"undef\",\n    \"chr\",\n    \"glob\",\n    \"rewinddir\",\n    \"UNITCHECK\",\n    \"chroot\",\n    \"gmtime\",\n    \"rindex\",\n    \"unlink\",\n    \"close\",\n    \"goto\",\n    \"rmdir\",\n    \"unpack\",\n    \"closedir\",\n    \"grep\",\n    \"say\",\n    \"unshift\",\n    \"connect\",\n    \"hex\",\n    \"scalar\",\n    \"untie\",\n    \"cos\",\n    \"index\",\n    \"seek\",\n    \"use\",\n    \"crypt\",\n    \"INIT\",\n    \"seekdir\",\n    \"utime\",\n    \"dbmclose\",\n    \"int\",\n    \"select\",\n    \"values\",\n    \"dbmopen\",\n    \"ioctl\",\n    \"semctl\",\n    \"vec\",\n    \"defined\",\n    \"join\",\n    \"semget\",\n    \"wait\",\n    \"delete\",\n    \"keys\",\n    \"semop\",\n    \"waitpid\",\n    \"DESTROY\",\n    \"kill\",\n    \"send\",\n    \"wantarray\",\n    \"die\",\n    \"last\",\n    \"setgrent\",\n    \"warn\",\n    \"dump\",\n    \"lc\",\n    \"sethostent\",\n    \"write\",\n    \"each\",\n    \"lcfirst\",\n    \"setnetent\"\n  ],\n  // File handlers\n  builtinFileHandlers: [\"ARGV\", \"STDERR\", \"STDOUT\", \"ARGVOUT\", \"STDIN\", \"ENV\"],\n  // Perl variables\n  builtinVariables: [\n    \"$!\",\n    \"$^RE_TRIE_MAXBUF\",\n    \"$LAST_REGEXP_CODE_RESULT\",\n    '$\"',\n    \"$^S\",\n    \"$LIST_SEPARATOR\",\n    \"$#\",\n    \"$^T\",\n    \"$MATCH\",\n    \"$$\",\n    \"$^TAINT\",\n    \"$MULTILINE_MATCHING\",\n    \"$%\",\n    \"$^UNICODE\",\n    \"$NR\",\n    \"$&\",\n    \"$^UTF8LOCALE\",\n    \"$OFMT\",\n    \"$'\",\n    \"$^V\",\n    \"$OFS\",\n    \"$(\",\n    \"$^W\",\n    \"$ORS\",\n    \"$)\",\n    \"$^WARNING_BITS\",\n    \"$OS_ERROR\",\n    \"$*\",\n    \"$^WIDE_SYSTEM_CALLS\",\n    \"$OSNAME\",\n    \"$+\",\n    \"$^X\",\n    \"$OUTPUT_AUTO_FLUSH\",\n    \"$,\",\n    \"$_\",\n    \"$OUTPUT_FIELD_SEPARATOR\",\n    \"$-\",\n    \"$`\",\n    \"$OUTPUT_RECORD_SEPARATOR\",\n    \"$.\",\n    \"$a\",\n    \"$PERL_VERSION\",\n    \"$/\",\n    \"$ACCUMULATOR\",\n    \"$PERLDB\",\n    \"$0\",\n    \"$ARG\",\n    \"$PID\",\n    \"$:\",\n    \"$ARGV\",\n    \"$POSTMATCH\",\n    \"$;\",\n    \"$b\",\n    \"$PREMATCH\",\n    \"$<\",\n    \"$BASETIME\",\n    \"$PROCESS_ID\",\n    \"$=\",\n    \"$CHILD_ERROR\",\n    \"$PROGRAM_NAME\",\n    \"$>\",\n    \"$COMPILING\",\n    \"$REAL_GROUP_ID\",\n    \"$?\",\n    \"$DEBUGGING\",\n    \"$REAL_USER_ID\",\n    \"$@\",\n    \"$EFFECTIVE_GROUP_ID\",\n    \"$RS\",\n    \"$[\",\n    \"$EFFECTIVE_USER_ID\",\n    \"$SUBSCRIPT_SEPARATOR\",\n    \"$\\\\\",\n    \"$EGID\",\n    \"$SUBSEP\",\n    \"$]\",\n    \"$ERRNO\",\n    \"$SYSTEM_FD_MAX\",\n    \"$^\",\n    \"$EUID\",\n    \"$UID\",\n    \"$^A\",\n    \"$EVAL_ERROR\",\n    \"$WARNING\",\n    \"$^C\",\n    \"$EXCEPTIONS_BEING_CAUGHT\",\n    \"$|\",\n    \"$^CHILD_ERROR_NATIVE\",\n    \"$EXECUTABLE_NAME\",\n    \"$~\",\n    \"$^D\",\n    \"$EXTENDED_OS_ERROR\",\n    \"%!\",\n    \"$^E\",\n    \"$FORMAT_FORMFEED\",\n    \"%^H\",\n    \"$^ENCODING\",\n    \"$FORMAT_LINE_BREAK_CHARACTERS\",\n    \"%ENV\",\n    \"$^F\",\n    \"$FORMAT_LINES_LEFT\",\n    \"%INC\",\n    \"$^H\",\n    \"$FORMAT_LINES_PER_PAGE\",\n    \"%OVERLOAD\",\n    \"$^I\",\n    \"$FORMAT_NAME\",\n    \"%SIG\",\n    \"$^L\",\n    \"$FORMAT_PAGE_NUMBER\",\n    \"@+\",\n    \"$^M\",\n    \"$FORMAT_TOP_NAME\",\n    \"@-\",\n    \"$^N\",\n    \"$GID\",\n    \"@_\",\n    \"$^O\",\n    \"$INPLACE_EDIT\",\n    \"@ARGV\",\n    \"$^OPEN\",\n    \"$INPUT_LINE_NUMBER\",\n    \"@INC\",\n    \"$^P\",\n    \"$INPUT_RECORD_SEPARATOR\",\n    \"@LAST_MATCH_START\",\n    \"$^R\",\n    \"$LAST_MATCH_END\",\n    \"$^RE_DEBUG_FLAGS\",\n    \"$LAST_PAREN_MATCH\"\n  ],\n  // operators\n  symbols: /[:+\\-\\^*$&%@=<>!?|\\/~\\.]/,\n  quoteLikeOps: [\"qr\", \"m\", \"s\", \"q\", \"qq\", \"qx\", \"qw\", \"tr\", \"y\"],\n  escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      { include: \"@whitespace\" },\n      [\n        /[a-zA-Z\\-_][\\w\\-_]*/,\n        {\n          cases: {\n            \"@keywords\": \"keyword\",\n            \"@builtinFunctions\": \"type.identifier\",\n            \"@builtinFileHandlers\": \"variable.predefined\",\n            \"@quoteLikeOps\": {\n              token: \"@rematch\",\n              next: \"quotedConstructs\"\n            },\n            \"@default\": \"\"\n          }\n        }\n      ],\n      // Perl variables\n      [\n        /[\\$@%][*@#?\\+\\-\\$!\\w\\\\\\^><~:;\\.]+/,\n        {\n          cases: {\n            \"@builtinVariables\": \"variable.predefined\",\n            \"@default\": \"variable\"\n          }\n        }\n      ],\n      { include: \"@strings\" },\n      { include: \"@dblStrings\" },\n      // Perl Doc\n      { include: \"@perldoc\" },\n      // Here Doc\n      { include: \"@heredoc\" },\n      [/[{}\\[\\]()]/, \"@brackets\"],\n      // RegExp\n      [/[\\/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\\\/|[^\\]\\/]))*[\\/]\\w*\\s*(?=[).,;]|$)/, \"regexp\"],\n      [/@symbols/, \"operators\"],\n      { include: \"@numbers\" },\n      [/[,;]/, \"delimiter\"]\n    ],\n    whitespace: [\n      [/\\s+/, \"white\"],\n      [/(^#!.*$)/, \"metatag\"],\n      [/(^#.*$)/, \"comment\"]\n    ],\n    numbers: [\n      [/\\d*\\.\\d+([eE][\\-+]?\\d+)?/, \"number.float\"],\n      [/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/, \"number.hex\"],\n      [/\\d+/, \"number\"]\n    ],\n    // Single quote string\n    strings: [[/'/, \"string\", \"@stringBody\"]],\n    stringBody: [\n      [/'/, \"string\", \"@popall\"],\n      [/\\\\'/, \"string.escape\"],\n      [/./, \"string\"]\n    ],\n    // Double quote string\n    dblStrings: [[/\"/, \"string\", \"@dblStringBody\"]],\n    dblStringBody: [\n      [/\"/, \"string\", \"@popall\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      { include: \"@variables\" },\n      [/./, \"string\"]\n    ],\n    // Quoted constructs\n    // Percent strings in Ruby are similar to quote-like operators in Perl.\n    // This is adapted from pstrings in ../ruby/ruby.ts.\n    quotedConstructs: [\n      [/(q|qw|tr|y)\\s*\\(/, { token: \"string.delim\", switchTo: \"@qstring.(.)\" }],\n      [/(q|qw|tr|y)\\s*\\[/, { token: \"string.delim\", switchTo: \"@qstring.[.]\" }],\n      [/(q|qw|tr|y)\\s*\\{/, { token: \"string.delim\", switchTo: \"@qstring.{.}\" }],\n      [/(q|qw|tr|y)\\s*</, { token: \"string.delim\", switchTo: \"@qstring.<.>\" }],\n      [/(q|qw|tr|y)#/, { token: \"string.delim\", switchTo: \"@qstring.#.#\" }],\n      [/(q|qw|tr|y)\\s*([^A-Za-z0-9#\\s])/, { token: \"string.delim\", switchTo: \"@qstring.$2.$2\" }],\n      [/(q|qw|tr|y)\\s+(\\w)/, { token: \"string.delim\", switchTo: \"@qstring.$2.$2\" }],\n      [/(qr|m|s)\\s*\\(/, { token: \"regexp.delim\", switchTo: \"@qregexp.(.)\" }],\n      [/(qr|m|s)\\s*\\[/, { token: \"regexp.delim\", switchTo: \"@qregexp.[.]\" }],\n      [/(qr|m|s)\\s*\\{/, { token: \"regexp.delim\", switchTo: \"@qregexp.{.}\" }],\n      [/(qr|m|s)\\s*</, { token: \"regexp.delim\", switchTo: \"@qregexp.<.>\" }],\n      [/(qr|m|s)#/, { token: \"regexp.delim\", switchTo: \"@qregexp.#.#\" }],\n      [/(qr|m|s)\\s*([^A-Za-z0-9_#\\s])/, { token: \"regexp.delim\", switchTo: \"@qregexp.$2.$2\" }],\n      [/(qr|m|s)\\s+(\\w)/, { token: \"regexp.delim\", switchTo: \"@qregexp.$2.$2\" }],\n      [/(qq|qx)\\s*\\(/, { token: \"string.delim\", switchTo: \"@qqstring.(.)\" }],\n      [/(qq|qx)\\s*\\[/, { token: \"string.delim\", switchTo: \"@qqstring.[.]\" }],\n      [/(qq|qx)\\s*\\{/, { token: \"string.delim\", switchTo: \"@qqstring.{.}\" }],\n      [/(qq|qx)\\s*</, { token: \"string.delim\", switchTo: \"@qqstring.<.>\" }],\n      [/(qq|qx)#/, { token: \"string.delim\", switchTo: \"@qqstring.#.#\" }],\n      [/(qq|qx)\\s*([^A-Za-z0-9#\\s])/, { token: \"string.delim\", switchTo: \"@qqstring.$2.$2\" }],\n      [/(qq|qx)\\s+(\\w)/, { token: \"string.delim\", switchTo: \"@qqstring.$2.$2\" }]\n    ],\n    // Non-expanded quoted string\n    // qstring<open>.<close>\n    //  open = open delimiter\n    //  close = close delimiter\n    qstring: [\n      [/\\\\./, \"string.escape\"],\n      [\n        /./,\n        {\n          cases: {\n            \"$#==$S3\": { token: \"string.delim\", next: \"@pop\" },\n            \"$#==$S2\": { token: \"string.delim\", next: \"@push\" },\n            // nested delimiters\n            \"@default\": \"string\"\n          }\n        }\n      ]\n    ],\n    // Quoted regexp\n    // qregexp.<open>.<close>\n    //  open = open delimiter\n    //  close = close delimiter\n    qregexp: [\n      { include: \"@variables\" },\n      [/\\\\./, \"regexp.escape\"],\n      [\n        /./,\n        {\n          cases: {\n            \"$#==$S3\": {\n              token: \"regexp.delim\",\n              next: \"@regexpModifiers\"\n            },\n            \"$#==$S2\": { token: \"regexp.delim\", next: \"@push\" },\n            // nested delimiters\n            \"@default\": \"regexp\"\n          }\n        }\n      ]\n    ],\n    regexpModifiers: [[/[msixpodualngcer]+/, { token: \"regexp.modifier\", next: \"@popall\" }]],\n    // Expanded quoted string\n    // qqstring.<open>.<close>\n    //  open = open delimiter\n    //  close = close delimiter\n    qqstring: [{ include: \"@variables\" }, { include: \"@qstring\" }],\n    heredoc: [\n      [/<<\\s*['\"`]?([\\w\\-]+)['\"`]?/, { token: \"string.heredoc.delimiter\", next: \"@heredocBody.$1\" }]\n    ],\n    heredocBody: [\n      [\n        /^([\\w\\-]+)$/,\n        {\n          cases: {\n            \"$1==$S2\": [\n              {\n                token: \"string.heredoc.delimiter\",\n                next: \"@popall\"\n              }\n            ],\n            \"@default\": \"string.heredoc\"\n          }\n        }\n      ],\n      [/./, \"string.heredoc\"]\n    ],\n    perldoc: [[/^=\\w/, \"comment.doc\", \"@perldocBody\"]],\n    perldocBody: [\n      [/^=cut\\b/, \"type.identifier\", \"@popall\"],\n      [/./, \"comment.doc\"]\n    ],\n    variables: [\n      [/\\$\\w+/, \"variable\"],\n      // scalar\n      [/@\\w+/, \"variable\"],\n      // array\n      [/%\\w+/, \"variable\"]\n      // key/value\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/pgsql/pgsql.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/pgsql/pgsql.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/pgsql/pgsql.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"pgsql\",\n  extensions: [],\n  aliases: [\"PostgreSQL\", \"postgres\", \"pg\", \"postgre\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/pgsql/pgsql\"], resolve, reject);\n      });\n    } else {\n      return import(\"./pgsql.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/pgsql/pgsql.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/pgsql/pgsql.ts\nvar conf = {\n  comments: {\n    lineComment: \"--\",\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".sql\",\n  ignoreCase: true,\n  brackets: [\n    { open: \"[\", close: \"]\", token: \"delimiter.square\" },\n    { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" }\n  ],\n  keywords: [\n    // This list is generated using `keywords.js`\n    \"ALL\",\n    \"ANALYSE\",\n    \"ANALYZE\",\n    \"AND\",\n    \"ANY\",\n    \"ARRAY\",\n    \"AS\",\n    \"ASC\",\n    \"ASYMMETRIC\",\n    \"AUTHORIZATION\",\n    \"BINARY\",\n    \"BOTH\",\n    \"CASE\",\n    \"CAST\",\n    \"CHECK\",\n    \"COLLATE\",\n    \"COLLATION\",\n    \"COLUMN\",\n    \"CONCURRENTLY\",\n    \"CONSTRAINT\",\n    \"CREATE\",\n    \"CROSS\",\n    \"CURRENT_CATALOG\",\n    \"CURRENT_DATE\",\n    \"CURRENT_ROLE\",\n    \"CURRENT_SCHEMA\",\n    \"CURRENT_TIME\",\n    \"CURRENT_TIMESTAMP\",\n    \"CURRENT_USER\",\n    \"DEFAULT\",\n    \"DEFERRABLE\",\n    \"DESC\",\n    \"DISTINCT\",\n    \"DO\",\n    \"ELSE\",\n    \"END\",\n    \"EXCEPT\",\n    \"FALSE\",\n    \"FETCH\",\n    \"FOR\",\n    \"FOREIGN\",\n    \"FREEZE\",\n    \"FROM\",\n    \"FULL\",\n    \"GRANT\",\n    \"GROUP\",\n    \"HAVING\",\n    \"ILIKE\",\n    \"IN\",\n    \"INITIALLY\",\n    \"INNER\",\n    \"INTERSECT\",\n    \"INTO\",\n    \"IS\",\n    \"ISNULL\",\n    \"JOIN\",\n    \"LATERAL\",\n    \"LEADING\",\n    \"LEFT\",\n    \"LIKE\",\n    \"LIMIT\",\n    \"LOCALTIME\",\n    \"LOCALTIMESTAMP\",\n    \"NATURAL\",\n    \"NOT\",\n    \"NOTNULL\",\n    \"NULL\",\n    \"OFFSET\",\n    \"ON\",\n    \"ONLY\",\n    \"OR\",\n    \"ORDER\",\n    \"OUTER\",\n    \"OVERLAPS\",\n    \"PLACING\",\n    \"PRIMARY\",\n    \"REFERENCES\",\n    \"RETURNING\",\n    \"RIGHT\",\n    \"SELECT\",\n    \"SESSION_USER\",\n    \"SIMILAR\",\n    \"SOME\",\n    \"SYMMETRIC\",\n    \"TABLE\",\n    \"TABLESAMPLE\",\n    \"THEN\",\n    \"TO\",\n    \"TRAILING\",\n    \"TRUE\",\n    \"UNION\",\n    \"UNIQUE\",\n    \"USER\",\n    \"USING\",\n    \"VARIADIC\",\n    \"VERBOSE\",\n    \"WHEN\",\n    \"WHERE\",\n    \"WINDOW\",\n    \"WITH\"\n  ],\n  operators: [\n    \"AND\",\n    \"BETWEEN\",\n    \"IN\",\n    \"LIKE\",\n    \"NOT\",\n    \"OR\",\n    \"IS\",\n    \"NULL\",\n    \"INTERSECT\",\n    \"UNION\",\n    \"INNER\",\n    \"JOIN\",\n    \"LEFT\",\n    \"OUTER\",\n    \"RIGHT\"\n  ],\n  builtinFunctions: [\n    \"abbrev\",\n    \"abs\",\n    \"acldefault\",\n    \"aclexplode\",\n    \"acos\",\n    \"acosd\",\n    \"acosh\",\n    \"age\",\n    \"any\",\n    \"area\",\n    \"array_agg\",\n    \"array_append\",\n    \"array_cat\",\n    \"array_dims\",\n    \"array_fill\",\n    \"array_length\",\n    \"array_lower\",\n    \"array_ndims\",\n    \"array_position\",\n    \"array_positions\",\n    \"array_prepend\",\n    \"array_remove\",\n    \"array_replace\",\n    \"array_to_json\",\n    \"array_to_string\",\n    \"array_to_tsvector\",\n    \"array_upper\",\n    \"ascii\",\n    \"asin\",\n    \"asind\",\n    \"asinh\",\n    \"atan\",\n    \"atan2\",\n    \"atan2d\",\n    \"atand\",\n    \"atanh\",\n    \"avg\",\n    \"bit\",\n    \"bit_and\",\n    \"bit_count\",\n    \"bit_length\",\n    \"bit_or\",\n    \"bit_xor\",\n    \"bool_and\",\n    \"bool_or\",\n    \"bound_box\",\n    \"box\",\n    \"brin_desummarize_range\",\n    \"brin_summarize_new_values\",\n    \"brin_summarize_range\",\n    \"broadcast\",\n    \"btrim\",\n    \"cardinality\",\n    \"cbrt\",\n    \"ceil\",\n    \"ceiling\",\n    \"center\",\n    \"char_length\",\n    \"character_length\",\n    \"chr\",\n    \"circle\",\n    \"clock_timestamp\",\n    \"coalesce\",\n    \"col_description\",\n    \"concat\",\n    \"concat_ws\",\n    \"convert\",\n    \"convert_from\",\n    \"convert_to\",\n    \"corr\",\n    \"cos\",\n    \"cosd\",\n    \"cosh\",\n    \"cot\",\n    \"cotd\",\n    \"count\",\n    \"covar_pop\",\n    \"covar_samp\",\n    \"cume_dist\",\n    \"current_catalog\",\n    \"current_database\",\n    \"current_date\",\n    \"current_query\",\n    \"current_role\",\n    \"current_schema\",\n    \"current_schemas\",\n    \"current_setting\",\n    \"current_time\",\n    \"current_timestamp\",\n    \"current_user\",\n    \"currval\",\n    \"cursor_to_xml\",\n    \"cursor_to_xmlschema\",\n    \"date_bin\",\n    \"date_part\",\n    \"date_trunc\",\n    \"database_to_xml\",\n    \"database_to_xml_and_xmlschema\",\n    \"database_to_xmlschema\",\n    \"decode\",\n    \"degrees\",\n    \"dense_rank\",\n    \"diagonal\",\n    \"diameter\",\n    \"div\",\n    \"encode\",\n    \"enum_first\",\n    \"enum_last\",\n    \"enum_range\",\n    \"every\",\n    \"exp\",\n    \"extract\",\n    \"factorial\",\n    \"family\",\n    \"first_value\",\n    \"floor\",\n    \"format\",\n    \"format_type\",\n    \"gcd\",\n    \"gen_random_uuid\",\n    \"generate_series\",\n    \"generate_subscripts\",\n    \"get_bit\",\n    \"get_byte\",\n    \"get_current_ts_config\",\n    \"gin_clean_pending_list\",\n    \"greatest\",\n    \"grouping\",\n    \"has_any_column_privilege\",\n    \"has_column_privilege\",\n    \"has_database_privilege\",\n    \"has_foreign_data_wrapper_privilege\",\n    \"has_function_privilege\",\n    \"has_language_privilege\",\n    \"has_schema_privilege\",\n    \"has_sequence_privilege\",\n    \"has_server_privilege\",\n    \"has_table_privilege\",\n    \"has_tablespace_privilege\",\n    \"has_type_privilege\",\n    \"height\",\n    \"host\",\n    \"hostmask\",\n    \"inet_client_addr\",\n    \"inet_client_port\",\n    \"inet_merge\",\n    \"inet_same_family\",\n    \"inet_server_addr\",\n    \"inet_server_port\",\n    \"initcap\",\n    \"isclosed\",\n    \"isempty\",\n    \"isfinite\",\n    \"isopen\",\n    \"json_agg\",\n    \"json_array_elements\",\n    \"json_array_elements_text\",\n    \"json_array_length\",\n    \"json_build_array\",\n    \"json_build_object\",\n    \"json_each\",\n    \"json_each_text\",\n    \"json_extract_path\",\n    \"json_extract_path_text\",\n    \"json_object\",\n    \"json_object_agg\",\n    \"json_object_keys\",\n    \"json_populate_record\",\n    \"json_populate_recordset\",\n    \"json_strip_nulls\",\n    \"json_to_record\",\n    \"json_to_recordset\",\n    \"json_to_tsvector\",\n    \"json_typeof\",\n    \"jsonb_agg\",\n    \"jsonb_array_elements\",\n    \"jsonb_array_elements_text\",\n    \"jsonb_array_length\",\n    \"jsonb_build_array\",\n    \"jsonb_build_object\",\n    \"jsonb_each\",\n    \"jsonb_each_text\",\n    \"jsonb_extract_path\",\n    \"jsonb_extract_path_text\",\n    \"jsonb_insert\",\n    \"jsonb_object\",\n    \"jsonb_object_agg\",\n    \"jsonb_object_keys\",\n    \"jsonb_path_exists\",\n    \"jsonb_path_match\",\n    \"jsonb_path_query\",\n    \"jsonb_path_query_array\",\n    \"jsonb_path_exists_tz\",\n    \"jsonb_path_query_first\",\n    \"jsonb_path_query_array_tz\",\n    \"jsonb_path_query_first_tz\",\n    \"jsonb_path_query_tz\",\n    \"jsonb_path_match_tz\",\n    \"jsonb_populate_record\",\n    \"jsonb_populate_recordset\",\n    \"jsonb_pretty\",\n    \"jsonb_set\",\n    \"jsonb_set_lax\",\n    \"jsonb_strip_nulls\",\n    \"jsonb_to_record\",\n    \"jsonb_to_recordset\",\n    \"jsonb_to_tsvector\",\n    \"jsonb_typeof\",\n    \"justify_days\",\n    \"justify_hours\",\n    \"justify_interval\",\n    \"lag\",\n    \"last_value\",\n    \"lastval\",\n    \"lcm\",\n    \"lead\",\n    \"least\",\n    \"left\",\n    \"length\",\n    \"line\",\n    \"ln\",\n    \"localtime\",\n    \"localtimestamp\",\n    \"log\",\n    \"log10\",\n    \"lower\",\n    \"lower_inc\",\n    \"lower_inf\",\n    \"lpad\",\n    \"lseg\",\n    \"ltrim\",\n    \"macaddr8_set7bit\",\n    \"make_date\",\n    \"make_interval\",\n    \"make_time\",\n    \"make_timestamp\",\n    \"make_timestamptz\",\n    \"makeaclitem\",\n    \"masklen\",\n    \"max\",\n    \"md5\",\n    \"min\",\n    \"min_scale\",\n    \"mod\",\n    \"mode\",\n    \"multirange\",\n    \"netmask\",\n    \"network\",\n    \"nextval\",\n    \"normalize\",\n    \"now\",\n    \"npoints\",\n    \"nth_value\",\n    \"ntile\",\n    \"nullif\",\n    \"num_nonnulls\",\n    \"num_nulls\",\n    \"numnode\",\n    \"obj_description\",\n    \"octet_length\",\n    \"overlay\",\n    \"parse_ident\",\n    \"path\",\n    \"pclose\",\n    \"percent_rank\",\n    \"percentile_cont\",\n    \"percentile_disc\",\n    \"pg_advisory_lock\",\n    \"pg_advisory_lock_shared\",\n    \"pg_advisory_unlock\",\n    \"pg_advisory_unlock_all\",\n    \"pg_advisory_unlock_shared\",\n    \"pg_advisory_xact_lock\",\n    \"pg_advisory_xact_lock_shared\",\n    \"pg_backend_pid\",\n    \"pg_backup_start_time\",\n    \"pg_blocking_pids\",\n    \"pg_cancel_backend\",\n    \"pg_client_encoding\",\n    \"pg_collation_actual_version\",\n    \"pg_collation_is_visible\",\n    \"pg_column_compression\",\n    \"pg_column_size\",\n    \"pg_conf_load_time\",\n    \"pg_control_checkpoint\",\n    \"pg_control_init\",\n    \"pg_control_recovery\",\n    \"pg_control_system\",\n    \"pg_conversion_is_visible\",\n    \"pg_copy_logical_replication_slot\",\n    \"pg_copy_physical_replication_slot\",\n    \"pg_create_logical_replication_slot\",\n    \"pg_create_physical_replication_slot\",\n    \"pg_create_restore_point\",\n    \"pg_current_logfile\",\n    \"pg_current_snapshot\",\n    \"pg_current_wal_flush_lsn\",\n    \"pg_current_wal_insert_lsn\",\n    \"pg_current_wal_lsn\",\n    \"pg_current_xact_id\",\n    \"pg_current_xact_id_if_assigned\",\n    \"pg_current_xlog_flush_location\",\n    \"pg_current_xlog_insert_location\",\n    \"pg_current_xlog_location\",\n    \"pg_database_size\",\n    \"pg_describe_object\",\n    \"pg_drop_replication_slot\",\n    \"pg_event_trigger_ddl_commands\",\n    \"pg_event_trigger_dropped_objects\",\n    \"pg_event_trigger_table_rewrite_oid\",\n    \"pg_event_trigger_table_rewrite_reason\",\n    \"pg_export_snapshot\",\n    \"pg_filenode_relation\",\n    \"pg_function_is_visible\",\n    \"pg_get_catalog_foreign_keys\",\n    \"pg_get_constraintdef\",\n    \"pg_get_expr\",\n    \"pg_get_function_arguments\",\n    \"pg_get_function_identity_arguments\",\n    \"pg_get_function_result\",\n    \"pg_get_functiondef\",\n    \"pg_get_indexdef\",\n    \"pg_get_keywords\",\n    \"pg_get_object_address\",\n    \"pg_get_owned_sequence\",\n    \"pg_get_ruledef\",\n    \"pg_get_serial_sequence\",\n    \"pg_get_statisticsobjdef\",\n    \"pg_get_triggerdef\",\n    \"pg_get_userbyid\",\n    \"pg_get_viewdef\",\n    \"pg_get_wal_replay_pause_state\",\n    \"pg_has_role\",\n    \"pg_identify_object\",\n    \"pg_identify_object_as_address\",\n    \"pg_import_system_collations\",\n    \"pg_index_column_has_property\",\n    \"pg_index_has_property\",\n    \"pg_indexam_has_property\",\n    \"pg_indexes_size\",\n    \"pg_is_in_backup\",\n    \"pg_is_in_recovery\",\n    \"pg_is_other_temp_schema\",\n    \"pg_is_wal_replay_paused\",\n    \"pg_is_xlog_replay_paused\",\n    \"pg_jit_available\",\n    \"pg_last_committed_xact\",\n    \"pg_last_wal_receive_lsn\",\n    \"pg_last_wal_replay_lsn\",\n    \"pg_last_xact_replay_timestamp\",\n    \"pg_last_xlog_receive_location\",\n    \"pg_last_xlog_replay_location\",\n    \"pg_listening_channels\",\n    \"pg_log_backend_memory_contexts\",\n    \"pg_logical_emit_message\",\n    \"pg_logical_slot_get_binary_changes\",\n    \"pg_logical_slot_get_changes\",\n    \"pg_logical_slot_peek_binary_changes\",\n    \"pg_logical_slot_peek_changes\",\n    \"pg_ls_archive_statusdir\",\n    \"pg_ls_dir\",\n    \"pg_ls_logdir\",\n    \"pg_ls_tmpdir\",\n    \"pg_ls_waldir\",\n    \"pg_mcv_list_items\",\n    \"pg_my_temp_schema\",\n    \"pg_notification_queue_usage\",\n    \"pg_opclass_is_visible\",\n    \"pg_operator_is_visible\",\n    \"pg_opfamily_is_visible\",\n    \"pg_options_to_table\",\n    \"pg_partition_ancestors\",\n    \"pg_partition_root\",\n    \"pg_partition_tree\",\n    \"pg_postmaster_start_time\",\n    \"pg_promote\",\n    \"pg_read_binary_file\",\n    \"pg_read_file\",\n    \"pg_relation_filenode\",\n    \"pg_relation_filepath\",\n    \"pg_relation_size\",\n    \"pg_reload_conf\",\n    \"pg_replication_origin_advance\",\n    \"pg_replication_origin_create\",\n    \"pg_replication_origin_drop\",\n    \"pg_replication_origin_oid\",\n    \"pg_replication_origin_progress\",\n    \"pg_replication_origin_session_is_setup\",\n    \"pg_replication_origin_session_progress\",\n    \"pg_replication_origin_session_reset\",\n    \"pg_replication_origin_session_setup\",\n    \"pg_replication_origin_xact_reset\",\n    \"pg_replication_origin_xact_setup\",\n    \"pg_replication_slot_advance\",\n    \"pg_rotate_logfile\",\n    \"pg_safe_snapshot_blocking_pids\",\n    \"pg_size_bytes\",\n    \"pg_size_pretty\",\n    \"pg_sleep\",\n    \"pg_sleep_for\",\n    \"pg_sleep_until\",\n    \"pg_snapshot_xip\",\n    \"pg_snapshot_xmax\",\n    \"pg_snapshot_xmin\",\n    \"pg_start_backup\",\n    \"pg_stat_file\",\n    \"pg_statistics_obj_is_visible\",\n    \"pg_stop_backup\",\n    \"pg_switch_wal\",\n    \"pg_switch_xlog\",\n    \"pg_table_is_visible\",\n    \"pg_table_size\",\n    \"pg_tablespace_databases\",\n    \"pg_tablespace_location\",\n    \"pg_tablespace_size\",\n    \"pg_terminate_backend\",\n    \"pg_total_relation_size\",\n    \"pg_trigger_depth\",\n    \"pg_try_advisory_lock\",\n    \"pg_try_advisory_lock_shared\",\n    \"pg_try_advisory_xact_lock\",\n    \"pg_try_advisory_xact_lock_shared\",\n    \"pg_ts_config_is_visible\",\n    \"pg_ts_dict_is_visible\",\n    \"pg_ts_parser_is_visible\",\n    \"pg_ts_template_is_visible\",\n    \"pg_type_is_visible\",\n    \"pg_typeof\",\n    \"pg_visible_in_snapshot\",\n    \"pg_wal_lsn_diff\",\n    \"pg_wal_replay_pause\",\n    \"pg_wal_replay_resume\",\n    \"pg_walfile_name\",\n    \"pg_walfile_name_offset\",\n    \"pg_xact_commit_timestamp\",\n    \"pg_xact_commit_timestamp_origin\",\n    \"pg_xact_status\",\n    \"pg_xlog_location_diff\",\n    \"pg_xlog_replay_pause\",\n    \"pg_xlog_replay_resume\",\n    \"pg_xlogfile_name\",\n    \"pg_xlogfile_name_offset\",\n    \"phraseto_tsquery\",\n    \"pi\",\n    \"plainto_tsquery\",\n    \"point\",\n    \"polygon\",\n    \"popen\",\n    \"position\",\n    \"power\",\n    \"pqserverversion\",\n    \"query_to_xml\",\n    \"query_to_xml_and_xmlschema\",\n    \"query_to_xmlschema\",\n    \"querytree\",\n    \"quote_ident\",\n    \"quote_literal\",\n    \"quote_nullable\",\n    \"radians\",\n    \"radius\",\n    \"random\",\n    \"range_agg\",\n    \"range_intersect_agg\",\n    \"range_merge\",\n    \"rank\",\n    \"regexp_count\",\n    \"regexp_instr\",\n    \"regexp_like\",\n    \"regexp_match\",\n    \"regexp_matches\",\n    \"regexp_replace\",\n    \"regexp_split_to_array\",\n    \"regexp_split_to_table\",\n    \"regexp_substr\",\n    \"regr_avgx\",\n    \"regr_avgy\",\n    \"regr_count\",\n    \"regr_intercept\",\n    \"regr_r2\",\n    \"regr_slope\",\n    \"regr_sxx\",\n    \"regr_sxy\",\n    \"regr_syy\",\n    \"repeat\",\n    \"replace\",\n    \"reverse\",\n    \"right\",\n    \"round\",\n    \"row_number\",\n    \"row_security_active\",\n    \"row_to_json\",\n    \"rpad\",\n    \"rtrim\",\n    \"scale\",\n    \"schema_to_xml\",\n    \"schema_to_xml_and_xmlschema\",\n    \"schema_to_xmlschema\",\n    \"session_user\",\n    \"set_bit\",\n    \"set_byte\",\n    \"set_config\",\n    \"set_masklen\",\n    \"setseed\",\n    \"setval\",\n    \"setweight\",\n    \"sha224\",\n    \"sha256\",\n    \"sha384\",\n    \"sha512\",\n    \"shobj_description\",\n    \"sign\",\n    \"sin\",\n    \"sind\",\n    \"sinh\",\n    \"slope\",\n    \"split_part\",\n    \"sprintf\",\n    \"sqrt\",\n    \"starts_with\",\n    \"statement_timestamp\",\n    \"stddev\",\n    \"stddev_pop\",\n    \"stddev_samp\",\n    \"string_agg\",\n    \"string_to_array\",\n    \"string_to_table\",\n    \"strip\",\n    \"strpos\",\n    \"substr\",\n    \"substring\",\n    \"sum\",\n    \"suppress_redundant_updates_trigger\",\n    \"table_to_xml\",\n    \"table_to_xml_and_xmlschema\",\n    \"table_to_xmlschema\",\n    \"tan\",\n    \"tand\",\n    \"tanh\",\n    \"text\",\n    \"timeofday\",\n    \"timezone\",\n    \"to_ascii\",\n    \"to_char\",\n    \"to_date\",\n    \"to_hex\",\n    \"to_json\",\n    \"to_number\",\n    \"to_regclass\",\n    \"to_regcollation\",\n    \"to_regnamespace\",\n    \"to_regoper\",\n    \"to_regoperator\",\n    \"to_regproc\",\n    \"to_regprocedure\",\n    \"to_regrole\",\n    \"to_regtype\",\n    \"to_timestamp\",\n    \"to_tsquery\",\n    \"to_tsvector\",\n    \"transaction_timestamp\",\n    \"translate\",\n    \"trim\",\n    \"trim_array\",\n    \"trim_scale\",\n    \"trunc\",\n    \"ts_debug\",\n    \"ts_delete\",\n    \"ts_filter\",\n    \"ts_headline\",\n    \"ts_lexize\",\n    \"ts_parse\",\n    \"ts_rank\",\n    \"ts_rank_cd\",\n    \"ts_rewrite\",\n    \"ts_stat\",\n    \"ts_token_type\",\n    \"tsquery_phrase\",\n    \"tsvector_to_array\",\n    \"tsvector_update_trigger\",\n    \"tsvector_update_trigger_column\",\n    \"txid_current\",\n    \"txid_current_if_assigned\",\n    \"txid_current_snapshot\",\n    \"txid_snapshot_xip\",\n    \"txid_snapshot_xmax\",\n    \"txid_snapshot_xmin\",\n    \"txid_status\",\n    \"txid_visible_in_snapshot\",\n    \"unistr\",\n    \"unnest\",\n    \"upper\",\n    \"upper_inc\",\n    \"upper_inf\",\n    \"user\",\n    \"var_pop\",\n    \"var_samp\",\n    \"variance\",\n    \"version\",\n    \"websearch_to_tsquery\",\n    \"width\",\n    \"width_bucket\",\n    \"xml_is_well_formed\",\n    \"xml_is_well_formed_content\",\n    \"xml_is_well_formed_document\",\n    \"xmlagg\",\n    \"xmlcomment\",\n    \"xmlconcat\",\n    \"xmlelement\",\n    \"xmlexists\",\n    \"xmlforest\",\n    \"xmlparse\",\n    \"xmlpi\",\n    \"xmlroot\",\n    \"xmlserialize\",\n    \"xpath\",\n    \"xpath_exists\"\n  ],\n  builtinVariables: [\n    // NOT SUPPORTED\n  ],\n  pseudoColumns: [\n    // NOT SUPPORTED\n  ],\n  tokenizer: {\n    root: [\n      { include: \"@comments\" },\n      { include: \"@whitespace\" },\n      { include: \"@pseudoColumns\" },\n      { include: \"@numbers\" },\n      { include: \"@strings\" },\n      { include: \"@complexIdentifiers\" },\n      { include: \"@scopes\" },\n      [/[;,.]/, \"delimiter\"],\n      [/[()]/, \"@brackets\"],\n      [\n        /[\\w@#$]+/,\n        {\n          cases: {\n            \"@operators\": \"operator\",\n            \"@builtinVariables\": \"predefined\",\n            \"@builtinFunctions\": \"predefined\",\n            \"@keywords\": \"keyword\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      [/[<>=!%&+\\-*/|~^]/, \"operator\"]\n    ],\n    whitespace: [[/\\s+/, \"white\"]],\n    comments: [\n      [/--+.*/, \"comment\"],\n      [/\\/\\*/, { token: \"comment.quote\", next: \"@comment\" }]\n    ],\n    comment: [\n      [/[^*/]+/, \"comment\"],\n      // Not supporting nested comments, as nested comments seem to not be standard?\n      // i.e. http://stackoverflow.com/questions/728172/are-there-multiline-comment-delimiters-in-sql-that-are-vendor-agnostic\n      // [/\\/\\*/, { token: 'comment.quote', next: '@push' }],    // nested comment not allowed :-(\n      [/\\*\\//, { token: \"comment.quote\", next: \"@pop\" }],\n      [/./, \"comment\"]\n    ],\n    pseudoColumns: [\n      [\n        /[$][A-Za-z_][\\w@#$]*/,\n        {\n          cases: {\n            \"@pseudoColumns\": \"predefined\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ]\n    ],\n    numbers: [\n      [/0[xX][0-9a-fA-F]*/, \"number\"],\n      [/[$][+-]*\\d*(\\.\\d*)?/, \"number\"],\n      [/((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][\\-+]?\\d+)?/, \"number\"]\n    ],\n    strings: [[/'/, { token: \"string\", next: \"@string\" }]],\n    string: [\n      [/[^']+/, \"string\"],\n      [/''/, \"string\"],\n      [/'/, { token: \"string\", next: \"@pop\" }]\n    ],\n    complexIdentifiers: [[/\"/, { token: \"identifier.quote\", next: \"@quotedIdentifier\" }]],\n    quotedIdentifier: [\n      [/[^\"]+/, \"identifier\"],\n      [/\"\"/, \"identifier\"],\n      [/\"/, { token: \"identifier.quote\", next: \"@pop\" }]\n    ],\n    scopes: [\n      // NOT SUPPORTED\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/php/php.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/php/php.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/php/php.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"php\",\n  extensions: [\".php\", \".php4\", \".php5\", \".phtml\", \".ctp\"],\n  aliases: [\"PHP\", \"php\"],\n  mimetypes: [\"application/x-php\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/php/php\"], resolve, reject);\n      });\n    } else {\n      return import(\"./php.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/php/php.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/php/php.ts\nvar conf = {\n  wordPattern: /(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,\n  comments: {\n    lineComment: \"//\",\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\", notIn: [\"string\"] },\n    { open: \"[\", close: \"]\", notIn: [\"string\"] },\n    { open: \"(\", close: \")\", notIn: [\"string\"] },\n    { open: '\"', close: '\"', notIn: [\"string\"] },\n    { open: \"'\", close: \"'\", notIn: [\"string\", \"comment\"] }\n  ],\n  folding: {\n    markers: {\n      start: new RegExp(\"^\\\\s*(#|//)region\\\\b\"),\n      end: new RegExp(\"^\\\\s*(#|//)endregion\\\\b\")\n    }\n  }\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \"\",\n  // ignoreCase: true,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      [/<\\?((php)|=)?/, { token: \"@rematch\", switchTo: \"@phpInSimpleState.root\" }],\n      [/<!DOCTYPE/, \"metatag.html\", \"@doctype\"],\n      [/<!--/, \"comment.html\", \"@comment\"],\n      [/(<)(\\w+)(\\/>)/, [\"delimiter.html\", \"tag.html\", \"delimiter.html\"]],\n      [/(<)(script)/, [\"delimiter.html\", { token: \"tag.html\", next: \"@script\" }]],\n      [/(<)(style)/, [\"delimiter.html\", { token: \"tag.html\", next: \"@style\" }]],\n      [/(<)([:\\w]+)/, [\"delimiter.html\", { token: \"tag.html\", next: \"@otherTag\" }]],\n      [/(<\\/)(\\w+)/, [\"delimiter.html\", { token: \"tag.html\", next: \"@otherTag\" }]],\n      [/</, \"delimiter.html\"],\n      [/[^<]+/]\n      // text\n    ],\n    doctype: [\n      [/<\\?((php)|=)?/, { token: \"@rematch\", switchTo: \"@phpInSimpleState.comment\" }],\n      [/[^>]+/, \"metatag.content.html\"],\n      [/>/, \"metatag.html\", \"@pop\"]\n    ],\n    comment: [\n      [/<\\?((php)|=)?/, { token: \"@rematch\", switchTo: \"@phpInSimpleState.comment\" }],\n      [/-->/, \"comment.html\", \"@pop\"],\n      [/[^-]+/, \"comment.content.html\"],\n      [/./, \"comment.content.html\"]\n    ],\n    otherTag: [\n      [/<\\?((php)|=)?/, { token: \"@rematch\", switchTo: \"@phpInSimpleState.otherTag\" }],\n      [/\\/?>/, \"delimiter.html\", \"@pop\"],\n      [/\"([^\"]*)\"/, \"attribute.value\"],\n      [/'([^']*)'/, \"attribute.value\"],\n      [/[\\w\\-]+/, \"attribute.name\"],\n      [/=/, \"delimiter\"],\n      [/[ \\t\\r\\n]+/]\n      // whitespace\n    ],\n    // -- BEGIN <script> tags handling\n    // After <script\n    script: [\n      [/<\\?((php)|=)?/, { token: \"@rematch\", switchTo: \"@phpInSimpleState.script\" }],\n      [/type/, \"attribute.name\", \"@scriptAfterType\"],\n      [/\"([^\"]*)\"/, \"attribute.value\"],\n      [/'([^']*)'/, \"attribute.value\"],\n      [/[\\w\\-]+/, \"attribute.name\"],\n      [/=/, \"delimiter\"],\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@scriptEmbedded.text/javascript\",\n          nextEmbedded: \"text/javascript\"\n        }\n      ],\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [\n        /(<\\/)(script\\s*)(>)/,\n        [\"delimiter.html\", \"tag.html\", { token: \"delimiter.html\", next: \"@pop\" }]\n      ]\n    ],\n    // After <script ... type\n    scriptAfterType: [\n      [\n        /<\\?((php)|=)?/,\n        {\n          token: \"@rematch\",\n          switchTo: \"@phpInSimpleState.scriptAfterType\"\n        }\n      ],\n      [/=/, \"delimiter\", \"@scriptAfterTypeEquals\"],\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@scriptEmbedded.text/javascript\",\n          nextEmbedded: \"text/javascript\"\n        }\n      ],\n      // cover invalid e.g. <script type>\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/<\\/script\\s*>/, { token: \"@rematch\", next: \"@pop\" }]\n    ],\n    // After <script ... type =\n    scriptAfterTypeEquals: [\n      [\n        /<\\?((php)|=)?/,\n        {\n          token: \"@rematch\",\n          switchTo: \"@phpInSimpleState.scriptAfterTypeEquals\"\n        }\n      ],\n      [\n        /\"([^\"]*)\"/,\n        {\n          token: \"attribute.value\",\n          switchTo: \"@scriptWithCustomType.$1\"\n        }\n      ],\n      [\n        /'([^']*)'/,\n        {\n          token: \"attribute.value\",\n          switchTo: \"@scriptWithCustomType.$1\"\n        }\n      ],\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@scriptEmbedded.text/javascript\",\n          nextEmbedded: \"text/javascript\"\n        }\n      ],\n      // cover invalid e.g. <script type=>\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/<\\/script\\s*>/, { token: \"@rematch\", next: \"@pop\" }]\n    ],\n    // After <script ... type = $S2\n    scriptWithCustomType: [\n      [\n        /<\\?((php)|=)?/,\n        {\n          token: \"@rematch\",\n          switchTo: \"@phpInSimpleState.scriptWithCustomType.$S2\"\n        }\n      ],\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@scriptEmbedded.$S2\",\n          nextEmbedded: \"$S2\"\n        }\n      ],\n      [/\"([^\"]*)\"/, \"attribute.value\"],\n      [/'([^']*)'/, \"attribute.value\"],\n      [/[\\w\\-]+/, \"attribute.name\"],\n      [/=/, \"delimiter\"],\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/<\\/script\\s*>/, { token: \"@rematch\", next: \"@pop\" }]\n    ],\n    scriptEmbedded: [\n      [\n        /<\\?((php)|=)?/,\n        {\n          token: \"@rematch\",\n          switchTo: \"@phpInEmbeddedState.scriptEmbedded.$S2\",\n          nextEmbedded: \"@pop\"\n        }\n      ],\n      [/<\\/script/, { token: \"@rematch\", next: \"@pop\", nextEmbedded: \"@pop\" }]\n    ],\n    // -- END <script> tags handling\n    // -- BEGIN <style> tags handling\n    // After <style\n    style: [\n      [/<\\?((php)|=)?/, { token: \"@rematch\", switchTo: \"@phpInSimpleState.style\" }],\n      [/type/, \"attribute.name\", \"@styleAfterType\"],\n      [/\"([^\"]*)\"/, \"attribute.value\"],\n      [/'([^']*)'/, \"attribute.value\"],\n      [/[\\w\\-]+/, \"attribute.name\"],\n      [/=/, \"delimiter\"],\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@styleEmbedded.text/css\",\n          nextEmbedded: \"text/css\"\n        }\n      ],\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [\n        /(<\\/)(style\\s*)(>)/,\n        [\"delimiter.html\", \"tag.html\", { token: \"delimiter.html\", next: \"@pop\" }]\n      ]\n    ],\n    // After <style ... type\n    styleAfterType: [\n      [\n        /<\\?((php)|=)?/,\n        {\n          token: \"@rematch\",\n          switchTo: \"@phpInSimpleState.styleAfterType\"\n        }\n      ],\n      [/=/, \"delimiter\", \"@styleAfterTypeEquals\"],\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@styleEmbedded.text/css\",\n          nextEmbedded: \"text/css\"\n        }\n      ],\n      // cover invalid e.g. <style type>\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/<\\/style\\s*>/, { token: \"@rematch\", next: \"@pop\" }]\n    ],\n    // After <style ... type =\n    styleAfterTypeEquals: [\n      [\n        /<\\?((php)|=)?/,\n        {\n          token: \"@rematch\",\n          switchTo: \"@phpInSimpleState.styleAfterTypeEquals\"\n        }\n      ],\n      [\n        /\"([^\"]*)\"/,\n        {\n          token: \"attribute.value\",\n          switchTo: \"@styleWithCustomType.$1\"\n        }\n      ],\n      [\n        /'([^']*)'/,\n        {\n          token: \"attribute.value\",\n          switchTo: \"@styleWithCustomType.$1\"\n        }\n      ],\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@styleEmbedded.text/css\",\n          nextEmbedded: \"text/css\"\n        }\n      ],\n      // cover invalid e.g. <style type=>\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/<\\/style\\s*>/, { token: \"@rematch\", next: \"@pop\" }]\n    ],\n    // After <style ... type = $S2\n    styleWithCustomType: [\n      [\n        /<\\?((php)|=)?/,\n        {\n          token: \"@rematch\",\n          switchTo: \"@phpInSimpleState.styleWithCustomType.$S2\"\n        }\n      ],\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@styleEmbedded.$S2\",\n          nextEmbedded: \"$S2\"\n        }\n      ],\n      [/\"([^\"]*)\"/, \"attribute.value\"],\n      [/'([^']*)'/, \"attribute.value\"],\n      [/[\\w\\-]+/, \"attribute.name\"],\n      [/=/, \"delimiter\"],\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/<\\/style\\s*>/, { token: \"@rematch\", next: \"@pop\" }]\n    ],\n    styleEmbedded: [\n      [\n        /<\\?((php)|=)?/,\n        {\n          token: \"@rematch\",\n          switchTo: \"@phpInEmbeddedState.styleEmbedded.$S2\",\n          nextEmbedded: \"@pop\"\n        }\n      ],\n      [/<\\/style/, { token: \"@rematch\", next: \"@pop\", nextEmbedded: \"@pop\" }]\n    ],\n    // -- END <style> tags handling\n    phpInSimpleState: [\n      [/<\\?((php)|=)?/, \"metatag.php\"],\n      [/\\?>/, { token: \"metatag.php\", switchTo: \"@$S2.$S3\" }],\n      { include: \"phpRoot\" }\n    ],\n    phpInEmbeddedState: [\n      [/<\\?((php)|=)?/, \"metatag.php\"],\n      [\n        /\\?>/,\n        {\n          token: \"metatag.php\",\n          switchTo: \"@$S2.$S3\",\n          nextEmbedded: \"$S3\"\n        }\n      ],\n      { include: \"phpRoot\" }\n    ],\n    phpRoot: [\n      [\n        /[a-zA-Z_]\\w*/,\n        {\n          cases: {\n            \"@phpKeywords\": { token: \"keyword.php\" },\n            \"@phpCompileTimeConstants\": { token: \"constant.php\" },\n            \"@default\": \"identifier.php\"\n          }\n        }\n      ],\n      [\n        /[$a-zA-Z_]\\w*/,\n        {\n          cases: {\n            \"@phpPreDefinedVariables\": {\n              token: \"variable.predefined.php\"\n            },\n            \"@default\": \"variable.php\"\n          }\n        }\n      ],\n      // brackets\n      [/[{}]/, \"delimiter.bracket.php\"],\n      [/[\\[\\]]/, \"delimiter.array.php\"],\n      [/[()]/, \"delimiter.parenthesis.php\"],\n      // whitespace\n      [/[ \\t\\r\\n]+/],\n      // comments\n      [/(#|\\/\\/)$/, \"comment.php\"],\n      [/(#|\\/\\/)/, \"comment.php\", \"@phpLineComment\"],\n      // block comments\n      [/\\/\\*/, \"comment.php\", \"@phpComment\"],\n      // strings\n      [/\"/, \"string.php\", \"@phpDoubleQuoteString\"],\n      [/'/, \"string.php\", \"@phpSingleQuoteString\"],\n      // delimiters\n      [/[\\+\\-\\*\\%\\&\\|\\^\\~\\!\\=\\<\\>\\/\\?\\;\\:\\.\\,\\@]/, \"delimiter.php\"],\n      // numbers\n      [/\\d*\\d+[eE]([\\-+]?\\d+)?/, \"number.float.php\"],\n      [/\\d*\\.\\d+([eE][\\-+]?\\d+)?/, \"number.float.php\"],\n      [/0[xX][0-9a-fA-F']*[0-9a-fA-F]/, \"number.hex.php\"],\n      [/0[0-7']*[0-7]/, \"number.octal.php\"],\n      [/0[bB][0-1']*[0-1]/, \"number.binary.php\"],\n      [/\\d[\\d']*/, \"number.php\"],\n      [/\\d/, \"number.php\"]\n    ],\n    phpComment: [\n      [/\\*\\//, \"comment.php\", \"@pop\"],\n      [/[^*]+/, \"comment.php\"],\n      [/./, \"comment.php\"]\n    ],\n    phpLineComment: [\n      [/\\?>/, { token: \"@rematch\", next: \"@pop\" }],\n      [/.$/, \"comment.php\", \"@pop\"],\n      [/[^?]+$/, \"comment.php\", \"@pop\"],\n      [/[^?]+/, \"comment.php\"],\n      [/./, \"comment.php\"]\n    ],\n    phpDoubleQuoteString: [\n      [/[^\\\\\"]+/, \"string.php\"],\n      [/@escapes/, \"string.escape.php\"],\n      [/\\\\./, \"string.escape.invalid.php\"],\n      [/\"/, \"string.php\", \"@pop\"]\n    ],\n    phpSingleQuoteString: [\n      [/[^\\\\']+/, \"string.php\"],\n      [/@escapes/, \"string.escape.php\"],\n      [/\\\\./, \"string.escape.invalid.php\"],\n      [/'/, \"string.php\", \"@pop\"]\n    ]\n  },\n  phpKeywords: [\n    \"abstract\",\n    \"and\",\n    \"array\",\n    \"as\",\n    \"break\",\n    \"callable\",\n    \"case\",\n    \"catch\",\n    \"cfunction\",\n    \"class\",\n    \"clone\",\n    \"const\",\n    \"continue\",\n    \"declare\",\n    \"default\",\n    \"do\",\n    \"else\",\n    \"elseif\",\n    \"enddeclare\",\n    \"endfor\",\n    \"endforeach\",\n    \"endif\",\n    \"endswitch\",\n    \"endwhile\",\n    \"extends\",\n    \"false\",\n    \"final\",\n    \"for\",\n    \"foreach\",\n    \"function\",\n    \"global\",\n    \"goto\",\n    \"if\",\n    \"implements\",\n    \"interface\",\n    \"instanceof\",\n    \"insteadof\",\n    \"namespace\",\n    \"new\",\n    \"null\",\n    \"object\",\n    \"old_function\",\n    \"or\",\n    \"private\",\n    \"protected\",\n    \"public\",\n    \"resource\",\n    \"static\",\n    \"switch\",\n    \"throw\",\n    \"trait\",\n    \"try\",\n    \"true\",\n    \"use\",\n    \"var\",\n    \"while\",\n    \"xor\",\n    \"die\",\n    \"echo\",\n    \"empty\",\n    \"exit\",\n    \"eval\",\n    \"include\",\n    \"include_once\",\n    \"isset\",\n    \"list\",\n    \"require\",\n    \"require_once\",\n    \"return\",\n    \"print\",\n    \"unset\",\n    \"yield\",\n    \"__construct\"\n  ],\n  phpCompileTimeConstants: [\n    \"__CLASS__\",\n    \"__DIR__\",\n    \"__FILE__\",\n    \"__LINE__\",\n    \"__NAMESPACE__\",\n    \"__METHOD__\",\n    \"__FUNCTION__\",\n    \"__TRAIT__\"\n  ],\n  phpPreDefinedVariables: [\n    \"$GLOBALS\",\n    \"$_SERVER\",\n    \"$_GET\",\n    \"$_POST\",\n    \"$_FILES\",\n    \"$_REQUEST\",\n    \"$_SESSION\",\n    \"$_ENV\",\n    \"$_COOKIE\",\n    \"$php_errormsg\",\n    \"$HTTP_RAW_POST_DATA\",\n    \"$http_response_header\",\n    \"$argc\",\n    \"$argv\"\n  ],\n  escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/pla/pla.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/pla/pla.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/pla/pla.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"pla\",\n  extensions: [\".pla\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/pla/pla\"], resolve, reject);\n      });\n    } else {\n      return import(\"./pla.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/pla/pla.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/pla/pla.ts\nvar conf = {\n  comments: {\n    lineComment: \"#\"\n  },\n  brackets: [\n    [\"[\", \"]\"],\n    [\"<\", \">\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"[\", close: \"]\" },\n    { open: \"<\", close: \">\" },\n    { open: \"(\", close: \")\" }\n  ],\n  surroundingPairs: [\n    { open: \"[\", close: \"]\" },\n    { open: \"<\", close: \">\" },\n    { open: \"(\", close: \")\" }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".pla\",\n  brackets: [\n    { open: \"[\", close: \"]\", token: \"delimiter.square\" },\n    { open: \"<\", close: \">\", token: \"delimiter.angle\" },\n    { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" }\n  ],\n  keywords: [\n    \".i\",\n    \".o\",\n    \".mv\",\n    \".ilb\",\n    \".ob\",\n    \".label\",\n    \".type\",\n    \".phase\",\n    \".pair\",\n    \".symbolic\",\n    \".symbolic-output\",\n    \".kiss\",\n    \".p\",\n    \".e\",\n    \".end\"\n  ],\n  // regular expressions\n  comment: /#.*$/,\n  identifier: /[a-zA-Z]+[a-zA-Z0-9_\\-]*/,\n  plaContent: /[01\\-~\\|]+/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      // comments and whitespace\n      { include: \"@whitespace\" },\n      [/@comment/, \"comment\"],\n      // keyword\n      [\n        /\\.([a-zA-Z_\\-]+)/,\n        {\n          cases: {\n            \"@eos\": { token: \"keyword.$1\" },\n            \"@keywords\": {\n              cases: {\n                \".type\": { token: \"keyword.$1\", next: \"@type\" },\n                \"@default\": { token: \"keyword.$1\", next: \"@keywordArg\" }\n              }\n            },\n            \"@default\": { token: \"keyword.$1\" }\n          }\n        }\n      ],\n      // identifiers\n      [/@identifier/, \"identifier\"],\n      // PLA row\n      [/@plaContent/, \"string\"]\n    ],\n    whitespace: [[/[ \\t\\r\\n]+/, \"\"]],\n    type: [{ include: \"@whitespace\" }, [/\\w+/, { token: \"type\", next: \"@pop\" }]],\n    keywordArg: [\n      // whitespace\n      [\n        /[ \\t\\r\\n]+/,\n        {\n          cases: {\n            \"@eos\": { token: \"\", next: \"@pop\" },\n            \"@default\": \"\"\n          }\n        }\n      ],\n      // comments\n      [/@comment/, \"comment\", \"@pop\"],\n      // brackets\n      [\n        /[<>()\\[\\]]/,\n        {\n          cases: {\n            \"@eos\": { token: \"@brackets\", next: \"@pop\" },\n            \"@default\": \"@brackets\"\n          }\n        }\n      ],\n      // numbers\n      [\n        /\\-?\\d+/,\n        {\n          cases: {\n            \"@eos\": { token: \"number\", next: \"@pop\" },\n            \"@default\": \"number\"\n          }\n        }\n      ],\n      // identifiers\n      [\n        /@identifier/,\n        {\n          cases: {\n            \"@eos\": { token: \"identifier\", next: \"@pop\" },\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      // delimiter\n      [\n        /[;=]/,\n        {\n          cases: {\n            \"@eos\": { token: \"delimiter\", next: \"@pop\" },\n            \"@default\": \"delimiter\"\n          }\n        }\n      ]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/postiats/postiats.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/postiats/postiats.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/postiats/postiats.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"postiats\",\n  extensions: [\".dats\", \".sats\", \".hats\"],\n  aliases: [\"ATS\", \"ATS/Postiats\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/postiats/postiats\"], resolve, reject);\n      });\n    } else {\n      return import(\"./postiats.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/postiats/postiats.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/postiats/postiats.ts\nvar conf = {\n  comments: {\n    lineComment: \"//\",\n    blockComment: [\"(*\", \"*)\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"],\n    [\"<\", \">\"]\n  ],\n  autoClosingPairs: [\n    { open: '\"', close: '\"', notIn: [\"string\", \"comment\"] },\n    { open: \"{\", close: \"}\", notIn: [\"string\", \"comment\"] },\n    { open: \"[\", close: \"]\", notIn: [\"string\", \"comment\"] },\n    { open: \"(\", close: \")\", notIn: [\"string\", \"comment\"] }\n  ]\n};\nvar language = {\n  tokenPostfix: \".pats\",\n  // TODO: staload and dynload are followed by a special kind of string literals\n  // with {$IDENTIFER} variables, and it also may make sense to highlight\n  // the punctuation (. and / and \\) differently.\n  // Set defaultToken to invalid to see what you do not tokenize yet\n  defaultToken: \"invalid\",\n  // keyword reference: https://github.com/githwxi/ATS-Postiats/blob/master/src/pats_lexing_token.dats\n  keywords: [\n    //\n    \"abstype\",\n    // ABSTYPE\n    \"abst0ype\",\n    // ABST0YPE\n    \"absprop\",\n    // ABSPROP\n    \"absview\",\n    // ABSVIEW\n    \"absvtype\",\n    // ABSVIEWTYPE\n    \"absviewtype\",\n    // ABSVIEWTYPE\n    \"absvt0ype\",\n    // ABSVIEWT0YPE\n    \"absviewt0ype\",\n    // ABSVIEWT0YPE\n    //\n    \"as\",\n    // T_AS\n    //\n    \"and\",\n    // T_AND\n    //\n    \"assume\",\n    // T_ASSUME\n    //\n    \"begin\",\n    // T_BEGIN\n    //\n    /*\n    \t\t\"case\", // CASE\n    */\n    //\n    \"classdec\",\n    // T_CLASSDEC\n    //\n    \"datasort\",\n    // T_DATASORT\n    //\n    \"datatype\",\n    // DATATYPE\n    \"dataprop\",\n    // DATAPROP\n    \"dataview\",\n    // DATAVIEW\n    \"datavtype\",\n    // DATAVIEWTYPE\n    \"dataviewtype\",\n    // DATAVIEWTYPE\n    //\n    \"do\",\n    // T_DO\n    //\n    \"end\",\n    // T_END\n    //\n    \"extern\",\n    // T_EXTERN\n    \"extype\",\n    // T_EXTYPE\n    \"extvar\",\n    // T_EXTVAR\n    //\n    \"exception\",\n    // T_EXCEPTION\n    //\n    \"fn\",\n    // FN // non-recursive\n    \"fnx\",\n    // FNX // mutual tail-rec.\n    \"fun\",\n    // FUN // general-recursive\n    //\n    \"prfn\",\n    // PRFN\n    \"prfun\",\n    // PRFUN\n    //\n    \"praxi\",\n    // PRAXI\n    \"castfn\",\n    // CASTFN\n    //\n    \"if\",\n    // T_IF\n    \"then\",\n    // T_THEN\n    \"else\",\n    // T_ELSE\n    //\n    \"ifcase\",\n    // T_IFCASE\n    //\n    \"in\",\n    // T_IN\n    //\n    \"infix\",\n    // INFIX\n    \"infixl\",\n    // INFIXL\n    \"infixr\",\n    // INFIXR\n    \"prefix\",\n    // PREFIX\n    \"postfix\",\n    // POSTFIX\n    //\n    \"implmnt\",\n    // IMPLMNT // 0\n    \"implement\",\n    // IMPLEMENT // 1\n    //\n    \"primplmnt\",\n    // PRIMPLMNT // ~1\n    \"primplement\",\n    // PRIMPLMNT // ~1\n    //\n    \"import\",\n    // T_IMPORT // for importing packages\n    //\n    /*\n    \t\t\"lam\", // LAM\n    \t\t\"llam\", // LLAM\n    \t\t\"fix\", // FIX\n    */\n    //\n    \"let\",\n    // T_LET\n    //\n    \"local\",\n    // T_LOCAL\n    //\n    \"macdef\",\n    // MACDEF\n    \"macrodef\",\n    // MACRODEF\n    //\n    \"nonfix\",\n    // T_NONFIX\n    //\n    \"symelim\",\n    // T_SYMELIM\n    \"symintr\",\n    // T_SYMINTR\n    \"overload\",\n    // T_OVERLOAD\n    //\n    \"of\",\n    // T_OF\n    \"op\",\n    // T_OP\n    //\n    \"rec\",\n    // T_REC\n    //\n    \"sif\",\n    // T_SIF\n    \"scase\",\n    // T_SCASE\n    //\n    \"sortdef\",\n    // T_SORTDEF\n    /*\n    // HX: [sta] is now deprecated\n    */\n    \"sta\",\n    // T_STACST\n    \"stacst\",\n    // T_STACST\n    \"stadef\",\n    // T_STADEF\n    \"static\",\n    // T_STATIC\n    /*\n    \t\t\"stavar\", // T_STAVAR\n    */\n    //\n    \"staload\",\n    // T_STALOAD\n    \"dynload\",\n    // T_DYNLOAD\n    //\n    \"try\",\n    // T_TRY\n    //\n    \"tkindef\",\n    // T_TKINDEF // HX-2012-05-23\n    //\n    /*\n    \t\t\"type\", // TYPE\n    */\n    \"typedef\",\n    // TYPEDEF\n    \"propdef\",\n    // PROPDEF\n    \"viewdef\",\n    // VIEWDEF\n    \"vtypedef\",\n    // VIEWTYPEDEF\n    \"viewtypedef\",\n    // VIEWTYPEDEF\n    //\n    /*\n    \t\t\"val\", // VAL\n    */\n    \"prval\",\n    // PRVAL\n    //\n    \"var\",\n    // VAR\n    \"prvar\",\n    // PRVAR\n    //\n    \"when\",\n    // T_WHEN\n    \"where\",\n    // T_WHERE\n    //\n    /*\n    \t\t\"for\", // T_FOR\n    \t\t\"while\", // T_WHILE\n    */\n    //\n    \"with\",\n    // T_WITH\n    //\n    \"withtype\",\n    // WITHTYPE\n    \"withprop\",\n    // WITHPROP\n    \"withview\",\n    // WITHVIEW\n    \"withvtype\",\n    // WITHVIEWTYPE\n    \"withviewtype\"\n    // WITHVIEWTYPE\n    //\n  ],\n  keywords_dlr: [\n    \"$delay\",\n    // DLRDELAY\n    \"$ldelay\",\n    // DLRLDELAY\n    //\n    \"$arrpsz\",\n    // T_DLRARRPSZ\n    \"$arrptrsize\",\n    // T_DLRARRPSZ\n    //\n    \"$d2ctype\",\n    // T_DLRD2CTYPE\n    //\n    \"$effmask\",\n    // DLREFFMASK\n    \"$effmask_ntm\",\n    // DLREFFMASK_NTM\n    \"$effmask_exn\",\n    // DLREFFMASK_EXN\n    \"$effmask_ref\",\n    // DLREFFMASK_REF\n    \"$effmask_wrt\",\n    // DLREFFMASK_WRT\n    \"$effmask_all\",\n    // DLREFFMASK_ALL\n    //\n    \"$extern\",\n    // T_DLREXTERN\n    \"$extkind\",\n    // T_DLREXTKIND\n    \"$extype\",\n    // T_DLREXTYPE\n    \"$extype_struct\",\n    // T_DLREXTYPE_STRUCT\n    //\n    \"$extval\",\n    // T_DLREXTVAL\n    \"$extfcall\",\n    // T_DLREXTFCALL\n    \"$extmcall\",\n    // T_DLREXTMCALL\n    //\n    \"$literal\",\n    // T_DLRLITERAL\n    //\n    \"$myfilename\",\n    // T_DLRMYFILENAME\n    \"$mylocation\",\n    // T_DLRMYLOCATION\n    \"$myfunction\",\n    // T_DLRMYFUNCTION\n    //\n    \"$lst\",\n    // DLRLST\n    \"$lst_t\",\n    // DLRLST_T\n    \"$lst_vt\",\n    // DLRLST_VT\n    \"$list\",\n    // DLRLST\n    \"$list_t\",\n    // DLRLST_T\n    \"$list_vt\",\n    // DLRLST_VT\n    //\n    \"$rec\",\n    // DLRREC\n    \"$rec_t\",\n    // DLRREC_T\n    \"$rec_vt\",\n    // DLRREC_VT\n    \"$record\",\n    // DLRREC\n    \"$record_t\",\n    // DLRREC_T\n    \"$record_vt\",\n    // DLRREC_VT\n    //\n    \"$tup\",\n    // DLRTUP\n    \"$tup_t\",\n    // DLRTUP_T\n    \"$tup_vt\",\n    // DLRTUP_VT\n    \"$tuple\",\n    // DLRTUP\n    \"$tuple_t\",\n    // DLRTUP_T\n    \"$tuple_vt\",\n    // DLRTUP_VT\n    //\n    \"$break\",\n    // T_DLRBREAK\n    \"$continue\",\n    // T_DLRCONTINUE\n    //\n    \"$raise\",\n    // T_DLRRAISE\n    //\n    \"$showtype\",\n    // T_DLRSHOWTYPE\n    //\n    \"$vcopyenv_v\",\n    // DLRVCOPYENV_V\n    \"$vcopyenv_vt\",\n    // DLRVCOPYENV_VT\n    //\n    \"$tempenver\",\n    // T_DLRTEMPENVER\n    //\n    \"$solver_assert\",\n    // T_DLRSOLASSERT\n    \"$solver_verify\"\n    // T_DLRSOLVERIFY\n  ],\n  keywords_srp: [\n    //\n    \"#if\",\n    // T_SRPIF\n    \"#ifdef\",\n    // T_SRPIFDEF\n    \"#ifndef\",\n    // T_SRPIFNDEF\n    //\n    \"#then\",\n    // T_SRPTHEN\n    //\n    \"#elif\",\n    // T_SRPELIF\n    \"#elifdef\",\n    // T_SRPELIFDEF\n    \"#elifndef\",\n    // T_SRPELIFNDEF\n    //\n    \"#else\",\n    // T_SRPELSE\n    \"#endif\",\n    // T_SRPENDIF\n    //\n    \"#error\",\n    // T_SRPERROR\n    //\n    \"#prerr\",\n    // T_SRPPRERR // outpui to stderr\n    \"#print\",\n    // T_SRPPRINT // output to stdout\n    //\n    \"#assert\",\n    // T_SRPASSERT\n    //\n    \"#undef\",\n    // T_SRPUNDEF\n    \"#define\",\n    // T_SRPDEFINE\n    //\n    \"#include\",\n    // T_SRPINCLUDE\n    \"#require\",\n    // T_SRPREQUIRE\n    //\n    \"#pragma\",\n    // T_SRPPRAGMA // HX: general pragma\n    \"#codegen2\",\n    // T_SRPCODEGEN2 // for level-2 codegen\n    \"#codegen3\"\n    // T_SRPCODEGEN3 // for level-3 codegen\n    //\n    // HX: end of special tokens\n    //\n  ],\n  irregular_keyword_list: [\n    \"val+\",\n    \"val-\",\n    \"val\",\n    \"case+\",\n    \"case-\",\n    \"case\",\n    \"addr@\",\n    \"addr\",\n    \"fold@\",\n    \"free@\",\n    \"fix@\",\n    \"fix\",\n    \"lam@\",\n    \"lam\",\n    \"llam@\",\n    \"llam\",\n    \"viewt@ype+\",\n    \"viewt@ype-\",\n    \"viewt@ype\",\n    \"viewtype+\",\n    \"viewtype-\",\n    \"viewtype\",\n    \"view+\",\n    \"view-\",\n    \"view@\",\n    \"view\",\n    \"type+\",\n    \"type-\",\n    \"type\",\n    \"vtype+\",\n    \"vtype-\",\n    \"vtype\",\n    \"vt@ype+\",\n    \"vt@ype-\",\n    \"vt@ype\",\n    \"viewt@ype+\",\n    \"viewt@ype-\",\n    \"viewt@ype\",\n    \"viewtype+\",\n    \"viewtype-\",\n    \"viewtype\",\n    \"prop+\",\n    \"prop-\",\n    \"prop\",\n    \"type+\",\n    \"type-\",\n    \"type\",\n    \"t@ype\",\n    \"t@ype+\",\n    \"t@ype-\",\n    \"abst@ype\",\n    \"abstype\",\n    \"absviewt@ype\",\n    \"absvt@ype\",\n    \"for*\",\n    \"for\",\n    \"while*\",\n    \"while\"\n  ],\n  keywords_types: [\n    \"bool\",\n    \"double\",\n    \"byte\",\n    \"int\",\n    \"short\",\n    \"char\",\n    \"void\",\n    \"unit\",\n    \"long\",\n    \"float\",\n    \"string\",\n    \"strptr\"\n  ],\n  // TODO: reference for this?\n  keywords_effects: [\n    \"0\",\n    // no effects\n    \"fun\",\n    \"clo\",\n    \"prf\",\n    \"funclo\",\n    \"cloptr\",\n    \"cloref\",\n    \"ref\",\n    \"ntm\",\n    \"1\"\n    // all effects\n  ],\n  operators: [\n    \"@\",\n    // T_AT\n    \"!\",\n    // T_BANG\n    \"|\",\n    // T_BAR\n    \"`\",\n    // T_BQUOTE\n    \":\",\n    // T_COLON\n    \"$\",\n    // T_DOLLAR\n    \".\",\n    // T_DOT\n    \"=\",\n    // T_EQ\n    \"#\",\n    // T_HASH\n    \"~\",\n    // T_TILDE\n    //\n    \"..\",\n    // T_DOTDOT\n    \"...\",\n    // T_DOTDOTDOT\n    //\n    \"=>\",\n    // T_EQGT\n    // \"=<\", // T_EQLT\n    \"=<>\",\n    // T_EQLTGT\n    \"=/=>\",\n    // T_EQSLASHEQGT\n    \"=>>\",\n    // T_EQGTGT\n    \"=/=>>\",\n    // T_EQSLASHEQGTGT\n    //\n    \"<\",\n    // T_LT // opening a tmparg\n    \">\",\n    // T_GT // closing a tmparg\n    //\n    \"><\",\n    // T_GTLT\n    //\n    \".<\",\n    // T_DOTLT\n    \">.\",\n    // T_GTDOT\n    //\n    \".<>.\",\n    // T_DOTLTGTDOT\n    //\n    \"->\",\n    // T_MINUSGT\n    //\"-<\", // T_MINUSLT\n    \"-<>\"\n    // T_MINUSLTGT\n    //\n    /*\n    \t\t\":<\", // T_COLONLT\n    */\n  ],\n  brackets: [\n    { open: \",(\", close: \")\", token: \"delimiter.parenthesis\" },\n    // meta-programming syntax\n    { open: \"`(\", close: \")\", token: \"delimiter.parenthesis\" },\n    { open: \"%(\", close: \")\", token: \"delimiter.parenthesis\" },\n    { open: \"'(\", close: \")\", token: \"delimiter.parenthesis\" },\n    { open: \"'{\", close: \"}\", token: \"delimiter.parenthesis\" },\n    { open: \"@(\", close: \")\", token: \"delimiter.parenthesis\" },\n    { open: \"@{\", close: \"}\", token: \"delimiter.brace\" },\n    { open: \"@[\", close: \"]\", token: \"delimiter.square\" },\n    { open: \"#[\", close: \"]\", token: \"delimiter.square\" },\n    { open: \"{\", close: \"}\", token: \"delimiter.curly\" },\n    { open: \"[\", close: \"]\", token: \"delimiter.square\" },\n    { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" },\n    { open: \"<\", close: \">\", token: \"delimiter.angle\" }\n  ],\n  // we include these common regular expressions\n  symbols: /[=><!~?:&|+\\-*\\/\\^%]+/,\n  IDENTFST: /[a-zA-Z_]/,\n  IDENTRST: /[a-zA-Z0-9_'$]/,\n  symbolic: /[%&+-./:=@~`^|*!$#?<>]/,\n  digit: /[0-9]/,\n  digitseq0: /@digit*/,\n  xdigit: /[0-9A-Za-z]/,\n  xdigitseq0: /@xdigit*/,\n  INTSP: /[lLuU]/,\n  FLOATSP: /[fFlL]/,\n  fexponent: /[eE][+-]?[0-9]+/,\n  fexponent_bin: /[pP][+-]?[0-9]+/,\n  deciexp: /\\.[0-9]*@fexponent?/,\n  hexiexp: /\\.[0-9a-zA-Z]*@fexponent_bin?/,\n  irregular_keywords: /val[+-]?|case[+-]?|addr\\@?|fold\\@|free\\@|fix\\@?|lam\\@?|llam\\@?|prop[+-]?|type[+-]?|view[+-@]?|viewt@?ype[+-]?|t@?ype[+-]?|v(iew)?t@?ype[+-]?|abst@?ype|absv(iew)?t@?ype|for\\*?|while\\*?/,\n  ESCHAR: /[ntvbrfa\\\\\\?'\"\\(\\[\\{]/,\n  start: \"root\",\n  // The main tokenizer for ATS/Postiats\n  // reference: https://github.com/githwxi/ATS-Postiats/blob/master/src/pats_lexing.dats\n  tokenizer: {\n    root: [\n      // lexing_blankseq0\n      { regex: /[ \\t\\r\\n]+/, action: { token: \"\" } },\n      // NOTE: (*) is an invalid ML-like comment!\n      { regex: /\\(\\*\\)/, action: { token: \"invalid\" } },\n      {\n        regex: /\\(\\*/,\n        action: { token: \"comment\", next: \"lexing_COMMENT_block_ml\" }\n      },\n      {\n        regex: /\\(/,\n        action: \"@brackets\"\n        /*{ token: 'delimiter.parenthesis' }*/\n      },\n      {\n        regex: /\\)/,\n        action: \"@brackets\"\n        /*{ token: 'delimiter.parenthesis' }*/\n      },\n      {\n        regex: /\\[/,\n        action: \"@brackets\"\n        /*{ token: 'delimiter.bracket' }*/\n      },\n      {\n        regex: /\\]/,\n        action: \"@brackets\"\n        /*{ token: 'delimiter.bracket' }*/\n      },\n      {\n        regex: /\\{/,\n        action: \"@brackets\"\n        /*{ token: 'delimiter.brace' }*/\n      },\n      {\n        regex: /\\}/,\n        action: \"@brackets\"\n        /*{ token: 'delimiter.brace' }*/\n      },\n      // lexing_COMMA\n      {\n        regex: /,\\(/,\n        action: \"@brackets\"\n        /*{ token: 'delimiter.parenthesis' }*/\n      },\n      // meta-programming syntax\n      { regex: /,/, action: { token: \"delimiter.comma\" } },\n      { regex: /;/, action: { token: \"delimiter.semicolon\" } },\n      // lexing_AT\n      {\n        regex: /@\\(/,\n        action: \"@brackets\"\n        /* { token: 'delimiter.parenthesis' }*/\n      },\n      {\n        regex: /@\\[/,\n        action: \"@brackets\"\n        /* { token: 'delimiter.bracket' }*/\n      },\n      {\n        regex: /@\\{/,\n        action: \"@brackets\"\n        /*{ token: 'delimiter.brace' }*/\n      },\n      // lexing_COLON\n      {\n        regex: /:</,\n        action: { token: \"keyword\", next: \"@lexing_EFFECT_commaseq0\" }\n      },\n      // T_COLONLT\n      /*\n      \t\t\tlexing_DOT:\n      \n      \t\t\t. // SYMBOLIC => lexing_IDENT_sym\n      \t\t\t. FLOATDOT => lexing_FLOAT_deciexp\n      \t\t\t. DIGIT => T_DOTINT\n      \t\t\t*/\n      { regex: /\\.@symbolic+/, action: { token: \"identifier.sym\" } },\n      // FLOATDOT case\n      {\n        regex: /\\.@digit*@fexponent@FLOATSP*/,\n        action: { token: \"number.float\" }\n      },\n      { regex: /\\.@digit+/, action: { token: \"number.float\" } },\n      // T_DOTINT\n      // lexing_DOLLAR:\n      // '$' IDENTFST IDENTRST* => lexing_IDENT_dlr, _ => lexing_IDENT_sym\n      {\n        regex: /\\$@IDENTFST@IDENTRST*/,\n        action: {\n          cases: {\n            \"@keywords_dlr\": { token: \"keyword.dlr\" },\n            \"@default\": { token: \"namespace\" }\n            // most likely a module qualifier\n          }\n        }\n      },\n      // lexing_SHARP:\n      // '#' IDENTFST IDENTRST* => lexing_ident_srp, _ => lexing_IDENT_sym\n      {\n        regex: /\\#@IDENTFST@IDENTRST*/,\n        action: {\n          cases: {\n            \"@keywords_srp\": { token: \"keyword.srp\" },\n            \"@default\": { token: \"identifier\" }\n          }\n        }\n      },\n      // lexing_PERCENT:\n      { regex: /%\\(/, action: { token: \"delimiter.parenthesis\" } },\n      {\n        regex: /^%{(#|\\^|\\$)?/,\n        action: {\n          token: \"keyword\",\n          next: \"@lexing_EXTCODE\",\n          nextEmbedded: \"text/javascript\"\n        }\n      },\n      { regex: /^%}/, action: { token: \"keyword\" } },\n      // lexing_QUOTE\n      { regex: /'\\(/, action: { token: \"delimiter.parenthesis\" } },\n      { regex: /'\\[/, action: { token: \"delimiter.bracket\" } },\n      { regex: /'\\{/, action: { token: \"delimiter.brace\" } },\n      [/(')(\\\\@ESCHAR|\\\\[xX]@xdigit+|\\\\@digit+)(')/, [\"string\", \"string.escape\", \"string\"]],\n      [/'[^\\\\']'/, \"string\"],\n      // lexing_DQUOTE\n      [/\"/, \"string.quote\", \"@lexing_DQUOTE\"],\n      // lexing_BQUOTE\n      {\n        regex: /`\\(/,\n        action: \"@brackets\"\n        /* { token: 'delimiter.parenthesis' }*/\n      },\n      // TODO: otherwise, try lexing_IDENT_sym\n      { regex: /\\\\/, action: { token: \"punctuation\" } },\n      // just T_BACKSLASH\n      // lexing_IDENT_alp:\n      // NOTE: (?!regex) is syntax for \"not-followed-by\" regex\n      // to resolve ambiguity such as foreach$fwork being incorrectly lexed as [for] [each$fwork]!\n      {\n        regex: /@irregular_keywords(?!@IDENTRST)/,\n        action: { token: \"keyword\" }\n      },\n      {\n        regex: /@IDENTFST@IDENTRST*[<!\\[]?/,\n        action: {\n          cases: {\n            // TODO: dynload and staload should be specially parsed\n            // dynload whitespace+ \"special_string\"\n            // this special string is really:\n            //  '/' '\\\\' '.' => punctuation\n            // ({\\$)([a-zA-Z_][a-zA-Z_0-9]*)(}) => punctuation,keyword,punctuation\n            // [^\"] => identifier/literal\n            \"@keywords\": { token: \"keyword\" },\n            \"@keywords_types\": { token: \"type\" },\n            \"@default\": { token: \"identifier\" }\n          }\n        }\n      },\n      // lexing_IDENT_sym:\n      {\n        regex: /\\/\\/\\/\\//,\n        action: { token: \"comment\", next: \"@lexing_COMMENT_rest\" }\n      },\n      { regex: /\\/\\/.*$/, action: { token: \"comment\" } },\n      {\n        regex: /\\/\\*/,\n        action: { token: \"comment\", next: \"@lexing_COMMENT_block_c\" }\n      },\n      // AS-20160627: specifically for effect annotations\n      {\n        regex: /-<|=</,\n        action: { token: \"keyword\", next: \"@lexing_EFFECT_commaseq0\" }\n      },\n      {\n        regex: /@symbolic+/,\n        action: {\n          cases: {\n            \"@operators\": \"keyword\",\n            \"@default\": \"operator\"\n          }\n        }\n      },\n      // lexing_ZERO:\n      // FIXME: this one is quite messy/unfinished yet\n      // TODO: lexing_INT_hex\n      // - testing_hexiexp => lexing_FLOAT_hexiexp\n      // - testing_fexponent_bin => lexing_FLOAT_hexiexp\n      // - testing_intspseq0 => T_INT_hex\n      // lexing_INT_hex:\n      {\n        regex: /0[xX]@xdigit+(@hexiexp|@fexponent_bin)@FLOATSP*/,\n        action: { token: \"number.float\" }\n      },\n      { regex: /0[xX]@xdigit+@INTSP*/, action: { token: \"number.hex\" } },\n      {\n        regex: /0[0-7]+(?![0-9])@INTSP*/,\n        action: { token: \"number.octal\" }\n      },\n      // lexing_INT_oct\n      //{regex: /0/, action: { token: 'number' } }, // INTZERO\n      // lexing_INT_dec:\n      // - testing_deciexp => lexing_FLOAT_deciexp\n      // - testing_fexponent => lexing_FLOAT_deciexp\n      // - otherwise => intspseq0 ([0-9]*[lLuU]?)\n      {\n        regex: /@digit+(@fexponent|@deciexp)@FLOATSP*/,\n        action: { token: \"number.float\" }\n      },\n      {\n        regex: /@digit@digitseq0@INTSP*/,\n        action: { token: \"number.decimal\" }\n      },\n      // DIGIT, if followed by digitseq0, is lexing_INT_dec\n      { regex: /@digit+@INTSP*/, action: { token: \"number\" } }\n    ],\n    lexing_COMMENT_block_ml: [\n      [/[^\\(\\*]+/, \"comment\"],\n      [/\\(\\*/, \"comment\", \"@push\"],\n      [/\\(\\*/, \"comment.invalid\"],\n      [/\\*\\)/, \"comment\", \"@pop\"],\n      [/\\*/, \"comment\"]\n    ],\n    lexing_COMMENT_block_c: [\n      [/[^\\/*]+/, \"comment\"],\n      // [/\\/\\*/, 'comment', '@push' ],    // nested C-style block comments not allowed\n      // [/\\/\\*/,    'comment.invalid' ],\t// NOTE: this breaks block comments in the shape of /* //*/\n      [/\\*\\//, \"comment\", \"@pop\"],\n      [/[\\/*]/, \"comment\"]\n    ],\n    lexing_COMMENT_rest: [\n      [/$/, \"comment\", \"@pop\"],\n      // FIXME: does it match? docs say 'no'\n      [/.*/, \"comment\"]\n    ],\n    // NOTE: added by AS, specifically for highlighting\n    lexing_EFFECT_commaseq0: [\n      {\n        regex: /@IDENTFST@IDENTRST+|@digit+/,\n        action: {\n          cases: {\n            \"@keywords_effects\": { token: \"type.effect\" },\n            \"@default\": { token: \"identifier\" }\n          }\n        }\n      },\n      { regex: /,/, action: { token: \"punctuation\" } },\n      { regex: />/, action: { token: \"@rematch\", next: \"@pop\" } }\n    ],\n    lexing_EXTCODE: [\n      {\n        regex: /^%}/,\n        action: {\n          token: \"@rematch\",\n          next: \"@pop\",\n          nextEmbedded: \"@pop\"\n        }\n      },\n      { regex: /[^%]+/, action: \"\" }\n    ],\n    lexing_DQUOTE: [\n      { regex: /\"/, action: { token: \"string.quote\", next: \"@pop\" } },\n      // AS-20160628: additional hi-lighting for variables in staload/dynload strings\n      {\n        regex: /(\\{\\$)(@IDENTFST@IDENTRST*)(\\})/,\n        action: [{ token: \"string.escape\" }, { token: \"identifier\" }, { token: \"string.escape\" }]\n      },\n      { regex: /\\\\$/, action: { token: \"string.escape\" } },\n      {\n        regex: /\\\\(@ESCHAR|[xX]@xdigit+|@digit+)/,\n        action: { token: \"string.escape\" }\n      },\n      { regex: /[^\\\\\"]+/, action: { token: \"string\" } }\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/powerquery/powerquery.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/powerquery/powerquery.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/powerquery/powerquery.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"powerquery\",\n  extensions: [\".pq\", \".pqm\"],\n  aliases: [\"PQ\", \"M\", \"Power Query\", \"Power Query M\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/powerquery/powerquery\"], resolve, reject);\n      });\n    } else {\n      return import(\"./powerquery.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/powerquery/powerquery.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/powerquery/powerquery.ts\nvar conf = {\n  comments: {\n    lineComment: \"//\",\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"[\", \"]\"],\n    [\"(\", \")\"],\n    [\"{\", \"}\"]\n  ],\n  autoClosingPairs: [\n    { open: '\"', close: '\"', notIn: [\"string\", \"comment\", \"identifier\"] },\n    { open: \"[\", close: \"]\", notIn: [\"string\", \"comment\", \"identifier\"] },\n    { open: \"(\", close: \")\", notIn: [\"string\", \"comment\", \"identifier\"] },\n    { open: \"{\", close: \"}\", notIn: [\"string\", \"comment\", \"identifier\"] }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".pq\",\n  ignoreCase: false,\n  brackets: [\n    { open: \"[\", close: \"]\", token: \"delimiter.square\" },\n    { open: \"{\", close: \"}\", token: \"delimiter.brackets\" },\n    { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" }\n  ],\n  operatorKeywords: [\"and\", \"not\", \"or\"],\n  keywords: [\n    \"as\",\n    \"each\",\n    \"else\",\n    \"error\",\n    \"false\",\n    \"if\",\n    \"in\",\n    \"is\",\n    \"let\",\n    \"meta\",\n    \"otherwise\",\n    \"section\",\n    \"shared\",\n    \"then\",\n    \"true\",\n    \"try\",\n    \"type\"\n  ],\n  constructors: [\"#binary\", \"#date\", \"#datetime\", \"#datetimezone\", \"#duration\", \"#table\", \"#time\"],\n  constants: [\"#infinity\", \"#nan\", \"#sections\", \"#shared\"],\n  typeKeywords: [\n    \"action\",\n    \"any\",\n    \"anynonnull\",\n    \"none\",\n    \"null\",\n    \"logical\",\n    \"number\",\n    \"time\",\n    \"date\",\n    \"datetime\",\n    \"datetimezone\",\n    \"duration\",\n    \"text\",\n    \"binary\",\n    \"list\",\n    \"record\",\n    \"table\",\n    \"function\"\n  ],\n  builtinFunctions: [\n    \"Access.Database\",\n    \"Action.Return\",\n    \"Action.Sequence\",\n    \"Action.Try\",\n    \"ActiveDirectory.Domains\",\n    \"AdoDotNet.DataSource\",\n    \"AdoDotNet.Query\",\n    \"AdobeAnalytics.Cubes\",\n    \"AnalysisServices.Database\",\n    \"AnalysisServices.Databases\",\n    \"AzureStorage.BlobContents\",\n    \"AzureStorage.Blobs\",\n    \"AzureStorage.Tables\",\n    \"Binary.Buffer\",\n    \"Binary.Combine\",\n    \"Binary.Compress\",\n    \"Binary.Decompress\",\n    \"Binary.End\",\n    \"Binary.From\",\n    \"Binary.FromList\",\n    \"Binary.FromText\",\n    \"Binary.InferContentType\",\n    \"Binary.Length\",\n    \"Binary.ToList\",\n    \"Binary.ToText\",\n    \"BinaryFormat.7BitEncodedSignedInteger\",\n    \"BinaryFormat.7BitEncodedUnsignedInteger\",\n    \"BinaryFormat.Binary\",\n    \"BinaryFormat.Byte\",\n    \"BinaryFormat.ByteOrder\",\n    \"BinaryFormat.Choice\",\n    \"BinaryFormat.Decimal\",\n    \"BinaryFormat.Double\",\n    \"BinaryFormat.Group\",\n    \"BinaryFormat.Length\",\n    \"BinaryFormat.List\",\n    \"BinaryFormat.Null\",\n    \"BinaryFormat.Record\",\n    \"BinaryFormat.SignedInteger16\",\n    \"BinaryFormat.SignedInteger32\",\n    \"BinaryFormat.SignedInteger64\",\n    \"BinaryFormat.Single\",\n    \"BinaryFormat.Text\",\n    \"BinaryFormat.Transform\",\n    \"BinaryFormat.UnsignedInteger16\",\n    \"BinaryFormat.UnsignedInteger32\",\n    \"BinaryFormat.UnsignedInteger64\",\n    \"Byte.From\",\n    \"Character.FromNumber\",\n    \"Character.ToNumber\",\n    \"Combiner.CombineTextByDelimiter\",\n    \"Combiner.CombineTextByEachDelimiter\",\n    \"Combiner.CombineTextByLengths\",\n    \"Combiner.CombineTextByPositions\",\n    \"Combiner.CombineTextByRanges\",\n    \"Comparer.Equals\",\n    \"Comparer.FromCulture\",\n    \"Comparer.Ordinal\",\n    \"Comparer.OrdinalIgnoreCase\",\n    \"Csv.Document\",\n    \"Cube.AddAndExpandDimensionColumn\",\n    \"Cube.AddMeasureColumn\",\n    \"Cube.ApplyParameter\",\n    \"Cube.AttributeMemberId\",\n    \"Cube.AttributeMemberProperty\",\n    \"Cube.CollapseAndRemoveColumns\",\n    \"Cube.Dimensions\",\n    \"Cube.DisplayFolders\",\n    \"Cube.Measures\",\n    \"Cube.Parameters\",\n    \"Cube.Properties\",\n    \"Cube.PropertyKey\",\n    \"Cube.ReplaceDimensions\",\n    \"Cube.Transform\",\n    \"Currency.From\",\n    \"DB2.Database\",\n    \"Date.AddDays\",\n    \"Date.AddMonths\",\n    \"Date.AddQuarters\",\n    \"Date.AddWeeks\",\n    \"Date.AddYears\",\n    \"Date.Day\",\n    \"Date.DayOfWeek\",\n    \"Date.DayOfWeekName\",\n    \"Date.DayOfYear\",\n    \"Date.DaysInMonth\",\n    \"Date.EndOfDay\",\n    \"Date.EndOfMonth\",\n    \"Date.EndOfQuarter\",\n    \"Date.EndOfWeek\",\n    \"Date.EndOfYear\",\n    \"Date.From\",\n    \"Date.FromText\",\n    \"Date.IsInCurrentDay\",\n    \"Date.IsInCurrentMonth\",\n    \"Date.IsInCurrentQuarter\",\n    \"Date.IsInCurrentWeek\",\n    \"Date.IsInCurrentYear\",\n    \"Date.IsInNextDay\",\n    \"Date.IsInNextMonth\",\n    \"Date.IsInNextNDays\",\n    \"Date.IsInNextNMonths\",\n    \"Date.IsInNextNQuarters\",\n    \"Date.IsInNextNWeeks\",\n    \"Date.IsInNextNYears\",\n    \"Date.IsInNextQuarter\",\n    \"Date.IsInNextWeek\",\n    \"Date.IsInNextYear\",\n    \"Date.IsInPreviousDay\",\n    \"Date.IsInPreviousMonth\",\n    \"Date.IsInPreviousNDays\",\n    \"Date.IsInPreviousNMonths\",\n    \"Date.IsInPreviousNQuarters\",\n    \"Date.IsInPreviousNWeeks\",\n    \"Date.IsInPreviousNYears\",\n    \"Date.IsInPreviousQuarter\",\n    \"Date.IsInPreviousWeek\",\n    \"Date.IsInPreviousYear\",\n    \"Date.IsInYearToDate\",\n    \"Date.IsLeapYear\",\n    \"Date.Month\",\n    \"Date.MonthName\",\n    \"Date.QuarterOfYear\",\n    \"Date.StartOfDay\",\n    \"Date.StartOfMonth\",\n    \"Date.StartOfQuarter\",\n    \"Date.StartOfWeek\",\n    \"Date.StartOfYear\",\n    \"Date.ToRecord\",\n    \"Date.ToText\",\n    \"Date.WeekOfMonth\",\n    \"Date.WeekOfYear\",\n    \"Date.Year\",\n    \"DateTime.AddZone\",\n    \"DateTime.Date\",\n    \"DateTime.FixedLocalNow\",\n    \"DateTime.From\",\n    \"DateTime.FromFileTime\",\n    \"DateTime.FromText\",\n    \"DateTime.IsInCurrentHour\",\n    \"DateTime.IsInCurrentMinute\",\n    \"DateTime.IsInCurrentSecond\",\n    \"DateTime.IsInNextHour\",\n    \"DateTime.IsInNextMinute\",\n    \"DateTime.IsInNextNHours\",\n    \"DateTime.IsInNextNMinutes\",\n    \"DateTime.IsInNextNSeconds\",\n    \"DateTime.IsInNextSecond\",\n    \"DateTime.IsInPreviousHour\",\n    \"DateTime.IsInPreviousMinute\",\n    \"DateTime.IsInPreviousNHours\",\n    \"DateTime.IsInPreviousNMinutes\",\n    \"DateTime.IsInPreviousNSeconds\",\n    \"DateTime.IsInPreviousSecond\",\n    \"DateTime.LocalNow\",\n    \"DateTime.Time\",\n    \"DateTime.ToRecord\",\n    \"DateTime.ToText\",\n    \"DateTimeZone.FixedLocalNow\",\n    \"DateTimeZone.FixedUtcNow\",\n    \"DateTimeZone.From\",\n    \"DateTimeZone.FromFileTime\",\n    \"DateTimeZone.FromText\",\n    \"DateTimeZone.LocalNow\",\n    \"DateTimeZone.RemoveZone\",\n    \"DateTimeZone.SwitchZone\",\n    \"DateTimeZone.ToLocal\",\n    \"DateTimeZone.ToRecord\",\n    \"DateTimeZone.ToText\",\n    \"DateTimeZone.ToUtc\",\n    \"DateTimeZone.UtcNow\",\n    \"DateTimeZone.ZoneHours\",\n    \"DateTimeZone.ZoneMinutes\",\n    \"Decimal.From\",\n    \"Diagnostics.ActivityId\",\n    \"Diagnostics.Trace\",\n    \"DirectQueryCapabilities.From\",\n    \"Double.From\",\n    \"Duration.Days\",\n    \"Duration.From\",\n    \"Duration.FromText\",\n    \"Duration.Hours\",\n    \"Duration.Minutes\",\n    \"Duration.Seconds\",\n    \"Duration.ToRecord\",\n    \"Duration.ToText\",\n    \"Duration.TotalDays\",\n    \"Duration.TotalHours\",\n    \"Duration.TotalMinutes\",\n    \"Duration.TotalSeconds\",\n    \"Embedded.Value\",\n    \"Error.Record\",\n    \"Excel.CurrentWorkbook\",\n    \"Excel.Workbook\",\n    \"Exchange.Contents\",\n    \"Expression.Constant\",\n    \"Expression.Evaluate\",\n    \"Expression.Identifier\",\n    \"Facebook.Graph\",\n    \"File.Contents\",\n    \"Folder.Contents\",\n    \"Folder.Files\",\n    \"Function.From\",\n    \"Function.Invoke\",\n    \"Function.InvokeAfter\",\n    \"Function.IsDataSource\",\n    \"GoogleAnalytics.Accounts\",\n    \"Guid.From\",\n    \"HdInsight.Containers\",\n    \"HdInsight.Contents\",\n    \"HdInsight.Files\",\n    \"Hdfs.Contents\",\n    \"Hdfs.Files\",\n    \"Informix.Database\",\n    \"Int16.From\",\n    \"Int32.From\",\n    \"Int64.From\",\n    \"Int8.From\",\n    \"ItemExpression.From\",\n    \"Json.Document\",\n    \"Json.FromValue\",\n    \"Lines.FromBinary\",\n    \"Lines.FromText\",\n    \"Lines.ToBinary\",\n    \"Lines.ToText\",\n    \"List.Accumulate\",\n    \"List.AllTrue\",\n    \"List.Alternate\",\n    \"List.AnyTrue\",\n    \"List.Average\",\n    \"List.Buffer\",\n    \"List.Combine\",\n    \"List.Contains\",\n    \"List.ContainsAll\",\n    \"List.ContainsAny\",\n    \"List.Count\",\n    \"List.Covariance\",\n    \"List.DateTimeZones\",\n    \"List.DateTimes\",\n    \"List.Dates\",\n    \"List.Difference\",\n    \"List.Distinct\",\n    \"List.Durations\",\n    \"List.FindText\",\n    \"List.First\",\n    \"List.FirstN\",\n    \"List.Generate\",\n    \"List.InsertRange\",\n    \"List.Intersect\",\n    \"List.IsDistinct\",\n    \"List.IsEmpty\",\n    \"List.Last\",\n    \"List.LastN\",\n    \"List.MatchesAll\",\n    \"List.MatchesAny\",\n    \"List.Max\",\n    \"List.MaxN\",\n    \"List.Median\",\n    \"List.Min\",\n    \"List.MinN\",\n    \"List.Mode\",\n    \"List.Modes\",\n    \"List.NonNullCount\",\n    \"List.Numbers\",\n    \"List.PositionOf\",\n    \"List.PositionOfAny\",\n    \"List.Positions\",\n    \"List.Product\",\n    \"List.Random\",\n    \"List.Range\",\n    \"List.RemoveFirstN\",\n    \"List.RemoveItems\",\n    \"List.RemoveLastN\",\n    \"List.RemoveMatchingItems\",\n    \"List.RemoveNulls\",\n    \"List.RemoveRange\",\n    \"List.Repeat\",\n    \"List.ReplaceMatchingItems\",\n    \"List.ReplaceRange\",\n    \"List.ReplaceValue\",\n    \"List.Reverse\",\n    \"List.Select\",\n    \"List.Single\",\n    \"List.SingleOrDefault\",\n    \"List.Skip\",\n    \"List.Sort\",\n    \"List.StandardDeviation\",\n    \"List.Sum\",\n    \"List.Times\",\n    \"List.Transform\",\n    \"List.TransformMany\",\n    \"List.Union\",\n    \"List.Zip\",\n    \"Logical.From\",\n    \"Logical.FromText\",\n    \"Logical.ToText\",\n    \"MQ.Queue\",\n    \"MySQL.Database\",\n    \"Number.Abs\",\n    \"Number.Acos\",\n    \"Number.Asin\",\n    \"Number.Atan\",\n    \"Number.Atan2\",\n    \"Number.BitwiseAnd\",\n    \"Number.BitwiseNot\",\n    \"Number.BitwiseOr\",\n    \"Number.BitwiseShiftLeft\",\n    \"Number.BitwiseShiftRight\",\n    \"Number.BitwiseXor\",\n    \"Number.Combinations\",\n    \"Number.Cos\",\n    \"Number.Cosh\",\n    \"Number.Exp\",\n    \"Number.Factorial\",\n    \"Number.From\",\n    \"Number.FromText\",\n    \"Number.IntegerDivide\",\n    \"Number.IsEven\",\n    \"Number.IsNaN\",\n    \"Number.IsOdd\",\n    \"Number.Ln\",\n    \"Number.Log\",\n    \"Number.Log10\",\n    \"Number.Mod\",\n    \"Number.Permutations\",\n    \"Number.Power\",\n    \"Number.Random\",\n    \"Number.RandomBetween\",\n    \"Number.Round\",\n    \"Number.RoundAwayFromZero\",\n    \"Number.RoundDown\",\n    \"Number.RoundTowardZero\",\n    \"Number.RoundUp\",\n    \"Number.Sign\",\n    \"Number.Sin\",\n    \"Number.Sinh\",\n    \"Number.Sqrt\",\n    \"Number.Tan\",\n    \"Number.Tanh\",\n    \"Number.ToText\",\n    \"OData.Feed\",\n    \"Odbc.DataSource\",\n    \"Odbc.Query\",\n    \"OleDb.DataSource\",\n    \"OleDb.Query\",\n    \"Oracle.Database\",\n    \"Percentage.From\",\n    \"PostgreSQL.Database\",\n    \"RData.FromBinary\",\n    \"Record.AddField\",\n    \"Record.Combine\",\n    \"Record.Field\",\n    \"Record.FieldCount\",\n    \"Record.FieldNames\",\n    \"Record.FieldOrDefault\",\n    \"Record.FieldValues\",\n    \"Record.FromList\",\n    \"Record.FromTable\",\n    \"Record.HasFields\",\n    \"Record.RemoveFields\",\n    \"Record.RenameFields\",\n    \"Record.ReorderFields\",\n    \"Record.SelectFields\",\n    \"Record.ToList\",\n    \"Record.ToTable\",\n    \"Record.TransformFields\",\n    \"Replacer.ReplaceText\",\n    \"Replacer.ReplaceValue\",\n    \"RowExpression.Column\",\n    \"RowExpression.From\",\n    \"Salesforce.Data\",\n    \"Salesforce.Reports\",\n    \"SapBusinessWarehouse.Cubes\",\n    \"SapHana.Database\",\n    \"SharePoint.Contents\",\n    \"SharePoint.Files\",\n    \"SharePoint.Tables\",\n    \"Single.From\",\n    \"Soda.Feed\",\n    \"Splitter.SplitByNothing\",\n    \"Splitter.SplitTextByAnyDelimiter\",\n    \"Splitter.SplitTextByDelimiter\",\n    \"Splitter.SplitTextByEachDelimiter\",\n    \"Splitter.SplitTextByLengths\",\n    \"Splitter.SplitTextByPositions\",\n    \"Splitter.SplitTextByRanges\",\n    \"Splitter.SplitTextByRepeatedLengths\",\n    \"Splitter.SplitTextByWhitespace\",\n    \"Sql.Database\",\n    \"Sql.Databases\",\n    \"SqlExpression.SchemaFrom\",\n    \"SqlExpression.ToExpression\",\n    \"Sybase.Database\",\n    \"Table.AddColumn\",\n    \"Table.AddIndexColumn\",\n    \"Table.AddJoinColumn\",\n    \"Table.AddKey\",\n    \"Table.AggregateTableColumn\",\n    \"Table.AlternateRows\",\n    \"Table.Buffer\",\n    \"Table.Column\",\n    \"Table.ColumnCount\",\n    \"Table.ColumnNames\",\n    \"Table.ColumnsOfType\",\n    \"Table.Combine\",\n    \"Table.CombineColumns\",\n    \"Table.Contains\",\n    \"Table.ContainsAll\",\n    \"Table.ContainsAny\",\n    \"Table.DemoteHeaders\",\n    \"Table.Distinct\",\n    \"Table.DuplicateColumn\",\n    \"Table.ExpandListColumn\",\n    \"Table.ExpandRecordColumn\",\n    \"Table.ExpandTableColumn\",\n    \"Table.FillDown\",\n    \"Table.FillUp\",\n    \"Table.FilterWithDataTable\",\n    \"Table.FindText\",\n    \"Table.First\",\n    \"Table.FirstN\",\n    \"Table.FirstValue\",\n    \"Table.FromColumns\",\n    \"Table.FromList\",\n    \"Table.FromPartitions\",\n    \"Table.FromRecords\",\n    \"Table.FromRows\",\n    \"Table.FromValue\",\n    \"Table.Group\",\n    \"Table.HasColumns\",\n    \"Table.InsertRows\",\n    \"Table.IsDistinct\",\n    \"Table.IsEmpty\",\n    \"Table.Join\",\n    \"Table.Keys\",\n    \"Table.Last\",\n    \"Table.LastN\",\n    \"Table.MatchesAllRows\",\n    \"Table.MatchesAnyRows\",\n    \"Table.Max\",\n    \"Table.MaxN\",\n    \"Table.Min\",\n    \"Table.MinN\",\n    \"Table.NestedJoin\",\n    \"Table.Partition\",\n    \"Table.PartitionValues\",\n    \"Table.Pivot\",\n    \"Table.PositionOf\",\n    \"Table.PositionOfAny\",\n    \"Table.PrefixColumns\",\n    \"Table.Profile\",\n    \"Table.PromoteHeaders\",\n    \"Table.Range\",\n    \"Table.RemoveColumns\",\n    \"Table.RemoveFirstN\",\n    \"Table.RemoveLastN\",\n    \"Table.RemoveMatchingRows\",\n    \"Table.RemoveRows\",\n    \"Table.RemoveRowsWithErrors\",\n    \"Table.RenameColumns\",\n    \"Table.ReorderColumns\",\n    \"Table.Repeat\",\n    \"Table.ReplaceErrorValues\",\n    \"Table.ReplaceKeys\",\n    \"Table.ReplaceMatchingRows\",\n    \"Table.ReplaceRelationshipIdentity\",\n    \"Table.ReplaceRows\",\n    \"Table.ReplaceValue\",\n    \"Table.ReverseRows\",\n    \"Table.RowCount\",\n    \"Table.Schema\",\n    \"Table.SelectColumns\",\n    \"Table.SelectRows\",\n    \"Table.SelectRowsWithErrors\",\n    \"Table.SingleRow\",\n    \"Table.Skip\",\n    \"Table.Sort\",\n    \"Table.SplitColumn\",\n    \"Table.ToColumns\",\n    \"Table.ToList\",\n    \"Table.ToRecords\",\n    \"Table.ToRows\",\n    \"Table.TransformColumnNames\",\n    \"Table.TransformColumnTypes\",\n    \"Table.TransformColumns\",\n    \"Table.TransformRows\",\n    \"Table.Transpose\",\n    \"Table.Unpivot\",\n    \"Table.UnpivotOtherColumns\",\n    \"Table.View\",\n    \"Table.ViewFunction\",\n    \"TableAction.DeleteRows\",\n    \"TableAction.InsertRows\",\n    \"TableAction.UpdateRows\",\n    \"Tables.GetRelationships\",\n    \"Teradata.Database\",\n    \"Text.AfterDelimiter\",\n    \"Text.At\",\n    \"Text.BeforeDelimiter\",\n    \"Text.BetweenDelimiters\",\n    \"Text.Clean\",\n    \"Text.Combine\",\n    \"Text.Contains\",\n    \"Text.End\",\n    \"Text.EndsWith\",\n    \"Text.Format\",\n    \"Text.From\",\n    \"Text.FromBinary\",\n    \"Text.Insert\",\n    \"Text.Length\",\n    \"Text.Lower\",\n    \"Text.Middle\",\n    \"Text.NewGuid\",\n    \"Text.PadEnd\",\n    \"Text.PadStart\",\n    \"Text.PositionOf\",\n    \"Text.PositionOfAny\",\n    \"Text.Proper\",\n    \"Text.Range\",\n    \"Text.Remove\",\n    \"Text.RemoveRange\",\n    \"Text.Repeat\",\n    \"Text.Replace\",\n    \"Text.ReplaceRange\",\n    \"Text.Select\",\n    \"Text.Split\",\n    \"Text.SplitAny\",\n    \"Text.Start\",\n    \"Text.StartsWith\",\n    \"Text.ToBinary\",\n    \"Text.ToList\",\n    \"Text.Trim\",\n    \"Text.TrimEnd\",\n    \"Text.TrimStart\",\n    \"Text.Upper\",\n    \"Time.EndOfHour\",\n    \"Time.From\",\n    \"Time.FromText\",\n    \"Time.Hour\",\n    \"Time.Minute\",\n    \"Time.Second\",\n    \"Time.StartOfHour\",\n    \"Time.ToRecord\",\n    \"Time.ToText\",\n    \"Type.AddTableKey\",\n    \"Type.ClosedRecord\",\n    \"Type.Facets\",\n    \"Type.ForFunction\",\n    \"Type.ForRecord\",\n    \"Type.FunctionParameters\",\n    \"Type.FunctionRequiredParameters\",\n    \"Type.FunctionReturn\",\n    \"Type.Is\",\n    \"Type.IsNullable\",\n    \"Type.IsOpenRecord\",\n    \"Type.ListItem\",\n    \"Type.NonNullable\",\n    \"Type.OpenRecord\",\n    \"Type.RecordFields\",\n    \"Type.ReplaceFacets\",\n    \"Type.ReplaceTableKeys\",\n    \"Type.TableColumn\",\n    \"Type.TableKeys\",\n    \"Type.TableRow\",\n    \"Type.TableSchema\",\n    \"Type.Union\",\n    \"Uri.BuildQueryString\",\n    \"Uri.Combine\",\n    \"Uri.EscapeDataString\",\n    \"Uri.Parts\",\n    \"Value.Add\",\n    \"Value.As\",\n    \"Value.Compare\",\n    \"Value.Divide\",\n    \"Value.Equals\",\n    \"Value.Firewall\",\n    \"Value.FromText\",\n    \"Value.Is\",\n    \"Value.Metadata\",\n    \"Value.Multiply\",\n    \"Value.NativeQuery\",\n    \"Value.NullableEquals\",\n    \"Value.RemoveMetadata\",\n    \"Value.ReplaceMetadata\",\n    \"Value.ReplaceType\",\n    \"Value.Subtract\",\n    \"Value.Type\",\n    \"ValueAction.NativeStatement\",\n    \"ValueAction.Replace\",\n    \"Variable.Value\",\n    \"Web.Contents\",\n    \"Web.Page\",\n    \"WebAction.Request\",\n    \"Xml.Document\",\n    \"Xml.Tables\"\n  ],\n  builtinConstants: [\n    \"BinaryEncoding.Base64\",\n    \"BinaryEncoding.Hex\",\n    \"BinaryOccurrence.Optional\",\n    \"BinaryOccurrence.Repeating\",\n    \"BinaryOccurrence.Required\",\n    \"ByteOrder.BigEndian\",\n    \"ByteOrder.LittleEndian\",\n    \"Compression.Deflate\",\n    \"Compression.GZip\",\n    \"CsvStyle.QuoteAfterDelimiter\",\n    \"CsvStyle.QuoteAlways\",\n    \"Culture.Current\",\n    \"Day.Friday\",\n    \"Day.Monday\",\n    \"Day.Saturday\",\n    \"Day.Sunday\",\n    \"Day.Thursday\",\n    \"Day.Tuesday\",\n    \"Day.Wednesday\",\n    \"ExtraValues.Error\",\n    \"ExtraValues.Ignore\",\n    \"ExtraValues.List\",\n    \"GroupKind.Global\",\n    \"GroupKind.Local\",\n    \"JoinAlgorithm.Dynamic\",\n    \"JoinAlgorithm.LeftHash\",\n    \"JoinAlgorithm.LeftIndex\",\n    \"JoinAlgorithm.PairwiseHash\",\n    \"JoinAlgorithm.RightHash\",\n    \"JoinAlgorithm.RightIndex\",\n    \"JoinAlgorithm.SortMerge\",\n    \"JoinKind.FullOuter\",\n    \"JoinKind.Inner\",\n    \"JoinKind.LeftAnti\",\n    \"JoinKind.LeftOuter\",\n    \"JoinKind.RightAnti\",\n    \"JoinKind.RightOuter\",\n    \"JoinSide.Left\",\n    \"JoinSide.Right\",\n    \"MissingField.Error\",\n    \"MissingField.Ignore\",\n    \"MissingField.UseNull\",\n    \"Number.E\",\n    \"Number.Epsilon\",\n    \"Number.NaN\",\n    \"Number.NegativeInfinity\",\n    \"Number.PI\",\n    \"Number.PositiveInfinity\",\n    \"Occurrence.All\",\n    \"Occurrence.First\",\n    \"Occurrence.Last\",\n    \"Occurrence.Optional\",\n    \"Occurrence.Repeating\",\n    \"Occurrence.Required\",\n    \"Order.Ascending\",\n    \"Order.Descending\",\n    \"Precision.Decimal\",\n    \"Precision.Double\",\n    \"QuoteStyle.Csv\",\n    \"QuoteStyle.None\",\n    \"RelativePosition.FromEnd\",\n    \"RelativePosition.FromStart\",\n    \"RoundingMode.AwayFromZero\",\n    \"RoundingMode.Down\",\n    \"RoundingMode.ToEven\",\n    \"RoundingMode.TowardZero\",\n    \"RoundingMode.Up\",\n    \"SapHanaDistribution.All\",\n    \"SapHanaDistribution.Connection\",\n    \"SapHanaDistribution.Off\",\n    \"SapHanaDistribution.Statement\",\n    \"SapHanaRangeOperator.Equals\",\n    \"SapHanaRangeOperator.GreaterThan\",\n    \"SapHanaRangeOperator.GreaterThanOrEquals\",\n    \"SapHanaRangeOperator.LessThan\",\n    \"SapHanaRangeOperator.LessThanOrEquals\",\n    \"SapHanaRangeOperator.NotEquals\",\n    \"TextEncoding.Ascii\",\n    \"TextEncoding.BigEndianUnicode\",\n    \"TextEncoding.Unicode\",\n    \"TextEncoding.Utf16\",\n    \"TextEncoding.Utf8\",\n    \"TextEncoding.Windows\",\n    \"TraceLevel.Critical\",\n    \"TraceLevel.Error\",\n    \"TraceLevel.Information\",\n    \"TraceLevel.Verbose\",\n    \"TraceLevel.Warning\",\n    \"WebMethod.Delete\",\n    \"WebMethod.Get\",\n    \"WebMethod.Head\",\n    \"WebMethod.Patch\",\n    \"WebMethod.Post\",\n    \"WebMethod.Put\"\n  ],\n  builtinTypes: [\n    \"Action.Type\",\n    \"Any.Type\",\n    \"Binary.Type\",\n    \"BinaryEncoding.Type\",\n    \"BinaryOccurrence.Type\",\n    \"Byte.Type\",\n    \"ByteOrder.Type\",\n    \"Character.Type\",\n    \"Compression.Type\",\n    \"CsvStyle.Type\",\n    \"Currency.Type\",\n    \"Date.Type\",\n    \"DateTime.Type\",\n    \"DateTimeZone.Type\",\n    \"Day.Type\",\n    \"Decimal.Type\",\n    \"Double.Type\",\n    \"Duration.Type\",\n    \"ExtraValues.Type\",\n    \"Function.Type\",\n    \"GroupKind.Type\",\n    \"Guid.Type\",\n    \"Int16.Type\",\n    \"Int32.Type\",\n    \"Int64.Type\",\n    \"Int8.Type\",\n    \"JoinAlgorithm.Type\",\n    \"JoinKind.Type\",\n    \"JoinSide.Type\",\n    \"List.Type\",\n    \"Logical.Type\",\n    \"MissingField.Type\",\n    \"None.Type\",\n    \"Null.Type\",\n    \"Number.Type\",\n    \"Occurrence.Type\",\n    \"Order.Type\",\n    \"Password.Type\",\n    \"Percentage.Type\",\n    \"Precision.Type\",\n    \"QuoteStyle.Type\",\n    \"Record.Type\",\n    \"RelativePosition.Type\",\n    \"RoundingMode.Type\",\n    \"SapHanaDistribution.Type\",\n    \"SapHanaRangeOperator.Type\",\n    \"Single.Type\",\n    \"Table.Type\",\n    \"Text.Type\",\n    \"TextEncoding.Type\",\n    \"Time.Type\",\n    \"TraceLevel.Type\",\n    \"Type.Type\",\n    \"Uri.Type\",\n    \"WebMethod.Type\"\n  ],\n  tokenizer: {\n    root: [\n      // quoted identifier\n      [/#\"[\\w \\.]+\"/, \"identifier.quote\"],\n      // numbers\n      [/\\d*\\.\\d+([eE][\\-+]?\\d+)?/, \"number.float\"],\n      [/0[xX][0-9a-fA-F]+/, \"number.hex\"],\n      [/\\d+([eE][\\-+]?\\d+)?/, \"number\"],\n      // keywords\n      [\n        /(#?[a-z]+)\\b/,\n        {\n          cases: {\n            \"@typeKeywords\": \"type\",\n            \"@keywords\": \"keyword\",\n            \"@constants\": \"constant\",\n            \"@constructors\": \"constructor\",\n            \"@operatorKeywords\": \"operators\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      // built-in types\n      [\n        /\\b([A-Z][a-zA-Z0-9]+\\.Type)\\b/,\n        {\n          cases: {\n            \"@builtinTypes\": \"type\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      // other built-ins\n      [\n        /\\b([A-Z][a-zA-Z0-9]+\\.[A-Z][a-zA-Z0-9]+)\\b/,\n        {\n          cases: {\n            \"@builtinFunctions\": \"keyword.function\",\n            \"@builtinConstants\": \"constant\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      // other identifiers\n      [/\\b([a-zA-Z_][\\w\\.]*)\\b/, \"identifier\"],\n      { include: \"@whitespace\" },\n      { include: \"@comments\" },\n      { include: \"@strings\" },\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      [/([=\\+<>\\-\\*&@\\?\\/!])|([<>]=)|(<>)|(=>)|(\\.\\.\\.)|(\\.\\.)/, \"operators\"],\n      [/[,;]/, \"delimiter\"]\n    ],\n    whitespace: [[/\\s+/, \"white\"]],\n    comments: [\n      [\"\\\\/\\\\*\", \"comment\", \"@comment\"],\n      [\"\\\\/\\\\/+.*\", \"comment\"]\n    ],\n    comment: [\n      [\"\\\\*\\\\/\", \"comment\", \"@pop\"],\n      [\".\", \"comment\"]\n    ],\n    strings: [['\"', \"string\", \"@string\"]],\n    string: [\n      ['\"\"', \"string.escape\"],\n      ['\"', \"string\", \"@pop\"],\n      [\".\", \"string\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/powershell/powershell.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/powershell/powershell.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/powershell/powershell.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"powershell\",\n  extensions: [\".ps1\", \".psm1\", \".psd1\"],\n  aliases: [\"PowerShell\", \"powershell\", \"ps\", \"ps1\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/powershell/powershell\"], resolve, reject);\n      });\n    } else {\n      return import(\"./powershell.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/powershell/powershell.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/powershell/powershell.ts\nvar conf = {\n  // the default separators except `$-`\n  wordPattern: /(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#%\\^\\&\\*\\(\\)\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,\n  comments: {\n    lineComment: \"#\",\n    blockComment: [\"<#\", \"#>\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"', notIn: [\"string\"] },\n    { open: \"'\", close: \"'\", notIn: [\"string\", \"comment\"] }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  folding: {\n    markers: {\n      start: new RegExp(\"^\\\\s*#region\\\\b\"),\n      end: new RegExp(\"^\\\\s*#endregion\\\\b\")\n    }\n  }\n};\nvar language = {\n  defaultToken: \"\",\n  ignoreCase: true,\n  tokenPostfix: \".ps1\",\n  brackets: [\n    { token: \"delimiter.curly\", open: \"{\", close: \"}\" },\n    { token: \"delimiter.square\", open: \"[\", close: \"]\" },\n    { token: \"delimiter.parenthesis\", open: \"(\", close: \")\" }\n  ],\n  keywords: [\n    \"begin\",\n    \"break\",\n    \"catch\",\n    \"class\",\n    \"continue\",\n    \"data\",\n    \"define\",\n    \"do\",\n    \"dynamicparam\",\n    \"else\",\n    \"elseif\",\n    \"end\",\n    \"exit\",\n    \"filter\",\n    \"finally\",\n    \"for\",\n    \"foreach\",\n    \"from\",\n    \"function\",\n    \"if\",\n    \"in\",\n    \"param\",\n    \"process\",\n    \"return\",\n    \"switch\",\n    \"throw\",\n    \"trap\",\n    \"try\",\n    \"until\",\n    \"using\",\n    \"var\",\n    \"while\",\n    \"workflow\",\n    \"parallel\",\n    \"sequence\",\n    \"inlinescript\",\n    \"configuration\"\n  ],\n  helpKeywords: /SYNOPSIS|DESCRIPTION|PARAMETER|EXAMPLE|INPUTS|OUTPUTS|NOTES|LINK|COMPONENT|ROLE|FUNCTIONALITY|FORWARDHELPTARGETNAME|FORWARDHELPCATEGORY|REMOTEHELPRUNSPACE|EXTERNALHELP/,\n  // we include these common regular expressions\n  symbols: /[=><!~?&%|+\\-*\\/\\^;\\.,]+/,\n  escapes: /`(?:[abfnrtv\\\\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      // commands and keywords\n      [\n        /[a-zA-Z_][\\w-]*/,\n        {\n          cases: {\n            \"@keywords\": { token: \"keyword.$0\" },\n            \"@default\": \"\"\n          }\n        }\n      ],\n      // whitespace\n      [/[ \\t\\r\\n]+/, \"\"],\n      // labels\n      [/^:\\w*/, \"metatag\"],\n      // variables\n      [\n        /\\$(\\{((global|local|private|script|using):)?[\\w]+\\}|((global|local|private|script|using):)?[\\w]+)/,\n        \"variable\"\n      ],\n      // Comments\n      [/<#/, \"comment\", \"@comment\"],\n      [/#.*$/, \"comment\"],\n      // delimiters\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      [/@symbols/, \"delimiter\"],\n      // numbers\n      [/\\d*\\.\\d+([eE][\\-+]?\\d+)?/, \"number.float\"],\n      [/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/, \"number.hex\"],\n      [/\\d+?/, \"number\"],\n      // delimiter: after number because of .\\d floats\n      [/[;,.]/, \"delimiter\"],\n      // strings:\n      [/\\@\"/, \"string\", '@herestring.\"'],\n      [/\\@'/, \"string\", \"@herestring.'\"],\n      [\n        /\"/,\n        {\n          cases: {\n            \"@eos\": \"string\",\n            \"@default\": { token: \"string\", next: '@string.\"' }\n          }\n        }\n      ],\n      [\n        /'/,\n        {\n          cases: {\n            \"@eos\": \"string\",\n            \"@default\": { token: \"string\", next: \"@string.'\" }\n          }\n        }\n      ]\n    ],\n    string: [\n      [\n        /[^\"'\\$`]+/,\n        {\n          cases: {\n            \"@eos\": { token: \"string\", next: \"@popall\" },\n            \"@default\": \"string\"\n          }\n        }\n      ],\n      [\n        /@escapes/,\n        {\n          cases: {\n            \"@eos\": { token: \"string.escape\", next: \"@popall\" },\n            \"@default\": \"string.escape\"\n          }\n        }\n      ],\n      [\n        /`./,\n        {\n          cases: {\n            \"@eos\": {\n              token: \"string.escape.invalid\",\n              next: \"@popall\"\n            },\n            \"@default\": \"string.escape.invalid\"\n          }\n        }\n      ],\n      [\n        /\\$[\\w]+$/,\n        {\n          cases: {\n            '$S2==\"': { token: \"variable\", next: \"@popall\" },\n            \"@default\": { token: \"string\", next: \"@popall\" }\n          }\n        }\n      ],\n      [\n        /\\$[\\w]+/,\n        {\n          cases: {\n            '$S2==\"': \"variable\",\n            \"@default\": \"string\"\n          }\n        }\n      ],\n      [\n        /[\"']/,\n        {\n          cases: {\n            \"$#==$S2\": { token: \"string\", next: \"@pop\" },\n            \"@default\": {\n              cases: {\n                \"@eos\": { token: \"string\", next: \"@popall\" },\n                \"@default\": \"string\"\n              }\n            }\n          }\n        }\n      ]\n    ],\n    herestring: [\n      [\n        /^\\s*([\"'])@/,\n        {\n          cases: {\n            \"$1==$S2\": { token: \"string\", next: \"@pop\" },\n            \"@default\": \"string\"\n          }\n        }\n      ],\n      [/[^\\$`]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/`./, \"string.escape.invalid\"],\n      [\n        /\\$[\\w]+/,\n        {\n          cases: {\n            '$S2==\"': \"variable\",\n            \"@default\": \"string\"\n          }\n        }\n      ]\n    ],\n    comment: [\n      [/[^#\\.]+/, \"comment\"],\n      [/#>/, \"comment\", \"@pop\"],\n      [/(\\.)(@helpKeywords)(?!\\w)/, { token: \"comment.keyword.$2\" }],\n      [/[\\.#]/, \"comment\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/protobuf/protobuf.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/protobuf/protobuf.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/protobuf/protobuf.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"proto\",\n  extensions: [\".proto\"],\n  aliases: [\"protobuf\", \"Protocol Buffers\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/protobuf/protobuf\"], resolve, reject);\n      });\n    } else {\n      return import(\"./protobuf.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/protobuf/protobuf.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/protobuf/protobuf.ts\nvar namedLiterals = [\"true\", \"false\"];\nvar conf = {\n  comments: {\n    lineComment: \"//\",\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"],\n    [\"<\", \">\"]\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: \"<\", close: \">\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: \"<\", close: \">\" },\n    { open: '\"', close: '\"', notIn: [\"string\"] },\n    { open: \"'\", close: \"'\", notIn: [\"string\"] }\n  ],\n  autoCloseBefore: \".,=}])>' \\n\t\",\n  indentationRules: {\n    increaseIndentPattern: new RegExp(\"^((?!\\\\/\\\\/).)*(\\\\{[^}\\\"'`]*|\\\\([^)\\\"'`]*|\\\\[[^\\\\]\\\"'`]*)$\"),\n    decreaseIndentPattern: new RegExp(\"^((?!.*?\\\\/\\\\*).*\\\\*/)?\\\\s*[\\\\}\\\\]].*$\")\n  }\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".proto\",\n  brackets: [\n    { open: \"{\", close: \"}\", token: \"delimiter.curly\" },\n    { open: \"[\", close: \"]\", token: \"delimiter.square\" },\n    { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" },\n    { open: \"<\", close: \">\", token: \"delimiter.angle\" }\n  ],\n  symbols: /[=><!~?:&|+\\-*/^%]+/,\n  keywords: [\n    \"syntax\",\n    \"import\",\n    \"weak\",\n    \"public\",\n    \"package\",\n    \"option\",\n    \"repeated\",\n    \"oneof\",\n    \"map\",\n    \"reserved\",\n    \"to\",\n    \"max\",\n    \"enum\",\n    \"message\",\n    \"service\",\n    \"rpc\",\n    \"stream\",\n    \"returns\",\n    \"package\",\n    \"optional\",\n    \"true\",\n    \"false\"\n  ],\n  builtinTypes: [\n    \"double\",\n    \"float\",\n    \"int32\",\n    \"int64\",\n    \"uint32\",\n    \"uint64\",\n    \"sint32\",\n    \"sint64\",\n    \"fixed32\",\n    \"fixed64\",\n    \"sfixed32\",\n    \"sfixed64\",\n    \"bool\",\n    \"string\",\n    \"bytes\"\n  ],\n  operators: [\"=\", \"+\", \"-\"],\n  namedLiterals,\n  escapes: `\\\\\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\\\\\|'|\\\\\\${)`,\n  identifier: /[a-zA-Z]\\w*/,\n  fullIdentifier: /@identifier(?:\\s*\\.\\s*@identifier)*/,\n  optionName: /(?:@identifier|\\(\\s*@fullIdentifier\\s*\\))(?:\\s*\\.\\s*@identifier)*/,\n  messageName: /@identifier/,\n  enumName: /@identifier/,\n  messageType: /\\.?\\s*(?:@identifier\\s*\\.\\s*)*@messageName/,\n  enumType: /\\.?\\s*(?:@identifier\\s*\\.\\s*)*@enumName/,\n  floatLit: /[0-9]+\\s*\\.\\s*[0-9]*(?:@exponent)?|[0-9]+@exponent|\\.[0-9]+(?:@exponent)?/,\n  exponent: /[eE]\\s*[+-]?\\s*[0-9]+/,\n  boolLit: /true\\b|false\\b/,\n  decimalLit: /[1-9][0-9]*/,\n  octalLit: /0[0-7]*/,\n  hexLit: /0[xX][0-9a-fA-F]+/,\n  type: /double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes|@messageType|@enumType/,\n  keyType: /int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string/,\n  tokenizer: {\n    root: [\n      { include: \"@whitespace\" },\n      [/syntax/, \"keyword\"],\n      [/=/, \"operators\"],\n      [/;/, \"delimiter\"],\n      [\n        /(\")(proto3)(\")/,\n        [\"string.quote\", \"string\", { token: \"string.quote\", switchTo: \"@topLevel.proto3\" }]\n      ],\n      [\n        /(\")(proto2)(\")/,\n        [\"string.quote\", \"string\", { token: \"string.quote\", switchTo: \"@topLevel.proto2\" }]\n      ],\n      [\n        // If no `syntax` provided, regarded as proto2\n        /.*?/,\n        { token: \"\", switchTo: \"@topLevel.proto2\" }\n      ]\n    ],\n    topLevel: [\n      // whitespace\n      { include: \"@whitespace\" },\n      { include: \"@constant\" },\n      [/=/, \"operators\"],\n      [/[;.]/, \"delimiter\"],\n      [\n        /@fullIdentifier/,\n        {\n          cases: {\n            option: { token: \"keyword\", next: \"@option.$S2\" },\n            enum: { token: \"keyword\", next: \"@enumDecl.$S2\" },\n            message: { token: \"keyword\", next: \"@messageDecl.$S2\" },\n            service: { token: \"keyword\", next: \"@serviceDecl.$S2\" },\n            extend: {\n              cases: {\n                \"$S2==proto2\": { token: \"keyword\", next: \"@extendDecl.$S2\" }\n              }\n            },\n            \"@keywords\": \"keyword\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ]\n    ],\n    enumDecl: [\n      { include: \"@whitespace\" },\n      [/@identifier/, \"type.identifier\"],\n      [/{/, { token: \"@brackets\", bracket: \"@open\", switchTo: \"@enumBody.$S2\" }]\n    ],\n    enumBody: [\n      { include: \"@whitespace\" },\n      { include: \"@constant\" },\n      [/=/, \"operators\"],\n      [/;/, \"delimiter\"],\n      [/option\\b/, \"keyword\", \"@option.$S2\"],\n      [/@identifier/, \"identifier\"],\n      [/\\[/, { token: \"@brackets\", bracket: \"@open\", next: \"@options.$S2\" }],\n      [/}/, { token: \"@brackets\", bracket: \"@close\", next: \"@pop\" }]\n    ],\n    messageDecl: [\n      { include: \"@whitespace\" },\n      [/@identifier/, \"type.identifier\"],\n      [/{/, { token: \"@brackets\", bracket: \"@open\", switchTo: \"@messageBody.$S2\" }]\n    ],\n    messageBody: [\n      { include: \"@whitespace\" },\n      { include: \"@constant\" },\n      [/=/, \"operators\"],\n      [/;/, \"delimiter\"],\n      [\n        \"(map)(s*)(<)\",\n        [\"keyword\", \"white\", { token: \"@brackets\", bracket: \"@open\", next: \"@map.$S2\" }]\n      ],\n      [\n        /@identifier/,\n        {\n          cases: {\n            option: { token: \"keyword\", next: \"@option.$S2\" },\n            enum: { token: \"keyword\", next: \"@enumDecl.$S2\" },\n            message: { token: \"keyword\", next: \"@messageDecl.$S2\" },\n            oneof: { token: \"keyword\", next: \"@oneofDecl.$S2\" },\n            extensions: {\n              cases: {\n                \"$S2==proto2\": { token: \"keyword\", next: \"@reserved.$S2\" }\n              }\n            },\n            reserved: { token: \"keyword\", next: \"@reserved.$S2\" },\n            \"(?:repeated|optional)\": { token: \"keyword\", next: \"@field.$S2\" },\n            required: {\n              cases: {\n                \"$S2==proto2\": { token: \"keyword\", next: \"@field.$S2\" }\n              }\n            },\n            \"$S2==proto3\": { token: \"@rematch\", next: \"@field.$S2\" }\n          }\n        }\n      ],\n      [/\\[/, { token: \"@brackets\", bracket: \"@open\", next: \"@options.$S2\" }],\n      [/}/, { token: \"@brackets\", bracket: \"@close\", next: \"@pop\" }]\n    ],\n    extendDecl: [\n      { include: \"@whitespace\" },\n      [/@identifier/, \"type.identifier\"],\n      [/{/, { token: \"@brackets\", bracket: \"@open\", switchTo: \"@extendBody.$S2\" }]\n    ],\n    extendBody: [\n      { include: \"@whitespace\" },\n      { include: \"@constant\" },\n      [/;/, \"delimiter\"],\n      [/(?:repeated|optional|required)/, \"keyword\", \"@field.$S2\"],\n      [/\\[/, { token: \"@brackets\", bracket: \"@open\", next: \"@options.$S2\" }],\n      [/}/, { token: \"@brackets\", bracket: \"@close\", next: \"@pop\" }]\n    ],\n    options: [\n      { include: \"@whitespace\" },\n      { include: \"@constant\" },\n      [/;/, \"delimiter\"],\n      [/@optionName/, \"annotation\"],\n      [/[()]/, \"annotation.brackets\"],\n      [/=/, \"operator\"],\n      [/\\]/, { token: \"@brackets\", bracket: \"@close\", next: \"@pop\" }]\n    ],\n    option: [\n      { include: \"@whitespace\" },\n      [/@optionName/, \"annotation\"],\n      [/[()]/, \"annotation.brackets\"],\n      [/=/, \"operator\", \"@pop\"]\n    ],\n    oneofDecl: [\n      { include: \"@whitespace\" },\n      [/@identifier/, \"identifier\"],\n      [/{/, { token: \"@brackets\", bracket: \"@open\", switchTo: \"@oneofBody.$S2\" }]\n    ],\n    oneofBody: [\n      { include: \"@whitespace\" },\n      { include: \"@constant\" },\n      [/;/, \"delimiter\"],\n      [/(@identifier)(\\s*)(=)/, [\"identifier\", \"white\", \"delimiter\"]],\n      [\n        /@fullIdentifier|\\./,\n        {\n          cases: {\n            \"@builtinTypes\": \"keyword\",\n            \"@default\": \"type.identifier\"\n          }\n        }\n      ],\n      [/\\[/, { token: \"@brackets\", bracket: \"@open\", next: \"@options.$S2\" }],\n      [/}/, { token: \"@brackets\", bracket: \"@close\", next: \"@pop\" }]\n    ],\n    reserved: [\n      { include: \"@whitespace\" },\n      [/,/, \"delimiter\"],\n      [/;/, \"delimiter\", \"@pop\"],\n      { include: \"@constant\" },\n      [/to\\b|max\\b/, \"keyword\"]\n    ],\n    map: [\n      { include: \"@whitespace\" },\n      [\n        /@fullIdentifier|\\./,\n        {\n          cases: {\n            \"@builtinTypes\": \"keyword\",\n            \"@default\": \"type.identifier\"\n          }\n        }\n      ],\n      [/,/, \"delimiter\"],\n      [/>/, { token: \"@brackets\", bracket: \"@close\", switchTo: \"identifier\" }]\n    ],\n    field: [\n      { include: \"@whitespace\" },\n      [\n        \"group\",\n        {\n          cases: {\n            \"$S2==proto2\": { token: \"keyword\", switchTo: \"@groupDecl.$S2\" }\n          }\n        }\n      ],\n      [/(@identifier)(\\s*)(=)/, [\"identifier\", \"white\", { token: \"delimiter\", next: \"@pop\" }]],\n      [\n        /@fullIdentifier|\\./,\n        {\n          cases: {\n            \"@builtinTypes\": \"keyword\",\n            \"@default\": \"type.identifier\"\n          }\n        }\n      ]\n    ],\n    groupDecl: [\n      { include: \"@whitespace\" },\n      [/@identifier/, \"identifier\"],\n      [\"=\", \"operator\"],\n      [/{/, { token: \"@brackets\", bracket: \"@open\", switchTo: \"@messageBody.$S2\" }],\n      { include: \"@constant\" }\n    ],\n    type: [\n      { include: \"@whitespace\" },\n      [/@identifier/, \"type.identifier\", \"@pop\"],\n      [/./, \"delimiter\"]\n    ],\n    identifier: [{ include: \"@whitespace\" }, [/@identifier/, \"identifier\", \"@pop\"]],\n    serviceDecl: [\n      { include: \"@whitespace\" },\n      [/@identifier/, \"identifier\"],\n      [/{/, { token: \"@brackets\", bracket: \"@open\", switchTo: \"@serviceBody.$S2\" }]\n    ],\n    serviceBody: [\n      { include: \"@whitespace\" },\n      { include: \"@constant\" },\n      [/;/, \"delimiter\"],\n      [/option\\b/, \"keyword\", \"@option.$S2\"],\n      [/rpc\\b/, \"keyword\", \"@rpc.$S2\"],\n      [/\\[/, { token: \"@brackets\", bracket: \"@open\", next: \"@options.$S2\" }],\n      [/}/, { token: \"@brackets\", bracket: \"@close\", next: \"@pop\" }]\n    ],\n    rpc: [\n      { include: \"@whitespace\" },\n      [/@identifier/, \"identifier\"],\n      [/\\(/, { token: \"@brackets\", bracket: \"@open\", switchTo: \"@request.$S2\" }],\n      [/{/, { token: \"@brackets\", bracket: \"@open\", next: \"@methodOptions.$S2\" }],\n      [/;/, \"delimiter\", \"@pop\"]\n    ],\n    request: [\n      { include: \"@whitespace\" },\n      [\n        /@messageType/,\n        {\n          cases: {\n            stream: { token: \"keyword\", next: \"@type.$S2\" },\n            \"@default\": \"type.identifier\"\n          }\n        }\n      ],\n      [/\\)/, { token: \"@brackets\", bracket: \"@close\", switchTo: \"@returns.$S2\" }]\n    ],\n    returns: [\n      { include: \"@whitespace\" },\n      [/returns\\b/, \"keyword\"],\n      [/\\(/, { token: \"@brackets\", bracket: \"@open\", switchTo: \"@response.$S2\" }]\n    ],\n    response: [\n      { include: \"@whitespace\" },\n      [\n        /@messageType/,\n        {\n          cases: {\n            stream: { token: \"keyword\", next: \"@type.$S2\" },\n            \"@default\": \"type.identifier\"\n          }\n        }\n      ],\n      [/\\)/, { token: \"@brackets\", bracket: \"@close\", switchTo: \"@rpc.$S2\" }]\n    ],\n    methodOptions: [\n      { include: \"@whitespace\" },\n      { include: \"@constant\" },\n      [/;/, \"delimiter\"],\n      [\"option\", \"keyword\"],\n      [/@optionName/, \"annotation\"],\n      [/[()]/, \"annotation.brackets\"],\n      [/=/, \"operator\"],\n      [/}/, { token: \"@brackets\", bracket: \"@close\", next: \"@pop\" }]\n    ],\n    comment: [\n      [/[^\\/*]+/, \"comment\"],\n      [/\\/\\*/, \"comment\", \"@push\"],\n      // nested comment\n      [\"\\\\*/\", \"comment\", \"@pop\"],\n      [/[\\/*]/, \"comment\"]\n    ],\n    string: [\n      [/[^\\\\\"]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/\"/, { token: \"string.quote\", bracket: \"@close\", next: \"@pop\" }]\n    ],\n    stringSingle: [\n      [/[^\\\\']+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/'/, { token: \"string.quote\", bracket: \"@close\", next: \"@pop\" }]\n    ],\n    constant: [\n      [\"@boolLit\", \"keyword.constant\"],\n      [\"@hexLit\", \"number.hex\"],\n      [\"@octalLit\", \"number.octal\"],\n      [\"@decimalLit\", \"number\"],\n      [\"@floatLit\", \"number.float\"],\n      [/(\"([^\"\\\\]|\\\\.)*|'([^'\\\\]|\\\\.)*)$/, \"string.invalid\"],\n      // non-terminated string\n      [/\"/, { token: \"string.quote\", bracket: \"@open\", next: \"@string\" }],\n      [/'/, { token: \"string.quote\", bracket: \"@open\", next: \"@stringSingle\" }],\n      [/{/, { token: \"@brackets\", bracket: \"@open\", next: \"@prototext\" }],\n      [/identifier/, \"identifier\"]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"white\"],\n      [/\\/\\*/, \"comment\", \"@comment\"],\n      [/\\/\\/.*$/, \"comment\"]\n    ],\n    prototext: [\n      { include: \"@whitespace\" },\n      { include: \"@constant\" },\n      [/@identifier/, \"identifier\"],\n      [/[:;]/, \"delimiter\"],\n      [/}/, { token: \"@brackets\", bracket: \"@close\", next: \"@pop\" }]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/pug/pug.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/pug/pug.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/pug/pug.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"pug\",\n  extensions: [\".jade\", \".pug\"],\n  aliases: [\"Pug\", \"Jade\", \"jade\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/pug/pug\"], resolve, reject);\n      });\n    } else {\n      return import(\"./pug.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/pug/pug.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/pug/pug.ts\nvar conf = {\n  comments: {\n    lineComment: \"//\"\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: '\"', close: '\"', notIn: [\"string\", \"comment\"] },\n    { open: \"'\", close: \"'\", notIn: [\"string\", \"comment\"] },\n    { open: \"{\", close: \"}\", notIn: [\"string\", \"comment\"] },\n    { open: \"[\", close: \"]\", notIn: [\"string\", \"comment\"] },\n    { open: \"(\", close: \")\", notIn: [\"string\", \"comment\"] }\n  ],\n  folding: {\n    offSide: true\n  }\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".pug\",\n  ignoreCase: true,\n  brackets: [\n    { token: \"delimiter.curly\", open: \"{\", close: \"}\" },\n    { token: \"delimiter.array\", open: \"[\", close: \"]\" },\n    { token: \"delimiter.parenthesis\", open: \"(\", close: \")\" }\n  ],\n  keywords: [\n    \"append\",\n    \"block\",\n    \"case\",\n    \"default\",\n    \"doctype\",\n    \"each\",\n    \"else\",\n    \"extends\",\n    \"for\",\n    \"if\",\n    \"in\",\n    \"include\",\n    \"mixin\",\n    \"typeof\",\n    \"unless\",\n    \"var\",\n    \"when\"\n  ],\n  tags: [\n    \"a\",\n    \"abbr\",\n    \"acronym\",\n    \"address\",\n    \"area\",\n    \"article\",\n    \"aside\",\n    \"audio\",\n    \"b\",\n    \"base\",\n    \"basefont\",\n    \"bdi\",\n    \"bdo\",\n    \"blockquote\",\n    \"body\",\n    \"br\",\n    \"button\",\n    \"canvas\",\n    \"caption\",\n    \"center\",\n    \"cite\",\n    \"code\",\n    \"col\",\n    \"colgroup\",\n    \"command\",\n    \"datalist\",\n    \"dd\",\n    \"del\",\n    \"details\",\n    \"dfn\",\n    \"div\",\n    \"dl\",\n    \"dt\",\n    \"em\",\n    \"embed\",\n    \"fieldset\",\n    \"figcaption\",\n    \"figure\",\n    \"font\",\n    \"footer\",\n    \"form\",\n    \"frame\",\n    \"frameset\",\n    \"h1\",\n    \"h2\",\n    \"h3\",\n    \"h4\",\n    \"h5\",\n    \"h6\",\n    \"head\",\n    \"header\",\n    \"hgroup\",\n    \"hr\",\n    \"html\",\n    \"i\",\n    \"iframe\",\n    \"img\",\n    \"input\",\n    \"ins\",\n    \"keygen\",\n    \"kbd\",\n    \"label\",\n    \"li\",\n    \"link\",\n    \"map\",\n    \"mark\",\n    \"menu\",\n    \"meta\",\n    \"meter\",\n    \"nav\",\n    \"noframes\",\n    \"noscript\",\n    \"object\",\n    \"ol\",\n    \"optgroup\",\n    \"option\",\n    \"output\",\n    \"p\",\n    \"param\",\n    \"pre\",\n    \"progress\",\n    \"q\",\n    \"rp\",\n    \"rt\",\n    \"ruby\",\n    \"s\",\n    \"samp\",\n    \"script\",\n    \"section\",\n    \"select\",\n    \"small\",\n    \"source\",\n    \"span\",\n    \"strike\",\n    \"strong\",\n    \"style\",\n    \"sub\",\n    \"summary\",\n    \"sup\",\n    \"table\",\n    \"tbody\",\n    \"td\",\n    \"textarea\",\n    \"tfoot\",\n    \"th\",\n    \"thead\",\n    \"time\",\n    \"title\",\n    \"tr\",\n    \"tracks\",\n    \"tt\",\n    \"u\",\n    \"ul\",\n    \"video\",\n    \"wbr\"\n  ],\n  // we include these common regular expressions\n  symbols: /[\\+\\-\\*\\%\\&\\|\\!\\=\\/\\.\\,\\:]+/,\n  escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n  tokenizer: {\n    root: [\n      // Tag or a keyword at start\n      [\n        /^(\\s*)([a-zA-Z_-][\\w-]*)/,\n        {\n          cases: {\n            \"$2@tags\": {\n              cases: {\n                \"@eos\": [\"\", \"tag\"],\n                \"@default\": [\"\", { token: \"tag\", next: \"@tag.$1\" }]\n              }\n            },\n            \"$2@keywords\": [\"\", { token: \"keyword.$2\" }],\n            \"@default\": [\"\", \"\"]\n          }\n        }\n      ],\n      // id\n      [\n        /^(\\s*)(#[a-zA-Z_-][\\w-]*)/,\n        {\n          cases: {\n            \"@eos\": [\"\", \"tag.id\"],\n            \"@default\": [\"\", { token: \"tag.id\", next: \"@tag.$1\" }]\n          }\n        }\n      ],\n      // class\n      [\n        /^(\\s*)(\\.[a-zA-Z_-][\\w-]*)/,\n        {\n          cases: {\n            \"@eos\": [\"\", \"tag.class\"],\n            \"@default\": [\"\", { token: \"tag.class\", next: \"@tag.$1\" }]\n          }\n        }\n      ],\n      // plain text with pipe\n      [/^(\\s*)(\\|.*)$/, \"\"],\n      { include: \"@whitespace\" },\n      // keywords\n      [\n        /[a-zA-Z_$][\\w$]*/,\n        {\n          cases: {\n            \"@keywords\": { token: \"keyword.$0\" },\n            \"@default\": \"\"\n          }\n        }\n      ],\n      // delimiters and operators\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      [/@symbols/, \"delimiter\"],\n      // numbers\n      [/\\d+\\.\\d+([eE][\\-+]?\\d+)?/, \"number.float\"],\n      [/\\d+/, \"number\"],\n      // strings:\n      [/\"/, \"string\", '@string.\"'],\n      [/'/, \"string\", \"@string.'\"]\n    ],\n    tag: [\n      [/(\\.)(\\s*$)/, [{ token: \"delimiter\", next: \"@blockText.$S2.\" }, \"\"]],\n      [/\\s+/, { token: \"\", next: \"@simpleText\" }],\n      // id\n      [\n        /#[a-zA-Z_-][\\w-]*/,\n        {\n          cases: {\n            \"@eos\": { token: \"tag.id\", next: \"@pop\" },\n            \"@default\": \"tag.id\"\n          }\n        }\n      ],\n      // class\n      [\n        /\\.[a-zA-Z_-][\\w-]*/,\n        {\n          cases: {\n            \"@eos\": { token: \"tag.class\", next: \"@pop\" },\n            \"@default\": \"tag.class\"\n          }\n        }\n      ],\n      // attributes\n      [/\\(/, { token: \"delimiter.parenthesis\", next: \"@attributeList\" }]\n    ],\n    simpleText: [\n      [/[^#]+$/, { token: \"\", next: \"@popall\" }],\n      [/[^#]+/, { token: \"\" }],\n      // interpolation\n      [\n        /(#{)([^}]*)(})/,\n        {\n          cases: {\n            \"@eos\": [\n              \"interpolation.delimiter\",\n              \"interpolation\",\n              {\n                token: \"interpolation.delimiter\",\n                next: \"@popall\"\n              }\n            ],\n            \"@default\": [\"interpolation.delimiter\", \"interpolation\", \"interpolation.delimiter\"]\n          }\n        }\n      ],\n      [/#$/, { token: \"\", next: \"@popall\" }],\n      [/#/, \"\"]\n    ],\n    attributeList: [\n      [/\\s+/, \"\"],\n      [\n        /(\\w+)(\\s*=\\s*)(\"|')/,\n        [\"attribute.name\", \"delimiter\", { token: \"attribute.value\", next: \"@value.$3\" }]\n      ],\n      [/\\w+/, \"attribute.name\"],\n      [\n        /,/,\n        {\n          cases: {\n            \"@eos\": {\n              token: \"attribute.delimiter\",\n              next: \"@popall\"\n            },\n            \"@default\": \"attribute.delimiter\"\n          }\n        }\n      ],\n      [/\\)$/, { token: \"delimiter.parenthesis\", next: \"@popall\" }],\n      [/\\)/, { token: \"delimiter.parenthesis\", next: \"@pop\" }]\n    ],\n    whitespace: [\n      [/^(\\s*)(\\/\\/.*)$/, { token: \"comment\", next: \"@blockText.$1.comment\" }],\n      [/[ \\t\\r\\n]+/, \"\"],\n      [/<!--/, { token: \"comment\", next: \"@comment\" }]\n    ],\n    blockText: [\n      [\n        /^\\s+.*$/,\n        {\n          cases: {\n            \"($S2\\\\s+.*$)\": { token: \"$S3\" },\n            \"@default\": { token: \"@rematch\", next: \"@popall\" }\n          }\n        }\n      ],\n      [/./, { token: \"@rematch\", next: \"@popall\" }]\n    ],\n    comment: [\n      [/[^<\\-]+/, \"comment.content\"],\n      [/-->/, { token: \"comment\", next: \"@pop\" }],\n      [/<!--/, \"comment.content.invalid\"],\n      [/[<\\-]/, \"comment.content\"]\n    ],\n    string: [\n      [\n        /[^\\\\\"'#]+/,\n        {\n          cases: {\n            \"@eos\": { token: \"string\", next: \"@popall\" },\n            \"@default\": \"string\"\n          }\n        }\n      ],\n      [\n        /@escapes/,\n        {\n          cases: {\n            \"@eos\": { token: \"string.escape\", next: \"@popall\" },\n            \"@default\": \"string.escape\"\n          }\n        }\n      ],\n      [\n        /\\\\./,\n        {\n          cases: {\n            \"@eos\": {\n              token: \"string.escape.invalid\",\n              next: \"@popall\"\n            },\n            \"@default\": \"string.escape.invalid\"\n          }\n        }\n      ],\n      // interpolation\n      [/(#{)([^}]*)(})/, [\"interpolation.delimiter\", \"interpolation\", \"interpolation.delimiter\"]],\n      [/#/, \"string\"],\n      [\n        /[\"']/,\n        {\n          cases: {\n            \"$#==$S2\": { token: \"string\", next: \"@pop\" },\n            \"@default\": { token: \"string\" }\n          }\n        }\n      ]\n    ],\n    // Almost identical to above, except for escapes and the output token\n    value: [\n      [\n        /[^\\\\\"']+/,\n        {\n          cases: {\n            \"@eos\": { token: \"attribute.value\", next: \"@popall\" },\n            \"@default\": \"attribute.value\"\n          }\n        }\n      ],\n      [\n        /\\\\./,\n        {\n          cases: {\n            \"@eos\": { token: \"attribute.value\", next: \"@popall\" },\n            \"@default\": \"attribute.value\"\n          }\n        }\n      ],\n      [\n        /[\"']/,\n        {\n          cases: {\n            \"$#==$S2\": { token: \"attribute.value\", next: \"@pop\" },\n            \"@default\": { token: \"attribute.value\" }\n          }\n        }\n      ]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/python/python.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/python/python.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/python/python.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"python\",\n  extensions: [\".py\", \".rpy\", \".pyw\", \".cpy\", \".gyp\", \".gypi\"],\n  aliases: [\"Python\", \"py\"],\n  firstLine: \"^#!/.*\\\\bpython[0-9.-]*\\\\b\",\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/python/python\"], resolve, reject);\n      });\n    } else {\n      return import(\"./python.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/python/python.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\n\n// src/fillers/monaco-editor-core.ts\nvar monaco_editor_core_exports = {};\n__reExport(monaco_editor_core_exports, monaco_editor_core_star);\nimport * as monaco_editor_core_star from \"../../editor/editor.api.js\";\n\n// src/basic-languages/python/python.ts\nvar conf = {\n  comments: {\n    lineComment: \"#\",\n    blockComment: [\"'''\", \"'''\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"', notIn: [\"string\"] },\n    { open: \"'\", close: \"'\", notIn: [\"string\", \"comment\"] }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  onEnterRules: [\n    {\n      beforeText: new RegExp(\n        \"^\\\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async|match|case).*?:\\\\s*$\"\n      ),\n      action: { indentAction: monaco_editor_core_exports.languages.IndentAction.Indent }\n    }\n  ],\n  folding: {\n    offSide: true,\n    markers: {\n      start: new RegExp(\"^\\\\s*#region\\\\b\"),\n      end: new RegExp(\"^\\\\s*#endregion\\\\b\")\n    }\n  }\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".python\",\n  keywords: [\n    // This section is the result of running\n    // `import keyword; for k in sorted(keyword.kwlist + keyword.softkwlist): print(\"  '\" + k + \"',\")`\n    // in a Python REPL,\n    // though note that the output from Python 3 is not a strict superset of the\n    // output from Python 2.\n    \"False\",\n    // promoted to keyword.kwlist in Python 3\n    \"None\",\n    // promoted to keyword.kwlist in Python 3\n    \"True\",\n    // promoted to keyword.kwlist in Python 3\n    \"_\",\n    // new in Python 3.10\n    \"and\",\n    \"as\",\n    \"assert\",\n    \"async\",\n    // new in Python 3\n    \"await\",\n    // new in Python 3\n    \"break\",\n    \"case\",\n    // new in Python 3.10\n    \"class\",\n    \"continue\",\n    \"def\",\n    \"del\",\n    \"elif\",\n    \"else\",\n    \"except\",\n    \"exec\",\n    // Python 2, but not 3.\n    \"finally\",\n    \"for\",\n    \"from\",\n    \"global\",\n    \"if\",\n    \"import\",\n    \"in\",\n    \"is\",\n    \"lambda\",\n    \"match\",\n    // new in Python 3.10\n    \"nonlocal\",\n    // new in Python 3\n    \"not\",\n    \"or\",\n    \"pass\",\n    \"print\",\n    // Python 2, but not 3.\n    \"raise\",\n    \"return\",\n    \"try\",\n    \"type\",\n    // new in Python 3.12\n    \"while\",\n    \"with\",\n    \"yield\",\n    \"int\",\n    \"float\",\n    \"long\",\n    \"complex\",\n    \"hex\",\n    \"abs\",\n    \"all\",\n    \"any\",\n    \"apply\",\n    \"basestring\",\n    \"bin\",\n    \"bool\",\n    \"buffer\",\n    \"bytearray\",\n    \"callable\",\n    \"chr\",\n    \"classmethod\",\n    \"cmp\",\n    \"coerce\",\n    \"compile\",\n    \"complex\",\n    \"delattr\",\n    \"dict\",\n    \"dir\",\n    \"divmod\",\n    \"enumerate\",\n    \"eval\",\n    \"execfile\",\n    \"file\",\n    \"filter\",\n    \"format\",\n    \"frozenset\",\n    \"getattr\",\n    \"globals\",\n    \"hasattr\",\n    \"hash\",\n    \"help\",\n    \"id\",\n    \"input\",\n    \"intern\",\n    \"isinstance\",\n    \"issubclass\",\n    \"iter\",\n    \"len\",\n    \"locals\",\n    \"list\",\n    \"map\",\n    \"max\",\n    \"memoryview\",\n    \"min\",\n    \"next\",\n    \"object\",\n    \"oct\",\n    \"open\",\n    \"ord\",\n    \"pow\",\n    \"print\",\n    \"property\",\n    \"reversed\",\n    \"range\",\n    \"raw_input\",\n    \"reduce\",\n    \"reload\",\n    \"repr\",\n    \"reversed\",\n    \"round\",\n    \"self\",\n    \"set\",\n    \"setattr\",\n    \"slice\",\n    \"sorted\",\n    \"staticmethod\",\n    \"str\",\n    \"sum\",\n    \"super\",\n    \"tuple\",\n    \"type\",\n    \"unichr\",\n    \"unicode\",\n    \"vars\",\n    \"xrange\",\n    \"zip\",\n    \"__dict__\",\n    \"__methods__\",\n    \"__members__\",\n    \"__class__\",\n    \"__bases__\",\n    \"__name__\",\n    \"__mro__\",\n    \"__subclasses__\",\n    \"__init__\",\n    \"__import__\"\n  ],\n  brackets: [\n    { open: \"{\", close: \"}\", token: \"delimiter.curly\" },\n    { open: \"[\", close: \"]\", token: \"delimiter.bracket\" },\n    { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" }\n  ],\n  tokenizer: {\n    root: [\n      { include: \"@whitespace\" },\n      { include: \"@numbers\" },\n      { include: \"@strings\" },\n      [/[,:;]/, \"delimiter\"],\n      [/[{}\\[\\]()]/, \"@brackets\"],\n      [/@[a-zA-Z_]\\w*/, \"tag\"],\n      [\n        /[a-zA-Z_]\\w*/,\n        {\n          cases: {\n            \"@keywords\": \"keyword\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ]\n    ],\n    // Deal with white space, including single and multi-line comments\n    whitespace: [\n      [/\\s+/, \"white\"],\n      [/(^#.*$)/, \"comment\"],\n      [/'''/, \"string\", \"@endDocString\"],\n      [/\"\"\"/, \"string\", \"@endDblDocString\"]\n    ],\n    endDocString: [\n      [/[^']+/, \"string\"],\n      [/\\\\'/, \"string\"],\n      [/'''/, \"string\", \"@popall\"],\n      [/'/, \"string\"]\n    ],\n    endDblDocString: [\n      [/[^\"]+/, \"string\"],\n      [/\\\\\"/, \"string\"],\n      [/\"\"\"/, \"string\", \"@popall\"],\n      [/\"/, \"string\"]\n    ],\n    // Recognize hex, negatives, decimals, imaginaries, longs, and scientific notation\n    numbers: [\n      [/-?0x([abcdef]|[ABCDEF]|\\d)+[lL]?/, \"number.hex\"],\n      [/-?(\\d*\\.)?\\d+([eE][+\\-]?\\d+)?[jJ]?[lL]?/, \"number\"]\n    ],\n    // Recognize strings, including those broken across lines with \\ (but not without)\n    strings: [\n      [/'$/, \"string.escape\", \"@popall\"],\n      [/f'{1,3}/, \"string.escape\", \"@fStringBody\"],\n      [/'/, \"string.escape\", \"@stringBody\"],\n      [/\"$/, \"string.escape\", \"@popall\"],\n      [/f\"{1,3}/, \"string.escape\", \"@fDblStringBody\"],\n      [/\"/, \"string.escape\", \"@dblStringBody\"]\n    ],\n    fStringBody: [\n      [/[^\\\\'\\{\\}]+$/, \"string\", \"@popall\"],\n      [/[^\\\\'\\{\\}]+/, \"string\"],\n      [/\\{[^\\}':!=]+/, \"identifier\", \"@fStringDetail\"],\n      [/\\\\./, \"string\"],\n      [/'/, \"string.escape\", \"@popall\"],\n      [/\\\\$/, \"string\"]\n    ],\n    stringBody: [\n      [/[^\\\\']+$/, \"string\", \"@popall\"],\n      [/[^\\\\']+/, \"string\"],\n      [/\\\\./, \"string\"],\n      [/'/, \"string.escape\", \"@popall\"],\n      [/\\\\$/, \"string\"]\n    ],\n    fDblStringBody: [\n      [/[^\\\\\"\\{\\}]+$/, \"string\", \"@popall\"],\n      [/[^\\\\\"\\{\\}]+/, \"string\"],\n      [/\\{[^\\}':!=]+/, \"identifier\", \"@fStringDetail\"],\n      [/\\\\./, \"string\"],\n      [/\"/, \"string.escape\", \"@popall\"],\n      [/\\\\$/, \"string\"]\n    ],\n    dblStringBody: [\n      [/[^\\\\\"]+$/, \"string\", \"@popall\"],\n      [/[^\\\\\"]+/, \"string\"],\n      [/\\\\./, \"string\"],\n      [/\"/, \"string.escape\", \"@popall\"],\n      [/\\\\$/, \"string\"]\n    ],\n    fStringDetail: [\n      [/[:][^}]+/, \"string\"],\n      [/[!][ars]/, \"string\"],\n      // only !a, !r, !s are supported by f-strings: https://docs.python.org/3/tutorial/inputoutput.html#formatted-string-literals\n      [/=/, \"string\"],\n      [/\\}/, \"identifier\", \"@pop\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/qsharp/qsharp.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/qsharp/qsharp.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/qsharp/qsharp.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"qsharp\",\n  extensions: [\".qs\"],\n  aliases: [\"Q#\", \"qsharp\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/qsharp/qsharp\"], resolve, reject);\n      });\n    } else {\n      return import(\"./qsharp.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/qsharp/qsharp.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/qsharp/qsharp.ts\nvar conf = {\n  comments: {\n    lineComment: \"//\"\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"', notIn: [\"string\", \"comment\"] }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' }\n  ]\n};\nvar language = {\n  // Set defaultToken to invalid to see what you do not tokenize yet\n  keywords: [\n    \"namespace\",\n    \"open\",\n    \"as\",\n    \"operation\",\n    \"function\",\n    \"body\",\n    \"adjoint\",\n    \"newtype\",\n    \"controlled\",\n    \"if\",\n    \"elif\",\n    \"else\",\n    \"repeat\",\n    \"until\",\n    \"fixup\",\n    \"for\",\n    \"in\",\n    \"while\",\n    \"return\",\n    \"fail\",\n    \"within\",\n    \"apply\",\n    \"Adjoint\",\n    \"Controlled\",\n    \"Adj\",\n    \"Ctl\",\n    \"is\",\n    \"self\",\n    \"auto\",\n    \"distribute\",\n    \"invert\",\n    \"intrinsic\",\n    \"let\",\n    \"set\",\n    \"w/\",\n    \"new\",\n    \"not\",\n    \"and\",\n    \"or\",\n    \"use\",\n    \"borrow\",\n    \"using\",\n    \"borrowing\",\n    \"mutable\",\n    \"internal\"\n  ],\n  typeKeywords: [\n    \"Unit\",\n    \"Int\",\n    \"BigInt\",\n    \"Double\",\n    \"Bool\",\n    \"String\",\n    \"Qubit\",\n    \"Result\",\n    \"Pauli\",\n    \"Range\"\n  ],\n  invalidKeywords: [\n    \"abstract\",\n    \"base\",\n    \"bool\",\n    \"break\",\n    \"byte\",\n    \"case\",\n    \"catch\",\n    \"char\",\n    \"checked\",\n    \"class\",\n    \"const\",\n    \"continue\",\n    \"decimal\",\n    \"default\",\n    \"delegate\",\n    \"do\",\n    \"double\",\n    \"enum\",\n    \"event\",\n    \"explicit\",\n    \"extern\",\n    \"finally\",\n    \"fixed\",\n    \"float\",\n    \"foreach\",\n    \"goto\",\n    \"implicit\",\n    \"int\",\n    \"interface\",\n    \"lock\",\n    \"long\",\n    \"null\",\n    \"object\",\n    \"operator\",\n    \"out\",\n    \"override\",\n    \"params\",\n    \"private\",\n    \"protected\",\n    \"public\",\n    \"readonly\",\n    \"ref\",\n    \"sbyte\",\n    \"sealed\",\n    \"short\",\n    \"sizeof\",\n    \"stackalloc\",\n    \"static\",\n    \"string\",\n    \"struct\",\n    \"switch\",\n    \"this\",\n    \"throw\",\n    \"try\",\n    \"typeof\",\n    \"unit\",\n    \"ulong\",\n    \"unchecked\",\n    \"unsafe\",\n    \"ushort\",\n    \"virtual\",\n    \"void\",\n    \"volatile\"\n  ],\n  constants: [\"true\", \"false\", \"PauliI\", \"PauliX\", \"PauliY\", \"PauliZ\", \"One\", \"Zero\"],\n  builtin: [\n    \"X\",\n    \"Y\",\n    \"Z\",\n    \"H\",\n    \"HY\",\n    \"S\",\n    \"T\",\n    \"SWAP\",\n    \"CNOT\",\n    \"CCNOT\",\n    \"MultiX\",\n    \"R\",\n    \"RFrac\",\n    \"Rx\",\n    \"Ry\",\n    \"Rz\",\n    \"R1\",\n    \"R1Frac\",\n    \"Exp\",\n    \"ExpFrac\",\n    \"Measure\",\n    \"M\",\n    \"MultiM\",\n    \"Message\",\n    \"Length\",\n    \"Assert\",\n    \"AssertProb\",\n    \"AssertEqual\"\n  ],\n  operators: [\n    \"and=\",\n    \"<-\",\n    \"->\",\n    \"*\",\n    \"*=\",\n    \"@\",\n    \"!\",\n    \"^\",\n    \"^=\",\n    \":\",\n    \"::\",\n    \"..\",\n    \"==\",\n    \"...\",\n    \"=\",\n    \"=>\",\n    \">\",\n    \">=\",\n    \"<\",\n    \"<=\",\n    \"-\",\n    \"-=\",\n    \"!=\",\n    \"or=\",\n    \"%\",\n    \"%=\",\n    \"|\",\n    \"+\",\n    \"+=\",\n    \"?\",\n    \"/\",\n    \"/=\",\n    \"&&&\",\n    \"&&&=\",\n    \"^^^\",\n    \"^^^=\",\n    \">>>\",\n    \">>>=\",\n    \"<<<\",\n    \"<<<=\",\n    \"|||\",\n    \"|||=\",\n    \"~~~\",\n    \"_\",\n    \"w/\",\n    \"w/=\"\n  ],\n  namespaceFollows: [\"namespace\", \"open\"],\n  symbols: /[=><!~?:&|+\\-*\\/\\^%@._]+/,\n  escapes: /\\\\[\\s\\S]/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      // identifiers and keywords\n      [\n        /[a-zA-Z_$][\\w$]*/,\n        {\n          cases: {\n            \"@namespaceFollows\": {\n              token: \"keyword.$0\",\n              next: \"@namespace\"\n            },\n            \"@typeKeywords\": \"type\",\n            \"@keywords\": \"keyword\",\n            \"@constants\": \"constant\",\n            \"@builtin\": \"keyword\",\n            \"@invalidKeywords\": \"invalid\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      // whitespace\n      { include: \"@whitespace\" },\n      // delimiters and operators\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      [/@symbols/, { cases: { \"@operators\": \"operator\", \"@default\": \"\" } }],\n      // numbers\n      [/\\d*\\.\\d+([eE][\\-+]?\\d+)?/, \"number.float\"],\n      [/\\d+/, \"number\"],\n      // delimiter: after number because of .\\d floats\n      [/[;,.]/, \"delimiter\"],\n      // strings\n      //[/\"([^\"\\\\]|\\\\.)*$/, 'string.invalid' ],  // non-teminated string\n      [/\"/, { token: \"string.quote\", bracket: \"@open\", next: \"@string\" }]\n    ],\n    string: [\n      [/[^\\\\\"]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\"/, { token: \"string.quote\", bracket: \"@close\", next: \"@pop\" }]\n    ],\n    namespace: [\n      { include: \"@whitespace\" },\n      [/[A-Za-z]\\w*/, \"namespace\"],\n      [/[\\.=]/, \"delimiter\"],\n      [\"\", \"\", \"@pop\"]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"white\"],\n      [/(\\/\\/).*/, \"comment\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/r/r.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/r/r.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/r/r.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"r\",\n  extensions: [\".r\", \".rhistory\", \".rmd\", \".rprofile\", \".rt\"],\n  aliases: [\"R\", \"r\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/r/r\"], resolve, reject);\n      });\n    } else {\n      return import(\"./r.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/r/r.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/r/r.ts\nvar conf = {\n  comments: {\n    lineComment: \"#\"\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".r\",\n  roxygen: [\n    \"@alias\",\n    \"@aliases\",\n    \"@assignee\",\n    \"@author\",\n    \"@backref\",\n    \"@callGraph\",\n    \"@callGraphDepth\",\n    \"@callGraphPrimitives\",\n    \"@concept\",\n    \"@describeIn\",\n    \"@description\",\n    \"@details\",\n    \"@docType\",\n    \"@encoding\",\n    \"@evalNamespace\",\n    \"@evalRd\",\n    \"@example\",\n    \"@examples\",\n    \"@export\",\n    \"@exportClass\",\n    \"@exportMethod\",\n    \"@exportPattern\",\n    \"@family\",\n    \"@field\",\n    \"@formals\",\n    \"@format\",\n    \"@import\",\n    \"@importClassesFrom\",\n    \"@importFrom\",\n    \"@importMethodsFrom\",\n    \"@include\",\n    \"@inherit\",\n    \"@inheritDotParams\",\n    \"@inheritParams\",\n    \"@inheritSection\",\n    \"@keywords\",\n    \"@md\",\n    \"@method\",\n    \"@name\",\n    \"@noMd\",\n    \"@noRd\",\n    \"@note\",\n    \"@param\",\n    \"@rawNamespace\",\n    \"@rawRd\",\n    \"@rdname\",\n    \"@references\",\n    \"@return\",\n    \"@S3method\",\n    \"@section\",\n    \"@seealso\",\n    \"@setClass\",\n    \"@slot\",\n    \"@source\",\n    \"@template\",\n    \"@templateVar\",\n    \"@title\",\n    \"@TODO\",\n    \"@usage\",\n    \"@useDynLib\"\n  ],\n  constants: [\n    \"NULL\",\n    \"FALSE\",\n    \"TRUE\",\n    \"NA\",\n    \"Inf\",\n    \"NaN\",\n    \"NA_integer_\",\n    \"NA_real_\",\n    \"NA_complex_\",\n    \"NA_character_\",\n    \"T\",\n    \"F\",\n    \"LETTERS\",\n    \"letters\",\n    \"month.abb\",\n    \"month.name\",\n    \"pi\",\n    \"R.version.string\"\n  ],\n  keywords: [\n    \"break\",\n    \"next\",\n    \"return\",\n    \"if\",\n    \"else\",\n    \"for\",\n    \"in\",\n    \"repeat\",\n    \"while\",\n    \"array\",\n    \"category\",\n    \"character\",\n    \"complex\",\n    \"double\",\n    \"function\",\n    \"integer\",\n    \"list\",\n    \"logical\",\n    \"matrix\",\n    \"numeric\",\n    \"vector\",\n    \"data.frame\",\n    \"factor\",\n    \"library\",\n    \"require\",\n    \"attach\",\n    \"detach\",\n    \"source\"\n  ],\n  special: [\"\\\\n\", \"\\\\r\", \"\\\\t\", \"\\\\b\", \"\\\\a\", \"\\\\f\", \"\\\\v\", \"\\\\'\", '\\\\\"', \"\\\\\\\\\"],\n  brackets: [\n    { open: \"{\", close: \"}\", token: \"delimiter.curly\" },\n    { open: \"[\", close: \"]\", token: \"delimiter.bracket\" },\n    { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" }\n  ],\n  tokenizer: {\n    root: [\n      { include: \"@numbers\" },\n      { include: \"@strings\" },\n      [/[{}\\[\\]()]/, \"@brackets\"],\n      { include: \"@operators\" },\n      [/#'$/, \"comment.doc\"],\n      [/#'/, \"comment.doc\", \"@roxygen\"],\n      [/(^#.*$)/, \"comment\"],\n      [/\\s+/, \"white\"],\n      [/[,:;]/, \"delimiter\"],\n      [/@[a-zA-Z]\\w*/, \"tag\"],\n      [\n        /[a-zA-Z]\\w*/,\n        {\n          cases: {\n            \"@keywords\": \"keyword\",\n            \"@constants\": \"constant\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ]\n    ],\n    // Recognize Roxygen comments\n    roxygen: [\n      [\n        /@\\w+/,\n        {\n          cases: {\n            \"@roxygen\": \"tag\",\n            \"@eos\": { token: \"comment.doc\", next: \"@pop\" },\n            \"@default\": \"comment.doc\"\n          }\n        }\n      ],\n      [\n        /\\s+/,\n        {\n          cases: {\n            \"@eos\": { token: \"comment.doc\", next: \"@pop\" },\n            \"@default\": \"comment.doc\"\n          }\n        }\n      ],\n      [/.*/, { token: \"comment.doc\", next: \"@pop\" }]\n    ],\n    // Recognize positives, negatives, decimals, imaginaries, and scientific notation\n    numbers: [\n      [/0[xX][0-9a-fA-F]+/, \"number.hex\"],\n      [/-?(\\d*\\.)?\\d+([eE][+\\-]?\\d+)?/, \"number\"]\n    ],\n    // Recognize operators\n    operators: [\n      [/<{1,2}-/, \"operator\"],\n      [/->{1,2}/, \"operator\"],\n      [/%[^%\\s]+%/, \"operator\"],\n      [/\\*\\*/, \"operator\"],\n      [/%%/, \"operator\"],\n      [/&&/, \"operator\"],\n      [/\\|\\|/, \"operator\"],\n      [/<</, \"operator\"],\n      [/>>/, \"operator\"],\n      [/[-+=&|!<>^~*/:$]/, \"operator\"]\n    ],\n    // Recognize strings, including those broken across lines\n    strings: [\n      [/'/, \"string.escape\", \"@stringBody\"],\n      [/\"/, \"string.escape\", \"@dblStringBody\"]\n    ],\n    stringBody: [\n      [\n        /\\\\./,\n        {\n          cases: {\n            \"@special\": \"string\",\n            \"@default\": \"error-token\"\n          }\n        }\n      ],\n      [/'/, \"string.escape\", \"@popall\"],\n      [/./, \"string\"]\n    ],\n    dblStringBody: [\n      [\n        /\\\\./,\n        {\n          cases: {\n            \"@special\": \"string\",\n            \"@default\": \"error-token\"\n          }\n        }\n      ],\n      [/\"/, \"string.escape\", \"@popall\"],\n      [/./, \"string\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/razor/razor.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/razor/razor.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/razor/razor.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"razor\",\n  extensions: [\".cshtml\"],\n  aliases: [\"Razor\", \"razor\"],\n  mimetypes: [\"text/x-cshtml\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/razor/razor\"], resolve, reject);\n      });\n    } else {\n      return import(\"./razor.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/razor/razor.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\n\n// src/fillers/monaco-editor-core.ts\nvar monaco_editor_core_exports = {};\n__reExport(monaco_editor_core_exports, monaco_editor_core_star);\nimport * as monaco_editor_core_star from \"../../editor/editor.api.js\";\n\n// src/basic-languages/razor/razor.ts\nvar EMPTY_ELEMENTS = [\n  \"area\",\n  \"base\",\n  \"br\",\n  \"col\",\n  \"embed\",\n  \"hr\",\n  \"img\",\n  \"input\",\n  \"keygen\",\n  \"link\",\n  \"menuitem\",\n  \"meta\",\n  \"param\",\n  \"source\",\n  \"track\",\n  \"wbr\"\n];\nvar conf = {\n  wordPattern: /(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\$\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\s]+)/g,\n  comments: {\n    blockComment: [\"<!--\", \"-->\"]\n  },\n  brackets: [\n    [\"<!--\", \"-->\"],\n    [\"<\", \">\"],\n    [\"{\", \"}\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  surroundingPairs: [\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" },\n    { open: \"<\", close: \">\" }\n  ],\n  onEnterRules: [\n    {\n      beforeText: new RegExp(\n        `<(?!(?:${EMPTY_ELEMENTS.join(\"|\")}))(\\\\w[\\\\w\\\\d]*)([^/>]*(?!/)>)[^<]*$`,\n        \"i\"\n      ),\n      afterText: /^<\\/(\\w[\\w\\d]*)\\s*>$/i,\n      action: {\n        indentAction: monaco_editor_core_exports.languages.IndentAction.IndentOutdent\n      }\n    },\n    {\n      beforeText: new RegExp(\n        `<(?!(?:${EMPTY_ELEMENTS.join(\"|\")}))(\\\\w[\\\\w\\\\d]*)([^/>]*(?!/)>)[^<]*$`,\n        \"i\"\n      ),\n      action: { indentAction: monaco_editor_core_exports.languages.IndentAction.Indent }\n    }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \"\",\n  // ignoreCase: true,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      [/@@@@/],\n      // text\n      [/@[^@]/, { token: \"@rematch\", switchTo: \"@razorInSimpleState.root\" }],\n      [/<!DOCTYPE/, \"metatag.html\", \"@doctype\"],\n      [/<!--/, \"comment.html\", \"@comment\"],\n      [/(<)([\\w\\-]+)(\\/>)/, [\"delimiter.html\", \"tag.html\", \"delimiter.html\"]],\n      [/(<)(script)/, [\"delimiter.html\", { token: \"tag.html\", next: \"@script\" }]],\n      [/(<)(style)/, [\"delimiter.html\", { token: \"tag.html\", next: \"@style\" }]],\n      [/(<)([:\\w\\-]+)/, [\"delimiter.html\", { token: \"tag.html\", next: \"@otherTag\" }]],\n      [/(<\\/)([\\w\\-]+)/, [\"delimiter.html\", { token: \"tag.html\", next: \"@otherTag\" }]],\n      [/</, \"delimiter.html\"],\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/[^<@]+/]\n      // text\n    ],\n    doctype: [\n      [/@[^@]/, { token: \"@rematch\", switchTo: \"@razorInSimpleState.comment\" }],\n      [/[^>]+/, \"metatag.content.html\"],\n      [/>/, \"metatag.html\", \"@pop\"]\n    ],\n    comment: [\n      [/@[^@]/, { token: \"@rematch\", switchTo: \"@razorInSimpleState.comment\" }],\n      [/-->/, \"comment.html\", \"@pop\"],\n      [/[^-]+/, \"comment.content.html\"],\n      [/./, \"comment.content.html\"]\n    ],\n    otherTag: [\n      [/@[^@]/, { token: \"@rematch\", switchTo: \"@razorInSimpleState.otherTag\" }],\n      [/\\/?>/, \"delimiter.html\", \"@pop\"],\n      [/\"([^\"]*)\"/, \"attribute.value\"],\n      [/'([^']*)'/, \"attribute.value\"],\n      [/[\\w\\-]+/, \"attribute.name\"],\n      [/=/, \"delimiter\"],\n      [/[ \\t\\r\\n]+/]\n      // whitespace\n    ],\n    // -- BEGIN <script> tags handling\n    // After <script\n    script: [\n      [/@[^@]/, { token: \"@rematch\", switchTo: \"@razorInSimpleState.script\" }],\n      [/type/, \"attribute.name\", \"@scriptAfterType\"],\n      [/\"([^\"]*)\"/, \"attribute.value\"],\n      [/'([^']*)'/, \"attribute.value\"],\n      [/[\\w\\-]+/, \"attribute.name\"],\n      [/=/, \"delimiter\"],\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@scriptEmbedded.text/javascript\",\n          nextEmbedded: \"text/javascript\"\n        }\n      ],\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [\n        /(<\\/)(script\\s*)(>)/,\n        [\"delimiter.html\", \"tag.html\", { token: \"delimiter.html\", next: \"@pop\" }]\n      ]\n    ],\n    // After <script ... type\n    scriptAfterType: [\n      [\n        /@[^@]/,\n        {\n          token: \"@rematch\",\n          switchTo: \"@razorInSimpleState.scriptAfterType\"\n        }\n      ],\n      [/=/, \"delimiter\", \"@scriptAfterTypeEquals\"],\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@scriptEmbedded.text/javascript\",\n          nextEmbedded: \"text/javascript\"\n        }\n      ],\n      // cover invalid e.g. <script type>\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/<\\/script\\s*>/, { token: \"@rematch\", next: \"@pop\" }]\n    ],\n    // After <script ... type =\n    scriptAfterTypeEquals: [\n      [\n        /@[^@]/,\n        {\n          token: \"@rematch\",\n          switchTo: \"@razorInSimpleState.scriptAfterTypeEquals\"\n        }\n      ],\n      [\n        /\"([^\"]*)\"/,\n        {\n          token: \"attribute.value\",\n          switchTo: \"@scriptWithCustomType.$1\"\n        }\n      ],\n      [\n        /'([^']*)'/,\n        {\n          token: \"attribute.value\",\n          switchTo: \"@scriptWithCustomType.$1\"\n        }\n      ],\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@scriptEmbedded.text/javascript\",\n          nextEmbedded: \"text/javascript\"\n        }\n      ],\n      // cover invalid e.g. <script type=>\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/<\\/script\\s*>/, { token: \"@rematch\", next: \"@pop\" }]\n    ],\n    // After <script ... type = $S2\n    scriptWithCustomType: [\n      [\n        /@[^@]/,\n        {\n          token: \"@rematch\",\n          switchTo: \"@razorInSimpleState.scriptWithCustomType.$S2\"\n        }\n      ],\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@scriptEmbedded.$S2\",\n          nextEmbedded: \"$S2\"\n        }\n      ],\n      [/\"([^\"]*)\"/, \"attribute.value\"],\n      [/'([^']*)'/, \"attribute.value\"],\n      [/[\\w\\-]+/, \"attribute.name\"],\n      [/=/, \"delimiter\"],\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/<\\/script\\s*>/, { token: \"@rematch\", next: \"@pop\" }]\n    ],\n    scriptEmbedded: [\n      [\n        /@[^@]/,\n        {\n          token: \"@rematch\",\n          switchTo: \"@razorInEmbeddedState.scriptEmbedded.$S2\",\n          nextEmbedded: \"@pop\"\n        }\n      ],\n      [/<\\/script/, { token: \"@rematch\", next: \"@pop\", nextEmbedded: \"@pop\" }]\n    ],\n    // -- END <script> tags handling\n    // -- BEGIN <style> tags handling\n    // After <style\n    style: [\n      [/@[^@]/, { token: \"@rematch\", switchTo: \"@razorInSimpleState.style\" }],\n      [/type/, \"attribute.name\", \"@styleAfterType\"],\n      [/\"([^\"]*)\"/, \"attribute.value\"],\n      [/'([^']*)'/, \"attribute.value\"],\n      [/[\\w\\-]+/, \"attribute.name\"],\n      [/=/, \"delimiter\"],\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@styleEmbedded.text/css\",\n          nextEmbedded: \"text/css\"\n        }\n      ],\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [\n        /(<\\/)(style\\s*)(>)/,\n        [\"delimiter.html\", \"tag.html\", { token: \"delimiter.html\", next: \"@pop\" }]\n      ]\n    ],\n    // After <style ... type\n    styleAfterType: [\n      [\n        /@[^@]/,\n        {\n          token: \"@rematch\",\n          switchTo: \"@razorInSimpleState.styleAfterType\"\n        }\n      ],\n      [/=/, \"delimiter\", \"@styleAfterTypeEquals\"],\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@styleEmbedded.text/css\",\n          nextEmbedded: \"text/css\"\n        }\n      ],\n      // cover invalid e.g. <style type>\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/<\\/style\\s*>/, { token: \"@rematch\", next: \"@pop\" }]\n    ],\n    // After <style ... type =\n    styleAfterTypeEquals: [\n      [\n        /@[^@]/,\n        {\n          token: \"@rematch\",\n          switchTo: \"@razorInSimpleState.styleAfterTypeEquals\"\n        }\n      ],\n      [\n        /\"([^\"]*)\"/,\n        {\n          token: \"attribute.value\",\n          switchTo: \"@styleWithCustomType.$1\"\n        }\n      ],\n      [\n        /'([^']*)'/,\n        {\n          token: \"attribute.value\",\n          switchTo: \"@styleWithCustomType.$1\"\n        }\n      ],\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@styleEmbedded.text/css\",\n          nextEmbedded: \"text/css\"\n        }\n      ],\n      // cover invalid e.g. <style type=>\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/<\\/style\\s*>/, { token: \"@rematch\", next: \"@pop\" }]\n    ],\n    // After <style ... type = $S2\n    styleWithCustomType: [\n      [\n        /@[^@]/,\n        {\n          token: \"@rematch\",\n          switchTo: \"@razorInSimpleState.styleWithCustomType.$S2\"\n        }\n      ],\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@styleEmbedded.$S2\",\n          nextEmbedded: \"$S2\"\n        }\n      ],\n      [/\"([^\"]*)\"/, \"attribute.value\"],\n      [/'([^']*)'/, \"attribute.value\"],\n      [/[\\w\\-]+/, \"attribute.name\"],\n      [/=/, \"delimiter\"],\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/<\\/style\\s*>/, { token: \"@rematch\", next: \"@pop\" }]\n    ],\n    styleEmbedded: [\n      [\n        /@[^@]/,\n        {\n          token: \"@rematch\",\n          switchTo: \"@razorInEmbeddedState.styleEmbedded.$S2\",\n          nextEmbedded: \"@pop\"\n        }\n      ],\n      [/<\\/style/, { token: \"@rematch\", next: \"@pop\", nextEmbedded: \"@pop\" }]\n    ],\n    // -- END <style> tags handling\n    razorInSimpleState: [\n      [/@\\*/, \"comment.cs\", \"@razorBlockCommentTopLevel\"],\n      [/@[{(]/, \"metatag.cs\", \"@razorRootTopLevel\"],\n      [/(@)(\\s*[\\w]+)/, [\"metatag.cs\", { token: \"identifier.cs\", switchTo: \"@$S2.$S3\" }]],\n      [/[})]/, { token: \"metatag.cs\", switchTo: \"@$S2.$S3\" }],\n      [/\\*@/, { token: \"comment.cs\", switchTo: \"@$S2.$S3\" }]\n    ],\n    razorInEmbeddedState: [\n      [/@\\*/, \"comment.cs\", \"@razorBlockCommentTopLevel\"],\n      [/@[{(]/, \"metatag.cs\", \"@razorRootTopLevel\"],\n      [\n        /(@)(\\s*[\\w]+)/,\n        [\n          \"metatag.cs\",\n          {\n            token: \"identifier.cs\",\n            switchTo: \"@$S2.$S3\",\n            nextEmbedded: \"$S3\"\n          }\n        ]\n      ],\n      [\n        /[})]/,\n        {\n          token: \"metatag.cs\",\n          switchTo: \"@$S2.$S3\",\n          nextEmbedded: \"$S3\"\n        }\n      ],\n      [\n        /\\*@/,\n        {\n          token: \"comment.cs\",\n          switchTo: \"@$S2.$S3\",\n          nextEmbedded: \"$S3\"\n        }\n      ]\n    ],\n    razorBlockCommentTopLevel: [\n      [/\\*@/, \"@rematch\", \"@pop\"],\n      [/[^*]+/, \"comment.cs\"],\n      [/./, \"comment.cs\"]\n    ],\n    razorBlockComment: [\n      [/\\*@/, \"comment.cs\", \"@pop\"],\n      [/[^*]+/, \"comment.cs\"],\n      [/./, \"comment.cs\"]\n    ],\n    razorRootTopLevel: [\n      [/\\{/, \"delimiter.bracket.cs\", \"@razorRoot\"],\n      [/\\(/, \"delimiter.parenthesis.cs\", \"@razorRoot\"],\n      [/[})]/, \"@rematch\", \"@pop\"],\n      { include: \"razorCommon\" }\n    ],\n    razorRoot: [\n      [/\\{/, \"delimiter.bracket.cs\", \"@razorRoot\"],\n      [/\\(/, \"delimiter.parenthesis.cs\", \"@razorRoot\"],\n      [/\\}/, \"delimiter.bracket.cs\", \"@pop\"],\n      [/\\)/, \"delimiter.parenthesis.cs\", \"@pop\"],\n      { include: \"razorCommon\" }\n    ],\n    razorCommon: [\n      [\n        /[a-zA-Z_]\\w*/,\n        {\n          cases: {\n            \"@razorKeywords\": { token: \"keyword.cs\" },\n            \"@default\": \"identifier.cs\"\n          }\n        }\n      ],\n      // brackets\n      [/[\\[\\]]/, \"delimiter.array.cs\"],\n      // whitespace\n      [/[ \\t\\r\\n]+/],\n      // comments\n      [/\\/\\/.*$/, \"comment.cs\"],\n      [/@\\*/, \"comment.cs\", \"@razorBlockComment\"],\n      // strings\n      [/\"([^\"]*)\"/, \"string.cs\"],\n      [/'([^']*)'/, \"string.cs\"],\n      // simple html\n      [/(<)([\\w\\-]+)(\\/>)/, [\"delimiter.html\", \"tag.html\", \"delimiter.html\"]],\n      [/(<)([\\w\\-]+)(>)/, [\"delimiter.html\", \"tag.html\", \"delimiter.html\"]],\n      [/(<\\/)([\\w\\-]+)(>)/, [\"delimiter.html\", \"tag.html\", \"delimiter.html\"]],\n      // delimiters\n      [/[\\+\\-\\*\\%\\&\\|\\^\\~\\!\\=\\<\\>\\/\\?\\;\\:\\.\\,]/, \"delimiter.cs\"],\n      // numbers\n      [/\\d*\\d+[eE]([\\-+]?\\d+)?/, \"number.float.cs\"],\n      [/\\d*\\.\\d+([eE][\\-+]?\\d+)?/, \"number.float.cs\"],\n      [/0[xX][0-9a-fA-F']*[0-9a-fA-F]/, \"number.hex.cs\"],\n      [/0[0-7']*[0-7]/, \"number.octal.cs\"],\n      [/0[bB][0-1']*[0-1]/, \"number.binary.cs\"],\n      [/\\d[\\d']*/, \"number.cs\"],\n      [/\\d/, \"number.cs\"]\n    ]\n  },\n  razorKeywords: [\n    \"abstract\",\n    \"as\",\n    \"async\",\n    \"await\",\n    \"base\",\n    \"bool\",\n    \"break\",\n    \"by\",\n    \"byte\",\n    \"case\",\n    \"catch\",\n    \"char\",\n    \"checked\",\n    \"class\",\n    \"const\",\n    \"continue\",\n    \"decimal\",\n    \"default\",\n    \"delegate\",\n    \"do\",\n    \"double\",\n    \"descending\",\n    \"explicit\",\n    \"event\",\n    \"extern\",\n    \"else\",\n    \"enum\",\n    \"false\",\n    \"finally\",\n    \"fixed\",\n    \"float\",\n    \"for\",\n    \"foreach\",\n    \"from\",\n    \"goto\",\n    \"group\",\n    \"if\",\n    \"implicit\",\n    \"in\",\n    \"int\",\n    \"interface\",\n    \"internal\",\n    \"into\",\n    \"is\",\n    \"lock\",\n    \"long\",\n    \"nameof\",\n    \"new\",\n    \"null\",\n    \"namespace\",\n    \"object\",\n    \"operator\",\n    \"out\",\n    \"override\",\n    \"orderby\",\n    \"params\",\n    \"private\",\n    \"protected\",\n    \"public\",\n    \"readonly\",\n    \"ref\",\n    \"return\",\n    \"switch\",\n    \"struct\",\n    \"sbyte\",\n    \"sealed\",\n    \"short\",\n    \"sizeof\",\n    \"stackalloc\",\n    \"static\",\n    \"string\",\n    \"select\",\n    \"this\",\n    \"throw\",\n    \"true\",\n    \"try\",\n    \"typeof\",\n    \"uint\",\n    \"ulong\",\n    \"unchecked\",\n    \"unsafe\",\n    \"ushort\",\n    \"using\",\n    \"var\",\n    \"virtual\",\n    \"volatile\",\n    \"void\",\n    \"when\",\n    \"while\",\n    \"where\",\n    \"yield\",\n    \"model\",\n    \"inject\"\n    // Razor specific\n  ],\n  escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/redis/redis.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/redis/redis.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/redis/redis.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"redis\",\n  extensions: [\".redis\"],\n  aliases: [\"redis\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/redis/redis\"], resolve, reject);\n      });\n    } else {\n      return import(\"./redis.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/redis/redis.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/redis/redis.ts\nvar conf = {\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".redis\",\n  ignoreCase: true,\n  brackets: [\n    { open: \"[\", close: \"]\", token: \"delimiter.square\" },\n    { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" }\n  ],\n  keywords: [\n    \"APPEND\",\n    \"AUTH\",\n    \"BGREWRITEAOF\",\n    \"BGSAVE\",\n    \"BITCOUNT\",\n    \"BITFIELD\",\n    \"BITOP\",\n    \"BITPOS\",\n    \"BLPOP\",\n    \"BRPOP\",\n    \"BRPOPLPUSH\",\n    \"CLIENT\",\n    \"KILL\",\n    \"LIST\",\n    \"GETNAME\",\n    \"PAUSE\",\n    \"REPLY\",\n    \"SETNAME\",\n    \"CLUSTER\",\n    \"ADDSLOTS\",\n    \"COUNT-FAILURE-REPORTS\",\n    \"COUNTKEYSINSLOT\",\n    \"DELSLOTS\",\n    \"FAILOVER\",\n    \"FORGET\",\n    \"GETKEYSINSLOT\",\n    \"INFO\",\n    \"KEYSLOT\",\n    \"MEET\",\n    \"NODES\",\n    \"REPLICATE\",\n    \"RESET\",\n    \"SAVECONFIG\",\n    \"SET-CONFIG-EPOCH\",\n    \"SETSLOT\",\n    \"SLAVES\",\n    \"SLOTS\",\n    \"COMMAND\",\n    \"COUNT\",\n    \"GETKEYS\",\n    \"CONFIG\",\n    \"GET\",\n    \"REWRITE\",\n    \"SET\",\n    \"RESETSTAT\",\n    \"DBSIZE\",\n    \"DEBUG\",\n    \"OBJECT\",\n    \"SEGFAULT\",\n    \"DECR\",\n    \"DECRBY\",\n    \"DEL\",\n    \"DISCARD\",\n    \"DUMP\",\n    \"ECHO\",\n    \"EVAL\",\n    \"EVALSHA\",\n    \"EXEC\",\n    \"EXISTS\",\n    \"EXPIRE\",\n    \"EXPIREAT\",\n    \"FLUSHALL\",\n    \"FLUSHDB\",\n    \"GEOADD\",\n    \"GEOHASH\",\n    \"GEOPOS\",\n    \"GEODIST\",\n    \"GEORADIUS\",\n    \"GEORADIUSBYMEMBER\",\n    \"GETBIT\",\n    \"GETRANGE\",\n    \"GETSET\",\n    \"HDEL\",\n    \"HEXISTS\",\n    \"HGET\",\n    \"HGETALL\",\n    \"HINCRBY\",\n    \"HINCRBYFLOAT\",\n    \"HKEYS\",\n    \"HLEN\",\n    \"HMGET\",\n    \"HMSET\",\n    \"HSET\",\n    \"HSETNX\",\n    \"HSTRLEN\",\n    \"HVALS\",\n    \"INCR\",\n    \"INCRBY\",\n    \"INCRBYFLOAT\",\n    \"KEYS\",\n    \"LASTSAVE\",\n    \"LINDEX\",\n    \"LINSERT\",\n    \"LLEN\",\n    \"LPOP\",\n    \"LPUSH\",\n    \"LPUSHX\",\n    \"LRANGE\",\n    \"LREM\",\n    \"LSET\",\n    \"LTRIM\",\n    \"MGET\",\n    \"MIGRATE\",\n    \"MONITOR\",\n    \"MOVE\",\n    \"MSET\",\n    \"MSETNX\",\n    \"MULTI\",\n    \"PERSIST\",\n    \"PEXPIRE\",\n    \"PEXPIREAT\",\n    \"PFADD\",\n    \"PFCOUNT\",\n    \"PFMERGE\",\n    \"PING\",\n    \"PSETEX\",\n    \"PSUBSCRIBE\",\n    \"PUBSUB\",\n    \"PTTL\",\n    \"PUBLISH\",\n    \"PUNSUBSCRIBE\",\n    \"QUIT\",\n    \"RANDOMKEY\",\n    \"READONLY\",\n    \"READWRITE\",\n    \"RENAME\",\n    \"RENAMENX\",\n    \"RESTORE\",\n    \"ROLE\",\n    \"RPOP\",\n    \"RPOPLPUSH\",\n    \"RPUSH\",\n    \"RPUSHX\",\n    \"SADD\",\n    \"SAVE\",\n    \"SCARD\",\n    \"SCRIPT\",\n    \"FLUSH\",\n    \"LOAD\",\n    \"SDIFF\",\n    \"SDIFFSTORE\",\n    \"SELECT\",\n    \"SETBIT\",\n    \"SETEX\",\n    \"SETNX\",\n    \"SETRANGE\",\n    \"SHUTDOWN\",\n    \"SINTER\",\n    \"SINTERSTORE\",\n    \"SISMEMBER\",\n    \"SLAVEOF\",\n    \"SLOWLOG\",\n    \"SMEMBERS\",\n    \"SMOVE\",\n    \"SORT\",\n    \"SPOP\",\n    \"SRANDMEMBER\",\n    \"SREM\",\n    \"STRLEN\",\n    \"SUBSCRIBE\",\n    \"SUNION\",\n    \"SUNIONSTORE\",\n    \"SWAPDB\",\n    \"SYNC\",\n    \"TIME\",\n    \"TOUCH\",\n    \"TTL\",\n    \"TYPE\",\n    \"UNSUBSCRIBE\",\n    \"UNLINK\",\n    \"UNWATCH\",\n    \"WAIT\",\n    \"WATCH\",\n    \"ZADD\",\n    \"ZCARD\",\n    \"ZCOUNT\",\n    \"ZINCRBY\",\n    \"ZINTERSTORE\",\n    \"ZLEXCOUNT\",\n    \"ZRANGE\",\n    \"ZRANGEBYLEX\",\n    \"ZREVRANGEBYLEX\",\n    \"ZRANGEBYSCORE\",\n    \"ZRANK\",\n    \"ZREM\",\n    \"ZREMRANGEBYLEX\",\n    \"ZREMRANGEBYRANK\",\n    \"ZREMRANGEBYSCORE\",\n    \"ZREVRANGE\",\n    \"ZREVRANGEBYSCORE\",\n    \"ZREVRANK\",\n    \"ZSCORE\",\n    \"ZUNIONSTORE\",\n    \"SCAN\",\n    \"SSCAN\",\n    \"HSCAN\",\n    \"ZSCAN\"\n  ],\n  operators: [\n    // NOT SUPPORTED\n  ],\n  builtinFunctions: [\n    // NOT SUPPORTED\n  ],\n  builtinVariables: [\n    // NOT SUPPORTED\n  ],\n  pseudoColumns: [\n    // NOT SUPPORTED\n  ],\n  tokenizer: {\n    root: [\n      { include: \"@whitespace\" },\n      { include: \"@pseudoColumns\" },\n      { include: \"@numbers\" },\n      { include: \"@strings\" },\n      { include: \"@scopes\" },\n      [/[;,.]/, \"delimiter\"],\n      [/[()]/, \"@brackets\"],\n      [\n        /[\\w@#$]+/,\n        {\n          cases: {\n            \"@keywords\": \"keyword\",\n            \"@operators\": \"operator\",\n            \"@builtinVariables\": \"predefined\",\n            \"@builtinFunctions\": \"predefined\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      [/[<>=!%&+\\-*/|~^]/, \"operator\"]\n    ],\n    whitespace: [[/\\s+/, \"white\"]],\n    pseudoColumns: [\n      [\n        /[$][A-Za-z_][\\w@#$]*/,\n        {\n          cases: {\n            \"@pseudoColumns\": \"predefined\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ]\n    ],\n    numbers: [\n      [/0[xX][0-9a-fA-F]*/, \"number\"],\n      [/[$][+-]*\\d*(\\.\\d*)?/, \"number\"],\n      [/((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][\\-+]?\\d+)?/, \"number\"]\n    ],\n    strings: [\n      [/'/, { token: \"string\", next: \"@string\" }],\n      [/\"/, { token: \"string.double\", next: \"@stringDouble\" }]\n    ],\n    string: [\n      [/[^']+/, \"string\"],\n      [/''/, \"string\"],\n      [/'/, { token: \"string\", next: \"@pop\" }]\n    ],\n    stringDouble: [\n      [/[^\"]+/, \"string.double\"],\n      [/\"\"/, \"string.double\"],\n      [/\"/, { token: \"string.double\", next: \"@pop\" }]\n    ],\n    scopes: [\n      // NOT SUPPORTED\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/redshift/redshift.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/redshift/redshift.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/redshift/redshift.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"redshift\",\n  extensions: [],\n  aliases: [\"Redshift\", \"redshift\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/redshift/redshift\"], resolve, reject);\n      });\n    } else {\n      return import(\"./redshift.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/redshift/redshift.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/redshift/redshift.ts\nvar conf = {\n  comments: {\n    lineComment: \"--\",\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".sql\",\n  ignoreCase: true,\n  brackets: [\n    { open: \"[\", close: \"]\", token: \"delimiter.square\" },\n    { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" }\n  ],\n  keywords: [\n    \"AES128\",\n    \"AES256\",\n    \"ALL\",\n    \"ALLOWOVERWRITE\",\n    \"ANALYSE\",\n    \"ANALYZE\",\n    \"AND\",\n    \"ANY\",\n    \"ARRAY\",\n    \"AS\",\n    \"ASC\",\n    \"AUTHORIZATION\",\n    \"AZ64\",\n    \"BACKUP\",\n    \"BETWEEN\",\n    \"BINARY\",\n    \"BLANKSASNULL\",\n    \"BOTH\",\n    \"BYTEDICT\",\n    \"BZIP2\",\n    \"CASE\",\n    \"CAST\",\n    \"CHECK\",\n    \"COLLATE\",\n    \"COLUMN\",\n    \"CONSTRAINT\",\n    \"CREATE\",\n    \"CREDENTIALS\",\n    \"CROSS\",\n    \"CURRENT_DATE\",\n    \"CURRENT_TIME\",\n    \"CURRENT_TIMESTAMP\",\n    \"CURRENT_USER\",\n    \"CURRENT_USER_ID\",\n    \"DEFAULT\",\n    \"DEFERRABLE\",\n    \"DEFLATE\",\n    \"DEFRAG\",\n    \"DELTA\",\n    \"DELTA32K\",\n    \"DESC\",\n    \"DISABLE\",\n    \"DISTINCT\",\n    \"DO\",\n    \"ELSE\",\n    \"EMPTYASNULL\",\n    \"ENABLE\",\n    \"ENCODE\",\n    \"ENCRYPT\",\n    \"ENCRYPTION\",\n    \"END\",\n    \"EXCEPT\",\n    \"EXPLICIT\",\n    \"FALSE\",\n    \"FOR\",\n    \"FOREIGN\",\n    \"FREEZE\",\n    \"FROM\",\n    \"FULL\",\n    \"GLOBALDICT256\",\n    \"GLOBALDICT64K\",\n    \"GRANT\",\n    \"GROUP\",\n    \"GZIP\",\n    \"HAVING\",\n    \"IDENTITY\",\n    \"IGNORE\",\n    \"ILIKE\",\n    \"IN\",\n    \"INITIALLY\",\n    \"INNER\",\n    \"INTERSECT\",\n    \"INTO\",\n    \"IS\",\n    \"ISNULL\",\n    \"JOIN\",\n    \"LANGUAGE\",\n    \"LEADING\",\n    \"LEFT\",\n    \"LIKE\",\n    \"LIMIT\",\n    \"LOCALTIME\",\n    \"LOCALTIMESTAMP\",\n    \"LUN\",\n    \"LUNS\",\n    \"LZO\",\n    \"LZOP\",\n    \"MINUS\",\n    \"MOSTLY16\",\n    \"MOSTLY32\",\n    \"MOSTLY8\",\n    \"NATURAL\",\n    \"NEW\",\n    \"NOT\",\n    \"NOTNULL\",\n    \"NULL\",\n    \"NULLS\",\n    \"OFF\",\n    \"OFFLINE\",\n    \"OFFSET\",\n    \"OID\",\n    \"OLD\",\n    \"ON\",\n    \"ONLY\",\n    \"OPEN\",\n    \"OR\",\n    \"ORDER\",\n    \"OUTER\",\n    \"OVERLAPS\",\n    \"PARALLEL\",\n    \"PARTITION\",\n    \"PERCENT\",\n    \"PERMISSIONS\",\n    \"PLACING\",\n    \"PRIMARY\",\n    \"RAW\",\n    \"READRATIO\",\n    \"RECOVER\",\n    \"REFERENCES\",\n    \"RESPECT\",\n    \"REJECTLOG\",\n    \"RESORT\",\n    \"RESTORE\",\n    \"RIGHT\",\n    \"SELECT\",\n    \"SESSION_USER\",\n    \"SIMILAR\",\n    \"SNAPSHOT\",\n    \"SOME\",\n    \"SYSDATE\",\n    \"SYSTEM\",\n    \"TABLE\",\n    \"TAG\",\n    \"TDES\",\n    \"TEXT255\",\n    \"TEXT32K\",\n    \"THEN\",\n    \"TIMESTAMP\",\n    \"TO\",\n    \"TOP\",\n    \"TRAILING\",\n    \"TRUE\",\n    \"TRUNCATECOLUMNS\",\n    \"UNION\",\n    \"UNIQUE\",\n    \"USER\",\n    \"USING\",\n    \"VERBOSE\",\n    \"WALLET\",\n    \"WHEN\",\n    \"WHERE\",\n    \"WITH\",\n    \"WITHOUT\"\n  ],\n  operators: [\n    \"AND\",\n    \"BETWEEN\",\n    \"IN\",\n    \"LIKE\",\n    \"NOT\",\n    \"OR\",\n    \"IS\",\n    \"NULL\",\n    \"INTERSECT\",\n    \"UNION\",\n    \"INNER\",\n    \"JOIN\",\n    \"LEFT\",\n    \"OUTER\",\n    \"RIGHT\"\n  ],\n  builtinFunctions: [\n    \"current_schema\",\n    \"current_schemas\",\n    \"has_database_privilege\",\n    \"has_schema_privilege\",\n    \"has_table_privilege\",\n    \"age\",\n    \"current_time\",\n    \"current_timestamp\",\n    \"localtime\",\n    \"isfinite\",\n    \"now\",\n    \"ascii\",\n    \"get_bit\",\n    \"get_byte\",\n    \"set_bit\",\n    \"set_byte\",\n    \"to_ascii\",\n    \"approximate percentile_disc\",\n    \"avg\",\n    \"count\",\n    \"listagg\",\n    \"max\",\n    \"median\",\n    \"min\",\n    \"percentile_cont\",\n    \"stddev_samp\",\n    \"stddev_pop\",\n    \"sum\",\n    \"var_samp\",\n    \"var_pop\",\n    \"bit_and\",\n    \"bit_or\",\n    \"bool_and\",\n    \"bool_or\",\n    \"cume_dist\",\n    \"first_value\",\n    \"lag\",\n    \"last_value\",\n    \"lead\",\n    \"nth_value\",\n    \"ratio_to_report\",\n    \"dense_rank\",\n    \"ntile\",\n    \"percent_rank\",\n    \"rank\",\n    \"row_number\",\n    \"case\",\n    \"coalesce\",\n    \"decode\",\n    \"greatest\",\n    \"least\",\n    \"nvl\",\n    \"nvl2\",\n    \"nullif\",\n    \"add_months\",\n    \"at time zone\",\n    \"convert_timezone\",\n    \"current_date\",\n    \"date_cmp\",\n    \"date_cmp_timestamp\",\n    \"date_cmp_timestamptz\",\n    \"date_part_year\",\n    \"dateadd\",\n    \"datediff\",\n    \"date_part\",\n    \"date_trunc\",\n    \"extract\",\n    \"getdate\",\n    \"interval_cmp\",\n    \"last_day\",\n    \"months_between\",\n    \"next_day\",\n    \"sysdate\",\n    \"timeofday\",\n    \"timestamp_cmp\",\n    \"timestamp_cmp_date\",\n    \"timestamp_cmp_timestamptz\",\n    \"timestamptz_cmp\",\n    \"timestamptz_cmp_date\",\n    \"timestamptz_cmp_timestamp\",\n    \"timezone\",\n    \"to_timestamp\",\n    \"trunc\",\n    \"abs\",\n    \"acos\",\n    \"asin\",\n    \"atan\",\n    \"atan2\",\n    \"cbrt\",\n    \"ceil\",\n    \"ceiling\",\n    \"checksum\",\n    \"cos\",\n    \"cot\",\n    \"degrees\",\n    \"dexp\",\n    \"dlog1\",\n    \"dlog10\",\n    \"exp\",\n    \"floor\",\n    \"ln\",\n    \"log\",\n    \"mod\",\n    \"pi\",\n    \"power\",\n    \"radians\",\n    \"random\",\n    \"round\",\n    \"sin\",\n    \"sign\",\n    \"sqrt\",\n    \"tan\",\n    \"to_hex\",\n    \"bpcharcmp\",\n    \"btrim\",\n    \"bttext_pattern_cmp\",\n    \"char_length\",\n    \"character_length\",\n    \"charindex\",\n    \"chr\",\n    \"concat\",\n    \"crc32\",\n    \"func_sha1\",\n    \"initcap\",\n    \"left and rights\",\n    \"len\",\n    \"length\",\n    \"lower\",\n    \"lpad and rpads\",\n    \"ltrim\",\n    \"md5\",\n    \"octet_length\",\n    \"position\",\n    \"quote_ident\",\n    \"quote_literal\",\n    \"regexp_count\",\n    \"regexp_instr\",\n    \"regexp_replace\",\n    \"regexp_substr\",\n    \"repeat\",\n    \"replace\",\n    \"replicate\",\n    \"reverse\",\n    \"rtrim\",\n    \"split_part\",\n    \"strpos\",\n    \"strtol\",\n    \"substring\",\n    \"textlen\",\n    \"translate\",\n    \"trim\",\n    \"upper\",\n    \"cast\",\n    \"convert\",\n    \"to_char\",\n    \"to_date\",\n    \"to_number\",\n    \"json_array_length\",\n    \"json_extract_array_element_text\",\n    \"json_extract_path_text\",\n    \"current_setting\",\n    \"pg_cancel_backend\",\n    \"pg_terminate_backend\",\n    \"set_config\",\n    \"current_database\",\n    \"current_user\",\n    \"current_user_id\",\n    \"pg_backend_pid\",\n    \"pg_last_copy_count\",\n    \"pg_last_copy_id\",\n    \"pg_last_query_id\",\n    \"pg_last_unload_count\",\n    \"session_user\",\n    \"slice_num\",\n    \"user\",\n    \"version\",\n    \"abbrev\",\n    \"acosd\",\n    \"any\",\n    \"area\",\n    \"array_agg\",\n    \"array_append\",\n    \"array_cat\",\n    \"array_dims\",\n    \"array_fill\",\n    \"array_length\",\n    \"array_lower\",\n    \"array_ndims\",\n    \"array_position\",\n    \"array_positions\",\n    \"array_prepend\",\n    \"array_remove\",\n    \"array_replace\",\n    \"array_to_json\",\n    \"array_to_string\",\n    \"array_to_tsvector\",\n    \"array_upper\",\n    \"asind\",\n    \"atan2d\",\n    \"atand\",\n    \"bit\",\n    \"bit_length\",\n    \"bound_box\",\n    \"box\",\n    \"brin_summarize_new_values\",\n    \"broadcast\",\n    \"cardinality\",\n    \"center\",\n    \"circle\",\n    \"clock_timestamp\",\n    \"col_description\",\n    \"concat_ws\",\n    \"convert_from\",\n    \"convert_to\",\n    \"corr\",\n    \"cosd\",\n    \"cotd\",\n    \"covar_pop\",\n    \"covar_samp\",\n    \"current_catalog\",\n    \"current_query\",\n    \"current_role\",\n    \"currval\",\n    \"cursor_to_xml\",\n    \"diameter\",\n    \"div\",\n    \"encode\",\n    \"enum_first\",\n    \"enum_last\",\n    \"enum_range\",\n    \"every\",\n    \"family\",\n    \"format\",\n    \"format_type\",\n    \"generate_series\",\n    \"generate_subscripts\",\n    \"get_current_ts_config\",\n    \"gin_clean_pending_list\",\n    \"grouping\",\n    \"has_any_column_privilege\",\n    \"has_column_privilege\",\n    \"has_foreign_data_wrapper_privilege\",\n    \"has_function_privilege\",\n    \"has_language_privilege\",\n    \"has_sequence_privilege\",\n    \"has_server_privilege\",\n    \"has_tablespace_privilege\",\n    \"has_type_privilege\",\n    \"height\",\n    \"host\",\n    \"hostmask\",\n    \"inet_client_addr\",\n    \"inet_client_port\",\n    \"inet_merge\",\n    \"inet_same_family\",\n    \"inet_server_addr\",\n    \"inet_server_port\",\n    \"isclosed\",\n    \"isempty\",\n    \"isopen\",\n    \"json_agg\",\n    \"json_object\",\n    \"json_object_agg\",\n    \"json_populate_record\",\n    \"json_populate_recordset\",\n    \"json_to_record\",\n    \"json_to_recordset\",\n    \"jsonb_agg\",\n    \"jsonb_object_agg\",\n    \"justify_days\",\n    \"justify_hours\",\n    \"justify_interval\",\n    \"lastval\",\n    \"left\",\n    \"line\",\n    \"localtimestamp\",\n    \"lower_inc\",\n    \"lower_inf\",\n    \"lpad\",\n    \"lseg\",\n    \"make_date\",\n    \"make_interval\",\n    \"make_time\",\n    \"make_timestamp\",\n    \"make_timestamptz\",\n    \"masklen\",\n    \"mode\",\n    \"netmask\",\n    \"network\",\n    \"nextval\",\n    \"npoints\",\n    \"num_nonnulls\",\n    \"num_nulls\",\n    \"numnode\",\n    \"obj_description\",\n    \"overlay\",\n    \"parse_ident\",\n    \"path\",\n    \"pclose\",\n    \"percentile_disc\",\n    \"pg_advisory_lock\",\n    \"pg_advisory_lock_shared\",\n    \"pg_advisory_unlock\",\n    \"pg_advisory_unlock_all\",\n    \"pg_advisory_unlock_shared\",\n    \"pg_advisory_xact_lock\",\n    \"pg_advisory_xact_lock_shared\",\n    \"pg_backup_start_time\",\n    \"pg_blocking_pids\",\n    \"pg_client_encoding\",\n    \"pg_collation_is_visible\",\n    \"pg_column_size\",\n    \"pg_conf_load_time\",\n    \"pg_control_checkpoint\",\n    \"pg_control_init\",\n    \"pg_control_recovery\",\n    \"pg_control_system\",\n    \"pg_conversion_is_visible\",\n    \"pg_create_logical_replication_slot\",\n    \"pg_create_physical_replication_slot\",\n    \"pg_create_restore_point\",\n    \"pg_current_xlog_flush_location\",\n    \"pg_current_xlog_insert_location\",\n    \"pg_current_xlog_location\",\n    \"pg_database_size\",\n    \"pg_describe_object\",\n    \"pg_drop_replication_slot\",\n    \"pg_export_snapshot\",\n    \"pg_filenode_relation\",\n    \"pg_function_is_visible\",\n    \"pg_get_constraintdef\",\n    \"pg_get_expr\",\n    \"pg_get_function_arguments\",\n    \"pg_get_function_identity_arguments\",\n    \"pg_get_function_result\",\n    \"pg_get_functiondef\",\n    \"pg_get_indexdef\",\n    \"pg_get_keywords\",\n    \"pg_get_object_address\",\n    \"pg_get_owned_sequence\",\n    \"pg_get_ruledef\",\n    \"pg_get_serial_sequence\",\n    \"pg_get_triggerdef\",\n    \"pg_get_userbyid\",\n    \"pg_get_viewdef\",\n    \"pg_has_role\",\n    \"pg_identify_object\",\n    \"pg_identify_object_as_address\",\n    \"pg_index_column_has_property\",\n    \"pg_index_has_property\",\n    \"pg_indexam_has_property\",\n    \"pg_indexes_size\",\n    \"pg_is_in_backup\",\n    \"pg_is_in_recovery\",\n    \"pg_is_other_temp_schema\",\n    \"pg_is_xlog_replay_paused\",\n    \"pg_last_committed_xact\",\n    \"pg_last_xact_replay_timestamp\",\n    \"pg_last_xlog_receive_location\",\n    \"pg_last_xlog_replay_location\",\n    \"pg_listening_channels\",\n    \"pg_logical_emit_message\",\n    \"pg_logical_slot_get_binary_changes\",\n    \"pg_logical_slot_get_changes\",\n    \"pg_logical_slot_peek_binary_changes\",\n    \"pg_logical_slot_peek_changes\",\n    \"pg_ls_dir\",\n    \"pg_my_temp_schema\",\n    \"pg_notification_queue_usage\",\n    \"pg_opclass_is_visible\",\n    \"pg_operator_is_visible\",\n    \"pg_opfamily_is_visible\",\n    \"pg_options_to_table\",\n    \"pg_postmaster_start_time\",\n    \"pg_read_binary_file\",\n    \"pg_read_file\",\n    \"pg_relation_filenode\",\n    \"pg_relation_filepath\",\n    \"pg_relation_size\",\n    \"pg_reload_conf\",\n    \"pg_replication_origin_create\",\n    \"pg_replication_origin_drop\",\n    \"pg_replication_origin_oid\",\n    \"pg_replication_origin_progress\",\n    \"pg_replication_origin_session_is_setup\",\n    \"pg_replication_origin_session_progress\",\n    \"pg_replication_origin_session_reset\",\n    \"pg_replication_origin_session_setup\",\n    \"pg_replication_origin_xact_reset\",\n    \"pg_replication_origin_xact_setup\",\n    \"pg_rotate_logfile\",\n    \"pg_size_bytes\",\n    \"pg_size_pretty\",\n    \"pg_sleep\",\n    \"pg_sleep_for\",\n    \"pg_sleep_until\",\n    \"pg_start_backup\",\n    \"pg_stat_file\",\n    \"pg_stop_backup\",\n    \"pg_switch_xlog\",\n    \"pg_table_is_visible\",\n    \"pg_table_size\",\n    \"pg_tablespace_databases\",\n    \"pg_tablespace_location\",\n    \"pg_tablespace_size\",\n    \"pg_total_relation_size\",\n    \"pg_trigger_depth\",\n    \"pg_try_advisory_lock\",\n    \"pg_try_advisory_lock_shared\",\n    \"pg_try_advisory_xact_lock\",\n    \"pg_try_advisory_xact_lock_shared\",\n    \"pg_ts_config_is_visible\",\n    \"pg_ts_dict_is_visible\",\n    \"pg_ts_parser_is_visible\",\n    \"pg_ts_template_is_visible\",\n    \"pg_type_is_visible\",\n    \"pg_typeof\",\n    \"pg_xact_commit_timestamp\",\n    \"pg_xlog_location_diff\",\n    \"pg_xlog_replay_pause\",\n    \"pg_xlog_replay_resume\",\n    \"pg_xlogfile_name\",\n    \"pg_xlogfile_name_offset\",\n    \"phraseto_tsquery\",\n    \"plainto_tsquery\",\n    \"point\",\n    \"polygon\",\n    \"popen\",\n    \"pqserverversion\",\n    \"query_to_xml\",\n    \"querytree\",\n    \"quote_nullable\",\n    \"radius\",\n    \"range_merge\",\n    \"regexp_matches\",\n    \"regexp_split_to_array\",\n    \"regexp_split_to_table\",\n    \"regr_avgx\",\n    \"regr_avgy\",\n    \"regr_count\",\n    \"regr_intercept\",\n    \"regr_r2\",\n    \"regr_slope\",\n    \"regr_sxx\",\n    \"regr_sxy\",\n    \"regr_syy\",\n    \"right\",\n    \"row_security_active\",\n    \"row_to_json\",\n    \"rpad\",\n    \"scale\",\n    \"set_masklen\",\n    \"setseed\",\n    \"setval\",\n    \"setweight\",\n    \"shobj_description\",\n    \"sind\",\n    \"sprintf\",\n    \"statement_timestamp\",\n    \"stddev\",\n    \"string_agg\",\n    \"string_to_array\",\n    \"strip\",\n    \"substr\",\n    \"table_to_xml\",\n    \"table_to_xml_and_xmlschema\",\n    \"tand\",\n    \"text\",\n    \"to_json\",\n    \"to_regclass\",\n    \"to_regnamespace\",\n    \"to_regoper\",\n    \"to_regoperator\",\n    \"to_regproc\",\n    \"to_regprocedure\",\n    \"to_regrole\",\n    \"to_regtype\",\n    \"to_tsquery\",\n    \"to_tsvector\",\n    \"transaction_timestamp\",\n    \"ts_debug\",\n    \"ts_delete\",\n    \"ts_filter\",\n    \"ts_headline\",\n    \"ts_lexize\",\n    \"ts_parse\",\n    \"ts_rank\",\n    \"ts_rank_cd\",\n    \"ts_rewrite\",\n    \"ts_stat\",\n    \"ts_token_type\",\n    \"tsquery_phrase\",\n    \"tsvector_to_array\",\n    \"tsvector_update_trigger\",\n    \"tsvector_update_trigger_column\",\n    \"txid_current\",\n    \"txid_current_snapshot\",\n    \"txid_snapshot_xip\",\n    \"txid_snapshot_xmax\",\n    \"txid_snapshot_xmin\",\n    \"txid_visible_in_snapshot\",\n    \"unnest\",\n    \"upper_inc\",\n    \"upper_inf\",\n    \"variance\",\n    \"width\",\n    \"width_bucket\",\n    \"xml_is_well_formed\",\n    \"xml_is_well_formed_content\",\n    \"xml_is_well_formed_document\",\n    \"xmlagg\",\n    \"xmlcomment\",\n    \"xmlconcat\",\n    \"xmlelement\",\n    \"xmlexists\",\n    \"xmlforest\",\n    \"xmlparse\",\n    \"xmlpi\",\n    \"xmlroot\",\n    \"xmlserialize\",\n    \"xpath\",\n    \"xpath_exists\"\n  ],\n  builtinVariables: [\n    // NOT SUPPORTED\n  ],\n  pseudoColumns: [\n    // NOT SUPPORTED\n  ],\n  tokenizer: {\n    root: [\n      { include: \"@comments\" },\n      { include: \"@whitespace\" },\n      { include: \"@pseudoColumns\" },\n      { include: \"@numbers\" },\n      { include: \"@strings\" },\n      { include: \"@complexIdentifiers\" },\n      { include: \"@scopes\" },\n      [/[;,.]/, \"delimiter\"],\n      [/[()]/, \"@brackets\"],\n      [\n        /[\\w@#$]+/,\n        {\n          cases: {\n            \"@keywords\": \"keyword\",\n            \"@operators\": \"operator\",\n            \"@builtinVariables\": \"predefined\",\n            \"@builtinFunctions\": \"predefined\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      [/[<>=!%&+\\-*/|~^]/, \"operator\"]\n    ],\n    whitespace: [[/\\s+/, \"white\"]],\n    comments: [\n      [/--+.*/, \"comment\"],\n      [/\\/\\*/, { token: \"comment.quote\", next: \"@comment\" }]\n    ],\n    comment: [\n      [/[^*/]+/, \"comment\"],\n      // Not supporting nested comments, as nested comments seem to not be standard?\n      // i.e. http://stackoverflow.com/questions/728172/are-there-multiline-comment-delimiters-in-sql-that-are-vendor-agnostic\n      // [/\\/\\*/, { token: 'comment.quote', next: '@push' }],    // nested comment not allowed :-(\n      [/\\*\\//, { token: \"comment.quote\", next: \"@pop\" }],\n      [/./, \"comment\"]\n    ],\n    pseudoColumns: [\n      [\n        /[$][A-Za-z_][\\w@#$]*/,\n        {\n          cases: {\n            \"@pseudoColumns\": \"predefined\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ]\n    ],\n    numbers: [\n      [/0[xX][0-9a-fA-F]*/, \"number\"],\n      [/[$][+-]*\\d*(\\.\\d*)?/, \"number\"],\n      [/((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][\\-+]?\\d+)?/, \"number\"]\n    ],\n    strings: [[/'/, { token: \"string\", next: \"@string\" }]],\n    string: [\n      [/[^']+/, \"string\"],\n      [/''/, \"string\"],\n      [/'/, { token: \"string\", next: \"@pop\" }]\n    ],\n    complexIdentifiers: [[/\"/, { token: \"identifier.quote\", next: \"@quotedIdentifier\" }]],\n    quotedIdentifier: [\n      [/[^\"]+/, \"identifier\"],\n      [/\"\"/, \"identifier\"],\n      [/\"/, { token: \"identifier.quote\", next: \"@pop\" }]\n    ],\n    scopes: [\n      // NOT SUPPORTED\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/restructuredtext/restructuredtext.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/restructuredtext/restructuredtext.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/restructuredtext/restructuredtext.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"restructuredtext\",\n  extensions: [\".rst\"],\n  aliases: [\"reStructuredText\", \"restructuredtext\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/restructuredtext/restructuredtext\"], resolve, reject);\n      });\n    } else {\n      return import(\"./restructuredtext.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/restructuredtext/restructuredtext.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/restructuredtext/restructuredtext.ts\nvar conf = {\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: \"<\", close: \">\", notIn: [\"string\"] }\n  ],\n  surroundingPairs: [\n    { open: \"(\", close: \")\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"`\", close: \"`\" }\n  ],\n  folding: {\n    markers: {\n      start: new RegExp(\"^\\\\s*<!--\\\\s*#?region\\\\b.*-->\"),\n      end: new RegExp(\"^\\\\s*<!--\\\\s*#?endregion\\\\b.*-->\")\n    }\n  }\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".rst\",\n  control: /[\\\\`*_\\[\\]{}()#+\\-\\.!]/,\n  escapes: /\\\\(?:@control)/,\n  empty: [\n    \"area\",\n    \"base\",\n    \"basefont\",\n    \"br\",\n    \"col\",\n    \"frame\",\n    \"hr\",\n    \"img\",\n    \"input\",\n    \"isindex\",\n    \"link\",\n    \"meta\",\n    \"param\"\n  ],\n  alphanumerics: /[A-Za-z0-9]/,\n  simpleRefNameWithoutBq: /(?:@alphanumerics[-_+:.]*@alphanumerics)+|(?:@alphanumerics+)/,\n  simpleRefName: /(?:`@phrase`|@simpleRefNameWithoutBq)/,\n  phrase: /@simpleRefNameWithoutBq(?:\\s@simpleRefNameWithoutBq)*/,\n  citationName: /[A-Za-z][A-Za-z0-9-_.]*/,\n  blockLiteralStart: /(?:[!\"#$%&'()*+,-./:;<=>?@\\[\\]^_`{|}~]|[\\s])/,\n  precedingChars: /(?:[ -:/'\"<([{])/,\n  followingChars: /(?:[ -.,:;!?/'\")\\]}>]|$)/,\n  punctuation: /(=|-|~|`|#|\"|\\^|\\+|\\*|:|\\.|'|_|\\+)/,\n  tokenizer: {\n    root: [\n      //sections\n      [/^(@punctuation{3,}$){1,1}?/, \"keyword\"],\n      //line-blocks\n      //No rules on it\n      //bullet-lists\n      [/^\\s*([\\*\\-+‣•]|[a-zA-Z0-9]+\\.|\\([a-zA-Z0-9]+\\)|[a-zA-Z0-9]+\\))\\s/, \"keyword\"],\n      //literal-blocks\n      [/([ ]::)\\s*$/, \"keyword\", \"@blankLineOfLiteralBlocks\"],\n      [/(::)\\s*$/, \"keyword\", \"@blankLineOfLiteralBlocks\"],\n      { include: \"@tables\" },\n      { include: \"@explicitMarkupBlocks\" },\n      { include: \"@inlineMarkup\" }\n    ],\n    explicitMarkupBlocks: [\n      //citations\n      { include: \"@citations\" },\n      //footnotes\n      { include: \"@footnotes\" },\n      //directives\n      [\n        /^(\\.\\.\\s)(@simpleRefName)(::\\s)(.*)$/,\n        [{ token: \"\", next: \"subsequentLines\" }, \"keyword\", \"\", \"\"]\n      ],\n      //hyperlink-targets\n      [\n        /^(\\.\\.)(\\s+)(_)(@simpleRefName)(:)(\\s+)(.*)/,\n        [{ token: \"\", next: \"hyperlinks\" }, \"\", \"\", \"string.link\", \"\", \"\", \"string.link\"]\n      ],\n      //anonymous-hyperlinks\n      [\n        /^((?:(?:\\.\\.)(?:\\s+))?)(__)(:)(\\s+)(.*)/,\n        [{ token: \"\", next: \"subsequentLines\" }, \"\", \"\", \"\", \"string.link\"]\n      ],\n      [/^(__\\s+)(.+)/, [\"\", \"string.link\"]],\n      //substitution-definitions\n      [\n        /^(\\.\\.)( \\|)([^| ]+[^|]*[^| ]*)(\\| )(@simpleRefName)(:: .*)/,\n        [{ token: \"\", next: \"subsequentLines\" }, \"\", \"string.link\", \"\", \"keyword\", \"\"],\n        \"@rawBlocks\"\n      ],\n      [/(\\|)([^| ]+[^|]*[^| ]*)(\\|_{0,2})/, [\"\", \"string.link\", \"\"]],\n      //comments\n      [/^(\\.\\.)([ ].*)$/, [{ token: \"\", next: \"@comments\" }, \"comment\"]]\n    ],\n    inlineMarkup: [\n      { include: \"@citationsReference\" },\n      { include: \"@footnotesReference\" },\n      //hyperlink-references\n      [/(@simpleRefName)(_{1,2})/, [\"string.link\", \"\"]],\n      //embedded-uris-and-aliases\n      [/(`)([^<`]+\\s+)(<)(.*)(>)(`)(_)/, [\"\", \"string.link\", \"\", \"string.link\", \"\", \"\", \"\"]],\n      //emphasis\n      [/\\*\\*([^\\\\*]|\\*(?!\\*))+\\*\\*/, \"strong\"],\n      [/\\*[^*]+\\*/, \"emphasis\"],\n      //inline-literals\n      [/(``)((?:[^`]|\\`(?!`))+)(``)/, [\"\", \"keyword\", \"\"]],\n      [/(__\\s+)(.+)/, [\"\", \"keyword\"]],\n      //interpreted-text\n      [/(:)((?:@simpleRefNameWithoutBq)?)(:`)([^`]+)(`)/, [\"\", \"keyword\", \"\", \"\", \"\"]],\n      [/(`)([^`]+)(`:)((?:@simpleRefNameWithoutBq)?)(:)/, [\"\", \"\", \"\", \"keyword\", \"\"]],\n      [/(`)([^`]+)(`)/, \"\"],\n      //inline-internal-targets\n      [/(_`)(@phrase)(`)/, [\"\", \"string.link\", \"\"]]\n    ],\n    citations: [\n      [\n        /^(\\.\\.\\s+\\[)((?:@citationName))(\\]\\s+)(.*)/,\n        [{ token: \"\", next: \"@subsequentLines\" }, \"string.link\", \"\", \"\"]\n      ]\n    ],\n    citationsReference: [[/(\\[)(@citationName)(\\]_)/, [\"\", \"string.link\", \"\"]]],\n    footnotes: [\n      [\n        /^(\\.\\.\\s+\\[)((?:[0-9]+))(\\]\\s+.*)/,\n        [{ token: \"\", next: \"@subsequentLines\" }, \"string.link\", \"\"]\n      ],\n      [\n        /^(\\.\\.\\s+\\[)((?:#@simpleRefName?))(\\]\\s+)(.*)/,\n        [{ token: \"\", next: \"@subsequentLines\" }, \"string.link\", \"\", \"\"]\n      ],\n      [\n        /^(\\.\\.\\s+\\[)((?:\\*))(\\]\\s+)(.*)/,\n        [{ token: \"\", next: \"@subsequentLines\" }, \"string.link\", \"\", \"\"]\n      ]\n    ],\n    footnotesReference: [\n      [/(\\[)([0-9]+)(\\])(_)/, [\"\", \"string.link\", \"\", \"\"]],\n      [/(\\[)(#@simpleRefName?)(\\])(_)/, [\"\", \"string.link\", \"\", \"\"]],\n      [/(\\[)(\\*)(\\])(_)/, [\"\", \"string.link\", \"\", \"\"]]\n    ],\n    blankLineOfLiteralBlocks: [\n      [/^$/, \"\", \"@subsequentLinesOfLiteralBlocks\"],\n      [/^.*$/, \"\", \"@pop\"]\n    ],\n    subsequentLinesOfLiteralBlocks: [\n      [/(@blockLiteralStart+)(.*)/, [\"keyword\", \"\"]],\n      [/^(?!blockLiteralStart)/, \"\", \"@popall\"]\n    ],\n    subsequentLines: [\n      [/^[\\s]+.*/, \"\"],\n      [/^(?!\\s)/, \"\", \"@pop\"]\n    ],\n    hyperlinks: [\n      [/^[\\s]+.*/, \"string.link\"],\n      [/^(?!\\s)/, \"\", \"@pop\"]\n    ],\n    comments: [\n      [/^[\\s]+.*/, \"comment\"],\n      [/^(?!\\s)/, \"\", \"@pop\"]\n    ],\n    tables: [\n      [/\\+-[+-]+/, \"keyword\"],\n      [/\\+=[+=]+/, \"keyword\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/ruby/ruby.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/ruby/ruby.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/ruby/ruby.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"ruby\",\n  extensions: [\".rb\", \".rbx\", \".rjs\", \".gemspec\", \".pp\"],\n  filenames: [\"rakefile\", \"Gemfile\"],\n  aliases: [\"Ruby\", \"rb\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/ruby/ruby\"], resolve, reject);\n      });\n    } else {\n      return import(\"./ruby.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/ruby/ruby.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/ruby/ruby.ts\nvar conf = {\n  comments: {\n    lineComment: \"#\",\n    blockComment: [\"=begin\", \"=end\"]\n  },\n  brackets: [\n    [\"(\", \")\"],\n    [\"{\", \"}\"],\n    [\"[\", \"]\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  indentationRules: {\n    increaseIndentPattern: new RegExp(\n      `^\\\\s*((begin|class|(private|protected)\\\\s+def|def|else|elsif|ensure|for|if|module|rescue|unless|until|when|while|case)|([^#]*\\\\sdo\\\\b)|([^#]*=\\\\s*(case|if|unless)))\\\\b([^#\\\\{;]|(\"|'|/).*\\\\4)*(#.*)?$`\n    ),\n    decreaseIndentPattern: new RegExp(\n      \"^\\\\s*([}\\\\]]([,)]?\\\\s*(#|$)|\\\\.[a-zA-Z_]\\\\w*\\\\b)|(end|rescue|ensure|else|elsif|when)\\\\b)\"\n    )\n  }\n};\nvar language = {\n  tokenPostfix: \".ruby\",\n  keywords: [\n    \"__LINE__\",\n    \"__ENCODING__\",\n    \"__FILE__\",\n    \"BEGIN\",\n    \"END\",\n    \"alias\",\n    \"and\",\n    \"begin\",\n    \"break\",\n    \"case\",\n    \"class\",\n    \"def\",\n    \"defined?\",\n    \"do\",\n    \"else\",\n    \"elsif\",\n    \"end\",\n    \"ensure\",\n    \"for\",\n    \"false\",\n    \"if\",\n    \"in\",\n    \"module\",\n    \"next\",\n    \"nil\",\n    \"not\",\n    \"or\",\n    \"redo\",\n    \"rescue\",\n    \"retry\",\n    \"return\",\n    \"self\",\n    \"super\",\n    \"then\",\n    \"true\",\n    \"undef\",\n    \"unless\",\n    \"until\",\n    \"when\",\n    \"while\",\n    \"yield\"\n  ],\n  keywordops: [\"::\", \"..\", \"...\", \"?\", \":\", \"=>\"],\n  builtins: [\n    \"require\",\n    \"public\",\n    \"private\",\n    \"include\",\n    \"extend\",\n    \"attr_reader\",\n    \"protected\",\n    \"private_class_method\",\n    \"protected_class_method\",\n    \"new\"\n  ],\n  // these are closed by 'end' (if, while and until are handled separately)\n  declarations: [\n    \"module\",\n    \"class\",\n    \"def\",\n    \"case\",\n    \"do\",\n    \"begin\",\n    \"for\",\n    \"if\",\n    \"while\",\n    \"until\",\n    \"unless\"\n  ],\n  linedecls: [\"def\", \"case\", \"do\", \"begin\", \"for\", \"if\", \"while\", \"until\", \"unless\"],\n  operators: [\n    \"^\",\n    \"&\",\n    \"|\",\n    \"<=>\",\n    \"==\",\n    \"===\",\n    \"!~\",\n    \"=~\",\n    \">\",\n    \">=\",\n    \"<\",\n    \"<=\",\n    \"<<\",\n    \">>\",\n    \"+\",\n    \"-\",\n    \"*\",\n    \"/\",\n    \"%\",\n    \"**\",\n    \"~\",\n    \"+@\",\n    \"-@\",\n    \"[]\",\n    \"[]=\",\n    \"`\",\n    \"+=\",\n    \"-=\",\n    \"*=\",\n    \"**=\",\n    \"/=\",\n    \"^=\",\n    \"%=\",\n    \"<<=\",\n    \">>=\",\n    \"&=\",\n    \"&&=\",\n    \"||=\",\n    \"|=\"\n  ],\n  brackets: [\n    { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" },\n    { open: \"{\", close: \"}\", token: \"delimiter.curly\" },\n    { open: \"[\", close: \"]\", token: \"delimiter.square\" }\n  ],\n  // we include these common regular expressions\n  symbols: /[=><!~?:&|+\\-*\\/\\^%\\.]+/,\n  // escape sequences\n  escape: /(?:[abefnrstv\\\\\"'\\n\\r]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2}|u[0-9A-Fa-f]{4})/,\n  escapes: /\\\\(?:C\\-(@escape|.)|c(@escape|.)|@escape)/,\n  decpart: /\\d(_?\\d)*/,\n  decimal: /0|@decpart/,\n  delim: /[^a-zA-Z0-9\\s\\n\\r]/,\n  heredelim: /(?:\\w+|'[^']*'|\"[^\"]*\"|`[^`]*`)/,\n  regexpctl: /[(){}\\[\\]\\$\\^|\\-*+?\\.]/,\n  regexpesc: /\\\\(?:[AzZbBdDfnrstvwWn0\\\\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})?/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    // Main entry.\n    // root.<decl> where decl is the current opening declaration (like 'class')\n    root: [\n      // identifiers and keywords\n      // most complexity here is due to matching 'end' correctly with declarations.\n      // We distinguish a declaration that comes first on a line, versus declarations further on a line (which are most likey modifiers)\n      [\n        /^(\\s*)([a-z_]\\w*[!?=]?)/,\n        [\n          \"white\",\n          {\n            cases: {\n              \"for|until|while\": {\n                token: \"keyword.$2\",\n                next: \"@dodecl.$2\"\n              },\n              \"@declarations\": {\n                token: \"keyword.$2\",\n                next: \"@root.$2\"\n              },\n              end: { token: \"keyword.$S2\", next: \"@pop\" },\n              \"@keywords\": \"keyword\",\n              \"@builtins\": \"predefined\",\n              \"@default\": \"identifier\"\n            }\n          }\n        ]\n      ],\n      [\n        /[a-z_]\\w*[!?=]?/,\n        {\n          cases: {\n            \"if|unless|while|until\": {\n              token: \"keyword.$0x\",\n              next: \"@modifier.$0x\"\n            },\n            for: { token: \"keyword.$2\", next: \"@dodecl.$2\" },\n            \"@linedecls\": { token: \"keyword.$0\", next: \"@root.$0\" },\n            end: { token: \"keyword.$S2\", next: \"@pop\" },\n            \"@keywords\": \"keyword\",\n            \"@builtins\": \"predefined\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      [/[A-Z][\\w]*[!?=]?/, \"constructor.identifier\"],\n      // constant\n      [/\\$[\\w]*/, \"global.constant\"],\n      // global\n      [/@[\\w]*/, \"namespace.instance.identifier\"],\n      // instance\n      [/@@@[\\w]*/, \"namespace.class.identifier\"],\n      // class\n      // here document\n      [/<<[-~](@heredelim).*/, { token: \"string.heredoc.delimiter\", next: \"@heredoc.$1\" }],\n      [/[ \\t\\r\\n]+<<(@heredelim).*/, { token: \"string.heredoc.delimiter\", next: \"@heredoc.$1\" }],\n      [/^<<(@heredelim).*/, { token: \"string.heredoc.delimiter\", next: \"@heredoc.$1\" }],\n      // whitespace\n      { include: \"@whitespace\" },\n      // strings\n      [/\"/, { token: \"string.d.delim\", next: '@dstring.d.\"' }],\n      [/'/, { token: \"string.sq.delim\", next: \"@sstring.sq\" }],\n      // % literals. For efficiency, rematch in the 'pstring' state\n      [/%([rsqxwW]|Q?)/, { token: \"@rematch\", next: \"pstring\" }],\n      // commands and symbols\n      [/`/, { token: \"string.x.delim\", next: \"@dstring.x.`\" }],\n      [/:(\\w|[$@])\\w*[!?=]?/, \"string.s\"],\n      [/:\"/, { token: \"string.s.delim\", next: '@dstring.s.\"' }],\n      [/:'/, { token: \"string.s.delim\", next: \"@sstring.s\" }],\n      // regular expressions. Lookahead for a (not escaped) closing forwardslash on the same line\n      [/\\/(?=(\\\\\\/|[^\\/\\n])+\\/)/, { token: \"regexp.delim\", next: \"@regexp\" }],\n      // delimiters and operators\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      [\n        /@symbols/,\n        {\n          cases: {\n            \"@keywordops\": \"keyword\",\n            \"@operators\": \"operator\",\n            \"@default\": \"\"\n          }\n        }\n      ],\n      [/[;,]/, \"delimiter\"],\n      // numbers\n      [/0[xX][0-9a-fA-F](_?[0-9a-fA-F])*/, \"number.hex\"],\n      [/0[_oO][0-7](_?[0-7])*/, \"number.octal\"],\n      [/0[bB][01](_?[01])*/, \"number.binary\"],\n      [/0[dD]@decpart/, \"number\"],\n      [\n        /@decimal((\\.@decpart)?([eE][\\-+]?@decpart)?)/,\n        {\n          cases: {\n            $1: \"number.float\",\n            \"@default\": \"number\"\n          }\n        }\n      ]\n    ],\n    // used to not treat a 'do' as a block opener if it occurs on the same\n    // line as a 'do' statement: 'while|until|for'\n    // dodecl.<decl> where decl is the declarations started, like 'while'\n    dodecl: [\n      [/^/, { token: \"\", switchTo: \"@root.$S2\" }],\n      // get out of do-skipping mode on a new line\n      [\n        /[a-z_]\\w*[!?=]?/,\n        {\n          cases: {\n            end: { token: \"keyword.$S2\", next: \"@pop\" },\n            // end on same line\n            do: { token: \"keyword\", switchTo: \"@root.$S2\" },\n            // do on same line: not an open bracket here\n            \"@linedecls\": {\n              token: \"@rematch\",\n              switchTo: \"@root.$S2\"\n            },\n            // other declaration on same line: rematch\n            \"@keywords\": \"keyword\",\n            \"@builtins\": \"predefined\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      { include: \"@root\" }\n    ],\n    // used to prevent potential modifiers ('if|until|while|unless') to match\n    // with 'end' keywords.\n    // modifier.<decl>x where decl is the declaration starter, like 'if'\n    modifier: [\n      [/^/, \"\", \"@pop\"],\n      // it was a modifier: get out of modifier mode on a new line\n      [\n        /[a-z_]\\w*[!?=]?/,\n        {\n          cases: {\n            end: { token: \"keyword.$S2\", next: \"@pop\" },\n            // end on same line\n            \"then|else|elsif|do\": {\n              token: \"keyword\",\n              switchTo: \"@root.$S2\"\n            },\n            // real declaration and not a modifier\n            \"@linedecls\": {\n              token: \"@rematch\",\n              switchTo: \"@root.$S2\"\n            },\n            // other declaration => not a modifier\n            \"@keywords\": \"keyword\",\n            \"@builtins\": \"predefined\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      { include: \"@root\" }\n    ],\n    // single quote strings (also used for symbols)\n    // sstring.<kind>  where kind is 'sq' (single quote) or 's' (symbol)\n    sstring: [\n      [/[^\\\\']+/, \"string.$S2\"],\n      [/\\\\\\\\|\\\\'|\\\\$/, \"string.$S2.escape\"],\n      [/\\\\./, \"string.$S2.invalid\"],\n      [/'/, { token: \"string.$S2.delim\", next: \"@pop\" }]\n    ],\n    // double quoted \"string\".\n    // dstring.<kind>.<delim> where kind is 'd' (double quoted), 'x' (command), or 's' (symbol)\n    // and delim is the ending delimiter (\" or `)\n    dstring: [\n      [/[^\\\\`\"#]+/, \"string.$S2\"],\n      [/#/, \"string.$S2.escape\", \"@interpolated\"],\n      [/\\\\$/, \"string.$S2.escape\"],\n      [/@escapes/, \"string.$S2.escape\"],\n      [/\\\\./, \"string.$S2.escape.invalid\"],\n      [\n        /[`\"]/,\n        {\n          cases: {\n            \"$#==$S3\": { token: \"string.$S2.delim\", next: \"@pop\" },\n            \"@default\": \"string.$S2\"\n          }\n        }\n      ]\n    ],\n    // literal documents\n    // heredoc.<close> where close is the closing delimiter\n    heredoc: [\n      [\n        /^(\\s*)(@heredelim)$/,\n        {\n          cases: {\n            \"$2==$S2\": [\"string.heredoc\", { token: \"string.heredoc.delimiter\", next: \"@pop\" }],\n            \"@default\": [\"string.heredoc\", \"string.heredoc\"]\n          }\n        }\n      ],\n      [/.*/, \"string.heredoc\"]\n    ],\n    // interpolated sequence\n    interpolated: [\n      [/\\$\\w*/, \"global.constant\", \"@pop\"],\n      [/@\\w*/, \"namespace.class.identifier\", \"@pop\"],\n      [/@@@\\w*/, \"namespace.instance.identifier\", \"@pop\"],\n      [\n        /[{]/,\n        {\n          token: \"string.escape.curly\",\n          switchTo: \"@interpolated_compound\"\n        }\n      ],\n      [\"\", \"\", \"@pop\"]\n      // just a # is interpreted as a #\n    ],\n    // any code\n    interpolated_compound: [\n      [/[}]/, { token: \"string.escape.curly\", next: \"@pop\" }],\n      { include: \"@root\" }\n    ],\n    // %r quoted regexp\n    // pregexp.<open>.<close> where open/close are the open/close delimiter\n    pregexp: [\n      { include: \"@whitespace\" },\n      // turns out that you can quote using regex control characters, aargh!\n      // for example; %r|kgjgaj| is ok (even though | is used for alternation)\n      // so, we need to match those first\n      [\n        /[^\\(\\{\\[\\\\]/,\n        {\n          cases: {\n            \"$#==$S3\": { token: \"regexp.delim\", next: \"@pop\" },\n            \"$#==$S2\": { token: \"regexp.delim\", next: \"@push\" },\n            // nested delimiters are allowed..\n            \"~[)}\\\\]]\": \"@brackets.regexp.escape.control\",\n            \"~@regexpctl\": \"regexp.escape.control\",\n            \"@default\": \"regexp\"\n          }\n        }\n      ],\n      { include: \"@regexcontrol\" }\n    ],\n    // We match regular expression quite precisely\n    regexp: [\n      { include: \"@regexcontrol\" },\n      [/[^\\\\\\/]/, \"regexp\"],\n      [\"/[ixmp]*\", { token: \"regexp.delim\" }, \"@pop\"]\n    ],\n    regexcontrol: [\n      [\n        /(\\{)(\\d+(?:,\\d*)?)(\\})/,\n        [\n          \"@brackets.regexp.escape.control\",\n          \"regexp.escape.control\",\n          \"@brackets.regexp.escape.control\"\n        ]\n      ],\n      [\n        /(\\[)(\\^?)/,\n        [\"@brackets.regexp.escape.control\", { token: \"regexp.escape.control\", next: \"@regexrange\" }]\n      ],\n      [/(\\()(\\?[:=!])/, [\"@brackets.regexp.escape.control\", \"regexp.escape.control\"]],\n      [/\\(\\?#/, { token: \"regexp.escape.control\", next: \"@regexpcomment\" }],\n      [/[()]/, \"@brackets.regexp.escape.control\"],\n      [/@regexpctl/, \"regexp.escape.control\"],\n      [/\\\\$/, \"regexp.escape\"],\n      [/@regexpesc/, \"regexp.escape\"],\n      [/\\\\\\./, \"regexp.invalid\"],\n      [/#/, \"regexp.escape\", \"@interpolated\"]\n    ],\n    regexrange: [\n      [/-/, \"regexp.escape.control\"],\n      [/\\^/, \"regexp.invalid\"],\n      [/\\\\$/, \"regexp.escape\"],\n      [/@regexpesc/, \"regexp.escape\"],\n      [/[^\\]]/, \"regexp\"],\n      [/\\]/, \"@brackets.regexp.escape.control\", \"@pop\"]\n    ],\n    regexpcomment: [\n      [/[^)]+/, \"comment\"],\n      [/\\)/, { token: \"regexp.escape.control\", next: \"@pop\" }]\n    ],\n    // % quoted strings\n    // A bit repetitive since we need to often special case the kind of ending delimiter\n    pstring: [\n      [/%([qws])\\(/, { token: \"string.$1.delim\", switchTo: \"@qstring.$1.(.)\" }],\n      [/%([qws])\\[/, { token: \"string.$1.delim\", switchTo: \"@qstring.$1.[.]\" }],\n      [/%([qws])\\{/, { token: \"string.$1.delim\", switchTo: \"@qstring.$1.{.}\" }],\n      [/%([qws])</, { token: \"string.$1.delim\", switchTo: \"@qstring.$1.<.>\" }],\n      [/%([qws])(@delim)/, { token: \"string.$1.delim\", switchTo: \"@qstring.$1.$2.$2\" }],\n      [/%r\\(/, { token: \"regexp.delim\", switchTo: \"@pregexp.(.)\" }],\n      [/%r\\[/, { token: \"regexp.delim\", switchTo: \"@pregexp.[.]\" }],\n      [/%r\\{/, { token: \"regexp.delim\", switchTo: \"@pregexp.{.}\" }],\n      [/%r</, { token: \"regexp.delim\", switchTo: \"@pregexp.<.>\" }],\n      [/%r(@delim)/, { token: \"regexp.delim\", switchTo: \"@pregexp.$1.$1\" }],\n      [/%(x|W|Q?)\\(/, { token: \"string.$1.delim\", switchTo: \"@qqstring.$1.(.)\" }],\n      [/%(x|W|Q?)\\[/, { token: \"string.$1.delim\", switchTo: \"@qqstring.$1.[.]\" }],\n      [/%(x|W|Q?)\\{/, { token: \"string.$1.delim\", switchTo: \"@qqstring.$1.{.}\" }],\n      [/%(x|W|Q?)</, { token: \"string.$1.delim\", switchTo: \"@qqstring.$1.<.>\" }],\n      [/%(x|W|Q?)(@delim)/, { token: \"string.$1.delim\", switchTo: \"@qqstring.$1.$2.$2\" }],\n      [/%([rqwsxW]|Q?)./, { token: \"invalid\", next: \"@pop\" }],\n      // recover\n      [/./, { token: \"invalid\", next: \"@pop\" }]\n      // recover\n    ],\n    // non-expanded quoted string.\n    // qstring.<kind>.<open>.<close>\n    //  kind = q|w|s  (single quote, array, symbol)\n    //  open = open delimiter\n    //  close = close delimiter\n    qstring: [\n      [/\\\\$/, \"string.$S2.escape\"],\n      [/\\\\./, \"string.$S2.escape\"],\n      [\n        /./,\n        {\n          cases: {\n            \"$#==$S4\": { token: \"string.$S2.delim\", next: \"@pop\" },\n            \"$#==$S3\": { token: \"string.$S2.delim\", next: \"@push\" },\n            // nested delimiters are allowed..\n            \"@default\": \"string.$S2\"\n          }\n        }\n      ]\n    ],\n    // expanded quoted string.\n    // qqstring.<kind>.<open>.<close>\n    //  kind = Q|W|x  (double quote, array, command)\n    //  open = open delimiter\n    //  close = close delimiter\n    qqstring: [[/#/, \"string.$S2.escape\", \"@interpolated\"], { include: \"@qstring\" }],\n    // whitespace & comments\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"\"],\n      [/^\\s*=begin\\b/, \"comment\", \"@comment\"],\n      [/#.*$/, \"comment\"]\n    ],\n    comment: [\n      [/[^=]+/, \"comment\"],\n      [/^\\s*=begin\\b/, \"comment.invalid\"],\n      // nested comment\n      [/^\\s*=end\\b.*/, \"comment\", \"@pop\"],\n      [/[=]/, \"comment\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/rust/rust.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/rust/rust.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/rust/rust.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"rust\",\n  extensions: [\".rs\", \".rlib\"],\n  aliases: [\"Rust\", \"rust\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/rust/rust\"], resolve, reject);\n      });\n    } else {\n      return import(\"./rust.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/rust/rust.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/rust/rust.ts\nvar conf = {\n  comments: {\n    lineComment: \"//\",\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"[\", close: \"]\" },\n    { open: \"{\", close: \"}\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"', notIn: [\"string\"] }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  folding: {\n    markers: {\n      start: new RegExp(\"^\\\\s*#pragma\\\\s+region\\\\b\"),\n      end: new RegExp(\"^\\\\s*#pragma\\\\s+endregion\\\\b\")\n    }\n  }\n};\nvar language = {\n  tokenPostfix: \".rust\",\n  defaultToken: \"invalid\",\n  keywords: [\n    \"as\",\n    \"async\",\n    \"await\",\n    \"box\",\n    \"break\",\n    \"const\",\n    \"continue\",\n    \"crate\",\n    \"dyn\",\n    \"else\",\n    \"enum\",\n    \"extern\",\n    \"false\",\n    \"fn\",\n    \"for\",\n    \"if\",\n    \"impl\",\n    \"in\",\n    \"let\",\n    \"loop\",\n    \"match\",\n    \"mod\",\n    \"move\",\n    \"mut\",\n    \"pub\",\n    \"ref\",\n    \"return\",\n    \"self\",\n    \"static\",\n    \"struct\",\n    \"super\",\n    \"trait\",\n    \"true\",\n    \"try\",\n    \"type\",\n    \"unsafe\",\n    \"use\",\n    \"where\",\n    \"while\",\n    \"catch\",\n    \"default\",\n    \"union\",\n    \"static\",\n    \"abstract\",\n    \"alignof\",\n    \"become\",\n    \"do\",\n    \"final\",\n    \"macro\",\n    \"offsetof\",\n    \"override\",\n    \"priv\",\n    \"proc\",\n    \"pure\",\n    \"sizeof\",\n    \"typeof\",\n    \"unsized\",\n    \"virtual\",\n    \"yield\"\n  ],\n  typeKeywords: [\n    \"Self\",\n    \"m32\",\n    \"m64\",\n    \"m128\",\n    \"f80\",\n    \"f16\",\n    \"f128\",\n    \"int\",\n    \"uint\",\n    \"float\",\n    \"char\",\n    \"bool\",\n    \"u8\",\n    \"u16\",\n    \"u32\",\n    \"u64\",\n    \"f32\",\n    \"f64\",\n    \"i8\",\n    \"i16\",\n    \"i32\",\n    \"i64\",\n    \"str\",\n    \"Option\",\n    \"Either\",\n    \"c_float\",\n    \"c_double\",\n    \"c_void\",\n    \"FILE\",\n    \"fpos_t\",\n    \"DIR\",\n    \"dirent\",\n    \"c_char\",\n    \"c_schar\",\n    \"c_uchar\",\n    \"c_short\",\n    \"c_ushort\",\n    \"c_int\",\n    \"c_uint\",\n    \"c_long\",\n    \"c_ulong\",\n    \"size_t\",\n    \"ptrdiff_t\",\n    \"clock_t\",\n    \"time_t\",\n    \"c_longlong\",\n    \"c_ulonglong\",\n    \"intptr_t\",\n    \"uintptr_t\",\n    \"off_t\",\n    \"dev_t\",\n    \"ino_t\",\n    \"pid_t\",\n    \"mode_t\",\n    \"ssize_t\"\n  ],\n  constants: [\"true\", \"false\", \"Some\", \"None\", \"Left\", \"Right\", \"Ok\", \"Err\"],\n  supportConstants: [\n    \"EXIT_FAILURE\",\n    \"EXIT_SUCCESS\",\n    \"RAND_MAX\",\n    \"EOF\",\n    \"SEEK_SET\",\n    \"SEEK_CUR\",\n    \"SEEK_END\",\n    \"_IOFBF\",\n    \"_IONBF\",\n    \"_IOLBF\",\n    \"BUFSIZ\",\n    \"FOPEN_MAX\",\n    \"FILENAME_MAX\",\n    \"L_tmpnam\",\n    \"TMP_MAX\",\n    \"O_RDONLY\",\n    \"O_WRONLY\",\n    \"O_RDWR\",\n    \"O_APPEND\",\n    \"O_CREAT\",\n    \"O_EXCL\",\n    \"O_TRUNC\",\n    \"S_IFIFO\",\n    \"S_IFCHR\",\n    \"S_IFBLK\",\n    \"S_IFDIR\",\n    \"S_IFREG\",\n    \"S_IFMT\",\n    \"S_IEXEC\",\n    \"S_IWRITE\",\n    \"S_IREAD\",\n    \"S_IRWXU\",\n    \"S_IXUSR\",\n    \"S_IWUSR\",\n    \"S_IRUSR\",\n    \"F_OK\",\n    \"R_OK\",\n    \"W_OK\",\n    \"X_OK\",\n    \"STDIN_FILENO\",\n    \"STDOUT_FILENO\",\n    \"STDERR_FILENO\"\n  ],\n  supportMacros: [\n    \"format!\",\n    \"print!\",\n    \"println!\",\n    \"panic!\",\n    \"format_args!\",\n    \"unreachable!\",\n    \"write!\",\n    \"writeln!\"\n  ],\n  operators: [\n    \"!\",\n    \"!=\",\n    \"%\",\n    \"%=\",\n    \"&\",\n    \"&=\",\n    \"&&\",\n    \"*\",\n    \"*=\",\n    \"+\",\n    \"+=\",\n    \"-\",\n    \"-=\",\n    \"->\",\n    \".\",\n    \"..\",\n    \"...\",\n    \"/\",\n    \"/=\",\n    \":\",\n    \";\",\n    \"<<\",\n    \"<<=\",\n    \"<\",\n    \"<=\",\n    \"=\",\n    \"==\",\n    \"=>\",\n    \">\",\n    \">=\",\n    \">>\",\n    \">>=\",\n    \"@\",\n    \"^\",\n    \"^=\",\n    \"|\",\n    \"|=\",\n    \"||\",\n    \"_\",\n    \"?\",\n    \"#\"\n  ],\n  escapes: /\\\\([nrt0\\\"''\\\\]|x\\h{2}|u\\{\\h{1,6}\\})/,\n  delimiters: /[,]/,\n  symbols: /[\\#\\!\\%\\&\\*\\+\\-\\.\\/\\:\\;\\<\\=\\>\\@\\^\\|_\\?]+/,\n  intSuffixes: /[iu](8|16|32|64|128|size)/,\n  floatSuffixes: /f(32|64)/,\n  tokenizer: {\n    root: [\n      // Raw string literals\n      [/r(#*)\"/, { token: \"string.quote\", bracket: \"@open\", next: \"@stringraw.$1\" }],\n      [\n        /[a-zA-Z][a-zA-Z0-9_]*!?|_[a-zA-Z0-9_]+/,\n        {\n          cases: {\n            \"@typeKeywords\": \"keyword.type\",\n            \"@keywords\": \"keyword\",\n            \"@supportConstants\": \"keyword\",\n            \"@supportMacros\": \"keyword\",\n            \"@constants\": \"keyword\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      // Designator\n      [/\\$/, \"identifier\"],\n      // Lifetime annotations\n      [/'[a-zA-Z_][a-zA-Z0-9_]*(?=[^\\'])/, \"identifier\"],\n      // Byte literal\n      [/'(\\S|@escapes)'/, \"string.byteliteral\"],\n      // Strings\n      [/\"/, { token: \"string.quote\", bracket: \"@open\", next: \"@string\" }],\n      { include: \"@numbers\" },\n      // Whitespace + comments\n      { include: \"@whitespace\" },\n      [\n        /@delimiters/,\n        {\n          cases: {\n            \"@keywords\": \"keyword\",\n            \"@default\": \"delimiter\"\n          }\n        }\n      ],\n      [/[{}()\\[\\]<>]/, \"@brackets\"],\n      [/@symbols/, { cases: { \"@operators\": \"operator\", \"@default\": \"\" } }]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"white\"],\n      [/\\/\\*/, \"comment\", \"@comment\"],\n      [/\\/\\/.*$/, \"comment\"]\n    ],\n    comment: [\n      [/[^\\/*]+/, \"comment\"],\n      [/\\/\\*/, \"comment\", \"@push\"],\n      [\"\\\\*/\", \"comment\", \"@pop\"],\n      [/[\\/*]/, \"comment\"]\n    ],\n    string: [\n      [/[^\\\\\"]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/\"/, { token: \"string.quote\", bracket: \"@close\", next: \"@pop\" }]\n    ],\n    stringraw: [\n      [/[^\"#]+/, { token: \"string\" }],\n      [\n        /\"(#*)/,\n        {\n          cases: {\n            \"$1==$S2\": { token: \"string.quote\", bracket: \"@close\", next: \"@pop\" },\n            \"@default\": { token: \"string\" }\n          }\n        }\n      ],\n      [/[\"#]/, { token: \"string\" }]\n    ],\n    numbers: [\n      //Octal\n      [/(0o[0-7_]+)(@intSuffixes)?/, { token: \"number\" }],\n      //Binary\n      [/(0b[0-1_]+)(@intSuffixes)?/, { token: \"number\" }],\n      //Exponent\n      [/[\\d][\\d_]*(\\.[\\d][\\d_]*)?[eE][+-][\\d_]+(@floatSuffixes)?/, { token: \"number\" }],\n      //Float\n      [/\\b(\\d\\.?[\\d_]*)(@floatSuffixes)?\\b/, { token: \"number\" }],\n      //Hexadecimal\n      [/(0x[\\da-fA-F]+)_?(@intSuffixes)?/, { token: \"number\" }],\n      //Integer\n      [/[\\d][\\d_]*(@intSuffixes?)?/, { token: \"number\" }]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/sb/sb.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/sb/sb.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/sb/sb.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"sb\",\n  extensions: [\".sb\"],\n  aliases: [\"Small Basic\", \"sb\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/sb/sb\"], resolve, reject);\n      });\n    } else {\n      return import(\"./sb.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/sb/sb.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/sb/sb.ts\nvar conf = {\n  comments: {\n    lineComment: \"'\"\n  },\n  brackets: [\n    [\"(\", \")\"],\n    [\"[\", \"]\"],\n    [\"If\", \"EndIf\"],\n    [\"While\", \"EndWhile\"],\n    [\"For\", \"EndFor\"],\n    [\"Sub\", \"EndSub\"]\n  ],\n  autoClosingPairs: [\n    { open: '\"', close: '\"', notIn: [\"string\", \"comment\"] },\n    { open: \"(\", close: \")\", notIn: [\"string\", \"comment\"] },\n    { open: \"[\", close: \"]\", notIn: [\"string\", \"comment\"] }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".sb\",\n  ignoreCase: true,\n  brackets: [\n    { token: \"delimiter.array\", open: \"[\", close: \"]\" },\n    { token: \"delimiter.parenthesis\", open: \"(\", close: \")\" },\n    // Special bracket statement pairs\n    { token: \"keyword.tag-if\", open: \"If\", close: \"EndIf\" },\n    { token: \"keyword.tag-while\", open: \"While\", close: \"EndWhile\" },\n    { token: \"keyword.tag-for\", open: \"For\", close: \"EndFor\" },\n    { token: \"keyword.tag-sub\", open: \"Sub\", close: \"EndSub\" }\n  ],\n  keywords: [\n    \"Else\",\n    \"ElseIf\",\n    \"EndFor\",\n    \"EndIf\",\n    \"EndSub\",\n    \"EndWhile\",\n    \"For\",\n    \"Goto\",\n    \"If\",\n    \"Step\",\n    \"Sub\",\n    \"Then\",\n    \"To\",\n    \"While\"\n  ],\n  tagwords: [\"If\", \"Sub\", \"While\", \"For\"],\n  operators: [\">\", \"<\", \"<>\", \"<=\", \">=\", \"And\", \"Or\", \"+\", \"-\", \"*\", \"/\", \"=\"],\n  // we include these common regular expressions\n  identifier: /[a-zA-Z_][\\w]*/,\n  symbols: /[=><:+\\-*\\/%\\.,]+/,\n  escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      // whitespace\n      { include: \"@whitespace\" },\n      // classes\n      [/(@identifier)(?=[.])/, \"type\"],\n      // identifiers, tagwords, and keywords\n      [\n        /@identifier/,\n        {\n          cases: {\n            \"@keywords\": { token: \"keyword.$0\" },\n            \"@operators\": \"operator\",\n            \"@default\": \"variable.name\"\n          }\n        }\n      ],\n      // methods, properties, and events\n      [\n        /([.])(@identifier)/,\n        {\n          cases: {\n            $2: [\"delimiter\", \"type.member\"],\n            \"@default\": \"\"\n          }\n        }\n      ],\n      // numbers\n      [/\\d*\\.\\d+/, \"number.float\"],\n      [/\\d+/, \"number\"],\n      // delimiters and operators\n      [/[()\\[\\]]/, \"@brackets\"],\n      [\n        /@symbols/,\n        {\n          cases: {\n            \"@operators\": \"operator\",\n            \"@default\": \"delimiter\"\n          }\n        }\n      ],\n      // strings\n      [/\"([^\"\\\\]|\\\\.)*$/, \"string.invalid\"],\n      // non-teminated string\n      [/\"/, \"string\", \"@string\"]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"\"],\n      [/(\\').*$/, \"comment\"]\n    ],\n    string: [\n      [/[^\\\\\"]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/\"C?/, \"string\", \"@pop\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/scala/scala.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/scala/scala.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/scala/scala.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"scala\",\n  extensions: [\".scala\", \".sc\", \".sbt\"],\n  aliases: [\"Scala\", \"scala\", \"SBT\", \"Sbt\", \"sbt\", \"Dotty\", \"dotty\"],\n  mimetypes: [\"text/x-scala-source\", \"text/x-scala\", \"text/x-sbt\", \"text/x-dotty\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/scala/scala\"], resolve, reject);\n      });\n    } else {\n      return import(\"./scala.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/scala/scala.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/scala/scala.ts\nvar conf = {\n  /*\n   * `...` is allowed as an identifier.\n   * $ is allowed in identifiers.\n   * unary_<op> is allowed as an identifier.\n   * <name>_= is allowed as an identifier.\n   */\n  wordPattern: /(unary_[@~!#%^&*()\\-=+\\\\|:<>\\/?]+)|([a-zA-Z_$][\\w$]*?_=)|(`[^`]+`)|([a-zA-Z_$][\\w$]*)/g,\n  comments: {\n    lineComment: \"//\",\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  folding: {\n    markers: {\n      start: new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?region\\\\b)|(?:<editor-fold\\\\b))\"),\n      end: new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?endregion\\\\b)|(?:</editor-fold>))\")\n    }\n  }\n};\nvar language = {\n  tokenPostfix: \".scala\",\n  // We can't easily add everything from Dotty, but we can at least add some of its keywords\n  keywords: [\n    \"asInstanceOf\",\n    \"catch\",\n    \"class\",\n    \"classOf\",\n    \"def\",\n    \"do\",\n    \"else\",\n    \"extends\",\n    \"finally\",\n    \"for\",\n    \"foreach\",\n    \"forSome\",\n    \"if\",\n    \"import\",\n    \"isInstanceOf\",\n    \"macro\",\n    \"match\",\n    \"new\",\n    \"object\",\n    \"package\",\n    \"return\",\n    \"throw\",\n    \"trait\",\n    \"try\",\n    \"type\",\n    \"until\",\n    \"val\",\n    \"var\",\n    \"while\",\n    \"with\",\n    \"yield\",\n    // Dotty-specific:\n    \"given\",\n    \"enum\",\n    \"then\"\n  ],\n  // Dotty-specific:\n  softKeywords: [\"as\", \"export\", \"extension\", \"end\", \"derives\", \"on\"],\n  constants: [\"true\", \"false\", \"null\", \"this\", \"super\"],\n  modifiers: [\n    \"abstract\",\n    \"final\",\n    \"implicit\",\n    \"lazy\",\n    \"override\",\n    \"private\",\n    \"protected\",\n    \"sealed\"\n  ],\n  // Dotty-specific:\n  softModifiers: [\"inline\", \"opaque\", \"open\", \"transparent\", \"using\"],\n  name: /(?:[a-z_$][\\w$]*|`[^`]+`)/,\n  type: /(?:[A-Z][\\w$]*)/,\n  // we include these common regular expressions\n  symbols: /[=><!~?:&|+\\-*\\/^\\\\%@#]+/,\n  digits: /\\d+(_+\\d+)*/,\n  hexdigits: /[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,\n  // C# style strings\n  escapes: /\\\\(?:[btnfr\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n  fstring_conv: /[bBhHsScCdoxXeEfgGaAt]|[Tn](?:[HIklMSLNpzZsQ]|[BbhAaCYyjmde]|[RTrDFC])/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      // strings\n      [/\\braw\"\"\"/, { token: \"string.quote\", bracket: \"@open\", next: \"@rawstringt\" }],\n      [/\\braw\"/, { token: \"string.quote\", bracket: \"@open\", next: \"@rawstring\" }],\n      [/\\bs\"\"\"/, { token: \"string.quote\", bracket: \"@open\", next: \"@sstringt\" }],\n      [/\\bs\"/, { token: \"string.quote\", bracket: \"@open\", next: \"@sstring\" }],\n      [/\\bf\"\"\"\"/, { token: \"string.quote\", bracket: \"@open\", next: \"@fstringt\" }],\n      [/\\bf\"/, { token: \"string.quote\", bracket: \"@open\", next: \"@fstring\" }],\n      [/\"\"\"/, { token: \"string.quote\", bracket: \"@open\", next: \"@stringt\" }],\n      [/\"/, { token: \"string.quote\", bracket: \"@open\", next: \"@string\" }],\n      // numbers\n      [/(@digits)[eE]([\\-+]?(@digits))?[fFdD]?/, \"number.float\", \"@allowMethod\"],\n      [/(@digits)\\.(@digits)([eE][\\-+]?(@digits))?[fFdD]?/, \"number.float\", \"@allowMethod\"],\n      [/0[xX](@hexdigits)[Ll]?/, \"number.hex\", \"@allowMethod\"],\n      [/(@digits)[fFdD]/, \"number.float\", \"@allowMethod\"],\n      [/(@digits)[lL]?/, \"number\", \"@allowMethod\"],\n      [/\\b_\\*/, \"key\"],\n      [/\\b(_)\\b/, \"keyword\", \"@allowMethod\"],\n      // identifiers and keywords\n      [/\\bimport\\b/, \"keyword\", \"@import\"],\n      [/\\b(case)([ \\t]+)(class)\\b/, [\"keyword.modifier\", \"white\", \"keyword\"]],\n      [/\\bcase\\b/, \"keyword\", \"@case\"],\n      [/\\bva[lr]\\b/, \"keyword\", \"@vardef\"],\n      [\n        /\\b(def)([ \\t]+)((?:unary_)?@symbols|@name(?:_=)|@name)/,\n        [\"keyword\", \"white\", \"identifier\"]\n      ],\n      [/@name(?=[ \\t]*:(?!:))/, \"variable\"],\n      [/(\\.)(@name|@symbols)/, [\"operator\", { token: \"@rematch\", next: \"@allowMethod\" }]],\n      [/([{(])(\\s*)(@name(?=\\s*=>))/, [\"@brackets\", \"white\", \"variable\"]],\n      [\n        /@name/,\n        {\n          cases: {\n            \"@keywords\": \"keyword\",\n            \"@softKeywords\": \"keyword\",\n            \"@modifiers\": \"keyword.modifier\",\n            \"@softModifiers\": \"keyword.modifier\",\n            \"@constants\": {\n              token: \"constant\",\n              next: \"@allowMethod\"\n            },\n            \"@default\": {\n              token: \"identifier\",\n              next: \"@allowMethod\"\n            }\n          }\n        }\n      ],\n      [/@type/, \"type\", \"@allowMethod\"],\n      // whitespace\n      { include: \"@whitespace\" },\n      // @ annotations.\n      [/@[a-zA-Z_$][\\w$]*(?:\\.[a-zA-Z_$][\\w$]*)*/, \"annotation\"],\n      // delimiters and operators\n      [/[{(]/, \"@brackets\"],\n      [/[})]/, \"@brackets\", \"@allowMethod\"],\n      [/\\[/, \"operator.square\"],\n      [/](?!\\s*(?:va[rl]|def|type)\\b)/, \"operator.square\", \"@allowMethod\"],\n      [/]/, \"operator.square\"],\n      [/([=-]>|<-|>:|<:|:>|<%)(?=[\\s\\w()[\\]{},\\.\"'`])/, \"keyword\"],\n      [/@symbols/, \"operator\"],\n      // delimiter: after number because of .\\d floats\n      [/[;,\\.]/, \"delimiter\"],\n      // symbols\n      [/'[a-zA-Z$][\\w$]*(?!')/, \"attribute.name\"],\n      // characters\n      [/'[^\\\\']'/, \"string\", \"@allowMethod\"],\n      [/(')(@escapes)(')/, [\"string\", \"string.escape\", { token: \"string\", next: \"@allowMethod\" }]],\n      [/'/, \"string.invalid\"]\n    ],\n    import: [\n      [/;/, \"delimiter\", \"@pop\"],\n      [/^|$/, \"\", \"@pop\"],\n      [/[ \\t]+/, \"white\"],\n      [/[\\n\\r]+/, \"white\", \"@pop\"],\n      [/\\/\\*/, \"comment\", \"@comment\"],\n      [/@name|@type/, \"type\"],\n      [/[(){}]/, \"@brackets\"],\n      [/[[\\]]/, \"operator.square\"],\n      [/[\\.,]/, \"delimiter\"]\n    ],\n    allowMethod: [\n      [/^|$/, \"\", \"@pop\"],\n      [/[ \\t]+/, \"white\"],\n      [/[\\n\\r]+/, \"white\", \"@pop\"],\n      [/\\/\\*/, \"comment\", \"@comment\"],\n      [/(?==>[\\s\\w([{])/, \"keyword\", \"@pop\"],\n      [\n        /(@name|@symbols)(?=[ \\t]*[[({\"'`]|[ \\t]+(?:[+-]?\\.?\\d|\\w))/,\n        {\n          cases: {\n            \"@keywords\": { token: \"keyword\", next: \"@pop\" },\n            \"->|<-|>:|<:|<%\": { token: \"keyword\", next: \"@pop\" },\n            \"@default\": { token: \"@rematch\", next: \"@pop\" }\n          }\n        }\n      ],\n      [\"\", \"\", \"@pop\"]\n    ],\n    comment: [\n      [/[^\\/*]+/, \"comment\"],\n      [/\\/\\*/, \"comment\", \"@push\"],\n      // nested comment\n      [/\\*\\//, \"comment\", \"@pop\"],\n      [/[\\/*]/, \"comment\"]\n    ],\n    case: [\n      [/\\b_\\*/, \"key\"],\n      [/\\b(_|true|false|null|this|super)\\b/, \"keyword\", \"@allowMethod\"],\n      [/\\bif\\b|=>/, \"keyword\", \"@pop\"],\n      [/`[^`]+`/, \"identifier\", \"@allowMethod\"],\n      [/@name/, \"variable\", \"@allowMethod\"],\n      [/:::?|\\||@(?![a-z_$])/, \"keyword\"],\n      { include: \"@root\" }\n    ],\n    vardef: [\n      [/\\b_\\*/, \"key\"],\n      [/\\b(_|true|false|null|this|super)\\b/, \"keyword\"],\n      [/@name/, \"variable\"],\n      [/:::?|\\||@(?![a-z_$])/, \"keyword\"],\n      [/=|:(?!:)/, \"operator\", \"@pop\"],\n      [/$/, \"white\", \"@pop\"],\n      { include: \"@root\" }\n    ],\n    string: [\n      [/[^\\\\\"\\n\\r]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [\n        /\"/,\n        {\n          token: \"string.quote\",\n          bracket: \"@close\",\n          switchTo: \"@allowMethod\"\n        }\n      ]\n    ],\n    stringt: [\n      [/[^\\\\\"\\n\\r]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/\"(?=\"\"\")/, \"string\"],\n      [\n        /\"\"\"/,\n        {\n          token: \"string.quote\",\n          bracket: \"@close\",\n          switchTo: \"@allowMethod\"\n        }\n      ],\n      [/\"/, \"string\"]\n    ],\n    fstring: [\n      [/@escapes/, \"string.escape\"],\n      [\n        /\"/,\n        {\n          token: \"string.quote\",\n          bracket: \"@close\",\n          switchTo: \"@allowMethod\"\n        }\n      ],\n      [/\\$\\$/, \"string\"],\n      [/(\\$)([a-z_]\\w*)/, [\"operator\", \"identifier\"]],\n      [/\\$\\{/, \"operator\", \"@interp\"],\n      [/%%/, \"string\"],\n      [\n        /(%)([\\-#+ 0,(])(\\d+|\\.\\d+|\\d+\\.\\d+)(@fstring_conv)/,\n        [\"metatag\", \"keyword.modifier\", \"number\", \"metatag\"]\n      ],\n      [/(%)(\\d+|\\.\\d+|\\d+\\.\\d+)(@fstring_conv)/, [\"metatag\", \"number\", \"metatag\"]],\n      [/(%)([\\-#+ 0,(])(@fstring_conv)/, [\"metatag\", \"keyword.modifier\", \"metatag\"]],\n      [/(%)(@fstring_conv)/, [\"metatag\", \"metatag\"]],\n      [/./, \"string\"]\n    ],\n    fstringt: [\n      [/@escapes/, \"string.escape\"],\n      [/\"(?=\"\"\")/, \"string\"],\n      [\n        /\"\"\"/,\n        {\n          token: \"string.quote\",\n          bracket: \"@close\",\n          switchTo: \"@allowMethod\"\n        }\n      ],\n      [/\\$\\$/, \"string\"],\n      [/(\\$)([a-z_]\\w*)/, [\"operator\", \"identifier\"]],\n      [/\\$\\{/, \"operator\", \"@interp\"],\n      [/%%/, \"string\"],\n      [\n        /(%)([\\-#+ 0,(])(\\d+|\\.\\d+|\\d+\\.\\d+)(@fstring_conv)/,\n        [\"metatag\", \"keyword.modifier\", \"number\", \"metatag\"]\n      ],\n      [/(%)(\\d+|\\.\\d+|\\d+\\.\\d+)(@fstring_conv)/, [\"metatag\", \"number\", \"metatag\"]],\n      [/(%)([\\-#+ 0,(])(@fstring_conv)/, [\"metatag\", \"keyword.modifier\", \"metatag\"]],\n      [/(%)(@fstring_conv)/, [\"metatag\", \"metatag\"]],\n      [/./, \"string\"]\n    ],\n    sstring: [\n      [/@escapes/, \"string.escape\"],\n      [\n        /\"/,\n        {\n          token: \"string.quote\",\n          bracket: \"@close\",\n          switchTo: \"@allowMethod\"\n        }\n      ],\n      [/\\$\\$/, \"string\"],\n      [/(\\$)([a-z_]\\w*)/, [\"operator\", \"identifier\"]],\n      [/\\$\\{/, \"operator\", \"@interp\"],\n      [/./, \"string\"]\n    ],\n    sstringt: [\n      [/@escapes/, \"string.escape\"],\n      [/\"(?=\"\"\")/, \"string\"],\n      [\n        /\"\"\"/,\n        {\n          token: \"string.quote\",\n          bracket: \"@close\",\n          switchTo: \"@allowMethod\"\n        }\n      ],\n      [/\\$\\$/, \"string\"],\n      [/(\\$)([a-z_]\\w*)/, [\"operator\", \"identifier\"]],\n      [/\\$\\{/, \"operator\", \"@interp\"],\n      [/./, \"string\"]\n    ],\n    interp: [[/{/, \"operator\", \"@push\"], [/}/, \"operator\", \"@pop\"], { include: \"@root\" }],\n    rawstring: [\n      [/[^\"]/, \"string\"],\n      [\n        /\"/,\n        {\n          token: \"string.quote\",\n          bracket: \"@close\",\n          switchTo: \"@allowMethod\"\n        }\n      ]\n    ],\n    rawstringt: [\n      [/[^\"]/, \"string\"],\n      [/\"(?=\"\"\")/, \"string\"],\n      [\n        /\"\"\"/,\n        {\n          token: \"string.quote\",\n          bracket: \"@close\",\n          switchTo: \"@allowMethod\"\n        }\n      ],\n      [/\"/, \"string\"]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"white\"],\n      [/\\/\\*/, \"comment\", \"@comment\"],\n      [/\\/\\/.*$/, \"comment\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/scheme/scheme.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/scheme/scheme.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/scheme/scheme.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"scheme\",\n  extensions: [\".scm\", \".ss\", \".sch\", \".rkt\"],\n  aliases: [\"scheme\", \"Scheme\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/scheme/scheme\"], resolve, reject);\n      });\n    } else {\n      return import(\"./scheme.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/scheme/scheme.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/scheme/scheme.ts\nvar conf = {\n  comments: {\n    lineComment: \";\",\n    blockComment: [\"#|\", \"|#\"]\n  },\n  brackets: [\n    [\"(\", \")\"],\n    [\"{\", \"}\"],\n    [\"[\", \"]\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  ignoreCase: true,\n  tokenPostfix: \".scheme\",\n  brackets: [\n    { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" },\n    { open: \"{\", close: \"}\", token: \"delimiter.curly\" },\n    { open: \"[\", close: \"]\", token: \"delimiter.square\" }\n  ],\n  keywords: [\n    \"case\",\n    \"do\",\n    \"let\",\n    \"loop\",\n    \"if\",\n    \"else\",\n    \"when\",\n    \"cons\",\n    \"car\",\n    \"cdr\",\n    \"cond\",\n    \"lambda\",\n    \"lambda*\",\n    \"syntax-rules\",\n    \"format\",\n    \"set!\",\n    \"quote\",\n    \"eval\",\n    \"append\",\n    \"list\",\n    \"list?\",\n    \"member?\",\n    \"load\"\n  ],\n  constants: [\"#t\", \"#f\"],\n  operators: [\"eq?\", \"eqv?\", \"equal?\", \"and\", \"or\", \"not\", \"null?\"],\n  tokenizer: {\n    root: [\n      [/#[xXoObB][0-9a-fA-F]+/, \"number.hex\"],\n      [/[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?/, \"number.float\"],\n      [\n        /(?:\\b(?:(define|define-syntax|define-macro))\\b)(\\s+)((?:\\w|\\-|\\!|\\?)*)/,\n        [\"keyword\", \"white\", \"variable\"]\n      ],\n      { include: \"@whitespace\" },\n      { include: \"@strings\" },\n      [\n        /[a-zA-Z_#][a-zA-Z0-9_\\-\\?\\!\\*]*/,\n        {\n          cases: {\n            \"@keywords\": \"keyword\",\n            \"@constants\": \"constant\",\n            \"@operators\": \"operators\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ]\n    ],\n    comment: [\n      [/[^\\|#]+/, \"comment\"],\n      [/#\\|/, \"comment\", \"@push\"],\n      [/\\|#/, \"comment\", \"@pop\"],\n      [/[\\|#]/, \"comment\"]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"white\"],\n      [/#\\|/, \"comment\", \"@comment\"],\n      [/;.*$/, \"comment\"]\n    ],\n    strings: [\n      [/\"$/, \"string\", \"@popall\"],\n      [/\"(?=.)/, \"string\", \"@multiLineString\"]\n    ],\n    multiLineString: [\n      [/[^\\\\\"]+$/, \"string\", \"@popall\"],\n      [/[^\\\\\"]+/, \"string\"],\n      [/\\\\./, \"string.escape\"],\n      [/\"/, \"string\", \"@popall\"],\n      [/\\\\$/, \"string\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/scss/scss.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/scss/scss.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/scss/scss.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"scss\",\n  extensions: [\".scss\"],\n  aliases: [\"Sass\", \"sass\", \"scss\"],\n  mimetypes: [\"text/x-scss\", \"text/scss\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/scss/scss\"], resolve, reject);\n      });\n    } else {\n      return import(\"./scss.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/scss/scss.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/scss/scss.ts\nvar conf = {\n  wordPattern: /(#?-?\\d*\\.\\d\\w*%?)|([@$#!.:]?[\\w-?]+%?)|[@#!.]/g,\n  comments: {\n    blockComment: [\"/*\", \"*/\"],\n    lineComment: \"//\"\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\", notIn: [\"string\", \"comment\"] },\n    { open: \"[\", close: \"]\", notIn: [\"string\", \"comment\"] },\n    { open: \"(\", close: \")\", notIn: [\"string\", \"comment\"] },\n    { open: '\"', close: '\"', notIn: [\"string\", \"comment\"] },\n    { open: \"'\", close: \"'\", notIn: [\"string\", \"comment\"] }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  folding: {\n    markers: {\n      start: new RegExp(\"^\\\\s*\\\\/\\\\*\\\\s*#region\\\\b\\\\s*(.*?)\\\\s*\\\\*\\\\/\"),\n      end: new RegExp(\"^\\\\s*\\\\/\\\\*\\\\s*#endregion\\\\b.*\\\\*\\\\/\")\n    }\n  }\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".scss\",\n  ws: \"[ \t\\n\\r\\f]*\",\n  // whitespaces (referenced in several rules)\n  identifier: \"-?-?([a-zA-Z]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))([\\\\w\\\\-]|(\\\\\\\\(([0-9a-fA-F]{1,6}\\\\s?)|[^[0-9a-fA-F])))*\",\n  brackets: [\n    { open: \"{\", close: \"}\", token: \"delimiter.curly\" },\n    { open: \"[\", close: \"]\", token: \"delimiter.bracket\" },\n    { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" },\n    { open: \"<\", close: \">\", token: \"delimiter.angle\" }\n  ],\n  tokenizer: {\n    root: [{ include: \"@selector\" }],\n    selector: [\n      { include: \"@comments\" },\n      { include: \"@import\" },\n      { include: \"@variabledeclaration\" },\n      { include: \"@warndebug\" },\n      // sass: log statements\n      [\"[@](include)\", { token: \"keyword\", next: \"@includedeclaration\" }],\n      // sass: include statement\n      [\n        \"[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)\",\n        { token: \"keyword\", next: \"@keyframedeclaration\" }\n      ],\n      [\"[@](page|content|font-face|-moz-document)\", { token: \"keyword\" }],\n      // sass: placeholder for includes\n      [\"[@](charset|namespace)\", { token: \"keyword\", next: \"@declarationbody\" }],\n      [\"[@](function)\", { token: \"keyword\", next: \"@functiondeclaration\" }],\n      [\"[@](mixin)\", { token: \"keyword\", next: \"@mixindeclaration\" }],\n      [\"url(\\\\-prefix)?\\\\(\", { token: \"meta\", next: \"@urldeclaration\" }],\n      { include: \"@controlstatement\" },\n      // sass control statements\n      { include: \"@selectorname\" },\n      [\"[&\\\\*]\", \"tag\"],\n      // selector symbols\n      [\"[>\\\\+,]\", \"delimiter\"],\n      // selector operators\n      [\"\\\\[\", { token: \"delimiter.bracket\", next: \"@selectorattribute\" }],\n      [\"{\", { token: \"delimiter.curly\", next: \"@selectorbody\" }]\n    ],\n    selectorbody: [\n      [\"[*_]?@identifier@ws:(?=(\\\\s|\\\\d|[^{;}]*[;}]))\", \"attribute.name\", \"@rulevalue\"],\n      // rule definition: to distinguish from a nested selector check for whitespace, number or a semicolon\n      { include: \"@selector\" },\n      // sass: nested selectors\n      [\"[@](extend)\", { token: \"keyword\", next: \"@extendbody\" }],\n      // sass: extend other selectors\n      [\"[@](return)\", { token: \"keyword\", next: \"@declarationbody\" }],\n      [\"}\", { token: \"delimiter.curly\", next: \"@pop\" }]\n    ],\n    selectorname: [\n      [\"#{\", { token: \"meta\", next: \"@variableinterpolation\" }],\n      // sass: interpolation\n      [\"(\\\\.|#(?=[^{])|%|(@identifier)|:)+\", \"tag\"]\n      // selector (.foo, div, ...)\n    ],\n    selectorattribute: [{ include: \"@term\" }, [\"]\", { token: \"delimiter.bracket\", next: \"@pop\" }]],\n    term: [\n      { include: \"@comments\" },\n      [\"url(\\\\-prefix)?\\\\(\", { token: \"meta\", next: \"@urldeclaration\" }],\n      { include: \"@functioninvocation\" },\n      { include: \"@numbers\" },\n      { include: \"@strings\" },\n      { include: \"@variablereference\" },\n      [\"(and\\\\b|or\\\\b|not\\\\b)\", \"operator\"],\n      { include: \"@name\" },\n      [\"([<>=\\\\+\\\\-\\\\*\\\\/\\\\^\\\\|\\\\~,])\", \"operator\"],\n      [\",\", \"delimiter\"],\n      [\"!default\", \"literal\"],\n      [\"\\\\(\", { token: \"delimiter.parenthesis\", next: \"@parenthizedterm\" }]\n    ],\n    rulevalue: [\n      { include: \"@term\" },\n      [\"!important\", \"literal\"],\n      [\";\", \"delimiter\", \"@pop\"],\n      [\"{\", { token: \"delimiter.curly\", switchTo: \"@nestedproperty\" }],\n      // sass: nested properties\n      [\"(?=})\", { token: \"\", next: \"@pop\" }]\n      // missing semicolon\n    ],\n    nestedproperty: [\n      [\"[*_]?@identifier@ws:\", \"attribute.name\", \"@rulevalue\"],\n      { include: \"@comments\" },\n      [\"}\", { token: \"delimiter.curly\", next: \"@pop\" }]\n    ],\n    warndebug: [[\"[@](warn|debug)\", { token: \"keyword\", next: \"@declarationbody\" }]],\n    import: [[\"[@](import)\", { token: \"keyword\", next: \"@declarationbody\" }]],\n    variabledeclaration: [\n      // sass variables\n      [\"\\\\$@identifier@ws:\", \"variable.decl\", \"@declarationbody\"]\n    ],\n    urldeclaration: [\n      { include: \"@strings\" },\n      [\"[^)\\r\\n]+\", \"string\"],\n      [\"\\\\)\", { token: \"meta\", next: \"@pop\" }]\n    ],\n    parenthizedterm: [\n      { include: \"@term\" },\n      [\"\\\\)\", { token: \"delimiter.parenthesis\", next: \"@pop\" }]\n    ],\n    declarationbody: [\n      { include: \"@term\" },\n      [\";\", \"delimiter\", \"@pop\"],\n      [\"(?=})\", { token: \"\", next: \"@pop\" }]\n      // missing semicolon\n    ],\n    extendbody: [\n      { include: \"@selectorname\" },\n      [\"!optional\", \"literal\"],\n      [\";\", \"delimiter\", \"@pop\"],\n      [\"(?=})\", { token: \"\", next: \"@pop\" }]\n      // missing semicolon\n    ],\n    variablereference: [\n      // sass variable reference\n      [\"\\\\$@identifier\", \"variable.ref\"],\n      [\"\\\\.\\\\.\\\\.\", \"operator\"],\n      // var args in reference\n      [\"#{\", { token: \"meta\", next: \"@variableinterpolation\" }]\n      // sass var resolve\n    ],\n    variableinterpolation: [\n      { include: \"@variablereference\" },\n      [\"}\", { token: \"meta\", next: \"@pop\" }]\n    ],\n    comments: [\n      [\"\\\\/\\\\*\", \"comment\", \"@comment\"],\n      [\"\\\\/\\\\/+.*\", \"comment\"]\n    ],\n    comment: [\n      [\"\\\\*\\\\/\", \"comment\", \"@pop\"],\n      [\".\", \"comment\"]\n    ],\n    name: [[\"@identifier\", \"attribute.value\"]],\n    numbers: [\n      [\"(\\\\d*\\\\.)?\\\\d+([eE][\\\\-+]?\\\\d+)?\", { token: \"number\", next: \"@units\" }],\n      [\"#[0-9a-fA-F_]+(?!\\\\w)\", \"number.hex\"]\n    ],\n    units: [\n      [\n        \"(em|ex|ch|rem|fr|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?\",\n        \"number\",\n        \"@pop\"\n      ]\n    ],\n    functiondeclaration: [\n      [\"@identifier@ws\\\\(\", { token: \"meta\", next: \"@parameterdeclaration\" }],\n      [\"{\", { token: \"delimiter.curly\", switchTo: \"@functionbody\" }]\n    ],\n    mixindeclaration: [\n      // mixin with parameters\n      [\"@identifier@ws\\\\(\", { token: \"meta\", next: \"@parameterdeclaration\" }],\n      // mixin without parameters\n      [\"@identifier\", \"meta\"],\n      [\"{\", { token: \"delimiter.curly\", switchTo: \"@selectorbody\" }]\n    ],\n    parameterdeclaration: [\n      [\"\\\\$@identifier@ws:\", \"variable.decl\"],\n      [\"\\\\.\\\\.\\\\.\", \"operator\"],\n      // var args in declaration\n      [\",\", \"delimiter\"],\n      { include: \"@term\" },\n      [\"\\\\)\", { token: \"meta\", next: \"@pop\" }]\n    ],\n    includedeclaration: [\n      { include: \"@functioninvocation\" },\n      [\"@identifier\", \"meta\"],\n      [\";\", \"delimiter\", \"@pop\"],\n      [\"(?=})\", { token: \"\", next: \"@pop\" }],\n      // missing semicolon\n      [\"{\", { token: \"delimiter.curly\", switchTo: \"@selectorbody\" }]\n    ],\n    keyframedeclaration: [\n      [\"@identifier\", \"meta\"],\n      [\"{\", { token: \"delimiter.curly\", switchTo: \"@keyframebody\" }]\n    ],\n    keyframebody: [\n      { include: \"@term\" },\n      [\"{\", { token: \"delimiter.curly\", next: \"@selectorbody\" }],\n      [\"}\", { token: \"delimiter.curly\", next: \"@pop\" }]\n    ],\n    controlstatement: [\n      [\n        \"[@](if|else|for|while|each|media)\",\n        { token: \"keyword.flow\", next: \"@controlstatementdeclaration\" }\n      ]\n    ],\n    controlstatementdeclaration: [\n      [\"(in|from|through|if|to)\\\\b\", { token: \"keyword.flow\" }],\n      { include: \"@term\" },\n      [\"{\", { token: \"delimiter.curly\", switchTo: \"@selectorbody\" }]\n    ],\n    functionbody: [\n      [\"[@](return)\", { token: \"keyword\" }],\n      { include: \"@variabledeclaration\" },\n      { include: \"@term\" },\n      { include: \"@controlstatement\" },\n      [\";\", \"delimiter\"],\n      [\"}\", { token: \"delimiter.curly\", next: \"@pop\" }]\n    ],\n    functioninvocation: [[\"@identifier\\\\(\", { token: \"meta\", next: \"@functionarguments\" }]],\n    functionarguments: [\n      [\"\\\\$@identifier@ws:\", \"attribute.name\"],\n      [\"[,]\", \"delimiter\"],\n      { include: \"@term\" },\n      [\"\\\\)\", { token: \"meta\", next: \"@pop\" }]\n    ],\n    strings: [\n      ['~?\"', { token: \"string.delimiter\", next: \"@stringenddoublequote\" }],\n      [\"~?'\", { token: \"string.delimiter\", next: \"@stringendquote\" }]\n    ],\n    stringenddoublequote: [\n      [\"\\\\\\\\.\", \"string\"],\n      ['\"', { token: \"string.delimiter\", next: \"@pop\" }],\n      [\".\", \"string\"]\n    ],\n    stringendquote: [\n      [\"\\\\\\\\.\", \"string\"],\n      [\"'\", { token: \"string.delimiter\", next: \"@pop\" }],\n      [\".\", \"string\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/shell/shell.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/shell/shell.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/shell/shell.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"shell\",\n  extensions: [\".sh\", \".bash\"],\n  aliases: [\"Shell\", \"sh\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/shell/shell\"], resolve, reject);\n      });\n    } else {\n      return import(\"./shell.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/shell/shell.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/shell/shell.ts\nvar conf = {\n  comments: {\n    lineComment: \"#\"\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" },\n    { open: \"`\", close: \"`\" }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" },\n    { open: \"`\", close: \"`\" }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  ignoreCase: true,\n  tokenPostfix: \".shell\",\n  brackets: [\n    { token: \"delimiter.bracket\", open: \"{\", close: \"}\" },\n    { token: \"delimiter.parenthesis\", open: \"(\", close: \")\" },\n    { token: \"delimiter.square\", open: \"[\", close: \"]\" }\n  ],\n  keywords: [\n    \"if\",\n    \"then\",\n    \"do\",\n    \"else\",\n    \"elif\",\n    \"while\",\n    \"until\",\n    \"for\",\n    \"in\",\n    \"esac\",\n    \"fi\",\n    \"fin\",\n    \"fil\",\n    \"done\",\n    \"exit\",\n    \"set\",\n    \"unset\",\n    \"export\",\n    \"function\"\n  ],\n  builtins: [\n    \"ab\",\n    \"awk\",\n    \"bash\",\n    \"beep\",\n    \"cat\",\n    \"cc\",\n    \"cd\",\n    \"chown\",\n    \"chmod\",\n    \"chroot\",\n    \"clear\",\n    \"cp\",\n    \"curl\",\n    \"cut\",\n    \"diff\",\n    \"echo\",\n    \"find\",\n    \"gawk\",\n    \"gcc\",\n    \"get\",\n    \"git\",\n    \"grep\",\n    \"hg\",\n    \"kill\",\n    \"killall\",\n    \"ln\",\n    \"ls\",\n    \"make\",\n    \"mkdir\",\n    \"openssl\",\n    \"mv\",\n    \"nc\",\n    \"node\",\n    \"npm\",\n    \"ping\",\n    \"ps\",\n    \"restart\",\n    \"rm\",\n    \"rmdir\",\n    \"sed\",\n    \"service\",\n    \"sh\",\n    \"shopt\",\n    \"shred\",\n    \"source\",\n    \"sort\",\n    \"sleep\",\n    \"ssh\",\n    \"start\",\n    \"stop\",\n    \"su\",\n    \"sudo\",\n    \"svn\",\n    \"tee\",\n    \"telnet\",\n    \"top\",\n    \"touch\",\n    \"vi\",\n    \"vim\",\n    \"wall\",\n    \"wc\",\n    \"wget\",\n    \"who\",\n    \"write\",\n    \"yes\",\n    \"zsh\"\n  ],\n  startingWithDash: /\\-+\\w+/,\n  identifiersWithDashes: /[a-zA-Z]\\w+(?:@startingWithDash)+/,\n  // we include these common regular expressions\n  symbols: /[=><!~?&|+\\-*\\/\\^;\\.,]+/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      [/@identifiersWithDashes/, \"\"],\n      [/(\\s)((?:@startingWithDash)+)/, [\"white\", \"attribute.name\"]],\n      [\n        /[a-zA-Z]\\w*/,\n        {\n          cases: {\n            \"@keywords\": \"keyword\",\n            \"@builtins\": \"type.identifier\",\n            \"@default\": \"\"\n          }\n        }\n      ],\n      { include: \"@whitespace\" },\n      { include: \"@strings\" },\n      { include: \"@parameters\" },\n      { include: \"@heredoc\" },\n      [/[{}\\[\\]()]/, \"@brackets\"],\n      [/@symbols/, \"delimiter\"],\n      { include: \"@numbers\" },\n      [/[,;]/, \"delimiter\"]\n    ],\n    whitespace: [\n      [/\\s+/, \"white\"],\n      [/(^#!.*$)/, \"metatag\"],\n      [/(^#.*$)/, \"comment\"]\n    ],\n    numbers: [\n      [/\\d*\\.\\d+([eE][\\-+]?\\d+)?/, \"number.float\"],\n      [/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/, \"number.hex\"],\n      [/\\d+/, \"number\"]\n    ],\n    // Recognize strings, including those broken across lines\n    strings: [\n      [/'/, \"string\", \"@stringBody\"],\n      [/\"/, \"string\", \"@dblStringBody\"]\n    ],\n    stringBody: [\n      [/'/, \"string\", \"@popall\"],\n      [/./, \"string\"]\n    ],\n    dblStringBody: [\n      [/\"/, \"string\", \"@popall\"],\n      [/./, \"string\"]\n    ],\n    heredoc: [\n      [\n        /(<<[-<]?)(\\s*)(['\"`]?)([\\w\\-]+)(['\"`]?)/,\n        [\n          \"constants\",\n          \"white\",\n          \"string.heredoc.delimiter\",\n          \"string.heredoc\",\n          \"string.heredoc.delimiter\"\n        ]\n      ]\n    ],\n    parameters: [\n      [/\\$\\d+/, \"variable.predefined\"],\n      [/\\$\\w+/, \"variable\"],\n      [/\\$[*@#?\\-$!0_]/, \"variable\"],\n      [/\\$'/, \"variable\", \"@parameterBodyQuote\"],\n      [/\\$\"/, \"variable\", \"@parameterBodyDoubleQuote\"],\n      [/\\$\\(/, \"variable\", \"@parameterBodyParen\"],\n      [/\\$\\{/, \"variable\", \"@parameterBodyCurlyBrace\"]\n    ],\n    parameterBodyQuote: [\n      [/[^#:%*@\\-!_']+/, \"variable\"],\n      [/[#:%*@\\-!_]/, \"delimiter\"],\n      [/[']/, \"variable\", \"@pop\"]\n    ],\n    parameterBodyDoubleQuote: [\n      [/[^#:%*@\\-!_\"]+/, \"variable\"],\n      [/[#:%*@\\-!_]/, \"delimiter\"],\n      [/[\"]/, \"variable\", \"@pop\"]\n    ],\n    parameterBodyParen: [\n      [/[^#:%*@\\-!_)]+/, \"variable\"],\n      [/[#:%*@\\-!_]/, \"delimiter\"],\n      [/[)]/, \"variable\", \"@pop\"]\n    ],\n    parameterBodyCurlyBrace: [\n      [/[^#:%*@\\-!_}]+/, \"variable\"],\n      [/[#:%*@\\-!_]/, \"delimiter\"],\n      [/[}]/, \"variable\", \"@pop\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/solidity/solidity.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/solidity/solidity.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/solidity/solidity.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"sol\",\n  extensions: [\".sol\"],\n  aliases: [\"sol\", \"solidity\", \"Solidity\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/solidity/solidity\"], resolve, reject);\n      });\n    } else {\n      return import(\"./solidity.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/solidity/solidity.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/solidity/solidity.ts\nvar conf = {\n  comments: {\n    lineComment: \"//\",\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"],\n    [\"<\", \">\"]\n  ],\n  autoClosingPairs: [\n    { open: '\"', close: '\"', notIn: [\"string\", \"comment\"] },\n    { open: \"{\", close: \"}\", notIn: [\"string\", \"comment\"] },\n    { open: \"[\", close: \"]\", notIn: [\"string\", \"comment\"] },\n    { open: \"(\", close: \")\", notIn: [\"string\", \"comment\"] }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".sol\",\n  brackets: [\n    { token: \"delimiter.curly\", open: \"{\", close: \"}\" },\n    { token: \"delimiter.parenthesis\", open: \"(\", close: \")\" },\n    { token: \"delimiter.square\", open: \"[\", close: \"]\" },\n    { token: \"delimiter.angle\", open: \"<\", close: \">\" }\n  ],\n  keywords: [\n    // Main keywords\n    \"pragma\",\n    \"solidity\",\n    \"contract\",\n    \"library\",\n    \"using\",\n    \"struct\",\n    \"function\",\n    \"modifier\",\n    \"constructor\",\n    //Built-in types\n    \"address\",\n    \"string\",\n    \"bool\",\n    //Other types\n    \"Int\",\n    \"Uint\",\n    \"Byte\",\n    \"Fixed\",\n    \"Ufixed\",\n    //All int\n    \"int\",\n    \"int8\",\n    \"int16\",\n    \"int24\",\n    \"int32\",\n    \"int40\",\n    \"int48\",\n    \"int56\",\n    \"int64\",\n    \"int72\",\n    \"int80\",\n    \"int88\",\n    \"int96\",\n    \"int104\",\n    \"int112\",\n    \"int120\",\n    \"int128\",\n    \"int136\",\n    \"int144\",\n    \"int152\",\n    \"int160\",\n    \"int168\",\n    \"int176\",\n    \"int184\",\n    \"int192\",\n    \"int200\",\n    \"int208\",\n    \"int216\",\n    \"int224\",\n    \"int232\",\n    \"int240\",\n    \"int248\",\n    \"int256\",\n    //All uint\n    \"uint\",\n    \"uint8\",\n    \"uint16\",\n    \"uint24\",\n    \"uint32\",\n    \"uint40\",\n    \"uint48\",\n    \"uint56\",\n    \"uint64\",\n    \"uint72\",\n    \"uint80\",\n    \"uint88\",\n    \"uint96\",\n    \"uint104\",\n    \"uint112\",\n    \"uint120\",\n    \"uint128\",\n    \"uint136\",\n    \"uint144\",\n    \"uint152\",\n    \"uint160\",\n    \"uint168\",\n    \"uint176\",\n    \"uint184\",\n    \"uint192\",\n    \"uint200\",\n    \"uint208\",\n    \"uint216\",\n    \"uint224\",\n    \"uint232\",\n    \"uint240\",\n    \"uint248\",\n    \"uint256\",\n    //All Byte\n    \"byte\",\n    \"bytes\",\n    \"bytes1\",\n    \"bytes2\",\n    \"bytes3\",\n    \"bytes4\",\n    \"bytes5\",\n    \"bytes6\",\n    \"bytes7\",\n    \"bytes8\",\n    \"bytes9\",\n    \"bytes10\",\n    \"bytes11\",\n    \"bytes12\",\n    \"bytes13\",\n    \"bytes14\",\n    \"bytes15\",\n    \"bytes16\",\n    \"bytes17\",\n    \"bytes18\",\n    \"bytes19\",\n    \"bytes20\",\n    \"bytes21\",\n    \"bytes22\",\n    \"bytes23\",\n    \"bytes24\",\n    \"bytes25\",\n    \"bytes26\",\n    \"bytes27\",\n    \"bytes28\",\n    \"bytes29\",\n    \"bytes30\",\n    \"bytes31\",\n    \"bytes32\",\n    //All fixed\n    \"fixed\",\n    \"fixed0x8\",\n    \"fixed0x16\",\n    \"fixed0x24\",\n    \"fixed0x32\",\n    \"fixed0x40\",\n    \"fixed0x48\",\n    \"fixed0x56\",\n    \"fixed0x64\",\n    \"fixed0x72\",\n    \"fixed0x80\",\n    \"fixed0x88\",\n    \"fixed0x96\",\n    \"fixed0x104\",\n    \"fixed0x112\",\n    \"fixed0x120\",\n    \"fixed0x128\",\n    \"fixed0x136\",\n    \"fixed0x144\",\n    \"fixed0x152\",\n    \"fixed0x160\",\n    \"fixed0x168\",\n    \"fixed0x176\",\n    \"fixed0x184\",\n    \"fixed0x192\",\n    \"fixed0x200\",\n    \"fixed0x208\",\n    \"fixed0x216\",\n    \"fixed0x224\",\n    \"fixed0x232\",\n    \"fixed0x240\",\n    \"fixed0x248\",\n    \"fixed0x256\",\n    \"fixed8x8\",\n    \"fixed8x16\",\n    \"fixed8x24\",\n    \"fixed8x32\",\n    \"fixed8x40\",\n    \"fixed8x48\",\n    \"fixed8x56\",\n    \"fixed8x64\",\n    \"fixed8x72\",\n    \"fixed8x80\",\n    \"fixed8x88\",\n    \"fixed8x96\",\n    \"fixed8x104\",\n    \"fixed8x112\",\n    \"fixed8x120\",\n    \"fixed8x128\",\n    \"fixed8x136\",\n    \"fixed8x144\",\n    \"fixed8x152\",\n    \"fixed8x160\",\n    \"fixed8x168\",\n    \"fixed8x176\",\n    \"fixed8x184\",\n    \"fixed8x192\",\n    \"fixed8x200\",\n    \"fixed8x208\",\n    \"fixed8x216\",\n    \"fixed8x224\",\n    \"fixed8x232\",\n    \"fixed8x240\",\n    \"fixed8x248\",\n    \"fixed16x8\",\n    \"fixed16x16\",\n    \"fixed16x24\",\n    \"fixed16x32\",\n    \"fixed16x40\",\n    \"fixed16x48\",\n    \"fixed16x56\",\n    \"fixed16x64\",\n    \"fixed16x72\",\n    \"fixed16x80\",\n    \"fixed16x88\",\n    \"fixed16x96\",\n    \"fixed16x104\",\n    \"fixed16x112\",\n    \"fixed16x120\",\n    \"fixed16x128\",\n    \"fixed16x136\",\n    \"fixed16x144\",\n    \"fixed16x152\",\n    \"fixed16x160\",\n    \"fixed16x168\",\n    \"fixed16x176\",\n    \"fixed16x184\",\n    \"fixed16x192\",\n    \"fixed16x200\",\n    \"fixed16x208\",\n    \"fixed16x216\",\n    \"fixed16x224\",\n    \"fixed16x232\",\n    \"fixed16x240\",\n    \"fixed24x8\",\n    \"fixed24x16\",\n    \"fixed24x24\",\n    \"fixed24x32\",\n    \"fixed24x40\",\n    \"fixed24x48\",\n    \"fixed24x56\",\n    \"fixed24x64\",\n    \"fixed24x72\",\n    \"fixed24x80\",\n    \"fixed24x88\",\n    \"fixed24x96\",\n    \"fixed24x104\",\n    \"fixed24x112\",\n    \"fixed24x120\",\n    \"fixed24x128\",\n    \"fixed24x136\",\n    \"fixed24x144\",\n    \"fixed24x152\",\n    \"fixed24x160\",\n    \"fixed24x168\",\n    \"fixed24x176\",\n    \"fixed24x184\",\n    \"fixed24x192\",\n    \"fixed24x200\",\n    \"fixed24x208\",\n    \"fixed24x216\",\n    \"fixed24x224\",\n    \"fixed24x232\",\n    \"fixed32x8\",\n    \"fixed32x16\",\n    \"fixed32x24\",\n    \"fixed32x32\",\n    \"fixed32x40\",\n    \"fixed32x48\",\n    \"fixed32x56\",\n    \"fixed32x64\",\n    \"fixed32x72\",\n    \"fixed32x80\",\n    \"fixed32x88\",\n    \"fixed32x96\",\n    \"fixed32x104\",\n    \"fixed32x112\",\n    \"fixed32x120\",\n    \"fixed32x128\",\n    \"fixed32x136\",\n    \"fixed32x144\",\n    \"fixed32x152\",\n    \"fixed32x160\",\n    \"fixed32x168\",\n    \"fixed32x176\",\n    \"fixed32x184\",\n    \"fixed32x192\",\n    \"fixed32x200\",\n    \"fixed32x208\",\n    \"fixed32x216\",\n    \"fixed32x224\",\n    \"fixed40x8\",\n    \"fixed40x16\",\n    \"fixed40x24\",\n    \"fixed40x32\",\n    \"fixed40x40\",\n    \"fixed40x48\",\n    \"fixed40x56\",\n    \"fixed40x64\",\n    \"fixed40x72\",\n    \"fixed40x80\",\n    \"fixed40x88\",\n    \"fixed40x96\",\n    \"fixed40x104\",\n    \"fixed40x112\",\n    \"fixed40x120\",\n    \"fixed40x128\",\n    \"fixed40x136\",\n    \"fixed40x144\",\n    \"fixed40x152\",\n    \"fixed40x160\",\n    \"fixed40x168\",\n    \"fixed40x176\",\n    \"fixed40x184\",\n    \"fixed40x192\",\n    \"fixed40x200\",\n    \"fixed40x208\",\n    \"fixed40x216\",\n    \"fixed48x8\",\n    \"fixed48x16\",\n    \"fixed48x24\",\n    \"fixed48x32\",\n    \"fixed48x40\",\n    \"fixed48x48\",\n    \"fixed48x56\",\n    \"fixed48x64\",\n    \"fixed48x72\",\n    \"fixed48x80\",\n    \"fixed48x88\",\n    \"fixed48x96\",\n    \"fixed48x104\",\n    \"fixed48x112\",\n    \"fixed48x120\",\n    \"fixed48x128\",\n    \"fixed48x136\",\n    \"fixed48x144\",\n    \"fixed48x152\",\n    \"fixed48x160\",\n    \"fixed48x168\",\n    \"fixed48x176\",\n    \"fixed48x184\",\n    \"fixed48x192\",\n    \"fixed48x200\",\n    \"fixed48x208\",\n    \"fixed56x8\",\n    \"fixed56x16\",\n    \"fixed56x24\",\n    \"fixed56x32\",\n    \"fixed56x40\",\n    \"fixed56x48\",\n    \"fixed56x56\",\n    \"fixed56x64\",\n    \"fixed56x72\",\n    \"fixed56x80\",\n    \"fixed56x88\",\n    \"fixed56x96\",\n    \"fixed56x104\",\n    \"fixed56x112\",\n    \"fixed56x120\",\n    \"fixed56x128\",\n    \"fixed56x136\",\n    \"fixed56x144\",\n    \"fixed56x152\",\n    \"fixed56x160\",\n    \"fixed56x168\",\n    \"fixed56x176\",\n    \"fixed56x184\",\n    \"fixed56x192\",\n    \"fixed56x200\",\n    \"fixed64x8\",\n    \"fixed64x16\",\n    \"fixed64x24\",\n    \"fixed64x32\",\n    \"fixed64x40\",\n    \"fixed64x48\",\n    \"fixed64x56\",\n    \"fixed64x64\",\n    \"fixed64x72\",\n    \"fixed64x80\",\n    \"fixed64x88\",\n    \"fixed64x96\",\n    \"fixed64x104\",\n    \"fixed64x112\",\n    \"fixed64x120\",\n    \"fixed64x128\",\n    \"fixed64x136\",\n    \"fixed64x144\",\n    \"fixed64x152\",\n    \"fixed64x160\",\n    \"fixed64x168\",\n    \"fixed64x176\",\n    \"fixed64x184\",\n    \"fixed64x192\",\n    \"fixed72x8\",\n    \"fixed72x16\",\n    \"fixed72x24\",\n    \"fixed72x32\",\n    \"fixed72x40\",\n    \"fixed72x48\",\n    \"fixed72x56\",\n    \"fixed72x64\",\n    \"fixed72x72\",\n    \"fixed72x80\",\n    \"fixed72x88\",\n    \"fixed72x96\",\n    \"fixed72x104\",\n    \"fixed72x112\",\n    \"fixed72x120\",\n    \"fixed72x128\",\n    \"fixed72x136\",\n    \"fixed72x144\",\n    \"fixed72x152\",\n    \"fixed72x160\",\n    \"fixed72x168\",\n    \"fixed72x176\",\n    \"fixed72x184\",\n    \"fixed80x8\",\n    \"fixed80x16\",\n    \"fixed80x24\",\n    \"fixed80x32\",\n    \"fixed80x40\",\n    \"fixed80x48\",\n    \"fixed80x56\",\n    \"fixed80x64\",\n    \"fixed80x72\",\n    \"fixed80x80\",\n    \"fixed80x88\",\n    \"fixed80x96\",\n    \"fixed80x104\",\n    \"fixed80x112\",\n    \"fixed80x120\",\n    \"fixed80x128\",\n    \"fixed80x136\",\n    \"fixed80x144\",\n    \"fixed80x152\",\n    \"fixed80x160\",\n    \"fixed80x168\",\n    \"fixed80x176\",\n    \"fixed88x8\",\n    \"fixed88x16\",\n    \"fixed88x24\",\n    \"fixed88x32\",\n    \"fixed88x40\",\n    \"fixed88x48\",\n    \"fixed88x56\",\n    \"fixed88x64\",\n    \"fixed88x72\",\n    \"fixed88x80\",\n    \"fixed88x88\",\n    \"fixed88x96\",\n    \"fixed88x104\",\n    \"fixed88x112\",\n    \"fixed88x120\",\n    \"fixed88x128\",\n    \"fixed88x136\",\n    \"fixed88x144\",\n    \"fixed88x152\",\n    \"fixed88x160\",\n    \"fixed88x168\",\n    \"fixed96x8\",\n    \"fixed96x16\",\n    \"fixed96x24\",\n    \"fixed96x32\",\n    \"fixed96x40\",\n    \"fixed96x48\",\n    \"fixed96x56\",\n    \"fixed96x64\",\n    \"fixed96x72\",\n    \"fixed96x80\",\n    \"fixed96x88\",\n    \"fixed96x96\",\n    \"fixed96x104\",\n    \"fixed96x112\",\n    \"fixed96x120\",\n    \"fixed96x128\",\n    \"fixed96x136\",\n    \"fixed96x144\",\n    \"fixed96x152\",\n    \"fixed96x160\",\n    \"fixed104x8\",\n    \"fixed104x16\",\n    \"fixed104x24\",\n    \"fixed104x32\",\n    \"fixed104x40\",\n    \"fixed104x48\",\n    \"fixed104x56\",\n    \"fixed104x64\",\n    \"fixed104x72\",\n    \"fixed104x80\",\n    \"fixed104x88\",\n    \"fixed104x96\",\n    \"fixed104x104\",\n    \"fixed104x112\",\n    \"fixed104x120\",\n    \"fixed104x128\",\n    \"fixed104x136\",\n    \"fixed104x144\",\n    \"fixed104x152\",\n    \"fixed112x8\",\n    \"fixed112x16\",\n    \"fixed112x24\",\n    \"fixed112x32\",\n    \"fixed112x40\",\n    \"fixed112x48\",\n    \"fixed112x56\",\n    \"fixed112x64\",\n    \"fixed112x72\",\n    \"fixed112x80\",\n    \"fixed112x88\",\n    \"fixed112x96\",\n    \"fixed112x104\",\n    \"fixed112x112\",\n    \"fixed112x120\",\n    \"fixed112x128\",\n    \"fixed112x136\",\n    \"fixed112x144\",\n    \"fixed120x8\",\n    \"fixed120x16\",\n    \"fixed120x24\",\n    \"fixed120x32\",\n    \"fixed120x40\",\n    \"fixed120x48\",\n    \"fixed120x56\",\n    \"fixed120x64\",\n    \"fixed120x72\",\n    \"fixed120x80\",\n    \"fixed120x88\",\n    \"fixed120x96\",\n    \"fixed120x104\",\n    \"fixed120x112\",\n    \"fixed120x120\",\n    \"fixed120x128\",\n    \"fixed120x136\",\n    \"fixed128x8\",\n    \"fixed128x16\",\n    \"fixed128x24\",\n    \"fixed128x32\",\n    \"fixed128x40\",\n    \"fixed128x48\",\n    \"fixed128x56\",\n    \"fixed128x64\",\n    \"fixed128x72\",\n    \"fixed128x80\",\n    \"fixed128x88\",\n    \"fixed128x96\",\n    \"fixed128x104\",\n    \"fixed128x112\",\n    \"fixed128x120\",\n    \"fixed128x128\",\n    \"fixed136x8\",\n    \"fixed136x16\",\n    \"fixed136x24\",\n    \"fixed136x32\",\n    \"fixed136x40\",\n    \"fixed136x48\",\n    \"fixed136x56\",\n    \"fixed136x64\",\n    \"fixed136x72\",\n    \"fixed136x80\",\n    \"fixed136x88\",\n    \"fixed136x96\",\n    \"fixed136x104\",\n    \"fixed136x112\",\n    \"fixed136x120\",\n    \"fixed144x8\",\n    \"fixed144x16\",\n    \"fixed144x24\",\n    \"fixed144x32\",\n    \"fixed144x40\",\n    \"fixed144x48\",\n    \"fixed144x56\",\n    \"fixed144x64\",\n    \"fixed144x72\",\n    \"fixed144x80\",\n    \"fixed144x88\",\n    \"fixed144x96\",\n    \"fixed144x104\",\n    \"fixed144x112\",\n    \"fixed152x8\",\n    \"fixed152x16\",\n    \"fixed152x24\",\n    \"fixed152x32\",\n    \"fixed152x40\",\n    \"fixed152x48\",\n    \"fixed152x56\",\n    \"fixed152x64\",\n    \"fixed152x72\",\n    \"fixed152x80\",\n    \"fixed152x88\",\n    \"fixed152x96\",\n    \"fixed152x104\",\n    \"fixed160x8\",\n    \"fixed160x16\",\n    \"fixed160x24\",\n    \"fixed160x32\",\n    \"fixed160x40\",\n    \"fixed160x48\",\n    \"fixed160x56\",\n    \"fixed160x64\",\n    \"fixed160x72\",\n    \"fixed160x80\",\n    \"fixed160x88\",\n    \"fixed160x96\",\n    \"fixed168x8\",\n    \"fixed168x16\",\n    \"fixed168x24\",\n    \"fixed168x32\",\n    \"fixed168x40\",\n    \"fixed168x48\",\n    \"fixed168x56\",\n    \"fixed168x64\",\n    \"fixed168x72\",\n    \"fixed168x80\",\n    \"fixed168x88\",\n    \"fixed176x8\",\n    \"fixed176x16\",\n    \"fixed176x24\",\n    \"fixed176x32\",\n    \"fixed176x40\",\n    \"fixed176x48\",\n    \"fixed176x56\",\n    \"fixed176x64\",\n    \"fixed176x72\",\n    \"fixed176x80\",\n    \"fixed184x8\",\n    \"fixed184x16\",\n    \"fixed184x24\",\n    \"fixed184x32\",\n    \"fixed184x40\",\n    \"fixed184x48\",\n    \"fixed184x56\",\n    \"fixed184x64\",\n    \"fixed184x72\",\n    \"fixed192x8\",\n    \"fixed192x16\",\n    \"fixed192x24\",\n    \"fixed192x32\",\n    \"fixed192x40\",\n    \"fixed192x48\",\n    \"fixed192x56\",\n    \"fixed192x64\",\n    \"fixed200x8\",\n    \"fixed200x16\",\n    \"fixed200x24\",\n    \"fixed200x32\",\n    \"fixed200x40\",\n    \"fixed200x48\",\n    \"fixed200x56\",\n    \"fixed208x8\",\n    \"fixed208x16\",\n    \"fixed208x24\",\n    \"fixed208x32\",\n    \"fixed208x40\",\n    \"fixed208x48\",\n    \"fixed216x8\",\n    \"fixed216x16\",\n    \"fixed216x24\",\n    \"fixed216x32\",\n    \"fixed216x40\",\n    \"fixed224x8\",\n    \"fixed224x16\",\n    \"fixed224x24\",\n    \"fixed224x32\",\n    \"fixed232x8\",\n    \"fixed232x16\",\n    \"fixed232x24\",\n    \"fixed240x8\",\n    \"fixed240x16\",\n    \"fixed248x8\",\n    //All ufixed\n    \"ufixed\",\n    \"ufixed0x8\",\n    \"ufixed0x16\",\n    \"ufixed0x24\",\n    \"ufixed0x32\",\n    \"ufixed0x40\",\n    \"ufixed0x48\",\n    \"ufixed0x56\",\n    \"ufixed0x64\",\n    \"ufixed0x72\",\n    \"ufixed0x80\",\n    \"ufixed0x88\",\n    \"ufixed0x96\",\n    \"ufixed0x104\",\n    \"ufixed0x112\",\n    \"ufixed0x120\",\n    \"ufixed0x128\",\n    \"ufixed0x136\",\n    \"ufixed0x144\",\n    \"ufixed0x152\",\n    \"ufixed0x160\",\n    \"ufixed0x168\",\n    \"ufixed0x176\",\n    \"ufixed0x184\",\n    \"ufixed0x192\",\n    \"ufixed0x200\",\n    \"ufixed0x208\",\n    \"ufixed0x216\",\n    \"ufixed0x224\",\n    \"ufixed0x232\",\n    \"ufixed0x240\",\n    \"ufixed0x248\",\n    \"ufixed0x256\",\n    \"ufixed8x8\",\n    \"ufixed8x16\",\n    \"ufixed8x24\",\n    \"ufixed8x32\",\n    \"ufixed8x40\",\n    \"ufixed8x48\",\n    \"ufixed8x56\",\n    \"ufixed8x64\",\n    \"ufixed8x72\",\n    \"ufixed8x80\",\n    \"ufixed8x88\",\n    \"ufixed8x96\",\n    \"ufixed8x104\",\n    \"ufixed8x112\",\n    \"ufixed8x120\",\n    \"ufixed8x128\",\n    \"ufixed8x136\",\n    \"ufixed8x144\",\n    \"ufixed8x152\",\n    \"ufixed8x160\",\n    \"ufixed8x168\",\n    \"ufixed8x176\",\n    \"ufixed8x184\",\n    \"ufixed8x192\",\n    \"ufixed8x200\",\n    \"ufixed8x208\",\n    \"ufixed8x216\",\n    \"ufixed8x224\",\n    \"ufixed8x232\",\n    \"ufixed8x240\",\n    \"ufixed8x248\",\n    \"ufixed16x8\",\n    \"ufixed16x16\",\n    \"ufixed16x24\",\n    \"ufixed16x32\",\n    \"ufixed16x40\",\n    \"ufixed16x48\",\n    \"ufixed16x56\",\n    \"ufixed16x64\",\n    \"ufixed16x72\",\n    \"ufixed16x80\",\n    \"ufixed16x88\",\n    \"ufixed16x96\",\n    \"ufixed16x104\",\n    \"ufixed16x112\",\n    \"ufixed16x120\",\n    \"ufixed16x128\",\n    \"ufixed16x136\",\n    \"ufixed16x144\",\n    \"ufixed16x152\",\n    \"ufixed16x160\",\n    \"ufixed16x168\",\n    \"ufixed16x176\",\n    \"ufixed16x184\",\n    \"ufixed16x192\",\n    \"ufixed16x200\",\n    \"ufixed16x208\",\n    \"ufixed16x216\",\n    \"ufixed16x224\",\n    \"ufixed16x232\",\n    \"ufixed16x240\",\n    \"ufixed24x8\",\n    \"ufixed24x16\",\n    \"ufixed24x24\",\n    \"ufixed24x32\",\n    \"ufixed24x40\",\n    \"ufixed24x48\",\n    \"ufixed24x56\",\n    \"ufixed24x64\",\n    \"ufixed24x72\",\n    \"ufixed24x80\",\n    \"ufixed24x88\",\n    \"ufixed24x96\",\n    \"ufixed24x104\",\n    \"ufixed24x112\",\n    \"ufixed24x120\",\n    \"ufixed24x128\",\n    \"ufixed24x136\",\n    \"ufixed24x144\",\n    \"ufixed24x152\",\n    \"ufixed24x160\",\n    \"ufixed24x168\",\n    \"ufixed24x176\",\n    \"ufixed24x184\",\n    \"ufixed24x192\",\n    \"ufixed24x200\",\n    \"ufixed24x208\",\n    \"ufixed24x216\",\n    \"ufixed24x224\",\n    \"ufixed24x232\",\n    \"ufixed32x8\",\n    \"ufixed32x16\",\n    \"ufixed32x24\",\n    \"ufixed32x32\",\n    \"ufixed32x40\",\n    \"ufixed32x48\",\n    \"ufixed32x56\",\n    \"ufixed32x64\",\n    \"ufixed32x72\",\n    \"ufixed32x80\",\n    \"ufixed32x88\",\n    \"ufixed32x96\",\n    \"ufixed32x104\",\n    \"ufixed32x112\",\n    \"ufixed32x120\",\n    \"ufixed32x128\",\n    \"ufixed32x136\",\n    \"ufixed32x144\",\n    \"ufixed32x152\",\n    \"ufixed32x160\",\n    \"ufixed32x168\",\n    \"ufixed32x176\",\n    \"ufixed32x184\",\n    \"ufixed32x192\",\n    \"ufixed32x200\",\n    \"ufixed32x208\",\n    \"ufixed32x216\",\n    \"ufixed32x224\",\n    \"ufixed40x8\",\n    \"ufixed40x16\",\n    \"ufixed40x24\",\n    \"ufixed40x32\",\n    \"ufixed40x40\",\n    \"ufixed40x48\",\n    \"ufixed40x56\",\n    \"ufixed40x64\",\n    \"ufixed40x72\",\n    \"ufixed40x80\",\n    \"ufixed40x88\",\n    \"ufixed40x96\",\n    \"ufixed40x104\",\n    \"ufixed40x112\",\n    \"ufixed40x120\",\n    \"ufixed40x128\",\n    \"ufixed40x136\",\n    \"ufixed40x144\",\n    \"ufixed40x152\",\n    \"ufixed40x160\",\n    \"ufixed40x168\",\n    \"ufixed40x176\",\n    \"ufixed40x184\",\n    \"ufixed40x192\",\n    \"ufixed40x200\",\n    \"ufixed40x208\",\n    \"ufixed40x216\",\n    \"ufixed48x8\",\n    \"ufixed48x16\",\n    \"ufixed48x24\",\n    \"ufixed48x32\",\n    \"ufixed48x40\",\n    \"ufixed48x48\",\n    \"ufixed48x56\",\n    \"ufixed48x64\",\n    \"ufixed48x72\",\n    \"ufixed48x80\",\n    \"ufixed48x88\",\n    \"ufixed48x96\",\n    \"ufixed48x104\",\n    \"ufixed48x112\",\n    \"ufixed48x120\",\n    \"ufixed48x128\",\n    \"ufixed48x136\",\n    \"ufixed48x144\",\n    \"ufixed48x152\",\n    \"ufixed48x160\",\n    \"ufixed48x168\",\n    \"ufixed48x176\",\n    \"ufixed48x184\",\n    \"ufixed48x192\",\n    \"ufixed48x200\",\n    \"ufixed48x208\",\n    \"ufixed56x8\",\n    \"ufixed56x16\",\n    \"ufixed56x24\",\n    \"ufixed56x32\",\n    \"ufixed56x40\",\n    \"ufixed56x48\",\n    \"ufixed56x56\",\n    \"ufixed56x64\",\n    \"ufixed56x72\",\n    \"ufixed56x80\",\n    \"ufixed56x88\",\n    \"ufixed56x96\",\n    \"ufixed56x104\",\n    \"ufixed56x112\",\n    \"ufixed56x120\",\n    \"ufixed56x128\",\n    \"ufixed56x136\",\n    \"ufixed56x144\",\n    \"ufixed56x152\",\n    \"ufixed56x160\",\n    \"ufixed56x168\",\n    \"ufixed56x176\",\n    \"ufixed56x184\",\n    \"ufixed56x192\",\n    \"ufixed56x200\",\n    \"ufixed64x8\",\n    \"ufixed64x16\",\n    \"ufixed64x24\",\n    \"ufixed64x32\",\n    \"ufixed64x40\",\n    \"ufixed64x48\",\n    \"ufixed64x56\",\n    \"ufixed64x64\",\n    \"ufixed64x72\",\n    \"ufixed64x80\",\n    \"ufixed64x88\",\n    \"ufixed64x96\",\n    \"ufixed64x104\",\n    \"ufixed64x112\",\n    \"ufixed64x120\",\n    \"ufixed64x128\",\n    \"ufixed64x136\",\n    \"ufixed64x144\",\n    \"ufixed64x152\",\n    \"ufixed64x160\",\n    \"ufixed64x168\",\n    \"ufixed64x176\",\n    \"ufixed64x184\",\n    \"ufixed64x192\",\n    \"ufixed72x8\",\n    \"ufixed72x16\",\n    \"ufixed72x24\",\n    \"ufixed72x32\",\n    \"ufixed72x40\",\n    \"ufixed72x48\",\n    \"ufixed72x56\",\n    \"ufixed72x64\",\n    \"ufixed72x72\",\n    \"ufixed72x80\",\n    \"ufixed72x88\",\n    \"ufixed72x96\",\n    \"ufixed72x104\",\n    \"ufixed72x112\",\n    \"ufixed72x120\",\n    \"ufixed72x128\",\n    \"ufixed72x136\",\n    \"ufixed72x144\",\n    \"ufixed72x152\",\n    \"ufixed72x160\",\n    \"ufixed72x168\",\n    \"ufixed72x176\",\n    \"ufixed72x184\",\n    \"ufixed80x8\",\n    \"ufixed80x16\",\n    \"ufixed80x24\",\n    \"ufixed80x32\",\n    \"ufixed80x40\",\n    \"ufixed80x48\",\n    \"ufixed80x56\",\n    \"ufixed80x64\",\n    \"ufixed80x72\",\n    \"ufixed80x80\",\n    \"ufixed80x88\",\n    \"ufixed80x96\",\n    \"ufixed80x104\",\n    \"ufixed80x112\",\n    \"ufixed80x120\",\n    \"ufixed80x128\",\n    \"ufixed80x136\",\n    \"ufixed80x144\",\n    \"ufixed80x152\",\n    \"ufixed80x160\",\n    \"ufixed80x168\",\n    \"ufixed80x176\",\n    \"ufixed88x8\",\n    \"ufixed88x16\",\n    \"ufixed88x24\",\n    \"ufixed88x32\",\n    \"ufixed88x40\",\n    \"ufixed88x48\",\n    \"ufixed88x56\",\n    \"ufixed88x64\",\n    \"ufixed88x72\",\n    \"ufixed88x80\",\n    \"ufixed88x88\",\n    \"ufixed88x96\",\n    \"ufixed88x104\",\n    \"ufixed88x112\",\n    \"ufixed88x120\",\n    \"ufixed88x128\",\n    \"ufixed88x136\",\n    \"ufixed88x144\",\n    \"ufixed88x152\",\n    \"ufixed88x160\",\n    \"ufixed88x168\",\n    \"ufixed96x8\",\n    \"ufixed96x16\",\n    \"ufixed96x24\",\n    \"ufixed96x32\",\n    \"ufixed96x40\",\n    \"ufixed96x48\",\n    \"ufixed96x56\",\n    \"ufixed96x64\",\n    \"ufixed96x72\",\n    \"ufixed96x80\",\n    \"ufixed96x88\",\n    \"ufixed96x96\",\n    \"ufixed96x104\",\n    \"ufixed96x112\",\n    \"ufixed96x120\",\n    \"ufixed96x128\",\n    \"ufixed96x136\",\n    \"ufixed96x144\",\n    \"ufixed96x152\",\n    \"ufixed96x160\",\n    \"ufixed104x8\",\n    \"ufixed104x16\",\n    \"ufixed104x24\",\n    \"ufixed104x32\",\n    \"ufixed104x40\",\n    \"ufixed104x48\",\n    \"ufixed104x56\",\n    \"ufixed104x64\",\n    \"ufixed104x72\",\n    \"ufixed104x80\",\n    \"ufixed104x88\",\n    \"ufixed104x96\",\n    \"ufixed104x104\",\n    \"ufixed104x112\",\n    \"ufixed104x120\",\n    \"ufixed104x128\",\n    \"ufixed104x136\",\n    \"ufixed104x144\",\n    \"ufixed104x152\",\n    \"ufixed112x8\",\n    \"ufixed112x16\",\n    \"ufixed112x24\",\n    \"ufixed112x32\",\n    \"ufixed112x40\",\n    \"ufixed112x48\",\n    \"ufixed112x56\",\n    \"ufixed112x64\",\n    \"ufixed112x72\",\n    \"ufixed112x80\",\n    \"ufixed112x88\",\n    \"ufixed112x96\",\n    \"ufixed112x104\",\n    \"ufixed112x112\",\n    \"ufixed112x120\",\n    \"ufixed112x128\",\n    \"ufixed112x136\",\n    \"ufixed112x144\",\n    \"ufixed120x8\",\n    \"ufixed120x16\",\n    \"ufixed120x24\",\n    \"ufixed120x32\",\n    \"ufixed120x40\",\n    \"ufixed120x48\",\n    \"ufixed120x56\",\n    \"ufixed120x64\",\n    \"ufixed120x72\",\n    \"ufixed120x80\",\n    \"ufixed120x88\",\n    \"ufixed120x96\",\n    \"ufixed120x104\",\n    \"ufixed120x112\",\n    \"ufixed120x120\",\n    \"ufixed120x128\",\n    \"ufixed120x136\",\n    \"ufixed128x8\",\n    \"ufixed128x16\",\n    \"ufixed128x24\",\n    \"ufixed128x32\",\n    \"ufixed128x40\",\n    \"ufixed128x48\",\n    \"ufixed128x56\",\n    \"ufixed128x64\",\n    \"ufixed128x72\",\n    \"ufixed128x80\",\n    \"ufixed128x88\",\n    \"ufixed128x96\",\n    \"ufixed128x104\",\n    \"ufixed128x112\",\n    \"ufixed128x120\",\n    \"ufixed128x128\",\n    \"ufixed136x8\",\n    \"ufixed136x16\",\n    \"ufixed136x24\",\n    \"ufixed136x32\",\n    \"ufixed136x40\",\n    \"ufixed136x48\",\n    \"ufixed136x56\",\n    \"ufixed136x64\",\n    \"ufixed136x72\",\n    \"ufixed136x80\",\n    \"ufixed136x88\",\n    \"ufixed136x96\",\n    \"ufixed136x104\",\n    \"ufixed136x112\",\n    \"ufixed136x120\",\n    \"ufixed144x8\",\n    \"ufixed144x16\",\n    \"ufixed144x24\",\n    \"ufixed144x32\",\n    \"ufixed144x40\",\n    \"ufixed144x48\",\n    \"ufixed144x56\",\n    \"ufixed144x64\",\n    \"ufixed144x72\",\n    \"ufixed144x80\",\n    \"ufixed144x88\",\n    \"ufixed144x96\",\n    \"ufixed144x104\",\n    \"ufixed144x112\",\n    \"ufixed152x8\",\n    \"ufixed152x16\",\n    \"ufixed152x24\",\n    \"ufixed152x32\",\n    \"ufixed152x40\",\n    \"ufixed152x48\",\n    \"ufixed152x56\",\n    \"ufixed152x64\",\n    \"ufixed152x72\",\n    \"ufixed152x80\",\n    \"ufixed152x88\",\n    \"ufixed152x96\",\n    \"ufixed152x104\",\n    \"ufixed160x8\",\n    \"ufixed160x16\",\n    \"ufixed160x24\",\n    \"ufixed160x32\",\n    \"ufixed160x40\",\n    \"ufixed160x48\",\n    \"ufixed160x56\",\n    \"ufixed160x64\",\n    \"ufixed160x72\",\n    \"ufixed160x80\",\n    \"ufixed160x88\",\n    \"ufixed160x96\",\n    \"ufixed168x8\",\n    \"ufixed168x16\",\n    \"ufixed168x24\",\n    \"ufixed168x32\",\n    \"ufixed168x40\",\n    \"ufixed168x48\",\n    \"ufixed168x56\",\n    \"ufixed168x64\",\n    \"ufixed168x72\",\n    \"ufixed168x80\",\n    \"ufixed168x88\",\n    \"ufixed176x8\",\n    \"ufixed176x16\",\n    \"ufixed176x24\",\n    \"ufixed176x32\",\n    \"ufixed176x40\",\n    \"ufixed176x48\",\n    \"ufixed176x56\",\n    \"ufixed176x64\",\n    \"ufixed176x72\",\n    \"ufixed176x80\",\n    \"ufixed184x8\",\n    \"ufixed184x16\",\n    \"ufixed184x24\",\n    \"ufixed184x32\",\n    \"ufixed184x40\",\n    \"ufixed184x48\",\n    \"ufixed184x56\",\n    \"ufixed184x64\",\n    \"ufixed184x72\",\n    \"ufixed192x8\",\n    \"ufixed192x16\",\n    \"ufixed192x24\",\n    \"ufixed192x32\",\n    \"ufixed192x40\",\n    \"ufixed192x48\",\n    \"ufixed192x56\",\n    \"ufixed192x64\",\n    \"ufixed200x8\",\n    \"ufixed200x16\",\n    \"ufixed200x24\",\n    \"ufixed200x32\",\n    \"ufixed200x40\",\n    \"ufixed200x48\",\n    \"ufixed200x56\",\n    \"ufixed208x8\",\n    \"ufixed208x16\",\n    \"ufixed208x24\",\n    \"ufixed208x32\",\n    \"ufixed208x40\",\n    \"ufixed208x48\",\n    \"ufixed216x8\",\n    \"ufixed216x16\",\n    \"ufixed216x24\",\n    \"ufixed216x32\",\n    \"ufixed216x40\",\n    \"ufixed224x8\",\n    \"ufixed224x16\",\n    \"ufixed224x24\",\n    \"ufixed224x32\",\n    \"ufixed232x8\",\n    \"ufixed232x16\",\n    \"ufixed232x24\",\n    \"ufixed240x8\",\n    \"ufixed240x16\",\n    \"ufixed248x8\",\n    \"event\",\n    \"enum\",\n    \"let\",\n    \"mapping\",\n    \"private\",\n    \"public\",\n    \"external\",\n    \"inherited\",\n    \"payable\",\n    \"true\",\n    \"false\",\n    \"var\",\n    \"import\",\n    \"constant\",\n    \"if\",\n    \"else\",\n    \"for\",\n    \"else\",\n    \"for\",\n    \"while\",\n    \"do\",\n    \"break\",\n    \"continue\",\n    \"throw\",\n    \"returns\",\n    \"return\",\n    \"suicide\",\n    \"new\",\n    \"is\",\n    \"this\",\n    \"super\"\n  ],\n  operators: [\n    \"=\",\n    \">\",\n    \"<\",\n    \"!\",\n    \"~\",\n    \"?\",\n    \":\",\n    \"==\",\n    \"<=\",\n    \">=\",\n    \"!=\",\n    \"&&\",\n    \"||\",\n    \"++\",\n    \"--\",\n    \"+\",\n    \"-\",\n    \"*\",\n    \"/\",\n    \"&\",\n    \"|\",\n    \"^\",\n    \"%\",\n    \"<<\",\n    \">>\",\n    \">>>\",\n    \"+=\",\n    \"-=\",\n    \"*=\",\n    \"/=\",\n    \"&=\",\n    \"|=\",\n    \"^=\",\n    \"%=\",\n    \"<<=\",\n    \">>=\",\n    \">>>=\"\n  ],\n  // we include these common regular expressions\n  symbols: /[=><!~?:&|+\\-*\\/\\^%]+/,\n  escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n  integersuffix: /(ll|LL|u|U|l|L)?(ll|LL|u|U|l|L)?/,\n  floatsuffix: /[fFlL]?/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      // identifiers and keywords\n      [\n        /[a-zA-Z_]\\w*/,\n        {\n          cases: {\n            \"@keywords\": { token: \"keyword.$0\" },\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      // whitespace\n      { include: \"@whitespace\" },\n      // [[ attributes ]].\n      [/\\[\\[.*\\]\\]/, \"annotation\"],\n      // Preprocessor directive\n      [/^\\s*#\\w+/, \"keyword\"],\n      //DataTypes\n      [/int\\d*/, \"keyword\"],\n      // delimiters and operators\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      [/[<>](?!@symbols)/, \"@brackets\"],\n      [\n        /@symbols/,\n        {\n          cases: {\n            \"@operators\": \"delimiter\",\n            \"@default\": \"\"\n          }\n        }\n      ],\n      // numbers\n      [/\\d*\\d+[eE]([\\-+]?\\d+)?(@floatsuffix)/, \"number.float\"],\n      [/\\d*\\.\\d+([eE][\\-+]?\\d+)?(@floatsuffix)/, \"number.float\"],\n      [/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/, \"number.hex\"],\n      [/0[0-7']*[0-7](@integersuffix)/, \"number.octal\"],\n      [/0[bB][0-1']*[0-1](@integersuffix)/, \"number.binary\"],\n      [/\\d[\\d']*\\d(@integersuffix)/, \"number\"],\n      [/\\d(@integersuffix)/, \"number\"],\n      // delimiter: after number because of .\\d floats\n      [/[;,.]/, \"delimiter\"],\n      // strings\n      [/\"([^\"\\\\]|\\\\.)*$/, \"string.invalid\"],\n      // non-teminated string\n      [/\"/, \"string\", \"@string\"],\n      // characters\n      [/'[^\\\\']'/, \"string\"],\n      [/(')(@escapes)(')/, [\"string\", \"string.escape\", \"string\"]],\n      [/'/, \"string.invalid\"]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"\"],\n      [/\\/\\*\\*(?!\\/)/, \"comment.doc\", \"@doccomment\"],\n      [/\\/\\*/, \"comment\", \"@comment\"],\n      [/\\/\\/.*$/, \"comment\"]\n    ],\n    comment: [\n      [/[^\\/*]+/, \"comment\"],\n      [/\\*\\//, \"comment\", \"@pop\"],\n      [/[\\/*]/, \"comment\"]\n    ],\n    //Identical copy of comment above, except for the addition of .doc\n    doccomment: [\n      [/[^\\/*]+/, \"comment.doc\"],\n      [/\\*\\//, \"comment.doc\", \"@pop\"],\n      [/[\\/*]/, \"comment.doc\"]\n    ],\n    string: [\n      [/[^\\\\\"]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/\"/, \"string\", \"@pop\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/sophia/sophia.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/sophia/sophia.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/sophia/sophia.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"aes\",\n  extensions: [\".aes\"],\n  aliases: [\"aes\", \"sophia\", \"Sophia\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/sophia/sophia\"], resolve, reject);\n      });\n    } else {\n      return import(\"./sophia.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/sophia/sophia.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/sophia/sophia.ts\nvar conf = {\n  comments: {\n    lineComment: \"//\",\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"],\n    [\"<\", \">\"]\n  ],\n  autoClosingPairs: [\n    { open: '\"', close: '\"', notIn: [\"string\", \"comment\"] },\n    { open: \"{\", close: \"}\", notIn: [\"string\", \"comment\"] },\n    { open: \"[\", close: \"]\", notIn: [\"string\", \"comment\"] },\n    { open: \"(\", close: \")\", notIn: [\"string\", \"comment\"] }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".aes\",\n  brackets: [\n    { token: \"delimiter.curly\", open: \"{\", close: \"}\" },\n    { token: \"delimiter.parenthesis\", open: \"(\", close: \")\" },\n    { token: \"delimiter.square\", open: \"[\", close: \"]\" },\n    { token: \"delimiter.angle\", open: \"<\", close: \">\" }\n  ],\n  keywords: [\n    // Main keywords\n    \"contract\",\n    \"library\",\n    \"entrypoint\",\n    \"function\",\n    \"stateful\",\n    \"state\",\n    \"hash\",\n    \"signature\",\n    \"tuple\",\n    \"list\",\n    \"address\",\n    \"string\",\n    \"bool\",\n    \"int\",\n    \"record\",\n    \"datatype\",\n    \"type\",\n    \"option\",\n    \"oracle\",\n    \"oracle_query\",\n    \"Call\",\n    \"Bits\",\n    \"Bytes\",\n    \"Oracle\",\n    \"String\",\n    \"Crypto\",\n    \"Address\",\n    \"Auth\",\n    \"Chain\",\n    \"None\",\n    \"Some\",\n    \"bits\",\n    \"bytes\",\n    \"event\",\n    \"let\",\n    \"map\",\n    \"private\",\n    \"public\",\n    \"true\",\n    \"false\",\n    \"var\",\n    \"if\",\n    \"else\",\n    \"throw\"\n  ],\n  operators: [\n    \"=\",\n    \">\",\n    \"<\",\n    \"!\",\n    \"~\",\n    \"?\",\n    \"::\",\n    \":\",\n    \"==\",\n    \"<=\",\n    \">=\",\n    \"!=\",\n    \"&&\",\n    \"||\",\n    \"++\",\n    \"--\",\n    \"+\",\n    \"-\",\n    \"*\",\n    \"/\",\n    \"&\",\n    \"|\",\n    \"^\",\n    \"%\",\n    \"<<\",\n    \">>\",\n    \">>>\",\n    \"+=\",\n    \"-=\",\n    \"*=\",\n    \"/=\",\n    \"&=\",\n    \"|=\",\n    \"^=\",\n    \"%=\",\n    \"<<=\",\n    \">>=\",\n    \">>>=\"\n  ],\n  // we include these common regular expressions\n  symbols: /[=><!~?:&|+\\-*\\/\\^%]+/,\n  escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n  integersuffix: /(ll|LL|u|U|l|L)?(ll|LL|u|U|l|L)?/,\n  floatsuffix: /[fFlL]?/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      // identifiers and keywords\n      [\n        /[a-zA-Z_]\\w*/,\n        {\n          cases: {\n            \"@keywords\": { token: \"keyword.$0\" },\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      // whitespace\n      { include: \"@whitespace\" },\n      // [[ attributes ]].\n      [/\\[\\[.*\\]\\]/, \"annotation\"],\n      // Preprocessor directive\n      [/^\\s*#\\w+/, \"keyword\"],\n      //DataTypes\n      [/int\\d*/, \"keyword\"],\n      // delimiters and operators\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      [/[<>](?!@symbols)/, \"@brackets\"],\n      [\n        /@symbols/,\n        {\n          cases: {\n            \"@operators\": \"delimiter\",\n            \"@default\": \"\"\n          }\n        }\n      ],\n      // numbers\n      [/\\d*\\d+[eE]([\\-+]?\\d+)?(@floatsuffix)/, \"number.float\"],\n      [/\\d*\\.\\d+([eE][\\-+]?\\d+)?(@floatsuffix)/, \"number.float\"],\n      [/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/, \"number.hex\"],\n      [/0[0-7']*[0-7](@integersuffix)/, \"number.octal\"],\n      [/0[bB][0-1']*[0-1](@integersuffix)/, \"number.binary\"],\n      [/\\d[\\d']*\\d(@integersuffix)/, \"number\"],\n      [/\\d(@integersuffix)/, \"number\"],\n      // delimiter: after number because of .\\d floats\n      [/[;,.]/, \"delimiter\"],\n      // strings\n      [/\"([^\"\\\\]|\\\\.)*$/, \"string.invalid\"],\n      // non-teminated string\n      [/\"/, \"string\", \"@string\"],\n      // characters\n      [/'[^\\\\']'/, \"string\"],\n      [/(')(@escapes)(')/, [\"string\", \"string.escape\", \"string\"]],\n      [/'/, \"string.invalid\"]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"\"],\n      [/\\/\\*\\*(?!\\/)/, \"comment.doc\", \"@doccomment\"],\n      [/\\/\\*/, \"comment\", \"@comment\"],\n      [/\\/\\/.*$/, \"comment\"]\n    ],\n    comment: [\n      [/[^\\/*]+/, \"comment\"],\n      [/\\*\\//, \"comment\", \"@pop\"],\n      [/[\\/*]/, \"comment\"]\n    ],\n    //Identical copy of comment above, except for the addition of .doc\n    doccomment: [\n      [/[^\\/*]+/, \"comment.doc\"],\n      [/\\*\\//, \"comment.doc\", \"@pop\"],\n      [/[\\/*]/, \"comment.doc\"]\n    ],\n    string: [\n      [/[^\\\\\"]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/\"/, \"string\", \"@pop\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/sparql/sparql.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/sparql/sparql.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/sparql/sparql.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"sparql\",\n  extensions: [\".rq\"],\n  aliases: [\"sparql\", \"SPARQL\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/sparql/sparql\"], resolve, reject);\n      });\n    } else {\n      return import(\"./sparql.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/sparql/sparql.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/sparql/sparql.ts\nvar conf = {\n  comments: {\n    lineComment: \"#\"\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"'\", close: \"'\", notIn: [\"string\"] },\n    { open: '\"', close: '\"', notIn: [\"string\"] },\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".rq\",\n  brackets: [\n    { token: \"delimiter.curly\", open: \"{\", close: \"}\" },\n    { token: \"delimiter.parenthesis\", open: \"(\", close: \")\" },\n    { token: \"delimiter.square\", open: \"[\", close: \"]\" },\n    { token: \"delimiter.angle\", open: \"<\", close: \">\" }\n  ],\n  keywords: [\n    \"add\",\n    \"as\",\n    \"asc\",\n    \"ask\",\n    \"base\",\n    \"by\",\n    \"clear\",\n    \"construct\",\n    \"copy\",\n    \"create\",\n    \"data\",\n    \"delete\",\n    \"desc\",\n    \"describe\",\n    \"distinct\",\n    \"drop\",\n    \"false\",\n    \"filter\",\n    \"from\",\n    \"graph\",\n    \"group\",\n    \"having\",\n    \"in\",\n    \"insert\",\n    \"limit\",\n    \"load\",\n    \"minus\",\n    \"move\",\n    \"named\",\n    \"not\",\n    \"offset\",\n    \"optional\",\n    \"order\",\n    \"prefix\",\n    \"reduced\",\n    \"select\",\n    \"service\",\n    \"silent\",\n    \"to\",\n    \"true\",\n    \"undef\",\n    \"union\",\n    \"using\",\n    \"values\",\n    \"where\",\n    \"with\"\n  ],\n  builtinFunctions: [\n    \"a\",\n    \"abs\",\n    \"avg\",\n    \"bind\",\n    \"bnode\",\n    \"bound\",\n    \"ceil\",\n    \"coalesce\",\n    \"concat\",\n    \"contains\",\n    \"count\",\n    \"datatype\",\n    \"day\",\n    \"encode_for_uri\",\n    \"exists\",\n    \"floor\",\n    \"group_concat\",\n    \"hours\",\n    \"if\",\n    \"iri\",\n    \"isblank\",\n    \"isiri\",\n    \"isliteral\",\n    \"isnumeric\",\n    \"isuri\",\n    \"lang\",\n    \"langmatches\",\n    \"lcase\",\n    \"max\",\n    \"md5\",\n    \"min\",\n    \"minutes\",\n    \"month\",\n    \"now\",\n    \"rand\",\n    \"regex\",\n    \"replace\",\n    \"round\",\n    \"sameterm\",\n    \"sample\",\n    \"seconds\",\n    \"sha1\",\n    \"sha256\",\n    \"sha384\",\n    \"sha512\",\n    \"str\",\n    \"strafter\",\n    \"strbefore\",\n    \"strdt\",\n    \"strends\",\n    \"strlang\",\n    \"strlen\",\n    \"strstarts\",\n    \"struuid\",\n    \"substr\",\n    \"sum\",\n    \"timezone\",\n    \"tz\",\n    \"ucase\",\n    \"uri\",\n    \"uuid\",\n    \"year\"\n  ],\n  // describe tokens\n  ignoreCase: true,\n  tokenizer: {\n    root: [\n      // resource indicators\n      [/<[^\\s\\u00a0>]*>?/, \"tag\"],\n      // strings\n      { include: \"@strings\" },\n      // line comment\n      [/#.*/, \"comment\"],\n      // special chars with special meaning\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      [/[;,.]/, \"delimiter\"],\n      // (prefixed) name\n      [/[_\\w\\d]+:(\\.(?=[\\w_\\-\\\\%])|[:\\w_-]|\\\\[-\\\\_~.!$&'()*+,;=/?#@%]|%[a-f\\d][a-f\\d])*/, \"tag\"],\n      [/:(\\.(?=[\\w_\\-\\\\%])|[:\\w_-]|\\\\[-\\\\_~.!$&'()*+,;=/?#@%]|%[a-f\\d][a-f\\d])+/, \"tag\"],\n      // identifiers, builtinFunctions and keywords\n      [\n        /[$?]?[_\\w\\d]+/,\n        {\n          cases: {\n            \"@keywords\": { token: \"keyword\" },\n            \"@builtinFunctions\": { token: \"predefined.sql\" },\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      // operators\n      [/\\^\\^/, \"operator.sql\"],\n      [/\\^[*+\\-<>=&|^\\/!?]*/, \"operator.sql\"],\n      [/[*+\\-<>=&|\\/!?]/, \"operator.sql\"],\n      // symbol\n      [/@[a-z\\d\\-]*/, \"metatag.html\"],\n      // whitespaces\n      [/\\s+/, \"white\"]\n    ],\n    strings: [\n      [/'([^'\\\\]|\\\\.)*$/, \"string.invalid\"],\n      // non-terminated single-quoted string\n      [/'$/, \"string.sql\", \"@pop\"],\n      [/'/, \"string.sql\", \"@stringBody\"],\n      [/\"([^\"\\\\]|\\\\.)*$/, \"string.invalid\"],\n      // non-terminated single-quoted string\n      [/\"$/, \"string.sql\", \"@pop\"],\n      [/\"/, \"string.sql\", \"@dblStringBody\"]\n    ],\n    // single-quoted strings\n    stringBody: [\n      [/[^\\\\']+/, \"string.sql\"],\n      [/\\\\./, \"string.escape\"],\n      [/'/, \"string.sql\", \"@pop\"]\n    ],\n    // double-quoted strings\n    dblStringBody: [\n      [/[^\\\\\"]+/, \"string.sql\"],\n      [/\\\\./, \"string.escape\"],\n      [/\"/, \"string.sql\", \"@pop\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/sql/sql.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/sql/sql.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/sql/sql.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"sql\",\n  extensions: [\".sql\"],\n  aliases: [\"SQL\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/sql/sql\"], resolve, reject);\n      });\n    } else {\n      return import(\"./sql.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/sql/sql.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/sql/sql.ts\nvar conf = {\n  comments: {\n    lineComment: \"--\",\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".sql\",\n  ignoreCase: true,\n  brackets: [\n    { open: \"[\", close: \"]\", token: \"delimiter.square\" },\n    { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" }\n  ],\n  keywords: [\n    // This list is generated using `keywords.js`\n    \"ABORT\",\n    \"ABSOLUTE\",\n    \"ACTION\",\n    \"ADA\",\n    \"ADD\",\n    \"AFTER\",\n    \"ALL\",\n    \"ALLOCATE\",\n    \"ALTER\",\n    \"ALWAYS\",\n    \"ANALYZE\",\n    \"AND\",\n    \"ANY\",\n    \"ARE\",\n    \"AS\",\n    \"ASC\",\n    \"ASSERTION\",\n    \"AT\",\n    \"ATTACH\",\n    \"AUTHORIZATION\",\n    \"AUTOINCREMENT\",\n    \"AVG\",\n    \"BACKUP\",\n    \"BEFORE\",\n    \"BEGIN\",\n    \"BETWEEN\",\n    \"BIT\",\n    \"BIT_LENGTH\",\n    \"BOTH\",\n    \"BREAK\",\n    \"BROWSE\",\n    \"BULK\",\n    \"BY\",\n    \"CASCADE\",\n    \"CASCADED\",\n    \"CASE\",\n    \"CAST\",\n    \"CATALOG\",\n    \"CHAR\",\n    \"CHARACTER\",\n    \"CHARACTER_LENGTH\",\n    \"CHAR_LENGTH\",\n    \"CHECK\",\n    \"CHECKPOINT\",\n    \"CLOSE\",\n    \"CLUSTERED\",\n    \"COALESCE\",\n    \"COLLATE\",\n    \"COLLATION\",\n    \"COLUMN\",\n    \"COMMIT\",\n    \"COMPUTE\",\n    \"CONFLICT\",\n    \"CONNECT\",\n    \"CONNECTION\",\n    \"CONSTRAINT\",\n    \"CONSTRAINTS\",\n    \"CONTAINS\",\n    \"CONTAINSTABLE\",\n    \"CONTINUE\",\n    \"CONVERT\",\n    \"CORRESPONDING\",\n    \"COUNT\",\n    \"CREATE\",\n    \"CROSS\",\n    \"CURRENT\",\n    \"CURRENT_DATE\",\n    \"CURRENT_TIME\",\n    \"CURRENT_TIMESTAMP\",\n    \"CURRENT_USER\",\n    \"CURSOR\",\n    \"DATABASE\",\n    \"DATE\",\n    \"DAY\",\n    \"DBCC\",\n    \"DEALLOCATE\",\n    \"DEC\",\n    \"DECIMAL\",\n    \"DECLARE\",\n    \"DEFAULT\",\n    \"DEFERRABLE\",\n    \"DEFERRED\",\n    \"DELETE\",\n    \"DENY\",\n    \"DESC\",\n    \"DESCRIBE\",\n    \"DESCRIPTOR\",\n    \"DETACH\",\n    \"DIAGNOSTICS\",\n    \"DISCONNECT\",\n    \"DISK\",\n    \"DISTINCT\",\n    \"DISTRIBUTED\",\n    \"DO\",\n    \"DOMAIN\",\n    \"DOUBLE\",\n    \"DROP\",\n    \"DUMP\",\n    \"EACH\",\n    \"ELSE\",\n    \"END\",\n    \"END-EXEC\",\n    \"ERRLVL\",\n    \"ESCAPE\",\n    \"EXCEPT\",\n    \"EXCEPTION\",\n    \"EXCLUDE\",\n    \"EXCLUSIVE\",\n    \"EXEC\",\n    \"EXECUTE\",\n    \"EXISTS\",\n    \"EXIT\",\n    \"EXPLAIN\",\n    \"EXTERNAL\",\n    \"EXTRACT\",\n    \"FAIL\",\n    \"FALSE\",\n    \"FETCH\",\n    \"FILE\",\n    \"FILLFACTOR\",\n    \"FILTER\",\n    \"FIRST\",\n    \"FLOAT\",\n    \"FOLLOWING\",\n    \"FOR\",\n    \"FOREIGN\",\n    \"FORTRAN\",\n    \"FOUND\",\n    \"FREETEXT\",\n    \"FREETEXTTABLE\",\n    \"FROM\",\n    \"FULL\",\n    \"FUNCTION\",\n    \"GENERATED\",\n    \"GET\",\n    \"GLOB\",\n    \"GLOBAL\",\n    \"GO\",\n    \"GOTO\",\n    \"GRANT\",\n    \"GROUP\",\n    \"GROUPS\",\n    \"HAVING\",\n    \"HOLDLOCK\",\n    \"HOUR\",\n    \"IDENTITY\",\n    \"IDENTITYCOL\",\n    \"IDENTITY_INSERT\",\n    \"IF\",\n    \"IGNORE\",\n    \"IMMEDIATE\",\n    \"IN\",\n    \"INCLUDE\",\n    \"INDEX\",\n    \"INDEXED\",\n    \"INDICATOR\",\n    \"INITIALLY\",\n    \"INNER\",\n    \"INPUT\",\n    \"INSENSITIVE\",\n    \"INSERT\",\n    \"INSTEAD\",\n    \"INT\",\n    \"INTEGER\",\n    \"INTERSECT\",\n    \"INTERVAL\",\n    \"INTO\",\n    \"IS\",\n    \"ISNULL\",\n    \"ISOLATION\",\n    \"JOIN\",\n    \"KEY\",\n    \"KILL\",\n    \"LANGUAGE\",\n    \"LAST\",\n    \"LEADING\",\n    \"LEFT\",\n    \"LEVEL\",\n    \"LIKE\",\n    \"LIMIT\",\n    \"LINENO\",\n    \"LOAD\",\n    \"LOCAL\",\n    \"LOWER\",\n    \"MATCH\",\n    \"MATERIALIZED\",\n    \"MAX\",\n    \"MERGE\",\n    \"MIN\",\n    \"MINUTE\",\n    \"MODULE\",\n    \"MONTH\",\n    \"NAMES\",\n    \"NATIONAL\",\n    \"NATURAL\",\n    \"NCHAR\",\n    \"NEXT\",\n    \"NO\",\n    \"NOCHECK\",\n    \"NONCLUSTERED\",\n    \"NONE\",\n    \"NOT\",\n    \"NOTHING\",\n    \"NOTNULL\",\n    \"NULL\",\n    \"NULLIF\",\n    \"NULLS\",\n    \"NUMERIC\",\n    \"OCTET_LENGTH\",\n    \"OF\",\n    \"OFF\",\n    \"OFFSET\",\n    \"OFFSETS\",\n    \"ON\",\n    \"ONLY\",\n    \"OPEN\",\n    \"OPENDATASOURCE\",\n    \"OPENQUERY\",\n    \"OPENROWSET\",\n    \"OPENXML\",\n    \"OPTION\",\n    \"OR\",\n    \"ORDER\",\n    \"OTHERS\",\n    \"OUTER\",\n    \"OUTPUT\",\n    \"OVER\",\n    \"OVERLAPS\",\n    \"PAD\",\n    \"PARTIAL\",\n    \"PARTITION\",\n    \"PASCAL\",\n    \"PERCENT\",\n    \"PIVOT\",\n    \"PLAN\",\n    \"POSITION\",\n    \"PRAGMA\",\n    \"PRECEDING\",\n    \"PRECISION\",\n    \"PREPARE\",\n    \"PRESERVE\",\n    \"PRIMARY\",\n    \"PRINT\",\n    \"PRIOR\",\n    \"PRIVILEGES\",\n    \"PROC\",\n    \"PROCEDURE\",\n    \"PUBLIC\",\n    \"QUERY\",\n    \"RAISE\",\n    \"RAISERROR\",\n    \"RANGE\",\n    \"READ\",\n    \"READTEXT\",\n    \"REAL\",\n    \"RECONFIGURE\",\n    \"RECURSIVE\",\n    \"REFERENCES\",\n    \"REGEXP\",\n    \"REINDEX\",\n    \"RELATIVE\",\n    \"RELEASE\",\n    \"RENAME\",\n    \"REPLACE\",\n    \"REPLICATION\",\n    \"RESTORE\",\n    \"RESTRICT\",\n    \"RETURN\",\n    \"RETURNING\",\n    \"REVERT\",\n    \"REVOKE\",\n    \"RIGHT\",\n    \"ROLLBACK\",\n    \"ROW\",\n    \"ROWCOUNT\",\n    \"ROWGUIDCOL\",\n    \"ROWS\",\n    \"RULE\",\n    \"SAVE\",\n    \"SAVEPOINT\",\n    \"SCHEMA\",\n    \"SCROLL\",\n    \"SECOND\",\n    \"SECTION\",\n    \"SECURITYAUDIT\",\n    \"SELECT\",\n    \"SEMANTICKEYPHRASETABLE\",\n    \"SEMANTICSIMILARITYDETAILSTABLE\",\n    \"SEMANTICSIMILARITYTABLE\",\n    \"SESSION\",\n    \"SESSION_USER\",\n    \"SET\",\n    \"SETUSER\",\n    \"SHUTDOWN\",\n    \"SIZE\",\n    \"SMALLINT\",\n    \"SOME\",\n    \"SPACE\",\n    \"SQL\",\n    \"SQLCA\",\n    \"SQLCODE\",\n    \"SQLERROR\",\n    \"SQLSTATE\",\n    \"SQLWARNING\",\n    \"STATISTICS\",\n    \"SUBSTRING\",\n    \"SUM\",\n    \"SYSTEM_USER\",\n    \"TABLE\",\n    \"TABLESAMPLE\",\n    \"TEMP\",\n    \"TEMPORARY\",\n    \"TEXTSIZE\",\n    \"THEN\",\n    \"TIES\",\n    \"TIME\",\n    \"TIMESTAMP\",\n    \"TIMEZONE_HOUR\",\n    \"TIMEZONE_MINUTE\",\n    \"TO\",\n    \"TOP\",\n    \"TRAILING\",\n    \"TRAN\",\n    \"TRANSACTION\",\n    \"TRANSLATE\",\n    \"TRANSLATION\",\n    \"TRIGGER\",\n    \"TRIM\",\n    \"TRUE\",\n    \"TRUNCATE\",\n    \"TRY_CONVERT\",\n    \"TSEQUAL\",\n    \"UNBOUNDED\",\n    \"UNION\",\n    \"UNIQUE\",\n    \"UNKNOWN\",\n    \"UNPIVOT\",\n    \"UPDATE\",\n    \"UPDATETEXT\",\n    \"UPPER\",\n    \"USAGE\",\n    \"USE\",\n    \"USER\",\n    \"USING\",\n    \"VACUUM\",\n    \"VALUE\",\n    \"VALUES\",\n    \"VARCHAR\",\n    \"VARYING\",\n    \"VIEW\",\n    \"VIRTUAL\",\n    \"WAITFOR\",\n    \"WHEN\",\n    \"WHENEVER\",\n    \"WHERE\",\n    \"WHILE\",\n    \"WINDOW\",\n    \"WITH\",\n    \"WITHIN GROUP\",\n    \"WITHOUT\",\n    \"WORK\",\n    \"WRITE\",\n    \"WRITETEXT\",\n    \"YEAR\",\n    \"ZONE\"\n  ],\n  operators: [\n    // Logical\n    \"ALL\",\n    \"AND\",\n    \"ANY\",\n    \"BETWEEN\",\n    \"EXISTS\",\n    \"IN\",\n    \"LIKE\",\n    \"NOT\",\n    \"OR\",\n    \"SOME\",\n    // Set\n    \"EXCEPT\",\n    \"INTERSECT\",\n    \"UNION\",\n    // Join\n    \"APPLY\",\n    \"CROSS\",\n    \"FULL\",\n    \"INNER\",\n    \"JOIN\",\n    \"LEFT\",\n    \"OUTER\",\n    \"RIGHT\",\n    // Predicates\n    \"CONTAINS\",\n    \"FREETEXT\",\n    \"IS\",\n    \"NULL\",\n    // Pivoting\n    \"PIVOT\",\n    \"UNPIVOT\",\n    // Merging\n    \"MATCHED\"\n  ],\n  builtinFunctions: [\n    // Aggregate\n    \"AVG\",\n    \"CHECKSUM_AGG\",\n    \"COUNT\",\n    \"COUNT_BIG\",\n    \"GROUPING\",\n    \"GROUPING_ID\",\n    \"MAX\",\n    \"MIN\",\n    \"SUM\",\n    \"STDEV\",\n    \"STDEVP\",\n    \"VAR\",\n    \"VARP\",\n    // Analytic\n    \"CUME_DIST\",\n    \"FIRST_VALUE\",\n    \"LAG\",\n    \"LAST_VALUE\",\n    \"LEAD\",\n    \"PERCENTILE_CONT\",\n    \"PERCENTILE_DISC\",\n    \"PERCENT_RANK\",\n    // Collation\n    \"COLLATE\",\n    \"COLLATIONPROPERTY\",\n    \"TERTIARY_WEIGHTS\",\n    // Azure\n    \"FEDERATION_FILTERING_VALUE\",\n    // Conversion\n    \"CAST\",\n    \"CONVERT\",\n    \"PARSE\",\n    \"TRY_CAST\",\n    \"TRY_CONVERT\",\n    \"TRY_PARSE\",\n    // Cryptographic\n    \"ASYMKEY_ID\",\n    \"ASYMKEYPROPERTY\",\n    \"CERTPROPERTY\",\n    \"CERT_ID\",\n    \"CRYPT_GEN_RANDOM\",\n    \"DECRYPTBYASYMKEY\",\n    \"DECRYPTBYCERT\",\n    \"DECRYPTBYKEY\",\n    \"DECRYPTBYKEYAUTOASYMKEY\",\n    \"DECRYPTBYKEYAUTOCERT\",\n    \"DECRYPTBYPASSPHRASE\",\n    \"ENCRYPTBYASYMKEY\",\n    \"ENCRYPTBYCERT\",\n    \"ENCRYPTBYKEY\",\n    \"ENCRYPTBYPASSPHRASE\",\n    \"HASHBYTES\",\n    \"IS_OBJECTSIGNED\",\n    \"KEY_GUID\",\n    \"KEY_ID\",\n    \"KEY_NAME\",\n    \"SIGNBYASYMKEY\",\n    \"SIGNBYCERT\",\n    \"SYMKEYPROPERTY\",\n    \"VERIFYSIGNEDBYCERT\",\n    \"VERIFYSIGNEDBYASYMKEY\",\n    // Cursor\n    \"CURSOR_STATUS\",\n    // Datatype\n    \"DATALENGTH\",\n    \"IDENT_CURRENT\",\n    \"IDENT_INCR\",\n    \"IDENT_SEED\",\n    \"IDENTITY\",\n    \"SQL_VARIANT_PROPERTY\",\n    // Datetime\n    \"CURRENT_TIMESTAMP\",\n    \"DATEADD\",\n    \"DATEDIFF\",\n    \"DATEFROMPARTS\",\n    \"DATENAME\",\n    \"DATEPART\",\n    \"DATETIME2FROMPARTS\",\n    \"DATETIMEFROMPARTS\",\n    \"DATETIMEOFFSETFROMPARTS\",\n    \"DAY\",\n    \"EOMONTH\",\n    \"GETDATE\",\n    \"GETUTCDATE\",\n    \"ISDATE\",\n    \"MONTH\",\n    \"SMALLDATETIMEFROMPARTS\",\n    \"SWITCHOFFSET\",\n    \"SYSDATETIME\",\n    \"SYSDATETIMEOFFSET\",\n    \"SYSUTCDATETIME\",\n    \"TIMEFROMPARTS\",\n    \"TODATETIMEOFFSET\",\n    \"YEAR\",\n    // Logical\n    \"CHOOSE\",\n    \"COALESCE\",\n    \"IIF\",\n    \"NULLIF\",\n    // Mathematical\n    \"ABS\",\n    \"ACOS\",\n    \"ASIN\",\n    \"ATAN\",\n    \"ATN2\",\n    \"CEILING\",\n    \"COS\",\n    \"COT\",\n    \"DEGREES\",\n    \"EXP\",\n    \"FLOOR\",\n    \"LOG\",\n    \"LOG10\",\n    \"PI\",\n    \"POWER\",\n    \"RADIANS\",\n    \"RAND\",\n    \"ROUND\",\n    \"SIGN\",\n    \"SIN\",\n    \"SQRT\",\n    \"SQUARE\",\n    \"TAN\",\n    // Metadata\n    \"APP_NAME\",\n    \"APPLOCK_MODE\",\n    \"APPLOCK_TEST\",\n    \"ASSEMBLYPROPERTY\",\n    \"COL_LENGTH\",\n    \"COL_NAME\",\n    \"COLUMNPROPERTY\",\n    \"DATABASE_PRINCIPAL_ID\",\n    \"DATABASEPROPERTYEX\",\n    \"DB_ID\",\n    \"DB_NAME\",\n    \"FILE_ID\",\n    \"FILE_IDEX\",\n    \"FILE_NAME\",\n    \"FILEGROUP_ID\",\n    \"FILEGROUP_NAME\",\n    \"FILEGROUPPROPERTY\",\n    \"FILEPROPERTY\",\n    \"FULLTEXTCATALOGPROPERTY\",\n    \"FULLTEXTSERVICEPROPERTY\",\n    \"INDEX_COL\",\n    \"INDEXKEY_PROPERTY\",\n    \"INDEXPROPERTY\",\n    \"OBJECT_DEFINITION\",\n    \"OBJECT_ID\",\n    \"OBJECT_NAME\",\n    \"OBJECT_SCHEMA_NAME\",\n    \"OBJECTPROPERTY\",\n    \"OBJECTPROPERTYEX\",\n    \"ORIGINAL_DB_NAME\",\n    \"PARSENAME\",\n    \"SCHEMA_ID\",\n    \"SCHEMA_NAME\",\n    \"SCOPE_IDENTITY\",\n    \"SERVERPROPERTY\",\n    \"STATS_DATE\",\n    \"TYPE_ID\",\n    \"TYPE_NAME\",\n    \"TYPEPROPERTY\",\n    // Ranking\n    \"DENSE_RANK\",\n    \"NTILE\",\n    \"RANK\",\n    \"ROW_NUMBER\",\n    // Replication\n    \"PUBLISHINGSERVERNAME\",\n    // Rowset\n    \"OPENDATASOURCE\",\n    \"OPENQUERY\",\n    \"OPENROWSET\",\n    \"OPENXML\",\n    // Security\n    \"CERTENCODED\",\n    \"CERTPRIVATEKEY\",\n    \"CURRENT_USER\",\n    \"HAS_DBACCESS\",\n    \"HAS_PERMS_BY_NAME\",\n    \"IS_MEMBER\",\n    \"IS_ROLEMEMBER\",\n    \"IS_SRVROLEMEMBER\",\n    \"LOGINPROPERTY\",\n    \"ORIGINAL_LOGIN\",\n    \"PERMISSIONS\",\n    \"PWDENCRYPT\",\n    \"PWDCOMPARE\",\n    \"SESSION_USER\",\n    \"SESSIONPROPERTY\",\n    \"SUSER_ID\",\n    \"SUSER_NAME\",\n    \"SUSER_SID\",\n    \"SUSER_SNAME\",\n    \"SYSTEM_USER\",\n    \"USER\",\n    \"USER_ID\",\n    \"USER_NAME\",\n    // String\n    \"ASCII\",\n    \"CHAR\",\n    \"CHARINDEX\",\n    \"CONCAT\",\n    \"DIFFERENCE\",\n    \"FORMAT\",\n    \"LEFT\",\n    \"LEN\",\n    \"LOWER\",\n    \"LTRIM\",\n    \"NCHAR\",\n    \"PATINDEX\",\n    \"QUOTENAME\",\n    \"REPLACE\",\n    \"REPLICATE\",\n    \"REVERSE\",\n    \"RIGHT\",\n    \"RTRIM\",\n    \"SOUNDEX\",\n    \"SPACE\",\n    \"STR\",\n    \"STUFF\",\n    \"SUBSTRING\",\n    \"UNICODE\",\n    \"UPPER\",\n    // System\n    \"BINARY_CHECKSUM\",\n    \"CHECKSUM\",\n    \"CONNECTIONPROPERTY\",\n    \"CONTEXT_INFO\",\n    \"CURRENT_REQUEST_ID\",\n    \"ERROR_LINE\",\n    \"ERROR_NUMBER\",\n    \"ERROR_MESSAGE\",\n    \"ERROR_PROCEDURE\",\n    \"ERROR_SEVERITY\",\n    \"ERROR_STATE\",\n    \"FORMATMESSAGE\",\n    \"GETANSINULL\",\n    \"GET_FILESTREAM_TRANSACTION_CONTEXT\",\n    \"HOST_ID\",\n    \"HOST_NAME\",\n    \"ISNULL\",\n    \"ISNUMERIC\",\n    \"MIN_ACTIVE_ROWVERSION\",\n    \"NEWID\",\n    \"NEWSEQUENTIALID\",\n    \"ROWCOUNT_BIG\",\n    \"XACT_STATE\",\n    // TextImage\n    \"TEXTPTR\",\n    \"TEXTVALID\",\n    // Trigger\n    \"COLUMNS_UPDATED\",\n    \"EVENTDATA\",\n    \"TRIGGER_NESTLEVEL\",\n    \"UPDATE\",\n    // ChangeTracking\n    \"CHANGETABLE\",\n    \"CHANGE_TRACKING_CONTEXT\",\n    \"CHANGE_TRACKING_CURRENT_VERSION\",\n    \"CHANGE_TRACKING_IS_COLUMN_IN_MASK\",\n    \"CHANGE_TRACKING_MIN_VALID_VERSION\",\n    // FullTextSearch\n    \"CONTAINSTABLE\",\n    \"FREETEXTTABLE\",\n    // SemanticTextSearch\n    \"SEMANTICKEYPHRASETABLE\",\n    \"SEMANTICSIMILARITYDETAILSTABLE\",\n    \"SEMANTICSIMILARITYTABLE\",\n    // FileStream\n    \"FILETABLEROOTPATH\",\n    \"GETFILENAMESPACEPATH\",\n    \"GETPATHLOCATOR\",\n    \"PATHNAME\",\n    // ServiceBroker\n    \"GET_TRANSMISSION_STATUS\"\n  ],\n  builtinVariables: [\n    // Configuration\n    \"@@DATEFIRST\",\n    \"@@DBTS\",\n    \"@@LANGID\",\n    \"@@LANGUAGE\",\n    \"@@LOCK_TIMEOUT\",\n    \"@@MAX_CONNECTIONS\",\n    \"@@MAX_PRECISION\",\n    \"@@NESTLEVEL\",\n    \"@@OPTIONS\",\n    \"@@REMSERVER\",\n    \"@@SERVERNAME\",\n    \"@@SERVICENAME\",\n    \"@@SPID\",\n    \"@@TEXTSIZE\",\n    \"@@VERSION\",\n    // Cursor\n    \"@@CURSOR_ROWS\",\n    \"@@FETCH_STATUS\",\n    // Datetime\n    \"@@DATEFIRST\",\n    // Metadata\n    \"@@PROCID\",\n    // System\n    \"@@ERROR\",\n    \"@@IDENTITY\",\n    \"@@ROWCOUNT\",\n    \"@@TRANCOUNT\",\n    // Stats\n    \"@@CONNECTIONS\",\n    \"@@CPU_BUSY\",\n    \"@@IDLE\",\n    \"@@IO_BUSY\",\n    \"@@PACKET_ERRORS\",\n    \"@@PACK_RECEIVED\",\n    \"@@PACK_SENT\",\n    \"@@TIMETICKS\",\n    \"@@TOTAL_ERRORS\",\n    \"@@TOTAL_READ\",\n    \"@@TOTAL_WRITE\"\n  ],\n  pseudoColumns: [\"$ACTION\", \"$IDENTITY\", \"$ROWGUID\", \"$PARTITION\"],\n  tokenizer: {\n    root: [\n      { include: \"@comments\" },\n      { include: \"@whitespace\" },\n      { include: \"@pseudoColumns\" },\n      { include: \"@numbers\" },\n      { include: \"@strings\" },\n      { include: \"@complexIdentifiers\" },\n      { include: \"@scopes\" },\n      [/[;,.]/, \"delimiter\"],\n      [/[()]/, \"@brackets\"],\n      [\n        /[\\w@#$]+/,\n        {\n          cases: {\n            \"@operators\": \"operator\",\n            \"@builtinVariables\": \"predefined\",\n            \"@builtinFunctions\": \"predefined\",\n            \"@keywords\": \"keyword\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      [/[<>=!%&+\\-*/|~^]/, \"operator\"]\n    ],\n    whitespace: [[/\\s+/, \"white\"]],\n    comments: [\n      [/--+.*/, \"comment\"],\n      [/\\/\\*/, { token: \"comment.quote\", next: \"@comment\" }]\n    ],\n    comment: [\n      [/[^*/]+/, \"comment\"],\n      // Not supporting nested comments, as nested comments seem to not be standard?\n      // i.e. http://stackoverflow.com/questions/728172/are-there-multiline-comment-delimiters-in-sql-that-are-vendor-agnostic\n      // [/\\/\\*/, { token: 'comment.quote', next: '@push' }],    // nested comment not allowed :-(\n      [/\\*\\//, { token: \"comment.quote\", next: \"@pop\" }],\n      [/./, \"comment\"]\n    ],\n    pseudoColumns: [\n      [\n        /[$][A-Za-z_][\\w@#$]*/,\n        {\n          cases: {\n            \"@pseudoColumns\": \"predefined\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ]\n    ],\n    numbers: [\n      [/0[xX][0-9a-fA-F]*/, \"number\"],\n      [/[$][+-]*\\d*(\\.\\d*)?/, \"number\"],\n      [/((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][\\-+]?\\d+)?/, \"number\"]\n    ],\n    strings: [\n      [/N'/, { token: \"string\", next: \"@string\" }],\n      [/'/, { token: \"string\", next: \"@string\" }]\n    ],\n    string: [\n      [/[^']+/, \"string\"],\n      [/''/, \"string\"],\n      [/'/, { token: \"string\", next: \"@pop\" }]\n    ],\n    complexIdentifiers: [\n      [/\\[/, { token: \"identifier.quote\", next: \"@bracketedIdentifier\" }],\n      [/\"/, { token: \"identifier.quote\", next: \"@quotedIdentifier\" }]\n    ],\n    bracketedIdentifier: [\n      [/[^\\]]+/, \"identifier\"],\n      [/]]/, \"identifier\"],\n      [/]/, { token: \"identifier.quote\", next: \"@pop\" }]\n    ],\n    quotedIdentifier: [\n      [/[^\"]+/, \"identifier\"],\n      [/\"\"/, \"identifier\"],\n      [/\"/, { token: \"identifier.quote\", next: \"@pop\" }]\n    ],\n    scopes: [\n      [/BEGIN\\s+(DISTRIBUTED\\s+)?TRAN(SACTION)?\\b/i, \"keyword\"],\n      [/BEGIN\\s+TRY\\b/i, { token: \"keyword.try\" }],\n      [/END\\s+TRY\\b/i, { token: \"keyword.try\" }],\n      [/BEGIN\\s+CATCH\\b/i, { token: \"keyword.catch\" }],\n      [/END\\s+CATCH\\b/i, { token: \"keyword.catch\" }],\n      [/(BEGIN|CASE)\\b/i, { token: \"keyword.block\" }],\n      [/END\\b/i, { token: \"keyword.block\" }],\n      [/WHEN\\b/i, { token: \"keyword.choice\" }],\n      [/THEN\\b/i, { token: \"keyword.choice\" }]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/st/st.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/st/st.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/st/st.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"st\",\n  extensions: [\".st\", \".iecst\", \".iecplc\", \".lc3lib\", \".TcPOU\", \".TcDUT\", \".TcGVL\", \".TcIO\"],\n  aliases: [\"StructuredText\", \"scl\", \"stl\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/st/st\"], resolve, reject);\n      });\n    } else {\n      return import(\"./st.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/st/st.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/st/st.ts\nvar conf = {\n  comments: {\n    lineComment: \"//\",\n    blockComment: [\"(*\", \"*)\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"],\n    [\"var\", \"end_var\"],\n    [\"var_input\", \"end_var\"],\n    [\"var_output\", \"end_var\"],\n    [\"var_in_out\", \"end_var\"],\n    [\"var_temp\", \"end_var\"],\n    [\"var_global\", \"end_var\"],\n    [\"var_access\", \"end_var\"],\n    [\"var_external\", \"end_var\"],\n    [\"type\", \"end_type\"],\n    [\"struct\", \"end_struct\"],\n    [\"program\", \"end_program\"],\n    [\"function\", \"end_function\"],\n    [\"function_block\", \"end_function_block\"],\n    [\"action\", \"end_action\"],\n    [\"step\", \"end_step\"],\n    [\"initial_step\", \"end_step\"],\n    [\"transaction\", \"end_transaction\"],\n    [\"configuration\", \"end_configuration\"],\n    [\"tcp\", \"end_tcp\"],\n    [\"recource\", \"end_recource\"],\n    [\"channel\", \"end_channel\"],\n    [\"library\", \"end_library\"],\n    [\"folder\", \"end_folder\"],\n    [\"binaries\", \"end_binaries\"],\n    [\"includes\", \"end_includes\"],\n    [\"sources\", \"end_sources\"]\n  ],\n  autoClosingPairs: [\n    { open: \"[\", close: \"]\" },\n    { open: \"{\", close: \"}\" },\n    { open: \"(\", close: \")\" },\n    { open: \"/*\", close: \"*/\" },\n    { open: \"'\", close: \"'\", notIn: [\"string_sq\"] },\n    { open: '\"', close: '\"', notIn: [\"string_dq\"] },\n    { open: \"var_input\", close: \"end_var\" },\n    { open: \"var_output\", close: \"end_var\" },\n    { open: \"var_in_out\", close: \"end_var\" },\n    { open: \"var_temp\", close: \"end_var\" },\n    { open: \"var_global\", close: \"end_var\" },\n    { open: \"var_access\", close: \"end_var\" },\n    { open: \"var_external\", close: \"end_var\" },\n    { open: \"type\", close: \"end_type\" },\n    { open: \"struct\", close: \"end_struct\" },\n    { open: \"program\", close: \"end_program\" },\n    { open: \"function\", close: \"end_function\" },\n    { open: \"function_block\", close: \"end_function_block\" },\n    { open: \"action\", close: \"end_action\" },\n    { open: \"step\", close: \"end_step\" },\n    { open: \"initial_step\", close: \"end_step\" },\n    { open: \"transaction\", close: \"end_transaction\" },\n    { open: \"configuration\", close: \"end_configuration\" },\n    { open: \"tcp\", close: \"end_tcp\" },\n    { open: \"recource\", close: \"end_recource\" },\n    { open: \"channel\", close: \"end_channel\" },\n    { open: \"library\", close: \"end_library\" },\n    { open: \"folder\", close: \"end_folder\" },\n    { open: \"binaries\", close: \"end_binaries\" },\n    { open: \"includes\", close: \"end_includes\" },\n    { open: \"sources\", close: \"end_sources\" }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" },\n    { open: \"var\", close: \"end_var\" },\n    { open: \"var_input\", close: \"end_var\" },\n    { open: \"var_output\", close: \"end_var\" },\n    { open: \"var_in_out\", close: \"end_var\" },\n    { open: \"var_temp\", close: \"end_var\" },\n    { open: \"var_global\", close: \"end_var\" },\n    { open: \"var_access\", close: \"end_var\" },\n    { open: \"var_external\", close: \"end_var\" },\n    { open: \"type\", close: \"end_type\" },\n    { open: \"struct\", close: \"end_struct\" },\n    { open: \"program\", close: \"end_program\" },\n    { open: \"function\", close: \"end_function\" },\n    { open: \"function_block\", close: \"end_function_block\" },\n    { open: \"action\", close: \"end_action\" },\n    { open: \"step\", close: \"end_step\" },\n    { open: \"initial_step\", close: \"end_step\" },\n    { open: \"transaction\", close: \"end_transaction\" },\n    { open: \"configuration\", close: \"end_configuration\" },\n    { open: \"tcp\", close: \"end_tcp\" },\n    { open: \"recource\", close: \"end_recource\" },\n    { open: \"channel\", close: \"end_channel\" },\n    { open: \"library\", close: \"end_library\" },\n    { open: \"folder\", close: \"end_folder\" },\n    { open: \"binaries\", close: \"end_binaries\" },\n    { open: \"includes\", close: \"end_includes\" },\n    { open: \"sources\", close: \"end_sources\" }\n  ],\n  folding: {\n    markers: {\n      start: new RegExp(\"^\\\\s*#pragma\\\\s+region\\\\b\"),\n      end: new RegExp(\"^\\\\s*#pragma\\\\s+endregion\\\\b\")\n    }\n  }\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".st\",\n  ignoreCase: true,\n  brackets: [\n    { token: \"delimiter.curly\", open: \"{\", close: \"}\" },\n    { token: \"delimiter.parenthesis\", open: \"(\", close: \")\" },\n    { token: \"delimiter.square\", open: \"[\", close: \"]\" }\n  ],\n  keywords: [\n    \"if\",\n    \"end_if\",\n    \"elsif\",\n    \"else\",\n    \"case\",\n    \"of\",\n    \"to\",\n    \"__try\",\n    \"__catch\",\n    \"__finally\",\n    \"do\",\n    \"with\",\n    \"by\",\n    \"while\",\n    \"repeat\",\n    \"end_while\",\n    \"end_repeat\",\n    \"end_case\",\n    \"for\",\n    \"end_for\",\n    \"task\",\n    \"retain\",\n    \"non_retain\",\n    \"constant\",\n    \"with\",\n    \"at\",\n    \"exit\",\n    \"return\",\n    \"interval\",\n    \"priority\",\n    \"address\",\n    \"port\",\n    \"on_channel\",\n    \"then\",\n    \"iec\",\n    \"file\",\n    \"uses\",\n    \"version\",\n    \"packagetype\",\n    \"displayname\",\n    \"copyright\",\n    \"summary\",\n    \"vendor\",\n    \"common_source\",\n    \"from\",\n    \"extends\",\n    \"implements\"\n  ],\n  constant: [\"false\", \"true\", \"null\"],\n  defineKeywords: [\n    \"var\",\n    \"var_input\",\n    \"var_output\",\n    \"var_in_out\",\n    \"var_temp\",\n    \"var_global\",\n    \"var_access\",\n    \"var_external\",\n    \"end_var\",\n    \"type\",\n    \"end_type\",\n    \"struct\",\n    \"end_struct\",\n    \"program\",\n    \"end_program\",\n    \"function\",\n    \"end_function\",\n    \"function_block\",\n    \"end_function_block\",\n    \"interface\",\n    \"end_interface\",\n    \"method\",\n    \"end_method\",\n    \"property\",\n    \"end_property\",\n    \"namespace\",\n    \"end_namespace\",\n    \"configuration\",\n    \"end_configuration\",\n    \"tcp\",\n    \"end_tcp\",\n    \"resource\",\n    \"end_resource\",\n    \"channel\",\n    \"end_channel\",\n    \"library\",\n    \"end_library\",\n    \"folder\",\n    \"end_folder\",\n    \"binaries\",\n    \"end_binaries\",\n    \"includes\",\n    \"end_includes\",\n    \"sources\",\n    \"end_sources\",\n    \"action\",\n    \"end_action\",\n    \"step\",\n    \"initial_step\",\n    \"end_step\",\n    \"transaction\",\n    \"end_transaction\"\n  ],\n  typeKeywords: [\n    \"int\",\n    \"sint\",\n    \"dint\",\n    \"lint\",\n    \"usint\",\n    \"uint\",\n    \"udint\",\n    \"ulint\",\n    \"real\",\n    \"lreal\",\n    \"time\",\n    \"date\",\n    \"time_of_day\",\n    \"date_and_time\",\n    \"string\",\n    \"bool\",\n    \"byte\",\n    \"word\",\n    \"dword\",\n    \"array\",\n    \"pointer\",\n    \"lword\"\n  ],\n  operators: [\n    \"=\",\n    \">\",\n    \"<\",\n    \":\",\n    \":=\",\n    \"<=\",\n    \">=\",\n    \"<>\",\n    \"&\",\n    \"+\",\n    \"-\",\n    \"*\",\n    \"**\",\n    \"MOD\",\n    \"^\",\n    \"or\",\n    \"and\",\n    \"not\",\n    \"xor\",\n    \"abs\",\n    \"acos\",\n    \"asin\",\n    \"atan\",\n    \"cos\",\n    \"exp\",\n    \"expt\",\n    \"ln\",\n    \"log\",\n    \"sin\",\n    \"sqrt\",\n    \"tan\",\n    \"sel\",\n    \"max\",\n    \"min\",\n    \"limit\",\n    \"mux\",\n    \"shl\",\n    \"shr\",\n    \"rol\",\n    \"ror\",\n    \"indexof\",\n    \"sizeof\",\n    \"adr\",\n    \"adrinst\",\n    \"bitadr\",\n    \"is_valid\",\n    \"ref\",\n    \"ref_to\"\n  ],\n  builtinVariables: [],\n  builtinFunctions: [\n    \"sr\",\n    \"rs\",\n    \"tp\",\n    \"ton\",\n    \"tof\",\n    \"eq\",\n    \"ge\",\n    \"le\",\n    \"lt\",\n    \"ne\",\n    \"round\",\n    \"trunc\",\n    \"ctd\",\n    \"\\u0441tu\",\n    \"ctud\",\n    \"r_trig\",\n    \"f_trig\",\n    \"move\",\n    \"concat\",\n    \"delete\",\n    \"find\",\n    \"insert\",\n    \"left\",\n    \"len\",\n    \"replace\",\n    \"right\",\n    \"rtc\"\n  ],\n  // we include these common regular expressions\n  symbols: /[=><!~?:&|+\\-*\\/\\^%]+/,\n  // C# style strings\n  escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      [/(\\.\\.)/, \"delimiter\"],\n      [/\\b(16#[0-9A-Fa-f\\_]*)+\\b/, \"number.hex\"],\n      [/\\b(2#[01\\_]+)+\\b/, \"number.binary\"],\n      [/\\b(8#[0-9\\_]*)+\\b/, \"number.octal\"],\n      [/\\b\\d*\\.\\d+([eE][\\-+]?\\d+)?\\b/, \"number.float\"],\n      [/\\b(L?REAL)#[0-9\\_\\.e]+\\b/, \"number.float\"],\n      [/\\b(BYTE|(?:D|L)?WORD|U?(?:S|D|L)?INT)#[0-9\\_]+\\b/, \"number\"],\n      [/\\d+/, \"number\"],\n      [/\\b(T|DT|TOD)#[0-9:-_shmyd]+\\b/, \"tag\"],\n      [/\\%(I|Q|M)(X|B|W|D|L)[0-9\\.]+/, \"tag\"],\n      [/\\%(I|Q|M)[0-9\\.]*/, \"tag\"],\n      [/\\b[A-Za-z]{1,6}#[0-9]+\\b/, \"tag\"],\n      [/\\b(TO_|CTU_|CTD_|CTUD_|MUX_|SEL_)[A_Za-z]+\\b/, \"predefined\"],\n      [/\\b[A_Za-z]+(_TO_)[A_Za-z]+\\b/, \"predefined\"],\n      [/[;]/, \"delimiter\"],\n      [/[.]/, { token: \"delimiter\", next: \"@params\" }],\n      // identifiers and keywords\n      [\n        /[a-zA-Z_]\\w*/,\n        {\n          cases: {\n            \"@operators\": \"operators\",\n            \"@keywords\": \"keyword\",\n            \"@typeKeywords\": \"type\",\n            \"@defineKeywords\": \"variable\",\n            \"@constant\": \"constant\",\n            \"@builtinVariables\": \"predefined\",\n            \"@builtinFunctions\": \"predefined\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      { include: \"@whitespace\" },\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      [/\"([^\"\\\\]|\\\\.)*$/, \"string.invalid\"],\n      // non-teminated string\n      [/\"/, { token: \"string.quote\", bracket: \"@open\", next: \"@string_dq\" }],\n      [/'/, { token: \"string.quote\", bracket: \"@open\", next: \"@string_sq\" }],\n      [/'[^\\\\']'/, \"string\"],\n      [/(')(@escapes)(')/, [\"string\", \"string.escape\", \"string\"]],\n      [/'/, \"string.invalid\"]\n    ],\n    params: [\n      [/\\b[A-Za-z0-9_]+\\b(?=\\()/, { token: \"identifier\", next: \"@pop\" }],\n      [/\\b[A-Za-z0-9_]+\\b/, \"variable.name\", \"@pop\"]\n    ],\n    comment: [\n      [/[^\\/*]+/, \"comment\"],\n      [/\\/\\*/, \"comment\", \"@push\"],\n      // nested comment\n      [\"\\\\*/\", \"comment\", \"@pop\"],\n      [/[\\/*]/, \"comment\"]\n    ],\n    comment2: [\n      [/[^\\(*]+/, \"comment\"],\n      [/\\(\\*/, \"comment\", \"@push\"],\n      // nested comment\n      [\"\\\\*\\\\)\", \"comment\", \"@pop\"],\n      [/[\\(*]/, \"comment\"]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"white\"],\n      [/\\/\\/.*$/, \"comment\"],\n      [/\\/\\*/, \"comment\", \"@comment\"],\n      [/\\(\\*/, \"comment\", \"@comment2\"]\n    ],\n    string_dq: [\n      [/[^\\\\\"]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/\"/, { token: \"string.quote\", bracket: \"@close\", next: \"@pop\" }]\n    ],\n    string_sq: [\n      [/[^\\\\']+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/'/, { token: \"string.quote\", bracket: \"@close\", next: \"@pop\" }]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/swift/swift.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/swift/swift.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/swift/swift.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"swift\",\n  aliases: [\"Swift\", \"swift\"],\n  extensions: [\".swift\"],\n  mimetypes: [\"text/swift\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/swift/swift\"], resolve, reject);\n      });\n    } else {\n      return import(\"./swift.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/swift/swift.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/swift/swift.ts\nvar conf = {\n  comments: {\n    lineComment: \"//\",\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" },\n    { open: \"`\", close: \"`\" }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" },\n    { open: \"`\", close: \"`\" }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".swift\",\n  // TODO(owensd): Support the full range of unicode valid identifiers.\n  identifier: /[a-zA-Z_][\\w$]*/,\n  attributes: [\n    \"@GKInspectable\",\n    \"@IBAction\",\n    \"@IBDesignable\",\n    \"@IBInspectable\",\n    \"@IBOutlet\",\n    \"@IBSegueAction\",\n    \"@NSApplicationMain\",\n    \"@NSCopying\",\n    \"@NSManaged\",\n    \"@Sendable\",\n    \"@UIApplicationMain\",\n    \"@autoclosure\",\n    \"@actorIndependent\",\n    \"@asyncHandler\",\n    \"@available\",\n    \"@convention\",\n    \"@derivative\",\n    \"@differentiable\",\n    \"@discardableResult\",\n    \"@dynamicCallable\",\n    \"@dynamicMemberLookup\",\n    \"@escaping\",\n    \"@frozen\",\n    \"@globalActor\",\n    \"@inlinable\",\n    \"@inline\",\n    \"@main\",\n    \"@noDerivative\",\n    \"@nonobjc\",\n    \"@noreturn\",\n    \"@objc\",\n    \"@objcMembers\",\n    \"@preconcurrency\",\n    \"@propertyWrapper\",\n    \"@requires_stored_property_inits\",\n    \"@resultBuilder\",\n    \"@testable\",\n    \"@unchecked\",\n    \"@unknown\",\n    \"@usableFromInline\",\n    \"@warn_unqualified_access\"\n  ],\n  accessmodifiers: [\"open\", \"public\", \"internal\", \"fileprivate\", \"private\"],\n  keywords: [\n    \"#available\",\n    \"#colorLiteral\",\n    \"#column\",\n    \"#dsohandle\",\n    \"#else\",\n    \"#elseif\",\n    \"#endif\",\n    \"#error\",\n    \"#file\",\n    \"#fileID\",\n    \"#fileLiteral\",\n    \"#filePath\",\n    \"#function\",\n    \"#if\",\n    \"#imageLiteral\",\n    \"#keyPath\",\n    \"#line\",\n    \"#selector\",\n    \"#sourceLocation\",\n    \"#warning\",\n    \"Any\",\n    \"Protocol\",\n    \"Self\",\n    \"Type\",\n    \"actor\",\n    \"as\",\n    \"assignment\",\n    \"associatedtype\",\n    \"associativity\",\n    \"async\",\n    \"await\",\n    \"break\",\n    \"case\",\n    \"catch\",\n    \"class\",\n    \"continue\",\n    \"convenience\",\n    \"default\",\n    \"defer\",\n    \"deinit\",\n    \"didSet\",\n    \"do\",\n    \"dynamic\",\n    \"dynamicType\",\n    \"else\",\n    \"enum\",\n    \"extension\",\n    \"fallthrough\",\n    \"false\",\n    \"fileprivate\",\n    \"final\",\n    \"for\",\n    \"func\",\n    \"get\",\n    \"guard\",\n    \"higherThan\",\n    \"if\",\n    \"import\",\n    \"in\",\n    \"indirect\",\n    \"infix\",\n    \"init\",\n    \"inout\",\n    \"internal\",\n    \"is\",\n    \"isolated\",\n    \"lazy\",\n    \"left\",\n    \"let\",\n    \"lowerThan\",\n    \"mutating\",\n    \"nil\",\n    \"none\",\n    \"nonisolated\",\n    \"nonmutating\",\n    \"open\",\n    \"operator\",\n    \"optional\",\n    \"override\",\n    \"postfix\",\n    \"precedence\",\n    \"precedencegroup\",\n    \"prefix\",\n    \"private\",\n    \"protocol\",\n    \"public\",\n    \"repeat\",\n    \"required\",\n    \"rethrows\",\n    \"return\",\n    \"right\",\n    \"safe\",\n    \"self\",\n    \"set\",\n    \"some\",\n    \"static\",\n    \"struct\",\n    \"subscript\",\n    \"super\",\n    \"switch\",\n    \"throw\",\n    \"throws\",\n    \"true\",\n    \"try\",\n    \"typealias\",\n    \"unowned\",\n    \"unsafe\",\n    \"var\",\n    \"weak\",\n    \"where\",\n    \"while\",\n    \"willSet\",\n    \"__consuming\",\n    \"__owned\"\n  ],\n  symbols: /[=(){}\\[\\].,:;@#\\_&\\-<>`?!+*\\\\\\/]/,\n  // Moved . to operatorstart so it can be a delimiter\n  operatorstart: /[\\/=\\-+!*%<>&|^~?\\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-\\u3030]/,\n  operatorend: /[\\u0300-\\u036F\\u1DC0-\\u1DFF\\u20D0-\\u20FF\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uE0100-\\uE01EF]/,\n  operators: /(@operatorstart)((@operatorstart)|(@operatorend))*/,\n  // TODO(owensd): These are borrowed from C#; need to validate correctness for Swift.\n  escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n  tokenizer: {\n    root: [\n      { include: \"@whitespace\" },\n      { include: \"@comment\" },\n      { include: \"@attribute\" },\n      { include: \"@literal\" },\n      { include: \"@keyword\" },\n      { include: \"@invokedmethod\" },\n      { include: \"@symbol\" }\n    ],\n    whitespace: [\n      [/\\s+/, \"white\"],\n      [/\"\"\"/, \"string.quote\", \"@endDblDocString\"]\n    ],\n    endDblDocString: [\n      [/[^\"]+/, \"string\"],\n      [/\\\\\"/, \"string\"],\n      [/\"\"\"/, \"string.quote\", \"@popall\"],\n      [/\"/, \"string\"]\n    ],\n    symbol: [\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      [/[<>](?!@symbols)/, \"@brackets\"],\n      [/[.]/, \"delimiter\"],\n      [/@operators/, \"operator\"],\n      [/@symbols/, \"operator\"]\n    ],\n    comment: [\n      [/\\/\\/\\/.*$/, \"comment.doc\"],\n      [/\\/\\*\\*/, \"comment.doc\", \"@commentdocbody\"],\n      [/\\/\\/.*$/, \"comment\"],\n      [/\\/\\*/, \"comment\", \"@commentbody\"]\n    ],\n    commentdocbody: [\n      [/\\/\\*/, \"comment\", \"@commentbody\"],\n      [/\\*\\//, \"comment.doc\", \"@pop\"],\n      [/\\:[a-zA-Z]+\\:/, \"comment.doc.param\"],\n      [/./, \"comment.doc\"]\n    ],\n    commentbody: [\n      [/\\/\\*/, \"comment\", \"@commentbody\"],\n      [/\\*\\//, \"comment\", \"@pop\"],\n      [/./, \"comment\"]\n    ],\n    attribute: [\n      [\n        /@@@identifier/,\n        {\n          cases: {\n            \"@attributes\": \"keyword.control\",\n            \"@default\": \"\"\n          }\n        }\n      ]\n    ],\n    literal: [\n      [/\"/, { token: \"string.quote\", next: \"@stringlit\" }],\n      [/0[b]([01]_?)+/, \"number.binary\"],\n      [/0[o]([0-7]_?)+/, \"number.octal\"],\n      [/0[x]([0-9a-fA-F]_?)+([pP][\\-+](\\d_?)+)?/, \"number.hex\"],\n      [/(\\d_?)*\\.(\\d_?)+([eE][\\-+]?(\\d_?)+)?/, \"number.float\"],\n      [/(\\d_?)+/, \"number\"]\n    ],\n    stringlit: [\n      [/\\\\\\(/, { token: \"operator\", next: \"@interpolatedexpression\" }],\n      [/@escapes/, \"string\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/\"/, { token: \"string.quote\", next: \"@pop\" }],\n      [/./, \"string\"]\n    ],\n    interpolatedexpression: [\n      [/\\(/, { token: \"operator\", next: \"@interpolatedexpression\" }],\n      [/\\)/, { token: \"operator\", next: \"@pop\" }],\n      { include: \"@literal\" },\n      { include: \"@keyword\" },\n      { include: \"@symbol\" }\n    ],\n    keyword: [\n      [/`/, { token: \"operator\", next: \"@escapedkeyword\" }],\n      [\n        /@identifier/,\n        {\n          cases: {\n            \"@keywords\": \"keyword\",\n            \"[A-Z][a-zA-Z0-9$]*\": \"type.identifier\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ]\n    ],\n    escapedkeyword: [\n      [/`/, { token: \"operator\", next: \"@pop\" }],\n      [/./, \"identifier\"]\n    ],\n    invokedmethod: [\n      [\n        /([.])(@identifier)/,\n        {\n          cases: {\n            $2: [\"delimeter\", \"type.identifier\"],\n            \"@default\": \"\"\n          }\n        }\n      ]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n/*!---------------------------------------------------------------------------------------------\n *  Copyright (C) David Owens II, owensd.io. All rights reserved.\n *--------------------------------------------------------------------------------------------*/\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/systemverilog/systemverilog.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/systemverilog/systemverilog.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/systemverilog/systemverilog.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"systemverilog\",\n  extensions: [\".sv\", \".svh\"],\n  aliases: [\"SV\", \"sv\", \"SystemVerilog\", \"systemverilog\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/systemverilog/systemverilog\"], resolve, reject);\n      });\n    } else {\n      return import(\"./systemverilog.js\");\n    }\n  }\n});\nregisterLanguage({\n  id: \"verilog\",\n  extensions: [\".v\", \".vh\"],\n  aliases: [\"V\", \"v\", \"Verilog\", \"verilog\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/systemverilog/systemverilog\"], resolve, reject);\n      });\n    } else {\n      return import(\"./systemverilog.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/systemverilog/systemverilog.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/systemverilog/systemverilog.ts\nvar conf = {\n  comments: {\n    lineComment: \"//\",\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"],\n    [\"begin\", \"end\"],\n    [\"case\", \"endcase\"],\n    [\"casex\", \"endcase\"],\n    [\"casez\", \"endcase\"],\n    [\"checker\", \"endchecker\"],\n    [\"class\", \"endclass\"],\n    [\"clocking\", \"endclocking\"],\n    [\"config\", \"endconfig\"],\n    [\"function\", \"endfunction\"],\n    [\"generate\", \"endgenerate\"],\n    [\"group\", \"endgroup\"],\n    [\"interface\", \"endinterface\"],\n    [\"module\", \"endmodule\"],\n    [\"package\", \"endpackage\"],\n    [\"primitive\", \"endprimitive\"],\n    [\"program\", \"endprogram\"],\n    [\"property\", \"endproperty\"],\n    [\"specify\", \"endspecify\"],\n    [\"sequence\", \"endsequence\"],\n    [\"table\", \"endtable\"],\n    [\"task\", \"endtask\"]\n  ],\n  autoClosingPairs: [\n    { open: \"[\", close: \"]\" },\n    { open: \"{\", close: \"}\" },\n    { open: \"(\", close: \")\" },\n    { open: \"'\", close: \"'\", notIn: [\"string\", \"comment\"] },\n    { open: '\"', close: '\"', notIn: [\"string\"] }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  folding: {\n    offSide: false,\n    markers: {\n      start: new RegExp(\n        \"^(?:\\\\s*|.*(?!\\\\/[\\\\/\\\\*])[^\\\\w])(?:begin|case(x|z)?|class|clocking|config|covergroup|function|generate|interface|module|package|primitive|property|program|sequence|specify|table|task)\\\\b\"\n      ),\n      end: new RegExp(\n        \"^(?:\\\\s*|.*(?!\\\\/[\\\\/\\\\*])[^\\\\w])(?:end|endcase|endclass|endclocking|endconfig|endgroup|endfunction|endgenerate|endinterface|endmodule|endpackage|endprimitive|endproperty|endprogram|endsequence|endspecify|endtable|endtask)\\\\b\"\n      )\n    }\n  }\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".sv\",\n  brackets: [\n    { token: \"delimiter.curly\", open: \"{\", close: \"}\" },\n    { token: \"delimiter.parenthesis\", open: \"(\", close: \")\" },\n    { token: \"delimiter.square\", open: \"[\", close: \"]\" },\n    { token: \"delimiter.angle\", open: \"<\", close: \">\" }\n  ],\n  keywords: [\n    \"accept_on\",\n    \"alias\",\n    \"always\",\n    \"always_comb\",\n    \"always_ff\",\n    \"always_latch\",\n    \"and\",\n    \"assert\",\n    \"assign\",\n    \"assume\",\n    \"automatic\",\n    \"before\",\n    \"begin\",\n    \"bind\",\n    \"bins\",\n    \"binsof\",\n    \"bit\",\n    \"break\",\n    \"buf\",\n    \"bufif0\",\n    \"bufif1\",\n    \"byte\",\n    \"case\",\n    \"casex\",\n    \"casez\",\n    \"cell\",\n    \"chandle\",\n    \"checker\",\n    \"class\",\n    \"clocking\",\n    \"cmos\",\n    \"config\",\n    \"const\",\n    \"constraint\",\n    \"context\",\n    \"continue\",\n    \"cover\",\n    \"covergroup\",\n    \"coverpoint\",\n    \"cross\",\n    \"deassign\",\n    \"default\",\n    \"defparam\",\n    \"design\",\n    \"disable\",\n    \"dist\",\n    \"do\",\n    \"edge\",\n    \"else\",\n    \"end\",\n    \"endcase\",\n    \"endchecker\",\n    \"endclass\",\n    \"endclocking\",\n    \"endconfig\",\n    \"endfunction\",\n    \"endgenerate\",\n    \"endgroup\",\n    \"endinterface\",\n    \"endmodule\",\n    \"endpackage\",\n    \"endprimitive\",\n    \"endprogram\",\n    \"endproperty\",\n    \"endspecify\",\n    \"endsequence\",\n    \"endtable\",\n    \"endtask\",\n    \"enum\",\n    \"event\",\n    \"eventually\",\n    \"expect\",\n    \"export\",\n    \"extends\",\n    \"extern\",\n    \"final\",\n    \"first_match\",\n    \"for\",\n    \"force\",\n    \"foreach\",\n    \"forever\",\n    \"fork\",\n    \"forkjoin\",\n    \"function\",\n    \"generate\",\n    \"genvar\",\n    \"global\",\n    \"highz0\",\n    \"highz1\",\n    \"if\",\n    \"iff\",\n    \"ifnone\",\n    \"ignore_bins\",\n    \"illegal_bins\",\n    \"implements\",\n    \"implies\",\n    \"import\",\n    \"incdir\",\n    \"include\",\n    \"initial\",\n    \"inout\",\n    \"input\",\n    \"inside\",\n    \"instance\",\n    \"int\",\n    \"integer\",\n    \"interconnect\",\n    \"interface\",\n    \"intersect\",\n    \"join\",\n    \"join_any\",\n    \"join_none\",\n    \"large\",\n    \"let\",\n    \"liblist\",\n    \"library\",\n    \"local\",\n    \"localparam\",\n    \"logic\",\n    \"longint\",\n    \"macromodule\",\n    \"matches\",\n    \"medium\",\n    \"modport\",\n    \"module\",\n    \"nand\",\n    \"negedge\",\n    \"nettype\",\n    \"new\",\n    \"nexttime\",\n    \"nmos\",\n    \"nor\",\n    \"noshowcancelled\",\n    \"not\",\n    \"notif0\",\n    \"notif1\",\n    \"null\",\n    \"or\",\n    \"output\",\n    \"package\",\n    \"packed\",\n    \"parameter\",\n    \"pmos\",\n    \"posedge\",\n    \"primitive\",\n    \"priority\",\n    \"program\",\n    \"property\",\n    \"protected\",\n    \"pull0\",\n    \"pull1\",\n    \"pulldown\",\n    \"pullup\",\n    \"pulsestyle_ondetect\",\n    \"pulsestyle_onevent\",\n    \"pure\",\n    \"rand\",\n    \"randc\",\n    \"randcase\",\n    \"randsequence\",\n    \"rcmos\",\n    \"real\",\n    \"realtime\",\n    \"ref\",\n    \"reg\",\n    \"reject_on\",\n    \"release\",\n    \"repeat\",\n    \"restrict\",\n    \"return\",\n    \"rnmos\",\n    \"rpmos\",\n    \"rtran\",\n    \"rtranif0\",\n    \"rtranif1\",\n    \"s_always\",\n    \"s_eventually\",\n    \"s_nexttime\",\n    \"s_until\",\n    \"s_until_with\",\n    \"scalared\",\n    \"sequence\",\n    \"shortint\",\n    \"shortreal\",\n    \"showcancelled\",\n    \"signed\",\n    \"small\",\n    \"soft\",\n    \"solve\",\n    \"specify\",\n    \"specparam\",\n    \"static\",\n    \"string\",\n    \"strong\",\n    \"strong0\",\n    \"strong1\",\n    \"struct\",\n    \"super\",\n    \"supply0\",\n    \"supply1\",\n    \"sync_accept_on\",\n    \"sync_reject_on\",\n    \"table\",\n    \"tagged\",\n    \"task\",\n    \"this\",\n    \"throughout\",\n    \"time\",\n    \"timeprecision\",\n    \"timeunit\",\n    \"tran\",\n    \"tranif0\",\n    \"tranif1\",\n    \"tri\",\n    \"tri0\",\n    \"tri1\",\n    \"triand\",\n    \"trior\",\n    \"trireg\",\n    \"type\",\n    \"typedef\",\n    \"union\",\n    \"unique\",\n    \"unique0\",\n    \"unsigned\",\n    \"until\",\n    \"until_with\",\n    \"untyped\",\n    \"use\",\n    \"uwire\",\n    \"var\",\n    \"vectored\",\n    \"virtual\",\n    \"void\",\n    \"wait\",\n    \"wait_order\",\n    \"wand\",\n    \"weak\",\n    \"weak0\",\n    \"weak1\",\n    \"while\",\n    \"wildcard\",\n    \"wire\",\n    \"with\",\n    \"within\",\n    \"wor\",\n    \"xnor\",\n    \"xor\"\n  ],\n  builtin_gates: [\n    \"and\",\n    \"nand\",\n    \"nor\",\n    \"or\",\n    \"xor\",\n    \"xnor\",\n    \"buf\",\n    \"not\",\n    \"bufif0\",\n    \"bufif1\",\n    \"notif1\",\n    \"notif0\",\n    \"cmos\",\n    \"nmos\",\n    \"pmos\",\n    \"rcmos\",\n    \"rnmos\",\n    \"rpmos\",\n    \"tran\",\n    \"tranif1\",\n    \"tranif0\",\n    \"rtran\",\n    \"rtranif1\",\n    \"rtranif0\"\n  ],\n  operators: [\n    // assignment operators\n    \"=\",\n    \"+=\",\n    \"-=\",\n    \"*=\",\n    \"/=\",\n    \"%=\",\n    \"&=\",\n    \"|=\",\n    \"^=\",\n    \"<<=\",\n    \">>+\",\n    \"<<<=\",\n    \">>>=\",\n    // conditional expression\n    \"?\",\n    \":\",\n    // Unary operators\n    \"+\",\n    \"-\",\n    \"!\",\n    \"~\",\n    \"&\",\n    \"~&\",\n    \"|\",\n    \"~|\",\n    \"^\",\n    \"~^\",\n    \"^~\",\n    //binary operators\n    \"+\",\n    \"-\",\n    \"*\",\n    \"/\",\n    \"%\",\n    \"==\",\n    \"!=\",\n    \"===\",\n    \"!==\",\n    \"==?\",\n    \"!=?\",\n    \"&&\",\n    \"||\",\n    \"**\",\n    \"<\",\n    \"<=\",\n    \">\",\n    \">=\",\n    \"&\",\n    \"|\",\n    \"^\",\n    \">>\",\n    \"<<\",\n    \">>>\",\n    \"<<<\",\n    // increment or decrement operator\n    \"++\",\n    \"--\",\n    //binary logical operator\n    \"->\",\n    \"<->\",\n    // binary set membership operator\n    \"inside\",\n    // binary distrubution operator\n    \"dist\",\n    \"::\",\n    \"+:\",\n    \"-:\",\n    \"*>\",\n    \"&&&\",\n    \"|->\",\n    \"|=>\",\n    \"#=#\"\n  ],\n  // we include these common regular expressions\n  symbols: /[=><!~?:&|+\\-*\\/\\^%#]+/,\n  escapes: /%%|\\\\(?:[antvf\\\\\"']|x[0-9A-Fa-f]{1,2}|[0-7]{1,3})/,\n  identifier: /(?:[a-zA-Z_][a-zA-Z0-9_$\\.]*|\\\\\\S+ )/,\n  systemcall: /[$][a-zA-Z0-9_]+/,\n  timeunits: /s|ms|us|ns|ps|fs/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      // module instances\n      [\n        /^(\\s*)(@identifier)/,\n        [\n          \"\",\n          {\n            cases: {\n              \"@builtin_gates\": {\n                token: \"keyword.$2\",\n                next: \"@module_instance\"\n              },\n              table: {\n                token: \"keyword.$2\",\n                next: \"@table\"\n              },\n              \"@keywords\": { token: \"keyword.$2\" },\n              \"@default\": {\n                token: \"identifier\",\n                next: \"@module_instance\"\n              }\n            }\n          }\n        ]\n      ],\n      // include statements\n      [/^\\s*`include/, { token: \"keyword.directive.include\", next: \"@include\" }],\n      // Preprocessor directives\n      [/^\\s*`\\s*\\w+/, \"keyword\"],\n      // identifiers and keywords\n      { include: \"@identifier_or_keyword\" },\n      // whitespace and comments\n      { include: \"@whitespace\" },\n      // (* attributes *).\n      [/\\(\\*.*\\*\\)/, \"annotation\"],\n      // Systemcall\n      [/@systemcall/, \"variable.predefined\"],\n      // delimiters and operators\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      [/[<>](?!@symbols)/, \"@brackets\"],\n      [\n        /@symbols/,\n        {\n          cases: {\n            \"@operators\": \"delimiter\",\n            \"@default\": \"\"\n          }\n        }\n      ],\n      // numbers\n      { include: \"@numbers\" },\n      // delimiter: after number because of .\\d floats\n      [/[;,.]/, \"delimiter\"],\n      // strings\n      { include: \"@strings\" }\n    ],\n    identifier_or_keyword: [\n      [\n        /@identifier/,\n        {\n          cases: {\n            \"@keywords\": { token: \"keyword.$0\" },\n            \"@default\": \"identifier\"\n          }\n        }\n      ]\n    ],\n    numbers: [\n      [/\\d+?[\\d_]*(?:\\.[\\d_]+)?[eE][\\-+]?\\d+/, \"number.float\"],\n      [/\\d+?[\\d_]*\\.[\\d_]+(?:\\s*@timeunits)?/, \"number.float\"],\n      [/(?:\\d+?[\\d_]*\\s*)?'[sS]?[dD]\\s*[0-9xXzZ?]+?[0-9xXzZ?_]*/, \"number\"],\n      [/(?:\\d+?[\\d_]*\\s*)?'[sS]?[bB]\\s*[0-1xXzZ?]+?[0-1xXzZ?_]*/, \"number.binary\"],\n      [/(?:\\d+?[\\d_]*\\s*)?'[sS]?[oO]\\s*[0-7xXzZ?]+?[0-7xXzZ?_]*/, \"number.octal\"],\n      [/(?:\\d+?[\\d_]*\\s*)?'[sS]?[hH]\\s*[0-9a-fA-FxXzZ?]+?[0-9a-fA-FxXzZ?_]*/, \"number.hex\"],\n      [/1step/, \"number\"],\n      [/[\\dxXzZ]+?[\\dxXzZ_]*(?:\\s*@timeunits)?/, \"number\"],\n      [/'[01xXzZ]+/, \"number\"]\n    ],\n    module_instance: [\n      { include: \"@whitespace\" },\n      [/(#?)(\\()/, [\"\", { token: \"@brackets\", next: \"@port_connection\" }]],\n      [/@identifier\\s*[;={}\\[\\],]/, { token: \"@rematch\", next: \"@pop\" }],\n      [/@symbols|[;={}\\[\\],]/, { token: \"@rematch\", next: \"@pop\" }],\n      [/@identifier/, \"type\"],\n      [/;/, \"delimiter\", \"@pop\"]\n    ],\n    port_connection: [\n      { include: \"@identifier_or_keyword\" },\n      { include: \"@whitespace\" },\n      [/@systemcall/, \"variable.predefined\"],\n      { include: \"@numbers\" },\n      { include: \"@strings\" },\n      [/[,]/, \"delimiter\"],\n      [/\\(/, \"@brackets\", \"@port_connection\"],\n      [/\\)/, \"@brackets\", \"@pop\"]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"\"],\n      [/\\/\\*/, \"comment\", \"@comment\"],\n      [/\\/\\/.*$/, \"comment\"]\n    ],\n    comment: [\n      [/[^\\/*]+/, \"comment\"],\n      [/\\*\\//, \"comment\", \"@pop\"],\n      [/[\\/*]/, \"comment\"]\n    ],\n    strings: [\n      [/\"([^\"\\\\]|\\\\.)*$/, \"string.invalid\"],\n      // non-teminated string\n      [/\"/, \"string\", \"@string\"]\n    ],\n    string: [\n      [/[^\\\\\"]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/\"/, \"string\", \"@pop\"]\n    ],\n    include: [\n      [\n        /(\\s*)(\")([\\w*\\/*]*)(.\\w*)(\")/,\n        [\n          \"\",\n          \"string.include.identifier\",\n          \"string.include.identifier\",\n          \"string.include.identifier\",\n          { token: \"string.include.identifier\", next: \"@pop\" }\n        ]\n      ],\n      [\n        /(\\s*)(<)([\\w*\\/*]*)(.\\w*)(>)/,\n        [\n          \"\",\n          \"string.include.identifier\",\n          \"string.include.identifier\",\n          \"string.include.identifier\",\n          { token: \"string.include.identifier\", next: \"@pop\" }\n        ]\n      ]\n    ],\n    table: [\n      { include: \"@whitespace\" },\n      [/[()]/, \"@brackets\"],\n      [/[:;]/, \"delimiter\"],\n      [/[01\\-*?xXbBrRfFpPnN]/, \"variable.predefined\"],\n      [\"endtable\", \"keyword.endtable\", \"@pop\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/tcl/tcl.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/tcl/tcl.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/tcl/tcl.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"tcl\",\n  extensions: [\".tcl\"],\n  aliases: [\"tcl\", \"Tcl\", \"tcltk\", \"TclTk\", \"tcl/tk\", \"Tcl/Tk\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/tcl/tcl\"], resolve, reject);\n      });\n    } else {\n      return import(\"./tcl.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/tcl/tcl.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/tcl/tcl.ts\nvar conf = {\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ]\n};\nvar language = {\n  tokenPostfix: \".tcl\",\n  specialFunctions: [\n    \"set\",\n    \"unset\",\n    \"rename\",\n    \"variable\",\n    \"proc\",\n    \"coroutine\",\n    \"foreach\",\n    \"incr\",\n    \"append\",\n    \"lappend\",\n    \"linsert\",\n    \"lreplace\"\n  ],\n  mainFunctions: [\n    \"if\",\n    \"then\",\n    \"elseif\",\n    \"else\",\n    \"case\",\n    \"switch\",\n    \"while\",\n    \"for\",\n    \"break\",\n    \"continue\",\n    \"return\",\n    \"package\",\n    \"namespace\",\n    \"catch\",\n    \"exit\",\n    \"eval\",\n    \"expr\",\n    \"uplevel\",\n    \"upvar\"\n  ],\n  builtinFunctions: [\n    \"file\",\n    \"info\",\n    \"concat\",\n    \"join\",\n    \"lindex\",\n    \"list\",\n    \"llength\",\n    \"lrange\",\n    \"lsearch\",\n    \"lsort\",\n    \"split\",\n    \"array\",\n    \"parray\",\n    \"binary\",\n    \"format\",\n    \"regexp\",\n    \"regsub\",\n    \"scan\",\n    \"string\",\n    \"subst\",\n    \"dict\",\n    \"cd\",\n    \"clock\",\n    \"exec\",\n    \"glob\",\n    \"pid\",\n    \"pwd\",\n    \"close\",\n    \"eof\",\n    \"fblocked\",\n    \"fconfigure\",\n    \"fcopy\",\n    \"fileevent\",\n    \"flush\",\n    \"gets\",\n    \"open\",\n    \"puts\",\n    \"read\",\n    \"seek\",\n    \"socket\",\n    \"tell\",\n    \"interp\",\n    \"after\",\n    \"auto_execok\",\n    \"auto_load\",\n    \"auto_mkindex\",\n    \"auto_reset\",\n    \"bgerror\",\n    \"error\",\n    \"global\",\n    \"history\",\n    \"load\",\n    \"source\",\n    \"time\",\n    \"trace\",\n    \"unknown\",\n    \"unset\",\n    \"update\",\n    \"vwait\",\n    \"winfo\",\n    \"wm\",\n    \"bind\",\n    \"event\",\n    \"pack\",\n    \"place\",\n    \"grid\",\n    \"font\",\n    \"bell\",\n    \"clipboard\",\n    \"destroy\",\n    \"focus\",\n    \"grab\",\n    \"lower\",\n    \"option\",\n    \"raise\",\n    \"selection\",\n    \"send\",\n    \"tk\",\n    \"tkwait\",\n    \"tk_bisque\",\n    \"tk_focusNext\",\n    \"tk_focusPrev\",\n    \"tk_focusFollowsMouse\",\n    \"tk_popup\",\n    \"tk_setPalette\"\n  ],\n  symbols: /[=><!~?:&|+\\-*\\/\\^%]+/,\n  brackets: [\n    { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" },\n    { open: \"{\", close: \"}\", token: \"delimiter.curly\" },\n    { open: \"[\", close: \"]\", token: \"delimiter.square\" }\n  ],\n  escapes: /\\\\(?:[abfnrtv\\\\\"'\\[\\]\\{\\};\\$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n  variables: /(?:\\$+(?:(?:\\:\\:?)?[a-zA-Z_]\\w*)+)/,\n  tokenizer: {\n    root: [\n      // identifiers and keywords\n      [\n        /[a-zA-Z_]\\w*/,\n        {\n          cases: {\n            \"@specialFunctions\": {\n              token: \"keyword.flow\",\n              next: \"@specialFunc\"\n            },\n            \"@mainFunctions\": \"keyword\",\n            \"@builtinFunctions\": \"variable\",\n            \"@default\": \"operator.scss\"\n          }\n        }\n      ],\n      [/\\s+\\-+(?!\\d|\\.)\\w*|{\\*}/, \"metatag\"],\n      // whitespace\n      { include: \"@whitespace\" },\n      // delimiters and operators\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      [/@symbols/, \"operator\"],\n      [/\\$+(?:\\:\\:)?\\{/, { token: \"identifier\", next: \"@nestedVariable\" }],\n      [/@variables/, \"type.identifier\"],\n      [/\\.(?!\\d|\\.)[\\w\\-]*/, \"operator.sql\"],\n      // numbers\n      [/\\d+(\\.\\d+)?/, \"number\"],\n      [/\\d+/, \"number\"],\n      // delimiter\n      [/;/, \"delimiter\"],\n      // strings\n      [/\"/, { token: \"string.quote\", bracket: \"@open\", next: \"@dstring\" }],\n      [/'/, { token: \"string.quote\", bracket: \"@open\", next: \"@sstring\" }]\n    ],\n    dstring: [\n      [/\\[/, { token: \"@brackets\", next: \"@nestedCall\" }],\n      [/\\$+(?:\\:\\:)?\\{/, { token: \"identifier\", next: \"@nestedVariable\" }],\n      [/@variables/, \"type.identifier\"],\n      [/[^\\\\$\\[\\]\"]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\"/, { token: \"string.quote\", bracket: \"@close\", next: \"@pop\" }]\n    ],\n    sstring: [\n      [/\\[/, { token: \"@brackets\", next: \"@nestedCall\" }],\n      [/\\$+(?:\\:\\:)?\\{/, { token: \"identifier\", next: \"@nestedVariable\" }],\n      [/@variables/, \"type.identifier\"],\n      [/[^\\\\$\\[\\]']+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/'/, { token: \"string.quote\", bracket: \"@close\", next: \"@pop\" }]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"white\"],\n      [/#.*\\\\$/, { token: \"comment\", next: \"@newlineComment\" }],\n      [/#.*(?!\\\\)$/, \"comment\"]\n    ],\n    newlineComment: [\n      [/.*\\\\$/, \"comment\"],\n      [/.*(?!\\\\)$/, { token: \"comment\", next: \"@pop\" }]\n    ],\n    nestedVariable: [\n      [/[^\\{\\}\\$]+/, \"type.identifier\"],\n      [/\\}/, { token: \"identifier\", next: \"@pop\" }]\n    ],\n    nestedCall: [\n      [/\\[/, { token: \"@brackets\", next: \"@nestedCall\" }],\n      [/\\]/, { token: \"@brackets\", next: \"@pop\" }],\n      { include: \"root\" }\n    ],\n    specialFunc: [\n      [/\"/, { token: \"string\", next: \"@dstring\" }],\n      [/'/, { token: \"string\", next: \"@sstring\" }],\n      [/\\S+/, { token: \"type\", next: \"@pop\" }]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/twig/twig.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/twig/twig.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/twig/twig.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"twig\",\n  extensions: [\".twig\"],\n  aliases: [\"Twig\", \"twig\"],\n  mimetypes: [\"text/x-twig\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/twig/twig\"], resolve, reject);\n      });\n    } else {\n      return import(\"./twig.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/twig/twig.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/twig/twig.ts\nvar conf = {\n  wordPattern: /(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\$\\^\\&\\*\\(\\)\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\s]+)/g,\n  comments: {\n    blockComment: [\"{#\", \"#}\"]\n  },\n  brackets: [\n    [\"{#\", \"#}\"],\n    [\"{%\", \"%}\"],\n    [\"{{\", \"}}\"],\n    [\"(\", \")\"],\n    [\"[\", \"]\"],\n    // HTML\n    [\"<!--\", \"-->\"],\n    [\"<\", \">\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{# \", close: \" #}\" },\n    { open: \"{% \", close: \" %}\" },\n    { open: \"{{ \", close: \" }}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  surroundingPairs: [\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" },\n    // HTML\n    { open: \"<\", close: \">\" }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \"\",\n  ignoreCase: true,\n  keywords: [\n    // (opening) tags\n    \"apply\",\n    \"autoescape\",\n    \"block\",\n    \"deprecated\",\n    \"do\",\n    \"embed\",\n    \"extends\",\n    \"flush\",\n    \"for\",\n    \"from\",\n    \"if\",\n    \"import\",\n    \"include\",\n    \"macro\",\n    \"sandbox\",\n    \"set\",\n    \"use\",\n    \"verbatim\",\n    \"with\",\n    // closing tags\n    \"endapply\",\n    \"endautoescape\",\n    \"endblock\",\n    \"endembed\",\n    \"endfor\",\n    \"endif\",\n    \"endmacro\",\n    \"endsandbox\",\n    \"endset\",\n    \"endwith\",\n    // literals\n    \"true\",\n    \"false\"\n  ],\n  tokenizer: {\n    root: [\n      // whitespace\n      [/\\s+/],\n      // Twig Tag Delimiters\n      [/{#/, \"comment.twig\", \"@commentState\"],\n      [/{%[-~]?/, \"delimiter.twig\", \"@blockState\"],\n      [/{{[-~]?/, \"delimiter.twig\", \"@variableState\"],\n      // HTML\n      [/<!DOCTYPE/, \"metatag.html\", \"@doctype\"],\n      [/<!--/, \"comment.html\", \"@comment\"],\n      [/(<)((?:[\\w\\-]+:)?[\\w\\-]+)(\\s*)(\\/>)/, [\"delimiter.html\", \"tag.html\", \"\", \"delimiter.html\"]],\n      [/(<)(script)/, [\"delimiter.html\", { token: \"tag.html\", next: \"@script\" }]],\n      [/(<)(style)/, [\"delimiter.html\", { token: \"tag.html\", next: \"@style\" }]],\n      [/(<)((?:[\\w\\-]+:)?[\\w\\-]+)/, [\"delimiter.html\", { token: \"tag.html\", next: \"@otherTag\" }]],\n      [/(<\\/)((?:[\\w\\-]+:)?[\\w\\-]+)/, [\"delimiter.html\", { token: \"tag.html\", next: \"@otherTag\" }]],\n      [/</, \"delimiter.html\"],\n      [/[^<{]+/]\n      // text\n    ],\n    /**\n     * Comment Tag Handling\n     */\n    commentState: [\n      [/#}/, \"comment.twig\", \"@pop\"],\n      [/./, \"comment.twig\"]\n    ],\n    /**\n     * Block Tag Handling\n     */\n    blockState: [\n      [/[-~]?%}/, \"delimiter.twig\", \"@pop\"],\n      // whitespace\n      [/\\s+/],\n      // verbatim\n      // Unlike other blocks, verbatim ehas its own state\n      // transition to ensure we mark its contents as strings.\n      [\n        /(verbatim)(\\s*)([-~]?%})/,\n        [\"keyword.twig\", \"\", { token: \"delimiter.twig\", next: \"@rawDataState\" }]\n      ],\n      { include: \"expression\" }\n    ],\n    rawDataState: [\n      // endverbatim\n      [\n        /({%[-~]?)(\\s*)(endverbatim)(\\s*)([-~]?%})/,\n        [\"delimiter.twig\", \"\", \"keyword.twig\", \"\", { token: \"delimiter.twig\", next: \"@popall\" }]\n      ],\n      [/./, \"string.twig\"]\n    ],\n    /**\n     * Variable Tag Handling\n     */\n    variableState: [[/[-~]?}}/, \"delimiter.twig\", \"@pop\"], { include: \"expression\" }],\n    stringState: [\n      // closing double quoted string\n      [/\"/, \"string.twig\", \"@pop\"],\n      // interpolation start\n      [/#{\\s*/, \"string.twig\", \"@interpolationState\"],\n      // string part\n      [/[^#\"\\\\]*(?:(?:\\\\.|#(?!\\{))[^#\"\\\\]*)*/, \"string.twig\"]\n    ],\n    interpolationState: [\n      // interpolation end\n      [/}/, \"string.twig\", \"@pop\"],\n      { include: \"expression\" }\n    ],\n    /**\n     * Expression Handling\n     */\n    expression: [\n      // whitespace\n      [/\\s+/],\n      // operators - math\n      [/\\+|-|\\/{1,2}|%|\\*{1,2}/, \"operators.twig\"],\n      // operators - logic\n      [/(and|or|not|b-and|b-xor|b-or)(\\s+)/, [\"operators.twig\", \"\"]],\n      // operators - comparison (symbols)\n      [/==|!=|<|>|>=|<=/, \"operators.twig\"],\n      // operators - comparison (words)\n      [/(starts with|ends with|matches)(\\s+)/, [\"operators.twig\", \"\"]],\n      // operators - containment\n      [/(in)(\\s+)/, [\"operators.twig\", \"\"]],\n      // operators - test\n      [/(is)(\\s+)/, [\"operators.twig\", \"\"]],\n      // operators - misc\n      [/\\||~|:|\\.{1,2}|\\?{1,2}/, \"operators.twig\"],\n      // names\n      [\n        /[^\\W\\d][\\w]*/,\n        {\n          cases: {\n            \"@keywords\": \"keyword.twig\",\n            \"@default\": \"variable.twig\"\n          }\n        }\n      ],\n      // numbers\n      [/\\d+(\\.\\d+)?/, \"number.twig\"],\n      // punctuation\n      [/\\(|\\)|\\[|\\]|{|}|,/, \"delimiter.twig\"],\n      // strings\n      [/\"([^#\"\\\\]*(?:\\\\.[^#\"\\\\]*)*)\"|\\'([^\\'\\\\]*(?:\\\\.[^\\'\\\\]*)*)\\'/, \"string.twig\"],\n      // opening double quoted string\n      [/\"/, \"string.twig\", \"@stringState\"],\n      // misc syntactic constructs\n      // These are not operators per se, but for the purposes of lexical analysis we\n      // can treat them as such.\n      // arrow functions\n      [/=>/, \"operators.twig\"],\n      // assignment\n      [/=/, \"operators.twig\"]\n    ],\n    /**\n     * HTML\n     */\n    doctype: [\n      [/[^>]+/, \"metatag.content.html\"],\n      [/>/, \"metatag.html\", \"@pop\"]\n    ],\n    comment: [\n      [/-->/, \"comment.html\", \"@pop\"],\n      [/[^-]+/, \"comment.content.html\"],\n      [/./, \"comment.content.html\"]\n    ],\n    otherTag: [\n      [/\\/?>/, \"delimiter.html\", \"@pop\"],\n      [/\"([^\"]*)\"/, \"attribute.value.html\"],\n      [/'([^']*)'/, \"attribute.value.html\"],\n      [/[\\w\\-]+/, \"attribute.name.html\"],\n      [/=/, \"delimiter.html\"],\n      [/[ \\t\\r\\n]+/]\n      // whitespace\n    ],\n    // -- BEGIN <script> tags handling\n    // After <script\n    script: [\n      [/type/, \"attribute.name.html\", \"@scriptAfterType\"],\n      [/\"([^\"]*)\"/, \"attribute.value.html\"],\n      [/'([^']*)'/, \"attribute.value.html\"],\n      [/[\\w\\-]+/, \"attribute.name.html\"],\n      [/=/, \"delimiter.html\"],\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@scriptEmbedded\",\n          nextEmbedded: \"text/javascript\"\n        }\n      ],\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [\n        /(<\\/)(script\\s*)(>)/,\n        [\"delimiter.html\", \"tag.html\", { token: \"delimiter.html\", next: \"@pop\" }]\n      ]\n    ],\n    // After <script ... type\n    scriptAfterType: [\n      [/=/, \"delimiter.html\", \"@scriptAfterTypeEquals\"],\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@scriptEmbedded\",\n          nextEmbedded: \"text/javascript\"\n        }\n      ],\n      // cover invalid e.g. <script type>\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/<\\/script\\s*>/, { token: \"@rematch\", next: \"@pop\" }]\n    ],\n    // After <script ... type =\n    scriptAfterTypeEquals: [\n      [\n        /\"([^\"]*)\"/,\n        {\n          token: \"attribute.value.html\",\n          switchTo: \"@scriptWithCustomType.$1\"\n        }\n      ],\n      [\n        /'([^']*)'/,\n        {\n          token: \"attribute.value.html\",\n          switchTo: \"@scriptWithCustomType.$1\"\n        }\n      ],\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@scriptEmbedded\",\n          nextEmbedded: \"text/javascript\"\n        }\n      ],\n      // cover invalid e.g. <script type=>\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/<\\/script\\s*>/, { token: \"@rematch\", next: \"@pop\" }]\n    ],\n    // After <script ... type = $S2\n    scriptWithCustomType: [\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@scriptEmbedded.$S2\",\n          nextEmbedded: \"$S2\"\n        }\n      ],\n      [/\"([^\"]*)\"/, \"attribute.value.html\"],\n      [/'([^']*)'/, \"attribute.value.html\"],\n      [/[\\w\\-]+/, \"attribute.name.html\"],\n      [/=/, \"delimiter.html\"],\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/<\\/script\\s*>/, { token: \"@rematch\", next: \"@pop\" }]\n    ],\n    scriptEmbedded: [\n      [/<\\/script/, { token: \"@rematch\", next: \"@pop\", nextEmbedded: \"@pop\" }],\n      [/[^<]+/, \"\"]\n    ],\n    // -- END <script> tags handling\n    // -- BEGIN <style> tags handling\n    // After <style\n    style: [\n      [/type/, \"attribute.name.html\", \"@styleAfterType\"],\n      [/\"([^\"]*)\"/, \"attribute.value.html\"],\n      [/'([^']*)'/, \"attribute.value.html\"],\n      [/[\\w\\-]+/, \"attribute.name.html\"],\n      [/=/, \"delimiter.html\"],\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@styleEmbedded\",\n          nextEmbedded: \"text/css\"\n        }\n      ],\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [\n        /(<\\/)(style\\s*)(>)/,\n        [\"delimiter.html\", \"tag.html\", { token: \"delimiter.html\", next: \"@pop\" }]\n      ]\n    ],\n    // After <style ... type\n    styleAfterType: [\n      [/=/, \"delimiter.html\", \"@styleAfterTypeEquals\"],\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@styleEmbedded\",\n          nextEmbedded: \"text/css\"\n        }\n      ],\n      // cover invalid e.g. <style type>\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/<\\/style\\s*>/, { token: \"@rematch\", next: \"@pop\" }]\n    ],\n    // After <style ... type =\n    styleAfterTypeEquals: [\n      [\n        /\"([^\"]*)\"/,\n        {\n          token: \"attribute.value.html\",\n          switchTo: \"@styleWithCustomType.$1\"\n        }\n      ],\n      [\n        /'([^']*)'/,\n        {\n          token: \"attribute.value.html\",\n          switchTo: \"@styleWithCustomType.$1\"\n        }\n      ],\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@styleEmbedded\",\n          nextEmbedded: \"text/css\"\n        }\n      ],\n      // cover invalid e.g. <style type=>\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/<\\/style\\s*>/, { token: \"@rematch\", next: \"@pop\" }]\n    ],\n    // After <style ... type = $S2\n    styleWithCustomType: [\n      [\n        />/,\n        {\n          token: \"delimiter.html\",\n          next: \"@styleEmbedded.$S2\",\n          nextEmbedded: \"$S2\"\n        }\n      ],\n      [/\"([^\"]*)\"/, \"attribute.value.html\"],\n      [/'([^']*)'/, \"attribute.value.html\"],\n      [/[\\w\\-]+/, \"attribute.name.html\"],\n      [/=/, \"delimiter.html\"],\n      [/[ \\t\\r\\n]+/],\n      // whitespace\n      [/<\\/style\\s*>/, { token: \"@rematch\", next: \"@pop\" }]\n    ],\n    styleEmbedded: [\n      [/<\\/style/, { token: \"@rematch\", next: \"@pop\", nextEmbedded: \"@pop\" }],\n      [/[^<]+/, \"\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/typescript/typescript.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/typescript/typescript.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/typescript/typescript.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"typescript\",\n  extensions: [\".ts\", \".tsx\", \".cts\", \".mts\"],\n  aliases: [\"TypeScript\", \"ts\", \"typescript\"],\n  mimetypes: [\"text/typescript\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/typescript/typescript\"], resolve, reject);\n      });\n    } else {\n      return import(\"./typescript.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/typescript/typescript.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\n\n// src/fillers/monaco-editor-core.ts\nvar monaco_editor_core_exports = {};\n__reExport(monaco_editor_core_exports, monaco_editor_core_star);\nimport * as monaco_editor_core_star from \"../../editor/editor.api.js\";\n\n// src/basic-languages/typescript/typescript.ts\nvar conf = {\n  wordPattern: /(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,\n  comments: {\n    lineComment: \"//\",\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  onEnterRules: [\n    {\n      // e.g. /** | */\n      beforeText: /^\\s*\\/\\*\\*(?!\\/)([^\\*]|\\*(?!\\/))*$/,\n      afterText: /^\\s*\\*\\/$/,\n      action: {\n        indentAction: monaco_editor_core_exports.languages.IndentAction.IndentOutdent,\n        appendText: \" * \"\n      }\n    },\n    {\n      // e.g. /** ...|\n      beforeText: /^\\s*\\/\\*\\*(?!\\/)([^\\*]|\\*(?!\\/))*$/,\n      action: {\n        indentAction: monaco_editor_core_exports.languages.IndentAction.None,\n        appendText: \" * \"\n      }\n    },\n    {\n      // e.g.  * ...|\n      beforeText: /^(\\t|(\\ \\ ))*\\ \\*(\\ ([^\\*]|\\*(?!\\/))*)?$/,\n      action: {\n        indentAction: monaco_editor_core_exports.languages.IndentAction.None,\n        appendText: \"* \"\n      }\n    },\n    {\n      // e.g.  */|\n      beforeText: /^(\\t|(\\ \\ ))*\\ \\*\\/\\s*$/,\n      action: {\n        indentAction: monaco_editor_core_exports.languages.IndentAction.None,\n        removeText: 1\n      }\n    }\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"', notIn: [\"string\"] },\n    { open: \"'\", close: \"'\", notIn: [\"string\", \"comment\"] },\n    { open: \"`\", close: \"`\", notIn: [\"string\", \"comment\"] },\n    { open: \"/**\", close: \" */\", notIn: [\"string\"] }\n  ],\n  folding: {\n    markers: {\n      start: new RegExp(\"^\\\\s*//\\\\s*#?region\\\\b\"),\n      end: new RegExp(\"^\\\\s*//\\\\s*#?endregion\\\\b\")\n    }\n  }\n};\nvar language = {\n  // Set defaultToken to invalid to see what you do not tokenize yet\n  defaultToken: \"invalid\",\n  tokenPostfix: \".ts\",\n  keywords: [\n    // Should match the keys of textToKeywordObj in\n    // https://github.com/microsoft/TypeScript/blob/master/src/compiler/scanner.ts\n    \"abstract\",\n    \"any\",\n    \"as\",\n    \"asserts\",\n    \"bigint\",\n    \"boolean\",\n    \"break\",\n    \"case\",\n    \"catch\",\n    \"class\",\n    \"continue\",\n    \"const\",\n    \"constructor\",\n    \"debugger\",\n    \"declare\",\n    \"default\",\n    \"delete\",\n    \"do\",\n    \"else\",\n    \"enum\",\n    \"export\",\n    \"extends\",\n    \"false\",\n    \"finally\",\n    \"for\",\n    \"from\",\n    \"function\",\n    \"get\",\n    \"if\",\n    \"implements\",\n    \"import\",\n    \"in\",\n    \"infer\",\n    \"instanceof\",\n    \"interface\",\n    \"is\",\n    \"keyof\",\n    \"let\",\n    \"module\",\n    \"namespace\",\n    \"never\",\n    \"new\",\n    \"null\",\n    \"number\",\n    \"object\",\n    \"out\",\n    \"package\",\n    \"private\",\n    \"protected\",\n    \"public\",\n    \"override\",\n    \"readonly\",\n    \"require\",\n    \"global\",\n    \"return\",\n    \"satisfies\",\n    \"set\",\n    \"static\",\n    \"string\",\n    \"super\",\n    \"switch\",\n    \"symbol\",\n    \"this\",\n    \"throw\",\n    \"true\",\n    \"try\",\n    \"type\",\n    \"typeof\",\n    \"undefined\",\n    \"unique\",\n    \"unknown\",\n    \"var\",\n    \"void\",\n    \"while\",\n    \"with\",\n    \"yield\",\n    \"async\",\n    \"await\",\n    \"of\"\n  ],\n  operators: [\n    \"<=\",\n    \">=\",\n    \"==\",\n    \"!=\",\n    \"===\",\n    \"!==\",\n    \"=>\",\n    \"+\",\n    \"-\",\n    \"**\",\n    \"*\",\n    \"/\",\n    \"%\",\n    \"++\",\n    \"--\",\n    \"<<\",\n    \"</\",\n    \">>\",\n    \">>>\",\n    \"&\",\n    \"|\",\n    \"^\",\n    \"!\",\n    \"~\",\n    \"&&\",\n    \"||\",\n    \"??\",\n    \"?\",\n    \":\",\n    \"=\",\n    \"+=\",\n    \"-=\",\n    \"*=\",\n    \"**=\",\n    \"/=\",\n    \"%=\",\n    \"<<=\",\n    \">>=\",\n    \">>>=\",\n    \"&=\",\n    \"|=\",\n    \"^=\",\n    \"@\"\n  ],\n  // we include these common regular expressions\n  symbols: /[=><!~?:&|+\\-*\\/\\^%]+/,\n  escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n  digits: /\\d+(_+\\d+)*/,\n  octaldigits: /[0-7]+(_+[0-7]+)*/,\n  binarydigits: /[0-1]+(_+[0-1]+)*/,\n  hexdigits: /[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,\n  regexpctl: /[(){}\\[\\]\\$\\^|\\-*+?\\.]/,\n  regexpesc: /\\\\(?:[bBdDfnrstvwWn0\\\\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [[/[{}]/, \"delimiter.bracket\"], { include: \"common\" }],\n    common: [\n      // identifiers and keywords\n      [\n        /#?[a-z_$][\\w$]*/,\n        {\n          cases: {\n            \"@keywords\": \"keyword\",\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      [/[A-Z][\\w\\$]*/, \"type.identifier\"],\n      // to show class names nicely\n      // [/[A-Z][\\w\\$]*/, 'identifier'],\n      // whitespace\n      { include: \"@whitespace\" },\n      // regular expression: ensure it is terminated before beginning (otherwise it is an opeator)\n      [\n        /\\/(?=([^\\\\\\/]|\\\\.)+\\/([dgimsuy]*)(\\s*)(\\.|;|,|\\)|\\]|\\}|$))/,\n        { token: \"regexp\", bracket: \"@open\", next: \"@regexp\" }\n      ],\n      // delimiters and operators\n      [/[()\\[\\]]/, \"@brackets\"],\n      [/[<>](?!@symbols)/, \"@brackets\"],\n      [/!(?=([^=]|$))/, \"delimiter\"],\n      [\n        /@symbols/,\n        {\n          cases: {\n            \"@operators\": \"delimiter\",\n            \"@default\": \"\"\n          }\n        }\n      ],\n      // numbers\n      [/(@digits)[eE]([\\-+]?(@digits))?/, \"number.float\"],\n      [/(@digits)\\.(@digits)([eE][\\-+]?(@digits))?/, \"number.float\"],\n      [/0[xX](@hexdigits)n?/, \"number.hex\"],\n      [/0[oO]?(@octaldigits)n?/, \"number.octal\"],\n      [/0[bB](@binarydigits)n?/, \"number.binary\"],\n      [/(@digits)n?/, \"number\"],\n      // delimiter: after number because of .\\d floats\n      [/[;,.]/, \"delimiter\"],\n      // strings\n      [/\"([^\"\\\\]|\\\\.)*$/, \"string.invalid\"],\n      // non-teminated string\n      [/'([^'\\\\]|\\\\.)*$/, \"string.invalid\"],\n      // non-teminated string\n      [/\"/, \"string\", \"@string_double\"],\n      [/'/, \"string\", \"@string_single\"],\n      [/`/, \"string\", \"@string_backtick\"]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"\"],\n      [/\\/\\*\\*(?!\\/)/, \"comment.doc\", \"@jsdoc\"],\n      [/\\/\\*/, \"comment\", \"@comment\"],\n      [/\\/\\/.*$/, \"comment\"]\n    ],\n    comment: [\n      [/[^\\/*]+/, \"comment\"],\n      [/\\*\\//, \"comment\", \"@pop\"],\n      [/[\\/*]/, \"comment\"]\n    ],\n    jsdoc: [\n      [/[^\\/*]+/, \"comment.doc\"],\n      [/\\*\\//, \"comment.doc\", \"@pop\"],\n      [/[\\/*]/, \"comment.doc\"]\n    ],\n    // We match regular expression quite precisely\n    regexp: [\n      [\n        /(\\{)(\\d+(?:,\\d*)?)(\\})/,\n        [\"regexp.escape.control\", \"regexp.escape.control\", \"regexp.escape.control\"]\n      ],\n      [\n        /(\\[)(\\^?)(?=(?:[^\\]\\\\\\/]|\\\\.)+)/,\n        [\"regexp.escape.control\", { token: \"regexp.escape.control\", next: \"@regexrange\" }]\n      ],\n      [/(\\()(\\?:|\\?=|\\?!)/, [\"regexp.escape.control\", \"regexp.escape.control\"]],\n      [/[()]/, \"regexp.escape.control\"],\n      [/@regexpctl/, \"regexp.escape.control\"],\n      [/[^\\\\\\/]/, \"regexp\"],\n      [/@regexpesc/, \"regexp.escape\"],\n      [/\\\\\\./, \"regexp.invalid\"],\n      [/(\\/)([dgimsuy]*)/, [{ token: \"regexp\", bracket: \"@close\", next: \"@pop\" }, \"keyword.other\"]]\n    ],\n    regexrange: [\n      [/-/, \"regexp.escape.control\"],\n      [/\\^/, \"regexp.invalid\"],\n      [/@regexpesc/, \"regexp.escape\"],\n      [/[^\\]]/, \"regexp\"],\n      [\n        /\\]/,\n        {\n          token: \"regexp.escape.control\",\n          next: \"@pop\",\n          bracket: \"@close\"\n        }\n      ]\n    ],\n    string_double: [\n      [/[^\\\\\"]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/\"/, \"string\", \"@pop\"]\n    ],\n    string_single: [\n      [/[^\\\\']+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/'/, \"string\", \"@pop\"]\n    ],\n    string_backtick: [\n      [/\\$\\{/, { token: \"delimiter.bracket\", next: \"@bracketCounting\" }],\n      [/[^\\\\`$]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/`/, \"string\", \"@pop\"]\n    ],\n    bracketCounting: [\n      [/\\{/, \"delimiter.bracket\", \"@bracketCounting\"],\n      [/\\}/, \"delimiter.bracket\", \"@pop\"],\n      { include: \"common\" }\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/typespec/typespec.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/typespec/typespec.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/typespec/typespec.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"typespec\",\n  extensions: [\".tsp\"],\n  aliases: [\"TypeSpec\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/typespec/typespec\"], resolve, reject);\n      });\n    } else {\n      return import(\"./typespec.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/typespec/typespec.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/typespec/typespec.ts\nvar bounded = (text) => `\\\\b${text}\\\\b`;\nvar notBefore = (regex) => `(?!${regex})`;\nvar identifierStart = \"[_a-zA-Z]\";\nvar identifierContinue = \"[_a-zA-Z0-9]\";\nvar identifier = bounded(`${identifierStart}${identifierContinue}*`);\nvar directive = bounded(`[_a-zA-Z-0-9]+`);\nvar keywords = [\n  \"import\",\n  \"model\",\n  \"scalar\",\n  \"namespace\",\n  \"op\",\n  \"interface\",\n  \"union\",\n  \"using\",\n  \"is\",\n  \"extends\",\n  \"enum\",\n  \"alias\",\n  \"return\",\n  \"void\",\n  \"if\",\n  \"else\",\n  \"projection\",\n  \"dec\",\n  \"extern\",\n  \"fn\"\n];\nvar namedLiterals = [\"true\", \"false\", \"null\", \"unknown\", \"never\"];\nvar nonCommentWs = `[ \\\\t\\\\r\\\\n]`;\nvar numericLiteral = `[0-9]+`;\nvar conf = {\n  comments: {\n    lineComment: \"//\",\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"/**\", close: \" */\", notIn: [\"string\"] }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' }\n  ],\n  indentationRules: {\n    decreaseIndentPattern: new RegExp(\"^((?!.*?/\\\\*).*\\\\*/)?\\\\s*[\\\\}\\\\]].*$\"),\n    increaseIndentPattern: new RegExp(\n      \"^((?!//).)*(\\\\{([^}\\\"'`/]*|(\\\\t|[ ])*//.*)|\\\\([^)\\\"'`/]*|\\\\[[^\\\\]\\\"'`/]*)$\"\n    ),\n    // e.g.  * ...| or */| or *-----*/|\n    unIndentedLinePattern: new RegExp(\n      \"^(\\\\t|[ ])*[ ]\\\\*[^/]*\\\\*/\\\\s*$|^(\\\\t|[ ])*[ ]\\\\*/\\\\s*$|^(\\\\t|[ ])*[ ]\\\\*([ ]([^\\\\*]|\\\\*(?!/))*)?$\"\n    )\n  }\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".tsp\",\n  brackets: [\n    { open: \"{\", close: \"}\", token: \"delimiter.curly\" },\n    { open: \"[\", close: \"]\", token: \"delimiter.square\" },\n    { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" }\n  ],\n  symbols: /[=:;<>]+/,\n  keywords,\n  namedLiterals,\n  escapes: `\\\\\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\\\\\|\"|\\\\\\${)`,\n  tokenizer: {\n    root: [{ include: \"@expression\" }, { include: \"@whitespace\" }],\n    stringVerbatim: [\n      { regex: `(|\"|\"\")[^\"]`, action: { token: \"string\" } },\n      { regex: `\"\"\"${notBefore(`\"`)}`, action: { token: \"string\", next: \"@pop\" } }\n    ],\n    stringLiteral: [\n      { regex: `\\\\\\${`, action: { token: \"delimiter.bracket\", next: \"@bracketCounting\" } },\n      { regex: `[^\\\\\\\\\"$]+`, action: { token: \"string\" } },\n      { regex: \"@escapes\", action: { token: \"string.escape\" } },\n      { regex: `\\\\\\\\.`, action: { token: \"string.escape.invalid\" } },\n      { regex: `\"`, action: { token: \"string\", next: \"@pop\" } }\n    ],\n    bracketCounting: [\n      { regex: `{`, action: { token: \"delimiter.bracket\", next: \"@bracketCounting\" } },\n      { regex: `}`, action: { token: \"delimiter.bracket\", next: \"@pop\" } },\n      { include: \"@expression\" }\n    ],\n    comment: [\n      { regex: `[^\\\\*]+`, action: { token: \"comment\" } },\n      { regex: `\\\\*\\\\/`, action: { token: \"comment\", next: \"@pop\" } },\n      { regex: `[\\\\/*]`, action: { token: \"comment\" } }\n    ],\n    whitespace: [\n      { regex: nonCommentWs },\n      { regex: `\\\\/\\\\*`, action: { token: \"comment\", next: \"@comment\" } },\n      { regex: `\\\\/\\\\/.*$`, action: { token: \"comment\" } }\n    ],\n    expression: [\n      { regex: `\"\"\"`, action: { token: \"string\", next: \"@stringVerbatim\" } },\n      { regex: `\"${notBefore(`\"\"`)}`, action: { token: \"string\", next: \"@stringLiteral\" } },\n      { regex: numericLiteral, action: { token: \"number\" } },\n      {\n        regex: identifier,\n        action: {\n          cases: {\n            \"@keywords\": { token: \"keyword\" },\n            \"@namedLiterals\": { token: \"keyword\" },\n            \"@default\": { token: \"identifier\" }\n          }\n        }\n      },\n      { regex: `@${identifier}`, action: { token: \"tag\" } },\n      { regex: `#${directive}`, action: { token: \"directive\" } }\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/vb/vb.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/vb/vb.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/vb/vb.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"vb\",\n  extensions: [\".vb\"],\n  aliases: [\"Visual Basic\", \"vb\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/vb/vb\"], resolve, reject);\n      });\n    } else {\n      return import(\"./vb.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/vb/vb.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/vb/vb.ts\nvar conf = {\n  comments: {\n    lineComment: \"'\",\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"],\n    [\"<\", \">\"],\n    [\"addhandler\", \"end addhandler\"],\n    [\"class\", \"end class\"],\n    [\"enum\", \"end enum\"],\n    [\"event\", \"end event\"],\n    [\"function\", \"end function\"],\n    [\"get\", \"end get\"],\n    [\"if\", \"end if\"],\n    [\"interface\", \"end interface\"],\n    [\"module\", \"end module\"],\n    [\"namespace\", \"end namespace\"],\n    [\"operator\", \"end operator\"],\n    [\"property\", \"end property\"],\n    [\"raiseevent\", \"end raiseevent\"],\n    [\"removehandler\", \"end removehandler\"],\n    [\"select\", \"end select\"],\n    [\"set\", \"end set\"],\n    [\"structure\", \"end structure\"],\n    [\"sub\", \"end sub\"],\n    [\"synclock\", \"end synclock\"],\n    [\"try\", \"end try\"],\n    [\"while\", \"end while\"],\n    [\"with\", \"end with\"],\n    [\"using\", \"end using\"],\n    [\"do\", \"loop\"],\n    [\"for\", \"next\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\", notIn: [\"string\", \"comment\"] },\n    { open: \"[\", close: \"]\", notIn: [\"string\", \"comment\"] },\n    { open: \"(\", close: \")\", notIn: [\"string\", \"comment\"] },\n    { open: '\"', close: '\"', notIn: [\"string\", \"comment\"] },\n    { open: \"<\", close: \">\", notIn: [\"string\", \"comment\"] }\n  ],\n  folding: {\n    markers: {\n      start: new RegExp(\"^\\\\s*#Region\\\\b\"),\n      end: new RegExp(\"^\\\\s*#End Region\\\\b\")\n    }\n  }\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".vb\",\n  ignoreCase: true,\n  brackets: [\n    { token: \"delimiter.bracket\", open: \"{\", close: \"}\" },\n    { token: \"delimiter.array\", open: \"[\", close: \"]\" },\n    { token: \"delimiter.parenthesis\", open: \"(\", close: \")\" },\n    { token: \"delimiter.angle\", open: \"<\", close: \">\" },\n    // Special bracket statement pairs\n    // according to https://msdn.microsoft.com/en-us/library/tsw2a11z.aspx\n    {\n      token: \"keyword.tag-addhandler\",\n      open: \"addhandler\",\n      close: \"end addhandler\"\n    },\n    { token: \"keyword.tag-class\", open: \"class\", close: \"end class\" },\n    { token: \"keyword.tag-enum\", open: \"enum\", close: \"end enum\" },\n    { token: \"keyword.tag-event\", open: \"event\", close: \"end event\" },\n    {\n      token: \"keyword.tag-function\",\n      open: \"function\",\n      close: \"end function\"\n    },\n    { token: \"keyword.tag-get\", open: \"get\", close: \"end get\" },\n    { token: \"keyword.tag-if\", open: \"if\", close: \"end if\" },\n    {\n      token: \"keyword.tag-interface\",\n      open: \"interface\",\n      close: \"end interface\"\n    },\n    { token: \"keyword.tag-module\", open: \"module\", close: \"end module\" },\n    {\n      token: \"keyword.tag-namespace\",\n      open: \"namespace\",\n      close: \"end namespace\"\n    },\n    {\n      token: \"keyword.tag-operator\",\n      open: \"operator\",\n      close: \"end operator\"\n    },\n    {\n      token: \"keyword.tag-property\",\n      open: \"property\",\n      close: \"end property\"\n    },\n    {\n      token: \"keyword.tag-raiseevent\",\n      open: \"raiseevent\",\n      close: \"end raiseevent\"\n    },\n    {\n      token: \"keyword.tag-removehandler\",\n      open: \"removehandler\",\n      close: \"end removehandler\"\n    },\n    { token: \"keyword.tag-select\", open: \"select\", close: \"end select\" },\n    { token: \"keyword.tag-set\", open: \"set\", close: \"end set\" },\n    {\n      token: \"keyword.tag-structure\",\n      open: \"structure\",\n      close: \"end structure\"\n    },\n    { token: \"keyword.tag-sub\", open: \"sub\", close: \"end sub\" },\n    {\n      token: \"keyword.tag-synclock\",\n      open: \"synclock\",\n      close: \"end synclock\"\n    },\n    { token: \"keyword.tag-try\", open: \"try\", close: \"end try\" },\n    { token: \"keyword.tag-while\", open: \"while\", close: \"end while\" },\n    { token: \"keyword.tag-with\", open: \"with\", close: \"end with\" },\n    // Other pairs\n    { token: \"keyword.tag-using\", open: \"using\", close: \"end using\" },\n    { token: \"keyword.tag-do\", open: \"do\", close: \"loop\" },\n    { token: \"keyword.tag-for\", open: \"for\", close: \"next\" }\n  ],\n  keywords: [\n    \"AddHandler\",\n    \"AddressOf\",\n    \"Alias\",\n    \"And\",\n    \"AndAlso\",\n    \"As\",\n    \"Async\",\n    \"Boolean\",\n    \"ByRef\",\n    \"Byte\",\n    \"ByVal\",\n    \"Call\",\n    \"Case\",\n    \"Catch\",\n    \"CBool\",\n    \"CByte\",\n    \"CChar\",\n    \"CDate\",\n    \"CDbl\",\n    \"CDec\",\n    \"Char\",\n    \"CInt\",\n    \"Class\",\n    \"CLng\",\n    \"CObj\",\n    \"Const\",\n    \"Continue\",\n    \"CSByte\",\n    \"CShort\",\n    \"CSng\",\n    \"CStr\",\n    \"CType\",\n    \"CUInt\",\n    \"CULng\",\n    \"CUShort\",\n    \"Date\",\n    \"Decimal\",\n    \"Declare\",\n    \"Default\",\n    \"Delegate\",\n    \"Dim\",\n    \"DirectCast\",\n    \"Do\",\n    \"Double\",\n    \"Each\",\n    \"Else\",\n    \"ElseIf\",\n    \"End\",\n    \"EndIf\",\n    \"Enum\",\n    \"Erase\",\n    \"Error\",\n    \"Event\",\n    \"Exit\",\n    \"False\",\n    \"Finally\",\n    \"For\",\n    \"Friend\",\n    \"Function\",\n    \"Get\",\n    \"GetType\",\n    \"GetXMLNamespace\",\n    \"Global\",\n    \"GoSub\",\n    \"GoTo\",\n    \"Handles\",\n    \"If\",\n    \"Implements\",\n    \"Imports\",\n    \"In\",\n    \"Inherits\",\n    \"Integer\",\n    \"Interface\",\n    \"Is\",\n    \"IsNot\",\n    \"Let\",\n    \"Lib\",\n    \"Like\",\n    \"Long\",\n    \"Loop\",\n    \"Me\",\n    \"Mod\",\n    \"Module\",\n    \"MustInherit\",\n    \"MustOverride\",\n    \"MyBase\",\n    \"MyClass\",\n    \"NameOf\",\n    \"Namespace\",\n    \"Narrowing\",\n    \"New\",\n    \"Next\",\n    \"Not\",\n    \"Nothing\",\n    \"NotInheritable\",\n    \"NotOverridable\",\n    \"Object\",\n    \"Of\",\n    \"On\",\n    \"Operator\",\n    \"Option\",\n    \"Optional\",\n    \"Or\",\n    \"OrElse\",\n    \"Out\",\n    \"Overloads\",\n    \"Overridable\",\n    \"Overrides\",\n    \"ParamArray\",\n    \"Partial\",\n    \"Private\",\n    \"Property\",\n    \"Protected\",\n    \"Public\",\n    \"RaiseEvent\",\n    \"ReadOnly\",\n    \"ReDim\",\n    \"RemoveHandler\",\n    \"Resume\",\n    \"Return\",\n    \"SByte\",\n    \"Select\",\n    \"Set\",\n    \"Shadows\",\n    \"Shared\",\n    \"Short\",\n    \"Single\",\n    \"Static\",\n    \"Step\",\n    \"Stop\",\n    \"String\",\n    \"Structure\",\n    \"Sub\",\n    \"SyncLock\",\n    \"Then\",\n    \"Throw\",\n    \"To\",\n    \"True\",\n    \"Try\",\n    \"TryCast\",\n    \"TypeOf\",\n    \"UInteger\",\n    \"ULong\",\n    \"UShort\",\n    \"Using\",\n    \"Variant\",\n    \"Wend\",\n    \"When\",\n    \"While\",\n    \"Widening\",\n    \"With\",\n    \"WithEvents\",\n    \"WriteOnly\",\n    \"Xor\"\n  ],\n  tagwords: [\n    \"If\",\n    \"Sub\",\n    \"Select\",\n    \"Try\",\n    \"Class\",\n    \"Enum\",\n    \"Function\",\n    \"Get\",\n    \"Interface\",\n    \"Module\",\n    \"Namespace\",\n    \"Operator\",\n    \"Set\",\n    \"Structure\",\n    \"Using\",\n    \"While\",\n    \"With\",\n    \"Do\",\n    \"Loop\",\n    \"For\",\n    \"Next\",\n    \"Property\",\n    \"Continue\",\n    \"AddHandler\",\n    \"RemoveHandler\",\n    \"Event\",\n    \"RaiseEvent\",\n    \"SyncLock\"\n  ],\n  // we include these common regular expressions\n  symbols: /[=><!~?;\\.,:&|+\\-*\\/\\^%]+/,\n  integersuffix: /U?[DI%L&S@]?/,\n  floatsuffix: /[R#F!]?/,\n  // The main tokenizer for our languages\n  tokenizer: {\n    root: [\n      // whitespace\n      { include: \"@whitespace\" },\n      // special ending tag-words\n      [/next(?!\\w)/, { token: \"keyword.tag-for\" }],\n      [/loop(?!\\w)/, { token: \"keyword.tag-do\" }],\n      // usual ending tags\n      [\n        /end\\s+(?!for|do)(addhandler|class|enum|event|function|get|if|interface|module|namespace|operator|property|raiseevent|removehandler|select|set|structure|sub|synclock|try|while|with|using)/,\n        { token: \"keyword.tag-$1\" }\n      ],\n      // identifiers, tagwords, and keywords\n      [\n        /[a-zA-Z_]\\w*/,\n        {\n          cases: {\n            \"@tagwords\": { token: \"keyword.tag-$0\" },\n            \"@keywords\": { token: \"keyword.$0\" },\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      // Preprocessor directive\n      [/^\\s*#\\w+/, \"keyword\"],\n      // numbers\n      [/\\d*\\d+e([\\-+]?\\d+)?(@floatsuffix)/, \"number.float\"],\n      [/\\d*\\.\\d+(e[\\-+]?\\d+)?(@floatsuffix)/, \"number.float\"],\n      [/&H[0-9a-f]+(@integersuffix)/, \"number.hex\"],\n      [/&0[0-7]+(@integersuffix)/, \"number.octal\"],\n      [/\\d+(@integersuffix)/, \"number\"],\n      // date literal\n      [/#.*#/, \"number\"],\n      // delimiters and operators\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      [/@symbols/, \"delimiter\"],\n      // strings\n      [/[\"\\u201c\\u201d]/, { token: \"string.quote\", next: \"@string\" }]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"\"],\n      [/(\\'|REM(?!\\w)).*$/, \"comment\"]\n    ],\n    string: [\n      [/[^\"\\u201c\\u201d]+/, \"string\"],\n      [/[\"\\u201c\\u201d]{2}/, \"string.escape\"],\n      [/[\"\\u201c\\u201d]C?/, { token: \"string.quote\", next: \"@pop\" }]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/wgsl/wgsl.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/wgsl/wgsl.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/wgsl/wgsl.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"wgsl\",\n  extensions: [\".wgsl\"],\n  aliases: [\"WebGPU Shading Language\", \"WGSL\", \"wgsl\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/wgsl/wgsl\"], resolve, reject);\n      });\n    } else {\n      return import(\"./wgsl.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/wgsl/wgsl.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/wgsl/wgsl.ts\nvar conf = {\n  comments: {\n    lineComment: \"//\",\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"[\", close: \"]\" },\n    { open: \"{\", close: \"}\" },\n    { open: \"(\", close: \")\" }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" }\n  ]\n};\nfunction qw(str) {\n  let result = [];\n  const words = str.split(/\\t+|\\r+|\\n+| +/);\n  for (let i = 0; i < words.length; ++i) {\n    if (words[i].length > 0) {\n      result.push(words[i]);\n    }\n  }\n  return result;\n}\nvar atoms = qw(\"true false\");\nvar keywords = qw(`\n\t\t\t  alias\n\t\t\t  break\n\t\t\t  case\n\t\t\t  const\n\t\t\t  const_assert\n\t\t\t  continue\n\t\t\t  continuing\n\t\t\t  default\n\t\t\t  diagnostic\n\t\t\t  discard\n\t\t\t  else\n\t\t\t  enable\n\t\t\t  fn\n\t\t\t  for\n\t\t\t  if\n\t\t\t  let\n\t\t\t  loop\n\t\t\t  override\n\t\t\t  requires\n\t\t\t  return\n\t\t\t  struct\n\t\t\t  switch\n\t\t\t  var\n\t\t\t  while\n\t\t\t  `);\nvar reserved = qw(`\n\t\t\t  NULL\n\t\t\t  Self\n\t\t\t  abstract\n\t\t\t  active\n\t\t\t  alignas\n\t\t\t  alignof\n\t\t\t  as\n\t\t\t  asm\n\t\t\t  asm_fragment\n\t\t\t  async\n\t\t\t  attribute\n\t\t\t  auto\n\t\t\t  await\n\t\t\t  become\n\t\t\t  binding_array\n\t\t\t  cast\n\t\t\t  catch\n\t\t\t  class\n\t\t\t  co_await\n\t\t\t  co_return\n\t\t\t  co_yield\n\t\t\t  coherent\n\t\t\t  column_major\n\t\t\t  common\n\t\t\t  compile\n\t\t\t  compile_fragment\n\t\t\t  concept\n\t\t\t  const_cast\n\t\t\t  consteval\n\t\t\t  constexpr\n\t\t\t  constinit\n\t\t\t  crate\n\t\t\t  debugger\n\t\t\t  decltype\n\t\t\t  delete\n\t\t\t  demote\n\t\t\t  demote_to_helper\n\t\t\t  do\n\t\t\t  dynamic_cast\n\t\t\t  enum\n\t\t\t  explicit\n\t\t\t  export\n\t\t\t  extends\n\t\t\t  extern\n\t\t\t  external\n\t\t\t  fallthrough\n\t\t\t  filter\n\t\t\t  final\n\t\t\t  finally\n\t\t\t  friend\n\t\t\t  from\n\t\t\t  fxgroup\n\t\t\t  get\n\t\t\t  goto\n\t\t\t  groupshared\n\t\t\t  highp\n\t\t\t  impl\n\t\t\t  implements\n\t\t\t  import\n\t\t\t  inline\n\t\t\t  instanceof\n\t\t\t  interface\n\t\t\t  layout\n\t\t\t  lowp\n\t\t\t  macro\n\t\t\t  macro_rules\n\t\t\t  match\n\t\t\t  mediump\n\t\t\t  meta\n\t\t\t  mod\n\t\t\t  module\n\t\t\t  move\n\t\t\t  mut\n\t\t\t  mutable\n\t\t\t  namespace\n\t\t\t  new\n\t\t\t  nil\n\t\t\t  noexcept\n\t\t\t  noinline\n\t\t\t  nointerpolation\n\t\t\t  noperspective\n\t\t\t  null\n\t\t\t  nullptr\n\t\t\t  of\n\t\t\t  operator\n\t\t\t  package\n\t\t\t  packoffset\n\t\t\t  partition\n\t\t\t  pass\n\t\t\t  patch\n\t\t\t  pixelfragment\n\t\t\t  precise\n\t\t\t  precision\n\t\t\t  premerge\n\t\t\t  priv\n\t\t\t  protected\n\t\t\t  pub\n\t\t\t  public\n\t\t\t  readonly\n\t\t\t  ref\n\t\t\t  regardless\n\t\t\t  register\n\t\t\t  reinterpret_cast\n\t\t\t  require\n\t\t\t  resource\n\t\t\t  restrict\n\t\t\t  self\n\t\t\t  set\n\t\t\t  shared\n\t\t\t  sizeof\n\t\t\t  smooth\n\t\t\t  snorm\n\t\t\t  static\n\t\t\t  static_assert\n\t\t\t  static_cast\n\t\t\t  std\n\t\t\t  subroutine\n\t\t\t  super\n\t\t\t  target\n\t\t\t  template\n\t\t\t  this\n\t\t\t  thread_local\n\t\t\t  throw\n\t\t\t  trait\n\t\t\t  try\n\t\t\t  type\n\t\t\t  typedef\n\t\t\t  typeid\n\t\t\t  typename\n\t\t\t  typeof\n\t\t\t  union\n\t\t\t  unless\n\t\t\t  unorm\n\t\t\t  unsafe\n\t\t\t  unsized\n\t\t\t  use\n\t\t\t  using\n\t\t\t  varying\n\t\t\t  virtual\n\t\t\t  volatile\n\t\t\t  wgsl\n\t\t\t  where\n\t\t\t  with\n\t\t\t  writeonly\n\t\t\t  yield\n\t\t\t  `);\nvar predeclared_enums = qw(`\n\t\tread write read_write\n\t\tfunction private workgroup uniform storage\n\t\tperspective linear flat\n\t\tcenter centroid sample\n\t\tvertex_index instance_index position front_facing frag_depth\n\t\t\tlocal_invocation_id local_invocation_index\n\t\t\tglobal_invocation_id workgroup_id num_workgroups\n\t\t\tsample_index sample_mask\n\t\trgba8unorm\n\t\trgba8snorm\n\t\trgba8uint\n\t\trgba8sint\n\t\trgba16uint\n\t\trgba16sint\n\t\trgba16float\n\t\tr32uint\n\t\tr32sint\n\t\tr32float\n\t\trg32uint\n\t\trg32sint\n\t\trg32float\n\t\trgba32uint\n\t\trgba32sint\n\t\trgba32float\n\t\tbgra8unorm\n`);\nvar predeclared_types = qw(`\n\t\tbool\n\t\tf16\n\t\tf32\n\t\ti32\n\t\tsampler sampler_comparison\n\t\ttexture_depth_2d\n\t\ttexture_depth_2d_array\n\t\ttexture_depth_cube\n\t\ttexture_depth_cube_array\n\t\ttexture_depth_multisampled_2d\n\t\ttexture_external\n\t\ttexture_external\n\t\tu32\n\t\t`);\nvar predeclared_type_generators = qw(`\n\t\tarray\n\t\tatomic\n\t\tmat2x2\n\t\tmat2x3\n\t\tmat2x4\n\t\tmat3x2\n\t\tmat3x3\n\t\tmat3x4\n\t\tmat4x2\n\t\tmat4x3\n\t\tmat4x4\n\t\tptr\n\t\ttexture_1d\n\t\ttexture_2d\n\t\ttexture_2d_array\n\t\ttexture_3d\n\t\ttexture_cube\n\t\ttexture_cube_array\n\t\ttexture_multisampled_2d\n\t\ttexture_storage_1d\n\t\ttexture_storage_2d\n\t\ttexture_storage_2d_array\n\t\ttexture_storage_3d\n\t\tvec2\n\t\tvec3\n\t\tvec4\n\t\t`);\nvar predeclared_type_aliases = qw(`\n\t\tvec2i vec3i vec4i\n\t\tvec2u vec3u vec4u\n\t\tvec2f vec3f vec4f\n\t\tvec2h vec3h vec4h\n\t\tmat2x2f mat2x3f mat2x4f\n\t\tmat3x2f mat3x3f mat3x4f\n\t\tmat4x2f mat4x3f mat4x4f\n\t\tmat2x2h mat2x3h mat2x4h\n\t\tmat3x2h mat3x3h mat3x4h\n\t\tmat4x2h mat4x3h mat4x4h\n\t\t`);\nvar predeclared_intrinsics = qw(`\n  bitcast all any select arrayLength abs acos acosh asin asinh atan atanh atan2\n  ceil clamp cos cosh countLeadingZeros countOneBits countTrailingZeros cross\n  degrees determinant distance dot exp exp2 extractBits faceForward firstLeadingBit\n  firstTrailingBit floor fma fract frexp inverseBits inverseSqrt ldexp length\n  log log2 max min mix modf normalize pow quantizeToF16 radians reflect refract\n  reverseBits round saturate sign sin sinh smoothstep sqrt step tan tanh transpose\n  trunc dpdx dpdxCoarse dpdxFine dpdy dpdyCoarse dpdyFine fwidth fwidthCoarse fwidthFine\n  textureDimensions textureGather textureGatherCompare textureLoad textureNumLayers\n  textureNumLevels textureNumSamples textureSample textureSampleBias textureSampleCompare\n  textureSampleCompareLevel textureSampleGrad textureSampleLevel textureSampleBaseClampToEdge\n  textureStore atomicLoad atomicStore atomicAdd atomicSub atomicMax atomicMin\n  atomicAnd atomicOr atomicXor atomicExchange atomicCompareExchangeWeak pack4x8snorm\n  pack4x8unorm pack2x16snorm pack2x16unorm pack2x16float unpack4x8snorm unpack4x8unorm\n  unpack2x16snorm unpack2x16unorm unpack2x16float storageBarrier workgroupBarrier\n  workgroupUniformLoad\n`);\nvar operators = qw(`\n\t\t\t\t\t &\n\t\t\t\t\t &&\n\t\t\t\t\t ->\n\t\t\t\t\t /\n\t\t\t\t\t =\n\t\t\t\t\t ==\n\t\t\t\t\t !=\n\t\t\t\t\t >\n\t\t\t\t\t >=\n\t\t\t\t\t <\n\t\t\t\t\t <=\n\t\t\t\t\t %\n\t\t\t\t\t -\n\t\t\t\t\t --\n\t\t\t\t\t +\n\t\t\t\t\t ++\n\t\t\t\t\t |\n\t\t\t\t\t ||\n\t\t\t\t\t *\n\t\t\t\t\t <<\n\t\t\t\t\t >>\n\t\t\t\t\t +=\n\t\t\t\t\t -=\n\t\t\t\t\t *=\n\t\t\t\t\t /=\n\t\t\t\t\t %=\n\t\t\t\t\t &=\n\t\t\t\t\t |=\n\t\t\t\t\t ^=\n\t\t\t\t\t >>=\n\t\t\t\t\t <<=\n\t\t\t\t\t `);\nvar directive_re = /enable|requires|diagnostic/;\nvar ident_re = /[_\\p{XID_Start}]\\p{XID_Continue}*/u;\nvar predefined_token = \"variable.predefined\";\nvar language = {\n  tokenPostfix: \".wgsl\",\n  defaultToken: \"invalid\",\n  unicode: true,\n  atoms,\n  keywords,\n  reserved,\n  predeclared_enums,\n  predeclared_types,\n  predeclared_type_generators,\n  predeclared_type_aliases,\n  predeclared_intrinsics,\n  operators,\n  symbols: /[!%&*+\\-\\.\\/:;<=>^|_~,]+/,\n  tokenizer: {\n    root: [\n      [directive_re, \"keyword\", \"@directive\"],\n      [\n        // Identifier-like things, but also include '_'\n        ident_re,\n        {\n          cases: {\n            \"@atoms\": predefined_token,\n            \"@keywords\": \"keyword\",\n            \"@reserved\": \"invalid\",\n            \"@predeclared_enums\": predefined_token,\n            \"@predeclared_types\": predefined_token,\n            \"@predeclared_type_generators\": predefined_token,\n            \"@predeclared_type_aliases\": predefined_token,\n            \"@predeclared_intrinsics\": predefined_token,\n            \"@default\": \"identifier\"\n          }\n        }\n      ],\n      { include: \"@commentOrSpace\" },\n      { include: \"@numbers\" },\n      [/[{}()\\[\\]]/, \"@brackets\"],\n      [\"@\", \"annotation\", \"@attribute\"],\n      [\n        /@symbols/,\n        {\n          cases: {\n            \"@operators\": \"operator\",\n            \"@default\": \"delimiter\"\n          }\n        }\n      ],\n      [/./, \"invalid\"]\n    ],\n    commentOrSpace: [\n      [/\\s+/, \"white\"],\n      [/\\/\\*/, \"comment\", \"@blockComment\"],\n      [/\\/\\/.*$/, \"comment\"]\n    ],\n    blockComment: [\n      // Soak up uninteresting text: anything except * or /\n      [/[^\\/*]+/, \"comment\"],\n      // Recognize the start of a nested block comment.\n      [/\\/\\*/, \"comment\", \"@push\"],\n      // Recognize the end of a nested block comment.\n      [/\\*\\//, \"comment\", \"@pop\"],\n      // Recognize insignificant * and /\n      [/[\\/*]/, \"comment\"]\n    ],\n    attribute: [\n      // For things like '@fragment' both '@' and 'fragment'\n      // are marked as annotations.  This should work even if\n      // there are spaces or comments between the two tokens.\n      { include: \"@commentOrSpace\" },\n      [/\\w+/, \"annotation\", \"@pop\"]\n    ],\n    directive: [\n      // For things like 'enable f16;', 'enable' maps to 'meta'\n      // and 'f16' maps to 'meta.tag'.\n      { include: \"@commentOrSpace\" },\n      [/[()]/, \"@brackets\"],\n      [/,/, \"delimiter\"],\n      [ident_re, \"meta.content\"],\n      [/;/, \"delimiter\", \"@pop\"]\n    ],\n    numbers: [\n      // Decimal float literals\n      // https://www.w3.org/TR/WGSL/#syntax-decimal_float_literal\n      // 0, with type-specifying suffix.\n      [/0[fh]/, \"number.float\"],\n      // Other decimal integer, with type-specifying suffix.\n      [/[1-9][0-9]*[fh]/, \"number.float\"],\n      // Has decimal point, at least one digit after decimal.\n      [/[0-9]*\\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/, \"number.float\"],\n      // Has decimal point, at least one digit before decimal.\n      [/[0-9]+\\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/, \"number.float\"],\n      // Has at least one digit, and has an exponent.\n      [/[0-9]+[eE][+-]?[0-9]+[fh]?/, \"number.float\"],\n      // Hex float literals\n      // https://www.w3.org/TR/WGSL/#syntax-hex_float_literal\n      [/0[xX][0-9a-fA-F]*\\.[0-9a-fA-F]+(?:[pP][+-]?[0-9]+[fh]?)?/, \"number.hex\"],\n      [/0[xX][0-9a-fA-F]+\\.[0-9a-fA-F]*(?:[pP][+-]?[0-9]+[fh]?)?/, \"number.hex\"],\n      [/0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/, \"number.hex\"],\n      // Hexadecimal integer literals\n      // https://www.w3.org/TR/WGSL/#syntax-hex_int_literal\n      [/0[xX][0-9a-fA-F]+[iu]?/, \"number.hex\"],\n      // Decimal integer literals\n      // https://www.w3.org/TR/WGSL/#syntax-decimal_int_literal\n      // We need two rules here because 01 is not valid.\n      [/[1-9][0-9]*[iu]?/, \"number\"],\n      [/0[iu]?/, \"number\"]\n      // Must match last\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/xml/xml.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/xml/xml.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/xml/xml.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"xml\",\n  extensions: [\n    \".xml\",\n    \".xsd\",\n    \".dtd\",\n    \".ascx\",\n    \".csproj\",\n    \".config\",\n    \".props\",\n    \".targets\",\n    \".wxi\",\n    \".wxl\",\n    \".wxs\",\n    \".xaml\",\n    \".svg\",\n    \".svgz\",\n    \".opf\",\n    \".xslt\",\n    \".xsl\"\n  ],\n  firstLine: \"(\\\\<\\\\?xml.*)|(\\\\<svg)|(\\\\<\\\\!doctype\\\\s+svg)\",\n  aliases: [\"XML\", \"xml\"],\n  mimetypes: [\"text/xml\", \"application/xml\", \"application/xaml+xml\", \"application/xml-dtd\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/xml/xml\"], resolve, reject);\n      });\n    } else {\n      return import(\"./xml.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/xml/xml.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\n\n// src/fillers/monaco-editor-core.ts\nvar monaco_editor_core_exports = {};\n__reExport(monaco_editor_core_exports, monaco_editor_core_star);\nimport * as monaco_editor_core_star from \"../../editor/editor.api.js\";\n\n// src/basic-languages/xml/xml.ts\nvar conf = {\n  comments: {\n    blockComment: [\"<!--\", \"-->\"]\n  },\n  brackets: [[\"<\", \">\"]],\n  autoClosingPairs: [\n    { open: \"<\", close: \">\" },\n    { open: \"'\", close: \"'\" },\n    { open: '\"', close: '\"' }\n  ],\n  surroundingPairs: [\n    { open: \"<\", close: \">\" },\n    { open: \"'\", close: \"'\" },\n    { open: '\"', close: '\"' }\n  ],\n  onEnterRules: [\n    {\n      beforeText: new RegExp(`<([_:\\\\w][_:\\\\w-.\\\\d]*)([^/>]*(?!/)>)[^<]*$`, \"i\"),\n      afterText: /^<\\/([_:\\w][_:\\w-.\\d]*)\\s*>$/i,\n      action: {\n        indentAction: monaco_editor_core_exports.languages.IndentAction.IndentOutdent\n      }\n    },\n    {\n      beforeText: new RegExp(`<(\\\\w[\\\\w\\\\d]*)([^/>]*(?!/)>)[^<]*$`, \"i\"),\n      action: { indentAction: monaco_editor_core_exports.languages.IndentAction.Indent }\n    }\n  ]\n};\nvar language = {\n  defaultToken: \"\",\n  tokenPostfix: \".xml\",\n  ignoreCase: true,\n  // Useful regular expressions\n  qualifiedName: /(?:[\\w\\.\\-]+:)?[\\w\\.\\-]+/,\n  tokenizer: {\n    root: [\n      [/[^<&]+/, \"\"],\n      { include: \"@whitespace\" },\n      // Standard opening tag\n      [/(<)(@qualifiedName)/, [{ token: \"delimiter\" }, { token: \"tag\", next: \"@tag\" }]],\n      // Standard closing tag\n      [\n        /(<\\/)(@qualifiedName)(\\s*)(>)/,\n        [{ token: \"delimiter\" }, { token: \"tag\" }, \"\", { token: \"delimiter\" }]\n      ],\n      // Meta tags - instruction\n      [/(<\\?)(@qualifiedName)/, [{ token: \"delimiter\" }, { token: \"metatag\", next: \"@tag\" }]],\n      // Meta tags - declaration\n      [/(<\\!)(@qualifiedName)/, [{ token: \"delimiter\" }, { token: \"metatag\", next: \"@tag\" }]],\n      // CDATA\n      [/<\\!\\[CDATA\\[/, { token: \"delimiter.cdata\", next: \"@cdata\" }],\n      [/&\\w+;/, \"string.escape\"]\n    ],\n    cdata: [\n      [/[^\\]]+/, \"\"],\n      [/\\]\\]>/, { token: \"delimiter.cdata\", next: \"@pop\" }],\n      [/\\]/, \"\"]\n    ],\n    tag: [\n      [/[ \\t\\r\\n]+/, \"\"],\n      [/(@qualifiedName)(\\s*=\\s*)(\"[^\"]*\"|'[^']*')/, [\"attribute.name\", \"\", \"attribute.value\"]],\n      [\n        /(@qualifiedName)(\\s*=\\s*)(\"[^\">?\\/]*|'[^'>?\\/]*)(?=[\\?\\/]\\>)/,\n        [\"attribute.name\", \"\", \"attribute.value\"]\n      ],\n      [/(@qualifiedName)(\\s*=\\s*)(\"[^\">]*|'[^'>]*)/, [\"attribute.name\", \"\", \"attribute.value\"]],\n      [/@qualifiedName/, \"attribute.name\"],\n      [/\\?>/, { token: \"delimiter\", next: \"@pop\" }],\n      [/(\\/)(>)/, [{ token: \"tag\" }, { token: \"delimiter\", next: \"@pop\" }]],\n      [/>/, { token: \"delimiter\", next: \"@pop\" }]\n    ],\n    whitespace: [\n      [/[ \\t\\r\\n]+/, \"\"],\n      [/<!--/, { token: \"comment\", next: \"@comment\" }]\n    ],\n    comment: [\n      [/[^<\\-]+/, \"comment.content\"],\n      [/-->/, { token: \"comment\", next: \"@pop\" }],\n      [/<!--/, \"comment.content.invalid\"],\n      [/[<\\-]/, \"comment.content\"]\n    ]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/yaml/yaml.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/yaml/yaml.contribution.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/yaml/yaml.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n  id: \"yaml\",\n  extensions: [\".yaml\", \".yml\"],\n  aliases: [\"YAML\", \"yaml\", \"YML\", \"yml\"],\n  mimetypes: [\"application/x-yaml\", \"text/x-yaml\"],\n  loader: () => {\n    if (false) {\n      return new Promise((resolve, reject) => {\n        __require([\"vs/basic-languages/yaml/yaml\"], resolve, reject);\n      });\n    } else {\n      return import(\"./yaml.js\");\n    }\n  }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/basic-languages/yaml/yaml.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\n\n// src/fillers/monaco-editor-core.ts\nvar monaco_editor_core_exports = {};\n__reExport(monaco_editor_core_exports, monaco_editor_core_star);\nimport * as monaco_editor_core_star from \"../../editor/editor.api.js\";\n\n// src/basic-languages/yaml/yaml.ts\nvar conf = {\n  comments: {\n    lineComment: \"#\"\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  surroundingPairs: [\n    { open: \"{\", close: \"}\" },\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" }\n  ],\n  folding: {\n    offSide: true\n  },\n  onEnterRules: [\n    {\n      beforeText: /:\\s*$/,\n      action: {\n        indentAction: monaco_editor_core_exports.languages.IndentAction.Indent\n      }\n    }\n  ]\n};\nvar language = {\n  tokenPostfix: \".yaml\",\n  brackets: [\n    { token: \"delimiter.bracket\", open: \"{\", close: \"}\" },\n    { token: \"delimiter.square\", open: \"[\", close: \"]\" }\n  ],\n  keywords: [\"true\", \"True\", \"TRUE\", \"false\", \"False\", \"FALSE\", \"null\", \"Null\", \"Null\", \"~\"],\n  numberInteger: /(?:0|[+-]?[0-9]+)/,\n  numberFloat: /(?:0|[+-]?[0-9]+)(?:\\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,\n  numberOctal: /0o[0-7]+/,\n  numberHex: /0x[0-9a-fA-F]+/,\n  numberInfinity: /[+-]?\\.(?:inf|Inf|INF)/,\n  numberNaN: /\\.(?:nan|Nan|NAN)/,\n  numberDate: /\\d{4}-\\d\\d-\\d\\d([Tt ]\\d\\d:\\d\\d:\\d\\d(\\.\\d+)?(( ?[+-]\\d\\d?(:\\d\\d)?)|Z)?)?/,\n  escapes: /\\\\(?:[btnfr\\\\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,\n  tokenizer: {\n    root: [\n      { include: \"@whitespace\" },\n      { include: \"@comment\" },\n      // Directive\n      [/%[^ ]+.*$/, \"meta.directive\"],\n      // Document Markers\n      [/---/, \"operators.directivesEnd\"],\n      [/\\.{3}/, \"operators.documentEnd\"],\n      // Block Structure Indicators\n      [/[-?:](?= )/, \"operators\"],\n      { include: \"@anchor\" },\n      { include: \"@tagHandle\" },\n      { include: \"@flowCollections\" },\n      { include: \"@blockStyle\" },\n      // Numbers\n      [/@numberInteger(?![ \\t]*\\S+)/, \"number\"],\n      [/@numberFloat(?![ \\t]*\\S+)/, \"number.float\"],\n      [/@numberOctal(?![ \\t]*\\S+)/, \"number.octal\"],\n      [/@numberHex(?![ \\t]*\\S+)/, \"number.hex\"],\n      [/@numberInfinity(?![ \\t]*\\S+)/, \"number.infinity\"],\n      [/@numberNaN(?![ \\t]*\\S+)/, \"number.nan\"],\n      [/@numberDate(?![ \\t]*\\S+)/, \"number.date\"],\n      // Key:Value pair\n      [/(\".*?\"|'.*?'|[^#'\"]*?)([ \\t]*)(:)( |$)/, [\"type\", \"white\", \"operators\", \"white\"]],\n      { include: \"@flowScalars\" },\n      // String nodes\n      [\n        /.+?(?=(\\s+#|$))/,\n        {\n          cases: {\n            \"@keywords\": \"keyword\",\n            \"@default\": \"string\"\n          }\n        }\n      ]\n    ],\n    // Flow Collection: Flow Mapping\n    object: [\n      { include: \"@whitespace\" },\n      { include: \"@comment\" },\n      // Flow Mapping termination\n      [/\\}/, \"@brackets\", \"@pop\"],\n      // Flow Mapping delimiter\n      [/,/, \"delimiter.comma\"],\n      // Flow Mapping Key:Value delimiter\n      [/:(?= )/, \"operators\"],\n      // Flow Mapping Key:Value key\n      [/(?:\".*?\"|'.*?'|[^,\\{\\[]+?)(?=: )/, \"type\"],\n      // Start Flow Style\n      { include: \"@flowCollections\" },\n      { include: \"@flowScalars\" },\n      // Scalar Data types\n      { include: \"@tagHandle\" },\n      { include: \"@anchor\" },\n      { include: \"@flowNumber\" },\n      // Other value (keyword or string)\n      [\n        /[^\\},]+/,\n        {\n          cases: {\n            \"@keywords\": \"keyword\",\n            \"@default\": \"string\"\n          }\n        }\n      ]\n    ],\n    // Flow Collection: Flow Sequence\n    array: [\n      { include: \"@whitespace\" },\n      { include: \"@comment\" },\n      // Flow Sequence termination\n      [/\\]/, \"@brackets\", \"@pop\"],\n      // Flow Sequence delimiter\n      [/,/, \"delimiter.comma\"],\n      // Start Flow Style\n      { include: \"@flowCollections\" },\n      { include: \"@flowScalars\" },\n      // Scalar Data types\n      { include: \"@tagHandle\" },\n      { include: \"@anchor\" },\n      { include: \"@flowNumber\" },\n      // Other value (keyword or string)\n      [\n        /[^\\],]+/,\n        {\n          cases: {\n            \"@keywords\": \"keyword\",\n            \"@default\": \"string\"\n          }\n        }\n      ]\n    ],\n    // First line of a Block Style\n    multiString: [[/^( +).+$/, \"string\", \"@multiStringContinued.$1\"]],\n    // Further lines of a Block Style\n    //   Workaround for indentation detection\n    multiStringContinued: [\n      [\n        /^( *).+$/,\n        {\n          cases: {\n            \"$1==$S2\": \"string\",\n            \"@default\": { token: \"@rematch\", next: \"@popall\" }\n          }\n        }\n      ]\n    ],\n    whitespace: [[/[ \\t\\r\\n]+/, \"white\"]],\n    // Only line comments\n    comment: [[/#.*$/, \"comment\"]],\n    // Start Flow Collections\n    flowCollections: [\n      [/\\[/, \"@brackets\", \"@array\"],\n      [/\\{/, \"@brackets\", \"@object\"]\n    ],\n    // Start Flow Scalars (quoted strings)\n    flowScalars: [\n      [/\"([^\"\\\\]|\\\\.)*$/, \"string.invalid\"],\n      [/'([^'\\\\]|\\\\.)*$/, \"string.invalid\"],\n      [/'[^']*'/, \"string\"],\n      [/\"/, \"string\", \"@doubleQuotedString\"]\n    ],\n    doubleQuotedString: [\n      [/[^\\\\\"]+/, \"string\"],\n      [/@escapes/, \"string.escape\"],\n      [/\\\\./, \"string.escape.invalid\"],\n      [/\"/, \"string\", \"@pop\"]\n    ],\n    // Start Block Scalar\n    blockStyle: [[/[>|][0-9]*[+-]?$/, \"operators\", \"@multiString\"]],\n    // Numbers in Flow Collections (terminate with ,]})\n    flowNumber: [\n      [/@numberInteger(?=[ \\t]*[,\\]\\}])/, \"number\"],\n      [/@numberFloat(?=[ \\t]*[,\\]\\}])/, \"number.float\"],\n      [/@numberOctal(?=[ \\t]*[,\\]\\}])/, \"number.octal\"],\n      [/@numberHex(?=[ \\t]*[,\\]\\}])/, \"number.hex\"],\n      [/@numberInfinity(?=[ \\t]*[,\\]\\}])/, \"number.infinity\"],\n      [/@numberNaN(?=[ \\t]*[,\\]\\}])/, \"number.nan\"],\n      [/@numberDate(?=[ \\t]*[,\\]\\}])/, \"number.date\"]\n    ],\n    tagHandle: [[/\\![^ ]*/, \"tag\"]],\n    anchor: [[/[&*][^ ]+/, \"namespace\"]]\n  }\n};\nexport {\n  conf,\n  language\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/config/charWidthReader.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { applyFontInfo } from './domFontInfo.js';\nexport class CharWidthRequest {\n    constructor(chr, type) {\n        this.chr = chr;\n        this.type = type;\n        this.width = 0;\n    }\n    fulfill(width) {\n        this.width = width;\n    }\n}\nclass DomCharWidthReader {\n    constructor(bareFontInfo, requests) {\n        this._bareFontInfo = bareFontInfo;\n        this._requests = requests;\n        this._container = null;\n        this._testElements = null;\n    }\n    read(targetWindow) {\n        // Create a test container with all these test elements\n        this._createDomElements();\n        // Add the container to the DOM\n        targetWindow.document.body.appendChild(this._container);\n        // Read character widths\n        this._readFromDomElements();\n        // Remove the container from the DOM\n        targetWindow.document.body.removeChild(this._container);\n        this._container = null;\n        this._testElements = null;\n    }\n    _createDomElements() {\n        const container = document.createElement('div');\n        container.style.position = 'absolute';\n        container.style.top = '-50000px';\n        container.style.width = '50000px';\n        const regularDomNode = document.createElement('div');\n        applyFontInfo(regularDomNode, this._bareFontInfo);\n        container.appendChild(regularDomNode);\n        const boldDomNode = document.createElement('div');\n        applyFontInfo(boldDomNode, this._bareFontInfo);\n        boldDomNode.style.fontWeight = 'bold';\n        container.appendChild(boldDomNode);\n        const italicDomNode = document.createElement('div');\n        applyFontInfo(italicDomNode, this._bareFontInfo);\n        italicDomNode.style.fontStyle = 'italic';\n        container.appendChild(italicDomNode);\n        const testElements = [];\n        for (const request of this._requests) {\n            let parent;\n            if (request.type === 0 /* CharWidthRequestType.Regular */) {\n                parent = regularDomNode;\n            }\n            if (request.type === 2 /* CharWidthRequestType.Bold */) {\n                parent = boldDomNode;\n            }\n            if (request.type === 1 /* CharWidthRequestType.Italic */) {\n                parent = italicDomNode;\n            }\n            parent.appendChild(document.createElement('br'));\n            const testElement = document.createElement('span');\n            DomCharWidthReader._render(testElement, request);\n            parent.appendChild(testElement);\n            testElements.push(testElement);\n        }\n        this._container = container;\n        this._testElements = testElements;\n    }\n    static _render(testElement, request) {\n        if (request.chr === ' ') {\n            let htmlString = '\\u00a0';\n            // Repeat character 256 (2^8) times\n            for (let i = 0; i < 8; i++) {\n                htmlString += htmlString;\n            }\n            testElement.innerText = htmlString;\n        }\n        else {\n            let testString = request.chr;\n            // Repeat character 256 (2^8) times\n            for (let i = 0; i < 8; i++) {\n                testString += testString;\n            }\n            testElement.textContent = testString;\n        }\n    }\n    _readFromDomElements() {\n        for (let i = 0, len = this._requests.length; i < len; i++) {\n            const request = this._requests[i];\n            const testElement = this._testElements[i];\n            request.fulfill(testElement.offsetWidth / 256);\n        }\n    }\n}\nexport function readCharWidths(targetWindow, bareFontInfo, requests) {\n    const reader = new DomCharWidthReader(bareFontInfo, requests);\n    reader.read(targetWindow);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/config/domFontInfo.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { FastDomNode } from '../../../base/browser/fastDomNode.js';\nexport function applyFontInfo(domNode, fontInfo) {\n    if (domNode instanceof FastDomNode) {\n        domNode.setFontFamily(fontInfo.getMassagedFontFamily());\n        domNode.setFontWeight(fontInfo.fontWeight);\n        domNode.setFontSize(fontInfo.fontSize);\n        domNode.setFontFeatureSettings(fontInfo.fontFeatureSettings);\n        domNode.setFontVariationSettings(fontInfo.fontVariationSettings);\n        domNode.setLineHeight(fontInfo.lineHeight);\n        domNode.setLetterSpacing(fontInfo.letterSpacing);\n    }\n    else {\n        domNode.style.fontFamily = fontInfo.getMassagedFontFamily();\n        domNode.style.fontWeight = fontInfo.fontWeight;\n        domNode.style.fontSize = fontInfo.fontSize + 'px';\n        domNode.style.fontFeatureSettings = fontInfo.fontFeatureSettings;\n        domNode.style.fontVariationSettings = fontInfo.fontVariationSettings;\n        domNode.style.lineHeight = fontInfo.lineHeight + 'px';\n        domNode.style.letterSpacing = fontInfo.letterSpacing + 'px';\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/config/editorConfiguration.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport * as browser from '../../../base/browser/browser.js';\nimport * as arrays from '../../../base/common/arrays.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport * as objects from '../../../base/common/objects.js';\nimport * as platform from '../../../base/common/platform.js';\nimport { ElementSizeObserver } from './elementSizeObserver.js';\nimport { FontMeasurements } from './fontMeasurements.js';\nimport { migrateOptions } from './migrateOptions.js';\nimport { TabFocus } from './tabFocus.js';\nimport { ComputeOptionsMemory, ConfigurationChangedEvent, editorOptionsRegistry } from '../../common/config/editorOptions.js';\nimport { EditorZoom } from '../../common/config/editorZoom.js';\nimport { BareFontInfo } from '../../common/config/fontInfo.js';\nimport { IAccessibilityService } from '../../../platform/accessibility/common/accessibility.js';\nimport { getWindow, getWindowById } from '../../../base/browser/dom.js';\nimport { PixelRatio } from '../../../base/browser/pixelRatio.js';\nlet EditorConfiguration = class EditorConfiguration extends Disposable {\n    constructor(isSimpleWidget, contextMenuId, options, container, _accessibilityService) {\n        super();\n        this._accessibilityService = _accessibilityService;\n        this._onDidChange = this._register(new Emitter());\n        this.onDidChange = this._onDidChange.event;\n        this._onDidChangeFast = this._register(new Emitter());\n        this.onDidChangeFast = this._onDidChangeFast.event;\n        this._isDominatedByLongLines = false;\n        this._viewLineCount = 1;\n        this._lineNumbersDigitCount = 1;\n        this._reservedHeight = 0;\n        this._glyphMarginDecorationLaneCount = 1;\n        this._computeOptionsMemory = new ComputeOptionsMemory();\n        this.isSimpleWidget = isSimpleWidget;\n        this.contextMenuId = contextMenuId;\n        this._containerObserver = this._register(new ElementSizeObserver(container, options.dimension));\n        this._targetWindowId = getWindow(container).vscodeWindowId;\n        this._rawOptions = deepCloneAndMigrateOptions(options);\n        this._validatedOptions = EditorOptionsUtil.validateOptions(this._rawOptions);\n        this.options = this._computeOptions();\n        if (this.options.get(13 /* EditorOption.automaticLayout */)) {\n            this._containerObserver.startObserving();\n        }\n        this._register(EditorZoom.onDidChangeZoomLevel(() => this._recomputeOptions()));\n        this._register(TabFocus.onDidChangeTabFocus(() => this._recomputeOptions()));\n        this._register(this._containerObserver.onDidChange(() => this._recomputeOptions()));\n        this._register(FontMeasurements.onDidChange(() => this._recomputeOptions()));\n        this._register(PixelRatio.getInstance(getWindow(container)).onDidChange(() => this._recomputeOptions()));\n        this._register(this._accessibilityService.onDidChangeScreenReaderOptimized(() => this._recomputeOptions()));\n    }\n    _recomputeOptions() {\n        const newOptions = this._computeOptions();\n        const changeEvent = EditorOptionsUtil.checkEquals(this.options, newOptions);\n        if (changeEvent === null) {\n            // nothing changed!\n            return;\n        }\n        this.options = newOptions;\n        this._onDidChangeFast.fire(changeEvent);\n        this._onDidChange.fire(changeEvent);\n    }\n    _computeOptions() {\n        const partialEnv = this._readEnvConfiguration();\n        const bareFontInfo = BareFontInfo.createFromValidatedSettings(this._validatedOptions, partialEnv.pixelRatio, this.isSimpleWidget);\n        const fontInfo = this._readFontInfo(bareFontInfo);\n        const env = {\n            memory: this._computeOptionsMemory,\n            outerWidth: partialEnv.outerWidth,\n            outerHeight: partialEnv.outerHeight - this._reservedHeight,\n            fontInfo: fontInfo,\n            extraEditorClassName: partialEnv.extraEditorClassName,\n            isDominatedByLongLines: this._isDominatedByLongLines,\n            viewLineCount: this._viewLineCount,\n            lineNumbersDigitCount: this._lineNumbersDigitCount,\n            emptySelectionClipboard: partialEnv.emptySelectionClipboard,\n            pixelRatio: partialEnv.pixelRatio,\n            tabFocusMode: TabFocus.getTabFocusMode(),\n            accessibilitySupport: partialEnv.accessibilitySupport,\n            glyphMarginDecorationLaneCount: this._glyphMarginDecorationLaneCount\n        };\n        return EditorOptionsUtil.computeOptions(this._validatedOptions, env);\n    }\n    _readEnvConfiguration() {\n        return {\n            extraEditorClassName: getExtraEditorClassName(),\n            outerWidth: this._containerObserver.getWidth(),\n            outerHeight: this._containerObserver.getHeight(),\n            emptySelectionClipboard: browser.isWebKit || browser.isFirefox,\n            pixelRatio: PixelRatio.getInstance(getWindowById(this._targetWindowId, true).window).value,\n            accessibilitySupport: (this._accessibilityService.isScreenReaderOptimized()\n                ? 2 /* AccessibilitySupport.Enabled */\n                : this._accessibilityService.getAccessibilitySupport())\n        };\n    }\n    _readFontInfo(bareFontInfo) {\n        return FontMeasurements.readFontInfo(getWindowById(this._targetWindowId, true).window, bareFontInfo);\n    }\n    getRawOptions() {\n        return this._rawOptions;\n    }\n    updateOptions(_newOptions) {\n        const newOptions = deepCloneAndMigrateOptions(_newOptions);\n        const didChange = EditorOptionsUtil.applyUpdate(this._rawOptions, newOptions);\n        if (!didChange) {\n            return;\n        }\n        this._validatedOptions = EditorOptionsUtil.validateOptions(this._rawOptions);\n        this._recomputeOptions();\n    }\n    observeContainer(dimension) {\n        this._containerObserver.observe(dimension);\n    }\n    setIsDominatedByLongLines(isDominatedByLongLines) {\n        if (this._isDominatedByLongLines === isDominatedByLongLines) {\n            return;\n        }\n        this._isDominatedByLongLines = isDominatedByLongLines;\n        this._recomputeOptions();\n    }\n    setModelLineCount(modelLineCount) {\n        const lineNumbersDigitCount = digitCount(modelLineCount);\n        if (this._lineNumbersDigitCount === lineNumbersDigitCount) {\n            return;\n        }\n        this._lineNumbersDigitCount = lineNumbersDigitCount;\n        this._recomputeOptions();\n    }\n    setViewLineCount(viewLineCount) {\n        if (this._viewLineCount === viewLineCount) {\n            return;\n        }\n        this._viewLineCount = viewLineCount;\n        this._recomputeOptions();\n    }\n    setReservedHeight(reservedHeight) {\n        if (this._reservedHeight === reservedHeight) {\n            return;\n        }\n        this._reservedHeight = reservedHeight;\n        this._recomputeOptions();\n    }\n    setGlyphMarginDecorationLaneCount(decorationLaneCount) {\n        if (this._glyphMarginDecorationLaneCount === decorationLaneCount) {\n            return;\n        }\n        this._glyphMarginDecorationLaneCount = decorationLaneCount;\n        this._recomputeOptions();\n    }\n};\nEditorConfiguration = __decorate([\n    __param(4, IAccessibilityService)\n], EditorConfiguration);\nexport { EditorConfiguration };\nfunction digitCount(n) {\n    let r = 0;\n    while (n) {\n        n = Math.floor(n / 10);\n        r++;\n    }\n    return r ? r : 1;\n}\nfunction getExtraEditorClassName() {\n    let extra = '';\n    if (!browser.isSafari && !browser.isWebkitWebView) {\n        // Use user-select: none in all browsers except Safari and native macOS WebView\n        extra += 'no-user-select ';\n    }\n    if (browser.isSafari) {\n        // See https://github.com/microsoft/vscode/issues/108822\n        extra += 'no-minimap-shadow ';\n        extra += 'enable-user-select ';\n    }\n    if (platform.isMacintosh) {\n        extra += 'mac ';\n    }\n    return extra;\n}\nclass ValidatedEditorOptions {\n    constructor() {\n        this._values = [];\n    }\n    _read(option) {\n        return this._values[option];\n    }\n    get(id) {\n        return this._values[id];\n    }\n    _write(option, value) {\n        this._values[option] = value;\n    }\n}\nexport class ComputedEditorOptions {\n    constructor() {\n        this._values = [];\n    }\n    _read(id) {\n        if (id >= this._values.length) {\n            throw new Error('Cannot read uninitialized value');\n        }\n        return this._values[id];\n    }\n    get(id) {\n        return this._read(id);\n    }\n    _write(id, value) {\n        this._values[id] = value;\n    }\n}\nclass EditorOptionsUtil {\n    static validateOptions(options) {\n        const result = new ValidatedEditorOptions();\n        for (const editorOption of editorOptionsRegistry) {\n            const value = (editorOption.name === '_never_' ? undefined : options[editorOption.name]);\n            result._write(editorOption.id, editorOption.validate(value));\n        }\n        return result;\n    }\n    static computeOptions(options, env) {\n        const result = new ComputedEditorOptions();\n        for (const editorOption of editorOptionsRegistry) {\n            result._write(editorOption.id, editorOption.compute(env, result, options._read(editorOption.id)));\n        }\n        return result;\n    }\n    static _deepEquals(a, b) {\n        if (typeof a !== 'object' || typeof b !== 'object' || !a || !b) {\n            return a === b;\n        }\n        if (Array.isArray(a) || Array.isArray(b)) {\n            return (Array.isArray(a) && Array.isArray(b) ? arrays.equals(a, b) : false);\n        }\n        if (Object.keys(a).length !== Object.keys(b).length) {\n            return false;\n        }\n        for (const key in a) {\n            if (!EditorOptionsUtil._deepEquals(a[key], b[key])) {\n                return false;\n            }\n        }\n        return true;\n    }\n    static checkEquals(a, b) {\n        const result = [];\n        let somethingChanged = false;\n        for (const editorOption of editorOptionsRegistry) {\n            const changed = !EditorOptionsUtil._deepEquals(a._read(editorOption.id), b._read(editorOption.id));\n            result[editorOption.id] = changed;\n            if (changed) {\n                somethingChanged = true;\n            }\n        }\n        return (somethingChanged ? new ConfigurationChangedEvent(result) : null);\n    }\n    /**\n     * Returns true if something changed.\n     * Modifies `options`.\n    */\n    static applyUpdate(options, update) {\n        let changed = false;\n        for (const editorOption of editorOptionsRegistry) {\n            if (update.hasOwnProperty(editorOption.name)) {\n                const result = editorOption.applyUpdate(options[editorOption.name], update[editorOption.name]);\n                options[editorOption.name] = result.newValue;\n                changed = changed || result.didChange;\n            }\n        }\n        return changed;\n    }\n}\nfunction deepCloneAndMigrateOptions(_options) {\n    const options = objects.deepClone(_options);\n    migrateOptions(options);\n    return options;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/config/elementSizeObserver.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { getWindow, scheduleAtNextAnimationFrame } from '../../../base/browser/dom.js';\nexport class ElementSizeObserver extends Disposable {\n    constructor(referenceDomElement, dimension) {\n        super();\n        this._onDidChange = this._register(new Emitter());\n        this.onDidChange = this._onDidChange.event;\n        this._referenceDomElement = referenceDomElement;\n        this._width = -1;\n        this._height = -1;\n        this._resizeObserver = null;\n        this.measureReferenceDomElement(false, dimension);\n    }\n    dispose() {\n        this.stopObserving();\n        super.dispose();\n    }\n    getWidth() {\n        return this._width;\n    }\n    getHeight() {\n        return this._height;\n    }\n    startObserving() {\n        if (!this._resizeObserver && this._referenceDomElement) {\n            // We want to react to the resize observer only once per animation frame\n            // The first time the resize observer fires, we will react to it immediately.\n            // Otherwise we will postpone to the next animation frame.\n            // We'll use `observeContentRect` to store the content rect we received.\n            let observedDimenstion = null;\n            const observeNow = () => {\n                if (observedDimenstion) {\n                    this.observe({ width: observedDimenstion.width, height: observedDimenstion.height });\n                }\n                else {\n                    this.observe();\n                }\n            };\n            let shouldObserve = false;\n            let alreadyObservedThisAnimationFrame = false;\n            const update = () => {\n                if (shouldObserve && !alreadyObservedThisAnimationFrame) {\n                    try {\n                        shouldObserve = false;\n                        alreadyObservedThisAnimationFrame = true;\n                        observeNow();\n                    }\n                    finally {\n                        scheduleAtNextAnimationFrame(getWindow(this._referenceDomElement), () => {\n                            alreadyObservedThisAnimationFrame = false;\n                            update();\n                        });\n                    }\n                }\n            };\n            this._resizeObserver = new ResizeObserver((entries) => {\n                if (entries && entries[0] && entries[0].contentRect) {\n                    observedDimenstion = { width: entries[0].contentRect.width, height: entries[0].contentRect.height };\n                }\n                else {\n                    observedDimenstion = null;\n                }\n                shouldObserve = true;\n                update();\n            });\n            this._resizeObserver.observe(this._referenceDomElement);\n        }\n    }\n    stopObserving() {\n        if (this._resizeObserver) {\n            this._resizeObserver.disconnect();\n            this._resizeObserver = null;\n        }\n    }\n    observe(dimension) {\n        this.measureReferenceDomElement(true, dimension);\n    }\n    measureReferenceDomElement(emitEvent, dimension) {\n        let observedWidth = 0;\n        let observedHeight = 0;\n        if (dimension) {\n            observedWidth = dimension.width;\n            observedHeight = dimension.height;\n        }\n        else if (this._referenceDomElement) {\n            observedWidth = this._referenceDomElement.clientWidth;\n            observedHeight = this._referenceDomElement.clientHeight;\n        }\n        observedWidth = Math.max(5, observedWidth);\n        observedHeight = Math.max(5, observedHeight);\n        if (this._width !== observedWidth || this._height !== observedHeight) {\n            this._width = observedWidth;\n            this._height = observedHeight;\n            if (emitEvent) {\n                this._onDidChange.fire();\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/config/fontMeasurements.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { getWindowId } from '../../../base/browser/dom.js';\nimport { PixelRatio } from '../../../base/browser/pixelRatio.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { CharWidthRequest, readCharWidths } from './charWidthReader.js';\nimport { EditorFontLigatures } from '../../common/config/editorOptions.js';\nimport { FontInfo } from '../../common/config/fontInfo.js';\nexport class FontMeasurementsImpl extends Disposable {\n    constructor() {\n        super(...arguments);\n        this._cache = new Map();\n        this._evictUntrustedReadingsTimeout = -1;\n        this._onDidChange = this._register(new Emitter());\n        this.onDidChange = this._onDidChange.event;\n    }\n    dispose() {\n        if (this._evictUntrustedReadingsTimeout !== -1) {\n            clearTimeout(this._evictUntrustedReadingsTimeout);\n            this._evictUntrustedReadingsTimeout = -1;\n        }\n        super.dispose();\n    }\n    /**\n     * Clear all cached font information and trigger a change event.\n     */\n    clearAllFontInfos() {\n        this._cache.clear();\n        this._onDidChange.fire();\n    }\n    _ensureCache(targetWindow) {\n        const windowId = getWindowId(targetWindow);\n        let cache = this._cache.get(windowId);\n        if (!cache) {\n            cache = new FontMeasurementsCache();\n            this._cache.set(windowId, cache);\n        }\n        return cache;\n    }\n    _writeToCache(targetWindow, item, value) {\n        const cache = this._ensureCache(targetWindow);\n        cache.put(item, value);\n        if (!value.isTrusted && this._evictUntrustedReadingsTimeout === -1) {\n            // Try reading again after some time\n            this._evictUntrustedReadingsTimeout = targetWindow.setTimeout(() => {\n                this._evictUntrustedReadingsTimeout = -1;\n                this._evictUntrustedReadings(targetWindow);\n            }, 5000);\n        }\n    }\n    _evictUntrustedReadings(targetWindow) {\n        const cache = this._ensureCache(targetWindow);\n        const values = cache.getValues();\n        let somethingRemoved = false;\n        for (const item of values) {\n            if (!item.isTrusted) {\n                somethingRemoved = true;\n                cache.remove(item);\n            }\n        }\n        if (somethingRemoved) {\n            this._onDidChange.fire();\n        }\n    }\n    /**\n     * Read font information.\n     */\n    readFontInfo(targetWindow, bareFontInfo) {\n        const cache = this._ensureCache(targetWindow);\n        if (!cache.has(bareFontInfo)) {\n            let readConfig = this._actualReadFontInfo(targetWindow, bareFontInfo);\n            if (readConfig.typicalHalfwidthCharacterWidth <= 2 || readConfig.typicalFullwidthCharacterWidth <= 2 || readConfig.spaceWidth <= 2 || readConfig.maxDigitWidth <= 2) {\n                // Hey, it's Bug 14341 ... we couldn't read\n                readConfig = new FontInfo({\n                    pixelRatio: PixelRatio.getInstance(targetWindow).value,\n                    fontFamily: readConfig.fontFamily,\n                    fontWeight: readConfig.fontWeight,\n                    fontSize: readConfig.fontSize,\n                    fontFeatureSettings: readConfig.fontFeatureSettings,\n                    fontVariationSettings: readConfig.fontVariationSettings,\n                    lineHeight: readConfig.lineHeight,\n                    letterSpacing: readConfig.letterSpacing,\n                    isMonospace: readConfig.isMonospace,\n                    typicalHalfwidthCharacterWidth: Math.max(readConfig.typicalHalfwidthCharacterWidth, 5),\n                    typicalFullwidthCharacterWidth: Math.max(readConfig.typicalFullwidthCharacterWidth, 5),\n                    canUseHalfwidthRightwardsArrow: readConfig.canUseHalfwidthRightwardsArrow,\n                    spaceWidth: Math.max(readConfig.spaceWidth, 5),\n                    middotWidth: Math.max(readConfig.middotWidth, 5),\n                    wsmiddotWidth: Math.max(readConfig.wsmiddotWidth, 5),\n                    maxDigitWidth: Math.max(readConfig.maxDigitWidth, 5),\n                }, false);\n            }\n            this._writeToCache(targetWindow, bareFontInfo, readConfig);\n        }\n        return cache.get(bareFontInfo);\n    }\n    _createRequest(chr, type, all, monospace) {\n        const result = new CharWidthRequest(chr, type);\n        all.push(result);\n        monospace === null || monospace === void 0 ? void 0 : monospace.push(result);\n        return result;\n    }\n    _actualReadFontInfo(targetWindow, bareFontInfo) {\n        const all = [];\n        const monospace = [];\n        const typicalHalfwidthCharacter = this._createRequest('n', 0 /* CharWidthRequestType.Regular */, all, monospace);\n        const typicalFullwidthCharacter = this._createRequest('\\uff4d', 0 /* CharWidthRequestType.Regular */, all, null);\n        const space = this._createRequest(' ', 0 /* CharWidthRequestType.Regular */, all, monospace);\n        const digit0 = this._createRequest('0', 0 /* CharWidthRequestType.Regular */, all, monospace);\n        const digit1 = this._createRequest('1', 0 /* CharWidthRequestType.Regular */, all, monospace);\n        const digit2 = this._createRequest('2', 0 /* CharWidthRequestType.Regular */, all, monospace);\n        const digit3 = this._createRequest('3', 0 /* CharWidthRequestType.Regular */, all, monospace);\n        const digit4 = this._createRequest('4', 0 /* CharWidthRequestType.Regular */, all, monospace);\n        const digit5 = this._createRequest('5', 0 /* CharWidthRequestType.Regular */, all, monospace);\n        const digit6 = this._createRequest('6', 0 /* CharWidthRequestType.Regular */, all, monospace);\n        const digit7 = this._createRequest('7', 0 /* CharWidthRequestType.Regular */, all, monospace);\n        const digit8 = this._createRequest('8', 0 /* CharWidthRequestType.Regular */, all, monospace);\n        const digit9 = this._createRequest('9', 0 /* CharWidthRequestType.Regular */, all, monospace);\n        // monospace test: used for whitespace rendering\n        const rightwardsArrow = this._createRequest('→', 0 /* CharWidthRequestType.Regular */, all, monospace);\n        const halfwidthRightwardsArrow = this._createRequest('￫', 0 /* CharWidthRequestType.Regular */, all, null);\n        // U+00B7 - MIDDLE DOT\n        const middot = this._createRequest('·', 0 /* CharWidthRequestType.Regular */, all, monospace);\n        // U+2E31 - WORD SEPARATOR MIDDLE DOT\n        const wsmiddotWidth = this._createRequest(String.fromCharCode(0x2E31), 0 /* CharWidthRequestType.Regular */, all, null);\n        // monospace test: some characters\n        const monospaceTestChars = '|/-_ilm%';\n        for (let i = 0, len = monospaceTestChars.length; i < len; i++) {\n            this._createRequest(monospaceTestChars.charAt(i), 0 /* CharWidthRequestType.Regular */, all, monospace);\n            this._createRequest(monospaceTestChars.charAt(i), 1 /* CharWidthRequestType.Italic */, all, monospace);\n            this._createRequest(monospaceTestChars.charAt(i), 2 /* CharWidthRequestType.Bold */, all, monospace);\n        }\n        readCharWidths(targetWindow, bareFontInfo, all);\n        const maxDigitWidth = Math.max(digit0.width, digit1.width, digit2.width, digit3.width, digit4.width, digit5.width, digit6.width, digit7.width, digit8.width, digit9.width);\n        let isMonospace = (bareFontInfo.fontFeatureSettings === EditorFontLigatures.OFF);\n        const referenceWidth = monospace[0].width;\n        for (let i = 1, len = monospace.length; isMonospace && i < len; i++) {\n            const diff = referenceWidth - monospace[i].width;\n            if (diff < -0.001 || diff > 0.001) {\n                isMonospace = false;\n                break;\n            }\n        }\n        let canUseHalfwidthRightwardsArrow = true;\n        if (isMonospace && halfwidthRightwardsArrow.width !== referenceWidth) {\n            // using a halfwidth rightwards arrow would break monospace...\n            canUseHalfwidthRightwardsArrow = false;\n        }\n        if (halfwidthRightwardsArrow.width > rightwardsArrow.width) {\n            // using a halfwidth rightwards arrow would paint a larger arrow than a regular rightwards arrow\n            canUseHalfwidthRightwardsArrow = false;\n        }\n        return new FontInfo({\n            pixelRatio: PixelRatio.getInstance(targetWindow).value,\n            fontFamily: bareFontInfo.fontFamily,\n            fontWeight: bareFontInfo.fontWeight,\n            fontSize: bareFontInfo.fontSize,\n            fontFeatureSettings: bareFontInfo.fontFeatureSettings,\n            fontVariationSettings: bareFontInfo.fontVariationSettings,\n            lineHeight: bareFontInfo.lineHeight,\n            letterSpacing: bareFontInfo.letterSpacing,\n            isMonospace: isMonospace,\n            typicalHalfwidthCharacterWidth: typicalHalfwidthCharacter.width,\n            typicalFullwidthCharacterWidth: typicalFullwidthCharacter.width,\n            canUseHalfwidthRightwardsArrow: canUseHalfwidthRightwardsArrow,\n            spaceWidth: space.width,\n            middotWidth: middot.width,\n            wsmiddotWidth: wsmiddotWidth.width,\n            maxDigitWidth: maxDigitWidth\n        }, true);\n    }\n}\nclass FontMeasurementsCache {\n    constructor() {\n        this._keys = Object.create(null);\n        this._values = Object.create(null);\n    }\n    has(item) {\n        const itemId = item.getId();\n        return !!this._values[itemId];\n    }\n    get(item) {\n        const itemId = item.getId();\n        return this._values[itemId];\n    }\n    put(item, value) {\n        const itemId = item.getId();\n        this._keys[itemId] = item;\n        this._values[itemId] = value;\n    }\n    remove(item) {\n        const itemId = item.getId();\n        delete this._keys[itemId];\n        delete this._values[itemId];\n    }\n    getValues() {\n        return Object.keys(this._keys).map(id => this._values[id]);\n    }\n}\nexport const FontMeasurements = new FontMeasurementsImpl();\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/config/migrateOptions.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class EditorSettingMigration {\n    constructor(key, migrate) {\n        this.key = key;\n        this.migrate = migrate;\n    }\n    apply(options) {\n        const value = EditorSettingMigration._read(options, this.key);\n        const read = (key) => EditorSettingMigration._read(options, key);\n        const write = (key, value) => EditorSettingMigration._write(options, key, value);\n        this.migrate(value, read, write);\n    }\n    static _read(source, key) {\n        if (typeof source === 'undefined') {\n            return undefined;\n        }\n        const firstDotIndex = key.indexOf('.');\n        if (firstDotIndex >= 0) {\n            const firstSegment = key.substring(0, firstDotIndex);\n            return this._read(source[firstSegment], key.substring(firstDotIndex + 1));\n        }\n        return source[key];\n    }\n    static _write(target, key, value) {\n        const firstDotIndex = key.indexOf('.');\n        if (firstDotIndex >= 0) {\n            const firstSegment = key.substring(0, firstDotIndex);\n            target[firstSegment] = target[firstSegment] || {};\n            this._write(target[firstSegment], key.substring(firstDotIndex + 1), value);\n            return;\n        }\n        target[key] = value;\n    }\n}\nEditorSettingMigration.items = [];\nfunction registerEditorSettingMigration(key, migrate) {\n    EditorSettingMigration.items.push(new EditorSettingMigration(key, migrate));\n}\nfunction registerSimpleEditorSettingMigration(key, values) {\n    registerEditorSettingMigration(key, (value, read, write) => {\n        if (typeof value !== 'undefined') {\n            for (const [oldValue, newValue] of values) {\n                if (value === oldValue) {\n                    write(key, newValue);\n                    return;\n                }\n            }\n        }\n    });\n}\n/**\n * Compatibility with old options\n */\nexport function migrateOptions(options) {\n    EditorSettingMigration.items.forEach(migration => migration.apply(options));\n}\nregisterSimpleEditorSettingMigration('wordWrap', [[true, 'on'], [false, 'off']]);\nregisterSimpleEditorSettingMigration('lineNumbers', [[true, 'on'], [false, 'off']]);\nregisterSimpleEditorSettingMigration('cursorBlinking', [['visible', 'solid']]);\nregisterSimpleEditorSettingMigration('renderWhitespace', [[true, 'boundary'], [false, 'none']]);\nregisterSimpleEditorSettingMigration('renderLineHighlight', [[true, 'line'], [false, 'none']]);\nregisterSimpleEditorSettingMigration('acceptSuggestionOnEnter', [[true, 'on'], [false, 'off']]);\nregisterSimpleEditorSettingMigration('tabCompletion', [[false, 'off'], [true, 'onlySnippets']]);\nregisterSimpleEditorSettingMigration('hover', [[true, { enabled: true }], [false, { enabled: false }]]);\nregisterSimpleEditorSettingMigration('parameterHints', [[true, { enabled: true }], [false, { enabled: false }]]);\nregisterSimpleEditorSettingMigration('autoIndent', [[false, 'advanced'], [true, 'full']]);\nregisterSimpleEditorSettingMigration('matchBrackets', [[true, 'always'], [false, 'never']]);\nregisterSimpleEditorSettingMigration('renderFinalNewline', [[true, 'on'], [false, 'off']]);\nregisterSimpleEditorSettingMigration('cursorSmoothCaretAnimation', [[true, 'on'], [false, 'off']]);\nregisterSimpleEditorSettingMigration('occurrencesHighlight', [[true, 'singleFile'], [false, 'off']]);\nregisterSimpleEditorSettingMigration('wordBasedSuggestions', [[true, 'matchingDocuments'], [false, 'off']]);\nregisterEditorSettingMigration('autoClosingBrackets', (value, read, write) => {\n    if (value === false) {\n        write('autoClosingBrackets', 'never');\n        if (typeof read('autoClosingQuotes') === 'undefined') {\n            write('autoClosingQuotes', 'never');\n        }\n        if (typeof read('autoSurround') === 'undefined') {\n            write('autoSurround', 'never');\n        }\n    }\n});\nregisterEditorSettingMigration('renderIndentGuides', (value, read, write) => {\n    if (typeof value !== 'undefined') {\n        write('renderIndentGuides', undefined);\n        if (typeof read('guides.indentation') === 'undefined') {\n            write('guides.indentation', !!value);\n        }\n    }\n});\nregisterEditorSettingMigration('highlightActiveIndentGuide', (value, read, write) => {\n    if (typeof value !== 'undefined') {\n        write('highlightActiveIndentGuide', undefined);\n        if (typeof read('guides.highlightActiveIndentation') === 'undefined') {\n            write('guides.highlightActiveIndentation', !!value);\n        }\n    }\n});\nconst suggestFilteredTypesMapping = {\n    method: 'showMethods',\n    function: 'showFunctions',\n    constructor: 'showConstructors',\n    deprecated: 'showDeprecated',\n    field: 'showFields',\n    variable: 'showVariables',\n    class: 'showClasses',\n    struct: 'showStructs',\n    interface: 'showInterfaces',\n    module: 'showModules',\n    property: 'showProperties',\n    event: 'showEvents',\n    operator: 'showOperators',\n    unit: 'showUnits',\n    value: 'showValues',\n    constant: 'showConstants',\n    enum: 'showEnums',\n    enumMember: 'showEnumMembers',\n    keyword: 'showKeywords',\n    text: 'showWords',\n    color: 'showColors',\n    file: 'showFiles',\n    reference: 'showReferences',\n    folder: 'showFolders',\n    typeParameter: 'showTypeParameters',\n    snippet: 'showSnippets',\n};\nregisterEditorSettingMigration('suggest.filteredTypes', (value, read, write) => {\n    if (value && typeof value === 'object') {\n        for (const entry of Object.entries(suggestFilteredTypesMapping)) {\n            const v = value[entry[0]];\n            if (v === false) {\n                if (typeof read(`suggest.${entry[1]}`) === 'undefined') {\n                    write(`suggest.${entry[1]}`, false);\n                }\n            }\n        }\n        write('suggest.filteredTypes', undefined);\n    }\n});\nregisterEditorSettingMigration('quickSuggestions', (input, read, write) => {\n    if (typeof input === 'boolean') {\n        const value = input ? 'on' : 'off';\n        const newValue = { comments: value, strings: value, other: value };\n        write('quickSuggestions', newValue);\n    }\n});\n// Sticky Scroll\nregisterEditorSettingMigration('experimental.stickyScroll.enabled', (value, read, write) => {\n    if (typeof value === 'boolean') {\n        write('experimental.stickyScroll.enabled', undefined);\n        if (typeof read('stickyScroll.enabled') === 'undefined') {\n            write('stickyScroll.enabled', value);\n        }\n    }\n});\nregisterEditorSettingMigration('experimental.stickyScroll.maxLineCount', (value, read, write) => {\n    if (typeof value === 'number') {\n        write('experimental.stickyScroll.maxLineCount', undefined);\n        if (typeof read('stickyScroll.maxLineCount') === 'undefined') {\n            write('stickyScroll.maxLineCount', value);\n        }\n    }\n});\n// Code Actions on Save\nregisterEditorSettingMigration('codeActionsOnSave', (value, read, write) => {\n    if (value && typeof value === 'object') {\n        let toBeModified = false;\n        const newValue = {};\n        for (const entry of Object.entries(value)) {\n            if (typeof entry[1] === 'boolean') {\n                toBeModified = true;\n                newValue[entry[0]] = entry[1] ? 'explicit' : 'never';\n            }\n            else {\n                newValue[entry[0]] = entry[1];\n            }\n        }\n        if (toBeModified) {\n            write(`codeActionsOnSave`, newValue);\n        }\n    }\n});\n// Migrate Quick Fix Settings\nregisterEditorSettingMigration('codeActionWidget.includeNearbyQuickfixes', (value, read, write) => {\n    if (typeof value === 'boolean') {\n        write('codeActionWidget.includeNearbyQuickfixes', undefined);\n        if (typeof read('codeActionWidget.includeNearbyQuickFixes') === 'undefined') {\n            write('codeActionWidget.includeNearbyQuickFixes', value);\n        }\n    }\n});\n// Migrate the lightbulb settings\nregisterEditorSettingMigration('lightbulb.enabled', (value, read, write) => {\n    if (typeof value === 'boolean') {\n        write('lightbulb.enabled', value ? undefined : 'off');\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/config/tabFocus.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../../base/common/event.js';\nclass TabFocusImpl {\n    constructor() {\n        this._tabFocus = false;\n        this._onDidChangeTabFocus = new Emitter();\n        this.onDidChangeTabFocus = this._onDidChangeTabFocus.event;\n    }\n    getTabFocusMode() {\n        return this._tabFocus;\n    }\n    setTabFocusMode(tabFocusMode) {\n        this._tabFocus = tabFocusMode;\n        this._onDidChangeTabFocus.fire(this._tabFocus);\n    }\n}\n/**\n * Control what pressing Tab does.\n * If it is false, pressing Tab or Shift-Tab will be handled by the editor.\n * If it is true, pressing Tab or Shift-Tab will move the browser focus.\n * Defaults to false.\n */\nexport const TabFocus = new TabFocusImpl();\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/controller/mouseHandler.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../../base/browser/dom.js';\nimport { StandardWheelEvent } from '../../../base/browser/mouseEvent.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport * as platform from '../../../base/common/platform.js';\nimport { HitTestContext, MouseTarget, MouseTargetFactory } from './mouseTarget.js';\nimport { ClientCoordinates, EditorMouseEvent, EditorMouseEventFactory, GlobalEditorPointerMoveMonitor, createEditorPagePosition, createCoordinatesRelativeToEditor, PageCoordinates } from '../editorDom.js';\nimport { EditorZoom } from '../../common/config/editorZoom.js';\nimport { Position } from '../../common/core/position.js';\nimport { Selection } from '../../common/core/selection.js';\nimport { ViewEventHandler } from '../../common/viewEventHandler.js';\nimport { MouseWheelClassifier } from '../../../base/browser/ui/scrollbar/scrollableElement.js';\nexport class MouseHandler extends ViewEventHandler {\n    constructor(context, viewController, viewHelper) {\n        super();\n        this._mouseLeaveMonitor = null;\n        this._context = context;\n        this.viewController = viewController;\n        this.viewHelper = viewHelper;\n        this.mouseTargetFactory = new MouseTargetFactory(this._context, viewHelper);\n        this._mouseDownOperation = this._register(new MouseDownOperation(this._context, this.viewController, this.viewHelper, this.mouseTargetFactory, (e, testEventTarget) => this._createMouseTarget(e, testEventTarget), (e) => this._getMouseColumn(e)));\n        this.lastMouseLeaveTime = -1;\n        this._height = this._context.configuration.options.get(145 /* EditorOption.layoutInfo */).height;\n        const mouseEvents = new EditorMouseEventFactory(this.viewHelper.viewDomNode);\n        this._register(mouseEvents.onContextMenu(this.viewHelper.viewDomNode, (e) => this._onContextMenu(e, true)));\n        this._register(mouseEvents.onMouseMove(this.viewHelper.viewDomNode, (e) => {\n            this._onMouseMove(e);\n            // See https://github.com/microsoft/vscode/issues/138789\n            // When moving the mouse really quickly, the browser sometimes forgets to\n            // send us a `mouseleave` or `mouseout` event. We therefore install here\n            // a global `mousemove` listener to manually recover if the mouse goes outside\n            // the editor. As soon as the mouse leaves outside of the editor, we\n            // remove this listener\n            if (!this._mouseLeaveMonitor) {\n                this._mouseLeaveMonitor = dom.addDisposableListener(this.viewHelper.viewDomNode.ownerDocument, 'mousemove', (e) => {\n                    if (!this.viewHelper.viewDomNode.contains(e.target)) {\n                        // went outside the editor!\n                        this._onMouseLeave(new EditorMouseEvent(e, false, this.viewHelper.viewDomNode));\n                    }\n                });\n            }\n        }));\n        this._register(mouseEvents.onMouseUp(this.viewHelper.viewDomNode, (e) => this._onMouseUp(e)));\n        this._register(mouseEvents.onMouseLeave(this.viewHelper.viewDomNode, (e) => this._onMouseLeave(e)));\n        // `pointerdown` events can't be used to determine if there's a double click, or triple click\n        // because their `e.detail` is always 0.\n        // We will therefore save the pointer id for the mouse and then reuse it in the `mousedown` event\n        // for `element.setPointerCapture`.\n        let capturePointerId = 0;\n        this._register(mouseEvents.onPointerDown(this.viewHelper.viewDomNode, (e, pointerId) => {\n            capturePointerId = pointerId;\n        }));\n        // The `pointerup` listener registered by `GlobalEditorPointerMoveMonitor` does not get invoked 100% of the times.\n        // I speculate that this is because the `pointerup` listener is only registered during the `mousedown` event, and perhaps\n        // the `pointerup` event is already queued for dispatching, which makes it that the new listener doesn't get fired.\n        // See https://github.com/microsoft/vscode/issues/146486 for repro steps.\n        // To compensate for that, we simply register here a `pointerup` listener and just communicate it.\n        this._register(dom.addDisposableListener(this.viewHelper.viewDomNode, dom.EventType.POINTER_UP, (e) => {\n            this._mouseDownOperation.onPointerUp();\n        }));\n        this._register(mouseEvents.onMouseDown(this.viewHelper.viewDomNode, (e) => this._onMouseDown(e, capturePointerId)));\n        this._setupMouseWheelZoomListener();\n        this._context.addEventHandler(this);\n    }\n    _setupMouseWheelZoomListener() {\n        const classifier = MouseWheelClassifier.INSTANCE;\n        let prevMouseWheelTime = 0;\n        let gestureStartZoomLevel = EditorZoom.getZoomLevel();\n        let gestureHasZoomModifiers = false;\n        let gestureAccumulatedDelta = 0;\n        const onMouseWheel = (browserEvent) => {\n            this.viewController.emitMouseWheel(browserEvent);\n            if (!this._context.configuration.options.get(76 /* EditorOption.mouseWheelZoom */)) {\n                return;\n            }\n            const e = new StandardWheelEvent(browserEvent);\n            classifier.acceptStandardWheelEvent(e);\n            if (classifier.isPhysicalMouseWheel()) {\n                if (hasMouseWheelZoomModifiers(browserEvent)) {\n                    const zoomLevel = EditorZoom.getZoomLevel();\n                    const delta = e.deltaY > 0 ? 1 : -1;\n                    EditorZoom.setZoomLevel(zoomLevel + delta);\n                    e.preventDefault();\n                    e.stopPropagation();\n                }\n            }\n            else {\n                // we consider mousewheel events that occur within 50ms of each other to be part of the same gesture\n                // we don't want to consider mouse wheel events where ctrl/cmd is pressed during the inertia phase\n                // we also want to accumulate deltaY values from the same gesture and use that to set the zoom level\n                if (Date.now() - prevMouseWheelTime > 50) {\n                    // reset if more than 50ms have passed\n                    gestureStartZoomLevel = EditorZoom.getZoomLevel();\n                    gestureHasZoomModifiers = hasMouseWheelZoomModifiers(browserEvent);\n                    gestureAccumulatedDelta = 0;\n                }\n                prevMouseWheelTime = Date.now();\n                gestureAccumulatedDelta += e.deltaY;\n                if (gestureHasZoomModifiers) {\n                    EditorZoom.setZoomLevel(gestureStartZoomLevel + gestureAccumulatedDelta / 5);\n                    e.preventDefault();\n                    e.stopPropagation();\n                }\n            }\n        };\n        this._register(dom.addDisposableListener(this.viewHelper.viewDomNode, dom.EventType.MOUSE_WHEEL, onMouseWheel, { capture: true, passive: false }));\n        function hasMouseWheelZoomModifiers(browserEvent) {\n            return (platform.isMacintosh\n                // on macOS we support cmd + two fingers scroll (`metaKey` set)\n                // and also the two fingers pinch gesture (`ctrKey` set)\n                ? ((browserEvent.metaKey || browserEvent.ctrlKey) && !browserEvent.shiftKey && !browserEvent.altKey)\n                : (browserEvent.ctrlKey && !browserEvent.metaKey && !browserEvent.shiftKey && !browserEvent.altKey));\n        }\n    }\n    dispose() {\n        this._context.removeEventHandler(this);\n        if (this._mouseLeaveMonitor) {\n            this._mouseLeaveMonitor.dispose();\n            this._mouseLeaveMonitor = null;\n        }\n        super.dispose();\n    }\n    // --- begin event handlers\n    onConfigurationChanged(e) {\n        if (e.hasChanged(145 /* EditorOption.layoutInfo */)) {\n            // layout change\n            const height = this._context.configuration.options.get(145 /* EditorOption.layoutInfo */).height;\n            if (this._height !== height) {\n                this._height = height;\n                this._mouseDownOperation.onHeightChanged();\n            }\n        }\n        return false;\n    }\n    onCursorStateChanged(e) {\n        this._mouseDownOperation.onCursorStateChanged(e);\n        return false;\n    }\n    onFocusChanged(e) {\n        return false;\n    }\n    // --- end event handlers\n    getTargetAtClientPoint(clientX, clientY) {\n        const clientPos = new ClientCoordinates(clientX, clientY);\n        const pos = clientPos.toPageCoordinates(dom.getWindow(this.viewHelper.viewDomNode));\n        const editorPos = createEditorPagePosition(this.viewHelper.viewDomNode);\n        if (pos.y < editorPos.y || pos.y > editorPos.y + editorPos.height || pos.x < editorPos.x || pos.x > editorPos.x + editorPos.width) {\n            return null;\n        }\n        const relativePos = createCoordinatesRelativeToEditor(this.viewHelper.viewDomNode, editorPos, pos);\n        return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(), editorPos, pos, relativePos, null);\n    }\n    _createMouseTarget(e, testEventTarget) {\n        let target = e.target;\n        if (!this.viewHelper.viewDomNode.contains(target)) {\n            const shadowRoot = dom.getShadowRoot(this.viewHelper.viewDomNode);\n            if (shadowRoot) {\n                target = shadowRoot.elementsFromPoint(e.posx, e.posy).find((el) => this.viewHelper.viewDomNode.contains(el));\n            }\n        }\n        return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(), e.editorPos, e.pos, e.relativePos, testEventTarget ? target : null);\n    }\n    _getMouseColumn(e) {\n        return this.mouseTargetFactory.getMouseColumn(e.relativePos);\n    }\n    _onContextMenu(e, testEventTarget) {\n        this.viewController.emitContextMenu({\n            event: e,\n            target: this._createMouseTarget(e, testEventTarget)\n        });\n    }\n    _onMouseMove(e) {\n        const targetIsWidget = this.mouseTargetFactory.mouseTargetIsWidget(e);\n        if (!targetIsWidget) {\n            e.preventDefault();\n        }\n        if (this._mouseDownOperation.isActive()) {\n            // In selection/drag operation\n            return;\n        }\n        const actualMouseMoveTime = e.timestamp;\n        if (actualMouseMoveTime < this.lastMouseLeaveTime) {\n            // Due to throttling, this event occurred before the mouse left the editor, therefore ignore it.\n            return;\n        }\n        this.viewController.emitMouseMove({\n            event: e,\n            target: this._createMouseTarget(e, true)\n        });\n    }\n    _onMouseLeave(e) {\n        if (this._mouseLeaveMonitor) {\n            this._mouseLeaveMonitor.dispose();\n            this._mouseLeaveMonitor = null;\n        }\n        this.lastMouseLeaveTime = (new Date()).getTime();\n        this.viewController.emitMouseLeave({\n            event: e,\n            target: null\n        });\n    }\n    _onMouseUp(e) {\n        this.viewController.emitMouseUp({\n            event: e,\n            target: this._createMouseTarget(e, true)\n        });\n    }\n    _onMouseDown(e, pointerId) {\n        const t = this._createMouseTarget(e, true);\n        const targetIsContent = (t.type === 6 /* MouseTargetType.CONTENT_TEXT */ || t.type === 7 /* MouseTargetType.CONTENT_EMPTY */);\n        const targetIsGutter = (t.type === 2 /* MouseTargetType.GUTTER_GLYPH_MARGIN */ || t.type === 3 /* MouseTargetType.GUTTER_LINE_NUMBERS */ || t.type === 4 /* MouseTargetType.GUTTER_LINE_DECORATIONS */);\n        const targetIsLineNumbers = (t.type === 3 /* MouseTargetType.GUTTER_LINE_NUMBERS */);\n        const selectOnLineNumbers = this._context.configuration.options.get(109 /* EditorOption.selectOnLineNumbers */);\n        const targetIsViewZone = (t.type === 8 /* MouseTargetType.CONTENT_VIEW_ZONE */ || t.type === 5 /* MouseTargetType.GUTTER_VIEW_ZONE */);\n        const targetIsWidget = (t.type === 9 /* MouseTargetType.CONTENT_WIDGET */);\n        let shouldHandle = e.leftButton || e.middleButton;\n        if (platform.isMacintosh && e.leftButton && e.ctrlKey) {\n            shouldHandle = false;\n        }\n        const focus = () => {\n            e.preventDefault();\n            this.viewHelper.focusTextArea();\n        };\n        if (shouldHandle && (targetIsContent || (targetIsLineNumbers && selectOnLineNumbers))) {\n            focus();\n            this._mouseDownOperation.start(t.type, e, pointerId);\n        }\n        else if (targetIsGutter) {\n            // Do not steal focus\n            e.preventDefault();\n        }\n        else if (targetIsViewZone) {\n            const viewZoneData = t.detail;\n            if (shouldHandle && this.viewHelper.shouldSuppressMouseDownOnViewZone(viewZoneData.viewZoneId)) {\n                focus();\n                this._mouseDownOperation.start(t.type, e, pointerId);\n                e.preventDefault();\n            }\n        }\n        else if (targetIsWidget && this.viewHelper.shouldSuppressMouseDownOnWidget(t.detail)) {\n            focus();\n            e.preventDefault();\n        }\n        this.viewController.emitMouseDown({\n            event: e,\n            target: t\n        });\n    }\n}\nclass MouseDownOperation extends Disposable {\n    constructor(_context, _viewController, _viewHelper, _mouseTargetFactory, createMouseTarget, getMouseColumn) {\n        super();\n        this._context = _context;\n        this._viewController = _viewController;\n        this._viewHelper = _viewHelper;\n        this._mouseTargetFactory = _mouseTargetFactory;\n        this._createMouseTarget = createMouseTarget;\n        this._getMouseColumn = getMouseColumn;\n        this._mouseMoveMonitor = this._register(new GlobalEditorPointerMoveMonitor(this._viewHelper.viewDomNode));\n        this._topBottomDragScrolling = this._register(new TopBottomDragScrolling(this._context, this._viewHelper, this._mouseTargetFactory, (position, inSelectionMode, revealType) => this._dispatchMouse(position, inSelectionMode, revealType)));\n        this._mouseState = new MouseDownState();\n        this._currentSelection = new Selection(1, 1, 1, 1);\n        this._isActive = false;\n        this._lastMouseEvent = null;\n    }\n    dispose() {\n        super.dispose();\n    }\n    isActive() {\n        return this._isActive;\n    }\n    _onMouseDownThenMove(e) {\n        this._lastMouseEvent = e;\n        this._mouseState.setModifiers(e);\n        const position = this._findMousePosition(e, false);\n        if (!position) {\n            // Ignoring because position is unknown\n            return;\n        }\n        if (this._mouseState.isDragAndDrop) {\n            this._viewController.emitMouseDrag({\n                event: e,\n                target: position\n            });\n        }\n        else {\n            if (position.type === 13 /* MouseTargetType.OUTSIDE_EDITOR */ && (position.outsidePosition === 'above' || position.outsidePosition === 'below')) {\n                this._topBottomDragScrolling.start(position, e);\n            }\n            else {\n                this._topBottomDragScrolling.stop();\n                this._dispatchMouse(position, true, 1 /* NavigationCommandRevealType.Minimal */);\n            }\n        }\n    }\n    start(targetType, e, pointerId) {\n        this._lastMouseEvent = e;\n        this._mouseState.setStartedOnLineNumbers(targetType === 3 /* MouseTargetType.GUTTER_LINE_NUMBERS */);\n        this._mouseState.setStartButtons(e);\n        this._mouseState.setModifiers(e);\n        const position = this._findMousePosition(e, true);\n        if (!position || !position.position) {\n            // Ignoring because position is unknown\n            return;\n        }\n        this._mouseState.trySetCount(e.detail, position.position);\n        // Overwrite the detail of the MouseEvent, as it will be sent out in an event and contributions might rely on it.\n        e.detail = this._mouseState.count;\n        const options = this._context.configuration.options;\n        if (!options.get(91 /* EditorOption.readOnly */)\n            && options.get(35 /* EditorOption.dragAndDrop */)\n            && !options.get(22 /* EditorOption.columnSelection */)\n            && !this._mouseState.altKey // we don't support multiple mouse\n            && e.detail < 2 // only single click on a selection can work\n            && !this._isActive // the mouse is not down yet\n            && !this._currentSelection.isEmpty() // we don't drag single cursor\n            && (position.type === 6 /* MouseTargetType.CONTENT_TEXT */) // single click on text\n            && position.position && this._currentSelection.containsPosition(position.position) // single click on a selection\n        ) {\n            this._mouseState.isDragAndDrop = true;\n            this._isActive = true;\n            this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode, pointerId, e.buttons, (e) => this._onMouseDownThenMove(e), (browserEvent) => {\n                const position = this._findMousePosition(this._lastMouseEvent, false);\n                if (dom.isKeyboardEvent(browserEvent)) {\n                    // cancel\n                    this._viewController.emitMouseDropCanceled();\n                }\n                else {\n                    this._viewController.emitMouseDrop({\n                        event: this._lastMouseEvent,\n                        target: (position ? this._createMouseTarget(this._lastMouseEvent, true) : null) // Ignoring because position is unknown, e.g., Content View Zone\n                    });\n                }\n                this._stop();\n            });\n            return;\n        }\n        this._mouseState.isDragAndDrop = false;\n        this._dispatchMouse(position, e.shiftKey, 1 /* NavigationCommandRevealType.Minimal */);\n        if (!this._isActive) {\n            this._isActive = true;\n            this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode, pointerId, e.buttons, (e) => this._onMouseDownThenMove(e), () => this._stop());\n        }\n    }\n    _stop() {\n        this._isActive = false;\n        this._topBottomDragScrolling.stop();\n    }\n    onHeightChanged() {\n        this._mouseMoveMonitor.stopMonitoring();\n    }\n    onPointerUp() {\n        this._mouseMoveMonitor.stopMonitoring();\n    }\n    onCursorStateChanged(e) {\n        this._currentSelection = e.selections[0];\n    }\n    _getPositionOutsideEditor(e) {\n        const editorContent = e.editorPos;\n        const model = this._context.viewModel;\n        const viewLayout = this._context.viewLayout;\n        const mouseColumn = this._getMouseColumn(e);\n        if (e.posy < editorContent.y) {\n            const outsideDistance = editorContent.y - e.posy;\n            const verticalOffset = Math.max(viewLayout.getCurrentScrollTop() - outsideDistance, 0);\n            const viewZoneData = HitTestContext.getZoneAtCoord(this._context, verticalOffset);\n            if (viewZoneData) {\n                const newPosition = this._helpPositionJumpOverViewZone(viewZoneData);\n                if (newPosition) {\n                    return MouseTarget.createOutsideEditor(mouseColumn, newPosition, 'above', outsideDistance);\n                }\n            }\n            const aboveLineNumber = viewLayout.getLineNumberAtVerticalOffset(verticalOffset);\n            return MouseTarget.createOutsideEditor(mouseColumn, new Position(aboveLineNumber, 1), 'above', outsideDistance);\n        }\n        if (e.posy > editorContent.y + editorContent.height) {\n            const outsideDistance = e.posy - editorContent.y - editorContent.height;\n            const verticalOffset = viewLayout.getCurrentScrollTop() + e.relativePos.y;\n            const viewZoneData = HitTestContext.getZoneAtCoord(this._context, verticalOffset);\n            if (viewZoneData) {\n                const newPosition = this._helpPositionJumpOverViewZone(viewZoneData);\n                if (newPosition) {\n                    return MouseTarget.createOutsideEditor(mouseColumn, newPosition, 'below', outsideDistance);\n                }\n            }\n            const belowLineNumber = viewLayout.getLineNumberAtVerticalOffset(verticalOffset);\n            return MouseTarget.createOutsideEditor(mouseColumn, new Position(belowLineNumber, model.getLineMaxColumn(belowLineNumber)), 'below', outsideDistance);\n        }\n        const possibleLineNumber = viewLayout.getLineNumberAtVerticalOffset(viewLayout.getCurrentScrollTop() + e.relativePos.y);\n        if (e.posx < editorContent.x) {\n            const outsideDistance = editorContent.x - e.posx;\n            return MouseTarget.createOutsideEditor(mouseColumn, new Position(possibleLineNumber, 1), 'left', outsideDistance);\n        }\n        if (e.posx > editorContent.x + editorContent.width) {\n            const outsideDistance = e.posx - editorContent.x - editorContent.width;\n            return MouseTarget.createOutsideEditor(mouseColumn, new Position(possibleLineNumber, model.getLineMaxColumn(possibleLineNumber)), 'right', outsideDistance);\n        }\n        return null;\n    }\n    _findMousePosition(e, testEventTarget) {\n        const positionOutsideEditor = this._getPositionOutsideEditor(e);\n        if (positionOutsideEditor) {\n            return positionOutsideEditor;\n        }\n        const t = this._createMouseTarget(e, testEventTarget);\n        const hintedPosition = t.position;\n        if (!hintedPosition) {\n            return null;\n        }\n        if (t.type === 8 /* MouseTargetType.CONTENT_VIEW_ZONE */ || t.type === 5 /* MouseTargetType.GUTTER_VIEW_ZONE */) {\n            const newPosition = this._helpPositionJumpOverViewZone(t.detail);\n            if (newPosition) {\n                return MouseTarget.createViewZone(t.type, t.element, t.mouseColumn, newPosition, t.detail);\n            }\n        }\n        return t;\n    }\n    _helpPositionJumpOverViewZone(viewZoneData) {\n        // Force position on view zones to go above or below depending on where selection started from\n        const selectionStart = new Position(this._currentSelection.selectionStartLineNumber, this._currentSelection.selectionStartColumn);\n        const positionBefore = viewZoneData.positionBefore;\n        const positionAfter = viewZoneData.positionAfter;\n        if (positionBefore && positionAfter) {\n            if (positionBefore.isBefore(selectionStart)) {\n                return positionBefore;\n            }\n            else {\n                return positionAfter;\n            }\n        }\n        return null;\n    }\n    _dispatchMouse(position, inSelectionMode, revealType) {\n        if (!position.position) {\n            return;\n        }\n        this._viewController.dispatchMouse({\n            position: position.position,\n            mouseColumn: position.mouseColumn,\n            startedOnLineNumbers: this._mouseState.startedOnLineNumbers,\n            revealType,\n            inSelectionMode: inSelectionMode,\n            mouseDownCount: this._mouseState.count,\n            altKey: this._mouseState.altKey,\n            ctrlKey: this._mouseState.ctrlKey,\n            metaKey: this._mouseState.metaKey,\n            shiftKey: this._mouseState.shiftKey,\n            leftButton: this._mouseState.leftButton,\n            middleButton: this._mouseState.middleButton,\n            onInjectedText: position.type === 6 /* MouseTargetType.CONTENT_TEXT */ && position.detail.injectedText !== null\n        });\n    }\n}\nclass TopBottomDragScrolling extends Disposable {\n    constructor(_context, _viewHelper, _mouseTargetFactory, _dispatchMouse) {\n        super();\n        this._context = _context;\n        this._viewHelper = _viewHelper;\n        this._mouseTargetFactory = _mouseTargetFactory;\n        this._dispatchMouse = _dispatchMouse;\n        this._operation = null;\n    }\n    dispose() {\n        super.dispose();\n        this.stop();\n    }\n    start(position, mouseEvent) {\n        if (this._operation) {\n            this._operation.setPosition(position, mouseEvent);\n        }\n        else {\n            this._operation = new TopBottomDragScrollingOperation(this._context, this._viewHelper, this._mouseTargetFactory, this._dispatchMouse, position, mouseEvent);\n        }\n    }\n    stop() {\n        if (this._operation) {\n            this._operation.dispose();\n            this._operation = null;\n        }\n    }\n}\nclass TopBottomDragScrollingOperation extends Disposable {\n    constructor(_context, _viewHelper, _mouseTargetFactory, _dispatchMouse, position, mouseEvent) {\n        super();\n        this._context = _context;\n        this._viewHelper = _viewHelper;\n        this._mouseTargetFactory = _mouseTargetFactory;\n        this._dispatchMouse = _dispatchMouse;\n        this._position = position;\n        this._mouseEvent = mouseEvent;\n        this._lastTime = Date.now();\n        this._animationFrameDisposable = dom.scheduleAtNextAnimationFrame(dom.getWindow(mouseEvent.browserEvent), () => this._execute());\n    }\n    dispose() {\n        this._animationFrameDisposable.dispose();\n        super.dispose();\n    }\n    setPosition(position, mouseEvent) {\n        this._position = position;\n        this._mouseEvent = mouseEvent;\n    }\n    /**\n     * update internal state and return elapsed ms since last time\n     */\n    _tick() {\n        const now = Date.now();\n        const elapsed = now - this._lastTime;\n        this._lastTime = now;\n        return elapsed;\n    }\n    /**\n     * get the number of lines per second to auto-scroll\n     */\n    _getScrollSpeed() {\n        const lineHeight = this._context.configuration.options.get(67 /* EditorOption.lineHeight */);\n        const viewportInLines = this._context.configuration.options.get(145 /* EditorOption.layoutInfo */).height / lineHeight;\n        const outsideDistanceInLines = this._position.outsideDistance / lineHeight;\n        if (outsideDistanceInLines <= 1.5) {\n            return Math.max(30, viewportInLines * (1 + outsideDistanceInLines));\n        }\n        if (outsideDistanceInLines <= 3) {\n            return Math.max(60, viewportInLines * (2 + outsideDistanceInLines));\n        }\n        return Math.max(200, viewportInLines * (7 + outsideDistanceInLines));\n    }\n    _execute() {\n        const lineHeight = this._context.configuration.options.get(67 /* EditorOption.lineHeight */);\n        const scrollSpeedInLines = this._getScrollSpeed();\n        const elapsed = this._tick();\n        const scrollInPixels = scrollSpeedInLines * (elapsed / 1000) * lineHeight;\n        const scrollValue = (this._position.outsidePosition === 'above' ? -scrollInPixels : scrollInPixels);\n        this._context.viewModel.viewLayout.deltaScrollNow(0, scrollValue);\n        this._viewHelper.renderNow();\n        const viewportData = this._context.viewLayout.getLinesViewportData();\n        const edgeLineNumber = (this._position.outsidePosition === 'above' ? viewportData.startLineNumber : viewportData.endLineNumber);\n        // First, try to find a position that matches the horizontal position of the mouse\n        let mouseTarget;\n        {\n            const editorPos = createEditorPagePosition(this._viewHelper.viewDomNode);\n            const horizontalScrollbarHeight = this._context.configuration.options.get(145 /* EditorOption.layoutInfo */).horizontalScrollbarHeight;\n            const pos = new PageCoordinates(this._mouseEvent.pos.x, editorPos.y + editorPos.height - horizontalScrollbarHeight - 0.1);\n            const relativePos = createCoordinatesRelativeToEditor(this._viewHelper.viewDomNode, editorPos, pos);\n            mouseTarget = this._mouseTargetFactory.createMouseTarget(this._viewHelper.getLastRenderData(), editorPos, pos, relativePos, null);\n        }\n        if (!mouseTarget.position || mouseTarget.position.lineNumber !== edgeLineNumber) {\n            if (this._position.outsidePosition === 'above') {\n                mouseTarget = MouseTarget.createOutsideEditor(this._position.mouseColumn, new Position(edgeLineNumber, 1), 'above', this._position.outsideDistance);\n            }\n            else {\n                mouseTarget = MouseTarget.createOutsideEditor(this._position.mouseColumn, new Position(edgeLineNumber, this._context.viewModel.getLineMaxColumn(edgeLineNumber)), 'below', this._position.outsideDistance);\n            }\n        }\n        this._dispatchMouse(mouseTarget, true, 2 /* NavigationCommandRevealType.None */);\n        this._animationFrameDisposable = dom.scheduleAtNextAnimationFrame(dom.getWindow(mouseTarget.element), () => this._execute());\n    }\n}\nclass MouseDownState {\n    get altKey() { return this._altKey; }\n    get ctrlKey() { return this._ctrlKey; }\n    get metaKey() { return this._metaKey; }\n    get shiftKey() { return this._shiftKey; }\n    get leftButton() { return this._leftButton; }\n    get middleButton() { return this._middleButton; }\n    get startedOnLineNumbers() { return this._startedOnLineNumbers; }\n    constructor() {\n        this._altKey = false;\n        this._ctrlKey = false;\n        this._metaKey = false;\n        this._shiftKey = false;\n        this._leftButton = false;\n        this._middleButton = false;\n        this._startedOnLineNumbers = false;\n        this._lastMouseDownPosition = null;\n        this._lastMouseDownPositionEqualCount = 0;\n        this._lastMouseDownCount = 0;\n        this._lastSetMouseDownCountTime = 0;\n        this.isDragAndDrop = false;\n    }\n    get count() {\n        return this._lastMouseDownCount;\n    }\n    setModifiers(source) {\n        this._altKey = source.altKey;\n        this._ctrlKey = source.ctrlKey;\n        this._metaKey = source.metaKey;\n        this._shiftKey = source.shiftKey;\n    }\n    setStartButtons(source) {\n        this._leftButton = source.leftButton;\n        this._middleButton = source.middleButton;\n    }\n    setStartedOnLineNumbers(startedOnLineNumbers) {\n        this._startedOnLineNumbers = startedOnLineNumbers;\n    }\n    trySetCount(setMouseDownCount, newMouseDownPosition) {\n        // a. Invalidate multiple clicking if too much time has passed (will be hit by IE because the detail field of mouse events contains garbage in IE10)\n        const currentTime = (new Date()).getTime();\n        if (currentTime - this._lastSetMouseDownCountTime > MouseDownState.CLEAR_MOUSE_DOWN_COUNT_TIME) {\n            setMouseDownCount = 1;\n        }\n        this._lastSetMouseDownCountTime = currentTime;\n        // b. Ensure that we don't jump from single click to triple click in one go (will be hit by IE because the detail field of mouse events contains garbage in IE10)\n        if (setMouseDownCount > this._lastMouseDownCount + 1) {\n            setMouseDownCount = this._lastMouseDownCount + 1;\n        }\n        // c. Invalidate multiple clicking if the logical position is different\n        if (this._lastMouseDownPosition && this._lastMouseDownPosition.equals(newMouseDownPosition)) {\n            this._lastMouseDownPositionEqualCount++;\n        }\n        else {\n            this._lastMouseDownPositionEqualCount = 1;\n        }\n        this._lastMouseDownPosition = newMouseDownPosition;\n        // Finally set the lastMouseDownCount\n        this._lastMouseDownCount = Math.min(setMouseDownCount, this._lastMouseDownPositionEqualCount);\n    }\n}\nMouseDownState.CLEAR_MOUSE_DOWN_COUNT_TIME = 400; // ms\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/controller/mouseTarget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { PageCoordinates } from '../editorDom.js';\nimport { PartFingerprints } from '../view/viewPart.js';\nimport { ViewLine } from '../viewParts/lines/viewLine.js';\nimport { Position } from '../../common/core/position.js';\nimport { Range as EditorRange } from '../../common/core/range.js';\nimport { CursorColumns } from '../../common/core/cursorColumns.js';\nimport * as dom from '../../../base/browser/dom.js';\nimport { AtomicTabMoveOperations } from '../../common/cursor/cursorAtomicMoveOperations.js';\nimport { Lazy } from '../../../base/common/lazy.js';\nclass UnknownHitTestResult {\n    constructor(hitTarget = null) {\n        this.hitTarget = hitTarget;\n        this.type = 0 /* HitTestResultType.Unknown */;\n    }\n}\nclass ContentHitTestResult {\n    get hitTarget() { return this.spanNode; }\n    constructor(position, spanNode, injectedText) {\n        this.position = position;\n        this.spanNode = spanNode;\n        this.injectedText = injectedText;\n        this.type = 1 /* HitTestResultType.Content */;\n    }\n}\nvar HitTestResult;\n(function (HitTestResult) {\n    function createFromDOMInfo(ctx, spanNode, offset) {\n        const position = ctx.getPositionFromDOMInfo(spanNode, offset);\n        if (position) {\n            return new ContentHitTestResult(position, spanNode, null);\n        }\n        return new UnknownHitTestResult(spanNode);\n    }\n    HitTestResult.createFromDOMInfo = createFromDOMInfo;\n})(HitTestResult || (HitTestResult = {}));\nexport class PointerHandlerLastRenderData {\n    constructor(lastViewCursorsRenderData, lastTextareaPosition) {\n        this.lastViewCursorsRenderData = lastViewCursorsRenderData;\n        this.lastTextareaPosition = lastTextareaPosition;\n    }\n}\nexport class MouseTarget {\n    static _deduceRage(position, range = null) {\n        if (!range && position) {\n            return new EditorRange(position.lineNumber, position.column, position.lineNumber, position.column);\n        }\n        return range !== null && range !== void 0 ? range : null;\n    }\n    static createUnknown(element, mouseColumn, position) {\n        return { type: 0 /* MouseTargetType.UNKNOWN */, element, mouseColumn, position, range: this._deduceRage(position) };\n    }\n    static createTextarea(element, mouseColumn) {\n        return { type: 1 /* MouseTargetType.TEXTAREA */, element, mouseColumn, position: null, range: null };\n    }\n    static createMargin(type, element, mouseColumn, position, range, detail) {\n        return { type, element, mouseColumn, position, range, detail };\n    }\n    static createViewZone(type, element, mouseColumn, position, detail) {\n        return { type, element, mouseColumn, position, range: this._deduceRage(position), detail };\n    }\n    static createContentText(element, mouseColumn, position, range, detail) {\n        return { type: 6 /* MouseTargetType.CONTENT_TEXT */, element, mouseColumn, position, range: this._deduceRage(position, range), detail };\n    }\n    static createContentEmpty(element, mouseColumn, position, detail) {\n        return { type: 7 /* MouseTargetType.CONTENT_EMPTY */, element, mouseColumn, position, range: this._deduceRage(position), detail };\n    }\n    static createContentWidget(element, mouseColumn, detail) {\n        return { type: 9 /* MouseTargetType.CONTENT_WIDGET */, element, mouseColumn, position: null, range: null, detail };\n    }\n    static createScrollbar(element, mouseColumn, position) {\n        return { type: 11 /* MouseTargetType.SCROLLBAR */, element, mouseColumn, position, range: this._deduceRage(position) };\n    }\n    static createOverlayWidget(element, mouseColumn, detail) {\n        return { type: 12 /* MouseTargetType.OVERLAY_WIDGET */, element, mouseColumn, position: null, range: null, detail };\n    }\n    static createOutsideEditor(mouseColumn, position, outsidePosition, outsideDistance) {\n        return { type: 13 /* MouseTargetType.OUTSIDE_EDITOR */, element: null, mouseColumn, position, range: this._deduceRage(position), outsidePosition, outsideDistance };\n    }\n    static _typeToString(type) {\n        if (type === 1 /* MouseTargetType.TEXTAREA */) {\n            return 'TEXTAREA';\n        }\n        if (type === 2 /* MouseTargetType.GUTTER_GLYPH_MARGIN */) {\n            return 'GUTTER_GLYPH_MARGIN';\n        }\n        if (type === 3 /* MouseTargetType.GUTTER_LINE_NUMBERS */) {\n            return 'GUTTER_LINE_NUMBERS';\n        }\n        if (type === 4 /* MouseTargetType.GUTTER_LINE_DECORATIONS */) {\n            return 'GUTTER_LINE_DECORATIONS';\n        }\n        if (type === 5 /* MouseTargetType.GUTTER_VIEW_ZONE */) {\n            return 'GUTTER_VIEW_ZONE';\n        }\n        if (type === 6 /* MouseTargetType.CONTENT_TEXT */) {\n            return 'CONTENT_TEXT';\n        }\n        if (type === 7 /* MouseTargetType.CONTENT_EMPTY */) {\n            return 'CONTENT_EMPTY';\n        }\n        if (type === 8 /* MouseTargetType.CONTENT_VIEW_ZONE */) {\n            return 'CONTENT_VIEW_ZONE';\n        }\n        if (type === 9 /* MouseTargetType.CONTENT_WIDGET */) {\n            return 'CONTENT_WIDGET';\n        }\n        if (type === 10 /* MouseTargetType.OVERVIEW_RULER */) {\n            return 'OVERVIEW_RULER';\n        }\n        if (type === 11 /* MouseTargetType.SCROLLBAR */) {\n            return 'SCROLLBAR';\n        }\n        if (type === 12 /* MouseTargetType.OVERLAY_WIDGET */) {\n            return 'OVERLAY_WIDGET';\n        }\n        return 'UNKNOWN';\n    }\n    static toString(target) {\n        return this._typeToString(target.type) + ': ' + target.position + ' - ' + target.range + ' - ' + JSON.stringify(target.detail);\n    }\n}\nclass ElementPath {\n    static isTextArea(path) {\n        return (path.length === 2\n            && path[0] === 3 /* PartFingerprint.OverflowGuard */\n            && path[1] === 7 /* PartFingerprint.TextArea */);\n    }\n    static isChildOfViewLines(path) {\n        return (path.length >= 4\n            && path[0] === 3 /* PartFingerprint.OverflowGuard */\n            && path[3] === 8 /* PartFingerprint.ViewLines */);\n    }\n    static isStrictChildOfViewLines(path) {\n        return (path.length > 4\n            && path[0] === 3 /* PartFingerprint.OverflowGuard */\n            && path[3] === 8 /* PartFingerprint.ViewLines */);\n    }\n    static isChildOfScrollableElement(path) {\n        return (path.length >= 2\n            && path[0] === 3 /* PartFingerprint.OverflowGuard */\n            && path[1] === 6 /* PartFingerprint.ScrollableElement */);\n    }\n    static isChildOfMinimap(path) {\n        return (path.length >= 2\n            && path[0] === 3 /* PartFingerprint.OverflowGuard */\n            && path[1] === 9 /* PartFingerprint.Minimap */);\n    }\n    static isChildOfContentWidgets(path) {\n        return (path.length >= 4\n            && path[0] === 3 /* PartFingerprint.OverflowGuard */\n            && path[3] === 1 /* PartFingerprint.ContentWidgets */);\n    }\n    static isChildOfOverflowGuard(path) {\n        return (path.length >= 1\n            && path[0] === 3 /* PartFingerprint.OverflowGuard */);\n    }\n    static isChildOfOverflowingContentWidgets(path) {\n        return (path.length >= 1\n            && path[0] === 2 /* PartFingerprint.OverflowingContentWidgets */);\n    }\n    static isChildOfOverlayWidgets(path) {\n        return (path.length >= 2\n            && path[0] === 3 /* PartFingerprint.OverflowGuard */\n            && path[1] === 4 /* PartFingerprint.OverlayWidgets */);\n    }\n    static isChildOfOverflowingOverlayWidgets(path) {\n        return (path.length >= 1\n            && path[0] === 5 /* PartFingerprint.OverflowingOverlayWidgets */);\n    }\n}\nexport class HitTestContext {\n    constructor(context, viewHelper, lastRenderData) {\n        this.viewModel = context.viewModel;\n        const options = context.configuration.options;\n        this.layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        this.viewDomNode = viewHelper.viewDomNode;\n        this.lineHeight = options.get(67 /* EditorOption.lineHeight */);\n        this.stickyTabStops = options.get(116 /* EditorOption.stickyTabStops */);\n        this.typicalHalfwidthCharacterWidth = options.get(50 /* EditorOption.fontInfo */).typicalHalfwidthCharacterWidth;\n        this.lastRenderData = lastRenderData;\n        this._context = context;\n        this._viewHelper = viewHelper;\n    }\n    getZoneAtCoord(mouseVerticalOffset) {\n        return HitTestContext.getZoneAtCoord(this._context, mouseVerticalOffset);\n    }\n    static getZoneAtCoord(context, mouseVerticalOffset) {\n        // The target is either a view zone or the empty space after the last view-line\n        const viewZoneWhitespace = context.viewLayout.getWhitespaceAtVerticalOffset(mouseVerticalOffset);\n        if (viewZoneWhitespace) {\n            const viewZoneMiddle = viewZoneWhitespace.verticalOffset + viewZoneWhitespace.height / 2;\n            const lineCount = context.viewModel.getLineCount();\n            let positionBefore = null;\n            let position;\n            let positionAfter = null;\n            if (viewZoneWhitespace.afterLineNumber !== lineCount) {\n                // There are more lines after this view zone\n                positionAfter = new Position(viewZoneWhitespace.afterLineNumber + 1, 1);\n            }\n            if (viewZoneWhitespace.afterLineNumber > 0) {\n                // There are more lines above this view zone\n                positionBefore = new Position(viewZoneWhitespace.afterLineNumber, context.viewModel.getLineMaxColumn(viewZoneWhitespace.afterLineNumber));\n            }\n            if (positionAfter === null) {\n                position = positionBefore;\n            }\n            else if (positionBefore === null) {\n                position = positionAfter;\n            }\n            else if (mouseVerticalOffset < viewZoneMiddle) {\n                position = positionBefore;\n            }\n            else {\n                position = positionAfter;\n            }\n            return {\n                viewZoneId: viewZoneWhitespace.id,\n                afterLineNumber: viewZoneWhitespace.afterLineNumber,\n                positionBefore: positionBefore,\n                positionAfter: positionAfter,\n                position: position\n            };\n        }\n        return null;\n    }\n    getFullLineRangeAtCoord(mouseVerticalOffset) {\n        if (this._context.viewLayout.isAfterLines(mouseVerticalOffset)) {\n            // Below the last line\n            const lineNumber = this._context.viewModel.getLineCount();\n            const maxLineColumn = this._context.viewModel.getLineMaxColumn(lineNumber);\n            return {\n                range: new EditorRange(lineNumber, maxLineColumn, lineNumber, maxLineColumn),\n                isAfterLines: true\n            };\n        }\n        const lineNumber = this._context.viewLayout.getLineNumberAtVerticalOffset(mouseVerticalOffset);\n        const maxLineColumn = this._context.viewModel.getLineMaxColumn(lineNumber);\n        return {\n            range: new EditorRange(lineNumber, 1, lineNumber, maxLineColumn),\n            isAfterLines: false\n        };\n    }\n    getLineNumberAtVerticalOffset(mouseVerticalOffset) {\n        return this._context.viewLayout.getLineNumberAtVerticalOffset(mouseVerticalOffset);\n    }\n    isAfterLines(mouseVerticalOffset) {\n        return this._context.viewLayout.isAfterLines(mouseVerticalOffset);\n    }\n    isInTopPadding(mouseVerticalOffset) {\n        return this._context.viewLayout.isInTopPadding(mouseVerticalOffset);\n    }\n    isInBottomPadding(mouseVerticalOffset) {\n        return this._context.viewLayout.isInBottomPadding(mouseVerticalOffset);\n    }\n    getVerticalOffsetForLineNumber(lineNumber) {\n        return this._context.viewLayout.getVerticalOffsetForLineNumber(lineNumber);\n    }\n    findAttribute(element, attr) {\n        return HitTestContext._findAttribute(element, attr, this._viewHelper.viewDomNode);\n    }\n    static _findAttribute(element, attr, stopAt) {\n        while (element && element !== element.ownerDocument.body) {\n            if (element.hasAttribute && element.hasAttribute(attr)) {\n                return element.getAttribute(attr);\n            }\n            if (element === stopAt) {\n                return null;\n            }\n            element = element.parentNode;\n        }\n        return null;\n    }\n    getLineWidth(lineNumber) {\n        return this._viewHelper.getLineWidth(lineNumber);\n    }\n    visibleRangeForPosition(lineNumber, column) {\n        return this._viewHelper.visibleRangeForPosition(lineNumber, column);\n    }\n    getPositionFromDOMInfo(spanNode, offset) {\n        return this._viewHelper.getPositionFromDOMInfo(spanNode, offset);\n    }\n    getCurrentScrollTop() {\n        return this._context.viewLayout.getCurrentScrollTop();\n    }\n    getCurrentScrollLeft() {\n        return this._context.viewLayout.getCurrentScrollLeft();\n    }\n}\nclass BareHitTestRequest {\n    constructor(ctx, editorPos, pos, relativePos) {\n        this.editorPos = editorPos;\n        this.pos = pos;\n        this.relativePos = relativePos;\n        this.mouseVerticalOffset = Math.max(0, ctx.getCurrentScrollTop() + this.relativePos.y);\n        this.mouseContentHorizontalOffset = ctx.getCurrentScrollLeft() + this.relativePos.x - ctx.layoutInfo.contentLeft;\n        this.isInMarginArea = (this.relativePos.x < ctx.layoutInfo.contentLeft && this.relativePos.x >= ctx.layoutInfo.glyphMarginLeft);\n        this.isInContentArea = !this.isInMarginArea;\n        this.mouseColumn = Math.max(0, MouseTargetFactory._getMouseColumn(this.mouseContentHorizontalOffset, ctx.typicalHalfwidthCharacterWidth));\n    }\n}\nclass HitTestRequest extends BareHitTestRequest {\n    get target() {\n        if (this._useHitTestTarget) {\n            return this.hitTestResult.value.hitTarget;\n        }\n        return this._eventTarget;\n    }\n    get targetPath() {\n        if (this._targetPathCacheElement !== this.target) {\n            this._targetPathCacheElement = this.target;\n            this._targetPathCacheValue = PartFingerprints.collect(this.target, this._ctx.viewDomNode);\n        }\n        return this._targetPathCacheValue;\n    }\n    constructor(ctx, editorPos, pos, relativePos, eventTarget) {\n        super(ctx, editorPos, pos, relativePos);\n        this.hitTestResult = new Lazy(() => MouseTargetFactory.doHitTest(this._ctx, this));\n        this._targetPathCacheElement = null;\n        this._targetPathCacheValue = new Uint8Array(0);\n        this._ctx = ctx;\n        this._eventTarget = eventTarget;\n        // If no event target is passed in, we will use the hit test target\n        const hasEventTarget = Boolean(this._eventTarget);\n        this._useHitTestTarget = !hasEventTarget;\n    }\n    toString() {\n        return `pos(${this.pos.x},${this.pos.y}), editorPos(${this.editorPos.x},${this.editorPos.y}), relativePos(${this.relativePos.x},${this.relativePos.y}), mouseVerticalOffset: ${this.mouseVerticalOffset}, mouseContentHorizontalOffset: ${this.mouseContentHorizontalOffset}\\n\\ttarget: ${this.target ? this.target.outerHTML : null}`;\n    }\n    get wouldBenefitFromHitTestTargetSwitch() {\n        return (!this._useHitTestTarget\n            && this.hitTestResult.value.hitTarget !== null\n            && this.target !== this.hitTestResult.value.hitTarget);\n    }\n    switchToHitTestTarget() {\n        this._useHitTestTarget = true;\n    }\n    _getMouseColumn(position = null) {\n        if (position && position.column < this._ctx.viewModel.getLineMaxColumn(position.lineNumber)) {\n            // Most likely, the line contains foreign decorations...\n            return CursorColumns.visibleColumnFromColumn(this._ctx.viewModel.getLineContent(position.lineNumber), position.column, this._ctx.viewModel.model.getOptions().tabSize) + 1;\n        }\n        return this.mouseColumn;\n    }\n    fulfillUnknown(position = null) {\n        return MouseTarget.createUnknown(this.target, this._getMouseColumn(position), position);\n    }\n    fulfillTextarea() {\n        return MouseTarget.createTextarea(this.target, this._getMouseColumn());\n    }\n    fulfillMargin(type, position, range, detail) {\n        return MouseTarget.createMargin(type, this.target, this._getMouseColumn(position), position, range, detail);\n    }\n    fulfillViewZone(type, position, detail) {\n        return MouseTarget.createViewZone(type, this.target, this._getMouseColumn(position), position, detail);\n    }\n    fulfillContentText(position, range, detail) {\n        return MouseTarget.createContentText(this.target, this._getMouseColumn(position), position, range, detail);\n    }\n    fulfillContentEmpty(position, detail) {\n        return MouseTarget.createContentEmpty(this.target, this._getMouseColumn(position), position, detail);\n    }\n    fulfillContentWidget(detail) {\n        return MouseTarget.createContentWidget(this.target, this._getMouseColumn(), detail);\n    }\n    fulfillScrollbar(position) {\n        return MouseTarget.createScrollbar(this.target, this._getMouseColumn(position), position);\n    }\n    fulfillOverlayWidget(detail) {\n        return MouseTarget.createOverlayWidget(this.target, this._getMouseColumn(), detail);\n    }\n}\nconst EMPTY_CONTENT_AFTER_LINES = { isAfterLines: true };\nfunction createEmptyContentDataInLines(horizontalDistanceToText) {\n    return {\n        isAfterLines: false,\n        horizontalDistanceToText: horizontalDistanceToText\n    };\n}\nexport class MouseTargetFactory {\n    constructor(context, viewHelper) {\n        this._context = context;\n        this._viewHelper = viewHelper;\n    }\n    mouseTargetIsWidget(e) {\n        const t = e.target;\n        const path = PartFingerprints.collect(t, this._viewHelper.viewDomNode);\n        // Is it a content widget?\n        if (ElementPath.isChildOfContentWidgets(path) || ElementPath.isChildOfOverflowingContentWidgets(path)) {\n            return true;\n        }\n        // Is it an overlay widget?\n        if (ElementPath.isChildOfOverlayWidgets(path) || ElementPath.isChildOfOverflowingOverlayWidgets(path)) {\n            return true;\n        }\n        return false;\n    }\n    createMouseTarget(lastRenderData, editorPos, pos, relativePos, target) {\n        const ctx = new HitTestContext(this._context, this._viewHelper, lastRenderData);\n        const request = new HitTestRequest(ctx, editorPos, pos, relativePos, target);\n        try {\n            const r = MouseTargetFactory._createMouseTarget(ctx, request);\n            if (r.type === 6 /* MouseTargetType.CONTENT_TEXT */) {\n                // Snap to the nearest soft tab boundary if atomic soft tabs are enabled.\n                if (ctx.stickyTabStops && r.position !== null) {\n                    const position = MouseTargetFactory._snapToSoftTabBoundary(r.position, ctx.viewModel);\n                    const range = EditorRange.fromPositions(position, position).plusRange(r.range);\n                    return request.fulfillContentText(position, range, r.detail);\n                }\n            }\n            // console.log(MouseTarget.toString(r));\n            return r;\n        }\n        catch (err) {\n            // console.log(err);\n            return request.fulfillUnknown();\n        }\n    }\n    static _createMouseTarget(ctx, request) {\n        // console.log(`${domHitTestExecuted ? '=>' : ''}CAME IN REQUEST: ${request}`);\n        if (request.target === null) {\n            // No target\n            return request.fulfillUnknown();\n        }\n        // we know for a fact that request.target is not null\n        const resolvedRequest = request;\n        let result = null;\n        if (!ElementPath.isChildOfOverflowGuard(request.targetPath) && !ElementPath.isChildOfOverflowingContentWidgets(request.targetPath) && !ElementPath.isChildOfOverflowingOverlayWidgets(request.targetPath)) {\n            // We only render dom nodes inside the overflow guard or in the overflowing content widgets\n            result = result || request.fulfillUnknown();\n        }\n        result = result || MouseTargetFactory._hitTestContentWidget(ctx, resolvedRequest);\n        result = result || MouseTargetFactory._hitTestOverlayWidget(ctx, resolvedRequest);\n        result = result || MouseTargetFactory._hitTestMinimap(ctx, resolvedRequest);\n        result = result || MouseTargetFactory._hitTestScrollbarSlider(ctx, resolvedRequest);\n        result = result || MouseTargetFactory._hitTestViewZone(ctx, resolvedRequest);\n        result = result || MouseTargetFactory._hitTestMargin(ctx, resolvedRequest);\n        result = result || MouseTargetFactory._hitTestViewCursor(ctx, resolvedRequest);\n        result = result || MouseTargetFactory._hitTestTextArea(ctx, resolvedRequest);\n        result = result || MouseTargetFactory._hitTestViewLines(ctx, resolvedRequest);\n        result = result || MouseTargetFactory._hitTestScrollbar(ctx, resolvedRequest);\n        return (result || request.fulfillUnknown());\n    }\n    static _hitTestContentWidget(ctx, request) {\n        // Is it a content widget?\n        if (ElementPath.isChildOfContentWidgets(request.targetPath) || ElementPath.isChildOfOverflowingContentWidgets(request.targetPath)) {\n            const widgetId = ctx.findAttribute(request.target, 'widgetId');\n            if (widgetId) {\n                return request.fulfillContentWidget(widgetId);\n            }\n            else {\n                return request.fulfillUnknown();\n            }\n        }\n        return null;\n    }\n    static _hitTestOverlayWidget(ctx, request) {\n        // Is it an overlay widget?\n        if (ElementPath.isChildOfOverlayWidgets(request.targetPath) || ElementPath.isChildOfOverflowingOverlayWidgets(request.targetPath)) {\n            const widgetId = ctx.findAttribute(request.target, 'widgetId');\n            if (widgetId) {\n                return request.fulfillOverlayWidget(widgetId);\n            }\n            else {\n                return request.fulfillUnknown();\n            }\n        }\n        return null;\n    }\n    static _hitTestViewCursor(ctx, request) {\n        if (request.target) {\n            // Check if we've hit a painted cursor\n            const lastViewCursorsRenderData = ctx.lastRenderData.lastViewCursorsRenderData;\n            for (const d of lastViewCursorsRenderData) {\n                if (request.target === d.domNode) {\n                    return request.fulfillContentText(d.position, null, { mightBeForeignElement: false, injectedText: null });\n                }\n            }\n        }\n        if (request.isInContentArea) {\n            // Edge has a bug when hit-testing the exact position of a cursor,\n            // instead of returning the correct dom node, it returns the\n            // first or last rendered view line dom node, therefore help it out\n            // and first check if we are on top of a cursor\n            const lastViewCursorsRenderData = ctx.lastRenderData.lastViewCursorsRenderData;\n            const mouseContentHorizontalOffset = request.mouseContentHorizontalOffset;\n            const mouseVerticalOffset = request.mouseVerticalOffset;\n            for (const d of lastViewCursorsRenderData) {\n                if (mouseContentHorizontalOffset < d.contentLeft) {\n                    // mouse position is to the left of the cursor\n                    continue;\n                }\n                if (mouseContentHorizontalOffset > d.contentLeft + d.width) {\n                    // mouse position is to the right of the cursor\n                    continue;\n                }\n                const cursorVerticalOffset = ctx.getVerticalOffsetForLineNumber(d.position.lineNumber);\n                if (cursorVerticalOffset <= mouseVerticalOffset\n                    && mouseVerticalOffset <= cursorVerticalOffset + d.height) {\n                    return request.fulfillContentText(d.position, null, { mightBeForeignElement: false, injectedText: null });\n                }\n            }\n        }\n        return null;\n    }\n    static _hitTestViewZone(ctx, request) {\n        const viewZoneData = ctx.getZoneAtCoord(request.mouseVerticalOffset);\n        if (viewZoneData) {\n            const mouseTargetType = (request.isInContentArea ? 8 /* MouseTargetType.CONTENT_VIEW_ZONE */ : 5 /* MouseTargetType.GUTTER_VIEW_ZONE */);\n            return request.fulfillViewZone(mouseTargetType, viewZoneData.position, viewZoneData);\n        }\n        return null;\n    }\n    static _hitTestTextArea(ctx, request) {\n        // Is it the textarea?\n        if (ElementPath.isTextArea(request.targetPath)) {\n            if (ctx.lastRenderData.lastTextareaPosition) {\n                return request.fulfillContentText(ctx.lastRenderData.lastTextareaPosition, null, { mightBeForeignElement: false, injectedText: null });\n            }\n            return request.fulfillTextarea();\n        }\n        return null;\n    }\n    static _hitTestMargin(ctx, request) {\n        if (request.isInMarginArea) {\n            const res = ctx.getFullLineRangeAtCoord(request.mouseVerticalOffset);\n            const pos = res.range.getStartPosition();\n            let offset = Math.abs(request.relativePos.x);\n            const detail = {\n                isAfterLines: res.isAfterLines,\n                glyphMarginLeft: ctx.layoutInfo.glyphMarginLeft,\n                glyphMarginWidth: ctx.layoutInfo.glyphMarginWidth,\n                lineNumbersWidth: ctx.layoutInfo.lineNumbersWidth,\n                offsetX: offset\n            };\n            offset -= ctx.layoutInfo.glyphMarginLeft;\n            if (offset <= ctx.layoutInfo.glyphMarginWidth) {\n                // On the glyph margin\n                const modelCoordinate = ctx.viewModel.coordinatesConverter.convertViewPositionToModelPosition(res.range.getStartPosition());\n                const lanes = ctx.viewModel.glyphLanes.getLanesAtLine(modelCoordinate.lineNumber);\n                detail.glyphMarginLane = lanes[Math.floor(offset / ctx.lineHeight)];\n                return request.fulfillMargin(2 /* MouseTargetType.GUTTER_GLYPH_MARGIN */, pos, res.range, detail);\n            }\n            offset -= ctx.layoutInfo.glyphMarginWidth;\n            if (offset <= ctx.layoutInfo.lineNumbersWidth) {\n                // On the line numbers\n                return request.fulfillMargin(3 /* MouseTargetType.GUTTER_LINE_NUMBERS */, pos, res.range, detail);\n            }\n            offset -= ctx.layoutInfo.lineNumbersWidth;\n            // On the line decorations\n            return request.fulfillMargin(4 /* MouseTargetType.GUTTER_LINE_DECORATIONS */, pos, res.range, detail);\n        }\n        return null;\n    }\n    static _hitTestViewLines(ctx, request) {\n        if (!ElementPath.isChildOfViewLines(request.targetPath)) {\n            return null;\n        }\n        if (ctx.isInTopPadding(request.mouseVerticalOffset)) {\n            return request.fulfillContentEmpty(new Position(1, 1), EMPTY_CONTENT_AFTER_LINES);\n        }\n        // Check if it is below any lines and any view zones\n        if (ctx.isAfterLines(request.mouseVerticalOffset) || ctx.isInBottomPadding(request.mouseVerticalOffset)) {\n            // This most likely indicates it happened after the last view-line\n            const lineCount = ctx.viewModel.getLineCount();\n            const maxLineColumn = ctx.viewModel.getLineMaxColumn(lineCount);\n            return request.fulfillContentEmpty(new Position(lineCount, maxLineColumn), EMPTY_CONTENT_AFTER_LINES);\n        }\n        // Check if we are hitting a view-line (can happen in the case of inline decorations on empty lines)\n        // See https://github.com/microsoft/vscode/issues/46942\n        if (ElementPath.isStrictChildOfViewLines(request.targetPath)) {\n            const lineNumber = ctx.getLineNumberAtVerticalOffset(request.mouseVerticalOffset);\n            if (ctx.viewModel.getLineLength(lineNumber) === 0) {\n                const lineWidth = ctx.getLineWidth(lineNumber);\n                const detail = createEmptyContentDataInLines(request.mouseContentHorizontalOffset - lineWidth);\n                return request.fulfillContentEmpty(new Position(lineNumber, 1), detail);\n            }\n            const lineWidth = ctx.getLineWidth(lineNumber);\n            if (request.mouseContentHorizontalOffset >= lineWidth) {\n                // TODO: This is wrong for RTL\n                const detail = createEmptyContentDataInLines(request.mouseContentHorizontalOffset - lineWidth);\n                const pos = new Position(lineNumber, ctx.viewModel.getLineMaxColumn(lineNumber));\n                return request.fulfillContentEmpty(pos, detail);\n            }\n        }\n        // Do the hit test (if not already done)\n        const hitTestResult = request.hitTestResult.value;\n        if (hitTestResult.type === 1 /* HitTestResultType.Content */) {\n            return MouseTargetFactory.createMouseTargetFromHitTestPosition(ctx, request, hitTestResult.spanNode, hitTestResult.position, hitTestResult.injectedText);\n        }\n        // We didn't hit content...\n        if (request.wouldBenefitFromHitTestTargetSwitch) {\n            // We actually hit something different... Give it one last change by trying again with this new target\n            request.switchToHitTestTarget();\n            return this._createMouseTarget(ctx, request);\n        }\n        // We have tried everything...\n        return request.fulfillUnknown();\n    }\n    static _hitTestMinimap(ctx, request) {\n        if (ElementPath.isChildOfMinimap(request.targetPath)) {\n            const possibleLineNumber = ctx.getLineNumberAtVerticalOffset(request.mouseVerticalOffset);\n            const maxColumn = ctx.viewModel.getLineMaxColumn(possibleLineNumber);\n            return request.fulfillScrollbar(new Position(possibleLineNumber, maxColumn));\n        }\n        return null;\n    }\n    static _hitTestScrollbarSlider(ctx, request) {\n        if (ElementPath.isChildOfScrollableElement(request.targetPath)) {\n            if (request.target && request.target.nodeType === 1) {\n                const className = request.target.className;\n                if (className && /\\b(slider|scrollbar)\\b/.test(className)) {\n                    const possibleLineNumber = ctx.getLineNumberAtVerticalOffset(request.mouseVerticalOffset);\n                    const maxColumn = ctx.viewModel.getLineMaxColumn(possibleLineNumber);\n                    return request.fulfillScrollbar(new Position(possibleLineNumber, maxColumn));\n                }\n            }\n        }\n        return null;\n    }\n    static _hitTestScrollbar(ctx, request) {\n        // Is it the overview ruler?\n        // Is it a child of the scrollable element?\n        if (ElementPath.isChildOfScrollableElement(request.targetPath)) {\n            const possibleLineNumber = ctx.getLineNumberAtVerticalOffset(request.mouseVerticalOffset);\n            const maxColumn = ctx.viewModel.getLineMaxColumn(possibleLineNumber);\n            return request.fulfillScrollbar(new Position(possibleLineNumber, maxColumn));\n        }\n        return null;\n    }\n    getMouseColumn(relativePos) {\n        const options = this._context.configuration.options;\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        const mouseContentHorizontalOffset = this._context.viewLayout.getCurrentScrollLeft() + relativePos.x - layoutInfo.contentLeft;\n        return MouseTargetFactory._getMouseColumn(mouseContentHorizontalOffset, options.get(50 /* EditorOption.fontInfo */).typicalHalfwidthCharacterWidth);\n    }\n    static _getMouseColumn(mouseContentHorizontalOffset, typicalHalfwidthCharacterWidth) {\n        if (mouseContentHorizontalOffset < 0) {\n            return 1;\n        }\n        const chars = Math.round(mouseContentHorizontalOffset / typicalHalfwidthCharacterWidth);\n        return (chars + 1);\n    }\n    static createMouseTargetFromHitTestPosition(ctx, request, spanNode, pos, injectedText) {\n        const lineNumber = pos.lineNumber;\n        const column = pos.column;\n        const lineWidth = ctx.getLineWidth(lineNumber);\n        if (request.mouseContentHorizontalOffset > lineWidth) {\n            const detail = createEmptyContentDataInLines(request.mouseContentHorizontalOffset - lineWidth);\n            return request.fulfillContentEmpty(pos, detail);\n        }\n        const visibleRange = ctx.visibleRangeForPosition(lineNumber, column);\n        if (!visibleRange) {\n            return request.fulfillUnknown(pos);\n        }\n        const columnHorizontalOffset = visibleRange.left;\n        if (Math.abs(request.mouseContentHorizontalOffset - columnHorizontalOffset) < 1) {\n            return request.fulfillContentText(pos, null, { mightBeForeignElement: !!injectedText, injectedText });\n        }\n        const points = [];\n        points.push({ offset: visibleRange.left, column: column });\n        if (column > 1) {\n            const visibleRange = ctx.visibleRangeForPosition(lineNumber, column - 1);\n            if (visibleRange) {\n                points.push({ offset: visibleRange.left, column: column - 1 });\n            }\n        }\n        const lineMaxColumn = ctx.viewModel.getLineMaxColumn(lineNumber);\n        if (column < lineMaxColumn) {\n            const visibleRange = ctx.visibleRangeForPosition(lineNumber, column + 1);\n            if (visibleRange) {\n                points.push({ offset: visibleRange.left, column: column + 1 });\n            }\n        }\n        points.sort((a, b) => a.offset - b.offset);\n        const mouseCoordinates = request.pos.toClientCoordinates(dom.getWindow(ctx.viewDomNode));\n        const spanNodeClientRect = spanNode.getBoundingClientRect();\n        const mouseIsOverSpanNode = (spanNodeClientRect.left <= mouseCoordinates.clientX && mouseCoordinates.clientX <= spanNodeClientRect.right);\n        let rng = null;\n        for (let i = 1; i < points.length; i++) {\n            const prev = points[i - 1];\n            const curr = points[i];\n            if (prev.offset <= request.mouseContentHorizontalOffset && request.mouseContentHorizontalOffset <= curr.offset) {\n                rng = new EditorRange(lineNumber, prev.column, lineNumber, curr.column);\n                // See https://github.com/microsoft/vscode/issues/152819\n                // Due to the use of zwj, the browser's hit test result is skewed towards the left\n                // Here we try to correct that if the mouse horizontal offset is closer to the right than the left\n                const prevDelta = Math.abs(prev.offset - request.mouseContentHorizontalOffset);\n                const nextDelta = Math.abs(curr.offset - request.mouseContentHorizontalOffset);\n                pos = (prevDelta < nextDelta\n                    ? new Position(lineNumber, prev.column)\n                    : new Position(lineNumber, curr.column));\n                break;\n            }\n        }\n        return request.fulfillContentText(pos, rng, { mightBeForeignElement: !mouseIsOverSpanNode || !!injectedText, injectedText });\n    }\n    /**\n     * Most probably WebKit browsers and Edge\n     */\n    static _doHitTestWithCaretRangeFromPoint(ctx, request) {\n        // In Chrome, especially on Linux it is possible to click between lines,\n        // so try to adjust the `hity` below so that it lands in the center of a line\n        const lineNumber = ctx.getLineNumberAtVerticalOffset(request.mouseVerticalOffset);\n        const lineStartVerticalOffset = ctx.getVerticalOffsetForLineNumber(lineNumber);\n        const lineEndVerticalOffset = lineStartVerticalOffset + ctx.lineHeight;\n        const isBelowLastLine = (lineNumber === ctx.viewModel.getLineCount()\n            && request.mouseVerticalOffset > lineEndVerticalOffset);\n        if (!isBelowLastLine) {\n            const lineCenteredVerticalOffset = Math.floor((lineStartVerticalOffset + lineEndVerticalOffset) / 2);\n            let adjustedPageY = request.pos.y + (lineCenteredVerticalOffset - request.mouseVerticalOffset);\n            if (adjustedPageY <= request.editorPos.y) {\n                adjustedPageY = request.editorPos.y + 1;\n            }\n            if (adjustedPageY >= request.editorPos.y + request.editorPos.height) {\n                adjustedPageY = request.editorPos.y + request.editorPos.height - 1;\n            }\n            const adjustedPage = new PageCoordinates(request.pos.x, adjustedPageY);\n            const r = this._actualDoHitTestWithCaretRangeFromPoint(ctx, adjustedPage.toClientCoordinates(dom.getWindow(ctx.viewDomNode)));\n            if (r.type === 1 /* HitTestResultType.Content */) {\n                return r;\n            }\n        }\n        // Also try to hit test without the adjustment (for the edge cases that we are near the top or bottom)\n        return this._actualDoHitTestWithCaretRangeFromPoint(ctx, request.pos.toClientCoordinates(dom.getWindow(ctx.viewDomNode)));\n    }\n    static _actualDoHitTestWithCaretRangeFromPoint(ctx, coords) {\n        const shadowRoot = dom.getShadowRoot(ctx.viewDomNode);\n        let range;\n        if (shadowRoot) {\n            if (typeof shadowRoot.caretRangeFromPoint === 'undefined') {\n                range = shadowCaretRangeFromPoint(shadowRoot, coords.clientX, coords.clientY);\n            }\n            else {\n                range = shadowRoot.caretRangeFromPoint(coords.clientX, coords.clientY);\n            }\n        }\n        else {\n            range = ctx.viewDomNode.ownerDocument.caretRangeFromPoint(coords.clientX, coords.clientY);\n        }\n        if (!range || !range.startContainer) {\n            return new UnknownHitTestResult();\n        }\n        // Chrome always hits a TEXT_NODE, while Edge sometimes hits a token span\n        const startContainer = range.startContainer;\n        if (startContainer.nodeType === startContainer.TEXT_NODE) {\n            // startContainer is expected to be the token text\n            const parent1 = startContainer.parentNode; // expected to be the token span\n            const parent2 = parent1 ? parent1.parentNode : null; // expected to be the view line container span\n            const parent3 = parent2 ? parent2.parentNode : null; // expected to be the view line div\n            const parent3ClassName = parent3 && parent3.nodeType === parent3.ELEMENT_NODE ? parent3.className : null;\n            if (parent3ClassName === ViewLine.CLASS_NAME) {\n                return HitTestResult.createFromDOMInfo(ctx, parent1, range.startOffset);\n            }\n            else {\n                return new UnknownHitTestResult(startContainer.parentNode);\n            }\n        }\n        else if (startContainer.nodeType === startContainer.ELEMENT_NODE) {\n            // startContainer is expected to be the token span\n            const parent1 = startContainer.parentNode; // expected to be the view line container span\n            const parent2 = parent1 ? parent1.parentNode : null; // expected to be the view line div\n            const parent2ClassName = parent2 && parent2.nodeType === parent2.ELEMENT_NODE ? parent2.className : null;\n            if (parent2ClassName === ViewLine.CLASS_NAME) {\n                return HitTestResult.createFromDOMInfo(ctx, startContainer, startContainer.textContent.length);\n            }\n            else {\n                return new UnknownHitTestResult(startContainer);\n            }\n        }\n        return new UnknownHitTestResult();\n    }\n    /**\n     * Most probably Gecko\n     */\n    static _doHitTestWithCaretPositionFromPoint(ctx, coords) {\n        const hitResult = ctx.viewDomNode.ownerDocument.caretPositionFromPoint(coords.clientX, coords.clientY);\n        if (hitResult.offsetNode.nodeType === hitResult.offsetNode.TEXT_NODE) {\n            // offsetNode is expected to be the token text\n            const parent1 = hitResult.offsetNode.parentNode; // expected to be the token span\n            const parent2 = parent1 ? parent1.parentNode : null; // expected to be the view line container span\n            const parent3 = parent2 ? parent2.parentNode : null; // expected to be the view line div\n            const parent3ClassName = parent3 && parent3.nodeType === parent3.ELEMENT_NODE ? parent3.className : null;\n            if (parent3ClassName === ViewLine.CLASS_NAME) {\n                return HitTestResult.createFromDOMInfo(ctx, hitResult.offsetNode.parentNode, hitResult.offset);\n            }\n            else {\n                return new UnknownHitTestResult(hitResult.offsetNode.parentNode);\n            }\n        }\n        // For inline decorations, Gecko sometimes returns the `<span>` of the line and the offset is the `<span>` with the inline decoration\n        // Some other times, it returns the `<span>` with the inline decoration\n        if (hitResult.offsetNode.nodeType === hitResult.offsetNode.ELEMENT_NODE) {\n            const parent1 = hitResult.offsetNode.parentNode;\n            const parent1ClassName = parent1 && parent1.nodeType === parent1.ELEMENT_NODE ? parent1.className : null;\n            const parent2 = parent1 ? parent1.parentNode : null;\n            const parent2ClassName = parent2 && parent2.nodeType === parent2.ELEMENT_NODE ? parent2.className : null;\n            if (parent1ClassName === ViewLine.CLASS_NAME) {\n                // it returned the `<span>` of the line and the offset is the `<span>` with the inline decoration\n                const tokenSpan = hitResult.offsetNode.childNodes[Math.min(hitResult.offset, hitResult.offsetNode.childNodes.length - 1)];\n                if (tokenSpan) {\n                    return HitTestResult.createFromDOMInfo(ctx, tokenSpan, 0);\n                }\n            }\n            else if (parent2ClassName === ViewLine.CLASS_NAME) {\n                // it returned the `<span>` with the inline decoration\n                return HitTestResult.createFromDOMInfo(ctx, hitResult.offsetNode, 0);\n            }\n        }\n        return new UnknownHitTestResult(hitResult.offsetNode);\n    }\n    static _snapToSoftTabBoundary(position, viewModel) {\n        const lineContent = viewModel.getLineContent(position.lineNumber);\n        const { tabSize } = viewModel.model.getOptions();\n        const newPosition = AtomicTabMoveOperations.atomicPosition(lineContent, position.column - 1, tabSize, 2 /* Direction.Nearest */);\n        if (newPosition !== -1) {\n            return new Position(position.lineNumber, newPosition + 1);\n        }\n        return position;\n    }\n    static doHitTest(ctx, request) {\n        let result = new UnknownHitTestResult();\n        if (typeof ctx.viewDomNode.ownerDocument.caretRangeFromPoint === 'function') {\n            result = this._doHitTestWithCaretRangeFromPoint(ctx, request);\n        }\n        else if (ctx.viewDomNode.ownerDocument.caretPositionFromPoint) {\n            result = this._doHitTestWithCaretPositionFromPoint(ctx, request.pos.toClientCoordinates(dom.getWindow(ctx.viewDomNode)));\n        }\n        if (result.type === 1 /* HitTestResultType.Content */) {\n            const injectedText = ctx.viewModel.getInjectedTextAt(result.position);\n            const normalizedPosition = ctx.viewModel.normalizePosition(result.position, 2 /* PositionAffinity.None */);\n            if (injectedText || !normalizedPosition.equals(result.position)) {\n                result = new ContentHitTestResult(normalizedPosition, result.spanNode, injectedText);\n            }\n        }\n        return result;\n    }\n}\nfunction shadowCaretRangeFromPoint(shadowRoot, x, y) {\n    const range = document.createRange();\n    // Get the element under the point\n    let el = shadowRoot.elementFromPoint(x, y);\n    if (el !== null) {\n        // Get the last child of the element until its firstChild is a text node\n        // This assumes that the pointer is on the right of the line, out of the tokens\n        // and that we want to get the offset of the last token of the line\n        while (el && el.firstChild && el.firstChild.nodeType !== el.firstChild.TEXT_NODE && el.lastChild && el.lastChild.firstChild) {\n            el = el.lastChild;\n        }\n        // Grab its rect\n        const rect = el.getBoundingClientRect();\n        // And its font (the computed shorthand font property might be empty, see #3217)\n        const elWindow = dom.getWindow(el);\n        const fontStyle = elWindow.getComputedStyle(el, null).getPropertyValue('font-style');\n        const fontVariant = elWindow.getComputedStyle(el, null).getPropertyValue('font-variant');\n        const fontWeight = elWindow.getComputedStyle(el, null).getPropertyValue('font-weight');\n        const fontSize = elWindow.getComputedStyle(el, null).getPropertyValue('font-size');\n        const lineHeight = elWindow.getComputedStyle(el, null).getPropertyValue('line-height');\n        const fontFamily = elWindow.getComputedStyle(el, null).getPropertyValue('font-family');\n        const font = `${fontStyle} ${fontVariant} ${fontWeight} ${fontSize}/${lineHeight} ${fontFamily}`;\n        // And also its txt content\n        const text = el.innerText;\n        // Position the pixel cursor at the left of the element\n        let pixelCursor = rect.left;\n        let offset = 0;\n        let step;\n        // If the point is on the right of the box put the cursor after the last character\n        if (x > rect.left + rect.width) {\n            offset = text.length;\n        }\n        else {\n            const charWidthReader = CharWidthReader.getInstance();\n            // Goes through all the characters of the innerText, and checks if the x of the point\n            // belongs to the character.\n            for (let i = 0; i < text.length + 1; i++) {\n                // The step is half the width of the character\n                step = charWidthReader.getCharWidth(text.charAt(i), font) / 2;\n                // Move to the center of the character\n                pixelCursor += step;\n                // If the x of the point is smaller that the position of the cursor, the point is over that character\n                if (x < pixelCursor) {\n                    offset = i;\n                    break;\n                }\n                // Move between the current character and the next\n                pixelCursor += step;\n            }\n        }\n        // Creates a range with the text node of the element and set the offset found\n        range.setStart(el.firstChild, offset);\n        range.setEnd(el.firstChild, offset);\n    }\n    return range;\n}\nclass CharWidthReader {\n    static getInstance() {\n        if (!CharWidthReader._INSTANCE) {\n            CharWidthReader._INSTANCE = new CharWidthReader();\n        }\n        return CharWidthReader._INSTANCE;\n    }\n    constructor() {\n        this._cache = {};\n        this._canvas = document.createElement('canvas');\n    }\n    getCharWidth(char, font) {\n        const cacheKey = char + font;\n        if (this._cache[cacheKey]) {\n            return this._cache[cacheKey];\n        }\n        const context = this._canvas.getContext('2d');\n        context.font = font;\n        const metrics = context.measureText(char);\n        const width = metrics.width;\n        this._cache[cacheKey] = width;\n        return width;\n    }\n}\nCharWidthReader._INSTANCE = null;\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/controller/pointerHandler.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { BrowserFeatures } from '../../../base/browser/canIUse.js';\nimport * as dom from '../../../base/browser/dom.js';\nimport { EventType, Gesture } from '../../../base/browser/touch.js';\nimport { mainWindow } from '../../../base/browser/window.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport * as platform from '../../../base/common/platform.js';\nimport { MouseHandler } from './mouseHandler.js';\nimport { TextAreaSyntethicEvents } from './textAreaInput.js';\nimport { EditorMouseEvent, EditorPointerEventFactory } from '../editorDom.js';\n/**\n * Currently only tested on iOS 13/ iPadOS.\n */\nexport class PointerEventHandler extends MouseHandler {\n    constructor(context, viewController, viewHelper) {\n        super(context, viewController, viewHelper);\n        this._register(Gesture.addTarget(this.viewHelper.linesContentDomNode));\n        this._register(dom.addDisposableListener(this.viewHelper.linesContentDomNode, EventType.Tap, (e) => this.onTap(e)));\n        this._register(dom.addDisposableListener(this.viewHelper.linesContentDomNode, EventType.Change, (e) => this.onChange(e)));\n        this._register(dom.addDisposableListener(this.viewHelper.linesContentDomNode, EventType.Contextmenu, (e) => this._onContextMenu(new EditorMouseEvent(e, false, this.viewHelper.viewDomNode), false)));\n        this._lastPointerType = 'mouse';\n        this._register(dom.addDisposableListener(this.viewHelper.linesContentDomNode, 'pointerdown', (e) => {\n            const pointerType = e.pointerType;\n            if (pointerType === 'mouse') {\n                this._lastPointerType = 'mouse';\n                return;\n            }\n            else if (pointerType === 'touch') {\n                this._lastPointerType = 'touch';\n            }\n            else {\n                this._lastPointerType = 'pen';\n            }\n        }));\n        // PonterEvents\n        const pointerEvents = new EditorPointerEventFactory(this.viewHelper.viewDomNode);\n        this._register(pointerEvents.onPointerMove(this.viewHelper.viewDomNode, (e) => this._onMouseMove(e)));\n        this._register(pointerEvents.onPointerUp(this.viewHelper.viewDomNode, (e) => this._onMouseUp(e)));\n        this._register(pointerEvents.onPointerLeave(this.viewHelper.viewDomNode, (e) => this._onMouseLeave(e)));\n        this._register(pointerEvents.onPointerDown(this.viewHelper.viewDomNode, (e, pointerId) => this._onMouseDown(e, pointerId)));\n    }\n    onTap(event) {\n        if (!event.initialTarget || !this.viewHelper.linesContentDomNode.contains(event.initialTarget)) {\n            return;\n        }\n        event.preventDefault();\n        this.viewHelper.focusTextArea();\n        this._dispatchGesture(event, /*inSelectionMode*/ false);\n    }\n    onChange(event) {\n        if (this._lastPointerType === 'touch') {\n            this._context.viewModel.viewLayout.deltaScrollNow(-event.translationX, -event.translationY);\n        }\n        if (this._lastPointerType === 'pen') {\n            this._dispatchGesture(event, /*inSelectionMode*/ true);\n        }\n    }\n    _dispatchGesture(event, inSelectionMode) {\n        const target = this._createMouseTarget(new EditorMouseEvent(event, false, this.viewHelper.viewDomNode), false);\n        if (target.position) {\n            this.viewController.dispatchMouse({\n                position: target.position,\n                mouseColumn: target.position.column,\n                startedOnLineNumbers: false,\n                revealType: 1 /* NavigationCommandRevealType.Minimal */,\n                mouseDownCount: event.tapCount,\n                inSelectionMode,\n                altKey: false,\n                ctrlKey: false,\n                metaKey: false,\n                shiftKey: false,\n                leftButton: false,\n                middleButton: false,\n                onInjectedText: target.type === 6 /* MouseTargetType.CONTENT_TEXT */ && target.detail.injectedText !== null\n            });\n        }\n    }\n    _onMouseDown(e, pointerId) {\n        if (e.browserEvent.pointerType === 'touch') {\n            return;\n        }\n        super._onMouseDown(e, pointerId);\n    }\n}\nclass TouchHandler extends MouseHandler {\n    constructor(context, viewController, viewHelper) {\n        super(context, viewController, viewHelper);\n        this._register(Gesture.addTarget(this.viewHelper.linesContentDomNode));\n        this._register(dom.addDisposableListener(this.viewHelper.linesContentDomNode, EventType.Tap, (e) => this.onTap(e)));\n        this._register(dom.addDisposableListener(this.viewHelper.linesContentDomNode, EventType.Change, (e) => this.onChange(e)));\n        this._register(dom.addDisposableListener(this.viewHelper.linesContentDomNode, EventType.Contextmenu, (e) => this._onContextMenu(new EditorMouseEvent(e, false, this.viewHelper.viewDomNode), false)));\n    }\n    onTap(event) {\n        event.preventDefault();\n        this.viewHelper.focusTextArea();\n        const target = this._createMouseTarget(new EditorMouseEvent(event, false, this.viewHelper.viewDomNode), false);\n        if (target.position) {\n            // Send the tap event also to the <textarea> (for input purposes)\n            const event = document.createEvent('CustomEvent');\n            event.initEvent(TextAreaSyntethicEvents.Tap, false, true);\n            this.viewHelper.dispatchTextAreaEvent(event);\n            this.viewController.moveTo(target.position, 1 /* NavigationCommandRevealType.Minimal */);\n        }\n    }\n    onChange(e) {\n        this._context.viewModel.viewLayout.deltaScrollNow(-e.translationX, -e.translationY);\n    }\n}\nexport class PointerHandler extends Disposable {\n    constructor(context, viewController, viewHelper) {\n        super();\n        const isPhone = platform.isIOS || (platform.isAndroid && platform.isMobile);\n        if (isPhone && BrowserFeatures.pointerEvents) {\n            this.handler = this._register(new PointerEventHandler(context, viewController, viewHelper));\n        }\n        else if (mainWindow.TouchEvent) {\n            this.handler = this._register(new TouchHandler(context, viewController, viewHelper));\n        }\n        else {\n            this.handler = this._register(new MouseHandler(context, viewController, viewHelper));\n        }\n    }\n    getTargetAtClientPoint(clientX, clientY) {\n        return this.handler.getTargetAtClientPoint(clientX, clientY);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/controller/textAreaHandler.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .inputarea {\n\tmin-width: 0;\n\tmin-height: 0;\n\tmargin: 0;\n\tpadding: 0;\n\tposition: absolute;\n\toutline: none !important;\n\tresize: none;\n\tborder: none;\n\toverflow: hidden;\n\tcolor: transparent;\n\tbackground-color: transparent;\n\tz-index: -10;\n}\n/*.monaco-editor .inputarea {\n\tposition: fixed !important;\n\twidth: 800px !important;\n\theight: 500px !important;\n\ttop: initial !important;\n\tleft: initial !important;\n\tbottom: 0 !important;\n\tright: 0 !important;\n\tcolor: black !important;\n\tbackground: white !important;\n\tline-height: 15px !important;\n\tfont-size: 14px !important;\n\tz-index: 10 !important;\n}*/\n.monaco-editor .inputarea.ime-input {\n\tz-index: 10;\n\tcaret-color: var(--vscode-editorCursor-foreground);\n\tcolor: var(--vscode-editor-foreground);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/controller/textAreaHandler.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport './textAreaHandler.css';\nimport * as nls from '../../../nls.js';\nimport * as browser from '../../../base/browser/browser.js';\nimport { createFastDomNode } from '../../../base/browser/fastDomNode.js';\nimport * as platform from '../../../base/common/platform.js';\nimport * as strings from '../../../base/common/strings.js';\nimport { applyFontInfo } from '../config/domFontInfo.js';\nimport { CopyOptions, TextAreaInput, TextAreaWrapper } from './textAreaInput.js';\nimport { PagedScreenReaderStrategy, TextAreaState, _debugComposition } from './textAreaState.js';\nimport { PartFingerprints, ViewPart } from '../view/viewPart.js';\nimport { LineNumbersOverlay } from '../viewParts/lineNumbers/lineNumbers.js';\nimport { Margin } from '../viewParts/margin/margin.js';\nimport { EditorOptions } from '../../common/config/editorOptions.js';\nimport { getMapForWordSeparators } from '../../common/core/wordCharacterClassifier.js';\nimport { Position } from '../../common/core/position.js';\nimport { Range } from '../../common/core/range.js';\nimport { Selection } from '../../common/core/selection.js';\nimport { MOUSE_CURSOR_TEXT_CSS_CLASS_NAME } from '../../../base/browser/ui/mouseCursor/mouseCursor.js';\nimport { TokenizationRegistry } from '../../common/languages.js';\nimport { Color } from '../../../base/common/color.js';\nimport { IME } from '../../../base/common/ime.js';\nimport { IKeybindingService } from '../../../platform/keybinding/common/keybinding.js';\nimport { IInstantiationService } from '../../../platform/instantiation/common/instantiation.js';\nclass VisibleTextAreaData {\n    constructor(_context, modelLineNumber, distanceToModelLineStart, widthOfHiddenLineTextBefore, distanceToModelLineEnd) {\n        this._context = _context;\n        this.modelLineNumber = modelLineNumber;\n        this.distanceToModelLineStart = distanceToModelLineStart;\n        this.widthOfHiddenLineTextBefore = widthOfHiddenLineTextBefore;\n        this.distanceToModelLineEnd = distanceToModelLineEnd;\n        this._visibleTextAreaBrand = undefined;\n        this.startPosition = null;\n        this.endPosition = null;\n        this.visibleTextareaStart = null;\n        this.visibleTextareaEnd = null;\n        /**\n         * When doing composition, the currently composed text might be split up into\n         * multiple tokens, then merged again into a single token, etc. Here we attempt\n         * to keep the presentation of the <textarea> stable by using the previous used\n         * style if multiple tokens come into play. This avoids flickering.\n         */\n        this._previousPresentation = null;\n    }\n    prepareRender(visibleRangeProvider) {\n        const startModelPosition = new Position(this.modelLineNumber, this.distanceToModelLineStart + 1);\n        const endModelPosition = new Position(this.modelLineNumber, this._context.viewModel.model.getLineMaxColumn(this.modelLineNumber) - this.distanceToModelLineEnd);\n        this.startPosition = this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(startModelPosition);\n        this.endPosition = this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(endModelPosition);\n        if (this.startPosition.lineNumber === this.endPosition.lineNumber) {\n            this.visibleTextareaStart = visibleRangeProvider.visibleRangeForPosition(this.startPosition);\n            this.visibleTextareaEnd = visibleRangeProvider.visibleRangeForPosition(this.endPosition);\n        }\n        else {\n            // TODO: what if the view positions are not on the same line?\n            this.visibleTextareaStart = null;\n            this.visibleTextareaEnd = null;\n        }\n    }\n    definePresentation(tokenPresentation) {\n        if (!this._previousPresentation) {\n            // To avoid flickering, once set, always reuse a presentation throughout the entire IME session\n            if (tokenPresentation) {\n                this._previousPresentation = tokenPresentation;\n            }\n            else {\n                this._previousPresentation = {\n                    foreground: 1 /* ColorId.DefaultForeground */,\n                    italic: false,\n                    bold: false,\n                    underline: false,\n                    strikethrough: false,\n                };\n            }\n        }\n        return this._previousPresentation;\n    }\n}\nconst canUseZeroSizeTextarea = (browser.isFirefox);\nlet TextAreaHandler = class TextAreaHandler extends ViewPart {\n    constructor(context, viewController, visibleRangeProvider, _keybindingService, _instantiationService) {\n        super(context);\n        this._keybindingService = _keybindingService;\n        this._instantiationService = _instantiationService;\n        this._primaryCursorPosition = new Position(1, 1);\n        this._primaryCursorVisibleRange = null;\n        this._viewController = viewController;\n        this._visibleRangeProvider = visibleRangeProvider;\n        this._scrollLeft = 0;\n        this._scrollTop = 0;\n        const options = this._context.configuration.options;\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        this._setAccessibilityOptions(options);\n        this._contentLeft = layoutInfo.contentLeft;\n        this._contentWidth = layoutInfo.contentWidth;\n        this._contentHeight = layoutInfo.height;\n        this._fontInfo = options.get(50 /* EditorOption.fontInfo */);\n        this._lineHeight = options.get(67 /* EditorOption.lineHeight */);\n        this._emptySelectionClipboard = options.get(37 /* EditorOption.emptySelectionClipboard */);\n        this._copyWithSyntaxHighlighting = options.get(25 /* EditorOption.copyWithSyntaxHighlighting */);\n        this._visibleTextArea = null;\n        this._selections = [new Selection(1, 1, 1, 1)];\n        this._modelSelections = [new Selection(1, 1, 1, 1)];\n        this._lastRenderPosition = null;\n        // Text Area (The focus will always be in the textarea when the cursor is blinking)\n        this.textArea = createFastDomNode(document.createElement('textarea'));\n        PartFingerprints.write(this.textArea, 7 /* PartFingerprint.TextArea */);\n        this.textArea.setClassName(`inputarea ${MOUSE_CURSOR_TEXT_CSS_CLASS_NAME}`);\n        this.textArea.setAttribute('wrap', this._textAreaWrapping && !this._visibleTextArea ? 'on' : 'off');\n        const { tabSize } = this._context.viewModel.model.getOptions();\n        this.textArea.domNode.style.tabSize = `${tabSize * this._fontInfo.spaceWidth}px`;\n        this.textArea.setAttribute('autocorrect', 'off');\n        this.textArea.setAttribute('autocapitalize', 'off');\n        this.textArea.setAttribute('autocomplete', 'off');\n        this.textArea.setAttribute('spellcheck', 'false');\n        this.textArea.setAttribute('aria-label', this._getAriaLabel(options));\n        this.textArea.setAttribute('aria-required', options.get(5 /* EditorOption.ariaRequired */) ? 'true' : 'false');\n        this.textArea.setAttribute('tabindex', String(options.get(124 /* EditorOption.tabIndex */)));\n        this.textArea.setAttribute('role', 'textbox');\n        this.textArea.setAttribute('aria-roledescription', nls.localize('editor', \"editor\"));\n        this.textArea.setAttribute('aria-multiline', 'true');\n        this.textArea.setAttribute('aria-autocomplete', options.get(91 /* EditorOption.readOnly */) ? 'none' : 'both');\n        this._ensureReadOnlyAttribute();\n        this.textAreaCover = createFastDomNode(document.createElement('div'));\n        this.textAreaCover.setPosition('absolute');\n        const simpleModel = {\n            getLineCount: () => {\n                return this._context.viewModel.getLineCount();\n            },\n            getLineMaxColumn: (lineNumber) => {\n                return this._context.viewModel.getLineMaxColumn(lineNumber);\n            },\n            getValueInRange: (range, eol) => {\n                return this._context.viewModel.getValueInRange(range, eol);\n            },\n            getValueLengthInRange: (range, eol) => {\n                return this._context.viewModel.getValueLengthInRange(range, eol);\n            },\n            modifyPosition: (position, offset) => {\n                return this._context.viewModel.modifyPosition(position, offset);\n            }\n        };\n        const textAreaInputHost = {\n            getDataToCopy: () => {\n                const rawTextToCopy = this._context.viewModel.getPlainTextToCopy(this._modelSelections, this._emptySelectionClipboard, platform.isWindows);\n                const newLineCharacter = this._context.viewModel.model.getEOL();\n                const isFromEmptySelection = (this._emptySelectionClipboard && this._modelSelections.length === 1 && this._modelSelections[0].isEmpty());\n                const multicursorText = (Array.isArray(rawTextToCopy) ? rawTextToCopy : null);\n                const text = (Array.isArray(rawTextToCopy) ? rawTextToCopy.join(newLineCharacter) : rawTextToCopy);\n                let html = undefined;\n                let mode = null;\n                if (CopyOptions.forceCopyWithSyntaxHighlighting || (this._copyWithSyntaxHighlighting && text.length < 65536)) {\n                    const richText = this._context.viewModel.getRichTextToCopy(this._modelSelections, this._emptySelectionClipboard);\n                    if (richText) {\n                        html = richText.html;\n                        mode = richText.mode;\n                    }\n                }\n                return {\n                    isFromEmptySelection,\n                    multicursorText,\n                    text,\n                    html,\n                    mode\n                };\n            },\n            getScreenReaderContent: () => {\n                if (this._accessibilitySupport === 1 /* AccessibilitySupport.Disabled */) {\n                    // We know for a fact that a screen reader is not attached\n                    // On OSX, we write the character before the cursor to allow for \"long-press\" composition\n                    // Also on OSX, we write the word before the cursor to allow for the Accessibility Keyboard to give good hints\n                    const selection = this._selections[0];\n                    if (platform.isMacintosh && selection.isEmpty()) {\n                        const position = selection.getStartPosition();\n                        let textBefore = this._getWordBeforePosition(position);\n                        if (textBefore.length === 0) {\n                            textBefore = this._getCharacterBeforePosition(position);\n                        }\n                        if (textBefore.length > 0) {\n                            return new TextAreaState(textBefore, textBefore.length, textBefore.length, Range.fromPositions(position), 0);\n                        }\n                    }\n                    // on macOS, write current selection into textarea will allow system text services pick selected text,\n                    // but we still want to limit the amount of text given Chromium handles very poorly text even of a few\n                    // thousand chars\n                    // (https://github.com/microsoft/vscode/issues/27799)\n                    const LIMIT_CHARS = 500;\n                    if (platform.isMacintosh && !selection.isEmpty() && simpleModel.getValueLengthInRange(selection, 0 /* EndOfLinePreference.TextDefined */) < LIMIT_CHARS) {\n                        const text = simpleModel.getValueInRange(selection, 0 /* EndOfLinePreference.TextDefined */);\n                        return new TextAreaState(text, 0, text.length, selection, 0);\n                    }\n                    // on Safari, document.execCommand('cut') and document.execCommand('copy') will just not work\n                    // if the textarea has no content selected. So if there is an editor selection, ensure something\n                    // is selected in the textarea.\n                    if (browser.isSafari && !selection.isEmpty()) {\n                        const placeholderText = 'vscode-placeholder';\n                        return new TextAreaState(placeholderText, 0, placeholderText.length, null, undefined);\n                    }\n                    return TextAreaState.EMPTY;\n                }\n                if (browser.isAndroid) {\n                    // when tapping in the editor on a word, Android enters composition mode.\n                    // in the `compositionstart` event we cannot clear the textarea, because\n                    // it then forgets to ever send a `compositionend`.\n                    // we therefore only write the current word in the textarea\n                    const selection = this._selections[0];\n                    if (selection.isEmpty()) {\n                        const position = selection.getStartPosition();\n                        const [wordAtPosition, positionOffsetInWord] = this._getAndroidWordAtPosition(position);\n                        if (wordAtPosition.length > 0) {\n                            return new TextAreaState(wordAtPosition, positionOffsetInWord, positionOffsetInWord, Range.fromPositions(position), 0);\n                        }\n                    }\n                    return TextAreaState.EMPTY;\n                }\n                return PagedScreenReaderStrategy.fromEditorSelection(simpleModel, this._selections[0], this._accessibilityPageSize, this._accessibilitySupport === 0 /* AccessibilitySupport.Unknown */);\n            },\n            deduceModelPosition: (viewAnchorPosition, deltaOffset, lineFeedCnt) => {\n                return this._context.viewModel.deduceModelPositionRelativeToViewPosition(viewAnchorPosition, deltaOffset, lineFeedCnt);\n            }\n        };\n        const textAreaWrapper = this._register(new TextAreaWrapper(this.textArea.domNode));\n        this._textAreaInput = this._register(this._instantiationService.createInstance(TextAreaInput, textAreaInputHost, textAreaWrapper, platform.OS, {\n            isAndroid: browser.isAndroid,\n            isChrome: browser.isChrome,\n            isFirefox: browser.isFirefox,\n            isSafari: browser.isSafari,\n        }));\n        this._register(this._textAreaInput.onKeyDown((e) => {\n            this._viewController.emitKeyDown(e);\n        }));\n        this._register(this._textAreaInput.onKeyUp((e) => {\n            this._viewController.emitKeyUp(e);\n        }));\n        this._register(this._textAreaInput.onPaste((e) => {\n            let pasteOnNewLine = false;\n            let multicursorText = null;\n            let mode = null;\n            if (e.metadata) {\n                pasteOnNewLine = (this._emptySelectionClipboard && !!e.metadata.isFromEmptySelection);\n                multicursorText = (typeof e.metadata.multicursorText !== 'undefined' ? e.metadata.multicursorText : null);\n                mode = e.metadata.mode;\n            }\n            this._viewController.paste(e.text, pasteOnNewLine, multicursorText, mode);\n        }));\n        this._register(this._textAreaInput.onCut(() => {\n            this._viewController.cut();\n        }));\n        this._register(this._textAreaInput.onType((e) => {\n            if (e.replacePrevCharCnt || e.replaceNextCharCnt || e.positionDelta) {\n                // must be handled through the new command\n                if (_debugComposition) {\n                    console.log(` => compositionType: <<${e.text}>>, ${e.replacePrevCharCnt}, ${e.replaceNextCharCnt}, ${e.positionDelta}`);\n                }\n                this._viewController.compositionType(e.text, e.replacePrevCharCnt, e.replaceNextCharCnt, e.positionDelta);\n            }\n            else {\n                if (_debugComposition) {\n                    console.log(` => type: <<${e.text}>>`);\n                }\n                this._viewController.type(e.text);\n            }\n        }));\n        this._register(this._textAreaInput.onSelectionChangeRequest((modelSelection) => {\n            this._viewController.setSelection(modelSelection);\n        }));\n        this._register(this._textAreaInput.onCompositionStart((e) => {\n            // The textarea might contain some content when composition starts.\n            //\n            // When we make the textarea visible, it always has a height of 1 line,\n            // so we don't need to worry too much about content on lines above or below\n            // the selection.\n            //\n            // However, the text on the current line needs to be made visible because\n            // some IME methods allow to move to other glyphs on the current line\n            // (by pressing arrow keys).\n            //\n            // (1) The textarea might contain only some parts of the current line,\n            // like the word before the selection. Also, the content inside the textarea\n            // can grow or shrink as composition occurs. We therefore anchor the textarea\n            // in terms of distance to a certain line start and line end.\n            //\n            // (2) Also, we should not make \\t characters visible, because their rendering\n            // inside the <textarea> will not align nicely with our rendering. We therefore\n            // will hide (if necessary) some of the leading text on the current line.\n            const ta = this.textArea.domNode;\n            const modelSelection = this._modelSelections[0];\n            const { distanceToModelLineStart, widthOfHiddenTextBefore } = (() => {\n                // Find the text that is on the current line before the selection\n                const textBeforeSelection = ta.value.substring(0, Math.min(ta.selectionStart, ta.selectionEnd));\n                const lineFeedOffset1 = textBeforeSelection.lastIndexOf('\\n');\n                const lineTextBeforeSelection = textBeforeSelection.substring(lineFeedOffset1 + 1);\n                // We now search to see if we should hide some part of it (if it contains \\t)\n                const tabOffset1 = lineTextBeforeSelection.lastIndexOf('\\t');\n                const desiredVisibleBeforeCharCount = lineTextBeforeSelection.length - tabOffset1 - 1;\n                const startModelPosition = modelSelection.getStartPosition();\n                const visibleBeforeCharCount = Math.min(startModelPosition.column - 1, desiredVisibleBeforeCharCount);\n                const distanceToModelLineStart = startModelPosition.column - 1 - visibleBeforeCharCount;\n                const hiddenLineTextBefore = lineTextBeforeSelection.substring(0, lineTextBeforeSelection.length - visibleBeforeCharCount);\n                const { tabSize } = this._context.viewModel.model.getOptions();\n                const widthOfHiddenTextBefore = measureText(this.textArea.domNode.ownerDocument, hiddenLineTextBefore, this._fontInfo, tabSize);\n                return { distanceToModelLineStart, widthOfHiddenTextBefore };\n            })();\n            const { distanceToModelLineEnd } = (() => {\n                // Find the text that is on the current line after the selection\n                const textAfterSelection = ta.value.substring(Math.max(ta.selectionStart, ta.selectionEnd));\n                const lineFeedOffset2 = textAfterSelection.indexOf('\\n');\n                const lineTextAfterSelection = lineFeedOffset2 === -1 ? textAfterSelection : textAfterSelection.substring(0, lineFeedOffset2);\n                const tabOffset2 = lineTextAfterSelection.indexOf('\\t');\n                const desiredVisibleAfterCharCount = (tabOffset2 === -1 ? lineTextAfterSelection.length : lineTextAfterSelection.length - tabOffset2 - 1);\n                const endModelPosition = modelSelection.getEndPosition();\n                const visibleAfterCharCount = Math.min(this._context.viewModel.model.getLineMaxColumn(endModelPosition.lineNumber) - endModelPosition.column, desiredVisibleAfterCharCount);\n                const distanceToModelLineEnd = this._context.viewModel.model.getLineMaxColumn(endModelPosition.lineNumber) - endModelPosition.column - visibleAfterCharCount;\n                return { distanceToModelLineEnd };\n            })();\n            // Scroll to reveal the location in the editor where composition occurs\n            this._context.viewModel.revealRange('keyboard', true, Range.fromPositions(this._selections[0].getStartPosition()), 0 /* viewEvents.VerticalRevealType.Simple */, 1 /* ScrollType.Immediate */);\n            this._visibleTextArea = new VisibleTextAreaData(this._context, modelSelection.startLineNumber, distanceToModelLineStart, widthOfHiddenTextBefore, distanceToModelLineEnd);\n            // We turn off wrapping if the <textarea> becomes visible for composition\n            this.textArea.setAttribute('wrap', this._textAreaWrapping && !this._visibleTextArea ? 'on' : 'off');\n            this._visibleTextArea.prepareRender(this._visibleRangeProvider);\n            this._render();\n            // Show the textarea\n            this.textArea.setClassName(`inputarea ${MOUSE_CURSOR_TEXT_CSS_CLASS_NAME} ime-input`);\n            this._viewController.compositionStart();\n            this._context.viewModel.onCompositionStart();\n        }));\n        this._register(this._textAreaInput.onCompositionUpdate((e) => {\n            if (!this._visibleTextArea) {\n                return;\n            }\n            this._visibleTextArea.prepareRender(this._visibleRangeProvider);\n            this._render();\n        }));\n        this._register(this._textAreaInput.onCompositionEnd(() => {\n            this._visibleTextArea = null;\n            // We turn on wrapping as necessary if the <textarea> hides after composition\n            this.textArea.setAttribute('wrap', this._textAreaWrapping && !this._visibleTextArea ? 'on' : 'off');\n            this._render();\n            this.textArea.setClassName(`inputarea ${MOUSE_CURSOR_TEXT_CSS_CLASS_NAME}`);\n            this._viewController.compositionEnd();\n            this._context.viewModel.onCompositionEnd();\n        }));\n        this._register(this._textAreaInput.onFocus(() => {\n            this._context.viewModel.setHasFocus(true);\n        }));\n        this._register(this._textAreaInput.onBlur(() => {\n            this._context.viewModel.setHasFocus(false);\n        }));\n        this._register(IME.onDidChange(() => {\n            this._ensureReadOnlyAttribute();\n        }));\n    }\n    writeScreenReaderContent(reason) {\n        this._textAreaInput.writeNativeTextAreaContent(reason);\n    }\n    dispose() {\n        super.dispose();\n    }\n    _getAndroidWordAtPosition(position) {\n        const ANDROID_WORD_SEPARATORS = '`~!@#$%^&*()-=+[{]}\\\\|;:\",.<>/?';\n        const lineContent = this._context.viewModel.getLineContent(position.lineNumber);\n        const wordSeparators = getMapForWordSeparators(ANDROID_WORD_SEPARATORS, []);\n        let goingLeft = true;\n        let startColumn = position.column;\n        let goingRight = true;\n        let endColumn = position.column;\n        let distance = 0;\n        while (distance < 50 && (goingLeft || goingRight)) {\n            if (goingLeft && startColumn <= 1) {\n                goingLeft = false;\n            }\n            if (goingLeft) {\n                const charCode = lineContent.charCodeAt(startColumn - 2);\n                const charClass = wordSeparators.get(charCode);\n                if (charClass !== 0 /* WordCharacterClass.Regular */) {\n                    goingLeft = false;\n                }\n                else {\n                    startColumn--;\n                }\n            }\n            if (goingRight && endColumn > lineContent.length) {\n                goingRight = false;\n            }\n            if (goingRight) {\n                const charCode = lineContent.charCodeAt(endColumn - 1);\n                const charClass = wordSeparators.get(charCode);\n                if (charClass !== 0 /* WordCharacterClass.Regular */) {\n                    goingRight = false;\n                }\n                else {\n                    endColumn++;\n                }\n            }\n            distance++;\n        }\n        return [lineContent.substring(startColumn - 1, endColumn - 1), position.column - startColumn];\n    }\n    _getWordBeforePosition(position) {\n        const lineContent = this._context.viewModel.getLineContent(position.lineNumber);\n        const wordSeparators = getMapForWordSeparators(this._context.configuration.options.get(131 /* EditorOption.wordSeparators */), []);\n        let column = position.column;\n        let distance = 0;\n        while (column > 1) {\n            const charCode = lineContent.charCodeAt(column - 2);\n            const charClass = wordSeparators.get(charCode);\n            if (charClass !== 0 /* WordCharacterClass.Regular */ || distance > 50) {\n                return lineContent.substring(column - 1, position.column - 1);\n            }\n            distance++;\n            column--;\n        }\n        return lineContent.substring(0, position.column - 1);\n    }\n    _getCharacterBeforePosition(position) {\n        if (position.column > 1) {\n            const lineContent = this._context.viewModel.getLineContent(position.lineNumber);\n            const charBefore = lineContent.charAt(position.column - 2);\n            if (!strings.isHighSurrogate(charBefore.charCodeAt(0))) {\n                return charBefore;\n            }\n        }\n        return '';\n    }\n    _getAriaLabel(options) {\n        var _a, _b, _c;\n        const accessibilitySupport = options.get(2 /* EditorOption.accessibilitySupport */);\n        if (accessibilitySupport === 1 /* AccessibilitySupport.Disabled */) {\n            const toggleKeybindingLabel = (_a = this._keybindingService.lookupKeybinding('editor.action.toggleScreenReaderAccessibilityMode')) === null || _a === void 0 ? void 0 : _a.getAriaLabel();\n            const runCommandKeybindingLabel = (_b = this._keybindingService.lookupKeybinding('workbench.action.showCommands')) === null || _b === void 0 ? void 0 : _b.getAriaLabel();\n            const keybindingEditorKeybindingLabel = (_c = this._keybindingService.lookupKeybinding('workbench.action.openGlobalKeybindings')) === null || _c === void 0 ? void 0 : _c.getAriaLabel();\n            const editorNotAccessibleMessage = nls.localize('accessibilityModeOff', \"The editor is not accessible at this time.\");\n            if (toggleKeybindingLabel) {\n                return nls.localize('accessibilityOffAriaLabel', \"{0} To enable screen reader optimized mode, use {1}\", editorNotAccessibleMessage, toggleKeybindingLabel);\n            }\n            else if (runCommandKeybindingLabel) {\n                return nls.localize('accessibilityOffAriaLabelNoKb', \"{0} To enable screen reader optimized mode, open the quick pick with {1} and run the command Toggle Screen Reader Accessibility Mode, which is currently not triggerable via keyboard.\", editorNotAccessibleMessage, runCommandKeybindingLabel);\n            }\n            else if (keybindingEditorKeybindingLabel) {\n                return nls.localize('accessibilityOffAriaLabelNoKbs', \"{0} Please assign a keybinding for the command Toggle Screen Reader Accessibility Mode by accessing the keybindings editor with {1} and run it.\", editorNotAccessibleMessage, keybindingEditorKeybindingLabel);\n            }\n            else {\n                // SOS\n                return editorNotAccessibleMessage;\n            }\n        }\n        return options.get(4 /* EditorOption.ariaLabel */);\n    }\n    _setAccessibilityOptions(options) {\n        this._accessibilitySupport = options.get(2 /* EditorOption.accessibilitySupport */);\n        const accessibilityPageSize = options.get(3 /* EditorOption.accessibilityPageSize */);\n        if (this._accessibilitySupport === 2 /* AccessibilitySupport.Enabled */ && accessibilityPageSize === EditorOptions.accessibilityPageSize.defaultValue) {\n            // If a screen reader is attached and the default value is not set we should automatically increase the page size to 500 for a better experience\n            this._accessibilityPageSize = 500;\n        }\n        else {\n            this._accessibilityPageSize = accessibilityPageSize;\n        }\n        // When wrapping is enabled and a screen reader might be attached,\n        // we will size the textarea to match the width used for wrapping points computation (see `domLineBreaksComputer.ts`).\n        // This is because screen readers will read the text in the textarea and we'd like that the\n        // wrapping points in the textarea match the wrapping points in the editor.\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        const wrappingColumn = layoutInfo.wrappingColumn;\n        if (wrappingColumn !== -1 && this._accessibilitySupport !== 1 /* AccessibilitySupport.Disabled */) {\n            const fontInfo = options.get(50 /* EditorOption.fontInfo */);\n            this._textAreaWrapping = true;\n            this._textAreaWidth = Math.round(wrappingColumn * fontInfo.typicalHalfwidthCharacterWidth);\n        }\n        else {\n            this._textAreaWrapping = false;\n            this._textAreaWidth = (canUseZeroSizeTextarea ? 0 : 1);\n        }\n    }\n    // --- begin event handlers\n    onConfigurationChanged(e) {\n        const options = this._context.configuration.options;\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        this._setAccessibilityOptions(options);\n        this._contentLeft = layoutInfo.contentLeft;\n        this._contentWidth = layoutInfo.contentWidth;\n        this._contentHeight = layoutInfo.height;\n        this._fontInfo = options.get(50 /* EditorOption.fontInfo */);\n        this._lineHeight = options.get(67 /* EditorOption.lineHeight */);\n        this._emptySelectionClipboard = options.get(37 /* EditorOption.emptySelectionClipboard */);\n        this._copyWithSyntaxHighlighting = options.get(25 /* EditorOption.copyWithSyntaxHighlighting */);\n        this.textArea.setAttribute('wrap', this._textAreaWrapping && !this._visibleTextArea ? 'on' : 'off');\n        const { tabSize } = this._context.viewModel.model.getOptions();\n        this.textArea.domNode.style.tabSize = `${tabSize * this._fontInfo.spaceWidth}px`;\n        this.textArea.setAttribute('aria-label', this._getAriaLabel(options));\n        this.textArea.setAttribute('aria-required', options.get(5 /* EditorOption.ariaRequired */) ? 'true' : 'false');\n        this.textArea.setAttribute('tabindex', String(options.get(124 /* EditorOption.tabIndex */)));\n        if (e.hasChanged(34 /* EditorOption.domReadOnly */) || e.hasChanged(91 /* EditorOption.readOnly */)) {\n            this._ensureReadOnlyAttribute();\n        }\n        if (e.hasChanged(2 /* EditorOption.accessibilitySupport */)) {\n            this._textAreaInput.writeNativeTextAreaContent('strategy changed');\n        }\n        return true;\n    }\n    onCursorStateChanged(e) {\n        this._selections = e.selections.slice(0);\n        this._modelSelections = e.modelSelections.slice(0);\n        // We must update the <textarea> synchronously, otherwise long press IME on macos breaks.\n        // See https://github.com/microsoft/vscode/issues/165821\n        this._textAreaInput.writeNativeTextAreaContent('selection changed');\n        return true;\n    }\n    onDecorationsChanged(e) {\n        // true for inline decorations that can end up relayouting text\n        return true;\n    }\n    onFlushed(e) {\n        return true;\n    }\n    onLinesChanged(e) {\n        return true;\n    }\n    onLinesDeleted(e) {\n        return true;\n    }\n    onLinesInserted(e) {\n        return true;\n    }\n    onScrollChanged(e) {\n        this._scrollLeft = e.scrollLeft;\n        this._scrollTop = e.scrollTop;\n        return true;\n    }\n    onZonesChanged(e) {\n        return true;\n    }\n    // --- end event handlers\n    // --- begin view API\n    isFocused() {\n        return this._textAreaInput.isFocused();\n    }\n    focusTextArea() {\n        this._textAreaInput.focusTextArea();\n    }\n    getLastRenderData() {\n        return this._lastRenderPosition;\n    }\n    setAriaOptions(options) {\n        if (options.activeDescendant) {\n            this.textArea.setAttribute('aria-haspopup', 'true');\n            this.textArea.setAttribute('aria-autocomplete', 'list');\n            this.textArea.setAttribute('aria-activedescendant', options.activeDescendant);\n        }\n        else {\n            this.textArea.setAttribute('aria-haspopup', 'false');\n            this.textArea.setAttribute('aria-autocomplete', 'both');\n            this.textArea.removeAttribute('aria-activedescendant');\n        }\n        if (options.role) {\n            this.textArea.setAttribute('role', options.role);\n        }\n    }\n    // --- end view API\n    _ensureReadOnlyAttribute() {\n        const options = this._context.configuration.options;\n        // When someone requests to disable IME, we set the \"readonly\" attribute on the <textarea>.\n        // This will prevent composition.\n        const useReadOnly = !IME.enabled || (options.get(34 /* EditorOption.domReadOnly */) && options.get(91 /* EditorOption.readOnly */));\n        if (useReadOnly) {\n            this.textArea.setAttribute('readonly', 'true');\n        }\n        else {\n            this.textArea.removeAttribute('readonly');\n        }\n    }\n    prepareRender(ctx) {\n        var _a;\n        this._primaryCursorPosition = new Position(this._selections[0].positionLineNumber, this._selections[0].positionColumn);\n        this._primaryCursorVisibleRange = ctx.visibleRangeForPosition(this._primaryCursorPosition);\n        (_a = this._visibleTextArea) === null || _a === void 0 ? void 0 : _a.prepareRender(ctx);\n    }\n    render(ctx) {\n        this._textAreaInput.writeNativeTextAreaContent('render');\n        this._render();\n    }\n    _render() {\n        var _a;\n        if (this._visibleTextArea) {\n            // The text area is visible for composition reasons\n            const visibleStart = this._visibleTextArea.visibleTextareaStart;\n            const visibleEnd = this._visibleTextArea.visibleTextareaEnd;\n            const startPosition = this._visibleTextArea.startPosition;\n            const endPosition = this._visibleTextArea.endPosition;\n            if (startPosition && endPosition && visibleStart && visibleEnd && visibleEnd.left >= this._scrollLeft && visibleStart.left <= this._scrollLeft + this._contentWidth) {\n                const top = (this._context.viewLayout.getVerticalOffsetForLineNumber(this._primaryCursorPosition.lineNumber) - this._scrollTop);\n                const lineCount = this._newlinecount(this.textArea.domNode.value.substr(0, this.textArea.domNode.selectionStart));\n                let scrollLeft = this._visibleTextArea.widthOfHiddenLineTextBefore;\n                let left = (this._contentLeft + visibleStart.left - this._scrollLeft);\n                // See https://github.com/microsoft/vscode/issues/141725#issuecomment-1050670841\n                // Here we are adding +1 to avoid flickering that might be caused by having a width that is too small.\n                // This could be caused by rounding errors that might only show up with certain font families.\n                // In other words, a pixel might be lost when doing something like\n                //      `Math.round(end) - Math.round(start)`\n                // vs\n                //      `Math.round(end - start)`\n                let width = visibleEnd.left - visibleStart.left + 1;\n                if (left < this._contentLeft) {\n                    // the textarea would be rendered on top of the margin,\n                    // so reduce its width. We use the same technique as\n                    // for hiding text before\n                    const delta = (this._contentLeft - left);\n                    left += delta;\n                    scrollLeft += delta;\n                    width -= delta;\n                }\n                if (width > this._contentWidth) {\n                    // the textarea would be wider than the content width,\n                    // so reduce its width.\n                    width = this._contentWidth;\n                }\n                // Try to render the textarea with the color/font style to match the text under it\n                const viewLineData = this._context.viewModel.getViewLineData(startPosition.lineNumber);\n                const startTokenIndex = viewLineData.tokens.findTokenIndexAtOffset(startPosition.column - 1);\n                const endTokenIndex = viewLineData.tokens.findTokenIndexAtOffset(endPosition.column - 1);\n                const textareaSpansSingleToken = (startTokenIndex === endTokenIndex);\n                const presentation = this._visibleTextArea.definePresentation((textareaSpansSingleToken ? viewLineData.tokens.getPresentation(startTokenIndex) : null));\n                this.textArea.domNode.scrollTop = lineCount * this._lineHeight;\n                this.textArea.domNode.scrollLeft = scrollLeft;\n                this._doRender({\n                    lastRenderPosition: null,\n                    top: top,\n                    left: left,\n                    width: width,\n                    height: this._lineHeight,\n                    useCover: false,\n                    color: (TokenizationRegistry.getColorMap() || [])[presentation.foreground],\n                    italic: presentation.italic,\n                    bold: presentation.bold,\n                    underline: presentation.underline,\n                    strikethrough: presentation.strikethrough\n                });\n            }\n            return;\n        }\n        if (!this._primaryCursorVisibleRange) {\n            // The primary cursor is outside the viewport => place textarea to the top left\n            this._renderAtTopLeft();\n            return;\n        }\n        const left = this._contentLeft + this._primaryCursorVisibleRange.left - this._scrollLeft;\n        if (left < this._contentLeft || left > this._contentLeft + this._contentWidth) {\n            // cursor is outside the viewport\n            this._renderAtTopLeft();\n            return;\n        }\n        const top = this._context.viewLayout.getVerticalOffsetForLineNumber(this._selections[0].positionLineNumber) - this._scrollTop;\n        if (top < 0 || top > this._contentHeight) {\n            // cursor is outside the viewport\n            this._renderAtTopLeft();\n            return;\n        }\n        // The primary cursor is in the viewport (at least vertically) => place textarea on the cursor\n        if (platform.isMacintosh || this._accessibilitySupport === 2 /* AccessibilitySupport.Enabled */) {\n            // For the popup emoji input, we will make the text area as high as the line height\n            // We will also make the fontSize and lineHeight the correct dimensions to help with the placement of these pickers\n            this._doRender({\n                lastRenderPosition: this._primaryCursorPosition,\n                top,\n                left: this._textAreaWrapping ? this._contentLeft : left,\n                width: this._textAreaWidth,\n                height: this._lineHeight,\n                useCover: false\n            });\n            // In case the textarea contains a word, we're going to try to align the textarea's cursor\n            // with our cursor by scrolling the textarea as much as possible\n            this.textArea.domNode.scrollLeft = this._primaryCursorVisibleRange.left;\n            const lineCount = (_a = this._textAreaInput.textAreaState.newlineCountBeforeSelection) !== null && _a !== void 0 ? _a : this._newlinecount(this.textArea.domNode.value.substr(0, this.textArea.domNode.selectionStart));\n            this.textArea.domNode.scrollTop = lineCount * this._lineHeight;\n            return;\n        }\n        this._doRender({\n            lastRenderPosition: this._primaryCursorPosition,\n            top: top,\n            left: this._textAreaWrapping ? this._contentLeft : left,\n            width: this._textAreaWidth,\n            height: (canUseZeroSizeTextarea ? 0 : 1),\n            useCover: false\n        });\n    }\n    _newlinecount(text) {\n        let result = 0;\n        let startIndex = -1;\n        do {\n            startIndex = text.indexOf('\\n', startIndex + 1);\n            if (startIndex === -1) {\n                break;\n            }\n            result++;\n        } while (true);\n        return result;\n    }\n    _renderAtTopLeft() {\n        // (in WebKit the textarea is 1px by 1px because it cannot handle input to a 0x0 textarea)\n        // specifically, when doing Korean IME, setting the textarea to 0x0 breaks IME badly.\n        this._doRender({\n            lastRenderPosition: null,\n            top: 0,\n            left: 0,\n            width: this._textAreaWidth,\n            height: (canUseZeroSizeTextarea ? 0 : 1),\n            useCover: true\n        });\n    }\n    _doRender(renderData) {\n        this._lastRenderPosition = renderData.lastRenderPosition;\n        const ta = this.textArea;\n        const tac = this.textAreaCover;\n        applyFontInfo(ta, this._fontInfo);\n        ta.setTop(renderData.top);\n        ta.setLeft(renderData.left);\n        ta.setWidth(renderData.width);\n        ta.setHeight(renderData.height);\n        ta.setColor(renderData.color ? Color.Format.CSS.formatHex(renderData.color) : '');\n        ta.setFontStyle(renderData.italic ? 'italic' : '');\n        if (renderData.bold) {\n            // fontWeight is also set by `applyFontInfo`, so only overwrite it if necessary\n            ta.setFontWeight('bold');\n        }\n        ta.setTextDecoration(`${renderData.underline ? ' underline' : ''}${renderData.strikethrough ? ' line-through' : ''}`);\n        tac.setTop(renderData.useCover ? renderData.top : 0);\n        tac.setLeft(renderData.useCover ? renderData.left : 0);\n        tac.setWidth(renderData.useCover ? renderData.width : 0);\n        tac.setHeight(renderData.useCover ? renderData.height : 0);\n        const options = this._context.configuration.options;\n        if (options.get(57 /* EditorOption.glyphMargin */)) {\n            tac.setClassName('monaco-editor-background textAreaCover ' + Margin.OUTER_CLASS_NAME);\n        }\n        else {\n            if (options.get(68 /* EditorOption.lineNumbers */).renderType !== 0 /* RenderLineNumbersType.Off */) {\n                tac.setClassName('monaco-editor-background textAreaCover ' + LineNumbersOverlay.CLASS_NAME);\n            }\n            else {\n                tac.setClassName('monaco-editor-background textAreaCover');\n            }\n        }\n    }\n};\nTextAreaHandler = __decorate([\n    __param(3, IKeybindingService),\n    __param(4, IInstantiationService)\n], TextAreaHandler);\nexport { TextAreaHandler };\nfunction measureText(targetDocument, text, fontInfo, tabSize) {\n    if (text.length === 0) {\n        return 0;\n    }\n    const container = targetDocument.createElement('div');\n    container.style.position = 'absolute';\n    container.style.top = '-50000px';\n    container.style.width = '50000px';\n    const regularDomNode = targetDocument.createElement('span');\n    applyFontInfo(regularDomNode, fontInfo);\n    regularDomNode.style.whiteSpace = 'pre'; // just like the textarea\n    regularDomNode.style.tabSize = `${tabSize * fontInfo.spaceWidth}px`; // just like the textarea\n    regularDomNode.append(text);\n    container.appendChild(regularDomNode);\n    targetDocument.body.appendChild(container);\n    const res = regularDomNode.offsetWidth;\n    targetDocument.body.removeChild(container);\n    return res;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/controller/textAreaInput.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport * as browser from '../../../base/browser/browser.js';\nimport * as dom from '../../../base/browser/dom.js';\nimport { DomEmitter } from '../../../base/browser/event.js';\nimport { StandardKeyboardEvent } from '../../../base/browser/keyboardEvent.js';\nimport { inputLatency } from '../../../base/browser/performance.js';\nimport { RunOnceScheduler } from '../../../base/common/async.js';\nimport { Emitter, Event } from '../../../base/common/event.js';\nimport { Disposable, MutableDisposable } from '../../../base/common/lifecycle.js';\nimport { Mimes } from '../../../base/common/mime.js';\nimport * as strings from '../../../base/common/strings.js';\nimport { TextAreaState, _debugComposition } from './textAreaState.js';\nimport { Selection } from '../../common/core/selection.js';\nimport { IAccessibilityService } from '../../../platform/accessibility/common/accessibility.js';\nimport { ILogService } from '../../../platform/log/common/log.js';\nexport var TextAreaSyntethicEvents;\n(function (TextAreaSyntethicEvents) {\n    TextAreaSyntethicEvents.Tap = '-monaco-textarea-synthetic-tap';\n})(TextAreaSyntethicEvents || (TextAreaSyntethicEvents = {}));\nexport const CopyOptions = {\n    forceCopyWithSyntaxHighlighting: false\n};\n/**\n * Every time we write to the clipboard, we record a bit of extra metadata here.\n * Every time we read from the cipboard, if the text matches our last written text,\n * we can fetch the previous metadata.\n */\nexport class InMemoryClipboardMetadataManager {\n    constructor() {\n        this._lastState = null;\n    }\n    set(lastCopiedValue, data) {\n        this._lastState = { lastCopiedValue, data };\n    }\n    get(pastedText) {\n        if (this._lastState && this._lastState.lastCopiedValue === pastedText) {\n            // match!\n            return this._lastState.data;\n        }\n        this._lastState = null;\n        return null;\n    }\n}\nInMemoryClipboardMetadataManager.INSTANCE = new InMemoryClipboardMetadataManager();\nclass CompositionContext {\n    constructor() {\n        this._lastTypeTextLength = 0;\n    }\n    handleCompositionUpdate(text) {\n        text = text || '';\n        const typeInput = {\n            text: text,\n            replacePrevCharCnt: this._lastTypeTextLength,\n            replaceNextCharCnt: 0,\n            positionDelta: 0\n        };\n        this._lastTypeTextLength = text.length;\n        return typeInput;\n    }\n}\n/**\n * Writes screen reader content to the textarea and is able to analyze its input events to generate:\n *  - onCut\n *  - onPaste\n *  - onType\n *\n * Composition events are generated for presentation purposes (composition input is reflected in onType).\n */\nlet TextAreaInput = class TextAreaInput extends Disposable {\n    get textAreaState() {\n        return this._textAreaState;\n    }\n    constructor(_host, _textArea, _OS, _browser, _accessibilityService, _logService) {\n        super();\n        this._host = _host;\n        this._textArea = _textArea;\n        this._OS = _OS;\n        this._browser = _browser;\n        this._accessibilityService = _accessibilityService;\n        this._logService = _logService;\n        this._onFocus = this._register(new Emitter());\n        this.onFocus = this._onFocus.event;\n        this._onBlur = this._register(new Emitter());\n        this.onBlur = this._onBlur.event;\n        this._onKeyDown = this._register(new Emitter());\n        this.onKeyDown = this._onKeyDown.event;\n        this._onKeyUp = this._register(new Emitter());\n        this.onKeyUp = this._onKeyUp.event;\n        this._onCut = this._register(new Emitter());\n        this.onCut = this._onCut.event;\n        this._onPaste = this._register(new Emitter());\n        this.onPaste = this._onPaste.event;\n        this._onType = this._register(new Emitter());\n        this.onType = this._onType.event;\n        this._onCompositionStart = this._register(new Emitter());\n        this.onCompositionStart = this._onCompositionStart.event;\n        this._onCompositionUpdate = this._register(new Emitter());\n        this.onCompositionUpdate = this._onCompositionUpdate.event;\n        this._onCompositionEnd = this._register(new Emitter());\n        this.onCompositionEnd = this._onCompositionEnd.event;\n        this._onSelectionChangeRequest = this._register(new Emitter());\n        this.onSelectionChangeRequest = this._onSelectionChangeRequest.event;\n        this._asyncFocusGainWriteScreenReaderContent = this._register(new MutableDisposable());\n        this._asyncTriggerCut = this._register(new RunOnceScheduler(() => this._onCut.fire(), 0));\n        this._textAreaState = TextAreaState.EMPTY;\n        this._selectionChangeListener = null;\n        if (this._accessibilityService.isScreenReaderOptimized()) {\n            this.writeNativeTextAreaContent('ctor');\n        }\n        this._register(Event.runAndSubscribe(this._accessibilityService.onDidChangeScreenReaderOptimized, () => {\n            if (this._accessibilityService.isScreenReaderOptimized() && !this._asyncFocusGainWriteScreenReaderContent.value) {\n                this._asyncFocusGainWriteScreenReaderContent.value = this._register(new RunOnceScheduler(() => this.writeNativeTextAreaContent('asyncFocusGain'), 0));\n            }\n            else {\n                this._asyncFocusGainWriteScreenReaderContent.clear();\n            }\n        }));\n        this._hasFocus = false;\n        this._currentComposition = null;\n        let lastKeyDown = null;\n        this._register(this._textArea.onKeyDown((_e) => {\n            const e = new StandardKeyboardEvent(_e);\n            if (e.keyCode === 114 /* KeyCode.KEY_IN_COMPOSITION */\n                || (this._currentComposition && e.keyCode === 1 /* KeyCode.Backspace */)) {\n                // Stop propagation for keyDown events if the IME is processing key input\n                e.stopPropagation();\n            }\n            if (e.equals(9 /* KeyCode.Escape */)) {\n                // Prevent default always for `Esc`, otherwise it will generate a keypress\n                // See https://msdn.microsoft.com/en-us/library/ie/ms536939(v=vs.85).aspx\n                e.preventDefault();\n            }\n            lastKeyDown = e;\n            this._onKeyDown.fire(e);\n        }));\n        this._register(this._textArea.onKeyUp((_e) => {\n            const e = new StandardKeyboardEvent(_e);\n            this._onKeyUp.fire(e);\n        }));\n        this._register(this._textArea.onCompositionStart((e) => {\n            if (_debugComposition) {\n                console.log(`[compositionstart]`, e);\n            }\n            const currentComposition = new CompositionContext();\n            if (this._currentComposition) {\n                // simply reset the composition context\n                this._currentComposition = currentComposition;\n                return;\n            }\n            this._currentComposition = currentComposition;\n            if (this._OS === 2 /* OperatingSystem.Macintosh */\n                && lastKeyDown\n                && lastKeyDown.equals(114 /* KeyCode.KEY_IN_COMPOSITION */)\n                && this._textAreaState.selectionStart === this._textAreaState.selectionEnd\n                && this._textAreaState.selectionStart > 0\n                && this._textAreaState.value.substr(this._textAreaState.selectionStart - 1, 1) === e.data\n                && (lastKeyDown.code === 'ArrowRight' || lastKeyDown.code === 'ArrowLeft')) {\n                // Handling long press case on Chromium/Safari macOS + arrow key => pretend the character was selected\n                if (_debugComposition) {\n                    console.log(`[compositionstart] Handling long press case on macOS + arrow key`, e);\n                }\n                // Pretend the previous character was composed (in order to get it removed by subsequent compositionupdate events)\n                currentComposition.handleCompositionUpdate('x');\n                this._onCompositionStart.fire({ data: e.data });\n                return;\n            }\n            if (this._browser.isAndroid) {\n                // when tapping on the editor, Android enters composition mode to edit the current word\n                // so we cannot clear the textarea on Android and we must pretend the current word was selected\n                this._onCompositionStart.fire({ data: e.data });\n                return;\n            }\n            this._onCompositionStart.fire({ data: e.data });\n        }));\n        this._register(this._textArea.onCompositionUpdate((e) => {\n            if (_debugComposition) {\n                console.log(`[compositionupdate]`, e);\n            }\n            const currentComposition = this._currentComposition;\n            if (!currentComposition) {\n                // should not be possible to receive a 'compositionupdate' without a 'compositionstart'\n                return;\n            }\n            if (this._browser.isAndroid) {\n                // On Android, the data sent with the composition update event is unusable.\n                // For example, if the cursor is in the middle of a word like Mic|osoft\n                // and Microsoft is chosen from the keyboard's suggestions, the e.data will contain \"Microsoft\".\n                // This is not really usable because it doesn't tell us where the edit began and where it ended.\n                const newState = TextAreaState.readFromTextArea(this._textArea, this._textAreaState);\n                const typeInput = TextAreaState.deduceAndroidCompositionInput(this._textAreaState, newState);\n                this._textAreaState = newState;\n                this._onType.fire(typeInput);\n                this._onCompositionUpdate.fire(e);\n                return;\n            }\n            const typeInput = currentComposition.handleCompositionUpdate(e.data);\n            this._textAreaState = TextAreaState.readFromTextArea(this._textArea, this._textAreaState);\n            this._onType.fire(typeInput);\n            this._onCompositionUpdate.fire(e);\n        }));\n        this._register(this._textArea.onCompositionEnd((e) => {\n            if (_debugComposition) {\n                console.log(`[compositionend]`, e);\n            }\n            const currentComposition = this._currentComposition;\n            if (!currentComposition) {\n                // https://github.com/microsoft/monaco-editor/issues/1663\n                // On iOS 13.2, Chinese system IME randomly trigger an additional compositionend event with empty data\n                return;\n            }\n            this._currentComposition = null;\n            if (this._browser.isAndroid) {\n                // On Android, the data sent with the composition update event is unusable.\n                // For example, if the cursor is in the middle of a word like Mic|osoft\n                // and Microsoft is chosen from the keyboard's suggestions, the e.data will contain \"Microsoft\".\n                // This is not really usable because it doesn't tell us where the edit began and where it ended.\n                const newState = TextAreaState.readFromTextArea(this._textArea, this._textAreaState);\n                const typeInput = TextAreaState.deduceAndroidCompositionInput(this._textAreaState, newState);\n                this._textAreaState = newState;\n                this._onType.fire(typeInput);\n                this._onCompositionEnd.fire();\n                return;\n            }\n            const typeInput = currentComposition.handleCompositionUpdate(e.data);\n            this._textAreaState = TextAreaState.readFromTextArea(this._textArea, this._textAreaState);\n            this._onType.fire(typeInput);\n            this._onCompositionEnd.fire();\n        }));\n        this._register(this._textArea.onInput((e) => {\n            if (_debugComposition) {\n                console.log(`[input]`, e);\n            }\n            // Pretend here we touched the text area, as the `input` event will most likely\n            // result in a `selectionchange` event which we want to ignore\n            this._textArea.setIgnoreSelectionChangeTime('received input event');\n            if (this._currentComposition) {\n                return;\n            }\n            const newState = TextAreaState.readFromTextArea(this._textArea, this._textAreaState);\n            const typeInput = TextAreaState.deduceInput(this._textAreaState, newState, /*couldBeEmojiInput*/ this._OS === 2 /* OperatingSystem.Macintosh */);\n            if (typeInput.replacePrevCharCnt === 0 && typeInput.text.length === 1) {\n                // one character was typed\n                if (strings.isHighSurrogate(typeInput.text.charCodeAt(0))\n                    || typeInput.text.charCodeAt(0) === 0x7f /* Delete */) {\n                    // Ignore invalid input but keep it around for next time\n                    return;\n                }\n            }\n            this._textAreaState = newState;\n            if (typeInput.text !== ''\n                || typeInput.replacePrevCharCnt !== 0\n                || typeInput.replaceNextCharCnt !== 0\n                || typeInput.positionDelta !== 0) {\n                this._onType.fire(typeInput);\n            }\n        }));\n        // --- Clipboard operations\n        this._register(this._textArea.onCut((e) => {\n            // Pretend here we touched the text area, as the `cut` event will most likely\n            // result in a `selectionchange` event which we want to ignore\n            this._textArea.setIgnoreSelectionChangeTime('received cut event');\n            this._ensureClipboardGetsEditorSelection(e);\n            this._asyncTriggerCut.schedule();\n        }));\n        this._register(this._textArea.onCopy((e) => {\n            this._ensureClipboardGetsEditorSelection(e);\n        }));\n        this._register(this._textArea.onPaste((e) => {\n            // Pretend here we touched the text area, as the `paste` event will most likely\n            // result in a `selectionchange` event which we want to ignore\n            this._textArea.setIgnoreSelectionChangeTime('received paste event');\n            e.preventDefault();\n            if (!e.clipboardData) {\n                return;\n            }\n            let [text, metadata] = ClipboardEventUtils.getTextData(e.clipboardData);\n            if (!text) {\n                return;\n            }\n            // try the in-memory store\n            metadata = metadata || InMemoryClipboardMetadataManager.INSTANCE.get(text);\n            this._onPaste.fire({\n                text: text,\n                metadata: metadata\n            });\n        }));\n        this._register(this._textArea.onFocus(() => {\n            const hadFocus = this._hasFocus;\n            this._setHasFocus(true);\n            if (this._accessibilityService.isScreenReaderOptimized() && this._browser.isSafari && !hadFocus && this._hasFocus) {\n                // When \"tabbing into\" the textarea, immediately after dispatching the 'focus' event,\n                // Safari will always move the selection at offset 0 in the textarea\n                if (!this._asyncFocusGainWriteScreenReaderContent.value) {\n                    this._asyncFocusGainWriteScreenReaderContent.value = new RunOnceScheduler(() => this.writeNativeTextAreaContent('asyncFocusGain'), 0);\n                }\n                this._asyncFocusGainWriteScreenReaderContent.value.schedule();\n            }\n        }));\n        this._register(this._textArea.onBlur(() => {\n            if (this._currentComposition) {\n                // See https://github.com/microsoft/vscode/issues/112621\n                // where compositionend is not triggered when the editor\n                // is taken off-dom during a composition\n                // Clear the flag to be able to write to the textarea\n                this._currentComposition = null;\n                // Clear the textarea to avoid an unwanted cursor type\n                this.writeNativeTextAreaContent('blurWithoutCompositionEnd');\n                // Fire artificial composition end\n                this._onCompositionEnd.fire();\n            }\n            this._setHasFocus(false);\n        }));\n        this._register(this._textArea.onSyntheticTap(() => {\n            if (this._browser.isAndroid && this._currentComposition) {\n                // on Android, tapping does not cancel the current composition, so the\n                // textarea is stuck showing the old composition\n                // Clear the flag to be able to write to the textarea\n                this._currentComposition = null;\n                // Clear the textarea to avoid an unwanted cursor type\n                this.writeNativeTextAreaContent('tapWithoutCompositionEnd');\n                // Fire artificial composition end\n                this._onCompositionEnd.fire();\n            }\n        }));\n    }\n    _installSelectionChangeListener() {\n        // See https://github.com/microsoft/vscode/issues/27216 and https://github.com/microsoft/vscode/issues/98256\n        // When using a Braille display, it is possible for users to reposition the\n        // system caret. This is reflected in Chrome as a `selectionchange` event.\n        //\n        // The `selectionchange` event appears to be emitted under numerous other circumstances,\n        // so it is quite a challenge to distinguish a `selectionchange` coming in from a user\n        // using a Braille display from all the other cases.\n        //\n        // The problems with the `selectionchange` event are:\n        //  * the event is emitted when the textarea is focused programmatically -- textarea.focus()\n        //  * the event is emitted when the selection is changed in the textarea programmatically -- textarea.setSelectionRange(...)\n        //  * the event is emitted when the value of the textarea is changed programmatically -- textarea.value = '...'\n        //  * the event is emitted when tabbing into the textarea\n        //  * the event is emitted asynchronously (sometimes with a delay as high as a few tens of ms)\n        //  * the event sometimes comes in bursts for a single logical textarea operation\n        // `selectionchange` events often come multiple times for a single logical change\n        // so throttle multiple `selectionchange` events that burst in a short period of time.\n        let previousSelectionChangeEventTime = 0;\n        return dom.addDisposableListener(this._textArea.ownerDocument, 'selectionchange', (e) => {\n            inputLatency.onSelectionChange();\n            if (!this._hasFocus) {\n                return;\n            }\n            if (this._currentComposition) {\n                return;\n            }\n            if (!this._browser.isChrome) {\n                // Support only for Chrome until testing happens on other browsers\n                return;\n            }\n            const now = Date.now();\n            const delta1 = now - previousSelectionChangeEventTime;\n            previousSelectionChangeEventTime = now;\n            if (delta1 < 5) {\n                // received another `selectionchange` event within 5ms of the previous `selectionchange` event\n                // => ignore it\n                return;\n            }\n            const delta2 = now - this._textArea.getIgnoreSelectionChangeTime();\n            this._textArea.resetSelectionChangeTime();\n            if (delta2 < 100) {\n                // received a `selectionchange` event within 100ms since we touched the textarea\n                // => ignore it, since we caused it\n                return;\n            }\n            if (!this._textAreaState.selection) {\n                // Cannot correlate a position in the textarea with a position in the editor...\n                return;\n            }\n            const newValue = this._textArea.getValue();\n            if (this._textAreaState.value !== newValue) {\n                // Cannot correlate a position in the textarea with a position in the editor...\n                return;\n            }\n            const newSelectionStart = this._textArea.getSelectionStart();\n            const newSelectionEnd = this._textArea.getSelectionEnd();\n            if (this._textAreaState.selectionStart === newSelectionStart && this._textAreaState.selectionEnd === newSelectionEnd) {\n                // Nothing to do...\n                return;\n            }\n            const _newSelectionStartPosition = this._textAreaState.deduceEditorPosition(newSelectionStart);\n            const newSelectionStartPosition = this._host.deduceModelPosition(_newSelectionStartPosition[0], _newSelectionStartPosition[1], _newSelectionStartPosition[2]);\n            const _newSelectionEndPosition = this._textAreaState.deduceEditorPosition(newSelectionEnd);\n            const newSelectionEndPosition = this._host.deduceModelPosition(_newSelectionEndPosition[0], _newSelectionEndPosition[1], _newSelectionEndPosition[2]);\n            const newSelection = new Selection(newSelectionStartPosition.lineNumber, newSelectionStartPosition.column, newSelectionEndPosition.lineNumber, newSelectionEndPosition.column);\n            this._onSelectionChangeRequest.fire(newSelection);\n        });\n    }\n    dispose() {\n        super.dispose();\n        if (this._selectionChangeListener) {\n            this._selectionChangeListener.dispose();\n            this._selectionChangeListener = null;\n        }\n    }\n    focusTextArea() {\n        // Setting this._hasFocus and writing the screen reader content\n        // will result in a focus() and setSelectionRange() in the textarea\n        this._setHasFocus(true);\n        // If the editor is off DOM, focus cannot be really set, so let's double check that we have managed to set the focus\n        this.refreshFocusState();\n    }\n    isFocused() {\n        return this._hasFocus;\n    }\n    refreshFocusState() {\n        this._setHasFocus(this._textArea.hasFocus());\n    }\n    _setHasFocus(newHasFocus) {\n        if (this._hasFocus === newHasFocus) {\n            // no change\n            return;\n        }\n        this._hasFocus = newHasFocus;\n        if (this._selectionChangeListener) {\n            this._selectionChangeListener.dispose();\n            this._selectionChangeListener = null;\n        }\n        if (this._hasFocus) {\n            this._selectionChangeListener = this._installSelectionChangeListener();\n        }\n        if (this._hasFocus) {\n            this.writeNativeTextAreaContent('focusgain');\n        }\n        if (this._hasFocus) {\n            this._onFocus.fire();\n        }\n        else {\n            this._onBlur.fire();\n        }\n    }\n    _setAndWriteTextAreaState(reason, textAreaState) {\n        if (!this._hasFocus) {\n            textAreaState = textAreaState.collapseSelection();\n        }\n        textAreaState.writeToTextArea(reason, this._textArea, this._hasFocus);\n        this._textAreaState = textAreaState;\n    }\n    writeNativeTextAreaContent(reason) {\n        if ((!this._accessibilityService.isScreenReaderOptimized() && reason === 'render') || this._currentComposition) {\n            // Do not write to the text on render unless a screen reader is being used #192278\n            // Do not write to the text area when doing composition\n            return;\n        }\n        this._logService.trace(`writeTextAreaState(reason: ${reason})`);\n        this._setAndWriteTextAreaState(reason, this._host.getScreenReaderContent());\n    }\n    _ensureClipboardGetsEditorSelection(e) {\n        const dataToCopy = this._host.getDataToCopy();\n        const storedMetadata = {\n            version: 1,\n            isFromEmptySelection: dataToCopy.isFromEmptySelection,\n            multicursorText: dataToCopy.multicursorText,\n            mode: dataToCopy.mode\n        };\n        InMemoryClipboardMetadataManager.INSTANCE.set(\n        // When writing \"LINE\\r\\n\" to the clipboard and then pasting,\n        // Firefox pastes \"LINE\\n\", so let's work around this quirk\n        (this._browser.isFirefox ? dataToCopy.text.replace(/\\r\\n/g, '\\n') : dataToCopy.text), storedMetadata);\n        e.preventDefault();\n        if (e.clipboardData) {\n            ClipboardEventUtils.setTextData(e.clipboardData, dataToCopy.text, dataToCopy.html, storedMetadata);\n        }\n    }\n};\nTextAreaInput = __decorate([\n    __param(4, IAccessibilityService),\n    __param(5, ILogService)\n], TextAreaInput);\nexport { TextAreaInput };\nexport const ClipboardEventUtils = {\n    getTextData(clipboardData) {\n        const text = clipboardData.getData(Mimes.text);\n        let metadata = null;\n        const rawmetadata = clipboardData.getData('vscode-editor-data');\n        if (typeof rawmetadata === 'string') {\n            try {\n                metadata = JSON.parse(rawmetadata);\n                if (metadata.version !== 1) {\n                    metadata = null;\n                }\n            }\n            catch (err) {\n                // no problem!\n            }\n        }\n        if (text.length === 0 && metadata === null && clipboardData.files.length > 0) {\n            // no textual data pasted, generate text from file names\n            const files = Array.prototype.slice.call(clipboardData.files, 0);\n            return [files.map(file => file.name).join('\\n'), null];\n        }\n        return [text, metadata];\n    },\n    setTextData(clipboardData, text, html, metadata) {\n        clipboardData.setData(Mimes.text, text);\n        if (typeof html === 'string') {\n            clipboardData.setData('text/html', html);\n        }\n        clipboardData.setData('vscode-editor-data', JSON.stringify(metadata));\n    }\n};\nexport class TextAreaWrapper extends Disposable {\n    get ownerDocument() {\n        return this._actual.ownerDocument;\n    }\n    constructor(_actual) {\n        super();\n        this._actual = _actual;\n        this.onKeyDown = this._register(new DomEmitter(this._actual, 'keydown')).event;\n        this.onKeyUp = this._register(new DomEmitter(this._actual, 'keyup')).event;\n        this.onCompositionStart = this._register(new DomEmitter(this._actual, 'compositionstart')).event;\n        this.onCompositionUpdate = this._register(new DomEmitter(this._actual, 'compositionupdate')).event;\n        this.onCompositionEnd = this._register(new DomEmitter(this._actual, 'compositionend')).event;\n        this.onBeforeInput = this._register(new DomEmitter(this._actual, 'beforeinput')).event;\n        this.onInput = this._register(new DomEmitter(this._actual, 'input')).event;\n        this.onCut = this._register(new DomEmitter(this._actual, 'cut')).event;\n        this.onCopy = this._register(new DomEmitter(this._actual, 'copy')).event;\n        this.onPaste = this._register(new DomEmitter(this._actual, 'paste')).event;\n        this.onFocus = this._register(new DomEmitter(this._actual, 'focus')).event;\n        this.onBlur = this._register(new DomEmitter(this._actual, 'blur')).event;\n        this._onSyntheticTap = this._register(new Emitter());\n        this.onSyntheticTap = this._onSyntheticTap.event;\n        this._ignoreSelectionChangeTime = 0;\n        this._register(this.onKeyDown(() => inputLatency.onKeyDown()));\n        this._register(this.onBeforeInput(() => inputLatency.onBeforeInput()));\n        this._register(this.onInput(() => inputLatency.onInput()));\n        this._register(this.onKeyUp(() => inputLatency.onKeyUp()));\n        this._register(dom.addDisposableListener(this._actual, TextAreaSyntethicEvents.Tap, () => this._onSyntheticTap.fire()));\n    }\n    hasFocus() {\n        const shadowRoot = dom.getShadowRoot(this._actual);\n        if (shadowRoot) {\n            return shadowRoot.activeElement === this._actual;\n        }\n        else if (this._actual.isConnected) {\n            return dom.getActiveElement() === this._actual;\n        }\n        else {\n            return false;\n        }\n    }\n    setIgnoreSelectionChangeTime(reason) {\n        this._ignoreSelectionChangeTime = Date.now();\n    }\n    getIgnoreSelectionChangeTime() {\n        return this._ignoreSelectionChangeTime;\n    }\n    resetSelectionChangeTime() {\n        this._ignoreSelectionChangeTime = 0;\n    }\n    getValue() {\n        // console.log('current value: ' + this._textArea.value);\n        return this._actual.value;\n    }\n    setValue(reason, value) {\n        const textArea = this._actual;\n        if (textArea.value === value) {\n            // No change\n            return;\n        }\n        // console.log('reason: ' + reason + ', current value: ' + textArea.value + ' => new value: ' + value);\n        this.setIgnoreSelectionChangeTime('setValue');\n        textArea.value = value;\n    }\n    getSelectionStart() {\n        return this._actual.selectionDirection === 'backward' ? this._actual.selectionEnd : this._actual.selectionStart;\n    }\n    getSelectionEnd() {\n        return this._actual.selectionDirection === 'backward' ? this._actual.selectionStart : this._actual.selectionEnd;\n    }\n    setSelectionRange(reason, selectionStart, selectionEnd) {\n        const textArea = this._actual;\n        let activeElement = null;\n        const shadowRoot = dom.getShadowRoot(textArea);\n        if (shadowRoot) {\n            activeElement = shadowRoot.activeElement;\n        }\n        else {\n            activeElement = dom.getActiveElement();\n        }\n        const activeWindow = dom.getWindow(activeElement);\n        const currentIsFocused = (activeElement === textArea);\n        const currentSelectionStart = textArea.selectionStart;\n        const currentSelectionEnd = textArea.selectionEnd;\n        if (currentIsFocused && currentSelectionStart === selectionStart && currentSelectionEnd === selectionEnd) {\n            // No change\n            // Firefox iframe bug https://github.com/microsoft/monaco-editor/issues/643#issuecomment-367871377\n            if (browser.isFirefox && activeWindow.parent !== activeWindow) {\n                textArea.focus();\n            }\n            return;\n        }\n        // console.log('reason: ' + reason + ', setSelectionRange: ' + selectionStart + ' -> ' + selectionEnd);\n        if (currentIsFocused) {\n            // No need to focus, only need to change the selection range\n            this.setIgnoreSelectionChangeTime('setSelectionRange');\n            textArea.setSelectionRange(selectionStart, selectionEnd);\n            if (browser.isFirefox && activeWindow.parent !== activeWindow) {\n                textArea.focus();\n            }\n            return;\n        }\n        // If the focus is outside the textarea, browsers will try really hard to reveal the textarea.\n        // Here, we try to undo the browser's desperate reveal.\n        try {\n            const scrollState = dom.saveParentsScrollTop(textArea);\n            this.setIgnoreSelectionChangeTime('setSelectionRange');\n            textArea.focus();\n            textArea.setSelectionRange(selectionStart, selectionEnd);\n            dom.restoreParentsScrollTop(textArea, scrollState);\n        }\n        catch (e) {\n            // Sometimes IE throws when setting selection (e.g. textarea is off-DOM)\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/controller/textAreaState.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../base/common/strings.js';\nimport { Range } from '../../common/core/range.js';\nexport const _debugComposition = false;\nexport class TextAreaState {\n    constructor(value, \n    /** the offset where selection starts inside `value` */\n    selectionStart, \n    /** the offset where selection ends inside `value` */\n    selectionEnd, \n    /** the editor range in the view coordinate system that matches the selection inside `value` */\n    selection, \n    /** the visible line count (wrapped, not necessarily matching \\n characters) for the text in `value` before `selectionStart` */\n    newlineCountBeforeSelection) {\n        this.value = value;\n        this.selectionStart = selectionStart;\n        this.selectionEnd = selectionEnd;\n        this.selection = selection;\n        this.newlineCountBeforeSelection = newlineCountBeforeSelection;\n    }\n    toString() {\n        return `[ <${this.value}>, selectionStart: ${this.selectionStart}, selectionEnd: ${this.selectionEnd}]`;\n    }\n    static readFromTextArea(textArea, previousState) {\n        const value = textArea.getValue();\n        const selectionStart = textArea.getSelectionStart();\n        const selectionEnd = textArea.getSelectionEnd();\n        let newlineCountBeforeSelection = undefined;\n        if (previousState) {\n            const valueBeforeSelectionStart = value.substring(0, selectionStart);\n            const previousValueBeforeSelectionStart = previousState.value.substring(0, previousState.selectionStart);\n            if (valueBeforeSelectionStart === previousValueBeforeSelectionStart) {\n                newlineCountBeforeSelection = previousState.newlineCountBeforeSelection;\n            }\n        }\n        return new TextAreaState(value, selectionStart, selectionEnd, null, newlineCountBeforeSelection);\n    }\n    collapseSelection() {\n        if (this.selectionStart === this.value.length) {\n            return this;\n        }\n        return new TextAreaState(this.value, this.value.length, this.value.length, null, undefined);\n    }\n    writeToTextArea(reason, textArea, select) {\n        if (_debugComposition) {\n            console.log(`writeToTextArea ${reason}: ${this.toString()}`);\n        }\n        textArea.setValue(reason, this.value);\n        if (select) {\n            textArea.setSelectionRange(reason, this.selectionStart, this.selectionEnd);\n        }\n    }\n    deduceEditorPosition(offset) {\n        var _a, _b, _c, _d, _e, _f, _g, _h;\n        if (offset <= this.selectionStart) {\n            const str = this.value.substring(offset, this.selectionStart);\n            return this._finishDeduceEditorPosition((_b = (_a = this.selection) === null || _a === void 0 ? void 0 : _a.getStartPosition()) !== null && _b !== void 0 ? _b : null, str, -1);\n        }\n        if (offset >= this.selectionEnd) {\n            const str = this.value.substring(this.selectionEnd, offset);\n            return this._finishDeduceEditorPosition((_d = (_c = this.selection) === null || _c === void 0 ? void 0 : _c.getEndPosition()) !== null && _d !== void 0 ? _d : null, str, 1);\n        }\n        const str1 = this.value.substring(this.selectionStart, offset);\n        if (str1.indexOf(String.fromCharCode(8230)) === -1) {\n            return this._finishDeduceEditorPosition((_f = (_e = this.selection) === null || _e === void 0 ? void 0 : _e.getStartPosition()) !== null && _f !== void 0 ? _f : null, str1, 1);\n        }\n        const str2 = this.value.substring(offset, this.selectionEnd);\n        return this._finishDeduceEditorPosition((_h = (_g = this.selection) === null || _g === void 0 ? void 0 : _g.getEndPosition()) !== null && _h !== void 0 ? _h : null, str2, -1);\n    }\n    _finishDeduceEditorPosition(anchor, deltaText, signum) {\n        let lineFeedCnt = 0;\n        let lastLineFeedIndex = -1;\n        while ((lastLineFeedIndex = deltaText.indexOf('\\n', lastLineFeedIndex + 1)) !== -1) {\n            lineFeedCnt++;\n        }\n        return [anchor, signum * deltaText.length, lineFeedCnt];\n    }\n    static deduceInput(previousState, currentState, couldBeEmojiInput) {\n        if (!previousState) {\n            // This is the EMPTY state\n            return {\n                text: '',\n                replacePrevCharCnt: 0,\n                replaceNextCharCnt: 0,\n                positionDelta: 0\n            };\n        }\n        if (_debugComposition) {\n            console.log('------------------------deduceInput');\n            console.log(`PREVIOUS STATE: ${previousState.toString()}`);\n            console.log(`CURRENT STATE: ${currentState.toString()}`);\n        }\n        const prefixLength = Math.min(strings.commonPrefixLength(previousState.value, currentState.value), previousState.selectionStart, currentState.selectionStart);\n        const suffixLength = Math.min(strings.commonSuffixLength(previousState.value, currentState.value), previousState.value.length - previousState.selectionEnd, currentState.value.length - currentState.selectionEnd);\n        const previousValue = previousState.value.substring(prefixLength, previousState.value.length - suffixLength);\n        const currentValue = currentState.value.substring(prefixLength, currentState.value.length - suffixLength);\n        const previousSelectionStart = previousState.selectionStart - prefixLength;\n        const previousSelectionEnd = previousState.selectionEnd - prefixLength;\n        const currentSelectionStart = currentState.selectionStart - prefixLength;\n        const currentSelectionEnd = currentState.selectionEnd - prefixLength;\n        if (_debugComposition) {\n            console.log(`AFTER DIFFING PREVIOUS STATE: <${previousValue}>, selectionStart: ${previousSelectionStart}, selectionEnd: ${previousSelectionEnd}`);\n            console.log(`AFTER DIFFING CURRENT STATE: <${currentValue}>, selectionStart: ${currentSelectionStart}, selectionEnd: ${currentSelectionEnd}`);\n        }\n        if (currentSelectionStart === currentSelectionEnd) {\n            // no current selection\n            const replacePreviousCharacters = (previousState.selectionStart - prefixLength);\n            if (_debugComposition) {\n                console.log(`REMOVE PREVIOUS: ${replacePreviousCharacters} chars`);\n            }\n            return {\n                text: currentValue,\n                replacePrevCharCnt: replacePreviousCharacters,\n                replaceNextCharCnt: 0,\n                positionDelta: 0\n            };\n        }\n        // there is a current selection => composition case\n        const replacePreviousCharacters = previousSelectionEnd - previousSelectionStart;\n        return {\n            text: currentValue,\n            replacePrevCharCnt: replacePreviousCharacters,\n            replaceNextCharCnt: 0,\n            positionDelta: 0\n        };\n    }\n    static deduceAndroidCompositionInput(previousState, currentState) {\n        if (!previousState) {\n            // This is the EMPTY state\n            return {\n                text: '',\n                replacePrevCharCnt: 0,\n                replaceNextCharCnt: 0,\n                positionDelta: 0\n            };\n        }\n        if (_debugComposition) {\n            console.log('------------------------deduceAndroidCompositionInput');\n            console.log(`PREVIOUS STATE: ${previousState.toString()}`);\n            console.log(`CURRENT STATE: ${currentState.toString()}`);\n        }\n        if (previousState.value === currentState.value) {\n            return {\n                text: '',\n                replacePrevCharCnt: 0,\n                replaceNextCharCnt: 0,\n                positionDelta: currentState.selectionEnd - previousState.selectionEnd\n            };\n        }\n        const prefixLength = Math.min(strings.commonPrefixLength(previousState.value, currentState.value), previousState.selectionEnd);\n        const suffixLength = Math.min(strings.commonSuffixLength(previousState.value, currentState.value), previousState.value.length - previousState.selectionEnd);\n        const previousValue = previousState.value.substring(prefixLength, previousState.value.length - suffixLength);\n        const currentValue = currentState.value.substring(prefixLength, currentState.value.length - suffixLength);\n        const previousSelectionStart = previousState.selectionStart - prefixLength;\n        const previousSelectionEnd = previousState.selectionEnd - prefixLength;\n        const currentSelectionStart = currentState.selectionStart - prefixLength;\n        const currentSelectionEnd = currentState.selectionEnd - prefixLength;\n        if (_debugComposition) {\n            console.log(`AFTER DIFFING PREVIOUS STATE: <${previousValue}>, selectionStart: ${previousSelectionStart}, selectionEnd: ${previousSelectionEnd}`);\n            console.log(`AFTER DIFFING CURRENT STATE: <${currentValue}>, selectionStart: ${currentSelectionStart}, selectionEnd: ${currentSelectionEnd}`);\n        }\n        return {\n            text: currentValue,\n            replacePrevCharCnt: previousSelectionEnd,\n            replaceNextCharCnt: previousValue.length - previousSelectionEnd,\n            positionDelta: currentSelectionEnd - currentValue.length\n        };\n    }\n}\nTextAreaState.EMPTY = new TextAreaState('', 0, 0, null, undefined);\nexport class PagedScreenReaderStrategy {\n    static _getPageOfLine(lineNumber, linesPerPage) {\n        return Math.floor((lineNumber - 1) / linesPerPage);\n    }\n    static _getRangeForPage(page, linesPerPage) {\n        const offset = page * linesPerPage;\n        const startLineNumber = offset + 1;\n        const endLineNumber = offset + linesPerPage;\n        return new Range(startLineNumber, 1, endLineNumber + 1, 1);\n    }\n    static fromEditorSelection(model, selection, linesPerPage, trimLongText) {\n        // Chromium handles very poorly text even of a few thousand chars\n        // Cut text to avoid stalling the entire UI\n        const LIMIT_CHARS = 500;\n        const selectionStartPage = PagedScreenReaderStrategy._getPageOfLine(selection.startLineNumber, linesPerPage);\n        const selectionStartPageRange = PagedScreenReaderStrategy._getRangeForPage(selectionStartPage, linesPerPage);\n        const selectionEndPage = PagedScreenReaderStrategy._getPageOfLine(selection.endLineNumber, linesPerPage);\n        const selectionEndPageRange = PagedScreenReaderStrategy._getRangeForPage(selectionEndPage, linesPerPage);\n        let pretextRange = selectionStartPageRange.intersectRanges(new Range(1, 1, selection.startLineNumber, selection.startColumn));\n        if (trimLongText && model.getValueLengthInRange(pretextRange, 1 /* EndOfLinePreference.LF */) > LIMIT_CHARS) {\n            const pretextStart = model.modifyPosition(pretextRange.getEndPosition(), -LIMIT_CHARS);\n            pretextRange = Range.fromPositions(pretextStart, pretextRange.getEndPosition());\n        }\n        const pretext = model.getValueInRange(pretextRange, 1 /* EndOfLinePreference.LF */);\n        const lastLine = model.getLineCount();\n        const lastLineMaxColumn = model.getLineMaxColumn(lastLine);\n        let posttextRange = selectionEndPageRange.intersectRanges(new Range(selection.endLineNumber, selection.endColumn, lastLine, lastLineMaxColumn));\n        if (trimLongText && model.getValueLengthInRange(posttextRange, 1 /* EndOfLinePreference.LF */) > LIMIT_CHARS) {\n            const posttextEnd = model.modifyPosition(posttextRange.getStartPosition(), LIMIT_CHARS);\n            posttextRange = Range.fromPositions(posttextRange.getStartPosition(), posttextEnd);\n        }\n        const posttext = model.getValueInRange(posttextRange, 1 /* EndOfLinePreference.LF */);\n        let text;\n        if (selectionStartPage === selectionEndPage || selectionStartPage + 1 === selectionEndPage) {\n            // take full selection\n            text = model.getValueInRange(selection, 1 /* EndOfLinePreference.LF */);\n        }\n        else {\n            const selectionRange1 = selectionStartPageRange.intersectRanges(selection);\n            const selectionRange2 = selectionEndPageRange.intersectRanges(selection);\n            text = (model.getValueInRange(selectionRange1, 1 /* EndOfLinePreference.LF */)\n                + String.fromCharCode(8230)\n                + model.getValueInRange(selectionRange2, 1 /* EndOfLinePreference.LF */));\n        }\n        if (trimLongText && text.length > 2 * LIMIT_CHARS) {\n            text = text.substring(0, LIMIT_CHARS) + String.fromCharCode(8230) + text.substring(text.length - LIMIT_CHARS, text.length);\n        }\n        return new TextAreaState(pretext + text + posttext, pretext.length, pretext.length + text.length, selection, pretextRange.endLineNumber - pretextRange.startLineNumber);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/coreCommands.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/coreCommands.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../nls.js';\nimport { isFirefox } from '../../base/browser/browser.js';\nimport * as types from '../../base/common/types.js';\nimport { status } from '../../base/browser/ui/aria/aria.js';\nimport { Command, EditorCommand, registerEditorCommand, UndoCommand, RedoCommand, SelectAllCommand } from './editorExtensions.js';\nimport { ICodeEditorService } from './services/codeEditorService.js';\nimport { ColumnSelection } from '../common/cursor/cursorColumnSelection.js';\nimport { CursorState } from '../common/cursorCommon.js';\nimport { DeleteOperations } from '../common/cursor/cursorDeleteOperations.js';\nimport { CursorMove as CursorMove_, CursorMoveCommands } from '../common/cursor/cursorMoveCommands.js';\nimport { TypeOperations } from '../common/cursor/cursorTypeOperations.js';\nimport { Position } from '../common/core/position.js';\nimport { Range } from '../common/core/range.js';\nimport { EditorContextKeys } from '../common/editorContextKeys.js';\nimport { ContextKeyExpr } from '../../platform/contextkey/common/contextkey.js';\nimport { KeybindingsRegistry } from '../../platform/keybinding/common/keybindingsRegistry.js';\nimport { getActiveElement } from '../../base/browser/dom.js';\nconst CORE_WEIGHT = 0 /* KeybindingWeight.EditorCore */;\nexport class CoreEditorCommand extends EditorCommand {\n    runEditorCommand(accessor, editor, args) {\n        const viewModel = editor._getViewModel();\n        if (!viewModel) {\n            // the editor has no view => has no cursors\n            return;\n        }\n        this.runCoreEditorCommand(viewModel, args || {});\n    }\n}\nexport var EditorScroll_;\n(function (EditorScroll_) {\n    const isEditorScrollArgs = function (arg) {\n        if (!types.isObject(arg)) {\n            return false;\n        }\n        const scrollArg = arg;\n        if (!types.isString(scrollArg.to)) {\n            return false;\n        }\n        if (!types.isUndefined(scrollArg.by) && !types.isString(scrollArg.by)) {\n            return false;\n        }\n        if (!types.isUndefined(scrollArg.value) && !types.isNumber(scrollArg.value)) {\n            return false;\n        }\n        if (!types.isUndefined(scrollArg.revealCursor) && !types.isBoolean(scrollArg.revealCursor)) {\n            return false;\n        }\n        return true;\n    };\n    EditorScroll_.metadata = {\n        description: 'Scroll editor in the given direction',\n        args: [\n            {\n                name: 'Editor scroll argument object',\n                description: `Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'to': A mandatory direction value.\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t\t\t'up', 'down'\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t\t* 'by': Unit to move. Default is computed based on 'to' value.\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t\t\t'line', 'wrappedLine', 'page', 'halfPage', 'editor'\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t\t* 'value': Number of units to move. Default is '1'.\n\t\t\t\t\t* 'revealCursor': If 'true' reveals the cursor if it is outside view port.\n\t\t\t\t`,\n                constraint: isEditorScrollArgs,\n                schema: {\n                    'type': 'object',\n                    'required': ['to'],\n                    'properties': {\n                        'to': {\n                            'type': 'string',\n                            'enum': ['up', 'down']\n                        },\n                        'by': {\n                            'type': 'string',\n                            'enum': ['line', 'wrappedLine', 'page', 'halfPage', 'editor']\n                        },\n                        'value': {\n                            'type': 'number',\n                            'default': 1\n                        },\n                        'revealCursor': {\n                            'type': 'boolean',\n                        }\n                    }\n                }\n            }\n        ]\n    };\n    /**\n     * Directions in the view for editor scroll command.\n     */\n    EditorScroll_.RawDirection = {\n        Up: 'up',\n        Right: 'right',\n        Down: 'down',\n        Left: 'left'\n    };\n    /**\n     * Units for editor scroll 'by' argument\n     */\n    EditorScroll_.RawUnit = {\n        Line: 'line',\n        WrappedLine: 'wrappedLine',\n        Page: 'page',\n        HalfPage: 'halfPage',\n        Editor: 'editor',\n        Column: 'column'\n    };\n    function parse(args) {\n        let direction;\n        switch (args.to) {\n            case EditorScroll_.RawDirection.Up:\n                direction = 1 /* Direction.Up */;\n                break;\n            case EditorScroll_.RawDirection.Right:\n                direction = 2 /* Direction.Right */;\n                break;\n            case EditorScroll_.RawDirection.Down:\n                direction = 3 /* Direction.Down */;\n                break;\n            case EditorScroll_.RawDirection.Left:\n                direction = 4 /* Direction.Left */;\n                break;\n            default:\n                // Illegal arguments\n                return null;\n        }\n        let unit;\n        switch (args.by) {\n            case EditorScroll_.RawUnit.Line:\n                unit = 1 /* Unit.Line */;\n                break;\n            case EditorScroll_.RawUnit.WrappedLine:\n                unit = 2 /* Unit.WrappedLine */;\n                break;\n            case EditorScroll_.RawUnit.Page:\n                unit = 3 /* Unit.Page */;\n                break;\n            case EditorScroll_.RawUnit.HalfPage:\n                unit = 4 /* Unit.HalfPage */;\n                break;\n            case EditorScroll_.RawUnit.Editor:\n                unit = 5 /* Unit.Editor */;\n                break;\n            case EditorScroll_.RawUnit.Column:\n                unit = 6 /* Unit.Column */;\n                break;\n            default:\n                unit = 2 /* Unit.WrappedLine */;\n        }\n        const value = Math.floor(args.value || 1);\n        const revealCursor = !!args.revealCursor;\n        return {\n            direction: direction,\n            unit: unit,\n            value: value,\n            revealCursor: revealCursor,\n            select: (!!args.select)\n        };\n    }\n    EditorScroll_.parse = parse;\n})(EditorScroll_ || (EditorScroll_ = {}));\nexport var RevealLine_;\n(function (RevealLine_) {\n    const isRevealLineArgs = function (arg) {\n        if (!types.isObject(arg)) {\n            return false;\n        }\n        const reveaLineArg = arg;\n        if (!types.isNumber(reveaLineArg.lineNumber) && !types.isString(reveaLineArg.lineNumber)) {\n            return false;\n        }\n        if (!types.isUndefined(reveaLineArg.at) && !types.isString(reveaLineArg.at)) {\n            return false;\n        }\n        return true;\n    };\n    RevealLine_.metadata = {\n        description: 'Reveal the given line at the given logical position',\n        args: [\n            {\n                name: 'Reveal line argument object',\n                description: `Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'lineNumber': A mandatory line number value.\n\t\t\t\t\t* 'at': Logical position at which line has to be revealed.\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t\t\t'top', 'center', 'bottom'\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t`,\n                constraint: isRevealLineArgs,\n                schema: {\n                    'type': 'object',\n                    'required': ['lineNumber'],\n                    'properties': {\n                        'lineNumber': {\n                            'type': ['number', 'string'],\n                        },\n                        'at': {\n                            'type': 'string',\n                            'enum': ['top', 'center', 'bottom']\n                        }\n                    }\n                }\n            }\n        ]\n    };\n    /**\n     * Values for reveal line 'at' argument\n     */\n    RevealLine_.RawAtArgument = {\n        Top: 'top',\n        Center: 'center',\n        Bottom: 'bottom'\n    };\n})(RevealLine_ || (RevealLine_ = {}));\nclass EditorOrNativeTextInputCommand {\n    constructor(target) {\n        // 1. handle case when focus is in editor.\n        target.addImplementation(10000, 'code-editor', (accessor, args) => {\n            // Only if editor text focus (i.e. not if editor has widget focus).\n            const focusedEditor = accessor.get(ICodeEditorService).getFocusedCodeEditor();\n            if (focusedEditor && focusedEditor.hasTextFocus()) {\n                return this._runEditorCommand(accessor, focusedEditor, args);\n            }\n            return false;\n        });\n        // 2. handle case when focus is in some other `input` / `textarea`.\n        target.addImplementation(1000, 'generic-dom-input-textarea', (accessor, args) => {\n            // Only if focused on an element that allows for entering text\n            const activeElement = getActiveElement();\n            if (activeElement && ['input', 'textarea'].indexOf(activeElement.tagName.toLowerCase()) >= 0) {\n                this.runDOMCommand(activeElement);\n                return true;\n            }\n            return false;\n        });\n        // 3. (default) handle case when focus is somewhere else.\n        target.addImplementation(0, 'generic-dom', (accessor, args) => {\n            // Redirecting to active editor\n            const activeEditor = accessor.get(ICodeEditorService).getActiveCodeEditor();\n            if (activeEditor) {\n                activeEditor.focus();\n                return this._runEditorCommand(accessor, activeEditor, args);\n            }\n            return false;\n        });\n    }\n    _runEditorCommand(accessor, editor, args) {\n        const result = this.runEditorCommand(accessor, editor, args);\n        if (result) {\n            return result;\n        }\n        return true;\n    }\n}\nexport var CoreNavigationCommands;\n(function (CoreNavigationCommands) {\n    class BaseMoveToCommand extends CoreEditorCommand {\n        constructor(opts) {\n            super(opts);\n            this._inSelectionMode = opts.inSelectionMode;\n        }\n        runCoreEditorCommand(viewModel, args) {\n            if (!args.position) {\n                return;\n            }\n            viewModel.model.pushStackElement();\n            const cursorStateChanged = viewModel.setCursorStates(args.source, 3 /* CursorChangeReason.Explicit */, [\n                CursorMoveCommands.moveTo(viewModel, viewModel.getPrimaryCursorState(), this._inSelectionMode, args.position, args.viewPosition)\n            ]);\n            if (cursorStateChanged && args.revealType !== 2 /* NavigationCommandRevealType.None */) {\n                viewModel.revealAllCursors(args.source, true, true);\n            }\n        }\n    }\n    CoreNavigationCommands.MoveTo = registerEditorCommand(new BaseMoveToCommand({\n        id: '_moveTo',\n        inSelectionMode: false,\n        precondition: undefined\n    }));\n    CoreNavigationCommands.MoveToSelect = registerEditorCommand(new BaseMoveToCommand({\n        id: '_moveToSelect',\n        inSelectionMode: true,\n        precondition: undefined\n    }));\n    class ColumnSelectCommand extends CoreEditorCommand {\n        runCoreEditorCommand(viewModel, args) {\n            viewModel.model.pushStackElement();\n            const result = this._getColumnSelectResult(viewModel, viewModel.getPrimaryCursorState(), viewModel.getCursorColumnSelectData(), args);\n            if (result === null) {\n                // invalid arguments\n                return;\n            }\n            viewModel.setCursorStates(args.source, 3 /* CursorChangeReason.Explicit */, result.viewStates.map((viewState) => CursorState.fromViewState(viewState)));\n            viewModel.setCursorColumnSelectData({\n                isReal: true,\n                fromViewLineNumber: result.fromLineNumber,\n                fromViewVisualColumn: result.fromVisualColumn,\n                toViewLineNumber: result.toLineNumber,\n                toViewVisualColumn: result.toVisualColumn\n            });\n            if (result.reversed) {\n                viewModel.revealTopMostCursor(args.source);\n            }\n            else {\n                viewModel.revealBottomMostCursor(args.source);\n            }\n        }\n    }\n    CoreNavigationCommands.ColumnSelect = registerEditorCommand(new class extends ColumnSelectCommand {\n        constructor() {\n            super({\n                id: 'columnSelect',\n                precondition: undefined\n            });\n        }\n        _getColumnSelectResult(viewModel, primary, prevColumnSelectData, args) {\n            if (typeof args.position === 'undefined' || typeof args.viewPosition === 'undefined' || typeof args.mouseColumn === 'undefined') {\n                return null;\n            }\n            // validate `args`\n            const validatedPosition = viewModel.model.validatePosition(args.position);\n            const validatedViewPosition = viewModel.coordinatesConverter.validateViewPosition(new Position(args.viewPosition.lineNumber, args.viewPosition.column), validatedPosition);\n            const fromViewLineNumber = args.doColumnSelect ? prevColumnSelectData.fromViewLineNumber : validatedViewPosition.lineNumber;\n            const fromViewVisualColumn = args.doColumnSelect ? prevColumnSelectData.fromViewVisualColumn : args.mouseColumn - 1;\n            return ColumnSelection.columnSelect(viewModel.cursorConfig, viewModel, fromViewLineNumber, fromViewVisualColumn, validatedViewPosition.lineNumber, args.mouseColumn - 1);\n        }\n    });\n    CoreNavigationCommands.CursorColumnSelectLeft = registerEditorCommand(new class extends ColumnSelectCommand {\n        constructor() {\n            super({\n                id: 'cursorColumnSelectLeft',\n                precondition: undefined,\n                kbOpts: {\n                    weight: CORE_WEIGHT,\n                    kbExpr: EditorContextKeys.textInputFocus,\n                    primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 512 /* KeyMod.Alt */ | 15 /* KeyCode.LeftArrow */,\n                    linux: { primary: 0 }\n                }\n            });\n        }\n        _getColumnSelectResult(viewModel, primary, prevColumnSelectData, args) {\n            return ColumnSelection.columnSelectLeft(viewModel.cursorConfig, viewModel, prevColumnSelectData);\n        }\n    });\n    CoreNavigationCommands.CursorColumnSelectRight = registerEditorCommand(new class extends ColumnSelectCommand {\n        constructor() {\n            super({\n                id: 'cursorColumnSelectRight',\n                precondition: undefined,\n                kbOpts: {\n                    weight: CORE_WEIGHT,\n                    kbExpr: EditorContextKeys.textInputFocus,\n                    primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 512 /* KeyMod.Alt */ | 17 /* KeyCode.RightArrow */,\n                    linux: { primary: 0 }\n                }\n            });\n        }\n        _getColumnSelectResult(viewModel, primary, prevColumnSelectData, args) {\n            return ColumnSelection.columnSelectRight(viewModel.cursorConfig, viewModel, prevColumnSelectData);\n        }\n    });\n    class ColumnSelectUpCommand extends ColumnSelectCommand {\n        constructor(opts) {\n            super(opts);\n            this._isPaged = opts.isPaged;\n        }\n        _getColumnSelectResult(viewModel, primary, prevColumnSelectData, args) {\n            return ColumnSelection.columnSelectUp(viewModel.cursorConfig, viewModel, prevColumnSelectData, this._isPaged);\n        }\n    }\n    CoreNavigationCommands.CursorColumnSelectUp = registerEditorCommand(new ColumnSelectUpCommand({\n        isPaged: false,\n        id: 'cursorColumnSelectUp',\n        precondition: undefined,\n        kbOpts: {\n            weight: CORE_WEIGHT,\n            kbExpr: EditorContextKeys.textInputFocus,\n            primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 512 /* KeyMod.Alt */ | 16 /* KeyCode.UpArrow */,\n            linux: { primary: 0 }\n        }\n    }));\n    CoreNavigationCommands.CursorColumnSelectPageUp = registerEditorCommand(new ColumnSelectUpCommand({\n        isPaged: true,\n        id: 'cursorColumnSelectPageUp',\n        precondition: undefined,\n        kbOpts: {\n            weight: CORE_WEIGHT,\n            kbExpr: EditorContextKeys.textInputFocus,\n            primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 512 /* KeyMod.Alt */ | 11 /* KeyCode.PageUp */,\n            linux: { primary: 0 }\n        }\n    }));\n    class ColumnSelectDownCommand extends ColumnSelectCommand {\n        constructor(opts) {\n            super(opts);\n            this._isPaged = opts.isPaged;\n        }\n        _getColumnSelectResult(viewModel, primary, prevColumnSelectData, args) {\n            return ColumnSelection.columnSelectDown(viewModel.cursorConfig, viewModel, prevColumnSelectData, this._isPaged);\n        }\n    }\n    CoreNavigationCommands.CursorColumnSelectDown = registerEditorCommand(new ColumnSelectDownCommand({\n        isPaged: false,\n        id: 'cursorColumnSelectDown',\n        precondition: undefined,\n        kbOpts: {\n            weight: CORE_WEIGHT,\n            kbExpr: EditorContextKeys.textInputFocus,\n            primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 512 /* KeyMod.Alt */ | 18 /* KeyCode.DownArrow */,\n            linux: { primary: 0 }\n        }\n    }));\n    CoreNavigationCommands.CursorColumnSelectPageDown = registerEditorCommand(new ColumnSelectDownCommand({\n        isPaged: true,\n        id: 'cursorColumnSelectPageDown',\n        precondition: undefined,\n        kbOpts: {\n            weight: CORE_WEIGHT,\n            kbExpr: EditorContextKeys.textInputFocus,\n            primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 512 /* KeyMod.Alt */ | 12 /* KeyCode.PageDown */,\n            linux: { primary: 0 }\n        }\n    }));\n    class CursorMoveImpl extends CoreEditorCommand {\n        constructor() {\n            super({\n                id: 'cursorMove',\n                precondition: undefined,\n                metadata: CursorMove_.metadata\n            });\n        }\n        runCoreEditorCommand(viewModel, args) {\n            const parsed = CursorMove_.parse(args);\n            if (!parsed) {\n                // illegal arguments\n                return;\n            }\n            this._runCursorMove(viewModel, args.source, parsed);\n        }\n        _runCursorMove(viewModel, source, args) {\n            viewModel.model.pushStackElement();\n            viewModel.setCursorStates(source, 3 /* CursorChangeReason.Explicit */, CursorMoveImpl._move(viewModel, viewModel.getCursorStates(), args));\n            viewModel.revealAllCursors(source, true);\n        }\n        static _move(viewModel, cursors, args) {\n            const inSelectionMode = args.select;\n            const value = args.value;\n            switch (args.direction) {\n                case 0 /* CursorMove_.Direction.Left */:\n                case 1 /* CursorMove_.Direction.Right */:\n                case 2 /* CursorMove_.Direction.Up */:\n                case 3 /* CursorMove_.Direction.Down */:\n                case 4 /* CursorMove_.Direction.PrevBlankLine */:\n                case 5 /* CursorMove_.Direction.NextBlankLine */:\n                case 6 /* CursorMove_.Direction.WrappedLineStart */:\n                case 7 /* CursorMove_.Direction.WrappedLineFirstNonWhitespaceCharacter */:\n                case 8 /* CursorMove_.Direction.WrappedLineColumnCenter */:\n                case 9 /* CursorMove_.Direction.WrappedLineEnd */:\n                case 10 /* CursorMove_.Direction.WrappedLineLastNonWhitespaceCharacter */:\n                    return CursorMoveCommands.simpleMove(viewModel, cursors, args.direction, inSelectionMode, value, args.unit);\n                case 11 /* CursorMove_.Direction.ViewPortTop */:\n                case 13 /* CursorMove_.Direction.ViewPortBottom */:\n                case 12 /* CursorMove_.Direction.ViewPortCenter */:\n                case 14 /* CursorMove_.Direction.ViewPortIfOutside */:\n                    return CursorMoveCommands.viewportMove(viewModel, cursors, args.direction, inSelectionMode, value);\n                default:\n                    return null;\n            }\n        }\n    }\n    CoreNavigationCommands.CursorMoveImpl = CursorMoveImpl;\n    CoreNavigationCommands.CursorMove = registerEditorCommand(new CursorMoveImpl());\n    class CursorMoveBasedCommand extends CoreEditorCommand {\n        constructor(opts) {\n            super(opts);\n            this._staticArgs = opts.args;\n        }\n        runCoreEditorCommand(viewModel, dynamicArgs) {\n            let args = this._staticArgs;\n            if (this._staticArgs.value === -1 /* Constants.PAGE_SIZE_MARKER */) {\n                // -1 is a marker for page size\n                args = {\n                    direction: this._staticArgs.direction,\n                    unit: this._staticArgs.unit,\n                    select: this._staticArgs.select,\n                    value: dynamicArgs.pageSize || viewModel.cursorConfig.pageSize\n                };\n            }\n            viewModel.model.pushStackElement();\n            viewModel.setCursorStates(dynamicArgs.source, 3 /* CursorChangeReason.Explicit */, CursorMoveCommands.simpleMove(viewModel, viewModel.getCursorStates(), args.direction, args.select, args.value, args.unit));\n            viewModel.revealAllCursors(dynamicArgs.source, true);\n        }\n    }\n    CoreNavigationCommands.CursorLeft = registerEditorCommand(new CursorMoveBasedCommand({\n        args: {\n            direction: 0 /* CursorMove_.Direction.Left */,\n            unit: 0 /* CursorMove_.Unit.None */,\n            select: false,\n            value: 1\n        },\n        id: 'cursorLeft',\n        precondition: undefined,\n        kbOpts: {\n            weight: CORE_WEIGHT,\n            kbExpr: EditorContextKeys.textInputFocus,\n            primary: 15 /* KeyCode.LeftArrow */,\n            mac: { primary: 15 /* KeyCode.LeftArrow */, secondary: [256 /* KeyMod.WinCtrl */ | 32 /* KeyCode.KeyB */] }\n        }\n    }));\n    CoreNavigationCommands.CursorLeftSelect = registerEditorCommand(new CursorMoveBasedCommand({\n        args: {\n            direction: 0 /* CursorMove_.Direction.Left */,\n            unit: 0 /* CursorMove_.Unit.None */,\n            select: true,\n            value: 1\n        },\n        id: 'cursorLeftSelect',\n        precondition: undefined,\n        kbOpts: {\n            weight: CORE_WEIGHT,\n            kbExpr: EditorContextKeys.textInputFocus,\n            primary: 1024 /* KeyMod.Shift */ | 15 /* KeyCode.LeftArrow */\n        }\n    }));\n    CoreNavigationCommands.CursorRight = registerEditorCommand(new CursorMoveBasedCommand({\n        args: {\n            direction: 1 /* CursorMove_.Direction.Right */,\n            unit: 0 /* CursorMove_.Unit.None */,\n            select: false,\n            value: 1\n        },\n        id: 'cursorRight',\n        precondition: undefined,\n        kbOpts: {\n            weight: CORE_WEIGHT,\n            kbExpr: EditorContextKeys.textInputFocus,\n            primary: 17 /* KeyCode.RightArrow */,\n            mac: { primary: 17 /* KeyCode.RightArrow */, secondary: [256 /* KeyMod.WinCtrl */ | 36 /* KeyCode.KeyF */] }\n        }\n    }));\n    CoreNavigationCommands.CursorRightSelect = registerEditorCommand(new CursorMoveBasedCommand({\n        args: {\n            direction: 1 /* CursorMove_.Direction.Right */,\n            unit: 0 /* CursorMove_.Unit.None */,\n            select: true,\n            value: 1\n        },\n        id: 'cursorRightSelect',\n        precondition: undefined,\n        kbOpts: {\n            weight: CORE_WEIGHT,\n            kbExpr: EditorContextKeys.textInputFocus,\n            primary: 1024 /* KeyMod.Shift */ | 17 /* KeyCode.RightArrow */\n        }\n    }));\n    CoreNavigationCommands.CursorUp = registerEditorCommand(new CursorMoveBasedCommand({\n        args: {\n            direction: 2 /* CursorMove_.Direction.Up */,\n            unit: 2 /* CursorMove_.Unit.WrappedLine */,\n            select: false,\n            value: 1\n        },\n        id: 'cursorUp',\n        precondition: undefined,\n        kbOpts: {\n            weight: CORE_WEIGHT,\n            kbExpr: EditorContextKeys.textInputFocus,\n            primary: 16 /* KeyCode.UpArrow */,\n            mac: { primary: 16 /* KeyCode.UpArrow */, secondary: [256 /* KeyMod.WinCtrl */ | 46 /* KeyCode.KeyP */] }\n        }\n    }));\n    CoreNavigationCommands.CursorUpSelect = registerEditorCommand(new CursorMoveBasedCommand({\n        args: {\n            direction: 2 /* CursorMove_.Direction.Up */,\n            unit: 2 /* CursorMove_.Unit.WrappedLine */,\n            select: true,\n            value: 1\n        },\n        id: 'cursorUpSelect',\n        precondition: undefined,\n        kbOpts: {\n            weight: CORE_WEIGHT,\n            kbExpr: EditorContextKeys.textInputFocus,\n            primary: 1024 /* KeyMod.Shift */ | 16 /* KeyCode.UpArrow */,\n            secondary: [2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 16 /* KeyCode.UpArrow */],\n            mac: { primary: 1024 /* KeyMod.Shift */ | 16 /* KeyCode.UpArrow */ },\n            linux: { primary: 1024 /* KeyMod.Shift */ | 16 /* KeyCode.UpArrow */ }\n        }\n    }));\n    CoreNavigationCommands.CursorPageUp = registerEditorCommand(new CursorMoveBasedCommand({\n        args: {\n            direction: 2 /* CursorMove_.Direction.Up */,\n            unit: 2 /* CursorMove_.Unit.WrappedLine */,\n            select: false,\n            value: -1 /* Constants.PAGE_SIZE_MARKER */\n        },\n        id: 'cursorPageUp',\n        precondition: undefined,\n        kbOpts: {\n            weight: CORE_WEIGHT,\n            kbExpr: EditorContextKeys.textInputFocus,\n            primary: 11 /* KeyCode.PageUp */\n        }\n    }));\n    CoreNavigationCommands.CursorPageUpSelect = registerEditorCommand(new CursorMoveBasedCommand({\n        args: {\n            direction: 2 /* CursorMove_.Direction.Up */,\n            unit: 2 /* CursorMove_.Unit.WrappedLine */,\n            select: true,\n            value: -1 /* Constants.PAGE_SIZE_MARKER */\n        },\n        id: 'cursorPageUpSelect',\n        precondition: undefined,\n        kbOpts: {\n            weight: CORE_WEIGHT,\n            kbExpr: EditorContextKeys.textInputFocus,\n            primary: 1024 /* KeyMod.Shift */ | 11 /* KeyCode.PageUp */\n        }\n    }));\n    CoreNavigationCommands.CursorDown = registerEditorCommand(new CursorMoveBasedCommand({\n        args: {\n            direction: 3 /* CursorMove_.Direction.Down */,\n            unit: 2 /* CursorMove_.Unit.WrappedLine */,\n            select: false,\n            value: 1\n        },\n        id: 'cursorDown',\n        precondition: undefined,\n        kbOpts: {\n            weight: CORE_WEIGHT,\n            kbExpr: EditorContextKeys.textInputFocus,\n            primary: 18 /* KeyCode.DownArrow */,\n            mac: { primary: 18 /* KeyCode.DownArrow */, secondary: [256 /* KeyMod.WinCtrl */ | 44 /* KeyCode.KeyN */] }\n        }\n    }));\n    CoreNavigationCommands.CursorDownSelect = registerEditorCommand(new CursorMoveBasedCommand({\n        args: {\n            direction: 3 /* CursorMove_.Direction.Down */,\n            unit: 2 /* CursorMove_.Unit.WrappedLine */,\n            select: true,\n            value: 1\n        },\n        id: 'cursorDownSelect',\n        precondition: undefined,\n        kbOpts: {\n            weight: CORE_WEIGHT,\n            kbExpr: EditorContextKeys.textInputFocus,\n            primary: 1024 /* KeyMod.Shift */ | 18 /* KeyCode.DownArrow */,\n            secondary: [2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 18 /* KeyCode.DownArrow */],\n            mac: { primary: 1024 /* KeyMod.Shift */ | 18 /* KeyCode.DownArrow */ },\n            linux: { primary: 1024 /* KeyMod.Shift */ | 18 /* KeyCode.DownArrow */ }\n        }\n    }));\n    CoreNavigationCommands.CursorPageDown = registerEditorCommand(new CursorMoveBasedCommand({\n        args: {\n            direction: 3 /* CursorMove_.Direction.Down */,\n            unit: 2 /* CursorMove_.Unit.WrappedLine */,\n            select: false,\n            value: -1 /* Constants.PAGE_SIZE_MARKER */\n        },\n        id: 'cursorPageDown',\n        precondition: undefined,\n        kbOpts: {\n            weight: CORE_WEIGHT,\n            kbExpr: EditorContextKeys.textInputFocus,\n            primary: 12 /* KeyCode.PageDown */\n        }\n    }));\n    CoreNavigationCommands.CursorPageDownSelect = registerEditorCommand(new CursorMoveBasedCommand({\n        args: {\n            direction: 3 /* CursorMove_.Direction.Down */,\n            unit: 2 /* CursorMove_.Unit.WrappedLine */,\n            select: true,\n            value: -1 /* Constants.PAGE_SIZE_MARKER */\n        },\n        id: 'cursorPageDownSelect',\n        precondition: undefined,\n        kbOpts: {\n            weight: CORE_WEIGHT,\n            kbExpr: EditorContextKeys.textInputFocus,\n            primary: 1024 /* KeyMod.Shift */ | 12 /* KeyCode.PageDown */\n        }\n    }));\n    CoreNavigationCommands.CreateCursor = registerEditorCommand(new class extends CoreEditorCommand {\n        constructor() {\n            super({\n                id: 'createCursor',\n                precondition: undefined\n            });\n        }\n        runCoreEditorCommand(viewModel, args) {\n            if (!args.position) {\n                return;\n            }\n            let newState;\n            if (args.wholeLine) {\n                newState = CursorMoveCommands.line(viewModel, viewModel.getPrimaryCursorState(), false, args.position, args.viewPosition);\n            }\n            else {\n                newState = CursorMoveCommands.moveTo(viewModel, viewModel.getPrimaryCursorState(), false, args.position, args.viewPosition);\n            }\n            const states = viewModel.getCursorStates();\n            // Check if we should remove a cursor (sort of like a toggle)\n            if (states.length > 1) {\n                const newModelPosition = (newState.modelState ? newState.modelState.position : null);\n                const newViewPosition = (newState.viewState ? newState.viewState.position : null);\n                for (let i = 0, len = states.length; i < len; i++) {\n                    const state = states[i];\n                    if (newModelPosition && !state.modelState.selection.containsPosition(newModelPosition)) {\n                        continue;\n                    }\n                    if (newViewPosition && !state.viewState.selection.containsPosition(newViewPosition)) {\n                        continue;\n                    }\n                    // => Remove the cursor\n                    states.splice(i, 1);\n                    viewModel.model.pushStackElement();\n                    viewModel.setCursorStates(args.source, 3 /* CursorChangeReason.Explicit */, states);\n                    return;\n                }\n            }\n            // => Add the new cursor\n            states.push(newState);\n            viewModel.model.pushStackElement();\n            viewModel.setCursorStates(args.source, 3 /* CursorChangeReason.Explicit */, states);\n        }\n    });\n    CoreNavigationCommands.LastCursorMoveToSelect = registerEditorCommand(new class extends CoreEditorCommand {\n        constructor() {\n            super({\n                id: '_lastCursorMoveToSelect',\n                precondition: undefined\n            });\n        }\n        runCoreEditorCommand(viewModel, args) {\n            if (!args.position) {\n                return;\n            }\n            const lastAddedCursorIndex = viewModel.getLastAddedCursorIndex();\n            const states = viewModel.getCursorStates();\n            const newStates = states.slice(0);\n            newStates[lastAddedCursorIndex] = CursorMoveCommands.moveTo(viewModel, states[lastAddedCursorIndex], true, args.position, args.viewPosition);\n            viewModel.model.pushStackElement();\n            viewModel.setCursorStates(args.source, 3 /* CursorChangeReason.Explicit */, newStates);\n        }\n    });\n    class HomeCommand extends CoreEditorCommand {\n        constructor(opts) {\n            super(opts);\n            this._inSelectionMode = opts.inSelectionMode;\n        }\n        runCoreEditorCommand(viewModel, args) {\n            viewModel.model.pushStackElement();\n            viewModel.setCursorStates(args.source, 3 /* CursorChangeReason.Explicit */, CursorMoveCommands.moveToBeginningOfLine(viewModel, viewModel.getCursorStates(), this._inSelectionMode));\n            viewModel.revealAllCursors(args.source, true);\n        }\n    }\n    CoreNavigationCommands.CursorHome = registerEditorCommand(new HomeCommand({\n        inSelectionMode: false,\n        id: 'cursorHome',\n        precondition: undefined,\n        kbOpts: {\n            weight: CORE_WEIGHT,\n            kbExpr: EditorContextKeys.textInputFocus,\n            primary: 14 /* KeyCode.Home */,\n            mac: { primary: 14 /* KeyCode.Home */, secondary: [2048 /* KeyMod.CtrlCmd */ | 15 /* KeyCode.LeftArrow */] }\n        }\n    }));\n    CoreNavigationCommands.CursorHomeSelect = registerEditorCommand(new HomeCommand({\n        inSelectionMode: true,\n        id: 'cursorHomeSelect',\n        precondition: undefined,\n        kbOpts: {\n            weight: CORE_WEIGHT,\n            kbExpr: EditorContextKeys.textInputFocus,\n            primary: 1024 /* KeyMod.Shift */ | 14 /* KeyCode.Home */,\n            mac: { primary: 1024 /* KeyMod.Shift */ | 14 /* KeyCode.Home */, secondary: [2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 15 /* KeyCode.LeftArrow */] }\n        }\n    }));\n    class LineStartCommand extends CoreEditorCommand {\n        constructor(opts) {\n            super(opts);\n            this._inSelectionMode = opts.inSelectionMode;\n        }\n        runCoreEditorCommand(viewModel, args) {\n            viewModel.model.pushStackElement();\n            viewModel.setCursorStates(args.source, 3 /* CursorChangeReason.Explicit */, this._exec(viewModel.getCursorStates()));\n            viewModel.revealAllCursors(args.source, true);\n        }\n        _exec(cursors) {\n            const result = [];\n            for (let i = 0, len = cursors.length; i < len; i++) {\n                const cursor = cursors[i];\n                const lineNumber = cursor.modelState.position.lineNumber;\n                result[i] = CursorState.fromModelState(cursor.modelState.move(this._inSelectionMode, lineNumber, 1, 0));\n            }\n            return result;\n        }\n    }\n    CoreNavigationCommands.CursorLineStart = registerEditorCommand(new LineStartCommand({\n        inSelectionMode: false,\n        id: 'cursorLineStart',\n        precondition: undefined,\n        kbOpts: {\n            weight: CORE_WEIGHT,\n            kbExpr: EditorContextKeys.textInputFocus,\n            primary: 0,\n            mac: { primary: 256 /* KeyMod.WinCtrl */ | 31 /* KeyCode.KeyA */ }\n        }\n    }));\n    CoreNavigationCommands.CursorLineStartSelect = registerEditorCommand(new LineStartCommand({\n        inSelectionMode: true,\n        id: 'cursorLineStartSelect',\n        precondition: undefined,\n        kbOpts: {\n            weight: CORE_WEIGHT,\n            kbExpr: EditorContextKeys.textInputFocus,\n            primary: 0,\n            mac: { primary: 256 /* KeyMod.WinCtrl */ | 1024 /* KeyMod.Shift */ | 31 /* KeyCode.KeyA */ }\n        }\n    }));\n    class EndCommand extends CoreEditorCommand {\n        constructor(opts) {\n            super(opts);\n            this._inSelectionMode = opts.inSelectionMode;\n        }\n        runCoreEditorCommand(viewModel, args) {\n            viewModel.model.pushStackElement();\n            viewModel.setCursorStates(args.source, 3 /* CursorChangeReason.Explicit */, CursorMoveCommands.moveToEndOfLine(viewModel, viewModel.getCursorStates(), this._inSelectionMode, args.sticky || false));\n            viewModel.revealAllCursors(args.source, true);\n        }\n    }\n    CoreNavigationCommands.CursorEnd = registerEditorCommand(new EndCommand({\n        inSelectionMode: false,\n        id: 'cursorEnd',\n        precondition: undefined,\n        kbOpts: {\n            args: { sticky: false },\n            weight: CORE_WEIGHT,\n            kbExpr: EditorContextKeys.textInputFocus,\n            primary: 13 /* KeyCode.End */,\n            mac: { primary: 13 /* KeyCode.End */, secondary: [2048 /* KeyMod.CtrlCmd */ | 17 /* KeyCode.RightArrow */] }\n        },\n        metadata: {\n            description: `Go to End`,\n            args: [{\n                    name: 'args',\n                    schema: {\n                        type: 'object',\n                        properties: {\n                            'sticky': {\n                                description: nls.localize('stickydesc', \"Stick to the end even when going to longer lines\"),\n                                type: 'boolean',\n                                default: false\n                            }\n                        }\n                    }\n                }]\n        }\n    }));\n    CoreNavigationCommands.CursorEndSelect = registerEditorCommand(new EndCommand({\n        inSelectionMode: true,\n        id: 'cursorEndSelect',\n        precondition: undefined,\n        kbOpts: {\n            args: { sticky: false },\n            weight: CORE_WEIGHT,\n            kbExpr: EditorContextKeys.textInputFocus,\n            primary: 1024 /* KeyMod.Shift */ | 13 /* KeyCode.End */,\n            mac: { primary: 1024 /* KeyMod.Shift */ | 13 /* KeyCode.End */, secondary: [2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 17 /* KeyCode.RightArrow */] }\n        },\n        metadata: {\n            description: `Select to End`,\n            args: [{\n                    name: 'args',\n                    schema: {\n                        type: 'object',\n                        properties: {\n                            'sticky': {\n                                description: nls.localize('stickydesc', \"Stick to the end even when going to longer lines\"),\n                                type: 'boolean',\n                                default: false\n                            }\n                        }\n                    }\n                }]\n        }\n    }));\n    class LineEndCommand extends CoreEditorCommand {\n        constructor(opts) {\n            super(opts);\n            this._inSelectionMode = opts.inSelectionMode;\n        }\n        runCoreEditorCommand(viewModel, args) {\n            viewModel.model.pushStackElement();\n            viewModel.setCursorStates(args.source, 3 /* CursorChangeReason.Explicit */, this._exec(viewModel, viewModel.getCursorStates()));\n            viewModel.revealAllCursors(args.source, true);\n        }\n        _exec(viewModel, cursors) {\n            const result = [];\n            for (let i = 0, len = cursors.length; i < len; i++) {\n                const cursor = cursors[i];\n                const lineNumber = cursor.modelState.position.lineNumber;\n                const maxColumn = viewModel.model.getLineMaxColumn(lineNumber);\n                result[i] = CursorState.fromModelState(cursor.modelState.move(this._inSelectionMode, lineNumber, maxColumn, 0));\n            }\n            return result;\n        }\n    }\n    CoreNavigationCommands.CursorLineEnd = registerEditorCommand(new LineEndCommand({\n        inSelectionMode: false,\n        id: 'cursorLineEnd',\n        precondition: undefined,\n        kbOpts: {\n            weight: CORE_WEIGHT,\n            kbExpr: EditorContextKeys.textInputFocus,\n            primary: 0,\n            mac: { primary: 256 /* KeyMod.WinCtrl */ | 35 /* KeyCode.KeyE */ }\n        }\n    }));\n    CoreNavigationCommands.CursorLineEndSelect = registerEditorCommand(new LineEndCommand({\n        inSelectionMode: true,\n        id: 'cursorLineEndSelect',\n        precondition: undefined,\n        kbOpts: {\n            weight: CORE_WEIGHT,\n            kbExpr: EditorContextKeys.textInputFocus,\n            primary: 0,\n            mac: { primary: 256 /* KeyMod.WinCtrl */ | 1024 /* KeyMod.Shift */ | 35 /* KeyCode.KeyE */ }\n        }\n    }));\n    class TopCommand extends CoreEditorCommand {\n        constructor(opts) {\n            super(opts);\n            this._inSelectionMode = opts.inSelectionMode;\n        }\n        runCoreEditorCommand(viewModel, args) {\n            viewModel.model.pushStackElement();\n            viewModel.setCursorStates(args.source, 3 /* CursorChangeReason.Explicit */, CursorMoveCommands.moveToBeginningOfBuffer(viewModel, viewModel.getCursorStates(), this._inSelectionMode));\n            viewModel.revealAllCursors(args.source, true);\n        }\n    }\n    CoreNavigationCommands.CursorTop = registerEditorCommand(new TopCommand({\n        inSelectionMode: false,\n        id: 'cursorTop',\n        precondition: undefined,\n        kbOpts: {\n            weight: CORE_WEIGHT,\n            kbExpr: EditorContextKeys.textInputFocus,\n            primary: 2048 /* KeyMod.CtrlCmd */ | 14 /* KeyCode.Home */,\n            mac: { primary: 2048 /* KeyMod.CtrlCmd */ | 16 /* KeyCode.UpArrow */ }\n        }\n    }));\n    CoreNavigationCommands.CursorTopSelect = registerEditorCommand(new TopCommand({\n        inSelectionMode: true,\n        id: 'cursorTopSelect',\n        precondition: undefined,\n        kbOpts: {\n            weight: CORE_WEIGHT,\n            kbExpr: EditorContextKeys.textInputFocus,\n            primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 14 /* KeyCode.Home */,\n            mac: { primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 16 /* KeyCode.UpArrow */ }\n        }\n    }));\n    class BottomCommand extends CoreEditorCommand {\n        constructor(opts) {\n            super(opts);\n            this._inSelectionMode = opts.inSelectionMode;\n        }\n        runCoreEditorCommand(viewModel, args) {\n            viewModel.model.pushStackElement();\n            viewModel.setCursorStates(args.source, 3 /* CursorChangeReason.Explicit */, CursorMoveCommands.moveToEndOfBuffer(viewModel, viewModel.getCursorStates(), this._inSelectionMode));\n            viewModel.revealAllCursors(args.source, true);\n        }\n    }\n    CoreNavigationCommands.CursorBottom = registerEditorCommand(new BottomCommand({\n        inSelectionMode: false,\n        id: 'cursorBottom',\n        precondition: undefined,\n        kbOpts: {\n            weight: CORE_WEIGHT,\n            kbExpr: EditorContextKeys.textInputFocus,\n            primary: 2048 /* KeyMod.CtrlCmd */ | 13 /* KeyCode.End */,\n            mac: { primary: 2048 /* KeyMod.CtrlCmd */ | 18 /* KeyCode.DownArrow */ }\n        }\n    }));\n    CoreNavigationCommands.CursorBottomSelect = registerEditorCommand(new BottomCommand({\n        inSelectionMode: true,\n        id: 'cursorBottomSelect',\n        precondition: undefined,\n        kbOpts: {\n            weight: CORE_WEIGHT,\n            kbExpr: EditorContextKeys.textInputFocus,\n            primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 13 /* KeyCode.End */,\n            mac: { primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 18 /* KeyCode.DownArrow */ }\n        }\n    }));\n    class EditorScrollImpl extends CoreEditorCommand {\n        constructor() {\n            super({\n                id: 'editorScroll',\n                precondition: undefined,\n                metadata: EditorScroll_.metadata\n            });\n        }\n        determineScrollMethod(args) {\n            const horizontalUnits = [6 /* EditorScroll_.Unit.Column */];\n            const verticalUnits = [\n                1 /* EditorScroll_.Unit.Line */,\n                2 /* EditorScroll_.Unit.WrappedLine */,\n                3 /* EditorScroll_.Unit.Page */,\n                4 /* EditorScroll_.Unit.HalfPage */,\n                5 /* EditorScroll_.Unit.Editor */,\n                6 /* EditorScroll_.Unit.Column */\n            ];\n            const horizontalDirections = [4 /* EditorScroll_.Direction.Left */, 2 /* EditorScroll_.Direction.Right */];\n            const verticalDirections = [1 /* EditorScroll_.Direction.Up */, 3 /* EditorScroll_.Direction.Down */];\n            if (horizontalUnits.includes(args.unit) && horizontalDirections.includes(args.direction)) {\n                return this._runHorizontalEditorScroll.bind(this);\n            }\n            if (verticalUnits.includes(args.unit) && verticalDirections.includes(args.direction)) {\n                return this._runVerticalEditorScroll.bind(this);\n            }\n            return null;\n        }\n        runCoreEditorCommand(viewModel, args) {\n            const parsed = EditorScroll_.parse(args);\n            if (!parsed) {\n                // illegal arguments\n                return;\n            }\n            const runEditorScroll = this.determineScrollMethod(parsed);\n            if (!runEditorScroll) {\n                // Incompatible unit and direction\n                return;\n            }\n            runEditorScroll(viewModel, args.source, parsed);\n        }\n        _runVerticalEditorScroll(viewModel, source, args) {\n            const desiredScrollTop = this._computeDesiredScrollTop(viewModel, args);\n            if (args.revealCursor) {\n                // must ensure cursor is in new visible range\n                const desiredVisibleViewRange = viewModel.getCompletelyVisibleViewRangeAtScrollTop(desiredScrollTop);\n                viewModel.setCursorStates(source, 3 /* CursorChangeReason.Explicit */, [\n                    CursorMoveCommands.findPositionInViewportIfOutside(viewModel, viewModel.getPrimaryCursorState(), desiredVisibleViewRange, args.select)\n                ]);\n            }\n            viewModel.viewLayout.setScrollPosition({ scrollTop: desiredScrollTop }, 0 /* ScrollType.Smooth */);\n        }\n        _computeDesiredScrollTop(viewModel, args) {\n            if (args.unit === 1 /* EditorScroll_.Unit.Line */) {\n                // scrolling by model lines\n                const futureViewport = viewModel.viewLayout.getFutureViewport();\n                const visibleViewRange = viewModel.getCompletelyVisibleViewRangeAtScrollTop(futureViewport.top);\n                const visibleModelRange = viewModel.coordinatesConverter.convertViewRangeToModelRange(visibleViewRange);\n                let desiredTopModelLineNumber;\n                if (args.direction === 1 /* EditorScroll_.Direction.Up */) {\n                    // must go x model lines up\n                    desiredTopModelLineNumber = Math.max(1, visibleModelRange.startLineNumber - args.value);\n                }\n                else {\n                    // must go x model lines down\n                    desiredTopModelLineNumber = Math.min(viewModel.model.getLineCount(), visibleModelRange.startLineNumber + args.value);\n                }\n                const viewPosition = viewModel.coordinatesConverter.convertModelPositionToViewPosition(new Position(desiredTopModelLineNumber, 1));\n                return viewModel.viewLayout.getVerticalOffsetForLineNumber(viewPosition.lineNumber);\n            }\n            if (args.unit === 5 /* EditorScroll_.Unit.Editor */) {\n                let desiredTopModelLineNumber = 0;\n                if (args.direction === 3 /* EditorScroll_.Direction.Down */) {\n                    desiredTopModelLineNumber = viewModel.model.getLineCount() - viewModel.cursorConfig.pageSize;\n                }\n                return viewModel.viewLayout.getVerticalOffsetForLineNumber(desiredTopModelLineNumber);\n            }\n            let noOfLines;\n            if (args.unit === 3 /* EditorScroll_.Unit.Page */) {\n                noOfLines = viewModel.cursorConfig.pageSize * args.value;\n            }\n            else if (args.unit === 4 /* EditorScroll_.Unit.HalfPage */) {\n                noOfLines = Math.round(viewModel.cursorConfig.pageSize / 2) * args.value;\n            }\n            else {\n                noOfLines = args.value;\n            }\n            const deltaLines = (args.direction === 1 /* EditorScroll_.Direction.Up */ ? -1 : 1) * noOfLines;\n            return viewModel.viewLayout.getCurrentScrollTop() + deltaLines * viewModel.cursorConfig.lineHeight;\n        }\n        _runHorizontalEditorScroll(viewModel, source, args) {\n            const desiredScrollLeft = this._computeDesiredScrollLeft(viewModel, args);\n            viewModel.viewLayout.setScrollPosition({ scrollLeft: desiredScrollLeft }, 0 /* ScrollType.Smooth */);\n        }\n        _computeDesiredScrollLeft(viewModel, args) {\n            const deltaColumns = (args.direction === 4 /* EditorScroll_.Direction.Left */ ? -1 : 1) * args.value;\n            return viewModel.viewLayout.getCurrentScrollLeft() + deltaColumns * viewModel.cursorConfig.typicalHalfwidthCharacterWidth;\n        }\n    }\n    CoreNavigationCommands.EditorScrollImpl = EditorScrollImpl;\n    CoreNavigationCommands.EditorScroll = registerEditorCommand(new EditorScrollImpl());\n    CoreNavigationCommands.ScrollLineUp = registerEditorCommand(new class extends CoreEditorCommand {\n        constructor() {\n            super({\n                id: 'scrollLineUp',\n                precondition: undefined,\n                kbOpts: {\n                    weight: CORE_WEIGHT,\n                    kbExpr: EditorContextKeys.textInputFocus,\n                    primary: 2048 /* KeyMod.CtrlCmd */ | 16 /* KeyCode.UpArrow */,\n                    mac: { primary: 256 /* KeyMod.WinCtrl */ | 11 /* KeyCode.PageUp */ }\n                }\n            });\n        }\n        runCoreEditorCommand(viewModel, args) {\n            CoreNavigationCommands.EditorScroll.runCoreEditorCommand(viewModel, {\n                to: EditorScroll_.RawDirection.Up,\n                by: EditorScroll_.RawUnit.WrappedLine,\n                value: 1,\n                revealCursor: false,\n                select: false,\n                source: args.source\n            });\n        }\n    });\n    CoreNavigationCommands.ScrollPageUp = registerEditorCommand(new class extends CoreEditorCommand {\n        constructor() {\n            super({\n                id: 'scrollPageUp',\n                precondition: undefined,\n                kbOpts: {\n                    weight: CORE_WEIGHT,\n                    kbExpr: EditorContextKeys.textInputFocus,\n                    primary: 2048 /* KeyMod.CtrlCmd */ | 11 /* KeyCode.PageUp */,\n                    win: { primary: 512 /* KeyMod.Alt */ | 11 /* KeyCode.PageUp */ },\n                    linux: { primary: 512 /* KeyMod.Alt */ | 11 /* KeyCode.PageUp */ }\n                }\n            });\n        }\n        runCoreEditorCommand(viewModel, args) {\n            CoreNavigationCommands.EditorScroll.runCoreEditorCommand(viewModel, {\n                to: EditorScroll_.RawDirection.Up,\n                by: EditorScroll_.RawUnit.Page,\n                value: 1,\n                revealCursor: false,\n                select: false,\n                source: args.source\n            });\n        }\n    });\n    CoreNavigationCommands.ScrollEditorTop = registerEditorCommand(new class extends CoreEditorCommand {\n        constructor() {\n            super({\n                id: 'scrollEditorTop',\n                precondition: undefined,\n                kbOpts: {\n                    weight: CORE_WEIGHT,\n                    kbExpr: EditorContextKeys.textInputFocus,\n                }\n            });\n        }\n        runCoreEditorCommand(viewModel, args) {\n            CoreNavigationCommands.EditorScroll.runCoreEditorCommand(viewModel, {\n                to: EditorScroll_.RawDirection.Up,\n                by: EditorScroll_.RawUnit.Editor,\n                value: 1,\n                revealCursor: false,\n                select: false,\n                source: args.source\n            });\n        }\n    });\n    CoreNavigationCommands.ScrollLineDown = registerEditorCommand(new class extends CoreEditorCommand {\n        constructor() {\n            super({\n                id: 'scrollLineDown',\n                precondition: undefined,\n                kbOpts: {\n                    weight: CORE_WEIGHT,\n                    kbExpr: EditorContextKeys.textInputFocus,\n                    primary: 2048 /* KeyMod.CtrlCmd */ | 18 /* KeyCode.DownArrow */,\n                    mac: { primary: 256 /* KeyMod.WinCtrl */ | 12 /* KeyCode.PageDown */ }\n                }\n            });\n        }\n        runCoreEditorCommand(viewModel, args) {\n            CoreNavigationCommands.EditorScroll.runCoreEditorCommand(viewModel, {\n                to: EditorScroll_.RawDirection.Down,\n                by: EditorScroll_.RawUnit.WrappedLine,\n                value: 1,\n                revealCursor: false,\n                select: false,\n                source: args.source\n            });\n        }\n    });\n    CoreNavigationCommands.ScrollPageDown = registerEditorCommand(new class extends CoreEditorCommand {\n        constructor() {\n            super({\n                id: 'scrollPageDown',\n                precondition: undefined,\n                kbOpts: {\n                    weight: CORE_WEIGHT,\n                    kbExpr: EditorContextKeys.textInputFocus,\n                    primary: 2048 /* KeyMod.CtrlCmd */ | 12 /* KeyCode.PageDown */,\n                    win: { primary: 512 /* KeyMod.Alt */ | 12 /* KeyCode.PageDown */ },\n                    linux: { primary: 512 /* KeyMod.Alt */ | 12 /* KeyCode.PageDown */ }\n                }\n            });\n        }\n        runCoreEditorCommand(viewModel, args) {\n            CoreNavigationCommands.EditorScroll.runCoreEditorCommand(viewModel, {\n                to: EditorScroll_.RawDirection.Down,\n                by: EditorScroll_.RawUnit.Page,\n                value: 1,\n                revealCursor: false,\n                select: false,\n                source: args.source\n            });\n        }\n    });\n    CoreNavigationCommands.ScrollEditorBottom = registerEditorCommand(new class extends CoreEditorCommand {\n        constructor() {\n            super({\n                id: 'scrollEditorBottom',\n                precondition: undefined,\n                kbOpts: {\n                    weight: CORE_WEIGHT,\n                    kbExpr: EditorContextKeys.textInputFocus,\n                }\n            });\n        }\n        runCoreEditorCommand(viewModel, args) {\n            CoreNavigationCommands.EditorScroll.runCoreEditorCommand(viewModel, {\n                to: EditorScroll_.RawDirection.Down,\n                by: EditorScroll_.RawUnit.Editor,\n                value: 1,\n                revealCursor: false,\n                select: false,\n                source: args.source\n            });\n        }\n    });\n    CoreNavigationCommands.ScrollLeft = registerEditorCommand(new class extends CoreEditorCommand {\n        constructor() {\n            super({\n                id: 'scrollLeft',\n                precondition: undefined,\n                kbOpts: {\n                    weight: CORE_WEIGHT,\n                    kbExpr: EditorContextKeys.textInputFocus,\n                }\n            });\n        }\n        runCoreEditorCommand(viewModel, args) {\n            CoreNavigationCommands.EditorScroll.runCoreEditorCommand(viewModel, {\n                to: EditorScroll_.RawDirection.Left,\n                by: EditorScroll_.RawUnit.Column,\n                value: 2,\n                revealCursor: false,\n                select: false,\n                source: args.source\n            });\n        }\n    });\n    CoreNavigationCommands.ScrollRight = registerEditorCommand(new class extends CoreEditorCommand {\n        constructor() {\n            super({\n                id: 'scrollRight',\n                precondition: undefined,\n                kbOpts: {\n                    weight: CORE_WEIGHT,\n                    kbExpr: EditorContextKeys.textInputFocus,\n                }\n            });\n        }\n        runCoreEditorCommand(viewModel, args) {\n            CoreNavigationCommands.EditorScroll.runCoreEditorCommand(viewModel, {\n                to: EditorScroll_.RawDirection.Right,\n                by: EditorScroll_.RawUnit.Column,\n                value: 2,\n                revealCursor: false,\n                select: false,\n                source: args.source\n            });\n        }\n    });\n    class WordCommand extends CoreEditorCommand {\n        constructor(opts) {\n            super(opts);\n            this._inSelectionMode = opts.inSelectionMode;\n        }\n        runCoreEditorCommand(viewModel, args) {\n            if (!args.position) {\n                return;\n            }\n            viewModel.model.pushStackElement();\n            viewModel.setCursorStates(args.source, 3 /* CursorChangeReason.Explicit */, [\n                CursorMoveCommands.word(viewModel, viewModel.getPrimaryCursorState(), this._inSelectionMode, args.position)\n            ]);\n            if (args.revealType !== 2 /* NavigationCommandRevealType.None */) {\n                viewModel.revealAllCursors(args.source, true, true);\n            }\n        }\n    }\n    CoreNavigationCommands.WordSelect = registerEditorCommand(new WordCommand({\n        inSelectionMode: false,\n        id: '_wordSelect',\n        precondition: undefined\n    }));\n    CoreNavigationCommands.WordSelectDrag = registerEditorCommand(new WordCommand({\n        inSelectionMode: true,\n        id: '_wordSelectDrag',\n        precondition: undefined\n    }));\n    CoreNavigationCommands.LastCursorWordSelect = registerEditorCommand(new class extends CoreEditorCommand {\n        constructor() {\n            super({\n                id: 'lastCursorWordSelect',\n                precondition: undefined\n            });\n        }\n        runCoreEditorCommand(viewModel, args) {\n            if (!args.position) {\n                return;\n            }\n            const lastAddedCursorIndex = viewModel.getLastAddedCursorIndex();\n            const states = viewModel.getCursorStates();\n            const newStates = states.slice(0);\n            const lastAddedState = states[lastAddedCursorIndex];\n            newStates[lastAddedCursorIndex] = CursorMoveCommands.word(viewModel, lastAddedState, lastAddedState.modelState.hasSelection(), args.position);\n            viewModel.model.pushStackElement();\n            viewModel.setCursorStates(args.source, 3 /* CursorChangeReason.Explicit */, newStates);\n        }\n    });\n    class LineCommand extends CoreEditorCommand {\n        constructor(opts) {\n            super(opts);\n            this._inSelectionMode = opts.inSelectionMode;\n        }\n        runCoreEditorCommand(viewModel, args) {\n            if (!args.position) {\n                return;\n            }\n            viewModel.model.pushStackElement();\n            viewModel.setCursorStates(args.source, 3 /* CursorChangeReason.Explicit */, [\n                CursorMoveCommands.line(viewModel, viewModel.getPrimaryCursorState(), this._inSelectionMode, args.position, args.viewPosition)\n            ]);\n            if (args.revealType !== 2 /* NavigationCommandRevealType.None */) {\n                viewModel.revealAllCursors(args.source, false, true);\n            }\n        }\n    }\n    CoreNavigationCommands.LineSelect = registerEditorCommand(new LineCommand({\n        inSelectionMode: false,\n        id: '_lineSelect',\n        precondition: undefined\n    }));\n    CoreNavigationCommands.LineSelectDrag = registerEditorCommand(new LineCommand({\n        inSelectionMode: true,\n        id: '_lineSelectDrag',\n        precondition: undefined\n    }));\n    class LastCursorLineCommand extends CoreEditorCommand {\n        constructor(opts) {\n            super(opts);\n            this._inSelectionMode = opts.inSelectionMode;\n        }\n        runCoreEditorCommand(viewModel, args) {\n            if (!args.position) {\n                return;\n            }\n            const lastAddedCursorIndex = viewModel.getLastAddedCursorIndex();\n            const states = viewModel.getCursorStates();\n            const newStates = states.slice(0);\n            newStates[lastAddedCursorIndex] = CursorMoveCommands.line(viewModel, states[lastAddedCursorIndex], this._inSelectionMode, args.position, args.viewPosition);\n            viewModel.model.pushStackElement();\n            viewModel.setCursorStates(args.source, 3 /* CursorChangeReason.Explicit */, newStates);\n        }\n    }\n    CoreNavigationCommands.LastCursorLineSelect = registerEditorCommand(new LastCursorLineCommand({\n        inSelectionMode: false,\n        id: 'lastCursorLineSelect',\n        precondition: undefined\n    }));\n    CoreNavigationCommands.LastCursorLineSelectDrag = registerEditorCommand(new LastCursorLineCommand({\n        inSelectionMode: true,\n        id: 'lastCursorLineSelectDrag',\n        precondition: undefined\n    }));\n    CoreNavigationCommands.CancelSelection = registerEditorCommand(new class extends CoreEditorCommand {\n        constructor() {\n            super({\n                id: 'cancelSelection',\n                precondition: EditorContextKeys.hasNonEmptySelection,\n                kbOpts: {\n                    weight: CORE_WEIGHT,\n                    kbExpr: EditorContextKeys.textInputFocus,\n                    primary: 9 /* KeyCode.Escape */,\n                    secondary: [1024 /* KeyMod.Shift */ | 9 /* KeyCode.Escape */]\n                }\n            });\n        }\n        runCoreEditorCommand(viewModel, args) {\n            viewModel.model.pushStackElement();\n            viewModel.setCursorStates(args.source, 3 /* CursorChangeReason.Explicit */, [\n                CursorMoveCommands.cancelSelection(viewModel, viewModel.getPrimaryCursorState())\n            ]);\n            viewModel.revealAllCursors(args.source, true);\n        }\n    });\n    CoreNavigationCommands.RemoveSecondaryCursors = registerEditorCommand(new class extends CoreEditorCommand {\n        constructor() {\n            super({\n                id: 'removeSecondaryCursors',\n                precondition: EditorContextKeys.hasMultipleSelections,\n                kbOpts: {\n                    weight: CORE_WEIGHT + 1,\n                    kbExpr: EditorContextKeys.textInputFocus,\n                    primary: 9 /* KeyCode.Escape */,\n                    secondary: [1024 /* KeyMod.Shift */ | 9 /* KeyCode.Escape */]\n                }\n            });\n        }\n        runCoreEditorCommand(viewModel, args) {\n            viewModel.model.pushStackElement();\n            viewModel.setCursorStates(args.source, 3 /* CursorChangeReason.Explicit */, [\n                viewModel.getPrimaryCursorState()\n            ]);\n            viewModel.revealAllCursors(args.source, true);\n            status(nls.localize('removedCursor', \"Removed secondary cursors\"));\n        }\n    });\n    CoreNavigationCommands.RevealLine = registerEditorCommand(new class extends CoreEditorCommand {\n        constructor() {\n            super({\n                id: 'revealLine',\n                precondition: undefined,\n                metadata: RevealLine_.metadata\n            });\n        }\n        runCoreEditorCommand(viewModel, args) {\n            const revealLineArg = args;\n            const lineNumberArg = revealLineArg.lineNumber || 0;\n            let lineNumber = typeof lineNumberArg === 'number' ? (lineNumberArg + 1) : (parseInt(lineNumberArg) + 1);\n            if (lineNumber < 1) {\n                lineNumber = 1;\n            }\n            const lineCount = viewModel.model.getLineCount();\n            if (lineNumber > lineCount) {\n                lineNumber = lineCount;\n            }\n            const range = new Range(lineNumber, 1, lineNumber, viewModel.model.getLineMaxColumn(lineNumber));\n            let revealAt = 0 /* VerticalRevealType.Simple */;\n            if (revealLineArg.at) {\n                switch (revealLineArg.at) {\n                    case RevealLine_.RawAtArgument.Top:\n                        revealAt = 3 /* VerticalRevealType.Top */;\n                        break;\n                    case RevealLine_.RawAtArgument.Center:\n                        revealAt = 1 /* VerticalRevealType.Center */;\n                        break;\n                    case RevealLine_.RawAtArgument.Bottom:\n                        revealAt = 4 /* VerticalRevealType.Bottom */;\n                        break;\n                    default:\n                        break;\n                }\n            }\n            const viewRange = viewModel.coordinatesConverter.convertModelRangeToViewRange(range);\n            viewModel.revealRange(args.source, false, viewRange, revealAt, 0 /* ScrollType.Smooth */);\n        }\n    });\n    CoreNavigationCommands.SelectAll = new class extends EditorOrNativeTextInputCommand {\n        constructor() {\n            super(SelectAllCommand);\n        }\n        runDOMCommand(activeElement) {\n            if (isFirefox) {\n                activeElement.focus();\n                activeElement.select();\n            }\n            activeElement.ownerDocument.execCommand('selectAll');\n        }\n        runEditorCommand(accessor, editor, args) {\n            const viewModel = editor._getViewModel();\n            if (!viewModel) {\n                // the editor has no view => has no cursors\n                return;\n            }\n            this.runCoreEditorCommand(viewModel, args);\n        }\n        runCoreEditorCommand(viewModel, args) {\n            viewModel.model.pushStackElement();\n            viewModel.setCursorStates('keyboard', 3 /* CursorChangeReason.Explicit */, [\n                CursorMoveCommands.selectAll(viewModel, viewModel.getPrimaryCursorState())\n            ]);\n        }\n    }();\n    CoreNavigationCommands.SetSelection = registerEditorCommand(new class extends CoreEditorCommand {\n        constructor() {\n            super({\n                id: 'setSelection',\n                precondition: undefined\n            });\n        }\n        runCoreEditorCommand(viewModel, args) {\n            if (!args.selection) {\n                return;\n            }\n            viewModel.model.pushStackElement();\n            viewModel.setCursorStates(args.source, 3 /* CursorChangeReason.Explicit */, [\n                CursorState.fromModelSelection(args.selection)\n            ]);\n        }\n    });\n})(CoreNavigationCommands || (CoreNavigationCommands = {}));\nconst columnSelectionCondition = ContextKeyExpr.and(EditorContextKeys.textInputFocus, EditorContextKeys.columnSelection);\nfunction registerColumnSelection(id, keybinding) {\n    KeybindingsRegistry.registerKeybindingRule({\n        id: id,\n        primary: keybinding,\n        when: columnSelectionCondition,\n        weight: CORE_WEIGHT + 1\n    });\n}\nregisterColumnSelection(CoreNavigationCommands.CursorColumnSelectLeft.id, 1024 /* KeyMod.Shift */ | 15 /* KeyCode.LeftArrow */);\nregisterColumnSelection(CoreNavigationCommands.CursorColumnSelectRight.id, 1024 /* KeyMod.Shift */ | 17 /* KeyCode.RightArrow */);\nregisterColumnSelection(CoreNavigationCommands.CursorColumnSelectUp.id, 1024 /* KeyMod.Shift */ | 16 /* KeyCode.UpArrow */);\nregisterColumnSelection(CoreNavigationCommands.CursorColumnSelectPageUp.id, 1024 /* KeyMod.Shift */ | 11 /* KeyCode.PageUp */);\nregisterColumnSelection(CoreNavigationCommands.CursorColumnSelectDown.id, 1024 /* KeyMod.Shift */ | 18 /* KeyCode.DownArrow */);\nregisterColumnSelection(CoreNavigationCommands.CursorColumnSelectPageDown.id, 1024 /* KeyMod.Shift */ | 12 /* KeyCode.PageDown */);\nfunction registerCommand(command) {\n    command.register();\n    return command;\n}\nexport var CoreEditingCommands;\n(function (CoreEditingCommands) {\n    class CoreEditingCommand extends EditorCommand {\n        runEditorCommand(accessor, editor, args) {\n            const viewModel = editor._getViewModel();\n            if (!viewModel) {\n                // the editor has no view => has no cursors\n                return;\n            }\n            this.runCoreEditingCommand(editor, viewModel, args || {});\n        }\n    }\n    CoreEditingCommands.CoreEditingCommand = CoreEditingCommand;\n    CoreEditingCommands.LineBreakInsert = registerEditorCommand(new class extends CoreEditingCommand {\n        constructor() {\n            super({\n                id: 'lineBreakInsert',\n                precondition: EditorContextKeys.writable,\n                kbOpts: {\n                    weight: CORE_WEIGHT,\n                    kbExpr: EditorContextKeys.textInputFocus,\n                    primary: 0,\n                    mac: { primary: 256 /* KeyMod.WinCtrl */ | 45 /* KeyCode.KeyO */ }\n                }\n            });\n        }\n        runCoreEditingCommand(editor, viewModel, args) {\n            editor.pushUndoStop();\n            editor.executeCommands(this.id, TypeOperations.lineBreakInsert(viewModel.cursorConfig, viewModel.model, viewModel.getCursorStates().map(s => s.modelState.selection)));\n        }\n    });\n    CoreEditingCommands.Outdent = registerEditorCommand(new class extends CoreEditingCommand {\n        constructor() {\n            super({\n                id: 'outdent',\n                precondition: EditorContextKeys.writable,\n                kbOpts: {\n                    weight: CORE_WEIGHT,\n                    kbExpr: ContextKeyExpr.and(EditorContextKeys.editorTextFocus, EditorContextKeys.tabDoesNotMoveFocus),\n                    primary: 1024 /* KeyMod.Shift */ | 2 /* KeyCode.Tab */\n                }\n            });\n        }\n        runCoreEditingCommand(editor, viewModel, args) {\n            editor.pushUndoStop();\n            editor.executeCommands(this.id, TypeOperations.outdent(viewModel.cursorConfig, viewModel.model, viewModel.getCursorStates().map(s => s.modelState.selection)));\n            editor.pushUndoStop();\n        }\n    });\n    CoreEditingCommands.Tab = registerEditorCommand(new class extends CoreEditingCommand {\n        constructor() {\n            super({\n                id: 'tab',\n                precondition: EditorContextKeys.writable,\n                kbOpts: {\n                    weight: CORE_WEIGHT,\n                    kbExpr: ContextKeyExpr.and(EditorContextKeys.editorTextFocus, EditorContextKeys.tabDoesNotMoveFocus),\n                    primary: 2 /* KeyCode.Tab */\n                }\n            });\n        }\n        runCoreEditingCommand(editor, viewModel, args) {\n            editor.pushUndoStop();\n            editor.executeCommands(this.id, TypeOperations.tab(viewModel.cursorConfig, viewModel.model, viewModel.getCursorStates().map(s => s.modelState.selection)));\n            editor.pushUndoStop();\n        }\n    });\n    CoreEditingCommands.DeleteLeft = registerEditorCommand(new class extends CoreEditingCommand {\n        constructor() {\n            super({\n                id: 'deleteLeft',\n                precondition: undefined,\n                kbOpts: {\n                    weight: CORE_WEIGHT,\n                    kbExpr: EditorContextKeys.textInputFocus,\n                    primary: 1 /* KeyCode.Backspace */,\n                    secondary: [1024 /* KeyMod.Shift */ | 1 /* KeyCode.Backspace */],\n                    mac: { primary: 1 /* KeyCode.Backspace */, secondary: [1024 /* KeyMod.Shift */ | 1 /* KeyCode.Backspace */, 256 /* KeyMod.WinCtrl */ | 38 /* KeyCode.KeyH */, 256 /* KeyMod.WinCtrl */ | 1 /* KeyCode.Backspace */] }\n                }\n            });\n        }\n        runCoreEditingCommand(editor, viewModel, args) {\n            const [shouldPushStackElementBefore, commands] = DeleteOperations.deleteLeft(viewModel.getPrevEditOperationType(), viewModel.cursorConfig, viewModel.model, viewModel.getCursorStates().map(s => s.modelState.selection), viewModel.getCursorAutoClosedCharacters());\n            if (shouldPushStackElementBefore) {\n                editor.pushUndoStop();\n            }\n            editor.executeCommands(this.id, commands);\n            viewModel.setPrevEditOperationType(2 /* EditOperationType.DeletingLeft */);\n        }\n    });\n    CoreEditingCommands.DeleteRight = registerEditorCommand(new class extends CoreEditingCommand {\n        constructor() {\n            super({\n                id: 'deleteRight',\n                precondition: undefined,\n                kbOpts: {\n                    weight: CORE_WEIGHT,\n                    kbExpr: EditorContextKeys.textInputFocus,\n                    primary: 20 /* KeyCode.Delete */,\n                    mac: { primary: 20 /* KeyCode.Delete */, secondary: [256 /* KeyMod.WinCtrl */ | 34 /* KeyCode.KeyD */, 256 /* KeyMod.WinCtrl */ | 20 /* KeyCode.Delete */] }\n                }\n            });\n        }\n        runCoreEditingCommand(editor, viewModel, args) {\n            const [shouldPushStackElementBefore, commands] = DeleteOperations.deleteRight(viewModel.getPrevEditOperationType(), viewModel.cursorConfig, viewModel.model, viewModel.getCursorStates().map(s => s.modelState.selection));\n            if (shouldPushStackElementBefore) {\n                editor.pushUndoStop();\n            }\n            editor.executeCommands(this.id, commands);\n            viewModel.setPrevEditOperationType(3 /* EditOperationType.DeletingRight */);\n        }\n    });\n    CoreEditingCommands.Undo = new class extends EditorOrNativeTextInputCommand {\n        constructor() {\n            super(UndoCommand);\n        }\n        runDOMCommand(activeElement) {\n            activeElement.ownerDocument.execCommand('undo');\n        }\n        runEditorCommand(accessor, editor, args) {\n            if (!editor.hasModel() || editor.getOption(91 /* EditorOption.readOnly */) === true) {\n                return;\n            }\n            return editor.getModel().undo();\n        }\n    }();\n    CoreEditingCommands.Redo = new class extends EditorOrNativeTextInputCommand {\n        constructor() {\n            super(RedoCommand);\n        }\n        runDOMCommand(activeElement) {\n            activeElement.ownerDocument.execCommand('redo');\n        }\n        runEditorCommand(accessor, editor, args) {\n            if (!editor.hasModel() || editor.getOption(91 /* EditorOption.readOnly */) === true) {\n                return;\n            }\n            return editor.getModel().redo();\n        }\n    }();\n})(CoreEditingCommands || (CoreEditingCommands = {}));\n/**\n * A command that will invoke a command on the focused editor.\n */\nclass EditorHandlerCommand extends Command {\n    constructor(id, handlerId, metadata) {\n        super({\n            id: id,\n            precondition: undefined,\n            metadata\n        });\n        this._handlerId = handlerId;\n    }\n    runCommand(accessor, args) {\n        const editor = accessor.get(ICodeEditorService).getFocusedCodeEditor();\n        if (!editor) {\n            return;\n        }\n        editor.trigger('keyboard', this._handlerId, args);\n    }\n}\nfunction registerOverwritableCommand(handlerId, metadata) {\n    registerCommand(new EditorHandlerCommand('default:' + handlerId, handlerId));\n    registerCommand(new EditorHandlerCommand(handlerId, handlerId, metadata));\n}\nregisterOverwritableCommand(\"type\" /* Handler.Type */, {\n    description: `Type`,\n    args: [{\n            name: 'args',\n            schema: {\n                'type': 'object',\n                'required': ['text'],\n                'properties': {\n                    'text': {\n                        'type': 'string'\n                    }\n                },\n            }\n        }]\n});\nregisterOverwritableCommand(\"replacePreviousChar\" /* Handler.ReplacePreviousChar */);\nregisterOverwritableCommand(\"compositionType\" /* Handler.CompositionType */);\nregisterOverwritableCommand(\"compositionStart\" /* Handler.CompositionStart */);\nregisterOverwritableCommand(\"compositionEnd\" /* Handler.CompositionEnd */);\nregisterOverwritableCommand(\"paste\" /* Handler.Paste */);\nregisterOverwritableCommand(\"cut\" /* Handler.Cut */);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/dnd.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { DataTransfers } from '../../base/browser/dnd.js';\nimport { createFileDataTransferItem, createStringDataTransferItem, UriList, VSDataTransfer } from '../../base/common/dataTransfer.js';\nimport { Mimes } from '../../base/common/mime.js';\nimport { URI } from '../../base/common/uri.js';\nimport { CodeDataTransfers } from '../../platform/dnd/browser/dnd.js';\nexport function toVSDataTransfer(dataTransfer) {\n    const vsDataTransfer = new VSDataTransfer();\n    for (const item of dataTransfer.items) {\n        const type = item.type;\n        if (item.kind === 'string') {\n            const asStringValue = new Promise(resolve => item.getAsString(resolve));\n            vsDataTransfer.append(type, createStringDataTransferItem(asStringValue));\n        }\n        else if (item.kind === 'file') {\n            const file = item.getAsFile();\n            if (file) {\n                vsDataTransfer.append(type, createFileDataTransferItemFromFile(file));\n            }\n        }\n    }\n    return vsDataTransfer;\n}\nfunction createFileDataTransferItemFromFile(file) {\n    const uri = file.path ? URI.parse(file.path) : undefined;\n    return createFileDataTransferItem(file.name, uri, async () => {\n        return new Uint8Array(await file.arrayBuffer());\n    });\n}\nconst INTERNAL_DND_MIME_TYPES = Object.freeze([\n    CodeDataTransfers.EDITORS,\n    CodeDataTransfers.FILES,\n    DataTransfers.RESOURCES,\n    DataTransfers.INTERNAL_URI_LIST,\n]);\nexport function toExternalVSDataTransfer(sourceDataTransfer, overwriteUriList = false) {\n    const vsDataTransfer = toVSDataTransfer(sourceDataTransfer);\n    // Try to expose the internal uri-list type as the standard type\n    const uriList = vsDataTransfer.get(DataTransfers.INTERNAL_URI_LIST);\n    if (uriList) {\n        vsDataTransfer.replace(Mimes.uriList, uriList);\n    }\n    else {\n        if (overwriteUriList || !vsDataTransfer.has(Mimes.uriList)) {\n            // Otherwise, fallback to adding dragged resources to the uri list\n            const editorData = [];\n            for (const item of sourceDataTransfer.items) {\n                const file = item.getAsFile();\n                if (file) {\n                    const path = file.path;\n                    try {\n                        if (path) {\n                            editorData.push(URI.file(path).toString());\n                        }\n                        else {\n                            editorData.push(URI.parse(file.name, true).toString());\n                        }\n                    }\n                    catch (_a) {\n                        // Parsing failed. Leave out from list\n                    }\n                }\n            }\n            if (editorData.length) {\n                vsDataTransfer.replace(Mimes.uriList, createStringDataTransferItem(UriList.create(editorData)));\n            }\n        }\n    }\n    for (const internal of INTERNAL_DND_MIME_TYPES) {\n        vsDataTransfer.delete(internal);\n    }\n    return vsDataTransfer;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/editorBrowser.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as editorCommon from '../common/editorCommon.js';\n/**\n *@internal\n */\nexport function isCodeEditor(thing) {\n    if (thing && typeof thing.getEditorType === 'function') {\n        return thing.getEditorType() === editorCommon.EditorType.ICodeEditor;\n    }\n    else {\n        return false;\n    }\n}\n/**\n *@internal\n */\nexport function isDiffEditor(thing) {\n    if (thing && typeof thing.getEditorType === 'function') {\n        return thing.getEditorType() === editorCommon.EditorType.IDiffEditor;\n    }\n    else {\n        return false;\n    }\n}\n/**\n *@internal\n */\nexport function isCompositeEditor(thing) {\n    return !!thing\n        && typeof thing === 'object'\n        && typeof thing.onDidChangeActiveEditor === 'function';\n}\n/**\n *@internal\n */\nexport function getCodeEditor(thing) {\n    if (isCodeEditor(thing)) {\n        return thing;\n    }\n    if (isDiffEditor(thing)) {\n        return thing.getModifiedEditor();\n    }\n    if (isCompositeEditor(thing) && isCodeEditor(thing.activeCodeEditor)) {\n        return thing.activeCodeEditor;\n    }\n    return null;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/editorDom.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../base/browser/dom.js';\nimport { GlobalPointerMoveMonitor } from '../../base/browser/globalPointerMoveMonitor.js';\nimport { StandardMouseEvent } from '../../base/browser/mouseEvent.js';\nimport { RunOnceScheduler } from '../../base/common/async.js';\nimport { Disposable, DisposableStore } from '../../base/common/lifecycle.js';\nimport { asCssVariable } from '../../platform/theme/common/colorRegistry.js';\n/**\n * Coordinates relative to the whole document (e.g. mouse event's pageX and pageY)\n */\nexport class PageCoordinates {\n    constructor(x, y) {\n        this.x = x;\n        this.y = y;\n        this._pageCoordinatesBrand = undefined;\n    }\n    toClientCoordinates(targetWindow) {\n        return new ClientCoordinates(this.x - targetWindow.scrollX, this.y - targetWindow.scrollY);\n    }\n}\n/**\n * Coordinates within the application's client area (i.e. origin is document's scroll position).\n *\n * For example, clicking in the top-left corner of the client area will\n * always result in a mouse event with a client.x value of 0, regardless\n * of whether the page is scrolled horizontally.\n */\nexport class ClientCoordinates {\n    constructor(clientX, clientY) {\n        this.clientX = clientX;\n        this.clientY = clientY;\n        this._clientCoordinatesBrand = undefined;\n    }\n    toPageCoordinates(targetWindow) {\n        return new PageCoordinates(this.clientX + targetWindow.scrollX, this.clientY + targetWindow.scrollY);\n    }\n}\n/**\n * The position of the editor in the page.\n */\nexport class EditorPagePosition {\n    constructor(x, y, width, height) {\n        this.x = x;\n        this.y = y;\n        this.width = width;\n        this.height = height;\n        this._editorPagePositionBrand = undefined;\n    }\n}\n/**\n * Coordinates relative to the the (top;left) of the editor that can be used safely with other internal editor metrics.\n * **NOTE**: This position is obtained by taking page coordinates and transforming them relative to the\n * editor's (top;left) position in a way in which scale transformations are taken into account.\n * **NOTE**: These coordinates could be negative if the mouse position is outside the editor.\n */\nexport class CoordinatesRelativeToEditor {\n    constructor(x, y) {\n        this.x = x;\n        this.y = y;\n        this._positionRelativeToEditorBrand = undefined;\n    }\n}\nexport function createEditorPagePosition(editorViewDomNode) {\n    const editorPos = dom.getDomNodePagePosition(editorViewDomNode);\n    return new EditorPagePosition(editorPos.left, editorPos.top, editorPos.width, editorPos.height);\n}\nexport function createCoordinatesRelativeToEditor(editorViewDomNode, editorPagePosition, pos) {\n    // The editor's page position is read from the DOM using getBoundingClientRect().\n    //\n    // getBoundingClientRect() returns the actual dimensions, while offsetWidth and offsetHeight\n    // reflect the unscaled size. We can use this difference to detect a transform:scale()\n    // and we will apply the transformation in inverse to get mouse coordinates that make sense inside the editor.\n    //\n    // This could be expanded to cover rotation as well maybe by walking the DOM up from `editorViewDomNode`\n    // and computing the effective transformation matrix using getComputedStyle(element).transform.\n    //\n    const scaleX = editorPagePosition.width / editorViewDomNode.offsetWidth;\n    const scaleY = editorPagePosition.height / editorViewDomNode.offsetHeight;\n    // Adjust mouse offsets if editor appears to be scaled via transforms\n    const relativeX = (pos.x - editorPagePosition.x) / scaleX;\n    const relativeY = (pos.y - editorPagePosition.y) / scaleY;\n    return new CoordinatesRelativeToEditor(relativeX, relativeY);\n}\nexport class EditorMouseEvent extends StandardMouseEvent {\n    constructor(e, isFromPointerCapture, editorViewDomNode) {\n        super(dom.getWindow(editorViewDomNode), e);\n        this._editorMouseEventBrand = undefined;\n        this.isFromPointerCapture = isFromPointerCapture;\n        this.pos = new PageCoordinates(this.posx, this.posy);\n        this.editorPos = createEditorPagePosition(editorViewDomNode);\n        this.relativePos = createCoordinatesRelativeToEditor(editorViewDomNode, this.editorPos, this.pos);\n    }\n}\nexport class EditorMouseEventFactory {\n    constructor(editorViewDomNode) {\n        this._editorViewDomNode = editorViewDomNode;\n    }\n    _create(e) {\n        return new EditorMouseEvent(e, false, this._editorViewDomNode);\n    }\n    onContextMenu(target, callback) {\n        return dom.addDisposableListener(target, 'contextmenu', (e) => {\n            callback(this._create(e));\n        });\n    }\n    onMouseUp(target, callback) {\n        return dom.addDisposableListener(target, 'mouseup', (e) => {\n            callback(this._create(e));\n        });\n    }\n    onMouseDown(target, callback) {\n        return dom.addDisposableListener(target, dom.EventType.MOUSE_DOWN, (e) => {\n            callback(this._create(e));\n        });\n    }\n    onPointerDown(target, callback) {\n        return dom.addDisposableListener(target, dom.EventType.POINTER_DOWN, (e) => {\n            callback(this._create(e), e.pointerId);\n        });\n    }\n    onMouseLeave(target, callback) {\n        return dom.addDisposableListener(target, dom.EventType.MOUSE_LEAVE, (e) => {\n            callback(this._create(e));\n        });\n    }\n    onMouseMove(target, callback) {\n        return dom.addDisposableListener(target, 'mousemove', (e) => callback(this._create(e)));\n    }\n}\nexport class EditorPointerEventFactory {\n    constructor(editorViewDomNode) {\n        this._editorViewDomNode = editorViewDomNode;\n    }\n    _create(e) {\n        return new EditorMouseEvent(e, false, this._editorViewDomNode);\n    }\n    onPointerUp(target, callback) {\n        return dom.addDisposableListener(target, 'pointerup', (e) => {\n            callback(this._create(e));\n        });\n    }\n    onPointerDown(target, callback) {\n        return dom.addDisposableListener(target, dom.EventType.POINTER_DOWN, (e) => {\n            callback(this._create(e), e.pointerId);\n        });\n    }\n    onPointerLeave(target, callback) {\n        return dom.addDisposableListener(target, dom.EventType.POINTER_LEAVE, (e) => {\n            callback(this._create(e));\n        });\n    }\n    onPointerMove(target, callback) {\n        return dom.addDisposableListener(target, 'pointermove', (e) => callback(this._create(e)));\n    }\n}\nexport class GlobalEditorPointerMoveMonitor extends Disposable {\n    constructor(editorViewDomNode) {\n        super();\n        this._editorViewDomNode = editorViewDomNode;\n        this._globalPointerMoveMonitor = this._register(new GlobalPointerMoveMonitor());\n        this._keydownListener = null;\n    }\n    startMonitoring(initialElement, pointerId, initialButtons, pointerMoveCallback, onStopCallback) {\n        // Add a <<capture>> keydown event listener that will cancel the monitoring\n        // if something other than a modifier key is pressed\n        this._keydownListener = dom.addStandardDisposableListener(initialElement.ownerDocument, 'keydown', (e) => {\n            const chord = e.toKeyCodeChord();\n            if (chord.isModifierKey()) {\n                // Allow modifier keys\n                return;\n            }\n            this._globalPointerMoveMonitor.stopMonitoring(true, e.browserEvent);\n        }, true);\n        this._globalPointerMoveMonitor.startMonitoring(initialElement, pointerId, initialButtons, (e) => {\n            pointerMoveCallback(new EditorMouseEvent(e, true, this._editorViewDomNode));\n        }, (e) => {\n            this._keydownListener.dispose();\n            onStopCallback(e);\n        });\n    }\n    stopMonitoring() {\n        this._globalPointerMoveMonitor.stopMonitoring(true);\n    }\n}\n/**\n * A helper to create dynamic css rules, bound to a class name.\n * Rules are reused.\n * Reference counting and delayed garbage collection ensure that no rules leak.\n*/\nexport class DynamicCssRules {\n    constructor(_editor) {\n        this._editor = _editor;\n        this._instanceId = ++DynamicCssRules._idPool;\n        this._counter = 0;\n        this._rules = new Map();\n        // We delay garbage collection so that hanging rules can be reused.\n        this._garbageCollectionScheduler = new RunOnceScheduler(() => this.garbageCollect(), 1000);\n    }\n    createClassNameRef(options) {\n        const rule = this.getOrCreateRule(options);\n        rule.increaseRefCount();\n        return {\n            className: rule.className,\n            dispose: () => {\n                rule.decreaseRefCount();\n                this._garbageCollectionScheduler.schedule();\n            }\n        };\n    }\n    getOrCreateRule(properties) {\n        const key = this.computeUniqueKey(properties);\n        let existingRule = this._rules.get(key);\n        if (!existingRule) {\n            const counter = this._counter++;\n            existingRule = new RefCountedCssRule(key, `dyn-rule-${this._instanceId}-${counter}`, dom.isInShadowDOM(this._editor.getContainerDomNode())\n                ? this._editor.getContainerDomNode()\n                : undefined, properties);\n            this._rules.set(key, existingRule);\n        }\n        return existingRule;\n    }\n    computeUniqueKey(properties) {\n        return JSON.stringify(properties);\n    }\n    garbageCollect() {\n        for (const rule of this._rules.values()) {\n            if (!rule.hasReferences()) {\n                this._rules.delete(rule.key);\n                rule.dispose();\n            }\n        }\n    }\n}\nDynamicCssRules._idPool = 0;\nclass RefCountedCssRule {\n    constructor(key, className, _containerElement, properties) {\n        this.key = key;\n        this.className = className;\n        this.properties = properties;\n        this._referenceCount = 0;\n        this._styleElementDisposables = new DisposableStore();\n        this._styleElement = dom.createStyleSheet(_containerElement, undefined, this._styleElementDisposables);\n        this._styleElement.textContent = this.getCssText(this.className, this.properties);\n    }\n    getCssText(className, properties) {\n        let str = `.${className} {`;\n        for (const prop in properties) {\n            const value = properties[prop];\n            let cssValue;\n            if (typeof value === 'object') {\n                cssValue = asCssVariable(value.id);\n            }\n            else {\n                cssValue = value;\n            }\n            const cssPropName = camelToDashes(prop);\n            str += `\\n\\t${cssPropName}: ${cssValue};`;\n        }\n        str += `\\n}`;\n        return str;\n    }\n    dispose() {\n        this._styleElementDisposables.dispose();\n        this._styleElement = undefined;\n    }\n    increaseRefCount() {\n        this._referenceCount++;\n    }\n    decreaseRefCount() {\n        this._referenceCount--;\n    }\n    hasReferences() {\n        return this._referenceCount > 0;\n    }\n}\nfunction camelToDashes(str) {\n    return str.replace(/(^[A-Z])/, ([first]) => first.toLowerCase())\n        .replace(/([A-Z])/g, ([letter]) => `-${letter.toLowerCase()}`);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/editorExtensions.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../nls.js';\nimport { URI } from '../../base/common/uri.js';\nimport { ICodeEditorService } from './services/codeEditorService.js';\nimport { Position } from '../common/core/position.js';\nimport { IModelService } from '../common/services/model.js';\nimport { ITextModelService } from '../common/services/resolverService.js';\nimport { MenuId, MenuRegistry, Action2 } from '../../platform/actions/common/actions.js';\nimport { CommandsRegistry } from '../../platform/commands/common/commands.js';\nimport { ContextKeyExpr, IContextKeyService } from '../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../platform/instantiation/common/instantiation.js';\nimport { KeybindingsRegistry } from '../../platform/keybinding/common/keybindingsRegistry.js';\nimport { Registry } from '../../platform/registry/common/platform.js';\nimport { ITelemetryService } from '../../platform/telemetry/common/telemetry.js';\nimport { assertType } from '../../base/common/types.js';\nimport { ILogService } from '../../platform/log/common/log.js';\nimport { getActiveElement } from '../../base/browser/dom.js';\nexport class Command {\n    constructor(opts) {\n        this.id = opts.id;\n        this.precondition = opts.precondition;\n        this._kbOpts = opts.kbOpts;\n        this._menuOpts = opts.menuOpts;\n        this.metadata = opts.metadata;\n    }\n    register() {\n        if (Array.isArray(this._menuOpts)) {\n            this._menuOpts.forEach(this._registerMenuItem, this);\n        }\n        else if (this._menuOpts) {\n            this._registerMenuItem(this._menuOpts);\n        }\n        if (this._kbOpts) {\n            const kbOptsArr = Array.isArray(this._kbOpts) ? this._kbOpts : [this._kbOpts];\n            for (const kbOpts of kbOptsArr) {\n                let kbWhen = kbOpts.kbExpr;\n                if (this.precondition) {\n                    if (kbWhen) {\n                        kbWhen = ContextKeyExpr.and(kbWhen, this.precondition);\n                    }\n                    else {\n                        kbWhen = this.precondition;\n                    }\n                }\n                const desc = {\n                    id: this.id,\n                    weight: kbOpts.weight,\n                    args: kbOpts.args,\n                    when: kbWhen,\n                    primary: kbOpts.primary,\n                    secondary: kbOpts.secondary,\n                    win: kbOpts.win,\n                    linux: kbOpts.linux,\n                    mac: kbOpts.mac,\n                };\n                KeybindingsRegistry.registerKeybindingRule(desc);\n            }\n        }\n        CommandsRegistry.registerCommand({\n            id: this.id,\n            handler: (accessor, args) => this.runCommand(accessor, args),\n            metadata: this.metadata\n        });\n    }\n    _registerMenuItem(item) {\n        MenuRegistry.appendMenuItem(item.menuId, {\n            group: item.group,\n            command: {\n                id: this.id,\n                title: item.title,\n                icon: item.icon,\n                precondition: this.precondition\n            },\n            when: item.when,\n            order: item.order\n        });\n    }\n}\nexport class MultiCommand extends Command {\n    constructor() {\n        super(...arguments);\n        this._implementations = [];\n    }\n    /**\n     * A higher priority gets to be looked at first\n     */\n    addImplementation(priority, name, implementation, when) {\n        this._implementations.push({ priority, name, implementation, when });\n        this._implementations.sort((a, b) => b.priority - a.priority);\n        return {\n            dispose: () => {\n                for (let i = 0; i < this._implementations.length; i++) {\n                    if (this._implementations[i].implementation === implementation) {\n                        this._implementations.splice(i, 1);\n                        return;\n                    }\n                }\n            }\n        };\n    }\n    runCommand(accessor, args) {\n        const logService = accessor.get(ILogService);\n        const contextKeyService = accessor.get(IContextKeyService);\n        logService.trace(`Executing Command '${this.id}' which has ${this._implementations.length} bound.`);\n        for (const impl of this._implementations) {\n            if (impl.when) {\n                const context = contextKeyService.getContext(getActiveElement());\n                const value = impl.when.evaluate(context);\n                if (!value) {\n                    continue;\n                }\n            }\n            const result = impl.implementation(accessor, args);\n            if (result) {\n                logService.trace(`Command '${this.id}' was handled by '${impl.name}'.`);\n                if (typeof result === 'boolean') {\n                    return;\n                }\n                return result;\n            }\n        }\n        logService.trace(`The Command '${this.id}' was not handled by any implementation.`);\n    }\n}\n//#endregion\n/**\n * A command that delegates to another command's implementation.\n *\n * This lets different commands be registered but share the same implementation\n */\nexport class ProxyCommand extends Command {\n    constructor(command, opts) {\n        super(opts);\n        this.command = command;\n    }\n    runCommand(accessor, args) {\n        return this.command.runCommand(accessor, args);\n    }\n}\nexport class EditorCommand extends Command {\n    /**\n     * Create a command class that is bound to a certain editor contribution.\n     */\n    static bindToContribution(controllerGetter) {\n        return class EditorControllerCommandImpl extends EditorCommand {\n            constructor(opts) {\n                super(opts);\n                this._callback = opts.handler;\n            }\n            runEditorCommand(accessor, editor, args) {\n                const controller = controllerGetter(editor);\n                if (controller) {\n                    this._callback(controller, args);\n                }\n            }\n        };\n    }\n    static runEditorCommand(accessor, args, precondition, runner) {\n        const codeEditorService = accessor.get(ICodeEditorService);\n        // Find the editor with text focus or active\n        const editor = codeEditorService.getFocusedCodeEditor() || codeEditorService.getActiveCodeEditor();\n        if (!editor) {\n            // well, at least we tried...\n            return;\n        }\n        return editor.invokeWithinContext((editorAccessor) => {\n            const kbService = editorAccessor.get(IContextKeyService);\n            if (!kbService.contextMatchesRules(precondition !== null && precondition !== void 0 ? precondition : undefined)) {\n                // precondition does not hold\n                return;\n            }\n            return runner(editorAccessor, editor, args);\n        });\n    }\n    runCommand(accessor, args) {\n        return EditorCommand.runEditorCommand(accessor, args, this.precondition, (accessor, editor, args) => this.runEditorCommand(accessor, editor, args));\n    }\n}\nexport class EditorAction extends EditorCommand {\n    static convertOptions(opts) {\n        let menuOpts;\n        if (Array.isArray(opts.menuOpts)) {\n            menuOpts = opts.menuOpts;\n        }\n        else if (opts.menuOpts) {\n            menuOpts = [opts.menuOpts];\n        }\n        else {\n            menuOpts = [];\n        }\n        function withDefaults(item) {\n            if (!item.menuId) {\n                item.menuId = MenuId.EditorContext;\n            }\n            if (!item.title) {\n                item.title = opts.label;\n            }\n            item.when = ContextKeyExpr.and(opts.precondition, item.when);\n            return item;\n        }\n        if (Array.isArray(opts.contextMenuOpts)) {\n            menuOpts.push(...opts.contextMenuOpts.map(withDefaults));\n        }\n        else if (opts.contextMenuOpts) {\n            menuOpts.push(withDefaults(opts.contextMenuOpts));\n        }\n        opts.menuOpts = menuOpts;\n        return opts;\n    }\n    constructor(opts) {\n        super(EditorAction.convertOptions(opts));\n        this.label = opts.label;\n        this.alias = opts.alias;\n    }\n    runEditorCommand(accessor, editor, args) {\n        this.reportTelemetry(accessor, editor);\n        return this.run(accessor, editor, args || {});\n    }\n    reportTelemetry(accessor, editor) {\n        accessor.get(ITelemetryService).publicLog2('editorActionInvoked', { name: this.label, id: this.id });\n    }\n}\nexport class MultiEditorAction extends EditorAction {\n    constructor() {\n        super(...arguments);\n        this._implementations = [];\n    }\n    /**\n     * A higher priority gets to be looked at first\n     */\n    addImplementation(priority, implementation) {\n        this._implementations.push([priority, implementation]);\n        this._implementations.sort((a, b) => b[0] - a[0]);\n        return {\n            dispose: () => {\n                for (let i = 0; i < this._implementations.length; i++) {\n                    if (this._implementations[i][1] === implementation) {\n                        this._implementations.splice(i, 1);\n                        return;\n                    }\n                }\n            }\n        };\n    }\n    run(accessor, editor, args) {\n        for (const impl of this._implementations) {\n            const result = impl[1](accessor, editor, args);\n            if (result) {\n                if (typeof result === 'boolean') {\n                    return;\n                }\n                return result;\n            }\n        }\n    }\n}\n//#endregion EditorAction\n//#region EditorAction2\nexport class EditorAction2 extends Action2 {\n    run(accessor, ...args) {\n        // Find the editor with text focus or active\n        const codeEditorService = accessor.get(ICodeEditorService);\n        const editor = codeEditorService.getFocusedCodeEditor() || codeEditorService.getActiveCodeEditor();\n        if (!editor) {\n            // well, at least we tried...\n            return;\n        }\n        // precondition does hold\n        return editor.invokeWithinContext((editorAccessor) => {\n            var _a, _b;\n            const kbService = editorAccessor.get(IContextKeyService);\n            const logService = editorAccessor.get(ILogService);\n            const enabled = kbService.contextMatchesRules((_a = this.desc.precondition) !== null && _a !== void 0 ? _a : undefined);\n            if (!enabled) {\n                logService.debug(`[EditorAction2] NOT running command because its precondition is FALSE`, this.desc.id, (_b = this.desc.precondition) === null || _b === void 0 ? void 0 : _b.serialize());\n                return;\n            }\n            return this.runEditorCommand(editorAccessor, editor, ...args);\n        });\n    }\n}\n//#endregion\n// --- Registration of commands and actions\nexport function registerModelAndPositionCommand(id, handler) {\n    CommandsRegistry.registerCommand(id, function (accessor, ...args) {\n        const instaService = accessor.get(IInstantiationService);\n        const [resource, position] = args;\n        assertType(URI.isUri(resource));\n        assertType(Position.isIPosition(position));\n        const model = accessor.get(IModelService).getModel(resource);\n        if (model) {\n            const editorPosition = Position.lift(position);\n            return instaService.invokeFunction(handler, model, editorPosition, ...args.slice(2));\n        }\n        return accessor.get(ITextModelService).createModelReference(resource).then(reference => {\n            return new Promise((resolve, reject) => {\n                try {\n                    const result = instaService.invokeFunction(handler, reference.object.textEditorModel, Position.lift(position), args.slice(2));\n                    resolve(result);\n                }\n                catch (err) {\n                    reject(err);\n                }\n            }).finally(() => {\n                reference.dispose();\n            });\n        });\n    });\n}\nexport function registerEditorCommand(editorCommand) {\n    EditorContributionRegistry.INSTANCE.registerEditorCommand(editorCommand);\n    return editorCommand;\n}\nexport function registerEditorAction(ctor) {\n    const action = new ctor();\n    EditorContributionRegistry.INSTANCE.registerEditorAction(action);\n    return action;\n}\nexport function registerMultiEditorAction(action) {\n    EditorContributionRegistry.INSTANCE.registerEditorAction(action);\n    return action;\n}\nexport function registerInstantiatedEditorAction(editorAction) {\n    EditorContributionRegistry.INSTANCE.registerEditorAction(editorAction);\n}\n/**\n * Registers an editor contribution. Editor contributions have a lifecycle which is bound\n * to a specific code editor instance.\n */\nexport function registerEditorContribution(id, ctor, instantiation) {\n    EditorContributionRegistry.INSTANCE.registerEditorContribution(id, ctor, instantiation);\n}\nexport var EditorExtensionsRegistry;\n(function (EditorExtensionsRegistry) {\n    function getEditorCommand(commandId) {\n        return EditorContributionRegistry.INSTANCE.getEditorCommand(commandId);\n    }\n    EditorExtensionsRegistry.getEditorCommand = getEditorCommand;\n    function getEditorActions() {\n        return EditorContributionRegistry.INSTANCE.getEditorActions();\n    }\n    EditorExtensionsRegistry.getEditorActions = getEditorActions;\n    function getEditorContributions() {\n        return EditorContributionRegistry.INSTANCE.getEditorContributions();\n    }\n    EditorExtensionsRegistry.getEditorContributions = getEditorContributions;\n    function getSomeEditorContributions(ids) {\n        return EditorContributionRegistry.INSTANCE.getEditorContributions().filter(c => ids.indexOf(c.id) >= 0);\n    }\n    EditorExtensionsRegistry.getSomeEditorContributions = getSomeEditorContributions;\n    function getDiffEditorContributions() {\n        return EditorContributionRegistry.INSTANCE.getDiffEditorContributions();\n    }\n    EditorExtensionsRegistry.getDiffEditorContributions = getDiffEditorContributions;\n})(EditorExtensionsRegistry || (EditorExtensionsRegistry = {}));\n// Editor extension points\nconst Extensions = {\n    EditorCommonContributions: 'editor.contributions'\n};\nclass EditorContributionRegistry {\n    constructor() {\n        this.editorContributions = [];\n        this.diffEditorContributions = [];\n        this.editorActions = [];\n        this.editorCommands = Object.create(null);\n    }\n    registerEditorContribution(id, ctor, instantiation) {\n        this.editorContributions.push({ id, ctor: ctor, instantiation });\n    }\n    getEditorContributions() {\n        return this.editorContributions.slice(0);\n    }\n    getDiffEditorContributions() {\n        return this.diffEditorContributions.slice(0);\n    }\n    registerEditorAction(action) {\n        action.register();\n        this.editorActions.push(action);\n    }\n    getEditorActions() {\n        return this.editorActions;\n    }\n    registerEditorCommand(editorCommand) {\n        editorCommand.register();\n        this.editorCommands[editorCommand.id] = editorCommand;\n    }\n    getEditorCommand(commandId) {\n        return (this.editorCommands[commandId] || null);\n    }\n}\nEditorContributionRegistry.INSTANCE = new EditorContributionRegistry();\nRegistry.add(Extensions.EditorCommonContributions, EditorContributionRegistry.INSTANCE);\nfunction registerCommand(command) {\n    command.register();\n    return command;\n}\nexport const UndoCommand = registerCommand(new MultiCommand({\n    id: 'undo',\n    precondition: undefined,\n    kbOpts: {\n        weight: 0 /* KeybindingWeight.EditorCore */,\n        primary: 2048 /* KeyMod.CtrlCmd */ | 56 /* KeyCode.KeyZ */\n    },\n    menuOpts: [{\n            menuId: MenuId.MenubarEditMenu,\n            group: '1_do',\n            title: nls.localize({ key: 'miUndo', comment: ['&& denotes a mnemonic'] }, \"&&Undo\"),\n            order: 1\n        }, {\n            menuId: MenuId.CommandPalette,\n            group: '',\n            title: nls.localize('undo', \"Undo\"),\n            order: 1\n        }]\n}));\nregisterCommand(new ProxyCommand(UndoCommand, { id: 'default:undo', precondition: undefined }));\nexport const RedoCommand = registerCommand(new MultiCommand({\n    id: 'redo',\n    precondition: undefined,\n    kbOpts: {\n        weight: 0 /* KeybindingWeight.EditorCore */,\n        primary: 2048 /* KeyMod.CtrlCmd */ | 55 /* KeyCode.KeyY */,\n        secondary: [2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 56 /* KeyCode.KeyZ */],\n        mac: { primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 56 /* KeyCode.KeyZ */ }\n    },\n    menuOpts: [{\n            menuId: MenuId.MenubarEditMenu,\n            group: '1_do',\n            title: nls.localize({ key: 'miRedo', comment: ['&& denotes a mnemonic'] }, \"&&Redo\"),\n            order: 2\n        }, {\n            menuId: MenuId.CommandPalette,\n            group: '',\n            title: nls.localize('redo', \"Redo\"),\n            order: 1\n        }]\n}));\nregisterCommand(new ProxyCommand(RedoCommand, { id: 'default:redo', precondition: undefined }));\nexport const SelectAllCommand = registerCommand(new MultiCommand({\n    id: 'editor.action.selectAll',\n    precondition: undefined,\n    kbOpts: {\n        weight: 0 /* KeybindingWeight.EditorCore */,\n        kbExpr: null,\n        primary: 2048 /* KeyMod.CtrlCmd */ | 31 /* KeyCode.KeyA */\n    },\n    menuOpts: [{\n            menuId: MenuId.MenubarSelectionMenu,\n            group: '1_basic',\n            title: nls.localize({ key: 'miSelectAll', comment: ['&& denotes a mnemonic'] }, \"&&Select All\"),\n            order: 1\n        }, {\n            menuId: MenuId.CommandPalette,\n            group: '',\n            title: nls.localize('selectAll', \"Select All\"),\n            order: 1\n        }]\n}));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/observableUtilities.js",
    "content": "import { observableFromEvent } from '../../base/common/observable.js';\n/**\n * Returns a facade for the code editor that provides observables for various states/events.\n*/\nexport function obsCodeEditor(editor) {\n    return ObservableCodeEditor.get(editor);\n}\nclass ObservableCodeEditor {\n    /**\n     * Make sure that editor is not disposed yet!\n    */\n    static get(editor) {\n        let result = ObservableCodeEditor._map.get(editor);\n        if (!result) {\n            result = new ObservableCodeEditor(editor);\n            ObservableCodeEditor._map.set(editor, result);\n            const d = editor.onDidDispose(() => {\n                ObservableCodeEditor._map.delete(editor);\n                d.dispose();\n            });\n        }\n        return result;\n    }\n    constructor(editor) {\n        this.editor = editor;\n        this.model = observableFromEvent(this.editor.onDidChangeModel, () => this.editor.getModel());\n    }\n}\nObservableCodeEditor._map = new Map();\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/services/abstractCodeEditorService.js",
    "content": "var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Emitter } from '../../../base/common/event.js';\nimport { Disposable, toDisposable } from '../../../base/common/lifecycle.js';\nimport { LinkedList } from '../../../base/common/linkedList.js';\nimport { IThemeService } from '../../../platform/theme/common/themeService.js';\nlet AbstractCodeEditorService = class AbstractCodeEditorService extends Disposable {\n    constructor(_themeService) {\n        super();\n        this._themeService = _themeService;\n        this._onWillCreateCodeEditor = this._register(new Emitter());\n        this._onCodeEditorAdd = this._register(new Emitter());\n        this.onCodeEditorAdd = this._onCodeEditorAdd.event;\n        this._onCodeEditorRemove = this._register(new Emitter());\n        this.onCodeEditorRemove = this._onCodeEditorRemove.event;\n        this._onWillCreateDiffEditor = this._register(new Emitter());\n        this._onDiffEditorAdd = this._register(new Emitter());\n        this.onDiffEditorAdd = this._onDiffEditorAdd.event;\n        this._onDiffEditorRemove = this._register(new Emitter());\n        this.onDiffEditorRemove = this._onDiffEditorRemove.event;\n        this._decorationOptionProviders = new Map();\n        this._codeEditorOpenHandlers = new LinkedList();\n        this._modelProperties = new Map();\n        this._codeEditors = Object.create(null);\n        this._diffEditors = Object.create(null);\n        this._globalStyleSheet = null;\n    }\n    willCreateCodeEditor() {\n        this._onWillCreateCodeEditor.fire();\n    }\n    addCodeEditor(editor) {\n        this._codeEditors[editor.getId()] = editor;\n        this._onCodeEditorAdd.fire(editor);\n    }\n    removeCodeEditor(editor) {\n        if (delete this._codeEditors[editor.getId()]) {\n            this._onCodeEditorRemove.fire(editor);\n        }\n    }\n    listCodeEditors() {\n        return Object.keys(this._codeEditors).map(id => this._codeEditors[id]);\n    }\n    willCreateDiffEditor() {\n        this._onWillCreateDiffEditor.fire();\n    }\n    addDiffEditor(editor) {\n        this._diffEditors[editor.getId()] = editor;\n        this._onDiffEditorAdd.fire(editor);\n    }\n    listDiffEditors() {\n        return Object.keys(this._diffEditors).map(id => this._diffEditors[id]);\n    }\n    getFocusedCodeEditor() {\n        let editorWithWidgetFocus = null;\n        const editors = this.listCodeEditors();\n        for (const editor of editors) {\n            if (editor.hasTextFocus()) {\n                // bingo!\n                return editor;\n            }\n            if (editor.hasWidgetFocus()) {\n                editorWithWidgetFocus = editor;\n            }\n        }\n        return editorWithWidgetFocus;\n    }\n    removeDecorationType(key) {\n        const provider = this._decorationOptionProviders.get(key);\n        if (provider) {\n            provider.refCount--;\n            if (provider.refCount <= 0) {\n                this._decorationOptionProviders.delete(key);\n                provider.dispose();\n                this.listCodeEditors().forEach((ed) => ed.removeDecorationsByType(key));\n            }\n        }\n    }\n    setModelProperty(resource, key, value) {\n        const key1 = resource.toString();\n        let dest;\n        if (this._modelProperties.has(key1)) {\n            dest = this._modelProperties.get(key1);\n        }\n        else {\n            dest = new Map();\n            this._modelProperties.set(key1, dest);\n        }\n        dest.set(key, value);\n    }\n    getModelProperty(resource, key) {\n        const key1 = resource.toString();\n        if (this._modelProperties.has(key1)) {\n            const innerMap = this._modelProperties.get(key1);\n            return innerMap.get(key);\n        }\n        return undefined;\n    }\n    async openCodeEditor(input, source, sideBySide) {\n        for (const handler of this._codeEditorOpenHandlers) {\n            const candidate = await handler(input, source, sideBySide);\n            if (candidate !== null) {\n                return candidate;\n            }\n        }\n        return null;\n    }\n    registerCodeEditorOpenHandler(handler) {\n        const rm = this._codeEditorOpenHandlers.unshift(handler);\n        return toDisposable(rm);\n    }\n};\nAbstractCodeEditorService = __decorate([\n    __param(0, IThemeService)\n], AbstractCodeEditorService);\nexport { AbstractCodeEditorService };\nexport class GlobalStyleSheet {\n    constructor(styleSheet) {\n        this._styleSheet = styleSheet;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/services/bulkEditService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { isObject } from '../../../base/common/types.js';\nexport const IBulkEditService = createDecorator('IWorkspaceEditService');\nexport class ResourceEdit {\n    constructor(metadata) {\n        this.metadata = metadata;\n    }\n    static convert(edit) {\n        return edit.edits.map(edit => {\n            if (ResourceTextEdit.is(edit)) {\n                return ResourceTextEdit.lift(edit);\n            }\n            if (ResourceFileEdit.is(edit)) {\n                return ResourceFileEdit.lift(edit);\n            }\n            throw new Error('Unsupported edit');\n        });\n    }\n}\nexport class ResourceTextEdit extends ResourceEdit {\n    static is(candidate) {\n        if (candidate instanceof ResourceTextEdit) {\n            return true;\n        }\n        return isObject(candidate)\n            && URI.isUri(candidate.resource)\n            && isObject(candidate.textEdit);\n    }\n    static lift(edit) {\n        if (edit instanceof ResourceTextEdit) {\n            return edit;\n        }\n        else {\n            return new ResourceTextEdit(edit.resource, edit.textEdit, edit.versionId, edit.metadata);\n        }\n    }\n    constructor(resource, textEdit, versionId = undefined, metadata) {\n        super(metadata);\n        this.resource = resource;\n        this.textEdit = textEdit;\n        this.versionId = versionId;\n    }\n}\nexport class ResourceFileEdit extends ResourceEdit {\n    static is(candidate) {\n        if (candidate instanceof ResourceFileEdit) {\n            return true;\n        }\n        else {\n            return isObject(candidate)\n                && (Boolean(candidate.newResource) || Boolean(candidate.oldResource));\n        }\n    }\n    static lift(edit) {\n        if (edit instanceof ResourceFileEdit) {\n            return edit;\n        }\n        else {\n            return new ResourceFileEdit(edit.oldResource, edit.newResource, edit.options, edit.metadata);\n        }\n    }\n    constructor(oldResource, newResource, options = {}, metadata) {\n        super(metadata);\n        this.oldResource = oldResource;\n        this.newResource = newResource;\n        this.options = options;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/services/codeEditorService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nexport const ICodeEditorService = createDecorator('codeEditorService');\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/services/editorWorkerService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { IntervalTimer, timeout } from '../../../base/common/async.js';\nimport { Disposable, dispose, toDisposable, DisposableStore } from '../../../base/common/lifecycle.js';\nimport { SimpleWorkerClient, logOnceWebWorkerWarning } from '../../../base/common/worker/simpleWorker.js';\nimport { DefaultWorkerFactory } from '../../../base/browser/defaultWorkerFactory.js';\nimport { Range } from '../../common/core/range.js';\nimport { ILanguageConfigurationService } from '../../common/languages/languageConfigurationRegistry.js';\nimport { EditorSimpleWorker } from '../../common/services/editorSimpleWorker.js';\nimport { IModelService } from '../../common/services/model.js';\nimport { ITextResourceConfigurationService } from '../../common/services/textResourceConfiguration.js';\nimport { isNonEmptyArray } from '../../../base/common/arrays.js';\nimport { ILogService } from '../../../platform/log/common/log.js';\nimport { StopWatch } from '../../../base/common/stopwatch.js';\nimport { canceled } from '../../../base/common/errors.js';\nimport { ILanguageFeaturesService } from '../../common/services/languageFeatures.js';\nimport { MovedText } from '../../common/diff/linesDiffComputer.js';\nimport { DetailedLineRangeMapping, RangeMapping, LineRangeMapping } from '../../common/diff/rangeMapping.js';\nimport { LineRange } from '../../common/core/lineRange.js';\nimport { mainWindow } from '../../../base/browser/window.js';\nimport { WindowIntervalTimer } from '../../../base/browser/dom.js';\n/**\n * Stop syncing a model to the worker if it was not needed for 1 min.\n */\nconst STOP_SYNC_MODEL_DELTA_TIME_MS = 60 * 1000;\n/**\n * Stop the worker if it was not needed for 5 min.\n */\nconst STOP_WORKER_DELTA_TIME_MS = 5 * 60 * 1000;\nfunction canSyncModel(modelService, resource) {\n    const model = modelService.getModel(resource);\n    if (!model) {\n        return false;\n    }\n    if (model.isTooLargeForSyncing()) {\n        return false;\n    }\n    return true;\n}\nlet EditorWorkerService = class EditorWorkerService extends Disposable {\n    constructor(modelService, configurationService, logService, languageConfigurationService, languageFeaturesService) {\n        super();\n        this._modelService = modelService;\n        this._workerManager = this._register(new WorkerManager(this._modelService, languageConfigurationService));\n        this._logService = logService;\n        // register default link-provider and default completions-provider\n        this._register(languageFeaturesService.linkProvider.register({ language: '*', hasAccessToAllModels: true }, {\n            provideLinks: (model, token) => {\n                if (!canSyncModel(this._modelService, model.uri)) {\n                    return Promise.resolve({ links: [] }); // File too large\n                }\n                return this._workerManager.withWorker().then(client => client.computeLinks(model.uri)).then(links => {\n                    return links && { links };\n                });\n            }\n        }));\n        this._register(languageFeaturesService.completionProvider.register('*', new WordBasedCompletionItemProvider(this._workerManager, configurationService, this._modelService, languageConfigurationService)));\n    }\n    dispose() {\n        super.dispose();\n    }\n    canComputeUnicodeHighlights(uri) {\n        return canSyncModel(this._modelService, uri);\n    }\n    computedUnicodeHighlights(uri, options, range) {\n        return this._workerManager.withWorker().then(client => client.computedUnicodeHighlights(uri, options, range));\n    }\n    async computeDiff(original, modified, options, algorithm) {\n        const result = await this._workerManager.withWorker().then(client => client.computeDiff(original, modified, options, algorithm));\n        if (!result) {\n            return null;\n        }\n        // Convert from space efficient JSON data to rich objects.\n        const diff = {\n            identical: result.identical,\n            quitEarly: result.quitEarly,\n            changes: toLineRangeMappings(result.changes),\n            moves: result.moves.map(m => new MovedText(new LineRangeMapping(new LineRange(m[0], m[1]), new LineRange(m[2], m[3])), toLineRangeMappings(m[4])))\n        };\n        return diff;\n        function toLineRangeMappings(changes) {\n            return changes.map((c) => {\n                var _a;\n                return new DetailedLineRangeMapping(new LineRange(c[0], c[1]), new LineRange(c[2], c[3]), (_a = c[4]) === null || _a === void 0 ? void 0 : _a.map((c) => new RangeMapping(new Range(c[0], c[1], c[2], c[3]), new Range(c[4], c[5], c[6], c[7]))));\n            });\n        }\n    }\n    computeMoreMinimalEdits(resource, edits, pretty = false) {\n        if (isNonEmptyArray(edits)) {\n            if (!canSyncModel(this._modelService, resource)) {\n                return Promise.resolve(edits); // File too large\n            }\n            const sw = StopWatch.create();\n            const result = this._workerManager.withWorker().then(client => client.computeMoreMinimalEdits(resource, edits, pretty));\n            result.finally(() => this._logService.trace('FORMAT#computeMoreMinimalEdits', resource.toString(true), sw.elapsed()));\n            return Promise.race([result, timeout(1000).then(() => edits)]);\n        }\n        else {\n            return Promise.resolve(undefined);\n        }\n    }\n    canNavigateValueSet(resource) {\n        return (canSyncModel(this._modelService, resource));\n    }\n    navigateValueSet(resource, range, up) {\n        return this._workerManager.withWorker().then(client => client.navigateValueSet(resource, range, up));\n    }\n    canComputeWordRanges(resource) {\n        return canSyncModel(this._modelService, resource);\n    }\n    computeWordRanges(resource, range) {\n        return this._workerManager.withWorker().then(client => client.computeWordRanges(resource, range));\n    }\n    findSectionHeaders(uri, options) {\n        return this._workerManager.withWorker().then(client => client.findSectionHeaders(uri, options));\n    }\n};\nEditorWorkerService = __decorate([\n    __param(0, IModelService),\n    __param(1, ITextResourceConfigurationService),\n    __param(2, ILogService),\n    __param(3, ILanguageConfigurationService),\n    __param(4, ILanguageFeaturesService)\n], EditorWorkerService);\nexport { EditorWorkerService };\nclass WordBasedCompletionItemProvider {\n    constructor(workerManager, configurationService, modelService, languageConfigurationService) {\n        this.languageConfigurationService = languageConfigurationService;\n        this._debugDisplayName = 'wordbasedCompletions';\n        this._workerManager = workerManager;\n        this._configurationService = configurationService;\n        this._modelService = modelService;\n    }\n    async provideCompletionItems(model, position) {\n        const config = this._configurationService.getValue(model.uri, position, 'editor');\n        if (config.wordBasedSuggestions === 'off') {\n            return undefined;\n        }\n        const models = [];\n        if (config.wordBasedSuggestions === 'currentDocument') {\n            // only current file and only if not too large\n            if (canSyncModel(this._modelService, model.uri)) {\n                models.push(model.uri);\n            }\n        }\n        else {\n            // either all files or files of same language\n            for (const candidate of this._modelService.getModels()) {\n                if (!canSyncModel(this._modelService, candidate.uri)) {\n                    continue;\n                }\n                if (candidate === model) {\n                    models.unshift(candidate.uri);\n                }\n                else if (config.wordBasedSuggestions === 'allDocuments' || candidate.getLanguageId() === model.getLanguageId()) {\n                    models.push(candidate.uri);\n                }\n            }\n        }\n        if (models.length === 0) {\n            return undefined; // File too large, no other files\n        }\n        const wordDefRegExp = this.languageConfigurationService.getLanguageConfiguration(model.getLanguageId()).getWordDefinition();\n        const word = model.getWordAtPosition(position);\n        const replace = !word ? Range.fromPositions(position) : new Range(position.lineNumber, word.startColumn, position.lineNumber, word.endColumn);\n        const insert = replace.setEndPosition(position.lineNumber, position.column);\n        const client = await this._workerManager.withWorker();\n        const data = await client.textualSuggest(models, word === null || word === void 0 ? void 0 : word.word, wordDefRegExp);\n        if (!data) {\n            return undefined;\n        }\n        return {\n            duration: data.duration,\n            suggestions: data.words.map((word) => {\n                return {\n                    kind: 18 /* languages.CompletionItemKind.Text */,\n                    label: word,\n                    insertText: word,\n                    range: { insert, replace }\n                };\n            }),\n        };\n    }\n}\nclass WorkerManager extends Disposable {\n    constructor(modelService, languageConfigurationService) {\n        super();\n        this.languageConfigurationService = languageConfigurationService;\n        this._modelService = modelService;\n        this._editorWorkerClient = null;\n        this._lastWorkerUsedTime = (new Date()).getTime();\n        const stopWorkerInterval = this._register(new WindowIntervalTimer());\n        stopWorkerInterval.cancelAndSet(() => this._checkStopIdleWorker(), Math.round(STOP_WORKER_DELTA_TIME_MS / 2), mainWindow);\n        this._register(this._modelService.onModelRemoved(_ => this._checkStopEmptyWorker()));\n    }\n    dispose() {\n        if (this._editorWorkerClient) {\n            this._editorWorkerClient.dispose();\n            this._editorWorkerClient = null;\n        }\n        super.dispose();\n    }\n    /**\n     * Check if the model service has no more models and stop the worker if that is the case.\n     */\n    _checkStopEmptyWorker() {\n        if (!this._editorWorkerClient) {\n            return;\n        }\n        const models = this._modelService.getModels();\n        if (models.length === 0) {\n            // There are no more models => nothing possible for me to do\n            this._editorWorkerClient.dispose();\n            this._editorWorkerClient = null;\n        }\n    }\n    /**\n     * Check if the worker has been idle for a while and then stop it.\n     */\n    _checkStopIdleWorker() {\n        if (!this._editorWorkerClient) {\n            return;\n        }\n        const timeSinceLastWorkerUsedTime = (new Date()).getTime() - this._lastWorkerUsedTime;\n        if (timeSinceLastWorkerUsedTime > STOP_WORKER_DELTA_TIME_MS) {\n            this._editorWorkerClient.dispose();\n            this._editorWorkerClient = null;\n        }\n    }\n    withWorker() {\n        this._lastWorkerUsedTime = (new Date()).getTime();\n        if (!this._editorWorkerClient) {\n            this._editorWorkerClient = new EditorWorkerClient(this._modelService, false, 'editorWorkerService', this.languageConfigurationService);\n        }\n        return Promise.resolve(this._editorWorkerClient);\n    }\n}\nclass EditorModelManager extends Disposable {\n    constructor(proxy, modelService, keepIdleModels) {\n        super();\n        this._syncedModels = Object.create(null);\n        this._syncedModelsLastUsedTime = Object.create(null);\n        this._proxy = proxy;\n        this._modelService = modelService;\n        if (!keepIdleModels) {\n            const timer = new IntervalTimer();\n            timer.cancelAndSet(() => this._checkStopModelSync(), Math.round(STOP_SYNC_MODEL_DELTA_TIME_MS / 2));\n            this._register(timer);\n        }\n    }\n    dispose() {\n        for (const modelUrl in this._syncedModels) {\n            dispose(this._syncedModels[modelUrl]);\n        }\n        this._syncedModels = Object.create(null);\n        this._syncedModelsLastUsedTime = Object.create(null);\n        super.dispose();\n    }\n    ensureSyncedResources(resources, forceLargeModels) {\n        for (const resource of resources) {\n            const resourceStr = resource.toString();\n            if (!this._syncedModels[resourceStr]) {\n                this._beginModelSync(resource, forceLargeModels);\n            }\n            if (this._syncedModels[resourceStr]) {\n                this._syncedModelsLastUsedTime[resourceStr] = (new Date()).getTime();\n            }\n        }\n    }\n    _checkStopModelSync() {\n        const currentTime = (new Date()).getTime();\n        const toRemove = [];\n        for (const modelUrl in this._syncedModelsLastUsedTime) {\n            const elapsedTime = currentTime - this._syncedModelsLastUsedTime[modelUrl];\n            if (elapsedTime > STOP_SYNC_MODEL_DELTA_TIME_MS) {\n                toRemove.push(modelUrl);\n            }\n        }\n        for (const e of toRemove) {\n            this._stopModelSync(e);\n        }\n    }\n    _beginModelSync(resource, forceLargeModels) {\n        const model = this._modelService.getModel(resource);\n        if (!model) {\n            return;\n        }\n        if (!forceLargeModels && model.isTooLargeForSyncing()) {\n            return;\n        }\n        const modelUrl = resource.toString();\n        this._proxy.acceptNewModel({\n            url: model.uri.toString(),\n            lines: model.getLinesContent(),\n            EOL: model.getEOL(),\n            versionId: model.getVersionId()\n        });\n        const toDispose = new DisposableStore();\n        toDispose.add(model.onDidChangeContent((e) => {\n            this._proxy.acceptModelChanged(modelUrl.toString(), e);\n        }));\n        toDispose.add(model.onWillDispose(() => {\n            this._stopModelSync(modelUrl);\n        }));\n        toDispose.add(toDisposable(() => {\n            this._proxy.acceptRemovedModel(modelUrl);\n        }));\n        this._syncedModels[modelUrl] = toDispose;\n    }\n    _stopModelSync(modelUrl) {\n        const toDispose = this._syncedModels[modelUrl];\n        delete this._syncedModels[modelUrl];\n        delete this._syncedModelsLastUsedTime[modelUrl];\n        dispose(toDispose);\n    }\n}\nclass SynchronousWorkerClient {\n    constructor(instance) {\n        this._instance = instance;\n        this._proxyObj = Promise.resolve(this._instance);\n    }\n    dispose() {\n        this._instance.dispose();\n    }\n    getProxyObject() {\n        return this._proxyObj;\n    }\n}\nexport class EditorWorkerHost {\n    constructor(workerClient) {\n        this._workerClient = workerClient;\n    }\n    // foreign host request\n    fhr(method, args) {\n        return this._workerClient.fhr(method, args);\n    }\n}\nexport class EditorWorkerClient extends Disposable {\n    constructor(modelService, keepIdleModels, label, languageConfigurationService) {\n        super();\n        this.languageConfigurationService = languageConfigurationService;\n        this._disposed = false;\n        this._modelService = modelService;\n        this._keepIdleModels = keepIdleModels;\n        this._workerFactory = new DefaultWorkerFactory(label);\n        this._worker = null;\n        this._modelManager = null;\n    }\n    // foreign host request\n    fhr(method, args) {\n        throw new Error(`Not implemented!`);\n    }\n    _getOrCreateWorker() {\n        if (!this._worker) {\n            try {\n                this._worker = this._register(new SimpleWorkerClient(this._workerFactory, 'vs/editor/common/services/editorSimpleWorker', new EditorWorkerHost(this)));\n            }\n            catch (err) {\n                logOnceWebWorkerWarning(err);\n                this._worker = new SynchronousWorkerClient(new EditorSimpleWorker(new EditorWorkerHost(this), null));\n            }\n        }\n        return this._worker;\n    }\n    _getProxy() {\n        return this._getOrCreateWorker().getProxyObject().then(undefined, (err) => {\n            logOnceWebWorkerWarning(err);\n            this._worker = new SynchronousWorkerClient(new EditorSimpleWorker(new EditorWorkerHost(this), null));\n            return this._getOrCreateWorker().getProxyObject();\n        });\n    }\n    _getOrCreateModelManager(proxy) {\n        if (!this._modelManager) {\n            this._modelManager = this._register(new EditorModelManager(proxy, this._modelService, this._keepIdleModels));\n        }\n        return this._modelManager;\n    }\n    async _withSyncedResources(resources, forceLargeModels = false) {\n        if (this._disposed) {\n            return Promise.reject(canceled());\n        }\n        return this._getProxy().then((proxy) => {\n            this._getOrCreateModelManager(proxy).ensureSyncedResources(resources, forceLargeModels);\n            return proxy;\n        });\n    }\n    computedUnicodeHighlights(uri, options, range) {\n        return this._withSyncedResources([uri]).then(proxy => {\n            return proxy.computeUnicodeHighlights(uri.toString(), options, range);\n        });\n    }\n    computeDiff(original, modified, options, algorithm) {\n        return this._withSyncedResources([original, modified], /* forceLargeModels */ true).then(proxy => {\n            return proxy.computeDiff(original.toString(), modified.toString(), options, algorithm);\n        });\n    }\n    computeMoreMinimalEdits(resource, edits, pretty) {\n        return this._withSyncedResources([resource]).then(proxy => {\n            return proxy.computeMoreMinimalEdits(resource.toString(), edits, pretty);\n        });\n    }\n    computeLinks(resource) {\n        return this._withSyncedResources([resource]).then(proxy => {\n            return proxy.computeLinks(resource.toString());\n        });\n    }\n    computeDefaultDocumentColors(resource) {\n        return this._withSyncedResources([resource]).then(proxy => {\n            return proxy.computeDefaultDocumentColors(resource.toString());\n        });\n    }\n    async textualSuggest(resources, leadingWord, wordDefRegExp) {\n        const proxy = await this._withSyncedResources(resources);\n        const wordDef = wordDefRegExp.source;\n        const wordDefFlags = wordDefRegExp.flags;\n        return proxy.textualSuggest(resources.map(r => r.toString()), leadingWord, wordDef, wordDefFlags);\n    }\n    computeWordRanges(resource, range) {\n        return this._withSyncedResources([resource]).then(proxy => {\n            const model = this._modelService.getModel(resource);\n            if (!model) {\n                return Promise.resolve(null);\n            }\n            const wordDefRegExp = this.languageConfigurationService.getLanguageConfiguration(model.getLanguageId()).getWordDefinition();\n            const wordDef = wordDefRegExp.source;\n            const wordDefFlags = wordDefRegExp.flags;\n            return proxy.computeWordRanges(resource.toString(), range, wordDef, wordDefFlags);\n        });\n    }\n    navigateValueSet(resource, range, up) {\n        return this._withSyncedResources([resource]).then(proxy => {\n            const model = this._modelService.getModel(resource);\n            if (!model) {\n                return null;\n            }\n            const wordDefRegExp = this.languageConfigurationService.getLanguageConfiguration(model.getLanguageId()).getWordDefinition();\n            const wordDef = wordDefRegExp.source;\n            const wordDefFlags = wordDefRegExp.flags;\n            return proxy.navigateValueSet(resource.toString(), range, up, wordDef, wordDefFlags);\n        });\n    }\n    findSectionHeaders(uri, options) {\n        return this._withSyncedResources([uri]).then(proxy => {\n            return proxy.findSectionHeaders(uri.toString(), options);\n        });\n    }\n    dispose() {\n        super.dispose();\n        this._disposed = true;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/services/hoverService/hover.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-workbench .workbench-hover {\n\tposition: relative;\n\tfont-size: 13px;\n\tline-height: 19px;\n\t/* Must be higher than sash's z-index and terminal canvases */\n\tz-index: 40;\n\toverflow: hidden;\n\tmax-width: 700px;\n\tbackground: var(--vscode-editorHoverWidget-background);\n\tborder: 1px solid var(--vscode-editorHoverWidget-border);\n\tborder-radius: 3px;\n\tcolor: var(--vscode-editorHoverWidget-foreground);\n\tbox-shadow: 0 2px 8px var(--vscode-widget-shadow);\n}\n\n.monaco-workbench .workbench-hover hr {\n\tborder-bottom: none;\n}\n\n.monaco-workbench .workbench-hover:not(.skip-fade-in) {\n\tanimation: fadein 100ms linear;\n}\n\n.monaco-workbench .workbench-hover.compact {\n\tfont-size: 12px;\n}\n\n.monaco-workbench .workbench-hover.compact .hover-contents {\n\tpadding: 2px 8px;\n}\n\n.monaco-workbench .workbench-hover-container.locked .workbench-hover {\n\toutline: 1px solid var(--vscode-editorHoverWidget-border);\n}\n.monaco-workbench .workbench-hover-container.locked .workbench-hover:focus,\n.monaco-workbench .workbench-hover-lock:focus {\n\toutline: 1px solid var(--vscode-focusBorder);\n}\n.monaco-workbench .workbench-hover-container.locked .workbench-hover-lock:hover {\n\tbackground: var(--vscode-toolbar-hoverBackground);\n}\n\n.monaco-workbench .workbench-hover-pointer {\n\tposition: absolute;\n\t/* Must be higher than workbench hover z-index */\n\tz-index: 41;\n\tpointer-events: none;\n}\n\n.monaco-workbench .workbench-hover-pointer:after {\n\tcontent: '';\n\tposition: absolute;\n\twidth: 5px;\n\theight: 5px;\n\tbackground-color: var(--vscode-editorHoverWidget-background);\n\tborder-right: 1px solid var(--vscode-editorHoverWidget-border);\n\tborder-bottom: 1px solid var(--vscode-editorHoverWidget-border);\n}\n.monaco-workbench .locked .workbench-hover-pointer:after {\n\twidth: 4px;\n\theight: 4px;\n\tborder-right-width: 2px;\n\tborder-bottom-width: 2px;\n}\n\n.monaco-workbench .workbench-hover-pointer.left   { left: -3px; }\n.monaco-workbench .workbench-hover-pointer.right  { right: 3px; }\n.monaco-workbench .workbench-hover-pointer.top    { top: -3px; }\n.monaco-workbench .workbench-hover-pointer.bottom { bottom: 3px; }\n\n.monaco-workbench .workbench-hover-pointer.left:after {\n\ttransform: rotate(135deg);\n}\n\n.monaco-workbench .workbench-hover-pointer.right:after {\n\ttransform: rotate(315deg);\n}\n\n.monaco-workbench .workbench-hover-pointer.top:after {\n\ttransform: rotate(225deg);\n}\n\n.monaco-workbench .workbench-hover-pointer.bottom:after {\n\ttransform: rotate(45deg);\n}\n\n.monaco-workbench .workbench-hover a {\n\tcolor: var(--vscode-textLink-foreground);\n}\n\n.monaco-workbench .workbench-hover a:focus {\n\toutline: 1px solid;\n\toutline-offset: -1px;\n\ttext-decoration: underline;\n\toutline-color: var(--vscode-focusBorder);\n}\n\n.monaco-workbench .workbench-hover a:hover,\n.monaco-workbench .workbench-hover a:active {\n\tcolor: var(--vscode-textLink-activeForeground);\n}\n\n.monaco-workbench .workbench-hover code {\n\tbackground: var(--vscode-textCodeBlock-background);\n}\n\n.monaco-workbench .workbench-hover .hover-row .actions {\n\tbackground: var(--vscode-editorHoverWidget-statusBarBackground);\n}\n\n.monaco-workbench .workbench-hover.right-aligned {\n\t/* The context view service wraps strangely when it's right up against the edge without this */\n\tleft: 1px;\n}\n\n.monaco-workbench .workbench-hover.right-aligned .hover-row.status-bar .actions {\n\tflex-direction: row-reverse;\n}\n\n.monaco-workbench .workbench-hover.right-aligned .hover-row.status-bar .actions .action-container {\n\tmargin-right: 0;\n\tmargin-left: 16px;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/services/hoverService/hoverService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { registerSingleton } from '../../../../platform/instantiation/common/extensions.js';\nimport { registerThemingParticipant } from '../../../../platform/theme/common/themeService.js';\nimport { editorHoverBorder } from '../../../../platform/theme/common/colorRegistry.js';\nimport { IHoverService } from '../../../../platform/hover/browser/hover.js';\nimport { IContextMenuService } from '../../../../platform/contextview/browser/contextView.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { HoverWidget } from './hoverWidget.js';\nimport { Disposable, DisposableStore, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { addDisposableListener, EventType, getActiveElement, isAncestorOfActiveElement, isAncestor, getWindow, isHTMLElement } from '../../../../base/browser/dom.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { StandardKeyboardEvent } from '../../../../base/browser/keyboardEvent.js';\nimport { IAccessibilityService } from '../../../../platform/accessibility/common/accessibility.js';\nimport { ILayoutService } from '../../../../platform/layout/browser/layoutService.js';\nimport { mainWindow } from '../../../../base/browser/window.js';\nimport { ContextViewHandler } from '../../../../platform/contextview/browser/contextViewService.js';\nimport { UpdatableHoverWidget } from './updatableHoverWidget.js';\nimport { TimeoutTimer } from '../../../../base/common/async.js';\nlet HoverService = class HoverService extends Disposable {\n    constructor(_instantiationService, contextMenuService, _keybindingService, _layoutService, _accessibilityService) {\n        super();\n        this._instantiationService = _instantiationService;\n        this._keybindingService = _keybindingService;\n        this._layoutService = _layoutService;\n        this._accessibilityService = _accessibilityService;\n        this._existingHovers = new Map();\n        contextMenuService.onDidShowContextMenu(() => this.hideHover());\n        this._contextViewHandler = this._register(new ContextViewHandler(this._layoutService));\n    }\n    showHover(options, focus, skipLastFocusedUpdate) {\n        var _a, _b, _c, _d;\n        if (getHoverOptionsIdentity(this._currentHoverOptions) === getHoverOptionsIdentity(options)) {\n            return undefined;\n        }\n        if (this._currentHover && ((_b = (_a = this._currentHoverOptions) === null || _a === void 0 ? void 0 : _a.persistence) === null || _b === void 0 ? void 0 : _b.sticky)) {\n            return undefined;\n        }\n        this._currentHoverOptions = options;\n        this._lastHoverOptions = options;\n        const trapFocus = options.trapFocus || this._accessibilityService.isScreenReaderOptimized();\n        const activeElement = getActiveElement();\n        // HACK, remove this check when #189076 is fixed\n        if (!skipLastFocusedUpdate) {\n            if (trapFocus && activeElement) {\n                if (!activeElement.classList.contains('monaco-hover')) {\n                    this._lastFocusedElementBeforeOpen = activeElement;\n                }\n            }\n            else {\n                this._lastFocusedElementBeforeOpen = undefined;\n            }\n        }\n        const hoverDisposables = new DisposableStore();\n        const hover = this._instantiationService.createInstance(HoverWidget, options);\n        if ((_c = options.persistence) === null || _c === void 0 ? void 0 : _c.sticky) {\n            hover.isLocked = true;\n        }\n        hover.onDispose(() => {\n            var _a, _b;\n            const hoverWasFocused = ((_a = this._currentHover) === null || _a === void 0 ? void 0 : _a.domNode) && isAncestorOfActiveElement(this._currentHover.domNode);\n            if (hoverWasFocused) {\n                // Required to handle cases such as closing the hover with the escape key\n                (_b = this._lastFocusedElementBeforeOpen) === null || _b === void 0 ? void 0 : _b.focus();\n            }\n            // Only clear the current options if it's the current hover, the current options help\n            // reduce flickering when the same hover is shown multiple times\n            if (this._currentHoverOptions === options) {\n                this._currentHoverOptions = undefined;\n            }\n            hoverDisposables.dispose();\n        }, undefined, hoverDisposables);\n        // Set the container explicitly to enable aux window support\n        if (!options.container) {\n            const targetElement = isHTMLElement(options.target) ? options.target : options.target.targetElements[0];\n            options.container = this._layoutService.getContainer(getWindow(targetElement));\n        }\n        this._contextViewHandler.showContextView(new HoverContextViewDelegate(hover, focus), options.container);\n        hover.onRequestLayout(() => this._contextViewHandler.layout(), undefined, hoverDisposables);\n        if ((_d = options.persistence) === null || _d === void 0 ? void 0 : _d.sticky) {\n            hoverDisposables.add(addDisposableListener(getWindow(options.container).document, EventType.MOUSE_DOWN, e => {\n                if (!isAncestor(e.target, hover.domNode)) {\n                    this.doHideHover();\n                }\n            }));\n        }\n        else {\n            if ('targetElements' in options.target) {\n                for (const element of options.target.targetElements) {\n                    hoverDisposables.add(addDisposableListener(element, EventType.CLICK, () => this.hideHover()));\n                }\n            }\n            else {\n                hoverDisposables.add(addDisposableListener(options.target, EventType.CLICK, () => this.hideHover()));\n            }\n            const focusedElement = getActiveElement();\n            if (focusedElement) {\n                const focusedElementDocument = getWindow(focusedElement).document;\n                hoverDisposables.add(addDisposableListener(focusedElement, EventType.KEY_DOWN, e => { var _a; return this._keyDown(e, hover, !!((_a = options.persistence) === null || _a === void 0 ? void 0 : _a.hideOnKeyDown)); }));\n                hoverDisposables.add(addDisposableListener(focusedElementDocument, EventType.KEY_DOWN, e => { var _a; return this._keyDown(e, hover, !!((_a = options.persistence) === null || _a === void 0 ? void 0 : _a.hideOnKeyDown)); }));\n                hoverDisposables.add(addDisposableListener(focusedElement, EventType.KEY_UP, e => this._keyUp(e, hover)));\n                hoverDisposables.add(addDisposableListener(focusedElementDocument, EventType.KEY_UP, e => this._keyUp(e, hover)));\n            }\n        }\n        if ('IntersectionObserver' in mainWindow) {\n            const observer = new IntersectionObserver(e => this._intersectionChange(e, hover), { threshold: 0 });\n            const firstTargetElement = 'targetElements' in options.target ? options.target.targetElements[0] : options.target;\n            observer.observe(firstTargetElement);\n            hoverDisposables.add(toDisposable(() => observer.disconnect()));\n        }\n        this._currentHover = hover;\n        return hover;\n    }\n    hideHover() {\n        var _a;\n        if (((_a = this._currentHover) === null || _a === void 0 ? void 0 : _a.isLocked) || !this._currentHoverOptions) {\n            return;\n        }\n        this.doHideHover();\n    }\n    doHideHover() {\n        this._currentHover = undefined;\n        this._currentHoverOptions = undefined;\n        this._contextViewHandler.hideContextView();\n    }\n    _intersectionChange(entries, hover) {\n        const entry = entries[entries.length - 1];\n        if (!entry.isIntersecting) {\n            hover.dispose();\n        }\n    }\n    showAndFocusLastHover() {\n        if (!this._lastHoverOptions) {\n            return;\n        }\n        this.showHover(this._lastHoverOptions, true, true);\n    }\n    _keyDown(e, hover, hideOnKeyDown) {\n        var _a, _b;\n        if (e.key === 'Alt') {\n            hover.isLocked = true;\n            return;\n        }\n        const event = new StandardKeyboardEvent(e);\n        const keybinding = this._keybindingService.resolveKeyboardEvent(event);\n        if (keybinding.getSingleModifierDispatchChords().some(value => !!value) || this._keybindingService.softDispatch(event, event.target).kind !== 0 /* ResultKind.NoMatchingKb */) {\n            return;\n        }\n        if (hideOnKeyDown && (!((_a = this._currentHoverOptions) === null || _a === void 0 ? void 0 : _a.trapFocus) || e.key !== 'Tab')) {\n            this.hideHover();\n            (_b = this._lastFocusedElementBeforeOpen) === null || _b === void 0 ? void 0 : _b.focus();\n        }\n    }\n    _keyUp(e, hover) {\n        var _a;\n        if (e.key === 'Alt') {\n            hover.isLocked = false;\n            // Hide if alt is released while the mouse is not over hover/target\n            if (!hover.isMouseIn) {\n                this.hideHover();\n                (_a = this._lastFocusedElementBeforeOpen) === null || _a === void 0 ? void 0 : _a.focus();\n            }\n        }\n    }\n    // TODO: Investigate performance of this function. There seems to be a lot of content created\n    //       and thrown away on start up\n    setupUpdatableHover(hoverDelegate, htmlElement, content, options) {\n        htmlElement.setAttribute('custom-hover', 'true');\n        if (htmlElement.title !== '') {\n            console.warn('HTML element already has a title attribute, which will conflict with the custom hover. Please remove the title attribute.');\n            console.trace('Stack trace:', htmlElement.title);\n            htmlElement.title = '';\n        }\n        let hoverPreparation;\n        let hoverWidget;\n        const hideHover = (disposeWidget, disposePreparation) => {\n            var _a;\n            const hadHover = hoverWidget !== undefined;\n            if (disposeWidget) {\n                hoverWidget === null || hoverWidget === void 0 ? void 0 : hoverWidget.dispose();\n                hoverWidget = undefined;\n            }\n            if (disposePreparation) {\n                hoverPreparation === null || hoverPreparation === void 0 ? void 0 : hoverPreparation.dispose();\n                hoverPreparation = undefined;\n            }\n            if (hadHover) {\n                (_a = hoverDelegate.onDidHideHover) === null || _a === void 0 ? void 0 : _a.call(hoverDelegate);\n                hoverWidget = undefined;\n            }\n        };\n        const triggerShowHover = (delay, focus, target, trapFocus) => {\n            return new TimeoutTimer(async () => {\n                if (!hoverWidget || hoverWidget.isDisposed) {\n                    hoverWidget = new UpdatableHoverWidget(hoverDelegate, target || htmlElement, delay > 0);\n                    await hoverWidget.update(typeof content === 'function' ? content() : content, focus, { ...options, trapFocus });\n                }\n            }, delay);\n        };\n        let isMouseDown = false;\n        const mouseDownEmitter = addDisposableListener(htmlElement, EventType.MOUSE_DOWN, () => {\n            isMouseDown = true;\n            hideHover(true, true);\n        }, true);\n        const mouseUpEmitter = addDisposableListener(htmlElement, EventType.MOUSE_UP, () => {\n            isMouseDown = false;\n        }, true);\n        const mouseLeaveEmitter = addDisposableListener(htmlElement, EventType.MOUSE_LEAVE, (e) => {\n            isMouseDown = false;\n            hideHover(false, e.fromElement === htmlElement);\n        }, true);\n        const onMouseOver = (e) => {\n            if (hoverPreparation) {\n                return;\n            }\n            const toDispose = new DisposableStore();\n            const target = {\n                targetElements: [htmlElement],\n                dispose: () => { }\n            };\n            if (hoverDelegate.placement === undefined || hoverDelegate.placement === 'mouse') {\n                // track the mouse position\n                const onMouseMove = (e) => {\n                    target.x = e.x + 10;\n                    if ((isHTMLElement(e.target)) && getHoverTargetElement(e.target, htmlElement) !== htmlElement) {\n                        hideHover(true, true);\n                    }\n                };\n                toDispose.add(addDisposableListener(htmlElement, EventType.MOUSE_MOVE, onMouseMove, true));\n            }\n            hoverPreparation = toDispose;\n            if ((isHTMLElement(e.target)) && getHoverTargetElement(e.target, htmlElement) !== htmlElement) {\n                return; // Do not show hover when the mouse is over another hover target\n            }\n            toDispose.add(triggerShowHover(hoverDelegate.delay, false, target));\n        };\n        const mouseOverDomEmitter = addDisposableListener(htmlElement, EventType.MOUSE_OVER, onMouseOver, true);\n        const onFocus = () => {\n            if (isMouseDown || hoverPreparation) {\n                return;\n            }\n            const target = {\n                targetElements: [htmlElement],\n                dispose: () => { }\n            };\n            const toDispose = new DisposableStore();\n            const onBlur = () => hideHover(true, true);\n            toDispose.add(addDisposableListener(htmlElement, EventType.BLUR, onBlur, true));\n            toDispose.add(triggerShowHover(hoverDelegate.delay, false, target));\n            hoverPreparation = toDispose;\n        };\n        // Do not show hover when focusing an input or textarea\n        let focusDomEmitter;\n        const tagName = htmlElement.tagName.toLowerCase();\n        if (tagName !== 'input' && tagName !== 'textarea') {\n            focusDomEmitter = addDisposableListener(htmlElement, EventType.FOCUS, onFocus, true);\n        }\n        const hover = {\n            show: focus => {\n                hideHover(false, true); // terminate a ongoing mouse over preparation\n                triggerShowHover(0, focus, undefined, focus); // show hover immediately\n            },\n            hide: () => {\n                hideHover(true, true);\n            },\n            update: async (newContent, hoverOptions) => {\n                content = newContent;\n                await (hoverWidget === null || hoverWidget === void 0 ? void 0 : hoverWidget.update(content, undefined, hoverOptions));\n            },\n            dispose: () => {\n                this._existingHovers.delete(htmlElement);\n                mouseOverDomEmitter.dispose();\n                mouseLeaveEmitter.dispose();\n                mouseDownEmitter.dispose();\n                mouseUpEmitter.dispose();\n                focusDomEmitter === null || focusDomEmitter === void 0 ? void 0 : focusDomEmitter.dispose();\n                hideHover(true, true);\n            }\n        };\n        this._existingHovers.set(htmlElement, hover);\n        return hover;\n    }\n    triggerUpdatableHover(target) {\n        const hover = this._existingHovers.get(target);\n        if (hover) {\n            hover.show(true);\n        }\n    }\n    dispose() {\n        this._existingHovers.forEach(hover => hover.dispose());\n        super.dispose();\n    }\n};\nHoverService = __decorate([\n    __param(0, IInstantiationService),\n    __param(1, IContextMenuService),\n    __param(2, IKeybindingService),\n    __param(3, ILayoutService),\n    __param(4, IAccessibilityService)\n], HoverService);\nexport { HoverService };\nfunction getHoverOptionsIdentity(options) {\n    var _a;\n    if (options === undefined) {\n        return undefined;\n    }\n    return (_a = options === null || options === void 0 ? void 0 : options.id) !== null && _a !== void 0 ? _a : options;\n}\nclass HoverContextViewDelegate {\n    get anchorPosition() {\n        return this._hover.anchor;\n    }\n    constructor(_hover, _focus = false) {\n        this._hover = _hover;\n        this._focus = _focus;\n        // Render over all other context views\n        this.layer = 1;\n    }\n    render(container) {\n        this._hover.render(container);\n        if (this._focus) {\n            this._hover.focus();\n        }\n        return this._hover;\n    }\n    getAnchor() {\n        return {\n            x: this._hover.x,\n            y: this._hover.y\n        };\n    }\n    layout() {\n        this._hover.layout();\n    }\n}\nfunction getHoverTargetElement(element, stopElement) {\n    stopElement = stopElement !== null && stopElement !== void 0 ? stopElement : getWindow(element).document.body;\n    while (!element.hasAttribute('custom-hover') && element !== stopElement) {\n        element = element.parentElement;\n    }\n    return element;\n}\nregisterSingleton(IHoverService, HoverService, 1 /* InstantiationType.Delayed */);\nregisterThemingParticipant((theme, collector) => {\n    const hoverBorder = theme.getColor(editorHoverBorder);\n    if (hoverBorder) {\n        collector.addRule(`.monaco-workbench .workbench-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${hoverBorder.transparent(0.5)}; }`);\n        collector.addRule(`.monaco-workbench .workbench-hover hr { border-top: 1px solid ${hoverBorder.transparent(0.5)}; }`);\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/services/hoverService/hoverWidget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport './hover.css';\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { Emitter } from '../../../../base/common/event.js';\nimport * as dom from '../../../../base/browser/dom.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { EDITOR_FONT_DEFAULTS } from '../../../common/config/editorOptions.js';\nimport { HoverAction, HoverWidget as BaseHoverWidget, getHoverAccessibleViewHint } from '../../../../base/browser/ui/hover/hoverWidget.js';\nimport { Widget } from '../../../../base/browser/ui/widget.js';\nimport { IOpenerService } from '../../../../platform/opener/common/opener.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { MarkdownRenderer, openLinkFromMarkdown } from '../../widget/markdownRenderer/browser/markdownRenderer.js';\nimport { isMarkdownString } from '../../../../base/common/htmlContent.js';\nimport { localize } from '../../../../nls.js';\nimport { isMacintosh } from '../../../../base/common/platform.js';\nimport { IAccessibilityService } from '../../../../platform/accessibility/common/accessibility.js';\nimport { status } from '../../../../base/browser/ui/aria/aria.js';\nconst $ = dom.$;\nlet HoverWidget = class HoverWidget extends Widget {\n    get _targetWindow() {\n        return dom.getWindow(this._target.targetElements[0]);\n    }\n    get _targetDocumentElement() {\n        return dom.getWindow(this._target.targetElements[0]).document.documentElement;\n    }\n    get isDisposed() { return this._isDisposed; }\n    get isMouseIn() { return this._lockMouseTracker.isMouseIn; }\n    get domNode() { return this._hover.containerDomNode; }\n    get onDispose() { return this._onDispose.event; }\n    get onRequestLayout() { return this._onRequestLayout.event; }\n    get anchor() { return this._hoverPosition === 2 /* HoverPosition.BELOW */ ? 0 /* AnchorPosition.BELOW */ : 1 /* AnchorPosition.ABOVE */; }\n    get x() { return this._x; }\n    get y() { return this._y; }\n    /**\n     * Whether the hover is \"locked\" by holding the alt/option key. When locked, the hover will not\n     * hide and can be hovered regardless of whether the `hideOnHover` hover option is set.\n     */\n    get isLocked() { return this._isLocked; }\n    set isLocked(value) {\n        if (this._isLocked === value) {\n            return;\n        }\n        this._isLocked = value;\n        this._hoverContainer.classList.toggle('locked', this._isLocked);\n    }\n    constructor(options, _keybindingService, _configurationService, _openerService, _instantiationService, _accessibilityService) {\n        var _a, _b, _c, _d, _e, _f, _g, _h;\n        super();\n        this._keybindingService = _keybindingService;\n        this._configurationService = _configurationService;\n        this._openerService = _openerService;\n        this._instantiationService = _instantiationService;\n        this._accessibilityService = _accessibilityService;\n        this._messageListeners = new DisposableStore();\n        this._isDisposed = false;\n        this._forcePosition = false;\n        this._x = 0;\n        this._y = 0;\n        this._isLocked = false;\n        this._enableFocusTraps = false;\n        this._addedFocusTrap = false;\n        this._onDispose = this._register(new Emitter());\n        this._onRequestLayout = this._register(new Emitter());\n        this._linkHandler = options.linkHandler || (url => {\n            return openLinkFromMarkdown(this._openerService, url, isMarkdownString(options.content) ? options.content.isTrusted : undefined);\n        });\n        this._target = 'targetElements' in options.target ? options.target : new ElementHoverTarget(options.target);\n        this._hoverPointer = ((_a = options.appearance) === null || _a === void 0 ? void 0 : _a.showPointer) ? $('div.workbench-hover-pointer') : undefined;\n        this._hover = this._register(new BaseHoverWidget());\n        this._hover.containerDomNode.classList.add('workbench-hover', 'fadeIn');\n        if ((_b = options.appearance) === null || _b === void 0 ? void 0 : _b.compact) {\n            this._hover.containerDomNode.classList.add('workbench-hover', 'compact');\n        }\n        if ((_c = options.appearance) === null || _c === void 0 ? void 0 : _c.skipFadeInAnimation) {\n            this._hover.containerDomNode.classList.add('skip-fade-in');\n        }\n        if (options.additionalClasses) {\n            this._hover.containerDomNode.classList.add(...options.additionalClasses);\n        }\n        if ((_d = options.position) === null || _d === void 0 ? void 0 : _d.forcePosition) {\n            this._forcePosition = true;\n        }\n        if (options.trapFocus) {\n            this._enableFocusTraps = true;\n        }\n        this._hoverPosition = (_f = (_e = options.position) === null || _e === void 0 ? void 0 : _e.hoverPosition) !== null && _f !== void 0 ? _f : 3 /* HoverPosition.ABOVE */;\n        // Don't allow mousedown out of the widget, otherwise preventDefault will call and text will\n        // not be selected.\n        this.onmousedown(this._hover.containerDomNode, e => e.stopPropagation());\n        // Hide hover on escape\n        this.onkeydown(this._hover.containerDomNode, e => {\n            if (e.equals(9 /* KeyCode.Escape */)) {\n                this.dispose();\n            }\n        });\n        // Hide when the window loses focus\n        this._register(dom.addDisposableListener(this._targetWindow, 'blur', () => this.dispose()));\n        const rowElement = $('div.hover-row.markdown-hover');\n        const contentsElement = $('div.hover-contents');\n        if (typeof options.content === 'string') {\n            contentsElement.textContent = options.content;\n            contentsElement.style.whiteSpace = 'pre-wrap';\n        }\n        else if (dom.isHTMLElement(options.content)) {\n            contentsElement.appendChild(options.content);\n            contentsElement.classList.add('html-hover-contents');\n        }\n        else {\n            const markdown = options.content;\n            const mdRenderer = this._instantiationService.createInstance(MarkdownRenderer, { codeBlockFontFamily: this._configurationService.getValue('editor').fontFamily || EDITOR_FONT_DEFAULTS.fontFamily });\n            const { element } = mdRenderer.render(markdown, {\n                actionHandler: {\n                    callback: (content) => this._linkHandler(content),\n                    disposables: this._messageListeners\n                },\n                asyncRenderCallback: () => {\n                    contentsElement.classList.add('code-hover-contents');\n                    this.layout();\n                    // This changes the dimensions of the hover so trigger a layout\n                    this._onRequestLayout.fire();\n                }\n            });\n            contentsElement.appendChild(element);\n        }\n        rowElement.appendChild(contentsElement);\n        this._hover.contentsDomNode.appendChild(rowElement);\n        if (options.actions && options.actions.length > 0) {\n            const statusBarElement = $('div.hover-row.status-bar');\n            const actionsElement = $('div.actions');\n            options.actions.forEach(action => {\n                const keybinding = this._keybindingService.lookupKeybinding(action.commandId);\n                const keybindingLabel = keybinding ? keybinding.getLabel() : null;\n                HoverAction.render(actionsElement, {\n                    label: action.label,\n                    commandId: action.commandId,\n                    run: e => {\n                        action.run(e);\n                        this.dispose();\n                    },\n                    iconClass: action.iconClass\n                }, keybindingLabel);\n            });\n            statusBarElement.appendChild(actionsElement);\n            this._hover.containerDomNode.appendChild(statusBarElement);\n        }\n        this._hoverContainer = $('div.workbench-hover-container');\n        if (this._hoverPointer) {\n            this._hoverContainer.appendChild(this._hoverPointer);\n        }\n        this._hoverContainer.appendChild(this._hover.containerDomNode);\n        // Determine whether to hide on hover\n        let hideOnHover;\n        if (options.actions && options.actions.length > 0) {\n            // If there are actions, require hover so they can be accessed\n            hideOnHover = false;\n        }\n        else {\n            if (((_g = options.persistence) === null || _g === void 0 ? void 0 : _g.hideOnHover) === undefined) {\n                // When unset, will default to true when it's a string or when it's markdown that\n                // appears to have a link using a naive check for '](' and '</a>'\n                hideOnHover = typeof options.content === 'string' ||\n                    isMarkdownString(options.content) && !options.content.value.includes('](') && !options.content.value.includes('</a>');\n            }\n            else {\n                // It's set explicitly\n                hideOnHover = options.persistence.hideOnHover;\n            }\n        }\n        // Show the hover hint if needed\n        if (hideOnHover && ((_h = options.appearance) === null || _h === void 0 ? void 0 : _h.showHoverHint)) {\n            const statusBarElement = $('div.hover-row.status-bar');\n            const infoElement = $('div.info');\n            infoElement.textContent = localize('hoverhint', 'Hold {0} key to mouse over', isMacintosh ? 'Option' : 'Alt');\n            statusBarElement.appendChild(infoElement);\n            this._hover.containerDomNode.appendChild(statusBarElement);\n        }\n        const mouseTrackerTargets = [...this._target.targetElements];\n        if (!hideOnHover) {\n            mouseTrackerTargets.push(this._hoverContainer);\n        }\n        const mouseTracker = this._register(new CompositeMouseTracker(mouseTrackerTargets));\n        this._register(mouseTracker.onMouseOut(() => {\n            if (!this._isLocked) {\n                this.dispose();\n            }\n        }));\n        // Setup another mouse tracker when hideOnHover is set in order to track the hover as well\n        // when it is locked. This ensures the hover will hide on mouseout after alt has been\n        // released to unlock the element.\n        if (hideOnHover) {\n            const mouseTracker2Targets = [...this._target.targetElements, this._hoverContainer];\n            this._lockMouseTracker = this._register(new CompositeMouseTracker(mouseTracker2Targets));\n            this._register(this._lockMouseTracker.onMouseOut(() => {\n                if (!this._isLocked) {\n                    this.dispose();\n                }\n            }));\n        }\n        else {\n            this._lockMouseTracker = mouseTracker;\n        }\n    }\n    addFocusTrap() {\n        if (!this._enableFocusTraps || this._addedFocusTrap) {\n            return;\n        }\n        this._addedFocusTrap = true;\n        // Add a hover tab loop if the hover has at least one element with a valid tabIndex\n        const firstContainerFocusElement = this._hover.containerDomNode;\n        const lastContainerFocusElement = this.findLastFocusableChild(this._hover.containerDomNode);\n        if (lastContainerFocusElement) {\n            const beforeContainerFocusElement = dom.prepend(this._hoverContainer, $('div'));\n            const afterContainerFocusElement = dom.append(this._hoverContainer, $('div'));\n            beforeContainerFocusElement.tabIndex = 0;\n            afterContainerFocusElement.tabIndex = 0;\n            this._register(dom.addDisposableListener(afterContainerFocusElement, 'focus', (e) => {\n                firstContainerFocusElement.focus();\n                e.preventDefault();\n            }));\n            this._register(dom.addDisposableListener(beforeContainerFocusElement, 'focus', (e) => {\n                lastContainerFocusElement.focus();\n                e.preventDefault();\n            }));\n        }\n    }\n    findLastFocusableChild(root) {\n        if (root.hasChildNodes()) {\n            for (let i = 0; i < root.childNodes.length; i++) {\n                const node = root.childNodes.item(root.childNodes.length - i - 1);\n                if (node.nodeType === node.ELEMENT_NODE) {\n                    const parsedNode = node;\n                    if (typeof parsedNode.tabIndex === 'number' && parsedNode.tabIndex >= 0) {\n                        return parsedNode;\n                    }\n                }\n                const recursivelyFoundElement = this.findLastFocusableChild(node);\n                if (recursivelyFoundElement) {\n                    return recursivelyFoundElement;\n                }\n            }\n        }\n        return undefined;\n    }\n    render(container) {\n        var _a;\n        container.appendChild(this._hoverContainer);\n        const hoverFocused = this._hoverContainer.contains(this._hoverContainer.ownerDocument.activeElement);\n        const accessibleViewHint = hoverFocused && getHoverAccessibleViewHint(this._configurationService.getValue('accessibility.verbosity.hover') === true && this._accessibilityService.isScreenReaderOptimized(), (_a = this._keybindingService.lookupKeybinding('editor.action.accessibleView')) === null || _a === void 0 ? void 0 : _a.getAriaLabel());\n        if (accessibleViewHint) {\n            status(accessibleViewHint);\n        }\n        this.layout();\n        this.addFocusTrap();\n    }\n    layout() {\n        this._hover.containerDomNode.classList.remove('right-aligned');\n        this._hover.contentsDomNode.style.maxHeight = '';\n        const getZoomAccountedBoundingClientRect = (e) => {\n            const zoom = dom.getDomNodeZoomLevel(e);\n            const boundingRect = e.getBoundingClientRect();\n            return {\n                top: boundingRect.top * zoom,\n                bottom: boundingRect.bottom * zoom,\n                right: boundingRect.right * zoom,\n                left: boundingRect.left * zoom,\n            };\n        };\n        const targetBounds = this._target.targetElements.map(e => getZoomAccountedBoundingClientRect(e));\n        const { top, right, bottom, left } = targetBounds[0];\n        const width = right - left;\n        const height = bottom - top;\n        const targetRect = {\n            top, right, bottom, left, width, height,\n            center: {\n                x: left + (width / 2),\n                y: top + (height / 2)\n            }\n        };\n        // These calls adjust the position depending on spacing.\n        this.adjustHorizontalHoverPosition(targetRect);\n        this.adjustVerticalHoverPosition(targetRect);\n        // This call limits the maximum height of the hover.\n        this.adjustHoverMaxHeight(targetRect);\n        // Offset the hover position if there is a pointer so it aligns with the target element\n        this._hoverContainer.style.padding = '';\n        this._hoverContainer.style.margin = '';\n        if (this._hoverPointer) {\n            switch (this._hoverPosition) {\n                case 1 /* HoverPosition.RIGHT */:\n                    targetRect.left += 3 /* Constants.PointerSize */;\n                    targetRect.right += 3 /* Constants.PointerSize */;\n                    this._hoverContainer.style.paddingLeft = `${3 /* Constants.PointerSize */}px`;\n                    this._hoverContainer.style.marginLeft = `${-3 /* Constants.PointerSize */}px`;\n                    break;\n                case 0 /* HoverPosition.LEFT */:\n                    targetRect.left -= 3 /* Constants.PointerSize */;\n                    targetRect.right -= 3 /* Constants.PointerSize */;\n                    this._hoverContainer.style.paddingRight = `${3 /* Constants.PointerSize */}px`;\n                    this._hoverContainer.style.marginRight = `${-3 /* Constants.PointerSize */}px`;\n                    break;\n                case 2 /* HoverPosition.BELOW */:\n                    targetRect.top += 3 /* Constants.PointerSize */;\n                    targetRect.bottom += 3 /* Constants.PointerSize */;\n                    this._hoverContainer.style.paddingTop = `${3 /* Constants.PointerSize */}px`;\n                    this._hoverContainer.style.marginTop = `${-3 /* Constants.PointerSize */}px`;\n                    break;\n                case 3 /* HoverPosition.ABOVE */:\n                    targetRect.top -= 3 /* Constants.PointerSize */;\n                    targetRect.bottom -= 3 /* Constants.PointerSize */;\n                    this._hoverContainer.style.paddingBottom = `${3 /* Constants.PointerSize */}px`;\n                    this._hoverContainer.style.marginBottom = `${-3 /* Constants.PointerSize */}px`;\n                    break;\n            }\n            targetRect.center.x = targetRect.left + (width / 2);\n            targetRect.center.y = targetRect.top + (height / 2);\n        }\n        this.computeXCordinate(targetRect);\n        this.computeYCordinate(targetRect);\n        if (this._hoverPointer) {\n            // reset\n            this._hoverPointer.classList.remove('top');\n            this._hoverPointer.classList.remove('left');\n            this._hoverPointer.classList.remove('right');\n            this._hoverPointer.classList.remove('bottom');\n            this.setHoverPointerPosition(targetRect);\n        }\n        this._hover.onContentsChanged();\n    }\n    computeXCordinate(target) {\n        const hoverWidth = this._hover.containerDomNode.clientWidth + 2 /* Constants.HoverBorderWidth */;\n        if (this._target.x !== undefined) {\n            this._x = this._target.x;\n        }\n        else if (this._hoverPosition === 1 /* HoverPosition.RIGHT */) {\n            this._x = target.right;\n        }\n        else if (this._hoverPosition === 0 /* HoverPosition.LEFT */) {\n            this._x = target.left - hoverWidth;\n        }\n        else {\n            if (this._hoverPointer) {\n                this._x = target.center.x - (this._hover.containerDomNode.clientWidth / 2);\n            }\n            else {\n                this._x = target.left;\n            }\n            // Hover is going beyond window towards right end\n            if (this._x + hoverWidth >= this._targetDocumentElement.clientWidth) {\n                this._hover.containerDomNode.classList.add('right-aligned');\n                this._x = Math.max(this._targetDocumentElement.clientWidth - hoverWidth - 2 /* Constants.HoverWindowEdgeMargin */, this._targetDocumentElement.clientLeft);\n            }\n        }\n        // Hover is going beyond window towards left end\n        if (this._x < this._targetDocumentElement.clientLeft) {\n            this._x = target.left + 2 /* Constants.HoverWindowEdgeMargin */;\n        }\n    }\n    computeYCordinate(target) {\n        if (this._target.y !== undefined) {\n            this._y = this._target.y;\n        }\n        else if (this._hoverPosition === 3 /* HoverPosition.ABOVE */) {\n            this._y = target.top;\n        }\n        else if (this._hoverPosition === 2 /* HoverPosition.BELOW */) {\n            this._y = target.bottom - 2;\n        }\n        else {\n            if (this._hoverPointer) {\n                this._y = target.center.y + (this._hover.containerDomNode.clientHeight / 2);\n            }\n            else {\n                this._y = target.bottom;\n            }\n        }\n        // Hover on bottom is going beyond window\n        if (this._y > this._targetWindow.innerHeight) {\n            this._y = target.bottom;\n        }\n    }\n    adjustHorizontalHoverPosition(target) {\n        // Do not adjust horizontal hover position if x cordiante is provided\n        if (this._target.x !== undefined) {\n            return;\n        }\n        const hoverPointerOffset = (this._hoverPointer ? 3 /* Constants.PointerSize */ : 0);\n        // When force position is enabled, restrict max width\n        if (this._forcePosition) {\n            const padding = hoverPointerOffset + 2 /* Constants.HoverBorderWidth */;\n            if (this._hoverPosition === 1 /* HoverPosition.RIGHT */) {\n                this._hover.containerDomNode.style.maxWidth = `${this._targetDocumentElement.clientWidth - target.right - padding}px`;\n            }\n            else if (this._hoverPosition === 0 /* HoverPosition.LEFT */) {\n                this._hover.containerDomNode.style.maxWidth = `${target.left - padding}px`;\n            }\n            return;\n        }\n        // Position hover on right to target\n        if (this._hoverPosition === 1 /* HoverPosition.RIGHT */) {\n            const roomOnRight = this._targetDocumentElement.clientWidth - target.right;\n            // Hover on the right is going beyond window.\n            if (roomOnRight < this._hover.containerDomNode.clientWidth + hoverPointerOffset) {\n                const roomOnLeft = target.left;\n                // There's enough room on the left, flip the hover position\n                if (roomOnLeft >= this._hover.containerDomNode.clientWidth + hoverPointerOffset) {\n                    this._hoverPosition = 0 /* HoverPosition.LEFT */;\n                }\n                // Hover on the left would go beyond window too\n                else {\n                    this._hoverPosition = 2 /* HoverPosition.BELOW */;\n                }\n            }\n        }\n        // Position hover on left to target\n        else if (this._hoverPosition === 0 /* HoverPosition.LEFT */) {\n            const roomOnLeft = target.left;\n            // Hover on the left is going beyond window.\n            if (roomOnLeft < this._hover.containerDomNode.clientWidth + hoverPointerOffset) {\n                const roomOnRight = this._targetDocumentElement.clientWidth - target.right;\n                // There's enough room on the right, flip the hover position\n                if (roomOnRight >= this._hover.containerDomNode.clientWidth + hoverPointerOffset) {\n                    this._hoverPosition = 1 /* HoverPosition.RIGHT */;\n                }\n                // Hover on the right would go beyond window too\n                else {\n                    this._hoverPosition = 2 /* HoverPosition.BELOW */;\n                }\n            }\n            // Hover on the left is going beyond window.\n            if (target.left - this._hover.containerDomNode.clientWidth - hoverPointerOffset <= this._targetDocumentElement.clientLeft) {\n                this._hoverPosition = 1 /* HoverPosition.RIGHT */;\n            }\n        }\n    }\n    adjustVerticalHoverPosition(target) {\n        // Do not adjust vertical hover position if the y coordinate is provided\n        // or the position is forced\n        if (this._target.y !== undefined || this._forcePosition) {\n            return;\n        }\n        const hoverPointerOffset = (this._hoverPointer ? 3 /* Constants.PointerSize */ : 0);\n        // Position hover on top of the target\n        if (this._hoverPosition === 3 /* HoverPosition.ABOVE */) {\n            // Hover on top is going beyond window\n            if (target.top - this._hover.containerDomNode.clientHeight - hoverPointerOffset < 0) {\n                this._hoverPosition = 2 /* HoverPosition.BELOW */;\n            }\n        }\n        // Position hover below the target\n        else if (this._hoverPosition === 2 /* HoverPosition.BELOW */) {\n            // Hover on bottom is going beyond window\n            if (target.bottom + this._hover.containerDomNode.clientHeight + hoverPointerOffset > this._targetWindow.innerHeight) {\n                this._hoverPosition = 3 /* HoverPosition.ABOVE */;\n            }\n        }\n    }\n    adjustHoverMaxHeight(target) {\n        let maxHeight = this._targetWindow.innerHeight / 2;\n        // When force position is enabled, restrict max height\n        if (this._forcePosition) {\n            const padding = (this._hoverPointer ? 3 /* Constants.PointerSize */ : 0) + 2 /* Constants.HoverBorderWidth */;\n            if (this._hoverPosition === 3 /* HoverPosition.ABOVE */) {\n                maxHeight = Math.min(maxHeight, target.top - padding);\n            }\n            else if (this._hoverPosition === 2 /* HoverPosition.BELOW */) {\n                maxHeight = Math.min(maxHeight, this._targetWindow.innerHeight - target.bottom - padding);\n            }\n        }\n        this._hover.containerDomNode.style.maxHeight = `${maxHeight}px`;\n        if (this._hover.contentsDomNode.clientHeight < this._hover.contentsDomNode.scrollHeight) {\n            // Add padding for a vertical scrollbar\n            const extraRightPadding = `${this._hover.scrollbar.options.verticalScrollbarSize}px`;\n            if (this._hover.contentsDomNode.style.paddingRight !== extraRightPadding) {\n                this._hover.contentsDomNode.style.paddingRight = extraRightPadding;\n            }\n        }\n    }\n    setHoverPointerPosition(target) {\n        if (!this._hoverPointer) {\n            return;\n        }\n        switch (this._hoverPosition) {\n            case 0 /* HoverPosition.LEFT */:\n            case 1 /* HoverPosition.RIGHT */: {\n                this._hoverPointer.classList.add(this._hoverPosition === 0 /* HoverPosition.LEFT */ ? 'right' : 'left');\n                const hoverHeight = this._hover.containerDomNode.clientHeight;\n                // If hover is taller than target, then show the pointer at the center of target\n                if (hoverHeight > target.height) {\n                    this._hoverPointer.style.top = `${target.center.y - (this._y - hoverHeight) - 3 /* Constants.PointerSize */}px`;\n                }\n                // Otherwise show the pointer at the center of hover\n                else {\n                    this._hoverPointer.style.top = `${Math.round((hoverHeight / 2)) - 3 /* Constants.PointerSize */}px`;\n                }\n                break;\n            }\n            case 3 /* HoverPosition.ABOVE */:\n            case 2 /* HoverPosition.BELOW */: {\n                this._hoverPointer.classList.add(this._hoverPosition === 3 /* HoverPosition.ABOVE */ ? 'bottom' : 'top');\n                const hoverWidth = this._hover.containerDomNode.clientWidth;\n                // Position pointer at the center of the hover\n                let pointerLeftPosition = Math.round((hoverWidth / 2)) - 3 /* Constants.PointerSize */;\n                // If pointer goes beyond target then position it at the center of the target\n                const pointerX = this._x + pointerLeftPosition;\n                if (pointerX < target.left || pointerX > target.right) {\n                    pointerLeftPosition = target.center.x - this._x - 3 /* Constants.PointerSize */;\n                }\n                this._hoverPointer.style.left = `${pointerLeftPosition}px`;\n                break;\n            }\n        }\n    }\n    focus() {\n        this._hover.containerDomNode.focus();\n    }\n    dispose() {\n        if (!this._isDisposed) {\n            this._onDispose.fire();\n            this._hoverContainer.remove();\n            this._messageListeners.dispose();\n            this._target.dispose();\n            super.dispose();\n        }\n        this._isDisposed = true;\n    }\n};\nHoverWidget = __decorate([\n    __param(1, IKeybindingService),\n    __param(2, IConfigurationService),\n    __param(3, IOpenerService),\n    __param(4, IInstantiationService),\n    __param(5, IAccessibilityService)\n], HoverWidget);\nexport { HoverWidget };\nclass CompositeMouseTracker extends Widget {\n    get onMouseOut() { return this._onMouseOut.event; }\n    get isMouseIn() { return this._isMouseIn; }\n    constructor(_elements) {\n        super();\n        this._elements = _elements;\n        this._isMouseIn = true;\n        this._onMouseOut = this._register(new Emitter());\n        this._elements.forEach(n => this.onmouseover(n, () => this._onTargetMouseOver(n)));\n        this._elements.forEach(n => this.onmouseleave(n, () => this._onTargetMouseLeave(n)));\n    }\n    _onTargetMouseOver(target) {\n        this._isMouseIn = true;\n        this._clearEvaluateMouseStateTimeout(target);\n    }\n    _onTargetMouseLeave(target) {\n        this._isMouseIn = false;\n        this._evaluateMouseState(target);\n    }\n    _evaluateMouseState(target) {\n        this._clearEvaluateMouseStateTimeout(target);\n        // Evaluate whether the mouse is still outside asynchronously such that other mouse targets\n        // have the opportunity to first their mouse in event.\n        this._mouseTimeout = dom.getWindow(target).setTimeout(() => this._fireIfMouseOutside(), 0);\n    }\n    _clearEvaluateMouseStateTimeout(target) {\n        if (this._mouseTimeout) {\n            dom.getWindow(target).clearTimeout(this._mouseTimeout);\n            this._mouseTimeout = undefined;\n        }\n    }\n    _fireIfMouseOutside() {\n        if (!this._isMouseIn) {\n            this._onMouseOut.fire();\n        }\n    }\n}\nclass ElementHoverTarget {\n    constructor(_element) {\n        this._element = _element;\n        this.targetElements = [this._element];\n    }\n    dispose() {\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/services/hoverService/updatableHoverWidget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { isHTMLElement } from '../../../../base/browser/dom.js';\nimport { CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { isMarkdownString } from '../../../../base/common/htmlContent.js';\nimport { isFunction, isString } from '../../../../base/common/types.js';\nimport { localize } from '../../../../nls.js';\nexport class UpdatableHoverWidget {\n    constructor(hoverDelegate, target, fadeInAnimation) {\n        this.hoverDelegate = hoverDelegate;\n        this.target = target;\n        this.fadeInAnimation = fadeInAnimation;\n    }\n    async update(content, focus, options) {\n        var _a;\n        if (this._cancellationTokenSource) {\n            // there's an computation ongoing, cancel it\n            this._cancellationTokenSource.dispose(true);\n            this._cancellationTokenSource = undefined;\n        }\n        if (this.isDisposed) {\n            return;\n        }\n        let resolvedContent;\n        if (content === undefined || isString(content) || isHTMLElement(content)) {\n            resolvedContent = content;\n        }\n        else if (!isFunction(content.markdown)) {\n            resolvedContent = (_a = content.markdown) !== null && _a !== void 0 ? _a : content.markdownNotSupportedFallback;\n        }\n        else {\n            // compute the content, potentially long-running\n            // show 'Loading' if no hover is up yet\n            if (!this._hoverWidget) {\n                this.show(localize('iconLabel.loading', \"Loading...\"), focus, options);\n            }\n            // compute the content\n            this._cancellationTokenSource = new CancellationTokenSource();\n            const token = this._cancellationTokenSource.token;\n            resolvedContent = await content.markdown(token);\n            if (resolvedContent === undefined) {\n                resolvedContent = content.markdownNotSupportedFallback;\n            }\n            if (this.isDisposed || token.isCancellationRequested) {\n                // either the widget has been closed in the meantime\n                // or there has been a new call to `update`\n                return;\n            }\n        }\n        this.show(resolvedContent, focus, options);\n    }\n    show(content, focus, options) {\n        const oldHoverWidget = this._hoverWidget;\n        if (this.hasContent(content)) {\n            const hoverOptions = {\n                content,\n                target: this.target,\n                appearance: {\n                    showPointer: this.hoverDelegate.placement === 'element',\n                    skipFadeInAnimation: !this.fadeInAnimation || !!oldHoverWidget, // do not fade in if the hover is already showing\n                },\n                position: {\n                    hoverPosition: 2 /* HoverPosition.BELOW */,\n                },\n                ...options\n            };\n            this._hoverWidget = this.hoverDelegate.showHover(hoverOptions, focus);\n        }\n        oldHoverWidget === null || oldHoverWidget === void 0 ? void 0 : oldHoverWidget.dispose();\n    }\n    hasContent(content) {\n        if (!content) {\n            return false;\n        }\n        if (isMarkdownString(content)) {\n            return !!content.value;\n        }\n        return true;\n    }\n    get isDisposed() {\n        var _a;\n        return (_a = this._hoverWidget) === null || _a === void 0 ? void 0 : _a.isDisposed;\n    }\n    dispose() {\n        var _a, _b;\n        (_a = this._hoverWidget) === null || _a === void 0 ? void 0 : _a.dispose();\n        (_b = this._cancellationTokenSource) === null || _b === void 0 ? void 0 : _b.dispose(true);\n        this._cancellationTokenSource = undefined;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/services/markerDecorations.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { IMarkerDecorationsService } from '../../common/services/markerDecorations.js';\nimport { registerEditorContribution } from '../editorExtensions.js';\nlet MarkerDecorationsContribution = class MarkerDecorationsContribution {\n    constructor(_editor, _markerDecorationsService) {\n        // Doesn't do anything, just requires `IMarkerDecorationsService` to make sure it gets instantiated\n    }\n    dispose() {\n    }\n};\nMarkerDecorationsContribution.ID = 'editor.contrib.markerDecorations';\nMarkerDecorationsContribution = __decorate([\n    __param(1, IMarkerDecorationsService)\n], MarkerDecorationsContribution);\nexport { MarkerDecorationsContribution };\nregisterEditorContribution(MarkerDecorationsContribution.ID, MarkerDecorationsContribution, 0 /* EditorContributionInstantiation.Eager */); // eager because it instantiates IMarkerDecorationsService which is responsible for rendering squiggles\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/services/openerService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport * as dom from '../../../base/browser/dom.js';\nimport { mainWindow } from '../../../base/browser/window.js';\nimport { CancellationToken } from '../../../base/common/cancellation.js';\nimport { LinkedList } from '../../../base/common/linkedList.js';\nimport { ResourceMap } from '../../../base/common/map.js';\nimport { parse } from '../../../base/common/marshalling.js';\nimport { matchesScheme, matchesSomeScheme, Schemas } from '../../../base/common/network.js';\nimport { normalizePath } from '../../../base/common/resources.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { ICodeEditorService } from './codeEditorService.js';\nimport { ICommandService } from '../../../platform/commands/common/commands.js';\nimport { EditorOpenSource } from '../../../platform/editor/common/editor.js';\nimport { extractSelection } from '../../../platform/opener/common/opener.js';\nlet CommandOpener = class CommandOpener {\n    constructor(_commandService) {\n        this._commandService = _commandService;\n    }\n    async open(target, options) {\n        if (!matchesScheme(target, Schemas.command)) {\n            return false;\n        }\n        if (!(options === null || options === void 0 ? void 0 : options.allowCommands)) {\n            // silently ignore commands when command-links are disabled, also\n            // suppress other openers by returning TRUE\n            return true;\n        }\n        if (typeof target === 'string') {\n            target = URI.parse(target);\n        }\n        if (Array.isArray(options.allowCommands)) {\n            // Only allow specific commands\n            if (!options.allowCommands.includes(target.path)) {\n                // Suppress other openers by returning TRUE\n                return true;\n            }\n        }\n        // execute as command\n        let args = [];\n        try {\n            args = parse(decodeURIComponent(target.query));\n        }\n        catch (_a) {\n            // ignore and retry\n            try {\n                args = parse(target.query);\n            }\n            catch (_b) {\n                // ignore error\n            }\n        }\n        if (!Array.isArray(args)) {\n            args = [args];\n        }\n        await this._commandService.executeCommand(target.path, ...args);\n        return true;\n    }\n};\nCommandOpener = __decorate([\n    __param(0, ICommandService)\n], CommandOpener);\nlet EditorOpener = class EditorOpener {\n    constructor(_editorService) {\n        this._editorService = _editorService;\n    }\n    async open(target, options) {\n        if (typeof target === 'string') {\n            target = URI.parse(target);\n        }\n        const { selection, uri } = extractSelection(target);\n        target = uri;\n        if (target.scheme === Schemas.file) {\n            target = normalizePath(target); // workaround for non-normalized paths (https://github.com/microsoft/vscode/issues/12954)\n        }\n        await this._editorService.openCodeEditor({\n            resource: target,\n            options: {\n                selection,\n                source: (options === null || options === void 0 ? void 0 : options.fromUserGesture) ? EditorOpenSource.USER : EditorOpenSource.API,\n                ...options === null || options === void 0 ? void 0 : options.editorOptions\n            }\n        }, this._editorService.getFocusedCodeEditor(), options === null || options === void 0 ? void 0 : options.openToSide);\n        return true;\n    }\n};\nEditorOpener = __decorate([\n    __param(0, ICodeEditorService)\n], EditorOpener);\nlet OpenerService = class OpenerService {\n    constructor(editorService, commandService) {\n        this._openers = new LinkedList();\n        this._validators = new LinkedList();\n        this._resolvers = new LinkedList();\n        this._resolvedUriTargets = new ResourceMap(uri => uri.with({ path: null, fragment: null, query: null }).toString());\n        this._externalOpeners = new LinkedList();\n        // Default external opener is going through window.open()\n        this._defaultExternalOpener = {\n            openExternal: async (href) => {\n                // ensure to open HTTP/HTTPS links into new windows\n                // to not trigger a navigation. Any other link is\n                // safe to be set as HREF to prevent a blank window\n                // from opening.\n                if (matchesSomeScheme(href, Schemas.http, Schemas.https)) {\n                    dom.windowOpenNoOpener(href);\n                }\n                else {\n                    mainWindow.location.href = href;\n                }\n                return true;\n            }\n        };\n        // Default opener: any external, maito, http(s), command, and catch-all-editors\n        this._openers.push({\n            open: async (target, options) => {\n                if ((options === null || options === void 0 ? void 0 : options.openExternal) || matchesSomeScheme(target, Schemas.mailto, Schemas.http, Schemas.https, Schemas.vsls)) {\n                    // open externally\n                    await this._doOpenExternal(target, options);\n                    return true;\n                }\n                return false;\n            }\n        });\n        this._openers.push(new CommandOpener(commandService));\n        this._openers.push(new EditorOpener(editorService));\n    }\n    registerOpener(opener) {\n        const remove = this._openers.unshift(opener);\n        return { dispose: remove };\n    }\n    async open(target, options) {\n        var _a;\n        // check with contributed validators\n        const targetURI = typeof target === 'string' ? URI.parse(target) : target;\n        // validate against the original URI that this URI resolves to, if one exists\n        const validationTarget = (_a = this._resolvedUriTargets.get(targetURI)) !== null && _a !== void 0 ? _a : target;\n        for (const validator of this._validators) {\n            if (!(await validator.shouldOpen(validationTarget, options))) {\n                return false;\n            }\n        }\n        // check with contributed openers\n        for (const opener of this._openers) {\n            const handled = await opener.open(target, options);\n            if (handled) {\n                return true;\n            }\n        }\n        return false;\n    }\n    async resolveExternalUri(resource, options) {\n        for (const resolver of this._resolvers) {\n            try {\n                const result = await resolver.resolveExternalUri(resource, options);\n                if (result) {\n                    if (!this._resolvedUriTargets.has(result.resolved)) {\n                        this._resolvedUriTargets.set(result.resolved, resource);\n                    }\n                    return result;\n                }\n            }\n            catch (_a) {\n                // noop\n            }\n        }\n        throw new Error('Could not resolve external URI: ' + resource.toString());\n    }\n    async _doOpenExternal(resource, options) {\n        //todo@jrieken IExternalUriResolver should support `uri: URI | string`\n        const uri = typeof resource === 'string' ? URI.parse(resource) : resource;\n        let externalUri;\n        try {\n            externalUri = (await this.resolveExternalUri(uri, options)).resolved;\n        }\n        catch (_a) {\n            externalUri = uri;\n        }\n        let href;\n        if (typeof resource === 'string' && uri.toString() === externalUri.toString()) {\n            // open the url-string AS IS\n            href = resource;\n        }\n        else {\n            // open URI using the toString(noEncode)+encodeURI-trick\n            href = encodeURI(externalUri.toString(true));\n        }\n        if (options === null || options === void 0 ? void 0 : options.allowContributedOpeners) {\n            const preferredOpenerId = typeof (options === null || options === void 0 ? void 0 : options.allowContributedOpeners) === 'string' ? options === null || options === void 0 ? void 0 : options.allowContributedOpeners : undefined;\n            for (const opener of this._externalOpeners) {\n                const didOpen = await opener.openExternal(href, {\n                    sourceUri: uri,\n                    preferredOpenerId,\n                }, CancellationToken.None);\n                if (didOpen) {\n                    return true;\n                }\n            }\n        }\n        return this._defaultExternalOpener.openExternal(href, { sourceUri: uri }, CancellationToken.None);\n    }\n    dispose() {\n        this._validators.clear();\n    }\n};\nOpenerService = __decorate([\n    __param(0, ICodeEditorService),\n    __param(1, ICommandService)\n], OpenerService);\nexport { OpenerService };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/services/webWorker.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { getAllMethodNames } from '../../../base/common/objects.js';\nimport { EditorWorkerClient } from './editorWorkerService.js';\n/**\n * Create a new web worker that has model syncing capabilities built in.\n * Specify an AMD module to load that will `create` an object that will be proxied.\n */\nexport function createWebWorker(modelService, languageConfigurationService, opts) {\n    return new MonacoWebWorkerImpl(modelService, languageConfigurationService, opts);\n}\nclass MonacoWebWorkerImpl extends EditorWorkerClient {\n    constructor(modelService, languageConfigurationService, opts) {\n        super(modelService, opts.keepIdleModels || false, opts.label, languageConfigurationService);\n        this._foreignModuleId = opts.moduleId;\n        this._foreignModuleCreateData = opts.createData || null;\n        this._foreignModuleHost = opts.host || null;\n        this._foreignProxy = null;\n    }\n    // foreign host request\n    fhr(method, args) {\n        if (!this._foreignModuleHost || typeof this._foreignModuleHost[method] !== 'function') {\n            return Promise.reject(new Error('Missing method ' + method + ' or missing main thread foreign host.'));\n        }\n        try {\n            return Promise.resolve(this._foreignModuleHost[method].apply(this._foreignModuleHost, args));\n        }\n        catch (e) {\n            return Promise.reject(e);\n        }\n    }\n    _getForeignProxy() {\n        if (!this._foreignProxy) {\n            this._foreignProxy = this._getProxy().then((proxy) => {\n                const foreignHostMethods = this._foreignModuleHost ? getAllMethodNames(this._foreignModuleHost) : [];\n                return proxy.loadForeignModule(this._foreignModuleId, this._foreignModuleCreateData, foreignHostMethods).then((foreignMethods) => {\n                    this._foreignModuleCreateData = null;\n                    const proxyMethodRequest = (method, args) => {\n                        return proxy.fmr(method, args);\n                    };\n                    const createProxyMethod = (method, proxyMethodRequest) => {\n                        return function () {\n                            const args = Array.prototype.slice.call(arguments, 0);\n                            return proxyMethodRequest(method, args);\n                        };\n                    };\n                    const foreignProxy = {};\n                    for (const foreignMethod of foreignMethods) {\n                        foreignProxy[foreignMethod] = createProxyMethod(foreignMethod, proxyMethodRequest);\n                    }\n                    return foreignProxy;\n                });\n            });\n        }\n        return this._foreignProxy;\n    }\n    getProxy() {\n        return this._getForeignProxy();\n    }\n    withSyncedResources(resources) {\n        return this._withSyncedResources(resources).then(_ => this.getProxy());\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/stableEditorScroll.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class StableEditorScrollState {\n    static capture(editor) {\n        if (editor.getScrollTop() === 0 || editor.hasPendingScrollAnimation()) {\n            // Never mess with the scroll top if the editor is at the top of the file or if there is a pending scroll animation\n            return new StableEditorScrollState(editor.getScrollTop(), editor.getContentHeight(), null, 0, null);\n        }\n        let visiblePosition = null;\n        let visiblePositionScrollDelta = 0;\n        const visibleRanges = editor.getVisibleRanges();\n        if (visibleRanges.length > 0) {\n            visiblePosition = visibleRanges[0].getStartPosition();\n            const visiblePositionScrollTop = editor.getTopForPosition(visiblePosition.lineNumber, visiblePosition.column);\n            visiblePositionScrollDelta = editor.getScrollTop() - visiblePositionScrollTop;\n        }\n        return new StableEditorScrollState(editor.getScrollTop(), editor.getContentHeight(), visiblePosition, visiblePositionScrollDelta, editor.getPosition());\n    }\n    constructor(_initialScrollTop, _initialContentHeight, _visiblePosition, _visiblePositionScrollDelta, _cursorPosition) {\n        this._initialScrollTop = _initialScrollTop;\n        this._initialContentHeight = _initialContentHeight;\n        this._visiblePosition = _visiblePosition;\n        this._visiblePositionScrollDelta = _visiblePositionScrollDelta;\n        this._cursorPosition = _cursorPosition;\n    }\n    restore(editor) {\n        if (this._initialContentHeight === editor.getContentHeight() && this._initialScrollTop === editor.getScrollTop()) {\n            // The editor's content height and scroll top haven't changed, so we don't need to do anything\n            return;\n        }\n        if (this._visiblePosition) {\n            const visiblePositionScrollTop = editor.getTopForPosition(this._visiblePosition.lineNumber, this._visiblePosition.column);\n            editor.setScrollTop(visiblePositionScrollTop + this._visiblePositionScrollDelta);\n        }\n    }\n    restoreRelativeVerticalPositionOfCursor(editor) {\n        if (this._initialContentHeight === editor.getContentHeight() && this._initialScrollTop === editor.getScrollTop()) {\n            // The editor's content height and scroll top haven't changed, so we don't need to do anything\n            return;\n        }\n        const currentCursorPosition = editor.getPosition();\n        if (!this._cursorPosition || !currentCursorPosition) {\n            return;\n        }\n        const offset = editor.getTopForLineNumber(currentCursorPosition.lineNumber) - editor.getTopForLineNumber(this._cursorPosition.lineNumber);\n        editor.setScrollTop(editor.getScrollTop() + offset, 1 /* ScrollType.Immediate */);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/view/domLineBreaksComputer.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createTrustedTypesPolicy } from '../../../base/browser/trustedTypes.js';\nimport * as strings from '../../../base/common/strings.js';\nimport { assertIsDefined } from '../../../base/common/types.js';\nimport { applyFontInfo } from '../config/domFontInfo.js';\nimport { StringBuilder } from '../../common/core/stringBuilder.js';\nimport { ModelLineProjectionData } from '../../common/modelLineProjectionData.js';\nimport { LineInjectedText } from '../../common/textModelEvents.js';\nconst ttPolicy = createTrustedTypesPolicy('domLineBreaksComputer', { createHTML: value => value });\nexport class DOMLineBreaksComputerFactory {\n    static create(targetWindow) {\n        return new DOMLineBreaksComputerFactory(new WeakRef(targetWindow));\n    }\n    constructor(targetWindow) {\n        this.targetWindow = targetWindow;\n    }\n    createLineBreaksComputer(fontInfo, tabSize, wrappingColumn, wrappingIndent, wordBreak) {\n        const requests = [];\n        const injectedTexts = [];\n        return {\n            addRequest: (lineText, injectedText, previousLineBreakData) => {\n                requests.push(lineText);\n                injectedTexts.push(injectedText);\n            },\n            finalize: () => {\n                return createLineBreaks(assertIsDefined(this.targetWindow.deref()), requests, fontInfo, tabSize, wrappingColumn, wrappingIndent, wordBreak, injectedTexts);\n            }\n        };\n    }\n}\nfunction createLineBreaks(targetWindow, requests, fontInfo, tabSize, firstLineBreakColumn, wrappingIndent, wordBreak, injectedTextsPerLine) {\n    var _a;\n    function createEmptyLineBreakWithPossiblyInjectedText(requestIdx) {\n        const injectedTexts = injectedTextsPerLine[requestIdx];\n        if (injectedTexts) {\n            const lineText = LineInjectedText.applyInjectedText(requests[requestIdx], injectedTexts);\n            const injectionOptions = injectedTexts.map(t => t.options);\n            const injectionOffsets = injectedTexts.map(text => text.column - 1);\n            // creating a `LineBreakData` with an invalid `breakOffsetsVisibleColumn` is OK\n            // because `breakOffsetsVisibleColumn` will never be used because it contains injected text\n            return new ModelLineProjectionData(injectionOffsets, injectionOptions, [lineText.length], [], 0);\n        }\n        else {\n            return null;\n        }\n    }\n    if (firstLineBreakColumn === -1) {\n        const result = [];\n        for (let i = 0, len = requests.length; i < len; i++) {\n            result[i] = createEmptyLineBreakWithPossiblyInjectedText(i);\n        }\n        return result;\n    }\n    const overallWidth = Math.round(firstLineBreakColumn * fontInfo.typicalHalfwidthCharacterWidth);\n    const additionalIndent = (wrappingIndent === 3 /* WrappingIndent.DeepIndent */ ? 2 : wrappingIndent === 2 /* WrappingIndent.Indent */ ? 1 : 0);\n    const additionalIndentSize = Math.round(tabSize * additionalIndent);\n    const additionalIndentLength = Math.ceil(fontInfo.spaceWidth * additionalIndentSize);\n    const containerDomNode = document.createElement('div');\n    applyFontInfo(containerDomNode, fontInfo);\n    const sb = new StringBuilder(10000);\n    const firstNonWhitespaceIndices = [];\n    const wrappedTextIndentLengths = [];\n    const renderLineContents = [];\n    const allCharOffsets = [];\n    const allVisibleColumns = [];\n    for (let i = 0; i < requests.length; i++) {\n        const lineContent = LineInjectedText.applyInjectedText(requests[i], injectedTextsPerLine[i]);\n        let firstNonWhitespaceIndex = 0;\n        let wrappedTextIndentLength = 0;\n        let width = overallWidth;\n        if (wrappingIndent !== 0 /* WrappingIndent.None */) {\n            firstNonWhitespaceIndex = strings.firstNonWhitespaceIndex(lineContent);\n            if (firstNonWhitespaceIndex === -1) {\n                // all whitespace line\n                firstNonWhitespaceIndex = 0;\n            }\n            else {\n                // Track existing indent\n                for (let i = 0; i < firstNonWhitespaceIndex; i++) {\n                    const charWidth = (lineContent.charCodeAt(i) === 9 /* CharCode.Tab */\n                        ? (tabSize - (wrappedTextIndentLength % tabSize))\n                        : 1);\n                    wrappedTextIndentLength += charWidth;\n                }\n                const indentWidth = Math.ceil(fontInfo.spaceWidth * wrappedTextIndentLength);\n                // Force sticking to beginning of line if no character would fit except for the indentation\n                if (indentWidth + fontInfo.typicalFullwidthCharacterWidth > overallWidth) {\n                    firstNonWhitespaceIndex = 0;\n                    wrappedTextIndentLength = 0;\n                }\n                else {\n                    width = overallWidth - indentWidth;\n                }\n            }\n        }\n        const renderLineContent = lineContent.substr(firstNonWhitespaceIndex);\n        const tmp = renderLine(renderLineContent, wrappedTextIndentLength, tabSize, width, sb, additionalIndentLength);\n        firstNonWhitespaceIndices[i] = firstNonWhitespaceIndex;\n        wrappedTextIndentLengths[i] = wrappedTextIndentLength;\n        renderLineContents[i] = renderLineContent;\n        allCharOffsets[i] = tmp[0];\n        allVisibleColumns[i] = tmp[1];\n    }\n    const html = sb.build();\n    const trustedhtml = (_a = ttPolicy === null || ttPolicy === void 0 ? void 0 : ttPolicy.createHTML(html)) !== null && _a !== void 0 ? _a : html;\n    containerDomNode.innerHTML = trustedhtml;\n    containerDomNode.style.position = 'absolute';\n    containerDomNode.style.top = '10000';\n    if (wordBreak === 'keepAll') {\n        // word-break: keep-all; overflow-wrap: anywhere\n        containerDomNode.style.wordBreak = 'keep-all';\n        containerDomNode.style.overflowWrap = 'anywhere';\n    }\n    else {\n        // overflow-wrap: break-word\n        containerDomNode.style.wordBreak = 'inherit';\n        containerDomNode.style.overflowWrap = 'break-word';\n    }\n    targetWindow.document.body.appendChild(containerDomNode);\n    const range = document.createRange();\n    const lineDomNodes = Array.prototype.slice.call(containerDomNode.children, 0);\n    const result = [];\n    for (let i = 0; i < requests.length; i++) {\n        const lineDomNode = lineDomNodes[i];\n        const breakOffsets = readLineBreaks(range, lineDomNode, renderLineContents[i], allCharOffsets[i]);\n        if (breakOffsets === null) {\n            result[i] = createEmptyLineBreakWithPossiblyInjectedText(i);\n            continue;\n        }\n        const firstNonWhitespaceIndex = firstNonWhitespaceIndices[i];\n        const wrappedTextIndentLength = wrappedTextIndentLengths[i] + additionalIndentSize;\n        const visibleColumns = allVisibleColumns[i];\n        const breakOffsetsVisibleColumn = [];\n        for (let j = 0, len = breakOffsets.length; j < len; j++) {\n            breakOffsetsVisibleColumn[j] = visibleColumns[breakOffsets[j]];\n        }\n        if (firstNonWhitespaceIndex !== 0) {\n            // All break offsets are relative to the renderLineContent, make them absolute again\n            for (let j = 0, len = breakOffsets.length; j < len; j++) {\n                breakOffsets[j] += firstNonWhitespaceIndex;\n            }\n        }\n        let injectionOptions;\n        let injectionOffsets;\n        const curInjectedTexts = injectedTextsPerLine[i];\n        if (curInjectedTexts) {\n            injectionOptions = curInjectedTexts.map(t => t.options);\n            injectionOffsets = curInjectedTexts.map(text => text.column - 1);\n        }\n        else {\n            injectionOptions = null;\n            injectionOffsets = null;\n        }\n        result[i] = new ModelLineProjectionData(injectionOffsets, injectionOptions, breakOffsets, breakOffsetsVisibleColumn, wrappedTextIndentLength);\n    }\n    targetWindow.document.body.removeChild(containerDomNode);\n    return result;\n}\nfunction renderLine(lineContent, initialVisibleColumn, tabSize, width, sb, wrappingIndentLength) {\n    if (wrappingIndentLength !== 0) {\n        const hangingOffset = String(wrappingIndentLength);\n        sb.appendString('<div style=\"text-indent: -');\n        sb.appendString(hangingOffset);\n        sb.appendString('px; padding-left: ');\n        sb.appendString(hangingOffset);\n        sb.appendString('px; box-sizing: border-box; width:');\n    }\n    else {\n        sb.appendString('<div style=\"width:');\n    }\n    sb.appendString(String(width));\n    sb.appendString('px;\">');\n    // if (containsRTL) {\n    // \tsb.appendASCIIString('\" dir=\"ltr');\n    // }\n    const len = lineContent.length;\n    let visibleColumn = initialVisibleColumn;\n    let charOffset = 0;\n    const charOffsets = [];\n    const visibleColumns = [];\n    let nextCharCode = (0 < len ? lineContent.charCodeAt(0) : 0 /* CharCode.Null */);\n    sb.appendString('<span>');\n    for (let charIndex = 0; charIndex < len; charIndex++) {\n        if (charIndex !== 0 && charIndex % 16384 /* Constants.SPAN_MODULO_LIMIT */ === 0) {\n            sb.appendString('</span><span>');\n        }\n        charOffsets[charIndex] = charOffset;\n        visibleColumns[charIndex] = visibleColumn;\n        const charCode = nextCharCode;\n        nextCharCode = (charIndex + 1 < len ? lineContent.charCodeAt(charIndex + 1) : 0 /* CharCode.Null */);\n        let producedCharacters = 1;\n        let charWidth = 1;\n        switch (charCode) {\n            case 9 /* CharCode.Tab */:\n                producedCharacters = (tabSize - (visibleColumn % tabSize));\n                charWidth = producedCharacters;\n                for (let space = 1; space <= producedCharacters; space++) {\n                    if (space < producedCharacters) {\n                        sb.appendCharCode(0xA0); // &nbsp;\n                    }\n                    else {\n                        sb.appendASCIICharCode(32 /* CharCode.Space */);\n                    }\n                }\n                break;\n            case 32 /* CharCode.Space */:\n                if (nextCharCode === 32 /* CharCode.Space */) {\n                    sb.appendCharCode(0xA0); // &nbsp;\n                }\n                else {\n                    sb.appendASCIICharCode(32 /* CharCode.Space */);\n                }\n                break;\n            case 60 /* CharCode.LessThan */:\n                sb.appendString('&lt;');\n                break;\n            case 62 /* CharCode.GreaterThan */:\n                sb.appendString('&gt;');\n                break;\n            case 38 /* CharCode.Ampersand */:\n                sb.appendString('&amp;');\n                break;\n            case 0 /* CharCode.Null */:\n                sb.appendString('&#00;');\n                break;\n            case 65279 /* CharCode.UTF8_BOM */:\n            case 8232 /* CharCode.LINE_SEPARATOR */:\n            case 8233 /* CharCode.PARAGRAPH_SEPARATOR */:\n            case 133 /* CharCode.NEXT_LINE */:\n                sb.appendCharCode(0xFFFD);\n                break;\n            default:\n                if (strings.isFullWidthCharacter(charCode)) {\n                    charWidth++;\n                }\n                if (charCode < 32) {\n                    sb.appendCharCode(9216 + charCode);\n                }\n                else {\n                    sb.appendCharCode(charCode);\n                }\n        }\n        charOffset += producedCharacters;\n        visibleColumn += charWidth;\n    }\n    sb.appendString('</span>');\n    charOffsets[lineContent.length] = charOffset;\n    visibleColumns[lineContent.length] = visibleColumn;\n    sb.appendString('</div>');\n    return [charOffsets, visibleColumns];\n}\nfunction readLineBreaks(range, lineDomNode, lineContent, charOffsets) {\n    if (lineContent.length <= 1) {\n        return null;\n    }\n    const spans = Array.prototype.slice.call(lineDomNode.children, 0);\n    const breakOffsets = [];\n    try {\n        discoverBreaks(range, spans, charOffsets, 0, null, lineContent.length - 1, null, breakOffsets);\n    }\n    catch (err) {\n        console.log(err);\n        return null;\n    }\n    if (breakOffsets.length === 0) {\n        return null;\n    }\n    breakOffsets.push(lineContent.length);\n    return breakOffsets;\n}\nfunction discoverBreaks(range, spans, charOffsets, low, lowRects, high, highRects, result) {\n    if (low === high) {\n        return;\n    }\n    lowRects = lowRects || readClientRect(range, spans, charOffsets[low], charOffsets[low + 1]);\n    highRects = highRects || readClientRect(range, spans, charOffsets[high], charOffsets[high + 1]);\n    if (Math.abs(lowRects[0].top - highRects[0].top) <= 0.1) {\n        // same line\n        return;\n    }\n    // there is at least one line break between these two offsets\n    if (low + 1 === high) {\n        // the two characters are adjacent, so the line break must be exactly between them\n        result.push(high);\n        return;\n    }\n    const mid = low + ((high - low) / 2) | 0;\n    const midRects = readClientRect(range, spans, charOffsets[mid], charOffsets[mid + 1]);\n    discoverBreaks(range, spans, charOffsets, low, lowRects, mid, midRects, result);\n    discoverBreaks(range, spans, charOffsets, mid, midRects, high, highRects, result);\n}\nfunction readClientRect(range, spans, startOffset, endOffset) {\n    range.setStart(spans[(startOffset / 16384 /* Constants.SPAN_MODULO_LIMIT */) | 0].firstChild, startOffset % 16384 /* Constants.SPAN_MODULO_LIMIT */);\n    range.setEnd(spans[(endOffset / 16384 /* Constants.SPAN_MODULO_LIMIT */) | 0].firstChild, endOffset % 16384 /* Constants.SPAN_MODULO_LIMIT */);\n    return range.getClientRects();\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/view/dynamicViewOverlay.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { ViewEventHandler } from '../../common/viewEventHandler.js';\nexport class DynamicViewOverlay extends ViewEventHandler {\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/view/renderingContext.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class RestrictedRenderingContext {\n    constructor(viewLayout, viewportData) {\n        this._restrictedRenderingContextBrand = undefined;\n        this._viewLayout = viewLayout;\n        this.viewportData = viewportData;\n        this.scrollWidth = this._viewLayout.getScrollWidth();\n        this.scrollHeight = this._viewLayout.getScrollHeight();\n        this.visibleRange = this.viewportData.visibleRange;\n        this.bigNumbersDelta = this.viewportData.bigNumbersDelta;\n        const vInfo = this._viewLayout.getCurrentViewport();\n        this.scrollTop = vInfo.top;\n        this.scrollLeft = vInfo.left;\n        this.viewportWidth = vInfo.width;\n        this.viewportHeight = vInfo.height;\n    }\n    getScrolledTopFromAbsoluteTop(absoluteTop) {\n        return absoluteTop - this.scrollTop;\n    }\n    getVerticalOffsetForLineNumber(lineNumber, includeViewZones) {\n        return this._viewLayout.getVerticalOffsetForLineNumber(lineNumber, includeViewZones);\n    }\n    getVerticalOffsetAfterLineNumber(lineNumber, includeViewZones) {\n        return this._viewLayout.getVerticalOffsetAfterLineNumber(lineNumber, includeViewZones);\n    }\n    getDecorationsInViewport() {\n        return this.viewportData.getDecorationsInViewport();\n    }\n}\nexport class RenderingContext extends RestrictedRenderingContext {\n    constructor(viewLayout, viewportData, viewLines) {\n        super(viewLayout, viewportData);\n        this._renderingContextBrand = undefined;\n        this._viewLines = viewLines;\n    }\n    linesVisibleRangesForRange(range, includeNewLines) {\n        return this._viewLines.linesVisibleRangesForRange(range, includeNewLines);\n    }\n    visibleRangeForPosition(position) {\n        return this._viewLines.visibleRangeForPosition(position);\n    }\n}\nexport class LineVisibleRanges {\n    constructor(outsideRenderedLine, lineNumber, ranges, \n    /**\n     * Indicates if the requested range does not end in this line, but continues on the next line.\n     */\n    continuesOnNextLine) {\n        this.outsideRenderedLine = outsideRenderedLine;\n        this.lineNumber = lineNumber;\n        this.ranges = ranges;\n        this.continuesOnNextLine = continuesOnNextLine;\n    }\n}\nexport class HorizontalRange {\n    static from(ranges) {\n        const result = new Array(ranges.length);\n        for (let i = 0, len = ranges.length; i < len; i++) {\n            const range = ranges[i];\n            result[i] = new HorizontalRange(range.left, range.width);\n        }\n        return result;\n    }\n    constructor(left, width) {\n        this._horizontalRangeBrand = undefined;\n        this.left = Math.round(left);\n        this.width = Math.round(width);\n    }\n    toString() {\n        return `[${this.left},${this.width}]`;\n    }\n}\nexport class FloatHorizontalRange {\n    constructor(left, width) {\n        this._floatHorizontalRangeBrand = undefined;\n        this.left = left;\n        this.width = width;\n    }\n    toString() {\n        return `[${this.left},${this.width}]`;\n    }\n    static compare(a, b) {\n        return a.left - b.left;\n    }\n}\nexport class HorizontalPosition {\n    constructor(outsideRenderedLine, left) {\n        this.outsideRenderedLine = outsideRenderedLine;\n        this.originalLeft = left;\n        this.left = Math.round(this.originalLeft);\n    }\n}\nexport class VisibleRanges {\n    constructor(outsideRenderedLine, ranges) {\n        this.outsideRenderedLine = outsideRenderedLine;\n        this.ranges = ranges;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/view/viewController.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { CoreNavigationCommands } from '../coreCommands.js';\nimport { Position } from '../../common/core/position.js';\nimport * as platform from '../../../base/common/platform.js';\nexport class ViewController {\n    constructor(configuration, viewModel, userInputEvents, commandDelegate) {\n        this.configuration = configuration;\n        this.viewModel = viewModel;\n        this.userInputEvents = userInputEvents;\n        this.commandDelegate = commandDelegate;\n    }\n    paste(text, pasteOnNewLine, multicursorText, mode) {\n        this.commandDelegate.paste(text, pasteOnNewLine, multicursorText, mode);\n    }\n    type(text) {\n        this.commandDelegate.type(text);\n    }\n    compositionType(text, replacePrevCharCnt, replaceNextCharCnt, positionDelta) {\n        this.commandDelegate.compositionType(text, replacePrevCharCnt, replaceNextCharCnt, positionDelta);\n    }\n    compositionStart() {\n        this.commandDelegate.startComposition();\n    }\n    compositionEnd() {\n        this.commandDelegate.endComposition();\n    }\n    cut() {\n        this.commandDelegate.cut();\n    }\n    setSelection(modelSelection) {\n        CoreNavigationCommands.SetSelection.runCoreEditorCommand(this.viewModel, {\n            source: 'keyboard',\n            selection: modelSelection\n        });\n    }\n    _validateViewColumn(viewPosition) {\n        const minColumn = this.viewModel.getLineMinColumn(viewPosition.lineNumber);\n        if (viewPosition.column < minColumn) {\n            return new Position(viewPosition.lineNumber, minColumn);\n        }\n        return viewPosition;\n    }\n    _hasMulticursorModifier(data) {\n        switch (this.configuration.options.get(78 /* EditorOption.multiCursorModifier */)) {\n            case 'altKey':\n                return data.altKey;\n            case 'ctrlKey':\n                return data.ctrlKey;\n            case 'metaKey':\n                return data.metaKey;\n            default:\n                return false;\n        }\n    }\n    _hasNonMulticursorModifier(data) {\n        switch (this.configuration.options.get(78 /* EditorOption.multiCursorModifier */)) {\n            case 'altKey':\n                return data.ctrlKey || data.metaKey;\n            case 'ctrlKey':\n                return data.altKey || data.metaKey;\n            case 'metaKey':\n                return data.ctrlKey || data.altKey;\n            default:\n                return false;\n        }\n    }\n    dispatchMouse(data) {\n        const options = this.configuration.options;\n        const selectionClipboardIsOn = (platform.isLinux && options.get(107 /* EditorOption.selectionClipboard */));\n        const columnSelection = options.get(22 /* EditorOption.columnSelection */);\n        if (data.middleButton && !selectionClipboardIsOn) {\n            this._columnSelect(data.position, data.mouseColumn, data.inSelectionMode);\n        }\n        else if (data.startedOnLineNumbers) {\n            // If the dragging started on the gutter, then have operations work on the entire line\n            if (this._hasMulticursorModifier(data)) {\n                if (data.inSelectionMode) {\n                    this._lastCursorLineSelect(data.position, data.revealType);\n                }\n                else {\n                    this._createCursor(data.position, true);\n                }\n            }\n            else {\n                if (data.inSelectionMode) {\n                    this._lineSelectDrag(data.position, data.revealType);\n                }\n                else {\n                    this._lineSelect(data.position, data.revealType);\n                }\n            }\n        }\n        else if (data.mouseDownCount >= 4) {\n            this._selectAll();\n        }\n        else if (data.mouseDownCount === 3) {\n            if (this._hasMulticursorModifier(data)) {\n                if (data.inSelectionMode) {\n                    this._lastCursorLineSelectDrag(data.position, data.revealType);\n                }\n                else {\n                    this._lastCursorLineSelect(data.position, data.revealType);\n                }\n            }\n            else {\n                if (data.inSelectionMode) {\n                    this._lineSelectDrag(data.position, data.revealType);\n                }\n                else {\n                    this._lineSelect(data.position, data.revealType);\n                }\n            }\n        }\n        else if (data.mouseDownCount === 2) {\n            if (!data.onInjectedText) {\n                if (this._hasMulticursorModifier(data)) {\n                    this._lastCursorWordSelect(data.position, data.revealType);\n                }\n                else {\n                    if (data.inSelectionMode) {\n                        this._wordSelectDrag(data.position, data.revealType);\n                    }\n                    else {\n                        this._wordSelect(data.position, data.revealType);\n                    }\n                }\n            }\n        }\n        else {\n            if (this._hasMulticursorModifier(data)) {\n                if (!this._hasNonMulticursorModifier(data)) {\n                    if (data.shiftKey) {\n                        this._columnSelect(data.position, data.mouseColumn, true);\n                    }\n                    else {\n                        // Do multi-cursor operations only when purely alt is pressed\n                        if (data.inSelectionMode) {\n                            this._lastCursorMoveToSelect(data.position, data.revealType);\n                        }\n                        else {\n                            this._createCursor(data.position, false);\n                        }\n                    }\n                }\n            }\n            else {\n                if (data.inSelectionMode) {\n                    if (data.altKey) {\n                        this._columnSelect(data.position, data.mouseColumn, true);\n                    }\n                    else {\n                        if (columnSelection) {\n                            this._columnSelect(data.position, data.mouseColumn, true);\n                        }\n                        else {\n                            this._moveToSelect(data.position, data.revealType);\n                        }\n                    }\n                }\n                else {\n                    this.moveTo(data.position, data.revealType);\n                }\n            }\n        }\n    }\n    _usualArgs(viewPosition, revealType) {\n        viewPosition = this._validateViewColumn(viewPosition);\n        return {\n            source: 'mouse',\n            position: this._convertViewToModelPosition(viewPosition),\n            viewPosition,\n            revealType\n        };\n    }\n    moveTo(viewPosition, revealType) {\n        CoreNavigationCommands.MoveTo.runCoreEditorCommand(this.viewModel, this._usualArgs(viewPosition, revealType));\n    }\n    _moveToSelect(viewPosition, revealType) {\n        CoreNavigationCommands.MoveToSelect.runCoreEditorCommand(this.viewModel, this._usualArgs(viewPosition, revealType));\n    }\n    _columnSelect(viewPosition, mouseColumn, doColumnSelect) {\n        viewPosition = this._validateViewColumn(viewPosition);\n        CoreNavigationCommands.ColumnSelect.runCoreEditorCommand(this.viewModel, {\n            source: 'mouse',\n            position: this._convertViewToModelPosition(viewPosition),\n            viewPosition: viewPosition,\n            mouseColumn: mouseColumn,\n            doColumnSelect: doColumnSelect\n        });\n    }\n    _createCursor(viewPosition, wholeLine) {\n        viewPosition = this._validateViewColumn(viewPosition);\n        CoreNavigationCommands.CreateCursor.runCoreEditorCommand(this.viewModel, {\n            source: 'mouse',\n            position: this._convertViewToModelPosition(viewPosition),\n            viewPosition: viewPosition,\n            wholeLine: wholeLine\n        });\n    }\n    _lastCursorMoveToSelect(viewPosition, revealType) {\n        CoreNavigationCommands.LastCursorMoveToSelect.runCoreEditorCommand(this.viewModel, this._usualArgs(viewPosition, revealType));\n    }\n    _wordSelect(viewPosition, revealType) {\n        CoreNavigationCommands.WordSelect.runCoreEditorCommand(this.viewModel, this._usualArgs(viewPosition, revealType));\n    }\n    _wordSelectDrag(viewPosition, revealType) {\n        CoreNavigationCommands.WordSelectDrag.runCoreEditorCommand(this.viewModel, this._usualArgs(viewPosition, revealType));\n    }\n    _lastCursorWordSelect(viewPosition, revealType) {\n        CoreNavigationCommands.LastCursorWordSelect.runCoreEditorCommand(this.viewModel, this._usualArgs(viewPosition, revealType));\n    }\n    _lineSelect(viewPosition, revealType) {\n        CoreNavigationCommands.LineSelect.runCoreEditorCommand(this.viewModel, this._usualArgs(viewPosition, revealType));\n    }\n    _lineSelectDrag(viewPosition, revealType) {\n        CoreNavigationCommands.LineSelectDrag.runCoreEditorCommand(this.viewModel, this._usualArgs(viewPosition, revealType));\n    }\n    _lastCursorLineSelect(viewPosition, revealType) {\n        CoreNavigationCommands.LastCursorLineSelect.runCoreEditorCommand(this.viewModel, this._usualArgs(viewPosition, revealType));\n    }\n    _lastCursorLineSelectDrag(viewPosition, revealType) {\n        CoreNavigationCommands.LastCursorLineSelectDrag.runCoreEditorCommand(this.viewModel, this._usualArgs(viewPosition, revealType));\n    }\n    _selectAll() {\n        CoreNavigationCommands.SelectAll.runCoreEditorCommand(this.viewModel, { source: 'mouse' });\n    }\n    // ----------------------\n    _convertViewToModelPosition(viewPosition) {\n        return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(viewPosition);\n    }\n    emitKeyDown(e) {\n        this.userInputEvents.emitKeyDown(e);\n    }\n    emitKeyUp(e) {\n        this.userInputEvents.emitKeyUp(e);\n    }\n    emitContextMenu(e) {\n        this.userInputEvents.emitContextMenu(e);\n    }\n    emitMouseMove(e) {\n        this.userInputEvents.emitMouseMove(e);\n    }\n    emitMouseLeave(e) {\n        this.userInputEvents.emitMouseLeave(e);\n    }\n    emitMouseUp(e) {\n        this.userInputEvents.emitMouseUp(e);\n    }\n    emitMouseDown(e) {\n        this.userInputEvents.emitMouseDown(e);\n    }\n    emitMouseDrag(e) {\n        this.userInputEvents.emitMouseDrag(e);\n    }\n    emitMouseDrop(e) {\n        this.userInputEvents.emitMouseDrop(e);\n    }\n    emitMouseDropCanceled() {\n        this.userInputEvents.emitMouseDropCanceled();\n    }\n    emitMouseWheel(e) {\n        this.userInputEvents.emitMouseWheel(e);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/view/viewLayer.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createFastDomNode } from '../../../base/browser/fastDomNode.js';\nimport { createTrustedTypesPolicy } from '../../../base/browser/trustedTypes.js';\nimport { BugIndicatingError } from '../../../base/common/errors.js';\nimport { StringBuilder } from '../../common/core/stringBuilder.js';\nexport class RenderedLinesCollection {\n    constructor(createLine) {\n        this._createLine = createLine;\n        this._set(1, []);\n    }\n    flush() {\n        this._set(1, []);\n    }\n    _set(rendLineNumberStart, lines) {\n        this._lines = lines;\n        this._rendLineNumberStart = rendLineNumberStart;\n    }\n    _get() {\n        return {\n            rendLineNumberStart: this._rendLineNumberStart,\n            lines: this._lines\n        };\n    }\n    /**\n     * @returns Inclusive line number that is inside this collection\n     */\n    getStartLineNumber() {\n        return this._rendLineNumberStart;\n    }\n    /**\n     * @returns Inclusive line number that is inside this collection\n     */\n    getEndLineNumber() {\n        return this._rendLineNumberStart + this._lines.length - 1;\n    }\n    getCount() {\n        return this._lines.length;\n    }\n    getLine(lineNumber) {\n        const lineIndex = lineNumber - this._rendLineNumberStart;\n        if (lineIndex < 0 || lineIndex >= this._lines.length) {\n            throw new BugIndicatingError('Illegal value for lineNumber');\n        }\n        return this._lines[lineIndex];\n    }\n    /**\n     * @returns Lines that were removed from this collection\n     */\n    onLinesDeleted(deleteFromLineNumber, deleteToLineNumber) {\n        if (this.getCount() === 0) {\n            // no lines\n            return null;\n        }\n        const startLineNumber = this.getStartLineNumber();\n        const endLineNumber = this.getEndLineNumber();\n        if (deleteToLineNumber < startLineNumber) {\n            // deleting above the viewport\n            const deleteCnt = deleteToLineNumber - deleteFromLineNumber + 1;\n            this._rendLineNumberStart -= deleteCnt;\n            return null;\n        }\n        if (deleteFromLineNumber > endLineNumber) {\n            // deleted below the viewport\n            return null;\n        }\n        // Record what needs to be deleted\n        let deleteStartIndex = 0;\n        let deleteCount = 0;\n        for (let lineNumber = startLineNumber; lineNumber <= endLineNumber; lineNumber++) {\n            const lineIndex = lineNumber - this._rendLineNumberStart;\n            if (deleteFromLineNumber <= lineNumber && lineNumber <= deleteToLineNumber) {\n                // this is a line to be deleted\n                if (deleteCount === 0) {\n                    // this is the first line to be deleted\n                    deleteStartIndex = lineIndex;\n                    deleteCount = 1;\n                }\n                else {\n                    deleteCount++;\n                }\n            }\n        }\n        // Adjust this._rendLineNumberStart for lines deleted above\n        if (deleteFromLineNumber < startLineNumber) {\n            // Something was deleted above\n            let deleteAboveCount = 0;\n            if (deleteToLineNumber < startLineNumber) {\n                // the entire deleted lines are above\n                deleteAboveCount = deleteToLineNumber - deleteFromLineNumber + 1;\n            }\n            else {\n                deleteAboveCount = startLineNumber - deleteFromLineNumber;\n            }\n            this._rendLineNumberStart -= deleteAboveCount;\n        }\n        const deleted = this._lines.splice(deleteStartIndex, deleteCount);\n        return deleted;\n    }\n    onLinesChanged(changeFromLineNumber, changeCount) {\n        const changeToLineNumber = changeFromLineNumber + changeCount - 1;\n        if (this.getCount() === 0) {\n            // no lines\n            return false;\n        }\n        const startLineNumber = this.getStartLineNumber();\n        const endLineNumber = this.getEndLineNumber();\n        let someoneNotified = false;\n        for (let changedLineNumber = changeFromLineNumber; changedLineNumber <= changeToLineNumber; changedLineNumber++) {\n            if (changedLineNumber >= startLineNumber && changedLineNumber <= endLineNumber) {\n                // Notify the line\n                this._lines[changedLineNumber - this._rendLineNumberStart].onContentChanged();\n                someoneNotified = true;\n            }\n        }\n        return someoneNotified;\n    }\n    onLinesInserted(insertFromLineNumber, insertToLineNumber) {\n        if (this.getCount() === 0) {\n            // no lines\n            return null;\n        }\n        const insertCnt = insertToLineNumber - insertFromLineNumber + 1;\n        const startLineNumber = this.getStartLineNumber();\n        const endLineNumber = this.getEndLineNumber();\n        if (insertFromLineNumber <= startLineNumber) {\n            // inserting above the viewport\n            this._rendLineNumberStart += insertCnt;\n            return null;\n        }\n        if (insertFromLineNumber > endLineNumber) {\n            // inserting below the viewport\n            return null;\n        }\n        if (insertCnt + insertFromLineNumber > endLineNumber) {\n            // insert inside the viewport in such a way that all remaining lines are pushed outside\n            const deleted = this._lines.splice(insertFromLineNumber - this._rendLineNumberStart, endLineNumber - insertFromLineNumber + 1);\n            return deleted;\n        }\n        // insert inside the viewport, push out some lines, but not all remaining lines\n        const newLines = [];\n        for (let i = 0; i < insertCnt; i++) {\n            newLines[i] = this._createLine();\n        }\n        const insertIndex = insertFromLineNumber - this._rendLineNumberStart;\n        const beforeLines = this._lines.slice(0, insertIndex);\n        const afterLines = this._lines.slice(insertIndex, this._lines.length - insertCnt);\n        const deletedLines = this._lines.slice(this._lines.length - insertCnt, this._lines.length);\n        this._lines = beforeLines.concat(newLines).concat(afterLines);\n        return deletedLines;\n    }\n    onTokensChanged(ranges) {\n        if (this.getCount() === 0) {\n            // no lines\n            return false;\n        }\n        const startLineNumber = this.getStartLineNumber();\n        const endLineNumber = this.getEndLineNumber();\n        let notifiedSomeone = false;\n        for (let i = 0, len = ranges.length; i < len; i++) {\n            const rng = ranges[i];\n            if (rng.toLineNumber < startLineNumber || rng.fromLineNumber > endLineNumber) {\n                // range outside viewport\n                continue;\n            }\n            const from = Math.max(startLineNumber, rng.fromLineNumber);\n            const to = Math.min(endLineNumber, rng.toLineNumber);\n            for (let lineNumber = from; lineNumber <= to; lineNumber++) {\n                const lineIndex = lineNumber - this._rendLineNumberStart;\n                this._lines[lineIndex].onTokensChanged();\n                notifiedSomeone = true;\n            }\n        }\n        return notifiedSomeone;\n    }\n}\nexport class VisibleLinesCollection {\n    constructor(host) {\n        this._host = host;\n        this.domNode = this._createDomNode();\n        this._linesCollection = new RenderedLinesCollection(() => this._host.createVisibleLine());\n    }\n    _createDomNode() {\n        const domNode = createFastDomNode(document.createElement('div'));\n        domNode.setClassName('view-layer');\n        domNode.setPosition('absolute');\n        domNode.domNode.setAttribute('role', 'presentation');\n        domNode.domNode.setAttribute('aria-hidden', 'true');\n        return domNode;\n    }\n    // ---- begin view event handlers\n    onConfigurationChanged(e) {\n        if (e.hasChanged(145 /* EditorOption.layoutInfo */)) {\n            return true;\n        }\n        return false;\n    }\n    onFlushed(e) {\n        this._linesCollection.flush();\n        // No need to clear the dom node because a full .innerHTML will occur in ViewLayerRenderer._render\n        return true;\n    }\n    onLinesChanged(e) {\n        return this._linesCollection.onLinesChanged(e.fromLineNumber, e.count);\n    }\n    onLinesDeleted(e) {\n        const deleted = this._linesCollection.onLinesDeleted(e.fromLineNumber, e.toLineNumber);\n        if (deleted) {\n            // Remove from DOM\n            for (let i = 0, len = deleted.length; i < len; i++) {\n                const lineDomNode = deleted[i].getDomNode();\n                if (lineDomNode) {\n                    this.domNode.domNode.removeChild(lineDomNode);\n                }\n            }\n        }\n        return true;\n    }\n    onLinesInserted(e) {\n        const deleted = this._linesCollection.onLinesInserted(e.fromLineNumber, e.toLineNumber);\n        if (deleted) {\n            // Remove from DOM\n            for (let i = 0, len = deleted.length; i < len; i++) {\n                const lineDomNode = deleted[i].getDomNode();\n                if (lineDomNode) {\n                    this.domNode.domNode.removeChild(lineDomNode);\n                }\n            }\n        }\n        return true;\n    }\n    onScrollChanged(e) {\n        return e.scrollTopChanged;\n    }\n    onTokensChanged(e) {\n        return this._linesCollection.onTokensChanged(e.ranges);\n    }\n    onZonesChanged(e) {\n        return true;\n    }\n    // ---- end view event handlers\n    getStartLineNumber() {\n        return this._linesCollection.getStartLineNumber();\n    }\n    getEndLineNumber() {\n        return this._linesCollection.getEndLineNumber();\n    }\n    getVisibleLine(lineNumber) {\n        return this._linesCollection.getLine(lineNumber);\n    }\n    renderLines(viewportData) {\n        const inp = this._linesCollection._get();\n        const renderer = new ViewLayerRenderer(this.domNode.domNode, this._host, viewportData);\n        const ctx = {\n            rendLineNumberStart: inp.rendLineNumberStart,\n            lines: inp.lines,\n            linesLength: inp.lines.length\n        };\n        // Decide if this render will do a single update (single large .innerHTML) or many updates (inserting/removing dom nodes)\n        const resCtx = renderer.render(ctx, viewportData.startLineNumber, viewportData.endLineNumber, viewportData.relativeVerticalOffset);\n        this._linesCollection._set(resCtx.rendLineNumberStart, resCtx.lines);\n    }\n}\nclass ViewLayerRenderer {\n    constructor(domNode, host, viewportData) {\n        this.domNode = domNode;\n        this.host = host;\n        this.viewportData = viewportData;\n    }\n    render(inContext, startLineNumber, stopLineNumber, deltaTop) {\n        const ctx = {\n            rendLineNumberStart: inContext.rendLineNumberStart,\n            lines: inContext.lines.slice(0),\n            linesLength: inContext.linesLength\n        };\n        if ((ctx.rendLineNumberStart + ctx.linesLength - 1 < startLineNumber) || (stopLineNumber < ctx.rendLineNumberStart)) {\n            // There is no overlap whatsoever\n            ctx.rendLineNumberStart = startLineNumber;\n            ctx.linesLength = stopLineNumber - startLineNumber + 1;\n            ctx.lines = [];\n            for (let x = startLineNumber; x <= stopLineNumber; x++) {\n                ctx.lines[x - startLineNumber] = this.host.createVisibleLine();\n            }\n            this._finishRendering(ctx, true, deltaTop);\n            return ctx;\n        }\n        // Update lines which will remain untouched\n        this._renderUntouchedLines(ctx, Math.max(startLineNumber - ctx.rendLineNumberStart, 0), Math.min(stopLineNumber - ctx.rendLineNumberStart, ctx.linesLength - 1), deltaTop, startLineNumber);\n        if (ctx.rendLineNumberStart > startLineNumber) {\n            // Insert lines before\n            const fromLineNumber = startLineNumber;\n            const toLineNumber = Math.min(stopLineNumber, ctx.rendLineNumberStart - 1);\n            if (fromLineNumber <= toLineNumber) {\n                this._insertLinesBefore(ctx, fromLineNumber, toLineNumber, deltaTop, startLineNumber);\n                ctx.linesLength += toLineNumber - fromLineNumber + 1;\n            }\n        }\n        else if (ctx.rendLineNumberStart < startLineNumber) {\n            // Remove lines before\n            const removeCnt = Math.min(ctx.linesLength, startLineNumber - ctx.rendLineNumberStart);\n            if (removeCnt > 0) {\n                this._removeLinesBefore(ctx, removeCnt);\n                ctx.linesLength -= removeCnt;\n            }\n        }\n        ctx.rendLineNumberStart = startLineNumber;\n        if (ctx.rendLineNumberStart + ctx.linesLength - 1 < stopLineNumber) {\n            // Insert lines after\n            const fromLineNumber = ctx.rendLineNumberStart + ctx.linesLength;\n            const toLineNumber = stopLineNumber;\n            if (fromLineNumber <= toLineNumber) {\n                this._insertLinesAfter(ctx, fromLineNumber, toLineNumber, deltaTop, startLineNumber);\n                ctx.linesLength += toLineNumber - fromLineNumber + 1;\n            }\n        }\n        else if (ctx.rendLineNumberStart + ctx.linesLength - 1 > stopLineNumber) {\n            // Remove lines after\n            const fromLineNumber = Math.max(0, stopLineNumber - ctx.rendLineNumberStart + 1);\n            const toLineNumber = ctx.linesLength - 1;\n            const removeCnt = toLineNumber - fromLineNumber + 1;\n            if (removeCnt > 0) {\n                this._removeLinesAfter(ctx, removeCnt);\n                ctx.linesLength -= removeCnt;\n            }\n        }\n        this._finishRendering(ctx, false, deltaTop);\n        return ctx;\n    }\n    _renderUntouchedLines(ctx, startIndex, endIndex, deltaTop, deltaLN) {\n        const rendLineNumberStart = ctx.rendLineNumberStart;\n        const lines = ctx.lines;\n        for (let i = startIndex; i <= endIndex; i++) {\n            const lineNumber = rendLineNumberStart + i;\n            lines[i].layoutLine(lineNumber, deltaTop[lineNumber - deltaLN], this.viewportData.lineHeight);\n        }\n    }\n    _insertLinesBefore(ctx, fromLineNumber, toLineNumber, deltaTop, deltaLN) {\n        const newLines = [];\n        let newLinesLen = 0;\n        for (let lineNumber = fromLineNumber; lineNumber <= toLineNumber; lineNumber++) {\n            newLines[newLinesLen++] = this.host.createVisibleLine();\n        }\n        ctx.lines = newLines.concat(ctx.lines);\n    }\n    _removeLinesBefore(ctx, removeCount) {\n        for (let i = 0; i < removeCount; i++) {\n            const lineDomNode = ctx.lines[i].getDomNode();\n            if (lineDomNode) {\n                this.domNode.removeChild(lineDomNode);\n            }\n        }\n        ctx.lines.splice(0, removeCount);\n    }\n    _insertLinesAfter(ctx, fromLineNumber, toLineNumber, deltaTop, deltaLN) {\n        const newLines = [];\n        let newLinesLen = 0;\n        for (let lineNumber = fromLineNumber; lineNumber <= toLineNumber; lineNumber++) {\n            newLines[newLinesLen++] = this.host.createVisibleLine();\n        }\n        ctx.lines = ctx.lines.concat(newLines);\n    }\n    _removeLinesAfter(ctx, removeCount) {\n        const removeIndex = ctx.linesLength - removeCount;\n        for (let i = 0; i < removeCount; i++) {\n            const lineDomNode = ctx.lines[removeIndex + i].getDomNode();\n            if (lineDomNode) {\n                this.domNode.removeChild(lineDomNode);\n            }\n        }\n        ctx.lines.splice(removeIndex, removeCount);\n    }\n    _finishRenderingNewLines(ctx, domNodeIsEmpty, newLinesHTML, wasNew) {\n        if (ViewLayerRenderer._ttPolicy) {\n            newLinesHTML = ViewLayerRenderer._ttPolicy.createHTML(newLinesHTML);\n        }\n        const lastChild = this.domNode.lastChild;\n        if (domNodeIsEmpty || !lastChild) {\n            this.domNode.innerHTML = newLinesHTML; // explains the ugly casts -> https://github.com/microsoft/vscode/issues/106396#issuecomment-692625393;\n        }\n        else {\n            lastChild.insertAdjacentHTML('afterend', newLinesHTML);\n        }\n        let currChild = this.domNode.lastChild;\n        for (let i = ctx.linesLength - 1; i >= 0; i--) {\n            const line = ctx.lines[i];\n            if (wasNew[i]) {\n                line.setDomNode(currChild);\n                currChild = currChild.previousSibling;\n            }\n        }\n    }\n    _finishRenderingInvalidLines(ctx, invalidLinesHTML, wasInvalid) {\n        const hugeDomNode = document.createElement('div');\n        if (ViewLayerRenderer._ttPolicy) {\n            invalidLinesHTML = ViewLayerRenderer._ttPolicy.createHTML(invalidLinesHTML);\n        }\n        hugeDomNode.innerHTML = invalidLinesHTML;\n        for (let i = 0; i < ctx.linesLength; i++) {\n            const line = ctx.lines[i];\n            if (wasInvalid[i]) {\n                const source = hugeDomNode.firstChild;\n                const lineDomNode = line.getDomNode();\n                lineDomNode.parentNode.replaceChild(source, lineDomNode);\n                line.setDomNode(source);\n            }\n        }\n    }\n    _finishRendering(ctx, domNodeIsEmpty, deltaTop) {\n        const sb = ViewLayerRenderer._sb;\n        const linesLength = ctx.linesLength;\n        const lines = ctx.lines;\n        const rendLineNumberStart = ctx.rendLineNumberStart;\n        const wasNew = [];\n        {\n            sb.reset();\n            let hadNewLine = false;\n            for (let i = 0; i < linesLength; i++) {\n                const line = lines[i];\n                wasNew[i] = false;\n                const lineDomNode = line.getDomNode();\n                if (lineDomNode) {\n                    // line is not new\n                    continue;\n                }\n                const renderResult = line.renderLine(i + rendLineNumberStart, deltaTop[i], this.viewportData.lineHeight, this.viewportData, sb);\n                if (!renderResult) {\n                    // line does not need rendering\n                    continue;\n                }\n                wasNew[i] = true;\n                hadNewLine = true;\n            }\n            if (hadNewLine) {\n                this._finishRenderingNewLines(ctx, domNodeIsEmpty, sb.build(), wasNew);\n            }\n        }\n        {\n            sb.reset();\n            let hadInvalidLine = false;\n            const wasInvalid = [];\n            for (let i = 0; i < linesLength; i++) {\n                const line = lines[i];\n                wasInvalid[i] = false;\n                if (wasNew[i]) {\n                    // line was new\n                    continue;\n                }\n                const renderResult = line.renderLine(i + rendLineNumberStart, deltaTop[i], this.viewportData.lineHeight, this.viewportData, sb);\n                if (!renderResult) {\n                    // line does not need rendering\n                    continue;\n                }\n                wasInvalid[i] = true;\n                hadInvalidLine = true;\n            }\n            if (hadInvalidLine) {\n                this._finishRenderingInvalidLines(ctx, sb.build(), wasInvalid);\n            }\n        }\n    }\n}\nViewLayerRenderer._ttPolicy = createTrustedTypesPolicy('editorViewLayer', { createHTML: value => value });\nViewLayerRenderer._sb = new StringBuilder(100000);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/view/viewOverlays.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createFastDomNode } from '../../../base/browser/fastDomNode.js';\nimport { applyFontInfo } from '../config/domFontInfo.js';\nimport { VisibleLinesCollection } from './viewLayer.js';\nimport { ViewPart } from './viewPart.js';\nexport class ViewOverlays extends ViewPart {\n    constructor(context) {\n        super(context);\n        this._visibleLines = new VisibleLinesCollection(this);\n        this.domNode = this._visibleLines.domNode;\n        const options = this._context.configuration.options;\n        const fontInfo = options.get(50 /* EditorOption.fontInfo */);\n        applyFontInfo(this.domNode, fontInfo);\n        this._dynamicOverlays = [];\n        this._isFocused = false;\n        this.domNode.setClassName('view-overlays');\n    }\n    shouldRender() {\n        if (super.shouldRender()) {\n            return true;\n        }\n        for (let i = 0, len = this._dynamicOverlays.length; i < len; i++) {\n            const dynamicOverlay = this._dynamicOverlays[i];\n            if (dynamicOverlay.shouldRender()) {\n                return true;\n            }\n        }\n        return false;\n    }\n    dispose() {\n        super.dispose();\n        for (let i = 0, len = this._dynamicOverlays.length; i < len; i++) {\n            const dynamicOverlay = this._dynamicOverlays[i];\n            dynamicOverlay.dispose();\n        }\n        this._dynamicOverlays = [];\n    }\n    getDomNode() {\n        return this.domNode;\n    }\n    // ---- begin IVisibleLinesHost\n    createVisibleLine() {\n        return new ViewOverlayLine(this._dynamicOverlays);\n    }\n    // ---- end IVisibleLinesHost\n    addDynamicOverlay(overlay) {\n        this._dynamicOverlays.push(overlay);\n    }\n    // ----- event handlers\n    onConfigurationChanged(e) {\n        this._visibleLines.onConfigurationChanged(e);\n        const options = this._context.configuration.options;\n        const fontInfo = options.get(50 /* EditorOption.fontInfo */);\n        applyFontInfo(this.domNode, fontInfo);\n        return true;\n    }\n    onFlushed(e) {\n        return this._visibleLines.onFlushed(e);\n    }\n    onFocusChanged(e) {\n        this._isFocused = e.isFocused;\n        return true;\n    }\n    onLinesChanged(e) {\n        return this._visibleLines.onLinesChanged(e);\n    }\n    onLinesDeleted(e) {\n        return this._visibleLines.onLinesDeleted(e);\n    }\n    onLinesInserted(e) {\n        return this._visibleLines.onLinesInserted(e);\n    }\n    onScrollChanged(e) {\n        return this._visibleLines.onScrollChanged(e) || true;\n    }\n    onTokensChanged(e) {\n        return this._visibleLines.onTokensChanged(e);\n    }\n    onZonesChanged(e) {\n        return this._visibleLines.onZonesChanged(e);\n    }\n    // ----- end event handlers\n    prepareRender(ctx) {\n        const toRender = this._dynamicOverlays.filter(overlay => overlay.shouldRender());\n        for (let i = 0, len = toRender.length; i < len; i++) {\n            const dynamicOverlay = toRender[i];\n            dynamicOverlay.prepareRender(ctx);\n            dynamicOverlay.onDidRender();\n        }\n    }\n    render(ctx) {\n        // Overwriting to bypass `shouldRender` flag\n        this._viewOverlaysRender(ctx);\n        this.domNode.toggleClassName('focused', this._isFocused);\n    }\n    _viewOverlaysRender(ctx) {\n        this._visibleLines.renderLines(ctx.viewportData);\n    }\n}\nexport class ViewOverlayLine {\n    constructor(dynamicOverlays) {\n        this._dynamicOverlays = dynamicOverlays;\n        this._domNode = null;\n        this._renderedContent = null;\n    }\n    getDomNode() {\n        if (!this._domNode) {\n            return null;\n        }\n        return this._domNode.domNode;\n    }\n    setDomNode(domNode) {\n        this._domNode = createFastDomNode(domNode);\n    }\n    onContentChanged() {\n        // Nothing\n    }\n    onTokensChanged() {\n        // Nothing\n    }\n    renderLine(lineNumber, deltaTop, lineHeight, viewportData, sb) {\n        let result = '';\n        for (let i = 0, len = this._dynamicOverlays.length; i < len; i++) {\n            const dynamicOverlay = this._dynamicOverlays[i];\n            result += dynamicOverlay.render(viewportData.startLineNumber, lineNumber);\n        }\n        if (this._renderedContent === result) {\n            // No rendering needed\n            return false;\n        }\n        this._renderedContent = result;\n        sb.appendString('<div style=\"top:');\n        sb.appendString(String(deltaTop));\n        sb.appendString('px;height:');\n        sb.appendString(String(lineHeight));\n        sb.appendString('px;\">');\n        sb.appendString(result);\n        sb.appendString('</div>');\n        return true;\n    }\n    layoutLine(lineNumber, deltaTop, lineHeight) {\n        if (this._domNode) {\n            this._domNode.setTop(deltaTop);\n            this._domNode.setHeight(lineHeight);\n        }\n    }\n}\nexport class ContentViewOverlays extends ViewOverlays {\n    constructor(context) {\n        super(context);\n        const options = this._context.configuration.options;\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        this._contentWidth = layoutInfo.contentWidth;\n        this.domNode.setHeight(0);\n    }\n    // --- begin event handlers\n    onConfigurationChanged(e) {\n        const options = this._context.configuration.options;\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        this._contentWidth = layoutInfo.contentWidth;\n        return super.onConfigurationChanged(e) || true;\n    }\n    onScrollChanged(e) {\n        return super.onScrollChanged(e) || e.scrollWidthChanged;\n    }\n    // --- end event handlers\n    _viewOverlaysRender(ctx) {\n        super._viewOverlaysRender(ctx);\n        this.domNode.setWidth(Math.max(ctx.scrollWidth, this._contentWidth));\n    }\n}\nexport class MarginViewOverlays extends ViewOverlays {\n    constructor(context) {\n        super(context);\n        const options = this._context.configuration.options;\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        this._contentLeft = layoutInfo.contentLeft;\n        this.domNode.setClassName('margin-view-overlays');\n        this.domNode.setWidth(1);\n        applyFontInfo(this.domNode, options.get(50 /* EditorOption.fontInfo */));\n    }\n    onConfigurationChanged(e) {\n        const options = this._context.configuration.options;\n        applyFontInfo(this.domNode, options.get(50 /* EditorOption.fontInfo */));\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        this._contentLeft = layoutInfo.contentLeft;\n        return super.onConfigurationChanged(e) || true;\n    }\n    onScrollChanged(e) {\n        return super.onScrollChanged(e) || e.scrollHeightChanged;\n    }\n    _viewOverlaysRender(ctx) {\n        super._viewOverlaysRender(ctx);\n        const height = Math.min(ctx.scrollHeight, 1000000);\n        this.domNode.setHeight(height);\n        this.domNode.setWidth(this._contentLeft);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/view/viewPart.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { ViewEventHandler } from '../../common/viewEventHandler.js';\nexport class ViewPart extends ViewEventHandler {\n    constructor(context) {\n        super();\n        this._context = context;\n        this._context.addEventHandler(this);\n    }\n    dispose() {\n        this._context.removeEventHandler(this);\n        super.dispose();\n    }\n}\nexport class PartFingerprints {\n    static write(target, partId) {\n        target.setAttribute('data-mprt', String(partId));\n    }\n    static read(target) {\n        const r = target.getAttribute('data-mprt');\n        if (r === null) {\n            return 0 /* PartFingerprint.None */;\n        }\n        return parseInt(r, 10);\n    }\n    static collect(child, stopAt) {\n        const result = [];\n        let resultLen = 0;\n        while (child && child !== child.ownerDocument.body) {\n            if (child === stopAt) {\n                break;\n            }\n            if (child.nodeType === child.ELEMENT_NODE) {\n                result[resultLen++] = this.read(child);\n            }\n            child = child.parentElement;\n        }\n        const r = new Uint8Array(resultLen);\n        for (let i = 0; i < resultLen; i++) {\n            r[i] = result[resultLen - i - 1];\n        }\n        return r;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/view/viewUserInputEvents.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Position } from '../../common/core/position.js';\nexport class ViewUserInputEvents {\n    constructor(coordinatesConverter) {\n        this.onKeyDown = null;\n        this.onKeyUp = null;\n        this.onContextMenu = null;\n        this.onMouseMove = null;\n        this.onMouseLeave = null;\n        this.onMouseDown = null;\n        this.onMouseUp = null;\n        this.onMouseDrag = null;\n        this.onMouseDrop = null;\n        this.onMouseDropCanceled = null;\n        this.onMouseWheel = null;\n        this._coordinatesConverter = coordinatesConverter;\n    }\n    emitKeyDown(e) {\n        var _a;\n        (_a = this.onKeyDown) === null || _a === void 0 ? void 0 : _a.call(this, e);\n    }\n    emitKeyUp(e) {\n        var _a;\n        (_a = this.onKeyUp) === null || _a === void 0 ? void 0 : _a.call(this, e);\n    }\n    emitContextMenu(e) {\n        var _a;\n        (_a = this.onContextMenu) === null || _a === void 0 ? void 0 : _a.call(this, this._convertViewToModelMouseEvent(e));\n    }\n    emitMouseMove(e) {\n        var _a;\n        (_a = this.onMouseMove) === null || _a === void 0 ? void 0 : _a.call(this, this._convertViewToModelMouseEvent(e));\n    }\n    emitMouseLeave(e) {\n        var _a;\n        (_a = this.onMouseLeave) === null || _a === void 0 ? void 0 : _a.call(this, this._convertViewToModelMouseEvent(e));\n    }\n    emitMouseDown(e) {\n        var _a;\n        (_a = this.onMouseDown) === null || _a === void 0 ? void 0 : _a.call(this, this._convertViewToModelMouseEvent(e));\n    }\n    emitMouseUp(e) {\n        var _a;\n        (_a = this.onMouseUp) === null || _a === void 0 ? void 0 : _a.call(this, this._convertViewToModelMouseEvent(e));\n    }\n    emitMouseDrag(e) {\n        var _a;\n        (_a = this.onMouseDrag) === null || _a === void 0 ? void 0 : _a.call(this, this._convertViewToModelMouseEvent(e));\n    }\n    emitMouseDrop(e) {\n        var _a;\n        (_a = this.onMouseDrop) === null || _a === void 0 ? void 0 : _a.call(this, this._convertViewToModelMouseEvent(e));\n    }\n    emitMouseDropCanceled() {\n        var _a;\n        (_a = this.onMouseDropCanceled) === null || _a === void 0 ? void 0 : _a.call(this);\n    }\n    emitMouseWheel(e) {\n        var _a;\n        (_a = this.onMouseWheel) === null || _a === void 0 ? void 0 : _a.call(this, e);\n    }\n    _convertViewToModelMouseEvent(e) {\n        if (e.target) {\n            return {\n                event: e.event,\n                target: this._convertViewToModelMouseTarget(e.target)\n            };\n        }\n        return e;\n    }\n    _convertViewToModelMouseTarget(target) {\n        return ViewUserInputEvents.convertViewToModelMouseTarget(target, this._coordinatesConverter);\n    }\n    static convertViewToModelMouseTarget(target, coordinatesConverter) {\n        const result = { ...target };\n        if (result.position) {\n            result.position = coordinatesConverter.convertViewPositionToModelPosition(result.position);\n        }\n        if (result.range) {\n            result.range = coordinatesConverter.convertViewRangeToModelRange(result.range);\n        }\n        if (result.type === 5 /* MouseTargetType.GUTTER_VIEW_ZONE */ || result.type === 8 /* MouseTargetType.CONTENT_VIEW_ZONE */) {\n            result.detail = this.convertViewToModelViewZoneData(result.detail, coordinatesConverter);\n        }\n        return result;\n    }\n    static convertViewToModelViewZoneData(data, coordinatesConverter) {\n        return {\n            viewZoneId: data.viewZoneId,\n            positionBefore: data.positionBefore ? coordinatesConverter.convertViewPositionToModelPosition(data.positionBefore) : data.positionBefore,\n            positionAfter: data.positionAfter ? coordinatesConverter.convertViewPositionToModelPosition(data.positionAfter) : data.positionAfter,\n            position: coordinatesConverter.convertViewPositionToModelPosition(data.position),\n            afterLineNumber: coordinatesConverter.convertViewPositionToModelPosition(new Position(data.afterLineNumber, 1)).lineNumber,\n        };\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/view.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport * as dom from '../../base/browser/dom.js';\nimport { createFastDomNode } from '../../base/browser/fastDomNode.js';\nimport { inputLatency } from '../../base/browser/performance.js';\nimport { BugIndicatingError, onUnexpectedError } from '../../base/common/errors.js';\nimport { PointerHandlerLastRenderData } from './controller/mouseTarget.js';\nimport { PointerHandler } from './controller/pointerHandler.js';\nimport { TextAreaHandler } from './controller/textAreaHandler.js';\nimport { RenderingContext } from './view/renderingContext.js';\nimport { ViewController } from './view/viewController.js';\nimport { ContentViewOverlays, MarginViewOverlays } from './view/viewOverlays.js';\nimport { PartFingerprints } from './view/viewPart.js';\nimport { ViewUserInputEvents } from './view/viewUserInputEvents.js';\nimport { BlockDecorations } from './viewParts/blockDecorations/blockDecorations.js';\nimport { ViewContentWidgets } from './viewParts/contentWidgets/contentWidgets.js';\nimport { CurrentLineHighlightOverlay, CurrentLineMarginHighlightOverlay } from './viewParts/currentLineHighlight/currentLineHighlight.js';\nimport { DecorationsOverlay } from './viewParts/decorations/decorations.js';\nimport { EditorScrollbar } from './viewParts/editorScrollbar/editorScrollbar.js';\nimport { GlyphMarginWidgets } from './viewParts/glyphMargin/glyphMargin.js';\nimport { IndentGuidesOverlay } from './viewParts/indentGuides/indentGuides.js';\nimport { LineNumbersOverlay } from './viewParts/lineNumbers/lineNumbers.js';\nimport { ViewLines } from './viewParts/lines/viewLines.js';\nimport { LinesDecorationsOverlay } from './viewParts/linesDecorations/linesDecorations.js';\nimport { Margin } from './viewParts/margin/margin.js';\nimport { MarginViewLineDecorationsOverlay } from './viewParts/marginDecorations/marginDecorations.js';\nimport { Minimap } from './viewParts/minimap/minimap.js';\nimport { ViewOverlayWidgets } from './viewParts/overlayWidgets/overlayWidgets.js';\nimport { DecorationsOverviewRuler } from './viewParts/overviewRuler/decorationsOverviewRuler.js';\nimport { OverviewRuler } from './viewParts/overviewRuler/overviewRuler.js';\nimport { Rulers } from './viewParts/rulers/rulers.js';\nimport { ScrollDecorationViewPart } from './viewParts/scrollDecoration/scrollDecoration.js';\nimport { SelectionsOverlay } from './viewParts/selections/selections.js';\nimport { ViewCursors } from './viewParts/viewCursors/viewCursors.js';\nimport { ViewZones } from './viewParts/viewZones/viewZones.js';\nimport { WhitespaceOverlay } from './viewParts/whitespace/whitespace.js';\nimport { Position } from '../common/core/position.js';\nimport { Range } from '../common/core/range.js';\nimport { Selection } from '../common/core/selection.js';\nimport { GlyphMarginLane } from '../common/model.js';\nimport { ViewEventHandler } from '../common/viewEventHandler.js';\nimport { ViewportData } from '../common/viewLayout/viewLinesViewportData.js';\nimport { ViewContext } from '../common/viewModel/viewContext.js';\nimport { IInstantiationService } from '../../platform/instantiation/common/instantiation.js';\nimport { getThemeTypeSelector } from '../../platform/theme/common/themeService.js';\nlet View = class View extends ViewEventHandler {\n    constructor(commandDelegate, configuration, colorTheme, model, userInputEvents, overflowWidgetsDomNode, _instantiationService) {\n        super();\n        this._instantiationService = _instantiationService;\n        // Actual mutable state\n        this._shouldRecomputeGlyphMarginLanes = false;\n        this._selections = [new Selection(1, 1, 1, 1)];\n        this._renderAnimationFrame = null;\n        const viewController = new ViewController(configuration, model, userInputEvents, commandDelegate);\n        // The view context is passed on to most classes (basically to reduce param. counts in ctors)\n        this._context = new ViewContext(configuration, colorTheme, model);\n        // Ensure the view is the first event handler in order to update the layout\n        this._context.addEventHandler(this);\n        this._viewParts = [];\n        // Keyboard handler\n        this._textAreaHandler = this._instantiationService.createInstance(TextAreaHandler, this._context, viewController, this._createTextAreaHandlerHelper());\n        this._viewParts.push(this._textAreaHandler);\n        // These two dom nodes must be constructed up front, since references are needed in the layout provider (scrolling & co.)\n        this._linesContent = createFastDomNode(document.createElement('div'));\n        this._linesContent.setClassName('lines-content' + ' monaco-editor-background');\n        this._linesContent.setPosition('absolute');\n        this.domNode = createFastDomNode(document.createElement('div'));\n        this.domNode.setClassName(this._getEditorClassName());\n        // Set role 'code' for better screen reader support https://github.com/microsoft/vscode/issues/93438\n        this.domNode.setAttribute('role', 'code');\n        this._overflowGuardContainer = createFastDomNode(document.createElement('div'));\n        PartFingerprints.write(this._overflowGuardContainer, 3 /* PartFingerprint.OverflowGuard */);\n        this._overflowGuardContainer.setClassName('overflow-guard');\n        this._scrollbar = new EditorScrollbar(this._context, this._linesContent, this.domNode, this._overflowGuardContainer);\n        this._viewParts.push(this._scrollbar);\n        // View Lines\n        this._viewLines = new ViewLines(this._context, this._linesContent);\n        // View Zones\n        this._viewZones = new ViewZones(this._context);\n        this._viewParts.push(this._viewZones);\n        // Decorations overview ruler\n        const decorationsOverviewRuler = new DecorationsOverviewRuler(this._context);\n        this._viewParts.push(decorationsOverviewRuler);\n        const scrollDecoration = new ScrollDecorationViewPart(this._context);\n        this._viewParts.push(scrollDecoration);\n        const contentViewOverlays = new ContentViewOverlays(this._context);\n        this._viewParts.push(contentViewOverlays);\n        contentViewOverlays.addDynamicOverlay(new CurrentLineHighlightOverlay(this._context));\n        contentViewOverlays.addDynamicOverlay(new SelectionsOverlay(this._context));\n        contentViewOverlays.addDynamicOverlay(new IndentGuidesOverlay(this._context));\n        contentViewOverlays.addDynamicOverlay(new DecorationsOverlay(this._context));\n        contentViewOverlays.addDynamicOverlay(new WhitespaceOverlay(this._context));\n        const marginViewOverlays = new MarginViewOverlays(this._context);\n        this._viewParts.push(marginViewOverlays);\n        marginViewOverlays.addDynamicOverlay(new CurrentLineMarginHighlightOverlay(this._context));\n        marginViewOverlays.addDynamicOverlay(new MarginViewLineDecorationsOverlay(this._context));\n        marginViewOverlays.addDynamicOverlay(new LinesDecorationsOverlay(this._context));\n        marginViewOverlays.addDynamicOverlay(new LineNumbersOverlay(this._context));\n        // Glyph margin widgets\n        this._glyphMarginWidgets = new GlyphMarginWidgets(this._context);\n        this._viewParts.push(this._glyphMarginWidgets);\n        const margin = new Margin(this._context);\n        margin.getDomNode().appendChild(this._viewZones.marginDomNode);\n        margin.getDomNode().appendChild(marginViewOverlays.getDomNode());\n        margin.getDomNode().appendChild(this._glyphMarginWidgets.domNode);\n        this._viewParts.push(margin);\n        // Content widgets\n        this._contentWidgets = new ViewContentWidgets(this._context, this.domNode);\n        this._viewParts.push(this._contentWidgets);\n        this._viewCursors = new ViewCursors(this._context);\n        this._viewParts.push(this._viewCursors);\n        // Overlay widgets\n        this._overlayWidgets = new ViewOverlayWidgets(this._context, this.domNode);\n        this._viewParts.push(this._overlayWidgets);\n        const rulers = new Rulers(this._context);\n        this._viewParts.push(rulers);\n        const blockOutline = new BlockDecorations(this._context);\n        this._viewParts.push(blockOutline);\n        const minimap = new Minimap(this._context);\n        this._viewParts.push(minimap);\n        // -------------- Wire dom nodes up\n        if (decorationsOverviewRuler) {\n            const overviewRulerData = this._scrollbar.getOverviewRulerLayoutInfo();\n            overviewRulerData.parent.insertBefore(decorationsOverviewRuler.getDomNode(), overviewRulerData.insertBefore);\n        }\n        this._linesContent.appendChild(contentViewOverlays.getDomNode());\n        this._linesContent.appendChild(rulers.domNode);\n        this._linesContent.appendChild(this._viewZones.domNode);\n        this._linesContent.appendChild(this._viewLines.getDomNode());\n        this._linesContent.appendChild(this._contentWidgets.domNode);\n        this._linesContent.appendChild(this._viewCursors.getDomNode());\n        this._overflowGuardContainer.appendChild(margin.getDomNode());\n        this._overflowGuardContainer.appendChild(this._scrollbar.getDomNode());\n        this._overflowGuardContainer.appendChild(scrollDecoration.getDomNode());\n        this._overflowGuardContainer.appendChild(this._textAreaHandler.textArea);\n        this._overflowGuardContainer.appendChild(this._textAreaHandler.textAreaCover);\n        this._overflowGuardContainer.appendChild(this._overlayWidgets.getDomNode());\n        this._overflowGuardContainer.appendChild(minimap.getDomNode());\n        this._overflowGuardContainer.appendChild(blockOutline.domNode);\n        this.domNode.appendChild(this._overflowGuardContainer);\n        if (overflowWidgetsDomNode) {\n            overflowWidgetsDomNode.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode.domNode);\n            overflowWidgetsDomNode.appendChild(this._overlayWidgets.overflowingOverlayWidgetsDomNode.domNode);\n        }\n        else {\n            this.domNode.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode);\n            this.domNode.appendChild(this._overlayWidgets.overflowingOverlayWidgetsDomNode);\n        }\n        this._applyLayout();\n        // Pointer handler\n        this._pointerHandler = this._register(new PointerHandler(this._context, viewController, this._createPointerHandlerHelper()));\n    }\n    _computeGlyphMarginLanes() {\n        const model = this._context.viewModel.model;\n        const laneModel = this._context.viewModel.glyphLanes;\n        let glyphs = [];\n        let maxLineNumber = 0;\n        // Add all margin decorations\n        glyphs = glyphs.concat(model.getAllMarginDecorations().map((decoration) => {\n            var _a, _b, _c;\n            const lane = (_b = (_a = decoration.options.glyphMargin) === null || _a === void 0 ? void 0 : _a.position) !== null && _b !== void 0 ? _b : GlyphMarginLane.Center;\n            maxLineNumber = Math.max(maxLineNumber, decoration.range.endLineNumber);\n            return { range: decoration.range, lane, persist: (_c = decoration.options.glyphMargin) === null || _c === void 0 ? void 0 : _c.persistLane };\n        }));\n        // Add all glyph margin widgets\n        glyphs = glyphs.concat(this._glyphMarginWidgets.getWidgets().map((widget) => {\n            const range = model.validateRange(widget.preference.range);\n            maxLineNumber = Math.max(maxLineNumber, range.endLineNumber);\n            return { range, lane: widget.preference.lane };\n        }));\n        // Sorted by their start position\n        glyphs.sort((a, b) => Range.compareRangesUsingStarts(a.range, b.range));\n        laneModel.reset(maxLineNumber);\n        for (const glyph of glyphs) {\n            laneModel.push(glyph.lane, glyph.range, glyph.persist);\n        }\n        return laneModel;\n    }\n    _createPointerHandlerHelper() {\n        return {\n            viewDomNode: this.domNode.domNode,\n            linesContentDomNode: this._linesContent.domNode,\n            viewLinesDomNode: this._viewLines.getDomNode().domNode,\n            focusTextArea: () => {\n                this.focus();\n            },\n            dispatchTextAreaEvent: (event) => {\n                this._textAreaHandler.textArea.domNode.dispatchEvent(event);\n            },\n            getLastRenderData: () => {\n                const lastViewCursorsRenderData = this._viewCursors.getLastRenderData() || [];\n                const lastTextareaPosition = this._textAreaHandler.getLastRenderData();\n                return new PointerHandlerLastRenderData(lastViewCursorsRenderData, lastTextareaPosition);\n            },\n            renderNow: () => {\n                this.render(true, false);\n            },\n            shouldSuppressMouseDownOnViewZone: (viewZoneId) => {\n                return this._viewZones.shouldSuppressMouseDownOnViewZone(viewZoneId);\n            },\n            shouldSuppressMouseDownOnWidget: (widgetId) => {\n                return this._contentWidgets.shouldSuppressMouseDownOnWidget(widgetId);\n            },\n            getPositionFromDOMInfo: (spanNode, offset) => {\n                this._flushAccumulatedAndRenderNow();\n                return this._viewLines.getPositionFromDOMInfo(spanNode, offset);\n            },\n            visibleRangeForPosition: (lineNumber, column) => {\n                this._flushAccumulatedAndRenderNow();\n                return this._viewLines.visibleRangeForPosition(new Position(lineNumber, column));\n            },\n            getLineWidth: (lineNumber) => {\n                this._flushAccumulatedAndRenderNow();\n                return this._viewLines.getLineWidth(lineNumber);\n            }\n        };\n    }\n    _createTextAreaHandlerHelper() {\n        return {\n            visibleRangeForPosition: (position) => {\n                this._flushAccumulatedAndRenderNow();\n                return this._viewLines.visibleRangeForPosition(position);\n            }\n        };\n    }\n    _applyLayout() {\n        const options = this._context.configuration.options;\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        this.domNode.setWidth(layoutInfo.width);\n        this.domNode.setHeight(layoutInfo.height);\n        this._overflowGuardContainer.setWidth(layoutInfo.width);\n        this._overflowGuardContainer.setHeight(layoutInfo.height);\n        // https://stackoverflow.com/questions/38905916/content-in-google-chrome-larger-than-16777216-px-not-being-rendered\n        this._linesContent.setWidth(16777216);\n        this._linesContent.setHeight(16777216);\n    }\n    _getEditorClassName() {\n        const focused = this._textAreaHandler.isFocused() ? ' focused' : '';\n        return this._context.configuration.options.get(142 /* EditorOption.editorClassName */) + ' ' + getThemeTypeSelector(this._context.theme.type) + focused;\n    }\n    // --- begin event handlers\n    handleEvents(events) {\n        super.handleEvents(events);\n        this._scheduleRender();\n    }\n    onConfigurationChanged(e) {\n        this.domNode.setClassName(this._getEditorClassName());\n        this._applyLayout();\n        return false;\n    }\n    onCursorStateChanged(e) {\n        this._selections = e.selections;\n        return false;\n    }\n    onDecorationsChanged(e) {\n        if (e.affectsGlyphMargin) {\n            this._shouldRecomputeGlyphMarginLanes = true;\n        }\n        return false;\n    }\n    onFocusChanged(e) {\n        this.domNode.setClassName(this._getEditorClassName());\n        return false;\n    }\n    onThemeChanged(e) {\n        this._context.theme.update(e.theme);\n        this.domNode.setClassName(this._getEditorClassName());\n        return false;\n    }\n    // --- end event handlers\n    dispose() {\n        if (this._renderAnimationFrame !== null) {\n            this._renderAnimationFrame.dispose();\n            this._renderAnimationFrame = null;\n        }\n        this._contentWidgets.overflowingContentWidgetsDomNode.domNode.remove();\n        this._context.removeEventHandler(this);\n        this._viewLines.dispose();\n        // Destroy view parts\n        for (const viewPart of this._viewParts) {\n            viewPart.dispose();\n        }\n        super.dispose();\n    }\n    _scheduleRender() {\n        if (this._store.isDisposed) {\n            throw new BugIndicatingError();\n        }\n        if (this._renderAnimationFrame === null) {\n            const rendering = this._createCoordinatedRendering();\n            this._renderAnimationFrame = EditorRenderingCoordinator.INSTANCE.scheduleCoordinatedRendering({\n                window: dom.getWindow(this.domNode.domNode),\n                prepareRenderText: () => {\n                    if (this._store.isDisposed) {\n                        throw new BugIndicatingError();\n                    }\n                    try {\n                        return rendering.prepareRenderText();\n                    }\n                    finally {\n                        this._renderAnimationFrame = null;\n                    }\n                },\n                renderText: () => {\n                    if (this._store.isDisposed) {\n                        throw new BugIndicatingError();\n                    }\n                    return rendering.renderText();\n                },\n                prepareRender: (viewParts, ctx) => {\n                    if (this._store.isDisposed) {\n                        throw new BugIndicatingError();\n                    }\n                    return rendering.prepareRender(viewParts, ctx);\n                },\n                render: (viewParts, ctx) => {\n                    if (this._store.isDisposed) {\n                        throw new BugIndicatingError();\n                    }\n                    return rendering.render(viewParts, ctx);\n                }\n            });\n        }\n    }\n    _flushAccumulatedAndRenderNow() {\n        const rendering = this._createCoordinatedRendering();\n        safeInvokeNoArg(() => rendering.prepareRenderText());\n        const data = safeInvokeNoArg(() => rendering.renderText());\n        if (data) {\n            const [viewParts, ctx] = data;\n            safeInvokeNoArg(() => rendering.prepareRender(viewParts, ctx));\n            safeInvokeNoArg(() => rendering.render(viewParts, ctx));\n        }\n    }\n    _getViewPartsToRender() {\n        const result = [];\n        let resultLen = 0;\n        for (const viewPart of this._viewParts) {\n            if (viewPart.shouldRender()) {\n                result[resultLen++] = viewPart;\n            }\n        }\n        return result;\n    }\n    _createCoordinatedRendering() {\n        return {\n            prepareRenderText: () => {\n                if (this._shouldRecomputeGlyphMarginLanes) {\n                    this._shouldRecomputeGlyphMarginLanes = false;\n                    const model = this._computeGlyphMarginLanes();\n                    this._context.configuration.setGlyphMarginDecorationLaneCount(model.requiredLanes);\n                }\n                inputLatency.onRenderStart();\n            },\n            renderText: () => {\n                if (!this.domNode.domNode.isConnected) {\n                    return null;\n                }\n                let viewPartsToRender = this._getViewPartsToRender();\n                if (!this._viewLines.shouldRender() && viewPartsToRender.length === 0) {\n                    // Nothing to render\n                    return null;\n                }\n                const partialViewportData = this._context.viewLayout.getLinesViewportData();\n                this._context.viewModel.setViewport(partialViewportData.startLineNumber, partialViewportData.endLineNumber, partialViewportData.centeredLineNumber);\n                const viewportData = new ViewportData(this._selections, partialViewportData, this._context.viewLayout.getWhitespaceViewportData(), this._context.viewModel);\n                if (this._contentWidgets.shouldRender()) {\n                    // Give the content widgets a chance to set their max width before a possible synchronous layout\n                    this._contentWidgets.onBeforeRender(viewportData);\n                }\n                if (this._viewLines.shouldRender()) {\n                    this._viewLines.renderText(viewportData);\n                    this._viewLines.onDidRender();\n                    // Rendering of viewLines might cause scroll events to occur, so collect view parts to render again\n                    viewPartsToRender = this._getViewPartsToRender();\n                }\n                return [viewPartsToRender, new RenderingContext(this._context.viewLayout, viewportData, this._viewLines)];\n            },\n            prepareRender: (viewPartsToRender, ctx) => {\n                for (const viewPart of viewPartsToRender) {\n                    viewPart.prepareRender(ctx);\n                }\n            },\n            render: (viewPartsToRender, ctx) => {\n                for (const viewPart of viewPartsToRender) {\n                    viewPart.render(ctx);\n                    viewPart.onDidRender();\n                }\n            }\n        };\n    }\n    // --- BEGIN CodeEditor helpers\n    delegateVerticalScrollbarPointerDown(browserEvent) {\n        this._scrollbar.delegateVerticalScrollbarPointerDown(browserEvent);\n    }\n    delegateScrollFromMouseWheelEvent(browserEvent) {\n        this._scrollbar.delegateScrollFromMouseWheelEvent(browserEvent);\n    }\n    restoreState(scrollPosition) {\n        this._context.viewModel.viewLayout.setScrollPosition({\n            scrollTop: scrollPosition.scrollTop,\n            scrollLeft: scrollPosition.scrollLeft\n        }, 1 /* ScrollType.Immediate */);\n        this._context.viewModel.visibleLinesStabilized();\n    }\n    getOffsetForColumn(modelLineNumber, modelColumn) {\n        const modelPosition = this._context.viewModel.model.validatePosition({\n            lineNumber: modelLineNumber,\n            column: modelColumn\n        });\n        const viewPosition = this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(modelPosition);\n        this._flushAccumulatedAndRenderNow();\n        const visibleRange = this._viewLines.visibleRangeForPosition(new Position(viewPosition.lineNumber, viewPosition.column));\n        if (!visibleRange) {\n            return -1;\n        }\n        return visibleRange.left;\n    }\n    getTargetAtClientPoint(clientX, clientY) {\n        const mouseTarget = this._pointerHandler.getTargetAtClientPoint(clientX, clientY);\n        if (!mouseTarget) {\n            return null;\n        }\n        return ViewUserInputEvents.convertViewToModelMouseTarget(mouseTarget, this._context.viewModel.coordinatesConverter);\n    }\n    createOverviewRuler(cssClassName) {\n        return new OverviewRuler(this._context, cssClassName);\n    }\n    change(callback) {\n        this._viewZones.changeViewZones(callback);\n        this._scheduleRender();\n    }\n    render(now, everything) {\n        if (everything) {\n            // Force everything to render...\n            this._viewLines.forceShouldRender();\n            for (const viewPart of this._viewParts) {\n                viewPart.forceShouldRender();\n            }\n        }\n        if (now) {\n            this._flushAccumulatedAndRenderNow();\n        }\n        else {\n            this._scheduleRender();\n        }\n    }\n    writeScreenReaderContent(reason) {\n        this._textAreaHandler.writeScreenReaderContent(reason);\n    }\n    focus() {\n        this._textAreaHandler.focusTextArea();\n    }\n    isFocused() {\n        return this._textAreaHandler.isFocused();\n    }\n    setAriaOptions(options) {\n        this._textAreaHandler.setAriaOptions(options);\n    }\n    addContentWidget(widgetData) {\n        this._contentWidgets.addWidget(widgetData.widget);\n        this.layoutContentWidget(widgetData);\n        this._scheduleRender();\n    }\n    layoutContentWidget(widgetData) {\n        var _a, _b, _c, _d, _e, _f, _g, _h;\n        this._contentWidgets.setWidgetPosition(widgetData.widget, (_b = (_a = widgetData.position) === null || _a === void 0 ? void 0 : _a.position) !== null && _b !== void 0 ? _b : null, (_d = (_c = widgetData.position) === null || _c === void 0 ? void 0 : _c.secondaryPosition) !== null && _d !== void 0 ? _d : null, (_f = (_e = widgetData.position) === null || _e === void 0 ? void 0 : _e.preference) !== null && _f !== void 0 ? _f : null, (_h = (_g = widgetData.position) === null || _g === void 0 ? void 0 : _g.positionAffinity) !== null && _h !== void 0 ? _h : null);\n        this._scheduleRender();\n    }\n    removeContentWidget(widgetData) {\n        this._contentWidgets.removeWidget(widgetData.widget);\n        this._scheduleRender();\n    }\n    addOverlayWidget(widgetData) {\n        this._overlayWidgets.addWidget(widgetData.widget);\n        this.layoutOverlayWidget(widgetData);\n        this._scheduleRender();\n    }\n    layoutOverlayWidget(widgetData) {\n        const shouldRender = this._overlayWidgets.setWidgetPosition(widgetData.widget, widgetData.position);\n        if (shouldRender) {\n            this._scheduleRender();\n        }\n    }\n    removeOverlayWidget(widgetData) {\n        this._overlayWidgets.removeWidget(widgetData.widget);\n        this._scheduleRender();\n    }\n    addGlyphMarginWidget(widgetData) {\n        this._glyphMarginWidgets.addWidget(widgetData.widget);\n        this._shouldRecomputeGlyphMarginLanes = true;\n        this._scheduleRender();\n    }\n    layoutGlyphMarginWidget(widgetData) {\n        const newPreference = widgetData.position;\n        const shouldRender = this._glyphMarginWidgets.setWidgetPosition(widgetData.widget, newPreference);\n        if (shouldRender) {\n            this._shouldRecomputeGlyphMarginLanes = true;\n            this._scheduleRender();\n        }\n    }\n    removeGlyphMarginWidget(widgetData) {\n        this._glyphMarginWidgets.removeWidget(widgetData.widget);\n        this._shouldRecomputeGlyphMarginLanes = true;\n        this._scheduleRender();\n    }\n};\nView = __decorate([\n    __param(6, IInstantiationService)\n], View);\nexport { View };\nfunction safeInvokeNoArg(func) {\n    try {\n        return func();\n    }\n    catch (e) {\n        onUnexpectedError(e);\n        return null;\n    }\n}\nclass EditorRenderingCoordinator {\n    constructor() {\n        this._coordinatedRenderings = [];\n        this._animationFrameRunners = new Map();\n    }\n    scheduleCoordinatedRendering(rendering) {\n        this._coordinatedRenderings.push(rendering);\n        this._scheduleRender(rendering.window);\n        return {\n            dispose: () => {\n                const renderingIndex = this._coordinatedRenderings.indexOf(rendering);\n                if (renderingIndex === -1) {\n                    return;\n                }\n                this._coordinatedRenderings.splice(renderingIndex, 1);\n                if (this._coordinatedRenderings.length === 0) {\n                    // There are no more renderings to coordinate => cancel animation frames\n                    for (const [_, disposable] of this._animationFrameRunners) {\n                        disposable.dispose();\n                    }\n                    this._animationFrameRunners.clear();\n                }\n            }\n        };\n    }\n    _scheduleRender(window) {\n        if (!this._animationFrameRunners.has(window)) {\n            const runner = () => {\n                this._animationFrameRunners.delete(window);\n                this._onRenderScheduled();\n            };\n            this._animationFrameRunners.set(window, dom.runAtThisOrScheduleAtNextAnimationFrame(window, runner, 100));\n        }\n    }\n    _onRenderScheduled() {\n        const coordinatedRenderings = this._coordinatedRenderings.slice(0);\n        this._coordinatedRenderings = [];\n        for (const rendering of coordinatedRenderings) {\n            safeInvokeNoArg(() => rendering.prepareRenderText());\n        }\n        const datas = [];\n        for (let i = 0, len = coordinatedRenderings.length; i < len; i++) {\n            const rendering = coordinatedRenderings[i];\n            datas[i] = safeInvokeNoArg(() => rendering.renderText());\n        }\n        for (let i = 0, len = coordinatedRenderings.length; i < len; i++) {\n            const rendering = coordinatedRenderings[i];\n            const data = datas[i];\n            if (!data) {\n                continue;\n            }\n            const [viewParts, ctx] = data;\n            safeInvokeNoArg(() => rendering.prepareRender(viewParts, ctx));\n        }\n        for (let i = 0, len = coordinatedRenderings.length; i < len; i++) {\n            const rendering = coordinatedRenderings[i];\n            const data = datas[i];\n            if (!data) {\n                continue;\n            }\n            const [viewParts, ctx] = data;\n            safeInvokeNoArg(() => rendering.render(viewParts, ctx));\n        }\n    }\n}\nEditorRenderingCoordinator.INSTANCE = new EditorRenderingCoordinator();\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/blockDecorations/blockDecorations.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .blockDecorations-container {\n\tposition: absolute;\n\ttop: 0;\n\tpointer-events: none;\n}\n\n.monaco-editor .blockDecorations-block {\n\tposition: absolute;\n\tbox-sizing: border-box;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/blockDecorations/blockDecorations.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport './blockDecorations.css';\nimport { ViewPart } from '../../view/viewPart.js';\nexport class BlockDecorations extends ViewPart {\n    constructor(context) {\n        super(context);\n        this.blocks = [];\n        this.contentWidth = -1;\n        this.contentLeft = 0;\n        this.domNode = createFastDomNode(document.createElement('div'));\n        this.domNode.setAttribute('role', 'presentation');\n        this.domNode.setAttribute('aria-hidden', 'true');\n        this.domNode.setClassName('blockDecorations-container');\n        this.update();\n    }\n    update() {\n        let didChange = false;\n        const options = this._context.configuration.options;\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        const newContentWidth = layoutInfo.contentWidth - layoutInfo.verticalScrollbarWidth;\n        if (this.contentWidth !== newContentWidth) {\n            this.contentWidth = newContentWidth;\n            didChange = true;\n        }\n        const newContentLeft = layoutInfo.contentLeft;\n        if (this.contentLeft !== newContentLeft) {\n            this.contentLeft = newContentLeft;\n            didChange = true;\n        }\n        return didChange;\n    }\n    dispose() {\n        super.dispose();\n    }\n    // --- begin event handlers\n    onConfigurationChanged(e) {\n        return this.update();\n    }\n    onScrollChanged(e) {\n        return e.scrollTopChanged || e.scrollLeftChanged;\n    }\n    onDecorationsChanged(e) {\n        return true;\n    }\n    onZonesChanged(e) {\n        return true;\n    }\n    // --- end event handlers\n    prepareRender(ctx) {\n        // Nothing to read\n    }\n    render(ctx) {\n        var _a;\n        let count = 0;\n        const decorations = ctx.getDecorationsInViewport();\n        for (const decoration of decorations) {\n            if (!decoration.options.blockClassName) {\n                continue;\n            }\n            let block = this.blocks[count];\n            if (!block) {\n                block = this.blocks[count] = createFastDomNode(document.createElement('div'));\n                this.domNode.appendChild(block);\n            }\n            let top;\n            let bottom;\n            if (decoration.options.blockIsAfterEnd) {\n                // range must be empty\n                top = ctx.getVerticalOffsetAfterLineNumber(decoration.range.endLineNumber, false);\n                bottom = ctx.getVerticalOffsetAfterLineNumber(decoration.range.endLineNumber, true);\n            }\n            else {\n                top = ctx.getVerticalOffsetForLineNumber(decoration.range.startLineNumber, true);\n                bottom = decoration.range.isEmpty() && !decoration.options.blockDoesNotCollapse\n                    ? ctx.getVerticalOffsetForLineNumber(decoration.range.startLineNumber, false)\n                    : ctx.getVerticalOffsetAfterLineNumber(decoration.range.endLineNumber, true);\n            }\n            const [paddingTop, paddingRight, paddingBottom, paddingLeft] = (_a = decoration.options.blockPadding) !== null && _a !== void 0 ? _a : [0, 0, 0, 0];\n            block.setClassName('blockDecorations-block ' + decoration.options.blockClassName);\n            block.setLeft(this.contentLeft - paddingLeft);\n            block.setWidth(this.contentWidth + paddingLeft + paddingRight);\n            block.setTop(top - ctx.scrollTop - paddingTop);\n            block.setHeight(bottom - top + paddingTop + paddingBottom);\n            count++;\n        }\n        for (let i = count; i < this.blocks.length; i++) {\n            this.blocks[i].domNode.remove();\n        }\n        this.blocks.length = count;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../../../base/browser/dom.js';\nimport { createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport { PartFingerprints, ViewPart } from '../../view/viewPart.js';\nexport class ViewContentWidgets extends ViewPart {\n    constructor(context, viewDomNode) {\n        super(context);\n        this._viewDomNode = viewDomNode;\n        this._widgets = {};\n        this.domNode = createFastDomNode(document.createElement('div'));\n        PartFingerprints.write(this.domNode, 1 /* PartFingerprint.ContentWidgets */);\n        this.domNode.setClassName('contentWidgets');\n        this.domNode.setPosition('absolute');\n        this.domNode.setTop(0);\n        this.overflowingContentWidgetsDomNode = createFastDomNode(document.createElement('div'));\n        PartFingerprints.write(this.overflowingContentWidgetsDomNode, 2 /* PartFingerprint.OverflowingContentWidgets */);\n        this.overflowingContentWidgetsDomNode.setClassName('overflowingContentWidgets');\n    }\n    dispose() {\n        super.dispose();\n        this._widgets = {};\n    }\n    // --- begin event handlers\n    onConfigurationChanged(e) {\n        const keys = Object.keys(this._widgets);\n        for (const widgetId of keys) {\n            this._widgets[widgetId].onConfigurationChanged(e);\n        }\n        return true;\n    }\n    onDecorationsChanged(e) {\n        // true for inline decorations that can end up relayouting text\n        return true;\n    }\n    onFlushed(e) {\n        return true;\n    }\n    onLineMappingChanged(e) {\n        this._updateAnchorsViewPositions();\n        return true;\n    }\n    onLinesChanged(e) {\n        this._updateAnchorsViewPositions();\n        return true;\n    }\n    onLinesDeleted(e) {\n        this._updateAnchorsViewPositions();\n        return true;\n    }\n    onLinesInserted(e) {\n        this._updateAnchorsViewPositions();\n        return true;\n    }\n    onScrollChanged(e) {\n        return true;\n    }\n    onZonesChanged(e) {\n        return true;\n    }\n    // ---- end view event handlers\n    _updateAnchorsViewPositions() {\n        const keys = Object.keys(this._widgets);\n        for (const widgetId of keys) {\n            this._widgets[widgetId].updateAnchorViewPosition();\n        }\n    }\n    addWidget(_widget) {\n        const myWidget = new Widget(this._context, this._viewDomNode, _widget);\n        this._widgets[myWidget.id] = myWidget;\n        if (myWidget.allowEditorOverflow) {\n            this.overflowingContentWidgetsDomNode.appendChild(myWidget.domNode);\n        }\n        else {\n            this.domNode.appendChild(myWidget.domNode);\n        }\n        this.setShouldRender();\n    }\n    setWidgetPosition(widget, primaryAnchor, secondaryAnchor, preference, affinity) {\n        const myWidget = this._widgets[widget.getId()];\n        myWidget.setPosition(primaryAnchor, secondaryAnchor, preference, affinity);\n        this.setShouldRender();\n    }\n    removeWidget(widget) {\n        const widgetId = widget.getId();\n        if (this._widgets.hasOwnProperty(widgetId)) {\n            const myWidget = this._widgets[widgetId];\n            delete this._widgets[widgetId];\n            const domNode = myWidget.domNode.domNode;\n            domNode.parentNode.removeChild(domNode);\n            domNode.removeAttribute('monaco-visible-content-widget');\n            this.setShouldRender();\n        }\n    }\n    shouldSuppressMouseDownOnWidget(widgetId) {\n        if (this._widgets.hasOwnProperty(widgetId)) {\n            return this._widgets[widgetId].suppressMouseDown;\n        }\n        return false;\n    }\n    onBeforeRender(viewportData) {\n        const keys = Object.keys(this._widgets);\n        for (const widgetId of keys) {\n            this._widgets[widgetId].onBeforeRender(viewportData);\n        }\n    }\n    prepareRender(ctx) {\n        const keys = Object.keys(this._widgets);\n        for (const widgetId of keys) {\n            this._widgets[widgetId].prepareRender(ctx);\n        }\n    }\n    render(ctx) {\n        const keys = Object.keys(this._widgets);\n        for (const widgetId of keys) {\n            this._widgets[widgetId].render(ctx);\n        }\n    }\n}\nclass Widget {\n    constructor(context, viewDomNode, actual) {\n        this._primaryAnchor = new PositionPair(null, null);\n        this._secondaryAnchor = new PositionPair(null, null);\n        this._context = context;\n        this._viewDomNode = viewDomNode;\n        this._actual = actual;\n        this.domNode = createFastDomNode(this._actual.getDomNode());\n        this.id = this._actual.getId();\n        this.allowEditorOverflow = this._actual.allowEditorOverflow || false;\n        this.suppressMouseDown = this._actual.suppressMouseDown || false;\n        const options = this._context.configuration.options;\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        this._fixedOverflowWidgets = options.get(42 /* EditorOption.fixedOverflowWidgets */);\n        this._contentWidth = layoutInfo.contentWidth;\n        this._contentLeft = layoutInfo.contentLeft;\n        this._lineHeight = options.get(67 /* EditorOption.lineHeight */);\n        this._affinity = null;\n        this._preference = [];\n        this._cachedDomNodeOffsetWidth = -1;\n        this._cachedDomNodeOffsetHeight = -1;\n        this._maxWidth = this._getMaxWidth();\n        this._isVisible = false;\n        this._renderData = null;\n        this.domNode.setPosition((this._fixedOverflowWidgets && this.allowEditorOverflow) ? 'fixed' : 'absolute');\n        this.domNode.setDisplay('none');\n        this.domNode.setVisibility('hidden');\n        this.domNode.setAttribute('widgetId', this.id);\n        this.domNode.setMaxWidth(this._maxWidth);\n    }\n    onConfigurationChanged(e) {\n        const options = this._context.configuration.options;\n        this._lineHeight = options.get(67 /* EditorOption.lineHeight */);\n        if (e.hasChanged(145 /* EditorOption.layoutInfo */)) {\n            const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n            this._contentLeft = layoutInfo.contentLeft;\n            this._contentWidth = layoutInfo.contentWidth;\n            this._maxWidth = this._getMaxWidth();\n        }\n    }\n    updateAnchorViewPosition() {\n        this._setPosition(this._affinity, this._primaryAnchor.modelPosition, this._secondaryAnchor.modelPosition);\n    }\n    _setPosition(affinity, primaryAnchor, secondaryAnchor) {\n        this._affinity = affinity;\n        this._primaryAnchor = getValidPositionPair(primaryAnchor, this._context.viewModel, this._affinity);\n        this._secondaryAnchor = getValidPositionPair(secondaryAnchor, this._context.viewModel, this._affinity);\n        function getValidPositionPair(position, viewModel, affinity) {\n            if (!position) {\n                return new PositionPair(null, null);\n            }\n            // Do not trust that widgets give a valid position\n            const validModelPosition = viewModel.model.validatePosition(position);\n            if (viewModel.coordinatesConverter.modelPositionIsVisible(validModelPosition)) {\n                const viewPosition = viewModel.coordinatesConverter.convertModelPositionToViewPosition(validModelPosition, affinity !== null && affinity !== void 0 ? affinity : undefined);\n                return new PositionPair(position, viewPosition);\n            }\n            return new PositionPair(position, null);\n        }\n    }\n    _getMaxWidth() {\n        const elDocument = this.domNode.domNode.ownerDocument;\n        const elWindow = elDocument.defaultView;\n        return (this.allowEditorOverflow\n            ? (elWindow === null || elWindow === void 0 ? void 0 : elWindow.innerWidth) || elDocument.documentElement.offsetWidth || elDocument.body.offsetWidth\n            : this._contentWidth);\n    }\n    setPosition(primaryAnchor, secondaryAnchor, preference, affinity) {\n        this._setPosition(affinity, primaryAnchor, secondaryAnchor);\n        this._preference = preference;\n        if (this._primaryAnchor.viewPosition && this._preference && this._preference.length > 0) {\n            // this content widget would like to be visible if possible\n            // we change it from `display:none` to `display:block` even if it\n            // might be outside the viewport such that we can measure its size\n            // in `prepareRender`\n            this.domNode.setDisplay('block');\n        }\n        else {\n            this.domNode.setDisplay('none');\n        }\n        this._cachedDomNodeOffsetWidth = -1;\n        this._cachedDomNodeOffsetHeight = -1;\n    }\n    _layoutBoxInViewport(anchor, width, height, ctx) {\n        // Our visible box is split horizontally by the current line => 2 boxes\n        // a) the box above the line\n        const aboveLineTop = anchor.top;\n        const heightAvailableAboveLine = aboveLineTop;\n        // b) the box under the line\n        const underLineTop = anchor.top + anchor.height;\n        const heightAvailableUnderLine = ctx.viewportHeight - underLineTop;\n        const aboveTop = aboveLineTop - height;\n        const fitsAbove = (heightAvailableAboveLine >= height);\n        const belowTop = underLineTop;\n        const fitsBelow = (heightAvailableUnderLine >= height);\n        // And its left\n        let left = anchor.left;\n        if (left + width > ctx.scrollLeft + ctx.viewportWidth) {\n            left = ctx.scrollLeft + ctx.viewportWidth - width;\n        }\n        if (left < ctx.scrollLeft) {\n            left = ctx.scrollLeft;\n        }\n        return { fitsAbove, aboveTop, fitsBelow, belowTop, left };\n    }\n    _layoutHorizontalSegmentInPage(windowSize, domNodePosition, left, width) {\n        var _a;\n        // Leave some clearance to the left/right\n        const LEFT_PADDING = 15;\n        const RIGHT_PADDING = 15;\n        // Initially, the limits are defined as the dom node limits\n        const MIN_LIMIT = Math.max(LEFT_PADDING, domNodePosition.left - width);\n        const MAX_LIMIT = Math.min(domNodePosition.left + domNodePosition.width + width, windowSize.width - RIGHT_PADDING);\n        const elDocument = this._viewDomNode.domNode.ownerDocument;\n        const elWindow = elDocument.defaultView;\n        let absoluteLeft = domNodePosition.left + left - ((_a = elWindow === null || elWindow === void 0 ? void 0 : elWindow.scrollX) !== null && _a !== void 0 ? _a : 0);\n        if (absoluteLeft + width > MAX_LIMIT) {\n            const delta = absoluteLeft - (MAX_LIMIT - width);\n            absoluteLeft -= delta;\n            left -= delta;\n        }\n        if (absoluteLeft < MIN_LIMIT) {\n            const delta = absoluteLeft - MIN_LIMIT;\n            absoluteLeft -= delta;\n            left -= delta;\n        }\n        return [left, absoluteLeft];\n    }\n    _layoutBoxInPage(anchor, width, height, ctx) {\n        var _a, _b;\n        const aboveTop = anchor.top - height;\n        const belowTop = anchor.top + anchor.height;\n        const domNodePosition = dom.getDomNodePagePosition(this._viewDomNode.domNode);\n        const elDocument = this._viewDomNode.domNode.ownerDocument;\n        const elWindow = elDocument.defaultView;\n        const absoluteAboveTop = domNodePosition.top + aboveTop - ((_a = elWindow === null || elWindow === void 0 ? void 0 : elWindow.scrollY) !== null && _a !== void 0 ? _a : 0);\n        const absoluteBelowTop = domNodePosition.top + belowTop - ((_b = elWindow === null || elWindow === void 0 ? void 0 : elWindow.scrollY) !== null && _b !== void 0 ? _b : 0);\n        const windowSize = dom.getClientArea(elDocument.body);\n        const [left, absoluteAboveLeft] = this._layoutHorizontalSegmentInPage(windowSize, domNodePosition, anchor.left - ctx.scrollLeft + this._contentLeft, width);\n        // Leave some clearance to the top/bottom\n        const TOP_PADDING = 22;\n        const BOTTOM_PADDING = 22;\n        const fitsAbove = (absoluteAboveTop >= TOP_PADDING);\n        const fitsBelow = (absoluteBelowTop + height <= windowSize.height - BOTTOM_PADDING);\n        if (this._fixedOverflowWidgets) {\n            return {\n                fitsAbove,\n                aboveTop: Math.max(absoluteAboveTop, TOP_PADDING),\n                fitsBelow,\n                belowTop: absoluteBelowTop,\n                left: absoluteAboveLeft\n            };\n        }\n        return { fitsAbove, aboveTop, fitsBelow, belowTop, left };\n    }\n    _prepareRenderWidgetAtExactPositionOverflowing(topLeft) {\n        return new Coordinate(topLeft.top, topLeft.left + this._contentLeft);\n    }\n    /**\n     * Compute the coordinates above and below the primary and secondary anchors.\n     * The content widget *must* touch the primary anchor.\n     * The content widget should touch if possible the secondary anchor.\n     */\n    _getAnchorsCoordinates(ctx) {\n        var _a, _b;\n        const primary = getCoordinates(this._primaryAnchor.viewPosition, this._affinity, this._lineHeight);\n        const secondaryViewPosition = (((_a = this._secondaryAnchor.viewPosition) === null || _a === void 0 ? void 0 : _a.lineNumber) === ((_b = this._primaryAnchor.viewPosition) === null || _b === void 0 ? void 0 : _b.lineNumber) ? this._secondaryAnchor.viewPosition : null);\n        const secondary = getCoordinates(secondaryViewPosition, this._affinity, this._lineHeight);\n        return { primary, secondary };\n        function getCoordinates(position, affinity, lineHeight) {\n            if (!position) {\n                return null;\n            }\n            const horizontalPosition = ctx.visibleRangeForPosition(position);\n            if (!horizontalPosition) {\n                return null;\n            }\n            // Left-align widgets that should appear :before content\n            const left = (position.column === 1 && affinity === 3 /* PositionAffinity.LeftOfInjectedText */ ? 0 : horizontalPosition.left);\n            const top = ctx.getVerticalOffsetForLineNumber(position.lineNumber) - ctx.scrollTop;\n            return new AnchorCoordinate(top, left, lineHeight);\n        }\n    }\n    _reduceAnchorCoordinates(primary, secondary, width) {\n        if (!secondary) {\n            return primary;\n        }\n        const fontInfo = this._context.configuration.options.get(50 /* EditorOption.fontInfo */);\n        let left = secondary.left;\n        if (left < primary.left) {\n            left = Math.max(left, primary.left - width + fontInfo.typicalFullwidthCharacterWidth);\n        }\n        else {\n            left = Math.min(left, primary.left + width - fontInfo.typicalFullwidthCharacterWidth);\n        }\n        return new AnchorCoordinate(primary.top, left, primary.height);\n    }\n    _prepareRenderWidget(ctx) {\n        if (!this._preference || this._preference.length === 0) {\n            return null;\n        }\n        const { primary, secondary } = this._getAnchorsCoordinates(ctx);\n        if (!primary) {\n            return {\n                kind: 'offViewport',\n                preserveFocus: this.domNode.domNode.contains(this.domNode.domNode.ownerDocument.activeElement)\n            };\n            // return null;\n        }\n        if (this._cachedDomNodeOffsetWidth === -1 || this._cachedDomNodeOffsetHeight === -1) {\n            let preferredDimensions = null;\n            if (typeof this._actual.beforeRender === 'function') {\n                preferredDimensions = safeInvoke(this._actual.beforeRender, this._actual);\n            }\n            if (preferredDimensions) {\n                this._cachedDomNodeOffsetWidth = preferredDimensions.width;\n                this._cachedDomNodeOffsetHeight = preferredDimensions.height;\n            }\n            else {\n                const domNode = this.domNode.domNode;\n                const clientRect = domNode.getBoundingClientRect();\n                this._cachedDomNodeOffsetWidth = Math.round(clientRect.width);\n                this._cachedDomNodeOffsetHeight = Math.round(clientRect.height);\n            }\n        }\n        const anchor = this._reduceAnchorCoordinates(primary, secondary, this._cachedDomNodeOffsetWidth);\n        let placement;\n        if (this.allowEditorOverflow) {\n            placement = this._layoutBoxInPage(anchor, this._cachedDomNodeOffsetWidth, this._cachedDomNodeOffsetHeight, ctx);\n        }\n        else {\n            placement = this._layoutBoxInViewport(anchor, this._cachedDomNodeOffsetWidth, this._cachedDomNodeOffsetHeight, ctx);\n        }\n        // Do two passes, first for perfect fit, second picks first option\n        for (let pass = 1; pass <= 2; pass++) {\n            for (const pref of this._preference) {\n                // placement\n                if (pref === 1 /* ContentWidgetPositionPreference.ABOVE */) {\n                    if (!placement) {\n                        // Widget outside of viewport\n                        return null;\n                    }\n                    if (pass === 2 || placement.fitsAbove) {\n                        return {\n                            kind: 'inViewport',\n                            coordinate: new Coordinate(placement.aboveTop, placement.left),\n                            position: 1 /* ContentWidgetPositionPreference.ABOVE */\n                        };\n                    }\n                }\n                else if (pref === 2 /* ContentWidgetPositionPreference.BELOW */) {\n                    if (!placement) {\n                        // Widget outside of viewport\n                        return null;\n                    }\n                    if (pass === 2 || placement.fitsBelow) {\n                        return {\n                            kind: 'inViewport',\n                            coordinate: new Coordinate(placement.belowTop, placement.left),\n                            position: 2 /* ContentWidgetPositionPreference.BELOW */\n                        };\n                    }\n                }\n                else {\n                    if (this.allowEditorOverflow) {\n                        return {\n                            kind: 'inViewport',\n                            coordinate: this._prepareRenderWidgetAtExactPositionOverflowing(new Coordinate(anchor.top, anchor.left)),\n                            position: 0 /* ContentWidgetPositionPreference.EXACT */\n                        };\n                    }\n                    else {\n                        return {\n                            kind: 'inViewport',\n                            coordinate: new Coordinate(anchor.top, anchor.left),\n                            position: 0 /* ContentWidgetPositionPreference.EXACT */\n                        };\n                    }\n                }\n            }\n        }\n        return null;\n    }\n    /**\n     * On this first pass, we ensure that the content widget (if it is in the viewport) has the max width set correctly.\n     */\n    onBeforeRender(viewportData) {\n        if (!this._primaryAnchor.viewPosition || !this._preference) {\n            return;\n        }\n        if (this._primaryAnchor.viewPosition.lineNumber < viewportData.startLineNumber || this._primaryAnchor.viewPosition.lineNumber > viewportData.endLineNumber) {\n            // Outside of viewport\n            return;\n        }\n        this.domNode.setMaxWidth(this._maxWidth);\n    }\n    prepareRender(ctx) {\n        this._renderData = this._prepareRenderWidget(ctx);\n    }\n    render(ctx) {\n        var _a;\n        if (!this._renderData || this._renderData.kind === 'offViewport') {\n            // This widget should be invisible\n            if (this._isVisible) {\n                this.domNode.removeAttribute('monaco-visible-content-widget');\n                this._isVisible = false;\n                if (((_a = this._renderData) === null || _a === void 0 ? void 0 : _a.kind) === 'offViewport' && this._renderData.preserveFocus) {\n                    // widget wants to be shown, but it is outside of the viewport and it\n                    // has focus which we need to preserve\n                    this.domNode.setTop(-1000);\n                }\n                else {\n                    this.domNode.setVisibility('hidden');\n                }\n            }\n            if (typeof this._actual.afterRender === 'function') {\n                safeInvoke(this._actual.afterRender, this._actual, null);\n            }\n            return;\n        }\n        // This widget should be visible\n        if (this.allowEditorOverflow) {\n            this.domNode.setTop(this._renderData.coordinate.top);\n            this.domNode.setLeft(this._renderData.coordinate.left);\n        }\n        else {\n            this.domNode.setTop(this._renderData.coordinate.top + ctx.scrollTop - ctx.bigNumbersDelta);\n            this.domNode.setLeft(this._renderData.coordinate.left);\n        }\n        if (!this._isVisible) {\n            this.domNode.setVisibility('inherit');\n            this.domNode.setAttribute('monaco-visible-content-widget', 'true');\n            this._isVisible = true;\n        }\n        if (typeof this._actual.afterRender === 'function') {\n            safeInvoke(this._actual.afterRender, this._actual, this._renderData.position);\n        }\n    }\n}\nclass PositionPair {\n    constructor(modelPosition, viewPosition) {\n        this.modelPosition = modelPosition;\n        this.viewPosition = viewPosition;\n    }\n}\nclass Coordinate {\n    constructor(top, left) {\n        this.top = top;\n        this.left = left;\n        this._coordinateBrand = undefined;\n    }\n}\nclass AnchorCoordinate {\n    constructor(top, left, height) {\n        this.top = top;\n        this.left = left;\n        this.height = height;\n        this._anchorCoordinateBrand = undefined;\n    }\n}\nfunction safeInvoke(fn, thisArg, ...args) {\n    try {\n        return fn.call(thisArg, ...args);\n    }\n    catch (_a) {\n        // ignore\n        return null;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .view-overlays .current-line {\n\tdisplay: block;\n\tposition: absolute;\n\tleft: 0;\n\ttop: 0;\n\tbox-sizing: border-box;\n\theight: 100%;\n}\n\n.monaco-editor .margin-view-overlays .current-line {\n\tdisplay: block;\n\tposition: absolute;\n\tleft: 0;\n\ttop: 0;\n\tbox-sizing: border-box;\n\theight: 100%;\n}\n\n.monaco-editor\n\t.margin-view-overlays\n\t.current-line.current-line-margin.current-line-margin-both {\n\tborder-right: 0;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './currentLineHighlight.css';\nimport { DynamicViewOverlay } from '../../view/dynamicViewOverlay.js';\nimport { editorLineHighlight, editorLineHighlightBorder } from '../../../common/core/editorColorRegistry.js';\nimport * as arrays from '../../../../base/common/arrays.js';\nimport { registerThemingParticipant } from '../../../../platform/theme/common/themeService.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { isHighContrast } from '../../../../platform/theme/common/theme.js';\nimport { Position } from '../../../common/core/position.js';\nexport class AbstractLineHighlightOverlay extends DynamicViewOverlay {\n    constructor(context) {\n        super();\n        this._context = context;\n        const options = this._context.configuration.options;\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        this._renderLineHighlight = options.get(96 /* EditorOption.renderLineHighlight */);\n        this._renderLineHighlightOnlyWhenFocus = options.get(97 /* EditorOption.renderLineHighlightOnlyWhenFocus */);\n        this._wordWrap = layoutInfo.isViewportWrapping;\n        this._contentLeft = layoutInfo.contentLeft;\n        this._contentWidth = layoutInfo.contentWidth;\n        this._selectionIsEmpty = true;\n        this._focused = false;\n        this._cursorLineNumbers = [1];\n        this._selections = [new Selection(1, 1, 1, 1)];\n        this._renderData = null;\n        this._context.addEventHandler(this);\n    }\n    dispose() {\n        this._context.removeEventHandler(this);\n        super.dispose();\n    }\n    _readFromSelections() {\n        let hasChanged = false;\n        const lineNumbers = new Set();\n        for (const selection of this._selections) {\n            lineNumbers.add(selection.positionLineNumber);\n        }\n        const cursorsLineNumbers = Array.from(lineNumbers);\n        cursorsLineNumbers.sort((a, b) => a - b);\n        if (!arrays.equals(this._cursorLineNumbers, cursorsLineNumbers)) {\n            this._cursorLineNumbers = cursorsLineNumbers;\n            hasChanged = true;\n        }\n        const selectionIsEmpty = this._selections.every(s => s.isEmpty());\n        if (this._selectionIsEmpty !== selectionIsEmpty) {\n            this._selectionIsEmpty = selectionIsEmpty;\n            hasChanged = true;\n        }\n        return hasChanged;\n    }\n    // --- begin event handlers\n    onThemeChanged(e) {\n        return this._readFromSelections();\n    }\n    onConfigurationChanged(e) {\n        const options = this._context.configuration.options;\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        this._renderLineHighlight = options.get(96 /* EditorOption.renderLineHighlight */);\n        this._renderLineHighlightOnlyWhenFocus = options.get(97 /* EditorOption.renderLineHighlightOnlyWhenFocus */);\n        this._wordWrap = layoutInfo.isViewportWrapping;\n        this._contentLeft = layoutInfo.contentLeft;\n        this._contentWidth = layoutInfo.contentWidth;\n        return true;\n    }\n    onCursorStateChanged(e) {\n        this._selections = e.selections;\n        return this._readFromSelections();\n    }\n    onFlushed(e) {\n        return true;\n    }\n    onLinesDeleted(e) {\n        return true;\n    }\n    onLinesInserted(e) {\n        return true;\n    }\n    onScrollChanged(e) {\n        return e.scrollWidthChanged || e.scrollTopChanged;\n    }\n    onZonesChanged(e) {\n        return true;\n    }\n    onFocusChanged(e) {\n        if (!this._renderLineHighlightOnlyWhenFocus) {\n            return false;\n        }\n        this._focused = e.isFocused;\n        return true;\n    }\n    // --- end event handlers\n    prepareRender(ctx) {\n        if (!this._shouldRenderThis()) {\n            this._renderData = null;\n            return;\n        }\n        const visibleStartLineNumber = ctx.visibleRange.startLineNumber;\n        const visibleEndLineNumber = ctx.visibleRange.endLineNumber;\n        // initialize renderData\n        const renderData = [];\n        for (let lineNumber = visibleStartLineNumber; lineNumber <= visibleEndLineNumber; lineNumber++) {\n            const lineIndex = lineNumber - visibleStartLineNumber;\n            renderData[lineIndex] = '';\n        }\n        if (this._wordWrap) {\n            // do a first pass to render wrapped lines\n            const renderedLineWrapped = this._renderOne(ctx, false);\n            for (const cursorLineNumber of this._cursorLineNumbers) {\n                const coordinatesConverter = this._context.viewModel.coordinatesConverter;\n                const modelLineNumber = coordinatesConverter.convertViewPositionToModelPosition(new Position(cursorLineNumber, 1)).lineNumber;\n                const firstViewLineNumber = coordinatesConverter.convertModelPositionToViewPosition(new Position(modelLineNumber, 1)).lineNumber;\n                const lastViewLineNumber = coordinatesConverter.convertModelPositionToViewPosition(new Position(modelLineNumber, this._context.viewModel.model.getLineMaxColumn(modelLineNumber))).lineNumber;\n                const firstLine = Math.max(firstViewLineNumber, visibleStartLineNumber);\n                const lastLine = Math.min(lastViewLineNumber, visibleEndLineNumber);\n                for (let lineNumber = firstLine; lineNumber <= lastLine; lineNumber++) {\n                    const lineIndex = lineNumber - visibleStartLineNumber;\n                    renderData[lineIndex] = renderedLineWrapped;\n                }\n            }\n        }\n        // do a second pass to render exact lines\n        const renderedLineExact = this._renderOne(ctx, true);\n        for (const cursorLineNumber of this._cursorLineNumbers) {\n            if (cursorLineNumber < visibleStartLineNumber || cursorLineNumber > visibleEndLineNumber) {\n                continue;\n            }\n            const lineIndex = cursorLineNumber - visibleStartLineNumber;\n            renderData[lineIndex] = renderedLineExact;\n        }\n        this._renderData = renderData;\n    }\n    render(startLineNumber, lineNumber) {\n        if (!this._renderData) {\n            return '';\n        }\n        const lineIndex = lineNumber - startLineNumber;\n        if (lineIndex >= this._renderData.length) {\n            return '';\n        }\n        return this._renderData[lineIndex];\n    }\n    _shouldRenderInMargin() {\n        return ((this._renderLineHighlight === 'gutter' || this._renderLineHighlight === 'all')\n            && (!this._renderLineHighlightOnlyWhenFocus || this._focused));\n    }\n    _shouldRenderInContent() {\n        return ((this._renderLineHighlight === 'line' || this._renderLineHighlight === 'all')\n            && this._selectionIsEmpty\n            && (!this._renderLineHighlightOnlyWhenFocus || this._focused));\n    }\n}\nexport class CurrentLineHighlightOverlay extends AbstractLineHighlightOverlay {\n    _renderOne(ctx, exact) {\n        const className = 'current-line' + (this._shouldRenderInMargin() ? ' current-line-both' : '') + (exact ? ' current-line-exact' : '');\n        return `<div class=\"${className}\" style=\"width:${Math.max(ctx.scrollWidth, this._contentWidth)}px;\"></div>`;\n    }\n    _shouldRenderThis() {\n        return this._shouldRenderInContent();\n    }\n    _shouldRenderOther() {\n        return this._shouldRenderInMargin();\n    }\n}\nexport class CurrentLineMarginHighlightOverlay extends AbstractLineHighlightOverlay {\n    _renderOne(ctx, exact) {\n        const className = 'current-line' + (this._shouldRenderInMargin() ? ' current-line-margin' : '') + (this._shouldRenderOther() ? ' current-line-margin-both' : '') + (this._shouldRenderInMargin() && exact ? ' current-line-exact-margin' : '');\n        return `<div class=\"${className}\" style=\"width:${this._contentLeft}px\"></div>`;\n    }\n    _shouldRenderThis() {\n        return true;\n    }\n    _shouldRenderOther() {\n        return this._shouldRenderInContent();\n    }\n}\nregisterThemingParticipant((theme, collector) => {\n    const lineHighlight = theme.getColor(editorLineHighlight);\n    if (lineHighlight) {\n        collector.addRule(`.monaco-editor .view-overlays .current-line { background-color: ${lineHighlight}; }`);\n        collector.addRule(`.monaco-editor .margin-view-overlays .current-line-margin { background-color: ${lineHighlight}; border: none; }`);\n    }\n    if (!lineHighlight || lineHighlight.isTransparent() || theme.defines(editorLineHighlightBorder)) {\n        const lineHighlightBorder = theme.getColor(editorLineHighlightBorder);\n        if (lineHighlightBorder) {\n            collector.addRule(`.monaco-editor .view-overlays .current-line-exact { border: 2px solid ${lineHighlightBorder}; }`);\n            collector.addRule(`.monaco-editor .margin-view-overlays .current-line-exact-margin { border: 2px solid ${lineHighlightBorder}; }`);\n            if (isHighContrast(theme.type)) {\n                collector.addRule(`.monaco-editor .view-overlays .current-line-exact { border-width: 1px; }`);\n                collector.addRule(`.monaco-editor .margin-view-overlays .current-line-exact-margin { border-width: 1px; }`);\n            }\n        }\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/decorations/decorations.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n/*\n\tKeeping name short for faster parsing.\n\tcdr = core decorations rendering (div)\n*/\n.monaco-editor .lines-content .cdr {\n\tposition: absolute;\n\theight: 100%;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/decorations/decorations.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './decorations.css';\nimport { DynamicViewOverlay } from '../../view/dynamicViewOverlay.js';\nimport { HorizontalRange } from '../../view/renderingContext.js';\nimport { Range } from '../../../common/core/range.js';\nexport class DecorationsOverlay extends DynamicViewOverlay {\n    constructor(context) {\n        super();\n        this._context = context;\n        const options = this._context.configuration.options;\n        this._typicalHalfwidthCharacterWidth = options.get(50 /* EditorOption.fontInfo */).typicalHalfwidthCharacterWidth;\n        this._renderResult = null;\n        this._context.addEventHandler(this);\n    }\n    dispose() {\n        this._context.removeEventHandler(this);\n        this._renderResult = null;\n        super.dispose();\n    }\n    // --- begin event handlers\n    onConfigurationChanged(e) {\n        const options = this._context.configuration.options;\n        this._typicalHalfwidthCharacterWidth = options.get(50 /* EditorOption.fontInfo */).typicalHalfwidthCharacterWidth;\n        return true;\n    }\n    onDecorationsChanged(e) {\n        return true;\n    }\n    onFlushed(e) {\n        return true;\n    }\n    onLinesChanged(e) {\n        return true;\n    }\n    onLinesDeleted(e) {\n        return true;\n    }\n    onLinesInserted(e) {\n        return true;\n    }\n    onScrollChanged(e) {\n        return e.scrollTopChanged || e.scrollWidthChanged;\n    }\n    onZonesChanged(e) {\n        return true;\n    }\n    // --- end event handlers\n    prepareRender(ctx) {\n        const _decorations = ctx.getDecorationsInViewport();\n        // Keep only decorations with `className`\n        let decorations = [];\n        let decorationsLen = 0;\n        for (let i = 0, len = _decorations.length; i < len; i++) {\n            const d = _decorations[i];\n            if (d.options.className) {\n                decorations[decorationsLen++] = d;\n            }\n        }\n        // Sort decorations for consistent render output\n        decorations = decorations.sort((a, b) => {\n            if (a.options.zIndex < b.options.zIndex) {\n                return -1;\n            }\n            if (a.options.zIndex > b.options.zIndex) {\n                return 1;\n            }\n            const aClassName = a.options.className;\n            const bClassName = b.options.className;\n            if (aClassName < bClassName) {\n                return -1;\n            }\n            if (aClassName > bClassName) {\n                return 1;\n            }\n            return Range.compareRangesUsingStarts(a.range, b.range);\n        });\n        const visibleStartLineNumber = ctx.visibleRange.startLineNumber;\n        const visibleEndLineNumber = ctx.visibleRange.endLineNumber;\n        const output = [];\n        for (let lineNumber = visibleStartLineNumber; lineNumber <= visibleEndLineNumber; lineNumber++) {\n            const lineIndex = lineNumber - visibleStartLineNumber;\n            output[lineIndex] = '';\n        }\n        // Render first whole line decorations and then regular decorations\n        this._renderWholeLineDecorations(ctx, decorations, output);\n        this._renderNormalDecorations(ctx, decorations, output);\n        this._renderResult = output;\n    }\n    _renderWholeLineDecorations(ctx, decorations, output) {\n        const visibleStartLineNumber = ctx.visibleRange.startLineNumber;\n        const visibleEndLineNumber = ctx.visibleRange.endLineNumber;\n        for (let i = 0, lenI = decorations.length; i < lenI; i++) {\n            const d = decorations[i];\n            if (!d.options.isWholeLine) {\n                continue;\n            }\n            const decorationOutput = ('<div class=\"cdr '\n                + d.options.className\n                + '\" style=\"left:0;width:100%;\"></div>');\n            const startLineNumber = Math.max(d.range.startLineNumber, visibleStartLineNumber);\n            const endLineNumber = Math.min(d.range.endLineNumber, visibleEndLineNumber);\n            for (let j = startLineNumber; j <= endLineNumber; j++) {\n                const lineIndex = j - visibleStartLineNumber;\n                output[lineIndex] += decorationOutput;\n            }\n        }\n    }\n    _renderNormalDecorations(ctx, decorations, output) {\n        var _a;\n        const visibleStartLineNumber = ctx.visibleRange.startLineNumber;\n        let prevClassName = null;\n        let prevShowIfCollapsed = false;\n        let prevRange = null;\n        let prevShouldFillLineOnLineBreak = false;\n        for (let i = 0, lenI = decorations.length; i < lenI; i++) {\n            const d = decorations[i];\n            if (d.options.isWholeLine) {\n                continue;\n            }\n            const className = d.options.className;\n            const showIfCollapsed = Boolean(d.options.showIfCollapsed);\n            let range = d.range;\n            if (showIfCollapsed && range.endColumn === 1 && range.endLineNumber !== range.startLineNumber) {\n                range = new Range(range.startLineNumber, range.startColumn, range.endLineNumber - 1, this._context.viewModel.getLineMaxColumn(range.endLineNumber - 1));\n            }\n            if (prevClassName === className && prevShowIfCollapsed === showIfCollapsed && Range.areIntersectingOrTouching(prevRange, range)) {\n                // merge into previous decoration\n                prevRange = Range.plusRange(prevRange, range);\n                continue;\n            }\n            // flush previous decoration\n            if (prevClassName !== null) {\n                this._renderNormalDecoration(ctx, prevRange, prevClassName, prevShouldFillLineOnLineBreak, prevShowIfCollapsed, visibleStartLineNumber, output);\n            }\n            prevClassName = className;\n            prevShowIfCollapsed = showIfCollapsed;\n            prevRange = range;\n            prevShouldFillLineOnLineBreak = (_a = d.options.shouldFillLineOnLineBreak) !== null && _a !== void 0 ? _a : false;\n        }\n        if (prevClassName !== null) {\n            this._renderNormalDecoration(ctx, prevRange, prevClassName, prevShouldFillLineOnLineBreak, prevShowIfCollapsed, visibleStartLineNumber, output);\n        }\n    }\n    _renderNormalDecoration(ctx, range, className, shouldFillLineOnLineBreak, showIfCollapsed, visibleStartLineNumber, output) {\n        const linesVisibleRanges = ctx.linesVisibleRangesForRange(range, /*TODO@Alex*/ className === 'findMatch');\n        if (!linesVisibleRanges) {\n            return;\n        }\n        for (let j = 0, lenJ = linesVisibleRanges.length; j < lenJ; j++) {\n            const lineVisibleRanges = linesVisibleRanges[j];\n            if (lineVisibleRanges.outsideRenderedLine) {\n                continue;\n            }\n            const lineIndex = lineVisibleRanges.lineNumber - visibleStartLineNumber;\n            if (showIfCollapsed && lineVisibleRanges.ranges.length === 1) {\n                const singleVisibleRange = lineVisibleRanges.ranges[0];\n                if (singleVisibleRange.width < this._typicalHalfwidthCharacterWidth) {\n                    // collapsed/very small range case => make the decoration visible by expanding its width\n                    // expand its size on both sides (both to the left and to the right, keeping it centered)\n                    const center = Math.round(singleVisibleRange.left + singleVisibleRange.width / 2);\n                    const left = Math.max(0, Math.round(center - this._typicalHalfwidthCharacterWidth / 2));\n                    lineVisibleRanges.ranges[0] = new HorizontalRange(left, this._typicalHalfwidthCharacterWidth);\n                }\n            }\n            for (let k = 0, lenK = lineVisibleRanges.ranges.length; k < lenK; k++) {\n                const expandToLeft = shouldFillLineOnLineBreak && lineVisibleRanges.continuesOnNextLine && lenK === 1;\n                const visibleRange = lineVisibleRanges.ranges[k];\n                const decorationOutput = ('<div class=\"cdr '\n                    + className\n                    + '\" style=\"left:'\n                    + String(visibleRange.left)\n                    + 'px;width:'\n                    + (expandToLeft ?\n                        '100%;' :\n                        (String(visibleRange.width) + 'px;'))\n                    + '\"></div>');\n                output[lineIndex] += decorationOutput;\n            }\n        }\n    }\n    render(startLineNumber, lineNumber) {\n        if (!this._renderResult) {\n            return '';\n        }\n        const lineIndex = lineNumber - startLineNumber;\n        if (lineIndex < 0 || lineIndex >= this._renderResult.length) {\n            return '';\n        }\n        return this._renderResult[lineIndex];\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/editorScrollbar/editorScrollbar.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../../../base/browser/dom.js';\nimport { createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport { SmoothScrollableElement } from '../../../../base/browser/ui/scrollbar/scrollableElement.js';\nimport { PartFingerprints, ViewPart } from '../../view/viewPart.js';\nimport { getThemeTypeSelector } from '../../../../platform/theme/common/themeService.js';\nexport class EditorScrollbar extends ViewPart {\n    constructor(context, linesContent, viewDomNode, overflowGuardDomNode) {\n        super(context);\n        const options = this._context.configuration.options;\n        const scrollbar = options.get(103 /* EditorOption.scrollbar */);\n        const mouseWheelScrollSensitivity = options.get(75 /* EditorOption.mouseWheelScrollSensitivity */);\n        const fastScrollSensitivity = options.get(40 /* EditorOption.fastScrollSensitivity */);\n        const scrollPredominantAxis = options.get(106 /* EditorOption.scrollPredominantAxis */);\n        const scrollbarOptions = {\n            listenOnDomNode: viewDomNode.domNode,\n            className: 'editor-scrollable' + ' ' + getThemeTypeSelector(context.theme.type),\n            useShadows: false,\n            lazyRender: true,\n            vertical: scrollbar.vertical,\n            horizontal: scrollbar.horizontal,\n            verticalHasArrows: scrollbar.verticalHasArrows,\n            horizontalHasArrows: scrollbar.horizontalHasArrows,\n            verticalScrollbarSize: scrollbar.verticalScrollbarSize,\n            verticalSliderSize: scrollbar.verticalSliderSize,\n            horizontalScrollbarSize: scrollbar.horizontalScrollbarSize,\n            horizontalSliderSize: scrollbar.horizontalSliderSize,\n            handleMouseWheel: scrollbar.handleMouseWheel,\n            alwaysConsumeMouseWheel: scrollbar.alwaysConsumeMouseWheel,\n            arrowSize: scrollbar.arrowSize,\n            mouseWheelScrollSensitivity: mouseWheelScrollSensitivity,\n            fastScrollSensitivity: fastScrollSensitivity,\n            scrollPredominantAxis: scrollPredominantAxis,\n            scrollByPage: scrollbar.scrollByPage,\n        };\n        this.scrollbar = this._register(new SmoothScrollableElement(linesContent.domNode, scrollbarOptions, this._context.viewLayout.getScrollable()));\n        PartFingerprints.write(this.scrollbar.getDomNode(), 6 /* PartFingerprint.ScrollableElement */);\n        this.scrollbarDomNode = createFastDomNode(this.scrollbar.getDomNode());\n        this.scrollbarDomNode.setPosition('absolute');\n        this._setLayout();\n        // When having a zone widget that calls .focus() on one of its dom elements,\n        // the browser will try desperately to reveal that dom node, unexpectedly\n        // changing the .scrollTop of this.linesContent\n        const onBrowserDesperateReveal = (domNode, lookAtScrollTop, lookAtScrollLeft) => {\n            const newScrollPosition = {};\n            if (lookAtScrollTop) {\n                const deltaTop = domNode.scrollTop;\n                if (deltaTop) {\n                    newScrollPosition.scrollTop = this._context.viewLayout.getCurrentScrollTop() + deltaTop;\n                    domNode.scrollTop = 0;\n                }\n            }\n            if (lookAtScrollLeft) {\n                const deltaLeft = domNode.scrollLeft;\n                if (deltaLeft) {\n                    newScrollPosition.scrollLeft = this._context.viewLayout.getCurrentScrollLeft() + deltaLeft;\n                    domNode.scrollLeft = 0;\n                }\n            }\n            this._context.viewModel.viewLayout.setScrollPosition(newScrollPosition, 1 /* ScrollType.Immediate */);\n        };\n        // I've seen this happen both on the view dom node & on the lines content dom node.\n        this._register(dom.addDisposableListener(viewDomNode.domNode, 'scroll', (e) => onBrowserDesperateReveal(viewDomNode.domNode, true, true)));\n        this._register(dom.addDisposableListener(linesContent.domNode, 'scroll', (e) => onBrowserDesperateReveal(linesContent.domNode, true, false)));\n        this._register(dom.addDisposableListener(overflowGuardDomNode.domNode, 'scroll', (e) => onBrowserDesperateReveal(overflowGuardDomNode.domNode, true, false)));\n        this._register(dom.addDisposableListener(this.scrollbarDomNode.domNode, 'scroll', (e) => onBrowserDesperateReveal(this.scrollbarDomNode.domNode, true, false)));\n    }\n    dispose() {\n        super.dispose();\n    }\n    _setLayout() {\n        const options = this._context.configuration.options;\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        this.scrollbarDomNode.setLeft(layoutInfo.contentLeft);\n        const minimap = options.get(73 /* EditorOption.minimap */);\n        const side = minimap.side;\n        if (side === 'right') {\n            this.scrollbarDomNode.setWidth(layoutInfo.contentWidth + layoutInfo.minimap.minimapWidth);\n        }\n        else {\n            this.scrollbarDomNode.setWidth(layoutInfo.contentWidth);\n        }\n        this.scrollbarDomNode.setHeight(layoutInfo.height);\n    }\n    getOverviewRulerLayoutInfo() {\n        return this.scrollbar.getOverviewRulerLayoutInfo();\n    }\n    getDomNode() {\n        return this.scrollbarDomNode;\n    }\n    delegateVerticalScrollbarPointerDown(browserEvent) {\n        this.scrollbar.delegateVerticalScrollbarPointerDown(browserEvent);\n    }\n    delegateScrollFromMouseWheelEvent(browserEvent) {\n        this.scrollbar.delegateScrollFromMouseWheelEvent(browserEvent);\n    }\n    // --- begin event handlers\n    onConfigurationChanged(e) {\n        if (e.hasChanged(103 /* EditorOption.scrollbar */)\n            || e.hasChanged(75 /* EditorOption.mouseWheelScrollSensitivity */)\n            || e.hasChanged(40 /* EditorOption.fastScrollSensitivity */)) {\n            const options = this._context.configuration.options;\n            const scrollbar = options.get(103 /* EditorOption.scrollbar */);\n            const mouseWheelScrollSensitivity = options.get(75 /* EditorOption.mouseWheelScrollSensitivity */);\n            const fastScrollSensitivity = options.get(40 /* EditorOption.fastScrollSensitivity */);\n            const scrollPredominantAxis = options.get(106 /* EditorOption.scrollPredominantAxis */);\n            const newOpts = {\n                vertical: scrollbar.vertical,\n                horizontal: scrollbar.horizontal,\n                verticalScrollbarSize: scrollbar.verticalScrollbarSize,\n                horizontalScrollbarSize: scrollbar.horizontalScrollbarSize,\n                scrollByPage: scrollbar.scrollByPage,\n                handleMouseWheel: scrollbar.handleMouseWheel,\n                mouseWheelScrollSensitivity: mouseWheelScrollSensitivity,\n                fastScrollSensitivity: fastScrollSensitivity,\n                scrollPredominantAxis: scrollPredominantAxis\n            };\n            this.scrollbar.updateOptions(newOpts);\n        }\n        if (e.hasChanged(145 /* EditorOption.layoutInfo */)) {\n            this._setLayout();\n        }\n        return true;\n    }\n    onScrollChanged(e) {\n        return true;\n    }\n    onThemeChanged(e) {\n        this.scrollbar.updateClassName('editor-scrollable' + ' ' + getThemeTypeSelector(this._context.theme.type));\n        return true;\n    }\n    // --- end event handlers\n    prepareRender(ctx) {\n        // Nothing to do\n    }\n    render(ctx) {\n        this.scrollbar.renderNow();\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/glyphMargin/glyphMargin.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .glyph-margin {\n\tposition: absolute;\n\ttop: 0;\n}\n\n/*\n\tKeeping name short for faster parsing.\n\tcgmr = core glyph margin rendering (div)\n*/\n.monaco-editor .glyph-margin-widgets .cgmr {\n\tposition: absolute;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n/*\n\tEnsure spinning icons are pixel-perfectly centered and avoid wobble.\n\tThis is only applied to icons that spin to avoid unnecessary\n\tGPU layers and blurry subpixel AA.\n*/\n.monaco-editor .glyph-margin-widgets .cgmr.codicon-modifier-spin::before  {\n\tposition: absolute;\n\ttop: 50%;\n\tleft: 50%;\n\ttransform: translate(-50%, -50%);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/glyphMargin/glyphMargin.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport { ArrayQueue } from '../../../../base/common/arrays.js';\nimport './glyphMargin.css';\nimport { DynamicViewOverlay } from '../../view/dynamicViewOverlay.js';\nimport { ViewPart } from '../../view/viewPart.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { GlyphMarginLane } from '../../../common/model.js';\n/**\n * Represents a decoration that should be shown along the lines from `startLineNumber` to `endLineNumber`.\n * This can end up producing multiple `LineDecorationToRender`.\n */\nexport class DecorationToRender {\n    constructor(startLineNumber, endLineNumber, className, tooltip, zIndex) {\n        this.startLineNumber = startLineNumber;\n        this.endLineNumber = endLineNumber;\n        this.className = className;\n        this.tooltip = tooltip;\n        this._decorationToRenderBrand = undefined;\n        this.zIndex = zIndex !== null && zIndex !== void 0 ? zIndex : 0;\n    }\n}\n/**\n * A decoration that should be shown along a line.\n */\nexport class LineDecorationToRender {\n    constructor(className, zIndex, tooltip) {\n        this.className = className;\n        this.zIndex = zIndex;\n        this.tooltip = tooltip;\n    }\n}\n/**\n * Decorations to render on a visible line.\n */\nexport class VisibleLineDecorationsToRender {\n    constructor() {\n        this.decorations = [];\n    }\n    add(decoration) {\n        this.decorations.push(decoration);\n    }\n    getDecorations() {\n        return this.decorations;\n    }\n}\nexport class DedupOverlay extends DynamicViewOverlay {\n    /**\n     * Returns an array with an element for each visible line number.\n     */\n    _render(visibleStartLineNumber, visibleEndLineNumber, decorations) {\n        const output = [];\n        for (let lineNumber = visibleStartLineNumber; lineNumber <= visibleEndLineNumber; lineNumber++) {\n            const lineIndex = lineNumber - visibleStartLineNumber;\n            output[lineIndex] = new VisibleLineDecorationsToRender();\n        }\n        if (decorations.length === 0) {\n            return output;\n        }\n        // Sort decorations by className, then by startLineNumber and then by endLineNumber\n        decorations.sort((a, b) => {\n            if (a.className === b.className) {\n                if (a.startLineNumber === b.startLineNumber) {\n                    return a.endLineNumber - b.endLineNumber;\n                }\n                return a.startLineNumber - b.startLineNumber;\n            }\n            return (a.className < b.className ? -1 : 1);\n        });\n        let prevClassName = null;\n        let prevEndLineIndex = 0;\n        for (let i = 0, len = decorations.length; i < len; i++) {\n            const d = decorations[i];\n            const className = d.className;\n            const zIndex = d.zIndex;\n            let startLineIndex = Math.max(d.startLineNumber, visibleStartLineNumber) - visibleStartLineNumber;\n            const endLineIndex = Math.min(d.endLineNumber, visibleEndLineNumber) - visibleStartLineNumber;\n            if (prevClassName === className) {\n                // Here we avoid rendering the same className multiple times on the same line\n                startLineIndex = Math.max(prevEndLineIndex + 1, startLineIndex);\n                prevEndLineIndex = Math.max(prevEndLineIndex, endLineIndex);\n            }\n            else {\n                prevClassName = className;\n                prevEndLineIndex = endLineIndex;\n            }\n            for (let i = startLineIndex; i <= prevEndLineIndex; i++) {\n                output[i].add(new LineDecorationToRender(className, zIndex, d.tooltip));\n            }\n        }\n        return output;\n    }\n}\nexport class GlyphMarginWidgets extends ViewPart {\n    constructor(context) {\n        super(context);\n        this._widgets = {};\n        this._context = context;\n        const options = this._context.configuration.options;\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        this.domNode = createFastDomNode(document.createElement('div'));\n        this.domNode.setClassName('glyph-margin-widgets');\n        this.domNode.setPosition('absolute');\n        this.domNode.setTop(0);\n        this._lineHeight = options.get(67 /* EditorOption.lineHeight */);\n        this._glyphMargin = options.get(57 /* EditorOption.glyphMargin */);\n        this._glyphMarginLeft = layoutInfo.glyphMarginLeft;\n        this._glyphMarginWidth = layoutInfo.glyphMarginWidth;\n        this._glyphMarginDecorationLaneCount = layoutInfo.glyphMarginDecorationLaneCount;\n        this._managedDomNodes = [];\n        this._decorationGlyphsToRender = [];\n    }\n    dispose() {\n        this._managedDomNodes = [];\n        this._decorationGlyphsToRender = [];\n        this._widgets = {};\n        super.dispose();\n    }\n    getWidgets() {\n        return Object.values(this._widgets);\n    }\n    // --- begin event handlers\n    onConfigurationChanged(e) {\n        const options = this._context.configuration.options;\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        this._lineHeight = options.get(67 /* EditorOption.lineHeight */);\n        this._glyphMargin = options.get(57 /* EditorOption.glyphMargin */);\n        this._glyphMarginLeft = layoutInfo.glyphMarginLeft;\n        this._glyphMarginWidth = layoutInfo.glyphMarginWidth;\n        this._glyphMarginDecorationLaneCount = layoutInfo.glyphMarginDecorationLaneCount;\n        return true;\n    }\n    onDecorationsChanged(e) {\n        return true;\n    }\n    onFlushed(e) {\n        return true;\n    }\n    onLinesChanged(e) {\n        return true;\n    }\n    onLinesDeleted(e) {\n        return true;\n    }\n    onLinesInserted(e) {\n        return true;\n    }\n    onScrollChanged(e) {\n        return e.scrollTopChanged;\n    }\n    onZonesChanged(e) {\n        return true;\n    }\n    // --- end event handlers\n    // --- begin widget management\n    addWidget(widget) {\n        const domNode = createFastDomNode(widget.getDomNode());\n        this._widgets[widget.getId()] = {\n            widget: widget,\n            preference: widget.getPosition(),\n            domNode: domNode,\n            renderInfo: null\n        };\n        domNode.setPosition('absolute');\n        domNode.setDisplay('none');\n        domNode.setAttribute('widgetId', widget.getId());\n        this.domNode.appendChild(domNode);\n        this.setShouldRender();\n    }\n    setWidgetPosition(widget, preference) {\n        const myWidget = this._widgets[widget.getId()];\n        if (myWidget.preference.lane === preference.lane\n            && myWidget.preference.zIndex === preference.zIndex\n            && Range.equalsRange(myWidget.preference.range, preference.range)) {\n            return false;\n        }\n        myWidget.preference = preference;\n        this.setShouldRender();\n        return true;\n    }\n    removeWidget(widget) {\n        var _a;\n        const widgetId = widget.getId();\n        if (this._widgets[widgetId]) {\n            const widgetData = this._widgets[widgetId];\n            const domNode = widgetData.domNode.domNode;\n            delete this._widgets[widgetId];\n            (_a = domNode.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(domNode);\n            this.setShouldRender();\n        }\n    }\n    // --- end widget management\n    _collectDecorationBasedGlyphRenderRequest(ctx, requests) {\n        var _a, _b, _c;\n        const visibleStartLineNumber = ctx.visibleRange.startLineNumber;\n        const visibleEndLineNumber = ctx.visibleRange.endLineNumber;\n        const decorations = ctx.getDecorationsInViewport();\n        for (const d of decorations) {\n            const glyphMarginClassName = d.options.glyphMarginClassName;\n            if (!glyphMarginClassName) {\n                continue;\n            }\n            const startLineNumber = Math.max(d.range.startLineNumber, visibleStartLineNumber);\n            const endLineNumber = Math.min(d.range.endLineNumber, visibleEndLineNumber);\n            const lane = (_b = (_a = d.options.glyphMargin) === null || _a === void 0 ? void 0 : _a.position) !== null && _b !== void 0 ? _b : GlyphMarginLane.Center;\n            const zIndex = (_c = d.options.zIndex) !== null && _c !== void 0 ? _c : 0;\n            for (let lineNumber = startLineNumber; lineNumber <= endLineNumber; lineNumber++) {\n                const modelPosition = this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new Position(lineNumber, 0));\n                const laneIndex = this._context.viewModel.glyphLanes.getLanesAtLine(modelPosition.lineNumber).indexOf(lane);\n                requests.push(new DecorationBasedGlyphRenderRequest(lineNumber, laneIndex, zIndex, glyphMarginClassName));\n            }\n        }\n    }\n    _collectWidgetBasedGlyphRenderRequest(ctx, requests) {\n        const visibleStartLineNumber = ctx.visibleRange.startLineNumber;\n        const visibleEndLineNumber = ctx.visibleRange.endLineNumber;\n        for (const widget of Object.values(this._widgets)) {\n            const range = widget.preference.range;\n            const { startLineNumber, endLineNumber } = this._context.viewModel.coordinatesConverter.convertModelRangeToViewRange(Range.lift(range));\n            if (!startLineNumber || !endLineNumber || endLineNumber < visibleStartLineNumber || startLineNumber > visibleEndLineNumber) {\n                // The widget is not in the viewport\n                continue;\n            }\n            // The widget is in the viewport, find a good line for it\n            const widgetLineNumber = Math.max(startLineNumber, visibleStartLineNumber);\n            const modelPosition = this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new Position(widgetLineNumber, 0));\n            const laneIndex = this._context.viewModel.glyphLanes.getLanesAtLine(modelPosition.lineNumber).indexOf(widget.preference.lane);\n            requests.push(new WidgetBasedGlyphRenderRequest(widgetLineNumber, laneIndex, widget.preference.zIndex, widget));\n        }\n    }\n    _collectSortedGlyphRenderRequests(ctx) {\n        const requests = [];\n        this._collectDecorationBasedGlyphRenderRequest(ctx, requests);\n        this._collectWidgetBasedGlyphRenderRequest(ctx, requests);\n        // sort requests by lineNumber ASC, lane  ASC, zIndex DESC, type DESC (widgets first), className ASC\n        // don't change this sort unless you understand `prepareRender` below.\n        requests.sort((a, b) => {\n            if (a.lineNumber === b.lineNumber) {\n                if (a.laneIndex === b.laneIndex) {\n                    if (a.zIndex === b.zIndex) {\n                        if (b.type === a.type) {\n                            if (a.type === 0 /* GlyphRenderRequestType.Decoration */ && b.type === 0 /* GlyphRenderRequestType.Decoration */) {\n                                return (a.className < b.className ? -1 : 1);\n                            }\n                            return 0;\n                        }\n                        return b.type - a.type;\n                    }\n                    return b.zIndex - a.zIndex;\n                }\n                return a.laneIndex - b.laneIndex;\n            }\n            return a.lineNumber - b.lineNumber;\n        });\n        return requests;\n    }\n    /**\n     * Will store render information in each widget's renderInfo and in `_decorationGlyphsToRender`.\n     */\n    prepareRender(ctx) {\n        if (!this._glyphMargin) {\n            this._decorationGlyphsToRender = [];\n            return;\n        }\n        for (const widget of Object.values(this._widgets)) {\n            widget.renderInfo = null;\n        }\n        const requests = new ArrayQueue(this._collectSortedGlyphRenderRequests(ctx));\n        const decorationGlyphsToRender = [];\n        while (requests.length > 0) {\n            const first = requests.peek();\n            if (!first) {\n                // not possible\n                break;\n            }\n            // Requests are sorted by lineNumber and lane, so we read all requests for this particular location\n            const requestsAtLocation = requests.takeWhile((el) => el.lineNumber === first.lineNumber && el.laneIndex === first.laneIndex);\n            if (!requestsAtLocation || requestsAtLocation.length === 0) {\n                // not possible\n                break;\n            }\n            const winner = requestsAtLocation[0];\n            if (winner.type === 0 /* GlyphRenderRequestType.Decoration */) {\n                // combine all decorations with the same z-index\n                const classNames = [];\n                // requests are sorted by zIndex, type, and className so we can dedup className by looking at the previous one\n                for (const request of requestsAtLocation) {\n                    if (request.zIndex !== winner.zIndex || request.type !== winner.type) {\n                        break;\n                    }\n                    if (classNames.length === 0 || classNames[classNames.length - 1] !== request.className) {\n                        classNames.push(request.className);\n                    }\n                }\n                decorationGlyphsToRender.push(winner.accept(classNames.join(' '))); // TODO@joyceerhl Implement overflow for remaining decorations\n            }\n            else {\n                // widgets cannot be combined\n                winner.widget.renderInfo = {\n                    lineNumber: winner.lineNumber,\n                    laneIndex: winner.laneIndex,\n                };\n            }\n        }\n        this._decorationGlyphsToRender = decorationGlyphsToRender;\n    }\n    render(ctx) {\n        if (!this._glyphMargin) {\n            for (const widget of Object.values(this._widgets)) {\n                widget.domNode.setDisplay('none');\n            }\n            while (this._managedDomNodes.length > 0) {\n                const domNode = this._managedDomNodes.pop();\n                domNode === null || domNode === void 0 ? void 0 : domNode.domNode.remove();\n            }\n            return;\n        }\n        const width = (Math.round(this._glyphMarginWidth / this._glyphMarginDecorationLaneCount));\n        // Render widgets\n        for (const widget of Object.values(this._widgets)) {\n            if (!widget.renderInfo) {\n                // this widget is not visible\n                widget.domNode.setDisplay('none');\n            }\n            else {\n                const top = ctx.viewportData.relativeVerticalOffset[widget.renderInfo.lineNumber - ctx.viewportData.startLineNumber];\n                const left = this._glyphMarginLeft + widget.renderInfo.laneIndex * this._lineHeight;\n                widget.domNode.setDisplay('block');\n                widget.domNode.setTop(top);\n                widget.domNode.setLeft(left);\n                widget.domNode.setWidth(width);\n                widget.domNode.setHeight(this._lineHeight);\n            }\n        }\n        // Render decorations, reusing previous dom nodes as possible\n        for (let i = 0; i < this._decorationGlyphsToRender.length; i++) {\n            const dec = this._decorationGlyphsToRender[i];\n            const top = ctx.viewportData.relativeVerticalOffset[dec.lineNumber - ctx.viewportData.startLineNumber];\n            const left = this._glyphMarginLeft + dec.laneIndex * this._lineHeight;\n            let domNode;\n            if (i < this._managedDomNodes.length) {\n                domNode = this._managedDomNodes[i];\n            }\n            else {\n                domNode = createFastDomNode(document.createElement('div'));\n                this._managedDomNodes.push(domNode);\n                this.domNode.appendChild(domNode);\n            }\n            domNode.setClassName(`cgmr codicon ` + dec.combinedClassName);\n            domNode.setPosition(`absolute`);\n            domNode.setTop(top);\n            domNode.setLeft(left);\n            domNode.setWidth(width);\n            domNode.setHeight(this._lineHeight);\n        }\n        // remove extra dom nodes\n        while (this._managedDomNodes.length > this._decorationGlyphsToRender.length) {\n            const domNode = this._managedDomNodes.pop();\n            domNode === null || domNode === void 0 ? void 0 : domNode.domNode.remove();\n        }\n    }\n}\n/**\n * A request to render a decoration in the glyph margin at a certain location.\n */\nclass DecorationBasedGlyphRenderRequest {\n    constructor(lineNumber, laneIndex, zIndex, className) {\n        this.lineNumber = lineNumber;\n        this.laneIndex = laneIndex;\n        this.zIndex = zIndex;\n        this.className = className;\n        this.type = 0 /* GlyphRenderRequestType.Decoration */;\n    }\n    accept(combinedClassName) {\n        return new DecorationBasedGlyph(this.lineNumber, this.laneIndex, combinedClassName);\n    }\n}\n/**\n * A request to render a widget in the glyph margin at a certain location.\n */\nclass WidgetBasedGlyphRenderRequest {\n    constructor(lineNumber, laneIndex, zIndex, widget) {\n        this.lineNumber = lineNumber;\n        this.laneIndex = laneIndex;\n        this.zIndex = zIndex;\n        this.widget = widget;\n        this.type = 1 /* GlyphRenderRequestType.Widget */;\n    }\n}\nclass DecorationBasedGlyph {\n    constructor(lineNumber, laneIndex, combinedClassName) {\n        this.lineNumber = lineNumber;\n        this.laneIndex = laneIndex;\n        this.combinedClassName = combinedClassName;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/indentGuides/indentGuides.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .lines-content .core-guide {\n\tposition: absolute;\n\tbox-sizing: border-box;\n\theight: 100%;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/indentGuides/indentGuides.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './indentGuides.css';\nimport { DynamicViewOverlay } from '../../view/dynamicViewOverlay.js';\nimport { editorBracketHighlightingForeground1, editorBracketHighlightingForeground2, editorBracketHighlightingForeground3, editorBracketHighlightingForeground4, editorBracketHighlightingForeground5, editorBracketHighlightingForeground6, editorBracketPairGuideActiveBackground1, editorBracketPairGuideActiveBackground2, editorBracketPairGuideActiveBackground3, editorBracketPairGuideActiveBackground4, editorBracketPairGuideActiveBackground5, editorBracketPairGuideActiveBackground6, editorBracketPairGuideBackground1, editorBracketPairGuideBackground2, editorBracketPairGuideBackground3, editorBracketPairGuideBackground4, editorBracketPairGuideBackground5, editorBracketPairGuideBackground6, editorIndentGuide1, editorIndentGuide2, editorIndentGuide3, editorIndentGuide4, editorIndentGuide5, editorIndentGuide6, editorActiveIndentGuide1, editorActiveIndentGuide2, editorActiveIndentGuide3, editorActiveIndentGuide4, editorActiveIndentGuide5, editorActiveIndentGuide6 } from '../../../common/core/editorColorRegistry.js';\nimport { registerThemingParticipant } from '../../../../platform/theme/common/themeService.js';\nimport { Position } from '../../../common/core/position.js';\nimport { ArrayQueue } from '../../../../base/common/arrays.js';\nimport { isDefined } from '../../../../base/common/types.js';\nimport { BracketPairGuidesClassNames } from '../../../common/model/guidesTextModelPart.js';\nimport { IndentGuide, HorizontalGuidesState } from '../../../common/textModelGuides.js';\nexport class IndentGuidesOverlay extends DynamicViewOverlay {\n    constructor(context) {\n        super();\n        this._context = context;\n        this._primaryPosition = null;\n        const options = this._context.configuration.options;\n        const wrappingInfo = options.get(146 /* EditorOption.wrappingInfo */);\n        const fontInfo = options.get(50 /* EditorOption.fontInfo */);\n        this._spaceWidth = fontInfo.spaceWidth;\n        this._maxIndentLeft = wrappingInfo.wrappingColumn === -1 ? -1 : (wrappingInfo.wrappingColumn * fontInfo.typicalHalfwidthCharacterWidth);\n        this._bracketPairGuideOptions = options.get(16 /* EditorOption.guides */);\n        this._renderResult = null;\n        this._context.addEventHandler(this);\n    }\n    dispose() {\n        this._context.removeEventHandler(this);\n        this._renderResult = null;\n        super.dispose();\n    }\n    // --- begin event handlers\n    onConfigurationChanged(e) {\n        const options = this._context.configuration.options;\n        const wrappingInfo = options.get(146 /* EditorOption.wrappingInfo */);\n        const fontInfo = options.get(50 /* EditorOption.fontInfo */);\n        this._spaceWidth = fontInfo.spaceWidth;\n        this._maxIndentLeft = wrappingInfo.wrappingColumn === -1 ? -1 : (wrappingInfo.wrappingColumn * fontInfo.typicalHalfwidthCharacterWidth);\n        this._bracketPairGuideOptions = options.get(16 /* EditorOption.guides */);\n        return true;\n    }\n    onCursorStateChanged(e) {\n        var _a;\n        const selection = e.selections[0];\n        const newPosition = selection.getPosition();\n        if (!((_a = this._primaryPosition) === null || _a === void 0 ? void 0 : _a.equals(newPosition))) {\n            this._primaryPosition = newPosition;\n            return true;\n        }\n        return false;\n    }\n    onDecorationsChanged(e) {\n        // true for inline decorations\n        return true;\n    }\n    onFlushed(e) {\n        return true;\n    }\n    onLinesChanged(e) {\n        return true;\n    }\n    onLinesDeleted(e) {\n        return true;\n    }\n    onLinesInserted(e) {\n        return true;\n    }\n    onScrollChanged(e) {\n        return e.scrollTopChanged; // || e.scrollWidthChanged;\n    }\n    onZonesChanged(e) {\n        return true;\n    }\n    onLanguageConfigurationChanged(e) {\n        return true;\n    }\n    // --- end event handlers\n    prepareRender(ctx) {\n        var _a, _b, _c, _d;\n        if (!this._bracketPairGuideOptions.indentation && this._bracketPairGuideOptions.bracketPairs === false) {\n            this._renderResult = null;\n            return;\n        }\n        const visibleStartLineNumber = ctx.visibleRange.startLineNumber;\n        const visibleEndLineNumber = ctx.visibleRange.endLineNumber;\n        const scrollWidth = ctx.scrollWidth;\n        const activeCursorPosition = this._primaryPosition;\n        const indents = this.getGuidesByLine(visibleStartLineNumber, Math.min(visibleEndLineNumber + 1, this._context.viewModel.getLineCount()), activeCursorPosition);\n        const output = [];\n        for (let lineNumber = visibleStartLineNumber; lineNumber <= visibleEndLineNumber; lineNumber++) {\n            const lineIndex = lineNumber - visibleStartLineNumber;\n            const indent = indents[lineIndex];\n            let result = '';\n            const leftOffset = (_b = (_a = ctx.visibleRangeForPosition(new Position(lineNumber, 1))) === null || _a === void 0 ? void 0 : _a.left) !== null && _b !== void 0 ? _b : 0;\n            for (const guide of indent) {\n                const left = guide.column === -1\n                    ? leftOffset + (guide.visibleColumn - 1) * this._spaceWidth\n                    : ctx.visibleRangeForPosition(new Position(lineNumber, guide.column)).left;\n                if (left > scrollWidth || (this._maxIndentLeft > 0 && left > this._maxIndentLeft)) {\n                    break;\n                }\n                const className = guide.horizontalLine ? (guide.horizontalLine.top ? 'horizontal-top' : 'horizontal-bottom') : 'vertical';\n                const width = guide.horizontalLine\n                    ? ((_d = (_c = ctx.visibleRangeForPosition(new Position(lineNumber, guide.horizontalLine.endColumn))) === null || _c === void 0 ? void 0 : _c.left) !== null && _d !== void 0 ? _d : (left + this._spaceWidth)) - left\n                    : this._spaceWidth;\n                result += `<div class=\"core-guide ${guide.className} ${className}\" style=\"left:${left}px;width:${width}px\"></div>`;\n            }\n            output[lineIndex] = result;\n        }\n        this._renderResult = output;\n    }\n    getGuidesByLine(visibleStartLineNumber, visibleEndLineNumber, activeCursorPosition) {\n        const bracketGuides = this._bracketPairGuideOptions.bracketPairs !== false\n            ? this._context.viewModel.getBracketGuidesInRangeByLine(visibleStartLineNumber, visibleEndLineNumber, activeCursorPosition, {\n                highlightActive: this._bracketPairGuideOptions.highlightActiveBracketPair,\n                horizontalGuides: this._bracketPairGuideOptions.bracketPairsHorizontal === true\n                    ? HorizontalGuidesState.Enabled\n                    : this._bracketPairGuideOptions.bracketPairsHorizontal === 'active'\n                        ? HorizontalGuidesState.EnabledForActive\n                        : HorizontalGuidesState.Disabled,\n                includeInactive: this._bracketPairGuideOptions.bracketPairs === true,\n            })\n            : null;\n        const indentGuides = this._bracketPairGuideOptions.indentation\n            ? this._context.viewModel.getLinesIndentGuides(visibleStartLineNumber, visibleEndLineNumber)\n            : null;\n        let activeIndentStartLineNumber = 0;\n        let activeIndentEndLineNumber = 0;\n        let activeIndentLevel = 0;\n        if (this._bracketPairGuideOptions.highlightActiveIndentation !== false && activeCursorPosition) {\n            const activeIndentInfo = this._context.viewModel.getActiveIndentGuide(activeCursorPosition.lineNumber, visibleStartLineNumber, visibleEndLineNumber);\n            activeIndentStartLineNumber = activeIndentInfo.startLineNumber;\n            activeIndentEndLineNumber = activeIndentInfo.endLineNumber;\n            activeIndentLevel = activeIndentInfo.indent;\n        }\n        const { indentSize } = this._context.viewModel.model.getOptions();\n        const result = [];\n        for (let lineNumber = visibleStartLineNumber; lineNumber <= visibleEndLineNumber; lineNumber++) {\n            const lineGuides = new Array();\n            result.push(lineGuides);\n            const bracketGuidesInLine = bracketGuides ? bracketGuides[lineNumber - visibleStartLineNumber] : [];\n            const bracketGuidesInLineQueue = new ArrayQueue(bracketGuidesInLine);\n            const indentGuidesInLine = indentGuides ? indentGuides[lineNumber - visibleStartLineNumber] : 0;\n            for (let indentLvl = 1; indentLvl <= indentGuidesInLine; indentLvl++) {\n                const indentGuide = (indentLvl - 1) * indentSize + 1;\n                const isActive = \n                // Disable active indent guide if there are bracket guides.\n                (this._bracketPairGuideOptions.highlightActiveIndentation === 'always' || bracketGuidesInLine.length === 0) &&\n                    activeIndentStartLineNumber <= lineNumber &&\n                    lineNumber <= activeIndentEndLineNumber &&\n                    indentLvl === activeIndentLevel;\n                lineGuides.push(...bracketGuidesInLineQueue.takeWhile(g => g.visibleColumn < indentGuide) || []);\n                const peeked = bracketGuidesInLineQueue.peek();\n                if (!peeked || peeked.visibleColumn !== indentGuide || peeked.horizontalLine) {\n                    lineGuides.push(new IndentGuide(indentGuide, -1, `core-guide-indent lvl-${(indentLvl - 1) % 30}` + (isActive ? ' indent-active' : ''), null, -1, -1));\n                }\n            }\n            lineGuides.push(...bracketGuidesInLineQueue.takeWhile(g => true) || []);\n        }\n        return result;\n    }\n    render(startLineNumber, lineNumber) {\n        if (!this._renderResult) {\n            return '';\n        }\n        const lineIndex = lineNumber - startLineNumber;\n        if (lineIndex < 0 || lineIndex >= this._renderResult.length) {\n            return '';\n        }\n        return this._renderResult[lineIndex];\n    }\n}\nfunction transparentToUndefined(color) {\n    if (color && color.isTransparent()) {\n        return undefined;\n    }\n    return color;\n}\nregisterThemingParticipant((theme, collector) => {\n    const colors = [\n        { bracketColor: editorBracketHighlightingForeground1, guideColor: editorBracketPairGuideBackground1, guideColorActive: editorBracketPairGuideActiveBackground1 },\n        { bracketColor: editorBracketHighlightingForeground2, guideColor: editorBracketPairGuideBackground2, guideColorActive: editorBracketPairGuideActiveBackground2 },\n        { bracketColor: editorBracketHighlightingForeground3, guideColor: editorBracketPairGuideBackground3, guideColorActive: editorBracketPairGuideActiveBackground3 },\n        { bracketColor: editorBracketHighlightingForeground4, guideColor: editorBracketPairGuideBackground4, guideColorActive: editorBracketPairGuideActiveBackground4 },\n        { bracketColor: editorBracketHighlightingForeground5, guideColor: editorBracketPairGuideBackground5, guideColorActive: editorBracketPairGuideActiveBackground5 },\n        { bracketColor: editorBracketHighlightingForeground6, guideColor: editorBracketPairGuideBackground6, guideColorActive: editorBracketPairGuideActiveBackground6 }\n    ];\n    const colorProvider = new BracketPairGuidesClassNames();\n    const indentColors = [\n        { indentColor: editorIndentGuide1, indentColorActive: editorActiveIndentGuide1 },\n        { indentColor: editorIndentGuide2, indentColorActive: editorActiveIndentGuide2 },\n        { indentColor: editorIndentGuide3, indentColorActive: editorActiveIndentGuide3 },\n        { indentColor: editorIndentGuide4, indentColorActive: editorActiveIndentGuide4 },\n        { indentColor: editorIndentGuide5, indentColorActive: editorActiveIndentGuide5 },\n        { indentColor: editorIndentGuide6, indentColorActive: editorActiveIndentGuide6 },\n    ];\n    const colorValues = colors\n        .map(c => {\n        var _a, _b;\n        const bracketColor = theme.getColor(c.bracketColor);\n        const guideColor = theme.getColor(c.guideColor);\n        const guideColorActive = theme.getColor(c.guideColorActive);\n        const effectiveGuideColor = transparentToUndefined((_a = transparentToUndefined(guideColor)) !== null && _a !== void 0 ? _a : bracketColor === null || bracketColor === void 0 ? void 0 : bracketColor.transparent(0.3));\n        const effectiveGuideColorActive = transparentToUndefined((_b = transparentToUndefined(guideColorActive)) !== null && _b !== void 0 ? _b : bracketColor);\n        if (!effectiveGuideColor || !effectiveGuideColorActive) {\n            return undefined;\n        }\n        return {\n            guideColor: effectiveGuideColor,\n            guideColorActive: effectiveGuideColorActive,\n        };\n    })\n        .filter(isDefined);\n    const indentColorValues = indentColors\n        .map(c => {\n        const indentColor = theme.getColor(c.indentColor);\n        const indentColorActive = theme.getColor(c.indentColorActive);\n        const effectiveIndentColor = transparentToUndefined(indentColor);\n        const effectiveIndentColorActive = transparentToUndefined(indentColorActive);\n        if (!effectiveIndentColor || !effectiveIndentColorActive) {\n            return undefined;\n        }\n        return {\n            indentColor: effectiveIndentColor,\n            indentColorActive: effectiveIndentColorActive,\n        };\n    })\n        .filter(isDefined);\n    if (colorValues.length > 0) {\n        for (let level = 0; level < 30; level++) {\n            const colors = colorValues[level % colorValues.length];\n            collector.addRule(`.monaco-editor .${colorProvider.getInlineClassNameOfLevel(level).replace(/ /g, '.')} { --guide-color: ${colors.guideColor}; --guide-color-active: ${colors.guideColorActive}; }`);\n        }\n        collector.addRule(`.monaco-editor .vertical { box-shadow: 1px 0 0 0 var(--guide-color) inset; }`);\n        collector.addRule(`.monaco-editor .horizontal-top { border-top: 1px solid var(--guide-color); }`);\n        collector.addRule(`.monaco-editor .horizontal-bottom { border-bottom: 1px solid var(--guide-color); }`);\n        collector.addRule(`.monaco-editor .vertical.${colorProvider.activeClassName} { box-shadow: 1px 0 0 0 var(--guide-color-active) inset; }`);\n        collector.addRule(`.monaco-editor .horizontal-top.${colorProvider.activeClassName} { border-top: 1px solid var(--guide-color-active); }`);\n        collector.addRule(`.monaco-editor .horizontal-bottom.${colorProvider.activeClassName} { border-bottom: 1px solid var(--guide-color-active); }`);\n    }\n    if (indentColorValues.length > 0) {\n        for (let level = 0; level < 30; level++) {\n            const colors = indentColorValues[level % indentColorValues.length];\n            collector.addRule(`.monaco-editor .lines-content .core-guide-indent.lvl-${level} { --indent-color: ${colors.indentColor}; --indent-color-active: ${colors.indentColorActive}; }`);\n        }\n        collector.addRule(`.monaco-editor .lines-content .core-guide-indent { box-shadow: 1px 0 0 0 var(--indent-color) inset; }`);\n        collector.addRule(`.monaco-editor .lines-content .core-guide-indent.indent-active { box-shadow: 1px 0 0 0 var(--indent-color-active) inset; }`);\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/lineNumbers/lineNumbers.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .margin-view-overlays .line-numbers {\n\tbottom: 0;\n\tfont-variant-numeric: tabular-nums;\n\tposition: absolute;\n\ttext-align: right;\n\tdisplay: inline-block;\n\tvertical-align: middle;\n\tbox-sizing: border-box;\n\tcursor: default;\n}\n\n.monaco-editor .relative-current-line-number {\n\ttext-align: left;\n\tdisplay: inline-block;\n\twidth: 100%;\n}\n\n.monaco-editor .margin-view-overlays .line-numbers.lh-odd {\n\tmargin-top: 1px;\n}\n\n.monaco-editor .line-numbers {\n\tcolor: var(--vscode-editorLineNumber-foreground);\n}\n\n.monaco-editor .line-numbers.active-line-number {\n\tcolor: var(--vscode-editorLineNumber-activeForeground);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/lineNumbers/lineNumbers.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './lineNumbers.css';\nimport * as platform from '../../../../base/common/platform.js';\nimport { DynamicViewOverlay } from '../../view/dynamicViewOverlay.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { registerThemingParticipant } from '../../../../platform/theme/common/themeService.js';\nimport { editorDimmedLineNumber, editorLineNumbers } from '../../../common/core/editorColorRegistry.js';\nexport class LineNumbersOverlay extends DynamicViewOverlay {\n    constructor(context) {\n        super();\n        this._context = context;\n        this._readConfig();\n        this._lastCursorModelPosition = new Position(1, 1);\n        this._renderResult = null;\n        this._activeLineNumber = 1;\n        this._context.addEventHandler(this);\n    }\n    _readConfig() {\n        const options = this._context.configuration.options;\n        this._lineHeight = options.get(67 /* EditorOption.lineHeight */);\n        const lineNumbers = options.get(68 /* EditorOption.lineNumbers */);\n        this._renderLineNumbers = lineNumbers.renderType;\n        this._renderCustomLineNumbers = lineNumbers.renderFn;\n        this._renderFinalNewline = options.get(95 /* EditorOption.renderFinalNewline */);\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        this._lineNumbersLeft = layoutInfo.lineNumbersLeft;\n        this._lineNumbersWidth = layoutInfo.lineNumbersWidth;\n    }\n    dispose() {\n        this._context.removeEventHandler(this);\n        this._renderResult = null;\n        super.dispose();\n    }\n    // --- begin event handlers\n    onConfigurationChanged(e) {\n        this._readConfig();\n        return true;\n    }\n    onCursorStateChanged(e) {\n        const primaryViewPosition = e.selections[0].getPosition();\n        this._lastCursorModelPosition = this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(primaryViewPosition);\n        let shouldRender = false;\n        if (this._activeLineNumber !== primaryViewPosition.lineNumber) {\n            this._activeLineNumber = primaryViewPosition.lineNumber;\n            shouldRender = true;\n        }\n        if (this._renderLineNumbers === 2 /* RenderLineNumbersType.Relative */ || this._renderLineNumbers === 3 /* RenderLineNumbersType.Interval */) {\n            shouldRender = true;\n        }\n        return shouldRender;\n    }\n    onFlushed(e) {\n        return true;\n    }\n    onLinesChanged(e) {\n        return true;\n    }\n    onLinesDeleted(e) {\n        return true;\n    }\n    onLinesInserted(e) {\n        return true;\n    }\n    onScrollChanged(e) {\n        return e.scrollTopChanged;\n    }\n    onZonesChanged(e) {\n        return true;\n    }\n    onDecorationsChanged(e) {\n        return e.affectsLineNumber;\n    }\n    // --- end event handlers\n    _getLineRenderLineNumber(viewLineNumber) {\n        const modelPosition = this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new Position(viewLineNumber, 1));\n        if (modelPosition.column !== 1) {\n            return '';\n        }\n        const modelLineNumber = modelPosition.lineNumber;\n        if (this._renderCustomLineNumbers) {\n            return this._renderCustomLineNumbers(modelLineNumber);\n        }\n        if (this._renderLineNumbers === 2 /* RenderLineNumbersType.Relative */) {\n            const diff = Math.abs(this._lastCursorModelPosition.lineNumber - modelLineNumber);\n            if (diff === 0) {\n                return '<span class=\"relative-current-line-number\">' + modelLineNumber + '</span>';\n            }\n            return String(diff);\n        }\n        if (this._renderLineNumbers === 3 /* RenderLineNumbersType.Interval */) {\n            if (this._lastCursorModelPosition.lineNumber === modelLineNumber) {\n                return String(modelLineNumber);\n            }\n            if (modelLineNumber % 10 === 0) {\n                return String(modelLineNumber);\n            }\n            const finalLineNumber = this._context.viewModel.getLineCount();\n            if (modelLineNumber === finalLineNumber) {\n                return String(modelLineNumber);\n            }\n            return '';\n        }\n        return String(modelLineNumber);\n    }\n    prepareRender(ctx) {\n        if (this._renderLineNumbers === 0 /* RenderLineNumbersType.Off */) {\n            this._renderResult = null;\n            return;\n        }\n        const lineHeightClassName = (platform.isLinux ? (this._lineHeight % 2 === 0 ? ' lh-even' : ' lh-odd') : '');\n        const visibleStartLineNumber = ctx.visibleRange.startLineNumber;\n        const visibleEndLineNumber = ctx.visibleRange.endLineNumber;\n        const lineNoDecorations = this._context.viewModel.getDecorationsInViewport(ctx.visibleRange).filter(d => !!d.options.lineNumberClassName);\n        lineNoDecorations.sort((a, b) => Range.compareRangesUsingEnds(a.range, b.range));\n        let decorationStartIndex = 0;\n        const lineCount = this._context.viewModel.getLineCount();\n        const output = [];\n        for (let lineNumber = visibleStartLineNumber; lineNumber <= visibleEndLineNumber; lineNumber++) {\n            const lineIndex = lineNumber - visibleStartLineNumber;\n            let renderLineNumber = this._getLineRenderLineNumber(lineNumber);\n            let extraClassNames = '';\n            // skip decorations whose end positions we've already passed\n            while (decorationStartIndex < lineNoDecorations.length && lineNoDecorations[decorationStartIndex].range.endLineNumber < lineNumber) {\n                decorationStartIndex++;\n            }\n            for (let i = decorationStartIndex; i < lineNoDecorations.length; i++) {\n                const { range, options } = lineNoDecorations[i];\n                if (range.startLineNumber <= lineNumber) {\n                    extraClassNames += ' ' + options.lineNumberClassName;\n                }\n            }\n            if (!renderLineNumber && !extraClassNames) {\n                output[lineIndex] = '';\n                continue;\n            }\n            if (lineNumber === lineCount && this._context.viewModel.getLineLength(lineNumber) === 0) {\n                // this is the last line\n                if (this._renderFinalNewline === 'off') {\n                    renderLineNumber = '';\n                }\n                if (this._renderFinalNewline === 'dimmed') {\n                    extraClassNames += ' dimmed-line-number';\n                }\n            }\n            if (lineNumber === this._activeLineNumber) {\n                extraClassNames += ' active-line-number';\n            }\n            output[lineIndex] = (`<div class=\"${LineNumbersOverlay.CLASS_NAME}${lineHeightClassName}${extraClassNames}\" style=\"left:${this._lineNumbersLeft}px;width:${this._lineNumbersWidth}px;\">${renderLineNumber}</div>`);\n        }\n        this._renderResult = output;\n    }\n    render(startLineNumber, lineNumber) {\n        if (!this._renderResult) {\n            return '';\n        }\n        const lineIndex = lineNumber - startLineNumber;\n        if (lineIndex < 0 || lineIndex >= this._renderResult.length) {\n            return '';\n        }\n        return this._renderResult[lineIndex];\n    }\n}\nLineNumbersOverlay.CLASS_NAME = 'line-numbers';\nregisterThemingParticipant((theme, collector) => {\n    const editorLineNumbersColor = theme.getColor(editorLineNumbers);\n    const editorDimmedLineNumberColor = theme.getColor(editorDimmedLineNumber);\n    if (editorDimmedLineNumberColor) {\n        collector.addRule(`.monaco-editor .line-numbers.dimmed-line-number { color: ${editorDimmedLineNumberColor}; }`);\n    }\n    else if (editorLineNumbersColor) {\n        collector.addRule(`.monaco-editor .line-numbers.dimmed-line-number { color: ${editorLineNumbersColor.transparent(0.4)}; }`);\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/lines/domReadingContext.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class DomReadingContext {\n    get didDomLayout() {\n        return this._didDomLayout;\n    }\n    readClientRect() {\n        if (!this._clientRectRead) {\n            this._clientRectRead = true;\n            const rect = this._domNode.getBoundingClientRect();\n            this.markDidDomLayout();\n            this._clientRectDeltaLeft = rect.left;\n            this._clientRectScale = rect.width / this._domNode.offsetWidth;\n        }\n    }\n    get clientRectDeltaLeft() {\n        if (!this._clientRectRead) {\n            this.readClientRect();\n        }\n        return this._clientRectDeltaLeft;\n    }\n    get clientRectScale() {\n        if (!this._clientRectRead) {\n            this.readClientRect();\n        }\n        return this._clientRectScale;\n    }\n    constructor(_domNode, endNode) {\n        this._domNode = _domNode;\n        this.endNode = endNode;\n        this._didDomLayout = false;\n        this._clientRectDeltaLeft = 0;\n        this._clientRectScale = 1;\n        this._clientRectRead = false;\n    }\n    markDidDomLayout() {\n        this._didDomLayout = true;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/lines/rangeUtil.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { FloatHorizontalRange } from '../../view/renderingContext.js';\nexport class RangeUtil {\n    static _createRange() {\n        if (!this._handyReadyRange) {\n            this._handyReadyRange = document.createRange();\n        }\n        return this._handyReadyRange;\n    }\n    static _detachRange(range, endNode) {\n        // Move range out of the span node, IE doesn't like having many ranges in\n        // the same spot and will act badly for lines containing dashes ('-')\n        range.selectNodeContents(endNode);\n    }\n    static _readClientRects(startElement, startOffset, endElement, endOffset, endNode) {\n        const range = this._createRange();\n        try {\n            range.setStart(startElement, startOffset);\n            range.setEnd(endElement, endOffset);\n            return range.getClientRects();\n        }\n        catch (e) {\n            // This is life ...\n            return null;\n        }\n        finally {\n            this._detachRange(range, endNode);\n        }\n    }\n    static _mergeAdjacentRanges(ranges) {\n        if (ranges.length === 1) {\n            // There is nothing to merge\n            return ranges;\n        }\n        ranges.sort(FloatHorizontalRange.compare);\n        const result = [];\n        let resultLen = 0;\n        let prev = ranges[0];\n        for (let i = 1, len = ranges.length; i < len; i++) {\n            const range = ranges[i];\n            if (prev.left + prev.width + 0.9 /* account for browser's rounding errors*/ >= range.left) {\n                prev.width = Math.max(prev.width, range.left + range.width - prev.left);\n            }\n            else {\n                result[resultLen++] = prev;\n                prev = range;\n            }\n        }\n        result[resultLen++] = prev;\n        return result;\n    }\n    static _createHorizontalRangesFromClientRects(clientRects, clientRectDeltaLeft, clientRectScale) {\n        if (!clientRects || clientRects.length === 0) {\n            return null;\n        }\n        // We go through FloatHorizontalRange because it has been observed in bi-di text\n        // that the clientRects are not coming in sorted from the browser\n        const result = [];\n        for (let i = 0, len = clientRects.length; i < len; i++) {\n            const clientRect = clientRects[i];\n            result[i] = new FloatHorizontalRange(Math.max(0, (clientRect.left - clientRectDeltaLeft) / clientRectScale), clientRect.width / clientRectScale);\n        }\n        return this._mergeAdjacentRanges(result);\n    }\n    static readHorizontalRanges(domNode, startChildIndex, startOffset, endChildIndex, endOffset, context) {\n        // Panic check\n        const min = 0;\n        const max = domNode.children.length - 1;\n        if (min > max) {\n            return null;\n        }\n        startChildIndex = Math.min(max, Math.max(min, startChildIndex));\n        endChildIndex = Math.min(max, Math.max(min, endChildIndex));\n        if (startChildIndex === endChildIndex && startOffset === endOffset && startOffset === 0 && !domNode.children[startChildIndex].firstChild) {\n            // We must find the position at the beginning of a <span>\n            // To cover cases of empty <span>s, avoid using a range and use the <span>'s bounding box\n            const clientRects = domNode.children[startChildIndex].getClientRects();\n            context.markDidDomLayout();\n            return this._createHorizontalRangesFromClientRects(clientRects, context.clientRectDeltaLeft, context.clientRectScale);\n        }\n        // If crossing over to a span only to select offset 0, then use the previous span's maximum offset\n        // Chrome is buggy and doesn't handle 0 offsets well sometimes.\n        if (startChildIndex !== endChildIndex) {\n            if (endChildIndex > 0 && endOffset === 0) {\n                endChildIndex--;\n                endOffset = 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */;\n            }\n        }\n        let startElement = domNode.children[startChildIndex].firstChild;\n        let endElement = domNode.children[endChildIndex].firstChild;\n        if (!startElement || !endElement) {\n            // When having an empty <span> (without any text content), try to move to the previous <span>\n            if (!startElement && startOffset === 0 && startChildIndex > 0) {\n                startElement = domNode.children[startChildIndex - 1].firstChild;\n                startOffset = 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */;\n            }\n            if (!endElement && endOffset === 0 && endChildIndex > 0) {\n                endElement = domNode.children[endChildIndex - 1].firstChild;\n                endOffset = 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */;\n            }\n        }\n        if (!startElement || !endElement) {\n            return null;\n        }\n        startOffset = Math.min(startElement.textContent.length, Math.max(0, startOffset));\n        endOffset = Math.min(endElement.textContent.length, Math.max(0, endOffset));\n        const clientRects = this._readClientRects(startElement, startOffset, endElement, endOffset, context.endNode);\n        context.markDidDomLayout();\n        return this._createHorizontalRangesFromClientRects(clientRects, context.clientRectDeltaLeft, context.clientRectScale);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/lines/viewLine.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as browser from '../../../../base/browser/browser.js';\nimport { createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport * as platform from '../../../../base/common/platform.js';\nimport { RangeUtil } from './rangeUtil.js';\nimport { FloatHorizontalRange, VisibleRanges } from '../../view/renderingContext.js';\nimport { LineDecoration } from '../../../common/viewLayout/lineDecorations.js';\nimport { RenderLineInput, renderViewLine, LineRange, DomPosition } from '../../../common/viewLayout/viewLineRenderer.js';\nimport { isHighContrast } from '../../../../platform/theme/common/theme.js';\nimport { EditorFontLigatures } from '../../../common/config/editorOptions.js';\nconst canUseFastRenderedViewLine = (function () {\n    if (platform.isNative) {\n        // In VSCode we know very well when the zoom level changes\n        return true;\n    }\n    if (platform.isLinux || browser.isFirefox || browser.isSafari) {\n        // On Linux, it appears that zooming affects char widths (in pixels), which is unexpected.\n        // --\n        // Even though we read character widths correctly, having read them at a specific zoom level\n        // does not mean they are the same at the current zoom level.\n        // --\n        // This could be improved if we ever figure out how to get an event when browsers zoom,\n        // but until then we have to stick with reading client rects.\n        // --\n        // The same has been observed with Firefox on Windows7\n        // --\n        // The same has been oversved with Safari\n        return false;\n    }\n    return true;\n})();\nlet monospaceAssumptionsAreValid = true;\nexport class ViewLineOptions {\n    constructor(config, themeType) {\n        this.themeType = themeType;\n        const options = config.options;\n        const fontInfo = options.get(50 /* EditorOption.fontInfo */);\n        const experimentalWhitespaceRendering = options.get(38 /* EditorOption.experimentalWhitespaceRendering */);\n        if (experimentalWhitespaceRendering === 'off') {\n            this.renderWhitespace = options.get(99 /* EditorOption.renderWhitespace */);\n        }\n        else {\n            // whitespace is rendered in a different layer\n            this.renderWhitespace = 'none';\n        }\n        this.renderControlCharacters = options.get(94 /* EditorOption.renderControlCharacters */);\n        this.spaceWidth = fontInfo.spaceWidth;\n        this.middotWidth = fontInfo.middotWidth;\n        this.wsmiddotWidth = fontInfo.wsmiddotWidth;\n        this.useMonospaceOptimizations = (fontInfo.isMonospace\n            && !options.get(33 /* EditorOption.disableMonospaceOptimizations */));\n        this.canUseHalfwidthRightwardsArrow = fontInfo.canUseHalfwidthRightwardsArrow;\n        this.lineHeight = options.get(67 /* EditorOption.lineHeight */);\n        this.stopRenderingLineAfter = options.get(117 /* EditorOption.stopRenderingLineAfter */);\n        this.fontLigatures = options.get(51 /* EditorOption.fontLigatures */);\n    }\n    equals(other) {\n        return (this.themeType === other.themeType\n            && this.renderWhitespace === other.renderWhitespace\n            && this.renderControlCharacters === other.renderControlCharacters\n            && this.spaceWidth === other.spaceWidth\n            && this.middotWidth === other.middotWidth\n            && this.wsmiddotWidth === other.wsmiddotWidth\n            && this.useMonospaceOptimizations === other.useMonospaceOptimizations\n            && this.canUseHalfwidthRightwardsArrow === other.canUseHalfwidthRightwardsArrow\n            && this.lineHeight === other.lineHeight\n            && this.stopRenderingLineAfter === other.stopRenderingLineAfter\n            && this.fontLigatures === other.fontLigatures);\n    }\n}\nexport class ViewLine {\n    constructor(options) {\n        this._options = options;\n        this._isMaybeInvalid = true;\n        this._renderedViewLine = null;\n    }\n    // --- begin IVisibleLineData\n    getDomNode() {\n        if (this._renderedViewLine && this._renderedViewLine.domNode) {\n            return this._renderedViewLine.domNode.domNode;\n        }\n        return null;\n    }\n    setDomNode(domNode) {\n        if (this._renderedViewLine) {\n            this._renderedViewLine.domNode = createFastDomNode(domNode);\n        }\n        else {\n            throw new Error('I have no rendered view line to set the dom node to...');\n        }\n    }\n    onContentChanged() {\n        this._isMaybeInvalid = true;\n    }\n    onTokensChanged() {\n        this._isMaybeInvalid = true;\n    }\n    onDecorationsChanged() {\n        this._isMaybeInvalid = true;\n    }\n    onOptionsChanged(newOptions) {\n        this._isMaybeInvalid = true;\n        this._options = newOptions;\n    }\n    onSelectionChanged() {\n        if (isHighContrast(this._options.themeType) || this._options.renderWhitespace === 'selection') {\n            this._isMaybeInvalid = true;\n            return true;\n        }\n        return false;\n    }\n    renderLine(lineNumber, deltaTop, lineHeight, viewportData, sb) {\n        if (this._isMaybeInvalid === false) {\n            // it appears that nothing relevant has changed\n            return false;\n        }\n        this._isMaybeInvalid = false;\n        const lineData = viewportData.getViewLineRenderingData(lineNumber);\n        const options = this._options;\n        const actualInlineDecorations = LineDecoration.filter(lineData.inlineDecorations, lineNumber, lineData.minColumn, lineData.maxColumn);\n        // Only send selection information when needed for rendering whitespace\n        let selectionsOnLine = null;\n        if (isHighContrast(options.themeType) || this._options.renderWhitespace === 'selection') {\n            const selections = viewportData.selections;\n            for (const selection of selections) {\n                if (selection.endLineNumber < lineNumber || selection.startLineNumber > lineNumber) {\n                    // Selection does not intersect line\n                    continue;\n                }\n                const startColumn = (selection.startLineNumber === lineNumber ? selection.startColumn : lineData.minColumn);\n                const endColumn = (selection.endLineNumber === lineNumber ? selection.endColumn : lineData.maxColumn);\n                if (startColumn < endColumn) {\n                    if (isHighContrast(options.themeType)) {\n                        actualInlineDecorations.push(new LineDecoration(startColumn, endColumn, 'inline-selected-text', 0 /* InlineDecorationType.Regular */));\n                    }\n                    if (this._options.renderWhitespace === 'selection') {\n                        if (!selectionsOnLine) {\n                            selectionsOnLine = [];\n                        }\n                        selectionsOnLine.push(new LineRange(startColumn - 1, endColumn - 1));\n                    }\n                }\n            }\n        }\n        const renderLineInput = new RenderLineInput(options.useMonospaceOptimizations, options.canUseHalfwidthRightwardsArrow, lineData.content, lineData.continuesWithWrappedLine, lineData.isBasicASCII, lineData.containsRTL, lineData.minColumn - 1, lineData.tokens, actualInlineDecorations, lineData.tabSize, lineData.startVisibleColumn, options.spaceWidth, options.middotWidth, options.wsmiddotWidth, options.stopRenderingLineAfter, options.renderWhitespace, options.renderControlCharacters, options.fontLigatures !== EditorFontLigatures.OFF, selectionsOnLine);\n        if (this._renderedViewLine && this._renderedViewLine.input.equals(renderLineInput)) {\n            // no need to do anything, we have the same render input\n            return false;\n        }\n        sb.appendString('<div style=\"top:');\n        sb.appendString(String(deltaTop));\n        sb.appendString('px;height:');\n        sb.appendString(String(lineHeight));\n        sb.appendString('px;\" class=\"');\n        sb.appendString(ViewLine.CLASS_NAME);\n        sb.appendString('\">');\n        const output = renderViewLine(renderLineInput, sb);\n        sb.appendString('</div>');\n        let renderedViewLine = null;\n        if (monospaceAssumptionsAreValid && canUseFastRenderedViewLine && lineData.isBasicASCII && options.useMonospaceOptimizations && output.containsForeignElements === 0 /* ForeignElementType.None */) {\n            renderedViewLine = new FastRenderedViewLine(this._renderedViewLine ? this._renderedViewLine.domNode : null, renderLineInput, output.characterMapping);\n        }\n        if (!renderedViewLine) {\n            renderedViewLine = createRenderedLine(this._renderedViewLine ? this._renderedViewLine.domNode : null, renderLineInput, output.characterMapping, output.containsRTL, output.containsForeignElements);\n        }\n        this._renderedViewLine = renderedViewLine;\n        return true;\n    }\n    layoutLine(lineNumber, deltaTop, lineHeight) {\n        if (this._renderedViewLine && this._renderedViewLine.domNode) {\n            this._renderedViewLine.domNode.setTop(deltaTop);\n            this._renderedViewLine.domNode.setHeight(lineHeight);\n        }\n    }\n    // --- end IVisibleLineData\n    getWidth(context) {\n        if (!this._renderedViewLine) {\n            return 0;\n        }\n        return this._renderedViewLine.getWidth(context);\n    }\n    getWidthIsFast() {\n        if (!this._renderedViewLine) {\n            return true;\n        }\n        return this._renderedViewLine.getWidthIsFast();\n    }\n    needsMonospaceFontCheck() {\n        if (!this._renderedViewLine) {\n            return false;\n        }\n        return (this._renderedViewLine instanceof FastRenderedViewLine);\n    }\n    monospaceAssumptionsAreValid() {\n        if (!this._renderedViewLine) {\n            return monospaceAssumptionsAreValid;\n        }\n        if (this._renderedViewLine instanceof FastRenderedViewLine) {\n            return this._renderedViewLine.monospaceAssumptionsAreValid();\n        }\n        return monospaceAssumptionsAreValid;\n    }\n    onMonospaceAssumptionsInvalidated() {\n        if (this._renderedViewLine && this._renderedViewLine instanceof FastRenderedViewLine) {\n            this._renderedViewLine = this._renderedViewLine.toSlowRenderedLine();\n        }\n    }\n    getVisibleRangesForRange(lineNumber, startColumn, endColumn, context) {\n        if (!this._renderedViewLine) {\n            return null;\n        }\n        startColumn = Math.min(this._renderedViewLine.input.lineContent.length + 1, Math.max(1, startColumn));\n        endColumn = Math.min(this._renderedViewLine.input.lineContent.length + 1, Math.max(1, endColumn));\n        const stopRenderingLineAfter = this._renderedViewLine.input.stopRenderingLineAfter;\n        if (stopRenderingLineAfter !== -1 && startColumn > stopRenderingLineAfter + 1 && endColumn > stopRenderingLineAfter + 1) {\n            // This range is obviously not visible\n            return new VisibleRanges(true, [new FloatHorizontalRange(this.getWidth(context), 0)]);\n        }\n        if (stopRenderingLineAfter !== -1 && startColumn > stopRenderingLineAfter + 1) {\n            startColumn = stopRenderingLineAfter + 1;\n        }\n        if (stopRenderingLineAfter !== -1 && endColumn > stopRenderingLineAfter + 1) {\n            endColumn = stopRenderingLineAfter + 1;\n        }\n        const horizontalRanges = this._renderedViewLine.getVisibleRangesForRange(lineNumber, startColumn, endColumn, context);\n        if (horizontalRanges && horizontalRanges.length > 0) {\n            return new VisibleRanges(false, horizontalRanges);\n        }\n        return null;\n    }\n    getColumnOfNodeOffset(spanNode, offset) {\n        if (!this._renderedViewLine) {\n            return 1;\n        }\n        return this._renderedViewLine.getColumnOfNodeOffset(spanNode, offset);\n    }\n}\nViewLine.CLASS_NAME = 'view-line';\n/**\n * A rendered line which is guaranteed to contain only regular ASCII and is rendered with a monospace font.\n */\nclass FastRenderedViewLine {\n    constructor(domNode, renderLineInput, characterMapping) {\n        this._cachedWidth = -1;\n        this.domNode = domNode;\n        this.input = renderLineInput;\n        const keyColumnCount = Math.floor(renderLineInput.lineContent.length / 300 /* Constants.MaxMonospaceDistance */);\n        if (keyColumnCount > 0) {\n            this._keyColumnPixelOffsetCache = new Float32Array(keyColumnCount);\n            for (let i = 0; i < keyColumnCount; i++) {\n                this._keyColumnPixelOffsetCache[i] = -1;\n            }\n        }\n        else {\n            this._keyColumnPixelOffsetCache = null;\n        }\n        this._characterMapping = characterMapping;\n        this._charWidth = renderLineInput.spaceWidth;\n    }\n    getWidth(context) {\n        if (!this.domNode || this.input.lineContent.length < 300 /* Constants.MaxMonospaceDistance */) {\n            const horizontalOffset = this._characterMapping.getHorizontalOffset(this._characterMapping.length);\n            return Math.round(this._charWidth * horizontalOffset);\n        }\n        if (this._cachedWidth === -1) {\n            this._cachedWidth = this._getReadingTarget(this.domNode).offsetWidth;\n            context === null || context === void 0 ? void 0 : context.markDidDomLayout();\n        }\n        return this._cachedWidth;\n    }\n    getWidthIsFast() {\n        return (this.input.lineContent.length < 300 /* Constants.MaxMonospaceDistance */) || this._cachedWidth !== -1;\n    }\n    monospaceAssumptionsAreValid() {\n        if (!this.domNode) {\n            return monospaceAssumptionsAreValid;\n        }\n        if (this.input.lineContent.length < 300 /* Constants.MaxMonospaceDistance */) {\n            const expectedWidth = this.getWidth(null);\n            const actualWidth = this.domNode.domNode.firstChild.offsetWidth;\n            if (Math.abs(expectedWidth - actualWidth) >= 2) {\n                // more than 2px off\n                console.warn(`monospace assumptions have been violated, therefore disabling monospace optimizations!`);\n                monospaceAssumptionsAreValid = false;\n            }\n        }\n        return monospaceAssumptionsAreValid;\n    }\n    toSlowRenderedLine() {\n        return createRenderedLine(this.domNode, this.input, this._characterMapping, false, 0 /* ForeignElementType.None */);\n    }\n    getVisibleRangesForRange(lineNumber, startColumn, endColumn, context) {\n        const startPosition = this._getColumnPixelOffset(lineNumber, startColumn, context);\n        const endPosition = this._getColumnPixelOffset(lineNumber, endColumn, context);\n        return [new FloatHorizontalRange(startPosition, endPosition - startPosition)];\n    }\n    _getColumnPixelOffset(lineNumber, column, context) {\n        if (column <= 300 /* Constants.MaxMonospaceDistance */) {\n            const horizontalOffset = this._characterMapping.getHorizontalOffset(column);\n            return this._charWidth * horizontalOffset;\n        }\n        const keyColumnOrdinal = Math.floor((column - 1) / 300 /* Constants.MaxMonospaceDistance */) - 1;\n        const keyColumn = (keyColumnOrdinal + 1) * 300 /* Constants.MaxMonospaceDistance */ + 1;\n        let keyColumnPixelOffset = -1;\n        if (this._keyColumnPixelOffsetCache) {\n            keyColumnPixelOffset = this._keyColumnPixelOffsetCache[keyColumnOrdinal];\n            if (keyColumnPixelOffset === -1) {\n                keyColumnPixelOffset = this._actualReadPixelOffset(lineNumber, keyColumn, context);\n                this._keyColumnPixelOffsetCache[keyColumnOrdinal] = keyColumnPixelOffset;\n            }\n        }\n        if (keyColumnPixelOffset === -1) {\n            // Could not read actual key column pixel offset\n            const horizontalOffset = this._characterMapping.getHorizontalOffset(column);\n            return this._charWidth * horizontalOffset;\n        }\n        const keyColumnHorizontalOffset = this._characterMapping.getHorizontalOffset(keyColumn);\n        const horizontalOffset = this._characterMapping.getHorizontalOffset(column);\n        return keyColumnPixelOffset + this._charWidth * (horizontalOffset - keyColumnHorizontalOffset);\n    }\n    _getReadingTarget(myDomNode) {\n        return myDomNode.domNode.firstChild;\n    }\n    _actualReadPixelOffset(lineNumber, column, context) {\n        if (!this.domNode) {\n            return -1;\n        }\n        const domPosition = this._characterMapping.getDomPosition(column);\n        const r = RangeUtil.readHorizontalRanges(this._getReadingTarget(this.domNode), domPosition.partIndex, domPosition.charIndex, domPosition.partIndex, domPosition.charIndex, context);\n        if (!r || r.length === 0) {\n            return -1;\n        }\n        return r[0].left;\n    }\n    getColumnOfNodeOffset(spanNode, offset) {\n        return getColumnOfNodeOffset(this._characterMapping, spanNode, offset);\n    }\n}\n/**\n * Every time we render a line, we save what we have rendered in an instance of this class.\n */\nclass RenderedViewLine {\n    constructor(domNode, renderLineInput, characterMapping, containsRTL, containsForeignElements) {\n        this.domNode = domNode;\n        this.input = renderLineInput;\n        this._characterMapping = characterMapping;\n        this._isWhitespaceOnly = /^\\s*$/.test(renderLineInput.lineContent);\n        this._containsForeignElements = containsForeignElements;\n        this._cachedWidth = -1;\n        this._pixelOffsetCache = null;\n        if (!containsRTL || this._characterMapping.length === 0 /* the line is empty */) {\n            this._pixelOffsetCache = new Float32Array(Math.max(2, this._characterMapping.length + 1));\n            for (let column = 0, len = this._characterMapping.length; column <= len; column++) {\n                this._pixelOffsetCache[column] = -1;\n            }\n        }\n    }\n    // --- Reading from the DOM methods\n    _getReadingTarget(myDomNode) {\n        return myDomNode.domNode.firstChild;\n    }\n    /**\n     * Width of the line in pixels\n     */\n    getWidth(context) {\n        if (!this.domNode) {\n            return 0;\n        }\n        if (this._cachedWidth === -1) {\n            this._cachedWidth = this._getReadingTarget(this.domNode).offsetWidth;\n            context === null || context === void 0 ? void 0 : context.markDidDomLayout();\n        }\n        return this._cachedWidth;\n    }\n    getWidthIsFast() {\n        if (this._cachedWidth === -1) {\n            return false;\n        }\n        return true;\n    }\n    /**\n     * Visible ranges for a model range\n     */\n    getVisibleRangesForRange(lineNumber, startColumn, endColumn, context) {\n        if (!this.domNode) {\n            return null;\n        }\n        if (this._pixelOffsetCache !== null) {\n            // the text is LTR\n            const startOffset = this._readPixelOffset(this.domNode, lineNumber, startColumn, context);\n            if (startOffset === -1) {\n                return null;\n            }\n            const endOffset = this._readPixelOffset(this.domNode, lineNumber, endColumn, context);\n            if (endOffset === -1) {\n                return null;\n            }\n            return [new FloatHorizontalRange(startOffset, endOffset - startOffset)];\n        }\n        return this._readVisibleRangesForRange(this.domNode, lineNumber, startColumn, endColumn, context);\n    }\n    _readVisibleRangesForRange(domNode, lineNumber, startColumn, endColumn, context) {\n        if (startColumn === endColumn) {\n            const pixelOffset = this._readPixelOffset(domNode, lineNumber, startColumn, context);\n            if (pixelOffset === -1) {\n                return null;\n            }\n            else {\n                return [new FloatHorizontalRange(pixelOffset, 0)];\n            }\n        }\n        else {\n            return this._readRawVisibleRangesForRange(domNode, startColumn, endColumn, context);\n        }\n    }\n    _readPixelOffset(domNode, lineNumber, column, context) {\n        if (this._characterMapping.length === 0) {\n            // This line has no content\n            if (this._containsForeignElements === 0 /* ForeignElementType.None */) {\n                // We can assume the line is really empty\n                return 0;\n            }\n            if (this._containsForeignElements === 2 /* ForeignElementType.After */) {\n                // We have foreign elements after the (empty) line\n                return 0;\n            }\n            if (this._containsForeignElements === 1 /* ForeignElementType.Before */) {\n                // We have foreign elements before the (empty) line\n                return this.getWidth(context);\n            }\n            // We have foreign elements before & after the (empty) line\n            const readingTarget = this._getReadingTarget(domNode);\n            if (readingTarget.firstChild) {\n                context.markDidDomLayout();\n                return readingTarget.firstChild.offsetWidth;\n            }\n            else {\n                return 0;\n            }\n        }\n        if (this._pixelOffsetCache !== null) {\n            // the text is LTR\n            const cachedPixelOffset = this._pixelOffsetCache[column];\n            if (cachedPixelOffset !== -1) {\n                return cachedPixelOffset;\n            }\n            const result = this._actualReadPixelOffset(domNode, lineNumber, column, context);\n            this._pixelOffsetCache[column] = result;\n            return result;\n        }\n        return this._actualReadPixelOffset(domNode, lineNumber, column, context);\n    }\n    _actualReadPixelOffset(domNode, lineNumber, column, context) {\n        if (this._characterMapping.length === 0) {\n            // This line has no content\n            const r = RangeUtil.readHorizontalRanges(this._getReadingTarget(domNode), 0, 0, 0, 0, context);\n            if (!r || r.length === 0) {\n                return -1;\n            }\n            return r[0].left;\n        }\n        if (column === this._characterMapping.length && this._isWhitespaceOnly && this._containsForeignElements === 0 /* ForeignElementType.None */) {\n            // This branch helps in the case of whitespace only lines which have a width set\n            return this.getWidth(context);\n        }\n        const domPosition = this._characterMapping.getDomPosition(column);\n        const r = RangeUtil.readHorizontalRanges(this._getReadingTarget(domNode), domPosition.partIndex, domPosition.charIndex, domPosition.partIndex, domPosition.charIndex, context);\n        if (!r || r.length === 0) {\n            return -1;\n        }\n        const result = r[0].left;\n        if (this.input.isBasicASCII) {\n            const horizontalOffset = this._characterMapping.getHorizontalOffset(column);\n            const expectedResult = Math.round(this.input.spaceWidth * horizontalOffset);\n            if (Math.abs(expectedResult - result) <= 1) {\n                return expectedResult;\n            }\n        }\n        return result;\n    }\n    _readRawVisibleRangesForRange(domNode, startColumn, endColumn, context) {\n        if (startColumn === 1 && endColumn === this._characterMapping.length) {\n            // This branch helps IE with bidi text & gives a performance boost to other browsers when reading visible ranges for an entire line\n            return [new FloatHorizontalRange(0, this.getWidth(context))];\n        }\n        const startDomPosition = this._characterMapping.getDomPosition(startColumn);\n        const endDomPosition = this._characterMapping.getDomPosition(endColumn);\n        return RangeUtil.readHorizontalRanges(this._getReadingTarget(domNode), startDomPosition.partIndex, startDomPosition.charIndex, endDomPosition.partIndex, endDomPosition.charIndex, context);\n    }\n    /**\n     * Returns the column for the text found at a specific offset inside a rendered dom node\n     */\n    getColumnOfNodeOffset(spanNode, offset) {\n        return getColumnOfNodeOffset(this._characterMapping, spanNode, offset);\n    }\n}\nclass WebKitRenderedViewLine extends RenderedViewLine {\n    _readVisibleRangesForRange(domNode, lineNumber, startColumn, endColumn, context) {\n        const output = super._readVisibleRangesForRange(domNode, lineNumber, startColumn, endColumn, context);\n        if (!output || output.length === 0 || startColumn === endColumn || (startColumn === 1 && endColumn === this._characterMapping.length)) {\n            return output;\n        }\n        // WebKit is buggy and returns an expanded range (to contain words in some cases)\n        // The last client rect is enlarged (I think)\n        if (!this.input.containsRTL) {\n            // This is an attempt to patch things up\n            // Find position of last column\n            const endPixelOffset = this._readPixelOffset(domNode, lineNumber, endColumn, context);\n            if (endPixelOffset !== -1) {\n                const lastRange = output[output.length - 1];\n                if (lastRange.left < endPixelOffset) {\n                    // Trim down the width of the last visible range to not go after the last column's position\n                    lastRange.width = endPixelOffset - lastRange.left;\n                }\n            }\n        }\n        return output;\n    }\n}\nconst createRenderedLine = (function () {\n    if (browser.isWebKit) {\n        return createWebKitRenderedLine;\n    }\n    return createNormalRenderedLine;\n})();\nfunction createWebKitRenderedLine(domNode, renderLineInput, characterMapping, containsRTL, containsForeignElements) {\n    return new WebKitRenderedViewLine(domNode, renderLineInput, characterMapping, containsRTL, containsForeignElements);\n}\nfunction createNormalRenderedLine(domNode, renderLineInput, characterMapping, containsRTL, containsForeignElements) {\n    return new RenderedViewLine(domNode, renderLineInput, characterMapping, containsRTL, containsForeignElements);\n}\nexport function getColumnOfNodeOffset(characterMapping, spanNode, offset) {\n    const spanNodeTextContentLength = spanNode.textContent.length;\n    let spanIndex = -1;\n    while (spanNode) {\n        spanNode = spanNode.previousSibling;\n        spanIndex++;\n    }\n    return characterMapping.getColumn(new DomPosition(spanIndex, offset), spanNodeTextContentLength);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/lines/viewLines.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n/* Uncomment to see lines flashing when they're painted */\n/*.monaco-editor .view-lines > .view-line {\n\tbackground-color: none;\n\tanimation-name: flash-background;\n\tanimation-duration: 800ms;\n}\n@keyframes flash-background {\n\t0%   { background-color: lightgreen; }\n\t100% { background-color: none }\n}*/\n\n.mtkcontrol {\n\tcolor: rgb(255, 255, 255) !important;\n\tbackground: rgb(150, 0, 0) !important;\n}\n\n.mtkoverflow {\n\tbackground-color: var(--vscode-button-background, var(--vscode-editor-background));\n\tcolor: var(--vscode-button-foreground, var(--vscode-editor-foreground));\n\tborder-width: 1px;\n\tborder-style: solid;\n\tborder-color: var(--vscode-contrastBorder);\n\tborder-radius: 2px;\n\tpadding: 4px;\n\tcursor: pointer;\n}\n.mtkoverflow:hover {\n\tbackground-color: var(--vscode-button-hoverBackground);\n}\n\n.monaco-editor.no-user-select .lines-content,\n.monaco-editor.no-user-select .view-line,\n.monaco-editor.no-user-select .view-lines {\n\tuser-select: none;\n\t-webkit-user-select: none;\n}\n/* Use user-select: text for lookup feature on macOS */\n/* https://github.com/microsoft/vscode/issues/85632 */\n.monaco-editor.mac .lines-content:hover,\n.monaco-editor.mac .view-line:hover,\n.monaco-editor.mac .view-lines:hover {\n\tuser-select: text;\n\t-webkit-user-select: text;\n\t-ms-user-select: text;\n}\n\n.monaco-editor.enable-user-select {\n\tuser-select: initial;\n\t-webkit-user-select: initial;\n}\n\n.monaco-editor .view-lines {\n\twhite-space: nowrap;\n}\n\n.monaco-editor .view-line {\n\tposition: absolute;\n\twidth: 100%;\n}\n\n/* There are view-lines in view-zones. We have to make sure this rule does not apply to them, as they don't set a line height */\n.monaco-editor .lines-content > .view-lines > .view-line > span {\n\ttop: 0;\n\tbottom: 0;\n\tposition: absolute;\n}\n\n.monaco-editor .mtkw {\n\tcolor: var(--vscode-editorWhitespace-foreground) !important;\n}\n\n.monaco-editor .mtkz {\n\tdisplay: inline-block;\n\tcolor: var(--vscode-editorWhitespace-foreground) !important;\n}\n\n/* TODO@tokenization bootstrap fix */\n/*.monaco-editor .view-line > span > span {\n\tfloat: none;\n\tmin-height: inherit;\n\tmargin-left: inherit;\n}*/\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/lines/viewLines.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { MOUSE_CURSOR_TEXT_CSS_CLASS_NAME } from '../../../../base/browser/ui/mouseCursor/mouseCursor.js';\nimport { RunOnceScheduler } from '../../../../base/common/async.js';\nimport * as platform from '../../../../base/common/platform.js';\nimport './viewLines.css';\nimport { applyFontInfo } from '../../config/domFontInfo.js';\nimport { HorizontalPosition, HorizontalRange, LineVisibleRanges } from '../../view/renderingContext.js';\nimport { VisibleLinesCollection } from '../../view/viewLayer.js';\nimport { PartFingerprints, ViewPart } from '../../view/viewPart.js';\nimport { DomReadingContext } from './domReadingContext.js';\nimport { ViewLine, ViewLineOptions } from './viewLine.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nclass LastRenderedData {\n    constructor() {\n        this._currentVisibleRange = new Range(1, 1, 1, 1);\n    }\n    getCurrentVisibleRange() {\n        return this._currentVisibleRange;\n    }\n    setCurrentVisibleRange(currentVisibleRange) {\n        this._currentVisibleRange = currentVisibleRange;\n    }\n}\nclass HorizontalRevealRangeRequest {\n    constructor(minimalReveal, lineNumber, startColumn, endColumn, startScrollTop, stopScrollTop, scrollType) {\n        this.minimalReveal = minimalReveal;\n        this.lineNumber = lineNumber;\n        this.startColumn = startColumn;\n        this.endColumn = endColumn;\n        this.startScrollTop = startScrollTop;\n        this.stopScrollTop = stopScrollTop;\n        this.scrollType = scrollType;\n        this.type = 'range';\n        this.minLineNumber = lineNumber;\n        this.maxLineNumber = lineNumber;\n    }\n}\nclass HorizontalRevealSelectionsRequest {\n    constructor(minimalReveal, selections, startScrollTop, stopScrollTop, scrollType) {\n        this.minimalReveal = minimalReveal;\n        this.selections = selections;\n        this.startScrollTop = startScrollTop;\n        this.stopScrollTop = stopScrollTop;\n        this.scrollType = scrollType;\n        this.type = 'selections';\n        let minLineNumber = selections[0].startLineNumber;\n        let maxLineNumber = selections[0].endLineNumber;\n        for (let i = 1, len = selections.length; i < len; i++) {\n            const selection = selections[i];\n            minLineNumber = Math.min(minLineNumber, selection.startLineNumber);\n            maxLineNumber = Math.max(maxLineNumber, selection.endLineNumber);\n        }\n        this.minLineNumber = minLineNumber;\n        this.maxLineNumber = maxLineNumber;\n    }\n}\nexport class ViewLines extends ViewPart {\n    constructor(context, linesContent) {\n        super(context);\n        this._linesContent = linesContent;\n        this._textRangeRestingSpot = document.createElement('div');\n        this._visibleLines = new VisibleLinesCollection(this);\n        this.domNode = this._visibleLines.domNode;\n        const conf = this._context.configuration;\n        const options = this._context.configuration.options;\n        const fontInfo = options.get(50 /* EditorOption.fontInfo */);\n        const wrappingInfo = options.get(146 /* EditorOption.wrappingInfo */);\n        this._lineHeight = options.get(67 /* EditorOption.lineHeight */);\n        this._typicalHalfwidthCharacterWidth = fontInfo.typicalHalfwidthCharacterWidth;\n        this._isViewportWrapping = wrappingInfo.isViewportWrapping;\n        this._revealHorizontalRightPadding = options.get(100 /* EditorOption.revealHorizontalRightPadding */);\n        this._cursorSurroundingLines = options.get(29 /* EditorOption.cursorSurroundingLines */);\n        this._cursorSurroundingLinesStyle = options.get(30 /* EditorOption.cursorSurroundingLinesStyle */);\n        this._canUseLayerHinting = !options.get(32 /* EditorOption.disableLayerHinting */);\n        this._viewLineOptions = new ViewLineOptions(conf, this._context.theme.type);\n        PartFingerprints.write(this.domNode, 8 /* PartFingerprint.ViewLines */);\n        this.domNode.setClassName(`view-lines ${MOUSE_CURSOR_TEXT_CSS_CLASS_NAME}`);\n        applyFontInfo(this.domNode, fontInfo);\n        // --- width & height\n        this._maxLineWidth = 0;\n        this._asyncUpdateLineWidths = new RunOnceScheduler(() => {\n            this._updateLineWidthsSlow();\n        }, 200);\n        this._asyncCheckMonospaceFontAssumptions = new RunOnceScheduler(() => {\n            this._checkMonospaceFontAssumptions();\n        }, 2000);\n        this._lastRenderedData = new LastRenderedData();\n        this._horizontalRevealRequest = null;\n        // sticky scroll widget\n        this._stickyScrollEnabled = options.get(115 /* EditorOption.stickyScroll */).enabled;\n        this._maxNumberStickyLines = options.get(115 /* EditorOption.stickyScroll */).maxLineCount;\n    }\n    dispose() {\n        this._asyncUpdateLineWidths.dispose();\n        this._asyncCheckMonospaceFontAssumptions.dispose();\n        super.dispose();\n    }\n    getDomNode() {\n        return this.domNode;\n    }\n    // ---- begin IVisibleLinesHost\n    createVisibleLine() {\n        return new ViewLine(this._viewLineOptions);\n    }\n    // ---- end IVisibleLinesHost\n    // ---- begin view event handlers\n    onConfigurationChanged(e) {\n        this._visibleLines.onConfigurationChanged(e);\n        if (e.hasChanged(146 /* EditorOption.wrappingInfo */)) {\n            this._maxLineWidth = 0;\n        }\n        const options = this._context.configuration.options;\n        const fontInfo = options.get(50 /* EditorOption.fontInfo */);\n        const wrappingInfo = options.get(146 /* EditorOption.wrappingInfo */);\n        this._lineHeight = options.get(67 /* EditorOption.lineHeight */);\n        this._typicalHalfwidthCharacterWidth = fontInfo.typicalHalfwidthCharacterWidth;\n        this._isViewportWrapping = wrappingInfo.isViewportWrapping;\n        this._revealHorizontalRightPadding = options.get(100 /* EditorOption.revealHorizontalRightPadding */);\n        this._cursorSurroundingLines = options.get(29 /* EditorOption.cursorSurroundingLines */);\n        this._cursorSurroundingLinesStyle = options.get(30 /* EditorOption.cursorSurroundingLinesStyle */);\n        this._canUseLayerHinting = !options.get(32 /* EditorOption.disableLayerHinting */);\n        // sticky scroll\n        this._stickyScrollEnabled = options.get(115 /* EditorOption.stickyScroll */).enabled;\n        this._maxNumberStickyLines = options.get(115 /* EditorOption.stickyScroll */).maxLineCount;\n        applyFontInfo(this.domNode, fontInfo);\n        this._onOptionsMaybeChanged();\n        if (e.hasChanged(145 /* EditorOption.layoutInfo */)) {\n            this._maxLineWidth = 0;\n        }\n        return true;\n    }\n    _onOptionsMaybeChanged() {\n        const conf = this._context.configuration;\n        const newViewLineOptions = new ViewLineOptions(conf, this._context.theme.type);\n        if (!this._viewLineOptions.equals(newViewLineOptions)) {\n            this._viewLineOptions = newViewLineOptions;\n            const startLineNumber = this._visibleLines.getStartLineNumber();\n            const endLineNumber = this._visibleLines.getEndLineNumber();\n            for (let lineNumber = startLineNumber; lineNumber <= endLineNumber; lineNumber++) {\n                const line = this._visibleLines.getVisibleLine(lineNumber);\n                line.onOptionsChanged(this._viewLineOptions);\n            }\n            return true;\n        }\n        return false;\n    }\n    onCursorStateChanged(e) {\n        const rendStartLineNumber = this._visibleLines.getStartLineNumber();\n        const rendEndLineNumber = this._visibleLines.getEndLineNumber();\n        let r = false;\n        for (let lineNumber = rendStartLineNumber; lineNumber <= rendEndLineNumber; lineNumber++) {\n            r = this._visibleLines.getVisibleLine(lineNumber).onSelectionChanged() || r;\n        }\n        return r;\n    }\n    onDecorationsChanged(e) {\n        if (true /*e.inlineDecorationsChanged*/) {\n            const rendStartLineNumber = this._visibleLines.getStartLineNumber();\n            const rendEndLineNumber = this._visibleLines.getEndLineNumber();\n            for (let lineNumber = rendStartLineNumber; lineNumber <= rendEndLineNumber; lineNumber++) {\n                this._visibleLines.getVisibleLine(lineNumber).onDecorationsChanged();\n            }\n        }\n        return true;\n    }\n    onFlushed(e) {\n        const shouldRender = this._visibleLines.onFlushed(e);\n        this._maxLineWidth = 0;\n        return shouldRender;\n    }\n    onLinesChanged(e) {\n        return this._visibleLines.onLinesChanged(e);\n    }\n    onLinesDeleted(e) {\n        return this._visibleLines.onLinesDeleted(e);\n    }\n    onLinesInserted(e) {\n        return this._visibleLines.onLinesInserted(e);\n    }\n    onRevealRangeRequest(e) {\n        // Using the future viewport here in order to handle multiple\n        // incoming reveal range requests that might all desire to be animated\n        const desiredScrollTop = this._computeScrollTopToRevealRange(this._context.viewLayout.getFutureViewport(), e.source, e.minimalReveal, e.range, e.selections, e.verticalType);\n        if (desiredScrollTop === -1) {\n            // marker to abort the reveal range request\n            return false;\n        }\n        // validate the new desired scroll top\n        let newScrollPosition = this._context.viewLayout.validateScrollPosition({ scrollTop: desiredScrollTop });\n        if (e.revealHorizontal) {\n            if (e.range && e.range.startLineNumber !== e.range.endLineNumber) {\n                // Two or more lines? => scroll to base (That's how you see most of the two lines)\n                newScrollPosition = {\n                    scrollTop: newScrollPosition.scrollTop,\n                    scrollLeft: 0\n                };\n            }\n            else if (e.range) {\n                // We don't necessarily know the horizontal offset of this range since the line might not be in the view...\n                this._horizontalRevealRequest = new HorizontalRevealRangeRequest(e.minimalReveal, e.range.startLineNumber, e.range.startColumn, e.range.endColumn, this._context.viewLayout.getCurrentScrollTop(), newScrollPosition.scrollTop, e.scrollType);\n            }\n            else if (e.selections && e.selections.length > 0) {\n                this._horizontalRevealRequest = new HorizontalRevealSelectionsRequest(e.minimalReveal, e.selections, this._context.viewLayout.getCurrentScrollTop(), newScrollPosition.scrollTop, e.scrollType);\n            }\n        }\n        else {\n            this._horizontalRevealRequest = null;\n        }\n        const scrollTopDelta = Math.abs(this._context.viewLayout.getCurrentScrollTop() - newScrollPosition.scrollTop);\n        const scrollType = (scrollTopDelta <= this._lineHeight ? 1 /* ScrollType.Immediate */ : e.scrollType);\n        this._context.viewModel.viewLayout.setScrollPosition(newScrollPosition, scrollType);\n        return true;\n    }\n    onScrollChanged(e) {\n        if (this._horizontalRevealRequest && e.scrollLeftChanged) {\n            // cancel any outstanding horizontal reveal request if someone else scrolls horizontally.\n            this._horizontalRevealRequest = null;\n        }\n        if (this._horizontalRevealRequest && e.scrollTopChanged) {\n            const min = Math.min(this._horizontalRevealRequest.startScrollTop, this._horizontalRevealRequest.stopScrollTop);\n            const max = Math.max(this._horizontalRevealRequest.startScrollTop, this._horizontalRevealRequest.stopScrollTop);\n            if (e.scrollTop < min || e.scrollTop > max) {\n                // cancel any outstanding horizontal reveal request if someone else scrolls vertically.\n                this._horizontalRevealRequest = null;\n            }\n        }\n        this.domNode.setWidth(e.scrollWidth);\n        return this._visibleLines.onScrollChanged(e) || true;\n    }\n    onTokensChanged(e) {\n        return this._visibleLines.onTokensChanged(e);\n    }\n    onZonesChanged(e) {\n        this._context.viewModel.viewLayout.setMaxLineWidth(this._maxLineWidth);\n        return this._visibleLines.onZonesChanged(e);\n    }\n    onThemeChanged(e) {\n        return this._onOptionsMaybeChanged();\n    }\n    // ---- end view event handlers\n    // ----------- HELPERS FOR OTHERS\n    getPositionFromDOMInfo(spanNode, offset) {\n        const viewLineDomNode = this._getViewLineDomNode(spanNode);\n        if (viewLineDomNode === null) {\n            // Couldn't find view line node\n            return null;\n        }\n        const lineNumber = this._getLineNumberFor(viewLineDomNode);\n        if (lineNumber === -1) {\n            // Couldn't find view line node\n            return null;\n        }\n        if (lineNumber < 1 || lineNumber > this._context.viewModel.getLineCount()) {\n            // lineNumber is outside range\n            return null;\n        }\n        if (this._context.viewModel.getLineMaxColumn(lineNumber) === 1) {\n            // Line is empty\n            return new Position(lineNumber, 1);\n        }\n        const rendStartLineNumber = this._visibleLines.getStartLineNumber();\n        const rendEndLineNumber = this._visibleLines.getEndLineNumber();\n        if (lineNumber < rendStartLineNumber || lineNumber > rendEndLineNumber) {\n            // Couldn't find line\n            return null;\n        }\n        let column = this._visibleLines.getVisibleLine(lineNumber).getColumnOfNodeOffset(spanNode, offset);\n        const minColumn = this._context.viewModel.getLineMinColumn(lineNumber);\n        if (column < minColumn) {\n            column = minColumn;\n        }\n        return new Position(lineNumber, column);\n    }\n    _getViewLineDomNode(node) {\n        while (node && node.nodeType === 1) {\n            if (node.className === ViewLine.CLASS_NAME) {\n                return node;\n            }\n            node = node.parentElement;\n        }\n        return null;\n    }\n    /**\n     * @returns the line number of this view line dom node.\n     */\n    _getLineNumberFor(domNode) {\n        const startLineNumber = this._visibleLines.getStartLineNumber();\n        const endLineNumber = this._visibleLines.getEndLineNumber();\n        for (let lineNumber = startLineNumber; lineNumber <= endLineNumber; lineNumber++) {\n            const line = this._visibleLines.getVisibleLine(lineNumber);\n            if (domNode === line.getDomNode()) {\n                return lineNumber;\n            }\n        }\n        return -1;\n    }\n    getLineWidth(lineNumber) {\n        const rendStartLineNumber = this._visibleLines.getStartLineNumber();\n        const rendEndLineNumber = this._visibleLines.getEndLineNumber();\n        if (lineNumber < rendStartLineNumber || lineNumber > rendEndLineNumber) {\n            // Couldn't find line\n            return -1;\n        }\n        const context = new DomReadingContext(this.domNode.domNode, this._textRangeRestingSpot);\n        const result = this._visibleLines.getVisibleLine(lineNumber).getWidth(context);\n        this._updateLineWidthsSlowIfDomDidLayout(context);\n        return result;\n    }\n    linesVisibleRangesForRange(_range, includeNewLines) {\n        if (this.shouldRender()) {\n            // Cannot read from the DOM because it is dirty\n            // i.e. the model & the dom are out of sync, so I'd be reading something stale\n            return null;\n        }\n        const originalEndLineNumber = _range.endLineNumber;\n        const range = Range.intersectRanges(_range, this._lastRenderedData.getCurrentVisibleRange());\n        if (!range) {\n            return null;\n        }\n        const visibleRanges = [];\n        let visibleRangesLen = 0;\n        const domReadingContext = new DomReadingContext(this.domNode.domNode, this._textRangeRestingSpot);\n        let nextLineModelLineNumber = 0;\n        if (includeNewLines) {\n            nextLineModelLineNumber = this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new Position(range.startLineNumber, 1)).lineNumber;\n        }\n        const rendStartLineNumber = this._visibleLines.getStartLineNumber();\n        const rendEndLineNumber = this._visibleLines.getEndLineNumber();\n        for (let lineNumber = range.startLineNumber; lineNumber <= range.endLineNumber; lineNumber++) {\n            if (lineNumber < rendStartLineNumber || lineNumber > rendEndLineNumber) {\n                continue;\n            }\n            const startColumn = lineNumber === range.startLineNumber ? range.startColumn : 1;\n            const continuesInNextLine = lineNumber !== range.endLineNumber;\n            const endColumn = continuesInNextLine ? this._context.viewModel.getLineMaxColumn(lineNumber) : range.endColumn;\n            const visibleRangesForLine = this._visibleLines.getVisibleLine(lineNumber).getVisibleRangesForRange(lineNumber, startColumn, endColumn, domReadingContext);\n            if (!visibleRangesForLine) {\n                continue;\n            }\n            if (includeNewLines && lineNumber < originalEndLineNumber) {\n                const currentLineModelLineNumber = nextLineModelLineNumber;\n                nextLineModelLineNumber = this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new Position(lineNumber + 1, 1)).lineNumber;\n                if (currentLineModelLineNumber !== nextLineModelLineNumber) {\n                    visibleRangesForLine.ranges[visibleRangesForLine.ranges.length - 1].width += this._typicalHalfwidthCharacterWidth;\n                }\n            }\n            visibleRanges[visibleRangesLen++] = new LineVisibleRanges(visibleRangesForLine.outsideRenderedLine, lineNumber, HorizontalRange.from(visibleRangesForLine.ranges), continuesInNextLine);\n        }\n        this._updateLineWidthsSlowIfDomDidLayout(domReadingContext);\n        if (visibleRangesLen === 0) {\n            return null;\n        }\n        return visibleRanges;\n    }\n    _visibleRangesForLineRange(lineNumber, startColumn, endColumn) {\n        if (this.shouldRender()) {\n            // Cannot read from the DOM because it is dirty\n            // i.e. the model & the dom are out of sync, so I'd be reading something stale\n            return null;\n        }\n        if (lineNumber < this._visibleLines.getStartLineNumber() || lineNumber > this._visibleLines.getEndLineNumber()) {\n            return null;\n        }\n        const domReadingContext = new DomReadingContext(this.domNode.domNode, this._textRangeRestingSpot);\n        const result = this._visibleLines.getVisibleLine(lineNumber).getVisibleRangesForRange(lineNumber, startColumn, endColumn, domReadingContext);\n        this._updateLineWidthsSlowIfDomDidLayout(domReadingContext);\n        return result;\n    }\n    visibleRangeForPosition(position) {\n        const visibleRanges = this._visibleRangesForLineRange(position.lineNumber, position.column, position.column);\n        if (!visibleRanges) {\n            return null;\n        }\n        return new HorizontalPosition(visibleRanges.outsideRenderedLine, visibleRanges.ranges[0].left);\n    }\n    /**\n     * Updates the max line width if it is fast to compute.\n     * Returns true if all lines were taken into account.\n     * Returns false if some lines need to be reevaluated (in a slow fashion).\n     */\n    _updateLineWidthsFast() {\n        return this._updateLineWidths(true);\n    }\n    _updateLineWidthsSlow() {\n        this._updateLineWidths(false);\n    }\n    /**\n     * Update the line widths using DOM layout information after someone else\n     * has caused a synchronous layout.\n     */\n    _updateLineWidthsSlowIfDomDidLayout(domReadingContext) {\n        if (!domReadingContext.didDomLayout) {\n            // only proceed if we just did a layout\n            return;\n        }\n        if (this._asyncUpdateLineWidths.isScheduled()) {\n            // reading widths is not scheduled => widths are up-to-date\n            return;\n        }\n        this._asyncUpdateLineWidths.cancel();\n        this._updateLineWidthsSlow();\n    }\n    _updateLineWidths(fast) {\n        const rendStartLineNumber = this._visibleLines.getStartLineNumber();\n        const rendEndLineNumber = this._visibleLines.getEndLineNumber();\n        let localMaxLineWidth = 1;\n        let allWidthsComputed = true;\n        for (let lineNumber = rendStartLineNumber; lineNumber <= rendEndLineNumber; lineNumber++) {\n            const visibleLine = this._visibleLines.getVisibleLine(lineNumber);\n            if (fast && !visibleLine.getWidthIsFast()) {\n                // Cannot compute width in a fast way for this line\n                allWidthsComputed = false;\n                continue;\n            }\n            localMaxLineWidth = Math.max(localMaxLineWidth, visibleLine.getWidth(null));\n        }\n        if (allWidthsComputed && rendStartLineNumber === 1 && rendEndLineNumber === this._context.viewModel.getLineCount()) {\n            // we know the max line width for all the lines\n            this._maxLineWidth = 0;\n        }\n        this._ensureMaxLineWidth(localMaxLineWidth);\n        return allWidthsComputed;\n    }\n    _checkMonospaceFontAssumptions() {\n        // Problems with monospace assumptions are more apparent for longer lines,\n        // as small rounding errors start to sum up, so we will select the longest\n        // line for a closer inspection\n        let longestLineNumber = -1;\n        let longestWidth = -1;\n        const rendStartLineNumber = this._visibleLines.getStartLineNumber();\n        const rendEndLineNumber = this._visibleLines.getEndLineNumber();\n        for (let lineNumber = rendStartLineNumber; lineNumber <= rendEndLineNumber; lineNumber++) {\n            const visibleLine = this._visibleLines.getVisibleLine(lineNumber);\n            if (visibleLine.needsMonospaceFontCheck()) {\n                const lineWidth = visibleLine.getWidth(null);\n                if (lineWidth > longestWidth) {\n                    longestWidth = lineWidth;\n                    longestLineNumber = lineNumber;\n                }\n            }\n        }\n        if (longestLineNumber === -1) {\n            return;\n        }\n        if (!this._visibleLines.getVisibleLine(longestLineNumber).monospaceAssumptionsAreValid()) {\n            for (let lineNumber = rendStartLineNumber; lineNumber <= rendEndLineNumber; lineNumber++) {\n                const visibleLine = this._visibleLines.getVisibleLine(lineNumber);\n                visibleLine.onMonospaceAssumptionsInvalidated();\n            }\n        }\n    }\n    prepareRender() {\n        throw new Error('Not supported');\n    }\n    render() {\n        throw new Error('Not supported');\n    }\n    renderText(viewportData) {\n        // (1) render lines - ensures lines are in the DOM\n        this._visibleLines.renderLines(viewportData);\n        this._lastRenderedData.setCurrentVisibleRange(viewportData.visibleRange);\n        this.domNode.setWidth(this._context.viewLayout.getScrollWidth());\n        this.domNode.setHeight(Math.min(this._context.viewLayout.getScrollHeight(), 1000000));\n        // (2) compute horizontal scroll position:\n        //  - this must happen after the lines are in the DOM since it might need a line that rendered just now\n        //  - it might change `scrollWidth` and `scrollLeft`\n        if (this._horizontalRevealRequest) {\n            const horizontalRevealRequest = this._horizontalRevealRequest;\n            // Check that we have the line that contains the horizontal range in the viewport\n            if (viewportData.startLineNumber <= horizontalRevealRequest.minLineNumber && horizontalRevealRequest.maxLineNumber <= viewportData.endLineNumber) {\n                this._horizontalRevealRequest = null;\n                // allow `visibleRangesForRange2` to work\n                this.onDidRender();\n                // compute new scroll position\n                const newScrollLeft = this._computeScrollLeftToReveal(horizontalRevealRequest);\n                if (newScrollLeft) {\n                    if (!this._isViewportWrapping) {\n                        // ensure `scrollWidth` is large enough\n                        this._ensureMaxLineWidth(newScrollLeft.maxHorizontalOffset);\n                    }\n                    // set `scrollLeft`\n                    this._context.viewModel.viewLayout.setScrollPosition({\n                        scrollLeft: newScrollLeft.scrollLeft\n                    }, horizontalRevealRequest.scrollType);\n                }\n            }\n        }\n        // Update max line width (not so important, it is just so the horizontal scrollbar doesn't get too small)\n        if (!this._updateLineWidthsFast()) {\n            // Computing the width of some lines would be slow => delay it\n            this._asyncUpdateLineWidths.schedule();\n        }\n        else {\n            this._asyncUpdateLineWidths.cancel();\n        }\n        if (platform.isLinux && !this._asyncCheckMonospaceFontAssumptions.isScheduled()) {\n            const rendStartLineNumber = this._visibleLines.getStartLineNumber();\n            const rendEndLineNumber = this._visibleLines.getEndLineNumber();\n            for (let lineNumber = rendStartLineNumber; lineNumber <= rendEndLineNumber; lineNumber++) {\n                const visibleLine = this._visibleLines.getVisibleLine(lineNumber);\n                if (visibleLine.needsMonospaceFontCheck()) {\n                    this._asyncCheckMonospaceFontAssumptions.schedule();\n                    break;\n                }\n            }\n        }\n        // (3) handle scrolling\n        this._linesContent.setLayerHinting(this._canUseLayerHinting);\n        this._linesContent.setContain('strict');\n        const adjustedScrollTop = this._context.viewLayout.getCurrentScrollTop() - viewportData.bigNumbersDelta;\n        this._linesContent.setTop(-adjustedScrollTop);\n        this._linesContent.setLeft(-this._context.viewLayout.getCurrentScrollLeft());\n    }\n    // --- width\n    _ensureMaxLineWidth(lineWidth) {\n        const iLineWidth = Math.ceil(lineWidth);\n        if (this._maxLineWidth < iLineWidth) {\n            this._maxLineWidth = iLineWidth;\n            this._context.viewModel.viewLayout.setMaxLineWidth(this._maxLineWidth);\n        }\n    }\n    _computeScrollTopToRevealRange(viewport, source, minimalReveal, range, selections, verticalType) {\n        const viewportStartY = viewport.top;\n        const viewportHeight = viewport.height;\n        const viewportEndY = viewportStartY + viewportHeight;\n        let boxIsSingleRange;\n        let boxStartY;\n        let boxEndY;\n        if (selections && selections.length > 0) {\n            let minLineNumber = selections[0].startLineNumber;\n            let maxLineNumber = selections[0].endLineNumber;\n            for (let i = 1, len = selections.length; i < len; i++) {\n                const selection = selections[i];\n                minLineNumber = Math.min(minLineNumber, selection.startLineNumber);\n                maxLineNumber = Math.max(maxLineNumber, selection.endLineNumber);\n            }\n            boxIsSingleRange = false;\n            boxStartY = this._context.viewLayout.getVerticalOffsetForLineNumber(minLineNumber);\n            boxEndY = this._context.viewLayout.getVerticalOffsetForLineNumber(maxLineNumber) + this._lineHeight;\n        }\n        else if (range) {\n            boxIsSingleRange = true;\n            boxStartY = this._context.viewLayout.getVerticalOffsetForLineNumber(range.startLineNumber);\n            boxEndY = this._context.viewLayout.getVerticalOffsetForLineNumber(range.endLineNumber) + this._lineHeight;\n        }\n        else {\n            return -1;\n        }\n        const shouldIgnoreScrollOff = (source === 'mouse' || minimalReveal) && this._cursorSurroundingLinesStyle === 'default';\n        let paddingTop = 0;\n        let paddingBottom = 0;\n        if (!shouldIgnoreScrollOff) {\n            const context = Math.min((viewportHeight / this._lineHeight) / 2, this._cursorSurroundingLines);\n            if (this._stickyScrollEnabled) {\n                paddingTop = Math.max(context, this._maxNumberStickyLines) * this._lineHeight;\n            }\n            else {\n                paddingTop = context * this._lineHeight;\n            }\n            paddingBottom = Math.max(0, (context - 1)) * this._lineHeight;\n        }\n        else {\n            if (!minimalReveal) {\n                // Reveal one more line above (this case is hit when dragging)\n                paddingTop = this._lineHeight;\n            }\n        }\n        if (!minimalReveal) {\n            if (verticalType === 0 /* viewEvents.VerticalRevealType.Simple */ || verticalType === 4 /* viewEvents.VerticalRevealType.Bottom */) {\n                // Reveal one line more when the last line would be covered by the scrollbar - arrow down case or revealing a line explicitly at bottom\n                paddingBottom += this._lineHeight;\n            }\n        }\n        boxStartY -= paddingTop;\n        boxEndY += paddingBottom;\n        let newScrollTop;\n        if (boxEndY - boxStartY > viewportHeight) {\n            // the box is larger than the viewport ... scroll to its top\n            if (!boxIsSingleRange) {\n                // do not reveal multiple cursors if there are more than fit the viewport\n                return -1;\n            }\n            newScrollTop = boxStartY;\n        }\n        else if (verticalType === 5 /* viewEvents.VerticalRevealType.NearTop */ || verticalType === 6 /* viewEvents.VerticalRevealType.NearTopIfOutsideViewport */) {\n            if (verticalType === 6 /* viewEvents.VerticalRevealType.NearTopIfOutsideViewport */ && viewportStartY <= boxStartY && boxEndY <= viewportEndY) {\n                // Box is already in the viewport... do nothing\n                newScrollTop = viewportStartY;\n            }\n            else {\n                // We want a gap that is 20% of the viewport, but with a minimum of 5 lines\n                const desiredGapAbove = Math.max(5 * this._lineHeight, viewportHeight * 0.2);\n                // Try to scroll just above the box with the desired gap\n                const desiredScrollTop = boxStartY - desiredGapAbove;\n                // But ensure that the box is not pushed out of viewport\n                const minScrollTop = boxEndY - viewportHeight;\n                newScrollTop = Math.max(minScrollTop, desiredScrollTop);\n            }\n        }\n        else if (verticalType === 1 /* viewEvents.VerticalRevealType.Center */ || verticalType === 2 /* viewEvents.VerticalRevealType.CenterIfOutsideViewport */) {\n            if (verticalType === 2 /* viewEvents.VerticalRevealType.CenterIfOutsideViewport */ && viewportStartY <= boxStartY && boxEndY <= viewportEndY) {\n                // Box is already in the viewport... do nothing\n                newScrollTop = viewportStartY;\n            }\n            else {\n                // Box is outside the viewport... center it\n                const boxMiddleY = (boxStartY + boxEndY) / 2;\n                newScrollTop = Math.max(0, boxMiddleY - viewportHeight / 2);\n            }\n        }\n        else {\n            newScrollTop = this._computeMinimumScrolling(viewportStartY, viewportEndY, boxStartY, boxEndY, verticalType === 3 /* viewEvents.VerticalRevealType.Top */, verticalType === 4 /* viewEvents.VerticalRevealType.Bottom */);\n        }\n        return newScrollTop;\n    }\n    _computeScrollLeftToReveal(horizontalRevealRequest) {\n        const viewport = this._context.viewLayout.getCurrentViewport();\n        const layoutInfo = this._context.configuration.options.get(145 /* EditorOption.layoutInfo */);\n        const viewportStartX = viewport.left;\n        const viewportEndX = viewportStartX + viewport.width - layoutInfo.verticalScrollbarWidth;\n        let boxStartX = 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */;\n        let boxEndX = 0;\n        if (horizontalRevealRequest.type === 'range') {\n            const visibleRanges = this._visibleRangesForLineRange(horizontalRevealRequest.lineNumber, horizontalRevealRequest.startColumn, horizontalRevealRequest.endColumn);\n            if (!visibleRanges) {\n                return null;\n            }\n            for (const visibleRange of visibleRanges.ranges) {\n                boxStartX = Math.min(boxStartX, Math.round(visibleRange.left));\n                boxEndX = Math.max(boxEndX, Math.round(visibleRange.left + visibleRange.width));\n            }\n        }\n        else {\n            for (const selection of horizontalRevealRequest.selections) {\n                if (selection.startLineNumber !== selection.endLineNumber) {\n                    return null;\n                }\n                const visibleRanges = this._visibleRangesForLineRange(selection.startLineNumber, selection.startColumn, selection.endColumn);\n                if (!visibleRanges) {\n                    return null;\n                }\n                for (const visibleRange of visibleRanges.ranges) {\n                    boxStartX = Math.min(boxStartX, Math.round(visibleRange.left));\n                    boxEndX = Math.max(boxEndX, Math.round(visibleRange.left + visibleRange.width));\n                }\n            }\n        }\n        if (!horizontalRevealRequest.minimalReveal) {\n            boxStartX = Math.max(0, boxStartX - ViewLines.HORIZONTAL_EXTRA_PX);\n            boxEndX += this._revealHorizontalRightPadding;\n        }\n        if (horizontalRevealRequest.type === 'selections' && boxEndX - boxStartX > viewport.width) {\n            return null;\n        }\n        const newScrollLeft = this._computeMinimumScrolling(viewportStartX, viewportEndX, boxStartX, boxEndX);\n        return {\n            scrollLeft: newScrollLeft,\n            maxHorizontalOffset: boxEndX\n        };\n    }\n    _computeMinimumScrolling(viewportStart, viewportEnd, boxStart, boxEnd, revealAtStart, revealAtEnd) {\n        viewportStart = viewportStart | 0;\n        viewportEnd = viewportEnd | 0;\n        boxStart = boxStart | 0;\n        boxEnd = boxEnd | 0;\n        revealAtStart = !!revealAtStart;\n        revealAtEnd = !!revealAtEnd;\n        const viewportLength = viewportEnd - viewportStart;\n        const boxLength = boxEnd - boxStart;\n        if (boxLength < viewportLength) {\n            // The box would fit in the viewport\n            if (revealAtStart) {\n                return boxStart;\n            }\n            if (revealAtEnd) {\n                return Math.max(0, boxEnd - viewportLength);\n            }\n            if (boxStart < viewportStart) {\n                // The box is above the viewport\n                return boxStart;\n            }\n            else if (boxEnd > viewportEnd) {\n                // The box is below the viewport\n                return Math.max(0, boxEnd - viewportLength);\n            }\n        }\n        else {\n            // The box would not fit in the viewport\n            // Reveal the beginning of the box\n            return boxStart;\n        }\n        return viewportStart;\n    }\n}\n/**\n * Adds this amount of pixels to the right of lines (no-one wants to type near the edge of the viewport)\n */\nViewLines.HORIZONTAL_EXTRA_PX = 30;\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/linesDecorations/linesDecorations.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n.monaco-editor .lines-decorations {\n\tposition: absolute;\n\ttop: 0;\n\tbackground: white;\n}\n\n/*\n\tKeeping name short for faster parsing.\n\tcldr = core lines decorations rendering (div)\n*/\n.monaco-editor .margin-view-overlays .cldr {\n\tposition: absolute;\n\theight: 100%;\n}"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/linesDecorations/linesDecorations.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './linesDecorations.css';\nimport { DecorationToRender, DedupOverlay } from '../glyphMargin/glyphMargin.js';\nexport class LinesDecorationsOverlay extends DedupOverlay {\n    constructor(context) {\n        super();\n        this._context = context;\n        const options = this._context.configuration.options;\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        this._decorationsLeft = layoutInfo.decorationsLeft;\n        this._decorationsWidth = layoutInfo.decorationsWidth;\n        this._renderResult = null;\n        this._context.addEventHandler(this);\n    }\n    dispose() {\n        this._context.removeEventHandler(this);\n        this._renderResult = null;\n        super.dispose();\n    }\n    // --- begin event handlers\n    onConfigurationChanged(e) {\n        const options = this._context.configuration.options;\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        this._decorationsLeft = layoutInfo.decorationsLeft;\n        this._decorationsWidth = layoutInfo.decorationsWidth;\n        return true;\n    }\n    onDecorationsChanged(e) {\n        return true;\n    }\n    onFlushed(e) {\n        return true;\n    }\n    onLinesChanged(e) {\n        return true;\n    }\n    onLinesDeleted(e) {\n        return true;\n    }\n    onLinesInserted(e) {\n        return true;\n    }\n    onScrollChanged(e) {\n        return e.scrollTopChanged;\n    }\n    onZonesChanged(e) {\n        return true;\n    }\n    // --- end event handlers\n    _getDecorations(ctx) {\n        var _a, _b;\n        const decorations = ctx.getDecorationsInViewport();\n        const r = [];\n        let rLen = 0;\n        for (let i = 0, len = decorations.length; i < len; i++) {\n            const d = decorations[i];\n            const linesDecorationsClassName = d.options.linesDecorationsClassName;\n            const zIndex = d.options.zIndex;\n            if (linesDecorationsClassName) {\n                r[rLen++] = new DecorationToRender(d.range.startLineNumber, d.range.endLineNumber, linesDecorationsClassName, (_a = d.options.linesDecorationsTooltip) !== null && _a !== void 0 ? _a : null, zIndex);\n            }\n            const firstLineDecorationClassName = d.options.firstLineDecorationClassName;\n            if (firstLineDecorationClassName) {\n                r[rLen++] = new DecorationToRender(d.range.startLineNumber, d.range.startLineNumber, firstLineDecorationClassName, (_b = d.options.linesDecorationsTooltip) !== null && _b !== void 0 ? _b : null, zIndex);\n            }\n        }\n        return r;\n    }\n    prepareRender(ctx) {\n        const visibleStartLineNumber = ctx.visibleRange.startLineNumber;\n        const visibleEndLineNumber = ctx.visibleRange.endLineNumber;\n        const toRender = this._render(visibleStartLineNumber, visibleEndLineNumber, this._getDecorations(ctx));\n        const left = this._decorationsLeft.toString();\n        const width = this._decorationsWidth.toString();\n        const common = '\" style=\"left:' + left + 'px;width:' + width + 'px;\"></div>';\n        const output = [];\n        for (let lineNumber = visibleStartLineNumber; lineNumber <= visibleEndLineNumber; lineNumber++) {\n            const lineIndex = lineNumber - visibleStartLineNumber;\n            const decorations = toRender[lineIndex].getDecorations();\n            let lineOutput = '';\n            for (const decoration of decorations) {\n                let addition = '<div class=\"cldr ' + decoration.className;\n                if (decoration.tooltip !== null) {\n                    addition += '\" title=\"' + decoration.tooltip; // The tooltip is already escaped.\n                }\n                addition += common;\n                lineOutput += addition;\n            }\n            output[lineIndex] = lineOutput;\n        }\n        this._renderResult = output;\n    }\n    render(startLineNumber, lineNumber) {\n        if (!this._renderResult) {\n            return '';\n        }\n        return this._renderResult[lineNumber - startLineNumber];\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/margin/margin.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .margin {\n\tbackground-color: var(--vscode-editorGutter-background);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/margin/margin.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './margin.css';\nimport { createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport { ViewPart } from '../../view/viewPart.js';\nexport class Margin extends ViewPart {\n    constructor(context) {\n        super(context);\n        const options = this._context.configuration.options;\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        this._canUseLayerHinting = !options.get(32 /* EditorOption.disableLayerHinting */);\n        this._contentLeft = layoutInfo.contentLeft;\n        this._glyphMarginLeft = layoutInfo.glyphMarginLeft;\n        this._glyphMarginWidth = layoutInfo.glyphMarginWidth;\n        this._domNode = createFastDomNode(document.createElement('div'));\n        this._domNode.setClassName(Margin.OUTER_CLASS_NAME);\n        this._domNode.setPosition('absolute');\n        this._domNode.setAttribute('role', 'presentation');\n        this._domNode.setAttribute('aria-hidden', 'true');\n        this._glyphMarginBackgroundDomNode = createFastDomNode(document.createElement('div'));\n        this._glyphMarginBackgroundDomNode.setClassName(Margin.CLASS_NAME);\n        this._domNode.appendChild(this._glyphMarginBackgroundDomNode);\n    }\n    dispose() {\n        super.dispose();\n    }\n    getDomNode() {\n        return this._domNode;\n    }\n    // --- begin event handlers\n    onConfigurationChanged(e) {\n        const options = this._context.configuration.options;\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        this._canUseLayerHinting = !options.get(32 /* EditorOption.disableLayerHinting */);\n        this._contentLeft = layoutInfo.contentLeft;\n        this._glyphMarginLeft = layoutInfo.glyphMarginLeft;\n        this._glyphMarginWidth = layoutInfo.glyphMarginWidth;\n        return true;\n    }\n    onScrollChanged(e) {\n        return super.onScrollChanged(e) || e.scrollTopChanged;\n    }\n    // --- end event handlers\n    prepareRender(ctx) {\n        // Nothing to read\n    }\n    render(ctx) {\n        this._domNode.setLayerHinting(this._canUseLayerHinting);\n        this._domNode.setContain('strict');\n        const adjustedScrollTop = ctx.scrollTop - ctx.bigNumbersDelta;\n        this._domNode.setTop(-adjustedScrollTop);\n        const height = Math.min(ctx.scrollHeight, 1000000);\n        this._domNode.setHeight(height);\n        this._domNode.setWidth(this._contentLeft);\n        this._glyphMarginBackgroundDomNode.setLeft(this._glyphMarginLeft);\n        this._glyphMarginBackgroundDomNode.setWidth(this._glyphMarginWidth);\n        this._glyphMarginBackgroundDomNode.setHeight(height);\n    }\n}\nMargin.CLASS_NAME = 'glyph-margin';\nMargin.OUTER_CLASS_NAME = 'margin';\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/marginDecorations/marginDecorations.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n/*\n\tKeeping name short for faster parsing.\n\tcmdr = core margin decorations rendering (div)\n*/\n.monaco-editor .margin-view-overlays .cmdr {\n\tposition: absolute;\n\tleft: 0;\n\twidth: 100%;\n\theight: 100%;\n}"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/marginDecorations/marginDecorations.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './marginDecorations.css';\nimport { DecorationToRender, DedupOverlay } from '../glyphMargin/glyphMargin.js';\nexport class MarginViewLineDecorationsOverlay extends DedupOverlay {\n    constructor(context) {\n        super();\n        this._context = context;\n        this._renderResult = null;\n        this._context.addEventHandler(this);\n    }\n    dispose() {\n        this._context.removeEventHandler(this);\n        this._renderResult = null;\n        super.dispose();\n    }\n    // --- begin event handlers\n    onConfigurationChanged(e) {\n        return true;\n    }\n    onDecorationsChanged(e) {\n        return true;\n    }\n    onFlushed(e) {\n        return true;\n    }\n    onLinesChanged(e) {\n        return true;\n    }\n    onLinesDeleted(e) {\n        return true;\n    }\n    onLinesInserted(e) {\n        return true;\n    }\n    onScrollChanged(e) {\n        return e.scrollTopChanged;\n    }\n    onZonesChanged(e) {\n        return true;\n    }\n    // --- end event handlers\n    _getDecorations(ctx) {\n        const decorations = ctx.getDecorationsInViewport();\n        const r = [];\n        let rLen = 0;\n        for (let i = 0, len = decorations.length; i < len; i++) {\n            const d = decorations[i];\n            const marginClassName = d.options.marginClassName;\n            const zIndex = d.options.zIndex;\n            if (marginClassName) {\n                r[rLen++] = new DecorationToRender(d.range.startLineNumber, d.range.endLineNumber, marginClassName, null, zIndex);\n            }\n        }\n        return r;\n    }\n    prepareRender(ctx) {\n        const visibleStartLineNumber = ctx.visibleRange.startLineNumber;\n        const visibleEndLineNumber = ctx.visibleRange.endLineNumber;\n        const toRender = this._render(visibleStartLineNumber, visibleEndLineNumber, this._getDecorations(ctx));\n        const output = [];\n        for (let lineNumber = visibleStartLineNumber; lineNumber <= visibleEndLineNumber; lineNumber++) {\n            const lineIndex = lineNumber - visibleStartLineNumber;\n            const decorations = toRender[lineIndex].getDecorations();\n            let lineOutput = '';\n            for (const decoration of decorations) {\n                lineOutput += '<div class=\"cmdr ' + decoration.className + '\" style=\"\"></div>';\n            }\n            output[lineIndex] = lineOutput;\n        }\n        this._renderResult = output;\n    }\n    render(startLineNumber, lineNumber) {\n        if (!this._renderResult) {\n            return '';\n        }\n        return this._renderResult[lineNumber - startLineNumber];\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/minimap/minimap.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n/* START cover the case that slider is visible on mouseover */\n.monaco-editor .minimap.slider-mouseover .minimap-slider {\n\topacity: 0;\n\ttransition: opacity 100ms linear;\n}\n.monaco-editor .minimap.slider-mouseover:hover .minimap-slider {\n\topacity: 1;\n}\n.monaco-editor .minimap.slider-mouseover .minimap-slider.active {\n\topacity: 1;\n}\n/* END cover the case that slider is visible on mouseover */\n.monaco-editor .minimap-slider .minimap-slider-horizontal {\n\tbackground: var(--vscode-minimapSlider-background);\n}\n.monaco-editor .minimap-slider:hover .minimap-slider-horizontal {\n\tbackground: var(--vscode-minimapSlider-hoverBackground);\n}\n.monaco-editor .minimap-slider.active .minimap-slider-horizontal {\n\tbackground: var(--vscode-minimapSlider-activeBackground);\n}\n.monaco-editor .minimap-shadow-visible {\n\tbox-shadow: var(--vscode-scrollbar-shadow) -6px 0 6px -6px inset;\n}\n.monaco-editor .minimap-shadow-hidden {\n\tposition: absolute;\n\twidth: 0;\n}\n.monaco-editor .minimap-shadow-visible {\n\tposition: absolute;\n\tleft: -6px;\n\twidth: 6px;\n}\n.monaco-editor.no-minimap-shadow .minimap-shadow-visible {\n\tposition: absolute;\n\tleft: -1px;\n\twidth: 1px;\n}\n\n/* 0.5s fade in/out for the minimap */\n.minimap.autohide {\n\topacity: 0;\n\ttransition: opacity 0.5s;\n}\n.minimap.autohide:hover {\n\topacity: 1;\n}\n\n.monaco-editor .minimap {\n\tz-index: 5;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/minimap/minimap.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './minimap.css';\nimport * as dom from '../../../../base/browser/dom.js';\nimport { createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport { GlobalPointerMoveMonitor } from '../../../../base/browser/globalPointerMoveMonitor.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport * as platform from '../../../../base/common/platform.js';\nimport * as strings from '../../../../base/common/strings.js';\nimport { RenderedLinesCollection } from '../../view/viewLayer.js';\nimport { PartFingerprints, ViewPart } from '../../view/viewPart.js';\nimport { MINIMAP_GUTTER_WIDTH, EditorLayoutInfoComputer } from '../../../common/config/editorOptions.js';\nimport { Range } from '../../../common/core/range.js';\nimport { RGBA8 } from '../../../common/core/rgba.js';\nimport { MinimapTokensColorTracker } from '../../../common/viewModel/minimapTokensColorTracker.js';\nimport { ViewModelDecoration } from '../../../common/viewModel.js';\nimport { minimapSelection, minimapBackground, minimapForegroundOpacity, editorForeground } from '../../../../platform/theme/common/colorRegistry.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { EventType, Gesture } from '../../../../base/browser/touch.js';\nimport { MinimapCharRendererFactory } from './minimapCharRendererFactory.js';\nimport { createSingleCallFunction } from '../../../../base/common/functional.js';\nimport { LRUCache } from '../../../../base/common/map.js';\nimport { DEFAULT_FONT_FAMILY } from '../../../../base/browser/fonts.js';\n/**\n * The orthogonal distance to the slider at which dragging \"resets\". This implements \"snapping\"\n */\nconst POINTER_DRAG_RESET_DISTANCE = 140;\nconst GUTTER_DECORATION_WIDTH = 2;\nclass MinimapOptions {\n    constructor(configuration, theme, tokensColorTracker) {\n        const options = configuration.options;\n        const pixelRatio = options.get(143 /* EditorOption.pixelRatio */);\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        const minimapLayout = layoutInfo.minimap;\n        const fontInfo = options.get(50 /* EditorOption.fontInfo */);\n        const minimapOpts = options.get(73 /* EditorOption.minimap */);\n        this.renderMinimap = minimapLayout.renderMinimap;\n        this.size = minimapOpts.size;\n        this.minimapHeightIsEditorHeight = minimapLayout.minimapHeightIsEditorHeight;\n        this.scrollBeyondLastLine = options.get(105 /* EditorOption.scrollBeyondLastLine */);\n        this.paddingTop = options.get(84 /* EditorOption.padding */).top;\n        this.paddingBottom = options.get(84 /* EditorOption.padding */).bottom;\n        this.showSlider = minimapOpts.showSlider;\n        this.autohide = minimapOpts.autohide;\n        this.pixelRatio = pixelRatio;\n        this.typicalHalfwidthCharacterWidth = fontInfo.typicalHalfwidthCharacterWidth;\n        this.lineHeight = options.get(67 /* EditorOption.lineHeight */);\n        this.minimapLeft = minimapLayout.minimapLeft;\n        this.minimapWidth = minimapLayout.minimapWidth;\n        this.minimapHeight = layoutInfo.height;\n        this.canvasInnerWidth = minimapLayout.minimapCanvasInnerWidth;\n        this.canvasInnerHeight = minimapLayout.minimapCanvasInnerHeight;\n        this.canvasOuterWidth = minimapLayout.minimapCanvasOuterWidth;\n        this.canvasOuterHeight = minimapLayout.minimapCanvasOuterHeight;\n        this.isSampling = minimapLayout.minimapIsSampling;\n        this.editorHeight = layoutInfo.height;\n        this.fontScale = minimapLayout.minimapScale;\n        this.minimapLineHeight = minimapLayout.minimapLineHeight;\n        this.minimapCharWidth = 1 /* Constants.BASE_CHAR_WIDTH */ * this.fontScale;\n        this.sectionHeaderFontFamily = DEFAULT_FONT_FAMILY;\n        this.sectionHeaderFontSize = minimapOpts.sectionHeaderFontSize * pixelRatio;\n        this.sectionHeaderLetterSpacing = minimapOpts.sectionHeaderLetterSpacing; // intentionally not multiplying by pixelRatio\n        this.sectionHeaderFontColor = MinimapOptions._getSectionHeaderColor(theme, tokensColorTracker.getColor(1 /* ColorId.DefaultForeground */));\n        this.charRenderer = createSingleCallFunction(() => MinimapCharRendererFactory.create(this.fontScale, fontInfo.fontFamily));\n        this.defaultBackgroundColor = tokensColorTracker.getColor(2 /* ColorId.DefaultBackground */);\n        this.backgroundColor = MinimapOptions._getMinimapBackground(theme, this.defaultBackgroundColor);\n        this.foregroundAlpha = MinimapOptions._getMinimapForegroundOpacity(theme);\n    }\n    static _getMinimapBackground(theme, defaultBackgroundColor) {\n        const themeColor = theme.getColor(minimapBackground);\n        if (themeColor) {\n            return new RGBA8(themeColor.rgba.r, themeColor.rgba.g, themeColor.rgba.b, Math.round(255 * themeColor.rgba.a));\n        }\n        return defaultBackgroundColor;\n    }\n    static _getMinimapForegroundOpacity(theme) {\n        const themeColor = theme.getColor(minimapForegroundOpacity);\n        if (themeColor) {\n            return RGBA8._clamp(Math.round(255 * themeColor.rgba.a));\n        }\n        return 255;\n    }\n    static _getSectionHeaderColor(theme, defaultForegroundColor) {\n        const themeColor = theme.getColor(editorForeground);\n        if (themeColor) {\n            return new RGBA8(themeColor.rgba.r, themeColor.rgba.g, themeColor.rgba.b, Math.round(255 * themeColor.rgba.a));\n        }\n        return defaultForegroundColor;\n    }\n    equals(other) {\n        return (this.renderMinimap === other.renderMinimap\n            && this.size === other.size\n            && this.minimapHeightIsEditorHeight === other.minimapHeightIsEditorHeight\n            && this.scrollBeyondLastLine === other.scrollBeyondLastLine\n            && this.paddingTop === other.paddingTop\n            && this.paddingBottom === other.paddingBottom\n            && this.showSlider === other.showSlider\n            && this.autohide === other.autohide\n            && this.pixelRatio === other.pixelRatio\n            && this.typicalHalfwidthCharacterWidth === other.typicalHalfwidthCharacterWidth\n            && this.lineHeight === other.lineHeight\n            && this.minimapLeft === other.minimapLeft\n            && this.minimapWidth === other.minimapWidth\n            && this.minimapHeight === other.minimapHeight\n            && this.canvasInnerWidth === other.canvasInnerWidth\n            && this.canvasInnerHeight === other.canvasInnerHeight\n            && this.canvasOuterWidth === other.canvasOuterWidth\n            && this.canvasOuterHeight === other.canvasOuterHeight\n            && this.isSampling === other.isSampling\n            && this.editorHeight === other.editorHeight\n            && this.fontScale === other.fontScale\n            && this.minimapLineHeight === other.minimapLineHeight\n            && this.minimapCharWidth === other.minimapCharWidth\n            && this.sectionHeaderFontSize === other.sectionHeaderFontSize\n            && this.sectionHeaderLetterSpacing === other.sectionHeaderLetterSpacing\n            && this.defaultBackgroundColor && this.defaultBackgroundColor.equals(other.defaultBackgroundColor)\n            && this.backgroundColor && this.backgroundColor.equals(other.backgroundColor)\n            && this.foregroundAlpha === other.foregroundAlpha);\n    }\n}\nclass MinimapLayout {\n    constructor(\n    /**\n     * The given editor scrollTop (input).\n     */\n    scrollTop, \n    /**\n     * The given editor scrollHeight (input).\n     */\n    scrollHeight, sliderNeeded, _computedSliderRatio, \n    /**\n     * slider dom node top (in CSS px)\n     */\n    sliderTop, \n    /**\n     * slider dom node height (in CSS px)\n     */\n    sliderHeight, \n    /**\n     * empty lines to reserve at the top of the minimap.\n     */\n    topPaddingLineCount, \n    /**\n     * minimap render start line number.\n     */\n    startLineNumber, \n    /**\n     * minimap render end line number.\n     */\n    endLineNumber) {\n        this.scrollTop = scrollTop;\n        this.scrollHeight = scrollHeight;\n        this.sliderNeeded = sliderNeeded;\n        this._computedSliderRatio = _computedSliderRatio;\n        this.sliderTop = sliderTop;\n        this.sliderHeight = sliderHeight;\n        this.topPaddingLineCount = topPaddingLineCount;\n        this.startLineNumber = startLineNumber;\n        this.endLineNumber = endLineNumber;\n    }\n    /**\n     * Compute a desired `scrollPosition` such that the slider moves by `delta`.\n     */\n    getDesiredScrollTopFromDelta(delta) {\n        return Math.round(this.scrollTop + delta / this._computedSliderRatio);\n    }\n    getDesiredScrollTopFromTouchLocation(pageY) {\n        return Math.round((pageY - this.sliderHeight / 2) / this._computedSliderRatio);\n    }\n    /**\n     * Intersect a line range with `this.startLineNumber` and `this.endLineNumber`.\n     */\n    intersectWithViewport(range) {\n        const startLineNumber = Math.max(this.startLineNumber, range.startLineNumber);\n        const endLineNumber = Math.min(this.endLineNumber, range.endLineNumber);\n        if (startLineNumber > endLineNumber) {\n            // entirely outside minimap's viewport\n            return null;\n        }\n        return [startLineNumber, endLineNumber];\n    }\n    /**\n     * Get the inner minimap y coordinate for a line number.\n     */\n    getYForLineNumber(lineNumber, minimapLineHeight) {\n        return +(lineNumber - this.startLineNumber + this.topPaddingLineCount) * minimapLineHeight;\n    }\n    static create(options, viewportStartLineNumber, viewportEndLineNumber, viewportStartLineNumberVerticalOffset, viewportHeight, viewportContainsWhitespaceGaps, lineCount, realLineCount, scrollTop, scrollHeight, previousLayout) {\n        const pixelRatio = options.pixelRatio;\n        const minimapLineHeight = options.minimapLineHeight;\n        const minimapLinesFitting = Math.floor(options.canvasInnerHeight / minimapLineHeight);\n        const lineHeight = options.lineHeight;\n        if (options.minimapHeightIsEditorHeight) {\n            let logicalScrollHeight = (realLineCount * options.lineHeight\n                + options.paddingTop\n                + options.paddingBottom);\n            if (options.scrollBeyondLastLine) {\n                logicalScrollHeight += Math.max(0, viewportHeight - options.lineHeight - options.paddingBottom);\n            }\n            const sliderHeight = Math.max(1, Math.floor(viewportHeight * viewportHeight / logicalScrollHeight));\n            const maxMinimapSliderTop = Math.max(0, options.minimapHeight - sliderHeight);\n            // The slider can move from 0 to `maxMinimapSliderTop`\n            // in the same way `scrollTop` can move from 0 to `scrollHeight` - `viewportHeight`.\n            const computedSliderRatio = (maxMinimapSliderTop) / (scrollHeight - viewportHeight);\n            const sliderTop = (scrollTop * computedSliderRatio);\n            const sliderNeeded = (maxMinimapSliderTop > 0);\n            const maxLinesFitting = Math.floor(options.canvasInnerHeight / options.minimapLineHeight);\n            const topPaddingLineCount = Math.floor(options.paddingTop / options.lineHeight);\n            return new MinimapLayout(scrollTop, scrollHeight, sliderNeeded, computedSliderRatio, sliderTop, sliderHeight, topPaddingLineCount, 1, Math.min(lineCount, maxLinesFitting));\n        }\n        // The visible line count in a viewport can change due to a number of reasons:\n        //  a) with the same viewport width, different scroll positions can result in partial lines being visible:\n        //    e.g. for a line height of 20, and a viewport height of 600\n        //          * scrollTop = 0  => visible lines are [1, 30]\n        //          * scrollTop = 10 => visible lines are [1, 31] (with lines 1 and 31 partially visible)\n        //          * scrollTop = 20 => visible lines are [2, 31]\n        //  b) whitespace gaps might make their way in the viewport (which results in a decrease in the visible line count)\n        //  c) we could be in the scroll beyond last line case (which also results in a decrease in the visible line count, down to possibly only one line being visible)\n        // We must first establish a desirable slider height.\n        let sliderHeight;\n        if (viewportContainsWhitespaceGaps && viewportEndLineNumber !== lineCount) {\n            // case b) from above: there are whitespace gaps in the viewport.\n            // In this case, the height of the slider directly reflects the visible line count.\n            const viewportLineCount = viewportEndLineNumber - viewportStartLineNumber + 1;\n            sliderHeight = Math.floor(viewportLineCount * minimapLineHeight / pixelRatio);\n        }\n        else {\n            // The slider has a stable height\n            const expectedViewportLineCount = viewportHeight / lineHeight;\n            sliderHeight = Math.floor(expectedViewportLineCount * minimapLineHeight / pixelRatio);\n        }\n        const extraLinesAtTheTop = Math.floor(options.paddingTop / lineHeight);\n        let extraLinesAtTheBottom = Math.floor(options.paddingBottom / lineHeight);\n        if (options.scrollBeyondLastLine) {\n            const expectedViewportLineCount = viewportHeight / lineHeight;\n            extraLinesAtTheBottom = Math.max(extraLinesAtTheBottom, expectedViewportLineCount - 1);\n        }\n        let maxMinimapSliderTop;\n        if (extraLinesAtTheBottom > 0) {\n            const expectedViewportLineCount = viewportHeight / lineHeight;\n            // The minimap slider, when dragged all the way down, will contain the last line at its top\n            maxMinimapSliderTop = (extraLinesAtTheTop + lineCount + extraLinesAtTheBottom - expectedViewportLineCount - 1) * minimapLineHeight / pixelRatio;\n        }\n        else {\n            // The minimap slider, when dragged all the way down, will contain the last line at its bottom\n            maxMinimapSliderTop = Math.max(0, (extraLinesAtTheTop + lineCount) * minimapLineHeight / pixelRatio - sliderHeight);\n        }\n        maxMinimapSliderTop = Math.min(options.minimapHeight - sliderHeight, maxMinimapSliderTop);\n        // The slider can move from 0 to `maxMinimapSliderTop`\n        // in the same way `scrollTop` can move from 0 to `scrollHeight` - `viewportHeight`.\n        const computedSliderRatio = (maxMinimapSliderTop) / (scrollHeight - viewportHeight);\n        const sliderTop = (scrollTop * computedSliderRatio);\n        if (minimapLinesFitting >= extraLinesAtTheTop + lineCount + extraLinesAtTheBottom) {\n            // All lines fit in the minimap\n            const sliderNeeded = (maxMinimapSliderTop > 0);\n            return new MinimapLayout(scrollTop, scrollHeight, sliderNeeded, computedSliderRatio, sliderTop, sliderHeight, extraLinesAtTheTop, 1, lineCount);\n        }\n        else {\n            let consideringStartLineNumber;\n            if (viewportStartLineNumber > 1) {\n                consideringStartLineNumber = viewportStartLineNumber + extraLinesAtTheTop;\n            }\n            else {\n                consideringStartLineNumber = Math.max(1, scrollTop / lineHeight);\n            }\n            let topPaddingLineCount;\n            let startLineNumber = Math.max(1, Math.floor(consideringStartLineNumber - sliderTop * pixelRatio / minimapLineHeight));\n            if (startLineNumber < extraLinesAtTheTop) {\n                topPaddingLineCount = extraLinesAtTheTop - startLineNumber + 1;\n                startLineNumber = 1;\n            }\n            else {\n                topPaddingLineCount = 0;\n                startLineNumber = Math.max(1, startLineNumber - extraLinesAtTheTop);\n            }\n            // Avoid flickering caused by a partial viewport start line\n            // by being consistent w.r.t. the previous layout decision\n            if (previousLayout && previousLayout.scrollHeight === scrollHeight) {\n                if (previousLayout.scrollTop > scrollTop) {\n                    // Scrolling up => never increase `startLineNumber`\n                    startLineNumber = Math.min(startLineNumber, previousLayout.startLineNumber);\n                    topPaddingLineCount = Math.max(topPaddingLineCount, previousLayout.topPaddingLineCount);\n                }\n                if (previousLayout.scrollTop < scrollTop) {\n                    // Scrolling down => never decrease `startLineNumber`\n                    startLineNumber = Math.max(startLineNumber, previousLayout.startLineNumber);\n                    topPaddingLineCount = Math.min(topPaddingLineCount, previousLayout.topPaddingLineCount);\n                }\n            }\n            const endLineNumber = Math.min(lineCount, startLineNumber - topPaddingLineCount + minimapLinesFitting - 1);\n            const partialLine = (scrollTop - viewportStartLineNumberVerticalOffset) / lineHeight;\n            let sliderTopAligned;\n            if (scrollTop >= options.paddingTop) {\n                sliderTopAligned = (viewportStartLineNumber - startLineNumber + topPaddingLineCount + partialLine) * minimapLineHeight / pixelRatio;\n            }\n            else {\n                sliderTopAligned = (scrollTop / options.paddingTop) * (topPaddingLineCount + partialLine) * minimapLineHeight / pixelRatio;\n            }\n            return new MinimapLayout(scrollTop, scrollHeight, true, computedSliderRatio, sliderTopAligned, sliderHeight, topPaddingLineCount, startLineNumber, endLineNumber);\n        }\n    }\n}\nclass MinimapLine {\n    constructor(dy) {\n        this.dy = dy;\n    }\n    onContentChanged() {\n        this.dy = -1;\n    }\n    onTokensChanged() {\n        this.dy = -1;\n    }\n}\nMinimapLine.INVALID = new MinimapLine(-1);\nclass RenderData {\n    constructor(renderedLayout, imageData, lines) {\n        this.renderedLayout = renderedLayout;\n        this._imageData = imageData;\n        this._renderedLines = new RenderedLinesCollection(() => MinimapLine.INVALID);\n        this._renderedLines._set(renderedLayout.startLineNumber, lines);\n    }\n    /**\n     * Check if the current RenderData matches accurately the new desired layout and no painting is needed.\n     */\n    linesEquals(layout) {\n        if (!this.scrollEquals(layout)) {\n            return false;\n        }\n        const tmp = this._renderedLines._get();\n        const lines = tmp.lines;\n        for (let i = 0, len = lines.length; i < len; i++) {\n            if (lines[i].dy === -1) {\n                // This line is invalid\n                return false;\n            }\n        }\n        return true;\n    }\n    /**\n     * Check if the current RenderData matches the new layout's scroll position\n     */\n    scrollEquals(layout) {\n        return this.renderedLayout.startLineNumber === layout.startLineNumber\n            && this.renderedLayout.endLineNumber === layout.endLineNumber;\n    }\n    _get() {\n        const tmp = this._renderedLines._get();\n        return {\n            imageData: this._imageData,\n            rendLineNumberStart: tmp.rendLineNumberStart,\n            lines: tmp.lines\n        };\n    }\n    onLinesChanged(changeFromLineNumber, changeCount) {\n        return this._renderedLines.onLinesChanged(changeFromLineNumber, changeCount);\n    }\n    onLinesDeleted(deleteFromLineNumber, deleteToLineNumber) {\n        this._renderedLines.onLinesDeleted(deleteFromLineNumber, deleteToLineNumber);\n    }\n    onLinesInserted(insertFromLineNumber, insertToLineNumber) {\n        this._renderedLines.onLinesInserted(insertFromLineNumber, insertToLineNumber);\n    }\n    onTokensChanged(ranges) {\n        return this._renderedLines.onTokensChanged(ranges);\n    }\n}\n/**\n * Some sort of double buffering.\n *\n * Keeps two buffers around that will be rotated for painting.\n * Always gives a buffer that is filled with the background color.\n */\nclass MinimapBuffers {\n    constructor(ctx, WIDTH, HEIGHT, background) {\n        this._backgroundFillData = MinimapBuffers._createBackgroundFillData(WIDTH, HEIGHT, background);\n        this._buffers = [\n            ctx.createImageData(WIDTH, HEIGHT),\n            ctx.createImageData(WIDTH, HEIGHT)\n        ];\n        this._lastUsedBuffer = 0;\n    }\n    getBuffer() {\n        // rotate buffers\n        this._lastUsedBuffer = 1 - this._lastUsedBuffer;\n        const result = this._buffers[this._lastUsedBuffer];\n        // fill with background color\n        result.data.set(this._backgroundFillData);\n        return result;\n    }\n    static _createBackgroundFillData(WIDTH, HEIGHT, background) {\n        const backgroundR = background.r;\n        const backgroundG = background.g;\n        const backgroundB = background.b;\n        const backgroundA = background.a;\n        const result = new Uint8ClampedArray(WIDTH * HEIGHT * 4);\n        let offset = 0;\n        for (let i = 0; i < HEIGHT; i++) {\n            for (let j = 0; j < WIDTH; j++) {\n                result[offset] = backgroundR;\n                result[offset + 1] = backgroundG;\n                result[offset + 2] = backgroundB;\n                result[offset + 3] = backgroundA;\n                offset += 4;\n            }\n        }\n        return result;\n    }\n}\nclass MinimapSamplingState {\n    static compute(options, viewLineCount, oldSamplingState) {\n        if (options.renderMinimap === 0 /* RenderMinimap.None */ || !options.isSampling) {\n            return [null, []];\n        }\n        // ratio is intentionally not part of the layout to avoid the layout changing all the time\n        // so we need to recompute it again...\n        const { minimapLineCount } = EditorLayoutInfoComputer.computeContainedMinimapLineCount({\n            viewLineCount: viewLineCount,\n            scrollBeyondLastLine: options.scrollBeyondLastLine,\n            paddingTop: options.paddingTop,\n            paddingBottom: options.paddingBottom,\n            height: options.editorHeight,\n            lineHeight: options.lineHeight,\n            pixelRatio: options.pixelRatio\n        });\n        const ratio = viewLineCount / minimapLineCount;\n        const halfRatio = ratio / 2;\n        if (!oldSamplingState || oldSamplingState.minimapLines.length === 0) {\n            const result = [];\n            result[0] = 1;\n            if (minimapLineCount > 1) {\n                for (let i = 0, lastIndex = minimapLineCount - 1; i < lastIndex; i++) {\n                    result[i] = Math.round(i * ratio + halfRatio);\n                }\n                result[minimapLineCount - 1] = viewLineCount;\n            }\n            return [new MinimapSamplingState(ratio, result), []];\n        }\n        const oldMinimapLines = oldSamplingState.minimapLines;\n        const oldLength = oldMinimapLines.length;\n        const result = [];\n        let oldIndex = 0;\n        let oldDeltaLineCount = 0;\n        let minViewLineNumber = 1;\n        const MAX_EVENT_COUNT = 10; // generate at most 10 events, if there are more than 10 changes, just flush all previous data\n        let events = [];\n        let lastEvent = null;\n        for (let i = 0; i < minimapLineCount; i++) {\n            const fromViewLineNumber = Math.max(minViewLineNumber, Math.round(i * ratio));\n            const toViewLineNumber = Math.max(fromViewLineNumber, Math.round((i + 1) * ratio));\n            while (oldIndex < oldLength && oldMinimapLines[oldIndex] < fromViewLineNumber) {\n                if (events.length < MAX_EVENT_COUNT) {\n                    const oldMinimapLineNumber = oldIndex + 1 + oldDeltaLineCount;\n                    if (lastEvent && lastEvent.type === 'deleted' && lastEvent._oldIndex === oldIndex - 1) {\n                        lastEvent.deleteToLineNumber++;\n                    }\n                    else {\n                        lastEvent = { type: 'deleted', _oldIndex: oldIndex, deleteFromLineNumber: oldMinimapLineNumber, deleteToLineNumber: oldMinimapLineNumber };\n                        events.push(lastEvent);\n                    }\n                    oldDeltaLineCount--;\n                }\n                oldIndex++;\n            }\n            let selectedViewLineNumber;\n            if (oldIndex < oldLength && oldMinimapLines[oldIndex] <= toViewLineNumber) {\n                // reuse the old sampled line\n                selectedViewLineNumber = oldMinimapLines[oldIndex];\n                oldIndex++;\n            }\n            else {\n                if (i === 0) {\n                    selectedViewLineNumber = 1;\n                }\n                else if (i + 1 === minimapLineCount) {\n                    selectedViewLineNumber = viewLineCount;\n                }\n                else {\n                    selectedViewLineNumber = Math.round(i * ratio + halfRatio);\n                }\n                if (events.length < MAX_EVENT_COUNT) {\n                    const oldMinimapLineNumber = oldIndex + 1 + oldDeltaLineCount;\n                    if (lastEvent && lastEvent.type === 'inserted' && lastEvent._i === i - 1) {\n                        lastEvent.insertToLineNumber++;\n                    }\n                    else {\n                        lastEvent = { type: 'inserted', _i: i, insertFromLineNumber: oldMinimapLineNumber, insertToLineNumber: oldMinimapLineNumber };\n                        events.push(lastEvent);\n                    }\n                    oldDeltaLineCount++;\n                }\n            }\n            result[i] = selectedViewLineNumber;\n            minViewLineNumber = selectedViewLineNumber;\n        }\n        if (events.length < MAX_EVENT_COUNT) {\n            while (oldIndex < oldLength) {\n                const oldMinimapLineNumber = oldIndex + 1 + oldDeltaLineCount;\n                if (lastEvent && lastEvent.type === 'deleted' && lastEvent._oldIndex === oldIndex - 1) {\n                    lastEvent.deleteToLineNumber++;\n                }\n                else {\n                    lastEvent = { type: 'deleted', _oldIndex: oldIndex, deleteFromLineNumber: oldMinimapLineNumber, deleteToLineNumber: oldMinimapLineNumber };\n                    events.push(lastEvent);\n                }\n                oldDeltaLineCount--;\n                oldIndex++;\n            }\n        }\n        else {\n            // too many events, just give up\n            events = [{ type: 'flush' }];\n        }\n        return [new MinimapSamplingState(ratio, result), events];\n    }\n    constructor(samplingRatio, minimapLines // a map of 0-based minimap line indexes to 1-based view line numbers\n    ) {\n        this.samplingRatio = samplingRatio;\n        this.minimapLines = minimapLines;\n    }\n    modelLineToMinimapLine(lineNumber) {\n        return Math.min(this.minimapLines.length, Math.max(1, Math.round(lineNumber / this.samplingRatio)));\n    }\n    /**\n     * Will return null if the model line ranges are not intersecting with a sampled model line.\n     */\n    modelLineRangeToMinimapLineRange(fromLineNumber, toLineNumber) {\n        let fromLineIndex = this.modelLineToMinimapLine(fromLineNumber) - 1;\n        while (fromLineIndex > 0 && this.minimapLines[fromLineIndex - 1] >= fromLineNumber) {\n            fromLineIndex--;\n        }\n        let toLineIndex = this.modelLineToMinimapLine(toLineNumber) - 1;\n        while (toLineIndex + 1 < this.minimapLines.length && this.minimapLines[toLineIndex + 1] <= toLineNumber) {\n            toLineIndex++;\n        }\n        if (fromLineIndex === toLineIndex) {\n            const sampledLineNumber = this.minimapLines[fromLineIndex];\n            if (sampledLineNumber < fromLineNumber || sampledLineNumber > toLineNumber) {\n                // This line is not part of the sampled lines ==> nothing to do\n                return null;\n            }\n        }\n        return [fromLineIndex + 1, toLineIndex + 1];\n    }\n    /**\n     * Will always return a range, even if it is not intersecting with a sampled model line.\n     */\n    decorationLineRangeToMinimapLineRange(startLineNumber, endLineNumber) {\n        let minimapLineStart = this.modelLineToMinimapLine(startLineNumber);\n        let minimapLineEnd = this.modelLineToMinimapLine(endLineNumber);\n        if (startLineNumber !== endLineNumber && minimapLineEnd === minimapLineStart) {\n            if (minimapLineEnd === this.minimapLines.length) {\n                if (minimapLineStart > 1) {\n                    minimapLineStart--;\n                }\n            }\n            else {\n                minimapLineEnd++;\n            }\n        }\n        return [minimapLineStart, minimapLineEnd];\n    }\n    onLinesDeleted(e) {\n        // have the mapping be sticky\n        const deletedLineCount = e.toLineNumber - e.fromLineNumber + 1;\n        let changeStartIndex = this.minimapLines.length;\n        let changeEndIndex = 0;\n        for (let i = this.minimapLines.length - 1; i >= 0; i--) {\n            if (this.minimapLines[i] < e.fromLineNumber) {\n                break;\n            }\n            if (this.minimapLines[i] <= e.toLineNumber) {\n                // this line got deleted => move to previous available\n                this.minimapLines[i] = Math.max(1, e.fromLineNumber - 1);\n                changeStartIndex = Math.min(changeStartIndex, i);\n                changeEndIndex = Math.max(changeEndIndex, i);\n            }\n            else {\n                this.minimapLines[i] -= deletedLineCount;\n            }\n        }\n        return [changeStartIndex, changeEndIndex];\n    }\n    onLinesInserted(e) {\n        // have the mapping be sticky\n        const insertedLineCount = e.toLineNumber - e.fromLineNumber + 1;\n        for (let i = this.minimapLines.length - 1; i >= 0; i--) {\n            if (this.minimapLines[i] < e.fromLineNumber) {\n                break;\n            }\n            this.minimapLines[i] += insertedLineCount;\n        }\n    }\n}\nexport class Minimap extends ViewPart {\n    constructor(context) {\n        super(context);\n        this._sectionHeaderCache = new LRUCache(10, 1.5);\n        this.tokensColorTracker = MinimapTokensColorTracker.getInstance();\n        this._selections = [];\n        this._minimapSelections = null;\n        this.options = new MinimapOptions(this._context.configuration, this._context.theme, this.tokensColorTracker);\n        const [samplingState,] = MinimapSamplingState.compute(this.options, this._context.viewModel.getLineCount(), null);\n        this._samplingState = samplingState;\n        this._shouldCheckSampling = false;\n        this._actual = new InnerMinimap(context.theme, this);\n    }\n    dispose() {\n        this._actual.dispose();\n        super.dispose();\n    }\n    getDomNode() {\n        return this._actual.getDomNode();\n    }\n    _onOptionsMaybeChanged() {\n        const opts = new MinimapOptions(this._context.configuration, this._context.theme, this.tokensColorTracker);\n        if (this.options.equals(opts)) {\n            return false;\n        }\n        this.options = opts;\n        this._recreateLineSampling();\n        this._actual.onDidChangeOptions();\n        return true;\n    }\n    // ---- begin view event handlers\n    onConfigurationChanged(e) {\n        return this._onOptionsMaybeChanged();\n    }\n    onCursorStateChanged(e) {\n        this._selections = e.selections;\n        this._minimapSelections = null;\n        return this._actual.onSelectionChanged();\n    }\n    onDecorationsChanged(e) {\n        if (e.affectsMinimap) {\n            return this._actual.onDecorationsChanged();\n        }\n        return false;\n    }\n    onFlushed(e) {\n        if (this._samplingState) {\n            this._shouldCheckSampling = true;\n        }\n        return this._actual.onFlushed();\n    }\n    onLinesChanged(e) {\n        if (this._samplingState) {\n            const minimapLineRange = this._samplingState.modelLineRangeToMinimapLineRange(e.fromLineNumber, e.fromLineNumber + e.count - 1);\n            if (minimapLineRange) {\n                return this._actual.onLinesChanged(minimapLineRange[0], minimapLineRange[1] - minimapLineRange[0] + 1);\n            }\n            else {\n                return false;\n            }\n        }\n        else {\n            return this._actual.onLinesChanged(e.fromLineNumber, e.count);\n        }\n    }\n    onLinesDeleted(e) {\n        if (this._samplingState) {\n            const [changeStartIndex, changeEndIndex] = this._samplingState.onLinesDeleted(e);\n            if (changeStartIndex <= changeEndIndex) {\n                this._actual.onLinesChanged(changeStartIndex + 1, changeEndIndex - changeStartIndex + 1);\n            }\n            this._shouldCheckSampling = true;\n            return true;\n        }\n        else {\n            return this._actual.onLinesDeleted(e.fromLineNumber, e.toLineNumber);\n        }\n    }\n    onLinesInserted(e) {\n        if (this._samplingState) {\n            this._samplingState.onLinesInserted(e);\n            this._shouldCheckSampling = true;\n            return true;\n        }\n        else {\n            return this._actual.onLinesInserted(e.fromLineNumber, e.toLineNumber);\n        }\n    }\n    onScrollChanged(e) {\n        return this._actual.onScrollChanged();\n    }\n    onThemeChanged(e) {\n        this._actual.onThemeChanged();\n        this._onOptionsMaybeChanged();\n        return true;\n    }\n    onTokensChanged(e) {\n        if (this._samplingState) {\n            const ranges = [];\n            for (const range of e.ranges) {\n                const minimapLineRange = this._samplingState.modelLineRangeToMinimapLineRange(range.fromLineNumber, range.toLineNumber);\n                if (minimapLineRange) {\n                    ranges.push({ fromLineNumber: minimapLineRange[0], toLineNumber: minimapLineRange[1] });\n                }\n            }\n            if (ranges.length) {\n                return this._actual.onTokensChanged(ranges);\n            }\n            else {\n                return false;\n            }\n        }\n        else {\n            return this._actual.onTokensChanged(e.ranges);\n        }\n    }\n    onTokensColorsChanged(e) {\n        this._onOptionsMaybeChanged();\n        return this._actual.onTokensColorsChanged();\n    }\n    onZonesChanged(e) {\n        return this._actual.onZonesChanged();\n    }\n    // --- end event handlers\n    prepareRender(ctx) {\n        if (this._shouldCheckSampling) {\n            this._shouldCheckSampling = false;\n            this._recreateLineSampling();\n        }\n    }\n    render(ctx) {\n        let viewportStartLineNumber = ctx.visibleRange.startLineNumber;\n        let viewportEndLineNumber = ctx.visibleRange.endLineNumber;\n        if (this._samplingState) {\n            viewportStartLineNumber = this._samplingState.modelLineToMinimapLine(viewportStartLineNumber);\n            viewportEndLineNumber = this._samplingState.modelLineToMinimapLine(viewportEndLineNumber);\n        }\n        const minimapCtx = {\n            viewportContainsWhitespaceGaps: (ctx.viewportData.whitespaceViewportData.length > 0),\n            scrollWidth: ctx.scrollWidth,\n            scrollHeight: ctx.scrollHeight,\n            viewportStartLineNumber: viewportStartLineNumber,\n            viewportEndLineNumber: viewportEndLineNumber,\n            viewportStartLineNumberVerticalOffset: ctx.getVerticalOffsetForLineNumber(viewportStartLineNumber),\n            scrollTop: ctx.scrollTop,\n            scrollLeft: ctx.scrollLeft,\n            viewportWidth: ctx.viewportWidth,\n            viewportHeight: ctx.viewportHeight,\n        };\n        this._actual.render(minimapCtx);\n    }\n    //#region IMinimapModel\n    _recreateLineSampling() {\n        this._minimapSelections = null;\n        const wasSampling = Boolean(this._samplingState);\n        const [samplingState, events] = MinimapSamplingState.compute(this.options, this._context.viewModel.getLineCount(), this._samplingState);\n        this._samplingState = samplingState;\n        if (wasSampling && this._samplingState) {\n            // was sampling, is sampling\n            for (const event of events) {\n                switch (event.type) {\n                    case 'deleted':\n                        this._actual.onLinesDeleted(event.deleteFromLineNumber, event.deleteToLineNumber);\n                        break;\n                    case 'inserted':\n                        this._actual.onLinesInserted(event.insertFromLineNumber, event.insertToLineNumber);\n                        break;\n                    case 'flush':\n                        this._actual.onFlushed();\n                        break;\n                }\n            }\n        }\n    }\n    getLineCount() {\n        if (this._samplingState) {\n            return this._samplingState.minimapLines.length;\n        }\n        return this._context.viewModel.getLineCount();\n    }\n    getRealLineCount() {\n        return this._context.viewModel.getLineCount();\n    }\n    getLineContent(lineNumber) {\n        if (this._samplingState) {\n            return this._context.viewModel.getLineContent(this._samplingState.minimapLines[lineNumber - 1]);\n        }\n        return this._context.viewModel.getLineContent(lineNumber);\n    }\n    getLineMaxColumn(lineNumber) {\n        if (this._samplingState) {\n            return this._context.viewModel.getLineMaxColumn(this._samplingState.minimapLines[lineNumber - 1]);\n        }\n        return this._context.viewModel.getLineMaxColumn(lineNumber);\n    }\n    getMinimapLinesRenderingData(startLineNumber, endLineNumber, needed) {\n        if (this._samplingState) {\n            const result = [];\n            for (let lineIndex = 0, lineCount = endLineNumber - startLineNumber + 1; lineIndex < lineCount; lineIndex++) {\n                if (needed[lineIndex]) {\n                    result[lineIndex] = this._context.viewModel.getViewLineData(this._samplingState.minimapLines[startLineNumber + lineIndex - 1]);\n                }\n                else {\n                    result[lineIndex] = null;\n                }\n            }\n            return result;\n        }\n        return this._context.viewModel.getMinimapLinesRenderingData(startLineNumber, endLineNumber, needed).data;\n    }\n    getSelections() {\n        if (this._minimapSelections === null) {\n            if (this._samplingState) {\n                this._minimapSelections = [];\n                for (const selection of this._selections) {\n                    const [minimapLineStart, minimapLineEnd] = this._samplingState.decorationLineRangeToMinimapLineRange(selection.startLineNumber, selection.endLineNumber);\n                    this._minimapSelections.push(new Selection(minimapLineStart, selection.startColumn, minimapLineEnd, selection.endColumn));\n                }\n            }\n            else {\n                this._minimapSelections = this._selections;\n            }\n        }\n        return this._minimapSelections;\n    }\n    getMinimapDecorationsInViewport(startLineNumber, endLineNumber) {\n        const decorations = this._getMinimapDecorationsInViewport(startLineNumber, endLineNumber)\n            .filter(decoration => { var _a; return !((_a = decoration.options.minimap) === null || _a === void 0 ? void 0 : _a.sectionHeaderStyle); });\n        if (this._samplingState) {\n            const result = [];\n            for (const decoration of decorations) {\n                if (!decoration.options.minimap) {\n                    continue;\n                }\n                const range = decoration.range;\n                const minimapStartLineNumber = this._samplingState.modelLineToMinimapLine(range.startLineNumber);\n                const minimapEndLineNumber = this._samplingState.modelLineToMinimapLine(range.endLineNumber);\n                result.push(new ViewModelDecoration(new Range(minimapStartLineNumber, range.startColumn, minimapEndLineNumber, range.endColumn), decoration.options));\n            }\n            return result;\n        }\n        return decorations;\n    }\n    getSectionHeaderDecorationsInViewport(startLineNumber, endLineNumber) {\n        const minimapLineHeight = this.options.minimapLineHeight;\n        const sectionHeaderFontSize = this.options.sectionHeaderFontSize;\n        const headerHeightInMinimapLines = sectionHeaderFontSize / minimapLineHeight;\n        startLineNumber = Math.floor(Math.max(1, startLineNumber - headerHeightInMinimapLines));\n        return this._getMinimapDecorationsInViewport(startLineNumber, endLineNumber)\n            .filter(decoration => { var _a; return !!((_a = decoration.options.minimap) === null || _a === void 0 ? void 0 : _a.sectionHeaderStyle); });\n    }\n    _getMinimapDecorationsInViewport(startLineNumber, endLineNumber) {\n        let visibleRange;\n        if (this._samplingState) {\n            const modelStartLineNumber = this._samplingState.minimapLines[startLineNumber - 1];\n            const modelEndLineNumber = this._samplingState.minimapLines[endLineNumber - 1];\n            visibleRange = new Range(modelStartLineNumber, 1, modelEndLineNumber, this._context.viewModel.getLineMaxColumn(modelEndLineNumber));\n        }\n        else {\n            visibleRange = new Range(startLineNumber, 1, endLineNumber, this._context.viewModel.getLineMaxColumn(endLineNumber));\n        }\n        return this._context.viewModel.getMinimapDecorationsInRange(visibleRange);\n    }\n    getSectionHeaderText(decoration, fitWidth) {\n        var _a;\n        const headerText = (_a = decoration.options.minimap) === null || _a === void 0 ? void 0 : _a.sectionHeaderText;\n        if (!headerText) {\n            return null;\n        }\n        const cachedText = this._sectionHeaderCache.get(headerText);\n        if (cachedText) {\n            return cachedText;\n        }\n        const fittedText = fitWidth(headerText);\n        this._sectionHeaderCache.set(headerText, fittedText);\n        return fittedText;\n    }\n    getOptions() {\n        return this._context.viewModel.model.getOptions();\n    }\n    revealLineNumber(lineNumber) {\n        if (this._samplingState) {\n            lineNumber = this._samplingState.minimapLines[lineNumber - 1];\n        }\n        this._context.viewModel.revealRange('mouse', false, new Range(lineNumber, 1, lineNumber, 1), 1 /* viewEvents.VerticalRevealType.Center */, 0 /* ScrollType.Smooth */);\n    }\n    setScrollTop(scrollTop) {\n        this._context.viewModel.viewLayout.setScrollPosition({\n            scrollTop: scrollTop\n        }, 1 /* ScrollType.Immediate */);\n    }\n}\nclass InnerMinimap extends Disposable {\n    constructor(theme, model) {\n        super();\n        this._renderDecorations = false;\n        this._gestureInProgress = false;\n        this._theme = theme;\n        this._model = model;\n        this._lastRenderData = null;\n        this._buffers = null;\n        this._selectionColor = this._theme.getColor(minimapSelection);\n        this._domNode = createFastDomNode(document.createElement('div'));\n        PartFingerprints.write(this._domNode, 9 /* PartFingerprint.Minimap */);\n        this._domNode.setClassName(this._getMinimapDomNodeClassName());\n        this._domNode.setPosition('absolute');\n        this._domNode.setAttribute('role', 'presentation');\n        this._domNode.setAttribute('aria-hidden', 'true');\n        this._shadow = createFastDomNode(document.createElement('div'));\n        this._shadow.setClassName('minimap-shadow-hidden');\n        this._domNode.appendChild(this._shadow);\n        this._canvas = createFastDomNode(document.createElement('canvas'));\n        this._canvas.setPosition('absolute');\n        this._canvas.setLeft(0);\n        this._domNode.appendChild(this._canvas);\n        this._decorationsCanvas = createFastDomNode(document.createElement('canvas'));\n        this._decorationsCanvas.setPosition('absolute');\n        this._decorationsCanvas.setClassName('minimap-decorations-layer');\n        this._decorationsCanvas.setLeft(0);\n        this._domNode.appendChild(this._decorationsCanvas);\n        this._slider = createFastDomNode(document.createElement('div'));\n        this._slider.setPosition('absolute');\n        this._slider.setClassName('minimap-slider');\n        this._slider.setLayerHinting(true);\n        this._slider.setContain('strict');\n        this._domNode.appendChild(this._slider);\n        this._sliderHorizontal = createFastDomNode(document.createElement('div'));\n        this._sliderHorizontal.setPosition('absolute');\n        this._sliderHorizontal.setClassName('minimap-slider-horizontal');\n        this._slider.appendChild(this._sliderHorizontal);\n        this._applyLayout();\n        this._pointerDownListener = dom.addStandardDisposableListener(this._domNode.domNode, dom.EventType.POINTER_DOWN, (e) => {\n            e.preventDefault();\n            const renderMinimap = this._model.options.renderMinimap;\n            if (renderMinimap === 0 /* RenderMinimap.None */) {\n                return;\n            }\n            if (!this._lastRenderData) {\n                return;\n            }\n            if (this._model.options.size !== 'proportional') {\n                if (e.button === 0 && this._lastRenderData) {\n                    // pretend the click occurred in the center of the slider\n                    const position = dom.getDomNodePagePosition(this._slider.domNode);\n                    const initialPosY = position.top + position.height / 2;\n                    this._startSliderDragging(e, initialPosY, this._lastRenderData.renderedLayout);\n                }\n                return;\n            }\n            const minimapLineHeight = this._model.options.minimapLineHeight;\n            const internalOffsetY = (this._model.options.canvasInnerHeight / this._model.options.canvasOuterHeight) * e.offsetY;\n            const lineIndex = Math.floor(internalOffsetY / minimapLineHeight);\n            let lineNumber = lineIndex + this._lastRenderData.renderedLayout.startLineNumber - this._lastRenderData.renderedLayout.topPaddingLineCount;\n            lineNumber = Math.min(lineNumber, this._model.getLineCount());\n            this._model.revealLineNumber(lineNumber);\n        });\n        this._sliderPointerMoveMonitor = new GlobalPointerMoveMonitor();\n        this._sliderPointerDownListener = dom.addStandardDisposableListener(this._slider.domNode, dom.EventType.POINTER_DOWN, (e) => {\n            e.preventDefault();\n            e.stopPropagation();\n            if (e.button === 0 && this._lastRenderData) {\n                this._startSliderDragging(e, e.pageY, this._lastRenderData.renderedLayout);\n            }\n        });\n        this._gestureDisposable = Gesture.addTarget(this._domNode.domNode);\n        this._sliderTouchStartListener = dom.addDisposableListener(this._domNode.domNode, EventType.Start, (e) => {\n            e.preventDefault();\n            e.stopPropagation();\n            if (this._lastRenderData) {\n                this._slider.toggleClassName('active', true);\n                this._gestureInProgress = true;\n                this.scrollDueToTouchEvent(e);\n            }\n        }, { passive: false });\n        this._sliderTouchMoveListener = dom.addDisposableListener(this._domNode.domNode, EventType.Change, (e) => {\n            e.preventDefault();\n            e.stopPropagation();\n            if (this._lastRenderData && this._gestureInProgress) {\n                this.scrollDueToTouchEvent(e);\n            }\n        }, { passive: false });\n        this._sliderTouchEndListener = dom.addStandardDisposableListener(this._domNode.domNode, EventType.End, (e) => {\n            e.preventDefault();\n            e.stopPropagation();\n            this._gestureInProgress = false;\n            this._slider.toggleClassName('active', false);\n        });\n    }\n    _startSliderDragging(e, initialPosY, initialSliderState) {\n        if (!e.target || !(e.target instanceof Element)) {\n            return;\n        }\n        const initialPosX = e.pageX;\n        this._slider.toggleClassName('active', true);\n        const handlePointerMove = (posy, posx) => {\n            const minimapPosition = dom.getDomNodePagePosition(this._domNode.domNode);\n            const pointerOrthogonalDelta = Math.min(Math.abs(posx - initialPosX), Math.abs(posx - minimapPosition.left), Math.abs(posx - minimapPosition.left - minimapPosition.width));\n            if (platform.isWindows && pointerOrthogonalDelta > POINTER_DRAG_RESET_DISTANCE) {\n                // The pointer has wondered away from the scrollbar => reset dragging\n                this._model.setScrollTop(initialSliderState.scrollTop);\n                return;\n            }\n            const pointerDelta = posy - initialPosY;\n            this._model.setScrollTop(initialSliderState.getDesiredScrollTopFromDelta(pointerDelta));\n        };\n        if (e.pageY !== initialPosY) {\n            handlePointerMove(e.pageY, initialPosX);\n        }\n        this._sliderPointerMoveMonitor.startMonitoring(e.target, e.pointerId, e.buttons, pointerMoveData => handlePointerMove(pointerMoveData.pageY, pointerMoveData.pageX), () => {\n            this._slider.toggleClassName('active', false);\n        });\n    }\n    scrollDueToTouchEvent(touch) {\n        const startY = this._domNode.domNode.getBoundingClientRect().top;\n        const scrollTop = this._lastRenderData.renderedLayout.getDesiredScrollTopFromTouchLocation(touch.pageY - startY);\n        this._model.setScrollTop(scrollTop);\n    }\n    dispose() {\n        this._pointerDownListener.dispose();\n        this._sliderPointerMoveMonitor.dispose();\n        this._sliderPointerDownListener.dispose();\n        this._gestureDisposable.dispose();\n        this._sliderTouchStartListener.dispose();\n        this._sliderTouchMoveListener.dispose();\n        this._sliderTouchEndListener.dispose();\n        super.dispose();\n    }\n    _getMinimapDomNodeClassName() {\n        const class_ = ['minimap'];\n        if (this._model.options.showSlider === 'always') {\n            class_.push('slider-always');\n        }\n        else {\n            class_.push('slider-mouseover');\n        }\n        if (this._model.options.autohide) {\n            class_.push('autohide');\n        }\n        return class_.join(' ');\n    }\n    getDomNode() {\n        return this._domNode;\n    }\n    _applyLayout() {\n        this._domNode.setLeft(this._model.options.minimapLeft);\n        this._domNode.setWidth(this._model.options.minimapWidth);\n        this._domNode.setHeight(this._model.options.minimapHeight);\n        this._shadow.setHeight(this._model.options.minimapHeight);\n        this._canvas.setWidth(this._model.options.canvasOuterWidth);\n        this._canvas.setHeight(this._model.options.canvasOuterHeight);\n        this._canvas.domNode.width = this._model.options.canvasInnerWidth;\n        this._canvas.domNode.height = this._model.options.canvasInnerHeight;\n        this._decorationsCanvas.setWidth(this._model.options.canvasOuterWidth);\n        this._decorationsCanvas.setHeight(this._model.options.canvasOuterHeight);\n        this._decorationsCanvas.domNode.width = this._model.options.canvasInnerWidth;\n        this._decorationsCanvas.domNode.height = this._model.options.canvasInnerHeight;\n        this._slider.setWidth(this._model.options.minimapWidth);\n    }\n    _getBuffer() {\n        if (!this._buffers) {\n            if (this._model.options.canvasInnerWidth > 0 && this._model.options.canvasInnerHeight > 0) {\n                this._buffers = new MinimapBuffers(this._canvas.domNode.getContext('2d'), this._model.options.canvasInnerWidth, this._model.options.canvasInnerHeight, this._model.options.backgroundColor);\n            }\n        }\n        return this._buffers ? this._buffers.getBuffer() : null;\n    }\n    // ---- begin view event handlers\n    onDidChangeOptions() {\n        this._lastRenderData = null;\n        this._buffers = null;\n        this._applyLayout();\n        this._domNode.setClassName(this._getMinimapDomNodeClassName());\n    }\n    onSelectionChanged() {\n        this._renderDecorations = true;\n        return true;\n    }\n    onDecorationsChanged() {\n        this._renderDecorations = true;\n        return true;\n    }\n    onFlushed() {\n        this._lastRenderData = null;\n        return true;\n    }\n    onLinesChanged(changeFromLineNumber, changeCount) {\n        if (this._lastRenderData) {\n            return this._lastRenderData.onLinesChanged(changeFromLineNumber, changeCount);\n        }\n        return false;\n    }\n    onLinesDeleted(deleteFromLineNumber, deleteToLineNumber) {\n        var _a;\n        (_a = this._lastRenderData) === null || _a === void 0 ? void 0 : _a.onLinesDeleted(deleteFromLineNumber, deleteToLineNumber);\n        return true;\n    }\n    onLinesInserted(insertFromLineNumber, insertToLineNumber) {\n        var _a;\n        (_a = this._lastRenderData) === null || _a === void 0 ? void 0 : _a.onLinesInserted(insertFromLineNumber, insertToLineNumber);\n        return true;\n    }\n    onScrollChanged() {\n        this._renderDecorations = true;\n        return true;\n    }\n    onThemeChanged() {\n        this._selectionColor = this._theme.getColor(minimapSelection);\n        this._renderDecorations = true;\n        return true;\n    }\n    onTokensChanged(ranges) {\n        if (this._lastRenderData) {\n            return this._lastRenderData.onTokensChanged(ranges);\n        }\n        return false;\n    }\n    onTokensColorsChanged() {\n        this._lastRenderData = null;\n        this._buffers = null;\n        return true;\n    }\n    onZonesChanged() {\n        this._lastRenderData = null;\n        return true;\n    }\n    // --- end event handlers\n    render(renderingCtx) {\n        const renderMinimap = this._model.options.renderMinimap;\n        if (renderMinimap === 0 /* RenderMinimap.None */) {\n            this._shadow.setClassName('minimap-shadow-hidden');\n            this._sliderHorizontal.setWidth(0);\n            this._sliderHorizontal.setHeight(0);\n            return;\n        }\n        if (renderingCtx.scrollLeft + renderingCtx.viewportWidth >= renderingCtx.scrollWidth) {\n            this._shadow.setClassName('minimap-shadow-hidden');\n        }\n        else {\n            this._shadow.setClassName('minimap-shadow-visible');\n        }\n        const layout = MinimapLayout.create(this._model.options, renderingCtx.viewportStartLineNumber, renderingCtx.viewportEndLineNumber, renderingCtx.viewportStartLineNumberVerticalOffset, renderingCtx.viewportHeight, renderingCtx.viewportContainsWhitespaceGaps, this._model.getLineCount(), this._model.getRealLineCount(), renderingCtx.scrollTop, renderingCtx.scrollHeight, this._lastRenderData ? this._lastRenderData.renderedLayout : null);\n        this._slider.setDisplay(layout.sliderNeeded ? 'block' : 'none');\n        this._slider.setTop(layout.sliderTop);\n        this._slider.setHeight(layout.sliderHeight);\n        // Compute horizontal slider coordinates\n        this._sliderHorizontal.setLeft(0);\n        this._sliderHorizontal.setWidth(this._model.options.minimapWidth);\n        this._sliderHorizontal.setTop(0);\n        this._sliderHorizontal.setHeight(layout.sliderHeight);\n        this.renderDecorations(layout);\n        this._lastRenderData = this.renderLines(layout);\n    }\n    renderDecorations(layout) {\n        if (this._renderDecorations) {\n            this._renderDecorations = false;\n            const selections = this._model.getSelections();\n            selections.sort(Range.compareRangesUsingStarts);\n            const decorations = this._model.getMinimapDecorationsInViewport(layout.startLineNumber, layout.endLineNumber);\n            decorations.sort((a, b) => (a.options.zIndex || 0) - (b.options.zIndex || 0));\n            const { canvasInnerWidth, canvasInnerHeight } = this._model.options;\n            const minimapLineHeight = this._model.options.minimapLineHeight;\n            const minimapCharWidth = this._model.options.minimapCharWidth;\n            const tabSize = this._model.getOptions().tabSize;\n            const canvasContext = this._decorationsCanvas.domNode.getContext('2d');\n            canvasContext.clearRect(0, 0, canvasInnerWidth, canvasInnerHeight);\n            // We first need to render line highlights and then render decorations on top of those.\n            // But we need to pick a single color for each line, and use that as a line highlight.\n            // This needs to be the color of the decoration with the highest `zIndex`, but priority\n            // is given to the selection.\n            const highlightedLines = new ContiguousLineMap(layout.startLineNumber, layout.endLineNumber, false);\n            this._renderSelectionLineHighlights(canvasContext, selections, highlightedLines, layout, minimapLineHeight);\n            this._renderDecorationsLineHighlights(canvasContext, decorations, highlightedLines, layout, minimapLineHeight);\n            const lineOffsetMap = new ContiguousLineMap(layout.startLineNumber, layout.endLineNumber, null);\n            this._renderSelectionsHighlights(canvasContext, selections, lineOffsetMap, layout, minimapLineHeight, tabSize, minimapCharWidth, canvasInnerWidth);\n            this._renderDecorationsHighlights(canvasContext, decorations, lineOffsetMap, layout, minimapLineHeight, tabSize, minimapCharWidth, canvasInnerWidth);\n            this._renderSectionHeaders(layout);\n        }\n    }\n    _renderSelectionLineHighlights(canvasContext, selections, highlightedLines, layout, minimapLineHeight) {\n        if (!this._selectionColor || this._selectionColor.isTransparent()) {\n            return;\n        }\n        canvasContext.fillStyle = this._selectionColor.transparent(0.5).toString();\n        let y1 = 0;\n        let y2 = 0;\n        for (const selection of selections) {\n            const intersection = layout.intersectWithViewport(selection);\n            if (!intersection) {\n                // entirely outside minimap's viewport\n                continue;\n            }\n            const [startLineNumber, endLineNumber] = intersection;\n            for (let line = startLineNumber; line <= endLineNumber; line++) {\n                highlightedLines.set(line, true);\n            }\n            const yy1 = layout.getYForLineNumber(startLineNumber, minimapLineHeight);\n            const yy2 = layout.getYForLineNumber(endLineNumber, minimapLineHeight);\n            if (y2 >= yy1) {\n                // merge into previous\n                y2 = yy2;\n            }\n            else {\n                if (y2 > y1) {\n                    // flush\n                    canvasContext.fillRect(MINIMAP_GUTTER_WIDTH, y1, canvasContext.canvas.width, y2 - y1);\n                }\n                y1 = yy1;\n                y2 = yy2;\n            }\n        }\n        if (y2 > y1) {\n            // flush\n            canvasContext.fillRect(MINIMAP_GUTTER_WIDTH, y1, canvasContext.canvas.width, y2 - y1);\n        }\n    }\n    _renderDecorationsLineHighlights(canvasContext, decorations, highlightedLines, layout, minimapLineHeight) {\n        const highlightColors = new Map();\n        // Loop backwards to hit first decorations with higher `zIndex`\n        for (let i = decorations.length - 1; i >= 0; i--) {\n            const decoration = decorations[i];\n            const minimapOptions = decoration.options.minimap;\n            if (!minimapOptions || minimapOptions.position !== 1 /* MinimapPosition.Inline */) {\n                continue;\n            }\n            const intersection = layout.intersectWithViewport(decoration.range);\n            if (!intersection) {\n                // entirely outside minimap's viewport\n                continue;\n            }\n            const [startLineNumber, endLineNumber] = intersection;\n            const decorationColor = minimapOptions.getColor(this._theme.value);\n            if (!decorationColor || decorationColor.isTransparent()) {\n                continue;\n            }\n            let highlightColor = highlightColors.get(decorationColor.toString());\n            if (!highlightColor) {\n                highlightColor = decorationColor.transparent(0.5).toString();\n                highlightColors.set(decorationColor.toString(), highlightColor);\n            }\n            canvasContext.fillStyle = highlightColor;\n            for (let line = startLineNumber; line <= endLineNumber; line++) {\n                if (highlightedLines.has(line)) {\n                    continue;\n                }\n                highlightedLines.set(line, true);\n                const y = layout.getYForLineNumber(startLineNumber, minimapLineHeight);\n                canvasContext.fillRect(MINIMAP_GUTTER_WIDTH, y, canvasContext.canvas.width, minimapLineHeight);\n            }\n        }\n    }\n    _renderSelectionsHighlights(canvasContext, selections, lineOffsetMap, layout, lineHeight, tabSize, characterWidth, canvasInnerWidth) {\n        if (!this._selectionColor || this._selectionColor.isTransparent()) {\n            return;\n        }\n        for (const selection of selections) {\n            const intersection = layout.intersectWithViewport(selection);\n            if (!intersection) {\n                // entirely outside minimap's viewport\n                continue;\n            }\n            const [startLineNumber, endLineNumber] = intersection;\n            for (let line = startLineNumber; line <= endLineNumber; line++) {\n                this.renderDecorationOnLine(canvasContext, lineOffsetMap, selection, this._selectionColor, layout, line, lineHeight, lineHeight, tabSize, characterWidth, canvasInnerWidth);\n            }\n        }\n    }\n    _renderDecorationsHighlights(canvasContext, decorations, lineOffsetMap, layout, minimapLineHeight, tabSize, characterWidth, canvasInnerWidth) {\n        // Loop forwards to hit first decorations with lower `zIndex`\n        for (const decoration of decorations) {\n            const minimapOptions = decoration.options.minimap;\n            if (!minimapOptions) {\n                continue;\n            }\n            const intersection = layout.intersectWithViewport(decoration.range);\n            if (!intersection) {\n                // entirely outside minimap's viewport\n                continue;\n            }\n            const [startLineNumber, endLineNumber] = intersection;\n            const decorationColor = minimapOptions.getColor(this._theme.value);\n            if (!decorationColor || decorationColor.isTransparent()) {\n                continue;\n            }\n            for (let line = startLineNumber; line <= endLineNumber; line++) {\n                switch (minimapOptions.position) {\n                    case 1 /* MinimapPosition.Inline */:\n                        this.renderDecorationOnLine(canvasContext, lineOffsetMap, decoration.range, decorationColor, layout, line, minimapLineHeight, minimapLineHeight, tabSize, characterWidth, canvasInnerWidth);\n                        continue;\n                    case 2 /* MinimapPosition.Gutter */: {\n                        const y = layout.getYForLineNumber(line, minimapLineHeight);\n                        const x = 2;\n                        this.renderDecoration(canvasContext, decorationColor, x, y, GUTTER_DECORATION_WIDTH, minimapLineHeight);\n                        continue;\n                    }\n                }\n            }\n        }\n    }\n    renderDecorationOnLine(canvasContext, lineOffsetMap, decorationRange, decorationColor, layout, lineNumber, height, minimapLineHeight, tabSize, charWidth, canvasInnerWidth) {\n        const y = layout.getYForLineNumber(lineNumber, minimapLineHeight);\n        // Skip rendering the line if it's vertically outside our viewport\n        if (y + height < 0 || y > this._model.options.canvasInnerHeight) {\n            return;\n        }\n        const { startLineNumber, endLineNumber } = decorationRange;\n        const startColumn = (startLineNumber === lineNumber ? decorationRange.startColumn : 1);\n        const endColumn = (endLineNumber === lineNumber ? decorationRange.endColumn : this._model.getLineMaxColumn(lineNumber));\n        const x1 = this.getXOffsetForPosition(lineOffsetMap, lineNumber, startColumn, tabSize, charWidth, canvasInnerWidth);\n        const x2 = this.getXOffsetForPosition(lineOffsetMap, lineNumber, endColumn, tabSize, charWidth, canvasInnerWidth);\n        this.renderDecoration(canvasContext, decorationColor, x1, y, x2 - x1, height);\n    }\n    getXOffsetForPosition(lineOffsetMap, lineNumber, column, tabSize, charWidth, canvasInnerWidth) {\n        if (column === 1) {\n            return MINIMAP_GUTTER_WIDTH;\n        }\n        const minimumXOffset = (column - 1) * charWidth;\n        if (minimumXOffset >= canvasInnerWidth) {\n            // there is no need to look at actual characters,\n            // as this column is certainly after the minimap width\n            return canvasInnerWidth;\n        }\n        // Cache line offset data so that it is only read once per line\n        let lineIndexToXOffset = lineOffsetMap.get(lineNumber);\n        if (!lineIndexToXOffset) {\n            const lineData = this._model.getLineContent(lineNumber);\n            lineIndexToXOffset = [MINIMAP_GUTTER_WIDTH];\n            let prevx = MINIMAP_GUTTER_WIDTH;\n            for (let i = 1; i < lineData.length + 1; i++) {\n                const charCode = lineData.charCodeAt(i - 1);\n                const dx = charCode === 9 /* CharCode.Tab */\n                    ? tabSize * charWidth\n                    : strings.isFullWidthCharacter(charCode)\n                        ? 2 * charWidth\n                        : charWidth;\n                const x = prevx + dx;\n                if (x >= canvasInnerWidth) {\n                    // no need to keep on going, as we've hit the canvas width\n                    lineIndexToXOffset[i] = canvasInnerWidth;\n                    break;\n                }\n                lineIndexToXOffset[i] = x;\n                prevx = x;\n            }\n            lineOffsetMap.set(lineNumber, lineIndexToXOffset);\n        }\n        if (column - 1 < lineIndexToXOffset.length) {\n            return lineIndexToXOffset[column - 1];\n        }\n        // goes over the canvas width\n        return canvasInnerWidth;\n    }\n    renderDecoration(canvasContext, decorationColor, x, y, width, height) {\n        canvasContext.fillStyle = decorationColor && decorationColor.toString() || '';\n        canvasContext.fillRect(x, y, width, height);\n    }\n    _renderSectionHeaders(layout) {\n        var _a;\n        const minimapLineHeight = this._model.options.minimapLineHeight;\n        const sectionHeaderFontSize = this._model.options.sectionHeaderFontSize;\n        const sectionHeaderLetterSpacing = this._model.options.sectionHeaderLetterSpacing;\n        const backgroundFillHeight = sectionHeaderFontSize * 1.5;\n        const { canvasInnerWidth } = this._model.options;\n        const backgroundColor = this._model.options.backgroundColor;\n        const backgroundFill = `rgb(${backgroundColor.r} ${backgroundColor.g} ${backgroundColor.b} / .7)`;\n        const foregroundColor = this._model.options.sectionHeaderFontColor;\n        const foregroundFill = `rgb(${foregroundColor.r} ${foregroundColor.g} ${foregroundColor.b})`;\n        const separatorStroke = foregroundFill;\n        const canvasContext = this._decorationsCanvas.domNode.getContext('2d');\n        canvasContext.letterSpacing = sectionHeaderLetterSpacing + 'px';\n        canvasContext.font = '500 ' + sectionHeaderFontSize + 'px ' + this._model.options.sectionHeaderFontFamily;\n        canvasContext.strokeStyle = separatorStroke;\n        canvasContext.lineWidth = 0.2;\n        const decorations = this._model.getSectionHeaderDecorationsInViewport(layout.startLineNumber, layout.endLineNumber);\n        decorations.sort((a, b) => a.range.startLineNumber - b.range.startLineNumber);\n        const fitWidth = InnerMinimap._fitSectionHeader.bind(null, canvasContext, canvasInnerWidth - MINIMAP_GUTTER_WIDTH);\n        for (const decoration of decorations) {\n            const y = layout.getYForLineNumber(decoration.range.startLineNumber, minimapLineHeight) + sectionHeaderFontSize;\n            const backgroundFillY = y - sectionHeaderFontSize;\n            const separatorY = backgroundFillY + 2;\n            const headerText = this._model.getSectionHeaderText(decoration, fitWidth);\n            InnerMinimap._renderSectionLabel(canvasContext, headerText, ((_a = decoration.options.minimap) === null || _a === void 0 ? void 0 : _a.sectionHeaderStyle) === 2 /* MinimapSectionHeaderStyle.Underlined */, backgroundFill, foregroundFill, canvasInnerWidth, backgroundFillY, backgroundFillHeight, y, separatorY);\n        }\n    }\n    static _fitSectionHeader(target, maxWidth, headerText) {\n        if (!headerText) {\n            return headerText;\n        }\n        const ellipsis = '…';\n        const width = target.measureText(headerText).width;\n        const ellipsisWidth = target.measureText(ellipsis).width;\n        if (width <= maxWidth || width <= ellipsisWidth) {\n            return headerText;\n        }\n        const len = headerText.length;\n        const averageCharWidth = width / headerText.length;\n        const maxCharCount = Math.floor((maxWidth - ellipsisWidth) / averageCharWidth) - 1;\n        // Find a halfway point that isn't after whitespace\n        let halfCharCount = Math.ceil(maxCharCount / 2);\n        while (halfCharCount > 0 && /\\s/.test(headerText[halfCharCount - 1])) {\n            --halfCharCount;\n        }\n        // Split with ellipsis\n        return headerText.substring(0, halfCharCount)\n            + ellipsis + headerText.substring(len - (maxCharCount - halfCharCount));\n    }\n    static _renderSectionLabel(target, headerText, hasSeparatorLine, backgroundFill, foregroundFill, minimapWidth, backgroundFillY, backgroundFillHeight, textY, separatorY) {\n        if (headerText) {\n            target.fillStyle = backgroundFill;\n            target.fillRect(0, backgroundFillY, minimapWidth, backgroundFillHeight);\n            target.fillStyle = foregroundFill;\n            target.fillText(headerText, MINIMAP_GUTTER_WIDTH, textY);\n        }\n        if (hasSeparatorLine) {\n            target.beginPath();\n            target.moveTo(0, separatorY);\n            target.lineTo(minimapWidth, separatorY);\n            target.closePath();\n            target.stroke();\n        }\n    }\n    renderLines(layout) {\n        const startLineNumber = layout.startLineNumber;\n        const endLineNumber = layout.endLineNumber;\n        const minimapLineHeight = this._model.options.minimapLineHeight;\n        // Check if nothing changed w.r.t. lines from last frame\n        if (this._lastRenderData && this._lastRenderData.linesEquals(layout)) {\n            const _lastData = this._lastRenderData._get();\n            // Nice!! Nothing changed from last frame\n            return new RenderData(layout, _lastData.imageData, _lastData.lines);\n        }\n        // Oh well!! We need to repaint some lines...\n        const imageData = this._getBuffer();\n        if (!imageData) {\n            // 0 width or 0 height canvas, nothing to do\n            return null;\n        }\n        // Render untouched lines by using last rendered data.\n        const [_dirtyY1, _dirtyY2, needed] = InnerMinimap._renderUntouchedLines(imageData, layout.topPaddingLineCount, startLineNumber, endLineNumber, minimapLineHeight, this._lastRenderData);\n        // Fetch rendering info from view model for rest of lines that need rendering.\n        const lineInfo = this._model.getMinimapLinesRenderingData(startLineNumber, endLineNumber, needed);\n        const tabSize = this._model.getOptions().tabSize;\n        const defaultBackground = this._model.options.defaultBackgroundColor;\n        const background = this._model.options.backgroundColor;\n        const foregroundAlpha = this._model.options.foregroundAlpha;\n        const tokensColorTracker = this._model.tokensColorTracker;\n        const useLighterFont = tokensColorTracker.backgroundIsLight();\n        const renderMinimap = this._model.options.renderMinimap;\n        const charRenderer = this._model.options.charRenderer();\n        const fontScale = this._model.options.fontScale;\n        const minimapCharWidth = this._model.options.minimapCharWidth;\n        const baseCharHeight = (renderMinimap === 1 /* RenderMinimap.Text */ ? 2 /* Constants.BASE_CHAR_HEIGHT */ : 2 /* Constants.BASE_CHAR_HEIGHT */ + 1);\n        const renderMinimapLineHeight = baseCharHeight * fontScale;\n        const innerLinePadding = (minimapLineHeight > renderMinimapLineHeight ? Math.floor((minimapLineHeight - renderMinimapLineHeight) / 2) : 0);\n        // Render the rest of lines\n        const backgroundA = background.a / 255;\n        const renderBackground = new RGBA8(Math.round((background.r - defaultBackground.r) * backgroundA + defaultBackground.r), Math.round((background.g - defaultBackground.g) * backgroundA + defaultBackground.g), Math.round((background.b - defaultBackground.b) * backgroundA + defaultBackground.b), 255);\n        let dy = layout.topPaddingLineCount * minimapLineHeight;\n        const renderedLines = [];\n        for (let lineIndex = 0, lineCount = endLineNumber - startLineNumber + 1; lineIndex < lineCount; lineIndex++) {\n            if (needed[lineIndex]) {\n                InnerMinimap._renderLine(imageData, renderBackground, background.a, useLighterFont, renderMinimap, minimapCharWidth, tokensColorTracker, foregroundAlpha, charRenderer, dy, innerLinePadding, tabSize, lineInfo[lineIndex], fontScale, minimapLineHeight);\n            }\n            renderedLines[lineIndex] = new MinimapLine(dy);\n            dy += minimapLineHeight;\n        }\n        const dirtyY1 = (_dirtyY1 === -1 ? 0 : _dirtyY1);\n        const dirtyY2 = (_dirtyY2 === -1 ? imageData.height : _dirtyY2);\n        const dirtyHeight = dirtyY2 - dirtyY1;\n        // Finally, paint to the canvas\n        const ctx = this._canvas.domNode.getContext('2d');\n        ctx.putImageData(imageData, 0, 0, 0, dirtyY1, imageData.width, dirtyHeight);\n        // Save rendered data for reuse on next frame if possible\n        return new RenderData(layout, imageData, renderedLines);\n    }\n    static _renderUntouchedLines(target, topPaddingLineCount, startLineNumber, endLineNumber, minimapLineHeight, lastRenderData) {\n        const needed = [];\n        if (!lastRenderData) {\n            for (let i = 0, len = endLineNumber - startLineNumber + 1; i < len; i++) {\n                needed[i] = true;\n            }\n            return [-1, -1, needed];\n        }\n        const _lastData = lastRenderData._get();\n        const lastTargetData = _lastData.imageData.data;\n        const lastStartLineNumber = _lastData.rendLineNumberStart;\n        const lastLines = _lastData.lines;\n        const lastLinesLength = lastLines.length;\n        const WIDTH = target.width;\n        const targetData = target.data;\n        const maxDestPixel = (endLineNumber - startLineNumber + 1) * minimapLineHeight * WIDTH * 4;\n        let dirtyPixel1 = -1; // the pixel offset up to which all the data is equal to the prev frame\n        let dirtyPixel2 = -1; // the pixel offset after which all the data is equal to the prev frame\n        let copySourceStart = -1;\n        let copySourceEnd = -1;\n        let copyDestStart = -1;\n        let copyDestEnd = -1;\n        let dest_dy = topPaddingLineCount * minimapLineHeight;\n        for (let lineNumber = startLineNumber; lineNumber <= endLineNumber; lineNumber++) {\n            const lineIndex = lineNumber - startLineNumber;\n            const lastLineIndex = lineNumber - lastStartLineNumber;\n            const source_dy = (lastLineIndex >= 0 && lastLineIndex < lastLinesLength ? lastLines[lastLineIndex].dy : -1);\n            if (source_dy === -1) {\n                needed[lineIndex] = true;\n                dest_dy += minimapLineHeight;\n                continue;\n            }\n            const sourceStart = source_dy * WIDTH * 4;\n            const sourceEnd = (source_dy + minimapLineHeight) * WIDTH * 4;\n            const destStart = dest_dy * WIDTH * 4;\n            const destEnd = (dest_dy + minimapLineHeight) * WIDTH * 4;\n            if (copySourceEnd === sourceStart && copyDestEnd === destStart) {\n                // contiguous zone => extend copy request\n                copySourceEnd = sourceEnd;\n                copyDestEnd = destEnd;\n            }\n            else {\n                if (copySourceStart !== -1) {\n                    // flush existing copy request\n                    targetData.set(lastTargetData.subarray(copySourceStart, copySourceEnd), copyDestStart);\n                    if (dirtyPixel1 === -1 && copySourceStart === 0 && copySourceStart === copyDestStart) {\n                        dirtyPixel1 = copySourceEnd;\n                    }\n                    if (dirtyPixel2 === -1 && copySourceEnd === maxDestPixel && copySourceStart === copyDestStart) {\n                        dirtyPixel2 = copySourceStart;\n                    }\n                }\n                copySourceStart = sourceStart;\n                copySourceEnd = sourceEnd;\n                copyDestStart = destStart;\n                copyDestEnd = destEnd;\n            }\n            needed[lineIndex] = false;\n            dest_dy += minimapLineHeight;\n        }\n        if (copySourceStart !== -1) {\n            // flush existing copy request\n            targetData.set(lastTargetData.subarray(copySourceStart, copySourceEnd), copyDestStart);\n            if (dirtyPixel1 === -1 && copySourceStart === 0 && copySourceStart === copyDestStart) {\n                dirtyPixel1 = copySourceEnd;\n            }\n            if (dirtyPixel2 === -1 && copySourceEnd === maxDestPixel && copySourceStart === copyDestStart) {\n                dirtyPixel2 = copySourceStart;\n            }\n        }\n        const dirtyY1 = (dirtyPixel1 === -1 ? -1 : dirtyPixel1 / (WIDTH * 4));\n        const dirtyY2 = (dirtyPixel2 === -1 ? -1 : dirtyPixel2 / (WIDTH * 4));\n        return [dirtyY1, dirtyY2, needed];\n    }\n    static _renderLine(target, backgroundColor, backgroundAlpha, useLighterFont, renderMinimap, charWidth, colorTracker, foregroundAlpha, minimapCharRenderer, dy, innerLinePadding, tabSize, lineData, fontScale, minimapLineHeight) {\n        const content = lineData.content;\n        const tokens = lineData.tokens;\n        const maxDx = target.width - charWidth;\n        const force1pxHeight = (minimapLineHeight === 1);\n        let dx = MINIMAP_GUTTER_WIDTH;\n        let charIndex = 0;\n        let tabsCharDelta = 0;\n        for (let tokenIndex = 0, tokensLen = tokens.getCount(); tokenIndex < tokensLen; tokenIndex++) {\n            const tokenEndIndex = tokens.getEndOffset(tokenIndex);\n            const tokenColorId = tokens.getForeground(tokenIndex);\n            const tokenColor = colorTracker.getColor(tokenColorId);\n            for (; charIndex < tokenEndIndex; charIndex++) {\n                if (dx > maxDx) {\n                    // hit edge of minimap\n                    return;\n                }\n                const charCode = content.charCodeAt(charIndex);\n                if (charCode === 9 /* CharCode.Tab */) {\n                    const insertSpacesCount = tabSize - (charIndex + tabsCharDelta) % tabSize;\n                    tabsCharDelta += insertSpacesCount - 1;\n                    // No need to render anything since tab is invisible\n                    dx += insertSpacesCount * charWidth;\n                }\n                else if (charCode === 32 /* CharCode.Space */) {\n                    // No need to render anything since space is invisible\n                    dx += charWidth;\n                }\n                else {\n                    // Render twice for a full width character\n                    const count = strings.isFullWidthCharacter(charCode) ? 2 : 1;\n                    for (let i = 0; i < count; i++) {\n                        if (renderMinimap === 2 /* RenderMinimap.Blocks */) {\n                            minimapCharRenderer.blockRenderChar(target, dx, dy + innerLinePadding, tokenColor, foregroundAlpha, backgroundColor, backgroundAlpha, force1pxHeight);\n                        }\n                        else { // RenderMinimap.Text\n                            minimapCharRenderer.renderChar(target, dx, dy + innerLinePadding, charCode, tokenColor, foregroundAlpha, backgroundColor, backgroundAlpha, fontScale, useLighterFont, force1pxHeight);\n                        }\n                        dx += charWidth;\n                        if (dx > maxDx) {\n                            // hit edge of minimap\n                            return;\n                        }\n                    }\n                }\n            }\n        }\n    }\n}\nclass ContiguousLineMap {\n    constructor(startLineNumber, endLineNumber, defaultValue) {\n        this._startLineNumber = startLineNumber;\n        this._endLineNumber = endLineNumber;\n        this._defaultValue = defaultValue;\n        this._values = [];\n        for (let i = 0, count = this._endLineNumber - this._startLineNumber + 1; i < count; i++) {\n            this._values[i] = defaultValue;\n        }\n    }\n    has(lineNumber) {\n        return (this.get(lineNumber) !== this._defaultValue);\n    }\n    set(lineNumber, value) {\n        if (lineNumber < this._startLineNumber || lineNumber > this._endLineNumber) {\n            return;\n        }\n        this._values[lineNumber - this._startLineNumber] = value;\n    }\n    get(lineNumber) {\n        if (lineNumber < this._startLineNumber || lineNumber > this._endLineNumber) {\n            return this._defaultValue;\n        }\n        return this._values[lineNumber - this._startLineNumber];\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/minimap/minimapCharRenderer.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { getCharIndex } from './minimapCharSheet.js';\nimport { toUint8 } from '../../../../base/common/uint.js';\nexport class MinimapCharRenderer {\n    constructor(charData, scale) {\n        this.scale = scale;\n        this._minimapCharRendererBrand = undefined;\n        this.charDataNormal = MinimapCharRenderer.soften(charData, 12 / 15);\n        this.charDataLight = MinimapCharRenderer.soften(charData, 50 / 60);\n    }\n    static soften(input, ratio) {\n        const result = new Uint8ClampedArray(input.length);\n        for (let i = 0, len = input.length; i < len; i++) {\n            result[i] = toUint8(input[i] * ratio);\n        }\n        return result;\n    }\n    renderChar(target, dx, dy, chCode, color, foregroundAlpha, backgroundColor, backgroundAlpha, fontScale, useLighterFont, force1pxHeight) {\n        const charWidth = 1 /* Constants.BASE_CHAR_WIDTH */ * this.scale;\n        const charHeight = 2 /* Constants.BASE_CHAR_HEIGHT */ * this.scale;\n        const renderHeight = (force1pxHeight ? 1 : charHeight);\n        if (dx + charWidth > target.width || dy + renderHeight > target.height) {\n            console.warn('bad render request outside image data');\n            return;\n        }\n        const charData = useLighterFont ? this.charDataLight : this.charDataNormal;\n        const charIndex = getCharIndex(chCode, fontScale);\n        const destWidth = target.width * 4 /* Constants.RGBA_CHANNELS_CNT */;\n        const backgroundR = backgroundColor.r;\n        const backgroundG = backgroundColor.g;\n        const backgroundB = backgroundColor.b;\n        const deltaR = color.r - backgroundR;\n        const deltaG = color.g - backgroundG;\n        const deltaB = color.b - backgroundB;\n        const destAlpha = Math.max(foregroundAlpha, backgroundAlpha);\n        const dest = target.data;\n        let sourceOffset = charIndex * charWidth * charHeight;\n        let row = dy * destWidth + dx * 4 /* Constants.RGBA_CHANNELS_CNT */;\n        for (let y = 0; y < renderHeight; y++) {\n            let column = row;\n            for (let x = 0; x < charWidth; x++) {\n                const c = (charData[sourceOffset++] / 255) * (foregroundAlpha / 255);\n                dest[column++] = backgroundR + deltaR * c;\n                dest[column++] = backgroundG + deltaG * c;\n                dest[column++] = backgroundB + deltaB * c;\n                dest[column++] = destAlpha;\n            }\n            row += destWidth;\n        }\n    }\n    blockRenderChar(target, dx, dy, color, foregroundAlpha, backgroundColor, backgroundAlpha, force1pxHeight) {\n        const charWidth = 1 /* Constants.BASE_CHAR_WIDTH */ * this.scale;\n        const charHeight = 2 /* Constants.BASE_CHAR_HEIGHT */ * this.scale;\n        const renderHeight = (force1pxHeight ? 1 : charHeight);\n        if (dx + charWidth > target.width || dy + renderHeight > target.height) {\n            console.warn('bad render request outside image data');\n            return;\n        }\n        const destWidth = target.width * 4 /* Constants.RGBA_CHANNELS_CNT */;\n        const c = 0.5 * (foregroundAlpha / 255);\n        const backgroundR = backgroundColor.r;\n        const backgroundG = backgroundColor.g;\n        const backgroundB = backgroundColor.b;\n        const deltaR = color.r - backgroundR;\n        const deltaG = color.g - backgroundG;\n        const deltaB = color.b - backgroundB;\n        const colorR = backgroundR + deltaR * c;\n        const colorG = backgroundG + deltaG * c;\n        const colorB = backgroundB + deltaB * c;\n        const destAlpha = Math.max(foregroundAlpha, backgroundAlpha);\n        const dest = target.data;\n        let row = dy * destWidth + dx * 4 /* Constants.RGBA_CHANNELS_CNT */;\n        for (let y = 0; y < renderHeight; y++) {\n            let column = row;\n            for (let x = 0; x < charWidth; x++) {\n                dest[column++] = colorR;\n                dest[column++] = colorG;\n                dest[column++] = colorB;\n                dest[column++] = destAlpha;\n            }\n            row += destWidth;\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/minimap/minimapCharRendererFactory.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { MinimapCharRenderer } from './minimapCharRenderer.js';\nimport { allCharCodes } from './minimapCharSheet.js';\nimport { prebakedMiniMaps } from './minimapPreBaked.js';\nimport { toUint8 } from '../../../../base/common/uint.js';\n/**\n * Creates character renderers. It takes a 'scale' that determines how large\n * characters should be drawn. Using this, it draws data into a canvas and\n * then downsamples the characters as necessary for the current display.\n * This makes rendering more efficient, rather than drawing a full (tiny)\n * font, or downsampling in real-time.\n */\nexport class MinimapCharRendererFactory {\n    /**\n     * Creates a new character renderer factory with the given scale.\n     */\n    static create(scale, fontFamily) {\n        // renderers are immutable. By default we'll 'create' a new minimap\n        // character renderer whenever we switch editors, no need to do extra work.\n        if (this.lastCreated && scale === this.lastCreated.scale && fontFamily === this.lastFontFamily) {\n            return this.lastCreated;\n        }\n        let factory;\n        if (prebakedMiniMaps[scale]) {\n            factory = new MinimapCharRenderer(prebakedMiniMaps[scale](), scale);\n        }\n        else {\n            factory = MinimapCharRendererFactory.createFromSampleData(MinimapCharRendererFactory.createSampleData(fontFamily).data, scale);\n        }\n        this.lastFontFamily = fontFamily;\n        this.lastCreated = factory;\n        return factory;\n    }\n    /**\n     * Creates the font sample data, writing to a canvas.\n     */\n    static createSampleData(fontFamily) {\n        const canvas = document.createElement('canvas');\n        const ctx = canvas.getContext('2d');\n        canvas.style.height = `${16 /* Constants.SAMPLED_CHAR_HEIGHT */}px`;\n        canvas.height = 16 /* Constants.SAMPLED_CHAR_HEIGHT */;\n        canvas.width = 96 /* Constants.CHAR_COUNT */ * 10 /* Constants.SAMPLED_CHAR_WIDTH */;\n        canvas.style.width = 96 /* Constants.CHAR_COUNT */ * 10 /* Constants.SAMPLED_CHAR_WIDTH */ + 'px';\n        ctx.fillStyle = '#ffffff';\n        ctx.font = `bold ${16 /* Constants.SAMPLED_CHAR_HEIGHT */}px ${fontFamily}`;\n        ctx.textBaseline = 'middle';\n        let x = 0;\n        for (const code of allCharCodes) {\n            ctx.fillText(String.fromCharCode(code), x, 16 /* Constants.SAMPLED_CHAR_HEIGHT */ / 2);\n            x += 10 /* Constants.SAMPLED_CHAR_WIDTH */;\n        }\n        return ctx.getImageData(0, 0, 96 /* Constants.CHAR_COUNT */ * 10 /* Constants.SAMPLED_CHAR_WIDTH */, 16 /* Constants.SAMPLED_CHAR_HEIGHT */);\n    }\n    /**\n     * Creates a character renderer from the canvas sample data.\n     */\n    static createFromSampleData(source, scale) {\n        const expectedLength = 16 /* Constants.SAMPLED_CHAR_HEIGHT */ * 10 /* Constants.SAMPLED_CHAR_WIDTH */ * 4 /* Constants.RGBA_CHANNELS_CNT */ * 96 /* Constants.CHAR_COUNT */;\n        if (source.length !== expectedLength) {\n            throw new Error('Unexpected source in MinimapCharRenderer');\n        }\n        const charData = MinimapCharRendererFactory._downsample(source, scale);\n        return new MinimapCharRenderer(charData, scale);\n    }\n    static _downsampleChar(source, sourceOffset, dest, destOffset, scale) {\n        const width = 1 /* Constants.BASE_CHAR_WIDTH */ * scale;\n        const height = 2 /* Constants.BASE_CHAR_HEIGHT */ * scale;\n        let targetIndex = destOffset;\n        let brightest = 0;\n        // This is essentially an ad-hoc rescaling algorithm. Standard approaches\n        // like bicubic interpolation are awesome for scaling between image sizes,\n        // but don't work so well when scaling to very small pixel values, we end\n        // up with blurry, indistinct forms.\n        //\n        // The approach taken here is simply mapping each source pixel to the target\n        // pixels, and taking the weighted values for all pixels in each, and then\n        // averaging them out. Finally we apply an intensity boost in _downsample,\n        // since when scaling to the smallest pixel sizes there's more black space\n        // which causes characters to be much less distinct.\n        for (let y = 0; y < height; y++) {\n            // 1. For this destination pixel, get the source pixels we're sampling\n            // from (x1, y1) to the next pixel (x2, y2)\n            const sourceY1 = (y / height) * 16 /* Constants.SAMPLED_CHAR_HEIGHT */;\n            const sourceY2 = ((y + 1) / height) * 16 /* Constants.SAMPLED_CHAR_HEIGHT */;\n            for (let x = 0; x < width; x++) {\n                const sourceX1 = (x / width) * 10 /* Constants.SAMPLED_CHAR_WIDTH */;\n                const sourceX2 = ((x + 1) / width) * 10 /* Constants.SAMPLED_CHAR_WIDTH */;\n                // 2. Sample all of them, summing them up and weighting them. Similar\n                // to bilinear interpolation.\n                let value = 0;\n                let samples = 0;\n                for (let sy = sourceY1; sy < sourceY2; sy++) {\n                    const sourceRow = sourceOffset + Math.floor(sy) * 3840 /* Constants.RGBA_SAMPLED_ROW_WIDTH */;\n                    const yBalance = 1 - (sy - Math.floor(sy));\n                    for (let sx = sourceX1; sx < sourceX2; sx++) {\n                        const xBalance = 1 - (sx - Math.floor(sx));\n                        const sourceIndex = sourceRow + Math.floor(sx) * 4 /* Constants.RGBA_CHANNELS_CNT */;\n                        const weight = xBalance * yBalance;\n                        samples += weight;\n                        value += ((source[sourceIndex] * source[sourceIndex + 3]) / 255) * weight;\n                    }\n                }\n                const final = value / samples;\n                brightest = Math.max(brightest, final);\n                dest[targetIndex++] = toUint8(final);\n            }\n        }\n        return brightest;\n    }\n    static _downsample(data, scale) {\n        const pixelsPerCharacter = 2 /* Constants.BASE_CHAR_HEIGHT */ * scale * 1 /* Constants.BASE_CHAR_WIDTH */ * scale;\n        const resultLen = pixelsPerCharacter * 96 /* Constants.CHAR_COUNT */;\n        const result = new Uint8ClampedArray(resultLen);\n        let resultOffset = 0;\n        let sourceOffset = 0;\n        let brightest = 0;\n        for (let charIndex = 0; charIndex < 96 /* Constants.CHAR_COUNT */; charIndex++) {\n            brightest = Math.max(brightest, this._downsampleChar(data, sourceOffset, result, resultOffset, scale));\n            resultOffset += pixelsPerCharacter;\n            sourceOffset += 10 /* Constants.SAMPLED_CHAR_WIDTH */ * 4 /* Constants.RGBA_CHANNELS_CNT */;\n        }\n        if (brightest > 0) {\n            const adjust = 255 / brightest;\n            for (let i = 0; i < resultLen; i++) {\n                result[i] *= adjust;\n            }\n        }\n        return result;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/minimap/minimapCharSheet.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport const allCharCodes = (() => {\n    const v = [];\n    for (let i = 32 /* Constants.START_CH_CODE */; i <= 126 /* Constants.END_CH_CODE */; i++) {\n        v.push(i);\n    }\n    v.push(65533 /* Constants.UNKNOWN_CODE */);\n    return v;\n})();\nexport const getCharIndex = (chCode, fontScale) => {\n    chCode -= 32 /* Constants.START_CH_CODE */;\n    if (chCode < 0 || chCode > 96 /* Constants.CHAR_COUNT */) {\n        if (fontScale <= 2) {\n            // for smaller scales, we can get away with using any ASCII character...\n            return (chCode + 96 /* Constants.CHAR_COUNT */) % 96 /* Constants.CHAR_COUNT */;\n        }\n        return 96 /* Constants.CHAR_COUNT */ - 1; // unknown symbol\n    }\n    return chCode;\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/minimap/minimapPreBaked.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createSingleCallFunction } from '../../../../base/common/functional.js';\nconst charTable = {\n    '0': 0,\n    '1': 1,\n    '2': 2,\n    '3': 3,\n    '4': 4,\n    '5': 5,\n    '6': 6,\n    '7': 7,\n    '8': 8,\n    '9': 9,\n    A: 10,\n    B: 11,\n    C: 12,\n    D: 13,\n    E: 14,\n    F: 15\n};\nconst decodeData = (str) => {\n    const output = new Uint8ClampedArray(str.length / 2);\n    for (let i = 0; i < str.length; i += 2) {\n        output[i >> 1] = (charTable[str[i]] << 4) | (charTable[str[i + 1]] & 0xF);\n    }\n    return output;\n};\n/*\nconst encodeData = (data: Uint8ClampedArray, length: string) => {\n    const chars = '0123456789ABCDEF';\n    let output = '';\n    for (let i = 0; i < data.length; i++) {\n        output += chars[data[i] >> 4] + chars[data[i] & 0xf];\n    }\n    return output;\n};\n*/\n/**\n * Map of minimap scales to prebaked sample data at those scales. We don't\n * sample much larger data, because then font family becomes visible, which\n * is use-configurable.\n */\nexport const prebakedMiniMaps = {\n    1: createSingleCallFunction(() => decodeData('0000511D6300CF609C709645A78432005642574171487021003C451900274D35D762755E8B629C5BA856AF57BA649530C167D1512A272A3F6038604460398526BCA2A968DB6F8957C768BE5FBE2FB467CF5D8D5B795DC7625B5DFF50DE64C466DB2FC47CD860A65E9A2EB96CB54CE06DA763AB2EA26860524D3763536601005116008177A8705E53AB738E6A982F88BAA35B5F5B626D9C636B449B737E5B7B678598869A662F6B5B8542706C704C80736A607578685B70594A49715A4522E792')),\n    2: createSingleCallFunction(() => decodeData('000000000000000055394F383D2800008B8B1F210002000081B1CBCBCC820000847AAF6B9AAF2119BE08B8881AD60000A44FD07DCCF107015338130C00000000385972265F390B406E2437634B4B48031B12B8A0847000001E15B29A402F0000000000004B33460B00007A752C2A0000000000004D3900000084394B82013400ABA5CFC7AD9C0302A45A3E5A98AB000089A43382D97900008BA54AA087A70A0248A6A7AE6DBE0000BF6F94987EA40A01A06DCFA7A7A9030496C32F77891D0000A99FB1A0AFA80603B29AB9CA75930D010C0948354D3900000C0948354F37460D0028BE673D8400000000AF9D7B6E00002B007AA8933400007AA642675C2700007984CFB9C3985B768772A8A6B7B20000CAAECAAFC4B700009F94A6009F840009D09F9BA4CA9C0000CC8FC76DC87F0000C991C472A2000000A894A48CA7B501079BA2C9C69BA20000B19A5D3FA89000005CA6009DA2960901B0A7F0669FB200009D009E00B7890000DAD0F5D092820000D294D4C48BD10000B5A7A4A3B1A50402CAB6CBA6A2000000B5A7A4A3B1A8044FCDADD19D9CB00000B7778F7B8AAE0803C9AB5D3F5D3F00009EA09EA0BAB006039EA0989A8C7900009B9EF4D6B7C00000A9A7816CACA80000ABAC84705D3F000096DA635CDC8C00006F486F266F263D4784006124097B00374F6D2D6D2D6D4A3A95872322000000030000000000008D8939130000000000002E22A5C9CBC70600AB25C0B5C9B400061A2DB04CA67001082AA6BEBEBFC606002321DACBC19E03087AA08B6768380000282FBAC0B8CA7A88AD25BBA5A29900004C396C5894A6000040485A6E356E9442A32CD17EADA70000B4237923628600003E2DE9C1D7B500002F25BBA5A2990000231DB6AFB4A804023025C0B5CAB588062B2CBDBEC0C706882435A75CA20000002326BD6A82A908048B4B9A5A668000002423A09CB4BB060025259C9D8A7900001C1FCAB2C7C700002A2A9387ABA200002626A4A47D6E9D14333163A0C87500004B6F9C2D643A257049364936493647358A34438355497F1A0000A24C1D590000D38DFFBDD4CD3126'))\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n.monaco-editor .overlayWidgets {\n\tposition: absolute;\n\ttop: 0;\n\tleft:0;\n}"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './overlayWidgets.css';\nimport { createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport { PartFingerprints, ViewPart } from '../../view/viewPart.js';\nimport * as dom from '../../../../base/browser/dom.js';\nexport class ViewOverlayWidgets extends ViewPart {\n    constructor(context, viewDomNode) {\n        super(context);\n        this._viewDomNode = viewDomNode;\n        const options = this._context.configuration.options;\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        this._widgets = {};\n        this._verticalScrollbarWidth = layoutInfo.verticalScrollbarWidth;\n        this._minimapWidth = layoutInfo.minimap.minimapWidth;\n        this._horizontalScrollbarHeight = layoutInfo.horizontalScrollbarHeight;\n        this._editorHeight = layoutInfo.height;\n        this._editorWidth = layoutInfo.width;\n        this._viewDomNodeRect = { top: 0, left: 0, width: 0, height: 0 };\n        this._domNode = createFastDomNode(document.createElement('div'));\n        PartFingerprints.write(this._domNode, 4 /* PartFingerprint.OverlayWidgets */);\n        this._domNode.setClassName('overlayWidgets');\n        this.overflowingOverlayWidgetsDomNode = createFastDomNode(document.createElement('div'));\n        PartFingerprints.write(this.overflowingOverlayWidgetsDomNode, 5 /* PartFingerprint.OverflowingOverlayWidgets */);\n        this.overflowingOverlayWidgetsDomNode.setClassName('overflowingOverlayWidgets');\n    }\n    dispose() {\n        super.dispose();\n        this._widgets = {};\n    }\n    getDomNode() {\n        return this._domNode;\n    }\n    // ---- begin view event handlers\n    onConfigurationChanged(e) {\n        const options = this._context.configuration.options;\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        this._verticalScrollbarWidth = layoutInfo.verticalScrollbarWidth;\n        this._minimapWidth = layoutInfo.minimap.minimapWidth;\n        this._horizontalScrollbarHeight = layoutInfo.horizontalScrollbarHeight;\n        this._editorHeight = layoutInfo.height;\n        this._editorWidth = layoutInfo.width;\n        return true;\n    }\n    // ---- end view event handlers\n    addWidget(widget) {\n        const domNode = createFastDomNode(widget.getDomNode());\n        this._widgets[widget.getId()] = {\n            widget: widget,\n            preference: null,\n            domNode: domNode\n        };\n        // This is sync because a widget wants to be in the dom\n        domNode.setPosition('absolute');\n        domNode.setAttribute('widgetId', widget.getId());\n        if (widget.allowEditorOverflow) {\n            this.overflowingOverlayWidgetsDomNode.appendChild(domNode);\n        }\n        else {\n            this._domNode.appendChild(domNode);\n        }\n        this.setShouldRender();\n        this._updateMaxMinWidth();\n    }\n    setWidgetPosition(widget, position) {\n        const widgetData = this._widgets[widget.getId()];\n        const preference = position ? position.preference : null;\n        const stack = position === null || position === void 0 ? void 0 : position.stackOridinal;\n        if (widgetData.preference === preference && widgetData.stack === stack) {\n            this._updateMaxMinWidth();\n            return false;\n        }\n        widgetData.preference = preference;\n        widgetData.stack = stack;\n        this.setShouldRender();\n        this._updateMaxMinWidth();\n        return true;\n    }\n    removeWidget(widget) {\n        const widgetId = widget.getId();\n        if (this._widgets.hasOwnProperty(widgetId)) {\n            const widgetData = this._widgets[widgetId];\n            const domNode = widgetData.domNode.domNode;\n            delete this._widgets[widgetId];\n            domNode.remove();\n            this.setShouldRender();\n            this._updateMaxMinWidth();\n        }\n    }\n    _updateMaxMinWidth() {\n        var _a, _b;\n        let maxMinWidth = 0;\n        const keys = Object.keys(this._widgets);\n        for (let i = 0, len = keys.length; i < len; i++) {\n            const widgetId = keys[i];\n            const widget = this._widgets[widgetId];\n            const widgetMinWidthInPx = (_b = (_a = widget.widget).getMinContentWidthInPx) === null || _b === void 0 ? void 0 : _b.call(_a);\n            if (typeof widgetMinWidthInPx !== 'undefined') {\n                maxMinWidth = Math.max(maxMinWidth, widgetMinWidthInPx);\n            }\n        }\n        this._context.viewLayout.setOverlayWidgetsMinWidth(maxMinWidth);\n    }\n    _renderWidget(widgetData, stackCoordinates) {\n        const domNode = widgetData.domNode;\n        if (widgetData.preference === null) {\n            domNode.setTop('');\n            return;\n        }\n        const maxRight = (2 * this._verticalScrollbarWidth) + this._minimapWidth;\n        if (widgetData.preference === 0 /* OverlayWidgetPositionPreference.TOP_RIGHT_CORNER */ || widgetData.preference === 1 /* OverlayWidgetPositionPreference.BOTTOM_RIGHT_CORNER */) {\n            if (widgetData.preference === 1 /* OverlayWidgetPositionPreference.BOTTOM_RIGHT_CORNER */) {\n                const widgetHeight = domNode.domNode.clientHeight;\n                domNode.setTop((this._editorHeight - widgetHeight - 2 * this._horizontalScrollbarHeight));\n            }\n            else {\n                domNode.setTop(0);\n            }\n            if (widgetData.stack !== undefined) {\n                domNode.setTop(stackCoordinates[widgetData.preference]);\n                stackCoordinates[widgetData.preference] += domNode.domNode.clientWidth;\n            }\n            else {\n                domNode.setRight(maxRight);\n            }\n        }\n        else if (widgetData.preference === 2 /* OverlayWidgetPositionPreference.TOP_CENTER */) {\n            domNode.domNode.style.right = '50%';\n            if (widgetData.stack !== undefined) {\n                domNode.setTop(stackCoordinates[2 /* OverlayWidgetPositionPreference.TOP_CENTER */]);\n                stackCoordinates[2 /* OverlayWidgetPositionPreference.TOP_CENTER */] += domNode.domNode.clientHeight;\n            }\n            else {\n                domNode.setTop(0);\n            }\n        }\n        else {\n            const { top, left } = widgetData.preference;\n            const fixedOverflowWidgets = this._context.configuration.options.get(42 /* EditorOption.fixedOverflowWidgets */);\n            if (fixedOverflowWidgets && widgetData.widget.allowEditorOverflow) {\n                // top, left are computed relative to the editor and we need them relative to the page\n                const editorBoundingBox = this._viewDomNodeRect;\n                domNode.setTop(top + editorBoundingBox.top);\n                domNode.setLeft(left + editorBoundingBox.left);\n                domNode.setPosition('fixed');\n            }\n            else {\n                domNode.setTop(top);\n                domNode.setLeft(left);\n                domNode.setPosition('absolute');\n            }\n        }\n    }\n    prepareRender(ctx) {\n        this._viewDomNodeRect = dom.getDomNodePagePosition(this._viewDomNode.domNode);\n    }\n    render(ctx) {\n        this._domNode.setWidth(this._editorWidth);\n        const keys = Object.keys(this._widgets);\n        const stackCoordinates = Array.from({ length: 2 /* OverlayWidgetPositionPreference.TOP_CENTER */ + 1 }, () => 0);\n        keys.sort((a, b) => (this._widgets[a].stack || 0) - (this._widgets[b].stack || 0));\n        for (let i = 0, len = keys.length; i < len; i++) {\n            const widgetId = keys[i];\n            this._renderWidget(this._widgets[widgetId], stackCoordinates);\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport { Color } from '../../../../base/common/color.js';\nimport { ViewPart } from '../../view/viewPart.js';\nimport { Position } from '../../../common/core/position.js';\nimport { TokenizationRegistry } from '../../../common/languages.js';\nimport { editorCursorForeground, editorOverviewRulerBorder, editorOverviewRulerBackground, editorMultiCursorSecondaryForeground, editorMultiCursorPrimaryForeground } from '../../../common/core/editorColorRegistry.js';\nimport { OverviewRulerDecorationsGroup } from '../../../common/viewModel.js';\nimport { equals } from '../../../../base/common/arrays.js';\nclass Settings {\n    constructor(config, theme) {\n        const options = config.options;\n        this.lineHeight = options.get(67 /* EditorOption.lineHeight */);\n        this.pixelRatio = options.get(143 /* EditorOption.pixelRatio */);\n        this.overviewRulerLanes = options.get(83 /* EditorOption.overviewRulerLanes */);\n        this.renderBorder = options.get(82 /* EditorOption.overviewRulerBorder */);\n        const borderColor = theme.getColor(editorOverviewRulerBorder);\n        this.borderColor = borderColor ? borderColor.toString() : null;\n        this.hideCursor = options.get(59 /* EditorOption.hideCursorInOverviewRuler */);\n        const cursorColorSingle = theme.getColor(editorCursorForeground);\n        this.cursorColorSingle = cursorColorSingle ? cursorColorSingle.transparent(0.7).toString() : null;\n        const cursorColorPrimary = theme.getColor(editorMultiCursorPrimaryForeground);\n        this.cursorColorPrimary = cursorColorPrimary ? cursorColorPrimary.transparent(0.7).toString() : null;\n        const cursorColorSecondary = theme.getColor(editorMultiCursorSecondaryForeground);\n        this.cursorColorSecondary = cursorColorSecondary ? cursorColorSecondary.transparent(0.7).toString() : null;\n        this.themeType = theme.type;\n        const minimapOpts = options.get(73 /* EditorOption.minimap */);\n        const minimapEnabled = minimapOpts.enabled;\n        const minimapSide = minimapOpts.side;\n        const themeColor = theme.getColor(editorOverviewRulerBackground);\n        const defaultBackground = TokenizationRegistry.getDefaultBackground();\n        if (themeColor) {\n            this.backgroundColor = themeColor;\n        }\n        else if (minimapEnabled && minimapSide === 'right') {\n            this.backgroundColor = defaultBackground;\n        }\n        else {\n            this.backgroundColor = null;\n        }\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        const position = layoutInfo.overviewRuler;\n        this.top = position.top;\n        this.right = position.right;\n        this.domWidth = position.width;\n        this.domHeight = position.height;\n        if (this.overviewRulerLanes === 0) {\n            // overview ruler is off\n            this.canvasWidth = 0;\n            this.canvasHeight = 0;\n        }\n        else {\n            this.canvasWidth = (this.domWidth * this.pixelRatio) | 0;\n            this.canvasHeight = (this.domHeight * this.pixelRatio) | 0;\n        }\n        const [x, w] = this._initLanes(1, this.canvasWidth, this.overviewRulerLanes);\n        this.x = x;\n        this.w = w;\n    }\n    _initLanes(canvasLeftOffset, canvasWidth, laneCount) {\n        const remainingWidth = canvasWidth - canvasLeftOffset;\n        if (laneCount >= 3) {\n            const leftWidth = Math.floor(remainingWidth / 3);\n            const rightWidth = Math.floor(remainingWidth / 3);\n            const centerWidth = remainingWidth - leftWidth - rightWidth;\n            const leftOffset = canvasLeftOffset;\n            const centerOffset = leftOffset + leftWidth;\n            const rightOffset = leftOffset + leftWidth + centerWidth;\n            return [\n                [\n                    0,\n                    leftOffset, // Left\n                    centerOffset, // Center\n                    leftOffset, // Left | Center\n                    rightOffset, // Right\n                    leftOffset, // Left | Right\n                    centerOffset, // Center | Right\n                    leftOffset, // Left | Center | Right\n                ], [\n                    0,\n                    leftWidth, // Left\n                    centerWidth, // Center\n                    leftWidth + centerWidth, // Left | Center\n                    rightWidth, // Right\n                    leftWidth + centerWidth + rightWidth, // Left | Right\n                    centerWidth + rightWidth, // Center | Right\n                    leftWidth + centerWidth + rightWidth, // Left | Center | Right\n                ]\n            ];\n        }\n        else if (laneCount === 2) {\n            const leftWidth = Math.floor(remainingWidth / 2);\n            const rightWidth = remainingWidth - leftWidth;\n            const leftOffset = canvasLeftOffset;\n            const rightOffset = leftOffset + leftWidth;\n            return [\n                [\n                    0,\n                    leftOffset, // Left\n                    leftOffset, // Center\n                    leftOffset, // Left | Center\n                    rightOffset, // Right\n                    leftOffset, // Left | Right\n                    leftOffset, // Center | Right\n                    leftOffset, // Left | Center | Right\n                ], [\n                    0,\n                    leftWidth, // Left\n                    leftWidth, // Center\n                    leftWidth, // Left | Center\n                    rightWidth, // Right\n                    leftWidth + rightWidth, // Left | Right\n                    leftWidth + rightWidth, // Center | Right\n                    leftWidth + rightWidth, // Left | Center | Right\n                ]\n            ];\n        }\n        else {\n            const offset = canvasLeftOffset;\n            const width = remainingWidth;\n            return [\n                [\n                    0,\n                    offset, // Left\n                    offset, // Center\n                    offset, // Left | Center\n                    offset, // Right\n                    offset, // Left | Right\n                    offset, // Center | Right\n                    offset, // Left | Center | Right\n                ], [\n                    0,\n                    width, // Left\n                    width, // Center\n                    width, // Left | Center\n                    width, // Right\n                    width, // Left | Right\n                    width, // Center | Right\n                    width, // Left | Center | Right\n                ]\n            ];\n        }\n    }\n    equals(other) {\n        return (this.lineHeight === other.lineHeight\n            && this.pixelRatio === other.pixelRatio\n            && this.overviewRulerLanes === other.overviewRulerLanes\n            && this.renderBorder === other.renderBorder\n            && this.borderColor === other.borderColor\n            && this.hideCursor === other.hideCursor\n            && this.cursorColorSingle === other.cursorColorSingle\n            && this.cursorColorPrimary === other.cursorColorPrimary\n            && this.cursorColorSecondary === other.cursorColorSecondary\n            && this.themeType === other.themeType\n            && Color.equals(this.backgroundColor, other.backgroundColor)\n            && this.top === other.top\n            && this.right === other.right\n            && this.domWidth === other.domWidth\n            && this.domHeight === other.domHeight\n            && this.canvasWidth === other.canvasWidth\n            && this.canvasHeight === other.canvasHeight);\n    }\n}\nexport class DecorationsOverviewRuler extends ViewPart {\n    constructor(context) {\n        super(context);\n        this._actualShouldRender = 0 /* ShouldRenderValue.NotNeeded */;\n        this._renderedDecorations = [];\n        this._renderedCursorPositions = [];\n        this._domNode = createFastDomNode(document.createElement('canvas'));\n        this._domNode.setClassName('decorationsOverviewRuler');\n        this._domNode.setPosition('absolute');\n        this._domNode.setLayerHinting(true);\n        this._domNode.setContain('strict');\n        this._domNode.setAttribute('aria-hidden', 'true');\n        this._updateSettings(false);\n        this._tokensColorTrackerListener = TokenizationRegistry.onDidChange((e) => {\n            if (e.changedColorMap) {\n                this._updateSettings(true);\n            }\n        });\n        this._cursorPositions = [{ position: new Position(1, 1), color: this._settings.cursorColorSingle }];\n    }\n    dispose() {\n        super.dispose();\n        this._tokensColorTrackerListener.dispose();\n    }\n    _updateSettings(renderNow) {\n        const newSettings = new Settings(this._context.configuration, this._context.theme);\n        if (this._settings && this._settings.equals(newSettings)) {\n            // nothing to do\n            return false;\n        }\n        this._settings = newSettings;\n        this._domNode.setTop(this._settings.top);\n        this._domNode.setRight(this._settings.right);\n        this._domNode.setWidth(this._settings.domWidth);\n        this._domNode.setHeight(this._settings.domHeight);\n        this._domNode.domNode.width = this._settings.canvasWidth;\n        this._domNode.domNode.height = this._settings.canvasHeight;\n        if (renderNow) {\n            this._render();\n        }\n        return true;\n    }\n    // ---- begin view event handlers\n    _markRenderingIsNeeded() {\n        this._actualShouldRender = 2 /* ShouldRenderValue.Needed */;\n        return true;\n    }\n    _markRenderingIsMaybeNeeded() {\n        this._actualShouldRender = 1 /* ShouldRenderValue.Maybe */;\n        return true;\n    }\n    onConfigurationChanged(e) {\n        return this._updateSettings(false) ? this._markRenderingIsNeeded() : false;\n    }\n    onCursorStateChanged(e) {\n        this._cursorPositions = [];\n        for (let i = 0, len = e.selections.length; i < len; i++) {\n            let color = this._settings.cursorColorSingle;\n            if (len > 1) {\n                color = i === 0 ? this._settings.cursorColorPrimary : this._settings.cursorColorSecondary;\n            }\n            this._cursorPositions.push({ position: e.selections[i].getPosition(), color });\n        }\n        this._cursorPositions.sort((a, b) => Position.compare(a.position, b.position));\n        return this._markRenderingIsMaybeNeeded();\n    }\n    onDecorationsChanged(e) {\n        if (e.affectsOverviewRuler) {\n            return this._markRenderingIsMaybeNeeded();\n        }\n        return false;\n    }\n    onFlushed(e) {\n        return this._markRenderingIsNeeded();\n    }\n    onScrollChanged(e) {\n        return e.scrollHeightChanged ? this._markRenderingIsNeeded() : false;\n    }\n    onZonesChanged(e) {\n        return this._markRenderingIsNeeded();\n    }\n    onThemeChanged(e) {\n        return this._updateSettings(false) ? this._markRenderingIsNeeded() : false;\n    }\n    // ---- end view event handlers\n    getDomNode() {\n        return this._domNode.domNode;\n    }\n    prepareRender(ctx) {\n        // Nothing to read\n    }\n    render(editorCtx) {\n        this._render();\n        this._actualShouldRender = 0 /* ShouldRenderValue.NotNeeded */;\n    }\n    _render() {\n        const backgroundColor = this._settings.backgroundColor;\n        if (this._settings.overviewRulerLanes === 0) {\n            // overview ruler is off\n            this._domNode.setBackgroundColor(backgroundColor ? Color.Format.CSS.formatHexA(backgroundColor) : '');\n            this._domNode.setDisplay('none');\n            return;\n        }\n        const decorations = this._context.viewModel.getAllOverviewRulerDecorations(this._context.theme);\n        decorations.sort(OverviewRulerDecorationsGroup.compareByRenderingProps);\n        if (this._actualShouldRender === 1 /* ShouldRenderValue.Maybe */ && !OverviewRulerDecorationsGroup.equalsArr(this._renderedDecorations, decorations)) {\n            this._actualShouldRender = 2 /* ShouldRenderValue.Needed */;\n        }\n        if (this._actualShouldRender === 1 /* ShouldRenderValue.Maybe */ && !equals(this._renderedCursorPositions, this._cursorPositions, (a, b) => a.position.lineNumber === b.position.lineNumber && a.color === b.color)) {\n            this._actualShouldRender = 2 /* ShouldRenderValue.Needed */;\n        }\n        if (this._actualShouldRender === 1 /* ShouldRenderValue.Maybe */) {\n            // both decorations and cursor positions are unchanged, nothing to do\n            return;\n        }\n        this._renderedDecorations = decorations;\n        this._renderedCursorPositions = this._cursorPositions;\n        this._domNode.setDisplay('block');\n        const canvasWidth = this._settings.canvasWidth;\n        const canvasHeight = this._settings.canvasHeight;\n        const lineHeight = this._settings.lineHeight;\n        const viewLayout = this._context.viewLayout;\n        const outerHeight = this._context.viewLayout.getScrollHeight();\n        const heightRatio = canvasHeight / outerHeight;\n        const minDecorationHeight = (6 /* Constants.MIN_DECORATION_HEIGHT */ * this._settings.pixelRatio) | 0;\n        const halfMinDecorationHeight = (minDecorationHeight / 2) | 0;\n        const canvasCtx = this._domNode.domNode.getContext('2d');\n        if (backgroundColor) {\n            if (backgroundColor.isOpaque()) {\n                // We have a background color which is opaque, we can just paint the entire surface with it\n                canvasCtx.fillStyle = Color.Format.CSS.formatHexA(backgroundColor);\n                canvasCtx.fillRect(0, 0, canvasWidth, canvasHeight);\n            }\n            else {\n                // We have a background color which is transparent, we need to first clear the surface and\n                // then fill it\n                canvasCtx.clearRect(0, 0, canvasWidth, canvasHeight);\n                canvasCtx.fillStyle = Color.Format.CSS.formatHexA(backgroundColor);\n                canvasCtx.fillRect(0, 0, canvasWidth, canvasHeight);\n            }\n        }\n        else {\n            // We don't have a background color\n            canvasCtx.clearRect(0, 0, canvasWidth, canvasHeight);\n        }\n        const x = this._settings.x;\n        const w = this._settings.w;\n        for (const decorationGroup of decorations) {\n            const color = decorationGroup.color;\n            const decorationGroupData = decorationGroup.data;\n            canvasCtx.fillStyle = color;\n            let prevLane = 0;\n            let prevY1 = 0;\n            let prevY2 = 0;\n            for (let i = 0, len = decorationGroupData.length / 3; i < len; i++) {\n                const lane = decorationGroupData[3 * i];\n                const startLineNumber = decorationGroupData[3 * i + 1];\n                const endLineNumber = decorationGroupData[3 * i + 2];\n                let y1 = (viewLayout.getVerticalOffsetForLineNumber(startLineNumber) * heightRatio) | 0;\n                let y2 = ((viewLayout.getVerticalOffsetForLineNumber(endLineNumber) + lineHeight) * heightRatio) | 0;\n                const height = y2 - y1;\n                if (height < minDecorationHeight) {\n                    let yCenter = ((y1 + y2) / 2) | 0;\n                    if (yCenter < halfMinDecorationHeight) {\n                        yCenter = halfMinDecorationHeight;\n                    }\n                    else if (yCenter + halfMinDecorationHeight > canvasHeight) {\n                        yCenter = canvasHeight - halfMinDecorationHeight;\n                    }\n                    y1 = yCenter - halfMinDecorationHeight;\n                    y2 = yCenter + halfMinDecorationHeight;\n                }\n                if (y1 > prevY2 + 1 || lane !== prevLane) {\n                    // flush prev\n                    if (i !== 0) {\n                        canvasCtx.fillRect(x[prevLane], prevY1, w[prevLane], prevY2 - prevY1);\n                    }\n                    prevLane = lane;\n                    prevY1 = y1;\n                    prevY2 = y2;\n                }\n                else {\n                    // merge into prev\n                    if (y2 > prevY2) {\n                        prevY2 = y2;\n                    }\n                }\n            }\n            canvasCtx.fillRect(x[prevLane], prevY1, w[prevLane], prevY2 - prevY1);\n        }\n        // Draw cursors\n        if (!this._settings.hideCursor) {\n            const cursorHeight = (2 * this._settings.pixelRatio) | 0;\n            const halfCursorHeight = (cursorHeight / 2) | 0;\n            const cursorX = this._settings.x[7 /* OverviewRulerLane.Full */];\n            const cursorW = this._settings.w[7 /* OverviewRulerLane.Full */];\n            let prevY1 = -100;\n            let prevY2 = -100;\n            let prevColor = null;\n            for (let i = 0, len = this._cursorPositions.length; i < len; i++) {\n                const color = this._cursorPositions[i].color;\n                if (!color) {\n                    continue;\n                }\n                const cursor = this._cursorPositions[i].position;\n                let yCenter = (viewLayout.getVerticalOffsetForLineNumber(cursor.lineNumber) * heightRatio) | 0;\n                if (yCenter < halfCursorHeight) {\n                    yCenter = halfCursorHeight;\n                }\n                else if (yCenter + halfCursorHeight > canvasHeight) {\n                    yCenter = canvasHeight - halfCursorHeight;\n                }\n                const y1 = yCenter - halfCursorHeight;\n                const y2 = y1 + cursorHeight;\n                if (y1 > prevY2 + 1 || color !== prevColor) {\n                    // flush prev\n                    if (i !== 0 && prevColor) {\n                        canvasCtx.fillRect(cursorX, prevY1, cursorW, prevY2 - prevY1);\n                    }\n                    prevY1 = y1;\n                    prevY2 = y2;\n                }\n                else {\n                    // merge into prev\n                    if (y2 > prevY2) {\n                        prevY2 = y2;\n                    }\n                }\n                prevColor = color;\n                canvasCtx.fillStyle = color;\n            }\n            if (prevColor) {\n                canvasCtx.fillRect(cursorX, prevY1, cursorW, prevY2 - prevY1);\n            }\n        }\n        if (this._settings.renderBorder && this._settings.borderColor && this._settings.overviewRulerLanes > 0) {\n            canvasCtx.beginPath();\n            canvasCtx.lineWidth = 1;\n            canvasCtx.strokeStyle = this._settings.borderColor;\n            canvasCtx.moveTo(0, 0);\n            canvasCtx.lineTo(0, canvasHeight);\n            canvasCtx.stroke();\n            canvasCtx.moveTo(0, 0);\n            canvasCtx.lineTo(canvasWidth, 0);\n            canvasCtx.stroke();\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/overviewRuler/overviewRuler.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport { OverviewZoneManager } from '../../../common/viewModel/overviewZoneManager.js';\nimport { ViewEventHandler } from '../../../common/viewEventHandler.js';\nexport class OverviewRuler extends ViewEventHandler {\n    constructor(context, cssClassName) {\n        super();\n        this._context = context;\n        const options = this._context.configuration.options;\n        this._domNode = createFastDomNode(document.createElement('canvas'));\n        this._domNode.setClassName(cssClassName);\n        this._domNode.setPosition('absolute');\n        this._domNode.setLayerHinting(true);\n        this._domNode.setContain('strict');\n        this._zoneManager = new OverviewZoneManager((lineNumber) => this._context.viewLayout.getVerticalOffsetForLineNumber(lineNumber));\n        this._zoneManager.setDOMWidth(0);\n        this._zoneManager.setDOMHeight(0);\n        this._zoneManager.setOuterHeight(this._context.viewLayout.getScrollHeight());\n        this._zoneManager.setLineHeight(options.get(67 /* EditorOption.lineHeight */));\n        this._zoneManager.setPixelRatio(options.get(143 /* EditorOption.pixelRatio */));\n        this._context.addEventHandler(this);\n    }\n    dispose() {\n        this._context.removeEventHandler(this);\n        super.dispose();\n    }\n    // ---- begin view event handlers\n    onConfigurationChanged(e) {\n        const options = this._context.configuration.options;\n        if (e.hasChanged(67 /* EditorOption.lineHeight */)) {\n            this._zoneManager.setLineHeight(options.get(67 /* EditorOption.lineHeight */));\n            this._render();\n        }\n        if (e.hasChanged(143 /* EditorOption.pixelRatio */)) {\n            this._zoneManager.setPixelRatio(options.get(143 /* EditorOption.pixelRatio */));\n            this._domNode.setWidth(this._zoneManager.getDOMWidth());\n            this._domNode.setHeight(this._zoneManager.getDOMHeight());\n            this._domNode.domNode.width = this._zoneManager.getCanvasWidth();\n            this._domNode.domNode.height = this._zoneManager.getCanvasHeight();\n            this._render();\n        }\n        return true;\n    }\n    onFlushed(e) {\n        this._render();\n        return true;\n    }\n    onScrollChanged(e) {\n        if (e.scrollHeightChanged) {\n            this._zoneManager.setOuterHeight(e.scrollHeight);\n            this._render();\n        }\n        return true;\n    }\n    onZonesChanged(e) {\n        this._render();\n        return true;\n    }\n    // ---- end view event handlers\n    getDomNode() {\n        return this._domNode.domNode;\n    }\n    setLayout(position) {\n        this._domNode.setTop(position.top);\n        this._domNode.setRight(position.right);\n        let hasChanged = false;\n        hasChanged = this._zoneManager.setDOMWidth(position.width) || hasChanged;\n        hasChanged = this._zoneManager.setDOMHeight(position.height) || hasChanged;\n        if (hasChanged) {\n            this._domNode.setWidth(this._zoneManager.getDOMWidth());\n            this._domNode.setHeight(this._zoneManager.getDOMHeight());\n            this._domNode.domNode.width = this._zoneManager.getCanvasWidth();\n            this._domNode.domNode.height = this._zoneManager.getCanvasHeight();\n            this._render();\n        }\n    }\n    setZones(zones) {\n        this._zoneManager.setZones(zones);\n        this._render();\n    }\n    _render() {\n        if (this._zoneManager.getOuterHeight() === 0) {\n            return false;\n        }\n        const width = this._zoneManager.getCanvasWidth();\n        const height = this._zoneManager.getCanvasHeight();\n        const colorZones = this._zoneManager.resolveColorZones();\n        const id2Color = this._zoneManager.getId2Color();\n        const ctx = this._domNode.domNode.getContext('2d');\n        ctx.clearRect(0, 0, width, height);\n        if (colorZones.length > 0) {\n            this._renderOneLane(ctx, colorZones, id2Color, width);\n        }\n        return true;\n    }\n    _renderOneLane(ctx, colorZones, id2Color, width) {\n        let currentColorId = 0;\n        let currentFrom = 0;\n        let currentTo = 0;\n        for (const zone of colorZones) {\n            const zoneColorId = zone.colorId;\n            const zoneFrom = zone.from;\n            const zoneTo = zone.to;\n            if (zoneColorId !== currentColorId) {\n                ctx.fillRect(0, currentFrom, width, currentTo - currentFrom);\n                currentColorId = zoneColorId;\n                ctx.fillStyle = id2Color[currentColorId];\n                currentFrom = zoneFrom;\n                currentTo = zoneTo;\n            }\n            else {\n                if (currentTo >= zoneFrom) {\n                    currentTo = Math.max(currentTo, zoneTo);\n                }\n                else {\n                    ctx.fillRect(0, currentFrom, width, currentTo - currentFrom);\n                    currentFrom = zoneFrom;\n                    currentTo = zoneTo;\n                }\n            }\n        }\n        ctx.fillRect(0, currentFrom, width, currentTo - currentFrom);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/rulers/rulers.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .view-ruler {\n\tposition: absolute;\n\ttop: 0;\n\tbox-shadow: 1px 0 0 0 var(--vscode-editorRuler-foreground) inset;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/rulers/rulers.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './rulers.css';\nimport { createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport { ViewPart } from '../../view/viewPart.js';\nexport class Rulers extends ViewPart {\n    constructor(context) {\n        super(context);\n        this.domNode = createFastDomNode(document.createElement('div'));\n        this.domNode.setAttribute('role', 'presentation');\n        this.domNode.setAttribute('aria-hidden', 'true');\n        this.domNode.setClassName('view-rulers');\n        this._renderedRulers = [];\n        const options = this._context.configuration.options;\n        this._rulers = options.get(102 /* EditorOption.rulers */);\n        this._typicalHalfwidthCharacterWidth = options.get(50 /* EditorOption.fontInfo */).typicalHalfwidthCharacterWidth;\n    }\n    dispose() {\n        super.dispose();\n    }\n    // --- begin event handlers\n    onConfigurationChanged(e) {\n        const options = this._context.configuration.options;\n        this._rulers = options.get(102 /* EditorOption.rulers */);\n        this._typicalHalfwidthCharacterWidth = options.get(50 /* EditorOption.fontInfo */).typicalHalfwidthCharacterWidth;\n        return true;\n    }\n    onScrollChanged(e) {\n        return e.scrollHeightChanged;\n    }\n    // --- end event handlers\n    prepareRender(ctx) {\n        // Nothing to read\n    }\n    _ensureRulersCount() {\n        const currentCount = this._renderedRulers.length;\n        const desiredCount = this._rulers.length;\n        if (currentCount === desiredCount) {\n            // Nothing to do\n            return;\n        }\n        if (currentCount < desiredCount) {\n            const { tabSize } = this._context.viewModel.model.getOptions();\n            const rulerWidth = tabSize;\n            let addCount = desiredCount - currentCount;\n            while (addCount > 0) {\n                const node = createFastDomNode(document.createElement('div'));\n                node.setClassName('view-ruler');\n                node.setWidth(rulerWidth);\n                this.domNode.appendChild(node);\n                this._renderedRulers.push(node);\n                addCount--;\n            }\n            return;\n        }\n        let removeCount = currentCount - desiredCount;\n        while (removeCount > 0) {\n            const node = this._renderedRulers.pop();\n            this.domNode.removeChild(node);\n            removeCount--;\n        }\n    }\n    render(ctx) {\n        this._ensureRulersCount();\n        for (let i = 0, len = this._rulers.length; i < len; i++) {\n            const node = this._renderedRulers[i];\n            const ruler = this._rulers[i];\n            node.setBoxShadow(ruler.color ? `1px 0 0 0 ${ruler.color} inset` : ``);\n            node.setHeight(Math.min(ctx.scrollHeight, 1000000));\n            node.setLeft(ruler.column * this._typicalHalfwidthCharacterWidth);\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .scroll-decoration {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\theight: 6px;\n\tbox-shadow: var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './scrollDecoration.css';\nimport { createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport { ViewPart } from '../../view/viewPart.js';\nexport class ScrollDecorationViewPart extends ViewPart {\n    constructor(context) {\n        super(context);\n        this._scrollTop = 0;\n        this._width = 0;\n        this._updateWidth();\n        this._shouldShow = false;\n        const options = this._context.configuration.options;\n        const scrollbar = options.get(103 /* EditorOption.scrollbar */);\n        this._useShadows = scrollbar.useShadows;\n        this._domNode = createFastDomNode(document.createElement('div'));\n        this._domNode.setAttribute('role', 'presentation');\n        this._domNode.setAttribute('aria-hidden', 'true');\n    }\n    dispose() {\n        super.dispose();\n    }\n    _updateShouldShow() {\n        const newShouldShow = (this._useShadows && this._scrollTop > 0);\n        if (this._shouldShow !== newShouldShow) {\n            this._shouldShow = newShouldShow;\n            return true;\n        }\n        return false;\n    }\n    getDomNode() {\n        return this._domNode;\n    }\n    _updateWidth() {\n        const options = this._context.configuration.options;\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        if (layoutInfo.minimap.renderMinimap === 0 || (layoutInfo.minimap.minimapWidth > 0 && layoutInfo.minimap.minimapLeft === 0)) {\n            this._width = layoutInfo.width;\n        }\n        else {\n            this._width = layoutInfo.width - layoutInfo.verticalScrollbarWidth;\n        }\n    }\n    // --- begin event handlers\n    onConfigurationChanged(e) {\n        const options = this._context.configuration.options;\n        const scrollbar = options.get(103 /* EditorOption.scrollbar */);\n        this._useShadows = scrollbar.useShadows;\n        this._updateWidth();\n        this._updateShouldShow();\n        return true;\n    }\n    onScrollChanged(e) {\n        this._scrollTop = e.scrollTop;\n        return this._updateShouldShow();\n    }\n    // --- end event handlers\n    prepareRender(ctx) {\n        // Nothing to read\n    }\n    render(ctx) {\n        this._domNode.setWidth(this._width);\n        this._domNode.setClassName(this._shouldShow ? 'scroll-decoration' : '');\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/selections/selections.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n/*\n\tKeeping name short for faster parsing.\n\tcslr = core selections layer rendering (div)\n*/\n.monaco-editor .lines-content .cslr {\n\tposition: absolute;\n}\n\n.monaco-editor .focused .selected-text {\n\tbackground-color: var(--vscode-editor-selectionBackground);\n}\n\n.monaco-editor .selected-text {\n\tbackground-color: var(--vscode-editor-inactiveSelectionBackground);\n}\n\n.monaco-editor\t\t\t.top-left-radius\t\t{ border-top-left-radius: 3px; }\n.monaco-editor\t\t\t.bottom-left-radius\t\t{ border-bottom-left-radius: 3px; }\n.monaco-editor\t\t\t.top-right-radius\t\t{ border-top-right-radius: 3px; }\n.monaco-editor\t\t\t.bottom-right-radius\t{ border-bottom-right-radius: 3px; }\n\n.monaco-editor.hc-black .top-left-radius\t\t{ border-top-left-radius: 0; }\n.monaco-editor.hc-black .bottom-left-radius\t\t{ border-bottom-left-radius: 0; }\n.monaco-editor.hc-black .top-right-radius\t\t{ border-top-right-radius: 0; }\n.monaco-editor.hc-black .bottom-right-radius\t{ border-bottom-right-radius: 0; }\n\n.monaco-editor.hc-light .top-left-radius\t\t{ border-top-left-radius: 0; }\n.monaco-editor.hc-light .bottom-left-radius\t\t{ border-bottom-left-radius: 0; }\n.monaco-editor.hc-light .top-right-radius\t\t{ border-top-right-radius: 0; }\n.monaco-editor.hc-light .bottom-right-radius\t{ border-bottom-right-radius: 0; }\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/selections/selections.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './selections.css';\nimport { DynamicViewOverlay } from '../../view/dynamicViewOverlay.js';\nimport { editorSelectionForeground } from '../../../../platform/theme/common/colorRegistry.js';\nimport { registerThemingParticipant } from '../../../../platform/theme/common/themeService.js';\nclass HorizontalRangeWithStyle {\n    constructor(other) {\n        this.left = other.left;\n        this.width = other.width;\n        this.startStyle = null;\n        this.endStyle = null;\n    }\n}\nclass LineVisibleRangesWithStyle {\n    constructor(lineNumber, ranges) {\n        this.lineNumber = lineNumber;\n        this.ranges = ranges;\n    }\n}\nfunction toStyledRange(item) {\n    return new HorizontalRangeWithStyle(item);\n}\nfunction toStyled(item) {\n    return new LineVisibleRangesWithStyle(item.lineNumber, item.ranges.map(toStyledRange));\n}\nexport class SelectionsOverlay extends DynamicViewOverlay {\n    constructor(context) {\n        super();\n        this._previousFrameVisibleRangesWithStyle = [];\n        this._context = context;\n        const options = this._context.configuration.options;\n        this._roundedSelection = options.get(101 /* EditorOption.roundedSelection */);\n        this._typicalHalfwidthCharacterWidth = options.get(50 /* EditorOption.fontInfo */).typicalHalfwidthCharacterWidth;\n        this._selections = [];\n        this._renderResult = null;\n        this._context.addEventHandler(this);\n    }\n    dispose() {\n        this._context.removeEventHandler(this);\n        this._renderResult = null;\n        super.dispose();\n    }\n    // --- begin event handlers\n    onConfigurationChanged(e) {\n        const options = this._context.configuration.options;\n        this._roundedSelection = options.get(101 /* EditorOption.roundedSelection */);\n        this._typicalHalfwidthCharacterWidth = options.get(50 /* EditorOption.fontInfo */).typicalHalfwidthCharacterWidth;\n        return true;\n    }\n    onCursorStateChanged(e) {\n        this._selections = e.selections.slice(0);\n        return true;\n    }\n    onDecorationsChanged(e) {\n        // true for inline decorations that can end up relayouting text\n        return true; //e.inlineDecorationsChanged;\n    }\n    onFlushed(e) {\n        return true;\n    }\n    onLinesChanged(e) {\n        return true;\n    }\n    onLinesDeleted(e) {\n        return true;\n    }\n    onLinesInserted(e) {\n        return true;\n    }\n    onScrollChanged(e) {\n        return e.scrollTopChanged;\n    }\n    onZonesChanged(e) {\n        return true;\n    }\n    // --- end event handlers\n    _visibleRangesHaveGaps(linesVisibleRanges) {\n        for (let i = 0, len = linesVisibleRanges.length; i < len; i++) {\n            const lineVisibleRanges = linesVisibleRanges[i];\n            if (lineVisibleRanges.ranges.length > 1) {\n                // There are two ranges on the same line\n                return true;\n            }\n        }\n        return false;\n    }\n    _enrichVisibleRangesWithStyle(viewport, linesVisibleRanges, previousFrame) {\n        const epsilon = this._typicalHalfwidthCharacterWidth / 4;\n        let previousFrameTop = null;\n        let previousFrameBottom = null;\n        if (previousFrame && previousFrame.length > 0 && linesVisibleRanges.length > 0) {\n            const topLineNumber = linesVisibleRanges[0].lineNumber;\n            if (topLineNumber === viewport.startLineNumber) {\n                for (let i = 0; !previousFrameTop && i < previousFrame.length; i++) {\n                    if (previousFrame[i].lineNumber === topLineNumber) {\n                        previousFrameTop = previousFrame[i].ranges[0];\n                    }\n                }\n            }\n            const bottomLineNumber = linesVisibleRanges[linesVisibleRanges.length - 1].lineNumber;\n            if (bottomLineNumber === viewport.endLineNumber) {\n                for (let i = previousFrame.length - 1; !previousFrameBottom && i >= 0; i--) {\n                    if (previousFrame[i].lineNumber === bottomLineNumber) {\n                        previousFrameBottom = previousFrame[i].ranges[0];\n                    }\n                }\n            }\n            if (previousFrameTop && !previousFrameTop.startStyle) {\n                previousFrameTop = null;\n            }\n            if (previousFrameBottom && !previousFrameBottom.startStyle) {\n                previousFrameBottom = null;\n            }\n        }\n        for (let i = 0, len = linesVisibleRanges.length; i < len; i++) {\n            // We know for a fact that there is precisely one range on each line\n            const curLineRange = linesVisibleRanges[i].ranges[0];\n            const curLeft = curLineRange.left;\n            const curRight = curLineRange.left + curLineRange.width;\n            const startStyle = {\n                top: 0 /* CornerStyle.EXTERN */,\n                bottom: 0 /* CornerStyle.EXTERN */\n            };\n            const endStyle = {\n                top: 0 /* CornerStyle.EXTERN */,\n                bottom: 0 /* CornerStyle.EXTERN */\n            };\n            if (i > 0) {\n                // Look above\n                const prevLeft = linesVisibleRanges[i - 1].ranges[0].left;\n                const prevRight = linesVisibleRanges[i - 1].ranges[0].left + linesVisibleRanges[i - 1].ranges[0].width;\n                if (abs(curLeft - prevLeft) < epsilon) {\n                    startStyle.top = 2 /* CornerStyle.FLAT */;\n                }\n                else if (curLeft > prevLeft) {\n                    startStyle.top = 1 /* CornerStyle.INTERN */;\n                }\n                if (abs(curRight - prevRight) < epsilon) {\n                    endStyle.top = 2 /* CornerStyle.FLAT */;\n                }\n                else if (prevLeft < curRight && curRight < prevRight) {\n                    endStyle.top = 1 /* CornerStyle.INTERN */;\n                }\n            }\n            else if (previousFrameTop) {\n                // Accept some hiccups near the viewport edges to save on repaints\n                startStyle.top = previousFrameTop.startStyle.top;\n                endStyle.top = previousFrameTop.endStyle.top;\n            }\n            if (i + 1 < len) {\n                // Look below\n                const nextLeft = linesVisibleRanges[i + 1].ranges[0].left;\n                const nextRight = linesVisibleRanges[i + 1].ranges[0].left + linesVisibleRanges[i + 1].ranges[0].width;\n                if (abs(curLeft - nextLeft) < epsilon) {\n                    startStyle.bottom = 2 /* CornerStyle.FLAT */;\n                }\n                else if (nextLeft < curLeft && curLeft < nextRight) {\n                    startStyle.bottom = 1 /* CornerStyle.INTERN */;\n                }\n                if (abs(curRight - nextRight) < epsilon) {\n                    endStyle.bottom = 2 /* CornerStyle.FLAT */;\n                }\n                else if (curRight < nextRight) {\n                    endStyle.bottom = 1 /* CornerStyle.INTERN */;\n                }\n            }\n            else if (previousFrameBottom) {\n                // Accept some hiccups near the viewport edges to save on repaints\n                startStyle.bottom = previousFrameBottom.startStyle.bottom;\n                endStyle.bottom = previousFrameBottom.endStyle.bottom;\n            }\n            curLineRange.startStyle = startStyle;\n            curLineRange.endStyle = endStyle;\n        }\n    }\n    _getVisibleRangesWithStyle(selection, ctx, previousFrame) {\n        const _linesVisibleRanges = ctx.linesVisibleRangesForRange(selection, true) || [];\n        const linesVisibleRanges = _linesVisibleRanges.map(toStyled);\n        const visibleRangesHaveGaps = this._visibleRangesHaveGaps(linesVisibleRanges);\n        if (!visibleRangesHaveGaps && this._roundedSelection) {\n            this._enrichVisibleRangesWithStyle(ctx.visibleRange, linesVisibleRanges, previousFrame);\n        }\n        // The visible ranges are sorted TOP-BOTTOM and LEFT-RIGHT\n        return linesVisibleRanges;\n    }\n    _createSelectionPiece(top, bottom, className, left, width) {\n        return ('<div class=\"cslr '\n            + className\n            + '\" style=\"'\n            + 'top:' + top.toString() + 'px;'\n            + 'bottom:' + bottom.toString() + 'px;'\n            + 'left:' + left.toString() + 'px;'\n            + 'width:' + width.toString() + 'px;'\n            + '\"></div>');\n    }\n    _actualRenderOneSelection(output2, visibleStartLineNumber, hasMultipleSelections, visibleRanges) {\n        if (visibleRanges.length === 0) {\n            return;\n        }\n        const visibleRangesHaveStyle = !!visibleRanges[0].ranges[0].startStyle;\n        const firstLineNumber = visibleRanges[0].lineNumber;\n        const lastLineNumber = visibleRanges[visibleRanges.length - 1].lineNumber;\n        for (let i = 0, len = visibleRanges.length; i < len; i++) {\n            const lineVisibleRanges = visibleRanges[i];\n            const lineNumber = lineVisibleRanges.lineNumber;\n            const lineIndex = lineNumber - visibleStartLineNumber;\n            const top = hasMultipleSelections ? (lineNumber === firstLineNumber ? 1 : 0) : 0;\n            const bottom = hasMultipleSelections ? (lineNumber !== firstLineNumber && lineNumber === lastLineNumber ? 1 : 0) : 0;\n            let innerCornerOutput = '';\n            let restOfSelectionOutput = '';\n            for (let j = 0, lenJ = lineVisibleRanges.ranges.length; j < lenJ; j++) {\n                const visibleRange = lineVisibleRanges.ranges[j];\n                if (visibleRangesHaveStyle) {\n                    const startStyle = visibleRange.startStyle;\n                    const endStyle = visibleRange.endStyle;\n                    if (startStyle.top === 1 /* CornerStyle.INTERN */ || startStyle.bottom === 1 /* CornerStyle.INTERN */) {\n                        // Reverse rounded corner to the left\n                        // First comes the selection (blue layer)\n                        innerCornerOutput += this._createSelectionPiece(top, bottom, SelectionsOverlay.SELECTION_CLASS_NAME, visibleRange.left - SelectionsOverlay.ROUNDED_PIECE_WIDTH, SelectionsOverlay.ROUNDED_PIECE_WIDTH);\n                        // Second comes the background (white layer) with inverse border radius\n                        let className = SelectionsOverlay.EDITOR_BACKGROUND_CLASS_NAME;\n                        if (startStyle.top === 1 /* CornerStyle.INTERN */) {\n                            className += ' ' + SelectionsOverlay.SELECTION_TOP_RIGHT;\n                        }\n                        if (startStyle.bottom === 1 /* CornerStyle.INTERN */) {\n                            className += ' ' + SelectionsOverlay.SELECTION_BOTTOM_RIGHT;\n                        }\n                        innerCornerOutput += this._createSelectionPiece(top, bottom, className, visibleRange.left - SelectionsOverlay.ROUNDED_PIECE_WIDTH, SelectionsOverlay.ROUNDED_PIECE_WIDTH);\n                    }\n                    if (endStyle.top === 1 /* CornerStyle.INTERN */ || endStyle.bottom === 1 /* CornerStyle.INTERN */) {\n                        // Reverse rounded corner to the right\n                        // First comes the selection (blue layer)\n                        innerCornerOutput += this._createSelectionPiece(top, bottom, SelectionsOverlay.SELECTION_CLASS_NAME, visibleRange.left + visibleRange.width, SelectionsOverlay.ROUNDED_PIECE_WIDTH);\n                        // Second comes the background (white layer) with inverse border radius\n                        let className = SelectionsOverlay.EDITOR_BACKGROUND_CLASS_NAME;\n                        if (endStyle.top === 1 /* CornerStyle.INTERN */) {\n                            className += ' ' + SelectionsOverlay.SELECTION_TOP_LEFT;\n                        }\n                        if (endStyle.bottom === 1 /* CornerStyle.INTERN */) {\n                            className += ' ' + SelectionsOverlay.SELECTION_BOTTOM_LEFT;\n                        }\n                        innerCornerOutput += this._createSelectionPiece(top, bottom, className, visibleRange.left + visibleRange.width, SelectionsOverlay.ROUNDED_PIECE_WIDTH);\n                    }\n                }\n                let className = SelectionsOverlay.SELECTION_CLASS_NAME;\n                if (visibleRangesHaveStyle) {\n                    const startStyle = visibleRange.startStyle;\n                    const endStyle = visibleRange.endStyle;\n                    if (startStyle.top === 0 /* CornerStyle.EXTERN */) {\n                        className += ' ' + SelectionsOverlay.SELECTION_TOP_LEFT;\n                    }\n                    if (startStyle.bottom === 0 /* CornerStyle.EXTERN */) {\n                        className += ' ' + SelectionsOverlay.SELECTION_BOTTOM_LEFT;\n                    }\n                    if (endStyle.top === 0 /* CornerStyle.EXTERN */) {\n                        className += ' ' + SelectionsOverlay.SELECTION_TOP_RIGHT;\n                    }\n                    if (endStyle.bottom === 0 /* CornerStyle.EXTERN */) {\n                        className += ' ' + SelectionsOverlay.SELECTION_BOTTOM_RIGHT;\n                    }\n                }\n                restOfSelectionOutput += this._createSelectionPiece(top, bottom, className, visibleRange.left, visibleRange.width);\n            }\n            output2[lineIndex][0] += innerCornerOutput;\n            output2[lineIndex][1] += restOfSelectionOutput;\n        }\n    }\n    prepareRender(ctx) {\n        // Build HTML for inner corners separate from HTML for the rest of selections,\n        // as the inner corner HTML can interfere with that of other selections.\n        // In final render, make sure to place the inner corner HTML before the rest of selection HTML. See issue #77777.\n        const output = [];\n        const visibleStartLineNumber = ctx.visibleRange.startLineNumber;\n        const visibleEndLineNumber = ctx.visibleRange.endLineNumber;\n        for (let lineNumber = visibleStartLineNumber; lineNumber <= visibleEndLineNumber; lineNumber++) {\n            const lineIndex = lineNumber - visibleStartLineNumber;\n            output[lineIndex] = ['', ''];\n        }\n        const thisFrameVisibleRangesWithStyle = [];\n        for (let i = 0, len = this._selections.length; i < len; i++) {\n            const selection = this._selections[i];\n            if (selection.isEmpty()) {\n                thisFrameVisibleRangesWithStyle[i] = null;\n                continue;\n            }\n            const visibleRangesWithStyle = this._getVisibleRangesWithStyle(selection, ctx, this._previousFrameVisibleRangesWithStyle[i]);\n            thisFrameVisibleRangesWithStyle[i] = visibleRangesWithStyle;\n            this._actualRenderOneSelection(output, visibleStartLineNumber, this._selections.length > 1, visibleRangesWithStyle);\n        }\n        this._previousFrameVisibleRangesWithStyle = thisFrameVisibleRangesWithStyle;\n        this._renderResult = output.map(([internalCorners, restOfSelection]) => internalCorners + restOfSelection);\n    }\n    render(startLineNumber, lineNumber) {\n        if (!this._renderResult) {\n            return '';\n        }\n        const lineIndex = lineNumber - startLineNumber;\n        if (lineIndex < 0 || lineIndex >= this._renderResult.length) {\n            return '';\n        }\n        return this._renderResult[lineIndex];\n    }\n}\nSelectionsOverlay.SELECTION_CLASS_NAME = 'selected-text';\nSelectionsOverlay.SELECTION_TOP_LEFT = 'top-left-radius';\nSelectionsOverlay.SELECTION_BOTTOM_LEFT = 'bottom-left-radius';\nSelectionsOverlay.SELECTION_TOP_RIGHT = 'top-right-radius';\nSelectionsOverlay.SELECTION_BOTTOM_RIGHT = 'bottom-right-radius';\nSelectionsOverlay.EDITOR_BACKGROUND_CLASS_NAME = 'monaco-editor-background';\nSelectionsOverlay.ROUNDED_PIECE_WIDTH = 10;\nregisterThemingParticipant((theme, collector) => {\n    const editorSelectionForegroundColor = theme.getColor(editorSelectionForeground);\n    if (editorSelectionForegroundColor && !editorSelectionForegroundColor.isTransparent()) {\n        collector.addRule(`.monaco-editor .view-line span.inline-selected-text { color: ${editorSelectionForegroundColor}; }`);\n    }\n});\nfunction abs(n) {\n    return n < 0 ? -n : n;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/viewCursors/viewCursor.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../../../base/browser/dom.js';\nimport { createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport * as strings from '../../../../base/common/strings.js';\nimport { applyFontInfo } from '../../config/domFontInfo.js';\nimport { TextEditorCursorStyle } from '../../../common/config/editorOptions.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { MOUSE_CURSOR_TEXT_CSS_CLASS_NAME } from '../../../../base/browser/ui/mouseCursor/mouseCursor.js';\nclass ViewCursorRenderData {\n    constructor(top, left, paddingLeft, width, height, textContent, textContentClassName) {\n        this.top = top;\n        this.left = left;\n        this.paddingLeft = paddingLeft;\n        this.width = width;\n        this.height = height;\n        this.textContent = textContent;\n        this.textContentClassName = textContentClassName;\n    }\n}\nexport var CursorPlurality;\n(function (CursorPlurality) {\n    CursorPlurality[CursorPlurality[\"Single\"] = 0] = \"Single\";\n    CursorPlurality[CursorPlurality[\"MultiPrimary\"] = 1] = \"MultiPrimary\";\n    CursorPlurality[CursorPlurality[\"MultiSecondary\"] = 2] = \"MultiSecondary\";\n})(CursorPlurality || (CursorPlurality = {}));\nexport class ViewCursor {\n    constructor(context, plurality) {\n        this._context = context;\n        const options = this._context.configuration.options;\n        const fontInfo = options.get(50 /* EditorOption.fontInfo */);\n        this._cursorStyle = options.get(28 /* EditorOption.cursorStyle */);\n        this._lineHeight = options.get(67 /* EditorOption.lineHeight */);\n        this._typicalHalfwidthCharacterWidth = fontInfo.typicalHalfwidthCharacterWidth;\n        this._lineCursorWidth = Math.min(options.get(31 /* EditorOption.cursorWidth */), this._typicalHalfwidthCharacterWidth);\n        this._isVisible = true;\n        // Create the dom node\n        this._domNode = createFastDomNode(document.createElement('div'));\n        this._domNode.setClassName(`cursor ${MOUSE_CURSOR_TEXT_CSS_CLASS_NAME}`);\n        this._domNode.setHeight(this._lineHeight);\n        this._domNode.setTop(0);\n        this._domNode.setLeft(0);\n        applyFontInfo(this._domNode, fontInfo);\n        this._domNode.setDisplay('none');\n        this._position = new Position(1, 1);\n        this._pluralityClass = '';\n        this.setPlurality(plurality);\n        this._lastRenderedContent = '';\n        this._renderData = null;\n    }\n    getDomNode() {\n        return this._domNode;\n    }\n    getPosition() {\n        return this._position;\n    }\n    setPlurality(plurality) {\n        switch (plurality) {\n            default:\n            case CursorPlurality.Single:\n                this._pluralityClass = '';\n                break;\n            case CursorPlurality.MultiPrimary:\n                this._pluralityClass = 'cursor-primary';\n                break;\n            case CursorPlurality.MultiSecondary:\n                this._pluralityClass = 'cursor-secondary';\n                break;\n        }\n    }\n    show() {\n        if (!this._isVisible) {\n            this._domNode.setVisibility('inherit');\n            this._isVisible = true;\n        }\n    }\n    hide() {\n        if (this._isVisible) {\n            this._domNode.setVisibility('hidden');\n            this._isVisible = false;\n        }\n    }\n    onConfigurationChanged(e) {\n        const options = this._context.configuration.options;\n        const fontInfo = options.get(50 /* EditorOption.fontInfo */);\n        this._cursorStyle = options.get(28 /* EditorOption.cursorStyle */);\n        this._lineHeight = options.get(67 /* EditorOption.lineHeight */);\n        this._typicalHalfwidthCharacterWidth = fontInfo.typicalHalfwidthCharacterWidth;\n        this._lineCursorWidth = Math.min(options.get(31 /* EditorOption.cursorWidth */), this._typicalHalfwidthCharacterWidth);\n        applyFontInfo(this._domNode, fontInfo);\n        return true;\n    }\n    onCursorPositionChanged(position, pauseAnimation) {\n        if (pauseAnimation) {\n            this._domNode.domNode.style.transitionProperty = 'none';\n        }\n        else {\n            this._domNode.domNode.style.transitionProperty = '';\n        }\n        this._position = position;\n        return true;\n    }\n    /**\n     * If `this._position` is inside a grapheme, returns the position where the grapheme starts.\n     * Also returns the next grapheme.\n     */\n    _getGraphemeAwarePosition() {\n        const { lineNumber, column } = this._position;\n        const lineContent = this._context.viewModel.getLineContent(lineNumber);\n        const [startOffset, endOffset] = strings.getCharContainingOffset(lineContent, column - 1);\n        return [new Position(lineNumber, startOffset + 1), lineContent.substring(startOffset, endOffset)];\n    }\n    _prepareRender(ctx) {\n        let textContent = '';\n        let textContentClassName = '';\n        const [position, nextGrapheme] = this._getGraphemeAwarePosition();\n        if (this._cursorStyle === TextEditorCursorStyle.Line || this._cursorStyle === TextEditorCursorStyle.LineThin) {\n            const visibleRange = ctx.visibleRangeForPosition(position);\n            if (!visibleRange || visibleRange.outsideRenderedLine) {\n                // Outside viewport\n                return null;\n            }\n            const window = dom.getWindow(this._domNode.domNode);\n            let width;\n            if (this._cursorStyle === TextEditorCursorStyle.Line) {\n                width = dom.computeScreenAwareSize(window, this._lineCursorWidth > 0 ? this._lineCursorWidth : 2);\n                if (width > 2) {\n                    textContent = nextGrapheme;\n                    textContentClassName = this._getTokenClassName(position);\n                }\n            }\n            else {\n                width = dom.computeScreenAwareSize(window, 1);\n            }\n            let left = visibleRange.left;\n            let paddingLeft = 0;\n            if (width >= 2 && left >= 1) {\n                // shift the cursor a bit between the characters\n                paddingLeft = 1;\n                left -= paddingLeft;\n            }\n            const top = ctx.getVerticalOffsetForLineNumber(position.lineNumber) - ctx.bigNumbersDelta;\n            return new ViewCursorRenderData(top, left, paddingLeft, width, this._lineHeight, textContent, textContentClassName);\n        }\n        const visibleRangeForCharacter = ctx.linesVisibleRangesForRange(new Range(position.lineNumber, position.column, position.lineNumber, position.column + nextGrapheme.length), false);\n        if (!visibleRangeForCharacter || visibleRangeForCharacter.length === 0) {\n            // Outside viewport\n            return null;\n        }\n        const firstVisibleRangeForCharacter = visibleRangeForCharacter[0];\n        if (firstVisibleRangeForCharacter.outsideRenderedLine || firstVisibleRangeForCharacter.ranges.length === 0) {\n            // Outside viewport\n            return null;\n        }\n        const range = firstVisibleRangeForCharacter.ranges[0];\n        const width = (nextGrapheme === '\\t'\n            ? this._typicalHalfwidthCharacterWidth\n            : (range.width < 1\n                ? this._typicalHalfwidthCharacterWidth\n                : range.width));\n        if (this._cursorStyle === TextEditorCursorStyle.Block) {\n            textContent = nextGrapheme;\n            textContentClassName = this._getTokenClassName(position);\n        }\n        let top = ctx.getVerticalOffsetForLineNumber(position.lineNumber) - ctx.bigNumbersDelta;\n        let height = this._lineHeight;\n        // Underline might interfere with clicking\n        if (this._cursorStyle === TextEditorCursorStyle.Underline || this._cursorStyle === TextEditorCursorStyle.UnderlineThin) {\n            top += this._lineHeight - 2;\n            height = 2;\n        }\n        return new ViewCursorRenderData(top, range.left, 0, width, height, textContent, textContentClassName);\n    }\n    _getTokenClassName(position) {\n        const lineData = this._context.viewModel.getViewLineData(position.lineNumber);\n        const tokenIndex = lineData.tokens.findTokenIndexAtOffset(position.column - 1);\n        return lineData.tokens.getClassName(tokenIndex);\n    }\n    prepareRender(ctx) {\n        this._renderData = this._prepareRender(ctx);\n    }\n    render(ctx) {\n        if (!this._renderData) {\n            this._domNode.setDisplay('none');\n            return null;\n        }\n        if (this._lastRenderedContent !== this._renderData.textContent) {\n            this._lastRenderedContent = this._renderData.textContent;\n            this._domNode.domNode.textContent = this._lastRenderedContent;\n        }\n        this._domNode.setClassName(`cursor ${this._pluralityClass} ${MOUSE_CURSOR_TEXT_CSS_CLASS_NAME} ${this._renderData.textContentClassName}`);\n        this._domNode.setDisplay('block');\n        this._domNode.setTop(this._renderData.top);\n        this._domNode.setLeft(this._renderData.left);\n        this._domNode.setPaddingLeft(this._renderData.paddingLeft);\n        this._domNode.setWidth(this._renderData.width);\n        this._domNode.setLineHeight(this._renderData.height);\n        this._domNode.setHeight(this._renderData.height);\n        return {\n            domNode: this._domNode.domNode,\n            position: this._position,\n            contentLeft: this._renderData.left,\n            height: this._renderData.height,\n            width: 2\n        };\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/viewCursors/viewCursors.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n.monaco-editor .cursors-layer {\n\tposition: absolute;\n\ttop: 0;\n}\n\n.monaco-editor .cursors-layer > .cursor {\n\tposition: absolute;\n\toverflow: hidden;\n\tbox-sizing: border-box;\n}\n\n/* -- smooth-caret-animation -- */\n.monaco-editor .cursors-layer.cursor-smooth-caret-animation > .cursor {\n\ttransition: all 80ms;\n}\n\n/* -- block-outline-style -- */\n.monaco-editor .cursors-layer.cursor-block-outline-style > .cursor {\n\tbackground: transparent !important;\n\tborder-style: solid;\n\tborder-width: 1px;\n}\n\n/* -- underline-style -- */\n.monaco-editor .cursors-layer.cursor-underline-style > .cursor {\n\tborder-bottom-width: 2px;\n\tborder-bottom-style: solid;\n\tbackground: transparent !important;\n}\n\n/* -- underline-thin-style -- */\n.monaco-editor .cursors-layer.cursor-underline-thin-style > .cursor {\n\tborder-bottom-width: 1px;\n\tborder-bottom-style: solid;\n\tbackground: transparent !important;\n}\n\n@keyframes monaco-cursor-smooth {\n\t0%,\n\t20% {\n\t\topacity: 1;\n\t}\n\t60%,\n\t100% {\n\t\topacity: 0;\n\t}\n}\n\n@keyframes monaco-cursor-phase {\n\t0%,\n\t20% {\n\t\topacity: 1;\n\t}\n\t90%,\n\t100% {\n\t\topacity: 0;\n\t}\n}\n\n@keyframes monaco-cursor-expand {\n\t0%,\n\t20% {\n\t\ttransform: scaleY(1);\n\t}\n\t80%,\n\t100% {\n\t\ttransform: scaleY(0);\n\t}\n}\n\n.cursor-smooth {\n\tanimation: monaco-cursor-smooth 0.5s ease-in-out 0s 20 alternate;\n}\n\n.cursor-phase {\n\tanimation: monaco-cursor-phase 0.5s ease-in-out 0s 20 alternate;\n}\n\n.cursor-expand > .cursor {\n\tanimation: monaco-cursor-expand 0.5s ease-in-out 0s 20 alternate;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/viewCursors/viewCursors.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './viewCursors.css';\nimport { createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport { TimeoutTimer } from '../../../../base/common/async.js';\nimport { ViewPart } from '../../view/viewPart.js';\nimport { ViewCursor, CursorPlurality } from './viewCursor.js';\nimport { TextEditorCursorStyle } from '../../../common/config/editorOptions.js';\nimport { editorCursorBackground, editorCursorForeground, editorMultiCursorPrimaryForeground, editorMultiCursorPrimaryBackground, editorMultiCursorSecondaryForeground, editorMultiCursorSecondaryBackground } from '../../../common/core/editorColorRegistry.js';\nimport { registerThemingParticipant } from '../../../../platform/theme/common/themeService.js';\nimport { isHighContrast } from '../../../../platform/theme/common/theme.js';\nimport { WindowIntervalTimer, getWindow } from '../../../../base/browser/dom.js';\nexport class ViewCursors extends ViewPart {\n    constructor(context) {\n        super(context);\n        const options = this._context.configuration.options;\n        this._readOnly = options.get(91 /* EditorOption.readOnly */);\n        this._cursorBlinking = options.get(26 /* EditorOption.cursorBlinking */);\n        this._cursorStyle = options.get(28 /* EditorOption.cursorStyle */);\n        this._cursorSmoothCaretAnimation = options.get(27 /* EditorOption.cursorSmoothCaretAnimation */);\n        this._selectionIsEmpty = true;\n        this._isComposingInput = false;\n        this._isVisible = false;\n        this._primaryCursor = new ViewCursor(this._context, CursorPlurality.Single);\n        this._secondaryCursors = [];\n        this._renderData = [];\n        this._domNode = createFastDomNode(document.createElement('div'));\n        this._domNode.setAttribute('role', 'presentation');\n        this._domNode.setAttribute('aria-hidden', 'true');\n        this._updateDomClassName();\n        this._domNode.appendChild(this._primaryCursor.getDomNode());\n        this._startCursorBlinkAnimation = new TimeoutTimer();\n        this._cursorFlatBlinkInterval = new WindowIntervalTimer();\n        this._blinkingEnabled = false;\n        this._editorHasFocus = false;\n        this._updateBlinking();\n    }\n    dispose() {\n        super.dispose();\n        this._startCursorBlinkAnimation.dispose();\n        this._cursorFlatBlinkInterval.dispose();\n    }\n    getDomNode() {\n        return this._domNode;\n    }\n    // --- begin event handlers\n    onCompositionStart(e) {\n        this._isComposingInput = true;\n        this._updateBlinking();\n        return true;\n    }\n    onCompositionEnd(e) {\n        this._isComposingInput = false;\n        this._updateBlinking();\n        return true;\n    }\n    onConfigurationChanged(e) {\n        const options = this._context.configuration.options;\n        this._readOnly = options.get(91 /* EditorOption.readOnly */);\n        this._cursorBlinking = options.get(26 /* EditorOption.cursorBlinking */);\n        this._cursorStyle = options.get(28 /* EditorOption.cursorStyle */);\n        this._cursorSmoothCaretAnimation = options.get(27 /* EditorOption.cursorSmoothCaretAnimation */);\n        this._updateBlinking();\n        this._updateDomClassName();\n        this._primaryCursor.onConfigurationChanged(e);\n        for (let i = 0, len = this._secondaryCursors.length; i < len; i++) {\n            this._secondaryCursors[i].onConfigurationChanged(e);\n        }\n        return true;\n    }\n    _onCursorPositionChanged(position, secondaryPositions, reason) {\n        const pauseAnimation = (this._secondaryCursors.length !== secondaryPositions.length\n            || (this._cursorSmoothCaretAnimation === 'explicit' && reason !== 3 /* CursorChangeReason.Explicit */));\n        this._primaryCursor.setPlurality(secondaryPositions.length ? CursorPlurality.MultiPrimary : CursorPlurality.Single);\n        this._primaryCursor.onCursorPositionChanged(position, pauseAnimation);\n        this._updateBlinking();\n        if (this._secondaryCursors.length < secondaryPositions.length) {\n            // Create new cursors\n            const addCnt = secondaryPositions.length - this._secondaryCursors.length;\n            for (let i = 0; i < addCnt; i++) {\n                const newCursor = new ViewCursor(this._context, CursorPlurality.MultiSecondary);\n                this._domNode.domNode.insertBefore(newCursor.getDomNode().domNode, this._primaryCursor.getDomNode().domNode.nextSibling);\n                this._secondaryCursors.push(newCursor);\n            }\n        }\n        else if (this._secondaryCursors.length > secondaryPositions.length) {\n            // Remove some cursors\n            const removeCnt = this._secondaryCursors.length - secondaryPositions.length;\n            for (let i = 0; i < removeCnt; i++) {\n                this._domNode.removeChild(this._secondaryCursors[0].getDomNode());\n                this._secondaryCursors.splice(0, 1);\n            }\n        }\n        for (let i = 0; i < secondaryPositions.length; i++) {\n            this._secondaryCursors[i].onCursorPositionChanged(secondaryPositions[i], pauseAnimation);\n        }\n    }\n    onCursorStateChanged(e) {\n        const positions = [];\n        for (let i = 0, len = e.selections.length; i < len; i++) {\n            positions[i] = e.selections[i].getPosition();\n        }\n        this._onCursorPositionChanged(positions[0], positions.slice(1), e.reason);\n        const selectionIsEmpty = e.selections[0].isEmpty();\n        if (this._selectionIsEmpty !== selectionIsEmpty) {\n            this._selectionIsEmpty = selectionIsEmpty;\n            this._updateDomClassName();\n        }\n        return true;\n    }\n    onDecorationsChanged(e) {\n        // true for inline decorations that can end up relayouting text\n        return true;\n    }\n    onFlushed(e) {\n        return true;\n    }\n    onFocusChanged(e) {\n        this._editorHasFocus = e.isFocused;\n        this._updateBlinking();\n        return false;\n    }\n    onLinesChanged(e) {\n        return true;\n    }\n    onLinesDeleted(e) {\n        return true;\n    }\n    onLinesInserted(e) {\n        return true;\n    }\n    onScrollChanged(e) {\n        return true;\n    }\n    onTokensChanged(e) {\n        const shouldRender = (position) => {\n            for (let i = 0, len = e.ranges.length; i < len; i++) {\n                if (e.ranges[i].fromLineNumber <= position.lineNumber && position.lineNumber <= e.ranges[i].toLineNumber) {\n                    return true;\n                }\n            }\n            return false;\n        };\n        if (shouldRender(this._primaryCursor.getPosition())) {\n            return true;\n        }\n        for (const secondaryCursor of this._secondaryCursors) {\n            if (shouldRender(secondaryCursor.getPosition())) {\n                return true;\n            }\n        }\n        return false;\n    }\n    onZonesChanged(e) {\n        return true;\n    }\n    // --- end event handlers\n    // ---- blinking logic\n    _getCursorBlinking() {\n        if (this._isComposingInput) {\n            // avoid double cursors\n            return 0 /* TextEditorCursorBlinkingStyle.Hidden */;\n        }\n        if (!this._editorHasFocus) {\n            return 0 /* TextEditorCursorBlinkingStyle.Hidden */;\n        }\n        if (this._readOnly) {\n            return 5 /* TextEditorCursorBlinkingStyle.Solid */;\n        }\n        return this._cursorBlinking;\n    }\n    _updateBlinking() {\n        this._startCursorBlinkAnimation.cancel();\n        this._cursorFlatBlinkInterval.cancel();\n        const blinkingStyle = this._getCursorBlinking();\n        // hidden and solid are special as they involve no animations\n        const isHidden = (blinkingStyle === 0 /* TextEditorCursorBlinkingStyle.Hidden */);\n        const isSolid = (blinkingStyle === 5 /* TextEditorCursorBlinkingStyle.Solid */);\n        if (isHidden) {\n            this._hide();\n        }\n        else {\n            this._show();\n        }\n        this._blinkingEnabled = false;\n        this._updateDomClassName();\n        if (!isHidden && !isSolid) {\n            if (blinkingStyle === 1 /* TextEditorCursorBlinkingStyle.Blink */) {\n                // flat blinking is handled by JavaScript to save battery life due to Chromium step timing issue https://bugs.chromium.org/p/chromium/issues/detail?id=361587\n                this._cursorFlatBlinkInterval.cancelAndSet(() => {\n                    if (this._isVisible) {\n                        this._hide();\n                    }\n                    else {\n                        this._show();\n                    }\n                }, ViewCursors.BLINK_INTERVAL, getWindow(this._domNode.domNode));\n            }\n            else {\n                this._startCursorBlinkAnimation.setIfNotSet(() => {\n                    this._blinkingEnabled = true;\n                    this._updateDomClassName();\n                }, ViewCursors.BLINK_INTERVAL);\n            }\n        }\n    }\n    // --- end blinking logic\n    _updateDomClassName() {\n        this._domNode.setClassName(this._getClassName());\n    }\n    _getClassName() {\n        let result = 'cursors-layer';\n        if (!this._selectionIsEmpty) {\n            result += ' has-selection';\n        }\n        switch (this._cursorStyle) {\n            case TextEditorCursorStyle.Line:\n                result += ' cursor-line-style';\n                break;\n            case TextEditorCursorStyle.Block:\n                result += ' cursor-block-style';\n                break;\n            case TextEditorCursorStyle.Underline:\n                result += ' cursor-underline-style';\n                break;\n            case TextEditorCursorStyle.LineThin:\n                result += ' cursor-line-thin-style';\n                break;\n            case TextEditorCursorStyle.BlockOutline:\n                result += ' cursor-block-outline-style';\n                break;\n            case TextEditorCursorStyle.UnderlineThin:\n                result += ' cursor-underline-thin-style';\n                break;\n            default:\n                result += ' cursor-line-style';\n        }\n        if (this._blinkingEnabled) {\n            switch (this._getCursorBlinking()) {\n                case 1 /* TextEditorCursorBlinkingStyle.Blink */:\n                    result += ' cursor-blink';\n                    break;\n                case 2 /* TextEditorCursorBlinkingStyle.Smooth */:\n                    result += ' cursor-smooth';\n                    break;\n                case 3 /* TextEditorCursorBlinkingStyle.Phase */:\n                    result += ' cursor-phase';\n                    break;\n                case 4 /* TextEditorCursorBlinkingStyle.Expand */:\n                    result += ' cursor-expand';\n                    break;\n                case 5 /* TextEditorCursorBlinkingStyle.Solid */:\n                    result += ' cursor-solid';\n                    break;\n                default:\n                    result += ' cursor-solid';\n            }\n        }\n        else {\n            result += ' cursor-solid';\n        }\n        if (this._cursorSmoothCaretAnimation === 'on' || this._cursorSmoothCaretAnimation === 'explicit') {\n            result += ' cursor-smooth-caret-animation';\n        }\n        return result;\n    }\n    _show() {\n        this._primaryCursor.show();\n        for (let i = 0, len = this._secondaryCursors.length; i < len; i++) {\n            this._secondaryCursors[i].show();\n        }\n        this._isVisible = true;\n    }\n    _hide() {\n        this._primaryCursor.hide();\n        for (let i = 0, len = this._secondaryCursors.length; i < len; i++) {\n            this._secondaryCursors[i].hide();\n        }\n        this._isVisible = false;\n    }\n    // ---- IViewPart implementation\n    prepareRender(ctx) {\n        this._primaryCursor.prepareRender(ctx);\n        for (let i = 0, len = this._secondaryCursors.length; i < len; i++) {\n            this._secondaryCursors[i].prepareRender(ctx);\n        }\n    }\n    render(ctx) {\n        const renderData = [];\n        let renderDataLen = 0;\n        const primaryRenderData = this._primaryCursor.render(ctx);\n        if (primaryRenderData) {\n            renderData[renderDataLen++] = primaryRenderData;\n        }\n        for (let i = 0, len = this._secondaryCursors.length; i < len; i++) {\n            const secondaryRenderData = this._secondaryCursors[i].render(ctx);\n            if (secondaryRenderData) {\n                renderData[renderDataLen++] = secondaryRenderData;\n            }\n        }\n        this._renderData = renderData;\n    }\n    getLastRenderData() {\n        return this._renderData;\n    }\n}\nViewCursors.BLINK_INTERVAL = 500;\nregisterThemingParticipant((theme, collector) => {\n    const cursorThemes = [\n        { class: '.cursor', foreground: editorCursorForeground, background: editorCursorBackground },\n        { class: '.cursor-primary', foreground: editorMultiCursorPrimaryForeground, background: editorMultiCursorPrimaryBackground },\n        { class: '.cursor-secondary', foreground: editorMultiCursorSecondaryForeground, background: editorMultiCursorSecondaryBackground },\n    ];\n    for (const cursorTheme of cursorThemes) {\n        const caret = theme.getColor(cursorTheme.foreground);\n        if (caret) {\n            let caretBackground = theme.getColor(cursorTheme.background);\n            if (!caretBackground) {\n                caretBackground = caret.opposite();\n            }\n            collector.addRule(`.monaco-editor .cursors-layer ${cursorTheme.class} { background-color: ${caret}; border-color: ${caret}; color: ${caretBackground}; }`);\n            if (isHighContrast(theme.type)) {\n                collector.addRule(`.monaco-editor .cursors-layer.has-selection ${cursorTheme.class} { border-left: 1px solid ${caretBackground}; border-right: 1px solid ${caretBackground}; }`);\n            }\n        }\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/viewZones/viewZones.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport { onUnexpectedError } from '../../../../base/common/errors.js';\nimport { ViewPart } from '../../view/viewPart.js';\nimport { Position } from '../../../common/core/position.js';\nconst invalidFunc = () => { throw new Error(`Invalid change accessor`); };\nexport class ViewZones extends ViewPart {\n    constructor(context) {\n        super(context);\n        const options = this._context.configuration.options;\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        this._lineHeight = options.get(67 /* EditorOption.lineHeight */);\n        this._contentWidth = layoutInfo.contentWidth;\n        this._contentLeft = layoutInfo.contentLeft;\n        this.domNode = createFastDomNode(document.createElement('div'));\n        this.domNode.setClassName('view-zones');\n        this.domNode.setPosition('absolute');\n        this.domNode.setAttribute('role', 'presentation');\n        this.domNode.setAttribute('aria-hidden', 'true');\n        this.marginDomNode = createFastDomNode(document.createElement('div'));\n        this.marginDomNode.setClassName('margin-view-zones');\n        this.marginDomNode.setPosition('absolute');\n        this.marginDomNode.setAttribute('role', 'presentation');\n        this.marginDomNode.setAttribute('aria-hidden', 'true');\n        this._zones = {};\n    }\n    dispose() {\n        super.dispose();\n        this._zones = {};\n    }\n    // ---- begin view event handlers\n    _recomputeWhitespacesProps() {\n        const whitespaces = this._context.viewLayout.getWhitespaces();\n        const oldWhitespaces = new Map();\n        for (const whitespace of whitespaces) {\n            oldWhitespaces.set(whitespace.id, whitespace);\n        }\n        let hadAChange = false;\n        this._context.viewModel.changeWhitespace((whitespaceAccessor) => {\n            const keys = Object.keys(this._zones);\n            for (let i = 0, len = keys.length; i < len; i++) {\n                const id = keys[i];\n                const zone = this._zones[id];\n                const props = this._computeWhitespaceProps(zone.delegate);\n                zone.isInHiddenArea = props.isInHiddenArea;\n                const oldWhitespace = oldWhitespaces.get(id);\n                if (oldWhitespace && (oldWhitespace.afterLineNumber !== props.afterViewLineNumber || oldWhitespace.height !== props.heightInPx)) {\n                    whitespaceAccessor.changeOneWhitespace(id, props.afterViewLineNumber, props.heightInPx);\n                    this._safeCallOnComputedHeight(zone.delegate, props.heightInPx);\n                    hadAChange = true;\n                }\n            }\n        });\n        return hadAChange;\n    }\n    onConfigurationChanged(e) {\n        const options = this._context.configuration.options;\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        this._lineHeight = options.get(67 /* EditorOption.lineHeight */);\n        this._contentWidth = layoutInfo.contentWidth;\n        this._contentLeft = layoutInfo.contentLeft;\n        if (e.hasChanged(67 /* EditorOption.lineHeight */)) {\n            this._recomputeWhitespacesProps();\n        }\n        return true;\n    }\n    onLineMappingChanged(e) {\n        return this._recomputeWhitespacesProps();\n    }\n    onLinesDeleted(e) {\n        return true;\n    }\n    onScrollChanged(e) {\n        return e.scrollTopChanged || e.scrollWidthChanged;\n    }\n    onZonesChanged(e) {\n        return true;\n    }\n    onLinesInserted(e) {\n        return true;\n    }\n    // ---- end view event handlers\n    _getZoneOrdinal(zone) {\n        var _a, _b;\n        return (_b = (_a = zone.ordinal) !== null && _a !== void 0 ? _a : zone.afterColumn) !== null && _b !== void 0 ? _b : 10000;\n    }\n    _computeWhitespaceProps(zone) {\n        if (zone.afterLineNumber === 0) {\n            return {\n                isInHiddenArea: false,\n                afterViewLineNumber: 0,\n                heightInPx: this._heightInPixels(zone),\n                minWidthInPx: this._minWidthInPixels(zone)\n            };\n        }\n        let zoneAfterModelPosition;\n        if (typeof zone.afterColumn !== 'undefined') {\n            zoneAfterModelPosition = this._context.viewModel.model.validatePosition({\n                lineNumber: zone.afterLineNumber,\n                column: zone.afterColumn\n            });\n        }\n        else {\n            const validAfterLineNumber = this._context.viewModel.model.validatePosition({\n                lineNumber: zone.afterLineNumber,\n                column: 1\n            }).lineNumber;\n            zoneAfterModelPosition = new Position(validAfterLineNumber, this._context.viewModel.model.getLineMaxColumn(validAfterLineNumber));\n        }\n        let zoneBeforeModelPosition;\n        if (zoneAfterModelPosition.column === this._context.viewModel.model.getLineMaxColumn(zoneAfterModelPosition.lineNumber)) {\n            zoneBeforeModelPosition = this._context.viewModel.model.validatePosition({\n                lineNumber: zoneAfterModelPosition.lineNumber + 1,\n                column: 1\n            });\n        }\n        else {\n            zoneBeforeModelPosition = this._context.viewModel.model.validatePosition({\n                lineNumber: zoneAfterModelPosition.lineNumber,\n                column: zoneAfterModelPosition.column + 1\n            });\n        }\n        const viewPosition = this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(zoneAfterModelPosition, zone.afterColumnAffinity, true);\n        const isVisible = zone.showInHiddenAreas || this._context.viewModel.coordinatesConverter.modelPositionIsVisible(zoneBeforeModelPosition);\n        return {\n            isInHiddenArea: !isVisible,\n            afterViewLineNumber: viewPosition.lineNumber,\n            heightInPx: (isVisible ? this._heightInPixels(zone) : 0),\n            minWidthInPx: this._minWidthInPixels(zone)\n        };\n    }\n    changeViewZones(callback) {\n        let zonesHaveChanged = false;\n        this._context.viewModel.changeWhitespace((whitespaceAccessor) => {\n            const changeAccessor = {\n                addZone: (zone) => {\n                    zonesHaveChanged = true;\n                    return this._addZone(whitespaceAccessor, zone);\n                },\n                removeZone: (id) => {\n                    if (!id) {\n                        return;\n                    }\n                    zonesHaveChanged = this._removeZone(whitespaceAccessor, id) || zonesHaveChanged;\n                },\n                layoutZone: (id) => {\n                    if (!id) {\n                        return;\n                    }\n                    zonesHaveChanged = this._layoutZone(whitespaceAccessor, id) || zonesHaveChanged;\n                }\n            };\n            safeInvoke1Arg(callback, changeAccessor);\n            // Invalidate changeAccessor\n            changeAccessor.addZone = invalidFunc;\n            changeAccessor.removeZone = invalidFunc;\n            changeAccessor.layoutZone = invalidFunc;\n        });\n        return zonesHaveChanged;\n    }\n    _addZone(whitespaceAccessor, zone) {\n        const props = this._computeWhitespaceProps(zone);\n        const whitespaceId = whitespaceAccessor.insertWhitespace(props.afterViewLineNumber, this._getZoneOrdinal(zone), props.heightInPx, props.minWidthInPx);\n        const myZone = {\n            whitespaceId: whitespaceId,\n            delegate: zone,\n            isInHiddenArea: props.isInHiddenArea,\n            isVisible: false,\n            domNode: createFastDomNode(zone.domNode),\n            marginDomNode: zone.marginDomNode ? createFastDomNode(zone.marginDomNode) : null\n        };\n        this._safeCallOnComputedHeight(myZone.delegate, props.heightInPx);\n        myZone.domNode.setPosition('absolute');\n        myZone.domNode.domNode.style.width = '100%';\n        myZone.domNode.setDisplay('none');\n        myZone.domNode.setAttribute('monaco-view-zone', myZone.whitespaceId);\n        this.domNode.appendChild(myZone.domNode);\n        if (myZone.marginDomNode) {\n            myZone.marginDomNode.setPosition('absolute');\n            myZone.marginDomNode.domNode.style.width = '100%';\n            myZone.marginDomNode.setDisplay('none');\n            myZone.marginDomNode.setAttribute('monaco-view-zone', myZone.whitespaceId);\n            this.marginDomNode.appendChild(myZone.marginDomNode);\n        }\n        this._zones[myZone.whitespaceId] = myZone;\n        this.setShouldRender();\n        return myZone.whitespaceId;\n    }\n    _removeZone(whitespaceAccessor, id) {\n        if (this._zones.hasOwnProperty(id)) {\n            const zone = this._zones[id];\n            delete this._zones[id];\n            whitespaceAccessor.removeWhitespace(zone.whitespaceId);\n            zone.domNode.removeAttribute('monaco-visible-view-zone');\n            zone.domNode.removeAttribute('monaco-view-zone');\n            zone.domNode.domNode.parentNode.removeChild(zone.domNode.domNode);\n            if (zone.marginDomNode) {\n                zone.marginDomNode.removeAttribute('monaco-visible-view-zone');\n                zone.marginDomNode.removeAttribute('monaco-view-zone');\n                zone.marginDomNode.domNode.parentNode.removeChild(zone.marginDomNode.domNode);\n            }\n            this.setShouldRender();\n            return true;\n        }\n        return false;\n    }\n    _layoutZone(whitespaceAccessor, id) {\n        if (this._zones.hasOwnProperty(id)) {\n            const zone = this._zones[id];\n            const props = this._computeWhitespaceProps(zone.delegate);\n            zone.isInHiddenArea = props.isInHiddenArea;\n            // const newOrdinal = this._getZoneOrdinal(zone.delegate);\n            whitespaceAccessor.changeOneWhitespace(zone.whitespaceId, props.afterViewLineNumber, props.heightInPx);\n            // TODO@Alex: change `newOrdinal` too\n            this._safeCallOnComputedHeight(zone.delegate, props.heightInPx);\n            this.setShouldRender();\n            return true;\n        }\n        return false;\n    }\n    shouldSuppressMouseDownOnViewZone(id) {\n        if (this._zones.hasOwnProperty(id)) {\n            const zone = this._zones[id];\n            return Boolean(zone.delegate.suppressMouseDown);\n        }\n        return false;\n    }\n    _heightInPixels(zone) {\n        if (typeof zone.heightInPx === 'number') {\n            return zone.heightInPx;\n        }\n        if (typeof zone.heightInLines === 'number') {\n            return this._lineHeight * zone.heightInLines;\n        }\n        return this._lineHeight;\n    }\n    _minWidthInPixels(zone) {\n        if (typeof zone.minWidthInPx === 'number') {\n            return zone.minWidthInPx;\n        }\n        return 0;\n    }\n    _safeCallOnComputedHeight(zone, height) {\n        if (typeof zone.onComputedHeight === 'function') {\n            try {\n                zone.onComputedHeight(height);\n            }\n            catch (e) {\n                onUnexpectedError(e);\n            }\n        }\n    }\n    _safeCallOnDomNodeTop(zone, top) {\n        if (typeof zone.onDomNodeTop === 'function') {\n            try {\n                zone.onDomNodeTop(top);\n            }\n            catch (e) {\n                onUnexpectedError(e);\n            }\n        }\n    }\n    prepareRender(ctx) {\n        // Nothing to read\n    }\n    render(ctx) {\n        const visibleWhitespaces = ctx.viewportData.whitespaceViewportData;\n        const visibleZones = {};\n        let hasVisibleZone = false;\n        for (const visibleWhitespace of visibleWhitespaces) {\n            if (this._zones[visibleWhitespace.id].isInHiddenArea) {\n                continue;\n            }\n            visibleZones[visibleWhitespace.id] = visibleWhitespace;\n            hasVisibleZone = true;\n        }\n        const keys = Object.keys(this._zones);\n        for (let i = 0, len = keys.length; i < len; i++) {\n            const id = keys[i];\n            const zone = this._zones[id];\n            let newTop = 0;\n            let newHeight = 0;\n            let newDisplay = 'none';\n            if (visibleZones.hasOwnProperty(id)) {\n                newTop = visibleZones[id].verticalOffset - ctx.bigNumbersDelta;\n                newHeight = visibleZones[id].height;\n                newDisplay = 'block';\n                // zone is visible\n                if (!zone.isVisible) {\n                    zone.domNode.setAttribute('monaco-visible-view-zone', 'true');\n                    zone.isVisible = true;\n                }\n                this._safeCallOnDomNodeTop(zone.delegate, ctx.getScrolledTopFromAbsoluteTop(visibleZones[id].verticalOffset));\n            }\n            else {\n                if (zone.isVisible) {\n                    zone.domNode.removeAttribute('monaco-visible-view-zone');\n                    zone.isVisible = false;\n                }\n                this._safeCallOnDomNodeTop(zone.delegate, ctx.getScrolledTopFromAbsoluteTop(-1000000));\n            }\n            zone.domNode.setTop(newTop);\n            zone.domNode.setHeight(newHeight);\n            zone.domNode.setDisplay(newDisplay);\n            if (zone.marginDomNode) {\n                zone.marginDomNode.setTop(newTop);\n                zone.marginDomNode.setHeight(newHeight);\n                zone.marginDomNode.setDisplay(newDisplay);\n            }\n        }\n        if (hasVisibleZone) {\n            this.domNode.setWidth(Math.max(ctx.scrollWidth, this._contentWidth));\n            this.marginDomNode.setWidth(this._contentLeft);\n        }\n    }\n}\nfunction safeInvoke1Arg(func, arg1) {\n    try {\n        return func(arg1);\n    }\n    catch (e) {\n        onUnexpectedError(e);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/whitespace/whitespace.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .mwh {\n\tposition: absolute;\n\tcolor: var(--vscode-editorWhitespace-foreground) !important;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/viewParts/whitespace/whitespace.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './whitespace.css';\nimport { DynamicViewOverlay } from '../../view/dynamicViewOverlay.js';\nimport * as strings from '../../../../base/common/strings.js';\nimport { LineRange } from '../../../common/viewLayout/viewLineRenderer.js';\nimport { Position } from '../../../common/core/position.js';\nimport { editorWhitespaces } from '../../../common/core/editorColorRegistry.js';\nexport class WhitespaceOverlay extends DynamicViewOverlay {\n    constructor(context) {\n        super();\n        this._context = context;\n        this._options = new WhitespaceOptions(this._context.configuration);\n        this._selection = [];\n        this._renderResult = null;\n        this._context.addEventHandler(this);\n    }\n    dispose() {\n        this._context.removeEventHandler(this);\n        this._renderResult = null;\n        super.dispose();\n    }\n    // --- begin event handlers\n    onConfigurationChanged(e) {\n        const newOptions = new WhitespaceOptions(this._context.configuration);\n        if (this._options.equals(newOptions)) {\n            return e.hasChanged(145 /* EditorOption.layoutInfo */);\n        }\n        this._options = newOptions;\n        return true;\n    }\n    onCursorStateChanged(e) {\n        this._selection = e.selections;\n        if (this._options.renderWhitespace === 'selection') {\n            return true;\n        }\n        return false;\n    }\n    onDecorationsChanged(e) {\n        return true;\n    }\n    onFlushed(e) {\n        return true;\n    }\n    onLinesChanged(e) {\n        return true;\n    }\n    onLinesDeleted(e) {\n        return true;\n    }\n    onLinesInserted(e) {\n        return true;\n    }\n    onScrollChanged(e) {\n        return e.scrollTopChanged;\n    }\n    onZonesChanged(e) {\n        return true;\n    }\n    // --- end event handlers\n    prepareRender(ctx) {\n        if (this._options.renderWhitespace === 'none') {\n            this._renderResult = null;\n            return;\n        }\n        const startLineNumber = ctx.visibleRange.startLineNumber;\n        const endLineNumber = ctx.visibleRange.endLineNumber;\n        const lineCount = endLineNumber - startLineNumber + 1;\n        const needed = new Array(lineCount);\n        for (let i = 0; i < lineCount; i++) {\n            needed[i] = true;\n        }\n        const viewportData = this._context.viewModel.getMinimapLinesRenderingData(ctx.viewportData.startLineNumber, ctx.viewportData.endLineNumber, needed);\n        this._renderResult = [];\n        for (let lineNumber = ctx.viewportData.startLineNumber; lineNumber <= ctx.viewportData.endLineNumber; lineNumber++) {\n            const lineIndex = lineNumber - ctx.viewportData.startLineNumber;\n            const lineData = viewportData.data[lineIndex];\n            let selectionsOnLine = null;\n            if (this._options.renderWhitespace === 'selection') {\n                const selections = this._selection;\n                for (const selection of selections) {\n                    if (selection.endLineNumber < lineNumber || selection.startLineNumber > lineNumber) {\n                        // Selection does not intersect line\n                        continue;\n                    }\n                    const startColumn = (selection.startLineNumber === lineNumber ? selection.startColumn : lineData.minColumn);\n                    const endColumn = (selection.endLineNumber === lineNumber ? selection.endColumn : lineData.maxColumn);\n                    if (startColumn < endColumn) {\n                        if (!selectionsOnLine) {\n                            selectionsOnLine = [];\n                        }\n                        selectionsOnLine.push(new LineRange(startColumn - 1, endColumn - 1));\n                    }\n                }\n            }\n            this._renderResult[lineIndex] = this._applyRenderWhitespace(ctx, lineNumber, selectionsOnLine, lineData);\n        }\n    }\n    _applyRenderWhitespace(ctx, lineNumber, selections, lineData) {\n        if (this._options.renderWhitespace === 'selection' && !selections) {\n            return '';\n        }\n        if (this._options.renderWhitespace === 'trailing' && lineData.continuesWithWrappedLine) {\n            return '';\n        }\n        const color = this._context.theme.getColor(editorWhitespaces);\n        const USE_SVG = this._options.renderWithSVG;\n        const lineContent = lineData.content;\n        const len = (this._options.stopRenderingLineAfter === -1 ? lineContent.length : Math.min(this._options.stopRenderingLineAfter, lineContent.length));\n        const continuesWithWrappedLine = lineData.continuesWithWrappedLine;\n        const fauxIndentLength = lineData.minColumn - 1;\n        const onlyBoundary = (this._options.renderWhitespace === 'boundary');\n        const onlyTrailing = (this._options.renderWhitespace === 'trailing');\n        const lineHeight = this._options.lineHeight;\n        const middotWidth = this._options.middotWidth;\n        const wsmiddotWidth = this._options.wsmiddotWidth;\n        const spaceWidth = this._options.spaceWidth;\n        const wsmiddotDiff = Math.abs(wsmiddotWidth - spaceWidth);\n        const middotDiff = Math.abs(middotWidth - spaceWidth);\n        // U+2E31 - WORD SEPARATOR MIDDLE DOT\n        // U+00B7 - MIDDLE DOT\n        const renderSpaceCharCode = (wsmiddotDiff < middotDiff ? 0x2E31 : 0xB7);\n        const canUseHalfwidthRightwardsArrow = this._options.canUseHalfwidthRightwardsArrow;\n        let result = '';\n        let lineIsEmptyOrWhitespace = false;\n        let firstNonWhitespaceIndex = strings.firstNonWhitespaceIndex(lineContent);\n        let lastNonWhitespaceIndex;\n        if (firstNonWhitespaceIndex === -1) {\n            lineIsEmptyOrWhitespace = true;\n            firstNonWhitespaceIndex = len;\n            lastNonWhitespaceIndex = len;\n        }\n        else {\n            lastNonWhitespaceIndex = strings.lastNonWhitespaceIndex(lineContent);\n        }\n        let currentSelectionIndex = 0;\n        let currentSelection = selections && selections[currentSelectionIndex];\n        let maxLeft = 0;\n        for (let charIndex = fauxIndentLength; charIndex < len; charIndex++) {\n            const chCode = lineContent.charCodeAt(charIndex);\n            if (currentSelection && charIndex >= currentSelection.endOffset) {\n                currentSelectionIndex++;\n                currentSelection = selections && selections[currentSelectionIndex];\n            }\n            if (chCode !== 9 /* CharCode.Tab */ && chCode !== 32 /* CharCode.Space */) {\n                continue;\n            }\n            if (onlyTrailing && !lineIsEmptyOrWhitespace && charIndex <= lastNonWhitespaceIndex) {\n                // If rendering only trailing whitespace, check that the charIndex points to trailing whitespace.\n                continue;\n            }\n            if (onlyBoundary && charIndex >= firstNonWhitespaceIndex && charIndex <= lastNonWhitespaceIndex && chCode === 32 /* CharCode.Space */) {\n                // rendering only boundary whitespace\n                const prevChCode = (charIndex - 1 >= 0 ? lineContent.charCodeAt(charIndex - 1) : 0 /* CharCode.Null */);\n                const nextChCode = (charIndex + 1 < len ? lineContent.charCodeAt(charIndex + 1) : 0 /* CharCode.Null */);\n                if (prevChCode !== 32 /* CharCode.Space */ && nextChCode !== 32 /* CharCode.Space */) {\n                    continue;\n                }\n            }\n            if (onlyBoundary && continuesWithWrappedLine && charIndex === len - 1) {\n                const prevCharCode = (charIndex - 1 >= 0 ? lineContent.charCodeAt(charIndex - 1) : 0 /* CharCode.Null */);\n                const isSingleTrailingSpace = (chCode === 32 /* CharCode.Space */ && (prevCharCode !== 32 /* CharCode.Space */ && prevCharCode !== 9 /* CharCode.Tab */));\n                if (isSingleTrailingSpace) {\n                    continue;\n                }\n            }\n            if (selections && (!currentSelection || currentSelection.startOffset > charIndex || currentSelection.endOffset <= charIndex)) {\n                // If rendering whitespace on selection, check that the charIndex falls within a selection\n                continue;\n            }\n            const visibleRange = ctx.visibleRangeForPosition(new Position(lineNumber, charIndex + 1));\n            if (!visibleRange) {\n                continue;\n            }\n            if (USE_SVG) {\n                maxLeft = Math.max(maxLeft, visibleRange.left);\n                if (chCode === 9 /* CharCode.Tab */) {\n                    result += this._renderArrow(lineHeight, spaceWidth, visibleRange.left);\n                }\n                else {\n                    result += `<circle cx=\"${(visibleRange.left + spaceWidth / 2).toFixed(2)}\" cy=\"${(lineHeight / 2).toFixed(2)}\" r=\"${(spaceWidth / 7).toFixed(2)}\" />`;\n                }\n            }\n            else {\n                if (chCode === 9 /* CharCode.Tab */) {\n                    result += `<div class=\"mwh\" style=\"left:${visibleRange.left}px;height:${lineHeight}px;\">${canUseHalfwidthRightwardsArrow ? String.fromCharCode(0xFFEB) : String.fromCharCode(0x2192)}</div>`;\n                }\n                else {\n                    result += `<div class=\"mwh\" style=\"left:${visibleRange.left}px;height:${lineHeight}px;\">${String.fromCharCode(renderSpaceCharCode)}</div>`;\n                }\n            }\n        }\n        if (USE_SVG) {\n            maxLeft = Math.round(maxLeft + spaceWidth);\n            return (`<svg style=\"bottom:0;position:absolute;width:${maxLeft}px;height:${lineHeight}px\" viewBox=\"0 0 ${maxLeft} ${lineHeight}\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"${color}\">`\n                + result\n                + `</svg>`);\n        }\n        return result;\n    }\n    _renderArrow(lineHeight, spaceWidth, left) {\n        const strokeWidth = spaceWidth / 7;\n        const width = spaceWidth;\n        const dy = lineHeight / 2;\n        const dx = left;\n        const p1 = { x: 0, y: strokeWidth / 2 };\n        const p2 = { x: 100 / 125 * width, y: p1.y };\n        const p3 = { x: p2.x - 0.2 * p2.x, y: p2.y + 0.2 * p2.x };\n        const p4 = { x: p3.x + 0.1 * p2.x, y: p3.y + 0.1 * p2.x };\n        const p5 = { x: p4.x + 0.35 * p2.x, y: p4.y - 0.35 * p2.x };\n        const p6 = { x: p5.x, y: -p5.y };\n        const p7 = { x: p4.x, y: -p4.y };\n        const p8 = { x: p3.x, y: -p3.y };\n        const p9 = { x: p2.x, y: -p2.y };\n        const p10 = { x: p1.x, y: -p1.y };\n        const p = [p1, p2, p3, p4, p5, p6, p7, p8, p9, p10];\n        const parts = p.map((p) => `${(dx + p.x).toFixed(2)} ${(dy + p.y).toFixed(2)}`).join(' L ');\n        return `<path d=\"M ${parts}\" />`;\n    }\n    render(startLineNumber, lineNumber) {\n        if (!this._renderResult) {\n            return '';\n        }\n        const lineIndex = lineNumber - startLineNumber;\n        if (lineIndex < 0 || lineIndex >= this._renderResult.length) {\n            return '';\n        }\n        return this._renderResult[lineIndex];\n    }\n}\nclass WhitespaceOptions {\n    constructor(config) {\n        const options = config.options;\n        const fontInfo = options.get(50 /* EditorOption.fontInfo */);\n        const experimentalWhitespaceRendering = options.get(38 /* EditorOption.experimentalWhitespaceRendering */);\n        if (experimentalWhitespaceRendering === 'off') {\n            // whitespace is rendered in the view line\n            this.renderWhitespace = 'none';\n            this.renderWithSVG = false;\n        }\n        else if (experimentalWhitespaceRendering === 'svg') {\n            this.renderWhitespace = options.get(99 /* EditorOption.renderWhitespace */);\n            this.renderWithSVG = true;\n        }\n        else {\n            this.renderWhitespace = options.get(99 /* EditorOption.renderWhitespace */);\n            this.renderWithSVG = false;\n        }\n        this.spaceWidth = fontInfo.spaceWidth;\n        this.middotWidth = fontInfo.middotWidth;\n        this.wsmiddotWidth = fontInfo.wsmiddotWidth;\n        this.canUseHalfwidthRightwardsArrow = fontInfo.canUseHalfwidthRightwardsArrow;\n        this.lineHeight = options.get(67 /* EditorOption.lineHeight */);\n        this.stopRenderingLineAfter = options.get(117 /* EditorOption.stopRenderingLineAfter */);\n    }\n    equals(other) {\n        return (this.renderWhitespace === other.renderWhitespace\n            && this.renderWithSVG === other.renderWithSVG\n            && this.spaceWidth === other.spaceWidth\n            && this.middotWidth === other.middotWidth\n            && this.wsmiddotWidth === other.wsmiddotWidth\n            && this.canUseHalfwidthRightwardsArrow === other.canUseHalfwidthRightwardsArrow\n            && this.lineHeight === other.lineHeight\n            && this.stopRenderingLineAfter === other.stopRenderingLineAfter);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/codeEditor/codeEditorContributions.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { getWindow, runWhenWindowIdle } from '../../../../base/browser/dom.js';\nimport { onUnexpectedError } from '../../../../base/common/errors.js';\nimport { Disposable, DisposableMap } from '../../../../base/common/lifecycle.js';\nexport class CodeEditorContributions extends Disposable {\n    constructor() {\n        super();\n        this._editor = null;\n        this._instantiationService = null;\n        /**\n         * Contains all instantiated contributions.\n         */\n        this._instances = this._register(new DisposableMap());\n        /**\n         * Contains contributions which are not yet instantiated.\n         */\n        this._pending = new Map();\n        /**\n         * Tracks which instantiation kinds are still left in `_pending`.\n         */\n        this._finishedInstantiation = [];\n        this._finishedInstantiation[0 /* EditorContributionInstantiation.Eager */] = false;\n        this._finishedInstantiation[1 /* EditorContributionInstantiation.AfterFirstRender */] = false;\n        this._finishedInstantiation[2 /* EditorContributionInstantiation.BeforeFirstInteraction */] = false;\n        this._finishedInstantiation[3 /* EditorContributionInstantiation.Eventually */] = false;\n    }\n    initialize(editor, contributions, instantiationService) {\n        this._editor = editor;\n        this._instantiationService = instantiationService;\n        for (const desc of contributions) {\n            if (this._pending.has(desc.id)) {\n                onUnexpectedError(new Error(`Cannot have two contributions with the same id ${desc.id}`));\n                continue;\n            }\n            this._pending.set(desc.id, desc);\n        }\n        this._instantiateSome(0 /* EditorContributionInstantiation.Eager */);\n        // AfterFirstRender\n        // - these extensions will be instantiated at the latest 50ms after the first render.\n        // - but if there is idle time, we will instantiate them sooner.\n        this._register(runWhenWindowIdle(getWindow(this._editor.getDomNode()), () => {\n            this._instantiateSome(1 /* EditorContributionInstantiation.AfterFirstRender */);\n        }));\n        // BeforeFirstInteraction\n        // - these extensions will be instantiated at the latest before a mouse or a keyboard event.\n        // - but if there is idle time, we will instantiate them sooner.\n        this._register(runWhenWindowIdle(getWindow(this._editor.getDomNode()), () => {\n            this._instantiateSome(2 /* EditorContributionInstantiation.BeforeFirstInteraction */);\n        }));\n        // Eventually\n        // - these extensions will only be instantiated when there is idle time.\n        // - since there is no guarantee that there will ever be idle time, we set a timeout of 5s here.\n        this._register(runWhenWindowIdle(getWindow(this._editor.getDomNode()), () => {\n            this._instantiateSome(3 /* EditorContributionInstantiation.Eventually */);\n        }, 5000));\n    }\n    saveViewState() {\n        const contributionsState = {};\n        for (const [id, contribution] of this._instances) {\n            if (typeof contribution.saveViewState === 'function') {\n                contributionsState[id] = contribution.saveViewState();\n            }\n        }\n        return contributionsState;\n    }\n    restoreViewState(contributionsState) {\n        for (const [id, contribution] of this._instances) {\n            if (typeof contribution.restoreViewState === 'function') {\n                contribution.restoreViewState(contributionsState[id]);\n            }\n        }\n    }\n    get(id) {\n        this._instantiateById(id);\n        return this._instances.get(id) || null;\n    }\n    onBeforeInteractionEvent() {\n        // this method is called very often by the editor!\n        this._instantiateSome(2 /* EditorContributionInstantiation.BeforeFirstInteraction */);\n    }\n    onAfterModelAttached() {\n        var _a;\n        return runWhenWindowIdle(getWindow((_a = this._editor) === null || _a === void 0 ? void 0 : _a.getDomNode()), () => {\n            this._instantiateSome(1 /* EditorContributionInstantiation.AfterFirstRender */);\n        }, 50);\n    }\n    _instantiateSome(instantiation) {\n        if (this._finishedInstantiation[instantiation]) {\n            // already done with this instantiation!\n            return;\n        }\n        this._finishedInstantiation[instantiation] = true;\n        const contribs = this._findPendingContributionsByInstantiation(instantiation);\n        for (const contrib of contribs) {\n            this._instantiateById(contrib.id);\n        }\n    }\n    _findPendingContributionsByInstantiation(instantiation) {\n        const result = [];\n        for (const [, desc] of this._pending) {\n            if (desc.instantiation === instantiation) {\n                result.push(desc);\n            }\n        }\n        return result;\n    }\n    _instantiateById(id) {\n        const desc = this._pending.get(id);\n        if (!desc) {\n            return;\n        }\n        this._pending.delete(id);\n        if (!this._instantiationService || !this._editor) {\n            throw new Error(`Cannot instantiate contributions before being initialized!`);\n        }\n        try {\n            const instance = this._instantiationService.createInstance(desc.ctor, this._editor);\n            this._instances.set(desc.id, instance);\n            if (typeof instance.restoreViewState === 'function' && desc.instantiation !== 0 /* EditorContributionInstantiation.Eager */) {\n                console.warn(`Editor contribution '${desc.id}' should be eager instantiated because it uses saveViewState / restoreViewState.`);\n            }\n        }\n        catch (err) {\n            onUnexpectedError(err);\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/codeEditor/codeEditorWidget.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/codeEditor/codeEditorWidget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar CodeEditorWidget_1;\nimport '../../services/markerDecorations.js';\nimport * as dom from '../../../../base/browser/dom.js';\nimport { onUnexpectedError } from '../../../../base/common/errors.js';\nimport { Emitter, createEventDeliveryQueue } from '../../../../base/common/event.js';\nimport { Disposable, dispose } from '../../../../base/common/lifecycle.js';\nimport { Schemas } from '../../../../base/common/network.js';\nimport './editor.css';\nimport { applyFontInfo } from '../../config/domFontInfo.js';\nimport { EditorConfiguration } from '../../config/editorConfiguration.js';\nimport { TabFocus } from '../../config/tabFocus.js';\nimport { EditorExtensionsRegistry } from '../../editorExtensions.js';\nimport { ICodeEditorService } from '../../services/codeEditorService.js';\nimport { View } from '../../view.js';\nimport { DOMLineBreaksComputerFactory } from '../../view/domLineBreaksComputer.js';\nimport { ViewUserInputEvents } from '../../view/viewUserInputEvents.js';\nimport { CodeEditorContributions } from './codeEditorContributions.js';\nimport { filterValidationDecorations } from '../../../common/config/editorOptions.js';\nimport { CursorColumns } from '../../../common/core/cursorColumns.js';\nimport { editorUnnecessaryCodeOpacity } from '../../../common/core/editorColorRegistry.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { WordOperations } from '../../../common/cursor/cursorWordOperations.js';\nimport { InternalEditorAction } from '../../../common/editorAction.js';\nimport * as editorCommon from '../../../common/editorCommon.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { MonospaceLineBreaksComputerFactory } from '../../../common/viewModel/monospaceLineBreaksComputer.js';\nimport { ViewModel } from '../../../common/viewModel/viewModelImpl.js';\nimport * as nls from '../../../../nls.js';\nimport { IAccessibilityService } from '../../../../platform/accessibility/common/accessibility.js';\nimport { ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { ServiceCollection } from '../../../../platform/instantiation/common/serviceCollection.js';\nimport { INotificationService, Severity } from '../../../../platform/notification/common/notification.js';\nimport { editorErrorForeground, editorHintForeground, editorInfoForeground, editorWarningForeground } from '../../../../platform/theme/common/colorRegistry.js';\nimport { IThemeService, registerThemingParticipant } from '../../../../platform/theme/common/themeService.js';\nimport { MenuId } from '../../../../platform/actions/common/actions.js';\nlet CodeEditorWidget = CodeEditorWidget_1 = class CodeEditorWidget extends Disposable {\n    //#endregion\n    get isSimpleWidget() {\n        return this._configuration.isSimpleWidget;\n    }\n    get contextMenuId() {\n        return this._configuration.contextMenuId;\n    }\n    constructor(domElement, _options, codeEditorWidgetOptions, instantiationService, codeEditorService, commandService, contextKeyService, themeService, notificationService, accessibilityService, languageConfigurationService, languageFeaturesService) {\n        var _a, _b;\n        super();\n        this.languageConfigurationService = languageConfigurationService;\n        //#region Eventing\n        this._deliveryQueue = createEventDeliveryQueue();\n        this._contributions = this._register(new CodeEditorContributions());\n        this._onDidDispose = this._register(new Emitter());\n        this.onDidDispose = this._onDidDispose.event;\n        this._onDidChangeModelContent = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n        this.onDidChangeModelContent = this._onDidChangeModelContent.event;\n        this._onDidChangeModelLanguage = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n        this.onDidChangeModelLanguage = this._onDidChangeModelLanguage.event;\n        this._onDidChangeModelLanguageConfiguration = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n        this.onDidChangeModelLanguageConfiguration = this._onDidChangeModelLanguageConfiguration.event;\n        this._onDidChangeModelOptions = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n        this.onDidChangeModelOptions = this._onDidChangeModelOptions.event;\n        this._onDidChangeModelDecorations = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n        this.onDidChangeModelDecorations = this._onDidChangeModelDecorations.event;\n        this._onDidChangeModelTokens = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n        this.onDidChangeModelTokens = this._onDidChangeModelTokens.event;\n        this._onDidChangeConfiguration = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n        this.onDidChangeConfiguration = this._onDidChangeConfiguration.event;\n        this._onWillChangeModel = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n        this.onWillChangeModel = this._onWillChangeModel.event;\n        this._onDidChangeModel = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n        this.onDidChangeModel = this._onDidChangeModel.event;\n        this._onDidChangeCursorPosition = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n        this.onDidChangeCursorPosition = this._onDidChangeCursorPosition.event;\n        this._onDidChangeCursorSelection = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n        this.onDidChangeCursorSelection = this._onDidChangeCursorSelection.event;\n        this._onDidAttemptReadOnlyEdit = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n        this.onDidAttemptReadOnlyEdit = this._onDidAttemptReadOnlyEdit.event;\n        this._onDidLayoutChange = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n        this.onDidLayoutChange = this._onDidLayoutChange.event;\n        this._editorTextFocus = this._register(new BooleanEventEmitter({ deliveryQueue: this._deliveryQueue }));\n        this.onDidFocusEditorText = this._editorTextFocus.onDidChangeToTrue;\n        this.onDidBlurEditorText = this._editorTextFocus.onDidChangeToFalse;\n        this._editorWidgetFocus = this._register(new BooleanEventEmitter({ deliveryQueue: this._deliveryQueue }));\n        this.onDidFocusEditorWidget = this._editorWidgetFocus.onDidChangeToTrue;\n        this.onDidBlurEditorWidget = this._editorWidgetFocus.onDidChangeToFalse;\n        this._onWillType = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n        this.onWillType = this._onWillType.event;\n        this._onDidType = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n        this.onDidType = this._onDidType.event;\n        this._onDidCompositionStart = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n        this.onDidCompositionStart = this._onDidCompositionStart.event;\n        this._onDidCompositionEnd = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n        this.onDidCompositionEnd = this._onDidCompositionEnd.event;\n        this._onDidPaste = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n        this.onDidPaste = this._onDidPaste.event;\n        this._onMouseUp = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n        this.onMouseUp = this._onMouseUp.event;\n        this._onMouseDown = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n        this.onMouseDown = this._onMouseDown.event;\n        this._onMouseDrag = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n        this.onMouseDrag = this._onMouseDrag.event;\n        this._onMouseDrop = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n        this.onMouseDrop = this._onMouseDrop.event;\n        this._onMouseDropCanceled = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n        this.onMouseDropCanceled = this._onMouseDropCanceled.event;\n        this._onDropIntoEditor = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n        this.onDropIntoEditor = this._onDropIntoEditor.event;\n        this._onContextMenu = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n        this.onContextMenu = this._onContextMenu.event;\n        this._onMouseMove = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n        this.onMouseMove = this._onMouseMove.event;\n        this._onMouseLeave = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n        this.onMouseLeave = this._onMouseLeave.event;\n        this._onMouseWheel = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n        this.onMouseWheel = this._onMouseWheel.event;\n        this._onKeyUp = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n        this.onKeyUp = this._onKeyUp.event;\n        this._onKeyDown = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n        this.onKeyDown = this._onKeyDown.event;\n        this._onDidContentSizeChange = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n        this.onDidContentSizeChange = this._onDidContentSizeChange.event;\n        this._onDidScrollChange = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n        this.onDidScrollChange = this._onDidScrollChange.event;\n        this._onDidChangeViewZones = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n        this.onDidChangeViewZones = this._onDidChangeViewZones.event;\n        this._onDidChangeHiddenAreas = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n        this.onDidChangeHiddenAreas = this._onDidChangeHiddenAreas.event;\n        this._updateCounter = 0;\n        this._onBeginUpdate = this._register(new Emitter());\n        this.onBeginUpdate = this._onBeginUpdate.event;\n        this._onEndUpdate = this._register(new Emitter());\n        this.onEndUpdate = this._onEndUpdate.event;\n        this._actions = new Map();\n        this._bannerDomNode = null;\n        this._dropIntoEditorDecorations = this.createDecorationsCollection();\n        codeEditorService.willCreateCodeEditor();\n        const options = { ..._options };\n        this._domElement = domElement;\n        this._overflowWidgetsDomNode = options.overflowWidgetsDomNode;\n        delete options.overflowWidgetsDomNode;\n        this._id = (++EDITOR_ID);\n        this._decorationTypeKeysToIds = {};\n        this._decorationTypeSubtypes = {};\n        this._telemetryData = codeEditorWidgetOptions.telemetryData;\n        this._configuration = this._register(this._createConfiguration(codeEditorWidgetOptions.isSimpleWidget || false, (_a = codeEditorWidgetOptions.contextMenuId) !== null && _a !== void 0 ? _a : (codeEditorWidgetOptions.isSimpleWidget ? MenuId.SimpleEditorContext : MenuId.EditorContext), options, accessibilityService));\n        this._register(this._configuration.onDidChange((e) => {\n            this._onDidChangeConfiguration.fire(e);\n            const options = this._configuration.options;\n            if (e.hasChanged(145 /* EditorOption.layoutInfo */)) {\n                const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n                this._onDidLayoutChange.fire(layoutInfo);\n            }\n        }));\n        this._contextKeyService = this._register(contextKeyService.createScoped(this._domElement));\n        this._notificationService = notificationService;\n        this._codeEditorService = codeEditorService;\n        this._commandService = commandService;\n        this._themeService = themeService;\n        this._register(new EditorContextKeysManager(this, this._contextKeyService));\n        this._register(new EditorModeContext(this, this._contextKeyService, languageFeaturesService));\n        this._instantiationService = this._register(instantiationService.createChild(new ServiceCollection([IContextKeyService, this._contextKeyService])));\n        this._modelData = null;\n        this._focusTracker = new CodeEditorWidgetFocusTracker(domElement, this._overflowWidgetsDomNode);\n        this._register(this._focusTracker.onChange(() => {\n            this._editorWidgetFocus.setValue(this._focusTracker.hasFocus());\n        }));\n        this._contentWidgets = {};\n        this._overlayWidgets = {};\n        this._glyphMarginWidgets = {};\n        let contributions;\n        if (Array.isArray(codeEditorWidgetOptions.contributions)) {\n            contributions = codeEditorWidgetOptions.contributions;\n        }\n        else {\n            contributions = EditorExtensionsRegistry.getEditorContributions();\n        }\n        this._contributions.initialize(this, contributions, this._instantiationService);\n        for (const action of EditorExtensionsRegistry.getEditorActions()) {\n            if (this._actions.has(action.id)) {\n                onUnexpectedError(new Error(`Cannot have two actions with the same id ${action.id}`));\n                continue;\n            }\n            const internalAction = new InternalEditorAction(action.id, action.label, action.alias, action.metadata, (_b = action.precondition) !== null && _b !== void 0 ? _b : undefined, (args) => {\n                return this._instantiationService.invokeFunction((accessor) => {\n                    return Promise.resolve(action.runEditorCommand(accessor, this, args));\n                });\n            }, this._contextKeyService);\n            this._actions.set(internalAction.id, internalAction);\n        }\n        const isDropIntoEnabled = () => {\n            return !this._configuration.options.get(91 /* EditorOption.readOnly */)\n                && this._configuration.options.get(36 /* EditorOption.dropIntoEditor */).enabled;\n        };\n        this._register(new dom.DragAndDropObserver(this._domElement, {\n            onDragOver: e => {\n                if (!isDropIntoEnabled()) {\n                    return;\n                }\n                const target = this.getTargetAtClientPoint(e.clientX, e.clientY);\n                if (target === null || target === void 0 ? void 0 : target.position) {\n                    this.showDropIndicatorAt(target.position);\n                }\n            },\n            onDrop: async (e) => {\n                if (!isDropIntoEnabled()) {\n                    return;\n                }\n                this.removeDropIndicator();\n                if (!e.dataTransfer) {\n                    return;\n                }\n                const target = this.getTargetAtClientPoint(e.clientX, e.clientY);\n                if (target === null || target === void 0 ? void 0 : target.position) {\n                    this._onDropIntoEditor.fire({ position: target.position, event: e });\n                }\n            },\n            onDragLeave: () => {\n                this.removeDropIndicator();\n            },\n            onDragEnd: () => {\n                this.removeDropIndicator();\n            },\n        }));\n        this._codeEditorService.addCodeEditor(this);\n    }\n    writeScreenReaderContent(reason) {\n        var _a;\n        (_a = this._modelData) === null || _a === void 0 ? void 0 : _a.view.writeScreenReaderContent(reason);\n    }\n    _createConfiguration(isSimpleWidget, contextMenuId, options, accessibilityService) {\n        return new EditorConfiguration(isSimpleWidget, contextMenuId, options, this._domElement, accessibilityService);\n    }\n    getId() {\n        return this.getEditorType() + ':' + this._id;\n    }\n    getEditorType() {\n        return editorCommon.EditorType.ICodeEditor;\n    }\n    dispose() {\n        this._codeEditorService.removeCodeEditor(this);\n        this._focusTracker.dispose();\n        this._actions.clear();\n        this._contentWidgets = {};\n        this._overlayWidgets = {};\n        this._removeDecorationTypes();\n        this._postDetachModelCleanup(this._detachModel());\n        this._onDidDispose.fire();\n        super.dispose();\n    }\n    invokeWithinContext(fn) {\n        return this._instantiationService.invokeFunction(fn);\n    }\n    updateOptions(newOptions) {\n        this._configuration.updateOptions(newOptions || {});\n    }\n    getOptions() {\n        return this._configuration.options;\n    }\n    getOption(id) {\n        return this._configuration.options.get(id);\n    }\n    getRawOptions() {\n        return this._configuration.getRawOptions();\n    }\n    getOverflowWidgetsDomNode() {\n        return this._overflowWidgetsDomNode;\n    }\n    getConfiguredWordAtPosition(position) {\n        if (!this._modelData) {\n            return null;\n        }\n        return WordOperations.getWordAtPosition(this._modelData.model, this._configuration.options.get(131 /* EditorOption.wordSeparators */), this._configuration.options.get(130 /* EditorOption.wordSegmenterLocales */), position);\n    }\n    getValue(options = null) {\n        if (!this._modelData) {\n            return '';\n        }\n        const preserveBOM = (options && options.preserveBOM) ? true : false;\n        let eolPreference = 0 /* EndOfLinePreference.TextDefined */;\n        if (options && options.lineEnding && options.lineEnding === '\\n') {\n            eolPreference = 1 /* EndOfLinePreference.LF */;\n        }\n        else if (options && options.lineEnding && options.lineEnding === '\\r\\n') {\n            eolPreference = 2 /* EndOfLinePreference.CRLF */;\n        }\n        return this._modelData.model.getValue(eolPreference, preserveBOM);\n    }\n    setValue(newValue) {\n        try {\n            this._beginUpdate();\n            if (!this._modelData) {\n                return;\n            }\n            this._modelData.model.setValue(newValue);\n        }\n        finally {\n            this._endUpdate();\n        }\n    }\n    getModel() {\n        if (!this._modelData) {\n            return null;\n        }\n        return this._modelData.model;\n    }\n    setModel(_model = null) {\n        var _a;\n        try {\n            this._beginUpdate();\n            const model = _model;\n            if (this._modelData === null && model === null) {\n                // Current model is the new model\n                return;\n            }\n            if (this._modelData && this._modelData.model === model) {\n                // Current model is the new model\n                return;\n            }\n            const e = {\n                oldModelUrl: ((_a = this._modelData) === null || _a === void 0 ? void 0 : _a.model.uri) || null,\n                newModelUrl: (model === null || model === void 0 ? void 0 : model.uri) || null\n            };\n            this._onWillChangeModel.fire(e);\n            const hasTextFocus = this.hasTextFocus();\n            const detachedModel = this._detachModel();\n            this._attachModel(model);\n            if (hasTextFocus && this.hasModel()) {\n                this.focus();\n            }\n            this._removeDecorationTypes();\n            this._onDidChangeModel.fire(e);\n            this._postDetachModelCleanup(detachedModel);\n            this._contributionsDisposable = this._contributions.onAfterModelAttached();\n        }\n        finally {\n            this._endUpdate();\n        }\n    }\n    _removeDecorationTypes() {\n        this._decorationTypeKeysToIds = {};\n        if (this._decorationTypeSubtypes) {\n            for (const decorationType in this._decorationTypeSubtypes) {\n                const subTypes = this._decorationTypeSubtypes[decorationType];\n                for (const subType in subTypes) {\n                    this._removeDecorationType(decorationType + '-' + subType);\n                }\n            }\n            this._decorationTypeSubtypes = {};\n        }\n    }\n    getVisibleRanges() {\n        if (!this._modelData) {\n            return [];\n        }\n        return this._modelData.viewModel.getVisibleRanges();\n    }\n    getVisibleRangesPlusViewportAboveBelow() {\n        if (!this._modelData) {\n            return [];\n        }\n        return this._modelData.viewModel.getVisibleRangesPlusViewportAboveBelow();\n    }\n    getWhitespaces() {\n        if (!this._modelData) {\n            return [];\n        }\n        return this._modelData.viewModel.viewLayout.getWhitespaces();\n    }\n    static _getVerticalOffsetAfterPosition(modelData, modelLineNumber, modelColumn, includeViewZones) {\n        const modelPosition = modelData.model.validatePosition({\n            lineNumber: modelLineNumber,\n            column: modelColumn\n        });\n        const viewPosition = modelData.viewModel.coordinatesConverter.convertModelPositionToViewPosition(modelPosition);\n        return modelData.viewModel.viewLayout.getVerticalOffsetAfterLineNumber(viewPosition.lineNumber, includeViewZones);\n    }\n    getTopForLineNumber(lineNumber, includeViewZones = false) {\n        if (!this._modelData) {\n            return -1;\n        }\n        return CodeEditorWidget_1._getVerticalOffsetForPosition(this._modelData, lineNumber, 1, includeViewZones);\n    }\n    getTopForPosition(lineNumber, column) {\n        if (!this._modelData) {\n            return -1;\n        }\n        return CodeEditorWidget_1._getVerticalOffsetForPosition(this._modelData, lineNumber, column, false);\n    }\n    static _getVerticalOffsetForPosition(modelData, modelLineNumber, modelColumn, includeViewZones = false) {\n        const modelPosition = modelData.model.validatePosition({\n            lineNumber: modelLineNumber,\n            column: modelColumn\n        });\n        const viewPosition = modelData.viewModel.coordinatesConverter.convertModelPositionToViewPosition(modelPosition);\n        return modelData.viewModel.viewLayout.getVerticalOffsetForLineNumber(viewPosition.lineNumber, includeViewZones);\n    }\n    getBottomForLineNumber(lineNumber, includeViewZones = false) {\n        if (!this._modelData) {\n            return -1;\n        }\n        return CodeEditorWidget_1._getVerticalOffsetAfterPosition(this._modelData, lineNumber, 1, includeViewZones);\n    }\n    setHiddenAreas(ranges, source) {\n        var _a;\n        (_a = this._modelData) === null || _a === void 0 ? void 0 : _a.viewModel.setHiddenAreas(ranges.map(r => Range.lift(r)), source);\n    }\n    getVisibleColumnFromPosition(rawPosition) {\n        if (!this._modelData) {\n            return rawPosition.column;\n        }\n        const position = this._modelData.model.validatePosition(rawPosition);\n        const tabSize = this._modelData.model.getOptions().tabSize;\n        return CursorColumns.visibleColumnFromColumn(this._modelData.model.getLineContent(position.lineNumber), position.column, tabSize) + 1;\n    }\n    getPosition() {\n        if (!this._modelData) {\n            return null;\n        }\n        return this._modelData.viewModel.getPosition();\n    }\n    setPosition(position, source = 'api') {\n        if (!this._modelData) {\n            return;\n        }\n        if (!Position.isIPosition(position)) {\n            throw new Error('Invalid arguments');\n        }\n        this._modelData.viewModel.setSelections(source, [{\n                selectionStartLineNumber: position.lineNumber,\n                selectionStartColumn: position.column,\n                positionLineNumber: position.lineNumber,\n                positionColumn: position.column\n            }]);\n    }\n    _sendRevealRange(modelRange, verticalType, revealHorizontal, scrollType) {\n        if (!this._modelData) {\n            return;\n        }\n        if (!Range.isIRange(modelRange)) {\n            throw new Error('Invalid arguments');\n        }\n        const validatedModelRange = this._modelData.model.validateRange(modelRange);\n        const viewRange = this._modelData.viewModel.coordinatesConverter.convertModelRangeToViewRange(validatedModelRange);\n        this._modelData.viewModel.revealRange('api', revealHorizontal, viewRange, verticalType, scrollType);\n    }\n    revealLine(lineNumber, scrollType = 0 /* editorCommon.ScrollType.Smooth */) {\n        this._revealLine(lineNumber, 0 /* VerticalRevealType.Simple */, scrollType);\n    }\n    revealLineInCenter(lineNumber, scrollType = 0 /* editorCommon.ScrollType.Smooth */) {\n        this._revealLine(lineNumber, 1 /* VerticalRevealType.Center */, scrollType);\n    }\n    revealLineInCenterIfOutsideViewport(lineNumber, scrollType = 0 /* editorCommon.ScrollType.Smooth */) {\n        this._revealLine(lineNumber, 2 /* VerticalRevealType.CenterIfOutsideViewport */, scrollType);\n    }\n    revealLineNearTop(lineNumber, scrollType = 0 /* editorCommon.ScrollType.Smooth */) {\n        this._revealLine(lineNumber, 5 /* VerticalRevealType.NearTop */, scrollType);\n    }\n    _revealLine(lineNumber, revealType, scrollType) {\n        if (typeof lineNumber !== 'number') {\n            throw new Error('Invalid arguments');\n        }\n        this._sendRevealRange(new Range(lineNumber, 1, lineNumber, 1), revealType, false, scrollType);\n    }\n    revealPosition(position, scrollType = 0 /* editorCommon.ScrollType.Smooth */) {\n        this._revealPosition(position, 0 /* VerticalRevealType.Simple */, true, scrollType);\n    }\n    revealPositionInCenter(position, scrollType = 0 /* editorCommon.ScrollType.Smooth */) {\n        this._revealPosition(position, 1 /* VerticalRevealType.Center */, true, scrollType);\n    }\n    revealPositionInCenterIfOutsideViewport(position, scrollType = 0 /* editorCommon.ScrollType.Smooth */) {\n        this._revealPosition(position, 2 /* VerticalRevealType.CenterIfOutsideViewport */, true, scrollType);\n    }\n    revealPositionNearTop(position, scrollType = 0 /* editorCommon.ScrollType.Smooth */) {\n        this._revealPosition(position, 5 /* VerticalRevealType.NearTop */, true, scrollType);\n    }\n    _revealPosition(position, verticalType, revealHorizontal, scrollType) {\n        if (!Position.isIPosition(position)) {\n            throw new Error('Invalid arguments');\n        }\n        this._sendRevealRange(new Range(position.lineNumber, position.column, position.lineNumber, position.column), verticalType, revealHorizontal, scrollType);\n    }\n    getSelection() {\n        if (!this._modelData) {\n            return null;\n        }\n        return this._modelData.viewModel.getSelection();\n    }\n    getSelections() {\n        if (!this._modelData) {\n            return null;\n        }\n        return this._modelData.viewModel.getSelections();\n    }\n    setSelection(something, source = 'api') {\n        const isSelection = Selection.isISelection(something);\n        const isRange = Range.isIRange(something);\n        if (!isSelection && !isRange) {\n            throw new Error('Invalid arguments');\n        }\n        if (isSelection) {\n            this._setSelectionImpl(something, source);\n        }\n        else if (isRange) {\n            // act as if it was an IRange\n            const selection = {\n                selectionStartLineNumber: something.startLineNumber,\n                selectionStartColumn: something.startColumn,\n                positionLineNumber: something.endLineNumber,\n                positionColumn: something.endColumn\n            };\n            this._setSelectionImpl(selection, source);\n        }\n    }\n    _setSelectionImpl(sel, source) {\n        if (!this._modelData) {\n            return;\n        }\n        const selection = new Selection(sel.selectionStartLineNumber, sel.selectionStartColumn, sel.positionLineNumber, sel.positionColumn);\n        this._modelData.viewModel.setSelections(source, [selection]);\n    }\n    revealLines(startLineNumber, endLineNumber, scrollType = 0 /* editorCommon.ScrollType.Smooth */) {\n        this._revealLines(startLineNumber, endLineNumber, 0 /* VerticalRevealType.Simple */, scrollType);\n    }\n    revealLinesInCenter(startLineNumber, endLineNumber, scrollType = 0 /* editorCommon.ScrollType.Smooth */) {\n        this._revealLines(startLineNumber, endLineNumber, 1 /* VerticalRevealType.Center */, scrollType);\n    }\n    revealLinesInCenterIfOutsideViewport(startLineNumber, endLineNumber, scrollType = 0 /* editorCommon.ScrollType.Smooth */) {\n        this._revealLines(startLineNumber, endLineNumber, 2 /* VerticalRevealType.CenterIfOutsideViewport */, scrollType);\n    }\n    revealLinesNearTop(startLineNumber, endLineNumber, scrollType = 0 /* editorCommon.ScrollType.Smooth */) {\n        this._revealLines(startLineNumber, endLineNumber, 5 /* VerticalRevealType.NearTop */, scrollType);\n    }\n    _revealLines(startLineNumber, endLineNumber, verticalType, scrollType) {\n        if (typeof startLineNumber !== 'number' || typeof endLineNumber !== 'number') {\n            throw new Error('Invalid arguments');\n        }\n        this._sendRevealRange(new Range(startLineNumber, 1, endLineNumber, 1), verticalType, false, scrollType);\n    }\n    revealRange(range, scrollType = 0 /* editorCommon.ScrollType.Smooth */, revealVerticalInCenter = false, revealHorizontal = true) {\n        this._revealRange(range, revealVerticalInCenter ? 1 /* VerticalRevealType.Center */ : 0 /* VerticalRevealType.Simple */, revealHorizontal, scrollType);\n    }\n    revealRangeInCenter(range, scrollType = 0 /* editorCommon.ScrollType.Smooth */) {\n        this._revealRange(range, 1 /* VerticalRevealType.Center */, true, scrollType);\n    }\n    revealRangeInCenterIfOutsideViewport(range, scrollType = 0 /* editorCommon.ScrollType.Smooth */) {\n        this._revealRange(range, 2 /* VerticalRevealType.CenterIfOutsideViewport */, true, scrollType);\n    }\n    revealRangeNearTop(range, scrollType = 0 /* editorCommon.ScrollType.Smooth */) {\n        this._revealRange(range, 5 /* VerticalRevealType.NearTop */, true, scrollType);\n    }\n    revealRangeNearTopIfOutsideViewport(range, scrollType = 0 /* editorCommon.ScrollType.Smooth */) {\n        this._revealRange(range, 6 /* VerticalRevealType.NearTopIfOutsideViewport */, true, scrollType);\n    }\n    revealRangeAtTop(range, scrollType = 0 /* editorCommon.ScrollType.Smooth */) {\n        this._revealRange(range, 3 /* VerticalRevealType.Top */, true, scrollType);\n    }\n    _revealRange(range, verticalType, revealHorizontal, scrollType) {\n        if (!Range.isIRange(range)) {\n            throw new Error('Invalid arguments');\n        }\n        this._sendRevealRange(Range.lift(range), verticalType, revealHorizontal, scrollType);\n    }\n    setSelections(ranges, source = 'api', reason = 0 /* CursorChangeReason.NotSet */) {\n        if (!this._modelData) {\n            return;\n        }\n        if (!ranges || ranges.length === 0) {\n            throw new Error('Invalid arguments');\n        }\n        for (let i = 0, len = ranges.length; i < len; i++) {\n            if (!Selection.isISelection(ranges[i])) {\n                throw new Error('Invalid arguments');\n            }\n        }\n        this._modelData.viewModel.setSelections(source, ranges, reason);\n    }\n    getContentWidth() {\n        if (!this._modelData) {\n            return -1;\n        }\n        return this._modelData.viewModel.viewLayout.getContentWidth();\n    }\n    getScrollWidth() {\n        if (!this._modelData) {\n            return -1;\n        }\n        return this._modelData.viewModel.viewLayout.getScrollWidth();\n    }\n    getScrollLeft() {\n        if (!this._modelData) {\n            return -1;\n        }\n        return this._modelData.viewModel.viewLayout.getCurrentScrollLeft();\n    }\n    getContentHeight() {\n        if (!this._modelData) {\n            return -1;\n        }\n        return this._modelData.viewModel.viewLayout.getContentHeight();\n    }\n    getScrollHeight() {\n        if (!this._modelData) {\n            return -1;\n        }\n        return this._modelData.viewModel.viewLayout.getScrollHeight();\n    }\n    getScrollTop() {\n        if (!this._modelData) {\n            return -1;\n        }\n        return this._modelData.viewModel.viewLayout.getCurrentScrollTop();\n    }\n    setScrollLeft(newScrollLeft, scrollType = 1 /* editorCommon.ScrollType.Immediate */) {\n        if (!this._modelData) {\n            return;\n        }\n        if (typeof newScrollLeft !== 'number') {\n            throw new Error('Invalid arguments');\n        }\n        this._modelData.viewModel.viewLayout.setScrollPosition({\n            scrollLeft: newScrollLeft\n        }, scrollType);\n    }\n    setScrollTop(newScrollTop, scrollType = 1 /* editorCommon.ScrollType.Immediate */) {\n        if (!this._modelData) {\n            return;\n        }\n        if (typeof newScrollTop !== 'number') {\n            throw new Error('Invalid arguments');\n        }\n        this._modelData.viewModel.viewLayout.setScrollPosition({\n            scrollTop: newScrollTop\n        }, scrollType);\n    }\n    setScrollPosition(position, scrollType = 1 /* editorCommon.ScrollType.Immediate */) {\n        if (!this._modelData) {\n            return;\n        }\n        this._modelData.viewModel.viewLayout.setScrollPosition(position, scrollType);\n    }\n    hasPendingScrollAnimation() {\n        if (!this._modelData) {\n            return false;\n        }\n        return this._modelData.viewModel.viewLayout.hasPendingScrollAnimation();\n    }\n    saveViewState() {\n        if (!this._modelData) {\n            return null;\n        }\n        const contributionsState = this._contributions.saveViewState();\n        const cursorState = this._modelData.viewModel.saveCursorState();\n        const viewState = this._modelData.viewModel.saveState();\n        return {\n            cursorState: cursorState,\n            viewState: viewState,\n            contributionsState: contributionsState\n        };\n    }\n    restoreViewState(s) {\n        if (!this._modelData || !this._modelData.hasRealView) {\n            return;\n        }\n        const codeEditorState = s;\n        if (codeEditorState && codeEditorState.cursorState && codeEditorState.viewState) {\n            const cursorState = codeEditorState.cursorState;\n            if (Array.isArray(cursorState)) {\n                if (cursorState.length > 0) {\n                    this._modelData.viewModel.restoreCursorState(cursorState);\n                }\n            }\n            else {\n                // Backwards compatibility\n                this._modelData.viewModel.restoreCursorState([cursorState]);\n            }\n            this._contributions.restoreViewState(codeEditorState.contributionsState || {});\n            const reducedState = this._modelData.viewModel.reduceRestoreState(codeEditorState.viewState);\n            this._modelData.view.restoreState(reducedState);\n        }\n    }\n    handleInitialized() {\n        var _a;\n        (_a = this._getViewModel()) === null || _a === void 0 ? void 0 : _a.visibleLinesStabilized();\n    }\n    getContribution(id) {\n        return this._contributions.get(id);\n    }\n    getActions() {\n        return Array.from(this._actions.values());\n    }\n    getSupportedActions() {\n        let result = this.getActions();\n        result = result.filter(action => action.isSupported());\n        return result;\n    }\n    getAction(id) {\n        return this._actions.get(id) || null;\n    }\n    trigger(source, handlerId, payload) {\n        payload = payload || {};\n        try {\n            this._beginUpdate();\n            switch (handlerId) {\n                case \"compositionStart\" /* editorCommon.Handler.CompositionStart */:\n                    this._startComposition();\n                    return;\n                case \"compositionEnd\" /* editorCommon.Handler.CompositionEnd */:\n                    this._endComposition(source);\n                    return;\n                case \"type\" /* editorCommon.Handler.Type */: {\n                    const args = payload;\n                    this._type(source, args.text || '');\n                    return;\n                }\n                case \"replacePreviousChar\" /* editorCommon.Handler.ReplacePreviousChar */: {\n                    const args = payload;\n                    this._compositionType(source, args.text || '', args.replaceCharCnt || 0, 0, 0);\n                    return;\n                }\n                case \"compositionType\" /* editorCommon.Handler.CompositionType */: {\n                    const args = payload;\n                    this._compositionType(source, args.text || '', args.replacePrevCharCnt || 0, args.replaceNextCharCnt || 0, args.positionDelta || 0);\n                    return;\n                }\n                case \"paste\" /* editorCommon.Handler.Paste */: {\n                    const args = payload;\n                    this._paste(source, args.text || '', args.pasteOnNewLine || false, args.multicursorText || null, args.mode || null, args.clipboardEvent);\n                    return;\n                }\n                case \"cut\" /* editorCommon.Handler.Cut */:\n                    this._cut(source);\n                    return;\n            }\n            const action = this.getAction(handlerId);\n            if (action) {\n                Promise.resolve(action.run(payload)).then(undefined, onUnexpectedError);\n                return;\n            }\n            if (!this._modelData) {\n                return;\n            }\n            if (this._triggerEditorCommand(source, handlerId, payload)) {\n                return;\n            }\n            this._triggerCommand(handlerId, payload);\n        }\n        finally {\n            this._endUpdate();\n        }\n    }\n    _triggerCommand(handlerId, payload) {\n        this._commandService.executeCommand(handlerId, payload);\n    }\n    _startComposition() {\n        if (!this._modelData) {\n            return;\n        }\n        this._modelData.viewModel.startComposition();\n        this._onDidCompositionStart.fire();\n    }\n    _endComposition(source) {\n        if (!this._modelData) {\n            return;\n        }\n        this._modelData.viewModel.endComposition(source);\n        this._onDidCompositionEnd.fire();\n    }\n    _type(source, text) {\n        if (!this._modelData || text.length === 0) {\n            return;\n        }\n        if (source === 'keyboard') {\n            this._onWillType.fire(text);\n        }\n        this._modelData.viewModel.type(text, source);\n        if (source === 'keyboard') {\n            this._onDidType.fire(text);\n        }\n    }\n    _compositionType(source, text, replacePrevCharCnt, replaceNextCharCnt, positionDelta) {\n        if (!this._modelData) {\n            return;\n        }\n        this._modelData.viewModel.compositionType(text, replacePrevCharCnt, replaceNextCharCnt, positionDelta, source);\n    }\n    _paste(source, text, pasteOnNewLine, multicursorText, mode, clipboardEvent) {\n        if (!this._modelData) {\n            return;\n        }\n        const viewModel = this._modelData.viewModel;\n        const startPosition = viewModel.getSelection().getStartPosition();\n        viewModel.paste(text, pasteOnNewLine, multicursorText, source);\n        const endPosition = viewModel.getSelection().getStartPosition();\n        if (source === 'keyboard') {\n            this._onDidPaste.fire({\n                clipboardEvent,\n                range: new Range(startPosition.lineNumber, startPosition.column, endPosition.lineNumber, endPosition.column),\n                languageId: mode\n            });\n        }\n    }\n    _cut(source) {\n        if (!this._modelData) {\n            return;\n        }\n        this._modelData.viewModel.cut(source);\n    }\n    _triggerEditorCommand(source, handlerId, payload) {\n        const command = EditorExtensionsRegistry.getEditorCommand(handlerId);\n        if (command) {\n            payload = payload || {};\n            payload.source = source;\n            this._instantiationService.invokeFunction((accessor) => {\n                Promise.resolve(command.runEditorCommand(accessor, this, payload)).then(undefined, onUnexpectedError);\n            });\n            return true;\n        }\n        return false;\n    }\n    _getViewModel() {\n        if (!this._modelData) {\n            return null;\n        }\n        return this._modelData.viewModel;\n    }\n    pushUndoStop() {\n        if (!this._modelData) {\n            return false;\n        }\n        if (this._configuration.options.get(91 /* EditorOption.readOnly */)) {\n            // read only editor => sorry!\n            return false;\n        }\n        this._modelData.model.pushStackElement();\n        return true;\n    }\n    popUndoStop() {\n        if (!this._modelData) {\n            return false;\n        }\n        if (this._configuration.options.get(91 /* EditorOption.readOnly */)) {\n            // read only editor => sorry!\n            return false;\n        }\n        this._modelData.model.popStackElement();\n        return true;\n    }\n    executeEdits(source, edits, endCursorState) {\n        if (!this._modelData) {\n            return false;\n        }\n        if (this._configuration.options.get(91 /* EditorOption.readOnly */)) {\n            // read only editor => sorry!\n            return false;\n        }\n        let cursorStateComputer;\n        if (!endCursorState) {\n            cursorStateComputer = () => null;\n        }\n        else if (Array.isArray(endCursorState)) {\n            cursorStateComputer = () => endCursorState;\n        }\n        else {\n            cursorStateComputer = endCursorState;\n        }\n        this._modelData.viewModel.executeEdits(source, edits, cursorStateComputer);\n        return true;\n    }\n    executeCommand(source, command) {\n        if (!this._modelData) {\n            return;\n        }\n        this._modelData.viewModel.executeCommand(command, source);\n    }\n    executeCommands(source, commands) {\n        if (!this._modelData) {\n            return;\n        }\n        this._modelData.viewModel.executeCommands(commands, source);\n    }\n    createDecorationsCollection(decorations) {\n        return new EditorDecorationsCollection(this, decorations);\n    }\n    changeDecorations(callback) {\n        if (!this._modelData) {\n            // callback will not be called\n            return null;\n        }\n        return this._modelData.model.changeDecorations(callback, this._id);\n    }\n    getLineDecorations(lineNumber) {\n        if (!this._modelData) {\n            return null;\n        }\n        return this._modelData.model.getLineDecorations(lineNumber, this._id, filterValidationDecorations(this._configuration.options));\n    }\n    getDecorationsInRange(range) {\n        if (!this._modelData) {\n            return null;\n        }\n        return this._modelData.model.getDecorationsInRange(range, this._id, filterValidationDecorations(this._configuration.options));\n    }\n    /**\n     * @deprecated\n     */\n    deltaDecorations(oldDecorations, newDecorations) {\n        if (!this._modelData) {\n            return [];\n        }\n        if (oldDecorations.length === 0 && newDecorations.length === 0) {\n            return oldDecorations;\n        }\n        return this._modelData.model.deltaDecorations(oldDecorations, newDecorations, this._id);\n    }\n    removeDecorations(decorationIds) {\n        if (!this._modelData || decorationIds.length === 0) {\n            return;\n        }\n        this._modelData.model.changeDecorations((changeAccessor) => {\n            changeAccessor.deltaDecorations(decorationIds, []);\n        });\n    }\n    removeDecorationsByType(decorationTypeKey) {\n        // remove decorations for type and sub type\n        const oldDecorationsIds = this._decorationTypeKeysToIds[decorationTypeKey];\n        if (oldDecorationsIds) {\n            this.changeDecorations(accessor => accessor.deltaDecorations(oldDecorationsIds, []));\n        }\n        if (this._decorationTypeKeysToIds.hasOwnProperty(decorationTypeKey)) {\n            delete this._decorationTypeKeysToIds[decorationTypeKey];\n        }\n        if (this._decorationTypeSubtypes.hasOwnProperty(decorationTypeKey)) {\n            delete this._decorationTypeSubtypes[decorationTypeKey];\n        }\n    }\n    getLayoutInfo() {\n        const options = this._configuration.options;\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        return layoutInfo;\n    }\n    createOverviewRuler(cssClassName) {\n        if (!this._modelData || !this._modelData.hasRealView) {\n            return null;\n        }\n        return this._modelData.view.createOverviewRuler(cssClassName);\n    }\n    getContainerDomNode() {\n        return this._domElement;\n    }\n    getDomNode() {\n        if (!this._modelData || !this._modelData.hasRealView) {\n            return null;\n        }\n        return this._modelData.view.domNode.domNode;\n    }\n    delegateVerticalScrollbarPointerDown(browserEvent) {\n        if (!this._modelData || !this._modelData.hasRealView) {\n            return;\n        }\n        this._modelData.view.delegateVerticalScrollbarPointerDown(browserEvent);\n    }\n    delegateScrollFromMouseWheelEvent(browserEvent) {\n        if (!this._modelData || !this._modelData.hasRealView) {\n            return;\n        }\n        this._modelData.view.delegateScrollFromMouseWheelEvent(browserEvent);\n    }\n    layout(dimension, postponeRendering = false) {\n        this._configuration.observeContainer(dimension);\n        if (!postponeRendering) {\n            this.render();\n        }\n    }\n    focus() {\n        if (!this._modelData || !this._modelData.hasRealView) {\n            return;\n        }\n        this._modelData.view.focus();\n    }\n    hasTextFocus() {\n        if (!this._modelData || !this._modelData.hasRealView) {\n            return false;\n        }\n        return this._modelData.view.isFocused();\n    }\n    hasWidgetFocus() {\n        return this._focusTracker && this._focusTracker.hasFocus();\n    }\n    addContentWidget(widget) {\n        const widgetData = {\n            widget: widget,\n            position: widget.getPosition()\n        };\n        if (this._contentWidgets.hasOwnProperty(widget.getId())) {\n            console.warn('Overwriting a content widget with the same id:' + widget.getId());\n        }\n        this._contentWidgets[widget.getId()] = widgetData;\n        if (this._modelData && this._modelData.hasRealView) {\n            this._modelData.view.addContentWidget(widgetData);\n        }\n    }\n    layoutContentWidget(widget) {\n        const widgetId = widget.getId();\n        if (this._contentWidgets.hasOwnProperty(widgetId)) {\n            const widgetData = this._contentWidgets[widgetId];\n            widgetData.position = widget.getPosition();\n            if (this._modelData && this._modelData.hasRealView) {\n                this._modelData.view.layoutContentWidget(widgetData);\n            }\n        }\n    }\n    removeContentWidget(widget) {\n        const widgetId = widget.getId();\n        if (this._contentWidgets.hasOwnProperty(widgetId)) {\n            const widgetData = this._contentWidgets[widgetId];\n            delete this._contentWidgets[widgetId];\n            if (this._modelData && this._modelData.hasRealView) {\n                this._modelData.view.removeContentWidget(widgetData);\n            }\n        }\n    }\n    addOverlayWidget(widget) {\n        const widgetData = {\n            widget: widget,\n            position: widget.getPosition()\n        };\n        if (this._overlayWidgets.hasOwnProperty(widget.getId())) {\n            console.warn('Overwriting an overlay widget with the same id.');\n        }\n        this._overlayWidgets[widget.getId()] = widgetData;\n        if (this._modelData && this._modelData.hasRealView) {\n            this._modelData.view.addOverlayWidget(widgetData);\n        }\n    }\n    layoutOverlayWidget(widget) {\n        const widgetId = widget.getId();\n        if (this._overlayWidgets.hasOwnProperty(widgetId)) {\n            const widgetData = this._overlayWidgets[widgetId];\n            widgetData.position = widget.getPosition();\n            if (this._modelData && this._modelData.hasRealView) {\n                this._modelData.view.layoutOverlayWidget(widgetData);\n            }\n        }\n    }\n    removeOverlayWidget(widget) {\n        const widgetId = widget.getId();\n        if (this._overlayWidgets.hasOwnProperty(widgetId)) {\n            const widgetData = this._overlayWidgets[widgetId];\n            delete this._overlayWidgets[widgetId];\n            if (this._modelData && this._modelData.hasRealView) {\n                this._modelData.view.removeOverlayWidget(widgetData);\n            }\n        }\n    }\n    addGlyphMarginWidget(widget) {\n        const widgetData = {\n            widget: widget,\n            position: widget.getPosition()\n        };\n        if (this._glyphMarginWidgets.hasOwnProperty(widget.getId())) {\n            console.warn('Overwriting a glyph margin widget with the same id.');\n        }\n        this._glyphMarginWidgets[widget.getId()] = widgetData;\n        if (this._modelData && this._modelData.hasRealView) {\n            this._modelData.view.addGlyphMarginWidget(widgetData);\n        }\n    }\n    layoutGlyphMarginWidget(widget) {\n        const widgetId = widget.getId();\n        if (this._glyphMarginWidgets.hasOwnProperty(widgetId)) {\n            const widgetData = this._glyphMarginWidgets[widgetId];\n            widgetData.position = widget.getPosition();\n            if (this._modelData && this._modelData.hasRealView) {\n                this._modelData.view.layoutGlyphMarginWidget(widgetData);\n            }\n        }\n    }\n    removeGlyphMarginWidget(widget) {\n        const widgetId = widget.getId();\n        if (this._glyphMarginWidgets.hasOwnProperty(widgetId)) {\n            const widgetData = this._glyphMarginWidgets[widgetId];\n            delete this._glyphMarginWidgets[widgetId];\n            if (this._modelData && this._modelData.hasRealView) {\n                this._modelData.view.removeGlyphMarginWidget(widgetData);\n            }\n        }\n    }\n    changeViewZones(callback) {\n        if (!this._modelData || !this._modelData.hasRealView) {\n            return;\n        }\n        this._modelData.view.change(callback);\n    }\n    getTargetAtClientPoint(clientX, clientY) {\n        if (!this._modelData || !this._modelData.hasRealView) {\n            return null;\n        }\n        return this._modelData.view.getTargetAtClientPoint(clientX, clientY);\n    }\n    getScrolledVisiblePosition(rawPosition) {\n        if (!this._modelData || !this._modelData.hasRealView) {\n            return null;\n        }\n        const position = this._modelData.model.validatePosition(rawPosition);\n        const options = this._configuration.options;\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        const top = CodeEditorWidget_1._getVerticalOffsetForPosition(this._modelData, position.lineNumber, position.column) - this.getScrollTop();\n        const left = this._modelData.view.getOffsetForColumn(position.lineNumber, position.column) + layoutInfo.glyphMarginWidth + layoutInfo.lineNumbersWidth + layoutInfo.decorationsWidth - this.getScrollLeft();\n        return {\n            top: top,\n            left: left,\n            height: options.get(67 /* EditorOption.lineHeight */)\n        };\n    }\n    getOffsetForColumn(lineNumber, column) {\n        if (!this._modelData || !this._modelData.hasRealView) {\n            return -1;\n        }\n        return this._modelData.view.getOffsetForColumn(lineNumber, column);\n    }\n    render(forceRedraw = false) {\n        if (!this._modelData || !this._modelData.hasRealView) {\n            return;\n        }\n        this._modelData.viewModel.batchEvents(() => {\n            this._modelData.view.render(true, forceRedraw);\n        });\n    }\n    setAriaOptions(options) {\n        if (!this._modelData || !this._modelData.hasRealView) {\n            return;\n        }\n        this._modelData.view.setAriaOptions(options);\n    }\n    applyFontInfo(target) {\n        applyFontInfo(target, this._configuration.options.get(50 /* EditorOption.fontInfo */));\n    }\n    setBanner(domNode, domNodeHeight) {\n        if (this._bannerDomNode && this._domElement.contains(this._bannerDomNode)) {\n            this._domElement.removeChild(this._bannerDomNode);\n        }\n        this._bannerDomNode = domNode;\n        this._configuration.setReservedHeight(domNode ? domNodeHeight : 0);\n        if (this._bannerDomNode) {\n            this._domElement.prepend(this._bannerDomNode);\n        }\n    }\n    _attachModel(model) {\n        if (!model) {\n            this._modelData = null;\n            return;\n        }\n        const listenersToRemove = [];\n        this._domElement.setAttribute('data-mode-id', model.getLanguageId());\n        this._configuration.setIsDominatedByLongLines(model.isDominatedByLongLines());\n        this._configuration.setModelLineCount(model.getLineCount());\n        const attachedView = model.onBeforeAttached();\n        const viewModel = new ViewModel(this._id, this._configuration, model, DOMLineBreaksComputerFactory.create(dom.getWindow(this._domElement)), MonospaceLineBreaksComputerFactory.create(this._configuration.options), (callback) => dom.scheduleAtNextAnimationFrame(dom.getWindow(this._domElement), callback), this.languageConfigurationService, this._themeService, attachedView);\n        // Someone might destroy the model from under the editor, so prevent any exceptions by setting a null model\n        listenersToRemove.push(model.onWillDispose(() => this.setModel(null)));\n        listenersToRemove.push(viewModel.onEvent((e) => {\n            switch (e.kind) {\n                case 0 /* OutgoingViewModelEventKind.ContentSizeChanged */:\n                    this._onDidContentSizeChange.fire(e);\n                    break;\n                case 1 /* OutgoingViewModelEventKind.FocusChanged */:\n                    this._editorTextFocus.setValue(e.hasFocus);\n                    break;\n                case 2 /* OutgoingViewModelEventKind.ScrollChanged */:\n                    this._onDidScrollChange.fire(e);\n                    break;\n                case 3 /* OutgoingViewModelEventKind.ViewZonesChanged */:\n                    this._onDidChangeViewZones.fire();\n                    break;\n                case 4 /* OutgoingViewModelEventKind.HiddenAreasChanged */:\n                    this._onDidChangeHiddenAreas.fire();\n                    break;\n                case 5 /* OutgoingViewModelEventKind.ReadOnlyEditAttempt */:\n                    this._onDidAttemptReadOnlyEdit.fire();\n                    break;\n                case 6 /* OutgoingViewModelEventKind.CursorStateChanged */: {\n                    if (e.reachedMaxCursorCount) {\n                        const multiCursorLimit = this.getOption(80 /* EditorOption.multiCursorLimit */);\n                        const message = nls.localize('cursors.maximum', \"The number of cursors has been limited to {0}. Consider using [find and replace](https://code.visualstudio.com/docs/editor/codebasics#_find-and-replace) for larger changes or increase the editor multi cursor limit setting.\", multiCursorLimit);\n                        this._notificationService.prompt(Severity.Warning, message, [\n                            {\n                                label: 'Find and Replace',\n                                run: () => {\n                                    this._commandService.executeCommand('editor.action.startFindReplaceAction');\n                                }\n                            },\n                            {\n                                label: nls.localize('goToSetting', 'Increase Multi Cursor Limit'),\n                                run: () => {\n                                    this._commandService.executeCommand('workbench.action.openSettings2', {\n                                        query: 'editor.multiCursorLimit'\n                                    });\n                                }\n                            }\n                        ]);\n                    }\n                    const positions = [];\n                    for (let i = 0, len = e.selections.length; i < len; i++) {\n                        positions[i] = e.selections[i].getPosition();\n                    }\n                    const e1 = {\n                        position: positions[0],\n                        secondaryPositions: positions.slice(1),\n                        reason: e.reason,\n                        source: e.source\n                    };\n                    this._onDidChangeCursorPosition.fire(e1);\n                    const e2 = {\n                        selection: e.selections[0],\n                        secondarySelections: e.selections.slice(1),\n                        modelVersionId: e.modelVersionId,\n                        oldSelections: e.oldSelections,\n                        oldModelVersionId: e.oldModelVersionId,\n                        source: e.source,\n                        reason: e.reason\n                    };\n                    this._onDidChangeCursorSelection.fire(e2);\n                    break;\n                }\n                case 7 /* OutgoingViewModelEventKind.ModelDecorationsChanged */:\n                    this._onDidChangeModelDecorations.fire(e.event);\n                    break;\n                case 8 /* OutgoingViewModelEventKind.ModelLanguageChanged */:\n                    this._domElement.setAttribute('data-mode-id', model.getLanguageId());\n                    this._onDidChangeModelLanguage.fire(e.event);\n                    break;\n                case 9 /* OutgoingViewModelEventKind.ModelLanguageConfigurationChanged */:\n                    this._onDidChangeModelLanguageConfiguration.fire(e.event);\n                    break;\n                case 10 /* OutgoingViewModelEventKind.ModelContentChanged */:\n                    this._onDidChangeModelContent.fire(e.event);\n                    break;\n                case 11 /* OutgoingViewModelEventKind.ModelOptionsChanged */:\n                    this._onDidChangeModelOptions.fire(e.event);\n                    break;\n                case 12 /* OutgoingViewModelEventKind.ModelTokensChanged */:\n                    this._onDidChangeModelTokens.fire(e.event);\n                    break;\n            }\n        }));\n        const [view, hasRealView] = this._createView(viewModel);\n        if (hasRealView) {\n            this._domElement.appendChild(view.domNode.domNode);\n            let keys = Object.keys(this._contentWidgets);\n            for (let i = 0, len = keys.length; i < len; i++) {\n                const widgetId = keys[i];\n                view.addContentWidget(this._contentWidgets[widgetId]);\n            }\n            keys = Object.keys(this._overlayWidgets);\n            for (let i = 0, len = keys.length; i < len; i++) {\n                const widgetId = keys[i];\n                view.addOverlayWidget(this._overlayWidgets[widgetId]);\n            }\n            keys = Object.keys(this._glyphMarginWidgets);\n            for (let i = 0, len = keys.length; i < len; i++) {\n                const widgetId = keys[i];\n                view.addGlyphMarginWidget(this._glyphMarginWidgets[widgetId]);\n            }\n            view.render(false, true);\n            view.domNode.domNode.setAttribute('data-uri', model.uri.toString());\n        }\n        this._modelData = new ModelData(model, viewModel, view, hasRealView, listenersToRemove, attachedView);\n    }\n    _createView(viewModel) {\n        let commandDelegate;\n        if (this.isSimpleWidget) {\n            commandDelegate = {\n                paste: (text, pasteOnNewLine, multicursorText, mode) => {\n                    this._paste('keyboard', text, pasteOnNewLine, multicursorText, mode);\n                },\n                type: (text) => {\n                    this._type('keyboard', text);\n                },\n                compositionType: (text, replacePrevCharCnt, replaceNextCharCnt, positionDelta) => {\n                    this._compositionType('keyboard', text, replacePrevCharCnt, replaceNextCharCnt, positionDelta);\n                },\n                startComposition: () => {\n                    this._startComposition();\n                },\n                endComposition: () => {\n                    this._endComposition('keyboard');\n                },\n                cut: () => {\n                    this._cut('keyboard');\n                }\n            };\n        }\n        else {\n            commandDelegate = {\n                paste: (text, pasteOnNewLine, multicursorText, mode) => {\n                    const payload = { text, pasteOnNewLine, multicursorText, mode };\n                    this._commandService.executeCommand(\"paste\" /* editorCommon.Handler.Paste */, payload);\n                },\n                type: (text) => {\n                    const payload = { text };\n                    this._commandService.executeCommand(\"type\" /* editorCommon.Handler.Type */, payload);\n                },\n                compositionType: (text, replacePrevCharCnt, replaceNextCharCnt, positionDelta) => {\n                    // Try if possible to go through the existing `replacePreviousChar` command\n                    if (replaceNextCharCnt || positionDelta) {\n                        // must be handled through the new command\n                        const payload = { text, replacePrevCharCnt, replaceNextCharCnt, positionDelta };\n                        this._commandService.executeCommand(\"compositionType\" /* editorCommon.Handler.CompositionType */, payload);\n                    }\n                    else {\n                        const payload = { text, replaceCharCnt: replacePrevCharCnt };\n                        this._commandService.executeCommand(\"replacePreviousChar\" /* editorCommon.Handler.ReplacePreviousChar */, payload);\n                    }\n                },\n                startComposition: () => {\n                    this._commandService.executeCommand(\"compositionStart\" /* editorCommon.Handler.CompositionStart */, {});\n                },\n                endComposition: () => {\n                    this._commandService.executeCommand(\"compositionEnd\" /* editorCommon.Handler.CompositionEnd */, {});\n                },\n                cut: () => {\n                    this._commandService.executeCommand(\"cut\" /* editorCommon.Handler.Cut */, {});\n                }\n            };\n        }\n        const viewUserInputEvents = new ViewUserInputEvents(viewModel.coordinatesConverter);\n        viewUserInputEvents.onKeyDown = (e) => this._onKeyDown.fire(e);\n        viewUserInputEvents.onKeyUp = (e) => this._onKeyUp.fire(e);\n        viewUserInputEvents.onContextMenu = (e) => this._onContextMenu.fire(e);\n        viewUserInputEvents.onMouseMove = (e) => this._onMouseMove.fire(e);\n        viewUserInputEvents.onMouseLeave = (e) => this._onMouseLeave.fire(e);\n        viewUserInputEvents.onMouseDown = (e) => this._onMouseDown.fire(e);\n        viewUserInputEvents.onMouseUp = (e) => this._onMouseUp.fire(e);\n        viewUserInputEvents.onMouseDrag = (e) => this._onMouseDrag.fire(e);\n        viewUserInputEvents.onMouseDrop = (e) => this._onMouseDrop.fire(e);\n        viewUserInputEvents.onMouseDropCanceled = (e) => this._onMouseDropCanceled.fire(e);\n        viewUserInputEvents.onMouseWheel = (e) => this._onMouseWheel.fire(e);\n        const view = new View(commandDelegate, this._configuration, this._themeService.getColorTheme(), viewModel, viewUserInputEvents, this._overflowWidgetsDomNode, this._instantiationService);\n        return [view, true];\n    }\n    _postDetachModelCleanup(detachedModel) {\n        detachedModel === null || detachedModel === void 0 ? void 0 : detachedModel.removeAllDecorationsWithOwnerId(this._id);\n    }\n    _detachModel() {\n        var _a;\n        (_a = this._contributionsDisposable) === null || _a === void 0 ? void 0 : _a.dispose();\n        this._contributionsDisposable = undefined;\n        if (!this._modelData) {\n            return null;\n        }\n        const model = this._modelData.model;\n        const removeDomNode = this._modelData.hasRealView ? this._modelData.view.domNode.domNode : null;\n        this._modelData.dispose();\n        this._modelData = null;\n        this._domElement.removeAttribute('data-mode-id');\n        if (removeDomNode && this._domElement.contains(removeDomNode)) {\n            this._domElement.removeChild(removeDomNode);\n        }\n        if (this._bannerDomNode && this._domElement.contains(this._bannerDomNode)) {\n            this._domElement.removeChild(this._bannerDomNode);\n        }\n        return model;\n    }\n    _removeDecorationType(key) {\n        this._codeEditorService.removeDecorationType(key);\n    }\n    hasModel() {\n        return (this._modelData !== null);\n    }\n    showDropIndicatorAt(position) {\n        const newDecorations = [{\n                range: new Range(position.lineNumber, position.column, position.lineNumber, position.column),\n                options: CodeEditorWidget_1.dropIntoEditorDecorationOptions\n            }];\n        this._dropIntoEditorDecorations.set(newDecorations);\n        this.revealPosition(position, 1 /* editorCommon.ScrollType.Immediate */);\n    }\n    removeDropIndicator() {\n        this._dropIntoEditorDecorations.clear();\n    }\n    setContextValue(key, value) {\n        this._contextKeyService.createKey(key, value);\n    }\n    _beginUpdate() {\n        this._updateCounter++;\n        if (this._updateCounter === 1) {\n            this._onBeginUpdate.fire();\n        }\n    }\n    _endUpdate() {\n        this._updateCounter--;\n        if (this._updateCounter === 0) {\n            this._onEndUpdate.fire();\n        }\n    }\n};\nCodeEditorWidget.dropIntoEditorDecorationOptions = ModelDecorationOptions.register({\n    description: 'workbench-dnd-target',\n    className: 'dnd-target'\n});\nCodeEditorWidget = CodeEditorWidget_1 = __decorate([\n    __param(3, IInstantiationService),\n    __param(4, ICodeEditorService),\n    __param(5, ICommandService),\n    __param(6, IContextKeyService),\n    __param(7, IThemeService),\n    __param(8, INotificationService),\n    __param(9, IAccessibilityService),\n    __param(10, ILanguageConfigurationService),\n    __param(11, ILanguageFeaturesService)\n], CodeEditorWidget);\nexport { CodeEditorWidget };\nlet EDITOR_ID = 0;\nclass ModelData {\n    constructor(model, viewModel, view, hasRealView, listenersToRemove, attachedView) {\n        this.model = model;\n        this.viewModel = viewModel;\n        this.view = view;\n        this.hasRealView = hasRealView;\n        this.listenersToRemove = listenersToRemove;\n        this.attachedView = attachedView;\n    }\n    dispose() {\n        dispose(this.listenersToRemove);\n        this.model.onBeforeDetached(this.attachedView);\n        if (this.hasRealView) {\n            this.view.dispose();\n        }\n        this.viewModel.dispose();\n    }\n}\nexport class BooleanEventEmitter extends Disposable {\n    constructor(_emitterOptions) {\n        super();\n        this._emitterOptions = _emitterOptions;\n        this._onDidChangeToTrue = this._register(new Emitter(this._emitterOptions));\n        this.onDidChangeToTrue = this._onDidChangeToTrue.event;\n        this._onDidChangeToFalse = this._register(new Emitter(this._emitterOptions));\n        this.onDidChangeToFalse = this._onDidChangeToFalse.event;\n        this._value = 0 /* BooleanEventValue.NotSet */;\n    }\n    setValue(_value) {\n        const value = (_value ? 2 /* BooleanEventValue.True */ : 1 /* BooleanEventValue.False */);\n        if (this._value === value) {\n            return;\n        }\n        this._value = value;\n        if (this._value === 2 /* BooleanEventValue.True */) {\n            this._onDidChangeToTrue.fire();\n        }\n        else if (this._value === 1 /* BooleanEventValue.False */) {\n            this._onDidChangeToFalse.fire();\n        }\n    }\n}\n/**\n * A regular event emitter that also makes sure contributions are instantiated if necessary\n */\nclass InteractionEmitter extends Emitter {\n    constructor(_contributions, deliveryQueue) {\n        super({ deliveryQueue });\n        this._contributions = _contributions;\n    }\n    fire(event) {\n        this._contributions.onBeforeInteractionEvent();\n        super.fire(event);\n    }\n}\nclass EditorContextKeysManager extends Disposable {\n    constructor(editor, contextKeyService) {\n        super();\n        this._editor = editor;\n        contextKeyService.createKey('editorId', editor.getId());\n        this._editorSimpleInput = EditorContextKeys.editorSimpleInput.bindTo(contextKeyService);\n        this._editorFocus = EditorContextKeys.focus.bindTo(contextKeyService);\n        this._textInputFocus = EditorContextKeys.textInputFocus.bindTo(contextKeyService);\n        this._editorTextFocus = EditorContextKeys.editorTextFocus.bindTo(contextKeyService);\n        this._tabMovesFocus = EditorContextKeys.tabMovesFocus.bindTo(contextKeyService);\n        this._editorReadonly = EditorContextKeys.readOnly.bindTo(contextKeyService);\n        this._inDiffEditor = EditorContextKeys.inDiffEditor.bindTo(contextKeyService);\n        this._editorColumnSelection = EditorContextKeys.columnSelection.bindTo(contextKeyService);\n        this._hasMultipleSelections = EditorContextKeys.hasMultipleSelections.bindTo(contextKeyService);\n        this._hasNonEmptySelection = EditorContextKeys.hasNonEmptySelection.bindTo(contextKeyService);\n        this._canUndo = EditorContextKeys.canUndo.bindTo(contextKeyService);\n        this._canRedo = EditorContextKeys.canRedo.bindTo(contextKeyService);\n        this._register(this._editor.onDidChangeConfiguration(() => this._updateFromConfig()));\n        this._register(this._editor.onDidChangeCursorSelection(() => this._updateFromSelection()));\n        this._register(this._editor.onDidFocusEditorWidget(() => this._updateFromFocus()));\n        this._register(this._editor.onDidBlurEditorWidget(() => this._updateFromFocus()));\n        this._register(this._editor.onDidFocusEditorText(() => this._updateFromFocus()));\n        this._register(this._editor.onDidBlurEditorText(() => this._updateFromFocus()));\n        this._register(this._editor.onDidChangeModel(() => this._updateFromModel()));\n        this._register(this._editor.onDidChangeConfiguration(() => this._updateFromModel()));\n        this._register(TabFocus.onDidChangeTabFocus((tabFocusMode) => this._tabMovesFocus.set(tabFocusMode)));\n        this._updateFromConfig();\n        this._updateFromSelection();\n        this._updateFromFocus();\n        this._updateFromModel();\n        this._editorSimpleInput.set(this._editor.isSimpleWidget);\n    }\n    _updateFromConfig() {\n        const options = this._editor.getOptions();\n        this._tabMovesFocus.set(TabFocus.getTabFocusMode());\n        this._editorReadonly.set(options.get(91 /* EditorOption.readOnly */));\n        this._inDiffEditor.set(options.get(61 /* EditorOption.inDiffEditor */));\n        this._editorColumnSelection.set(options.get(22 /* EditorOption.columnSelection */));\n    }\n    _updateFromSelection() {\n        const selections = this._editor.getSelections();\n        if (!selections) {\n            this._hasMultipleSelections.reset();\n            this._hasNonEmptySelection.reset();\n        }\n        else {\n            this._hasMultipleSelections.set(selections.length > 1);\n            this._hasNonEmptySelection.set(selections.some(s => !s.isEmpty()));\n        }\n    }\n    _updateFromFocus() {\n        this._editorFocus.set(this._editor.hasWidgetFocus() && !this._editor.isSimpleWidget);\n        this._editorTextFocus.set(this._editor.hasTextFocus() && !this._editor.isSimpleWidget);\n        this._textInputFocus.set(this._editor.hasTextFocus());\n    }\n    _updateFromModel() {\n        const model = this._editor.getModel();\n        this._canUndo.set(Boolean(model && model.canUndo()));\n        this._canRedo.set(Boolean(model && model.canRedo()));\n    }\n}\nexport class EditorModeContext extends Disposable {\n    constructor(_editor, _contextKeyService, _languageFeaturesService) {\n        super();\n        this._editor = _editor;\n        this._contextKeyService = _contextKeyService;\n        this._languageFeaturesService = _languageFeaturesService;\n        this._langId = EditorContextKeys.languageId.bindTo(_contextKeyService);\n        this._hasCompletionItemProvider = EditorContextKeys.hasCompletionItemProvider.bindTo(_contextKeyService);\n        this._hasCodeActionsProvider = EditorContextKeys.hasCodeActionsProvider.bindTo(_contextKeyService);\n        this._hasCodeLensProvider = EditorContextKeys.hasCodeLensProvider.bindTo(_contextKeyService);\n        this._hasDefinitionProvider = EditorContextKeys.hasDefinitionProvider.bindTo(_contextKeyService);\n        this._hasDeclarationProvider = EditorContextKeys.hasDeclarationProvider.bindTo(_contextKeyService);\n        this._hasImplementationProvider = EditorContextKeys.hasImplementationProvider.bindTo(_contextKeyService);\n        this._hasTypeDefinitionProvider = EditorContextKeys.hasTypeDefinitionProvider.bindTo(_contextKeyService);\n        this._hasHoverProvider = EditorContextKeys.hasHoverProvider.bindTo(_contextKeyService);\n        this._hasDocumentHighlightProvider = EditorContextKeys.hasDocumentHighlightProvider.bindTo(_contextKeyService);\n        this._hasDocumentSymbolProvider = EditorContextKeys.hasDocumentSymbolProvider.bindTo(_contextKeyService);\n        this._hasReferenceProvider = EditorContextKeys.hasReferenceProvider.bindTo(_contextKeyService);\n        this._hasRenameProvider = EditorContextKeys.hasRenameProvider.bindTo(_contextKeyService);\n        this._hasSignatureHelpProvider = EditorContextKeys.hasSignatureHelpProvider.bindTo(_contextKeyService);\n        this._hasInlayHintsProvider = EditorContextKeys.hasInlayHintsProvider.bindTo(_contextKeyService);\n        this._hasDocumentFormattingProvider = EditorContextKeys.hasDocumentFormattingProvider.bindTo(_contextKeyService);\n        this._hasDocumentSelectionFormattingProvider = EditorContextKeys.hasDocumentSelectionFormattingProvider.bindTo(_contextKeyService);\n        this._hasMultipleDocumentFormattingProvider = EditorContextKeys.hasMultipleDocumentFormattingProvider.bindTo(_contextKeyService);\n        this._hasMultipleDocumentSelectionFormattingProvider = EditorContextKeys.hasMultipleDocumentSelectionFormattingProvider.bindTo(_contextKeyService);\n        this._isInEmbeddedEditor = EditorContextKeys.isInEmbeddedEditor.bindTo(_contextKeyService);\n        const update = () => this._update();\n        // update when model/mode changes\n        this._register(_editor.onDidChangeModel(update));\n        this._register(_editor.onDidChangeModelLanguage(update));\n        // update when registries change\n        this._register(_languageFeaturesService.completionProvider.onDidChange(update));\n        this._register(_languageFeaturesService.codeActionProvider.onDidChange(update));\n        this._register(_languageFeaturesService.codeLensProvider.onDidChange(update));\n        this._register(_languageFeaturesService.definitionProvider.onDidChange(update));\n        this._register(_languageFeaturesService.declarationProvider.onDidChange(update));\n        this._register(_languageFeaturesService.implementationProvider.onDidChange(update));\n        this._register(_languageFeaturesService.typeDefinitionProvider.onDidChange(update));\n        this._register(_languageFeaturesService.hoverProvider.onDidChange(update));\n        this._register(_languageFeaturesService.documentHighlightProvider.onDidChange(update));\n        this._register(_languageFeaturesService.documentSymbolProvider.onDidChange(update));\n        this._register(_languageFeaturesService.referenceProvider.onDidChange(update));\n        this._register(_languageFeaturesService.renameProvider.onDidChange(update));\n        this._register(_languageFeaturesService.documentFormattingEditProvider.onDidChange(update));\n        this._register(_languageFeaturesService.documentRangeFormattingEditProvider.onDidChange(update));\n        this._register(_languageFeaturesService.signatureHelpProvider.onDidChange(update));\n        this._register(_languageFeaturesService.inlayHintsProvider.onDidChange(update));\n        update();\n    }\n    dispose() {\n        super.dispose();\n    }\n    reset() {\n        this._contextKeyService.bufferChangeEvents(() => {\n            this._langId.reset();\n            this._hasCompletionItemProvider.reset();\n            this._hasCodeActionsProvider.reset();\n            this._hasCodeLensProvider.reset();\n            this._hasDefinitionProvider.reset();\n            this._hasDeclarationProvider.reset();\n            this._hasImplementationProvider.reset();\n            this._hasTypeDefinitionProvider.reset();\n            this._hasHoverProvider.reset();\n            this._hasDocumentHighlightProvider.reset();\n            this._hasDocumentSymbolProvider.reset();\n            this._hasReferenceProvider.reset();\n            this._hasRenameProvider.reset();\n            this._hasDocumentFormattingProvider.reset();\n            this._hasDocumentSelectionFormattingProvider.reset();\n            this._hasSignatureHelpProvider.reset();\n            this._isInEmbeddedEditor.reset();\n        });\n    }\n    _update() {\n        const model = this._editor.getModel();\n        if (!model) {\n            this.reset();\n            return;\n        }\n        this._contextKeyService.bufferChangeEvents(() => {\n            this._langId.set(model.getLanguageId());\n            this._hasCompletionItemProvider.set(this._languageFeaturesService.completionProvider.has(model));\n            this._hasCodeActionsProvider.set(this._languageFeaturesService.codeActionProvider.has(model));\n            this._hasCodeLensProvider.set(this._languageFeaturesService.codeLensProvider.has(model));\n            this._hasDefinitionProvider.set(this._languageFeaturesService.definitionProvider.has(model));\n            this._hasDeclarationProvider.set(this._languageFeaturesService.declarationProvider.has(model));\n            this._hasImplementationProvider.set(this._languageFeaturesService.implementationProvider.has(model));\n            this._hasTypeDefinitionProvider.set(this._languageFeaturesService.typeDefinitionProvider.has(model));\n            this._hasHoverProvider.set(this._languageFeaturesService.hoverProvider.has(model));\n            this._hasDocumentHighlightProvider.set(this._languageFeaturesService.documentHighlightProvider.has(model));\n            this._hasDocumentSymbolProvider.set(this._languageFeaturesService.documentSymbolProvider.has(model));\n            this._hasReferenceProvider.set(this._languageFeaturesService.referenceProvider.has(model));\n            this._hasRenameProvider.set(this._languageFeaturesService.renameProvider.has(model));\n            this._hasSignatureHelpProvider.set(this._languageFeaturesService.signatureHelpProvider.has(model));\n            this._hasInlayHintsProvider.set(this._languageFeaturesService.inlayHintsProvider.has(model));\n            this._hasDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.has(model) || this._languageFeaturesService.documentRangeFormattingEditProvider.has(model));\n            this._hasDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.has(model));\n            this._hasMultipleDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.all(model).length + this._languageFeaturesService.documentRangeFormattingEditProvider.all(model).length > 1);\n            this._hasMultipleDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.all(model).length > 1);\n            this._isInEmbeddedEditor.set(model.uri.scheme === Schemas.walkThroughSnippet || model.uri.scheme === Schemas.vscodeChatCodeBlock);\n        });\n    }\n}\nclass CodeEditorWidgetFocusTracker extends Disposable {\n    constructor(domElement, overflowWidgetsDomNode) {\n        super();\n        this._onChange = this._register(new Emitter());\n        this.onChange = this._onChange.event;\n        this._hadFocus = undefined;\n        this._hasDomElementFocus = false;\n        this._domFocusTracker = this._register(dom.trackFocus(domElement));\n        this._overflowWidgetsDomNodeHasFocus = false;\n        this._register(this._domFocusTracker.onDidFocus(() => {\n            this._hasDomElementFocus = true;\n            this._update();\n        }));\n        this._register(this._domFocusTracker.onDidBlur(() => {\n            this._hasDomElementFocus = false;\n            this._update();\n        }));\n        if (overflowWidgetsDomNode) {\n            this._overflowWidgetsDomNode = this._register(dom.trackFocus(overflowWidgetsDomNode));\n            this._register(this._overflowWidgetsDomNode.onDidFocus(() => {\n                this._overflowWidgetsDomNodeHasFocus = true;\n                this._update();\n            }));\n            this._register(this._overflowWidgetsDomNode.onDidBlur(() => {\n                this._overflowWidgetsDomNodeHasFocus = false;\n                this._update();\n            }));\n        }\n    }\n    _update() {\n        const focused = this._hasDomElementFocus || this._overflowWidgetsDomNodeHasFocus;\n        if (this._hadFocus !== focused) {\n            this._hadFocus = focused;\n            this._onChange.fire(undefined);\n        }\n    }\n    hasFocus() {\n        var _a;\n        return (_a = this._hadFocus) !== null && _a !== void 0 ? _a : false;\n    }\n}\nclass EditorDecorationsCollection {\n    get length() {\n        return this._decorationIds.length;\n    }\n    constructor(_editor, decorations) {\n        this._editor = _editor;\n        this._decorationIds = [];\n        this._isChangingDecorations = false;\n        if (Array.isArray(decorations) && decorations.length > 0) {\n            this.set(decorations);\n        }\n    }\n    onDidChange(listener, thisArgs, disposables) {\n        return this._editor.onDidChangeModelDecorations((e) => {\n            if (this._isChangingDecorations) {\n                return;\n            }\n            listener.call(thisArgs, e);\n        }, disposables);\n    }\n    getRange(index) {\n        if (!this._editor.hasModel()) {\n            return null;\n        }\n        if (index >= this._decorationIds.length) {\n            return null;\n        }\n        return this._editor.getModel().getDecorationRange(this._decorationIds[index]);\n    }\n    getRanges() {\n        if (!this._editor.hasModel()) {\n            return [];\n        }\n        const model = this._editor.getModel();\n        const result = [];\n        for (const decorationId of this._decorationIds) {\n            const range = model.getDecorationRange(decorationId);\n            if (range) {\n                result.push(range);\n            }\n        }\n        return result;\n    }\n    has(decoration) {\n        return this._decorationIds.includes(decoration.id);\n    }\n    clear() {\n        if (this._decorationIds.length === 0) {\n            // nothing to do\n            return;\n        }\n        this.set([]);\n    }\n    set(newDecorations) {\n        try {\n            this._isChangingDecorations = true;\n            this._editor.changeDecorations((accessor) => {\n                this._decorationIds = accessor.deltaDecorations(this._decorationIds, newDecorations);\n            });\n        }\n        finally {\n            this._isChangingDecorations = false;\n        }\n        return this._decorationIds;\n    }\n    append(newDecorations) {\n        let newDecorationIds = [];\n        try {\n            this._isChangingDecorations = true;\n            this._editor.changeDecorations((accessor) => {\n                newDecorationIds = accessor.deltaDecorations([], newDecorations);\n                this._decorationIds = this._decorationIds.concat(newDecorationIds);\n            });\n        }\n        finally {\n            this._isChangingDecorations = false;\n        }\n        return newDecorationIds;\n    }\n}\nconst squigglyStart = encodeURIComponent(`<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 3' enable-background='new 0 0 6 3' height='3' width='6'><g fill='`);\nconst squigglyEnd = encodeURIComponent(`'><polygon points='5.5,0 2.5,3 1.1,3 4.1,0'/><polygon points='4,0 6,2 6,0.6 5.4,0'/><polygon points='0,2 1,3 2.4,3 0,0.6'/></g></svg>`);\nfunction getSquigglySVGData(color) {\n    return squigglyStart + encodeURIComponent(color.toString()) + squigglyEnd;\n}\nconst dotdotdotStart = encodeURIComponent(`<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"3\" width=\"12\"><g fill=\"`);\nconst dotdotdotEnd = encodeURIComponent(`\"><circle cx=\"1\" cy=\"1\" r=\"1\"/><circle cx=\"5\" cy=\"1\" r=\"1\"/><circle cx=\"9\" cy=\"1\" r=\"1\"/></g></svg>`);\nfunction getDotDotDotSVGData(color) {\n    return dotdotdotStart + encodeURIComponent(color.toString()) + dotdotdotEnd;\n}\nregisterThemingParticipant((theme, collector) => {\n    const errorForeground = theme.getColor(editorErrorForeground);\n    if (errorForeground) {\n        collector.addRule(`.monaco-editor .${\"squiggly-error\" /* ClassName.EditorErrorDecoration */} { background: url(\"data:image/svg+xml,${getSquigglySVGData(errorForeground)}\") repeat-x bottom left; }`);\n    }\n    const warningForeground = theme.getColor(editorWarningForeground);\n    if (warningForeground) {\n        collector.addRule(`.monaco-editor .${\"squiggly-warning\" /* ClassName.EditorWarningDecoration */} { background: url(\"data:image/svg+xml,${getSquigglySVGData(warningForeground)}\") repeat-x bottom left; }`);\n    }\n    const infoForeground = theme.getColor(editorInfoForeground);\n    if (infoForeground) {\n        collector.addRule(`.monaco-editor .${\"squiggly-info\" /* ClassName.EditorInfoDecoration */} { background: url(\"data:image/svg+xml,${getSquigglySVGData(infoForeground)}\") repeat-x bottom left; }`);\n    }\n    const hintForeground = theme.getColor(editorHintForeground);\n    if (hintForeground) {\n        collector.addRule(`.monaco-editor .${\"squiggly-hint\" /* ClassName.EditorHintDecoration */} { background: url(\"data:image/svg+xml,${getDotDotDotSVGData(hintForeground)}\") no-repeat bottom left; }`);\n    }\n    const unnecessaryForeground = theme.getColor(editorUnnecessaryCodeOpacity);\n    if (unnecessaryForeground) {\n        collector.addRule(`.monaco-editor.showUnused .${\"squiggly-inline-unnecessary\" /* ClassName.EditorUnnecessaryInlineDecoration */} { opacity: ${unnecessaryForeground.rgba.a}; }`);\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/codeEditor/editor.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n/* -------------------- IE10 remove auto clear button -------------------- */\n\n::-ms-clear {\n\tdisplay: none;\n}\n\n/* All widgets */\n/* I am not a big fan of this rule */\n.monaco-editor .editor-widget input {\n\tcolor: inherit;\n}\n\n/* -------------------- Editor -------------------- */\n\n.monaco-editor {\n\tposition: relative;\n\toverflow: visible;\n\t-webkit-text-size-adjust: 100%;\n\tcolor: var(--vscode-editor-foreground);\n\tbackground-color: var(--vscode-editor-background);\n}\n.monaco-editor-background {\n\tbackground-color: var(--vscode-editor-background);\n}\n.monaco-editor .rangeHighlight {\n\tbackground-color: var(--vscode-editor-rangeHighlightBackground);\n\tbox-sizing: border-box;\n\tborder: 1px solid var(--vscode-editor-rangeHighlightBorder);\n}\n.monaco-editor.hc-black .rangeHighlight, .monaco-editor.hc-light .rangeHighlight {\n\tborder-style: dotted;\n}\n.monaco-editor .symbolHighlight {\n\tbackground-color: var(--vscode-editor-symbolHighlightBackground);\n\tbox-sizing: border-box;\n\tborder: 1px solid var(--vscode-editor-symbolHighlightBorder);\n}\n.monaco-editor.hc-black .symbolHighlight, .monaco-editor.hc-light .symbolHighlight {\n\tborder-style: dotted;\n}\n\n/* -------------------- Misc -------------------- */\n\n.monaco-editor .overflow-guard {\n\tposition: relative;\n\toverflow: hidden;\n}\n\n.monaco-editor .view-overlays {\n\tposition: absolute;\n\ttop: 0;\n}\n\n.monaco-editor .view-overlays > div, .monaco-editor .margin-view-overlays > div {\n\tposition: absolute;\n\twidth: 100%;\n}\n\n/*\n.monaco-editor .auto-closed-character {\n\topacity: 0.3;\n}\n*/\n\n\n.monaco-editor .squiggly-error {\n\tborder-bottom: 4px double var(--vscode-editorError-border);\n}\n.monaco-editor .squiggly-error::before {\n\tdisplay: block;\n\tcontent: '';\n\twidth: 100%;\n\theight: 100%;\n\tbackground: var(--vscode-editorError-background);\n}\n.monaco-editor .squiggly-warning {\n\tborder-bottom: 4px double var(--vscode-editorWarning-border);\n}\n.monaco-editor .squiggly-warning::before {\n\tdisplay: block;\n\tcontent: '';\n\twidth: 100%;\n\theight: 100%;\n\tbackground: var(--vscode-editorWarning-background);\n}\n.monaco-editor .squiggly-info {\n\tborder-bottom: 4px double var(--vscode-editorInfo-border);\n}\n.monaco-editor .squiggly-info::before {\n\tdisplay: block;\n\tcontent: '';\n\twidth: 100%;\n\theight: 100%;\n\tbackground: var(--vscode-editorInfo-background);\n}\n.monaco-editor .squiggly-hint {\n\tborder-bottom: 2px dotted var(--vscode-editorHint-border);\n}\n.monaco-editor.showUnused .squiggly-unnecessary {\n\tborder-bottom: 2px dashed var(--vscode-editorUnnecessaryCode-border);\n}\n.monaco-editor.showDeprecated .squiggly-inline-deprecated {\n\ttext-decoration: line-through;\n\ttext-decoration-color: var(--vscode-editor-foreground, inherit);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/codeEditor/embeddedCodeEditorWidget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport * as objects from '../../../../base/common/objects.js';\nimport { ICodeEditorService } from '../../services/codeEditorService.js';\nimport { CodeEditorWidget } from './codeEditorWidget.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { IAccessibilityService } from '../../../../platform/accessibility/common/accessibility.js';\nimport { ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { INotificationService } from '../../../../platform/notification/common/notification.js';\nimport { IThemeService } from '../../../../platform/theme/common/themeService.js';\nlet EmbeddedCodeEditorWidget = class EmbeddedCodeEditorWidget extends CodeEditorWidget {\n    constructor(domElement, options, codeEditorWidgetOptions, parentEditor, instantiationService, codeEditorService, commandService, contextKeyService, themeService, notificationService, accessibilityService, languageConfigurationService, languageFeaturesService) {\n        super(domElement, { ...parentEditor.getRawOptions(), overflowWidgetsDomNode: parentEditor.getOverflowWidgetsDomNode() }, codeEditorWidgetOptions, instantiationService, codeEditorService, commandService, contextKeyService, themeService, notificationService, accessibilityService, languageConfigurationService, languageFeaturesService);\n        this._parentEditor = parentEditor;\n        this._overwriteOptions = options;\n        // Overwrite parent's options\n        super.updateOptions(this._overwriteOptions);\n        this._register(parentEditor.onDidChangeConfiguration((e) => this._onParentConfigurationChanged(e)));\n    }\n    getParentEditor() {\n        return this._parentEditor;\n    }\n    _onParentConfigurationChanged(e) {\n        super.updateOptions(this._parentEditor.getRawOptions());\n        super.updateOptions(this._overwriteOptions);\n    }\n    updateOptions(newOptions) {\n        objects.mixin(this._overwriteOptions, newOptions, true);\n        super.updateOptions(this._overwriteOptions);\n    }\n};\nEmbeddedCodeEditorWidget = __decorate([\n    __param(4, IInstantiationService),\n    __param(5, ICodeEditorService),\n    __param(6, ICommandService),\n    __param(7, IContextKeyService),\n    __param(8, IThemeService),\n    __param(9, INotificationService),\n    __param(10, IAccessibilityService),\n    __param(11, ILanguageConfigurationService),\n    __param(12, ILanguageFeaturesService)\n], EmbeddedCodeEditorWidget);\nexport { EmbeddedCodeEditorWidget };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/diffEditor/commands.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { getActiveElement } from '../../../../base/browser/dom.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { EditorAction2 } from '../../editorExtensions.js';\nimport { ICodeEditorService } from '../../services/codeEditorService.js';\nimport { DiffEditorWidget } from './diffEditorWidget.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { localize2 } from '../../../../nls.js';\nimport { Action2, MenuId } from '../../../../platform/actions/common/actions.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nimport './registrations.contribution.js';\nexport class ToggleCollapseUnchangedRegions extends Action2 {\n    constructor() {\n        super({\n            id: 'diffEditor.toggleCollapseUnchangedRegions',\n            title: localize2('toggleCollapseUnchangedRegions', 'Toggle Collapse Unchanged Regions'),\n            icon: Codicon.map,\n            toggled: ContextKeyExpr.has('config.diffEditor.hideUnchangedRegions.enabled'),\n            precondition: ContextKeyExpr.has('isInDiffEditor'),\n            menu: {\n                when: ContextKeyExpr.has('isInDiffEditor'),\n                id: MenuId.EditorTitle,\n                order: 22,\n                group: 'navigation',\n            },\n        });\n    }\n    run(accessor, ...args) {\n        const configurationService = accessor.get(IConfigurationService);\n        const newValue = !configurationService.getValue('diffEditor.hideUnchangedRegions.enabled');\n        configurationService.updateValue('diffEditor.hideUnchangedRegions.enabled', newValue);\n    }\n}\nexport class ToggleShowMovedCodeBlocks extends Action2 {\n    constructor() {\n        super({\n            id: 'diffEditor.toggleShowMovedCodeBlocks',\n            title: localize2('toggleShowMovedCodeBlocks', 'Toggle Show Moved Code Blocks'),\n            precondition: ContextKeyExpr.has('isInDiffEditor'),\n        });\n    }\n    run(accessor, ...args) {\n        const configurationService = accessor.get(IConfigurationService);\n        const newValue = !configurationService.getValue('diffEditor.experimental.showMoves');\n        configurationService.updateValue('diffEditor.experimental.showMoves', newValue);\n    }\n}\nexport class ToggleUseInlineViewWhenSpaceIsLimited extends Action2 {\n    constructor() {\n        super({\n            id: 'diffEditor.toggleUseInlineViewWhenSpaceIsLimited',\n            title: localize2('toggleUseInlineViewWhenSpaceIsLimited', 'Toggle Use Inline View When Space Is Limited'),\n            precondition: ContextKeyExpr.has('isInDiffEditor'),\n        });\n    }\n    run(accessor, ...args) {\n        const configurationService = accessor.get(IConfigurationService);\n        const newValue = !configurationService.getValue('diffEditor.useInlineViewWhenSpaceIsLimited');\n        configurationService.updateValue('diffEditor.useInlineViewWhenSpaceIsLimited', newValue);\n    }\n}\nconst diffEditorCategory = localize2('diffEditor', \"Diff Editor\");\nexport class SwitchSide extends EditorAction2 {\n    constructor() {\n        super({\n            id: 'diffEditor.switchSide',\n            title: localize2('switchSide', 'Switch Side'),\n            icon: Codicon.arrowSwap,\n            precondition: ContextKeyExpr.has('isInDiffEditor'),\n            f1: true,\n            category: diffEditorCategory,\n        });\n    }\n    runEditorCommand(accessor, editor, arg) {\n        const diffEditor = findFocusedDiffEditor(accessor);\n        if (diffEditor instanceof DiffEditorWidget) {\n            if (arg && arg.dryRun) {\n                return { destinationSelection: diffEditor.mapToOtherSide().destinationSelection };\n            }\n            else {\n                diffEditor.switchSide();\n            }\n        }\n        return undefined;\n    }\n}\nexport class ExitCompareMove extends EditorAction2 {\n    constructor() {\n        super({\n            id: 'diffEditor.exitCompareMove',\n            title: localize2('exitCompareMove', 'Exit Compare Move'),\n            icon: Codicon.close,\n            precondition: EditorContextKeys.comparingMovedCode,\n            f1: false,\n            category: diffEditorCategory,\n            keybinding: {\n                weight: 10000,\n                primary: 9 /* KeyCode.Escape */,\n            }\n        });\n    }\n    runEditorCommand(accessor, editor, ...args) {\n        const diffEditor = findFocusedDiffEditor(accessor);\n        if (diffEditor instanceof DiffEditorWidget) {\n            diffEditor.exitCompareMove();\n        }\n    }\n}\nexport class CollapseAllUnchangedRegions extends EditorAction2 {\n    constructor() {\n        super({\n            id: 'diffEditor.collapseAllUnchangedRegions',\n            title: localize2('collapseAllUnchangedRegions', 'Collapse All Unchanged Regions'),\n            icon: Codicon.fold,\n            precondition: ContextKeyExpr.has('isInDiffEditor'),\n            f1: true,\n            category: diffEditorCategory,\n        });\n    }\n    runEditorCommand(accessor, editor, ...args) {\n        const diffEditor = findFocusedDiffEditor(accessor);\n        if (diffEditor instanceof DiffEditorWidget) {\n            diffEditor.collapseAllUnchangedRegions();\n        }\n    }\n}\nexport class ShowAllUnchangedRegions extends EditorAction2 {\n    constructor() {\n        super({\n            id: 'diffEditor.showAllUnchangedRegions',\n            title: localize2('showAllUnchangedRegions', 'Show All Unchanged Regions'),\n            icon: Codicon.unfold,\n            precondition: ContextKeyExpr.has('isInDiffEditor'),\n            f1: true,\n            category: diffEditorCategory,\n        });\n    }\n    runEditorCommand(accessor, editor, ...args) {\n        const diffEditor = findFocusedDiffEditor(accessor);\n        if (diffEditor instanceof DiffEditorWidget) {\n            diffEditor.showAllUnchangedRegions();\n        }\n    }\n}\nexport class RevertHunkOrSelection extends Action2 {\n    constructor() {\n        super({\n            id: 'diffEditor.revert',\n            title: localize2('revert', 'Revert'),\n            f1: false,\n            category: diffEditorCategory,\n        });\n    }\n    run(accessor, arg) {\n        var _a;\n        const diffEditor = findDiffEditor(accessor, arg.originalUri, arg.modifiedUri);\n        if (diffEditor instanceof DiffEditorWidget) {\n            diffEditor.revertRangeMappings((_a = arg.mapping.innerChanges) !== null && _a !== void 0 ? _a : []);\n        }\n        return undefined;\n    }\n}\nconst accessibleDiffViewerCategory = localize2('accessibleDiffViewer', \"Accessible Diff Viewer\");\nexport class AccessibleDiffViewerNext extends Action2 {\n    constructor() {\n        super({\n            id: AccessibleDiffViewerNext.id,\n            title: localize2('editor.action.accessibleDiffViewer.next', 'Go to Next Difference'),\n            category: accessibleDiffViewerCategory,\n            precondition: ContextKeyExpr.has('isInDiffEditor'),\n            keybinding: {\n                primary: 65 /* KeyCode.F7 */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            f1: true,\n        });\n    }\n    run(accessor) {\n        const diffEditor = findFocusedDiffEditor(accessor);\n        diffEditor === null || diffEditor === void 0 ? void 0 : diffEditor.accessibleDiffViewerNext();\n    }\n}\nAccessibleDiffViewerNext.id = 'editor.action.accessibleDiffViewer.next';\nexport class AccessibleDiffViewerPrev extends Action2 {\n    constructor() {\n        super({\n            id: AccessibleDiffViewerPrev.id,\n            title: localize2('editor.action.accessibleDiffViewer.prev', 'Go to Previous Difference'),\n            category: accessibleDiffViewerCategory,\n            precondition: ContextKeyExpr.has('isInDiffEditor'),\n            keybinding: {\n                primary: 1024 /* KeyMod.Shift */ | 65 /* KeyCode.F7 */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            f1: true,\n        });\n    }\n    run(accessor) {\n        const diffEditor = findFocusedDiffEditor(accessor);\n        diffEditor === null || diffEditor === void 0 ? void 0 : diffEditor.accessibleDiffViewerPrev();\n    }\n}\nAccessibleDiffViewerPrev.id = 'editor.action.accessibleDiffViewer.prev';\nexport function findDiffEditor(accessor, originalUri, modifiedUri) {\n    const codeEditorService = accessor.get(ICodeEditorService);\n    const diffEditors = codeEditorService.listDiffEditors();\n    return diffEditors.find(diffEditor => {\n        var _a, _b;\n        const modified = diffEditor.getModifiedEditor();\n        const original = diffEditor.getOriginalEditor();\n        return modified && ((_a = modified.getModel()) === null || _a === void 0 ? void 0 : _a.uri.toString()) === modifiedUri.toString()\n            && original && ((_b = original.getModel()) === null || _b === void 0 ? void 0 : _b.uri.toString()) === originalUri.toString();\n    }) || null;\n}\nexport function findFocusedDiffEditor(accessor) {\n    const codeEditorService = accessor.get(ICodeEditorService);\n    const diffEditors = codeEditorService.listDiffEditors();\n    const activeElement = getActiveElement();\n    if (activeElement) {\n        for (const d of diffEditors) {\n            const container = d.getContainerDomNode();\n            if (isElementOrParentOf(container, activeElement)) {\n                return d;\n            }\n        }\n    }\n    return null;\n}\nfunction isElementOrParentOf(elementOrParent, element) {\n    let e = element;\n    while (e) {\n        if (e === elementOrParent) {\n            return true;\n        }\n        e = e.parentElement;\n    }\n    return false;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-component.diff-review {\n\tuser-select: none;\n\t-webkit-user-select: none;\n\tz-index: 99;\n}\n\n.monaco-diff-editor .diff-review {\n\tposition: absolute;\n\n}\n\n.monaco-component.diff-review .diff-review-line-number {\n\ttext-align: right;\n\tdisplay: inline-block;\n\tcolor: var(--vscode-editorLineNumber-foreground);\n}\n\n.monaco-component.diff-review .diff-review-summary {\n\tpadding-left: 10px;\n}\n\n.monaco-component.diff-review .diff-review-shadow {\n\tposition: absolute;\n\tbox-shadow: var(--vscode-scrollbar-shadow) 0 -6px 6px -6px inset;\n}\n\n.monaco-component.diff-review .diff-review-row {\n\twhite-space: pre;\n}\n\n.monaco-component.diff-review .diff-review-table {\n\tdisplay: table;\n\tmin-width: 100%;\n}\n\n.monaco-component.diff-review .diff-review-row {\n\tdisplay: table-row;\n\twidth: 100%;\n}\n\n.monaco-component.diff-review .diff-review-spacer {\n\tdisplay: inline-block;\n\twidth: 10px;\n\tvertical-align: middle;\n}\n\n.monaco-component.diff-review .diff-review-spacer > .codicon {\n\tfont-size: 9px !important;\n}\n\n.monaco-component.diff-review .diff-review-actions {\n\tdisplay: inline-block;\n\tposition: absolute;\n\tright: 10px;\n\ttop: 2px;\n\tz-index: 100;\n}\n\n.monaco-component.diff-review .diff-review-actions .action-label {\n\twidth: 16px;\n\theight: 16px;\n\tmargin: 2px 0;\n}\n\n.monaco-component.diff-review .revertButton {\n\tcursor: pointer;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { addDisposableListener, addStandardDisposableListener, reset } from '../../../../../base/browser/dom.js';\nimport { createTrustedTypesPolicy } from '../../../../../base/browser/trustedTypes.js';\nimport { ActionBar } from '../../../../../base/browser/ui/actionbar/actionbar.js';\nimport { DomScrollableElement } from '../../../../../base/browser/ui/scrollbar/scrollableElement.js';\nimport { Action } from '../../../../../base/common/actions.js';\nimport { forEachAdjacent, groupAdjacentBy } from '../../../../../base/common/arrays.js';\nimport { Codicon } from '../../../../../base/common/codicons.js';\nimport { Disposable, toDisposable } from '../../../../../base/common/lifecycle.js';\nimport { autorun, autorunWithStore, derived, derivedWithStore, observableValue, subtransaction, transaction } from '../../../../../base/common/observable.js';\nimport { ThemeIcon } from '../../../../../base/common/themables.js';\nimport { applyFontInfo } from '../../../config/domFontInfo.js';\nimport { applyStyle } from '../utils.js';\nimport { EditorFontLigatures } from '../../../../common/config/editorOptions.js';\nimport { LineRange } from '../../../../common/core/lineRange.js';\nimport { OffsetRange } from '../../../../common/core/offsetRange.js';\nimport { Position } from '../../../../common/core/position.js';\nimport { Range } from '../../../../common/core/range.js';\nimport { LineRangeMapping } from '../../../../common/diff/rangeMapping.js';\nimport { ILanguageService } from '../../../../common/languages/language.js';\nimport { LineTokens } from '../../../../common/tokens/lineTokens.js';\nimport { RenderLineInput, renderViewLine2 } from '../../../../common/viewLayout/viewLineRenderer.js';\nimport { ViewLineRenderingData } from '../../../../common/viewModel.js';\nimport { localize } from '../../../../../nls.js';\nimport { AccessibilitySignal, IAccessibilitySignalService } from '../../../../../platform/accessibilitySignal/browser/accessibilitySignalService.js';\nimport { IInstantiationService } from '../../../../../platform/instantiation/common/instantiation.js';\nimport { registerIcon } from '../../../../../platform/theme/common/iconRegistry.js';\nimport './accessibleDiffViewer.css';\nconst accessibleDiffViewerInsertIcon = registerIcon('diff-review-insert', Codicon.add, localize('accessibleDiffViewerInsertIcon', 'Icon for \\'Insert\\' in accessible diff viewer.'));\nconst accessibleDiffViewerRemoveIcon = registerIcon('diff-review-remove', Codicon.remove, localize('accessibleDiffViewerRemoveIcon', 'Icon for \\'Remove\\' in accessible diff viewer.'));\nconst accessibleDiffViewerCloseIcon = registerIcon('diff-review-close', Codicon.close, localize('accessibleDiffViewerCloseIcon', 'Icon for \\'Close\\' in accessible diff viewer.'));\nlet AccessibleDiffViewer = class AccessibleDiffViewer extends Disposable {\n    constructor(_parentNode, _visible, _setVisible, _canClose, _width, _height, _diffs, _models, _instantiationService) {\n        super();\n        this._parentNode = _parentNode;\n        this._visible = _visible;\n        this._setVisible = _setVisible;\n        this._canClose = _canClose;\n        this._width = _width;\n        this._height = _height;\n        this._diffs = _diffs;\n        this._models = _models;\n        this._instantiationService = _instantiationService;\n        this._state = derivedWithStore(this, (reader, store) => {\n            const visible = this._visible.read(reader);\n            this._parentNode.style.visibility = visible ? 'visible' : 'hidden';\n            if (!visible) {\n                return null;\n            }\n            const model = store.add(this._instantiationService.createInstance(ViewModel, this._diffs, this._models, this._setVisible, this._canClose));\n            const view = store.add(this._instantiationService.createInstance(View, this._parentNode, model, this._width, this._height, this._models));\n            return { model, view, };\n        }).recomputeInitiallyAndOnChange(this._store);\n    }\n    next() {\n        transaction(tx => {\n            const isVisible = this._visible.get();\n            this._setVisible(true, tx);\n            if (isVisible) {\n                this._state.get().model.nextGroup(tx);\n            }\n        });\n    }\n    prev() {\n        transaction(tx => {\n            this._setVisible(true, tx);\n            this._state.get().model.previousGroup(tx);\n        });\n    }\n    close() {\n        transaction(tx => {\n            this._setVisible(false, tx);\n        });\n    }\n};\nAccessibleDiffViewer._ttPolicy = createTrustedTypesPolicy('diffReview', { createHTML: value => value });\nAccessibleDiffViewer = __decorate([\n    __param(8, IInstantiationService)\n], AccessibleDiffViewer);\nexport { AccessibleDiffViewer };\nlet ViewModel = class ViewModel extends Disposable {\n    constructor(_diffs, _models, _setVisible, canClose, _accessibilitySignalService) {\n        super();\n        this._diffs = _diffs;\n        this._models = _models;\n        this._setVisible = _setVisible;\n        this.canClose = canClose;\n        this._accessibilitySignalService = _accessibilitySignalService;\n        this._groups = observableValue(this, []);\n        this._currentGroupIdx = observableValue(this, 0);\n        this._currentElementIdx = observableValue(this, 0);\n        this.groups = this._groups;\n        this.currentGroup = this._currentGroupIdx.map((idx, r) => this._groups.read(r)[idx]);\n        this.currentGroupIndex = this._currentGroupIdx;\n        this.currentElement = this._currentElementIdx.map((idx, r) => { var _a; return (_a = this.currentGroup.read(r)) === null || _a === void 0 ? void 0 : _a.lines[idx]; });\n        this._register(autorun(reader => {\n            /** @description update groups */\n            const diffs = this._diffs.read(reader);\n            if (!diffs) {\n                this._groups.set([], undefined);\n                return;\n            }\n            const groups = computeViewElementGroups(diffs, this._models.getOriginalModel().getLineCount(), this._models.getModifiedModel().getLineCount());\n            transaction(tx => {\n                const p = this._models.getModifiedPosition();\n                if (p) {\n                    const nextGroup = groups.findIndex(g => (p === null || p === void 0 ? void 0 : p.lineNumber) < g.range.modified.endLineNumberExclusive);\n                    if (nextGroup !== -1) {\n                        this._currentGroupIdx.set(nextGroup, tx);\n                    }\n                }\n                this._groups.set(groups, tx);\n            });\n        }));\n        this._register(autorun(reader => {\n            /** @description play audio-cue for diff */\n            const currentViewItem = this.currentElement.read(reader);\n            if ((currentViewItem === null || currentViewItem === void 0 ? void 0 : currentViewItem.type) === LineType.Deleted) {\n                this._accessibilitySignalService.playSignal(AccessibilitySignal.diffLineDeleted, { source: 'accessibleDiffViewer.currentElementChanged' });\n            }\n            else if ((currentViewItem === null || currentViewItem === void 0 ? void 0 : currentViewItem.type) === LineType.Added) {\n                this._accessibilitySignalService.playSignal(AccessibilitySignal.diffLineInserted, { source: 'accessibleDiffViewer.currentElementChanged' });\n            }\n        }));\n        this._register(autorun(reader => {\n            var _a;\n            /** @description select lines in editor */\n            // This ensures editor commands (like revert/stage) work\n            const currentViewItem = this.currentElement.read(reader);\n            if (currentViewItem && currentViewItem.type !== LineType.Header) {\n                const lineNumber = (_a = currentViewItem.modifiedLineNumber) !== null && _a !== void 0 ? _a : currentViewItem.diff.modified.startLineNumber;\n                this._models.modifiedSetSelection(Range.fromPositions(new Position(lineNumber, 1)));\n            }\n        }));\n    }\n    _goToGroupDelta(delta, tx) {\n        const groups = this.groups.get();\n        if (!groups || groups.length <= 1) {\n            return;\n        }\n        subtransaction(tx, tx => {\n            this._currentGroupIdx.set(OffsetRange.ofLength(groups.length).clipCyclic(this._currentGroupIdx.get() + delta), tx);\n            this._currentElementIdx.set(0, tx);\n        });\n    }\n    nextGroup(tx) { this._goToGroupDelta(1, tx); }\n    previousGroup(tx) { this._goToGroupDelta(-1, tx); }\n    _goToLineDelta(delta) {\n        const group = this.currentGroup.get();\n        if (!group || group.lines.length <= 1) {\n            return;\n        }\n        transaction(tx => {\n            this._currentElementIdx.set(OffsetRange.ofLength(group.lines.length).clip(this._currentElementIdx.get() + delta), tx);\n        });\n    }\n    goToNextLine() { this._goToLineDelta(1); }\n    goToPreviousLine() { this._goToLineDelta(-1); }\n    goToLine(line) {\n        const group = this.currentGroup.get();\n        if (!group) {\n            return;\n        }\n        const idx = group.lines.indexOf(line);\n        if (idx === -1) {\n            return;\n        }\n        transaction(tx => {\n            this._currentElementIdx.set(idx, tx);\n        });\n    }\n    revealCurrentElementInEditor() {\n        if (!this.canClose.get()) {\n            return;\n        }\n        this._setVisible(false, undefined);\n        const curElem = this.currentElement.get();\n        if (curElem) {\n            if (curElem.type === LineType.Deleted) {\n                this._models.originalReveal(Range.fromPositions(new Position(curElem.originalLineNumber, 1)));\n            }\n            else {\n                this._models.modifiedReveal(curElem.type !== LineType.Header\n                    ? Range.fromPositions(new Position(curElem.modifiedLineNumber, 1))\n                    : undefined);\n            }\n        }\n    }\n    close() {\n        if (!this.canClose.get()) {\n            return;\n        }\n        this._setVisible(false, undefined);\n        this._models.modifiedFocus();\n    }\n};\nViewModel = __decorate([\n    __param(4, IAccessibilitySignalService)\n], ViewModel);\nconst viewElementGroupLineMargin = 3;\nfunction computeViewElementGroups(diffs, originalLineCount, modifiedLineCount) {\n    const result = [];\n    for (const g of groupAdjacentBy(diffs, (a, b) => (b.modified.startLineNumber - a.modified.endLineNumberExclusive < 2 * viewElementGroupLineMargin))) {\n        const viewElements = [];\n        viewElements.push(new HeaderViewElement());\n        const origFullRange = new LineRange(Math.max(1, g[0].original.startLineNumber - viewElementGroupLineMargin), Math.min(g[g.length - 1].original.endLineNumberExclusive + viewElementGroupLineMargin, originalLineCount + 1));\n        const modifiedFullRange = new LineRange(Math.max(1, g[0].modified.startLineNumber - viewElementGroupLineMargin), Math.min(g[g.length - 1].modified.endLineNumberExclusive + viewElementGroupLineMargin, modifiedLineCount + 1));\n        forEachAdjacent(g, (a, b) => {\n            const origRange = new LineRange(a ? a.original.endLineNumberExclusive : origFullRange.startLineNumber, b ? b.original.startLineNumber : origFullRange.endLineNumberExclusive);\n            const modifiedRange = new LineRange(a ? a.modified.endLineNumberExclusive : modifiedFullRange.startLineNumber, b ? b.modified.startLineNumber : modifiedFullRange.endLineNumberExclusive);\n            origRange.forEach(origLineNumber => {\n                viewElements.push(new UnchangedLineViewElement(origLineNumber, modifiedRange.startLineNumber + (origLineNumber - origRange.startLineNumber)));\n            });\n            if (b) {\n                b.original.forEach(origLineNumber => {\n                    viewElements.push(new DeletedLineViewElement(b, origLineNumber));\n                });\n                b.modified.forEach(modifiedLineNumber => {\n                    viewElements.push(new AddedLineViewElement(b, modifiedLineNumber));\n                });\n            }\n        });\n        const modifiedRange = g[0].modified.join(g[g.length - 1].modified);\n        const originalRange = g[0].original.join(g[g.length - 1].original);\n        result.push(new ViewElementGroup(new LineRangeMapping(modifiedRange, originalRange), viewElements));\n    }\n    return result;\n}\nvar LineType;\n(function (LineType) {\n    LineType[LineType[\"Header\"] = 0] = \"Header\";\n    LineType[LineType[\"Unchanged\"] = 1] = \"Unchanged\";\n    LineType[LineType[\"Deleted\"] = 2] = \"Deleted\";\n    LineType[LineType[\"Added\"] = 3] = \"Added\";\n})(LineType || (LineType = {}));\nclass ViewElementGroup {\n    constructor(range, lines) {\n        this.range = range;\n        this.lines = lines;\n    }\n}\nclass HeaderViewElement {\n    constructor() {\n        this.type = LineType.Header;\n    }\n}\nclass DeletedLineViewElement {\n    constructor(diff, originalLineNumber) {\n        this.diff = diff;\n        this.originalLineNumber = originalLineNumber;\n        this.type = LineType.Deleted;\n        this.modifiedLineNumber = undefined;\n    }\n}\nclass AddedLineViewElement {\n    constructor(diff, modifiedLineNumber) {\n        this.diff = diff;\n        this.modifiedLineNumber = modifiedLineNumber;\n        this.type = LineType.Added;\n        this.originalLineNumber = undefined;\n    }\n}\nclass UnchangedLineViewElement {\n    constructor(originalLineNumber, modifiedLineNumber) {\n        this.originalLineNumber = originalLineNumber;\n        this.modifiedLineNumber = modifiedLineNumber;\n        this.type = LineType.Unchanged;\n    }\n}\nlet View = class View extends Disposable {\n    constructor(_element, _model, _width, _height, _models, _languageService) {\n        super();\n        this._element = _element;\n        this._model = _model;\n        this._width = _width;\n        this._height = _height;\n        this._models = _models;\n        this._languageService = _languageService;\n        this.domNode = this._element;\n        this.domNode.className = 'monaco-component diff-review monaco-editor-background';\n        const actionBarContainer = document.createElement('div');\n        actionBarContainer.className = 'diff-review-actions';\n        this._actionBar = this._register(new ActionBar(actionBarContainer));\n        this._register(autorun(reader => {\n            /** @description update actions */\n            this._actionBar.clear();\n            if (this._model.canClose.read(reader)) {\n                this._actionBar.push(new Action('diffreview.close', localize('label.close', \"Close\"), 'close-diff-review ' + ThemeIcon.asClassName(accessibleDiffViewerCloseIcon), true, async () => _model.close()), { label: false, icon: true });\n            }\n        }));\n        this._content = document.createElement('div');\n        this._content.className = 'diff-review-content';\n        this._content.setAttribute('role', 'code');\n        this._scrollbar = this._register(new DomScrollableElement(this._content, {}));\n        reset(this.domNode, this._scrollbar.getDomNode(), actionBarContainer);\n        this._register(autorun(r => {\n            this._height.read(r);\n            this._width.read(r);\n            this._scrollbar.scanDomNode();\n        }));\n        this._register(toDisposable(() => { reset(this.domNode); }));\n        this._register(applyStyle(this.domNode, { width: this._width, height: this._height }));\n        this._register(applyStyle(this._content, { width: this._width, height: this._height }));\n        this._register(autorunWithStore((reader, store) => {\n            /** @description render */\n            this._model.currentGroup.read(reader);\n            this._render(store);\n        }));\n        // TODO@hediet use commands\n        this._register(addStandardDisposableListener(this.domNode, 'keydown', (e) => {\n            if (e.equals(18 /* KeyCode.DownArrow */)\n                || e.equals(2048 /* KeyMod.CtrlCmd */ | 18 /* KeyCode.DownArrow */)\n                || e.equals(512 /* KeyMod.Alt */ | 18 /* KeyCode.DownArrow */)) {\n                e.preventDefault();\n                this._model.goToNextLine();\n            }\n            if (e.equals(16 /* KeyCode.UpArrow */)\n                || e.equals(2048 /* KeyMod.CtrlCmd */ | 16 /* KeyCode.UpArrow */)\n                || e.equals(512 /* KeyMod.Alt */ | 16 /* KeyCode.UpArrow */)) {\n                e.preventDefault();\n                this._model.goToPreviousLine();\n            }\n            if (e.equals(9 /* KeyCode.Escape */)\n                || e.equals(2048 /* KeyMod.CtrlCmd */ | 9 /* KeyCode.Escape */)\n                || e.equals(512 /* KeyMod.Alt */ | 9 /* KeyCode.Escape */)\n                || e.equals(1024 /* KeyMod.Shift */ | 9 /* KeyCode.Escape */)) {\n                e.preventDefault();\n                this._model.close();\n            }\n            if (e.equals(10 /* KeyCode.Space */)\n                || e.equals(3 /* KeyCode.Enter */)) {\n                e.preventDefault();\n                this._model.revealCurrentElementInEditor();\n            }\n        }));\n    }\n    _render(store) {\n        const originalOptions = this._models.getOriginalOptions();\n        const modifiedOptions = this._models.getModifiedOptions();\n        const container = document.createElement('div');\n        container.className = 'diff-review-table';\n        container.setAttribute('role', 'list');\n        container.setAttribute('aria-label', localize('ariaLabel', 'Accessible Diff Viewer. Use arrow up and down to navigate.'));\n        applyFontInfo(container, modifiedOptions.get(50 /* EditorOption.fontInfo */));\n        reset(this._content, container);\n        const originalModel = this._models.getOriginalModel();\n        const modifiedModel = this._models.getModifiedModel();\n        if (!originalModel || !modifiedModel) {\n            return;\n        }\n        const originalModelOpts = originalModel.getOptions();\n        const modifiedModelOpts = modifiedModel.getOptions();\n        const lineHeight = modifiedOptions.get(67 /* EditorOption.lineHeight */);\n        const group = this._model.currentGroup.get();\n        for (const viewItem of (group === null || group === void 0 ? void 0 : group.lines) || []) {\n            if (!group) {\n                break;\n            }\n            let row;\n            if (viewItem.type === LineType.Header) {\n                const header = document.createElement('div');\n                header.className = 'diff-review-row';\n                header.setAttribute('role', 'listitem');\n                const r = group.range;\n                const diffIndex = this._model.currentGroupIndex.get();\n                const diffsLength = this._model.groups.get().length;\n                const getAriaLines = (lines) => lines === 0 ? localize('no_lines_changed', \"no lines changed\")\n                    : lines === 1 ? localize('one_line_changed', \"1 line changed\")\n                        : localize('more_lines_changed', \"{0} lines changed\", lines);\n                const originalChangedLinesCntAria = getAriaLines(r.original.length);\n                const modifiedChangedLinesCntAria = getAriaLines(r.modified.length);\n                header.setAttribute('aria-label', localize({\n                    key: 'header',\n                    comment: [\n                        'This is the ARIA label for a git diff header.',\n                        'A git diff header looks like this: @@ -154,12 +159,39 @@.',\n                        'That encodes that at original line 154 (which is now line 159), 12 lines were removed/changed with 39 lines.',\n                        'Variables 0 and 1 refer to the diff index out of total number of diffs.',\n                        'Variables 2 and 4 will be numbers (a line number).',\n                        'Variables 3 and 5 will be \"no lines changed\", \"1 line changed\" or \"X lines changed\", localized separately.'\n                    ]\n                }, \"Difference {0} of {1}: original line {2}, {3}, modified line {4}, {5}\", (diffIndex + 1), diffsLength, r.original.startLineNumber, originalChangedLinesCntAria, r.modified.startLineNumber, modifiedChangedLinesCntAria));\n                const cell = document.createElement('div');\n                cell.className = 'diff-review-cell diff-review-summary';\n                // e.g.: `1/10: @@ -504,7 +517,7 @@`\n                cell.appendChild(document.createTextNode(`${diffIndex + 1}/${diffsLength}: @@ -${r.original.startLineNumber},${r.original.length} +${r.modified.startLineNumber},${r.modified.length} @@`));\n                header.appendChild(cell);\n                row = header;\n            }\n            else {\n                row = this._createRow(viewItem, lineHeight, this._width.get(), originalOptions, originalModel, originalModelOpts, modifiedOptions, modifiedModel, modifiedModelOpts);\n            }\n            container.appendChild(row);\n            const isSelectedObs = derived(reader => /** @description isSelected */ this._model.currentElement.read(reader) === viewItem);\n            store.add(autorun(reader => {\n                /** @description update tab index */\n                const isSelected = isSelectedObs.read(reader);\n                row.tabIndex = isSelected ? 0 : -1;\n                if (isSelected) {\n                    row.focus();\n                }\n            }));\n            store.add(addDisposableListener(row, 'focus', () => {\n                this._model.goToLine(viewItem);\n            }));\n        }\n        this._scrollbar.scanDomNode();\n    }\n    _createRow(item, lineHeight, width, originalOptions, originalModel, originalModelOpts, modifiedOptions, modifiedModel, modifiedModelOpts) {\n        const originalLayoutInfo = originalOptions.get(145 /* EditorOption.layoutInfo */);\n        const originalLineNumbersWidth = originalLayoutInfo.glyphMarginWidth + originalLayoutInfo.lineNumbersWidth;\n        const modifiedLayoutInfo = modifiedOptions.get(145 /* EditorOption.layoutInfo */);\n        const modifiedLineNumbersWidth = 10 + modifiedLayoutInfo.glyphMarginWidth + modifiedLayoutInfo.lineNumbersWidth;\n        let rowClassName = 'diff-review-row';\n        let lineNumbersExtraClassName = '';\n        const spacerClassName = 'diff-review-spacer';\n        let spacerIcon = null;\n        switch (item.type) {\n            case LineType.Added:\n                rowClassName = 'diff-review-row line-insert';\n                lineNumbersExtraClassName = ' char-insert';\n                spacerIcon = accessibleDiffViewerInsertIcon;\n                break;\n            case LineType.Deleted:\n                rowClassName = 'diff-review-row line-delete';\n                lineNumbersExtraClassName = ' char-delete';\n                spacerIcon = accessibleDiffViewerRemoveIcon;\n                break;\n        }\n        const row = document.createElement('div');\n        row.style.minWidth = width + 'px';\n        row.className = rowClassName;\n        row.setAttribute('role', 'listitem');\n        row.ariaLevel = '';\n        const cell = document.createElement('div');\n        cell.className = 'diff-review-cell';\n        cell.style.height = `${lineHeight}px`;\n        row.appendChild(cell);\n        const originalLineNumber = document.createElement('span');\n        originalLineNumber.style.width = (originalLineNumbersWidth + 'px');\n        originalLineNumber.style.minWidth = (originalLineNumbersWidth + 'px');\n        originalLineNumber.className = 'diff-review-line-number' + lineNumbersExtraClassName;\n        if (item.originalLineNumber !== undefined) {\n            originalLineNumber.appendChild(document.createTextNode(String(item.originalLineNumber)));\n        }\n        else {\n            originalLineNumber.innerText = '\\u00a0';\n        }\n        cell.appendChild(originalLineNumber);\n        const modifiedLineNumber = document.createElement('span');\n        modifiedLineNumber.style.width = (modifiedLineNumbersWidth + 'px');\n        modifiedLineNumber.style.minWidth = (modifiedLineNumbersWidth + 'px');\n        modifiedLineNumber.style.paddingRight = '10px';\n        modifiedLineNumber.className = 'diff-review-line-number' + lineNumbersExtraClassName;\n        if (item.modifiedLineNumber !== undefined) {\n            modifiedLineNumber.appendChild(document.createTextNode(String(item.modifiedLineNumber)));\n        }\n        else {\n            modifiedLineNumber.innerText = '\\u00a0';\n        }\n        cell.appendChild(modifiedLineNumber);\n        const spacer = document.createElement('span');\n        spacer.className = spacerClassName;\n        if (spacerIcon) {\n            const spacerCodicon = document.createElement('span');\n            spacerCodicon.className = ThemeIcon.asClassName(spacerIcon);\n            spacerCodicon.innerText = '\\u00a0\\u00a0';\n            spacer.appendChild(spacerCodicon);\n        }\n        else {\n            spacer.innerText = '\\u00a0\\u00a0';\n        }\n        cell.appendChild(spacer);\n        let lineContent;\n        if (item.modifiedLineNumber !== undefined) {\n            let html = this._getLineHtml(modifiedModel, modifiedOptions, modifiedModelOpts.tabSize, item.modifiedLineNumber, this._languageService.languageIdCodec);\n            if (AccessibleDiffViewer._ttPolicy) {\n                html = AccessibleDiffViewer._ttPolicy.createHTML(html);\n            }\n            cell.insertAdjacentHTML('beforeend', html);\n            lineContent = modifiedModel.getLineContent(item.modifiedLineNumber);\n        }\n        else {\n            let html = this._getLineHtml(originalModel, originalOptions, originalModelOpts.tabSize, item.originalLineNumber, this._languageService.languageIdCodec);\n            if (AccessibleDiffViewer._ttPolicy) {\n                html = AccessibleDiffViewer._ttPolicy.createHTML(html);\n            }\n            cell.insertAdjacentHTML('beforeend', html);\n            lineContent = originalModel.getLineContent(item.originalLineNumber);\n        }\n        if (lineContent.length === 0) {\n            lineContent = localize('blankLine', \"blank\");\n        }\n        let ariaLabel = '';\n        switch (item.type) {\n            case LineType.Unchanged:\n                if (item.originalLineNumber === item.modifiedLineNumber) {\n                    ariaLabel = localize({ key: 'unchangedLine', comment: ['The placeholders are contents of the line and should not be translated.'] }, \"{0} unchanged line {1}\", lineContent, item.originalLineNumber);\n                }\n                else {\n                    ariaLabel = localize('equalLine', \"{0} original line {1} modified line {2}\", lineContent, item.originalLineNumber, item.modifiedLineNumber);\n                }\n                break;\n            case LineType.Added:\n                ariaLabel = localize('insertLine', \"+ {0} modified line {1}\", lineContent, item.modifiedLineNumber);\n                break;\n            case LineType.Deleted:\n                ariaLabel = localize('deleteLine', \"- {0} original line {1}\", lineContent, item.originalLineNumber);\n                break;\n        }\n        row.setAttribute('aria-label', ariaLabel);\n        return row;\n    }\n    _getLineHtml(model, options, tabSize, lineNumber, languageIdCodec) {\n        const lineContent = model.getLineContent(lineNumber);\n        const fontInfo = options.get(50 /* EditorOption.fontInfo */);\n        const lineTokens = LineTokens.createEmpty(lineContent, languageIdCodec);\n        const isBasicASCII = ViewLineRenderingData.isBasicASCII(lineContent, model.mightContainNonBasicASCII());\n        const containsRTL = ViewLineRenderingData.containsRTL(lineContent, isBasicASCII, model.mightContainRTL());\n        const r = renderViewLine2(new RenderLineInput((fontInfo.isMonospace && !options.get(33 /* EditorOption.disableMonospaceOptimizations */)), fontInfo.canUseHalfwidthRightwardsArrow, lineContent, false, isBasicASCII, containsRTL, 0, lineTokens, [], tabSize, 0, fontInfo.spaceWidth, fontInfo.middotWidth, fontInfo.wsmiddotWidth, options.get(117 /* EditorOption.stopRenderingLineAfter */), options.get(99 /* EditorOption.renderWhitespace */), options.get(94 /* EditorOption.renderControlCharacters */), options.get(51 /* EditorOption.fontLigatures */) !== EditorFontLigatures.OFF, null));\n        return r.html;\n    }\n};\nView = __decorate([\n    __param(5, ILanguageService)\n], View);\nexport class AccessibleDiffViewerModelFromEditors {\n    constructor(editors) {\n        this.editors = editors;\n    }\n    getOriginalModel() {\n        return this.editors.original.getModel();\n    }\n    getOriginalOptions() {\n        return this.editors.original.getOptions();\n    }\n    originalReveal(range) {\n        this.editors.original.revealRange(range);\n        this.editors.original.setSelection(range);\n        this.editors.original.focus();\n    }\n    getModifiedModel() {\n        return this.editors.modified.getModel();\n    }\n    getModifiedOptions() {\n        return this.editors.modified.getOptions();\n    }\n    modifiedReveal(range) {\n        if (range) {\n            this.editors.modified.revealRange(range);\n            this.editors.modified.setSelection(range);\n        }\n        this.editors.modified.focus();\n    }\n    modifiedSetSelection(range) {\n        this.editors.modified.setSelection(range);\n    }\n    modifiedFocus() {\n        this.editors.modified.focus();\n    }\n    getModifiedPosition() {\n        var _a;\n        return (_a = this.editors.modified.getPosition()) !== null && _a !== void 0 ? _a : undefined;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/diffEditor/components/diffEditorDecorations.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Disposable } from '../../../../../base/common/lifecycle.js';\nimport { derived } from '../../../../../base/common/observable.js';\nimport { MovedBlocksLinesFeature } from '../features/movedBlocksLinesFeature.js';\nimport { diffAddDecoration, diffAddDecorationEmpty, diffDeleteDecoration, diffDeleteDecorationEmpty, diffLineAddDecorationBackground, diffLineAddDecorationBackgroundWithIndicator, diffLineDeleteDecorationBackground, diffLineDeleteDecorationBackgroundWithIndicator, diffWholeLineAddDecoration, diffWholeLineDeleteDecoration } from '../registrations.contribution.js';\nimport { applyObservableDecorations } from '../utils.js';\nexport class DiffEditorDecorations extends Disposable {\n    constructor(_editors, _diffModel, _options, widget) {\n        super();\n        this._editors = _editors;\n        this._diffModel = _diffModel;\n        this._options = _options;\n        this._decorations = derived(this, (reader) => {\n            var _a;\n            const diff = (_a = this._diffModel.read(reader)) === null || _a === void 0 ? void 0 : _a.diff.read(reader);\n            if (!diff) {\n                return null;\n            }\n            const movedTextToCompare = this._diffModel.read(reader).movedTextToCompare.read(reader);\n            const renderIndicators = this._options.renderIndicators.read(reader);\n            const showEmptyDecorations = this._options.showEmptyDecorations.read(reader);\n            const originalDecorations = [];\n            const modifiedDecorations = [];\n            if (!movedTextToCompare) {\n                for (const m of diff.mappings) {\n                    if (!m.lineRangeMapping.original.isEmpty) {\n                        originalDecorations.push({ range: m.lineRangeMapping.original.toInclusiveRange(), options: renderIndicators ? diffLineDeleteDecorationBackgroundWithIndicator : diffLineDeleteDecorationBackground });\n                    }\n                    if (!m.lineRangeMapping.modified.isEmpty) {\n                        modifiedDecorations.push({ range: m.lineRangeMapping.modified.toInclusiveRange(), options: renderIndicators ? diffLineAddDecorationBackgroundWithIndicator : diffLineAddDecorationBackground });\n                    }\n                    if (m.lineRangeMapping.modified.isEmpty || m.lineRangeMapping.original.isEmpty) {\n                        if (!m.lineRangeMapping.original.isEmpty) {\n                            originalDecorations.push({ range: m.lineRangeMapping.original.toInclusiveRange(), options: diffWholeLineDeleteDecoration });\n                        }\n                        if (!m.lineRangeMapping.modified.isEmpty) {\n                            modifiedDecorations.push({ range: m.lineRangeMapping.modified.toInclusiveRange(), options: diffWholeLineAddDecoration });\n                        }\n                    }\n                    else {\n                        for (const i of m.lineRangeMapping.innerChanges || []) {\n                            // Don't show empty markers outside the line range\n                            if (m.lineRangeMapping.original.contains(i.originalRange.startLineNumber)) {\n                                originalDecorations.push({ range: i.originalRange, options: (i.originalRange.isEmpty() && showEmptyDecorations) ? diffDeleteDecorationEmpty : diffDeleteDecoration });\n                            }\n                            if (m.lineRangeMapping.modified.contains(i.modifiedRange.startLineNumber)) {\n                                modifiedDecorations.push({ range: i.modifiedRange, options: (i.modifiedRange.isEmpty() && showEmptyDecorations) ? diffAddDecorationEmpty : diffAddDecoration });\n                            }\n                        }\n                    }\n                }\n            }\n            if (movedTextToCompare) {\n                for (const m of movedTextToCompare.changes) {\n                    const fullRangeOriginal = m.original.toInclusiveRange();\n                    if (fullRangeOriginal) {\n                        originalDecorations.push({ range: fullRangeOriginal, options: renderIndicators ? diffLineDeleteDecorationBackgroundWithIndicator : diffLineDeleteDecorationBackground });\n                    }\n                    const fullRangeModified = m.modified.toInclusiveRange();\n                    if (fullRangeModified) {\n                        modifiedDecorations.push({ range: fullRangeModified, options: renderIndicators ? diffLineAddDecorationBackgroundWithIndicator : diffLineAddDecorationBackground });\n                    }\n                    for (const i of m.innerChanges || []) {\n                        originalDecorations.push({ range: i.originalRange, options: diffDeleteDecoration });\n                        modifiedDecorations.push({ range: i.modifiedRange, options: diffAddDecoration });\n                    }\n                }\n            }\n            const activeMovedText = this._diffModel.read(reader).activeMovedText.read(reader);\n            for (const m of diff.movedTexts) {\n                originalDecorations.push({\n                    range: m.lineRangeMapping.original.toInclusiveRange(), options: {\n                        description: 'moved',\n                        blockClassName: 'movedOriginal' + (m === activeMovedText ? ' currentMove' : ''),\n                        blockPadding: [MovedBlocksLinesFeature.movedCodeBlockPadding, 0, MovedBlocksLinesFeature.movedCodeBlockPadding, MovedBlocksLinesFeature.movedCodeBlockPadding],\n                    }\n                });\n                modifiedDecorations.push({\n                    range: m.lineRangeMapping.modified.toInclusiveRange(), options: {\n                        description: 'moved',\n                        blockClassName: 'movedModified' + (m === activeMovedText ? ' currentMove' : ''),\n                        blockPadding: [4, 0, 4, 4],\n                    }\n                });\n            }\n            return { originalDecorations, modifiedDecorations };\n        });\n        this._register(applyObservableDecorations(this._editors.original, this._decorations.map(d => (d === null || d === void 0 ? void 0 : d.originalDecorations) || [])));\n        this._register(applyObservableDecorations(this._editors.modified, this._decorations.map(d => (d === null || d === void 0 ? void 0 : d.modifiedDecorations) || [])));\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Emitter } from '../../../../../base/common/event.js';\nimport { Disposable } from '../../../../../base/common/lifecycle.js';\nimport { autorunHandleChanges, derivedOpts, observableFromEvent } from '../../../../../base/common/observable.js';\nimport { obsCodeEditor } from '../../../observableUtilities.js';\nimport { OverviewRulerFeature } from '../features/overviewRulerFeature.js';\nimport { EditorOptions } from '../../../../common/config/editorOptions.js';\nimport { Position } from '../../../../common/core/position.js';\nimport { localize } from '../../../../../nls.js';\nimport { IInstantiationService } from '../../../../../platform/instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../../../../platform/keybinding/common/keybinding.js';\nlet DiffEditorEditors = class DiffEditorEditors extends Disposable {\n    get onDidContentSizeChange() { return this._onDidContentSizeChange.event; }\n    constructor(originalEditorElement, modifiedEditorElement, _options, _argCodeEditorWidgetOptions, _createInnerEditor, _instantiationService, _keybindingService) {\n        super();\n        this.originalEditorElement = originalEditorElement;\n        this.modifiedEditorElement = modifiedEditorElement;\n        this._options = _options;\n        this._argCodeEditorWidgetOptions = _argCodeEditorWidgetOptions;\n        this._createInnerEditor = _createInnerEditor;\n        this._instantiationService = _instantiationService;\n        this._keybindingService = _keybindingService;\n        this.original = this._register(this._createLeftHandSideEditor(this._options.editorOptions.get(), this._argCodeEditorWidgetOptions.originalEditor || {}));\n        this.modified = this._register(this._createRightHandSideEditor(this._options.editorOptions.get(), this._argCodeEditorWidgetOptions.modifiedEditor || {}));\n        this._onDidContentSizeChange = this._register(new Emitter());\n        this.modifiedScrollTop = observableFromEvent(this.modified.onDidScrollChange, () => /** @description modified.getScrollTop */ this.modified.getScrollTop());\n        this.modifiedScrollHeight = observableFromEvent(this.modified.onDidScrollChange, () => /** @description modified.getScrollHeight */ this.modified.getScrollHeight());\n        this.modifiedModel = obsCodeEditor(this.modified).model;\n        this.modifiedSelections = observableFromEvent(this.modified.onDidChangeCursorSelection, () => { var _a; return (_a = this.modified.getSelections()) !== null && _a !== void 0 ? _a : []; });\n        this.modifiedCursor = derivedOpts({ owner: this, equalsFn: Position.equals }, reader => { var _a, _b; return (_b = (_a = this.modifiedSelections.read(reader)[0]) === null || _a === void 0 ? void 0 : _a.getPosition()) !== null && _b !== void 0 ? _b : new Position(1, 1); });\n        this.originalCursor = observableFromEvent(this.original.onDidChangeCursorPosition, () => { var _a; return (_a = this.original.getPosition()) !== null && _a !== void 0 ? _a : new Position(1, 1); });\n        this._argCodeEditorWidgetOptions = null;\n        this._register(autorunHandleChanges({\n            createEmptyChangeSummary: () => ({}),\n            handleChange: (ctx, changeSummary) => {\n                if (ctx.didChange(_options.editorOptions)) {\n                    Object.assign(changeSummary, ctx.change.changedOptions);\n                }\n                return true;\n            }\n        }, (reader, changeSummary) => {\n            /** @description update editor options */\n            _options.editorOptions.read(reader);\n            this._options.renderSideBySide.read(reader);\n            this.modified.updateOptions(this._adjustOptionsForRightHandSide(reader, changeSummary));\n            this.original.updateOptions(this._adjustOptionsForLeftHandSide(reader, changeSummary));\n        }));\n    }\n    _createLeftHandSideEditor(options, codeEditorWidgetOptions) {\n        const leftHandSideOptions = this._adjustOptionsForLeftHandSide(undefined, options);\n        const editor = this._constructInnerEditor(this._instantiationService, this.originalEditorElement, leftHandSideOptions, codeEditorWidgetOptions);\n        editor.setContextValue('isInDiffLeftEditor', true);\n        return editor;\n    }\n    _createRightHandSideEditor(options, codeEditorWidgetOptions) {\n        const rightHandSideOptions = this._adjustOptionsForRightHandSide(undefined, options);\n        const editor = this._constructInnerEditor(this._instantiationService, this.modifiedEditorElement, rightHandSideOptions, codeEditorWidgetOptions);\n        editor.setContextValue('isInDiffRightEditor', true);\n        return editor;\n    }\n    _constructInnerEditor(instantiationService, container, options, editorWidgetOptions) {\n        const editor = this._createInnerEditor(instantiationService, container, options, editorWidgetOptions);\n        this._register(editor.onDidContentSizeChange(e => {\n            const width = this.original.getContentWidth() + this.modified.getContentWidth() + OverviewRulerFeature.ENTIRE_DIFF_OVERVIEW_WIDTH;\n            const height = Math.max(this.modified.getContentHeight(), this.original.getContentHeight());\n            this._onDidContentSizeChange.fire({\n                contentHeight: height,\n                contentWidth: width,\n                contentHeightChanged: e.contentHeightChanged,\n                contentWidthChanged: e.contentWidthChanged\n            });\n        }));\n        return editor;\n    }\n    _adjustOptionsForLeftHandSide(_reader, changedOptions) {\n        const result = this._adjustOptionsForSubEditor(changedOptions);\n        if (!this._options.renderSideBySide.get()) {\n            // never wrap hidden editor\n            result.wordWrapOverride1 = 'off';\n            result.wordWrapOverride2 = 'off';\n            result.stickyScroll = { enabled: false };\n            // Disable unicode highlighting for the original side in inline mode, as they are not shown anyway.\n            result.unicodeHighlight = { nonBasicASCII: false, ambiguousCharacters: false, invisibleCharacters: false };\n        }\n        else {\n            result.unicodeHighlight = this._options.editorOptions.get().unicodeHighlight || {};\n            result.wordWrapOverride1 = this._options.diffWordWrap.get();\n        }\n        result.glyphMargin = this._options.renderSideBySide.get();\n        if (changedOptions.originalAriaLabel) {\n            result.ariaLabel = changedOptions.originalAriaLabel;\n        }\n        result.ariaLabel = this._updateAriaLabel(result.ariaLabel);\n        result.readOnly = !this._options.originalEditable.get();\n        result.dropIntoEditor = { enabled: !result.readOnly };\n        result.extraEditorClassName = 'original-in-monaco-diff-editor';\n        return result;\n    }\n    _adjustOptionsForRightHandSide(reader, changedOptions) {\n        const result = this._adjustOptionsForSubEditor(changedOptions);\n        if (changedOptions.modifiedAriaLabel) {\n            result.ariaLabel = changedOptions.modifiedAriaLabel;\n        }\n        result.ariaLabel = this._updateAriaLabel(result.ariaLabel);\n        result.wordWrapOverride1 = this._options.diffWordWrap.get();\n        result.revealHorizontalRightPadding = EditorOptions.revealHorizontalRightPadding.defaultValue + OverviewRulerFeature.ENTIRE_DIFF_OVERVIEW_WIDTH;\n        result.scrollbar.verticalHasArrows = false;\n        result.extraEditorClassName = 'modified-in-monaco-diff-editor';\n        return result;\n    }\n    _adjustOptionsForSubEditor(options) {\n        const clonedOptions = {\n            ...options,\n            dimension: {\n                height: 0,\n                width: 0\n            },\n        };\n        clonedOptions.inDiffEditor = true;\n        clonedOptions.automaticLayout = false;\n        // Clone scrollbar options before changing them\n        clonedOptions.scrollbar = { ...(clonedOptions.scrollbar || {}) };\n        clonedOptions.folding = false;\n        clonedOptions.codeLens = this._options.diffCodeLens.get();\n        clonedOptions.fixedOverflowWidgets = true;\n        // Clone minimap options before changing them\n        clonedOptions.minimap = { ...(clonedOptions.minimap || {}) };\n        clonedOptions.minimap.enabled = false;\n        if (this._options.hideUnchangedRegions.get()) {\n            clonedOptions.stickyScroll = { enabled: false };\n        }\n        else {\n            clonedOptions.stickyScroll = this._options.editorOptions.get().stickyScroll;\n        }\n        return clonedOptions;\n    }\n    _updateAriaLabel(ariaLabel) {\n        var _a;\n        if (!ariaLabel) {\n            ariaLabel = '';\n        }\n        const ariaNavigationTip = localize('diff-aria-navigation-tip', ' use {0} to open the accessibility help.', (_a = this._keybindingService.lookupKeybinding('editor.action.accessibilityHelp')) === null || _a === void 0 ? void 0 : _a.getAriaLabel());\n        if (this._options.accessibilityVerbose.get()) {\n            return ariaLabel + ariaNavigationTip;\n        }\n        else if (ariaLabel) {\n            return ariaLabel.replaceAll(ariaNavigationTip, '');\n        }\n        return '';\n    }\n};\nDiffEditorEditors = __decorate([\n    __param(5, IInstantiationService),\n    __param(6, IKeybindingService)\n], DiffEditorEditors);\nexport { DiffEditorEditors };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/diffEditor/components/diffEditorSash.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Sash } from '../../../../../base/browser/ui/sash/sash.js';\nimport { Disposable } from '../../../../../base/common/lifecycle.js';\nimport { autorun, observableValue } from '../../../../../base/common/observable.js';\nimport { derivedWithSetter } from '../../../../../base/common/observableInternal/derived.js';\nexport class SashLayout {\n    resetSash() {\n        this._sashRatio.set(undefined, undefined);\n    }\n    constructor(_options, dimensions) {\n        this._options = _options;\n        this.dimensions = dimensions;\n        this.sashLeft = derivedWithSetter(this, reader => {\n            var _a;\n            const ratio = (_a = this._sashRatio.read(reader)) !== null && _a !== void 0 ? _a : this._options.splitViewDefaultRatio.read(reader);\n            return this._computeSashLeft(ratio, reader);\n        }, (value, tx) => {\n            const contentWidth = this.dimensions.width.get();\n            this._sashRatio.set(value / contentWidth, tx);\n        });\n        this._sashRatio = observableValue(this, undefined);\n    }\n    /** @pure */\n    _computeSashLeft(desiredRatio, reader) {\n        const contentWidth = this.dimensions.width.read(reader);\n        const midPoint = Math.floor(this._options.splitViewDefaultRatio.read(reader) * contentWidth);\n        const sashLeft = this._options.enableSplitViewResizing.read(reader) ? Math.floor(desiredRatio * contentWidth) : midPoint;\n        const MINIMUM_EDITOR_WIDTH = 100;\n        if (contentWidth <= MINIMUM_EDITOR_WIDTH * 2) {\n            return midPoint;\n        }\n        if (sashLeft < MINIMUM_EDITOR_WIDTH) {\n            return MINIMUM_EDITOR_WIDTH;\n        }\n        if (sashLeft > contentWidth - MINIMUM_EDITOR_WIDTH) {\n            return contentWidth - MINIMUM_EDITOR_WIDTH;\n        }\n        return sashLeft;\n    }\n}\nexport class DiffEditorSash extends Disposable {\n    constructor(_domNode, _dimensions, _enabled, _boundarySashes, sashLeft, _resetSash) {\n        super();\n        this._domNode = _domNode;\n        this._dimensions = _dimensions;\n        this._enabled = _enabled;\n        this._boundarySashes = _boundarySashes;\n        this.sashLeft = sashLeft;\n        this._resetSash = _resetSash;\n        this._sash = this._register(new Sash(this._domNode, {\n            getVerticalSashTop: (_sash) => 0,\n            getVerticalSashLeft: (_sash) => this.sashLeft.get(),\n            getVerticalSashHeight: (_sash) => this._dimensions.height.get(),\n        }, { orientation: 0 /* Orientation.VERTICAL */ }));\n        this._startSashPosition = undefined;\n        this._register(this._sash.onDidStart(() => {\n            this._startSashPosition = this.sashLeft.get();\n        }));\n        this._register(this._sash.onDidChange((e) => {\n            this.sashLeft.set(this._startSashPosition + (e.currentX - e.startX), undefined);\n        }));\n        this._register(this._sash.onDidEnd(() => this._sash.layout()));\n        this._register(this._sash.onDidReset(() => this._resetSash()));\n        this._register(autorun(reader => {\n            const sashes = this._boundarySashes.read(reader);\n            if (sashes) {\n                this._sash.orthogonalEndSash = sashes.bottom;\n            }\n        }));\n        this._register(autorun(reader => {\n            /** @description DiffEditorSash.layoutSash */\n            const enabled = this._enabled.read(reader);\n            this._sash.state = enabled ? 3 /* SashState.Enabled */ : 0 /* SashState.Disabled */;\n            this.sashLeft.read(reader);\n            this._dimensions.height.read(reader);\n            this._sash.layout();\n        }));\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/diffEditorViewZones.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { $, addDisposableListener } from '../../../../../../base/browser/dom.js';\nimport { ArrayQueue } from '../../../../../../base/common/arrays.js';\nimport { RunOnceScheduler } from '../../../../../../base/common/async.js';\nimport { Codicon } from '../../../../../../base/common/codicons.js';\nimport { Disposable, DisposableStore } from '../../../../../../base/common/lifecycle.js';\nimport { autorun, derived, derivedWithStore, observableFromEvent, observableValue } from '../../../../../../base/common/observable.js';\nimport { ThemeIcon } from '../../../../../../base/common/themables.js';\nimport { assertIsDefined } from '../../../../../../base/common/types.js';\nimport { applyFontInfo } from '../../../../config/domFontInfo.js';\nimport { diffDeleteDecoration, diffRemoveIcon } from '../../registrations.contribution.js';\nimport { DiffMapping } from '../../diffEditorViewModel.js';\nimport { InlineDiffDeletedCodeMargin } from './inlineDiffDeletedCodeMargin.js';\nimport { LineSource, RenderOptions, renderLines } from './renderLines.js';\nimport { animatedObservable, joinCombine } from '../../utils.js';\nimport { LineRange } from '../../../../../common/core/lineRange.js';\nimport { Position } from '../../../../../common/core/position.js';\nimport { InlineDecoration } from '../../../../../common/viewModel.js';\nimport { IClipboardService } from '../../../../../../platform/clipboard/common/clipboardService.js';\nimport { IContextMenuService } from '../../../../../../platform/contextview/browser/contextView.js';\n/**\n * Ensures both editors have the same height by aligning unchanged lines.\n * In inline view mode, inserts viewzones to show deleted code from the original text model in the modified code editor.\n * Synchronizes scrolling.\n *\n * Make sure to add the view zones!\n */\nlet DiffEditorViewZones = class DiffEditorViewZones extends Disposable {\n    constructor(_targetWindow, _editors, _diffModel, _options, _diffEditorWidget, _canIgnoreViewZoneUpdateEvent, _origViewZonesToIgnore, _modViewZonesToIgnore, _clipboardService, _contextMenuService) {\n        super();\n        this._targetWindow = _targetWindow;\n        this._editors = _editors;\n        this._diffModel = _diffModel;\n        this._options = _options;\n        this._diffEditorWidget = _diffEditorWidget;\n        this._canIgnoreViewZoneUpdateEvent = _canIgnoreViewZoneUpdateEvent;\n        this._origViewZonesToIgnore = _origViewZonesToIgnore;\n        this._modViewZonesToIgnore = _modViewZonesToIgnore;\n        this._clipboardService = _clipboardService;\n        this._contextMenuService = _contextMenuService;\n        this._originalTopPadding = observableValue(this, 0);\n        this._originalScrollOffset = observableValue(this, 0);\n        this._originalScrollOffsetAnimated = animatedObservable(this._targetWindow, this._originalScrollOffset, this._store);\n        this._modifiedTopPadding = observableValue(this, 0);\n        this._modifiedScrollOffset = observableValue(this, 0);\n        this._modifiedScrollOffsetAnimated = animatedObservable(this._targetWindow, this._modifiedScrollOffset, this._store);\n        const state = observableValue('invalidateAlignmentsState', 0);\n        const updateImmediately = this._register(new RunOnceScheduler(() => {\n            state.set(state.get() + 1, undefined);\n        }, 0));\n        this._register(this._editors.original.onDidChangeViewZones((_args) => { if (!this._canIgnoreViewZoneUpdateEvent()) {\n            updateImmediately.schedule();\n        } }));\n        this._register(this._editors.modified.onDidChangeViewZones((_args) => { if (!this._canIgnoreViewZoneUpdateEvent()) {\n            updateImmediately.schedule();\n        } }));\n        this._register(this._editors.original.onDidChangeConfiguration((args) => {\n            if (args.hasChanged(146 /* EditorOption.wrappingInfo */) || args.hasChanged(67 /* EditorOption.lineHeight */)) {\n                updateImmediately.schedule();\n            }\n        }));\n        this._register(this._editors.modified.onDidChangeConfiguration((args) => {\n            if (args.hasChanged(146 /* EditorOption.wrappingInfo */) || args.hasChanged(67 /* EditorOption.lineHeight */)) {\n                updateImmediately.schedule();\n            }\n        }));\n        const originalModelTokenizationCompleted = this._diffModel.map(m => m ? observableFromEvent(m.model.original.onDidChangeTokens, () => m.model.original.tokenization.backgroundTokenizationState === 2 /* BackgroundTokenizationState.Completed */) : undefined).map((m, reader) => m === null || m === void 0 ? void 0 : m.read(reader));\n        const alignments = derived((reader) => {\n            /** @description alignments */\n            const diffModel = this._diffModel.read(reader);\n            const diff = diffModel === null || diffModel === void 0 ? void 0 : diffModel.diff.read(reader);\n            if (!diffModel || !diff) {\n                return null;\n            }\n            state.read(reader);\n            const renderSideBySide = this._options.renderSideBySide.read(reader);\n            const innerHunkAlignment = renderSideBySide;\n            return computeRangeAlignment(this._editors.original, this._editors.modified, diff.mappings, this._origViewZonesToIgnore, this._modViewZonesToIgnore, innerHunkAlignment);\n        });\n        const alignmentsSyncedMovedText = derived((reader) => {\n            var _a;\n            /** @description alignmentsSyncedMovedText */\n            const syncedMovedText = (_a = this._diffModel.read(reader)) === null || _a === void 0 ? void 0 : _a.movedTextToCompare.read(reader);\n            if (!syncedMovedText) {\n                return null;\n            }\n            state.read(reader);\n            const mappings = syncedMovedText.changes.map(c => new DiffMapping(c));\n            // TODO dont include alignments outside syncedMovedText\n            return computeRangeAlignment(this._editors.original, this._editors.modified, mappings, this._origViewZonesToIgnore, this._modViewZonesToIgnore, true);\n        });\n        function createFakeLinesDiv() {\n            const r = document.createElement('div');\n            r.className = 'diagonal-fill';\n            return r;\n        }\n        const alignmentViewZonesDisposables = this._register(new DisposableStore());\n        this.viewZones = derivedWithStore(this, (reader, store) => {\n            var _a, _b, _c, _d, _e, _f, _g, _h;\n            alignmentViewZonesDisposables.clear();\n            const alignmentsVal = alignments.read(reader) || [];\n            const origViewZones = [];\n            const modViewZones = [];\n            const modifiedTopPaddingVal = this._modifiedTopPadding.read(reader);\n            if (modifiedTopPaddingVal > 0) {\n                modViewZones.push({\n                    afterLineNumber: 0,\n                    domNode: document.createElement('div'),\n                    heightInPx: modifiedTopPaddingVal,\n                    showInHiddenAreas: true,\n                    suppressMouseDown: true,\n                });\n            }\n            const originalTopPaddingVal = this._originalTopPadding.read(reader);\n            if (originalTopPaddingVal > 0) {\n                origViewZones.push({\n                    afterLineNumber: 0,\n                    domNode: document.createElement('div'),\n                    heightInPx: originalTopPaddingVal,\n                    showInHiddenAreas: true,\n                    suppressMouseDown: true,\n                });\n            }\n            const renderSideBySide = this._options.renderSideBySide.read(reader);\n            const deletedCodeLineBreaksComputer = !renderSideBySide ? (_a = this._editors.modified._getViewModel()) === null || _a === void 0 ? void 0 : _a.createLineBreaksComputer() : undefined;\n            if (deletedCodeLineBreaksComputer) {\n                const originalModel = this._editors.original.getModel();\n                for (const a of alignmentsVal) {\n                    if (a.diff) {\n                        for (let i = a.originalRange.startLineNumber; i < a.originalRange.endLineNumberExclusive; i++) {\n                            // `i` can be out of bound when the diff has not been updated yet.\n                            // In this case, we do an early return.\n                            // TODO@hediet: Fix this by applying the edit directly to the diff model, so that the diff is always valid.\n                            if (i > originalModel.getLineCount()) {\n                                return { orig: origViewZones, mod: modViewZones };\n                            }\n                            deletedCodeLineBreaksComputer === null || deletedCodeLineBreaksComputer === void 0 ? void 0 : deletedCodeLineBreaksComputer.addRequest(originalModel.getLineContent(i), null, null);\n                        }\n                    }\n                }\n            }\n            const lineBreakData = (_b = deletedCodeLineBreaksComputer === null || deletedCodeLineBreaksComputer === void 0 ? void 0 : deletedCodeLineBreaksComputer.finalize()) !== null && _b !== void 0 ? _b : [];\n            let lineBreakDataIdx = 0;\n            const modLineHeight = this._editors.modified.getOption(67 /* EditorOption.lineHeight */);\n            const syncedMovedText = (_c = this._diffModel.read(reader)) === null || _c === void 0 ? void 0 : _c.movedTextToCompare.read(reader);\n            const mightContainNonBasicASCII = (_e = (_d = this._editors.original.getModel()) === null || _d === void 0 ? void 0 : _d.mightContainNonBasicASCII()) !== null && _e !== void 0 ? _e : false;\n            const mightContainRTL = (_g = (_f = this._editors.original.getModel()) === null || _f === void 0 ? void 0 : _f.mightContainRTL()) !== null && _g !== void 0 ? _g : false;\n            const renderOptions = RenderOptions.fromEditor(this._editors.modified);\n            for (const a of alignmentsVal) {\n                if (a.diff && !renderSideBySide) {\n                    if (!a.originalRange.isEmpty) {\n                        originalModelTokenizationCompleted.read(reader); // Update view-zones once tokenization completes\n                        const deletedCodeDomNode = document.createElement('div');\n                        deletedCodeDomNode.classList.add('view-lines', 'line-delete', 'monaco-mouse-cursor-text');\n                        const originalModel = this._editors.original.getModel();\n                        // `a.originalRange` can be out of bound when the diff has not been updated yet.\n                        // In this case, we do an early return.\n                        // TODO@hediet: Fix this by applying the edit directly to the diff model, so that the diff is always valid.\n                        if (a.originalRange.endLineNumberExclusive - 1 > originalModel.getLineCount()) {\n                            return { orig: origViewZones, mod: modViewZones };\n                        }\n                        const source = new LineSource(a.originalRange.mapToLineArray(l => originalModel.tokenization.getLineTokens(l)), a.originalRange.mapToLineArray(_ => lineBreakData[lineBreakDataIdx++]), mightContainNonBasicASCII, mightContainRTL);\n                        const decorations = [];\n                        for (const i of a.diff.innerChanges || []) {\n                            decorations.push(new InlineDecoration(i.originalRange.delta(-(a.diff.original.startLineNumber - 1)), diffDeleteDecoration.className, 0 /* InlineDecorationType.Regular */));\n                        }\n                        const result = renderLines(source, renderOptions, decorations, deletedCodeDomNode);\n                        const marginDomNode = document.createElement('div');\n                        marginDomNode.className = 'inline-deleted-margin-view-zone';\n                        applyFontInfo(marginDomNode, renderOptions.fontInfo);\n                        if (this._options.renderIndicators.read(reader)) {\n                            for (let i = 0; i < result.heightInLines; i++) {\n                                const marginElement = document.createElement('div');\n                                marginElement.className = `delete-sign ${ThemeIcon.asClassName(diffRemoveIcon)}`;\n                                marginElement.setAttribute('style', `position:absolute;top:${i * modLineHeight}px;width:${renderOptions.lineDecorationsWidth}px;height:${modLineHeight}px;right:0;`);\n                                marginDomNode.appendChild(marginElement);\n                            }\n                        }\n                        let zoneId = undefined;\n                        alignmentViewZonesDisposables.add(new InlineDiffDeletedCodeMargin(() => assertIsDefined(zoneId), marginDomNode, this._editors.modified, a.diff, this._diffEditorWidget, result.viewLineCounts, this._editors.original.getModel(), this._contextMenuService, this._clipboardService));\n                        for (let i = 0; i < result.viewLineCounts.length; i++) {\n                            const count = result.viewLineCounts[i];\n                            // Account for wrapped lines in the (collapsed) original editor (which doesn't wrap lines).\n                            if (count > 1) {\n                                origViewZones.push({\n                                    afterLineNumber: a.originalRange.startLineNumber + i,\n                                    domNode: createFakeLinesDiv(),\n                                    heightInPx: (count - 1) * modLineHeight,\n                                    showInHiddenAreas: true,\n                                    suppressMouseDown: true,\n                                });\n                            }\n                        }\n                        modViewZones.push({\n                            afterLineNumber: a.modifiedRange.startLineNumber - 1,\n                            domNode: deletedCodeDomNode,\n                            heightInPx: result.heightInLines * modLineHeight,\n                            minWidthInPx: result.minWidthInPx,\n                            marginDomNode,\n                            setZoneId(id) { zoneId = id; },\n                            showInHiddenAreas: true,\n                            suppressMouseDown: true,\n                        });\n                    }\n                    const marginDomNode = document.createElement('div');\n                    marginDomNode.className = 'gutter-delete';\n                    origViewZones.push({\n                        afterLineNumber: a.originalRange.endLineNumberExclusive - 1,\n                        domNode: createFakeLinesDiv(),\n                        heightInPx: a.modifiedHeightInPx,\n                        marginDomNode,\n                        showInHiddenAreas: true,\n                        suppressMouseDown: true,\n                    });\n                }\n                else {\n                    const delta = a.modifiedHeightInPx - a.originalHeightInPx;\n                    if (delta > 0) {\n                        if (syncedMovedText === null || syncedMovedText === void 0 ? void 0 : syncedMovedText.lineRangeMapping.original.delta(-1).deltaLength(2).contains(a.originalRange.endLineNumberExclusive - 1)) {\n                            continue;\n                        }\n                        origViewZones.push({\n                            afterLineNumber: a.originalRange.endLineNumberExclusive - 1,\n                            domNode: createFakeLinesDiv(),\n                            heightInPx: delta,\n                            showInHiddenAreas: true,\n                            suppressMouseDown: true,\n                        });\n                    }\n                    else {\n                        if (syncedMovedText === null || syncedMovedText === void 0 ? void 0 : syncedMovedText.lineRangeMapping.modified.delta(-1).deltaLength(2).contains(a.modifiedRange.endLineNumberExclusive - 1)) {\n                            continue;\n                        }\n                        function createViewZoneMarginArrow() {\n                            const arrow = document.createElement('div');\n                            arrow.className = 'arrow-revert-change ' + ThemeIcon.asClassName(Codicon.arrowRight);\n                            store.add(addDisposableListener(arrow, 'mousedown', e => e.stopPropagation()));\n                            store.add(addDisposableListener(arrow, 'click', e => {\n                                e.stopPropagation();\n                                _diffEditorWidget.revert(a.diff);\n                            }));\n                            return $('div', {}, arrow);\n                        }\n                        let marginDomNode = undefined;\n                        if (a.diff && a.diff.modified.isEmpty && this._options.shouldRenderOldRevertArrows.read(reader)) {\n                            marginDomNode = createViewZoneMarginArrow();\n                        }\n                        modViewZones.push({\n                            afterLineNumber: a.modifiedRange.endLineNumberExclusive - 1,\n                            domNode: createFakeLinesDiv(),\n                            heightInPx: -delta,\n                            marginDomNode,\n                            showInHiddenAreas: true,\n                            suppressMouseDown: true,\n                        });\n                    }\n                }\n            }\n            for (const a of (_h = alignmentsSyncedMovedText.read(reader)) !== null && _h !== void 0 ? _h : []) {\n                if (!(syncedMovedText === null || syncedMovedText === void 0 ? void 0 : syncedMovedText.lineRangeMapping.original.intersect(a.originalRange))\n                    || !(syncedMovedText === null || syncedMovedText === void 0 ? void 0 : syncedMovedText.lineRangeMapping.modified.intersect(a.modifiedRange))) {\n                    // ignore unrelated alignments outside the synced moved text\n                    continue;\n                }\n                const delta = a.modifiedHeightInPx - a.originalHeightInPx;\n                if (delta > 0) {\n                    origViewZones.push({\n                        afterLineNumber: a.originalRange.endLineNumberExclusive - 1,\n                        domNode: createFakeLinesDiv(),\n                        heightInPx: delta,\n                        showInHiddenAreas: true,\n                        suppressMouseDown: true,\n                    });\n                }\n                else {\n                    modViewZones.push({\n                        afterLineNumber: a.modifiedRange.endLineNumberExclusive - 1,\n                        domNode: createFakeLinesDiv(),\n                        heightInPx: -delta,\n                        showInHiddenAreas: true,\n                        suppressMouseDown: true,\n                    });\n                }\n            }\n            return { orig: origViewZones, mod: modViewZones };\n        });\n        let ignoreChange = false;\n        this._register(this._editors.original.onDidScrollChange(e => {\n            if (e.scrollLeftChanged && !ignoreChange) {\n                ignoreChange = true;\n                this._editors.modified.setScrollLeft(e.scrollLeft);\n                ignoreChange = false;\n            }\n        }));\n        this._register(this._editors.modified.onDidScrollChange(e => {\n            if (e.scrollLeftChanged && !ignoreChange) {\n                ignoreChange = true;\n                this._editors.original.setScrollLeft(e.scrollLeft);\n                ignoreChange = false;\n            }\n        }));\n        this._originalScrollTop = observableFromEvent(this._editors.original.onDidScrollChange, () => /** @description original.getScrollTop */ this._editors.original.getScrollTop());\n        this._modifiedScrollTop = observableFromEvent(this._editors.modified.onDidScrollChange, () => /** @description modified.getScrollTop */ this._editors.modified.getScrollTop());\n        // origExtraHeight + origOffset - origScrollTop = modExtraHeight + modOffset - modScrollTop\n        // origScrollTop = origExtraHeight + origOffset - modExtraHeight - modOffset + modScrollTop\n        // modScrollTop = modExtraHeight + modOffset - origExtraHeight - origOffset + origScrollTop\n        // origOffset - modOffset = heightOfLines(1..Y) - heightOfLines(1..X)\n        // origScrollTop >= 0, modScrollTop >= 0\n        this._register(autorun(reader => {\n            /** @description update scroll modified */\n            const newScrollTopModified = this._originalScrollTop.read(reader)\n                - (this._originalScrollOffsetAnimated.get() - this._modifiedScrollOffsetAnimated.read(reader))\n                - (this._originalTopPadding.get() - this._modifiedTopPadding.read(reader));\n            if (newScrollTopModified !== this._editors.modified.getScrollTop()) {\n                this._editors.modified.setScrollTop(newScrollTopModified, 1 /* ScrollType.Immediate */);\n            }\n        }));\n        this._register(autorun(reader => {\n            /** @description update scroll original */\n            const newScrollTopOriginal = this._modifiedScrollTop.read(reader)\n                - (this._modifiedScrollOffsetAnimated.get() - this._originalScrollOffsetAnimated.read(reader))\n                - (this._modifiedTopPadding.get() - this._originalTopPadding.read(reader));\n            if (newScrollTopOriginal !== this._editors.original.getScrollTop()) {\n                this._editors.original.setScrollTop(newScrollTopOriginal, 1 /* ScrollType.Immediate */);\n            }\n        }));\n        this._register(autorun(reader => {\n            var _a;\n            /** @description update editor top offsets */\n            const m = (_a = this._diffModel.read(reader)) === null || _a === void 0 ? void 0 : _a.movedTextToCompare.read(reader);\n            let deltaOrigToMod = 0;\n            if (m) {\n                const trueTopOriginal = this._editors.original.getTopForLineNumber(m.lineRangeMapping.original.startLineNumber, true) - this._originalTopPadding.get();\n                const trueTopModified = this._editors.modified.getTopForLineNumber(m.lineRangeMapping.modified.startLineNumber, true) - this._modifiedTopPadding.get();\n                deltaOrigToMod = trueTopModified - trueTopOriginal;\n            }\n            if (deltaOrigToMod > 0) {\n                this._modifiedTopPadding.set(0, undefined);\n                this._originalTopPadding.set(deltaOrigToMod, undefined);\n            }\n            else if (deltaOrigToMod < 0) {\n                this._modifiedTopPadding.set(-deltaOrigToMod, undefined);\n                this._originalTopPadding.set(0, undefined);\n            }\n            else {\n                setTimeout(() => {\n                    this._modifiedTopPadding.set(0, undefined);\n                    this._originalTopPadding.set(0, undefined);\n                }, 400);\n            }\n            if (this._editors.modified.hasTextFocus()) {\n                this._originalScrollOffset.set(this._modifiedScrollOffset.get() - deltaOrigToMod, undefined, true);\n            }\n            else {\n                this._modifiedScrollOffset.set(this._originalScrollOffset.get() + deltaOrigToMod, undefined, true);\n            }\n        }));\n    }\n};\nDiffEditorViewZones = __decorate([\n    __param(8, IClipboardService),\n    __param(9, IContextMenuService)\n], DiffEditorViewZones);\nexport { DiffEditorViewZones };\nfunction computeRangeAlignment(originalEditor, modifiedEditor, diffs, originalEditorAlignmentViewZones, modifiedEditorAlignmentViewZones, innerHunkAlignment) {\n    const originalLineHeightOverrides = new ArrayQueue(getAdditionalLineHeights(originalEditor, originalEditorAlignmentViewZones));\n    const modifiedLineHeightOverrides = new ArrayQueue(getAdditionalLineHeights(modifiedEditor, modifiedEditorAlignmentViewZones));\n    const origLineHeight = originalEditor.getOption(67 /* EditorOption.lineHeight */);\n    const modLineHeight = modifiedEditor.getOption(67 /* EditorOption.lineHeight */);\n    const result = [];\n    let lastOriginalLineNumber = 0;\n    let lastModifiedLineNumber = 0;\n    function handleAlignmentsOutsideOfDiffs(untilOriginalLineNumberExclusive, untilModifiedLineNumberExclusive) {\n        while (true) {\n            let origNext = originalLineHeightOverrides.peek();\n            let modNext = modifiedLineHeightOverrides.peek();\n            if (origNext && origNext.lineNumber >= untilOriginalLineNumberExclusive) {\n                origNext = undefined;\n            }\n            if (modNext && modNext.lineNumber >= untilModifiedLineNumberExclusive) {\n                modNext = undefined;\n            }\n            if (!origNext && !modNext) {\n                break;\n            }\n            const distOrig = origNext ? origNext.lineNumber - lastOriginalLineNumber : Number.MAX_VALUE;\n            const distNext = modNext ? modNext.lineNumber - lastModifiedLineNumber : Number.MAX_VALUE;\n            if (distOrig < distNext) {\n                originalLineHeightOverrides.dequeue();\n                modNext = {\n                    lineNumber: origNext.lineNumber - lastOriginalLineNumber + lastModifiedLineNumber,\n                    heightInPx: 0,\n                };\n            }\n            else if (distOrig > distNext) {\n                modifiedLineHeightOverrides.dequeue();\n                origNext = {\n                    lineNumber: modNext.lineNumber - lastModifiedLineNumber + lastOriginalLineNumber,\n                    heightInPx: 0,\n                };\n            }\n            else {\n                originalLineHeightOverrides.dequeue();\n                modifiedLineHeightOverrides.dequeue();\n            }\n            result.push({\n                originalRange: LineRange.ofLength(origNext.lineNumber, 1),\n                modifiedRange: LineRange.ofLength(modNext.lineNumber, 1),\n                originalHeightInPx: origLineHeight + origNext.heightInPx,\n                modifiedHeightInPx: modLineHeight + modNext.heightInPx,\n                diff: undefined,\n            });\n        }\n    }\n    for (const m of diffs) {\n        const c = m.lineRangeMapping;\n        handleAlignmentsOutsideOfDiffs(c.original.startLineNumber, c.modified.startLineNumber);\n        let first = true;\n        let lastModLineNumber = c.modified.startLineNumber;\n        let lastOrigLineNumber = c.original.startLineNumber;\n        function emitAlignment(origLineNumberExclusive, modLineNumberExclusive) {\n            var _a, _b, _c, _d;\n            if (origLineNumberExclusive < lastOrigLineNumber || modLineNumberExclusive < lastModLineNumber) {\n                return;\n            }\n            if (first) {\n                first = false;\n            }\n            else if (origLineNumberExclusive === lastOrigLineNumber || modLineNumberExclusive === lastModLineNumber) {\n                return;\n            }\n            const originalRange = new LineRange(lastOrigLineNumber, origLineNumberExclusive);\n            const modifiedRange = new LineRange(lastModLineNumber, modLineNumberExclusive);\n            if (originalRange.isEmpty && modifiedRange.isEmpty) {\n                return;\n            }\n            const originalAdditionalHeight = (_b = (_a = originalLineHeightOverrides\n                .takeWhile(v => v.lineNumber < origLineNumberExclusive)) === null || _a === void 0 ? void 0 : _a.reduce((p, c) => p + c.heightInPx, 0)) !== null && _b !== void 0 ? _b : 0;\n            const modifiedAdditionalHeight = (_d = (_c = modifiedLineHeightOverrides\n                .takeWhile(v => v.lineNumber < modLineNumberExclusive)) === null || _c === void 0 ? void 0 : _c.reduce((p, c) => p + c.heightInPx, 0)) !== null && _d !== void 0 ? _d : 0;\n            result.push({\n                originalRange,\n                modifiedRange,\n                originalHeightInPx: originalRange.length * origLineHeight + originalAdditionalHeight,\n                modifiedHeightInPx: modifiedRange.length * modLineHeight + modifiedAdditionalHeight,\n                diff: m.lineRangeMapping,\n            });\n            lastOrigLineNumber = origLineNumberExclusive;\n            lastModLineNumber = modLineNumberExclusive;\n        }\n        if (innerHunkAlignment) {\n            for (const i of c.innerChanges || []) {\n                if (i.originalRange.startColumn > 1 && i.modifiedRange.startColumn > 1) {\n                    // There is some unmodified text on this line before the diff\n                    emitAlignment(i.originalRange.startLineNumber, i.modifiedRange.startLineNumber);\n                }\n                const originalModel = originalEditor.getModel();\n                // When the diff is invalid, the ranges might be out of bounds (this should be fixed in the diff model by applying edits directly).\n                const maxColumn = i.originalRange.endLineNumber <= originalModel.getLineCount() ? originalModel.getLineMaxColumn(i.originalRange.endLineNumber) : Number.MAX_SAFE_INTEGER;\n                if (i.originalRange.endColumn < maxColumn) {\n                    // // There is some unmodified text on this line after the diff\n                    emitAlignment(i.originalRange.endLineNumber, i.modifiedRange.endLineNumber);\n                }\n            }\n        }\n        emitAlignment(c.original.endLineNumberExclusive, c.modified.endLineNumberExclusive);\n        lastOriginalLineNumber = c.original.endLineNumberExclusive;\n        lastModifiedLineNumber = c.modified.endLineNumberExclusive;\n    }\n    handleAlignmentsOutsideOfDiffs(Number.MAX_VALUE, Number.MAX_VALUE);\n    return result;\n}\nfunction getAdditionalLineHeights(editor, viewZonesToIgnore) {\n    const viewZoneHeights = [];\n    const wrappingZoneHeights = [];\n    const hasWrapping = editor.getOption(146 /* EditorOption.wrappingInfo */).wrappingColumn !== -1;\n    const coordinatesConverter = editor._getViewModel().coordinatesConverter;\n    const editorLineHeight = editor.getOption(67 /* EditorOption.lineHeight */);\n    if (hasWrapping) {\n        for (let i = 1; i <= editor.getModel().getLineCount(); i++) {\n            const lineCount = coordinatesConverter.getModelLineViewLineCount(i);\n            if (lineCount > 1) {\n                wrappingZoneHeights.push({ lineNumber: i, heightInPx: editorLineHeight * (lineCount - 1) });\n            }\n        }\n    }\n    for (const w of editor.getWhitespaces()) {\n        if (viewZonesToIgnore.has(w.id)) {\n            continue;\n        }\n        const modelLineNumber = w.afterLineNumber === 0 ? 0 : coordinatesConverter.convertViewPositionToModelPosition(new Position(w.afterLineNumber, 1)).lineNumber;\n        viewZoneHeights.push({ lineNumber: modelLineNumber, heightInPx: w.height });\n    }\n    const result = joinCombine(viewZoneHeights, wrappingZoneHeights, v => v.lineNumber, (v1, v2) => ({ lineNumber: v1.lineNumber, heightInPx: v1.heightInPx + v2.heightInPx }));\n    return result;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/inlineDiffDeletedCodeMargin.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { addStandardDisposableListener, getDomNodePagePosition } from '../../../../../../base/browser/dom.js';\nimport { Action } from '../../../../../../base/common/actions.js';\nimport { Codicon } from '../../../../../../base/common/codicons.js';\nimport { Disposable } from '../../../../../../base/common/lifecycle.js';\nimport { isIOS } from '../../../../../../base/common/platform.js';\nimport { ThemeIcon } from '../../../../../../base/common/themables.js';\nimport { localize } from '../../../../../../nls.js';\nexport class InlineDiffDeletedCodeMargin extends Disposable {\n    get visibility() {\n        return this._visibility;\n    }\n    set visibility(_visibility) {\n        if (this._visibility !== _visibility) {\n            this._visibility = _visibility;\n            this._diffActions.style.visibility = _visibility ? 'visible' : 'hidden';\n        }\n    }\n    constructor(_getViewZoneId, _marginDomNode, _modifiedEditor, _diff, _editor, _viewLineCounts, _originalTextModel, _contextMenuService, _clipboardService) {\n        super();\n        this._getViewZoneId = _getViewZoneId;\n        this._marginDomNode = _marginDomNode;\n        this._modifiedEditor = _modifiedEditor;\n        this._diff = _diff;\n        this._editor = _editor;\n        this._viewLineCounts = _viewLineCounts;\n        this._originalTextModel = _originalTextModel;\n        this._contextMenuService = _contextMenuService;\n        this._clipboardService = _clipboardService;\n        this._visibility = false;\n        // make sure the diff margin shows above overlay.\n        this._marginDomNode.style.zIndex = '10';\n        this._diffActions = document.createElement('div');\n        this._diffActions.className = ThemeIcon.asClassName(Codicon.lightBulb) + ' lightbulb-glyph';\n        this._diffActions.style.position = 'absolute';\n        const lineHeight = this._modifiedEditor.getOption(67 /* EditorOption.lineHeight */);\n        this._diffActions.style.right = '0px';\n        this._diffActions.style.visibility = 'hidden';\n        this._diffActions.style.height = `${lineHeight}px`;\n        this._diffActions.style.lineHeight = `${lineHeight}px`;\n        this._marginDomNode.appendChild(this._diffActions);\n        let currentLineNumberOffset = 0;\n        const useShadowDOM = _modifiedEditor.getOption(127 /* EditorOption.useShadowDOM */) && !isIOS; // Do not use shadow dom on IOS #122035\n        const showContextMenu = (x, y) => {\n            var _a;\n            this._contextMenuService.showContextMenu({\n                domForShadowRoot: useShadowDOM ? (_a = _modifiedEditor.getDomNode()) !== null && _a !== void 0 ? _a : undefined : undefined,\n                getAnchor: () => ({ x, y }),\n                getActions: () => {\n                    const actions = [];\n                    const isDeletion = _diff.modified.isEmpty;\n                    // default action\n                    actions.push(new Action('diff.clipboard.copyDeletedContent', isDeletion\n                        ? (_diff.original.length > 1\n                            ? localize('diff.clipboard.copyDeletedLinesContent.label', \"Copy deleted lines\")\n                            : localize('diff.clipboard.copyDeletedLinesContent.single.label', \"Copy deleted line\"))\n                        : (_diff.original.length > 1\n                            ? localize('diff.clipboard.copyChangedLinesContent.label', \"Copy changed lines\")\n                            : localize('diff.clipboard.copyChangedLinesContent.single.label', \"Copy changed line\")), undefined, true, async () => {\n                        const originalText = this._originalTextModel.getValueInRange(_diff.original.toExclusiveRange());\n                        await this._clipboardService.writeText(originalText);\n                    }));\n                    if (_diff.original.length > 1) {\n                        actions.push(new Action('diff.clipboard.copyDeletedLineContent', isDeletion\n                            ? localize('diff.clipboard.copyDeletedLineContent.label', \"Copy deleted line ({0})\", _diff.original.startLineNumber + currentLineNumberOffset)\n                            : localize('diff.clipboard.copyChangedLineContent.label', \"Copy changed line ({0})\", _diff.original.startLineNumber + currentLineNumberOffset), undefined, true, async () => {\n                            let lineContent = this._originalTextModel.getLineContent(_diff.original.startLineNumber + currentLineNumberOffset);\n                            if (lineContent === '') {\n                                // empty line -> new line\n                                const eof = this._originalTextModel.getEndOfLineSequence();\n                                lineContent = eof === 0 /* EndOfLineSequence.LF */ ? '\\n' : '\\r\\n';\n                            }\n                            await this._clipboardService.writeText(lineContent);\n                        }));\n                    }\n                    const readOnly = _modifiedEditor.getOption(91 /* EditorOption.readOnly */);\n                    if (!readOnly) {\n                        actions.push(new Action('diff.inline.revertChange', localize('diff.inline.revertChange.label', \"Revert this change\"), undefined, true, async () => {\n                            this._editor.revert(this._diff);\n                        }));\n                    }\n                    return actions;\n                },\n                autoSelectFirstItem: true\n            });\n        };\n        this._register(addStandardDisposableListener(this._diffActions, 'mousedown', e => {\n            if (!e.leftButton) {\n                return;\n            }\n            const { top, height } = getDomNodePagePosition(this._diffActions);\n            const pad = Math.floor(lineHeight / 3);\n            e.preventDefault();\n            showContextMenu(e.posx, top + height + pad);\n        }));\n        this._register(_modifiedEditor.onMouseMove((e) => {\n            if ((e.target.type === 8 /* MouseTargetType.CONTENT_VIEW_ZONE */ || e.target.type === 5 /* MouseTargetType.GUTTER_VIEW_ZONE */) && e.target.detail.viewZoneId === this._getViewZoneId()) {\n                currentLineNumberOffset = this._updateLightBulbPosition(this._marginDomNode, e.event.browserEvent.y, lineHeight);\n                this.visibility = true;\n            }\n            else {\n                this.visibility = false;\n            }\n        }));\n        this._register(_modifiedEditor.onMouseDown((e) => {\n            if (!e.event.leftButton) {\n                return;\n            }\n            if (e.target.type === 8 /* MouseTargetType.CONTENT_VIEW_ZONE */ || e.target.type === 5 /* MouseTargetType.GUTTER_VIEW_ZONE */) {\n                const viewZoneId = e.target.detail.viewZoneId;\n                if (viewZoneId === this._getViewZoneId()) {\n                    e.event.preventDefault();\n                    currentLineNumberOffset = this._updateLightBulbPosition(this._marginDomNode, e.event.browserEvent.y, lineHeight);\n                    showContextMenu(e.event.posx, e.event.posy + lineHeight);\n                }\n            }\n        }));\n    }\n    _updateLightBulbPosition(marginDomNode, y, lineHeight) {\n        const { top } = getDomNodePagePosition(marginDomNode);\n        const offset = y - top;\n        const lineNumberOffset = Math.floor(offset / lineHeight);\n        const newTop = lineNumberOffset * lineHeight;\n        this._diffActions.style.top = `${newTop}px`;\n        if (this._viewLineCounts) {\n            let acc = 0;\n            for (let i = 0; i < this._viewLineCounts.length; i++) {\n                acc += this._viewLineCounts[i];\n                if (lineNumberOffset < acc) {\n                    return i;\n                }\n            }\n        }\n        return lineNumberOffset;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/renderLines.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createTrustedTypesPolicy } from '../../../../../../base/browser/trustedTypes.js';\nimport { applyFontInfo } from '../../../../config/domFontInfo.js';\nimport { EditorFontLigatures } from '../../../../../common/config/editorOptions.js';\nimport { StringBuilder } from '../../../../../common/core/stringBuilder.js';\nimport { LineDecoration } from '../../../../../common/viewLayout/lineDecorations.js';\nimport { RenderLineInput, renderViewLine } from '../../../../../common/viewLayout/viewLineRenderer.js';\nimport { ViewLineRenderingData } from '../../../../../common/viewModel.js';\nconst ttPolicy = createTrustedTypesPolicy('diffEditorWidget', { createHTML: value => value });\nexport function renderLines(source, options, decorations, domNode) {\n    applyFontInfo(domNode, options.fontInfo);\n    const hasCharChanges = (decorations.length > 0);\n    const sb = new StringBuilder(10000);\n    let maxCharsPerLine = 0;\n    let renderedLineCount = 0;\n    const viewLineCounts = [];\n    for (let lineIndex = 0; lineIndex < source.lineTokens.length; lineIndex++) {\n        const lineNumber = lineIndex + 1;\n        const lineTokens = source.lineTokens[lineIndex];\n        const lineBreakData = source.lineBreakData[lineIndex];\n        const actualDecorations = LineDecoration.filter(decorations, lineNumber, 1, Number.MAX_SAFE_INTEGER);\n        if (lineBreakData) {\n            let lastBreakOffset = 0;\n            for (const breakOffset of lineBreakData.breakOffsets) {\n                const viewLineTokens = lineTokens.sliceAndInflate(lastBreakOffset, breakOffset, 0);\n                maxCharsPerLine = Math.max(maxCharsPerLine, renderOriginalLine(renderedLineCount, viewLineTokens, LineDecoration.extractWrapped(actualDecorations, lastBreakOffset, breakOffset), hasCharChanges, source.mightContainNonBasicASCII, source.mightContainRTL, options, sb));\n                renderedLineCount++;\n                lastBreakOffset = breakOffset;\n            }\n            viewLineCounts.push(lineBreakData.breakOffsets.length);\n        }\n        else {\n            viewLineCounts.push(1);\n            maxCharsPerLine = Math.max(maxCharsPerLine, renderOriginalLine(renderedLineCount, lineTokens, actualDecorations, hasCharChanges, source.mightContainNonBasicASCII, source.mightContainRTL, options, sb));\n            renderedLineCount++;\n        }\n    }\n    maxCharsPerLine += options.scrollBeyondLastColumn;\n    const html = sb.build();\n    const trustedhtml = ttPolicy ? ttPolicy.createHTML(html) : html;\n    domNode.innerHTML = trustedhtml;\n    const minWidthInPx = (maxCharsPerLine * options.typicalHalfwidthCharacterWidth);\n    return {\n        heightInLines: renderedLineCount,\n        minWidthInPx,\n        viewLineCounts,\n    };\n}\nexport class LineSource {\n    constructor(lineTokens, lineBreakData, mightContainNonBasicASCII, mightContainRTL) {\n        this.lineTokens = lineTokens;\n        this.lineBreakData = lineBreakData;\n        this.mightContainNonBasicASCII = mightContainNonBasicASCII;\n        this.mightContainRTL = mightContainRTL;\n    }\n}\nexport class RenderOptions {\n    static fromEditor(editor) {\n        var _a;\n        const modifiedEditorOptions = editor.getOptions();\n        const fontInfo = modifiedEditorOptions.get(50 /* EditorOption.fontInfo */);\n        const layoutInfo = modifiedEditorOptions.get(145 /* EditorOption.layoutInfo */);\n        return new RenderOptions(((_a = editor.getModel()) === null || _a === void 0 ? void 0 : _a.getOptions().tabSize) || 0, fontInfo, modifiedEditorOptions.get(33 /* EditorOption.disableMonospaceOptimizations */), fontInfo.typicalHalfwidthCharacterWidth, modifiedEditorOptions.get(104 /* EditorOption.scrollBeyondLastColumn */), modifiedEditorOptions.get(67 /* EditorOption.lineHeight */), layoutInfo.decorationsWidth, modifiedEditorOptions.get(117 /* EditorOption.stopRenderingLineAfter */), modifiedEditorOptions.get(99 /* EditorOption.renderWhitespace */), modifiedEditorOptions.get(94 /* EditorOption.renderControlCharacters */), modifiedEditorOptions.get(51 /* EditorOption.fontLigatures */));\n    }\n    constructor(tabSize, fontInfo, disableMonospaceOptimizations, typicalHalfwidthCharacterWidth, scrollBeyondLastColumn, lineHeight, lineDecorationsWidth, stopRenderingLineAfter, renderWhitespace, renderControlCharacters, fontLigatures) {\n        this.tabSize = tabSize;\n        this.fontInfo = fontInfo;\n        this.disableMonospaceOptimizations = disableMonospaceOptimizations;\n        this.typicalHalfwidthCharacterWidth = typicalHalfwidthCharacterWidth;\n        this.scrollBeyondLastColumn = scrollBeyondLastColumn;\n        this.lineHeight = lineHeight;\n        this.lineDecorationsWidth = lineDecorationsWidth;\n        this.stopRenderingLineAfter = stopRenderingLineAfter;\n        this.renderWhitespace = renderWhitespace;\n        this.renderControlCharacters = renderControlCharacters;\n        this.fontLigatures = fontLigatures;\n    }\n}\nfunction renderOriginalLine(viewLineIdx, lineTokens, decorations, hasCharChanges, mightContainNonBasicASCII, mightContainRTL, options, sb) {\n    sb.appendString('<div class=\"view-line');\n    if (!hasCharChanges) {\n        // No char changes\n        sb.appendString(' char-delete');\n    }\n    sb.appendString('\" style=\"top:');\n    sb.appendString(String(viewLineIdx * options.lineHeight));\n    sb.appendString('px;width:1000000px;\">');\n    const lineContent = lineTokens.getLineContent();\n    const isBasicASCII = ViewLineRenderingData.isBasicASCII(lineContent, mightContainNonBasicASCII);\n    const containsRTL = ViewLineRenderingData.containsRTL(lineContent, isBasicASCII, mightContainRTL);\n    const output = renderViewLine(new RenderLineInput((options.fontInfo.isMonospace && !options.disableMonospaceOptimizations), options.fontInfo.canUseHalfwidthRightwardsArrow, lineContent, false, isBasicASCII, containsRTL, 0, lineTokens, decorations, options.tabSize, 0, options.fontInfo.spaceWidth, options.fontInfo.middotWidth, options.fontInfo.wsmiddotWidth, options.stopRenderingLineAfter, options.renderWhitespace, options.renderControlCharacters, options.fontLigatures !== EditorFontLigatures.OFF, null // Send no selections, original line cannot be selected\n    ), sb);\n    sb.appendString('</div>');\n    return output.characterMapping.getHorizontalOffset(output.characterMapping.length);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/diffEditor/delegatingEditorImpl.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../../../base/common/event.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nexport class DelegatingEditor extends Disposable {\n    constructor() {\n        super(...arguments);\n        this._id = ++DelegatingEditor.idCounter;\n        this._onDidDispose = this._register(new Emitter());\n        this.onDidDispose = this._onDidDispose.event;\n        // #endregion\n    }\n    getId() { return this.getEditorType() + ':v2:' + this._id; }\n    // #region editorBrowser.IDiffEditor: Delegating to modified Editor\n    getVisibleColumnFromPosition(position) {\n        return this._targetEditor.getVisibleColumnFromPosition(position);\n    }\n    getPosition() {\n        return this._targetEditor.getPosition();\n    }\n    setPosition(position, source = 'api') {\n        this._targetEditor.setPosition(position, source);\n    }\n    revealLine(lineNumber, scrollType = 0 /* ScrollType.Smooth */) {\n        this._targetEditor.revealLine(lineNumber, scrollType);\n    }\n    revealLineInCenter(lineNumber, scrollType = 0 /* ScrollType.Smooth */) {\n        this._targetEditor.revealLineInCenter(lineNumber, scrollType);\n    }\n    revealLineInCenterIfOutsideViewport(lineNumber, scrollType = 0 /* ScrollType.Smooth */) {\n        this._targetEditor.revealLineInCenterIfOutsideViewport(lineNumber, scrollType);\n    }\n    revealLineNearTop(lineNumber, scrollType = 0 /* ScrollType.Smooth */) {\n        this._targetEditor.revealLineNearTop(lineNumber, scrollType);\n    }\n    revealPosition(position, scrollType = 0 /* ScrollType.Smooth */) {\n        this._targetEditor.revealPosition(position, scrollType);\n    }\n    revealPositionInCenter(position, scrollType = 0 /* ScrollType.Smooth */) {\n        this._targetEditor.revealPositionInCenter(position, scrollType);\n    }\n    revealPositionInCenterIfOutsideViewport(position, scrollType = 0 /* ScrollType.Smooth */) {\n        this._targetEditor.revealPositionInCenterIfOutsideViewport(position, scrollType);\n    }\n    revealPositionNearTop(position, scrollType = 0 /* ScrollType.Smooth */) {\n        this._targetEditor.revealPositionNearTop(position, scrollType);\n    }\n    getSelection() {\n        return this._targetEditor.getSelection();\n    }\n    getSelections() {\n        return this._targetEditor.getSelections();\n    }\n    setSelection(something, source = 'api') {\n        this._targetEditor.setSelection(something, source);\n    }\n    setSelections(ranges, source = 'api') {\n        this._targetEditor.setSelections(ranges, source);\n    }\n    revealLines(startLineNumber, endLineNumber, scrollType = 0 /* ScrollType.Smooth */) {\n        this._targetEditor.revealLines(startLineNumber, endLineNumber, scrollType);\n    }\n    revealLinesInCenter(startLineNumber, endLineNumber, scrollType = 0 /* ScrollType.Smooth */) {\n        this._targetEditor.revealLinesInCenter(startLineNumber, endLineNumber, scrollType);\n    }\n    revealLinesInCenterIfOutsideViewport(startLineNumber, endLineNumber, scrollType = 0 /* ScrollType.Smooth */) {\n        this._targetEditor.revealLinesInCenterIfOutsideViewport(startLineNumber, endLineNumber, scrollType);\n    }\n    revealLinesNearTop(startLineNumber, endLineNumber, scrollType = 0 /* ScrollType.Smooth */) {\n        this._targetEditor.revealLinesNearTop(startLineNumber, endLineNumber, scrollType);\n    }\n    revealRange(range, scrollType = 0 /* ScrollType.Smooth */, revealVerticalInCenter = false, revealHorizontal = true) {\n        this._targetEditor.revealRange(range, scrollType, revealVerticalInCenter, revealHorizontal);\n    }\n    revealRangeInCenter(range, scrollType = 0 /* ScrollType.Smooth */) {\n        this._targetEditor.revealRangeInCenter(range, scrollType);\n    }\n    revealRangeInCenterIfOutsideViewport(range, scrollType = 0 /* ScrollType.Smooth */) {\n        this._targetEditor.revealRangeInCenterIfOutsideViewport(range, scrollType);\n    }\n    revealRangeNearTop(range, scrollType = 0 /* ScrollType.Smooth */) {\n        this._targetEditor.revealRangeNearTop(range, scrollType);\n    }\n    revealRangeNearTopIfOutsideViewport(range, scrollType = 0 /* ScrollType.Smooth */) {\n        this._targetEditor.revealRangeNearTopIfOutsideViewport(range, scrollType);\n    }\n    revealRangeAtTop(range, scrollType = 0 /* ScrollType.Smooth */) {\n        this._targetEditor.revealRangeAtTop(range, scrollType);\n    }\n    getSupportedActions() {\n        return this._targetEditor.getSupportedActions();\n    }\n    focus() {\n        this._targetEditor.focus();\n    }\n    trigger(source, handlerId, payload) {\n        this._targetEditor.trigger(source, handlerId, payload);\n    }\n    createDecorationsCollection(decorations) {\n        return this._targetEditor.createDecorationsCollection(decorations);\n    }\n    changeDecorations(callback) {\n        return this._targetEditor.changeDecorations(callback);\n    }\n}\nDelegatingEditor.idCounter = 0;\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/diffEditor/diffEditor.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/diffEditor/diffEditor.contribution.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { AccessibleDiffViewerNext, AccessibleDiffViewerPrev, CollapseAllUnchangedRegions, ExitCompareMove, RevertHunkOrSelection, ShowAllUnchangedRegions, SwitchSide, ToggleCollapseUnchangedRegions, ToggleShowMovedCodeBlocks, ToggleUseInlineViewWhenSpaceIsLimited } from './commands.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { localize } from '../../../../nls.js';\nimport { MenuId, MenuRegistry, registerAction2 } from '../../../../platform/actions/common/actions.js';\nimport { CommandsRegistry } from '../../../../platform/commands/common/commands.js';\nimport { ContextKeyEqualsExpr, ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nimport './registrations.contribution.js';\nregisterAction2(ToggleCollapseUnchangedRegions);\nregisterAction2(ToggleShowMovedCodeBlocks);\nregisterAction2(ToggleUseInlineViewWhenSpaceIsLimited);\nMenuRegistry.appendMenuItem(MenuId.EditorTitle, {\n    command: {\n        id: new ToggleUseInlineViewWhenSpaceIsLimited().desc.id,\n        title: localize('useInlineViewWhenSpaceIsLimited', \"Use Inline View When Space Is Limited\"),\n        toggled: ContextKeyExpr.has('config.diffEditor.useInlineViewWhenSpaceIsLimited'),\n        precondition: ContextKeyExpr.has('isInDiffEditor'),\n    },\n    order: 11,\n    group: '1_diff',\n    when: ContextKeyExpr.and(EditorContextKeys.diffEditorRenderSideBySideInlineBreakpointReached, ContextKeyExpr.has('isInDiffEditor')),\n});\nMenuRegistry.appendMenuItem(MenuId.EditorTitle, {\n    command: {\n        id: new ToggleShowMovedCodeBlocks().desc.id,\n        title: localize('showMoves', \"Show Moved Code Blocks\"),\n        icon: Codicon.move,\n        toggled: ContextKeyEqualsExpr.create('config.diffEditor.experimental.showMoves', true),\n        precondition: ContextKeyExpr.has('isInDiffEditor'),\n    },\n    order: 10,\n    group: '1_diff',\n    when: ContextKeyExpr.has('isInDiffEditor'),\n});\nregisterAction2(RevertHunkOrSelection);\nfor (const ctx of [\n    { icon: Codicon.arrowRight, key: EditorContextKeys.diffEditorInlineMode.toNegated() },\n    { icon: Codicon.discard, key: EditorContextKeys.diffEditorInlineMode }\n]) {\n    MenuRegistry.appendMenuItem(MenuId.DiffEditorHunkToolbar, {\n        command: {\n            id: new RevertHunkOrSelection().desc.id,\n            title: localize('revertHunk', \"Revert Block\"),\n            icon: ctx.icon,\n        },\n        when: ContextKeyExpr.and(EditorContextKeys.diffEditorModifiedWritable, ctx.key),\n        order: 5,\n        group: 'primary',\n    });\n    MenuRegistry.appendMenuItem(MenuId.DiffEditorSelectionToolbar, {\n        command: {\n            id: new RevertHunkOrSelection().desc.id,\n            title: localize('revertSelection', \"Revert Selection\"),\n            icon: ctx.icon,\n        },\n        when: ContextKeyExpr.and(EditorContextKeys.diffEditorModifiedWritable, ctx.key),\n        order: 5,\n        group: 'primary',\n    });\n}\nregisterAction2(SwitchSide);\nregisterAction2(ExitCompareMove);\nregisterAction2(CollapseAllUnchangedRegions);\nregisterAction2(ShowAllUnchangedRegions);\nMenuRegistry.appendMenuItem(MenuId.EditorTitle, {\n    command: {\n        id: AccessibleDiffViewerNext.id,\n        title: localize('Open Accessible Diff Viewer', \"Open Accessible Diff Viewer\"),\n        precondition: ContextKeyExpr.has('isInDiffEditor'),\n    },\n    order: 10,\n    group: '2_diff',\n    when: ContextKeyExpr.and(EditorContextKeys.accessibleDiffViewerVisible.negate(), ContextKeyExpr.has('isInDiffEditor')),\n});\nCommandsRegistry.registerCommandAlias('editor.action.diffReview.next', AccessibleDiffViewerNext.id);\nregisterAction2(AccessibleDiffViewerNext);\nCommandsRegistry.registerCommandAlias('editor.action.diffReview.prev', AccessibleDiffViewerPrev.id);\nregisterAction2(AccessibleDiffViewerPrev);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/diffEditor/diffEditorOptions.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { derived, observableFromEvent, observableValue } from '../../../../base/common/observable.js';\nimport { diffEditorDefaultOptions } from '../../../common/config/diffEditor.js';\nimport { clampedFloat, clampedInt, boolean as validateBooleanOption, stringSet as validateStringSetOption } from '../../../common/config/editorOptions.js';\nimport { IAccessibilityService } from '../../../../platform/accessibility/common/accessibility.js';\nlet DiffEditorOptions = class DiffEditorOptions {\n    get editorOptions() { return this._options; }\n    constructor(options, _accessibilityService) {\n        this._accessibilityService = _accessibilityService;\n        this._diffEditorWidth = observableValue(this, 0);\n        this._screenReaderMode = observableFromEvent(this._accessibilityService.onDidChangeScreenReaderOptimized, () => this._accessibilityService.isScreenReaderOptimized());\n        this.couldShowInlineViewBecauseOfSize = derived(this, reader => this._options.read(reader).renderSideBySide && this._diffEditorWidth.read(reader) <= this._options.read(reader).renderSideBySideInlineBreakpoint);\n        this.renderOverviewRuler = derived(this, reader => this._options.read(reader).renderOverviewRuler);\n        this.renderSideBySide = derived(this, reader => this._options.read(reader).renderSideBySide\n            && !(this._options.read(reader).useInlineViewWhenSpaceIsLimited && this.couldShowInlineViewBecauseOfSize.read(reader) && !this._screenReaderMode.read(reader)));\n        this.readOnly = derived(this, reader => this._options.read(reader).readOnly);\n        this.shouldRenderOldRevertArrows = derived(this, reader => {\n            if (!this._options.read(reader).renderMarginRevertIcon) {\n                return false;\n            }\n            if (!this.renderSideBySide.read(reader)) {\n                return false;\n            }\n            if (this.readOnly.read(reader)) {\n                return false;\n            }\n            if (this.shouldRenderGutterMenu.read(reader)) {\n                return false;\n            }\n            return true;\n        });\n        this.shouldRenderGutterMenu = derived(this, reader => this._options.read(reader).renderGutterMenu);\n        this.renderIndicators = derived(this, reader => this._options.read(reader).renderIndicators);\n        this.enableSplitViewResizing = derived(this, reader => this._options.read(reader).enableSplitViewResizing);\n        this.splitViewDefaultRatio = derived(this, reader => this._options.read(reader).splitViewDefaultRatio);\n        this.ignoreTrimWhitespace = derived(this, reader => this._options.read(reader).ignoreTrimWhitespace);\n        this.maxComputationTimeMs = derived(this, reader => this._options.read(reader).maxComputationTime);\n        this.showMoves = derived(this, reader => this._options.read(reader).experimental.showMoves && this.renderSideBySide.read(reader));\n        this.isInEmbeddedEditor = derived(this, reader => this._options.read(reader).isInEmbeddedEditor);\n        this.diffWordWrap = derived(this, reader => this._options.read(reader).diffWordWrap);\n        this.originalEditable = derived(this, reader => this._options.read(reader).originalEditable);\n        this.diffCodeLens = derived(this, reader => this._options.read(reader).diffCodeLens);\n        this.accessibilityVerbose = derived(this, reader => this._options.read(reader).accessibilityVerbose);\n        this.diffAlgorithm = derived(this, reader => this._options.read(reader).diffAlgorithm);\n        this.showEmptyDecorations = derived(this, reader => this._options.read(reader).experimental.showEmptyDecorations);\n        this.onlyShowAccessibleDiffViewer = derived(this, reader => this._options.read(reader).onlyShowAccessibleDiffViewer);\n        this.hideUnchangedRegions = derived(this, reader => this._options.read(reader).hideUnchangedRegions.enabled);\n        this.hideUnchangedRegionsRevealLineCount = derived(this, reader => this._options.read(reader).hideUnchangedRegions.revealLineCount);\n        this.hideUnchangedRegionsContextLineCount = derived(this, reader => this._options.read(reader).hideUnchangedRegions.contextLineCount);\n        this.hideUnchangedRegionsMinimumLineCount = derived(this, reader => this._options.read(reader).hideUnchangedRegions.minimumLineCount);\n        const optionsCopy = { ...options, ...validateDiffEditorOptions(options, diffEditorDefaultOptions) };\n        this._options = observableValue(this, optionsCopy);\n    }\n    updateOptions(changedOptions) {\n        const newDiffEditorOptions = validateDiffEditorOptions(changedOptions, this._options.get());\n        const newOptions = { ...this._options.get(), ...changedOptions, ...newDiffEditorOptions };\n        this._options.set(newOptions, undefined, { changedOptions: changedOptions });\n    }\n    setWidth(width) {\n        this._diffEditorWidth.set(width, undefined);\n    }\n};\nDiffEditorOptions = __decorate([\n    __param(1, IAccessibilityService)\n], DiffEditorOptions);\nexport { DiffEditorOptions };\nfunction validateDiffEditorOptions(options, defaults) {\n    var _a, _b, _c, _d, _e, _f, _g, _h;\n    return {\n        enableSplitViewResizing: validateBooleanOption(options.enableSplitViewResizing, defaults.enableSplitViewResizing),\n        splitViewDefaultRatio: clampedFloat(options.splitViewDefaultRatio, 0.5, 0.1, 0.9),\n        renderSideBySide: validateBooleanOption(options.renderSideBySide, defaults.renderSideBySide),\n        renderMarginRevertIcon: validateBooleanOption(options.renderMarginRevertIcon, defaults.renderMarginRevertIcon),\n        maxComputationTime: clampedInt(options.maxComputationTime, defaults.maxComputationTime, 0, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */),\n        maxFileSize: clampedInt(options.maxFileSize, defaults.maxFileSize, 0, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */),\n        ignoreTrimWhitespace: validateBooleanOption(options.ignoreTrimWhitespace, defaults.ignoreTrimWhitespace),\n        renderIndicators: validateBooleanOption(options.renderIndicators, defaults.renderIndicators),\n        originalEditable: validateBooleanOption(options.originalEditable, defaults.originalEditable),\n        diffCodeLens: validateBooleanOption(options.diffCodeLens, defaults.diffCodeLens),\n        renderOverviewRuler: validateBooleanOption(options.renderOverviewRuler, defaults.renderOverviewRuler),\n        diffWordWrap: validateStringSetOption(options.diffWordWrap, defaults.diffWordWrap, ['off', 'on', 'inherit']),\n        diffAlgorithm: validateStringSetOption(options.diffAlgorithm, defaults.diffAlgorithm, ['legacy', 'advanced'], { 'smart': 'legacy', 'experimental': 'advanced' }),\n        accessibilityVerbose: validateBooleanOption(options.accessibilityVerbose, defaults.accessibilityVerbose),\n        experimental: {\n            showMoves: validateBooleanOption((_a = options.experimental) === null || _a === void 0 ? void 0 : _a.showMoves, defaults.experimental.showMoves),\n            showEmptyDecorations: validateBooleanOption((_b = options.experimental) === null || _b === void 0 ? void 0 : _b.showEmptyDecorations, defaults.experimental.showEmptyDecorations),\n        },\n        hideUnchangedRegions: {\n            enabled: validateBooleanOption((_d = (_c = options.hideUnchangedRegions) === null || _c === void 0 ? void 0 : _c.enabled) !== null && _d !== void 0 ? _d : (_e = options.experimental) === null || _e === void 0 ? void 0 : _e.collapseUnchangedRegions, defaults.hideUnchangedRegions.enabled),\n            contextLineCount: clampedInt((_f = options.hideUnchangedRegions) === null || _f === void 0 ? void 0 : _f.contextLineCount, defaults.hideUnchangedRegions.contextLineCount, 0, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */),\n            minimumLineCount: clampedInt((_g = options.hideUnchangedRegions) === null || _g === void 0 ? void 0 : _g.minimumLineCount, defaults.hideUnchangedRegions.minimumLineCount, 0, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */),\n            revealLineCount: clampedInt((_h = options.hideUnchangedRegions) === null || _h === void 0 ? void 0 : _h.revealLineCount, defaults.hideUnchangedRegions.revealLineCount, 0, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */),\n        },\n        isInEmbeddedEditor: validateBooleanOption(options.isInEmbeddedEditor, defaults.isInEmbeddedEditor),\n        onlyShowAccessibleDiffViewer: validateBooleanOption(options.onlyShowAccessibleDiffViewer, defaults.onlyShowAccessibleDiffViewer),\n        renderSideBySideInlineBreakpoint: clampedInt(options.renderSideBySideInlineBreakpoint, defaults.renderSideBySideInlineBreakpoint, 0, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */),\n        useInlineViewWhenSpaceIsLimited: validateBooleanOption(options.useInlineViewWhenSpaceIsLimited, defaults.useInlineViewWhenSpaceIsLimited),\n        renderGutterMenu: validateBooleanOption(options.renderGutterMenu, defaults.renderGutterMenu),\n    };\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/diffEditor/diffEditorViewModel.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { RunOnceScheduler } from '../../../../base/common/async.js';\nimport { CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { Disposable, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { autorun, autorunWithStore, derived, observableSignal, observableSignalFromEvent, observableValue, transaction, waitForState } from '../../../../base/common/observable.js';\nimport { IDiffProviderFactoryService } from './diffProviderFactoryService.js';\nimport { filterWithPrevious, readHotReloadableExport } from './utils.js';\nimport { LineRange, LineRangeSet } from '../../../common/core/lineRange.js';\nimport { DefaultLinesDiffComputer } from '../../../common/diff/defaultLinesDiffComputer/defaultLinesDiffComputer.js';\nimport { DetailedLineRangeMapping, LineRangeMapping, RangeMapping } from '../../../common/diff/rangeMapping.js';\nimport { TextEditInfo } from '../../../common/model/bracketPairsTextModelPart/bracketPairsTree/beforeEditPositionMapper.js';\nimport { combineTextEditInfos } from '../../../common/model/bracketPairsTextModelPart/bracketPairsTree/combineTextEditInfos.js';\nimport { optimizeSequenceDiffs } from '../../../common/diff/defaultLinesDiffComputer/heuristicSequenceOptimizations.js';\nimport { isDefined } from '../../../../base/common/types.js';\nimport { groupAdjacentBy } from '../../../../base/common/arrays.js';\nimport { softAssert } from '../../../../base/common/assert.js';\nlet DiffEditorViewModel = class DiffEditorViewModel extends Disposable {\n    setActiveMovedText(movedText) {\n        this._activeMovedText.set(movedText, undefined);\n    }\n    constructor(model, _options, _diffProviderFactoryService) {\n        super();\n        this.model = model;\n        this._options = _options;\n        this._diffProviderFactoryService = _diffProviderFactoryService;\n        this._isDiffUpToDate = observableValue(this, false);\n        this.isDiffUpToDate = this._isDiffUpToDate;\n        this._diff = observableValue(this, undefined);\n        this.diff = this._diff;\n        this._unchangedRegions = observableValue(this, undefined);\n        this.unchangedRegions = derived(this, r => {\n            var _a, _b;\n            if (this._options.hideUnchangedRegions.read(r)) {\n                return (_b = (_a = this._unchangedRegions.read(r)) === null || _a === void 0 ? void 0 : _a.regions) !== null && _b !== void 0 ? _b : [];\n            }\n            else {\n                // Reset state\n                transaction(tx => {\n                    var _a;\n                    for (const r of ((_a = this._unchangedRegions.get()) === null || _a === void 0 ? void 0 : _a.regions) || []) {\n                        r.collapseAll(tx);\n                    }\n                });\n                return [];\n            }\n        });\n        this.movedTextToCompare = observableValue(this, undefined);\n        this._activeMovedText = observableValue(this, undefined);\n        this._hoveredMovedText = observableValue(this, undefined);\n        this.activeMovedText = derived(this, r => { var _a, _b; return (_b = (_a = this.movedTextToCompare.read(r)) !== null && _a !== void 0 ? _a : this._hoveredMovedText.read(r)) !== null && _b !== void 0 ? _b : this._activeMovedText.read(r); });\n        this._cancellationTokenSource = new CancellationTokenSource();\n        this._diffProvider = derived(this, reader => {\n            const diffProvider = this._diffProviderFactoryService.createDiffProvider({\n                diffAlgorithm: this._options.diffAlgorithm.read(reader)\n            });\n            const onChangeSignal = observableSignalFromEvent('onDidChange', diffProvider.onDidChange);\n            return {\n                diffProvider,\n                onChangeSignal,\n            };\n        });\n        this._register(toDisposable(() => this._cancellationTokenSource.cancel()));\n        const contentChangedSignal = observableSignal('contentChangedSignal');\n        const debouncer = this._register(new RunOnceScheduler(() => contentChangedSignal.trigger(undefined), 200));\n        this._register(autorun(reader => {\n            /** @description collapse touching unchanged ranges */\n            const lastUnchangedRegions = this._unchangedRegions.read(reader);\n            if (!lastUnchangedRegions || lastUnchangedRegions.regions.some(r => r.isDragged.read(reader))) {\n                return;\n            }\n            const lastUnchangedRegionsOrigRanges = lastUnchangedRegions.originalDecorationIds\n                .map(id => model.original.getDecorationRange(id))\n                .map(r => r ? LineRange.fromRangeInclusive(r) : undefined);\n            const lastUnchangedRegionsModRanges = lastUnchangedRegions.modifiedDecorationIds\n                .map(id => model.modified.getDecorationRange(id))\n                .map(r => r ? LineRange.fromRangeInclusive(r) : undefined);\n            const updatedLastUnchangedRegions = lastUnchangedRegions.regions.map((r, idx) => (!lastUnchangedRegionsOrigRanges[idx] || !lastUnchangedRegionsModRanges[idx]) ? undefined :\n                new UnchangedRegion(lastUnchangedRegionsOrigRanges[idx].startLineNumber, lastUnchangedRegionsModRanges[idx].startLineNumber, lastUnchangedRegionsOrigRanges[idx].length, r.visibleLineCountTop.read(reader), r.visibleLineCountBottom.read(reader))).filter(isDefined);\n            const newRanges = [];\n            let didChange = false;\n            for (const touching of groupAdjacentBy(updatedLastUnchangedRegions, (a, b) => a.getHiddenModifiedRange(reader).endLineNumberExclusive === b.getHiddenModifiedRange(reader).startLineNumber)) {\n                if (touching.length > 1) {\n                    didChange = true;\n                    const sumLineCount = touching.reduce((sum, r) => sum + r.lineCount, 0);\n                    const r = new UnchangedRegion(touching[0].originalLineNumber, touching[0].modifiedLineNumber, sumLineCount, touching[0].visibleLineCountTop.get(), touching[touching.length - 1].visibleLineCountBottom.get());\n                    newRanges.push(r);\n                }\n                else {\n                    newRanges.push(touching[0]);\n                }\n            }\n            if (didChange) {\n                const originalDecorationIds = model.original.deltaDecorations(lastUnchangedRegions.originalDecorationIds, newRanges.map(r => ({ range: r.originalUnchangedRange.toInclusiveRange(), options: { description: 'unchanged' } })));\n                const modifiedDecorationIds = model.modified.deltaDecorations(lastUnchangedRegions.modifiedDecorationIds, newRanges.map(r => ({ range: r.modifiedUnchangedRange.toInclusiveRange(), options: { description: 'unchanged' } })));\n                transaction(tx => {\n                    this._unchangedRegions.set({\n                        regions: newRanges,\n                        originalDecorationIds,\n                        modifiedDecorationIds\n                    }, tx);\n                });\n            }\n        }));\n        const updateUnchangedRegions = (result, tx, reader) => {\n            const newUnchangedRegions = UnchangedRegion.fromDiffs(result.changes, model.original.getLineCount(), model.modified.getLineCount(), this._options.hideUnchangedRegionsMinimumLineCount.read(reader), this._options.hideUnchangedRegionsContextLineCount.read(reader));\n            // Transfer state from cur state\n            let visibleRegions = undefined;\n            const lastUnchangedRegions = this._unchangedRegions.get();\n            if (lastUnchangedRegions) {\n                const lastUnchangedRegionsOrigRanges = lastUnchangedRegions.originalDecorationIds\n                    .map(id => model.original.getDecorationRange(id))\n                    .map(r => r ? LineRange.fromRangeInclusive(r) : undefined);\n                const lastUnchangedRegionsModRanges = lastUnchangedRegions.modifiedDecorationIds\n                    .map(id => model.modified.getDecorationRange(id))\n                    .map(r => r ? LineRange.fromRangeInclusive(r) : undefined);\n                const updatedLastUnchangedRegions = filterWithPrevious(lastUnchangedRegions.regions\n                    .map((r, idx) => {\n                    if (!lastUnchangedRegionsOrigRanges[idx] || !lastUnchangedRegionsModRanges[idx]) {\n                        return undefined;\n                    }\n                    const length = lastUnchangedRegionsOrigRanges[idx].length;\n                    return new UnchangedRegion(lastUnchangedRegionsOrigRanges[idx].startLineNumber, lastUnchangedRegionsModRanges[idx].startLineNumber, length, \n                    // The visible area can shrink by edits -> we have to account for this\n                    Math.min(r.visibleLineCountTop.get(), length), Math.min(r.visibleLineCountBottom.get(), length - r.visibleLineCountTop.get()));\n                }).filter(isDefined), (cur, prev) => !prev || (cur.modifiedLineNumber >= prev.modifiedLineNumber + prev.lineCount && cur.originalLineNumber >= prev.originalLineNumber + prev.lineCount));\n                let hiddenRegions = updatedLastUnchangedRegions.map(r => new LineRangeMapping(r.getHiddenOriginalRange(reader), r.getHiddenModifiedRange(reader)));\n                hiddenRegions = LineRangeMapping.clip(hiddenRegions, LineRange.ofLength(1, model.original.getLineCount()), LineRange.ofLength(1, model.modified.getLineCount()));\n                visibleRegions = LineRangeMapping.inverse(hiddenRegions, model.original.getLineCount(), model.modified.getLineCount());\n            }\n            const newUnchangedRegions2 = [];\n            if (visibleRegions) {\n                for (const r of newUnchangedRegions) {\n                    const intersecting = visibleRegions.filter(f => f.original.intersectsStrict(r.originalUnchangedRange) && f.modified.intersectsStrict(r.modifiedUnchangedRange));\n                    newUnchangedRegions2.push(...r.setVisibleRanges(intersecting, tx));\n                }\n            }\n            else {\n                newUnchangedRegions2.push(...newUnchangedRegions);\n            }\n            const originalDecorationIds = model.original.deltaDecorations((lastUnchangedRegions === null || lastUnchangedRegions === void 0 ? void 0 : lastUnchangedRegions.originalDecorationIds) || [], newUnchangedRegions2.map(r => ({ range: r.originalUnchangedRange.toInclusiveRange(), options: { description: 'unchanged' } })));\n            const modifiedDecorationIds = model.modified.deltaDecorations((lastUnchangedRegions === null || lastUnchangedRegions === void 0 ? void 0 : lastUnchangedRegions.modifiedDecorationIds) || [], newUnchangedRegions2.map(r => ({ range: r.modifiedUnchangedRange.toInclusiveRange(), options: { description: 'unchanged' } })));\n            this._unchangedRegions.set({\n                regions: newUnchangedRegions2,\n                originalDecorationIds,\n                modifiedDecorationIds\n            }, tx);\n        };\n        this._register(model.modified.onDidChangeContent((e) => {\n            const diff = this._diff.get();\n            if (diff) {\n                const textEdits = TextEditInfo.fromModelContentChanges(e.changes);\n                const result = applyModifiedEdits(this._lastDiff, textEdits, model.original, model.modified);\n                if (result) {\n                    this._lastDiff = result;\n                    transaction(tx => {\n                        this._diff.set(DiffState.fromDiffResult(this._lastDiff), tx);\n                        updateUnchangedRegions(result, tx);\n                        const currentSyncedMovedText = this.movedTextToCompare.get();\n                        this.movedTextToCompare.set(currentSyncedMovedText ? this._lastDiff.moves.find(m => m.lineRangeMapping.modified.intersect(currentSyncedMovedText.lineRangeMapping.modified)) : undefined, tx);\n                    });\n                }\n            }\n            this._isDiffUpToDate.set(false, undefined);\n            debouncer.schedule();\n        }));\n        this._register(model.original.onDidChangeContent((e) => {\n            const diff = this._diff.get();\n            if (diff) {\n                const textEdits = TextEditInfo.fromModelContentChanges(e.changes);\n                const result = applyOriginalEdits(this._lastDiff, textEdits, model.original, model.modified);\n                if (result) {\n                    this._lastDiff = result;\n                    transaction(tx => {\n                        this._diff.set(DiffState.fromDiffResult(this._lastDiff), tx);\n                        updateUnchangedRegions(result, tx);\n                        const currentSyncedMovedText = this.movedTextToCompare.get();\n                        this.movedTextToCompare.set(currentSyncedMovedText ? this._lastDiff.moves.find(m => m.lineRangeMapping.modified.intersect(currentSyncedMovedText.lineRangeMapping.modified)) : undefined, tx);\n                    });\n                }\n            }\n            this._isDiffUpToDate.set(false, undefined);\n            debouncer.schedule();\n        }));\n        this._register(autorunWithStore(async (reader, store) => {\n            /** @description compute diff */\n            var _a, _b;\n            // So that they get recomputed when these settings change\n            this._options.hideUnchangedRegionsMinimumLineCount.read(reader);\n            this._options.hideUnchangedRegionsContextLineCount.read(reader);\n            debouncer.cancel();\n            contentChangedSignal.read(reader);\n            const documentDiffProvider = this._diffProvider.read(reader);\n            documentDiffProvider.onChangeSignal.read(reader);\n            readHotReloadableExport(DefaultLinesDiffComputer, reader);\n            readHotReloadableExport(optimizeSequenceDiffs, reader);\n            this._isDiffUpToDate.set(false, undefined);\n            let originalTextEditInfos = [];\n            store.add(model.original.onDidChangeContent((e) => {\n                const edits = TextEditInfo.fromModelContentChanges(e.changes);\n                originalTextEditInfos = combineTextEditInfos(originalTextEditInfos, edits);\n            }));\n            let modifiedTextEditInfos = [];\n            store.add(model.modified.onDidChangeContent((e) => {\n                const edits = TextEditInfo.fromModelContentChanges(e.changes);\n                modifiedTextEditInfos = combineTextEditInfos(modifiedTextEditInfos, edits);\n            }));\n            let result = await documentDiffProvider.diffProvider.computeDiff(model.original, model.modified, {\n                ignoreTrimWhitespace: this._options.ignoreTrimWhitespace.read(reader),\n                maxComputationTimeMs: this._options.maxComputationTimeMs.read(reader),\n                computeMoves: this._options.showMoves.read(reader),\n            }, this._cancellationTokenSource.token);\n            if (this._cancellationTokenSource.token.isCancellationRequested) {\n                return;\n            }\n            if (model.original.isDisposed() || model.modified.isDisposed()) {\n                // TODO@hediet fishy?\n                return;\n            }\n            result = normalizeDocumentDiff(result, model.original, model.modified);\n            result = (_a = applyOriginalEdits(result, originalTextEditInfos, model.original, model.modified)) !== null && _a !== void 0 ? _a : result;\n            result = (_b = applyModifiedEdits(result, modifiedTextEditInfos, model.original, model.modified)) !== null && _b !== void 0 ? _b : result;\n            transaction(tx => {\n                /** @description write diff result */\n                updateUnchangedRegions(result, tx);\n                this._lastDiff = result;\n                const state = DiffState.fromDiffResult(result);\n                this._diff.set(state, tx);\n                this._isDiffUpToDate.set(true, tx);\n                const currentSyncedMovedText = this.movedTextToCompare.get();\n                this.movedTextToCompare.set(currentSyncedMovedText ? this._lastDiff.moves.find(m => m.lineRangeMapping.modified.intersect(currentSyncedMovedText.lineRangeMapping.modified)) : undefined, tx);\n            });\n        }));\n    }\n    ensureModifiedLineIsVisible(lineNumber, preference, tx) {\n        var _a, _b;\n        if (((_a = this.diff.get()) === null || _a === void 0 ? void 0 : _a.mappings.length) === 0) {\n            return;\n        }\n        const unchangedRegions = ((_b = this._unchangedRegions.get()) === null || _b === void 0 ? void 0 : _b.regions) || [];\n        for (const r of unchangedRegions) {\n            if (r.getHiddenModifiedRange(undefined).contains(lineNumber)) {\n                r.showModifiedLine(lineNumber, preference, tx);\n                return;\n            }\n        }\n    }\n    ensureOriginalLineIsVisible(lineNumber, preference, tx) {\n        var _a, _b;\n        if (((_a = this.diff.get()) === null || _a === void 0 ? void 0 : _a.mappings.length) === 0) {\n            return;\n        }\n        const unchangedRegions = ((_b = this._unchangedRegions.get()) === null || _b === void 0 ? void 0 : _b.regions) || [];\n        for (const r of unchangedRegions) {\n            if (r.getHiddenOriginalRange(undefined).contains(lineNumber)) {\n                r.showOriginalLine(lineNumber, preference, tx);\n                return;\n            }\n        }\n    }\n    async waitForDiff() {\n        await waitForState(this.isDiffUpToDate, s => s);\n    }\n    serializeState() {\n        const regions = this._unchangedRegions.get();\n        return {\n            collapsedRegions: regions === null || regions === void 0 ? void 0 : regions.regions.map(r => ({ range: r.getHiddenModifiedRange(undefined).serialize() }))\n        };\n    }\n    restoreSerializedState(state) {\n        var _a;\n        const ranges = (_a = state.collapsedRegions) === null || _a === void 0 ? void 0 : _a.map(r => LineRange.deserialize(r.range));\n        const regions = this._unchangedRegions.get();\n        if (!regions || !ranges) {\n            return;\n        }\n        transaction(tx => {\n            for (const r of regions.regions) {\n                for (const range of ranges) {\n                    if (r.modifiedUnchangedRange.intersect(range)) {\n                        r.setHiddenModifiedRange(range, tx);\n                        break;\n                    }\n                }\n            }\n        });\n    }\n};\nDiffEditorViewModel = __decorate([\n    __param(2, IDiffProviderFactoryService)\n], DiffEditorViewModel);\nexport { DiffEditorViewModel };\nfunction normalizeDocumentDiff(diff, original, modified) {\n    return {\n        changes: diff.changes.map(c => new DetailedLineRangeMapping(c.original, c.modified, c.innerChanges ? c.innerChanges.map(i => normalizeRangeMapping(i, original, modified)) : undefined)),\n        moves: diff.moves,\n        identical: diff.identical,\n        quitEarly: diff.quitEarly,\n    };\n}\nfunction normalizeRangeMapping(rangeMapping, original, modified) {\n    let originalRange = rangeMapping.originalRange;\n    let modifiedRange = rangeMapping.modifiedRange;\n    if ((originalRange.endColumn !== 1 || modifiedRange.endColumn !== 1) &&\n        originalRange.endColumn === original.getLineMaxColumn(originalRange.endLineNumber)\n        && modifiedRange.endColumn === modified.getLineMaxColumn(modifiedRange.endLineNumber)\n        && originalRange.endLineNumber < original.getLineCount()\n        && modifiedRange.endLineNumber < modified.getLineCount()) {\n        originalRange = originalRange.setEndPosition(originalRange.endLineNumber + 1, 1);\n        modifiedRange = modifiedRange.setEndPosition(modifiedRange.endLineNumber + 1, 1);\n    }\n    return new RangeMapping(originalRange, modifiedRange);\n}\nexport class DiffState {\n    static fromDiffResult(result) {\n        return new DiffState(result.changes.map(c => new DiffMapping(c)), result.moves || [], result.identical, result.quitEarly);\n    }\n    constructor(mappings, movedTexts, identical, quitEarly) {\n        this.mappings = mappings;\n        this.movedTexts = movedTexts;\n        this.identical = identical;\n        this.quitEarly = quitEarly;\n    }\n}\nexport class DiffMapping {\n    constructor(lineRangeMapping) {\n        this.lineRangeMapping = lineRangeMapping;\n        /*\n        readonly movedTo: MovedText | undefined,\n        readonly movedFrom: MovedText | undefined,\n\n        if (movedTo) {\n            assertFn(() =>\n                movedTo.lineRangeMapping.modifiedRange.equals(lineRangeMapping.modifiedRange)\n                && lineRangeMapping.originalRange.isEmpty\n                && !movedFrom\n            );\n        } else if (movedFrom) {\n            assertFn(() =>\n                movedFrom.lineRangeMapping.originalRange.equals(lineRangeMapping.originalRange)\n                && lineRangeMapping.modifiedRange.isEmpty\n                && !movedTo\n            );\n        }\n        */\n    }\n}\nexport class UnchangedRegion {\n    static fromDiffs(changes, originalLineCount, modifiedLineCount, minHiddenLineCount, minContext) {\n        const inversedMappings = DetailedLineRangeMapping.inverse(changes, originalLineCount, modifiedLineCount);\n        const result = [];\n        for (const mapping of inversedMappings) {\n            let origStart = mapping.original.startLineNumber;\n            let modStart = mapping.modified.startLineNumber;\n            let length = mapping.original.length;\n            const atStart = origStart === 1 && modStart === 1;\n            const atEnd = origStart + length === originalLineCount + 1 && modStart + length === modifiedLineCount + 1;\n            if ((atStart || atEnd) && length >= minContext + minHiddenLineCount) {\n                if (atStart && !atEnd) {\n                    length -= minContext;\n                }\n                if (atEnd && !atStart) {\n                    origStart += minContext;\n                    modStart += minContext;\n                    length -= minContext;\n                }\n                result.push(new UnchangedRegion(origStart, modStart, length, 0, 0));\n            }\n            else if (length >= minContext * 2 + minHiddenLineCount) {\n                origStart += minContext;\n                modStart += minContext;\n                length -= minContext * 2;\n                result.push(new UnchangedRegion(origStart, modStart, length, 0, 0));\n            }\n        }\n        return result;\n    }\n    get originalUnchangedRange() {\n        return LineRange.ofLength(this.originalLineNumber, this.lineCount);\n    }\n    get modifiedUnchangedRange() {\n        return LineRange.ofLength(this.modifiedLineNumber, this.lineCount);\n    }\n    constructor(originalLineNumber, modifiedLineNumber, lineCount, visibleLineCountTop, visibleLineCountBottom) {\n        this.originalLineNumber = originalLineNumber;\n        this.modifiedLineNumber = modifiedLineNumber;\n        this.lineCount = lineCount;\n        this._visibleLineCountTop = observableValue(this, 0);\n        this.visibleLineCountTop = this._visibleLineCountTop;\n        this._visibleLineCountBottom = observableValue(this, 0);\n        this.visibleLineCountBottom = this._visibleLineCountBottom;\n        this._shouldHideControls = derived(this, reader => /** @description isVisible */ this.visibleLineCountTop.read(reader) + this.visibleLineCountBottom.read(reader) === this.lineCount && !this.isDragged.read(reader));\n        this.isDragged = observableValue(this, undefined);\n        const visibleLineCountTop2 = Math.max(Math.min(visibleLineCountTop, this.lineCount), 0);\n        const visibleLineCountBottom2 = Math.max(Math.min(visibleLineCountBottom, this.lineCount - visibleLineCountTop), 0);\n        softAssert(visibleLineCountTop === visibleLineCountTop2);\n        softAssert(visibleLineCountBottom === visibleLineCountBottom2);\n        this._visibleLineCountTop.set(visibleLineCountTop2, undefined);\n        this._visibleLineCountBottom.set(visibleLineCountBottom2, undefined);\n    }\n    setVisibleRanges(visibleRanges, tx) {\n        const result = [];\n        const hiddenModified = new LineRangeSet(visibleRanges.map(r => r.modified)).subtractFrom(this.modifiedUnchangedRange);\n        let originalStartLineNumber = this.originalLineNumber;\n        let modifiedStartLineNumber = this.modifiedLineNumber;\n        const modifiedEndLineNumberEx = this.modifiedLineNumber + this.lineCount;\n        if (hiddenModified.ranges.length === 0) {\n            this.showAll(tx);\n            result.push(this);\n        }\n        else {\n            let i = 0;\n            for (const r of hiddenModified.ranges) {\n                const isLast = i === hiddenModified.ranges.length - 1;\n                i++;\n                const length = (isLast ? modifiedEndLineNumberEx : r.endLineNumberExclusive) - modifiedStartLineNumber;\n                const newR = new UnchangedRegion(originalStartLineNumber, modifiedStartLineNumber, length, 0, 0);\n                newR.setHiddenModifiedRange(r, tx);\n                result.push(newR);\n                originalStartLineNumber = newR.originalUnchangedRange.endLineNumberExclusive;\n                modifiedStartLineNumber = newR.modifiedUnchangedRange.endLineNumberExclusive;\n            }\n        }\n        return result;\n    }\n    shouldHideControls(reader) {\n        return this._shouldHideControls.read(reader);\n    }\n    getHiddenOriginalRange(reader) {\n        return LineRange.ofLength(this.originalLineNumber + this._visibleLineCountTop.read(reader), this.lineCount - this._visibleLineCountTop.read(reader) - this._visibleLineCountBottom.read(reader));\n    }\n    getHiddenModifiedRange(reader) {\n        return LineRange.ofLength(this.modifiedLineNumber + this._visibleLineCountTop.read(reader), this.lineCount - this._visibleLineCountTop.read(reader) - this._visibleLineCountBottom.read(reader));\n    }\n    setHiddenModifiedRange(range, tx) {\n        const visibleLineCountTop = range.startLineNumber - this.modifiedLineNumber;\n        const visibleLineCountBottom = (this.modifiedLineNumber + this.lineCount) - range.endLineNumberExclusive;\n        this.setState(visibleLineCountTop, visibleLineCountBottom, tx);\n    }\n    getMaxVisibleLineCountTop() {\n        return this.lineCount - this._visibleLineCountBottom.get();\n    }\n    getMaxVisibleLineCountBottom() {\n        return this.lineCount - this._visibleLineCountTop.get();\n    }\n    showMoreAbove(count = 10, tx) {\n        const maxVisibleLineCountTop = this.getMaxVisibleLineCountTop();\n        this._visibleLineCountTop.set(Math.min(this._visibleLineCountTop.get() + count, maxVisibleLineCountTop), tx);\n    }\n    showMoreBelow(count = 10, tx) {\n        const maxVisibleLineCountBottom = this.lineCount - this._visibleLineCountTop.get();\n        this._visibleLineCountBottom.set(Math.min(this._visibleLineCountBottom.get() + count, maxVisibleLineCountBottom), tx);\n    }\n    showAll(tx) {\n        this._visibleLineCountBottom.set(this.lineCount - this._visibleLineCountTop.get(), tx);\n    }\n    showModifiedLine(lineNumber, preference, tx) {\n        const top = lineNumber + 1 - (this.modifiedLineNumber + this._visibleLineCountTop.get());\n        const bottom = (this.modifiedLineNumber - this._visibleLineCountBottom.get() + this.lineCount) - lineNumber;\n        if (preference === 0 /* RevealPreference.FromCloserSide */ && top < bottom || preference === 1 /* RevealPreference.FromTop */) {\n            this._visibleLineCountTop.set(this._visibleLineCountTop.get() + top, tx);\n        }\n        else {\n            this._visibleLineCountBottom.set(this._visibleLineCountBottom.get() + bottom, tx);\n        }\n    }\n    showOriginalLine(lineNumber, preference, tx) {\n        const top = lineNumber - this.originalLineNumber;\n        const bottom = (this.originalLineNumber + this.lineCount) - lineNumber;\n        if (preference === 0 /* RevealPreference.FromCloserSide */ && top < bottom || preference === 1 /* RevealPreference.FromTop */) {\n            this._visibleLineCountTop.set(Math.min(this._visibleLineCountTop.get() + bottom - top, this.getMaxVisibleLineCountTop()), tx);\n        }\n        else {\n            this._visibleLineCountBottom.set(Math.min(this._visibleLineCountBottom.get() + top - bottom, this.getMaxVisibleLineCountBottom()), tx);\n        }\n    }\n    collapseAll(tx) {\n        this._visibleLineCountTop.set(0, tx);\n        this._visibleLineCountBottom.set(0, tx);\n    }\n    setState(visibleLineCountTop, visibleLineCountBottom, tx) {\n        visibleLineCountTop = Math.max(Math.min(visibleLineCountTop, this.lineCount), 0);\n        visibleLineCountBottom = Math.max(Math.min(visibleLineCountBottom, this.lineCount - visibleLineCountTop), 0);\n        this._visibleLineCountTop.set(visibleLineCountTop, tx);\n        this._visibleLineCountBottom.set(visibleLineCountBottom, tx);\n    }\n}\nfunction applyOriginalEdits(diff, textEdits, originalTextModel, modifiedTextModel) {\n    return undefined;\n    /*\n    TODO@hediet\n    if (textEdits.length === 0) {\n        return diff;\n    }\n\n    const diff2 = flip(diff);\n    const diff3 = applyModifiedEdits(diff2, textEdits, modifiedTextModel, originalTextModel);\n    if (!diff3) {\n        return undefined;\n    }\n    return flip(diff3);*/\n}\n/*\nfunction flip(diff: IDocumentDiff): IDocumentDiff {\n    return {\n        changes: diff.changes.map(c => c.flip()),\n        moves: diff.moves.map(m => m.flip()),\n        identical: diff.identical,\n        quitEarly: diff.quitEarly,\n    };\n}\n*/\nfunction applyModifiedEdits(diff, textEdits, originalTextModel, modifiedTextModel) {\n    return undefined;\n    /*\n    TODO@hediet\n    if (textEdits.length === 0) {\n        return diff;\n    }\n    if (diff.changes.some(c => !c.innerChanges) || diff.moves.length > 0) {\n        // TODO support these cases\n        return undefined;\n    }\n\n    const changes = applyModifiedEditsToLineRangeMappings(diff.changes, textEdits, originalTextModel, modifiedTextModel);\n\n    const moves = diff.moves.map(m => {\n        const newModifiedRange = applyEditToLineRange(m.lineRangeMapping.modified, textEdits);\n        return newModifiedRange ? new MovedText(\n            new SimpleLineRangeMapping(m.lineRangeMapping.original, newModifiedRange),\n            applyModifiedEditsToLineRangeMappings(m.changes, textEdits, originalTextModel, modifiedTextModel),\n        ) : undefined;\n    }).filter(isDefined);\n\n    return {\n        identical: false,\n        quitEarly: false,\n        changes,\n        moves,\n    };*/\n}\n/*\nfunction applyEditToLineRange(range: LineRange, textEdits: TextEditInfo[]): LineRange | undefined {\n    let rangeStartLineNumber = range.startLineNumber;\n    let rangeEndLineNumberEx = range.endLineNumberExclusive;\n\n    for (let i = textEdits.length - 1; i >= 0; i--) {\n        const textEdit = textEdits[i];\n        const textEditStartLineNumber = lengthGetLineCount(textEdit.startOffset) + 1;\n        const textEditEndLineNumber = lengthGetLineCount(textEdit.endOffset) + 1;\n        const newLengthLineCount = lengthGetLineCount(textEdit.newLength);\n        const delta = newLengthLineCount - (textEditEndLineNumber - textEditStartLineNumber);\n\n        if (textEditEndLineNumber < rangeStartLineNumber) {\n            // the text edit is before us\n            rangeStartLineNumber += delta;\n            rangeEndLineNumberEx += delta;\n        } else if (textEditStartLineNumber > rangeEndLineNumberEx) {\n            // the text edit is after us\n            // NOOP\n        } else if (textEditStartLineNumber < rangeStartLineNumber && rangeEndLineNumberEx < textEditEndLineNumber) {\n            // the range is fully contained in the text edit\n            return undefined;\n        } else if (textEditStartLineNumber < rangeStartLineNumber && textEditEndLineNumber <= rangeEndLineNumberEx) {\n            // the text edit ends inside our range\n            rangeStartLineNumber = textEditEndLineNumber + 1;\n            rangeStartLineNumber += delta;\n            rangeEndLineNumberEx += delta;\n        } else if (rangeStartLineNumber <= textEditStartLineNumber && textEditEndLineNumber < rangeStartLineNumber) {\n            // the text edit starts inside our range\n            rangeEndLineNumberEx = textEditStartLineNumber;\n        } else {\n            rangeEndLineNumberEx += delta;\n        }\n    }\n\n    return new LineRange(rangeStartLineNumber, rangeEndLineNumberEx);\n}\n\nfunction applyModifiedEditsToLineRangeMappings(changes: readonly LineRangeMapping[], textEdits: TextEditInfo[], originalTextModel: ITextModel, modifiedTextModel: ITextModel): LineRangeMapping[] {\n    const diffTextEdits = changes.flatMap(c => c.innerChanges!.map(c => new TextEditInfo(\n        positionToLength(c.originalRange.getStartPosition()),\n        positionToLength(c.originalRange.getEndPosition()),\n        lengthOfRange(c.modifiedRange).toLength(),\n    )));\n\n    const combined = combineTextEditInfos(diffTextEdits, textEdits);\n\n    let lastOriginalEndOffset = lengthZero;\n    let lastModifiedEndOffset = lengthZero;\n    const rangeMappings = combined.map(c => {\n        const modifiedStartOffset = lengthAdd(lastModifiedEndOffset, lengthDiffNonNegative(lastOriginalEndOffset, c.startOffset));\n        lastOriginalEndOffset = c.endOffset;\n        lastModifiedEndOffset = lengthAdd(modifiedStartOffset, c.newLength);\n\n        return new RangeMapping(\n            Range.fromPositions(lengthToPosition(c.startOffset), lengthToPosition(c.endOffset)),\n            Range.fromPositions(lengthToPosition(modifiedStartOffset), lengthToPosition(lastModifiedEndOffset)),\n        );\n    });\n\n    const newChanges = lineRangeMappingFromRangeMappings(\n        rangeMappings,\n        originalTextModel.getLinesContent(),\n        modifiedTextModel.getLinesContent(),\n    );\n    return newChanges;\n}\n*/\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/diffEditor/diffEditorWidget.js",
    "content": "var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\n/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { getWindow, h } from '../../../../base/browser/dom.js';\nimport { findLast } from '../../../../base/common/arraysFind.js';\nimport { onUnexpectedError } from '../../../../base/common/errors.js';\nimport { Event } from '../../../../base/common/event.js';\nimport { toDisposable } from '../../../../base/common/lifecycle.js';\nimport { autorun, autorunWithStore, derived, observableFromEvent, observableValue, recomputeInitiallyAndOnChange, subtransaction, transaction } from '../../../../base/common/observable.js';\nimport { derivedDisposable } from '../../../../base/common/observableInternal/derived.js';\nimport './style.css';\nimport { EditorExtensionsRegistry } from '../../editorExtensions.js';\nimport { ICodeEditorService } from '../../services/codeEditorService.js';\nimport { StableEditorScrollState } from '../../stableEditorScroll.js';\nimport { CodeEditorWidget } from '../codeEditor/codeEditorWidget.js';\nimport { AccessibleDiffViewer, AccessibleDiffViewerModelFromEditors } from './components/accessibleDiffViewer.js';\nimport { DiffEditorDecorations } from './components/diffEditorDecorations.js';\nimport { DiffEditorSash, SashLayout } from './components/diffEditorSash.js';\nimport { DiffEditorViewZones } from './components/diffEditorViewZones/diffEditorViewZones.js';\nimport { DiffEditorGutter } from './features/gutterFeature.js';\nimport { HideUnchangedRegionsFeature } from './features/hideUnchangedRegionsFeature.js';\nimport { MovedBlocksLinesFeature } from './features/movedBlocksLinesFeature.js';\nimport { OverviewRulerFeature } from './features/overviewRulerFeature.js';\nimport { RevertButtonsFeature } from './features/revertButtonsFeature.js';\nimport { ObservableElementSizeObserver, applyStyle, applyViewZones, readHotReloadableExport, translatePosition } from './utils.js';\nimport { bindContextKey } from '../../../../platform/observable/common/platformObservableUtils.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { EditorType } from '../../../common/editorCommon.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { AccessibilitySignal, IAccessibilitySignalService } from '../../../../platform/accessibilitySignal/browser/accessibilitySignalService.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { ServiceCollection } from '../../../../platform/instantiation/common/serviceCollection.js';\nimport { IEditorProgressService } from '../../../../platform/progress/common/progress.js';\nimport { DiffEditorEditors } from './components/diffEditorEditors.js';\nimport { DelegatingEditor } from './delegatingEditorImpl.js';\nimport { DiffEditorOptions } from './diffEditorOptions.js';\nimport { DiffEditorViewModel } from './diffEditorViewModel.js';\nlet DiffEditorWidget = class DiffEditorWidget extends DelegatingEditor {\n    get onDidContentSizeChange() { return this._editors.onDidContentSizeChange; }\n    constructor(_domElement, options, codeEditorWidgetOptions, _parentContextKeyService, _parentInstantiationService, codeEditorService, _accessibilitySignalService, _editorProgressService) {\n        var _a;\n        super();\n        this._domElement = _domElement;\n        this._parentContextKeyService = _parentContextKeyService;\n        this._parentInstantiationService = _parentInstantiationService;\n        this._accessibilitySignalService = _accessibilitySignalService;\n        this._editorProgressService = _editorProgressService;\n        this.elements = h('div.monaco-diff-editor.side-by-side', { style: { position: 'relative', height: '100%' } }, [\n            h('div.editor.original@original', { style: { position: 'absolute', height: '100%', } }),\n            h('div.editor.modified@modified', { style: { position: 'absolute', height: '100%', } }),\n            h('div.accessibleDiffViewer@accessibleDiffViewer', { style: { position: 'absolute', height: '100%' } }),\n        ]);\n        this._diffModel = observableValue(this, undefined);\n        this._shouldDisposeDiffModel = false;\n        this.onDidChangeModel = Event.fromObservableLight(this._diffModel);\n        this._contextKeyService = this._register(this._parentContextKeyService.createScoped(this._domElement));\n        this._instantiationService = this._register(this._parentInstantiationService.createChild(new ServiceCollection([IContextKeyService, this._contextKeyService])));\n        this._boundarySashes = observableValue(this, undefined);\n        this._accessibleDiffViewerShouldBeVisible = observableValue(this, false);\n        this._accessibleDiffViewerVisible = derived(this, reader => this._options.onlyShowAccessibleDiffViewer.read(reader)\n            ? true\n            : this._accessibleDiffViewerShouldBeVisible.read(reader));\n        this._movedBlocksLinesPart = observableValue(this, undefined);\n        this._layoutInfo = derived(this, reader => {\n            var _a, _b, _c, _d, _e;\n            const fullWidth = this._rootSizeObserver.width.read(reader);\n            const fullHeight = this._rootSizeObserver.height.read(reader);\n            if (this._rootSizeObserver.automaticLayout) {\n                this.elements.root.style.height = '100%';\n            }\n            else {\n                this.elements.root.style.height = fullHeight + 'px';\n            }\n            const sash = this._sash.read(reader);\n            const gutter = this._gutter.read(reader);\n            const gutterWidth = (_a = gutter === null || gutter === void 0 ? void 0 : gutter.width.read(reader)) !== null && _a !== void 0 ? _a : 0;\n            const overviewRulerPartWidth = (_c = (_b = this._overviewRulerPart.read(reader)) === null || _b === void 0 ? void 0 : _b.width) !== null && _c !== void 0 ? _c : 0;\n            let originalLeft, originalWidth, modifiedLeft, modifiedWidth, gutterLeft;\n            const sideBySide = !!sash;\n            if (sideBySide) {\n                const sashLeft = sash.sashLeft.read(reader);\n                const movedBlocksLinesWidth = (_e = (_d = this._movedBlocksLinesPart.read(reader)) === null || _d === void 0 ? void 0 : _d.width.read(reader)) !== null && _e !== void 0 ? _e : 0;\n                originalLeft = 0;\n                originalWidth = sashLeft - gutterWidth - movedBlocksLinesWidth;\n                gutterLeft = sashLeft - gutterWidth;\n                modifiedLeft = sashLeft;\n                modifiedWidth = fullWidth - modifiedLeft - overviewRulerPartWidth;\n            }\n            else {\n                gutterLeft = 0;\n                originalLeft = gutterWidth;\n                originalWidth = Math.max(5, this._editors.original.getLayoutInfo().decorationsLeft);\n                modifiedLeft = gutterWidth + originalWidth;\n                modifiedWidth = fullWidth - modifiedLeft - overviewRulerPartWidth;\n            }\n            this.elements.original.style.left = originalLeft + 'px';\n            this.elements.original.style.width = originalWidth + 'px';\n            this._editors.original.layout({ width: originalWidth, height: fullHeight }, true);\n            gutter === null || gutter === void 0 ? void 0 : gutter.layout(gutterLeft);\n            this.elements.modified.style.left = modifiedLeft + 'px';\n            this.elements.modified.style.width = modifiedWidth + 'px';\n            this._editors.modified.layout({ width: modifiedWidth, height: fullHeight }, true);\n            return {\n                modifiedEditor: this._editors.modified.getLayoutInfo(),\n                originalEditor: this._editors.original.getLayoutInfo(),\n            };\n        });\n        this._diffValue = this._diffModel.map((m, r) => m === null || m === void 0 ? void 0 : m.diff.read(r));\n        this.onDidUpdateDiff = Event.fromObservableLight(this._diffValue);\n        codeEditorService.willCreateDiffEditor();\n        this._contextKeyService.createKey('isInDiffEditor', true);\n        this._domElement.appendChild(this.elements.root);\n        this._register(toDisposable(() => this._domElement.removeChild(this.elements.root)));\n        this._rootSizeObserver = this._register(new ObservableElementSizeObserver(this.elements.root, options.dimension));\n        this._rootSizeObserver.setAutomaticLayout((_a = options.automaticLayout) !== null && _a !== void 0 ? _a : false);\n        this._options = this._instantiationService.createInstance(DiffEditorOptions, options);\n        this._register(autorun(reader => {\n            this._options.setWidth(this._rootSizeObserver.width.read(reader));\n        }));\n        this._contextKeyService.createKey(EditorContextKeys.isEmbeddedDiffEditor.key, false);\n        this._register(bindContextKey(EditorContextKeys.isEmbeddedDiffEditor, this._contextKeyService, reader => this._options.isInEmbeddedEditor.read(reader)));\n        this._register(bindContextKey(EditorContextKeys.comparingMovedCode, this._contextKeyService, reader => { var _a; return !!((_a = this._diffModel.read(reader)) === null || _a === void 0 ? void 0 : _a.movedTextToCompare.read(reader)); }));\n        this._register(bindContextKey(EditorContextKeys.diffEditorRenderSideBySideInlineBreakpointReached, this._contextKeyService, reader => this._options.couldShowInlineViewBecauseOfSize.read(reader)));\n        this._register(bindContextKey(EditorContextKeys.diffEditorInlineMode, this._contextKeyService, reader => !this._options.renderSideBySide.read(reader)));\n        this._register(bindContextKey(EditorContextKeys.hasChanges, this._contextKeyService, reader => { var _a, _b, _c; return ((_c = (_b = (_a = this._diffModel.read(reader)) === null || _a === void 0 ? void 0 : _a.diff.read(reader)) === null || _b === void 0 ? void 0 : _b.mappings.length) !== null && _c !== void 0 ? _c : 0) > 0; }));\n        this._editors = this._register(this._instantiationService.createInstance(DiffEditorEditors, this.elements.original, this.elements.modified, this._options, codeEditorWidgetOptions, (i, c, o, o2) => this._createInnerEditor(i, c, o, o2)));\n        this._register(bindContextKey(EditorContextKeys.diffEditorOriginalWritable, this._contextKeyService, reader => this._options.originalEditable.read(reader)));\n        this._register(bindContextKey(EditorContextKeys.diffEditorModifiedWritable, this._contextKeyService, reader => !this._options.readOnly.read(reader)));\n        this._register(bindContextKey(EditorContextKeys.diffEditorOriginalUri, this._contextKeyService, reader => { var _a, _b; return (_b = (_a = this._diffModel.read(reader)) === null || _a === void 0 ? void 0 : _a.model.original.uri.toString()) !== null && _b !== void 0 ? _b : ''; }));\n        this._register(bindContextKey(EditorContextKeys.diffEditorModifiedUri, this._contextKeyService, reader => { var _a, _b; return (_b = (_a = this._diffModel.read(reader)) === null || _a === void 0 ? void 0 : _a.model.modified.uri.toString()) !== null && _b !== void 0 ? _b : ''; }));\n        this._overviewRulerPart = derivedDisposable(this, reader => !this._options.renderOverviewRuler.read(reader)\n            ? undefined\n            : this._instantiationService.createInstance(readHotReloadableExport(OverviewRulerFeature, reader), this._editors, this.elements.root, this._diffModel, this._rootSizeObserver.width, this._rootSizeObserver.height, this._layoutInfo.map(i => i.modifiedEditor))).recomputeInitiallyAndOnChange(this._store);\n        const dimensions = {\n            height: this._rootSizeObserver.height,\n            width: this._rootSizeObserver.width.map((w, reader) => { var _a, _b; return w - ((_b = (_a = this._overviewRulerPart.read(reader)) === null || _a === void 0 ? void 0 : _a.width) !== null && _b !== void 0 ? _b : 0); }),\n        };\n        this._sashLayout = new SashLayout(this._options, dimensions);\n        this._sash = derivedDisposable(this, reader => {\n            const showSash = this._options.renderSideBySide.read(reader);\n            this.elements.root.classList.toggle('side-by-side', showSash);\n            return !showSash ? undefined : new DiffEditorSash(this.elements.root, dimensions, this._options.enableSplitViewResizing, this._boundarySashes, this._sashLayout.sashLeft, () => this._sashLayout.resetSash());\n        }).recomputeInitiallyAndOnChange(this._store);\n        const unchangedRangesFeature = derivedDisposable(this, reader => /** @description UnchangedRangesFeature */ this._instantiationService.createInstance(readHotReloadableExport(HideUnchangedRegionsFeature, reader), this._editors, this._diffModel, this._options)).recomputeInitiallyAndOnChange(this._store);\n        derivedDisposable(this, reader => /** @description DiffEditorDecorations */ this._instantiationService.createInstance(readHotReloadableExport(DiffEditorDecorations, reader), this._editors, this._diffModel, this._options, this)).recomputeInitiallyAndOnChange(this._store);\n        const origViewZoneIdsToIgnore = new Set();\n        const modViewZoneIdsToIgnore = new Set();\n        let isUpdatingViewZones = false;\n        const viewZoneManager = derivedDisposable(this, reader => /** @description ViewZoneManager */ this._instantiationService.createInstance(readHotReloadableExport(DiffEditorViewZones, reader), getWindow(this._domElement), this._editors, this._diffModel, this._options, this, () => isUpdatingViewZones || unchangedRangesFeature.get().isUpdatingHiddenAreas, origViewZoneIdsToIgnore, modViewZoneIdsToIgnore)).recomputeInitiallyAndOnChange(this._store);\n        const originalViewZones = derived(this, (reader) => {\n            const orig = viewZoneManager.read(reader).viewZones.read(reader).orig;\n            const orig2 = unchangedRangesFeature.read(reader).viewZones.read(reader).origViewZones;\n            return orig.concat(orig2);\n        });\n        const modifiedViewZones = derived(this, (reader) => {\n            const mod = viewZoneManager.read(reader).viewZones.read(reader).mod;\n            const mod2 = unchangedRangesFeature.read(reader).viewZones.read(reader).modViewZones;\n            return mod.concat(mod2);\n        });\n        this._register(applyViewZones(this._editors.original, originalViewZones, isUpdatingOrigViewZones => {\n            isUpdatingViewZones = isUpdatingOrigViewZones;\n        }, origViewZoneIdsToIgnore));\n        let scrollState;\n        this._register(applyViewZones(this._editors.modified, modifiedViewZones, isUpdatingModViewZones => {\n            isUpdatingViewZones = isUpdatingModViewZones;\n            if (isUpdatingViewZones) {\n                scrollState = StableEditorScrollState.capture(this._editors.modified);\n            }\n            else {\n                scrollState === null || scrollState === void 0 ? void 0 : scrollState.restore(this._editors.modified);\n                scrollState = undefined;\n            }\n        }, modViewZoneIdsToIgnore));\n        this._accessibleDiffViewer = derivedDisposable(this, reader => this._instantiationService.createInstance(readHotReloadableExport(AccessibleDiffViewer, reader), this.elements.accessibleDiffViewer, this._accessibleDiffViewerVisible, (visible, tx) => this._accessibleDiffViewerShouldBeVisible.set(visible, tx), this._options.onlyShowAccessibleDiffViewer.map(v => !v), this._rootSizeObserver.width, this._rootSizeObserver.height, this._diffModel.map((m, r) => { var _a; return (_a = m === null || m === void 0 ? void 0 : m.diff.read(r)) === null || _a === void 0 ? void 0 : _a.mappings.map(m => m.lineRangeMapping); }), new AccessibleDiffViewerModelFromEditors(this._editors))).recomputeInitiallyAndOnChange(this._store);\n        const visibility = this._accessibleDiffViewerVisible.map(v => v ? 'hidden' : 'visible');\n        this._register(applyStyle(this.elements.modified, { visibility }));\n        this._register(applyStyle(this.elements.original, { visibility }));\n        this._createDiffEditorContributions();\n        codeEditorService.addDiffEditor(this);\n        this._gutter = derivedDisposable(this, reader => {\n            return this._options.shouldRenderGutterMenu.read(reader)\n                ? this._instantiationService.createInstance(readHotReloadableExport(DiffEditorGutter, reader), this.elements.root, this._diffModel, this._editors, this._options, this._sashLayout, this._boundarySashes)\n                : undefined;\n        });\n        this._register(recomputeInitiallyAndOnChange(this._layoutInfo));\n        derivedDisposable(this, reader => /** @description MovedBlocksLinesPart */ new (readHotReloadableExport(MovedBlocksLinesFeature, reader))(this.elements.root, this._diffModel, this._layoutInfo.map(i => i.originalEditor), this._layoutInfo.map(i => i.modifiedEditor), this._editors)).recomputeInitiallyAndOnChange(this._store, value => {\n            // This is to break the layout info <-> moved blocks lines part dependency cycle.\n            this._movedBlocksLinesPart.set(value, undefined);\n        });\n        this._register(Event.runAndSubscribe(this._editors.modified.onDidChangeCursorPosition, e => this._handleCursorPositionChange(e, true)));\n        this._register(Event.runAndSubscribe(this._editors.original.onDidChangeCursorPosition, e => this._handleCursorPositionChange(e, false)));\n        const isInitializingDiff = this._diffModel.map(this, (m, reader) => {\n            /** @isInitializingDiff isDiffUpToDate */\n            if (!m) {\n                return undefined;\n            }\n            return m.diff.read(reader) === undefined && !m.isDiffUpToDate.read(reader);\n        });\n        this._register(autorunWithStore((reader, store) => {\n            /** @description DiffEditorWidgetHelper.ShowProgress */\n            if (isInitializingDiff.read(reader) === true) {\n                const r = this._editorProgressService.show(true, 1000);\n                store.add(toDisposable(() => r.done()));\n            }\n        }));\n        this._register(toDisposable(() => {\n            var _a;\n            if (this._shouldDisposeDiffModel) {\n                (_a = this._diffModel.get()) === null || _a === void 0 ? void 0 : _a.dispose();\n            }\n        }));\n        this._register(autorunWithStore((reader, store) => {\n            store.add(new (readHotReloadableExport(RevertButtonsFeature, reader))(this._editors, this._diffModel, this._options, this));\n        }));\n    }\n    _createInnerEditor(instantiationService, container, options, editorWidgetOptions) {\n        const editor = instantiationService.createInstance(CodeEditorWidget, container, options, editorWidgetOptions);\n        return editor;\n    }\n    _createDiffEditorContributions() {\n        const contributions = EditorExtensionsRegistry.getDiffEditorContributions();\n        for (const desc of contributions) {\n            try {\n                this._register(this._instantiationService.createInstance(desc.ctor, this));\n            }\n            catch (err) {\n                onUnexpectedError(err);\n            }\n        }\n    }\n    get _targetEditor() { return this._editors.modified; }\n    getEditorType() { return EditorType.IDiffEditor; }\n    layout(dimension) {\n        this._rootSizeObserver.observe(dimension);\n    }\n    hasTextFocus() { return this._editors.original.hasTextFocus() || this._editors.modified.hasTextFocus(); }\n    saveViewState() {\n        var _a;\n        const originalViewState = this._editors.original.saveViewState();\n        const modifiedViewState = this._editors.modified.saveViewState();\n        return {\n            original: originalViewState,\n            modified: modifiedViewState,\n            modelState: (_a = this._diffModel.get()) === null || _a === void 0 ? void 0 : _a.serializeState(),\n        };\n    }\n    restoreViewState(s) {\n        var _a;\n        if (s && s.original && s.modified) {\n            const diffEditorState = s;\n            this._editors.original.restoreViewState(diffEditorState.original);\n            this._editors.modified.restoreViewState(diffEditorState.modified);\n            if (diffEditorState.modelState) {\n                (_a = this._diffModel.get()) === null || _a === void 0 ? void 0 : _a.restoreSerializedState(diffEditorState.modelState);\n            }\n        }\n    }\n    handleInitialized() {\n        this._editors.original.handleInitialized();\n        this._editors.modified.handleInitialized();\n    }\n    createViewModel(model) {\n        return this._instantiationService.createInstance(DiffEditorViewModel, model, this._options);\n    }\n    getModel() { var _a, _b; return (_b = (_a = this._diffModel.get()) === null || _a === void 0 ? void 0 : _a.model) !== null && _b !== void 0 ? _b : null; }\n    setModel(model, tx) {\n        if (!model && this._diffModel.get()) {\n            // Transitioning from a model to no-model\n            this._accessibleDiffViewer.get().close();\n        }\n        const vm = model ? ('model' in model) ? { model, shouldDispose: false } : { model: this.createViewModel(model), shouldDispose: true } : undefined;\n        if (this._diffModel.get() !== (vm === null || vm === void 0 ? void 0 : vm.model)) {\n            subtransaction(tx, tx => {\n                var _a;\n                /** @description DiffEditorWidget.setModel */\n                observableFromEvent.batchEventsGlobally(tx, () => {\n                    this._editors.original.setModel(vm ? vm.model.model.original : null);\n                    this._editors.modified.setModel(vm ? vm.model.model.modified : null);\n                });\n                const prevValue = this._diffModel.get();\n                const shouldDispose = this._shouldDisposeDiffModel;\n                this._shouldDisposeDiffModel = (_a = vm === null || vm === void 0 ? void 0 : vm.shouldDispose) !== null && _a !== void 0 ? _a : false;\n                this._diffModel.set(vm === null || vm === void 0 ? void 0 : vm.model, tx);\n                if (shouldDispose) {\n                    prevValue === null || prevValue === void 0 ? void 0 : prevValue.dispose();\n                }\n            });\n        }\n    }\n    /**\n     * @param changedOptions Only has values for top-level options that have actually changed.\n     */\n    updateOptions(changedOptions) {\n        this._options.updateOptions(changedOptions);\n    }\n    getContainerDomNode() { return this._domElement; }\n    getOriginalEditor() { return this._editors.original; }\n    getModifiedEditor() { return this._editors.modified; }\n    /**\n     * @deprecated Use `this.getDiffComputationResult().changes2` instead.\n     */\n    getLineChanges() {\n        var _a;\n        const diffState = (_a = this._diffModel.get()) === null || _a === void 0 ? void 0 : _a.diff.get();\n        if (!diffState) {\n            return null;\n        }\n        return toLineChanges(diffState);\n    }\n    revert(diff) {\n        const model = this._diffModel.get();\n        if (!model || !model.isDiffUpToDate.get()) {\n            return;\n        }\n        this._editors.modified.executeEdits('diffEditor', [\n            {\n                range: diff.modified.toExclusiveRange(),\n                text: model.model.original.getValueInRange(diff.original.toExclusiveRange())\n            }\n        ]);\n    }\n    revertRangeMappings(diffs) {\n        const model = this._diffModel.get();\n        if (!model || !model.isDiffUpToDate.get()) {\n            return;\n        }\n        const changes = diffs.map(c => ({\n            range: c.modifiedRange,\n            text: model.model.original.getValueInRange(c.originalRange)\n        }));\n        this._editors.modified.executeEdits('diffEditor', changes);\n    }\n    _goTo(diff) {\n        this._editors.modified.setPosition(new Position(diff.lineRangeMapping.modified.startLineNumber, 1));\n        this._editors.modified.revealRangeInCenter(diff.lineRangeMapping.modified.toExclusiveRange());\n    }\n    goToDiff(target) {\n        var _a, _b, _c, _d;\n        const diffs = (_b = (_a = this._diffModel.get()) === null || _a === void 0 ? void 0 : _a.diff.get()) === null || _b === void 0 ? void 0 : _b.mappings;\n        if (!diffs || diffs.length === 0) {\n            return;\n        }\n        const curLineNumber = this._editors.modified.getPosition().lineNumber;\n        let diff;\n        if (target === 'next') {\n            diff = (_c = diffs.find(d => d.lineRangeMapping.modified.startLineNumber > curLineNumber)) !== null && _c !== void 0 ? _c : diffs[0];\n        }\n        else {\n            diff = (_d = findLast(diffs, d => d.lineRangeMapping.modified.startLineNumber < curLineNumber)) !== null && _d !== void 0 ? _d : diffs[diffs.length - 1];\n        }\n        this._goTo(diff);\n        if (diff.lineRangeMapping.modified.isEmpty) {\n            this._accessibilitySignalService.playSignal(AccessibilitySignal.diffLineDeleted, { source: 'diffEditor.goToDiff' });\n        }\n        else if (diff.lineRangeMapping.original.isEmpty) {\n            this._accessibilitySignalService.playSignal(AccessibilitySignal.diffLineInserted, { source: 'diffEditor.goToDiff' });\n        }\n        else if (diff) {\n            this._accessibilitySignalService.playSignal(AccessibilitySignal.diffLineModified, { source: 'diffEditor.goToDiff' });\n        }\n    }\n    revealFirstDiff() {\n        const diffModel = this._diffModel.get();\n        if (!diffModel) {\n            return;\n        }\n        // wait for the diff computation to finish\n        this.waitForDiff().then(() => {\n            var _a;\n            const diffs = (_a = diffModel.diff.get()) === null || _a === void 0 ? void 0 : _a.mappings;\n            if (!diffs || diffs.length === 0) {\n                return;\n            }\n            this._goTo(diffs[0]);\n        });\n    }\n    accessibleDiffViewerNext() { this._accessibleDiffViewer.get().next(); }\n    accessibleDiffViewerPrev() { this._accessibleDiffViewer.get().prev(); }\n    async waitForDiff() {\n        const diffModel = this._diffModel.get();\n        if (!diffModel) {\n            return;\n        }\n        await diffModel.waitForDiff();\n    }\n    mapToOtherSide() {\n        var _a, _b;\n        const isModifiedFocus = this._editors.modified.hasWidgetFocus();\n        const source = isModifiedFocus ? this._editors.modified : this._editors.original;\n        const destination = isModifiedFocus ? this._editors.original : this._editors.modified;\n        let destinationSelection;\n        const sourceSelection = source.getSelection();\n        if (sourceSelection) {\n            const mappings = (_b = (_a = this._diffModel.get()) === null || _a === void 0 ? void 0 : _a.diff.get()) === null || _b === void 0 ? void 0 : _b.mappings.map(m => isModifiedFocus ? m.lineRangeMapping.flip() : m.lineRangeMapping);\n            if (mappings) {\n                const newRange1 = translatePosition(sourceSelection.getStartPosition(), mappings);\n                const newRange2 = translatePosition(sourceSelection.getEndPosition(), mappings);\n                destinationSelection = Range.plusRange(newRange1, newRange2);\n            }\n        }\n        return { destination, destinationSelection };\n    }\n    switchSide() {\n        const { destination, destinationSelection } = this.mapToOtherSide();\n        destination.focus();\n        if (destinationSelection) {\n            destination.setSelection(destinationSelection);\n        }\n    }\n    exitCompareMove() {\n        const model = this._diffModel.get();\n        if (!model) {\n            return;\n        }\n        model.movedTextToCompare.set(undefined, undefined);\n    }\n    collapseAllUnchangedRegions() {\n        var _a;\n        const unchangedRegions = (_a = this._diffModel.get()) === null || _a === void 0 ? void 0 : _a.unchangedRegions.get();\n        if (!unchangedRegions) {\n            return;\n        }\n        transaction(tx => {\n            for (const region of unchangedRegions) {\n                region.collapseAll(tx);\n            }\n        });\n    }\n    showAllUnchangedRegions() {\n        var _a;\n        const unchangedRegions = (_a = this._diffModel.get()) === null || _a === void 0 ? void 0 : _a.unchangedRegions.get();\n        if (!unchangedRegions) {\n            return;\n        }\n        transaction(tx => {\n            for (const region of unchangedRegions) {\n                region.showAll(tx);\n            }\n        });\n    }\n    _handleCursorPositionChange(e, isModifiedEditor) {\n        var _a, _b;\n        if ((e === null || e === void 0 ? void 0 : e.reason) === 3 /* CursorChangeReason.Explicit */) {\n            const diff = (_b = (_a = this._diffModel.get()) === null || _a === void 0 ? void 0 : _a.diff.get()) === null || _b === void 0 ? void 0 : _b.mappings.find(m => isModifiedEditor ? m.lineRangeMapping.modified.contains(e.position.lineNumber) : m.lineRangeMapping.original.contains(e.position.lineNumber));\n            if (diff === null || diff === void 0 ? void 0 : diff.lineRangeMapping.modified.isEmpty) {\n                this._accessibilitySignalService.playSignal(AccessibilitySignal.diffLineDeleted, { source: 'diffEditor.cursorPositionChanged' });\n            }\n            else if (diff === null || diff === void 0 ? void 0 : diff.lineRangeMapping.original.isEmpty) {\n                this._accessibilitySignalService.playSignal(AccessibilitySignal.diffLineInserted, { source: 'diffEditor.cursorPositionChanged' });\n            }\n            else if (diff) {\n                this._accessibilitySignalService.playSignal(AccessibilitySignal.diffLineModified, { source: 'diffEditor.cursorPositionChanged' });\n            }\n        }\n    }\n};\nDiffEditorWidget = __decorate([\n    __param(3, IContextKeyService),\n    __param(4, IInstantiationService),\n    __param(5, ICodeEditorService),\n    __param(6, IAccessibilitySignalService),\n    __param(7, IEditorProgressService)\n], DiffEditorWidget);\nexport { DiffEditorWidget };\nfunction toLineChanges(state) {\n    return state.mappings.map(x => {\n        const m = x.lineRangeMapping;\n        let originalStartLineNumber;\n        let originalEndLineNumber;\n        let modifiedStartLineNumber;\n        let modifiedEndLineNumber;\n        let innerChanges = m.innerChanges;\n        if (m.original.isEmpty) {\n            // Insertion\n            originalStartLineNumber = m.original.startLineNumber - 1;\n            originalEndLineNumber = 0;\n            innerChanges = undefined;\n        }\n        else {\n            originalStartLineNumber = m.original.startLineNumber;\n            originalEndLineNumber = m.original.endLineNumberExclusive - 1;\n        }\n        if (m.modified.isEmpty) {\n            // Deletion\n            modifiedStartLineNumber = m.modified.startLineNumber - 1;\n            modifiedEndLineNumber = 0;\n            innerChanges = undefined;\n        }\n        else {\n            modifiedStartLineNumber = m.modified.startLineNumber;\n            modifiedEndLineNumber = m.modified.endLineNumberExclusive - 1;\n        }\n        return {\n            originalStartLineNumber,\n            originalEndLineNumber,\n            modifiedStartLineNumber,\n            modifiedEndLineNumber,\n            charChanges: innerChanges === null || innerChanges === void 0 ? void 0 : innerChanges.map(m => ({\n                originalStartLineNumber: m.originalRange.startLineNumber,\n                originalStartColumn: m.originalRange.startColumn,\n                originalEndLineNumber: m.originalRange.endLineNumber,\n                originalEndColumn: m.originalRange.endColumn,\n                modifiedStartLineNumber: m.modifiedRange.startLineNumber,\n                modifiedStartColumn: m.modifiedRange.startColumn,\n                modifiedEndLineNumber: m.modifiedRange.endLineNumber,\n                modifiedEndColumn: m.modifiedRange.endColumn,\n            }))\n        };\n    });\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/diffEditor/diffProviderFactoryService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar WorkerBasedDocumentDiffProvider_1;\nimport { registerSingleton } from '../../../../platform/instantiation/common/extensions.js';\nimport { IInstantiationService, createDecorator } from '../../../../platform/instantiation/common/instantiation.js';\nimport { Emitter } from '../../../../base/common/event.js';\nimport { StopWatch } from '../../../../base/common/stopwatch.js';\nimport { LineRange } from '../../../common/core/lineRange.js';\nimport { DetailedLineRangeMapping, RangeMapping } from '../../../common/diff/rangeMapping.js';\nimport { IEditorWorkerService } from '../../../common/services/editorWorker.js';\nimport { ITelemetryService } from '../../../../platform/telemetry/common/telemetry.js';\nexport const IDiffProviderFactoryService = createDecorator('diffProviderFactoryService');\nlet WorkerBasedDiffProviderFactoryService = class WorkerBasedDiffProviderFactoryService {\n    constructor(instantiationService) {\n        this.instantiationService = instantiationService;\n    }\n    createDiffProvider(options) {\n        return this.instantiationService.createInstance(WorkerBasedDocumentDiffProvider, options);\n    }\n};\nWorkerBasedDiffProviderFactoryService = __decorate([\n    __param(0, IInstantiationService)\n], WorkerBasedDiffProviderFactoryService);\nexport { WorkerBasedDiffProviderFactoryService };\nregisterSingleton(IDiffProviderFactoryService, WorkerBasedDiffProviderFactoryService, 1 /* InstantiationType.Delayed */);\nlet WorkerBasedDocumentDiffProvider = WorkerBasedDocumentDiffProvider_1 = class WorkerBasedDocumentDiffProvider {\n    constructor(options, editorWorkerService, telemetryService) {\n        this.editorWorkerService = editorWorkerService;\n        this.telemetryService = telemetryService;\n        this.onDidChangeEventEmitter = new Emitter();\n        this.onDidChange = this.onDidChangeEventEmitter.event;\n        this.diffAlgorithm = 'advanced';\n        this.diffAlgorithmOnDidChangeSubscription = undefined;\n        this.setOptions(options);\n    }\n    dispose() {\n        var _a;\n        (_a = this.diffAlgorithmOnDidChangeSubscription) === null || _a === void 0 ? void 0 : _a.dispose();\n    }\n    async computeDiff(original, modified, options, cancellationToken) {\n        var _a, _b;\n        if (typeof this.diffAlgorithm !== 'string') {\n            return this.diffAlgorithm.computeDiff(original, modified, options, cancellationToken);\n        }\n        if (original.isDisposed() || modified.isDisposed()) {\n            // TODO@hediet\n            return {\n                changes: [],\n                identical: true,\n                quitEarly: false,\n                moves: [],\n            };\n        }\n        // This significantly speeds up the case when the original file is empty\n        if (original.getLineCount() === 1 && original.getLineMaxColumn(1) === 1) {\n            if (modified.getLineCount() === 1 && modified.getLineMaxColumn(1) === 1) {\n                return {\n                    changes: [],\n                    identical: true,\n                    quitEarly: false,\n                    moves: [],\n                };\n            }\n            return {\n                changes: [\n                    new DetailedLineRangeMapping(new LineRange(1, 2), new LineRange(1, modified.getLineCount() + 1), [\n                        new RangeMapping(original.getFullModelRange(), modified.getFullModelRange())\n                    ])\n                ],\n                identical: false,\n                quitEarly: false,\n                moves: [],\n            };\n        }\n        const uriKey = JSON.stringify([original.uri.toString(), modified.uri.toString()]);\n        const context = JSON.stringify([original.id, modified.id, original.getAlternativeVersionId(), modified.getAlternativeVersionId(), JSON.stringify(options)]);\n        const c = WorkerBasedDocumentDiffProvider_1.diffCache.get(uriKey);\n        if (c && c.context === context) {\n            return c.result;\n        }\n        const sw = StopWatch.create();\n        const result = await this.editorWorkerService.computeDiff(original.uri, modified.uri, options, this.diffAlgorithm);\n        const timeMs = sw.elapsed();\n        this.telemetryService.publicLog2('diffEditor.computeDiff', {\n            timeMs,\n            timedOut: (_a = result === null || result === void 0 ? void 0 : result.quitEarly) !== null && _a !== void 0 ? _a : true,\n            detectedMoves: options.computeMoves ? ((_b = result === null || result === void 0 ? void 0 : result.moves.length) !== null && _b !== void 0 ? _b : 0) : -1,\n        });\n        if (cancellationToken.isCancellationRequested) {\n            // Text models might be disposed!\n            return {\n                changes: [],\n                identical: false,\n                quitEarly: true,\n                moves: [],\n            };\n        }\n        if (!result) {\n            throw new Error('no diff result available');\n        }\n        // max 10 items in cache\n        if (WorkerBasedDocumentDiffProvider_1.diffCache.size > 10) {\n            WorkerBasedDocumentDiffProvider_1.diffCache.delete(WorkerBasedDocumentDiffProvider_1.diffCache.keys().next().value);\n        }\n        WorkerBasedDocumentDiffProvider_1.diffCache.set(uriKey, { result, context });\n        return result;\n    }\n    setOptions(newOptions) {\n        var _a;\n        let didChange = false;\n        if (newOptions.diffAlgorithm) {\n            if (this.diffAlgorithm !== newOptions.diffAlgorithm) {\n                (_a = this.diffAlgorithmOnDidChangeSubscription) === null || _a === void 0 ? void 0 : _a.dispose();\n                this.diffAlgorithmOnDidChangeSubscription = undefined;\n                this.diffAlgorithm = newOptions.diffAlgorithm;\n                if (typeof newOptions.diffAlgorithm !== 'string') {\n                    this.diffAlgorithmOnDidChangeSubscription = newOptions.diffAlgorithm.onDidChange(() => this.onDidChangeEventEmitter.fire());\n                }\n                didChange = true;\n            }\n        }\n        if (didChange) {\n            this.onDidChangeEventEmitter.fire();\n        }\n    }\n};\nWorkerBasedDocumentDiffProvider.diffCache = new Map();\nWorkerBasedDocumentDiffProvider = WorkerBasedDocumentDiffProvider_1 = __decorate([\n    __param(1, IEditorWorkerService),\n    __param(2, ITelemetryService)\n], WorkerBasedDocumentDiffProvider);\nexport { WorkerBasedDocumentDiffProvider };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/diffEditor/features/gutterFeature.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { EventType, addDisposableListener, h } from '../../../../../base/browser/dom.js';\nimport { Disposable } from '../../../../../base/common/lifecycle.js';\nimport { autorun, autorunWithStore, derived, observableFromEvent, observableValue } from '../../../../../base/common/observable.js';\nimport { derivedDisposable, derivedWithSetter } from '../../../../../base/common/observableInternal/derived.js';\nimport { DiffEditorSash } from '../components/diffEditorSash.js';\nimport { appendRemoveOnDispose, applyStyle, prependRemoveOnDispose } from '../utils.js';\nimport { EditorGutter } from '../utils/editorGutter.js';\nimport { ActionRunnerWithContext } from '../../multiDiffEditor/utils.js';\nimport { LineRange, LineRangeSet } from '../../../../common/core/lineRange.js';\nimport { OffsetRange } from '../../../../common/core/offsetRange.js';\nimport { Range } from '../../../../common/core/range.js';\nimport { TextEdit } from '../../../../common/core/textEdit.js';\nimport { DetailedLineRangeMapping } from '../../../../common/diff/rangeMapping.js';\nimport { TextModelText } from '../../../../common/model/textModelText.js';\nimport { MenuWorkbenchToolBar } from '../../../../../platform/actions/browser/toolbar.js';\nimport { IMenuService, MenuId } from '../../../../../platform/actions/common/actions.js';\nimport { IContextKeyService } from '../../../../../platform/contextkey/common/contextkey.js';\nimport { WorkbenchHoverDelegate } from '../../../../../platform/hover/browser/hover.js';\nimport { IInstantiationService } from '../../../../../platform/instantiation/common/instantiation.js';\nconst emptyArr = [];\nconst width = 35;\nlet DiffEditorGutter = class DiffEditorGutter extends Disposable {\n    constructor(diffEditorRoot, _diffModel, _editors, _options, _sashLayout, _boundarySashes, _instantiationService, _contextKeyService, _menuService) {\n        super();\n        this._diffModel = _diffModel;\n        this._editors = _editors;\n        this._options = _options;\n        this._sashLayout = _sashLayout;\n        this._boundarySashes = _boundarySashes;\n        this._instantiationService = _instantiationService;\n        this._contextKeyService = _contextKeyService;\n        this._menuService = _menuService;\n        this._menu = this._register(this._menuService.createMenu(MenuId.DiffEditorHunkToolbar, this._contextKeyService));\n        this._actions = observableFromEvent(this._menu.onDidChange, () => this._menu.getActions());\n        this._hasActions = this._actions.map(a => a.length > 0);\n        this._showSash = derived(this, reader => this._options.renderSideBySide.read(reader) && this._hasActions.read(reader));\n        this.width = derived(this, reader => this._hasActions.read(reader) ? width : 0);\n        this.elements = h('div.gutter@gutter', { style: { position: 'absolute', height: '100%', width: width + 'px' } }, []);\n        this._currentDiff = derived(this, (reader) => {\n            var _a;\n            const model = this._diffModel.read(reader);\n            if (!model) {\n                return undefined;\n            }\n            const mappings = (_a = model.diff.read(reader)) === null || _a === void 0 ? void 0 : _a.mappings;\n            const cursorPosition = this._editors.modifiedCursor.read(reader);\n            if (!cursorPosition) {\n                return undefined;\n            }\n            return mappings === null || mappings === void 0 ? void 0 : mappings.find(m => m.lineRangeMapping.modified.contains(cursorPosition.lineNumber));\n        });\n        this._selectedDiffs = derived(this, (reader) => {\n            /** @description selectedDiffs */\n            const model = this._diffModel.read(reader);\n            const diff = model === null || model === void 0 ? void 0 : model.diff.read(reader);\n            // Return `emptyArr` because it is a constant. [] is always a new array and would trigger a change.\n            if (!diff) {\n                return emptyArr;\n            }\n            const selections = this._editors.modifiedSelections.read(reader);\n            if (selections.every(s => s.isEmpty())) {\n                return emptyArr;\n            }\n            const selectedLineNumbers = new LineRangeSet(selections.map(s => LineRange.fromRangeInclusive(s)));\n            const selectedMappings = diff.mappings.filter(m => m.lineRangeMapping.innerChanges && selectedLineNumbers.intersects(m.lineRangeMapping.modified));\n            const result = selectedMappings.map(mapping => ({\n                mapping,\n                rangeMappings: mapping.lineRangeMapping.innerChanges.filter(c => selections.some(s => Range.areIntersecting(c.modifiedRange, s)))\n            }));\n            if (result.length === 0 || result.every(r => r.rangeMappings.length === 0)) {\n                return emptyArr;\n            }\n            return result;\n        });\n        this._register(prependRemoveOnDispose(diffEditorRoot, this.elements.root));\n        this._register(addDisposableListener(this.elements.root, 'click', () => {\n            this._editors.modified.focus();\n        }));\n        this._register(applyStyle(this.elements.root, { display: this._hasActions.map(a => a ? 'block' : 'none') }));\n        derivedDisposable(this, reader => {\n            const showSash = this._showSash.read(reader);\n            return !showSash ? undefined : new DiffEditorSash(diffEditorRoot, this._sashLayout.dimensions, this._options.enableSplitViewResizing, this._boundarySashes, derivedWithSetter(this, reader => this._sashLayout.sashLeft.read(reader) - width, (v, tx) => this._sashLayout.sashLeft.set(v + width, tx)), () => this._sashLayout.resetSash());\n        }).recomputeInitiallyAndOnChange(this._store);\n        this._register(new EditorGutter(this._editors.modified, this.elements.root, {\n            getIntersectingGutterItems: (range, reader) => {\n                const model = this._diffModel.read(reader);\n                if (!model) {\n                    return [];\n                }\n                const diffs = model.diff.read(reader);\n                if (!diffs) {\n                    return [];\n                }\n                const selection = this._selectedDiffs.read(reader);\n                if (selection.length > 0) {\n                    const m = DetailedLineRangeMapping.fromRangeMappings(selection.flatMap(s => s.rangeMappings));\n                    return [\n                        new DiffGutterItem(m, true, MenuId.DiffEditorSelectionToolbar, undefined, model.model.original.uri, model.model.modified.uri)\n                    ];\n                }\n                const currentDiff = this._currentDiff.read(reader);\n                return diffs.mappings.map(m => new DiffGutterItem(m.lineRangeMapping.withInnerChangesFromLineRanges(), m.lineRangeMapping === (currentDiff === null || currentDiff === void 0 ? void 0 : currentDiff.lineRangeMapping), MenuId.DiffEditorHunkToolbar, undefined, model.model.original.uri, model.model.modified.uri));\n            },\n            createView: (item, target) => {\n                return this._instantiationService.createInstance(DiffToolBar, item, target, this);\n            },\n        }));\n        this._register(addDisposableListener(this.elements.gutter, EventType.MOUSE_WHEEL, (e) => {\n            if (this._editors.modified.getOption(103 /* EditorOption.scrollbar */).handleMouseWheel) {\n                this._editors.modified.delegateScrollFromMouseWheelEvent(e);\n            }\n        }, { passive: false }));\n    }\n    computeStagedValue(mapping) {\n        var _a;\n        const c = (_a = mapping.innerChanges) !== null && _a !== void 0 ? _a : [];\n        const modified = new TextModelText(this._editors.modifiedModel.get());\n        const original = new TextModelText(this._editors.original.getModel());\n        const edit = new TextEdit(c.map(c => c.toTextEdit(modified)));\n        const value = edit.apply(original);\n        return value;\n    }\n    layout(left) {\n        this.elements.gutter.style.left = left + 'px';\n    }\n};\nDiffEditorGutter = __decorate([\n    __param(6, IInstantiationService),\n    __param(7, IContextKeyService),\n    __param(8, IMenuService)\n], DiffEditorGutter);\nexport { DiffEditorGutter };\nclass DiffGutterItem {\n    constructor(mapping, showAlways, menuId, rangeOverride, originalUri, modifiedUri) {\n        this.mapping = mapping;\n        this.showAlways = showAlways;\n        this.menuId = menuId;\n        this.rangeOverride = rangeOverride;\n        this.originalUri = originalUri;\n        this.modifiedUri = modifiedUri;\n    }\n    get id() { return this.mapping.modified.toString(); }\n    get range() { var _a; return (_a = this.rangeOverride) !== null && _a !== void 0 ? _a : this.mapping.modified; }\n}\nlet DiffToolBar = class DiffToolBar extends Disposable {\n    constructor(_item, target, gutter, instantiationService) {\n        super();\n        this._item = _item;\n        this._elements = h('div.gutterItem', { style: { height: '20px', width: '34px' } }, [\n            h('div.background@background', {}, []),\n            h('div.buttons@buttons', {}, []),\n        ]);\n        this._showAlways = this._item.map(this, item => item.showAlways);\n        this._menuId = this._item.map(this, item => item.menuId);\n        this._isSmall = observableValue(this, false);\n        this._lastItemRange = undefined;\n        this._lastViewRange = undefined;\n        const hoverDelegate = this._register(instantiationService.createInstance(WorkbenchHoverDelegate, 'element', true, { position: { hoverPosition: 1 /* HoverPosition.RIGHT */ } }));\n        this._register(appendRemoveOnDispose(target, this._elements.root));\n        this._register(autorun(reader => {\n            /** @description update showAlways */\n            const showAlways = this._showAlways.read(reader);\n            this._elements.root.classList.toggle('noTransition', true);\n            this._elements.root.classList.toggle('showAlways', showAlways);\n            setTimeout(() => {\n                this._elements.root.classList.toggle('noTransition', false);\n            }, 0);\n        }));\n        this._register(autorunWithStore((reader, store) => {\n            this._elements.buttons.replaceChildren();\n            const i = store.add(instantiationService.createInstance(MenuWorkbenchToolBar, this._elements.buttons, this._menuId.read(reader), {\n                orientation: 1 /* ActionsOrientation.VERTICAL */,\n                hoverDelegate,\n                toolbarOptions: {\n                    primaryGroup: g => g.startsWith('primary'),\n                },\n                overflowBehavior: { maxItems: this._isSmall.read(reader) ? 1 : 3 },\n                hiddenItemStrategy: 0 /* HiddenItemStrategy.Ignore */,\n                actionRunner: new ActionRunnerWithContext(() => {\n                    const item = this._item.get();\n                    const mapping = item.mapping;\n                    return {\n                        mapping,\n                        originalWithModifiedChanges: gutter.computeStagedValue(mapping),\n                        originalUri: item.originalUri,\n                        modifiedUri: item.modifiedUri,\n                    };\n                }),\n                menuOptions: {\n                    shouldForwardArgs: true,\n                },\n            }));\n            store.add(i.onDidChangeMenuItems(() => {\n                if (this._lastItemRange) {\n                    this.layout(this._lastItemRange, this._lastViewRange);\n                }\n            }));\n        }));\n    }\n    layout(itemRange, viewRange) {\n        this._lastItemRange = itemRange;\n        this._lastViewRange = viewRange;\n        let itemHeight = this._elements.buttons.clientHeight;\n        this._isSmall.set(this._item.get().mapping.original.startLineNumber === 1 && itemRange.length < 30, undefined);\n        // Item might have changed\n        itemHeight = this._elements.buttons.clientHeight;\n        const middleHeight = itemRange.length / 2 - itemHeight / 2;\n        const margin = itemHeight;\n        let effectiveCheckboxTop = itemRange.start + middleHeight;\n        const preferredViewPortRange = OffsetRange.tryCreate(margin, viewRange.endExclusive - margin - itemHeight);\n        const preferredParentRange = OffsetRange.tryCreate(itemRange.start + margin, itemRange.endExclusive - itemHeight - margin);\n        if (preferredParentRange && preferredViewPortRange && preferredParentRange.start < preferredParentRange.endExclusive) {\n            effectiveCheckboxTop = preferredViewPortRange.clip(effectiveCheckboxTop);\n            effectiveCheckboxTop = preferredParentRange.clip(effectiveCheckboxTop);\n        }\n        this._elements.buttons.style.top = `${effectiveCheckboxTop - itemRange.start}px`;\n    }\n};\nDiffToolBar = __decorate([\n    __param(3, IInstantiationService)\n], DiffToolBar);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar HideUnchangedRegionsFeature_1;\nimport { $, addDisposableListener, getWindow, h, reset } from '../../../../../base/browser/dom.js';\nimport { renderIcon, renderLabelWithIcons } from '../../../../../base/browser/ui/iconLabel/iconLabels.js';\nimport { Codicon } from '../../../../../base/common/codicons.js';\nimport { MarkdownString } from '../../../../../base/common/htmlContent.js';\nimport { Disposable } from '../../../../../base/common/lifecycle.js';\nimport { autorun, derived, derivedWithStore, observableFromEvent, observableValue, transaction } from '../../../../../base/common/observable.js';\nimport { derivedDisposable } from '../../../../../base/common/observableInternal/derived.js';\nimport { ThemeIcon } from '../../../../../base/common/themables.js';\nimport { isDefined } from '../../../../../base/common/types.js';\nimport { PlaceholderViewZone, ViewZoneOverlayWidget, applyObservableDecorations, applyStyle } from '../utils.js';\nimport { LineRange } from '../../../../common/core/lineRange.js';\nimport { Position } from '../../../../common/core/position.js';\nimport { Range } from '../../../../common/core/range.js';\nimport { SymbolKinds } from '../../../../common/languages.js';\nimport { localize } from '../../../../../nls.js';\nimport { IInstantiationService } from '../../../../../platform/instantiation/common/instantiation.js';\n/**\n * Make sure to add the view zones to the editor!\n */\nlet HideUnchangedRegionsFeature = HideUnchangedRegionsFeature_1 = class HideUnchangedRegionsFeature extends Disposable {\n    static setBreadcrumbsSourceFactory(factory) {\n        this._breadcrumbsSourceFactory.set(factory, undefined);\n    }\n    get isUpdatingHiddenAreas() { return this._isUpdatingHiddenAreas; }\n    constructor(_editors, _diffModel, _options, _instantiationService) {\n        super();\n        this._editors = _editors;\n        this._diffModel = _diffModel;\n        this._options = _options;\n        this._instantiationService = _instantiationService;\n        this._modifiedOutlineSource = derivedDisposable(this, (reader) => {\n            const m = this._editors.modifiedModel.read(reader);\n            const factory = HideUnchangedRegionsFeature_1._breadcrumbsSourceFactory.read(reader);\n            return (!m || !factory) ? undefined : factory(m, this._instantiationService);\n        });\n        this._isUpdatingHiddenAreas = false;\n        this._register(this._editors.original.onDidChangeCursorPosition(e => {\n            if (e.reason === 1 /* CursorChangeReason.ContentFlush */) {\n                return;\n            }\n            const m = this._diffModel.get();\n            transaction(tx => {\n                for (const s of this._editors.original.getSelections() || []) {\n                    m === null || m === void 0 ? void 0 : m.ensureOriginalLineIsVisible(s.getStartPosition().lineNumber, 0 /* RevealPreference.FromCloserSide */, tx);\n                    m === null || m === void 0 ? void 0 : m.ensureOriginalLineIsVisible(s.getEndPosition().lineNumber, 0 /* RevealPreference.FromCloserSide */, tx);\n                }\n            });\n        }));\n        this._register(this._editors.modified.onDidChangeCursorPosition(e => {\n            if (e.reason === 1 /* CursorChangeReason.ContentFlush */) {\n                return;\n            }\n            const m = this._diffModel.get();\n            transaction(tx => {\n                for (const s of this._editors.modified.getSelections() || []) {\n                    m === null || m === void 0 ? void 0 : m.ensureModifiedLineIsVisible(s.getStartPosition().lineNumber, 0 /* RevealPreference.FromCloserSide */, tx);\n                    m === null || m === void 0 ? void 0 : m.ensureModifiedLineIsVisible(s.getEndPosition().lineNumber, 0 /* RevealPreference.FromCloserSide */, tx);\n                }\n            });\n        }));\n        const unchangedRegions = this._diffModel.map((m, reader) => {\n            var _a, _b;\n            const regions = (_a = m === null || m === void 0 ? void 0 : m.unchangedRegions.read(reader)) !== null && _a !== void 0 ? _a : [];\n            if (regions.length === 1 && regions[0].modifiedLineNumber === 1 && regions[0].lineCount === ((_b = this._editors.modifiedModel.read(reader)) === null || _b === void 0 ? void 0 : _b.getLineCount())) {\n                return [];\n            }\n            return regions;\n        });\n        this.viewZones = derivedWithStore(this, (reader, store) => {\n            /** @description view Zones */\n            const modifiedOutlineSource = this._modifiedOutlineSource.read(reader);\n            if (!modifiedOutlineSource) {\n                return { origViewZones: [], modViewZones: [] };\n            }\n            const origViewZones = [];\n            const modViewZones = [];\n            const sideBySide = this._options.renderSideBySide.read(reader);\n            const curUnchangedRegions = unchangedRegions.read(reader);\n            for (const r of curUnchangedRegions) {\n                if (r.shouldHideControls(reader)) {\n                    continue;\n                }\n                {\n                    const d = derived(this, reader => /** @description hiddenOriginalRangeStart */ r.getHiddenOriginalRange(reader).startLineNumber - 1);\n                    const origVz = new PlaceholderViewZone(d, 24);\n                    origViewZones.push(origVz);\n                    store.add(new CollapsedCodeOverlayWidget(this._editors.original, origVz, r, r.originalUnchangedRange, !sideBySide, modifiedOutlineSource, l => this._diffModel.get().ensureModifiedLineIsVisible(l, 2 /* RevealPreference.FromBottom */, undefined), this._options));\n                }\n                {\n                    const d = derived(this, reader => /** @description hiddenModifiedRangeStart */ r.getHiddenModifiedRange(reader).startLineNumber - 1);\n                    const modViewZone = new PlaceholderViewZone(d, 24);\n                    modViewZones.push(modViewZone);\n                    store.add(new CollapsedCodeOverlayWidget(this._editors.modified, modViewZone, r, r.modifiedUnchangedRange, false, modifiedOutlineSource, l => this._diffModel.get().ensureModifiedLineIsVisible(l, 2 /* RevealPreference.FromBottom */, undefined), this._options));\n                }\n            }\n            return { origViewZones, modViewZones, };\n        });\n        const unchangedLinesDecoration = {\n            description: 'unchanged lines',\n            className: 'diff-unchanged-lines',\n            isWholeLine: true,\n        };\n        const unchangedLinesDecorationShow = {\n            description: 'Fold Unchanged',\n            glyphMarginHoverMessage: new MarkdownString(undefined, { isTrusted: true, supportThemeIcons: true })\n                .appendMarkdown(localize('foldUnchanged', 'Fold Unchanged Region')),\n            glyphMarginClassName: 'fold-unchanged ' + ThemeIcon.asClassName(Codicon.fold),\n            zIndex: 10001,\n        };\n        this._register(applyObservableDecorations(this._editors.original, derived(this, reader => {\n            /** @description decorations */\n            const curUnchangedRegions = unchangedRegions.read(reader);\n            const result = curUnchangedRegions.map(r => ({\n                range: r.originalUnchangedRange.toInclusiveRange(),\n                options: unchangedLinesDecoration,\n            }));\n            for (const r of curUnchangedRegions) {\n                if (r.shouldHideControls(reader)) {\n                    result.push({\n                        range: Range.fromPositions(new Position(r.originalLineNumber, 1)),\n                        options: unchangedLinesDecorationShow,\n                    });\n                }\n            }\n            return result;\n        })));\n        this._register(applyObservableDecorations(this._editors.modified, derived(this, reader => {\n            /** @description decorations */\n            const curUnchangedRegions = unchangedRegions.read(reader);\n            const result = curUnchangedRegions.map(r => ({\n                range: r.modifiedUnchangedRange.toInclusiveRange(),\n                options: unchangedLinesDecoration,\n            }));\n            for (const r of curUnchangedRegions) {\n                if (r.shouldHideControls(reader)) {\n                    result.push({\n                        range: LineRange.ofLength(r.modifiedLineNumber, 1).toInclusiveRange(),\n                        options: unchangedLinesDecorationShow,\n                    });\n                }\n            }\n            return result;\n        })));\n        this._register(autorun((reader) => {\n            /** @description update folded unchanged regions */\n            const curUnchangedRegions = unchangedRegions.read(reader);\n            this._isUpdatingHiddenAreas = true;\n            try {\n                this._editors.original.setHiddenAreas(curUnchangedRegions.map(r => r.getHiddenOriginalRange(reader).toInclusiveRange()).filter(isDefined));\n                this._editors.modified.setHiddenAreas(curUnchangedRegions.map(r => r.getHiddenModifiedRange(reader).toInclusiveRange()).filter(isDefined));\n            }\n            finally {\n                this._isUpdatingHiddenAreas = false;\n            }\n        }));\n        this._register(this._editors.modified.onMouseUp(event => {\n            var _a;\n            if (!event.event.rightButton && event.target.position && ((_a = event.target.element) === null || _a === void 0 ? void 0 : _a.className.includes('fold-unchanged'))) {\n                const lineNumber = event.target.position.lineNumber;\n                const model = this._diffModel.get();\n                if (!model) {\n                    return;\n                }\n                const region = model.unchangedRegions.get().find(r => r.modifiedUnchangedRange.includes(lineNumber));\n                if (!region) {\n                    return;\n                }\n                region.collapseAll(undefined);\n                event.event.stopPropagation();\n                event.event.preventDefault();\n            }\n        }));\n        this._register(this._editors.original.onMouseUp(event => {\n            var _a;\n            if (!event.event.rightButton && event.target.position && ((_a = event.target.element) === null || _a === void 0 ? void 0 : _a.className.includes('fold-unchanged'))) {\n                const lineNumber = event.target.position.lineNumber;\n                const model = this._diffModel.get();\n                if (!model) {\n                    return;\n                }\n                const region = model.unchangedRegions.get().find(r => r.originalUnchangedRange.includes(lineNumber));\n                if (!region) {\n                    return;\n                }\n                region.collapseAll(undefined);\n                event.event.stopPropagation();\n                event.event.preventDefault();\n            }\n        }));\n    }\n};\nHideUnchangedRegionsFeature._breadcrumbsSourceFactory = observableValue('breadcrumbsSourceFactory', undefined);\nHideUnchangedRegionsFeature = HideUnchangedRegionsFeature_1 = __decorate([\n    __param(3, IInstantiationService)\n], HideUnchangedRegionsFeature);\nexport { HideUnchangedRegionsFeature };\nclass CollapsedCodeOverlayWidget extends ViewZoneOverlayWidget {\n    constructor(_editor, _viewZone, _unchangedRegion, _unchangedRegionRange, _hide, _modifiedOutlineSource, _revealModifiedHiddenLine, _options) {\n        const root = h('div.diff-hidden-lines-widget');\n        super(_editor, _viewZone, root.root);\n        this._editor = _editor;\n        this._unchangedRegion = _unchangedRegion;\n        this._unchangedRegionRange = _unchangedRegionRange;\n        this._hide = _hide;\n        this._modifiedOutlineSource = _modifiedOutlineSource;\n        this._revealModifiedHiddenLine = _revealModifiedHiddenLine;\n        this._options = _options;\n        this._nodes = h('div.diff-hidden-lines', [\n            h('div.top@top', { title: localize('diff.hiddenLines.top', 'Click or drag to show more above') }),\n            h('div.center@content', { style: { display: 'flex' } }, [\n                h('div@first', { style: { display: 'flex', justifyContent: 'center', alignItems: 'center', flexShrink: '0' } }, [$('a', { title: localize('showUnchangedRegion', 'Show Unchanged Region'), role: 'button', onclick: () => { this._unchangedRegion.showAll(undefined); } }, ...renderLabelWithIcons('$(unfold)'))]),\n                h('div@others', { style: { display: 'flex', justifyContent: 'center', alignItems: 'center' } }),\n            ]),\n            h('div.bottom@bottom', { title: localize('diff.bottom', 'Click or drag to show more below'), role: 'button' }),\n        ]);\n        root.root.appendChild(this._nodes.root);\n        const layoutInfo = observableFromEvent(this._editor.onDidLayoutChange, () => this._editor.getLayoutInfo());\n        if (!this._hide) {\n            this._register(applyStyle(this._nodes.first, { width: layoutInfo.map((l) => l.contentLeft) }));\n        }\n        else {\n            reset(this._nodes.first);\n        }\n        this._register(autorun(reader => {\n            /** @description Update CollapsedCodeOverlayWidget canMove* css classes */\n            const isFullyRevealed = this._unchangedRegion.visibleLineCountTop.read(reader) + this._unchangedRegion.visibleLineCountBottom.read(reader) === this._unchangedRegion.lineCount;\n            this._nodes.bottom.classList.toggle('canMoveTop', !isFullyRevealed);\n            this._nodes.bottom.classList.toggle('canMoveBottom', this._unchangedRegion.visibleLineCountBottom.read(reader) > 0);\n            this._nodes.top.classList.toggle('canMoveTop', this._unchangedRegion.visibleLineCountTop.read(reader) > 0);\n            this._nodes.top.classList.toggle('canMoveBottom', !isFullyRevealed);\n            const isDragged = this._unchangedRegion.isDragged.read(reader);\n            const domNode = this._editor.getDomNode();\n            if (domNode) {\n                domNode.classList.toggle('draggingUnchangedRegion', !!isDragged);\n                if (isDragged === 'top') {\n                    domNode.classList.toggle('canMoveTop', this._unchangedRegion.visibleLineCountTop.read(reader) > 0);\n                    domNode.classList.toggle('canMoveBottom', !isFullyRevealed);\n                }\n                else if (isDragged === 'bottom') {\n                    domNode.classList.toggle('canMoveTop', !isFullyRevealed);\n                    domNode.classList.toggle('canMoveBottom', this._unchangedRegion.visibleLineCountBottom.read(reader) > 0);\n                }\n                else {\n                    domNode.classList.toggle('canMoveTop', false);\n                    domNode.classList.toggle('canMoveBottom', false);\n                }\n            }\n        }));\n        const editor = this._editor;\n        this._register(addDisposableListener(this._nodes.top, 'mousedown', e => {\n            if (e.button !== 0) {\n                return;\n            }\n            this._nodes.top.classList.toggle('dragging', true);\n            this._nodes.root.classList.toggle('dragging', true);\n            e.preventDefault();\n            const startTop = e.clientY;\n            let didMove = false;\n            const cur = this._unchangedRegion.visibleLineCountTop.get();\n            this._unchangedRegion.isDragged.set('top', undefined);\n            const window = getWindow(this._nodes.top);\n            const mouseMoveListener = addDisposableListener(window, 'mousemove', e => {\n                const currentTop = e.clientY;\n                const delta = currentTop - startTop;\n                didMove = didMove || Math.abs(delta) > 2;\n                const lineDelta = Math.round(delta / editor.getOption(67 /* EditorOption.lineHeight */));\n                const newVal = Math.max(0, Math.min(cur + lineDelta, this._unchangedRegion.getMaxVisibleLineCountTop()));\n                this._unchangedRegion.visibleLineCountTop.set(newVal, undefined);\n            });\n            const mouseUpListener = addDisposableListener(window, 'mouseup', e => {\n                if (!didMove) {\n                    this._unchangedRegion.showMoreAbove(this._options.hideUnchangedRegionsRevealLineCount.get(), undefined);\n                }\n                this._nodes.top.classList.toggle('dragging', false);\n                this._nodes.root.classList.toggle('dragging', false);\n                this._unchangedRegion.isDragged.set(undefined, undefined);\n                mouseMoveListener.dispose();\n                mouseUpListener.dispose();\n            });\n        }));\n        this._register(addDisposableListener(this._nodes.bottom, 'mousedown', e => {\n            if (e.button !== 0) {\n                return;\n            }\n            this._nodes.bottom.classList.toggle('dragging', true);\n            this._nodes.root.classList.toggle('dragging', true);\n            e.preventDefault();\n            const startTop = e.clientY;\n            let didMove = false;\n            const cur = this._unchangedRegion.visibleLineCountBottom.get();\n            this._unchangedRegion.isDragged.set('bottom', undefined);\n            const window = getWindow(this._nodes.bottom);\n            const mouseMoveListener = addDisposableListener(window, 'mousemove', e => {\n                const currentTop = e.clientY;\n                const delta = currentTop - startTop;\n                didMove = didMove || Math.abs(delta) > 2;\n                const lineDelta = Math.round(delta / editor.getOption(67 /* EditorOption.lineHeight */));\n                const newVal = Math.max(0, Math.min(cur - lineDelta, this._unchangedRegion.getMaxVisibleLineCountBottom()));\n                const top = this._unchangedRegionRange.endLineNumberExclusive > editor.getModel().getLineCount()\n                    ? editor.getContentHeight()\n                    : editor.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);\n                this._unchangedRegion.visibleLineCountBottom.set(newVal, undefined);\n                const top2 = this._unchangedRegionRange.endLineNumberExclusive > editor.getModel().getLineCount()\n                    ? editor.getContentHeight()\n                    : editor.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);\n                editor.setScrollTop(editor.getScrollTop() + (top2 - top));\n            });\n            const mouseUpListener = addDisposableListener(window, 'mouseup', e => {\n                this._unchangedRegion.isDragged.set(undefined, undefined);\n                if (!didMove) {\n                    const top = editor.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);\n                    this._unchangedRegion.showMoreBelow(this._options.hideUnchangedRegionsRevealLineCount.get(), undefined);\n                    const top2 = editor.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);\n                    editor.setScrollTop(editor.getScrollTop() + (top2 - top));\n                }\n                this._nodes.bottom.classList.toggle('dragging', false);\n                this._nodes.root.classList.toggle('dragging', false);\n                mouseMoveListener.dispose();\n                mouseUpListener.dispose();\n            });\n        }));\n        this._register(autorun(reader => {\n            /** @description update labels */\n            const children = [];\n            if (!this._hide) {\n                const lineCount = _unchangedRegion.getHiddenModifiedRange(reader).length;\n                const linesHiddenText = localize('hiddenLines', '{0} hidden lines', lineCount);\n                const span = $('span', { title: localize('diff.hiddenLines.expandAll', 'Double click to unfold') }, linesHiddenText);\n                span.addEventListener('dblclick', e => {\n                    if (e.button !== 0) {\n                        return;\n                    }\n                    e.preventDefault();\n                    this._unchangedRegion.showAll(undefined);\n                });\n                children.push(span);\n                const range = this._unchangedRegion.getHiddenModifiedRange(reader);\n                const items = this._modifiedOutlineSource.getBreadcrumbItems(range, reader);\n                if (items.length > 0) {\n                    children.push($('span', undefined, '\\u00a0\\u00a0|\\u00a0\\u00a0'));\n                    for (let i = 0; i < items.length; i++) {\n                        const item = items[i];\n                        const icon = SymbolKinds.toIcon(item.kind);\n                        const divItem = h('div.breadcrumb-item', {\n                            style: { display: 'flex', alignItems: 'center' },\n                        }, [\n                            renderIcon(icon),\n                            '\\u00a0',\n                            item.name,\n                            ...(i === items.length - 1\n                                ? []\n                                : [renderIcon(Codicon.chevronRight)])\n                        ]).root;\n                        children.push(divItem);\n                        divItem.onclick = () => {\n                            this._revealModifiedHiddenLine(item.startLineNumber);\n                        };\n                    }\n                }\n            }\n            reset(this._nodes.others, ...children);\n        }));\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { h } from '../../../../../base/browser/dom.js';\nimport { ActionBar } from '../../../../../base/browser/ui/actionbar/actionbar.js';\nimport { Action } from '../../../../../base/common/actions.js';\nimport { booleanComparator, compareBy, numberComparator, tieBreakComparators } from '../../../../../base/common/arrays.js';\nimport { findMaxIdx } from '../../../../../base/common/arraysFind.js';\nimport { Codicon } from '../../../../../base/common/codicons.js';\nimport { Disposable, toDisposable } from '../../../../../base/common/lifecycle.js';\nimport { autorun, autorunHandleChanges, autorunWithStore, constObservable, derived, derivedWithStore, observableFromEvent, observableSignalFromEvent, observableValue, recomputeInitiallyAndOnChange } from '../../../../../base/common/observable.js';\nimport { ThemeIcon } from '../../../../../base/common/themables.js';\nimport { PlaceholderViewZone, ViewZoneOverlayWidget, applyStyle, applyViewZones } from '../utils.js';\nimport { OffsetRange, OffsetRangeSet } from '../../../../common/core/offsetRange.js';\nimport { localize } from '../../../../../nls.js';\nexport class MovedBlocksLinesFeature extends Disposable {\n    constructor(_rootElement, _diffModel, _originalEditorLayoutInfo, _modifiedEditorLayoutInfo, _editors) {\n        super();\n        this._rootElement = _rootElement;\n        this._diffModel = _diffModel;\n        this._originalEditorLayoutInfo = _originalEditorLayoutInfo;\n        this._modifiedEditorLayoutInfo = _modifiedEditorLayoutInfo;\n        this._editors = _editors;\n        this._originalScrollTop = observableFromEvent(this._editors.original.onDidScrollChange, () => this._editors.original.getScrollTop());\n        this._modifiedScrollTop = observableFromEvent(this._editors.modified.onDidScrollChange, () => this._editors.modified.getScrollTop());\n        this._viewZonesChanged = observableSignalFromEvent('onDidChangeViewZones', this._editors.modified.onDidChangeViewZones);\n        this.width = observableValue(this, 0);\n        this._modifiedViewZonesChangedSignal = observableSignalFromEvent('modified.onDidChangeViewZones', this._editors.modified.onDidChangeViewZones);\n        this._originalViewZonesChangedSignal = observableSignalFromEvent('original.onDidChangeViewZones', this._editors.original.onDidChangeViewZones);\n        this._state = derivedWithStore(this, (reader, store) => {\n            /** @description state */\n            var _a;\n            this._element.replaceChildren();\n            const model = this._diffModel.read(reader);\n            const moves = (_a = model === null || model === void 0 ? void 0 : model.diff.read(reader)) === null || _a === void 0 ? void 0 : _a.movedTexts;\n            if (!moves || moves.length === 0) {\n                this.width.set(0, undefined);\n                return;\n            }\n            this._viewZonesChanged.read(reader);\n            const infoOrig = this._originalEditorLayoutInfo.read(reader);\n            const infoMod = this._modifiedEditorLayoutInfo.read(reader);\n            if (!infoOrig || !infoMod) {\n                this.width.set(0, undefined);\n                return;\n            }\n            this._modifiedViewZonesChangedSignal.read(reader);\n            this._originalViewZonesChangedSignal.read(reader);\n            const lines = moves.map((move) => {\n                function computeLineStart(range, editor) {\n                    const t1 = editor.getTopForLineNumber(range.startLineNumber, true);\n                    const t2 = editor.getTopForLineNumber(range.endLineNumberExclusive, true);\n                    return (t1 + t2) / 2;\n                }\n                const start = computeLineStart(move.lineRangeMapping.original, this._editors.original);\n                const startOffset = this._originalScrollTop.read(reader);\n                const end = computeLineStart(move.lineRangeMapping.modified, this._editors.modified);\n                const endOffset = this._modifiedScrollTop.read(reader);\n                const from = start - startOffset;\n                const to = end - endOffset;\n                const top = Math.min(start, end);\n                const bottom = Math.max(start, end);\n                return { range: new OffsetRange(top, bottom), from, to, fromWithoutScroll: start, toWithoutScroll: end, move };\n            });\n            lines.sort(tieBreakComparators(compareBy(l => l.fromWithoutScroll > l.toWithoutScroll, booleanComparator), compareBy(l => l.fromWithoutScroll > l.toWithoutScroll ? l.fromWithoutScroll : -l.toWithoutScroll, numberComparator)));\n            const layout = LinesLayout.compute(lines.map(l => l.range));\n            const padding = 10;\n            const lineAreaLeft = infoOrig.verticalScrollbarWidth;\n            const lineAreaWidth = (layout.getTrackCount() - 1) * 10 + padding * 2;\n            const width = lineAreaLeft + lineAreaWidth + (infoMod.contentLeft - MovedBlocksLinesFeature.movedCodeBlockPadding);\n            let idx = 0;\n            for (const line of lines) {\n                const track = layout.getTrack(idx);\n                const verticalY = lineAreaLeft + padding + track * 10;\n                const arrowHeight = 15;\n                const arrowWidth = 15;\n                const right = width;\n                const rectWidth = infoMod.glyphMarginWidth + infoMod.lineNumbersWidth;\n                const rectHeight = 18;\n                const rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');\n                rect.classList.add('arrow-rectangle');\n                rect.setAttribute('x', `${right - rectWidth}`);\n                rect.setAttribute('y', `${line.to - rectHeight / 2}`);\n                rect.setAttribute('width', `${rectWidth}`);\n                rect.setAttribute('height', `${rectHeight}`);\n                this._element.appendChild(rect);\n                const g = document.createElementNS('http://www.w3.org/2000/svg', 'g');\n                const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n                path.setAttribute('d', `M ${0} ${line.from} L ${verticalY} ${line.from} L ${verticalY} ${line.to} L ${right - arrowWidth} ${line.to}`);\n                path.setAttribute('fill', 'none');\n                g.appendChild(path);\n                const arrowRight = document.createElementNS('http://www.w3.org/2000/svg', 'polygon');\n                arrowRight.classList.add('arrow');\n                store.add(autorun(reader => {\n                    path.classList.toggle('currentMove', line.move === model.activeMovedText.read(reader));\n                    arrowRight.classList.toggle('currentMove', line.move === model.activeMovedText.read(reader));\n                }));\n                arrowRight.setAttribute('points', `${right - arrowWidth},${line.to - arrowHeight / 2} ${right},${line.to} ${right - arrowWidth},${line.to + arrowHeight / 2}`);\n                g.appendChild(arrowRight);\n                this._element.appendChild(g);\n                /*\n                TODO@hediet\n                path.addEventListener('mouseenter', () => {\n                    model.setHoveredMovedText(line.move);\n                });\n                path.addEventListener('mouseleave', () => {\n                    model.setHoveredMovedText(undefined);\n                });*/\n                idx++;\n            }\n            this.width.set(lineAreaWidth, undefined);\n        });\n        this._element = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n        this._element.setAttribute('class', 'moved-blocks-lines');\n        this._rootElement.appendChild(this._element);\n        this._register(toDisposable(() => this._element.remove()));\n        this._register(autorun(reader => {\n            /** @description update moved blocks lines positioning */\n            const info = this._originalEditorLayoutInfo.read(reader);\n            const info2 = this._modifiedEditorLayoutInfo.read(reader);\n            if (!info || !info2) {\n                return;\n            }\n            this._element.style.left = `${info.width - info.verticalScrollbarWidth}px`;\n            this._element.style.height = `${info.height}px`;\n            this._element.style.width = `${info.verticalScrollbarWidth + info.contentLeft - MovedBlocksLinesFeature.movedCodeBlockPadding + this.width.read(reader)}px`;\n        }));\n        this._register(recomputeInitiallyAndOnChange(this._state));\n        const movedBlockViewZones = derived(reader => {\n            const model = this._diffModel.read(reader);\n            const d = model === null || model === void 0 ? void 0 : model.diff.read(reader);\n            if (!d) {\n                return [];\n            }\n            return d.movedTexts.map(move => ({\n                move,\n                original: new PlaceholderViewZone(constObservable(move.lineRangeMapping.original.startLineNumber - 1), 18),\n                modified: new PlaceholderViewZone(constObservable(move.lineRangeMapping.modified.startLineNumber - 1), 18),\n            }));\n        });\n        this._register(applyViewZones(this._editors.original, movedBlockViewZones.map(zones => /** @description movedBlockViewZones.original */ zones.map(z => z.original))));\n        this._register(applyViewZones(this._editors.modified, movedBlockViewZones.map(zones => /** @description movedBlockViewZones.modified */ zones.map(z => z.modified))));\n        this._register(autorunWithStore((reader, store) => {\n            const blocks = movedBlockViewZones.read(reader);\n            for (const b of blocks) {\n                store.add(new MovedBlockOverlayWidget(this._editors.original, b.original, b.move, 'original', this._diffModel.get()));\n                store.add(new MovedBlockOverlayWidget(this._editors.modified, b.modified, b.move, 'modified', this._diffModel.get()));\n            }\n        }));\n        const originalHasFocus = observableSignalFromEvent('original.onDidFocusEditorWidget', e => this._editors.original.onDidFocusEditorWidget(() => setTimeout(() => e(undefined), 0)));\n        const modifiedHasFocus = observableSignalFromEvent('modified.onDidFocusEditorWidget', e => this._editors.modified.onDidFocusEditorWidget(() => setTimeout(() => e(undefined), 0)));\n        let lastChangedEditor = 'modified';\n        this._register(autorunHandleChanges({\n            createEmptyChangeSummary: () => undefined,\n            handleChange: (ctx, summary) => {\n                if (ctx.didChange(originalHasFocus)) {\n                    lastChangedEditor = 'original';\n                }\n                if (ctx.didChange(modifiedHasFocus)) {\n                    lastChangedEditor = 'modified';\n                }\n                return true;\n            }\n        }, reader => {\n            /** @description MovedBlocksLines.setActiveMovedTextFromCursor */\n            originalHasFocus.read(reader);\n            modifiedHasFocus.read(reader);\n            const m = this._diffModel.read(reader);\n            if (!m) {\n                return;\n            }\n            const diff = m.diff.read(reader);\n            let movedText = undefined;\n            if (diff && lastChangedEditor === 'original') {\n                const originalPos = this._editors.originalCursor.read(reader);\n                if (originalPos) {\n                    movedText = diff.movedTexts.find(m => m.lineRangeMapping.original.contains(originalPos.lineNumber));\n                }\n            }\n            if (diff && lastChangedEditor === 'modified') {\n                const modifiedPos = this._editors.modifiedCursor.read(reader);\n                if (modifiedPos) {\n                    movedText = diff.movedTexts.find(m => m.lineRangeMapping.modified.contains(modifiedPos.lineNumber));\n                }\n            }\n            if (movedText !== m.movedTextToCompare.get()) {\n                m.movedTextToCompare.set(undefined, undefined);\n            }\n            m.setActiveMovedText(movedText);\n        }));\n    }\n}\nMovedBlocksLinesFeature.movedCodeBlockPadding = 4;\nclass LinesLayout {\n    static compute(lines) {\n        const setsPerTrack = [];\n        const trackPerLineIdx = [];\n        for (const line of lines) {\n            let trackIdx = setsPerTrack.findIndex(set => !set.intersectsStrict(line));\n            if (trackIdx === -1) {\n                const maxTrackCount = 6;\n                if (setsPerTrack.length >= maxTrackCount) {\n                    trackIdx = findMaxIdx(setsPerTrack, compareBy(set => set.intersectWithRangeLength(line), numberComparator));\n                }\n                else {\n                    trackIdx = setsPerTrack.length;\n                    setsPerTrack.push(new OffsetRangeSet());\n                }\n            }\n            setsPerTrack[trackIdx].addRange(line);\n            trackPerLineIdx.push(trackIdx);\n        }\n        return new LinesLayout(setsPerTrack.length, trackPerLineIdx);\n    }\n    constructor(_trackCount, trackPerLineIdx) {\n        this._trackCount = _trackCount;\n        this.trackPerLineIdx = trackPerLineIdx;\n    }\n    getTrack(lineIdx) {\n        return this.trackPerLineIdx[lineIdx];\n    }\n    getTrackCount() {\n        return this._trackCount;\n    }\n}\nclass MovedBlockOverlayWidget extends ViewZoneOverlayWidget {\n    constructor(_editor, _viewZone, _move, _kind, _diffModel) {\n        const root = h('div.diff-hidden-lines-widget');\n        super(_editor, _viewZone, root.root);\n        this._editor = _editor;\n        this._move = _move;\n        this._kind = _kind;\n        this._diffModel = _diffModel;\n        this._nodes = h('div.diff-moved-code-block', { style: { marginRight: '4px' } }, [\n            h('div.text-content@textContent'),\n            h('div.action-bar@actionBar'),\n        ]);\n        root.root.appendChild(this._nodes.root);\n        const editorLayout = observableFromEvent(this._editor.onDidLayoutChange, () => this._editor.getLayoutInfo());\n        this._register(applyStyle(this._nodes.root, {\n            paddingRight: editorLayout.map(l => l.verticalScrollbarWidth)\n        }));\n        let text;\n        if (_move.changes.length > 0) {\n            text = this._kind === 'original' ? localize('codeMovedToWithChanges', 'Code moved with changes to line {0}-{1}', this._move.lineRangeMapping.modified.startLineNumber, this._move.lineRangeMapping.modified.endLineNumberExclusive - 1) : localize('codeMovedFromWithChanges', 'Code moved with changes from line {0}-{1}', this._move.lineRangeMapping.original.startLineNumber, this._move.lineRangeMapping.original.endLineNumberExclusive - 1);\n        }\n        else {\n            text = this._kind === 'original' ? localize('codeMovedTo', 'Code moved to line {0}-{1}', this._move.lineRangeMapping.modified.startLineNumber, this._move.lineRangeMapping.modified.endLineNumberExclusive - 1) : localize('codeMovedFrom', 'Code moved from line {0}-{1}', this._move.lineRangeMapping.original.startLineNumber, this._move.lineRangeMapping.original.endLineNumberExclusive - 1);\n        }\n        const actionBar = this._register(new ActionBar(this._nodes.actionBar, {\n            highlightToggledItems: true,\n        }));\n        const caption = new Action('', text, '', false);\n        actionBar.push(caption, { icon: false, label: true });\n        const actionCompare = new Action('', 'Compare', ThemeIcon.asClassName(Codicon.compareChanges), true, () => {\n            this._editor.focus();\n            this._diffModel.movedTextToCompare.set(this._diffModel.movedTextToCompare.get() === _move ? undefined : this._move, undefined);\n        });\n        this._register(autorun(reader => {\n            const isActive = this._diffModel.movedTextToCompare.read(reader) === _move;\n            actionCompare.checked = isActive;\n        }));\n        actionBar.push(actionCompare, { icon: false, label: true });\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/diffEditor/features/overviewRulerFeature.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar OverviewRulerFeature_1;\nimport { EventType, addDisposableListener, addStandardDisposableListener, h } from '../../../../../base/browser/dom.js';\nimport { createFastDomNode } from '../../../../../base/browser/fastDomNode.js';\nimport { ScrollbarState } from '../../../../../base/browser/ui/scrollbar/scrollbarState.js';\nimport { Disposable } from '../../../../../base/common/lifecycle.js';\nimport { autorun, autorunWithStore, derived, observableFromEvent, observableSignalFromEvent } from '../../../../../base/common/observable.js';\nimport { appendRemoveOnDispose } from '../utils.js';\nimport { Position } from '../../../../common/core/position.js';\nimport { OverviewRulerZone } from '../../../../common/viewModel/overviewZoneManager.js';\nimport { defaultInsertColor, defaultRemoveColor, diffInserted, diffOverviewRulerInserted, diffOverviewRulerRemoved, diffRemoved } from '../../../../../platform/theme/common/colorRegistry.js';\nimport { IThemeService } from '../../../../../platform/theme/common/themeService.js';\nlet OverviewRulerFeature = OverviewRulerFeature_1 = class OverviewRulerFeature extends Disposable {\n    constructor(_editors, _rootElement, _diffModel, _rootWidth, _rootHeight, _modifiedEditorLayoutInfo, _themeService) {\n        super();\n        this._editors = _editors;\n        this._rootElement = _rootElement;\n        this._diffModel = _diffModel;\n        this._rootWidth = _rootWidth;\n        this._rootHeight = _rootHeight;\n        this._modifiedEditorLayoutInfo = _modifiedEditorLayoutInfo;\n        this._themeService = _themeService;\n        this.width = OverviewRulerFeature_1.ENTIRE_DIFF_OVERVIEW_WIDTH;\n        const currentColorTheme = observableFromEvent(this._themeService.onDidColorThemeChange, () => this._themeService.getColorTheme());\n        const currentColors = derived(reader => {\n            /** @description colors */\n            const theme = currentColorTheme.read(reader);\n            const insertColor = theme.getColor(diffOverviewRulerInserted) || (theme.getColor(diffInserted) || defaultInsertColor).transparent(2);\n            const removeColor = theme.getColor(diffOverviewRulerRemoved) || (theme.getColor(diffRemoved) || defaultRemoveColor).transparent(2);\n            return { insertColor, removeColor };\n        });\n        const viewportDomElement = createFastDomNode(document.createElement('div'));\n        viewportDomElement.setClassName('diffViewport');\n        viewportDomElement.setPosition('absolute');\n        const diffOverviewRoot = h('div.diffOverview', {\n            style: { position: 'absolute', top: '0px', width: OverviewRulerFeature_1.ENTIRE_DIFF_OVERVIEW_WIDTH + 'px' }\n        }).root;\n        this._register(appendRemoveOnDispose(diffOverviewRoot, viewportDomElement.domNode));\n        this._register(addStandardDisposableListener(diffOverviewRoot, EventType.POINTER_DOWN, (e) => {\n            this._editors.modified.delegateVerticalScrollbarPointerDown(e);\n        }));\n        this._register(addDisposableListener(diffOverviewRoot, EventType.MOUSE_WHEEL, (e) => {\n            this._editors.modified.delegateScrollFromMouseWheelEvent(e);\n        }, { passive: false }));\n        this._register(appendRemoveOnDispose(this._rootElement, diffOverviewRoot));\n        this._register(autorunWithStore((reader, store) => {\n            /** @description recreate overview rules when model changes */\n            const m = this._diffModel.read(reader);\n            const originalOverviewRuler = this._editors.original.createOverviewRuler('original diffOverviewRuler');\n            if (originalOverviewRuler) {\n                store.add(originalOverviewRuler);\n                store.add(appendRemoveOnDispose(diffOverviewRoot, originalOverviewRuler.getDomNode()));\n            }\n            const modifiedOverviewRuler = this._editors.modified.createOverviewRuler('modified diffOverviewRuler');\n            if (modifiedOverviewRuler) {\n                store.add(modifiedOverviewRuler);\n                store.add(appendRemoveOnDispose(diffOverviewRoot, modifiedOverviewRuler.getDomNode()));\n            }\n            if (!originalOverviewRuler || !modifiedOverviewRuler) {\n                // probably no model\n                return;\n            }\n            const origViewZonesChanged = observableSignalFromEvent('viewZoneChanged', this._editors.original.onDidChangeViewZones);\n            const modViewZonesChanged = observableSignalFromEvent('viewZoneChanged', this._editors.modified.onDidChangeViewZones);\n            const origHiddenRangesChanged = observableSignalFromEvent('hiddenRangesChanged', this._editors.original.onDidChangeHiddenAreas);\n            const modHiddenRangesChanged = observableSignalFromEvent('hiddenRangesChanged', this._editors.modified.onDidChangeHiddenAreas);\n            store.add(autorun(reader => {\n                var _a;\n                /** @description set overview ruler zones */\n                origViewZonesChanged.read(reader);\n                modViewZonesChanged.read(reader);\n                origHiddenRangesChanged.read(reader);\n                modHiddenRangesChanged.read(reader);\n                const colors = currentColors.read(reader);\n                const diff = (_a = m === null || m === void 0 ? void 0 : m.diff.read(reader)) === null || _a === void 0 ? void 0 : _a.mappings;\n                function createZones(ranges, color, editor) {\n                    const vm = editor._getViewModel();\n                    if (!vm) {\n                        return [];\n                    }\n                    return ranges\n                        .filter(d => d.length > 0)\n                        .map(r => {\n                        const start = vm.coordinatesConverter.convertModelPositionToViewPosition(new Position(r.startLineNumber, 1));\n                        const end = vm.coordinatesConverter.convertModelPositionToViewPosition(new Position(r.endLineNumberExclusive, 1));\n                        // By computing the lineCount, we won't ask the view model later for the bottom vertical position.\n                        // (The view model will take into account the alignment viewzones, which will give\n                        // modifications and deletetions always the same height.)\n                        const lineCount = end.lineNumber - start.lineNumber;\n                        return new OverviewRulerZone(start.lineNumber, end.lineNumber, lineCount, color.toString());\n                    });\n                }\n                const originalZones = createZones((diff || []).map(d => d.lineRangeMapping.original), colors.removeColor, this._editors.original);\n                const modifiedZones = createZones((diff || []).map(d => d.lineRangeMapping.modified), colors.insertColor, this._editors.modified);\n                originalOverviewRuler === null || originalOverviewRuler === void 0 ? void 0 : originalOverviewRuler.setZones(originalZones);\n                modifiedOverviewRuler === null || modifiedOverviewRuler === void 0 ? void 0 : modifiedOverviewRuler.setZones(modifiedZones);\n            }));\n            store.add(autorun(reader => {\n                /** @description layout overview ruler */\n                const height = this._rootHeight.read(reader);\n                const width = this._rootWidth.read(reader);\n                const layoutInfo = this._modifiedEditorLayoutInfo.read(reader);\n                if (layoutInfo) {\n                    const freeSpace = OverviewRulerFeature_1.ENTIRE_DIFF_OVERVIEW_WIDTH - 2 * OverviewRulerFeature_1.ONE_OVERVIEW_WIDTH;\n                    originalOverviewRuler.setLayout({\n                        top: 0,\n                        height: height,\n                        right: freeSpace + OverviewRulerFeature_1.ONE_OVERVIEW_WIDTH,\n                        width: OverviewRulerFeature_1.ONE_OVERVIEW_WIDTH,\n                    });\n                    modifiedOverviewRuler.setLayout({\n                        top: 0,\n                        height: height,\n                        right: 0,\n                        width: OverviewRulerFeature_1.ONE_OVERVIEW_WIDTH,\n                    });\n                    const scrollTop = this._editors.modifiedScrollTop.read(reader);\n                    const scrollHeight = this._editors.modifiedScrollHeight.read(reader);\n                    const scrollBarOptions = this._editors.modified.getOption(103 /* EditorOption.scrollbar */);\n                    const state = new ScrollbarState(scrollBarOptions.verticalHasArrows ? scrollBarOptions.arrowSize : 0, scrollBarOptions.verticalScrollbarSize, 0, layoutInfo.height, scrollHeight, scrollTop);\n                    viewportDomElement.setTop(state.getSliderPosition());\n                    viewportDomElement.setHeight(state.getSliderSize());\n                }\n                else {\n                    viewportDomElement.setTop(0);\n                    viewportDomElement.setHeight(0);\n                }\n                diffOverviewRoot.style.height = height + 'px';\n                diffOverviewRoot.style.left = (width - OverviewRulerFeature_1.ENTIRE_DIFF_OVERVIEW_WIDTH) + 'px';\n                viewportDomElement.setWidth(OverviewRulerFeature_1.ENTIRE_DIFF_OVERVIEW_WIDTH);\n            }));\n        }));\n    }\n};\nOverviewRulerFeature.ONE_OVERVIEW_WIDTH = 15;\nOverviewRulerFeature.ENTIRE_DIFF_OVERVIEW_WIDTH = OverviewRulerFeature_1.ONE_OVERVIEW_WIDTH * 2;\nOverviewRulerFeature = OverviewRulerFeature_1 = __decorate([\n    __param(6, IThemeService)\n], OverviewRulerFeature);\nexport { OverviewRulerFeature };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/diffEditor/features/revertButtonsFeature.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { addDisposableListener, h, EventType } from '../../../../../base/browser/dom.js';\nimport { renderIcon } from '../../../../../base/browser/ui/iconLabel/iconLabels.js';\nimport { Codicon } from '../../../../../base/common/codicons.js';\nimport { Disposable, toDisposable } from '../../../../../base/common/lifecycle.js';\nimport { autorunWithStore, derived } from '../../../../../base/common/observable.js';\nimport { LineRange, LineRangeSet } from '../../../../common/core/lineRange.js';\nimport { Range } from '../../../../common/core/range.js';\nimport { LineRangeMapping } from '../../../../common/diff/rangeMapping.js';\nimport { GlyphMarginLane } from '../../../../common/model.js';\nimport { localize } from '../../../../../nls.js';\nconst emptyArr = [];\nexport class RevertButtonsFeature extends Disposable {\n    constructor(_editors, _diffModel, _options, _widget) {\n        super();\n        this._editors = _editors;\n        this._diffModel = _diffModel;\n        this._options = _options;\n        this._widget = _widget;\n        this._selectedDiffs = derived(this, (reader) => {\n            /** @description selectedDiffs */\n            const model = this._diffModel.read(reader);\n            const diff = model === null || model === void 0 ? void 0 : model.diff.read(reader);\n            // Return `emptyArr` because it is a constant. [] is always a new array and would trigger a change.\n            if (!diff) {\n                return emptyArr;\n            }\n            const selections = this._editors.modifiedSelections.read(reader);\n            if (selections.every(s => s.isEmpty())) {\n                return emptyArr;\n            }\n            const selectedLineNumbers = new LineRangeSet(selections.map(s => LineRange.fromRangeInclusive(s)));\n            const selectedMappings = diff.mappings.filter(m => m.lineRangeMapping.innerChanges && selectedLineNumbers.intersects(m.lineRangeMapping.modified));\n            const result = selectedMappings.map(mapping => ({\n                mapping,\n                rangeMappings: mapping.lineRangeMapping.innerChanges.filter(c => selections.some(s => Range.areIntersecting(c.modifiedRange, s)))\n            }));\n            if (result.length === 0 || result.every(r => r.rangeMappings.length === 0)) {\n                return emptyArr;\n            }\n            return result;\n        });\n        this._register(autorunWithStore((reader, store) => {\n            if (!this._options.shouldRenderOldRevertArrows.read(reader)) {\n                return;\n            }\n            const model = this._diffModel.read(reader);\n            const diff = model === null || model === void 0 ? void 0 : model.diff.read(reader);\n            if (!model || !diff) {\n                return;\n            }\n            if (model.movedTextToCompare.read(reader)) {\n                return;\n            }\n            const glyphWidgetsModified = [];\n            const selectedDiffs = this._selectedDiffs.read(reader);\n            const selectedDiffsSet = new Set(selectedDiffs.map(d => d.mapping));\n            if (selectedDiffs.length > 0) {\n                // The button to revert the selection\n                const selections = this._editors.modifiedSelections.read(reader);\n                const btn = store.add(new RevertButton(selections[selections.length - 1].positionLineNumber, this._widget, selectedDiffs.flatMap(d => d.rangeMappings), true));\n                this._editors.modified.addGlyphMarginWidget(btn);\n                glyphWidgetsModified.push(btn);\n            }\n            for (const m of diff.mappings) {\n                if (selectedDiffsSet.has(m)) {\n                    continue;\n                }\n                if (!m.lineRangeMapping.modified.isEmpty && m.lineRangeMapping.innerChanges) {\n                    const btn = store.add(new RevertButton(m.lineRangeMapping.modified.startLineNumber, this._widget, m.lineRangeMapping, false));\n                    this._editors.modified.addGlyphMarginWidget(btn);\n                    glyphWidgetsModified.push(btn);\n                }\n            }\n            store.add(toDisposable(() => {\n                for (const w of glyphWidgetsModified) {\n                    this._editors.modified.removeGlyphMarginWidget(w);\n                }\n            }));\n        }));\n    }\n}\nexport class RevertButton extends Disposable {\n    getId() { return this._id; }\n    constructor(_lineNumber, _widget, _diffs, _revertSelection) {\n        super();\n        this._lineNumber = _lineNumber;\n        this._widget = _widget;\n        this._diffs = _diffs;\n        this._revertSelection = _revertSelection;\n        this._id = `revertButton${RevertButton.counter++}`;\n        this._domNode = h('div.revertButton', {\n            title: this._revertSelection\n                ? localize('revertSelectedChanges', 'Revert Selected Changes')\n                : localize('revertChange', 'Revert Change')\n        }, [renderIcon(Codicon.arrowRight)]).root;\n        this._register(addDisposableListener(this._domNode, EventType.MOUSE_DOWN, e => {\n            // don't prevent context menu from showing up\n            if (e.button !== 2) {\n                e.stopPropagation();\n                e.preventDefault();\n            }\n        }));\n        this._register(addDisposableListener(this._domNode, EventType.MOUSE_UP, e => {\n            e.stopPropagation();\n            e.preventDefault();\n        }));\n        this._register(addDisposableListener(this._domNode, EventType.CLICK, (e) => {\n            if (this._diffs instanceof LineRangeMapping) {\n                this._widget.revert(this._diffs);\n            }\n            else {\n                this._widget.revertRangeMappings(this._diffs);\n            }\n            e.stopPropagation();\n            e.preventDefault();\n        }));\n    }\n    /**\n     * Get the dom node of the glyph widget.\n     */\n    getDomNode() {\n        return this._domNode;\n    }\n    /**\n     * Get the placement of the glyph widget.\n     */\n    getPosition() {\n        return {\n            lane: GlyphMarginLane.Right,\n            range: {\n                startColumn: 1,\n                startLineNumber: this._lineNumber,\n                endColumn: 1,\n                endLineNumber: this._lineNumber,\n            },\n            zIndex: 10001,\n        };\n    }\n}\nRevertButton.counter = 0;\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/diffEditor/registrations.contribution.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { ThemeIcon } from '../../../../base/common/themables.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { localize } from '../../../../nls.js';\nimport { registerColor } from '../../../../platform/theme/common/colorRegistry.js';\nimport { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';\nexport const diffMoveBorder = registerColor('diffEditor.move.border', { dark: '#8b8b8b9c', light: '#8b8b8b9c', hcDark: '#8b8b8b9c', hcLight: '#8b8b8b9c', }, localize('diffEditor.move.border', 'The border color for text that got moved in the diff editor.'));\nexport const diffMoveBorderActive = registerColor('diffEditor.moveActive.border', { dark: '#FFA500', light: '#FFA500', hcDark: '#FFA500', hcLight: '#FFA500', }, localize('diffEditor.moveActive.border', 'The active border color for text that got moved in the diff editor.'));\nexport const diffEditorUnchangedRegionShadow = registerColor('diffEditor.unchangedRegionShadow', { dark: '#000000', light: '#737373BF', hcDark: '#000000', hcLight: '#737373BF', }, localize('diffEditor.unchangedRegionShadow', 'The color of the shadow around unchanged region widgets.'));\nexport const diffInsertIcon = registerIcon('diff-insert', Codicon.add, localize('diffInsertIcon', 'Line decoration for inserts in the diff editor.'));\nexport const diffRemoveIcon = registerIcon('diff-remove', Codicon.remove, localize('diffRemoveIcon', 'Line decoration for removals in the diff editor.'));\nexport const diffLineAddDecorationBackgroundWithIndicator = ModelDecorationOptions.register({\n    className: 'line-insert',\n    description: 'line-insert',\n    isWholeLine: true,\n    linesDecorationsClassName: 'insert-sign ' + ThemeIcon.asClassName(diffInsertIcon),\n    marginClassName: 'gutter-insert',\n});\nexport const diffLineDeleteDecorationBackgroundWithIndicator = ModelDecorationOptions.register({\n    className: 'line-delete',\n    description: 'line-delete',\n    isWholeLine: true,\n    linesDecorationsClassName: 'delete-sign ' + ThemeIcon.asClassName(diffRemoveIcon),\n    marginClassName: 'gutter-delete',\n});\nexport const diffLineAddDecorationBackground = ModelDecorationOptions.register({\n    className: 'line-insert',\n    description: 'line-insert',\n    isWholeLine: true,\n    marginClassName: 'gutter-insert',\n});\nexport const diffLineDeleteDecorationBackground = ModelDecorationOptions.register({\n    className: 'line-delete',\n    description: 'line-delete',\n    isWholeLine: true,\n    marginClassName: 'gutter-delete',\n});\nexport const diffAddDecoration = ModelDecorationOptions.register({\n    className: 'char-insert',\n    description: 'char-insert',\n    shouldFillLineOnLineBreak: true,\n});\nexport const diffWholeLineAddDecoration = ModelDecorationOptions.register({\n    className: 'char-insert',\n    description: 'char-insert',\n    isWholeLine: true,\n});\nexport const diffAddDecorationEmpty = ModelDecorationOptions.register({\n    className: 'char-insert diff-range-empty',\n    description: 'char-insert diff-range-empty',\n});\nexport const diffDeleteDecoration = ModelDecorationOptions.register({\n    className: 'char-delete',\n    description: 'char-delete',\n    shouldFillLineOnLineBreak: true,\n});\nexport const diffWholeLineDeleteDecoration = ModelDecorationOptions.register({\n    className: 'char-delete',\n    description: 'char-delete',\n    isWholeLine: true,\n});\nexport const diffDeleteDecorationEmpty = ModelDecorationOptions.register({\n    className: 'char-delete diff-range-empty',\n    description: 'char-delete diff-range-empty',\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/diffEditor/style.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .diff-hidden-lines-widget {\n\twidth: 100%;\n}\n\n.monaco-editor .diff-hidden-lines {\n\theight: 0px; /* The children each have a fixed height, the transform confuses the browser */\n\ttransform: translate(0px, -10px);\n\tfont-size: 13px;\n\tline-height: 14px;\n}\n\n.monaco-editor .diff-hidden-lines:not(.dragging) .top:hover,\n.monaco-editor .diff-hidden-lines:not(.dragging) .bottom:hover,\n.monaco-editor .diff-hidden-lines .top.dragging,\n.monaco-editor .diff-hidden-lines .bottom.dragging {\n\tbackground-color: var(--vscode-focusBorder);\n}\n\n.monaco-editor .diff-hidden-lines .top,\n.monaco-editor .diff-hidden-lines .bottom {\n\ttransition: background-color 0.1s ease-out;\n\theight: 4px;\n\tbackground-color: transparent;\n\tbackground-clip: padding-box;\n\tborder-bottom: 2px solid transparent;\n\tborder-top: 4px solid transparent;\n\t/*cursor: n-resize;*/\n}\n\n.monaco-editor.draggingUnchangedRegion.canMoveTop:not(.canMoveBottom) *,\n.monaco-editor .diff-hidden-lines .top.canMoveTop:not(.canMoveBottom),\n.monaco-editor .diff-hidden-lines .bottom.canMoveTop:not(.canMoveBottom) {\n\tcursor: n-resize !important;\n}\n\n.monaco-editor.draggingUnchangedRegion:not(.canMoveTop).canMoveBottom *,\n.monaco-editor .diff-hidden-lines .top:not(.canMoveTop).canMoveBottom,\n.monaco-editor .diff-hidden-lines .bottom:not(.canMoveTop).canMoveBottom {\n\tcursor: s-resize !important;\n}\n\n.monaco-editor.draggingUnchangedRegion.canMoveTop.canMoveBottom *,\n.monaco-editor .diff-hidden-lines .top.canMoveTop.canMoveBottom,\n.monaco-editor .diff-hidden-lines .bottom.canMoveTop.canMoveBottom {\n\tcursor: ns-resize !important;\n}\n\n.monaco-editor .diff-hidden-lines .top {\n\ttransform: translate(0px, 4px);\n}\n\n.monaco-editor .diff-hidden-lines .bottom {\n\ttransform: translate(0px, -6px);\n}\n\n.monaco-editor .diff-unchanged-lines {\n\tbackground: var(--vscode-diffEditor-unchangedCodeBackground);\n}\n\n.monaco-editor .noModificationsOverlay {\n\tz-index: 1;\n\tbackground: var(--vscode-editor-background);\n\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n}\n\n\n.monaco-editor .diff-hidden-lines .center {\n\tbackground: var(--vscode-diffEditor-unchangedRegionBackground);\n\tcolor: var(--vscode-diffEditor-unchangedRegionForeground);\n\toverflow: hidden;\n\tdisplay: block;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n\n\theight: 24px;\n\tbox-shadow: inset 0 -5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow), inset 0 5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow);\n}\n\n.monaco-editor .diff-hidden-lines .center span.codicon {\n\tvertical-align: middle;\n}\n\n.monaco-editor .diff-hidden-lines .center a:hover .codicon {\n\tcursor: pointer;\n\tcolor: var(--vscode-editorLink-activeForeground) !important;\n}\n\n.monaco-editor .diff-hidden-lines div.breadcrumb-item {\n\tcursor: pointer;\n}\n\n.monaco-editor .diff-hidden-lines div.breadcrumb-item:hover {\n\tcolor: var(--vscode-editorLink-activeForeground);\n}\n\n.monaco-editor .movedOriginal {\n\tborder: 2px solid var(--vscode-diffEditor-move-border);\n}\n\n.monaco-editor .movedModified {\n\tborder: 2px solid var(--vscode-diffEditor-move-border);\n}\n\n.monaco-editor .movedOriginal.currentMove, .monaco-editor .movedModified.currentMove {\n\tborder: 2px solid var(--vscode-diffEditor-moveActive-border);\n}\n\n.monaco-diff-editor .moved-blocks-lines path.currentMove {\n\tstroke: var(--vscode-diffEditor-moveActive-border);\n}\n\n.monaco-diff-editor .moved-blocks-lines path {\n\tpointer-events: visiblestroke;\n}\n\n.monaco-diff-editor .moved-blocks-lines .arrow {\n\tfill: var(--vscode-diffEditor-move-border);\n}\n\n.monaco-diff-editor .moved-blocks-lines .arrow.currentMove {\n\tfill: var(--vscode-diffEditor-moveActive-border);\n}\n\n.monaco-diff-editor .moved-blocks-lines .arrow-rectangle {\n\tfill: var(--vscode-editor-background);\n}\n\n.monaco-diff-editor .moved-blocks-lines {\n\tposition: absolute;\n\tpointer-events: none;\n}\n\n.monaco-diff-editor .moved-blocks-lines path {\n\tfill: none;\n\tstroke: var(--vscode-diffEditor-move-border);\n\tstroke-width: 2;\n}\n\n.monaco-editor .char-delete.diff-range-empty {\n\tmargin-left: -1px;\n\tborder-left: solid var(--vscode-diffEditor-removedTextBackground) 3px;\n}\n\n.monaco-editor .char-insert.diff-range-empty {\n\tborder-left: solid var(--vscode-diffEditor-insertedTextBackground) 3px;\n}\n\n.monaco-editor .fold-unchanged {\n\tcursor: pointer;\n}\n\n.monaco-diff-editor .diff-moved-code-block {\n\tdisplay: flex;\n\tjustify-content: flex-end;\n\tmargin-top: -4px;\n}\n\n.monaco-diff-editor .diff-moved-code-block .action-bar .action-label.codicon {\n\twidth: 12px;\n\theight: 12px;\n\tfont-size: 12px;\n}\n\n/* ---------- DiffEditor ---------- */\n\n.monaco-diff-editor .diffOverview {\n\tz-index: 9;\n}\n\n.monaco-diff-editor .diffOverview .diffViewport {\n\tz-index: 10;\n}\n\n/* colors not externalized: using transparancy on background */\n.monaco-diff-editor.vs\t\t\t.diffOverview { background: rgba(0, 0, 0, 0.03); }\n.monaco-diff-editor.vs-dark\t\t.diffOverview { background: rgba(255, 255, 255, 0.01); }\n\n.monaco-scrollable-element.modified-in-monaco-diff-editor.vs\t\t.scrollbar { background: rgba(0,0,0,0); }\n.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark\t.scrollbar { background: rgba(0,0,0,0); }\n.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black\t.scrollbar { background: none; }\n.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-light\t.scrollbar { background: none; }\n\n.monaco-scrollable-element.modified-in-monaco-diff-editor .slider {\n\tz-index: 10;\n}\n.modified-in-monaco-diff-editor\t\t\t\t.slider.active { background: rgba(171, 171, 171, .4); }\n.modified-in-monaco-diff-editor.hc-black\t.slider.active { background: none; }\n.modified-in-monaco-diff-editor.hc-light\t.slider.active { background: none; }\n\n/* ---------- Diff ---------- */\n\n.monaco-editor .insert-sign,\n.monaco-diff-editor .insert-sign,\n.monaco-editor .delete-sign,\n.monaco-diff-editor .delete-sign {\n\tfont-size: 11px !important;\n\topacity: 0.7 !important;\n\tdisplay: flex !important;\n\talign-items: center;\n}\n.monaco-editor.hc-black .insert-sign,\n.monaco-diff-editor.hc-black .insert-sign,\n.monaco-editor.hc-black .delete-sign,\n.monaco-diff-editor.hc-black .delete-sign,\n.monaco-editor.hc-light .insert-sign,\n.monaco-diff-editor.hc-light .insert-sign,\n.monaco-editor.hc-light .delete-sign,\n.monaco-diff-editor.hc-light .delete-sign {\n\topacity: 1;\n}\n\n.monaco-editor .inline-deleted-margin-view-zone {\n\ttext-align: right;\n}\n.monaco-editor .inline-added-margin-view-zone {\n\ttext-align: right;\n}\n\n.monaco-editor .arrow-revert-change {\n\tz-index: 10;\n\tposition: absolute;\n}\n\n.monaco-editor .arrow-revert-change:hover {\n\tcursor: pointer;\n}\n\n/* ---------- Inline Diff ---------- */\n\n.monaco-editor .view-zones .view-lines .view-line span {\n\tdisplay: inline-block;\n}\n\n.monaco-editor .margin-view-zones .lightbulb-glyph:hover {\n\tcursor: pointer;\n}\n\n.monaco-editor .char-insert, .monaco-diff-editor .char-insert {\n\tbackground-color: var(--vscode-diffEditor-insertedTextBackground);\n}\n\n.monaco-editor .line-insert, .monaco-diff-editor .line-insert {\n\tbackground-color: var(--vscode-diffEditor-insertedLineBackground, var(--vscode-diffEditor-insertedTextBackground));\n}\n\n.monaco-editor .line-insert,\n.monaco-editor .char-insert {\n\tbox-sizing: border-box;\n\tborder: 1px solid var(--vscode-diffEditor-insertedTextBorder);\n}\n.monaco-editor.hc-black .line-insert, .monaco-editor.hc-light .line-insert,\n.monaco-editor.hc-black .char-insert, .monaco-editor.hc-light .char-insert {\n\tborder-style: dashed;\n}\n\n.monaco-editor .line-delete,\n.monaco-editor .char-delete {\n\tbox-sizing: border-box;\n\tborder: 1px solid var(--vscode-diffEditor-removedTextBorder);\n}\n.monaco-editor.hc-black .line-delete, .monaco-editor.hc-light .line-delete,\n.monaco-editor.hc-black .char-delete, .monaco-editor.hc-light .char-delete {\n\tborder-style: dashed;\n}\n\n.monaco-editor .inline-added-margin-view-zone,\n.monaco-editor .gutter-insert, .monaco-diff-editor .gutter-insert {\n\tbackground-color: var(--vscode-diffEditorGutter-insertedLineBackground, var(--vscode-diffEditor-insertedLineBackground), var(--vscode-diffEditor-insertedTextBackground));\n}\n\n.monaco-editor .char-delete, .monaco-diff-editor .char-delete {\n\tbackground-color: var(--vscode-diffEditor-removedTextBackground);\n}\n\n.monaco-editor .line-delete, .monaco-diff-editor .line-delete {\n\tbackground-color: var(--vscode-diffEditor-removedLineBackground, var(--vscode-diffEditor-removedTextBackground));\n}\n\n.monaco-editor .inline-deleted-margin-view-zone,\n.monaco-editor .gutter-delete, .monaco-diff-editor .gutter-delete {\n\tbackground-color: var(--vscode-diffEditorGutter-removedLineBackground, var(--vscode-diffEditor-removedLineBackground), var(--vscode-diffEditor-removedTextBackground));\n}\n\n.monaco-diff-editor.side-by-side .editor.modified {\n\tbox-shadow: -6px 0 5px -5px var(--vscode-scrollbar-shadow);\n\tborder-left: 1px solid var(--vscode-diffEditor-border);\n}\n\n.monaco-diff-editor.side-by-side .editor.original {\n\tbox-shadow: 6px 0 5px -5px var(--vscode-scrollbar-shadow);\n\tborder-right: 1px solid var(--vscode-diffEditor-border);\n}\n\n.monaco-diff-editor .diffViewport {\n\tbackground: var(--vscode-scrollbarSlider-background);\n}\n\n.monaco-diff-editor .diffViewport:hover {\n\tbackground: var(--vscode-scrollbarSlider-hoverBackground);\n}\n\n.monaco-diff-editor .diffViewport:active {\n\tbackground: var(--vscode-scrollbarSlider-activeBackground);\n}\n\n.monaco-editor .diagonal-fill {\n\tbackground-image: linear-gradient(\n\t\t-45deg,\n\t\tvar(--vscode-diffEditor-diagonalFill) 12.5%,\n\t\t#0000 12.5%, #0000 50%,\n\t\tvar(--vscode-diffEditor-diagonalFill) 50%, var(--vscode-diffEditor-diagonalFill) 62.5%,\n\t\t#0000 62.5%, #0000 100%\n\t);\n\tbackground-size: 8px 8px;\n}\n\n.monaco-diff-editor .gutter {\n\tposition: relative;\n\toverflow: hidden;\n\tflex-shrink: 0;\n\tflex-grow: 0;\n\n\t& > div {\n\t\tposition: absolute;\n\t}\n\n\t.gutterItem {\n\t\topacity: 0;\n\t\ttransition: opacity 0.7s;\n\n\t\t&.showAlways {\n\t\t\topacity: 1;\n\t\t\ttransition: none;\n\t\t}\n\n\t\t&.noTransition {\n\t\t\ttransition: none;\n\t\t}\n\t}\n\n\t&:hover .gutterItem {\n\t\topacity: 1;\n\t\ttransition: opacity 0.1s ease-in-out;\n\t}\n\n\t.gutterItem {\n\t\t.background {\n\t\t\tposition: absolute;\n\t\t\theight: 100%;\n\t\t\tleft: 50%;\n\t\t\twidth: 1px;\n\n\t\t\tborder-left: 2px var(--vscode-menu-border) solid;\n\t\t}\n\n\t\t.buttons {\n\t\t\tposition: absolute;\n\t\t\t/*height: 100%;*/\n\t\t\twidth: 100%;\n\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: center;\n\t\t\talign-items: center;\n\n\t\t\t.monaco-toolbar {\n\t\t\t\theight: fit-content;\n\t\t\t\t.monaco-action-bar  {\n\t\t\t\t\tline-height: 1;\n\n\t\t\t\t\t.actions-container {\n\t\t\t\t\t\twidth: fit-content;\n\t\t\t\t\t\tborder-radius: 4px;\n\t\t\t\t\t\tbackground: var(--vscode-editorGutter-commentRangeForeground);\n\n\t\t\t\t\t\t.action-item {\n\t\t\t\t\t\t\t&:hover {\n\t\t\t\t\t\t\t\tbackground: var(--vscode-toolbar-hoverBackground);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.action-label {\n\t\t\t\t\t\t\t\tpadding: 1px 2px;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/diffEditor/utils/editorGutter.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { h, reset } from '../../../../../base/browser/dom.js';\nimport { Disposable, toDisposable } from '../../../../../base/common/lifecycle.js';\nimport { autorun, observableFromEvent, observableSignal, observableSignalFromEvent, observableValue, transaction } from '../../../../../base/common/observable.js';\nimport { LineRange } from '../../../../common/core/lineRange.js';\nimport { OffsetRange } from '../../../../common/core/offsetRange.js';\nexport class EditorGutter extends Disposable {\n    constructor(_editor, _domNode, itemProvider) {\n        super();\n        this._editor = _editor;\n        this._domNode = _domNode;\n        this.itemProvider = itemProvider;\n        this.scrollTop = observableFromEvent(this._editor.onDidScrollChange, (e) => /** @description editor.onDidScrollChange */ this._editor.getScrollTop());\n        this.isScrollTopZero = this.scrollTop.map((scrollTop) => /** @description isScrollTopZero */ scrollTop === 0);\n        this.modelAttached = observableFromEvent(this._editor.onDidChangeModel, (e) => /** @description editor.onDidChangeModel */ this._editor.hasModel());\n        this.editorOnDidChangeViewZones = observableSignalFromEvent('onDidChangeViewZones', this._editor.onDidChangeViewZones);\n        this.editorOnDidContentSizeChange = observableSignalFromEvent('onDidContentSizeChange', this._editor.onDidContentSizeChange);\n        this.domNodeSizeChanged = observableSignal('domNodeSizeChanged');\n        this.views = new Map();\n        this._domNode.className = 'gutter monaco-editor';\n        const scrollDecoration = this._domNode.appendChild(h('div.scroll-decoration', { role: 'presentation', ariaHidden: 'true', style: { width: '100%' } })\n            .root);\n        const o = new ResizeObserver(() => {\n            transaction(tx => {\n                /** @description ResizeObserver: size changed */\n                this.domNodeSizeChanged.trigger(tx);\n            });\n        });\n        o.observe(this._domNode);\n        this._register(toDisposable(() => o.disconnect()));\n        this._register(autorun(reader => {\n            /** @description update scroll decoration */\n            scrollDecoration.className = this.isScrollTopZero.read(reader) ? '' : 'scroll-decoration';\n        }));\n        this._register(autorun(reader => /** @description EditorGutter.Render */ this.render(reader)));\n    }\n    dispose() {\n        super.dispose();\n        reset(this._domNode);\n    }\n    render(reader) {\n        if (!this.modelAttached.read(reader)) {\n            return;\n        }\n        this.domNodeSizeChanged.read(reader);\n        this.editorOnDidChangeViewZones.read(reader);\n        this.editorOnDidContentSizeChange.read(reader);\n        const scrollTop = this.scrollTop.read(reader);\n        const visibleRanges = this._editor.getVisibleRanges();\n        const unusedIds = new Set(this.views.keys());\n        const viewRange = OffsetRange.ofStartAndLength(0, this._domNode.clientHeight);\n        if (!viewRange.isEmpty) {\n            for (const visibleRange of visibleRanges) {\n                const visibleRange2 = new LineRange(visibleRange.startLineNumber, visibleRange.endLineNumber + 1);\n                const gutterItems = this.itemProvider.getIntersectingGutterItems(visibleRange2, reader);\n                transaction(tx => {\n                    /** EditorGutter.render */\n                    for (const gutterItem of gutterItems) {\n                        if (!gutterItem.range.intersect(visibleRange2)) {\n                            continue;\n                        }\n                        unusedIds.delete(gutterItem.id);\n                        let view = this.views.get(gutterItem.id);\n                        if (!view) {\n                            const viewDomNode = document.createElement('div');\n                            this._domNode.appendChild(viewDomNode);\n                            const gutterItemObs = observableValue('item', gutterItem);\n                            const itemView = this.itemProvider.createView(gutterItemObs, viewDomNode);\n                            view = new ManagedGutterItemView(gutterItemObs, itemView, viewDomNode);\n                            this.views.set(gutterItem.id, view);\n                        }\n                        else {\n                            view.item.set(gutterItem, tx);\n                        }\n                        const top = gutterItem.range.startLineNumber <= this._editor.getModel().getLineCount()\n                            ? this._editor.getTopForLineNumber(gutterItem.range.startLineNumber, true) - scrollTop\n                            : this._editor.getBottomForLineNumber(gutterItem.range.startLineNumber - 1, false) - scrollTop;\n                        const bottom = gutterItem.range.isEmpty\n                            // Don't trust that `getBottomForLineNumber` for the previous line equals `getTopForLineNumber` for the current one.\n                            ? top\n                            : (this._editor.getBottomForLineNumber(gutterItem.range.endLineNumberExclusive - 1, true) - scrollTop);\n                        const height = bottom - top;\n                        view.domNode.style.top = `${top}px`;\n                        view.domNode.style.height = `${height}px`;\n                        view.gutterItemView.layout(OffsetRange.ofStartAndLength(top, height), viewRange);\n                    }\n                });\n            }\n        }\n        for (const id of unusedIds) {\n            const view = this.views.get(id);\n            view.gutterItemView.dispose();\n            this._domNode.removeChild(view.domNode);\n            this.views.delete(id);\n        }\n    }\n}\nclass ManagedGutterItemView {\n    constructor(item, gutterItemView, domNode) {\n        this.item = item;\n        this.gutterItemView = gutterItemView;\n        this.domNode = domNode;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/diffEditor/utils.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { findLast } from '../../../../base/common/arraysFind.js';\nimport { CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { isHotReloadEnabled, registerHotReloadHandler } from '../../../../base/common/hotReload.js';\nimport { Disposable, DisposableStore, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { autorun, autorunHandleChanges, autorunOpts, autorunWithStore, observableSignalFromEvent, observableValue, transaction } from '../../../../base/common/observable.js';\nimport { ElementSizeObserver } from '../../config/elementSizeObserver.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { TextLength } from '../../../common/core/textLength.js';\nexport function joinCombine(arr1, arr2, keySelector, combine) {\n    if (arr1.length === 0) {\n        return arr2;\n    }\n    if (arr2.length === 0) {\n        return arr1;\n    }\n    const result = [];\n    let i = 0;\n    let j = 0;\n    while (i < arr1.length && j < arr2.length) {\n        const val1 = arr1[i];\n        const val2 = arr2[j];\n        const key1 = keySelector(val1);\n        const key2 = keySelector(val2);\n        if (key1 < key2) {\n            result.push(val1);\n            i++;\n        }\n        else if (key1 > key2) {\n            result.push(val2);\n            j++;\n        }\n        else {\n            result.push(combine(val1, val2));\n            i++;\n            j++;\n        }\n    }\n    while (i < arr1.length) {\n        result.push(arr1[i]);\n        i++;\n    }\n    while (j < arr2.length) {\n        result.push(arr2[j]);\n        j++;\n    }\n    return result;\n}\n// TODO make utility\nexport function applyObservableDecorations(editor, decorations) {\n    const d = new DisposableStore();\n    const decorationsCollection = editor.createDecorationsCollection();\n    d.add(autorunOpts({ debugName: () => `Apply decorations from ${decorations.debugName}` }, reader => {\n        const d = decorations.read(reader);\n        decorationsCollection.set(d);\n    }));\n    d.add({\n        dispose: () => {\n            decorationsCollection.clear();\n        }\n    });\n    return d;\n}\nexport function appendRemoveOnDispose(parent, child) {\n    parent.appendChild(child);\n    return toDisposable(() => {\n        parent.removeChild(child);\n    });\n}\nexport function prependRemoveOnDispose(parent, child) {\n    parent.prepend(child);\n    return toDisposable(() => {\n        parent.removeChild(child);\n    });\n}\nexport class ObservableElementSizeObserver extends Disposable {\n    get width() { return this._width; }\n    get height() { return this._height; }\n    get automaticLayout() { return this._automaticLayout; }\n    constructor(element, dimension) {\n        super();\n        this._automaticLayout = false;\n        this.elementSizeObserver = this._register(new ElementSizeObserver(element, dimension));\n        this._width = observableValue(this, this.elementSizeObserver.getWidth());\n        this._height = observableValue(this, this.elementSizeObserver.getHeight());\n        this._register(this.elementSizeObserver.onDidChange(e => transaction(tx => {\n            /** @description Set width/height from elementSizeObserver */\n            this._width.set(this.elementSizeObserver.getWidth(), tx);\n            this._height.set(this.elementSizeObserver.getHeight(), tx);\n        })));\n    }\n    observe(dimension) {\n        this.elementSizeObserver.observe(dimension);\n    }\n    setAutomaticLayout(automaticLayout) {\n        this._automaticLayout = automaticLayout;\n        if (automaticLayout) {\n            this.elementSizeObserver.startObserving();\n        }\n        else {\n            this.elementSizeObserver.stopObserving();\n        }\n    }\n}\nexport function animatedObservable(targetWindow, base, store) {\n    let targetVal = base.get();\n    let startVal = targetVal;\n    let curVal = targetVal;\n    const result = observableValue('animatedValue', targetVal);\n    let animationStartMs = -1;\n    const durationMs = 300;\n    let animationFrame = undefined;\n    store.add(autorunHandleChanges({\n        createEmptyChangeSummary: () => ({ animate: false }),\n        handleChange: (ctx, s) => {\n            if (ctx.didChange(base)) {\n                s.animate = s.animate || ctx.change;\n            }\n            return true;\n        }\n    }, (reader, s) => {\n        /** @description update value */\n        if (animationFrame !== undefined) {\n            targetWindow.cancelAnimationFrame(animationFrame);\n            animationFrame = undefined;\n        }\n        startVal = curVal;\n        targetVal = base.read(reader);\n        animationStartMs = Date.now() - (s.animate ? 0 : durationMs);\n        update();\n    }));\n    function update() {\n        const passedMs = Date.now() - animationStartMs;\n        curVal = Math.floor(easeOutExpo(passedMs, startVal, targetVal - startVal, durationMs));\n        if (passedMs < durationMs) {\n            animationFrame = targetWindow.requestAnimationFrame(update);\n        }\n        else {\n            curVal = targetVal;\n        }\n        result.set(curVal, undefined);\n    }\n    return result;\n}\nfunction easeOutExpo(t, b, c, d) {\n    return t === d ? b + c : c * (-Math.pow(2, -10 * t / d) + 1) + b;\n}\nexport class ViewZoneOverlayWidget extends Disposable {\n    constructor(editor, viewZone, htmlElement) {\n        super();\n        this._register(new ManagedOverlayWidget(editor, htmlElement));\n        this._register(applyStyle(htmlElement, {\n            height: viewZone.actualHeight,\n            top: viewZone.actualTop,\n        }));\n    }\n}\nexport class PlaceholderViewZone {\n    get afterLineNumber() { return this._afterLineNumber.get(); }\n    constructor(_afterLineNumber, heightInPx) {\n        this._afterLineNumber = _afterLineNumber;\n        this.heightInPx = heightInPx;\n        this.domNode = document.createElement('div');\n        this._actualTop = observableValue(this, undefined);\n        this._actualHeight = observableValue(this, undefined);\n        this.actualTop = this._actualTop;\n        this.actualHeight = this._actualHeight;\n        this.showInHiddenAreas = true;\n        this.onChange = this._afterLineNumber;\n        this.onDomNodeTop = (top) => {\n            this._actualTop.set(top, undefined);\n        };\n        this.onComputedHeight = (height) => {\n            this._actualHeight.set(height, undefined);\n        };\n    }\n}\nexport class ManagedOverlayWidget {\n    constructor(_editor, _domElement) {\n        this._editor = _editor;\n        this._domElement = _domElement;\n        this._overlayWidgetId = `managedOverlayWidget-${ManagedOverlayWidget._counter++}`;\n        this._overlayWidget = {\n            getId: () => this._overlayWidgetId,\n            getDomNode: () => this._domElement,\n            getPosition: () => null\n        };\n        this._editor.addOverlayWidget(this._overlayWidget);\n    }\n    dispose() {\n        this._editor.removeOverlayWidget(this._overlayWidget);\n    }\n}\nManagedOverlayWidget._counter = 0;\nexport function applyStyle(domNode, style) {\n    return autorun(reader => {\n        /** @description applyStyle */\n        for (let [key, val] of Object.entries(style)) {\n            if (val && typeof val === 'object' && 'read' in val) {\n                val = val.read(reader);\n            }\n            if (typeof val === 'number') {\n                val = `${val}px`;\n            }\n            key = key.replace(/[A-Z]/g, m => '-' + m.toLowerCase());\n            domNode.style[key] = val;\n        }\n    });\n}\nexport function readHotReloadableExport(value, reader) {\n    observeHotReloadableExports([value], reader);\n    return value;\n}\nexport function observeHotReloadableExports(values, reader) {\n    if (isHotReloadEnabled()) {\n        const o = observableSignalFromEvent('reload', event => registerHotReloadHandler(({ oldExports }) => {\n            if (![...Object.values(oldExports)].some(v => values.includes(v))) {\n                return undefined;\n            }\n            return (_newExports) => {\n                event(undefined);\n                return true;\n            };\n        }));\n        o.read(reader);\n    }\n}\nexport function applyViewZones(editor, viewZones, setIsUpdating, zoneIds) {\n    const store = new DisposableStore();\n    const lastViewZoneIds = [];\n    store.add(autorunWithStore((reader, store) => {\n        /** @description applyViewZones */\n        const curViewZones = viewZones.read(reader);\n        const viewZonIdsPerViewZone = new Map();\n        const viewZoneIdPerOnChangeObservable = new Map();\n        // Add/remove view zones\n        if (setIsUpdating) {\n            setIsUpdating(true);\n        }\n        editor.changeViewZones(a => {\n            for (const id of lastViewZoneIds) {\n                a.removeZone(id);\n                zoneIds === null || zoneIds === void 0 ? void 0 : zoneIds.delete(id);\n            }\n            lastViewZoneIds.length = 0;\n            for (const z of curViewZones) {\n                const id = a.addZone(z);\n                if (z.setZoneId) {\n                    z.setZoneId(id);\n                }\n                lastViewZoneIds.push(id);\n                zoneIds === null || zoneIds === void 0 ? void 0 : zoneIds.add(id);\n                viewZonIdsPerViewZone.set(z, id);\n            }\n        });\n        if (setIsUpdating) {\n            setIsUpdating(false);\n        }\n        // Layout zone on change\n        store.add(autorunHandleChanges({\n            createEmptyChangeSummary() {\n                return { zoneIds: [] };\n            },\n            handleChange(context, changeSummary) {\n                const id = viewZoneIdPerOnChangeObservable.get(context.changedObservable);\n                if (id !== undefined) {\n                    changeSummary.zoneIds.push(id);\n                }\n                return true;\n            },\n        }, (reader, changeSummary) => {\n            /** @description layoutZone on change */\n            for (const vz of curViewZones) {\n                if (vz.onChange) {\n                    viewZoneIdPerOnChangeObservable.set(vz.onChange, viewZonIdsPerViewZone.get(vz));\n                    vz.onChange.read(reader);\n                }\n            }\n            if (setIsUpdating) {\n                setIsUpdating(true);\n            }\n            editor.changeViewZones(a => { for (const id of changeSummary.zoneIds) {\n                a.layoutZone(id);\n            } });\n            if (setIsUpdating) {\n                setIsUpdating(false);\n            }\n        }));\n    }));\n    store.add({\n        dispose() {\n            if (setIsUpdating) {\n                setIsUpdating(true);\n            }\n            editor.changeViewZones(a => { for (const id of lastViewZoneIds) {\n                a.removeZone(id);\n            } });\n            zoneIds === null || zoneIds === void 0 ? void 0 : zoneIds.clear();\n            if (setIsUpdating) {\n                setIsUpdating(false);\n            }\n        }\n    });\n    return store;\n}\nexport class DisposableCancellationTokenSource extends CancellationTokenSource {\n    dispose() {\n        super.dispose(true);\n    }\n}\nexport function translatePosition(posInOriginal, mappings) {\n    const mapping = findLast(mappings, m => m.original.startLineNumber <= posInOriginal.lineNumber);\n    if (!mapping) {\n        // No changes before the position\n        return Range.fromPositions(posInOriginal);\n    }\n    if (mapping.original.endLineNumberExclusive <= posInOriginal.lineNumber) {\n        const newLineNumber = posInOriginal.lineNumber - mapping.original.endLineNumberExclusive + mapping.modified.endLineNumberExclusive;\n        return Range.fromPositions(new Position(newLineNumber, posInOriginal.column));\n    }\n    if (!mapping.innerChanges) {\n        // Only for legacy algorithm\n        return Range.fromPositions(new Position(mapping.modified.startLineNumber, 1));\n    }\n    const innerMapping = findLast(mapping.innerChanges, m => m.originalRange.getStartPosition().isBeforeOrEqual(posInOriginal));\n    if (!innerMapping) {\n        const newLineNumber = posInOriginal.lineNumber - mapping.original.startLineNumber + mapping.modified.startLineNumber;\n        return Range.fromPositions(new Position(newLineNumber, posInOriginal.column));\n    }\n    if (innerMapping.originalRange.containsPosition(posInOriginal)) {\n        return innerMapping.modifiedRange;\n    }\n    else {\n        const l = lengthBetweenPositions(innerMapping.originalRange.getEndPosition(), posInOriginal);\n        return Range.fromPositions(l.addToPosition(innerMapping.modifiedRange.getEndPosition()));\n    }\n}\nfunction lengthBetweenPositions(position1, position2) {\n    if (position1.lineNumber === position2.lineNumber) {\n        return new TextLength(0, position2.column - position1.column);\n    }\n    else {\n        return new TextLength(position2.lineNumber - position1.lineNumber, position2.column - 1);\n    }\n}\nexport function filterWithPrevious(arr, filter) {\n    let prev;\n    return arr.filter(cur => {\n        const result = filter(cur, prev);\n        prev = cur;\n        return result;\n    });\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/markdownRenderer/browser/markdownRenderer.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar MarkdownRenderer_1;\nimport { renderMarkdown } from '../../../../../base/browser/markdownRenderer.js';\nimport { createTrustedTypesPolicy } from '../../../../../base/browser/trustedTypes.js';\nimport { onUnexpectedError } from '../../../../../base/common/errors.js';\nimport { Emitter } from '../../../../../base/common/event.js';\nimport { DisposableStore } from '../../../../../base/common/lifecycle.js';\nimport './renderedMarkdown.css';\nimport { applyFontInfo } from '../../../config/domFontInfo.js';\nimport { ILanguageService } from '../../../../common/languages/language.js';\nimport { PLAINTEXT_LANGUAGE_ID } from '../../../../common/languages/modesRegistry.js';\nimport { tokenizeToString } from '../../../../common/languages/textToHtmlTokenizer.js';\nimport { IOpenerService } from '../../../../../platform/opener/common/opener.js';\n/**\n * Markdown renderer that can render codeblocks with the editor mechanics. This\n * renderer should always be preferred.\n */\nlet MarkdownRenderer = MarkdownRenderer_1 = class MarkdownRenderer {\n    constructor(_options, _languageService, _openerService) {\n        this._options = _options;\n        this._languageService = _languageService;\n        this._openerService = _openerService;\n        this._onDidRenderAsync = new Emitter();\n        this.onDidRenderAsync = this._onDidRenderAsync.event;\n    }\n    dispose() {\n        this._onDidRenderAsync.dispose();\n    }\n    render(markdown, options, markedOptions) {\n        if (!markdown) {\n            const element = document.createElement('span');\n            return { element, dispose: () => { } };\n        }\n        const disposables = new DisposableStore();\n        const rendered = disposables.add(renderMarkdown(markdown, { ...this._getRenderOptions(markdown, disposables), ...options }, markedOptions));\n        rendered.element.classList.add('rendered-markdown');\n        return {\n            element: rendered.element,\n            dispose: () => disposables.dispose()\n        };\n    }\n    _getRenderOptions(markdown, disposables) {\n        return {\n            codeBlockRenderer: async (languageAlias, value) => {\n                var _a, _b, _c;\n                // In markdown,\n                // it is possible that we stumble upon language aliases (e.g.js instead of javascript)\n                // it is possible no alias is given in which case we fall back to the current editor lang\n                let languageId;\n                if (languageAlias) {\n                    languageId = this._languageService.getLanguageIdByLanguageName(languageAlias);\n                }\n                else if (this._options.editor) {\n                    languageId = (_a = this._options.editor.getModel()) === null || _a === void 0 ? void 0 : _a.getLanguageId();\n                }\n                if (!languageId) {\n                    languageId = PLAINTEXT_LANGUAGE_ID;\n                }\n                const html = await tokenizeToString(this._languageService, value, languageId);\n                const element = document.createElement('span');\n                element.innerHTML = ((_c = (_b = MarkdownRenderer_1._ttpTokenizer) === null || _b === void 0 ? void 0 : _b.createHTML(html)) !== null && _c !== void 0 ? _c : html);\n                // use \"good\" font\n                if (this._options.editor) {\n                    const fontInfo = this._options.editor.getOption(50 /* EditorOption.fontInfo */);\n                    applyFontInfo(element, fontInfo);\n                }\n                else if (this._options.codeBlockFontFamily) {\n                    element.style.fontFamily = this._options.codeBlockFontFamily;\n                }\n                if (this._options.codeBlockFontSize !== undefined) {\n                    element.style.fontSize = this._options.codeBlockFontSize;\n                }\n                return element;\n            },\n            asyncRenderCallback: () => this._onDidRenderAsync.fire(),\n            actionHandler: {\n                callback: (link) => openLinkFromMarkdown(this._openerService, link, markdown.isTrusted),\n                disposables: disposables\n            }\n        };\n    }\n};\nMarkdownRenderer._ttpTokenizer = createTrustedTypesPolicy('tokenizeToString', {\n    createHTML(html) {\n        return html;\n    }\n});\nMarkdownRenderer = MarkdownRenderer_1 = __decorate([\n    __param(1, ILanguageService),\n    __param(2, IOpenerService)\n], MarkdownRenderer);\nexport { MarkdownRenderer };\nexport async function openLinkFromMarkdown(openerService, link, isTrusted) {\n    try {\n        return await openerService.open(link, {\n            fromUserGesture: true,\n            allowContributedOpeners: true,\n            allowCommands: toAllowCommandsOption(isTrusted),\n        });\n    }\n    catch (e) {\n        onUnexpectedError(e);\n        return false;\n    }\n}\nfunction toAllowCommandsOption(isTrusted) {\n    if (isTrusted === true) {\n        return true; // Allow all commands\n    }\n    if (isTrusted && Array.isArray(isTrusted.enabledCommands)) {\n        return isTrusted.enabledCommands; // Allow subset of commands\n    }\n    return false; // Block commands\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/markdownRenderer/browser/renderedMarkdown.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .rendered-markdown kbd {\n\tbackground-color: var(--vscode-keybindingLabel-background);\n\tcolor: var(--vscode-keybindingLabel-foreground);\n\tborder-style: solid;\n\tborder-width: 1px;\n\tborder-radius: 3px;\n\tborder-color: var(--vscode-keybindingLabel-border);\n\tborder-bottom-color: var(--vscode-keybindingLabel-bottomBorder);\n\tbox-shadow: inset 0 -1px 0 var(--vscode-widget-shadow);\n\tvertical-align: middle;\n\tpadding: 1px 3px;\n}\n\n.rendered-markdown li:has(input[type=checkbox]) {\n\tlist-style-type: none;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/multiDiffEditor/colors.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { localize } from '../../../../nls.js';\nimport { registerColor } from '../../../../platform/theme/common/colorRegistry.js';\nexport const multiDiffEditorHeaderBackground = registerColor('multiDiffEditor.headerBackground', { dark: '#262626', light: 'tab.inactiveBackground', hcDark: 'tab.inactiveBackground', hcLight: 'tab.inactiveBackground', }, localize('multiDiffEditor.headerBackground', 'The background color of the diff editor\\'s header'));\nexport const multiDiffEditorBackground = registerColor('multiDiffEditor.background', { dark: 'editorBackground', light: 'editorBackground', hcDark: 'editorBackground', hcLight: 'editorBackground', }, localize('multiDiffEditor.background', 'The background color of the multi file diff editor'));\nexport const multiDiffEditorBorder = registerColor('multiDiffEditor.border', { dark: 'sideBarSectionHeader.border', light: '#cccccc', hcDark: 'sideBarSectionHeader.border', hcLight: '#cccccc', }, localize('multiDiffEditor.border', 'The border color of the multi file diff editor'));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.js",
    "content": "var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\n/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { h } from '../../../../base/browser/dom.js';\nimport { Button } from '../../../../base/browser/ui/button/button.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { autorun, derived, observableFromEvent } from '../../../../base/common/observable.js';\nimport { globalTransaction, observableValue } from '../../../../base/common/observableInternal/base.js';\nimport { DiffEditorWidget } from '../diffEditor/diffEditorWidget.js';\nimport { MenuWorkbenchToolBar } from '../../../../platform/actions/browser/toolbar.js';\nimport { MenuId } from '../../../../platform/actions/common/actions.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { ActionRunnerWithContext } from './utils.js';\nimport { createActionViewItem } from '../../../../platform/actions/browser/menuEntryActionViewItem.js';\nexport class TemplateData {\n    constructor(viewModel, deltaScrollVertical) {\n        this.viewModel = viewModel;\n        this.deltaScrollVertical = deltaScrollVertical;\n    }\n    getId() {\n        return this.viewModel;\n    }\n}\nlet DiffEditorItemTemplate = class DiffEditorItemTemplate extends Disposable {\n    constructor(_container, _overflowWidgetsDomNode, _workbenchUIElementFactory, _instantiationService) {\n        super();\n        this._container = _container;\n        this._overflowWidgetsDomNode = _overflowWidgetsDomNode;\n        this._workbenchUIElementFactory = _workbenchUIElementFactory;\n        this._instantiationService = _instantiationService;\n        this._viewModel = observableValue(this, undefined);\n        this._collapsed = derived(this, reader => { var _a; return (_a = this._viewModel.read(reader)) === null || _a === void 0 ? void 0 : _a.collapsed.read(reader); });\n        this._editorContentHeight = observableValue(this, 500);\n        this.contentHeight = derived(this, reader => {\n            const h = this._collapsed.read(reader) ? 0 : this._editorContentHeight.read(reader);\n            return h + this._outerEditorHeight;\n        });\n        this._modifiedContentWidth = observableValue(this, 0);\n        this._modifiedWidth = observableValue(this, 0);\n        this._originalContentWidth = observableValue(this, 0);\n        this._originalWidth = observableValue(this, 0);\n        this.maxScroll = derived(this, reader => {\n            const scroll1 = this._modifiedContentWidth.read(reader) - this._modifiedWidth.read(reader);\n            const scroll2 = this._originalContentWidth.read(reader) - this._originalWidth.read(reader);\n            if (scroll1 > scroll2) {\n                return { maxScroll: scroll1, width: this._modifiedWidth.read(reader) };\n            }\n            else {\n                return { maxScroll: scroll2, width: this._originalWidth.read(reader) };\n            }\n        });\n        this._elements = h('div.multiDiffEntry', [\n            h('div.header@header', [\n                h('div.header-content', [\n                    h('div.collapse-button@collapseButton'),\n                    h('div.file-path', [\n                        h('div.title.modified.show-file-icons@primaryPath', []),\n                        h('div.status.deleted@status', ['R']),\n                        h('div.title.original.show-file-icons@secondaryPath', []),\n                    ]),\n                    h('div.actions@actions'),\n                ]),\n            ]),\n            h('div.editorParent', [\n                h('div.editorContainer@editor'),\n            ])\n        ]);\n        this.editor = this._register(this._instantiationService.createInstance(DiffEditorWidget, this._elements.editor, {\n            overflowWidgetsDomNode: this._overflowWidgetsDomNode,\n        }, {}));\n        this.isModifedFocused = isFocused(this.editor.getModifiedEditor());\n        this.isOriginalFocused = isFocused(this.editor.getOriginalEditor());\n        this.isFocused = derived(this, reader => this.isModifedFocused.read(reader) || this.isOriginalFocused.read(reader));\n        this._resourceLabel = this._workbenchUIElementFactory.createResourceLabel\n            ? this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.primaryPath))\n            : undefined;\n        this._resourceLabel2 = this._workbenchUIElementFactory.createResourceLabel\n            ? this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.secondaryPath))\n            : undefined;\n        this._dataStore = new DisposableStore();\n        this._headerHeight = 40;\n        this._lastScrollTop = -1;\n        this._isSettingScrollTop = false;\n        const btn = new Button(this._elements.collapseButton, {});\n        this._register(autorun(reader => {\n            btn.element.className = '';\n            btn.icon = this._collapsed.read(reader) ? Codicon.chevronRight : Codicon.chevronDown;\n        }));\n        this._register(btn.onDidClick(() => {\n            var _a;\n            (_a = this._viewModel.get()) === null || _a === void 0 ? void 0 : _a.collapsed.set(!this._collapsed.get(), undefined);\n        }));\n        this._register(autorun(reader => {\n            this._elements.editor.style.display = this._collapsed.read(reader) ? 'none' : 'block';\n        }));\n        this._register(this.editor.getModifiedEditor().onDidLayoutChange(e => {\n            const width = this.editor.getModifiedEditor().getLayoutInfo().contentWidth;\n            this._modifiedWidth.set(width, undefined);\n        }));\n        this._register(this.editor.getOriginalEditor().onDidLayoutChange(e => {\n            const width = this.editor.getOriginalEditor().getLayoutInfo().contentWidth;\n            this._originalWidth.set(width, undefined);\n        }));\n        this._register(this.editor.onDidContentSizeChange(e => {\n            globalTransaction(tx => {\n                this._editorContentHeight.set(e.contentHeight, tx);\n                this._modifiedContentWidth.set(this.editor.getModifiedEditor().getContentWidth(), tx);\n                this._originalContentWidth.set(this.editor.getOriginalEditor().getContentWidth(), tx);\n            });\n        }));\n        this._register(this.editor.getOriginalEditor().onDidScrollChange(e => {\n            if (this._isSettingScrollTop) {\n                return;\n            }\n            if (!e.scrollTopChanged || !this._data) {\n                return;\n            }\n            const delta = e.scrollTop - this._lastScrollTop;\n            this._data.deltaScrollVertical(delta);\n        }));\n        this._register(autorun(reader => {\n            var _a;\n            const isActive = (_a = this._viewModel.read(reader)) === null || _a === void 0 ? void 0 : _a.isActive.read(reader);\n            this._elements.root.classList.toggle('active', isActive);\n        }));\n        this._container.appendChild(this._elements.root);\n        this._outerEditorHeight = this._headerHeight;\n        this._register(this._instantiationService.createInstance(MenuWorkbenchToolBar, this._elements.actions, MenuId.MultiDiffEditorFileToolbar, {\n            actionRunner: this._register(new ActionRunnerWithContext(() => { var _a; return ((_a = this._viewModel.get()) === null || _a === void 0 ? void 0 : _a.modifiedUri); })),\n            menuOptions: {\n                shouldForwardArgs: true,\n            },\n            toolbarOptions: { primaryGroup: g => g.startsWith('navigation') },\n            actionViewItemProvider: (action, options) => createActionViewItem(_instantiationService, action, options),\n        }));\n    }\n    setScrollLeft(left) {\n        if (this._modifiedContentWidth.get() - this._modifiedWidth.get() > this._originalContentWidth.get() - this._originalWidth.get()) {\n            this.editor.getModifiedEditor().setScrollLeft(left);\n        }\n        else {\n            this.editor.getOriginalEditor().setScrollLeft(left);\n        }\n    }\n    setData(data) {\n        this._data = data;\n        function updateOptions(options) {\n            return {\n                ...options,\n                scrollBeyondLastLine: false,\n                hideUnchangedRegions: {\n                    enabled: true,\n                },\n                scrollbar: {\n                    vertical: 'hidden',\n                    horizontal: 'hidden',\n                    handleMouseWheel: false,\n                    useShadows: false,\n                },\n                renderOverviewRuler: false,\n                fixedOverflowWidgets: true,\n                overviewRulerBorder: false,\n            };\n        }\n        const value = data.viewModel.entry.value; // TODO\n        if (value.onOptionsDidChange) {\n            this._dataStore.add(value.onOptionsDidChange(() => {\n                var _a;\n                this.editor.updateOptions(updateOptions((_a = value.options) !== null && _a !== void 0 ? _a : {}));\n            }));\n        }\n        globalTransaction(tx => {\n            var _a, _b, _c, _d;\n            (_a = this._resourceLabel) === null || _a === void 0 ? void 0 : _a.setUri((_b = data.viewModel.modifiedUri) !== null && _b !== void 0 ? _b : data.viewModel.originalUri, { strikethrough: data.viewModel.modifiedUri === undefined });\n            let isRenamed = false;\n            let isDeleted = false;\n            let isAdded = false;\n            let flag = '';\n            if (data.viewModel.modifiedUri && data.viewModel.originalUri && data.viewModel.modifiedUri.path !== data.viewModel.originalUri.path) {\n                flag = 'R';\n                isRenamed = true;\n            }\n            else if (!data.viewModel.modifiedUri) {\n                flag = 'D';\n                isDeleted = true;\n            }\n            else if (!data.viewModel.originalUri) {\n                flag = 'A';\n                isAdded = true;\n            }\n            this._elements.status.classList.toggle('renamed', isRenamed);\n            this._elements.status.classList.toggle('deleted', isDeleted);\n            this._elements.status.classList.toggle('added', isAdded);\n            this._elements.status.innerText = flag;\n            (_c = this._resourceLabel2) === null || _c === void 0 ? void 0 : _c.setUri(isRenamed ? data.viewModel.originalUri : undefined, { strikethrough: true });\n            this._dataStore.clear();\n            this._viewModel.set(data.viewModel, tx);\n            this.editor.setModel(data.viewModel.diffEditorViewModel, tx);\n            this.editor.updateOptions(updateOptions((_d = value.options) !== null && _d !== void 0 ? _d : {}));\n        });\n    }\n    render(verticalRange, width, editorScroll, viewPort) {\n        this._elements.root.style.visibility = 'visible';\n        this._elements.root.style.top = `${verticalRange.start}px`;\n        this._elements.root.style.height = `${verticalRange.length}px`;\n        this._elements.root.style.width = `${width}px`;\n        this._elements.root.style.position = 'absolute';\n        // For sticky scroll\n        const maxDelta = verticalRange.length - this._headerHeight;\n        const delta = Math.max(0, Math.min(viewPort.start - verticalRange.start, maxDelta));\n        this._elements.header.style.transform = `translateY(${delta}px)`;\n        globalTransaction(tx => {\n            this.editor.layout({\n                width: width - 2 * 8 - 2 * 1,\n                height: verticalRange.length - this._outerEditorHeight,\n            });\n        });\n        try {\n            this._isSettingScrollTop = true;\n            this._lastScrollTop = editorScroll;\n            this.editor.getOriginalEditor().setScrollTop(editorScroll);\n        }\n        finally {\n            this._isSettingScrollTop = false;\n        }\n        this._elements.header.classList.toggle('shadow', delta > 0 || editorScroll > 0);\n        this._elements.header.classList.toggle('collapsed', delta === maxDelta);\n    }\n    hide() {\n        this._elements.root.style.top = `-100000px`;\n        this._elements.root.style.visibility = 'hidden'; // Some editor parts are still visible\n    }\n};\nDiffEditorItemTemplate = __decorate([\n    __param(3, IInstantiationService)\n], DiffEditorItemTemplate);\nexport { DiffEditorItemTemplate };\nfunction isFocused(editor) {\n    return observableFromEvent(h => {\n        const store = new DisposableStore();\n        store.add(editor.onDidFocusEditorWidget(() => h(true)));\n        store.add(editor.onDidBlurEditorWidget(() => h(false)));\n        return store;\n    }, () => editor.hasTextFocus());\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/multiDiffEditor/model.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport {};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorViewModel.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { derived, observableValue } from '../../../../base/common/observable.js';\nimport { constObservable, derivedObservableWithWritableCache, mapObservableArrayCached, observableFromValueWithChangeEvent } from '../../../../base/common/observableInternal/utils.js';\nimport { DiffEditorOptions } from '../diffEditor/diffEditorOptions.js';\nimport { DiffEditorViewModel } from '../diffEditor/diffEditorViewModel.js';\nimport { IModelService } from '../../../common/services/model.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nexport class MultiDiffEditorViewModel extends Disposable {\n    get contextKeys() {\n        return this.model.contextKeys;\n    }\n    constructor(model, _instantiationService) {\n        super();\n        this.model = model;\n        this._instantiationService = _instantiationService;\n        this._documents = observableFromValueWithChangeEvent(this.model, this.model.documents);\n        this.items = mapObservableArrayCached(this, this._documents, (d, store) => store.add(this._instantiationService.createInstance(DocumentDiffItemViewModel, d, this)))\n            .recomputeInitiallyAndOnChange(this._store);\n        this.focusedDiffItem = derived(this, reader => this.items.read(reader).find(i => i.isFocused.read(reader)));\n        this.activeDiffItem = derivedObservableWithWritableCache(this, (reader, lastValue) => { var _a; return (_a = this.focusedDiffItem.read(reader)) !== null && _a !== void 0 ? _a : lastValue; });\n    }\n}\nlet DocumentDiffItemViewModel = class DocumentDiffItemViewModel extends Disposable {\n    get originalUri() { var _a; return (_a = this.entry.value.original) === null || _a === void 0 ? void 0 : _a.uri; }\n    get modifiedUri() { var _a; return (_a = this.entry.value.modified) === null || _a === void 0 ? void 0 : _a.uri; }\n    setIsFocused(source, tx) {\n        this._isFocusedSource.set(source, tx);\n    }\n    constructor(entry, _editorViewModel, _instantiationService, _modelService) {\n        var _a, _b;\n        super();\n        this.entry = entry;\n        this._editorViewModel = _editorViewModel;\n        this._instantiationService = _instantiationService;\n        this._modelService = _modelService;\n        this.collapsed = observableValue(this, false);\n        this.lastTemplateData = observableValue(this, { contentHeight: 500, selections: undefined, });\n        this.isActive = derived(this, reader => this._editorViewModel.activeDiffItem.read(reader) === this);\n        this._isFocusedSource = observableValue(this, constObservable(false));\n        this.isFocused = derived(this, reader => this._isFocusedSource.read(reader).read(reader));\n        function updateOptions(options) {\n            return {\n                ...options,\n                hideUnchangedRegions: {\n                    enabled: true,\n                },\n            };\n        }\n        const options = this._instantiationService.createInstance(DiffEditorOptions, updateOptions(this.entry.value.options || {}));\n        if (this.entry.value.onOptionsDidChange) {\n            this._register(this.entry.value.onOptionsDidChange(() => {\n                options.updateOptions(updateOptions(this.entry.value.options || {}));\n            }));\n        }\n        const originalTextModel = (_a = this.entry.value.original) !== null && _a !== void 0 ? _a : this._register(this._modelService.createModel('', null));\n        const modifiedTextModel = (_b = this.entry.value.modified) !== null && _b !== void 0 ? _b : this._register(this._modelService.createModel('', null));\n        this.diffEditorViewModel = this._register(this._instantiationService.createInstance(DiffEditorViewModel, {\n            original: originalTextModel,\n            modified: modifiedTextModel,\n        }, options));\n    }\n    getKey() {\n        var _a, _b;\n        return JSON.stringify([\n            (_a = this.originalUri) === null || _a === void 0 ? void 0 : _a.toString(),\n            (_b = this.modifiedUri) === null || _b === void 0 ? void 0 : _b.toString()\n        ]);\n    }\n};\nDocumentDiffItemViewModel = __decorate([\n    __param(2, IInstantiationService),\n    __param(3, IModelService)\n], DocumentDiffItemViewModel);\nexport { DocumentDiffItemViewModel };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { derivedWithStore, observableValue, recomputeInitiallyAndOnChange } from '../../../../base/common/observable.js';\nimport { readHotReloadableExport } from '../diffEditor/utils.js';\nimport { MultiDiffEditorWidgetImpl } from './multiDiffEditorWidgetImpl.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport './colors.js';\nimport { DiffEditorItemTemplate } from './diffEditorItemTemplate.js';\nlet MultiDiffEditorWidget = class MultiDiffEditorWidget extends Disposable {\n    constructor(_element, _workbenchUIElementFactory, _instantiationService) {\n        super();\n        this._element = _element;\n        this._workbenchUIElementFactory = _workbenchUIElementFactory;\n        this._instantiationService = _instantiationService;\n        this._dimension = observableValue(this, undefined);\n        this._viewModel = observableValue(this, undefined);\n        this._widgetImpl = derivedWithStore(this, (reader, store) => {\n            readHotReloadableExport(DiffEditorItemTemplate, reader);\n            return store.add(this._instantiationService.createInstance((readHotReloadableExport(MultiDiffEditorWidgetImpl, reader)), this._element, this._dimension, this._viewModel, this._workbenchUIElementFactory));\n        });\n        this._register(recomputeInitiallyAndOnChange(this._widgetImpl));\n    }\n};\nMultiDiffEditorWidget = __decorate([\n    __param(2, IInstantiationService)\n], MultiDiffEditorWidget);\nexport { MultiDiffEditorWidget };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { getWindow, h, scheduleAtNextAnimationFrame } from '../../../../base/browser/dom.js';\nimport { SmoothScrollableElement } from '../../../../base/browser/ui/scrollbar/scrollableElement.js';\nimport { compareBy, numberComparator } from '../../../../base/common/arrays.js';\nimport { findFirstMax } from '../../../../base/common/arraysFind.js';\nimport { BugIndicatingError } from '../../../../base/common/errors.js';\nimport { Disposable, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { autorun, autorunWithStore, derived, derivedWithStore, observableFromEvent, observableValue } from '../../../../base/common/observable.js';\nimport { disposableObservableValue, globalTransaction, transaction } from '../../../../base/common/observableInternal/base.js';\nimport { Scrollable } from '../../../../base/common/scrollable.js';\nimport './style.css';\nimport { ObservableElementSizeObserver } from '../diffEditor/utils.js';\nimport { OffsetRange } from '../../../common/core/offsetRange.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { ServiceCollection } from '../../../../platform/instantiation/common/serviceCollection.js';\nimport { DiffEditorItemTemplate, TemplateData } from './diffEditorItemTemplate.js';\nimport { ObjectPool } from './objectPool.js';\nimport { localize } from '../../../../nls.js';\nlet MultiDiffEditorWidgetImpl = class MultiDiffEditorWidgetImpl extends Disposable {\n    constructor(_element, _dimension, _viewModel, _workbenchUIElementFactory, _parentContextKeyService, _parentInstantiationService) {\n        super();\n        this._element = _element;\n        this._dimension = _dimension;\n        this._viewModel = _viewModel;\n        this._workbenchUIElementFactory = _workbenchUIElementFactory;\n        this._parentContextKeyService = _parentContextKeyService;\n        this._parentInstantiationService = _parentInstantiationService;\n        this._scrollableElements = h('div.scrollContent', [\n            h('div@content', {\n                style: {\n                    overflow: 'hidden',\n                }\n            }),\n            h('div.monaco-editor@overflowWidgetsDomNode', {}),\n        ]);\n        this._scrollable = this._register(new Scrollable({\n            forceIntegerValues: false,\n            scheduleAtNextAnimationFrame: (cb) => scheduleAtNextAnimationFrame(getWindow(this._element), cb),\n            smoothScrollDuration: 100,\n        }));\n        this._scrollableElement = this._register(new SmoothScrollableElement(this._scrollableElements.root, {\n            vertical: 1 /* ScrollbarVisibility.Auto */,\n            horizontal: 1 /* ScrollbarVisibility.Auto */,\n            useShadows: false,\n        }, this._scrollable));\n        this._elements = h('div.monaco-component.multiDiffEditor', {}, [\n            h('div', {}, [this._scrollableElement.getDomNode()]),\n            h('div.placeholder@placeholder', {}, [h('div', [localize('noChangedFiles', 'No Changed Files')])]),\n        ]);\n        this._sizeObserver = this._register(new ObservableElementSizeObserver(this._element, undefined));\n        this._objectPool = this._register(new ObjectPool((data) => {\n            const template = this._instantiationService.createInstance(DiffEditorItemTemplate, this._scrollableElements.content, this._scrollableElements.overflowWidgetsDomNode, this._workbenchUIElementFactory);\n            template.setData(data);\n            return template;\n        }));\n        this.scrollTop = observableFromEvent(this._scrollableElement.onScroll, () => /** @description scrollTop */ this._scrollableElement.getScrollPosition().scrollTop);\n        this.scrollLeft = observableFromEvent(this._scrollableElement.onScroll, () => /** @description scrollLeft */ this._scrollableElement.getScrollPosition().scrollLeft);\n        this._viewItemsInfo = derivedWithStore(this, (reader, store) => {\n            const vm = this._viewModel.read(reader);\n            if (!vm) {\n                return { items: [], getItem: _d => { throw new BugIndicatingError(); } };\n            }\n            const viewModels = vm.items.read(reader);\n            const map = new Map();\n            const items = viewModels.map(d => {\n                var _a;\n                const item = store.add(new VirtualizedViewItem(d, this._objectPool, this.scrollLeft, delta => {\n                    this._scrollableElement.setScrollPosition({ scrollTop: this._scrollableElement.getScrollPosition().scrollTop + delta });\n                }));\n                const data = (_a = this._lastDocStates) === null || _a === void 0 ? void 0 : _a[item.getKey()];\n                if (data) {\n                    transaction(tx => {\n                        item.setViewState(data, tx);\n                    });\n                }\n                map.set(d, item);\n                return item;\n            });\n            return { items, getItem: d => map.get(d) };\n        });\n        this._viewItems = this._viewItemsInfo.map(this, items => items.items);\n        this._spaceBetweenPx = 0;\n        this._totalHeight = this._viewItems.map(this, (items, reader) => items.reduce((r, i) => r + i.contentHeight.read(reader) + this._spaceBetweenPx, 0));\n        this._contextKeyService = this._register(this._parentContextKeyService.createScoped(this._element));\n        this._instantiationService = this._register(this._parentInstantiationService.createChild(new ServiceCollection([IContextKeyService, this._contextKeyService])));\n        /** This accounts for documents that are not loaded yet. */\n        this._lastDocStates = {};\n        this._contextKeyService.createKey(EditorContextKeys.inMultiDiffEditor.key, true);\n        this._register(autorunWithStore((reader, store) => {\n            const viewModel = this._viewModel.read(reader);\n            if (viewModel && viewModel.contextKeys) {\n                for (const [key, value] of Object.entries(viewModel.contextKeys)) {\n                    const contextKey = this._contextKeyService.createKey(key, undefined);\n                    contextKey.set(value);\n                    store.add(toDisposable(() => contextKey.reset()));\n                }\n            }\n        }));\n        const ctxAllCollapsed = this._parentContextKeyService.createKey(EditorContextKeys.multiDiffEditorAllCollapsed.key, false);\n        this._register(autorun((reader) => {\n            const viewModel = this._viewModel.read(reader);\n            if (viewModel) {\n                const allCollapsed = viewModel.items.read(reader).every(item => item.collapsed.read(reader));\n                ctxAllCollapsed.set(allCollapsed);\n            }\n        }));\n        this._register(autorun((reader) => {\n            /** @description Update widget dimension */\n            const dimension = this._dimension.read(reader);\n            this._sizeObserver.observe(dimension);\n        }));\n        this._register(autorun((reader) => {\n            /** @description Update widget dimension */\n            const items = this._viewItems.read(reader);\n            this._elements.placeholder.classList.toggle('visible', items.length === 0);\n        }));\n        this._scrollableElements.content.style.position = 'relative';\n        this._register(autorun((reader) => {\n            /** @description Update scroll dimensions */\n            const height = this._sizeObserver.height.read(reader);\n            this._scrollableElements.root.style.height = `${height}px`;\n            const totalHeight = this._totalHeight.read(reader);\n            this._scrollableElements.content.style.height = `${totalHeight}px`;\n            const width = this._sizeObserver.width.read(reader);\n            let scrollWidth = width;\n            const viewItems = this._viewItems.read(reader);\n            const max = findFirstMax(viewItems, compareBy(i => i.maxScroll.read(reader).maxScroll, numberComparator));\n            if (max) {\n                const maxScroll = max.maxScroll.read(reader);\n                scrollWidth = width + maxScroll.maxScroll;\n            }\n            this._scrollableElement.setScrollDimensions({\n                width: width,\n                height: height,\n                scrollHeight: totalHeight,\n                scrollWidth,\n            });\n        }));\n        _element.replaceChildren(this._elements.root);\n        this._register(toDisposable(() => {\n            _element.replaceChildren();\n        }));\n        this._register(this._register(autorun(reader => {\n            /** @description Render all */\n            globalTransaction(tx => {\n                this.render(reader);\n            });\n        })));\n    }\n    render(reader) {\n        const scrollTop = this.scrollTop.read(reader);\n        let contentScrollOffsetToScrollOffset = 0;\n        let itemHeightSumBefore = 0;\n        let itemContentHeightSumBefore = 0;\n        const viewPortHeight = this._sizeObserver.height.read(reader);\n        const contentViewPort = OffsetRange.ofStartAndLength(scrollTop, viewPortHeight);\n        const width = this._sizeObserver.width.read(reader);\n        for (const v of this._viewItems.read(reader)) {\n            const itemContentHeight = v.contentHeight.read(reader);\n            const itemHeight = Math.min(itemContentHeight, viewPortHeight);\n            const itemRange = OffsetRange.ofStartAndLength(itemHeightSumBefore, itemHeight);\n            const itemContentRange = OffsetRange.ofStartAndLength(itemContentHeightSumBefore, itemContentHeight);\n            if (itemContentRange.isBefore(contentViewPort)) {\n                contentScrollOffsetToScrollOffset -= itemContentHeight - itemHeight;\n                v.hide();\n            }\n            else if (itemContentRange.isAfter(contentViewPort)) {\n                v.hide();\n            }\n            else {\n                const scroll = Math.max(0, Math.min(contentViewPort.start - itemContentRange.start, itemContentHeight - itemHeight));\n                contentScrollOffsetToScrollOffset -= scroll;\n                const viewPort = OffsetRange.ofStartAndLength(scrollTop + contentScrollOffsetToScrollOffset, viewPortHeight);\n                v.render(itemRange, scroll, width, viewPort);\n            }\n            itemHeightSumBefore += itemHeight + this._spaceBetweenPx;\n            itemContentHeightSumBefore += itemContentHeight + this._spaceBetweenPx;\n        }\n        this._scrollableElements.content.style.transform = `translateY(${-(scrollTop + contentScrollOffsetToScrollOffset)}px)`;\n    }\n};\nMultiDiffEditorWidgetImpl = __decorate([\n    __param(4, IContextKeyService),\n    __param(5, IInstantiationService)\n], MultiDiffEditorWidgetImpl);\nexport { MultiDiffEditorWidgetImpl };\nclass VirtualizedViewItem extends Disposable {\n    constructor(viewModel, _objectPool, _scrollLeft, _deltaScrollVertical) {\n        super();\n        this.viewModel = viewModel;\n        this._objectPool = _objectPool;\n        this._scrollLeft = _scrollLeft;\n        this._deltaScrollVertical = _deltaScrollVertical;\n        this._templateRef = this._register(disposableObservableValue(this, undefined));\n        this.contentHeight = derived(this, reader => { var _a, _b, _c; return (_c = (_b = (_a = this._templateRef.read(reader)) === null || _a === void 0 ? void 0 : _a.object.contentHeight) === null || _b === void 0 ? void 0 : _b.read(reader)) !== null && _c !== void 0 ? _c : this.viewModel.lastTemplateData.read(reader).contentHeight; });\n        this.maxScroll = derived(this, reader => { var _a, _b; return (_b = (_a = this._templateRef.read(reader)) === null || _a === void 0 ? void 0 : _a.object.maxScroll.read(reader)) !== null && _b !== void 0 ? _b : { maxScroll: 0, scrollWidth: 0 }; });\n        this.template = derived(this, reader => { var _a; return (_a = this._templateRef.read(reader)) === null || _a === void 0 ? void 0 : _a.object; });\n        this._isHidden = observableValue(this, false);\n        this._isFocused = derived(this, reader => { var _a, _b; return (_b = (_a = this.template.read(reader)) === null || _a === void 0 ? void 0 : _a.isFocused.read(reader)) !== null && _b !== void 0 ? _b : false; });\n        this.viewModel.setIsFocused(this._isFocused, undefined);\n        this._register(autorun((reader) => {\n            var _a;\n            const scrollLeft = this._scrollLeft.read(reader);\n            (_a = this._templateRef.read(reader)) === null || _a === void 0 ? void 0 : _a.object.setScrollLeft(scrollLeft);\n        }));\n        this._register(autorun(reader => {\n            const ref = this._templateRef.read(reader);\n            if (!ref) {\n                return;\n            }\n            const isHidden = this._isHidden.read(reader);\n            if (!isHidden) {\n                return;\n            }\n            const isFocused = ref.object.isFocused.read(reader);\n            if (isFocused) {\n                return;\n            }\n            this._clear();\n        }));\n    }\n    dispose() {\n        this._clear();\n        super.dispose();\n    }\n    toString() {\n        var _a;\n        return `VirtualViewItem(${(_a = this.viewModel.entry.value.modified) === null || _a === void 0 ? void 0 : _a.uri.toString()})`;\n    }\n    getKey() {\n        return this.viewModel.getKey();\n    }\n    setViewState(viewState, tx) {\n        var _a;\n        this.viewModel.collapsed.set(viewState.collapsed, tx);\n        this._updateTemplateData(tx);\n        const data = this.viewModel.lastTemplateData.get();\n        const selections = (_a = viewState.selections) === null || _a === void 0 ? void 0 : _a.map(Selection.liftSelection);\n        this.viewModel.lastTemplateData.set({\n            ...data,\n            selections,\n        }, tx);\n        const ref = this._templateRef.get();\n        if (ref) {\n            if (selections) {\n                ref.object.editor.setSelections(selections);\n            }\n        }\n    }\n    _updateTemplateData(tx) {\n        var _a;\n        const ref = this._templateRef.get();\n        if (!ref) {\n            return;\n        }\n        this.viewModel.lastTemplateData.set({\n            contentHeight: ref.object.contentHeight.get(),\n            selections: (_a = ref.object.editor.getSelections()) !== null && _a !== void 0 ? _a : undefined,\n        }, tx);\n    }\n    _clear() {\n        const ref = this._templateRef.get();\n        if (!ref) {\n            return;\n        }\n        transaction(tx => {\n            this._updateTemplateData(tx);\n            ref.object.hide();\n            this._templateRef.set(undefined, tx);\n        });\n    }\n    hide() {\n        this._isHidden.set(true, undefined);\n    }\n    render(verticalSpace, offset, width, viewPort) {\n        this._isHidden.set(false, undefined);\n        let ref = this._templateRef.get();\n        if (!ref) {\n            ref = this._objectPool.getUnusedObj(new TemplateData(this.viewModel, this._deltaScrollVertical));\n            this._templateRef.set(ref, undefined);\n            const selections = this.viewModel.lastTemplateData.get().selections;\n            if (selections) {\n                ref.object.editor.setSelections(selections);\n            }\n        }\n        ref.object.render(verticalSpace, width, offset, viewPort);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/multiDiffEditor/objectPool.js",
    "content": "export class ObjectPool {\n    constructor(_create) {\n        this._create = _create;\n        this._unused = new Set();\n        this._used = new Set();\n        this._itemData = new Map();\n    }\n    getUnusedObj(data) {\n        var _a;\n        let obj;\n        if (this._unused.size === 0) {\n            obj = this._create(data);\n            this._itemData.set(obj, data);\n        }\n        else {\n            const values = [...this._unused.values()];\n            obj = (_a = values.find(obj => this._itemData.get(obj).getId() === data.getId())) !== null && _a !== void 0 ? _a : values[0];\n            this._unused.delete(obj);\n            this._itemData.set(obj, data);\n            obj.setData(data);\n        }\n        this._used.add(obj);\n        return {\n            object: obj,\n            dispose: () => {\n                this._used.delete(obj);\n                if (this._unused.size > 5) {\n                    obj.dispose();\n                }\n                else {\n                    this._unused.add(obj);\n                }\n            }\n        };\n    }\n    dispose() {\n        for (const obj of this._used) {\n            obj.dispose();\n        }\n        for (const obj of this._unused) {\n            obj.dispose();\n        }\n        this._used.clear();\n        this._unused.clear();\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/multiDiffEditor/style.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-component.multiDiffEditor {\n\tbackground: var(--vscode-multiDiffEditor-background);\n\n\tposition: relative;\n\n\theight: 100%;\n\twidth: 100%;\n\n\toverflow-y: hidden;\n\n\t> div {\n\t\tposition: absolute;\n\t\ttop: 0px;\n\t\tleft: 0px;\n\n\t\theight: 100%;\n\t\twidth: 100%;\n\n\t\t&.placeholder {\n\t\t\tvisibility: hidden;\n\n\t\t\t&.visible {\n\t\t\t\tvisibility: visible;\n\t\t\t}\n\n\t\t\tdisplay: grid;\n\t\t\tplace-items: center;\n\t\t\tplace-content: center;\n\t\t}\n\t}\n\n\t.active {\n\t\t--vscode-multiDiffEditor-border: var(--vscode-focusBorder);\n\t}\n\n\t.multiDiffEntry {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tflex: 1;\n\t\toverflow: hidden;\n\n\n\t\t.collapse-button {\n\t\t\tmargin: 0 5px;\n\t\t\tcursor: pointer;\n\n\t\t\ta {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t}\n\n\t\t.header {\n\t\t\tz-index: 1000;\n\t\t\tbackground: var(--vscode-editor-background);\n\n\t\t\t&:not(.collapsed) .header-content {\n\t\t\t\tborder-bottom: 1px solid var(--vscode-sideBarSectionHeader-border);\n\t\t\t}\n\n\t\t\t.header-content {\n\t\t\t\tmargin: 8px 0px 0px 0px;\n\t\t\t\tpadding: 4px 5px;\n\n\t\t\t\tborder-top: 1px solid var(--vscode-multiDiffEditor-border);\n\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\n\t\t\t\tcolor: var(--vscode-foreground);\n\t\t\t\tbackground: var(--vscode-multiDiffEditor-headerBackground);\n\n\t\t\t\t&.shadow {\n\t\t\t\t\tbox-shadow: var(--vscode-scrollbar-shadow) 0px 6px 6px -6px;\n\t\t\t\t}\n\n\t\t\t\t.file-path {\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\tflex: 1;\n\t\t\t\t\tmin-width: 0;\n\n\t\t\t\t\t.title {\n\t\t\t\t\t\tfont-size: 14px;\n\t\t\t\t\t\tline-height: 22px;\n\n\t\t\t\t\t\t&.original {\n\t\t\t\t\t\t\tflex: 1;\n\t\t\t\t\t\t\tmin-width: 0;\n\t\t\t\t\t\t\ttext-overflow: ellipsis;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t.status {\n\t\t\t\t\t\tfont-weight: 600;\n\t\t\t\t\t\topacity: 0.75;\n\t\t\t\t\t\tmargin: 0px 10px;\n\t\t\t\t\t\tline-height: 22px;\n\n\t\t\t\t\t\t/*\n\t\t\t\t\t\t\tTODO@hediet: move colors from git extension to core!\n\t\t\t\t\t\t&.renamed {\n\t\t\t\t\t\t\tcolor: v ar(--vscode-gitDecoration-renamedResourceForeground);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t&.deleted {\n\t\t\t\t\t\t\tcolor: v ar(--vscode-gitDecoration-deletedResourceForeground);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t&.added {\n\t\t\t\t\t\t\tcolor: v ar(--vscode-gitDecoration-addedResourceForeground);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t*/\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t.actions {\n\t\t\t\t\tpadding: 0 8px;\n\t\t\t\t}\n\t\t\t}\n\n\n\t\t}\n\n\t\t.editorParent {\n\t\t\tflex: 1;\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\n\t\t\tborder-bottom: 1px solid var(--vscode-multiDiffEditor-border);\n\t\t\toverflow: hidden;\n\t\t}\n\n\t\t.editorContainer {\n\t\t\tflex: 1;\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/multiDiffEditor/utils.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { ActionRunner } from '../../../../base/common/actions.js';\nexport class ActionRunnerWithContext extends ActionRunner {\n    constructor(_getContext) {\n        super();\n        this._getContext = _getContext;\n    }\n    runAction(action, _context) {\n        const ctx = this._getContext();\n        return super.runAction(action, ctx);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/browser/widget/multiDiffEditor/workbenchUIElementFactory.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport {};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/commands/replaceCommand.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Selection } from '../core/selection.js';\nexport class ReplaceCommand {\n    constructor(range, text, insertsAutoWhitespace = false) {\n        this._range = range;\n        this._text = text;\n        this.insertsAutoWhitespace = insertsAutoWhitespace;\n    }\n    getEditOperations(model, builder) {\n        builder.addTrackedEditOperation(this._range, this._text);\n    }\n    computeCursorState(model, helper) {\n        const inverseEditOperations = helper.getInverseEditOperations();\n        const srcRange = inverseEditOperations[0].range;\n        return Selection.fromPositions(srcRange.getEndPosition());\n    }\n}\nexport class ReplaceCommandThatSelectsText {\n    constructor(range, text) {\n        this._range = range;\n        this._text = text;\n    }\n    getEditOperations(model, builder) {\n        builder.addTrackedEditOperation(this._range, this._text);\n    }\n    computeCursorState(model, helper) {\n        const inverseEditOperations = helper.getInverseEditOperations();\n        const srcRange = inverseEditOperations[0].range;\n        return Selection.fromRange(srcRange, 0 /* SelectionDirection.LTR */);\n    }\n}\nexport class ReplaceCommandWithoutChangingPosition {\n    constructor(range, text, insertsAutoWhitespace = false) {\n        this._range = range;\n        this._text = text;\n        this.insertsAutoWhitespace = insertsAutoWhitespace;\n    }\n    getEditOperations(model, builder) {\n        builder.addTrackedEditOperation(this._range, this._text);\n    }\n    computeCursorState(model, helper) {\n        const inverseEditOperations = helper.getInverseEditOperations();\n        const srcRange = inverseEditOperations[0].range;\n        return Selection.fromPositions(srcRange.getStartPosition());\n    }\n}\nexport class ReplaceCommandWithOffsetCursorState {\n    constructor(range, text, lineNumberDeltaOffset, columnDeltaOffset, insertsAutoWhitespace = false) {\n        this._range = range;\n        this._text = text;\n        this._columnDeltaOffset = columnDeltaOffset;\n        this._lineNumberDeltaOffset = lineNumberDeltaOffset;\n        this.insertsAutoWhitespace = insertsAutoWhitespace;\n    }\n    getEditOperations(model, builder) {\n        builder.addTrackedEditOperation(this._range, this._text);\n    }\n    computeCursorState(model, helper) {\n        const inverseEditOperations = helper.getInverseEditOperations();\n        const srcRange = inverseEditOperations[0].range;\n        return Selection.fromPositions(srcRange.getEndPosition().delta(this._lineNumberDeltaOffset, this._columnDeltaOffset));\n    }\n}\nexport class ReplaceCommandThatPreservesSelection {\n    constructor(editRange, text, initialSelection, forceMoveMarkers = false) {\n        this._range = editRange;\n        this._text = text;\n        this._initialSelection = initialSelection;\n        this._forceMoveMarkers = forceMoveMarkers;\n        this._selectionId = null;\n    }\n    getEditOperations(model, builder) {\n        builder.addTrackedEditOperation(this._range, this._text, this._forceMoveMarkers);\n        this._selectionId = builder.trackSelection(this._initialSelection);\n    }\n    computeCursorState(model, helper) {\n        return helper.getTrackedSelection(this._selectionId);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/commands/shiftCommand.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar ShiftCommand_1;\nimport * as strings from '../../../base/common/strings.js';\nimport { CursorColumns } from '../core/cursorColumns.js';\nimport { Range } from '../core/range.js';\nimport { Selection } from '../core/selection.js';\nimport { getEnterAction } from '../languages/enterAction.js';\nimport { ILanguageConfigurationService } from '../languages/languageConfigurationRegistry.js';\nconst repeatCache = Object.create(null);\nfunction cachedStringRepeat(str, count) {\n    if (count <= 0) {\n        return '';\n    }\n    if (!repeatCache[str]) {\n        repeatCache[str] = ['', str];\n    }\n    const cache = repeatCache[str];\n    for (let i = cache.length; i <= count; i++) {\n        cache[i] = cache[i - 1] + str;\n    }\n    return cache[count];\n}\nlet ShiftCommand = ShiftCommand_1 = class ShiftCommand {\n    static unshiftIndent(line, column, tabSize, indentSize, insertSpaces) {\n        // Determine the visible column where the content starts\n        const contentStartVisibleColumn = CursorColumns.visibleColumnFromColumn(line, column, tabSize);\n        if (insertSpaces) {\n            const indent = cachedStringRepeat(' ', indentSize);\n            const desiredTabStop = CursorColumns.prevIndentTabStop(contentStartVisibleColumn, indentSize);\n            const indentCount = desiredTabStop / indentSize; // will be an integer\n            return cachedStringRepeat(indent, indentCount);\n        }\n        else {\n            const indent = '\\t';\n            const desiredTabStop = CursorColumns.prevRenderTabStop(contentStartVisibleColumn, tabSize);\n            const indentCount = desiredTabStop / tabSize; // will be an integer\n            return cachedStringRepeat(indent, indentCount);\n        }\n    }\n    static shiftIndent(line, column, tabSize, indentSize, insertSpaces) {\n        // Determine the visible column where the content starts\n        const contentStartVisibleColumn = CursorColumns.visibleColumnFromColumn(line, column, tabSize);\n        if (insertSpaces) {\n            const indent = cachedStringRepeat(' ', indentSize);\n            const desiredTabStop = CursorColumns.nextIndentTabStop(contentStartVisibleColumn, indentSize);\n            const indentCount = desiredTabStop / indentSize; // will be an integer\n            return cachedStringRepeat(indent, indentCount);\n        }\n        else {\n            const indent = '\\t';\n            const desiredTabStop = CursorColumns.nextRenderTabStop(contentStartVisibleColumn, tabSize);\n            const indentCount = desiredTabStop / tabSize; // will be an integer\n            return cachedStringRepeat(indent, indentCount);\n        }\n    }\n    constructor(range, opts, _languageConfigurationService) {\n        this._languageConfigurationService = _languageConfigurationService;\n        this._opts = opts;\n        this._selection = range;\n        this._selectionId = null;\n        this._useLastEditRangeForCursorEndPosition = false;\n        this._selectionStartColumnStaysPut = false;\n    }\n    _addEditOperation(builder, range, text) {\n        if (this._useLastEditRangeForCursorEndPosition) {\n            builder.addTrackedEditOperation(range, text);\n        }\n        else {\n            builder.addEditOperation(range, text);\n        }\n    }\n    getEditOperations(model, builder) {\n        const startLine = this._selection.startLineNumber;\n        let endLine = this._selection.endLineNumber;\n        if (this._selection.endColumn === 1 && startLine !== endLine) {\n            endLine = endLine - 1;\n        }\n        const { tabSize, indentSize, insertSpaces } = this._opts;\n        const shouldIndentEmptyLines = (startLine === endLine);\n        if (this._opts.useTabStops) {\n            // if indenting or outdenting on a whitespace only line\n            if (this._selection.isEmpty()) {\n                if (/^\\s*$/.test(model.getLineContent(startLine))) {\n                    this._useLastEditRangeForCursorEndPosition = true;\n                }\n            }\n            // keep track of previous line's \"miss-alignment\"\n            let previousLineExtraSpaces = 0, extraSpaces = 0;\n            for (let lineNumber = startLine; lineNumber <= endLine; lineNumber++, previousLineExtraSpaces = extraSpaces) {\n                extraSpaces = 0;\n                const lineText = model.getLineContent(lineNumber);\n                let indentationEndIndex = strings.firstNonWhitespaceIndex(lineText);\n                if (this._opts.isUnshift && (lineText.length === 0 || indentationEndIndex === 0)) {\n                    // empty line or line with no leading whitespace => nothing to do\n                    continue;\n                }\n                if (!shouldIndentEmptyLines && !this._opts.isUnshift && lineText.length === 0) {\n                    // do not indent empty lines => nothing to do\n                    continue;\n                }\n                if (indentationEndIndex === -1) {\n                    // the entire line is whitespace\n                    indentationEndIndex = lineText.length;\n                }\n                if (lineNumber > 1) {\n                    const contentStartVisibleColumn = CursorColumns.visibleColumnFromColumn(lineText, indentationEndIndex + 1, tabSize);\n                    if (contentStartVisibleColumn % indentSize !== 0) {\n                        // The current line is \"miss-aligned\", so let's see if this is expected...\n                        // This can only happen when it has trailing commas in the indent\n                        if (model.tokenization.isCheapToTokenize(lineNumber - 1)) {\n                            const enterAction = getEnterAction(this._opts.autoIndent, model, new Range(lineNumber - 1, model.getLineMaxColumn(lineNumber - 1), lineNumber - 1, model.getLineMaxColumn(lineNumber - 1)), this._languageConfigurationService);\n                            if (enterAction) {\n                                extraSpaces = previousLineExtraSpaces;\n                                if (enterAction.appendText) {\n                                    for (let j = 0, lenJ = enterAction.appendText.length; j < lenJ && extraSpaces < indentSize; j++) {\n                                        if (enterAction.appendText.charCodeAt(j) === 32 /* CharCode.Space */) {\n                                            extraSpaces++;\n                                        }\n                                        else {\n                                            break;\n                                        }\n                                    }\n                                }\n                                if (enterAction.removeText) {\n                                    extraSpaces = Math.max(0, extraSpaces - enterAction.removeText);\n                                }\n                                // Act as if `prefixSpaces` is not part of the indentation\n                                for (let j = 0; j < extraSpaces; j++) {\n                                    if (indentationEndIndex === 0 || lineText.charCodeAt(indentationEndIndex - 1) !== 32 /* CharCode.Space */) {\n                                        break;\n                                    }\n                                    indentationEndIndex--;\n                                }\n                            }\n                        }\n                    }\n                }\n                if (this._opts.isUnshift && indentationEndIndex === 0) {\n                    // line with no leading whitespace => nothing to do\n                    continue;\n                }\n                let desiredIndent;\n                if (this._opts.isUnshift) {\n                    desiredIndent = ShiftCommand_1.unshiftIndent(lineText, indentationEndIndex + 1, tabSize, indentSize, insertSpaces);\n                }\n                else {\n                    desiredIndent = ShiftCommand_1.shiftIndent(lineText, indentationEndIndex + 1, tabSize, indentSize, insertSpaces);\n                }\n                this._addEditOperation(builder, new Range(lineNumber, 1, lineNumber, indentationEndIndex + 1), desiredIndent);\n                if (lineNumber === startLine && !this._selection.isEmpty()) {\n                    // Force the startColumn to stay put because we're inserting after it\n                    this._selectionStartColumnStaysPut = (this._selection.startColumn <= indentationEndIndex + 1);\n                }\n            }\n        }\n        else {\n            // if indenting or outdenting on a whitespace only line\n            if (!this._opts.isUnshift && this._selection.isEmpty() && model.getLineLength(startLine) === 0) {\n                this._useLastEditRangeForCursorEndPosition = true;\n            }\n            const oneIndent = (insertSpaces ? cachedStringRepeat(' ', indentSize) : '\\t');\n            for (let lineNumber = startLine; lineNumber <= endLine; lineNumber++) {\n                const lineText = model.getLineContent(lineNumber);\n                let indentationEndIndex = strings.firstNonWhitespaceIndex(lineText);\n                if (this._opts.isUnshift && (lineText.length === 0 || indentationEndIndex === 0)) {\n                    // empty line or line with no leading whitespace => nothing to do\n                    continue;\n                }\n                if (!shouldIndentEmptyLines && !this._opts.isUnshift && lineText.length === 0) {\n                    // do not indent empty lines => nothing to do\n                    continue;\n                }\n                if (indentationEndIndex === -1) {\n                    // the entire line is whitespace\n                    indentationEndIndex = lineText.length;\n                }\n                if (this._opts.isUnshift && indentationEndIndex === 0) {\n                    // line with no leading whitespace => nothing to do\n                    continue;\n                }\n                if (this._opts.isUnshift) {\n                    indentationEndIndex = Math.min(indentationEndIndex, indentSize);\n                    for (let i = 0; i < indentationEndIndex; i++) {\n                        const chr = lineText.charCodeAt(i);\n                        if (chr === 9 /* CharCode.Tab */) {\n                            indentationEndIndex = i + 1;\n                            break;\n                        }\n                    }\n                    this._addEditOperation(builder, new Range(lineNumber, 1, lineNumber, indentationEndIndex + 1), '');\n                }\n                else {\n                    this._addEditOperation(builder, new Range(lineNumber, 1, lineNumber, 1), oneIndent);\n                    if (lineNumber === startLine && !this._selection.isEmpty()) {\n                        // Force the startColumn to stay put because we're inserting after it\n                        this._selectionStartColumnStaysPut = (this._selection.startColumn === 1);\n                    }\n                }\n            }\n        }\n        this._selectionId = builder.trackSelection(this._selection);\n    }\n    computeCursorState(model, helper) {\n        if (this._useLastEditRangeForCursorEndPosition) {\n            const lastOp = helper.getInverseEditOperations()[0];\n            return new Selection(lastOp.range.endLineNumber, lastOp.range.endColumn, lastOp.range.endLineNumber, lastOp.range.endColumn);\n        }\n        const result = helper.getTrackedSelection(this._selectionId);\n        if (this._selectionStartColumnStaysPut) {\n            // The selection start should not move\n            const initialStartColumn = this._selection.startColumn;\n            const resultStartColumn = result.startColumn;\n            if (resultStartColumn <= initialStartColumn) {\n                return result;\n            }\n            if (result.getDirection() === 0 /* SelectionDirection.LTR */) {\n                return new Selection(result.startLineNumber, initialStartColumn, result.endLineNumber, result.endColumn);\n            }\n            return new Selection(result.endLineNumber, result.endColumn, result.startLineNumber, initialStartColumn);\n        }\n        return result;\n    }\n};\nShiftCommand = ShiftCommand_1 = __decorate([\n    __param(2, ILanguageConfigurationService)\n], ShiftCommand);\nexport { ShiftCommand };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/commands/surroundSelectionCommand.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Range } from '../core/range.js';\nimport { Selection } from '../core/selection.js';\nexport class SurroundSelectionCommand {\n    constructor(range, charBeforeSelection, charAfterSelection) {\n        this._range = range;\n        this._charBeforeSelection = charBeforeSelection;\n        this._charAfterSelection = charAfterSelection;\n    }\n    getEditOperations(model, builder) {\n        builder.addTrackedEditOperation(new Range(this._range.startLineNumber, this._range.startColumn, this._range.startLineNumber, this._range.startColumn), this._charBeforeSelection);\n        builder.addTrackedEditOperation(new Range(this._range.endLineNumber, this._range.endColumn, this._range.endLineNumber, this._range.endColumn), this._charAfterSelection);\n    }\n    computeCursorState(model, helper) {\n        const inverseEditOperations = helper.getInverseEditOperations();\n        const firstOperationRange = inverseEditOperations[0].range;\n        const secondOperationRange = inverseEditOperations[1].range;\n        return new Selection(firstOperationRange.endLineNumber, firstOperationRange.endColumn, secondOperationRange.endLineNumber, secondOperationRange.endColumn - this._charAfterSelection.length);\n    }\n}\n/**\n * A surround selection command that runs after composition finished.\n */\nexport class CompositionSurroundSelectionCommand {\n    constructor(_position, _text, _charAfter) {\n        this._position = _position;\n        this._text = _text;\n        this._charAfter = _charAfter;\n    }\n    getEditOperations(model, builder) {\n        builder.addTrackedEditOperation(new Range(this._position.lineNumber, this._position.column, this._position.lineNumber, this._position.column), this._text + this._charAfter);\n    }\n    computeCursorState(model, helper) {\n        const inverseEditOperations = helper.getInverseEditOperations();\n        const opRange = inverseEditOperations[0].range;\n        return new Selection(opRange.endLineNumber, opRange.startColumn, opRange.endLineNumber, opRange.endColumn - this._charAfter.length);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/commands/trimTrailingWhitespaceCommand.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../base/common/strings.js';\nimport { EditOperation } from '../core/editOperation.js';\nimport { Range } from '../core/range.js';\nexport class TrimTrailingWhitespaceCommand {\n    constructor(selection, cursors, trimInRegexesAndStrings) {\n        this._selection = selection;\n        this._cursors = cursors;\n        this._selectionId = null;\n        this._trimInRegexesAndStrings = trimInRegexesAndStrings;\n    }\n    getEditOperations(model, builder) {\n        const ops = trimTrailingWhitespace(model, this._cursors, this._trimInRegexesAndStrings);\n        for (let i = 0, len = ops.length; i < len; i++) {\n            const op = ops[i];\n            builder.addEditOperation(op.range, op.text);\n        }\n        this._selectionId = builder.trackSelection(this._selection);\n    }\n    computeCursorState(model, helper) {\n        return helper.getTrackedSelection(this._selectionId);\n    }\n}\n/**\n * Generate commands for trimming trailing whitespace on a model and ignore lines on which cursors are sitting.\n */\nexport function trimTrailingWhitespace(model, cursors, trimInRegexesAndStrings) {\n    // Sort cursors ascending\n    cursors.sort((a, b) => {\n        if (a.lineNumber === b.lineNumber) {\n            return a.column - b.column;\n        }\n        return a.lineNumber - b.lineNumber;\n    });\n    // Reduce multiple cursors on the same line and only keep the last one on the line\n    for (let i = cursors.length - 2; i >= 0; i--) {\n        if (cursors[i].lineNumber === cursors[i + 1].lineNumber) {\n            // Remove cursor at `i`\n            cursors.splice(i, 1);\n        }\n    }\n    const r = [];\n    let rLen = 0;\n    let cursorIndex = 0;\n    const cursorLen = cursors.length;\n    for (let lineNumber = 1, lineCount = model.getLineCount(); lineNumber <= lineCount; lineNumber++) {\n        const lineContent = model.getLineContent(lineNumber);\n        const maxLineColumn = lineContent.length + 1;\n        let minEditColumn = 0;\n        if (cursorIndex < cursorLen && cursors[cursorIndex].lineNumber === lineNumber) {\n            minEditColumn = cursors[cursorIndex].column;\n            cursorIndex++;\n            if (minEditColumn === maxLineColumn) {\n                // The cursor is at the end of the line => no edits for sure on this line\n                continue;\n            }\n        }\n        if (lineContent.length === 0) {\n            continue;\n        }\n        const lastNonWhitespaceIndex = strings.lastNonWhitespaceIndex(lineContent);\n        let fromColumn = 0;\n        if (lastNonWhitespaceIndex === -1) {\n            // Entire line is whitespace\n            fromColumn = 1;\n        }\n        else if (lastNonWhitespaceIndex !== lineContent.length - 1) {\n            // There is trailing whitespace\n            fromColumn = lastNonWhitespaceIndex + 2;\n        }\n        else {\n            // There is no trailing whitespace\n            continue;\n        }\n        if (!trimInRegexesAndStrings) {\n            if (!model.tokenization.hasAccurateTokensForLine(lineNumber)) {\n                // We don't want to force line tokenization, as that can be expensive, but we also don't want to trim\n                // trailing whitespace in lines that are not tokenized yet, as that can be wrong and trim whitespace from\n                // lines that the user requested we don't. So we bail out if the tokens are not accurate for this line.\n                continue;\n            }\n            const lineTokens = model.tokenization.getLineTokens(lineNumber);\n            const fromColumnType = lineTokens.getStandardTokenType(lineTokens.findTokenIndexAtOffset(fromColumn));\n            if (fromColumnType === 2 /* StandardTokenType.String */ || fromColumnType === 3 /* StandardTokenType.RegEx */) {\n                continue;\n            }\n        }\n        fromColumn = Math.max(minEditColumn, fromColumn);\n        r[rLen++] = EditOperation.delete(new Range(lineNumber, fromColumn, lineNumber, maxLineColumn));\n    }\n    return r;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/config/diffEditor.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport const diffEditorDefaultOptions = {\n    enableSplitViewResizing: true,\n    splitViewDefaultRatio: 0.5,\n    renderSideBySide: true,\n    renderMarginRevertIcon: true,\n    renderGutterMenu: true,\n    maxComputationTime: 5000,\n    maxFileSize: 50,\n    ignoreTrimWhitespace: true,\n    renderIndicators: true,\n    originalEditable: false,\n    diffCodeLens: false,\n    renderOverviewRuler: true,\n    diffWordWrap: 'inherit',\n    diffAlgorithm: 'advanced',\n    accessibilityVerbose: false,\n    experimental: {\n        showMoves: false,\n        showEmptyDecorations: true,\n    },\n    hideUnchangedRegions: {\n        enabled: false,\n        contextLineCount: 3,\n        minimumLineCount: 3,\n        revealLineCount: 20,\n    },\n    isInEmbeddedEditor: false,\n    onlyShowAccessibleDiffViewer: false,\n    renderSideBySideInlineBreakpoint: 900,\n    useInlineViewWhenSpaceIsLimited: true,\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/config/editorConfiguration.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport {};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/config/editorConfigurationSchema.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { diffEditorDefaultOptions } from './diffEditor.js';\nimport { editorOptionsRegistry } from './editorOptions.js';\nimport { EDITOR_MODEL_DEFAULTS } from '../core/textModelDefaults.js';\nimport * as nls from '../../../nls.js';\nimport { Extensions } from '../../../platform/configuration/common/configurationRegistry.js';\nimport { Registry } from '../../../platform/registry/common/platform.js';\nexport const editorConfigurationBaseNode = Object.freeze({\n    id: 'editor',\n    order: 5,\n    type: 'object',\n    title: nls.localize('editorConfigurationTitle', \"Editor\"),\n    scope: 5 /* ConfigurationScope.LANGUAGE_OVERRIDABLE */,\n});\nconst editorConfiguration = {\n    ...editorConfigurationBaseNode,\n    properties: {\n        'editor.tabSize': {\n            type: 'number',\n            default: EDITOR_MODEL_DEFAULTS.tabSize,\n            minimum: 1,\n            markdownDescription: nls.localize('tabSize', \"The number of spaces a tab is equal to. This setting is overridden based on the file contents when {0} is on.\", '`#editor.detectIndentation#`')\n        },\n        'editor.indentSize': {\n            'anyOf': [\n                {\n                    type: 'string',\n                    enum: ['tabSize']\n                },\n                {\n                    type: 'number',\n                    minimum: 1\n                }\n            ],\n            default: 'tabSize',\n            markdownDescription: nls.localize('indentSize', \"The number of spaces used for indentation or `\\\"tabSize\\\"` to use the value from `#editor.tabSize#`. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.\")\n        },\n        'editor.insertSpaces': {\n            type: 'boolean',\n            default: EDITOR_MODEL_DEFAULTS.insertSpaces,\n            markdownDescription: nls.localize('insertSpaces', \"Insert spaces when pressing `Tab`. This setting is overridden based on the file contents when {0} is on.\", '`#editor.detectIndentation#`')\n        },\n        'editor.detectIndentation': {\n            type: 'boolean',\n            default: EDITOR_MODEL_DEFAULTS.detectIndentation,\n            markdownDescription: nls.localize('detectIndentation', \"Controls whether {0} and {1} will be automatically detected when a file is opened based on the file contents.\", '`#editor.tabSize#`', '`#editor.insertSpaces#`')\n        },\n        'editor.trimAutoWhitespace': {\n            type: 'boolean',\n            default: EDITOR_MODEL_DEFAULTS.trimAutoWhitespace,\n            description: nls.localize('trimAutoWhitespace', \"Remove trailing auto inserted whitespace.\")\n        },\n        'editor.largeFileOptimizations': {\n            type: 'boolean',\n            default: EDITOR_MODEL_DEFAULTS.largeFileOptimizations,\n            description: nls.localize('largeFileOptimizations', \"Special handling for large files to disable certain memory intensive features.\")\n        },\n        'editor.wordBasedSuggestions': {\n            enum: ['off', 'currentDocument', 'matchingDocuments', 'allDocuments'],\n            default: 'matchingDocuments',\n            enumDescriptions: [\n                nls.localize('wordBasedSuggestions.off', 'Turn off Word Based Suggestions.'),\n                nls.localize('wordBasedSuggestions.currentDocument', 'Only suggest words from the active document.'),\n                nls.localize('wordBasedSuggestions.matchingDocuments', 'Suggest words from all open documents of the same language.'),\n                nls.localize('wordBasedSuggestions.allDocuments', 'Suggest words from all open documents.')\n            ],\n            description: nls.localize('wordBasedSuggestions', \"Controls whether completions should be computed based on words in the document and from which documents they are computed.\")\n        },\n        'editor.semanticHighlighting.enabled': {\n            enum: [true, false, 'configuredByTheme'],\n            enumDescriptions: [\n                nls.localize('semanticHighlighting.true', 'Semantic highlighting enabled for all color themes.'),\n                nls.localize('semanticHighlighting.false', 'Semantic highlighting disabled for all color themes.'),\n                nls.localize('semanticHighlighting.configuredByTheme', 'Semantic highlighting is configured by the current color theme\\'s `semanticHighlighting` setting.')\n            ],\n            default: 'configuredByTheme',\n            description: nls.localize('semanticHighlighting.enabled', \"Controls whether the semanticHighlighting is shown for the languages that support it.\")\n        },\n        'editor.stablePeek': {\n            type: 'boolean',\n            default: false,\n            markdownDescription: nls.localize('stablePeek', \"Keep peek editors open even when double-clicking their content or when hitting `Escape`.\")\n        },\n        'editor.maxTokenizationLineLength': {\n            type: 'integer',\n            default: 20000,\n            description: nls.localize('maxTokenizationLineLength', \"Lines above this length will not be tokenized for performance reasons\")\n        },\n        'editor.experimental.asyncTokenization': {\n            type: 'boolean',\n            default: false,\n            description: nls.localize('editor.experimental.asyncTokenization', \"Controls whether the tokenization should happen asynchronously on a web worker.\"),\n            tags: ['experimental'],\n        },\n        'editor.experimental.asyncTokenizationLogging': {\n            type: 'boolean',\n            default: false,\n            description: nls.localize('editor.experimental.asyncTokenizationLogging', \"Controls whether async tokenization should be logged. For debugging only.\"),\n        },\n        'editor.experimental.asyncTokenizationVerification': {\n            type: 'boolean',\n            default: false,\n            description: nls.localize('editor.experimental.asyncTokenizationVerification', \"Controls whether async tokenization should be verified against legacy background tokenization. Might slow down tokenization. For debugging only.\"),\n            tags: ['experimental'],\n        },\n        'editor.language.brackets': {\n            type: ['array', 'null'],\n            default: null, // We want to distinguish the empty array from not configured.\n            description: nls.localize('schema.brackets', 'Defines the bracket symbols that increase or decrease the indentation.'),\n            items: {\n                type: 'array',\n                items: [\n                    {\n                        type: 'string',\n                        description: nls.localize('schema.openBracket', 'The opening bracket character or string sequence.')\n                    },\n                    {\n                        type: 'string',\n                        description: nls.localize('schema.closeBracket', 'The closing bracket character or string sequence.')\n                    }\n                ]\n            }\n        },\n        'editor.language.colorizedBracketPairs': {\n            type: ['array', 'null'],\n            default: null, // We want to distinguish the empty array from not configured.\n            description: nls.localize('schema.colorizedBracketPairs', 'Defines the bracket pairs that are colorized by their nesting level if bracket pair colorization is enabled.'),\n            items: {\n                type: 'array',\n                items: [\n                    {\n                        type: 'string',\n                        description: nls.localize('schema.openBracket', 'The opening bracket character or string sequence.')\n                    },\n                    {\n                        type: 'string',\n                        description: nls.localize('schema.closeBracket', 'The closing bracket character or string sequence.')\n                    }\n                ]\n            }\n        },\n        'diffEditor.maxComputationTime': {\n            type: 'number',\n            default: diffEditorDefaultOptions.maxComputationTime,\n            description: nls.localize('maxComputationTime', \"Timeout in milliseconds after which diff computation is cancelled. Use 0 for no timeout.\")\n        },\n        'diffEditor.maxFileSize': {\n            type: 'number',\n            default: diffEditorDefaultOptions.maxFileSize,\n            description: nls.localize('maxFileSize', \"Maximum file size in MB for which to compute diffs. Use 0 for no limit.\")\n        },\n        'diffEditor.renderSideBySide': {\n            type: 'boolean',\n            default: diffEditorDefaultOptions.renderSideBySide,\n            description: nls.localize('sideBySide', \"Controls whether the diff editor shows the diff side by side or inline.\")\n        },\n        'diffEditor.renderSideBySideInlineBreakpoint': {\n            type: 'number',\n            default: diffEditorDefaultOptions.renderSideBySideInlineBreakpoint,\n            description: nls.localize('renderSideBySideInlineBreakpoint', \"If the diff editor width is smaller than this value, the inline view is used.\")\n        },\n        'diffEditor.useInlineViewWhenSpaceIsLimited': {\n            type: 'boolean',\n            default: diffEditorDefaultOptions.useInlineViewWhenSpaceIsLimited,\n            description: nls.localize('useInlineViewWhenSpaceIsLimited', \"If enabled and the editor width is too small, the inline view is used.\")\n        },\n        'diffEditor.renderMarginRevertIcon': {\n            type: 'boolean',\n            default: diffEditorDefaultOptions.renderMarginRevertIcon,\n            description: nls.localize('renderMarginRevertIcon', \"When enabled, the diff editor shows arrows in its glyph margin to revert changes.\")\n        },\n        'diffEditor.renderGutterMenu': {\n            type: 'boolean',\n            default: diffEditorDefaultOptions.renderGutterMenu,\n            description: nls.localize('renderGutterMenu', \"When enabled, the diff editor shows a special gutter for revert and stage actions.\")\n        },\n        'diffEditor.ignoreTrimWhitespace': {\n            type: 'boolean',\n            default: diffEditorDefaultOptions.ignoreTrimWhitespace,\n            description: nls.localize('ignoreTrimWhitespace', \"When enabled, the diff editor ignores changes in leading or trailing whitespace.\")\n        },\n        'diffEditor.renderIndicators': {\n            type: 'boolean',\n            default: diffEditorDefaultOptions.renderIndicators,\n            description: nls.localize('renderIndicators', \"Controls whether the diff editor shows +/- indicators for added/removed changes.\")\n        },\n        'diffEditor.codeLens': {\n            type: 'boolean',\n            default: diffEditorDefaultOptions.diffCodeLens,\n            description: nls.localize('codeLens', \"Controls whether the editor shows CodeLens.\")\n        },\n        'diffEditor.wordWrap': {\n            type: 'string',\n            enum: ['off', 'on', 'inherit'],\n            default: diffEditorDefaultOptions.diffWordWrap,\n            markdownEnumDescriptions: [\n                nls.localize('wordWrap.off', \"Lines will never wrap.\"),\n                nls.localize('wordWrap.on', \"Lines will wrap at the viewport width.\"),\n                nls.localize('wordWrap.inherit', \"Lines will wrap according to the {0} setting.\", '`#editor.wordWrap#`'),\n            ]\n        },\n        'diffEditor.diffAlgorithm': {\n            type: 'string',\n            enum: ['legacy', 'advanced'],\n            default: diffEditorDefaultOptions.diffAlgorithm,\n            markdownEnumDescriptions: [\n                nls.localize('diffAlgorithm.legacy', \"Uses the legacy diffing algorithm.\"),\n                nls.localize('diffAlgorithm.advanced', \"Uses the advanced diffing algorithm.\"),\n            ],\n            tags: ['experimental'],\n        },\n        'diffEditor.hideUnchangedRegions.enabled': {\n            type: 'boolean',\n            default: diffEditorDefaultOptions.hideUnchangedRegions.enabled,\n            markdownDescription: nls.localize('hideUnchangedRegions.enabled', \"Controls whether the diff editor shows unchanged regions.\"),\n        },\n        'diffEditor.hideUnchangedRegions.revealLineCount': {\n            type: 'integer',\n            default: diffEditorDefaultOptions.hideUnchangedRegions.revealLineCount,\n            markdownDescription: nls.localize('hideUnchangedRegions.revealLineCount', \"Controls how many lines are used for unchanged regions.\"),\n            minimum: 1,\n        },\n        'diffEditor.hideUnchangedRegions.minimumLineCount': {\n            type: 'integer',\n            default: diffEditorDefaultOptions.hideUnchangedRegions.minimumLineCount,\n            markdownDescription: nls.localize('hideUnchangedRegions.minimumLineCount', \"Controls how many lines are used as a minimum for unchanged regions.\"),\n            minimum: 1,\n        },\n        'diffEditor.hideUnchangedRegions.contextLineCount': {\n            type: 'integer',\n            default: diffEditorDefaultOptions.hideUnchangedRegions.contextLineCount,\n            markdownDescription: nls.localize('hideUnchangedRegions.contextLineCount', \"Controls how many lines are used as context when comparing unchanged regions.\"),\n            minimum: 1,\n        },\n        'diffEditor.experimental.showMoves': {\n            type: 'boolean',\n            default: diffEditorDefaultOptions.experimental.showMoves,\n            markdownDescription: nls.localize('showMoves', \"Controls whether the diff editor should show detected code moves.\")\n        },\n        'diffEditor.experimental.showEmptyDecorations': {\n            type: 'boolean',\n            default: diffEditorDefaultOptions.experimental.showEmptyDecorations,\n            description: nls.localize('showEmptyDecorations', \"Controls whether the diff editor shows empty decorations to see where characters got inserted or deleted.\"),\n        }\n    }\n};\nfunction isConfigurationPropertySchema(x) {\n    return (typeof x.type !== 'undefined' || typeof x.anyOf !== 'undefined');\n}\n// Add properties from the Editor Option Registry\nfor (const editorOption of editorOptionsRegistry) {\n    const schema = editorOption.schema;\n    if (typeof schema !== 'undefined') {\n        if (isConfigurationPropertySchema(schema)) {\n            // This is a single schema contribution\n            editorConfiguration.properties[`editor.${editorOption.name}`] = schema;\n        }\n        else {\n            for (const key in schema) {\n                if (Object.hasOwnProperty.call(schema, key)) {\n                    editorConfiguration.properties[key] = schema[key];\n                }\n            }\n        }\n    }\n}\nlet cachedEditorConfigurationKeys = null;\nfunction getEditorConfigurationKeys() {\n    if (cachedEditorConfigurationKeys === null) {\n        cachedEditorConfigurationKeys = Object.create(null);\n        Object.keys(editorConfiguration.properties).forEach((prop) => {\n            cachedEditorConfigurationKeys[prop] = true;\n        });\n    }\n    return cachedEditorConfigurationKeys;\n}\nexport function isEditorConfigurationKey(key) {\n    const editorConfigurationKeys = getEditorConfigurationKeys();\n    return (editorConfigurationKeys[`editor.${key}`] || false);\n}\nexport function isDiffEditorConfigurationKey(key) {\n    const editorConfigurationKeys = getEditorConfigurationKeys();\n    return (editorConfigurationKeys[`diffEditor.${key}`] || false);\n}\nconst configurationRegistry = Registry.as(Extensions.Configuration);\nconfigurationRegistry.registerConfiguration(editorConfiguration);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/config/editorOptions.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as arrays from '../../../base/common/arrays.js';\nimport * as objects from '../../../base/common/objects.js';\nimport * as platform from '../../../base/common/platform.js';\nimport { EDITOR_MODEL_DEFAULTS } from '../core/textModelDefaults.js';\nimport { USUAL_WORD_SEPARATORS } from '../core/wordHelper.js';\nimport * as nls from '../../../nls.js';\n/**\n * @internal\n * The width of the minimap gutter, in pixels.\n */\nexport const MINIMAP_GUTTER_WIDTH = 8;\n//#endregion\n/**\n * An event describing that the configuration of the editor has changed.\n */\nexport class ConfigurationChangedEvent {\n    /**\n     * @internal\n     */\n    constructor(values) {\n        this._values = values;\n    }\n    hasChanged(id) {\n        return this._values[id];\n    }\n}\n/**\n * @internal\n */\nexport class ComputeOptionsMemory {\n    constructor() {\n        this.stableMinimapLayoutInput = null;\n        this.stableFitMaxMinimapScale = 0;\n        this.stableFitRemainingWidth = 0;\n    }\n}\n/**\n * @internal\n */\nclass BaseEditorOption {\n    constructor(id, name, defaultValue, schema) {\n        this.id = id;\n        this.name = name;\n        this.defaultValue = defaultValue;\n        this.schema = schema;\n    }\n    applyUpdate(value, update) {\n        return applyUpdate(value, update);\n    }\n    compute(env, options, value) {\n        return value;\n    }\n}\nexport class ApplyUpdateResult {\n    constructor(newValue, didChange) {\n        this.newValue = newValue;\n        this.didChange = didChange;\n    }\n}\nfunction applyUpdate(value, update) {\n    if (typeof value !== 'object' || typeof update !== 'object' || !value || !update) {\n        return new ApplyUpdateResult(update, value !== update);\n    }\n    if (Array.isArray(value) || Array.isArray(update)) {\n        const arrayEquals = Array.isArray(value) && Array.isArray(update) && arrays.equals(value, update);\n        return new ApplyUpdateResult(update, !arrayEquals);\n    }\n    let didChange = false;\n    for (const key in update) {\n        if (update.hasOwnProperty(key)) {\n            const result = applyUpdate(value[key], update[key]);\n            if (result.didChange) {\n                value[key] = result.newValue;\n                didChange = true;\n            }\n        }\n    }\n    return new ApplyUpdateResult(value, didChange);\n}\n/**\n * @internal\n */\nclass ComputedEditorOption {\n    constructor(id) {\n        this.schema = undefined;\n        this.id = id;\n        this.name = '_never_';\n        this.defaultValue = undefined;\n    }\n    applyUpdate(value, update) {\n        return applyUpdate(value, update);\n    }\n    validate(input) {\n        return this.defaultValue;\n    }\n}\nclass SimpleEditorOption {\n    constructor(id, name, defaultValue, schema) {\n        this.id = id;\n        this.name = name;\n        this.defaultValue = defaultValue;\n        this.schema = schema;\n    }\n    applyUpdate(value, update) {\n        return applyUpdate(value, update);\n    }\n    validate(input) {\n        if (typeof input === 'undefined') {\n            return this.defaultValue;\n        }\n        return input;\n    }\n    compute(env, options, value) {\n        return value;\n    }\n}\n/**\n * @internal\n */\nexport function boolean(value, defaultValue) {\n    if (typeof value === 'undefined') {\n        return defaultValue;\n    }\n    if (value === 'false') {\n        // treat the string 'false' as false\n        return false;\n    }\n    return Boolean(value);\n}\nclass EditorBooleanOption extends SimpleEditorOption {\n    constructor(id, name, defaultValue, schema = undefined) {\n        if (typeof schema !== 'undefined') {\n            schema.type = 'boolean';\n            schema.default = defaultValue;\n        }\n        super(id, name, defaultValue, schema);\n    }\n    validate(input) {\n        return boolean(input, this.defaultValue);\n    }\n}\n/**\n * @internal\n */\nexport function clampedInt(value, defaultValue, minimum, maximum) {\n    if (typeof value === 'undefined') {\n        return defaultValue;\n    }\n    let r = parseInt(value, 10);\n    if (isNaN(r)) {\n        return defaultValue;\n    }\n    r = Math.max(minimum, r);\n    r = Math.min(maximum, r);\n    return r | 0;\n}\nclass EditorIntOption extends SimpleEditorOption {\n    static clampedInt(value, defaultValue, minimum, maximum) {\n        return clampedInt(value, defaultValue, minimum, maximum);\n    }\n    constructor(id, name, defaultValue, minimum, maximum, schema = undefined) {\n        if (typeof schema !== 'undefined') {\n            schema.type = 'integer';\n            schema.default = defaultValue;\n            schema.minimum = minimum;\n            schema.maximum = maximum;\n        }\n        super(id, name, defaultValue, schema);\n        this.minimum = minimum;\n        this.maximum = maximum;\n    }\n    validate(input) {\n        return EditorIntOption.clampedInt(input, this.defaultValue, this.minimum, this.maximum);\n    }\n}\n/**\n * @internal\n */\nexport function clampedFloat(value, defaultValue, minimum, maximum) {\n    if (typeof value === 'undefined') {\n        return defaultValue;\n    }\n    const r = EditorFloatOption.float(value, defaultValue);\n    return EditorFloatOption.clamp(r, minimum, maximum);\n}\nclass EditorFloatOption extends SimpleEditorOption {\n    static clamp(n, min, max) {\n        if (n < min) {\n            return min;\n        }\n        if (n > max) {\n            return max;\n        }\n        return n;\n    }\n    static float(value, defaultValue) {\n        if (typeof value === 'number') {\n            return value;\n        }\n        if (typeof value === 'undefined') {\n            return defaultValue;\n        }\n        const r = parseFloat(value);\n        return (isNaN(r) ? defaultValue : r);\n    }\n    constructor(id, name, defaultValue, validationFn, schema) {\n        if (typeof schema !== 'undefined') {\n            schema.type = 'number';\n            schema.default = defaultValue;\n        }\n        super(id, name, defaultValue, schema);\n        this.validationFn = validationFn;\n    }\n    validate(input) {\n        return this.validationFn(EditorFloatOption.float(input, this.defaultValue));\n    }\n}\nclass EditorStringOption extends SimpleEditorOption {\n    static string(value, defaultValue) {\n        if (typeof value !== 'string') {\n            return defaultValue;\n        }\n        return value;\n    }\n    constructor(id, name, defaultValue, schema = undefined) {\n        if (typeof schema !== 'undefined') {\n            schema.type = 'string';\n            schema.default = defaultValue;\n        }\n        super(id, name, defaultValue, schema);\n    }\n    validate(input) {\n        return EditorStringOption.string(input, this.defaultValue);\n    }\n}\n/**\n * @internal\n */\nexport function stringSet(value, defaultValue, allowedValues, renamedValues) {\n    if (typeof value !== 'string') {\n        return defaultValue;\n    }\n    if (renamedValues && value in renamedValues) {\n        return renamedValues[value];\n    }\n    if (allowedValues.indexOf(value) === -1) {\n        return defaultValue;\n    }\n    return value;\n}\nclass EditorStringEnumOption extends SimpleEditorOption {\n    constructor(id, name, defaultValue, allowedValues, schema = undefined) {\n        if (typeof schema !== 'undefined') {\n            schema.type = 'string';\n            schema.enum = allowedValues;\n            schema.default = defaultValue;\n        }\n        super(id, name, defaultValue, schema);\n        this._allowedValues = allowedValues;\n    }\n    validate(input) {\n        return stringSet(input, this.defaultValue, this._allowedValues);\n    }\n}\nclass EditorEnumOption extends BaseEditorOption {\n    constructor(id, name, defaultValue, defaultStringValue, allowedValues, convert, schema = undefined) {\n        if (typeof schema !== 'undefined') {\n            schema.type = 'string';\n            schema.enum = allowedValues;\n            schema.default = defaultStringValue;\n        }\n        super(id, name, defaultValue, schema);\n        this._allowedValues = allowedValues;\n        this._convert = convert;\n    }\n    validate(input) {\n        if (typeof input !== 'string') {\n            return this.defaultValue;\n        }\n        if (this._allowedValues.indexOf(input) === -1) {\n            return this.defaultValue;\n        }\n        return this._convert(input);\n    }\n}\n//#endregion\n//#region autoIndent\nfunction _autoIndentFromString(autoIndent) {\n    switch (autoIndent) {\n        case 'none': return 0 /* EditorAutoIndentStrategy.None */;\n        case 'keep': return 1 /* EditorAutoIndentStrategy.Keep */;\n        case 'brackets': return 2 /* EditorAutoIndentStrategy.Brackets */;\n        case 'advanced': return 3 /* EditorAutoIndentStrategy.Advanced */;\n        case 'full': return 4 /* EditorAutoIndentStrategy.Full */;\n    }\n}\n//#endregion\n//#region accessibilitySupport\nclass EditorAccessibilitySupport extends BaseEditorOption {\n    constructor() {\n        super(2 /* EditorOption.accessibilitySupport */, 'accessibilitySupport', 0 /* AccessibilitySupport.Unknown */, {\n            type: 'string',\n            enum: ['auto', 'on', 'off'],\n            enumDescriptions: [\n                nls.localize('accessibilitySupport.auto', \"Use platform APIs to detect when a Screen Reader is attached.\"),\n                nls.localize('accessibilitySupport.on', \"Optimize for usage with a Screen Reader.\"),\n                nls.localize('accessibilitySupport.off', \"Assume a screen reader is not attached.\"),\n            ],\n            default: 'auto',\n            tags: ['accessibility'],\n            description: nls.localize('accessibilitySupport', \"Controls if the UI should run in a mode where it is optimized for screen readers.\")\n        });\n    }\n    validate(input) {\n        switch (input) {\n            case 'auto': return 0 /* AccessibilitySupport.Unknown */;\n            case 'off': return 1 /* AccessibilitySupport.Disabled */;\n            case 'on': return 2 /* AccessibilitySupport.Enabled */;\n        }\n        return this.defaultValue;\n    }\n    compute(env, options, value) {\n        if (value === 0 /* AccessibilitySupport.Unknown */) {\n            // The editor reads the `accessibilitySupport` from the environment\n            return env.accessibilitySupport;\n        }\n        return value;\n    }\n}\nclass EditorComments extends BaseEditorOption {\n    constructor() {\n        const defaults = {\n            insertSpace: true,\n            ignoreEmptyLines: true,\n        };\n        super(23 /* EditorOption.comments */, 'comments', defaults, {\n            'editor.comments.insertSpace': {\n                type: 'boolean',\n                default: defaults.insertSpace,\n                description: nls.localize('comments.insertSpace', \"Controls whether a space character is inserted when commenting.\")\n            },\n            'editor.comments.ignoreEmptyLines': {\n                type: 'boolean',\n                default: defaults.ignoreEmptyLines,\n                description: nls.localize('comments.ignoreEmptyLines', 'Controls if empty lines should be ignored with toggle, add or remove actions for line comments.')\n            },\n        });\n    }\n    validate(_input) {\n        if (!_input || typeof _input !== 'object') {\n            return this.defaultValue;\n        }\n        const input = _input;\n        return {\n            insertSpace: boolean(input.insertSpace, this.defaultValue.insertSpace),\n            ignoreEmptyLines: boolean(input.ignoreEmptyLines, this.defaultValue.ignoreEmptyLines),\n        };\n    }\n}\nfunction _cursorBlinkingStyleFromString(cursorBlinkingStyle) {\n    switch (cursorBlinkingStyle) {\n        case 'blink': return 1 /* TextEditorCursorBlinkingStyle.Blink */;\n        case 'smooth': return 2 /* TextEditorCursorBlinkingStyle.Smooth */;\n        case 'phase': return 3 /* TextEditorCursorBlinkingStyle.Phase */;\n        case 'expand': return 4 /* TextEditorCursorBlinkingStyle.Expand */;\n        case 'solid': return 5 /* TextEditorCursorBlinkingStyle.Solid */;\n    }\n}\n//#endregion\n//#region cursorStyle\n/**\n * The style in which the editor's cursor should be rendered.\n */\nexport var TextEditorCursorStyle;\n(function (TextEditorCursorStyle) {\n    /**\n     * As a vertical line (sitting between two characters).\n     */\n    TextEditorCursorStyle[TextEditorCursorStyle[\"Line\"] = 1] = \"Line\";\n    /**\n     * As a block (sitting on top of a character).\n     */\n    TextEditorCursorStyle[TextEditorCursorStyle[\"Block\"] = 2] = \"Block\";\n    /**\n     * As a horizontal line (sitting under a character).\n     */\n    TextEditorCursorStyle[TextEditorCursorStyle[\"Underline\"] = 3] = \"Underline\";\n    /**\n     * As a thin vertical line (sitting between two characters).\n     */\n    TextEditorCursorStyle[TextEditorCursorStyle[\"LineThin\"] = 4] = \"LineThin\";\n    /**\n     * As an outlined block (sitting on top of a character).\n     */\n    TextEditorCursorStyle[TextEditorCursorStyle[\"BlockOutline\"] = 5] = \"BlockOutline\";\n    /**\n     * As a thin horizontal line (sitting under a character).\n     */\n    TextEditorCursorStyle[TextEditorCursorStyle[\"UnderlineThin\"] = 6] = \"UnderlineThin\";\n})(TextEditorCursorStyle || (TextEditorCursorStyle = {}));\nfunction _cursorStyleFromString(cursorStyle) {\n    switch (cursorStyle) {\n        case 'line': return TextEditorCursorStyle.Line;\n        case 'block': return TextEditorCursorStyle.Block;\n        case 'underline': return TextEditorCursorStyle.Underline;\n        case 'line-thin': return TextEditorCursorStyle.LineThin;\n        case 'block-outline': return TextEditorCursorStyle.BlockOutline;\n        case 'underline-thin': return TextEditorCursorStyle.UnderlineThin;\n    }\n}\n//#endregion\n//#region editorClassName\nclass EditorClassName extends ComputedEditorOption {\n    constructor() {\n        super(142 /* EditorOption.editorClassName */);\n    }\n    compute(env, options, _) {\n        const classNames = ['monaco-editor'];\n        if (options.get(39 /* EditorOption.extraEditorClassName */)) {\n            classNames.push(options.get(39 /* EditorOption.extraEditorClassName */));\n        }\n        if (env.extraEditorClassName) {\n            classNames.push(env.extraEditorClassName);\n        }\n        if (options.get(74 /* EditorOption.mouseStyle */) === 'default') {\n            classNames.push('mouse-default');\n        }\n        else if (options.get(74 /* EditorOption.mouseStyle */) === 'copy') {\n            classNames.push('mouse-copy');\n        }\n        if (options.get(111 /* EditorOption.showUnused */)) {\n            classNames.push('showUnused');\n        }\n        if (options.get(140 /* EditorOption.showDeprecated */)) {\n            classNames.push('showDeprecated');\n        }\n        return classNames.join(' ');\n    }\n}\n//#endregion\n//#region emptySelectionClipboard\nclass EditorEmptySelectionClipboard extends EditorBooleanOption {\n    constructor() {\n        super(37 /* EditorOption.emptySelectionClipboard */, 'emptySelectionClipboard', true, { description: nls.localize('emptySelectionClipboard', \"Controls whether copying without a selection copies the current line.\") });\n    }\n    compute(env, options, value) {\n        return value && env.emptySelectionClipboard;\n    }\n}\nclass EditorFind extends BaseEditorOption {\n    constructor() {\n        const defaults = {\n            cursorMoveOnType: true,\n            seedSearchStringFromSelection: 'always',\n            autoFindInSelection: 'never',\n            globalFindClipboard: false,\n            addExtraSpaceOnTop: true,\n            loop: true\n        };\n        super(41 /* EditorOption.find */, 'find', defaults, {\n            'editor.find.cursorMoveOnType': {\n                type: 'boolean',\n                default: defaults.cursorMoveOnType,\n                description: nls.localize('find.cursorMoveOnType', \"Controls whether the cursor should jump to find matches while typing.\")\n            },\n            'editor.find.seedSearchStringFromSelection': {\n                type: 'string',\n                enum: ['never', 'always', 'selection'],\n                default: defaults.seedSearchStringFromSelection,\n                enumDescriptions: [\n                    nls.localize('editor.find.seedSearchStringFromSelection.never', 'Never seed search string from the editor selection.'),\n                    nls.localize('editor.find.seedSearchStringFromSelection.always', 'Always seed search string from the editor selection, including word at cursor position.'),\n                    nls.localize('editor.find.seedSearchStringFromSelection.selection', 'Only seed search string from the editor selection.')\n                ],\n                description: nls.localize('find.seedSearchStringFromSelection', \"Controls whether the search string in the Find Widget is seeded from the editor selection.\")\n            },\n            'editor.find.autoFindInSelection': {\n                type: 'string',\n                enum: ['never', 'always', 'multiline'],\n                default: defaults.autoFindInSelection,\n                enumDescriptions: [\n                    nls.localize('editor.find.autoFindInSelection.never', 'Never turn on Find in Selection automatically (default).'),\n                    nls.localize('editor.find.autoFindInSelection.always', 'Always turn on Find in Selection automatically.'),\n                    nls.localize('editor.find.autoFindInSelection.multiline', 'Turn on Find in Selection automatically when multiple lines of content are selected.')\n                ],\n                description: nls.localize('find.autoFindInSelection', \"Controls the condition for turning on Find in Selection automatically.\")\n            },\n            'editor.find.globalFindClipboard': {\n                type: 'boolean',\n                default: defaults.globalFindClipboard,\n                description: nls.localize('find.globalFindClipboard', \"Controls whether the Find Widget should read or modify the shared find clipboard on macOS.\"),\n                included: platform.isMacintosh\n            },\n            'editor.find.addExtraSpaceOnTop': {\n                type: 'boolean',\n                default: defaults.addExtraSpaceOnTop,\n                description: nls.localize('find.addExtraSpaceOnTop', \"Controls whether the Find Widget should add extra lines on top of the editor. When true, you can scroll beyond the first line when the Find Widget is visible.\")\n            },\n            'editor.find.loop': {\n                type: 'boolean',\n                default: defaults.loop,\n                description: nls.localize('find.loop', \"Controls whether the search automatically restarts from the beginning (or the end) when no further matches can be found.\")\n            },\n        });\n    }\n    validate(_input) {\n        if (!_input || typeof _input !== 'object') {\n            return this.defaultValue;\n        }\n        const input = _input;\n        return {\n            cursorMoveOnType: boolean(input.cursorMoveOnType, this.defaultValue.cursorMoveOnType),\n            seedSearchStringFromSelection: typeof _input.seedSearchStringFromSelection === 'boolean'\n                ? (_input.seedSearchStringFromSelection ? 'always' : 'never')\n                : stringSet(input.seedSearchStringFromSelection, this.defaultValue.seedSearchStringFromSelection, ['never', 'always', 'selection']),\n            autoFindInSelection: typeof _input.autoFindInSelection === 'boolean'\n                ? (_input.autoFindInSelection ? 'always' : 'never')\n                : stringSet(input.autoFindInSelection, this.defaultValue.autoFindInSelection, ['never', 'always', 'multiline']),\n            globalFindClipboard: boolean(input.globalFindClipboard, this.defaultValue.globalFindClipboard),\n            addExtraSpaceOnTop: boolean(input.addExtraSpaceOnTop, this.defaultValue.addExtraSpaceOnTop),\n            loop: boolean(input.loop, this.defaultValue.loop),\n        };\n    }\n}\n//#endregion\n//#region fontLigatures\n/**\n * @internal\n */\nexport class EditorFontLigatures extends BaseEditorOption {\n    constructor() {\n        super(51 /* EditorOption.fontLigatures */, 'fontLigatures', EditorFontLigatures.OFF, {\n            anyOf: [\n                {\n                    type: 'boolean',\n                    description: nls.localize('fontLigatures', \"Enables/Disables font ligatures ('calt' and 'liga' font features). Change this to a string for fine-grained control of the 'font-feature-settings' CSS property.\"),\n                },\n                {\n                    type: 'string',\n                    description: nls.localize('fontFeatureSettings', \"Explicit 'font-feature-settings' CSS property. A boolean can be passed instead if one only needs to turn on/off ligatures.\")\n                }\n            ],\n            description: nls.localize('fontLigaturesGeneral', \"Configures font ligatures or font features. Can be either a boolean to enable/disable ligatures or a string for the value of the CSS 'font-feature-settings' property.\"),\n            default: false\n        });\n    }\n    validate(input) {\n        if (typeof input === 'undefined') {\n            return this.defaultValue;\n        }\n        if (typeof input === 'string') {\n            if (input === 'false' || input.length === 0) {\n                return EditorFontLigatures.OFF;\n            }\n            if (input === 'true') {\n                return EditorFontLigatures.ON;\n            }\n            return input;\n        }\n        if (Boolean(input)) {\n            return EditorFontLigatures.ON;\n        }\n        return EditorFontLigatures.OFF;\n    }\n}\nEditorFontLigatures.OFF = '\"liga\" off, \"calt\" off';\nEditorFontLigatures.ON = '\"liga\" on, \"calt\" on';\n//#endregion\n//#region fontVariations\n/**\n * @internal\n */\nexport class EditorFontVariations extends BaseEditorOption {\n    constructor() {\n        super(54 /* EditorOption.fontVariations */, 'fontVariations', EditorFontVariations.OFF, {\n            anyOf: [\n                {\n                    type: 'boolean',\n                    description: nls.localize('fontVariations', \"Enables/Disables the translation from font-weight to font-variation-settings. Change this to a string for fine-grained control of the 'font-variation-settings' CSS property.\"),\n                },\n                {\n                    type: 'string',\n                    description: nls.localize('fontVariationSettings', \"Explicit 'font-variation-settings' CSS property. A boolean can be passed instead if one only needs to translate font-weight to font-variation-settings.\")\n                }\n            ],\n            description: nls.localize('fontVariationsGeneral', \"Configures font variations. Can be either a boolean to enable/disable the translation from font-weight to font-variation-settings or a string for the value of the CSS 'font-variation-settings' property.\"),\n            default: false\n        });\n    }\n    validate(input) {\n        if (typeof input === 'undefined') {\n            return this.defaultValue;\n        }\n        if (typeof input === 'string') {\n            if (input === 'false') {\n                return EditorFontVariations.OFF;\n            }\n            if (input === 'true') {\n                return EditorFontVariations.TRANSLATE;\n            }\n            return input;\n        }\n        if (Boolean(input)) {\n            return EditorFontVariations.TRANSLATE;\n        }\n        return EditorFontVariations.OFF;\n    }\n    compute(env, options, value) {\n        // The value is computed from the fontWeight if it is true.\n        // So take the result from env.fontInfo\n        return env.fontInfo.fontVariationSettings;\n    }\n}\n// Text is laid out using default settings.\nEditorFontVariations.OFF = 'normal';\n// Translate `fontWeight` config to the `font-variation-settings` CSS property.\nEditorFontVariations.TRANSLATE = 'translate';\n//#endregion\n//#region fontInfo\nclass EditorFontInfo extends ComputedEditorOption {\n    constructor() {\n        super(50 /* EditorOption.fontInfo */);\n    }\n    compute(env, options, _) {\n        return env.fontInfo;\n    }\n}\n//#endregion\n//#region fontSize\nclass EditorFontSize extends SimpleEditorOption {\n    constructor() {\n        super(52 /* EditorOption.fontSize */, 'fontSize', EDITOR_FONT_DEFAULTS.fontSize, {\n            type: 'number',\n            minimum: 6,\n            maximum: 100,\n            default: EDITOR_FONT_DEFAULTS.fontSize,\n            description: nls.localize('fontSize', \"Controls the font size in pixels.\")\n        });\n    }\n    validate(input) {\n        const r = EditorFloatOption.float(input, this.defaultValue);\n        if (r === 0) {\n            return EDITOR_FONT_DEFAULTS.fontSize;\n        }\n        return EditorFloatOption.clamp(r, 6, 100);\n    }\n    compute(env, options, value) {\n        // The final fontSize respects the editor zoom level.\n        // So take the result from env.fontInfo\n        return env.fontInfo.fontSize;\n    }\n}\n//#endregion\n//#region fontWeight\nclass EditorFontWeight extends BaseEditorOption {\n    constructor() {\n        super(53 /* EditorOption.fontWeight */, 'fontWeight', EDITOR_FONT_DEFAULTS.fontWeight, {\n            anyOf: [\n                {\n                    type: 'number',\n                    minimum: EditorFontWeight.MINIMUM_VALUE,\n                    maximum: EditorFontWeight.MAXIMUM_VALUE,\n                    errorMessage: nls.localize('fontWeightErrorMessage', \"Only \\\"normal\\\" and \\\"bold\\\" keywords or numbers between 1 and 1000 are allowed.\")\n                },\n                {\n                    type: 'string',\n                    pattern: '^(normal|bold|1000|[1-9][0-9]{0,2})$'\n                },\n                {\n                    enum: EditorFontWeight.SUGGESTION_VALUES\n                }\n            ],\n            default: EDITOR_FONT_DEFAULTS.fontWeight,\n            description: nls.localize('fontWeight', \"Controls the font weight. Accepts \\\"normal\\\" and \\\"bold\\\" keywords or numbers between 1 and 1000.\")\n        });\n    }\n    validate(input) {\n        if (input === 'normal' || input === 'bold') {\n            return input;\n        }\n        return String(EditorIntOption.clampedInt(input, EDITOR_FONT_DEFAULTS.fontWeight, EditorFontWeight.MINIMUM_VALUE, EditorFontWeight.MAXIMUM_VALUE));\n    }\n}\nEditorFontWeight.SUGGESTION_VALUES = ['normal', 'bold', '100', '200', '300', '400', '500', '600', '700', '800', '900'];\nEditorFontWeight.MINIMUM_VALUE = 1;\nEditorFontWeight.MAXIMUM_VALUE = 1000;\nclass EditorGoToLocation extends BaseEditorOption {\n    constructor() {\n        const defaults = {\n            multiple: 'peek',\n            multipleDefinitions: 'peek',\n            multipleTypeDefinitions: 'peek',\n            multipleDeclarations: 'peek',\n            multipleImplementations: 'peek',\n            multipleReferences: 'peek',\n            alternativeDefinitionCommand: 'editor.action.goToReferences',\n            alternativeTypeDefinitionCommand: 'editor.action.goToReferences',\n            alternativeDeclarationCommand: 'editor.action.goToReferences',\n            alternativeImplementationCommand: '',\n            alternativeReferenceCommand: '',\n        };\n        const jsonSubset = {\n            type: 'string',\n            enum: ['peek', 'gotoAndPeek', 'goto'],\n            default: defaults.multiple,\n            enumDescriptions: [\n                nls.localize('editor.gotoLocation.multiple.peek', 'Show Peek view of the results (default)'),\n                nls.localize('editor.gotoLocation.multiple.gotoAndPeek', 'Go to the primary result and show a Peek view'),\n                nls.localize('editor.gotoLocation.multiple.goto', 'Go to the primary result and enable Peek-less navigation to others')\n            ]\n        };\n        const alternativeCommandOptions = ['', 'editor.action.referenceSearch.trigger', 'editor.action.goToReferences', 'editor.action.peekImplementation', 'editor.action.goToImplementation', 'editor.action.peekTypeDefinition', 'editor.action.goToTypeDefinition', 'editor.action.peekDeclaration', 'editor.action.revealDeclaration', 'editor.action.peekDefinition', 'editor.action.revealDefinitionAside', 'editor.action.revealDefinition'];\n        super(58 /* EditorOption.gotoLocation */, 'gotoLocation', defaults, {\n            'editor.gotoLocation.multiple': {\n                deprecationMessage: nls.localize('editor.gotoLocation.multiple.deprecated', \"This setting is deprecated, please use separate settings like 'editor.editor.gotoLocation.multipleDefinitions' or 'editor.editor.gotoLocation.multipleImplementations' instead.\"),\n            },\n            'editor.gotoLocation.multipleDefinitions': {\n                description: nls.localize('editor.editor.gotoLocation.multipleDefinitions', \"Controls the behavior the 'Go to Definition'-command when multiple target locations exist.\"),\n                ...jsonSubset,\n            },\n            'editor.gotoLocation.multipleTypeDefinitions': {\n                description: nls.localize('editor.editor.gotoLocation.multipleTypeDefinitions', \"Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist.\"),\n                ...jsonSubset,\n            },\n            'editor.gotoLocation.multipleDeclarations': {\n                description: nls.localize('editor.editor.gotoLocation.multipleDeclarations', \"Controls the behavior the 'Go to Declaration'-command when multiple target locations exist.\"),\n                ...jsonSubset,\n            },\n            'editor.gotoLocation.multipleImplementations': {\n                description: nls.localize('editor.editor.gotoLocation.multipleImplemenattions', \"Controls the behavior the 'Go to Implementations'-command when multiple target locations exist.\"),\n                ...jsonSubset,\n            },\n            'editor.gotoLocation.multipleReferences': {\n                description: nls.localize('editor.editor.gotoLocation.multipleReferences', \"Controls the behavior the 'Go to References'-command when multiple target locations exist.\"),\n                ...jsonSubset,\n            },\n            'editor.gotoLocation.alternativeDefinitionCommand': {\n                type: 'string',\n                default: defaults.alternativeDefinitionCommand,\n                enum: alternativeCommandOptions,\n                description: nls.localize('alternativeDefinitionCommand', \"Alternative command id that is being executed when the result of 'Go to Definition' is the current location.\")\n            },\n            'editor.gotoLocation.alternativeTypeDefinitionCommand': {\n                type: 'string',\n                default: defaults.alternativeTypeDefinitionCommand,\n                enum: alternativeCommandOptions,\n                description: nls.localize('alternativeTypeDefinitionCommand', \"Alternative command id that is being executed when the result of 'Go to Type Definition' is the current location.\")\n            },\n            'editor.gotoLocation.alternativeDeclarationCommand': {\n                type: 'string',\n                default: defaults.alternativeDeclarationCommand,\n                enum: alternativeCommandOptions,\n                description: nls.localize('alternativeDeclarationCommand', \"Alternative command id that is being executed when the result of 'Go to Declaration' is the current location.\")\n            },\n            'editor.gotoLocation.alternativeImplementationCommand': {\n                type: 'string',\n                default: defaults.alternativeImplementationCommand,\n                enum: alternativeCommandOptions,\n                description: nls.localize('alternativeImplementationCommand', \"Alternative command id that is being executed when the result of 'Go to Implementation' is the current location.\")\n            },\n            'editor.gotoLocation.alternativeReferenceCommand': {\n                type: 'string',\n                default: defaults.alternativeReferenceCommand,\n                enum: alternativeCommandOptions,\n                description: nls.localize('alternativeReferenceCommand', \"Alternative command id that is being executed when the result of 'Go to Reference' is the current location.\")\n            },\n        });\n    }\n    validate(_input) {\n        var _a, _b, _c, _d, _e;\n        if (!_input || typeof _input !== 'object') {\n            return this.defaultValue;\n        }\n        const input = _input;\n        return {\n            multiple: stringSet(input.multiple, this.defaultValue.multiple, ['peek', 'gotoAndPeek', 'goto']),\n            multipleDefinitions: (_a = input.multipleDefinitions) !== null && _a !== void 0 ? _a : stringSet(input.multipleDefinitions, 'peek', ['peek', 'gotoAndPeek', 'goto']),\n            multipleTypeDefinitions: (_b = input.multipleTypeDefinitions) !== null && _b !== void 0 ? _b : stringSet(input.multipleTypeDefinitions, 'peek', ['peek', 'gotoAndPeek', 'goto']),\n            multipleDeclarations: (_c = input.multipleDeclarations) !== null && _c !== void 0 ? _c : stringSet(input.multipleDeclarations, 'peek', ['peek', 'gotoAndPeek', 'goto']),\n            multipleImplementations: (_d = input.multipleImplementations) !== null && _d !== void 0 ? _d : stringSet(input.multipleImplementations, 'peek', ['peek', 'gotoAndPeek', 'goto']),\n            multipleReferences: (_e = input.multipleReferences) !== null && _e !== void 0 ? _e : stringSet(input.multipleReferences, 'peek', ['peek', 'gotoAndPeek', 'goto']),\n            alternativeDefinitionCommand: EditorStringOption.string(input.alternativeDefinitionCommand, this.defaultValue.alternativeDefinitionCommand),\n            alternativeTypeDefinitionCommand: EditorStringOption.string(input.alternativeTypeDefinitionCommand, this.defaultValue.alternativeTypeDefinitionCommand),\n            alternativeDeclarationCommand: EditorStringOption.string(input.alternativeDeclarationCommand, this.defaultValue.alternativeDeclarationCommand),\n            alternativeImplementationCommand: EditorStringOption.string(input.alternativeImplementationCommand, this.defaultValue.alternativeImplementationCommand),\n            alternativeReferenceCommand: EditorStringOption.string(input.alternativeReferenceCommand, this.defaultValue.alternativeReferenceCommand),\n        };\n    }\n}\nclass EditorHover extends BaseEditorOption {\n    constructor() {\n        const defaults = {\n            enabled: true,\n            delay: 300,\n            hidingDelay: 300,\n            sticky: true,\n            above: true,\n        };\n        super(60 /* EditorOption.hover */, 'hover', defaults, {\n            'editor.hover.enabled': {\n                type: 'boolean',\n                default: defaults.enabled,\n                description: nls.localize('hover.enabled', \"Controls whether the hover is shown.\")\n            },\n            'editor.hover.delay': {\n                type: 'number',\n                default: defaults.delay,\n                minimum: 0,\n                maximum: 10000,\n                description: nls.localize('hover.delay', \"Controls the delay in milliseconds after which the hover is shown.\")\n            },\n            'editor.hover.sticky': {\n                type: 'boolean',\n                default: defaults.sticky,\n                description: nls.localize('hover.sticky', \"Controls whether the hover should remain visible when mouse is moved over it.\")\n            },\n            'editor.hover.hidingDelay': {\n                type: 'integer',\n                minimum: 0,\n                default: defaults.hidingDelay,\n                description: nls.localize('hover.hidingDelay', \"Controls the delay in milliseconds after which the hover is hidden. Requires `editor.hover.sticky` to be enabled.\")\n            },\n            'editor.hover.above': {\n                type: 'boolean',\n                default: defaults.above,\n                description: nls.localize('hover.above', \"Prefer showing hovers above the line, if there's space.\")\n            },\n        });\n    }\n    validate(_input) {\n        if (!_input || typeof _input !== 'object') {\n            return this.defaultValue;\n        }\n        const input = _input;\n        return {\n            enabled: boolean(input.enabled, this.defaultValue.enabled),\n            delay: EditorIntOption.clampedInt(input.delay, this.defaultValue.delay, 0, 10000),\n            sticky: boolean(input.sticky, this.defaultValue.sticky),\n            hidingDelay: EditorIntOption.clampedInt(input.hidingDelay, this.defaultValue.hidingDelay, 0, 600000),\n            above: boolean(input.above, this.defaultValue.above),\n        };\n    }\n}\n/**\n * @internal\n */\nexport class EditorLayoutInfoComputer extends ComputedEditorOption {\n    constructor() {\n        super(145 /* EditorOption.layoutInfo */);\n    }\n    compute(env, options, _) {\n        return EditorLayoutInfoComputer.computeLayout(options, {\n            memory: env.memory,\n            outerWidth: env.outerWidth,\n            outerHeight: env.outerHeight,\n            isDominatedByLongLines: env.isDominatedByLongLines,\n            lineHeight: env.fontInfo.lineHeight,\n            viewLineCount: env.viewLineCount,\n            lineNumbersDigitCount: env.lineNumbersDigitCount,\n            typicalHalfwidthCharacterWidth: env.fontInfo.typicalHalfwidthCharacterWidth,\n            maxDigitWidth: env.fontInfo.maxDigitWidth,\n            pixelRatio: env.pixelRatio,\n            glyphMarginDecorationLaneCount: env.glyphMarginDecorationLaneCount\n        });\n    }\n    static computeContainedMinimapLineCount(input) {\n        const typicalViewportLineCount = input.height / input.lineHeight;\n        const extraLinesBeforeFirstLine = Math.floor(input.paddingTop / input.lineHeight);\n        let extraLinesBeyondLastLine = Math.floor(input.paddingBottom / input.lineHeight);\n        if (input.scrollBeyondLastLine) {\n            extraLinesBeyondLastLine = Math.max(extraLinesBeyondLastLine, typicalViewportLineCount - 1);\n        }\n        const desiredRatio = (extraLinesBeforeFirstLine + input.viewLineCount + extraLinesBeyondLastLine) / (input.pixelRatio * input.height);\n        const minimapLineCount = Math.floor(input.viewLineCount / desiredRatio);\n        return { typicalViewportLineCount, extraLinesBeforeFirstLine, extraLinesBeyondLastLine, desiredRatio, minimapLineCount };\n    }\n    static _computeMinimapLayout(input, memory) {\n        const outerWidth = input.outerWidth;\n        const outerHeight = input.outerHeight;\n        const pixelRatio = input.pixelRatio;\n        if (!input.minimap.enabled) {\n            return {\n                renderMinimap: 0 /* RenderMinimap.None */,\n                minimapLeft: 0,\n                minimapWidth: 0,\n                minimapHeightIsEditorHeight: false,\n                minimapIsSampling: false,\n                minimapScale: 1,\n                minimapLineHeight: 1,\n                minimapCanvasInnerWidth: 0,\n                minimapCanvasInnerHeight: Math.floor(pixelRatio * outerHeight),\n                minimapCanvasOuterWidth: 0,\n                minimapCanvasOuterHeight: outerHeight,\n            };\n        }\n        // Can use memory if only the `viewLineCount` and `remainingWidth` have changed\n        const stableMinimapLayoutInput = memory.stableMinimapLayoutInput;\n        const couldUseMemory = (stableMinimapLayoutInput\n            // && input.outerWidth === lastMinimapLayoutInput.outerWidth !!! INTENTIONAL OMITTED\n            && input.outerHeight === stableMinimapLayoutInput.outerHeight\n            && input.lineHeight === stableMinimapLayoutInput.lineHeight\n            && input.typicalHalfwidthCharacterWidth === stableMinimapLayoutInput.typicalHalfwidthCharacterWidth\n            && input.pixelRatio === stableMinimapLayoutInput.pixelRatio\n            && input.scrollBeyondLastLine === stableMinimapLayoutInput.scrollBeyondLastLine\n            && input.paddingTop === stableMinimapLayoutInput.paddingTop\n            && input.paddingBottom === stableMinimapLayoutInput.paddingBottom\n            && input.minimap.enabled === stableMinimapLayoutInput.minimap.enabled\n            && input.minimap.side === stableMinimapLayoutInput.minimap.side\n            && input.minimap.size === stableMinimapLayoutInput.minimap.size\n            && input.minimap.showSlider === stableMinimapLayoutInput.minimap.showSlider\n            && input.minimap.renderCharacters === stableMinimapLayoutInput.minimap.renderCharacters\n            && input.minimap.maxColumn === stableMinimapLayoutInput.minimap.maxColumn\n            && input.minimap.scale === stableMinimapLayoutInput.minimap.scale\n            && input.verticalScrollbarWidth === stableMinimapLayoutInput.verticalScrollbarWidth\n            // && input.viewLineCount === lastMinimapLayoutInput.viewLineCount !!! INTENTIONAL OMITTED\n            // && input.remainingWidth === lastMinimapLayoutInput.remainingWidth !!! INTENTIONAL OMITTED\n            && input.isViewportWrapping === stableMinimapLayoutInput.isViewportWrapping);\n        const lineHeight = input.lineHeight;\n        const typicalHalfwidthCharacterWidth = input.typicalHalfwidthCharacterWidth;\n        const scrollBeyondLastLine = input.scrollBeyondLastLine;\n        const minimapRenderCharacters = input.minimap.renderCharacters;\n        let minimapScale = (pixelRatio >= 2 ? Math.round(input.minimap.scale * 2) : input.minimap.scale);\n        const minimapMaxColumn = input.minimap.maxColumn;\n        const minimapSize = input.minimap.size;\n        const minimapSide = input.minimap.side;\n        const verticalScrollbarWidth = input.verticalScrollbarWidth;\n        const viewLineCount = input.viewLineCount;\n        const remainingWidth = input.remainingWidth;\n        const isViewportWrapping = input.isViewportWrapping;\n        const baseCharHeight = minimapRenderCharacters ? 2 : 3;\n        let minimapCanvasInnerHeight = Math.floor(pixelRatio * outerHeight);\n        const minimapCanvasOuterHeight = minimapCanvasInnerHeight / pixelRatio;\n        let minimapHeightIsEditorHeight = false;\n        let minimapIsSampling = false;\n        let minimapLineHeight = baseCharHeight * minimapScale;\n        let minimapCharWidth = minimapScale / pixelRatio;\n        let minimapWidthMultiplier = 1;\n        if (minimapSize === 'fill' || minimapSize === 'fit') {\n            const { typicalViewportLineCount, extraLinesBeforeFirstLine, extraLinesBeyondLastLine, desiredRatio, minimapLineCount } = EditorLayoutInfoComputer.computeContainedMinimapLineCount({\n                viewLineCount: viewLineCount,\n                scrollBeyondLastLine: scrollBeyondLastLine,\n                paddingTop: input.paddingTop,\n                paddingBottom: input.paddingBottom,\n                height: outerHeight,\n                lineHeight: lineHeight,\n                pixelRatio: pixelRatio\n            });\n            // ratio is intentionally not part of the layout to avoid the layout changing all the time\n            // when doing sampling\n            const ratio = viewLineCount / minimapLineCount;\n            if (ratio > 1) {\n                minimapHeightIsEditorHeight = true;\n                minimapIsSampling = true;\n                minimapScale = 1;\n                minimapLineHeight = 1;\n                minimapCharWidth = minimapScale / pixelRatio;\n            }\n            else {\n                let fitBecomesFill = false;\n                let maxMinimapScale = minimapScale + 1;\n                if (minimapSize === 'fit') {\n                    const effectiveMinimapHeight = Math.ceil((extraLinesBeforeFirstLine + viewLineCount + extraLinesBeyondLastLine) * minimapLineHeight);\n                    if (isViewportWrapping && couldUseMemory && remainingWidth <= memory.stableFitRemainingWidth) {\n                        // There is a loop when using `fit` and viewport wrapping:\n                        // - view line count impacts minimap layout\n                        // - minimap layout impacts viewport width\n                        // - viewport width impacts view line count\n                        // To break the loop, once we go to a smaller minimap scale, we try to stick with it.\n                        fitBecomesFill = true;\n                        maxMinimapScale = memory.stableFitMaxMinimapScale;\n                    }\n                    else {\n                        fitBecomesFill = (effectiveMinimapHeight > minimapCanvasInnerHeight);\n                    }\n                }\n                if (minimapSize === 'fill' || fitBecomesFill) {\n                    minimapHeightIsEditorHeight = true;\n                    const configuredMinimapScale = minimapScale;\n                    minimapLineHeight = Math.min(lineHeight * pixelRatio, Math.max(1, Math.floor(1 / desiredRatio)));\n                    if (isViewportWrapping && couldUseMemory && remainingWidth <= memory.stableFitRemainingWidth) {\n                        // There is a loop when using `fill` and viewport wrapping:\n                        // - view line count impacts minimap layout\n                        // - minimap layout impacts viewport width\n                        // - viewport width impacts view line count\n                        // To break the loop, once we go to a smaller minimap scale, we try to stick with it.\n                        maxMinimapScale = memory.stableFitMaxMinimapScale;\n                    }\n                    minimapScale = Math.min(maxMinimapScale, Math.max(1, Math.floor(minimapLineHeight / baseCharHeight)));\n                    if (minimapScale > configuredMinimapScale) {\n                        minimapWidthMultiplier = Math.min(2, minimapScale / configuredMinimapScale);\n                    }\n                    minimapCharWidth = minimapScale / pixelRatio / minimapWidthMultiplier;\n                    minimapCanvasInnerHeight = Math.ceil((Math.max(typicalViewportLineCount, extraLinesBeforeFirstLine + viewLineCount + extraLinesBeyondLastLine)) * minimapLineHeight);\n                    if (isViewportWrapping) {\n                        // remember for next time\n                        memory.stableMinimapLayoutInput = input;\n                        memory.stableFitRemainingWidth = remainingWidth;\n                        memory.stableFitMaxMinimapScale = minimapScale;\n                    }\n                    else {\n                        memory.stableMinimapLayoutInput = null;\n                        memory.stableFitRemainingWidth = 0;\n                    }\n                }\n            }\n        }\n        // Given:\n        // (leaving 2px for the cursor to have space after the last character)\n        // viewportColumn = (contentWidth - verticalScrollbarWidth - 2) / typicalHalfwidthCharacterWidth\n        // minimapWidth = viewportColumn * minimapCharWidth\n        // contentWidth = remainingWidth - minimapWidth\n        // What are good values for contentWidth and minimapWidth ?\n        // minimapWidth = ((contentWidth - verticalScrollbarWidth - 2) / typicalHalfwidthCharacterWidth) * minimapCharWidth\n        // typicalHalfwidthCharacterWidth * minimapWidth = (contentWidth - verticalScrollbarWidth - 2) * minimapCharWidth\n        // typicalHalfwidthCharacterWidth * minimapWidth = (remainingWidth - minimapWidth - verticalScrollbarWidth - 2) * minimapCharWidth\n        // (typicalHalfwidthCharacterWidth + minimapCharWidth) * minimapWidth = (remainingWidth - verticalScrollbarWidth - 2) * minimapCharWidth\n        // minimapWidth = ((remainingWidth - verticalScrollbarWidth - 2) * minimapCharWidth) / (typicalHalfwidthCharacterWidth + minimapCharWidth)\n        const minimapMaxWidth = Math.floor(minimapMaxColumn * minimapCharWidth);\n        const minimapWidth = Math.min(minimapMaxWidth, Math.max(0, Math.floor(((remainingWidth - verticalScrollbarWidth - 2) * minimapCharWidth) / (typicalHalfwidthCharacterWidth + minimapCharWidth))) + MINIMAP_GUTTER_WIDTH);\n        let minimapCanvasInnerWidth = Math.floor(pixelRatio * minimapWidth);\n        const minimapCanvasOuterWidth = minimapCanvasInnerWidth / pixelRatio;\n        minimapCanvasInnerWidth = Math.floor(minimapCanvasInnerWidth * minimapWidthMultiplier);\n        const renderMinimap = (minimapRenderCharacters ? 1 /* RenderMinimap.Text */ : 2 /* RenderMinimap.Blocks */);\n        const minimapLeft = (minimapSide === 'left' ? 0 : (outerWidth - minimapWidth - verticalScrollbarWidth));\n        return {\n            renderMinimap,\n            minimapLeft,\n            minimapWidth,\n            minimapHeightIsEditorHeight,\n            minimapIsSampling,\n            minimapScale,\n            minimapLineHeight,\n            minimapCanvasInnerWidth,\n            minimapCanvasInnerHeight,\n            minimapCanvasOuterWidth,\n            minimapCanvasOuterHeight,\n        };\n    }\n    static computeLayout(options, env) {\n        const outerWidth = env.outerWidth | 0;\n        const outerHeight = env.outerHeight | 0;\n        const lineHeight = env.lineHeight | 0;\n        const lineNumbersDigitCount = env.lineNumbersDigitCount | 0;\n        const typicalHalfwidthCharacterWidth = env.typicalHalfwidthCharacterWidth;\n        const maxDigitWidth = env.maxDigitWidth;\n        const pixelRatio = env.pixelRatio;\n        const viewLineCount = env.viewLineCount;\n        const wordWrapOverride2 = options.get(137 /* EditorOption.wordWrapOverride2 */);\n        const wordWrapOverride1 = (wordWrapOverride2 === 'inherit' ? options.get(136 /* EditorOption.wordWrapOverride1 */) : wordWrapOverride2);\n        const wordWrap = (wordWrapOverride1 === 'inherit' ? options.get(132 /* EditorOption.wordWrap */) : wordWrapOverride1);\n        const wordWrapColumn = options.get(135 /* EditorOption.wordWrapColumn */);\n        const isDominatedByLongLines = env.isDominatedByLongLines;\n        const showGlyphMargin = options.get(57 /* EditorOption.glyphMargin */);\n        const showLineNumbers = (options.get(68 /* EditorOption.lineNumbers */).renderType !== 0 /* RenderLineNumbersType.Off */);\n        const lineNumbersMinChars = options.get(69 /* EditorOption.lineNumbersMinChars */);\n        const scrollBeyondLastLine = options.get(105 /* EditorOption.scrollBeyondLastLine */);\n        const padding = options.get(84 /* EditorOption.padding */);\n        const minimap = options.get(73 /* EditorOption.minimap */);\n        const scrollbar = options.get(103 /* EditorOption.scrollbar */);\n        const verticalScrollbarWidth = scrollbar.verticalScrollbarSize;\n        const verticalScrollbarHasArrows = scrollbar.verticalHasArrows;\n        const scrollbarArrowSize = scrollbar.arrowSize;\n        const horizontalScrollbarHeight = scrollbar.horizontalScrollbarSize;\n        const folding = options.get(43 /* EditorOption.folding */);\n        const showFoldingDecoration = options.get(110 /* EditorOption.showFoldingControls */) !== 'never';\n        let lineDecorationsWidth = options.get(66 /* EditorOption.lineDecorationsWidth */);\n        if (folding && showFoldingDecoration) {\n            lineDecorationsWidth += 16;\n        }\n        let lineNumbersWidth = 0;\n        if (showLineNumbers) {\n            const digitCount = Math.max(lineNumbersDigitCount, lineNumbersMinChars);\n            lineNumbersWidth = Math.round(digitCount * maxDigitWidth);\n        }\n        let glyphMarginWidth = 0;\n        if (showGlyphMargin) {\n            glyphMarginWidth = lineHeight * env.glyphMarginDecorationLaneCount;\n        }\n        let glyphMarginLeft = 0;\n        let lineNumbersLeft = glyphMarginLeft + glyphMarginWidth;\n        let decorationsLeft = lineNumbersLeft + lineNumbersWidth;\n        let contentLeft = decorationsLeft + lineDecorationsWidth;\n        const remainingWidth = outerWidth - glyphMarginWidth - lineNumbersWidth - lineDecorationsWidth;\n        let isWordWrapMinified = false;\n        let isViewportWrapping = false;\n        let wrappingColumn = -1;\n        if (wordWrapOverride1 === 'inherit' && isDominatedByLongLines) {\n            // Force viewport width wrapping if model is dominated by long lines\n            isWordWrapMinified = true;\n            isViewportWrapping = true;\n        }\n        else if (wordWrap === 'on' || wordWrap === 'bounded') {\n            isViewportWrapping = true;\n        }\n        else if (wordWrap === 'wordWrapColumn') {\n            wrappingColumn = wordWrapColumn;\n        }\n        const minimapLayout = EditorLayoutInfoComputer._computeMinimapLayout({\n            outerWidth: outerWidth,\n            outerHeight: outerHeight,\n            lineHeight: lineHeight,\n            typicalHalfwidthCharacterWidth: typicalHalfwidthCharacterWidth,\n            pixelRatio: pixelRatio,\n            scrollBeyondLastLine: scrollBeyondLastLine,\n            paddingTop: padding.top,\n            paddingBottom: padding.bottom,\n            minimap: minimap,\n            verticalScrollbarWidth: verticalScrollbarWidth,\n            viewLineCount: viewLineCount,\n            remainingWidth: remainingWidth,\n            isViewportWrapping: isViewportWrapping,\n        }, env.memory || new ComputeOptionsMemory());\n        if (minimapLayout.renderMinimap !== 0 /* RenderMinimap.None */ && minimapLayout.minimapLeft === 0) {\n            // the minimap is rendered to the left, so move everything to the right\n            glyphMarginLeft += minimapLayout.minimapWidth;\n            lineNumbersLeft += minimapLayout.minimapWidth;\n            decorationsLeft += minimapLayout.minimapWidth;\n            contentLeft += minimapLayout.minimapWidth;\n        }\n        const contentWidth = remainingWidth - minimapLayout.minimapWidth;\n        // (leaving 2px for the cursor to have space after the last character)\n        const viewportColumn = Math.max(1, Math.floor((contentWidth - verticalScrollbarWidth - 2) / typicalHalfwidthCharacterWidth));\n        const verticalArrowSize = (verticalScrollbarHasArrows ? scrollbarArrowSize : 0);\n        if (isViewportWrapping) {\n            // compute the actual wrappingColumn\n            wrappingColumn = Math.max(1, viewportColumn);\n            if (wordWrap === 'bounded') {\n                wrappingColumn = Math.min(wrappingColumn, wordWrapColumn);\n            }\n        }\n        return {\n            width: outerWidth,\n            height: outerHeight,\n            glyphMarginLeft: glyphMarginLeft,\n            glyphMarginWidth: glyphMarginWidth,\n            glyphMarginDecorationLaneCount: env.glyphMarginDecorationLaneCount,\n            lineNumbersLeft: lineNumbersLeft,\n            lineNumbersWidth: lineNumbersWidth,\n            decorationsLeft: decorationsLeft,\n            decorationsWidth: lineDecorationsWidth,\n            contentLeft: contentLeft,\n            contentWidth: contentWidth,\n            minimap: minimapLayout,\n            viewportColumn: viewportColumn,\n            isWordWrapMinified: isWordWrapMinified,\n            isViewportWrapping: isViewportWrapping,\n            wrappingColumn: wrappingColumn,\n            verticalScrollbarWidth: verticalScrollbarWidth,\n            horizontalScrollbarHeight: horizontalScrollbarHeight,\n            overviewRuler: {\n                top: verticalArrowSize,\n                width: verticalScrollbarWidth,\n                height: (outerHeight - 2 * verticalArrowSize),\n                right: 0\n            }\n        };\n    }\n}\n//#endregion\n//#region WrappingStrategy\nclass WrappingStrategy extends BaseEditorOption {\n    constructor() {\n        super(139 /* EditorOption.wrappingStrategy */, 'wrappingStrategy', 'simple', {\n            'editor.wrappingStrategy': {\n                enumDescriptions: [\n                    nls.localize('wrappingStrategy.simple', \"Assumes that all characters are of the same width. This is a fast algorithm that works correctly for monospace fonts and certain scripts (like Latin characters) where glyphs are of equal width.\"),\n                    nls.localize('wrappingStrategy.advanced', \"Delegates wrapping points computation to the browser. This is a slow algorithm, that might cause freezes for large files, but it works correctly in all cases.\")\n                ],\n                type: 'string',\n                enum: ['simple', 'advanced'],\n                default: 'simple',\n                description: nls.localize('wrappingStrategy', \"Controls the algorithm that computes wrapping points. Note that when in accessibility mode, advanced will be used for the best experience.\")\n            }\n        });\n    }\n    validate(input) {\n        return stringSet(input, 'simple', ['simple', 'advanced']);\n    }\n    compute(env, options, value) {\n        const accessibilitySupport = options.get(2 /* EditorOption.accessibilitySupport */);\n        if (accessibilitySupport === 2 /* AccessibilitySupport.Enabled */) {\n            // if we know for a fact that a screen reader is attached, we switch our strategy to advanced to\n            // help that the editor's wrapping points match the textarea's wrapping points\n            return 'advanced';\n        }\n        return value;\n    }\n}\n//#endregion\n//#region lightbulb\nexport var ShowLightbulbIconMode;\n(function (ShowLightbulbIconMode) {\n    ShowLightbulbIconMode[\"Off\"] = \"off\";\n    ShowLightbulbIconMode[\"OnCode\"] = \"onCode\";\n    ShowLightbulbIconMode[\"On\"] = \"on\";\n})(ShowLightbulbIconMode || (ShowLightbulbIconMode = {}));\nclass EditorLightbulb extends BaseEditorOption {\n    constructor() {\n        const defaults = { enabled: ShowLightbulbIconMode.On };\n        super(65 /* EditorOption.lightbulb */, 'lightbulb', defaults, {\n            'editor.lightbulb.enabled': {\n                type: 'string',\n                tags: ['experimental'],\n                enum: [ShowLightbulbIconMode.Off, ShowLightbulbIconMode.OnCode, ShowLightbulbIconMode.On],\n                default: defaults.enabled,\n                enumDescriptions: [\n                    nls.localize('editor.lightbulb.enabled.off', 'Disable the code action menu.'),\n                    nls.localize('editor.lightbulb.enabled.onCode', 'Show the code action menu when the cursor is on lines with code.'),\n                    nls.localize('editor.lightbulb.enabled.on', 'Show the code action menu when the cursor is on lines with code or on empty lines.'),\n                ],\n                description: nls.localize('enabled', \"Enables the Code Action lightbulb in the editor.\")\n            }\n        });\n    }\n    validate(_input) {\n        if (!_input || typeof _input !== 'object') {\n            return this.defaultValue;\n        }\n        const input = _input;\n        return {\n            enabled: stringSet(input.enabled, this.defaultValue.enabled, [ShowLightbulbIconMode.Off, ShowLightbulbIconMode.OnCode, ShowLightbulbIconMode.On])\n        };\n    }\n}\nclass EditorStickyScroll extends BaseEditorOption {\n    constructor() {\n        const defaults = { enabled: true, maxLineCount: 5, defaultModel: 'outlineModel', scrollWithEditor: true };\n        super(115 /* EditorOption.stickyScroll */, 'stickyScroll', defaults, {\n            'editor.stickyScroll.enabled': {\n                type: 'boolean',\n                default: defaults.enabled,\n                description: nls.localize('editor.stickyScroll.enabled', \"Shows the nested current scopes during the scroll at the top of the editor.\"),\n                tags: ['experimental']\n            },\n            'editor.stickyScroll.maxLineCount': {\n                type: 'number',\n                default: defaults.maxLineCount,\n                minimum: 1,\n                maximum: 20,\n                description: nls.localize('editor.stickyScroll.maxLineCount', \"Defines the maximum number of sticky lines to show.\")\n            },\n            'editor.stickyScroll.defaultModel': {\n                type: 'string',\n                enum: ['outlineModel', 'foldingProviderModel', 'indentationModel'],\n                default: defaults.defaultModel,\n                description: nls.localize('editor.stickyScroll.defaultModel', \"Defines the model to use for determining which lines to stick. If the outline model does not exist, it will fall back on the folding provider model which falls back on the indentation model. This order is respected in all three cases.\")\n            },\n            'editor.stickyScroll.scrollWithEditor': {\n                type: 'boolean',\n                default: defaults.scrollWithEditor,\n                description: nls.localize('editor.stickyScroll.scrollWithEditor', \"Enable scrolling of Sticky Scroll with the editor's horizontal scrollbar.\")\n            },\n        });\n    }\n    validate(_input) {\n        if (!_input || typeof _input !== 'object') {\n            return this.defaultValue;\n        }\n        const input = _input;\n        return {\n            enabled: boolean(input.enabled, this.defaultValue.enabled),\n            maxLineCount: EditorIntOption.clampedInt(input.maxLineCount, this.defaultValue.maxLineCount, 1, 20),\n            defaultModel: stringSet(input.defaultModel, this.defaultValue.defaultModel, ['outlineModel', 'foldingProviderModel', 'indentationModel']),\n            scrollWithEditor: boolean(input.scrollWithEditor, this.defaultValue.scrollWithEditor)\n        };\n    }\n}\nclass EditorInlayHints extends BaseEditorOption {\n    constructor() {\n        const defaults = { enabled: 'on', fontSize: 0, fontFamily: '', padding: false };\n        super(141 /* EditorOption.inlayHints */, 'inlayHints', defaults, {\n            'editor.inlayHints.enabled': {\n                type: 'string',\n                default: defaults.enabled,\n                description: nls.localize('inlayHints.enable', \"Enables the inlay hints in the editor.\"),\n                enum: ['on', 'onUnlessPressed', 'offUnlessPressed', 'off'],\n                markdownEnumDescriptions: [\n                    nls.localize('editor.inlayHints.on', \"Inlay hints are enabled\"),\n                    nls.localize('editor.inlayHints.onUnlessPressed', \"Inlay hints are showing by default and hide when holding {0}\", platform.isMacintosh ? `Ctrl+Option` : `Ctrl+Alt`),\n                    nls.localize('editor.inlayHints.offUnlessPressed', \"Inlay hints are hidden by default and show when holding {0}\", platform.isMacintosh ? `Ctrl+Option` : `Ctrl+Alt`),\n                    nls.localize('editor.inlayHints.off', \"Inlay hints are disabled\"),\n                ],\n            },\n            'editor.inlayHints.fontSize': {\n                type: 'number',\n                default: defaults.fontSize,\n                markdownDescription: nls.localize('inlayHints.fontSize', \"Controls font size of inlay hints in the editor. As default the {0} is used when the configured value is less than {1} or greater than the editor font size.\", '`#editor.fontSize#`', '`5`')\n            },\n            'editor.inlayHints.fontFamily': {\n                type: 'string',\n                default: defaults.fontFamily,\n                markdownDescription: nls.localize('inlayHints.fontFamily', \"Controls font family of inlay hints in the editor. When set to empty, the {0} is used.\", '`#editor.fontFamily#`')\n            },\n            'editor.inlayHints.padding': {\n                type: 'boolean',\n                default: defaults.padding,\n                description: nls.localize('inlayHints.padding', \"Enables the padding around the inlay hints in the editor.\")\n            }\n        });\n    }\n    validate(_input) {\n        if (!_input || typeof _input !== 'object') {\n            return this.defaultValue;\n        }\n        const input = _input;\n        if (typeof input.enabled === 'boolean') {\n            input.enabled = input.enabled ? 'on' : 'off';\n        }\n        return {\n            enabled: stringSet(input.enabled, this.defaultValue.enabled, ['on', 'off', 'offUnlessPressed', 'onUnlessPressed']),\n            fontSize: EditorIntOption.clampedInt(input.fontSize, this.defaultValue.fontSize, 0, 100),\n            fontFamily: EditorStringOption.string(input.fontFamily, this.defaultValue.fontFamily),\n            padding: boolean(input.padding, this.defaultValue.padding)\n        };\n    }\n}\n//#endregion\n//#region lineDecorationsWidth\nclass EditorLineDecorationsWidth extends BaseEditorOption {\n    constructor() {\n        super(66 /* EditorOption.lineDecorationsWidth */, 'lineDecorationsWidth', 10);\n    }\n    validate(input) {\n        if (typeof input === 'string' && /^\\d+(\\.\\d+)?ch$/.test(input)) {\n            const multiple = parseFloat(input.substring(0, input.length - 2));\n            return -multiple; // negative numbers signal a multiple\n        }\n        else {\n            return EditorIntOption.clampedInt(input, this.defaultValue, 0, 1000);\n        }\n    }\n    compute(env, options, value) {\n        if (value < 0) {\n            // negative numbers signal a multiple\n            return EditorIntOption.clampedInt(-value * env.fontInfo.typicalHalfwidthCharacterWidth, this.defaultValue, 0, 1000);\n        }\n        else {\n            return value;\n        }\n    }\n}\n//#endregion\n//#region lineHeight\nclass EditorLineHeight extends EditorFloatOption {\n    constructor() {\n        super(67 /* EditorOption.lineHeight */, 'lineHeight', EDITOR_FONT_DEFAULTS.lineHeight, x => EditorFloatOption.clamp(x, 0, 150), { markdownDescription: nls.localize('lineHeight', \"Controls the line height. \\n - Use 0 to automatically compute the line height from the font size.\\n - Values between 0 and 8 will be used as a multiplier with the font size.\\n - Values greater than or equal to 8 will be used as effective values.\") });\n    }\n    compute(env, options, value) {\n        // The lineHeight is computed from the fontSize if it is 0.\n        // Moreover, the final lineHeight respects the editor zoom level.\n        // So take the result from env.fontInfo\n        return env.fontInfo.lineHeight;\n    }\n}\nclass EditorMinimap extends BaseEditorOption {\n    constructor() {\n        const defaults = {\n            enabled: true,\n            size: 'proportional',\n            side: 'right',\n            showSlider: 'mouseover',\n            autohide: false,\n            renderCharacters: true,\n            maxColumn: 120,\n            scale: 1,\n            showRegionSectionHeaders: true,\n            showMarkSectionHeaders: true,\n            sectionHeaderFontSize: 9,\n            sectionHeaderLetterSpacing: 1,\n        };\n        super(73 /* EditorOption.minimap */, 'minimap', defaults, {\n            'editor.minimap.enabled': {\n                type: 'boolean',\n                default: defaults.enabled,\n                description: nls.localize('minimap.enabled', \"Controls whether the minimap is shown.\")\n            },\n            'editor.minimap.autohide': {\n                type: 'boolean',\n                default: defaults.autohide,\n                description: nls.localize('minimap.autohide', \"Controls whether the minimap is hidden automatically.\")\n            },\n            'editor.minimap.size': {\n                type: 'string',\n                enum: ['proportional', 'fill', 'fit'],\n                enumDescriptions: [\n                    nls.localize('minimap.size.proportional', \"The minimap has the same size as the editor contents (and might scroll).\"),\n                    nls.localize('minimap.size.fill', \"The minimap will stretch or shrink as necessary to fill the height of the editor (no scrolling).\"),\n                    nls.localize('minimap.size.fit', \"The minimap will shrink as necessary to never be larger than the editor (no scrolling).\"),\n                ],\n                default: defaults.size,\n                description: nls.localize('minimap.size', \"Controls the size of the minimap.\")\n            },\n            'editor.minimap.side': {\n                type: 'string',\n                enum: ['left', 'right'],\n                default: defaults.side,\n                description: nls.localize('minimap.side', \"Controls the side where to render the minimap.\")\n            },\n            'editor.minimap.showSlider': {\n                type: 'string',\n                enum: ['always', 'mouseover'],\n                default: defaults.showSlider,\n                description: nls.localize('minimap.showSlider', \"Controls when the minimap slider is shown.\")\n            },\n            'editor.minimap.scale': {\n                type: 'number',\n                default: defaults.scale,\n                minimum: 1,\n                maximum: 3,\n                enum: [1, 2, 3],\n                description: nls.localize('minimap.scale', \"Scale of content drawn in the minimap: 1, 2 or 3.\")\n            },\n            'editor.minimap.renderCharacters': {\n                type: 'boolean',\n                default: defaults.renderCharacters,\n                description: nls.localize('minimap.renderCharacters', \"Render the actual characters on a line as opposed to color blocks.\")\n            },\n            'editor.minimap.maxColumn': {\n                type: 'number',\n                default: defaults.maxColumn,\n                description: nls.localize('minimap.maxColumn', \"Limit the width of the minimap to render at most a certain number of columns.\")\n            },\n            'editor.minimap.showRegionSectionHeaders': {\n                type: 'boolean',\n                default: defaults.showRegionSectionHeaders,\n                description: nls.localize('minimap.showRegionSectionHeaders', \"Controls whether named regions are shown as section headers in the minimap.\")\n            },\n            'editor.minimap.showMarkSectionHeaders': {\n                type: 'boolean',\n                default: defaults.showMarkSectionHeaders,\n                description: nls.localize('minimap.showMarkSectionHeaders', \"Controls whether MARK: comments are shown as section headers in the minimap.\")\n            },\n            'editor.minimap.sectionHeaderFontSize': {\n                type: 'number',\n                default: defaults.sectionHeaderFontSize,\n                description: nls.localize('minimap.sectionHeaderFontSize', \"Controls the font size of section headers in the minimap.\")\n            },\n            'editor.minimap.sectionHeaderLetterSpacing': {\n                type: 'number',\n                default: defaults.sectionHeaderLetterSpacing,\n                description: nls.localize('minimap.sectionHeaderLetterSpacing', \"Controls the amount of space (in pixels) between characters of section header. This helps the readability of the header in small font sizes.\")\n            }\n        });\n    }\n    validate(_input) {\n        var _a, _b;\n        if (!_input || typeof _input !== 'object') {\n            return this.defaultValue;\n        }\n        const input = _input;\n        return {\n            enabled: boolean(input.enabled, this.defaultValue.enabled),\n            autohide: boolean(input.autohide, this.defaultValue.autohide),\n            size: stringSet(input.size, this.defaultValue.size, ['proportional', 'fill', 'fit']),\n            side: stringSet(input.side, this.defaultValue.side, ['right', 'left']),\n            showSlider: stringSet(input.showSlider, this.defaultValue.showSlider, ['always', 'mouseover']),\n            renderCharacters: boolean(input.renderCharacters, this.defaultValue.renderCharacters),\n            scale: EditorIntOption.clampedInt(input.scale, 1, 1, 3),\n            maxColumn: EditorIntOption.clampedInt(input.maxColumn, this.defaultValue.maxColumn, 1, 10000),\n            showRegionSectionHeaders: boolean(input.showRegionSectionHeaders, this.defaultValue.showRegionSectionHeaders),\n            showMarkSectionHeaders: boolean(input.showMarkSectionHeaders, this.defaultValue.showMarkSectionHeaders),\n            sectionHeaderFontSize: EditorFloatOption.clamp((_a = input.sectionHeaderFontSize) !== null && _a !== void 0 ? _a : this.defaultValue.sectionHeaderFontSize, 4, 32),\n            sectionHeaderLetterSpacing: EditorFloatOption.clamp((_b = input.sectionHeaderLetterSpacing) !== null && _b !== void 0 ? _b : this.defaultValue.sectionHeaderLetterSpacing, 0, 5),\n        };\n    }\n}\n//#endregion\n//#region multiCursorModifier\nfunction _multiCursorModifierFromString(multiCursorModifier) {\n    if (multiCursorModifier === 'ctrlCmd') {\n        return (platform.isMacintosh ? 'metaKey' : 'ctrlKey');\n    }\n    return 'altKey';\n}\nclass EditorPadding extends BaseEditorOption {\n    constructor() {\n        super(84 /* EditorOption.padding */, 'padding', { top: 0, bottom: 0 }, {\n            'editor.padding.top': {\n                type: 'number',\n                default: 0,\n                minimum: 0,\n                maximum: 1000,\n                description: nls.localize('padding.top', \"Controls the amount of space between the top edge of the editor and the first line.\")\n            },\n            'editor.padding.bottom': {\n                type: 'number',\n                default: 0,\n                minimum: 0,\n                maximum: 1000,\n                description: nls.localize('padding.bottom', \"Controls the amount of space between the bottom edge of the editor and the last line.\")\n            }\n        });\n    }\n    validate(_input) {\n        if (!_input || typeof _input !== 'object') {\n            return this.defaultValue;\n        }\n        const input = _input;\n        return {\n            top: EditorIntOption.clampedInt(input.top, 0, 0, 1000),\n            bottom: EditorIntOption.clampedInt(input.bottom, 0, 0, 1000)\n        };\n    }\n}\nclass EditorParameterHints extends BaseEditorOption {\n    constructor() {\n        const defaults = {\n            enabled: true,\n            cycle: true\n        };\n        super(86 /* EditorOption.parameterHints */, 'parameterHints', defaults, {\n            'editor.parameterHints.enabled': {\n                type: 'boolean',\n                default: defaults.enabled,\n                description: nls.localize('parameterHints.enabled', \"Enables a pop-up that shows parameter documentation and type information as you type.\")\n            },\n            'editor.parameterHints.cycle': {\n                type: 'boolean',\n                default: defaults.cycle,\n                description: nls.localize('parameterHints.cycle', \"Controls whether the parameter hints menu cycles or closes when reaching the end of the list.\")\n            },\n        });\n    }\n    validate(_input) {\n        if (!_input || typeof _input !== 'object') {\n            return this.defaultValue;\n        }\n        const input = _input;\n        return {\n            enabled: boolean(input.enabled, this.defaultValue.enabled),\n            cycle: boolean(input.cycle, this.defaultValue.cycle)\n        };\n    }\n}\n//#endregion\n//#region pixelRatio\nclass EditorPixelRatio extends ComputedEditorOption {\n    constructor() {\n        super(143 /* EditorOption.pixelRatio */);\n    }\n    compute(env, options, _) {\n        return env.pixelRatio;\n    }\n}\nclass EditorQuickSuggestions extends BaseEditorOption {\n    constructor() {\n        const defaults = {\n            other: 'on',\n            comments: 'off',\n            strings: 'off'\n        };\n        const types = [\n            { type: 'boolean' },\n            {\n                type: 'string',\n                enum: ['on', 'inline', 'off'],\n                enumDescriptions: [nls.localize('on', \"Quick suggestions show inside the suggest widget\"), nls.localize('inline', \"Quick suggestions show as ghost text\"), nls.localize('off', \"Quick suggestions are disabled\")]\n            }\n        ];\n        super(89 /* EditorOption.quickSuggestions */, 'quickSuggestions', defaults, {\n            type: 'object',\n            additionalProperties: false,\n            properties: {\n                strings: {\n                    anyOf: types,\n                    default: defaults.strings,\n                    description: nls.localize('quickSuggestions.strings', \"Enable quick suggestions inside strings.\")\n                },\n                comments: {\n                    anyOf: types,\n                    default: defaults.comments,\n                    description: nls.localize('quickSuggestions.comments', \"Enable quick suggestions inside comments.\")\n                },\n                other: {\n                    anyOf: types,\n                    default: defaults.other,\n                    description: nls.localize('quickSuggestions.other', \"Enable quick suggestions outside of strings and comments.\")\n                },\n            },\n            default: defaults,\n            markdownDescription: nls.localize('quickSuggestions', \"Controls whether suggestions should automatically show up while typing. This can be controlled for typing in comments, strings, and other code. Quick suggestion can be configured to show as ghost text or with the suggest widget. Also be aware of the '{0}'-setting which controls if suggestions are triggered by special characters.\", `#editor.suggestOnTriggerCharacters#`)\n        });\n        this.defaultValue = defaults;\n    }\n    validate(input) {\n        if (typeof input === 'boolean') {\n            // boolean -> all on/off\n            const value = input ? 'on' : 'off';\n            return { comments: value, strings: value, other: value };\n        }\n        if (!input || typeof input !== 'object') {\n            // invalid object\n            return this.defaultValue;\n        }\n        const { other, comments, strings } = input;\n        const allowedValues = ['on', 'inline', 'off'];\n        let validatedOther;\n        let validatedComments;\n        let validatedStrings;\n        if (typeof other === 'boolean') {\n            validatedOther = other ? 'on' : 'off';\n        }\n        else {\n            validatedOther = stringSet(other, this.defaultValue.other, allowedValues);\n        }\n        if (typeof comments === 'boolean') {\n            validatedComments = comments ? 'on' : 'off';\n        }\n        else {\n            validatedComments = stringSet(comments, this.defaultValue.comments, allowedValues);\n        }\n        if (typeof strings === 'boolean') {\n            validatedStrings = strings ? 'on' : 'off';\n        }\n        else {\n            validatedStrings = stringSet(strings, this.defaultValue.strings, allowedValues);\n        }\n        return {\n            other: validatedOther,\n            comments: validatedComments,\n            strings: validatedStrings\n        };\n    }\n}\nclass EditorRenderLineNumbersOption extends BaseEditorOption {\n    constructor() {\n        super(68 /* EditorOption.lineNumbers */, 'lineNumbers', { renderType: 1 /* RenderLineNumbersType.On */, renderFn: null }, {\n            type: 'string',\n            enum: ['off', 'on', 'relative', 'interval'],\n            enumDescriptions: [\n                nls.localize('lineNumbers.off', \"Line numbers are not rendered.\"),\n                nls.localize('lineNumbers.on', \"Line numbers are rendered as absolute number.\"),\n                nls.localize('lineNumbers.relative', \"Line numbers are rendered as distance in lines to cursor position.\"),\n                nls.localize('lineNumbers.interval', \"Line numbers are rendered every 10 lines.\")\n            ],\n            default: 'on',\n            description: nls.localize('lineNumbers', \"Controls the display of line numbers.\")\n        });\n    }\n    validate(lineNumbers) {\n        let renderType = this.defaultValue.renderType;\n        let renderFn = this.defaultValue.renderFn;\n        if (typeof lineNumbers !== 'undefined') {\n            if (typeof lineNumbers === 'function') {\n                renderType = 4 /* RenderLineNumbersType.Custom */;\n                renderFn = lineNumbers;\n            }\n            else if (lineNumbers === 'interval') {\n                renderType = 3 /* RenderLineNumbersType.Interval */;\n            }\n            else if (lineNumbers === 'relative') {\n                renderType = 2 /* RenderLineNumbersType.Relative */;\n            }\n            else if (lineNumbers === 'on') {\n                renderType = 1 /* RenderLineNumbersType.On */;\n            }\n            else {\n                renderType = 0 /* RenderLineNumbersType.Off */;\n            }\n        }\n        return {\n            renderType,\n            renderFn\n        };\n    }\n}\n//#endregion\n//#region renderValidationDecorations\n/**\n * @internal\n */\nexport function filterValidationDecorations(options) {\n    const renderValidationDecorations = options.get(98 /* EditorOption.renderValidationDecorations */);\n    if (renderValidationDecorations === 'editable') {\n        return options.get(91 /* EditorOption.readOnly */);\n    }\n    return renderValidationDecorations === 'on' ? false : true;\n}\nclass EditorRulers extends BaseEditorOption {\n    constructor() {\n        const defaults = [];\n        const columnSchema = { type: 'number', description: nls.localize('rulers.size', \"Number of monospace characters at which this editor ruler will render.\") };\n        super(102 /* EditorOption.rulers */, 'rulers', defaults, {\n            type: 'array',\n            items: {\n                anyOf: [\n                    columnSchema,\n                    {\n                        type: [\n                            'object'\n                        ],\n                        properties: {\n                            column: columnSchema,\n                            color: {\n                                type: 'string',\n                                description: nls.localize('rulers.color', \"Color of this editor ruler.\"),\n                                format: 'color-hex'\n                            }\n                        }\n                    }\n                ]\n            },\n            default: defaults,\n            description: nls.localize('rulers', \"Render vertical rulers after a certain number of monospace characters. Use multiple values for multiple rulers. No rulers are drawn if array is empty.\")\n        });\n    }\n    validate(input) {\n        if (Array.isArray(input)) {\n            const rulers = [];\n            for (const _element of input) {\n                if (typeof _element === 'number') {\n                    rulers.push({\n                        column: EditorIntOption.clampedInt(_element, 0, 0, 10000),\n                        color: null\n                    });\n                }\n                else if (_element && typeof _element === 'object') {\n                    const element = _element;\n                    rulers.push({\n                        column: EditorIntOption.clampedInt(element.column, 0, 0, 10000),\n                        color: element.color\n                    });\n                }\n            }\n            rulers.sort((a, b) => a.column - b.column);\n            return rulers;\n        }\n        return this.defaultValue;\n    }\n}\n//#endregion\n//#region readonly\n/**\n * Configuration options for readonly message\n */\nclass ReadonlyMessage extends BaseEditorOption {\n    constructor() {\n        const defaults = undefined;\n        super(92 /* EditorOption.readOnlyMessage */, 'readOnlyMessage', defaults);\n    }\n    validate(_input) {\n        if (!_input || typeof _input !== 'object') {\n            return this.defaultValue;\n        }\n        return _input;\n    }\n}\nfunction _scrollbarVisibilityFromString(visibility, defaultValue) {\n    if (typeof visibility !== 'string') {\n        return defaultValue;\n    }\n    switch (visibility) {\n        case 'hidden': return 2 /* ScrollbarVisibility.Hidden */;\n        case 'visible': return 3 /* ScrollbarVisibility.Visible */;\n        default: return 1 /* ScrollbarVisibility.Auto */;\n    }\n}\nclass EditorScrollbar extends BaseEditorOption {\n    constructor() {\n        const defaults = {\n            vertical: 1 /* ScrollbarVisibility.Auto */,\n            horizontal: 1 /* ScrollbarVisibility.Auto */,\n            arrowSize: 11,\n            useShadows: true,\n            verticalHasArrows: false,\n            horizontalHasArrows: false,\n            horizontalScrollbarSize: 12,\n            horizontalSliderSize: 12,\n            verticalScrollbarSize: 14,\n            verticalSliderSize: 14,\n            handleMouseWheel: true,\n            alwaysConsumeMouseWheel: true,\n            scrollByPage: false,\n            ignoreHorizontalScrollbarInContentHeight: false,\n        };\n        super(103 /* EditorOption.scrollbar */, 'scrollbar', defaults, {\n            'editor.scrollbar.vertical': {\n                type: 'string',\n                enum: ['auto', 'visible', 'hidden'],\n                enumDescriptions: [\n                    nls.localize('scrollbar.vertical.auto', \"The vertical scrollbar will be visible only when necessary.\"),\n                    nls.localize('scrollbar.vertical.visible', \"The vertical scrollbar will always be visible.\"),\n                    nls.localize('scrollbar.vertical.fit', \"The vertical scrollbar will always be hidden.\"),\n                ],\n                default: 'auto',\n                description: nls.localize('scrollbar.vertical', \"Controls the visibility of the vertical scrollbar.\")\n            },\n            'editor.scrollbar.horizontal': {\n                type: 'string',\n                enum: ['auto', 'visible', 'hidden'],\n                enumDescriptions: [\n                    nls.localize('scrollbar.horizontal.auto', \"The horizontal scrollbar will be visible only when necessary.\"),\n                    nls.localize('scrollbar.horizontal.visible', \"The horizontal scrollbar will always be visible.\"),\n                    nls.localize('scrollbar.horizontal.fit', \"The horizontal scrollbar will always be hidden.\"),\n                ],\n                default: 'auto',\n                description: nls.localize('scrollbar.horizontal', \"Controls the visibility of the horizontal scrollbar.\")\n            },\n            'editor.scrollbar.verticalScrollbarSize': {\n                type: 'number',\n                default: defaults.verticalScrollbarSize,\n                description: nls.localize('scrollbar.verticalScrollbarSize', \"The width of the vertical scrollbar.\")\n            },\n            'editor.scrollbar.horizontalScrollbarSize': {\n                type: 'number',\n                default: defaults.horizontalScrollbarSize,\n                description: nls.localize('scrollbar.horizontalScrollbarSize', \"The height of the horizontal scrollbar.\")\n            },\n            'editor.scrollbar.scrollByPage': {\n                type: 'boolean',\n                default: defaults.scrollByPage,\n                description: nls.localize('scrollbar.scrollByPage', \"Controls whether clicks scroll by page or jump to click position.\")\n            },\n            'editor.scrollbar.ignoreHorizontalScrollbarInContentHeight': {\n                type: 'boolean',\n                default: defaults.ignoreHorizontalScrollbarInContentHeight,\n                description: nls.localize('scrollbar.ignoreHorizontalScrollbarInContentHeight', \"When set, the horizontal scrollbar will not increase the size of the editor's content.\")\n            }\n        });\n    }\n    validate(_input) {\n        if (!_input || typeof _input !== 'object') {\n            return this.defaultValue;\n        }\n        const input = _input;\n        const horizontalScrollbarSize = EditorIntOption.clampedInt(input.horizontalScrollbarSize, this.defaultValue.horizontalScrollbarSize, 0, 1000);\n        const verticalScrollbarSize = EditorIntOption.clampedInt(input.verticalScrollbarSize, this.defaultValue.verticalScrollbarSize, 0, 1000);\n        return {\n            arrowSize: EditorIntOption.clampedInt(input.arrowSize, this.defaultValue.arrowSize, 0, 1000),\n            vertical: _scrollbarVisibilityFromString(input.vertical, this.defaultValue.vertical),\n            horizontal: _scrollbarVisibilityFromString(input.horizontal, this.defaultValue.horizontal),\n            useShadows: boolean(input.useShadows, this.defaultValue.useShadows),\n            verticalHasArrows: boolean(input.verticalHasArrows, this.defaultValue.verticalHasArrows),\n            horizontalHasArrows: boolean(input.horizontalHasArrows, this.defaultValue.horizontalHasArrows),\n            handleMouseWheel: boolean(input.handleMouseWheel, this.defaultValue.handleMouseWheel),\n            alwaysConsumeMouseWheel: boolean(input.alwaysConsumeMouseWheel, this.defaultValue.alwaysConsumeMouseWheel),\n            horizontalScrollbarSize: horizontalScrollbarSize,\n            horizontalSliderSize: EditorIntOption.clampedInt(input.horizontalSliderSize, horizontalScrollbarSize, 0, 1000),\n            verticalScrollbarSize: verticalScrollbarSize,\n            verticalSliderSize: EditorIntOption.clampedInt(input.verticalSliderSize, verticalScrollbarSize, 0, 1000),\n            scrollByPage: boolean(input.scrollByPage, this.defaultValue.scrollByPage),\n            ignoreHorizontalScrollbarInContentHeight: boolean(input.ignoreHorizontalScrollbarInContentHeight, this.defaultValue.ignoreHorizontalScrollbarInContentHeight),\n        };\n    }\n}\n/**\n * @internal\n*/\nexport const inUntrustedWorkspace = 'inUntrustedWorkspace';\n/**\n * @internal\n */\nexport const unicodeHighlightConfigKeys = {\n    allowedCharacters: 'editor.unicodeHighlight.allowedCharacters',\n    invisibleCharacters: 'editor.unicodeHighlight.invisibleCharacters',\n    nonBasicASCII: 'editor.unicodeHighlight.nonBasicASCII',\n    ambiguousCharacters: 'editor.unicodeHighlight.ambiguousCharacters',\n    includeComments: 'editor.unicodeHighlight.includeComments',\n    includeStrings: 'editor.unicodeHighlight.includeStrings',\n    allowedLocales: 'editor.unicodeHighlight.allowedLocales',\n};\nclass UnicodeHighlight extends BaseEditorOption {\n    constructor() {\n        const defaults = {\n            nonBasicASCII: inUntrustedWorkspace,\n            invisibleCharacters: true,\n            ambiguousCharacters: true,\n            includeComments: inUntrustedWorkspace,\n            includeStrings: true,\n            allowedCharacters: {},\n            allowedLocales: { _os: true, _vscode: true },\n        };\n        super(125 /* EditorOption.unicodeHighlighting */, 'unicodeHighlight', defaults, {\n            [unicodeHighlightConfigKeys.nonBasicASCII]: {\n                restricted: true,\n                type: ['boolean', 'string'],\n                enum: [true, false, inUntrustedWorkspace],\n                default: defaults.nonBasicASCII,\n                description: nls.localize('unicodeHighlight.nonBasicASCII', \"Controls whether all non-basic ASCII characters are highlighted. Only characters between U+0020 and U+007E, tab, line-feed and carriage-return are considered basic ASCII.\")\n            },\n            [unicodeHighlightConfigKeys.invisibleCharacters]: {\n                restricted: true,\n                type: 'boolean',\n                default: defaults.invisibleCharacters,\n                description: nls.localize('unicodeHighlight.invisibleCharacters', \"Controls whether characters that just reserve space or have no width at all are highlighted.\")\n            },\n            [unicodeHighlightConfigKeys.ambiguousCharacters]: {\n                restricted: true,\n                type: 'boolean',\n                default: defaults.ambiguousCharacters,\n                description: nls.localize('unicodeHighlight.ambiguousCharacters', \"Controls whether characters are highlighted that can be confused with basic ASCII characters, except those that are common in the current user locale.\")\n            },\n            [unicodeHighlightConfigKeys.includeComments]: {\n                restricted: true,\n                type: ['boolean', 'string'],\n                enum: [true, false, inUntrustedWorkspace],\n                default: defaults.includeComments,\n                description: nls.localize('unicodeHighlight.includeComments', \"Controls whether characters in comments should also be subject to Unicode highlighting.\")\n            },\n            [unicodeHighlightConfigKeys.includeStrings]: {\n                restricted: true,\n                type: ['boolean', 'string'],\n                enum: [true, false, inUntrustedWorkspace],\n                default: defaults.includeStrings,\n                description: nls.localize('unicodeHighlight.includeStrings', \"Controls whether characters in strings should also be subject to Unicode highlighting.\")\n            },\n            [unicodeHighlightConfigKeys.allowedCharacters]: {\n                restricted: true,\n                type: 'object',\n                default: defaults.allowedCharacters,\n                description: nls.localize('unicodeHighlight.allowedCharacters', \"Defines allowed characters that are not being highlighted.\"),\n                additionalProperties: {\n                    type: 'boolean'\n                }\n            },\n            [unicodeHighlightConfigKeys.allowedLocales]: {\n                restricted: true,\n                type: 'object',\n                additionalProperties: {\n                    type: 'boolean'\n                },\n                default: defaults.allowedLocales,\n                description: nls.localize('unicodeHighlight.allowedLocales', \"Unicode characters that are common in allowed locales are not being highlighted.\")\n            },\n        });\n    }\n    applyUpdate(value, update) {\n        let didChange = false;\n        if (update.allowedCharacters && value) {\n            // Treat allowedCharacters atomically\n            if (!objects.equals(value.allowedCharacters, update.allowedCharacters)) {\n                value = { ...value, allowedCharacters: update.allowedCharacters };\n                didChange = true;\n            }\n        }\n        if (update.allowedLocales && value) {\n            // Treat allowedLocales atomically\n            if (!objects.equals(value.allowedLocales, update.allowedLocales)) {\n                value = { ...value, allowedLocales: update.allowedLocales };\n                didChange = true;\n            }\n        }\n        const result = super.applyUpdate(value, update);\n        if (didChange) {\n            return new ApplyUpdateResult(result.newValue, true);\n        }\n        return result;\n    }\n    validate(_input) {\n        if (!_input || typeof _input !== 'object') {\n            return this.defaultValue;\n        }\n        const input = _input;\n        return {\n            nonBasicASCII: primitiveSet(input.nonBasicASCII, inUntrustedWorkspace, [true, false, inUntrustedWorkspace]),\n            invisibleCharacters: boolean(input.invisibleCharacters, this.defaultValue.invisibleCharacters),\n            ambiguousCharacters: boolean(input.ambiguousCharacters, this.defaultValue.ambiguousCharacters),\n            includeComments: primitiveSet(input.includeComments, inUntrustedWorkspace, [true, false, inUntrustedWorkspace]),\n            includeStrings: primitiveSet(input.includeStrings, inUntrustedWorkspace, [true, false, inUntrustedWorkspace]),\n            allowedCharacters: this.validateBooleanMap(_input.allowedCharacters, this.defaultValue.allowedCharacters),\n            allowedLocales: this.validateBooleanMap(_input.allowedLocales, this.defaultValue.allowedLocales),\n        };\n    }\n    validateBooleanMap(map, defaultValue) {\n        if ((typeof map !== 'object') || !map) {\n            return defaultValue;\n        }\n        const result = {};\n        for (const [key, value] of Object.entries(map)) {\n            if (value === true) {\n                result[key] = true;\n            }\n        }\n        return result;\n    }\n}\n/**\n * Configuration options for inline suggestions\n */\nclass InlineEditorSuggest extends BaseEditorOption {\n    constructor() {\n        const defaults = {\n            enabled: true,\n            mode: 'subwordSmart',\n            showToolbar: 'onHover',\n            suppressSuggestions: false,\n            keepOnBlur: false,\n            fontFamily: 'default'\n        };\n        super(62 /* EditorOption.inlineSuggest */, 'inlineSuggest', defaults, {\n            'editor.inlineSuggest.enabled': {\n                type: 'boolean',\n                default: defaults.enabled,\n                description: nls.localize('inlineSuggest.enabled', \"Controls whether to automatically show inline suggestions in the editor.\")\n            },\n            'editor.inlineSuggest.showToolbar': {\n                type: 'string',\n                default: defaults.showToolbar,\n                enum: ['always', 'onHover', 'never'],\n                enumDescriptions: [\n                    nls.localize('inlineSuggest.showToolbar.always', \"Show the inline suggestion toolbar whenever an inline suggestion is shown.\"),\n                    nls.localize('inlineSuggest.showToolbar.onHover', \"Show the inline suggestion toolbar when hovering over an inline suggestion.\"),\n                    nls.localize('inlineSuggest.showToolbar.never', \"Never show the inline suggestion toolbar.\"),\n                ],\n                description: nls.localize('inlineSuggest.showToolbar', \"Controls when to show the inline suggestion toolbar.\"),\n            },\n            'editor.inlineSuggest.suppressSuggestions': {\n                type: 'boolean',\n                default: defaults.suppressSuggestions,\n                description: nls.localize('inlineSuggest.suppressSuggestions', \"Controls how inline suggestions interact with the suggest widget. If enabled, the suggest widget is not shown automatically when inline suggestions are available.\")\n            },\n            'editor.inlineSuggest.fontFamily': {\n                type: 'string',\n                default: defaults.fontFamily,\n                description: nls.localize('inlineSuggest.fontFamily', \"Controls the font family of the inline suggestions.\")\n            },\n        });\n    }\n    validate(_input) {\n        if (!_input || typeof _input !== 'object') {\n            return this.defaultValue;\n        }\n        const input = _input;\n        return {\n            enabled: boolean(input.enabled, this.defaultValue.enabled),\n            mode: stringSet(input.mode, this.defaultValue.mode, ['prefix', 'subword', 'subwordSmart']),\n            showToolbar: stringSet(input.showToolbar, this.defaultValue.showToolbar, ['always', 'onHover', 'never']),\n            suppressSuggestions: boolean(input.suppressSuggestions, this.defaultValue.suppressSuggestions),\n            keepOnBlur: boolean(input.keepOnBlur, this.defaultValue.keepOnBlur),\n            fontFamily: EditorStringOption.string(input.fontFamily, this.defaultValue.fontFamily)\n        };\n    }\n}\nclass InlineEditorEdit extends BaseEditorOption {\n    constructor() {\n        const defaults = {\n            enabled: false,\n            showToolbar: 'onHover',\n            fontFamily: 'default',\n            keepOnBlur: false,\n            backgroundColoring: false,\n        };\n        super(63 /* EditorOption.inlineEdit */, 'experimentalInlineEdit', defaults, {\n            'editor.experimentalInlineEdit.enabled': {\n                type: 'boolean',\n                default: defaults.enabled,\n                description: nls.localize('inlineEdit.enabled', \"Controls whether to show inline edits in the editor.\")\n            },\n            'editor.experimentalInlineEdit.showToolbar': {\n                type: 'string',\n                default: defaults.showToolbar,\n                enum: ['always', 'onHover', 'never'],\n                enumDescriptions: [\n                    nls.localize('inlineEdit.showToolbar.always', \"Show the inline edit toolbar whenever an inline suggestion is shown.\"),\n                    nls.localize('inlineEdit.showToolbar.onHover', \"Show the inline edit toolbar when hovering over an inline suggestion.\"),\n                    nls.localize('inlineEdit.showToolbar.never', \"Never show the inline edit toolbar.\"),\n                ],\n                description: nls.localize('inlineEdit.showToolbar', \"Controls when to show the inline edit toolbar.\"),\n            },\n            'editor.experimentalInlineEdit.fontFamily': {\n                type: 'string',\n                default: defaults.fontFamily,\n                description: nls.localize('inlineEdit.fontFamily', \"Controls the font family of the inline edit.\")\n            },\n            'editor.experimentalInlineEdit.backgroundColoring': {\n                type: 'boolean',\n                default: defaults.backgroundColoring,\n                description: nls.localize('inlineEdit.backgroundColoring', \"Controls whether to color the background of inline edits.\")\n            },\n        });\n    }\n    validate(_input) {\n        if (!_input || typeof _input !== 'object') {\n            return this.defaultValue;\n        }\n        const input = _input;\n        return {\n            enabled: boolean(input.enabled, this.defaultValue.enabled),\n            showToolbar: stringSet(input.showToolbar, this.defaultValue.showToolbar, ['always', 'onHover', 'never']),\n            fontFamily: EditorStringOption.string(input.fontFamily, this.defaultValue.fontFamily),\n            keepOnBlur: boolean(input.keepOnBlur, this.defaultValue.keepOnBlur),\n            backgroundColoring: boolean(input.backgroundColoring, this.defaultValue.backgroundColoring)\n        };\n    }\n}\n/**\n * Configuration options for inline suggestions\n */\nclass BracketPairColorization extends BaseEditorOption {\n    constructor() {\n        const defaults = {\n            enabled: EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions.enabled,\n            independentColorPoolPerBracketType: EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions.independentColorPoolPerBracketType,\n        };\n        super(15 /* EditorOption.bracketPairColorization */, 'bracketPairColorization', defaults, {\n            'editor.bracketPairColorization.enabled': {\n                type: 'boolean',\n                default: defaults.enabled,\n                markdownDescription: nls.localize('bracketPairColorization.enabled', \"Controls whether bracket pair colorization is enabled or not. Use {0} to override the bracket highlight colors.\", '`#workbench.colorCustomizations#`')\n            },\n            'editor.bracketPairColorization.independentColorPoolPerBracketType': {\n                type: 'boolean',\n                default: defaults.independentColorPoolPerBracketType,\n                description: nls.localize('bracketPairColorization.independentColorPoolPerBracketType', \"Controls whether each bracket type has its own independent color pool.\")\n            },\n        });\n    }\n    validate(_input) {\n        if (!_input || typeof _input !== 'object') {\n            return this.defaultValue;\n        }\n        const input = _input;\n        return {\n            enabled: boolean(input.enabled, this.defaultValue.enabled),\n            independentColorPoolPerBracketType: boolean(input.independentColorPoolPerBracketType, this.defaultValue.independentColorPoolPerBracketType),\n        };\n    }\n}\n/**\n * Configuration options for inline suggestions\n */\nclass GuideOptions extends BaseEditorOption {\n    constructor() {\n        const defaults = {\n            bracketPairs: false,\n            bracketPairsHorizontal: 'active',\n            highlightActiveBracketPair: true,\n            indentation: true,\n            highlightActiveIndentation: true\n        };\n        super(16 /* EditorOption.guides */, 'guides', defaults, {\n            'editor.guides.bracketPairs': {\n                type: ['boolean', 'string'],\n                enum: [true, 'active', false],\n                enumDescriptions: [\n                    nls.localize('editor.guides.bracketPairs.true', \"Enables bracket pair guides.\"),\n                    nls.localize('editor.guides.bracketPairs.active', \"Enables bracket pair guides only for the active bracket pair.\"),\n                    nls.localize('editor.guides.bracketPairs.false', \"Disables bracket pair guides.\"),\n                ],\n                default: defaults.bracketPairs,\n                description: nls.localize('editor.guides.bracketPairs', \"Controls whether bracket pair guides are enabled or not.\")\n            },\n            'editor.guides.bracketPairsHorizontal': {\n                type: ['boolean', 'string'],\n                enum: [true, 'active', false],\n                enumDescriptions: [\n                    nls.localize('editor.guides.bracketPairsHorizontal.true', \"Enables horizontal guides as addition to vertical bracket pair guides.\"),\n                    nls.localize('editor.guides.bracketPairsHorizontal.active', \"Enables horizontal guides only for the active bracket pair.\"),\n                    nls.localize('editor.guides.bracketPairsHorizontal.false', \"Disables horizontal bracket pair guides.\"),\n                ],\n                default: defaults.bracketPairsHorizontal,\n                description: nls.localize('editor.guides.bracketPairsHorizontal', \"Controls whether horizontal bracket pair guides are enabled or not.\")\n            },\n            'editor.guides.highlightActiveBracketPair': {\n                type: 'boolean',\n                default: defaults.highlightActiveBracketPair,\n                description: nls.localize('editor.guides.highlightActiveBracketPair', \"Controls whether the editor should highlight the active bracket pair.\")\n            },\n            'editor.guides.indentation': {\n                type: 'boolean',\n                default: defaults.indentation,\n                description: nls.localize('editor.guides.indentation', \"Controls whether the editor should render indent guides.\")\n            },\n            'editor.guides.highlightActiveIndentation': {\n                type: ['boolean', 'string'],\n                enum: [true, 'always', false],\n                enumDescriptions: [\n                    nls.localize('editor.guides.highlightActiveIndentation.true', \"Highlights the active indent guide.\"),\n                    nls.localize('editor.guides.highlightActiveIndentation.always', \"Highlights the active indent guide even if bracket guides are highlighted.\"),\n                    nls.localize('editor.guides.highlightActiveIndentation.false', \"Do not highlight the active indent guide.\"),\n                ],\n                default: defaults.highlightActiveIndentation,\n                description: nls.localize('editor.guides.highlightActiveIndentation', \"Controls whether the editor should highlight the active indent guide.\")\n            }\n        });\n    }\n    validate(_input) {\n        if (!_input || typeof _input !== 'object') {\n            return this.defaultValue;\n        }\n        const input = _input;\n        return {\n            bracketPairs: primitiveSet(input.bracketPairs, this.defaultValue.bracketPairs, [true, false, 'active']),\n            bracketPairsHorizontal: primitiveSet(input.bracketPairsHorizontal, this.defaultValue.bracketPairsHorizontal, [true, false, 'active']),\n            highlightActiveBracketPair: boolean(input.highlightActiveBracketPair, this.defaultValue.highlightActiveBracketPair),\n            indentation: boolean(input.indentation, this.defaultValue.indentation),\n            highlightActiveIndentation: primitiveSet(input.highlightActiveIndentation, this.defaultValue.highlightActiveIndentation, [true, false, 'always']),\n        };\n    }\n}\nfunction primitiveSet(value, defaultValue, allowedValues) {\n    const idx = allowedValues.indexOf(value);\n    if (idx === -1) {\n        return defaultValue;\n    }\n    return allowedValues[idx];\n}\nclass EditorSuggest extends BaseEditorOption {\n    constructor() {\n        const defaults = {\n            insertMode: 'insert',\n            filterGraceful: true,\n            snippetsPreventQuickSuggestions: false,\n            localityBonus: false,\n            shareSuggestSelections: false,\n            selectionMode: 'always',\n            showIcons: true,\n            showStatusBar: false,\n            preview: false,\n            previewMode: 'subwordSmart',\n            showInlineDetails: true,\n            showMethods: true,\n            showFunctions: true,\n            showConstructors: true,\n            showDeprecated: true,\n            matchOnWordStartOnly: true,\n            showFields: true,\n            showVariables: true,\n            showClasses: true,\n            showStructs: true,\n            showInterfaces: true,\n            showModules: true,\n            showProperties: true,\n            showEvents: true,\n            showOperators: true,\n            showUnits: true,\n            showValues: true,\n            showConstants: true,\n            showEnums: true,\n            showEnumMembers: true,\n            showKeywords: true,\n            showWords: true,\n            showColors: true,\n            showFiles: true,\n            showReferences: true,\n            showFolders: true,\n            showTypeParameters: true,\n            showSnippets: true,\n            showUsers: true,\n            showIssues: true,\n        };\n        super(118 /* EditorOption.suggest */, 'suggest', defaults, {\n            'editor.suggest.insertMode': {\n                type: 'string',\n                enum: ['insert', 'replace'],\n                enumDescriptions: [\n                    nls.localize('suggest.insertMode.insert', \"Insert suggestion without overwriting text right of the cursor.\"),\n                    nls.localize('suggest.insertMode.replace', \"Insert suggestion and overwrite text right of the cursor.\"),\n                ],\n                default: defaults.insertMode,\n                description: nls.localize('suggest.insertMode', \"Controls whether words are overwritten when accepting completions. Note that this depends on extensions opting into this feature.\")\n            },\n            'editor.suggest.filterGraceful': {\n                type: 'boolean',\n                default: defaults.filterGraceful,\n                description: nls.localize('suggest.filterGraceful', \"Controls whether filtering and sorting suggestions accounts for small typos.\")\n            },\n            'editor.suggest.localityBonus': {\n                type: 'boolean',\n                default: defaults.localityBonus,\n                description: nls.localize('suggest.localityBonus', \"Controls whether sorting favors words that appear close to the cursor.\")\n            },\n            'editor.suggest.shareSuggestSelections': {\n                type: 'boolean',\n                default: defaults.shareSuggestSelections,\n                markdownDescription: nls.localize('suggest.shareSuggestSelections', \"Controls whether remembered suggestion selections are shared between multiple workspaces and windows (needs `#editor.suggestSelection#`).\")\n            },\n            'editor.suggest.selectionMode': {\n                type: 'string',\n                enum: ['always', 'never', 'whenTriggerCharacter', 'whenQuickSuggestion'],\n                enumDescriptions: [\n                    nls.localize('suggest.insertMode.always', \"Always select a suggestion when automatically triggering IntelliSense.\"),\n                    nls.localize('suggest.insertMode.never', \"Never select a suggestion when automatically triggering IntelliSense.\"),\n                    nls.localize('suggest.insertMode.whenTriggerCharacter', \"Select a suggestion only when triggering IntelliSense from a trigger character.\"),\n                    nls.localize('suggest.insertMode.whenQuickSuggestion', \"Select a suggestion only when triggering IntelliSense as you type.\"),\n                ],\n                default: defaults.selectionMode,\n                markdownDescription: nls.localize('suggest.selectionMode', \"Controls whether a suggestion is selected when the widget shows. Note that this only applies to automatically triggered suggestions (`#editor.quickSuggestions#` and `#editor.suggestOnTriggerCharacters#`) and that a suggestion is always selected when explicitly invoked, e.g via `Ctrl+Space`.\")\n            },\n            'editor.suggest.snippetsPreventQuickSuggestions': {\n                type: 'boolean',\n                default: defaults.snippetsPreventQuickSuggestions,\n                description: nls.localize('suggest.snippetsPreventQuickSuggestions', \"Controls whether an active snippet prevents quick suggestions.\")\n            },\n            'editor.suggest.showIcons': {\n                type: 'boolean',\n                default: defaults.showIcons,\n                description: nls.localize('suggest.showIcons', \"Controls whether to show or hide icons in suggestions.\")\n            },\n            'editor.suggest.showStatusBar': {\n                type: 'boolean',\n                default: defaults.showStatusBar,\n                description: nls.localize('suggest.showStatusBar', \"Controls the visibility of the status bar at the bottom of the suggest widget.\")\n            },\n            'editor.suggest.preview': {\n                type: 'boolean',\n                default: defaults.preview,\n                description: nls.localize('suggest.preview', \"Controls whether to preview the suggestion outcome in the editor.\")\n            },\n            'editor.suggest.showInlineDetails': {\n                type: 'boolean',\n                default: defaults.showInlineDetails,\n                description: nls.localize('suggest.showInlineDetails', \"Controls whether suggest details show inline with the label or only in the details widget.\")\n            },\n            'editor.suggest.maxVisibleSuggestions': {\n                type: 'number',\n                deprecationMessage: nls.localize('suggest.maxVisibleSuggestions.dep', \"This setting is deprecated. The suggest widget can now be resized.\"),\n            },\n            'editor.suggest.filteredTypes': {\n                type: 'object',\n                deprecationMessage: nls.localize('deprecated', \"This setting is deprecated, please use separate settings like 'editor.suggest.showKeywords' or 'editor.suggest.showSnippets' instead.\")\n            },\n            'editor.suggest.showMethods': {\n                type: 'boolean',\n                default: true,\n                markdownDescription: nls.localize('editor.suggest.showMethods', \"When enabled IntelliSense shows `method`-suggestions.\")\n            },\n            'editor.suggest.showFunctions': {\n                type: 'boolean',\n                default: true,\n                markdownDescription: nls.localize('editor.suggest.showFunctions', \"When enabled IntelliSense shows `function`-suggestions.\")\n            },\n            'editor.suggest.showConstructors': {\n                type: 'boolean',\n                default: true,\n                markdownDescription: nls.localize('editor.suggest.showConstructors', \"When enabled IntelliSense shows `constructor`-suggestions.\")\n            },\n            'editor.suggest.showDeprecated': {\n                type: 'boolean',\n                default: true,\n                markdownDescription: nls.localize('editor.suggest.showDeprecated', \"When enabled IntelliSense shows `deprecated`-suggestions.\")\n            },\n            'editor.suggest.matchOnWordStartOnly': {\n                type: 'boolean',\n                default: true,\n                markdownDescription: nls.localize('editor.suggest.matchOnWordStartOnly', \"When enabled IntelliSense filtering requires that the first character matches on a word start. For example, `c` on `Console` or `WebContext` but _not_ on `description`. When disabled IntelliSense will show more results but still sorts them by match quality.\")\n            },\n            'editor.suggest.showFields': {\n                type: 'boolean',\n                default: true,\n                markdownDescription: nls.localize('editor.suggest.showFields', \"When enabled IntelliSense shows `field`-suggestions.\")\n            },\n            'editor.suggest.showVariables': {\n                type: 'boolean',\n                default: true,\n                markdownDescription: nls.localize('editor.suggest.showVariables', \"When enabled IntelliSense shows `variable`-suggestions.\")\n            },\n            'editor.suggest.showClasses': {\n                type: 'boolean',\n                default: true,\n                markdownDescription: nls.localize('editor.suggest.showClasss', \"When enabled IntelliSense shows `class`-suggestions.\")\n            },\n            'editor.suggest.showStructs': {\n                type: 'boolean',\n                default: true,\n                markdownDescription: nls.localize('editor.suggest.showStructs', \"When enabled IntelliSense shows `struct`-suggestions.\")\n            },\n            'editor.suggest.showInterfaces': {\n                type: 'boolean',\n                default: true,\n                markdownDescription: nls.localize('editor.suggest.showInterfaces', \"When enabled IntelliSense shows `interface`-suggestions.\")\n            },\n            'editor.suggest.showModules': {\n                type: 'boolean',\n                default: true,\n                markdownDescription: nls.localize('editor.suggest.showModules', \"When enabled IntelliSense shows `module`-suggestions.\")\n            },\n            'editor.suggest.showProperties': {\n                type: 'boolean',\n                default: true,\n                markdownDescription: nls.localize('editor.suggest.showPropertys', \"When enabled IntelliSense shows `property`-suggestions.\")\n            },\n            'editor.suggest.showEvents': {\n                type: 'boolean',\n                default: true,\n                markdownDescription: nls.localize('editor.suggest.showEvents', \"When enabled IntelliSense shows `event`-suggestions.\")\n            },\n            'editor.suggest.showOperators': {\n                type: 'boolean',\n                default: true,\n                markdownDescription: nls.localize('editor.suggest.showOperators', \"When enabled IntelliSense shows `operator`-suggestions.\")\n            },\n            'editor.suggest.showUnits': {\n                type: 'boolean',\n                default: true,\n                markdownDescription: nls.localize('editor.suggest.showUnits', \"When enabled IntelliSense shows `unit`-suggestions.\")\n            },\n            'editor.suggest.showValues': {\n                type: 'boolean',\n                default: true,\n                markdownDescription: nls.localize('editor.suggest.showValues', \"When enabled IntelliSense shows `value`-suggestions.\")\n            },\n            'editor.suggest.showConstants': {\n                type: 'boolean',\n                default: true,\n                markdownDescription: nls.localize('editor.suggest.showConstants', \"When enabled IntelliSense shows `constant`-suggestions.\")\n            },\n            'editor.suggest.showEnums': {\n                type: 'boolean',\n                default: true,\n                markdownDescription: nls.localize('editor.suggest.showEnums', \"When enabled IntelliSense shows `enum`-suggestions.\")\n            },\n            'editor.suggest.showEnumMembers': {\n                type: 'boolean',\n                default: true,\n                markdownDescription: nls.localize('editor.suggest.showEnumMembers', \"When enabled IntelliSense shows `enumMember`-suggestions.\")\n            },\n            'editor.suggest.showKeywords': {\n                type: 'boolean',\n                default: true,\n                markdownDescription: nls.localize('editor.suggest.showKeywords', \"When enabled IntelliSense shows `keyword`-suggestions.\")\n            },\n            'editor.suggest.showWords': {\n                type: 'boolean',\n                default: true,\n                markdownDescription: nls.localize('editor.suggest.showTexts', \"When enabled IntelliSense shows `text`-suggestions.\")\n            },\n            'editor.suggest.showColors': {\n                type: 'boolean',\n                default: true,\n                markdownDescription: nls.localize('editor.suggest.showColors', \"When enabled IntelliSense shows `color`-suggestions.\")\n            },\n            'editor.suggest.showFiles': {\n                type: 'boolean',\n                default: true,\n                markdownDescription: nls.localize('editor.suggest.showFiles', \"When enabled IntelliSense shows `file`-suggestions.\")\n            },\n            'editor.suggest.showReferences': {\n                type: 'boolean',\n                default: true,\n                markdownDescription: nls.localize('editor.suggest.showReferences', \"When enabled IntelliSense shows `reference`-suggestions.\")\n            },\n            'editor.suggest.showCustomcolors': {\n                type: 'boolean',\n                default: true,\n                markdownDescription: nls.localize('editor.suggest.showCustomcolors', \"When enabled IntelliSense shows `customcolor`-suggestions.\")\n            },\n            'editor.suggest.showFolders': {\n                type: 'boolean',\n                default: true,\n                markdownDescription: nls.localize('editor.suggest.showFolders', \"When enabled IntelliSense shows `folder`-suggestions.\")\n            },\n            'editor.suggest.showTypeParameters': {\n                type: 'boolean',\n                default: true,\n                markdownDescription: nls.localize('editor.suggest.showTypeParameters', \"When enabled IntelliSense shows `typeParameter`-suggestions.\")\n            },\n            'editor.suggest.showSnippets': {\n                type: 'boolean',\n                default: true,\n                markdownDescription: nls.localize('editor.suggest.showSnippets', \"When enabled IntelliSense shows `snippet`-suggestions.\")\n            },\n            'editor.suggest.showUsers': {\n                type: 'boolean',\n                default: true,\n                markdownDescription: nls.localize('editor.suggest.showUsers', \"When enabled IntelliSense shows `user`-suggestions.\")\n            },\n            'editor.suggest.showIssues': {\n                type: 'boolean',\n                default: true,\n                markdownDescription: nls.localize('editor.suggest.showIssues', \"When enabled IntelliSense shows `issues`-suggestions.\")\n            }\n        });\n    }\n    validate(_input) {\n        if (!_input || typeof _input !== 'object') {\n            return this.defaultValue;\n        }\n        const input = _input;\n        return {\n            insertMode: stringSet(input.insertMode, this.defaultValue.insertMode, ['insert', 'replace']),\n            filterGraceful: boolean(input.filterGraceful, this.defaultValue.filterGraceful),\n            snippetsPreventQuickSuggestions: boolean(input.snippetsPreventQuickSuggestions, this.defaultValue.filterGraceful),\n            localityBonus: boolean(input.localityBonus, this.defaultValue.localityBonus),\n            shareSuggestSelections: boolean(input.shareSuggestSelections, this.defaultValue.shareSuggestSelections),\n            selectionMode: stringSet(input.selectionMode, this.defaultValue.selectionMode, ['always', 'never', 'whenQuickSuggestion', 'whenTriggerCharacter']),\n            showIcons: boolean(input.showIcons, this.defaultValue.showIcons),\n            showStatusBar: boolean(input.showStatusBar, this.defaultValue.showStatusBar),\n            preview: boolean(input.preview, this.defaultValue.preview),\n            previewMode: stringSet(input.previewMode, this.defaultValue.previewMode, ['prefix', 'subword', 'subwordSmart']),\n            showInlineDetails: boolean(input.showInlineDetails, this.defaultValue.showInlineDetails),\n            showMethods: boolean(input.showMethods, this.defaultValue.showMethods),\n            showFunctions: boolean(input.showFunctions, this.defaultValue.showFunctions),\n            showConstructors: boolean(input.showConstructors, this.defaultValue.showConstructors),\n            showDeprecated: boolean(input.showDeprecated, this.defaultValue.showDeprecated),\n            matchOnWordStartOnly: boolean(input.matchOnWordStartOnly, this.defaultValue.matchOnWordStartOnly),\n            showFields: boolean(input.showFields, this.defaultValue.showFields),\n            showVariables: boolean(input.showVariables, this.defaultValue.showVariables),\n            showClasses: boolean(input.showClasses, this.defaultValue.showClasses),\n            showStructs: boolean(input.showStructs, this.defaultValue.showStructs),\n            showInterfaces: boolean(input.showInterfaces, this.defaultValue.showInterfaces),\n            showModules: boolean(input.showModules, this.defaultValue.showModules),\n            showProperties: boolean(input.showProperties, this.defaultValue.showProperties),\n            showEvents: boolean(input.showEvents, this.defaultValue.showEvents),\n            showOperators: boolean(input.showOperators, this.defaultValue.showOperators),\n            showUnits: boolean(input.showUnits, this.defaultValue.showUnits),\n            showValues: boolean(input.showValues, this.defaultValue.showValues),\n            showConstants: boolean(input.showConstants, this.defaultValue.showConstants),\n            showEnums: boolean(input.showEnums, this.defaultValue.showEnums),\n            showEnumMembers: boolean(input.showEnumMembers, this.defaultValue.showEnumMembers),\n            showKeywords: boolean(input.showKeywords, this.defaultValue.showKeywords),\n            showWords: boolean(input.showWords, this.defaultValue.showWords),\n            showColors: boolean(input.showColors, this.defaultValue.showColors),\n            showFiles: boolean(input.showFiles, this.defaultValue.showFiles),\n            showReferences: boolean(input.showReferences, this.defaultValue.showReferences),\n            showFolders: boolean(input.showFolders, this.defaultValue.showFolders),\n            showTypeParameters: boolean(input.showTypeParameters, this.defaultValue.showTypeParameters),\n            showSnippets: boolean(input.showSnippets, this.defaultValue.showSnippets),\n            showUsers: boolean(input.showUsers, this.defaultValue.showUsers),\n            showIssues: boolean(input.showIssues, this.defaultValue.showIssues),\n        };\n    }\n}\nclass SmartSelect extends BaseEditorOption {\n    constructor() {\n        super(113 /* EditorOption.smartSelect */, 'smartSelect', {\n            selectLeadingAndTrailingWhitespace: true,\n            selectSubwords: true,\n        }, {\n            'editor.smartSelect.selectLeadingAndTrailingWhitespace': {\n                description: nls.localize('selectLeadingAndTrailingWhitespace', \"Whether leading and trailing whitespace should always be selected.\"),\n                default: true,\n                type: 'boolean'\n            },\n            'editor.smartSelect.selectSubwords': {\n                description: nls.localize('selectSubwords', \"Whether subwords (like 'foo' in 'fooBar' or 'foo_bar') should be selected.\"),\n                default: true,\n                type: 'boolean'\n            }\n        });\n    }\n    validate(input) {\n        if (!input || typeof input !== 'object') {\n            return this.defaultValue;\n        }\n        return {\n            selectLeadingAndTrailingWhitespace: boolean(input.selectLeadingAndTrailingWhitespace, this.defaultValue.selectLeadingAndTrailingWhitespace),\n            selectSubwords: boolean(input.selectSubwords, this.defaultValue.selectSubwords),\n        };\n    }\n}\n//#endregion\n//#region wordSegmenterLocales\n/**\n * Locales used for segmenting lines into words when doing word related navigations or operations.\n *\n * Specify the BCP 47 language tag of the word you wish to recognize (e.g., ja, zh-CN, zh-Hant-TW, etc.).\n */\nclass WordSegmenterLocales extends BaseEditorOption {\n    constructor() {\n        const defaults = [];\n        super(130 /* EditorOption.wordSegmenterLocales */, 'wordSegmenterLocales', defaults, {\n            anyOf: [\n                {\n                    description: nls.localize('wordSegmenterLocales', \"Locales to be used for word segmentation when doing word related navigations or operations. Specify the BCP 47 language tag of the word you wish to recognize (e.g., ja, zh-CN, zh-Hant-TW, etc.).\"),\n                    type: 'string',\n                }, {\n                    description: nls.localize('wordSegmenterLocales', \"Locales to be used for word segmentation when doing word related navigations or operations. Specify the BCP 47 language tag of the word you wish to recognize (e.g., ja, zh-CN, zh-Hant-TW, etc.).\"),\n                    type: 'array',\n                    items: {\n                        type: 'string'\n                    }\n                }\n            ]\n        });\n    }\n    validate(input) {\n        if (typeof input === 'string') {\n            input = [input];\n        }\n        if (Array.isArray(input)) {\n            const validLocales = [];\n            for (const locale of input) {\n                if (typeof locale === 'string') {\n                    try {\n                        if (Intl.Segmenter.supportedLocalesOf(locale).length > 0) {\n                            validLocales.push(locale);\n                        }\n                    }\n                    catch (_a) {\n                        // ignore invalid locales\n                    }\n                }\n            }\n            return validLocales;\n        }\n        return this.defaultValue;\n    }\n}\nclass WrappingIndentOption extends BaseEditorOption {\n    constructor() {\n        super(138 /* EditorOption.wrappingIndent */, 'wrappingIndent', 1 /* WrappingIndent.Same */, {\n            'editor.wrappingIndent': {\n                type: 'string',\n                enum: ['none', 'same', 'indent', 'deepIndent'],\n                enumDescriptions: [\n                    nls.localize('wrappingIndent.none', \"No indentation. Wrapped lines begin at column 1.\"),\n                    nls.localize('wrappingIndent.same', \"Wrapped lines get the same indentation as the parent.\"),\n                    nls.localize('wrappingIndent.indent', \"Wrapped lines get +1 indentation toward the parent.\"),\n                    nls.localize('wrappingIndent.deepIndent', \"Wrapped lines get +2 indentation toward the parent.\"),\n                ],\n                description: nls.localize('wrappingIndent', \"Controls the indentation of wrapped lines.\"),\n                default: 'same'\n            }\n        });\n    }\n    validate(input) {\n        switch (input) {\n            case 'none': return 0 /* WrappingIndent.None */;\n            case 'same': return 1 /* WrappingIndent.Same */;\n            case 'indent': return 2 /* WrappingIndent.Indent */;\n            case 'deepIndent': return 3 /* WrappingIndent.DeepIndent */;\n        }\n        return 1 /* WrappingIndent.Same */;\n    }\n    compute(env, options, value) {\n        const accessibilitySupport = options.get(2 /* EditorOption.accessibilitySupport */);\n        if (accessibilitySupport === 2 /* AccessibilitySupport.Enabled */) {\n            // if we know for a fact that a screen reader is attached, we use no indent wrapping to\n            // help that the editor's wrapping points match the textarea's wrapping points\n            return 0 /* WrappingIndent.None */;\n        }\n        return value;\n    }\n}\nclass EditorWrappingInfoComputer extends ComputedEditorOption {\n    constructor() {\n        super(146 /* EditorOption.wrappingInfo */);\n    }\n    compute(env, options, _) {\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        return {\n            isDominatedByLongLines: env.isDominatedByLongLines,\n            isWordWrapMinified: layoutInfo.isWordWrapMinified,\n            isViewportWrapping: layoutInfo.isViewportWrapping,\n            wrappingColumn: layoutInfo.wrappingColumn,\n        };\n    }\n}\nclass EditorDropIntoEditor extends BaseEditorOption {\n    constructor() {\n        const defaults = { enabled: true, showDropSelector: 'afterDrop' };\n        super(36 /* EditorOption.dropIntoEditor */, 'dropIntoEditor', defaults, {\n            'editor.dropIntoEditor.enabled': {\n                type: 'boolean',\n                default: defaults.enabled,\n                markdownDescription: nls.localize('dropIntoEditor.enabled', \"Controls whether you can drag and drop a file into a text editor by holding down the `Shift` key (instead of opening the file in an editor).\"),\n            },\n            'editor.dropIntoEditor.showDropSelector': {\n                type: 'string',\n                markdownDescription: nls.localize('dropIntoEditor.showDropSelector', \"Controls if a widget is shown when dropping files into the editor. This widget lets you control how the file is dropped.\"),\n                enum: [\n                    'afterDrop',\n                    'never'\n                ],\n                enumDescriptions: [\n                    nls.localize('dropIntoEditor.showDropSelector.afterDrop', \"Show the drop selector widget after a file is dropped into the editor.\"),\n                    nls.localize('dropIntoEditor.showDropSelector.never', \"Never show the drop selector widget. Instead the default drop provider is always used.\"),\n                ],\n                default: 'afterDrop',\n            },\n        });\n    }\n    validate(_input) {\n        if (!_input || typeof _input !== 'object') {\n            return this.defaultValue;\n        }\n        const input = _input;\n        return {\n            enabled: boolean(input.enabled, this.defaultValue.enabled),\n            showDropSelector: stringSet(input.showDropSelector, this.defaultValue.showDropSelector, ['afterDrop', 'never']),\n        };\n    }\n}\nclass EditorPasteAs extends BaseEditorOption {\n    constructor() {\n        const defaults = { enabled: true, showPasteSelector: 'afterPaste' };\n        super(85 /* EditorOption.pasteAs */, 'pasteAs', defaults, {\n            'editor.pasteAs.enabled': {\n                type: 'boolean',\n                default: defaults.enabled,\n                markdownDescription: nls.localize('pasteAs.enabled', \"Controls whether you can paste content in different ways.\"),\n            },\n            'editor.pasteAs.showPasteSelector': {\n                type: 'string',\n                markdownDescription: nls.localize('pasteAs.showPasteSelector', \"Controls if a widget is shown when pasting content in to the editor. This widget lets you control how the file is pasted.\"),\n                enum: [\n                    'afterPaste',\n                    'never'\n                ],\n                enumDescriptions: [\n                    nls.localize('pasteAs.showPasteSelector.afterPaste', \"Show the paste selector widget after content is pasted into the editor.\"),\n                    nls.localize('pasteAs.showPasteSelector.never', \"Never show the paste selector widget. Instead the default pasting behavior is always used.\"),\n                ],\n                default: 'afterPaste',\n            },\n        });\n    }\n    validate(_input) {\n        if (!_input || typeof _input !== 'object') {\n            return this.defaultValue;\n        }\n        const input = _input;\n        return {\n            enabled: boolean(input.enabled, this.defaultValue.enabled),\n            showPasteSelector: stringSet(input.showPasteSelector, this.defaultValue.showPasteSelector, ['afterPaste', 'never']),\n        };\n    }\n}\n//#endregion\nconst DEFAULT_WINDOWS_FONT_FAMILY = 'Consolas, \\'Courier New\\', monospace';\nconst DEFAULT_MAC_FONT_FAMILY = 'Menlo, Monaco, \\'Courier New\\', monospace';\nconst DEFAULT_LINUX_FONT_FAMILY = '\\'Droid Sans Mono\\', \\'monospace\\', monospace';\n/**\n * @internal\n */\nexport const EDITOR_FONT_DEFAULTS = {\n    fontFamily: (platform.isMacintosh ? DEFAULT_MAC_FONT_FAMILY : (platform.isLinux ? DEFAULT_LINUX_FONT_FAMILY : DEFAULT_WINDOWS_FONT_FAMILY)),\n    fontWeight: 'normal',\n    fontSize: (platform.isMacintosh ? 12 : 14),\n    lineHeight: 0,\n    letterSpacing: 0,\n};\n/**\n * @internal\n */\nexport const editorOptionsRegistry = [];\nfunction register(option) {\n    editorOptionsRegistry[option.id] = option;\n    return option;\n}\nexport const EditorOptions = {\n    acceptSuggestionOnCommitCharacter: register(new EditorBooleanOption(0 /* EditorOption.acceptSuggestionOnCommitCharacter */, 'acceptSuggestionOnCommitCharacter', true, { markdownDescription: nls.localize('acceptSuggestionOnCommitCharacter', \"Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character.\") })),\n    acceptSuggestionOnEnter: register(new EditorStringEnumOption(1 /* EditorOption.acceptSuggestionOnEnter */, 'acceptSuggestionOnEnter', 'on', ['on', 'smart', 'off'], {\n        markdownEnumDescriptions: [\n            '',\n            nls.localize('acceptSuggestionOnEnterSmart', \"Only accept a suggestion with `Enter` when it makes a textual change.\"),\n            ''\n        ],\n        markdownDescription: nls.localize('acceptSuggestionOnEnter', \"Controls whether suggestions should be accepted on `Enter`, in addition to `Tab`. Helps to avoid ambiguity between inserting new lines or accepting suggestions.\")\n    })),\n    accessibilitySupport: register(new EditorAccessibilitySupport()),\n    accessibilityPageSize: register(new EditorIntOption(3 /* EditorOption.accessibilityPageSize */, 'accessibilityPageSize', 10, 1, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */, {\n        description: nls.localize('accessibilityPageSize', \"Controls the number of lines in the editor that can be read out by a screen reader at once. When we detect a screen reader we automatically set the default to be 500. Warning: this has a performance implication for numbers larger than the default.\"),\n        tags: ['accessibility']\n    })),\n    ariaLabel: register(new EditorStringOption(4 /* EditorOption.ariaLabel */, 'ariaLabel', nls.localize('editorViewAccessibleLabel', \"Editor content\"))),\n    ariaRequired: register(new EditorBooleanOption(5 /* EditorOption.ariaRequired */, 'ariaRequired', false, undefined)),\n    screenReaderAnnounceInlineSuggestion: register(new EditorBooleanOption(8 /* EditorOption.screenReaderAnnounceInlineSuggestion */, 'screenReaderAnnounceInlineSuggestion', true, {\n        description: nls.localize('screenReaderAnnounceInlineSuggestion', \"Control whether inline suggestions are announced by a screen reader.\"),\n        tags: ['accessibility']\n    })),\n    autoClosingBrackets: register(new EditorStringEnumOption(6 /* EditorOption.autoClosingBrackets */, 'autoClosingBrackets', 'languageDefined', ['always', 'languageDefined', 'beforeWhitespace', 'never'], {\n        enumDescriptions: [\n            '',\n            nls.localize('editor.autoClosingBrackets.languageDefined', \"Use language configurations to determine when to autoclose brackets.\"),\n            nls.localize('editor.autoClosingBrackets.beforeWhitespace', \"Autoclose brackets only when the cursor is to the left of whitespace.\"),\n            '',\n        ],\n        description: nls.localize('autoClosingBrackets', \"Controls whether the editor should automatically close brackets after the user adds an opening bracket.\")\n    })),\n    autoClosingComments: register(new EditorStringEnumOption(7 /* EditorOption.autoClosingComments */, 'autoClosingComments', 'languageDefined', ['always', 'languageDefined', 'beforeWhitespace', 'never'], {\n        enumDescriptions: [\n            '',\n            nls.localize('editor.autoClosingComments.languageDefined', \"Use language configurations to determine when to autoclose comments.\"),\n            nls.localize('editor.autoClosingComments.beforeWhitespace', \"Autoclose comments only when the cursor is to the left of whitespace.\"),\n            '',\n        ],\n        description: nls.localize('autoClosingComments', \"Controls whether the editor should automatically close comments after the user adds an opening comment.\")\n    })),\n    autoClosingDelete: register(new EditorStringEnumOption(9 /* EditorOption.autoClosingDelete */, 'autoClosingDelete', 'auto', ['always', 'auto', 'never'], {\n        enumDescriptions: [\n            '',\n            nls.localize('editor.autoClosingDelete.auto', \"Remove adjacent closing quotes or brackets only if they were automatically inserted.\"),\n            '',\n        ],\n        description: nls.localize('autoClosingDelete', \"Controls whether the editor should remove adjacent closing quotes or brackets when deleting.\")\n    })),\n    autoClosingOvertype: register(new EditorStringEnumOption(10 /* EditorOption.autoClosingOvertype */, 'autoClosingOvertype', 'auto', ['always', 'auto', 'never'], {\n        enumDescriptions: [\n            '',\n            nls.localize('editor.autoClosingOvertype.auto', \"Type over closing quotes or brackets only if they were automatically inserted.\"),\n            '',\n        ],\n        description: nls.localize('autoClosingOvertype', \"Controls whether the editor should type over closing quotes or brackets.\")\n    })),\n    autoClosingQuotes: register(new EditorStringEnumOption(11 /* EditorOption.autoClosingQuotes */, 'autoClosingQuotes', 'languageDefined', ['always', 'languageDefined', 'beforeWhitespace', 'never'], {\n        enumDescriptions: [\n            '',\n            nls.localize('editor.autoClosingQuotes.languageDefined', \"Use language configurations to determine when to autoclose quotes.\"),\n            nls.localize('editor.autoClosingQuotes.beforeWhitespace', \"Autoclose quotes only when the cursor is to the left of whitespace.\"),\n            '',\n        ],\n        description: nls.localize('autoClosingQuotes', \"Controls whether the editor should automatically close quotes after the user adds an opening quote.\")\n    })),\n    autoIndent: register(new EditorEnumOption(12 /* EditorOption.autoIndent */, 'autoIndent', 4 /* EditorAutoIndentStrategy.Full */, 'full', ['none', 'keep', 'brackets', 'advanced', 'full'], _autoIndentFromString, {\n        enumDescriptions: [\n            nls.localize('editor.autoIndent.none', \"The editor will not insert indentation automatically.\"),\n            nls.localize('editor.autoIndent.keep', \"The editor will keep the current line's indentation.\"),\n            nls.localize('editor.autoIndent.brackets', \"The editor will keep the current line's indentation and honor language defined brackets.\"),\n            nls.localize('editor.autoIndent.advanced', \"The editor will keep the current line's indentation, honor language defined brackets and invoke special onEnterRules defined by languages.\"),\n            nls.localize('editor.autoIndent.full', \"The editor will keep the current line's indentation, honor language defined brackets, invoke special onEnterRules defined by languages, and honor indentationRules defined by languages.\"),\n        ],\n        description: nls.localize('autoIndent', \"Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.\")\n    })),\n    automaticLayout: register(new EditorBooleanOption(13 /* EditorOption.automaticLayout */, 'automaticLayout', false)),\n    autoSurround: register(new EditorStringEnumOption(14 /* EditorOption.autoSurround */, 'autoSurround', 'languageDefined', ['languageDefined', 'quotes', 'brackets', 'never'], {\n        enumDescriptions: [\n            nls.localize('editor.autoSurround.languageDefined', \"Use language configurations to determine when to automatically surround selections.\"),\n            nls.localize('editor.autoSurround.quotes', \"Surround with quotes but not brackets.\"),\n            nls.localize('editor.autoSurround.brackets', \"Surround with brackets but not quotes.\"),\n            ''\n        ],\n        description: nls.localize('autoSurround', \"Controls whether the editor should automatically surround selections when typing quotes or brackets.\")\n    })),\n    bracketPairColorization: register(new BracketPairColorization()),\n    bracketPairGuides: register(new GuideOptions()),\n    stickyTabStops: register(new EditorBooleanOption(116 /* EditorOption.stickyTabStops */, 'stickyTabStops', false, { description: nls.localize('stickyTabStops', \"Emulate selection behavior of tab characters when using spaces for indentation. Selection will stick to tab stops.\") })),\n    codeLens: register(new EditorBooleanOption(17 /* EditorOption.codeLens */, 'codeLens', true, { description: nls.localize('codeLens', \"Controls whether the editor shows CodeLens.\") })),\n    codeLensFontFamily: register(new EditorStringOption(18 /* EditorOption.codeLensFontFamily */, 'codeLensFontFamily', '', { description: nls.localize('codeLensFontFamily', \"Controls the font family for CodeLens.\") })),\n    codeLensFontSize: register(new EditorIntOption(19 /* EditorOption.codeLensFontSize */, 'codeLensFontSize', 0, 0, 100, {\n        type: 'number',\n        default: 0,\n        minimum: 0,\n        maximum: 100,\n        markdownDescription: nls.localize('codeLensFontSize', \"Controls the font size in pixels for CodeLens. When set to 0, 90% of `#editor.fontSize#` is used.\")\n    })),\n    colorDecorators: register(new EditorBooleanOption(20 /* EditorOption.colorDecorators */, 'colorDecorators', true, { description: nls.localize('colorDecorators', \"Controls whether the editor should render the inline color decorators and color picker.\") })),\n    colorDecoratorActivatedOn: register(new EditorStringEnumOption(148 /* EditorOption.colorDecoratorsActivatedOn */, 'colorDecoratorsActivatedOn', 'clickAndHover', ['clickAndHover', 'hover', 'click'], {\n        enumDescriptions: [\n            nls.localize('editor.colorDecoratorActivatedOn.clickAndHover', \"Make the color picker appear both on click and hover of the color decorator\"),\n            nls.localize('editor.colorDecoratorActivatedOn.hover', \"Make the color picker appear on hover of the color decorator\"),\n            nls.localize('editor.colorDecoratorActivatedOn.click', \"Make the color picker appear on click of the color decorator\")\n        ],\n        description: nls.localize('colorDecoratorActivatedOn', \"Controls the condition to make a color picker appear from a color decorator\")\n    })),\n    colorDecoratorsLimit: register(new EditorIntOption(21 /* EditorOption.colorDecoratorsLimit */, 'colorDecoratorsLimit', 500, 1, 1000000, {\n        markdownDescription: nls.localize('colorDecoratorsLimit', \"Controls the max number of color decorators that can be rendered in an editor at once.\")\n    })),\n    columnSelection: register(new EditorBooleanOption(22 /* EditorOption.columnSelection */, 'columnSelection', false, { description: nls.localize('columnSelection', \"Enable that the selection with the mouse and keys is doing column selection.\") })),\n    comments: register(new EditorComments()),\n    contextmenu: register(new EditorBooleanOption(24 /* EditorOption.contextmenu */, 'contextmenu', true)),\n    copyWithSyntaxHighlighting: register(new EditorBooleanOption(25 /* EditorOption.copyWithSyntaxHighlighting */, 'copyWithSyntaxHighlighting', true, { description: nls.localize('copyWithSyntaxHighlighting', \"Controls whether syntax highlighting should be copied into the clipboard.\") })),\n    cursorBlinking: register(new EditorEnumOption(26 /* EditorOption.cursorBlinking */, 'cursorBlinking', 1 /* TextEditorCursorBlinkingStyle.Blink */, 'blink', ['blink', 'smooth', 'phase', 'expand', 'solid'], _cursorBlinkingStyleFromString, { description: nls.localize('cursorBlinking', \"Control the cursor animation style.\") })),\n    cursorSmoothCaretAnimation: register(new EditorStringEnumOption(27 /* EditorOption.cursorSmoothCaretAnimation */, 'cursorSmoothCaretAnimation', 'off', ['off', 'explicit', 'on'], {\n        enumDescriptions: [\n            nls.localize('cursorSmoothCaretAnimation.off', \"Smooth caret animation is disabled.\"),\n            nls.localize('cursorSmoothCaretAnimation.explicit', \"Smooth caret animation is enabled only when the user moves the cursor with an explicit gesture.\"),\n            nls.localize('cursorSmoothCaretAnimation.on', \"Smooth caret animation is always enabled.\")\n        ],\n        description: nls.localize('cursorSmoothCaretAnimation', \"Controls whether the smooth caret animation should be enabled.\")\n    })),\n    cursorStyle: register(new EditorEnumOption(28 /* EditorOption.cursorStyle */, 'cursorStyle', TextEditorCursorStyle.Line, 'line', ['line', 'block', 'underline', 'line-thin', 'block-outline', 'underline-thin'], _cursorStyleFromString, { description: nls.localize('cursorStyle', \"Controls the cursor style.\") })),\n    cursorSurroundingLines: register(new EditorIntOption(29 /* EditorOption.cursorSurroundingLines */, 'cursorSurroundingLines', 0, 0, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */, { description: nls.localize('cursorSurroundingLines', \"Controls the minimal number of visible leading lines (minimum 0) and trailing lines (minimum 1) surrounding the cursor. Known as 'scrollOff' or 'scrollOffset' in some other editors.\") })),\n    cursorSurroundingLinesStyle: register(new EditorStringEnumOption(30 /* EditorOption.cursorSurroundingLinesStyle */, 'cursorSurroundingLinesStyle', 'default', ['default', 'all'], {\n        enumDescriptions: [\n            nls.localize('cursorSurroundingLinesStyle.default', \"`cursorSurroundingLines` is enforced only when triggered via the keyboard or API.\"),\n            nls.localize('cursorSurroundingLinesStyle.all', \"`cursorSurroundingLines` is enforced always.\")\n        ],\n        markdownDescription: nls.localize('cursorSurroundingLinesStyle', \"Controls when `#editor.cursorSurroundingLines#` should be enforced.\")\n    })),\n    cursorWidth: register(new EditorIntOption(31 /* EditorOption.cursorWidth */, 'cursorWidth', 0, 0, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */, { markdownDescription: nls.localize('cursorWidth', \"Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.\") })),\n    disableLayerHinting: register(new EditorBooleanOption(32 /* EditorOption.disableLayerHinting */, 'disableLayerHinting', false)),\n    disableMonospaceOptimizations: register(new EditorBooleanOption(33 /* EditorOption.disableMonospaceOptimizations */, 'disableMonospaceOptimizations', false)),\n    domReadOnly: register(new EditorBooleanOption(34 /* EditorOption.domReadOnly */, 'domReadOnly', false)),\n    dragAndDrop: register(new EditorBooleanOption(35 /* EditorOption.dragAndDrop */, 'dragAndDrop', true, { description: nls.localize('dragAndDrop', \"Controls whether the editor should allow moving selections via drag and drop.\") })),\n    emptySelectionClipboard: register(new EditorEmptySelectionClipboard()),\n    dropIntoEditor: register(new EditorDropIntoEditor()),\n    stickyScroll: register(new EditorStickyScroll()),\n    experimentalWhitespaceRendering: register(new EditorStringEnumOption(38 /* EditorOption.experimentalWhitespaceRendering */, 'experimentalWhitespaceRendering', 'svg', ['svg', 'font', 'off'], {\n        enumDescriptions: [\n            nls.localize('experimentalWhitespaceRendering.svg', \"Use a new rendering method with svgs.\"),\n            nls.localize('experimentalWhitespaceRendering.font', \"Use a new rendering method with font characters.\"),\n            nls.localize('experimentalWhitespaceRendering.off', \"Use the stable rendering method.\"),\n        ],\n        description: nls.localize('experimentalWhitespaceRendering', \"Controls whether whitespace is rendered with a new, experimental method.\")\n    })),\n    extraEditorClassName: register(new EditorStringOption(39 /* EditorOption.extraEditorClassName */, 'extraEditorClassName', '')),\n    fastScrollSensitivity: register(new EditorFloatOption(40 /* EditorOption.fastScrollSensitivity */, 'fastScrollSensitivity', 5, x => (x <= 0 ? 5 : x), { markdownDescription: nls.localize('fastScrollSensitivity', \"Scrolling speed multiplier when pressing `Alt`.\") })),\n    find: register(new EditorFind()),\n    fixedOverflowWidgets: register(new EditorBooleanOption(42 /* EditorOption.fixedOverflowWidgets */, 'fixedOverflowWidgets', false)),\n    folding: register(new EditorBooleanOption(43 /* EditorOption.folding */, 'folding', true, { description: nls.localize('folding', \"Controls whether the editor has code folding enabled.\") })),\n    foldingStrategy: register(new EditorStringEnumOption(44 /* EditorOption.foldingStrategy */, 'foldingStrategy', 'auto', ['auto', 'indentation'], {\n        enumDescriptions: [\n            nls.localize('foldingStrategy.auto', \"Use a language-specific folding strategy if available, else the indentation-based one.\"),\n            nls.localize('foldingStrategy.indentation', \"Use the indentation-based folding strategy.\"),\n        ],\n        description: nls.localize('foldingStrategy', \"Controls the strategy for computing folding ranges.\")\n    })),\n    foldingHighlight: register(new EditorBooleanOption(45 /* EditorOption.foldingHighlight */, 'foldingHighlight', true, { description: nls.localize('foldingHighlight', \"Controls whether the editor should highlight folded ranges.\") })),\n    foldingImportsByDefault: register(new EditorBooleanOption(46 /* EditorOption.foldingImportsByDefault */, 'foldingImportsByDefault', false, { description: nls.localize('foldingImportsByDefault', \"Controls whether the editor automatically collapses import ranges.\") })),\n    foldingMaximumRegions: register(new EditorIntOption(47 /* EditorOption.foldingMaximumRegions */, 'foldingMaximumRegions', 5000, 10, 65000, // limit must be less than foldingRanges MAX_FOLDING_REGIONS\n    { description: nls.localize('foldingMaximumRegions', \"The maximum number of foldable regions. Increasing this value may result in the editor becoming less responsive when the current source has a large number of foldable regions.\") })),\n    unfoldOnClickAfterEndOfLine: register(new EditorBooleanOption(48 /* EditorOption.unfoldOnClickAfterEndOfLine */, 'unfoldOnClickAfterEndOfLine', false, { description: nls.localize('unfoldOnClickAfterEndOfLine', \"Controls whether clicking on the empty content after a folded line will unfold the line.\") })),\n    fontFamily: register(new EditorStringOption(49 /* EditorOption.fontFamily */, 'fontFamily', EDITOR_FONT_DEFAULTS.fontFamily, { description: nls.localize('fontFamily', \"Controls the font family.\") })),\n    fontInfo: register(new EditorFontInfo()),\n    fontLigatures2: register(new EditorFontLigatures()),\n    fontSize: register(new EditorFontSize()),\n    fontWeight: register(new EditorFontWeight()),\n    fontVariations: register(new EditorFontVariations()),\n    formatOnPaste: register(new EditorBooleanOption(55 /* EditorOption.formatOnPaste */, 'formatOnPaste', false, { description: nls.localize('formatOnPaste', \"Controls whether the editor should automatically format the pasted content. A formatter must be available and the formatter should be able to format a range in a document.\") })),\n    formatOnType: register(new EditorBooleanOption(56 /* EditorOption.formatOnType */, 'formatOnType', false, { description: nls.localize('formatOnType', \"Controls whether the editor should automatically format the line after typing.\") })),\n    glyphMargin: register(new EditorBooleanOption(57 /* EditorOption.glyphMargin */, 'glyphMargin', true, { description: nls.localize('glyphMargin', \"Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.\") })),\n    gotoLocation: register(new EditorGoToLocation()),\n    hideCursorInOverviewRuler: register(new EditorBooleanOption(59 /* EditorOption.hideCursorInOverviewRuler */, 'hideCursorInOverviewRuler', false, { description: nls.localize('hideCursorInOverviewRuler', \"Controls whether the cursor should be hidden in the overview ruler.\") })),\n    hover: register(new EditorHover()),\n    inDiffEditor: register(new EditorBooleanOption(61 /* EditorOption.inDiffEditor */, 'inDiffEditor', false)),\n    letterSpacing: register(new EditorFloatOption(64 /* EditorOption.letterSpacing */, 'letterSpacing', EDITOR_FONT_DEFAULTS.letterSpacing, x => EditorFloatOption.clamp(x, -5, 20), { description: nls.localize('letterSpacing', \"Controls the letter spacing in pixels.\") })),\n    lightbulb: register(new EditorLightbulb()),\n    lineDecorationsWidth: register(new EditorLineDecorationsWidth()),\n    lineHeight: register(new EditorLineHeight()),\n    lineNumbers: register(new EditorRenderLineNumbersOption()),\n    lineNumbersMinChars: register(new EditorIntOption(69 /* EditorOption.lineNumbersMinChars */, 'lineNumbersMinChars', 5, 1, 300)),\n    linkedEditing: register(new EditorBooleanOption(70 /* EditorOption.linkedEditing */, 'linkedEditing', false, { description: nls.localize('linkedEditing', \"Controls whether the editor has linked editing enabled. Depending on the language, related symbols such as HTML tags, are updated while editing.\") })),\n    links: register(new EditorBooleanOption(71 /* EditorOption.links */, 'links', true, { description: nls.localize('links', \"Controls whether the editor should detect links and make them clickable.\") })),\n    matchBrackets: register(new EditorStringEnumOption(72 /* EditorOption.matchBrackets */, 'matchBrackets', 'always', ['always', 'near', 'never'], { description: nls.localize('matchBrackets', \"Highlight matching brackets.\") })),\n    minimap: register(new EditorMinimap()),\n    mouseStyle: register(new EditorStringEnumOption(74 /* EditorOption.mouseStyle */, 'mouseStyle', 'text', ['text', 'default', 'copy'])),\n    mouseWheelScrollSensitivity: register(new EditorFloatOption(75 /* EditorOption.mouseWheelScrollSensitivity */, 'mouseWheelScrollSensitivity', 1, x => (x === 0 ? 1 : x), { markdownDescription: nls.localize('mouseWheelScrollSensitivity', \"A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.\") })),\n    mouseWheelZoom: register(new EditorBooleanOption(76 /* EditorOption.mouseWheelZoom */, 'mouseWheelZoom', false, {\n        markdownDescription: platform.isMacintosh\n            ? nls.localize('mouseWheelZoom.mac', \"Zoom the font of the editor when using mouse wheel and holding `Cmd`.\")\n            : nls.localize('mouseWheelZoom', \"Zoom the font of the editor when using mouse wheel and holding `Ctrl`.\")\n    })),\n    multiCursorMergeOverlapping: register(new EditorBooleanOption(77 /* EditorOption.multiCursorMergeOverlapping */, 'multiCursorMergeOverlapping', true, { description: nls.localize('multiCursorMergeOverlapping', \"Merge multiple cursors when they are overlapping.\") })),\n    multiCursorModifier: register(new EditorEnumOption(78 /* EditorOption.multiCursorModifier */, 'multiCursorModifier', 'altKey', 'alt', ['ctrlCmd', 'alt'], _multiCursorModifierFromString, {\n        markdownEnumDescriptions: [\n            nls.localize('multiCursorModifier.ctrlCmd', \"Maps to `Control` on Windows and Linux and to `Command` on macOS.\"),\n            nls.localize('multiCursorModifier.alt', \"Maps to `Alt` on Windows and Linux and to `Option` on macOS.\")\n        ],\n        markdownDescription: nls.localize({\n            key: 'multiCursorModifier',\n            comment: [\n                '- `ctrlCmd` refers to a value the setting can take and should not be localized.',\n                '- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized.'\n            ]\n        }, \"The modifier to be used to add multiple cursors with the mouse. The Go to Definition and Open Link mouse gestures will adapt such that they do not conflict with the [multicursor modifier](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).\")\n    })),\n    multiCursorPaste: register(new EditorStringEnumOption(79 /* EditorOption.multiCursorPaste */, 'multiCursorPaste', 'spread', ['spread', 'full'], {\n        markdownEnumDescriptions: [\n            nls.localize('multiCursorPaste.spread', \"Each cursor pastes a single line of the text.\"),\n            nls.localize('multiCursorPaste.full', \"Each cursor pastes the full text.\")\n        ],\n        markdownDescription: nls.localize('multiCursorPaste', \"Controls pasting when the line count of the pasted text matches the cursor count.\")\n    })),\n    multiCursorLimit: register(new EditorIntOption(80 /* EditorOption.multiCursorLimit */, 'multiCursorLimit', 10000, 1, 100000, {\n        markdownDescription: nls.localize('multiCursorLimit', \"Controls the max number of cursors that can be in an active editor at once.\")\n    })),\n    occurrencesHighlight: register(new EditorStringEnumOption(81 /* EditorOption.occurrencesHighlight */, 'occurrencesHighlight', 'singleFile', ['off', 'singleFile', 'multiFile'], {\n        markdownEnumDescriptions: [\n            nls.localize('occurrencesHighlight.off', \"Does not highlight occurrences.\"),\n            nls.localize('occurrencesHighlight.singleFile', \"Highlights occurrences only in the current file.\"),\n            nls.localize('occurrencesHighlight.multiFile', \"Experimental: Highlights occurrences across all valid open files.\")\n        ],\n        markdownDescription: nls.localize('occurrencesHighlight', \"Controls whether occurrences should be highlighted across open files.\")\n    })),\n    overviewRulerBorder: register(new EditorBooleanOption(82 /* EditorOption.overviewRulerBorder */, 'overviewRulerBorder', true, { description: nls.localize('overviewRulerBorder', \"Controls whether a border should be drawn around the overview ruler.\") })),\n    overviewRulerLanes: register(new EditorIntOption(83 /* EditorOption.overviewRulerLanes */, 'overviewRulerLanes', 3, 0, 3)),\n    padding: register(new EditorPadding()),\n    pasteAs: register(new EditorPasteAs()),\n    parameterHints: register(new EditorParameterHints()),\n    peekWidgetDefaultFocus: register(new EditorStringEnumOption(87 /* EditorOption.peekWidgetDefaultFocus */, 'peekWidgetDefaultFocus', 'tree', ['tree', 'editor'], {\n        enumDescriptions: [\n            nls.localize('peekWidgetDefaultFocus.tree', \"Focus the tree when opening peek\"),\n            nls.localize('peekWidgetDefaultFocus.editor', \"Focus the editor when opening peek\")\n        ],\n        description: nls.localize('peekWidgetDefaultFocus', \"Controls whether to focus the inline editor or the tree in the peek widget.\")\n    })),\n    definitionLinkOpensInPeek: register(new EditorBooleanOption(88 /* EditorOption.definitionLinkOpensInPeek */, 'definitionLinkOpensInPeek', false, { description: nls.localize('definitionLinkOpensInPeek', \"Controls whether the Go to Definition mouse gesture always opens the peek widget.\") })),\n    quickSuggestions: register(new EditorQuickSuggestions()),\n    quickSuggestionsDelay: register(new EditorIntOption(90 /* EditorOption.quickSuggestionsDelay */, 'quickSuggestionsDelay', 10, 0, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */, { description: nls.localize('quickSuggestionsDelay', \"Controls the delay in milliseconds after which quick suggestions will show up.\") })),\n    readOnly: register(new EditorBooleanOption(91 /* EditorOption.readOnly */, 'readOnly', false)),\n    readOnlyMessage: register(new ReadonlyMessage()),\n    renameOnType: register(new EditorBooleanOption(93 /* EditorOption.renameOnType */, 'renameOnType', false, { description: nls.localize('renameOnType', \"Controls whether the editor auto renames on type.\"), markdownDeprecationMessage: nls.localize('renameOnTypeDeprecate', \"Deprecated, use `editor.linkedEditing` instead.\") })),\n    renderControlCharacters: register(new EditorBooleanOption(94 /* EditorOption.renderControlCharacters */, 'renderControlCharacters', true, { description: nls.localize('renderControlCharacters', \"Controls whether the editor should render control characters.\"), restricted: true })),\n    renderFinalNewline: register(new EditorStringEnumOption(95 /* EditorOption.renderFinalNewline */, 'renderFinalNewline', (platform.isLinux ? 'dimmed' : 'on'), ['off', 'on', 'dimmed'], { description: nls.localize('renderFinalNewline', \"Render last line number when the file ends with a newline.\") })),\n    renderLineHighlight: register(new EditorStringEnumOption(96 /* EditorOption.renderLineHighlight */, 'renderLineHighlight', 'line', ['none', 'gutter', 'line', 'all'], {\n        enumDescriptions: [\n            '',\n            '',\n            '',\n            nls.localize('renderLineHighlight.all', \"Highlights both the gutter and the current line.\"),\n        ],\n        description: nls.localize('renderLineHighlight', \"Controls how the editor should render the current line highlight.\")\n    })),\n    renderLineHighlightOnlyWhenFocus: register(new EditorBooleanOption(97 /* EditorOption.renderLineHighlightOnlyWhenFocus */, 'renderLineHighlightOnlyWhenFocus', false, { description: nls.localize('renderLineHighlightOnlyWhenFocus', \"Controls if the editor should render the current line highlight only when the editor is focused.\") })),\n    renderValidationDecorations: register(new EditorStringEnumOption(98 /* EditorOption.renderValidationDecorations */, 'renderValidationDecorations', 'editable', ['editable', 'on', 'off'])),\n    renderWhitespace: register(new EditorStringEnumOption(99 /* EditorOption.renderWhitespace */, 'renderWhitespace', 'selection', ['none', 'boundary', 'selection', 'trailing', 'all'], {\n        enumDescriptions: [\n            '',\n            nls.localize('renderWhitespace.boundary', \"Render whitespace characters except for single spaces between words.\"),\n            nls.localize('renderWhitespace.selection', \"Render whitespace characters only on selected text.\"),\n            nls.localize('renderWhitespace.trailing', \"Render only trailing whitespace characters.\"),\n            ''\n        ],\n        description: nls.localize('renderWhitespace', \"Controls how the editor should render whitespace characters.\")\n    })),\n    revealHorizontalRightPadding: register(new EditorIntOption(100 /* EditorOption.revealHorizontalRightPadding */, 'revealHorizontalRightPadding', 15, 0, 1000)),\n    roundedSelection: register(new EditorBooleanOption(101 /* EditorOption.roundedSelection */, 'roundedSelection', true, { description: nls.localize('roundedSelection', \"Controls whether selections should have rounded corners.\") })),\n    rulers: register(new EditorRulers()),\n    scrollbar: register(new EditorScrollbar()),\n    scrollBeyondLastColumn: register(new EditorIntOption(104 /* EditorOption.scrollBeyondLastColumn */, 'scrollBeyondLastColumn', 4, 0, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */, { description: nls.localize('scrollBeyondLastColumn', \"Controls the number of extra characters beyond which the editor will scroll horizontally.\") })),\n    scrollBeyondLastLine: register(new EditorBooleanOption(105 /* EditorOption.scrollBeyondLastLine */, 'scrollBeyondLastLine', true, { description: nls.localize('scrollBeyondLastLine', \"Controls whether the editor will scroll beyond the last line.\") })),\n    scrollPredominantAxis: register(new EditorBooleanOption(106 /* EditorOption.scrollPredominantAxis */, 'scrollPredominantAxis', true, { description: nls.localize('scrollPredominantAxis', \"Scroll only along the predominant axis when scrolling both vertically and horizontally at the same time. Prevents horizontal drift when scrolling vertically on a trackpad.\") })),\n    selectionClipboard: register(new EditorBooleanOption(107 /* EditorOption.selectionClipboard */, 'selectionClipboard', true, {\n        description: nls.localize('selectionClipboard', \"Controls whether the Linux primary clipboard should be supported.\"),\n        included: platform.isLinux\n    })),\n    selectionHighlight: register(new EditorBooleanOption(108 /* EditorOption.selectionHighlight */, 'selectionHighlight', true, { description: nls.localize('selectionHighlight', \"Controls whether the editor should highlight matches similar to the selection.\") })),\n    selectOnLineNumbers: register(new EditorBooleanOption(109 /* EditorOption.selectOnLineNumbers */, 'selectOnLineNumbers', true)),\n    showFoldingControls: register(new EditorStringEnumOption(110 /* EditorOption.showFoldingControls */, 'showFoldingControls', 'mouseover', ['always', 'never', 'mouseover'], {\n        enumDescriptions: [\n            nls.localize('showFoldingControls.always', \"Always show the folding controls.\"),\n            nls.localize('showFoldingControls.never', \"Never show the folding controls and reduce the gutter size.\"),\n            nls.localize('showFoldingControls.mouseover', \"Only show the folding controls when the mouse is over the gutter.\"),\n        ],\n        description: nls.localize('showFoldingControls', \"Controls when the folding controls on the gutter are shown.\")\n    })),\n    showUnused: register(new EditorBooleanOption(111 /* EditorOption.showUnused */, 'showUnused', true, { description: nls.localize('showUnused', \"Controls fading out of unused code.\") })),\n    showDeprecated: register(new EditorBooleanOption(140 /* EditorOption.showDeprecated */, 'showDeprecated', true, { description: nls.localize('showDeprecated', \"Controls strikethrough deprecated variables.\") })),\n    inlayHints: register(new EditorInlayHints()),\n    snippetSuggestions: register(new EditorStringEnumOption(112 /* EditorOption.snippetSuggestions */, 'snippetSuggestions', 'inline', ['top', 'bottom', 'inline', 'none'], {\n        enumDescriptions: [\n            nls.localize('snippetSuggestions.top', \"Show snippet suggestions on top of other suggestions.\"),\n            nls.localize('snippetSuggestions.bottom', \"Show snippet suggestions below other suggestions.\"),\n            nls.localize('snippetSuggestions.inline', \"Show snippets suggestions with other suggestions.\"),\n            nls.localize('snippetSuggestions.none', \"Do not show snippet suggestions.\"),\n        ],\n        description: nls.localize('snippetSuggestions', \"Controls whether snippets are shown with other suggestions and how they are sorted.\")\n    })),\n    smartSelect: register(new SmartSelect()),\n    smoothScrolling: register(new EditorBooleanOption(114 /* EditorOption.smoothScrolling */, 'smoothScrolling', false, { description: nls.localize('smoothScrolling', \"Controls whether the editor will scroll using an animation.\") })),\n    stopRenderingLineAfter: register(new EditorIntOption(117 /* EditorOption.stopRenderingLineAfter */, 'stopRenderingLineAfter', 10000, -1, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */)),\n    suggest: register(new EditorSuggest()),\n    inlineSuggest: register(new InlineEditorSuggest()),\n    inlineEdit: register(new InlineEditorEdit()),\n    inlineCompletionsAccessibilityVerbose: register(new EditorBooleanOption(149 /* EditorOption.inlineCompletionsAccessibilityVerbose */, 'inlineCompletionsAccessibilityVerbose', false, { description: nls.localize('inlineCompletionsAccessibilityVerbose', \"Controls whether the accessibility hint should be provided to screen reader users when an inline completion is shown.\") })),\n    suggestFontSize: register(new EditorIntOption(119 /* EditorOption.suggestFontSize */, 'suggestFontSize', 0, 0, 1000, { markdownDescription: nls.localize('suggestFontSize', \"Font size for the suggest widget. When set to {0}, the value of {1} is used.\", '`0`', '`#editor.fontSize#`') })),\n    suggestLineHeight: register(new EditorIntOption(120 /* EditorOption.suggestLineHeight */, 'suggestLineHeight', 0, 0, 1000, { markdownDescription: nls.localize('suggestLineHeight', \"Line height for the suggest widget. When set to {0}, the value of {1} is used. The minimum value is 8.\", '`0`', '`#editor.lineHeight#`') })),\n    suggestOnTriggerCharacters: register(new EditorBooleanOption(121 /* EditorOption.suggestOnTriggerCharacters */, 'suggestOnTriggerCharacters', true, { description: nls.localize('suggestOnTriggerCharacters', \"Controls whether suggestions should automatically show up when typing trigger characters.\") })),\n    suggestSelection: register(new EditorStringEnumOption(122 /* EditorOption.suggestSelection */, 'suggestSelection', 'first', ['first', 'recentlyUsed', 'recentlyUsedByPrefix'], {\n        markdownEnumDescriptions: [\n            nls.localize('suggestSelection.first', \"Always select the first suggestion.\"),\n            nls.localize('suggestSelection.recentlyUsed', \"Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently.\"),\n            nls.localize('suggestSelection.recentlyUsedByPrefix', \"Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`.\"),\n        ],\n        description: nls.localize('suggestSelection', \"Controls how suggestions are pre-selected when showing the suggest list.\")\n    })),\n    tabCompletion: register(new EditorStringEnumOption(123 /* EditorOption.tabCompletion */, 'tabCompletion', 'off', ['on', 'off', 'onlySnippets'], {\n        enumDescriptions: [\n            nls.localize('tabCompletion.on', \"Tab complete will insert the best matching suggestion when pressing tab.\"),\n            nls.localize('tabCompletion.off', \"Disable tab completions.\"),\n            nls.localize('tabCompletion.onlySnippets', \"Tab complete snippets when their prefix match. Works best when 'quickSuggestions' aren't enabled.\"),\n        ],\n        description: nls.localize('tabCompletion', \"Enables tab completions.\")\n    })),\n    tabIndex: register(new EditorIntOption(124 /* EditorOption.tabIndex */, 'tabIndex', 0, -1, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */)),\n    unicodeHighlight: register(new UnicodeHighlight()),\n    unusualLineTerminators: register(new EditorStringEnumOption(126 /* EditorOption.unusualLineTerminators */, 'unusualLineTerminators', 'prompt', ['auto', 'off', 'prompt'], {\n        enumDescriptions: [\n            nls.localize('unusualLineTerminators.auto', \"Unusual line terminators are automatically removed.\"),\n            nls.localize('unusualLineTerminators.off', \"Unusual line terminators are ignored.\"),\n            nls.localize('unusualLineTerminators.prompt', \"Unusual line terminators prompt to be removed.\"),\n        ],\n        description: nls.localize('unusualLineTerminators', \"Remove unusual line terminators that might cause problems.\")\n    })),\n    useShadowDOM: register(new EditorBooleanOption(127 /* EditorOption.useShadowDOM */, 'useShadowDOM', true)),\n    useTabStops: register(new EditorBooleanOption(128 /* EditorOption.useTabStops */, 'useTabStops', true, { description: nls.localize('useTabStops', \"Spaces and tabs are inserted and deleted in alignment with tab stops.\") })),\n    wordBreak: register(new EditorStringEnumOption(129 /* EditorOption.wordBreak */, 'wordBreak', 'normal', ['normal', 'keepAll'], {\n        markdownEnumDescriptions: [\n            nls.localize('wordBreak.normal', \"Use the default line break rule.\"),\n            nls.localize('wordBreak.keepAll', \"Word breaks should not be used for Chinese/Japanese/Korean (CJK) text. Non-CJK text behavior is the same as for normal.\"),\n        ],\n        description: nls.localize('wordBreak', \"Controls the word break rules used for Chinese/Japanese/Korean (CJK) text.\")\n    })),\n    wordSegmenterLocales: register(new WordSegmenterLocales()),\n    wordSeparators: register(new EditorStringOption(131 /* EditorOption.wordSeparators */, 'wordSeparators', USUAL_WORD_SEPARATORS, { description: nls.localize('wordSeparators', \"Characters that will be used as word separators when doing word related navigations or operations.\") })),\n    wordWrap: register(new EditorStringEnumOption(132 /* EditorOption.wordWrap */, 'wordWrap', 'off', ['off', 'on', 'wordWrapColumn', 'bounded'], {\n        markdownEnumDescriptions: [\n            nls.localize('wordWrap.off', \"Lines will never wrap.\"),\n            nls.localize('wordWrap.on', \"Lines will wrap at the viewport width.\"),\n            nls.localize({\n                key: 'wordWrap.wordWrapColumn',\n                comment: [\n                    '- `editor.wordWrapColumn` refers to a different setting and should not be localized.'\n                ]\n            }, \"Lines will wrap at `#editor.wordWrapColumn#`.\"),\n            nls.localize({\n                key: 'wordWrap.bounded',\n                comment: [\n                    '- viewport means the edge of the visible window size.',\n                    '- `editor.wordWrapColumn` refers to a different setting and should not be localized.'\n                ]\n            }, \"Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`.\"),\n        ],\n        description: nls.localize({\n            key: 'wordWrap',\n            comment: [\n                '- \\'off\\', \\'on\\', \\'wordWrapColumn\\' and \\'bounded\\' refer to values the setting can take and should not be localized.',\n                '- `editor.wordWrapColumn` refers to a different setting and should not be localized.'\n            ]\n        }, \"Controls how lines should wrap.\")\n    })),\n    wordWrapBreakAfterCharacters: register(new EditorStringOption(133 /* EditorOption.wordWrapBreakAfterCharacters */, 'wordWrapBreakAfterCharacters', \n    // allow-any-unicode-next-line\n    ' \\t})]?|/&.,;¢°′″‰℃、。｡､￠，．：；？！％・･ゝゞヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻ｧｨｩｪｫｬｭｮｯｰ”〉》」』】〕）］｝｣')),\n    wordWrapBreakBeforeCharacters: register(new EditorStringOption(134 /* EditorOption.wordWrapBreakBeforeCharacters */, 'wordWrapBreakBeforeCharacters', \n    // allow-any-unicode-next-line\n    '([{‘“〈《「『【〔（［｛｢£¥＄￡￥+＋')),\n    wordWrapColumn: register(new EditorIntOption(135 /* EditorOption.wordWrapColumn */, 'wordWrapColumn', 80, 1, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */, {\n        markdownDescription: nls.localize({\n            key: 'wordWrapColumn',\n            comment: [\n                '- `editor.wordWrap` refers to a different setting and should not be localized.',\n                '- \\'wordWrapColumn\\' and \\'bounded\\' refer to values the different setting can take and should not be localized.'\n            ]\n        }, \"Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`.\")\n    })),\n    wordWrapOverride1: register(new EditorStringEnumOption(136 /* EditorOption.wordWrapOverride1 */, 'wordWrapOverride1', 'inherit', ['off', 'on', 'inherit'])),\n    wordWrapOverride2: register(new EditorStringEnumOption(137 /* EditorOption.wordWrapOverride2 */, 'wordWrapOverride2', 'inherit', ['off', 'on', 'inherit'])),\n    // Leave these at the end (because they have dependencies!)\n    editorClassName: register(new EditorClassName()),\n    defaultColorDecorators: register(new EditorBooleanOption(147 /* EditorOption.defaultColorDecorators */, 'defaultColorDecorators', false, { markdownDescription: nls.localize('defaultColorDecorators', \"Controls whether inline color decorations should be shown using the default document color provider\") })),\n    pixelRatio: register(new EditorPixelRatio()),\n    tabFocusMode: register(new EditorBooleanOption(144 /* EditorOption.tabFocusMode */, 'tabFocusMode', false, { markdownDescription: nls.localize('tabFocusMode', \"Controls whether the editor receives tabs or defers them to the workbench for navigation.\") })),\n    layoutInfo: register(new EditorLayoutInfoComputer()),\n    wrappingInfo: register(new EditorWrappingInfoComputer()),\n    wrappingIndent: register(new WrappingIndentOption()),\n    wrappingStrategy: register(new WrappingStrategy())\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/config/editorZoom.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../../base/common/event.js';\nexport const EditorZoom = new class {\n    constructor() {\n        this._zoomLevel = 0;\n        this._onDidChangeZoomLevel = new Emitter();\n        this.onDidChangeZoomLevel = this._onDidChangeZoomLevel.event;\n    }\n    getZoomLevel() {\n        return this._zoomLevel;\n    }\n    setZoomLevel(zoomLevel) {\n        zoomLevel = Math.min(Math.max(-5, zoomLevel), 20);\n        if (this._zoomLevel === zoomLevel) {\n            return;\n        }\n        this._zoomLevel = zoomLevel;\n        this._onDidChangeZoomLevel.fire(this._zoomLevel);\n    }\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/config/fontInfo.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as platform from '../../../base/common/platform.js';\nimport { EditorFontVariations, EDITOR_FONT_DEFAULTS } from './editorOptions.js';\nimport { EditorZoom } from './editorZoom.js';\n/**\n * Determined from empirical observations.\n * @internal\n */\nconst GOLDEN_LINE_HEIGHT_RATIO = platform.isMacintosh ? 1.5 : 1.35;\n/**\n * @internal\n */\nconst MINIMUM_LINE_HEIGHT = 8;\nexport class BareFontInfo {\n    /**\n     * @internal\n     */\n    static createFromValidatedSettings(options, pixelRatio, ignoreEditorZoom) {\n        const fontFamily = options.get(49 /* EditorOption.fontFamily */);\n        const fontWeight = options.get(53 /* EditorOption.fontWeight */);\n        const fontSize = options.get(52 /* EditorOption.fontSize */);\n        const fontFeatureSettings = options.get(51 /* EditorOption.fontLigatures */);\n        const fontVariationSettings = options.get(54 /* EditorOption.fontVariations */);\n        const lineHeight = options.get(67 /* EditorOption.lineHeight */);\n        const letterSpacing = options.get(64 /* EditorOption.letterSpacing */);\n        return BareFontInfo._create(fontFamily, fontWeight, fontSize, fontFeatureSettings, fontVariationSettings, lineHeight, letterSpacing, pixelRatio, ignoreEditorZoom);\n    }\n    /**\n     * @internal\n     */\n    static _create(fontFamily, fontWeight, fontSize, fontFeatureSettings, fontVariationSettings, lineHeight, letterSpacing, pixelRatio, ignoreEditorZoom) {\n        if (lineHeight === 0) {\n            lineHeight = GOLDEN_LINE_HEIGHT_RATIO * fontSize;\n        }\n        else if (lineHeight < MINIMUM_LINE_HEIGHT) {\n            // Values too small to be line heights in pixels are in ems.\n            lineHeight = lineHeight * fontSize;\n        }\n        // Enforce integer, minimum constraints\n        lineHeight = Math.round(lineHeight);\n        if (lineHeight < MINIMUM_LINE_HEIGHT) {\n            lineHeight = MINIMUM_LINE_HEIGHT;\n        }\n        const editorZoomLevelMultiplier = 1 + (ignoreEditorZoom ? 0 : EditorZoom.getZoomLevel() * 0.1);\n        fontSize *= editorZoomLevelMultiplier;\n        lineHeight *= editorZoomLevelMultiplier;\n        if (fontVariationSettings === EditorFontVariations.TRANSLATE) {\n            if (fontWeight === 'normal' || fontWeight === 'bold') {\n                fontVariationSettings = EditorFontVariations.OFF;\n            }\n            else {\n                const fontWeightAsNumber = parseInt(fontWeight, 10);\n                fontVariationSettings = `'wght' ${fontWeightAsNumber}`;\n                fontWeight = 'normal';\n            }\n        }\n        return new BareFontInfo({\n            pixelRatio: pixelRatio,\n            fontFamily: fontFamily,\n            fontWeight: fontWeight,\n            fontSize: fontSize,\n            fontFeatureSettings: fontFeatureSettings,\n            fontVariationSettings,\n            lineHeight: lineHeight,\n            letterSpacing: letterSpacing\n        });\n    }\n    /**\n     * @internal\n     */\n    constructor(opts) {\n        this._bareFontInfoBrand = undefined;\n        this.pixelRatio = opts.pixelRatio;\n        this.fontFamily = String(opts.fontFamily);\n        this.fontWeight = String(opts.fontWeight);\n        this.fontSize = opts.fontSize;\n        this.fontFeatureSettings = opts.fontFeatureSettings;\n        this.fontVariationSettings = opts.fontVariationSettings;\n        this.lineHeight = opts.lineHeight | 0;\n        this.letterSpacing = opts.letterSpacing;\n    }\n    /**\n     * @internal\n     */\n    getId() {\n        return `${this.pixelRatio}-${this.fontFamily}-${this.fontWeight}-${this.fontSize}-${this.fontFeatureSettings}-${this.fontVariationSettings}-${this.lineHeight}-${this.letterSpacing}`;\n    }\n    /**\n     * @internal\n     */\n    getMassagedFontFamily() {\n        const fallbackFontFamily = EDITOR_FONT_DEFAULTS.fontFamily;\n        const fontFamily = BareFontInfo._wrapInQuotes(this.fontFamily);\n        if (fallbackFontFamily && this.fontFamily !== fallbackFontFamily) {\n            return `${fontFamily}, ${fallbackFontFamily}`;\n        }\n        return fontFamily;\n    }\n    static _wrapInQuotes(fontFamily) {\n        if (/[,\"']/.test(fontFamily)) {\n            // Looks like the font family might be already escaped\n            return fontFamily;\n        }\n        if (/[+ ]/.test(fontFamily)) {\n            // Wrap a font family using + or <space> with quotes\n            return `\"${fontFamily}\"`;\n        }\n        return fontFamily;\n    }\n}\n// change this whenever `FontInfo` members are changed\nexport const SERIALIZED_FONT_INFO_VERSION = 2;\nexport class FontInfo extends BareFontInfo {\n    /**\n     * @internal\n     */\n    constructor(opts, isTrusted) {\n        super(opts);\n        this._editorStylingBrand = undefined;\n        this.version = SERIALIZED_FONT_INFO_VERSION;\n        this.isTrusted = isTrusted;\n        this.isMonospace = opts.isMonospace;\n        this.typicalHalfwidthCharacterWidth = opts.typicalHalfwidthCharacterWidth;\n        this.typicalFullwidthCharacterWidth = opts.typicalFullwidthCharacterWidth;\n        this.canUseHalfwidthRightwardsArrow = opts.canUseHalfwidthRightwardsArrow;\n        this.spaceWidth = opts.spaceWidth;\n        this.middotWidth = opts.middotWidth;\n        this.wsmiddotWidth = opts.wsmiddotWidth;\n        this.maxDigitWidth = opts.maxDigitWidth;\n    }\n    /**\n     * @internal\n     */\n    equals(other) {\n        return (this.fontFamily === other.fontFamily\n            && this.fontWeight === other.fontWeight\n            && this.fontSize === other.fontSize\n            && this.fontFeatureSettings === other.fontFeatureSettings\n            && this.fontVariationSettings === other.fontVariationSettings\n            && this.lineHeight === other.lineHeight\n            && this.letterSpacing === other.letterSpacing\n            && this.typicalHalfwidthCharacterWidth === other.typicalHalfwidthCharacterWidth\n            && this.typicalFullwidthCharacterWidth === other.typicalFullwidthCharacterWidth\n            && this.canUseHalfwidthRightwardsArrow === other.canUseHalfwidthRightwardsArrow\n            && this.spaceWidth === other.spaceWidth\n            && this.middotWidth === other.middotWidth\n            && this.wsmiddotWidth === other.wsmiddotWidth\n            && this.maxDigitWidth === other.maxDigitWidth);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/core/characterClassifier.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { toUint8 } from '../../../base/common/uint.js';\n/**\n * A fast character classifier that uses a compact array for ASCII values.\n */\nexport class CharacterClassifier {\n    constructor(_defaultValue) {\n        const defaultValue = toUint8(_defaultValue);\n        this._defaultValue = defaultValue;\n        this._asciiMap = CharacterClassifier._createAsciiMap(defaultValue);\n        this._map = new Map();\n    }\n    static _createAsciiMap(defaultValue) {\n        const asciiMap = new Uint8Array(256);\n        asciiMap.fill(defaultValue);\n        return asciiMap;\n    }\n    set(charCode, _value) {\n        const value = toUint8(_value);\n        if (charCode >= 0 && charCode < 256) {\n            this._asciiMap[charCode] = value;\n        }\n        else {\n            this._map.set(charCode, value);\n        }\n    }\n    get(charCode) {\n        if (charCode >= 0 && charCode < 256) {\n            return this._asciiMap[charCode];\n        }\n        else {\n            return (this._map.get(charCode) || this._defaultValue);\n        }\n    }\n    clear() {\n        this._asciiMap.fill(this._defaultValue);\n        this._map.clear();\n    }\n}\nexport class CharacterSet {\n    constructor() {\n        this._actual = new CharacterClassifier(0 /* Boolean.False */);\n    }\n    add(charCode) {\n        this._actual.set(charCode, 1 /* Boolean.True */);\n    }\n    has(charCode) {\n        return (this._actual.get(charCode) === 1 /* Boolean.True */);\n    }\n    clear() {\n        return this._actual.clear();\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/core/cursorColumns.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../base/common/strings.js';\n/**\n * A column in a position is the gap between two adjacent characters. The methods here\n * work with a concept called \"visible column\". A visible column is a very rough approximation\n * of the horizontal screen position of a column. For example, using a tab size of 4:\n * ```txt\n * |<TAB>|<TAB>|T|ext\n * |     |     | \\---- column = 4, visible column = 9\n * |     |     \\------ column = 3, visible column = 8\n * |     \\------------ column = 2, visible column = 4\n * \\------------------ column = 1, visible column = 0\n * ```\n *\n * **NOTE**: Visual columns do not work well for RTL text or variable-width fonts or characters.\n *\n * **NOTE**: These methods work and make sense both on the model and on the view model.\n */\nexport class CursorColumns {\n    static _nextVisibleColumn(codePoint, visibleColumn, tabSize) {\n        if (codePoint === 9 /* CharCode.Tab */) {\n            return CursorColumns.nextRenderTabStop(visibleColumn, tabSize);\n        }\n        if (strings.isFullWidthCharacter(codePoint) || strings.isEmojiImprecise(codePoint)) {\n            return visibleColumn + 2;\n        }\n        return visibleColumn + 1;\n    }\n    /**\n     * Returns a visible column from a column.\n     * @see {@link CursorColumns}\n     */\n    static visibleColumnFromColumn(lineContent, column, tabSize) {\n        const textLen = Math.min(column - 1, lineContent.length);\n        const text = lineContent.substring(0, textLen);\n        const iterator = new strings.GraphemeIterator(text);\n        let result = 0;\n        while (!iterator.eol()) {\n            const codePoint = strings.getNextCodePoint(text, textLen, iterator.offset);\n            iterator.nextGraphemeLength();\n            result = this._nextVisibleColumn(codePoint, result, tabSize);\n        }\n        return result;\n    }\n    /**\n     * Returns a column from a visible column.\n     * @see {@link CursorColumns}\n     */\n    static columnFromVisibleColumn(lineContent, visibleColumn, tabSize) {\n        if (visibleColumn <= 0) {\n            return 1;\n        }\n        const lineContentLength = lineContent.length;\n        const iterator = new strings.GraphemeIterator(lineContent);\n        let beforeVisibleColumn = 0;\n        let beforeColumn = 1;\n        while (!iterator.eol()) {\n            const codePoint = strings.getNextCodePoint(lineContent, lineContentLength, iterator.offset);\n            iterator.nextGraphemeLength();\n            const afterVisibleColumn = this._nextVisibleColumn(codePoint, beforeVisibleColumn, tabSize);\n            const afterColumn = iterator.offset + 1;\n            if (afterVisibleColumn >= visibleColumn) {\n                const beforeDelta = visibleColumn - beforeVisibleColumn;\n                const afterDelta = afterVisibleColumn - visibleColumn;\n                if (afterDelta < beforeDelta) {\n                    return afterColumn;\n                }\n                else {\n                    return beforeColumn;\n                }\n            }\n            beforeVisibleColumn = afterVisibleColumn;\n            beforeColumn = afterColumn;\n        }\n        // walked the entire string\n        return lineContentLength + 1;\n    }\n    /**\n     * ATTENTION: This works with 0-based columns (as opposed to the regular 1-based columns)\n     * @see {@link CursorColumns}\n     */\n    static nextRenderTabStop(visibleColumn, tabSize) {\n        return visibleColumn + tabSize - visibleColumn % tabSize;\n    }\n    /**\n     * ATTENTION: This works with 0-based columns (as opposed to the regular 1-based columns)\n     * @see {@link CursorColumns}\n     */\n    static nextIndentTabStop(visibleColumn, indentSize) {\n        return visibleColumn + indentSize - visibleColumn % indentSize;\n    }\n    /**\n     * ATTENTION: This works with 0-based columns (as opposed to the regular 1-based columns)\n     * @see {@link CursorColumns}\n     */\n    static prevRenderTabStop(column, tabSize) {\n        return Math.max(0, column - 1 - (column - 1) % tabSize);\n    }\n    /**\n     * ATTENTION: This works with 0-based columns (as opposed to the regular 1-based columns)\n     * @see {@link CursorColumns}\n     */\n    static prevIndentTabStop(column, indentSize) {\n        return Math.max(0, column - 1 - (column - 1) % indentSize);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/core/dimension.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport {};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/core/editOperation.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Range } from './range.js';\nexport class EditOperation {\n    static insert(position, text) {\n        return {\n            range: new Range(position.lineNumber, position.column, position.lineNumber, position.column),\n            text: text,\n            forceMoveMarkers: true\n        };\n    }\n    static delete(range) {\n        return {\n            range: range,\n            text: null\n        };\n    }\n    static replace(range, text) {\n        return {\n            range: range,\n            text: text\n        };\n    }\n    static replaceMove(range, text) {\n        return {\n            range: range,\n            text: text,\n            forceMoveMarkers: true\n        };\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/core/editorColorRegistry.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../nls.js';\nimport { Color, RGBA } from '../../../base/common/color.js';\nimport { activeContrastBorder, editorBackground, registerColor, editorWarningForeground, editorInfoForeground, editorWarningBorder, editorInfoBorder, contrastBorder, editorFindMatchHighlight, editorWarningBackground } from '../../../platform/theme/common/colorRegistry.js';\nimport { registerThemingParticipant } from '../../../platform/theme/common/themeService.js';\n/**\n * Definition of the editor colors\n */\nexport const editorLineHighlight = registerColor('editor.lineHighlightBackground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('lineHighlight', 'Background color for the highlight of line at the cursor position.'));\nexport const editorLineHighlightBorder = registerColor('editor.lineHighlightBorder', { dark: '#282828', light: '#eeeeee', hcDark: '#f38518', hcLight: contrastBorder }, nls.localize('lineHighlightBorderBox', 'Background color for the border around the line at the cursor position.'));\nexport const editorRangeHighlight = registerColor('editor.rangeHighlightBackground', { dark: '#ffffff0b', light: '#fdff0033', hcDark: null, hcLight: null }, nls.localize('rangeHighlight', 'Background color of highlighted ranges, like by quick open and find features. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const editorRangeHighlightBorder = registerColor('editor.rangeHighlightBorder', { dark: null, light: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize('rangeHighlightBorder', 'Background color of the border around highlighted ranges.'));\nexport const editorSymbolHighlight = registerColor('editor.symbolHighlightBackground', { dark: editorFindMatchHighlight, light: editorFindMatchHighlight, hcDark: null, hcLight: null }, nls.localize('symbolHighlight', 'Background color of highlighted symbol, like for go to definition or go next/previous symbol. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const editorSymbolHighlightBorder = registerColor('editor.symbolHighlightBorder', { dark: null, light: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize('symbolHighlightBorder', 'Background color of the border around highlighted symbols.'));\nexport const editorCursorForeground = registerColor('editorCursor.foreground', { dark: '#AEAFAD', light: Color.black, hcDark: Color.white, hcLight: '#0F4A85' }, nls.localize('caret', 'Color of the editor cursor.'));\nexport const editorCursorBackground = registerColor('editorCursor.background', null, nls.localize('editorCursorBackground', 'The background color of the editor cursor. Allows customizing the color of a character overlapped by a block cursor.'));\nexport const editorMultiCursorPrimaryForeground = registerColor('editorMultiCursor.primary.foreground', { dark: editorCursorForeground, light: editorCursorForeground, hcDark: editorCursorForeground, hcLight: editorCursorForeground }, nls.localize('editorMultiCursorPrimaryForeground', 'Color of the primary editor cursor when multiple cursors are present.'));\nexport const editorMultiCursorPrimaryBackground = registerColor('editorMultiCursor.primary.background', { dark: editorCursorBackground, light: editorCursorBackground, hcDark: editorCursorBackground, hcLight: editorCursorBackground }, nls.localize('editorMultiCursorPrimaryBackground', 'The background color of the primary editor cursor when multiple cursors are present. Allows customizing the color of a character overlapped by a block cursor.'));\nexport const editorMultiCursorSecondaryForeground = registerColor('editorMultiCursor.secondary.foreground', { dark: editorCursorForeground, light: editorCursorForeground, hcDark: editorCursorForeground, hcLight: editorCursorForeground }, nls.localize('editorMultiCursorSecondaryForeground', 'Color of secondary editor cursors when multiple cursors are present.'));\nexport const editorMultiCursorSecondaryBackground = registerColor('editorMultiCursor.secondary.background', { dark: editorCursorBackground, light: editorCursorBackground, hcDark: editorCursorBackground, hcLight: editorCursorBackground }, nls.localize('editorMultiCursorSecondaryBackground', 'The background color of secondary editor cursors when multiple cursors are present. Allows customizing the color of a character overlapped by a block cursor.'));\nexport const editorWhitespaces = registerColor('editorWhitespace.foreground', { dark: '#e3e4e229', light: '#33333333', hcDark: '#e3e4e229', hcLight: '#CCCCCC' }, nls.localize('editorWhitespaces', 'Color of whitespace characters in the editor.'));\nexport const editorLineNumbers = registerColor('editorLineNumber.foreground', { dark: '#858585', light: '#237893', hcDark: Color.white, hcLight: '#292929' }, nls.localize('editorLineNumbers', 'Color of editor line numbers.'));\nexport const deprecatedEditorIndentGuides = registerColor('editorIndentGuide.background', { dark: editorWhitespaces, light: editorWhitespaces, hcDark: editorWhitespaces, hcLight: editorWhitespaces }, nls.localize('editorIndentGuides', 'Color of the editor indentation guides.'), false, nls.localize('deprecatedEditorIndentGuides', '\\'editorIndentGuide.background\\' is deprecated. Use \\'editorIndentGuide.background1\\' instead.'));\nexport const deprecatedEditorActiveIndentGuides = registerColor('editorIndentGuide.activeBackground', { dark: editorWhitespaces, light: editorWhitespaces, hcDark: editorWhitespaces, hcLight: editorWhitespaces }, nls.localize('editorActiveIndentGuide', 'Color of the active editor indentation guides.'), false, nls.localize('deprecatedEditorActiveIndentGuide', '\\'editorIndentGuide.activeBackground\\' is deprecated. Use \\'editorIndentGuide.activeBackground1\\' instead.'));\nexport const editorIndentGuide1 = registerColor('editorIndentGuide.background1', { dark: deprecatedEditorIndentGuides, light: deprecatedEditorIndentGuides, hcDark: deprecatedEditorIndentGuides, hcLight: deprecatedEditorIndentGuides }, nls.localize('editorIndentGuides1', 'Color of the editor indentation guides (1).'));\nexport const editorIndentGuide2 = registerColor('editorIndentGuide.background2', { dark: '#00000000', light: '#00000000', hcDark: '#00000000', hcLight: '#00000000' }, nls.localize('editorIndentGuides2', 'Color of the editor indentation guides (2).'));\nexport const editorIndentGuide3 = registerColor('editorIndentGuide.background3', { dark: '#00000000', light: '#00000000', hcDark: '#00000000', hcLight: '#00000000' }, nls.localize('editorIndentGuides3', 'Color of the editor indentation guides (3).'));\nexport const editorIndentGuide4 = registerColor('editorIndentGuide.background4', { dark: '#00000000', light: '#00000000', hcDark: '#00000000', hcLight: '#00000000' }, nls.localize('editorIndentGuides4', 'Color of the editor indentation guides (4).'));\nexport const editorIndentGuide5 = registerColor('editorIndentGuide.background5', { dark: '#00000000', light: '#00000000', hcDark: '#00000000', hcLight: '#00000000' }, nls.localize('editorIndentGuides5', 'Color of the editor indentation guides (5).'));\nexport const editorIndentGuide6 = registerColor('editorIndentGuide.background6', { dark: '#00000000', light: '#00000000', hcDark: '#00000000', hcLight: '#00000000' }, nls.localize('editorIndentGuides6', 'Color of the editor indentation guides (6).'));\nexport const editorActiveIndentGuide1 = registerColor('editorIndentGuide.activeBackground1', { dark: deprecatedEditorActiveIndentGuides, light: deprecatedEditorActiveIndentGuides, hcDark: deprecatedEditorActiveIndentGuides, hcLight: deprecatedEditorActiveIndentGuides }, nls.localize('editorActiveIndentGuide1', 'Color of the active editor indentation guides (1).'));\nexport const editorActiveIndentGuide2 = registerColor('editorIndentGuide.activeBackground2', { dark: '#00000000', light: '#00000000', hcDark: '#00000000', hcLight: '#00000000' }, nls.localize('editorActiveIndentGuide2', 'Color of the active editor indentation guides (2).'));\nexport const editorActiveIndentGuide3 = registerColor('editorIndentGuide.activeBackground3', { dark: '#00000000', light: '#00000000', hcDark: '#00000000', hcLight: '#00000000' }, nls.localize('editorActiveIndentGuide3', 'Color of the active editor indentation guides (3).'));\nexport const editorActiveIndentGuide4 = registerColor('editorIndentGuide.activeBackground4', { dark: '#00000000', light: '#00000000', hcDark: '#00000000', hcLight: '#00000000' }, nls.localize('editorActiveIndentGuide4', 'Color of the active editor indentation guides (4).'));\nexport const editorActiveIndentGuide5 = registerColor('editorIndentGuide.activeBackground5', { dark: '#00000000', light: '#00000000', hcDark: '#00000000', hcLight: '#00000000' }, nls.localize('editorActiveIndentGuide5', 'Color of the active editor indentation guides (5).'));\nexport const editorActiveIndentGuide6 = registerColor('editorIndentGuide.activeBackground6', { dark: '#00000000', light: '#00000000', hcDark: '#00000000', hcLight: '#00000000' }, nls.localize('editorActiveIndentGuide6', 'Color of the active editor indentation guides (6).'));\nconst deprecatedEditorActiveLineNumber = registerColor('editorActiveLineNumber.foreground', { dark: '#c6c6c6', light: '#0B216F', hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize('editorActiveLineNumber', 'Color of editor active line number'), false, nls.localize('deprecatedEditorActiveLineNumber', 'Id is deprecated. Use \\'editorLineNumber.activeForeground\\' instead.'));\nexport const editorActiveLineNumber = registerColor('editorLineNumber.activeForeground', { dark: deprecatedEditorActiveLineNumber, light: deprecatedEditorActiveLineNumber, hcDark: deprecatedEditorActiveLineNumber, hcLight: deprecatedEditorActiveLineNumber }, nls.localize('editorActiveLineNumber', 'Color of editor active line number'));\nexport const editorDimmedLineNumber = registerColor('editorLineNumber.dimmedForeground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('editorDimmedLineNumber', 'Color of the final editor line when editor.renderFinalNewline is set to dimmed.'));\nexport const editorRuler = registerColor('editorRuler.foreground', { dark: '#5A5A5A', light: Color.lightgrey, hcDark: Color.white, hcLight: '#292929' }, nls.localize('editorRuler', 'Color of the editor rulers.'));\nexport const editorCodeLensForeground = registerColor('editorCodeLens.foreground', { dark: '#999999', light: '#919191', hcDark: '#999999', hcLight: '#292929' }, nls.localize('editorCodeLensForeground', 'Foreground color of editor CodeLens'));\nexport const editorBracketMatchBackground = registerColor('editorBracketMatch.background', { dark: '#0064001a', light: '#0064001a', hcDark: '#0064001a', hcLight: '#0000' }, nls.localize('editorBracketMatchBackground', 'Background color behind matching brackets'));\nexport const editorBracketMatchBorder = registerColor('editorBracketMatch.border', { dark: '#888', light: '#B9B9B9', hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('editorBracketMatchBorder', 'Color for matching brackets boxes'));\nexport const editorOverviewRulerBorder = registerColor('editorOverviewRuler.border', { dark: '#7f7f7f4d', light: '#7f7f7f4d', hcDark: '#7f7f7f4d', hcLight: '#666666' }, nls.localize('editorOverviewRulerBorder', 'Color of the overview ruler border.'));\nexport const editorOverviewRulerBackground = registerColor('editorOverviewRuler.background', null, nls.localize('editorOverviewRulerBackground', 'Background color of the editor overview ruler.'));\nexport const editorGutter = registerColor('editorGutter.background', { dark: editorBackground, light: editorBackground, hcDark: editorBackground, hcLight: editorBackground }, nls.localize('editorGutter', 'Background color of the editor gutter. The gutter contains the glyph margins and the line numbers.'));\nexport const editorUnnecessaryCodeBorder = registerColor('editorUnnecessaryCode.border', { dark: null, light: null, hcDark: Color.fromHex('#fff').transparent(0.8), hcLight: contrastBorder }, nls.localize('unnecessaryCodeBorder', 'Border color of unnecessary (unused) source code in the editor.'));\nexport const editorUnnecessaryCodeOpacity = registerColor('editorUnnecessaryCode.opacity', { dark: Color.fromHex('#000a'), light: Color.fromHex('#0007'), hcDark: null, hcLight: null }, nls.localize('unnecessaryCodeOpacity', 'Opacity of unnecessary (unused) source code in the editor. For example, \"#000000c0\" will render the code with 75% opacity. For high contrast themes, use the  \\'editorUnnecessaryCode.border\\' theme color to underline unnecessary code instead of fading it out.'));\nexport const ghostTextBorder = registerColor('editorGhostText.border', { dark: null, light: null, hcDark: Color.fromHex('#fff').transparent(0.8), hcLight: Color.fromHex('#292929').transparent(0.8) }, nls.localize('editorGhostTextBorder', 'Border color of ghost text in the editor.'));\nexport const ghostTextForeground = registerColor('editorGhostText.foreground', { dark: Color.fromHex('#ffffff56'), light: Color.fromHex('#0007'), hcDark: null, hcLight: null }, nls.localize('editorGhostTextForeground', 'Foreground color of the ghost text in the editor.'));\nexport const ghostTextBackground = registerColor('editorGhostText.background', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('editorGhostTextBackground', 'Background color of the ghost text in the editor.'));\nconst rulerRangeDefault = new Color(new RGBA(0, 122, 204, 0.6));\nexport const overviewRulerRangeHighlight = registerColor('editorOverviewRuler.rangeHighlightForeground', { dark: rulerRangeDefault, light: rulerRangeDefault, hcDark: rulerRangeDefault, hcLight: rulerRangeDefault }, nls.localize('overviewRulerRangeHighlight', 'Overview ruler marker color for range highlights. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const overviewRulerError = registerColor('editorOverviewRuler.errorForeground', { dark: new Color(new RGBA(255, 18, 18, 0.7)), light: new Color(new RGBA(255, 18, 18, 0.7)), hcDark: new Color(new RGBA(255, 50, 50, 1)), hcLight: '#B5200D' }, nls.localize('overviewRuleError', 'Overview ruler marker color for errors.'));\nexport const overviewRulerWarning = registerColor('editorOverviewRuler.warningForeground', { dark: editorWarningForeground, light: editorWarningForeground, hcDark: editorWarningBorder, hcLight: editorWarningBorder }, nls.localize('overviewRuleWarning', 'Overview ruler marker color for warnings.'));\nexport const overviewRulerInfo = registerColor('editorOverviewRuler.infoForeground', { dark: editorInfoForeground, light: editorInfoForeground, hcDark: editorInfoBorder, hcLight: editorInfoBorder }, nls.localize('overviewRuleInfo', 'Overview ruler marker color for infos.'));\nexport const editorBracketHighlightingForeground1 = registerColor('editorBracketHighlight.foreground1', { dark: '#FFD700', light: '#0431FAFF', hcDark: '#FFD700', hcLight: '#0431FAFF' }, nls.localize('editorBracketHighlightForeground1', 'Foreground color of brackets (1). Requires enabling bracket pair colorization.'));\nexport const editorBracketHighlightingForeground2 = registerColor('editorBracketHighlight.foreground2', { dark: '#DA70D6', light: '#319331FF', hcDark: '#DA70D6', hcLight: '#319331FF' }, nls.localize('editorBracketHighlightForeground2', 'Foreground color of brackets (2). Requires enabling bracket pair colorization.'));\nexport const editorBracketHighlightingForeground3 = registerColor('editorBracketHighlight.foreground3', { dark: '#179FFF', light: '#7B3814FF', hcDark: '#87CEFA', hcLight: '#7B3814FF' }, nls.localize('editorBracketHighlightForeground3', 'Foreground color of brackets (3). Requires enabling bracket pair colorization.'));\nexport const editorBracketHighlightingForeground4 = registerColor('editorBracketHighlight.foreground4', { dark: '#00000000', light: '#00000000', hcDark: '#00000000', hcLight: '#00000000' }, nls.localize('editorBracketHighlightForeground4', 'Foreground color of brackets (4). Requires enabling bracket pair colorization.'));\nexport const editorBracketHighlightingForeground5 = registerColor('editorBracketHighlight.foreground5', { dark: '#00000000', light: '#00000000', hcDark: '#00000000', hcLight: '#00000000' }, nls.localize('editorBracketHighlightForeground5', 'Foreground color of brackets (5). Requires enabling bracket pair colorization.'));\nexport const editorBracketHighlightingForeground6 = registerColor('editorBracketHighlight.foreground6', { dark: '#00000000', light: '#00000000', hcDark: '#00000000', hcLight: '#00000000' }, nls.localize('editorBracketHighlightForeground6', 'Foreground color of brackets (6). Requires enabling bracket pair colorization.'));\nexport const editorBracketHighlightingUnexpectedBracketForeground = registerColor('editorBracketHighlight.unexpectedBracket.foreground', { dark: new Color(new RGBA(255, 18, 18, 0.8)), light: new Color(new RGBA(255, 18, 18, 0.8)), hcDark: new Color(new RGBA(255, 50, 50, 1)), hcLight: '' }, nls.localize('editorBracketHighlightUnexpectedBracketForeground', 'Foreground color of unexpected brackets.'));\nexport const editorBracketPairGuideBackground1 = registerColor('editorBracketPairGuide.background1', { dark: '#00000000', light: '#00000000', hcDark: '#00000000', hcLight: '#00000000' }, nls.localize('editorBracketPairGuide.background1', 'Background color of inactive bracket pair guides (1). Requires enabling bracket pair guides.'));\nexport const editorBracketPairGuideBackground2 = registerColor('editorBracketPairGuide.background2', { dark: '#00000000', light: '#00000000', hcDark: '#00000000', hcLight: '#00000000' }, nls.localize('editorBracketPairGuide.background2', 'Background color of inactive bracket pair guides (2). Requires enabling bracket pair guides.'));\nexport const editorBracketPairGuideBackground3 = registerColor('editorBracketPairGuide.background3', { dark: '#00000000', light: '#00000000', hcDark: '#00000000', hcLight: '#00000000' }, nls.localize('editorBracketPairGuide.background3', 'Background color of inactive bracket pair guides (3). Requires enabling bracket pair guides.'));\nexport const editorBracketPairGuideBackground4 = registerColor('editorBracketPairGuide.background4', { dark: '#00000000', light: '#00000000', hcDark: '#00000000', hcLight: '#00000000' }, nls.localize('editorBracketPairGuide.background4', 'Background color of inactive bracket pair guides (4). Requires enabling bracket pair guides.'));\nexport const editorBracketPairGuideBackground5 = registerColor('editorBracketPairGuide.background5', { dark: '#00000000', light: '#00000000', hcDark: '#00000000', hcLight: '#00000000' }, nls.localize('editorBracketPairGuide.background5', 'Background color of inactive bracket pair guides (5). Requires enabling bracket pair guides.'));\nexport const editorBracketPairGuideBackground6 = registerColor('editorBracketPairGuide.background6', { dark: '#00000000', light: '#00000000', hcDark: '#00000000', hcLight: '#00000000' }, nls.localize('editorBracketPairGuide.background6', 'Background color of inactive bracket pair guides (6). Requires enabling bracket pair guides.'));\nexport const editorBracketPairGuideActiveBackground1 = registerColor('editorBracketPairGuide.activeBackground1', { dark: '#00000000', light: '#00000000', hcDark: '#00000000', hcLight: '#00000000' }, nls.localize('editorBracketPairGuide.activeBackground1', 'Background color of active bracket pair guides (1). Requires enabling bracket pair guides.'));\nexport const editorBracketPairGuideActiveBackground2 = registerColor('editorBracketPairGuide.activeBackground2', { dark: '#00000000', light: '#00000000', hcDark: '#00000000', hcLight: '#00000000' }, nls.localize('editorBracketPairGuide.activeBackground2', 'Background color of active bracket pair guides (2). Requires enabling bracket pair guides.'));\nexport const editorBracketPairGuideActiveBackground3 = registerColor('editorBracketPairGuide.activeBackground3', { dark: '#00000000', light: '#00000000', hcDark: '#00000000', hcLight: '#00000000' }, nls.localize('editorBracketPairGuide.activeBackground3', 'Background color of active bracket pair guides (3). Requires enabling bracket pair guides.'));\nexport const editorBracketPairGuideActiveBackground4 = registerColor('editorBracketPairGuide.activeBackground4', { dark: '#00000000', light: '#00000000', hcDark: '#00000000', hcLight: '#00000000' }, nls.localize('editorBracketPairGuide.activeBackground4', 'Background color of active bracket pair guides (4). Requires enabling bracket pair guides.'));\nexport const editorBracketPairGuideActiveBackground5 = registerColor('editorBracketPairGuide.activeBackground5', { dark: '#00000000', light: '#00000000', hcDark: '#00000000', hcLight: '#00000000' }, nls.localize('editorBracketPairGuide.activeBackground5', 'Background color of active bracket pair guides (5). Requires enabling bracket pair guides.'));\nexport const editorBracketPairGuideActiveBackground6 = registerColor('editorBracketPairGuide.activeBackground6', { dark: '#00000000', light: '#00000000', hcDark: '#00000000', hcLight: '#00000000' }, nls.localize('editorBracketPairGuide.activeBackground6', 'Background color of active bracket pair guides (6). Requires enabling bracket pair guides.'));\nexport const editorUnicodeHighlightBorder = registerColor('editorUnicodeHighlight.border', { dark: editorWarningForeground, light: editorWarningForeground, hcDark: editorWarningForeground, hcLight: editorWarningForeground }, nls.localize('editorUnicodeHighlight.border', 'Border color used to highlight unicode characters.'));\nexport const editorUnicodeHighlightBackground = registerColor('editorUnicodeHighlight.background', { dark: editorWarningBackground, light: editorWarningBackground, hcDark: editorWarningBackground, hcLight: editorWarningBackground }, nls.localize('editorUnicodeHighlight.background', 'Background color used to highlight unicode characters.'));\n// contains all color rules that used to defined in editor/browser/widget/editor.css\nregisterThemingParticipant((theme, collector) => {\n    const background = theme.getColor(editorBackground);\n    const lineHighlight = theme.getColor(editorLineHighlight);\n    const imeBackground = (lineHighlight && !lineHighlight.isTransparent() ? lineHighlight : background);\n    if (imeBackground) {\n        collector.addRule(`.monaco-editor .inputarea.ime-input { background-color: ${imeBackground}; }`);\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/core/eolCounter.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport function countEOL(text) {\n    let eolCount = 0;\n    let firstLineLength = 0;\n    let lastLineStart = 0;\n    let eol = 0 /* StringEOL.Unknown */;\n    for (let i = 0, len = text.length; i < len; i++) {\n        const chr = text.charCodeAt(i);\n        if (chr === 13 /* CharCode.CarriageReturn */) {\n            if (eolCount === 0) {\n                firstLineLength = i;\n            }\n            eolCount++;\n            if (i + 1 < len && text.charCodeAt(i + 1) === 10 /* CharCode.LineFeed */) {\n                // \\r\\n... case\n                eol |= 2 /* StringEOL.CRLF */;\n                i++; // skip \\n\n            }\n            else {\n                // \\r... case\n                eol |= 3 /* StringEOL.Invalid */;\n            }\n            lastLineStart = i + 1;\n        }\n        else if (chr === 10 /* CharCode.LineFeed */) {\n            // \\n... case\n            eol |= 1 /* StringEOL.LF */;\n            if (eolCount === 0) {\n                firstLineLength = i;\n            }\n            eolCount++;\n            lastLineStart = i + 1;\n        }\n    }\n    if (eolCount === 0) {\n        firstLineLength = text.length;\n    }\n    return [eolCount, firstLineLength, text.length - lastLineStart, eol];\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/core/indentation.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../base/common/strings.js';\nimport { CursorColumns } from './cursorColumns.js';\nfunction _normalizeIndentationFromWhitespace(str, indentSize, insertSpaces) {\n    let spacesCnt = 0;\n    for (let i = 0; i < str.length; i++) {\n        if (str.charAt(i) === '\\t') {\n            spacesCnt = CursorColumns.nextIndentTabStop(spacesCnt, indentSize);\n        }\n        else {\n            spacesCnt++;\n        }\n    }\n    let result = '';\n    if (!insertSpaces) {\n        const tabsCnt = Math.floor(spacesCnt / indentSize);\n        spacesCnt = spacesCnt % indentSize;\n        for (let i = 0; i < tabsCnt; i++) {\n            result += '\\t';\n        }\n    }\n    for (let i = 0; i < spacesCnt; i++) {\n        result += ' ';\n    }\n    return result;\n}\nexport function normalizeIndentation(str, indentSize, insertSpaces) {\n    let firstNonWhitespaceIndex = strings.firstNonWhitespaceIndex(str);\n    if (firstNonWhitespaceIndex === -1) {\n        firstNonWhitespaceIndex = str.length;\n    }\n    return _normalizeIndentationFromWhitespace(str.substring(0, firstNonWhitespaceIndex), indentSize, insertSpaces) + str.substring(firstNonWhitespaceIndex);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/core/lineRange.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { BugIndicatingError } from '../../../base/common/errors.js';\nimport { OffsetRange } from './offsetRange.js';\nimport { Range } from './range.js';\nimport { findFirstIdxMonotonousOrArrLen, findLastIdxMonotonous, findLastMonotonous } from '../../../base/common/arraysFind.js';\n/**\n * A range of lines (1-based).\n */\nexport class LineRange {\n    static fromRangeInclusive(range) {\n        return new LineRange(range.startLineNumber, range.endLineNumber + 1);\n    }\n    /**\n     * @param lineRanges An array of sorted line ranges.\n     */\n    static joinMany(lineRanges) {\n        if (lineRanges.length === 0) {\n            return [];\n        }\n        let result = new LineRangeSet(lineRanges[0].slice());\n        for (let i = 1; i < lineRanges.length; i++) {\n            result = result.getUnion(new LineRangeSet(lineRanges[i].slice()));\n        }\n        return result.ranges;\n    }\n    static join(lineRanges) {\n        if (lineRanges.length === 0) {\n            throw new BugIndicatingError('lineRanges cannot be empty');\n        }\n        let startLineNumber = lineRanges[0].startLineNumber;\n        let endLineNumberExclusive = lineRanges[0].endLineNumberExclusive;\n        for (let i = 1; i < lineRanges.length; i++) {\n            startLineNumber = Math.min(startLineNumber, lineRanges[i].startLineNumber);\n            endLineNumberExclusive = Math.max(endLineNumberExclusive, lineRanges[i].endLineNumberExclusive);\n        }\n        return new LineRange(startLineNumber, endLineNumberExclusive);\n    }\n    static ofLength(startLineNumber, length) {\n        return new LineRange(startLineNumber, startLineNumber + length);\n    }\n    /**\n     * @internal\n     */\n    static deserialize(lineRange) {\n        return new LineRange(lineRange[0], lineRange[1]);\n    }\n    constructor(startLineNumber, endLineNumberExclusive) {\n        if (startLineNumber > endLineNumberExclusive) {\n            throw new BugIndicatingError(`startLineNumber ${startLineNumber} cannot be after endLineNumberExclusive ${endLineNumberExclusive}`);\n        }\n        this.startLineNumber = startLineNumber;\n        this.endLineNumberExclusive = endLineNumberExclusive;\n    }\n    /**\n     * Indicates if this line range contains the given line number.\n     */\n    contains(lineNumber) {\n        return this.startLineNumber <= lineNumber && lineNumber < this.endLineNumberExclusive;\n    }\n    /**\n     * Indicates if this line range is empty.\n     */\n    get isEmpty() {\n        return this.startLineNumber === this.endLineNumberExclusive;\n    }\n    /**\n     * Moves this line range by the given offset of line numbers.\n     */\n    delta(offset) {\n        return new LineRange(this.startLineNumber + offset, this.endLineNumberExclusive + offset);\n    }\n    deltaLength(offset) {\n        return new LineRange(this.startLineNumber, this.endLineNumberExclusive + offset);\n    }\n    /**\n     * The number of lines this line range spans.\n     */\n    get length() {\n        return this.endLineNumberExclusive - this.startLineNumber;\n    }\n    /**\n     * Creates a line range that combines this and the given line range.\n     */\n    join(other) {\n        return new LineRange(Math.min(this.startLineNumber, other.startLineNumber), Math.max(this.endLineNumberExclusive, other.endLineNumberExclusive));\n    }\n    toString() {\n        return `[${this.startLineNumber},${this.endLineNumberExclusive})`;\n    }\n    /**\n     * The resulting range is empty if the ranges do not intersect, but touch.\n     * If the ranges don't even touch, the result is undefined.\n     */\n    intersect(other) {\n        const startLineNumber = Math.max(this.startLineNumber, other.startLineNumber);\n        const endLineNumberExclusive = Math.min(this.endLineNumberExclusive, other.endLineNumberExclusive);\n        if (startLineNumber <= endLineNumberExclusive) {\n            return new LineRange(startLineNumber, endLineNumberExclusive);\n        }\n        return undefined;\n    }\n    intersectsStrict(other) {\n        return this.startLineNumber < other.endLineNumberExclusive && other.startLineNumber < this.endLineNumberExclusive;\n    }\n    overlapOrTouch(other) {\n        return this.startLineNumber <= other.endLineNumberExclusive && other.startLineNumber <= this.endLineNumberExclusive;\n    }\n    equals(b) {\n        return this.startLineNumber === b.startLineNumber && this.endLineNumberExclusive === b.endLineNumberExclusive;\n    }\n    toInclusiveRange() {\n        if (this.isEmpty) {\n            return null;\n        }\n        return new Range(this.startLineNumber, 1, this.endLineNumberExclusive - 1, Number.MAX_SAFE_INTEGER);\n    }\n    /**\n     * @deprecated Using this function is discouraged because it might lead to bugs: The end position is not guaranteed to be a valid position!\n    */\n    toExclusiveRange() {\n        return new Range(this.startLineNumber, 1, this.endLineNumberExclusive, 1);\n    }\n    mapToLineArray(f) {\n        const result = [];\n        for (let lineNumber = this.startLineNumber; lineNumber < this.endLineNumberExclusive; lineNumber++) {\n            result.push(f(lineNumber));\n        }\n        return result;\n    }\n    forEach(f) {\n        for (let lineNumber = this.startLineNumber; lineNumber < this.endLineNumberExclusive; lineNumber++) {\n            f(lineNumber);\n        }\n    }\n    /**\n     * @internal\n     */\n    serialize() {\n        return [this.startLineNumber, this.endLineNumberExclusive];\n    }\n    includes(lineNumber) {\n        return this.startLineNumber <= lineNumber && lineNumber < this.endLineNumberExclusive;\n    }\n    /**\n     * Converts this 1-based line range to a 0-based offset range (subtracts 1!).\n     * @internal\n     */\n    toOffsetRange() {\n        return new OffsetRange(this.startLineNumber - 1, this.endLineNumberExclusive - 1);\n    }\n}\nexport class LineRangeSet {\n    constructor(\n    /**\n     * Sorted by start line number.\n     * No two line ranges are touching or intersecting.\n     */\n    _normalizedRanges = []) {\n        this._normalizedRanges = _normalizedRanges;\n    }\n    get ranges() {\n        return this._normalizedRanges;\n    }\n    addRange(range) {\n        if (range.length === 0) {\n            return;\n        }\n        // Idea: Find joinRange such that:\n        // replaceRange = _normalizedRanges.replaceRange(joinRange, range.joinAll(joinRange.map(idx => this._normalizedRanges[idx])))\n        // idx of first element that touches range or that is after range\n        const joinRangeStartIdx = findFirstIdxMonotonousOrArrLen(this._normalizedRanges, r => r.endLineNumberExclusive >= range.startLineNumber);\n        // idx of element after { last element that touches range or that is before range }\n        const joinRangeEndIdxExclusive = findLastIdxMonotonous(this._normalizedRanges, r => r.startLineNumber <= range.endLineNumberExclusive) + 1;\n        if (joinRangeStartIdx === joinRangeEndIdxExclusive) {\n            // If there is no element that touches range, then joinRangeStartIdx === joinRangeEndIdxExclusive and that value is the index of the element after range\n            this._normalizedRanges.splice(joinRangeStartIdx, 0, range);\n        }\n        else if (joinRangeStartIdx === joinRangeEndIdxExclusive - 1) {\n            // Else, there is an element that touches range and in this case it is both the first and last element. Thus we can replace it\n            const joinRange = this._normalizedRanges[joinRangeStartIdx];\n            this._normalizedRanges[joinRangeStartIdx] = joinRange.join(range);\n        }\n        else {\n            // First and last element are different - we need to replace the entire range\n            const joinRange = this._normalizedRanges[joinRangeStartIdx].join(this._normalizedRanges[joinRangeEndIdxExclusive - 1]).join(range);\n            this._normalizedRanges.splice(joinRangeStartIdx, joinRangeEndIdxExclusive - joinRangeStartIdx, joinRange);\n        }\n    }\n    contains(lineNumber) {\n        const rangeThatStartsBeforeEnd = findLastMonotonous(this._normalizedRanges, r => r.startLineNumber <= lineNumber);\n        return !!rangeThatStartsBeforeEnd && rangeThatStartsBeforeEnd.endLineNumberExclusive > lineNumber;\n    }\n    intersects(range) {\n        const rangeThatStartsBeforeEnd = findLastMonotonous(this._normalizedRanges, r => r.startLineNumber < range.endLineNumberExclusive);\n        return !!rangeThatStartsBeforeEnd && rangeThatStartsBeforeEnd.endLineNumberExclusive > range.startLineNumber;\n    }\n    getUnion(other) {\n        if (this._normalizedRanges.length === 0) {\n            return other;\n        }\n        if (other._normalizedRanges.length === 0) {\n            return this;\n        }\n        const result = [];\n        let i1 = 0;\n        let i2 = 0;\n        let current = null;\n        while (i1 < this._normalizedRanges.length || i2 < other._normalizedRanges.length) {\n            let next = null;\n            if (i1 < this._normalizedRanges.length && i2 < other._normalizedRanges.length) {\n                const lineRange1 = this._normalizedRanges[i1];\n                const lineRange2 = other._normalizedRanges[i2];\n                if (lineRange1.startLineNumber < lineRange2.startLineNumber) {\n                    next = lineRange1;\n                    i1++;\n                }\n                else {\n                    next = lineRange2;\n                    i2++;\n                }\n            }\n            else if (i1 < this._normalizedRanges.length) {\n                next = this._normalizedRanges[i1];\n                i1++;\n            }\n            else {\n                next = other._normalizedRanges[i2];\n                i2++;\n            }\n            if (current === null) {\n                current = next;\n            }\n            else {\n                if (current.endLineNumberExclusive >= next.startLineNumber) {\n                    // merge\n                    current = new LineRange(current.startLineNumber, Math.max(current.endLineNumberExclusive, next.endLineNumberExclusive));\n                }\n                else {\n                    // push\n                    result.push(current);\n                    current = next;\n                }\n            }\n        }\n        if (current !== null) {\n            result.push(current);\n        }\n        return new LineRangeSet(result);\n    }\n    /**\n     * Subtracts all ranges in this set from `range` and returns the result.\n     */\n    subtractFrom(range) {\n        // idx of first element that touches range or that is after range\n        const joinRangeStartIdx = findFirstIdxMonotonousOrArrLen(this._normalizedRanges, r => r.endLineNumberExclusive >= range.startLineNumber);\n        // idx of element after { last element that touches range or that is before range }\n        const joinRangeEndIdxExclusive = findLastIdxMonotonous(this._normalizedRanges, r => r.startLineNumber <= range.endLineNumberExclusive) + 1;\n        if (joinRangeStartIdx === joinRangeEndIdxExclusive) {\n            return new LineRangeSet([range]);\n        }\n        const result = [];\n        let startLineNumber = range.startLineNumber;\n        for (let i = joinRangeStartIdx; i < joinRangeEndIdxExclusive; i++) {\n            const r = this._normalizedRanges[i];\n            if (r.startLineNumber > startLineNumber) {\n                result.push(new LineRange(startLineNumber, r.startLineNumber));\n            }\n            startLineNumber = r.endLineNumberExclusive;\n        }\n        if (startLineNumber < range.endLineNumberExclusive) {\n            result.push(new LineRange(startLineNumber, range.endLineNumberExclusive));\n        }\n        return new LineRangeSet(result);\n    }\n    toString() {\n        return this._normalizedRanges.map(r => r.toString()).join(', ');\n    }\n    getIntersection(other) {\n        const result = [];\n        let i1 = 0;\n        let i2 = 0;\n        while (i1 < this._normalizedRanges.length && i2 < other._normalizedRanges.length) {\n            const r1 = this._normalizedRanges[i1];\n            const r2 = other._normalizedRanges[i2];\n            const i = r1.intersect(r2);\n            if (i && !i.isEmpty) {\n                result.push(i);\n            }\n            if (r1.endLineNumberExclusive < r2.endLineNumberExclusive) {\n                i1++;\n            }\n            else {\n                i2++;\n            }\n        }\n        return new LineRangeSet(result);\n    }\n    getWithDelta(value) {\n        return new LineRangeSet(this._normalizedRanges.map(r => r.delta(value)));\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/core/offsetRange.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { BugIndicatingError } from '../../../base/common/errors.js';\n/**\n * A range of offsets (0-based).\n*/\nexport class OffsetRange {\n    static addRange(range, sortedRanges) {\n        let i = 0;\n        while (i < sortedRanges.length && sortedRanges[i].endExclusive < range.start) {\n            i++;\n        }\n        let j = i;\n        while (j < sortedRanges.length && sortedRanges[j].start <= range.endExclusive) {\n            j++;\n        }\n        if (i === j) {\n            sortedRanges.splice(i, 0, range);\n        }\n        else {\n            const start = Math.min(range.start, sortedRanges[i].start);\n            const end = Math.max(range.endExclusive, sortedRanges[j - 1].endExclusive);\n            sortedRanges.splice(i, j - i, new OffsetRange(start, end));\n        }\n    }\n    static tryCreate(start, endExclusive) {\n        if (start > endExclusive) {\n            return undefined;\n        }\n        return new OffsetRange(start, endExclusive);\n    }\n    static ofLength(length) {\n        return new OffsetRange(0, length);\n    }\n    static ofStartAndLength(start, length) {\n        return new OffsetRange(start, start + length);\n    }\n    constructor(start, endExclusive) {\n        this.start = start;\n        this.endExclusive = endExclusive;\n        if (start > endExclusive) {\n            throw new BugIndicatingError(`Invalid range: ${this.toString()}`);\n        }\n    }\n    get isEmpty() {\n        return this.start === this.endExclusive;\n    }\n    delta(offset) {\n        return new OffsetRange(this.start + offset, this.endExclusive + offset);\n    }\n    deltaStart(offset) {\n        return new OffsetRange(this.start + offset, this.endExclusive);\n    }\n    deltaEnd(offset) {\n        return new OffsetRange(this.start, this.endExclusive + offset);\n    }\n    get length() {\n        return this.endExclusive - this.start;\n    }\n    toString() {\n        return `[${this.start}, ${this.endExclusive})`;\n    }\n    contains(offset) {\n        return this.start <= offset && offset < this.endExclusive;\n    }\n    /**\n     * for all numbers n: range1.contains(n) or range2.contains(n) => range1.join(range2).contains(n)\n     * The joined range is the smallest range that contains both ranges.\n     */\n    join(other) {\n        return new OffsetRange(Math.min(this.start, other.start), Math.max(this.endExclusive, other.endExclusive));\n    }\n    /**\n     * for all numbers n: range1.contains(n) and range2.contains(n) <=> range1.intersect(range2).contains(n)\n     *\n     * The resulting range is empty if the ranges do not intersect, but touch.\n     * If the ranges don't even touch, the result is undefined.\n     */\n    intersect(other) {\n        const start = Math.max(this.start, other.start);\n        const end = Math.min(this.endExclusive, other.endExclusive);\n        if (start <= end) {\n            return new OffsetRange(start, end);\n        }\n        return undefined;\n    }\n    intersects(other) {\n        const start = Math.max(this.start, other.start);\n        const end = Math.min(this.endExclusive, other.endExclusive);\n        return start < end;\n    }\n    isBefore(other) {\n        return this.endExclusive <= other.start;\n    }\n    isAfter(other) {\n        return this.start >= other.endExclusive;\n    }\n    slice(arr) {\n        return arr.slice(this.start, this.endExclusive);\n    }\n    substring(str) {\n        return str.substring(this.start, this.endExclusive);\n    }\n    /**\n     * Returns the given value if it is contained in this instance, otherwise the closest value that is contained.\n     * The range must not be empty.\n     */\n    clip(value) {\n        if (this.isEmpty) {\n            throw new BugIndicatingError(`Invalid clipping range: ${this.toString()}`);\n        }\n        return Math.max(this.start, Math.min(this.endExclusive - 1, value));\n    }\n    /**\n     * Returns `r := value + k * length` such that `r` is contained in this range.\n     * The range must not be empty.\n     *\n     * E.g. `[5, 10).clipCyclic(10) === 5`, `[5, 10).clipCyclic(11) === 6` and `[5, 10).clipCyclic(4) === 9`.\n     */\n    clipCyclic(value) {\n        if (this.isEmpty) {\n            throw new BugIndicatingError(`Invalid clipping range: ${this.toString()}`);\n        }\n        if (value < this.start) {\n            return this.endExclusive - ((this.start - value) % this.length);\n        }\n        if (value >= this.endExclusive) {\n            return this.start + ((value - this.start) % this.length);\n        }\n        return value;\n    }\n    forEach(f) {\n        for (let i = this.start; i < this.endExclusive; i++) {\n            f(i);\n        }\n    }\n}\nexport class OffsetRangeSet {\n    constructor() {\n        this._sortedRanges = [];\n    }\n    addRange(range) {\n        let i = 0;\n        while (i < this._sortedRanges.length && this._sortedRanges[i].endExclusive < range.start) {\n            i++;\n        }\n        let j = i;\n        while (j < this._sortedRanges.length && this._sortedRanges[j].start <= range.endExclusive) {\n            j++;\n        }\n        if (i === j) {\n            this._sortedRanges.splice(i, 0, range);\n        }\n        else {\n            const start = Math.min(range.start, this._sortedRanges[i].start);\n            const end = Math.max(range.endExclusive, this._sortedRanges[j - 1].endExclusive);\n            this._sortedRanges.splice(i, j - i, new OffsetRange(start, end));\n        }\n    }\n    toString() {\n        return this._sortedRanges.map(r => r.toString()).join(', ');\n    }\n    /**\n     * Returns of there is a value that is contained in this instance and the given range.\n     */\n    intersectsStrict(other) {\n        // TODO use binary search\n        let i = 0;\n        while (i < this._sortedRanges.length && this._sortedRanges[i].endExclusive <= other.start) {\n            i++;\n        }\n        return i < this._sortedRanges.length && this._sortedRanges[i].start < other.endExclusive;\n    }\n    intersectWithRange(other) {\n        // TODO use binary search + slice\n        const result = new OffsetRangeSet();\n        for (const range of this._sortedRanges) {\n            const intersection = range.intersect(other);\n            if (intersection) {\n                result.addRange(intersection);\n            }\n        }\n        return result;\n    }\n    intersectWithRangeLength(other) {\n        return this.intersectWithRange(other).length;\n    }\n    get length() {\n        return this._sortedRanges.reduce((prev, cur) => prev + cur.length, 0);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/core/position.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * A position in the editor.\n */\nexport class Position {\n    constructor(lineNumber, column) {\n        this.lineNumber = lineNumber;\n        this.column = column;\n    }\n    /**\n     * Create a new position from this position.\n     *\n     * @param newLineNumber new line number\n     * @param newColumn new column\n     */\n    with(newLineNumber = this.lineNumber, newColumn = this.column) {\n        if (newLineNumber === this.lineNumber && newColumn === this.column) {\n            return this;\n        }\n        else {\n            return new Position(newLineNumber, newColumn);\n        }\n    }\n    /**\n     * Derive a new position from this position.\n     *\n     * @param deltaLineNumber line number delta\n     * @param deltaColumn column delta\n     */\n    delta(deltaLineNumber = 0, deltaColumn = 0) {\n        return this.with(this.lineNumber + deltaLineNumber, this.column + deltaColumn);\n    }\n    /**\n     * Test if this position equals other position\n     */\n    equals(other) {\n        return Position.equals(this, other);\n    }\n    /**\n     * Test if position `a` equals position `b`\n     */\n    static equals(a, b) {\n        if (!a && !b) {\n            return true;\n        }\n        return (!!a &&\n            !!b &&\n            a.lineNumber === b.lineNumber &&\n            a.column === b.column);\n    }\n    /**\n     * Test if this position is before other position.\n     * If the two positions are equal, the result will be false.\n     */\n    isBefore(other) {\n        return Position.isBefore(this, other);\n    }\n    /**\n     * Test if position `a` is before position `b`.\n     * If the two positions are equal, the result will be false.\n     */\n    static isBefore(a, b) {\n        if (a.lineNumber < b.lineNumber) {\n            return true;\n        }\n        if (b.lineNumber < a.lineNumber) {\n            return false;\n        }\n        return a.column < b.column;\n    }\n    /**\n     * Test if this position is before other position.\n     * If the two positions are equal, the result will be true.\n     */\n    isBeforeOrEqual(other) {\n        return Position.isBeforeOrEqual(this, other);\n    }\n    /**\n     * Test if position `a` is before position `b`.\n     * If the two positions are equal, the result will be true.\n     */\n    static isBeforeOrEqual(a, b) {\n        if (a.lineNumber < b.lineNumber) {\n            return true;\n        }\n        if (b.lineNumber < a.lineNumber) {\n            return false;\n        }\n        return a.column <= b.column;\n    }\n    /**\n     * A function that compares positions, useful for sorting\n     */\n    static compare(a, b) {\n        const aLineNumber = a.lineNumber | 0;\n        const bLineNumber = b.lineNumber | 0;\n        if (aLineNumber === bLineNumber) {\n            const aColumn = a.column | 0;\n            const bColumn = b.column | 0;\n            return aColumn - bColumn;\n        }\n        return aLineNumber - bLineNumber;\n    }\n    /**\n     * Clone this position.\n     */\n    clone() {\n        return new Position(this.lineNumber, this.column);\n    }\n    /**\n     * Convert to a human-readable representation.\n     */\n    toString() {\n        return '(' + this.lineNumber + ',' + this.column + ')';\n    }\n    // ---\n    /**\n     * Create a `Position` from an `IPosition`.\n     */\n    static lift(pos) {\n        return new Position(pos.lineNumber, pos.column);\n    }\n    /**\n     * Test if `obj` is an `IPosition`.\n     */\n    static isIPosition(obj) {\n        return (obj\n            && (typeof obj.lineNumber === 'number')\n            && (typeof obj.column === 'number'));\n    }\n    toJSON() {\n        return {\n            lineNumber: this.lineNumber,\n            column: this.column\n        };\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/core/positionToOffset.js",
    "content": "import { OffsetRange } from './offsetRange.js';\nimport { TextLength } from './textLength.js';\nexport class PositionOffsetTransformer {\n    constructor(text) {\n        this.text = text;\n        this.lineStartOffsetByLineIdx = [];\n        this.lineStartOffsetByLineIdx.push(0);\n        for (let i = 0; i < text.length; i++) {\n            if (text.charAt(i) === '\\n') {\n                this.lineStartOffsetByLineIdx.push(i + 1);\n            }\n        }\n    }\n    getOffset(position) {\n        return this.lineStartOffsetByLineIdx[position.lineNumber - 1] + position.column - 1;\n    }\n    getOffsetRange(range) {\n        return new OffsetRange(this.getOffset(range.getStartPosition()), this.getOffset(range.getEndPosition()));\n    }\n    get textLength() {\n        const lineIdx = this.lineStartOffsetByLineIdx.length - 1;\n        return new TextLength(lineIdx, this.text.length - this.lineStartOffsetByLineIdx[lineIdx]);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/core/range.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Position } from './position.js';\n/**\n * A range in the editor. (startLineNumber,startColumn) is <= (endLineNumber,endColumn)\n */\nexport class Range {\n    constructor(startLineNumber, startColumn, endLineNumber, endColumn) {\n        if ((startLineNumber > endLineNumber) || (startLineNumber === endLineNumber && startColumn > endColumn)) {\n            this.startLineNumber = endLineNumber;\n            this.startColumn = endColumn;\n            this.endLineNumber = startLineNumber;\n            this.endColumn = startColumn;\n        }\n        else {\n            this.startLineNumber = startLineNumber;\n            this.startColumn = startColumn;\n            this.endLineNumber = endLineNumber;\n            this.endColumn = endColumn;\n        }\n    }\n    /**\n     * Test if this range is empty.\n     */\n    isEmpty() {\n        return Range.isEmpty(this);\n    }\n    /**\n     * Test if `range` is empty.\n     */\n    static isEmpty(range) {\n        return (range.startLineNumber === range.endLineNumber && range.startColumn === range.endColumn);\n    }\n    /**\n     * Test if position is in this range. If the position is at the edges, will return true.\n     */\n    containsPosition(position) {\n        return Range.containsPosition(this, position);\n    }\n    /**\n     * Test if `position` is in `range`. If the position is at the edges, will return true.\n     */\n    static containsPosition(range, position) {\n        if (position.lineNumber < range.startLineNumber || position.lineNumber > range.endLineNumber) {\n            return false;\n        }\n        if (position.lineNumber === range.startLineNumber && position.column < range.startColumn) {\n            return false;\n        }\n        if (position.lineNumber === range.endLineNumber && position.column > range.endColumn) {\n            return false;\n        }\n        return true;\n    }\n    /**\n     * Test if `position` is in `range`. If the position is at the edges, will return false.\n     * @internal\n     */\n    static strictContainsPosition(range, position) {\n        if (position.lineNumber < range.startLineNumber || position.lineNumber > range.endLineNumber) {\n            return false;\n        }\n        if (position.lineNumber === range.startLineNumber && position.column <= range.startColumn) {\n            return false;\n        }\n        if (position.lineNumber === range.endLineNumber && position.column >= range.endColumn) {\n            return false;\n        }\n        return true;\n    }\n    /**\n     * Test if range is in this range. If the range is equal to this range, will return true.\n     */\n    containsRange(range) {\n        return Range.containsRange(this, range);\n    }\n    /**\n     * Test if `otherRange` is in `range`. If the ranges are equal, will return true.\n     */\n    static containsRange(range, otherRange) {\n        if (otherRange.startLineNumber < range.startLineNumber || otherRange.endLineNumber < range.startLineNumber) {\n            return false;\n        }\n        if (otherRange.startLineNumber > range.endLineNumber || otherRange.endLineNumber > range.endLineNumber) {\n            return false;\n        }\n        if (otherRange.startLineNumber === range.startLineNumber && otherRange.startColumn < range.startColumn) {\n            return false;\n        }\n        if (otherRange.endLineNumber === range.endLineNumber && otherRange.endColumn > range.endColumn) {\n            return false;\n        }\n        return true;\n    }\n    /**\n     * Test if `range` is strictly in this range. `range` must start after and end before this range for the result to be true.\n     */\n    strictContainsRange(range) {\n        return Range.strictContainsRange(this, range);\n    }\n    /**\n     * Test if `otherRange` is strictly in `range` (must start after, and end before). If the ranges are equal, will return false.\n     */\n    static strictContainsRange(range, otherRange) {\n        if (otherRange.startLineNumber < range.startLineNumber || otherRange.endLineNumber < range.startLineNumber) {\n            return false;\n        }\n        if (otherRange.startLineNumber > range.endLineNumber || otherRange.endLineNumber > range.endLineNumber) {\n            return false;\n        }\n        if (otherRange.startLineNumber === range.startLineNumber && otherRange.startColumn <= range.startColumn) {\n            return false;\n        }\n        if (otherRange.endLineNumber === range.endLineNumber && otherRange.endColumn >= range.endColumn) {\n            return false;\n        }\n        return true;\n    }\n    /**\n     * A reunion of the two ranges.\n     * The smallest position will be used as the start point, and the largest one as the end point.\n     */\n    plusRange(range) {\n        return Range.plusRange(this, range);\n    }\n    /**\n     * A reunion of the two ranges.\n     * The smallest position will be used as the start point, and the largest one as the end point.\n     */\n    static plusRange(a, b) {\n        let startLineNumber;\n        let startColumn;\n        let endLineNumber;\n        let endColumn;\n        if (b.startLineNumber < a.startLineNumber) {\n            startLineNumber = b.startLineNumber;\n            startColumn = b.startColumn;\n        }\n        else if (b.startLineNumber === a.startLineNumber) {\n            startLineNumber = b.startLineNumber;\n            startColumn = Math.min(b.startColumn, a.startColumn);\n        }\n        else {\n            startLineNumber = a.startLineNumber;\n            startColumn = a.startColumn;\n        }\n        if (b.endLineNumber > a.endLineNumber) {\n            endLineNumber = b.endLineNumber;\n            endColumn = b.endColumn;\n        }\n        else if (b.endLineNumber === a.endLineNumber) {\n            endLineNumber = b.endLineNumber;\n            endColumn = Math.max(b.endColumn, a.endColumn);\n        }\n        else {\n            endLineNumber = a.endLineNumber;\n            endColumn = a.endColumn;\n        }\n        return new Range(startLineNumber, startColumn, endLineNumber, endColumn);\n    }\n    /**\n     * A intersection of the two ranges.\n     */\n    intersectRanges(range) {\n        return Range.intersectRanges(this, range);\n    }\n    /**\n     * A intersection of the two ranges.\n     */\n    static intersectRanges(a, b) {\n        let resultStartLineNumber = a.startLineNumber;\n        let resultStartColumn = a.startColumn;\n        let resultEndLineNumber = a.endLineNumber;\n        let resultEndColumn = a.endColumn;\n        const otherStartLineNumber = b.startLineNumber;\n        const otherStartColumn = b.startColumn;\n        const otherEndLineNumber = b.endLineNumber;\n        const otherEndColumn = b.endColumn;\n        if (resultStartLineNumber < otherStartLineNumber) {\n            resultStartLineNumber = otherStartLineNumber;\n            resultStartColumn = otherStartColumn;\n        }\n        else if (resultStartLineNumber === otherStartLineNumber) {\n            resultStartColumn = Math.max(resultStartColumn, otherStartColumn);\n        }\n        if (resultEndLineNumber > otherEndLineNumber) {\n            resultEndLineNumber = otherEndLineNumber;\n            resultEndColumn = otherEndColumn;\n        }\n        else if (resultEndLineNumber === otherEndLineNumber) {\n            resultEndColumn = Math.min(resultEndColumn, otherEndColumn);\n        }\n        // Check if selection is now empty\n        if (resultStartLineNumber > resultEndLineNumber) {\n            return null;\n        }\n        if (resultStartLineNumber === resultEndLineNumber && resultStartColumn > resultEndColumn) {\n            return null;\n        }\n        return new Range(resultStartLineNumber, resultStartColumn, resultEndLineNumber, resultEndColumn);\n    }\n    /**\n     * Test if this range equals other.\n     */\n    equalsRange(other) {\n        return Range.equalsRange(this, other);\n    }\n    /**\n     * Test if range `a` equals `b`.\n     */\n    static equalsRange(a, b) {\n        if (!a && !b) {\n            return true;\n        }\n        return (!!a &&\n            !!b &&\n            a.startLineNumber === b.startLineNumber &&\n            a.startColumn === b.startColumn &&\n            a.endLineNumber === b.endLineNumber &&\n            a.endColumn === b.endColumn);\n    }\n    /**\n     * Return the end position (which will be after or equal to the start position)\n     */\n    getEndPosition() {\n        return Range.getEndPosition(this);\n    }\n    /**\n     * Return the end position (which will be after or equal to the start position)\n     */\n    static getEndPosition(range) {\n        return new Position(range.endLineNumber, range.endColumn);\n    }\n    /**\n     * Return the start position (which will be before or equal to the end position)\n     */\n    getStartPosition() {\n        return Range.getStartPosition(this);\n    }\n    /**\n     * Return the start position (which will be before or equal to the end position)\n     */\n    static getStartPosition(range) {\n        return new Position(range.startLineNumber, range.startColumn);\n    }\n    /**\n     * Transform to a user presentable string representation.\n     */\n    toString() {\n        return '[' + this.startLineNumber + ',' + this.startColumn + ' -> ' + this.endLineNumber + ',' + this.endColumn + ']';\n    }\n    /**\n     * Create a new range using this range's start position, and using endLineNumber and endColumn as the end position.\n     */\n    setEndPosition(endLineNumber, endColumn) {\n        return new Range(this.startLineNumber, this.startColumn, endLineNumber, endColumn);\n    }\n    /**\n     * Create a new range using this range's end position, and using startLineNumber and startColumn as the start position.\n     */\n    setStartPosition(startLineNumber, startColumn) {\n        return new Range(startLineNumber, startColumn, this.endLineNumber, this.endColumn);\n    }\n    /**\n     * Create a new empty range using this range's start position.\n     */\n    collapseToStart() {\n        return Range.collapseToStart(this);\n    }\n    /**\n     * Create a new empty range using this range's start position.\n     */\n    static collapseToStart(range) {\n        return new Range(range.startLineNumber, range.startColumn, range.startLineNumber, range.startColumn);\n    }\n    /**\n     * Create a new empty range using this range's end position.\n     */\n    collapseToEnd() {\n        return Range.collapseToEnd(this);\n    }\n    /**\n     * Create a new empty range using this range's end position.\n     */\n    static collapseToEnd(range) {\n        return new Range(range.endLineNumber, range.endColumn, range.endLineNumber, range.endColumn);\n    }\n    /**\n     * Moves the range by the given amount of lines.\n     */\n    delta(lineCount) {\n        return new Range(this.startLineNumber + lineCount, this.startColumn, this.endLineNumber + lineCount, this.endColumn);\n    }\n    // ---\n    static fromPositions(start, end = start) {\n        return new Range(start.lineNumber, start.column, end.lineNumber, end.column);\n    }\n    static lift(range) {\n        if (!range) {\n            return null;\n        }\n        return new Range(range.startLineNumber, range.startColumn, range.endLineNumber, range.endColumn);\n    }\n    /**\n     * Test if `obj` is an `IRange`.\n     */\n    static isIRange(obj) {\n        return (obj\n            && (typeof obj.startLineNumber === 'number')\n            && (typeof obj.startColumn === 'number')\n            && (typeof obj.endLineNumber === 'number')\n            && (typeof obj.endColumn === 'number'));\n    }\n    /**\n     * Test if the two ranges are touching in any way.\n     */\n    static areIntersectingOrTouching(a, b) {\n        // Check if `a` is before `b`\n        if (a.endLineNumber < b.startLineNumber || (a.endLineNumber === b.startLineNumber && a.endColumn < b.startColumn)) {\n            return false;\n        }\n        // Check if `b` is before `a`\n        if (b.endLineNumber < a.startLineNumber || (b.endLineNumber === a.startLineNumber && b.endColumn < a.startColumn)) {\n            return false;\n        }\n        // These ranges must intersect\n        return true;\n    }\n    /**\n     * Test if the two ranges are intersecting. If the ranges are touching it returns true.\n     */\n    static areIntersecting(a, b) {\n        // Check if `a` is before `b`\n        if (a.endLineNumber < b.startLineNumber || (a.endLineNumber === b.startLineNumber && a.endColumn <= b.startColumn)) {\n            return false;\n        }\n        // Check if `b` is before `a`\n        if (b.endLineNumber < a.startLineNumber || (b.endLineNumber === a.startLineNumber && b.endColumn <= a.startColumn)) {\n            return false;\n        }\n        // These ranges must intersect\n        return true;\n    }\n    /**\n     * A function that compares ranges, useful for sorting ranges\n     * It will first compare ranges on the startPosition and then on the endPosition\n     */\n    static compareRangesUsingStarts(a, b) {\n        if (a && b) {\n            const aStartLineNumber = a.startLineNumber | 0;\n            const bStartLineNumber = b.startLineNumber | 0;\n            if (aStartLineNumber === bStartLineNumber) {\n                const aStartColumn = a.startColumn | 0;\n                const bStartColumn = b.startColumn | 0;\n                if (aStartColumn === bStartColumn) {\n                    const aEndLineNumber = a.endLineNumber | 0;\n                    const bEndLineNumber = b.endLineNumber | 0;\n                    if (aEndLineNumber === bEndLineNumber) {\n                        const aEndColumn = a.endColumn | 0;\n                        const bEndColumn = b.endColumn | 0;\n                        return aEndColumn - bEndColumn;\n                    }\n                    return aEndLineNumber - bEndLineNumber;\n                }\n                return aStartColumn - bStartColumn;\n            }\n            return aStartLineNumber - bStartLineNumber;\n        }\n        const aExists = (a ? 1 : 0);\n        const bExists = (b ? 1 : 0);\n        return aExists - bExists;\n    }\n    /**\n     * A function that compares ranges, useful for sorting ranges\n     * It will first compare ranges on the endPosition and then on the startPosition\n     */\n    static compareRangesUsingEnds(a, b) {\n        if (a.endLineNumber === b.endLineNumber) {\n            if (a.endColumn === b.endColumn) {\n                if (a.startLineNumber === b.startLineNumber) {\n                    return a.startColumn - b.startColumn;\n                }\n                return a.startLineNumber - b.startLineNumber;\n            }\n            return a.endColumn - b.endColumn;\n        }\n        return a.endLineNumber - b.endLineNumber;\n    }\n    /**\n     * Test if the range spans multiple lines.\n     */\n    static spansMultipleLines(range) {\n        return range.endLineNumber > range.startLineNumber;\n    }\n    toJSON() {\n        return this;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/core/rgba.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * A very VM friendly rgba datastructure.\n * Please don't touch unless you take a look at the IR.\n */\nexport class RGBA8 {\n    constructor(r, g, b, a) {\n        this._rgba8Brand = undefined;\n        this.r = RGBA8._clamp(r);\n        this.g = RGBA8._clamp(g);\n        this.b = RGBA8._clamp(b);\n        this.a = RGBA8._clamp(a);\n    }\n    equals(other) {\n        return (this.r === other.r\n            && this.g === other.g\n            && this.b === other.b\n            && this.a === other.a);\n    }\n    static _clamp(c) {\n        if (c < 0) {\n            return 0;\n        }\n        if (c > 255) {\n            return 255;\n        }\n        return c | 0;\n    }\n}\nRGBA8.Empty = new RGBA8(0, 0, 0, 0);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/core/selection.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Position } from './position.js';\nimport { Range } from './range.js';\n/**\n * A selection in the editor.\n * The selection is a range that has an orientation.\n */\nexport class Selection extends Range {\n    constructor(selectionStartLineNumber, selectionStartColumn, positionLineNumber, positionColumn) {\n        super(selectionStartLineNumber, selectionStartColumn, positionLineNumber, positionColumn);\n        this.selectionStartLineNumber = selectionStartLineNumber;\n        this.selectionStartColumn = selectionStartColumn;\n        this.positionLineNumber = positionLineNumber;\n        this.positionColumn = positionColumn;\n    }\n    /**\n     * Transform to a human-readable representation.\n     */\n    toString() {\n        return '[' + this.selectionStartLineNumber + ',' + this.selectionStartColumn + ' -> ' + this.positionLineNumber + ',' + this.positionColumn + ']';\n    }\n    /**\n     * Test if equals other selection.\n     */\n    equalsSelection(other) {\n        return (Selection.selectionsEqual(this, other));\n    }\n    /**\n     * Test if the two selections are equal.\n     */\n    static selectionsEqual(a, b) {\n        return (a.selectionStartLineNumber === b.selectionStartLineNumber &&\n            a.selectionStartColumn === b.selectionStartColumn &&\n            a.positionLineNumber === b.positionLineNumber &&\n            a.positionColumn === b.positionColumn);\n    }\n    /**\n     * Get directions (LTR or RTL).\n     */\n    getDirection() {\n        if (this.selectionStartLineNumber === this.startLineNumber && this.selectionStartColumn === this.startColumn) {\n            return 0 /* SelectionDirection.LTR */;\n        }\n        return 1 /* SelectionDirection.RTL */;\n    }\n    /**\n     * Create a new selection with a different `positionLineNumber` and `positionColumn`.\n     */\n    setEndPosition(endLineNumber, endColumn) {\n        if (this.getDirection() === 0 /* SelectionDirection.LTR */) {\n            return new Selection(this.startLineNumber, this.startColumn, endLineNumber, endColumn);\n        }\n        return new Selection(endLineNumber, endColumn, this.startLineNumber, this.startColumn);\n    }\n    /**\n     * Get the position at `positionLineNumber` and `positionColumn`.\n     */\n    getPosition() {\n        return new Position(this.positionLineNumber, this.positionColumn);\n    }\n    /**\n     * Get the position at the start of the selection.\n    */\n    getSelectionStart() {\n        return new Position(this.selectionStartLineNumber, this.selectionStartColumn);\n    }\n    /**\n     * Create a new selection with a different `selectionStartLineNumber` and `selectionStartColumn`.\n     */\n    setStartPosition(startLineNumber, startColumn) {\n        if (this.getDirection() === 0 /* SelectionDirection.LTR */) {\n            return new Selection(startLineNumber, startColumn, this.endLineNumber, this.endColumn);\n        }\n        return new Selection(this.endLineNumber, this.endColumn, startLineNumber, startColumn);\n    }\n    // ----\n    /**\n     * Create a `Selection` from one or two positions\n     */\n    static fromPositions(start, end = start) {\n        return new Selection(start.lineNumber, start.column, end.lineNumber, end.column);\n    }\n    /**\n     * Creates a `Selection` from a range, given a direction.\n     */\n    static fromRange(range, direction) {\n        if (direction === 0 /* SelectionDirection.LTR */) {\n            return new Selection(range.startLineNumber, range.startColumn, range.endLineNumber, range.endColumn);\n        }\n        else {\n            return new Selection(range.endLineNumber, range.endColumn, range.startLineNumber, range.startColumn);\n        }\n    }\n    /**\n     * Create a `Selection` from an `ISelection`.\n     */\n    static liftSelection(sel) {\n        return new Selection(sel.selectionStartLineNumber, sel.selectionStartColumn, sel.positionLineNumber, sel.positionColumn);\n    }\n    /**\n     * `a` equals `b`.\n     */\n    static selectionsArrEqual(a, b) {\n        if (a && !b || !a && b) {\n            return false;\n        }\n        if (!a && !b) {\n            return true;\n        }\n        if (a.length !== b.length) {\n            return false;\n        }\n        for (let i = 0, len = a.length; i < len; i++) {\n            if (!this.selectionsEqual(a[i], b[i])) {\n                return false;\n            }\n        }\n        return true;\n    }\n    /**\n     * Test if `obj` is an `ISelection`.\n     */\n    static isISelection(obj) {\n        return (obj\n            && (typeof obj.selectionStartLineNumber === 'number')\n            && (typeof obj.selectionStartColumn === 'number')\n            && (typeof obj.positionLineNumber === 'number')\n            && (typeof obj.positionColumn === 'number'));\n    }\n    /**\n     * Create with a direction.\n     */\n    static createWithDirection(startLineNumber, startColumn, endLineNumber, endColumn, direction) {\n        if (direction === 0 /* SelectionDirection.LTR */) {\n            return new Selection(startLineNumber, startColumn, endLineNumber, endColumn);\n        }\n        return new Selection(endLineNumber, endColumn, startLineNumber, startColumn);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/core/stringBuilder.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../base/common/strings.js';\nimport * as platform from '../../../base/common/platform.js';\nimport * as buffer from '../../../base/common/buffer.js';\nlet _utf16LE_TextDecoder;\nfunction getUTF16LE_TextDecoder() {\n    if (!_utf16LE_TextDecoder) {\n        _utf16LE_TextDecoder = new TextDecoder('UTF-16LE');\n    }\n    return _utf16LE_TextDecoder;\n}\nlet _utf16BE_TextDecoder;\nfunction getUTF16BE_TextDecoder() {\n    if (!_utf16BE_TextDecoder) {\n        _utf16BE_TextDecoder = new TextDecoder('UTF-16BE');\n    }\n    return _utf16BE_TextDecoder;\n}\nlet _platformTextDecoder;\nexport function getPlatformTextDecoder() {\n    if (!_platformTextDecoder) {\n        _platformTextDecoder = platform.isLittleEndian() ? getUTF16LE_TextDecoder() : getUTF16BE_TextDecoder();\n    }\n    return _platformTextDecoder;\n}\nexport function decodeUTF16LE(source, offset, len) {\n    const view = new Uint16Array(source.buffer, offset, len);\n    if (len > 0 && (view[0] === 0xFEFF || view[0] === 0xFFFE)) {\n        // UTF16 sometimes starts with a BOM https://de.wikipedia.org/wiki/Byte_Order_Mark\n        // It looks like TextDecoder.decode will eat up a leading BOM (0xFEFF or 0xFFFE)\n        // We don't want that behavior because we know the string is UTF16LE and the BOM should be maintained\n        // So we use the manual decoder\n        return compatDecodeUTF16LE(source, offset, len);\n    }\n    return getUTF16LE_TextDecoder().decode(view);\n}\nfunction compatDecodeUTF16LE(source, offset, len) {\n    const result = [];\n    let resultLen = 0;\n    for (let i = 0; i < len; i++) {\n        const charCode = buffer.readUInt16LE(source, offset);\n        offset += 2;\n        result[resultLen++] = String.fromCharCode(charCode);\n    }\n    return result.join('');\n}\nexport class StringBuilder {\n    constructor(capacity) {\n        this._capacity = capacity | 0;\n        this._buffer = new Uint16Array(this._capacity);\n        this._completedStrings = null;\n        this._bufferLength = 0;\n    }\n    reset() {\n        this._completedStrings = null;\n        this._bufferLength = 0;\n    }\n    build() {\n        if (this._completedStrings !== null) {\n            this._flushBuffer();\n            return this._completedStrings.join('');\n        }\n        return this._buildBuffer();\n    }\n    _buildBuffer() {\n        if (this._bufferLength === 0) {\n            return '';\n        }\n        const view = new Uint16Array(this._buffer.buffer, 0, this._bufferLength);\n        return getPlatformTextDecoder().decode(view);\n    }\n    _flushBuffer() {\n        const bufferString = this._buildBuffer();\n        this._bufferLength = 0;\n        if (this._completedStrings === null) {\n            this._completedStrings = [bufferString];\n        }\n        else {\n            this._completedStrings[this._completedStrings.length] = bufferString;\n        }\n    }\n    /**\n     * Append a char code (<2^16)\n     */\n    appendCharCode(charCode) {\n        const remainingSpace = this._capacity - this._bufferLength;\n        if (remainingSpace <= 1) {\n            if (remainingSpace === 0 || strings.isHighSurrogate(charCode)) {\n                this._flushBuffer();\n            }\n        }\n        this._buffer[this._bufferLength++] = charCode;\n    }\n    /**\n     * Append an ASCII char code (<2^8)\n     */\n    appendASCIICharCode(charCode) {\n        if (this._bufferLength === this._capacity) {\n            // buffer is full\n            this._flushBuffer();\n        }\n        this._buffer[this._bufferLength++] = charCode;\n    }\n    appendString(str) {\n        const strLen = str.length;\n        if (this._bufferLength + strLen >= this._capacity) {\n            // This string does not fit in the remaining buffer space\n            this._flushBuffer();\n            this._completedStrings[this._completedStrings.length] = str;\n            return;\n        }\n        for (let i = 0; i < strLen; i++) {\n            this._buffer[this._bufferLength++] = str.charCodeAt(i);\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/core/textChange.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as buffer from '../../../base/common/buffer.js';\nimport { decodeUTF16LE } from './stringBuilder.js';\nfunction escapeNewLine(str) {\n    return (str\n        .replace(/\\n/g, '\\\\n')\n        .replace(/\\r/g, '\\\\r'));\n}\nexport class TextChange {\n    get oldLength() {\n        return this.oldText.length;\n    }\n    get oldEnd() {\n        return this.oldPosition + this.oldText.length;\n    }\n    get newLength() {\n        return this.newText.length;\n    }\n    get newEnd() {\n        return this.newPosition + this.newText.length;\n    }\n    constructor(oldPosition, oldText, newPosition, newText) {\n        this.oldPosition = oldPosition;\n        this.oldText = oldText;\n        this.newPosition = newPosition;\n        this.newText = newText;\n    }\n    toString() {\n        if (this.oldText.length === 0) {\n            return `(insert@${this.oldPosition} \"${escapeNewLine(this.newText)}\")`;\n        }\n        if (this.newText.length === 0) {\n            return `(delete@${this.oldPosition} \"${escapeNewLine(this.oldText)}\")`;\n        }\n        return `(replace@${this.oldPosition} \"${escapeNewLine(this.oldText)}\" with \"${escapeNewLine(this.newText)}\")`;\n    }\n    static _writeStringSize(str) {\n        return (4 + 2 * str.length);\n    }\n    static _writeString(b, str, offset) {\n        const len = str.length;\n        buffer.writeUInt32BE(b, len, offset);\n        offset += 4;\n        for (let i = 0; i < len; i++) {\n            buffer.writeUInt16LE(b, str.charCodeAt(i), offset);\n            offset += 2;\n        }\n        return offset;\n    }\n    static _readString(b, offset) {\n        const len = buffer.readUInt32BE(b, offset);\n        offset += 4;\n        return decodeUTF16LE(b, offset, len);\n    }\n    writeSize() {\n        return (+4 // oldPosition\n            + 4 // newPosition\n            + TextChange._writeStringSize(this.oldText)\n            + TextChange._writeStringSize(this.newText));\n    }\n    write(b, offset) {\n        buffer.writeUInt32BE(b, this.oldPosition, offset);\n        offset += 4;\n        buffer.writeUInt32BE(b, this.newPosition, offset);\n        offset += 4;\n        offset = TextChange._writeString(b, this.oldText, offset);\n        offset = TextChange._writeString(b, this.newText, offset);\n        return offset;\n    }\n    static read(b, offset, dest) {\n        const oldPosition = buffer.readUInt32BE(b, offset);\n        offset += 4;\n        const newPosition = buffer.readUInt32BE(b, offset);\n        offset += 4;\n        const oldText = TextChange._readString(b, offset);\n        offset += TextChange._writeStringSize(oldText);\n        const newText = TextChange._readString(b, offset);\n        offset += TextChange._writeStringSize(newText);\n        dest.push(new TextChange(oldPosition, oldText, newPosition, newText));\n        return offset;\n    }\n}\nexport function compressConsecutiveTextChanges(prevEdits, currEdits) {\n    if (prevEdits === null || prevEdits.length === 0) {\n        return currEdits;\n    }\n    const compressor = new TextChangeCompressor(prevEdits, currEdits);\n    return compressor.compress();\n}\nclass TextChangeCompressor {\n    constructor(prevEdits, currEdits) {\n        this._prevEdits = prevEdits;\n        this._currEdits = currEdits;\n        this._result = [];\n        this._resultLen = 0;\n        this._prevLen = this._prevEdits.length;\n        this._prevDeltaOffset = 0;\n        this._currLen = this._currEdits.length;\n        this._currDeltaOffset = 0;\n    }\n    compress() {\n        let prevIndex = 0;\n        let currIndex = 0;\n        let prevEdit = this._getPrev(prevIndex);\n        let currEdit = this._getCurr(currIndex);\n        while (prevIndex < this._prevLen || currIndex < this._currLen) {\n            if (prevEdit === null) {\n                this._acceptCurr(currEdit);\n                currEdit = this._getCurr(++currIndex);\n                continue;\n            }\n            if (currEdit === null) {\n                this._acceptPrev(prevEdit);\n                prevEdit = this._getPrev(++prevIndex);\n                continue;\n            }\n            if (currEdit.oldEnd <= prevEdit.newPosition) {\n                this._acceptCurr(currEdit);\n                currEdit = this._getCurr(++currIndex);\n                continue;\n            }\n            if (prevEdit.newEnd <= currEdit.oldPosition) {\n                this._acceptPrev(prevEdit);\n                prevEdit = this._getPrev(++prevIndex);\n                continue;\n            }\n            if (currEdit.oldPosition < prevEdit.newPosition) {\n                const [e1, e2] = TextChangeCompressor._splitCurr(currEdit, prevEdit.newPosition - currEdit.oldPosition);\n                this._acceptCurr(e1);\n                currEdit = e2;\n                continue;\n            }\n            if (prevEdit.newPosition < currEdit.oldPosition) {\n                const [e1, e2] = TextChangeCompressor._splitPrev(prevEdit, currEdit.oldPosition - prevEdit.newPosition);\n                this._acceptPrev(e1);\n                prevEdit = e2;\n                continue;\n            }\n            // At this point, currEdit.oldPosition === prevEdit.newPosition\n            let mergePrev;\n            let mergeCurr;\n            if (currEdit.oldEnd === prevEdit.newEnd) {\n                mergePrev = prevEdit;\n                mergeCurr = currEdit;\n                prevEdit = this._getPrev(++prevIndex);\n                currEdit = this._getCurr(++currIndex);\n            }\n            else if (currEdit.oldEnd < prevEdit.newEnd) {\n                const [e1, e2] = TextChangeCompressor._splitPrev(prevEdit, currEdit.oldLength);\n                mergePrev = e1;\n                mergeCurr = currEdit;\n                prevEdit = e2;\n                currEdit = this._getCurr(++currIndex);\n            }\n            else {\n                const [e1, e2] = TextChangeCompressor._splitCurr(currEdit, prevEdit.newLength);\n                mergePrev = prevEdit;\n                mergeCurr = e1;\n                prevEdit = this._getPrev(++prevIndex);\n                currEdit = e2;\n            }\n            this._result[this._resultLen++] = new TextChange(mergePrev.oldPosition, mergePrev.oldText, mergeCurr.newPosition, mergeCurr.newText);\n            this._prevDeltaOffset += mergePrev.newLength - mergePrev.oldLength;\n            this._currDeltaOffset += mergeCurr.newLength - mergeCurr.oldLength;\n        }\n        const merged = TextChangeCompressor._merge(this._result);\n        const cleaned = TextChangeCompressor._removeNoOps(merged);\n        return cleaned;\n    }\n    _acceptCurr(currEdit) {\n        this._result[this._resultLen++] = TextChangeCompressor._rebaseCurr(this._prevDeltaOffset, currEdit);\n        this._currDeltaOffset += currEdit.newLength - currEdit.oldLength;\n    }\n    _getCurr(currIndex) {\n        return (currIndex < this._currLen ? this._currEdits[currIndex] : null);\n    }\n    _acceptPrev(prevEdit) {\n        this._result[this._resultLen++] = TextChangeCompressor._rebasePrev(this._currDeltaOffset, prevEdit);\n        this._prevDeltaOffset += prevEdit.newLength - prevEdit.oldLength;\n    }\n    _getPrev(prevIndex) {\n        return (prevIndex < this._prevLen ? this._prevEdits[prevIndex] : null);\n    }\n    static _rebaseCurr(prevDeltaOffset, currEdit) {\n        return new TextChange(currEdit.oldPosition - prevDeltaOffset, currEdit.oldText, currEdit.newPosition, currEdit.newText);\n    }\n    static _rebasePrev(currDeltaOffset, prevEdit) {\n        return new TextChange(prevEdit.oldPosition, prevEdit.oldText, prevEdit.newPosition + currDeltaOffset, prevEdit.newText);\n    }\n    static _splitPrev(edit, offset) {\n        const preText = edit.newText.substr(0, offset);\n        const postText = edit.newText.substr(offset);\n        return [\n            new TextChange(edit.oldPosition, edit.oldText, edit.newPosition, preText),\n            new TextChange(edit.oldEnd, '', edit.newPosition + offset, postText)\n        ];\n    }\n    static _splitCurr(edit, offset) {\n        const preText = edit.oldText.substr(0, offset);\n        const postText = edit.oldText.substr(offset);\n        return [\n            new TextChange(edit.oldPosition, preText, edit.newPosition, edit.newText),\n            new TextChange(edit.oldPosition + offset, postText, edit.newEnd, '')\n        ];\n    }\n    static _merge(edits) {\n        if (edits.length === 0) {\n            return edits;\n        }\n        const result = [];\n        let resultLen = 0;\n        let prev = edits[0];\n        for (let i = 1; i < edits.length; i++) {\n            const curr = edits[i];\n            if (prev.oldEnd === curr.oldPosition) {\n                // Merge into `prev`\n                prev = new TextChange(prev.oldPosition, prev.oldText + curr.oldText, prev.newPosition, prev.newText + curr.newText);\n            }\n            else {\n                result[resultLen++] = prev;\n                prev = curr;\n            }\n        }\n        result[resultLen++] = prev;\n        return result;\n    }\n    static _removeNoOps(edits) {\n        if (edits.length === 0) {\n            return edits;\n        }\n        const result = [];\n        let resultLen = 0;\n        for (let i = 0; i < edits.length; i++) {\n            const edit = edits[i];\n            if (edit.oldText === edit.newText) {\n                continue;\n            }\n            result[resultLen++] = edit;\n        }\n        return result;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/core/textEdit.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { assertFn, checkAdjacentItems } from '../../../base/common/assert.js';\nimport { BugIndicatingError } from '../../../base/common/errors.js';\nimport { Position } from './position.js';\nimport { PositionOffsetTransformer } from './positionToOffset.js';\nimport { Range } from './range.js';\nimport { TextLength } from './textLength.js';\nexport class TextEdit {\n    constructor(edits) {\n        this.edits = edits;\n        assertFn(() => checkAdjacentItems(edits, (a, b) => a.range.getEndPosition().isBeforeOrEqual(b.range.getStartPosition())));\n    }\n    apply(text) {\n        let result = '';\n        let lastEditEnd = new Position(1, 1);\n        for (const edit of this.edits) {\n            const editRange = edit.range;\n            const editStart = editRange.getStartPosition();\n            const editEnd = editRange.getEndPosition();\n            const r = rangeFromPositions(lastEditEnd, editStart);\n            if (!r.isEmpty()) {\n                result += text.getValueOfRange(r);\n            }\n            result += edit.text;\n            lastEditEnd = editEnd;\n        }\n        const r = rangeFromPositions(lastEditEnd, text.endPositionExclusive);\n        if (!r.isEmpty()) {\n            result += text.getValueOfRange(r);\n        }\n        return result;\n    }\n    applyToString(str) {\n        const strText = new StringText(str);\n        return this.apply(strText);\n    }\n    getNewRanges() {\n        const newRanges = [];\n        let previousEditEndLineNumber = 0;\n        let lineOffset = 0;\n        let columnOffset = 0;\n        for (const edit of this.edits) {\n            const textLength = TextLength.ofText(edit.text);\n            const newRangeStart = Position.lift({\n                lineNumber: edit.range.startLineNumber + lineOffset,\n                column: edit.range.startColumn + (edit.range.startLineNumber === previousEditEndLineNumber ? columnOffset : 0)\n            });\n            const newRange = textLength.createRange(newRangeStart);\n            newRanges.push(newRange);\n            lineOffset = newRange.endLineNumber - edit.range.endLineNumber;\n            columnOffset = newRange.endColumn - edit.range.endColumn;\n            previousEditEndLineNumber = edit.range.endLineNumber;\n        }\n        return newRanges;\n    }\n}\nexport class SingleTextEdit {\n    constructor(range, text) {\n        this.range = range;\n        this.text = text;\n    }\n}\nfunction rangeFromPositions(start, end) {\n    if (start.lineNumber === end.lineNumber && start.column === Number.MAX_SAFE_INTEGER) {\n        return Range.fromPositions(end, end);\n    }\n    else if (!start.isBeforeOrEqual(end)) {\n        throw new BugIndicatingError('start must be before end');\n    }\n    return new Range(start.lineNumber, start.column, end.lineNumber, end.column);\n}\nexport class AbstractText {\n    get endPositionExclusive() {\n        return this.length.addToPosition(new Position(1, 1));\n    }\n}\nexport class StringText extends AbstractText {\n    constructor(value) {\n        super();\n        this.value = value;\n        this._t = new PositionOffsetTransformer(this.value);\n    }\n    getValueOfRange(range) {\n        return this._t.getOffsetRange(range).substring(this.value);\n    }\n    get length() {\n        return this._t.textLength;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/core/textLength.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Position } from './position.js';\nimport { Range } from './range.js';\n/**\n * Represents a non-negative length of text in terms of line and column count.\n*/\nexport class TextLength {\n    static betweenPositions(position1, position2) {\n        if (position1.lineNumber === position2.lineNumber) {\n            return new TextLength(0, position2.column - position1.column);\n        }\n        else {\n            return new TextLength(position2.lineNumber - position1.lineNumber, position2.column - 1);\n        }\n    }\n    static ofRange(range) {\n        return TextLength.betweenPositions(range.getStartPosition(), range.getEndPosition());\n    }\n    static ofText(text) {\n        let line = 0;\n        let column = 0;\n        for (const c of text) {\n            if (c === '\\n') {\n                line++;\n                column = 0;\n            }\n            else {\n                column++;\n            }\n        }\n        return new TextLength(line, column);\n    }\n    constructor(lineCount, columnCount) {\n        this.lineCount = lineCount;\n        this.columnCount = columnCount;\n    }\n    isGreaterThanOrEqualTo(other) {\n        if (this.lineCount !== other.lineCount) {\n            return this.lineCount > other.lineCount;\n        }\n        return this.columnCount >= other.columnCount;\n    }\n    createRange(startPosition) {\n        if (this.lineCount === 0) {\n            return new Range(startPosition.lineNumber, startPosition.column, startPosition.lineNumber, startPosition.column + this.columnCount);\n        }\n        else {\n            return new Range(startPosition.lineNumber, startPosition.column, startPosition.lineNumber + this.lineCount, this.columnCount + 1);\n        }\n    }\n    addToPosition(position) {\n        if (this.lineCount === 0) {\n            return new Position(position.lineNumber, position.column + this.columnCount);\n        }\n        else {\n            return new Position(position.lineNumber + this.lineCount, this.columnCount + 1);\n        }\n    }\n    toString() {\n        return `${this.lineCount},${this.columnCount}`;\n    }\n}\nTextLength.zero = new TextLength(0, 0);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/core/textModelDefaults.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport const EDITOR_MODEL_DEFAULTS = {\n    tabSize: 4,\n    indentSize: 4,\n    insertSpaces: true,\n    detectIndentation: true,\n    trimAutoWhitespace: true,\n    largeFileOptimizations: true,\n    bracketPairColorizationOptions: {\n        enabled: true,\n        independentColorPoolPerBracketType: false,\n    },\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/core/wordCharacterClassifier.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { LRUCache } from '../../../base/common/map.js';\nimport { CharacterClassifier } from './characterClassifier.js';\nexport class WordCharacterClassifier extends CharacterClassifier {\n    constructor(wordSeparators, intlSegmenterLocales) {\n        super(0 /* WordCharacterClass.Regular */);\n        this._segmenter = null;\n        this._cachedLine = null;\n        this._cachedSegments = [];\n        this.intlSegmenterLocales = intlSegmenterLocales;\n        if (this.intlSegmenterLocales.length > 0) {\n            this._segmenter = new Intl.Segmenter(this.intlSegmenterLocales, { granularity: 'word' });\n        }\n        else {\n            this._segmenter = null;\n        }\n        for (let i = 0, len = wordSeparators.length; i < len; i++) {\n            this.set(wordSeparators.charCodeAt(i), 2 /* WordCharacterClass.WordSeparator */);\n        }\n        this.set(32 /* CharCode.Space */, 1 /* WordCharacterClass.Whitespace */);\n        this.set(9 /* CharCode.Tab */, 1 /* WordCharacterClass.Whitespace */);\n    }\n    findPrevIntlWordBeforeOrAtOffset(line, offset) {\n        let candidate = null;\n        for (const segment of this._getIntlSegmenterWordsOnLine(line)) {\n            if (segment.index > offset) {\n                break;\n            }\n            candidate = segment;\n        }\n        return candidate;\n    }\n    findNextIntlWordAtOrAfterOffset(lineContent, offset) {\n        for (const segment of this._getIntlSegmenterWordsOnLine(lineContent)) {\n            if (segment.index < offset) {\n                continue;\n            }\n            return segment;\n        }\n        return null;\n    }\n    _getIntlSegmenterWordsOnLine(line) {\n        if (!this._segmenter) {\n            return [];\n        }\n        // Check if the line has changed from the previous call\n        if (this._cachedLine === line) {\n            return this._cachedSegments;\n        }\n        // Update the cache with the new line\n        this._cachedLine = line;\n        this._cachedSegments = this._filterWordSegments(this._segmenter.segment(line));\n        return this._cachedSegments;\n    }\n    _filterWordSegments(segments) {\n        const result = [];\n        for (const segment of segments) {\n            if (this._isWordLike(segment)) {\n                result.push(segment);\n            }\n        }\n        return result;\n    }\n    _isWordLike(segment) {\n        if (segment.isWordLike) {\n            return true;\n        }\n        return false;\n    }\n}\nconst wordClassifierCache = new LRUCache(10);\nexport function getMapForWordSeparators(wordSeparators, intlSegmenterLocales) {\n    const key = `${wordSeparators}/${intlSegmenterLocales.join(',')}`;\n    let result = wordClassifierCache.get(key);\n    if (!result) {\n        result = new WordCharacterClassifier(wordSeparators, intlSegmenterLocales);\n        wordClassifierCache.set(key, result);\n    }\n    return result;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/core/wordHelper.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Iterable } from '../../../base/common/iterator.js';\nimport { LinkedList } from '../../../base/common/linkedList.js';\nexport const USUAL_WORD_SEPARATORS = '`~!@#$%^&*()-=+[{]}\\\\|;:\\'\",.<>/?';\n/**\n * Create a word definition regular expression based on default word separators.\n * Optionally provide allowed separators that should be included in words.\n *\n * The default would look like this:\n * /(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g\n */\nfunction createWordRegExp(allowInWords = '') {\n    let source = '(-?\\\\d*\\\\.\\\\d\\\\w*)|([^';\n    for (const sep of USUAL_WORD_SEPARATORS) {\n        if (allowInWords.indexOf(sep) >= 0) {\n            continue;\n        }\n        source += '\\\\' + sep;\n    }\n    source += '\\\\s]+)';\n    return new RegExp(source, 'g');\n}\n// catches numbers (including floating numbers) in the first group, and alphanum in the second\nexport const DEFAULT_WORD_REGEXP = createWordRegExp();\nexport function ensureValidWordDefinition(wordDefinition) {\n    let result = DEFAULT_WORD_REGEXP;\n    if (wordDefinition && (wordDefinition instanceof RegExp)) {\n        if (!wordDefinition.global) {\n            let flags = 'g';\n            if (wordDefinition.ignoreCase) {\n                flags += 'i';\n            }\n            if (wordDefinition.multiline) {\n                flags += 'm';\n            }\n            if (wordDefinition.unicode) {\n                flags += 'u';\n            }\n            result = new RegExp(wordDefinition.source, flags);\n        }\n        else {\n            result = wordDefinition;\n        }\n    }\n    result.lastIndex = 0;\n    return result;\n}\nconst _defaultConfig = new LinkedList();\n_defaultConfig.unshift({\n    maxLen: 1000,\n    windowSize: 15,\n    timeBudget: 150\n});\nexport function getWordAtText(column, wordDefinition, text, textOffset, config) {\n    // Ensure the regex has the 'g' flag, otherwise this will loop forever\n    wordDefinition = ensureValidWordDefinition(wordDefinition);\n    if (!config) {\n        config = Iterable.first(_defaultConfig);\n    }\n    if (text.length > config.maxLen) {\n        // don't throw strings that long at the regexp\n        // but use a sub-string in which a word must occur\n        let start = column - config.maxLen / 2;\n        if (start < 0) {\n            start = 0;\n        }\n        else {\n            textOffset += start;\n        }\n        text = text.substring(start, column + config.maxLen / 2);\n        return getWordAtText(column, wordDefinition, text, textOffset, config);\n    }\n    const t1 = Date.now();\n    const pos = column - 1 - textOffset;\n    let prevRegexIndex = -1;\n    let match = null;\n    for (let i = 1;; i++) {\n        // check time budget\n        if (Date.now() - t1 >= config.timeBudget) {\n            break;\n        }\n        // reset the index at which the regexp should start matching, also know where it\n        // should stop so that subsequent search don't repeat previous searches\n        const regexIndex = pos - config.windowSize * i;\n        wordDefinition.lastIndex = Math.max(0, regexIndex);\n        const thisMatch = _findRegexMatchEnclosingPosition(wordDefinition, text, pos, prevRegexIndex);\n        if (!thisMatch && match) {\n            // stop: we have something\n            break;\n        }\n        match = thisMatch;\n        // stop: searched at start\n        if (regexIndex <= 0) {\n            break;\n        }\n        prevRegexIndex = regexIndex;\n    }\n    if (match) {\n        const result = {\n            word: match[0],\n            startColumn: textOffset + 1 + match.index,\n            endColumn: textOffset + 1 + match.index + match[0].length\n        };\n        wordDefinition.lastIndex = 0;\n        return result;\n    }\n    return null;\n}\nfunction _findRegexMatchEnclosingPosition(wordDefinition, text, pos, stopPos) {\n    let match;\n    while (match = wordDefinition.exec(text)) {\n        const matchIndex = match.index || 0;\n        if (matchIndex <= pos && wordDefinition.lastIndex >= pos) {\n            return match;\n        }\n        else if (stopPos > 0 && matchIndex > stopPos) {\n            return null;\n        }\n    }\n    return null;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/cursor/cursor.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { onUnexpectedError } from '../../../base/common/errors.js';\nimport * as strings from '../../../base/common/strings.js';\nimport { CursorCollection } from './cursorCollection.js';\nimport { CursorState, EditOperationResult } from '../cursorCommon.js';\nimport { CursorContext } from './cursorContext.js';\nimport { DeleteOperations } from './cursorDeleteOperations.js';\nimport { CompositionOutcome, TypeOperations, TypeWithAutoClosingCommand } from './cursorTypeOperations.js';\nimport { Range } from '../core/range.js';\nimport { Selection } from '../core/selection.js';\nimport { ModelInjectedTextChangedEvent } from '../textModelEvents.js';\nimport { ViewCursorStateChangedEvent, ViewRevealRangeRequestEvent } from '../viewEvents.js';\nimport { dispose, Disposable } from '../../../base/common/lifecycle.js';\nimport { CursorStateChangedEvent } from '../viewModelEventDispatcher.js';\nexport class CursorsController extends Disposable {\n    constructor(model, viewModel, coordinatesConverter, cursorConfig) {\n        super();\n        this._model = model;\n        this._knownModelVersionId = this._model.getVersionId();\n        this._viewModel = viewModel;\n        this._coordinatesConverter = coordinatesConverter;\n        this.context = new CursorContext(this._model, this._viewModel, this._coordinatesConverter, cursorConfig);\n        this._cursors = new CursorCollection(this.context);\n        this._hasFocus = false;\n        this._isHandling = false;\n        this._compositionState = null;\n        this._columnSelectData = null;\n        this._autoClosedActions = [];\n        this._prevEditOperationType = 0 /* EditOperationType.Other */;\n    }\n    dispose() {\n        this._cursors.dispose();\n        this._autoClosedActions = dispose(this._autoClosedActions);\n        super.dispose();\n    }\n    updateConfiguration(cursorConfig) {\n        this.context = new CursorContext(this._model, this._viewModel, this._coordinatesConverter, cursorConfig);\n        this._cursors.updateContext(this.context);\n    }\n    onLineMappingChanged(eventsCollector) {\n        if (this._knownModelVersionId !== this._model.getVersionId()) {\n            // There are model change events that I didn't yet receive.\n            //\n            // This can happen when editing the model, and the view model receives the change events first,\n            // and the view model emits line mapping changed events, all before the cursor gets a chance to\n            // recover from markers.\n            //\n            // The model change listener above will be called soon and we'll ensure a valid cursor state there.\n            return;\n        }\n        // Ensure valid state\n        this.setStates(eventsCollector, 'viewModel', 0 /* CursorChangeReason.NotSet */, this.getCursorStates());\n    }\n    setHasFocus(hasFocus) {\n        this._hasFocus = hasFocus;\n    }\n    _validateAutoClosedActions() {\n        if (this._autoClosedActions.length > 0) {\n            const selections = this._cursors.getSelections();\n            for (let i = 0; i < this._autoClosedActions.length; i++) {\n                const autoClosedAction = this._autoClosedActions[i];\n                if (!autoClosedAction.isValid(selections)) {\n                    autoClosedAction.dispose();\n                    this._autoClosedActions.splice(i, 1);\n                    i--;\n                }\n            }\n        }\n    }\n    // ------ some getters/setters\n    getPrimaryCursorState() {\n        return this._cursors.getPrimaryCursor();\n    }\n    getLastAddedCursorIndex() {\n        return this._cursors.getLastAddedCursorIndex();\n    }\n    getCursorStates() {\n        return this._cursors.getAll();\n    }\n    setStates(eventsCollector, source, reason, states) {\n        let reachedMaxCursorCount = false;\n        const multiCursorLimit = this.context.cursorConfig.multiCursorLimit;\n        if (states !== null && states.length > multiCursorLimit) {\n            states = states.slice(0, multiCursorLimit);\n            reachedMaxCursorCount = true;\n        }\n        const oldState = CursorModelState.from(this._model, this);\n        this._cursors.setStates(states);\n        this._cursors.normalize();\n        this._columnSelectData = null;\n        this._validateAutoClosedActions();\n        return this._emitStateChangedIfNecessary(eventsCollector, source, reason, oldState, reachedMaxCursorCount);\n    }\n    setCursorColumnSelectData(columnSelectData) {\n        this._columnSelectData = columnSelectData;\n    }\n    revealAll(eventsCollector, source, minimalReveal, verticalType, revealHorizontal, scrollType) {\n        const viewPositions = this._cursors.getViewPositions();\n        let revealViewRange = null;\n        let revealViewSelections = null;\n        if (viewPositions.length > 1) {\n            revealViewSelections = this._cursors.getViewSelections();\n        }\n        else {\n            revealViewRange = Range.fromPositions(viewPositions[0], viewPositions[0]);\n        }\n        eventsCollector.emitViewEvent(new ViewRevealRangeRequestEvent(source, minimalReveal, revealViewRange, revealViewSelections, verticalType, revealHorizontal, scrollType));\n    }\n    revealPrimary(eventsCollector, source, minimalReveal, verticalType, revealHorizontal, scrollType) {\n        const primaryCursor = this._cursors.getPrimaryCursor();\n        const revealViewSelections = [primaryCursor.viewState.selection];\n        eventsCollector.emitViewEvent(new ViewRevealRangeRequestEvent(source, minimalReveal, null, revealViewSelections, verticalType, revealHorizontal, scrollType));\n    }\n    saveState() {\n        const result = [];\n        const selections = this._cursors.getSelections();\n        for (let i = 0, len = selections.length; i < len; i++) {\n            const selection = selections[i];\n            result.push({\n                inSelectionMode: !selection.isEmpty(),\n                selectionStart: {\n                    lineNumber: selection.selectionStartLineNumber,\n                    column: selection.selectionStartColumn,\n                },\n                position: {\n                    lineNumber: selection.positionLineNumber,\n                    column: selection.positionColumn,\n                }\n            });\n        }\n        return result;\n    }\n    restoreState(eventsCollector, states) {\n        const desiredSelections = [];\n        for (let i = 0, len = states.length; i < len; i++) {\n            const state = states[i];\n            let positionLineNumber = 1;\n            let positionColumn = 1;\n            // Avoid missing properties on the literal\n            if (state.position && state.position.lineNumber) {\n                positionLineNumber = state.position.lineNumber;\n            }\n            if (state.position && state.position.column) {\n                positionColumn = state.position.column;\n            }\n            let selectionStartLineNumber = positionLineNumber;\n            let selectionStartColumn = positionColumn;\n            // Avoid missing properties on the literal\n            if (state.selectionStart && state.selectionStart.lineNumber) {\n                selectionStartLineNumber = state.selectionStart.lineNumber;\n            }\n            if (state.selectionStart && state.selectionStart.column) {\n                selectionStartColumn = state.selectionStart.column;\n            }\n            desiredSelections.push({\n                selectionStartLineNumber: selectionStartLineNumber,\n                selectionStartColumn: selectionStartColumn,\n                positionLineNumber: positionLineNumber,\n                positionColumn: positionColumn\n            });\n        }\n        this.setStates(eventsCollector, 'restoreState', 0 /* CursorChangeReason.NotSet */, CursorState.fromModelSelections(desiredSelections));\n        this.revealAll(eventsCollector, 'restoreState', false, 0 /* VerticalRevealType.Simple */, true, 1 /* editorCommon.ScrollType.Immediate */);\n    }\n    onModelContentChanged(eventsCollector, event) {\n        if (event instanceof ModelInjectedTextChangedEvent) {\n            // If injected texts change, the view positions of all cursors need to be updated.\n            if (this._isHandling) {\n                // The view positions will be updated when handling finishes\n                return;\n            }\n            // setStates might remove markers, which could trigger a decoration change.\n            // If there are injected text decorations for that line, `onModelContentChanged` is emitted again\n            // and an endless recursion happens.\n            // _isHandling prevents that.\n            this._isHandling = true;\n            try {\n                this.setStates(eventsCollector, 'modelChange', 0 /* CursorChangeReason.NotSet */, this.getCursorStates());\n            }\n            finally {\n                this._isHandling = false;\n            }\n        }\n        else {\n            const e = event.rawContentChangedEvent;\n            this._knownModelVersionId = e.versionId;\n            if (this._isHandling) {\n                return;\n            }\n            const hadFlushEvent = e.containsEvent(1 /* RawContentChangedType.Flush */);\n            this._prevEditOperationType = 0 /* EditOperationType.Other */;\n            if (hadFlushEvent) {\n                // a model.setValue() was called\n                this._cursors.dispose();\n                this._cursors = new CursorCollection(this.context);\n                this._validateAutoClosedActions();\n                this._emitStateChangedIfNecessary(eventsCollector, 'model', 1 /* CursorChangeReason.ContentFlush */, null, false);\n            }\n            else {\n                if (this._hasFocus && e.resultingSelection && e.resultingSelection.length > 0) {\n                    const cursorState = CursorState.fromModelSelections(e.resultingSelection);\n                    if (this.setStates(eventsCollector, 'modelChange', e.isUndoing ? 5 /* CursorChangeReason.Undo */ : e.isRedoing ? 6 /* CursorChangeReason.Redo */ : 2 /* CursorChangeReason.RecoverFromMarkers */, cursorState)) {\n                        this.revealAll(eventsCollector, 'modelChange', false, 0 /* VerticalRevealType.Simple */, true, 0 /* editorCommon.ScrollType.Smooth */);\n                    }\n                }\n                else {\n                    const selectionsFromMarkers = this._cursors.readSelectionFromMarkers();\n                    this.setStates(eventsCollector, 'modelChange', 2 /* CursorChangeReason.RecoverFromMarkers */, CursorState.fromModelSelections(selectionsFromMarkers));\n                }\n            }\n        }\n    }\n    getSelection() {\n        return this._cursors.getPrimaryCursor().modelState.selection;\n    }\n    getTopMostViewPosition() {\n        return this._cursors.getTopMostViewPosition();\n    }\n    getBottomMostViewPosition() {\n        return this._cursors.getBottomMostViewPosition();\n    }\n    getCursorColumnSelectData() {\n        if (this._columnSelectData) {\n            return this._columnSelectData;\n        }\n        const primaryCursor = this._cursors.getPrimaryCursor();\n        const viewSelectionStart = primaryCursor.viewState.selectionStart.getStartPosition();\n        const viewPosition = primaryCursor.viewState.position;\n        return {\n            isReal: false,\n            fromViewLineNumber: viewSelectionStart.lineNumber,\n            fromViewVisualColumn: this.context.cursorConfig.visibleColumnFromColumn(this._viewModel, viewSelectionStart),\n            toViewLineNumber: viewPosition.lineNumber,\n            toViewVisualColumn: this.context.cursorConfig.visibleColumnFromColumn(this._viewModel, viewPosition),\n        };\n    }\n    getSelections() {\n        return this._cursors.getSelections();\n    }\n    setSelections(eventsCollector, source, selections, reason) {\n        this.setStates(eventsCollector, source, reason, CursorState.fromModelSelections(selections));\n    }\n    getPrevEditOperationType() {\n        return this._prevEditOperationType;\n    }\n    setPrevEditOperationType(type) {\n        this._prevEditOperationType = type;\n    }\n    // ------ auxiliary handling logic\n    _pushAutoClosedAction(autoClosedCharactersRanges, autoClosedEnclosingRanges) {\n        const autoClosedCharactersDeltaDecorations = [];\n        const autoClosedEnclosingDeltaDecorations = [];\n        for (let i = 0, len = autoClosedCharactersRanges.length; i < len; i++) {\n            autoClosedCharactersDeltaDecorations.push({\n                range: autoClosedCharactersRanges[i],\n                options: {\n                    description: 'auto-closed-character',\n                    inlineClassName: 'auto-closed-character',\n                    stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */\n                }\n            });\n            autoClosedEnclosingDeltaDecorations.push({\n                range: autoClosedEnclosingRanges[i],\n                options: {\n                    description: 'auto-closed-enclosing',\n                    stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */\n                }\n            });\n        }\n        const autoClosedCharactersDecorations = this._model.deltaDecorations([], autoClosedCharactersDeltaDecorations);\n        const autoClosedEnclosingDecorations = this._model.deltaDecorations([], autoClosedEnclosingDeltaDecorations);\n        this._autoClosedActions.push(new AutoClosedAction(this._model, autoClosedCharactersDecorations, autoClosedEnclosingDecorations));\n    }\n    _executeEditOperation(opResult) {\n        if (!opResult) {\n            // Nothing to execute\n            return;\n        }\n        if (opResult.shouldPushStackElementBefore) {\n            this._model.pushStackElement();\n        }\n        const result = CommandExecutor.executeCommands(this._model, this._cursors.getSelections(), opResult.commands);\n        if (result) {\n            // The commands were applied correctly\n            this._interpretCommandResult(result);\n            // Check for auto-closing closed characters\n            const autoClosedCharactersRanges = [];\n            const autoClosedEnclosingRanges = [];\n            for (let i = 0; i < opResult.commands.length; i++) {\n                const command = opResult.commands[i];\n                if (command instanceof TypeWithAutoClosingCommand && command.enclosingRange && command.closeCharacterRange) {\n                    autoClosedCharactersRanges.push(command.closeCharacterRange);\n                    autoClosedEnclosingRanges.push(command.enclosingRange);\n                }\n            }\n            if (autoClosedCharactersRanges.length > 0) {\n                this._pushAutoClosedAction(autoClosedCharactersRanges, autoClosedEnclosingRanges);\n            }\n            this._prevEditOperationType = opResult.type;\n        }\n        if (opResult.shouldPushStackElementAfter) {\n            this._model.pushStackElement();\n        }\n    }\n    _interpretCommandResult(cursorState) {\n        if (!cursorState || cursorState.length === 0) {\n            cursorState = this._cursors.readSelectionFromMarkers();\n        }\n        this._columnSelectData = null;\n        this._cursors.setSelections(cursorState);\n        this._cursors.normalize();\n    }\n    // -----------------------------------------------------------------------------------------------------------\n    // ----- emitting events\n    _emitStateChangedIfNecessary(eventsCollector, source, reason, oldState, reachedMaxCursorCount) {\n        const newState = CursorModelState.from(this._model, this);\n        if (newState.equals(oldState)) {\n            return false;\n        }\n        const selections = this._cursors.getSelections();\n        const viewSelections = this._cursors.getViewSelections();\n        // Let the view get the event first.\n        eventsCollector.emitViewEvent(new ViewCursorStateChangedEvent(viewSelections, selections, reason));\n        // Only after the view has been notified, let the rest of the world know...\n        if (!oldState\n            || oldState.cursorState.length !== newState.cursorState.length\n            || newState.cursorState.some((newCursorState, i) => !newCursorState.modelState.equals(oldState.cursorState[i].modelState))) {\n            const oldSelections = oldState ? oldState.cursorState.map(s => s.modelState.selection) : null;\n            const oldModelVersionId = oldState ? oldState.modelVersionId : 0;\n            eventsCollector.emitOutgoingEvent(new CursorStateChangedEvent(oldSelections, selections, oldModelVersionId, newState.modelVersionId, source || 'keyboard', reason, reachedMaxCursorCount));\n        }\n        return true;\n    }\n    // -----------------------------------------------------------------------------------------------------------\n    // ----- handlers beyond this point\n    _findAutoClosingPairs(edits) {\n        if (!edits.length) {\n            return null;\n        }\n        const indices = [];\n        for (let i = 0, len = edits.length; i < len; i++) {\n            const edit = edits[i];\n            if (!edit.text || edit.text.indexOf('\\n') >= 0) {\n                return null;\n            }\n            const m = edit.text.match(/([)\\]}>'\"`])([^)\\]}>'\"`]*)$/);\n            if (!m) {\n                return null;\n            }\n            const closeChar = m[1];\n            const autoClosingPairsCandidates = this.context.cursorConfig.autoClosingPairs.autoClosingPairsCloseSingleChar.get(closeChar);\n            if (!autoClosingPairsCandidates || autoClosingPairsCandidates.length !== 1) {\n                return null;\n            }\n            const openChar = autoClosingPairsCandidates[0].open;\n            const closeCharIndex = edit.text.length - m[2].length - 1;\n            const openCharIndex = edit.text.lastIndexOf(openChar, closeCharIndex - 1);\n            if (openCharIndex === -1) {\n                return null;\n            }\n            indices.push([openCharIndex, closeCharIndex]);\n        }\n        return indices;\n    }\n    executeEdits(eventsCollector, source, edits, cursorStateComputer) {\n        let autoClosingIndices = null;\n        if (source === 'snippet') {\n            autoClosingIndices = this._findAutoClosingPairs(edits);\n        }\n        if (autoClosingIndices) {\n            edits[0]._isTracked = true;\n        }\n        const autoClosedCharactersRanges = [];\n        const autoClosedEnclosingRanges = [];\n        const selections = this._model.pushEditOperations(this.getSelections(), edits, (undoEdits) => {\n            if (autoClosingIndices) {\n                for (let i = 0, len = autoClosingIndices.length; i < len; i++) {\n                    const [openCharInnerIndex, closeCharInnerIndex] = autoClosingIndices[i];\n                    const undoEdit = undoEdits[i];\n                    const lineNumber = undoEdit.range.startLineNumber;\n                    const openCharIndex = undoEdit.range.startColumn - 1 + openCharInnerIndex;\n                    const closeCharIndex = undoEdit.range.startColumn - 1 + closeCharInnerIndex;\n                    autoClosedCharactersRanges.push(new Range(lineNumber, closeCharIndex + 1, lineNumber, closeCharIndex + 2));\n                    autoClosedEnclosingRanges.push(new Range(lineNumber, openCharIndex + 1, lineNumber, closeCharIndex + 2));\n                }\n            }\n            const selections = cursorStateComputer(undoEdits);\n            if (selections) {\n                // Don't recover the selection from markers because\n                // we know what it should be.\n                this._isHandling = true;\n            }\n            return selections;\n        });\n        if (selections) {\n            this._isHandling = false;\n            this.setSelections(eventsCollector, source, selections, 0 /* CursorChangeReason.NotSet */);\n        }\n        if (autoClosedCharactersRanges.length > 0) {\n            this._pushAutoClosedAction(autoClosedCharactersRanges, autoClosedEnclosingRanges);\n        }\n    }\n    _executeEdit(callback, eventsCollector, source, cursorChangeReason = 0 /* CursorChangeReason.NotSet */) {\n        if (this.context.cursorConfig.readOnly) {\n            // we cannot edit when read only...\n            return;\n        }\n        const oldState = CursorModelState.from(this._model, this);\n        this._cursors.stopTrackingSelections();\n        this._isHandling = true;\n        try {\n            this._cursors.ensureValidState();\n            callback();\n        }\n        catch (err) {\n            onUnexpectedError(err);\n        }\n        this._isHandling = false;\n        this._cursors.startTrackingSelections();\n        this._validateAutoClosedActions();\n        if (this._emitStateChangedIfNecessary(eventsCollector, source, cursorChangeReason, oldState, false)) {\n            this.revealAll(eventsCollector, source, false, 0 /* VerticalRevealType.Simple */, true, 0 /* editorCommon.ScrollType.Smooth */);\n        }\n    }\n    getAutoClosedCharacters() {\n        return AutoClosedAction.getAllAutoClosedCharacters(this._autoClosedActions);\n    }\n    startComposition(eventsCollector) {\n        this._compositionState = new CompositionState(this._model, this.getSelections());\n    }\n    endComposition(eventsCollector, source) {\n        const compositionOutcome = this._compositionState ? this._compositionState.deduceOutcome(this._model, this.getSelections()) : null;\n        this._compositionState = null;\n        this._executeEdit(() => {\n            if (source === 'keyboard') {\n                // composition finishes, let's check if we need to auto complete if necessary.\n                this._executeEditOperation(TypeOperations.compositionEndWithInterceptors(this._prevEditOperationType, this.context.cursorConfig, this._model, compositionOutcome, this.getSelections(), this.getAutoClosedCharacters()));\n            }\n        }, eventsCollector, source);\n    }\n    type(eventsCollector, text, source) {\n        this._executeEdit(() => {\n            if (source === 'keyboard') {\n                // If this event is coming straight from the keyboard, look for electric characters and enter\n                const len = text.length;\n                let offset = 0;\n                while (offset < len) {\n                    const charLength = strings.nextCharLength(text, offset);\n                    const chr = text.substr(offset, charLength);\n                    // Here we must interpret each typed character individually\n                    this._executeEditOperation(TypeOperations.typeWithInterceptors(!!this._compositionState, this._prevEditOperationType, this.context.cursorConfig, this._model, this.getSelections(), this.getAutoClosedCharacters(), chr));\n                    offset += charLength;\n                }\n            }\n            else {\n                this._executeEditOperation(TypeOperations.typeWithoutInterceptors(this._prevEditOperationType, this.context.cursorConfig, this._model, this.getSelections(), text));\n            }\n        }, eventsCollector, source);\n    }\n    compositionType(eventsCollector, text, replacePrevCharCnt, replaceNextCharCnt, positionDelta, source) {\n        if (text.length === 0 && replacePrevCharCnt === 0 && replaceNextCharCnt === 0) {\n            // this edit is a no-op\n            if (positionDelta !== 0) {\n                // but it still wants to move the cursor\n                const newSelections = this.getSelections().map(selection => {\n                    const position = selection.getPosition();\n                    return new Selection(position.lineNumber, position.column + positionDelta, position.lineNumber, position.column + positionDelta);\n                });\n                this.setSelections(eventsCollector, source, newSelections, 0 /* CursorChangeReason.NotSet */);\n            }\n            return;\n        }\n        this._executeEdit(() => {\n            this._executeEditOperation(TypeOperations.compositionType(this._prevEditOperationType, this.context.cursorConfig, this._model, this.getSelections(), text, replacePrevCharCnt, replaceNextCharCnt, positionDelta));\n        }, eventsCollector, source);\n    }\n    paste(eventsCollector, text, pasteOnNewLine, multicursorText, source) {\n        this._executeEdit(() => {\n            this._executeEditOperation(TypeOperations.paste(this.context.cursorConfig, this._model, this.getSelections(), text, pasteOnNewLine, multicursorText || []));\n        }, eventsCollector, source, 4 /* CursorChangeReason.Paste */);\n    }\n    cut(eventsCollector, source) {\n        this._executeEdit(() => {\n            this._executeEditOperation(DeleteOperations.cut(this.context.cursorConfig, this._model, this.getSelections()));\n        }, eventsCollector, source);\n    }\n    executeCommand(eventsCollector, command, source) {\n        this._executeEdit(() => {\n            this._cursors.killSecondaryCursors();\n            this._executeEditOperation(new EditOperationResult(0 /* EditOperationType.Other */, [command], {\n                shouldPushStackElementBefore: false,\n                shouldPushStackElementAfter: false\n            }));\n        }, eventsCollector, source);\n    }\n    executeCommands(eventsCollector, commands, source) {\n        this._executeEdit(() => {\n            this._executeEditOperation(new EditOperationResult(0 /* EditOperationType.Other */, commands, {\n                shouldPushStackElementBefore: false,\n                shouldPushStackElementAfter: false\n            }));\n        }, eventsCollector, source);\n    }\n}\n/**\n * A snapshot of the cursor and the model state\n */\nclass CursorModelState {\n    static from(model, cursor) {\n        return new CursorModelState(model.getVersionId(), cursor.getCursorStates());\n    }\n    constructor(modelVersionId, cursorState) {\n        this.modelVersionId = modelVersionId;\n        this.cursorState = cursorState;\n    }\n    equals(other) {\n        if (!other) {\n            return false;\n        }\n        if (this.modelVersionId !== other.modelVersionId) {\n            return false;\n        }\n        if (this.cursorState.length !== other.cursorState.length) {\n            return false;\n        }\n        for (let i = 0, len = this.cursorState.length; i < len; i++) {\n            if (!this.cursorState[i].equals(other.cursorState[i])) {\n                return false;\n            }\n        }\n        return true;\n    }\n}\nclass AutoClosedAction {\n    static getAllAutoClosedCharacters(autoClosedActions) {\n        let autoClosedCharacters = [];\n        for (const autoClosedAction of autoClosedActions) {\n            autoClosedCharacters = autoClosedCharacters.concat(autoClosedAction.getAutoClosedCharactersRanges());\n        }\n        return autoClosedCharacters;\n    }\n    constructor(model, autoClosedCharactersDecorations, autoClosedEnclosingDecorations) {\n        this._model = model;\n        this._autoClosedCharactersDecorations = autoClosedCharactersDecorations;\n        this._autoClosedEnclosingDecorations = autoClosedEnclosingDecorations;\n    }\n    dispose() {\n        this._autoClosedCharactersDecorations = this._model.deltaDecorations(this._autoClosedCharactersDecorations, []);\n        this._autoClosedEnclosingDecorations = this._model.deltaDecorations(this._autoClosedEnclosingDecorations, []);\n    }\n    getAutoClosedCharactersRanges() {\n        const result = [];\n        for (let i = 0; i < this._autoClosedCharactersDecorations.length; i++) {\n            const decorationRange = this._model.getDecorationRange(this._autoClosedCharactersDecorations[i]);\n            if (decorationRange) {\n                result.push(decorationRange);\n            }\n        }\n        return result;\n    }\n    isValid(selections) {\n        const enclosingRanges = [];\n        for (let i = 0; i < this._autoClosedEnclosingDecorations.length; i++) {\n            const decorationRange = this._model.getDecorationRange(this._autoClosedEnclosingDecorations[i]);\n            if (decorationRange) {\n                enclosingRanges.push(decorationRange);\n                if (decorationRange.startLineNumber !== decorationRange.endLineNumber) {\n                    // Stop tracking if the range becomes multiline...\n                    return false;\n                }\n            }\n        }\n        enclosingRanges.sort(Range.compareRangesUsingStarts);\n        selections.sort(Range.compareRangesUsingStarts);\n        for (let i = 0; i < selections.length; i++) {\n            if (i >= enclosingRanges.length) {\n                return false;\n            }\n            if (!enclosingRanges[i].strictContainsRange(selections[i])) {\n                return false;\n            }\n        }\n        return true;\n    }\n}\nclass CommandExecutor {\n    static executeCommands(model, selectionsBefore, commands) {\n        const ctx = {\n            model: model,\n            selectionsBefore: selectionsBefore,\n            trackedRanges: [],\n            trackedRangesDirection: []\n        };\n        const result = this._innerExecuteCommands(ctx, commands);\n        for (let i = 0, len = ctx.trackedRanges.length; i < len; i++) {\n            ctx.model._setTrackedRange(ctx.trackedRanges[i], null, 0 /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */);\n        }\n        return result;\n    }\n    static _innerExecuteCommands(ctx, commands) {\n        if (this._arrayIsEmpty(commands)) {\n            return null;\n        }\n        const commandsData = this._getEditOperations(ctx, commands);\n        if (commandsData.operations.length === 0) {\n            return null;\n        }\n        const rawOperations = commandsData.operations;\n        const loserCursorsMap = this._getLoserCursorMap(rawOperations);\n        if (loserCursorsMap.hasOwnProperty('0')) {\n            // These commands are very messed up\n            console.warn('Ignoring commands');\n            return null;\n        }\n        // Remove operations belonging to losing cursors\n        const filteredOperations = [];\n        for (let i = 0, len = rawOperations.length; i < len; i++) {\n            if (!loserCursorsMap.hasOwnProperty(rawOperations[i].identifier.major.toString())) {\n                filteredOperations.push(rawOperations[i]);\n            }\n        }\n        // TODO@Alex: find a better way to do this.\n        // give the hint that edit operations are tracked to the model\n        if (commandsData.hadTrackedEditOperation && filteredOperations.length > 0) {\n            filteredOperations[0]._isTracked = true;\n        }\n        let selectionsAfter = ctx.model.pushEditOperations(ctx.selectionsBefore, filteredOperations, (inverseEditOperations) => {\n            const groupedInverseEditOperations = [];\n            for (let i = 0; i < ctx.selectionsBefore.length; i++) {\n                groupedInverseEditOperations[i] = [];\n            }\n            for (const op of inverseEditOperations) {\n                if (!op.identifier) {\n                    // perhaps auto whitespace trim edits\n                    continue;\n                }\n                groupedInverseEditOperations[op.identifier.major].push(op);\n            }\n            const minorBasedSorter = (a, b) => {\n                return a.identifier.minor - b.identifier.minor;\n            };\n            const cursorSelections = [];\n            for (let i = 0; i < ctx.selectionsBefore.length; i++) {\n                if (groupedInverseEditOperations[i].length > 0) {\n                    groupedInverseEditOperations[i].sort(minorBasedSorter);\n                    cursorSelections[i] = commands[i].computeCursorState(ctx.model, {\n                        getInverseEditOperations: () => {\n                            return groupedInverseEditOperations[i];\n                        },\n                        getTrackedSelection: (id) => {\n                            const idx = parseInt(id, 10);\n                            const range = ctx.model._getTrackedRange(ctx.trackedRanges[idx]);\n                            if (ctx.trackedRangesDirection[idx] === 0 /* SelectionDirection.LTR */) {\n                                return new Selection(range.startLineNumber, range.startColumn, range.endLineNumber, range.endColumn);\n                            }\n                            return new Selection(range.endLineNumber, range.endColumn, range.startLineNumber, range.startColumn);\n                        }\n                    });\n                }\n                else {\n                    cursorSelections[i] = ctx.selectionsBefore[i];\n                }\n            }\n            return cursorSelections;\n        });\n        if (!selectionsAfter) {\n            selectionsAfter = ctx.selectionsBefore;\n        }\n        // Extract losing cursors\n        const losingCursors = [];\n        for (const losingCursorIndex in loserCursorsMap) {\n            if (loserCursorsMap.hasOwnProperty(losingCursorIndex)) {\n                losingCursors.push(parseInt(losingCursorIndex, 10));\n            }\n        }\n        // Sort losing cursors descending\n        losingCursors.sort((a, b) => {\n            return b - a;\n        });\n        // Remove losing cursors\n        for (const losingCursor of losingCursors) {\n            selectionsAfter.splice(losingCursor, 1);\n        }\n        return selectionsAfter;\n    }\n    static _arrayIsEmpty(commands) {\n        for (let i = 0, len = commands.length; i < len; i++) {\n            if (commands[i]) {\n                return false;\n            }\n        }\n        return true;\n    }\n    static _getEditOperations(ctx, commands) {\n        let operations = [];\n        let hadTrackedEditOperation = false;\n        for (let i = 0, len = commands.length; i < len; i++) {\n            const command = commands[i];\n            if (command) {\n                const r = this._getEditOperationsFromCommand(ctx, i, command);\n                operations = operations.concat(r.operations);\n                hadTrackedEditOperation = hadTrackedEditOperation || r.hadTrackedEditOperation;\n            }\n        }\n        return {\n            operations: operations,\n            hadTrackedEditOperation: hadTrackedEditOperation\n        };\n    }\n    static _getEditOperationsFromCommand(ctx, majorIdentifier, command) {\n        // This method acts as a transaction, if the command fails\n        // everything it has done is ignored\n        const operations = [];\n        let operationMinor = 0;\n        const addEditOperation = (range, text, forceMoveMarkers = false) => {\n            if (Range.isEmpty(range) && text === '') {\n                // This command wants to add a no-op => no thank you\n                return;\n            }\n            operations.push({\n                identifier: {\n                    major: majorIdentifier,\n                    minor: operationMinor++\n                },\n                range: range,\n                text: text,\n                forceMoveMarkers: forceMoveMarkers,\n                isAutoWhitespaceEdit: command.insertsAutoWhitespace\n            });\n        };\n        let hadTrackedEditOperation = false;\n        const addTrackedEditOperation = (selection, text, forceMoveMarkers) => {\n            hadTrackedEditOperation = true;\n            addEditOperation(selection, text, forceMoveMarkers);\n        };\n        const trackSelection = (_selection, trackPreviousOnEmpty) => {\n            const selection = Selection.liftSelection(_selection);\n            let stickiness;\n            if (selection.isEmpty()) {\n                if (typeof trackPreviousOnEmpty === 'boolean') {\n                    if (trackPreviousOnEmpty) {\n                        stickiness = 2 /* TrackedRangeStickiness.GrowsOnlyWhenTypingBefore */;\n                    }\n                    else {\n                        stickiness = 3 /* TrackedRangeStickiness.GrowsOnlyWhenTypingAfter */;\n                    }\n                }\n                else {\n                    // Try to lock it with surrounding text\n                    const maxLineColumn = ctx.model.getLineMaxColumn(selection.startLineNumber);\n                    if (selection.startColumn === maxLineColumn) {\n                        stickiness = 2 /* TrackedRangeStickiness.GrowsOnlyWhenTypingBefore */;\n                    }\n                    else {\n                        stickiness = 3 /* TrackedRangeStickiness.GrowsOnlyWhenTypingAfter */;\n                    }\n                }\n            }\n            else {\n                stickiness = 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */;\n            }\n            const l = ctx.trackedRanges.length;\n            const id = ctx.model._setTrackedRange(null, selection, stickiness);\n            ctx.trackedRanges[l] = id;\n            ctx.trackedRangesDirection[l] = selection.getDirection();\n            return l.toString();\n        };\n        const editOperationBuilder = {\n            addEditOperation: addEditOperation,\n            addTrackedEditOperation: addTrackedEditOperation,\n            trackSelection: trackSelection\n        };\n        try {\n            command.getEditOperations(ctx.model, editOperationBuilder);\n        }\n        catch (e) {\n            // TODO@Alex use notification service if this should be user facing\n            // e.friendlyMessage = nls.localize('corrupt.commands', \"Unexpected exception while executing command.\");\n            onUnexpectedError(e);\n            return {\n                operations: [],\n                hadTrackedEditOperation: false\n            };\n        }\n        return {\n            operations: operations,\n            hadTrackedEditOperation: hadTrackedEditOperation\n        };\n    }\n    static _getLoserCursorMap(operations) {\n        // This is destructive on the array\n        operations = operations.slice(0);\n        // Sort operations with last one first\n        operations.sort((a, b) => {\n            // Note the minus!\n            return -(Range.compareRangesUsingEnds(a.range, b.range));\n        });\n        // Operations can not overlap!\n        const loserCursorsMap = {};\n        for (let i = 1; i < operations.length; i++) {\n            const previousOp = operations[i - 1];\n            const currentOp = operations[i];\n            if (Range.getStartPosition(previousOp.range).isBefore(Range.getEndPosition(currentOp.range))) {\n                let loserMajor;\n                if (previousOp.identifier.major > currentOp.identifier.major) {\n                    // previousOp loses the battle\n                    loserMajor = previousOp.identifier.major;\n                }\n                else {\n                    loserMajor = currentOp.identifier.major;\n                }\n                loserCursorsMap[loserMajor.toString()] = true;\n                for (let j = 0; j < operations.length; j++) {\n                    if (operations[j].identifier.major === loserMajor) {\n                        operations.splice(j, 1);\n                        if (j < i) {\n                            i--;\n                        }\n                        j--;\n                    }\n                }\n                if (i > 0) {\n                    i--;\n                }\n            }\n        }\n        return loserCursorsMap;\n    }\n}\nclass CompositionLineState {\n    constructor(text, startSelection, endSelection) {\n        this.text = text;\n        this.startSelection = startSelection;\n        this.endSelection = endSelection;\n    }\n}\nclass CompositionState {\n    static _capture(textModel, selections) {\n        const result = [];\n        for (const selection of selections) {\n            if (selection.startLineNumber !== selection.endLineNumber) {\n                return null;\n            }\n            result.push(new CompositionLineState(textModel.getLineContent(selection.startLineNumber), selection.startColumn - 1, selection.endColumn - 1));\n        }\n        return result;\n    }\n    constructor(textModel, selections) {\n        this._original = CompositionState._capture(textModel, selections);\n    }\n    /**\n     * Returns the inserted text during this composition.\n     * If the composition resulted in existing text being changed (i.e. not a pure insertion) it returns null.\n     */\n    deduceOutcome(textModel, selections) {\n        if (!this._original) {\n            return null;\n        }\n        const current = CompositionState._capture(textModel, selections);\n        if (!current) {\n            return null;\n        }\n        if (this._original.length !== current.length) {\n            return null;\n        }\n        const result = [];\n        for (let i = 0, len = this._original.length; i < len; i++) {\n            result.push(CompositionState._deduceOutcome(this._original[i], current[i]));\n        }\n        return result;\n    }\n    static _deduceOutcome(original, current) {\n        const commonPrefix = Math.min(original.startSelection, current.startSelection, strings.commonPrefixLength(original.text, current.text));\n        const commonSuffix = Math.min(original.text.length - original.endSelection, current.text.length - current.endSelection, strings.commonSuffixLength(original.text, current.text));\n        const deletedText = original.text.substring(commonPrefix, original.text.length - commonSuffix);\n        const insertedText = current.text.substring(commonPrefix, current.text.length - commonSuffix);\n        return new CompositionOutcome(deletedText, original.startSelection - commonPrefix, original.endSelection - commonPrefix, insertedText, current.startSelection - commonPrefix, current.endSelection - commonPrefix);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/cursor/cursorAtomicMoveOperations.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { CursorColumns } from '../core/cursorColumns.js';\nexport class AtomicTabMoveOperations {\n    /**\n     * Get the visible column at the position. If we get to a non-whitespace character first\n     * or past the end of string then return -1.\n     *\n     * **Note** `position` and the return value are 0-based.\n     */\n    static whitespaceVisibleColumn(lineContent, position, tabSize) {\n        const lineLength = lineContent.length;\n        let visibleColumn = 0;\n        let prevTabStopPosition = -1;\n        let prevTabStopVisibleColumn = -1;\n        for (let i = 0; i < lineLength; i++) {\n            if (i === position) {\n                return [prevTabStopPosition, prevTabStopVisibleColumn, visibleColumn];\n            }\n            if (visibleColumn % tabSize === 0) {\n                prevTabStopPosition = i;\n                prevTabStopVisibleColumn = visibleColumn;\n            }\n            const chCode = lineContent.charCodeAt(i);\n            switch (chCode) {\n                case 32 /* CharCode.Space */:\n                    visibleColumn += 1;\n                    break;\n                case 9 /* CharCode.Tab */:\n                    // Skip to the next multiple of tabSize.\n                    visibleColumn = CursorColumns.nextRenderTabStop(visibleColumn, tabSize);\n                    break;\n                default:\n                    return [-1, -1, -1];\n            }\n        }\n        if (position === lineLength) {\n            return [prevTabStopPosition, prevTabStopVisibleColumn, visibleColumn];\n        }\n        return [-1, -1, -1];\n    }\n    /**\n     * Return the position that should result from a move left, right or to the\n     * nearest tab, if atomic tabs are enabled. Left and right are used for the\n     * arrow key movements, nearest is used for mouse selection. It returns\n     * -1 if atomic tabs are not relevant and you should fall back to normal\n     * behaviour.\n     *\n     * **Note**: `position` and the return value are 0-based.\n     */\n    static atomicPosition(lineContent, position, tabSize, direction) {\n        const lineLength = lineContent.length;\n        // Get the 0-based visible column corresponding to the position, or return\n        // -1 if it is not in the initial whitespace.\n        const [prevTabStopPosition, prevTabStopVisibleColumn, visibleColumn] = AtomicTabMoveOperations.whitespaceVisibleColumn(lineContent, position, tabSize);\n        if (visibleColumn === -1) {\n            return -1;\n        }\n        // Is the output left or right of the current position. The case for nearest\n        // where it is the same as the current position is handled in the switch.\n        let left;\n        switch (direction) {\n            case 0 /* Direction.Left */:\n                left = true;\n                break;\n            case 1 /* Direction.Right */:\n                left = false;\n                break;\n            case 2 /* Direction.Nearest */:\n                // The code below assumes the output position is either left or right\n                // of the input position. If it is the same, return immediately.\n                if (visibleColumn % tabSize === 0) {\n                    return position;\n                }\n                // Go to the nearest indentation.\n                left = visibleColumn % tabSize <= (tabSize / 2);\n                break;\n        }\n        // If going left, we can just use the info about the last tab stop position and\n        // last tab stop visible column that we computed in the first walk over the whitespace.\n        if (left) {\n            if (prevTabStopPosition === -1) {\n                return -1;\n            }\n            // If the direction is left, we need to keep scanning right to ensure\n            // that targetVisibleColumn + tabSize is before non-whitespace.\n            // This is so that when we press left at the end of a partial\n            // indentation it only goes one character. For example '      foo' with\n            // tabSize 4, should jump from position 6 to position 5, not 4.\n            let currentVisibleColumn = prevTabStopVisibleColumn;\n            for (let i = prevTabStopPosition; i < lineLength; ++i) {\n                if (currentVisibleColumn === prevTabStopVisibleColumn + tabSize) {\n                    // It is a full indentation.\n                    return prevTabStopPosition;\n                }\n                const chCode = lineContent.charCodeAt(i);\n                switch (chCode) {\n                    case 32 /* CharCode.Space */:\n                        currentVisibleColumn += 1;\n                        break;\n                    case 9 /* CharCode.Tab */:\n                        currentVisibleColumn = CursorColumns.nextRenderTabStop(currentVisibleColumn, tabSize);\n                        break;\n                    default:\n                        return -1;\n                }\n            }\n            if (currentVisibleColumn === prevTabStopVisibleColumn + tabSize) {\n                return prevTabStopPosition;\n            }\n            // It must have been a partial indentation.\n            return -1;\n        }\n        // We are going right.\n        const targetVisibleColumn = CursorColumns.nextRenderTabStop(visibleColumn, tabSize);\n        // We can just continue from where whitespaceVisibleColumn got to.\n        let currentVisibleColumn = visibleColumn;\n        for (let i = position; i < lineLength; i++) {\n            if (currentVisibleColumn === targetVisibleColumn) {\n                return i;\n            }\n            const chCode = lineContent.charCodeAt(i);\n            switch (chCode) {\n                case 32 /* CharCode.Space */:\n                    currentVisibleColumn += 1;\n                    break;\n                case 9 /* CharCode.Tab */:\n                    currentVisibleColumn = CursorColumns.nextRenderTabStop(currentVisibleColumn, tabSize);\n                    break;\n                default:\n                    return -1;\n            }\n        }\n        // This condition handles when the target column is at the end of the line.\n        if (currentVisibleColumn === targetVisibleColumn) {\n            return lineLength;\n        }\n        return -1;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/cursor/cursorCollection.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { compareBy } from '../../../base/common/arrays.js';\nimport { findLastMax, findFirstMin } from '../../../base/common/arraysFind.js';\nimport { CursorState } from '../cursorCommon.js';\nimport { Cursor } from './oneCursor.js';\nimport { Position } from '../core/position.js';\nimport { Range } from '../core/range.js';\nimport { Selection } from '../core/selection.js';\nexport class CursorCollection {\n    constructor(context) {\n        this.context = context;\n        this.cursors = [new Cursor(context)];\n        this.lastAddedCursorIndex = 0;\n    }\n    dispose() {\n        for (const cursor of this.cursors) {\n            cursor.dispose(this.context);\n        }\n    }\n    startTrackingSelections() {\n        for (const cursor of this.cursors) {\n            cursor.startTrackingSelection(this.context);\n        }\n    }\n    stopTrackingSelections() {\n        for (const cursor of this.cursors) {\n            cursor.stopTrackingSelection(this.context);\n        }\n    }\n    updateContext(context) {\n        this.context = context;\n    }\n    ensureValidState() {\n        for (const cursor of this.cursors) {\n            cursor.ensureValidState(this.context);\n        }\n    }\n    readSelectionFromMarkers() {\n        return this.cursors.map(c => c.readSelectionFromMarkers(this.context));\n    }\n    getAll() {\n        return this.cursors.map(c => c.asCursorState());\n    }\n    getViewPositions() {\n        return this.cursors.map(c => c.viewState.position);\n    }\n    getTopMostViewPosition() {\n        return findFirstMin(this.cursors, compareBy(c => c.viewState.position, Position.compare)).viewState.position;\n    }\n    getBottomMostViewPosition() {\n        return findLastMax(this.cursors, compareBy(c => c.viewState.position, Position.compare)).viewState.position;\n    }\n    getSelections() {\n        return this.cursors.map(c => c.modelState.selection);\n    }\n    getViewSelections() {\n        return this.cursors.map(c => c.viewState.selection);\n    }\n    setSelections(selections) {\n        this.setStates(CursorState.fromModelSelections(selections));\n    }\n    getPrimaryCursor() {\n        return this.cursors[0].asCursorState();\n    }\n    setStates(states) {\n        if (states === null) {\n            return;\n        }\n        this.cursors[0].setState(this.context, states[0].modelState, states[0].viewState);\n        this._setSecondaryStates(states.slice(1));\n    }\n    /**\n     * Creates or disposes secondary cursors as necessary to match the number of `secondarySelections`.\n     */\n    _setSecondaryStates(secondaryStates) {\n        const secondaryCursorsLength = this.cursors.length - 1;\n        const secondaryStatesLength = secondaryStates.length;\n        if (secondaryCursorsLength < secondaryStatesLength) {\n            const createCnt = secondaryStatesLength - secondaryCursorsLength;\n            for (let i = 0; i < createCnt; i++) {\n                this._addSecondaryCursor();\n            }\n        }\n        else if (secondaryCursorsLength > secondaryStatesLength) {\n            const removeCnt = secondaryCursorsLength - secondaryStatesLength;\n            for (let i = 0; i < removeCnt; i++) {\n                this._removeSecondaryCursor(this.cursors.length - 2);\n            }\n        }\n        for (let i = 0; i < secondaryStatesLength; i++) {\n            this.cursors[i + 1].setState(this.context, secondaryStates[i].modelState, secondaryStates[i].viewState);\n        }\n    }\n    killSecondaryCursors() {\n        this._setSecondaryStates([]);\n    }\n    _addSecondaryCursor() {\n        this.cursors.push(new Cursor(this.context));\n        this.lastAddedCursorIndex = this.cursors.length - 1;\n    }\n    getLastAddedCursorIndex() {\n        if (this.cursors.length === 1 || this.lastAddedCursorIndex === 0) {\n            return 0;\n        }\n        return this.lastAddedCursorIndex;\n    }\n    _removeSecondaryCursor(removeIndex) {\n        if (this.lastAddedCursorIndex >= removeIndex + 1) {\n            this.lastAddedCursorIndex--;\n        }\n        this.cursors[removeIndex + 1].dispose(this.context);\n        this.cursors.splice(removeIndex + 1, 1);\n    }\n    normalize() {\n        if (this.cursors.length === 1) {\n            return;\n        }\n        const cursors = this.cursors.slice(0);\n        const sortedCursors = [];\n        for (let i = 0, len = cursors.length; i < len; i++) {\n            sortedCursors.push({\n                index: i,\n                selection: cursors[i].modelState.selection,\n            });\n        }\n        sortedCursors.sort(compareBy(s => s.selection, Range.compareRangesUsingStarts));\n        for (let sortedCursorIndex = 0; sortedCursorIndex < sortedCursors.length - 1; sortedCursorIndex++) {\n            const current = sortedCursors[sortedCursorIndex];\n            const next = sortedCursors[sortedCursorIndex + 1];\n            const currentSelection = current.selection;\n            const nextSelection = next.selection;\n            if (!this.context.cursorConfig.multiCursorMergeOverlapping) {\n                continue;\n            }\n            let shouldMergeCursors;\n            if (nextSelection.isEmpty() || currentSelection.isEmpty()) {\n                // Merge touching cursors if one of them is collapsed\n                shouldMergeCursors = nextSelection.getStartPosition().isBeforeOrEqual(currentSelection.getEndPosition());\n            }\n            else {\n                // Merge only overlapping cursors (i.e. allow touching ranges)\n                shouldMergeCursors = nextSelection.getStartPosition().isBefore(currentSelection.getEndPosition());\n            }\n            if (shouldMergeCursors) {\n                const winnerSortedCursorIndex = current.index < next.index ? sortedCursorIndex : sortedCursorIndex + 1;\n                const looserSortedCursorIndex = current.index < next.index ? sortedCursorIndex + 1 : sortedCursorIndex;\n                const looserIndex = sortedCursors[looserSortedCursorIndex].index;\n                const winnerIndex = sortedCursors[winnerSortedCursorIndex].index;\n                const looserSelection = sortedCursors[looserSortedCursorIndex].selection;\n                const winnerSelection = sortedCursors[winnerSortedCursorIndex].selection;\n                if (!looserSelection.equalsSelection(winnerSelection)) {\n                    const resultingRange = looserSelection.plusRange(winnerSelection);\n                    const looserSelectionIsLTR = (looserSelection.selectionStartLineNumber === looserSelection.startLineNumber && looserSelection.selectionStartColumn === looserSelection.startColumn);\n                    const winnerSelectionIsLTR = (winnerSelection.selectionStartLineNumber === winnerSelection.startLineNumber && winnerSelection.selectionStartColumn === winnerSelection.startColumn);\n                    // Give more importance to the last added cursor (think Ctrl-dragging + hitting another cursor)\n                    let resultingSelectionIsLTR;\n                    if (looserIndex === this.lastAddedCursorIndex) {\n                        resultingSelectionIsLTR = looserSelectionIsLTR;\n                        this.lastAddedCursorIndex = winnerIndex;\n                    }\n                    else {\n                        // Winner takes it all\n                        resultingSelectionIsLTR = winnerSelectionIsLTR;\n                    }\n                    let resultingSelection;\n                    if (resultingSelectionIsLTR) {\n                        resultingSelection = new Selection(resultingRange.startLineNumber, resultingRange.startColumn, resultingRange.endLineNumber, resultingRange.endColumn);\n                    }\n                    else {\n                        resultingSelection = new Selection(resultingRange.endLineNumber, resultingRange.endColumn, resultingRange.startLineNumber, resultingRange.startColumn);\n                    }\n                    sortedCursors[winnerSortedCursorIndex].selection = resultingSelection;\n                    const resultingState = CursorState.fromModelSelection(resultingSelection);\n                    cursors[winnerIndex].setState(this.context, resultingState.modelState, resultingState.viewState);\n                }\n                for (const sortedCursor of sortedCursors) {\n                    if (sortedCursor.index > looserIndex) {\n                        sortedCursor.index--;\n                    }\n                }\n                cursors.splice(looserIndex, 1);\n                sortedCursors.splice(looserSortedCursorIndex, 1);\n                this._removeSecondaryCursor(looserIndex - 1);\n                sortedCursorIndex--;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/cursor/cursorColumnSelection.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { SingleCursorState } from '../cursorCommon.js';\nimport { Position } from '../core/position.js';\nimport { Range } from '../core/range.js';\nexport class ColumnSelection {\n    static columnSelect(config, model, fromLineNumber, fromVisibleColumn, toLineNumber, toVisibleColumn) {\n        const lineCount = Math.abs(toLineNumber - fromLineNumber) + 1;\n        const reversed = (fromLineNumber > toLineNumber);\n        const isRTL = (fromVisibleColumn > toVisibleColumn);\n        const isLTR = (fromVisibleColumn < toVisibleColumn);\n        const result = [];\n        // console.log(`fromVisibleColumn: ${fromVisibleColumn}, toVisibleColumn: ${toVisibleColumn}`);\n        for (let i = 0; i < lineCount; i++) {\n            const lineNumber = fromLineNumber + (reversed ? -i : i);\n            const startColumn = config.columnFromVisibleColumn(model, lineNumber, fromVisibleColumn);\n            const endColumn = config.columnFromVisibleColumn(model, lineNumber, toVisibleColumn);\n            const visibleStartColumn = config.visibleColumnFromColumn(model, new Position(lineNumber, startColumn));\n            const visibleEndColumn = config.visibleColumnFromColumn(model, new Position(lineNumber, endColumn));\n            // console.log(`lineNumber: ${lineNumber}: visibleStartColumn: ${visibleStartColumn}, visibleEndColumn: ${visibleEndColumn}`);\n            if (isLTR) {\n                if (visibleStartColumn > toVisibleColumn) {\n                    continue;\n                }\n                if (visibleEndColumn < fromVisibleColumn) {\n                    continue;\n                }\n            }\n            if (isRTL) {\n                if (visibleEndColumn > fromVisibleColumn) {\n                    continue;\n                }\n                if (visibleStartColumn < toVisibleColumn) {\n                    continue;\n                }\n            }\n            result.push(new SingleCursorState(new Range(lineNumber, startColumn, lineNumber, startColumn), 0 /* SelectionStartKind.Simple */, 0, new Position(lineNumber, endColumn), 0));\n        }\n        if (result.length === 0) {\n            // We are after all the lines, so add cursor at the end of each line\n            for (let i = 0; i < lineCount; i++) {\n                const lineNumber = fromLineNumber + (reversed ? -i : i);\n                const maxColumn = model.getLineMaxColumn(lineNumber);\n                result.push(new SingleCursorState(new Range(lineNumber, maxColumn, lineNumber, maxColumn), 0 /* SelectionStartKind.Simple */, 0, new Position(lineNumber, maxColumn), 0));\n            }\n        }\n        return {\n            viewStates: result,\n            reversed: reversed,\n            fromLineNumber: fromLineNumber,\n            fromVisualColumn: fromVisibleColumn,\n            toLineNumber: toLineNumber,\n            toVisualColumn: toVisibleColumn\n        };\n    }\n    static columnSelectLeft(config, model, prevColumnSelectData) {\n        let toViewVisualColumn = prevColumnSelectData.toViewVisualColumn;\n        if (toViewVisualColumn > 0) {\n            toViewVisualColumn--;\n        }\n        return ColumnSelection.columnSelect(config, model, prevColumnSelectData.fromViewLineNumber, prevColumnSelectData.fromViewVisualColumn, prevColumnSelectData.toViewLineNumber, toViewVisualColumn);\n    }\n    static columnSelectRight(config, model, prevColumnSelectData) {\n        let maxVisualViewColumn = 0;\n        const minViewLineNumber = Math.min(prevColumnSelectData.fromViewLineNumber, prevColumnSelectData.toViewLineNumber);\n        const maxViewLineNumber = Math.max(prevColumnSelectData.fromViewLineNumber, prevColumnSelectData.toViewLineNumber);\n        for (let lineNumber = minViewLineNumber; lineNumber <= maxViewLineNumber; lineNumber++) {\n            const lineMaxViewColumn = model.getLineMaxColumn(lineNumber);\n            const lineMaxVisualViewColumn = config.visibleColumnFromColumn(model, new Position(lineNumber, lineMaxViewColumn));\n            maxVisualViewColumn = Math.max(maxVisualViewColumn, lineMaxVisualViewColumn);\n        }\n        let toViewVisualColumn = prevColumnSelectData.toViewVisualColumn;\n        if (toViewVisualColumn < maxVisualViewColumn) {\n            toViewVisualColumn++;\n        }\n        return this.columnSelect(config, model, prevColumnSelectData.fromViewLineNumber, prevColumnSelectData.fromViewVisualColumn, prevColumnSelectData.toViewLineNumber, toViewVisualColumn);\n    }\n    static columnSelectUp(config, model, prevColumnSelectData, isPaged) {\n        const linesCount = isPaged ? config.pageSize : 1;\n        const toViewLineNumber = Math.max(1, prevColumnSelectData.toViewLineNumber - linesCount);\n        return this.columnSelect(config, model, prevColumnSelectData.fromViewLineNumber, prevColumnSelectData.fromViewVisualColumn, toViewLineNumber, prevColumnSelectData.toViewVisualColumn);\n    }\n    static columnSelectDown(config, model, prevColumnSelectData, isPaged) {\n        const linesCount = isPaged ? config.pageSize : 1;\n        const toViewLineNumber = Math.min(model.getLineCount(), prevColumnSelectData.toViewLineNumber + linesCount);\n        return this.columnSelect(config, model, prevColumnSelectData.fromViewLineNumber, prevColumnSelectData.fromViewVisualColumn, toViewLineNumber, prevColumnSelectData.toViewVisualColumn);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/cursor/cursorContext.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class CursorContext {\n    constructor(model, viewModel, coordinatesConverter, cursorConfig) {\n        this._cursorContextBrand = undefined;\n        this.model = model;\n        this.viewModel = viewModel;\n        this.coordinatesConverter = coordinatesConverter;\n        this.cursorConfig = cursorConfig;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/cursor/cursorDeleteOperations.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../base/common/strings.js';\nimport { ReplaceCommand } from '../commands/replaceCommand.js';\nimport { EditOperationResult, isQuote } from '../cursorCommon.js';\nimport { CursorColumns } from '../core/cursorColumns.js';\nimport { MoveOperations } from './cursorMoveOperations.js';\nimport { Range } from '../core/range.js';\nimport { Position } from '../core/position.js';\nexport class DeleteOperations {\n    static deleteRight(prevEditOperationType, config, model, selections) {\n        const commands = [];\n        let shouldPushStackElementBefore = (prevEditOperationType !== 3 /* EditOperationType.DeletingRight */);\n        for (let i = 0, len = selections.length; i < len; i++) {\n            const selection = selections[i];\n            let deleteSelection = selection;\n            if (deleteSelection.isEmpty()) {\n                const position = selection.getPosition();\n                const rightOfPosition = MoveOperations.right(config, model, position);\n                deleteSelection = new Range(rightOfPosition.lineNumber, rightOfPosition.column, position.lineNumber, position.column);\n            }\n            if (deleteSelection.isEmpty()) {\n                // Probably at end of file => ignore\n                commands[i] = null;\n                continue;\n            }\n            if (deleteSelection.startLineNumber !== deleteSelection.endLineNumber) {\n                shouldPushStackElementBefore = true;\n            }\n            commands[i] = new ReplaceCommand(deleteSelection, '');\n        }\n        return [shouldPushStackElementBefore, commands];\n    }\n    static isAutoClosingPairDelete(autoClosingDelete, autoClosingBrackets, autoClosingQuotes, autoClosingPairsOpen, model, selections, autoClosedCharacters) {\n        if (autoClosingBrackets === 'never' && autoClosingQuotes === 'never') {\n            return false;\n        }\n        if (autoClosingDelete === 'never') {\n            return false;\n        }\n        for (let i = 0, len = selections.length; i < len; i++) {\n            const selection = selections[i];\n            const position = selection.getPosition();\n            if (!selection.isEmpty()) {\n                return false;\n            }\n            const lineText = model.getLineContent(position.lineNumber);\n            if (position.column < 2 || position.column >= lineText.length + 1) {\n                return false;\n            }\n            const character = lineText.charAt(position.column - 2);\n            const autoClosingPairCandidates = autoClosingPairsOpen.get(character);\n            if (!autoClosingPairCandidates) {\n                return false;\n            }\n            if (isQuote(character)) {\n                if (autoClosingQuotes === 'never') {\n                    return false;\n                }\n            }\n            else {\n                if (autoClosingBrackets === 'never') {\n                    return false;\n                }\n            }\n            const afterCharacter = lineText.charAt(position.column - 1);\n            let foundAutoClosingPair = false;\n            for (const autoClosingPairCandidate of autoClosingPairCandidates) {\n                if (autoClosingPairCandidate.open === character && autoClosingPairCandidate.close === afterCharacter) {\n                    foundAutoClosingPair = true;\n                }\n            }\n            if (!foundAutoClosingPair) {\n                return false;\n            }\n            // Must delete the pair only if it was automatically inserted by the editor\n            if (autoClosingDelete === 'auto') {\n                let found = false;\n                for (let j = 0, lenJ = autoClosedCharacters.length; j < lenJ; j++) {\n                    const autoClosedCharacter = autoClosedCharacters[j];\n                    if (position.lineNumber === autoClosedCharacter.startLineNumber && position.column === autoClosedCharacter.startColumn) {\n                        found = true;\n                        break;\n                    }\n                }\n                if (!found) {\n                    return false;\n                }\n            }\n        }\n        return true;\n    }\n    static _runAutoClosingPairDelete(config, model, selections) {\n        const commands = [];\n        for (let i = 0, len = selections.length; i < len; i++) {\n            const position = selections[i].getPosition();\n            const deleteSelection = new Range(position.lineNumber, position.column - 1, position.lineNumber, position.column + 1);\n            commands[i] = new ReplaceCommand(deleteSelection, '');\n        }\n        return [true, commands];\n    }\n    static deleteLeft(prevEditOperationType, config, model, selections, autoClosedCharacters) {\n        if (this.isAutoClosingPairDelete(config.autoClosingDelete, config.autoClosingBrackets, config.autoClosingQuotes, config.autoClosingPairs.autoClosingPairsOpenByEnd, model, selections, autoClosedCharacters)) {\n            return this._runAutoClosingPairDelete(config, model, selections);\n        }\n        const commands = [];\n        let shouldPushStackElementBefore = (prevEditOperationType !== 2 /* EditOperationType.DeletingLeft */);\n        for (let i = 0, len = selections.length; i < len; i++) {\n            const deleteRange = DeleteOperations.getDeleteRange(selections[i], model, config);\n            // Ignore empty delete ranges, as they have no effect\n            // They happen if the cursor is at the beginning of the file.\n            if (deleteRange.isEmpty()) {\n                commands[i] = null;\n                continue;\n            }\n            if (deleteRange.startLineNumber !== deleteRange.endLineNumber) {\n                shouldPushStackElementBefore = true;\n            }\n            commands[i] = new ReplaceCommand(deleteRange, '');\n        }\n        return [shouldPushStackElementBefore, commands];\n    }\n    static getDeleteRange(selection, model, config) {\n        if (!selection.isEmpty()) {\n            return selection;\n        }\n        const position = selection.getPosition();\n        // Unintend when using tab stops and cursor is within indentation\n        if (config.useTabStops && position.column > 1) {\n            const lineContent = model.getLineContent(position.lineNumber);\n            const firstNonWhitespaceIndex = strings.firstNonWhitespaceIndex(lineContent);\n            const lastIndentationColumn = (firstNonWhitespaceIndex === -1\n                ? /* entire string is whitespace */ lineContent.length + 1\n                : firstNonWhitespaceIndex + 1);\n            if (position.column <= lastIndentationColumn) {\n                const fromVisibleColumn = config.visibleColumnFromColumn(model, position);\n                const toVisibleColumn = CursorColumns.prevIndentTabStop(fromVisibleColumn, config.indentSize);\n                const toColumn = config.columnFromVisibleColumn(model, position.lineNumber, toVisibleColumn);\n                return new Range(position.lineNumber, toColumn, position.lineNumber, position.column);\n            }\n        }\n        return Range.fromPositions(DeleteOperations.getPositionAfterDeleteLeft(position, model), position);\n    }\n    static getPositionAfterDeleteLeft(position, model) {\n        if (position.column > 1) {\n            // Convert 1-based columns to 0-based offsets and back.\n            const idx = strings.getLeftDeleteOffset(position.column - 1, model.getLineContent(position.lineNumber));\n            return position.with(undefined, idx + 1);\n        }\n        else if (position.lineNumber > 1) {\n            const newLine = position.lineNumber - 1;\n            return new Position(newLine, model.getLineMaxColumn(newLine));\n        }\n        else {\n            return position;\n        }\n    }\n    static cut(config, model, selections) {\n        const commands = [];\n        let lastCutRange = null;\n        selections.sort((a, b) => Position.compare(a.getStartPosition(), b.getEndPosition()));\n        for (let i = 0, len = selections.length; i < len; i++) {\n            const selection = selections[i];\n            if (selection.isEmpty()) {\n                if (config.emptySelectionClipboard) {\n                    // This is a full line cut\n                    const position = selection.getPosition();\n                    let startLineNumber, startColumn, endLineNumber, endColumn;\n                    if (position.lineNumber < model.getLineCount()) {\n                        // Cutting a line in the middle of the model\n                        startLineNumber = position.lineNumber;\n                        startColumn = 1;\n                        endLineNumber = position.lineNumber + 1;\n                        endColumn = 1;\n                    }\n                    else if (position.lineNumber > 1 && (lastCutRange === null || lastCutRange === void 0 ? void 0 : lastCutRange.endLineNumber) !== position.lineNumber) {\n                        // Cutting the last line & there are more than 1 lines in the model & a previous cut operation does not touch the current cut operation\n                        startLineNumber = position.lineNumber - 1;\n                        startColumn = model.getLineMaxColumn(position.lineNumber - 1);\n                        endLineNumber = position.lineNumber;\n                        endColumn = model.getLineMaxColumn(position.lineNumber);\n                    }\n                    else {\n                        // Cutting the single line that the model contains\n                        startLineNumber = position.lineNumber;\n                        startColumn = 1;\n                        endLineNumber = position.lineNumber;\n                        endColumn = model.getLineMaxColumn(position.lineNumber);\n                    }\n                    const deleteSelection = new Range(startLineNumber, startColumn, endLineNumber, endColumn);\n                    lastCutRange = deleteSelection;\n                    if (!deleteSelection.isEmpty()) {\n                        commands[i] = new ReplaceCommand(deleteSelection, '');\n                    }\n                    else {\n                        commands[i] = null;\n                    }\n                }\n                else {\n                    // Cannot cut empty selection\n                    commands[i] = null;\n                }\n            }\n            else {\n                commands[i] = new ReplaceCommand(selection, '');\n            }\n        }\n        return new EditOperationResult(0 /* EditOperationType.Other */, commands, {\n            shouldPushStackElementBefore: true,\n            shouldPushStackElementAfter: true\n        });\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/cursor/cursorMoveCommands.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as types from '../../../base/common/types.js';\nimport { CursorState, SingleCursorState } from '../cursorCommon.js';\nimport { MoveOperations } from './cursorMoveOperations.js';\nimport { WordOperations } from './cursorWordOperations.js';\nimport { Position } from '../core/position.js';\nimport { Range } from '../core/range.js';\nexport class CursorMoveCommands {\n    static addCursorDown(viewModel, cursors, useLogicalLine) {\n        const result = [];\n        let resultLen = 0;\n        for (let i = 0, len = cursors.length; i < len; i++) {\n            const cursor = cursors[i];\n            result[resultLen++] = new CursorState(cursor.modelState, cursor.viewState);\n            if (useLogicalLine) {\n                result[resultLen++] = CursorState.fromModelState(MoveOperations.translateDown(viewModel.cursorConfig, viewModel.model, cursor.modelState));\n            }\n            else {\n                result[resultLen++] = CursorState.fromViewState(MoveOperations.translateDown(viewModel.cursorConfig, viewModel, cursor.viewState));\n            }\n        }\n        return result;\n    }\n    static addCursorUp(viewModel, cursors, useLogicalLine) {\n        const result = [];\n        let resultLen = 0;\n        for (let i = 0, len = cursors.length; i < len; i++) {\n            const cursor = cursors[i];\n            result[resultLen++] = new CursorState(cursor.modelState, cursor.viewState);\n            if (useLogicalLine) {\n                result[resultLen++] = CursorState.fromModelState(MoveOperations.translateUp(viewModel.cursorConfig, viewModel.model, cursor.modelState));\n            }\n            else {\n                result[resultLen++] = CursorState.fromViewState(MoveOperations.translateUp(viewModel.cursorConfig, viewModel, cursor.viewState));\n            }\n        }\n        return result;\n    }\n    static moveToBeginningOfLine(viewModel, cursors, inSelectionMode) {\n        const result = [];\n        for (let i = 0, len = cursors.length; i < len; i++) {\n            const cursor = cursors[i];\n            result[i] = this._moveToLineStart(viewModel, cursor, inSelectionMode);\n        }\n        return result;\n    }\n    static _moveToLineStart(viewModel, cursor, inSelectionMode) {\n        const currentViewStateColumn = cursor.viewState.position.column;\n        const currentModelStateColumn = cursor.modelState.position.column;\n        const isFirstLineOfWrappedLine = currentViewStateColumn === currentModelStateColumn;\n        const currentViewStatelineNumber = cursor.viewState.position.lineNumber;\n        const firstNonBlankColumn = viewModel.getLineFirstNonWhitespaceColumn(currentViewStatelineNumber);\n        const isBeginningOfViewLine = currentViewStateColumn === firstNonBlankColumn;\n        if (!isFirstLineOfWrappedLine && !isBeginningOfViewLine) {\n            return this._moveToLineStartByView(viewModel, cursor, inSelectionMode);\n        }\n        else {\n            return this._moveToLineStartByModel(viewModel, cursor, inSelectionMode);\n        }\n    }\n    static _moveToLineStartByView(viewModel, cursor, inSelectionMode) {\n        return CursorState.fromViewState(MoveOperations.moveToBeginningOfLine(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode));\n    }\n    static _moveToLineStartByModel(viewModel, cursor, inSelectionMode) {\n        return CursorState.fromModelState(MoveOperations.moveToBeginningOfLine(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode));\n    }\n    static moveToEndOfLine(viewModel, cursors, inSelectionMode, sticky) {\n        const result = [];\n        for (let i = 0, len = cursors.length; i < len; i++) {\n            const cursor = cursors[i];\n            result[i] = this._moveToLineEnd(viewModel, cursor, inSelectionMode, sticky);\n        }\n        return result;\n    }\n    static _moveToLineEnd(viewModel, cursor, inSelectionMode, sticky) {\n        const viewStatePosition = cursor.viewState.position;\n        const viewModelMaxColumn = viewModel.getLineMaxColumn(viewStatePosition.lineNumber);\n        const isEndOfViewLine = viewStatePosition.column === viewModelMaxColumn;\n        const modelStatePosition = cursor.modelState.position;\n        const modelMaxColumn = viewModel.model.getLineMaxColumn(modelStatePosition.lineNumber);\n        const isEndLineOfWrappedLine = viewModelMaxColumn - viewStatePosition.column === modelMaxColumn - modelStatePosition.column;\n        if (isEndOfViewLine || isEndLineOfWrappedLine) {\n            return this._moveToLineEndByModel(viewModel, cursor, inSelectionMode, sticky);\n        }\n        else {\n            return this._moveToLineEndByView(viewModel, cursor, inSelectionMode, sticky);\n        }\n    }\n    static _moveToLineEndByView(viewModel, cursor, inSelectionMode, sticky) {\n        return CursorState.fromViewState(MoveOperations.moveToEndOfLine(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, sticky));\n    }\n    static _moveToLineEndByModel(viewModel, cursor, inSelectionMode, sticky) {\n        return CursorState.fromModelState(MoveOperations.moveToEndOfLine(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode, sticky));\n    }\n    static expandLineSelection(viewModel, cursors) {\n        const result = [];\n        for (let i = 0, len = cursors.length; i < len; i++) {\n            const cursor = cursors[i];\n            const startLineNumber = cursor.modelState.selection.startLineNumber;\n            const lineCount = viewModel.model.getLineCount();\n            let endLineNumber = cursor.modelState.selection.endLineNumber;\n            let endColumn;\n            if (endLineNumber === lineCount) {\n                endColumn = viewModel.model.getLineMaxColumn(lineCount);\n            }\n            else {\n                endLineNumber++;\n                endColumn = 1;\n            }\n            result[i] = CursorState.fromModelState(new SingleCursorState(new Range(startLineNumber, 1, startLineNumber, 1), 0 /* SelectionStartKind.Simple */, 0, new Position(endLineNumber, endColumn), 0));\n        }\n        return result;\n    }\n    static moveToBeginningOfBuffer(viewModel, cursors, inSelectionMode) {\n        const result = [];\n        for (let i = 0, len = cursors.length; i < len; i++) {\n            const cursor = cursors[i];\n            result[i] = CursorState.fromModelState(MoveOperations.moveToBeginningOfBuffer(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode));\n        }\n        return result;\n    }\n    static moveToEndOfBuffer(viewModel, cursors, inSelectionMode) {\n        const result = [];\n        for (let i = 0, len = cursors.length; i < len; i++) {\n            const cursor = cursors[i];\n            result[i] = CursorState.fromModelState(MoveOperations.moveToEndOfBuffer(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode));\n        }\n        return result;\n    }\n    static selectAll(viewModel, cursor) {\n        const lineCount = viewModel.model.getLineCount();\n        const maxColumn = viewModel.model.getLineMaxColumn(lineCount);\n        return CursorState.fromModelState(new SingleCursorState(new Range(1, 1, 1, 1), 0 /* SelectionStartKind.Simple */, 0, new Position(lineCount, maxColumn), 0));\n    }\n    static line(viewModel, cursor, inSelectionMode, _position, _viewPosition) {\n        const position = viewModel.model.validatePosition(_position);\n        const viewPosition = (_viewPosition\n            ? viewModel.coordinatesConverter.validateViewPosition(new Position(_viewPosition.lineNumber, _viewPosition.column), position)\n            : viewModel.coordinatesConverter.convertModelPositionToViewPosition(position));\n        if (!inSelectionMode) {\n            // Entering line selection for the first time\n            const lineCount = viewModel.model.getLineCount();\n            let selectToLineNumber = position.lineNumber + 1;\n            let selectToColumn = 1;\n            if (selectToLineNumber > lineCount) {\n                selectToLineNumber = lineCount;\n                selectToColumn = viewModel.model.getLineMaxColumn(selectToLineNumber);\n            }\n            return CursorState.fromModelState(new SingleCursorState(new Range(position.lineNumber, 1, selectToLineNumber, selectToColumn), 2 /* SelectionStartKind.Line */, 0, new Position(selectToLineNumber, selectToColumn), 0));\n        }\n        // Continuing line selection\n        const enteringLineNumber = cursor.modelState.selectionStart.getStartPosition().lineNumber;\n        if (position.lineNumber < enteringLineNumber) {\n            return CursorState.fromViewState(cursor.viewState.move(true, viewPosition.lineNumber, 1, 0));\n        }\n        else if (position.lineNumber > enteringLineNumber) {\n            const lineCount = viewModel.getLineCount();\n            let selectToViewLineNumber = viewPosition.lineNumber + 1;\n            let selectToViewColumn = 1;\n            if (selectToViewLineNumber > lineCount) {\n                selectToViewLineNumber = lineCount;\n                selectToViewColumn = viewModel.getLineMaxColumn(selectToViewLineNumber);\n            }\n            return CursorState.fromViewState(cursor.viewState.move(true, selectToViewLineNumber, selectToViewColumn, 0));\n        }\n        else {\n            const endPositionOfSelectionStart = cursor.modelState.selectionStart.getEndPosition();\n            return CursorState.fromModelState(cursor.modelState.move(true, endPositionOfSelectionStart.lineNumber, endPositionOfSelectionStart.column, 0));\n        }\n    }\n    static word(viewModel, cursor, inSelectionMode, _position) {\n        const position = viewModel.model.validatePosition(_position);\n        return CursorState.fromModelState(WordOperations.word(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode, position));\n    }\n    static cancelSelection(viewModel, cursor) {\n        if (!cursor.modelState.hasSelection()) {\n            return new CursorState(cursor.modelState, cursor.viewState);\n        }\n        const lineNumber = cursor.viewState.position.lineNumber;\n        const column = cursor.viewState.position.column;\n        return CursorState.fromViewState(new SingleCursorState(new Range(lineNumber, column, lineNumber, column), 0 /* SelectionStartKind.Simple */, 0, new Position(lineNumber, column), 0));\n    }\n    static moveTo(viewModel, cursor, inSelectionMode, _position, _viewPosition) {\n        if (inSelectionMode) {\n            if (cursor.modelState.selectionStartKind === 1 /* SelectionStartKind.Word */) {\n                return this.word(viewModel, cursor, inSelectionMode, _position);\n            }\n            if (cursor.modelState.selectionStartKind === 2 /* SelectionStartKind.Line */) {\n                return this.line(viewModel, cursor, inSelectionMode, _position, _viewPosition);\n            }\n        }\n        const position = viewModel.model.validatePosition(_position);\n        const viewPosition = (_viewPosition\n            ? viewModel.coordinatesConverter.validateViewPosition(new Position(_viewPosition.lineNumber, _viewPosition.column), position)\n            : viewModel.coordinatesConverter.convertModelPositionToViewPosition(position));\n        return CursorState.fromViewState(cursor.viewState.move(inSelectionMode, viewPosition.lineNumber, viewPosition.column, 0));\n    }\n    static simpleMove(viewModel, cursors, direction, inSelectionMode, value, unit) {\n        switch (direction) {\n            case 0 /* CursorMove.Direction.Left */: {\n                if (unit === 4 /* CursorMove.Unit.HalfLine */) {\n                    // Move left by half the current line length\n                    return this._moveHalfLineLeft(viewModel, cursors, inSelectionMode);\n                }\n                else {\n                    // Move left by `moveParams.value` columns\n                    return this._moveLeft(viewModel, cursors, inSelectionMode, value);\n                }\n            }\n            case 1 /* CursorMove.Direction.Right */: {\n                if (unit === 4 /* CursorMove.Unit.HalfLine */) {\n                    // Move right by half the current line length\n                    return this._moveHalfLineRight(viewModel, cursors, inSelectionMode);\n                }\n                else {\n                    // Move right by `moveParams.value` columns\n                    return this._moveRight(viewModel, cursors, inSelectionMode, value);\n                }\n            }\n            case 2 /* CursorMove.Direction.Up */: {\n                if (unit === 2 /* CursorMove.Unit.WrappedLine */) {\n                    // Move up by view lines\n                    return this._moveUpByViewLines(viewModel, cursors, inSelectionMode, value);\n                }\n                else {\n                    // Move up by model lines\n                    return this._moveUpByModelLines(viewModel, cursors, inSelectionMode, value);\n                }\n            }\n            case 3 /* CursorMove.Direction.Down */: {\n                if (unit === 2 /* CursorMove.Unit.WrappedLine */) {\n                    // Move down by view lines\n                    return this._moveDownByViewLines(viewModel, cursors, inSelectionMode, value);\n                }\n                else {\n                    // Move down by model lines\n                    return this._moveDownByModelLines(viewModel, cursors, inSelectionMode, value);\n                }\n            }\n            case 4 /* CursorMove.Direction.PrevBlankLine */: {\n                if (unit === 2 /* CursorMove.Unit.WrappedLine */) {\n                    return cursors.map(cursor => CursorState.fromViewState(MoveOperations.moveToPrevBlankLine(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode)));\n                }\n                else {\n                    return cursors.map(cursor => CursorState.fromModelState(MoveOperations.moveToPrevBlankLine(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode)));\n                }\n            }\n            case 5 /* CursorMove.Direction.NextBlankLine */: {\n                if (unit === 2 /* CursorMove.Unit.WrappedLine */) {\n                    return cursors.map(cursor => CursorState.fromViewState(MoveOperations.moveToNextBlankLine(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode)));\n                }\n                else {\n                    return cursors.map(cursor => CursorState.fromModelState(MoveOperations.moveToNextBlankLine(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode)));\n                }\n            }\n            case 6 /* CursorMove.Direction.WrappedLineStart */: {\n                // Move to the beginning of the current view line\n                return this._moveToViewMinColumn(viewModel, cursors, inSelectionMode);\n            }\n            case 7 /* CursorMove.Direction.WrappedLineFirstNonWhitespaceCharacter */: {\n                // Move to the first non-whitespace column of the current view line\n                return this._moveToViewFirstNonWhitespaceColumn(viewModel, cursors, inSelectionMode);\n            }\n            case 8 /* CursorMove.Direction.WrappedLineColumnCenter */: {\n                // Move to the \"center\" of the current view line\n                return this._moveToViewCenterColumn(viewModel, cursors, inSelectionMode);\n            }\n            case 9 /* CursorMove.Direction.WrappedLineEnd */: {\n                // Move to the end of the current view line\n                return this._moveToViewMaxColumn(viewModel, cursors, inSelectionMode);\n            }\n            case 10 /* CursorMove.Direction.WrappedLineLastNonWhitespaceCharacter */: {\n                // Move to the last non-whitespace column of the current view line\n                return this._moveToViewLastNonWhitespaceColumn(viewModel, cursors, inSelectionMode);\n            }\n            default:\n                return null;\n        }\n    }\n    static viewportMove(viewModel, cursors, direction, inSelectionMode, value) {\n        const visibleViewRange = viewModel.getCompletelyVisibleViewRange();\n        const visibleModelRange = viewModel.coordinatesConverter.convertViewRangeToModelRange(visibleViewRange);\n        switch (direction) {\n            case 11 /* CursorMove.Direction.ViewPortTop */: {\n                // Move to the nth line start in the viewport (from the top)\n                const modelLineNumber = this._firstLineNumberInRange(viewModel.model, visibleModelRange, value);\n                const modelColumn = viewModel.model.getLineFirstNonWhitespaceColumn(modelLineNumber);\n                return [this._moveToModelPosition(viewModel, cursors[0], inSelectionMode, modelLineNumber, modelColumn)];\n            }\n            case 13 /* CursorMove.Direction.ViewPortBottom */: {\n                // Move to the nth line start in the viewport (from the bottom)\n                const modelLineNumber = this._lastLineNumberInRange(viewModel.model, visibleModelRange, value);\n                const modelColumn = viewModel.model.getLineFirstNonWhitespaceColumn(modelLineNumber);\n                return [this._moveToModelPosition(viewModel, cursors[0], inSelectionMode, modelLineNumber, modelColumn)];\n            }\n            case 12 /* CursorMove.Direction.ViewPortCenter */: {\n                // Move to the line start in the viewport center\n                const modelLineNumber = Math.round((visibleModelRange.startLineNumber + visibleModelRange.endLineNumber) / 2);\n                const modelColumn = viewModel.model.getLineFirstNonWhitespaceColumn(modelLineNumber);\n                return [this._moveToModelPosition(viewModel, cursors[0], inSelectionMode, modelLineNumber, modelColumn)];\n            }\n            case 14 /* CursorMove.Direction.ViewPortIfOutside */: {\n                // Move to a position inside the viewport\n                const result = [];\n                for (let i = 0, len = cursors.length; i < len; i++) {\n                    const cursor = cursors[i];\n                    result[i] = this.findPositionInViewportIfOutside(viewModel, cursor, visibleViewRange, inSelectionMode);\n                }\n                return result;\n            }\n            default:\n                return null;\n        }\n    }\n    static findPositionInViewportIfOutside(viewModel, cursor, visibleViewRange, inSelectionMode) {\n        const viewLineNumber = cursor.viewState.position.lineNumber;\n        if (visibleViewRange.startLineNumber <= viewLineNumber && viewLineNumber <= visibleViewRange.endLineNumber - 1) {\n            // Nothing to do, cursor is in viewport\n            return new CursorState(cursor.modelState, cursor.viewState);\n        }\n        else {\n            let newViewLineNumber;\n            if (viewLineNumber > visibleViewRange.endLineNumber - 1) {\n                newViewLineNumber = visibleViewRange.endLineNumber - 1;\n            }\n            else if (viewLineNumber < visibleViewRange.startLineNumber) {\n                newViewLineNumber = visibleViewRange.startLineNumber;\n            }\n            else {\n                newViewLineNumber = viewLineNumber;\n            }\n            const position = MoveOperations.vertical(viewModel.cursorConfig, viewModel, viewLineNumber, cursor.viewState.position.column, cursor.viewState.leftoverVisibleColumns, newViewLineNumber, false);\n            return CursorState.fromViewState(cursor.viewState.move(inSelectionMode, position.lineNumber, position.column, position.leftoverVisibleColumns));\n        }\n    }\n    /**\n     * Find the nth line start included in the range (from the start).\n     */\n    static _firstLineNumberInRange(model, range, count) {\n        let startLineNumber = range.startLineNumber;\n        if (range.startColumn !== model.getLineMinColumn(startLineNumber)) {\n            // Move on to the second line if the first line start is not included in the range\n            startLineNumber++;\n        }\n        return Math.min(range.endLineNumber, startLineNumber + count - 1);\n    }\n    /**\n     * Find the nth line start included in the range (from the end).\n     */\n    static _lastLineNumberInRange(model, range, count) {\n        let startLineNumber = range.startLineNumber;\n        if (range.startColumn !== model.getLineMinColumn(startLineNumber)) {\n            // Move on to the second line if the first line start is not included in the range\n            startLineNumber++;\n        }\n        return Math.max(startLineNumber, range.endLineNumber - count + 1);\n    }\n    static _moveLeft(viewModel, cursors, inSelectionMode, noOfColumns) {\n        return cursors.map(cursor => CursorState.fromViewState(MoveOperations.moveLeft(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, noOfColumns)));\n    }\n    static _moveHalfLineLeft(viewModel, cursors, inSelectionMode) {\n        const result = [];\n        for (let i = 0, len = cursors.length; i < len; i++) {\n            const cursor = cursors[i];\n            const viewLineNumber = cursor.viewState.position.lineNumber;\n            const halfLine = Math.round(viewModel.getLineLength(viewLineNumber) / 2);\n            result[i] = CursorState.fromViewState(MoveOperations.moveLeft(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, halfLine));\n        }\n        return result;\n    }\n    static _moveRight(viewModel, cursors, inSelectionMode, noOfColumns) {\n        return cursors.map(cursor => CursorState.fromViewState(MoveOperations.moveRight(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, noOfColumns)));\n    }\n    static _moveHalfLineRight(viewModel, cursors, inSelectionMode) {\n        const result = [];\n        for (let i = 0, len = cursors.length; i < len; i++) {\n            const cursor = cursors[i];\n            const viewLineNumber = cursor.viewState.position.lineNumber;\n            const halfLine = Math.round(viewModel.getLineLength(viewLineNumber) / 2);\n            result[i] = CursorState.fromViewState(MoveOperations.moveRight(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, halfLine));\n        }\n        return result;\n    }\n    static _moveDownByViewLines(viewModel, cursors, inSelectionMode, linesCount) {\n        const result = [];\n        for (let i = 0, len = cursors.length; i < len; i++) {\n            const cursor = cursors[i];\n            result[i] = CursorState.fromViewState(MoveOperations.moveDown(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, linesCount));\n        }\n        return result;\n    }\n    static _moveDownByModelLines(viewModel, cursors, inSelectionMode, linesCount) {\n        const result = [];\n        for (let i = 0, len = cursors.length; i < len; i++) {\n            const cursor = cursors[i];\n            result[i] = CursorState.fromModelState(MoveOperations.moveDown(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode, linesCount));\n        }\n        return result;\n    }\n    static _moveUpByViewLines(viewModel, cursors, inSelectionMode, linesCount) {\n        const result = [];\n        for (let i = 0, len = cursors.length; i < len; i++) {\n            const cursor = cursors[i];\n            result[i] = CursorState.fromViewState(MoveOperations.moveUp(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, linesCount));\n        }\n        return result;\n    }\n    static _moveUpByModelLines(viewModel, cursors, inSelectionMode, linesCount) {\n        const result = [];\n        for (let i = 0, len = cursors.length; i < len; i++) {\n            const cursor = cursors[i];\n            result[i] = CursorState.fromModelState(MoveOperations.moveUp(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode, linesCount));\n        }\n        return result;\n    }\n    static _moveToViewPosition(viewModel, cursor, inSelectionMode, toViewLineNumber, toViewColumn) {\n        return CursorState.fromViewState(cursor.viewState.move(inSelectionMode, toViewLineNumber, toViewColumn, 0));\n    }\n    static _moveToModelPosition(viewModel, cursor, inSelectionMode, toModelLineNumber, toModelColumn) {\n        return CursorState.fromModelState(cursor.modelState.move(inSelectionMode, toModelLineNumber, toModelColumn, 0));\n    }\n    static _moveToViewMinColumn(viewModel, cursors, inSelectionMode) {\n        const result = [];\n        for (let i = 0, len = cursors.length; i < len; i++) {\n            const cursor = cursors[i];\n            const viewLineNumber = cursor.viewState.position.lineNumber;\n            const viewColumn = viewModel.getLineMinColumn(viewLineNumber);\n            result[i] = this._moveToViewPosition(viewModel, cursor, inSelectionMode, viewLineNumber, viewColumn);\n        }\n        return result;\n    }\n    static _moveToViewFirstNonWhitespaceColumn(viewModel, cursors, inSelectionMode) {\n        const result = [];\n        for (let i = 0, len = cursors.length; i < len; i++) {\n            const cursor = cursors[i];\n            const viewLineNumber = cursor.viewState.position.lineNumber;\n            const viewColumn = viewModel.getLineFirstNonWhitespaceColumn(viewLineNumber);\n            result[i] = this._moveToViewPosition(viewModel, cursor, inSelectionMode, viewLineNumber, viewColumn);\n        }\n        return result;\n    }\n    static _moveToViewCenterColumn(viewModel, cursors, inSelectionMode) {\n        const result = [];\n        for (let i = 0, len = cursors.length; i < len; i++) {\n            const cursor = cursors[i];\n            const viewLineNumber = cursor.viewState.position.lineNumber;\n            const viewColumn = Math.round((viewModel.getLineMaxColumn(viewLineNumber) + viewModel.getLineMinColumn(viewLineNumber)) / 2);\n            result[i] = this._moveToViewPosition(viewModel, cursor, inSelectionMode, viewLineNumber, viewColumn);\n        }\n        return result;\n    }\n    static _moveToViewMaxColumn(viewModel, cursors, inSelectionMode) {\n        const result = [];\n        for (let i = 0, len = cursors.length; i < len; i++) {\n            const cursor = cursors[i];\n            const viewLineNumber = cursor.viewState.position.lineNumber;\n            const viewColumn = viewModel.getLineMaxColumn(viewLineNumber);\n            result[i] = this._moveToViewPosition(viewModel, cursor, inSelectionMode, viewLineNumber, viewColumn);\n        }\n        return result;\n    }\n    static _moveToViewLastNonWhitespaceColumn(viewModel, cursors, inSelectionMode) {\n        const result = [];\n        for (let i = 0, len = cursors.length; i < len; i++) {\n            const cursor = cursors[i];\n            const viewLineNumber = cursor.viewState.position.lineNumber;\n            const viewColumn = viewModel.getLineLastNonWhitespaceColumn(viewLineNumber);\n            result[i] = this._moveToViewPosition(viewModel, cursor, inSelectionMode, viewLineNumber, viewColumn);\n        }\n        return result;\n    }\n}\nexport var CursorMove;\n(function (CursorMove) {\n    const isCursorMoveArgs = function (arg) {\n        if (!types.isObject(arg)) {\n            return false;\n        }\n        const cursorMoveArg = arg;\n        if (!types.isString(cursorMoveArg.to)) {\n            return false;\n        }\n        if (!types.isUndefined(cursorMoveArg.select) && !types.isBoolean(cursorMoveArg.select)) {\n            return false;\n        }\n        if (!types.isUndefined(cursorMoveArg.by) && !types.isString(cursorMoveArg.by)) {\n            return false;\n        }\n        if (!types.isUndefined(cursorMoveArg.value) && !types.isNumber(cursorMoveArg.value)) {\n            return false;\n        }\n        return true;\n    };\n    CursorMove.metadata = {\n        description: 'Move cursor to a logical position in the view',\n        args: [\n            {\n                name: 'Cursor move argument object',\n                description: `Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'to': A mandatory logical position value providing where to move the cursor.\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t\t\t'left', 'right', 'up', 'down', 'prevBlankLine', 'nextBlankLine',\n\t\t\t\t\t\t'wrappedLineStart', 'wrappedLineEnd', 'wrappedLineColumnCenter'\n\t\t\t\t\t\t'wrappedLineFirstNonWhitespaceCharacter', 'wrappedLineLastNonWhitespaceCharacter'\n\t\t\t\t\t\t'viewPortTop', 'viewPortCenter', 'viewPortBottom', 'viewPortIfOutside'\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t\t* 'by': Unit to move. Default is computed based on 'to' value.\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t\t\t'line', 'wrappedLine', 'character', 'halfLine'\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t\t* 'value': Number of units to move. Default is '1'.\n\t\t\t\t\t* 'select': If 'true' makes the selection. Default is 'false'.\n\t\t\t\t`,\n                constraint: isCursorMoveArgs,\n                schema: {\n                    'type': 'object',\n                    'required': ['to'],\n                    'properties': {\n                        'to': {\n                            'type': 'string',\n                            'enum': ['left', 'right', 'up', 'down', 'prevBlankLine', 'nextBlankLine', 'wrappedLineStart', 'wrappedLineEnd', 'wrappedLineColumnCenter', 'wrappedLineFirstNonWhitespaceCharacter', 'wrappedLineLastNonWhitespaceCharacter', 'viewPortTop', 'viewPortCenter', 'viewPortBottom', 'viewPortIfOutside']\n                        },\n                        'by': {\n                            'type': 'string',\n                            'enum': ['line', 'wrappedLine', 'character', 'halfLine']\n                        },\n                        'value': {\n                            'type': 'number',\n                            'default': 1\n                        },\n                        'select': {\n                            'type': 'boolean',\n                            'default': false\n                        }\n                    }\n                }\n            }\n        ]\n    };\n    /**\n     * Positions in the view for cursor move command.\n     */\n    CursorMove.RawDirection = {\n        Left: 'left',\n        Right: 'right',\n        Up: 'up',\n        Down: 'down',\n        PrevBlankLine: 'prevBlankLine',\n        NextBlankLine: 'nextBlankLine',\n        WrappedLineStart: 'wrappedLineStart',\n        WrappedLineFirstNonWhitespaceCharacter: 'wrappedLineFirstNonWhitespaceCharacter',\n        WrappedLineColumnCenter: 'wrappedLineColumnCenter',\n        WrappedLineEnd: 'wrappedLineEnd',\n        WrappedLineLastNonWhitespaceCharacter: 'wrappedLineLastNonWhitespaceCharacter',\n        ViewPortTop: 'viewPortTop',\n        ViewPortCenter: 'viewPortCenter',\n        ViewPortBottom: 'viewPortBottom',\n        ViewPortIfOutside: 'viewPortIfOutside'\n    };\n    /**\n     * Units for Cursor move 'by' argument\n     */\n    CursorMove.RawUnit = {\n        Line: 'line',\n        WrappedLine: 'wrappedLine',\n        Character: 'character',\n        HalfLine: 'halfLine'\n    };\n    function parse(args) {\n        if (!args.to) {\n            // illegal arguments\n            return null;\n        }\n        let direction;\n        switch (args.to) {\n            case CursorMove.RawDirection.Left:\n                direction = 0 /* Direction.Left */;\n                break;\n            case CursorMove.RawDirection.Right:\n                direction = 1 /* Direction.Right */;\n                break;\n            case CursorMove.RawDirection.Up:\n                direction = 2 /* Direction.Up */;\n                break;\n            case CursorMove.RawDirection.Down:\n                direction = 3 /* Direction.Down */;\n                break;\n            case CursorMove.RawDirection.PrevBlankLine:\n                direction = 4 /* Direction.PrevBlankLine */;\n                break;\n            case CursorMove.RawDirection.NextBlankLine:\n                direction = 5 /* Direction.NextBlankLine */;\n                break;\n            case CursorMove.RawDirection.WrappedLineStart:\n                direction = 6 /* Direction.WrappedLineStart */;\n                break;\n            case CursorMove.RawDirection.WrappedLineFirstNonWhitespaceCharacter:\n                direction = 7 /* Direction.WrappedLineFirstNonWhitespaceCharacter */;\n                break;\n            case CursorMove.RawDirection.WrappedLineColumnCenter:\n                direction = 8 /* Direction.WrappedLineColumnCenter */;\n                break;\n            case CursorMove.RawDirection.WrappedLineEnd:\n                direction = 9 /* Direction.WrappedLineEnd */;\n                break;\n            case CursorMove.RawDirection.WrappedLineLastNonWhitespaceCharacter:\n                direction = 10 /* Direction.WrappedLineLastNonWhitespaceCharacter */;\n                break;\n            case CursorMove.RawDirection.ViewPortTop:\n                direction = 11 /* Direction.ViewPortTop */;\n                break;\n            case CursorMove.RawDirection.ViewPortBottom:\n                direction = 13 /* Direction.ViewPortBottom */;\n                break;\n            case CursorMove.RawDirection.ViewPortCenter:\n                direction = 12 /* Direction.ViewPortCenter */;\n                break;\n            case CursorMove.RawDirection.ViewPortIfOutside:\n                direction = 14 /* Direction.ViewPortIfOutside */;\n                break;\n            default:\n                // illegal arguments\n                return null;\n        }\n        let unit = 0 /* Unit.None */;\n        switch (args.by) {\n            case CursorMove.RawUnit.Line:\n                unit = 1 /* Unit.Line */;\n                break;\n            case CursorMove.RawUnit.WrappedLine:\n                unit = 2 /* Unit.WrappedLine */;\n                break;\n            case CursorMove.RawUnit.Character:\n                unit = 3 /* Unit.Character */;\n                break;\n            case CursorMove.RawUnit.HalfLine:\n                unit = 4 /* Unit.HalfLine */;\n                break;\n        }\n        return {\n            direction: direction,\n            unit: unit,\n            select: (!!args.select),\n            value: (args.value || 1)\n        };\n    }\n    CursorMove.parse = parse;\n})(CursorMove || (CursorMove = {}));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/cursor/cursorMoveOperations.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../base/common/strings.js';\nimport { CursorColumns } from '../core/cursorColumns.js';\nimport { Position } from '../core/position.js';\nimport { Range } from '../core/range.js';\nimport { AtomicTabMoveOperations } from './cursorAtomicMoveOperations.js';\nimport { SingleCursorState } from '../cursorCommon.js';\nexport class CursorPosition {\n    constructor(lineNumber, column, leftoverVisibleColumns) {\n        this._cursorPositionBrand = undefined;\n        this.lineNumber = lineNumber;\n        this.column = column;\n        this.leftoverVisibleColumns = leftoverVisibleColumns;\n    }\n}\nexport class MoveOperations {\n    static leftPosition(model, position) {\n        if (position.column > model.getLineMinColumn(position.lineNumber)) {\n            return position.delta(undefined, -strings.prevCharLength(model.getLineContent(position.lineNumber), position.column - 1));\n        }\n        else if (position.lineNumber > 1) {\n            const newLineNumber = position.lineNumber - 1;\n            return new Position(newLineNumber, model.getLineMaxColumn(newLineNumber));\n        }\n        else {\n            return position;\n        }\n    }\n    static leftPositionAtomicSoftTabs(model, position, tabSize) {\n        if (position.column <= model.getLineIndentColumn(position.lineNumber)) {\n            const minColumn = model.getLineMinColumn(position.lineNumber);\n            const lineContent = model.getLineContent(position.lineNumber);\n            const newPosition = AtomicTabMoveOperations.atomicPosition(lineContent, position.column - 1, tabSize, 0 /* Direction.Left */);\n            if (newPosition !== -1 && newPosition + 1 >= minColumn) {\n                return new Position(position.lineNumber, newPosition + 1);\n            }\n        }\n        return this.leftPosition(model, position);\n    }\n    static left(config, model, position) {\n        const pos = config.stickyTabStops\n            ? MoveOperations.leftPositionAtomicSoftTabs(model, position, config.tabSize)\n            : MoveOperations.leftPosition(model, position);\n        return new CursorPosition(pos.lineNumber, pos.column, 0);\n    }\n    /**\n     * @param noOfColumns Must be either `1`\n     * or `Math.round(viewModel.getLineContent(viewLineNumber).length / 2)` (for half lines).\n    */\n    static moveLeft(config, model, cursor, inSelectionMode, noOfColumns) {\n        let lineNumber, column;\n        if (cursor.hasSelection() && !inSelectionMode) {\n            // If the user has a selection and does not want to extend it,\n            // put the cursor at the beginning of the selection.\n            lineNumber = cursor.selection.startLineNumber;\n            column = cursor.selection.startColumn;\n        }\n        else {\n            // This has no effect if noOfColumns === 1.\n            // It is ok to do so in the half-line scenario.\n            const pos = cursor.position.delta(undefined, -(noOfColumns - 1));\n            // We clip the position before normalization, as normalization is not defined\n            // for possibly negative columns.\n            const normalizedPos = model.normalizePosition(MoveOperations.clipPositionColumn(pos, model), 0 /* PositionAffinity.Left */);\n            const p = MoveOperations.left(config, model, normalizedPos);\n            lineNumber = p.lineNumber;\n            column = p.column;\n        }\n        return cursor.move(inSelectionMode, lineNumber, column, 0);\n    }\n    /**\n     * Adjusts the column so that it is within min/max of the line.\n    */\n    static clipPositionColumn(position, model) {\n        return new Position(position.lineNumber, MoveOperations.clipRange(position.column, model.getLineMinColumn(position.lineNumber), model.getLineMaxColumn(position.lineNumber)));\n    }\n    static clipRange(value, min, max) {\n        if (value < min) {\n            return min;\n        }\n        if (value > max) {\n            return max;\n        }\n        return value;\n    }\n    static rightPosition(model, lineNumber, column) {\n        if (column < model.getLineMaxColumn(lineNumber)) {\n            column = column + strings.nextCharLength(model.getLineContent(lineNumber), column - 1);\n        }\n        else if (lineNumber < model.getLineCount()) {\n            lineNumber = lineNumber + 1;\n            column = model.getLineMinColumn(lineNumber);\n        }\n        return new Position(lineNumber, column);\n    }\n    static rightPositionAtomicSoftTabs(model, lineNumber, column, tabSize, indentSize) {\n        if (column < model.getLineIndentColumn(lineNumber)) {\n            const lineContent = model.getLineContent(lineNumber);\n            const newPosition = AtomicTabMoveOperations.atomicPosition(lineContent, column - 1, tabSize, 1 /* Direction.Right */);\n            if (newPosition !== -1) {\n                return new Position(lineNumber, newPosition + 1);\n            }\n        }\n        return this.rightPosition(model, lineNumber, column);\n    }\n    static right(config, model, position) {\n        const pos = config.stickyTabStops\n            ? MoveOperations.rightPositionAtomicSoftTabs(model, position.lineNumber, position.column, config.tabSize, config.indentSize)\n            : MoveOperations.rightPosition(model, position.lineNumber, position.column);\n        return new CursorPosition(pos.lineNumber, pos.column, 0);\n    }\n    static moveRight(config, model, cursor, inSelectionMode, noOfColumns) {\n        let lineNumber, column;\n        if (cursor.hasSelection() && !inSelectionMode) {\n            // If we are in selection mode, move right without selection cancels selection and puts cursor at the end of the selection\n            lineNumber = cursor.selection.endLineNumber;\n            column = cursor.selection.endColumn;\n        }\n        else {\n            const pos = cursor.position.delta(undefined, noOfColumns - 1);\n            const normalizedPos = model.normalizePosition(MoveOperations.clipPositionColumn(pos, model), 1 /* PositionAffinity.Right */);\n            const r = MoveOperations.right(config, model, normalizedPos);\n            lineNumber = r.lineNumber;\n            column = r.column;\n        }\n        return cursor.move(inSelectionMode, lineNumber, column, 0);\n    }\n    static vertical(config, model, lineNumber, column, leftoverVisibleColumns, newLineNumber, allowMoveOnEdgeLine, normalizationAffinity) {\n        const currentVisibleColumn = CursorColumns.visibleColumnFromColumn(model.getLineContent(lineNumber), column, config.tabSize) + leftoverVisibleColumns;\n        const lineCount = model.getLineCount();\n        const wasOnFirstPosition = (lineNumber === 1 && column === 1);\n        const wasOnLastPosition = (lineNumber === lineCount && column === model.getLineMaxColumn(lineNumber));\n        const wasAtEdgePosition = (newLineNumber < lineNumber ? wasOnFirstPosition : wasOnLastPosition);\n        lineNumber = newLineNumber;\n        if (lineNumber < 1) {\n            lineNumber = 1;\n            if (allowMoveOnEdgeLine) {\n                column = model.getLineMinColumn(lineNumber);\n            }\n            else {\n                column = Math.min(model.getLineMaxColumn(lineNumber), column);\n            }\n        }\n        else if (lineNumber > lineCount) {\n            lineNumber = lineCount;\n            if (allowMoveOnEdgeLine) {\n                column = model.getLineMaxColumn(lineNumber);\n            }\n            else {\n                column = Math.min(model.getLineMaxColumn(lineNumber), column);\n            }\n        }\n        else {\n            column = config.columnFromVisibleColumn(model, lineNumber, currentVisibleColumn);\n        }\n        if (wasAtEdgePosition) {\n            leftoverVisibleColumns = 0;\n        }\n        else {\n            leftoverVisibleColumns = currentVisibleColumn - CursorColumns.visibleColumnFromColumn(model.getLineContent(lineNumber), column, config.tabSize);\n        }\n        if (normalizationAffinity !== undefined) {\n            const position = new Position(lineNumber, column);\n            const newPosition = model.normalizePosition(position, normalizationAffinity);\n            leftoverVisibleColumns = leftoverVisibleColumns + (column - newPosition.column);\n            lineNumber = newPosition.lineNumber;\n            column = newPosition.column;\n        }\n        return new CursorPosition(lineNumber, column, leftoverVisibleColumns);\n    }\n    static down(config, model, lineNumber, column, leftoverVisibleColumns, count, allowMoveOnLastLine) {\n        return this.vertical(config, model, lineNumber, column, leftoverVisibleColumns, lineNumber + count, allowMoveOnLastLine, 4 /* PositionAffinity.RightOfInjectedText */);\n    }\n    static moveDown(config, model, cursor, inSelectionMode, linesCount) {\n        let lineNumber, column;\n        if (cursor.hasSelection() && !inSelectionMode) {\n            // If we are in selection mode, move down acts relative to the end of selection\n            lineNumber = cursor.selection.endLineNumber;\n            column = cursor.selection.endColumn;\n        }\n        else {\n            lineNumber = cursor.position.lineNumber;\n            column = cursor.position.column;\n        }\n        let i = 0;\n        let r;\n        do {\n            r = MoveOperations.down(config, model, lineNumber + i, column, cursor.leftoverVisibleColumns, linesCount, true);\n            const np = model.normalizePosition(new Position(r.lineNumber, r.column), 2 /* PositionAffinity.None */);\n            if (np.lineNumber > lineNumber) {\n                break;\n            }\n        } while (i++ < 10 && lineNumber + i < model.getLineCount());\n        return cursor.move(inSelectionMode, r.lineNumber, r.column, r.leftoverVisibleColumns);\n    }\n    static translateDown(config, model, cursor) {\n        const selection = cursor.selection;\n        const selectionStart = MoveOperations.down(config, model, selection.selectionStartLineNumber, selection.selectionStartColumn, cursor.selectionStartLeftoverVisibleColumns, 1, false);\n        const position = MoveOperations.down(config, model, selection.positionLineNumber, selection.positionColumn, cursor.leftoverVisibleColumns, 1, false);\n        return new SingleCursorState(new Range(selectionStart.lineNumber, selectionStart.column, selectionStart.lineNumber, selectionStart.column), 0 /* SelectionStartKind.Simple */, selectionStart.leftoverVisibleColumns, new Position(position.lineNumber, position.column), position.leftoverVisibleColumns);\n    }\n    static up(config, model, lineNumber, column, leftoverVisibleColumns, count, allowMoveOnFirstLine) {\n        return this.vertical(config, model, lineNumber, column, leftoverVisibleColumns, lineNumber - count, allowMoveOnFirstLine, 3 /* PositionAffinity.LeftOfInjectedText */);\n    }\n    static moveUp(config, model, cursor, inSelectionMode, linesCount) {\n        let lineNumber, column;\n        if (cursor.hasSelection() && !inSelectionMode) {\n            // If we are in selection mode, move up acts relative to the beginning of selection\n            lineNumber = cursor.selection.startLineNumber;\n            column = cursor.selection.startColumn;\n        }\n        else {\n            lineNumber = cursor.position.lineNumber;\n            column = cursor.position.column;\n        }\n        const r = MoveOperations.up(config, model, lineNumber, column, cursor.leftoverVisibleColumns, linesCount, true);\n        return cursor.move(inSelectionMode, r.lineNumber, r.column, r.leftoverVisibleColumns);\n    }\n    static translateUp(config, model, cursor) {\n        const selection = cursor.selection;\n        const selectionStart = MoveOperations.up(config, model, selection.selectionStartLineNumber, selection.selectionStartColumn, cursor.selectionStartLeftoverVisibleColumns, 1, false);\n        const position = MoveOperations.up(config, model, selection.positionLineNumber, selection.positionColumn, cursor.leftoverVisibleColumns, 1, false);\n        return new SingleCursorState(new Range(selectionStart.lineNumber, selectionStart.column, selectionStart.lineNumber, selectionStart.column), 0 /* SelectionStartKind.Simple */, selectionStart.leftoverVisibleColumns, new Position(position.lineNumber, position.column), position.leftoverVisibleColumns);\n    }\n    static _isBlankLine(model, lineNumber) {\n        if (model.getLineFirstNonWhitespaceColumn(lineNumber) === 0) {\n            // empty or contains only whitespace\n            return true;\n        }\n        return false;\n    }\n    static moveToPrevBlankLine(config, model, cursor, inSelectionMode) {\n        let lineNumber = cursor.position.lineNumber;\n        // If our current line is blank, move to the previous non-blank line\n        while (lineNumber > 1 && this._isBlankLine(model, lineNumber)) {\n            lineNumber--;\n        }\n        // Find the previous blank line\n        while (lineNumber > 1 && !this._isBlankLine(model, lineNumber)) {\n            lineNumber--;\n        }\n        return cursor.move(inSelectionMode, lineNumber, model.getLineMinColumn(lineNumber), 0);\n    }\n    static moveToNextBlankLine(config, model, cursor, inSelectionMode) {\n        const lineCount = model.getLineCount();\n        let lineNumber = cursor.position.lineNumber;\n        // If our current line is blank, move to the next non-blank line\n        while (lineNumber < lineCount && this._isBlankLine(model, lineNumber)) {\n            lineNumber++;\n        }\n        // Find the next blank line\n        while (lineNumber < lineCount && !this._isBlankLine(model, lineNumber)) {\n            lineNumber++;\n        }\n        return cursor.move(inSelectionMode, lineNumber, model.getLineMinColumn(lineNumber), 0);\n    }\n    static moveToBeginningOfLine(config, model, cursor, inSelectionMode) {\n        const lineNumber = cursor.position.lineNumber;\n        const minColumn = model.getLineMinColumn(lineNumber);\n        const firstNonBlankColumn = model.getLineFirstNonWhitespaceColumn(lineNumber) || minColumn;\n        let column;\n        const relevantColumnNumber = cursor.position.column;\n        if (relevantColumnNumber === firstNonBlankColumn) {\n            column = minColumn;\n        }\n        else {\n            column = firstNonBlankColumn;\n        }\n        return cursor.move(inSelectionMode, lineNumber, column, 0);\n    }\n    static moveToEndOfLine(config, model, cursor, inSelectionMode, sticky) {\n        const lineNumber = cursor.position.lineNumber;\n        const maxColumn = model.getLineMaxColumn(lineNumber);\n        return cursor.move(inSelectionMode, lineNumber, maxColumn, sticky ? 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */ - maxColumn : 0);\n    }\n    static moveToBeginningOfBuffer(config, model, cursor, inSelectionMode) {\n        return cursor.move(inSelectionMode, 1, 1, 0);\n    }\n    static moveToEndOfBuffer(config, model, cursor, inSelectionMode) {\n        const lastLineNumber = model.getLineCount();\n        const lastColumn = model.getLineMaxColumn(lastLineNumber);\n        return cursor.move(inSelectionMode, lastLineNumber, lastColumn, 0);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/cursor/cursorTypeOperations.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { onUnexpectedError } from '../../../base/common/errors.js';\nimport * as strings from '../../../base/common/strings.js';\nimport { ReplaceCommand, ReplaceCommandWithOffsetCursorState, ReplaceCommandWithoutChangingPosition, ReplaceCommandThatPreservesSelection } from '../commands/replaceCommand.js';\nimport { ShiftCommand } from '../commands/shiftCommand.js';\nimport { CompositionSurroundSelectionCommand, SurroundSelectionCommand } from '../commands/surroundSelectionCommand.js';\nimport { EditOperationResult, isQuote } from '../cursorCommon.js';\nimport { getMapForWordSeparators } from '../core/wordCharacterClassifier.js';\nimport { Range } from '../core/range.js';\nimport { Position } from '../core/position.js';\nimport { IndentAction } from '../languages/languageConfiguration.js';\nimport { getIndentationAtPosition } from '../languages/languageConfigurationRegistry.js';\nimport { createScopedLineTokens } from '../languages/supports.js';\nimport { getIndentActionForType, getIndentForEnter, getInheritIndentForLine } from '../languages/autoIndent.js';\nimport { getEnterAction } from '../languages/enterAction.js';\nexport class TypeOperations {\n    static indent(config, model, selections) {\n        if (model === null || selections === null) {\n            return [];\n        }\n        const commands = [];\n        for (let i = 0, len = selections.length; i < len; i++) {\n            commands[i] = new ShiftCommand(selections[i], {\n                isUnshift: false,\n                tabSize: config.tabSize,\n                indentSize: config.indentSize,\n                insertSpaces: config.insertSpaces,\n                useTabStops: config.useTabStops,\n                autoIndent: config.autoIndent\n            }, config.languageConfigurationService);\n        }\n        return commands;\n    }\n    static outdent(config, model, selections) {\n        const commands = [];\n        for (let i = 0, len = selections.length; i < len; i++) {\n            commands[i] = new ShiftCommand(selections[i], {\n                isUnshift: true,\n                tabSize: config.tabSize,\n                indentSize: config.indentSize,\n                insertSpaces: config.insertSpaces,\n                useTabStops: config.useTabStops,\n                autoIndent: config.autoIndent\n            }, config.languageConfigurationService);\n        }\n        return commands;\n    }\n    static shiftIndent(config, indentation, count) {\n        count = count || 1;\n        return ShiftCommand.shiftIndent(indentation, indentation.length + count, config.tabSize, config.indentSize, config.insertSpaces);\n    }\n    static unshiftIndent(config, indentation, count) {\n        count = count || 1;\n        return ShiftCommand.unshiftIndent(indentation, indentation.length + count, config.tabSize, config.indentSize, config.insertSpaces);\n    }\n    static _distributedPaste(config, model, selections, text) {\n        const commands = [];\n        for (let i = 0, len = selections.length; i < len; i++) {\n            commands[i] = new ReplaceCommand(selections[i], text[i]);\n        }\n        return new EditOperationResult(0 /* EditOperationType.Other */, commands, {\n            shouldPushStackElementBefore: true,\n            shouldPushStackElementAfter: true\n        });\n    }\n    static _simplePaste(config, model, selections, text, pasteOnNewLine) {\n        const commands = [];\n        for (let i = 0, len = selections.length; i < len; i++) {\n            const selection = selections[i];\n            const position = selection.getPosition();\n            if (pasteOnNewLine && !selection.isEmpty()) {\n                pasteOnNewLine = false;\n            }\n            if (pasteOnNewLine && text.indexOf('\\n') !== text.length - 1) {\n                pasteOnNewLine = false;\n            }\n            if (pasteOnNewLine) {\n                // Paste entire line at the beginning of line\n                const typeSelection = new Range(position.lineNumber, 1, position.lineNumber, 1);\n                commands[i] = new ReplaceCommandThatPreservesSelection(typeSelection, text, selection, true);\n            }\n            else {\n                commands[i] = new ReplaceCommand(selection, text);\n            }\n        }\n        return new EditOperationResult(0 /* EditOperationType.Other */, commands, {\n            shouldPushStackElementBefore: true,\n            shouldPushStackElementAfter: true\n        });\n    }\n    static _distributePasteToCursors(config, selections, text, pasteOnNewLine, multicursorText) {\n        if (pasteOnNewLine) {\n            return null;\n        }\n        if (selections.length === 1) {\n            return null;\n        }\n        if (multicursorText && multicursorText.length === selections.length) {\n            return multicursorText;\n        }\n        if (config.multiCursorPaste === 'spread') {\n            // Try to spread the pasted text in case the line count matches the cursor count\n            // Remove trailing \\n if present\n            if (text.charCodeAt(text.length - 1) === 10 /* CharCode.LineFeed */) {\n                text = text.substr(0, text.length - 1);\n            }\n            // Remove trailing \\r if present\n            if (text.charCodeAt(text.length - 1) === 13 /* CharCode.CarriageReturn */) {\n                text = text.substr(0, text.length - 1);\n            }\n            const lines = strings.splitLines(text);\n            if (lines.length === selections.length) {\n                return lines;\n            }\n        }\n        return null;\n    }\n    static paste(config, model, selections, text, pasteOnNewLine, multicursorText) {\n        const distributedPaste = this._distributePasteToCursors(config, selections, text, pasteOnNewLine, multicursorText);\n        if (distributedPaste) {\n            selections = selections.sort(Range.compareRangesUsingStarts);\n            return this._distributedPaste(config, model, selections, distributedPaste);\n        }\n        else {\n            return this._simplePaste(config, model, selections, text, pasteOnNewLine);\n        }\n    }\n    static _goodIndentForLine(config, model, lineNumber) {\n        let action = null;\n        let indentation = '';\n        const expectedIndentAction = getInheritIndentForLine(config.autoIndent, model, lineNumber, false, config.languageConfigurationService);\n        if (expectedIndentAction) {\n            action = expectedIndentAction.action;\n            indentation = expectedIndentAction.indentation;\n        }\n        else if (lineNumber > 1) {\n            let lastLineNumber;\n            for (lastLineNumber = lineNumber - 1; lastLineNumber >= 1; lastLineNumber--) {\n                const lineText = model.getLineContent(lastLineNumber);\n                const nonWhitespaceIdx = strings.lastNonWhitespaceIndex(lineText);\n                if (nonWhitespaceIdx >= 0) {\n                    break;\n                }\n            }\n            if (lastLineNumber < 1) {\n                // No previous line with content found\n                return null;\n            }\n            const maxColumn = model.getLineMaxColumn(lastLineNumber);\n            const expectedEnterAction = getEnterAction(config.autoIndent, model, new Range(lastLineNumber, maxColumn, lastLineNumber, maxColumn), config.languageConfigurationService);\n            if (expectedEnterAction) {\n                indentation = expectedEnterAction.indentation + expectedEnterAction.appendText;\n            }\n        }\n        if (action) {\n            if (action === IndentAction.Indent) {\n                indentation = TypeOperations.shiftIndent(config, indentation);\n            }\n            if (action === IndentAction.Outdent) {\n                indentation = TypeOperations.unshiftIndent(config, indentation);\n            }\n            indentation = config.normalizeIndentation(indentation);\n        }\n        if (!indentation) {\n            return null;\n        }\n        return indentation;\n    }\n    static _replaceJumpToNextIndent(config, model, selection, insertsAutoWhitespace) {\n        let typeText = '';\n        const position = selection.getStartPosition();\n        if (config.insertSpaces) {\n            const visibleColumnFromColumn = config.visibleColumnFromColumn(model, position);\n            const indentSize = config.indentSize;\n            const spacesCnt = indentSize - (visibleColumnFromColumn % indentSize);\n            for (let i = 0; i < spacesCnt; i++) {\n                typeText += ' ';\n            }\n        }\n        else {\n            typeText = '\\t';\n        }\n        return new ReplaceCommand(selection, typeText, insertsAutoWhitespace);\n    }\n    static tab(config, model, selections) {\n        const commands = [];\n        for (let i = 0, len = selections.length; i < len; i++) {\n            const selection = selections[i];\n            if (selection.isEmpty()) {\n                const lineText = model.getLineContent(selection.startLineNumber);\n                if (/^\\s*$/.test(lineText) && model.tokenization.isCheapToTokenize(selection.startLineNumber)) {\n                    let goodIndent = this._goodIndentForLine(config, model, selection.startLineNumber);\n                    goodIndent = goodIndent || '\\t';\n                    const possibleTypeText = config.normalizeIndentation(goodIndent);\n                    if (!lineText.startsWith(possibleTypeText)) {\n                        commands[i] = new ReplaceCommand(new Range(selection.startLineNumber, 1, selection.startLineNumber, lineText.length + 1), possibleTypeText, true);\n                        continue;\n                    }\n                }\n                commands[i] = this._replaceJumpToNextIndent(config, model, selection, true);\n            }\n            else {\n                if (selection.startLineNumber === selection.endLineNumber) {\n                    const lineMaxColumn = model.getLineMaxColumn(selection.startLineNumber);\n                    if (selection.startColumn !== 1 || selection.endColumn !== lineMaxColumn) {\n                        // This is a single line selection that is not the entire line\n                        commands[i] = this._replaceJumpToNextIndent(config, model, selection, false);\n                        continue;\n                    }\n                }\n                commands[i] = new ShiftCommand(selection, {\n                    isUnshift: false,\n                    tabSize: config.tabSize,\n                    indentSize: config.indentSize,\n                    insertSpaces: config.insertSpaces,\n                    useTabStops: config.useTabStops,\n                    autoIndent: config.autoIndent\n                }, config.languageConfigurationService);\n            }\n        }\n        return commands;\n    }\n    static compositionType(prevEditOperationType, config, model, selections, text, replacePrevCharCnt, replaceNextCharCnt, positionDelta) {\n        const commands = selections.map(selection => this._compositionType(model, selection, text, replacePrevCharCnt, replaceNextCharCnt, positionDelta));\n        return new EditOperationResult(4 /* EditOperationType.TypingOther */, commands, {\n            shouldPushStackElementBefore: shouldPushStackElementBetween(prevEditOperationType, 4 /* EditOperationType.TypingOther */),\n            shouldPushStackElementAfter: false\n        });\n    }\n    static _compositionType(model, selection, text, replacePrevCharCnt, replaceNextCharCnt, positionDelta) {\n        if (!selection.isEmpty()) {\n            // looks like https://github.com/microsoft/vscode/issues/2773\n            // where a cursor operation occurred before a canceled composition\n            // => ignore composition\n            return null;\n        }\n        const pos = selection.getPosition();\n        const startColumn = Math.max(1, pos.column - replacePrevCharCnt);\n        const endColumn = Math.min(model.getLineMaxColumn(pos.lineNumber), pos.column + replaceNextCharCnt);\n        const range = new Range(pos.lineNumber, startColumn, pos.lineNumber, endColumn);\n        const oldText = model.getValueInRange(range);\n        if (oldText === text && positionDelta === 0) {\n            // => ignore composition that doesn't do anything\n            return null;\n        }\n        return new ReplaceCommandWithOffsetCursorState(range, text, 0, positionDelta);\n    }\n    static _typeCommand(range, text, keepPosition) {\n        if (keepPosition) {\n            return new ReplaceCommandWithoutChangingPosition(range, text, true);\n        }\n        else {\n            return new ReplaceCommand(range, text, true);\n        }\n    }\n    static _enter(config, model, keepPosition, range) {\n        if (config.autoIndent === 0 /* EditorAutoIndentStrategy.None */) {\n            return TypeOperations._typeCommand(range, '\\n', keepPosition);\n        }\n        if (!model.tokenization.isCheapToTokenize(range.getStartPosition().lineNumber) || config.autoIndent === 1 /* EditorAutoIndentStrategy.Keep */) {\n            const lineText = model.getLineContent(range.startLineNumber);\n            const indentation = strings.getLeadingWhitespace(lineText).substring(0, range.startColumn - 1);\n            return TypeOperations._typeCommand(range, '\\n' + config.normalizeIndentation(indentation), keepPosition);\n        }\n        const r = getEnterAction(config.autoIndent, model, range, config.languageConfigurationService);\n        if (r) {\n            if (r.indentAction === IndentAction.None) {\n                // Nothing special\n                return TypeOperations._typeCommand(range, '\\n' + config.normalizeIndentation(r.indentation + r.appendText), keepPosition);\n            }\n            else if (r.indentAction === IndentAction.Indent) {\n                // Indent once\n                return TypeOperations._typeCommand(range, '\\n' + config.normalizeIndentation(r.indentation + r.appendText), keepPosition);\n            }\n            else if (r.indentAction === IndentAction.IndentOutdent) {\n                // Ultra special\n                const normalIndent = config.normalizeIndentation(r.indentation);\n                const increasedIndent = config.normalizeIndentation(r.indentation + r.appendText);\n                const typeText = '\\n' + increasedIndent + '\\n' + normalIndent;\n                if (keepPosition) {\n                    return new ReplaceCommandWithoutChangingPosition(range, typeText, true);\n                }\n                else {\n                    return new ReplaceCommandWithOffsetCursorState(range, typeText, -1, increasedIndent.length - normalIndent.length, true);\n                }\n            }\n            else if (r.indentAction === IndentAction.Outdent) {\n                const actualIndentation = TypeOperations.unshiftIndent(config, r.indentation);\n                return TypeOperations._typeCommand(range, '\\n' + config.normalizeIndentation(actualIndentation + r.appendText), keepPosition);\n            }\n        }\n        const lineText = model.getLineContent(range.startLineNumber);\n        const indentation = strings.getLeadingWhitespace(lineText).substring(0, range.startColumn - 1);\n        if (config.autoIndent >= 4 /* EditorAutoIndentStrategy.Full */) {\n            const ir = getIndentForEnter(config.autoIndent, model, range, {\n                unshiftIndent: (indent) => {\n                    return TypeOperations.unshiftIndent(config, indent);\n                },\n                shiftIndent: (indent) => {\n                    return TypeOperations.shiftIndent(config, indent);\n                },\n                normalizeIndentation: (indent) => {\n                    return config.normalizeIndentation(indent);\n                }\n            }, config.languageConfigurationService);\n            if (ir) {\n                let oldEndViewColumn = config.visibleColumnFromColumn(model, range.getEndPosition());\n                const oldEndColumn = range.endColumn;\n                const newLineContent = model.getLineContent(range.endLineNumber);\n                const firstNonWhitespace = strings.firstNonWhitespaceIndex(newLineContent);\n                if (firstNonWhitespace >= 0) {\n                    range = range.setEndPosition(range.endLineNumber, Math.max(range.endColumn, firstNonWhitespace + 1));\n                }\n                else {\n                    range = range.setEndPosition(range.endLineNumber, model.getLineMaxColumn(range.endLineNumber));\n                }\n                if (keepPosition) {\n                    return new ReplaceCommandWithoutChangingPosition(range, '\\n' + config.normalizeIndentation(ir.afterEnter), true);\n                }\n                else {\n                    let offset = 0;\n                    if (oldEndColumn <= firstNonWhitespace + 1) {\n                        if (!config.insertSpaces) {\n                            oldEndViewColumn = Math.ceil(oldEndViewColumn / config.indentSize);\n                        }\n                        offset = Math.min(oldEndViewColumn + 1 - config.normalizeIndentation(ir.afterEnter).length - 1, 0);\n                    }\n                    return new ReplaceCommandWithOffsetCursorState(range, '\\n' + config.normalizeIndentation(ir.afterEnter), 0, offset, true);\n                }\n            }\n        }\n        return TypeOperations._typeCommand(range, '\\n' + config.normalizeIndentation(indentation), keepPosition);\n    }\n    static _isAutoIndentType(config, model, selections) {\n        if (config.autoIndent < 4 /* EditorAutoIndentStrategy.Full */) {\n            return false;\n        }\n        for (let i = 0, len = selections.length; i < len; i++) {\n            if (!model.tokenization.isCheapToTokenize(selections[i].getEndPosition().lineNumber)) {\n                return false;\n            }\n        }\n        return true;\n    }\n    static _runAutoIndentType(config, model, range, ch) {\n        const currentIndentation = getIndentationAtPosition(model, range.startLineNumber, range.startColumn);\n        const actualIndentation = getIndentActionForType(config.autoIndent, model, range, ch, {\n            shiftIndent: (indentation) => {\n                return TypeOperations.shiftIndent(config, indentation);\n            },\n            unshiftIndent: (indentation) => {\n                return TypeOperations.unshiftIndent(config, indentation);\n            },\n        }, config.languageConfigurationService);\n        if (actualIndentation === null) {\n            return null;\n        }\n        if (actualIndentation !== config.normalizeIndentation(currentIndentation)) {\n            const firstNonWhitespace = model.getLineFirstNonWhitespaceColumn(range.startLineNumber);\n            if (firstNonWhitespace === 0) {\n                return TypeOperations._typeCommand(new Range(range.startLineNumber, 1, range.endLineNumber, range.endColumn), config.normalizeIndentation(actualIndentation) + ch, false);\n            }\n            else {\n                return TypeOperations._typeCommand(new Range(range.startLineNumber, 1, range.endLineNumber, range.endColumn), config.normalizeIndentation(actualIndentation) +\n                    model.getLineContent(range.startLineNumber).substring(firstNonWhitespace - 1, range.startColumn - 1) + ch, false);\n            }\n        }\n        return null;\n    }\n    static _isAutoClosingOvertype(config, model, selections, autoClosedCharacters, ch) {\n        if (config.autoClosingOvertype === 'never') {\n            return false;\n        }\n        if (!config.autoClosingPairs.autoClosingPairsCloseSingleChar.has(ch)) {\n            return false;\n        }\n        for (let i = 0, len = selections.length; i < len; i++) {\n            const selection = selections[i];\n            if (!selection.isEmpty()) {\n                return false;\n            }\n            const position = selection.getPosition();\n            const lineText = model.getLineContent(position.lineNumber);\n            const afterCharacter = lineText.charAt(position.column - 1);\n            if (afterCharacter !== ch) {\n                return false;\n            }\n            // Do not over-type quotes after a backslash\n            const chIsQuote = isQuote(ch);\n            const beforeCharacter = position.column > 2 ? lineText.charCodeAt(position.column - 2) : 0 /* CharCode.Null */;\n            if (beforeCharacter === 92 /* CharCode.Backslash */ && chIsQuote) {\n                return false;\n            }\n            // Must over-type a closing character typed by the editor\n            if (config.autoClosingOvertype === 'auto') {\n                let found = false;\n                for (let j = 0, lenJ = autoClosedCharacters.length; j < lenJ; j++) {\n                    const autoClosedCharacter = autoClosedCharacters[j];\n                    if (position.lineNumber === autoClosedCharacter.startLineNumber && position.column === autoClosedCharacter.startColumn) {\n                        found = true;\n                        break;\n                    }\n                }\n                if (!found) {\n                    return false;\n                }\n            }\n        }\n        return true;\n    }\n    static _runAutoClosingOvertype(prevEditOperationType, config, model, selections, ch) {\n        const commands = [];\n        for (let i = 0, len = selections.length; i < len; i++) {\n            const selection = selections[i];\n            const position = selection.getPosition();\n            const typeSelection = new Range(position.lineNumber, position.column, position.lineNumber, position.column + 1);\n            commands[i] = new ReplaceCommand(typeSelection, ch);\n        }\n        return new EditOperationResult(4 /* EditOperationType.TypingOther */, commands, {\n            shouldPushStackElementBefore: shouldPushStackElementBetween(prevEditOperationType, 4 /* EditOperationType.TypingOther */),\n            shouldPushStackElementAfter: false\n        });\n    }\n    static _isBeforeClosingBrace(config, lineAfter) {\n        // If the start of lineAfter can be interpretted as both a starting or ending brace, default to returning false\n        const nextChar = lineAfter.charAt(0);\n        const potentialStartingBraces = config.autoClosingPairs.autoClosingPairsOpenByStart.get(nextChar) || [];\n        const potentialClosingBraces = config.autoClosingPairs.autoClosingPairsCloseByStart.get(nextChar) || [];\n        const isBeforeStartingBrace = potentialStartingBraces.some(x => lineAfter.startsWith(x.open));\n        const isBeforeClosingBrace = potentialClosingBraces.some(x => lineAfter.startsWith(x.close));\n        return !isBeforeStartingBrace && isBeforeClosingBrace;\n    }\n    /**\n     * Determine if typing `ch` at all `positions` in the `model` results in an\n     * auto closing open sequence being typed.\n     *\n     * Auto closing open sequences can consist of multiple characters, which\n     * can lead to ambiguities. In such a case, the longest auto-closing open\n     * sequence is returned.\n     */\n    static _findAutoClosingPairOpen(config, model, positions, ch) {\n        const candidates = config.autoClosingPairs.autoClosingPairsOpenByEnd.get(ch);\n        if (!candidates) {\n            return null;\n        }\n        // Determine which auto-closing pair it is\n        let result = null;\n        for (const candidate of candidates) {\n            if (result === null || candidate.open.length > result.open.length) {\n                let candidateIsMatch = true;\n                for (const position of positions) {\n                    const relevantText = model.getValueInRange(new Range(position.lineNumber, position.column - candidate.open.length + 1, position.lineNumber, position.column));\n                    if (relevantText + ch !== candidate.open) {\n                        candidateIsMatch = false;\n                        break;\n                    }\n                }\n                if (candidateIsMatch) {\n                    result = candidate;\n                }\n            }\n        }\n        return result;\n    }\n    /**\n     * Find another auto-closing pair that is contained by the one passed in.\n     *\n     * e.g. when having [(,)] and [(*,*)] as auto-closing pairs\n     * this method will find [(,)] as a containment pair for [(*,*)]\n     */\n    static _findContainedAutoClosingPair(config, pair) {\n        if (pair.open.length <= 1) {\n            return null;\n        }\n        const lastChar = pair.close.charAt(pair.close.length - 1);\n        // get candidates with the same last character as close\n        const candidates = config.autoClosingPairs.autoClosingPairsCloseByEnd.get(lastChar) || [];\n        let result = null;\n        for (const candidate of candidates) {\n            if (candidate.open !== pair.open && pair.open.includes(candidate.open) && pair.close.endsWith(candidate.close)) {\n                if (!result || candidate.open.length > result.open.length) {\n                    result = candidate;\n                }\n            }\n        }\n        return result;\n    }\n    static _getAutoClosingPairClose(config, model, selections, ch, chIsAlreadyTyped) {\n        for (const selection of selections) {\n            if (!selection.isEmpty()) {\n                return null;\n            }\n        }\n        // This method is called both when typing (regularly) and when composition ends\n        // This means that we need to work with a text buffer where sometimes `ch` is not\n        // there (it is being typed right now) or with a text buffer where `ch` has already been typed\n        //\n        // In order to avoid adding checks for `chIsAlreadyTyped` in all places, we will work\n        // with two conceptual positions, the position before `ch` and the position after `ch`\n        //\n        const positions = selections.map((s) => {\n            const position = s.getPosition();\n            if (chIsAlreadyTyped) {\n                return { lineNumber: position.lineNumber, beforeColumn: position.column - ch.length, afterColumn: position.column };\n            }\n            else {\n                return { lineNumber: position.lineNumber, beforeColumn: position.column, afterColumn: position.column };\n            }\n        });\n        // Find the longest auto-closing open pair in case of multiple ending in `ch`\n        // e.g. when having [f\",\"] and [\",\"], it picks [f\",\"] if the character before is f\n        const pair = this._findAutoClosingPairOpen(config, model, positions.map(p => new Position(p.lineNumber, p.beforeColumn)), ch);\n        if (!pair) {\n            return null;\n        }\n        let autoCloseConfig;\n        let shouldAutoCloseBefore;\n        const chIsQuote = isQuote(ch);\n        if (chIsQuote) {\n            autoCloseConfig = config.autoClosingQuotes;\n            shouldAutoCloseBefore = config.shouldAutoCloseBefore.quote;\n        }\n        else {\n            const pairIsForComments = config.blockCommentStartToken ? pair.open.includes(config.blockCommentStartToken) : false;\n            if (pairIsForComments) {\n                autoCloseConfig = config.autoClosingComments;\n                shouldAutoCloseBefore = config.shouldAutoCloseBefore.comment;\n            }\n            else {\n                autoCloseConfig = config.autoClosingBrackets;\n                shouldAutoCloseBefore = config.shouldAutoCloseBefore.bracket;\n            }\n        }\n        if (autoCloseConfig === 'never') {\n            return null;\n        }\n        // Sometimes, it is possible to have two auto-closing pairs that have a containment relationship\n        // e.g. when having [(,)] and [(*,*)]\n        // - when typing (, the resulting state is (|)\n        // - when typing *, the desired resulting state is (*|*), not (*|*))\n        const containedPair = this._findContainedAutoClosingPair(config, pair);\n        const containedPairClose = containedPair ? containedPair.close : '';\n        let isContainedPairPresent = true;\n        for (const position of positions) {\n            const { lineNumber, beforeColumn, afterColumn } = position;\n            const lineText = model.getLineContent(lineNumber);\n            const lineBefore = lineText.substring(0, beforeColumn - 1);\n            const lineAfter = lineText.substring(afterColumn - 1);\n            if (!lineAfter.startsWith(containedPairClose)) {\n                isContainedPairPresent = false;\n            }\n            // Only consider auto closing the pair if an allowed character follows or if another autoclosed pair closing brace follows\n            if (lineAfter.length > 0) {\n                const characterAfter = lineAfter.charAt(0);\n                const isBeforeCloseBrace = TypeOperations._isBeforeClosingBrace(config, lineAfter);\n                if (!isBeforeCloseBrace && !shouldAutoCloseBefore(characterAfter)) {\n                    return null;\n                }\n            }\n            // Do not auto-close ' or \" after a word character\n            if (pair.open.length === 1 && (ch === '\\'' || ch === '\"') && autoCloseConfig !== 'always') {\n                const wordSeparators = getMapForWordSeparators(config.wordSeparators, []);\n                if (lineBefore.length > 0) {\n                    const characterBefore = lineBefore.charCodeAt(lineBefore.length - 1);\n                    if (wordSeparators.get(characterBefore) === 0 /* WordCharacterClass.Regular */) {\n                        return null;\n                    }\n                }\n            }\n            if (!model.tokenization.isCheapToTokenize(lineNumber)) {\n                // Do not force tokenization\n                return null;\n            }\n            model.tokenization.forceTokenization(lineNumber);\n            const lineTokens = model.tokenization.getLineTokens(lineNumber);\n            const scopedLineTokens = createScopedLineTokens(lineTokens, beforeColumn - 1);\n            if (!pair.shouldAutoClose(scopedLineTokens, beforeColumn - scopedLineTokens.firstCharOffset)) {\n                return null;\n            }\n            // Typing for example a quote could either start a new string, in which case auto-closing is desirable\n            // or it could end a previously started string, in which case auto-closing is not desirable\n            //\n            // In certain cases, it is really not possible to look at the previous token to determine\n            // what would happen. That's why we do something really unusual, we pretend to type a different\n            // character and ask the tokenizer what the outcome of doing that is: after typing a neutral\n            // character, are we in a string (i.e. the quote would most likely end a string) or not?\n            //\n            const neutralCharacter = pair.findNeutralCharacter();\n            if (neutralCharacter) {\n                const tokenType = model.tokenization.getTokenTypeIfInsertingCharacter(lineNumber, beforeColumn, neutralCharacter);\n                if (!pair.isOK(tokenType)) {\n                    return null;\n                }\n            }\n        }\n        if (isContainedPairPresent) {\n            return pair.close.substring(0, pair.close.length - containedPairClose.length);\n        }\n        else {\n            return pair.close;\n        }\n    }\n    static _runAutoClosingOpenCharType(prevEditOperationType, config, model, selections, ch, chIsAlreadyTyped, autoClosingPairClose) {\n        const commands = [];\n        for (let i = 0, len = selections.length; i < len; i++) {\n            const selection = selections[i];\n            commands[i] = new TypeWithAutoClosingCommand(selection, ch, !chIsAlreadyTyped, autoClosingPairClose);\n        }\n        return new EditOperationResult(4 /* EditOperationType.TypingOther */, commands, {\n            shouldPushStackElementBefore: true,\n            shouldPushStackElementAfter: false\n        });\n    }\n    static _shouldSurroundChar(config, ch) {\n        if (isQuote(ch)) {\n            return (config.autoSurround === 'quotes' || config.autoSurround === 'languageDefined');\n        }\n        else {\n            // Character is a bracket\n            return (config.autoSurround === 'brackets' || config.autoSurround === 'languageDefined');\n        }\n    }\n    static _isSurroundSelectionType(config, model, selections, ch) {\n        if (!TypeOperations._shouldSurroundChar(config, ch) || !config.surroundingPairs.hasOwnProperty(ch)) {\n            return false;\n        }\n        const isTypingAQuoteCharacter = isQuote(ch);\n        for (const selection of selections) {\n            if (selection.isEmpty()) {\n                return false;\n            }\n            let selectionContainsOnlyWhitespace = true;\n            for (let lineNumber = selection.startLineNumber; lineNumber <= selection.endLineNumber; lineNumber++) {\n                const lineText = model.getLineContent(lineNumber);\n                const startIndex = (lineNumber === selection.startLineNumber ? selection.startColumn - 1 : 0);\n                const endIndex = (lineNumber === selection.endLineNumber ? selection.endColumn - 1 : lineText.length);\n                const selectedText = lineText.substring(startIndex, endIndex);\n                if (/[^ \\t]/.test(selectedText)) {\n                    // this selected text contains something other than whitespace\n                    selectionContainsOnlyWhitespace = false;\n                    break;\n                }\n            }\n            if (selectionContainsOnlyWhitespace) {\n                return false;\n            }\n            if (isTypingAQuoteCharacter && selection.startLineNumber === selection.endLineNumber && selection.startColumn + 1 === selection.endColumn) {\n                const selectionText = model.getValueInRange(selection);\n                if (isQuote(selectionText)) {\n                    // Typing a quote character on top of another quote character\n                    // => disable surround selection type\n                    return false;\n                }\n            }\n        }\n        return true;\n    }\n    static _runSurroundSelectionType(prevEditOperationType, config, model, selections, ch) {\n        const commands = [];\n        for (let i = 0, len = selections.length; i < len; i++) {\n            const selection = selections[i];\n            const closeCharacter = config.surroundingPairs[ch];\n            commands[i] = new SurroundSelectionCommand(selection, ch, closeCharacter);\n        }\n        return new EditOperationResult(0 /* EditOperationType.Other */, commands, {\n            shouldPushStackElementBefore: true,\n            shouldPushStackElementAfter: true\n        });\n    }\n    static _isTypeInterceptorElectricChar(config, model, selections) {\n        if (selections.length === 1 && model.tokenization.isCheapToTokenize(selections[0].getEndPosition().lineNumber)) {\n            return true;\n        }\n        return false;\n    }\n    static _typeInterceptorElectricChar(prevEditOperationType, config, model, selection, ch) {\n        if (!config.electricChars.hasOwnProperty(ch) || !selection.isEmpty()) {\n            return null;\n        }\n        const position = selection.getPosition();\n        model.tokenization.forceTokenization(position.lineNumber);\n        const lineTokens = model.tokenization.getLineTokens(position.lineNumber);\n        let electricAction;\n        try {\n            electricAction = config.onElectricCharacter(ch, lineTokens, position.column);\n        }\n        catch (e) {\n            onUnexpectedError(e);\n            return null;\n        }\n        if (!electricAction) {\n            return null;\n        }\n        if (electricAction.matchOpenBracket) {\n            const endColumn = (lineTokens.getLineContent() + ch).lastIndexOf(electricAction.matchOpenBracket) + 1;\n            const match = model.bracketPairs.findMatchingBracketUp(electricAction.matchOpenBracket, {\n                lineNumber: position.lineNumber,\n                column: endColumn\n            }, 500 /* give at most 500ms to compute */);\n            if (match) {\n                if (match.startLineNumber === position.lineNumber) {\n                    // matched something on the same line => no change in indentation\n                    return null;\n                }\n                const matchLine = model.getLineContent(match.startLineNumber);\n                const matchLineIndentation = strings.getLeadingWhitespace(matchLine);\n                const newIndentation = config.normalizeIndentation(matchLineIndentation);\n                const lineText = model.getLineContent(position.lineNumber);\n                const lineFirstNonBlankColumn = model.getLineFirstNonWhitespaceColumn(position.lineNumber) || position.column;\n                const prefix = lineText.substring(lineFirstNonBlankColumn - 1, position.column - 1);\n                const typeText = newIndentation + prefix + ch;\n                const typeSelection = new Range(position.lineNumber, 1, position.lineNumber, position.column);\n                const command = new ReplaceCommand(typeSelection, typeText);\n                return new EditOperationResult(getTypingOperation(typeText, prevEditOperationType), [command], {\n                    shouldPushStackElementBefore: false,\n                    shouldPushStackElementAfter: true\n                });\n            }\n        }\n        return null;\n    }\n    /**\n     * This is very similar with typing, but the character is already in the text buffer!\n     */\n    static compositionEndWithInterceptors(prevEditOperationType, config, model, compositions, selections, autoClosedCharacters) {\n        if (!compositions) {\n            // could not deduce what the composition did\n            return null;\n        }\n        let insertedText = null;\n        for (const composition of compositions) {\n            if (insertedText === null) {\n                insertedText = composition.insertedText;\n            }\n            else if (insertedText !== composition.insertedText) {\n                // not all selections agree on what was typed\n                return null;\n            }\n        }\n        if (!insertedText || insertedText.length !== 1) {\n            // we're only interested in the case where a single character was inserted\n            return null;\n        }\n        const ch = insertedText;\n        let hasDeletion = false;\n        for (const composition of compositions) {\n            if (composition.deletedText.length !== 0) {\n                hasDeletion = true;\n                break;\n            }\n        }\n        if (hasDeletion) {\n            // Check if this could have been a surround selection\n            if (!TypeOperations._shouldSurroundChar(config, ch) || !config.surroundingPairs.hasOwnProperty(ch)) {\n                return null;\n            }\n            const isTypingAQuoteCharacter = isQuote(ch);\n            for (const composition of compositions) {\n                if (composition.deletedSelectionStart !== 0 || composition.deletedSelectionEnd !== composition.deletedText.length) {\n                    // more text was deleted than was selected, so this could not have been a surround selection\n                    return null;\n                }\n                if (/^[ \\t]+$/.test(composition.deletedText)) {\n                    // deleted text was only whitespace\n                    return null;\n                }\n                if (isTypingAQuoteCharacter && isQuote(composition.deletedText)) {\n                    // deleted text was a quote\n                    return null;\n                }\n            }\n            const positions = [];\n            for (const selection of selections) {\n                if (!selection.isEmpty()) {\n                    return null;\n                }\n                positions.push(selection.getPosition());\n            }\n            if (positions.length !== compositions.length) {\n                return null;\n            }\n            const commands = [];\n            for (let i = 0, len = positions.length; i < len; i++) {\n                commands.push(new CompositionSurroundSelectionCommand(positions[i], compositions[i].deletedText, config.surroundingPairs[ch]));\n            }\n            return new EditOperationResult(4 /* EditOperationType.TypingOther */, commands, {\n                shouldPushStackElementBefore: true,\n                shouldPushStackElementAfter: false\n            });\n        }\n        if (this._isAutoClosingOvertype(config, model, selections, autoClosedCharacters, ch)) {\n            // Unfortunately, the close character is at this point \"doubled\", so we need to delete it...\n            const commands = selections.map(s => new ReplaceCommand(new Range(s.positionLineNumber, s.positionColumn, s.positionLineNumber, s.positionColumn + 1), '', false));\n            return new EditOperationResult(4 /* EditOperationType.TypingOther */, commands, {\n                shouldPushStackElementBefore: true,\n                shouldPushStackElementAfter: false\n            });\n        }\n        const autoClosingPairClose = this._getAutoClosingPairClose(config, model, selections, ch, true);\n        if (autoClosingPairClose !== null) {\n            return this._runAutoClosingOpenCharType(prevEditOperationType, config, model, selections, ch, true, autoClosingPairClose);\n        }\n        return null;\n    }\n    static typeWithInterceptors(isDoingComposition, prevEditOperationType, config, model, selections, autoClosedCharacters, ch) {\n        if (!isDoingComposition && ch === '\\n') {\n            const commands = [];\n            for (let i = 0, len = selections.length; i < len; i++) {\n                commands[i] = TypeOperations._enter(config, model, false, selections[i]);\n            }\n            return new EditOperationResult(4 /* EditOperationType.TypingOther */, commands, {\n                shouldPushStackElementBefore: true,\n                shouldPushStackElementAfter: false,\n            });\n        }\n        if (!isDoingComposition && this._isAutoIndentType(config, model, selections)) {\n            const commands = [];\n            let autoIndentFails = false;\n            for (let i = 0, len = selections.length; i < len; i++) {\n                commands[i] = this._runAutoIndentType(config, model, selections[i], ch);\n                if (!commands[i]) {\n                    autoIndentFails = true;\n                    break;\n                }\n            }\n            if (!autoIndentFails) {\n                return new EditOperationResult(4 /* EditOperationType.TypingOther */, commands, {\n                    shouldPushStackElementBefore: true,\n                    shouldPushStackElementAfter: false,\n                });\n            }\n        }\n        if (this._isAutoClosingOvertype(config, model, selections, autoClosedCharacters, ch)) {\n            return this._runAutoClosingOvertype(prevEditOperationType, config, model, selections, ch);\n        }\n        if (!isDoingComposition) {\n            const autoClosingPairClose = this._getAutoClosingPairClose(config, model, selections, ch, false);\n            if (autoClosingPairClose) {\n                return this._runAutoClosingOpenCharType(prevEditOperationType, config, model, selections, ch, false, autoClosingPairClose);\n            }\n        }\n        if (!isDoingComposition && this._isSurroundSelectionType(config, model, selections, ch)) {\n            return this._runSurroundSelectionType(prevEditOperationType, config, model, selections, ch);\n        }\n        // Electric characters make sense only when dealing with a single cursor,\n        // as multiple cursors typing brackets for example would interfer with bracket matching\n        if (!isDoingComposition && this._isTypeInterceptorElectricChar(config, model, selections)) {\n            const r = this._typeInterceptorElectricChar(prevEditOperationType, config, model, selections[0], ch);\n            if (r) {\n                return r;\n            }\n        }\n        // A simple character type\n        const commands = [];\n        for (let i = 0, len = selections.length; i < len; i++) {\n            commands[i] = new ReplaceCommand(selections[i], ch);\n        }\n        const opType = getTypingOperation(ch, prevEditOperationType);\n        return new EditOperationResult(opType, commands, {\n            shouldPushStackElementBefore: shouldPushStackElementBetween(prevEditOperationType, opType),\n            shouldPushStackElementAfter: false\n        });\n    }\n    static typeWithoutInterceptors(prevEditOperationType, config, model, selections, str) {\n        const commands = [];\n        for (let i = 0, len = selections.length; i < len; i++) {\n            commands[i] = new ReplaceCommand(selections[i], str);\n        }\n        const opType = getTypingOperation(str, prevEditOperationType);\n        return new EditOperationResult(opType, commands, {\n            shouldPushStackElementBefore: shouldPushStackElementBetween(prevEditOperationType, opType),\n            shouldPushStackElementAfter: false\n        });\n    }\n    static lineInsertBefore(config, model, selections) {\n        if (model === null || selections === null) {\n            return [];\n        }\n        const commands = [];\n        for (let i = 0, len = selections.length; i < len; i++) {\n            let lineNumber = selections[i].positionLineNumber;\n            if (lineNumber === 1) {\n                commands[i] = new ReplaceCommandWithoutChangingPosition(new Range(1, 1, 1, 1), '\\n');\n            }\n            else {\n                lineNumber--;\n                const column = model.getLineMaxColumn(lineNumber);\n                commands[i] = this._enter(config, model, false, new Range(lineNumber, column, lineNumber, column));\n            }\n        }\n        return commands;\n    }\n    static lineInsertAfter(config, model, selections) {\n        if (model === null || selections === null) {\n            return [];\n        }\n        const commands = [];\n        for (let i = 0, len = selections.length; i < len; i++) {\n            const lineNumber = selections[i].positionLineNumber;\n            const column = model.getLineMaxColumn(lineNumber);\n            commands[i] = this._enter(config, model, false, new Range(lineNumber, column, lineNumber, column));\n        }\n        return commands;\n    }\n    static lineBreakInsert(config, model, selections) {\n        const commands = [];\n        for (let i = 0, len = selections.length; i < len; i++) {\n            commands[i] = this._enter(config, model, true, selections[i]);\n        }\n        return commands;\n    }\n}\nexport class TypeWithAutoClosingCommand extends ReplaceCommandWithOffsetCursorState {\n    constructor(selection, openCharacter, insertOpenCharacter, closeCharacter) {\n        super(selection, (insertOpenCharacter ? openCharacter : '') + closeCharacter, 0, -closeCharacter.length);\n        this._openCharacter = openCharacter;\n        this._closeCharacter = closeCharacter;\n        this.closeCharacterRange = null;\n        this.enclosingRange = null;\n    }\n    computeCursorState(model, helper) {\n        const inverseEditOperations = helper.getInverseEditOperations();\n        const range = inverseEditOperations[0].range;\n        this.closeCharacterRange = new Range(range.startLineNumber, range.endColumn - this._closeCharacter.length, range.endLineNumber, range.endColumn);\n        this.enclosingRange = new Range(range.startLineNumber, range.endColumn - this._openCharacter.length - this._closeCharacter.length, range.endLineNumber, range.endColumn);\n        return super.computeCursorState(model, helper);\n    }\n}\nexport class CompositionOutcome {\n    constructor(deletedText, deletedSelectionStart, deletedSelectionEnd, insertedText, insertedSelectionStart, insertedSelectionEnd) {\n        this.deletedText = deletedText;\n        this.deletedSelectionStart = deletedSelectionStart;\n        this.deletedSelectionEnd = deletedSelectionEnd;\n        this.insertedText = insertedText;\n        this.insertedSelectionStart = insertedSelectionStart;\n        this.insertedSelectionEnd = insertedSelectionEnd;\n    }\n}\nfunction getTypingOperation(typedText, previousTypingOperation) {\n    if (typedText === ' ') {\n        return previousTypingOperation === 5 /* EditOperationType.TypingFirstSpace */\n            || previousTypingOperation === 6 /* EditOperationType.TypingConsecutiveSpace */\n            ? 6 /* EditOperationType.TypingConsecutiveSpace */\n            : 5 /* EditOperationType.TypingFirstSpace */;\n    }\n    return 4 /* EditOperationType.TypingOther */;\n}\nfunction shouldPushStackElementBetween(previousTypingOperation, typingOperation) {\n    if (isTypingOperation(previousTypingOperation) && !isTypingOperation(typingOperation)) {\n        // Always set an undo stop before non-type operations\n        return true;\n    }\n    if (previousTypingOperation === 5 /* EditOperationType.TypingFirstSpace */) {\n        // `abc |d`: No undo stop\n        // `abc  |d`: Undo stop\n        return false;\n    }\n    // Insert undo stop between different operation types\n    return normalizeOperationType(previousTypingOperation) !== normalizeOperationType(typingOperation);\n}\nfunction normalizeOperationType(type) {\n    return (type === 6 /* EditOperationType.TypingConsecutiveSpace */ || type === 5 /* EditOperationType.TypingFirstSpace */)\n        ? 'space'\n        : type;\n}\nfunction isTypingOperation(type) {\n    return type === 4 /* EditOperationType.TypingOther */\n        || type === 5 /* EditOperationType.TypingFirstSpace */\n        || type === 6 /* EditOperationType.TypingConsecutiveSpace */;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/cursor/cursorWordOperations.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../base/common/strings.js';\nimport { SingleCursorState } from '../cursorCommon.js';\nimport { DeleteOperations } from './cursorDeleteOperations.js';\nimport { getMapForWordSeparators } from '../core/wordCharacterClassifier.js';\nimport { Position } from '../core/position.js';\nimport { Range } from '../core/range.js';\nexport class WordOperations {\n    static _createWord(lineContent, wordType, nextCharClass, start, end) {\n        // console.log('WORD ==> ' + start + ' => ' + end + ':::: <<<' + lineContent.substring(start, end) + '>>>');\n        return { start: start, end: end, wordType: wordType, nextCharClass: nextCharClass };\n    }\n    static _createIntlWord(intlWord, nextCharClass) {\n        // console.log('INTL WORD ==> ' + intlWord.index + ' => ' + intlWord.index + intlWord.segment.length + ':::: <<<' + intlWord.segment + '>>>');\n        return { start: intlWord.index, end: intlWord.index + intlWord.segment.length, wordType: 1 /* WordType.Regular */, nextCharClass: nextCharClass };\n    }\n    static _findPreviousWordOnLine(wordSeparators, model, position) {\n        const lineContent = model.getLineContent(position.lineNumber);\n        return this._doFindPreviousWordOnLine(lineContent, wordSeparators, position);\n    }\n    static _doFindPreviousWordOnLine(lineContent, wordSeparators, position) {\n        let wordType = 0 /* WordType.None */;\n        const previousIntlWord = wordSeparators.findPrevIntlWordBeforeOrAtOffset(lineContent, position.column - 2);\n        for (let chIndex = position.column - 2; chIndex >= 0; chIndex--) {\n            const chCode = lineContent.charCodeAt(chIndex);\n            const chClass = wordSeparators.get(chCode);\n            if (previousIntlWord && chIndex === previousIntlWord.index) {\n                return this._createIntlWord(previousIntlWord, chClass);\n            }\n            if (chClass === 0 /* WordCharacterClass.Regular */) {\n                if (wordType === 2 /* WordType.Separator */) {\n                    return this._createWord(lineContent, wordType, chClass, chIndex + 1, this._findEndOfWord(lineContent, wordSeparators, wordType, chIndex + 1));\n                }\n                wordType = 1 /* WordType.Regular */;\n            }\n            else if (chClass === 2 /* WordCharacterClass.WordSeparator */) {\n                if (wordType === 1 /* WordType.Regular */) {\n                    return this._createWord(lineContent, wordType, chClass, chIndex + 1, this._findEndOfWord(lineContent, wordSeparators, wordType, chIndex + 1));\n                }\n                wordType = 2 /* WordType.Separator */;\n            }\n            else if (chClass === 1 /* WordCharacterClass.Whitespace */) {\n                if (wordType !== 0 /* WordType.None */) {\n                    return this._createWord(lineContent, wordType, chClass, chIndex + 1, this._findEndOfWord(lineContent, wordSeparators, wordType, chIndex + 1));\n                }\n            }\n        }\n        if (wordType !== 0 /* WordType.None */) {\n            return this._createWord(lineContent, wordType, 1 /* WordCharacterClass.Whitespace */, 0, this._findEndOfWord(lineContent, wordSeparators, wordType, 0));\n        }\n        return null;\n    }\n    static _findEndOfWord(lineContent, wordSeparators, wordType, startIndex) {\n        const nextIntlWord = wordSeparators.findNextIntlWordAtOrAfterOffset(lineContent, startIndex);\n        const len = lineContent.length;\n        for (let chIndex = startIndex; chIndex < len; chIndex++) {\n            const chCode = lineContent.charCodeAt(chIndex);\n            const chClass = wordSeparators.get(chCode);\n            if (nextIntlWord && chIndex === nextIntlWord.index + nextIntlWord.segment.length) {\n                return chIndex;\n            }\n            if (chClass === 1 /* WordCharacterClass.Whitespace */) {\n                return chIndex;\n            }\n            if (wordType === 1 /* WordType.Regular */ && chClass === 2 /* WordCharacterClass.WordSeparator */) {\n                return chIndex;\n            }\n            if (wordType === 2 /* WordType.Separator */ && chClass === 0 /* WordCharacterClass.Regular */) {\n                return chIndex;\n            }\n        }\n        return len;\n    }\n    static _findNextWordOnLine(wordSeparators, model, position) {\n        const lineContent = model.getLineContent(position.lineNumber);\n        return this._doFindNextWordOnLine(lineContent, wordSeparators, position);\n    }\n    static _doFindNextWordOnLine(lineContent, wordSeparators, position) {\n        let wordType = 0 /* WordType.None */;\n        const len = lineContent.length;\n        const nextIntlWord = wordSeparators.findNextIntlWordAtOrAfterOffset(lineContent, position.column - 1);\n        for (let chIndex = position.column - 1; chIndex < len; chIndex++) {\n            const chCode = lineContent.charCodeAt(chIndex);\n            const chClass = wordSeparators.get(chCode);\n            if (nextIntlWord && chIndex === nextIntlWord.index) {\n                return this._createIntlWord(nextIntlWord, chClass);\n            }\n            if (chClass === 0 /* WordCharacterClass.Regular */) {\n                if (wordType === 2 /* WordType.Separator */) {\n                    return this._createWord(lineContent, wordType, chClass, this._findStartOfWord(lineContent, wordSeparators, wordType, chIndex - 1), chIndex);\n                }\n                wordType = 1 /* WordType.Regular */;\n            }\n            else if (chClass === 2 /* WordCharacterClass.WordSeparator */) {\n                if (wordType === 1 /* WordType.Regular */) {\n                    return this._createWord(lineContent, wordType, chClass, this._findStartOfWord(lineContent, wordSeparators, wordType, chIndex - 1), chIndex);\n                }\n                wordType = 2 /* WordType.Separator */;\n            }\n            else if (chClass === 1 /* WordCharacterClass.Whitespace */) {\n                if (wordType !== 0 /* WordType.None */) {\n                    return this._createWord(lineContent, wordType, chClass, this._findStartOfWord(lineContent, wordSeparators, wordType, chIndex - 1), chIndex);\n                }\n            }\n        }\n        if (wordType !== 0 /* WordType.None */) {\n            return this._createWord(lineContent, wordType, 1 /* WordCharacterClass.Whitespace */, this._findStartOfWord(lineContent, wordSeparators, wordType, len - 1), len);\n        }\n        return null;\n    }\n    static _findStartOfWord(lineContent, wordSeparators, wordType, startIndex) {\n        const previousIntlWord = wordSeparators.findPrevIntlWordBeforeOrAtOffset(lineContent, startIndex);\n        for (let chIndex = startIndex; chIndex >= 0; chIndex--) {\n            const chCode = lineContent.charCodeAt(chIndex);\n            const chClass = wordSeparators.get(chCode);\n            if (previousIntlWord && chIndex === previousIntlWord.index) {\n                return chIndex;\n            }\n            if (chClass === 1 /* WordCharacterClass.Whitespace */) {\n                return chIndex + 1;\n            }\n            if (wordType === 1 /* WordType.Regular */ && chClass === 2 /* WordCharacterClass.WordSeparator */) {\n                return chIndex + 1;\n            }\n            if (wordType === 2 /* WordType.Separator */ && chClass === 0 /* WordCharacterClass.Regular */) {\n                return chIndex + 1;\n            }\n        }\n        return 0;\n    }\n    static moveWordLeft(wordSeparators, model, position, wordNavigationType) {\n        let lineNumber = position.lineNumber;\n        let column = position.column;\n        if (column === 1) {\n            if (lineNumber > 1) {\n                lineNumber = lineNumber - 1;\n                column = model.getLineMaxColumn(lineNumber);\n            }\n        }\n        let prevWordOnLine = WordOperations._findPreviousWordOnLine(wordSeparators, model, new Position(lineNumber, column));\n        if (wordNavigationType === 0 /* WordNavigationType.WordStart */) {\n            return new Position(lineNumber, prevWordOnLine ? prevWordOnLine.start + 1 : 1);\n        }\n        if (wordNavigationType === 1 /* WordNavigationType.WordStartFast */) {\n            if (prevWordOnLine\n                && prevWordOnLine.wordType === 2 /* WordType.Separator */\n                && prevWordOnLine.end - prevWordOnLine.start === 1\n                && prevWordOnLine.nextCharClass === 0 /* WordCharacterClass.Regular */) {\n                // Skip over a word made up of one single separator and followed by a regular character\n                prevWordOnLine = WordOperations._findPreviousWordOnLine(wordSeparators, model, new Position(lineNumber, prevWordOnLine.start + 1));\n            }\n            return new Position(lineNumber, prevWordOnLine ? prevWordOnLine.start + 1 : 1);\n        }\n        if (wordNavigationType === 3 /* WordNavigationType.WordAccessibility */) {\n            while (prevWordOnLine\n                && prevWordOnLine.wordType === 2 /* WordType.Separator */) {\n                // Skip over words made up of only separators\n                prevWordOnLine = WordOperations._findPreviousWordOnLine(wordSeparators, model, new Position(lineNumber, prevWordOnLine.start + 1));\n            }\n            return new Position(lineNumber, prevWordOnLine ? prevWordOnLine.start + 1 : 1);\n        }\n        // We are stopping at the ending of words\n        if (prevWordOnLine && column <= prevWordOnLine.end + 1) {\n            prevWordOnLine = WordOperations._findPreviousWordOnLine(wordSeparators, model, new Position(lineNumber, prevWordOnLine.start + 1));\n        }\n        return new Position(lineNumber, prevWordOnLine ? prevWordOnLine.end + 1 : 1);\n    }\n    static _moveWordPartLeft(model, position) {\n        const lineNumber = position.lineNumber;\n        const maxColumn = model.getLineMaxColumn(lineNumber);\n        if (position.column === 1) {\n            return (lineNumber > 1 ? new Position(lineNumber - 1, model.getLineMaxColumn(lineNumber - 1)) : position);\n        }\n        const lineContent = model.getLineContent(lineNumber);\n        for (let column = position.column - 1; column > 1; column--) {\n            const left = lineContent.charCodeAt(column - 2);\n            const right = lineContent.charCodeAt(column - 1);\n            if (left === 95 /* CharCode.Underline */ && right !== 95 /* CharCode.Underline */) {\n                // snake_case_variables\n                return new Position(lineNumber, column);\n            }\n            if (left === 45 /* CharCode.Dash */ && right !== 45 /* CharCode.Dash */) {\n                // kebab-case-variables\n                return new Position(lineNumber, column);\n            }\n            if ((strings.isLowerAsciiLetter(left) || strings.isAsciiDigit(left)) && strings.isUpperAsciiLetter(right)) {\n                // camelCaseVariables\n                return new Position(lineNumber, column);\n            }\n            if (strings.isUpperAsciiLetter(left) && strings.isUpperAsciiLetter(right)) {\n                // thisIsACamelCaseWithOneLetterWords\n                if (column + 1 < maxColumn) {\n                    const rightRight = lineContent.charCodeAt(column);\n                    if (strings.isLowerAsciiLetter(rightRight) || strings.isAsciiDigit(rightRight)) {\n                        return new Position(lineNumber, column);\n                    }\n                }\n            }\n        }\n        return new Position(lineNumber, 1);\n    }\n    static moveWordRight(wordSeparators, model, position, wordNavigationType) {\n        let lineNumber = position.lineNumber;\n        let column = position.column;\n        let movedDown = false;\n        if (column === model.getLineMaxColumn(lineNumber)) {\n            if (lineNumber < model.getLineCount()) {\n                movedDown = true;\n                lineNumber = lineNumber + 1;\n                column = 1;\n            }\n        }\n        let nextWordOnLine = WordOperations._findNextWordOnLine(wordSeparators, model, new Position(lineNumber, column));\n        if (wordNavigationType === 2 /* WordNavigationType.WordEnd */) {\n            if (nextWordOnLine && nextWordOnLine.wordType === 2 /* WordType.Separator */) {\n                if (nextWordOnLine.end - nextWordOnLine.start === 1 && nextWordOnLine.nextCharClass === 0 /* WordCharacterClass.Regular */) {\n                    // Skip over a word made up of one single separator and followed by a regular character\n                    nextWordOnLine = WordOperations._findNextWordOnLine(wordSeparators, model, new Position(lineNumber, nextWordOnLine.end + 1));\n                }\n            }\n            if (nextWordOnLine) {\n                column = nextWordOnLine.end + 1;\n            }\n            else {\n                column = model.getLineMaxColumn(lineNumber);\n            }\n        }\n        else if (wordNavigationType === 3 /* WordNavigationType.WordAccessibility */) {\n            if (movedDown) {\n                // If we move to the next line, pretend that the cursor is right before the first character.\n                // This is needed when the first word starts right at the first character - and in order not to miss it,\n                // we need to start before.\n                column = 0;\n            }\n            while (nextWordOnLine\n                && (nextWordOnLine.wordType === 2 /* WordType.Separator */\n                    || nextWordOnLine.start + 1 <= column)) {\n                // Skip over a word made up of one single separator\n                // Also skip over word if it begins before current cursor position to ascertain we're moving forward at least 1 character.\n                nextWordOnLine = WordOperations._findNextWordOnLine(wordSeparators, model, new Position(lineNumber, nextWordOnLine.end + 1));\n            }\n            if (nextWordOnLine) {\n                column = nextWordOnLine.start + 1;\n            }\n            else {\n                column = model.getLineMaxColumn(lineNumber);\n            }\n        }\n        else {\n            if (nextWordOnLine && !movedDown && column >= nextWordOnLine.start + 1) {\n                nextWordOnLine = WordOperations._findNextWordOnLine(wordSeparators, model, new Position(lineNumber, nextWordOnLine.end + 1));\n            }\n            if (nextWordOnLine) {\n                column = nextWordOnLine.start + 1;\n            }\n            else {\n                column = model.getLineMaxColumn(lineNumber);\n            }\n        }\n        return new Position(lineNumber, column);\n    }\n    static _moveWordPartRight(model, position) {\n        const lineNumber = position.lineNumber;\n        const maxColumn = model.getLineMaxColumn(lineNumber);\n        if (position.column === maxColumn) {\n            return (lineNumber < model.getLineCount() ? new Position(lineNumber + 1, 1) : position);\n        }\n        const lineContent = model.getLineContent(lineNumber);\n        for (let column = position.column + 1; column < maxColumn; column++) {\n            const left = lineContent.charCodeAt(column - 2);\n            const right = lineContent.charCodeAt(column - 1);\n            if (left !== 95 /* CharCode.Underline */ && right === 95 /* CharCode.Underline */) {\n                // snake_case_variables\n                return new Position(lineNumber, column);\n            }\n            if (left !== 45 /* CharCode.Dash */ && right === 45 /* CharCode.Dash */) {\n                // kebab-case-variables\n                return new Position(lineNumber, column);\n            }\n            if ((strings.isLowerAsciiLetter(left) || strings.isAsciiDigit(left)) && strings.isUpperAsciiLetter(right)) {\n                // camelCaseVariables\n                return new Position(lineNumber, column);\n            }\n            if (strings.isUpperAsciiLetter(left) && strings.isUpperAsciiLetter(right)) {\n                // thisIsACamelCaseWithOneLetterWords\n                if (column + 1 < maxColumn) {\n                    const rightRight = lineContent.charCodeAt(column);\n                    if (strings.isLowerAsciiLetter(rightRight) || strings.isAsciiDigit(rightRight)) {\n                        return new Position(lineNumber, column);\n                    }\n                }\n            }\n        }\n        return new Position(lineNumber, maxColumn);\n    }\n    static _deleteWordLeftWhitespace(model, position) {\n        const lineContent = model.getLineContent(position.lineNumber);\n        const startIndex = position.column - 2;\n        const lastNonWhitespace = strings.lastNonWhitespaceIndex(lineContent, startIndex);\n        if (lastNonWhitespace + 1 < startIndex) {\n            return new Range(position.lineNumber, lastNonWhitespace + 2, position.lineNumber, position.column);\n        }\n        return null;\n    }\n    static deleteWordLeft(ctx, wordNavigationType) {\n        const wordSeparators = ctx.wordSeparators;\n        const model = ctx.model;\n        const selection = ctx.selection;\n        const whitespaceHeuristics = ctx.whitespaceHeuristics;\n        if (!selection.isEmpty()) {\n            return selection;\n        }\n        if (DeleteOperations.isAutoClosingPairDelete(ctx.autoClosingDelete, ctx.autoClosingBrackets, ctx.autoClosingQuotes, ctx.autoClosingPairs.autoClosingPairsOpenByEnd, ctx.model, [ctx.selection], ctx.autoClosedCharacters)) {\n            const position = ctx.selection.getPosition();\n            return new Range(position.lineNumber, position.column - 1, position.lineNumber, position.column + 1);\n        }\n        const position = new Position(selection.positionLineNumber, selection.positionColumn);\n        let lineNumber = position.lineNumber;\n        let column = position.column;\n        if (lineNumber === 1 && column === 1) {\n            // Ignore deleting at beginning of file\n            return null;\n        }\n        if (whitespaceHeuristics) {\n            const r = this._deleteWordLeftWhitespace(model, position);\n            if (r) {\n                return r;\n            }\n        }\n        let prevWordOnLine = WordOperations._findPreviousWordOnLine(wordSeparators, model, position);\n        if (wordNavigationType === 0 /* WordNavigationType.WordStart */) {\n            if (prevWordOnLine) {\n                column = prevWordOnLine.start + 1;\n            }\n            else {\n                if (column > 1) {\n                    column = 1;\n                }\n                else {\n                    lineNumber--;\n                    column = model.getLineMaxColumn(lineNumber);\n                }\n            }\n        }\n        else {\n            if (prevWordOnLine && column <= prevWordOnLine.end + 1) {\n                prevWordOnLine = WordOperations._findPreviousWordOnLine(wordSeparators, model, new Position(lineNumber, prevWordOnLine.start + 1));\n            }\n            if (prevWordOnLine) {\n                column = prevWordOnLine.end + 1;\n            }\n            else {\n                if (column > 1) {\n                    column = 1;\n                }\n                else {\n                    lineNumber--;\n                    column = model.getLineMaxColumn(lineNumber);\n                }\n            }\n        }\n        return new Range(lineNumber, column, position.lineNumber, position.column);\n    }\n    static deleteInsideWord(wordSeparators, model, selection) {\n        if (!selection.isEmpty()) {\n            return selection;\n        }\n        const position = new Position(selection.positionLineNumber, selection.positionColumn);\n        const r = this._deleteInsideWordWhitespace(model, position);\n        if (r) {\n            return r;\n        }\n        return this._deleteInsideWordDetermineDeleteRange(wordSeparators, model, position);\n    }\n    static _charAtIsWhitespace(str, index) {\n        const charCode = str.charCodeAt(index);\n        return (charCode === 32 /* CharCode.Space */ || charCode === 9 /* CharCode.Tab */);\n    }\n    static _deleteInsideWordWhitespace(model, position) {\n        const lineContent = model.getLineContent(position.lineNumber);\n        const lineContentLength = lineContent.length;\n        if (lineContentLength === 0) {\n            // empty line\n            return null;\n        }\n        let leftIndex = Math.max(position.column - 2, 0);\n        if (!this._charAtIsWhitespace(lineContent, leftIndex)) {\n            // touches a non-whitespace character to the left\n            return null;\n        }\n        let rightIndex = Math.min(position.column - 1, lineContentLength - 1);\n        if (!this._charAtIsWhitespace(lineContent, rightIndex)) {\n            // touches a non-whitespace character to the right\n            return null;\n        }\n        // walk over whitespace to the left\n        while (leftIndex > 0 && this._charAtIsWhitespace(lineContent, leftIndex - 1)) {\n            leftIndex--;\n        }\n        // walk over whitespace to the right\n        while (rightIndex + 1 < lineContentLength && this._charAtIsWhitespace(lineContent, rightIndex + 1)) {\n            rightIndex++;\n        }\n        return new Range(position.lineNumber, leftIndex + 1, position.lineNumber, rightIndex + 2);\n    }\n    static _deleteInsideWordDetermineDeleteRange(wordSeparators, model, position) {\n        const lineContent = model.getLineContent(position.lineNumber);\n        const lineLength = lineContent.length;\n        if (lineLength === 0) {\n            // empty line\n            if (position.lineNumber > 1) {\n                return new Range(position.lineNumber - 1, model.getLineMaxColumn(position.lineNumber - 1), position.lineNumber, 1);\n            }\n            else {\n                if (position.lineNumber < model.getLineCount()) {\n                    return new Range(position.lineNumber, 1, position.lineNumber + 1, 1);\n                }\n                else {\n                    // empty model\n                    return new Range(position.lineNumber, 1, position.lineNumber, 1);\n                }\n            }\n        }\n        const touchesWord = (word) => {\n            return (word.start + 1 <= position.column && position.column <= word.end + 1);\n        };\n        const createRangeWithPosition = (startColumn, endColumn) => {\n            startColumn = Math.min(startColumn, position.column);\n            endColumn = Math.max(endColumn, position.column);\n            return new Range(position.lineNumber, startColumn, position.lineNumber, endColumn);\n        };\n        const deleteWordAndAdjacentWhitespace = (word) => {\n            let startColumn = word.start + 1;\n            let endColumn = word.end + 1;\n            let expandedToTheRight = false;\n            while (endColumn - 1 < lineLength && this._charAtIsWhitespace(lineContent, endColumn - 1)) {\n                expandedToTheRight = true;\n                endColumn++;\n            }\n            if (!expandedToTheRight) {\n                while (startColumn > 1 && this._charAtIsWhitespace(lineContent, startColumn - 2)) {\n                    startColumn--;\n                }\n            }\n            return createRangeWithPosition(startColumn, endColumn);\n        };\n        const prevWordOnLine = WordOperations._findPreviousWordOnLine(wordSeparators, model, position);\n        if (prevWordOnLine && touchesWord(prevWordOnLine)) {\n            return deleteWordAndAdjacentWhitespace(prevWordOnLine);\n        }\n        const nextWordOnLine = WordOperations._findNextWordOnLine(wordSeparators, model, position);\n        if (nextWordOnLine && touchesWord(nextWordOnLine)) {\n            return deleteWordAndAdjacentWhitespace(nextWordOnLine);\n        }\n        if (prevWordOnLine && nextWordOnLine) {\n            return createRangeWithPosition(prevWordOnLine.end + 1, nextWordOnLine.start + 1);\n        }\n        if (prevWordOnLine) {\n            return createRangeWithPosition(prevWordOnLine.start + 1, prevWordOnLine.end + 1);\n        }\n        if (nextWordOnLine) {\n            return createRangeWithPosition(nextWordOnLine.start + 1, nextWordOnLine.end + 1);\n        }\n        return createRangeWithPosition(1, lineLength + 1);\n    }\n    static _deleteWordPartLeft(model, selection) {\n        if (!selection.isEmpty()) {\n            return selection;\n        }\n        const pos = selection.getPosition();\n        const toPosition = WordOperations._moveWordPartLeft(model, pos);\n        return new Range(pos.lineNumber, pos.column, toPosition.lineNumber, toPosition.column);\n    }\n    static _findFirstNonWhitespaceChar(str, startIndex) {\n        const len = str.length;\n        for (let chIndex = startIndex; chIndex < len; chIndex++) {\n            const ch = str.charAt(chIndex);\n            if (ch !== ' ' && ch !== '\\t') {\n                return chIndex;\n            }\n        }\n        return len;\n    }\n    static _deleteWordRightWhitespace(model, position) {\n        const lineContent = model.getLineContent(position.lineNumber);\n        const startIndex = position.column - 1;\n        const firstNonWhitespace = this._findFirstNonWhitespaceChar(lineContent, startIndex);\n        if (startIndex + 1 < firstNonWhitespace) {\n            // bingo\n            return new Range(position.lineNumber, position.column, position.lineNumber, firstNonWhitespace + 1);\n        }\n        return null;\n    }\n    static deleteWordRight(ctx, wordNavigationType) {\n        const wordSeparators = ctx.wordSeparators;\n        const model = ctx.model;\n        const selection = ctx.selection;\n        const whitespaceHeuristics = ctx.whitespaceHeuristics;\n        if (!selection.isEmpty()) {\n            return selection;\n        }\n        const position = new Position(selection.positionLineNumber, selection.positionColumn);\n        let lineNumber = position.lineNumber;\n        let column = position.column;\n        const lineCount = model.getLineCount();\n        const maxColumn = model.getLineMaxColumn(lineNumber);\n        if (lineNumber === lineCount && column === maxColumn) {\n            // Ignore deleting at end of file\n            return null;\n        }\n        if (whitespaceHeuristics) {\n            const r = this._deleteWordRightWhitespace(model, position);\n            if (r) {\n                return r;\n            }\n        }\n        let nextWordOnLine = WordOperations._findNextWordOnLine(wordSeparators, model, position);\n        if (wordNavigationType === 2 /* WordNavigationType.WordEnd */) {\n            if (nextWordOnLine) {\n                column = nextWordOnLine.end + 1;\n            }\n            else {\n                if (column < maxColumn || lineNumber === lineCount) {\n                    column = maxColumn;\n                }\n                else {\n                    lineNumber++;\n                    nextWordOnLine = WordOperations._findNextWordOnLine(wordSeparators, model, new Position(lineNumber, 1));\n                    if (nextWordOnLine) {\n                        column = nextWordOnLine.start + 1;\n                    }\n                    else {\n                        column = model.getLineMaxColumn(lineNumber);\n                    }\n                }\n            }\n        }\n        else {\n            if (nextWordOnLine && column >= nextWordOnLine.start + 1) {\n                nextWordOnLine = WordOperations._findNextWordOnLine(wordSeparators, model, new Position(lineNumber, nextWordOnLine.end + 1));\n            }\n            if (nextWordOnLine) {\n                column = nextWordOnLine.start + 1;\n            }\n            else {\n                if (column < maxColumn || lineNumber === lineCount) {\n                    column = maxColumn;\n                }\n                else {\n                    lineNumber++;\n                    nextWordOnLine = WordOperations._findNextWordOnLine(wordSeparators, model, new Position(lineNumber, 1));\n                    if (nextWordOnLine) {\n                        column = nextWordOnLine.start + 1;\n                    }\n                    else {\n                        column = model.getLineMaxColumn(lineNumber);\n                    }\n                }\n            }\n        }\n        return new Range(lineNumber, column, position.lineNumber, position.column);\n    }\n    static _deleteWordPartRight(model, selection) {\n        if (!selection.isEmpty()) {\n            return selection;\n        }\n        const pos = selection.getPosition();\n        const toPosition = WordOperations._moveWordPartRight(model, pos);\n        return new Range(pos.lineNumber, pos.column, toPosition.lineNumber, toPosition.column);\n    }\n    static _createWordAtPosition(model, lineNumber, word) {\n        const range = new Range(lineNumber, word.start + 1, lineNumber, word.end + 1);\n        return {\n            word: model.getValueInRange(range),\n            startColumn: range.startColumn,\n            endColumn: range.endColumn\n        };\n    }\n    static getWordAtPosition(model, _wordSeparators, _intlSegmenterLocales, position) {\n        const wordSeparators = getMapForWordSeparators(_wordSeparators, _intlSegmenterLocales);\n        const prevWord = WordOperations._findPreviousWordOnLine(wordSeparators, model, position);\n        if (prevWord && prevWord.wordType === 1 /* WordType.Regular */ && prevWord.start <= position.column - 1 && position.column - 1 <= prevWord.end) {\n            return WordOperations._createWordAtPosition(model, position.lineNumber, prevWord);\n        }\n        const nextWord = WordOperations._findNextWordOnLine(wordSeparators, model, position);\n        if (nextWord && nextWord.wordType === 1 /* WordType.Regular */ && nextWord.start <= position.column - 1 && position.column - 1 <= nextWord.end) {\n            return WordOperations._createWordAtPosition(model, position.lineNumber, nextWord);\n        }\n        return null;\n    }\n    static word(config, model, cursor, inSelectionMode, position) {\n        const wordSeparators = getMapForWordSeparators(config.wordSeparators, config.wordSegmenterLocales);\n        const prevWord = WordOperations._findPreviousWordOnLine(wordSeparators, model, position);\n        const nextWord = WordOperations._findNextWordOnLine(wordSeparators, model, position);\n        if (!inSelectionMode) {\n            // Entering word selection for the first time\n            let startColumn;\n            let endColumn;\n            if (prevWord && prevWord.wordType === 1 /* WordType.Regular */ && prevWord.start <= position.column - 1 && position.column - 1 <= prevWord.end) {\n                // isTouchingPrevWord\n                startColumn = prevWord.start + 1;\n                endColumn = prevWord.end + 1;\n            }\n            else if (nextWord && nextWord.wordType === 1 /* WordType.Regular */ && nextWord.start <= position.column - 1 && position.column - 1 <= nextWord.end) {\n                // isTouchingNextWord\n                startColumn = nextWord.start + 1;\n                endColumn = nextWord.end + 1;\n            }\n            else {\n                if (prevWord) {\n                    startColumn = prevWord.end + 1;\n                }\n                else {\n                    startColumn = 1;\n                }\n                if (nextWord) {\n                    endColumn = nextWord.start + 1;\n                }\n                else {\n                    endColumn = model.getLineMaxColumn(position.lineNumber);\n                }\n            }\n            return new SingleCursorState(new Range(position.lineNumber, startColumn, position.lineNumber, endColumn), 1 /* SelectionStartKind.Word */, 0, new Position(position.lineNumber, endColumn), 0);\n        }\n        let startColumn;\n        let endColumn;\n        if (prevWord && prevWord.wordType === 1 /* WordType.Regular */ && prevWord.start < position.column - 1 && position.column - 1 < prevWord.end) {\n            // isInsidePrevWord\n            startColumn = prevWord.start + 1;\n            endColumn = prevWord.end + 1;\n        }\n        else if (nextWord && nextWord.wordType === 1 /* WordType.Regular */ && nextWord.start < position.column - 1 && position.column - 1 < nextWord.end) {\n            // isInsideNextWord\n            startColumn = nextWord.start + 1;\n            endColumn = nextWord.end + 1;\n        }\n        else {\n            startColumn = position.column;\n            endColumn = position.column;\n        }\n        const lineNumber = position.lineNumber;\n        let column;\n        if (cursor.selectionStart.containsPosition(position)) {\n            column = cursor.selectionStart.endColumn;\n        }\n        else if (position.isBeforeOrEqual(cursor.selectionStart.getStartPosition())) {\n            column = startColumn;\n            const possiblePosition = new Position(lineNumber, column);\n            if (cursor.selectionStart.containsPosition(possiblePosition)) {\n                column = cursor.selectionStart.endColumn;\n            }\n        }\n        else {\n            column = endColumn;\n            const possiblePosition = new Position(lineNumber, column);\n            if (cursor.selectionStart.containsPosition(possiblePosition)) {\n                column = cursor.selectionStart.startColumn;\n            }\n        }\n        return cursor.move(true, lineNumber, column, 0);\n    }\n}\nexport class WordPartOperations extends WordOperations {\n    static deleteWordPartLeft(ctx) {\n        const candidates = enforceDefined([\n            WordOperations.deleteWordLeft(ctx, 0 /* WordNavigationType.WordStart */),\n            WordOperations.deleteWordLeft(ctx, 2 /* WordNavigationType.WordEnd */),\n            WordOperations._deleteWordPartLeft(ctx.model, ctx.selection)\n        ]);\n        candidates.sort(Range.compareRangesUsingEnds);\n        return candidates[2];\n    }\n    static deleteWordPartRight(ctx) {\n        const candidates = enforceDefined([\n            WordOperations.deleteWordRight(ctx, 0 /* WordNavigationType.WordStart */),\n            WordOperations.deleteWordRight(ctx, 2 /* WordNavigationType.WordEnd */),\n            WordOperations._deleteWordPartRight(ctx.model, ctx.selection)\n        ]);\n        candidates.sort(Range.compareRangesUsingStarts);\n        return candidates[0];\n    }\n    static moveWordPartLeft(wordSeparators, model, position) {\n        const candidates = enforceDefined([\n            WordOperations.moveWordLeft(wordSeparators, model, position, 0 /* WordNavigationType.WordStart */),\n            WordOperations.moveWordLeft(wordSeparators, model, position, 2 /* WordNavigationType.WordEnd */),\n            WordOperations._moveWordPartLeft(model, position)\n        ]);\n        candidates.sort(Position.compare);\n        return candidates[2];\n    }\n    static moveWordPartRight(wordSeparators, model, position) {\n        const candidates = enforceDefined([\n            WordOperations.moveWordRight(wordSeparators, model, position, 0 /* WordNavigationType.WordStart */),\n            WordOperations.moveWordRight(wordSeparators, model, position, 2 /* WordNavigationType.WordEnd */),\n            WordOperations._moveWordPartRight(model, position)\n        ]);\n        candidates.sort(Position.compare);\n        return candidates[0];\n    }\n}\nfunction enforceDefined(arr) {\n    return arr.filter(el => Boolean(el));\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/cursor/oneCursor.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { CursorState, SingleCursorState } from '../cursorCommon.js';\nimport { Position } from '../core/position.js';\nimport { Range } from '../core/range.js';\nimport { Selection } from '../core/selection.js';\n/**\n * Represents a single cursor.\n*/\nexport class Cursor {\n    constructor(context) {\n        this._selTrackedRange = null;\n        this._trackSelection = true;\n        this._setState(context, new SingleCursorState(new Range(1, 1, 1, 1), 0 /* SelectionStartKind.Simple */, 0, new Position(1, 1), 0), new SingleCursorState(new Range(1, 1, 1, 1), 0 /* SelectionStartKind.Simple */, 0, new Position(1, 1), 0));\n    }\n    dispose(context) {\n        this._removeTrackedRange(context);\n    }\n    startTrackingSelection(context) {\n        this._trackSelection = true;\n        this._updateTrackedRange(context);\n    }\n    stopTrackingSelection(context) {\n        this._trackSelection = false;\n        this._removeTrackedRange(context);\n    }\n    _updateTrackedRange(context) {\n        if (!this._trackSelection) {\n            // don't track the selection\n            return;\n        }\n        this._selTrackedRange = context.model._setTrackedRange(this._selTrackedRange, this.modelState.selection, 0 /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */);\n    }\n    _removeTrackedRange(context) {\n        this._selTrackedRange = context.model._setTrackedRange(this._selTrackedRange, null, 0 /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */);\n    }\n    asCursorState() {\n        return new CursorState(this.modelState, this.viewState);\n    }\n    readSelectionFromMarkers(context) {\n        const range = context.model._getTrackedRange(this._selTrackedRange);\n        if (this.modelState.selection.isEmpty() && !range.isEmpty()) {\n            // Avoid selecting text when recovering from markers\n            return Selection.fromRange(range.collapseToEnd(), this.modelState.selection.getDirection());\n        }\n        return Selection.fromRange(range, this.modelState.selection.getDirection());\n    }\n    ensureValidState(context) {\n        this._setState(context, this.modelState, this.viewState);\n    }\n    setState(context, modelState, viewState) {\n        this._setState(context, modelState, viewState);\n    }\n    static _validatePositionWithCache(viewModel, position, cacheInput, cacheOutput) {\n        if (position.equals(cacheInput)) {\n            return cacheOutput;\n        }\n        return viewModel.normalizePosition(position, 2 /* PositionAffinity.None */);\n    }\n    static _validateViewState(viewModel, viewState) {\n        const position = viewState.position;\n        const sStartPosition = viewState.selectionStart.getStartPosition();\n        const sEndPosition = viewState.selectionStart.getEndPosition();\n        const validPosition = viewModel.normalizePosition(position, 2 /* PositionAffinity.None */);\n        const validSStartPosition = this._validatePositionWithCache(viewModel, sStartPosition, position, validPosition);\n        const validSEndPosition = this._validatePositionWithCache(viewModel, sEndPosition, sStartPosition, validSStartPosition);\n        if (position.equals(validPosition) && sStartPosition.equals(validSStartPosition) && sEndPosition.equals(validSEndPosition)) {\n            // fast path: the state is valid\n            return viewState;\n        }\n        return new SingleCursorState(Range.fromPositions(validSStartPosition, validSEndPosition), viewState.selectionStartKind, viewState.selectionStartLeftoverVisibleColumns + sStartPosition.column - validSStartPosition.column, validPosition, viewState.leftoverVisibleColumns + position.column - validPosition.column);\n    }\n    _setState(context, modelState, viewState) {\n        if (viewState) {\n            viewState = Cursor._validateViewState(context.viewModel, viewState);\n        }\n        if (!modelState) {\n            if (!viewState) {\n                return;\n            }\n            // We only have the view state => compute the model state\n            const selectionStart = context.model.validateRange(context.coordinatesConverter.convertViewRangeToModelRange(viewState.selectionStart));\n            const position = context.model.validatePosition(context.coordinatesConverter.convertViewPositionToModelPosition(viewState.position));\n            modelState = new SingleCursorState(selectionStart, viewState.selectionStartKind, viewState.selectionStartLeftoverVisibleColumns, position, viewState.leftoverVisibleColumns);\n        }\n        else {\n            // Validate new model state\n            const selectionStart = context.model.validateRange(modelState.selectionStart);\n            const selectionStartLeftoverVisibleColumns = modelState.selectionStart.equalsRange(selectionStart) ? modelState.selectionStartLeftoverVisibleColumns : 0;\n            const position = context.model.validatePosition(modelState.position);\n            const leftoverVisibleColumns = modelState.position.equals(position) ? modelState.leftoverVisibleColumns : 0;\n            modelState = new SingleCursorState(selectionStart, modelState.selectionStartKind, selectionStartLeftoverVisibleColumns, position, leftoverVisibleColumns);\n        }\n        if (!viewState) {\n            // We only have the model state => compute the view state\n            const viewSelectionStart1 = context.coordinatesConverter.convertModelPositionToViewPosition(new Position(modelState.selectionStart.startLineNumber, modelState.selectionStart.startColumn));\n            const viewSelectionStart2 = context.coordinatesConverter.convertModelPositionToViewPosition(new Position(modelState.selectionStart.endLineNumber, modelState.selectionStart.endColumn));\n            const viewSelectionStart = new Range(viewSelectionStart1.lineNumber, viewSelectionStart1.column, viewSelectionStart2.lineNumber, viewSelectionStart2.column);\n            const viewPosition = context.coordinatesConverter.convertModelPositionToViewPosition(modelState.position);\n            viewState = new SingleCursorState(viewSelectionStart, modelState.selectionStartKind, modelState.selectionStartLeftoverVisibleColumns, viewPosition, modelState.leftoverVisibleColumns);\n        }\n        else {\n            // Validate new view state\n            const viewSelectionStart = context.coordinatesConverter.validateViewRange(viewState.selectionStart, modelState.selectionStart);\n            const viewPosition = context.coordinatesConverter.validateViewPosition(viewState.position, modelState.position);\n            viewState = new SingleCursorState(viewSelectionStart, modelState.selectionStartKind, modelState.selectionStartLeftoverVisibleColumns, viewPosition, modelState.leftoverVisibleColumns);\n        }\n        this.modelState = modelState;\n        this.viewState = viewState;\n        this._updateTrackedRange(context);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/cursorCommon.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Position } from './core/position.js';\nimport { Range } from './core/range.js';\nimport { Selection } from './core/selection.js';\nimport { createScopedLineTokens } from './languages/supports.js';\nimport { CursorColumns } from './core/cursorColumns.js';\nimport { normalizeIndentation } from './core/indentation.js';\nconst autoCloseAlways = () => true;\nconst autoCloseNever = () => false;\nconst autoCloseBeforeWhitespace = (chr) => (chr === ' ' || chr === '\\t');\nexport class CursorConfiguration {\n    static shouldRecreate(e) {\n        return (e.hasChanged(145 /* EditorOption.layoutInfo */)\n            || e.hasChanged(131 /* EditorOption.wordSeparators */)\n            || e.hasChanged(37 /* EditorOption.emptySelectionClipboard */)\n            || e.hasChanged(77 /* EditorOption.multiCursorMergeOverlapping */)\n            || e.hasChanged(79 /* EditorOption.multiCursorPaste */)\n            || e.hasChanged(80 /* EditorOption.multiCursorLimit */)\n            || e.hasChanged(6 /* EditorOption.autoClosingBrackets */)\n            || e.hasChanged(7 /* EditorOption.autoClosingComments */)\n            || e.hasChanged(11 /* EditorOption.autoClosingQuotes */)\n            || e.hasChanged(9 /* EditorOption.autoClosingDelete */)\n            || e.hasChanged(10 /* EditorOption.autoClosingOvertype */)\n            || e.hasChanged(14 /* EditorOption.autoSurround */)\n            || e.hasChanged(128 /* EditorOption.useTabStops */)\n            || e.hasChanged(50 /* EditorOption.fontInfo */)\n            || e.hasChanged(91 /* EditorOption.readOnly */)\n            || e.hasChanged(130 /* EditorOption.wordSegmenterLocales */));\n    }\n    constructor(languageId, modelOptions, configuration, languageConfigurationService) {\n        var _a;\n        this.languageConfigurationService = languageConfigurationService;\n        this._cursorMoveConfigurationBrand = undefined;\n        this._languageId = languageId;\n        const options = configuration.options;\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        const fontInfo = options.get(50 /* EditorOption.fontInfo */);\n        this.readOnly = options.get(91 /* EditorOption.readOnly */);\n        this.tabSize = modelOptions.tabSize;\n        this.indentSize = modelOptions.indentSize;\n        this.insertSpaces = modelOptions.insertSpaces;\n        this.stickyTabStops = options.get(116 /* EditorOption.stickyTabStops */);\n        this.lineHeight = fontInfo.lineHeight;\n        this.typicalHalfwidthCharacterWidth = fontInfo.typicalHalfwidthCharacterWidth;\n        this.pageSize = Math.max(1, Math.floor(layoutInfo.height / this.lineHeight) - 2);\n        this.useTabStops = options.get(128 /* EditorOption.useTabStops */);\n        this.wordSeparators = options.get(131 /* EditorOption.wordSeparators */);\n        this.emptySelectionClipboard = options.get(37 /* EditorOption.emptySelectionClipboard */);\n        this.copyWithSyntaxHighlighting = options.get(25 /* EditorOption.copyWithSyntaxHighlighting */);\n        this.multiCursorMergeOverlapping = options.get(77 /* EditorOption.multiCursorMergeOverlapping */);\n        this.multiCursorPaste = options.get(79 /* EditorOption.multiCursorPaste */);\n        this.multiCursorLimit = options.get(80 /* EditorOption.multiCursorLimit */);\n        this.autoClosingBrackets = options.get(6 /* EditorOption.autoClosingBrackets */);\n        this.autoClosingComments = options.get(7 /* EditorOption.autoClosingComments */);\n        this.autoClosingQuotes = options.get(11 /* EditorOption.autoClosingQuotes */);\n        this.autoClosingDelete = options.get(9 /* EditorOption.autoClosingDelete */);\n        this.autoClosingOvertype = options.get(10 /* EditorOption.autoClosingOvertype */);\n        this.autoSurround = options.get(14 /* EditorOption.autoSurround */);\n        this.autoIndent = options.get(12 /* EditorOption.autoIndent */);\n        this.wordSegmenterLocales = options.get(130 /* EditorOption.wordSegmenterLocales */);\n        this.surroundingPairs = {};\n        this._electricChars = null;\n        this.shouldAutoCloseBefore = {\n            quote: this._getShouldAutoClose(languageId, this.autoClosingQuotes, true),\n            comment: this._getShouldAutoClose(languageId, this.autoClosingComments, false),\n            bracket: this._getShouldAutoClose(languageId, this.autoClosingBrackets, false),\n        };\n        this.autoClosingPairs = this.languageConfigurationService.getLanguageConfiguration(languageId).getAutoClosingPairs();\n        const surroundingPairs = this.languageConfigurationService.getLanguageConfiguration(languageId).getSurroundingPairs();\n        if (surroundingPairs) {\n            for (const pair of surroundingPairs) {\n                this.surroundingPairs[pair.open] = pair.close;\n            }\n        }\n        const commentsConfiguration = this.languageConfigurationService.getLanguageConfiguration(languageId).comments;\n        this.blockCommentStartToken = (_a = commentsConfiguration === null || commentsConfiguration === void 0 ? void 0 : commentsConfiguration.blockCommentStartToken) !== null && _a !== void 0 ? _a : null;\n    }\n    get electricChars() {\n        var _a;\n        if (!this._electricChars) {\n            this._electricChars = {};\n            const electricChars = (_a = this.languageConfigurationService.getLanguageConfiguration(this._languageId).electricCharacter) === null || _a === void 0 ? void 0 : _a.getElectricCharacters();\n            if (electricChars) {\n                for (const char of electricChars) {\n                    this._electricChars[char] = true;\n                }\n            }\n        }\n        return this._electricChars;\n    }\n    /**\n     * Should return opening bracket type to match indentation with\n     */\n    onElectricCharacter(character, context, column) {\n        const scopedLineTokens = createScopedLineTokens(context, column - 1);\n        const electricCharacterSupport = this.languageConfigurationService.getLanguageConfiguration(scopedLineTokens.languageId).electricCharacter;\n        if (!electricCharacterSupport) {\n            return null;\n        }\n        return electricCharacterSupport.onElectricCharacter(character, scopedLineTokens, column - scopedLineTokens.firstCharOffset);\n    }\n    normalizeIndentation(str) {\n        return normalizeIndentation(str, this.indentSize, this.insertSpaces);\n    }\n    _getShouldAutoClose(languageId, autoCloseConfig, forQuotes) {\n        switch (autoCloseConfig) {\n            case 'beforeWhitespace':\n                return autoCloseBeforeWhitespace;\n            case 'languageDefined':\n                return this._getLanguageDefinedShouldAutoClose(languageId, forQuotes);\n            case 'always':\n                return autoCloseAlways;\n            case 'never':\n                return autoCloseNever;\n        }\n    }\n    _getLanguageDefinedShouldAutoClose(languageId, forQuotes) {\n        const autoCloseBeforeSet = this.languageConfigurationService.getLanguageConfiguration(languageId).getAutoCloseBeforeSet(forQuotes);\n        return c => autoCloseBeforeSet.indexOf(c) !== -1;\n    }\n    /**\n     * Returns a visible column from a column.\n     * @see {@link CursorColumns}\n     */\n    visibleColumnFromColumn(model, position) {\n        return CursorColumns.visibleColumnFromColumn(model.getLineContent(position.lineNumber), position.column, this.tabSize);\n    }\n    /**\n     * Returns a visible column from a column.\n     * @see {@link CursorColumns}\n     */\n    columnFromVisibleColumn(model, lineNumber, visibleColumn) {\n        const result = CursorColumns.columnFromVisibleColumn(model.getLineContent(lineNumber), visibleColumn, this.tabSize);\n        const minColumn = model.getLineMinColumn(lineNumber);\n        if (result < minColumn) {\n            return minColumn;\n        }\n        const maxColumn = model.getLineMaxColumn(lineNumber);\n        if (result > maxColumn) {\n            return maxColumn;\n        }\n        return result;\n    }\n}\nexport class CursorState {\n    static fromModelState(modelState) {\n        return new PartialModelCursorState(modelState);\n    }\n    static fromViewState(viewState) {\n        return new PartialViewCursorState(viewState);\n    }\n    static fromModelSelection(modelSelection) {\n        const selection = Selection.liftSelection(modelSelection);\n        const modelState = new SingleCursorState(Range.fromPositions(selection.getSelectionStart()), 0 /* SelectionStartKind.Simple */, 0, selection.getPosition(), 0);\n        return CursorState.fromModelState(modelState);\n    }\n    static fromModelSelections(modelSelections) {\n        const states = [];\n        for (let i = 0, len = modelSelections.length; i < len; i++) {\n            states[i] = this.fromModelSelection(modelSelections[i]);\n        }\n        return states;\n    }\n    constructor(modelState, viewState) {\n        this._cursorStateBrand = undefined;\n        this.modelState = modelState;\n        this.viewState = viewState;\n    }\n    equals(other) {\n        return (this.viewState.equals(other.viewState) && this.modelState.equals(other.modelState));\n    }\n}\nexport class PartialModelCursorState {\n    constructor(modelState) {\n        this.modelState = modelState;\n        this.viewState = null;\n    }\n}\nexport class PartialViewCursorState {\n    constructor(viewState) {\n        this.modelState = null;\n        this.viewState = viewState;\n    }\n}\n/**\n * Represents the cursor state on either the model or on the view model.\n */\nexport class SingleCursorState {\n    constructor(selectionStart, selectionStartKind, selectionStartLeftoverVisibleColumns, position, leftoverVisibleColumns) {\n        this.selectionStart = selectionStart;\n        this.selectionStartKind = selectionStartKind;\n        this.selectionStartLeftoverVisibleColumns = selectionStartLeftoverVisibleColumns;\n        this.position = position;\n        this.leftoverVisibleColumns = leftoverVisibleColumns;\n        this._singleCursorStateBrand = undefined;\n        this.selection = SingleCursorState._computeSelection(this.selectionStart, this.position);\n    }\n    equals(other) {\n        return (this.selectionStartLeftoverVisibleColumns === other.selectionStartLeftoverVisibleColumns\n            && this.leftoverVisibleColumns === other.leftoverVisibleColumns\n            && this.selectionStartKind === other.selectionStartKind\n            && this.position.equals(other.position)\n            && this.selectionStart.equalsRange(other.selectionStart));\n    }\n    hasSelection() {\n        return (!this.selection.isEmpty() || !this.selectionStart.isEmpty());\n    }\n    move(inSelectionMode, lineNumber, column, leftoverVisibleColumns) {\n        if (inSelectionMode) {\n            // move just position\n            return new SingleCursorState(this.selectionStart, this.selectionStartKind, this.selectionStartLeftoverVisibleColumns, new Position(lineNumber, column), leftoverVisibleColumns);\n        }\n        else {\n            // move everything\n            return new SingleCursorState(new Range(lineNumber, column, lineNumber, column), 0 /* SelectionStartKind.Simple */, leftoverVisibleColumns, new Position(lineNumber, column), leftoverVisibleColumns);\n        }\n    }\n    static _computeSelection(selectionStart, position) {\n        if (selectionStart.isEmpty() || !position.isBeforeOrEqual(selectionStart.getStartPosition())) {\n            return Selection.fromPositions(selectionStart.getStartPosition(), position);\n        }\n        else {\n            return Selection.fromPositions(selectionStart.getEndPosition(), position);\n        }\n    }\n}\nexport class EditOperationResult {\n    constructor(type, commands, opts) {\n        this._editOperationResultBrand = undefined;\n        this.type = type;\n        this.commands = commands;\n        this.shouldPushStackElementBefore = opts.shouldPushStackElementBefore;\n        this.shouldPushStackElementAfter = opts.shouldPushStackElementAfter;\n    }\n}\nexport function isQuote(ch) {\n    return (ch === '\\'' || ch === '\"' || ch === '`');\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/cursorEvents.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport {};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/diff/defaultLinesDiffComputer/algorithms/diffAlgorithm.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { forEachAdjacent } from '../../../../../base/common/arrays.js';\nimport { BugIndicatingError } from '../../../../../base/common/errors.js';\nimport { OffsetRange } from '../../../core/offsetRange.js';\nexport class DiffAlgorithmResult {\n    static trivial(seq1, seq2) {\n        return new DiffAlgorithmResult([new SequenceDiff(OffsetRange.ofLength(seq1.length), OffsetRange.ofLength(seq2.length))], false);\n    }\n    static trivialTimedOut(seq1, seq2) {\n        return new DiffAlgorithmResult([new SequenceDiff(OffsetRange.ofLength(seq1.length), OffsetRange.ofLength(seq2.length))], true);\n    }\n    constructor(diffs, \n    /**\n     * Indicates if the time out was reached.\n     * In that case, the diffs might be an approximation and the user should be asked to rerun the diff with more time.\n     */\n    hitTimeout) {\n        this.diffs = diffs;\n        this.hitTimeout = hitTimeout;\n    }\n}\nexport class SequenceDiff {\n    static invert(sequenceDiffs, doc1Length) {\n        const result = [];\n        forEachAdjacent(sequenceDiffs, (a, b) => {\n            result.push(SequenceDiff.fromOffsetPairs(a ? a.getEndExclusives() : OffsetPair.zero, b ? b.getStarts() : new OffsetPair(doc1Length, (a ? a.seq2Range.endExclusive - a.seq1Range.endExclusive : 0) + doc1Length)));\n        });\n        return result;\n    }\n    static fromOffsetPairs(start, endExclusive) {\n        return new SequenceDiff(new OffsetRange(start.offset1, endExclusive.offset1), new OffsetRange(start.offset2, endExclusive.offset2));\n    }\n    constructor(seq1Range, seq2Range) {\n        this.seq1Range = seq1Range;\n        this.seq2Range = seq2Range;\n    }\n    swap() {\n        return new SequenceDiff(this.seq2Range, this.seq1Range);\n    }\n    toString() {\n        return `${this.seq1Range} <-> ${this.seq2Range}`;\n    }\n    join(other) {\n        return new SequenceDiff(this.seq1Range.join(other.seq1Range), this.seq2Range.join(other.seq2Range));\n    }\n    delta(offset) {\n        if (offset === 0) {\n            return this;\n        }\n        return new SequenceDiff(this.seq1Range.delta(offset), this.seq2Range.delta(offset));\n    }\n    deltaStart(offset) {\n        if (offset === 0) {\n            return this;\n        }\n        return new SequenceDiff(this.seq1Range.deltaStart(offset), this.seq2Range.deltaStart(offset));\n    }\n    deltaEnd(offset) {\n        if (offset === 0) {\n            return this;\n        }\n        return new SequenceDiff(this.seq1Range.deltaEnd(offset), this.seq2Range.deltaEnd(offset));\n    }\n    intersect(other) {\n        const i1 = this.seq1Range.intersect(other.seq1Range);\n        const i2 = this.seq2Range.intersect(other.seq2Range);\n        if (!i1 || !i2) {\n            return undefined;\n        }\n        return new SequenceDiff(i1, i2);\n    }\n    getStarts() {\n        return new OffsetPair(this.seq1Range.start, this.seq2Range.start);\n    }\n    getEndExclusives() {\n        return new OffsetPair(this.seq1Range.endExclusive, this.seq2Range.endExclusive);\n    }\n}\nexport class OffsetPair {\n    constructor(offset1, offset2) {\n        this.offset1 = offset1;\n        this.offset2 = offset2;\n    }\n    toString() {\n        return `${this.offset1} <-> ${this.offset2}`;\n    }\n    delta(offset) {\n        if (offset === 0) {\n            return this;\n        }\n        return new OffsetPair(this.offset1 + offset, this.offset2 + offset);\n    }\n    equals(other) {\n        return this.offset1 === other.offset1 && this.offset2 === other.offset2;\n    }\n}\nOffsetPair.zero = new OffsetPair(0, 0);\nOffsetPair.max = new OffsetPair(Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);\nexport class InfiniteTimeout {\n    isValid() {\n        return true;\n    }\n}\nInfiniteTimeout.instance = new InfiniteTimeout();\nexport class DateTimeout {\n    constructor(timeout) {\n        this.timeout = timeout;\n        this.startTime = Date.now();\n        this.valid = true;\n        if (timeout <= 0) {\n            throw new BugIndicatingError('timeout must be positive');\n        }\n    }\n    // Recommendation: Set a log-point `{this.disable()}` in the body\n    isValid() {\n        const valid = Date.now() - this.startTime < this.timeout;\n        if (!valid && this.valid) {\n            this.valid = false; // timeout reached\n            // eslint-disable-next-line no-debugger\n            debugger; // WARNING: Most likely debugging caused the timeout. Call `this.disable()` to continue without timing out.\n        }\n        return this.valid;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/diff/defaultLinesDiffComputer/algorithms/dynamicProgrammingDiffing.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { OffsetRange } from '../../../core/offsetRange.js';\nimport { SequenceDiff, InfiniteTimeout, DiffAlgorithmResult } from './diffAlgorithm.js';\nimport { Array2D } from '../utils.js';\n/**\n * A O(MN) diffing algorithm that supports a score function.\n * The algorithm can be improved by processing the 2d array diagonally.\n*/\nexport class DynamicProgrammingDiffing {\n    compute(sequence1, sequence2, timeout = InfiniteTimeout.instance, equalityScore) {\n        if (sequence1.length === 0 || sequence2.length === 0) {\n            return DiffAlgorithmResult.trivial(sequence1, sequence2);\n        }\n        /**\n         * lcsLengths.get(i, j): Length of the longest common subsequence of sequence1.substring(0, i + 1) and sequence2.substring(0, j + 1).\n         */\n        const lcsLengths = new Array2D(sequence1.length, sequence2.length);\n        const directions = new Array2D(sequence1.length, sequence2.length);\n        const lengths = new Array2D(sequence1.length, sequence2.length);\n        // ==== Initializing lcsLengths ====\n        for (let s1 = 0; s1 < sequence1.length; s1++) {\n            for (let s2 = 0; s2 < sequence2.length; s2++) {\n                if (!timeout.isValid()) {\n                    return DiffAlgorithmResult.trivialTimedOut(sequence1, sequence2);\n                }\n                const horizontalLen = s1 === 0 ? 0 : lcsLengths.get(s1 - 1, s2);\n                const verticalLen = s2 === 0 ? 0 : lcsLengths.get(s1, s2 - 1);\n                let extendedSeqScore;\n                if (sequence1.getElement(s1) === sequence2.getElement(s2)) {\n                    if (s1 === 0 || s2 === 0) {\n                        extendedSeqScore = 0;\n                    }\n                    else {\n                        extendedSeqScore = lcsLengths.get(s1 - 1, s2 - 1);\n                    }\n                    if (s1 > 0 && s2 > 0 && directions.get(s1 - 1, s2 - 1) === 3) {\n                        // Prefer consecutive diagonals\n                        extendedSeqScore += lengths.get(s1 - 1, s2 - 1);\n                    }\n                    extendedSeqScore += (equalityScore ? equalityScore(s1, s2) : 1);\n                }\n                else {\n                    extendedSeqScore = -1;\n                }\n                const newValue = Math.max(horizontalLen, verticalLen, extendedSeqScore);\n                if (newValue === extendedSeqScore) {\n                    // Prefer diagonals\n                    const prevLen = s1 > 0 && s2 > 0 ? lengths.get(s1 - 1, s2 - 1) : 0;\n                    lengths.set(s1, s2, prevLen + 1);\n                    directions.set(s1, s2, 3);\n                }\n                else if (newValue === horizontalLen) {\n                    lengths.set(s1, s2, 0);\n                    directions.set(s1, s2, 1);\n                }\n                else if (newValue === verticalLen) {\n                    lengths.set(s1, s2, 0);\n                    directions.set(s1, s2, 2);\n                }\n                lcsLengths.set(s1, s2, newValue);\n            }\n        }\n        // ==== Backtracking ====\n        const result = [];\n        let lastAligningPosS1 = sequence1.length;\n        let lastAligningPosS2 = sequence2.length;\n        function reportDecreasingAligningPositions(s1, s2) {\n            if (s1 + 1 !== lastAligningPosS1 || s2 + 1 !== lastAligningPosS2) {\n                result.push(new SequenceDiff(new OffsetRange(s1 + 1, lastAligningPosS1), new OffsetRange(s2 + 1, lastAligningPosS2)));\n            }\n            lastAligningPosS1 = s1;\n            lastAligningPosS2 = s2;\n        }\n        let s1 = sequence1.length - 1;\n        let s2 = sequence2.length - 1;\n        while (s1 >= 0 && s2 >= 0) {\n            if (directions.get(s1, s2) === 3) {\n                reportDecreasingAligningPositions(s1, s2);\n                s1--;\n                s2--;\n            }\n            else {\n                if (directions.get(s1, s2) === 1) {\n                    s1--;\n                }\n                else {\n                    s2--;\n                }\n            }\n        }\n        reportDecreasingAligningPositions(-1, -1);\n        result.reverse();\n        return new DiffAlgorithmResult(result, false);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/diff/defaultLinesDiffComputer/algorithms/myersDiffAlgorithm.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { OffsetRange } from '../../../core/offsetRange.js';\nimport { DiffAlgorithmResult, InfiniteTimeout, SequenceDiff } from './diffAlgorithm.js';\n/**\n * An O(ND) diff algorithm that has a quadratic space worst-case complexity.\n*/\nexport class MyersDiffAlgorithm {\n    compute(seq1, seq2, timeout = InfiniteTimeout.instance) {\n        // These are common special cases.\n        // The early return improves performance dramatically.\n        if (seq1.length === 0 || seq2.length === 0) {\n            return DiffAlgorithmResult.trivial(seq1, seq2);\n        }\n        const seqX = seq1; // Text on the x axis\n        const seqY = seq2; // Text on the y axis\n        function getXAfterSnake(x, y) {\n            while (x < seqX.length && y < seqY.length && seqX.getElement(x) === seqY.getElement(y)) {\n                x++;\n                y++;\n            }\n            return x;\n        }\n        let d = 0;\n        // V[k]: X value of longest d-line that ends in diagonal k.\n        // d-line: path from (0,0) to (x,y) that uses exactly d non-diagonals.\n        // diagonal k: Set of points (x,y) with x-y = k.\n        // k=1 -> (1,0),(2,1)\n        const V = new FastInt32Array();\n        V.set(0, getXAfterSnake(0, 0));\n        const paths = new FastArrayNegativeIndices();\n        paths.set(0, V.get(0) === 0 ? null : new SnakePath(null, 0, 0, V.get(0)));\n        let k = 0;\n        loop: while (true) {\n            d++;\n            if (!timeout.isValid()) {\n                return DiffAlgorithmResult.trivialTimedOut(seqX, seqY);\n            }\n            // The paper has `for (k = -d; k <= d; k += 2)`, but we can ignore diagonals that cannot influence the result.\n            const lowerBound = -Math.min(d, seqY.length + (d % 2));\n            const upperBound = Math.min(d, seqX.length + (d % 2));\n            for (k = lowerBound; k <= upperBound; k += 2) {\n                let step = 0;\n                // We can use the X values of (d-1)-lines to compute X value of the longest d-lines.\n                const maxXofDLineTop = k === upperBound ? -1 : V.get(k + 1); // We take a vertical non-diagonal (add a symbol in seqX)\n                const maxXofDLineLeft = k === lowerBound ? -1 : V.get(k - 1) + 1; // We take a horizontal non-diagonal (+1 x) (delete a symbol in seqX)\n                step++;\n                const x = Math.min(Math.max(maxXofDLineTop, maxXofDLineLeft), seqX.length);\n                const y = x - k;\n                step++;\n                if (x > seqX.length || y > seqY.length) {\n                    // This diagonal is irrelevant for the result.\n                    // TODO: Don't pay the cost for this in the next iteration.\n                    continue;\n                }\n                const newMaxX = getXAfterSnake(x, y);\n                V.set(k, newMaxX);\n                const lastPath = x === maxXofDLineTop ? paths.get(k + 1) : paths.get(k - 1);\n                paths.set(k, newMaxX !== x ? new SnakePath(lastPath, x, y, newMaxX - x) : lastPath);\n                if (V.get(k) === seqX.length && V.get(k) - k === seqY.length) {\n                    break loop;\n                }\n            }\n        }\n        let path = paths.get(k);\n        const result = [];\n        let lastAligningPosS1 = seqX.length;\n        let lastAligningPosS2 = seqY.length;\n        while (true) {\n            const endX = path ? path.x + path.length : 0;\n            const endY = path ? path.y + path.length : 0;\n            if (endX !== lastAligningPosS1 || endY !== lastAligningPosS2) {\n                result.push(new SequenceDiff(new OffsetRange(endX, lastAligningPosS1), new OffsetRange(endY, lastAligningPosS2)));\n            }\n            if (!path) {\n                break;\n            }\n            lastAligningPosS1 = path.x;\n            lastAligningPosS2 = path.y;\n            path = path.prev;\n        }\n        result.reverse();\n        return new DiffAlgorithmResult(result, false);\n    }\n}\nclass SnakePath {\n    constructor(prev, x, y, length) {\n        this.prev = prev;\n        this.x = x;\n        this.y = y;\n        this.length = length;\n    }\n}\n/**\n * An array that supports fast negative indices.\n*/\nclass FastInt32Array {\n    constructor() {\n        this.positiveArr = new Int32Array(10);\n        this.negativeArr = new Int32Array(10);\n    }\n    get(idx) {\n        if (idx < 0) {\n            idx = -idx - 1;\n            return this.negativeArr[idx];\n        }\n        else {\n            return this.positiveArr[idx];\n        }\n    }\n    set(idx, value) {\n        if (idx < 0) {\n            idx = -idx - 1;\n            if (idx >= this.negativeArr.length) {\n                const arr = this.negativeArr;\n                this.negativeArr = new Int32Array(arr.length * 2);\n                this.negativeArr.set(arr);\n            }\n            this.negativeArr[idx] = value;\n        }\n        else {\n            if (idx >= this.positiveArr.length) {\n                const arr = this.positiveArr;\n                this.positiveArr = new Int32Array(arr.length * 2);\n                this.positiveArr.set(arr);\n            }\n            this.positiveArr[idx] = value;\n        }\n    }\n}\n/**\n * An array that supports fast negative indices.\n*/\nclass FastArrayNegativeIndices {\n    constructor() {\n        this.positiveArr = [];\n        this.negativeArr = [];\n    }\n    get(idx) {\n        if (idx < 0) {\n            idx = -idx - 1;\n            return this.negativeArr[idx];\n        }\n        else {\n            return this.positiveArr[idx];\n        }\n    }\n    set(idx, value) {\n        if (idx < 0) {\n            idx = -idx - 1;\n            this.negativeArr[idx] = value;\n        }\n        else {\n            this.positiveArr[idx] = value;\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/diff/defaultLinesDiffComputer/computeMovedLines.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { SequenceDiff } from './algorithms/diffAlgorithm.js';\nimport { LineRangeMapping } from '../rangeMapping.js';\nimport { pushMany, compareBy, numberComparator, reverseOrder } from '../../../../base/common/arrays.js';\nimport { MonotonousArray, findLastMonotonous } from '../../../../base/common/arraysFind.js';\nimport { SetMap } from '../../../../base/common/map.js';\nimport { LineRange, LineRangeSet } from '../../core/lineRange.js';\nimport { OffsetRange } from '../../core/offsetRange.js';\nimport { LinesSliceCharSequence } from './linesSliceCharSequence.js';\nimport { LineRangeFragment, isSpace } from './utils.js';\nimport { MyersDiffAlgorithm } from './algorithms/myersDiffAlgorithm.js';\nexport function computeMovedLines(changes, originalLines, modifiedLines, hashedOriginalLines, hashedModifiedLines, timeout) {\n    let { moves, excludedChanges } = computeMovesFromSimpleDeletionsToSimpleInsertions(changes, originalLines, modifiedLines, timeout);\n    if (!timeout.isValid()) {\n        return [];\n    }\n    const filteredChanges = changes.filter(c => !excludedChanges.has(c));\n    const unchangedMoves = computeUnchangedMoves(filteredChanges, hashedOriginalLines, hashedModifiedLines, originalLines, modifiedLines, timeout);\n    pushMany(moves, unchangedMoves);\n    moves = joinCloseConsecutiveMoves(moves);\n    // Ignore too short moves\n    moves = moves.filter(current => {\n        const lines = current.original.toOffsetRange().slice(originalLines).map(l => l.trim());\n        const originalText = lines.join('\\n');\n        return originalText.length >= 15 && countWhere(lines, l => l.length >= 2) >= 2;\n    });\n    moves = removeMovesInSameDiff(changes, moves);\n    return moves;\n}\nfunction countWhere(arr, predicate) {\n    let count = 0;\n    for (const t of arr) {\n        if (predicate(t)) {\n            count++;\n        }\n    }\n    return count;\n}\nfunction computeMovesFromSimpleDeletionsToSimpleInsertions(changes, originalLines, modifiedLines, timeout) {\n    const moves = [];\n    const deletions = changes\n        .filter(c => c.modified.isEmpty && c.original.length >= 3)\n        .map(d => new LineRangeFragment(d.original, originalLines, d));\n    const insertions = new Set(changes\n        .filter(c => c.original.isEmpty && c.modified.length >= 3)\n        .map(d => new LineRangeFragment(d.modified, modifiedLines, d)));\n    const excludedChanges = new Set();\n    for (const deletion of deletions) {\n        let highestSimilarity = -1;\n        let best;\n        for (const insertion of insertions) {\n            const similarity = deletion.computeSimilarity(insertion);\n            if (similarity > highestSimilarity) {\n                highestSimilarity = similarity;\n                best = insertion;\n            }\n        }\n        if (highestSimilarity > 0.90 && best) {\n            insertions.delete(best);\n            moves.push(new LineRangeMapping(deletion.range, best.range));\n            excludedChanges.add(deletion.source);\n            excludedChanges.add(best.source);\n        }\n        if (!timeout.isValid()) {\n            return { moves, excludedChanges };\n        }\n    }\n    return { moves, excludedChanges };\n}\nfunction computeUnchangedMoves(changes, hashedOriginalLines, hashedModifiedLines, originalLines, modifiedLines, timeout) {\n    const moves = [];\n    const original3LineHashes = new SetMap();\n    for (const change of changes) {\n        for (let i = change.original.startLineNumber; i < change.original.endLineNumberExclusive - 2; i++) {\n            const key = `${hashedOriginalLines[i - 1]}:${hashedOriginalLines[i + 1 - 1]}:${hashedOriginalLines[i + 2 - 1]}`;\n            original3LineHashes.add(key, { range: new LineRange(i, i + 3) });\n        }\n    }\n    const possibleMappings = [];\n    changes.sort(compareBy(c => c.modified.startLineNumber, numberComparator));\n    for (const change of changes) {\n        let lastMappings = [];\n        for (let i = change.modified.startLineNumber; i < change.modified.endLineNumberExclusive - 2; i++) {\n            const key = `${hashedModifiedLines[i - 1]}:${hashedModifiedLines[i + 1 - 1]}:${hashedModifiedLines[i + 2 - 1]}`;\n            const currentModifiedRange = new LineRange(i, i + 3);\n            const nextMappings = [];\n            original3LineHashes.forEach(key, ({ range }) => {\n                for (const lastMapping of lastMappings) {\n                    // does this match extend some last match?\n                    if (lastMapping.originalLineRange.endLineNumberExclusive + 1 === range.endLineNumberExclusive &&\n                        lastMapping.modifiedLineRange.endLineNumberExclusive + 1 === currentModifiedRange.endLineNumberExclusive) {\n                        lastMapping.originalLineRange = new LineRange(lastMapping.originalLineRange.startLineNumber, range.endLineNumberExclusive);\n                        lastMapping.modifiedLineRange = new LineRange(lastMapping.modifiedLineRange.startLineNumber, currentModifiedRange.endLineNumberExclusive);\n                        nextMappings.push(lastMapping);\n                        return;\n                    }\n                }\n                const mapping = {\n                    modifiedLineRange: currentModifiedRange,\n                    originalLineRange: range,\n                };\n                possibleMappings.push(mapping);\n                nextMappings.push(mapping);\n            });\n            lastMappings = nextMappings;\n        }\n        if (!timeout.isValid()) {\n            return [];\n        }\n    }\n    possibleMappings.sort(reverseOrder(compareBy(m => m.modifiedLineRange.length, numberComparator)));\n    const modifiedSet = new LineRangeSet();\n    const originalSet = new LineRangeSet();\n    for (const mapping of possibleMappings) {\n        const diffOrigToMod = mapping.modifiedLineRange.startLineNumber - mapping.originalLineRange.startLineNumber;\n        const modifiedSections = modifiedSet.subtractFrom(mapping.modifiedLineRange);\n        const originalTranslatedSections = originalSet.subtractFrom(mapping.originalLineRange).getWithDelta(diffOrigToMod);\n        const modifiedIntersectedSections = modifiedSections.getIntersection(originalTranslatedSections);\n        for (const s of modifiedIntersectedSections.ranges) {\n            if (s.length < 3) {\n                continue;\n            }\n            const modifiedLineRange = s;\n            const originalLineRange = s.delta(-diffOrigToMod);\n            moves.push(new LineRangeMapping(originalLineRange, modifiedLineRange));\n            modifiedSet.addRange(modifiedLineRange);\n            originalSet.addRange(originalLineRange);\n        }\n    }\n    moves.sort(compareBy(m => m.original.startLineNumber, numberComparator));\n    const monotonousChanges = new MonotonousArray(changes);\n    for (let i = 0; i < moves.length; i++) {\n        const move = moves[i];\n        const firstTouchingChangeOrig = monotonousChanges.findLastMonotonous(c => c.original.startLineNumber <= move.original.startLineNumber);\n        const firstTouchingChangeMod = findLastMonotonous(changes, c => c.modified.startLineNumber <= move.modified.startLineNumber);\n        const linesAbove = Math.max(move.original.startLineNumber - firstTouchingChangeOrig.original.startLineNumber, move.modified.startLineNumber - firstTouchingChangeMod.modified.startLineNumber);\n        const lastTouchingChangeOrig = monotonousChanges.findLastMonotonous(c => c.original.startLineNumber < move.original.endLineNumberExclusive);\n        const lastTouchingChangeMod = findLastMonotonous(changes, c => c.modified.startLineNumber < move.modified.endLineNumberExclusive);\n        const linesBelow = Math.max(lastTouchingChangeOrig.original.endLineNumberExclusive - move.original.endLineNumberExclusive, lastTouchingChangeMod.modified.endLineNumberExclusive - move.modified.endLineNumberExclusive);\n        let extendToTop;\n        for (extendToTop = 0; extendToTop < linesAbove; extendToTop++) {\n            const origLine = move.original.startLineNumber - extendToTop - 1;\n            const modLine = move.modified.startLineNumber - extendToTop - 1;\n            if (origLine > originalLines.length || modLine > modifiedLines.length) {\n                break;\n            }\n            if (modifiedSet.contains(modLine) || originalSet.contains(origLine)) {\n                break;\n            }\n            if (!areLinesSimilar(originalLines[origLine - 1], modifiedLines[modLine - 1], timeout)) {\n                break;\n            }\n        }\n        if (extendToTop > 0) {\n            originalSet.addRange(new LineRange(move.original.startLineNumber - extendToTop, move.original.startLineNumber));\n            modifiedSet.addRange(new LineRange(move.modified.startLineNumber - extendToTop, move.modified.startLineNumber));\n        }\n        let extendToBottom;\n        for (extendToBottom = 0; extendToBottom < linesBelow; extendToBottom++) {\n            const origLine = move.original.endLineNumberExclusive + extendToBottom;\n            const modLine = move.modified.endLineNumberExclusive + extendToBottom;\n            if (origLine > originalLines.length || modLine > modifiedLines.length) {\n                break;\n            }\n            if (modifiedSet.contains(modLine) || originalSet.contains(origLine)) {\n                break;\n            }\n            if (!areLinesSimilar(originalLines[origLine - 1], modifiedLines[modLine - 1], timeout)) {\n                break;\n            }\n        }\n        if (extendToBottom > 0) {\n            originalSet.addRange(new LineRange(move.original.endLineNumberExclusive, move.original.endLineNumberExclusive + extendToBottom));\n            modifiedSet.addRange(new LineRange(move.modified.endLineNumberExclusive, move.modified.endLineNumberExclusive + extendToBottom));\n        }\n        if (extendToTop > 0 || extendToBottom > 0) {\n            moves[i] = new LineRangeMapping(new LineRange(move.original.startLineNumber - extendToTop, move.original.endLineNumberExclusive + extendToBottom), new LineRange(move.modified.startLineNumber - extendToTop, move.modified.endLineNumberExclusive + extendToBottom));\n        }\n    }\n    return moves;\n}\nfunction areLinesSimilar(line1, line2, timeout) {\n    if (line1.trim() === line2.trim()) {\n        return true;\n    }\n    if (line1.length > 300 && line2.length > 300) {\n        return false;\n    }\n    const myersDiffingAlgorithm = new MyersDiffAlgorithm();\n    const result = myersDiffingAlgorithm.compute(new LinesSliceCharSequence([line1], new OffsetRange(0, 1), false), new LinesSliceCharSequence([line2], new OffsetRange(0, 1), false), timeout);\n    let commonNonSpaceCharCount = 0;\n    const inverted = SequenceDiff.invert(result.diffs, line1.length);\n    for (const seq of inverted) {\n        seq.seq1Range.forEach(idx => {\n            if (!isSpace(line1.charCodeAt(idx))) {\n                commonNonSpaceCharCount++;\n            }\n        });\n    }\n    function countNonWsChars(str) {\n        let count = 0;\n        for (let i = 0; i < line1.length; i++) {\n            if (!isSpace(str.charCodeAt(i))) {\n                count++;\n            }\n        }\n        return count;\n    }\n    const longerLineLength = countNonWsChars(line1.length > line2.length ? line1 : line2);\n    const r = commonNonSpaceCharCount / longerLineLength > 0.6 && longerLineLength > 10;\n    return r;\n}\nfunction joinCloseConsecutiveMoves(moves) {\n    if (moves.length === 0) {\n        return moves;\n    }\n    moves.sort(compareBy(m => m.original.startLineNumber, numberComparator));\n    const result = [moves[0]];\n    for (let i = 1; i < moves.length; i++) {\n        const last = result[result.length - 1];\n        const current = moves[i];\n        const originalDist = current.original.startLineNumber - last.original.endLineNumberExclusive;\n        const modifiedDist = current.modified.startLineNumber - last.modified.endLineNumberExclusive;\n        const currentMoveAfterLast = originalDist >= 0 && modifiedDist >= 0;\n        if (currentMoveAfterLast && originalDist + modifiedDist <= 2) {\n            result[result.length - 1] = last.join(current);\n            continue;\n        }\n        result.push(current);\n    }\n    return result;\n}\nfunction removeMovesInSameDiff(changes, moves) {\n    const changesMonotonous = new MonotonousArray(changes);\n    moves = moves.filter(m => {\n        const diffBeforeEndOfMoveOriginal = changesMonotonous.findLastMonotonous(c => c.original.startLineNumber < m.original.endLineNumberExclusive)\n            || new LineRangeMapping(new LineRange(1, 1), new LineRange(1, 1));\n        const diffBeforeEndOfMoveModified = findLastMonotonous(changes, c => c.modified.startLineNumber < m.modified.endLineNumberExclusive);\n        const differentDiffs = diffBeforeEndOfMoveOriginal !== diffBeforeEndOfMoveModified;\n        return differentDiffs;\n    });\n    return moves;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/diff/defaultLinesDiffComputer/defaultLinesDiffComputer.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { equals, groupAdjacentBy } from '../../../../base/common/arrays.js';\nimport { assertFn, checkAdjacentItems } from '../../../../base/common/assert.js';\nimport { LineRange } from '../../core/lineRange.js';\nimport { OffsetRange } from '../../core/offsetRange.js';\nimport { Range } from '../../core/range.js';\nimport { DateTimeout, InfiniteTimeout, SequenceDiff } from './algorithms/diffAlgorithm.js';\nimport { DynamicProgrammingDiffing } from './algorithms/dynamicProgrammingDiffing.js';\nimport { MyersDiffAlgorithm } from './algorithms/myersDiffAlgorithm.js';\nimport { computeMovedLines } from './computeMovedLines.js';\nimport { extendDiffsToEntireWordIfAppropriate, optimizeSequenceDiffs, removeShortMatches, removeVeryShortMatchingLinesBetweenDiffs, removeVeryShortMatchingTextBetweenLongDiffs } from './heuristicSequenceOptimizations.js';\nimport { LineSequence } from './lineSequence.js';\nimport { LinesSliceCharSequence } from './linesSliceCharSequence.js';\nimport { LinesDiff, MovedText } from '../linesDiffComputer.js';\nimport { DetailedLineRangeMapping, RangeMapping } from '../rangeMapping.js';\nexport class DefaultLinesDiffComputer {\n    constructor() {\n        this.dynamicProgrammingDiffing = new DynamicProgrammingDiffing();\n        this.myersDiffingAlgorithm = new MyersDiffAlgorithm();\n    }\n    computeDiff(originalLines, modifiedLines, options) {\n        if (originalLines.length <= 1 && equals(originalLines, modifiedLines, (a, b) => a === b)) {\n            return new LinesDiff([], [], false);\n        }\n        if (originalLines.length === 1 && originalLines[0].length === 0 || modifiedLines.length === 1 && modifiedLines[0].length === 0) {\n            return new LinesDiff([\n                new DetailedLineRangeMapping(new LineRange(1, originalLines.length + 1), new LineRange(1, modifiedLines.length + 1), [\n                    new RangeMapping(new Range(1, 1, originalLines.length, originalLines[originalLines.length - 1].length + 1), new Range(1, 1, modifiedLines.length, modifiedLines[modifiedLines.length - 1].length + 1))\n                ])\n            ], [], false);\n        }\n        const timeout = options.maxComputationTimeMs === 0 ? InfiniteTimeout.instance : new DateTimeout(options.maxComputationTimeMs);\n        const considerWhitespaceChanges = !options.ignoreTrimWhitespace;\n        const perfectHashes = new Map();\n        function getOrCreateHash(text) {\n            let hash = perfectHashes.get(text);\n            if (hash === undefined) {\n                hash = perfectHashes.size;\n                perfectHashes.set(text, hash);\n            }\n            return hash;\n        }\n        const originalLinesHashes = originalLines.map((l) => getOrCreateHash(l.trim()));\n        const modifiedLinesHashes = modifiedLines.map((l) => getOrCreateHash(l.trim()));\n        const sequence1 = new LineSequence(originalLinesHashes, originalLines);\n        const sequence2 = new LineSequence(modifiedLinesHashes, modifiedLines);\n        const lineAlignmentResult = (() => {\n            if (sequence1.length + sequence2.length < 1700) {\n                // Use the improved algorithm for small files\n                return this.dynamicProgrammingDiffing.compute(sequence1, sequence2, timeout, (offset1, offset2) => originalLines[offset1] === modifiedLines[offset2]\n                    ? modifiedLines[offset2].length === 0\n                        ? 0.1\n                        : 1 + Math.log(1 + modifiedLines[offset2].length)\n                    : 0.99);\n            }\n            return this.myersDiffingAlgorithm.compute(sequence1, sequence2, timeout);\n        })();\n        let lineAlignments = lineAlignmentResult.diffs;\n        let hitTimeout = lineAlignmentResult.hitTimeout;\n        lineAlignments = optimizeSequenceDiffs(sequence1, sequence2, lineAlignments);\n        lineAlignments = removeVeryShortMatchingLinesBetweenDiffs(sequence1, sequence2, lineAlignments);\n        const alignments = [];\n        const scanForWhitespaceChanges = (equalLinesCount) => {\n            if (!considerWhitespaceChanges) {\n                return;\n            }\n            for (let i = 0; i < equalLinesCount; i++) {\n                const seq1Offset = seq1LastStart + i;\n                const seq2Offset = seq2LastStart + i;\n                if (originalLines[seq1Offset] !== modifiedLines[seq2Offset]) {\n                    // This is because of whitespace changes, diff these lines\n                    const characterDiffs = this.refineDiff(originalLines, modifiedLines, new SequenceDiff(new OffsetRange(seq1Offset, seq1Offset + 1), new OffsetRange(seq2Offset, seq2Offset + 1)), timeout, considerWhitespaceChanges);\n                    for (const a of characterDiffs.mappings) {\n                        alignments.push(a);\n                    }\n                    if (characterDiffs.hitTimeout) {\n                        hitTimeout = true;\n                    }\n                }\n            }\n        };\n        let seq1LastStart = 0;\n        let seq2LastStart = 0;\n        for (const diff of lineAlignments) {\n            assertFn(() => diff.seq1Range.start - seq1LastStart === diff.seq2Range.start - seq2LastStart);\n            const equalLinesCount = diff.seq1Range.start - seq1LastStart;\n            scanForWhitespaceChanges(equalLinesCount);\n            seq1LastStart = diff.seq1Range.endExclusive;\n            seq2LastStart = diff.seq2Range.endExclusive;\n            const characterDiffs = this.refineDiff(originalLines, modifiedLines, diff, timeout, considerWhitespaceChanges);\n            if (characterDiffs.hitTimeout) {\n                hitTimeout = true;\n            }\n            for (const a of characterDiffs.mappings) {\n                alignments.push(a);\n            }\n        }\n        scanForWhitespaceChanges(originalLines.length - seq1LastStart);\n        const changes = lineRangeMappingFromRangeMappings(alignments, originalLines, modifiedLines);\n        let moves = [];\n        if (options.computeMoves) {\n            moves = this.computeMoves(changes, originalLines, modifiedLines, originalLinesHashes, modifiedLinesHashes, timeout, considerWhitespaceChanges);\n        }\n        // Make sure all ranges are valid\n        assertFn(() => {\n            function validatePosition(pos, lines) {\n                if (pos.lineNumber < 1 || pos.lineNumber > lines.length) {\n                    return false;\n                }\n                const line = lines[pos.lineNumber - 1];\n                if (pos.column < 1 || pos.column > line.length + 1) {\n                    return false;\n                }\n                return true;\n            }\n            function validateRange(range, lines) {\n                if (range.startLineNumber < 1 || range.startLineNumber > lines.length + 1) {\n                    return false;\n                }\n                if (range.endLineNumberExclusive < 1 || range.endLineNumberExclusive > lines.length + 1) {\n                    return false;\n                }\n                return true;\n            }\n            for (const c of changes) {\n                if (!c.innerChanges) {\n                    return false;\n                }\n                for (const ic of c.innerChanges) {\n                    const valid = validatePosition(ic.modifiedRange.getStartPosition(), modifiedLines) && validatePosition(ic.modifiedRange.getEndPosition(), modifiedLines) &&\n                        validatePosition(ic.originalRange.getStartPosition(), originalLines) && validatePosition(ic.originalRange.getEndPosition(), originalLines);\n                    if (!valid) {\n                        return false;\n                    }\n                }\n                if (!validateRange(c.modified, modifiedLines) || !validateRange(c.original, originalLines)) {\n                    return false;\n                }\n            }\n            return true;\n        });\n        return new LinesDiff(changes, moves, hitTimeout);\n    }\n    computeMoves(changes, originalLines, modifiedLines, hashedOriginalLines, hashedModifiedLines, timeout, considerWhitespaceChanges) {\n        const moves = computeMovedLines(changes, originalLines, modifiedLines, hashedOriginalLines, hashedModifiedLines, timeout);\n        const movesWithDiffs = moves.map(m => {\n            const moveChanges = this.refineDiff(originalLines, modifiedLines, new SequenceDiff(m.original.toOffsetRange(), m.modified.toOffsetRange()), timeout, considerWhitespaceChanges);\n            const mappings = lineRangeMappingFromRangeMappings(moveChanges.mappings, originalLines, modifiedLines, true);\n            return new MovedText(m, mappings);\n        });\n        return movesWithDiffs;\n    }\n    refineDiff(originalLines, modifiedLines, diff, timeout, considerWhitespaceChanges) {\n        const slice1 = new LinesSliceCharSequence(originalLines, diff.seq1Range, considerWhitespaceChanges);\n        const slice2 = new LinesSliceCharSequence(modifiedLines, diff.seq2Range, considerWhitespaceChanges);\n        const diffResult = slice1.length + slice2.length < 500\n            ? this.dynamicProgrammingDiffing.compute(slice1, slice2, timeout)\n            : this.myersDiffingAlgorithm.compute(slice1, slice2, timeout);\n        let diffs = diffResult.diffs;\n        diffs = optimizeSequenceDiffs(slice1, slice2, diffs);\n        diffs = extendDiffsToEntireWordIfAppropriate(slice1, slice2, diffs);\n        diffs = removeShortMatches(slice1, slice2, diffs);\n        diffs = removeVeryShortMatchingTextBetweenLongDiffs(slice1, slice2, diffs);\n        const result = diffs.map((d) => new RangeMapping(slice1.translateRange(d.seq1Range), slice2.translateRange(d.seq2Range)));\n        // Assert: result applied on original should be the same as diff applied to original\n        return {\n            mappings: result,\n            hitTimeout: diffResult.hitTimeout,\n        };\n    }\n}\nexport function lineRangeMappingFromRangeMappings(alignments, originalLines, modifiedLines, dontAssertStartLine = false) {\n    const changes = [];\n    for (const g of groupAdjacentBy(alignments.map(a => getLineRangeMapping(a, originalLines, modifiedLines)), (a1, a2) => a1.original.overlapOrTouch(a2.original)\n        || a1.modified.overlapOrTouch(a2.modified))) {\n        const first = g[0];\n        const last = g[g.length - 1];\n        changes.push(new DetailedLineRangeMapping(first.original.join(last.original), first.modified.join(last.modified), g.map(a => a.innerChanges[0])));\n    }\n    assertFn(() => {\n        if (!dontAssertStartLine && changes.length > 0) {\n            if (changes[0].modified.startLineNumber !== changes[0].original.startLineNumber) {\n                return false;\n            }\n            if (modifiedLines.length - changes[changes.length - 1].modified.endLineNumberExclusive !== originalLines.length - changes[changes.length - 1].original.endLineNumberExclusive) {\n                return false;\n            }\n        }\n        return checkAdjacentItems(changes, (m1, m2) => m2.original.startLineNumber - m1.original.endLineNumberExclusive === m2.modified.startLineNumber - m1.modified.endLineNumberExclusive &&\n            // There has to be an unchanged line in between (otherwise both diffs should have been joined)\n            m1.original.endLineNumberExclusive < m2.original.startLineNumber &&\n            m1.modified.endLineNumberExclusive < m2.modified.startLineNumber);\n    });\n    return changes;\n}\nexport function getLineRangeMapping(rangeMapping, originalLines, modifiedLines) {\n    let lineStartDelta = 0;\n    let lineEndDelta = 0;\n    // rangeMapping describes the edit that replaces `rangeMapping.originalRange` with `newText := getText(modifiedLines, rangeMapping.modifiedRange)`.\n    // original: ]xxx \\n <- this line is not modified\n    // modified: ]xx  \\n\n    if (rangeMapping.modifiedRange.endColumn === 1 && rangeMapping.originalRange.endColumn === 1\n        && rangeMapping.originalRange.startLineNumber + lineStartDelta <= rangeMapping.originalRange.endLineNumber\n        && rangeMapping.modifiedRange.startLineNumber + lineStartDelta <= rangeMapping.modifiedRange.endLineNumber) {\n        // We can only do this if the range is not empty yet\n        lineEndDelta = -1;\n    }\n    // original: xxx[ \\n <- this line is not modified\n    // modified: xxx[ \\n\n    if (rangeMapping.modifiedRange.startColumn - 1 >= modifiedLines[rangeMapping.modifiedRange.startLineNumber - 1].length\n        && rangeMapping.originalRange.startColumn - 1 >= originalLines[rangeMapping.originalRange.startLineNumber - 1].length\n        && rangeMapping.originalRange.startLineNumber <= rangeMapping.originalRange.endLineNumber + lineEndDelta\n        && rangeMapping.modifiedRange.startLineNumber <= rangeMapping.modifiedRange.endLineNumber + lineEndDelta) {\n        // We can only do this if the range is not empty yet\n        lineStartDelta = 1;\n    }\n    const originalLineRange = new LineRange(rangeMapping.originalRange.startLineNumber + lineStartDelta, rangeMapping.originalRange.endLineNumber + 1 + lineEndDelta);\n    const modifiedLineRange = new LineRange(rangeMapping.modifiedRange.startLineNumber + lineStartDelta, rangeMapping.modifiedRange.endLineNumber + 1 + lineEndDelta);\n    return new DetailedLineRangeMapping(originalLineRange, modifiedLineRange, [rangeMapping]);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/diff/defaultLinesDiffComputer/heuristicSequenceOptimizations.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { forEachWithNeighbors } from '../../../../base/common/arrays.js';\nimport { OffsetRange } from '../../core/offsetRange.js';\nimport { OffsetPair, SequenceDiff } from './algorithms/diffAlgorithm.js';\nexport function optimizeSequenceDiffs(sequence1, sequence2, sequenceDiffs) {\n    let result = sequenceDiffs;\n    result = joinSequenceDiffsByShifting(sequence1, sequence2, result);\n    // Sometimes, calling this function twice improves the result.\n    // Uncomment the second invocation and run the tests to see the difference.\n    result = joinSequenceDiffsByShifting(sequence1, sequence2, result);\n    result = shiftSequenceDiffs(sequence1, sequence2, result);\n    return result;\n}\n/**\n * This function fixes issues like this:\n * ```\n * import { Baz, Bar } from \"foo\";\n * ```\n * <->\n * ```\n * import { Baz, Bar, Foo } from \"foo\";\n * ```\n * Computed diff: [ {Add \",\" after Bar}, {Add \"Foo \" after space} }\n * Improved diff: [{Add \", Foo\" after Bar}]\n */\nfunction joinSequenceDiffsByShifting(sequence1, sequence2, sequenceDiffs) {\n    if (sequenceDiffs.length === 0) {\n        return sequenceDiffs;\n    }\n    const result = [];\n    result.push(sequenceDiffs[0]);\n    // First move them all to the left as much as possible and join them if possible\n    for (let i = 1; i < sequenceDiffs.length; i++) {\n        const prevResult = result[result.length - 1];\n        let cur = sequenceDiffs[i];\n        if (cur.seq1Range.isEmpty || cur.seq2Range.isEmpty) {\n            const length = cur.seq1Range.start - prevResult.seq1Range.endExclusive;\n            let d;\n            for (d = 1; d <= length; d++) {\n                if (sequence1.getElement(cur.seq1Range.start - d) !== sequence1.getElement(cur.seq1Range.endExclusive - d) ||\n                    sequence2.getElement(cur.seq2Range.start - d) !== sequence2.getElement(cur.seq2Range.endExclusive - d)) {\n                    break;\n                }\n            }\n            d--;\n            if (d === length) {\n                // Merge previous and current diff\n                result[result.length - 1] = new SequenceDiff(new OffsetRange(prevResult.seq1Range.start, cur.seq1Range.endExclusive - length), new OffsetRange(prevResult.seq2Range.start, cur.seq2Range.endExclusive - length));\n                continue;\n            }\n            cur = cur.delta(-d);\n        }\n        result.push(cur);\n    }\n    const result2 = [];\n    // Then move them all to the right and join them again if possible\n    for (let i = 0; i < result.length - 1; i++) {\n        const nextResult = result[i + 1];\n        let cur = result[i];\n        if (cur.seq1Range.isEmpty || cur.seq2Range.isEmpty) {\n            const length = nextResult.seq1Range.start - cur.seq1Range.endExclusive;\n            let d;\n            for (d = 0; d < length; d++) {\n                if (!sequence1.isStronglyEqual(cur.seq1Range.start + d, cur.seq1Range.endExclusive + d) ||\n                    !sequence2.isStronglyEqual(cur.seq2Range.start + d, cur.seq2Range.endExclusive + d)) {\n                    break;\n                }\n            }\n            if (d === length) {\n                // Merge previous and current diff, write to result!\n                result[i + 1] = new SequenceDiff(new OffsetRange(cur.seq1Range.start + length, nextResult.seq1Range.endExclusive), new OffsetRange(cur.seq2Range.start + length, nextResult.seq2Range.endExclusive));\n                continue;\n            }\n            if (d > 0) {\n                cur = cur.delta(d);\n            }\n        }\n        result2.push(cur);\n    }\n    if (result.length > 0) {\n        result2.push(result[result.length - 1]);\n    }\n    return result2;\n}\n// align character level diffs at whitespace characters\n// import { IBar } from \"foo\";\n// import { I[Arr, I]Bar } from \"foo\";\n// ->\n// import { [IArr, ]IBar } from \"foo\";\n// import { ITransaction, observableValue, transaction } from 'vs/base/common/observable';\n// import { ITransaction, observable[FromEvent, observable]Value, transaction } from 'vs/base/common/observable';\n// ->\n// import { ITransaction, [observableFromEvent, ]observableValue, transaction } from 'vs/base/common/observable';\n// collectBrackets(level + 1, levelPerBracketType);\n// collectBrackets(level + 1, levelPerBracket[ + 1, levelPerBracket]Type);\n// ->\n// collectBrackets(level + 1, [levelPerBracket + 1, ]levelPerBracketType);\nfunction shiftSequenceDiffs(sequence1, sequence2, sequenceDiffs) {\n    if (!sequence1.getBoundaryScore || !sequence2.getBoundaryScore) {\n        return sequenceDiffs;\n    }\n    for (let i = 0; i < sequenceDiffs.length; i++) {\n        const prevDiff = (i > 0 ? sequenceDiffs[i - 1] : undefined);\n        const diff = sequenceDiffs[i];\n        const nextDiff = (i + 1 < sequenceDiffs.length ? sequenceDiffs[i + 1] : undefined);\n        const seq1ValidRange = new OffsetRange(prevDiff ? prevDiff.seq1Range.endExclusive + 1 : 0, nextDiff ? nextDiff.seq1Range.start - 1 : sequence1.length);\n        const seq2ValidRange = new OffsetRange(prevDiff ? prevDiff.seq2Range.endExclusive + 1 : 0, nextDiff ? nextDiff.seq2Range.start - 1 : sequence2.length);\n        if (diff.seq1Range.isEmpty) {\n            sequenceDiffs[i] = shiftDiffToBetterPosition(diff, sequence1, sequence2, seq1ValidRange, seq2ValidRange);\n        }\n        else if (diff.seq2Range.isEmpty) {\n            sequenceDiffs[i] = shiftDiffToBetterPosition(diff.swap(), sequence2, sequence1, seq2ValidRange, seq1ValidRange).swap();\n        }\n    }\n    return sequenceDiffs;\n}\nfunction shiftDiffToBetterPosition(diff, sequence1, sequence2, seq1ValidRange, seq2ValidRange) {\n    const maxShiftLimit = 100; // To prevent performance issues\n    // don't touch previous or next!\n    let deltaBefore = 1;\n    while (diff.seq1Range.start - deltaBefore >= seq1ValidRange.start &&\n        diff.seq2Range.start - deltaBefore >= seq2ValidRange.start &&\n        sequence2.isStronglyEqual(diff.seq2Range.start - deltaBefore, diff.seq2Range.endExclusive - deltaBefore) && deltaBefore < maxShiftLimit) {\n        deltaBefore++;\n    }\n    deltaBefore--;\n    let deltaAfter = 0;\n    while (diff.seq1Range.start + deltaAfter < seq1ValidRange.endExclusive &&\n        diff.seq2Range.endExclusive + deltaAfter < seq2ValidRange.endExclusive &&\n        sequence2.isStronglyEqual(diff.seq2Range.start + deltaAfter, diff.seq2Range.endExclusive + deltaAfter) && deltaAfter < maxShiftLimit) {\n        deltaAfter++;\n    }\n    if (deltaBefore === 0 && deltaAfter === 0) {\n        return diff;\n    }\n    // Visualize `[sequence1.text, diff.seq1Range.start + deltaAfter]`\n    // and `[sequence2.text, diff.seq2Range.start + deltaAfter, diff.seq2Range.endExclusive + deltaAfter]`\n    let bestDelta = 0;\n    let bestScore = -1;\n    // find best scored delta\n    for (let delta = -deltaBefore; delta <= deltaAfter; delta++) {\n        const seq2OffsetStart = diff.seq2Range.start + delta;\n        const seq2OffsetEndExclusive = diff.seq2Range.endExclusive + delta;\n        const seq1Offset = diff.seq1Range.start + delta;\n        const score = sequence1.getBoundaryScore(seq1Offset) + sequence2.getBoundaryScore(seq2OffsetStart) + sequence2.getBoundaryScore(seq2OffsetEndExclusive);\n        if (score > bestScore) {\n            bestScore = score;\n            bestDelta = delta;\n        }\n    }\n    return diff.delta(bestDelta);\n}\nexport function removeShortMatches(sequence1, sequence2, sequenceDiffs) {\n    const result = [];\n    for (const s of sequenceDiffs) {\n        const last = result[result.length - 1];\n        if (!last) {\n            result.push(s);\n            continue;\n        }\n        if (s.seq1Range.start - last.seq1Range.endExclusive <= 2 || s.seq2Range.start - last.seq2Range.endExclusive <= 2) {\n            result[result.length - 1] = new SequenceDiff(last.seq1Range.join(s.seq1Range), last.seq2Range.join(s.seq2Range));\n        }\n        else {\n            result.push(s);\n        }\n    }\n    return result;\n}\nexport function extendDiffsToEntireWordIfAppropriate(sequence1, sequence2, sequenceDiffs) {\n    const equalMappings = SequenceDiff.invert(sequenceDiffs, sequence1.length);\n    const additional = [];\n    let lastPoint = new OffsetPair(0, 0);\n    function scanWord(pair, equalMapping) {\n        if (pair.offset1 < lastPoint.offset1 || pair.offset2 < lastPoint.offset2) {\n            return;\n        }\n        const w1 = sequence1.findWordContaining(pair.offset1);\n        const w2 = sequence2.findWordContaining(pair.offset2);\n        if (!w1 || !w2) {\n            return;\n        }\n        let w = new SequenceDiff(w1, w2);\n        const equalPart = w.intersect(equalMapping);\n        let equalChars1 = equalPart.seq1Range.length;\n        let equalChars2 = equalPart.seq2Range.length;\n        // The words do not touch previous equals mappings, as we would have processed them already.\n        // But they might touch the next ones.\n        while (equalMappings.length > 0) {\n            const next = equalMappings[0];\n            const intersects = next.seq1Range.intersects(w.seq1Range) || next.seq2Range.intersects(w.seq2Range);\n            if (!intersects) {\n                break;\n            }\n            const v1 = sequence1.findWordContaining(next.seq1Range.start);\n            const v2 = sequence2.findWordContaining(next.seq2Range.start);\n            // Because there is an intersection, we know that the words are not empty.\n            const v = new SequenceDiff(v1, v2);\n            const equalPart = v.intersect(next);\n            equalChars1 += equalPart.seq1Range.length;\n            equalChars2 += equalPart.seq2Range.length;\n            w = w.join(v);\n            if (w.seq1Range.endExclusive >= next.seq1Range.endExclusive) {\n                // The word extends beyond the next equal mapping.\n                equalMappings.shift();\n            }\n            else {\n                break;\n            }\n        }\n        if (equalChars1 + equalChars2 < (w.seq1Range.length + w.seq2Range.length) * 2 / 3) {\n            additional.push(w);\n        }\n        lastPoint = w.getEndExclusives();\n    }\n    while (equalMappings.length > 0) {\n        const next = equalMappings.shift();\n        if (next.seq1Range.isEmpty) {\n            continue;\n        }\n        scanWord(next.getStarts(), next);\n        // The equal parts are not empty, so -1 gives us a character that is equal in both parts.\n        scanWord(next.getEndExclusives().delta(-1), next);\n    }\n    const merged = mergeSequenceDiffs(sequenceDiffs, additional);\n    return merged;\n}\nfunction mergeSequenceDiffs(sequenceDiffs1, sequenceDiffs2) {\n    const result = [];\n    while (sequenceDiffs1.length > 0 || sequenceDiffs2.length > 0) {\n        const sd1 = sequenceDiffs1[0];\n        const sd2 = sequenceDiffs2[0];\n        let next;\n        if (sd1 && (!sd2 || sd1.seq1Range.start < sd2.seq1Range.start)) {\n            next = sequenceDiffs1.shift();\n        }\n        else {\n            next = sequenceDiffs2.shift();\n        }\n        if (result.length > 0 && result[result.length - 1].seq1Range.endExclusive >= next.seq1Range.start) {\n            result[result.length - 1] = result[result.length - 1].join(next);\n        }\n        else {\n            result.push(next);\n        }\n    }\n    return result;\n}\nexport function removeVeryShortMatchingLinesBetweenDiffs(sequence1, _sequence2, sequenceDiffs) {\n    let diffs = sequenceDiffs;\n    if (diffs.length === 0) {\n        return diffs;\n    }\n    let counter = 0;\n    let shouldRepeat;\n    do {\n        shouldRepeat = false;\n        const result = [\n            diffs[0]\n        ];\n        for (let i = 1; i < diffs.length; i++) {\n            const cur = diffs[i];\n            const lastResult = result[result.length - 1];\n            function shouldJoinDiffs(before, after) {\n                const unchangedRange = new OffsetRange(lastResult.seq1Range.endExclusive, cur.seq1Range.start);\n                const unchangedText = sequence1.getText(unchangedRange);\n                const unchangedTextWithoutWs = unchangedText.replace(/\\s/g, '');\n                if (unchangedTextWithoutWs.length <= 4\n                    && (before.seq1Range.length + before.seq2Range.length > 5 || after.seq1Range.length + after.seq2Range.length > 5)) {\n                    return true;\n                }\n                return false;\n            }\n            const shouldJoin = shouldJoinDiffs(lastResult, cur);\n            if (shouldJoin) {\n                shouldRepeat = true;\n                result[result.length - 1] = result[result.length - 1].join(cur);\n            }\n            else {\n                result.push(cur);\n            }\n        }\n        diffs = result;\n    } while (counter++ < 10 && shouldRepeat);\n    return diffs;\n}\nexport function removeVeryShortMatchingTextBetweenLongDiffs(sequence1, sequence2, sequenceDiffs) {\n    let diffs = sequenceDiffs;\n    if (diffs.length === 0) {\n        return diffs;\n    }\n    let counter = 0;\n    let shouldRepeat;\n    do {\n        shouldRepeat = false;\n        const result = [\n            diffs[0]\n        ];\n        for (let i = 1; i < diffs.length; i++) {\n            const cur = diffs[i];\n            const lastResult = result[result.length - 1];\n            function shouldJoinDiffs(before, after) {\n                const unchangedRange = new OffsetRange(lastResult.seq1Range.endExclusive, cur.seq1Range.start);\n                const unchangedLineCount = sequence1.countLinesIn(unchangedRange);\n                if (unchangedLineCount > 5 || unchangedRange.length > 500) {\n                    return false;\n                }\n                const unchangedText = sequence1.getText(unchangedRange).trim();\n                if (unchangedText.length > 20 || unchangedText.split(/\\r\\n|\\r|\\n/).length > 1) {\n                    return false;\n                }\n                const beforeLineCount1 = sequence1.countLinesIn(before.seq1Range);\n                const beforeSeq1Length = before.seq1Range.length;\n                const beforeLineCount2 = sequence2.countLinesIn(before.seq2Range);\n                const beforeSeq2Length = before.seq2Range.length;\n                const afterLineCount1 = sequence1.countLinesIn(after.seq1Range);\n                const afterSeq1Length = after.seq1Range.length;\n                const afterLineCount2 = sequence2.countLinesIn(after.seq2Range);\n                const afterSeq2Length = after.seq2Range.length;\n                // TODO: Maybe a neural net can be used to derive the result from these numbers\n                const max = 2 * 40 + 50;\n                function cap(v) {\n                    return Math.min(v, max);\n                }\n                if (Math.pow(Math.pow(cap(beforeLineCount1 * 40 + beforeSeq1Length), 1.5) + Math.pow(cap(beforeLineCount2 * 40 + beforeSeq2Length), 1.5), 1.5)\n                    + Math.pow(Math.pow(cap(afterLineCount1 * 40 + afterSeq1Length), 1.5) + Math.pow(cap(afterLineCount2 * 40 + afterSeq2Length), 1.5), 1.5) > ((max ** 1.5) ** 1.5) * 1.3) {\n                    return true;\n                }\n                return false;\n            }\n            const shouldJoin = shouldJoinDiffs(lastResult, cur);\n            if (shouldJoin) {\n                shouldRepeat = true;\n                result[result.length - 1] = result[result.length - 1].join(cur);\n            }\n            else {\n                result.push(cur);\n            }\n        }\n        diffs = result;\n    } while (counter++ < 10 && shouldRepeat);\n    const newDiffs = [];\n    // Remove short suffixes/prefixes\n    forEachWithNeighbors(diffs, (prev, cur, next) => {\n        let newDiff = cur;\n        function shouldMarkAsChanged(text) {\n            return text.length > 0 && text.trim().length <= 3 && cur.seq1Range.length + cur.seq2Range.length > 100;\n        }\n        const fullRange1 = sequence1.extendToFullLines(cur.seq1Range);\n        const prefix = sequence1.getText(new OffsetRange(fullRange1.start, cur.seq1Range.start));\n        if (shouldMarkAsChanged(prefix)) {\n            newDiff = newDiff.deltaStart(-prefix.length);\n        }\n        const suffix = sequence1.getText(new OffsetRange(cur.seq1Range.endExclusive, fullRange1.endExclusive));\n        if (shouldMarkAsChanged(suffix)) {\n            newDiff = newDiff.deltaEnd(suffix.length);\n        }\n        const availableSpace = SequenceDiff.fromOffsetPairs(prev ? prev.getEndExclusives() : OffsetPair.zero, next ? next.getStarts() : OffsetPair.max);\n        const result = newDiff.intersect(availableSpace);\n        if (newDiffs.length > 0 && result.getStarts().equals(newDiffs[newDiffs.length - 1].getEndExclusives())) {\n            newDiffs[newDiffs.length - 1] = newDiffs[newDiffs.length - 1].join(result);\n        }\n        else {\n            newDiffs.push(result);\n        }\n    });\n    return newDiffs;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/diff/defaultLinesDiffComputer/lineSequence.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class LineSequence {\n    constructor(trimmedHash, lines) {\n        this.trimmedHash = trimmedHash;\n        this.lines = lines;\n    }\n    getElement(offset) {\n        return this.trimmedHash[offset];\n    }\n    get length() {\n        return this.trimmedHash.length;\n    }\n    getBoundaryScore(length) {\n        const indentationBefore = length === 0 ? 0 : getIndentation(this.lines[length - 1]);\n        const indentationAfter = length === this.lines.length ? 0 : getIndentation(this.lines[length]);\n        return 1000 - (indentationBefore + indentationAfter);\n    }\n    getText(range) {\n        return this.lines.slice(range.start, range.endExclusive).join('\\n');\n    }\n    isStronglyEqual(offset1, offset2) {\n        return this.lines[offset1] === this.lines[offset2];\n    }\n}\nfunction getIndentation(str) {\n    let i = 0;\n    while (i < str.length && (str.charCodeAt(i) === 32 /* CharCode.Space */ || str.charCodeAt(i) === 9 /* CharCode.Tab */)) {\n        i++;\n    }\n    return i;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/diff/defaultLinesDiffComputer/linesSliceCharSequence.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { findLastIdxMonotonous, findLastMonotonous, findFirstMonotonous } from '../../../../base/common/arraysFind.js';\nimport { OffsetRange } from '../../core/offsetRange.js';\nimport { Position } from '../../core/position.js';\nimport { Range } from '../../core/range.js';\nimport { isSpace } from './utils.js';\nexport class LinesSliceCharSequence {\n    constructor(lines, lineRange, considerWhitespaceChanges) {\n        // This slice has to have lineRange.length many \\n! (otherwise diffing against an empty slice will be problematic)\n        // (Unless it covers the entire document, in that case the other slice also has to cover the entire document ands it's okay)\n        this.lines = lines;\n        this.considerWhitespaceChanges = considerWhitespaceChanges;\n        this.elements = [];\n        this.firstCharOffsetByLine = [];\n        // To account for trimming\n        this.additionalOffsetByLine = [];\n        // If the slice covers the end, but does not start at the beginning, we include just the \\n of the previous line.\n        let trimFirstLineFully = false;\n        if (lineRange.start > 0 && lineRange.endExclusive >= lines.length) {\n            lineRange = new OffsetRange(lineRange.start - 1, lineRange.endExclusive);\n            trimFirstLineFully = true;\n        }\n        this.lineRange = lineRange;\n        this.firstCharOffsetByLine[0] = 0;\n        for (let i = this.lineRange.start; i < this.lineRange.endExclusive; i++) {\n            let line = lines[i];\n            let offset = 0;\n            if (trimFirstLineFully) {\n                offset = line.length;\n                line = '';\n                trimFirstLineFully = false;\n            }\n            else if (!considerWhitespaceChanges) {\n                const trimmedStartLine = line.trimStart();\n                offset = line.length - trimmedStartLine.length;\n                line = trimmedStartLine.trimEnd();\n            }\n            this.additionalOffsetByLine.push(offset);\n            for (let i = 0; i < line.length; i++) {\n                this.elements.push(line.charCodeAt(i));\n            }\n            // Don't add an \\n that does not exist in the document.\n            if (i < lines.length - 1) {\n                this.elements.push('\\n'.charCodeAt(0));\n                this.firstCharOffsetByLine[i - this.lineRange.start + 1] = this.elements.length;\n            }\n        }\n        // To account for the last line\n        this.additionalOffsetByLine.push(0);\n    }\n    toString() {\n        return `Slice: \"${this.text}\"`;\n    }\n    get text() {\n        return this.getText(new OffsetRange(0, this.length));\n    }\n    getText(range) {\n        return this.elements.slice(range.start, range.endExclusive).map(e => String.fromCharCode(e)).join('');\n    }\n    getElement(offset) {\n        return this.elements[offset];\n    }\n    get length() {\n        return this.elements.length;\n    }\n    getBoundaryScore(length) {\n        //   a   b   c   ,           d   e   f\n        // 11  0   0   12  15  6   13  0   0   11\n        const prevCategory = getCategory(length > 0 ? this.elements[length - 1] : -1);\n        const nextCategory = getCategory(length < this.elements.length ? this.elements[length] : -1);\n        if (prevCategory === 7 /* CharBoundaryCategory.LineBreakCR */ && nextCategory === 8 /* CharBoundaryCategory.LineBreakLF */) {\n            // don't break between \\r and \\n\n            return 0;\n        }\n        if (prevCategory === 8 /* CharBoundaryCategory.LineBreakLF */) {\n            // prefer the linebreak before the change\n            return 150;\n        }\n        let score = 0;\n        if (prevCategory !== nextCategory) {\n            score += 10;\n            if (prevCategory === 0 /* CharBoundaryCategory.WordLower */ && nextCategory === 1 /* CharBoundaryCategory.WordUpper */) {\n                score += 1;\n            }\n        }\n        score += getCategoryBoundaryScore(prevCategory);\n        score += getCategoryBoundaryScore(nextCategory);\n        return score;\n    }\n    translateOffset(offset) {\n        // find smallest i, so that lineBreakOffsets[i] <= offset using binary search\n        if (this.lineRange.isEmpty) {\n            return new Position(this.lineRange.start + 1, 1);\n        }\n        const i = findLastIdxMonotonous(this.firstCharOffsetByLine, (value) => value <= offset);\n        return new Position(this.lineRange.start + i + 1, offset - this.firstCharOffsetByLine[i] + this.additionalOffsetByLine[i] + 1);\n    }\n    translateRange(range) {\n        return Range.fromPositions(this.translateOffset(range.start), this.translateOffset(range.endExclusive));\n    }\n    /**\n     * Finds the word that contains the character at the given offset\n     */\n    findWordContaining(offset) {\n        if (offset < 0 || offset >= this.elements.length) {\n            return undefined;\n        }\n        if (!isWordChar(this.elements[offset])) {\n            return undefined;\n        }\n        // find start\n        let start = offset;\n        while (start > 0 && isWordChar(this.elements[start - 1])) {\n            start--;\n        }\n        // find end\n        let end = offset;\n        while (end < this.elements.length && isWordChar(this.elements[end])) {\n            end++;\n        }\n        return new OffsetRange(start, end);\n    }\n    countLinesIn(range) {\n        return this.translateOffset(range.endExclusive).lineNumber - this.translateOffset(range.start).lineNumber;\n    }\n    isStronglyEqual(offset1, offset2) {\n        return this.elements[offset1] === this.elements[offset2];\n    }\n    extendToFullLines(range) {\n        var _a, _b;\n        const start = (_a = findLastMonotonous(this.firstCharOffsetByLine, x => x <= range.start)) !== null && _a !== void 0 ? _a : 0;\n        const end = (_b = findFirstMonotonous(this.firstCharOffsetByLine, x => range.endExclusive <= x)) !== null && _b !== void 0 ? _b : this.elements.length;\n        return new OffsetRange(start, end);\n    }\n}\nfunction isWordChar(charCode) {\n    return charCode >= 97 /* CharCode.a */ && charCode <= 122 /* CharCode.z */\n        || charCode >= 65 /* CharCode.A */ && charCode <= 90 /* CharCode.Z */\n        || charCode >= 48 /* CharCode.Digit0 */ && charCode <= 57 /* CharCode.Digit9 */;\n}\nconst score = {\n    [0 /* CharBoundaryCategory.WordLower */]: 0,\n    [1 /* CharBoundaryCategory.WordUpper */]: 0,\n    [2 /* CharBoundaryCategory.WordNumber */]: 0,\n    [3 /* CharBoundaryCategory.End */]: 10,\n    [4 /* CharBoundaryCategory.Other */]: 2,\n    [5 /* CharBoundaryCategory.Separator */]: 30,\n    [6 /* CharBoundaryCategory.Space */]: 3,\n    [7 /* CharBoundaryCategory.LineBreakCR */]: 10,\n    [8 /* CharBoundaryCategory.LineBreakLF */]: 10,\n};\nfunction getCategoryBoundaryScore(category) {\n    return score[category];\n}\nfunction getCategory(charCode) {\n    if (charCode === 10 /* CharCode.LineFeed */) {\n        return 8 /* CharBoundaryCategory.LineBreakLF */;\n    }\n    else if (charCode === 13 /* CharCode.CarriageReturn */) {\n        return 7 /* CharBoundaryCategory.LineBreakCR */;\n    }\n    else if (isSpace(charCode)) {\n        return 6 /* CharBoundaryCategory.Space */;\n    }\n    else if (charCode >= 97 /* CharCode.a */ && charCode <= 122 /* CharCode.z */) {\n        return 0 /* CharBoundaryCategory.WordLower */;\n    }\n    else if (charCode >= 65 /* CharCode.A */ && charCode <= 90 /* CharCode.Z */) {\n        return 1 /* CharBoundaryCategory.WordUpper */;\n    }\n    else if (charCode >= 48 /* CharCode.Digit0 */ && charCode <= 57 /* CharCode.Digit9 */) {\n        return 2 /* CharBoundaryCategory.WordNumber */;\n    }\n    else if (charCode === -1) {\n        return 3 /* CharBoundaryCategory.End */;\n    }\n    else if (charCode === 44 /* CharCode.Comma */ || charCode === 59 /* CharCode.Semicolon */) {\n        return 5 /* CharBoundaryCategory.Separator */;\n    }\n    else {\n        return 4 /* CharBoundaryCategory.Other */;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/diff/defaultLinesDiffComputer/utils.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class Array2D {\n    constructor(width, height) {\n        this.width = width;\n        this.height = height;\n        this.array = [];\n        this.array = new Array(width * height);\n    }\n    get(x, y) {\n        return this.array[x + y * this.width];\n    }\n    set(x, y, value) {\n        this.array[x + y * this.width] = value;\n    }\n}\nexport function isSpace(charCode) {\n    return charCode === 32 /* CharCode.Space */ || charCode === 9 /* CharCode.Tab */;\n}\nexport class LineRangeFragment {\n    static getKey(chr) {\n        let key = this.chrKeys.get(chr);\n        if (key === undefined) {\n            key = this.chrKeys.size;\n            this.chrKeys.set(chr, key);\n        }\n        return key;\n    }\n    constructor(range, lines, source) {\n        this.range = range;\n        this.lines = lines;\n        this.source = source;\n        this.histogram = [];\n        let counter = 0;\n        for (let i = range.startLineNumber - 1; i < range.endLineNumberExclusive - 1; i++) {\n            const line = lines[i];\n            for (let j = 0; j < line.length; j++) {\n                counter++;\n                const chr = line[j];\n                const key = LineRangeFragment.getKey(chr);\n                this.histogram[key] = (this.histogram[key] || 0) + 1;\n            }\n            counter++;\n            const key = LineRangeFragment.getKey('\\n');\n            this.histogram[key] = (this.histogram[key] || 0) + 1;\n        }\n        this.totalCount = counter;\n    }\n    computeSimilarity(other) {\n        var _a, _b;\n        let sumDifferences = 0;\n        const maxLength = Math.max(this.histogram.length, other.histogram.length);\n        for (let i = 0; i < maxLength; i++) {\n            sumDifferences += Math.abs(((_a = this.histogram[i]) !== null && _a !== void 0 ? _a : 0) - ((_b = other.histogram[i]) !== null && _b !== void 0 ? _b : 0));\n        }\n        return 1 - (sumDifferences / (this.totalCount + other.totalCount));\n    }\n}\nLineRangeFragment.chrKeys = new Map();\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/diff/documentDiffProvider.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport {};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/diff/legacyLinesDiffComputer.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { LcsDiff } from '../../../base/common/diff/diff.js';\nimport { LinesDiff } from './linesDiffComputer.js';\nimport { RangeMapping, DetailedLineRangeMapping } from './rangeMapping.js';\nimport * as strings from '../../../base/common/strings.js';\nimport { Range } from '../core/range.js';\nimport { assertFn, checkAdjacentItems } from '../../../base/common/assert.js';\nimport { LineRange } from '../core/lineRange.js';\nconst MINIMUM_MATCHING_CHARACTER_LENGTH = 3;\nexport class LegacyLinesDiffComputer {\n    computeDiff(originalLines, modifiedLines, options) {\n        var _a;\n        const diffComputer = new DiffComputer(originalLines, modifiedLines, {\n            maxComputationTime: options.maxComputationTimeMs,\n            shouldIgnoreTrimWhitespace: options.ignoreTrimWhitespace,\n            shouldComputeCharChanges: true,\n            shouldMakePrettyDiff: true,\n            shouldPostProcessCharChanges: true,\n        });\n        const result = diffComputer.computeDiff();\n        const changes = [];\n        let lastChange = null;\n        for (const c of result.changes) {\n            let originalRange;\n            if (c.originalEndLineNumber === 0) {\n                // Insertion\n                originalRange = new LineRange(c.originalStartLineNumber + 1, c.originalStartLineNumber + 1);\n            }\n            else {\n                originalRange = new LineRange(c.originalStartLineNumber, c.originalEndLineNumber + 1);\n            }\n            let modifiedRange;\n            if (c.modifiedEndLineNumber === 0) {\n                // Deletion\n                modifiedRange = new LineRange(c.modifiedStartLineNumber + 1, c.modifiedStartLineNumber + 1);\n            }\n            else {\n                modifiedRange = new LineRange(c.modifiedStartLineNumber, c.modifiedEndLineNumber + 1);\n            }\n            let change = new DetailedLineRangeMapping(originalRange, modifiedRange, (_a = c.charChanges) === null || _a === void 0 ? void 0 : _a.map(c => new RangeMapping(new Range(c.originalStartLineNumber, c.originalStartColumn, c.originalEndLineNumber, c.originalEndColumn), new Range(c.modifiedStartLineNumber, c.modifiedStartColumn, c.modifiedEndLineNumber, c.modifiedEndColumn))));\n            if (lastChange) {\n                if (lastChange.modified.endLineNumberExclusive === change.modified.startLineNumber\n                    || lastChange.original.endLineNumberExclusive === change.original.startLineNumber) {\n                    // join touching diffs. Probably moving diffs up/down in the algorithm causes touching diffs.\n                    change = new DetailedLineRangeMapping(lastChange.original.join(change.original), lastChange.modified.join(change.modified), lastChange.innerChanges && change.innerChanges ?\n                        lastChange.innerChanges.concat(change.innerChanges) : undefined);\n                    changes.pop();\n                }\n            }\n            changes.push(change);\n            lastChange = change;\n        }\n        assertFn(() => {\n            return checkAdjacentItems(changes, (m1, m2) => m2.original.startLineNumber - m1.original.endLineNumberExclusive === m2.modified.startLineNumber - m1.modified.endLineNumberExclusive &&\n                // There has to be an unchanged line in between (otherwise both diffs should have been joined)\n                m1.original.endLineNumberExclusive < m2.original.startLineNumber &&\n                m1.modified.endLineNumberExclusive < m2.modified.startLineNumber);\n        });\n        return new LinesDiff(changes, [], result.quitEarly);\n    }\n}\nfunction computeDiff(originalSequence, modifiedSequence, continueProcessingPredicate, pretty) {\n    const diffAlgo = new LcsDiff(originalSequence, modifiedSequence, continueProcessingPredicate);\n    return diffAlgo.ComputeDiff(pretty);\n}\nclass LineSequence {\n    constructor(lines) {\n        const startColumns = [];\n        const endColumns = [];\n        for (let i = 0, length = lines.length; i < length; i++) {\n            startColumns[i] = getFirstNonBlankColumn(lines[i], 1);\n            endColumns[i] = getLastNonBlankColumn(lines[i], 1);\n        }\n        this.lines = lines;\n        this._startColumns = startColumns;\n        this._endColumns = endColumns;\n    }\n    getElements() {\n        const elements = [];\n        for (let i = 0, len = this.lines.length; i < len; i++) {\n            elements[i] = this.lines[i].substring(this._startColumns[i] - 1, this._endColumns[i] - 1);\n        }\n        return elements;\n    }\n    getStrictElement(index) {\n        return this.lines[index];\n    }\n    getStartLineNumber(i) {\n        return i + 1;\n    }\n    getEndLineNumber(i) {\n        return i + 1;\n    }\n    createCharSequence(shouldIgnoreTrimWhitespace, startIndex, endIndex) {\n        const charCodes = [];\n        const lineNumbers = [];\n        const columns = [];\n        let len = 0;\n        for (let index = startIndex; index <= endIndex; index++) {\n            const lineContent = this.lines[index];\n            const startColumn = (shouldIgnoreTrimWhitespace ? this._startColumns[index] : 1);\n            const endColumn = (shouldIgnoreTrimWhitespace ? this._endColumns[index] : lineContent.length + 1);\n            for (let col = startColumn; col < endColumn; col++) {\n                charCodes[len] = lineContent.charCodeAt(col - 1);\n                lineNumbers[len] = index + 1;\n                columns[len] = col;\n                len++;\n            }\n            if (!shouldIgnoreTrimWhitespace && index < endIndex) {\n                // Add \\n if trim whitespace is not ignored\n                charCodes[len] = 10 /* CharCode.LineFeed */;\n                lineNumbers[len] = index + 1;\n                columns[len] = lineContent.length + 1;\n                len++;\n            }\n        }\n        return new CharSequence(charCodes, lineNumbers, columns);\n    }\n}\nclass CharSequence {\n    constructor(charCodes, lineNumbers, columns) {\n        this._charCodes = charCodes;\n        this._lineNumbers = lineNumbers;\n        this._columns = columns;\n    }\n    toString() {\n        return ('[' + this._charCodes.map((s, idx) => (s === 10 /* CharCode.LineFeed */ ? '\\\\n' : String.fromCharCode(s)) + `-(${this._lineNumbers[idx]},${this._columns[idx]})`).join(', ') + ']');\n    }\n    _assertIndex(index, arr) {\n        if (index < 0 || index >= arr.length) {\n            throw new Error(`Illegal index`);\n        }\n    }\n    getElements() {\n        return this._charCodes;\n    }\n    getStartLineNumber(i) {\n        if (i > 0 && i === this._lineNumbers.length) {\n            // the start line number of the element after the last element\n            // is the end line number of the last element\n            return this.getEndLineNumber(i - 1);\n        }\n        this._assertIndex(i, this._lineNumbers);\n        return this._lineNumbers[i];\n    }\n    getEndLineNumber(i) {\n        if (i === -1) {\n            // the end line number of the element before the first element\n            // is the start line number of the first element\n            return this.getStartLineNumber(i + 1);\n        }\n        this._assertIndex(i, this._lineNumbers);\n        if (this._charCodes[i] === 10 /* CharCode.LineFeed */) {\n            return this._lineNumbers[i] + 1;\n        }\n        return this._lineNumbers[i];\n    }\n    getStartColumn(i) {\n        if (i > 0 && i === this._columns.length) {\n            // the start column of the element after the last element\n            // is the end column of the last element\n            return this.getEndColumn(i - 1);\n        }\n        this._assertIndex(i, this._columns);\n        return this._columns[i];\n    }\n    getEndColumn(i) {\n        if (i === -1) {\n            // the end column of the element before the first element\n            // is the start column of the first element\n            return this.getStartColumn(i + 1);\n        }\n        this._assertIndex(i, this._columns);\n        if (this._charCodes[i] === 10 /* CharCode.LineFeed */) {\n            return 1;\n        }\n        return this._columns[i] + 1;\n    }\n}\nclass CharChange {\n    constructor(originalStartLineNumber, originalStartColumn, originalEndLineNumber, originalEndColumn, modifiedStartLineNumber, modifiedStartColumn, modifiedEndLineNumber, modifiedEndColumn) {\n        this.originalStartLineNumber = originalStartLineNumber;\n        this.originalStartColumn = originalStartColumn;\n        this.originalEndLineNumber = originalEndLineNumber;\n        this.originalEndColumn = originalEndColumn;\n        this.modifiedStartLineNumber = modifiedStartLineNumber;\n        this.modifiedStartColumn = modifiedStartColumn;\n        this.modifiedEndLineNumber = modifiedEndLineNumber;\n        this.modifiedEndColumn = modifiedEndColumn;\n    }\n    static createFromDiffChange(diffChange, originalCharSequence, modifiedCharSequence) {\n        const originalStartLineNumber = originalCharSequence.getStartLineNumber(diffChange.originalStart);\n        const originalStartColumn = originalCharSequence.getStartColumn(diffChange.originalStart);\n        const originalEndLineNumber = originalCharSequence.getEndLineNumber(diffChange.originalStart + diffChange.originalLength - 1);\n        const originalEndColumn = originalCharSequence.getEndColumn(diffChange.originalStart + diffChange.originalLength - 1);\n        const modifiedStartLineNumber = modifiedCharSequence.getStartLineNumber(diffChange.modifiedStart);\n        const modifiedStartColumn = modifiedCharSequence.getStartColumn(diffChange.modifiedStart);\n        const modifiedEndLineNumber = modifiedCharSequence.getEndLineNumber(diffChange.modifiedStart + diffChange.modifiedLength - 1);\n        const modifiedEndColumn = modifiedCharSequence.getEndColumn(diffChange.modifiedStart + diffChange.modifiedLength - 1);\n        return new CharChange(originalStartLineNumber, originalStartColumn, originalEndLineNumber, originalEndColumn, modifiedStartLineNumber, modifiedStartColumn, modifiedEndLineNumber, modifiedEndColumn);\n    }\n}\nfunction postProcessCharChanges(rawChanges) {\n    if (rawChanges.length <= 1) {\n        return rawChanges;\n    }\n    const result = [rawChanges[0]];\n    let prevChange = result[0];\n    for (let i = 1, len = rawChanges.length; i < len; i++) {\n        const currChange = rawChanges[i];\n        const originalMatchingLength = currChange.originalStart - (prevChange.originalStart + prevChange.originalLength);\n        const modifiedMatchingLength = currChange.modifiedStart - (prevChange.modifiedStart + prevChange.modifiedLength);\n        // Both of the above should be equal, but the continueProcessingPredicate may prevent this from being true\n        const matchingLength = Math.min(originalMatchingLength, modifiedMatchingLength);\n        if (matchingLength < MINIMUM_MATCHING_CHARACTER_LENGTH) {\n            // Merge the current change into the previous one\n            prevChange.originalLength = (currChange.originalStart + currChange.originalLength) - prevChange.originalStart;\n            prevChange.modifiedLength = (currChange.modifiedStart + currChange.modifiedLength) - prevChange.modifiedStart;\n        }\n        else {\n            // Add the current change\n            result.push(currChange);\n            prevChange = currChange;\n        }\n    }\n    return result;\n}\nclass LineChange {\n    constructor(originalStartLineNumber, originalEndLineNumber, modifiedStartLineNumber, modifiedEndLineNumber, charChanges) {\n        this.originalStartLineNumber = originalStartLineNumber;\n        this.originalEndLineNumber = originalEndLineNumber;\n        this.modifiedStartLineNumber = modifiedStartLineNumber;\n        this.modifiedEndLineNumber = modifiedEndLineNumber;\n        this.charChanges = charChanges;\n    }\n    static createFromDiffResult(shouldIgnoreTrimWhitespace, diffChange, originalLineSequence, modifiedLineSequence, continueCharDiff, shouldComputeCharChanges, shouldPostProcessCharChanges) {\n        let originalStartLineNumber;\n        let originalEndLineNumber;\n        let modifiedStartLineNumber;\n        let modifiedEndLineNumber;\n        let charChanges = undefined;\n        if (diffChange.originalLength === 0) {\n            originalStartLineNumber = originalLineSequence.getStartLineNumber(diffChange.originalStart) - 1;\n            originalEndLineNumber = 0;\n        }\n        else {\n            originalStartLineNumber = originalLineSequence.getStartLineNumber(diffChange.originalStart);\n            originalEndLineNumber = originalLineSequence.getEndLineNumber(diffChange.originalStart + diffChange.originalLength - 1);\n        }\n        if (diffChange.modifiedLength === 0) {\n            modifiedStartLineNumber = modifiedLineSequence.getStartLineNumber(diffChange.modifiedStart) - 1;\n            modifiedEndLineNumber = 0;\n        }\n        else {\n            modifiedStartLineNumber = modifiedLineSequence.getStartLineNumber(diffChange.modifiedStart);\n            modifiedEndLineNumber = modifiedLineSequence.getEndLineNumber(diffChange.modifiedStart + diffChange.modifiedLength - 1);\n        }\n        if (shouldComputeCharChanges && diffChange.originalLength > 0 && diffChange.originalLength < 20 && diffChange.modifiedLength > 0 && diffChange.modifiedLength < 20 && continueCharDiff()) {\n            // Compute character changes for diff chunks of at most 20 lines...\n            const originalCharSequence = originalLineSequence.createCharSequence(shouldIgnoreTrimWhitespace, diffChange.originalStart, diffChange.originalStart + diffChange.originalLength - 1);\n            const modifiedCharSequence = modifiedLineSequence.createCharSequence(shouldIgnoreTrimWhitespace, diffChange.modifiedStart, diffChange.modifiedStart + diffChange.modifiedLength - 1);\n            if (originalCharSequence.getElements().length > 0 && modifiedCharSequence.getElements().length > 0) {\n                let rawChanges = computeDiff(originalCharSequence, modifiedCharSequence, continueCharDiff, true).changes;\n                if (shouldPostProcessCharChanges) {\n                    rawChanges = postProcessCharChanges(rawChanges);\n                }\n                charChanges = [];\n                for (let i = 0, length = rawChanges.length; i < length; i++) {\n                    charChanges.push(CharChange.createFromDiffChange(rawChanges[i], originalCharSequence, modifiedCharSequence));\n                }\n            }\n        }\n        return new LineChange(originalStartLineNumber, originalEndLineNumber, modifiedStartLineNumber, modifiedEndLineNumber, charChanges);\n    }\n}\nexport class DiffComputer {\n    constructor(originalLines, modifiedLines, opts) {\n        this.shouldComputeCharChanges = opts.shouldComputeCharChanges;\n        this.shouldPostProcessCharChanges = opts.shouldPostProcessCharChanges;\n        this.shouldIgnoreTrimWhitespace = opts.shouldIgnoreTrimWhitespace;\n        this.shouldMakePrettyDiff = opts.shouldMakePrettyDiff;\n        this.originalLines = originalLines;\n        this.modifiedLines = modifiedLines;\n        this.original = new LineSequence(originalLines);\n        this.modified = new LineSequence(modifiedLines);\n        this.continueLineDiff = createContinueProcessingPredicate(opts.maxComputationTime);\n        this.continueCharDiff = createContinueProcessingPredicate(opts.maxComputationTime === 0 ? 0 : Math.min(opts.maxComputationTime, 5000)); // never run after 5s for character changes...\n    }\n    computeDiff() {\n        if (this.original.lines.length === 1 && this.original.lines[0].length === 0) {\n            // empty original => fast path\n            if (this.modified.lines.length === 1 && this.modified.lines[0].length === 0) {\n                return {\n                    quitEarly: false,\n                    changes: []\n                };\n            }\n            return {\n                quitEarly: false,\n                changes: [{\n                        originalStartLineNumber: 1,\n                        originalEndLineNumber: 1,\n                        modifiedStartLineNumber: 1,\n                        modifiedEndLineNumber: this.modified.lines.length,\n                        charChanges: undefined\n                    }]\n            };\n        }\n        if (this.modified.lines.length === 1 && this.modified.lines[0].length === 0) {\n            // empty modified => fast path\n            return {\n                quitEarly: false,\n                changes: [{\n                        originalStartLineNumber: 1,\n                        originalEndLineNumber: this.original.lines.length,\n                        modifiedStartLineNumber: 1,\n                        modifiedEndLineNumber: 1,\n                        charChanges: undefined\n                    }]\n            };\n        }\n        const diffResult = computeDiff(this.original, this.modified, this.continueLineDiff, this.shouldMakePrettyDiff);\n        const rawChanges = diffResult.changes;\n        const quitEarly = diffResult.quitEarly;\n        // The diff is always computed with ignoring trim whitespace\n        // This ensures we get the prettiest diff\n        if (this.shouldIgnoreTrimWhitespace) {\n            const lineChanges = [];\n            for (let i = 0, length = rawChanges.length; i < length; i++) {\n                lineChanges.push(LineChange.createFromDiffResult(this.shouldIgnoreTrimWhitespace, rawChanges[i], this.original, this.modified, this.continueCharDiff, this.shouldComputeCharChanges, this.shouldPostProcessCharChanges));\n            }\n            return {\n                quitEarly: quitEarly,\n                changes: lineChanges\n            };\n        }\n        // Need to post-process and introduce changes where the trim whitespace is different\n        // Note that we are looping starting at -1 to also cover the lines before the first change\n        const result = [];\n        let originalLineIndex = 0;\n        let modifiedLineIndex = 0;\n        for (let i = -1 /* !!!! */, len = rawChanges.length; i < len; i++) {\n            const nextChange = (i + 1 < len ? rawChanges[i + 1] : null);\n            const originalStop = (nextChange ? nextChange.originalStart : this.originalLines.length);\n            const modifiedStop = (nextChange ? nextChange.modifiedStart : this.modifiedLines.length);\n            while (originalLineIndex < originalStop && modifiedLineIndex < modifiedStop) {\n                const originalLine = this.originalLines[originalLineIndex];\n                const modifiedLine = this.modifiedLines[modifiedLineIndex];\n                if (originalLine !== modifiedLine) {\n                    // These lines differ only in trim whitespace\n                    // Check the leading whitespace\n                    {\n                        let originalStartColumn = getFirstNonBlankColumn(originalLine, 1);\n                        let modifiedStartColumn = getFirstNonBlankColumn(modifiedLine, 1);\n                        while (originalStartColumn > 1 && modifiedStartColumn > 1) {\n                            const originalChar = originalLine.charCodeAt(originalStartColumn - 2);\n                            const modifiedChar = modifiedLine.charCodeAt(modifiedStartColumn - 2);\n                            if (originalChar !== modifiedChar) {\n                                break;\n                            }\n                            originalStartColumn--;\n                            modifiedStartColumn--;\n                        }\n                        if (originalStartColumn > 1 || modifiedStartColumn > 1) {\n                            this._pushTrimWhitespaceCharChange(result, originalLineIndex + 1, 1, originalStartColumn, modifiedLineIndex + 1, 1, modifiedStartColumn);\n                        }\n                    }\n                    // Check the trailing whitespace\n                    {\n                        let originalEndColumn = getLastNonBlankColumn(originalLine, 1);\n                        let modifiedEndColumn = getLastNonBlankColumn(modifiedLine, 1);\n                        const originalMaxColumn = originalLine.length + 1;\n                        const modifiedMaxColumn = modifiedLine.length + 1;\n                        while (originalEndColumn < originalMaxColumn && modifiedEndColumn < modifiedMaxColumn) {\n                            const originalChar = originalLine.charCodeAt(originalEndColumn - 1);\n                            const modifiedChar = originalLine.charCodeAt(modifiedEndColumn - 1);\n                            if (originalChar !== modifiedChar) {\n                                break;\n                            }\n                            originalEndColumn++;\n                            modifiedEndColumn++;\n                        }\n                        if (originalEndColumn < originalMaxColumn || modifiedEndColumn < modifiedMaxColumn) {\n                            this._pushTrimWhitespaceCharChange(result, originalLineIndex + 1, originalEndColumn, originalMaxColumn, modifiedLineIndex + 1, modifiedEndColumn, modifiedMaxColumn);\n                        }\n                    }\n                }\n                originalLineIndex++;\n                modifiedLineIndex++;\n            }\n            if (nextChange) {\n                // Emit the actual change\n                result.push(LineChange.createFromDiffResult(this.shouldIgnoreTrimWhitespace, nextChange, this.original, this.modified, this.continueCharDiff, this.shouldComputeCharChanges, this.shouldPostProcessCharChanges));\n                originalLineIndex += nextChange.originalLength;\n                modifiedLineIndex += nextChange.modifiedLength;\n            }\n        }\n        return {\n            quitEarly: quitEarly,\n            changes: result\n        };\n    }\n    _pushTrimWhitespaceCharChange(result, originalLineNumber, originalStartColumn, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedEndColumn) {\n        if (this._mergeTrimWhitespaceCharChange(result, originalLineNumber, originalStartColumn, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedEndColumn)) {\n            // Merged into previous\n            return;\n        }\n        let charChanges = undefined;\n        if (this.shouldComputeCharChanges) {\n            charChanges = [new CharChange(originalLineNumber, originalStartColumn, originalLineNumber, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedLineNumber, modifiedEndColumn)];\n        }\n        result.push(new LineChange(originalLineNumber, originalLineNumber, modifiedLineNumber, modifiedLineNumber, charChanges));\n    }\n    _mergeTrimWhitespaceCharChange(result, originalLineNumber, originalStartColumn, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedEndColumn) {\n        const len = result.length;\n        if (len === 0) {\n            return false;\n        }\n        const prevChange = result[len - 1];\n        if (prevChange.originalEndLineNumber === 0 || prevChange.modifiedEndLineNumber === 0) {\n            // Don't merge with inserts/deletes\n            return false;\n        }\n        if (prevChange.originalEndLineNumber === originalLineNumber && prevChange.modifiedEndLineNumber === modifiedLineNumber) {\n            if (this.shouldComputeCharChanges && prevChange.charChanges) {\n                prevChange.charChanges.push(new CharChange(originalLineNumber, originalStartColumn, originalLineNumber, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedLineNumber, modifiedEndColumn));\n            }\n            return true;\n        }\n        if (prevChange.originalEndLineNumber + 1 === originalLineNumber && prevChange.modifiedEndLineNumber + 1 === modifiedLineNumber) {\n            prevChange.originalEndLineNumber = originalLineNumber;\n            prevChange.modifiedEndLineNumber = modifiedLineNumber;\n            if (this.shouldComputeCharChanges && prevChange.charChanges) {\n                prevChange.charChanges.push(new CharChange(originalLineNumber, originalStartColumn, originalLineNumber, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedLineNumber, modifiedEndColumn));\n            }\n            return true;\n        }\n        return false;\n    }\n}\nfunction getFirstNonBlankColumn(txt, defaultValue) {\n    const r = strings.firstNonWhitespaceIndex(txt);\n    if (r === -1) {\n        return defaultValue;\n    }\n    return r + 1;\n}\nfunction getLastNonBlankColumn(txt, defaultValue) {\n    const r = strings.lastNonWhitespaceIndex(txt);\n    if (r === -1) {\n        return defaultValue;\n    }\n    return r + 2;\n}\nfunction createContinueProcessingPredicate(maximumRuntime) {\n    if (maximumRuntime === 0) {\n        return () => true;\n    }\n    const startTime = Date.now();\n    return () => {\n        return Date.now() - startTime < maximumRuntime;\n    };\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/diff/linesDiffComputer.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class LinesDiff {\n    constructor(changes, \n    /**\n     * Sorted by original line ranges.\n     * The original line ranges and the modified line ranges must be disjoint (but can be touching).\n     */\n    moves, \n    /**\n     * Indicates if the time out was reached.\n     * In that case, the diffs might be an approximation and the user should be asked to rerun the diff with more time.\n     */\n    hitTimeout) {\n        this.changes = changes;\n        this.moves = moves;\n        this.hitTimeout = hitTimeout;\n    }\n}\nexport class MovedText {\n    constructor(lineRangeMapping, changes) {\n        this.lineRangeMapping = lineRangeMapping;\n        this.changes = changes;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/diff/linesDiffComputers.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { LegacyLinesDiffComputer } from './legacyLinesDiffComputer.js';\nimport { DefaultLinesDiffComputer } from './defaultLinesDiffComputer/defaultLinesDiffComputer.js';\nexport const linesDiffComputers = {\n    getLegacy: () => new LegacyLinesDiffComputer(),\n    getDefault: () => new DefaultLinesDiffComputer(),\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/diff/rangeMapping.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { BugIndicatingError } from '../../../base/common/errors.js';\nimport { LineRange } from '../core/lineRange.js';\nimport { Range } from '../core/range.js';\nimport { SingleTextEdit } from '../core/textEdit.js';\n/**\n * Maps a line range in the original text model to a line range in the modified text model.\n */\nexport class LineRangeMapping {\n    static inverse(mapping, originalLineCount, modifiedLineCount) {\n        const result = [];\n        let lastOriginalEndLineNumber = 1;\n        let lastModifiedEndLineNumber = 1;\n        for (const m of mapping) {\n            const r = new LineRangeMapping(new LineRange(lastOriginalEndLineNumber, m.original.startLineNumber), new LineRange(lastModifiedEndLineNumber, m.modified.startLineNumber));\n            if (!r.modified.isEmpty) {\n                result.push(r);\n            }\n            lastOriginalEndLineNumber = m.original.endLineNumberExclusive;\n            lastModifiedEndLineNumber = m.modified.endLineNumberExclusive;\n        }\n        const r = new LineRangeMapping(new LineRange(lastOriginalEndLineNumber, originalLineCount + 1), new LineRange(lastModifiedEndLineNumber, modifiedLineCount + 1));\n        if (!r.modified.isEmpty) {\n            result.push(r);\n        }\n        return result;\n    }\n    static clip(mapping, originalRange, modifiedRange) {\n        const result = [];\n        for (const m of mapping) {\n            const original = m.original.intersect(originalRange);\n            const modified = m.modified.intersect(modifiedRange);\n            if (original && !original.isEmpty && modified && !modified.isEmpty) {\n                result.push(new LineRangeMapping(original, modified));\n            }\n        }\n        return result;\n    }\n    constructor(originalRange, modifiedRange) {\n        this.original = originalRange;\n        this.modified = modifiedRange;\n    }\n    toString() {\n        return `{${this.original.toString()}->${this.modified.toString()}}`;\n    }\n    flip() {\n        return new LineRangeMapping(this.modified, this.original);\n    }\n    join(other) {\n        return new LineRangeMapping(this.original.join(other.original), this.modified.join(other.modified));\n    }\n    /**\n     * This method assumes that the LineRangeMapping describes a valid diff!\n     * I.e. if one range is empty, the other range cannot be the entire document.\n     * It avoids various problems when the line range points to non-existing line-numbers.\n    */\n    toRangeMapping() {\n        const origInclusiveRange = this.original.toInclusiveRange();\n        const modInclusiveRange = this.modified.toInclusiveRange();\n        if (origInclusiveRange && modInclusiveRange) {\n            return new RangeMapping(origInclusiveRange, modInclusiveRange);\n        }\n        else if (this.original.startLineNumber === 1 || this.modified.startLineNumber === 1) {\n            if (!(this.modified.startLineNumber === 1 && this.original.startLineNumber === 1)) {\n                // If one line range starts at 1, the other one must start at 1 as well.\n                throw new BugIndicatingError('not a valid diff');\n            }\n            // Because one range is empty and both ranges start at line 1, none of the ranges can cover all lines.\n            // Thus, `endLineNumberExclusive` is a valid line number.\n            return new RangeMapping(new Range(this.original.startLineNumber, 1, this.original.endLineNumberExclusive, 1), new Range(this.modified.startLineNumber, 1, this.modified.endLineNumberExclusive, 1));\n        }\n        else {\n            // We can assume here that both startLineNumbers are greater than 1.\n            return new RangeMapping(new Range(this.original.startLineNumber - 1, Number.MAX_SAFE_INTEGER, this.original.endLineNumberExclusive - 1, Number.MAX_SAFE_INTEGER), new Range(this.modified.startLineNumber - 1, Number.MAX_SAFE_INTEGER, this.modified.endLineNumberExclusive - 1, Number.MAX_SAFE_INTEGER));\n        }\n    }\n}\n/**\n * Maps a line range in the original text model to a line range in the modified text model.\n * Also contains inner range mappings.\n */\nexport class DetailedLineRangeMapping extends LineRangeMapping {\n    static fromRangeMappings(rangeMappings) {\n        const originalRange = LineRange.join(rangeMappings.map(r => LineRange.fromRangeInclusive(r.originalRange)));\n        const modifiedRange = LineRange.join(rangeMappings.map(r => LineRange.fromRangeInclusive(r.modifiedRange)));\n        return new DetailedLineRangeMapping(originalRange, modifiedRange, rangeMappings);\n    }\n    constructor(originalRange, modifiedRange, innerChanges) {\n        super(originalRange, modifiedRange);\n        this.innerChanges = innerChanges;\n    }\n    flip() {\n        var _a;\n        return new DetailedLineRangeMapping(this.modified, this.original, (_a = this.innerChanges) === null || _a === void 0 ? void 0 : _a.map(c => c.flip()));\n    }\n    withInnerChangesFromLineRanges() {\n        return new DetailedLineRangeMapping(this.original, this.modified, [this.toRangeMapping()]);\n    }\n}\n/**\n * Maps a range in the original text model to a range in the modified text model.\n */\nexport class RangeMapping {\n    constructor(originalRange, modifiedRange) {\n        this.originalRange = originalRange;\n        this.modifiedRange = modifiedRange;\n    }\n    toString() {\n        return `{${this.originalRange.toString()}->${this.modifiedRange.toString()}}`;\n    }\n    flip() {\n        return new RangeMapping(this.modifiedRange, this.originalRange);\n    }\n    /**\n     * Creates a single text edit that describes the change from the original to the modified text.\n    */\n    toTextEdit(modified) {\n        const newText = modified.getValueOfRange(this.modifiedRange);\n        return new SingleTextEdit(this.originalRange, newText);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/editorAction.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class InternalEditorAction {\n    constructor(id, label, alias, metadata, _precondition, _run, _contextKeyService) {\n        this.id = id;\n        this.label = label;\n        this.alias = alias;\n        this.metadata = metadata;\n        this._precondition = _precondition;\n        this._run = _run;\n        this._contextKeyService = _contextKeyService;\n    }\n    isSupported() {\n        return this._contextKeyService.contextMatchesRules(this._precondition);\n    }\n    run(args) {\n        if (!this.isSupported()) {\n            return Promise.resolve(undefined);\n        }\n        return this._run(args);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/editorCommon.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * The type of the `IEditor`.\n */\nexport const EditorType = {\n    ICodeEditor: 'vs.editor.ICodeEditor',\n    IDiffEditor: 'vs.editor.IDiffEditor'\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/editorContextKeys.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../nls.js';\nimport { RawContextKey } from '../../platform/contextkey/common/contextkey.js';\nexport var EditorContextKeys;\n(function (EditorContextKeys) {\n    EditorContextKeys.editorSimpleInput = new RawContextKey('editorSimpleInput', false, true);\n    /**\n     * A context key that is set when the editor's text has focus (cursor is blinking).\n     * Is false when focus is in simple editor widgets (repl input, scm commit input).\n     */\n    EditorContextKeys.editorTextFocus = new RawContextKey('editorTextFocus', false, nls.localize('editorTextFocus', \"Whether the editor text has focus (cursor is blinking)\"));\n    /**\n     * A context key that is set when the editor's text or an editor's widget has focus.\n     */\n    EditorContextKeys.focus = new RawContextKey('editorFocus', false, nls.localize('editorFocus', \"Whether the editor or an editor widget has focus (e.g. focus is in the find widget)\"));\n    /**\n     * A context key that is set when any editor input has focus (regular editor, repl input...).\n     */\n    EditorContextKeys.textInputFocus = new RawContextKey('textInputFocus', false, nls.localize('textInputFocus', \"Whether an editor or a rich text input has focus (cursor is blinking)\"));\n    EditorContextKeys.readOnly = new RawContextKey('editorReadonly', false, nls.localize('editorReadonly', \"Whether the editor is read-only\"));\n    EditorContextKeys.inDiffEditor = new RawContextKey('inDiffEditor', false, nls.localize('inDiffEditor', \"Whether the context is a diff editor\"));\n    EditorContextKeys.isEmbeddedDiffEditor = new RawContextKey('isEmbeddedDiffEditor', false, nls.localize('isEmbeddedDiffEditor', \"Whether the context is an embedded diff editor\"));\n    EditorContextKeys.inMultiDiffEditor = new RawContextKey('inMultiDiffEditor', false, nls.localize('inMultiDiffEditor', \"Whether the context is a multi diff editor\"));\n    EditorContextKeys.multiDiffEditorAllCollapsed = new RawContextKey('multiDiffEditorAllCollapsed', undefined, nls.localize('multiDiffEditorAllCollapsed', \"Whether all files in multi diff editor are collapsed\"));\n    EditorContextKeys.hasChanges = new RawContextKey('diffEditorHasChanges', false, nls.localize('diffEditorHasChanges', \"Whether the diff editor has changes\"));\n    EditorContextKeys.comparingMovedCode = new RawContextKey('comparingMovedCode', false, nls.localize('comparingMovedCode', \"Whether a moved code block is selected for comparison\"));\n    EditorContextKeys.accessibleDiffViewerVisible = new RawContextKey('accessibleDiffViewerVisible', false, nls.localize('accessibleDiffViewerVisible', \"Whether the accessible diff viewer is visible\"));\n    EditorContextKeys.diffEditorRenderSideBySideInlineBreakpointReached = new RawContextKey('diffEditorRenderSideBySideInlineBreakpointReached', false, nls.localize('diffEditorRenderSideBySideInlineBreakpointReached', \"Whether the diff editor render side by side inline breakpoint is reached\"));\n    EditorContextKeys.diffEditorInlineMode = new RawContextKey('diffEditorInlineMode', false, nls.localize('diffEditorInlineMode', \"Whether inline mode is active\"));\n    EditorContextKeys.diffEditorOriginalWritable = new RawContextKey('diffEditorOriginalWritable', false, nls.localize('diffEditorOriginalWritable', \"Whether modified is writable in the diff editor\"));\n    EditorContextKeys.diffEditorModifiedWritable = new RawContextKey('diffEditorModifiedWritable', false, nls.localize('diffEditorModifiedWritable', \"Whether modified is writable in the diff editor\"));\n    EditorContextKeys.diffEditorOriginalUri = new RawContextKey('diffEditorOriginalUri', '', nls.localize('diffEditorOriginalUri', \"The uri of the original document\"));\n    EditorContextKeys.diffEditorModifiedUri = new RawContextKey('diffEditorModifiedUri', '', nls.localize('diffEditorModifiedUri', \"The uri of the modified document\"));\n    EditorContextKeys.columnSelection = new RawContextKey('editorColumnSelection', false, nls.localize('editorColumnSelection', \"Whether `editor.columnSelection` is enabled\"));\n    EditorContextKeys.writable = EditorContextKeys.readOnly.toNegated();\n    EditorContextKeys.hasNonEmptySelection = new RawContextKey('editorHasSelection', false, nls.localize('editorHasSelection', \"Whether the editor has text selected\"));\n    EditorContextKeys.hasOnlyEmptySelection = EditorContextKeys.hasNonEmptySelection.toNegated();\n    EditorContextKeys.hasMultipleSelections = new RawContextKey('editorHasMultipleSelections', false, nls.localize('editorHasMultipleSelections', \"Whether the editor has multiple selections\"));\n    EditorContextKeys.hasSingleSelection = EditorContextKeys.hasMultipleSelections.toNegated();\n    EditorContextKeys.tabMovesFocus = new RawContextKey('editorTabMovesFocus', false, nls.localize('editorTabMovesFocus', \"Whether `Tab` will move focus out of the editor\"));\n    EditorContextKeys.tabDoesNotMoveFocus = EditorContextKeys.tabMovesFocus.toNegated();\n    EditorContextKeys.isInEmbeddedEditor = new RawContextKey('isInEmbeddedEditor', false, true);\n    EditorContextKeys.canUndo = new RawContextKey('canUndo', false, true);\n    EditorContextKeys.canRedo = new RawContextKey('canRedo', false, true);\n    EditorContextKeys.hoverVisible = new RawContextKey('editorHoverVisible', false, nls.localize('editorHoverVisible', \"Whether the editor hover is visible\"));\n    EditorContextKeys.hoverFocused = new RawContextKey('editorHoverFocused', false, nls.localize('editorHoverFocused', \"Whether the editor hover is focused\"));\n    EditorContextKeys.stickyScrollFocused = new RawContextKey('stickyScrollFocused', false, nls.localize('stickyScrollFocused', \"Whether the sticky scroll is focused\"));\n    EditorContextKeys.stickyScrollVisible = new RawContextKey('stickyScrollVisible', false, nls.localize('stickyScrollVisible', \"Whether the sticky scroll is visible\"));\n    EditorContextKeys.standaloneColorPickerVisible = new RawContextKey('standaloneColorPickerVisible', false, nls.localize('standaloneColorPickerVisible', \"Whether the standalone color picker is visible\"));\n    EditorContextKeys.standaloneColorPickerFocused = new RawContextKey('standaloneColorPickerFocused', false, nls.localize('standaloneColorPickerFocused', \"Whether the standalone color picker is focused\"));\n    /**\n     * A context key that is set when an editor is part of a larger editor, like notebooks or\n     * (future) a diff editor\n     */\n    EditorContextKeys.inCompositeEditor = new RawContextKey('inCompositeEditor', undefined, nls.localize('inCompositeEditor', \"Whether the editor is part of a larger editor (e.g. notebooks)\"));\n    EditorContextKeys.notInCompositeEditor = EditorContextKeys.inCompositeEditor.toNegated();\n    // -- mode context keys\n    EditorContextKeys.languageId = new RawContextKey('editorLangId', '', nls.localize('editorLangId', \"The language identifier of the editor\"));\n    EditorContextKeys.hasCompletionItemProvider = new RawContextKey('editorHasCompletionItemProvider', false, nls.localize('editorHasCompletionItemProvider', \"Whether the editor has a completion item provider\"));\n    EditorContextKeys.hasCodeActionsProvider = new RawContextKey('editorHasCodeActionsProvider', false, nls.localize('editorHasCodeActionsProvider', \"Whether the editor has a code actions provider\"));\n    EditorContextKeys.hasCodeLensProvider = new RawContextKey('editorHasCodeLensProvider', false, nls.localize('editorHasCodeLensProvider', \"Whether the editor has a code lens provider\"));\n    EditorContextKeys.hasDefinitionProvider = new RawContextKey('editorHasDefinitionProvider', false, nls.localize('editorHasDefinitionProvider', \"Whether the editor has a definition provider\"));\n    EditorContextKeys.hasDeclarationProvider = new RawContextKey('editorHasDeclarationProvider', false, nls.localize('editorHasDeclarationProvider', \"Whether the editor has a declaration provider\"));\n    EditorContextKeys.hasImplementationProvider = new RawContextKey('editorHasImplementationProvider', false, nls.localize('editorHasImplementationProvider', \"Whether the editor has an implementation provider\"));\n    EditorContextKeys.hasTypeDefinitionProvider = new RawContextKey('editorHasTypeDefinitionProvider', false, nls.localize('editorHasTypeDefinitionProvider', \"Whether the editor has a type definition provider\"));\n    EditorContextKeys.hasHoverProvider = new RawContextKey('editorHasHoverProvider', false, nls.localize('editorHasHoverProvider', \"Whether the editor has a hover provider\"));\n    EditorContextKeys.hasDocumentHighlightProvider = new RawContextKey('editorHasDocumentHighlightProvider', false, nls.localize('editorHasDocumentHighlightProvider', \"Whether the editor has a document highlight provider\"));\n    EditorContextKeys.hasDocumentSymbolProvider = new RawContextKey('editorHasDocumentSymbolProvider', false, nls.localize('editorHasDocumentSymbolProvider', \"Whether the editor has a document symbol provider\"));\n    EditorContextKeys.hasReferenceProvider = new RawContextKey('editorHasReferenceProvider', false, nls.localize('editorHasReferenceProvider', \"Whether the editor has a reference provider\"));\n    EditorContextKeys.hasRenameProvider = new RawContextKey('editorHasRenameProvider', false, nls.localize('editorHasRenameProvider', \"Whether the editor has a rename provider\"));\n    EditorContextKeys.hasSignatureHelpProvider = new RawContextKey('editorHasSignatureHelpProvider', false, nls.localize('editorHasSignatureHelpProvider', \"Whether the editor has a signature help provider\"));\n    EditorContextKeys.hasInlayHintsProvider = new RawContextKey('editorHasInlayHintsProvider', false, nls.localize('editorHasInlayHintsProvider', \"Whether the editor has an inline hints provider\"));\n    // -- mode context keys: formatting\n    EditorContextKeys.hasDocumentFormattingProvider = new RawContextKey('editorHasDocumentFormattingProvider', false, nls.localize('editorHasDocumentFormattingProvider', \"Whether the editor has a document formatting provider\"));\n    EditorContextKeys.hasDocumentSelectionFormattingProvider = new RawContextKey('editorHasDocumentSelectionFormattingProvider', false, nls.localize('editorHasDocumentSelectionFormattingProvider', \"Whether the editor has a document selection formatting provider\"));\n    EditorContextKeys.hasMultipleDocumentFormattingProvider = new RawContextKey('editorHasMultipleDocumentFormattingProvider', false, nls.localize('editorHasMultipleDocumentFormattingProvider', \"Whether the editor has multiple document formatting providers\"));\n    EditorContextKeys.hasMultipleDocumentSelectionFormattingProvider = new RawContextKey('editorHasMultipleDocumentSelectionFormattingProvider', false, nls.localize('editorHasMultipleDocumentSelectionFormattingProvider', \"Whether the editor has multiple document selection formatting providers\"));\n})(EditorContextKeys || (EditorContextKeys = {}));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/editorFeatures.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nconst editorFeatures = [];\n/**\n * Registers an editor feature. Editor features will be instantiated only once, as soon as\n * the first code editor is instantiated.\n */\nexport function registerEditorFeature(ctor) {\n    editorFeatures.push(ctor);\n}\nexport function getEditorFeatures() {\n    return editorFeatures.slice(0);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/editorTheme.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class EditorTheme {\n    get type() {\n        return this._theme.type;\n    }\n    get value() {\n        return this._theme;\n    }\n    constructor(theme) {\n        this._theme = theme;\n    }\n    update(theme) {\n        this._theme = theme;\n    }\n    getColor(color) {\n        return this._theme.getColor(color);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/encodedTokenAttributes.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n */\nexport class TokenMetadata {\n    static getLanguageId(metadata) {\n        return (metadata & 255 /* MetadataConsts.LANGUAGEID_MASK */) >>> 0 /* MetadataConsts.LANGUAGEID_OFFSET */;\n    }\n    static getTokenType(metadata) {\n        return (metadata & 768 /* MetadataConsts.TOKEN_TYPE_MASK */) >>> 8 /* MetadataConsts.TOKEN_TYPE_OFFSET */;\n    }\n    static containsBalancedBrackets(metadata) {\n        return (metadata & 1024 /* MetadataConsts.BALANCED_BRACKETS_MASK */) !== 0;\n    }\n    static getFontStyle(metadata) {\n        return (metadata & 30720 /* MetadataConsts.FONT_STYLE_MASK */) >>> 11 /* MetadataConsts.FONT_STYLE_OFFSET */;\n    }\n    static getForeground(metadata) {\n        return (metadata & 16744448 /* MetadataConsts.FOREGROUND_MASK */) >>> 15 /* MetadataConsts.FOREGROUND_OFFSET */;\n    }\n    static getBackground(metadata) {\n        return (metadata & 4278190080 /* MetadataConsts.BACKGROUND_MASK */) >>> 24 /* MetadataConsts.BACKGROUND_OFFSET */;\n    }\n    static getClassNameFromMetadata(metadata) {\n        const foreground = this.getForeground(metadata);\n        let className = 'mtk' + foreground;\n        const fontStyle = this.getFontStyle(metadata);\n        if (fontStyle & 1 /* FontStyle.Italic */) {\n            className += ' mtki';\n        }\n        if (fontStyle & 2 /* FontStyle.Bold */) {\n            className += ' mtkb';\n        }\n        if (fontStyle & 4 /* FontStyle.Underline */) {\n            className += ' mtku';\n        }\n        if (fontStyle & 8 /* FontStyle.Strikethrough */) {\n            className += ' mtks';\n        }\n        return className;\n    }\n    static getInlineStyleFromMetadata(metadata, colorMap) {\n        const foreground = this.getForeground(metadata);\n        const fontStyle = this.getFontStyle(metadata);\n        let result = `color: ${colorMap[foreground]};`;\n        if (fontStyle & 1 /* FontStyle.Italic */) {\n            result += 'font-style: italic;';\n        }\n        if (fontStyle & 2 /* FontStyle.Bold */) {\n            result += 'font-weight: bold;';\n        }\n        let textDecoration = '';\n        if (fontStyle & 4 /* FontStyle.Underline */) {\n            textDecoration += ' underline';\n        }\n        if (fontStyle & 8 /* FontStyle.Strikethrough */) {\n            textDecoration += ' line-through';\n        }\n        if (textDecoration) {\n            result += `text-decoration:${textDecoration};`;\n        }\n        return result;\n    }\n    static getPresentationFromMetadata(metadata) {\n        const foreground = this.getForeground(metadata);\n        const fontStyle = this.getFontStyle(metadata);\n        return {\n            foreground: foreground,\n            italic: Boolean(fontStyle & 1 /* FontStyle.Italic */),\n            bold: Boolean(fontStyle & 2 /* FontStyle.Bold */),\n            underline: Boolean(fontStyle & 4 /* FontStyle.Underline */),\n            strikethrough: Boolean(fontStyle & 8 /* FontStyle.Strikethrough */),\n        };\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/languageFeatureRegistry.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../base/common/event.js';\nimport { toDisposable } from '../../base/common/lifecycle.js';\nimport { shouldSynchronizeModel } from './model.js';\nimport { score } from './languageSelector.js';\nfunction isExclusive(selector) {\n    if (typeof selector === 'string') {\n        return false;\n    }\n    else if (Array.isArray(selector)) {\n        return selector.every(isExclusive);\n    }\n    else {\n        return !!selector.exclusive; // TODO: microsoft/TypeScript#42768\n    }\n}\nclass MatchCandidate {\n    constructor(uri, languageId, notebookUri, notebookType) {\n        this.uri = uri;\n        this.languageId = languageId;\n        this.notebookUri = notebookUri;\n        this.notebookType = notebookType;\n    }\n    equals(other) {\n        var _a, _b;\n        return this.notebookType === other.notebookType\n            && this.languageId === other.languageId\n            && this.uri.toString() === other.uri.toString()\n            && ((_a = this.notebookUri) === null || _a === void 0 ? void 0 : _a.toString()) === ((_b = other.notebookUri) === null || _b === void 0 ? void 0 : _b.toString());\n    }\n}\nexport class LanguageFeatureRegistry {\n    constructor(_notebookInfoResolver) {\n        this._notebookInfoResolver = _notebookInfoResolver;\n        this._clock = 0;\n        this._entries = [];\n        this._onDidChange = new Emitter();\n        this.onDidChange = this._onDidChange.event;\n    }\n    register(selector, provider) {\n        let entry = {\n            selector,\n            provider,\n            _score: -1,\n            _time: this._clock++\n        };\n        this._entries.push(entry);\n        this._lastCandidate = undefined;\n        this._onDidChange.fire(this._entries.length);\n        return toDisposable(() => {\n            if (entry) {\n                const idx = this._entries.indexOf(entry);\n                if (idx >= 0) {\n                    this._entries.splice(idx, 1);\n                    this._lastCandidate = undefined;\n                    this._onDidChange.fire(this._entries.length);\n                    entry = undefined;\n                }\n            }\n        });\n    }\n    has(model) {\n        return this.all(model).length > 0;\n    }\n    all(model) {\n        if (!model) {\n            return [];\n        }\n        this._updateScores(model);\n        const result = [];\n        // from registry\n        for (const entry of this._entries) {\n            if (entry._score > 0) {\n                result.push(entry.provider);\n            }\n        }\n        return result;\n    }\n    ordered(model) {\n        const result = [];\n        this._orderedForEach(model, entry => result.push(entry.provider));\n        return result;\n    }\n    orderedGroups(model) {\n        const result = [];\n        let lastBucket;\n        let lastBucketScore;\n        this._orderedForEach(model, entry => {\n            if (lastBucket && lastBucketScore === entry._score) {\n                lastBucket.push(entry.provider);\n            }\n            else {\n                lastBucketScore = entry._score;\n                lastBucket = [entry.provider];\n                result.push(lastBucket);\n            }\n        });\n        return result;\n    }\n    _orderedForEach(model, callback) {\n        this._updateScores(model);\n        for (const entry of this._entries) {\n            if (entry._score > 0) {\n                callback(entry);\n            }\n        }\n    }\n    _updateScores(model) {\n        var _a, _b;\n        const notebookInfo = (_a = this._notebookInfoResolver) === null || _a === void 0 ? void 0 : _a.call(this, model.uri);\n        // use the uri (scheme, pattern) of the notebook info iff we have one\n        // otherwise it's the model's/document's uri\n        const candidate = notebookInfo\n            ? new MatchCandidate(model.uri, model.getLanguageId(), notebookInfo.uri, notebookInfo.type)\n            : new MatchCandidate(model.uri, model.getLanguageId(), undefined, undefined);\n        if ((_b = this._lastCandidate) === null || _b === void 0 ? void 0 : _b.equals(candidate)) {\n            // nothing has changed\n            return;\n        }\n        this._lastCandidate = candidate;\n        for (const entry of this._entries) {\n            entry._score = score(entry.selector, candidate.uri, candidate.languageId, shouldSynchronizeModel(model), candidate.notebookUri, candidate.notebookType);\n            if (isExclusive(entry.selector) && entry._score > 0) {\n                // support for one exclusive selector that overwrites\n                // any other selector\n                for (const entry of this._entries) {\n                    entry._score = 0;\n                }\n                entry._score = 1000;\n                break;\n            }\n        }\n        // needs sorting\n        this._entries.sort(LanguageFeatureRegistry._compareByScoreAndTime);\n    }\n    static _compareByScoreAndTime(a, b) {\n        if (a._score < b._score) {\n            return 1;\n        }\n        else if (a._score > b._score) {\n            return -1;\n        }\n        // De-prioritize built-in providers\n        if (isBuiltinSelector(a.selector) && !isBuiltinSelector(b.selector)) {\n            return 1;\n        }\n        else if (!isBuiltinSelector(a.selector) && isBuiltinSelector(b.selector)) {\n            return -1;\n        }\n        if (a._time < b._time) {\n            return 1;\n        }\n        else if (a._time > b._time) {\n            return -1;\n        }\n        else {\n            return 0;\n        }\n    }\n}\nfunction isBuiltinSelector(selector) {\n    if (typeof selector === 'string') {\n        return false;\n    }\n    if (Array.isArray(selector)) {\n        return selector.some(isBuiltinSelector);\n    }\n    return Boolean(selector.isBuiltin);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/languageSelector.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { match as matchGlobPattern } from '../../base/common/glob.js';\nimport { normalize } from '../../base/common/path.js';\nexport function score(selector, candidateUri, candidateLanguage, candidateIsSynchronized, candidateNotebookUri, candidateNotebookType) {\n    if (Array.isArray(selector)) {\n        // array -> take max individual value\n        let ret = 0;\n        for (const filter of selector) {\n            const value = score(filter, candidateUri, candidateLanguage, candidateIsSynchronized, candidateNotebookUri, candidateNotebookType);\n            if (value === 10) {\n                return value; // already at the highest\n            }\n            if (value > ret) {\n                ret = value;\n            }\n        }\n        return ret;\n    }\n    else if (typeof selector === 'string') {\n        if (!candidateIsSynchronized) {\n            return 0;\n        }\n        // short-hand notion, desugars to\n        // 'fooLang' -> { language: 'fooLang'}\n        // '*' -> { language: '*' }\n        if (selector === '*') {\n            return 5;\n        }\n        else if (selector === candidateLanguage) {\n            return 10;\n        }\n        else {\n            return 0;\n        }\n    }\n    else if (selector) {\n        // filter -> select accordingly, use defaults for scheme\n        const { language, pattern, scheme, hasAccessToAllModels, notebookType } = selector; // TODO: microsoft/TypeScript#42768\n        if (!candidateIsSynchronized && !hasAccessToAllModels) {\n            return 0;\n        }\n        // selector targets a notebook -> use the notebook uri instead\n        // of the \"normal\" document uri.\n        if (notebookType && candidateNotebookUri) {\n            candidateUri = candidateNotebookUri;\n        }\n        let ret = 0;\n        if (scheme) {\n            if (scheme === candidateUri.scheme) {\n                ret = 10;\n            }\n            else if (scheme === '*') {\n                ret = 5;\n            }\n            else {\n                return 0;\n            }\n        }\n        if (language) {\n            if (language === candidateLanguage) {\n                ret = 10;\n            }\n            else if (language === '*') {\n                ret = Math.max(ret, 5);\n            }\n            else {\n                return 0;\n            }\n        }\n        if (notebookType) {\n            if (notebookType === candidateNotebookType) {\n                ret = 10;\n            }\n            else if (notebookType === '*' && candidateNotebookType !== undefined) {\n                ret = Math.max(ret, 5);\n            }\n            else {\n                return 0;\n            }\n        }\n        if (pattern) {\n            let normalizedPattern;\n            if (typeof pattern === 'string') {\n                normalizedPattern = pattern;\n            }\n            else {\n                // Since this pattern has a `base` property, we need\n                // to normalize this path first before passing it on\n                // because we will compare it against `Uri.fsPath`\n                // which uses platform specific separators.\n                // Refs: https://github.com/microsoft/vscode/issues/99938\n                normalizedPattern = { ...pattern, base: normalize(pattern.base) };\n            }\n            if (normalizedPattern === candidateUri.fsPath || matchGlobPattern(normalizedPattern, candidateUri.fsPath)) {\n                ret = 10;\n            }\n            else {\n                return 0;\n            }\n        }\n        return ret;\n    }\n    else {\n        return 0;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/languages/autoIndent.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../base/common/strings.js';\nimport { IndentAction } from './languageConfiguration.js';\nimport { IndentationContextProcessor, isLanguageDifferentFromLineStart, ProcessedIndentRulesSupport } from './supports/indentationLineProcessor.js';\n/**\n * Get nearest preceding line which doesn't match unIndentPattern or contains all whitespace.\n * Result:\n * -1: run into the boundary of embedded languages\n * 0: every line above are invalid\n * else: nearest preceding line of the same language\n */\nfunction getPrecedingValidLine(model, lineNumber, processedIndentRulesSupport) {\n    const languageId = model.tokenization.getLanguageIdAtPosition(lineNumber, 0);\n    if (lineNumber > 1) {\n        let lastLineNumber;\n        let resultLineNumber = -1;\n        for (lastLineNumber = lineNumber - 1; lastLineNumber >= 1; lastLineNumber--) {\n            if (model.tokenization.getLanguageIdAtPosition(lastLineNumber, 0) !== languageId) {\n                return resultLineNumber;\n            }\n            const text = model.getLineContent(lastLineNumber);\n            if (processedIndentRulesSupport.shouldIgnore(lastLineNumber) || /^\\s+$/.test(text) || text === '') {\n                resultLineNumber = lastLineNumber;\n                continue;\n            }\n            return lastLineNumber;\n        }\n    }\n    return -1;\n}\n/**\n * Get inherited indentation from above lines.\n * 1. Find the nearest preceding line which doesn't match unIndentedLinePattern.\n * 2. If this line matches indentNextLinePattern or increaseIndentPattern, it means that the indent level of `lineNumber` should be 1 greater than this line.\n * 3. If this line doesn't match any indent rules\n *   a. check whether the line above it matches indentNextLinePattern\n *   b. If not, the indent level of this line is the result\n *   c. If so, it means the indent of this line is *temporary*, go upward utill we find a line whose indent is not temporary (the same workflow a -> b -> c).\n * 4. Otherwise, we fail to get an inherited indent from aboves. Return null and we should not touch the indent of `lineNumber`\n *\n * This function only return the inherited indent based on above lines, it doesn't check whether current line should decrease or not.\n */\nexport function getInheritIndentForLine(autoIndent, model, lineNumber, honorIntentialIndent = true, languageConfigurationService) {\n    if (autoIndent < 4 /* EditorAutoIndentStrategy.Full */) {\n        return null;\n    }\n    const indentRulesSupport = languageConfigurationService.getLanguageConfiguration(model.tokenization.getLanguageId()).indentRulesSupport;\n    if (!indentRulesSupport) {\n        return null;\n    }\n    const processedIndentRulesSupport = new ProcessedIndentRulesSupport(model, indentRulesSupport, languageConfigurationService);\n    if (lineNumber <= 1) {\n        return {\n            indentation: '',\n            action: null\n        };\n    }\n    // Use no indent if this is the first non-blank line\n    for (let priorLineNumber = lineNumber - 1; priorLineNumber > 0; priorLineNumber--) {\n        if (model.getLineContent(priorLineNumber) !== '') {\n            break;\n        }\n        if (priorLineNumber === 1) {\n            return {\n                indentation: '',\n                action: null\n            };\n        }\n    }\n    const precedingUnIgnoredLine = getPrecedingValidLine(model, lineNumber, processedIndentRulesSupport);\n    if (precedingUnIgnoredLine < 0) {\n        return null;\n    }\n    else if (precedingUnIgnoredLine < 1) {\n        return {\n            indentation: '',\n            action: null\n        };\n    }\n    if (processedIndentRulesSupport.shouldIncrease(precedingUnIgnoredLine) || processedIndentRulesSupport.shouldIndentNextLine(precedingUnIgnoredLine)) {\n        const precedingUnIgnoredLineContent = model.getLineContent(precedingUnIgnoredLine);\n        return {\n            indentation: strings.getLeadingWhitespace(precedingUnIgnoredLineContent),\n            action: IndentAction.Indent,\n            line: precedingUnIgnoredLine\n        };\n    }\n    else if (processedIndentRulesSupport.shouldDecrease(precedingUnIgnoredLine)) {\n        const precedingUnIgnoredLineContent = model.getLineContent(precedingUnIgnoredLine);\n        return {\n            indentation: strings.getLeadingWhitespace(precedingUnIgnoredLineContent),\n            action: null,\n            line: precedingUnIgnoredLine\n        };\n    }\n    else {\n        // precedingUnIgnoredLine can not be ignored.\n        // it doesn't increase indent of following lines\n        // it doesn't increase just next line\n        // so current line is not affect by precedingUnIgnoredLine\n        // and then we should get a correct inheritted indentation from above lines\n        if (precedingUnIgnoredLine === 1) {\n            return {\n                indentation: strings.getLeadingWhitespace(model.getLineContent(precedingUnIgnoredLine)),\n                action: null,\n                line: precedingUnIgnoredLine\n            };\n        }\n        const previousLine = precedingUnIgnoredLine - 1;\n        const previousLineIndentMetadata = indentRulesSupport.getIndentMetadata(model.getLineContent(previousLine));\n        if (!(previousLineIndentMetadata & (1 /* IndentConsts.INCREASE_MASK */ | 2 /* IndentConsts.DECREASE_MASK */)) &&\n            (previousLineIndentMetadata & 4 /* IndentConsts.INDENT_NEXTLINE_MASK */)) {\n            let stopLine = 0;\n            for (let i = previousLine - 1; i > 0; i--) {\n                if (processedIndentRulesSupport.shouldIndentNextLine(i)) {\n                    continue;\n                }\n                stopLine = i;\n                break;\n            }\n            return {\n                indentation: strings.getLeadingWhitespace(model.getLineContent(stopLine + 1)),\n                action: null,\n                line: stopLine + 1\n            };\n        }\n        if (honorIntentialIndent) {\n            return {\n                indentation: strings.getLeadingWhitespace(model.getLineContent(precedingUnIgnoredLine)),\n                action: null,\n                line: precedingUnIgnoredLine\n            };\n        }\n        else {\n            // search from precedingUnIgnoredLine until we find one whose indent is not temporary\n            for (let i = precedingUnIgnoredLine; i > 0; i--) {\n                if (processedIndentRulesSupport.shouldIncrease(i)) {\n                    return {\n                        indentation: strings.getLeadingWhitespace(model.getLineContent(i)),\n                        action: IndentAction.Indent,\n                        line: i\n                    };\n                }\n                else if (processedIndentRulesSupport.shouldIndentNextLine(i)) {\n                    let stopLine = 0;\n                    for (let j = i - 1; j > 0; j--) {\n                        if (processedIndentRulesSupport.shouldIndentNextLine(i)) {\n                            continue;\n                        }\n                        stopLine = j;\n                        break;\n                    }\n                    return {\n                        indentation: strings.getLeadingWhitespace(model.getLineContent(stopLine + 1)),\n                        action: null,\n                        line: stopLine + 1\n                    };\n                }\n                else if (processedIndentRulesSupport.shouldDecrease(i)) {\n                    return {\n                        indentation: strings.getLeadingWhitespace(model.getLineContent(i)),\n                        action: null,\n                        line: i\n                    };\n                }\n            }\n            return {\n                indentation: strings.getLeadingWhitespace(model.getLineContent(1)),\n                action: null,\n                line: 1\n            };\n        }\n    }\n}\nexport function getGoodIndentForLine(autoIndent, virtualModel, languageId, lineNumber, indentConverter, languageConfigurationService) {\n    if (autoIndent < 4 /* EditorAutoIndentStrategy.Full */) {\n        return null;\n    }\n    const richEditSupport = languageConfigurationService.getLanguageConfiguration(languageId);\n    if (!richEditSupport) {\n        return null;\n    }\n    const indentRulesSupport = languageConfigurationService.getLanguageConfiguration(languageId).indentRulesSupport;\n    if (!indentRulesSupport) {\n        return null;\n    }\n    const processedIndentRulesSupport = new ProcessedIndentRulesSupport(virtualModel, indentRulesSupport, languageConfigurationService);\n    const indent = getInheritIndentForLine(autoIndent, virtualModel, lineNumber, undefined, languageConfigurationService);\n    if (indent) {\n        const inheritLine = indent.line;\n        if (inheritLine !== undefined) {\n            // Apply enter action as long as there are only whitespace lines between inherited line and this line.\n            let shouldApplyEnterRules = true;\n            for (let inBetweenLine = inheritLine; inBetweenLine < lineNumber - 1; inBetweenLine++) {\n                if (!/^\\s*$/.test(virtualModel.getLineContent(inBetweenLine))) {\n                    shouldApplyEnterRules = false;\n                    break;\n                }\n            }\n            if (shouldApplyEnterRules) {\n                const enterResult = richEditSupport.onEnter(autoIndent, '', virtualModel.getLineContent(inheritLine), '');\n                if (enterResult) {\n                    let indentation = strings.getLeadingWhitespace(virtualModel.getLineContent(inheritLine));\n                    if (enterResult.removeText) {\n                        indentation = indentation.substring(0, indentation.length - enterResult.removeText);\n                    }\n                    if ((enterResult.indentAction === IndentAction.Indent) ||\n                        (enterResult.indentAction === IndentAction.IndentOutdent)) {\n                        indentation = indentConverter.shiftIndent(indentation);\n                    }\n                    else if (enterResult.indentAction === IndentAction.Outdent) {\n                        indentation = indentConverter.unshiftIndent(indentation);\n                    }\n                    if (processedIndentRulesSupport.shouldDecrease(lineNumber)) {\n                        indentation = indentConverter.unshiftIndent(indentation);\n                    }\n                    if (enterResult.appendText) {\n                        indentation += enterResult.appendText;\n                    }\n                    return strings.getLeadingWhitespace(indentation);\n                }\n            }\n        }\n        if (processedIndentRulesSupport.shouldDecrease(lineNumber)) {\n            if (indent.action === IndentAction.Indent) {\n                return indent.indentation;\n            }\n            else {\n                return indentConverter.unshiftIndent(indent.indentation);\n            }\n        }\n        else {\n            if (indent.action === IndentAction.Indent) {\n                return indentConverter.shiftIndent(indent.indentation);\n            }\n            else {\n                return indent.indentation;\n            }\n        }\n    }\n    return null;\n}\nexport function getIndentForEnter(autoIndent, model, range, indentConverter, languageConfigurationService) {\n    if (autoIndent < 4 /* EditorAutoIndentStrategy.Full */) {\n        return null;\n    }\n    const languageId = model.getLanguageIdAtPosition(range.startLineNumber, range.startColumn);\n    const indentRulesSupport = languageConfigurationService.getLanguageConfiguration(languageId).indentRulesSupport;\n    if (!indentRulesSupport) {\n        return null;\n    }\n    model.tokenization.forceTokenization(range.startLineNumber);\n    const indentationContextProcessor = new IndentationContextProcessor(model, languageConfigurationService);\n    const processedContextTokens = indentationContextProcessor.getProcessedTokenContextAroundRange(range);\n    const afterEnterProcessedTokens = processedContextTokens.afterRangeProcessedTokens;\n    const beforeEnterProcessedTokens = processedContextTokens.beforeRangeProcessedTokens;\n    const beforeEnterIndent = strings.getLeadingWhitespace(beforeEnterProcessedTokens.getLineContent());\n    const virtualModel = createVirtualModelWithModifiedTokensAtLine(model, range.startLineNumber, beforeEnterProcessedTokens);\n    const languageIsDifferentFromLineStart = isLanguageDifferentFromLineStart(model, range.getStartPosition());\n    const currentLine = model.getLineContent(range.startLineNumber);\n    const currentLineIndent = strings.getLeadingWhitespace(currentLine);\n    const afterEnterAction = getInheritIndentForLine(autoIndent, virtualModel, range.startLineNumber + 1, undefined, languageConfigurationService);\n    if (!afterEnterAction) {\n        const beforeEnter = languageIsDifferentFromLineStart ? currentLineIndent : beforeEnterIndent;\n        return {\n            beforeEnter: beforeEnter,\n            afterEnter: beforeEnter\n        };\n    }\n    let afterEnterIndent = languageIsDifferentFromLineStart ? currentLineIndent : afterEnterAction.indentation;\n    if (afterEnterAction.action === IndentAction.Indent) {\n        afterEnterIndent = indentConverter.shiftIndent(afterEnterIndent);\n    }\n    if (indentRulesSupport.shouldDecrease(afterEnterProcessedTokens.getLineContent())) {\n        afterEnterIndent = indentConverter.unshiftIndent(afterEnterIndent);\n    }\n    return {\n        beforeEnter: languageIsDifferentFromLineStart ? currentLineIndent : beforeEnterIndent,\n        afterEnter: afterEnterIndent\n    };\n}\n/**\n * We should always allow intentional indentation. It means, if users change the indentation of `lineNumber` and the content of\n * this line doesn't match decreaseIndentPattern, we should not adjust the indentation.\n */\nexport function getIndentActionForType(autoIndent, model, range, ch, indentConverter, languageConfigurationService) {\n    if (autoIndent < 4 /* EditorAutoIndentStrategy.Full */) {\n        return null;\n    }\n    const languageIsDifferentFromLineStart = isLanguageDifferentFromLineStart(model, range.getStartPosition());\n    if (languageIsDifferentFromLineStart) {\n        // this line has mixed languages and indentation rules will not work\n        return null;\n    }\n    const languageId = model.getLanguageIdAtPosition(range.startLineNumber, range.startColumn);\n    const indentRulesSupport = languageConfigurationService.getLanguageConfiguration(languageId).indentRulesSupport;\n    if (!indentRulesSupport) {\n        return null;\n    }\n    const indentationContextProcessor = new IndentationContextProcessor(model, languageConfigurationService);\n    const processedContextTokens = indentationContextProcessor.getProcessedTokenContextAroundRange(range);\n    const beforeRangeText = processedContextTokens.beforeRangeProcessedTokens.getLineContent();\n    const afterRangeText = processedContextTokens.afterRangeProcessedTokens.getLineContent();\n    const textAroundRange = beforeRangeText + afterRangeText;\n    const textAroundRangeWithCharacter = beforeRangeText + ch + afterRangeText;\n    // If previous content already matches decreaseIndentPattern, it means indentation of this line should already be adjusted\n    // Users might change the indentation by purpose and we should honor that instead of readjusting.\n    if (!indentRulesSupport.shouldDecrease(textAroundRange) && indentRulesSupport.shouldDecrease(textAroundRangeWithCharacter)) {\n        // after typing `ch`, the content matches decreaseIndentPattern, we should adjust the indent to a good manner.\n        // 1. Get inherited indent action\n        const r = getInheritIndentForLine(autoIndent, model, range.startLineNumber, false, languageConfigurationService);\n        if (!r) {\n            return null;\n        }\n        let indentation = r.indentation;\n        if (r.action !== IndentAction.Indent) {\n            indentation = indentConverter.unshiftIndent(indentation);\n        }\n        return indentation;\n    }\n    return null;\n}\nexport function getIndentMetadata(model, lineNumber, languageConfigurationService) {\n    const indentRulesSupport = languageConfigurationService.getLanguageConfiguration(model.getLanguageId()).indentRulesSupport;\n    if (!indentRulesSupport) {\n        return null;\n    }\n    if (lineNumber < 1 || lineNumber > model.getLineCount()) {\n        return null;\n    }\n    return indentRulesSupport.getIndentMetadata(model.getLineContent(lineNumber));\n}\nfunction createVirtualModelWithModifiedTokensAtLine(model, modifiedLineNumber, modifiedTokens) {\n    const virtualModel = {\n        tokenization: {\n            getLineTokens: (lineNumber) => {\n                if (lineNumber === modifiedLineNumber) {\n                    return modifiedTokens;\n                }\n                else {\n                    return model.tokenization.getLineTokens(lineNumber);\n                }\n            },\n            getLanguageId: () => {\n                return model.getLanguageId();\n            },\n            getLanguageIdAtPosition: (lineNumber, column) => {\n                return model.getLanguageIdAtPosition(lineNumber, column);\n            },\n        },\n        getLineContent: (lineNumber) => {\n            if (lineNumber === modifiedLineNumber) {\n                return modifiedTokens.getLineContent();\n            }\n            else {\n                return model.getLineContent(lineNumber);\n            }\n        }\n    };\n    return virtualModel;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/languages/defaultDocumentColorsComputer.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Color, HSLA } from '../../../base/common/color.js';\nfunction _parseCaptureGroups(captureGroups) {\n    const values = [];\n    for (const captureGroup of captureGroups) {\n        const parsedNumber = Number(captureGroup);\n        if (parsedNumber || parsedNumber === 0 && captureGroup.replace(/\\s/g, '') !== '') {\n            values.push(parsedNumber);\n        }\n    }\n    return values;\n}\nfunction _toIColor(r, g, b, a) {\n    return {\n        red: r / 255,\n        blue: b / 255,\n        green: g / 255,\n        alpha: a\n    };\n}\nfunction _findRange(model, match) {\n    const index = match.index;\n    const length = match[0].length;\n    if (!index) {\n        return;\n    }\n    const startPosition = model.positionAt(index);\n    const range = {\n        startLineNumber: startPosition.lineNumber,\n        startColumn: startPosition.column,\n        endLineNumber: startPosition.lineNumber,\n        endColumn: startPosition.column + length\n    };\n    return range;\n}\nfunction _findHexColorInformation(range, hexValue) {\n    if (!range) {\n        return;\n    }\n    const parsedHexColor = Color.Format.CSS.parseHex(hexValue);\n    if (!parsedHexColor) {\n        return;\n    }\n    return {\n        range: range,\n        color: _toIColor(parsedHexColor.rgba.r, parsedHexColor.rgba.g, parsedHexColor.rgba.b, parsedHexColor.rgba.a)\n    };\n}\nfunction _findRGBColorInformation(range, matches, isAlpha) {\n    if (!range || matches.length !== 1) {\n        return;\n    }\n    const match = matches[0];\n    const captureGroups = match.values();\n    const parsedRegex = _parseCaptureGroups(captureGroups);\n    return {\n        range: range,\n        color: _toIColor(parsedRegex[0], parsedRegex[1], parsedRegex[2], isAlpha ? parsedRegex[3] : 1)\n    };\n}\nfunction _findHSLColorInformation(range, matches, isAlpha) {\n    if (!range || matches.length !== 1) {\n        return;\n    }\n    const match = matches[0];\n    const captureGroups = match.values();\n    const parsedRegex = _parseCaptureGroups(captureGroups);\n    const colorEquivalent = new Color(new HSLA(parsedRegex[0], parsedRegex[1] / 100, parsedRegex[2] / 100, isAlpha ? parsedRegex[3] : 1));\n    return {\n        range: range,\n        color: _toIColor(colorEquivalent.rgba.r, colorEquivalent.rgba.g, colorEquivalent.rgba.b, colorEquivalent.rgba.a)\n    };\n}\nfunction _findMatches(model, regex) {\n    if (typeof model === 'string') {\n        return [...model.matchAll(regex)];\n    }\n    else {\n        return model.findMatches(regex);\n    }\n}\nfunction computeColors(model) {\n    const result = [];\n    // Early validation for RGB and HSL\n    const initialValidationRegex = /\\b(rgb|rgba|hsl|hsla)(\\([0-9\\s,.\\%]*\\))|(#)([A-Fa-f0-9]{3})\\b|(#)([A-Fa-f0-9]{4})\\b|(#)([A-Fa-f0-9]{6})\\b|(#)([A-Fa-f0-9]{8})\\b/gm;\n    const initialValidationMatches = _findMatches(model, initialValidationRegex);\n    // Potential colors have been found, validate the parameters\n    if (initialValidationMatches.length > 0) {\n        for (const initialMatch of initialValidationMatches) {\n            const initialCaptureGroups = initialMatch.filter(captureGroup => captureGroup !== undefined);\n            const colorScheme = initialCaptureGroups[1];\n            const colorParameters = initialCaptureGroups[2];\n            if (!colorParameters) {\n                continue;\n            }\n            let colorInformation;\n            if (colorScheme === 'rgb') {\n                const regexParameters = /^\\(\\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\\s*,\\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\\s*,\\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\\s*\\)$/gm;\n                colorInformation = _findRGBColorInformation(_findRange(model, initialMatch), _findMatches(colorParameters, regexParameters), false);\n            }\n            else if (colorScheme === 'rgba') {\n                const regexParameters = /^\\(\\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\\s*,\\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\\s*,\\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\\s*,\\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\\s*\\)$/gm;\n                colorInformation = _findRGBColorInformation(_findRange(model, initialMatch), _findMatches(colorParameters, regexParameters), true);\n            }\n            else if (colorScheme === 'hsl') {\n                const regexParameters = /^\\(\\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\\s*,\\s*(100|\\d{1,2}[.]\\d*|\\d{1,2})%\\s*,\\s*(100|\\d{1,2}[.]\\d*|\\d{1,2})%\\s*\\)$/gm;\n                colorInformation = _findHSLColorInformation(_findRange(model, initialMatch), _findMatches(colorParameters, regexParameters), false);\n            }\n            else if (colorScheme === 'hsla') {\n                const regexParameters = /^\\(\\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\\s*,\\s*(100|\\d{1,2}[.]\\d*|\\d{1,2})%\\s*,\\s*(100|\\d{1,2}[.]\\d*|\\d{1,2})%\\s*,\\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\\s*\\)$/gm;\n                colorInformation = _findHSLColorInformation(_findRange(model, initialMatch), _findMatches(colorParameters, regexParameters), true);\n            }\n            else if (colorScheme === '#') {\n                colorInformation = _findHexColorInformation(_findRange(model, initialMatch), colorScheme + colorParameters);\n            }\n            if (colorInformation) {\n                result.push(colorInformation);\n            }\n        }\n    }\n    return result;\n}\n/**\n * Returns an array of all default document colors in the provided document\n */\nexport function computeDefaultDocumentColors(model) {\n    if (!model || typeof model.getValue !== 'function' || typeof model.positionAt !== 'function') {\n        // Unknown caller!\n        return [];\n    }\n    return computeColors(model);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/languages/enterAction.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { IndentAction } from './languageConfiguration.js';\nimport { getIndentationAtPosition } from './languageConfigurationRegistry.js';\nimport { IndentationContextProcessor } from './supports/indentationLineProcessor.js';\nexport function getEnterAction(autoIndent, model, range, languageConfigurationService) {\n    model.tokenization.forceTokenization(range.startLineNumber);\n    const languageId = model.getLanguageIdAtPosition(range.startLineNumber, range.startColumn);\n    const richEditSupport = languageConfigurationService.getLanguageConfiguration(languageId);\n    if (!richEditSupport) {\n        return null;\n    }\n    const indentationContextProcessor = new IndentationContextProcessor(model, languageConfigurationService);\n    const processedContextTokens = indentationContextProcessor.getProcessedTokenContextAroundRange(range);\n    const previousLineText = processedContextTokens.previousLineProcessedTokens.getLineContent();\n    const beforeEnterText = processedContextTokens.beforeRangeProcessedTokens.getLineContent();\n    const afterEnterText = processedContextTokens.afterRangeProcessedTokens.getLineContent();\n    const enterResult = richEditSupport.onEnter(autoIndent, previousLineText, beforeEnterText, afterEnterText);\n    if (!enterResult) {\n        return null;\n    }\n    const indentAction = enterResult.indentAction;\n    let appendText = enterResult.appendText;\n    const removeText = enterResult.removeText || 0;\n    // Here we add `\\t` to appendText first because enterAction is leveraging appendText and removeText to change indentation.\n    if (!appendText) {\n        if ((indentAction === IndentAction.Indent) ||\n            (indentAction === IndentAction.IndentOutdent)) {\n            appendText = '\\t';\n        }\n        else {\n            appendText = '';\n        }\n    }\n    else if (indentAction === IndentAction.Indent) {\n        appendText = '\\t' + appendText;\n    }\n    let indentation = getIndentationAtPosition(model, range.startLineNumber, range.startColumn);\n    if (removeText) {\n        indentation = indentation.substring(0, indentation.length - removeText);\n    }\n    return {\n        indentAction: indentAction,\n        appendText: appendText,\n        removeText: removeText,\n        indentation: indentation\n    };\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/languages/language.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nexport const ILanguageService = createDecorator('languageService');\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/languages/languageConfiguration.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * Describes what to do with the indentation when pressing Enter.\n */\nexport var IndentAction;\n(function (IndentAction) {\n    /**\n     * Insert new line and copy the previous line's indentation.\n     */\n    IndentAction[IndentAction[\"None\"] = 0] = \"None\";\n    /**\n     * Insert new line and indent once (relative to the previous line's indentation).\n     */\n    IndentAction[IndentAction[\"Indent\"] = 1] = \"Indent\";\n    /**\n     * Insert two new lines:\n     *  - the first one indented which will hold the cursor\n     *  - the second one at the same indentation level\n     */\n    IndentAction[IndentAction[\"IndentOutdent\"] = 2] = \"IndentOutdent\";\n    /**\n     * Insert new line and outdent once (relative to the previous line's indentation).\n     */\n    IndentAction[IndentAction[\"Outdent\"] = 3] = \"Outdent\";\n})(IndentAction || (IndentAction = {}));\n/**\n * @internal\n */\nexport class StandardAutoClosingPairConditional {\n    constructor(source) {\n        this._neutralCharacter = null;\n        this._neutralCharacterSearched = false;\n        this.open = source.open;\n        this.close = source.close;\n        // initially allowed in all tokens\n        this._inString = true;\n        this._inComment = true;\n        this._inRegEx = true;\n        if (Array.isArray(source.notIn)) {\n            for (let i = 0, len = source.notIn.length; i < len; i++) {\n                const notIn = source.notIn[i];\n                switch (notIn) {\n                    case 'string':\n                        this._inString = false;\n                        break;\n                    case 'comment':\n                        this._inComment = false;\n                        break;\n                    case 'regex':\n                        this._inRegEx = false;\n                        break;\n                }\n            }\n        }\n    }\n    isOK(standardToken) {\n        switch (standardToken) {\n            case 0 /* StandardTokenType.Other */:\n                return true;\n            case 1 /* StandardTokenType.Comment */:\n                return this._inComment;\n            case 2 /* StandardTokenType.String */:\n                return this._inString;\n            case 3 /* StandardTokenType.RegEx */:\n                return this._inRegEx;\n        }\n    }\n    shouldAutoClose(context, column) {\n        // Always complete on empty line\n        if (context.getTokenCount() === 0) {\n            return true;\n        }\n        const tokenIndex = context.findTokenIndexAtOffset(column - 2);\n        const standardTokenType = context.getStandardTokenType(tokenIndex);\n        return this.isOK(standardTokenType);\n    }\n    _findNeutralCharacterInRange(fromCharCode, toCharCode) {\n        for (let charCode = fromCharCode; charCode <= toCharCode; charCode++) {\n            const character = String.fromCharCode(charCode);\n            if (!this.open.includes(character) && !this.close.includes(character)) {\n                return character;\n            }\n        }\n        return null;\n    }\n    /**\n     * Find a character in the range [0-9a-zA-Z] that does not appear in the open or close\n     */\n    findNeutralCharacter() {\n        if (!this._neutralCharacterSearched) {\n            this._neutralCharacterSearched = true;\n            if (!this._neutralCharacter) {\n                this._neutralCharacter = this._findNeutralCharacterInRange(48 /* CharCode.Digit0 */, 57 /* CharCode.Digit9 */);\n            }\n            if (!this._neutralCharacter) {\n                this._neutralCharacter = this._findNeutralCharacterInRange(97 /* CharCode.a */, 122 /* CharCode.z */);\n            }\n            if (!this._neutralCharacter) {\n                this._neutralCharacter = this._findNeutralCharacterInRange(65 /* CharCode.A */, 90 /* CharCode.Z */);\n            }\n        }\n        return this._neutralCharacter;\n    }\n}\n/**\n * @internal\n */\nexport class AutoClosingPairs {\n    constructor(autoClosingPairs) {\n        this.autoClosingPairsOpenByStart = new Map();\n        this.autoClosingPairsOpenByEnd = new Map();\n        this.autoClosingPairsCloseByStart = new Map();\n        this.autoClosingPairsCloseByEnd = new Map();\n        this.autoClosingPairsCloseSingleChar = new Map();\n        for (const pair of autoClosingPairs) {\n            appendEntry(this.autoClosingPairsOpenByStart, pair.open.charAt(0), pair);\n            appendEntry(this.autoClosingPairsOpenByEnd, pair.open.charAt(pair.open.length - 1), pair);\n            appendEntry(this.autoClosingPairsCloseByStart, pair.close.charAt(0), pair);\n            appendEntry(this.autoClosingPairsCloseByEnd, pair.close.charAt(pair.close.length - 1), pair);\n            if (pair.close.length === 1 && pair.open.length === 1) {\n                appendEntry(this.autoClosingPairsCloseSingleChar, pair.close, pair);\n            }\n        }\n    }\n}\nfunction appendEntry(target, key, value) {\n    if (target.has(key)) {\n        target.get(key).push(value);\n    }\n    else {\n        target.set(key, [value]);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/languages/languageConfigurationRegistry.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Emitter } from '../../../base/common/event.js';\nimport { Disposable, toDisposable } from '../../../base/common/lifecycle.js';\nimport * as strings from '../../../base/common/strings.js';\nimport { DEFAULT_WORD_REGEXP, ensureValidWordDefinition } from '../core/wordHelper.js';\nimport { AutoClosingPairs } from './languageConfiguration.js';\nimport { CharacterPairSupport } from './supports/characterPair.js';\nimport { BracketElectricCharacterSupport } from './supports/electricCharacter.js';\nimport { IndentRulesSupport } from './supports/indentRules.js';\nimport { OnEnterSupport } from './supports/onEnter.js';\nimport { RichEditBrackets } from './supports/richEditBrackets.js';\nimport { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nimport { IConfigurationService } from '../../../platform/configuration/common/configuration.js';\nimport { ILanguageService } from './language.js';\nimport { registerSingleton } from '../../../platform/instantiation/common/extensions.js';\nimport { PLAINTEXT_LANGUAGE_ID } from './modesRegistry.js';\nimport { LanguageBracketsConfiguration } from './supports/languageBracketsConfiguration.js';\nexport class LanguageConfigurationServiceChangeEvent {\n    constructor(languageId) {\n        this.languageId = languageId;\n    }\n    affects(languageId) {\n        return !this.languageId ? true : this.languageId === languageId;\n    }\n}\nexport const ILanguageConfigurationService = createDecorator('languageConfigurationService');\nlet LanguageConfigurationService = class LanguageConfigurationService extends Disposable {\n    constructor(configurationService, languageService) {\n        super();\n        this.configurationService = configurationService;\n        this.languageService = languageService;\n        this._registry = this._register(new LanguageConfigurationRegistry());\n        this.onDidChangeEmitter = this._register(new Emitter());\n        this.onDidChange = this.onDidChangeEmitter.event;\n        this.configurations = new Map();\n        const languageConfigKeys = new Set(Object.values(customizedLanguageConfigKeys));\n        this._register(this.configurationService.onDidChangeConfiguration((e) => {\n            const globalConfigChanged = e.change.keys.some((k) => languageConfigKeys.has(k));\n            const localConfigChanged = e.change.overrides\n                .filter(([overrideLangName, keys]) => keys.some((k) => languageConfigKeys.has(k)))\n                .map(([overrideLangName]) => overrideLangName);\n            if (globalConfigChanged) {\n                this.configurations.clear();\n                this.onDidChangeEmitter.fire(new LanguageConfigurationServiceChangeEvent(undefined));\n            }\n            else {\n                for (const languageId of localConfigChanged) {\n                    if (this.languageService.isRegisteredLanguageId(languageId)) {\n                        this.configurations.delete(languageId);\n                        this.onDidChangeEmitter.fire(new LanguageConfigurationServiceChangeEvent(languageId));\n                    }\n                }\n            }\n        }));\n        this._register(this._registry.onDidChange((e) => {\n            this.configurations.delete(e.languageId);\n            this.onDidChangeEmitter.fire(new LanguageConfigurationServiceChangeEvent(e.languageId));\n        }));\n    }\n    register(languageId, configuration, priority) {\n        return this._registry.register(languageId, configuration, priority);\n    }\n    getLanguageConfiguration(languageId) {\n        let result = this.configurations.get(languageId);\n        if (!result) {\n            result = computeConfig(languageId, this._registry, this.configurationService, this.languageService);\n            this.configurations.set(languageId, result);\n        }\n        return result;\n    }\n};\nLanguageConfigurationService = __decorate([\n    __param(0, IConfigurationService),\n    __param(1, ILanguageService)\n], LanguageConfigurationService);\nexport { LanguageConfigurationService };\nfunction computeConfig(languageId, registry, configurationService, languageService) {\n    let languageConfig = registry.getLanguageConfiguration(languageId);\n    if (!languageConfig) {\n        if (!languageService.isRegisteredLanguageId(languageId)) {\n            // this happens for the null language, which can be returned by monarch.\n            // Instead of throwing an error, we just return a default config.\n            return new ResolvedLanguageConfiguration(languageId, {});\n        }\n        languageConfig = new ResolvedLanguageConfiguration(languageId, {});\n    }\n    const customizedConfig = getCustomizedLanguageConfig(languageConfig.languageId, configurationService);\n    const data = combineLanguageConfigurations([languageConfig.underlyingConfig, customizedConfig]);\n    const config = new ResolvedLanguageConfiguration(languageConfig.languageId, data);\n    return config;\n}\nconst customizedLanguageConfigKeys = {\n    brackets: 'editor.language.brackets',\n    colorizedBracketPairs: 'editor.language.colorizedBracketPairs'\n};\nfunction getCustomizedLanguageConfig(languageId, configurationService) {\n    const brackets = configurationService.getValue(customizedLanguageConfigKeys.brackets, {\n        overrideIdentifier: languageId,\n    });\n    const colorizedBracketPairs = configurationService.getValue(customizedLanguageConfigKeys.colorizedBracketPairs, {\n        overrideIdentifier: languageId,\n    });\n    return {\n        brackets: validateBracketPairs(brackets),\n        colorizedBracketPairs: validateBracketPairs(colorizedBracketPairs),\n    };\n}\nfunction validateBracketPairs(data) {\n    if (!Array.isArray(data)) {\n        return undefined;\n    }\n    return data.map(pair => {\n        if (!Array.isArray(pair) || pair.length !== 2) {\n            return undefined;\n        }\n        return [pair[0], pair[1]];\n    }).filter((p) => !!p);\n}\nexport function getIndentationAtPosition(model, lineNumber, column) {\n    const lineText = model.getLineContent(lineNumber);\n    let indentation = strings.getLeadingWhitespace(lineText);\n    if (indentation.length > column - 1) {\n        indentation = indentation.substring(0, column - 1);\n    }\n    return indentation;\n}\nclass ComposedLanguageConfiguration {\n    constructor(languageId) {\n        this.languageId = languageId;\n        this._resolved = null;\n        this._entries = [];\n        this._order = 0;\n        this._resolved = null;\n    }\n    register(configuration, priority) {\n        const entry = new LanguageConfigurationContribution(configuration, priority, ++this._order);\n        this._entries.push(entry);\n        this._resolved = null;\n        return toDisposable(() => {\n            for (let i = 0; i < this._entries.length; i++) {\n                if (this._entries[i] === entry) {\n                    this._entries.splice(i, 1);\n                    this._resolved = null;\n                    break;\n                }\n            }\n        });\n    }\n    getResolvedConfiguration() {\n        if (!this._resolved) {\n            const config = this._resolve();\n            if (config) {\n                this._resolved = new ResolvedLanguageConfiguration(this.languageId, config);\n            }\n        }\n        return this._resolved;\n    }\n    _resolve() {\n        if (this._entries.length === 0) {\n            return null;\n        }\n        this._entries.sort(LanguageConfigurationContribution.cmp);\n        return combineLanguageConfigurations(this._entries.map(e => e.configuration));\n    }\n}\nfunction combineLanguageConfigurations(configs) {\n    let result = {\n        comments: undefined,\n        brackets: undefined,\n        wordPattern: undefined,\n        indentationRules: undefined,\n        onEnterRules: undefined,\n        autoClosingPairs: undefined,\n        surroundingPairs: undefined,\n        autoCloseBefore: undefined,\n        folding: undefined,\n        colorizedBracketPairs: undefined,\n        __electricCharacterSupport: undefined,\n    };\n    for (const entry of configs) {\n        result = {\n            comments: entry.comments || result.comments,\n            brackets: entry.brackets || result.brackets,\n            wordPattern: entry.wordPattern || result.wordPattern,\n            indentationRules: entry.indentationRules || result.indentationRules,\n            onEnterRules: entry.onEnterRules || result.onEnterRules,\n            autoClosingPairs: entry.autoClosingPairs || result.autoClosingPairs,\n            surroundingPairs: entry.surroundingPairs || result.surroundingPairs,\n            autoCloseBefore: entry.autoCloseBefore || result.autoCloseBefore,\n            folding: entry.folding || result.folding,\n            colorizedBracketPairs: entry.colorizedBracketPairs || result.colorizedBracketPairs,\n            __electricCharacterSupport: entry.__electricCharacterSupport || result.__electricCharacterSupport,\n        };\n    }\n    return result;\n}\nclass LanguageConfigurationContribution {\n    constructor(configuration, priority, order) {\n        this.configuration = configuration;\n        this.priority = priority;\n        this.order = order;\n    }\n    static cmp(a, b) {\n        if (a.priority === b.priority) {\n            // higher order last\n            return a.order - b.order;\n        }\n        // higher priority last\n        return a.priority - b.priority;\n    }\n}\nexport class LanguageConfigurationChangeEvent {\n    constructor(languageId) {\n        this.languageId = languageId;\n    }\n}\nexport class LanguageConfigurationRegistry extends Disposable {\n    constructor() {\n        super();\n        this._entries = new Map();\n        this._onDidChange = this._register(new Emitter());\n        this.onDidChange = this._onDidChange.event;\n        this._register(this.register(PLAINTEXT_LANGUAGE_ID, {\n            brackets: [\n                ['(', ')'],\n                ['[', ']'],\n                ['{', '}'],\n            ],\n            surroundingPairs: [\n                { open: '{', close: '}' },\n                { open: '[', close: ']' },\n                { open: '(', close: ')' },\n                { open: '<', close: '>' },\n                { open: '\\\"', close: '\\\"' },\n                { open: '\\'', close: '\\'' },\n                { open: '`', close: '`' },\n            ],\n            colorizedBracketPairs: [],\n            folding: {\n                offSide: true\n            }\n        }, 0));\n    }\n    /**\n     * @param priority Use a higher number for higher priority\n     */\n    register(languageId, configuration, priority = 0) {\n        let entries = this._entries.get(languageId);\n        if (!entries) {\n            entries = new ComposedLanguageConfiguration(languageId);\n            this._entries.set(languageId, entries);\n        }\n        const disposable = entries.register(configuration, priority);\n        this._onDidChange.fire(new LanguageConfigurationChangeEvent(languageId));\n        return toDisposable(() => {\n            disposable.dispose();\n            this._onDidChange.fire(new LanguageConfigurationChangeEvent(languageId));\n        });\n    }\n    getLanguageConfiguration(languageId) {\n        const entries = this._entries.get(languageId);\n        return (entries === null || entries === void 0 ? void 0 : entries.getResolvedConfiguration()) || null;\n    }\n}\n/**\n * Immutable.\n*/\nexport class ResolvedLanguageConfiguration {\n    constructor(languageId, underlyingConfig) {\n        this.languageId = languageId;\n        this.underlyingConfig = underlyingConfig;\n        this._brackets = null;\n        this._electricCharacter = null;\n        this._onEnterSupport =\n            this.underlyingConfig.brackets ||\n                this.underlyingConfig.indentationRules ||\n                this.underlyingConfig.onEnterRules\n                ? new OnEnterSupport(this.underlyingConfig)\n                : null;\n        this.comments = ResolvedLanguageConfiguration._handleComments(this.underlyingConfig);\n        this.characterPair = new CharacterPairSupport(this.underlyingConfig);\n        this.wordDefinition = this.underlyingConfig.wordPattern || DEFAULT_WORD_REGEXP;\n        this.indentationRules = this.underlyingConfig.indentationRules;\n        if (this.underlyingConfig.indentationRules) {\n            this.indentRulesSupport = new IndentRulesSupport(this.underlyingConfig.indentationRules);\n        }\n        else {\n            this.indentRulesSupport = null;\n        }\n        this.foldingRules = this.underlyingConfig.folding || {};\n        this.bracketsNew = new LanguageBracketsConfiguration(languageId, this.underlyingConfig);\n    }\n    getWordDefinition() {\n        return ensureValidWordDefinition(this.wordDefinition);\n    }\n    get brackets() {\n        if (!this._brackets && this.underlyingConfig.brackets) {\n            this._brackets = new RichEditBrackets(this.languageId, this.underlyingConfig.brackets);\n        }\n        return this._brackets;\n    }\n    get electricCharacter() {\n        if (!this._electricCharacter) {\n            this._electricCharacter = new BracketElectricCharacterSupport(this.brackets);\n        }\n        return this._electricCharacter;\n    }\n    onEnter(autoIndent, previousLineText, beforeEnterText, afterEnterText) {\n        if (!this._onEnterSupport) {\n            return null;\n        }\n        return this._onEnterSupport.onEnter(autoIndent, previousLineText, beforeEnterText, afterEnterText);\n    }\n    getAutoClosingPairs() {\n        return new AutoClosingPairs(this.characterPair.getAutoClosingPairs());\n    }\n    getAutoCloseBeforeSet(forQuotes) {\n        return this.characterPair.getAutoCloseBeforeSet(forQuotes);\n    }\n    getSurroundingPairs() {\n        return this.characterPair.getSurroundingPairs();\n    }\n    static _handleComments(conf) {\n        const commentRule = conf.comments;\n        if (!commentRule) {\n            return null;\n        }\n        // comment configuration\n        const comments = {};\n        if (commentRule.lineComment) {\n            comments.lineCommentToken = commentRule.lineComment;\n        }\n        if (commentRule.blockComment) {\n            const [blockStart, blockEnd] = commentRule.blockComment;\n            comments.blockCommentStartToken = blockStart;\n            comments.blockCommentEndToken = blockEnd;\n        }\n        return comments;\n    }\n}\nregisterSingleton(ILanguageConfigurationService, LanguageConfigurationService, 1 /* InstantiationType.Delayed */);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/languages/linkComputer.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { CharacterClassifier } from '../core/characterClassifier.js';\nclass Uint8Matrix {\n    constructor(rows, cols, defaultValue) {\n        const data = new Uint8Array(rows * cols);\n        for (let i = 0, len = rows * cols; i < len; i++) {\n            data[i] = defaultValue;\n        }\n        this._data = data;\n        this.rows = rows;\n        this.cols = cols;\n    }\n    get(row, col) {\n        return this._data[row * this.cols + col];\n    }\n    set(row, col, value) {\n        this._data[row * this.cols + col] = value;\n    }\n}\nexport class StateMachine {\n    constructor(edges) {\n        let maxCharCode = 0;\n        let maxState = 0 /* State.Invalid */;\n        for (let i = 0, len = edges.length; i < len; i++) {\n            const [from, chCode, to] = edges[i];\n            if (chCode > maxCharCode) {\n                maxCharCode = chCode;\n            }\n            if (from > maxState) {\n                maxState = from;\n            }\n            if (to > maxState) {\n                maxState = to;\n            }\n        }\n        maxCharCode++;\n        maxState++;\n        const states = new Uint8Matrix(maxState, maxCharCode, 0 /* State.Invalid */);\n        for (let i = 0, len = edges.length; i < len; i++) {\n            const [from, chCode, to] = edges[i];\n            states.set(from, chCode, to);\n        }\n        this._states = states;\n        this._maxCharCode = maxCharCode;\n    }\n    nextState(currentState, chCode) {\n        if (chCode < 0 || chCode >= this._maxCharCode) {\n            return 0 /* State.Invalid */;\n        }\n        return this._states.get(currentState, chCode);\n    }\n}\n// State machine for http:// or https:// or file://\nlet _stateMachine = null;\nfunction getStateMachine() {\n    if (_stateMachine === null) {\n        _stateMachine = new StateMachine([\n            [1 /* State.Start */, 104 /* CharCode.h */, 2 /* State.H */],\n            [1 /* State.Start */, 72 /* CharCode.H */, 2 /* State.H */],\n            [1 /* State.Start */, 102 /* CharCode.f */, 6 /* State.F */],\n            [1 /* State.Start */, 70 /* CharCode.F */, 6 /* State.F */],\n            [2 /* State.H */, 116 /* CharCode.t */, 3 /* State.HT */],\n            [2 /* State.H */, 84 /* CharCode.T */, 3 /* State.HT */],\n            [3 /* State.HT */, 116 /* CharCode.t */, 4 /* State.HTT */],\n            [3 /* State.HT */, 84 /* CharCode.T */, 4 /* State.HTT */],\n            [4 /* State.HTT */, 112 /* CharCode.p */, 5 /* State.HTTP */],\n            [4 /* State.HTT */, 80 /* CharCode.P */, 5 /* State.HTTP */],\n            [5 /* State.HTTP */, 115 /* CharCode.s */, 9 /* State.BeforeColon */],\n            [5 /* State.HTTP */, 83 /* CharCode.S */, 9 /* State.BeforeColon */],\n            [5 /* State.HTTP */, 58 /* CharCode.Colon */, 10 /* State.AfterColon */],\n            [6 /* State.F */, 105 /* CharCode.i */, 7 /* State.FI */],\n            [6 /* State.F */, 73 /* CharCode.I */, 7 /* State.FI */],\n            [7 /* State.FI */, 108 /* CharCode.l */, 8 /* State.FIL */],\n            [7 /* State.FI */, 76 /* CharCode.L */, 8 /* State.FIL */],\n            [8 /* State.FIL */, 101 /* CharCode.e */, 9 /* State.BeforeColon */],\n            [8 /* State.FIL */, 69 /* CharCode.E */, 9 /* State.BeforeColon */],\n            [9 /* State.BeforeColon */, 58 /* CharCode.Colon */, 10 /* State.AfterColon */],\n            [10 /* State.AfterColon */, 47 /* CharCode.Slash */, 11 /* State.AlmostThere */],\n            [11 /* State.AlmostThere */, 47 /* CharCode.Slash */, 12 /* State.End */],\n        ]);\n    }\n    return _stateMachine;\n}\nlet _classifier = null;\nfunction getClassifier() {\n    if (_classifier === null) {\n        _classifier = new CharacterClassifier(0 /* CharacterClass.None */);\n        // allow-any-unicode-next-line\n        const FORCE_TERMINATION_CHARACTERS = ' \\t<>\\'\\\"、。｡､，．：；‘〈「『〔（［｛｢｣｝］）〕』」〉’｀～…';\n        for (let i = 0; i < FORCE_TERMINATION_CHARACTERS.length; i++) {\n            _classifier.set(FORCE_TERMINATION_CHARACTERS.charCodeAt(i), 1 /* CharacterClass.ForceTermination */);\n        }\n        const CANNOT_END_WITH_CHARACTERS = '.,;:';\n        for (let i = 0; i < CANNOT_END_WITH_CHARACTERS.length; i++) {\n            _classifier.set(CANNOT_END_WITH_CHARACTERS.charCodeAt(i), 2 /* CharacterClass.CannotEndIn */);\n        }\n    }\n    return _classifier;\n}\nexport class LinkComputer {\n    static _createLink(classifier, line, lineNumber, linkBeginIndex, linkEndIndex) {\n        // Do not allow to end link in certain characters...\n        let lastIncludedCharIndex = linkEndIndex - 1;\n        do {\n            const chCode = line.charCodeAt(lastIncludedCharIndex);\n            const chClass = classifier.get(chCode);\n            if (chClass !== 2 /* CharacterClass.CannotEndIn */) {\n                break;\n            }\n            lastIncludedCharIndex--;\n        } while (lastIncludedCharIndex > linkBeginIndex);\n        // Handle links enclosed in parens, square brackets and curlys.\n        if (linkBeginIndex > 0) {\n            const charCodeBeforeLink = line.charCodeAt(linkBeginIndex - 1);\n            const lastCharCodeInLink = line.charCodeAt(lastIncludedCharIndex);\n            if ((charCodeBeforeLink === 40 /* CharCode.OpenParen */ && lastCharCodeInLink === 41 /* CharCode.CloseParen */)\n                || (charCodeBeforeLink === 91 /* CharCode.OpenSquareBracket */ && lastCharCodeInLink === 93 /* CharCode.CloseSquareBracket */)\n                || (charCodeBeforeLink === 123 /* CharCode.OpenCurlyBrace */ && lastCharCodeInLink === 125 /* CharCode.CloseCurlyBrace */)) {\n                // Do not end in ) if ( is before the link start\n                // Do not end in ] if [ is before the link start\n                // Do not end in } if { is before the link start\n                lastIncludedCharIndex--;\n            }\n        }\n        return {\n            range: {\n                startLineNumber: lineNumber,\n                startColumn: linkBeginIndex + 1,\n                endLineNumber: lineNumber,\n                endColumn: lastIncludedCharIndex + 2\n            },\n            url: line.substring(linkBeginIndex, lastIncludedCharIndex + 1)\n        };\n    }\n    static computeLinks(model, stateMachine = getStateMachine()) {\n        const classifier = getClassifier();\n        const result = [];\n        for (let i = 1, lineCount = model.getLineCount(); i <= lineCount; i++) {\n            const line = model.getLineContent(i);\n            const len = line.length;\n            let j = 0;\n            let linkBeginIndex = 0;\n            let linkBeginChCode = 0;\n            let state = 1 /* State.Start */;\n            let hasOpenParens = false;\n            let hasOpenSquareBracket = false;\n            let inSquareBrackets = false;\n            let hasOpenCurlyBracket = false;\n            while (j < len) {\n                let resetStateMachine = false;\n                const chCode = line.charCodeAt(j);\n                if (state === 13 /* State.Accept */) {\n                    let chClass;\n                    switch (chCode) {\n                        case 40 /* CharCode.OpenParen */:\n                            hasOpenParens = true;\n                            chClass = 0 /* CharacterClass.None */;\n                            break;\n                        case 41 /* CharCode.CloseParen */:\n                            chClass = (hasOpenParens ? 0 /* CharacterClass.None */ : 1 /* CharacterClass.ForceTermination */);\n                            break;\n                        case 91 /* CharCode.OpenSquareBracket */:\n                            inSquareBrackets = true;\n                            hasOpenSquareBracket = true;\n                            chClass = 0 /* CharacterClass.None */;\n                            break;\n                        case 93 /* CharCode.CloseSquareBracket */:\n                            inSquareBrackets = false;\n                            chClass = (hasOpenSquareBracket ? 0 /* CharacterClass.None */ : 1 /* CharacterClass.ForceTermination */);\n                            break;\n                        case 123 /* CharCode.OpenCurlyBrace */:\n                            hasOpenCurlyBracket = true;\n                            chClass = 0 /* CharacterClass.None */;\n                            break;\n                        case 125 /* CharCode.CloseCurlyBrace */:\n                            chClass = (hasOpenCurlyBracket ? 0 /* CharacterClass.None */ : 1 /* CharacterClass.ForceTermination */);\n                            break;\n                        // The following three rules make it that ' or \" or ` are allowed inside links\n                        // only if the link is wrapped by some other quote character\n                        case 39 /* CharCode.SingleQuote */:\n                        case 34 /* CharCode.DoubleQuote */:\n                        case 96 /* CharCode.BackTick */:\n                            if (linkBeginChCode === chCode) {\n                                chClass = 1 /* CharacterClass.ForceTermination */;\n                            }\n                            else if (linkBeginChCode === 39 /* CharCode.SingleQuote */ || linkBeginChCode === 34 /* CharCode.DoubleQuote */ || linkBeginChCode === 96 /* CharCode.BackTick */) {\n                                chClass = 0 /* CharacterClass.None */;\n                            }\n                            else {\n                                chClass = 1 /* CharacterClass.ForceTermination */;\n                            }\n                            break;\n                        case 42 /* CharCode.Asterisk */:\n                            // `*` terminates a link if the link began with `*`\n                            chClass = (linkBeginChCode === 42 /* CharCode.Asterisk */) ? 1 /* CharacterClass.ForceTermination */ : 0 /* CharacterClass.None */;\n                            break;\n                        case 124 /* CharCode.Pipe */:\n                            // `|` terminates a link if the link began with `|`\n                            chClass = (linkBeginChCode === 124 /* CharCode.Pipe */) ? 1 /* CharacterClass.ForceTermination */ : 0 /* CharacterClass.None */;\n                            break;\n                        case 32 /* CharCode.Space */:\n                            // ` ` allow space in between [ and ]\n                            chClass = (inSquareBrackets ? 0 /* CharacterClass.None */ : 1 /* CharacterClass.ForceTermination */);\n                            break;\n                        default:\n                            chClass = classifier.get(chCode);\n                    }\n                    // Check if character terminates link\n                    if (chClass === 1 /* CharacterClass.ForceTermination */) {\n                        result.push(LinkComputer._createLink(classifier, line, i, linkBeginIndex, j));\n                        resetStateMachine = true;\n                    }\n                }\n                else if (state === 12 /* State.End */) {\n                    let chClass;\n                    if (chCode === 91 /* CharCode.OpenSquareBracket */) {\n                        // Allow for the authority part to contain ipv6 addresses which contain [ and ]\n                        hasOpenSquareBracket = true;\n                        chClass = 0 /* CharacterClass.None */;\n                    }\n                    else {\n                        chClass = classifier.get(chCode);\n                    }\n                    // Check if character terminates link\n                    if (chClass === 1 /* CharacterClass.ForceTermination */) {\n                        resetStateMachine = true;\n                    }\n                    else {\n                        state = 13 /* State.Accept */;\n                    }\n                }\n                else {\n                    state = stateMachine.nextState(state, chCode);\n                    if (state === 0 /* State.Invalid */) {\n                        resetStateMachine = true;\n                    }\n                }\n                if (resetStateMachine) {\n                    state = 1 /* State.Start */;\n                    hasOpenParens = false;\n                    hasOpenSquareBracket = false;\n                    hasOpenCurlyBracket = false;\n                    // Record where the link started\n                    linkBeginIndex = j + 1;\n                    linkBeginChCode = chCode;\n                }\n                j++;\n            }\n            if (state === 13 /* State.Accept */) {\n                result.push(LinkComputer._createLink(classifier, line, i, linkBeginIndex, len));\n            }\n        }\n        return result;\n    }\n}\n/**\n * Returns an array of all links contains in the provided\n * document. *Note* that this operation is computational\n * expensive and should not run in the UI thread.\n */\nexport function computeLinks(model) {\n    if (!model || typeof model.getLineCount !== 'function' || typeof model.getLineContent !== 'function') {\n        // Unknown caller!\n        return [];\n    }\n    return LinkComputer.computeLinks(model);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/languages/modesRegistry.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../nls.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { Registry } from '../../../platform/registry/common/platform.js';\nimport { Mimes } from '../../../base/common/mime.js';\nimport { Extensions as ConfigurationExtensions } from '../../../platform/configuration/common/configurationRegistry.js';\n// Define extension point ids\nexport const Extensions = {\n    ModesRegistry: 'editor.modesRegistry'\n};\nexport class EditorModesRegistry {\n    constructor() {\n        this._onDidChangeLanguages = new Emitter();\n        this.onDidChangeLanguages = this._onDidChangeLanguages.event;\n        this._languages = [];\n    }\n    registerLanguage(def) {\n        this._languages.push(def);\n        this._onDidChangeLanguages.fire(undefined);\n        return {\n            dispose: () => {\n                for (let i = 0, len = this._languages.length; i < len; i++) {\n                    if (this._languages[i] === def) {\n                        this._languages.splice(i, 1);\n                        return;\n                    }\n                }\n            }\n        };\n    }\n    getLanguages() {\n        return this._languages;\n    }\n}\nexport const ModesRegistry = new EditorModesRegistry();\nRegistry.add(Extensions.ModesRegistry, ModesRegistry);\nexport const PLAINTEXT_LANGUAGE_ID = 'plaintext';\nexport const PLAINTEXT_EXTENSION = '.txt';\nModesRegistry.registerLanguage({\n    id: PLAINTEXT_LANGUAGE_ID,\n    extensions: [PLAINTEXT_EXTENSION],\n    aliases: [nls.localize('plainText.alias', \"Plain Text\"), 'text'],\n    mimetypes: [Mimes.text]\n});\nRegistry.as(ConfigurationExtensions.Configuration)\n    .registerDefaultConfigurations([{\n        overrides: {\n            '[plaintext]': {\n                'editor.unicodeHighlight.ambiguousCharacters': false,\n                'editor.unicodeHighlight.invisibleCharacters': false\n            }\n        }\n    }]);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/languages/nullTokenize.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Token, TokenizationResult, EncodedTokenizationResult } from '../languages.js';\nexport const NullState = new class {\n    clone() {\n        return this;\n    }\n    equals(other) {\n        return (this === other);\n    }\n};\nexport function nullTokenize(languageId, state) {\n    return new TokenizationResult([new Token(0, '', languageId)], state);\n}\nexport function nullTokenizeEncoded(languageId, state) {\n    const tokens = new Uint32Array(2);\n    tokens[0] = 0;\n    tokens[1] = ((languageId << 0 /* MetadataConsts.LANGUAGEID_OFFSET */)\n        | (0 /* StandardTokenType.Other */ << 8 /* MetadataConsts.TOKEN_TYPE_OFFSET */)\n        | (0 /* FontStyle.None */ << 11 /* MetadataConsts.FONT_STYLE_OFFSET */)\n        | (1 /* ColorId.DefaultForeground */ << 15 /* MetadataConsts.FOREGROUND_OFFSET */)\n        | (2 /* ColorId.DefaultBackground */ << 24 /* MetadataConsts.BACKGROUND_OFFSET */)) >>> 0;\n    return new EncodedTokenizationResult(tokens, state === null ? NullState : state);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/languages/supports/characterPair.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { StandardAutoClosingPairConditional } from '../languageConfiguration.js';\nexport class CharacterPairSupport {\n    constructor(config) {\n        if (config.autoClosingPairs) {\n            this._autoClosingPairs = config.autoClosingPairs.map(el => new StandardAutoClosingPairConditional(el));\n        }\n        else if (config.brackets) {\n            this._autoClosingPairs = config.brackets.map(b => new StandardAutoClosingPairConditional({ open: b[0], close: b[1] }));\n        }\n        else {\n            this._autoClosingPairs = [];\n        }\n        if (config.__electricCharacterSupport && config.__electricCharacterSupport.docComment) {\n            const docComment = config.__electricCharacterSupport.docComment;\n            // IDocComment is legacy, only partially supported\n            this._autoClosingPairs.push(new StandardAutoClosingPairConditional({ open: docComment.open, close: docComment.close || '' }));\n        }\n        this._autoCloseBeforeForQuotes = typeof config.autoCloseBefore === 'string' ? config.autoCloseBefore : CharacterPairSupport.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES;\n        this._autoCloseBeforeForBrackets = typeof config.autoCloseBefore === 'string' ? config.autoCloseBefore : CharacterPairSupport.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS;\n        this._surroundingPairs = config.surroundingPairs || this._autoClosingPairs;\n    }\n    getAutoClosingPairs() {\n        return this._autoClosingPairs;\n    }\n    getAutoCloseBeforeSet(forQuotes) {\n        return (forQuotes ? this._autoCloseBeforeForQuotes : this._autoCloseBeforeForBrackets);\n    }\n    getSurroundingPairs() {\n        return this._surroundingPairs;\n    }\n}\nCharacterPairSupport.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES = ';:.,=}])> \\n\\t';\nCharacterPairSupport.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS = '\\'\"`;:.,=}])> \\n\\t';\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/languages/supports/electricCharacter.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { distinct } from '../../../../base/common/arrays.js';\nimport { ignoreBracketsInToken } from '../supports.js';\nimport { BracketsUtils } from './richEditBrackets.js';\nexport class BracketElectricCharacterSupport {\n    constructor(richEditBrackets) {\n        this._richEditBrackets = richEditBrackets;\n    }\n    getElectricCharacters() {\n        const result = [];\n        if (this._richEditBrackets) {\n            for (const bracket of this._richEditBrackets.brackets) {\n                for (const close of bracket.close) {\n                    const lastChar = close.charAt(close.length - 1);\n                    result.push(lastChar);\n                }\n            }\n        }\n        return distinct(result);\n    }\n    onElectricCharacter(character, context, column) {\n        if (!this._richEditBrackets || this._richEditBrackets.brackets.length === 0) {\n            return null;\n        }\n        const tokenIndex = context.findTokenIndexAtOffset(column - 1);\n        if (ignoreBracketsInToken(context.getStandardTokenType(tokenIndex))) {\n            return null;\n        }\n        const reversedBracketRegex = this._richEditBrackets.reversedRegex;\n        const text = context.getLineContent().substring(0, column - 1) + character;\n        const r = BracketsUtils.findPrevBracketInRange(reversedBracketRegex, 1, text, 0, text.length);\n        if (!r) {\n            return null;\n        }\n        const bracketText = text.substring(r.startColumn - 1, r.endColumn - 1).toLowerCase();\n        const isOpen = this._richEditBrackets.textIsOpenBracket[bracketText];\n        if (isOpen) {\n            return null;\n        }\n        const textBeforeBracket = context.getActualLineContentBefore(r.startColumn - 1);\n        if (!/^\\s*$/.test(textBeforeBracket)) {\n            // There is other text on the line before the bracket\n            return null;\n        }\n        return {\n            matchOpenBracket: bracketText\n        };\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/languages/supports/indentRules.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nfunction resetGlobalRegex(reg) {\n    if (reg.global) {\n        reg.lastIndex = 0;\n    }\n    return true;\n}\nexport class IndentRulesSupport {\n    constructor(indentationRules) {\n        this._indentationRules = indentationRules;\n    }\n    shouldIncrease(text) {\n        if (this._indentationRules) {\n            if (this._indentationRules.increaseIndentPattern && resetGlobalRegex(this._indentationRules.increaseIndentPattern) && this._indentationRules.increaseIndentPattern.test(text)) {\n                return true;\n            }\n            // if (this._indentationRules.indentNextLinePattern && this._indentationRules.indentNextLinePattern.test(text)) {\n            // \treturn true;\n            // }\n        }\n        return false;\n    }\n    shouldDecrease(text) {\n        if (this._indentationRules && this._indentationRules.decreaseIndentPattern && resetGlobalRegex(this._indentationRules.decreaseIndentPattern) && this._indentationRules.decreaseIndentPattern.test(text)) {\n            return true;\n        }\n        return false;\n    }\n    shouldIndentNextLine(text) {\n        if (this._indentationRules && this._indentationRules.indentNextLinePattern && resetGlobalRegex(this._indentationRules.indentNextLinePattern) && this._indentationRules.indentNextLinePattern.test(text)) {\n            return true;\n        }\n        return false;\n    }\n    shouldIgnore(text) {\n        // the text matches `unIndentedLinePattern`\n        if (this._indentationRules && this._indentationRules.unIndentedLinePattern && resetGlobalRegex(this._indentationRules.unIndentedLinePattern) && this._indentationRules.unIndentedLinePattern.test(text)) {\n            return true;\n        }\n        return false;\n    }\n    getIndentMetadata(text) {\n        let ret = 0;\n        if (this.shouldIncrease(text)) {\n            ret += 1 /* IndentConsts.INCREASE_MASK */;\n        }\n        if (this.shouldDecrease(text)) {\n            ret += 2 /* IndentConsts.DECREASE_MASK */;\n        }\n        if (this.shouldIndentNextLine(text)) {\n            ret += 4 /* IndentConsts.INDENT_NEXTLINE_MASK */;\n        }\n        if (this.shouldIgnore(text)) {\n            ret += 8 /* IndentConsts.UNINDENT_MASK */;\n        }\n        return ret;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/languages/supports/indentationLineProcessor.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../../base/common/strings.js';\nimport { createScopedLineTokens } from '../supports.js';\nimport { LineTokens } from '../../tokens/lineTokens.js';\n/**\n * This class is a wrapper class around {@link IndentRulesSupport}.\n * It processes the lines by removing the language configuration brackets from the regex, string and comment tokens.\n * It then calls into the {@link IndentRulesSupport} to validate the indentation conditions.\n */\nexport class ProcessedIndentRulesSupport {\n    constructor(model, indentRulesSupport, languageConfigurationService) {\n        this._indentRulesSupport = indentRulesSupport;\n        this._indentationLineProcessor = new IndentationLineProcessor(model, languageConfigurationService);\n    }\n    /**\n     * Apply the new indentation and return whether the indentation level should be increased after the given line number\n     */\n    shouldIncrease(lineNumber, newIndentation) {\n        const processedLine = this._indentationLineProcessor.getProcessedLine(lineNumber, newIndentation);\n        return this._indentRulesSupport.shouldIncrease(processedLine);\n    }\n    /**\n     * Apply the new indentation and return whether the indentation level should be decreased after the given line number\n     */\n    shouldDecrease(lineNumber, newIndentation) {\n        const processedLine = this._indentationLineProcessor.getProcessedLine(lineNumber, newIndentation);\n        return this._indentRulesSupport.shouldDecrease(processedLine);\n    }\n    /**\n     * Apply the new indentation and return whether the indentation level should remain unchanged at the given line number\n     */\n    shouldIgnore(lineNumber, newIndentation) {\n        const processedLine = this._indentationLineProcessor.getProcessedLine(lineNumber, newIndentation);\n        return this._indentRulesSupport.shouldIgnore(processedLine);\n    }\n    /**\n     * Apply the new indentation and return whether the indentation level should increase on the line after the given line number\n     */\n    shouldIndentNextLine(lineNumber, newIndentation) {\n        const processedLine = this._indentationLineProcessor.getProcessedLine(lineNumber, newIndentation);\n        return this._indentRulesSupport.shouldIndentNextLine(processedLine);\n    }\n}\n/**\n * This class fetches the processed text around a range which can be used for indentation evaluation.\n * It returns:\n * - The processed text before the given range and on the same start line\n * - The processed text after the given range and on the same end line\n * - The processed text on the previous line\n */\nexport class IndentationContextProcessor {\n    constructor(model, languageConfigurationService) {\n        this.model = model;\n        this.indentationLineProcessor = new IndentationLineProcessor(model, languageConfigurationService);\n    }\n    /**\n     * Returns the processed text, stripped from the language configuration brackets within the string, comment and regex tokens, around the given range\n     */\n    getProcessedTokenContextAroundRange(range) {\n        const beforeRangeProcessedTokens = this._getProcessedTokensBeforeRange(range);\n        const afterRangeProcessedTokens = this._getProcessedTokensAfterRange(range);\n        const previousLineProcessedTokens = this._getProcessedPreviousLineTokens(range);\n        return { beforeRangeProcessedTokens, afterRangeProcessedTokens, previousLineProcessedTokens };\n    }\n    _getProcessedTokensBeforeRange(range) {\n        this.model.tokenization.forceTokenization(range.startLineNumber);\n        const lineTokens = this.model.tokenization.getLineTokens(range.startLineNumber);\n        const scopedLineTokens = createScopedLineTokens(lineTokens, range.startColumn - 1);\n        let slicedTokens;\n        if (isLanguageDifferentFromLineStart(this.model, range.getStartPosition())) {\n            const columnIndexWithinScope = (range.startColumn - 1) - scopedLineTokens.firstCharOffset;\n            const firstCharacterOffset = scopedLineTokens.firstCharOffset;\n            const lastCharacterOffset = firstCharacterOffset + columnIndexWithinScope;\n            slicedTokens = lineTokens.sliceAndInflate(firstCharacterOffset, lastCharacterOffset, 0);\n        }\n        else {\n            const columnWithinLine = range.startColumn - 1;\n            slicedTokens = lineTokens.sliceAndInflate(0, columnWithinLine, 0);\n        }\n        const processedTokens = this.indentationLineProcessor.getProcessedTokens(slicedTokens);\n        return processedTokens;\n    }\n    _getProcessedTokensAfterRange(range) {\n        const position = range.isEmpty() ? range.getStartPosition() : range.getEndPosition();\n        this.model.tokenization.forceTokenization(position.lineNumber);\n        const lineTokens = this.model.tokenization.getLineTokens(position.lineNumber);\n        const scopedLineTokens = createScopedLineTokens(lineTokens, position.column - 1);\n        const columnIndexWithinScope = position.column - 1 - scopedLineTokens.firstCharOffset;\n        const firstCharacterOffset = scopedLineTokens.firstCharOffset + columnIndexWithinScope;\n        const lastCharacterOffset = scopedLineTokens.firstCharOffset + scopedLineTokens.getLineLength();\n        const slicedTokens = lineTokens.sliceAndInflate(firstCharacterOffset, lastCharacterOffset, 0);\n        const processedTokens = this.indentationLineProcessor.getProcessedTokens(slicedTokens);\n        return processedTokens;\n    }\n    _getProcessedPreviousLineTokens(range) {\n        const getScopedLineTokensAtEndColumnOfLine = (lineNumber) => {\n            this.model.tokenization.forceTokenization(lineNumber);\n            const lineTokens = this.model.tokenization.getLineTokens(lineNumber);\n            const endColumnOfLine = this.model.getLineMaxColumn(lineNumber) - 1;\n            const scopedLineTokensAtEndColumn = createScopedLineTokens(lineTokens, endColumnOfLine);\n            return scopedLineTokensAtEndColumn;\n        };\n        this.model.tokenization.forceTokenization(range.startLineNumber);\n        const lineTokens = this.model.tokenization.getLineTokens(range.startLineNumber);\n        const scopedLineTokens = createScopedLineTokens(lineTokens, range.startColumn - 1);\n        const emptyTokens = LineTokens.createEmpty('', scopedLineTokens.languageIdCodec);\n        const previousLineNumber = range.startLineNumber - 1;\n        const isFirstLine = previousLineNumber === 0;\n        if (isFirstLine) {\n            return emptyTokens;\n        }\n        const canScopeExtendOnPreviousLine = scopedLineTokens.firstCharOffset === 0;\n        if (!canScopeExtendOnPreviousLine) {\n            return emptyTokens;\n        }\n        const scopedLineTokensAtEndColumnOfPreviousLine = getScopedLineTokensAtEndColumnOfLine(previousLineNumber);\n        const doesLanguageContinueOnPreviousLine = scopedLineTokens.languageId === scopedLineTokensAtEndColumnOfPreviousLine.languageId;\n        if (!doesLanguageContinueOnPreviousLine) {\n            return emptyTokens;\n        }\n        const previousSlicedLineTokens = scopedLineTokensAtEndColumnOfPreviousLine.toIViewLineTokens();\n        const processedTokens = this.indentationLineProcessor.getProcessedTokens(previousSlicedLineTokens);\n        return processedTokens;\n    }\n}\n/**\n * This class performs the actual processing of the indentation lines.\n * The brackets of the language configuration are removed from the regex, string and comment tokens.\n */\nclass IndentationLineProcessor {\n    constructor(model, languageConfigurationService) {\n        this.model = model;\n        this.languageConfigurationService = languageConfigurationService;\n    }\n    /**\n     * Get the processed line for the given line number and potentially adjust the indentation level.\n     * Remove the language configuration brackets from the regex, string and comment tokens.\n     */\n    getProcessedLine(lineNumber, newIndentation) {\n        var _a, _b;\n        const replaceIndentation = (line, newIndentation) => {\n            const currentIndentation = strings.getLeadingWhitespace(line);\n            const adjustedLine = newIndentation + line.substring(currentIndentation.length);\n            return adjustedLine;\n        };\n        (_b = (_a = this.model.tokenization).forceTokenization) === null || _b === void 0 ? void 0 : _b.call(_a, lineNumber);\n        const tokens = this.model.tokenization.getLineTokens(lineNumber);\n        let processedLine = this.getProcessedTokens(tokens).getLineContent();\n        if (newIndentation !== undefined) {\n            processedLine = replaceIndentation(processedLine, newIndentation);\n        }\n        return processedLine;\n    }\n    /**\n     * Process the line with the given tokens, remove the language configuration brackets from the regex, string and comment tokens.\n     */\n    getProcessedTokens(tokens) {\n        const shouldRemoveBracketsFromTokenType = (tokenType) => {\n            return tokenType === 2 /* StandardTokenType.String */\n                || tokenType === 3 /* StandardTokenType.RegEx */\n                || tokenType === 1 /* StandardTokenType.Comment */;\n        };\n        const languageId = tokens.getLanguageId(0);\n        const bracketsConfiguration = this.languageConfigurationService.getLanguageConfiguration(languageId).bracketsNew;\n        const bracketsRegExp = bracketsConfiguration.getBracketRegExp({ global: true });\n        const textAndMetadata = [];\n        tokens.forEach((tokenIndex) => {\n            const tokenType = tokens.getStandardTokenType(tokenIndex);\n            let text = tokens.getTokenText(tokenIndex);\n            if (shouldRemoveBracketsFromTokenType(tokenType)) {\n                text = text.replace(bracketsRegExp, '');\n            }\n            const metadata = tokens.getMetadata(tokenIndex);\n            textAndMetadata.push({ text, metadata });\n        });\n        const processedLineTokens = LineTokens.createFromTextAndMetadata(textAndMetadata, tokens.languageIdCodec);\n        return processedLineTokens;\n    }\n}\nexport function isLanguageDifferentFromLineStart(model, position) {\n    model.tokenization.forceTokenization(position.lineNumber);\n    const lineTokens = model.tokenization.getLineTokens(position.lineNumber);\n    const scopedLineTokens = createScopedLineTokens(lineTokens, position.column - 1);\n    const doesScopeStartAtOffsetZero = scopedLineTokens.firstCharOffset === 0;\n    const isScopedLanguageEqualToFirstLanguageOnLine = lineTokens.getLanguageId(0) === scopedLineTokens.languageId;\n    const languageIsDifferentFromLineStart = !doesScopeStartAtOffsetZero && !isScopedLanguageEqualToFirstLanguageOnLine;\n    return languageIsDifferentFromLineStart;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/languages/supports/inplaceReplaceSupport.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class BasicInplaceReplace {\n    constructor() {\n        this._defaultValueSet = [\n            ['true', 'false'],\n            ['True', 'False'],\n            ['Private', 'Public', 'Friend', 'ReadOnly', 'Partial', 'Protected', 'WriteOnly'],\n            ['public', 'protected', 'private'],\n        ];\n    }\n    navigateValueSet(range1, text1, range2, text2, up) {\n        if (range1 && text1) {\n            const result = this.doNavigateValueSet(text1, up);\n            if (result) {\n                return {\n                    range: range1,\n                    value: result\n                };\n            }\n        }\n        if (range2 && text2) {\n            const result = this.doNavigateValueSet(text2, up);\n            if (result) {\n                return {\n                    range: range2,\n                    value: result\n                };\n            }\n        }\n        return null;\n    }\n    doNavigateValueSet(text, up) {\n        const numberResult = this.numberReplace(text, up);\n        if (numberResult !== null) {\n            return numberResult;\n        }\n        return this.textReplace(text, up);\n    }\n    numberReplace(value, up) {\n        const precision = Math.pow(10, value.length - (value.lastIndexOf('.') + 1));\n        let n1 = Number(value);\n        const n2 = parseFloat(value);\n        if (!isNaN(n1) && !isNaN(n2) && n1 === n2) {\n            if (n1 === 0 && !up) {\n                return null; // don't do negative\n                //\t\t\t} else if(n1 === 9 && up) {\n                //\t\t\t\treturn null; // don't insert 10 into a number\n            }\n            else {\n                n1 = Math.floor(n1 * precision);\n                n1 += up ? precision : -precision;\n                return String(n1 / precision);\n            }\n        }\n        return null;\n    }\n    textReplace(value, up) {\n        return this.valueSetsReplace(this._defaultValueSet, value, up);\n    }\n    valueSetsReplace(valueSets, value, up) {\n        let result = null;\n        for (let i = 0, len = valueSets.length; result === null && i < len; i++) {\n            result = this.valueSetReplace(valueSets[i], value, up);\n        }\n        return result;\n    }\n    valueSetReplace(valueSet, value, up) {\n        let idx = valueSet.indexOf(value);\n        if (idx >= 0) {\n            idx += up ? +1 : -1;\n            if (idx < 0) {\n                idx = valueSet.length - 1;\n            }\n            else {\n                idx %= valueSet.length;\n            }\n            return valueSet[idx];\n        }\n        return null;\n    }\n}\nBasicInplaceReplace.INSTANCE = new BasicInplaceReplace();\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/languages/supports/languageBracketsConfiguration.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { CachedFunction } from '../../../../base/common/cache.js';\nimport { createBracketOrRegExp } from './richEditBrackets.js';\n/**\n * Captures all bracket related configurations for a single language.\n * Immutable.\n*/\nexport class LanguageBracketsConfiguration {\n    constructor(languageId, config) {\n        this.languageId = languageId;\n        const bracketPairs = config.brackets ? filterValidBrackets(config.brackets) : [];\n        const openingBracketInfos = new CachedFunction((bracket) => {\n            const closing = new Set();\n            return {\n                info: new OpeningBracketKind(this, bracket, closing),\n                closing,\n            };\n        });\n        const closingBracketInfos = new CachedFunction((bracket) => {\n            const opening = new Set();\n            const openingColorized = new Set();\n            return {\n                info: new ClosingBracketKind(this, bracket, opening, openingColorized),\n                opening,\n                openingColorized,\n            };\n        });\n        for (const [open, close] of bracketPairs) {\n            const opening = openingBracketInfos.get(open);\n            const closing = closingBracketInfos.get(close);\n            opening.closing.add(closing.info);\n            closing.opening.add(opening.info);\n        }\n        // Treat colorized brackets as brackets, and mark them as colorized.\n        const colorizedBracketPairs = config.colorizedBracketPairs\n            ? filterValidBrackets(config.colorizedBracketPairs)\n            // If not configured: Take all brackets except `<` ... `>`\n            // Many languages set < ... > as bracket pair, even though they also use it as comparison operator.\n            // This leads to problems when colorizing this bracket, so we exclude it if not explicitly configured otherwise.\n            // https://github.com/microsoft/vscode/issues/132476\n            : bracketPairs.filter((p) => !(p[0] === '<' && p[1] === '>'));\n        for (const [open, close] of colorizedBracketPairs) {\n            const opening = openingBracketInfos.get(open);\n            const closing = closingBracketInfos.get(close);\n            opening.closing.add(closing.info);\n            closing.openingColorized.add(opening.info);\n            closing.opening.add(opening.info);\n        }\n        this._openingBrackets = new Map([...openingBracketInfos.cachedValues].map(([k, v]) => [k, v.info]));\n        this._closingBrackets = new Map([...closingBracketInfos.cachedValues].map(([k, v]) => [k, v.info]));\n    }\n    /**\n     * No two brackets have the same bracket text.\n    */\n    get openingBrackets() {\n        return [...this._openingBrackets.values()];\n    }\n    /**\n     * No two brackets have the same bracket text.\n    */\n    get closingBrackets() {\n        return [...this._closingBrackets.values()];\n    }\n    getOpeningBracketInfo(bracketText) {\n        return this._openingBrackets.get(bracketText);\n    }\n    getClosingBracketInfo(bracketText) {\n        return this._closingBrackets.get(bracketText);\n    }\n    getBracketInfo(bracketText) {\n        return this.getOpeningBracketInfo(bracketText) || this.getClosingBracketInfo(bracketText);\n    }\n    getBracketRegExp(options) {\n        const brackets = Array.from([...this._openingBrackets.keys(), ...this._closingBrackets.keys()]);\n        return createBracketOrRegExp(brackets, options);\n    }\n}\nfunction filterValidBrackets(bracketPairs) {\n    return bracketPairs.filter(([open, close]) => open !== '' && close !== '');\n}\nexport class BracketKindBase {\n    constructor(config, bracketText) {\n        this.config = config;\n        this.bracketText = bracketText;\n    }\n    get languageId() {\n        return this.config.languageId;\n    }\n}\nexport class OpeningBracketKind extends BracketKindBase {\n    constructor(config, bracketText, openedBrackets) {\n        super(config, bracketText);\n        this.openedBrackets = openedBrackets;\n        this.isOpeningBracket = true;\n    }\n}\nexport class ClosingBracketKind extends BracketKindBase {\n    constructor(config, bracketText, \n    /**\n     * Non empty array of all opening brackets this bracket closes.\n    */\n    openingBrackets, openingColorizedBrackets) {\n        super(config, bracketText);\n        this.openingBrackets = openingBrackets;\n        this.openingColorizedBrackets = openingColorizedBrackets;\n        this.isOpeningBracket = false;\n    }\n    /**\n     * Checks if this bracket closes the given other bracket.\n     * If the bracket infos come from different configurations, this method will return false.\n    */\n    closes(other) {\n        if (other['config'] !== this.config) {\n            return false;\n        }\n        return this.openingBrackets.has(other);\n    }\n    closesColorized(other) {\n        if (other['config'] !== this.config) {\n            return false;\n        }\n        return this.openingColorizedBrackets.has(other);\n    }\n    getOpeningBrackets() {\n        return [...this.openingBrackets];\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/languages/supports/onEnter.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { onUnexpectedError } from '../../../../base/common/errors.js';\nimport * as strings from '../../../../base/common/strings.js';\nimport { IndentAction } from '../languageConfiguration.js';\nexport class OnEnterSupport {\n    constructor(opts) {\n        opts = opts || {};\n        opts.brackets = opts.brackets || [\n            ['(', ')'],\n            ['{', '}'],\n            ['[', ']']\n        ];\n        this._brackets = [];\n        opts.brackets.forEach((bracket) => {\n            const openRegExp = OnEnterSupport._createOpenBracketRegExp(bracket[0]);\n            const closeRegExp = OnEnterSupport._createCloseBracketRegExp(bracket[1]);\n            if (openRegExp && closeRegExp) {\n                this._brackets.push({\n                    open: bracket[0],\n                    openRegExp: openRegExp,\n                    close: bracket[1],\n                    closeRegExp: closeRegExp,\n                });\n            }\n        });\n        this._regExpRules = opts.onEnterRules || [];\n    }\n    onEnter(autoIndent, previousLineText, beforeEnterText, afterEnterText) {\n        // (1): `regExpRules`\n        if (autoIndent >= 3 /* EditorAutoIndentStrategy.Advanced */) {\n            for (let i = 0, len = this._regExpRules.length; i < len; i++) {\n                const rule = this._regExpRules[i];\n                const regResult = [{\n                        reg: rule.beforeText,\n                        text: beforeEnterText\n                    }, {\n                        reg: rule.afterText,\n                        text: afterEnterText\n                    }, {\n                        reg: rule.previousLineText,\n                        text: previousLineText\n                    }].every((obj) => {\n                    if (!obj.reg) {\n                        return true;\n                    }\n                    obj.reg.lastIndex = 0; // To disable the effect of the \"g\" flag.\n                    return obj.reg.test(obj.text);\n                });\n                if (regResult) {\n                    return rule.action;\n                }\n            }\n        }\n        // (2): Special indent-outdent\n        if (autoIndent >= 2 /* EditorAutoIndentStrategy.Brackets */) {\n            if (beforeEnterText.length > 0 && afterEnterText.length > 0) {\n                for (let i = 0, len = this._brackets.length; i < len; i++) {\n                    const bracket = this._brackets[i];\n                    if (bracket.openRegExp.test(beforeEnterText) && bracket.closeRegExp.test(afterEnterText)) {\n                        return { indentAction: IndentAction.IndentOutdent };\n                    }\n                }\n            }\n        }\n        // (4): Open bracket based logic\n        if (autoIndent >= 2 /* EditorAutoIndentStrategy.Brackets */) {\n            if (beforeEnterText.length > 0) {\n                for (let i = 0, len = this._brackets.length; i < len; i++) {\n                    const bracket = this._brackets[i];\n                    if (bracket.openRegExp.test(beforeEnterText)) {\n                        return { indentAction: IndentAction.Indent };\n                    }\n                }\n            }\n        }\n        return null;\n    }\n    static _createOpenBracketRegExp(bracket) {\n        let str = strings.escapeRegExpCharacters(bracket);\n        if (!/\\B/.test(str.charAt(0))) {\n            str = '\\\\b' + str;\n        }\n        str += '\\\\s*$';\n        return OnEnterSupport._safeRegExp(str);\n    }\n    static _createCloseBracketRegExp(bracket) {\n        let str = strings.escapeRegExpCharacters(bracket);\n        if (!/\\B/.test(str.charAt(str.length - 1))) {\n            str = str + '\\\\b';\n        }\n        str = '^\\\\s*' + str;\n        return OnEnterSupport._safeRegExp(str);\n    }\n    static _safeRegExp(def) {\n        try {\n            return new RegExp(def);\n        }\n        catch (err) {\n            onUnexpectedError(err);\n            return null;\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/languages/supports/richEditBrackets.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../../base/common/strings.js';\nimport * as stringBuilder from '../../core/stringBuilder.js';\nimport { Range } from '../../core/range.js';\n/**\n * Represents a grouping of colliding bracket pairs.\n *\n * Most of the times this contains a single bracket pair,\n * but sometimes this contains multiple bracket pairs in cases\n * where the same string appears as a closing bracket for multiple\n * bracket pairs, or the same string appears an opening bracket for\n * multiple bracket pairs.\n *\n * e.g. of a group containing a single pair:\n *   open: ['{'], close: ['}']\n *\n * e.g. of a group containing multiple pairs:\n *   open: ['if', 'for'], close: ['end', 'end']\n */\nexport class RichEditBracket {\n    constructor(languageId, index, open, close, forwardRegex, reversedRegex) {\n        this._richEditBracketBrand = undefined;\n        this.languageId = languageId;\n        this.index = index;\n        this.open = open;\n        this.close = close;\n        this.forwardRegex = forwardRegex;\n        this.reversedRegex = reversedRegex;\n        this._openSet = RichEditBracket._toSet(this.open);\n        this._closeSet = RichEditBracket._toSet(this.close);\n    }\n    /**\n     * Check if the provided `text` is an open bracket in this group.\n     */\n    isOpen(text) {\n        return this._openSet.has(text);\n    }\n    /**\n     * Check if the provided `text` is a close bracket in this group.\n     */\n    isClose(text) {\n        return this._closeSet.has(text);\n    }\n    static _toSet(arr) {\n        const result = new Set();\n        for (const element of arr) {\n            result.add(element);\n        }\n        return result;\n    }\n}\n/**\n * Groups together brackets that have equal open or close sequences.\n *\n * For example, if the following brackets are defined:\n *   ['IF','END']\n *   ['for','end']\n *   ['{','}']\n *\n * Then the grouped brackets would be:\n *   { open: ['if', 'for'], close: ['end', 'end'] }\n *   { open: ['{'], close: ['}'] }\n *\n */\nfunction groupFuzzyBrackets(brackets) {\n    const N = brackets.length;\n    brackets = brackets.map(b => [b[0].toLowerCase(), b[1].toLowerCase()]);\n    const group = [];\n    for (let i = 0; i < N; i++) {\n        group[i] = i;\n    }\n    const areOverlapping = (a, b) => {\n        const [aOpen, aClose] = a;\n        const [bOpen, bClose] = b;\n        return (aOpen === bOpen || aOpen === bClose || aClose === bOpen || aClose === bClose);\n    };\n    const mergeGroups = (g1, g2) => {\n        const newG = Math.min(g1, g2);\n        const oldG = Math.max(g1, g2);\n        for (let i = 0; i < N; i++) {\n            if (group[i] === oldG) {\n                group[i] = newG;\n            }\n        }\n    };\n    // group together brackets that have the same open or the same close sequence\n    for (let i = 0; i < N; i++) {\n        const a = brackets[i];\n        for (let j = i + 1; j < N; j++) {\n            const b = brackets[j];\n            if (areOverlapping(a, b)) {\n                mergeGroups(group[i], group[j]);\n            }\n        }\n    }\n    const result = [];\n    for (let g = 0; g < N; g++) {\n        const currentOpen = [];\n        const currentClose = [];\n        for (let i = 0; i < N; i++) {\n            if (group[i] === g) {\n                const [open, close] = brackets[i];\n                currentOpen.push(open);\n                currentClose.push(close);\n            }\n        }\n        if (currentOpen.length > 0) {\n            result.push({\n                open: currentOpen,\n                close: currentClose\n            });\n        }\n    }\n    return result;\n}\nexport class RichEditBrackets {\n    constructor(languageId, _brackets) {\n        this._richEditBracketsBrand = undefined;\n        const brackets = groupFuzzyBrackets(_brackets);\n        this.brackets = brackets.map((b, index) => {\n            return new RichEditBracket(languageId, index, b.open, b.close, getRegexForBracketPair(b.open, b.close, brackets, index), getReversedRegexForBracketPair(b.open, b.close, brackets, index));\n        });\n        this.forwardRegex = getRegexForBrackets(this.brackets);\n        this.reversedRegex = getReversedRegexForBrackets(this.brackets);\n        this.textIsBracket = {};\n        this.textIsOpenBracket = {};\n        this.maxBracketLength = 0;\n        for (const bracket of this.brackets) {\n            for (const open of bracket.open) {\n                this.textIsBracket[open] = bracket;\n                this.textIsOpenBracket[open] = true;\n                this.maxBracketLength = Math.max(this.maxBracketLength, open.length);\n            }\n            for (const close of bracket.close) {\n                this.textIsBracket[close] = bracket;\n                this.textIsOpenBracket[close] = false;\n                this.maxBracketLength = Math.max(this.maxBracketLength, close.length);\n            }\n        }\n    }\n}\nfunction collectSuperstrings(str, brackets, currentIndex, dest) {\n    for (let i = 0, len = brackets.length; i < len; i++) {\n        if (i === currentIndex) {\n            continue;\n        }\n        const bracket = brackets[i];\n        for (const open of bracket.open) {\n            if (open.indexOf(str) >= 0) {\n                dest.push(open);\n            }\n        }\n        for (const close of bracket.close) {\n            if (close.indexOf(str) >= 0) {\n                dest.push(close);\n            }\n        }\n    }\n}\nfunction lengthcmp(a, b) {\n    return a.length - b.length;\n}\nfunction unique(arr) {\n    if (arr.length <= 1) {\n        return arr;\n    }\n    const result = [];\n    const seen = new Set();\n    for (const element of arr) {\n        if (seen.has(element)) {\n            continue;\n        }\n        result.push(element);\n        seen.add(element);\n    }\n    return result;\n}\n/**\n * Create a regular expression that can be used to search forward in a piece of text\n * for a group of bracket pairs. But this regex must be built in a way in which\n * it is aware of the other bracket pairs defined for the language.\n *\n * For example, if a language contains the following bracket pairs:\n *   ['begin', 'end']\n *   ['if', 'end if']\n * The two bracket pairs do not collide because no open or close brackets are equal.\n * So the function getRegexForBracketPair is called twice, once with\n * the ['begin'], ['end'] group consisting of one bracket pair, and once with\n * the ['if'], ['end if'] group consiting of the other bracket pair.\n *\n * But there could be a situation where an occurrence of 'end if' is mistaken\n * for an occurrence of 'end'.\n *\n * Therefore, for the bracket pair ['begin', 'end'], the regex will also\n * target 'end if'. The regex will be something like:\n *   /(\\bend if\\b)|(\\bend\\b)|(\\bif\\b)/\n *\n * The regex also searches for \"superstrings\" (other brackets that might be mistaken with the current bracket).\n *\n */\nfunction getRegexForBracketPair(open, close, brackets, currentIndex) {\n    // search in all brackets for other brackets that are a superstring of these brackets\n    let pieces = [];\n    pieces = pieces.concat(open);\n    pieces = pieces.concat(close);\n    for (let i = 0, len = pieces.length; i < len; i++) {\n        collectSuperstrings(pieces[i], brackets, currentIndex, pieces);\n    }\n    pieces = unique(pieces);\n    pieces.sort(lengthcmp);\n    pieces.reverse();\n    return createBracketOrRegExp(pieces);\n}\n/**\n * Matching a regular expression in JS can only be done \"forwards\". So JS offers natively only\n * methods to find the first match of a regex in a string. But sometimes, it is useful to\n * find the last match of a regex in a string. For such a situation, a nice solution is to\n * simply reverse the string and then search for a reversed regex.\n *\n * This function also has the fine details of `getRegexForBracketPair`. For the same example\n * given above, the regex produced here would look like:\n *   /(\\bfi dne\\b)|(\\bdne\\b)|(\\bfi\\b)/\n */\nfunction getReversedRegexForBracketPair(open, close, brackets, currentIndex) {\n    // search in all brackets for other brackets that are a superstring of these brackets\n    let pieces = [];\n    pieces = pieces.concat(open);\n    pieces = pieces.concat(close);\n    for (let i = 0, len = pieces.length; i < len; i++) {\n        collectSuperstrings(pieces[i], brackets, currentIndex, pieces);\n    }\n    pieces = unique(pieces);\n    pieces.sort(lengthcmp);\n    pieces.reverse();\n    return createBracketOrRegExp(pieces.map(toReversedString));\n}\n/**\n * Creates a regular expression that targets all bracket pairs.\n *\n * e.g. for the bracket pairs:\n *  ['{','}']\n *  ['begin,'end']\n *  ['for','end']\n * the regex would look like:\n *  /(\\{)|(\\})|(\\bbegin\\b)|(\\bend\\b)|(\\bfor\\b)/\n */\nfunction getRegexForBrackets(brackets) {\n    let pieces = [];\n    for (const bracket of brackets) {\n        for (const open of bracket.open) {\n            pieces.push(open);\n        }\n        for (const close of bracket.close) {\n            pieces.push(close);\n        }\n    }\n    pieces = unique(pieces);\n    return createBracketOrRegExp(pieces);\n}\n/**\n * Matching a regular expression in JS can only be done \"forwards\". So JS offers natively only\n * methods to find the first match of a regex in a string. But sometimes, it is useful to\n * find the last match of a regex in a string. For such a situation, a nice solution is to\n * simply reverse the string and then search for a reversed regex.\n *\n * e.g. for the bracket pairs:\n *  ['{','}']\n *  ['begin,'end']\n *  ['for','end']\n * the regex would look like:\n *  /(\\{)|(\\})|(\\bnigeb\\b)|(\\bdne\\b)|(\\brof\\b)/\n */\nfunction getReversedRegexForBrackets(brackets) {\n    let pieces = [];\n    for (const bracket of brackets) {\n        for (const open of bracket.open) {\n            pieces.push(open);\n        }\n        for (const close of bracket.close) {\n            pieces.push(close);\n        }\n    }\n    pieces = unique(pieces);\n    return createBracketOrRegExp(pieces.map(toReversedString));\n}\nfunction prepareBracketForRegExp(str) {\n    // This bracket pair uses letters like e.g. \"begin\" - \"end\"\n    const insertWordBoundaries = (/^[\\w ]+$/.test(str));\n    str = strings.escapeRegExpCharacters(str);\n    return (insertWordBoundaries ? `\\\\b${str}\\\\b` : str);\n}\nexport function createBracketOrRegExp(pieces, options) {\n    const regexStr = `(${pieces.map(prepareBracketForRegExp).join(')|(')})`;\n    return strings.createRegExp(regexStr, true, options);\n}\nconst toReversedString = (function () {\n    function reverse(str) {\n        // create a Uint16Array and then use a TextDecoder to create a string\n        const arr = new Uint16Array(str.length);\n        let offset = 0;\n        for (let i = str.length - 1; i >= 0; i--) {\n            arr[offset++] = str.charCodeAt(i);\n        }\n        return stringBuilder.getPlatformTextDecoder().decode(arr);\n    }\n    let lastInput = null;\n    let lastOutput = null;\n    return function toReversedString(str) {\n        if (lastInput !== str) {\n            lastInput = str;\n            lastOutput = reverse(lastInput);\n        }\n        return lastOutput;\n    };\n})();\nexport class BracketsUtils {\n    static _findPrevBracketInText(reversedBracketRegex, lineNumber, reversedText, offset) {\n        const m = reversedText.match(reversedBracketRegex);\n        if (!m) {\n            return null;\n        }\n        const matchOffset = reversedText.length - (m.index || 0);\n        const matchLength = m[0].length;\n        const absoluteMatchOffset = offset + matchOffset;\n        return new Range(lineNumber, absoluteMatchOffset - matchLength + 1, lineNumber, absoluteMatchOffset + 1);\n    }\n    static findPrevBracketInRange(reversedBracketRegex, lineNumber, lineText, startOffset, endOffset) {\n        // Because JS does not support backwards regex search, we search forwards in a reversed string with a reversed regex ;)\n        const reversedLineText = toReversedString(lineText);\n        const reversedSubstr = reversedLineText.substring(lineText.length - endOffset, lineText.length - startOffset);\n        return this._findPrevBracketInText(reversedBracketRegex, lineNumber, reversedSubstr, startOffset);\n    }\n    static findNextBracketInText(bracketRegex, lineNumber, text, offset) {\n        const m = text.match(bracketRegex);\n        if (!m) {\n            return null;\n        }\n        const matchOffset = m.index || 0;\n        const matchLength = m[0].length;\n        if (matchLength === 0) {\n            return null;\n        }\n        const absoluteMatchOffset = offset + matchOffset;\n        return new Range(lineNumber, absoluteMatchOffset + 1, lineNumber, absoluteMatchOffset + 1 + matchLength);\n    }\n    static findNextBracketInRange(bracketRegex, lineNumber, lineText, startOffset, endOffset) {\n        const substr = lineText.substring(startOffset, endOffset);\n        return this.findNextBracketInText(bracketRegex, lineNumber, substr, startOffset);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/languages/supports/tokenization.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Color } from '../../../../base/common/color.js';\nexport class ParsedTokenThemeRule {\n    constructor(token, index, fontStyle, foreground, background) {\n        this._parsedThemeRuleBrand = undefined;\n        this.token = token;\n        this.index = index;\n        this.fontStyle = fontStyle;\n        this.foreground = foreground;\n        this.background = background;\n    }\n}\n/**\n * Parse a raw theme into rules.\n */\nexport function parseTokenTheme(source) {\n    if (!source || !Array.isArray(source)) {\n        return [];\n    }\n    const result = [];\n    let resultLen = 0;\n    for (let i = 0, len = source.length; i < len; i++) {\n        const entry = source[i];\n        let fontStyle = -1 /* FontStyle.NotSet */;\n        if (typeof entry.fontStyle === 'string') {\n            fontStyle = 0 /* FontStyle.None */;\n            const segments = entry.fontStyle.split(' ');\n            for (let j = 0, lenJ = segments.length; j < lenJ; j++) {\n                const segment = segments[j];\n                switch (segment) {\n                    case 'italic':\n                        fontStyle = fontStyle | 1 /* FontStyle.Italic */;\n                        break;\n                    case 'bold':\n                        fontStyle = fontStyle | 2 /* FontStyle.Bold */;\n                        break;\n                    case 'underline':\n                        fontStyle = fontStyle | 4 /* FontStyle.Underline */;\n                        break;\n                    case 'strikethrough':\n                        fontStyle = fontStyle | 8 /* FontStyle.Strikethrough */;\n                        break;\n                }\n            }\n        }\n        let foreground = null;\n        if (typeof entry.foreground === 'string') {\n            foreground = entry.foreground;\n        }\n        let background = null;\n        if (typeof entry.background === 'string') {\n            background = entry.background;\n        }\n        result[resultLen++] = new ParsedTokenThemeRule(entry.token || '', i, fontStyle, foreground, background);\n    }\n    return result;\n}\n/**\n * Resolve rules (i.e. inheritance).\n */\nfunction resolveParsedTokenThemeRules(parsedThemeRules, customTokenColors) {\n    // Sort rules lexicographically, and then by index if necessary\n    parsedThemeRules.sort((a, b) => {\n        const r = strcmp(a.token, b.token);\n        if (r !== 0) {\n            return r;\n        }\n        return a.index - b.index;\n    });\n    // Determine defaults\n    let defaultFontStyle = 0 /* FontStyle.None */;\n    let defaultForeground = '000000';\n    let defaultBackground = 'ffffff';\n    while (parsedThemeRules.length >= 1 && parsedThemeRules[0].token === '') {\n        const incomingDefaults = parsedThemeRules.shift();\n        if (incomingDefaults.fontStyle !== -1 /* FontStyle.NotSet */) {\n            defaultFontStyle = incomingDefaults.fontStyle;\n        }\n        if (incomingDefaults.foreground !== null) {\n            defaultForeground = incomingDefaults.foreground;\n        }\n        if (incomingDefaults.background !== null) {\n            defaultBackground = incomingDefaults.background;\n        }\n    }\n    const colorMap = new ColorMap();\n    // start with token colors from custom token themes\n    for (const color of customTokenColors) {\n        colorMap.getId(color);\n    }\n    const foregroundColorId = colorMap.getId(defaultForeground);\n    const backgroundColorId = colorMap.getId(defaultBackground);\n    const defaults = new ThemeTrieElementRule(defaultFontStyle, foregroundColorId, backgroundColorId);\n    const root = new ThemeTrieElement(defaults);\n    for (let i = 0, len = parsedThemeRules.length; i < len; i++) {\n        const rule = parsedThemeRules[i];\n        root.insert(rule.token, rule.fontStyle, colorMap.getId(rule.foreground), colorMap.getId(rule.background));\n    }\n    return new TokenTheme(colorMap, root);\n}\nconst colorRegExp = /^#?([0-9A-Fa-f]{6})([0-9A-Fa-f]{2})?$/;\nexport class ColorMap {\n    constructor() {\n        this._lastColorId = 0;\n        this._id2color = [];\n        this._color2id = new Map();\n    }\n    getId(color) {\n        if (color === null) {\n            return 0;\n        }\n        const match = color.match(colorRegExp);\n        if (!match) {\n            throw new Error('Illegal value for token color: ' + color);\n        }\n        color = match[1].toUpperCase();\n        let value = this._color2id.get(color);\n        if (value) {\n            return value;\n        }\n        value = ++this._lastColorId;\n        this._color2id.set(color, value);\n        this._id2color[value] = Color.fromHex('#' + color);\n        return value;\n    }\n    getColorMap() {\n        return this._id2color.slice(0);\n    }\n}\nexport class TokenTheme {\n    static createFromRawTokenTheme(source, customTokenColors) {\n        return this.createFromParsedTokenTheme(parseTokenTheme(source), customTokenColors);\n    }\n    static createFromParsedTokenTheme(source, customTokenColors) {\n        return resolveParsedTokenThemeRules(source, customTokenColors);\n    }\n    constructor(colorMap, root) {\n        this._colorMap = colorMap;\n        this._root = root;\n        this._cache = new Map();\n    }\n    getColorMap() {\n        return this._colorMap.getColorMap();\n    }\n    _match(token) {\n        return this._root.match(token);\n    }\n    match(languageId, token) {\n        // The cache contains the metadata without the language bits set.\n        let result = this._cache.get(token);\n        if (typeof result === 'undefined') {\n            const rule = this._match(token);\n            const standardToken = toStandardTokenType(token);\n            result = (rule.metadata\n                | (standardToken << 8 /* MetadataConsts.TOKEN_TYPE_OFFSET */)) >>> 0;\n            this._cache.set(token, result);\n        }\n        return (result\n            | (languageId << 0 /* MetadataConsts.LANGUAGEID_OFFSET */)) >>> 0;\n    }\n}\nconst STANDARD_TOKEN_TYPE_REGEXP = /\\b(comment|string|regex|regexp)\\b/;\nexport function toStandardTokenType(tokenType) {\n    const m = tokenType.match(STANDARD_TOKEN_TYPE_REGEXP);\n    if (!m) {\n        return 0 /* StandardTokenType.Other */;\n    }\n    switch (m[1]) {\n        case 'comment':\n            return 1 /* StandardTokenType.Comment */;\n        case 'string':\n            return 2 /* StandardTokenType.String */;\n        case 'regex':\n            return 3 /* StandardTokenType.RegEx */;\n        case 'regexp':\n            return 3 /* StandardTokenType.RegEx */;\n    }\n    throw new Error('Unexpected match for standard token type!');\n}\nexport function strcmp(a, b) {\n    if (a < b) {\n        return -1;\n    }\n    if (a > b) {\n        return 1;\n    }\n    return 0;\n}\nexport class ThemeTrieElementRule {\n    constructor(fontStyle, foreground, background) {\n        this._themeTrieElementRuleBrand = undefined;\n        this._fontStyle = fontStyle;\n        this._foreground = foreground;\n        this._background = background;\n        this.metadata = ((this._fontStyle << 11 /* MetadataConsts.FONT_STYLE_OFFSET */)\n            | (this._foreground << 15 /* MetadataConsts.FOREGROUND_OFFSET */)\n            | (this._background << 24 /* MetadataConsts.BACKGROUND_OFFSET */)) >>> 0;\n    }\n    clone() {\n        return new ThemeTrieElementRule(this._fontStyle, this._foreground, this._background);\n    }\n    acceptOverwrite(fontStyle, foreground, background) {\n        if (fontStyle !== -1 /* FontStyle.NotSet */) {\n            this._fontStyle = fontStyle;\n        }\n        if (foreground !== 0 /* ColorId.None */) {\n            this._foreground = foreground;\n        }\n        if (background !== 0 /* ColorId.None */) {\n            this._background = background;\n        }\n        this.metadata = ((this._fontStyle << 11 /* MetadataConsts.FONT_STYLE_OFFSET */)\n            | (this._foreground << 15 /* MetadataConsts.FOREGROUND_OFFSET */)\n            | (this._background << 24 /* MetadataConsts.BACKGROUND_OFFSET */)) >>> 0;\n    }\n}\nexport class ThemeTrieElement {\n    constructor(mainRule) {\n        this._themeTrieElementBrand = undefined;\n        this._mainRule = mainRule;\n        this._children = new Map();\n    }\n    match(token) {\n        if (token === '') {\n            return this._mainRule;\n        }\n        const dotIndex = token.indexOf('.');\n        let head;\n        let tail;\n        if (dotIndex === -1) {\n            head = token;\n            tail = '';\n        }\n        else {\n            head = token.substring(0, dotIndex);\n            tail = token.substring(dotIndex + 1);\n        }\n        const child = this._children.get(head);\n        if (typeof child !== 'undefined') {\n            return child.match(tail);\n        }\n        return this._mainRule;\n    }\n    insert(token, fontStyle, foreground, background) {\n        if (token === '') {\n            // Merge into the main rule\n            this._mainRule.acceptOverwrite(fontStyle, foreground, background);\n            return;\n        }\n        const dotIndex = token.indexOf('.');\n        let head;\n        let tail;\n        if (dotIndex === -1) {\n            head = token;\n            tail = '';\n        }\n        else {\n            head = token.substring(0, dotIndex);\n            tail = token.substring(dotIndex + 1);\n        }\n        let child = this._children.get(head);\n        if (typeof child === 'undefined') {\n            child = new ThemeTrieElement(this._mainRule.clone());\n            this._children.set(head, child);\n        }\n        child.insert(tail, fontStyle, foreground, background);\n    }\n}\nexport function generateTokensCSSForColorMap(colorMap) {\n    const rules = [];\n    for (let i = 1, len = colorMap.length; i < len; i++) {\n        const color = colorMap[i];\n        rules[i] = `.mtk${i} { color: ${color}; }`;\n    }\n    rules.push('.mtki { font-style: italic; }');\n    rules.push('.mtkb { font-weight: bold; }');\n    rules.push('.mtku { text-decoration: underline; text-underline-position: under; }');\n    rules.push('.mtks { text-decoration: line-through; }');\n    rules.push('.mtks.mtku { text-decoration: underline line-through; text-underline-position: under; }');\n    return rules.join('\\n');\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/languages/supports.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport function createScopedLineTokens(context, offset) {\n    const tokenCount = context.getCount();\n    const tokenIndex = context.findTokenIndexAtOffset(offset);\n    const desiredLanguageId = context.getLanguageId(tokenIndex);\n    let lastTokenIndex = tokenIndex;\n    while (lastTokenIndex + 1 < tokenCount && context.getLanguageId(lastTokenIndex + 1) === desiredLanguageId) {\n        lastTokenIndex++;\n    }\n    let firstTokenIndex = tokenIndex;\n    while (firstTokenIndex > 0 && context.getLanguageId(firstTokenIndex - 1) === desiredLanguageId) {\n        firstTokenIndex--;\n    }\n    return new ScopedLineTokens(context, desiredLanguageId, firstTokenIndex, lastTokenIndex + 1, context.getStartOffset(firstTokenIndex), context.getEndOffset(lastTokenIndex));\n}\nexport class ScopedLineTokens {\n    constructor(actual, languageId, firstTokenIndex, lastTokenIndex, firstCharOffset, lastCharOffset) {\n        this._scopedLineTokensBrand = undefined;\n        this._actual = actual;\n        this.languageId = languageId;\n        this._firstTokenIndex = firstTokenIndex;\n        this._lastTokenIndex = lastTokenIndex;\n        this.firstCharOffset = firstCharOffset;\n        this._lastCharOffset = lastCharOffset;\n        this.languageIdCodec = actual.languageIdCodec;\n    }\n    getLineContent() {\n        const actualLineContent = this._actual.getLineContent();\n        return actualLineContent.substring(this.firstCharOffset, this._lastCharOffset);\n    }\n    getLineLength() {\n        return this._lastCharOffset - this.firstCharOffset;\n    }\n    getActualLineContentBefore(offset) {\n        const actualLineContent = this._actual.getLineContent();\n        return actualLineContent.substring(0, this.firstCharOffset + offset);\n    }\n    getTokenCount() {\n        return this._lastTokenIndex - this._firstTokenIndex;\n    }\n    findTokenIndexAtOffset(offset) {\n        return this._actual.findTokenIndexAtOffset(offset + this.firstCharOffset) - this._firstTokenIndex;\n    }\n    getStandardTokenType(tokenIndex) {\n        return this._actual.getStandardTokenType(tokenIndex + this._firstTokenIndex);\n    }\n    toIViewLineTokens() {\n        return this._actual.sliceAndInflate(this.firstCharOffset, this._lastCharOffset, 0);\n    }\n}\nexport function ignoreBracketsInToken(standardTokenType) {\n    return (standardTokenType & 3 /* IgnoreBracketsInTokens.value */) !== 0;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/languages/textToHtmlTokenizer.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../base/common/strings.js';\nimport { LineTokens } from '../tokens/lineTokens.js';\nimport { TokenizationRegistry } from '../languages.js';\nimport { NullState, nullTokenizeEncoded } from './nullTokenize.js';\nconst fallback = {\n    getInitialState: () => NullState,\n    tokenizeEncoded: (buffer, hasEOL, state) => nullTokenizeEncoded(0 /* LanguageId.Null */, state)\n};\nexport async function tokenizeToString(languageService, text, languageId) {\n    if (!languageId) {\n        return _tokenizeToString(text, languageService.languageIdCodec, fallback);\n    }\n    const tokenizationSupport = await TokenizationRegistry.getOrCreate(languageId);\n    return _tokenizeToString(text, languageService.languageIdCodec, tokenizationSupport || fallback);\n}\nexport function tokenizeLineToHTML(text, viewLineTokens, colorMap, startOffset, endOffset, tabSize, useNbsp) {\n    let result = `<div>`;\n    let charIndex = startOffset;\n    let tabsCharDelta = 0;\n    let prevIsSpace = true;\n    for (let tokenIndex = 0, tokenCount = viewLineTokens.getCount(); tokenIndex < tokenCount; tokenIndex++) {\n        const tokenEndIndex = viewLineTokens.getEndOffset(tokenIndex);\n        if (tokenEndIndex <= startOffset) {\n            continue;\n        }\n        let partContent = '';\n        for (; charIndex < tokenEndIndex && charIndex < endOffset; charIndex++) {\n            const charCode = text.charCodeAt(charIndex);\n            switch (charCode) {\n                case 9 /* CharCode.Tab */: {\n                    let insertSpacesCount = tabSize - (charIndex + tabsCharDelta) % tabSize;\n                    tabsCharDelta += insertSpacesCount - 1;\n                    while (insertSpacesCount > 0) {\n                        if (useNbsp && prevIsSpace) {\n                            partContent += '&#160;';\n                            prevIsSpace = false;\n                        }\n                        else {\n                            partContent += ' ';\n                            prevIsSpace = true;\n                        }\n                        insertSpacesCount--;\n                    }\n                    break;\n                }\n                case 60 /* CharCode.LessThan */:\n                    partContent += '&lt;';\n                    prevIsSpace = false;\n                    break;\n                case 62 /* CharCode.GreaterThan */:\n                    partContent += '&gt;';\n                    prevIsSpace = false;\n                    break;\n                case 38 /* CharCode.Ampersand */:\n                    partContent += '&amp;';\n                    prevIsSpace = false;\n                    break;\n                case 0 /* CharCode.Null */:\n                    partContent += '&#00;';\n                    prevIsSpace = false;\n                    break;\n                case 65279 /* CharCode.UTF8_BOM */:\n                case 8232 /* CharCode.LINE_SEPARATOR */:\n                case 8233 /* CharCode.PARAGRAPH_SEPARATOR */:\n                case 133 /* CharCode.NEXT_LINE */:\n                    partContent += '\\ufffd';\n                    prevIsSpace = false;\n                    break;\n                case 13 /* CharCode.CarriageReturn */:\n                    // zero width space, because carriage return would introduce a line break\n                    partContent += '&#8203';\n                    prevIsSpace = false;\n                    break;\n                case 32 /* CharCode.Space */:\n                    if (useNbsp && prevIsSpace) {\n                        partContent += '&#160;';\n                        prevIsSpace = false;\n                    }\n                    else {\n                        partContent += ' ';\n                        prevIsSpace = true;\n                    }\n                    break;\n                default:\n                    partContent += String.fromCharCode(charCode);\n                    prevIsSpace = false;\n            }\n        }\n        result += `<span style=\"${viewLineTokens.getInlineStyle(tokenIndex, colorMap)}\">${partContent}</span>`;\n        if (tokenEndIndex > endOffset || charIndex >= endOffset) {\n            break;\n        }\n    }\n    result += `</div>`;\n    return result;\n}\nexport function _tokenizeToString(text, languageIdCodec, tokenizationSupport) {\n    let result = `<div class=\"monaco-tokenized-source\">`;\n    const lines = strings.splitLines(text);\n    let currentState = tokenizationSupport.getInitialState();\n    for (let i = 0, len = lines.length; i < len; i++) {\n        const line = lines[i];\n        if (i > 0) {\n            result += `<br/>`;\n        }\n        const tokenizationResult = tokenizationSupport.tokenizeEncoded(line, true, currentState);\n        LineTokens.convertToEndOffset(tokenizationResult.tokens, line.length);\n        const lineTokens = new LineTokens(tokenizationResult.tokens, line, languageIdCodec);\n        const viewLineTokens = lineTokens.inflate();\n        let startOffset = 0;\n        for (let j = 0, lenJ = viewLineTokens.getCount(); j < lenJ; j++) {\n            const type = viewLineTokens.getClassName(j);\n            const endIndex = viewLineTokens.getEndOffset(j);\n            result += `<span class=\"${type}\">${strings.escape(line.substring(startOffset, endIndex))}</span>`;\n            startOffset = endIndex;\n        }\n        currentState = tokenizationResult.endState;\n    }\n    result += `</div>`;\n    return result;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/languages.js",
    "content": "import { Codicon } from '../../base/common/codicons.js';\nimport { URI } from '../../base/common/uri.js';\nimport { Range } from './core/range.js';\nimport { TokenizationRegistry as TokenizationRegistryImpl } from './tokenizationRegistry.js';\nimport { localize } from '../../nls.js';\nexport class Token {\n    constructor(offset, type, language) {\n        this.offset = offset;\n        this.type = type;\n        this.language = language;\n        this._tokenBrand = undefined;\n    }\n    toString() {\n        return '(' + this.offset + ', ' + this.type + ')';\n    }\n}\n/**\n * @internal\n */\nexport class TokenizationResult {\n    constructor(tokens, endState) {\n        this.tokens = tokens;\n        this.endState = endState;\n        this._tokenizationResultBrand = undefined;\n    }\n}\n/**\n * @internal\n */\nexport class EncodedTokenizationResult {\n    constructor(\n    /**\n     * The tokens in binary format. Each token occupies two array indices. For token i:\n     *  - at offset 2*i => startIndex\n     *  - at offset 2*i + 1 => metadata\n     *\n     */\n    tokens, endState) {\n        this.tokens = tokens;\n        this.endState = endState;\n        this._encodedTokenizationResultBrand = undefined;\n    }\n}\nexport var HoverVerbosityAction;\n(function (HoverVerbosityAction) {\n    /**\n     * Increase the verbosity of the hover\n     */\n    HoverVerbosityAction[HoverVerbosityAction[\"Increase\"] = 0] = \"Increase\";\n    /**\n     * Decrease the verbosity of the hover\n     */\n    HoverVerbosityAction[HoverVerbosityAction[\"Decrease\"] = 1] = \"Decrease\";\n})(HoverVerbosityAction || (HoverVerbosityAction = {}));\n/**\n * @internal\n */\nexport var CompletionItemKinds;\n(function (CompletionItemKinds) {\n    const byKind = new Map();\n    byKind.set(0 /* CompletionItemKind.Method */, Codicon.symbolMethod);\n    byKind.set(1 /* CompletionItemKind.Function */, Codicon.symbolFunction);\n    byKind.set(2 /* CompletionItemKind.Constructor */, Codicon.symbolConstructor);\n    byKind.set(3 /* CompletionItemKind.Field */, Codicon.symbolField);\n    byKind.set(4 /* CompletionItemKind.Variable */, Codicon.symbolVariable);\n    byKind.set(5 /* CompletionItemKind.Class */, Codicon.symbolClass);\n    byKind.set(6 /* CompletionItemKind.Struct */, Codicon.symbolStruct);\n    byKind.set(7 /* CompletionItemKind.Interface */, Codicon.symbolInterface);\n    byKind.set(8 /* CompletionItemKind.Module */, Codicon.symbolModule);\n    byKind.set(9 /* CompletionItemKind.Property */, Codicon.symbolProperty);\n    byKind.set(10 /* CompletionItemKind.Event */, Codicon.symbolEvent);\n    byKind.set(11 /* CompletionItemKind.Operator */, Codicon.symbolOperator);\n    byKind.set(12 /* CompletionItemKind.Unit */, Codicon.symbolUnit);\n    byKind.set(13 /* CompletionItemKind.Value */, Codicon.symbolValue);\n    byKind.set(15 /* CompletionItemKind.Enum */, Codicon.symbolEnum);\n    byKind.set(14 /* CompletionItemKind.Constant */, Codicon.symbolConstant);\n    byKind.set(15 /* CompletionItemKind.Enum */, Codicon.symbolEnum);\n    byKind.set(16 /* CompletionItemKind.EnumMember */, Codicon.symbolEnumMember);\n    byKind.set(17 /* CompletionItemKind.Keyword */, Codicon.symbolKeyword);\n    byKind.set(27 /* CompletionItemKind.Snippet */, Codicon.symbolSnippet);\n    byKind.set(18 /* CompletionItemKind.Text */, Codicon.symbolText);\n    byKind.set(19 /* CompletionItemKind.Color */, Codicon.symbolColor);\n    byKind.set(20 /* CompletionItemKind.File */, Codicon.symbolFile);\n    byKind.set(21 /* CompletionItemKind.Reference */, Codicon.symbolReference);\n    byKind.set(22 /* CompletionItemKind.Customcolor */, Codicon.symbolCustomColor);\n    byKind.set(23 /* CompletionItemKind.Folder */, Codicon.symbolFolder);\n    byKind.set(24 /* CompletionItemKind.TypeParameter */, Codicon.symbolTypeParameter);\n    byKind.set(25 /* CompletionItemKind.User */, Codicon.account);\n    byKind.set(26 /* CompletionItemKind.Issue */, Codicon.issues);\n    /**\n     * @internal\n     */\n    function toIcon(kind) {\n        let codicon = byKind.get(kind);\n        if (!codicon) {\n            console.info('No codicon found for CompletionItemKind ' + kind);\n            codicon = Codicon.symbolProperty;\n        }\n        return codicon;\n    }\n    CompletionItemKinds.toIcon = toIcon;\n    const data = new Map();\n    data.set('method', 0 /* CompletionItemKind.Method */);\n    data.set('function', 1 /* CompletionItemKind.Function */);\n    data.set('constructor', 2 /* CompletionItemKind.Constructor */);\n    data.set('field', 3 /* CompletionItemKind.Field */);\n    data.set('variable', 4 /* CompletionItemKind.Variable */);\n    data.set('class', 5 /* CompletionItemKind.Class */);\n    data.set('struct', 6 /* CompletionItemKind.Struct */);\n    data.set('interface', 7 /* CompletionItemKind.Interface */);\n    data.set('module', 8 /* CompletionItemKind.Module */);\n    data.set('property', 9 /* CompletionItemKind.Property */);\n    data.set('event', 10 /* CompletionItemKind.Event */);\n    data.set('operator', 11 /* CompletionItemKind.Operator */);\n    data.set('unit', 12 /* CompletionItemKind.Unit */);\n    data.set('value', 13 /* CompletionItemKind.Value */);\n    data.set('constant', 14 /* CompletionItemKind.Constant */);\n    data.set('enum', 15 /* CompletionItemKind.Enum */);\n    data.set('enum-member', 16 /* CompletionItemKind.EnumMember */);\n    data.set('enumMember', 16 /* CompletionItemKind.EnumMember */);\n    data.set('keyword', 17 /* CompletionItemKind.Keyword */);\n    data.set('snippet', 27 /* CompletionItemKind.Snippet */);\n    data.set('text', 18 /* CompletionItemKind.Text */);\n    data.set('color', 19 /* CompletionItemKind.Color */);\n    data.set('file', 20 /* CompletionItemKind.File */);\n    data.set('reference', 21 /* CompletionItemKind.Reference */);\n    data.set('customcolor', 22 /* CompletionItemKind.Customcolor */);\n    data.set('folder', 23 /* CompletionItemKind.Folder */);\n    data.set('type-parameter', 24 /* CompletionItemKind.TypeParameter */);\n    data.set('typeParameter', 24 /* CompletionItemKind.TypeParameter */);\n    data.set('account', 25 /* CompletionItemKind.User */);\n    data.set('issue', 26 /* CompletionItemKind.Issue */);\n    /**\n     * @internal\n     */\n    function fromString(value, strict) {\n        let res = data.get(value);\n        if (typeof res === 'undefined' && !strict) {\n            res = 9 /* CompletionItemKind.Property */;\n        }\n        return res;\n    }\n    CompletionItemKinds.fromString = fromString;\n})(CompletionItemKinds || (CompletionItemKinds = {}));\n/**\n * How an {@link InlineCompletionsProvider inline completion provider} was triggered.\n */\nexport var InlineCompletionTriggerKind;\n(function (InlineCompletionTriggerKind) {\n    /**\n     * Completion was triggered automatically while editing.\n     * It is sufficient to return a single completion item in this case.\n     */\n    InlineCompletionTriggerKind[InlineCompletionTriggerKind[\"Automatic\"] = 0] = \"Automatic\";\n    /**\n     * Completion was triggered explicitly by a user gesture.\n     * Return multiple completion items to enable cycling through them.\n     */\n    InlineCompletionTriggerKind[InlineCompletionTriggerKind[\"Explicit\"] = 1] = \"Explicit\";\n})(InlineCompletionTriggerKind || (InlineCompletionTriggerKind = {}));\nexport class SelectedSuggestionInfo {\n    constructor(range, text, completionKind, isSnippetText) {\n        this.range = range;\n        this.text = text;\n        this.completionKind = completionKind;\n        this.isSnippetText = isSnippetText;\n    }\n    equals(other) {\n        return Range.lift(this.range).equalsRange(other.range)\n            && this.text === other.text\n            && this.completionKind === other.completionKind\n            && this.isSnippetText === other.isSnippetText;\n    }\n}\n/**\n * @internal\n */\nexport var DocumentPasteTriggerKind;\n(function (DocumentPasteTriggerKind) {\n    DocumentPasteTriggerKind[DocumentPasteTriggerKind[\"Automatic\"] = 0] = \"Automatic\";\n    DocumentPasteTriggerKind[DocumentPasteTriggerKind[\"PasteAs\"] = 1] = \"PasteAs\";\n})(DocumentPasteTriggerKind || (DocumentPasteTriggerKind = {}));\nexport var SignatureHelpTriggerKind;\n(function (SignatureHelpTriggerKind) {\n    SignatureHelpTriggerKind[SignatureHelpTriggerKind[\"Invoke\"] = 1] = \"Invoke\";\n    SignatureHelpTriggerKind[SignatureHelpTriggerKind[\"TriggerCharacter\"] = 2] = \"TriggerCharacter\";\n    SignatureHelpTriggerKind[SignatureHelpTriggerKind[\"ContentChange\"] = 3] = \"ContentChange\";\n})(SignatureHelpTriggerKind || (SignatureHelpTriggerKind = {}));\n/**\n * A document highlight kind.\n */\nexport var DocumentHighlightKind;\n(function (DocumentHighlightKind) {\n    /**\n     * A textual occurrence.\n     */\n    DocumentHighlightKind[DocumentHighlightKind[\"Text\"] = 0] = \"Text\";\n    /**\n     * Read-access of a symbol, like reading a variable.\n     */\n    DocumentHighlightKind[DocumentHighlightKind[\"Read\"] = 1] = \"Read\";\n    /**\n     * Write-access of a symbol, like writing to a variable.\n     */\n    DocumentHighlightKind[DocumentHighlightKind[\"Write\"] = 2] = \"Write\";\n})(DocumentHighlightKind || (DocumentHighlightKind = {}));\n/**\n * @internal\n */\nexport function isLocationLink(thing) {\n    return thing\n        && URI.isUri(thing.uri)\n        && Range.isIRange(thing.range)\n        && (Range.isIRange(thing.originSelectionRange) || Range.isIRange(thing.targetSelectionRange));\n}\n/**\n * @internal\n */\nexport const symbolKindNames = {\n    [17 /* SymbolKind.Array */]: localize('Array', \"array\"),\n    [16 /* SymbolKind.Boolean */]: localize('Boolean', \"boolean\"),\n    [4 /* SymbolKind.Class */]: localize('Class', \"class\"),\n    [13 /* SymbolKind.Constant */]: localize('Constant', \"constant\"),\n    [8 /* SymbolKind.Constructor */]: localize('Constructor', \"constructor\"),\n    [9 /* SymbolKind.Enum */]: localize('Enum', \"enumeration\"),\n    [21 /* SymbolKind.EnumMember */]: localize('EnumMember', \"enumeration member\"),\n    [23 /* SymbolKind.Event */]: localize('Event', \"event\"),\n    [7 /* SymbolKind.Field */]: localize('Field', \"field\"),\n    [0 /* SymbolKind.File */]: localize('File', \"file\"),\n    [11 /* SymbolKind.Function */]: localize('Function', \"function\"),\n    [10 /* SymbolKind.Interface */]: localize('Interface', \"interface\"),\n    [19 /* SymbolKind.Key */]: localize('Key', \"key\"),\n    [5 /* SymbolKind.Method */]: localize('Method', \"method\"),\n    [1 /* SymbolKind.Module */]: localize('Module', \"module\"),\n    [2 /* SymbolKind.Namespace */]: localize('Namespace', \"namespace\"),\n    [20 /* SymbolKind.Null */]: localize('Null', \"null\"),\n    [15 /* SymbolKind.Number */]: localize('Number', \"number\"),\n    [18 /* SymbolKind.Object */]: localize('Object', \"object\"),\n    [24 /* SymbolKind.Operator */]: localize('Operator', \"operator\"),\n    [3 /* SymbolKind.Package */]: localize('Package', \"package\"),\n    [6 /* SymbolKind.Property */]: localize('Property', \"property\"),\n    [14 /* SymbolKind.String */]: localize('String', \"string\"),\n    [22 /* SymbolKind.Struct */]: localize('Struct', \"struct\"),\n    [25 /* SymbolKind.TypeParameter */]: localize('TypeParameter', \"type parameter\"),\n    [12 /* SymbolKind.Variable */]: localize('Variable', \"variable\"),\n};\n/**\n * @internal\n */\nexport function getAriaLabelForSymbol(symbolName, kind) {\n    return localize('symbolAriaLabel', '{0} ({1})', symbolName, symbolKindNames[kind]);\n}\n/**\n * @internal\n */\nexport var SymbolKinds;\n(function (SymbolKinds) {\n    const byKind = new Map();\n    byKind.set(0 /* SymbolKind.File */, Codicon.symbolFile);\n    byKind.set(1 /* SymbolKind.Module */, Codicon.symbolModule);\n    byKind.set(2 /* SymbolKind.Namespace */, Codicon.symbolNamespace);\n    byKind.set(3 /* SymbolKind.Package */, Codicon.symbolPackage);\n    byKind.set(4 /* SymbolKind.Class */, Codicon.symbolClass);\n    byKind.set(5 /* SymbolKind.Method */, Codicon.symbolMethod);\n    byKind.set(6 /* SymbolKind.Property */, Codicon.symbolProperty);\n    byKind.set(7 /* SymbolKind.Field */, Codicon.symbolField);\n    byKind.set(8 /* SymbolKind.Constructor */, Codicon.symbolConstructor);\n    byKind.set(9 /* SymbolKind.Enum */, Codicon.symbolEnum);\n    byKind.set(10 /* SymbolKind.Interface */, Codicon.symbolInterface);\n    byKind.set(11 /* SymbolKind.Function */, Codicon.symbolFunction);\n    byKind.set(12 /* SymbolKind.Variable */, Codicon.symbolVariable);\n    byKind.set(13 /* SymbolKind.Constant */, Codicon.symbolConstant);\n    byKind.set(14 /* SymbolKind.String */, Codicon.symbolString);\n    byKind.set(15 /* SymbolKind.Number */, Codicon.symbolNumber);\n    byKind.set(16 /* SymbolKind.Boolean */, Codicon.symbolBoolean);\n    byKind.set(17 /* SymbolKind.Array */, Codicon.symbolArray);\n    byKind.set(18 /* SymbolKind.Object */, Codicon.symbolObject);\n    byKind.set(19 /* SymbolKind.Key */, Codicon.symbolKey);\n    byKind.set(20 /* SymbolKind.Null */, Codicon.symbolNull);\n    byKind.set(21 /* SymbolKind.EnumMember */, Codicon.symbolEnumMember);\n    byKind.set(22 /* SymbolKind.Struct */, Codicon.symbolStruct);\n    byKind.set(23 /* SymbolKind.Event */, Codicon.symbolEvent);\n    byKind.set(24 /* SymbolKind.Operator */, Codicon.symbolOperator);\n    byKind.set(25 /* SymbolKind.TypeParameter */, Codicon.symbolTypeParameter);\n    /**\n     * @internal\n     */\n    function toIcon(kind) {\n        let icon = byKind.get(kind);\n        if (!icon) {\n            console.info('No codicon found for SymbolKind ' + kind);\n            icon = Codicon.symbolProperty;\n        }\n        return icon;\n    }\n    SymbolKinds.toIcon = toIcon;\n})(SymbolKinds || (SymbolKinds = {}));\n/** @internal */\nexport class TextEdit {\n}\nexport class FoldingRangeKind {\n    /**\n     * Returns a {@link FoldingRangeKind} for the given value.\n     *\n     * @param value of the kind.\n     */\n    static fromValue(value) {\n        switch (value) {\n            case 'comment': return FoldingRangeKind.Comment;\n            case 'imports': return FoldingRangeKind.Imports;\n            case 'region': return FoldingRangeKind.Region;\n        }\n        return new FoldingRangeKind(value);\n    }\n    /**\n     * Creates a new {@link FoldingRangeKind}.\n     *\n     * @param value of the kind.\n     */\n    constructor(value) {\n        this.value = value;\n    }\n}\n/**\n * Kind for folding range representing a comment. The value of the kind is 'comment'.\n */\nFoldingRangeKind.Comment = new FoldingRangeKind('comment');\n/**\n * Kind for folding range representing a import. The value of the kind is 'imports'.\n */\nFoldingRangeKind.Imports = new FoldingRangeKind('imports');\n/**\n * Kind for folding range representing regions (for example marked by `#region`, `#endregion`).\n * The value of the kind is 'region'.\n */\nFoldingRangeKind.Region = new FoldingRangeKind('region');\nexport var NewSymbolNameTag;\n(function (NewSymbolNameTag) {\n    NewSymbolNameTag[NewSymbolNameTag[\"AIGenerated\"] = 1] = \"AIGenerated\";\n})(NewSymbolNameTag || (NewSymbolNameTag = {}));\nexport var NewSymbolNameTriggerKind;\n(function (NewSymbolNameTriggerKind) {\n    NewSymbolNameTriggerKind[NewSymbolNameTriggerKind[\"Invoke\"] = 0] = \"Invoke\";\n    NewSymbolNameTriggerKind[NewSymbolNameTriggerKind[\"Automatic\"] = 1] = \"Automatic\";\n})(NewSymbolNameTriggerKind || (NewSymbolNameTriggerKind = {}));\n/**\n * @internal\n */\nexport var Command;\n(function (Command) {\n    /**\n     * @internal\n     */\n    function is(obj) {\n        if (!obj || typeof obj !== 'object') {\n            return false;\n        }\n        return typeof obj.id === 'string' &&\n            typeof obj.title === 'string';\n    }\n    Command.is = is;\n})(Command || (Command = {}));\nexport var InlayHintKind;\n(function (InlayHintKind) {\n    InlayHintKind[InlayHintKind[\"Type\"] = 1] = \"Type\";\n    InlayHintKind[InlayHintKind[\"Parameter\"] = 2] = \"Parameter\";\n})(InlayHintKind || (InlayHintKind = {}));\n/**\n * @internal\n */\nexport class LazyTokenizationSupport {\n    constructor(createSupport) {\n        this.createSupport = createSupport;\n        this._tokenizationSupport = null;\n    }\n    dispose() {\n        if (this._tokenizationSupport) {\n            this._tokenizationSupport.then((support) => {\n                if (support) {\n                    support.dispose();\n                }\n            });\n        }\n    }\n    get tokenizationSupport() {\n        if (!this._tokenizationSupport) {\n            this._tokenizationSupport = this.createSupport();\n        }\n        return this._tokenizationSupport;\n    }\n}\n/**\n * @internal\n */\nexport const TokenizationRegistry = new TokenizationRegistryImpl();\nexport var InlineEditTriggerKind;\n(function (InlineEditTriggerKind) {\n    InlineEditTriggerKind[InlineEditTriggerKind[\"Invoke\"] = 0] = \"Invoke\";\n    InlineEditTriggerKind[InlineEditTriggerKind[\"Automatic\"] = 1] = \"Automatic\";\n})(InlineEditTriggerKind || (InlineEditTriggerKind = {}));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsImpl.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { CallbackIterable, compareBy } from '../../../../base/common/arrays.js';\nimport { Emitter } from '../../../../base/common/event.js';\nimport { Disposable, DisposableStore, MutableDisposable } from '../../../../base/common/lifecycle.js';\nimport { Range } from '../../core/range.js';\nimport { ignoreBracketsInToken } from '../../languages/supports.js';\nimport { BracketsUtils } from '../../languages/supports/richEditBrackets.js';\nimport { BracketPairsTree } from './bracketPairsTree/bracketPairsTree.js';\nexport class BracketPairsTextModelPart extends Disposable {\n    get canBuildAST() {\n        const maxSupportedDocumentLength = /* max lines */ 50000 * /* average column count */ 100;\n        return this.textModel.getValueLength() <= maxSupportedDocumentLength;\n    }\n    constructor(textModel, languageConfigurationService) {\n        super();\n        this.textModel = textModel;\n        this.languageConfigurationService = languageConfigurationService;\n        this.bracketPairsTree = this._register(new MutableDisposable());\n        this.onDidChangeEmitter = new Emitter();\n        this.onDidChange = this.onDidChangeEmitter.event;\n        this.bracketsRequested = false;\n        this._register(this.languageConfigurationService.onDidChange(e => {\n            var _a;\n            if (!e.languageId || ((_a = this.bracketPairsTree.value) === null || _a === void 0 ? void 0 : _a.object.didLanguageChange(e.languageId))) {\n                this.bracketPairsTree.clear();\n                this.updateBracketPairsTree();\n            }\n        }));\n    }\n    //#region TextModel events\n    handleDidChangeOptions(e) {\n        this.bracketPairsTree.clear();\n        this.updateBracketPairsTree();\n    }\n    handleDidChangeLanguage(e) {\n        this.bracketPairsTree.clear();\n        this.updateBracketPairsTree();\n    }\n    handleDidChangeContent(change) {\n        var _a;\n        (_a = this.bracketPairsTree.value) === null || _a === void 0 ? void 0 : _a.object.handleContentChanged(change);\n    }\n    handleDidChangeBackgroundTokenizationState() {\n        var _a;\n        (_a = this.bracketPairsTree.value) === null || _a === void 0 ? void 0 : _a.object.handleDidChangeBackgroundTokenizationState();\n    }\n    handleDidChangeTokens(e) {\n        var _a;\n        (_a = this.bracketPairsTree.value) === null || _a === void 0 ? void 0 : _a.object.handleDidChangeTokens(e);\n    }\n    //#endregion\n    updateBracketPairsTree() {\n        if (this.bracketsRequested && this.canBuildAST) {\n            if (!this.bracketPairsTree.value) {\n                const store = new DisposableStore();\n                this.bracketPairsTree.value = createDisposableRef(store.add(new BracketPairsTree(this.textModel, (languageId) => {\n                    return this.languageConfigurationService.getLanguageConfiguration(languageId);\n                })), store);\n                store.add(this.bracketPairsTree.value.object.onDidChange(e => this.onDidChangeEmitter.fire(e)));\n                this.onDidChangeEmitter.fire();\n            }\n        }\n        else {\n            if (this.bracketPairsTree.value) {\n                this.bracketPairsTree.clear();\n                // Important: Don't call fire if there was no change!\n                this.onDidChangeEmitter.fire();\n            }\n        }\n    }\n    /**\n     * Returns all bracket pairs that intersect the given range.\n     * The result is sorted by the start position.\n    */\n    getBracketPairsInRange(range) {\n        var _a;\n        this.bracketsRequested = true;\n        this.updateBracketPairsTree();\n        return ((_a = this.bracketPairsTree.value) === null || _a === void 0 ? void 0 : _a.object.getBracketPairsInRange(range, false)) || CallbackIterable.empty;\n    }\n    getBracketPairsInRangeWithMinIndentation(range) {\n        var _a;\n        this.bracketsRequested = true;\n        this.updateBracketPairsTree();\n        return ((_a = this.bracketPairsTree.value) === null || _a === void 0 ? void 0 : _a.object.getBracketPairsInRange(range, true)) || CallbackIterable.empty;\n    }\n    getBracketsInRange(range, onlyColorizedBrackets = false) {\n        var _a;\n        this.bracketsRequested = true;\n        this.updateBracketPairsTree();\n        return ((_a = this.bracketPairsTree.value) === null || _a === void 0 ? void 0 : _a.object.getBracketsInRange(range, onlyColorizedBrackets)) || CallbackIterable.empty;\n    }\n    findMatchingBracketUp(_bracket, _position, maxDuration) {\n        const position = this.textModel.validatePosition(_position);\n        const languageId = this.textModel.getLanguageIdAtPosition(position.lineNumber, position.column);\n        if (this.canBuildAST) {\n            const closingBracketInfo = this.languageConfigurationService\n                .getLanguageConfiguration(languageId)\n                .bracketsNew.getClosingBracketInfo(_bracket);\n            if (!closingBracketInfo) {\n                return null;\n            }\n            const bracketPair = this.getBracketPairsInRange(Range.fromPositions(_position, _position)).findLast((b) => closingBracketInfo.closes(b.openingBracketInfo));\n            if (bracketPair) {\n                return bracketPair.openingBracketRange;\n            }\n            return null;\n        }\n        else {\n            // Fallback to old bracket matching code:\n            const bracket = _bracket.toLowerCase();\n            const bracketsSupport = this.languageConfigurationService.getLanguageConfiguration(languageId).brackets;\n            if (!bracketsSupport) {\n                return null;\n            }\n            const data = bracketsSupport.textIsBracket[bracket];\n            if (!data) {\n                return null;\n            }\n            return stripBracketSearchCanceled(this._findMatchingBracketUp(data, position, createTimeBasedContinueBracketSearchPredicate(maxDuration)));\n        }\n    }\n    matchBracket(position, maxDuration) {\n        if (this.canBuildAST) {\n            const bracketPair = this.getBracketPairsInRange(Range.fromPositions(position, position)).filter((item) => item.closingBracketRange !== undefined &&\n                (item.openingBracketRange.containsPosition(position) ||\n                    item.closingBracketRange.containsPosition(position))).findLastMaxBy(compareBy((item) => item.openingBracketRange.containsPosition(position)\n                ? item.openingBracketRange\n                : item.closingBracketRange, Range.compareRangesUsingStarts));\n            if (bracketPair) {\n                return [bracketPair.openingBracketRange, bracketPair.closingBracketRange];\n            }\n            return null;\n        }\n        else {\n            // Fallback to old bracket matching code:\n            const continueSearchPredicate = createTimeBasedContinueBracketSearchPredicate(maxDuration);\n            return this._matchBracket(this.textModel.validatePosition(position), continueSearchPredicate);\n        }\n    }\n    _establishBracketSearchOffsets(position, lineTokens, modeBrackets, tokenIndex) {\n        const tokenCount = lineTokens.getCount();\n        const currentLanguageId = lineTokens.getLanguageId(tokenIndex);\n        // limit search to not go before `maxBracketLength`\n        let searchStartOffset = Math.max(0, position.column - 1 - modeBrackets.maxBracketLength);\n        for (let i = tokenIndex - 1; i >= 0; i--) {\n            const tokenEndOffset = lineTokens.getEndOffset(i);\n            if (tokenEndOffset <= searchStartOffset) {\n                break;\n            }\n            if (ignoreBracketsInToken(lineTokens.getStandardTokenType(i)) || lineTokens.getLanguageId(i) !== currentLanguageId) {\n                searchStartOffset = tokenEndOffset;\n                break;\n            }\n        }\n        // limit search to not go after `maxBracketLength`\n        let searchEndOffset = Math.min(lineTokens.getLineContent().length, position.column - 1 + modeBrackets.maxBracketLength);\n        for (let i = tokenIndex + 1; i < tokenCount; i++) {\n            const tokenStartOffset = lineTokens.getStartOffset(i);\n            if (tokenStartOffset >= searchEndOffset) {\n                break;\n            }\n            if (ignoreBracketsInToken(lineTokens.getStandardTokenType(i)) || lineTokens.getLanguageId(i) !== currentLanguageId) {\n                searchEndOffset = tokenStartOffset;\n                break;\n            }\n        }\n        return { searchStartOffset, searchEndOffset };\n    }\n    _matchBracket(position, continueSearchPredicate) {\n        const lineNumber = position.lineNumber;\n        const lineTokens = this.textModel.tokenization.getLineTokens(lineNumber);\n        const lineText = this.textModel.getLineContent(lineNumber);\n        const tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n        if (tokenIndex < 0) {\n            return null;\n        }\n        const currentModeBrackets = this.languageConfigurationService.getLanguageConfiguration(lineTokens.getLanguageId(tokenIndex)).brackets;\n        // check that the token is not to be ignored\n        if (currentModeBrackets && !ignoreBracketsInToken(lineTokens.getStandardTokenType(tokenIndex))) {\n            let { searchStartOffset, searchEndOffset } = this._establishBracketSearchOffsets(position, lineTokens, currentModeBrackets, tokenIndex);\n            // it might be the case that [currentTokenStart -> currentTokenEnd] contains multiple brackets\n            // `bestResult` will contain the most right-side result\n            let bestResult = null;\n            while (true) {\n                const foundBracket = BracketsUtils.findNextBracketInRange(currentModeBrackets.forwardRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n                if (!foundBracket) {\n                    // there are no more brackets in this text\n                    break;\n                }\n                // check that we didn't hit a bracket too far away from position\n                if (foundBracket.startColumn <= position.column && position.column <= foundBracket.endColumn) {\n                    const foundBracketText = lineText.substring(foundBracket.startColumn - 1, foundBracket.endColumn - 1).toLowerCase();\n                    const r = this._matchFoundBracket(foundBracket, currentModeBrackets.textIsBracket[foundBracketText], currentModeBrackets.textIsOpenBracket[foundBracketText], continueSearchPredicate);\n                    if (r) {\n                        if (r instanceof BracketSearchCanceled) {\n                            return null;\n                        }\n                        bestResult = r;\n                    }\n                }\n                searchStartOffset = foundBracket.endColumn - 1;\n            }\n            if (bestResult) {\n                return bestResult;\n            }\n        }\n        // If position is in between two tokens, try also looking in the previous token\n        if (tokenIndex > 0 && lineTokens.getStartOffset(tokenIndex) === position.column - 1) {\n            const prevTokenIndex = tokenIndex - 1;\n            const prevModeBrackets = this.languageConfigurationService.getLanguageConfiguration(lineTokens.getLanguageId(prevTokenIndex)).brackets;\n            // check that previous token is not to be ignored\n            if (prevModeBrackets && !ignoreBracketsInToken(lineTokens.getStandardTokenType(prevTokenIndex))) {\n                const { searchStartOffset, searchEndOffset } = this._establishBracketSearchOffsets(position, lineTokens, prevModeBrackets, prevTokenIndex);\n                const foundBracket = BracketsUtils.findPrevBracketInRange(prevModeBrackets.reversedRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n                // check that we didn't hit a bracket too far away from position\n                if (foundBracket && foundBracket.startColumn <= position.column && position.column <= foundBracket.endColumn) {\n                    const foundBracketText = lineText.substring(foundBracket.startColumn - 1, foundBracket.endColumn - 1).toLowerCase();\n                    const r = this._matchFoundBracket(foundBracket, prevModeBrackets.textIsBracket[foundBracketText], prevModeBrackets.textIsOpenBracket[foundBracketText], continueSearchPredicate);\n                    if (r) {\n                        if (r instanceof BracketSearchCanceled) {\n                            return null;\n                        }\n                        return r;\n                    }\n                }\n            }\n        }\n        return null;\n    }\n    _matchFoundBracket(foundBracket, data, isOpen, continueSearchPredicate) {\n        if (!data) {\n            return null;\n        }\n        const matched = (isOpen\n            ? this._findMatchingBracketDown(data, foundBracket.getEndPosition(), continueSearchPredicate)\n            : this._findMatchingBracketUp(data, foundBracket.getStartPosition(), continueSearchPredicate));\n        if (!matched) {\n            return null;\n        }\n        if (matched instanceof BracketSearchCanceled) {\n            return matched;\n        }\n        return [foundBracket, matched];\n    }\n    _findMatchingBracketUp(bracket, position, continueSearchPredicate) {\n        // console.log('_findMatchingBracketUp: ', 'bracket: ', JSON.stringify(bracket), 'startPosition: ', String(position));\n        const languageId = bracket.languageId;\n        const reversedBracketRegex = bracket.reversedRegex;\n        let count = -1;\n        let totalCallCount = 0;\n        const searchPrevMatchingBracketInRange = (lineNumber, lineText, searchStartOffset, searchEndOffset) => {\n            while (true) {\n                if (continueSearchPredicate && (++totalCallCount) % 100 === 0 && !continueSearchPredicate()) {\n                    return BracketSearchCanceled.INSTANCE;\n                }\n                const r = BracketsUtils.findPrevBracketInRange(reversedBracketRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n                if (!r) {\n                    break;\n                }\n                const hitText = lineText.substring(r.startColumn - 1, r.endColumn - 1).toLowerCase();\n                if (bracket.isOpen(hitText)) {\n                    count++;\n                }\n                else if (bracket.isClose(hitText)) {\n                    count--;\n                }\n                if (count === 0) {\n                    return r;\n                }\n                searchEndOffset = r.startColumn - 1;\n            }\n            return null;\n        };\n        for (let lineNumber = position.lineNumber; lineNumber >= 1; lineNumber--) {\n            const lineTokens = this.textModel.tokenization.getLineTokens(lineNumber);\n            const tokenCount = lineTokens.getCount();\n            const lineText = this.textModel.getLineContent(lineNumber);\n            let tokenIndex = tokenCount - 1;\n            let searchStartOffset = lineText.length;\n            let searchEndOffset = lineText.length;\n            if (lineNumber === position.lineNumber) {\n                tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n                searchStartOffset = position.column - 1;\n                searchEndOffset = position.column - 1;\n            }\n            let prevSearchInToken = true;\n            for (; tokenIndex >= 0; tokenIndex--) {\n                const searchInToken = (lineTokens.getLanguageId(tokenIndex) === languageId && !ignoreBracketsInToken(lineTokens.getStandardTokenType(tokenIndex)));\n                if (searchInToken) {\n                    // this token should be searched\n                    if (prevSearchInToken) {\n                        // the previous token should be searched, simply extend searchStartOffset\n                        searchStartOffset = lineTokens.getStartOffset(tokenIndex);\n                    }\n                    else {\n                        // the previous token should not be searched\n                        searchStartOffset = lineTokens.getStartOffset(tokenIndex);\n                        searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n                    }\n                }\n                else {\n                    // this token should not be searched\n                    if (prevSearchInToken && searchStartOffset !== searchEndOffset) {\n                        const r = searchPrevMatchingBracketInRange(lineNumber, lineText, searchStartOffset, searchEndOffset);\n                        if (r) {\n                            return r;\n                        }\n                    }\n                }\n                prevSearchInToken = searchInToken;\n            }\n            if (prevSearchInToken && searchStartOffset !== searchEndOffset) {\n                const r = searchPrevMatchingBracketInRange(lineNumber, lineText, searchStartOffset, searchEndOffset);\n                if (r) {\n                    return r;\n                }\n            }\n        }\n        return null;\n    }\n    _findMatchingBracketDown(bracket, position, continueSearchPredicate) {\n        // console.log('_findMatchingBracketDown: ', 'bracket: ', JSON.stringify(bracket), 'startPosition: ', String(position));\n        const languageId = bracket.languageId;\n        const bracketRegex = bracket.forwardRegex;\n        let count = 1;\n        let totalCallCount = 0;\n        const searchNextMatchingBracketInRange = (lineNumber, lineText, searchStartOffset, searchEndOffset) => {\n            while (true) {\n                if (continueSearchPredicate && (++totalCallCount) % 100 === 0 && !continueSearchPredicate()) {\n                    return BracketSearchCanceled.INSTANCE;\n                }\n                const r = BracketsUtils.findNextBracketInRange(bracketRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n                if (!r) {\n                    break;\n                }\n                const hitText = lineText.substring(r.startColumn - 1, r.endColumn - 1).toLowerCase();\n                if (bracket.isOpen(hitText)) {\n                    count++;\n                }\n                else if (bracket.isClose(hitText)) {\n                    count--;\n                }\n                if (count === 0) {\n                    return r;\n                }\n                searchStartOffset = r.endColumn - 1;\n            }\n            return null;\n        };\n        const lineCount = this.textModel.getLineCount();\n        for (let lineNumber = position.lineNumber; lineNumber <= lineCount; lineNumber++) {\n            const lineTokens = this.textModel.tokenization.getLineTokens(lineNumber);\n            const tokenCount = lineTokens.getCount();\n            const lineText = this.textModel.getLineContent(lineNumber);\n            let tokenIndex = 0;\n            let searchStartOffset = 0;\n            let searchEndOffset = 0;\n            if (lineNumber === position.lineNumber) {\n                tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n                searchStartOffset = position.column - 1;\n                searchEndOffset = position.column - 1;\n            }\n            let prevSearchInToken = true;\n            for (; tokenIndex < tokenCount; tokenIndex++) {\n                const searchInToken = (lineTokens.getLanguageId(tokenIndex) === languageId && !ignoreBracketsInToken(lineTokens.getStandardTokenType(tokenIndex)));\n                if (searchInToken) {\n                    // this token should be searched\n                    if (prevSearchInToken) {\n                        // the previous token should be searched, simply extend searchEndOffset\n                        searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n                    }\n                    else {\n                        // the previous token should not be searched\n                        searchStartOffset = lineTokens.getStartOffset(tokenIndex);\n                        searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n                    }\n                }\n                else {\n                    // this token should not be searched\n                    if (prevSearchInToken && searchStartOffset !== searchEndOffset) {\n                        const r = searchNextMatchingBracketInRange(lineNumber, lineText, searchStartOffset, searchEndOffset);\n                        if (r) {\n                            return r;\n                        }\n                    }\n                }\n                prevSearchInToken = searchInToken;\n            }\n            if (prevSearchInToken && searchStartOffset !== searchEndOffset) {\n                const r = searchNextMatchingBracketInRange(lineNumber, lineText, searchStartOffset, searchEndOffset);\n                if (r) {\n                    return r;\n                }\n            }\n        }\n        return null;\n    }\n    findPrevBracket(_position) {\n        var _a;\n        const position = this.textModel.validatePosition(_position);\n        if (this.canBuildAST) {\n            this.bracketsRequested = true;\n            this.updateBracketPairsTree();\n            return ((_a = this.bracketPairsTree.value) === null || _a === void 0 ? void 0 : _a.object.getFirstBracketBefore(position)) || null;\n        }\n        let languageId = null;\n        let modeBrackets = null;\n        let bracketConfig = null;\n        for (let lineNumber = position.lineNumber; lineNumber >= 1; lineNumber--) {\n            const lineTokens = this.textModel.tokenization.getLineTokens(lineNumber);\n            const tokenCount = lineTokens.getCount();\n            const lineText = this.textModel.getLineContent(lineNumber);\n            let tokenIndex = tokenCount - 1;\n            let searchStartOffset = lineText.length;\n            let searchEndOffset = lineText.length;\n            if (lineNumber === position.lineNumber) {\n                tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n                searchStartOffset = position.column - 1;\n                searchEndOffset = position.column - 1;\n                const tokenLanguageId = lineTokens.getLanguageId(tokenIndex);\n                if (languageId !== tokenLanguageId) {\n                    languageId = tokenLanguageId;\n                    modeBrackets = this.languageConfigurationService.getLanguageConfiguration(languageId).brackets;\n                    bracketConfig = this.languageConfigurationService.getLanguageConfiguration(languageId).bracketsNew;\n                }\n            }\n            let prevSearchInToken = true;\n            for (; tokenIndex >= 0; tokenIndex--) {\n                const tokenLanguageId = lineTokens.getLanguageId(tokenIndex);\n                if (languageId !== tokenLanguageId) {\n                    // language id change!\n                    if (modeBrackets && bracketConfig && prevSearchInToken && searchStartOffset !== searchEndOffset) {\n                        const r = BracketsUtils.findPrevBracketInRange(modeBrackets.reversedRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n                        if (r) {\n                            return this._toFoundBracket(bracketConfig, r);\n                        }\n                        prevSearchInToken = false;\n                    }\n                    languageId = tokenLanguageId;\n                    modeBrackets = this.languageConfigurationService.getLanguageConfiguration(languageId).brackets;\n                    bracketConfig = this.languageConfigurationService.getLanguageConfiguration(languageId).bracketsNew;\n                }\n                const searchInToken = (!!modeBrackets && !ignoreBracketsInToken(lineTokens.getStandardTokenType(tokenIndex)));\n                if (searchInToken) {\n                    // this token should be searched\n                    if (prevSearchInToken) {\n                        // the previous token should be searched, simply extend searchStartOffset\n                        searchStartOffset = lineTokens.getStartOffset(tokenIndex);\n                    }\n                    else {\n                        // the previous token should not be searched\n                        searchStartOffset = lineTokens.getStartOffset(tokenIndex);\n                        searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n                    }\n                }\n                else {\n                    // this token should not be searched\n                    if (bracketConfig && modeBrackets && prevSearchInToken && searchStartOffset !== searchEndOffset) {\n                        const r = BracketsUtils.findPrevBracketInRange(modeBrackets.reversedRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n                        if (r) {\n                            return this._toFoundBracket(bracketConfig, r);\n                        }\n                    }\n                }\n                prevSearchInToken = searchInToken;\n            }\n            if (bracketConfig && modeBrackets && prevSearchInToken && searchStartOffset !== searchEndOffset) {\n                const r = BracketsUtils.findPrevBracketInRange(modeBrackets.reversedRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n                if (r) {\n                    return this._toFoundBracket(bracketConfig, r);\n                }\n            }\n        }\n        return null;\n    }\n    findNextBracket(_position) {\n        var _a;\n        const position = this.textModel.validatePosition(_position);\n        if (this.canBuildAST) {\n            this.bracketsRequested = true;\n            this.updateBracketPairsTree();\n            return ((_a = this.bracketPairsTree.value) === null || _a === void 0 ? void 0 : _a.object.getFirstBracketAfter(position)) || null;\n        }\n        const lineCount = this.textModel.getLineCount();\n        let languageId = null;\n        let modeBrackets = null;\n        let bracketConfig = null;\n        for (let lineNumber = position.lineNumber; lineNumber <= lineCount; lineNumber++) {\n            const lineTokens = this.textModel.tokenization.getLineTokens(lineNumber);\n            const tokenCount = lineTokens.getCount();\n            const lineText = this.textModel.getLineContent(lineNumber);\n            let tokenIndex = 0;\n            let searchStartOffset = 0;\n            let searchEndOffset = 0;\n            if (lineNumber === position.lineNumber) {\n                tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n                searchStartOffset = position.column - 1;\n                searchEndOffset = position.column - 1;\n                const tokenLanguageId = lineTokens.getLanguageId(tokenIndex);\n                if (languageId !== tokenLanguageId) {\n                    languageId = tokenLanguageId;\n                    modeBrackets = this.languageConfigurationService.getLanguageConfiguration(languageId).brackets;\n                    bracketConfig = this.languageConfigurationService.getLanguageConfiguration(languageId).bracketsNew;\n                }\n            }\n            let prevSearchInToken = true;\n            for (; tokenIndex < tokenCount; tokenIndex++) {\n                const tokenLanguageId = lineTokens.getLanguageId(tokenIndex);\n                if (languageId !== tokenLanguageId) {\n                    // language id change!\n                    if (bracketConfig && modeBrackets && prevSearchInToken && searchStartOffset !== searchEndOffset) {\n                        const r = BracketsUtils.findNextBracketInRange(modeBrackets.forwardRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n                        if (r) {\n                            return this._toFoundBracket(bracketConfig, r);\n                        }\n                        prevSearchInToken = false;\n                    }\n                    languageId = tokenLanguageId;\n                    modeBrackets = this.languageConfigurationService.getLanguageConfiguration(languageId).brackets;\n                    bracketConfig = this.languageConfigurationService.getLanguageConfiguration(languageId).bracketsNew;\n                }\n                const searchInToken = (!!modeBrackets && !ignoreBracketsInToken(lineTokens.getStandardTokenType(tokenIndex)));\n                if (searchInToken) {\n                    // this token should be searched\n                    if (prevSearchInToken) {\n                        // the previous token should be searched, simply extend searchEndOffset\n                        searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n                    }\n                    else {\n                        // the previous token should not be searched\n                        searchStartOffset = lineTokens.getStartOffset(tokenIndex);\n                        searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n                    }\n                }\n                else {\n                    // this token should not be searched\n                    if (bracketConfig && modeBrackets && prevSearchInToken && searchStartOffset !== searchEndOffset) {\n                        const r = BracketsUtils.findNextBracketInRange(modeBrackets.forwardRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n                        if (r) {\n                            return this._toFoundBracket(bracketConfig, r);\n                        }\n                    }\n                }\n                prevSearchInToken = searchInToken;\n            }\n            if (bracketConfig && modeBrackets && prevSearchInToken && searchStartOffset !== searchEndOffset) {\n                const r = BracketsUtils.findNextBracketInRange(modeBrackets.forwardRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n                if (r) {\n                    return this._toFoundBracket(bracketConfig, r);\n                }\n            }\n        }\n        return null;\n    }\n    findEnclosingBrackets(_position, maxDuration) {\n        const position = this.textModel.validatePosition(_position);\n        if (this.canBuildAST) {\n            const range = Range.fromPositions(position);\n            const bracketPair = this.getBracketPairsInRange(Range.fromPositions(position, position)).findLast((item) => item.closingBracketRange !== undefined && item.range.strictContainsRange(range));\n            if (bracketPair) {\n                return [bracketPair.openingBracketRange, bracketPair.closingBracketRange];\n            }\n            return null;\n        }\n        const continueSearchPredicate = createTimeBasedContinueBracketSearchPredicate(maxDuration);\n        const lineCount = this.textModel.getLineCount();\n        const savedCounts = new Map();\n        let counts = [];\n        const resetCounts = (languageId, modeBrackets) => {\n            if (!savedCounts.has(languageId)) {\n                const tmp = [];\n                for (let i = 0, len = modeBrackets ? modeBrackets.brackets.length : 0; i < len; i++) {\n                    tmp[i] = 0;\n                }\n                savedCounts.set(languageId, tmp);\n            }\n            counts = savedCounts.get(languageId);\n        };\n        let totalCallCount = 0;\n        const searchInRange = (modeBrackets, lineNumber, lineText, searchStartOffset, searchEndOffset) => {\n            while (true) {\n                if (continueSearchPredicate && (++totalCallCount) % 100 === 0 && !continueSearchPredicate()) {\n                    return BracketSearchCanceled.INSTANCE;\n                }\n                const r = BracketsUtils.findNextBracketInRange(modeBrackets.forwardRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n                if (!r) {\n                    break;\n                }\n                const hitText = lineText.substring(r.startColumn - 1, r.endColumn - 1).toLowerCase();\n                const bracket = modeBrackets.textIsBracket[hitText];\n                if (bracket) {\n                    if (bracket.isOpen(hitText)) {\n                        counts[bracket.index]++;\n                    }\n                    else if (bracket.isClose(hitText)) {\n                        counts[bracket.index]--;\n                    }\n                    if (counts[bracket.index] === -1) {\n                        return this._matchFoundBracket(r, bracket, false, continueSearchPredicate);\n                    }\n                }\n                searchStartOffset = r.endColumn - 1;\n            }\n            return null;\n        };\n        let languageId = null;\n        let modeBrackets = null;\n        for (let lineNumber = position.lineNumber; lineNumber <= lineCount; lineNumber++) {\n            const lineTokens = this.textModel.tokenization.getLineTokens(lineNumber);\n            const tokenCount = lineTokens.getCount();\n            const lineText = this.textModel.getLineContent(lineNumber);\n            let tokenIndex = 0;\n            let searchStartOffset = 0;\n            let searchEndOffset = 0;\n            if (lineNumber === position.lineNumber) {\n                tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n                searchStartOffset = position.column - 1;\n                searchEndOffset = position.column - 1;\n                const tokenLanguageId = lineTokens.getLanguageId(tokenIndex);\n                if (languageId !== tokenLanguageId) {\n                    languageId = tokenLanguageId;\n                    modeBrackets = this.languageConfigurationService.getLanguageConfiguration(languageId).brackets;\n                    resetCounts(languageId, modeBrackets);\n                }\n            }\n            let prevSearchInToken = true;\n            for (; tokenIndex < tokenCount; tokenIndex++) {\n                const tokenLanguageId = lineTokens.getLanguageId(tokenIndex);\n                if (languageId !== tokenLanguageId) {\n                    // language id change!\n                    if (modeBrackets && prevSearchInToken && searchStartOffset !== searchEndOffset) {\n                        const r = searchInRange(modeBrackets, lineNumber, lineText, searchStartOffset, searchEndOffset);\n                        if (r) {\n                            return stripBracketSearchCanceled(r);\n                        }\n                        prevSearchInToken = false;\n                    }\n                    languageId = tokenLanguageId;\n                    modeBrackets = this.languageConfigurationService.getLanguageConfiguration(languageId).brackets;\n                    resetCounts(languageId, modeBrackets);\n                }\n                const searchInToken = (!!modeBrackets && !ignoreBracketsInToken(lineTokens.getStandardTokenType(tokenIndex)));\n                if (searchInToken) {\n                    // this token should be searched\n                    if (prevSearchInToken) {\n                        // the previous token should be searched, simply extend searchEndOffset\n                        searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n                    }\n                    else {\n                        // the previous token should not be searched\n                        searchStartOffset = lineTokens.getStartOffset(tokenIndex);\n                        searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n                    }\n                }\n                else {\n                    // this token should not be searched\n                    if (modeBrackets && prevSearchInToken && searchStartOffset !== searchEndOffset) {\n                        const r = searchInRange(modeBrackets, lineNumber, lineText, searchStartOffset, searchEndOffset);\n                        if (r) {\n                            return stripBracketSearchCanceled(r);\n                        }\n                    }\n                }\n                prevSearchInToken = searchInToken;\n            }\n            if (modeBrackets && prevSearchInToken && searchStartOffset !== searchEndOffset) {\n                const r = searchInRange(modeBrackets, lineNumber, lineText, searchStartOffset, searchEndOffset);\n                if (r) {\n                    return stripBracketSearchCanceled(r);\n                }\n            }\n        }\n        return null;\n    }\n    _toFoundBracket(bracketConfig, r) {\n        if (!r) {\n            return null;\n        }\n        let text = this.textModel.getValueInRange(r);\n        text = text.toLowerCase();\n        const bracketInfo = bracketConfig.getBracketInfo(text);\n        if (!bracketInfo) {\n            return null;\n        }\n        return {\n            range: r,\n            bracketInfo\n        };\n    }\n}\nfunction createDisposableRef(object, disposable) {\n    return {\n        object,\n        dispose: () => disposable === null || disposable === void 0 ? void 0 : disposable.dispose(),\n    };\n}\nfunction createTimeBasedContinueBracketSearchPredicate(maxDuration) {\n    if (typeof maxDuration === 'undefined') {\n        return () => true;\n    }\n    else {\n        const startTime = Date.now();\n        return () => {\n            return (Date.now() - startTime <= maxDuration);\n        };\n    }\n}\nclass BracketSearchCanceled {\n    constructor() {\n        this._searchCanceledBrand = undefined;\n    }\n}\nBracketSearchCanceled.INSTANCE = new BracketSearchCanceled();\nfunction stripBracketSearchCanceled(result) {\n    if (result instanceof BracketSearchCanceled) {\n        return null;\n    }\n    return result;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/ast.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { BugIndicatingError } from '../../../../../base/common/errors.js';\nimport { CursorColumns } from '../../../core/cursorColumns.js';\nimport { lengthAdd, lengthGetLineCount, lengthToObj, lengthZero } from './length.js';\nimport { SmallImmutableSet } from './smallImmutableSet.js';\n/**\n * The base implementation for all AST nodes.\n*/\nclass BaseAstNode {\n    /**\n     * The length of the entire node, which should equal the sum of lengths of all children.\n    */\n    get length() {\n        return this._length;\n    }\n    constructor(length) {\n        this._length = length;\n    }\n}\n/**\n * Represents a bracket pair including its child (e.g. `{ ... }`).\n * Might be unclosed.\n * Immutable, if all children are immutable.\n*/\nexport class PairAstNode extends BaseAstNode {\n    static create(openingBracket, child, closingBracket) {\n        let length = openingBracket.length;\n        if (child) {\n            length = lengthAdd(length, child.length);\n        }\n        if (closingBracket) {\n            length = lengthAdd(length, closingBracket.length);\n        }\n        return new PairAstNode(length, openingBracket, child, closingBracket, child ? child.missingOpeningBracketIds : SmallImmutableSet.getEmpty());\n    }\n    get kind() {\n        return 2 /* AstNodeKind.Pair */;\n    }\n    get listHeight() {\n        return 0;\n    }\n    get childrenLength() {\n        return 3;\n    }\n    getChild(idx) {\n        switch (idx) {\n            case 0: return this.openingBracket;\n            case 1: return this.child;\n            case 2: return this.closingBracket;\n        }\n        throw new Error('Invalid child index');\n    }\n    /**\n     * Avoid using this property, it allocates an array!\n    */\n    get children() {\n        const result = [];\n        result.push(this.openingBracket);\n        if (this.child) {\n            result.push(this.child);\n        }\n        if (this.closingBracket) {\n            result.push(this.closingBracket);\n        }\n        return result;\n    }\n    constructor(length, openingBracket, child, closingBracket, missingOpeningBracketIds) {\n        super(length);\n        this.openingBracket = openingBracket;\n        this.child = child;\n        this.closingBracket = closingBracket;\n        this.missingOpeningBracketIds = missingOpeningBracketIds;\n    }\n    canBeReused(openBracketIds) {\n        if (this.closingBracket === null) {\n            // Unclosed pair ast nodes only\n            // end at the end of the document\n            // or when a parent node is closed.\n            // This could be improved:\n            // Only return false if some next token is neither \"undefined\" nor a bracket that closes a parent.\n            return false;\n        }\n        if (openBracketIds.intersects(this.missingOpeningBracketIds)) {\n            return false;\n        }\n        return true;\n    }\n    deepClone() {\n        return new PairAstNode(this.length, this.openingBracket.deepClone(), this.child && this.child.deepClone(), this.closingBracket && this.closingBracket.deepClone(), this.missingOpeningBracketIds);\n    }\n    computeMinIndentation(offset, textModel) {\n        return this.child ? this.child.computeMinIndentation(lengthAdd(offset, this.openingBracket.length), textModel) : Number.MAX_SAFE_INTEGER;\n    }\n}\nexport class ListAstNode extends BaseAstNode {\n    /**\n     * This method uses more memory-efficient list nodes that can only store 2 or 3 children.\n    */\n    static create23(item1, item2, item3, immutable = false) {\n        let length = item1.length;\n        let missingBracketIds = item1.missingOpeningBracketIds;\n        if (item1.listHeight !== item2.listHeight) {\n            throw new Error('Invalid list heights');\n        }\n        length = lengthAdd(length, item2.length);\n        missingBracketIds = missingBracketIds.merge(item2.missingOpeningBracketIds);\n        if (item3) {\n            if (item1.listHeight !== item3.listHeight) {\n                throw new Error('Invalid list heights');\n            }\n            length = lengthAdd(length, item3.length);\n            missingBracketIds = missingBracketIds.merge(item3.missingOpeningBracketIds);\n        }\n        return immutable\n            ? new Immutable23ListAstNode(length, item1.listHeight + 1, item1, item2, item3, missingBracketIds)\n            : new TwoThreeListAstNode(length, item1.listHeight + 1, item1, item2, item3, missingBracketIds);\n    }\n    static getEmpty() {\n        return new ImmutableArrayListAstNode(lengthZero, 0, [], SmallImmutableSet.getEmpty());\n    }\n    get kind() {\n        return 4 /* AstNodeKind.List */;\n    }\n    get missingOpeningBracketIds() {\n        return this._missingOpeningBracketIds;\n    }\n    /**\n     * Use ListAstNode.create.\n    */\n    constructor(length, listHeight, _missingOpeningBracketIds) {\n        super(length);\n        this.listHeight = listHeight;\n        this._missingOpeningBracketIds = _missingOpeningBracketIds;\n        this.cachedMinIndentation = -1;\n    }\n    throwIfImmutable() {\n        // NOOP\n    }\n    makeLastElementMutable() {\n        this.throwIfImmutable();\n        const childCount = this.childrenLength;\n        if (childCount === 0) {\n            return undefined;\n        }\n        const lastChild = this.getChild(childCount - 1);\n        const mutable = lastChild.kind === 4 /* AstNodeKind.List */ ? lastChild.toMutable() : lastChild;\n        if (lastChild !== mutable) {\n            this.setChild(childCount - 1, mutable);\n        }\n        return mutable;\n    }\n    makeFirstElementMutable() {\n        this.throwIfImmutable();\n        const childCount = this.childrenLength;\n        if (childCount === 0) {\n            return undefined;\n        }\n        const firstChild = this.getChild(0);\n        const mutable = firstChild.kind === 4 /* AstNodeKind.List */ ? firstChild.toMutable() : firstChild;\n        if (firstChild !== mutable) {\n            this.setChild(0, mutable);\n        }\n        return mutable;\n    }\n    canBeReused(openBracketIds) {\n        if (openBracketIds.intersects(this.missingOpeningBracketIds)) {\n            return false;\n        }\n        if (this.childrenLength === 0) {\n            // Don't reuse empty lists.\n            return false;\n        }\n        let lastChild = this;\n        while (lastChild.kind === 4 /* AstNodeKind.List */) {\n            const lastLength = lastChild.childrenLength;\n            if (lastLength === 0) {\n                // Empty lists should never be contained in other lists.\n                throw new BugIndicatingError();\n            }\n            lastChild = lastChild.getChild(lastLength - 1);\n        }\n        return lastChild.canBeReused(openBracketIds);\n    }\n    handleChildrenChanged() {\n        this.throwIfImmutable();\n        const count = this.childrenLength;\n        let length = this.getChild(0).length;\n        let unopenedBrackets = this.getChild(0).missingOpeningBracketIds;\n        for (let i = 1; i < count; i++) {\n            const child = this.getChild(i);\n            length = lengthAdd(length, child.length);\n            unopenedBrackets = unopenedBrackets.merge(child.missingOpeningBracketIds);\n        }\n        this._length = length;\n        this._missingOpeningBracketIds = unopenedBrackets;\n        this.cachedMinIndentation = -1;\n    }\n    computeMinIndentation(offset, textModel) {\n        if (this.cachedMinIndentation !== -1) {\n            return this.cachedMinIndentation;\n        }\n        let minIndentation = Number.MAX_SAFE_INTEGER;\n        let childOffset = offset;\n        for (let i = 0; i < this.childrenLength; i++) {\n            const child = this.getChild(i);\n            if (child) {\n                minIndentation = Math.min(minIndentation, child.computeMinIndentation(childOffset, textModel));\n                childOffset = lengthAdd(childOffset, child.length);\n            }\n        }\n        this.cachedMinIndentation = minIndentation;\n        return minIndentation;\n    }\n}\nclass TwoThreeListAstNode extends ListAstNode {\n    get childrenLength() {\n        return this._item3 !== null ? 3 : 2;\n    }\n    getChild(idx) {\n        switch (idx) {\n            case 0: return this._item1;\n            case 1: return this._item2;\n            case 2: return this._item3;\n        }\n        throw new Error('Invalid child index');\n    }\n    setChild(idx, node) {\n        switch (idx) {\n            case 0:\n                this._item1 = node;\n                return;\n            case 1:\n                this._item2 = node;\n                return;\n            case 2:\n                this._item3 = node;\n                return;\n        }\n        throw new Error('Invalid child index');\n    }\n    get children() {\n        return this._item3 ? [this._item1, this._item2, this._item3] : [this._item1, this._item2];\n    }\n    get item1() {\n        return this._item1;\n    }\n    get item2() {\n        return this._item2;\n    }\n    get item3() {\n        return this._item3;\n    }\n    constructor(length, listHeight, _item1, _item2, _item3, missingOpeningBracketIds) {\n        super(length, listHeight, missingOpeningBracketIds);\n        this._item1 = _item1;\n        this._item2 = _item2;\n        this._item3 = _item3;\n    }\n    deepClone() {\n        return new TwoThreeListAstNode(this.length, this.listHeight, this._item1.deepClone(), this._item2.deepClone(), this._item3 ? this._item3.deepClone() : null, this.missingOpeningBracketIds);\n    }\n    appendChildOfSameHeight(node) {\n        if (this._item3) {\n            throw new Error('Cannot append to a full (2,3) tree node');\n        }\n        this.throwIfImmutable();\n        this._item3 = node;\n        this.handleChildrenChanged();\n    }\n    unappendChild() {\n        if (!this._item3) {\n            throw new Error('Cannot remove from a non-full (2,3) tree node');\n        }\n        this.throwIfImmutable();\n        const result = this._item3;\n        this._item3 = null;\n        this.handleChildrenChanged();\n        return result;\n    }\n    prependChildOfSameHeight(node) {\n        if (this._item3) {\n            throw new Error('Cannot prepend to a full (2,3) tree node');\n        }\n        this.throwIfImmutable();\n        this._item3 = this._item2;\n        this._item2 = this._item1;\n        this._item1 = node;\n        this.handleChildrenChanged();\n    }\n    unprependChild() {\n        if (!this._item3) {\n            throw new Error('Cannot remove from a non-full (2,3) tree node');\n        }\n        this.throwIfImmutable();\n        const result = this._item1;\n        this._item1 = this._item2;\n        this._item2 = this._item3;\n        this._item3 = null;\n        this.handleChildrenChanged();\n        return result;\n    }\n    toMutable() {\n        return this;\n    }\n}\n/**\n * Immutable, if all children are immutable.\n*/\nclass Immutable23ListAstNode extends TwoThreeListAstNode {\n    toMutable() {\n        return new TwoThreeListAstNode(this.length, this.listHeight, this.item1, this.item2, this.item3, this.missingOpeningBracketIds);\n    }\n    throwIfImmutable() {\n        throw new Error('this instance is immutable');\n    }\n}\n/**\n * For debugging.\n*/\nclass ArrayListAstNode extends ListAstNode {\n    get childrenLength() {\n        return this._children.length;\n    }\n    getChild(idx) {\n        return this._children[idx];\n    }\n    setChild(idx, child) {\n        this._children[idx] = child;\n    }\n    get children() {\n        return this._children;\n    }\n    constructor(length, listHeight, _children, missingOpeningBracketIds) {\n        super(length, listHeight, missingOpeningBracketIds);\n        this._children = _children;\n    }\n    deepClone() {\n        const children = new Array(this._children.length);\n        for (let i = 0; i < this._children.length; i++) {\n            children[i] = this._children[i].deepClone();\n        }\n        return new ArrayListAstNode(this.length, this.listHeight, children, this.missingOpeningBracketIds);\n    }\n    appendChildOfSameHeight(node) {\n        this.throwIfImmutable();\n        this._children.push(node);\n        this.handleChildrenChanged();\n    }\n    unappendChild() {\n        this.throwIfImmutable();\n        const item = this._children.pop();\n        this.handleChildrenChanged();\n        return item;\n    }\n    prependChildOfSameHeight(node) {\n        this.throwIfImmutable();\n        this._children.unshift(node);\n        this.handleChildrenChanged();\n    }\n    unprependChild() {\n        this.throwIfImmutable();\n        const item = this._children.shift();\n        this.handleChildrenChanged();\n        return item;\n    }\n    toMutable() {\n        return this;\n    }\n}\n/**\n * Immutable, if all children are immutable.\n*/\nclass ImmutableArrayListAstNode extends ArrayListAstNode {\n    toMutable() {\n        return new ArrayListAstNode(this.length, this.listHeight, [...this.children], this.missingOpeningBracketIds);\n    }\n    throwIfImmutable() {\n        throw new Error('this instance is immutable');\n    }\n}\nconst emptyArray = [];\nclass ImmutableLeafAstNode extends BaseAstNode {\n    get listHeight() {\n        return 0;\n    }\n    get childrenLength() {\n        return 0;\n    }\n    getChild(idx) {\n        return null;\n    }\n    get children() {\n        return emptyArray;\n    }\n    deepClone() {\n        return this;\n    }\n}\nexport class TextAstNode extends ImmutableLeafAstNode {\n    get kind() {\n        return 0 /* AstNodeKind.Text */;\n    }\n    get missingOpeningBracketIds() {\n        return SmallImmutableSet.getEmpty();\n    }\n    canBeReused(_openedBracketIds) {\n        return true;\n    }\n    computeMinIndentation(offset, textModel) {\n        const start = lengthToObj(offset);\n        // Text ast nodes don't have partial indentation (ensured by the tokenizer).\n        // Thus, if this text node does not start at column 0, the first line cannot have any indentation at all.\n        const startLineNumber = (start.columnCount === 0 ? start.lineCount : start.lineCount + 1) + 1;\n        const endLineNumber = lengthGetLineCount(lengthAdd(offset, this.length)) + 1;\n        let result = Number.MAX_SAFE_INTEGER;\n        for (let lineNumber = startLineNumber; lineNumber <= endLineNumber; lineNumber++) {\n            const firstNonWsColumn = textModel.getLineFirstNonWhitespaceColumn(lineNumber);\n            const lineContent = textModel.getLineContent(lineNumber);\n            if (firstNonWsColumn === 0) {\n                continue;\n            }\n            const visibleColumn = CursorColumns.visibleColumnFromColumn(lineContent, firstNonWsColumn, textModel.getOptions().tabSize);\n            result = Math.min(result, visibleColumn);\n        }\n        return result;\n    }\n}\nexport class BracketAstNode extends ImmutableLeafAstNode {\n    static create(length, bracketInfo, bracketIds) {\n        const node = new BracketAstNode(length, bracketInfo, bracketIds);\n        return node;\n    }\n    get kind() {\n        return 1 /* AstNodeKind.Bracket */;\n    }\n    get missingOpeningBracketIds() {\n        return SmallImmutableSet.getEmpty();\n    }\n    constructor(length, bracketInfo, \n    /**\n     * In case of a opening bracket, this is the id of the opening bracket.\n     * In case of a closing bracket, this contains the ids of all opening brackets it can close.\n    */\n    bracketIds) {\n        super(length);\n        this.bracketInfo = bracketInfo;\n        this.bracketIds = bracketIds;\n    }\n    get text() {\n        return this.bracketInfo.bracketText;\n    }\n    get languageId() {\n        return this.bracketInfo.languageId;\n    }\n    canBeReused(_openedBracketIds) {\n        // These nodes could be reused,\n        // but not in a general way.\n        // Their parent may be reused.\n        return false;\n    }\n    computeMinIndentation(offset, textModel) {\n        return Number.MAX_SAFE_INTEGER;\n    }\n}\nexport class InvalidBracketAstNode extends ImmutableLeafAstNode {\n    get kind() {\n        return 3 /* AstNodeKind.UnexpectedClosingBracket */;\n    }\n    constructor(closingBrackets, length) {\n        super(length);\n        this.missingOpeningBracketIds = closingBrackets;\n    }\n    canBeReused(openedBracketIds) {\n        return !openedBracketIds.intersects(this.missingOpeningBracketIds);\n    }\n    computeMinIndentation(offset, textModel) {\n        return Number.MAX_SAFE_INTEGER;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/beforeEditPositionMapper.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Range } from '../../../core/range.js';\nimport { lengthAdd, lengthDiffNonNegative, lengthLessThanEqual, lengthOfString, lengthToObj, positionToLength, toLength } from './length.js';\nexport class TextEditInfo {\n    static fromModelContentChanges(changes) {\n        // Must be sorted in ascending order\n        const edits = changes.map(c => {\n            const range = Range.lift(c.range);\n            return new TextEditInfo(positionToLength(range.getStartPosition()), positionToLength(range.getEndPosition()), lengthOfString(c.text));\n        }).reverse();\n        return edits;\n    }\n    constructor(startOffset, endOffset, newLength) {\n        this.startOffset = startOffset;\n        this.endOffset = endOffset;\n        this.newLength = newLength;\n    }\n    toString() {\n        return `[${lengthToObj(this.startOffset)}...${lengthToObj(this.endOffset)}) -> ${lengthToObj(this.newLength)}`;\n    }\n}\nexport class BeforeEditPositionMapper {\n    /**\n     * @param edits Must be sorted by offset in ascending order.\n    */\n    constructor(edits) {\n        this.nextEditIdx = 0;\n        this.deltaOldToNewLineCount = 0;\n        this.deltaOldToNewColumnCount = 0;\n        this.deltaLineIdxInOld = -1;\n        this.edits = edits.map(edit => TextEditInfoCache.from(edit));\n    }\n    /**\n     * @param offset Must be equal to or greater than the last offset this method has been called with.\n    */\n    getOffsetBeforeChange(offset) {\n        this.adjustNextEdit(offset);\n        return this.translateCurToOld(offset);\n    }\n    /**\n     * @param offset Must be equal to or greater than the last offset this method has been called with.\n     * Returns null if there is no edit anymore.\n    */\n    getDistanceToNextChange(offset) {\n        this.adjustNextEdit(offset);\n        const nextEdit = this.edits[this.nextEditIdx];\n        const nextChangeOffset = nextEdit ? this.translateOldToCur(nextEdit.offsetObj) : null;\n        if (nextChangeOffset === null) {\n            return null;\n        }\n        return lengthDiffNonNegative(offset, nextChangeOffset);\n    }\n    translateOldToCur(oldOffsetObj) {\n        if (oldOffsetObj.lineCount === this.deltaLineIdxInOld) {\n            return toLength(oldOffsetObj.lineCount + this.deltaOldToNewLineCount, oldOffsetObj.columnCount + this.deltaOldToNewColumnCount);\n        }\n        else {\n            return toLength(oldOffsetObj.lineCount + this.deltaOldToNewLineCount, oldOffsetObj.columnCount);\n        }\n    }\n    translateCurToOld(newOffset) {\n        const offsetObj = lengthToObj(newOffset);\n        if (offsetObj.lineCount - this.deltaOldToNewLineCount === this.deltaLineIdxInOld) {\n            return toLength(offsetObj.lineCount - this.deltaOldToNewLineCount, offsetObj.columnCount - this.deltaOldToNewColumnCount);\n        }\n        else {\n            return toLength(offsetObj.lineCount - this.deltaOldToNewLineCount, offsetObj.columnCount);\n        }\n    }\n    adjustNextEdit(offset) {\n        while (this.nextEditIdx < this.edits.length) {\n            const nextEdit = this.edits[this.nextEditIdx];\n            // After applying the edit, what is its end offset (considering all previous edits)?\n            const nextEditEndOffsetInCur = this.translateOldToCur(nextEdit.endOffsetAfterObj);\n            if (lengthLessThanEqual(nextEditEndOffsetInCur, offset)) {\n                // We are after the edit, skip it\n                this.nextEditIdx++;\n                const nextEditEndOffsetInCurObj = lengthToObj(nextEditEndOffsetInCur);\n                // Before applying the edit, what is its end offset (considering all previous edits)?\n                const nextEditEndOffsetBeforeInCurObj = lengthToObj(this.translateOldToCur(nextEdit.endOffsetBeforeObj));\n                const lineDelta = nextEditEndOffsetInCurObj.lineCount - nextEditEndOffsetBeforeInCurObj.lineCount;\n                this.deltaOldToNewLineCount += lineDelta;\n                const previousColumnDelta = this.deltaLineIdxInOld === nextEdit.endOffsetBeforeObj.lineCount ? this.deltaOldToNewColumnCount : 0;\n                const columnDelta = nextEditEndOffsetInCurObj.columnCount - nextEditEndOffsetBeforeInCurObj.columnCount;\n                this.deltaOldToNewColumnCount = previousColumnDelta + columnDelta;\n                this.deltaLineIdxInOld = nextEdit.endOffsetBeforeObj.lineCount;\n            }\n            else {\n                // We are in or before the edit.\n                break;\n            }\n        }\n    }\n}\nclass TextEditInfoCache {\n    static from(edit) {\n        return new TextEditInfoCache(edit.startOffset, edit.endOffset, edit.newLength);\n    }\n    constructor(startOffset, endOffset, textLength) {\n        this.endOffsetBeforeObj = lengthToObj(endOffset);\n        this.endOffsetAfterObj = lengthToObj(lengthAdd(startOffset, textLength));\n        this.offsetObj = lengthToObj(startOffset);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/bracketPairsTree.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../../../../base/common/event.js';\nimport { Disposable } from '../../../../../base/common/lifecycle.js';\nimport { BracketInfo, BracketPairWithMinIndentationInfo } from '../../../textModelBracketPairs.js';\nimport { TextEditInfo } from './beforeEditPositionMapper.js';\nimport { LanguageAgnosticBracketTokens } from './brackets.js';\nimport { lengthAdd, lengthGreaterThanEqual, lengthLessThan, lengthLessThanEqual, lengthsToRange, lengthZero, positionToLength, toLength } from './length.js';\nimport { parseDocument } from './parser.js';\nimport { DenseKeyProvider } from './smallImmutableSet.js';\nimport { FastTokenizer, TextBufferTokenizer } from './tokenizer.js';\nimport { CallbackIterable } from '../../../../../base/common/arrays.js';\nimport { combineTextEditInfos } from './combineTextEditInfos.js';\nexport class BracketPairsTree extends Disposable {\n    didLanguageChange(languageId) {\n        return this.brackets.didLanguageChange(languageId);\n    }\n    constructor(textModel, getLanguageConfiguration) {\n        super();\n        this.textModel = textModel;\n        this.getLanguageConfiguration = getLanguageConfiguration;\n        this.didChangeEmitter = new Emitter();\n        this.denseKeyProvider = new DenseKeyProvider();\n        this.brackets = new LanguageAgnosticBracketTokens(this.denseKeyProvider, this.getLanguageConfiguration);\n        this.onDidChange = this.didChangeEmitter.event;\n        this.queuedTextEditsForInitialAstWithoutTokens = [];\n        this.queuedTextEdits = [];\n        if (!textModel.tokenization.hasTokens) {\n            const brackets = this.brackets.getSingleLanguageBracketTokens(this.textModel.getLanguageId());\n            const tokenizer = new FastTokenizer(this.textModel.getValue(), brackets);\n            this.initialAstWithoutTokens = parseDocument(tokenizer, [], undefined, true);\n            this.astWithTokens = this.initialAstWithoutTokens;\n        }\n        else if (textModel.tokenization.backgroundTokenizationState === 2 /* BackgroundTokenizationState.Completed */) {\n            // Skip the initial ast, as there is no flickering.\n            // Directly create the tree with token information.\n            this.initialAstWithoutTokens = undefined;\n            this.astWithTokens = this.parseDocumentFromTextBuffer([], undefined, false);\n        }\n        else {\n            // We missed some token changes already, so we cannot use the fast tokenizer + delta increments\n            this.initialAstWithoutTokens = this.parseDocumentFromTextBuffer([], undefined, true);\n            this.astWithTokens = this.initialAstWithoutTokens;\n        }\n    }\n    //#region TextModel events\n    handleDidChangeBackgroundTokenizationState() {\n        if (this.textModel.tokenization.backgroundTokenizationState === 2 /* BackgroundTokenizationState.Completed */) {\n            const wasUndefined = this.initialAstWithoutTokens === undefined;\n            // Clear the initial tree as we can use the tree with token information now.\n            this.initialAstWithoutTokens = undefined;\n            if (!wasUndefined) {\n                this.didChangeEmitter.fire();\n            }\n        }\n    }\n    handleDidChangeTokens({ ranges }) {\n        const edits = ranges.map(r => new TextEditInfo(toLength(r.fromLineNumber - 1, 0), toLength(r.toLineNumber, 0), toLength(r.toLineNumber - r.fromLineNumber + 1, 0)));\n        this.handleEdits(edits, true);\n        if (!this.initialAstWithoutTokens) {\n            this.didChangeEmitter.fire();\n        }\n    }\n    handleContentChanged(change) {\n        const edits = TextEditInfo.fromModelContentChanges(change.changes);\n        this.handleEdits(edits, false);\n    }\n    handleEdits(edits, tokenChange) {\n        // Lazily queue the edits and only apply them when the tree is accessed.\n        const result = combineTextEditInfos(this.queuedTextEdits, edits);\n        this.queuedTextEdits = result;\n        if (this.initialAstWithoutTokens && !tokenChange) {\n            this.queuedTextEditsForInitialAstWithoutTokens = combineTextEditInfos(this.queuedTextEditsForInitialAstWithoutTokens, edits);\n        }\n    }\n    //#endregion\n    flushQueue() {\n        if (this.queuedTextEdits.length > 0) {\n            this.astWithTokens = this.parseDocumentFromTextBuffer(this.queuedTextEdits, this.astWithTokens, false);\n            this.queuedTextEdits = [];\n        }\n        if (this.queuedTextEditsForInitialAstWithoutTokens.length > 0) {\n            if (this.initialAstWithoutTokens) {\n                this.initialAstWithoutTokens = this.parseDocumentFromTextBuffer(this.queuedTextEditsForInitialAstWithoutTokens, this.initialAstWithoutTokens, false);\n            }\n            this.queuedTextEditsForInitialAstWithoutTokens = [];\n        }\n    }\n    /**\n     * @pure (only if isPure = true)\n    */\n    parseDocumentFromTextBuffer(edits, previousAst, immutable) {\n        // Is much faster if `isPure = false`.\n        const isPure = false;\n        const previousAstClone = isPure ? previousAst === null || previousAst === void 0 ? void 0 : previousAst.deepClone() : previousAst;\n        const tokenizer = new TextBufferTokenizer(this.textModel, this.brackets);\n        const result = parseDocument(tokenizer, edits, previousAstClone, immutable);\n        return result;\n    }\n    getBracketsInRange(range, onlyColorizedBrackets) {\n        this.flushQueue();\n        const startOffset = toLength(range.startLineNumber - 1, range.startColumn - 1);\n        const endOffset = toLength(range.endLineNumber - 1, range.endColumn - 1);\n        return new CallbackIterable(cb => {\n            const node = this.initialAstWithoutTokens || this.astWithTokens;\n            collectBrackets(node, lengthZero, node.length, startOffset, endOffset, cb, 0, 0, new Map(), onlyColorizedBrackets);\n        });\n    }\n    getBracketPairsInRange(range, includeMinIndentation) {\n        this.flushQueue();\n        const startLength = positionToLength(range.getStartPosition());\n        const endLength = positionToLength(range.getEndPosition());\n        return new CallbackIterable(cb => {\n            const node = this.initialAstWithoutTokens || this.astWithTokens;\n            const context = new CollectBracketPairsContext(cb, includeMinIndentation, this.textModel);\n            collectBracketPairs(node, lengthZero, node.length, startLength, endLength, context, 0, new Map());\n        });\n    }\n    getFirstBracketAfter(position) {\n        this.flushQueue();\n        const node = this.initialAstWithoutTokens || this.astWithTokens;\n        return getFirstBracketAfter(node, lengthZero, node.length, positionToLength(position));\n    }\n    getFirstBracketBefore(position) {\n        this.flushQueue();\n        const node = this.initialAstWithoutTokens || this.astWithTokens;\n        return getFirstBracketBefore(node, lengthZero, node.length, positionToLength(position));\n    }\n}\nfunction getFirstBracketBefore(node, nodeOffsetStart, nodeOffsetEnd, position) {\n    if (node.kind === 4 /* AstNodeKind.List */ || node.kind === 2 /* AstNodeKind.Pair */) {\n        const lengths = [];\n        for (const child of node.children) {\n            nodeOffsetEnd = lengthAdd(nodeOffsetStart, child.length);\n            lengths.push({ nodeOffsetStart, nodeOffsetEnd });\n            nodeOffsetStart = nodeOffsetEnd;\n        }\n        for (let i = lengths.length - 1; i >= 0; i--) {\n            const { nodeOffsetStart, nodeOffsetEnd } = lengths[i];\n            if (lengthLessThan(nodeOffsetStart, position)) {\n                const result = getFirstBracketBefore(node.children[i], nodeOffsetStart, nodeOffsetEnd, position);\n                if (result) {\n                    return result;\n                }\n            }\n        }\n        return null;\n    }\n    else if (node.kind === 3 /* AstNodeKind.UnexpectedClosingBracket */) {\n        return null;\n    }\n    else if (node.kind === 1 /* AstNodeKind.Bracket */) {\n        const range = lengthsToRange(nodeOffsetStart, nodeOffsetEnd);\n        return {\n            bracketInfo: node.bracketInfo,\n            range\n        };\n    }\n    return null;\n}\nfunction getFirstBracketAfter(node, nodeOffsetStart, nodeOffsetEnd, position) {\n    if (node.kind === 4 /* AstNodeKind.List */ || node.kind === 2 /* AstNodeKind.Pair */) {\n        for (const child of node.children) {\n            nodeOffsetEnd = lengthAdd(nodeOffsetStart, child.length);\n            if (lengthLessThan(position, nodeOffsetEnd)) {\n                const result = getFirstBracketAfter(child, nodeOffsetStart, nodeOffsetEnd, position);\n                if (result) {\n                    return result;\n                }\n            }\n            nodeOffsetStart = nodeOffsetEnd;\n        }\n        return null;\n    }\n    else if (node.kind === 3 /* AstNodeKind.UnexpectedClosingBracket */) {\n        return null;\n    }\n    else if (node.kind === 1 /* AstNodeKind.Bracket */) {\n        const range = lengthsToRange(nodeOffsetStart, nodeOffsetEnd);\n        return {\n            bracketInfo: node.bracketInfo,\n            range\n        };\n    }\n    return null;\n}\nfunction collectBrackets(node, nodeOffsetStart, nodeOffsetEnd, startOffset, endOffset, push, level, nestingLevelOfEqualBracketType, levelPerBracketType, onlyColorizedBrackets, parentPairIsIncomplete = false) {\n    if (level > 200) {\n        return true;\n    }\n    whileLoop: while (true) {\n        switch (node.kind) {\n            case 4 /* AstNodeKind.List */: {\n                const childCount = node.childrenLength;\n                for (let i = 0; i < childCount; i++) {\n                    const child = node.getChild(i);\n                    if (!child) {\n                        continue;\n                    }\n                    nodeOffsetEnd = lengthAdd(nodeOffsetStart, child.length);\n                    if (lengthLessThanEqual(nodeOffsetStart, endOffset) &&\n                        lengthGreaterThanEqual(nodeOffsetEnd, startOffset)) {\n                        const childEndsAfterEnd = lengthGreaterThanEqual(nodeOffsetEnd, endOffset);\n                        if (childEndsAfterEnd) {\n                            // No child after this child in the requested window, don't recurse\n                            node = child;\n                            continue whileLoop;\n                        }\n                        const shouldContinue = collectBrackets(child, nodeOffsetStart, nodeOffsetEnd, startOffset, endOffset, push, level, 0, levelPerBracketType, onlyColorizedBrackets);\n                        if (!shouldContinue) {\n                            return false;\n                        }\n                    }\n                    nodeOffsetStart = nodeOffsetEnd;\n                }\n                return true;\n            }\n            case 2 /* AstNodeKind.Pair */: {\n                const colorize = !onlyColorizedBrackets || !node.closingBracket || node.closingBracket.bracketInfo.closesColorized(node.openingBracket.bracketInfo);\n                let levelPerBracket = 0;\n                if (levelPerBracketType) {\n                    let existing = levelPerBracketType.get(node.openingBracket.text);\n                    if (existing === undefined) {\n                        existing = 0;\n                    }\n                    levelPerBracket = existing;\n                    if (colorize) {\n                        existing++;\n                        levelPerBracketType.set(node.openingBracket.text, existing);\n                    }\n                }\n                const childCount = node.childrenLength;\n                for (let i = 0; i < childCount; i++) {\n                    const child = node.getChild(i);\n                    if (!child) {\n                        continue;\n                    }\n                    nodeOffsetEnd = lengthAdd(nodeOffsetStart, child.length);\n                    if (lengthLessThanEqual(nodeOffsetStart, endOffset) &&\n                        lengthGreaterThanEqual(nodeOffsetEnd, startOffset)) {\n                        const childEndsAfterEnd = lengthGreaterThanEqual(nodeOffsetEnd, endOffset);\n                        if (childEndsAfterEnd && child.kind !== 1 /* AstNodeKind.Bracket */) {\n                            // No child after this child in the requested window, don't recurse\n                            // Don't do this for brackets because of unclosed/unopened brackets\n                            node = child;\n                            if (colorize) {\n                                level++;\n                                nestingLevelOfEqualBracketType = levelPerBracket + 1;\n                            }\n                            else {\n                                nestingLevelOfEqualBracketType = levelPerBracket;\n                            }\n                            continue whileLoop;\n                        }\n                        if (colorize || child.kind !== 1 /* AstNodeKind.Bracket */ || !node.closingBracket) {\n                            const shouldContinue = collectBrackets(child, nodeOffsetStart, nodeOffsetEnd, startOffset, endOffset, push, colorize ? level + 1 : level, colorize ? levelPerBracket + 1 : levelPerBracket, levelPerBracketType, onlyColorizedBrackets, !node.closingBracket);\n                            if (!shouldContinue) {\n                                return false;\n                            }\n                        }\n                    }\n                    nodeOffsetStart = nodeOffsetEnd;\n                }\n                levelPerBracketType === null || levelPerBracketType === void 0 ? void 0 : levelPerBracketType.set(node.openingBracket.text, levelPerBracket);\n                return true;\n            }\n            case 3 /* AstNodeKind.UnexpectedClosingBracket */: {\n                const range = lengthsToRange(nodeOffsetStart, nodeOffsetEnd);\n                return push(new BracketInfo(range, level - 1, 0, true));\n            }\n            case 1 /* AstNodeKind.Bracket */: {\n                const range = lengthsToRange(nodeOffsetStart, nodeOffsetEnd);\n                return push(new BracketInfo(range, level - 1, nestingLevelOfEqualBracketType - 1, parentPairIsIncomplete));\n            }\n            case 0 /* AstNodeKind.Text */:\n                return true;\n        }\n    }\n}\nclass CollectBracketPairsContext {\n    constructor(push, includeMinIndentation, textModel) {\n        this.push = push;\n        this.includeMinIndentation = includeMinIndentation;\n        this.textModel = textModel;\n    }\n}\nfunction collectBracketPairs(node, nodeOffsetStart, nodeOffsetEnd, startOffset, endOffset, context, level, levelPerBracketType) {\n    var _a;\n    if (level > 200) {\n        return true;\n    }\n    let shouldContinue = true;\n    if (node.kind === 2 /* AstNodeKind.Pair */) {\n        let levelPerBracket = 0;\n        if (levelPerBracketType) {\n            let existing = levelPerBracketType.get(node.openingBracket.text);\n            if (existing === undefined) {\n                existing = 0;\n            }\n            levelPerBracket = existing;\n            existing++;\n            levelPerBracketType.set(node.openingBracket.text, existing);\n        }\n        const openingBracketEnd = lengthAdd(nodeOffsetStart, node.openingBracket.length);\n        let minIndentation = -1;\n        if (context.includeMinIndentation) {\n            minIndentation = node.computeMinIndentation(nodeOffsetStart, context.textModel);\n        }\n        shouldContinue = context.push(new BracketPairWithMinIndentationInfo(lengthsToRange(nodeOffsetStart, nodeOffsetEnd), lengthsToRange(nodeOffsetStart, openingBracketEnd), node.closingBracket\n            ? lengthsToRange(lengthAdd(openingBracketEnd, ((_a = node.child) === null || _a === void 0 ? void 0 : _a.length) || lengthZero), nodeOffsetEnd)\n            : undefined, level, levelPerBracket, node, minIndentation));\n        nodeOffsetStart = openingBracketEnd;\n        if (shouldContinue && node.child) {\n            const child = node.child;\n            nodeOffsetEnd = lengthAdd(nodeOffsetStart, child.length);\n            if (lengthLessThanEqual(nodeOffsetStart, endOffset) &&\n                lengthGreaterThanEqual(nodeOffsetEnd, startOffset)) {\n                shouldContinue = collectBracketPairs(child, nodeOffsetStart, nodeOffsetEnd, startOffset, endOffset, context, level + 1, levelPerBracketType);\n                if (!shouldContinue) {\n                    return false;\n                }\n            }\n        }\n        levelPerBracketType === null || levelPerBracketType === void 0 ? void 0 : levelPerBracketType.set(node.openingBracket.text, levelPerBracket);\n    }\n    else {\n        let curOffset = nodeOffsetStart;\n        for (const child of node.children) {\n            const childOffset = curOffset;\n            curOffset = lengthAdd(curOffset, child.length);\n            if (lengthLessThanEqual(childOffset, endOffset) &&\n                lengthLessThanEqual(startOffset, curOffset)) {\n                shouldContinue = collectBracketPairs(child, childOffset, curOffset, startOffset, endOffset, context, level, levelPerBracketType);\n                if (!shouldContinue) {\n                    return false;\n                }\n            }\n        }\n    }\n    return shouldContinue;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/brackets.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { escapeRegExpCharacters } from '../../../../../base/common/strings.js';\nimport { BracketAstNode } from './ast.js';\nimport { toLength } from './length.js';\nimport { identityKeyProvider, SmallImmutableSet } from './smallImmutableSet.js';\nimport { Token } from './tokenizer.js';\nexport class BracketTokens {\n    static createFromLanguage(configuration, denseKeyProvider) {\n        function getId(bracketInfo) {\n            return denseKeyProvider.getKey(`${bracketInfo.languageId}:::${bracketInfo.bracketText}`);\n        }\n        const map = new Map();\n        for (const openingBracket of configuration.bracketsNew.openingBrackets) {\n            const length = toLength(0, openingBracket.bracketText.length);\n            const openingTextId = getId(openingBracket);\n            const bracketIds = SmallImmutableSet.getEmpty().add(openingTextId, identityKeyProvider);\n            map.set(openingBracket.bracketText, new Token(length, 1 /* TokenKind.OpeningBracket */, openingTextId, bracketIds, BracketAstNode.create(length, openingBracket, bracketIds)));\n        }\n        for (const closingBracket of configuration.bracketsNew.closingBrackets) {\n            const length = toLength(0, closingBracket.bracketText.length);\n            let bracketIds = SmallImmutableSet.getEmpty();\n            const closingBrackets = closingBracket.getOpeningBrackets();\n            for (const bracket of closingBrackets) {\n                bracketIds = bracketIds.add(getId(bracket), identityKeyProvider);\n            }\n            map.set(closingBracket.bracketText, new Token(length, 2 /* TokenKind.ClosingBracket */, getId(closingBrackets[0]), bracketIds, BracketAstNode.create(length, closingBracket, bracketIds)));\n        }\n        return new BracketTokens(map);\n    }\n    constructor(map) {\n        this.map = map;\n        this.hasRegExp = false;\n        this._regExpGlobal = null;\n    }\n    getRegExpStr() {\n        if (this.isEmpty) {\n            return null;\n        }\n        else {\n            const keys = [...this.map.keys()];\n            keys.sort();\n            keys.reverse();\n            return keys.map(k => prepareBracketForRegExp(k)).join('|');\n        }\n    }\n    /**\n     * Returns null if there is no such regexp (because there are no brackets).\n    */\n    get regExpGlobal() {\n        if (!this.hasRegExp) {\n            const regExpStr = this.getRegExpStr();\n            this._regExpGlobal = regExpStr ? new RegExp(regExpStr, 'gi') : null;\n            this.hasRegExp = true;\n        }\n        return this._regExpGlobal;\n    }\n    getToken(value) {\n        return this.map.get(value.toLowerCase());\n    }\n    findClosingTokenText(openingBracketIds) {\n        for (const [closingText, info] of this.map) {\n            if (info.kind === 2 /* TokenKind.ClosingBracket */ && info.bracketIds.intersects(openingBracketIds)) {\n                return closingText;\n            }\n        }\n        return undefined;\n    }\n    get isEmpty() {\n        return this.map.size === 0;\n    }\n}\nfunction prepareBracketForRegExp(str) {\n    let escaped = escapeRegExpCharacters(str);\n    // These bracket pair delimiters start or end with letters\n    // see https://github.com/microsoft/vscode/issues/132162 https://github.com/microsoft/vscode/issues/150440\n    if (/^[\\w ]+/.test(str)) {\n        escaped = `\\\\b${escaped}`;\n    }\n    if (/[\\w ]+$/.test(str)) {\n        escaped = `${escaped}\\\\b`;\n    }\n    return escaped;\n}\nexport class LanguageAgnosticBracketTokens {\n    constructor(denseKeyProvider, getLanguageConfiguration) {\n        this.denseKeyProvider = denseKeyProvider;\n        this.getLanguageConfiguration = getLanguageConfiguration;\n        this.languageIdToBracketTokens = new Map();\n    }\n    didLanguageChange(languageId) {\n        // Report a change whenever the language configuration updates.\n        return this.languageIdToBracketTokens.has(languageId);\n    }\n    getSingleLanguageBracketTokens(languageId) {\n        let singleLanguageBracketTokens = this.languageIdToBracketTokens.get(languageId);\n        if (!singleLanguageBracketTokens) {\n            singleLanguageBracketTokens = BracketTokens.createFromLanguage(this.getLanguageConfiguration(languageId), this.denseKeyProvider);\n            this.languageIdToBracketTokens.set(languageId, singleLanguageBracketTokens);\n        }\n        return singleLanguageBracketTokens;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/combineTextEditInfos.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { ArrayQueue } from '../../../../../base/common/arrays.js';\nimport { TextEditInfo } from './beforeEditPositionMapper.js';\nimport { lengthAdd, lengthDiffNonNegative, lengthEquals, lengthIsZero, lengthToObj, lengthZero, sumLengths } from './length.js';\nexport function combineTextEditInfos(textEditInfoFirst, textEditInfoSecond) {\n    if (textEditInfoFirst.length === 0) {\n        return textEditInfoSecond;\n    }\n    if (textEditInfoSecond.length === 0) {\n        return textEditInfoFirst;\n    }\n    // s0: State before any edits\n    const s0ToS1Map = new ArrayQueue(toLengthMapping(textEditInfoFirst));\n    // s1: State after first edit, but before second edit\n    const s1ToS2Map = toLengthMapping(textEditInfoSecond);\n    s1ToS2Map.push({ modified: false, lengthBefore: undefined, lengthAfter: undefined }); // Copy everything from old to new\n    // s2: State after both edits\n    let curItem = s0ToS1Map.dequeue();\n    /**\n     * @param s1Length Use undefined for length \"infinity\"\n     */\n    function nextS0ToS1MapWithS1LengthOf(s1Length) {\n        if (s1Length === undefined) {\n            const arr = s0ToS1Map.takeWhile(v => true) || [];\n            if (curItem) {\n                arr.unshift(curItem);\n            }\n            return arr;\n        }\n        const result = [];\n        while (curItem && !lengthIsZero(s1Length)) {\n            const [item, remainingItem] = curItem.splitAt(s1Length);\n            result.push(item);\n            s1Length = lengthDiffNonNegative(item.lengthAfter, s1Length);\n            curItem = remainingItem !== null && remainingItem !== void 0 ? remainingItem : s0ToS1Map.dequeue();\n        }\n        if (!lengthIsZero(s1Length)) {\n            result.push(new LengthMapping(false, s1Length, s1Length));\n        }\n        return result;\n    }\n    const result = [];\n    function pushEdit(startOffset, endOffset, newLength) {\n        if (result.length > 0 && lengthEquals(result[result.length - 1].endOffset, startOffset)) {\n            const lastResult = result[result.length - 1];\n            result[result.length - 1] = new TextEditInfo(lastResult.startOffset, endOffset, lengthAdd(lastResult.newLength, newLength));\n        }\n        else {\n            result.push({ startOffset, endOffset, newLength });\n        }\n    }\n    let s0offset = lengthZero;\n    for (const s1ToS2 of s1ToS2Map) {\n        const s0ToS1Map = nextS0ToS1MapWithS1LengthOf(s1ToS2.lengthBefore);\n        if (s1ToS2.modified) {\n            const s0Length = sumLengths(s0ToS1Map, s => s.lengthBefore);\n            const s0EndOffset = lengthAdd(s0offset, s0Length);\n            pushEdit(s0offset, s0EndOffset, s1ToS2.lengthAfter);\n            s0offset = s0EndOffset;\n        }\n        else {\n            for (const s1 of s0ToS1Map) {\n                const s0startOffset = s0offset;\n                s0offset = lengthAdd(s0offset, s1.lengthBefore);\n                if (s1.modified) {\n                    pushEdit(s0startOffset, s0offset, s1.lengthAfter);\n                }\n            }\n        }\n    }\n    return result;\n}\nclass LengthMapping {\n    constructor(\n    /**\n     * If false, length before and length after equal.\n     */\n    modified, lengthBefore, lengthAfter) {\n        this.modified = modified;\n        this.lengthBefore = lengthBefore;\n        this.lengthAfter = lengthAfter;\n    }\n    splitAt(lengthAfter) {\n        const remainingLengthAfter = lengthDiffNonNegative(lengthAfter, this.lengthAfter);\n        if (lengthEquals(remainingLengthAfter, lengthZero)) {\n            return [this, undefined];\n        }\n        else if (this.modified) {\n            return [\n                new LengthMapping(this.modified, this.lengthBefore, lengthAfter),\n                new LengthMapping(this.modified, lengthZero, remainingLengthAfter)\n            ];\n        }\n        else {\n            return [\n                new LengthMapping(this.modified, lengthAfter, lengthAfter),\n                new LengthMapping(this.modified, remainingLengthAfter, remainingLengthAfter)\n            ];\n        }\n    }\n    toString() {\n        return `${this.modified ? 'M' : 'U'}:${lengthToObj(this.lengthBefore)} -> ${lengthToObj(this.lengthAfter)}`;\n    }\n}\nfunction toLengthMapping(textEditInfos) {\n    const result = [];\n    let lastOffset = lengthZero;\n    for (const textEditInfo of textEditInfos) {\n        const spaceLength = lengthDiffNonNegative(lastOffset, textEditInfo.startOffset);\n        if (!lengthIsZero(spaceLength)) {\n            result.push(new LengthMapping(false, spaceLength, spaceLength));\n        }\n        const lengthBefore = lengthDiffNonNegative(textEditInfo.startOffset, textEditInfo.endOffset);\n        result.push(new LengthMapping(true, lengthBefore, textEditInfo.newLength));\n        lastOffset = textEditInfo.endOffset;\n    }\n    return result;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/concat23Trees.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { ListAstNode } from './ast.js';\n/**\n * Concatenates a list of (2,3) AstNode's into a single (2,3) AstNode.\n * This mutates the items of the input array!\n * If all items have the same height, this method has runtime O(items.length).\n * Otherwise, it has runtime O(items.length * max(log(items.length), items.max(i => i.height))).\n*/\nexport function concat23Trees(items) {\n    if (items.length === 0) {\n        return null;\n    }\n    if (items.length === 1) {\n        return items[0];\n    }\n    let i = 0;\n    /**\n     * Reads nodes of same height and concatenates them to a single node.\n    */\n    function readNode() {\n        if (i >= items.length) {\n            return null;\n        }\n        const start = i;\n        const height = items[start].listHeight;\n        i++;\n        while (i < items.length && items[i].listHeight === height) {\n            i++;\n        }\n        if (i - start >= 2) {\n            return concat23TreesOfSameHeight(start === 0 && i === items.length ? items : items.slice(start, i), false);\n        }\n        else {\n            return items[start];\n        }\n    }\n    // The items might not have the same height.\n    // We merge all items by using a binary concat operator.\n    let first = readNode(); // There must be a first item\n    let second = readNode();\n    if (!second) {\n        return first;\n    }\n    for (let item = readNode(); item; item = readNode()) {\n        // Prefer concatenating smaller trees, as the runtime of concat depends on the tree height.\n        if (heightDiff(first, second) <= heightDiff(second, item)) {\n            first = concat(first, second);\n            second = item;\n        }\n        else {\n            second = concat(second, item);\n        }\n    }\n    const result = concat(first, second);\n    return result;\n}\nexport function concat23TreesOfSameHeight(items, createImmutableLists = false) {\n    if (items.length === 0) {\n        return null;\n    }\n    if (items.length === 1) {\n        return items[0];\n    }\n    let length = items.length;\n    // All trees have same height, just create parent nodes.\n    while (length > 3) {\n        const newLength = length >> 1;\n        for (let i = 0; i < newLength; i++) {\n            const j = i << 1;\n            items[i] = ListAstNode.create23(items[j], items[j + 1], j + 3 === length ? items[j + 2] : null, createImmutableLists);\n        }\n        length = newLength;\n    }\n    return ListAstNode.create23(items[0], items[1], length >= 3 ? items[2] : null, createImmutableLists);\n}\nfunction heightDiff(node1, node2) {\n    return Math.abs(node1.listHeight - node2.listHeight);\n}\nfunction concat(node1, node2) {\n    if (node1.listHeight === node2.listHeight) {\n        return ListAstNode.create23(node1, node2, null, false);\n    }\n    else if (node1.listHeight > node2.listHeight) {\n        // node1 is the tree we want to insert into\n        return append(node1, node2);\n    }\n    else {\n        return prepend(node2, node1);\n    }\n}\n/**\n * Appends the given node to the end of this (2,3) tree.\n * Returns the new root.\n*/\nfunction append(list, nodeToAppend) {\n    list = list.toMutable();\n    let curNode = list;\n    const parents = [];\n    let nodeToAppendOfCorrectHeight;\n    while (true) {\n        // assert nodeToInsert.listHeight <= curNode.listHeight\n        if (nodeToAppend.listHeight === curNode.listHeight) {\n            nodeToAppendOfCorrectHeight = nodeToAppend;\n            break;\n        }\n        // assert 0 <= nodeToInsert.listHeight < curNode.listHeight\n        if (curNode.kind !== 4 /* AstNodeKind.List */) {\n            throw new Error('unexpected');\n        }\n        parents.push(curNode);\n        // assert 2 <= curNode.childrenLength <= 3\n        curNode = curNode.makeLastElementMutable();\n    }\n    // assert nodeToAppendOfCorrectHeight!.listHeight === curNode.listHeight\n    for (let i = parents.length - 1; i >= 0; i--) {\n        const parent = parents[i];\n        if (nodeToAppendOfCorrectHeight) {\n            // Can we take the element?\n            if (parent.childrenLength >= 3) {\n                // assert parent.childrenLength === 3 && parent.listHeight === nodeToAppendOfCorrectHeight.listHeight + 1\n                // we need to split to maintain (2,3)-tree property.\n                // Send the third element + the new element to the parent.\n                nodeToAppendOfCorrectHeight = ListAstNode.create23(parent.unappendChild(), nodeToAppendOfCorrectHeight, null, false);\n            }\n            else {\n                parent.appendChildOfSameHeight(nodeToAppendOfCorrectHeight);\n                nodeToAppendOfCorrectHeight = undefined;\n            }\n        }\n        else {\n            parent.handleChildrenChanged();\n        }\n    }\n    if (nodeToAppendOfCorrectHeight) {\n        return ListAstNode.create23(list, nodeToAppendOfCorrectHeight, null, false);\n    }\n    else {\n        return list;\n    }\n}\n/**\n * Prepends the given node to the end of this (2,3) tree.\n * Returns the new root.\n*/\nfunction prepend(list, nodeToAppend) {\n    list = list.toMutable();\n    let curNode = list;\n    const parents = [];\n    // assert nodeToInsert.listHeight <= curNode.listHeight\n    while (nodeToAppend.listHeight !== curNode.listHeight) {\n        // assert 0 <= nodeToInsert.listHeight < curNode.listHeight\n        if (curNode.kind !== 4 /* AstNodeKind.List */) {\n            throw new Error('unexpected');\n        }\n        parents.push(curNode);\n        // assert 2 <= curNode.childrenFast.length <= 3\n        curNode = curNode.makeFirstElementMutable();\n    }\n    let nodeToPrependOfCorrectHeight = nodeToAppend;\n    // assert nodeToAppendOfCorrectHeight!.listHeight === curNode.listHeight\n    for (let i = parents.length - 1; i >= 0; i--) {\n        const parent = parents[i];\n        if (nodeToPrependOfCorrectHeight) {\n            // Can we take the element?\n            if (parent.childrenLength >= 3) {\n                // assert parent.childrenLength === 3 && parent.listHeight === nodeToAppendOfCorrectHeight.listHeight + 1\n                // we need to split to maintain (2,3)-tree property.\n                // Send the third element + the new element to the parent.\n                nodeToPrependOfCorrectHeight = ListAstNode.create23(nodeToPrependOfCorrectHeight, parent.unprependChild(), null, false);\n            }\n            else {\n                parent.prependChildOfSameHeight(nodeToPrependOfCorrectHeight);\n                nodeToPrependOfCorrectHeight = undefined;\n            }\n        }\n        else {\n            parent.handleChildrenChanged();\n        }\n    }\n    if (nodeToPrependOfCorrectHeight) {\n        return ListAstNode.create23(nodeToPrependOfCorrectHeight, list, null, false);\n    }\n    else {\n        return list;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/length.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { splitLines } from '../../../../../base/common/strings.js';\nimport { Range } from '../../../core/range.js';\nimport { TextLength } from '../../../core/textLength.js';\n/**\n * The end must be greater than or equal to the start.\n*/\nexport function lengthDiff(startLineCount, startColumnCount, endLineCount, endColumnCount) {\n    return (startLineCount !== endLineCount)\n        ? toLength(endLineCount - startLineCount, endColumnCount)\n        : toLength(0, endColumnCount - startColumnCount);\n}\nexport const lengthZero = 0;\nexport function lengthIsZero(length) {\n    return length === 0;\n}\n/*\n * We have 52 bits available in a JS number.\n * We use the upper 26 bits to store the line and the lower 26 bits to store the column.\n */\n///*\nconst factor = 2 ** 26;\n/*/\nconst factor = 1000000;\n// */\nexport function toLength(lineCount, columnCount) {\n    // llllllllllllllllllllllllllcccccccccccccccccccccccccc (52 bits)\n    //       line count (26 bits)    column count (26 bits)\n    // If there is no overflow (all values/sums below 2^26 = 67108864),\n    // we have `toLength(lns1, cols1) + toLength(lns2, cols2) = toLength(lns1 + lns2, cols1 + cols2)`.\n    return (lineCount * factor + columnCount);\n}\nexport function lengthToObj(length) {\n    const l = length;\n    const lineCount = Math.floor(l / factor);\n    const columnCount = l - lineCount * factor;\n    return new TextLength(lineCount, columnCount);\n}\nexport function lengthGetLineCount(length) {\n    return Math.floor(length / factor);\n}\n/**\n * Returns the amount of columns of the given length, assuming that it does not span any line.\n*/\nexport function lengthGetColumnCountIfZeroLineCount(length) {\n    return length;\n}\nexport function lengthAdd(l1, l2) {\n    let r = l1 + l2;\n    if (l2 >= factor) {\n        r = r - (l1 % factor);\n    }\n    return r;\n}\nexport function sumLengths(items, lengthFn) {\n    return items.reduce((a, b) => lengthAdd(a, lengthFn(b)), lengthZero);\n}\nexport function lengthEquals(length1, length2) {\n    return length1 === length2;\n}\n/**\n * Returns a non negative length `result` such that `lengthAdd(length1, result) = length2`, or zero if such length does not exist.\n */\nexport function lengthDiffNonNegative(length1, length2) {\n    const l1 = length1;\n    const l2 = length2;\n    const diff = l2 - l1;\n    if (diff <= 0) {\n        // line-count of length1 is higher than line-count of length2\n        // or they are equal and column-count of length1 is higher than column-count of length2\n        return lengthZero;\n    }\n    const lineCount1 = Math.floor(l1 / factor);\n    const lineCount2 = Math.floor(l2 / factor);\n    const colCount2 = l2 - lineCount2 * factor;\n    if (lineCount1 === lineCount2) {\n        const colCount1 = l1 - lineCount1 * factor;\n        return toLength(0, colCount2 - colCount1);\n    }\n    else {\n        return toLength(lineCount2 - lineCount1, colCount2);\n    }\n}\nexport function lengthLessThan(length1, length2) {\n    // First, compare line counts, then column counts.\n    return length1 < length2;\n}\nexport function lengthLessThanEqual(length1, length2) {\n    return length1 <= length2;\n}\nexport function lengthGreaterThanEqual(length1, length2) {\n    return length1 >= length2;\n}\nexport function positionToLength(position) {\n    return toLength(position.lineNumber - 1, position.column - 1);\n}\nexport function lengthsToRange(lengthStart, lengthEnd) {\n    const l = lengthStart;\n    const lineCount = Math.floor(l / factor);\n    const colCount = l - lineCount * factor;\n    const l2 = lengthEnd;\n    const lineCount2 = Math.floor(l2 / factor);\n    const colCount2 = l2 - lineCount2 * factor;\n    return new Range(lineCount + 1, colCount + 1, lineCount2 + 1, colCount2 + 1);\n}\nexport function lengthOfString(str) {\n    const lines = splitLines(str);\n    return toLength(lines.length - 1, lines[lines.length - 1].length);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/nodeReader.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { lengthAdd, lengthZero, lengthLessThan } from './length.js';\n/**\n * Allows to efficiently find a longest child at a given offset in a fixed node.\n * The requested offsets must increase monotonously.\n*/\nexport class NodeReader {\n    constructor(node) {\n        this.lastOffset = lengthZero;\n        this.nextNodes = [node];\n        this.offsets = [lengthZero];\n        this.idxs = [];\n    }\n    /**\n     * Returns the longest node at `offset` that satisfies the predicate.\n     * @param offset must be greater than or equal to the last offset this method has been called with!\n    */\n    readLongestNodeAt(offset, predicate) {\n        if (lengthLessThan(offset, this.lastOffset)) {\n            throw new Error('Invalid offset');\n        }\n        this.lastOffset = offset;\n        // Find the longest node of all those that are closest to the current offset.\n        while (true) {\n            const curNode = lastOrUndefined(this.nextNodes);\n            if (!curNode) {\n                return undefined;\n            }\n            const curNodeOffset = lastOrUndefined(this.offsets);\n            if (lengthLessThan(offset, curNodeOffset)) {\n                // The next best node is not here yet.\n                // The reader must advance before a cached node is hit.\n                return undefined;\n            }\n            if (lengthLessThan(curNodeOffset, offset)) {\n                // The reader is ahead of the current node.\n                if (lengthAdd(curNodeOffset, curNode.length) <= offset) {\n                    // The reader is after the end of the current node.\n                    this.nextNodeAfterCurrent();\n                }\n                else {\n                    // The reader is somewhere in the current node.\n                    const nextChildIdx = getNextChildIdx(curNode);\n                    if (nextChildIdx !== -1) {\n                        // Go to the first child and repeat.\n                        this.nextNodes.push(curNode.getChild(nextChildIdx));\n                        this.offsets.push(curNodeOffset);\n                        this.idxs.push(nextChildIdx);\n                    }\n                    else {\n                        // We don't have children\n                        this.nextNodeAfterCurrent();\n                    }\n                }\n            }\n            else {\n                // readerOffsetBeforeChange === curNodeOffset\n                if (predicate(curNode)) {\n                    this.nextNodeAfterCurrent();\n                    return curNode;\n                }\n                else {\n                    const nextChildIdx = getNextChildIdx(curNode);\n                    // look for shorter node\n                    if (nextChildIdx === -1) {\n                        // There is no shorter node.\n                        this.nextNodeAfterCurrent();\n                        return undefined;\n                    }\n                    else {\n                        // Descend into first child & repeat.\n                        this.nextNodes.push(curNode.getChild(nextChildIdx));\n                        this.offsets.push(curNodeOffset);\n                        this.idxs.push(nextChildIdx);\n                    }\n                }\n            }\n        }\n    }\n    // Navigates to the longest node that continues after the current node.\n    nextNodeAfterCurrent() {\n        while (true) {\n            const currentOffset = lastOrUndefined(this.offsets);\n            const currentNode = lastOrUndefined(this.nextNodes);\n            this.nextNodes.pop();\n            this.offsets.pop();\n            if (this.idxs.length === 0) {\n                // We just popped the root node, there is no next node.\n                break;\n            }\n            // Parent is not undefined, because idxs is not empty\n            const parent = lastOrUndefined(this.nextNodes);\n            const nextChildIdx = getNextChildIdx(parent, this.idxs[this.idxs.length - 1]);\n            if (nextChildIdx !== -1) {\n                this.nextNodes.push(parent.getChild(nextChildIdx));\n                this.offsets.push(lengthAdd(currentOffset, currentNode.length));\n                this.idxs[this.idxs.length - 1] = nextChildIdx;\n                break;\n            }\n            else {\n                this.idxs.pop();\n            }\n            // We fully consumed the parent.\n            // Current node is now parent, so call nextNodeAfterCurrent again\n        }\n    }\n}\nfunction getNextChildIdx(node, curIdx = -1) {\n    while (true) {\n        curIdx++;\n        if (curIdx >= node.childrenLength) {\n            return -1;\n        }\n        if (node.getChild(curIdx)) {\n            return curIdx;\n        }\n    }\n}\nfunction lastOrUndefined(arr) {\n    return arr.length > 0 ? arr[arr.length - 1] : undefined;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/parser.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { InvalidBracketAstNode, ListAstNode, PairAstNode, TextAstNode } from './ast.js';\nimport { BeforeEditPositionMapper } from './beforeEditPositionMapper.js';\nimport { SmallImmutableSet } from './smallImmutableSet.js';\nimport { lengthIsZero, lengthLessThan } from './length.js';\nimport { concat23Trees, concat23TreesOfSameHeight } from './concat23Trees.js';\nimport { NodeReader } from './nodeReader.js';\n/**\n * Non incrementally built ASTs are immutable.\n*/\nexport function parseDocument(tokenizer, edits, oldNode, createImmutableLists) {\n    const parser = new Parser(tokenizer, edits, oldNode, createImmutableLists);\n    return parser.parseDocument();\n}\n/**\n * Non incrementally built ASTs are immutable.\n*/\nclass Parser {\n    constructor(tokenizer, edits, oldNode, createImmutableLists) {\n        this.tokenizer = tokenizer;\n        this.createImmutableLists = createImmutableLists;\n        this._itemsConstructed = 0;\n        this._itemsFromCache = 0;\n        if (oldNode && createImmutableLists) {\n            throw new Error('Not supported');\n        }\n        this.oldNodeReader = oldNode ? new NodeReader(oldNode) : undefined;\n        this.positionMapper = new BeforeEditPositionMapper(edits);\n    }\n    parseDocument() {\n        this._itemsConstructed = 0;\n        this._itemsFromCache = 0;\n        let result = this.parseList(SmallImmutableSet.getEmpty(), 0);\n        if (!result) {\n            result = ListAstNode.getEmpty();\n        }\n        return result;\n    }\n    parseList(openedBracketIds, level) {\n        const items = [];\n        while (true) {\n            let child = this.tryReadChildFromCache(openedBracketIds);\n            if (!child) {\n                const token = this.tokenizer.peek();\n                if (!token ||\n                    (token.kind === 2 /* TokenKind.ClosingBracket */ &&\n                        token.bracketIds.intersects(openedBracketIds))) {\n                    break;\n                }\n                child = this.parseChild(openedBracketIds, level + 1);\n            }\n            if (child.kind === 4 /* AstNodeKind.List */ && child.childrenLength === 0) {\n                continue;\n            }\n            items.push(child);\n        }\n        // When there is no oldNodeReader, all items are created from scratch and must have the same height.\n        const result = this.oldNodeReader ? concat23Trees(items) : concat23TreesOfSameHeight(items, this.createImmutableLists);\n        return result;\n    }\n    tryReadChildFromCache(openedBracketIds) {\n        if (this.oldNodeReader) {\n            const maxCacheableLength = this.positionMapper.getDistanceToNextChange(this.tokenizer.offset);\n            if (maxCacheableLength === null || !lengthIsZero(maxCacheableLength)) {\n                const cachedNode = this.oldNodeReader.readLongestNodeAt(this.positionMapper.getOffsetBeforeChange(this.tokenizer.offset), curNode => {\n                    // The edit could extend the ending token, thus we cannot re-use nodes that touch the edit.\n                    // If there is no edit anymore, we can re-use the node in any case.\n                    if (maxCacheableLength !== null && !lengthLessThan(curNode.length, maxCacheableLength)) {\n                        // Either the node contains edited text or touches edited text.\n                        // In the latter case, brackets might have been extended (`end` -> `ending`), so even touching nodes cannot be reused.\n                        return false;\n                    }\n                    const canBeReused = curNode.canBeReused(openedBracketIds);\n                    return canBeReused;\n                });\n                if (cachedNode) {\n                    this._itemsFromCache++;\n                    this.tokenizer.skip(cachedNode.length);\n                    return cachedNode;\n                }\n            }\n        }\n        return undefined;\n    }\n    parseChild(openedBracketIds, level) {\n        this._itemsConstructed++;\n        const token = this.tokenizer.read();\n        switch (token.kind) {\n            case 2 /* TokenKind.ClosingBracket */:\n                return new InvalidBracketAstNode(token.bracketIds, token.length);\n            case 0 /* TokenKind.Text */:\n                return token.astNode;\n            case 1 /* TokenKind.OpeningBracket */: {\n                if (level > 300) {\n                    // To prevent stack overflows\n                    return new TextAstNode(token.length);\n                }\n                const set = openedBracketIds.merge(token.bracketIds);\n                const child = this.parseList(set, level + 1);\n                const nextToken = this.tokenizer.peek();\n                if (nextToken &&\n                    nextToken.kind === 2 /* TokenKind.ClosingBracket */ &&\n                    (nextToken.bracketId === token.bracketId || nextToken.bracketIds.intersects(token.bracketIds))) {\n                    this.tokenizer.read();\n                    return PairAstNode.create(token.astNode, child, nextToken.astNode);\n                }\n                else {\n                    return PairAstNode.create(token.astNode, child, null);\n                }\n            }\n            default:\n                throw new Error('unexpected');\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/smallImmutableSet.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nconst emptyArr = [];\n/**\n * Represents an immutable set that works best for a small number of elements (less than 32).\n * It uses bits to encode element membership efficiently.\n*/\nexport class SmallImmutableSet {\n    static create(items, additionalItems) {\n        if (items <= 128 && additionalItems.length === 0) {\n            // We create a cache of 128=2^7 elements to cover all sets with up to 7 (dense) elements.\n            let cached = SmallImmutableSet.cache[items];\n            if (!cached) {\n                cached = new SmallImmutableSet(items, additionalItems);\n                SmallImmutableSet.cache[items] = cached;\n            }\n            return cached;\n        }\n        return new SmallImmutableSet(items, additionalItems);\n    }\n    static getEmpty() {\n        return this.empty;\n    }\n    constructor(items, additionalItems) {\n        this.items = items;\n        this.additionalItems = additionalItems;\n    }\n    add(value, keyProvider) {\n        const key = keyProvider.getKey(value);\n        let idx = key >> 5; // divided by 32\n        if (idx === 0) {\n            // fast path\n            const newItem = (1 << key) | this.items;\n            if (newItem === this.items) {\n                return this;\n            }\n            return SmallImmutableSet.create(newItem, this.additionalItems);\n        }\n        idx--;\n        const newItems = this.additionalItems.slice(0);\n        while (newItems.length < idx) {\n            newItems.push(0);\n        }\n        newItems[idx] |= 1 << (key & 31);\n        return SmallImmutableSet.create(this.items, newItems);\n    }\n    merge(other) {\n        const merged = this.items | other.items;\n        if (this.additionalItems === emptyArr && other.additionalItems === emptyArr) {\n            // fast path\n            if (merged === this.items) {\n                return this;\n            }\n            if (merged === other.items) {\n                return other;\n            }\n            return SmallImmutableSet.create(merged, emptyArr);\n        }\n        // This can be optimized, but it's not a common case\n        const newItems = [];\n        for (let i = 0; i < Math.max(this.additionalItems.length, other.additionalItems.length); i++) {\n            const item1 = this.additionalItems[i] || 0;\n            const item2 = other.additionalItems[i] || 0;\n            newItems.push(item1 | item2);\n        }\n        return SmallImmutableSet.create(merged, newItems);\n    }\n    intersects(other) {\n        if ((this.items & other.items) !== 0) {\n            return true;\n        }\n        for (let i = 0; i < Math.min(this.additionalItems.length, other.additionalItems.length); i++) {\n            if ((this.additionalItems[i] & other.additionalItems[i]) !== 0) {\n                return true;\n            }\n        }\n        return false;\n    }\n}\nSmallImmutableSet.cache = new Array(129);\nSmallImmutableSet.empty = SmallImmutableSet.create(0, emptyArr);\nexport const identityKeyProvider = {\n    getKey(value) {\n        return value;\n    }\n};\n/**\n * Assigns values a unique incrementing key.\n*/\nexport class DenseKeyProvider {\n    constructor() {\n        this.items = new Map();\n    }\n    getKey(value) {\n        let existing = this.items.get(value);\n        if (existing === undefined) {\n            existing = this.items.size;\n            this.items.set(value, existing);\n        }\n        return existing;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/tokenizer.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { NotSupportedError } from '../../../../../base/common/errors.js';\nimport { TokenMetadata } from '../../../encodedTokenAttributes.js';\nimport { TextAstNode } from './ast.js';\nimport { lengthAdd, lengthDiff, lengthGetColumnCountIfZeroLineCount, lengthToObj, lengthZero, toLength } from './length.js';\nimport { SmallImmutableSet } from './smallImmutableSet.js';\nexport class Token {\n    constructor(length, kind, \n    /**\n     * If this token is an opening bracket, this is the id of the opening bracket.\n     * If this token is a closing bracket, this is the id of the first opening bracket that is closed by this bracket.\n     * Otherwise, it is -1.\n     */\n    bracketId, \n    /**\n     * If this token is an opening bracket, this just contains `bracketId`.\n     * If this token is a closing bracket, this lists all opening bracket ids, that it closes.\n     * Otherwise, it is empty.\n     */\n    bracketIds, astNode) {\n        this.length = length;\n        this.kind = kind;\n        this.bracketId = bracketId;\n        this.bracketIds = bracketIds;\n        this.astNode = astNode;\n    }\n}\nexport class TextBufferTokenizer {\n    constructor(textModel, bracketTokens) {\n        this.textModel = textModel;\n        this.bracketTokens = bracketTokens;\n        this.reader = new NonPeekableTextBufferTokenizer(this.textModel, this.bracketTokens);\n        this._offset = lengthZero;\n        this.didPeek = false;\n        this.peeked = null;\n        this.textBufferLineCount = textModel.getLineCount();\n        this.textBufferLastLineLength = textModel.getLineLength(this.textBufferLineCount);\n    }\n    get offset() {\n        return this._offset;\n    }\n    get length() {\n        return toLength(this.textBufferLineCount - 1, this.textBufferLastLineLength);\n    }\n    skip(length) {\n        this.didPeek = false;\n        this._offset = lengthAdd(this._offset, length);\n        const obj = lengthToObj(this._offset);\n        this.reader.setPosition(obj.lineCount, obj.columnCount);\n    }\n    read() {\n        let token;\n        if (this.peeked) {\n            this.didPeek = false;\n            token = this.peeked;\n        }\n        else {\n            token = this.reader.read();\n        }\n        if (token) {\n            this._offset = lengthAdd(this._offset, token.length);\n        }\n        return token;\n    }\n    peek() {\n        if (!this.didPeek) {\n            this.peeked = this.reader.read();\n            this.didPeek = true;\n        }\n        return this.peeked;\n    }\n}\n/**\n * Does not support peek.\n*/\nclass NonPeekableTextBufferTokenizer {\n    constructor(textModel, bracketTokens) {\n        this.textModel = textModel;\n        this.bracketTokens = bracketTokens;\n        this.lineIdx = 0;\n        this.line = null;\n        this.lineCharOffset = 0;\n        this.lineTokens = null;\n        this.lineTokenOffset = 0;\n        /** Must be a zero line token. The end of the document cannot be peeked. */\n        this.peekedToken = null;\n        this.textBufferLineCount = textModel.getLineCount();\n        this.textBufferLastLineLength = textModel.getLineLength(this.textBufferLineCount);\n    }\n    setPosition(lineIdx, column) {\n        // We must not jump into a token!\n        if (lineIdx === this.lineIdx) {\n            this.lineCharOffset = column;\n            if (this.line !== null) {\n                this.lineTokenOffset = this.lineCharOffset === 0 ? 0 : this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset);\n            }\n        }\n        else {\n            this.lineIdx = lineIdx;\n            this.lineCharOffset = column;\n            this.line = null;\n        }\n        this.peekedToken = null;\n    }\n    read() {\n        if (this.peekedToken) {\n            const token = this.peekedToken;\n            this.peekedToken = null;\n            this.lineCharOffset += lengthGetColumnCountIfZeroLineCount(token.length);\n            return token;\n        }\n        if (this.lineIdx > this.textBufferLineCount - 1 || (this.lineIdx === this.textBufferLineCount - 1 && this.lineCharOffset >= this.textBufferLastLineLength)) {\n            // We are after the end\n            return null;\n        }\n        if (this.line === null) {\n            this.lineTokens = this.textModel.tokenization.getLineTokens(this.lineIdx + 1);\n            this.line = this.lineTokens.getLineContent();\n            this.lineTokenOffset = this.lineCharOffset === 0 ? 0 : this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset);\n        }\n        const startLineIdx = this.lineIdx;\n        const startLineCharOffset = this.lineCharOffset;\n        // limits the length of text tokens.\n        // If text tokens get too long, incremental updates will be slow\n        let lengthHeuristic = 0;\n        while (true) {\n            const lineTokens = this.lineTokens;\n            const tokenCount = lineTokens.getCount();\n            let peekedBracketToken = null;\n            if (this.lineTokenOffset < tokenCount) {\n                const tokenMetadata = lineTokens.getMetadata(this.lineTokenOffset);\n                while (this.lineTokenOffset + 1 < tokenCount && tokenMetadata === lineTokens.getMetadata(this.lineTokenOffset + 1)) {\n                    // Skip tokens that are identical.\n                    // Sometimes, (bracket) identifiers are split up into multiple tokens.\n                    this.lineTokenOffset++;\n                }\n                const isOther = TokenMetadata.getTokenType(tokenMetadata) === 0 /* StandardTokenType.Other */;\n                const containsBracketType = TokenMetadata.containsBalancedBrackets(tokenMetadata);\n                const endOffset = lineTokens.getEndOffset(this.lineTokenOffset);\n                // Is there a bracket token next? Only consume text.\n                if (containsBracketType && isOther && this.lineCharOffset < endOffset) {\n                    const languageId = lineTokens.getLanguageId(this.lineTokenOffset);\n                    const text = this.line.substring(this.lineCharOffset, endOffset);\n                    const brackets = this.bracketTokens.getSingleLanguageBracketTokens(languageId);\n                    const regexp = brackets.regExpGlobal;\n                    if (regexp) {\n                        regexp.lastIndex = 0;\n                        const match = regexp.exec(text);\n                        if (match) {\n                            peekedBracketToken = brackets.getToken(match[0]);\n                            if (peekedBracketToken) {\n                                // Consume leading text of the token\n                                this.lineCharOffset += match.index;\n                            }\n                        }\n                    }\n                }\n                lengthHeuristic += endOffset - this.lineCharOffset;\n                if (peekedBracketToken) {\n                    // Don't skip the entire token, as a single token could contain multiple brackets.\n                    if (startLineIdx !== this.lineIdx || startLineCharOffset !== this.lineCharOffset) {\n                        // There is text before the bracket\n                        this.peekedToken = peekedBracketToken;\n                        break;\n                    }\n                    else {\n                        // Consume the peeked token\n                        this.lineCharOffset += lengthGetColumnCountIfZeroLineCount(peekedBracketToken.length);\n                        return peekedBracketToken;\n                    }\n                }\n                else {\n                    // Skip the entire token, as the token contains no brackets at all.\n                    this.lineTokenOffset++;\n                    this.lineCharOffset = endOffset;\n                }\n            }\n            else {\n                if (this.lineIdx === this.textBufferLineCount - 1) {\n                    break;\n                }\n                this.lineIdx++;\n                this.lineTokens = this.textModel.tokenization.getLineTokens(this.lineIdx + 1);\n                this.lineTokenOffset = 0;\n                this.line = this.lineTokens.getLineContent();\n                this.lineCharOffset = 0;\n                lengthHeuristic += 33; // max 1000/33 = 30 lines\n                // This limits the amount of work to recompute min-indentation\n                if (lengthHeuristic > 1000) {\n                    // only break (automatically) at the end of line.\n                    break;\n                }\n            }\n            if (lengthHeuristic > 1500) {\n                // Eventually break regardless of the line length so that\n                // very long lines do not cause bad performance.\n                // This effective limits max indentation to 500, as\n                // indentation is not computed across multiple text nodes.\n                break;\n            }\n        }\n        // If a token contains some proper indentation, it also contains \\n{INDENTATION+}(?!{INDENTATION}),\n        // unless the line is too long.\n        // Thus, the min indentation of the document is the minimum min indentation of every text node.\n        const length = lengthDiff(startLineIdx, startLineCharOffset, this.lineIdx, this.lineCharOffset);\n        return new Token(length, 0 /* TokenKind.Text */, -1, SmallImmutableSet.getEmpty(), new TextAstNode(length));\n    }\n}\nexport class FastTokenizer {\n    constructor(text, brackets) {\n        this.text = text;\n        this._offset = lengthZero;\n        this.idx = 0;\n        const regExpStr = brackets.getRegExpStr();\n        const regexp = regExpStr ? new RegExp(regExpStr + '|\\n', 'gi') : null;\n        const tokens = [];\n        let match;\n        let curLineCount = 0;\n        let lastLineBreakOffset = 0;\n        let lastTokenEndOffset = 0;\n        let lastTokenEndLine = 0;\n        const smallTextTokens0Line = [];\n        for (let i = 0; i < 60; i++) {\n            smallTextTokens0Line.push(new Token(toLength(0, i), 0 /* TokenKind.Text */, -1, SmallImmutableSet.getEmpty(), new TextAstNode(toLength(0, i))));\n        }\n        const smallTextTokens1Line = [];\n        for (let i = 0; i < 60; i++) {\n            smallTextTokens1Line.push(new Token(toLength(1, i), 0 /* TokenKind.Text */, -1, SmallImmutableSet.getEmpty(), new TextAstNode(toLength(1, i))));\n        }\n        if (regexp) {\n            regexp.lastIndex = 0;\n            // If a token contains indentation, it also contains \\n{INDENTATION+}(?!{INDENTATION})\n            while ((match = regexp.exec(text)) !== null) {\n                const curOffset = match.index;\n                const value = match[0];\n                if (value === '\\n') {\n                    curLineCount++;\n                    lastLineBreakOffset = curOffset + 1;\n                }\n                else {\n                    if (lastTokenEndOffset !== curOffset) {\n                        let token;\n                        if (lastTokenEndLine === curLineCount) {\n                            const colCount = curOffset - lastTokenEndOffset;\n                            if (colCount < smallTextTokens0Line.length) {\n                                token = smallTextTokens0Line[colCount];\n                            }\n                            else {\n                                const length = toLength(0, colCount);\n                                token = new Token(length, 0 /* TokenKind.Text */, -1, SmallImmutableSet.getEmpty(), new TextAstNode(length));\n                            }\n                        }\n                        else {\n                            const lineCount = curLineCount - lastTokenEndLine;\n                            const colCount = curOffset - lastLineBreakOffset;\n                            if (lineCount === 1 && colCount < smallTextTokens1Line.length) {\n                                token = smallTextTokens1Line[colCount];\n                            }\n                            else {\n                                const length = toLength(lineCount, colCount);\n                                token = new Token(length, 0 /* TokenKind.Text */, -1, SmallImmutableSet.getEmpty(), new TextAstNode(length));\n                            }\n                        }\n                        tokens.push(token);\n                    }\n                    // value is matched by regexp, so the token must exist\n                    tokens.push(brackets.getToken(value));\n                    lastTokenEndOffset = curOffset + value.length;\n                    lastTokenEndLine = curLineCount;\n                }\n            }\n        }\n        const offset = text.length;\n        if (lastTokenEndOffset !== offset) {\n            const length = (lastTokenEndLine === curLineCount)\n                ? toLength(0, offset - lastTokenEndOffset)\n                : toLength(curLineCount - lastTokenEndLine, offset - lastLineBreakOffset);\n            tokens.push(new Token(length, 0 /* TokenKind.Text */, -1, SmallImmutableSet.getEmpty(), new TextAstNode(length)));\n        }\n        this.length = toLength(curLineCount, offset - lastLineBreakOffset);\n        this.tokens = tokens;\n    }\n    get offset() {\n        return this._offset;\n    }\n    read() {\n        return this.tokens[this.idx++] || null;\n    }\n    peek() {\n        return this.tokens[this.idx] || null;\n    }\n    skip(length) {\n        throw new NotSupportedError();\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/bracketPairsTextModelPart/colorizedBracketPairsDecorationProvider.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../../../base/common/event.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { Range } from '../../core/range.js';\nimport { editorBracketHighlightingForeground1, editorBracketHighlightingForeground2, editorBracketHighlightingForeground3, editorBracketHighlightingForeground4, editorBracketHighlightingForeground5, editorBracketHighlightingForeground6, editorBracketHighlightingUnexpectedBracketForeground } from '../../core/editorColorRegistry.js';\nimport { registerThemingParticipant } from '../../../../platform/theme/common/themeService.js';\nexport class ColorizedBracketPairsDecorationProvider extends Disposable {\n    constructor(textModel) {\n        super();\n        this.textModel = textModel;\n        this.colorProvider = new ColorProvider();\n        this.onDidChangeEmitter = new Emitter();\n        this.onDidChange = this.onDidChangeEmitter.event;\n        this.colorizationOptions = textModel.getOptions().bracketPairColorizationOptions;\n        this._register(textModel.bracketPairs.onDidChange(e => {\n            this.onDidChangeEmitter.fire();\n        }));\n    }\n    //#region TextModel events\n    handleDidChangeOptions(e) {\n        this.colorizationOptions = this.textModel.getOptions().bracketPairColorizationOptions;\n    }\n    //#endregion\n    getDecorationsInRange(range, ownerId, filterOutValidation, onlyMinimapDecorations) {\n        if (onlyMinimapDecorations) {\n            // Bracket pair colorization decorations are not rendered in the minimap\n            return [];\n        }\n        if (ownerId === undefined) {\n            return [];\n        }\n        if (!this.colorizationOptions.enabled) {\n            return [];\n        }\n        const result = this.textModel.bracketPairs.getBracketsInRange(range, true).map(bracket => ({\n            id: `bracket${bracket.range.toString()}-${bracket.nestingLevel}`,\n            options: {\n                description: 'BracketPairColorization',\n                inlineClassName: this.colorProvider.getInlineClassName(bracket, this.colorizationOptions.independentColorPoolPerBracketType),\n            },\n            ownerId: 0,\n            range: bracket.range,\n        })).toArray();\n        return result;\n    }\n    getAllDecorations(ownerId, filterOutValidation) {\n        if (ownerId === undefined) {\n            return [];\n        }\n        if (!this.colorizationOptions.enabled) {\n            return [];\n        }\n        return this.getDecorationsInRange(new Range(1, 1, this.textModel.getLineCount(), 1), ownerId, filterOutValidation);\n    }\n}\nclass ColorProvider {\n    constructor() {\n        this.unexpectedClosingBracketClassName = 'unexpected-closing-bracket';\n    }\n    getInlineClassName(bracket, independentColorPoolPerBracketType) {\n        if (bracket.isInvalid) {\n            return this.unexpectedClosingBracketClassName;\n        }\n        return this.getInlineClassNameOfLevel(independentColorPoolPerBracketType ? bracket.nestingLevelOfEqualBracketType : bracket.nestingLevel);\n    }\n    getInlineClassNameOfLevel(level) {\n        // To support a dynamic amount of colors up to 6 colors,\n        // we use a number that is a lcm of all numbers from 1 to 6.\n        return `bracket-highlighting-${level % 30}`;\n    }\n}\nregisterThemingParticipant((theme, collector) => {\n    const colors = [\n        editorBracketHighlightingForeground1,\n        editorBracketHighlightingForeground2,\n        editorBracketHighlightingForeground3,\n        editorBracketHighlightingForeground4,\n        editorBracketHighlightingForeground5,\n        editorBracketHighlightingForeground6\n    ];\n    const colorProvider = new ColorProvider();\n    collector.addRule(`.monaco-editor .${colorProvider.unexpectedClosingBracketClassName} { color: ${theme.getColor(editorBracketHighlightingUnexpectedBracketForeground)}; }`);\n    const colorValues = colors\n        .map(c => theme.getColor(c))\n        .filter((c) => !!c)\n        .filter(c => !c.isTransparent());\n    for (let level = 0; level < 30; level++) {\n        const color = colorValues[level % colorValues.length];\n        collector.addRule(`.monaco-editor .${colorProvider.getInlineClassNameOfLevel(level)} { color: ${color}; }`);\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/bracketPairsTextModelPart/fixBrackets.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { LanguageAgnosticBracketTokens } from './bracketPairsTree/brackets.js';\nimport { lengthAdd, lengthGetColumnCountIfZeroLineCount, lengthZero } from './bracketPairsTree/length.js';\nimport { parseDocument } from './bracketPairsTree/parser.js';\nimport { DenseKeyProvider } from './bracketPairsTree/smallImmutableSet.js';\nimport { TextBufferTokenizer } from './bracketPairsTree/tokenizer.js';\nexport function fixBracketsInLine(tokens, languageConfigurationService) {\n    const denseKeyProvider = new DenseKeyProvider();\n    const bracketTokens = new LanguageAgnosticBracketTokens(denseKeyProvider, (languageId) => languageConfigurationService.getLanguageConfiguration(languageId));\n    const tokenizer = new TextBufferTokenizer(new StaticTokenizerSource([tokens]), bracketTokens);\n    const node = parseDocument(tokenizer, [], undefined, true);\n    let str = '';\n    const line = tokens.getLineContent();\n    function processNode(node, offset) {\n        if (node.kind === 2 /* AstNodeKind.Pair */) {\n            processNode(node.openingBracket, offset);\n            offset = lengthAdd(offset, node.openingBracket.length);\n            if (node.child) {\n                processNode(node.child, offset);\n                offset = lengthAdd(offset, node.child.length);\n            }\n            if (node.closingBracket) {\n                processNode(node.closingBracket, offset);\n                offset = lengthAdd(offset, node.closingBracket.length);\n            }\n            else {\n                const singleLangBracketTokens = bracketTokens.getSingleLanguageBracketTokens(node.openingBracket.languageId);\n                const closingTokenText = singleLangBracketTokens.findClosingTokenText(node.openingBracket.bracketIds);\n                str += closingTokenText;\n            }\n        }\n        else if (node.kind === 3 /* AstNodeKind.UnexpectedClosingBracket */) {\n            // remove the bracket\n        }\n        else if (node.kind === 0 /* AstNodeKind.Text */ || node.kind === 1 /* AstNodeKind.Bracket */) {\n            str += line.substring(lengthGetColumnCountIfZeroLineCount(offset), lengthGetColumnCountIfZeroLineCount(lengthAdd(offset, node.length)));\n        }\n        else if (node.kind === 4 /* AstNodeKind.List */) {\n            for (const child of node.children) {\n                processNode(child, offset);\n                offset = lengthAdd(offset, child.length);\n            }\n        }\n    }\n    processNode(node, lengthZero);\n    return str;\n}\nclass StaticTokenizerSource {\n    constructor(lines) {\n        this.lines = lines;\n        this.tokenization = {\n            getLineTokens: (lineNumber) => {\n                return this.lines[lineNumber - 1];\n            }\n        };\n    }\n    getLineCount() {\n        return this.lines.length;\n    }\n    getLineLength(lineNumber) {\n        return this.lines[lineNumber - 1].getLineContent().length;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/decorationProvider.js",
    "content": "export {};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/editStack.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../nls.js';\nimport { onUnexpectedError } from '../../../base/common/errors.js';\nimport { Selection } from '../core/selection.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { TextChange, compressConsecutiveTextChanges } from '../core/textChange.js';\nimport * as buffer from '../../../base/common/buffer.js';\nimport { basename } from '../../../base/common/resources.js';\nfunction uriGetComparisonKey(resource) {\n    return resource.toString();\n}\nexport class SingleModelEditStackData {\n    static create(model, beforeCursorState) {\n        const alternativeVersionId = model.getAlternativeVersionId();\n        const eol = getModelEOL(model);\n        return new SingleModelEditStackData(alternativeVersionId, alternativeVersionId, eol, eol, beforeCursorState, beforeCursorState, []);\n    }\n    constructor(beforeVersionId, afterVersionId, beforeEOL, afterEOL, beforeCursorState, afterCursorState, changes) {\n        this.beforeVersionId = beforeVersionId;\n        this.afterVersionId = afterVersionId;\n        this.beforeEOL = beforeEOL;\n        this.afterEOL = afterEOL;\n        this.beforeCursorState = beforeCursorState;\n        this.afterCursorState = afterCursorState;\n        this.changes = changes;\n    }\n    append(model, textChanges, afterEOL, afterVersionId, afterCursorState) {\n        if (textChanges.length > 0) {\n            this.changes = compressConsecutiveTextChanges(this.changes, textChanges);\n        }\n        this.afterEOL = afterEOL;\n        this.afterVersionId = afterVersionId;\n        this.afterCursorState = afterCursorState;\n    }\n    static _writeSelectionsSize(selections) {\n        return 4 + 4 * 4 * (selections ? selections.length : 0);\n    }\n    static _writeSelections(b, selections, offset) {\n        buffer.writeUInt32BE(b, (selections ? selections.length : 0), offset);\n        offset += 4;\n        if (selections) {\n            for (const selection of selections) {\n                buffer.writeUInt32BE(b, selection.selectionStartLineNumber, offset);\n                offset += 4;\n                buffer.writeUInt32BE(b, selection.selectionStartColumn, offset);\n                offset += 4;\n                buffer.writeUInt32BE(b, selection.positionLineNumber, offset);\n                offset += 4;\n                buffer.writeUInt32BE(b, selection.positionColumn, offset);\n                offset += 4;\n            }\n        }\n        return offset;\n    }\n    static _readSelections(b, offset, dest) {\n        const count = buffer.readUInt32BE(b, offset);\n        offset += 4;\n        for (let i = 0; i < count; i++) {\n            const selectionStartLineNumber = buffer.readUInt32BE(b, offset);\n            offset += 4;\n            const selectionStartColumn = buffer.readUInt32BE(b, offset);\n            offset += 4;\n            const positionLineNumber = buffer.readUInt32BE(b, offset);\n            offset += 4;\n            const positionColumn = buffer.readUInt32BE(b, offset);\n            offset += 4;\n            dest.push(new Selection(selectionStartLineNumber, selectionStartColumn, positionLineNumber, positionColumn));\n        }\n        return offset;\n    }\n    serialize() {\n        let necessarySize = (+4 // beforeVersionId\n            + 4 // afterVersionId\n            + 1 // beforeEOL\n            + 1 // afterEOL\n            + SingleModelEditStackData._writeSelectionsSize(this.beforeCursorState)\n            + SingleModelEditStackData._writeSelectionsSize(this.afterCursorState)\n            + 4 // change count\n        );\n        for (const change of this.changes) {\n            necessarySize += change.writeSize();\n        }\n        const b = new Uint8Array(necessarySize);\n        let offset = 0;\n        buffer.writeUInt32BE(b, this.beforeVersionId, offset);\n        offset += 4;\n        buffer.writeUInt32BE(b, this.afterVersionId, offset);\n        offset += 4;\n        buffer.writeUInt8(b, this.beforeEOL, offset);\n        offset += 1;\n        buffer.writeUInt8(b, this.afterEOL, offset);\n        offset += 1;\n        offset = SingleModelEditStackData._writeSelections(b, this.beforeCursorState, offset);\n        offset = SingleModelEditStackData._writeSelections(b, this.afterCursorState, offset);\n        buffer.writeUInt32BE(b, this.changes.length, offset);\n        offset += 4;\n        for (const change of this.changes) {\n            offset = change.write(b, offset);\n        }\n        return b.buffer;\n    }\n    static deserialize(source) {\n        const b = new Uint8Array(source);\n        let offset = 0;\n        const beforeVersionId = buffer.readUInt32BE(b, offset);\n        offset += 4;\n        const afterVersionId = buffer.readUInt32BE(b, offset);\n        offset += 4;\n        const beforeEOL = buffer.readUInt8(b, offset);\n        offset += 1;\n        const afterEOL = buffer.readUInt8(b, offset);\n        offset += 1;\n        const beforeCursorState = [];\n        offset = SingleModelEditStackData._readSelections(b, offset, beforeCursorState);\n        const afterCursorState = [];\n        offset = SingleModelEditStackData._readSelections(b, offset, afterCursorState);\n        const changeCount = buffer.readUInt32BE(b, offset);\n        offset += 4;\n        const changes = [];\n        for (let i = 0; i < changeCount; i++) {\n            offset = TextChange.read(b, offset, changes);\n        }\n        return new SingleModelEditStackData(beforeVersionId, afterVersionId, beforeEOL, afterEOL, beforeCursorState, afterCursorState, changes);\n    }\n}\nexport class SingleModelEditStackElement {\n    get type() {\n        return 0 /* UndoRedoElementType.Resource */;\n    }\n    get resource() {\n        if (URI.isUri(this.model)) {\n            return this.model;\n        }\n        return this.model.uri;\n    }\n    constructor(label, code, model, beforeCursorState) {\n        this.label = label;\n        this.code = code;\n        this.model = model;\n        this._data = SingleModelEditStackData.create(model, beforeCursorState);\n    }\n    toString() {\n        const data = (this._data instanceof SingleModelEditStackData ? this._data : SingleModelEditStackData.deserialize(this._data));\n        return data.changes.map(change => change.toString()).join(', ');\n    }\n    matchesResource(resource) {\n        const uri = (URI.isUri(this.model) ? this.model : this.model.uri);\n        return (uri.toString() === resource.toString());\n    }\n    setModel(model) {\n        this.model = model;\n    }\n    canAppend(model) {\n        return (this.model === model && this._data instanceof SingleModelEditStackData);\n    }\n    append(model, textChanges, afterEOL, afterVersionId, afterCursorState) {\n        if (this._data instanceof SingleModelEditStackData) {\n            this._data.append(model, textChanges, afterEOL, afterVersionId, afterCursorState);\n        }\n    }\n    close() {\n        if (this._data instanceof SingleModelEditStackData) {\n            this._data = this._data.serialize();\n        }\n    }\n    open() {\n        if (!(this._data instanceof SingleModelEditStackData)) {\n            this._data = SingleModelEditStackData.deserialize(this._data);\n        }\n    }\n    undo() {\n        if (URI.isUri(this.model)) {\n            // don't have a model\n            throw new Error(`Invalid SingleModelEditStackElement`);\n        }\n        if (this._data instanceof SingleModelEditStackData) {\n            this._data = this._data.serialize();\n        }\n        const data = SingleModelEditStackData.deserialize(this._data);\n        this.model._applyUndo(data.changes, data.beforeEOL, data.beforeVersionId, data.beforeCursorState);\n    }\n    redo() {\n        if (URI.isUri(this.model)) {\n            // don't have a model\n            throw new Error(`Invalid SingleModelEditStackElement`);\n        }\n        if (this._data instanceof SingleModelEditStackData) {\n            this._data = this._data.serialize();\n        }\n        const data = SingleModelEditStackData.deserialize(this._data);\n        this.model._applyRedo(data.changes, data.afterEOL, data.afterVersionId, data.afterCursorState);\n    }\n    heapSize() {\n        if (this._data instanceof SingleModelEditStackData) {\n            this._data = this._data.serialize();\n        }\n        return this._data.byteLength + 168 /*heap overhead*/;\n    }\n}\nexport class MultiModelEditStackElement {\n    get resources() {\n        return this._editStackElementsArr.map(editStackElement => editStackElement.resource);\n    }\n    constructor(label, code, editStackElements) {\n        this.label = label;\n        this.code = code;\n        this.type = 1 /* UndoRedoElementType.Workspace */;\n        this._isOpen = true;\n        this._editStackElementsArr = editStackElements.slice(0);\n        this._editStackElementsMap = new Map();\n        for (const editStackElement of this._editStackElementsArr) {\n            const key = uriGetComparisonKey(editStackElement.resource);\n            this._editStackElementsMap.set(key, editStackElement);\n        }\n        this._delegate = null;\n    }\n    prepareUndoRedo() {\n        if (this._delegate) {\n            return this._delegate.prepareUndoRedo(this);\n        }\n    }\n    matchesResource(resource) {\n        const key = uriGetComparisonKey(resource);\n        return (this._editStackElementsMap.has(key));\n    }\n    setModel(model) {\n        const key = uriGetComparisonKey(URI.isUri(model) ? model : model.uri);\n        if (this._editStackElementsMap.has(key)) {\n            this._editStackElementsMap.get(key).setModel(model);\n        }\n    }\n    canAppend(model) {\n        if (!this._isOpen) {\n            return false;\n        }\n        const key = uriGetComparisonKey(model.uri);\n        if (this._editStackElementsMap.has(key)) {\n            const editStackElement = this._editStackElementsMap.get(key);\n            return editStackElement.canAppend(model);\n        }\n        return false;\n    }\n    append(model, textChanges, afterEOL, afterVersionId, afterCursorState) {\n        const key = uriGetComparisonKey(model.uri);\n        const editStackElement = this._editStackElementsMap.get(key);\n        editStackElement.append(model, textChanges, afterEOL, afterVersionId, afterCursorState);\n    }\n    close() {\n        this._isOpen = false;\n    }\n    open() {\n        // cannot reopen\n    }\n    undo() {\n        this._isOpen = false;\n        for (const editStackElement of this._editStackElementsArr) {\n            editStackElement.undo();\n        }\n    }\n    redo() {\n        for (const editStackElement of this._editStackElementsArr) {\n            editStackElement.redo();\n        }\n    }\n    heapSize(resource) {\n        const key = uriGetComparisonKey(resource);\n        if (this._editStackElementsMap.has(key)) {\n            const editStackElement = this._editStackElementsMap.get(key);\n            return editStackElement.heapSize();\n        }\n        return 0;\n    }\n    split() {\n        return this._editStackElementsArr;\n    }\n    toString() {\n        const result = [];\n        for (const editStackElement of this._editStackElementsArr) {\n            result.push(`${basename(editStackElement.resource)}: ${editStackElement}`);\n        }\n        return `{${result.join(', ')}}`;\n    }\n}\nfunction getModelEOL(model) {\n    const eol = model.getEOL();\n    if (eol === '\\n') {\n        return 0 /* EndOfLineSequence.LF */;\n    }\n    else {\n        return 1 /* EndOfLineSequence.CRLF */;\n    }\n}\nexport function isEditStackElement(element) {\n    if (!element) {\n        return false;\n    }\n    return ((element instanceof SingleModelEditStackElement) || (element instanceof MultiModelEditStackElement));\n}\nexport class EditStack {\n    constructor(model, undoRedoService) {\n        this._model = model;\n        this._undoRedoService = undoRedoService;\n    }\n    pushStackElement() {\n        const lastElement = this._undoRedoService.getLastElement(this._model.uri);\n        if (isEditStackElement(lastElement)) {\n            lastElement.close();\n        }\n    }\n    popStackElement() {\n        const lastElement = this._undoRedoService.getLastElement(this._model.uri);\n        if (isEditStackElement(lastElement)) {\n            lastElement.open();\n        }\n    }\n    clear() {\n        this._undoRedoService.removeElements(this._model.uri);\n    }\n    _getOrCreateEditStackElement(beforeCursorState, group) {\n        const lastElement = this._undoRedoService.getLastElement(this._model.uri);\n        if (isEditStackElement(lastElement) && lastElement.canAppend(this._model)) {\n            return lastElement;\n        }\n        const newElement = new SingleModelEditStackElement(nls.localize('edit', \"Typing\"), 'undoredo.textBufferEdit', this._model, beforeCursorState);\n        this._undoRedoService.pushElement(newElement, group);\n        return newElement;\n    }\n    pushEOL(eol) {\n        const editStackElement = this._getOrCreateEditStackElement(null, undefined);\n        this._model.setEOL(eol);\n        editStackElement.append(this._model, [], getModelEOL(this._model), this._model.getAlternativeVersionId(), null);\n    }\n    pushEditOperation(beforeCursorState, editOperations, cursorStateComputer, group) {\n        const editStackElement = this._getOrCreateEditStackElement(beforeCursorState, group);\n        const inverseEditOperations = this._model.applyEdits(editOperations, true);\n        const afterCursorState = EditStack._computeCursorState(cursorStateComputer, inverseEditOperations);\n        const textChanges = inverseEditOperations.map((op, index) => ({ index: index, textChange: op.textChange }));\n        textChanges.sort((a, b) => {\n            if (a.textChange.oldPosition === b.textChange.oldPosition) {\n                return a.index - b.index;\n            }\n            return a.textChange.oldPosition - b.textChange.oldPosition;\n        });\n        editStackElement.append(this._model, textChanges.map(op => op.textChange), getModelEOL(this._model), this._model.getAlternativeVersionId(), afterCursorState);\n        return afterCursorState;\n    }\n    static _computeCursorState(cursorStateComputer, inverseEditOperations) {\n        try {\n            return cursorStateComputer ? cursorStateComputer(inverseEditOperations) : null;\n        }\n        catch (e) {\n            onUnexpectedError(e);\n            return null;\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/fixedArray.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { arrayInsert } from '../../../base/common/arrays.js';\n/**\n * An array that avoids being sparse by always\n * filling up unused indices with a default value.\n */\nexport class FixedArray {\n    constructor(_default) {\n        this._default = _default;\n        this._store = [];\n    }\n    get(index) {\n        if (index < this._store.length) {\n            return this._store[index];\n        }\n        return this._default;\n    }\n    set(index, value) {\n        while (index >= this._store.length) {\n            this._store[this._store.length] = this._default;\n        }\n        this._store[index] = value;\n    }\n    replace(index, oldLength, newLength) {\n        if (index >= this._store.length) {\n            return;\n        }\n        if (oldLength === 0) {\n            this.insert(index, newLength);\n            return;\n        }\n        else if (newLength === 0) {\n            this.delete(index, oldLength);\n            return;\n        }\n        const before = this._store.slice(0, index);\n        const after = this._store.slice(index + oldLength);\n        const insertArr = arrayFill(newLength, this._default);\n        this._store = before.concat(insertArr, after);\n    }\n    delete(deleteIndex, deleteCount) {\n        if (deleteCount === 0 || deleteIndex >= this._store.length) {\n            return;\n        }\n        this._store.splice(deleteIndex, deleteCount);\n    }\n    insert(insertIndex, insertCount) {\n        if (insertCount === 0 || insertIndex >= this._store.length) {\n            return;\n        }\n        const arr = [];\n        for (let i = 0; i < insertCount; i++) {\n            arr[i] = this._default;\n        }\n        this._store = arrayInsert(this._store, insertIndex, arr);\n    }\n}\nfunction arrayFill(length, value) {\n    const arr = [];\n    for (let i = 0; i < length; i++) {\n        arr[i] = value;\n    }\n    return arr;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/guidesTextModelPart.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { findLast } from '../../../base/common/arraysFind.js';\nimport * as strings from '../../../base/common/strings.js';\nimport { CursorColumns } from '../core/cursorColumns.js';\nimport { Range } from '../core/range.js';\nimport { TextModelPart } from './textModelPart.js';\nimport { computeIndentLevel } from './utils.js';\nimport { HorizontalGuidesState, IndentGuide, IndentGuideHorizontalLine } from '../textModelGuides.js';\nimport { BugIndicatingError } from '../../../base/common/errors.js';\nexport class GuidesTextModelPart extends TextModelPart {\n    constructor(textModel, languageConfigurationService) {\n        super();\n        this.textModel = textModel;\n        this.languageConfigurationService = languageConfigurationService;\n    }\n    getLanguageConfiguration(languageId) {\n        return this.languageConfigurationService.getLanguageConfiguration(languageId);\n    }\n    _computeIndentLevel(lineIndex) {\n        return computeIndentLevel(this.textModel.getLineContent(lineIndex + 1), this.textModel.getOptions().tabSize);\n    }\n    getActiveIndentGuide(lineNumber, minLineNumber, maxLineNumber) {\n        this.assertNotDisposed();\n        const lineCount = this.textModel.getLineCount();\n        if (lineNumber < 1 || lineNumber > lineCount) {\n            throw new BugIndicatingError('Illegal value for lineNumber');\n        }\n        const foldingRules = this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules;\n        const offSide = Boolean(foldingRules && foldingRules.offSide);\n        let up_aboveContentLineIndex = -2; /* -2 is a marker for not having computed it */\n        let up_aboveContentLineIndent = -1;\n        let up_belowContentLineIndex = -2; /* -2 is a marker for not having computed it */\n        let up_belowContentLineIndent = -1;\n        const up_resolveIndents = (lineNumber) => {\n            if (up_aboveContentLineIndex !== -1 &&\n                (up_aboveContentLineIndex === -2 ||\n                    up_aboveContentLineIndex > lineNumber - 1)) {\n                up_aboveContentLineIndex = -1;\n                up_aboveContentLineIndent = -1;\n                // must find previous line with content\n                for (let lineIndex = lineNumber - 2; lineIndex >= 0; lineIndex--) {\n                    const indent = this._computeIndentLevel(lineIndex);\n                    if (indent >= 0) {\n                        up_aboveContentLineIndex = lineIndex;\n                        up_aboveContentLineIndent = indent;\n                        break;\n                    }\n                }\n            }\n            if (up_belowContentLineIndex === -2) {\n                up_belowContentLineIndex = -1;\n                up_belowContentLineIndent = -1;\n                // must find next line with content\n                for (let lineIndex = lineNumber; lineIndex < lineCount; lineIndex++) {\n                    const indent = this._computeIndentLevel(lineIndex);\n                    if (indent >= 0) {\n                        up_belowContentLineIndex = lineIndex;\n                        up_belowContentLineIndent = indent;\n                        break;\n                    }\n                }\n            }\n        };\n        let down_aboveContentLineIndex = -2; /* -2 is a marker for not having computed it */\n        let down_aboveContentLineIndent = -1;\n        let down_belowContentLineIndex = -2; /* -2 is a marker for not having computed it */\n        let down_belowContentLineIndent = -1;\n        const down_resolveIndents = (lineNumber) => {\n            if (down_aboveContentLineIndex === -2) {\n                down_aboveContentLineIndex = -1;\n                down_aboveContentLineIndent = -1;\n                // must find previous line with content\n                for (let lineIndex = lineNumber - 2; lineIndex >= 0; lineIndex--) {\n                    const indent = this._computeIndentLevel(lineIndex);\n                    if (indent >= 0) {\n                        down_aboveContentLineIndex = lineIndex;\n                        down_aboveContentLineIndent = indent;\n                        break;\n                    }\n                }\n            }\n            if (down_belowContentLineIndex !== -1 &&\n                (down_belowContentLineIndex === -2 ||\n                    down_belowContentLineIndex < lineNumber - 1)) {\n                down_belowContentLineIndex = -1;\n                down_belowContentLineIndent = -1;\n                // must find next line with content\n                for (let lineIndex = lineNumber; lineIndex < lineCount; lineIndex++) {\n                    const indent = this._computeIndentLevel(lineIndex);\n                    if (indent >= 0) {\n                        down_belowContentLineIndex = lineIndex;\n                        down_belowContentLineIndent = indent;\n                        break;\n                    }\n                }\n            }\n        };\n        let startLineNumber = 0;\n        let goUp = true;\n        let endLineNumber = 0;\n        let goDown = true;\n        let indent = 0;\n        let initialIndent = 0;\n        for (let distance = 0; goUp || goDown; distance++) {\n            const upLineNumber = lineNumber - distance;\n            const downLineNumber = lineNumber + distance;\n            if (distance > 1 && (upLineNumber < 1 || upLineNumber < minLineNumber)) {\n                goUp = false;\n            }\n            if (distance > 1 &&\n                (downLineNumber > lineCount || downLineNumber > maxLineNumber)) {\n                goDown = false;\n            }\n            if (distance > 50000) {\n                // stop processing\n                goUp = false;\n                goDown = false;\n            }\n            let upLineIndentLevel = -1;\n            if (goUp && upLineNumber >= 1) {\n                // compute indent level going up\n                const currentIndent = this._computeIndentLevel(upLineNumber - 1);\n                if (currentIndent >= 0) {\n                    // This line has content (besides whitespace)\n                    // Use the line's indent\n                    up_belowContentLineIndex = upLineNumber - 1;\n                    up_belowContentLineIndent = currentIndent;\n                    upLineIndentLevel = Math.ceil(currentIndent / this.textModel.getOptions().indentSize);\n                }\n                else {\n                    up_resolveIndents(upLineNumber);\n                    upLineIndentLevel = this._getIndentLevelForWhitespaceLine(offSide, up_aboveContentLineIndent, up_belowContentLineIndent);\n                }\n            }\n            let downLineIndentLevel = -1;\n            if (goDown && downLineNumber <= lineCount) {\n                // compute indent level going down\n                const currentIndent = this._computeIndentLevel(downLineNumber - 1);\n                if (currentIndent >= 0) {\n                    // This line has content (besides whitespace)\n                    // Use the line's indent\n                    down_aboveContentLineIndex = downLineNumber - 1;\n                    down_aboveContentLineIndent = currentIndent;\n                    downLineIndentLevel = Math.ceil(currentIndent / this.textModel.getOptions().indentSize);\n                }\n                else {\n                    down_resolveIndents(downLineNumber);\n                    downLineIndentLevel = this._getIndentLevelForWhitespaceLine(offSide, down_aboveContentLineIndent, down_belowContentLineIndent);\n                }\n            }\n            if (distance === 0) {\n                initialIndent = upLineIndentLevel;\n                continue;\n            }\n            if (distance === 1) {\n                if (downLineNumber <= lineCount &&\n                    downLineIndentLevel >= 0 &&\n                    initialIndent + 1 === downLineIndentLevel) {\n                    // This is the beginning of a scope, we have special handling here, since we want the\n                    // child scope indent to be active, not the parent scope\n                    goUp = false;\n                    startLineNumber = downLineNumber;\n                    endLineNumber = downLineNumber;\n                    indent = downLineIndentLevel;\n                    continue;\n                }\n                if (upLineNumber >= 1 &&\n                    upLineIndentLevel >= 0 &&\n                    upLineIndentLevel - 1 === initialIndent) {\n                    // This is the end of a scope, just like above\n                    goDown = false;\n                    startLineNumber = upLineNumber;\n                    endLineNumber = upLineNumber;\n                    indent = upLineIndentLevel;\n                    continue;\n                }\n                startLineNumber = lineNumber;\n                endLineNumber = lineNumber;\n                indent = initialIndent;\n                if (indent === 0) {\n                    // No need to continue\n                    return { startLineNumber, endLineNumber, indent };\n                }\n            }\n            if (goUp) {\n                if (upLineIndentLevel >= indent) {\n                    startLineNumber = upLineNumber;\n                }\n                else {\n                    goUp = false;\n                }\n            }\n            if (goDown) {\n                if (downLineIndentLevel >= indent) {\n                    endLineNumber = downLineNumber;\n                }\n                else {\n                    goDown = false;\n                }\n            }\n        }\n        return { startLineNumber, endLineNumber, indent };\n    }\n    getLinesBracketGuides(startLineNumber, endLineNumber, activePosition, options) {\n        var _a;\n        const result = [];\n        for (let lineNumber = startLineNumber; lineNumber <= endLineNumber; lineNumber++) {\n            result.push([]);\n        }\n        // If requested, this could be made configurable.\n        const includeSingleLinePairs = true;\n        const bracketPairs = this.textModel.bracketPairs.getBracketPairsInRangeWithMinIndentation(new Range(startLineNumber, 1, endLineNumber, this.textModel.getLineMaxColumn(endLineNumber))).toArray();\n        let activeBracketPairRange = undefined;\n        if (activePosition && bracketPairs.length > 0) {\n            const bracketsContainingActivePosition = (startLineNumber <= activePosition.lineNumber &&\n                activePosition.lineNumber <= endLineNumber\n                // We don't need to query the brackets again if the cursor is in the viewport\n                ? bracketPairs\n                : this.textModel.bracketPairs.getBracketPairsInRange(Range.fromPositions(activePosition)).toArray()).filter((bp) => Range.strictContainsPosition(bp.range, activePosition));\n            activeBracketPairRange = (_a = findLast(bracketsContainingActivePosition, (i) => includeSingleLinePairs || i.range.startLineNumber !== i.range.endLineNumber)) === null || _a === void 0 ? void 0 : _a.range;\n        }\n        const independentColorPoolPerBracketType = this.textModel.getOptions().bracketPairColorizationOptions.independentColorPoolPerBracketType;\n        const colorProvider = new BracketPairGuidesClassNames();\n        for (const pair of bracketPairs) {\n            /*\n\n\n                    {\n                    |\n                    }\n\n                    {\n                    |\n                    ----}\n\n                ____{\n                |test\n                ----}\n\n                renderHorizontalEndLineAtTheBottom:\n                    {\n                    |\n                    |x}\n                    --\n                renderHorizontalEndLineAtTheBottom:\n                ____{\n                |test\n                | x }\n                ----\n            */\n            if (!pair.closingBracketRange) {\n                continue;\n            }\n            const isActive = activeBracketPairRange && pair.range.equalsRange(activeBracketPairRange);\n            if (!isActive && !options.includeInactive) {\n                continue;\n            }\n            const className = colorProvider.getInlineClassName(pair.nestingLevel, pair.nestingLevelOfEqualBracketType, independentColorPoolPerBracketType) +\n                (options.highlightActive && isActive\n                    ? ' ' + colorProvider.activeClassName\n                    : '');\n            const start = pair.openingBracketRange.getStartPosition();\n            const end = pair.closingBracketRange.getStartPosition();\n            const horizontalGuides = options.horizontalGuides === HorizontalGuidesState.Enabled || (options.horizontalGuides === HorizontalGuidesState.EnabledForActive && isActive);\n            if (pair.range.startLineNumber === pair.range.endLineNumber) {\n                if (includeSingleLinePairs && horizontalGuides) {\n                    result[pair.range.startLineNumber - startLineNumber].push(new IndentGuide(-1, pair.openingBracketRange.getEndPosition().column, className, new IndentGuideHorizontalLine(false, end.column), -1, -1));\n                }\n                continue;\n            }\n            const endVisibleColumn = this.getVisibleColumnFromPosition(end);\n            const startVisibleColumn = this.getVisibleColumnFromPosition(pair.openingBracketRange.getStartPosition());\n            const guideVisibleColumn = Math.min(startVisibleColumn, endVisibleColumn, pair.minVisibleColumnIndentation + 1);\n            let renderHorizontalEndLineAtTheBottom = false;\n            const firstNonWsIndex = strings.firstNonWhitespaceIndex(this.textModel.getLineContent(pair.closingBracketRange.startLineNumber));\n            const hasTextBeforeClosingBracket = firstNonWsIndex < pair.closingBracketRange.startColumn - 1;\n            if (hasTextBeforeClosingBracket) {\n                renderHorizontalEndLineAtTheBottom = true;\n            }\n            const visibleGuideStartLineNumber = Math.max(start.lineNumber, startLineNumber);\n            const visibleGuideEndLineNumber = Math.min(end.lineNumber, endLineNumber);\n            const offset = renderHorizontalEndLineAtTheBottom ? 1 : 0;\n            for (let l = visibleGuideStartLineNumber; l < visibleGuideEndLineNumber + offset; l++) {\n                result[l - startLineNumber].push(new IndentGuide(guideVisibleColumn, -1, className, null, l === start.lineNumber ? start.column : -1, l === end.lineNumber ? end.column : -1));\n            }\n            if (horizontalGuides) {\n                if (start.lineNumber >= startLineNumber && startVisibleColumn > guideVisibleColumn) {\n                    result[start.lineNumber - startLineNumber].push(new IndentGuide(guideVisibleColumn, -1, className, new IndentGuideHorizontalLine(false, start.column), -1, -1));\n                }\n                if (end.lineNumber <= endLineNumber && endVisibleColumn > guideVisibleColumn) {\n                    result[end.lineNumber - startLineNumber].push(new IndentGuide(guideVisibleColumn, -1, className, new IndentGuideHorizontalLine(!renderHorizontalEndLineAtTheBottom, end.column), -1, -1));\n                }\n            }\n        }\n        for (const guides of result) {\n            guides.sort((a, b) => a.visibleColumn - b.visibleColumn);\n        }\n        return result;\n    }\n    getVisibleColumnFromPosition(position) {\n        return (CursorColumns.visibleColumnFromColumn(this.textModel.getLineContent(position.lineNumber), position.column, this.textModel.getOptions().tabSize) + 1);\n    }\n    getLinesIndentGuides(startLineNumber, endLineNumber) {\n        this.assertNotDisposed();\n        const lineCount = this.textModel.getLineCount();\n        if (startLineNumber < 1 || startLineNumber > lineCount) {\n            throw new Error('Illegal value for startLineNumber');\n        }\n        if (endLineNumber < 1 || endLineNumber > lineCount) {\n            throw new Error('Illegal value for endLineNumber');\n        }\n        const options = this.textModel.getOptions();\n        const foldingRules = this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules;\n        const offSide = Boolean(foldingRules && foldingRules.offSide);\n        const result = new Array(endLineNumber - startLineNumber + 1);\n        let aboveContentLineIndex = -2; /* -2 is a marker for not having computed it */\n        let aboveContentLineIndent = -1;\n        let belowContentLineIndex = -2; /* -2 is a marker for not having computed it */\n        let belowContentLineIndent = -1;\n        for (let lineNumber = startLineNumber; lineNumber <= endLineNumber; lineNumber++) {\n            const resultIndex = lineNumber - startLineNumber;\n            const currentIndent = this._computeIndentLevel(lineNumber - 1);\n            if (currentIndent >= 0) {\n                // This line has content (besides whitespace)\n                // Use the line's indent\n                aboveContentLineIndex = lineNumber - 1;\n                aboveContentLineIndent = currentIndent;\n                result[resultIndex] = Math.ceil(currentIndent / options.indentSize);\n                continue;\n            }\n            if (aboveContentLineIndex === -2) {\n                aboveContentLineIndex = -1;\n                aboveContentLineIndent = -1;\n                // must find previous line with content\n                for (let lineIndex = lineNumber - 2; lineIndex >= 0; lineIndex--) {\n                    const indent = this._computeIndentLevel(lineIndex);\n                    if (indent >= 0) {\n                        aboveContentLineIndex = lineIndex;\n                        aboveContentLineIndent = indent;\n                        break;\n                    }\n                }\n            }\n            if (belowContentLineIndex !== -1 &&\n                (belowContentLineIndex === -2 || belowContentLineIndex < lineNumber - 1)) {\n                belowContentLineIndex = -1;\n                belowContentLineIndent = -1;\n                // must find next line with content\n                for (let lineIndex = lineNumber; lineIndex < lineCount; lineIndex++) {\n                    const indent = this._computeIndentLevel(lineIndex);\n                    if (indent >= 0) {\n                        belowContentLineIndex = lineIndex;\n                        belowContentLineIndent = indent;\n                        break;\n                    }\n                }\n            }\n            result[resultIndex] = this._getIndentLevelForWhitespaceLine(offSide, aboveContentLineIndent, belowContentLineIndent);\n        }\n        return result;\n    }\n    _getIndentLevelForWhitespaceLine(offSide, aboveContentLineIndent, belowContentLineIndent) {\n        const options = this.textModel.getOptions();\n        if (aboveContentLineIndent === -1 || belowContentLineIndent === -1) {\n            // At the top or bottom of the file\n            return 0;\n        }\n        else if (aboveContentLineIndent < belowContentLineIndent) {\n            // we are inside the region above\n            return 1 + Math.floor(aboveContentLineIndent / options.indentSize);\n        }\n        else if (aboveContentLineIndent === belowContentLineIndent) {\n            // we are in between two regions\n            return Math.ceil(belowContentLineIndent / options.indentSize);\n        }\n        else {\n            if (offSide) {\n                // same level as region below\n                return Math.ceil(belowContentLineIndent / options.indentSize);\n            }\n            else {\n                // we are inside the region that ends below\n                return 1 + Math.floor(belowContentLineIndent / options.indentSize);\n            }\n        }\n    }\n}\nexport class BracketPairGuidesClassNames {\n    constructor() {\n        this.activeClassName = 'indent-active';\n    }\n    getInlineClassName(nestingLevel, nestingLevelOfEqualBracketType, independentColorPoolPerBracketType) {\n        return this.getInlineClassNameOfLevel(independentColorPoolPerBracketType ? nestingLevelOfEqualBracketType : nestingLevel);\n    }\n    getInlineClassNameOfLevel(level) {\n        // To support a dynamic amount of colors up to 6 colors,\n        // we use a number that is a lcm of all numbers from 1 to 6.\n        return `bracket-indent-guide lvl-${level % 30}`;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/indentationGuesser.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass SpacesDiffResult {\n    constructor() {\n        this.spacesDiff = 0;\n        this.looksLikeAlignment = false;\n    }\n}\n/**\n * Compute the diff in spaces between two line's indentation.\n */\nfunction spacesDiff(a, aLength, b, bLength, result) {\n    result.spacesDiff = 0;\n    result.looksLikeAlignment = false;\n    // This can go both ways (e.g.):\n    //  - a: \"\\t\"\n    //  - b: \"\\t    \"\n    //  => This should count 1 tab and 4 spaces\n    let i;\n    for (i = 0; i < aLength && i < bLength; i++) {\n        const aCharCode = a.charCodeAt(i);\n        const bCharCode = b.charCodeAt(i);\n        if (aCharCode !== bCharCode) {\n            break;\n        }\n    }\n    let aSpacesCnt = 0, aTabsCount = 0;\n    for (let j = i; j < aLength; j++) {\n        const aCharCode = a.charCodeAt(j);\n        if (aCharCode === 32 /* CharCode.Space */) {\n            aSpacesCnt++;\n        }\n        else {\n            aTabsCount++;\n        }\n    }\n    let bSpacesCnt = 0, bTabsCount = 0;\n    for (let j = i; j < bLength; j++) {\n        const bCharCode = b.charCodeAt(j);\n        if (bCharCode === 32 /* CharCode.Space */) {\n            bSpacesCnt++;\n        }\n        else {\n            bTabsCount++;\n        }\n    }\n    if (aSpacesCnt > 0 && aTabsCount > 0) {\n        return;\n    }\n    if (bSpacesCnt > 0 && bTabsCount > 0) {\n        return;\n    }\n    const tabsDiff = Math.abs(aTabsCount - bTabsCount);\n    const spacesDiff = Math.abs(aSpacesCnt - bSpacesCnt);\n    if (tabsDiff === 0) {\n        // check if the indentation difference might be caused by alignment reasons\n        // sometime folks like to align their code, but this should not be used as a hint\n        result.spacesDiff = spacesDiff;\n        if (spacesDiff > 0 && 0 <= bSpacesCnt - 1 && bSpacesCnt - 1 < a.length && bSpacesCnt < b.length) {\n            if (b.charCodeAt(bSpacesCnt) !== 32 /* CharCode.Space */ && a.charCodeAt(bSpacesCnt - 1) === 32 /* CharCode.Space */) {\n                if (a.charCodeAt(a.length - 1) === 44 /* CharCode.Comma */) {\n                    // This looks like an alignment desire: e.g.\n                    // const a = b + c,\n                    //       d = b - c;\n                    result.looksLikeAlignment = true;\n                }\n            }\n        }\n        return;\n    }\n    if (spacesDiff % tabsDiff === 0) {\n        result.spacesDiff = spacesDiff / tabsDiff;\n        return;\n    }\n}\nexport function guessIndentation(source, defaultTabSize, defaultInsertSpaces) {\n    // Look at most at the first 10k lines\n    const linesCount = Math.min(source.getLineCount(), 10000);\n    let linesIndentedWithTabsCount = 0; // number of lines that contain at least one tab in indentation\n    let linesIndentedWithSpacesCount = 0; // number of lines that contain only spaces in indentation\n    let previousLineText = ''; // content of latest line that contained non-whitespace chars\n    let previousLineIndentation = 0; // index at which latest line contained the first non-whitespace char\n    const ALLOWED_TAB_SIZE_GUESSES = [2, 4, 6, 8, 3, 5, 7]; // prefer even guesses for `tabSize`, limit to [2, 8].\n    const MAX_ALLOWED_TAB_SIZE_GUESS = 8; // max(ALLOWED_TAB_SIZE_GUESSES) = 8\n    const spacesDiffCount = [0, 0, 0, 0, 0, 0, 0, 0, 0]; // `tabSize` scores\n    const tmp = new SpacesDiffResult();\n    for (let lineNumber = 1; lineNumber <= linesCount; lineNumber++) {\n        const currentLineLength = source.getLineLength(lineNumber);\n        const currentLineText = source.getLineContent(lineNumber);\n        // if the text buffer is chunk based, so long lines are cons-string, v8 will flattern the string when we check charCode.\n        // checking charCode on chunks directly is cheaper.\n        const useCurrentLineText = (currentLineLength <= 65536);\n        let currentLineHasContent = false; // does `currentLineText` contain non-whitespace chars\n        let currentLineIndentation = 0; // index at which `currentLineText` contains the first non-whitespace char\n        let currentLineSpacesCount = 0; // count of spaces found in `currentLineText` indentation\n        let currentLineTabsCount = 0; // count of tabs found in `currentLineText` indentation\n        for (let j = 0, lenJ = currentLineLength; j < lenJ; j++) {\n            const charCode = (useCurrentLineText ? currentLineText.charCodeAt(j) : source.getLineCharCode(lineNumber, j));\n            if (charCode === 9 /* CharCode.Tab */) {\n                currentLineTabsCount++;\n            }\n            else if (charCode === 32 /* CharCode.Space */) {\n                currentLineSpacesCount++;\n            }\n            else {\n                // Hit non whitespace character on this line\n                currentLineHasContent = true;\n                currentLineIndentation = j;\n                break;\n            }\n        }\n        // Ignore empty or only whitespace lines\n        if (!currentLineHasContent) {\n            continue;\n        }\n        if (currentLineTabsCount > 0) {\n            linesIndentedWithTabsCount++;\n        }\n        else if (currentLineSpacesCount > 1) {\n            linesIndentedWithSpacesCount++;\n        }\n        spacesDiff(previousLineText, previousLineIndentation, currentLineText, currentLineIndentation, tmp);\n        if (tmp.looksLikeAlignment) {\n            // if defaultInsertSpaces === true && the spaces count == tabSize, we may want to count it as valid indentation\n            //\n            // - item1\n            //   - item2\n            //\n            // otherwise skip this line entirely\n            //\n            // const a = 1,\n            //       b = 2;\n            if (!(defaultInsertSpaces && defaultTabSize === tmp.spacesDiff)) {\n                continue;\n            }\n        }\n        const currentSpacesDiff = tmp.spacesDiff;\n        if (currentSpacesDiff <= MAX_ALLOWED_TAB_SIZE_GUESS) {\n            spacesDiffCount[currentSpacesDiff]++;\n        }\n        previousLineText = currentLineText;\n        previousLineIndentation = currentLineIndentation;\n    }\n    let insertSpaces = defaultInsertSpaces;\n    if (linesIndentedWithTabsCount !== linesIndentedWithSpacesCount) {\n        insertSpaces = (linesIndentedWithTabsCount < linesIndentedWithSpacesCount);\n    }\n    let tabSize = defaultTabSize;\n    // Guess tabSize only if inserting spaces...\n    if (insertSpaces) {\n        let tabSizeScore = (insertSpaces ? 0 : 0.1 * linesCount);\n        // console.log(\"score threshold: \" + tabSizeScore);\n        ALLOWED_TAB_SIZE_GUESSES.forEach((possibleTabSize) => {\n            const possibleTabSizeScore = spacesDiffCount[possibleTabSize];\n            if (possibleTabSizeScore > tabSizeScore) {\n                tabSizeScore = possibleTabSizeScore;\n                tabSize = possibleTabSize;\n            }\n        });\n        // Let a tabSize of 2 win even if it is not the maximum\n        // (only in case 4 was guessed)\n        if (tabSize === 4 && spacesDiffCount[4] > 0 && spacesDiffCount[2] > 0 && spacesDiffCount[2] >= spacesDiffCount[4] / 2) {\n            tabSize = 2;\n        }\n    }\n    // console.log('--------------------------');\n    // console.log('linesIndentedWithTabsCount: ' + linesIndentedWithTabsCount + ', linesIndentedWithSpacesCount: ' + linesIndentedWithSpacesCount);\n    // console.log('spacesDiffCount: ' + spacesDiffCount);\n    // console.log('tabSize: ' + tabSize + ', tabSizeScore: ' + tabSizeScore);\n    return {\n        insertSpaces: insertSpaces,\n        tabSize: tabSize\n    };\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/intervalTree.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport function getNodeColor(node) {\n    return ((node.metadata & 1 /* Constants.ColorMask */) >>> 0 /* Constants.ColorOffset */);\n}\nfunction setNodeColor(node, color) {\n    node.metadata = ((node.metadata & 254 /* Constants.ColorMaskInverse */) | (color << 0 /* Constants.ColorOffset */));\n}\nfunction getNodeIsVisited(node) {\n    return ((node.metadata & 2 /* Constants.IsVisitedMask */) >>> 1 /* Constants.IsVisitedOffset */) === 1;\n}\nfunction setNodeIsVisited(node, value) {\n    node.metadata = ((node.metadata & 253 /* Constants.IsVisitedMaskInverse */) | ((value ? 1 : 0) << 1 /* Constants.IsVisitedOffset */));\n}\nfunction getNodeIsForValidation(node) {\n    return ((node.metadata & 4 /* Constants.IsForValidationMask */) >>> 2 /* Constants.IsForValidationOffset */) === 1;\n}\nfunction setNodeIsForValidation(node, value) {\n    node.metadata = ((node.metadata & 251 /* Constants.IsForValidationMaskInverse */) | ((value ? 1 : 0) << 2 /* Constants.IsForValidationOffset */));\n}\nfunction getNodeIsInGlyphMargin(node) {\n    return ((node.metadata & 64 /* Constants.IsMarginMask */) >>> 6 /* Constants.IsMarginOffset */) === 1;\n}\nfunction setNodeIsInGlyphMargin(node, value) {\n    node.metadata = ((node.metadata & 191 /* Constants.IsMarginMaskInverse */) | ((value ? 1 : 0) << 6 /* Constants.IsMarginOffset */));\n}\nfunction getNodeStickiness(node) {\n    return ((node.metadata & 24 /* Constants.StickinessMask */) >>> 3 /* Constants.StickinessOffset */);\n}\nfunction _setNodeStickiness(node, stickiness) {\n    node.metadata = ((node.metadata & 231 /* Constants.StickinessMaskInverse */) | (stickiness << 3 /* Constants.StickinessOffset */));\n}\nfunction getCollapseOnReplaceEdit(node) {\n    return ((node.metadata & 32 /* Constants.CollapseOnReplaceEditMask */) >>> 5 /* Constants.CollapseOnReplaceEditOffset */) === 1;\n}\nfunction setCollapseOnReplaceEdit(node, value) {\n    node.metadata = ((node.metadata & 223 /* Constants.CollapseOnReplaceEditMaskInverse */) | ((value ? 1 : 0) << 5 /* Constants.CollapseOnReplaceEditOffset */));\n}\nexport class IntervalNode {\n    constructor(id, start, end) {\n        this.metadata = 0;\n        this.parent = this;\n        this.left = this;\n        this.right = this;\n        setNodeColor(this, 1 /* NodeColor.Red */);\n        this.start = start;\n        this.end = end;\n        // FORCE_OVERFLOWING_TEST: this.delta = start;\n        this.delta = 0;\n        this.maxEnd = end;\n        this.id = id;\n        this.ownerId = 0;\n        this.options = null;\n        setNodeIsForValidation(this, false);\n        setNodeIsInGlyphMargin(this, false);\n        _setNodeStickiness(this, 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */);\n        setCollapseOnReplaceEdit(this, false);\n        this.cachedVersionId = 0;\n        this.cachedAbsoluteStart = start;\n        this.cachedAbsoluteEnd = end;\n        this.range = null;\n        setNodeIsVisited(this, false);\n    }\n    reset(versionId, start, end, range) {\n        this.start = start;\n        this.end = end;\n        this.maxEnd = end;\n        this.cachedVersionId = versionId;\n        this.cachedAbsoluteStart = start;\n        this.cachedAbsoluteEnd = end;\n        this.range = range;\n    }\n    setOptions(options) {\n        this.options = options;\n        const className = this.options.className;\n        setNodeIsForValidation(this, (className === \"squiggly-error\" /* ClassName.EditorErrorDecoration */\n            || className === \"squiggly-warning\" /* ClassName.EditorWarningDecoration */\n            || className === \"squiggly-info\" /* ClassName.EditorInfoDecoration */));\n        setNodeIsInGlyphMargin(this, this.options.glyphMarginClassName !== null);\n        _setNodeStickiness(this, this.options.stickiness);\n        setCollapseOnReplaceEdit(this, this.options.collapseOnReplaceEdit);\n    }\n    setCachedOffsets(absoluteStart, absoluteEnd, cachedVersionId) {\n        if (this.cachedVersionId !== cachedVersionId) {\n            this.range = null;\n        }\n        this.cachedVersionId = cachedVersionId;\n        this.cachedAbsoluteStart = absoluteStart;\n        this.cachedAbsoluteEnd = absoluteEnd;\n    }\n    detach() {\n        this.parent = null;\n        this.left = null;\n        this.right = null;\n    }\n}\nexport const SENTINEL = new IntervalNode(null, 0, 0);\nSENTINEL.parent = SENTINEL;\nSENTINEL.left = SENTINEL;\nSENTINEL.right = SENTINEL;\nsetNodeColor(SENTINEL, 0 /* NodeColor.Black */);\nexport class IntervalTree {\n    constructor() {\n        this.root = SENTINEL;\n        this.requestNormalizeDelta = false;\n    }\n    intervalSearch(start, end, filterOwnerId, filterOutValidation, cachedVersionId, onlyMarginDecorations) {\n        if (this.root === SENTINEL) {\n            return [];\n        }\n        return intervalSearch(this, start, end, filterOwnerId, filterOutValidation, cachedVersionId, onlyMarginDecorations);\n    }\n    search(filterOwnerId, filterOutValidation, cachedVersionId, onlyMarginDecorations) {\n        if (this.root === SENTINEL) {\n            return [];\n        }\n        return search(this, filterOwnerId, filterOutValidation, cachedVersionId, onlyMarginDecorations);\n    }\n    /**\n     * Will not set `cachedAbsoluteStart` nor `cachedAbsoluteEnd` on the returned nodes!\n     */\n    collectNodesFromOwner(ownerId) {\n        return collectNodesFromOwner(this, ownerId);\n    }\n    /**\n     * Will not set `cachedAbsoluteStart` nor `cachedAbsoluteEnd` on the returned nodes!\n     */\n    collectNodesPostOrder() {\n        return collectNodesPostOrder(this);\n    }\n    insert(node) {\n        rbTreeInsert(this, node);\n        this._normalizeDeltaIfNecessary();\n    }\n    delete(node) {\n        rbTreeDelete(this, node);\n        this._normalizeDeltaIfNecessary();\n    }\n    resolveNode(node, cachedVersionId) {\n        const initialNode = node;\n        let delta = 0;\n        while (node !== this.root) {\n            if (node === node.parent.right) {\n                delta += node.parent.delta;\n            }\n            node = node.parent;\n        }\n        const nodeStart = initialNode.start + delta;\n        const nodeEnd = initialNode.end + delta;\n        initialNode.setCachedOffsets(nodeStart, nodeEnd, cachedVersionId);\n    }\n    acceptReplace(offset, length, textLength, forceMoveMarkers) {\n        // Our strategy is to remove all directly impacted nodes, and then add them back to the tree.\n        // (1) collect all nodes that are intersecting this edit as nodes of interest\n        const nodesOfInterest = searchForEditing(this, offset, offset + length);\n        // (2) remove all nodes that are intersecting this edit\n        for (let i = 0, len = nodesOfInterest.length; i < len; i++) {\n            const node = nodesOfInterest[i];\n            rbTreeDelete(this, node);\n        }\n        this._normalizeDeltaIfNecessary();\n        // (3) edit all tree nodes except the nodes of interest\n        noOverlapReplace(this, offset, offset + length, textLength);\n        this._normalizeDeltaIfNecessary();\n        // (4) edit the nodes of interest and insert them back in the tree\n        for (let i = 0, len = nodesOfInterest.length; i < len; i++) {\n            const node = nodesOfInterest[i];\n            node.start = node.cachedAbsoluteStart;\n            node.end = node.cachedAbsoluteEnd;\n            nodeAcceptEdit(node, offset, (offset + length), textLength, forceMoveMarkers);\n            node.maxEnd = node.end;\n            rbTreeInsert(this, node);\n        }\n        this._normalizeDeltaIfNecessary();\n    }\n    _normalizeDeltaIfNecessary() {\n        if (!this.requestNormalizeDelta) {\n            return;\n        }\n        this.requestNormalizeDelta = false;\n        normalizeDelta(this);\n    }\n}\n//#region Delta Normalization\nfunction normalizeDelta(T) {\n    let node = T.root;\n    let delta = 0;\n    while (node !== SENTINEL) {\n        if (node.left !== SENTINEL && !getNodeIsVisited(node.left)) {\n            // go left\n            node = node.left;\n            continue;\n        }\n        if (node.right !== SENTINEL && !getNodeIsVisited(node.right)) {\n            // go right\n            delta += node.delta;\n            node = node.right;\n            continue;\n        }\n        // handle current node\n        node.start = delta + node.start;\n        node.end = delta + node.end;\n        node.delta = 0;\n        recomputeMaxEnd(node);\n        setNodeIsVisited(node, true);\n        // going up from this node\n        setNodeIsVisited(node.left, false);\n        setNodeIsVisited(node.right, false);\n        if (node === node.parent.right) {\n            delta -= node.parent.delta;\n        }\n        node = node.parent;\n    }\n    setNodeIsVisited(T.root, false);\n}\nfunction adjustMarkerBeforeColumn(markerOffset, markerStickToPreviousCharacter, checkOffset, moveSemantics) {\n    if (markerOffset < checkOffset) {\n        return true;\n    }\n    if (markerOffset > checkOffset) {\n        return false;\n    }\n    if (moveSemantics === 1 /* MarkerMoveSemantics.ForceMove */) {\n        return false;\n    }\n    if (moveSemantics === 2 /* MarkerMoveSemantics.ForceStay */) {\n        return true;\n    }\n    return markerStickToPreviousCharacter;\n}\n/**\n * This is a lot more complicated than strictly necessary to maintain the same behaviour\n * as when decorations were implemented using two markers.\n */\nexport function nodeAcceptEdit(node, start, end, textLength, forceMoveMarkers) {\n    const nodeStickiness = getNodeStickiness(node);\n    const startStickToPreviousCharacter = (nodeStickiness === 0 /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */\n        || nodeStickiness === 2 /* TrackedRangeStickiness.GrowsOnlyWhenTypingBefore */);\n    const endStickToPreviousCharacter = (nodeStickiness === 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */\n        || nodeStickiness === 2 /* TrackedRangeStickiness.GrowsOnlyWhenTypingBefore */);\n    const deletingCnt = (end - start);\n    const insertingCnt = textLength;\n    const commonLength = Math.min(deletingCnt, insertingCnt);\n    const nodeStart = node.start;\n    let startDone = false;\n    const nodeEnd = node.end;\n    let endDone = false;\n    if (start <= nodeStart && nodeEnd <= end && getCollapseOnReplaceEdit(node)) {\n        // This edit encompasses the entire decoration range\n        // and the decoration has asked to become collapsed\n        node.start = start;\n        startDone = true;\n        node.end = start;\n        endDone = true;\n    }\n    {\n        const moveSemantics = forceMoveMarkers ? 1 /* MarkerMoveSemantics.ForceMove */ : (deletingCnt > 0 ? 2 /* MarkerMoveSemantics.ForceStay */ : 0 /* MarkerMoveSemantics.MarkerDefined */);\n        if (!startDone && adjustMarkerBeforeColumn(nodeStart, startStickToPreviousCharacter, start, moveSemantics)) {\n            startDone = true;\n        }\n        if (!endDone && adjustMarkerBeforeColumn(nodeEnd, endStickToPreviousCharacter, start, moveSemantics)) {\n            endDone = true;\n        }\n    }\n    if (commonLength > 0 && !forceMoveMarkers) {\n        const moveSemantics = (deletingCnt > insertingCnt ? 2 /* MarkerMoveSemantics.ForceStay */ : 0 /* MarkerMoveSemantics.MarkerDefined */);\n        if (!startDone && adjustMarkerBeforeColumn(nodeStart, startStickToPreviousCharacter, start + commonLength, moveSemantics)) {\n            startDone = true;\n        }\n        if (!endDone && adjustMarkerBeforeColumn(nodeEnd, endStickToPreviousCharacter, start + commonLength, moveSemantics)) {\n            endDone = true;\n        }\n    }\n    {\n        const moveSemantics = forceMoveMarkers ? 1 /* MarkerMoveSemantics.ForceMove */ : 0 /* MarkerMoveSemantics.MarkerDefined */;\n        if (!startDone && adjustMarkerBeforeColumn(nodeStart, startStickToPreviousCharacter, end, moveSemantics)) {\n            node.start = start + insertingCnt;\n            startDone = true;\n        }\n        if (!endDone && adjustMarkerBeforeColumn(nodeEnd, endStickToPreviousCharacter, end, moveSemantics)) {\n            node.end = start + insertingCnt;\n            endDone = true;\n        }\n    }\n    // Finish\n    const deltaColumn = (insertingCnt - deletingCnt);\n    if (!startDone) {\n        node.start = Math.max(0, nodeStart + deltaColumn);\n    }\n    if (!endDone) {\n        node.end = Math.max(0, nodeEnd + deltaColumn);\n    }\n    if (node.start > node.end) {\n        node.end = node.start;\n    }\n}\nfunction searchForEditing(T, start, end) {\n    // https://en.wikipedia.org/wiki/Interval_tree#Augmented_tree\n    // Now, it is known that two intervals A and B overlap only when both\n    // A.low <= B.high and A.high >= B.low. When searching the trees for\n    // nodes overlapping with a given interval, you can immediately skip:\n    //  a) all nodes to the right of nodes whose low value is past the end of the given interval.\n    //  b) all nodes that have their maximum 'high' value below the start of the given interval.\n    let node = T.root;\n    let delta = 0;\n    let nodeMaxEnd = 0;\n    let nodeStart = 0;\n    let nodeEnd = 0;\n    const result = [];\n    let resultLen = 0;\n    while (node !== SENTINEL) {\n        if (getNodeIsVisited(node)) {\n            // going up from this node\n            setNodeIsVisited(node.left, false);\n            setNodeIsVisited(node.right, false);\n            if (node === node.parent.right) {\n                delta -= node.parent.delta;\n            }\n            node = node.parent;\n            continue;\n        }\n        if (!getNodeIsVisited(node.left)) {\n            // first time seeing this node\n            nodeMaxEnd = delta + node.maxEnd;\n            if (nodeMaxEnd < start) {\n                // cover case b) from above\n                // there is no need to search this node or its children\n                setNodeIsVisited(node, true);\n                continue;\n            }\n            if (node.left !== SENTINEL) {\n                // go left\n                node = node.left;\n                continue;\n            }\n        }\n        // handle current node\n        nodeStart = delta + node.start;\n        if (nodeStart > end) {\n            // cover case a) from above\n            // there is no need to search this node or its right subtree\n            setNodeIsVisited(node, true);\n            continue;\n        }\n        nodeEnd = delta + node.end;\n        if (nodeEnd >= start) {\n            node.setCachedOffsets(nodeStart, nodeEnd, 0);\n            result[resultLen++] = node;\n        }\n        setNodeIsVisited(node, true);\n        if (node.right !== SENTINEL && !getNodeIsVisited(node.right)) {\n            // go right\n            delta += node.delta;\n            node = node.right;\n            continue;\n        }\n    }\n    setNodeIsVisited(T.root, false);\n    return result;\n}\nfunction noOverlapReplace(T, start, end, textLength) {\n    // https://en.wikipedia.org/wiki/Interval_tree#Augmented_tree\n    // Now, it is known that two intervals A and B overlap only when both\n    // A.low <= B.high and A.high >= B.low. When searching the trees for\n    // nodes overlapping with a given interval, you can immediately skip:\n    //  a) all nodes to the right of nodes whose low value is past the end of the given interval.\n    //  b) all nodes that have their maximum 'high' value below the start of the given interval.\n    let node = T.root;\n    let delta = 0;\n    let nodeMaxEnd = 0;\n    let nodeStart = 0;\n    const editDelta = (textLength - (end - start));\n    while (node !== SENTINEL) {\n        if (getNodeIsVisited(node)) {\n            // going up from this node\n            setNodeIsVisited(node.left, false);\n            setNodeIsVisited(node.right, false);\n            if (node === node.parent.right) {\n                delta -= node.parent.delta;\n            }\n            recomputeMaxEnd(node);\n            node = node.parent;\n            continue;\n        }\n        if (!getNodeIsVisited(node.left)) {\n            // first time seeing this node\n            nodeMaxEnd = delta + node.maxEnd;\n            if (nodeMaxEnd < start) {\n                // cover case b) from above\n                // there is no need to search this node or its children\n                setNodeIsVisited(node, true);\n                continue;\n            }\n            if (node.left !== SENTINEL) {\n                // go left\n                node = node.left;\n                continue;\n            }\n        }\n        // handle current node\n        nodeStart = delta + node.start;\n        if (nodeStart > end) {\n            node.start += editDelta;\n            node.end += editDelta;\n            node.delta += editDelta;\n            if (node.delta < -1073741824 /* Constants.MIN_SAFE_DELTA */ || node.delta > 1073741824 /* Constants.MAX_SAFE_DELTA */) {\n                T.requestNormalizeDelta = true;\n            }\n            // cover case a) from above\n            // there is no need to search this node or its right subtree\n            setNodeIsVisited(node, true);\n            continue;\n        }\n        setNodeIsVisited(node, true);\n        if (node.right !== SENTINEL && !getNodeIsVisited(node.right)) {\n            // go right\n            delta += node.delta;\n            node = node.right;\n            continue;\n        }\n    }\n    setNodeIsVisited(T.root, false);\n}\n//#endregion\n//#region Searching\nfunction collectNodesFromOwner(T, ownerId) {\n    let node = T.root;\n    const result = [];\n    let resultLen = 0;\n    while (node !== SENTINEL) {\n        if (getNodeIsVisited(node)) {\n            // going up from this node\n            setNodeIsVisited(node.left, false);\n            setNodeIsVisited(node.right, false);\n            node = node.parent;\n            continue;\n        }\n        if (node.left !== SENTINEL && !getNodeIsVisited(node.left)) {\n            // go left\n            node = node.left;\n            continue;\n        }\n        // handle current node\n        if (node.ownerId === ownerId) {\n            result[resultLen++] = node;\n        }\n        setNodeIsVisited(node, true);\n        if (node.right !== SENTINEL && !getNodeIsVisited(node.right)) {\n            // go right\n            node = node.right;\n            continue;\n        }\n    }\n    setNodeIsVisited(T.root, false);\n    return result;\n}\nfunction collectNodesPostOrder(T) {\n    let node = T.root;\n    const result = [];\n    let resultLen = 0;\n    while (node !== SENTINEL) {\n        if (getNodeIsVisited(node)) {\n            // going up from this node\n            setNodeIsVisited(node.left, false);\n            setNodeIsVisited(node.right, false);\n            node = node.parent;\n            continue;\n        }\n        if (node.left !== SENTINEL && !getNodeIsVisited(node.left)) {\n            // go left\n            node = node.left;\n            continue;\n        }\n        if (node.right !== SENTINEL && !getNodeIsVisited(node.right)) {\n            // go right\n            node = node.right;\n            continue;\n        }\n        // handle current node\n        result[resultLen++] = node;\n        setNodeIsVisited(node, true);\n    }\n    setNodeIsVisited(T.root, false);\n    return result;\n}\nfunction search(T, filterOwnerId, filterOutValidation, cachedVersionId, onlyMarginDecorations) {\n    let node = T.root;\n    let delta = 0;\n    let nodeStart = 0;\n    let nodeEnd = 0;\n    const result = [];\n    let resultLen = 0;\n    while (node !== SENTINEL) {\n        if (getNodeIsVisited(node)) {\n            // going up from this node\n            setNodeIsVisited(node.left, false);\n            setNodeIsVisited(node.right, false);\n            if (node === node.parent.right) {\n                delta -= node.parent.delta;\n            }\n            node = node.parent;\n            continue;\n        }\n        if (node.left !== SENTINEL && !getNodeIsVisited(node.left)) {\n            // go left\n            node = node.left;\n            continue;\n        }\n        // handle current node\n        nodeStart = delta + node.start;\n        nodeEnd = delta + node.end;\n        node.setCachedOffsets(nodeStart, nodeEnd, cachedVersionId);\n        let include = true;\n        if (filterOwnerId && node.ownerId && node.ownerId !== filterOwnerId) {\n            include = false;\n        }\n        if (filterOutValidation && getNodeIsForValidation(node)) {\n            include = false;\n        }\n        if (onlyMarginDecorations && !getNodeIsInGlyphMargin(node)) {\n            include = false;\n        }\n        if (include) {\n            result[resultLen++] = node;\n        }\n        setNodeIsVisited(node, true);\n        if (node.right !== SENTINEL && !getNodeIsVisited(node.right)) {\n            // go right\n            delta += node.delta;\n            node = node.right;\n            continue;\n        }\n    }\n    setNodeIsVisited(T.root, false);\n    return result;\n}\nfunction intervalSearch(T, intervalStart, intervalEnd, filterOwnerId, filterOutValidation, cachedVersionId, onlyMarginDecorations) {\n    // https://en.wikipedia.org/wiki/Interval_tree#Augmented_tree\n    // Now, it is known that two intervals A and B overlap only when both\n    // A.low <= B.high and A.high >= B.low. When searching the trees for\n    // nodes overlapping with a given interval, you can immediately skip:\n    //  a) all nodes to the right of nodes whose low value is past the end of the given interval.\n    //  b) all nodes that have their maximum 'high' value below the start of the given interval.\n    let node = T.root;\n    let delta = 0;\n    let nodeMaxEnd = 0;\n    let nodeStart = 0;\n    let nodeEnd = 0;\n    const result = [];\n    let resultLen = 0;\n    while (node !== SENTINEL) {\n        if (getNodeIsVisited(node)) {\n            // going up from this node\n            setNodeIsVisited(node.left, false);\n            setNodeIsVisited(node.right, false);\n            if (node === node.parent.right) {\n                delta -= node.parent.delta;\n            }\n            node = node.parent;\n            continue;\n        }\n        if (!getNodeIsVisited(node.left)) {\n            // first time seeing this node\n            nodeMaxEnd = delta + node.maxEnd;\n            if (nodeMaxEnd < intervalStart) {\n                // cover case b) from above\n                // there is no need to search this node or its children\n                setNodeIsVisited(node, true);\n                continue;\n            }\n            if (node.left !== SENTINEL) {\n                // go left\n                node = node.left;\n                continue;\n            }\n        }\n        // handle current node\n        nodeStart = delta + node.start;\n        if (nodeStart > intervalEnd) {\n            // cover case a) from above\n            // there is no need to search this node or its right subtree\n            setNodeIsVisited(node, true);\n            continue;\n        }\n        nodeEnd = delta + node.end;\n        if (nodeEnd >= intervalStart) {\n            // There is overlap\n            node.setCachedOffsets(nodeStart, nodeEnd, cachedVersionId);\n            let include = true;\n            if (filterOwnerId && node.ownerId && node.ownerId !== filterOwnerId) {\n                include = false;\n            }\n            if (filterOutValidation && getNodeIsForValidation(node)) {\n                include = false;\n            }\n            if (onlyMarginDecorations && !getNodeIsInGlyphMargin(node)) {\n                include = false;\n            }\n            if (include) {\n                result[resultLen++] = node;\n            }\n        }\n        setNodeIsVisited(node, true);\n        if (node.right !== SENTINEL && !getNodeIsVisited(node.right)) {\n            // go right\n            delta += node.delta;\n            node = node.right;\n            continue;\n        }\n    }\n    setNodeIsVisited(T.root, false);\n    return result;\n}\n//#endregion\n//#region Insertion\nfunction rbTreeInsert(T, newNode) {\n    if (T.root === SENTINEL) {\n        newNode.parent = SENTINEL;\n        newNode.left = SENTINEL;\n        newNode.right = SENTINEL;\n        setNodeColor(newNode, 0 /* NodeColor.Black */);\n        T.root = newNode;\n        return T.root;\n    }\n    treeInsert(T, newNode);\n    recomputeMaxEndWalkToRoot(newNode.parent);\n    // repair tree\n    let x = newNode;\n    while (x !== T.root && getNodeColor(x.parent) === 1 /* NodeColor.Red */) {\n        if (x.parent === x.parent.parent.left) {\n            const y = x.parent.parent.right;\n            if (getNodeColor(y) === 1 /* NodeColor.Red */) {\n                setNodeColor(x.parent, 0 /* NodeColor.Black */);\n                setNodeColor(y, 0 /* NodeColor.Black */);\n                setNodeColor(x.parent.parent, 1 /* NodeColor.Red */);\n                x = x.parent.parent;\n            }\n            else {\n                if (x === x.parent.right) {\n                    x = x.parent;\n                    leftRotate(T, x);\n                }\n                setNodeColor(x.parent, 0 /* NodeColor.Black */);\n                setNodeColor(x.parent.parent, 1 /* NodeColor.Red */);\n                rightRotate(T, x.parent.parent);\n            }\n        }\n        else {\n            const y = x.parent.parent.left;\n            if (getNodeColor(y) === 1 /* NodeColor.Red */) {\n                setNodeColor(x.parent, 0 /* NodeColor.Black */);\n                setNodeColor(y, 0 /* NodeColor.Black */);\n                setNodeColor(x.parent.parent, 1 /* NodeColor.Red */);\n                x = x.parent.parent;\n            }\n            else {\n                if (x === x.parent.left) {\n                    x = x.parent;\n                    rightRotate(T, x);\n                }\n                setNodeColor(x.parent, 0 /* NodeColor.Black */);\n                setNodeColor(x.parent.parent, 1 /* NodeColor.Red */);\n                leftRotate(T, x.parent.parent);\n            }\n        }\n    }\n    setNodeColor(T.root, 0 /* NodeColor.Black */);\n    return newNode;\n}\nfunction treeInsert(T, z) {\n    let delta = 0;\n    let x = T.root;\n    const zAbsoluteStart = z.start;\n    const zAbsoluteEnd = z.end;\n    while (true) {\n        const cmp = intervalCompare(zAbsoluteStart, zAbsoluteEnd, x.start + delta, x.end + delta);\n        if (cmp < 0) {\n            // this node should be inserted to the left\n            // => it is not affected by the node's delta\n            if (x.left === SENTINEL) {\n                z.start -= delta;\n                z.end -= delta;\n                z.maxEnd -= delta;\n                x.left = z;\n                break;\n            }\n            else {\n                x = x.left;\n            }\n        }\n        else {\n            // this node should be inserted to the right\n            // => it is not affected by the node's delta\n            if (x.right === SENTINEL) {\n                z.start -= (delta + x.delta);\n                z.end -= (delta + x.delta);\n                z.maxEnd -= (delta + x.delta);\n                x.right = z;\n                break;\n            }\n            else {\n                delta += x.delta;\n                x = x.right;\n            }\n        }\n    }\n    z.parent = x;\n    z.left = SENTINEL;\n    z.right = SENTINEL;\n    setNodeColor(z, 1 /* NodeColor.Red */);\n}\n//#endregion\n//#region Deletion\nfunction rbTreeDelete(T, z) {\n    let x;\n    let y;\n    // RB-DELETE except we don't swap z and y in case c)\n    // i.e. we always delete what's pointed at by z.\n    if (z.left === SENTINEL) {\n        x = z.right;\n        y = z;\n        // x's delta is no longer influenced by z's delta\n        x.delta += z.delta;\n        if (x.delta < -1073741824 /* Constants.MIN_SAFE_DELTA */ || x.delta > 1073741824 /* Constants.MAX_SAFE_DELTA */) {\n            T.requestNormalizeDelta = true;\n        }\n        x.start += z.delta;\n        x.end += z.delta;\n    }\n    else if (z.right === SENTINEL) {\n        x = z.left;\n        y = z;\n    }\n    else {\n        y = leftest(z.right);\n        x = y.right;\n        // y's delta is no longer influenced by z's delta,\n        // but we don't want to walk the entire right-hand-side subtree of x.\n        // we therefore maintain z's delta in y, and adjust only x\n        x.start += y.delta;\n        x.end += y.delta;\n        x.delta += y.delta;\n        if (x.delta < -1073741824 /* Constants.MIN_SAFE_DELTA */ || x.delta > 1073741824 /* Constants.MAX_SAFE_DELTA */) {\n            T.requestNormalizeDelta = true;\n        }\n        y.start += z.delta;\n        y.end += z.delta;\n        y.delta = z.delta;\n        if (y.delta < -1073741824 /* Constants.MIN_SAFE_DELTA */ || y.delta > 1073741824 /* Constants.MAX_SAFE_DELTA */) {\n            T.requestNormalizeDelta = true;\n        }\n    }\n    if (y === T.root) {\n        T.root = x;\n        setNodeColor(x, 0 /* NodeColor.Black */);\n        z.detach();\n        resetSentinel();\n        recomputeMaxEnd(x);\n        T.root.parent = SENTINEL;\n        return;\n    }\n    const yWasRed = (getNodeColor(y) === 1 /* NodeColor.Red */);\n    if (y === y.parent.left) {\n        y.parent.left = x;\n    }\n    else {\n        y.parent.right = x;\n    }\n    if (y === z) {\n        x.parent = y.parent;\n    }\n    else {\n        if (y.parent === z) {\n            x.parent = y;\n        }\n        else {\n            x.parent = y.parent;\n        }\n        y.left = z.left;\n        y.right = z.right;\n        y.parent = z.parent;\n        setNodeColor(y, getNodeColor(z));\n        if (z === T.root) {\n            T.root = y;\n        }\n        else {\n            if (z === z.parent.left) {\n                z.parent.left = y;\n            }\n            else {\n                z.parent.right = y;\n            }\n        }\n        if (y.left !== SENTINEL) {\n            y.left.parent = y;\n        }\n        if (y.right !== SENTINEL) {\n            y.right.parent = y;\n        }\n    }\n    z.detach();\n    if (yWasRed) {\n        recomputeMaxEndWalkToRoot(x.parent);\n        if (y !== z) {\n            recomputeMaxEndWalkToRoot(y);\n            recomputeMaxEndWalkToRoot(y.parent);\n        }\n        resetSentinel();\n        return;\n    }\n    recomputeMaxEndWalkToRoot(x);\n    recomputeMaxEndWalkToRoot(x.parent);\n    if (y !== z) {\n        recomputeMaxEndWalkToRoot(y);\n        recomputeMaxEndWalkToRoot(y.parent);\n    }\n    // RB-DELETE-FIXUP\n    let w;\n    while (x !== T.root && getNodeColor(x) === 0 /* NodeColor.Black */) {\n        if (x === x.parent.left) {\n            w = x.parent.right;\n            if (getNodeColor(w) === 1 /* NodeColor.Red */) {\n                setNodeColor(w, 0 /* NodeColor.Black */);\n                setNodeColor(x.parent, 1 /* NodeColor.Red */);\n                leftRotate(T, x.parent);\n                w = x.parent.right;\n            }\n            if (getNodeColor(w.left) === 0 /* NodeColor.Black */ && getNodeColor(w.right) === 0 /* NodeColor.Black */) {\n                setNodeColor(w, 1 /* NodeColor.Red */);\n                x = x.parent;\n            }\n            else {\n                if (getNodeColor(w.right) === 0 /* NodeColor.Black */) {\n                    setNodeColor(w.left, 0 /* NodeColor.Black */);\n                    setNodeColor(w, 1 /* NodeColor.Red */);\n                    rightRotate(T, w);\n                    w = x.parent.right;\n                }\n                setNodeColor(w, getNodeColor(x.parent));\n                setNodeColor(x.parent, 0 /* NodeColor.Black */);\n                setNodeColor(w.right, 0 /* NodeColor.Black */);\n                leftRotate(T, x.parent);\n                x = T.root;\n            }\n        }\n        else {\n            w = x.parent.left;\n            if (getNodeColor(w) === 1 /* NodeColor.Red */) {\n                setNodeColor(w, 0 /* NodeColor.Black */);\n                setNodeColor(x.parent, 1 /* NodeColor.Red */);\n                rightRotate(T, x.parent);\n                w = x.parent.left;\n            }\n            if (getNodeColor(w.left) === 0 /* NodeColor.Black */ && getNodeColor(w.right) === 0 /* NodeColor.Black */) {\n                setNodeColor(w, 1 /* NodeColor.Red */);\n                x = x.parent;\n            }\n            else {\n                if (getNodeColor(w.left) === 0 /* NodeColor.Black */) {\n                    setNodeColor(w.right, 0 /* NodeColor.Black */);\n                    setNodeColor(w, 1 /* NodeColor.Red */);\n                    leftRotate(T, w);\n                    w = x.parent.left;\n                }\n                setNodeColor(w, getNodeColor(x.parent));\n                setNodeColor(x.parent, 0 /* NodeColor.Black */);\n                setNodeColor(w.left, 0 /* NodeColor.Black */);\n                rightRotate(T, x.parent);\n                x = T.root;\n            }\n        }\n    }\n    setNodeColor(x, 0 /* NodeColor.Black */);\n    resetSentinel();\n}\nfunction leftest(node) {\n    while (node.left !== SENTINEL) {\n        node = node.left;\n    }\n    return node;\n}\nfunction resetSentinel() {\n    SENTINEL.parent = SENTINEL;\n    SENTINEL.delta = 0; // optional\n    SENTINEL.start = 0; // optional\n    SENTINEL.end = 0; // optional\n}\n//#endregion\n//#region Rotations\nfunction leftRotate(T, x) {\n    const y = x.right; // set y.\n    y.delta += x.delta; // y's delta is no longer influenced by x's delta\n    if (y.delta < -1073741824 /* Constants.MIN_SAFE_DELTA */ || y.delta > 1073741824 /* Constants.MAX_SAFE_DELTA */) {\n        T.requestNormalizeDelta = true;\n    }\n    y.start += x.delta;\n    y.end += x.delta;\n    x.right = y.left; // turn y's left subtree into x's right subtree.\n    if (y.left !== SENTINEL) {\n        y.left.parent = x;\n    }\n    y.parent = x.parent; // link x's parent to y.\n    if (x.parent === SENTINEL) {\n        T.root = y;\n    }\n    else if (x === x.parent.left) {\n        x.parent.left = y;\n    }\n    else {\n        x.parent.right = y;\n    }\n    y.left = x; // put x on y's left.\n    x.parent = y;\n    recomputeMaxEnd(x);\n    recomputeMaxEnd(y);\n}\nfunction rightRotate(T, y) {\n    const x = y.left;\n    y.delta -= x.delta;\n    if (y.delta < -1073741824 /* Constants.MIN_SAFE_DELTA */ || y.delta > 1073741824 /* Constants.MAX_SAFE_DELTA */) {\n        T.requestNormalizeDelta = true;\n    }\n    y.start -= x.delta;\n    y.end -= x.delta;\n    y.left = x.right;\n    if (x.right !== SENTINEL) {\n        x.right.parent = y;\n    }\n    x.parent = y.parent;\n    if (y.parent === SENTINEL) {\n        T.root = x;\n    }\n    else if (y === y.parent.right) {\n        y.parent.right = x;\n    }\n    else {\n        y.parent.left = x;\n    }\n    x.right = y;\n    y.parent = x;\n    recomputeMaxEnd(y);\n    recomputeMaxEnd(x);\n}\n//#endregion\n//#region max end computation\nfunction computeMaxEnd(node) {\n    let maxEnd = node.end;\n    if (node.left !== SENTINEL) {\n        const leftMaxEnd = node.left.maxEnd;\n        if (leftMaxEnd > maxEnd) {\n            maxEnd = leftMaxEnd;\n        }\n    }\n    if (node.right !== SENTINEL) {\n        const rightMaxEnd = node.right.maxEnd + node.delta;\n        if (rightMaxEnd > maxEnd) {\n            maxEnd = rightMaxEnd;\n        }\n    }\n    return maxEnd;\n}\nexport function recomputeMaxEnd(node) {\n    node.maxEnd = computeMaxEnd(node);\n}\nfunction recomputeMaxEndWalkToRoot(node) {\n    while (node !== SENTINEL) {\n        const maxEnd = computeMaxEnd(node);\n        if (node.maxEnd === maxEnd) {\n            // no need to go further\n            return;\n        }\n        node.maxEnd = maxEnd;\n        node = node.parent;\n    }\n}\n//#endregion\n//#region utils\nexport function intervalCompare(aStart, aEnd, bStart, bEnd) {\n    if (aStart === bStart) {\n        return aEnd - bEnd;\n    }\n    return aStart - bStart;\n}\n//#endregion\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/mirrorTextModel.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { splitLines } from '../../../base/common/strings.js';\nimport { Position } from '../core/position.js';\nimport { PrefixSumComputer } from './prefixSumComputer.js';\nexport class MirrorTextModel {\n    constructor(uri, lines, eol, versionId) {\n        this._uri = uri;\n        this._lines = lines;\n        this._eol = eol;\n        this._versionId = versionId;\n        this._lineStarts = null;\n        this._cachedTextValue = null;\n    }\n    dispose() {\n        this._lines.length = 0;\n    }\n    get version() {\n        return this._versionId;\n    }\n    getText() {\n        if (this._cachedTextValue === null) {\n            this._cachedTextValue = this._lines.join(this._eol);\n        }\n        return this._cachedTextValue;\n    }\n    onEvents(e) {\n        if (e.eol && e.eol !== this._eol) {\n            this._eol = e.eol;\n            this._lineStarts = null;\n        }\n        // Update my lines\n        const changes = e.changes;\n        for (const change of changes) {\n            this._acceptDeleteRange(change.range);\n            this._acceptInsertText(new Position(change.range.startLineNumber, change.range.startColumn), change.text);\n        }\n        this._versionId = e.versionId;\n        this._cachedTextValue = null;\n    }\n    _ensureLineStarts() {\n        if (!this._lineStarts) {\n            const eolLength = this._eol.length;\n            const linesLength = this._lines.length;\n            const lineStartValues = new Uint32Array(linesLength);\n            for (let i = 0; i < linesLength; i++) {\n                lineStartValues[i] = this._lines[i].length + eolLength;\n            }\n            this._lineStarts = new PrefixSumComputer(lineStartValues);\n        }\n    }\n    /**\n     * All changes to a line's text go through this method\n     */\n    _setLineText(lineIndex, newValue) {\n        this._lines[lineIndex] = newValue;\n        if (this._lineStarts) {\n            // update prefix sum\n            this._lineStarts.setValue(lineIndex, this._lines[lineIndex].length + this._eol.length);\n        }\n    }\n    _acceptDeleteRange(range) {\n        if (range.startLineNumber === range.endLineNumber) {\n            if (range.startColumn === range.endColumn) {\n                // Nothing to delete\n                return;\n            }\n            // Delete text on the affected line\n            this._setLineText(range.startLineNumber - 1, this._lines[range.startLineNumber - 1].substring(0, range.startColumn - 1)\n                + this._lines[range.startLineNumber - 1].substring(range.endColumn - 1));\n            return;\n        }\n        // Take remaining text on last line and append it to remaining text on first line\n        this._setLineText(range.startLineNumber - 1, this._lines[range.startLineNumber - 1].substring(0, range.startColumn - 1)\n            + this._lines[range.endLineNumber - 1].substring(range.endColumn - 1));\n        // Delete middle lines\n        this._lines.splice(range.startLineNumber, range.endLineNumber - range.startLineNumber);\n        if (this._lineStarts) {\n            // update prefix sum\n            this._lineStarts.removeValues(range.startLineNumber, range.endLineNumber - range.startLineNumber);\n        }\n    }\n    _acceptInsertText(position, insertText) {\n        if (insertText.length === 0) {\n            // Nothing to insert\n            return;\n        }\n        const insertLines = splitLines(insertText);\n        if (insertLines.length === 1) {\n            // Inserting text on one line\n            this._setLineText(position.lineNumber - 1, this._lines[position.lineNumber - 1].substring(0, position.column - 1)\n                + insertLines[0]\n                + this._lines[position.lineNumber - 1].substring(position.column - 1));\n            return;\n        }\n        // Append overflowing text from first line to the end of text to insert\n        insertLines[insertLines.length - 1] += this._lines[position.lineNumber - 1].substring(position.column - 1);\n        // Delete overflowing text from first line and insert text on first line\n        this._setLineText(position.lineNumber - 1, this._lines[position.lineNumber - 1].substring(0, position.column - 1)\n            + insertLines[0]);\n        // Insert new lines & store lengths\n        const newLengths = new Uint32Array(insertLines.length - 1);\n        for (let i = 1; i < insertLines.length; i++) {\n            this._lines.splice(position.lineNumber + i - 1, 0, insertLines[i]);\n            newLengths[i - 1] = insertLines[i].length + this._eol.length;\n        }\n        if (this._lineStarts) {\n            // update prefix sum\n            this._lineStarts.insertValues(position.lineNumber, newLengths);\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeBase.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Position } from '../../core/position.js';\nimport { Range } from '../../core/range.js';\nimport { FindMatch } from '../../model.js';\nimport { SENTINEL, TreeNode, fixInsert, leftest, rbDelete, righttest, updateTreeMetadata } from './rbTreeBase.js';\nimport { Searcher, createFindMatch, isValidMatch } from '../textModelSearch.js';\n// const lfRegex = new RegExp(/\\r\\n|\\r|\\n/g);\nconst AverageBufferSize = 65535;\nfunction createUintArray(arr) {\n    let r;\n    if (arr[arr.length - 1] < 65536) {\n        r = new Uint16Array(arr.length);\n    }\n    else {\n        r = new Uint32Array(arr.length);\n    }\n    r.set(arr, 0);\n    return r;\n}\nclass LineStarts {\n    constructor(lineStarts, cr, lf, crlf, isBasicASCII) {\n        this.lineStarts = lineStarts;\n        this.cr = cr;\n        this.lf = lf;\n        this.crlf = crlf;\n        this.isBasicASCII = isBasicASCII;\n    }\n}\nexport function createLineStartsFast(str, readonly = true) {\n    const r = [0];\n    let rLength = 1;\n    for (let i = 0, len = str.length; i < len; i++) {\n        const chr = str.charCodeAt(i);\n        if (chr === 13 /* CharCode.CarriageReturn */) {\n            if (i + 1 < len && str.charCodeAt(i + 1) === 10 /* CharCode.LineFeed */) {\n                // \\r\\n... case\n                r[rLength++] = i + 2;\n                i++; // skip \\n\n            }\n            else {\n                // \\r... case\n                r[rLength++] = i + 1;\n            }\n        }\n        else if (chr === 10 /* CharCode.LineFeed */) {\n            r[rLength++] = i + 1;\n        }\n    }\n    if (readonly) {\n        return createUintArray(r);\n    }\n    else {\n        return r;\n    }\n}\nexport function createLineStarts(r, str) {\n    r.length = 0;\n    r[0] = 0;\n    let rLength = 1;\n    let cr = 0, lf = 0, crlf = 0;\n    let isBasicASCII = true;\n    for (let i = 0, len = str.length; i < len; i++) {\n        const chr = str.charCodeAt(i);\n        if (chr === 13 /* CharCode.CarriageReturn */) {\n            if (i + 1 < len && str.charCodeAt(i + 1) === 10 /* CharCode.LineFeed */) {\n                // \\r\\n... case\n                crlf++;\n                r[rLength++] = i + 2;\n                i++; // skip \\n\n            }\n            else {\n                cr++;\n                // \\r... case\n                r[rLength++] = i + 1;\n            }\n        }\n        else if (chr === 10 /* CharCode.LineFeed */) {\n            lf++;\n            r[rLength++] = i + 1;\n        }\n        else {\n            if (isBasicASCII) {\n                if (chr !== 9 /* CharCode.Tab */ && (chr < 32 || chr > 126)) {\n                    isBasicASCII = false;\n                }\n            }\n        }\n    }\n    const result = new LineStarts(createUintArray(r), cr, lf, crlf, isBasicASCII);\n    r.length = 0;\n    return result;\n}\nexport class Piece {\n    constructor(bufferIndex, start, end, lineFeedCnt, length) {\n        this.bufferIndex = bufferIndex;\n        this.start = start;\n        this.end = end;\n        this.lineFeedCnt = lineFeedCnt;\n        this.length = length;\n    }\n}\nexport class StringBuffer {\n    constructor(buffer, lineStarts) {\n        this.buffer = buffer;\n        this.lineStarts = lineStarts;\n    }\n}\n/**\n * Readonly snapshot for piece tree.\n * In a real multiple thread environment, to make snapshot reading always work correctly, we need to\n * 1. Make TreeNode.piece immutable, then reading and writing can run in parallel.\n * 2. TreeNode/Buffers normalization should not happen during snapshot reading.\n */\nclass PieceTreeSnapshot {\n    constructor(tree, BOM) {\n        this._pieces = [];\n        this._tree = tree;\n        this._BOM = BOM;\n        this._index = 0;\n        if (tree.root !== SENTINEL) {\n            tree.iterate(tree.root, node => {\n                if (node !== SENTINEL) {\n                    this._pieces.push(node.piece);\n                }\n                return true;\n            });\n        }\n    }\n    read() {\n        if (this._pieces.length === 0) {\n            if (this._index === 0) {\n                this._index++;\n                return this._BOM;\n            }\n            else {\n                return null;\n            }\n        }\n        if (this._index > this._pieces.length - 1) {\n            return null;\n        }\n        if (this._index === 0) {\n            return this._BOM + this._tree.getPieceContent(this._pieces[this._index++]);\n        }\n        return this._tree.getPieceContent(this._pieces[this._index++]);\n    }\n}\nclass PieceTreeSearchCache {\n    constructor(limit) {\n        this._limit = limit;\n        this._cache = [];\n    }\n    get(offset) {\n        for (let i = this._cache.length - 1; i >= 0; i--) {\n            const nodePos = this._cache[i];\n            if (nodePos.nodeStartOffset <= offset && nodePos.nodeStartOffset + nodePos.node.piece.length >= offset) {\n                return nodePos;\n            }\n        }\n        return null;\n    }\n    get2(lineNumber) {\n        for (let i = this._cache.length - 1; i >= 0; i--) {\n            const nodePos = this._cache[i];\n            if (nodePos.nodeStartLineNumber && nodePos.nodeStartLineNumber < lineNumber && nodePos.nodeStartLineNumber + nodePos.node.piece.lineFeedCnt >= lineNumber) {\n                return nodePos;\n            }\n        }\n        return null;\n    }\n    set(nodePosition) {\n        if (this._cache.length >= this._limit) {\n            this._cache.shift();\n        }\n        this._cache.push(nodePosition);\n    }\n    validate(offset) {\n        let hasInvalidVal = false;\n        const tmp = this._cache;\n        for (let i = 0; i < tmp.length; i++) {\n            const nodePos = tmp[i];\n            if (nodePos.node.parent === null || nodePos.nodeStartOffset >= offset) {\n                tmp[i] = null;\n                hasInvalidVal = true;\n                continue;\n            }\n        }\n        if (hasInvalidVal) {\n            const newArr = [];\n            for (const entry of tmp) {\n                if (entry !== null) {\n                    newArr.push(entry);\n                }\n            }\n            this._cache = newArr;\n        }\n    }\n}\nexport class PieceTreeBase {\n    constructor(chunks, eol, eolNormalized) {\n        this.create(chunks, eol, eolNormalized);\n    }\n    create(chunks, eol, eolNormalized) {\n        this._buffers = [\n            new StringBuffer('', [0])\n        ];\n        this._lastChangeBufferPos = { line: 0, column: 0 };\n        this.root = SENTINEL;\n        this._lineCnt = 1;\n        this._length = 0;\n        this._EOL = eol;\n        this._EOLLength = eol.length;\n        this._EOLNormalized = eolNormalized;\n        let lastNode = null;\n        for (let i = 0, len = chunks.length; i < len; i++) {\n            if (chunks[i].buffer.length > 0) {\n                if (!chunks[i].lineStarts) {\n                    chunks[i].lineStarts = createLineStartsFast(chunks[i].buffer);\n                }\n                const piece = new Piece(i + 1, { line: 0, column: 0 }, { line: chunks[i].lineStarts.length - 1, column: chunks[i].buffer.length - chunks[i].lineStarts[chunks[i].lineStarts.length - 1] }, chunks[i].lineStarts.length - 1, chunks[i].buffer.length);\n                this._buffers.push(chunks[i]);\n                lastNode = this.rbInsertRight(lastNode, piece);\n            }\n        }\n        this._searchCache = new PieceTreeSearchCache(1);\n        this._lastVisitedLine = { lineNumber: 0, value: '' };\n        this.computeBufferMetadata();\n    }\n    normalizeEOL(eol) {\n        const averageBufferSize = AverageBufferSize;\n        const min = averageBufferSize - Math.floor(averageBufferSize / 3);\n        const max = min * 2;\n        let tempChunk = '';\n        let tempChunkLen = 0;\n        const chunks = [];\n        this.iterate(this.root, node => {\n            const str = this.getNodeContent(node);\n            const len = str.length;\n            if (tempChunkLen <= min || tempChunkLen + len < max) {\n                tempChunk += str;\n                tempChunkLen += len;\n                return true;\n            }\n            // flush anyways\n            const text = tempChunk.replace(/\\r\\n|\\r|\\n/g, eol);\n            chunks.push(new StringBuffer(text, createLineStartsFast(text)));\n            tempChunk = str;\n            tempChunkLen = len;\n            return true;\n        });\n        if (tempChunkLen > 0) {\n            const text = tempChunk.replace(/\\r\\n|\\r|\\n/g, eol);\n            chunks.push(new StringBuffer(text, createLineStartsFast(text)));\n        }\n        this.create(chunks, eol, true);\n    }\n    // #region Buffer API\n    getEOL() {\n        return this._EOL;\n    }\n    setEOL(newEOL) {\n        this._EOL = newEOL;\n        this._EOLLength = this._EOL.length;\n        this.normalizeEOL(newEOL);\n    }\n    createSnapshot(BOM) {\n        return new PieceTreeSnapshot(this, BOM);\n    }\n    getOffsetAt(lineNumber, column) {\n        let leftLen = 0; // inorder\n        let x = this.root;\n        while (x !== SENTINEL) {\n            if (x.left !== SENTINEL && x.lf_left + 1 >= lineNumber) {\n                x = x.left;\n            }\n            else if (x.lf_left + x.piece.lineFeedCnt + 1 >= lineNumber) {\n                leftLen += x.size_left;\n                // lineNumber >= 2\n                const accumualtedValInCurrentIndex = this.getAccumulatedValue(x, lineNumber - x.lf_left - 2);\n                return leftLen += accumualtedValInCurrentIndex + column - 1;\n            }\n            else {\n                lineNumber -= x.lf_left + x.piece.lineFeedCnt;\n                leftLen += x.size_left + x.piece.length;\n                x = x.right;\n            }\n        }\n        return leftLen;\n    }\n    getPositionAt(offset) {\n        offset = Math.floor(offset);\n        offset = Math.max(0, offset);\n        let x = this.root;\n        let lfCnt = 0;\n        const originalOffset = offset;\n        while (x !== SENTINEL) {\n            if (x.size_left !== 0 && x.size_left >= offset) {\n                x = x.left;\n            }\n            else if (x.size_left + x.piece.length >= offset) {\n                const out = this.getIndexOf(x, offset - x.size_left);\n                lfCnt += x.lf_left + out.index;\n                if (out.index === 0) {\n                    const lineStartOffset = this.getOffsetAt(lfCnt + 1, 1);\n                    const column = originalOffset - lineStartOffset;\n                    return new Position(lfCnt + 1, column + 1);\n                }\n                return new Position(lfCnt + 1, out.remainder + 1);\n            }\n            else {\n                offset -= x.size_left + x.piece.length;\n                lfCnt += x.lf_left + x.piece.lineFeedCnt;\n                if (x.right === SENTINEL) {\n                    // last node\n                    const lineStartOffset = this.getOffsetAt(lfCnt + 1, 1);\n                    const column = originalOffset - offset - lineStartOffset;\n                    return new Position(lfCnt + 1, column + 1);\n                }\n                else {\n                    x = x.right;\n                }\n            }\n        }\n        return new Position(1, 1);\n    }\n    getValueInRange(range, eol) {\n        if (range.startLineNumber === range.endLineNumber && range.startColumn === range.endColumn) {\n            return '';\n        }\n        const startPosition = this.nodeAt2(range.startLineNumber, range.startColumn);\n        const endPosition = this.nodeAt2(range.endLineNumber, range.endColumn);\n        const value = this.getValueInRange2(startPosition, endPosition);\n        if (eol) {\n            if (eol !== this._EOL || !this._EOLNormalized) {\n                return value.replace(/\\r\\n|\\r|\\n/g, eol);\n            }\n            if (eol === this.getEOL() && this._EOLNormalized) {\n                if (eol === '\\r\\n') {\n                }\n                return value;\n            }\n            return value.replace(/\\r\\n|\\r|\\n/g, eol);\n        }\n        return value;\n    }\n    getValueInRange2(startPosition, endPosition) {\n        if (startPosition.node === endPosition.node) {\n            const node = startPosition.node;\n            const buffer = this._buffers[node.piece.bufferIndex].buffer;\n            const startOffset = this.offsetInBuffer(node.piece.bufferIndex, node.piece.start);\n            return buffer.substring(startOffset + startPosition.remainder, startOffset + endPosition.remainder);\n        }\n        let x = startPosition.node;\n        const buffer = this._buffers[x.piece.bufferIndex].buffer;\n        const startOffset = this.offsetInBuffer(x.piece.bufferIndex, x.piece.start);\n        let ret = buffer.substring(startOffset + startPosition.remainder, startOffset + x.piece.length);\n        x = x.next();\n        while (x !== SENTINEL) {\n            const buffer = this._buffers[x.piece.bufferIndex].buffer;\n            const startOffset = this.offsetInBuffer(x.piece.bufferIndex, x.piece.start);\n            if (x === endPosition.node) {\n                ret += buffer.substring(startOffset, startOffset + endPosition.remainder);\n                break;\n            }\n            else {\n                ret += buffer.substr(startOffset, x.piece.length);\n            }\n            x = x.next();\n        }\n        return ret;\n    }\n    getLinesContent() {\n        const lines = [];\n        let linesLength = 0;\n        let currentLine = '';\n        let danglingCR = false;\n        this.iterate(this.root, node => {\n            if (node === SENTINEL) {\n                return true;\n            }\n            const piece = node.piece;\n            let pieceLength = piece.length;\n            if (pieceLength === 0) {\n                return true;\n            }\n            const buffer = this._buffers[piece.bufferIndex].buffer;\n            const lineStarts = this._buffers[piece.bufferIndex].lineStarts;\n            const pieceStartLine = piece.start.line;\n            const pieceEndLine = piece.end.line;\n            let pieceStartOffset = lineStarts[pieceStartLine] + piece.start.column;\n            if (danglingCR) {\n                if (buffer.charCodeAt(pieceStartOffset) === 10 /* CharCode.LineFeed */) {\n                    // pretend the \\n was in the previous piece..\n                    pieceStartOffset++;\n                    pieceLength--;\n                }\n                lines[linesLength++] = currentLine;\n                currentLine = '';\n                danglingCR = false;\n                if (pieceLength === 0) {\n                    return true;\n                }\n            }\n            if (pieceStartLine === pieceEndLine) {\n                // this piece has no new lines\n                if (!this._EOLNormalized && buffer.charCodeAt(pieceStartOffset + pieceLength - 1) === 13 /* CharCode.CarriageReturn */) {\n                    danglingCR = true;\n                    currentLine += buffer.substr(pieceStartOffset, pieceLength - 1);\n                }\n                else {\n                    currentLine += buffer.substr(pieceStartOffset, pieceLength);\n                }\n                return true;\n            }\n            // add the text before the first line start in this piece\n            currentLine += (this._EOLNormalized\n                ? buffer.substring(pieceStartOffset, Math.max(pieceStartOffset, lineStarts[pieceStartLine + 1] - this._EOLLength))\n                : buffer.substring(pieceStartOffset, lineStarts[pieceStartLine + 1]).replace(/(\\r\\n|\\r|\\n)$/, ''));\n            lines[linesLength++] = currentLine;\n            for (let line = pieceStartLine + 1; line < pieceEndLine; line++) {\n                currentLine = (this._EOLNormalized\n                    ? buffer.substring(lineStarts[line], lineStarts[line + 1] - this._EOLLength)\n                    : buffer.substring(lineStarts[line], lineStarts[line + 1]).replace(/(\\r\\n|\\r|\\n)$/, ''));\n                lines[linesLength++] = currentLine;\n            }\n            if (!this._EOLNormalized && buffer.charCodeAt(lineStarts[pieceEndLine] + piece.end.column - 1) === 13 /* CharCode.CarriageReturn */) {\n                danglingCR = true;\n                if (piece.end.column === 0) {\n                    // The last line ended with a \\r, let's undo the push, it will be pushed by next iteration\n                    linesLength--;\n                }\n                else {\n                    currentLine = buffer.substr(lineStarts[pieceEndLine], piece.end.column - 1);\n                }\n            }\n            else {\n                currentLine = buffer.substr(lineStarts[pieceEndLine], piece.end.column);\n            }\n            return true;\n        });\n        if (danglingCR) {\n            lines[linesLength++] = currentLine;\n            currentLine = '';\n        }\n        lines[linesLength++] = currentLine;\n        return lines;\n    }\n    getLength() {\n        return this._length;\n    }\n    getLineCount() {\n        return this._lineCnt;\n    }\n    getLineContent(lineNumber) {\n        if (this._lastVisitedLine.lineNumber === lineNumber) {\n            return this._lastVisitedLine.value;\n        }\n        this._lastVisitedLine.lineNumber = lineNumber;\n        if (lineNumber === this._lineCnt) {\n            this._lastVisitedLine.value = this.getLineRawContent(lineNumber);\n        }\n        else if (this._EOLNormalized) {\n            this._lastVisitedLine.value = this.getLineRawContent(lineNumber, this._EOLLength);\n        }\n        else {\n            this._lastVisitedLine.value = this.getLineRawContent(lineNumber).replace(/(\\r\\n|\\r|\\n)$/, '');\n        }\n        return this._lastVisitedLine.value;\n    }\n    _getCharCode(nodePos) {\n        if (nodePos.remainder === nodePos.node.piece.length) {\n            // the char we want to fetch is at the head of next node.\n            const matchingNode = nodePos.node.next();\n            if (!matchingNode) {\n                return 0;\n            }\n            const buffer = this._buffers[matchingNode.piece.bufferIndex];\n            const startOffset = this.offsetInBuffer(matchingNode.piece.bufferIndex, matchingNode.piece.start);\n            return buffer.buffer.charCodeAt(startOffset);\n        }\n        else {\n            const buffer = this._buffers[nodePos.node.piece.bufferIndex];\n            const startOffset = this.offsetInBuffer(nodePos.node.piece.bufferIndex, nodePos.node.piece.start);\n            const targetOffset = startOffset + nodePos.remainder;\n            return buffer.buffer.charCodeAt(targetOffset);\n        }\n    }\n    getLineCharCode(lineNumber, index) {\n        const nodePos = this.nodeAt2(lineNumber, index + 1);\n        return this._getCharCode(nodePos);\n    }\n    getLineLength(lineNumber) {\n        if (lineNumber === this.getLineCount()) {\n            const startOffset = this.getOffsetAt(lineNumber, 1);\n            return this.getLength() - startOffset;\n        }\n        return this.getOffsetAt(lineNumber + 1, 1) - this.getOffsetAt(lineNumber, 1) - this._EOLLength;\n    }\n    findMatchesInNode(node, searcher, startLineNumber, startColumn, startCursor, endCursor, searchData, captureMatches, limitResultCount, resultLen, result) {\n        const buffer = this._buffers[node.piece.bufferIndex];\n        const startOffsetInBuffer = this.offsetInBuffer(node.piece.bufferIndex, node.piece.start);\n        const start = this.offsetInBuffer(node.piece.bufferIndex, startCursor);\n        const end = this.offsetInBuffer(node.piece.bufferIndex, endCursor);\n        let m;\n        // Reset regex to search from the beginning\n        const ret = { line: 0, column: 0 };\n        let searchText;\n        let offsetInBuffer;\n        if (searcher._wordSeparators) {\n            searchText = buffer.buffer.substring(start, end);\n            offsetInBuffer = (offset) => offset + start;\n            searcher.reset(0);\n        }\n        else {\n            searchText = buffer.buffer;\n            offsetInBuffer = (offset) => offset;\n            searcher.reset(start);\n        }\n        do {\n            m = searcher.next(searchText);\n            if (m) {\n                if (offsetInBuffer(m.index) >= end) {\n                    return resultLen;\n                }\n                this.positionInBuffer(node, offsetInBuffer(m.index) - startOffsetInBuffer, ret);\n                const lineFeedCnt = this.getLineFeedCnt(node.piece.bufferIndex, startCursor, ret);\n                const retStartColumn = ret.line === startCursor.line ? ret.column - startCursor.column + startColumn : ret.column + 1;\n                const retEndColumn = retStartColumn + m[0].length;\n                result[resultLen++] = createFindMatch(new Range(startLineNumber + lineFeedCnt, retStartColumn, startLineNumber + lineFeedCnt, retEndColumn), m, captureMatches);\n                if (offsetInBuffer(m.index) + m[0].length >= end) {\n                    return resultLen;\n                }\n                if (resultLen >= limitResultCount) {\n                    return resultLen;\n                }\n            }\n        } while (m);\n        return resultLen;\n    }\n    findMatchesLineByLine(searchRange, searchData, captureMatches, limitResultCount) {\n        const result = [];\n        let resultLen = 0;\n        const searcher = new Searcher(searchData.wordSeparators, searchData.regex);\n        let startPosition = this.nodeAt2(searchRange.startLineNumber, searchRange.startColumn);\n        if (startPosition === null) {\n            return [];\n        }\n        const endPosition = this.nodeAt2(searchRange.endLineNumber, searchRange.endColumn);\n        if (endPosition === null) {\n            return [];\n        }\n        let start = this.positionInBuffer(startPosition.node, startPosition.remainder);\n        const end = this.positionInBuffer(endPosition.node, endPosition.remainder);\n        if (startPosition.node === endPosition.node) {\n            this.findMatchesInNode(startPosition.node, searcher, searchRange.startLineNumber, searchRange.startColumn, start, end, searchData, captureMatches, limitResultCount, resultLen, result);\n            return result;\n        }\n        let startLineNumber = searchRange.startLineNumber;\n        let currentNode = startPosition.node;\n        while (currentNode !== endPosition.node) {\n            const lineBreakCnt = this.getLineFeedCnt(currentNode.piece.bufferIndex, start, currentNode.piece.end);\n            if (lineBreakCnt >= 1) {\n                // last line break position\n                const lineStarts = this._buffers[currentNode.piece.bufferIndex].lineStarts;\n                const startOffsetInBuffer = this.offsetInBuffer(currentNode.piece.bufferIndex, currentNode.piece.start);\n                const nextLineStartOffset = lineStarts[start.line + lineBreakCnt];\n                const startColumn = startLineNumber === searchRange.startLineNumber ? searchRange.startColumn : 1;\n                resultLen = this.findMatchesInNode(currentNode, searcher, startLineNumber, startColumn, start, this.positionInBuffer(currentNode, nextLineStartOffset - startOffsetInBuffer), searchData, captureMatches, limitResultCount, resultLen, result);\n                if (resultLen >= limitResultCount) {\n                    return result;\n                }\n                startLineNumber += lineBreakCnt;\n            }\n            const startColumn = startLineNumber === searchRange.startLineNumber ? searchRange.startColumn - 1 : 0;\n            // search for the remaining content\n            if (startLineNumber === searchRange.endLineNumber) {\n                const text = this.getLineContent(startLineNumber).substring(startColumn, searchRange.endColumn - 1);\n                resultLen = this._findMatchesInLine(searchData, searcher, text, searchRange.endLineNumber, startColumn, resultLen, result, captureMatches, limitResultCount);\n                return result;\n            }\n            resultLen = this._findMatchesInLine(searchData, searcher, this.getLineContent(startLineNumber).substr(startColumn), startLineNumber, startColumn, resultLen, result, captureMatches, limitResultCount);\n            if (resultLen >= limitResultCount) {\n                return result;\n            }\n            startLineNumber++;\n            startPosition = this.nodeAt2(startLineNumber, 1);\n            currentNode = startPosition.node;\n            start = this.positionInBuffer(startPosition.node, startPosition.remainder);\n        }\n        if (startLineNumber === searchRange.endLineNumber) {\n            const startColumn = startLineNumber === searchRange.startLineNumber ? searchRange.startColumn - 1 : 0;\n            const text = this.getLineContent(startLineNumber).substring(startColumn, searchRange.endColumn - 1);\n            resultLen = this._findMatchesInLine(searchData, searcher, text, searchRange.endLineNumber, startColumn, resultLen, result, captureMatches, limitResultCount);\n            return result;\n        }\n        const startColumn = startLineNumber === searchRange.startLineNumber ? searchRange.startColumn : 1;\n        resultLen = this.findMatchesInNode(endPosition.node, searcher, startLineNumber, startColumn, start, end, searchData, captureMatches, limitResultCount, resultLen, result);\n        return result;\n    }\n    _findMatchesInLine(searchData, searcher, text, lineNumber, deltaOffset, resultLen, result, captureMatches, limitResultCount) {\n        const wordSeparators = searchData.wordSeparators;\n        if (!captureMatches && searchData.simpleSearch) {\n            const searchString = searchData.simpleSearch;\n            const searchStringLen = searchString.length;\n            const textLength = text.length;\n            let lastMatchIndex = -searchStringLen;\n            while ((lastMatchIndex = text.indexOf(searchString, lastMatchIndex + searchStringLen)) !== -1) {\n                if (!wordSeparators || isValidMatch(wordSeparators, text, textLength, lastMatchIndex, searchStringLen)) {\n                    result[resultLen++] = new FindMatch(new Range(lineNumber, lastMatchIndex + 1 + deltaOffset, lineNumber, lastMatchIndex + 1 + searchStringLen + deltaOffset), null);\n                    if (resultLen >= limitResultCount) {\n                        return resultLen;\n                    }\n                }\n            }\n            return resultLen;\n        }\n        let m;\n        // Reset regex to search from the beginning\n        searcher.reset(0);\n        do {\n            m = searcher.next(text);\n            if (m) {\n                result[resultLen++] = createFindMatch(new Range(lineNumber, m.index + 1 + deltaOffset, lineNumber, m.index + 1 + m[0].length + deltaOffset), m, captureMatches);\n                if (resultLen >= limitResultCount) {\n                    return resultLen;\n                }\n            }\n        } while (m);\n        return resultLen;\n    }\n    // #endregion\n    // #region Piece Table\n    insert(offset, value, eolNormalized = false) {\n        this._EOLNormalized = this._EOLNormalized && eolNormalized;\n        this._lastVisitedLine.lineNumber = 0;\n        this._lastVisitedLine.value = '';\n        if (this.root !== SENTINEL) {\n            const { node, remainder, nodeStartOffset } = this.nodeAt(offset);\n            const piece = node.piece;\n            const bufferIndex = piece.bufferIndex;\n            const insertPosInBuffer = this.positionInBuffer(node, remainder);\n            if (node.piece.bufferIndex === 0 &&\n                piece.end.line === this._lastChangeBufferPos.line &&\n                piece.end.column === this._lastChangeBufferPos.column &&\n                (nodeStartOffset + piece.length === offset) &&\n                value.length < AverageBufferSize) {\n                // changed buffer\n                this.appendToNode(node, value);\n                this.computeBufferMetadata();\n                return;\n            }\n            if (nodeStartOffset === offset) {\n                this.insertContentToNodeLeft(value, node);\n                this._searchCache.validate(offset);\n            }\n            else if (nodeStartOffset + node.piece.length > offset) {\n                // we are inserting into the middle of a node.\n                const nodesToDel = [];\n                let newRightPiece = new Piece(piece.bufferIndex, insertPosInBuffer, piece.end, this.getLineFeedCnt(piece.bufferIndex, insertPosInBuffer, piece.end), this.offsetInBuffer(bufferIndex, piece.end) - this.offsetInBuffer(bufferIndex, insertPosInBuffer));\n                if (this.shouldCheckCRLF() && this.endWithCR(value)) {\n                    const headOfRight = this.nodeCharCodeAt(node, remainder);\n                    if (headOfRight === 10 /** \\n */) {\n                        const newStart = { line: newRightPiece.start.line + 1, column: 0 };\n                        newRightPiece = new Piece(newRightPiece.bufferIndex, newStart, newRightPiece.end, this.getLineFeedCnt(newRightPiece.bufferIndex, newStart, newRightPiece.end), newRightPiece.length - 1);\n                        value += '\\n';\n                    }\n                }\n                // reuse node for content before insertion point.\n                if (this.shouldCheckCRLF() && this.startWithLF(value)) {\n                    const tailOfLeft = this.nodeCharCodeAt(node, remainder - 1);\n                    if (tailOfLeft === 13 /** \\r */) {\n                        const previousPos = this.positionInBuffer(node, remainder - 1);\n                        this.deleteNodeTail(node, previousPos);\n                        value = '\\r' + value;\n                        if (node.piece.length === 0) {\n                            nodesToDel.push(node);\n                        }\n                    }\n                    else {\n                        this.deleteNodeTail(node, insertPosInBuffer);\n                    }\n                }\n                else {\n                    this.deleteNodeTail(node, insertPosInBuffer);\n                }\n                const newPieces = this.createNewPieces(value);\n                if (newRightPiece.length > 0) {\n                    this.rbInsertRight(node, newRightPiece);\n                }\n                let tmpNode = node;\n                for (let k = 0; k < newPieces.length; k++) {\n                    tmpNode = this.rbInsertRight(tmpNode, newPieces[k]);\n                }\n                this.deleteNodes(nodesToDel);\n            }\n            else {\n                this.insertContentToNodeRight(value, node);\n            }\n        }\n        else {\n            // insert new node\n            const pieces = this.createNewPieces(value);\n            let node = this.rbInsertLeft(null, pieces[0]);\n            for (let k = 1; k < pieces.length; k++) {\n                node = this.rbInsertRight(node, pieces[k]);\n            }\n        }\n        // todo, this is too brutal. Total line feed count should be updated the same way as lf_left.\n        this.computeBufferMetadata();\n    }\n    delete(offset, cnt) {\n        this._lastVisitedLine.lineNumber = 0;\n        this._lastVisitedLine.value = '';\n        if (cnt <= 0 || this.root === SENTINEL) {\n            return;\n        }\n        const startPosition = this.nodeAt(offset);\n        const endPosition = this.nodeAt(offset + cnt);\n        const startNode = startPosition.node;\n        const endNode = endPosition.node;\n        if (startNode === endNode) {\n            const startSplitPosInBuffer = this.positionInBuffer(startNode, startPosition.remainder);\n            const endSplitPosInBuffer = this.positionInBuffer(startNode, endPosition.remainder);\n            if (startPosition.nodeStartOffset === offset) {\n                if (cnt === startNode.piece.length) { // delete node\n                    const next = startNode.next();\n                    rbDelete(this, startNode);\n                    this.validateCRLFWithPrevNode(next);\n                    this.computeBufferMetadata();\n                    return;\n                }\n                this.deleteNodeHead(startNode, endSplitPosInBuffer);\n                this._searchCache.validate(offset);\n                this.validateCRLFWithPrevNode(startNode);\n                this.computeBufferMetadata();\n                return;\n            }\n            if (startPosition.nodeStartOffset + startNode.piece.length === offset + cnt) {\n                this.deleteNodeTail(startNode, startSplitPosInBuffer);\n                this.validateCRLFWithNextNode(startNode);\n                this.computeBufferMetadata();\n                return;\n            }\n            // delete content in the middle, this node will be splitted to nodes\n            this.shrinkNode(startNode, startSplitPosInBuffer, endSplitPosInBuffer);\n            this.computeBufferMetadata();\n            return;\n        }\n        const nodesToDel = [];\n        const startSplitPosInBuffer = this.positionInBuffer(startNode, startPosition.remainder);\n        this.deleteNodeTail(startNode, startSplitPosInBuffer);\n        this._searchCache.validate(offset);\n        if (startNode.piece.length === 0) {\n            nodesToDel.push(startNode);\n        }\n        // update last touched node\n        const endSplitPosInBuffer = this.positionInBuffer(endNode, endPosition.remainder);\n        this.deleteNodeHead(endNode, endSplitPosInBuffer);\n        if (endNode.piece.length === 0) {\n            nodesToDel.push(endNode);\n        }\n        // delete nodes in between\n        const secondNode = startNode.next();\n        for (let node = secondNode; node !== SENTINEL && node !== endNode; node = node.next()) {\n            nodesToDel.push(node);\n        }\n        const prev = startNode.piece.length === 0 ? startNode.prev() : startNode;\n        this.deleteNodes(nodesToDel);\n        this.validateCRLFWithNextNode(prev);\n        this.computeBufferMetadata();\n    }\n    insertContentToNodeLeft(value, node) {\n        // we are inserting content to the beginning of node\n        const nodesToDel = [];\n        if (this.shouldCheckCRLF() && this.endWithCR(value) && this.startWithLF(node)) {\n            // move `\\n` to new node.\n            const piece = node.piece;\n            const newStart = { line: piece.start.line + 1, column: 0 };\n            const nPiece = new Piece(piece.bufferIndex, newStart, piece.end, this.getLineFeedCnt(piece.bufferIndex, newStart, piece.end), piece.length - 1);\n            node.piece = nPiece;\n            value += '\\n';\n            updateTreeMetadata(this, node, -1, -1);\n            if (node.piece.length === 0) {\n                nodesToDel.push(node);\n            }\n        }\n        const newPieces = this.createNewPieces(value);\n        let newNode = this.rbInsertLeft(node, newPieces[newPieces.length - 1]);\n        for (let k = newPieces.length - 2; k >= 0; k--) {\n            newNode = this.rbInsertLeft(newNode, newPieces[k]);\n        }\n        this.validateCRLFWithPrevNode(newNode);\n        this.deleteNodes(nodesToDel);\n    }\n    insertContentToNodeRight(value, node) {\n        // we are inserting to the right of this node.\n        if (this.adjustCarriageReturnFromNext(value, node)) {\n            // move \\n to the new node.\n            value += '\\n';\n        }\n        const newPieces = this.createNewPieces(value);\n        const newNode = this.rbInsertRight(node, newPieces[0]);\n        let tmpNode = newNode;\n        for (let k = 1; k < newPieces.length; k++) {\n            tmpNode = this.rbInsertRight(tmpNode, newPieces[k]);\n        }\n        this.validateCRLFWithPrevNode(newNode);\n    }\n    positionInBuffer(node, remainder, ret) {\n        const piece = node.piece;\n        const bufferIndex = node.piece.bufferIndex;\n        const lineStarts = this._buffers[bufferIndex].lineStarts;\n        const startOffset = lineStarts[piece.start.line] + piece.start.column;\n        const offset = startOffset + remainder;\n        // binary search offset between startOffset and endOffset\n        let low = piece.start.line;\n        let high = piece.end.line;\n        let mid = 0;\n        let midStop = 0;\n        let midStart = 0;\n        while (low <= high) {\n            mid = low + ((high - low) / 2) | 0;\n            midStart = lineStarts[mid];\n            if (mid === high) {\n                break;\n            }\n            midStop = lineStarts[mid + 1];\n            if (offset < midStart) {\n                high = mid - 1;\n            }\n            else if (offset >= midStop) {\n                low = mid + 1;\n            }\n            else {\n                break;\n            }\n        }\n        if (ret) {\n            ret.line = mid;\n            ret.column = offset - midStart;\n            return null;\n        }\n        return {\n            line: mid,\n            column: offset - midStart\n        };\n    }\n    getLineFeedCnt(bufferIndex, start, end) {\n        // we don't need to worry about start: abc\\r|\\n, or abc|\\r, or abc|\\n, or abc|\\r\\n doesn't change the fact that, there is one line break after start.\n        // now let's take care of end: abc\\r|\\n, if end is in between \\r and \\n, we need to add line feed count by 1\n        if (end.column === 0) {\n            return end.line - start.line;\n        }\n        const lineStarts = this._buffers[bufferIndex].lineStarts;\n        if (end.line === lineStarts.length - 1) { // it means, there is no \\n after end, otherwise, there will be one more lineStart.\n            return end.line - start.line;\n        }\n        const nextLineStartOffset = lineStarts[end.line + 1];\n        const endOffset = lineStarts[end.line] + end.column;\n        if (nextLineStartOffset > endOffset + 1) { // there are more than 1 character after end, which means it can't be \\n\n            return end.line - start.line;\n        }\n        // endOffset + 1 === nextLineStartOffset\n        // character at endOffset is \\n, so we check the character before first\n        // if character at endOffset is \\r, end.column is 0 and we can't get here.\n        const previousCharOffset = endOffset - 1; // end.column > 0 so it's okay.\n        const buffer = this._buffers[bufferIndex].buffer;\n        if (buffer.charCodeAt(previousCharOffset) === 13) {\n            return end.line - start.line + 1;\n        }\n        else {\n            return end.line - start.line;\n        }\n    }\n    offsetInBuffer(bufferIndex, cursor) {\n        const lineStarts = this._buffers[bufferIndex].lineStarts;\n        return lineStarts[cursor.line] + cursor.column;\n    }\n    deleteNodes(nodes) {\n        for (let i = 0; i < nodes.length; i++) {\n            rbDelete(this, nodes[i]);\n        }\n    }\n    createNewPieces(text) {\n        if (text.length > AverageBufferSize) {\n            // the content is large, operations like substring, charCode becomes slow\n            // so here we split it into smaller chunks, just like what we did for CR/LF normalization\n            const newPieces = [];\n            while (text.length > AverageBufferSize) {\n                const lastChar = text.charCodeAt(AverageBufferSize - 1);\n                let splitText;\n                if (lastChar === 13 /* CharCode.CarriageReturn */ || (lastChar >= 0xD800 && lastChar <= 0xDBFF)) {\n                    // last character is \\r or a high surrogate => keep it back\n                    splitText = text.substring(0, AverageBufferSize - 1);\n                    text = text.substring(AverageBufferSize - 1);\n                }\n                else {\n                    splitText = text.substring(0, AverageBufferSize);\n                    text = text.substring(AverageBufferSize);\n                }\n                const lineStarts = createLineStartsFast(splitText);\n                newPieces.push(new Piece(this._buffers.length, /* buffer index */ { line: 0, column: 0 }, { line: lineStarts.length - 1, column: splitText.length - lineStarts[lineStarts.length - 1] }, lineStarts.length - 1, splitText.length));\n                this._buffers.push(new StringBuffer(splitText, lineStarts));\n            }\n            const lineStarts = createLineStartsFast(text);\n            newPieces.push(new Piece(this._buffers.length, /* buffer index */ { line: 0, column: 0 }, { line: lineStarts.length - 1, column: text.length - lineStarts[lineStarts.length - 1] }, lineStarts.length - 1, text.length));\n            this._buffers.push(new StringBuffer(text, lineStarts));\n            return newPieces;\n        }\n        let startOffset = this._buffers[0].buffer.length;\n        const lineStarts = createLineStartsFast(text, false);\n        let start = this._lastChangeBufferPos;\n        if (this._buffers[0].lineStarts[this._buffers[0].lineStarts.length - 1] === startOffset\n            && startOffset !== 0\n            && this.startWithLF(text)\n            && this.endWithCR(this._buffers[0].buffer) // todo, we can check this._lastChangeBufferPos's column as it's the last one\n        ) {\n            this._lastChangeBufferPos = { line: this._lastChangeBufferPos.line, column: this._lastChangeBufferPos.column + 1 };\n            start = this._lastChangeBufferPos;\n            for (let i = 0; i < lineStarts.length; i++) {\n                lineStarts[i] += startOffset + 1;\n            }\n            this._buffers[0].lineStarts = this._buffers[0].lineStarts.concat(lineStarts.slice(1));\n            this._buffers[0].buffer += '_' + text;\n            startOffset += 1;\n        }\n        else {\n            if (startOffset !== 0) {\n                for (let i = 0; i < lineStarts.length; i++) {\n                    lineStarts[i] += startOffset;\n                }\n            }\n            this._buffers[0].lineStarts = this._buffers[0].lineStarts.concat(lineStarts.slice(1));\n            this._buffers[0].buffer += text;\n        }\n        const endOffset = this._buffers[0].buffer.length;\n        const endIndex = this._buffers[0].lineStarts.length - 1;\n        const endColumn = endOffset - this._buffers[0].lineStarts[endIndex];\n        const endPos = { line: endIndex, column: endColumn };\n        const newPiece = new Piece(0, /** todo@peng */ start, endPos, this.getLineFeedCnt(0, start, endPos), endOffset - startOffset);\n        this._lastChangeBufferPos = endPos;\n        return [newPiece];\n    }\n    getLineRawContent(lineNumber, endOffset = 0) {\n        let x = this.root;\n        let ret = '';\n        const cache = this._searchCache.get2(lineNumber);\n        if (cache) {\n            x = cache.node;\n            const prevAccumulatedValue = this.getAccumulatedValue(x, lineNumber - cache.nodeStartLineNumber - 1);\n            const buffer = this._buffers[x.piece.bufferIndex].buffer;\n            const startOffset = this.offsetInBuffer(x.piece.bufferIndex, x.piece.start);\n            if (cache.nodeStartLineNumber + x.piece.lineFeedCnt === lineNumber) {\n                ret = buffer.substring(startOffset + prevAccumulatedValue, startOffset + x.piece.length);\n            }\n            else {\n                const accumulatedValue = this.getAccumulatedValue(x, lineNumber - cache.nodeStartLineNumber);\n                return buffer.substring(startOffset + prevAccumulatedValue, startOffset + accumulatedValue - endOffset);\n            }\n        }\n        else {\n            let nodeStartOffset = 0;\n            const originalLineNumber = lineNumber;\n            while (x !== SENTINEL) {\n                if (x.left !== SENTINEL && x.lf_left >= lineNumber - 1) {\n                    x = x.left;\n                }\n                else if (x.lf_left + x.piece.lineFeedCnt > lineNumber - 1) {\n                    const prevAccumulatedValue = this.getAccumulatedValue(x, lineNumber - x.lf_left - 2);\n                    const accumulatedValue = this.getAccumulatedValue(x, lineNumber - x.lf_left - 1);\n                    const buffer = this._buffers[x.piece.bufferIndex].buffer;\n                    const startOffset = this.offsetInBuffer(x.piece.bufferIndex, x.piece.start);\n                    nodeStartOffset += x.size_left;\n                    this._searchCache.set({\n                        node: x,\n                        nodeStartOffset,\n                        nodeStartLineNumber: originalLineNumber - (lineNumber - 1 - x.lf_left)\n                    });\n                    return buffer.substring(startOffset + prevAccumulatedValue, startOffset + accumulatedValue - endOffset);\n                }\n                else if (x.lf_left + x.piece.lineFeedCnt === lineNumber - 1) {\n                    const prevAccumulatedValue = this.getAccumulatedValue(x, lineNumber - x.lf_left - 2);\n                    const buffer = this._buffers[x.piece.bufferIndex].buffer;\n                    const startOffset = this.offsetInBuffer(x.piece.bufferIndex, x.piece.start);\n                    ret = buffer.substring(startOffset + prevAccumulatedValue, startOffset + x.piece.length);\n                    break;\n                }\n                else {\n                    lineNumber -= x.lf_left + x.piece.lineFeedCnt;\n                    nodeStartOffset += x.size_left + x.piece.length;\n                    x = x.right;\n                }\n            }\n        }\n        // search in order, to find the node contains end column\n        x = x.next();\n        while (x !== SENTINEL) {\n            const buffer = this._buffers[x.piece.bufferIndex].buffer;\n            if (x.piece.lineFeedCnt > 0) {\n                const accumulatedValue = this.getAccumulatedValue(x, 0);\n                const startOffset = this.offsetInBuffer(x.piece.bufferIndex, x.piece.start);\n                ret += buffer.substring(startOffset, startOffset + accumulatedValue - endOffset);\n                return ret;\n            }\n            else {\n                const startOffset = this.offsetInBuffer(x.piece.bufferIndex, x.piece.start);\n                ret += buffer.substr(startOffset, x.piece.length);\n            }\n            x = x.next();\n        }\n        return ret;\n    }\n    computeBufferMetadata() {\n        let x = this.root;\n        let lfCnt = 1;\n        let len = 0;\n        while (x !== SENTINEL) {\n            lfCnt += x.lf_left + x.piece.lineFeedCnt;\n            len += x.size_left + x.piece.length;\n            x = x.right;\n        }\n        this._lineCnt = lfCnt;\n        this._length = len;\n        this._searchCache.validate(this._length);\n    }\n    // #region node operations\n    getIndexOf(node, accumulatedValue) {\n        const piece = node.piece;\n        const pos = this.positionInBuffer(node, accumulatedValue);\n        const lineCnt = pos.line - piece.start.line;\n        if (this.offsetInBuffer(piece.bufferIndex, piece.end) - this.offsetInBuffer(piece.bufferIndex, piece.start) === accumulatedValue) {\n            // we are checking the end of this node, so a CRLF check is necessary.\n            const realLineCnt = this.getLineFeedCnt(node.piece.bufferIndex, piece.start, pos);\n            if (realLineCnt !== lineCnt) {\n                // aha yes, CRLF\n                return { index: realLineCnt, remainder: 0 };\n            }\n        }\n        return { index: lineCnt, remainder: pos.column };\n    }\n    getAccumulatedValue(node, index) {\n        if (index < 0) {\n            return 0;\n        }\n        const piece = node.piece;\n        const lineStarts = this._buffers[piece.bufferIndex].lineStarts;\n        const expectedLineStartIndex = piece.start.line + index + 1;\n        if (expectedLineStartIndex > piece.end.line) {\n            return lineStarts[piece.end.line] + piece.end.column - lineStarts[piece.start.line] - piece.start.column;\n        }\n        else {\n            return lineStarts[expectedLineStartIndex] - lineStarts[piece.start.line] - piece.start.column;\n        }\n    }\n    deleteNodeTail(node, pos) {\n        const piece = node.piece;\n        const originalLFCnt = piece.lineFeedCnt;\n        const originalEndOffset = this.offsetInBuffer(piece.bufferIndex, piece.end);\n        const newEnd = pos;\n        const newEndOffset = this.offsetInBuffer(piece.bufferIndex, newEnd);\n        const newLineFeedCnt = this.getLineFeedCnt(piece.bufferIndex, piece.start, newEnd);\n        const lf_delta = newLineFeedCnt - originalLFCnt;\n        const size_delta = newEndOffset - originalEndOffset;\n        const newLength = piece.length + size_delta;\n        node.piece = new Piece(piece.bufferIndex, piece.start, newEnd, newLineFeedCnt, newLength);\n        updateTreeMetadata(this, node, size_delta, lf_delta);\n    }\n    deleteNodeHead(node, pos) {\n        const piece = node.piece;\n        const originalLFCnt = piece.lineFeedCnt;\n        const originalStartOffset = this.offsetInBuffer(piece.bufferIndex, piece.start);\n        const newStart = pos;\n        const newLineFeedCnt = this.getLineFeedCnt(piece.bufferIndex, newStart, piece.end);\n        const newStartOffset = this.offsetInBuffer(piece.bufferIndex, newStart);\n        const lf_delta = newLineFeedCnt - originalLFCnt;\n        const size_delta = originalStartOffset - newStartOffset;\n        const newLength = piece.length + size_delta;\n        node.piece = new Piece(piece.bufferIndex, newStart, piece.end, newLineFeedCnt, newLength);\n        updateTreeMetadata(this, node, size_delta, lf_delta);\n    }\n    shrinkNode(node, start, end) {\n        const piece = node.piece;\n        const originalStartPos = piece.start;\n        const originalEndPos = piece.end;\n        // old piece, originalStartPos, start\n        const oldLength = piece.length;\n        const oldLFCnt = piece.lineFeedCnt;\n        const newEnd = start;\n        const newLineFeedCnt = this.getLineFeedCnt(piece.bufferIndex, piece.start, newEnd);\n        const newLength = this.offsetInBuffer(piece.bufferIndex, start) - this.offsetInBuffer(piece.bufferIndex, originalStartPos);\n        node.piece = new Piece(piece.bufferIndex, piece.start, newEnd, newLineFeedCnt, newLength);\n        updateTreeMetadata(this, node, newLength - oldLength, newLineFeedCnt - oldLFCnt);\n        // new right piece, end, originalEndPos\n        const newPiece = new Piece(piece.bufferIndex, end, originalEndPos, this.getLineFeedCnt(piece.bufferIndex, end, originalEndPos), this.offsetInBuffer(piece.bufferIndex, originalEndPos) - this.offsetInBuffer(piece.bufferIndex, end));\n        const newNode = this.rbInsertRight(node, newPiece);\n        this.validateCRLFWithPrevNode(newNode);\n    }\n    appendToNode(node, value) {\n        if (this.adjustCarriageReturnFromNext(value, node)) {\n            value += '\\n';\n        }\n        const hitCRLF = this.shouldCheckCRLF() && this.startWithLF(value) && this.endWithCR(node);\n        const startOffset = this._buffers[0].buffer.length;\n        this._buffers[0].buffer += value;\n        const lineStarts = createLineStartsFast(value, false);\n        for (let i = 0; i < lineStarts.length; i++) {\n            lineStarts[i] += startOffset;\n        }\n        if (hitCRLF) {\n            const prevStartOffset = this._buffers[0].lineStarts[this._buffers[0].lineStarts.length - 2];\n            this._buffers[0].lineStarts.pop();\n            // _lastChangeBufferPos is already wrong\n            this._lastChangeBufferPos = { line: this._lastChangeBufferPos.line - 1, column: startOffset - prevStartOffset };\n        }\n        this._buffers[0].lineStarts = this._buffers[0].lineStarts.concat(lineStarts.slice(1));\n        const endIndex = this._buffers[0].lineStarts.length - 1;\n        const endColumn = this._buffers[0].buffer.length - this._buffers[0].lineStarts[endIndex];\n        const newEnd = { line: endIndex, column: endColumn };\n        const newLength = node.piece.length + value.length;\n        const oldLineFeedCnt = node.piece.lineFeedCnt;\n        const newLineFeedCnt = this.getLineFeedCnt(0, node.piece.start, newEnd);\n        const lf_delta = newLineFeedCnt - oldLineFeedCnt;\n        node.piece = new Piece(node.piece.bufferIndex, node.piece.start, newEnd, newLineFeedCnt, newLength);\n        this._lastChangeBufferPos = newEnd;\n        updateTreeMetadata(this, node, value.length, lf_delta);\n    }\n    nodeAt(offset) {\n        let x = this.root;\n        const cache = this._searchCache.get(offset);\n        if (cache) {\n            return {\n                node: cache.node,\n                nodeStartOffset: cache.nodeStartOffset,\n                remainder: offset - cache.nodeStartOffset\n            };\n        }\n        let nodeStartOffset = 0;\n        while (x !== SENTINEL) {\n            if (x.size_left > offset) {\n                x = x.left;\n            }\n            else if (x.size_left + x.piece.length >= offset) {\n                nodeStartOffset += x.size_left;\n                const ret = {\n                    node: x,\n                    remainder: offset - x.size_left,\n                    nodeStartOffset\n                };\n                this._searchCache.set(ret);\n                return ret;\n            }\n            else {\n                offset -= x.size_left + x.piece.length;\n                nodeStartOffset += x.size_left + x.piece.length;\n                x = x.right;\n            }\n        }\n        return null;\n    }\n    nodeAt2(lineNumber, column) {\n        let x = this.root;\n        let nodeStartOffset = 0;\n        while (x !== SENTINEL) {\n            if (x.left !== SENTINEL && x.lf_left >= lineNumber - 1) {\n                x = x.left;\n            }\n            else if (x.lf_left + x.piece.lineFeedCnt > lineNumber - 1) {\n                const prevAccumualtedValue = this.getAccumulatedValue(x, lineNumber - x.lf_left - 2);\n                const accumulatedValue = this.getAccumulatedValue(x, lineNumber - x.lf_left - 1);\n                nodeStartOffset += x.size_left;\n                return {\n                    node: x,\n                    remainder: Math.min(prevAccumualtedValue + column - 1, accumulatedValue),\n                    nodeStartOffset\n                };\n            }\n            else if (x.lf_left + x.piece.lineFeedCnt === lineNumber - 1) {\n                const prevAccumualtedValue = this.getAccumulatedValue(x, lineNumber - x.lf_left - 2);\n                if (prevAccumualtedValue + column - 1 <= x.piece.length) {\n                    return {\n                        node: x,\n                        remainder: prevAccumualtedValue + column - 1,\n                        nodeStartOffset\n                    };\n                }\n                else {\n                    column -= x.piece.length - prevAccumualtedValue;\n                    break;\n                }\n            }\n            else {\n                lineNumber -= x.lf_left + x.piece.lineFeedCnt;\n                nodeStartOffset += x.size_left + x.piece.length;\n                x = x.right;\n            }\n        }\n        // search in order, to find the node contains position.column\n        x = x.next();\n        while (x !== SENTINEL) {\n            if (x.piece.lineFeedCnt > 0) {\n                const accumulatedValue = this.getAccumulatedValue(x, 0);\n                const nodeStartOffset = this.offsetOfNode(x);\n                return {\n                    node: x,\n                    remainder: Math.min(column - 1, accumulatedValue),\n                    nodeStartOffset\n                };\n            }\n            else {\n                if (x.piece.length >= column - 1) {\n                    const nodeStartOffset = this.offsetOfNode(x);\n                    return {\n                        node: x,\n                        remainder: column - 1,\n                        nodeStartOffset\n                    };\n                }\n                else {\n                    column -= x.piece.length;\n                }\n            }\n            x = x.next();\n        }\n        return null;\n    }\n    nodeCharCodeAt(node, offset) {\n        if (node.piece.lineFeedCnt < 1) {\n            return -1;\n        }\n        const buffer = this._buffers[node.piece.bufferIndex];\n        const newOffset = this.offsetInBuffer(node.piece.bufferIndex, node.piece.start) + offset;\n        return buffer.buffer.charCodeAt(newOffset);\n    }\n    offsetOfNode(node) {\n        if (!node) {\n            return 0;\n        }\n        let pos = node.size_left;\n        while (node !== this.root) {\n            if (node.parent.right === node) {\n                pos += node.parent.size_left + node.parent.piece.length;\n            }\n            node = node.parent;\n        }\n        return pos;\n    }\n    // #endregion\n    // #region CRLF\n    shouldCheckCRLF() {\n        return !(this._EOLNormalized && this._EOL === '\\n');\n    }\n    startWithLF(val) {\n        if (typeof val === 'string') {\n            return val.charCodeAt(0) === 10;\n        }\n        if (val === SENTINEL || val.piece.lineFeedCnt === 0) {\n            return false;\n        }\n        const piece = val.piece;\n        const lineStarts = this._buffers[piece.bufferIndex].lineStarts;\n        const line = piece.start.line;\n        const startOffset = lineStarts[line] + piece.start.column;\n        if (line === lineStarts.length - 1) {\n            // last line, so there is no line feed at the end of this line\n            return false;\n        }\n        const nextLineOffset = lineStarts[line + 1];\n        if (nextLineOffset > startOffset + 1) {\n            return false;\n        }\n        return this._buffers[piece.bufferIndex].buffer.charCodeAt(startOffset) === 10;\n    }\n    endWithCR(val) {\n        if (typeof val === 'string') {\n            return val.charCodeAt(val.length - 1) === 13;\n        }\n        if (val === SENTINEL || val.piece.lineFeedCnt === 0) {\n            return false;\n        }\n        return this.nodeCharCodeAt(val, val.piece.length - 1) === 13;\n    }\n    validateCRLFWithPrevNode(nextNode) {\n        if (this.shouldCheckCRLF() && this.startWithLF(nextNode)) {\n            const node = nextNode.prev();\n            if (this.endWithCR(node)) {\n                this.fixCRLF(node, nextNode);\n            }\n        }\n    }\n    validateCRLFWithNextNode(node) {\n        if (this.shouldCheckCRLF() && this.endWithCR(node)) {\n            const nextNode = node.next();\n            if (this.startWithLF(nextNode)) {\n                this.fixCRLF(node, nextNode);\n            }\n        }\n    }\n    fixCRLF(prev, next) {\n        const nodesToDel = [];\n        // update node\n        const lineStarts = this._buffers[prev.piece.bufferIndex].lineStarts;\n        let newEnd;\n        if (prev.piece.end.column === 0) {\n            // it means, last line ends with \\r, not \\r\\n\n            newEnd = { line: prev.piece.end.line - 1, column: lineStarts[prev.piece.end.line] - lineStarts[prev.piece.end.line - 1] - 1 };\n        }\n        else {\n            // \\r\\n\n            newEnd = { line: prev.piece.end.line, column: prev.piece.end.column - 1 };\n        }\n        const prevNewLength = prev.piece.length - 1;\n        const prevNewLFCnt = prev.piece.lineFeedCnt - 1;\n        prev.piece = new Piece(prev.piece.bufferIndex, prev.piece.start, newEnd, prevNewLFCnt, prevNewLength);\n        updateTreeMetadata(this, prev, -1, -1);\n        if (prev.piece.length === 0) {\n            nodesToDel.push(prev);\n        }\n        // update nextNode\n        const newStart = { line: next.piece.start.line + 1, column: 0 };\n        const newLength = next.piece.length - 1;\n        const newLineFeedCnt = this.getLineFeedCnt(next.piece.bufferIndex, newStart, next.piece.end);\n        next.piece = new Piece(next.piece.bufferIndex, newStart, next.piece.end, newLineFeedCnt, newLength);\n        updateTreeMetadata(this, next, -1, -1);\n        if (next.piece.length === 0) {\n            nodesToDel.push(next);\n        }\n        // create new piece which contains \\r\\n\n        const pieces = this.createNewPieces('\\r\\n');\n        this.rbInsertRight(prev, pieces[0]);\n        // delete empty nodes\n        for (let i = 0; i < nodesToDel.length; i++) {\n            rbDelete(this, nodesToDel[i]);\n        }\n    }\n    adjustCarriageReturnFromNext(value, node) {\n        if (this.shouldCheckCRLF() && this.endWithCR(value)) {\n            const nextNode = node.next();\n            if (this.startWithLF(nextNode)) {\n                // move `\\n` forward\n                value += '\\n';\n                if (nextNode.piece.length === 1) {\n                    rbDelete(this, nextNode);\n                }\n                else {\n                    const piece = nextNode.piece;\n                    const newStart = { line: piece.start.line + 1, column: 0 };\n                    const newLength = piece.length - 1;\n                    const newLineFeedCnt = this.getLineFeedCnt(piece.bufferIndex, newStart, piece.end);\n                    nextNode.piece = new Piece(piece.bufferIndex, newStart, piece.end, newLineFeedCnt, newLength);\n                    updateTreeMetadata(this, nextNode, -1, -1);\n                }\n                return true;\n            }\n        }\n        return false;\n    }\n    // #endregion\n    // #endregion\n    // #region Tree operations\n    iterate(node, callback) {\n        if (node === SENTINEL) {\n            return callback(SENTINEL);\n        }\n        const leftRet = this.iterate(node.left, callback);\n        if (!leftRet) {\n            return leftRet;\n        }\n        return callback(node) && this.iterate(node.right, callback);\n    }\n    getNodeContent(node) {\n        if (node === SENTINEL) {\n            return '';\n        }\n        const buffer = this._buffers[node.piece.bufferIndex];\n        const piece = node.piece;\n        const startOffset = this.offsetInBuffer(piece.bufferIndex, piece.start);\n        const endOffset = this.offsetInBuffer(piece.bufferIndex, piece.end);\n        const currentContent = buffer.buffer.substring(startOffset, endOffset);\n        return currentContent;\n    }\n    getPieceContent(piece) {\n        const buffer = this._buffers[piece.bufferIndex];\n        const startOffset = this.offsetInBuffer(piece.bufferIndex, piece.start);\n        const endOffset = this.offsetInBuffer(piece.bufferIndex, piece.end);\n        const currentContent = buffer.buffer.substring(startOffset, endOffset);\n        return currentContent;\n    }\n    /**\n     *      node              node\n     *     /  \\              /  \\\n     *    a   b    <----   a    b\n     *                         /\n     *                        z\n     */\n    rbInsertRight(node, p) {\n        const z = new TreeNode(p, 1 /* NodeColor.Red */);\n        z.left = SENTINEL;\n        z.right = SENTINEL;\n        z.parent = SENTINEL;\n        z.size_left = 0;\n        z.lf_left = 0;\n        const x = this.root;\n        if (x === SENTINEL) {\n            this.root = z;\n            z.color = 0 /* NodeColor.Black */;\n        }\n        else if (node.right === SENTINEL) {\n            node.right = z;\n            z.parent = node;\n        }\n        else {\n            const nextNode = leftest(node.right);\n            nextNode.left = z;\n            z.parent = nextNode;\n        }\n        fixInsert(this, z);\n        return z;\n    }\n    /**\n     *      node              node\n     *     /  \\              /  \\\n     *    a   b     ---->   a    b\n     *                       \\\n     *                        z\n     */\n    rbInsertLeft(node, p) {\n        const z = new TreeNode(p, 1 /* NodeColor.Red */);\n        z.left = SENTINEL;\n        z.right = SENTINEL;\n        z.parent = SENTINEL;\n        z.size_left = 0;\n        z.lf_left = 0;\n        if (this.root === SENTINEL) {\n            this.root = z;\n            z.color = 0 /* NodeColor.Black */;\n        }\n        else if (node.left === SENTINEL) {\n            node.left = z;\n            z.parent = node;\n        }\n        else {\n            const prevNode = righttest(node.left); // a\n            prevNode.right = z;\n            z.parent = prevNode;\n        }\n        fixInsert(this, z);\n        return z;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBuffer.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../../../base/common/event.js';\nimport * as strings from '../../../../base/common/strings.js';\nimport { Range } from '../../core/range.js';\nimport { ApplyEditsResult } from '../../model.js';\nimport { PieceTreeBase } from './pieceTreeBase.js';\nimport { countEOL } from '../../core/eolCounter.js';\nimport { TextChange } from '../../core/textChange.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nexport class PieceTreeTextBuffer extends Disposable {\n    constructor(chunks, BOM, eol, containsRTL, containsUnusualLineTerminators, isBasicASCII, eolNormalized) {\n        super();\n        this._onDidChangeContent = this._register(new Emitter());\n        this._BOM = BOM;\n        this._mightContainNonBasicASCII = !isBasicASCII;\n        this._mightContainRTL = containsRTL;\n        this._mightContainUnusualLineTerminators = containsUnusualLineTerminators;\n        this._pieceTree = new PieceTreeBase(chunks, eol, eolNormalized);\n    }\n    mightContainRTL() {\n        return this._mightContainRTL;\n    }\n    mightContainUnusualLineTerminators() {\n        return this._mightContainUnusualLineTerminators;\n    }\n    resetMightContainUnusualLineTerminators() {\n        this._mightContainUnusualLineTerminators = false;\n    }\n    mightContainNonBasicASCII() {\n        return this._mightContainNonBasicASCII;\n    }\n    getBOM() {\n        return this._BOM;\n    }\n    getEOL() {\n        return this._pieceTree.getEOL();\n    }\n    createSnapshot(preserveBOM) {\n        return this._pieceTree.createSnapshot(preserveBOM ? this._BOM : '');\n    }\n    getOffsetAt(lineNumber, column) {\n        return this._pieceTree.getOffsetAt(lineNumber, column);\n    }\n    getPositionAt(offset) {\n        return this._pieceTree.getPositionAt(offset);\n    }\n    getRangeAt(start, length) {\n        const end = start + length;\n        const startPosition = this.getPositionAt(start);\n        const endPosition = this.getPositionAt(end);\n        return new Range(startPosition.lineNumber, startPosition.column, endPosition.lineNumber, endPosition.column);\n    }\n    getValueInRange(range, eol = 0 /* EndOfLinePreference.TextDefined */) {\n        if (range.isEmpty()) {\n            return '';\n        }\n        const lineEnding = this._getEndOfLine(eol);\n        return this._pieceTree.getValueInRange(range, lineEnding);\n    }\n    getValueLengthInRange(range, eol = 0 /* EndOfLinePreference.TextDefined */) {\n        if (range.isEmpty()) {\n            return 0;\n        }\n        if (range.startLineNumber === range.endLineNumber) {\n            return (range.endColumn - range.startColumn);\n        }\n        const startOffset = this.getOffsetAt(range.startLineNumber, range.startColumn);\n        const endOffset = this.getOffsetAt(range.endLineNumber, range.endColumn);\n        // offsets use the text EOL, so we need to compensate for length differences\n        // if the requested EOL doesn't match the text EOL\n        let eolOffsetCompensation = 0;\n        const desiredEOL = this._getEndOfLine(eol);\n        const actualEOL = this.getEOL();\n        if (desiredEOL.length !== actualEOL.length) {\n            const delta = desiredEOL.length - actualEOL.length;\n            const eolCount = range.endLineNumber - range.startLineNumber;\n            eolOffsetCompensation = delta * eolCount;\n        }\n        return endOffset - startOffset + eolOffsetCompensation;\n    }\n    getCharacterCountInRange(range, eol = 0 /* EndOfLinePreference.TextDefined */) {\n        if (this._mightContainNonBasicASCII) {\n            // we must count by iterating\n            let result = 0;\n            const fromLineNumber = range.startLineNumber;\n            const toLineNumber = range.endLineNumber;\n            for (let lineNumber = fromLineNumber; lineNumber <= toLineNumber; lineNumber++) {\n                const lineContent = this.getLineContent(lineNumber);\n                const fromOffset = (lineNumber === fromLineNumber ? range.startColumn - 1 : 0);\n                const toOffset = (lineNumber === toLineNumber ? range.endColumn - 1 : lineContent.length);\n                for (let offset = fromOffset; offset < toOffset; offset++) {\n                    if (strings.isHighSurrogate(lineContent.charCodeAt(offset))) {\n                        result = result + 1;\n                        offset = offset + 1;\n                    }\n                    else {\n                        result = result + 1;\n                    }\n                }\n            }\n            result += this._getEndOfLine(eol).length * (toLineNumber - fromLineNumber);\n            return result;\n        }\n        return this.getValueLengthInRange(range, eol);\n    }\n    getLength() {\n        return this._pieceTree.getLength();\n    }\n    getLineCount() {\n        return this._pieceTree.getLineCount();\n    }\n    getLinesContent() {\n        return this._pieceTree.getLinesContent();\n    }\n    getLineContent(lineNumber) {\n        return this._pieceTree.getLineContent(lineNumber);\n    }\n    getLineCharCode(lineNumber, index) {\n        return this._pieceTree.getLineCharCode(lineNumber, index);\n    }\n    getLineLength(lineNumber) {\n        return this._pieceTree.getLineLength(lineNumber);\n    }\n    getLineFirstNonWhitespaceColumn(lineNumber) {\n        const result = strings.firstNonWhitespaceIndex(this.getLineContent(lineNumber));\n        if (result === -1) {\n            return 0;\n        }\n        return result + 1;\n    }\n    getLineLastNonWhitespaceColumn(lineNumber) {\n        const result = strings.lastNonWhitespaceIndex(this.getLineContent(lineNumber));\n        if (result === -1) {\n            return 0;\n        }\n        return result + 2;\n    }\n    _getEndOfLine(eol) {\n        switch (eol) {\n            case 1 /* EndOfLinePreference.LF */:\n                return '\\n';\n            case 2 /* EndOfLinePreference.CRLF */:\n                return '\\r\\n';\n            case 0 /* EndOfLinePreference.TextDefined */:\n                return this.getEOL();\n            default:\n                throw new Error('Unknown EOL preference');\n        }\n    }\n    setEOL(newEOL) {\n        this._pieceTree.setEOL(newEOL);\n    }\n    applyEdits(rawOperations, recordTrimAutoWhitespace, computeUndoEdits) {\n        let mightContainRTL = this._mightContainRTL;\n        let mightContainUnusualLineTerminators = this._mightContainUnusualLineTerminators;\n        let mightContainNonBasicASCII = this._mightContainNonBasicASCII;\n        let canReduceOperations = true;\n        let operations = [];\n        for (let i = 0; i < rawOperations.length; i++) {\n            const op = rawOperations[i];\n            if (canReduceOperations && op._isTracked) {\n                canReduceOperations = false;\n            }\n            const validatedRange = op.range;\n            if (op.text) {\n                let textMightContainNonBasicASCII = true;\n                if (!mightContainNonBasicASCII) {\n                    textMightContainNonBasicASCII = !strings.isBasicASCII(op.text);\n                    mightContainNonBasicASCII = textMightContainNonBasicASCII;\n                }\n                if (!mightContainRTL && textMightContainNonBasicASCII) {\n                    // check if the new inserted text contains RTL\n                    mightContainRTL = strings.containsRTL(op.text);\n                }\n                if (!mightContainUnusualLineTerminators && textMightContainNonBasicASCII) {\n                    // check if the new inserted text contains unusual line terminators\n                    mightContainUnusualLineTerminators = strings.containsUnusualLineTerminators(op.text);\n                }\n            }\n            let validText = '';\n            let eolCount = 0;\n            let firstLineLength = 0;\n            let lastLineLength = 0;\n            if (op.text) {\n                let strEOL;\n                [eolCount, firstLineLength, lastLineLength, strEOL] = countEOL(op.text);\n                const bufferEOL = this.getEOL();\n                const expectedStrEOL = (bufferEOL === '\\r\\n' ? 2 /* StringEOL.CRLF */ : 1 /* StringEOL.LF */);\n                if (strEOL === 0 /* StringEOL.Unknown */ || strEOL === expectedStrEOL) {\n                    validText = op.text;\n                }\n                else {\n                    validText = op.text.replace(/\\r\\n|\\r|\\n/g, bufferEOL);\n                }\n            }\n            operations[i] = {\n                sortIndex: i,\n                identifier: op.identifier || null,\n                range: validatedRange,\n                rangeOffset: this.getOffsetAt(validatedRange.startLineNumber, validatedRange.startColumn),\n                rangeLength: this.getValueLengthInRange(validatedRange),\n                text: validText,\n                eolCount: eolCount,\n                firstLineLength: firstLineLength,\n                lastLineLength: lastLineLength,\n                forceMoveMarkers: Boolean(op.forceMoveMarkers),\n                isAutoWhitespaceEdit: op.isAutoWhitespaceEdit || false\n            };\n        }\n        // Sort operations ascending\n        operations.sort(PieceTreeTextBuffer._sortOpsAscending);\n        let hasTouchingRanges = false;\n        for (let i = 0, count = operations.length - 1; i < count; i++) {\n            const rangeEnd = operations[i].range.getEndPosition();\n            const nextRangeStart = operations[i + 1].range.getStartPosition();\n            if (nextRangeStart.isBeforeOrEqual(rangeEnd)) {\n                if (nextRangeStart.isBefore(rangeEnd)) {\n                    // overlapping ranges\n                    throw new Error('Overlapping ranges are not allowed!');\n                }\n                hasTouchingRanges = true;\n            }\n        }\n        if (canReduceOperations) {\n            operations = this._reduceOperations(operations);\n        }\n        // Delta encode operations\n        const reverseRanges = (computeUndoEdits || recordTrimAutoWhitespace ? PieceTreeTextBuffer._getInverseEditRanges(operations) : []);\n        const newTrimAutoWhitespaceCandidates = [];\n        if (recordTrimAutoWhitespace) {\n            for (let i = 0; i < operations.length; i++) {\n                const op = operations[i];\n                const reverseRange = reverseRanges[i];\n                if (op.isAutoWhitespaceEdit && op.range.isEmpty()) {\n                    // Record already the future line numbers that might be auto whitespace removal candidates on next edit\n                    for (let lineNumber = reverseRange.startLineNumber; lineNumber <= reverseRange.endLineNumber; lineNumber++) {\n                        let currentLineContent = '';\n                        if (lineNumber === reverseRange.startLineNumber) {\n                            currentLineContent = this.getLineContent(op.range.startLineNumber);\n                            if (strings.firstNonWhitespaceIndex(currentLineContent) !== -1) {\n                                continue;\n                            }\n                        }\n                        newTrimAutoWhitespaceCandidates.push({ lineNumber: lineNumber, oldContent: currentLineContent });\n                    }\n                }\n            }\n        }\n        let reverseOperations = null;\n        if (computeUndoEdits) {\n            let reverseRangeDeltaOffset = 0;\n            reverseOperations = [];\n            for (let i = 0; i < operations.length; i++) {\n                const op = operations[i];\n                const reverseRange = reverseRanges[i];\n                const bufferText = this.getValueInRange(op.range);\n                const reverseRangeOffset = op.rangeOffset + reverseRangeDeltaOffset;\n                reverseRangeDeltaOffset += (op.text.length - bufferText.length);\n                reverseOperations[i] = {\n                    sortIndex: op.sortIndex,\n                    identifier: op.identifier,\n                    range: reverseRange,\n                    text: bufferText,\n                    textChange: new TextChange(op.rangeOffset, bufferText, reverseRangeOffset, op.text)\n                };\n            }\n            // Can only sort reverse operations when the order is not significant\n            if (!hasTouchingRanges) {\n                reverseOperations.sort((a, b) => a.sortIndex - b.sortIndex);\n            }\n        }\n        this._mightContainRTL = mightContainRTL;\n        this._mightContainUnusualLineTerminators = mightContainUnusualLineTerminators;\n        this._mightContainNonBasicASCII = mightContainNonBasicASCII;\n        const contentChanges = this._doApplyEdits(operations);\n        let trimAutoWhitespaceLineNumbers = null;\n        if (recordTrimAutoWhitespace && newTrimAutoWhitespaceCandidates.length > 0) {\n            // sort line numbers auto whitespace removal candidates for next edit descending\n            newTrimAutoWhitespaceCandidates.sort((a, b) => b.lineNumber - a.lineNumber);\n            trimAutoWhitespaceLineNumbers = [];\n            for (let i = 0, len = newTrimAutoWhitespaceCandidates.length; i < len; i++) {\n                const lineNumber = newTrimAutoWhitespaceCandidates[i].lineNumber;\n                if (i > 0 && newTrimAutoWhitespaceCandidates[i - 1].lineNumber === lineNumber) {\n                    // Do not have the same line number twice\n                    continue;\n                }\n                const prevContent = newTrimAutoWhitespaceCandidates[i].oldContent;\n                const lineContent = this.getLineContent(lineNumber);\n                if (lineContent.length === 0 || lineContent === prevContent || strings.firstNonWhitespaceIndex(lineContent) !== -1) {\n                    continue;\n                }\n                trimAutoWhitespaceLineNumbers.push(lineNumber);\n            }\n        }\n        this._onDidChangeContent.fire();\n        return new ApplyEditsResult(reverseOperations, contentChanges, trimAutoWhitespaceLineNumbers);\n    }\n    /**\n     * Transform operations such that they represent the same logic edit,\n     * but that they also do not cause OOM crashes.\n     */\n    _reduceOperations(operations) {\n        if (operations.length < 1000) {\n            // We know from empirical testing that a thousand edits work fine regardless of their shape.\n            return operations;\n        }\n        // At one point, due to how events are emitted and how each operation is handled,\n        // some operations can trigger a high amount of temporary string allocations,\n        // that will immediately get edited again.\n        // e.g. a formatter inserting ridiculous ammounts of \\n on a model with a single line\n        // Therefore, the strategy is to collapse all the operations into a huge single edit operation\n        return [this._toSingleEditOperation(operations)];\n    }\n    _toSingleEditOperation(operations) {\n        let forceMoveMarkers = false;\n        const firstEditRange = operations[0].range;\n        const lastEditRange = operations[operations.length - 1].range;\n        const entireEditRange = new Range(firstEditRange.startLineNumber, firstEditRange.startColumn, lastEditRange.endLineNumber, lastEditRange.endColumn);\n        let lastEndLineNumber = firstEditRange.startLineNumber;\n        let lastEndColumn = firstEditRange.startColumn;\n        const result = [];\n        for (let i = 0, len = operations.length; i < len; i++) {\n            const operation = operations[i];\n            const range = operation.range;\n            forceMoveMarkers = forceMoveMarkers || operation.forceMoveMarkers;\n            // (1) -- Push old text\n            result.push(this.getValueInRange(new Range(lastEndLineNumber, lastEndColumn, range.startLineNumber, range.startColumn)));\n            // (2) -- Push new text\n            if (operation.text.length > 0) {\n                result.push(operation.text);\n            }\n            lastEndLineNumber = range.endLineNumber;\n            lastEndColumn = range.endColumn;\n        }\n        const text = result.join('');\n        const [eolCount, firstLineLength, lastLineLength] = countEOL(text);\n        return {\n            sortIndex: 0,\n            identifier: operations[0].identifier,\n            range: entireEditRange,\n            rangeOffset: this.getOffsetAt(entireEditRange.startLineNumber, entireEditRange.startColumn),\n            rangeLength: this.getValueLengthInRange(entireEditRange, 0 /* EndOfLinePreference.TextDefined */),\n            text: text,\n            eolCount: eolCount,\n            firstLineLength: firstLineLength,\n            lastLineLength: lastLineLength,\n            forceMoveMarkers: forceMoveMarkers,\n            isAutoWhitespaceEdit: false\n        };\n    }\n    _doApplyEdits(operations) {\n        operations.sort(PieceTreeTextBuffer._sortOpsDescending);\n        const contentChanges = [];\n        // operations are from bottom to top\n        for (let i = 0; i < operations.length; i++) {\n            const op = operations[i];\n            const startLineNumber = op.range.startLineNumber;\n            const startColumn = op.range.startColumn;\n            const endLineNumber = op.range.endLineNumber;\n            const endColumn = op.range.endColumn;\n            if (startLineNumber === endLineNumber && startColumn === endColumn && op.text.length === 0) {\n                // no-op\n                continue;\n            }\n            if (op.text) {\n                // replacement\n                this._pieceTree.delete(op.rangeOffset, op.rangeLength);\n                this._pieceTree.insert(op.rangeOffset, op.text, true);\n            }\n            else {\n                // deletion\n                this._pieceTree.delete(op.rangeOffset, op.rangeLength);\n            }\n            const contentChangeRange = new Range(startLineNumber, startColumn, endLineNumber, endColumn);\n            contentChanges.push({\n                range: contentChangeRange,\n                rangeLength: op.rangeLength,\n                text: op.text,\n                rangeOffset: op.rangeOffset,\n                forceMoveMarkers: op.forceMoveMarkers\n            });\n        }\n        return contentChanges;\n    }\n    findMatchesLineByLine(searchRange, searchData, captureMatches, limitResultCount) {\n        return this._pieceTree.findMatchesLineByLine(searchRange, searchData, captureMatches, limitResultCount);\n    }\n    /**\n     * Assumes `operations` are validated and sorted ascending\n     */\n    static _getInverseEditRanges(operations) {\n        const result = [];\n        let prevOpEndLineNumber = 0;\n        let prevOpEndColumn = 0;\n        let prevOp = null;\n        for (let i = 0, len = operations.length; i < len; i++) {\n            const op = operations[i];\n            let startLineNumber;\n            let startColumn;\n            if (prevOp) {\n                if (prevOp.range.endLineNumber === op.range.startLineNumber) {\n                    startLineNumber = prevOpEndLineNumber;\n                    startColumn = prevOpEndColumn + (op.range.startColumn - prevOp.range.endColumn);\n                }\n                else {\n                    startLineNumber = prevOpEndLineNumber + (op.range.startLineNumber - prevOp.range.endLineNumber);\n                    startColumn = op.range.startColumn;\n                }\n            }\n            else {\n                startLineNumber = op.range.startLineNumber;\n                startColumn = op.range.startColumn;\n            }\n            let resultRange;\n            if (op.text.length > 0) {\n                // the operation inserts something\n                const lineCount = op.eolCount + 1;\n                if (lineCount === 1) {\n                    // single line insert\n                    resultRange = new Range(startLineNumber, startColumn, startLineNumber, startColumn + op.firstLineLength);\n                }\n                else {\n                    // multi line insert\n                    resultRange = new Range(startLineNumber, startColumn, startLineNumber + lineCount - 1, op.lastLineLength + 1);\n                }\n            }\n            else {\n                // There is nothing to insert\n                resultRange = new Range(startLineNumber, startColumn, startLineNumber, startColumn);\n            }\n            prevOpEndLineNumber = resultRange.endLineNumber;\n            prevOpEndColumn = resultRange.endColumn;\n            result.push(resultRange);\n            prevOp = op;\n        }\n        return result;\n    }\n    static _sortOpsAscending(a, b) {\n        const r = Range.compareRangesUsingEnds(a.range, b.range);\n        if (r === 0) {\n            return a.sortIndex - b.sortIndex;\n        }\n        return r;\n    }\n    static _sortOpsDescending(a, b) {\n        const r = Range.compareRangesUsingEnds(a.range, b.range);\n        if (r === 0) {\n            return b.sortIndex - a.sortIndex;\n        }\n        return -r;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBufferBuilder.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../../base/common/strings.js';\nimport { StringBuffer, createLineStarts, createLineStartsFast } from './pieceTreeBase.js';\nimport { PieceTreeTextBuffer } from './pieceTreeTextBuffer.js';\nclass PieceTreeTextBufferFactory {\n    constructor(_chunks, _bom, _cr, _lf, _crlf, _containsRTL, _containsUnusualLineTerminators, _isBasicASCII, _normalizeEOL) {\n        this._chunks = _chunks;\n        this._bom = _bom;\n        this._cr = _cr;\n        this._lf = _lf;\n        this._crlf = _crlf;\n        this._containsRTL = _containsRTL;\n        this._containsUnusualLineTerminators = _containsUnusualLineTerminators;\n        this._isBasicASCII = _isBasicASCII;\n        this._normalizeEOL = _normalizeEOL;\n    }\n    _getEOL(defaultEOL) {\n        const totalEOLCount = this._cr + this._lf + this._crlf;\n        const totalCRCount = this._cr + this._crlf;\n        if (totalEOLCount === 0) {\n            // This is an empty file or a file with precisely one line\n            return (defaultEOL === 1 /* DefaultEndOfLine.LF */ ? '\\n' : '\\r\\n');\n        }\n        if (totalCRCount > totalEOLCount / 2) {\n            // More than half of the file contains \\r\\n ending lines\n            return '\\r\\n';\n        }\n        // At least one line more ends in \\n\n        return '\\n';\n    }\n    create(defaultEOL) {\n        const eol = this._getEOL(defaultEOL);\n        const chunks = this._chunks;\n        if (this._normalizeEOL &&\n            ((eol === '\\r\\n' && (this._cr > 0 || this._lf > 0))\n                || (eol === '\\n' && (this._cr > 0 || this._crlf > 0)))) {\n            // Normalize pieces\n            for (let i = 0, len = chunks.length; i < len; i++) {\n                const str = chunks[i].buffer.replace(/\\r\\n|\\r|\\n/g, eol);\n                const newLineStart = createLineStartsFast(str);\n                chunks[i] = new StringBuffer(str, newLineStart);\n            }\n        }\n        const textBuffer = new PieceTreeTextBuffer(chunks, this._bom, eol, this._containsRTL, this._containsUnusualLineTerminators, this._isBasicASCII, this._normalizeEOL);\n        return { textBuffer: textBuffer, disposable: textBuffer };\n    }\n}\nexport class PieceTreeTextBufferBuilder {\n    constructor() {\n        this.chunks = [];\n        this.BOM = '';\n        this._hasPreviousChar = false;\n        this._previousChar = 0;\n        this._tmpLineStarts = [];\n        this.cr = 0;\n        this.lf = 0;\n        this.crlf = 0;\n        this.containsRTL = false;\n        this.containsUnusualLineTerminators = false;\n        this.isBasicASCII = true;\n    }\n    acceptChunk(chunk) {\n        if (chunk.length === 0) {\n            return;\n        }\n        if (this.chunks.length === 0) {\n            if (strings.startsWithUTF8BOM(chunk)) {\n                this.BOM = strings.UTF8_BOM_CHARACTER;\n                chunk = chunk.substr(1);\n            }\n        }\n        const lastChar = chunk.charCodeAt(chunk.length - 1);\n        if (lastChar === 13 /* CharCode.CarriageReturn */ || (lastChar >= 0xD800 && lastChar <= 0xDBFF)) {\n            // last character is \\r or a high surrogate => keep it back\n            this._acceptChunk1(chunk.substr(0, chunk.length - 1), false);\n            this._hasPreviousChar = true;\n            this._previousChar = lastChar;\n        }\n        else {\n            this._acceptChunk1(chunk, false);\n            this._hasPreviousChar = false;\n            this._previousChar = lastChar;\n        }\n    }\n    _acceptChunk1(chunk, allowEmptyStrings) {\n        if (!allowEmptyStrings && chunk.length === 0) {\n            // Nothing to do\n            return;\n        }\n        if (this._hasPreviousChar) {\n            this._acceptChunk2(String.fromCharCode(this._previousChar) + chunk);\n        }\n        else {\n            this._acceptChunk2(chunk);\n        }\n    }\n    _acceptChunk2(chunk) {\n        const lineStarts = createLineStarts(this._tmpLineStarts, chunk);\n        this.chunks.push(new StringBuffer(chunk, lineStarts.lineStarts));\n        this.cr += lineStarts.cr;\n        this.lf += lineStarts.lf;\n        this.crlf += lineStarts.crlf;\n        if (!lineStarts.isBasicASCII) {\n            // this chunk contains non basic ASCII characters\n            this.isBasicASCII = false;\n            if (!this.containsRTL) {\n                this.containsRTL = strings.containsRTL(chunk);\n            }\n            if (!this.containsUnusualLineTerminators) {\n                this.containsUnusualLineTerminators = strings.containsUnusualLineTerminators(chunk);\n            }\n        }\n    }\n    finish(normalizeEOL = true) {\n        this._finish();\n        return new PieceTreeTextBufferFactory(this.chunks, this.BOM, this.cr, this.lf, this.crlf, this.containsRTL, this.containsUnusualLineTerminators, this.isBasicASCII, normalizeEOL);\n    }\n    _finish() {\n        if (this.chunks.length === 0) {\n            this._acceptChunk1('', true);\n        }\n        if (this._hasPreviousChar) {\n            this._hasPreviousChar = false;\n            // recreate last chunk\n            const lastChunk = this.chunks[this.chunks.length - 1];\n            lastChunk.buffer += String.fromCharCode(this._previousChar);\n            const newLineStarts = createLineStartsFast(lastChunk.buffer);\n            lastChunk.lineStarts = newLineStarts;\n            if (this._previousChar === 13 /* CharCode.CarriageReturn */) {\n                this.cr++;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/pieceTreeTextBuffer/rbTreeBase.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class TreeNode {\n    constructor(piece, color) {\n        this.piece = piece;\n        this.color = color;\n        this.size_left = 0;\n        this.lf_left = 0;\n        this.parent = this;\n        this.left = this;\n        this.right = this;\n    }\n    next() {\n        if (this.right !== SENTINEL) {\n            return leftest(this.right);\n        }\n        let node = this;\n        while (node.parent !== SENTINEL) {\n            if (node.parent.left === node) {\n                break;\n            }\n            node = node.parent;\n        }\n        if (node.parent === SENTINEL) {\n            return SENTINEL;\n        }\n        else {\n            return node.parent;\n        }\n    }\n    prev() {\n        if (this.left !== SENTINEL) {\n            return righttest(this.left);\n        }\n        let node = this;\n        while (node.parent !== SENTINEL) {\n            if (node.parent.right === node) {\n                break;\n            }\n            node = node.parent;\n        }\n        if (node.parent === SENTINEL) {\n            return SENTINEL;\n        }\n        else {\n            return node.parent;\n        }\n    }\n    detach() {\n        this.parent = null;\n        this.left = null;\n        this.right = null;\n    }\n}\nexport const SENTINEL = new TreeNode(null, 0 /* NodeColor.Black */);\nSENTINEL.parent = SENTINEL;\nSENTINEL.left = SENTINEL;\nSENTINEL.right = SENTINEL;\nSENTINEL.color = 0 /* NodeColor.Black */;\nexport function leftest(node) {\n    while (node.left !== SENTINEL) {\n        node = node.left;\n    }\n    return node;\n}\nexport function righttest(node) {\n    while (node.right !== SENTINEL) {\n        node = node.right;\n    }\n    return node;\n}\nfunction calculateSize(node) {\n    if (node === SENTINEL) {\n        return 0;\n    }\n    return node.size_left + node.piece.length + calculateSize(node.right);\n}\nfunction calculateLF(node) {\n    if (node === SENTINEL) {\n        return 0;\n    }\n    return node.lf_left + node.piece.lineFeedCnt + calculateLF(node.right);\n}\nfunction resetSentinel() {\n    SENTINEL.parent = SENTINEL;\n}\nexport function leftRotate(tree, x) {\n    const y = x.right;\n    // fix size_left\n    y.size_left += x.size_left + (x.piece ? x.piece.length : 0);\n    y.lf_left += x.lf_left + (x.piece ? x.piece.lineFeedCnt : 0);\n    x.right = y.left;\n    if (y.left !== SENTINEL) {\n        y.left.parent = x;\n    }\n    y.parent = x.parent;\n    if (x.parent === SENTINEL) {\n        tree.root = y;\n    }\n    else if (x.parent.left === x) {\n        x.parent.left = y;\n    }\n    else {\n        x.parent.right = y;\n    }\n    y.left = x;\n    x.parent = y;\n}\nexport function rightRotate(tree, y) {\n    const x = y.left;\n    y.left = x.right;\n    if (x.right !== SENTINEL) {\n        x.right.parent = y;\n    }\n    x.parent = y.parent;\n    // fix size_left\n    y.size_left -= x.size_left + (x.piece ? x.piece.length : 0);\n    y.lf_left -= x.lf_left + (x.piece ? x.piece.lineFeedCnt : 0);\n    if (y.parent === SENTINEL) {\n        tree.root = x;\n    }\n    else if (y === y.parent.right) {\n        y.parent.right = x;\n    }\n    else {\n        y.parent.left = x;\n    }\n    x.right = y;\n    y.parent = x;\n}\nexport function rbDelete(tree, z) {\n    let x;\n    let y;\n    if (z.left === SENTINEL) {\n        y = z;\n        x = y.right;\n    }\n    else if (z.right === SENTINEL) {\n        y = z;\n        x = y.left;\n    }\n    else {\n        y = leftest(z.right);\n        x = y.right;\n    }\n    if (y === tree.root) {\n        tree.root = x;\n        // if x is null, we are removing the only node\n        x.color = 0 /* NodeColor.Black */;\n        z.detach();\n        resetSentinel();\n        tree.root.parent = SENTINEL;\n        return;\n    }\n    const yWasRed = (y.color === 1 /* NodeColor.Red */);\n    if (y === y.parent.left) {\n        y.parent.left = x;\n    }\n    else {\n        y.parent.right = x;\n    }\n    if (y === z) {\n        x.parent = y.parent;\n        recomputeTreeMetadata(tree, x);\n    }\n    else {\n        if (y.parent === z) {\n            x.parent = y;\n        }\n        else {\n            x.parent = y.parent;\n        }\n        // as we make changes to x's hierarchy, update size_left of subtree first\n        recomputeTreeMetadata(tree, x);\n        y.left = z.left;\n        y.right = z.right;\n        y.parent = z.parent;\n        y.color = z.color;\n        if (z === tree.root) {\n            tree.root = y;\n        }\n        else {\n            if (z === z.parent.left) {\n                z.parent.left = y;\n            }\n            else {\n                z.parent.right = y;\n            }\n        }\n        if (y.left !== SENTINEL) {\n            y.left.parent = y;\n        }\n        if (y.right !== SENTINEL) {\n            y.right.parent = y;\n        }\n        // update metadata\n        // we replace z with y, so in this sub tree, the length change is z.item.length\n        y.size_left = z.size_left;\n        y.lf_left = z.lf_left;\n        recomputeTreeMetadata(tree, y);\n    }\n    z.detach();\n    if (x.parent.left === x) {\n        const newSizeLeft = calculateSize(x);\n        const newLFLeft = calculateLF(x);\n        if (newSizeLeft !== x.parent.size_left || newLFLeft !== x.parent.lf_left) {\n            const delta = newSizeLeft - x.parent.size_left;\n            const lf_delta = newLFLeft - x.parent.lf_left;\n            x.parent.size_left = newSizeLeft;\n            x.parent.lf_left = newLFLeft;\n            updateTreeMetadata(tree, x.parent, delta, lf_delta);\n        }\n    }\n    recomputeTreeMetadata(tree, x.parent);\n    if (yWasRed) {\n        resetSentinel();\n        return;\n    }\n    // RB-DELETE-FIXUP\n    let w;\n    while (x !== tree.root && x.color === 0 /* NodeColor.Black */) {\n        if (x === x.parent.left) {\n            w = x.parent.right;\n            if (w.color === 1 /* NodeColor.Red */) {\n                w.color = 0 /* NodeColor.Black */;\n                x.parent.color = 1 /* NodeColor.Red */;\n                leftRotate(tree, x.parent);\n                w = x.parent.right;\n            }\n            if (w.left.color === 0 /* NodeColor.Black */ && w.right.color === 0 /* NodeColor.Black */) {\n                w.color = 1 /* NodeColor.Red */;\n                x = x.parent;\n            }\n            else {\n                if (w.right.color === 0 /* NodeColor.Black */) {\n                    w.left.color = 0 /* NodeColor.Black */;\n                    w.color = 1 /* NodeColor.Red */;\n                    rightRotate(tree, w);\n                    w = x.parent.right;\n                }\n                w.color = x.parent.color;\n                x.parent.color = 0 /* NodeColor.Black */;\n                w.right.color = 0 /* NodeColor.Black */;\n                leftRotate(tree, x.parent);\n                x = tree.root;\n            }\n        }\n        else {\n            w = x.parent.left;\n            if (w.color === 1 /* NodeColor.Red */) {\n                w.color = 0 /* NodeColor.Black */;\n                x.parent.color = 1 /* NodeColor.Red */;\n                rightRotate(tree, x.parent);\n                w = x.parent.left;\n            }\n            if (w.left.color === 0 /* NodeColor.Black */ && w.right.color === 0 /* NodeColor.Black */) {\n                w.color = 1 /* NodeColor.Red */;\n                x = x.parent;\n            }\n            else {\n                if (w.left.color === 0 /* NodeColor.Black */) {\n                    w.right.color = 0 /* NodeColor.Black */;\n                    w.color = 1 /* NodeColor.Red */;\n                    leftRotate(tree, w);\n                    w = x.parent.left;\n                }\n                w.color = x.parent.color;\n                x.parent.color = 0 /* NodeColor.Black */;\n                w.left.color = 0 /* NodeColor.Black */;\n                rightRotate(tree, x.parent);\n                x = tree.root;\n            }\n        }\n    }\n    x.color = 0 /* NodeColor.Black */;\n    resetSentinel();\n}\nexport function fixInsert(tree, x) {\n    recomputeTreeMetadata(tree, x);\n    while (x !== tree.root && x.parent.color === 1 /* NodeColor.Red */) {\n        if (x.parent === x.parent.parent.left) {\n            const y = x.parent.parent.right;\n            if (y.color === 1 /* NodeColor.Red */) {\n                x.parent.color = 0 /* NodeColor.Black */;\n                y.color = 0 /* NodeColor.Black */;\n                x.parent.parent.color = 1 /* NodeColor.Red */;\n                x = x.parent.parent;\n            }\n            else {\n                if (x === x.parent.right) {\n                    x = x.parent;\n                    leftRotate(tree, x);\n                }\n                x.parent.color = 0 /* NodeColor.Black */;\n                x.parent.parent.color = 1 /* NodeColor.Red */;\n                rightRotate(tree, x.parent.parent);\n            }\n        }\n        else {\n            const y = x.parent.parent.left;\n            if (y.color === 1 /* NodeColor.Red */) {\n                x.parent.color = 0 /* NodeColor.Black */;\n                y.color = 0 /* NodeColor.Black */;\n                x.parent.parent.color = 1 /* NodeColor.Red */;\n                x = x.parent.parent;\n            }\n            else {\n                if (x === x.parent.left) {\n                    x = x.parent;\n                    rightRotate(tree, x);\n                }\n                x.parent.color = 0 /* NodeColor.Black */;\n                x.parent.parent.color = 1 /* NodeColor.Red */;\n                leftRotate(tree, x.parent.parent);\n            }\n        }\n    }\n    tree.root.color = 0 /* NodeColor.Black */;\n}\nexport function updateTreeMetadata(tree, x, delta, lineFeedCntDelta) {\n    // node length change or line feed count change\n    while (x !== tree.root && x !== SENTINEL) {\n        if (x.parent.left === x) {\n            x.parent.size_left += delta;\n            x.parent.lf_left += lineFeedCntDelta;\n        }\n        x = x.parent;\n    }\n}\nexport function recomputeTreeMetadata(tree, x) {\n    let delta = 0;\n    let lf_delta = 0;\n    if (x === tree.root) {\n        return;\n    }\n    // go upwards till the node whose left subtree is changed.\n    while (x !== tree.root && x === x.parent.right) {\n        x = x.parent;\n    }\n    if (x === tree.root) {\n        // well, it means we add a node to the end (inorder)\n        return;\n    }\n    // x is the node whose right subtree is changed.\n    x = x.parent;\n    delta = calculateSize(x.left) - x.size_left;\n    lf_delta = calculateLF(x.left) - x.lf_left;\n    x.size_left += delta;\n    x.lf_left += lf_delta;\n    // go upwards till root. O(logN)\n    while (x !== tree.root && (delta !== 0 || lf_delta !== 0)) {\n        if (x.parent.left === x) {\n            x.parent.size_left += delta;\n            x.parent.lf_left += lf_delta;\n        }\n        x = x.parent;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/prefixSumComputer.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { arrayInsert } from '../../../base/common/arrays.js';\nimport { toUint32 } from '../../../base/common/uint.js';\nexport class PrefixSumComputer {\n    constructor(values) {\n        this.values = values;\n        this.prefixSum = new Uint32Array(values.length);\n        this.prefixSumValidIndex = new Int32Array(1);\n        this.prefixSumValidIndex[0] = -1;\n    }\n    insertValues(insertIndex, insertValues) {\n        insertIndex = toUint32(insertIndex);\n        const oldValues = this.values;\n        const oldPrefixSum = this.prefixSum;\n        const insertValuesLen = insertValues.length;\n        if (insertValuesLen === 0) {\n            return false;\n        }\n        this.values = new Uint32Array(oldValues.length + insertValuesLen);\n        this.values.set(oldValues.subarray(0, insertIndex), 0);\n        this.values.set(oldValues.subarray(insertIndex), insertIndex + insertValuesLen);\n        this.values.set(insertValues, insertIndex);\n        if (insertIndex - 1 < this.prefixSumValidIndex[0]) {\n            this.prefixSumValidIndex[0] = insertIndex - 1;\n        }\n        this.prefixSum = new Uint32Array(this.values.length);\n        if (this.prefixSumValidIndex[0] >= 0) {\n            this.prefixSum.set(oldPrefixSum.subarray(0, this.prefixSumValidIndex[0] + 1));\n        }\n        return true;\n    }\n    setValue(index, value) {\n        index = toUint32(index);\n        value = toUint32(value);\n        if (this.values[index] === value) {\n            return false;\n        }\n        this.values[index] = value;\n        if (index - 1 < this.prefixSumValidIndex[0]) {\n            this.prefixSumValidIndex[0] = index - 1;\n        }\n        return true;\n    }\n    removeValues(startIndex, count) {\n        startIndex = toUint32(startIndex);\n        count = toUint32(count);\n        const oldValues = this.values;\n        const oldPrefixSum = this.prefixSum;\n        if (startIndex >= oldValues.length) {\n            return false;\n        }\n        const maxCount = oldValues.length - startIndex;\n        if (count >= maxCount) {\n            count = maxCount;\n        }\n        if (count === 0) {\n            return false;\n        }\n        this.values = new Uint32Array(oldValues.length - count);\n        this.values.set(oldValues.subarray(0, startIndex), 0);\n        this.values.set(oldValues.subarray(startIndex + count), startIndex);\n        this.prefixSum = new Uint32Array(this.values.length);\n        if (startIndex - 1 < this.prefixSumValidIndex[0]) {\n            this.prefixSumValidIndex[0] = startIndex - 1;\n        }\n        if (this.prefixSumValidIndex[0] >= 0) {\n            this.prefixSum.set(oldPrefixSum.subarray(0, this.prefixSumValidIndex[0] + 1));\n        }\n        return true;\n    }\n    getTotalSum() {\n        if (this.values.length === 0) {\n            return 0;\n        }\n        return this._getPrefixSum(this.values.length - 1);\n    }\n    /**\n     * Returns the sum of the first `index + 1` many items.\n     * @returns `SUM(0 <= j <= index, values[j])`.\n     */\n    getPrefixSum(index) {\n        if (index < 0) {\n            return 0;\n        }\n        index = toUint32(index);\n        return this._getPrefixSum(index);\n    }\n    _getPrefixSum(index) {\n        if (index <= this.prefixSumValidIndex[0]) {\n            return this.prefixSum[index];\n        }\n        let startIndex = this.prefixSumValidIndex[0] + 1;\n        if (startIndex === 0) {\n            this.prefixSum[0] = this.values[0];\n            startIndex++;\n        }\n        if (index >= this.values.length) {\n            index = this.values.length - 1;\n        }\n        for (let i = startIndex; i <= index; i++) {\n            this.prefixSum[i] = this.prefixSum[i - 1] + this.values[i];\n        }\n        this.prefixSumValidIndex[0] = Math.max(this.prefixSumValidIndex[0], index);\n        return this.prefixSum[index];\n    }\n    getIndexOf(sum) {\n        sum = Math.floor(sum);\n        // Compute all sums (to get a fully valid prefixSum)\n        this.getTotalSum();\n        let low = 0;\n        let high = this.values.length - 1;\n        let mid = 0;\n        let midStop = 0;\n        let midStart = 0;\n        while (low <= high) {\n            mid = low + ((high - low) / 2) | 0;\n            midStop = this.prefixSum[mid];\n            midStart = midStop - this.values[mid];\n            if (sum < midStart) {\n                high = mid - 1;\n            }\n            else if (sum >= midStop) {\n                low = mid + 1;\n            }\n            else {\n                break;\n            }\n        }\n        return new PrefixSumIndexOfResult(mid, sum - midStart);\n    }\n}\n/**\n * {@link getIndexOf} has an amortized runtime complexity of O(1).\n *\n * ({@link PrefixSumComputer.getIndexOf} is just  O(log n))\n*/\nexport class ConstantTimePrefixSumComputer {\n    constructor(values) {\n        this._values = values;\n        this._isValid = false;\n        this._validEndIndex = -1;\n        this._prefixSum = [];\n        this._indexBySum = [];\n    }\n    /**\n     * @returns SUM(0 <= j < values.length, values[j])\n     */\n    getTotalSum() {\n        this._ensureValid();\n        return this._indexBySum.length;\n    }\n    /**\n     * Returns the sum of the first `count` many items.\n     * @returns `SUM(0 <= j < count, values[j])`.\n     */\n    getPrefixSum(count) {\n        this._ensureValid();\n        if (count === 0) {\n            return 0;\n        }\n        return this._prefixSum[count - 1];\n    }\n    /**\n     * @returns `result`, such that `getPrefixSum(result.index) + result.remainder = sum`\n     */\n    getIndexOf(sum) {\n        this._ensureValid();\n        const idx = this._indexBySum[sum];\n        const viewLinesAbove = idx > 0 ? this._prefixSum[idx - 1] : 0;\n        return new PrefixSumIndexOfResult(idx, sum - viewLinesAbove);\n    }\n    removeValues(start, deleteCount) {\n        this._values.splice(start, deleteCount);\n        this._invalidate(start);\n    }\n    insertValues(insertIndex, insertArr) {\n        this._values = arrayInsert(this._values, insertIndex, insertArr);\n        this._invalidate(insertIndex);\n    }\n    _invalidate(index) {\n        this._isValid = false;\n        this._validEndIndex = Math.min(this._validEndIndex, index - 1);\n    }\n    _ensureValid() {\n        if (this._isValid) {\n            return;\n        }\n        for (let i = this._validEndIndex + 1, len = this._values.length; i < len; i++) {\n            const value = this._values[i];\n            const sumAbove = i > 0 ? this._prefixSum[i - 1] : 0;\n            this._prefixSum[i] = sumAbove + value;\n            for (let j = 0; j < value; j++) {\n                this._indexBySum[sumAbove + j] = i;\n            }\n        }\n        // trim things\n        this._prefixSum.length = this._values.length;\n        this._indexBySum.length = this._prefixSum[this._prefixSum.length - 1];\n        // mark as valid\n        this._isValid = true;\n        this._validEndIndex = this._values.length - 1;\n    }\n    setValue(index, value) {\n        if (this._values[index] === value) {\n            // no change\n            return;\n        }\n        this._values[index] = value;\n        this._invalidate(index);\n    }\n}\nexport class PrefixSumIndexOfResult {\n    constructor(index, remainder) {\n        this.index = index;\n        this.remainder = remainder;\n        this._prefixSumIndexOfResultBrand = undefined;\n        this.index = index;\n        this.remainder = remainder;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/textModel.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar TextModel_1;\nimport { ArrayQueue, pushMany } from '../../../base/common/arrays.js';\nimport { Color } from '../../../base/common/color.js';\nimport { BugIndicatingError, illegalArgument, onUnexpectedError } from '../../../base/common/errors.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { Disposable, MutableDisposable, combinedDisposable } from '../../../base/common/lifecycle.js';\nimport * as strings from '../../../base/common/strings.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { countEOL } from '../core/eolCounter.js';\nimport { normalizeIndentation } from '../core/indentation.js';\nimport { LineRange } from '../core/lineRange.js';\nimport { Position } from '../core/position.js';\nimport { Range } from '../core/range.js';\nimport { Selection } from '../core/selection.js';\nimport { EDITOR_MODEL_DEFAULTS } from '../core/textModelDefaults.js';\nimport { ILanguageService } from '../languages/language.js';\nimport { ILanguageConfigurationService } from '../languages/languageConfigurationRegistry.js';\nimport * as model from '../model.js';\nimport { BracketPairsTextModelPart } from './bracketPairsTextModelPart/bracketPairsImpl.js';\nimport { ColorizedBracketPairsDecorationProvider } from './bracketPairsTextModelPart/colorizedBracketPairsDecorationProvider.js';\nimport { EditStack } from './editStack.js';\nimport { GuidesTextModelPart } from './guidesTextModelPart.js';\nimport { guessIndentation } from './indentationGuesser.js';\nimport { IntervalNode, IntervalTree, recomputeMaxEnd } from './intervalTree.js';\nimport { PieceTreeTextBuffer } from './pieceTreeTextBuffer/pieceTreeTextBuffer.js';\nimport { PieceTreeTextBufferBuilder } from './pieceTreeTextBuffer/pieceTreeTextBufferBuilder.js';\nimport { SearchParams, TextModelSearch } from './textModelSearch.js';\nimport { TokenizationTextModelPart } from './tokenizationTextModelPart.js';\nimport { InternalModelContentChangeEvent, LineInjectedText, ModelInjectedTextChangedEvent, ModelRawContentChangedEvent, ModelRawEOLChanged, ModelRawFlush, ModelRawLineChanged, ModelRawLinesDeleted, ModelRawLinesInserted } from '../textModelEvents.js';\nimport { IUndoRedoService } from '../../../platform/undoRedo/common/undoRedo.js';\nexport function createTextBufferFactory(text) {\n    const builder = new PieceTreeTextBufferBuilder();\n    builder.acceptChunk(text);\n    return builder.finish();\n}\nexport function createTextBufferFactoryFromSnapshot(snapshot) {\n    const builder = new PieceTreeTextBufferBuilder();\n    let chunk;\n    while (typeof (chunk = snapshot.read()) === 'string') {\n        builder.acceptChunk(chunk);\n    }\n    return builder.finish();\n}\nexport function createTextBuffer(value, defaultEOL) {\n    let factory;\n    if (typeof value === 'string') {\n        factory = createTextBufferFactory(value);\n    }\n    else if (model.isITextSnapshot(value)) {\n        factory = createTextBufferFactoryFromSnapshot(value);\n    }\n    else {\n        factory = value;\n    }\n    return factory.create(defaultEOL);\n}\nlet MODEL_ID = 0;\nconst LIMIT_FIND_COUNT = 999;\nconst LONG_LINE_BOUNDARY = 10000;\nclass TextModelSnapshot {\n    constructor(source) {\n        this._source = source;\n        this._eos = false;\n    }\n    read() {\n        if (this._eos) {\n            return null;\n        }\n        const result = [];\n        let resultCnt = 0;\n        let resultLength = 0;\n        do {\n            const tmp = this._source.read();\n            if (tmp === null) {\n                // end-of-stream\n                this._eos = true;\n                if (resultCnt === 0) {\n                    return null;\n                }\n                else {\n                    return result.join('');\n                }\n            }\n            if (tmp.length > 0) {\n                result[resultCnt++] = tmp;\n                resultLength += tmp.length;\n            }\n            if (resultLength >= 64 * 1024) {\n                return result.join('');\n            }\n        } while (true);\n    }\n}\nconst invalidFunc = () => { throw new Error(`Invalid change accessor`); };\nlet TextModel = TextModel_1 = class TextModel extends Disposable {\n    static resolveOptions(textBuffer, options) {\n        if (options.detectIndentation) {\n            const guessedIndentation = guessIndentation(textBuffer, options.tabSize, options.insertSpaces);\n            return new model.TextModelResolvedOptions({\n                tabSize: guessedIndentation.tabSize,\n                indentSize: 'tabSize', // TODO@Alex: guess indentSize independent of tabSize\n                insertSpaces: guessedIndentation.insertSpaces,\n                trimAutoWhitespace: options.trimAutoWhitespace,\n                defaultEOL: options.defaultEOL,\n                bracketPairColorizationOptions: options.bracketPairColorizationOptions,\n            });\n        }\n        return new model.TextModelResolvedOptions(options);\n    }\n    get onDidChangeLanguage() { return this._tokenizationTextModelPart.onDidChangeLanguage; }\n    get onDidChangeLanguageConfiguration() { return this._tokenizationTextModelPart.onDidChangeLanguageConfiguration; }\n    get onDidChangeTokens() { return this._tokenizationTextModelPart.onDidChangeTokens; }\n    onDidChangeContent(listener) {\n        return this._eventEmitter.slowEvent((e) => listener(e.contentChangedEvent));\n    }\n    onDidChangeContentOrInjectedText(listener) {\n        return combinedDisposable(this._eventEmitter.fastEvent(e => listener(e)), this._onDidChangeInjectedText.event(e => listener(e)));\n    }\n    _isDisposing() { return this.__isDisposing; }\n    get tokenization() { return this._tokenizationTextModelPart; }\n    get bracketPairs() { return this._bracketPairs; }\n    get guides() { return this._guidesTextModelPart; }\n    constructor(source, languageIdOrSelection, creationOptions, associatedResource = null, _undoRedoService, _languageService, _languageConfigurationService) {\n        super();\n        this._undoRedoService = _undoRedoService;\n        this._languageService = _languageService;\n        this._languageConfigurationService = _languageConfigurationService;\n        //#region Events\n        this._onWillDispose = this._register(new Emitter());\n        this.onWillDispose = this._onWillDispose.event;\n        this._onDidChangeDecorations = this._register(new DidChangeDecorationsEmitter(affectedInjectedTextLines => this.handleBeforeFireDecorationsChangedEvent(affectedInjectedTextLines)));\n        this.onDidChangeDecorations = this._onDidChangeDecorations.event;\n        this._onDidChangeOptions = this._register(new Emitter());\n        this.onDidChangeOptions = this._onDidChangeOptions.event;\n        this._onDidChangeAttached = this._register(new Emitter());\n        this.onDidChangeAttached = this._onDidChangeAttached.event;\n        this._onDidChangeInjectedText = this._register(new Emitter());\n        this._eventEmitter = this._register(new DidChangeContentEmitter());\n        this._languageSelectionListener = this._register(new MutableDisposable());\n        this._deltaDecorationCallCnt = 0;\n        this._attachedViews = new AttachedViews();\n        // Generate a new unique model id\n        MODEL_ID++;\n        this.id = '$model' + MODEL_ID;\n        this.isForSimpleWidget = creationOptions.isForSimpleWidget;\n        if (typeof associatedResource === 'undefined' || associatedResource === null) {\n            this._associatedResource = URI.parse('inmemory://model/' + MODEL_ID);\n        }\n        else {\n            this._associatedResource = associatedResource;\n        }\n        this._attachedEditorCount = 0;\n        const { textBuffer, disposable } = createTextBuffer(source, creationOptions.defaultEOL);\n        this._buffer = textBuffer;\n        this._bufferDisposable = disposable;\n        this._options = TextModel_1.resolveOptions(this._buffer, creationOptions);\n        const languageId = (typeof languageIdOrSelection === 'string' ? languageIdOrSelection : languageIdOrSelection.languageId);\n        if (typeof languageIdOrSelection !== 'string') {\n            this._languageSelectionListener.value = languageIdOrSelection.onDidChange(() => this._setLanguage(languageIdOrSelection.languageId));\n        }\n        this._bracketPairs = this._register(new BracketPairsTextModelPart(this, this._languageConfigurationService));\n        this._guidesTextModelPart = this._register(new GuidesTextModelPart(this, this._languageConfigurationService));\n        this._decorationProvider = this._register(new ColorizedBracketPairsDecorationProvider(this));\n        this._tokenizationTextModelPart = new TokenizationTextModelPart(this._languageService, this._languageConfigurationService, this, this._bracketPairs, languageId, this._attachedViews);\n        const bufferLineCount = this._buffer.getLineCount();\n        const bufferTextLength = this._buffer.getValueLengthInRange(new Range(1, 1, bufferLineCount, this._buffer.getLineLength(bufferLineCount) + 1), 0 /* model.EndOfLinePreference.TextDefined */);\n        // !!! Make a decision in the ctor and permanently respect this decision !!!\n        // If a model is too large at construction time, it will never get tokenized,\n        // under no circumstances.\n        if (creationOptions.largeFileOptimizations) {\n            this._isTooLargeForTokenization = ((bufferTextLength > TextModel_1.LARGE_FILE_SIZE_THRESHOLD)\n                || (bufferLineCount > TextModel_1.LARGE_FILE_LINE_COUNT_THRESHOLD));\n            this._isTooLargeForHeapOperation = bufferTextLength > TextModel_1.LARGE_FILE_HEAP_OPERATION_THRESHOLD;\n        }\n        else {\n            this._isTooLargeForTokenization = false;\n            this._isTooLargeForHeapOperation = false;\n        }\n        this._isTooLargeForSyncing = (bufferTextLength > TextModel_1._MODEL_SYNC_LIMIT);\n        this._versionId = 1;\n        this._alternativeVersionId = 1;\n        this._initialUndoRedoSnapshot = null;\n        this._isDisposed = false;\n        this.__isDisposing = false;\n        this._instanceId = strings.singleLetterHash(MODEL_ID);\n        this._lastDecorationId = 0;\n        this._decorations = Object.create(null);\n        this._decorationsTree = new DecorationsTrees();\n        this._commandManager = new EditStack(this, this._undoRedoService);\n        this._isUndoing = false;\n        this._isRedoing = false;\n        this._trimAutoWhitespaceLines = null;\n        this._register(this._decorationProvider.onDidChange(() => {\n            this._onDidChangeDecorations.beginDeferredEmit();\n            this._onDidChangeDecorations.fire();\n            this._onDidChangeDecorations.endDeferredEmit();\n        }));\n        this._languageService.requestRichLanguageFeatures(languageId);\n    }\n    dispose() {\n        this.__isDisposing = true;\n        this._onWillDispose.fire();\n        this._tokenizationTextModelPart.dispose();\n        this._isDisposed = true;\n        super.dispose();\n        this._bufferDisposable.dispose();\n        this.__isDisposing = false;\n        // Manually release reference to previous text buffer to avoid large leaks\n        // in case someone leaks a TextModel reference\n        const emptyDisposedTextBuffer = new PieceTreeTextBuffer([], '', '\\n', false, false, true, true);\n        emptyDisposedTextBuffer.dispose();\n        this._buffer = emptyDisposedTextBuffer;\n        this._bufferDisposable = Disposable.None;\n    }\n    _assertNotDisposed() {\n        if (this._isDisposed) {\n            throw new Error('Model is disposed!');\n        }\n    }\n    _emitContentChangedEvent(rawChange, change) {\n        if (this.__isDisposing) {\n            // Do not confuse listeners by emitting any event after disposing\n            return;\n        }\n        this._tokenizationTextModelPart.handleDidChangeContent(change);\n        this._bracketPairs.handleDidChangeContent(change);\n        this._eventEmitter.fire(new InternalModelContentChangeEvent(rawChange, change));\n    }\n    setValue(value) {\n        this._assertNotDisposed();\n        if (value === null || value === undefined) {\n            throw illegalArgument();\n        }\n        const { textBuffer, disposable } = createTextBuffer(value, this._options.defaultEOL);\n        this._setValueFromTextBuffer(textBuffer, disposable);\n    }\n    _createContentChanged2(range, rangeOffset, rangeLength, text, isUndoing, isRedoing, isFlush, isEolChange) {\n        return {\n            changes: [{\n                    range: range,\n                    rangeOffset: rangeOffset,\n                    rangeLength: rangeLength,\n                    text: text,\n                }],\n            eol: this._buffer.getEOL(),\n            isEolChange: isEolChange,\n            versionId: this.getVersionId(),\n            isUndoing: isUndoing,\n            isRedoing: isRedoing,\n            isFlush: isFlush\n        };\n    }\n    _setValueFromTextBuffer(textBuffer, textBufferDisposable) {\n        this._assertNotDisposed();\n        const oldFullModelRange = this.getFullModelRange();\n        const oldModelValueLength = this.getValueLengthInRange(oldFullModelRange);\n        const endLineNumber = this.getLineCount();\n        const endColumn = this.getLineMaxColumn(endLineNumber);\n        this._buffer = textBuffer;\n        this._bufferDisposable.dispose();\n        this._bufferDisposable = textBufferDisposable;\n        this._increaseVersionId();\n        // Destroy all my decorations\n        this._decorations = Object.create(null);\n        this._decorationsTree = new DecorationsTrees();\n        // Destroy my edit history and settings\n        this._commandManager.clear();\n        this._trimAutoWhitespaceLines = null;\n        this._emitContentChangedEvent(new ModelRawContentChangedEvent([\n            new ModelRawFlush()\n        ], this._versionId, false, false), this._createContentChanged2(new Range(1, 1, endLineNumber, endColumn), 0, oldModelValueLength, this.getValue(), false, false, true, false));\n    }\n    setEOL(eol) {\n        this._assertNotDisposed();\n        const newEOL = (eol === 1 /* model.EndOfLineSequence.CRLF */ ? '\\r\\n' : '\\n');\n        if (this._buffer.getEOL() === newEOL) {\n            // Nothing to do\n            return;\n        }\n        const oldFullModelRange = this.getFullModelRange();\n        const oldModelValueLength = this.getValueLengthInRange(oldFullModelRange);\n        const endLineNumber = this.getLineCount();\n        const endColumn = this.getLineMaxColumn(endLineNumber);\n        this._onBeforeEOLChange();\n        this._buffer.setEOL(newEOL);\n        this._increaseVersionId();\n        this._onAfterEOLChange();\n        this._emitContentChangedEvent(new ModelRawContentChangedEvent([\n            new ModelRawEOLChanged()\n        ], this._versionId, false, false), this._createContentChanged2(new Range(1, 1, endLineNumber, endColumn), 0, oldModelValueLength, this.getValue(), false, false, false, true));\n    }\n    _onBeforeEOLChange() {\n        // Ensure all decorations get their `range` set.\n        this._decorationsTree.ensureAllNodesHaveRanges(this);\n    }\n    _onAfterEOLChange() {\n        // Transform back `range` to offsets\n        const versionId = this.getVersionId();\n        const allDecorations = this._decorationsTree.collectNodesPostOrder();\n        for (let i = 0, len = allDecorations.length; i < len; i++) {\n            const node = allDecorations[i];\n            const range = node.range; // the range is defined due to `_onBeforeEOLChange`\n            const delta = node.cachedAbsoluteStart - node.start;\n            const startOffset = this._buffer.getOffsetAt(range.startLineNumber, range.startColumn);\n            const endOffset = this._buffer.getOffsetAt(range.endLineNumber, range.endColumn);\n            node.cachedAbsoluteStart = startOffset;\n            node.cachedAbsoluteEnd = endOffset;\n            node.cachedVersionId = versionId;\n            node.start = startOffset - delta;\n            node.end = endOffset - delta;\n            recomputeMaxEnd(node);\n        }\n    }\n    onBeforeAttached() {\n        this._attachedEditorCount++;\n        if (this._attachedEditorCount === 1) {\n            this._tokenizationTextModelPart.handleDidChangeAttached();\n            this._onDidChangeAttached.fire(undefined);\n        }\n        return this._attachedViews.attachView();\n    }\n    onBeforeDetached(view) {\n        this._attachedEditorCount--;\n        if (this._attachedEditorCount === 0) {\n            this._tokenizationTextModelPart.handleDidChangeAttached();\n            this._onDidChangeAttached.fire(undefined);\n        }\n        this._attachedViews.detachView(view);\n    }\n    isAttachedToEditor() {\n        return this._attachedEditorCount > 0;\n    }\n    getAttachedEditorCount() {\n        return this._attachedEditorCount;\n    }\n    isTooLargeForSyncing() {\n        return this._isTooLargeForSyncing;\n    }\n    isTooLargeForTokenization() {\n        return this._isTooLargeForTokenization;\n    }\n    isTooLargeForHeapOperation() {\n        return this._isTooLargeForHeapOperation;\n    }\n    isDisposed() {\n        return this._isDisposed;\n    }\n    isDominatedByLongLines() {\n        this._assertNotDisposed();\n        if (this.isTooLargeForTokenization()) {\n            // Cannot word wrap huge files anyways, so it doesn't really matter\n            return false;\n        }\n        let smallLineCharCount = 0;\n        let longLineCharCount = 0;\n        const lineCount = this._buffer.getLineCount();\n        for (let lineNumber = 1; lineNumber <= lineCount; lineNumber++) {\n            const lineLength = this._buffer.getLineLength(lineNumber);\n            if (lineLength >= LONG_LINE_BOUNDARY) {\n                longLineCharCount += lineLength;\n            }\n            else {\n                smallLineCharCount += lineLength;\n            }\n        }\n        return (longLineCharCount > smallLineCharCount);\n    }\n    get uri() {\n        return this._associatedResource;\n    }\n    //#region Options\n    getOptions() {\n        this._assertNotDisposed();\n        return this._options;\n    }\n    getFormattingOptions() {\n        return {\n            tabSize: this._options.indentSize,\n            insertSpaces: this._options.insertSpaces\n        };\n    }\n    updateOptions(_newOpts) {\n        this._assertNotDisposed();\n        const tabSize = (typeof _newOpts.tabSize !== 'undefined') ? _newOpts.tabSize : this._options.tabSize;\n        const indentSize = (typeof _newOpts.indentSize !== 'undefined') ? _newOpts.indentSize : this._options.originalIndentSize;\n        const insertSpaces = (typeof _newOpts.insertSpaces !== 'undefined') ? _newOpts.insertSpaces : this._options.insertSpaces;\n        const trimAutoWhitespace = (typeof _newOpts.trimAutoWhitespace !== 'undefined') ? _newOpts.trimAutoWhitespace : this._options.trimAutoWhitespace;\n        const bracketPairColorizationOptions = (typeof _newOpts.bracketColorizationOptions !== 'undefined') ? _newOpts.bracketColorizationOptions : this._options.bracketPairColorizationOptions;\n        const newOpts = new model.TextModelResolvedOptions({\n            tabSize: tabSize,\n            indentSize: indentSize,\n            insertSpaces: insertSpaces,\n            defaultEOL: this._options.defaultEOL,\n            trimAutoWhitespace: trimAutoWhitespace,\n            bracketPairColorizationOptions,\n        });\n        if (this._options.equals(newOpts)) {\n            return;\n        }\n        const e = this._options.createChangeEvent(newOpts);\n        this._options = newOpts;\n        this._bracketPairs.handleDidChangeOptions(e);\n        this._decorationProvider.handleDidChangeOptions(e);\n        this._onDidChangeOptions.fire(e);\n    }\n    detectIndentation(defaultInsertSpaces, defaultTabSize) {\n        this._assertNotDisposed();\n        const guessedIndentation = guessIndentation(this._buffer, defaultTabSize, defaultInsertSpaces);\n        this.updateOptions({\n            insertSpaces: guessedIndentation.insertSpaces,\n            tabSize: guessedIndentation.tabSize,\n            indentSize: guessedIndentation.tabSize, // TODO@Alex: guess indentSize independent of tabSize\n        });\n    }\n    normalizeIndentation(str) {\n        this._assertNotDisposed();\n        return normalizeIndentation(str, this._options.indentSize, this._options.insertSpaces);\n    }\n    //#endregion\n    //#region Reading\n    getVersionId() {\n        this._assertNotDisposed();\n        return this._versionId;\n    }\n    mightContainRTL() {\n        return this._buffer.mightContainRTL();\n    }\n    mightContainUnusualLineTerminators() {\n        return this._buffer.mightContainUnusualLineTerminators();\n    }\n    removeUnusualLineTerminators(selections = null) {\n        const matches = this.findMatches(strings.UNUSUAL_LINE_TERMINATORS.source, false, true, false, null, false, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */);\n        this._buffer.resetMightContainUnusualLineTerminators();\n        this.pushEditOperations(selections, matches.map(m => ({ range: m.range, text: null })), () => null);\n    }\n    mightContainNonBasicASCII() {\n        return this._buffer.mightContainNonBasicASCII();\n    }\n    getAlternativeVersionId() {\n        this._assertNotDisposed();\n        return this._alternativeVersionId;\n    }\n    getInitialUndoRedoSnapshot() {\n        this._assertNotDisposed();\n        return this._initialUndoRedoSnapshot;\n    }\n    getOffsetAt(rawPosition) {\n        this._assertNotDisposed();\n        const position = this._validatePosition(rawPosition.lineNumber, rawPosition.column, 0 /* StringOffsetValidationType.Relaxed */);\n        return this._buffer.getOffsetAt(position.lineNumber, position.column);\n    }\n    getPositionAt(rawOffset) {\n        this._assertNotDisposed();\n        const offset = (Math.min(this._buffer.getLength(), Math.max(0, rawOffset)));\n        return this._buffer.getPositionAt(offset);\n    }\n    _increaseVersionId() {\n        this._versionId = this._versionId + 1;\n        this._alternativeVersionId = this._versionId;\n    }\n    _overwriteVersionId(versionId) {\n        this._versionId = versionId;\n    }\n    _overwriteAlternativeVersionId(newAlternativeVersionId) {\n        this._alternativeVersionId = newAlternativeVersionId;\n    }\n    _overwriteInitialUndoRedoSnapshot(newInitialUndoRedoSnapshot) {\n        this._initialUndoRedoSnapshot = newInitialUndoRedoSnapshot;\n    }\n    getValue(eol, preserveBOM = false) {\n        this._assertNotDisposed();\n        if (this.isTooLargeForHeapOperation()) {\n            throw new BugIndicatingError('Operation would exceed heap memory limits');\n        }\n        const fullModelRange = this.getFullModelRange();\n        const fullModelValue = this.getValueInRange(fullModelRange, eol);\n        if (preserveBOM) {\n            return this._buffer.getBOM() + fullModelValue;\n        }\n        return fullModelValue;\n    }\n    createSnapshot(preserveBOM = false) {\n        return new TextModelSnapshot(this._buffer.createSnapshot(preserveBOM));\n    }\n    getValueLength(eol, preserveBOM = false) {\n        this._assertNotDisposed();\n        const fullModelRange = this.getFullModelRange();\n        const fullModelValue = this.getValueLengthInRange(fullModelRange, eol);\n        if (preserveBOM) {\n            return this._buffer.getBOM().length + fullModelValue;\n        }\n        return fullModelValue;\n    }\n    getValueInRange(rawRange, eol = 0 /* model.EndOfLinePreference.TextDefined */) {\n        this._assertNotDisposed();\n        return this._buffer.getValueInRange(this.validateRange(rawRange), eol);\n    }\n    getValueLengthInRange(rawRange, eol = 0 /* model.EndOfLinePreference.TextDefined */) {\n        this._assertNotDisposed();\n        return this._buffer.getValueLengthInRange(this.validateRange(rawRange), eol);\n    }\n    getCharacterCountInRange(rawRange, eol = 0 /* model.EndOfLinePreference.TextDefined */) {\n        this._assertNotDisposed();\n        return this._buffer.getCharacterCountInRange(this.validateRange(rawRange), eol);\n    }\n    getLineCount() {\n        this._assertNotDisposed();\n        return this._buffer.getLineCount();\n    }\n    getLineContent(lineNumber) {\n        this._assertNotDisposed();\n        if (lineNumber < 1 || lineNumber > this.getLineCount()) {\n            throw new BugIndicatingError('Illegal value for lineNumber');\n        }\n        return this._buffer.getLineContent(lineNumber);\n    }\n    getLineLength(lineNumber) {\n        this._assertNotDisposed();\n        if (lineNumber < 1 || lineNumber > this.getLineCount()) {\n            throw new BugIndicatingError('Illegal value for lineNumber');\n        }\n        return this._buffer.getLineLength(lineNumber);\n    }\n    getLinesContent() {\n        this._assertNotDisposed();\n        if (this.isTooLargeForHeapOperation()) {\n            throw new BugIndicatingError('Operation would exceed heap memory limits');\n        }\n        return this._buffer.getLinesContent();\n    }\n    getEOL() {\n        this._assertNotDisposed();\n        return this._buffer.getEOL();\n    }\n    getEndOfLineSequence() {\n        this._assertNotDisposed();\n        return (this._buffer.getEOL() === '\\n'\n            ? 0 /* model.EndOfLineSequence.LF */\n            : 1 /* model.EndOfLineSequence.CRLF */);\n    }\n    getLineMinColumn(lineNumber) {\n        this._assertNotDisposed();\n        return 1;\n    }\n    getLineMaxColumn(lineNumber) {\n        this._assertNotDisposed();\n        if (lineNumber < 1 || lineNumber > this.getLineCount()) {\n            throw new BugIndicatingError('Illegal value for lineNumber');\n        }\n        return this._buffer.getLineLength(lineNumber) + 1;\n    }\n    getLineFirstNonWhitespaceColumn(lineNumber) {\n        this._assertNotDisposed();\n        if (lineNumber < 1 || lineNumber > this.getLineCount()) {\n            throw new BugIndicatingError('Illegal value for lineNumber');\n        }\n        return this._buffer.getLineFirstNonWhitespaceColumn(lineNumber);\n    }\n    getLineLastNonWhitespaceColumn(lineNumber) {\n        this._assertNotDisposed();\n        if (lineNumber < 1 || lineNumber > this.getLineCount()) {\n            throw new BugIndicatingError('Illegal value for lineNumber');\n        }\n        return this._buffer.getLineLastNonWhitespaceColumn(lineNumber);\n    }\n    /**\n     * Validates `range` is within buffer bounds, but allows it to sit in between surrogate pairs, etc.\n     * Will try to not allocate if possible.\n     */\n    _validateRangeRelaxedNoAllocations(range) {\n        const linesCount = this._buffer.getLineCount();\n        const initialStartLineNumber = range.startLineNumber;\n        const initialStartColumn = range.startColumn;\n        let startLineNumber = Math.floor((typeof initialStartLineNumber === 'number' && !isNaN(initialStartLineNumber)) ? initialStartLineNumber : 1);\n        let startColumn = Math.floor((typeof initialStartColumn === 'number' && !isNaN(initialStartColumn)) ? initialStartColumn : 1);\n        if (startLineNumber < 1) {\n            startLineNumber = 1;\n            startColumn = 1;\n        }\n        else if (startLineNumber > linesCount) {\n            startLineNumber = linesCount;\n            startColumn = this.getLineMaxColumn(startLineNumber);\n        }\n        else {\n            if (startColumn <= 1) {\n                startColumn = 1;\n            }\n            else {\n                const maxColumn = this.getLineMaxColumn(startLineNumber);\n                if (startColumn >= maxColumn) {\n                    startColumn = maxColumn;\n                }\n            }\n        }\n        const initialEndLineNumber = range.endLineNumber;\n        const initialEndColumn = range.endColumn;\n        let endLineNumber = Math.floor((typeof initialEndLineNumber === 'number' && !isNaN(initialEndLineNumber)) ? initialEndLineNumber : 1);\n        let endColumn = Math.floor((typeof initialEndColumn === 'number' && !isNaN(initialEndColumn)) ? initialEndColumn : 1);\n        if (endLineNumber < 1) {\n            endLineNumber = 1;\n            endColumn = 1;\n        }\n        else if (endLineNumber > linesCount) {\n            endLineNumber = linesCount;\n            endColumn = this.getLineMaxColumn(endLineNumber);\n        }\n        else {\n            if (endColumn <= 1) {\n                endColumn = 1;\n            }\n            else {\n                const maxColumn = this.getLineMaxColumn(endLineNumber);\n                if (endColumn >= maxColumn) {\n                    endColumn = maxColumn;\n                }\n            }\n        }\n        if (initialStartLineNumber === startLineNumber\n            && initialStartColumn === startColumn\n            && initialEndLineNumber === endLineNumber\n            && initialEndColumn === endColumn\n            && range instanceof Range\n            && !(range instanceof Selection)) {\n            return range;\n        }\n        return new Range(startLineNumber, startColumn, endLineNumber, endColumn);\n    }\n    _isValidPosition(lineNumber, column, validationType) {\n        if (typeof lineNumber !== 'number' || typeof column !== 'number') {\n            return false;\n        }\n        if (isNaN(lineNumber) || isNaN(column)) {\n            return false;\n        }\n        if (lineNumber < 1 || column < 1) {\n            return false;\n        }\n        if ((lineNumber | 0) !== lineNumber || (column | 0) !== column) {\n            return false;\n        }\n        const lineCount = this._buffer.getLineCount();\n        if (lineNumber > lineCount) {\n            return false;\n        }\n        if (column === 1) {\n            return true;\n        }\n        const maxColumn = this.getLineMaxColumn(lineNumber);\n        if (column > maxColumn) {\n            return false;\n        }\n        if (validationType === 1 /* StringOffsetValidationType.SurrogatePairs */) {\n            // !!At this point, column > 1\n            const charCodeBefore = this._buffer.getLineCharCode(lineNumber, column - 2);\n            if (strings.isHighSurrogate(charCodeBefore)) {\n                return false;\n            }\n        }\n        return true;\n    }\n    _validatePosition(_lineNumber, _column, validationType) {\n        const lineNumber = Math.floor((typeof _lineNumber === 'number' && !isNaN(_lineNumber)) ? _lineNumber : 1);\n        const column = Math.floor((typeof _column === 'number' && !isNaN(_column)) ? _column : 1);\n        const lineCount = this._buffer.getLineCount();\n        if (lineNumber < 1) {\n            return new Position(1, 1);\n        }\n        if (lineNumber > lineCount) {\n            return new Position(lineCount, this.getLineMaxColumn(lineCount));\n        }\n        if (column <= 1) {\n            return new Position(lineNumber, 1);\n        }\n        const maxColumn = this.getLineMaxColumn(lineNumber);\n        if (column >= maxColumn) {\n            return new Position(lineNumber, maxColumn);\n        }\n        if (validationType === 1 /* StringOffsetValidationType.SurrogatePairs */) {\n            // If the position would end up in the middle of a high-low surrogate pair,\n            // we move it to before the pair\n            // !!At this point, column > 1\n            const charCodeBefore = this._buffer.getLineCharCode(lineNumber, column - 2);\n            if (strings.isHighSurrogate(charCodeBefore)) {\n                return new Position(lineNumber, column - 1);\n            }\n        }\n        return new Position(lineNumber, column);\n    }\n    validatePosition(position) {\n        const validationType = 1 /* StringOffsetValidationType.SurrogatePairs */;\n        this._assertNotDisposed();\n        // Avoid object allocation and cover most likely case\n        if (position instanceof Position) {\n            if (this._isValidPosition(position.lineNumber, position.column, validationType)) {\n                return position;\n            }\n        }\n        return this._validatePosition(position.lineNumber, position.column, validationType);\n    }\n    _isValidRange(range, validationType) {\n        const startLineNumber = range.startLineNumber;\n        const startColumn = range.startColumn;\n        const endLineNumber = range.endLineNumber;\n        const endColumn = range.endColumn;\n        if (!this._isValidPosition(startLineNumber, startColumn, 0 /* StringOffsetValidationType.Relaxed */)) {\n            return false;\n        }\n        if (!this._isValidPosition(endLineNumber, endColumn, 0 /* StringOffsetValidationType.Relaxed */)) {\n            return false;\n        }\n        if (validationType === 1 /* StringOffsetValidationType.SurrogatePairs */) {\n            const charCodeBeforeStart = (startColumn > 1 ? this._buffer.getLineCharCode(startLineNumber, startColumn - 2) : 0);\n            const charCodeBeforeEnd = (endColumn > 1 && endColumn <= this._buffer.getLineLength(endLineNumber) ? this._buffer.getLineCharCode(endLineNumber, endColumn - 2) : 0);\n            const startInsideSurrogatePair = strings.isHighSurrogate(charCodeBeforeStart);\n            const endInsideSurrogatePair = strings.isHighSurrogate(charCodeBeforeEnd);\n            if (!startInsideSurrogatePair && !endInsideSurrogatePair) {\n                return true;\n            }\n            return false;\n        }\n        return true;\n    }\n    validateRange(_range) {\n        const validationType = 1 /* StringOffsetValidationType.SurrogatePairs */;\n        this._assertNotDisposed();\n        // Avoid object allocation and cover most likely case\n        if ((_range instanceof Range) && !(_range instanceof Selection)) {\n            if (this._isValidRange(_range, validationType)) {\n                return _range;\n            }\n        }\n        const start = this._validatePosition(_range.startLineNumber, _range.startColumn, 0 /* StringOffsetValidationType.Relaxed */);\n        const end = this._validatePosition(_range.endLineNumber, _range.endColumn, 0 /* StringOffsetValidationType.Relaxed */);\n        const startLineNumber = start.lineNumber;\n        const startColumn = start.column;\n        const endLineNumber = end.lineNumber;\n        const endColumn = end.column;\n        if (validationType === 1 /* StringOffsetValidationType.SurrogatePairs */) {\n            const charCodeBeforeStart = (startColumn > 1 ? this._buffer.getLineCharCode(startLineNumber, startColumn - 2) : 0);\n            const charCodeBeforeEnd = (endColumn > 1 && endColumn <= this._buffer.getLineLength(endLineNumber) ? this._buffer.getLineCharCode(endLineNumber, endColumn - 2) : 0);\n            const startInsideSurrogatePair = strings.isHighSurrogate(charCodeBeforeStart);\n            const endInsideSurrogatePair = strings.isHighSurrogate(charCodeBeforeEnd);\n            if (!startInsideSurrogatePair && !endInsideSurrogatePair) {\n                return new Range(startLineNumber, startColumn, endLineNumber, endColumn);\n            }\n            if (startLineNumber === endLineNumber && startColumn === endColumn) {\n                // do not expand a collapsed range, simply move it to a valid location\n                return new Range(startLineNumber, startColumn - 1, endLineNumber, endColumn - 1);\n            }\n            if (startInsideSurrogatePair && endInsideSurrogatePair) {\n                // expand range at both ends\n                return new Range(startLineNumber, startColumn - 1, endLineNumber, endColumn + 1);\n            }\n            if (startInsideSurrogatePair) {\n                // only expand range at the start\n                return new Range(startLineNumber, startColumn - 1, endLineNumber, endColumn);\n            }\n            // only expand range at the end\n            return new Range(startLineNumber, startColumn, endLineNumber, endColumn + 1);\n        }\n        return new Range(startLineNumber, startColumn, endLineNumber, endColumn);\n    }\n    modifyPosition(rawPosition, offset) {\n        this._assertNotDisposed();\n        const candidate = this.getOffsetAt(rawPosition) + offset;\n        return this.getPositionAt(Math.min(this._buffer.getLength(), Math.max(0, candidate)));\n    }\n    getFullModelRange() {\n        this._assertNotDisposed();\n        const lineCount = this.getLineCount();\n        return new Range(1, 1, lineCount, this.getLineMaxColumn(lineCount));\n    }\n    findMatchesLineByLine(searchRange, searchData, captureMatches, limitResultCount) {\n        return this._buffer.findMatchesLineByLine(searchRange, searchData, captureMatches, limitResultCount);\n    }\n    findMatches(searchString, rawSearchScope, isRegex, matchCase, wordSeparators, captureMatches, limitResultCount = LIMIT_FIND_COUNT) {\n        this._assertNotDisposed();\n        let searchRanges = null;\n        if (rawSearchScope !== null) {\n            if (!Array.isArray(rawSearchScope)) {\n                rawSearchScope = [rawSearchScope];\n            }\n            if (rawSearchScope.every((searchScope) => Range.isIRange(searchScope))) {\n                searchRanges = rawSearchScope.map((searchScope) => this.validateRange(searchScope));\n            }\n        }\n        if (searchRanges === null) {\n            searchRanges = [this.getFullModelRange()];\n        }\n        searchRanges = searchRanges.sort((d1, d2) => d1.startLineNumber - d2.startLineNumber || d1.startColumn - d2.startColumn);\n        const uniqueSearchRanges = [];\n        uniqueSearchRanges.push(searchRanges.reduce((prev, curr) => {\n            if (Range.areIntersecting(prev, curr)) {\n                return prev.plusRange(curr);\n            }\n            uniqueSearchRanges.push(prev);\n            return curr;\n        }));\n        let matchMapper;\n        if (!isRegex && searchString.indexOf('\\n') < 0) {\n            // not regex, not multi line\n            const searchParams = new SearchParams(searchString, isRegex, matchCase, wordSeparators);\n            const searchData = searchParams.parseSearchRequest();\n            if (!searchData) {\n                return [];\n            }\n            matchMapper = (searchRange) => this.findMatchesLineByLine(searchRange, searchData, captureMatches, limitResultCount);\n        }\n        else {\n            matchMapper = (searchRange) => TextModelSearch.findMatches(this, new SearchParams(searchString, isRegex, matchCase, wordSeparators), searchRange, captureMatches, limitResultCount);\n        }\n        return uniqueSearchRanges.map(matchMapper).reduce((arr, matches) => arr.concat(matches), []);\n    }\n    findNextMatch(searchString, rawSearchStart, isRegex, matchCase, wordSeparators, captureMatches) {\n        this._assertNotDisposed();\n        const searchStart = this.validatePosition(rawSearchStart);\n        if (!isRegex && searchString.indexOf('\\n') < 0) {\n            const searchParams = new SearchParams(searchString, isRegex, matchCase, wordSeparators);\n            const searchData = searchParams.parseSearchRequest();\n            if (!searchData) {\n                return null;\n            }\n            const lineCount = this.getLineCount();\n            let searchRange = new Range(searchStart.lineNumber, searchStart.column, lineCount, this.getLineMaxColumn(lineCount));\n            let ret = this.findMatchesLineByLine(searchRange, searchData, captureMatches, 1);\n            TextModelSearch.findNextMatch(this, new SearchParams(searchString, isRegex, matchCase, wordSeparators), searchStart, captureMatches);\n            if (ret.length > 0) {\n                return ret[0];\n            }\n            searchRange = new Range(1, 1, searchStart.lineNumber, this.getLineMaxColumn(searchStart.lineNumber));\n            ret = this.findMatchesLineByLine(searchRange, searchData, captureMatches, 1);\n            if (ret.length > 0) {\n                return ret[0];\n            }\n            return null;\n        }\n        return TextModelSearch.findNextMatch(this, new SearchParams(searchString, isRegex, matchCase, wordSeparators), searchStart, captureMatches);\n    }\n    findPreviousMatch(searchString, rawSearchStart, isRegex, matchCase, wordSeparators, captureMatches) {\n        this._assertNotDisposed();\n        const searchStart = this.validatePosition(rawSearchStart);\n        return TextModelSearch.findPreviousMatch(this, new SearchParams(searchString, isRegex, matchCase, wordSeparators), searchStart, captureMatches);\n    }\n    //#endregion\n    //#region Editing\n    pushStackElement() {\n        this._commandManager.pushStackElement();\n    }\n    popStackElement() {\n        this._commandManager.popStackElement();\n    }\n    pushEOL(eol) {\n        const currentEOL = (this.getEOL() === '\\n' ? 0 /* model.EndOfLineSequence.LF */ : 1 /* model.EndOfLineSequence.CRLF */);\n        if (currentEOL === eol) {\n            return;\n        }\n        try {\n            this._onDidChangeDecorations.beginDeferredEmit();\n            this._eventEmitter.beginDeferredEmit();\n            if (this._initialUndoRedoSnapshot === null) {\n                this._initialUndoRedoSnapshot = this._undoRedoService.createSnapshot(this.uri);\n            }\n            this._commandManager.pushEOL(eol);\n        }\n        finally {\n            this._eventEmitter.endDeferredEmit();\n            this._onDidChangeDecorations.endDeferredEmit();\n        }\n    }\n    _validateEditOperation(rawOperation) {\n        if (rawOperation instanceof model.ValidAnnotatedEditOperation) {\n            return rawOperation;\n        }\n        return new model.ValidAnnotatedEditOperation(rawOperation.identifier || null, this.validateRange(rawOperation.range), rawOperation.text, rawOperation.forceMoveMarkers || false, rawOperation.isAutoWhitespaceEdit || false, rawOperation._isTracked || false);\n    }\n    _validateEditOperations(rawOperations) {\n        const result = [];\n        for (let i = 0, len = rawOperations.length; i < len; i++) {\n            result[i] = this._validateEditOperation(rawOperations[i]);\n        }\n        return result;\n    }\n    pushEditOperations(beforeCursorState, editOperations, cursorStateComputer, group) {\n        try {\n            this._onDidChangeDecorations.beginDeferredEmit();\n            this._eventEmitter.beginDeferredEmit();\n            return this._pushEditOperations(beforeCursorState, this._validateEditOperations(editOperations), cursorStateComputer, group);\n        }\n        finally {\n            this._eventEmitter.endDeferredEmit();\n            this._onDidChangeDecorations.endDeferredEmit();\n        }\n    }\n    _pushEditOperations(beforeCursorState, editOperations, cursorStateComputer, group) {\n        if (this._options.trimAutoWhitespace && this._trimAutoWhitespaceLines) {\n            // Go through each saved line number and insert a trim whitespace edit\n            // if it is safe to do so (no conflicts with other edits).\n            const incomingEdits = editOperations.map((op) => {\n                return {\n                    range: this.validateRange(op.range),\n                    text: op.text\n                };\n            });\n            // Sometimes, auto-formatters change ranges automatically which can cause undesired auto whitespace trimming near the cursor\n            // We'll use the following heuristic: if the edits occur near the cursor, then it's ok to trim auto whitespace\n            let editsAreNearCursors = true;\n            if (beforeCursorState) {\n                for (let i = 0, len = beforeCursorState.length; i < len; i++) {\n                    const sel = beforeCursorState[i];\n                    let foundEditNearSel = false;\n                    for (let j = 0, lenJ = incomingEdits.length; j < lenJ; j++) {\n                        const editRange = incomingEdits[j].range;\n                        const selIsAbove = editRange.startLineNumber > sel.endLineNumber;\n                        const selIsBelow = sel.startLineNumber > editRange.endLineNumber;\n                        if (!selIsAbove && !selIsBelow) {\n                            foundEditNearSel = true;\n                            break;\n                        }\n                    }\n                    if (!foundEditNearSel) {\n                        editsAreNearCursors = false;\n                        break;\n                    }\n                }\n            }\n            if (editsAreNearCursors) {\n                for (let i = 0, len = this._trimAutoWhitespaceLines.length; i < len; i++) {\n                    const trimLineNumber = this._trimAutoWhitespaceLines[i];\n                    const maxLineColumn = this.getLineMaxColumn(trimLineNumber);\n                    let allowTrimLine = true;\n                    for (let j = 0, lenJ = incomingEdits.length; j < lenJ; j++) {\n                        const editRange = incomingEdits[j].range;\n                        const editText = incomingEdits[j].text;\n                        if (trimLineNumber < editRange.startLineNumber || trimLineNumber > editRange.endLineNumber) {\n                            // `trimLine` is completely outside this edit\n                            continue;\n                        }\n                        // At this point:\n                        //   editRange.startLineNumber <= trimLine <= editRange.endLineNumber\n                        if (trimLineNumber === editRange.startLineNumber && editRange.startColumn === maxLineColumn\n                            && editRange.isEmpty() && editText && editText.length > 0 && editText.charAt(0) === '\\n') {\n                            // This edit inserts a new line (and maybe other text) after `trimLine`\n                            continue;\n                        }\n                        if (trimLineNumber === editRange.startLineNumber && editRange.startColumn === 1\n                            && editRange.isEmpty() && editText && editText.length > 0 && editText.charAt(editText.length - 1) === '\\n') {\n                            // This edit inserts a new line (and maybe other text) before `trimLine`\n                            continue;\n                        }\n                        // Looks like we can't trim this line as it would interfere with an incoming edit\n                        allowTrimLine = false;\n                        break;\n                    }\n                    if (allowTrimLine) {\n                        const trimRange = new Range(trimLineNumber, 1, trimLineNumber, maxLineColumn);\n                        editOperations.push(new model.ValidAnnotatedEditOperation(null, trimRange, null, false, false, false));\n                    }\n                }\n            }\n            this._trimAutoWhitespaceLines = null;\n        }\n        if (this._initialUndoRedoSnapshot === null) {\n            this._initialUndoRedoSnapshot = this._undoRedoService.createSnapshot(this.uri);\n        }\n        return this._commandManager.pushEditOperation(beforeCursorState, editOperations, cursorStateComputer, group);\n    }\n    _applyUndo(changes, eol, resultingAlternativeVersionId, resultingSelection) {\n        const edits = changes.map((change) => {\n            const rangeStart = this.getPositionAt(change.newPosition);\n            const rangeEnd = this.getPositionAt(change.newEnd);\n            return {\n                range: new Range(rangeStart.lineNumber, rangeStart.column, rangeEnd.lineNumber, rangeEnd.column),\n                text: change.oldText\n            };\n        });\n        this._applyUndoRedoEdits(edits, eol, true, false, resultingAlternativeVersionId, resultingSelection);\n    }\n    _applyRedo(changes, eol, resultingAlternativeVersionId, resultingSelection) {\n        const edits = changes.map((change) => {\n            const rangeStart = this.getPositionAt(change.oldPosition);\n            const rangeEnd = this.getPositionAt(change.oldEnd);\n            return {\n                range: new Range(rangeStart.lineNumber, rangeStart.column, rangeEnd.lineNumber, rangeEnd.column),\n                text: change.newText\n            };\n        });\n        this._applyUndoRedoEdits(edits, eol, false, true, resultingAlternativeVersionId, resultingSelection);\n    }\n    _applyUndoRedoEdits(edits, eol, isUndoing, isRedoing, resultingAlternativeVersionId, resultingSelection) {\n        try {\n            this._onDidChangeDecorations.beginDeferredEmit();\n            this._eventEmitter.beginDeferredEmit();\n            this._isUndoing = isUndoing;\n            this._isRedoing = isRedoing;\n            this.applyEdits(edits, false);\n            this.setEOL(eol);\n            this._overwriteAlternativeVersionId(resultingAlternativeVersionId);\n        }\n        finally {\n            this._isUndoing = false;\n            this._isRedoing = false;\n            this._eventEmitter.endDeferredEmit(resultingSelection);\n            this._onDidChangeDecorations.endDeferredEmit();\n        }\n    }\n    applyEdits(rawOperations, computeUndoEdits = false) {\n        try {\n            this._onDidChangeDecorations.beginDeferredEmit();\n            this._eventEmitter.beginDeferredEmit();\n            const operations = this._validateEditOperations(rawOperations);\n            return this._doApplyEdits(operations, computeUndoEdits);\n        }\n        finally {\n            this._eventEmitter.endDeferredEmit();\n            this._onDidChangeDecorations.endDeferredEmit();\n        }\n    }\n    _doApplyEdits(rawOperations, computeUndoEdits) {\n        const oldLineCount = this._buffer.getLineCount();\n        const result = this._buffer.applyEdits(rawOperations, this._options.trimAutoWhitespace, computeUndoEdits);\n        const newLineCount = this._buffer.getLineCount();\n        const contentChanges = result.changes;\n        this._trimAutoWhitespaceLines = result.trimAutoWhitespaceLineNumbers;\n        if (contentChanges.length !== 0) {\n            // We do a first pass to update decorations\n            // because we want to read decorations in the second pass\n            // where we will emit content change events\n            // and we want to read the final decorations\n            for (let i = 0, len = contentChanges.length; i < len; i++) {\n                const change = contentChanges[i];\n                this._decorationsTree.acceptReplace(change.rangeOffset, change.rangeLength, change.text.length, change.forceMoveMarkers);\n            }\n            const rawContentChanges = [];\n            this._increaseVersionId();\n            let lineCount = oldLineCount;\n            for (let i = 0, len = contentChanges.length; i < len; i++) {\n                const change = contentChanges[i];\n                const [eolCount] = countEOL(change.text);\n                this._onDidChangeDecorations.fire();\n                const startLineNumber = change.range.startLineNumber;\n                const endLineNumber = change.range.endLineNumber;\n                const deletingLinesCnt = endLineNumber - startLineNumber;\n                const insertingLinesCnt = eolCount;\n                const editingLinesCnt = Math.min(deletingLinesCnt, insertingLinesCnt);\n                const changeLineCountDelta = (insertingLinesCnt - deletingLinesCnt);\n                const currentEditStartLineNumber = newLineCount - lineCount - changeLineCountDelta + startLineNumber;\n                const firstEditLineNumber = currentEditStartLineNumber;\n                const lastInsertedLineNumber = currentEditStartLineNumber + insertingLinesCnt;\n                const decorationsWithInjectedTextInEditedRange = this._decorationsTree.getInjectedTextInInterval(this, this.getOffsetAt(new Position(firstEditLineNumber, 1)), this.getOffsetAt(new Position(lastInsertedLineNumber, this.getLineMaxColumn(lastInsertedLineNumber))), 0);\n                const injectedTextInEditedRange = LineInjectedText.fromDecorations(decorationsWithInjectedTextInEditedRange);\n                const injectedTextInEditedRangeQueue = new ArrayQueue(injectedTextInEditedRange);\n                for (let j = editingLinesCnt; j >= 0; j--) {\n                    const editLineNumber = startLineNumber + j;\n                    const currentEditLineNumber = currentEditStartLineNumber + j;\n                    injectedTextInEditedRangeQueue.takeFromEndWhile(r => r.lineNumber > currentEditLineNumber);\n                    const decorationsInCurrentLine = injectedTextInEditedRangeQueue.takeFromEndWhile(r => r.lineNumber === currentEditLineNumber);\n                    rawContentChanges.push(new ModelRawLineChanged(editLineNumber, this.getLineContent(currentEditLineNumber), decorationsInCurrentLine));\n                }\n                if (editingLinesCnt < deletingLinesCnt) {\n                    // Must delete some lines\n                    const spliceStartLineNumber = startLineNumber + editingLinesCnt;\n                    rawContentChanges.push(new ModelRawLinesDeleted(spliceStartLineNumber + 1, endLineNumber));\n                }\n                if (editingLinesCnt < insertingLinesCnt) {\n                    const injectedTextInEditedRangeQueue = new ArrayQueue(injectedTextInEditedRange);\n                    // Must insert some lines\n                    const spliceLineNumber = startLineNumber + editingLinesCnt;\n                    const cnt = insertingLinesCnt - editingLinesCnt;\n                    const fromLineNumber = newLineCount - lineCount - cnt + spliceLineNumber + 1;\n                    const injectedTexts = [];\n                    const newLines = [];\n                    for (let i = 0; i < cnt; i++) {\n                        const lineNumber = fromLineNumber + i;\n                        newLines[i] = this.getLineContent(lineNumber);\n                        injectedTextInEditedRangeQueue.takeWhile(r => r.lineNumber < lineNumber);\n                        injectedTexts[i] = injectedTextInEditedRangeQueue.takeWhile(r => r.lineNumber === lineNumber);\n                    }\n                    rawContentChanges.push(new ModelRawLinesInserted(spliceLineNumber + 1, startLineNumber + insertingLinesCnt, newLines, injectedTexts));\n                }\n                lineCount += changeLineCountDelta;\n            }\n            this._emitContentChangedEvent(new ModelRawContentChangedEvent(rawContentChanges, this.getVersionId(), this._isUndoing, this._isRedoing), {\n                changes: contentChanges,\n                eol: this._buffer.getEOL(),\n                isEolChange: false,\n                versionId: this.getVersionId(),\n                isUndoing: this._isUndoing,\n                isRedoing: this._isRedoing,\n                isFlush: false\n            });\n        }\n        return (result.reverseEdits === null ? undefined : result.reverseEdits);\n    }\n    undo() {\n        return this._undoRedoService.undo(this.uri);\n    }\n    canUndo() {\n        return this._undoRedoService.canUndo(this.uri);\n    }\n    redo() {\n        return this._undoRedoService.redo(this.uri);\n    }\n    canRedo() {\n        return this._undoRedoService.canRedo(this.uri);\n    }\n    //#endregion\n    //#region Decorations\n    handleBeforeFireDecorationsChangedEvent(affectedInjectedTextLines) {\n        // This is called before the decoration changed event is fired.\n        if (affectedInjectedTextLines === null || affectedInjectedTextLines.size === 0) {\n            return;\n        }\n        const affectedLines = Array.from(affectedInjectedTextLines);\n        const lineChangeEvents = affectedLines.map(lineNumber => new ModelRawLineChanged(lineNumber, this.getLineContent(lineNumber), this._getInjectedTextInLine(lineNumber)));\n        this._onDidChangeInjectedText.fire(new ModelInjectedTextChangedEvent(lineChangeEvents));\n    }\n    changeDecorations(callback, ownerId = 0) {\n        this._assertNotDisposed();\n        try {\n            this._onDidChangeDecorations.beginDeferredEmit();\n            return this._changeDecorations(ownerId, callback);\n        }\n        finally {\n            this._onDidChangeDecorations.endDeferredEmit();\n        }\n    }\n    _changeDecorations(ownerId, callback) {\n        const changeAccessor = {\n            addDecoration: (range, options) => {\n                return this._deltaDecorationsImpl(ownerId, [], [{ range: range, options: options }])[0];\n            },\n            changeDecoration: (id, newRange) => {\n                this._changeDecorationImpl(id, newRange);\n            },\n            changeDecorationOptions: (id, options) => {\n                this._changeDecorationOptionsImpl(id, _normalizeOptions(options));\n            },\n            removeDecoration: (id) => {\n                this._deltaDecorationsImpl(ownerId, [id], []);\n            },\n            deltaDecorations: (oldDecorations, newDecorations) => {\n                if (oldDecorations.length === 0 && newDecorations.length === 0) {\n                    // nothing to do\n                    return [];\n                }\n                return this._deltaDecorationsImpl(ownerId, oldDecorations, newDecorations);\n            }\n        };\n        let result = null;\n        try {\n            result = callback(changeAccessor);\n        }\n        catch (e) {\n            onUnexpectedError(e);\n        }\n        // Invalidate change accessor\n        changeAccessor.addDecoration = invalidFunc;\n        changeAccessor.changeDecoration = invalidFunc;\n        changeAccessor.changeDecorationOptions = invalidFunc;\n        changeAccessor.removeDecoration = invalidFunc;\n        changeAccessor.deltaDecorations = invalidFunc;\n        return result;\n    }\n    deltaDecorations(oldDecorations, newDecorations, ownerId = 0) {\n        this._assertNotDisposed();\n        if (!oldDecorations) {\n            oldDecorations = [];\n        }\n        if (oldDecorations.length === 0 && newDecorations.length === 0) {\n            // nothing to do\n            return [];\n        }\n        try {\n            this._deltaDecorationCallCnt++;\n            if (this._deltaDecorationCallCnt > 1) {\n                console.warn(`Invoking deltaDecorations recursively could lead to leaking decorations.`);\n                onUnexpectedError(new Error(`Invoking deltaDecorations recursively could lead to leaking decorations.`));\n            }\n            this._onDidChangeDecorations.beginDeferredEmit();\n            return this._deltaDecorationsImpl(ownerId, oldDecorations, newDecorations);\n        }\n        finally {\n            this._onDidChangeDecorations.endDeferredEmit();\n            this._deltaDecorationCallCnt--;\n        }\n    }\n    _getTrackedRange(id) {\n        return this.getDecorationRange(id);\n    }\n    _setTrackedRange(id, newRange, newStickiness) {\n        const node = (id ? this._decorations[id] : null);\n        if (!node) {\n            if (!newRange) {\n                // node doesn't exist, the request is to delete => nothing to do\n                return null;\n            }\n            // node doesn't exist, the request is to set => add the tracked range\n            return this._deltaDecorationsImpl(0, [], [{ range: newRange, options: TRACKED_RANGE_OPTIONS[newStickiness] }], true)[0];\n        }\n        if (!newRange) {\n            // node exists, the request is to delete => delete node\n            this._decorationsTree.delete(node);\n            delete this._decorations[node.id];\n            return null;\n        }\n        // node exists, the request is to set => change the tracked range and its options\n        const range = this._validateRangeRelaxedNoAllocations(newRange);\n        const startOffset = this._buffer.getOffsetAt(range.startLineNumber, range.startColumn);\n        const endOffset = this._buffer.getOffsetAt(range.endLineNumber, range.endColumn);\n        this._decorationsTree.delete(node);\n        node.reset(this.getVersionId(), startOffset, endOffset, range);\n        node.setOptions(TRACKED_RANGE_OPTIONS[newStickiness]);\n        this._decorationsTree.insert(node);\n        return node.id;\n    }\n    removeAllDecorationsWithOwnerId(ownerId) {\n        if (this._isDisposed) {\n            return;\n        }\n        const nodes = this._decorationsTree.collectNodesFromOwner(ownerId);\n        for (let i = 0, len = nodes.length; i < len; i++) {\n            const node = nodes[i];\n            this._decorationsTree.delete(node);\n            delete this._decorations[node.id];\n        }\n    }\n    getDecorationOptions(decorationId) {\n        const node = this._decorations[decorationId];\n        if (!node) {\n            return null;\n        }\n        return node.options;\n    }\n    getDecorationRange(decorationId) {\n        const node = this._decorations[decorationId];\n        if (!node) {\n            return null;\n        }\n        return this._decorationsTree.getNodeRange(this, node);\n    }\n    getLineDecorations(lineNumber, ownerId = 0, filterOutValidation = false) {\n        if (lineNumber < 1 || lineNumber > this.getLineCount()) {\n            return [];\n        }\n        return this.getLinesDecorations(lineNumber, lineNumber, ownerId, filterOutValidation);\n    }\n    getLinesDecorations(_startLineNumber, _endLineNumber, ownerId = 0, filterOutValidation = false, onlyMarginDecorations = false) {\n        const lineCount = this.getLineCount();\n        const startLineNumber = Math.min(lineCount, Math.max(1, _startLineNumber));\n        const endLineNumber = Math.min(lineCount, Math.max(1, _endLineNumber));\n        const endColumn = this.getLineMaxColumn(endLineNumber);\n        const range = new Range(startLineNumber, 1, endLineNumber, endColumn);\n        const decorations = this._getDecorationsInRange(range, ownerId, filterOutValidation, onlyMarginDecorations);\n        pushMany(decorations, this._decorationProvider.getDecorationsInRange(range, ownerId, filterOutValidation));\n        return decorations;\n    }\n    getDecorationsInRange(range, ownerId = 0, filterOutValidation = false, onlyMinimapDecorations = false, onlyMarginDecorations = false) {\n        const validatedRange = this.validateRange(range);\n        const decorations = this._getDecorationsInRange(validatedRange, ownerId, filterOutValidation, onlyMarginDecorations);\n        pushMany(decorations, this._decorationProvider.getDecorationsInRange(validatedRange, ownerId, filterOutValidation, onlyMinimapDecorations));\n        return decorations;\n    }\n    getOverviewRulerDecorations(ownerId = 0, filterOutValidation = false) {\n        return this._decorationsTree.getAll(this, ownerId, filterOutValidation, true, false);\n    }\n    getInjectedTextDecorations(ownerId = 0) {\n        return this._decorationsTree.getAllInjectedText(this, ownerId);\n    }\n    _getInjectedTextInLine(lineNumber) {\n        const startOffset = this._buffer.getOffsetAt(lineNumber, 1);\n        const endOffset = startOffset + this._buffer.getLineLength(lineNumber);\n        const result = this._decorationsTree.getInjectedTextInInterval(this, startOffset, endOffset, 0);\n        return LineInjectedText.fromDecorations(result).filter(t => t.lineNumber === lineNumber);\n    }\n    getAllDecorations(ownerId = 0, filterOutValidation = false) {\n        let result = this._decorationsTree.getAll(this, ownerId, filterOutValidation, false, false);\n        result = result.concat(this._decorationProvider.getAllDecorations(ownerId, filterOutValidation));\n        return result;\n    }\n    getAllMarginDecorations(ownerId = 0) {\n        return this._decorationsTree.getAll(this, ownerId, false, false, true);\n    }\n    _getDecorationsInRange(filterRange, filterOwnerId, filterOutValidation, onlyMarginDecorations) {\n        const startOffset = this._buffer.getOffsetAt(filterRange.startLineNumber, filterRange.startColumn);\n        const endOffset = this._buffer.getOffsetAt(filterRange.endLineNumber, filterRange.endColumn);\n        return this._decorationsTree.getAllInInterval(this, startOffset, endOffset, filterOwnerId, filterOutValidation, onlyMarginDecorations);\n    }\n    getRangeAt(start, end) {\n        return this._buffer.getRangeAt(start, end - start);\n    }\n    _changeDecorationImpl(decorationId, _range) {\n        const node = this._decorations[decorationId];\n        if (!node) {\n            return;\n        }\n        if (node.options.after) {\n            const oldRange = this.getDecorationRange(decorationId);\n            this._onDidChangeDecorations.recordLineAffectedByInjectedText(oldRange.endLineNumber);\n        }\n        if (node.options.before) {\n            const oldRange = this.getDecorationRange(decorationId);\n            this._onDidChangeDecorations.recordLineAffectedByInjectedText(oldRange.startLineNumber);\n        }\n        const range = this._validateRangeRelaxedNoAllocations(_range);\n        const startOffset = this._buffer.getOffsetAt(range.startLineNumber, range.startColumn);\n        const endOffset = this._buffer.getOffsetAt(range.endLineNumber, range.endColumn);\n        this._decorationsTree.delete(node);\n        node.reset(this.getVersionId(), startOffset, endOffset, range);\n        this._decorationsTree.insert(node);\n        this._onDidChangeDecorations.checkAffectedAndFire(node.options);\n        if (node.options.after) {\n            this._onDidChangeDecorations.recordLineAffectedByInjectedText(range.endLineNumber);\n        }\n        if (node.options.before) {\n            this._onDidChangeDecorations.recordLineAffectedByInjectedText(range.startLineNumber);\n        }\n    }\n    _changeDecorationOptionsImpl(decorationId, options) {\n        const node = this._decorations[decorationId];\n        if (!node) {\n            return;\n        }\n        const nodeWasInOverviewRuler = (node.options.overviewRuler && node.options.overviewRuler.color ? true : false);\n        const nodeIsInOverviewRuler = (options.overviewRuler && options.overviewRuler.color ? true : false);\n        this._onDidChangeDecorations.checkAffectedAndFire(node.options);\n        this._onDidChangeDecorations.checkAffectedAndFire(options);\n        if (node.options.after || options.after) {\n            const nodeRange = this._decorationsTree.getNodeRange(this, node);\n            this._onDidChangeDecorations.recordLineAffectedByInjectedText(nodeRange.endLineNumber);\n        }\n        if (node.options.before || options.before) {\n            const nodeRange = this._decorationsTree.getNodeRange(this, node);\n            this._onDidChangeDecorations.recordLineAffectedByInjectedText(nodeRange.startLineNumber);\n        }\n        const movedInOverviewRuler = nodeWasInOverviewRuler !== nodeIsInOverviewRuler;\n        const changedWhetherInjectedText = isOptionsInjectedText(options) !== isNodeInjectedText(node);\n        if (movedInOverviewRuler || changedWhetherInjectedText) {\n            this._decorationsTree.delete(node);\n            node.setOptions(options);\n            this._decorationsTree.insert(node);\n        }\n        else {\n            node.setOptions(options);\n        }\n    }\n    _deltaDecorationsImpl(ownerId, oldDecorationsIds, newDecorations, suppressEvents = false) {\n        const versionId = this.getVersionId();\n        const oldDecorationsLen = oldDecorationsIds.length;\n        let oldDecorationIndex = 0;\n        const newDecorationsLen = newDecorations.length;\n        let newDecorationIndex = 0;\n        this._onDidChangeDecorations.beginDeferredEmit();\n        try {\n            const result = new Array(newDecorationsLen);\n            while (oldDecorationIndex < oldDecorationsLen || newDecorationIndex < newDecorationsLen) {\n                let node = null;\n                if (oldDecorationIndex < oldDecorationsLen) {\n                    // (1) get ourselves an old node\n                    do {\n                        node = this._decorations[oldDecorationsIds[oldDecorationIndex++]];\n                    } while (!node && oldDecorationIndex < oldDecorationsLen);\n                    // (2) remove the node from the tree (if it exists)\n                    if (node) {\n                        if (node.options.after) {\n                            const nodeRange = this._decorationsTree.getNodeRange(this, node);\n                            this._onDidChangeDecorations.recordLineAffectedByInjectedText(nodeRange.endLineNumber);\n                        }\n                        if (node.options.before) {\n                            const nodeRange = this._decorationsTree.getNodeRange(this, node);\n                            this._onDidChangeDecorations.recordLineAffectedByInjectedText(nodeRange.startLineNumber);\n                        }\n                        this._decorationsTree.delete(node);\n                        if (!suppressEvents) {\n                            this._onDidChangeDecorations.checkAffectedAndFire(node.options);\n                        }\n                    }\n                }\n                if (newDecorationIndex < newDecorationsLen) {\n                    // (3) create a new node if necessary\n                    if (!node) {\n                        const internalDecorationId = (++this._lastDecorationId);\n                        const decorationId = `${this._instanceId};${internalDecorationId}`;\n                        node = new IntervalNode(decorationId, 0, 0);\n                        this._decorations[decorationId] = node;\n                    }\n                    // (4) initialize node\n                    const newDecoration = newDecorations[newDecorationIndex];\n                    const range = this._validateRangeRelaxedNoAllocations(newDecoration.range);\n                    const options = _normalizeOptions(newDecoration.options);\n                    const startOffset = this._buffer.getOffsetAt(range.startLineNumber, range.startColumn);\n                    const endOffset = this._buffer.getOffsetAt(range.endLineNumber, range.endColumn);\n                    node.ownerId = ownerId;\n                    node.reset(versionId, startOffset, endOffset, range);\n                    node.setOptions(options);\n                    if (node.options.after) {\n                        this._onDidChangeDecorations.recordLineAffectedByInjectedText(range.endLineNumber);\n                    }\n                    if (node.options.before) {\n                        this._onDidChangeDecorations.recordLineAffectedByInjectedText(range.startLineNumber);\n                    }\n                    if (!suppressEvents) {\n                        this._onDidChangeDecorations.checkAffectedAndFire(options);\n                    }\n                    this._decorationsTree.insert(node);\n                    result[newDecorationIndex] = node.id;\n                    newDecorationIndex++;\n                }\n                else {\n                    if (node) {\n                        delete this._decorations[node.id];\n                    }\n                }\n            }\n            return result;\n        }\n        finally {\n            this._onDidChangeDecorations.endDeferredEmit();\n        }\n    }\n    //#endregion\n    //#region Tokenization\n    // TODO move them to the tokenization part.\n    getLanguageId() {\n        return this.tokenization.getLanguageId();\n    }\n    setLanguage(languageIdOrSelection, source) {\n        if (typeof languageIdOrSelection === 'string') {\n            this._languageSelectionListener.clear();\n            this._setLanguage(languageIdOrSelection, source);\n        }\n        else {\n            this._languageSelectionListener.value = languageIdOrSelection.onDidChange(() => this._setLanguage(languageIdOrSelection.languageId, source));\n            this._setLanguage(languageIdOrSelection.languageId, source);\n        }\n    }\n    _setLanguage(languageId, source) {\n        this.tokenization.setLanguageId(languageId, source);\n        this._languageService.requestRichLanguageFeatures(languageId);\n    }\n    getLanguageIdAtPosition(lineNumber, column) {\n        return this.tokenization.getLanguageIdAtPosition(lineNumber, column);\n    }\n    getWordAtPosition(position) {\n        return this._tokenizationTextModelPart.getWordAtPosition(position);\n    }\n    getWordUntilPosition(position) {\n        return this._tokenizationTextModelPart.getWordUntilPosition(position);\n    }\n    //#endregion\n    normalizePosition(position, affinity) {\n        return position;\n    }\n    /**\n     * Gets the column at which indentation stops at a given line.\n     * @internal\n    */\n    getLineIndentColumn(lineNumber) {\n        // Columns start with 1.\n        return indentOfLine(this.getLineContent(lineNumber)) + 1;\n    }\n};\nTextModel._MODEL_SYNC_LIMIT = 50 * 1024 * 1024; // 50 MB,  // used in tests\nTextModel.LARGE_FILE_SIZE_THRESHOLD = 20 * 1024 * 1024; // 20 MB;\nTextModel.LARGE_FILE_LINE_COUNT_THRESHOLD = 300 * 1000; // 300K lines\nTextModel.LARGE_FILE_HEAP_OPERATION_THRESHOLD = 256 * 1024 * 1024; // 256M characters, usually ~> 512MB memory usage\nTextModel.DEFAULT_CREATION_OPTIONS = {\n    isForSimpleWidget: false,\n    tabSize: EDITOR_MODEL_DEFAULTS.tabSize,\n    indentSize: EDITOR_MODEL_DEFAULTS.indentSize,\n    insertSpaces: EDITOR_MODEL_DEFAULTS.insertSpaces,\n    detectIndentation: false,\n    defaultEOL: 1 /* model.DefaultEndOfLine.LF */,\n    trimAutoWhitespace: EDITOR_MODEL_DEFAULTS.trimAutoWhitespace,\n    largeFileOptimizations: EDITOR_MODEL_DEFAULTS.largeFileOptimizations,\n    bracketPairColorizationOptions: EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions,\n};\nTextModel = TextModel_1 = __decorate([\n    __param(4, IUndoRedoService),\n    __param(5, ILanguageService),\n    __param(6, ILanguageConfigurationService)\n], TextModel);\nexport { TextModel };\nfunction indentOfLine(line) {\n    let indent = 0;\n    for (const c of line) {\n        if (c === ' ' || c === '\\t') {\n            indent++;\n        }\n        else {\n            break;\n        }\n    }\n    return indent;\n}\n//#region Decorations\nfunction isNodeInOverviewRuler(node) {\n    return (node.options.overviewRuler && node.options.overviewRuler.color ? true : false);\n}\nfunction isOptionsInjectedText(options) {\n    return !!options.after || !!options.before;\n}\nfunction isNodeInjectedText(node) {\n    return !!node.options.after || !!node.options.before;\n}\nclass DecorationsTrees {\n    constructor() {\n        this._decorationsTree0 = new IntervalTree();\n        this._decorationsTree1 = new IntervalTree();\n        this._injectedTextDecorationsTree = new IntervalTree();\n    }\n    ensureAllNodesHaveRanges(host) {\n        this.getAll(host, 0, false, false, false);\n    }\n    _ensureNodesHaveRanges(host, nodes) {\n        for (const node of nodes) {\n            if (node.range === null) {\n                node.range = host.getRangeAt(node.cachedAbsoluteStart, node.cachedAbsoluteEnd);\n            }\n        }\n        return nodes;\n    }\n    getAllInInterval(host, start, end, filterOwnerId, filterOutValidation, onlyMarginDecorations) {\n        const versionId = host.getVersionId();\n        const result = this._intervalSearch(start, end, filterOwnerId, filterOutValidation, versionId, onlyMarginDecorations);\n        return this._ensureNodesHaveRanges(host, result);\n    }\n    _intervalSearch(start, end, filterOwnerId, filterOutValidation, cachedVersionId, onlyMarginDecorations) {\n        const r0 = this._decorationsTree0.intervalSearch(start, end, filterOwnerId, filterOutValidation, cachedVersionId, onlyMarginDecorations);\n        const r1 = this._decorationsTree1.intervalSearch(start, end, filterOwnerId, filterOutValidation, cachedVersionId, onlyMarginDecorations);\n        const r2 = this._injectedTextDecorationsTree.intervalSearch(start, end, filterOwnerId, filterOutValidation, cachedVersionId, onlyMarginDecorations);\n        return r0.concat(r1).concat(r2);\n    }\n    getInjectedTextInInterval(host, start, end, filterOwnerId) {\n        const versionId = host.getVersionId();\n        const result = this._injectedTextDecorationsTree.intervalSearch(start, end, filterOwnerId, false, versionId, false);\n        return this._ensureNodesHaveRanges(host, result).filter((i) => i.options.showIfCollapsed || !i.range.isEmpty());\n    }\n    getAllInjectedText(host, filterOwnerId) {\n        const versionId = host.getVersionId();\n        const result = this._injectedTextDecorationsTree.search(filterOwnerId, false, versionId, false);\n        return this._ensureNodesHaveRanges(host, result).filter((i) => i.options.showIfCollapsed || !i.range.isEmpty());\n    }\n    getAll(host, filterOwnerId, filterOutValidation, overviewRulerOnly, onlyMarginDecorations) {\n        const versionId = host.getVersionId();\n        const result = this._search(filterOwnerId, filterOutValidation, overviewRulerOnly, versionId, onlyMarginDecorations);\n        return this._ensureNodesHaveRanges(host, result);\n    }\n    _search(filterOwnerId, filterOutValidation, overviewRulerOnly, cachedVersionId, onlyMarginDecorations) {\n        if (overviewRulerOnly) {\n            return this._decorationsTree1.search(filterOwnerId, filterOutValidation, cachedVersionId, onlyMarginDecorations);\n        }\n        else {\n            const r0 = this._decorationsTree0.search(filterOwnerId, filterOutValidation, cachedVersionId, onlyMarginDecorations);\n            const r1 = this._decorationsTree1.search(filterOwnerId, filterOutValidation, cachedVersionId, onlyMarginDecorations);\n            const r2 = this._injectedTextDecorationsTree.search(filterOwnerId, filterOutValidation, cachedVersionId, onlyMarginDecorations);\n            return r0.concat(r1).concat(r2);\n        }\n    }\n    collectNodesFromOwner(ownerId) {\n        const r0 = this._decorationsTree0.collectNodesFromOwner(ownerId);\n        const r1 = this._decorationsTree1.collectNodesFromOwner(ownerId);\n        const r2 = this._injectedTextDecorationsTree.collectNodesFromOwner(ownerId);\n        return r0.concat(r1).concat(r2);\n    }\n    collectNodesPostOrder() {\n        const r0 = this._decorationsTree0.collectNodesPostOrder();\n        const r1 = this._decorationsTree1.collectNodesPostOrder();\n        const r2 = this._injectedTextDecorationsTree.collectNodesPostOrder();\n        return r0.concat(r1).concat(r2);\n    }\n    insert(node) {\n        if (isNodeInjectedText(node)) {\n            this._injectedTextDecorationsTree.insert(node);\n        }\n        else if (isNodeInOverviewRuler(node)) {\n            this._decorationsTree1.insert(node);\n        }\n        else {\n            this._decorationsTree0.insert(node);\n        }\n    }\n    delete(node) {\n        if (isNodeInjectedText(node)) {\n            this._injectedTextDecorationsTree.delete(node);\n        }\n        else if (isNodeInOverviewRuler(node)) {\n            this._decorationsTree1.delete(node);\n        }\n        else {\n            this._decorationsTree0.delete(node);\n        }\n    }\n    getNodeRange(host, node) {\n        const versionId = host.getVersionId();\n        if (node.cachedVersionId !== versionId) {\n            this._resolveNode(node, versionId);\n        }\n        if (node.range === null) {\n            node.range = host.getRangeAt(node.cachedAbsoluteStart, node.cachedAbsoluteEnd);\n        }\n        return node.range;\n    }\n    _resolveNode(node, cachedVersionId) {\n        if (isNodeInjectedText(node)) {\n            this._injectedTextDecorationsTree.resolveNode(node, cachedVersionId);\n        }\n        else if (isNodeInOverviewRuler(node)) {\n            this._decorationsTree1.resolveNode(node, cachedVersionId);\n        }\n        else {\n            this._decorationsTree0.resolveNode(node, cachedVersionId);\n        }\n    }\n    acceptReplace(offset, length, textLength, forceMoveMarkers) {\n        this._decorationsTree0.acceptReplace(offset, length, textLength, forceMoveMarkers);\n        this._decorationsTree1.acceptReplace(offset, length, textLength, forceMoveMarkers);\n        this._injectedTextDecorationsTree.acceptReplace(offset, length, textLength, forceMoveMarkers);\n    }\n}\nfunction cleanClassName(className) {\n    return className.replace(/[^a-z0-9\\-_]/gi, ' ');\n}\nclass DecorationOptions {\n    constructor(options) {\n        this.color = options.color || '';\n        this.darkColor = options.darkColor || '';\n    }\n}\nexport class ModelDecorationOverviewRulerOptions extends DecorationOptions {\n    constructor(options) {\n        super(options);\n        this._resolvedColor = null;\n        this.position = (typeof options.position === 'number' ? options.position : model.OverviewRulerLane.Center);\n    }\n    getColor(theme) {\n        if (!this._resolvedColor) {\n            if (theme.type !== 'light' && this.darkColor) {\n                this._resolvedColor = this._resolveColor(this.darkColor, theme);\n            }\n            else {\n                this._resolvedColor = this._resolveColor(this.color, theme);\n            }\n        }\n        return this._resolvedColor;\n    }\n    invalidateCachedColor() {\n        this._resolvedColor = null;\n    }\n    _resolveColor(color, theme) {\n        if (typeof color === 'string') {\n            return color;\n        }\n        const c = color ? theme.getColor(color.id) : null;\n        if (!c) {\n            return '';\n        }\n        return c.toString();\n    }\n}\nexport class ModelDecorationGlyphMarginOptions {\n    constructor(options) {\n        var _a;\n        this.position = (_a = options === null || options === void 0 ? void 0 : options.position) !== null && _a !== void 0 ? _a : model.GlyphMarginLane.Center;\n        this.persistLane = options === null || options === void 0 ? void 0 : options.persistLane;\n    }\n}\nexport class ModelDecorationMinimapOptions extends DecorationOptions {\n    constructor(options) {\n        var _a, _b;\n        super(options);\n        this.position = options.position;\n        this.sectionHeaderStyle = (_a = options.sectionHeaderStyle) !== null && _a !== void 0 ? _a : null;\n        this.sectionHeaderText = (_b = options.sectionHeaderText) !== null && _b !== void 0 ? _b : null;\n    }\n    getColor(theme) {\n        if (!this._resolvedColor) {\n            if (theme.type !== 'light' && this.darkColor) {\n                this._resolvedColor = this._resolveColor(this.darkColor, theme);\n            }\n            else {\n                this._resolvedColor = this._resolveColor(this.color, theme);\n            }\n        }\n        return this._resolvedColor;\n    }\n    invalidateCachedColor() {\n        this._resolvedColor = undefined;\n    }\n    _resolveColor(color, theme) {\n        if (typeof color === 'string') {\n            return Color.fromHex(color);\n        }\n        return theme.getColor(color.id);\n    }\n}\nexport class ModelDecorationInjectedTextOptions {\n    static from(options) {\n        if (options instanceof ModelDecorationInjectedTextOptions) {\n            return options;\n        }\n        return new ModelDecorationInjectedTextOptions(options);\n    }\n    constructor(options) {\n        this.content = options.content || '';\n        this.inlineClassName = options.inlineClassName || null;\n        this.inlineClassNameAffectsLetterSpacing = options.inlineClassNameAffectsLetterSpacing || false;\n        this.attachedData = options.attachedData || null;\n        this.cursorStops = options.cursorStops || null;\n    }\n}\nexport class ModelDecorationOptions {\n    static register(options) {\n        return new ModelDecorationOptions(options);\n    }\n    static createDynamic(options) {\n        return new ModelDecorationOptions(options);\n    }\n    constructor(options) {\n        var _a, _b, _c, _d, _e, _f;\n        this.description = options.description;\n        this.blockClassName = options.blockClassName ? cleanClassName(options.blockClassName) : null;\n        this.blockDoesNotCollapse = (_a = options.blockDoesNotCollapse) !== null && _a !== void 0 ? _a : null;\n        this.blockIsAfterEnd = (_b = options.blockIsAfterEnd) !== null && _b !== void 0 ? _b : null;\n        this.blockPadding = (_c = options.blockPadding) !== null && _c !== void 0 ? _c : null;\n        this.stickiness = options.stickiness || 0 /* model.TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */;\n        this.zIndex = options.zIndex || 0;\n        this.className = options.className ? cleanClassName(options.className) : null;\n        this.shouldFillLineOnLineBreak = (_d = options.shouldFillLineOnLineBreak) !== null && _d !== void 0 ? _d : null;\n        this.hoverMessage = options.hoverMessage || null;\n        this.glyphMarginHoverMessage = options.glyphMarginHoverMessage || null;\n        this.lineNumberHoverMessage = options.lineNumberHoverMessage || null;\n        this.isWholeLine = options.isWholeLine || false;\n        this.showIfCollapsed = options.showIfCollapsed || false;\n        this.collapseOnReplaceEdit = options.collapseOnReplaceEdit || false;\n        this.overviewRuler = options.overviewRuler ? new ModelDecorationOverviewRulerOptions(options.overviewRuler) : null;\n        this.minimap = options.minimap ? new ModelDecorationMinimapOptions(options.minimap) : null;\n        this.glyphMargin = options.glyphMarginClassName ? new ModelDecorationGlyphMarginOptions(options.glyphMargin) : null;\n        this.glyphMarginClassName = options.glyphMarginClassName ? cleanClassName(options.glyphMarginClassName) : null;\n        this.linesDecorationsClassName = options.linesDecorationsClassName ? cleanClassName(options.linesDecorationsClassName) : null;\n        this.lineNumberClassName = options.lineNumberClassName ? cleanClassName(options.lineNumberClassName) : null;\n        this.linesDecorationsTooltip = options.linesDecorationsTooltip ? strings.htmlAttributeEncodeValue(options.linesDecorationsTooltip) : null;\n        this.firstLineDecorationClassName = options.firstLineDecorationClassName ? cleanClassName(options.firstLineDecorationClassName) : null;\n        this.marginClassName = options.marginClassName ? cleanClassName(options.marginClassName) : null;\n        this.inlineClassName = options.inlineClassName ? cleanClassName(options.inlineClassName) : null;\n        this.inlineClassNameAffectsLetterSpacing = options.inlineClassNameAffectsLetterSpacing || false;\n        this.beforeContentClassName = options.beforeContentClassName ? cleanClassName(options.beforeContentClassName) : null;\n        this.afterContentClassName = options.afterContentClassName ? cleanClassName(options.afterContentClassName) : null;\n        this.after = options.after ? ModelDecorationInjectedTextOptions.from(options.after) : null;\n        this.before = options.before ? ModelDecorationInjectedTextOptions.from(options.before) : null;\n        this.hideInCommentTokens = (_e = options.hideInCommentTokens) !== null && _e !== void 0 ? _e : false;\n        this.hideInStringTokens = (_f = options.hideInStringTokens) !== null && _f !== void 0 ? _f : false;\n    }\n}\nModelDecorationOptions.EMPTY = ModelDecorationOptions.register({ description: 'empty' });\n/**\n * The order carefully matches the values of the enum.\n */\nconst TRACKED_RANGE_OPTIONS = [\n    ModelDecorationOptions.register({ description: 'tracked-range-always-grows-when-typing-at-edges', stickiness: 0 /* model.TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */ }),\n    ModelDecorationOptions.register({ description: 'tracked-range-never-grows-when-typing-at-edges', stickiness: 1 /* model.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */ }),\n    ModelDecorationOptions.register({ description: 'tracked-range-grows-only-when-typing-before', stickiness: 2 /* model.TrackedRangeStickiness.GrowsOnlyWhenTypingBefore */ }),\n    ModelDecorationOptions.register({ description: 'tracked-range-grows-only-when-typing-after', stickiness: 3 /* model.TrackedRangeStickiness.GrowsOnlyWhenTypingAfter */ }),\n];\nfunction _normalizeOptions(options) {\n    if (options instanceof ModelDecorationOptions) {\n        return options;\n    }\n    return ModelDecorationOptions.createDynamic(options);\n}\nclass DidChangeDecorationsEmitter extends Disposable {\n    constructor(handleBeforeFire) {\n        super();\n        this.handleBeforeFire = handleBeforeFire;\n        this._actual = this._register(new Emitter());\n        this.event = this._actual.event;\n        this._affectedInjectedTextLines = null;\n        this._deferredCnt = 0;\n        this._shouldFireDeferred = false;\n        this._affectsMinimap = false;\n        this._affectsOverviewRuler = false;\n        this._affectsGlyphMargin = false;\n        this._affectsLineNumber = false;\n    }\n    beginDeferredEmit() {\n        this._deferredCnt++;\n    }\n    endDeferredEmit() {\n        var _a;\n        this._deferredCnt--;\n        if (this._deferredCnt === 0) {\n            if (this._shouldFireDeferred) {\n                this.doFire();\n            }\n            (_a = this._affectedInjectedTextLines) === null || _a === void 0 ? void 0 : _a.clear();\n            this._affectedInjectedTextLines = null;\n        }\n    }\n    recordLineAffectedByInjectedText(lineNumber) {\n        if (!this._affectedInjectedTextLines) {\n            this._affectedInjectedTextLines = new Set();\n        }\n        this._affectedInjectedTextLines.add(lineNumber);\n    }\n    checkAffectedAndFire(options) {\n        var _a, _b;\n        this._affectsMinimap || (this._affectsMinimap = !!((_a = options.minimap) === null || _a === void 0 ? void 0 : _a.position));\n        this._affectsOverviewRuler || (this._affectsOverviewRuler = !!((_b = options.overviewRuler) === null || _b === void 0 ? void 0 : _b.color));\n        this._affectsGlyphMargin || (this._affectsGlyphMargin = !!options.glyphMarginClassName);\n        this._affectsLineNumber || (this._affectsLineNumber = !!options.lineNumberClassName);\n        this.tryFire();\n    }\n    fire() {\n        this._affectsMinimap = true;\n        this._affectsOverviewRuler = true;\n        this._affectsGlyphMargin = true;\n        this.tryFire();\n    }\n    tryFire() {\n        if (this._deferredCnt === 0) {\n            this.doFire();\n        }\n        else {\n            this._shouldFireDeferred = true;\n        }\n    }\n    doFire() {\n        this.handleBeforeFire(this._affectedInjectedTextLines);\n        const event = {\n            affectsMinimap: this._affectsMinimap,\n            affectsOverviewRuler: this._affectsOverviewRuler,\n            affectsGlyphMargin: this._affectsGlyphMargin,\n            affectsLineNumber: this._affectsLineNumber,\n        };\n        this._shouldFireDeferred = false;\n        this._affectsMinimap = false;\n        this._affectsOverviewRuler = false;\n        this._affectsGlyphMargin = false;\n        this._actual.fire(event);\n    }\n}\n//#endregion\nclass DidChangeContentEmitter extends Disposable {\n    constructor() {\n        super();\n        /**\n         * Both `fastEvent` and `slowEvent` work the same way and contain the same events, but first we invoke `fastEvent` and then `slowEvent`.\n         */\n        this._fastEmitter = this._register(new Emitter());\n        this.fastEvent = this._fastEmitter.event;\n        this._slowEmitter = this._register(new Emitter());\n        this.slowEvent = this._slowEmitter.event;\n        this._deferredCnt = 0;\n        this._deferredEvent = null;\n    }\n    beginDeferredEmit() {\n        this._deferredCnt++;\n    }\n    endDeferredEmit(resultingSelection = null) {\n        this._deferredCnt--;\n        if (this._deferredCnt === 0) {\n            if (this._deferredEvent !== null) {\n                this._deferredEvent.rawContentChangedEvent.resultingSelection = resultingSelection;\n                const e = this._deferredEvent;\n                this._deferredEvent = null;\n                this._fastEmitter.fire(e);\n                this._slowEmitter.fire(e);\n            }\n        }\n    }\n    fire(e) {\n        if (this._deferredCnt > 0) {\n            if (this._deferredEvent) {\n                this._deferredEvent = this._deferredEvent.merge(e);\n            }\n            else {\n                this._deferredEvent = e;\n            }\n            return;\n        }\n        this._fastEmitter.fire(e);\n        this._slowEmitter.fire(e);\n    }\n}\n/**\n * @internal\n */\nexport class AttachedViews {\n    constructor() {\n        this._onDidChangeVisibleRanges = new Emitter();\n        this.onDidChangeVisibleRanges = this._onDidChangeVisibleRanges.event;\n        this._views = new Set();\n    }\n    attachView() {\n        const view = new AttachedViewImpl((state) => {\n            this._onDidChangeVisibleRanges.fire({ view, state });\n        });\n        this._views.add(view);\n        return view;\n    }\n    detachView(view) {\n        this._views.delete(view);\n        this._onDidChangeVisibleRanges.fire({ view, state: undefined });\n    }\n}\nclass AttachedViewImpl {\n    constructor(handleStateChange) {\n        this.handleStateChange = handleStateChange;\n    }\n    setVisibleLines(visibleLines, stabilized) {\n        const visibleLineRanges = visibleLines.map((line) => new LineRange(line.startLineNumber, line.endLineNumber + 1));\n        this.handleStateChange({ visibleLineRanges, stabilized });\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/textModelPart.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Disposable } from '../../../base/common/lifecycle.js';\nexport class TextModelPart extends Disposable {\n    constructor() {\n        super(...arguments);\n        this._isDisposed = false;\n    }\n    dispose() {\n        super.dispose();\n        this._isDisposed = true;\n    }\n    assertNotDisposed() {\n        if (this._isDisposed) {\n            throw new Error('TextModelPart is disposed!');\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/textModelSearch.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../base/common/strings.js';\nimport { getMapForWordSeparators } from '../core/wordCharacterClassifier.js';\nimport { Position } from '../core/position.js';\nimport { Range } from '../core/range.js';\nimport { FindMatch, SearchData } from '../model.js';\nconst LIMIT_FIND_COUNT = 999;\nexport class SearchParams {\n    constructor(searchString, isRegex, matchCase, wordSeparators) {\n        this.searchString = searchString;\n        this.isRegex = isRegex;\n        this.matchCase = matchCase;\n        this.wordSeparators = wordSeparators;\n    }\n    parseSearchRequest() {\n        if (this.searchString === '') {\n            return null;\n        }\n        // Try to create a RegExp out of the params\n        let multiline;\n        if (this.isRegex) {\n            multiline = isMultilineRegexSource(this.searchString);\n        }\n        else {\n            multiline = (this.searchString.indexOf('\\n') >= 0);\n        }\n        let regex = null;\n        try {\n            regex = strings.createRegExp(this.searchString, this.isRegex, {\n                matchCase: this.matchCase,\n                wholeWord: false,\n                multiline: multiline,\n                global: true,\n                unicode: true\n            });\n        }\n        catch (err) {\n            return null;\n        }\n        if (!regex) {\n            return null;\n        }\n        let canUseSimpleSearch = (!this.isRegex && !multiline);\n        if (canUseSimpleSearch && this.searchString.toLowerCase() !== this.searchString.toUpperCase()) {\n            // casing might make a difference\n            canUseSimpleSearch = this.matchCase;\n        }\n        return new SearchData(regex, this.wordSeparators ? getMapForWordSeparators(this.wordSeparators, []) : null, canUseSimpleSearch ? this.searchString : null);\n    }\n}\nexport function isMultilineRegexSource(searchString) {\n    if (!searchString || searchString.length === 0) {\n        return false;\n    }\n    for (let i = 0, len = searchString.length; i < len; i++) {\n        const chCode = searchString.charCodeAt(i);\n        if (chCode === 10 /* CharCode.LineFeed */) {\n            return true;\n        }\n        if (chCode === 92 /* CharCode.Backslash */) {\n            // move to next char\n            i++;\n            if (i >= len) {\n                // string ends with a \\\n                break;\n            }\n            const nextChCode = searchString.charCodeAt(i);\n            if (nextChCode === 110 /* CharCode.n */ || nextChCode === 114 /* CharCode.r */ || nextChCode === 87 /* CharCode.W */) {\n                return true;\n            }\n        }\n    }\n    return false;\n}\nexport function createFindMatch(range, rawMatches, captureMatches) {\n    if (!captureMatches) {\n        return new FindMatch(range, null);\n    }\n    const matches = [];\n    for (let i = 0, len = rawMatches.length; i < len; i++) {\n        matches[i] = rawMatches[i];\n    }\n    return new FindMatch(range, matches);\n}\nclass LineFeedCounter {\n    constructor(text) {\n        const lineFeedsOffsets = [];\n        let lineFeedsOffsetsLen = 0;\n        for (let i = 0, textLen = text.length; i < textLen; i++) {\n            if (text.charCodeAt(i) === 10 /* CharCode.LineFeed */) {\n                lineFeedsOffsets[lineFeedsOffsetsLen++] = i;\n            }\n        }\n        this._lineFeedsOffsets = lineFeedsOffsets;\n    }\n    findLineFeedCountBeforeOffset(offset) {\n        const lineFeedsOffsets = this._lineFeedsOffsets;\n        let min = 0;\n        let max = lineFeedsOffsets.length - 1;\n        if (max === -1) {\n            // no line feeds\n            return 0;\n        }\n        if (offset <= lineFeedsOffsets[0]) {\n            // before first line feed\n            return 0;\n        }\n        while (min < max) {\n            const mid = min + ((max - min) / 2 >> 0);\n            if (lineFeedsOffsets[mid] >= offset) {\n                max = mid - 1;\n            }\n            else {\n                if (lineFeedsOffsets[mid + 1] >= offset) {\n                    // bingo!\n                    min = mid;\n                    max = mid;\n                }\n                else {\n                    min = mid + 1;\n                }\n            }\n        }\n        return min + 1;\n    }\n}\nexport class TextModelSearch {\n    static findMatches(model, searchParams, searchRange, captureMatches, limitResultCount) {\n        const searchData = searchParams.parseSearchRequest();\n        if (!searchData) {\n            return [];\n        }\n        if (searchData.regex.multiline) {\n            return this._doFindMatchesMultiline(model, searchRange, new Searcher(searchData.wordSeparators, searchData.regex), captureMatches, limitResultCount);\n        }\n        return this._doFindMatchesLineByLine(model, searchRange, searchData, captureMatches, limitResultCount);\n    }\n    /**\n     * Multiline search always executes on the lines concatenated with \\n.\n     * We must therefore compensate for the count of \\n in case the model is CRLF\n     */\n    static _getMultilineMatchRange(model, deltaOffset, text, lfCounter, matchIndex, match0) {\n        let startOffset;\n        let lineFeedCountBeforeMatch = 0;\n        if (lfCounter) {\n            lineFeedCountBeforeMatch = lfCounter.findLineFeedCountBeforeOffset(matchIndex);\n            startOffset = deltaOffset + matchIndex + lineFeedCountBeforeMatch /* add as many \\r as there were \\n */;\n        }\n        else {\n            startOffset = deltaOffset + matchIndex;\n        }\n        let endOffset;\n        if (lfCounter) {\n            const lineFeedCountBeforeEndOfMatch = lfCounter.findLineFeedCountBeforeOffset(matchIndex + match0.length);\n            const lineFeedCountInMatch = lineFeedCountBeforeEndOfMatch - lineFeedCountBeforeMatch;\n            endOffset = startOffset + match0.length + lineFeedCountInMatch /* add as many \\r as there were \\n */;\n        }\n        else {\n            endOffset = startOffset + match0.length;\n        }\n        const startPosition = model.getPositionAt(startOffset);\n        const endPosition = model.getPositionAt(endOffset);\n        return new Range(startPosition.lineNumber, startPosition.column, endPosition.lineNumber, endPosition.column);\n    }\n    static _doFindMatchesMultiline(model, searchRange, searcher, captureMatches, limitResultCount) {\n        const deltaOffset = model.getOffsetAt(searchRange.getStartPosition());\n        // We always execute multiline search over the lines joined with \\n\n        // This makes it that \\n will match the EOL for both CRLF and LF models\n        // We compensate for offset errors in `_getMultilineMatchRange`\n        const text = model.getValueInRange(searchRange, 1 /* EndOfLinePreference.LF */);\n        const lfCounter = (model.getEOL() === '\\r\\n' ? new LineFeedCounter(text) : null);\n        const result = [];\n        let counter = 0;\n        let m;\n        searcher.reset(0);\n        while ((m = searcher.next(text))) {\n            result[counter++] = createFindMatch(this._getMultilineMatchRange(model, deltaOffset, text, lfCounter, m.index, m[0]), m, captureMatches);\n            if (counter >= limitResultCount) {\n                return result;\n            }\n        }\n        return result;\n    }\n    static _doFindMatchesLineByLine(model, searchRange, searchData, captureMatches, limitResultCount) {\n        const result = [];\n        let resultLen = 0;\n        // Early case for a search range that starts & stops on the same line number\n        if (searchRange.startLineNumber === searchRange.endLineNumber) {\n            const text = model.getLineContent(searchRange.startLineNumber).substring(searchRange.startColumn - 1, searchRange.endColumn - 1);\n            resultLen = this._findMatchesInLine(searchData, text, searchRange.startLineNumber, searchRange.startColumn - 1, resultLen, result, captureMatches, limitResultCount);\n            return result;\n        }\n        // Collect results from first line\n        const text = model.getLineContent(searchRange.startLineNumber).substring(searchRange.startColumn - 1);\n        resultLen = this._findMatchesInLine(searchData, text, searchRange.startLineNumber, searchRange.startColumn - 1, resultLen, result, captureMatches, limitResultCount);\n        // Collect results from middle lines\n        for (let lineNumber = searchRange.startLineNumber + 1; lineNumber < searchRange.endLineNumber && resultLen < limitResultCount; lineNumber++) {\n            resultLen = this._findMatchesInLine(searchData, model.getLineContent(lineNumber), lineNumber, 0, resultLen, result, captureMatches, limitResultCount);\n        }\n        // Collect results from last line\n        if (resultLen < limitResultCount) {\n            const text = model.getLineContent(searchRange.endLineNumber).substring(0, searchRange.endColumn - 1);\n            resultLen = this._findMatchesInLine(searchData, text, searchRange.endLineNumber, 0, resultLen, result, captureMatches, limitResultCount);\n        }\n        return result;\n    }\n    static _findMatchesInLine(searchData, text, lineNumber, deltaOffset, resultLen, result, captureMatches, limitResultCount) {\n        const wordSeparators = searchData.wordSeparators;\n        if (!captureMatches && searchData.simpleSearch) {\n            const searchString = searchData.simpleSearch;\n            const searchStringLen = searchString.length;\n            const textLength = text.length;\n            let lastMatchIndex = -searchStringLen;\n            while ((lastMatchIndex = text.indexOf(searchString, lastMatchIndex + searchStringLen)) !== -1) {\n                if (!wordSeparators || isValidMatch(wordSeparators, text, textLength, lastMatchIndex, searchStringLen)) {\n                    result[resultLen++] = new FindMatch(new Range(lineNumber, lastMatchIndex + 1 + deltaOffset, lineNumber, lastMatchIndex + 1 + searchStringLen + deltaOffset), null);\n                    if (resultLen >= limitResultCount) {\n                        return resultLen;\n                    }\n                }\n            }\n            return resultLen;\n        }\n        const searcher = new Searcher(searchData.wordSeparators, searchData.regex);\n        let m;\n        // Reset regex to search from the beginning\n        searcher.reset(0);\n        do {\n            m = searcher.next(text);\n            if (m) {\n                result[resultLen++] = createFindMatch(new Range(lineNumber, m.index + 1 + deltaOffset, lineNumber, m.index + 1 + m[0].length + deltaOffset), m, captureMatches);\n                if (resultLen >= limitResultCount) {\n                    return resultLen;\n                }\n            }\n        } while (m);\n        return resultLen;\n    }\n    static findNextMatch(model, searchParams, searchStart, captureMatches) {\n        const searchData = searchParams.parseSearchRequest();\n        if (!searchData) {\n            return null;\n        }\n        const searcher = new Searcher(searchData.wordSeparators, searchData.regex);\n        if (searchData.regex.multiline) {\n            return this._doFindNextMatchMultiline(model, searchStart, searcher, captureMatches);\n        }\n        return this._doFindNextMatchLineByLine(model, searchStart, searcher, captureMatches);\n    }\n    static _doFindNextMatchMultiline(model, searchStart, searcher, captureMatches) {\n        const searchTextStart = new Position(searchStart.lineNumber, 1);\n        const deltaOffset = model.getOffsetAt(searchTextStart);\n        const lineCount = model.getLineCount();\n        // We always execute multiline search over the lines joined with \\n\n        // This makes it that \\n will match the EOL for both CRLF and LF models\n        // We compensate for offset errors in `_getMultilineMatchRange`\n        const text = model.getValueInRange(new Range(searchTextStart.lineNumber, searchTextStart.column, lineCount, model.getLineMaxColumn(lineCount)), 1 /* EndOfLinePreference.LF */);\n        const lfCounter = (model.getEOL() === '\\r\\n' ? new LineFeedCounter(text) : null);\n        searcher.reset(searchStart.column - 1);\n        const m = searcher.next(text);\n        if (m) {\n            return createFindMatch(this._getMultilineMatchRange(model, deltaOffset, text, lfCounter, m.index, m[0]), m, captureMatches);\n        }\n        if (searchStart.lineNumber !== 1 || searchStart.column !== 1) {\n            // Try again from the top\n            return this._doFindNextMatchMultiline(model, new Position(1, 1), searcher, captureMatches);\n        }\n        return null;\n    }\n    static _doFindNextMatchLineByLine(model, searchStart, searcher, captureMatches) {\n        const lineCount = model.getLineCount();\n        const startLineNumber = searchStart.lineNumber;\n        // Look in first line\n        const text = model.getLineContent(startLineNumber);\n        const r = this._findFirstMatchInLine(searcher, text, startLineNumber, searchStart.column, captureMatches);\n        if (r) {\n            return r;\n        }\n        for (let i = 1; i <= lineCount; i++) {\n            const lineIndex = (startLineNumber + i - 1) % lineCount;\n            const text = model.getLineContent(lineIndex + 1);\n            const r = this._findFirstMatchInLine(searcher, text, lineIndex + 1, 1, captureMatches);\n            if (r) {\n                return r;\n            }\n        }\n        return null;\n    }\n    static _findFirstMatchInLine(searcher, text, lineNumber, fromColumn, captureMatches) {\n        // Set regex to search from column\n        searcher.reset(fromColumn - 1);\n        const m = searcher.next(text);\n        if (m) {\n            return createFindMatch(new Range(lineNumber, m.index + 1, lineNumber, m.index + 1 + m[0].length), m, captureMatches);\n        }\n        return null;\n    }\n    static findPreviousMatch(model, searchParams, searchStart, captureMatches) {\n        const searchData = searchParams.parseSearchRequest();\n        if (!searchData) {\n            return null;\n        }\n        const searcher = new Searcher(searchData.wordSeparators, searchData.regex);\n        if (searchData.regex.multiline) {\n            return this._doFindPreviousMatchMultiline(model, searchStart, searcher, captureMatches);\n        }\n        return this._doFindPreviousMatchLineByLine(model, searchStart, searcher, captureMatches);\n    }\n    static _doFindPreviousMatchMultiline(model, searchStart, searcher, captureMatches) {\n        const matches = this._doFindMatchesMultiline(model, new Range(1, 1, searchStart.lineNumber, searchStart.column), searcher, captureMatches, 10 * LIMIT_FIND_COUNT);\n        if (matches.length > 0) {\n            return matches[matches.length - 1];\n        }\n        const lineCount = model.getLineCount();\n        if (searchStart.lineNumber !== lineCount || searchStart.column !== model.getLineMaxColumn(lineCount)) {\n            // Try again with all content\n            return this._doFindPreviousMatchMultiline(model, new Position(lineCount, model.getLineMaxColumn(lineCount)), searcher, captureMatches);\n        }\n        return null;\n    }\n    static _doFindPreviousMatchLineByLine(model, searchStart, searcher, captureMatches) {\n        const lineCount = model.getLineCount();\n        const startLineNumber = searchStart.lineNumber;\n        // Look in first line\n        const text = model.getLineContent(startLineNumber).substring(0, searchStart.column - 1);\n        const r = this._findLastMatchInLine(searcher, text, startLineNumber, captureMatches);\n        if (r) {\n            return r;\n        }\n        for (let i = 1; i <= lineCount; i++) {\n            const lineIndex = (lineCount + startLineNumber - i - 1) % lineCount;\n            const text = model.getLineContent(lineIndex + 1);\n            const r = this._findLastMatchInLine(searcher, text, lineIndex + 1, captureMatches);\n            if (r) {\n                return r;\n            }\n        }\n        return null;\n    }\n    static _findLastMatchInLine(searcher, text, lineNumber, captureMatches) {\n        let bestResult = null;\n        let m;\n        searcher.reset(0);\n        while ((m = searcher.next(text))) {\n            bestResult = createFindMatch(new Range(lineNumber, m.index + 1, lineNumber, m.index + 1 + m[0].length), m, captureMatches);\n        }\n        return bestResult;\n    }\n}\nfunction leftIsWordBounday(wordSeparators, text, textLength, matchStartIndex, matchLength) {\n    if (matchStartIndex === 0) {\n        // Match starts at start of string\n        return true;\n    }\n    const charBefore = text.charCodeAt(matchStartIndex - 1);\n    if (wordSeparators.get(charBefore) !== 0 /* WordCharacterClass.Regular */) {\n        // The character before the match is a word separator\n        return true;\n    }\n    if (charBefore === 13 /* CharCode.CarriageReturn */ || charBefore === 10 /* CharCode.LineFeed */) {\n        // The character before the match is line break or carriage return.\n        return true;\n    }\n    if (matchLength > 0) {\n        const firstCharInMatch = text.charCodeAt(matchStartIndex);\n        if (wordSeparators.get(firstCharInMatch) !== 0 /* WordCharacterClass.Regular */) {\n            // The first character inside the match is a word separator\n            return true;\n        }\n    }\n    return false;\n}\nfunction rightIsWordBounday(wordSeparators, text, textLength, matchStartIndex, matchLength) {\n    if (matchStartIndex + matchLength === textLength) {\n        // Match ends at end of string\n        return true;\n    }\n    const charAfter = text.charCodeAt(matchStartIndex + matchLength);\n    if (wordSeparators.get(charAfter) !== 0 /* WordCharacterClass.Regular */) {\n        // The character after the match is a word separator\n        return true;\n    }\n    if (charAfter === 13 /* CharCode.CarriageReturn */ || charAfter === 10 /* CharCode.LineFeed */) {\n        // The character after the match is line break or carriage return.\n        return true;\n    }\n    if (matchLength > 0) {\n        const lastCharInMatch = text.charCodeAt(matchStartIndex + matchLength - 1);\n        if (wordSeparators.get(lastCharInMatch) !== 0 /* WordCharacterClass.Regular */) {\n            // The last character in the match is a word separator\n            return true;\n        }\n    }\n    return false;\n}\nexport function isValidMatch(wordSeparators, text, textLength, matchStartIndex, matchLength) {\n    return (leftIsWordBounday(wordSeparators, text, textLength, matchStartIndex, matchLength)\n        && rightIsWordBounday(wordSeparators, text, textLength, matchStartIndex, matchLength));\n}\nexport class Searcher {\n    constructor(wordSeparators, searchRegex) {\n        this._wordSeparators = wordSeparators;\n        this._searchRegex = searchRegex;\n        this._prevMatchStartIndex = -1;\n        this._prevMatchLength = 0;\n    }\n    reset(lastIndex) {\n        this._searchRegex.lastIndex = lastIndex;\n        this._prevMatchStartIndex = -1;\n        this._prevMatchLength = 0;\n    }\n    next(text) {\n        const textLength = text.length;\n        let m;\n        do {\n            if (this._prevMatchStartIndex + this._prevMatchLength === textLength) {\n                // Reached the end of the line\n                return null;\n            }\n            m = this._searchRegex.exec(text);\n            if (!m) {\n                return null;\n            }\n            const matchStartIndex = m.index;\n            const matchLength = m[0].length;\n            if (matchStartIndex === this._prevMatchStartIndex && matchLength === this._prevMatchLength) {\n                if (matchLength === 0) {\n                    // the search result is an empty string and won't advance `regex.lastIndex`, so `regex.exec` will stuck here\n                    // we attempt to recover from that by advancing by two if surrogate pair found and by one otherwise\n                    if (strings.getNextCodePoint(text, textLength, this._searchRegex.lastIndex) > 0xFFFF) {\n                        this._searchRegex.lastIndex += 2;\n                    }\n                    else {\n                        this._searchRegex.lastIndex += 1;\n                    }\n                    continue;\n                }\n                // Exit early if the regex matches the same range twice\n                return null;\n            }\n            this._prevMatchStartIndex = matchStartIndex;\n            this._prevMatchLength = matchLength;\n            if (!this._wordSeparators || isValidMatch(this._wordSeparators, text, textLength, matchStartIndex, matchLength)) {\n                return m;\n            }\n        } while (m);\n        return null;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/textModelText.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { AbstractText } from '../core/textEdit.js';\nimport { TextLength } from '../core/textLength.js';\nexport class TextModelText extends AbstractText {\n    constructor(_textModel) {\n        super();\n        this._textModel = _textModel;\n    }\n    getValueOfRange(range) {\n        return this._textModel.getValueInRange(range);\n    }\n    get length() {\n        const lastLineNumber = this._textModel.getLineCount();\n        const lastLineLen = this._textModel.getLineLength(lastLineNumber);\n        return new TextLength(lastLineNumber - 1, lastLineLen);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/textModelTokens.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { runWhenGlobalIdle } from '../../../base/common/async.js';\nimport { BugIndicatingError, onUnexpectedError } from '../../../base/common/errors.js';\nimport { setTimeout0 } from '../../../base/common/platform.js';\nimport { StopWatch } from '../../../base/common/stopwatch.js';\nimport { countEOL } from '../core/eolCounter.js';\nimport { LineRange } from '../core/lineRange.js';\nimport { OffsetRange } from '../core/offsetRange.js';\nimport { nullTokenizeEncoded } from '../languages/nullTokenize.js';\nimport { FixedArray } from './fixedArray.js';\nimport { ContiguousMultilineTokensBuilder } from '../tokens/contiguousMultilineTokensBuilder.js';\nimport { LineTokens } from '../tokens/lineTokens.js';\nexport class TokenizerWithStateStore {\n    constructor(lineCount, tokenizationSupport) {\n        this.tokenizationSupport = tokenizationSupport;\n        this.initialState = this.tokenizationSupport.getInitialState();\n        this.store = new TrackingTokenizationStateStore(lineCount);\n    }\n    getStartState(lineNumber) {\n        return this.store.getStartState(lineNumber, this.initialState);\n    }\n    getFirstInvalidLine() {\n        return this.store.getFirstInvalidLine(this.initialState);\n    }\n}\nexport class TokenizerWithStateStoreAndTextModel extends TokenizerWithStateStore {\n    constructor(lineCount, tokenizationSupport, _textModel, _languageIdCodec) {\n        super(lineCount, tokenizationSupport);\n        this._textModel = _textModel;\n        this._languageIdCodec = _languageIdCodec;\n    }\n    updateTokensUntilLine(builder, lineNumber) {\n        const languageId = this._textModel.getLanguageId();\n        while (true) {\n            const lineToTokenize = this.getFirstInvalidLine();\n            if (!lineToTokenize || lineToTokenize.lineNumber > lineNumber) {\n                break;\n            }\n            const text = this._textModel.getLineContent(lineToTokenize.lineNumber);\n            const r = safeTokenize(this._languageIdCodec, languageId, this.tokenizationSupport, text, true, lineToTokenize.startState);\n            builder.add(lineToTokenize.lineNumber, r.tokens);\n            this.store.setEndState(lineToTokenize.lineNumber, r.endState);\n        }\n    }\n    /** assumes state is up to date */\n    getTokenTypeIfInsertingCharacter(position, character) {\n        // TODO@hediet: use tokenizeLineWithEdit\n        const lineStartState = this.getStartState(position.lineNumber);\n        if (!lineStartState) {\n            return 0 /* StandardTokenType.Other */;\n        }\n        const languageId = this._textModel.getLanguageId();\n        const lineContent = this._textModel.getLineContent(position.lineNumber);\n        // Create the text as if `character` was inserted\n        const text = (lineContent.substring(0, position.column - 1)\n            + character\n            + lineContent.substring(position.column - 1));\n        const r = safeTokenize(this._languageIdCodec, languageId, this.tokenizationSupport, text, true, lineStartState);\n        const lineTokens = new LineTokens(r.tokens, text, this._languageIdCodec);\n        if (lineTokens.getCount() === 0) {\n            return 0 /* StandardTokenType.Other */;\n        }\n        const tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n        return lineTokens.getStandardTokenType(tokenIndex);\n    }\n    /** assumes state is up to date */\n    tokenizeLineWithEdit(position, length, newText) {\n        const lineNumber = position.lineNumber;\n        const column = position.column;\n        const lineStartState = this.getStartState(lineNumber);\n        if (!lineStartState) {\n            return null;\n        }\n        const curLineContent = this._textModel.getLineContent(lineNumber);\n        const newLineContent = curLineContent.substring(0, column - 1)\n            + newText + curLineContent.substring(column - 1 + length);\n        const languageId = this._textModel.getLanguageIdAtPosition(lineNumber, 0);\n        const result = safeTokenize(this._languageIdCodec, languageId, this.tokenizationSupport, newLineContent, true, lineStartState);\n        const lineTokens = new LineTokens(result.tokens, newLineContent, this._languageIdCodec);\n        return lineTokens;\n    }\n    hasAccurateTokensForLine(lineNumber) {\n        const firstInvalidLineNumber = this.store.getFirstInvalidEndStateLineNumberOrMax();\n        return (lineNumber < firstInvalidLineNumber);\n    }\n    isCheapToTokenize(lineNumber) {\n        const firstInvalidLineNumber = this.store.getFirstInvalidEndStateLineNumberOrMax();\n        if (lineNumber < firstInvalidLineNumber) {\n            return true;\n        }\n        if (lineNumber === firstInvalidLineNumber\n            && this._textModel.getLineLength(lineNumber) < 2048 /* Constants.CHEAP_TOKENIZATION_LENGTH_LIMIT */) {\n            return true;\n        }\n        return false;\n    }\n    /**\n     * The result is not cached.\n     */\n    tokenizeHeuristically(builder, startLineNumber, endLineNumber) {\n        if (endLineNumber <= this.store.getFirstInvalidEndStateLineNumberOrMax()) {\n            // nothing to do\n            return { heuristicTokens: false };\n        }\n        if (startLineNumber <= this.store.getFirstInvalidEndStateLineNumberOrMax()) {\n            // tokenization has reached the viewport start...\n            this.updateTokensUntilLine(builder, endLineNumber);\n            return { heuristicTokens: false };\n        }\n        let state = this.guessStartState(startLineNumber);\n        const languageId = this._textModel.getLanguageId();\n        for (let lineNumber = startLineNumber; lineNumber <= endLineNumber; lineNumber++) {\n            const text = this._textModel.getLineContent(lineNumber);\n            const r = safeTokenize(this._languageIdCodec, languageId, this.tokenizationSupport, text, true, state);\n            builder.add(lineNumber, r.tokens);\n            state = r.endState;\n        }\n        return { heuristicTokens: true };\n    }\n    guessStartState(lineNumber) {\n        let nonWhitespaceColumn = this._textModel.getLineFirstNonWhitespaceColumn(lineNumber);\n        const likelyRelevantLines = [];\n        let initialState = null;\n        for (let i = lineNumber - 1; nonWhitespaceColumn > 1 && i >= 1; i--) {\n            const newNonWhitespaceIndex = this._textModel.getLineFirstNonWhitespaceColumn(i);\n            // Ignore lines full of whitespace\n            if (newNonWhitespaceIndex === 0) {\n                continue;\n            }\n            if (newNonWhitespaceIndex < nonWhitespaceColumn) {\n                likelyRelevantLines.push(this._textModel.getLineContent(i));\n                nonWhitespaceColumn = newNonWhitespaceIndex;\n                initialState = this.getStartState(i);\n                if (initialState) {\n                    break;\n                }\n            }\n        }\n        if (!initialState) {\n            initialState = this.tokenizationSupport.getInitialState();\n        }\n        likelyRelevantLines.reverse();\n        const languageId = this._textModel.getLanguageId();\n        let state = initialState;\n        for (const line of likelyRelevantLines) {\n            const r = safeTokenize(this._languageIdCodec, languageId, this.tokenizationSupport, line, false, state);\n            state = r.endState;\n        }\n        return state;\n    }\n}\n/**\n * **Invariant:**\n * If the text model is retokenized from line 1 to {@link getFirstInvalidEndStateLineNumber}() - 1,\n * then the recomputed end state for line l will be equal to {@link getEndState}(l).\n */\nexport class TrackingTokenizationStateStore {\n    constructor(lineCount) {\n        this.lineCount = lineCount;\n        this._tokenizationStateStore = new TokenizationStateStore();\n        this._invalidEndStatesLineNumbers = new RangePriorityQueueImpl();\n        this._invalidEndStatesLineNumbers.addRange(new OffsetRange(1, lineCount + 1));\n    }\n    getEndState(lineNumber) {\n        return this._tokenizationStateStore.getEndState(lineNumber);\n    }\n    /**\n     * @returns if the end state has changed.\n     */\n    setEndState(lineNumber, state) {\n        if (!state) {\n            throw new BugIndicatingError('Cannot set null/undefined state');\n        }\n        this._invalidEndStatesLineNumbers.delete(lineNumber);\n        const r = this._tokenizationStateStore.setEndState(lineNumber, state);\n        if (r && lineNumber < this.lineCount) {\n            // because the state changed, we cannot trust the next state anymore and have to invalidate it.\n            this._invalidEndStatesLineNumbers.addRange(new OffsetRange(lineNumber + 1, lineNumber + 2));\n        }\n        return r;\n    }\n    acceptChange(range, newLineCount) {\n        this.lineCount += newLineCount - range.length;\n        this._tokenizationStateStore.acceptChange(range, newLineCount);\n        this._invalidEndStatesLineNumbers.addRangeAndResize(new OffsetRange(range.startLineNumber, range.endLineNumberExclusive), newLineCount);\n    }\n    acceptChanges(changes) {\n        for (const c of changes) {\n            const [eolCount] = countEOL(c.text);\n            this.acceptChange(new LineRange(c.range.startLineNumber, c.range.endLineNumber + 1), eolCount + 1);\n        }\n    }\n    invalidateEndStateRange(range) {\n        this._invalidEndStatesLineNumbers.addRange(new OffsetRange(range.startLineNumber, range.endLineNumberExclusive));\n    }\n    getFirstInvalidEndStateLineNumber() { return this._invalidEndStatesLineNumbers.min; }\n    getFirstInvalidEndStateLineNumberOrMax() {\n        return this.getFirstInvalidEndStateLineNumber() || Number.MAX_SAFE_INTEGER;\n    }\n    allStatesValid() { return this._invalidEndStatesLineNumbers.min === null; }\n    getStartState(lineNumber, initialState) {\n        if (lineNumber === 1) {\n            return initialState;\n        }\n        return this.getEndState(lineNumber - 1);\n    }\n    getFirstInvalidLine(initialState) {\n        const lineNumber = this.getFirstInvalidEndStateLineNumber();\n        if (lineNumber === null) {\n            return null;\n        }\n        const startState = this.getStartState(lineNumber, initialState);\n        if (!startState) {\n            throw new BugIndicatingError('Start state must be defined');\n        }\n        return { lineNumber, startState };\n    }\n}\nexport class TokenizationStateStore {\n    constructor() {\n        this._lineEndStates = new FixedArray(null);\n    }\n    getEndState(lineNumber) {\n        return this._lineEndStates.get(lineNumber);\n    }\n    setEndState(lineNumber, state) {\n        const oldState = this._lineEndStates.get(lineNumber);\n        if (oldState && oldState.equals(state)) {\n            return false;\n        }\n        this._lineEndStates.set(lineNumber, state);\n        return true;\n    }\n    acceptChange(range, newLineCount) {\n        let length = range.length;\n        if (newLineCount > 0 && length > 0) {\n            // Keep the last state, even though it is unrelated.\n            // But if the new state happens to agree with this last state, then we know we can stop tokenizing.\n            length--;\n            newLineCount--;\n        }\n        this._lineEndStates.replace(range.startLineNumber, length, newLineCount);\n    }\n}\nexport class RangePriorityQueueImpl {\n    constructor() {\n        this._ranges = [];\n    }\n    get min() {\n        if (this._ranges.length === 0) {\n            return null;\n        }\n        return this._ranges[0].start;\n    }\n    delete(value) {\n        const idx = this._ranges.findIndex(r => r.contains(value));\n        if (idx !== -1) {\n            const range = this._ranges[idx];\n            if (range.start === value) {\n                if (range.endExclusive === value + 1) {\n                    this._ranges.splice(idx, 1);\n                }\n                else {\n                    this._ranges[idx] = new OffsetRange(value + 1, range.endExclusive);\n                }\n            }\n            else {\n                if (range.endExclusive === value + 1) {\n                    this._ranges[idx] = new OffsetRange(range.start, value);\n                }\n                else {\n                    this._ranges.splice(idx, 1, new OffsetRange(range.start, value), new OffsetRange(value + 1, range.endExclusive));\n                }\n            }\n        }\n    }\n    addRange(range) {\n        OffsetRange.addRange(range, this._ranges);\n    }\n    addRangeAndResize(range, newLength) {\n        let idxFirstMightBeIntersecting = 0;\n        while (!(idxFirstMightBeIntersecting >= this._ranges.length || range.start <= this._ranges[idxFirstMightBeIntersecting].endExclusive)) {\n            idxFirstMightBeIntersecting++;\n        }\n        let idxFirstIsAfter = idxFirstMightBeIntersecting;\n        while (!(idxFirstIsAfter >= this._ranges.length || range.endExclusive < this._ranges[idxFirstIsAfter].start)) {\n            idxFirstIsAfter++;\n        }\n        const delta = newLength - range.length;\n        for (let i = idxFirstIsAfter; i < this._ranges.length; i++) {\n            this._ranges[i] = this._ranges[i].delta(delta);\n        }\n        if (idxFirstMightBeIntersecting === idxFirstIsAfter) {\n            const newRange = new OffsetRange(range.start, range.start + newLength);\n            if (!newRange.isEmpty) {\n                this._ranges.splice(idxFirstMightBeIntersecting, 0, newRange);\n            }\n        }\n        else {\n            const start = Math.min(range.start, this._ranges[idxFirstMightBeIntersecting].start);\n            const endEx = Math.max(range.endExclusive, this._ranges[idxFirstIsAfter - 1].endExclusive);\n            const newRange = new OffsetRange(start, endEx + delta);\n            if (!newRange.isEmpty) {\n                this._ranges.splice(idxFirstMightBeIntersecting, idxFirstIsAfter - idxFirstMightBeIntersecting, newRange);\n            }\n            else {\n                this._ranges.splice(idxFirstMightBeIntersecting, idxFirstIsAfter - idxFirstMightBeIntersecting);\n            }\n        }\n    }\n    toString() {\n        return this._ranges.map(r => r.toString()).join(' + ');\n    }\n}\nfunction safeTokenize(languageIdCodec, languageId, tokenizationSupport, text, hasEOL, state) {\n    let r = null;\n    if (tokenizationSupport) {\n        try {\n            r = tokenizationSupport.tokenizeEncoded(text, hasEOL, state.clone());\n        }\n        catch (e) {\n            onUnexpectedError(e);\n        }\n    }\n    if (!r) {\n        r = nullTokenizeEncoded(languageIdCodec.encodeLanguageId(languageId), state);\n    }\n    LineTokens.convertToEndOffset(r.tokens, text.length);\n    return r;\n}\nexport class DefaultBackgroundTokenizer {\n    constructor(_tokenizerWithStateStore, _backgroundTokenStore) {\n        this._tokenizerWithStateStore = _tokenizerWithStateStore;\n        this._backgroundTokenStore = _backgroundTokenStore;\n        this._isDisposed = false;\n        this._isScheduled = false;\n    }\n    dispose() {\n        this._isDisposed = true;\n    }\n    handleChanges() {\n        this._beginBackgroundTokenization();\n    }\n    _beginBackgroundTokenization() {\n        if (this._isScheduled || !this._tokenizerWithStateStore._textModel.isAttachedToEditor() || !this._hasLinesToTokenize()) {\n            return;\n        }\n        this._isScheduled = true;\n        runWhenGlobalIdle((deadline) => {\n            this._isScheduled = false;\n            this._backgroundTokenizeWithDeadline(deadline);\n        });\n    }\n    /**\n     * Tokenize until the deadline occurs, but try to yield every 1-2ms.\n     */\n    _backgroundTokenizeWithDeadline(deadline) {\n        // Read the time remaining from the `deadline` immediately because it is unclear\n        // if the `deadline` object will be valid after execution leaves this function.\n        const endTime = Date.now() + deadline.timeRemaining();\n        const execute = () => {\n            if (this._isDisposed || !this._tokenizerWithStateStore._textModel.isAttachedToEditor() || !this._hasLinesToTokenize()) {\n                // disposed in the meantime or detached or finished\n                return;\n            }\n            this._backgroundTokenizeForAtLeast1ms();\n            if (Date.now() < endTime) {\n                // There is still time before reaching the deadline, so yield to the browser and then\n                // continue execution\n                setTimeout0(execute);\n            }\n            else {\n                // The deadline has been reached, so schedule a new idle callback if necessary\n                this._beginBackgroundTokenization();\n            }\n        };\n        execute();\n    }\n    /**\n     * Tokenize for at least 1ms.\n     */\n    _backgroundTokenizeForAtLeast1ms() {\n        const lineCount = this._tokenizerWithStateStore._textModel.getLineCount();\n        const builder = new ContiguousMultilineTokensBuilder();\n        const sw = StopWatch.create(false);\n        do {\n            if (sw.elapsed() > 1) {\n                // the comparison is intentionally > 1 and not >= 1 to ensure that\n                // a full millisecond has elapsed, given how microseconds are rounded\n                // to milliseconds\n                break;\n            }\n            const tokenizedLineNumber = this._tokenizeOneInvalidLine(builder);\n            if (tokenizedLineNumber >= lineCount) {\n                break;\n            }\n        } while (this._hasLinesToTokenize());\n        this._backgroundTokenStore.setTokens(builder.finalize());\n        this.checkFinished();\n    }\n    _hasLinesToTokenize() {\n        if (!this._tokenizerWithStateStore) {\n            return false;\n        }\n        return !this._tokenizerWithStateStore.store.allStatesValid();\n    }\n    _tokenizeOneInvalidLine(builder) {\n        var _a;\n        const firstInvalidLine = (_a = this._tokenizerWithStateStore) === null || _a === void 0 ? void 0 : _a.getFirstInvalidLine();\n        if (!firstInvalidLine) {\n            return this._tokenizerWithStateStore._textModel.getLineCount() + 1;\n        }\n        this._tokenizerWithStateStore.updateTokensUntilLine(builder, firstInvalidLine.lineNumber);\n        return firstInvalidLine.lineNumber;\n    }\n    checkFinished() {\n        if (this._isDisposed) {\n            return;\n        }\n        if (this._tokenizerWithStateStore.store.allStatesValid()) {\n            this._backgroundTokenStore.backgroundTokenizationFinished();\n        }\n    }\n    requestTokens(startLineNumber, endLineNumberExclusive) {\n        this._tokenizerWithStateStore.store.invalidateEndStateRange(new LineRange(startLineNumber, endLineNumberExclusive));\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/tokenizationTextModelPart.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { equals } from '../../../base/common/arrays.js';\nimport { RunOnceScheduler } from '../../../base/common/async.js';\nimport { BugIndicatingError, onUnexpectedError } from '../../../base/common/errors.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { Disposable, DisposableMap, MutableDisposable } from '../../../base/common/lifecycle.js';\nimport { countEOL } from '../core/eolCounter.js';\nimport { LineRange } from '../core/lineRange.js';\nimport { Position } from '../core/position.js';\nimport { getWordAtText } from '../core/wordHelper.js';\nimport { TokenizationRegistry } from '../languages.js';\nimport { TextModelPart } from './textModelPart.js';\nimport { DefaultBackgroundTokenizer, TokenizerWithStateStoreAndTextModel, TrackingTokenizationStateStore } from './textModelTokens.js';\nimport { ContiguousMultilineTokensBuilder } from '../tokens/contiguousMultilineTokensBuilder.js';\nimport { ContiguousTokensStore } from '../tokens/contiguousTokensStore.js';\nimport { SparseTokensStore } from '../tokens/sparseTokensStore.js';\nexport class TokenizationTextModelPart extends TextModelPart {\n    constructor(_languageService, _languageConfigurationService, _textModel, _bracketPairsTextModelPart, _languageId, _attachedViews) {\n        super();\n        this._languageService = _languageService;\n        this._languageConfigurationService = _languageConfigurationService;\n        this._textModel = _textModel;\n        this._bracketPairsTextModelPart = _bracketPairsTextModelPart;\n        this._languageId = _languageId;\n        this._attachedViews = _attachedViews;\n        this._semanticTokens = new SparseTokensStore(this._languageService.languageIdCodec);\n        this._onDidChangeLanguage = this._register(new Emitter());\n        this.onDidChangeLanguage = this._onDidChangeLanguage.event;\n        this._onDidChangeLanguageConfiguration = this._register(new Emitter());\n        this.onDidChangeLanguageConfiguration = this._onDidChangeLanguageConfiguration.event;\n        this._onDidChangeTokens = this._register(new Emitter());\n        this.onDidChangeTokens = this._onDidChangeTokens.event;\n        this.grammarTokens = this._register(new GrammarTokens(this._languageService.languageIdCodec, this._textModel, () => this._languageId, this._attachedViews));\n        this._register(this._languageConfigurationService.onDidChange(e => {\n            if (e.affects(this._languageId)) {\n                this._onDidChangeLanguageConfiguration.fire({});\n            }\n        }));\n        this._register(this.grammarTokens.onDidChangeTokens(e => {\n            this._emitModelTokensChangedEvent(e);\n        }));\n        this._register(this.grammarTokens.onDidChangeBackgroundTokenizationState(e => {\n            this._bracketPairsTextModelPart.handleDidChangeBackgroundTokenizationState();\n        }));\n    }\n    handleDidChangeContent(e) {\n        if (e.isFlush) {\n            this._semanticTokens.flush();\n        }\n        else if (!e.isEolChange) { // We don't have to do anything on an EOL change\n            for (const c of e.changes) {\n                const [eolCount, firstLineLength, lastLineLength] = countEOL(c.text);\n                this._semanticTokens.acceptEdit(c.range, eolCount, firstLineLength, lastLineLength, c.text.length > 0 ? c.text.charCodeAt(0) : 0 /* CharCode.Null */);\n            }\n        }\n        this.grammarTokens.handleDidChangeContent(e);\n    }\n    handleDidChangeAttached() {\n        this.grammarTokens.handleDidChangeAttached();\n    }\n    /**\n     * Includes grammar and semantic tokens.\n     */\n    getLineTokens(lineNumber) {\n        this.validateLineNumber(lineNumber);\n        const syntacticTokens = this.grammarTokens.getLineTokens(lineNumber);\n        return this._semanticTokens.addSparseTokens(lineNumber, syntacticTokens);\n    }\n    _emitModelTokensChangedEvent(e) {\n        if (!this._textModel._isDisposing()) {\n            this._bracketPairsTextModelPart.handleDidChangeTokens(e);\n            this._onDidChangeTokens.fire(e);\n        }\n    }\n    // #region Grammar Tokens\n    validateLineNumber(lineNumber) {\n        if (lineNumber < 1 || lineNumber > this._textModel.getLineCount()) {\n            throw new BugIndicatingError('Illegal value for lineNumber');\n        }\n    }\n    get hasTokens() {\n        return this.grammarTokens.hasTokens;\n    }\n    resetTokenization() {\n        this.grammarTokens.resetTokenization();\n    }\n    get backgroundTokenizationState() {\n        return this.grammarTokens.backgroundTokenizationState;\n    }\n    forceTokenization(lineNumber) {\n        this.validateLineNumber(lineNumber);\n        this.grammarTokens.forceTokenization(lineNumber);\n    }\n    hasAccurateTokensForLine(lineNumber) {\n        this.validateLineNumber(lineNumber);\n        return this.grammarTokens.hasAccurateTokensForLine(lineNumber);\n    }\n    isCheapToTokenize(lineNumber) {\n        this.validateLineNumber(lineNumber);\n        return this.grammarTokens.isCheapToTokenize(lineNumber);\n    }\n    tokenizeIfCheap(lineNumber) {\n        this.validateLineNumber(lineNumber);\n        this.grammarTokens.tokenizeIfCheap(lineNumber);\n    }\n    getTokenTypeIfInsertingCharacter(lineNumber, column, character) {\n        return this.grammarTokens.getTokenTypeIfInsertingCharacter(lineNumber, column, character);\n    }\n    tokenizeLineWithEdit(position, length, newText) {\n        return this.grammarTokens.tokenizeLineWithEdit(position, length, newText);\n    }\n    // #endregion\n    // #region Semantic Tokens\n    setSemanticTokens(tokens, isComplete) {\n        this._semanticTokens.set(tokens, isComplete);\n        this._emitModelTokensChangedEvent({\n            semanticTokensApplied: tokens !== null,\n            ranges: [{ fromLineNumber: 1, toLineNumber: this._textModel.getLineCount() }],\n        });\n    }\n    hasCompleteSemanticTokens() {\n        return this._semanticTokens.isComplete();\n    }\n    hasSomeSemanticTokens() {\n        return !this._semanticTokens.isEmpty();\n    }\n    setPartialSemanticTokens(range, tokens) {\n        if (this.hasCompleteSemanticTokens()) {\n            return;\n        }\n        const changedRange = this._textModel.validateRange(this._semanticTokens.setPartial(range, tokens));\n        this._emitModelTokensChangedEvent({\n            semanticTokensApplied: true,\n            ranges: [\n                {\n                    fromLineNumber: changedRange.startLineNumber,\n                    toLineNumber: changedRange.endLineNumber,\n                },\n            ],\n        });\n    }\n    // #endregion\n    // #region Utility Methods\n    getWordAtPosition(_position) {\n        this.assertNotDisposed();\n        const position = this._textModel.validatePosition(_position);\n        const lineContent = this._textModel.getLineContent(position.lineNumber);\n        const lineTokens = this.getLineTokens(position.lineNumber);\n        const tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n        // (1). First try checking right biased word\n        const [rbStartOffset, rbEndOffset] = TokenizationTextModelPart._findLanguageBoundaries(lineTokens, tokenIndex);\n        const rightBiasedWord = getWordAtText(position.column, this.getLanguageConfiguration(lineTokens.getLanguageId(tokenIndex)).getWordDefinition(), lineContent.substring(rbStartOffset, rbEndOffset), rbStartOffset);\n        // Make sure the result touches the original passed in position\n        if (rightBiasedWord &&\n            rightBiasedWord.startColumn <= _position.column &&\n            _position.column <= rightBiasedWord.endColumn) {\n            return rightBiasedWord;\n        }\n        // (2). Else, if we were at a language boundary, check the left biased word\n        if (tokenIndex > 0 && rbStartOffset === position.column - 1) {\n            // edge case, where `position` sits between two tokens belonging to two different languages\n            const [lbStartOffset, lbEndOffset] = TokenizationTextModelPart._findLanguageBoundaries(lineTokens, tokenIndex - 1);\n            const leftBiasedWord = getWordAtText(position.column, this.getLanguageConfiguration(lineTokens.getLanguageId(tokenIndex - 1)).getWordDefinition(), lineContent.substring(lbStartOffset, lbEndOffset), lbStartOffset);\n            // Make sure the result touches the original passed in position\n            if (leftBiasedWord &&\n                leftBiasedWord.startColumn <= _position.column &&\n                _position.column <= leftBiasedWord.endColumn) {\n                return leftBiasedWord;\n            }\n        }\n        return null;\n    }\n    getLanguageConfiguration(languageId) {\n        return this._languageConfigurationService.getLanguageConfiguration(languageId);\n    }\n    static _findLanguageBoundaries(lineTokens, tokenIndex) {\n        const languageId = lineTokens.getLanguageId(tokenIndex);\n        // go left until a different language is hit\n        let startOffset = 0;\n        for (let i = tokenIndex; i >= 0 && lineTokens.getLanguageId(i) === languageId; i--) {\n            startOffset = lineTokens.getStartOffset(i);\n        }\n        // go right until a different language is hit\n        let endOffset = lineTokens.getLineContent().length;\n        for (let i = tokenIndex, tokenCount = lineTokens.getCount(); i < tokenCount && lineTokens.getLanguageId(i) === languageId; i++) {\n            endOffset = lineTokens.getEndOffset(i);\n        }\n        return [startOffset, endOffset];\n    }\n    getWordUntilPosition(position) {\n        const wordAtPosition = this.getWordAtPosition(position);\n        if (!wordAtPosition) {\n            return { word: '', startColumn: position.column, endColumn: position.column, };\n        }\n        return {\n            word: wordAtPosition.word.substr(0, position.column - wordAtPosition.startColumn),\n            startColumn: wordAtPosition.startColumn,\n            endColumn: position.column,\n        };\n    }\n    // #endregion\n    // #region Language Id handling\n    getLanguageId() {\n        return this._languageId;\n    }\n    getLanguageIdAtPosition(lineNumber, column) {\n        const position = this._textModel.validatePosition(new Position(lineNumber, column));\n        const lineTokens = this.getLineTokens(position.lineNumber);\n        return lineTokens.getLanguageId(lineTokens.findTokenIndexAtOffset(position.column - 1));\n    }\n    setLanguageId(languageId, source = 'api') {\n        if (this._languageId === languageId) {\n            // There's nothing to do\n            return;\n        }\n        const e = {\n            oldLanguage: this._languageId,\n            newLanguage: languageId,\n            source\n        };\n        this._languageId = languageId;\n        this._bracketPairsTextModelPart.handleDidChangeLanguage(e);\n        this.grammarTokens.resetTokenization();\n        this._onDidChangeLanguage.fire(e);\n        this._onDidChangeLanguageConfiguration.fire({});\n    }\n}\nclass GrammarTokens extends Disposable {\n    get backgroundTokenizationState() {\n        return this._backgroundTokenizationState;\n    }\n    constructor(_languageIdCodec, _textModel, getLanguageId, attachedViews) {\n        super();\n        this._languageIdCodec = _languageIdCodec;\n        this._textModel = _textModel;\n        this.getLanguageId = getLanguageId;\n        this._tokenizer = null;\n        this._defaultBackgroundTokenizer = null;\n        this._backgroundTokenizer = this._register(new MutableDisposable());\n        this._tokens = new ContiguousTokensStore(this._languageIdCodec);\n        this._debugBackgroundTokenizer = this._register(new MutableDisposable());\n        this._backgroundTokenizationState = 1 /* BackgroundTokenizationState.InProgress */;\n        this._onDidChangeBackgroundTokenizationState = this._register(new Emitter());\n        /** @internal, should not be exposed by the text model! */\n        this.onDidChangeBackgroundTokenizationState = this._onDidChangeBackgroundTokenizationState.event;\n        this._onDidChangeTokens = this._register(new Emitter());\n        /** @internal, should not be exposed by the text model! */\n        this.onDidChangeTokens = this._onDidChangeTokens.event;\n        this._attachedViewStates = this._register(new DisposableMap());\n        this._register(TokenizationRegistry.onDidChange((e) => {\n            const languageId = this.getLanguageId();\n            if (e.changedLanguages.indexOf(languageId) === -1) {\n                return;\n            }\n            this.resetTokenization();\n        }));\n        this.resetTokenization();\n        this._register(attachedViews.onDidChangeVisibleRanges(({ view, state }) => {\n            if (state) {\n                let existing = this._attachedViewStates.get(view);\n                if (!existing) {\n                    existing = new AttachedViewHandler(() => this.refreshRanges(existing.lineRanges));\n                    this._attachedViewStates.set(view, existing);\n                }\n                existing.handleStateChange(state);\n            }\n            else {\n                this._attachedViewStates.deleteAndDispose(view);\n            }\n        }));\n    }\n    resetTokenization(fireTokenChangeEvent = true) {\n        var _a;\n        this._tokens.flush();\n        (_a = this._debugBackgroundTokens) === null || _a === void 0 ? void 0 : _a.flush();\n        if (this._debugBackgroundStates) {\n            this._debugBackgroundStates = new TrackingTokenizationStateStore(this._textModel.getLineCount());\n        }\n        if (fireTokenChangeEvent) {\n            this._onDidChangeTokens.fire({\n                semanticTokensApplied: false,\n                ranges: [\n                    {\n                        fromLineNumber: 1,\n                        toLineNumber: this._textModel.getLineCount(),\n                    },\n                ],\n            });\n        }\n        const initializeTokenization = () => {\n            if (this._textModel.isTooLargeForTokenization()) {\n                return [null, null];\n            }\n            const tokenizationSupport = TokenizationRegistry.get(this.getLanguageId());\n            if (!tokenizationSupport) {\n                return [null, null];\n            }\n            let initialState;\n            try {\n                initialState = tokenizationSupport.getInitialState();\n            }\n            catch (e) {\n                onUnexpectedError(e);\n                return [null, null];\n            }\n            return [tokenizationSupport, initialState];\n        };\n        const [tokenizationSupport, initialState] = initializeTokenization();\n        if (tokenizationSupport && initialState) {\n            this._tokenizer = new TokenizerWithStateStoreAndTextModel(this._textModel.getLineCount(), tokenizationSupport, this._textModel, this._languageIdCodec);\n        }\n        else {\n            this._tokenizer = null;\n        }\n        this._backgroundTokenizer.clear();\n        this._defaultBackgroundTokenizer = null;\n        if (this._tokenizer) {\n            const b = {\n                setTokens: (tokens) => {\n                    this.setTokens(tokens);\n                },\n                backgroundTokenizationFinished: () => {\n                    if (this._backgroundTokenizationState === 2 /* BackgroundTokenizationState.Completed */) {\n                        // We already did a full tokenization and don't go back to progressing.\n                        return;\n                    }\n                    const newState = 2 /* BackgroundTokenizationState.Completed */;\n                    this._backgroundTokenizationState = newState;\n                    this._onDidChangeBackgroundTokenizationState.fire();\n                },\n                setEndState: (lineNumber, state) => {\n                    var _a;\n                    if (!this._tokenizer) {\n                        return;\n                    }\n                    const firstInvalidEndStateLineNumber = this._tokenizer.store.getFirstInvalidEndStateLineNumber();\n                    // Don't accept states for definitely valid states, the renderer is ahead of the worker!\n                    if (firstInvalidEndStateLineNumber !== null && lineNumber >= firstInvalidEndStateLineNumber) {\n                        (_a = this._tokenizer) === null || _a === void 0 ? void 0 : _a.store.setEndState(lineNumber, state);\n                    }\n                },\n            };\n            if (tokenizationSupport && tokenizationSupport.createBackgroundTokenizer && !tokenizationSupport.backgroundTokenizerShouldOnlyVerifyTokens) {\n                this._backgroundTokenizer.value = tokenizationSupport.createBackgroundTokenizer(this._textModel, b);\n            }\n            if (!this._backgroundTokenizer.value && !this._textModel.isTooLargeForTokenization()) {\n                this._backgroundTokenizer.value = this._defaultBackgroundTokenizer =\n                    new DefaultBackgroundTokenizer(this._tokenizer, b);\n                this._defaultBackgroundTokenizer.handleChanges();\n            }\n            if ((tokenizationSupport === null || tokenizationSupport === void 0 ? void 0 : tokenizationSupport.backgroundTokenizerShouldOnlyVerifyTokens) && tokenizationSupport.createBackgroundTokenizer) {\n                this._debugBackgroundTokens = new ContiguousTokensStore(this._languageIdCodec);\n                this._debugBackgroundStates = new TrackingTokenizationStateStore(this._textModel.getLineCount());\n                this._debugBackgroundTokenizer.clear();\n                this._debugBackgroundTokenizer.value = tokenizationSupport.createBackgroundTokenizer(this._textModel, {\n                    setTokens: (tokens) => {\n                        var _a;\n                        (_a = this._debugBackgroundTokens) === null || _a === void 0 ? void 0 : _a.setMultilineTokens(tokens, this._textModel);\n                    },\n                    backgroundTokenizationFinished() {\n                        // NO OP\n                    },\n                    setEndState: (lineNumber, state) => {\n                        var _a;\n                        (_a = this._debugBackgroundStates) === null || _a === void 0 ? void 0 : _a.setEndState(lineNumber, state);\n                    },\n                });\n            }\n            else {\n                this._debugBackgroundTokens = undefined;\n                this._debugBackgroundStates = undefined;\n                this._debugBackgroundTokenizer.value = undefined;\n            }\n        }\n        this.refreshAllVisibleLineTokens();\n    }\n    handleDidChangeAttached() {\n        var _a;\n        (_a = this._defaultBackgroundTokenizer) === null || _a === void 0 ? void 0 : _a.handleChanges();\n    }\n    handleDidChangeContent(e) {\n        var _a, _b, _c;\n        if (e.isFlush) {\n            // Don't fire the event, as the view might not have got the text change event yet\n            this.resetTokenization(false);\n        }\n        else if (!e.isEolChange) { // We don't have to do anything on an EOL change\n            for (const c of e.changes) {\n                const [eolCount, firstLineLength] = countEOL(c.text);\n                this._tokens.acceptEdit(c.range, eolCount, firstLineLength);\n                (_a = this._debugBackgroundTokens) === null || _a === void 0 ? void 0 : _a.acceptEdit(c.range, eolCount, firstLineLength);\n            }\n            (_b = this._debugBackgroundStates) === null || _b === void 0 ? void 0 : _b.acceptChanges(e.changes);\n            if (this._tokenizer) {\n                this._tokenizer.store.acceptChanges(e.changes);\n            }\n            (_c = this._defaultBackgroundTokenizer) === null || _c === void 0 ? void 0 : _c.handleChanges();\n        }\n    }\n    setTokens(tokens) {\n        const { changes } = this._tokens.setMultilineTokens(tokens, this._textModel);\n        if (changes.length > 0) {\n            this._onDidChangeTokens.fire({ semanticTokensApplied: false, ranges: changes, });\n        }\n        return { changes: changes };\n    }\n    refreshAllVisibleLineTokens() {\n        const ranges = LineRange.joinMany([...this._attachedViewStates].map(([_, s]) => s.lineRanges));\n        this.refreshRanges(ranges);\n    }\n    refreshRanges(ranges) {\n        for (const range of ranges) {\n            this.refreshRange(range.startLineNumber, range.endLineNumberExclusive - 1);\n        }\n    }\n    refreshRange(startLineNumber, endLineNumber) {\n        var _a, _b;\n        if (!this._tokenizer) {\n            return;\n        }\n        startLineNumber = Math.max(1, Math.min(this._textModel.getLineCount(), startLineNumber));\n        endLineNumber = Math.min(this._textModel.getLineCount(), endLineNumber);\n        const builder = new ContiguousMultilineTokensBuilder();\n        const { heuristicTokens } = this._tokenizer.tokenizeHeuristically(builder, startLineNumber, endLineNumber);\n        const changedTokens = this.setTokens(builder.finalize());\n        if (heuristicTokens) {\n            // We overrode tokens with heuristically computed ones.\n            // Because old states might get reused (thus stopping invalidation),\n            // we have to explicitly request the tokens for the changed ranges again.\n            for (const c of changedTokens.changes) {\n                (_a = this._backgroundTokenizer.value) === null || _a === void 0 ? void 0 : _a.requestTokens(c.fromLineNumber, c.toLineNumber + 1);\n            }\n        }\n        (_b = this._defaultBackgroundTokenizer) === null || _b === void 0 ? void 0 : _b.checkFinished();\n    }\n    forceTokenization(lineNumber) {\n        var _a, _b;\n        const builder = new ContiguousMultilineTokensBuilder();\n        (_a = this._tokenizer) === null || _a === void 0 ? void 0 : _a.updateTokensUntilLine(builder, lineNumber);\n        this.setTokens(builder.finalize());\n        (_b = this._defaultBackgroundTokenizer) === null || _b === void 0 ? void 0 : _b.checkFinished();\n    }\n    hasAccurateTokensForLine(lineNumber) {\n        if (!this._tokenizer) {\n            return true;\n        }\n        return this._tokenizer.hasAccurateTokensForLine(lineNumber);\n    }\n    isCheapToTokenize(lineNumber) {\n        if (!this._tokenizer) {\n            return true;\n        }\n        return this._tokenizer.isCheapToTokenize(lineNumber);\n    }\n    tokenizeIfCheap(lineNumber) {\n        if (this.isCheapToTokenize(lineNumber)) {\n            this.forceTokenization(lineNumber);\n        }\n    }\n    getLineTokens(lineNumber) {\n        var _a;\n        const lineText = this._textModel.getLineContent(lineNumber);\n        const result = this._tokens.getTokens(this._textModel.getLanguageId(), lineNumber - 1, lineText);\n        if (this._debugBackgroundTokens && this._debugBackgroundStates && this._tokenizer) {\n            if (this._debugBackgroundStates.getFirstInvalidEndStateLineNumberOrMax() > lineNumber && this._tokenizer.store.getFirstInvalidEndStateLineNumberOrMax() > lineNumber) {\n                const backgroundResult = this._debugBackgroundTokens.getTokens(this._textModel.getLanguageId(), lineNumber - 1, lineText);\n                if (!result.equals(backgroundResult) && ((_a = this._debugBackgroundTokenizer.value) === null || _a === void 0 ? void 0 : _a.reportMismatchingTokens)) {\n                    this._debugBackgroundTokenizer.value.reportMismatchingTokens(lineNumber);\n                }\n            }\n        }\n        return result;\n    }\n    getTokenTypeIfInsertingCharacter(lineNumber, column, character) {\n        if (!this._tokenizer) {\n            return 0 /* StandardTokenType.Other */;\n        }\n        const position = this._textModel.validatePosition(new Position(lineNumber, column));\n        this.forceTokenization(position.lineNumber);\n        return this._tokenizer.getTokenTypeIfInsertingCharacter(position, character);\n    }\n    tokenizeLineWithEdit(position, length, newText) {\n        if (!this._tokenizer) {\n            return null;\n        }\n        const validatedPosition = this._textModel.validatePosition(position);\n        this.forceTokenization(validatedPosition.lineNumber);\n        return this._tokenizer.tokenizeLineWithEdit(validatedPosition, length, newText);\n    }\n    get hasTokens() {\n        return this._tokens.hasTokens;\n    }\n}\nclass AttachedViewHandler extends Disposable {\n    get lineRanges() { return this._lineRanges; }\n    constructor(_refreshTokens) {\n        super();\n        this._refreshTokens = _refreshTokens;\n        this.runner = this._register(new RunOnceScheduler(() => this.update(), 50));\n        this._computedLineRanges = [];\n        this._lineRanges = [];\n    }\n    update() {\n        if (equals(this._computedLineRanges, this._lineRanges, (a, b) => a.equals(b))) {\n            return;\n        }\n        this._computedLineRanges = this._lineRanges;\n        this._refreshTokens();\n    }\n    handleStateChange(state) {\n        this._lineRanges = state.visibleLineRanges;\n        if (state.stabilized) {\n            this.runner.cancel();\n            this.update();\n        }\n        else {\n            this.runner.schedule();\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model/utils.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * Returns:\n *  - -1 => the line consists of whitespace\n *  - otherwise => the indent level is returned value\n */\nexport function computeIndentLevel(line, tabSize) {\n    let indent = 0;\n    let i = 0;\n    const len = line.length;\n    while (i < len) {\n        const chCode = line.charCodeAt(i);\n        if (chCode === 32 /* CharCode.Space */) {\n            indent++;\n        }\n        else if (chCode === 9 /* CharCode.Tab */) {\n            indent = indent - indent % tabSize + tabSize;\n        }\n        else {\n            break;\n        }\n        i++;\n    }\n    if (i === len) {\n        return -1; // line only consists of whitespace\n    }\n    return indent;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/model.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { equals } from '../../base/common/objects.js';\n/**\n * Vertical Lane in the overview ruler of the editor.\n */\nexport var OverviewRulerLane;\n(function (OverviewRulerLane) {\n    OverviewRulerLane[OverviewRulerLane[\"Left\"] = 1] = \"Left\";\n    OverviewRulerLane[OverviewRulerLane[\"Center\"] = 2] = \"Center\";\n    OverviewRulerLane[OverviewRulerLane[\"Right\"] = 4] = \"Right\";\n    OverviewRulerLane[OverviewRulerLane[\"Full\"] = 7] = \"Full\";\n})(OverviewRulerLane || (OverviewRulerLane = {}));\n/**\n * Vertical Lane in the glyph margin of the editor.\n */\nexport var GlyphMarginLane;\n(function (GlyphMarginLane) {\n    GlyphMarginLane[GlyphMarginLane[\"Left\"] = 1] = \"Left\";\n    GlyphMarginLane[GlyphMarginLane[\"Center\"] = 2] = \"Center\";\n    GlyphMarginLane[GlyphMarginLane[\"Right\"] = 3] = \"Right\";\n})(GlyphMarginLane || (GlyphMarginLane = {}));\nexport var InjectedTextCursorStops;\n(function (InjectedTextCursorStops) {\n    InjectedTextCursorStops[InjectedTextCursorStops[\"Both\"] = 0] = \"Both\";\n    InjectedTextCursorStops[InjectedTextCursorStops[\"Right\"] = 1] = \"Right\";\n    InjectedTextCursorStops[InjectedTextCursorStops[\"Left\"] = 2] = \"Left\";\n    InjectedTextCursorStops[InjectedTextCursorStops[\"None\"] = 3] = \"None\";\n})(InjectedTextCursorStops || (InjectedTextCursorStops = {}));\nexport class TextModelResolvedOptions {\n    get originalIndentSize() {\n        return this._indentSizeIsTabSize ? 'tabSize' : this.indentSize;\n    }\n    /**\n     * @internal\n     */\n    constructor(src) {\n        this._textModelResolvedOptionsBrand = undefined;\n        this.tabSize = Math.max(1, src.tabSize | 0);\n        if (src.indentSize === 'tabSize') {\n            this.indentSize = this.tabSize;\n            this._indentSizeIsTabSize = true;\n        }\n        else {\n            this.indentSize = Math.max(1, src.indentSize | 0);\n            this._indentSizeIsTabSize = false;\n        }\n        this.insertSpaces = Boolean(src.insertSpaces);\n        this.defaultEOL = src.defaultEOL | 0;\n        this.trimAutoWhitespace = Boolean(src.trimAutoWhitespace);\n        this.bracketPairColorizationOptions = src.bracketPairColorizationOptions;\n    }\n    /**\n     * @internal\n     */\n    equals(other) {\n        return (this.tabSize === other.tabSize\n            && this._indentSizeIsTabSize === other._indentSizeIsTabSize\n            && this.indentSize === other.indentSize\n            && this.insertSpaces === other.insertSpaces\n            && this.defaultEOL === other.defaultEOL\n            && this.trimAutoWhitespace === other.trimAutoWhitespace\n            && equals(this.bracketPairColorizationOptions, other.bracketPairColorizationOptions));\n    }\n    /**\n     * @internal\n     */\n    createChangeEvent(newOpts) {\n        return {\n            tabSize: this.tabSize !== newOpts.tabSize,\n            indentSize: this.indentSize !== newOpts.indentSize,\n            insertSpaces: this.insertSpaces !== newOpts.insertSpaces,\n            trimAutoWhitespace: this.trimAutoWhitespace !== newOpts.trimAutoWhitespace,\n        };\n    }\n}\nexport class FindMatch {\n    /**\n     * @internal\n     */\n    constructor(range, matches) {\n        this._findMatchBrand = undefined;\n        this.range = range;\n        this.matches = matches;\n    }\n}\n/**\n * @internal\n */\nexport function isITextSnapshot(obj) {\n    return (obj && typeof obj.read === 'function');\n}\n/**\n * @internal\n */\nexport class ValidAnnotatedEditOperation {\n    constructor(identifier, range, text, forceMoveMarkers, isAutoWhitespaceEdit, _isTracked) {\n        this.identifier = identifier;\n        this.range = range;\n        this.text = text;\n        this.forceMoveMarkers = forceMoveMarkers;\n        this.isAutoWhitespaceEdit = isAutoWhitespaceEdit;\n        this._isTracked = _isTracked;\n    }\n}\n/**\n * @internal\n */\nexport class SearchData {\n    constructor(regex, wordSeparators, simpleSearch) {\n        this.regex = regex;\n        this.wordSeparators = wordSeparators;\n        this.simpleSearch = simpleSearch;\n    }\n}\n/**\n * @internal\n */\nexport class ApplyEditsResult {\n    constructor(reverseEdits, changes, trimAutoWhitespaceLineNumbers) {\n        this.reverseEdits = reverseEdits;\n        this.changes = changes;\n        this.trimAutoWhitespaceLineNumbers = trimAutoWhitespaceLineNumbers;\n    }\n}\n/**\n * @internal\n */\nexport function shouldSynchronizeModel(model) {\n    return (!model.isTooLargeForSyncing() && !model.isForSimpleWidget);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/modelLineProjectionData.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { assertNever } from '../../base/common/assert.js';\nimport { Position } from './core/position.js';\nimport { InjectedTextCursorStops } from './model.js';\n/**\n * *input*:\n * ```\n * xxxxxxxxxxxxxxxxxxxxxxxxxxx\n * ```\n *\n * -> Applying injections `[i...i]`, *inputWithInjections*:\n * ```\n * xxxxxx[iiiiiiiiii]xxxxxxxxxxxxxxxxx[ii]xxxx\n * ```\n *\n * -> breaking at offsets `|` in `xxxxxx[iiiiiii|iii]xxxxxxxxxxx|xxxxxx[ii]xxxx|`:\n * ```\n * xxxxxx[iiiiiii\n * iii]xxxxxxxxxxx\n * xxxxxx[ii]xxxx\n * ```\n *\n * -> applying wrappedTextIndentLength, *output*:\n * ```\n * xxxxxx[iiiiiii\n *    iii]xxxxxxxxxxx\n *    xxxxxx[ii]xxxx\n * ```\n */\nexport class ModelLineProjectionData {\n    constructor(injectionOffsets, \n    /**\n     * `injectionOptions.length` must equal `injectionOffsets.length`\n     */\n    injectionOptions, \n    /**\n     * Refers to offsets after applying injections to the source.\n     * The last break offset indicates the length of the source after applying injections.\n     */\n    breakOffsets, \n    /**\n     * Refers to offsets after applying injections\n     */\n    breakOffsetsVisibleColumn, wrappedTextIndentLength) {\n        this.injectionOffsets = injectionOffsets;\n        this.injectionOptions = injectionOptions;\n        this.breakOffsets = breakOffsets;\n        this.breakOffsetsVisibleColumn = breakOffsetsVisibleColumn;\n        this.wrappedTextIndentLength = wrappedTextIndentLength;\n    }\n    getOutputLineCount() {\n        return this.breakOffsets.length;\n    }\n    getMinOutputOffset(outputLineIndex) {\n        if (outputLineIndex > 0) {\n            return this.wrappedTextIndentLength;\n        }\n        return 0;\n    }\n    getLineLength(outputLineIndex) {\n        // These offsets refer to model text with injected text.\n        const startOffset = outputLineIndex > 0 ? this.breakOffsets[outputLineIndex - 1] : 0;\n        const endOffset = this.breakOffsets[outputLineIndex];\n        let lineLength = endOffset - startOffset;\n        if (outputLineIndex > 0) {\n            lineLength += this.wrappedTextIndentLength;\n        }\n        return lineLength;\n    }\n    getMaxOutputOffset(outputLineIndex) {\n        return this.getLineLength(outputLineIndex);\n    }\n    translateToInputOffset(outputLineIndex, outputOffset) {\n        if (outputLineIndex > 0) {\n            outputOffset = Math.max(0, outputOffset - this.wrappedTextIndentLength);\n        }\n        const offsetInInputWithInjection = outputLineIndex === 0 ? outputOffset : this.breakOffsets[outputLineIndex - 1] + outputOffset;\n        let offsetInInput = offsetInInputWithInjection;\n        if (this.injectionOffsets !== null) {\n            for (let i = 0; i < this.injectionOffsets.length; i++) {\n                if (offsetInInput > this.injectionOffsets[i]) {\n                    if (offsetInInput < this.injectionOffsets[i] + this.injectionOptions[i].content.length) {\n                        // `inputOffset` is within injected text\n                        offsetInInput = this.injectionOffsets[i];\n                    }\n                    else {\n                        offsetInInput -= this.injectionOptions[i].content.length;\n                    }\n                }\n                else {\n                    break;\n                }\n            }\n        }\n        return offsetInInput;\n    }\n    translateToOutputPosition(inputOffset, affinity = 2 /* PositionAffinity.None */) {\n        let inputOffsetInInputWithInjection = inputOffset;\n        if (this.injectionOffsets !== null) {\n            for (let i = 0; i < this.injectionOffsets.length; i++) {\n                if (inputOffset < this.injectionOffsets[i]) {\n                    break;\n                }\n                if (affinity !== 1 /* PositionAffinity.Right */ && inputOffset === this.injectionOffsets[i]) {\n                    break;\n                }\n                inputOffsetInInputWithInjection += this.injectionOptions[i].content.length;\n            }\n        }\n        return this.offsetInInputWithInjectionsToOutputPosition(inputOffsetInInputWithInjection, affinity);\n    }\n    offsetInInputWithInjectionsToOutputPosition(offsetInInputWithInjections, affinity = 2 /* PositionAffinity.None */) {\n        let low = 0;\n        let high = this.breakOffsets.length - 1;\n        let mid = 0;\n        let midStart = 0;\n        while (low <= high) {\n            mid = low + ((high - low) / 2) | 0;\n            const midStop = this.breakOffsets[mid];\n            midStart = mid > 0 ? this.breakOffsets[mid - 1] : 0;\n            if (affinity === 0 /* PositionAffinity.Left */) {\n                if (offsetInInputWithInjections <= midStart) {\n                    high = mid - 1;\n                }\n                else if (offsetInInputWithInjections > midStop) {\n                    low = mid + 1;\n                }\n                else {\n                    break;\n                }\n            }\n            else {\n                if (offsetInInputWithInjections < midStart) {\n                    high = mid - 1;\n                }\n                else if (offsetInInputWithInjections >= midStop) {\n                    low = mid + 1;\n                }\n                else {\n                    break;\n                }\n            }\n        }\n        let outputOffset = offsetInInputWithInjections - midStart;\n        if (mid > 0) {\n            outputOffset += this.wrappedTextIndentLength;\n        }\n        return new OutputPosition(mid, outputOffset);\n    }\n    normalizeOutputPosition(outputLineIndex, outputOffset, affinity) {\n        if (this.injectionOffsets !== null) {\n            const offsetInInputWithInjections = this.outputPositionToOffsetInInputWithInjections(outputLineIndex, outputOffset);\n            const normalizedOffsetInUnwrappedLine = this.normalizeOffsetInInputWithInjectionsAroundInjections(offsetInInputWithInjections, affinity);\n            if (normalizedOffsetInUnwrappedLine !== offsetInInputWithInjections) {\n                // injected text caused a change\n                return this.offsetInInputWithInjectionsToOutputPosition(normalizedOffsetInUnwrappedLine, affinity);\n            }\n        }\n        if (affinity === 0 /* PositionAffinity.Left */) {\n            if (outputLineIndex > 0 && outputOffset === this.getMinOutputOffset(outputLineIndex)) {\n                return new OutputPosition(outputLineIndex - 1, this.getMaxOutputOffset(outputLineIndex - 1));\n            }\n        }\n        else if (affinity === 1 /* PositionAffinity.Right */) {\n            const maxOutputLineIndex = this.getOutputLineCount() - 1;\n            if (outputLineIndex < maxOutputLineIndex && outputOffset === this.getMaxOutputOffset(outputLineIndex)) {\n                return new OutputPosition(outputLineIndex + 1, this.getMinOutputOffset(outputLineIndex + 1));\n            }\n        }\n        return new OutputPosition(outputLineIndex, outputOffset);\n    }\n    outputPositionToOffsetInInputWithInjections(outputLineIndex, outputOffset) {\n        if (outputLineIndex > 0) {\n            outputOffset = Math.max(0, outputOffset - this.wrappedTextIndentLength);\n        }\n        const result = (outputLineIndex > 0 ? this.breakOffsets[outputLineIndex - 1] : 0) + outputOffset;\n        return result;\n    }\n    normalizeOffsetInInputWithInjectionsAroundInjections(offsetInInputWithInjections, affinity) {\n        const injectedText = this.getInjectedTextAtOffset(offsetInInputWithInjections);\n        if (!injectedText) {\n            return offsetInInputWithInjections;\n        }\n        if (affinity === 2 /* PositionAffinity.None */) {\n            if (offsetInInputWithInjections === injectedText.offsetInInputWithInjections + injectedText.length\n                && hasRightCursorStop(this.injectionOptions[injectedText.injectedTextIndex].cursorStops)) {\n                return injectedText.offsetInInputWithInjections + injectedText.length;\n            }\n            else {\n                let result = injectedText.offsetInInputWithInjections;\n                if (hasLeftCursorStop(this.injectionOptions[injectedText.injectedTextIndex].cursorStops)) {\n                    return result;\n                }\n                let index = injectedText.injectedTextIndex - 1;\n                while (index >= 0 && this.injectionOffsets[index] === this.injectionOffsets[injectedText.injectedTextIndex]) {\n                    if (hasRightCursorStop(this.injectionOptions[index].cursorStops)) {\n                        break;\n                    }\n                    result -= this.injectionOptions[index].content.length;\n                    if (hasLeftCursorStop(this.injectionOptions[index].cursorStops)) {\n                        break;\n                    }\n                    index--;\n                }\n                return result;\n            }\n        }\n        else if (affinity === 1 /* PositionAffinity.Right */ || affinity === 4 /* PositionAffinity.RightOfInjectedText */) {\n            let result = injectedText.offsetInInputWithInjections + injectedText.length;\n            let index = injectedText.injectedTextIndex;\n            // traverse all injected text that touch each other\n            while (index + 1 < this.injectionOffsets.length && this.injectionOffsets[index + 1] === this.injectionOffsets[index]) {\n                result += this.injectionOptions[index + 1].content.length;\n                index++;\n            }\n            return result;\n        }\n        else if (affinity === 0 /* PositionAffinity.Left */ || affinity === 3 /* PositionAffinity.LeftOfInjectedText */) {\n            // affinity is left\n            let result = injectedText.offsetInInputWithInjections;\n            let index = injectedText.injectedTextIndex;\n            // traverse all injected text that touch each other\n            while (index - 1 >= 0 && this.injectionOffsets[index - 1] === this.injectionOffsets[index]) {\n                result -= this.injectionOptions[index - 1].content.length;\n                index--;\n            }\n            return result;\n        }\n        assertNever(affinity);\n    }\n    getInjectedText(outputLineIndex, outputOffset) {\n        const offset = this.outputPositionToOffsetInInputWithInjections(outputLineIndex, outputOffset);\n        const injectedText = this.getInjectedTextAtOffset(offset);\n        if (!injectedText) {\n            return null;\n        }\n        return {\n            options: this.injectionOptions[injectedText.injectedTextIndex]\n        };\n    }\n    getInjectedTextAtOffset(offsetInInputWithInjections) {\n        const injectionOffsets = this.injectionOffsets;\n        const injectionOptions = this.injectionOptions;\n        if (injectionOffsets !== null) {\n            let totalInjectedTextLengthBefore = 0;\n            for (let i = 0; i < injectionOffsets.length; i++) {\n                const length = injectionOptions[i].content.length;\n                const injectedTextStartOffsetInInputWithInjections = injectionOffsets[i] + totalInjectedTextLengthBefore;\n                const injectedTextEndOffsetInInputWithInjections = injectionOffsets[i] + totalInjectedTextLengthBefore + length;\n                if (injectedTextStartOffsetInInputWithInjections > offsetInInputWithInjections) {\n                    // Injected text starts later.\n                    break; // All later injected texts have an even larger offset.\n                }\n                if (offsetInInputWithInjections <= injectedTextEndOffsetInInputWithInjections) {\n                    // Injected text ends after or with the given position (but also starts with or before it).\n                    return {\n                        injectedTextIndex: i,\n                        offsetInInputWithInjections: injectedTextStartOffsetInInputWithInjections,\n                        length\n                    };\n                }\n                totalInjectedTextLengthBefore += length;\n            }\n        }\n        return undefined;\n    }\n}\nfunction hasRightCursorStop(cursorStop) {\n    if (cursorStop === null || cursorStop === undefined) {\n        return true;\n    }\n    return cursorStop === InjectedTextCursorStops.Right || cursorStop === InjectedTextCursorStops.Both;\n}\nfunction hasLeftCursorStop(cursorStop) {\n    if (cursorStop === null || cursorStop === undefined) {\n        return true;\n    }\n    return cursorStop === InjectedTextCursorStops.Left || cursorStop === InjectedTextCursorStops.Both;\n}\nexport class InjectedText {\n    constructor(options) {\n        this.options = options;\n    }\n}\nexport class OutputPosition {\n    constructor(outputLineIndex, outputOffset) {\n        this.outputLineIndex = outputLineIndex;\n        this.outputOffset = outputOffset;\n    }\n    toString() {\n        return `${this.outputLineIndex}:${this.outputOffset}`;\n    }\n    toPosition(baseLineNumber) {\n        return new Position(baseLineNumber + this.outputLineIndex, this.outputOffset + 1);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/services/editorBaseApi.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { CancellationTokenSource } from '../../../base/common/cancellation.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { KeyChord } from '../../../base/common/keyCodes.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { Position } from '../core/position.js';\nimport { Range } from '../core/range.js';\nimport { Selection } from '../core/selection.js';\nimport { Token } from '../languages.js';\nimport * as standaloneEnums from '../standalone/standaloneEnums.js';\nexport class KeyMod {\n    static chord(firstPart, secondPart) {\n        return KeyChord(firstPart, secondPart);\n    }\n}\nKeyMod.CtrlCmd = 2048 /* ConstKeyMod.CtrlCmd */;\nKeyMod.Shift = 1024 /* ConstKeyMod.Shift */;\nKeyMod.Alt = 512 /* ConstKeyMod.Alt */;\nKeyMod.WinCtrl = 256 /* ConstKeyMod.WinCtrl */;\nexport function createMonacoBaseAPI() {\n    return {\n        editor: undefined, // undefined override expected here\n        languages: undefined, // undefined override expected here\n        CancellationTokenSource: CancellationTokenSource,\n        Emitter: Emitter,\n        KeyCode: standaloneEnums.KeyCode,\n        KeyMod: KeyMod,\n        Position: Position,\n        Range: Range,\n        Selection: Selection,\n        SelectionDirection: standaloneEnums.SelectionDirection,\n        MarkerSeverity: standaloneEnums.MarkerSeverity,\n        MarkerTag: standaloneEnums.MarkerTag,\n        Uri: URI,\n        Token: Token\n    };\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/services/editorSimpleWorker.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { stringDiff } from '../../../base/common/diff/diff.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { Position } from '../core/position.js';\nimport { Range } from '../core/range.js';\nimport { MirrorTextModel as BaseMirrorModel } from '../model/mirrorTextModel.js';\nimport { ensureValidWordDefinition, getWordAtText } from '../core/wordHelper.js';\nimport { computeLinks } from '../languages/linkComputer.js';\nimport { BasicInplaceReplace } from '../languages/supports/inplaceReplaceSupport.js';\nimport { createMonacoBaseAPI } from './editorBaseApi.js';\nimport { StopWatch } from '../../../base/common/stopwatch.js';\nimport { UnicodeTextModelHighlighter } from './unicodeTextModelHighlighter.js';\nimport { linesDiffComputers } from '../diff/linesDiffComputers.js';\nimport { createProxyObject, getAllMethodNames } from '../../../base/common/objects.js';\nimport { computeDefaultDocumentColors } from '../languages/defaultDocumentColorsComputer.js';\nimport { findSectionHeaders } from './findSectionHeaders.js';\n/**\n * @internal\n */\nclass MirrorModel extends BaseMirrorModel {\n    get uri() {\n        return this._uri;\n    }\n    get eol() {\n        return this._eol;\n    }\n    getValue() {\n        return this.getText();\n    }\n    findMatches(regex) {\n        const matches = [];\n        for (let i = 0; i < this._lines.length; i++) {\n            const line = this._lines[i];\n            const offsetToAdd = this.offsetAt(new Position(i + 1, 1));\n            const iteratorOverMatches = line.matchAll(regex);\n            for (const match of iteratorOverMatches) {\n                if (match.index || match.index === 0) {\n                    match.index = match.index + offsetToAdd;\n                }\n                matches.push(match);\n            }\n        }\n        return matches;\n    }\n    getLinesContent() {\n        return this._lines.slice(0);\n    }\n    getLineCount() {\n        return this._lines.length;\n    }\n    getLineContent(lineNumber) {\n        return this._lines[lineNumber - 1];\n    }\n    getWordAtPosition(position, wordDefinition) {\n        const wordAtText = getWordAtText(position.column, ensureValidWordDefinition(wordDefinition), this._lines[position.lineNumber - 1], 0);\n        if (wordAtText) {\n            return new Range(position.lineNumber, wordAtText.startColumn, position.lineNumber, wordAtText.endColumn);\n        }\n        return null;\n    }\n    words(wordDefinition) {\n        const lines = this._lines;\n        const wordenize = this._wordenize.bind(this);\n        let lineNumber = 0;\n        let lineText = '';\n        let wordRangesIdx = 0;\n        let wordRanges = [];\n        return {\n            *[Symbol.iterator]() {\n                while (true) {\n                    if (wordRangesIdx < wordRanges.length) {\n                        const value = lineText.substring(wordRanges[wordRangesIdx].start, wordRanges[wordRangesIdx].end);\n                        wordRangesIdx += 1;\n                        yield value;\n                    }\n                    else {\n                        if (lineNumber < lines.length) {\n                            lineText = lines[lineNumber];\n                            wordRanges = wordenize(lineText, wordDefinition);\n                            wordRangesIdx = 0;\n                            lineNumber += 1;\n                        }\n                        else {\n                            break;\n                        }\n                    }\n                }\n            }\n        };\n    }\n    getLineWords(lineNumber, wordDefinition) {\n        const content = this._lines[lineNumber - 1];\n        const ranges = this._wordenize(content, wordDefinition);\n        const words = [];\n        for (const range of ranges) {\n            words.push({\n                word: content.substring(range.start, range.end),\n                startColumn: range.start + 1,\n                endColumn: range.end + 1\n            });\n        }\n        return words;\n    }\n    _wordenize(content, wordDefinition) {\n        const result = [];\n        let match;\n        wordDefinition.lastIndex = 0; // reset lastIndex just to be sure\n        while (match = wordDefinition.exec(content)) {\n            if (match[0].length === 0) {\n                // it did match the empty string\n                break;\n            }\n            result.push({ start: match.index, end: match.index + match[0].length });\n        }\n        return result;\n    }\n    getValueInRange(range) {\n        range = this._validateRange(range);\n        if (range.startLineNumber === range.endLineNumber) {\n            return this._lines[range.startLineNumber - 1].substring(range.startColumn - 1, range.endColumn - 1);\n        }\n        const lineEnding = this._eol;\n        const startLineIndex = range.startLineNumber - 1;\n        const endLineIndex = range.endLineNumber - 1;\n        const resultLines = [];\n        resultLines.push(this._lines[startLineIndex].substring(range.startColumn - 1));\n        for (let i = startLineIndex + 1; i < endLineIndex; i++) {\n            resultLines.push(this._lines[i]);\n        }\n        resultLines.push(this._lines[endLineIndex].substring(0, range.endColumn - 1));\n        return resultLines.join(lineEnding);\n    }\n    offsetAt(position) {\n        position = this._validatePosition(position);\n        this._ensureLineStarts();\n        return this._lineStarts.getPrefixSum(position.lineNumber - 2) + (position.column - 1);\n    }\n    positionAt(offset) {\n        offset = Math.floor(offset);\n        offset = Math.max(0, offset);\n        this._ensureLineStarts();\n        const out = this._lineStarts.getIndexOf(offset);\n        const lineLength = this._lines[out.index].length;\n        // Ensure we return a valid position\n        return {\n            lineNumber: 1 + out.index,\n            column: 1 + Math.min(out.remainder, lineLength)\n        };\n    }\n    _validateRange(range) {\n        const start = this._validatePosition({ lineNumber: range.startLineNumber, column: range.startColumn });\n        const end = this._validatePosition({ lineNumber: range.endLineNumber, column: range.endColumn });\n        if (start.lineNumber !== range.startLineNumber\n            || start.column !== range.startColumn\n            || end.lineNumber !== range.endLineNumber\n            || end.column !== range.endColumn) {\n            return {\n                startLineNumber: start.lineNumber,\n                startColumn: start.column,\n                endLineNumber: end.lineNumber,\n                endColumn: end.column\n            };\n        }\n        return range;\n    }\n    _validatePosition(position) {\n        if (!Position.isIPosition(position)) {\n            throw new Error('bad position');\n        }\n        let { lineNumber, column } = position;\n        let hasChanged = false;\n        if (lineNumber < 1) {\n            lineNumber = 1;\n            column = 1;\n            hasChanged = true;\n        }\n        else if (lineNumber > this._lines.length) {\n            lineNumber = this._lines.length;\n            column = this._lines[lineNumber - 1].length + 1;\n            hasChanged = true;\n        }\n        else {\n            const maxCharacter = this._lines[lineNumber - 1].length + 1;\n            if (column < 1) {\n                column = 1;\n                hasChanged = true;\n            }\n            else if (column > maxCharacter) {\n                column = maxCharacter;\n                hasChanged = true;\n            }\n        }\n        if (!hasChanged) {\n            return position;\n        }\n        else {\n            return { lineNumber, column };\n        }\n    }\n}\n/**\n * @internal\n */\nexport class EditorSimpleWorker {\n    constructor(host, foreignModuleFactory) {\n        this._host = host;\n        this._models = Object.create(null);\n        this._foreignModuleFactory = foreignModuleFactory;\n        this._foreignModule = null;\n    }\n    dispose() {\n        this._models = Object.create(null);\n    }\n    _getModel(uri) {\n        return this._models[uri];\n    }\n    _getModels() {\n        const all = [];\n        Object.keys(this._models).forEach((key) => all.push(this._models[key]));\n        return all;\n    }\n    acceptNewModel(data) {\n        this._models[data.url] = new MirrorModel(URI.parse(data.url), data.lines, data.EOL, data.versionId);\n    }\n    acceptModelChanged(strURL, e) {\n        if (!this._models[strURL]) {\n            return;\n        }\n        const model = this._models[strURL];\n        model.onEvents(e);\n    }\n    acceptRemovedModel(strURL) {\n        if (!this._models[strURL]) {\n            return;\n        }\n        delete this._models[strURL];\n    }\n    async computeUnicodeHighlights(url, options, range) {\n        const model = this._getModel(url);\n        if (!model) {\n            return { ranges: [], hasMore: false, ambiguousCharacterCount: 0, invisibleCharacterCount: 0, nonBasicAsciiCharacterCount: 0 };\n        }\n        return UnicodeTextModelHighlighter.computeUnicodeHighlights(model, options, range);\n    }\n    async findSectionHeaders(url, options) {\n        const model = this._getModel(url);\n        if (!model) {\n            return [];\n        }\n        return findSectionHeaders(model, options);\n    }\n    // ---- BEGIN diff --------------------------------------------------------------------------\n    async computeDiff(originalUrl, modifiedUrl, options, algorithm) {\n        const original = this._getModel(originalUrl);\n        const modified = this._getModel(modifiedUrl);\n        if (!original || !modified) {\n            return null;\n        }\n        const result = EditorSimpleWorker.computeDiff(original, modified, options, algorithm);\n        return result;\n    }\n    static computeDiff(originalTextModel, modifiedTextModel, options, algorithm) {\n        const diffAlgorithm = algorithm === 'advanced' ? linesDiffComputers.getDefault() : linesDiffComputers.getLegacy();\n        const originalLines = originalTextModel.getLinesContent();\n        const modifiedLines = modifiedTextModel.getLinesContent();\n        const result = diffAlgorithm.computeDiff(originalLines, modifiedLines, options);\n        const identical = (result.changes.length > 0 ? false : this._modelsAreIdentical(originalTextModel, modifiedTextModel));\n        function getLineChanges(changes) {\n            return changes.map(m => {\n                var _a;\n                return ([m.original.startLineNumber, m.original.endLineNumberExclusive, m.modified.startLineNumber, m.modified.endLineNumberExclusive, (_a = m.innerChanges) === null || _a === void 0 ? void 0 : _a.map(m => [\n                        m.originalRange.startLineNumber,\n                        m.originalRange.startColumn,\n                        m.originalRange.endLineNumber,\n                        m.originalRange.endColumn,\n                        m.modifiedRange.startLineNumber,\n                        m.modifiedRange.startColumn,\n                        m.modifiedRange.endLineNumber,\n                        m.modifiedRange.endColumn,\n                    ])]);\n            });\n        }\n        return {\n            identical,\n            quitEarly: result.hitTimeout,\n            changes: getLineChanges(result.changes),\n            moves: result.moves.map(m => ([\n                m.lineRangeMapping.original.startLineNumber,\n                m.lineRangeMapping.original.endLineNumberExclusive,\n                m.lineRangeMapping.modified.startLineNumber,\n                m.lineRangeMapping.modified.endLineNumberExclusive,\n                getLineChanges(m.changes)\n            ])),\n        };\n    }\n    static _modelsAreIdentical(original, modified) {\n        const originalLineCount = original.getLineCount();\n        const modifiedLineCount = modified.getLineCount();\n        if (originalLineCount !== modifiedLineCount) {\n            return false;\n        }\n        for (let line = 1; line <= originalLineCount; line++) {\n            const originalLine = original.getLineContent(line);\n            const modifiedLine = modified.getLineContent(line);\n            if (originalLine !== modifiedLine) {\n                return false;\n            }\n        }\n        return true;\n    }\n    async computeMoreMinimalEdits(modelUrl, edits, pretty) {\n        const model = this._getModel(modelUrl);\n        if (!model) {\n            return edits;\n        }\n        const result = [];\n        let lastEol = undefined;\n        edits = edits.slice(0).sort((a, b) => {\n            if (a.range && b.range) {\n                return Range.compareRangesUsingStarts(a.range, b.range);\n            }\n            // eol only changes should go to the end\n            const aRng = a.range ? 0 : 1;\n            const bRng = b.range ? 0 : 1;\n            return aRng - bRng;\n        });\n        // merge adjacent edits\n        let writeIndex = 0;\n        for (let readIndex = 1; readIndex < edits.length; readIndex++) {\n            if (Range.getEndPosition(edits[writeIndex].range).equals(Range.getStartPosition(edits[readIndex].range))) {\n                edits[writeIndex].range = Range.fromPositions(Range.getStartPosition(edits[writeIndex].range), Range.getEndPosition(edits[readIndex].range));\n                edits[writeIndex].text += edits[readIndex].text;\n            }\n            else {\n                writeIndex++;\n                edits[writeIndex] = edits[readIndex];\n            }\n        }\n        edits.length = writeIndex + 1;\n        for (let { range, text, eol } of edits) {\n            if (typeof eol === 'number') {\n                lastEol = eol;\n            }\n            if (Range.isEmpty(range) && !text) {\n                // empty change\n                continue;\n            }\n            const original = model.getValueInRange(range);\n            text = text.replace(/\\r\\n|\\n|\\r/g, model.eol);\n            if (original === text) {\n                // noop\n                continue;\n            }\n            // make sure diff won't take too long\n            if (Math.max(text.length, original.length) > EditorSimpleWorker._diffLimit) {\n                result.push({ range, text });\n                continue;\n            }\n            // compute diff between original and edit.text\n            const changes = stringDiff(original, text, pretty);\n            const editOffset = model.offsetAt(Range.lift(range).getStartPosition());\n            for (const change of changes) {\n                const start = model.positionAt(editOffset + change.originalStart);\n                const end = model.positionAt(editOffset + change.originalStart + change.originalLength);\n                const newEdit = {\n                    text: text.substr(change.modifiedStart, change.modifiedLength),\n                    range: { startLineNumber: start.lineNumber, startColumn: start.column, endLineNumber: end.lineNumber, endColumn: end.column }\n                };\n                if (model.getValueInRange(newEdit.range) !== newEdit.text) {\n                    result.push(newEdit);\n                }\n            }\n        }\n        if (typeof lastEol === 'number') {\n            result.push({ eol: lastEol, text: '', range: { startLineNumber: 0, startColumn: 0, endLineNumber: 0, endColumn: 0 } });\n        }\n        return result;\n    }\n    // ---- END minimal edits ---------------------------------------------------------------\n    async computeLinks(modelUrl) {\n        const model = this._getModel(modelUrl);\n        if (!model) {\n            return null;\n        }\n        return computeLinks(model);\n    }\n    // --- BEGIN default document colors -----------------------------------------------------------\n    async computeDefaultDocumentColors(modelUrl) {\n        const model = this._getModel(modelUrl);\n        if (!model) {\n            return null;\n        }\n        return computeDefaultDocumentColors(model);\n    }\n    async textualSuggest(modelUrls, leadingWord, wordDef, wordDefFlags) {\n        const sw = new StopWatch();\n        const wordDefRegExp = new RegExp(wordDef, wordDefFlags);\n        const seen = new Set();\n        outer: for (const url of modelUrls) {\n            const model = this._getModel(url);\n            if (!model) {\n                continue;\n            }\n            for (const word of model.words(wordDefRegExp)) {\n                if (word === leadingWord || !isNaN(Number(word))) {\n                    continue;\n                }\n                seen.add(word);\n                if (seen.size > EditorSimpleWorker._suggestionsLimit) {\n                    break outer;\n                }\n            }\n        }\n        return { words: Array.from(seen), duration: sw.elapsed() };\n    }\n    // ---- END suggest --------------------------------------------------------------------------\n    //#region -- word ranges --\n    async computeWordRanges(modelUrl, range, wordDef, wordDefFlags) {\n        const model = this._getModel(modelUrl);\n        if (!model) {\n            return Object.create(null);\n        }\n        const wordDefRegExp = new RegExp(wordDef, wordDefFlags);\n        const result = Object.create(null);\n        for (let line = range.startLineNumber; line < range.endLineNumber; line++) {\n            const words = model.getLineWords(line, wordDefRegExp);\n            for (const word of words) {\n                if (!isNaN(Number(word.word))) {\n                    continue;\n                }\n                let array = result[word.word];\n                if (!array) {\n                    array = [];\n                    result[word.word] = array;\n                }\n                array.push({\n                    startLineNumber: line,\n                    startColumn: word.startColumn,\n                    endLineNumber: line,\n                    endColumn: word.endColumn\n                });\n            }\n        }\n        return result;\n    }\n    //#endregion\n    async navigateValueSet(modelUrl, range, up, wordDef, wordDefFlags) {\n        const model = this._getModel(modelUrl);\n        if (!model) {\n            return null;\n        }\n        const wordDefRegExp = new RegExp(wordDef, wordDefFlags);\n        if (range.startColumn === range.endColumn) {\n            range = {\n                startLineNumber: range.startLineNumber,\n                startColumn: range.startColumn,\n                endLineNumber: range.endLineNumber,\n                endColumn: range.endColumn + 1\n            };\n        }\n        const selectionText = model.getValueInRange(range);\n        const wordRange = model.getWordAtPosition({ lineNumber: range.startLineNumber, column: range.startColumn }, wordDefRegExp);\n        if (!wordRange) {\n            return null;\n        }\n        const word = model.getValueInRange(wordRange);\n        const result = BasicInplaceReplace.INSTANCE.navigateValueSet(range, selectionText, wordRange, word, up);\n        return result;\n    }\n    // ---- BEGIN foreign module support --------------------------------------------------------------------------\n    loadForeignModule(moduleId, createData, foreignHostMethods) {\n        const proxyMethodRequest = (method, args) => {\n            return this._host.fhr(method, args);\n        };\n        const foreignHost = createProxyObject(foreignHostMethods, proxyMethodRequest);\n        const ctx = {\n            host: foreignHost,\n            getMirrorModels: () => {\n                return this._getModels();\n            }\n        };\n        if (this._foreignModuleFactory) {\n            this._foreignModule = this._foreignModuleFactory(ctx, createData);\n            // static foreing module\n            return Promise.resolve(getAllMethodNames(this._foreignModule));\n        }\n        // ESM-comment-begin\n        // \t\treturn new Promise<any>((resolve, reject) => {\n        // \t\t\trequire([moduleId], (foreignModule: { create: IForeignModuleFactory }) => {\n        // \t\t\t\tthis._foreignModule = foreignModule.create(ctx, createData);\n        // \n        // \t\t\t\tresolve(getAllMethodNames(this._foreignModule));\n        // \n        // \t\t\t}, reject);\n        // \t\t});\n        // ESM-comment-end\n        // ESM-uncomment-begin\n        return Promise.reject(new Error(`Unexpected usage`));\n        // ESM-uncomment-end\n    }\n    // foreign method request\n    fmr(method, args) {\n        if (!this._foreignModule || typeof this._foreignModule[method] !== 'function') {\n            return Promise.reject(new Error('Missing requestHandler or method: ' + method));\n        }\n        try {\n            return Promise.resolve(this._foreignModule[method].apply(this._foreignModule, args));\n        }\n        catch (e) {\n            return Promise.reject(e);\n        }\n    }\n}\n// ---- END diff --------------------------------------------------------------------------\n// ---- BEGIN minimal edits ---------------------------------------------------------------\nEditorSimpleWorker._diffLimit = 100000;\n// ---- BEGIN suggest --------------------------------------------------------------------------\nEditorSimpleWorker._suggestionsLimit = 10000;\n/**\n * Called on the worker side\n * @internal\n */\nexport function create(host) {\n    return new EditorSimpleWorker(host, null);\n}\nif (typeof importScripts === 'function') {\n    // Running in a web worker\n    globalThis.monaco = createMonacoBaseAPI();\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/services/editorWorker.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nexport const IEditorWorkerService = createDecorator('editorWorkerService');\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/services/editorWorkerHost.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport {};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/services/findSectionHeaders.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nconst markRegex = new RegExp('\\\\bMARK:\\\\s*(.*)$', 'd');\nconst trimDashesRegex = /^-+|-+$/g;\n/**\n * Find section headers in the model.\n *\n * @param model the text model to search in\n * @param options options to search with\n * @returns an array of section headers\n */\nexport function findSectionHeaders(model, options) {\n    var _a;\n    let headers = [];\n    if (options.findRegionSectionHeaders && ((_a = options.foldingRules) === null || _a === void 0 ? void 0 : _a.markers)) {\n        const regionHeaders = collectRegionHeaders(model, options);\n        headers = headers.concat(regionHeaders);\n    }\n    if (options.findMarkSectionHeaders) {\n        const markHeaders = collectMarkHeaders(model);\n        headers = headers.concat(markHeaders);\n    }\n    return headers;\n}\nfunction collectRegionHeaders(model, options) {\n    const regionHeaders = [];\n    const endLineNumber = model.getLineCount();\n    for (let lineNumber = 1; lineNumber <= endLineNumber; lineNumber++) {\n        const lineContent = model.getLineContent(lineNumber);\n        const match = lineContent.match(options.foldingRules.markers.start);\n        if (match) {\n            const range = { startLineNumber: lineNumber, startColumn: match[0].length + 1, endLineNumber: lineNumber, endColumn: lineContent.length + 1 };\n            if (range.endColumn > range.startColumn) {\n                const sectionHeader = {\n                    range,\n                    ...getHeaderText(lineContent.substring(match[0].length)),\n                    shouldBeInComments: false\n                };\n                if (sectionHeader.text || sectionHeader.hasSeparatorLine) {\n                    regionHeaders.push(sectionHeader);\n                }\n            }\n        }\n    }\n    return regionHeaders;\n}\nfunction collectMarkHeaders(model) {\n    const markHeaders = [];\n    const endLineNumber = model.getLineCount();\n    for (let lineNumber = 1; lineNumber <= endLineNumber; lineNumber++) {\n        const lineContent = model.getLineContent(lineNumber);\n        addMarkHeaderIfFound(lineContent, lineNumber, markHeaders);\n    }\n    return markHeaders;\n}\nfunction addMarkHeaderIfFound(lineContent, lineNumber, sectionHeaders) {\n    markRegex.lastIndex = 0;\n    const match = markRegex.exec(lineContent);\n    if (match) {\n        const column = match.indices[1][0] + 1;\n        const endColumn = match.indices[1][1] + 1;\n        const range = { startLineNumber: lineNumber, startColumn: column, endLineNumber: lineNumber, endColumn: endColumn };\n        if (range.endColumn > range.startColumn) {\n            const sectionHeader = {\n                range,\n                ...getHeaderText(match[1]),\n                shouldBeInComments: true\n            };\n            if (sectionHeader.text || sectionHeader.hasSeparatorLine) {\n                sectionHeaders.push(sectionHeader);\n            }\n        }\n    }\n}\nfunction getHeaderText(text) {\n    text = text.trim();\n    const hasSeparatorLine = text.startsWith('-');\n    text = text.replace(trimDashesRegex, '');\n    return { text, hasSeparatorLine };\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/services/getIconClasses.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Schemas } from '../../../base/common/network.js';\nimport { DataUri } from '../../../base/common/resources.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { PLAINTEXT_LANGUAGE_ID } from '../languages/modesRegistry.js';\nimport { FileKind } from '../../../platform/files/common/files.js';\nimport { ThemeIcon } from '../../../base/common/themables.js';\nconst fileIconDirectoryRegex = /(?:\\/|^)(?:([^\\/]+)\\/)?([^\\/]+)$/;\nexport function getIconClasses(modelService, languageService, resource, fileKind, icon) {\n    if (ThemeIcon.isThemeIcon(icon)) {\n        return [`codicon-${icon.id}`, 'predefined-file-icon'];\n    }\n    if (URI.isUri(icon)) {\n        return [];\n    }\n    // we always set these base classes even if we do not have a path\n    const classes = fileKind === FileKind.ROOT_FOLDER ? ['rootfolder-icon'] : fileKind === FileKind.FOLDER ? ['folder-icon'] : ['file-icon'];\n    if (resource) {\n        // Get the path and name of the resource. For data-URIs, we need to parse specially\n        let name;\n        if (resource.scheme === Schemas.data) {\n            const metadata = DataUri.parseMetaData(resource);\n            name = metadata.get(DataUri.META_DATA_LABEL);\n        }\n        else {\n            const match = resource.path.match(fileIconDirectoryRegex);\n            if (match) {\n                name = cssEscape(match[2].toLowerCase());\n                if (match[1]) {\n                    classes.push(`${cssEscape(match[1].toLowerCase())}-name-dir-icon`); // parent directory\n                }\n            }\n            else {\n                name = cssEscape(resource.authority.toLowerCase());\n            }\n        }\n        // Root Folders\n        if (fileKind === FileKind.ROOT_FOLDER) {\n            classes.push(`${name}-root-name-folder-icon`);\n        }\n        // Folders\n        else if (fileKind === FileKind.FOLDER) {\n            classes.push(`${name}-name-folder-icon`);\n        }\n        // Files\n        else {\n            // Name & Extension(s)\n            if (name) {\n                classes.push(`${name}-name-file-icon`);\n                classes.push(`name-file-icon`); // extra segment to increase file-name score\n                // Avoid doing an explosive combination of extensions for very long filenames\n                // (most file systems do not allow files > 255 length) with lots of `.` characters\n                // https://github.com/microsoft/vscode/issues/116199\n                if (name.length <= 255) {\n                    const dotSegments = name.split('.');\n                    for (let i = 1; i < dotSegments.length; i++) {\n                        classes.push(`${dotSegments.slice(i).join('.')}-ext-file-icon`); // add each combination of all found extensions if more than one\n                    }\n                }\n                classes.push(`ext-file-icon`); // extra segment to increase file-ext score\n            }\n            // Detected Mode\n            const detectedLanguageId = detectLanguageId(modelService, languageService, resource);\n            if (detectedLanguageId) {\n                classes.push(`${cssEscape(detectedLanguageId)}-lang-file-icon`);\n            }\n        }\n    }\n    return classes;\n}\nfunction detectLanguageId(modelService, languageService, resource) {\n    if (!resource) {\n        return null; // we need a resource at least\n    }\n    let languageId = null;\n    // Data URI: check for encoded metadata\n    if (resource.scheme === Schemas.data) {\n        const metadata = DataUri.parseMetaData(resource);\n        const mime = metadata.get(DataUri.META_DATA_MIME);\n        if (mime) {\n            languageId = languageService.getLanguageIdByMimeType(mime);\n        }\n    }\n    // Any other URI: check for model if existing\n    else {\n        const model = modelService.getModel(resource);\n        if (model) {\n            languageId = model.getLanguageId();\n        }\n    }\n    // only take if the language id is specific (aka no just plain text)\n    if (languageId && languageId !== PLAINTEXT_LANGUAGE_ID) {\n        return languageId;\n    }\n    // otherwise fallback to path based detection\n    return languageService.guessLanguageIdByFilepathOrFirstLine(resource);\n}\nfunction cssEscape(str) {\n    return str.replace(/[\\11\\12\\14\\15\\40]/g, '/'); // HTML class names can not contain certain whitespace characters, use / instead, which doesn't exist in file names.\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/services/languageFeatureDebounce.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { doHash } from '../../../base/common/hash.js';\nimport { LRUCache } from '../../../base/common/map.js';\nimport { clamp, MovingAverage, SlidingWindowAverage } from '../../../base/common/numbers.js';\nimport { IEnvironmentService } from '../../../platform/environment/common/environment.js';\nimport { registerSingleton } from '../../../platform/instantiation/common/extensions.js';\nimport { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nimport { ILogService } from '../../../platform/log/common/log.js';\nimport { matchesScheme } from '../../../base/common/network.js';\nexport const ILanguageFeatureDebounceService = createDecorator('ILanguageFeatureDebounceService');\nvar IdentityHash;\n(function (IdentityHash) {\n    const _hashes = new WeakMap();\n    let pool = 0;\n    function of(obj) {\n        let value = _hashes.get(obj);\n        if (value === undefined) {\n            value = ++pool;\n            _hashes.set(obj, value);\n        }\n        return value;\n    }\n    IdentityHash.of = of;\n})(IdentityHash || (IdentityHash = {}));\nclass NullDebounceInformation {\n    constructor(_default) {\n        this._default = _default;\n    }\n    get(_model) {\n        return this._default;\n    }\n    update(_model, _value) {\n        return this._default;\n    }\n    default() {\n        return this._default;\n    }\n}\nclass FeatureDebounceInformation {\n    constructor(_logService, _name, _registry, _default, _min, _max) {\n        this._logService = _logService;\n        this._name = _name;\n        this._registry = _registry;\n        this._default = _default;\n        this._min = _min;\n        this._max = _max;\n        this._cache = new LRUCache(50, 0.7);\n    }\n    _key(model) {\n        return model.id + this._registry.all(model).reduce((hashVal, obj) => doHash(IdentityHash.of(obj), hashVal), 0);\n    }\n    get(model) {\n        const key = this._key(model);\n        const avg = this._cache.get(key);\n        return avg\n            ? clamp(avg.value, this._min, this._max)\n            : this.default();\n    }\n    update(model, value) {\n        const key = this._key(model);\n        let avg = this._cache.get(key);\n        if (!avg) {\n            avg = new SlidingWindowAverage(6);\n            this._cache.set(key, avg);\n        }\n        const newValue = clamp(avg.update(value), this._min, this._max);\n        if (!matchesScheme(model.uri, 'output')) {\n            this._logService.trace(`[DEBOUNCE: ${this._name}] for ${model.uri.toString()} is ${newValue}ms`);\n        }\n        return newValue;\n    }\n    _overall() {\n        const result = new MovingAverage();\n        for (const [, avg] of this._cache) {\n            result.update(avg.value);\n        }\n        return result.value;\n    }\n    default() {\n        const value = (this._overall() | 0) || this._default;\n        return clamp(value, this._min, this._max);\n    }\n}\nlet LanguageFeatureDebounceService = class LanguageFeatureDebounceService {\n    constructor(_logService, envService) {\n        this._logService = _logService;\n        this._data = new Map();\n        this._isDev = envService.isExtensionDevelopment || !envService.isBuilt;\n    }\n    for(feature, name, config) {\n        var _a, _b, _c;\n        const min = (_a = config === null || config === void 0 ? void 0 : config.min) !== null && _a !== void 0 ? _a : 50;\n        const max = (_b = config === null || config === void 0 ? void 0 : config.max) !== null && _b !== void 0 ? _b : min ** 2;\n        const extra = (_c = config === null || config === void 0 ? void 0 : config.key) !== null && _c !== void 0 ? _c : undefined;\n        const key = `${IdentityHash.of(feature)},${min}${extra ? ',' + extra : ''}`;\n        let info = this._data.get(key);\n        if (!info) {\n            if (this._isDev) {\n                this._logService.debug(`[DEBOUNCE: ${name}] is disabled in developed mode`);\n                info = new NullDebounceInformation(min * 1.5);\n            }\n            else {\n                info = new FeatureDebounceInformation(this._logService, name, feature, (this._overallAverage() | 0) || (min * 1.5), // default is overall default or derived from min-value\n                min, max);\n            }\n            this._data.set(key, info);\n        }\n        return info;\n    }\n    _overallAverage() {\n        // Average of all language features. Not a great value but an approximation\n        const result = new MovingAverage();\n        for (const info of this._data.values()) {\n            result.update(info.default());\n        }\n        return result.value;\n    }\n};\nLanguageFeatureDebounceService = __decorate([\n    __param(0, ILogService),\n    __param(1, IEnvironmentService)\n], LanguageFeatureDebounceService);\nexport { LanguageFeatureDebounceService };\nregisterSingleton(ILanguageFeatureDebounceService, LanguageFeatureDebounceService, 1 /* InstantiationType.Delayed */);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/services/languageFeatures.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nexport const ILanguageFeaturesService = createDecorator('ILanguageFeaturesService');\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/services/languageFeaturesService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { LanguageFeatureRegistry } from '../languageFeatureRegistry.js';\nimport { ILanguageFeaturesService } from './languageFeatures.js';\nimport { registerSingleton } from '../../../platform/instantiation/common/extensions.js';\nexport class LanguageFeaturesService {\n    constructor() {\n        this.referenceProvider = new LanguageFeatureRegistry(this._score.bind(this));\n        this.renameProvider = new LanguageFeatureRegistry(this._score.bind(this));\n        this.newSymbolNamesProvider = new LanguageFeatureRegistry(this._score.bind(this));\n        this.codeActionProvider = new LanguageFeatureRegistry(this._score.bind(this));\n        this.definitionProvider = new LanguageFeatureRegistry(this._score.bind(this));\n        this.typeDefinitionProvider = new LanguageFeatureRegistry(this._score.bind(this));\n        this.declarationProvider = new LanguageFeatureRegistry(this._score.bind(this));\n        this.implementationProvider = new LanguageFeatureRegistry(this._score.bind(this));\n        this.documentSymbolProvider = new LanguageFeatureRegistry(this._score.bind(this));\n        this.inlayHintsProvider = new LanguageFeatureRegistry(this._score.bind(this));\n        this.colorProvider = new LanguageFeatureRegistry(this._score.bind(this));\n        this.codeLensProvider = new LanguageFeatureRegistry(this._score.bind(this));\n        this.documentFormattingEditProvider = new LanguageFeatureRegistry(this._score.bind(this));\n        this.documentRangeFormattingEditProvider = new LanguageFeatureRegistry(this._score.bind(this));\n        this.onTypeFormattingEditProvider = new LanguageFeatureRegistry(this._score.bind(this));\n        this.signatureHelpProvider = new LanguageFeatureRegistry(this._score.bind(this));\n        this.hoverProvider = new LanguageFeatureRegistry(this._score.bind(this));\n        this.documentHighlightProvider = new LanguageFeatureRegistry(this._score.bind(this));\n        this.multiDocumentHighlightProvider = new LanguageFeatureRegistry(this._score.bind(this));\n        this.selectionRangeProvider = new LanguageFeatureRegistry(this._score.bind(this));\n        this.foldingRangeProvider = new LanguageFeatureRegistry(this._score.bind(this));\n        this.linkProvider = new LanguageFeatureRegistry(this._score.bind(this));\n        this.inlineCompletionsProvider = new LanguageFeatureRegistry(this._score.bind(this));\n        this.inlineEditProvider = new LanguageFeatureRegistry(this._score.bind(this));\n        this.completionProvider = new LanguageFeatureRegistry(this._score.bind(this));\n        this.linkedEditingRangeProvider = new LanguageFeatureRegistry(this._score.bind(this));\n        this.documentRangeSemanticTokensProvider = new LanguageFeatureRegistry(this._score.bind(this));\n        this.documentSemanticTokensProvider = new LanguageFeatureRegistry(this._score.bind(this));\n        this.documentDropEditProvider = new LanguageFeatureRegistry(this._score.bind(this));\n        this.documentPasteEditProvider = new LanguageFeatureRegistry(this._score.bind(this));\n    }\n    _score(uri) {\n        var _a;\n        return (_a = this._notebookTypeResolver) === null || _a === void 0 ? void 0 : _a.call(this, uri);\n    }\n}\nregisterSingleton(ILanguageFeaturesService, LanguageFeaturesService, 1 /* InstantiationType.Delayed */);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/services/languageService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../../base/common/event.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { LanguagesRegistry } from './languagesRegistry.js';\nimport { firstOrDefault } from '../../../base/common/arrays.js';\nimport { TokenizationRegistry } from '../languages.js';\nimport { PLAINTEXT_LANGUAGE_ID } from '../languages/modesRegistry.js';\nexport class LanguageService extends Disposable {\n    constructor(warnOnOverwrite = false) {\n        super();\n        this._onDidRequestBasicLanguageFeatures = this._register(new Emitter());\n        this.onDidRequestBasicLanguageFeatures = this._onDidRequestBasicLanguageFeatures.event;\n        this._onDidRequestRichLanguageFeatures = this._register(new Emitter());\n        this.onDidRequestRichLanguageFeatures = this._onDidRequestRichLanguageFeatures.event;\n        this._onDidChange = this._register(new Emitter({ leakWarningThreshold: 200 /* https://github.com/microsoft/vscode/issues/119968 */ }));\n        this.onDidChange = this._onDidChange.event;\n        this._requestedBasicLanguages = new Set();\n        this._requestedRichLanguages = new Set();\n        LanguageService.instanceCount++;\n        this._registry = this._register(new LanguagesRegistry(true, warnOnOverwrite));\n        this.languageIdCodec = this._registry.languageIdCodec;\n        this._register(this._registry.onDidChange(() => this._onDidChange.fire()));\n    }\n    dispose() {\n        LanguageService.instanceCount--;\n        super.dispose();\n    }\n    isRegisteredLanguageId(languageId) {\n        return this._registry.isRegisteredLanguageId(languageId);\n    }\n    getLanguageIdByLanguageName(languageName) {\n        return this._registry.getLanguageIdByLanguageName(languageName);\n    }\n    getLanguageIdByMimeType(mimeType) {\n        return this._registry.getLanguageIdByMimeType(mimeType);\n    }\n    guessLanguageIdByFilepathOrFirstLine(resource, firstLine) {\n        const languageIds = this._registry.guessLanguageIdByFilepathOrFirstLine(resource, firstLine);\n        return firstOrDefault(languageIds, null);\n    }\n    createById(languageId) {\n        return new LanguageSelection(this.onDidChange, () => {\n            return this._createAndGetLanguageIdentifier(languageId);\n        });\n    }\n    createByFilepathOrFirstLine(resource, firstLine) {\n        return new LanguageSelection(this.onDidChange, () => {\n            const languageId = this.guessLanguageIdByFilepathOrFirstLine(resource, firstLine);\n            return this._createAndGetLanguageIdentifier(languageId);\n        });\n    }\n    _createAndGetLanguageIdentifier(languageId) {\n        if (!languageId || !this.isRegisteredLanguageId(languageId)) {\n            // Fall back to plain text if language is unknown\n            languageId = PLAINTEXT_LANGUAGE_ID;\n        }\n        return languageId;\n    }\n    requestBasicLanguageFeatures(languageId) {\n        if (!this._requestedBasicLanguages.has(languageId)) {\n            this._requestedBasicLanguages.add(languageId);\n            this._onDidRequestBasicLanguageFeatures.fire(languageId);\n        }\n    }\n    requestRichLanguageFeatures(languageId) {\n        if (!this._requestedRichLanguages.has(languageId)) {\n            this._requestedRichLanguages.add(languageId);\n            // Ensure basic features are requested\n            this.requestBasicLanguageFeatures(languageId);\n            // Ensure tokenizers are created\n            TokenizationRegistry.getOrCreate(languageId);\n            this._onDidRequestRichLanguageFeatures.fire(languageId);\n        }\n    }\n}\nLanguageService.instanceCount = 0;\nclass LanguageSelection {\n    constructor(_onDidChangeLanguages, _selector) {\n        this._onDidChangeLanguages = _onDidChangeLanguages;\n        this._selector = _selector;\n        this._listener = null;\n        this._emitter = null;\n        this.languageId = this._selector();\n    }\n    _dispose() {\n        if (this._listener) {\n            this._listener.dispose();\n            this._listener = null;\n        }\n        if (this._emitter) {\n            this._emitter.dispose();\n            this._emitter = null;\n        }\n    }\n    get onDidChange() {\n        if (!this._listener) {\n            this._listener = this._onDidChangeLanguages(() => this._evaluate());\n        }\n        if (!this._emitter) {\n            this._emitter = new Emitter({\n                onDidRemoveLastListener: () => {\n                    this._dispose();\n                }\n            });\n        }\n        return this._emitter.event;\n    }\n    _evaluate() {\n        var _a;\n        const languageId = this._selector();\n        if (languageId === this.languageId) {\n            // no change\n            return;\n        }\n        this.languageId = languageId;\n        (_a = this._emitter) === null || _a === void 0 ? void 0 : _a.fire(this.languageId);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/services/languagesAssociations.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { parse } from '../../../base/common/glob.js';\nimport { Mimes } from '../../../base/common/mime.js';\nimport { Schemas } from '../../../base/common/network.js';\nimport { basename, posix } from '../../../base/common/path.js';\nimport { DataUri } from '../../../base/common/resources.js';\nimport { startsWithUTF8BOM } from '../../../base/common/strings.js';\nimport { PLAINTEXT_LANGUAGE_ID } from '../languages/modesRegistry.js';\nlet registeredAssociations = [];\nlet nonUserRegisteredAssociations = [];\nlet userRegisteredAssociations = [];\n/**\n * Associate a language to the registry (platform).\n * * **NOTE**: This association will lose over associations registered using `registerConfiguredLanguageAssociation`.\n * * **NOTE**: Use `clearPlatformLanguageAssociations` to remove all associations registered using this function.\n */\nexport function registerPlatformLanguageAssociation(association, warnOnOverwrite = false) {\n    _registerLanguageAssociation(association, false, warnOnOverwrite);\n}\nfunction _registerLanguageAssociation(association, userConfigured, warnOnOverwrite) {\n    // Register\n    const associationItem = toLanguageAssociationItem(association, userConfigured);\n    registeredAssociations.push(associationItem);\n    if (!associationItem.userConfigured) {\n        nonUserRegisteredAssociations.push(associationItem);\n    }\n    else {\n        userRegisteredAssociations.push(associationItem);\n    }\n    // Check for conflicts unless this is a user configured association\n    if (warnOnOverwrite && !associationItem.userConfigured) {\n        registeredAssociations.forEach(a => {\n            if (a.mime === associationItem.mime || a.userConfigured) {\n                return; // same mime or userConfigured is ok\n            }\n            if (associationItem.extension && a.extension === associationItem.extension) {\n                console.warn(`Overwriting extension <<${associationItem.extension}>> to now point to mime <<${associationItem.mime}>>`);\n            }\n            if (associationItem.filename && a.filename === associationItem.filename) {\n                console.warn(`Overwriting filename <<${associationItem.filename}>> to now point to mime <<${associationItem.mime}>>`);\n            }\n            if (associationItem.filepattern && a.filepattern === associationItem.filepattern) {\n                console.warn(`Overwriting filepattern <<${associationItem.filepattern}>> to now point to mime <<${associationItem.mime}>>`);\n            }\n            if (associationItem.firstline && a.firstline === associationItem.firstline) {\n                console.warn(`Overwriting firstline <<${associationItem.firstline}>> to now point to mime <<${associationItem.mime}>>`);\n            }\n        });\n    }\n}\nfunction toLanguageAssociationItem(association, userConfigured) {\n    return {\n        id: association.id,\n        mime: association.mime,\n        filename: association.filename,\n        extension: association.extension,\n        filepattern: association.filepattern,\n        firstline: association.firstline,\n        userConfigured: userConfigured,\n        filenameLowercase: association.filename ? association.filename.toLowerCase() : undefined,\n        extensionLowercase: association.extension ? association.extension.toLowerCase() : undefined,\n        filepatternLowercase: association.filepattern ? parse(association.filepattern.toLowerCase()) : undefined,\n        filepatternOnPath: association.filepattern ? association.filepattern.indexOf(posix.sep) >= 0 : false\n    };\n}\n/**\n * Clear language associations from the registry (platform).\n */\nexport function clearPlatformLanguageAssociations() {\n    registeredAssociations = registeredAssociations.filter(a => a.userConfigured);\n    nonUserRegisteredAssociations = [];\n}\n/**\n * @see `getMimeTypes`\n */\nexport function getLanguageIds(resource, firstLine) {\n    return getAssociations(resource, firstLine).map(item => item.id);\n}\nfunction getAssociations(resource, firstLine) {\n    let path;\n    if (resource) {\n        switch (resource.scheme) {\n            case Schemas.file:\n                path = resource.fsPath;\n                break;\n            case Schemas.data: {\n                const metadata = DataUri.parseMetaData(resource);\n                path = metadata.get(DataUri.META_DATA_LABEL);\n                break;\n            }\n            case Schemas.vscodeNotebookCell:\n                // File path not relevant for language detection of cell\n                path = undefined;\n                break;\n            default:\n                path = resource.path;\n        }\n    }\n    if (!path) {\n        return [{ id: 'unknown', mime: Mimes.unknown }];\n    }\n    path = path.toLowerCase();\n    const filename = basename(path);\n    // 1.) User configured mappings have highest priority\n    const configuredLanguage = getAssociationByPath(path, filename, userRegisteredAssociations);\n    if (configuredLanguage) {\n        return [configuredLanguage, { id: PLAINTEXT_LANGUAGE_ID, mime: Mimes.text }];\n    }\n    // 2.) Registered mappings have middle priority\n    const registeredLanguage = getAssociationByPath(path, filename, nonUserRegisteredAssociations);\n    if (registeredLanguage) {\n        return [registeredLanguage, { id: PLAINTEXT_LANGUAGE_ID, mime: Mimes.text }];\n    }\n    // 3.) Firstline has lowest priority\n    if (firstLine) {\n        const firstlineLanguage = getAssociationByFirstline(firstLine);\n        if (firstlineLanguage) {\n            return [firstlineLanguage, { id: PLAINTEXT_LANGUAGE_ID, mime: Mimes.text }];\n        }\n    }\n    return [{ id: 'unknown', mime: Mimes.unknown }];\n}\nfunction getAssociationByPath(path, filename, associations) {\n    var _a;\n    let filenameMatch = undefined;\n    let patternMatch = undefined;\n    let extensionMatch = undefined;\n    // We want to prioritize associations based on the order they are registered so that the last registered\n    // association wins over all other. This is for https://github.com/microsoft/vscode/issues/20074\n    for (let i = associations.length - 1; i >= 0; i--) {\n        const association = associations[i];\n        // First exact name match\n        if (filename === association.filenameLowercase) {\n            filenameMatch = association;\n            break; // take it!\n        }\n        // Longest pattern match\n        if (association.filepattern) {\n            if (!patternMatch || association.filepattern.length > patternMatch.filepattern.length) {\n                const target = association.filepatternOnPath ? path : filename; // match on full path if pattern contains path separator\n                if ((_a = association.filepatternLowercase) === null || _a === void 0 ? void 0 : _a.call(association, target)) {\n                    patternMatch = association;\n                }\n            }\n        }\n        // Longest extension match\n        if (association.extension) {\n            if (!extensionMatch || association.extension.length > extensionMatch.extension.length) {\n                if (filename.endsWith(association.extensionLowercase)) {\n                    extensionMatch = association;\n                }\n            }\n        }\n    }\n    // 1.) Exact name match has second highest priority\n    if (filenameMatch) {\n        return filenameMatch;\n    }\n    // 2.) Match on pattern\n    if (patternMatch) {\n        return patternMatch;\n    }\n    // 3.) Match on extension comes next\n    if (extensionMatch) {\n        return extensionMatch;\n    }\n    return undefined;\n}\nfunction getAssociationByFirstline(firstLine) {\n    if (startsWithUTF8BOM(firstLine)) {\n        firstLine = firstLine.substr(1);\n    }\n    if (firstLine.length > 0) {\n        // We want to prioritize associations based on the order they are registered so that the last registered\n        // association wins over all other. This is for https://github.com/microsoft/vscode/issues/20074\n        for (let i = registeredAssociations.length - 1; i >= 0; i--) {\n            const association = registeredAssociations[i];\n            if (!association.firstline) {\n                continue;\n            }\n            const matches = firstLine.match(association.firstline);\n            if (matches && matches.length > 0) {\n                return association;\n            }\n        }\n    }\n    return undefined;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/services/languagesRegistry.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../../base/common/event.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { regExpLeadsToEndlessLoop } from '../../../base/common/strings.js';\nimport { clearPlatformLanguageAssociations, getLanguageIds, registerPlatformLanguageAssociation } from './languagesAssociations.js';\nimport { ModesRegistry, PLAINTEXT_LANGUAGE_ID } from '../languages/modesRegistry.js';\nimport { Extensions } from '../../../platform/configuration/common/configurationRegistry.js';\nimport { Registry } from '../../../platform/registry/common/platform.js';\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst NULL_LANGUAGE_ID = 'vs.editor.nullLanguage';\nexport class LanguageIdCodec {\n    constructor() {\n        this._languageIdToLanguage = [];\n        this._languageToLanguageId = new Map();\n        this._register(NULL_LANGUAGE_ID, 0 /* LanguageId.Null */);\n        this._register(PLAINTEXT_LANGUAGE_ID, 1 /* LanguageId.PlainText */);\n        this._nextLanguageId = 2;\n    }\n    _register(language, languageId) {\n        this._languageIdToLanguage[languageId] = language;\n        this._languageToLanguageId.set(language, languageId);\n    }\n    register(language) {\n        if (this._languageToLanguageId.has(language)) {\n            return;\n        }\n        const languageId = this._nextLanguageId++;\n        this._register(language, languageId);\n    }\n    encodeLanguageId(languageId) {\n        return this._languageToLanguageId.get(languageId) || 0 /* LanguageId.Null */;\n    }\n    decodeLanguageId(languageId) {\n        return this._languageIdToLanguage[languageId] || NULL_LANGUAGE_ID;\n    }\n}\nexport class LanguagesRegistry extends Disposable {\n    constructor(useModesRegistry = true, warnOnOverwrite = false) {\n        super();\n        this._onDidChange = this._register(new Emitter());\n        this.onDidChange = this._onDidChange.event;\n        LanguagesRegistry.instanceCount++;\n        this._warnOnOverwrite = warnOnOverwrite;\n        this.languageIdCodec = new LanguageIdCodec();\n        this._dynamicLanguages = [];\n        this._languages = {};\n        this._mimeTypesMap = {};\n        this._nameMap = {};\n        this._lowercaseNameMap = {};\n        if (useModesRegistry) {\n            this._initializeFromRegistry();\n            this._register(ModesRegistry.onDidChangeLanguages((m) => {\n                this._initializeFromRegistry();\n            }));\n        }\n    }\n    dispose() {\n        LanguagesRegistry.instanceCount--;\n        super.dispose();\n    }\n    _initializeFromRegistry() {\n        this._languages = {};\n        this._mimeTypesMap = {};\n        this._nameMap = {};\n        this._lowercaseNameMap = {};\n        clearPlatformLanguageAssociations();\n        const desc = [].concat(ModesRegistry.getLanguages()).concat(this._dynamicLanguages);\n        this._registerLanguages(desc);\n    }\n    _registerLanguages(desc) {\n        for (const d of desc) {\n            this._registerLanguage(d);\n        }\n        // Rebuild fast path maps\n        this._mimeTypesMap = {};\n        this._nameMap = {};\n        this._lowercaseNameMap = {};\n        Object.keys(this._languages).forEach((langId) => {\n            const language = this._languages[langId];\n            if (language.name) {\n                this._nameMap[language.name] = language.identifier;\n            }\n            language.aliases.forEach((alias) => {\n                this._lowercaseNameMap[alias.toLowerCase()] = language.identifier;\n            });\n            language.mimetypes.forEach((mimetype) => {\n                this._mimeTypesMap[mimetype] = language.identifier;\n            });\n        });\n        Registry.as(Extensions.Configuration).registerOverrideIdentifiers(this.getRegisteredLanguageIds());\n        this._onDidChange.fire();\n    }\n    _registerLanguage(lang) {\n        const langId = lang.id;\n        let resolvedLanguage;\n        if (hasOwnProperty.call(this._languages, langId)) {\n            resolvedLanguage = this._languages[langId];\n        }\n        else {\n            this.languageIdCodec.register(langId);\n            resolvedLanguage = {\n                identifier: langId,\n                name: null,\n                mimetypes: [],\n                aliases: [],\n                extensions: [],\n                filenames: [],\n                configurationFiles: [],\n                icons: []\n            };\n            this._languages[langId] = resolvedLanguage;\n        }\n        this._mergeLanguage(resolvedLanguage, lang);\n    }\n    _mergeLanguage(resolvedLanguage, lang) {\n        const langId = lang.id;\n        let primaryMime = null;\n        if (Array.isArray(lang.mimetypes) && lang.mimetypes.length > 0) {\n            resolvedLanguage.mimetypes.push(...lang.mimetypes);\n            primaryMime = lang.mimetypes[0];\n        }\n        if (!primaryMime) {\n            primaryMime = `text/x-${langId}`;\n            resolvedLanguage.mimetypes.push(primaryMime);\n        }\n        if (Array.isArray(lang.extensions)) {\n            if (lang.configuration) {\n                // insert first as this appears to be the 'primary' language definition\n                resolvedLanguage.extensions = lang.extensions.concat(resolvedLanguage.extensions);\n            }\n            else {\n                resolvedLanguage.extensions = resolvedLanguage.extensions.concat(lang.extensions);\n            }\n            for (const extension of lang.extensions) {\n                registerPlatformLanguageAssociation({ id: langId, mime: primaryMime, extension: extension }, this._warnOnOverwrite);\n            }\n        }\n        if (Array.isArray(lang.filenames)) {\n            for (const filename of lang.filenames) {\n                registerPlatformLanguageAssociation({ id: langId, mime: primaryMime, filename: filename }, this._warnOnOverwrite);\n                resolvedLanguage.filenames.push(filename);\n            }\n        }\n        if (Array.isArray(lang.filenamePatterns)) {\n            for (const filenamePattern of lang.filenamePatterns) {\n                registerPlatformLanguageAssociation({ id: langId, mime: primaryMime, filepattern: filenamePattern }, this._warnOnOverwrite);\n            }\n        }\n        if (typeof lang.firstLine === 'string' && lang.firstLine.length > 0) {\n            let firstLineRegexStr = lang.firstLine;\n            if (firstLineRegexStr.charAt(0) !== '^') {\n                firstLineRegexStr = '^' + firstLineRegexStr;\n            }\n            try {\n                const firstLineRegex = new RegExp(firstLineRegexStr);\n                if (!regExpLeadsToEndlessLoop(firstLineRegex)) {\n                    registerPlatformLanguageAssociation({ id: langId, mime: primaryMime, firstline: firstLineRegex }, this._warnOnOverwrite);\n                }\n            }\n            catch (err) {\n                // Most likely, the regex was bad\n                console.warn(`[${lang.id}]: Invalid regular expression \\`${firstLineRegexStr}\\`: `, err);\n            }\n        }\n        resolvedLanguage.aliases.push(langId);\n        let langAliases = null;\n        if (typeof lang.aliases !== 'undefined' && Array.isArray(lang.aliases)) {\n            if (lang.aliases.length === 0) {\n                // signal that this language should not get a name\n                langAliases = [null];\n            }\n            else {\n                langAliases = lang.aliases;\n            }\n        }\n        if (langAliases !== null) {\n            for (const langAlias of langAliases) {\n                if (!langAlias || langAlias.length === 0) {\n                    continue;\n                }\n                resolvedLanguage.aliases.push(langAlias);\n            }\n        }\n        const containsAliases = (langAliases !== null && langAliases.length > 0);\n        if (containsAliases && langAliases[0] === null) {\n            // signal that this language should not get a name\n        }\n        else {\n            const bestName = (containsAliases ? langAliases[0] : null) || langId;\n            if (containsAliases || !resolvedLanguage.name) {\n                resolvedLanguage.name = bestName;\n            }\n        }\n        if (lang.configuration) {\n            resolvedLanguage.configurationFiles.push(lang.configuration);\n        }\n        if (lang.icon) {\n            resolvedLanguage.icons.push(lang.icon);\n        }\n    }\n    isRegisteredLanguageId(languageId) {\n        if (!languageId) {\n            return false;\n        }\n        return hasOwnProperty.call(this._languages, languageId);\n    }\n    getRegisteredLanguageIds() {\n        return Object.keys(this._languages);\n    }\n    getLanguageIdByLanguageName(languageName) {\n        const languageNameLower = languageName.toLowerCase();\n        if (!hasOwnProperty.call(this._lowercaseNameMap, languageNameLower)) {\n            return null;\n        }\n        return this._lowercaseNameMap[languageNameLower];\n    }\n    getLanguageIdByMimeType(mimeType) {\n        if (!mimeType) {\n            return null;\n        }\n        if (hasOwnProperty.call(this._mimeTypesMap, mimeType)) {\n            return this._mimeTypesMap[mimeType];\n        }\n        return null;\n    }\n    guessLanguageIdByFilepathOrFirstLine(resource, firstLine) {\n        if (!resource && !firstLine) {\n            return [];\n        }\n        return getLanguageIds(resource, firstLine);\n    }\n}\nLanguagesRegistry.instanceCount = 0;\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/services/markerDecorations.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nexport const IMarkerDecorationsService = createDecorator('markerDecorationsService');\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/services/markerDecorationsService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { IMarkerService, MarkerSeverity } from '../../../platform/markers/common/markers.js';\nimport { Disposable, toDisposable } from '../../../base/common/lifecycle.js';\nimport { OverviewRulerLane } from '../model.js';\nimport { themeColorFromId } from '../../../platform/theme/common/themeService.js';\nimport { overviewRulerWarning, overviewRulerInfo, overviewRulerError } from '../core/editorColorRegistry.js';\nimport { IModelService } from './model.js';\nimport { Range } from '../core/range.js';\nimport { Schemas } from '../../../base/common/network.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { minimapInfo, minimapWarning, minimapError } from '../../../platform/theme/common/colorRegistry.js';\nimport { BidirectionalMap, ResourceMap } from '../../../base/common/map.js';\nimport { diffSets } from '../../../base/common/collections.js';\nlet MarkerDecorationsService = class MarkerDecorationsService extends Disposable {\n    constructor(modelService, _markerService) {\n        super();\n        this._markerService = _markerService;\n        this._onDidChangeMarker = this._register(new Emitter());\n        this._markerDecorations = new ResourceMap();\n        modelService.getModels().forEach(model => this._onModelAdded(model));\n        this._register(modelService.onModelAdded(this._onModelAdded, this));\n        this._register(modelService.onModelRemoved(this._onModelRemoved, this));\n        this._register(this._markerService.onMarkerChanged(this._handleMarkerChange, this));\n    }\n    dispose() {\n        super.dispose();\n        this._markerDecorations.forEach(value => value.dispose());\n        this._markerDecorations.clear();\n    }\n    getMarker(uri, decoration) {\n        const markerDecorations = this._markerDecorations.get(uri);\n        return markerDecorations ? (markerDecorations.getMarker(decoration) || null) : null;\n    }\n    _handleMarkerChange(changedResources) {\n        changedResources.forEach((resource) => {\n            const markerDecorations = this._markerDecorations.get(resource);\n            if (markerDecorations) {\n                this._updateDecorations(markerDecorations);\n            }\n        });\n    }\n    _onModelAdded(model) {\n        const markerDecorations = new MarkerDecorations(model);\n        this._markerDecorations.set(model.uri, markerDecorations);\n        this._updateDecorations(markerDecorations);\n    }\n    _onModelRemoved(model) {\n        var _a;\n        const markerDecorations = this._markerDecorations.get(model.uri);\n        if (markerDecorations) {\n            markerDecorations.dispose();\n            this._markerDecorations.delete(model.uri);\n        }\n        // clean up markers for internal, transient models\n        if (model.uri.scheme === Schemas.inMemory\n            || model.uri.scheme === Schemas.internal\n            || model.uri.scheme === Schemas.vscode) {\n            (_a = this._markerService) === null || _a === void 0 ? void 0 : _a.read({ resource: model.uri }).map(marker => marker.owner).forEach(owner => this._markerService.remove(owner, [model.uri]));\n        }\n    }\n    _updateDecorations(markerDecorations) {\n        // Limit to the first 500 errors/warnings\n        const markers = this._markerService.read({ resource: markerDecorations.model.uri, take: 500 });\n        if (markerDecorations.update(markers)) {\n            this._onDidChangeMarker.fire(markerDecorations.model);\n        }\n    }\n};\nMarkerDecorationsService = __decorate([\n    __param(0, IModelService),\n    __param(1, IMarkerService)\n], MarkerDecorationsService);\nexport { MarkerDecorationsService };\nclass MarkerDecorations extends Disposable {\n    constructor(model) {\n        super();\n        this.model = model;\n        this._map = new BidirectionalMap();\n        this._register(toDisposable(() => {\n            this.model.deltaDecorations([...this._map.values()], []);\n            this._map.clear();\n        }));\n    }\n    update(markers) {\n        // We use the fact that marker instances are not recreated when different owners\n        // update. So we can compare references to find out what changed since the last update.\n        const { added, removed } = diffSets(new Set(this._map.keys()), new Set(markers));\n        if (added.length === 0 && removed.length === 0) {\n            return false;\n        }\n        const oldIds = removed.map(marker => this._map.get(marker));\n        const newDecorations = added.map(marker => {\n            return {\n                range: this._createDecorationRange(this.model, marker),\n                options: this._createDecorationOption(marker)\n            };\n        });\n        const ids = this.model.deltaDecorations(oldIds, newDecorations);\n        for (const removedMarker of removed) {\n            this._map.delete(removedMarker);\n        }\n        for (let index = 0; index < ids.length; index++) {\n            this._map.set(added[index], ids[index]);\n        }\n        return true;\n    }\n    getMarker(decoration) {\n        return this._map.getKey(decoration.id);\n    }\n    _createDecorationRange(model, rawMarker) {\n        let ret = Range.lift(rawMarker);\n        if (rawMarker.severity === MarkerSeverity.Hint && !this._hasMarkerTag(rawMarker, 1 /* MarkerTag.Unnecessary */) && !this._hasMarkerTag(rawMarker, 2 /* MarkerTag.Deprecated */)) {\n            // * never render hints on multiple lines\n            // * make enough space for three dots\n            ret = ret.setEndPosition(ret.startLineNumber, ret.startColumn + 2);\n        }\n        ret = model.validateRange(ret);\n        if (ret.isEmpty()) {\n            const maxColumn = model.getLineLastNonWhitespaceColumn(ret.startLineNumber) ||\n                model.getLineMaxColumn(ret.startLineNumber);\n            if (maxColumn === 1 || ret.endColumn >= maxColumn) {\n                // empty line or behind eol\n                // keep the range as is, it will be rendered 1ch wide\n                return ret;\n            }\n            const word = model.getWordAtPosition(ret.getStartPosition());\n            if (word) {\n                ret = new Range(ret.startLineNumber, word.startColumn, ret.endLineNumber, word.endColumn);\n            }\n        }\n        else if (rawMarker.endColumn === Number.MAX_VALUE && rawMarker.startColumn === 1 && ret.startLineNumber === ret.endLineNumber) {\n            const minColumn = model.getLineFirstNonWhitespaceColumn(rawMarker.startLineNumber);\n            if (minColumn < ret.endColumn) {\n                ret = new Range(ret.startLineNumber, minColumn, ret.endLineNumber, ret.endColumn);\n                rawMarker.startColumn = minColumn;\n            }\n        }\n        return ret;\n    }\n    _createDecorationOption(marker) {\n        let className;\n        let color = undefined;\n        let zIndex;\n        let inlineClassName = undefined;\n        let minimap;\n        switch (marker.severity) {\n            case MarkerSeverity.Hint:\n                if (this._hasMarkerTag(marker, 2 /* MarkerTag.Deprecated */)) {\n                    className = undefined;\n                }\n                else if (this._hasMarkerTag(marker, 1 /* MarkerTag.Unnecessary */)) {\n                    className = \"squiggly-unnecessary\" /* ClassName.EditorUnnecessaryDecoration */;\n                }\n                else {\n                    className = \"squiggly-hint\" /* ClassName.EditorHintDecoration */;\n                }\n                zIndex = 0;\n                break;\n            case MarkerSeverity.Info:\n                className = \"squiggly-info\" /* ClassName.EditorInfoDecoration */;\n                color = themeColorFromId(overviewRulerInfo);\n                zIndex = 10;\n                minimap = {\n                    color: themeColorFromId(minimapInfo),\n                    position: 1 /* MinimapPosition.Inline */\n                };\n                break;\n            case MarkerSeverity.Warning:\n                className = \"squiggly-warning\" /* ClassName.EditorWarningDecoration */;\n                color = themeColorFromId(overviewRulerWarning);\n                zIndex = 20;\n                minimap = {\n                    color: themeColorFromId(minimapWarning),\n                    position: 1 /* MinimapPosition.Inline */\n                };\n                break;\n            case MarkerSeverity.Error:\n            default:\n                className = \"squiggly-error\" /* ClassName.EditorErrorDecoration */;\n                color = themeColorFromId(overviewRulerError);\n                zIndex = 30;\n                minimap = {\n                    color: themeColorFromId(minimapError),\n                    position: 1 /* MinimapPosition.Inline */\n                };\n                break;\n        }\n        if (marker.tags) {\n            if (marker.tags.indexOf(1 /* MarkerTag.Unnecessary */) !== -1) {\n                inlineClassName = \"squiggly-inline-unnecessary\" /* ClassName.EditorUnnecessaryInlineDecoration */;\n            }\n            if (marker.tags.indexOf(2 /* MarkerTag.Deprecated */) !== -1) {\n                inlineClassName = \"squiggly-inline-deprecated\" /* ClassName.EditorDeprecatedInlineDecoration */;\n            }\n        }\n        return {\n            description: 'marker-decoration',\n            stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n            className,\n            showIfCollapsed: true,\n            overviewRuler: {\n                color,\n                position: OverviewRulerLane.Right\n            },\n            minimap,\n            zIndex,\n            inlineClassName,\n        };\n    }\n    _hasMarkerTag(marker, tag) {\n        if (marker.tags) {\n            return marker.tags.indexOf(tag) >= 0;\n        }\n        return false;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/services/model.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nexport const IModelService = createDecorator('modelService');\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/services/modelService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar ModelService_1;\nimport { Emitter } from '../../../base/common/event.js';\nimport { Disposable, DisposableStore } from '../../../base/common/lifecycle.js';\nimport * as platform from '../../../base/common/platform.js';\nimport { TextModel } from '../model/textModel.js';\nimport { EDITOR_MODEL_DEFAULTS } from '../core/textModelDefaults.js';\nimport { PLAINTEXT_LANGUAGE_ID } from '../languages/modesRegistry.js';\nimport { ILanguageService } from '../languages/language.js';\nimport { ITextResourcePropertiesService } from './textResourceConfiguration.js';\nimport { IConfigurationService } from '../../../platform/configuration/common/configuration.js';\nimport { IUndoRedoService } from '../../../platform/undoRedo/common/undoRedo.js';\nimport { StringSHA1 } from '../../../base/common/hash.js';\nimport { isEditStackElement } from '../model/editStack.js';\nimport { Schemas } from '../../../base/common/network.js';\nimport { equals } from '../../../base/common/objects.js';\nimport { ILanguageConfigurationService } from '../languages/languageConfigurationRegistry.js';\nfunction MODEL_ID(resource) {\n    return resource.toString();\n}\nclass ModelData {\n    constructor(model, onWillDispose, onDidChangeLanguage) {\n        this.model = model;\n        this._modelEventListeners = new DisposableStore();\n        this.model = model;\n        this._modelEventListeners.add(model.onWillDispose(() => onWillDispose(model)));\n        this._modelEventListeners.add(model.onDidChangeLanguage((e) => onDidChangeLanguage(model, e)));\n    }\n    dispose() {\n        this._modelEventListeners.dispose();\n    }\n}\nconst DEFAULT_EOL = (platform.isLinux || platform.isMacintosh) ? 1 /* DefaultEndOfLine.LF */ : 2 /* DefaultEndOfLine.CRLF */;\nclass DisposedModelInfo {\n    constructor(uri, initialUndoRedoSnapshot, time, sharesUndoRedoStack, heapSize, sha1, versionId, alternativeVersionId) {\n        this.uri = uri;\n        this.initialUndoRedoSnapshot = initialUndoRedoSnapshot;\n        this.time = time;\n        this.sharesUndoRedoStack = sharesUndoRedoStack;\n        this.heapSize = heapSize;\n        this.sha1 = sha1;\n        this.versionId = versionId;\n        this.alternativeVersionId = alternativeVersionId;\n    }\n}\nlet ModelService = ModelService_1 = class ModelService extends Disposable {\n    constructor(_configurationService, _resourcePropertiesService, _undoRedoService, _languageService, _languageConfigurationService) {\n        super();\n        this._configurationService = _configurationService;\n        this._resourcePropertiesService = _resourcePropertiesService;\n        this._undoRedoService = _undoRedoService;\n        this._languageService = _languageService;\n        this._languageConfigurationService = _languageConfigurationService;\n        this._onModelAdded = this._register(new Emitter());\n        this.onModelAdded = this._onModelAdded.event;\n        this._onModelRemoved = this._register(new Emitter());\n        this.onModelRemoved = this._onModelRemoved.event;\n        this._onModelModeChanged = this._register(new Emitter());\n        this.onModelLanguageChanged = this._onModelModeChanged.event;\n        this._modelCreationOptionsByLanguageAndResource = Object.create(null);\n        this._models = {};\n        this._disposedModels = new Map();\n        this._disposedModelsHeapSize = 0;\n        this._register(this._configurationService.onDidChangeConfiguration(e => this._updateModelOptions(e)));\n        this._updateModelOptions(undefined);\n    }\n    static _readModelOptions(config, isForSimpleWidget) {\n        var _a;\n        let tabSize = EDITOR_MODEL_DEFAULTS.tabSize;\n        if (config.editor && typeof config.editor.tabSize !== 'undefined') {\n            const parsedTabSize = parseInt(config.editor.tabSize, 10);\n            if (!isNaN(parsedTabSize)) {\n                tabSize = parsedTabSize;\n            }\n            if (tabSize < 1) {\n                tabSize = 1;\n            }\n        }\n        let indentSize = 'tabSize';\n        if (config.editor && typeof config.editor.indentSize !== 'undefined' && config.editor.indentSize !== 'tabSize') {\n            const parsedIndentSize = parseInt(config.editor.indentSize, 10);\n            if (!isNaN(parsedIndentSize)) {\n                indentSize = Math.max(parsedIndentSize, 1);\n            }\n        }\n        let insertSpaces = EDITOR_MODEL_DEFAULTS.insertSpaces;\n        if (config.editor && typeof config.editor.insertSpaces !== 'undefined') {\n            insertSpaces = (config.editor.insertSpaces === 'false' ? false : Boolean(config.editor.insertSpaces));\n        }\n        let newDefaultEOL = DEFAULT_EOL;\n        const eol = config.eol;\n        if (eol === '\\r\\n') {\n            newDefaultEOL = 2 /* DefaultEndOfLine.CRLF */;\n        }\n        else if (eol === '\\n') {\n            newDefaultEOL = 1 /* DefaultEndOfLine.LF */;\n        }\n        let trimAutoWhitespace = EDITOR_MODEL_DEFAULTS.trimAutoWhitespace;\n        if (config.editor && typeof config.editor.trimAutoWhitespace !== 'undefined') {\n            trimAutoWhitespace = (config.editor.trimAutoWhitespace === 'false' ? false : Boolean(config.editor.trimAutoWhitespace));\n        }\n        let detectIndentation = EDITOR_MODEL_DEFAULTS.detectIndentation;\n        if (config.editor && typeof config.editor.detectIndentation !== 'undefined') {\n            detectIndentation = (config.editor.detectIndentation === 'false' ? false : Boolean(config.editor.detectIndentation));\n        }\n        let largeFileOptimizations = EDITOR_MODEL_DEFAULTS.largeFileOptimizations;\n        if (config.editor && typeof config.editor.largeFileOptimizations !== 'undefined') {\n            largeFileOptimizations = (config.editor.largeFileOptimizations === 'false' ? false : Boolean(config.editor.largeFileOptimizations));\n        }\n        let bracketPairColorizationOptions = EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions;\n        if (((_a = config.editor) === null || _a === void 0 ? void 0 : _a.bracketPairColorization) && typeof config.editor.bracketPairColorization === 'object') {\n            bracketPairColorizationOptions = {\n                enabled: !!config.editor.bracketPairColorization.enabled,\n                independentColorPoolPerBracketType: !!config.editor.bracketPairColorization.independentColorPoolPerBracketType\n            };\n        }\n        return {\n            isForSimpleWidget: isForSimpleWidget,\n            tabSize: tabSize,\n            indentSize: indentSize,\n            insertSpaces: insertSpaces,\n            detectIndentation: detectIndentation,\n            defaultEOL: newDefaultEOL,\n            trimAutoWhitespace: trimAutoWhitespace,\n            largeFileOptimizations: largeFileOptimizations,\n            bracketPairColorizationOptions\n        };\n    }\n    _getEOL(resource, language) {\n        if (resource) {\n            return this._resourcePropertiesService.getEOL(resource, language);\n        }\n        const eol = this._configurationService.getValue('files.eol', { overrideIdentifier: language });\n        if (eol && typeof eol === 'string' && eol !== 'auto') {\n            return eol;\n        }\n        return platform.OS === 3 /* platform.OperatingSystem.Linux */ || platform.OS === 2 /* platform.OperatingSystem.Macintosh */ ? '\\n' : '\\r\\n';\n    }\n    _shouldRestoreUndoStack() {\n        const result = this._configurationService.getValue('files.restoreUndoStack');\n        if (typeof result === 'boolean') {\n            return result;\n        }\n        return true;\n    }\n    getCreationOptions(languageIdOrSelection, resource, isForSimpleWidget) {\n        const language = (typeof languageIdOrSelection === 'string' ? languageIdOrSelection : languageIdOrSelection.languageId);\n        let creationOptions = this._modelCreationOptionsByLanguageAndResource[language + resource];\n        if (!creationOptions) {\n            const editor = this._configurationService.getValue('editor', { overrideIdentifier: language, resource });\n            const eol = this._getEOL(resource, language);\n            creationOptions = ModelService_1._readModelOptions({ editor, eol }, isForSimpleWidget);\n            this._modelCreationOptionsByLanguageAndResource[language + resource] = creationOptions;\n        }\n        return creationOptions;\n    }\n    _updateModelOptions(e) {\n        const oldOptionsByLanguageAndResource = this._modelCreationOptionsByLanguageAndResource;\n        this._modelCreationOptionsByLanguageAndResource = Object.create(null);\n        // Update options on all models\n        const keys = Object.keys(this._models);\n        for (let i = 0, len = keys.length; i < len; i++) {\n            const modelId = keys[i];\n            const modelData = this._models[modelId];\n            const language = modelData.model.getLanguageId();\n            const uri = modelData.model.uri;\n            if (e && !e.affectsConfiguration('editor', { overrideIdentifier: language, resource: uri }) && !e.affectsConfiguration('files.eol', { overrideIdentifier: language, resource: uri })) {\n                continue; // perf: skip if this model is not affected by configuration change\n            }\n            const oldOptions = oldOptionsByLanguageAndResource[language + uri];\n            const newOptions = this.getCreationOptions(language, uri, modelData.model.isForSimpleWidget);\n            ModelService_1._setModelOptionsForModel(modelData.model, newOptions, oldOptions);\n        }\n    }\n    static _setModelOptionsForModel(model, newOptions, currentOptions) {\n        if (currentOptions && currentOptions.defaultEOL !== newOptions.defaultEOL && model.getLineCount() === 1) {\n            model.setEOL(newOptions.defaultEOL === 1 /* DefaultEndOfLine.LF */ ? 0 /* EndOfLineSequence.LF */ : 1 /* EndOfLineSequence.CRLF */);\n        }\n        if (currentOptions\n            && (currentOptions.detectIndentation === newOptions.detectIndentation)\n            && (currentOptions.insertSpaces === newOptions.insertSpaces)\n            && (currentOptions.tabSize === newOptions.tabSize)\n            && (currentOptions.indentSize === newOptions.indentSize)\n            && (currentOptions.trimAutoWhitespace === newOptions.trimAutoWhitespace)\n            && equals(currentOptions.bracketPairColorizationOptions, newOptions.bracketPairColorizationOptions)) {\n            // Same indent opts, no need to touch the model\n            return;\n        }\n        if (newOptions.detectIndentation) {\n            model.detectIndentation(newOptions.insertSpaces, newOptions.tabSize);\n            model.updateOptions({\n                trimAutoWhitespace: newOptions.trimAutoWhitespace,\n                bracketColorizationOptions: newOptions.bracketPairColorizationOptions\n            });\n        }\n        else {\n            model.updateOptions({\n                insertSpaces: newOptions.insertSpaces,\n                tabSize: newOptions.tabSize,\n                indentSize: newOptions.indentSize,\n                trimAutoWhitespace: newOptions.trimAutoWhitespace,\n                bracketColorizationOptions: newOptions.bracketPairColorizationOptions\n            });\n        }\n    }\n    // --- begin IModelService\n    _insertDisposedModel(disposedModelData) {\n        this._disposedModels.set(MODEL_ID(disposedModelData.uri), disposedModelData);\n        this._disposedModelsHeapSize += disposedModelData.heapSize;\n    }\n    _removeDisposedModel(resource) {\n        const disposedModelData = this._disposedModels.get(MODEL_ID(resource));\n        if (disposedModelData) {\n            this._disposedModelsHeapSize -= disposedModelData.heapSize;\n        }\n        this._disposedModels.delete(MODEL_ID(resource));\n        return disposedModelData;\n    }\n    _ensureDisposedModelsHeapSize(maxModelsHeapSize) {\n        if (this._disposedModelsHeapSize > maxModelsHeapSize) {\n            // we must remove some old undo stack elements to free up some memory\n            const disposedModels = [];\n            this._disposedModels.forEach(entry => {\n                if (!entry.sharesUndoRedoStack) {\n                    disposedModels.push(entry);\n                }\n            });\n            disposedModels.sort((a, b) => a.time - b.time);\n            while (disposedModels.length > 0 && this._disposedModelsHeapSize > maxModelsHeapSize) {\n                const disposedModel = disposedModels.shift();\n                this._removeDisposedModel(disposedModel.uri);\n                if (disposedModel.initialUndoRedoSnapshot !== null) {\n                    this._undoRedoService.restoreSnapshot(disposedModel.initialUndoRedoSnapshot);\n                }\n            }\n        }\n    }\n    _createModelData(value, languageIdOrSelection, resource, isForSimpleWidget) {\n        // create & save the model\n        const options = this.getCreationOptions(languageIdOrSelection, resource, isForSimpleWidget);\n        const model = new TextModel(value, languageIdOrSelection, options, resource, this._undoRedoService, this._languageService, this._languageConfigurationService);\n        if (resource && this._disposedModels.has(MODEL_ID(resource))) {\n            const disposedModelData = this._removeDisposedModel(resource);\n            const elements = this._undoRedoService.getElements(resource);\n            const sha1Computer = this._getSHA1Computer();\n            const sha1IsEqual = (sha1Computer.canComputeSHA1(model)\n                ? sha1Computer.computeSHA1(model) === disposedModelData.sha1\n                : false);\n            if (sha1IsEqual || disposedModelData.sharesUndoRedoStack) {\n                for (const element of elements.past) {\n                    if (isEditStackElement(element) && element.matchesResource(resource)) {\n                        element.setModel(model);\n                    }\n                }\n                for (const element of elements.future) {\n                    if (isEditStackElement(element) && element.matchesResource(resource)) {\n                        element.setModel(model);\n                    }\n                }\n                this._undoRedoService.setElementsValidFlag(resource, true, (element) => (isEditStackElement(element) && element.matchesResource(resource)));\n                if (sha1IsEqual) {\n                    model._overwriteVersionId(disposedModelData.versionId);\n                    model._overwriteAlternativeVersionId(disposedModelData.alternativeVersionId);\n                    model._overwriteInitialUndoRedoSnapshot(disposedModelData.initialUndoRedoSnapshot);\n                }\n            }\n            else {\n                if (disposedModelData.initialUndoRedoSnapshot !== null) {\n                    this._undoRedoService.restoreSnapshot(disposedModelData.initialUndoRedoSnapshot);\n                }\n            }\n        }\n        const modelId = MODEL_ID(model.uri);\n        if (this._models[modelId]) {\n            // There already exists a model with this id => this is a programmer error\n            throw new Error('ModelService: Cannot add model because it already exists!');\n        }\n        const modelData = new ModelData(model, (model) => this._onWillDispose(model), (model, e) => this._onDidChangeLanguage(model, e));\n        this._models[modelId] = modelData;\n        return modelData;\n    }\n    createModel(value, languageSelection, resource, isForSimpleWidget = false) {\n        let modelData;\n        if (languageSelection) {\n            modelData = this._createModelData(value, languageSelection, resource, isForSimpleWidget);\n        }\n        else {\n            modelData = this._createModelData(value, PLAINTEXT_LANGUAGE_ID, resource, isForSimpleWidget);\n        }\n        this._onModelAdded.fire(modelData.model);\n        return modelData.model;\n    }\n    getModels() {\n        const ret = [];\n        const keys = Object.keys(this._models);\n        for (let i = 0, len = keys.length; i < len; i++) {\n            const modelId = keys[i];\n            ret.push(this._models[modelId].model);\n        }\n        return ret;\n    }\n    getModel(resource) {\n        const modelId = MODEL_ID(resource);\n        const modelData = this._models[modelId];\n        if (!modelData) {\n            return null;\n        }\n        return modelData.model;\n    }\n    // --- end IModelService\n    _schemaShouldMaintainUndoRedoElements(resource) {\n        return (resource.scheme === Schemas.file\n            || resource.scheme === Schemas.vscodeRemote\n            || resource.scheme === Schemas.vscodeUserData\n            || resource.scheme === Schemas.vscodeNotebookCell\n            || resource.scheme === 'fake-fs' // for tests\n        );\n    }\n    _onWillDispose(model) {\n        const modelId = MODEL_ID(model.uri);\n        const modelData = this._models[modelId];\n        const sharesUndoRedoStack = (this._undoRedoService.getUriComparisonKey(model.uri) !== model.uri.toString());\n        let maintainUndoRedoStack = false;\n        let heapSize = 0;\n        if (sharesUndoRedoStack || (this._shouldRestoreUndoStack() && this._schemaShouldMaintainUndoRedoElements(model.uri))) {\n            const elements = this._undoRedoService.getElements(model.uri);\n            if (elements.past.length > 0 || elements.future.length > 0) {\n                for (const element of elements.past) {\n                    if (isEditStackElement(element) && element.matchesResource(model.uri)) {\n                        maintainUndoRedoStack = true;\n                        heapSize += element.heapSize(model.uri);\n                        element.setModel(model.uri); // remove reference from text buffer instance\n                    }\n                }\n                for (const element of elements.future) {\n                    if (isEditStackElement(element) && element.matchesResource(model.uri)) {\n                        maintainUndoRedoStack = true;\n                        heapSize += element.heapSize(model.uri);\n                        element.setModel(model.uri); // remove reference from text buffer instance\n                    }\n                }\n            }\n        }\n        const maxMemory = ModelService_1.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK;\n        const sha1Computer = this._getSHA1Computer();\n        if (!maintainUndoRedoStack) {\n            if (!sharesUndoRedoStack) {\n                const initialUndoRedoSnapshot = modelData.model.getInitialUndoRedoSnapshot();\n                if (initialUndoRedoSnapshot !== null) {\n                    this._undoRedoService.restoreSnapshot(initialUndoRedoSnapshot);\n                }\n            }\n        }\n        else if (!sharesUndoRedoStack && (heapSize > maxMemory || !sha1Computer.canComputeSHA1(model))) {\n            // the undo stack for this file would never fit in the configured memory or the file is very large, so don't bother with it.\n            const initialUndoRedoSnapshot = modelData.model.getInitialUndoRedoSnapshot();\n            if (initialUndoRedoSnapshot !== null) {\n                this._undoRedoService.restoreSnapshot(initialUndoRedoSnapshot);\n            }\n        }\n        else {\n            this._ensureDisposedModelsHeapSize(maxMemory - heapSize);\n            // We only invalidate the elements, but they remain in the undo-redo service.\n            this._undoRedoService.setElementsValidFlag(model.uri, false, (element) => (isEditStackElement(element) && element.matchesResource(model.uri)));\n            this._insertDisposedModel(new DisposedModelInfo(model.uri, modelData.model.getInitialUndoRedoSnapshot(), Date.now(), sharesUndoRedoStack, heapSize, sha1Computer.computeSHA1(model), model.getVersionId(), model.getAlternativeVersionId()));\n        }\n        delete this._models[modelId];\n        modelData.dispose();\n        // clean up cache\n        delete this._modelCreationOptionsByLanguageAndResource[model.getLanguageId() + model.uri];\n        this._onModelRemoved.fire(model);\n    }\n    _onDidChangeLanguage(model, e) {\n        const oldLanguageId = e.oldLanguage;\n        const newLanguageId = model.getLanguageId();\n        const oldOptions = this.getCreationOptions(oldLanguageId, model.uri, model.isForSimpleWidget);\n        const newOptions = this.getCreationOptions(newLanguageId, model.uri, model.isForSimpleWidget);\n        ModelService_1._setModelOptionsForModel(model, newOptions, oldOptions);\n        this._onModelModeChanged.fire({ model, oldLanguageId: oldLanguageId });\n    }\n    _getSHA1Computer() {\n        return new DefaultModelSHA1Computer();\n    }\n};\nModelService.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK = 20 * 1024 * 1024;\nModelService = ModelService_1 = __decorate([\n    __param(0, IConfigurationService),\n    __param(1, ITextResourcePropertiesService),\n    __param(2, IUndoRedoService),\n    __param(3, ILanguageService),\n    __param(4, ILanguageConfigurationService)\n], ModelService);\nexport { ModelService };\nexport class DefaultModelSHA1Computer {\n    canComputeSHA1(model) {\n        return (model.getValueLength() <= DefaultModelSHA1Computer.MAX_MODEL_SIZE);\n    }\n    computeSHA1(model) {\n        // compute the sha1\n        const shaComputer = new StringSHA1();\n        const snapshot = model.createSnapshot();\n        let text;\n        while ((text = snapshot.read())) {\n            shaComputer.update(text);\n        }\n        return shaComputer.digest();\n    }\n}\nDefaultModelSHA1Computer.MAX_MODEL_SIZE = 10 * 1024 * 1024; // takes 200ms to compute a sha1 on a 10MB model on a new machine\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/services/resolverService.js",
    "content": "import { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nexport const ITextModelService = createDecorator('textModelService');\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/services/semanticTokensDto.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { VSBuffer } from '../../../base/common/buffer.js';\nimport * as platform from '../../../base/common/platform.js';\nfunction reverseEndianness(arr) {\n    for (let i = 0, len = arr.length; i < len; i += 4) {\n        // flip bytes 0<->3 and 1<->2\n        const b0 = arr[i + 0];\n        const b1 = arr[i + 1];\n        const b2 = arr[i + 2];\n        const b3 = arr[i + 3];\n        arr[i + 0] = b3;\n        arr[i + 1] = b2;\n        arr[i + 2] = b1;\n        arr[i + 3] = b0;\n    }\n}\nfunction toLittleEndianBuffer(arr) {\n    const uint8Arr = new Uint8Array(arr.buffer, arr.byteOffset, arr.length * 4);\n    if (!platform.isLittleEndian()) {\n        // the byte order must be changed\n        reverseEndianness(uint8Arr);\n    }\n    return VSBuffer.wrap(uint8Arr);\n}\nexport function encodeSemanticTokensDto(semanticTokens) {\n    const dest = new Uint32Array(encodeSemanticTokensDtoSize(semanticTokens));\n    let offset = 0;\n    dest[offset++] = semanticTokens.id;\n    if (semanticTokens.type === 'full') {\n        dest[offset++] = 1 /* EncodedSemanticTokensType.Full */;\n        dest[offset++] = semanticTokens.data.length;\n        dest.set(semanticTokens.data, offset);\n        offset += semanticTokens.data.length;\n    }\n    else {\n        dest[offset++] = 2 /* EncodedSemanticTokensType.Delta */;\n        dest[offset++] = semanticTokens.deltas.length;\n        for (const delta of semanticTokens.deltas) {\n            dest[offset++] = delta.start;\n            dest[offset++] = delta.deleteCount;\n            if (delta.data) {\n                dest[offset++] = delta.data.length;\n                dest.set(delta.data, offset);\n                offset += delta.data.length;\n            }\n            else {\n                dest[offset++] = 0;\n            }\n        }\n    }\n    return toLittleEndianBuffer(dest);\n}\nfunction encodeSemanticTokensDtoSize(semanticTokens) {\n    let result = 0;\n    result += (+1 // id\n        + 1 // type\n    );\n    if (semanticTokens.type === 'full') {\n        result += (+1 // data length\n            + semanticTokens.data.length);\n    }\n    else {\n        result += (+1 // delta count\n        );\n        result += (+1 // start\n            + 1 // deleteCount\n            + 1 // data length\n        ) * semanticTokens.deltas.length;\n        for (const delta of semanticTokens.deltas) {\n            if (delta.data) {\n                result += delta.data.length;\n            }\n        }\n    }\n    return result;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/services/semanticTokensProviderStyling.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { TokenMetadata } from '../encodedTokenAttributes.js';\nimport { IThemeService } from '../../../platform/theme/common/themeService.js';\nimport { ILogService, LogLevel } from '../../../platform/log/common/log.js';\nimport { SparseMultilineTokens } from '../tokens/sparseMultilineTokens.js';\nimport { ILanguageService } from '../languages/language.js';\nlet SemanticTokensProviderStyling = class SemanticTokensProviderStyling {\n    constructor(_legend, _themeService, _languageService, _logService) {\n        this._legend = _legend;\n        this._themeService = _themeService;\n        this._languageService = _languageService;\n        this._logService = _logService;\n        this._hasWarnedOverlappingTokens = false;\n        this._hasWarnedInvalidLengthTokens = false;\n        this._hasWarnedInvalidEditStart = false;\n        this._hashTable = new HashTable();\n    }\n    getMetadata(tokenTypeIndex, tokenModifierSet, languageId) {\n        const encodedLanguageId = this._languageService.languageIdCodec.encodeLanguageId(languageId);\n        const entry = this._hashTable.get(tokenTypeIndex, tokenModifierSet, encodedLanguageId);\n        let metadata;\n        if (entry) {\n            metadata = entry.metadata;\n            if (this._logService.getLevel() === LogLevel.Trace) {\n                this._logService.trace(`SemanticTokensProviderStyling [CACHED] ${tokenTypeIndex} / ${tokenModifierSet}: foreground ${TokenMetadata.getForeground(metadata)}, fontStyle ${TokenMetadata.getFontStyle(metadata).toString(2)}`);\n            }\n        }\n        else {\n            let tokenType = this._legend.tokenTypes[tokenTypeIndex];\n            const tokenModifiers = [];\n            if (tokenType) {\n                let modifierSet = tokenModifierSet;\n                for (let modifierIndex = 0; modifierSet > 0 && modifierIndex < this._legend.tokenModifiers.length; modifierIndex++) {\n                    if (modifierSet & 1) {\n                        tokenModifiers.push(this._legend.tokenModifiers[modifierIndex]);\n                    }\n                    modifierSet = modifierSet >> 1;\n                }\n                if (modifierSet > 0 && this._logService.getLevel() === LogLevel.Trace) {\n                    this._logService.trace(`SemanticTokensProviderStyling: unknown token modifier index: ${tokenModifierSet.toString(2)} for legend: ${JSON.stringify(this._legend.tokenModifiers)}`);\n                    tokenModifiers.push('not-in-legend');\n                }\n                const tokenStyle = this._themeService.getColorTheme().getTokenStyleMetadata(tokenType, tokenModifiers, languageId);\n                if (typeof tokenStyle === 'undefined') {\n                    metadata = 2147483647 /* SemanticTokensProviderStylingConstants.NO_STYLING */;\n                }\n                else {\n                    metadata = 0;\n                    if (typeof tokenStyle.italic !== 'undefined') {\n                        const italicBit = (tokenStyle.italic ? 1 /* FontStyle.Italic */ : 0) << 11 /* MetadataConsts.FONT_STYLE_OFFSET */;\n                        metadata |= italicBit | 1 /* MetadataConsts.SEMANTIC_USE_ITALIC */;\n                    }\n                    if (typeof tokenStyle.bold !== 'undefined') {\n                        const boldBit = (tokenStyle.bold ? 2 /* FontStyle.Bold */ : 0) << 11 /* MetadataConsts.FONT_STYLE_OFFSET */;\n                        metadata |= boldBit | 2 /* MetadataConsts.SEMANTIC_USE_BOLD */;\n                    }\n                    if (typeof tokenStyle.underline !== 'undefined') {\n                        const underlineBit = (tokenStyle.underline ? 4 /* FontStyle.Underline */ : 0) << 11 /* MetadataConsts.FONT_STYLE_OFFSET */;\n                        metadata |= underlineBit | 4 /* MetadataConsts.SEMANTIC_USE_UNDERLINE */;\n                    }\n                    if (typeof tokenStyle.strikethrough !== 'undefined') {\n                        const strikethroughBit = (tokenStyle.strikethrough ? 8 /* FontStyle.Strikethrough */ : 0) << 11 /* MetadataConsts.FONT_STYLE_OFFSET */;\n                        metadata |= strikethroughBit | 8 /* MetadataConsts.SEMANTIC_USE_STRIKETHROUGH */;\n                    }\n                    if (tokenStyle.foreground) {\n                        const foregroundBits = (tokenStyle.foreground) << 15 /* MetadataConsts.FOREGROUND_OFFSET */;\n                        metadata |= foregroundBits | 16 /* MetadataConsts.SEMANTIC_USE_FOREGROUND */;\n                    }\n                    if (metadata === 0) {\n                        // Nothing!\n                        metadata = 2147483647 /* SemanticTokensProviderStylingConstants.NO_STYLING */;\n                    }\n                }\n            }\n            else {\n                if (this._logService.getLevel() === LogLevel.Trace) {\n                    this._logService.trace(`SemanticTokensProviderStyling: unknown token type index: ${tokenTypeIndex} for legend: ${JSON.stringify(this._legend.tokenTypes)}`);\n                }\n                metadata = 2147483647 /* SemanticTokensProviderStylingConstants.NO_STYLING */;\n                tokenType = 'not-in-legend';\n            }\n            this._hashTable.add(tokenTypeIndex, tokenModifierSet, encodedLanguageId, metadata);\n            if (this._logService.getLevel() === LogLevel.Trace) {\n                this._logService.trace(`SemanticTokensProviderStyling ${tokenTypeIndex} (${tokenType}) / ${tokenModifierSet} (${tokenModifiers.join(' ')}): foreground ${TokenMetadata.getForeground(metadata)}, fontStyle ${TokenMetadata.getFontStyle(metadata).toString(2)}`);\n            }\n        }\n        return metadata;\n    }\n    warnOverlappingSemanticTokens(lineNumber, startColumn) {\n        if (!this._hasWarnedOverlappingTokens) {\n            this._hasWarnedOverlappingTokens = true;\n            this._logService.warn(`Overlapping semantic tokens detected at lineNumber ${lineNumber}, column ${startColumn}`);\n        }\n    }\n    warnInvalidLengthSemanticTokens(lineNumber, startColumn) {\n        if (!this._hasWarnedInvalidLengthTokens) {\n            this._hasWarnedInvalidLengthTokens = true;\n            this._logService.warn(`Semantic token with invalid length detected at lineNumber ${lineNumber}, column ${startColumn}`);\n        }\n    }\n    warnInvalidEditStart(previousResultId, resultId, editIndex, editStart, maxExpectedStart) {\n        if (!this._hasWarnedInvalidEditStart) {\n            this._hasWarnedInvalidEditStart = true;\n            this._logService.warn(`Invalid semantic tokens edit detected (previousResultId: ${previousResultId}, resultId: ${resultId}) at edit #${editIndex}: The provided start offset ${editStart} is outside the previous data (length ${maxExpectedStart}).`);\n        }\n    }\n};\nSemanticTokensProviderStyling = __decorate([\n    __param(1, IThemeService),\n    __param(2, ILanguageService),\n    __param(3, ILogService)\n], SemanticTokensProviderStyling);\nexport { SemanticTokensProviderStyling };\nexport function toMultilineTokens2(tokens, styling, languageId) {\n    const srcData = tokens.data;\n    const tokenCount = (tokens.data.length / 5) | 0;\n    const tokensPerArea = Math.max(Math.ceil(tokenCount / 1024 /* SemanticColoringConstants.DesiredMaxAreas */), 400 /* SemanticColoringConstants.DesiredTokensPerArea */);\n    const result = [];\n    let tokenIndex = 0;\n    let lastLineNumber = 1;\n    let lastStartCharacter = 0;\n    while (tokenIndex < tokenCount) {\n        const tokenStartIndex = tokenIndex;\n        let tokenEndIndex = Math.min(tokenStartIndex + tokensPerArea, tokenCount);\n        // Keep tokens on the same line in the same area...\n        if (tokenEndIndex < tokenCount) {\n            let smallTokenEndIndex = tokenEndIndex;\n            while (smallTokenEndIndex - 1 > tokenStartIndex && srcData[5 * smallTokenEndIndex] === 0) {\n                smallTokenEndIndex--;\n            }\n            if (smallTokenEndIndex - 1 === tokenStartIndex) {\n                // there are so many tokens on this line that our area would be empty, we must now go right\n                let bigTokenEndIndex = tokenEndIndex;\n                while (bigTokenEndIndex + 1 < tokenCount && srcData[5 * bigTokenEndIndex] === 0) {\n                    bigTokenEndIndex++;\n                }\n                tokenEndIndex = bigTokenEndIndex;\n            }\n            else {\n                tokenEndIndex = smallTokenEndIndex;\n            }\n        }\n        let destData = new Uint32Array((tokenEndIndex - tokenStartIndex) * 4);\n        let destOffset = 0;\n        let areaLine = 0;\n        let prevLineNumber = 0;\n        let prevEndCharacter = 0;\n        while (tokenIndex < tokenEndIndex) {\n            const srcOffset = 5 * tokenIndex;\n            const deltaLine = srcData[srcOffset];\n            const deltaCharacter = srcData[srcOffset + 1];\n            // Casting both `lineNumber`, `startCharacter` and `endCharacter` here to uint32 using `|0`\n            // to validate below with the actual values that will be inserted in the Uint32Array result\n            const lineNumber = (lastLineNumber + deltaLine) | 0;\n            const startCharacter = (deltaLine === 0 ? (lastStartCharacter + deltaCharacter) | 0 : deltaCharacter);\n            const length = srcData[srcOffset + 2];\n            const endCharacter = (startCharacter + length) | 0;\n            const tokenTypeIndex = srcData[srcOffset + 3];\n            const tokenModifierSet = srcData[srcOffset + 4];\n            if (endCharacter <= startCharacter) {\n                // this token is invalid (most likely a negative length casted to uint32)\n                styling.warnInvalidLengthSemanticTokens(lineNumber, startCharacter + 1);\n            }\n            else if (prevLineNumber === lineNumber && prevEndCharacter > startCharacter) {\n                // this token overlaps with the previous token\n                styling.warnOverlappingSemanticTokens(lineNumber, startCharacter + 1);\n            }\n            else {\n                const metadata = styling.getMetadata(tokenTypeIndex, tokenModifierSet, languageId);\n                if (metadata !== 2147483647 /* SemanticTokensProviderStylingConstants.NO_STYLING */) {\n                    if (areaLine === 0) {\n                        areaLine = lineNumber;\n                    }\n                    destData[destOffset] = lineNumber - areaLine;\n                    destData[destOffset + 1] = startCharacter;\n                    destData[destOffset + 2] = endCharacter;\n                    destData[destOffset + 3] = metadata;\n                    destOffset += 4;\n                    prevLineNumber = lineNumber;\n                    prevEndCharacter = endCharacter;\n                }\n            }\n            lastLineNumber = lineNumber;\n            lastStartCharacter = startCharacter;\n            tokenIndex++;\n        }\n        if (destOffset !== destData.length) {\n            destData = destData.subarray(0, destOffset);\n        }\n        const tokens = SparseMultilineTokens.create(areaLine, destData);\n        result.push(tokens);\n    }\n    return result;\n}\nclass HashTableEntry {\n    constructor(tokenTypeIndex, tokenModifierSet, languageId, metadata) {\n        this.tokenTypeIndex = tokenTypeIndex;\n        this.tokenModifierSet = tokenModifierSet;\n        this.languageId = languageId;\n        this.metadata = metadata;\n        this.next = null;\n    }\n}\nclass HashTable {\n    constructor() {\n        this._elementsCount = 0;\n        this._currentLengthIndex = 0;\n        this._currentLength = HashTable._SIZES[this._currentLengthIndex];\n        this._growCount = Math.round(this._currentLengthIndex + 1 < HashTable._SIZES.length ? 2 / 3 * this._currentLength : 0);\n        this._elements = [];\n        HashTable._nullOutEntries(this._elements, this._currentLength);\n    }\n    static _nullOutEntries(entries, length) {\n        for (let i = 0; i < length; i++) {\n            entries[i] = null;\n        }\n    }\n    _hash2(n1, n2) {\n        return (((n1 << 5) - n1) + n2) | 0; // n1 * 31 + n2, keep as int32\n    }\n    _hashFunc(tokenTypeIndex, tokenModifierSet, languageId) {\n        return this._hash2(this._hash2(tokenTypeIndex, tokenModifierSet), languageId) % this._currentLength;\n    }\n    get(tokenTypeIndex, tokenModifierSet, languageId) {\n        const hash = this._hashFunc(tokenTypeIndex, tokenModifierSet, languageId);\n        let p = this._elements[hash];\n        while (p) {\n            if (p.tokenTypeIndex === tokenTypeIndex && p.tokenModifierSet === tokenModifierSet && p.languageId === languageId) {\n                return p;\n            }\n            p = p.next;\n        }\n        return null;\n    }\n    add(tokenTypeIndex, tokenModifierSet, languageId, metadata) {\n        this._elementsCount++;\n        if (this._growCount !== 0 && this._elementsCount >= this._growCount) {\n            // expand!\n            const oldElements = this._elements;\n            this._currentLengthIndex++;\n            this._currentLength = HashTable._SIZES[this._currentLengthIndex];\n            this._growCount = Math.round(this._currentLengthIndex + 1 < HashTable._SIZES.length ? 2 / 3 * this._currentLength : 0);\n            this._elements = [];\n            HashTable._nullOutEntries(this._elements, this._currentLength);\n            for (const first of oldElements) {\n                let p = first;\n                while (p) {\n                    const oldNext = p.next;\n                    p.next = null;\n                    this._add(p);\n                    p = oldNext;\n                }\n            }\n        }\n        this._add(new HashTableEntry(tokenTypeIndex, tokenModifierSet, languageId, metadata));\n    }\n    _add(element) {\n        const hash = this._hashFunc(element.tokenTypeIndex, element.tokenModifierSet, element.languageId);\n        element.next = this._elements[hash];\n        this._elements[hash] = element;\n    }\n}\nHashTable._SIZES = [3, 7, 13, 31, 61, 127, 251, 509, 1021, 2039, 4093, 8191, 16381, 32749, 65521, 131071, 262139, 524287, 1048573, 2097143];\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/services/semanticTokensStyling.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nexport const ISemanticTokensStylingService = createDecorator('semanticTokensStylingService');\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/services/semanticTokensStylingService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { ILanguageService } from '../languages/language.js';\nimport { IThemeService } from '../../../platform/theme/common/themeService.js';\nimport { ILogService } from '../../../platform/log/common/log.js';\nimport { SemanticTokensProviderStyling } from './semanticTokensProviderStyling.js';\nimport { ISemanticTokensStylingService } from './semanticTokensStyling.js';\nimport { registerSingleton } from '../../../platform/instantiation/common/extensions.js';\nlet SemanticTokensStylingService = class SemanticTokensStylingService extends Disposable {\n    constructor(_themeService, _logService, _languageService) {\n        super();\n        this._themeService = _themeService;\n        this._logService = _logService;\n        this._languageService = _languageService;\n        this._caches = new WeakMap();\n        this._register(this._themeService.onDidColorThemeChange(() => {\n            this._caches = new WeakMap();\n        }));\n    }\n    getStyling(provider) {\n        if (!this._caches.has(provider)) {\n            this._caches.set(provider, new SemanticTokensProviderStyling(provider.getLegend(), this._themeService, this._languageService, this._logService));\n        }\n        return this._caches.get(provider);\n    }\n};\nSemanticTokensStylingService = __decorate([\n    __param(0, IThemeService),\n    __param(1, ILogService),\n    __param(2, ILanguageService)\n], SemanticTokensStylingService);\nexport { SemanticTokensStylingService };\nregisterSingleton(ISemanticTokensStylingService, SemanticTokensStylingService, 1 /* InstantiationType.Delayed */);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/services/textResourceConfiguration.js",
    "content": "import { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nexport const ITextResourceConfigurationService = createDecorator('textResourceConfigurationService');\nexport const ITextResourcePropertiesService = createDecorator('textResourcePropertiesService');\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/services/treeViewsDnd.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class TreeViewsDnDService {\n    constructor() {\n        this._dragOperations = new Map();\n    }\n    removeDragOperationTransfer(uuid) {\n        if ((uuid && this._dragOperations.has(uuid))) {\n            const operation = this._dragOperations.get(uuid);\n            this._dragOperations.delete(uuid);\n            return operation;\n        }\n        return undefined;\n    }\n}\nexport class DraggedTreeItemsIdentifier {\n    constructor(identifier) {\n        this.identifier = identifier;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/services/treeViewsDndService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { registerSingleton } from '../../../platform/instantiation/common/extensions.js';\nimport { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nimport { TreeViewsDnDService } from './treeViewsDnd.js';\nexport const ITreeViewsDnDService = createDecorator('treeViewsDndService');\nregisterSingleton(ITreeViewsDnDService, TreeViewsDnDService, 1 /* InstantiationType.Delayed */);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/services/unicodeTextModelHighlighter.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Range } from '../core/range.js';\nimport { Searcher } from '../model/textModelSearch.js';\nimport * as strings from '../../../base/common/strings.js';\nimport { assertNever } from '../../../base/common/assert.js';\nimport { DEFAULT_WORD_REGEXP, getWordAtText } from '../core/wordHelper.js';\nexport class UnicodeTextModelHighlighter {\n    static computeUnicodeHighlights(model, options, range) {\n        const startLine = range ? range.startLineNumber : 1;\n        const endLine = range ? range.endLineNumber : model.getLineCount();\n        const codePointHighlighter = new CodePointHighlighter(options);\n        const candidates = codePointHighlighter.getCandidateCodePoints();\n        let regex;\n        if (candidates === 'allNonBasicAscii') {\n            regex = new RegExp('[^\\\\t\\\\n\\\\r\\\\x20-\\\\x7E]', 'g');\n        }\n        else {\n            regex = new RegExp(`${buildRegExpCharClassExpr(Array.from(candidates))}`, 'g');\n        }\n        const searcher = new Searcher(null, regex);\n        const ranges = [];\n        let hasMore = false;\n        let m;\n        let ambiguousCharacterCount = 0;\n        let invisibleCharacterCount = 0;\n        let nonBasicAsciiCharacterCount = 0;\n        forLoop: for (let lineNumber = startLine, lineCount = endLine; lineNumber <= lineCount; lineNumber++) {\n            const lineContent = model.getLineContent(lineNumber);\n            const lineLength = lineContent.length;\n            // Reset regex to search from the beginning\n            searcher.reset(0);\n            do {\n                m = searcher.next(lineContent);\n                if (m) {\n                    let startIndex = m.index;\n                    let endIndex = m.index + m[0].length;\n                    // Extend range to entire code point\n                    if (startIndex > 0) {\n                        const charCodeBefore = lineContent.charCodeAt(startIndex - 1);\n                        if (strings.isHighSurrogate(charCodeBefore)) {\n                            startIndex--;\n                        }\n                    }\n                    if (endIndex + 1 < lineLength) {\n                        const charCodeBefore = lineContent.charCodeAt(endIndex - 1);\n                        if (strings.isHighSurrogate(charCodeBefore)) {\n                            endIndex++;\n                        }\n                    }\n                    const str = lineContent.substring(startIndex, endIndex);\n                    let word = getWordAtText(startIndex + 1, DEFAULT_WORD_REGEXP, lineContent, 0);\n                    if (word && word.endColumn <= startIndex + 1) {\n                        // The word does not include the problematic character, ignore the word\n                        word = null;\n                    }\n                    const highlightReason = codePointHighlighter.shouldHighlightNonBasicASCII(str, word ? word.word : null);\n                    if (highlightReason !== 0 /* SimpleHighlightReason.None */) {\n                        if (highlightReason === 3 /* SimpleHighlightReason.Ambiguous */) {\n                            ambiguousCharacterCount++;\n                        }\n                        else if (highlightReason === 2 /* SimpleHighlightReason.Invisible */) {\n                            invisibleCharacterCount++;\n                        }\n                        else if (highlightReason === 1 /* SimpleHighlightReason.NonBasicASCII */) {\n                            nonBasicAsciiCharacterCount++;\n                        }\n                        else {\n                            assertNever(highlightReason);\n                        }\n                        const MAX_RESULT_LENGTH = 1000;\n                        if (ranges.length >= MAX_RESULT_LENGTH) {\n                            hasMore = true;\n                            break forLoop;\n                        }\n                        ranges.push(new Range(lineNumber, startIndex + 1, lineNumber, endIndex + 1));\n                    }\n                }\n            } while (m);\n        }\n        return {\n            ranges,\n            hasMore,\n            ambiguousCharacterCount,\n            invisibleCharacterCount,\n            nonBasicAsciiCharacterCount\n        };\n    }\n    static computeUnicodeHighlightReason(char, options) {\n        const codePointHighlighter = new CodePointHighlighter(options);\n        const reason = codePointHighlighter.shouldHighlightNonBasicASCII(char, null);\n        switch (reason) {\n            case 0 /* SimpleHighlightReason.None */:\n                return null;\n            case 2 /* SimpleHighlightReason.Invisible */:\n                return { kind: 1 /* UnicodeHighlighterReasonKind.Invisible */ };\n            case 3 /* SimpleHighlightReason.Ambiguous */: {\n                const codePoint = char.codePointAt(0);\n                const primaryConfusable = codePointHighlighter.ambiguousCharacters.getPrimaryConfusable(codePoint);\n                const notAmbiguousInLocales = strings.AmbiguousCharacters.getLocales().filter((l) => !strings.AmbiguousCharacters.getInstance(new Set([...options.allowedLocales, l])).isAmbiguous(codePoint));\n                return { kind: 0 /* UnicodeHighlighterReasonKind.Ambiguous */, confusableWith: String.fromCodePoint(primaryConfusable), notAmbiguousInLocales };\n            }\n            case 1 /* SimpleHighlightReason.NonBasicASCII */:\n                return { kind: 2 /* UnicodeHighlighterReasonKind.NonBasicAscii */ };\n        }\n    }\n}\nfunction buildRegExpCharClassExpr(codePoints, flags) {\n    const src = `[${strings.escapeRegExpCharacters(codePoints.map((i) => String.fromCodePoint(i)).join(''))}]`;\n    return src;\n}\nclass CodePointHighlighter {\n    constructor(options) {\n        this.options = options;\n        this.allowedCodePoints = new Set(options.allowedCodePoints);\n        this.ambiguousCharacters = strings.AmbiguousCharacters.getInstance(new Set(options.allowedLocales));\n    }\n    getCandidateCodePoints() {\n        if (this.options.nonBasicASCII) {\n            return 'allNonBasicAscii';\n        }\n        const set = new Set();\n        if (this.options.invisibleCharacters) {\n            for (const cp of strings.InvisibleCharacters.codePoints) {\n                if (!isAllowedInvisibleCharacter(String.fromCodePoint(cp))) {\n                    set.add(cp);\n                }\n            }\n        }\n        if (this.options.ambiguousCharacters) {\n            for (const cp of this.ambiguousCharacters.getConfusableCodePoints()) {\n                set.add(cp);\n            }\n        }\n        for (const cp of this.allowedCodePoints) {\n            set.delete(cp);\n        }\n        return set;\n    }\n    shouldHighlightNonBasicASCII(character, wordContext) {\n        const codePoint = character.codePointAt(0);\n        if (this.allowedCodePoints.has(codePoint)) {\n            return 0 /* SimpleHighlightReason.None */;\n        }\n        if (this.options.nonBasicASCII) {\n            return 1 /* SimpleHighlightReason.NonBasicASCII */;\n        }\n        let hasBasicASCIICharacters = false;\n        let hasNonConfusableNonBasicAsciiCharacter = false;\n        if (wordContext) {\n            for (const char of wordContext) {\n                const codePoint = char.codePointAt(0);\n                const isBasicASCII = strings.isBasicASCII(char);\n                hasBasicASCIICharacters = hasBasicASCIICharacters || isBasicASCII;\n                if (!isBasicASCII &&\n                    !this.ambiguousCharacters.isAmbiguous(codePoint) &&\n                    !strings.InvisibleCharacters.isInvisibleCharacter(codePoint)) {\n                    hasNonConfusableNonBasicAsciiCharacter = true;\n                }\n            }\n        }\n        if (\n        /* Don't allow mixing weird looking characters with ASCII */ !hasBasicASCIICharacters &&\n            /* Is there an obviously weird looking character? */ hasNonConfusableNonBasicAsciiCharacter) {\n            return 0 /* SimpleHighlightReason.None */;\n        }\n        if (this.options.invisibleCharacters) {\n            // TODO check for emojis\n            if (!isAllowedInvisibleCharacter(character) && strings.InvisibleCharacters.isInvisibleCharacter(codePoint)) {\n                return 2 /* SimpleHighlightReason.Invisible */;\n            }\n        }\n        if (this.options.ambiguousCharacters) {\n            if (this.ambiguousCharacters.isAmbiguous(codePoint)) {\n                return 3 /* SimpleHighlightReason.Ambiguous */;\n            }\n        }\n        return 0 /* SimpleHighlightReason.None */;\n    }\n}\nfunction isAllowedInvisibleCharacter(character) {\n    return character === ' ' || character === '\\n' || character === '\\t';\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/standalone/standaloneEnums.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n// THIS IS A GENERATED FILE. DO NOT EDIT DIRECTLY.\nexport var AccessibilitySupport;\n(function (AccessibilitySupport) {\n    /**\n     * This should be the browser case where it is not known if a screen reader is attached or no.\n     */\n    AccessibilitySupport[AccessibilitySupport[\"Unknown\"] = 0] = \"Unknown\";\n    AccessibilitySupport[AccessibilitySupport[\"Disabled\"] = 1] = \"Disabled\";\n    AccessibilitySupport[AccessibilitySupport[\"Enabled\"] = 2] = \"Enabled\";\n})(AccessibilitySupport || (AccessibilitySupport = {}));\nexport var CodeActionTriggerType;\n(function (CodeActionTriggerType) {\n    CodeActionTriggerType[CodeActionTriggerType[\"Invoke\"] = 1] = \"Invoke\";\n    CodeActionTriggerType[CodeActionTriggerType[\"Auto\"] = 2] = \"Auto\";\n})(CodeActionTriggerType || (CodeActionTriggerType = {}));\nexport var CompletionItemInsertTextRule;\n(function (CompletionItemInsertTextRule) {\n    CompletionItemInsertTextRule[CompletionItemInsertTextRule[\"None\"] = 0] = \"None\";\n    /**\n     * Adjust whitespace/indentation of multiline insert texts to\n     * match the current line indentation.\n     */\n    CompletionItemInsertTextRule[CompletionItemInsertTextRule[\"KeepWhitespace\"] = 1] = \"KeepWhitespace\";\n    /**\n     * `insertText` is a snippet.\n     */\n    CompletionItemInsertTextRule[CompletionItemInsertTextRule[\"InsertAsSnippet\"] = 4] = \"InsertAsSnippet\";\n})(CompletionItemInsertTextRule || (CompletionItemInsertTextRule = {}));\nexport var CompletionItemKind;\n(function (CompletionItemKind) {\n    CompletionItemKind[CompletionItemKind[\"Method\"] = 0] = \"Method\";\n    CompletionItemKind[CompletionItemKind[\"Function\"] = 1] = \"Function\";\n    CompletionItemKind[CompletionItemKind[\"Constructor\"] = 2] = \"Constructor\";\n    CompletionItemKind[CompletionItemKind[\"Field\"] = 3] = \"Field\";\n    CompletionItemKind[CompletionItemKind[\"Variable\"] = 4] = \"Variable\";\n    CompletionItemKind[CompletionItemKind[\"Class\"] = 5] = \"Class\";\n    CompletionItemKind[CompletionItemKind[\"Struct\"] = 6] = \"Struct\";\n    CompletionItemKind[CompletionItemKind[\"Interface\"] = 7] = \"Interface\";\n    CompletionItemKind[CompletionItemKind[\"Module\"] = 8] = \"Module\";\n    CompletionItemKind[CompletionItemKind[\"Property\"] = 9] = \"Property\";\n    CompletionItemKind[CompletionItemKind[\"Event\"] = 10] = \"Event\";\n    CompletionItemKind[CompletionItemKind[\"Operator\"] = 11] = \"Operator\";\n    CompletionItemKind[CompletionItemKind[\"Unit\"] = 12] = \"Unit\";\n    CompletionItemKind[CompletionItemKind[\"Value\"] = 13] = \"Value\";\n    CompletionItemKind[CompletionItemKind[\"Constant\"] = 14] = \"Constant\";\n    CompletionItemKind[CompletionItemKind[\"Enum\"] = 15] = \"Enum\";\n    CompletionItemKind[CompletionItemKind[\"EnumMember\"] = 16] = \"EnumMember\";\n    CompletionItemKind[CompletionItemKind[\"Keyword\"] = 17] = \"Keyword\";\n    CompletionItemKind[CompletionItemKind[\"Text\"] = 18] = \"Text\";\n    CompletionItemKind[CompletionItemKind[\"Color\"] = 19] = \"Color\";\n    CompletionItemKind[CompletionItemKind[\"File\"] = 20] = \"File\";\n    CompletionItemKind[CompletionItemKind[\"Reference\"] = 21] = \"Reference\";\n    CompletionItemKind[CompletionItemKind[\"Customcolor\"] = 22] = \"Customcolor\";\n    CompletionItemKind[CompletionItemKind[\"Folder\"] = 23] = \"Folder\";\n    CompletionItemKind[CompletionItemKind[\"TypeParameter\"] = 24] = \"TypeParameter\";\n    CompletionItemKind[CompletionItemKind[\"User\"] = 25] = \"User\";\n    CompletionItemKind[CompletionItemKind[\"Issue\"] = 26] = \"Issue\";\n    CompletionItemKind[CompletionItemKind[\"Snippet\"] = 27] = \"Snippet\";\n})(CompletionItemKind || (CompletionItemKind = {}));\nexport var CompletionItemTag;\n(function (CompletionItemTag) {\n    CompletionItemTag[CompletionItemTag[\"Deprecated\"] = 1] = \"Deprecated\";\n})(CompletionItemTag || (CompletionItemTag = {}));\n/**\n * How a suggest provider was triggered.\n */\nexport var CompletionTriggerKind;\n(function (CompletionTriggerKind) {\n    CompletionTriggerKind[CompletionTriggerKind[\"Invoke\"] = 0] = \"Invoke\";\n    CompletionTriggerKind[CompletionTriggerKind[\"TriggerCharacter\"] = 1] = \"TriggerCharacter\";\n    CompletionTriggerKind[CompletionTriggerKind[\"TriggerForIncompleteCompletions\"] = 2] = \"TriggerForIncompleteCompletions\";\n})(CompletionTriggerKind || (CompletionTriggerKind = {}));\n/**\n * A positioning preference for rendering content widgets.\n */\nexport var ContentWidgetPositionPreference;\n(function (ContentWidgetPositionPreference) {\n    /**\n     * Place the content widget exactly at a position\n     */\n    ContentWidgetPositionPreference[ContentWidgetPositionPreference[\"EXACT\"] = 0] = \"EXACT\";\n    /**\n     * Place the content widget above a position\n     */\n    ContentWidgetPositionPreference[ContentWidgetPositionPreference[\"ABOVE\"] = 1] = \"ABOVE\";\n    /**\n     * Place the content widget below a position\n     */\n    ContentWidgetPositionPreference[ContentWidgetPositionPreference[\"BELOW\"] = 2] = \"BELOW\";\n})(ContentWidgetPositionPreference || (ContentWidgetPositionPreference = {}));\n/**\n * Describes the reason the cursor has changed its position.\n */\nexport var CursorChangeReason;\n(function (CursorChangeReason) {\n    /**\n     * Unknown or not set.\n     */\n    CursorChangeReason[CursorChangeReason[\"NotSet\"] = 0] = \"NotSet\";\n    /**\n     * A `model.setValue()` was called.\n     */\n    CursorChangeReason[CursorChangeReason[\"ContentFlush\"] = 1] = \"ContentFlush\";\n    /**\n     * The `model` has been changed outside of this cursor and the cursor recovers its position from associated markers.\n     */\n    CursorChangeReason[CursorChangeReason[\"RecoverFromMarkers\"] = 2] = \"RecoverFromMarkers\";\n    /**\n     * There was an explicit user gesture.\n     */\n    CursorChangeReason[CursorChangeReason[\"Explicit\"] = 3] = \"Explicit\";\n    /**\n     * There was a Paste.\n     */\n    CursorChangeReason[CursorChangeReason[\"Paste\"] = 4] = \"Paste\";\n    /**\n     * There was an Undo.\n     */\n    CursorChangeReason[CursorChangeReason[\"Undo\"] = 5] = \"Undo\";\n    /**\n     * There was a Redo.\n     */\n    CursorChangeReason[CursorChangeReason[\"Redo\"] = 6] = \"Redo\";\n})(CursorChangeReason || (CursorChangeReason = {}));\n/**\n * The default end of line to use when instantiating models.\n */\nexport var DefaultEndOfLine;\n(function (DefaultEndOfLine) {\n    /**\n     * Use line feed (\\n) as the end of line character.\n     */\n    DefaultEndOfLine[DefaultEndOfLine[\"LF\"] = 1] = \"LF\";\n    /**\n     * Use carriage return and line feed (\\r\\n) as the end of line character.\n     */\n    DefaultEndOfLine[DefaultEndOfLine[\"CRLF\"] = 2] = \"CRLF\";\n})(DefaultEndOfLine || (DefaultEndOfLine = {}));\n/**\n * A document highlight kind.\n */\nexport var DocumentHighlightKind;\n(function (DocumentHighlightKind) {\n    /**\n     * A textual occurrence.\n     */\n    DocumentHighlightKind[DocumentHighlightKind[\"Text\"] = 0] = \"Text\";\n    /**\n     * Read-access of a symbol, like reading a variable.\n     */\n    DocumentHighlightKind[DocumentHighlightKind[\"Read\"] = 1] = \"Read\";\n    /**\n     * Write-access of a symbol, like writing to a variable.\n     */\n    DocumentHighlightKind[DocumentHighlightKind[\"Write\"] = 2] = \"Write\";\n})(DocumentHighlightKind || (DocumentHighlightKind = {}));\n/**\n * Configuration options for auto indentation in the editor\n */\nexport var EditorAutoIndentStrategy;\n(function (EditorAutoIndentStrategy) {\n    EditorAutoIndentStrategy[EditorAutoIndentStrategy[\"None\"] = 0] = \"None\";\n    EditorAutoIndentStrategy[EditorAutoIndentStrategy[\"Keep\"] = 1] = \"Keep\";\n    EditorAutoIndentStrategy[EditorAutoIndentStrategy[\"Brackets\"] = 2] = \"Brackets\";\n    EditorAutoIndentStrategy[EditorAutoIndentStrategy[\"Advanced\"] = 3] = \"Advanced\";\n    EditorAutoIndentStrategy[EditorAutoIndentStrategy[\"Full\"] = 4] = \"Full\";\n})(EditorAutoIndentStrategy || (EditorAutoIndentStrategy = {}));\nexport var EditorOption;\n(function (EditorOption) {\n    EditorOption[EditorOption[\"acceptSuggestionOnCommitCharacter\"] = 0] = \"acceptSuggestionOnCommitCharacter\";\n    EditorOption[EditorOption[\"acceptSuggestionOnEnter\"] = 1] = \"acceptSuggestionOnEnter\";\n    EditorOption[EditorOption[\"accessibilitySupport\"] = 2] = \"accessibilitySupport\";\n    EditorOption[EditorOption[\"accessibilityPageSize\"] = 3] = \"accessibilityPageSize\";\n    EditorOption[EditorOption[\"ariaLabel\"] = 4] = \"ariaLabel\";\n    EditorOption[EditorOption[\"ariaRequired\"] = 5] = \"ariaRequired\";\n    EditorOption[EditorOption[\"autoClosingBrackets\"] = 6] = \"autoClosingBrackets\";\n    EditorOption[EditorOption[\"autoClosingComments\"] = 7] = \"autoClosingComments\";\n    EditorOption[EditorOption[\"screenReaderAnnounceInlineSuggestion\"] = 8] = \"screenReaderAnnounceInlineSuggestion\";\n    EditorOption[EditorOption[\"autoClosingDelete\"] = 9] = \"autoClosingDelete\";\n    EditorOption[EditorOption[\"autoClosingOvertype\"] = 10] = \"autoClosingOvertype\";\n    EditorOption[EditorOption[\"autoClosingQuotes\"] = 11] = \"autoClosingQuotes\";\n    EditorOption[EditorOption[\"autoIndent\"] = 12] = \"autoIndent\";\n    EditorOption[EditorOption[\"automaticLayout\"] = 13] = \"automaticLayout\";\n    EditorOption[EditorOption[\"autoSurround\"] = 14] = \"autoSurround\";\n    EditorOption[EditorOption[\"bracketPairColorization\"] = 15] = \"bracketPairColorization\";\n    EditorOption[EditorOption[\"guides\"] = 16] = \"guides\";\n    EditorOption[EditorOption[\"codeLens\"] = 17] = \"codeLens\";\n    EditorOption[EditorOption[\"codeLensFontFamily\"] = 18] = \"codeLensFontFamily\";\n    EditorOption[EditorOption[\"codeLensFontSize\"] = 19] = \"codeLensFontSize\";\n    EditorOption[EditorOption[\"colorDecorators\"] = 20] = \"colorDecorators\";\n    EditorOption[EditorOption[\"colorDecoratorsLimit\"] = 21] = \"colorDecoratorsLimit\";\n    EditorOption[EditorOption[\"columnSelection\"] = 22] = \"columnSelection\";\n    EditorOption[EditorOption[\"comments\"] = 23] = \"comments\";\n    EditorOption[EditorOption[\"contextmenu\"] = 24] = \"contextmenu\";\n    EditorOption[EditorOption[\"copyWithSyntaxHighlighting\"] = 25] = \"copyWithSyntaxHighlighting\";\n    EditorOption[EditorOption[\"cursorBlinking\"] = 26] = \"cursorBlinking\";\n    EditorOption[EditorOption[\"cursorSmoothCaretAnimation\"] = 27] = \"cursorSmoothCaretAnimation\";\n    EditorOption[EditorOption[\"cursorStyle\"] = 28] = \"cursorStyle\";\n    EditorOption[EditorOption[\"cursorSurroundingLines\"] = 29] = \"cursorSurroundingLines\";\n    EditorOption[EditorOption[\"cursorSurroundingLinesStyle\"] = 30] = \"cursorSurroundingLinesStyle\";\n    EditorOption[EditorOption[\"cursorWidth\"] = 31] = \"cursorWidth\";\n    EditorOption[EditorOption[\"disableLayerHinting\"] = 32] = \"disableLayerHinting\";\n    EditorOption[EditorOption[\"disableMonospaceOptimizations\"] = 33] = \"disableMonospaceOptimizations\";\n    EditorOption[EditorOption[\"domReadOnly\"] = 34] = \"domReadOnly\";\n    EditorOption[EditorOption[\"dragAndDrop\"] = 35] = \"dragAndDrop\";\n    EditorOption[EditorOption[\"dropIntoEditor\"] = 36] = \"dropIntoEditor\";\n    EditorOption[EditorOption[\"emptySelectionClipboard\"] = 37] = \"emptySelectionClipboard\";\n    EditorOption[EditorOption[\"experimentalWhitespaceRendering\"] = 38] = \"experimentalWhitespaceRendering\";\n    EditorOption[EditorOption[\"extraEditorClassName\"] = 39] = \"extraEditorClassName\";\n    EditorOption[EditorOption[\"fastScrollSensitivity\"] = 40] = \"fastScrollSensitivity\";\n    EditorOption[EditorOption[\"find\"] = 41] = \"find\";\n    EditorOption[EditorOption[\"fixedOverflowWidgets\"] = 42] = \"fixedOverflowWidgets\";\n    EditorOption[EditorOption[\"folding\"] = 43] = \"folding\";\n    EditorOption[EditorOption[\"foldingStrategy\"] = 44] = \"foldingStrategy\";\n    EditorOption[EditorOption[\"foldingHighlight\"] = 45] = \"foldingHighlight\";\n    EditorOption[EditorOption[\"foldingImportsByDefault\"] = 46] = \"foldingImportsByDefault\";\n    EditorOption[EditorOption[\"foldingMaximumRegions\"] = 47] = \"foldingMaximumRegions\";\n    EditorOption[EditorOption[\"unfoldOnClickAfterEndOfLine\"] = 48] = \"unfoldOnClickAfterEndOfLine\";\n    EditorOption[EditorOption[\"fontFamily\"] = 49] = \"fontFamily\";\n    EditorOption[EditorOption[\"fontInfo\"] = 50] = \"fontInfo\";\n    EditorOption[EditorOption[\"fontLigatures\"] = 51] = \"fontLigatures\";\n    EditorOption[EditorOption[\"fontSize\"] = 52] = \"fontSize\";\n    EditorOption[EditorOption[\"fontWeight\"] = 53] = \"fontWeight\";\n    EditorOption[EditorOption[\"fontVariations\"] = 54] = \"fontVariations\";\n    EditorOption[EditorOption[\"formatOnPaste\"] = 55] = \"formatOnPaste\";\n    EditorOption[EditorOption[\"formatOnType\"] = 56] = \"formatOnType\";\n    EditorOption[EditorOption[\"glyphMargin\"] = 57] = \"glyphMargin\";\n    EditorOption[EditorOption[\"gotoLocation\"] = 58] = \"gotoLocation\";\n    EditorOption[EditorOption[\"hideCursorInOverviewRuler\"] = 59] = \"hideCursorInOverviewRuler\";\n    EditorOption[EditorOption[\"hover\"] = 60] = \"hover\";\n    EditorOption[EditorOption[\"inDiffEditor\"] = 61] = \"inDiffEditor\";\n    EditorOption[EditorOption[\"inlineSuggest\"] = 62] = \"inlineSuggest\";\n    EditorOption[EditorOption[\"inlineEdit\"] = 63] = \"inlineEdit\";\n    EditorOption[EditorOption[\"letterSpacing\"] = 64] = \"letterSpacing\";\n    EditorOption[EditorOption[\"lightbulb\"] = 65] = \"lightbulb\";\n    EditorOption[EditorOption[\"lineDecorationsWidth\"] = 66] = \"lineDecorationsWidth\";\n    EditorOption[EditorOption[\"lineHeight\"] = 67] = \"lineHeight\";\n    EditorOption[EditorOption[\"lineNumbers\"] = 68] = \"lineNumbers\";\n    EditorOption[EditorOption[\"lineNumbersMinChars\"] = 69] = \"lineNumbersMinChars\";\n    EditorOption[EditorOption[\"linkedEditing\"] = 70] = \"linkedEditing\";\n    EditorOption[EditorOption[\"links\"] = 71] = \"links\";\n    EditorOption[EditorOption[\"matchBrackets\"] = 72] = \"matchBrackets\";\n    EditorOption[EditorOption[\"minimap\"] = 73] = \"minimap\";\n    EditorOption[EditorOption[\"mouseStyle\"] = 74] = \"mouseStyle\";\n    EditorOption[EditorOption[\"mouseWheelScrollSensitivity\"] = 75] = \"mouseWheelScrollSensitivity\";\n    EditorOption[EditorOption[\"mouseWheelZoom\"] = 76] = \"mouseWheelZoom\";\n    EditorOption[EditorOption[\"multiCursorMergeOverlapping\"] = 77] = \"multiCursorMergeOverlapping\";\n    EditorOption[EditorOption[\"multiCursorModifier\"] = 78] = \"multiCursorModifier\";\n    EditorOption[EditorOption[\"multiCursorPaste\"] = 79] = \"multiCursorPaste\";\n    EditorOption[EditorOption[\"multiCursorLimit\"] = 80] = \"multiCursorLimit\";\n    EditorOption[EditorOption[\"occurrencesHighlight\"] = 81] = \"occurrencesHighlight\";\n    EditorOption[EditorOption[\"overviewRulerBorder\"] = 82] = \"overviewRulerBorder\";\n    EditorOption[EditorOption[\"overviewRulerLanes\"] = 83] = \"overviewRulerLanes\";\n    EditorOption[EditorOption[\"padding\"] = 84] = \"padding\";\n    EditorOption[EditorOption[\"pasteAs\"] = 85] = \"pasteAs\";\n    EditorOption[EditorOption[\"parameterHints\"] = 86] = \"parameterHints\";\n    EditorOption[EditorOption[\"peekWidgetDefaultFocus\"] = 87] = \"peekWidgetDefaultFocus\";\n    EditorOption[EditorOption[\"definitionLinkOpensInPeek\"] = 88] = \"definitionLinkOpensInPeek\";\n    EditorOption[EditorOption[\"quickSuggestions\"] = 89] = \"quickSuggestions\";\n    EditorOption[EditorOption[\"quickSuggestionsDelay\"] = 90] = \"quickSuggestionsDelay\";\n    EditorOption[EditorOption[\"readOnly\"] = 91] = \"readOnly\";\n    EditorOption[EditorOption[\"readOnlyMessage\"] = 92] = \"readOnlyMessage\";\n    EditorOption[EditorOption[\"renameOnType\"] = 93] = \"renameOnType\";\n    EditorOption[EditorOption[\"renderControlCharacters\"] = 94] = \"renderControlCharacters\";\n    EditorOption[EditorOption[\"renderFinalNewline\"] = 95] = \"renderFinalNewline\";\n    EditorOption[EditorOption[\"renderLineHighlight\"] = 96] = \"renderLineHighlight\";\n    EditorOption[EditorOption[\"renderLineHighlightOnlyWhenFocus\"] = 97] = \"renderLineHighlightOnlyWhenFocus\";\n    EditorOption[EditorOption[\"renderValidationDecorations\"] = 98] = \"renderValidationDecorations\";\n    EditorOption[EditorOption[\"renderWhitespace\"] = 99] = \"renderWhitespace\";\n    EditorOption[EditorOption[\"revealHorizontalRightPadding\"] = 100] = \"revealHorizontalRightPadding\";\n    EditorOption[EditorOption[\"roundedSelection\"] = 101] = \"roundedSelection\";\n    EditorOption[EditorOption[\"rulers\"] = 102] = \"rulers\";\n    EditorOption[EditorOption[\"scrollbar\"] = 103] = \"scrollbar\";\n    EditorOption[EditorOption[\"scrollBeyondLastColumn\"] = 104] = \"scrollBeyondLastColumn\";\n    EditorOption[EditorOption[\"scrollBeyondLastLine\"] = 105] = \"scrollBeyondLastLine\";\n    EditorOption[EditorOption[\"scrollPredominantAxis\"] = 106] = \"scrollPredominantAxis\";\n    EditorOption[EditorOption[\"selectionClipboard\"] = 107] = \"selectionClipboard\";\n    EditorOption[EditorOption[\"selectionHighlight\"] = 108] = \"selectionHighlight\";\n    EditorOption[EditorOption[\"selectOnLineNumbers\"] = 109] = \"selectOnLineNumbers\";\n    EditorOption[EditorOption[\"showFoldingControls\"] = 110] = \"showFoldingControls\";\n    EditorOption[EditorOption[\"showUnused\"] = 111] = \"showUnused\";\n    EditorOption[EditorOption[\"snippetSuggestions\"] = 112] = \"snippetSuggestions\";\n    EditorOption[EditorOption[\"smartSelect\"] = 113] = \"smartSelect\";\n    EditorOption[EditorOption[\"smoothScrolling\"] = 114] = \"smoothScrolling\";\n    EditorOption[EditorOption[\"stickyScroll\"] = 115] = \"stickyScroll\";\n    EditorOption[EditorOption[\"stickyTabStops\"] = 116] = \"stickyTabStops\";\n    EditorOption[EditorOption[\"stopRenderingLineAfter\"] = 117] = \"stopRenderingLineAfter\";\n    EditorOption[EditorOption[\"suggest\"] = 118] = \"suggest\";\n    EditorOption[EditorOption[\"suggestFontSize\"] = 119] = \"suggestFontSize\";\n    EditorOption[EditorOption[\"suggestLineHeight\"] = 120] = \"suggestLineHeight\";\n    EditorOption[EditorOption[\"suggestOnTriggerCharacters\"] = 121] = \"suggestOnTriggerCharacters\";\n    EditorOption[EditorOption[\"suggestSelection\"] = 122] = \"suggestSelection\";\n    EditorOption[EditorOption[\"tabCompletion\"] = 123] = \"tabCompletion\";\n    EditorOption[EditorOption[\"tabIndex\"] = 124] = \"tabIndex\";\n    EditorOption[EditorOption[\"unicodeHighlighting\"] = 125] = \"unicodeHighlighting\";\n    EditorOption[EditorOption[\"unusualLineTerminators\"] = 126] = \"unusualLineTerminators\";\n    EditorOption[EditorOption[\"useShadowDOM\"] = 127] = \"useShadowDOM\";\n    EditorOption[EditorOption[\"useTabStops\"] = 128] = \"useTabStops\";\n    EditorOption[EditorOption[\"wordBreak\"] = 129] = \"wordBreak\";\n    EditorOption[EditorOption[\"wordSegmenterLocales\"] = 130] = \"wordSegmenterLocales\";\n    EditorOption[EditorOption[\"wordSeparators\"] = 131] = \"wordSeparators\";\n    EditorOption[EditorOption[\"wordWrap\"] = 132] = \"wordWrap\";\n    EditorOption[EditorOption[\"wordWrapBreakAfterCharacters\"] = 133] = \"wordWrapBreakAfterCharacters\";\n    EditorOption[EditorOption[\"wordWrapBreakBeforeCharacters\"] = 134] = \"wordWrapBreakBeforeCharacters\";\n    EditorOption[EditorOption[\"wordWrapColumn\"] = 135] = \"wordWrapColumn\";\n    EditorOption[EditorOption[\"wordWrapOverride1\"] = 136] = \"wordWrapOverride1\";\n    EditorOption[EditorOption[\"wordWrapOverride2\"] = 137] = \"wordWrapOverride2\";\n    EditorOption[EditorOption[\"wrappingIndent\"] = 138] = \"wrappingIndent\";\n    EditorOption[EditorOption[\"wrappingStrategy\"] = 139] = \"wrappingStrategy\";\n    EditorOption[EditorOption[\"showDeprecated\"] = 140] = \"showDeprecated\";\n    EditorOption[EditorOption[\"inlayHints\"] = 141] = \"inlayHints\";\n    EditorOption[EditorOption[\"editorClassName\"] = 142] = \"editorClassName\";\n    EditorOption[EditorOption[\"pixelRatio\"] = 143] = \"pixelRatio\";\n    EditorOption[EditorOption[\"tabFocusMode\"] = 144] = \"tabFocusMode\";\n    EditorOption[EditorOption[\"layoutInfo\"] = 145] = \"layoutInfo\";\n    EditorOption[EditorOption[\"wrappingInfo\"] = 146] = \"wrappingInfo\";\n    EditorOption[EditorOption[\"defaultColorDecorators\"] = 147] = \"defaultColorDecorators\";\n    EditorOption[EditorOption[\"colorDecoratorsActivatedOn\"] = 148] = \"colorDecoratorsActivatedOn\";\n    EditorOption[EditorOption[\"inlineCompletionsAccessibilityVerbose\"] = 149] = \"inlineCompletionsAccessibilityVerbose\";\n})(EditorOption || (EditorOption = {}));\n/**\n * End of line character preference.\n */\nexport var EndOfLinePreference;\n(function (EndOfLinePreference) {\n    /**\n     * Use the end of line character identified in the text buffer.\n     */\n    EndOfLinePreference[EndOfLinePreference[\"TextDefined\"] = 0] = \"TextDefined\";\n    /**\n     * Use line feed (\\n) as the end of line character.\n     */\n    EndOfLinePreference[EndOfLinePreference[\"LF\"] = 1] = \"LF\";\n    /**\n     * Use carriage return and line feed (\\r\\n) as the end of line character.\n     */\n    EndOfLinePreference[EndOfLinePreference[\"CRLF\"] = 2] = \"CRLF\";\n})(EndOfLinePreference || (EndOfLinePreference = {}));\n/**\n * End of line character preference.\n */\nexport var EndOfLineSequence;\n(function (EndOfLineSequence) {\n    /**\n     * Use line feed (\\n) as the end of line character.\n     */\n    EndOfLineSequence[EndOfLineSequence[\"LF\"] = 0] = \"LF\";\n    /**\n     * Use carriage return and line feed (\\r\\n) as the end of line character.\n     */\n    EndOfLineSequence[EndOfLineSequence[\"CRLF\"] = 1] = \"CRLF\";\n})(EndOfLineSequence || (EndOfLineSequence = {}));\n/**\n * Vertical Lane in the glyph margin of the editor.\n */\nexport var GlyphMarginLane;\n(function (GlyphMarginLane) {\n    GlyphMarginLane[GlyphMarginLane[\"Left\"] = 1] = \"Left\";\n    GlyphMarginLane[GlyphMarginLane[\"Center\"] = 2] = \"Center\";\n    GlyphMarginLane[GlyphMarginLane[\"Right\"] = 3] = \"Right\";\n})(GlyphMarginLane || (GlyphMarginLane = {}));\nexport var HoverVerbosityAction;\n(function (HoverVerbosityAction) {\n    /**\n     * Increase the verbosity of the hover\n     */\n    HoverVerbosityAction[HoverVerbosityAction[\"Increase\"] = 0] = \"Increase\";\n    /**\n     * Decrease the verbosity of the hover\n     */\n    HoverVerbosityAction[HoverVerbosityAction[\"Decrease\"] = 1] = \"Decrease\";\n})(HoverVerbosityAction || (HoverVerbosityAction = {}));\n/**\n * Describes what to do with the indentation when pressing Enter.\n */\nexport var IndentAction;\n(function (IndentAction) {\n    /**\n     * Insert new line and copy the previous line's indentation.\n     */\n    IndentAction[IndentAction[\"None\"] = 0] = \"None\";\n    /**\n     * Insert new line and indent once (relative to the previous line's indentation).\n     */\n    IndentAction[IndentAction[\"Indent\"] = 1] = \"Indent\";\n    /**\n     * Insert two new lines:\n     *  - the first one indented which will hold the cursor\n     *  - the second one at the same indentation level\n     */\n    IndentAction[IndentAction[\"IndentOutdent\"] = 2] = \"IndentOutdent\";\n    /**\n     * Insert new line and outdent once (relative to the previous line's indentation).\n     */\n    IndentAction[IndentAction[\"Outdent\"] = 3] = \"Outdent\";\n})(IndentAction || (IndentAction = {}));\nexport var InjectedTextCursorStops;\n(function (InjectedTextCursorStops) {\n    InjectedTextCursorStops[InjectedTextCursorStops[\"Both\"] = 0] = \"Both\";\n    InjectedTextCursorStops[InjectedTextCursorStops[\"Right\"] = 1] = \"Right\";\n    InjectedTextCursorStops[InjectedTextCursorStops[\"Left\"] = 2] = \"Left\";\n    InjectedTextCursorStops[InjectedTextCursorStops[\"None\"] = 3] = \"None\";\n})(InjectedTextCursorStops || (InjectedTextCursorStops = {}));\nexport var InlayHintKind;\n(function (InlayHintKind) {\n    InlayHintKind[InlayHintKind[\"Type\"] = 1] = \"Type\";\n    InlayHintKind[InlayHintKind[\"Parameter\"] = 2] = \"Parameter\";\n})(InlayHintKind || (InlayHintKind = {}));\n/**\n * How an {@link InlineCompletionsProvider inline completion provider} was triggered.\n */\nexport var InlineCompletionTriggerKind;\n(function (InlineCompletionTriggerKind) {\n    /**\n     * Completion was triggered automatically while editing.\n     * It is sufficient to return a single completion item in this case.\n     */\n    InlineCompletionTriggerKind[InlineCompletionTriggerKind[\"Automatic\"] = 0] = \"Automatic\";\n    /**\n     * Completion was triggered explicitly by a user gesture.\n     * Return multiple completion items to enable cycling through them.\n     */\n    InlineCompletionTriggerKind[InlineCompletionTriggerKind[\"Explicit\"] = 1] = \"Explicit\";\n})(InlineCompletionTriggerKind || (InlineCompletionTriggerKind = {}));\nexport var InlineEditTriggerKind;\n(function (InlineEditTriggerKind) {\n    InlineEditTriggerKind[InlineEditTriggerKind[\"Invoke\"] = 0] = \"Invoke\";\n    InlineEditTriggerKind[InlineEditTriggerKind[\"Automatic\"] = 1] = \"Automatic\";\n})(InlineEditTriggerKind || (InlineEditTriggerKind = {}));\n/**\n * Virtual Key Codes, the value does not hold any inherent meaning.\n * Inspired somewhat from https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx\n * But these are \"more general\", as they should work across browsers & OS`s.\n */\nexport var KeyCode;\n(function (KeyCode) {\n    KeyCode[KeyCode[\"DependsOnKbLayout\"] = -1] = \"DependsOnKbLayout\";\n    /**\n     * Placed first to cover the 0 value of the enum.\n     */\n    KeyCode[KeyCode[\"Unknown\"] = 0] = \"Unknown\";\n    KeyCode[KeyCode[\"Backspace\"] = 1] = \"Backspace\";\n    KeyCode[KeyCode[\"Tab\"] = 2] = \"Tab\";\n    KeyCode[KeyCode[\"Enter\"] = 3] = \"Enter\";\n    KeyCode[KeyCode[\"Shift\"] = 4] = \"Shift\";\n    KeyCode[KeyCode[\"Ctrl\"] = 5] = \"Ctrl\";\n    KeyCode[KeyCode[\"Alt\"] = 6] = \"Alt\";\n    KeyCode[KeyCode[\"PauseBreak\"] = 7] = \"PauseBreak\";\n    KeyCode[KeyCode[\"CapsLock\"] = 8] = \"CapsLock\";\n    KeyCode[KeyCode[\"Escape\"] = 9] = \"Escape\";\n    KeyCode[KeyCode[\"Space\"] = 10] = \"Space\";\n    KeyCode[KeyCode[\"PageUp\"] = 11] = \"PageUp\";\n    KeyCode[KeyCode[\"PageDown\"] = 12] = \"PageDown\";\n    KeyCode[KeyCode[\"End\"] = 13] = \"End\";\n    KeyCode[KeyCode[\"Home\"] = 14] = \"Home\";\n    KeyCode[KeyCode[\"LeftArrow\"] = 15] = \"LeftArrow\";\n    KeyCode[KeyCode[\"UpArrow\"] = 16] = \"UpArrow\";\n    KeyCode[KeyCode[\"RightArrow\"] = 17] = \"RightArrow\";\n    KeyCode[KeyCode[\"DownArrow\"] = 18] = \"DownArrow\";\n    KeyCode[KeyCode[\"Insert\"] = 19] = \"Insert\";\n    KeyCode[KeyCode[\"Delete\"] = 20] = \"Delete\";\n    KeyCode[KeyCode[\"Digit0\"] = 21] = \"Digit0\";\n    KeyCode[KeyCode[\"Digit1\"] = 22] = \"Digit1\";\n    KeyCode[KeyCode[\"Digit2\"] = 23] = \"Digit2\";\n    KeyCode[KeyCode[\"Digit3\"] = 24] = \"Digit3\";\n    KeyCode[KeyCode[\"Digit4\"] = 25] = \"Digit4\";\n    KeyCode[KeyCode[\"Digit5\"] = 26] = \"Digit5\";\n    KeyCode[KeyCode[\"Digit6\"] = 27] = \"Digit6\";\n    KeyCode[KeyCode[\"Digit7\"] = 28] = \"Digit7\";\n    KeyCode[KeyCode[\"Digit8\"] = 29] = \"Digit8\";\n    KeyCode[KeyCode[\"Digit9\"] = 30] = \"Digit9\";\n    KeyCode[KeyCode[\"KeyA\"] = 31] = \"KeyA\";\n    KeyCode[KeyCode[\"KeyB\"] = 32] = \"KeyB\";\n    KeyCode[KeyCode[\"KeyC\"] = 33] = \"KeyC\";\n    KeyCode[KeyCode[\"KeyD\"] = 34] = \"KeyD\";\n    KeyCode[KeyCode[\"KeyE\"] = 35] = \"KeyE\";\n    KeyCode[KeyCode[\"KeyF\"] = 36] = \"KeyF\";\n    KeyCode[KeyCode[\"KeyG\"] = 37] = \"KeyG\";\n    KeyCode[KeyCode[\"KeyH\"] = 38] = \"KeyH\";\n    KeyCode[KeyCode[\"KeyI\"] = 39] = \"KeyI\";\n    KeyCode[KeyCode[\"KeyJ\"] = 40] = \"KeyJ\";\n    KeyCode[KeyCode[\"KeyK\"] = 41] = \"KeyK\";\n    KeyCode[KeyCode[\"KeyL\"] = 42] = \"KeyL\";\n    KeyCode[KeyCode[\"KeyM\"] = 43] = \"KeyM\";\n    KeyCode[KeyCode[\"KeyN\"] = 44] = \"KeyN\";\n    KeyCode[KeyCode[\"KeyO\"] = 45] = \"KeyO\";\n    KeyCode[KeyCode[\"KeyP\"] = 46] = \"KeyP\";\n    KeyCode[KeyCode[\"KeyQ\"] = 47] = \"KeyQ\";\n    KeyCode[KeyCode[\"KeyR\"] = 48] = \"KeyR\";\n    KeyCode[KeyCode[\"KeyS\"] = 49] = \"KeyS\";\n    KeyCode[KeyCode[\"KeyT\"] = 50] = \"KeyT\";\n    KeyCode[KeyCode[\"KeyU\"] = 51] = \"KeyU\";\n    KeyCode[KeyCode[\"KeyV\"] = 52] = \"KeyV\";\n    KeyCode[KeyCode[\"KeyW\"] = 53] = \"KeyW\";\n    KeyCode[KeyCode[\"KeyX\"] = 54] = \"KeyX\";\n    KeyCode[KeyCode[\"KeyY\"] = 55] = \"KeyY\";\n    KeyCode[KeyCode[\"KeyZ\"] = 56] = \"KeyZ\";\n    KeyCode[KeyCode[\"Meta\"] = 57] = \"Meta\";\n    KeyCode[KeyCode[\"ContextMenu\"] = 58] = \"ContextMenu\";\n    KeyCode[KeyCode[\"F1\"] = 59] = \"F1\";\n    KeyCode[KeyCode[\"F2\"] = 60] = \"F2\";\n    KeyCode[KeyCode[\"F3\"] = 61] = \"F3\";\n    KeyCode[KeyCode[\"F4\"] = 62] = \"F4\";\n    KeyCode[KeyCode[\"F5\"] = 63] = \"F5\";\n    KeyCode[KeyCode[\"F6\"] = 64] = \"F6\";\n    KeyCode[KeyCode[\"F7\"] = 65] = \"F7\";\n    KeyCode[KeyCode[\"F8\"] = 66] = \"F8\";\n    KeyCode[KeyCode[\"F9\"] = 67] = \"F9\";\n    KeyCode[KeyCode[\"F10\"] = 68] = \"F10\";\n    KeyCode[KeyCode[\"F11\"] = 69] = \"F11\";\n    KeyCode[KeyCode[\"F12\"] = 70] = \"F12\";\n    KeyCode[KeyCode[\"F13\"] = 71] = \"F13\";\n    KeyCode[KeyCode[\"F14\"] = 72] = \"F14\";\n    KeyCode[KeyCode[\"F15\"] = 73] = \"F15\";\n    KeyCode[KeyCode[\"F16\"] = 74] = \"F16\";\n    KeyCode[KeyCode[\"F17\"] = 75] = \"F17\";\n    KeyCode[KeyCode[\"F18\"] = 76] = \"F18\";\n    KeyCode[KeyCode[\"F19\"] = 77] = \"F19\";\n    KeyCode[KeyCode[\"F20\"] = 78] = \"F20\";\n    KeyCode[KeyCode[\"F21\"] = 79] = \"F21\";\n    KeyCode[KeyCode[\"F22\"] = 80] = \"F22\";\n    KeyCode[KeyCode[\"F23\"] = 81] = \"F23\";\n    KeyCode[KeyCode[\"F24\"] = 82] = \"F24\";\n    KeyCode[KeyCode[\"NumLock\"] = 83] = \"NumLock\";\n    KeyCode[KeyCode[\"ScrollLock\"] = 84] = \"ScrollLock\";\n    /**\n     * Used for miscellaneous characters; it can vary by keyboard.\n     * For the US standard keyboard, the ';:' key\n     */\n    KeyCode[KeyCode[\"Semicolon\"] = 85] = \"Semicolon\";\n    /**\n     * For any country/region, the '+' key\n     * For the US standard keyboard, the '=+' key\n     */\n    KeyCode[KeyCode[\"Equal\"] = 86] = \"Equal\";\n    /**\n     * For any country/region, the ',' key\n     * For the US standard keyboard, the ',<' key\n     */\n    KeyCode[KeyCode[\"Comma\"] = 87] = \"Comma\";\n    /**\n     * For any country/region, the '-' key\n     * For the US standard keyboard, the '-_' key\n     */\n    KeyCode[KeyCode[\"Minus\"] = 88] = \"Minus\";\n    /**\n     * For any country/region, the '.' key\n     * For the US standard keyboard, the '.>' key\n     */\n    KeyCode[KeyCode[\"Period\"] = 89] = \"Period\";\n    /**\n     * Used for miscellaneous characters; it can vary by keyboard.\n     * For the US standard keyboard, the '/?' key\n     */\n    KeyCode[KeyCode[\"Slash\"] = 90] = \"Slash\";\n    /**\n     * Used for miscellaneous characters; it can vary by keyboard.\n     * For the US standard keyboard, the '`~' key\n     */\n    KeyCode[KeyCode[\"Backquote\"] = 91] = \"Backquote\";\n    /**\n     * Used for miscellaneous characters; it can vary by keyboard.\n     * For the US standard keyboard, the '[{' key\n     */\n    KeyCode[KeyCode[\"BracketLeft\"] = 92] = \"BracketLeft\";\n    /**\n     * Used for miscellaneous characters; it can vary by keyboard.\n     * For the US standard keyboard, the '\\|' key\n     */\n    KeyCode[KeyCode[\"Backslash\"] = 93] = \"Backslash\";\n    /**\n     * Used for miscellaneous characters; it can vary by keyboard.\n     * For the US standard keyboard, the ']}' key\n     */\n    KeyCode[KeyCode[\"BracketRight\"] = 94] = \"BracketRight\";\n    /**\n     * Used for miscellaneous characters; it can vary by keyboard.\n     * For the US standard keyboard, the ''\"' key\n     */\n    KeyCode[KeyCode[\"Quote\"] = 95] = \"Quote\";\n    /**\n     * Used for miscellaneous characters; it can vary by keyboard.\n     */\n    KeyCode[KeyCode[\"OEM_8\"] = 96] = \"OEM_8\";\n    /**\n     * Either the angle bracket key or the backslash key on the RT 102-key keyboard.\n     */\n    KeyCode[KeyCode[\"IntlBackslash\"] = 97] = \"IntlBackslash\";\n    KeyCode[KeyCode[\"Numpad0\"] = 98] = \"Numpad0\";\n    KeyCode[KeyCode[\"Numpad1\"] = 99] = \"Numpad1\";\n    KeyCode[KeyCode[\"Numpad2\"] = 100] = \"Numpad2\";\n    KeyCode[KeyCode[\"Numpad3\"] = 101] = \"Numpad3\";\n    KeyCode[KeyCode[\"Numpad4\"] = 102] = \"Numpad4\";\n    KeyCode[KeyCode[\"Numpad5\"] = 103] = \"Numpad5\";\n    KeyCode[KeyCode[\"Numpad6\"] = 104] = \"Numpad6\";\n    KeyCode[KeyCode[\"Numpad7\"] = 105] = \"Numpad7\";\n    KeyCode[KeyCode[\"Numpad8\"] = 106] = \"Numpad8\";\n    KeyCode[KeyCode[\"Numpad9\"] = 107] = \"Numpad9\";\n    KeyCode[KeyCode[\"NumpadMultiply\"] = 108] = \"NumpadMultiply\";\n    KeyCode[KeyCode[\"NumpadAdd\"] = 109] = \"NumpadAdd\";\n    KeyCode[KeyCode[\"NUMPAD_SEPARATOR\"] = 110] = \"NUMPAD_SEPARATOR\";\n    KeyCode[KeyCode[\"NumpadSubtract\"] = 111] = \"NumpadSubtract\";\n    KeyCode[KeyCode[\"NumpadDecimal\"] = 112] = \"NumpadDecimal\";\n    KeyCode[KeyCode[\"NumpadDivide\"] = 113] = \"NumpadDivide\";\n    /**\n     * Cover all key codes when IME is processing input.\n     */\n    KeyCode[KeyCode[\"KEY_IN_COMPOSITION\"] = 114] = \"KEY_IN_COMPOSITION\";\n    KeyCode[KeyCode[\"ABNT_C1\"] = 115] = \"ABNT_C1\";\n    KeyCode[KeyCode[\"ABNT_C2\"] = 116] = \"ABNT_C2\";\n    KeyCode[KeyCode[\"AudioVolumeMute\"] = 117] = \"AudioVolumeMute\";\n    KeyCode[KeyCode[\"AudioVolumeUp\"] = 118] = \"AudioVolumeUp\";\n    KeyCode[KeyCode[\"AudioVolumeDown\"] = 119] = \"AudioVolumeDown\";\n    KeyCode[KeyCode[\"BrowserSearch\"] = 120] = \"BrowserSearch\";\n    KeyCode[KeyCode[\"BrowserHome\"] = 121] = \"BrowserHome\";\n    KeyCode[KeyCode[\"BrowserBack\"] = 122] = \"BrowserBack\";\n    KeyCode[KeyCode[\"BrowserForward\"] = 123] = \"BrowserForward\";\n    KeyCode[KeyCode[\"MediaTrackNext\"] = 124] = \"MediaTrackNext\";\n    KeyCode[KeyCode[\"MediaTrackPrevious\"] = 125] = \"MediaTrackPrevious\";\n    KeyCode[KeyCode[\"MediaStop\"] = 126] = \"MediaStop\";\n    KeyCode[KeyCode[\"MediaPlayPause\"] = 127] = \"MediaPlayPause\";\n    KeyCode[KeyCode[\"LaunchMediaPlayer\"] = 128] = \"LaunchMediaPlayer\";\n    KeyCode[KeyCode[\"LaunchMail\"] = 129] = \"LaunchMail\";\n    KeyCode[KeyCode[\"LaunchApp2\"] = 130] = \"LaunchApp2\";\n    /**\n     * VK_CLEAR, 0x0C, CLEAR key\n     */\n    KeyCode[KeyCode[\"Clear\"] = 131] = \"Clear\";\n    /**\n     * Placed last to cover the length of the enum.\n     * Please do not depend on this value!\n     */\n    KeyCode[KeyCode[\"MAX_VALUE\"] = 132] = \"MAX_VALUE\";\n})(KeyCode || (KeyCode = {}));\nexport var MarkerSeverity;\n(function (MarkerSeverity) {\n    MarkerSeverity[MarkerSeverity[\"Hint\"] = 1] = \"Hint\";\n    MarkerSeverity[MarkerSeverity[\"Info\"] = 2] = \"Info\";\n    MarkerSeverity[MarkerSeverity[\"Warning\"] = 4] = \"Warning\";\n    MarkerSeverity[MarkerSeverity[\"Error\"] = 8] = \"Error\";\n})(MarkerSeverity || (MarkerSeverity = {}));\nexport var MarkerTag;\n(function (MarkerTag) {\n    MarkerTag[MarkerTag[\"Unnecessary\"] = 1] = \"Unnecessary\";\n    MarkerTag[MarkerTag[\"Deprecated\"] = 2] = \"Deprecated\";\n})(MarkerTag || (MarkerTag = {}));\n/**\n * Position in the minimap to render the decoration.\n */\nexport var MinimapPosition;\n(function (MinimapPosition) {\n    MinimapPosition[MinimapPosition[\"Inline\"] = 1] = \"Inline\";\n    MinimapPosition[MinimapPosition[\"Gutter\"] = 2] = \"Gutter\";\n})(MinimapPosition || (MinimapPosition = {}));\n/**\n * Section header style.\n */\nexport var MinimapSectionHeaderStyle;\n(function (MinimapSectionHeaderStyle) {\n    MinimapSectionHeaderStyle[MinimapSectionHeaderStyle[\"Normal\"] = 1] = \"Normal\";\n    MinimapSectionHeaderStyle[MinimapSectionHeaderStyle[\"Underlined\"] = 2] = \"Underlined\";\n})(MinimapSectionHeaderStyle || (MinimapSectionHeaderStyle = {}));\n/**\n * Type of hit element with the mouse in the editor.\n */\nexport var MouseTargetType;\n(function (MouseTargetType) {\n    /**\n     * Mouse is on top of an unknown element.\n     */\n    MouseTargetType[MouseTargetType[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n    /**\n     * Mouse is on top of the textarea used for input.\n     */\n    MouseTargetType[MouseTargetType[\"TEXTAREA\"] = 1] = \"TEXTAREA\";\n    /**\n     * Mouse is on top of the glyph margin\n     */\n    MouseTargetType[MouseTargetType[\"GUTTER_GLYPH_MARGIN\"] = 2] = \"GUTTER_GLYPH_MARGIN\";\n    /**\n     * Mouse is on top of the line numbers\n     */\n    MouseTargetType[MouseTargetType[\"GUTTER_LINE_NUMBERS\"] = 3] = \"GUTTER_LINE_NUMBERS\";\n    /**\n     * Mouse is on top of the line decorations\n     */\n    MouseTargetType[MouseTargetType[\"GUTTER_LINE_DECORATIONS\"] = 4] = \"GUTTER_LINE_DECORATIONS\";\n    /**\n     * Mouse is on top of the whitespace left in the gutter by a view zone.\n     */\n    MouseTargetType[MouseTargetType[\"GUTTER_VIEW_ZONE\"] = 5] = \"GUTTER_VIEW_ZONE\";\n    /**\n     * Mouse is on top of text in the content.\n     */\n    MouseTargetType[MouseTargetType[\"CONTENT_TEXT\"] = 6] = \"CONTENT_TEXT\";\n    /**\n     * Mouse is on top of empty space in the content (e.g. after line text or below last line)\n     */\n    MouseTargetType[MouseTargetType[\"CONTENT_EMPTY\"] = 7] = \"CONTENT_EMPTY\";\n    /**\n     * Mouse is on top of a view zone in the content.\n     */\n    MouseTargetType[MouseTargetType[\"CONTENT_VIEW_ZONE\"] = 8] = \"CONTENT_VIEW_ZONE\";\n    /**\n     * Mouse is on top of a content widget.\n     */\n    MouseTargetType[MouseTargetType[\"CONTENT_WIDGET\"] = 9] = \"CONTENT_WIDGET\";\n    /**\n     * Mouse is on top of the decorations overview ruler.\n     */\n    MouseTargetType[MouseTargetType[\"OVERVIEW_RULER\"] = 10] = \"OVERVIEW_RULER\";\n    /**\n     * Mouse is on top of a scrollbar.\n     */\n    MouseTargetType[MouseTargetType[\"SCROLLBAR\"] = 11] = \"SCROLLBAR\";\n    /**\n     * Mouse is on top of an overlay widget.\n     */\n    MouseTargetType[MouseTargetType[\"OVERLAY_WIDGET\"] = 12] = \"OVERLAY_WIDGET\";\n    /**\n     * Mouse is outside of the editor.\n     */\n    MouseTargetType[MouseTargetType[\"OUTSIDE_EDITOR\"] = 13] = \"OUTSIDE_EDITOR\";\n})(MouseTargetType || (MouseTargetType = {}));\nexport var NewSymbolNameTag;\n(function (NewSymbolNameTag) {\n    NewSymbolNameTag[NewSymbolNameTag[\"AIGenerated\"] = 1] = \"AIGenerated\";\n})(NewSymbolNameTag || (NewSymbolNameTag = {}));\nexport var NewSymbolNameTriggerKind;\n(function (NewSymbolNameTriggerKind) {\n    NewSymbolNameTriggerKind[NewSymbolNameTriggerKind[\"Invoke\"] = 0] = \"Invoke\";\n    NewSymbolNameTriggerKind[NewSymbolNameTriggerKind[\"Automatic\"] = 1] = \"Automatic\";\n})(NewSymbolNameTriggerKind || (NewSymbolNameTriggerKind = {}));\n/**\n * A positioning preference for rendering overlay widgets.\n */\nexport var OverlayWidgetPositionPreference;\n(function (OverlayWidgetPositionPreference) {\n    /**\n     * Position the overlay widget in the top right corner\n     */\n    OverlayWidgetPositionPreference[OverlayWidgetPositionPreference[\"TOP_RIGHT_CORNER\"] = 0] = \"TOP_RIGHT_CORNER\";\n    /**\n     * Position the overlay widget in the bottom right corner\n     */\n    OverlayWidgetPositionPreference[OverlayWidgetPositionPreference[\"BOTTOM_RIGHT_CORNER\"] = 1] = \"BOTTOM_RIGHT_CORNER\";\n    /**\n     * Position the overlay widget in the top center\n     */\n    OverlayWidgetPositionPreference[OverlayWidgetPositionPreference[\"TOP_CENTER\"] = 2] = \"TOP_CENTER\";\n})(OverlayWidgetPositionPreference || (OverlayWidgetPositionPreference = {}));\n/**\n * Vertical Lane in the overview ruler of the editor.\n */\nexport var OverviewRulerLane;\n(function (OverviewRulerLane) {\n    OverviewRulerLane[OverviewRulerLane[\"Left\"] = 1] = \"Left\";\n    OverviewRulerLane[OverviewRulerLane[\"Center\"] = 2] = \"Center\";\n    OverviewRulerLane[OverviewRulerLane[\"Right\"] = 4] = \"Right\";\n    OverviewRulerLane[OverviewRulerLane[\"Full\"] = 7] = \"Full\";\n})(OverviewRulerLane || (OverviewRulerLane = {}));\n/**\n * How a partial acceptance was triggered.\n */\nexport var PartialAcceptTriggerKind;\n(function (PartialAcceptTriggerKind) {\n    PartialAcceptTriggerKind[PartialAcceptTriggerKind[\"Word\"] = 0] = \"Word\";\n    PartialAcceptTriggerKind[PartialAcceptTriggerKind[\"Line\"] = 1] = \"Line\";\n    PartialAcceptTriggerKind[PartialAcceptTriggerKind[\"Suggest\"] = 2] = \"Suggest\";\n})(PartialAcceptTriggerKind || (PartialAcceptTriggerKind = {}));\nexport var PositionAffinity;\n(function (PositionAffinity) {\n    /**\n     * Prefers the left most position.\n    */\n    PositionAffinity[PositionAffinity[\"Left\"] = 0] = \"Left\";\n    /**\n     * Prefers the right most position.\n    */\n    PositionAffinity[PositionAffinity[\"Right\"] = 1] = \"Right\";\n    /**\n     * No preference.\n    */\n    PositionAffinity[PositionAffinity[\"None\"] = 2] = \"None\";\n    /**\n     * If the given position is on injected text, prefers the position left of it.\n    */\n    PositionAffinity[PositionAffinity[\"LeftOfInjectedText\"] = 3] = \"LeftOfInjectedText\";\n    /**\n     * If the given position is on injected text, prefers the position right of it.\n    */\n    PositionAffinity[PositionAffinity[\"RightOfInjectedText\"] = 4] = \"RightOfInjectedText\";\n})(PositionAffinity || (PositionAffinity = {}));\nexport var RenderLineNumbersType;\n(function (RenderLineNumbersType) {\n    RenderLineNumbersType[RenderLineNumbersType[\"Off\"] = 0] = \"Off\";\n    RenderLineNumbersType[RenderLineNumbersType[\"On\"] = 1] = \"On\";\n    RenderLineNumbersType[RenderLineNumbersType[\"Relative\"] = 2] = \"Relative\";\n    RenderLineNumbersType[RenderLineNumbersType[\"Interval\"] = 3] = \"Interval\";\n    RenderLineNumbersType[RenderLineNumbersType[\"Custom\"] = 4] = \"Custom\";\n})(RenderLineNumbersType || (RenderLineNumbersType = {}));\nexport var RenderMinimap;\n(function (RenderMinimap) {\n    RenderMinimap[RenderMinimap[\"None\"] = 0] = \"None\";\n    RenderMinimap[RenderMinimap[\"Text\"] = 1] = \"Text\";\n    RenderMinimap[RenderMinimap[\"Blocks\"] = 2] = \"Blocks\";\n})(RenderMinimap || (RenderMinimap = {}));\nexport var ScrollType;\n(function (ScrollType) {\n    ScrollType[ScrollType[\"Smooth\"] = 0] = \"Smooth\";\n    ScrollType[ScrollType[\"Immediate\"] = 1] = \"Immediate\";\n})(ScrollType || (ScrollType = {}));\nexport var ScrollbarVisibility;\n(function (ScrollbarVisibility) {\n    ScrollbarVisibility[ScrollbarVisibility[\"Auto\"] = 1] = \"Auto\";\n    ScrollbarVisibility[ScrollbarVisibility[\"Hidden\"] = 2] = \"Hidden\";\n    ScrollbarVisibility[ScrollbarVisibility[\"Visible\"] = 3] = \"Visible\";\n})(ScrollbarVisibility || (ScrollbarVisibility = {}));\n/**\n * The direction of a selection.\n */\nexport var SelectionDirection;\n(function (SelectionDirection) {\n    /**\n     * The selection starts above where it ends.\n     */\n    SelectionDirection[SelectionDirection[\"LTR\"] = 0] = \"LTR\";\n    /**\n     * The selection starts below where it ends.\n     */\n    SelectionDirection[SelectionDirection[\"RTL\"] = 1] = \"RTL\";\n})(SelectionDirection || (SelectionDirection = {}));\nexport var ShowLightbulbIconMode;\n(function (ShowLightbulbIconMode) {\n    ShowLightbulbIconMode[\"Off\"] = \"off\";\n    ShowLightbulbIconMode[\"OnCode\"] = \"onCode\";\n    ShowLightbulbIconMode[\"On\"] = \"on\";\n})(ShowLightbulbIconMode || (ShowLightbulbIconMode = {}));\nexport var SignatureHelpTriggerKind;\n(function (SignatureHelpTriggerKind) {\n    SignatureHelpTriggerKind[SignatureHelpTriggerKind[\"Invoke\"] = 1] = \"Invoke\";\n    SignatureHelpTriggerKind[SignatureHelpTriggerKind[\"TriggerCharacter\"] = 2] = \"TriggerCharacter\";\n    SignatureHelpTriggerKind[SignatureHelpTriggerKind[\"ContentChange\"] = 3] = \"ContentChange\";\n})(SignatureHelpTriggerKind || (SignatureHelpTriggerKind = {}));\n/**\n * A symbol kind.\n */\nexport var SymbolKind;\n(function (SymbolKind) {\n    SymbolKind[SymbolKind[\"File\"] = 0] = \"File\";\n    SymbolKind[SymbolKind[\"Module\"] = 1] = \"Module\";\n    SymbolKind[SymbolKind[\"Namespace\"] = 2] = \"Namespace\";\n    SymbolKind[SymbolKind[\"Package\"] = 3] = \"Package\";\n    SymbolKind[SymbolKind[\"Class\"] = 4] = \"Class\";\n    SymbolKind[SymbolKind[\"Method\"] = 5] = \"Method\";\n    SymbolKind[SymbolKind[\"Property\"] = 6] = \"Property\";\n    SymbolKind[SymbolKind[\"Field\"] = 7] = \"Field\";\n    SymbolKind[SymbolKind[\"Constructor\"] = 8] = \"Constructor\";\n    SymbolKind[SymbolKind[\"Enum\"] = 9] = \"Enum\";\n    SymbolKind[SymbolKind[\"Interface\"] = 10] = \"Interface\";\n    SymbolKind[SymbolKind[\"Function\"] = 11] = \"Function\";\n    SymbolKind[SymbolKind[\"Variable\"] = 12] = \"Variable\";\n    SymbolKind[SymbolKind[\"Constant\"] = 13] = \"Constant\";\n    SymbolKind[SymbolKind[\"String\"] = 14] = \"String\";\n    SymbolKind[SymbolKind[\"Number\"] = 15] = \"Number\";\n    SymbolKind[SymbolKind[\"Boolean\"] = 16] = \"Boolean\";\n    SymbolKind[SymbolKind[\"Array\"] = 17] = \"Array\";\n    SymbolKind[SymbolKind[\"Object\"] = 18] = \"Object\";\n    SymbolKind[SymbolKind[\"Key\"] = 19] = \"Key\";\n    SymbolKind[SymbolKind[\"Null\"] = 20] = \"Null\";\n    SymbolKind[SymbolKind[\"EnumMember\"] = 21] = \"EnumMember\";\n    SymbolKind[SymbolKind[\"Struct\"] = 22] = \"Struct\";\n    SymbolKind[SymbolKind[\"Event\"] = 23] = \"Event\";\n    SymbolKind[SymbolKind[\"Operator\"] = 24] = \"Operator\";\n    SymbolKind[SymbolKind[\"TypeParameter\"] = 25] = \"TypeParameter\";\n})(SymbolKind || (SymbolKind = {}));\nexport var SymbolTag;\n(function (SymbolTag) {\n    SymbolTag[SymbolTag[\"Deprecated\"] = 1] = \"Deprecated\";\n})(SymbolTag || (SymbolTag = {}));\n/**\n * The kind of animation in which the editor's cursor should be rendered.\n */\nexport var TextEditorCursorBlinkingStyle;\n(function (TextEditorCursorBlinkingStyle) {\n    /**\n     * Hidden\n     */\n    TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle[\"Hidden\"] = 0] = \"Hidden\";\n    /**\n     * Blinking\n     */\n    TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle[\"Blink\"] = 1] = \"Blink\";\n    /**\n     * Blinking with smooth fading\n     */\n    TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle[\"Smooth\"] = 2] = \"Smooth\";\n    /**\n     * Blinking with prolonged filled state and smooth fading\n     */\n    TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle[\"Phase\"] = 3] = \"Phase\";\n    /**\n     * Expand collapse animation on the y axis\n     */\n    TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle[\"Expand\"] = 4] = \"Expand\";\n    /**\n     * No-Blinking\n     */\n    TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle[\"Solid\"] = 5] = \"Solid\";\n})(TextEditorCursorBlinkingStyle || (TextEditorCursorBlinkingStyle = {}));\n/**\n * The style in which the editor's cursor should be rendered.\n */\nexport var TextEditorCursorStyle;\n(function (TextEditorCursorStyle) {\n    /**\n     * As a vertical line (sitting between two characters).\n     */\n    TextEditorCursorStyle[TextEditorCursorStyle[\"Line\"] = 1] = \"Line\";\n    /**\n     * As a block (sitting on top of a character).\n     */\n    TextEditorCursorStyle[TextEditorCursorStyle[\"Block\"] = 2] = \"Block\";\n    /**\n     * As a horizontal line (sitting under a character).\n     */\n    TextEditorCursorStyle[TextEditorCursorStyle[\"Underline\"] = 3] = \"Underline\";\n    /**\n     * As a thin vertical line (sitting between two characters).\n     */\n    TextEditorCursorStyle[TextEditorCursorStyle[\"LineThin\"] = 4] = \"LineThin\";\n    /**\n     * As an outlined block (sitting on top of a character).\n     */\n    TextEditorCursorStyle[TextEditorCursorStyle[\"BlockOutline\"] = 5] = \"BlockOutline\";\n    /**\n     * As a thin horizontal line (sitting under a character).\n     */\n    TextEditorCursorStyle[TextEditorCursorStyle[\"UnderlineThin\"] = 6] = \"UnderlineThin\";\n})(TextEditorCursorStyle || (TextEditorCursorStyle = {}));\n/**\n * Describes the behavior of decorations when typing/editing near their edges.\n * Note: Please do not edit the values, as they very carefully match `DecorationRangeBehavior`\n */\nexport var TrackedRangeStickiness;\n(function (TrackedRangeStickiness) {\n    TrackedRangeStickiness[TrackedRangeStickiness[\"AlwaysGrowsWhenTypingAtEdges\"] = 0] = \"AlwaysGrowsWhenTypingAtEdges\";\n    TrackedRangeStickiness[TrackedRangeStickiness[\"NeverGrowsWhenTypingAtEdges\"] = 1] = \"NeverGrowsWhenTypingAtEdges\";\n    TrackedRangeStickiness[TrackedRangeStickiness[\"GrowsOnlyWhenTypingBefore\"] = 2] = \"GrowsOnlyWhenTypingBefore\";\n    TrackedRangeStickiness[TrackedRangeStickiness[\"GrowsOnlyWhenTypingAfter\"] = 3] = \"GrowsOnlyWhenTypingAfter\";\n})(TrackedRangeStickiness || (TrackedRangeStickiness = {}));\n/**\n * Describes how to indent wrapped lines.\n */\nexport var WrappingIndent;\n(function (WrappingIndent) {\n    /**\n     * No indentation => wrapped lines begin at column 1.\n     */\n    WrappingIndent[WrappingIndent[\"None\"] = 0] = \"None\";\n    /**\n     * Same => wrapped lines get the same indentation as the parent.\n     */\n    WrappingIndent[WrappingIndent[\"Same\"] = 1] = \"Same\";\n    /**\n     * Indent => wrapped lines get +1 indentation toward the parent.\n     */\n    WrappingIndent[WrappingIndent[\"Indent\"] = 2] = \"Indent\";\n    /**\n     * DeepIndent => wrapped lines get +2 indentation toward the parent.\n     */\n    WrappingIndent[WrappingIndent[\"DeepIndent\"] = 3] = \"DeepIndent\";\n})(WrappingIndent || (WrappingIndent = {}));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/standaloneStrings.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../nls.js';\nexport var InspectTokensNLS;\n(function (InspectTokensNLS) {\n    InspectTokensNLS.inspectTokensAction = nls.localize('inspectTokens', \"Developer: Inspect Tokens\");\n})(InspectTokensNLS || (InspectTokensNLS = {}));\nexport var GoToLineNLS;\n(function (GoToLineNLS) {\n    GoToLineNLS.gotoLineActionLabel = nls.localize('gotoLineActionLabel', \"Go to Line/Column...\");\n})(GoToLineNLS || (GoToLineNLS = {}));\nexport var QuickHelpNLS;\n(function (QuickHelpNLS) {\n    QuickHelpNLS.helpQuickAccessActionLabel = nls.localize('helpQuickAccess', \"Show all Quick Access Providers\");\n})(QuickHelpNLS || (QuickHelpNLS = {}));\nexport var QuickCommandNLS;\n(function (QuickCommandNLS) {\n    QuickCommandNLS.quickCommandActionLabel = nls.localize('quickCommandActionLabel', \"Command Palette\");\n    QuickCommandNLS.quickCommandHelp = nls.localize('quickCommandActionHelp', \"Show And Run Commands\");\n})(QuickCommandNLS || (QuickCommandNLS = {}));\nexport var QuickOutlineNLS;\n(function (QuickOutlineNLS) {\n    QuickOutlineNLS.quickOutlineActionLabel = nls.localize('quickOutlineActionLabel', \"Go to Symbol...\");\n    QuickOutlineNLS.quickOutlineByCategoryActionLabel = nls.localize('quickOutlineByCategoryActionLabel', \"Go to Symbol by Category...\");\n})(QuickOutlineNLS || (QuickOutlineNLS = {}));\nexport var StandaloneCodeEditorNLS;\n(function (StandaloneCodeEditorNLS) {\n    StandaloneCodeEditorNLS.editorViewAccessibleLabel = nls.localize('editorViewAccessibleLabel', \"Editor content\");\n    StandaloneCodeEditorNLS.accessibilityHelpMessage = nls.localize('accessibilityHelpMessage', \"Press Alt+F1 for Accessibility Options.\");\n})(StandaloneCodeEditorNLS || (StandaloneCodeEditorNLS = {}));\nexport var ToggleHighContrastNLS;\n(function (ToggleHighContrastNLS) {\n    ToggleHighContrastNLS.toggleHighContrast = nls.localize('toggleHighContrast', \"Toggle High Contrast Theme\");\n})(ToggleHighContrastNLS || (ToggleHighContrastNLS = {}));\nexport var StandaloneServicesNLS;\n(function (StandaloneServicesNLS) {\n    StandaloneServicesNLS.bulkEditServiceSummary = nls.localize('bulkEditServiceSummary', \"Made {0} edits in {1} files\");\n})(StandaloneServicesNLS || (StandaloneServicesNLS = {}));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/textModelBracketPairs.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class BracketInfo {\n    constructor(range, \n    /** 0-based level */\n    nestingLevel, nestingLevelOfEqualBracketType, isInvalid) {\n        this.range = range;\n        this.nestingLevel = nestingLevel;\n        this.nestingLevelOfEqualBracketType = nestingLevelOfEqualBracketType;\n        this.isInvalid = isInvalid;\n    }\n}\nexport class BracketPairInfo {\n    constructor(range, openingBracketRange, closingBracketRange, \n    /** 0-based */\n    nestingLevel, nestingLevelOfEqualBracketType, bracketPairNode) {\n        this.range = range;\n        this.openingBracketRange = openingBracketRange;\n        this.closingBracketRange = closingBracketRange;\n        this.nestingLevel = nestingLevel;\n        this.nestingLevelOfEqualBracketType = nestingLevelOfEqualBracketType;\n        this.bracketPairNode = bracketPairNode;\n    }\n    get openingBracketInfo() {\n        return this.bracketPairNode.openingBracket.bracketInfo;\n    }\n}\nexport class BracketPairWithMinIndentationInfo extends BracketPairInfo {\n    constructor(range, openingBracketRange, closingBracketRange, \n    /**\n     * 0-based\n    */\n    nestingLevel, nestingLevelOfEqualBracketType, bracketPairNode, \n    /**\n     * -1 if not requested, otherwise the size of the minimum indentation in the bracket pair in terms of visible columns.\n    */\n    minVisibleColumnIndentation) {\n        super(range, openingBracketRange, closingBracketRange, nestingLevel, nestingLevelOfEqualBracketType, bracketPairNode);\n        this.minVisibleColumnIndentation = minVisibleColumnIndentation;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/textModelEvents.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * An event describing that a model has been reset to a new value.\n * @internal\n */\nexport class ModelRawFlush {\n    constructor() {\n        this.changeType = 1 /* RawContentChangedType.Flush */;\n    }\n}\n/**\n * Represents text injected on a line\n * @internal\n */\nexport class LineInjectedText {\n    static applyInjectedText(lineText, injectedTexts) {\n        if (!injectedTexts || injectedTexts.length === 0) {\n            return lineText;\n        }\n        let result = '';\n        let lastOriginalOffset = 0;\n        for (const injectedText of injectedTexts) {\n            result += lineText.substring(lastOriginalOffset, injectedText.column - 1);\n            lastOriginalOffset = injectedText.column - 1;\n            result += injectedText.options.content;\n        }\n        result += lineText.substring(lastOriginalOffset);\n        return result;\n    }\n    static fromDecorations(decorations) {\n        const result = [];\n        for (const decoration of decorations) {\n            if (decoration.options.before && decoration.options.before.content.length > 0) {\n                result.push(new LineInjectedText(decoration.ownerId, decoration.range.startLineNumber, decoration.range.startColumn, decoration.options.before, 0));\n            }\n            if (decoration.options.after && decoration.options.after.content.length > 0) {\n                result.push(new LineInjectedText(decoration.ownerId, decoration.range.endLineNumber, decoration.range.endColumn, decoration.options.after, 1));\n            }\n        }\n        result.sort((a, b) => {\n            if (a.lineNumber === b.lineNumber) {\n                if (a.column === b.column) {\n                    return a.order - b.order;\n                }\n                return a.column - b.column;\n            }\n            return a.lineNumber - b.lineNumber;\n        });\n        return result;\n    }\n    constructor(ownerId, lineNumber, column, options, order) {\n        this.ownerId = ownerId;\n        this.lineNumber = lineNumber;\n        this.column = column;\n        this.options = options;\n        this.order = order;\n    }\n}\n/**\n * An event describing that a line has changed in a model.\n * @internal\n */\nexport class ModelRawLineChanged {\n    constructor(lineNumber, detail, injectedText) {\n        this.changeType = 2 /* RawContentChangedType.LineChanged */;\n        this.lineNumber = lineNumber;\n        this.detail = detail;\n        this.injectedText = injectedText;\n    }\n}\n/**\n * An event describing that line(s) have been deleted in a model.\n * @internal\n */\nexport class ModelRawLinesDeleted {\n    constructor(fromLineNumber, toLineNumber) {\n        this.changeType = 3 /* RawContentChangedType.LinesDeleted */;\n        this.fromLineNumber = fromLineNumber;\n        this.toLineNumber = toLineNumber;\n    }\n}\n/**\n * An event describing that line(s) have been inserted in a model.\n * @internal\n */\nexport class ModelRawLinesInserted {\n    constructor(fromLineNumber, toLineNumber, detail, injectedTexts) {\n        this.changeType = 4 /* RawContentChangedType.LinesInserted */;\n        this.injectedTexts = injectedTexts;\n        this.fromLineNumber = fromLineNumber;\n        this.toLineNumber = toLineNumber;\n        this.detail = detail;\n    }\n}\n/**\n * An event describing that a model has had its EOL changed.\n * @internal\n */\nexport class ModelRawEOLChanged {\n    constructor() {\n        this.changeType = 5 /* RawContentChangedType.EOLChanged */;\n    }\n}\n/**\n * An event describing a change in the text of a model.\n * @internal\n */\nexport class ModelRawContentChangedEvent {\n    constructor(changes, versionId, isUndoing, isRedoing) {\n        this.changes = changes;\n        this.versionId = versionId;\n        this.isUndoing = isUndoing;\n        this.isRedoing = isRedoing;\n        this.resultingSelection = null;\n    }\n    containsEvent(type) {\n        for (let i = 0, len = this.changes.length; i < len; i++) {\n            const change = this.changes[i];\n            if (change.changeType === type) {\n                return true;\n            }\n        }\n        return false;\n    }\n    static merge(a, b) {\n        const changes = [].concat(a.changes).concat(b.changes);\n        const versionId = b.versionId;\n        const isUndoing = (a.isUndoing || b.isUndoing);\n        const isRedoing = (a.isRedoing || b.isRedoing);\n        return new ModelRawContentChangedEvent(changes, versionId, isUndoing, isRedoing);\n    }\n}\n/**\n * An event describing a change in injected text.\n * @internal\n */\nexport class ModelInjectedTextChangedEvent {\n    constructor(changes) {\n        this.changes = changes;\n    }\n}\n/**\n * @internal\n */\nexport class InternalModelContentChangeEvent {\n    constructor(rawContentChangedEvent, contentChangedEvent) {\n        this.rawContentChangedEvent = rawContentChangedEvent;\n        this.contentChangedEvent = contentChangedEvent;\n    }\n    merge(other) {\n        const rawContentChangedEvent = ModelRawContentChangedEvent.merge(this.rawContentChangedEvent, other.rawContentChangedEvent);\n        const contentChangedEvent = InternalModelContentChangeEvent._mergeChangeEvents(this.contentChangedEvent, other.contentChangedEvent);\n        return new InternalModelContentChangeEvent(rawContentChangedEvent, contentChangedEvent);\n    }\n    static _mergeChangeEvents(a, b) {\n        const changes = [].concat(a.changes).concat(b.changes);\n        const eol = b.eol;\n        const versionId = b.versionId;\n        const isUndoing = (a.isUndoing || b.isUndoing);\n        const isRedoing = (a.isRedoing || b.isRedoing);\n        const isFlush = (a.isFlush || b.isFlush);\n        const isEolChange = a.isEolChange && b.isEolChange; // both must be true to not confuse listeners who skip such edits\n        return {\n            changes: changes,\n            eol: eol,\n            isEolChange: isEolChange,\n            versionId: versionId,\n            isUndoing: isUndoing,\n            isRedoing: isRedoing,\n            isFlush: isFlush,\n        };\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/textModelGuides.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport var HorizontalGuidesState;\n(function (HorizontalGuidesState) {\n    HorizontalGuidesState[HorizontalGuidesState[\"Disabled\"] = 0] = \"Disabled\";\n    HorizontalGuidesState[HorizontalGuidesState[\"EnabledForActive\"] = 1] = \"EnabledForActive\";\n    HorizontalGuidesState[HorizontalGuidesState[\"Enabled\"] = 2] = \"Enabled\";\n})(HorizontalGuidesState || (HorizontalGuidesState = {}));\nexport class IndentGuide {\n    constructor(visibleColumn, column, className, \n    /**\n     * If set, this indent guide is a horizontal guide (no vertical part).\n     * It starts at visibleColumn and continues until endColumn.\n    */\n    horizontalLine, \n    /**\n     * If set (!= -1), only show this guide for wrapped lines that don't contain this model column, but are after it.\n    */\n    forWrappedLinesAfterColumn, forWrappedLinesBeforeOrAtColumn) {\n        this.visibleColumn = visibleColumn;\n        this.column = column;\n        this.className = className;\n        this.horizontalLine = horizontalLine;\n        this.forWrappedLinesAfterColumn = forWrappedLinesAfterColumn;\n        this.forWrappedLinesBeforeOrAtColumn = forWrappedLinesBeforeOrAtColumn;\n        if ((visibleColumn !== -1) === (column !== -1)) {\n            throw new Error();\n        }\n    }\n}\nexport class IndentGuideHorizontalLine {\n    constructor(top, endColumn) {\n        this.top = top;\n        this.endColumn = endColumn;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/tokenizationRegistry.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../base/common/event.js';\nimport { Disposable, toDisposable } from '../../base/common/lifecycle.js';\nexport class TokenizationRegistry {\n    constructor() {\n        this._tokenizationSupports = new Map();\n        this._factories = new Map();\n        this._onDidChange = new Emitter();\n        this.onDidChange = this._onDidChange.event;\n        this._colorMap = null;\n    }\n    handleChange(languageIds) {\n        this._onDidChange.fire({\n            changedLanguages: languageIds,\n            changedColorMap: false\n        });\n    }\n    register(languageId, support) {\n        this._tokenizationSupports.set(languageId, support);\n        this.handleChange([languageId]);\n        return toDisposable(() => {\n            if (this._tokenizationSupports.get(languageId) !== support) {\n                return;\n            }\n            this._tokenizationSupports.delete(languageId);\n            this.handleChange([languageId]);\n        });\n    }\n    get(languageId) {\n        return this._tokenizationSupports.get(languageId) || null;\n    }\n    registerFactory(languageId, factory) {\n        var _a;\n        (_a = this._factories.get(languageId)) === null || _a === void 0 ? void 0 : _a.dispose();\n        const myData = new TokenizationSupportFactoryData(this, languageId, factory);\n        this._factories.set(languageId, myData);\n        return toDisposable(() => {\n            const v = this._factories.get(languageId);\n            if (!v || v !== myData) {\n                return;\n            }\n            this._factories.delete(languageId);\n            v.dispose();\n        });\n    }\n    async getOrCreate(languageId) {\n        // check first if the support is already set\n        const tokenizationSupport = this.get(languageId);\n        if (tokenizationSupport) {\n            return tokenizationSupport;\n        }\n        const factory = this._factories.get(languageId);\n        if (!factory || factory.isResolved) {\n            // no factory or factory.resolve already finished\n            return null;\n        }\n        await factory.resolve();\n        return this.get(languageId);\n    }\n    isResolved(languageId) {\n        const tokenizationSupport = this.get(languageId);\n        if (tokenizationSupport) {\n            return true;\n        }\n        const factory = this._factories.get(languageId);\n        if (!factory || factory.isResolved) {\n            return true;\n        }\n        return false;\n    }\n    setColorMap(colorMap) {\n        this._colorMap = colorMap;\n        this._onDidChange.fire({\n            changedLanguages: Array.from(this._tokenizationSupports.keys()),\n            changedColorMap: true\n        });\n    }\n    getColorMap() {\n        return this._colorMap;\n    }\n    getDefaultBackground() {\n        if (this._colorMap && this._colorMap.length > 2 /* ColorId.DefaultBackground */) {\n            return this._colorMap[2 /* ColorId.DefaultBackground */];\n        }\n        return null;\n    }\n}\nclass TokenizationSupportFactoryData extends Disposable {\n    get isResolved() {\n        return this._isResolved;\n    }\n    constructor(_registry, _languageId, _factory) {\n        super();\n        this._registry = _registry;\n        this._languageId = _languageId;\n        this._factory = _factory;\n        this._isDisposed = false;\n        this._resolvePromise = null;\n        this._isResolved = false;\n    }\n    dispose() {\n        this._isDisposed = true;\n        super.dispose();\n    }\n    async resolve() {\n        if (!this._resolvePromise) {\n            this._resolvePromise = this._create();\n        }\n        return this._resolvePromise;\n    }\n    async _create() {\n        const value = await this._factory.tokenizationSupport;\n        this._isResolved = true;\n        if (value && !this._isDisposed) {\n            this._register(this._registry.register(this._languageId, value));\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/tokenizationTextModelPart.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport {};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/tokens/contiguousMultilineTokens.js",
    "content": "/**\n * Represents contiguous tokens over a contiguous range of lines.\n */\nexport class ContiguousMultilineTokens {\n    /**\n     * (Inclusive) start line number for these tokens.\n     */\n    get startLineNumber() {\n        return this._startLineNumber;\n    }\n    /**\n     * (Inclusive) end line number for these tokens.\n     */\n    get endLineNumber() {\n        return this._startLineNumber + this._tokens.length - 1;\n    }\n    constructor(startLineNumber, tokens) {\n        this._startLineNumber = startLineNumber;\n        this._tokens = tokens;\n    }\n    /**\n     * @see {@link _tokens}\n     */\n    getLineTokens(lineNumber) {\n        return this._tokens[lineNumber - this._startLineNumber];\n    }\n    appendLineTokens(lineTokens) {\n        this._tokens.push(lineTokens);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/tokens/contiguousMultilineTokensBuilder.js",
    "content": "import { ContiguousMultilineTokens } from './contiguousMultilineTokens.js';\nexport class ContiguousMultilineTokensBuilder {\n    constructor() {\n        this._tokens = [];\n    }\n    add(lineNumber, lineTokens) {\n        if (this._tokens.length > 0) {\n            const last = this._tokens[this._tokens.length - 1];\n            if (last.endLineNumber + 1 === lineNumber) {\n                // append\n                last.appendLineTokens(lineTokens);\n                return;\n            }\n        }\n        this._tokens.push(new ContiguousMultilineTokens(lineNumber, [lineTokens]));\n    }\n    finalize() {\n        return this._tokens;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/tokens/contiguousTokensEditing.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { LineTokens } from './lineTokens.js';\nexport const EMPTY_LINE_TOKENS = (new Uint32Array(0)).buffer;\nexport class ContiguousTokensEditing {\n    static deleteBeginning(lineTokens, toChIndex) {\n        if (lineTokens === null || lineTokens === EMPTY_LINE_TOKENS) {\n            return lineTokens;\n        }\n        return ContiguousTokensEditing.delete(lineTokens, 0, toChIndex);\n    }\n    static deleteEnding(lineTokens, fromChIndex) {\n        if (lineTokens === null || lineTokens === EMPTY_LINE_TOKENS) {\n            return lineTokens;\n        }\n        const tokens = toUint32Array(lineTokens);\n        const lineTextLength = tokens[tokens.length - 2];\n        return ContiguousTokensEditing.delete(lineTokens, fromChIndex, lineTextLength);\n    }\n    static delete(lineTokens, fromChIndex, toChIndex) {\n        if (lineTokens === null || lineTokens === EMPTY_LINE_TOKENS || fromChIndex === toChIndex) {\n            return lineTokens;\n        }\n        const tokens = toUint32Array(lineTokens);\n        const tokensCount = (tokens.length >>> 1);\n        // special case: deleting everything\n        if (fromChIndex === 0 && tokens[tokens.length - 2] === toChIndex) {\n            return EMPTY_LINE_TOKENS;\n        }\n        const fromTokenIndex = LineTokens.findIndexInTokensArray(tokens, fromChIndex);\n        const fromTokenStartOffset = (fromTokenIndex > 0 ? tokens[(fromTokenIndex - 1) << 1] : 0);\n        const fromTokenEndOffset = tokens[fromTokenIndex << 1];\n        if (toChIndex < fromTokenEndOffset) {\n            // the delete range is inside a single token\n            const delta = (toChIndex - fromChIndex);\n            for (let i = fromTokenIndex; i < tokensCount; i++) {\n                tokens[i << 1] -= delta;\n            }\n            return lineTokens;\n        }\n        let dest;\n        let lastEnd;\n        if (fromTokenStartOffset !== fromChIndex) {\n            tokens[fromTokenIndex << 1] = fromChIndex;\n            dest = ((fromTokenIndex + 1) << 1);\n            lastEnd = fromChIndex;\n        }\n        else {\n            dest = (fromTokenIndex << 1);\n            lastEnd = fromTokenStartOffset;\n        }\n        const delta = (toChIndex - fromChIndex);\n        for (let tokenIndex = fromTokenIndex + 1; tokenIndex < tokensCount; tokenIndex++) {\n            const tokenEndOffset = tokens[tokenIndex << 1] - delta;\n            if (tokenEndOffset > lastEnd) {\n                tokens[dest++] = tokenEndOffset;\n                tokens[dest++] = tokens[(tokenIndex << 1) + 1];\n                lastEnd = tokenEndOffset;\n            }\n        }\n        if (dest === tokens.length) {\n            // nothing to trim\n            return lineTokens;\n        }\n        const tmp = new Uint32Array(dest);\n        tmp.set(tokens.subarray(0, dest), 0);\n        return tmp.buffer;\n    }\n    static append(lineTokens, _otherTokens) {\n        if (_otherTokens === EMPTY_LINE_TOKENS) {\n            return lineTokens;\n        }\n        if (lineTokens === EMPTY_LINE_TOKENS) {\n            return _otherTokens;\n        }\n        if (lineTokens === null) {\n            return lineTokens;\n        }\n        if (_otherTokens === null) {\n            // cannot determine combined line length...\n            return null;\n        }\n        const myTokens = toUint32Array(lineTokens);\n        const otherTokens = toUint32Array(_otherTokens);\n        const otherTokensCount = (otherTokens.length >>> 1);\n        const result = new Uint32Array(myTokens.length + otherTokens.length);\n        result.set(myTokens, 0);\n        let dest = myTokens.length;\n        const delta = myTokens[myTokens.length - 2];\n        for (let i = 0; i < otherTokensCount; i++) {\n            result[dest++] = otherTokens[(i << 1)] + delta;\n            result[dest++] = otherTokens[(i << 1) + 1];\n        }\n        return result.buffer;\n    }\n    static insert(lineTokens, chIndex, textLength) {\n        if (lineTokens === null || lineTokens === EMPTY_LINE_TOKENS) {\n            // nothing to do\n            return lineTokens;\n        }\n        const tokens = toUint32Array(lineTokens);\n        const tokensCount = (tokens.length >>> 1);\n        let fromTokenIndex = LineTokens.findIndexInTokensArray(tokens, chIndex);\n        if (fromTokenIndex > 0) {\n            const fromTokenStartOffset = tokens[(fromTokenIndex - 1) << 1];\n            if (fromTokenStartOffset === chIndex) {\n                fromTokenIndex--;\n            }\n        }\n        for (let tokenIndex = fromTokenIndex; tokenIndex < tokensCount; tokenIndex++) {\n            tokens[tokenIndex << 1] += textLength;\n        }\n        return lineTokens;\n    }\n}\nexport function toUint32Array(arr) {\n    if (arr instanceof Uint32Array) {\n        return arr;\n    }\n    else {\n        return new Uint32Array(arr);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/tokens/contiguousTokensStore.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as arrays from '../../../base/common/arrays.js';\nimport { Position } from '../core/position.js';\nimport { ContiguousTokensEditing, EMPTY_LINE_TOKENS, toUint32Array } from './contiguousTokensEditing.js';\nimport { LineTokens } from './lineTokens.js';\nimport { TokenMetadata } from '../encodedTokenAttributes.js';\n/**\n * Represents contiguous tokens in a text model.\n */\nexport class ContiguousTokensStore {\n    constructor(languageIdCodec) {\n        this._lineTokens = [];\n        this._len = 0;\n        this._languageIdCodec = languageIdCodec;\n    }\n    flush() {\n        this._lineTokens = [];\n        this._len = 0;\n    }\n    get hasTokens() {\n        return this._lineTokens.length > 0;\n    }\n    getTokens(topLevelLanguageId, lineIndex, lineText) {\n        let rawLineTokens = null;\n        if (lineIndex < this._len) {\n            rawLineTokens = this._lineTokens[lineIndex];\n        }\n        if (rawLineTokens !== null && rawLineTokens !== EMPTY_LINE_TOKENS) {\n            return new LineTokens(toUint32Array(rawLineTokens), lineText, this._languageIdCodec);\n        }\n        const lineTokens = new Uint32Array(2);\n        lineTokens[0] = lineText.length;\n        lineTokens[1] = getDefaultMetadata(this._languageIdCodec.encodeLanguageId(topLevelLanguageId));\n        return new LineTokens(lineTokens, lineText, this._languageIdCodec);\n    }\n    static _massageTokens(topLevelLanguageId, lineTextLength, _tokens) {\n        const tokens = _tokens ? toUint32Array(_tokens) : null;\n        if (lineTextLength === 0) {\n            let hasDifferentLanguageId = false;\n            if (tokens && tokens.length > 1) {\n                hasDifferentLanguageId = (TokenMetadata.getLanguageId(tokens[1]) !== topLevelLanguageId);\n            }\n            if (!hasDifferentLanguageId) {\n                return EMPTY_LINE_TOKENS;\n            }\n        }\n        if (!tokens || tokens.length === 0) {\n            const tokens = new Uint32Array(2);\n            tokens[0] = lineTextLength;\n            tokens[1] = getDefaultMetadata(topLevelLanguageId);\n            return tokens.buffer;\n        }\n        // Ensure the last token covers the end of the text\n        tokens[tokens.length - 2] = lineTextLength;\n        if (tokens.byteOffset === 0 && tokens.byteLength === tokens.buffer.byteLength) {\n            // Store directly the ArrayBuffer pointer to save an object\n            return tokens.buffer;\n        }\n        return tokens;\n    }\n    _ensureLine(lineIndex) {\n        while (lineIndex >= this._len) {\n            this._lineTokens[this._len] = null;\n            this._len++;\n        }\n    }\n    _deleteLines(start, deleteCount) {\n        if (deleteCount === 0) {\n            return;\n        }\n        if (start + deleteCount > this._len) {\n            deleteCount = this._len - start;\n        }\n        this._lineTokens.splice(start, deleteCount);\n        this._len -= deleteCount;\n    }\n    _insertLines(insertIndex, insertCount) {\n        if (insertCount === 0) {\n            return;\n        }\n        const lineTokens = [];\n        for (let i = 0; i < insertCount; i++) {\n            lineTokens[i] = null;\n        }\n        this._lineTokens = arrays.arrayInsert(this._lineTokens, insertIndex, lineTokens);\n        this._len += insertCount;\n    }\n    setTokens(topLevelLanguageId, lineIndex, lineTextLength, _tokens, checkEquality) {\n        const tokens = ContiguousTokensStore._massageTokens(this._languageIdCodec.encodeLanguageId(topLevelLanguageId), lineTextLength, _tokens);\n        this._ensureLine(lineIndex);\n        const oldTokens = this._lineTokens[lineIndex];\n        this._lineTokens[lineIndex] = tokens;\n        if (checkEquality) {\n            return !ContiguousTokensStore._equals(oldTokens, tokens);\n        }\n        return false;\n    }\n    static _equals(_a, _b) {\n        if (!_a || !_b) {\n            return !_a && !_b;\n        }\n        const a = toUint32Array(_a);\n        const b = toUint32Array(_b);\n        if (a.length !== b.length) {\n            return false;\n        }\n        for (let i = 0, len = a.length; i < len; i++) {\n            if (a[i] !== b[i]) {\n                return false;\n            }\n        }\n        return true;\n    }\n    //#region Editing\n    acceptEdit(range, eolCount, firstLineLength) {\n        this._acceptDeleteRange(range);\n        this._acceptInsertText(new Position(range.startLineNumber, range.startColumn), eolCount, firstLineLength);\n    }\n    _acceptDeleteRange(range) {\n        const firstLineIndex = range.startLineNumber - 1;\n        if (firstLineIndex >= this._len) {\n            return;\n        }\n        if (range.startLineNumber === range.endLineNumber) {\n            if (range.startColumn === range.endColumn) {\n                // Nothing to delete\n                return;\n            }\n            this._lineTokens[firstLineIndex] = ContiguousTokensEditing.delete(this._lineTokens[firstLineIndex], range.startColumn - 1, range.endColumn - 1);\n            return;\n        }\n        this._lineTokens[firstLineIndex] = ContiguousTokensEditing.deleteEnding(this._lineTokens[firstLineIndex], range.startColumn - 1);\n        const lastLineIndex = range.endLineNumber - 1;\n        let lastLineTokens = null;\n        if (lastLineIndex < this._len) {\n            lastLineTokens = ContiguousTokensEditing.deleteBeginning(this._lineTokens[lastLineIndex], range.endColumn - 1);\n        }\n        // Take remaining text on last line and append it to remaining text on first line\n        this._lineTokens[firstLineIndex] = ContiguousTokensEditing.append(this._lineTokens[firstLineIndex], lastLineTokens);\n        // Delete middle lines\n        this._deleteLines(range.startLineNumber, range.endLineNumber - range.startLineNumber);\n    }\n    _acceptInsertText(position, eolCount, firstLineLength) {\n        if (eolCount === 0 && firstLineLength === 0) {\n            // Nothing to insert\n            return;\n        }\n        const lineIndex = position.lineNumber - 1;\n        if (lineIndex >= this._len) {\n            return;\n        }\n        if (eolCount === 0) {\n            // Inserting text on one line\n            this._lineTokens[lineIndex] = ContiguousTokensEditing.insert(this._lineTokens[lineIndex], position.column - 1, firstLineLength);\n            return;\n        }\n        this._lineTokens[lineIndex] = ContiguousTokensEditing.deleteEnding(this._lineTokens[lineIndex], position.column - 1);\n        this._lineTokens[lineIndex] = ContiguousTokensEditing.insert(this._lineTokens[lineIndex], position.column - 1, firstLineLength);\n        this._insertLines(position.lineNumber, eolCount);\n    }\n    //#endregion\n    setMultilineTokens(tokens, textModel) {\n        if (tokens.length === 0) {\n            return { changes: [] };\n        }\n        const ranges = [];\n        for (let i = 0, len = tokens.length; i < len; i++) {\n            const element = tokens[i];\n            let minChangedLineNumber = 0;\n            let maxChangedLineNumber = 0;\n            let hasChange = false;\n            for (let lineNumber = element.startLineNumber; lineNumber <= element.endLineNumber; lineNumber++) {\n                if (hasChange) {\n                    this.setTokens(textModel.getLanguageId(), lineNumber - 1, textModel.getLineLength(lineNumber), element.getLineTokens(lineNumber), false);\n                    maxChangedLineNumber = lineNumber;\n                }\n                else {\n                    const lineHasChange = this.setTokens(textModel.getLanguageId(), lineNumber - 1, textModel.getLineLength(lineNumber), element.getLineTokens(lineNumber), true);\n                    if (lineHasChange) {\n                        hasChange = true;\n                        minChangedLineNumber = lineNumber;\n                        maxChangedLineNumber = lineNumber;\n                    }\n                }\n            }\n            if (hasChange) {\n                ranges.push({ fromLineNumber: minChangedLineNumber, toLineNumber: maxChangedLineNumber, });\n            }\n        }\n        return { changes: ranges };\n    }\n}\nfunction getDefaultMetadata(topLevelLanguageId) {\n    return ((topLevelLanguageId << 0 /* MetadataConsts.LANGUAGEID_OFFSET */)\n        | (0 /* StandardTokenType.Other */ << 8 /* MetadataConsts.TOKEN_TYPE_OFFSET */)\n        | (0 /* FontStyle.None */ << 11 /* MetadataConsts.FONT_STYLE_OFFSET */)\n        | (1 /* ColorId.DefaultForeground */ << 15 /* MetadataConsts.FOREGROUND_OFFSET */)\n        | (2 /* ColorId.DefaultBackground */ << 24 /* MetadataConsts.BACKGROUND_OFFSET */)\n        // If there is no grammar, we just take a guess and try to match brackets.\n        | (1024 /* MetadataConsts.BALANCED_BRACKETS_MASK */)) >>> 0;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/tokens/lineTokens.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { TokenMetadata } from '../encodedTokenAttributes.js';\nexport class LineTokens {\n    static createEmpty(lineContent, decoder) {\n        const defaultMetadata = LineTokens.defaultTokenMetadata;\n        const tokens = new Uint32Array(2);\n        tokens[0] = lineContent.length;\n        tokens[1] = defaultMetadata;\n        return new LineTokens(tokens, lineContent, decoder);\n    }\n    static createFromTextAndMetadata(data, decoder) {\n        let offset = 0;\n        let fullText = '';\n        const tokens = new Array();\n        for (const { text, metadata } of data) {\n            tokens.push(offset + text.length, metadata);\n            offset += text.length;\n            fullText += text;\n        }\n        return new LineTokens(new Uint32Array(tokens), fullText, decoder);\n    }\n    constructor(tokens, text, decoder) {\n        this._lineTokensBrand = undefined;\n        this._tokens = tokens;\n        this._tokensCount = (this._tokens.length >>> 1);\n        this._text = text;\n        this.languageIdCodec = decoder;\n    }\n    equals(other) {\n        if (other instanceof LineTokens) {\n            return this.slicedEquals(other, 0, this._tokensCount);\n        }\n        return false;\n    }\n    slicedEquals(other, sliceFromTokenIndex, sliceTokenCount) {\n        if (this._text !== other._text) {\n            return false;\n        }\n        if (this._tokensCount !== other._tokensCount) {\n            return false;\n        }\n        const from = (sliceFromTokenIndex << 1);\n        const to = from + (sliceTokenCount << 1);\n        for (let i = from; i < to; i++) {\n            if (this._tokens[i] !== other._tokens[i]) {\n                return false;\n            }\n        }\n        return true;\n    }\n    getLineContent() {\n        return this._text;\n    }\n    getCount() {\n        return this._tokensCount;\n    }\n    getStartOffset(tokenIndex) {\n        if (tokenIndex > 0) {\n            return this._tokens[(tokenIndex - 1) << 1];\n        }\n        return 0;\n    }\n    getMetadata(tokenIndex) {\n        const metadata = this._tokens[(tokenIndex << 1) + 1];\n        return metadata;\n    }\n    getLanguageId(tokenIndex) {\n        const metadata = this._tokens[(tokenIndex << 1) + 1];\n        const languageId = TokenMetadata.getLanguageId(metadata);\n        return this.languageIdCodec.decodeLanguageId(languageId);\n    }\n    getStandardTokenType(tokenIndex) {\n        const metadata = this._tokens[(tokenIndex << 1) + 1];\n        return TokenMetadata.getTokenType(metadata);\n    }\n    getForeground(tokenIndex) {\n        const metadata = this._tokens[(tokenIndex << 1) + 1];\n        return TokenMetadata.getForeground(metadata);\n    }\n    getClassName(tokenIndex) {\n        const metadata = this._tokens[(tokenIndex << 1) + 1];\n        return TokenMetadata.getClassNameFromMetadata(metadata);\n    }\n    getInlineStyle(tokenIndex, colorMap) {\n        const metadata = this._tokens[(tokenIndex << 1) + 1];\n        return TokenMetadata.getInlineStyleFromMetadata(metadata, colorMap);\n    }\n    getPresentation(tokenIndex) {\n        const metadata = this._tokens[(tokenIndex << 1) + 1];\n        return TokenMetadata.getPresentationFromMetadata(metadata);\n    }\n    getEndOffset(tokenIndex) {\n        return this._tokens[tokenIndex << 1];\n    }\n    /**\n     * Find the token containing offset `offset`.\n     * @param offset The search offset\n     * @return The index of the token containing the offset.\n     */\n    findTokenIndexAtOffset(offset) {\n        return LineTokens.findIndexInTokensArray(this._tokens, offset);\n    }\n    inflate() {\n        return this;\n    }\n    sliceAndInflate(startOffset, endOffset, deltaOffset) {\n        return new SliceLineTokens(this, startOffset, endOffset, deltaOffset);\n    }\n    static convertToEndOffset(tokens, lineTextLength) {\n        const tokenCount = (tokens.length >>> 1);\n        const lastTokenIndex = tokenCount - 1;\n        for (let tokenIndex = 0; tokenIndex < lastTokenIndex; tokenIndex++) {\n            tokens[tokenIndex << 1] = tokens[(tokenIndex + 1) << 1];\n        }\n        tokens[lastTokenIndex << 1] = lineTextLength;\n    }\n    static findIndexInTokensArray(tokens, desiredIndex) {\n        if (tokens.length <= 2) {\n            return 0;\n        }\n        let low = 0;\n        let high = (tokens.length >>> 1) - 1;\n        while (low < high) {\n            const mid = low + Math.floor((high - low) / 2);\n            const endOffset = tokens[(mid << 1)];\n            if (endOffset === desiredIndex) {\n                return mid + 1;\n            }\n            else if (endOffset < desiredIndex) {\n                low = mid + 1;\n            }\n            else if (endOffset > desiredIndex) {\n                high = mid;\n            }\n        }\n        return low;\n    }\n    /**\n     * @pure\n     * @param insertTokens Must be sorted by offset.\n    */\n    withInserted(insertTokens) {\n        if (insertTokens.length === 0) {\n            return this;\n        }\n        let nextOriginalTokenIdx = 0;\n        let nextInsertTokenIdx = 0;\n        let text = '';\n        const newTokens = new Array();\n        let originalEndOffset = 0;\n        while (true) {\n            const nextOriginalTokenEndOffset = nextOriginalTokenIdx < this._tokensCount ? this._tokens[nextOriginalTokenIdx << 1] : -1;\n            const nextInsertToken = nextInsertTokenIdx < insertTokens.length ? insertTokens[nextInsertTokenIdx] : null;\n            if (nextOriginalTokenEndOffset !== -1 && (nextInsertToken === null || nextOriginalTokenEndOffset <= nextInsertToken.offset)) {\n                // original token ends before next insert token\n                text += this._text.substring(originalEndOffset, nextOriginalTokenEndOffset);\n                const metadata = this._tokens[(nextOriginalTokenIdx << 1) + 1];\n                newTokens.push(text.length, metadata);\n                nextOriginalTokenIdx++;\n                originalEndOffset = nextOriginalTokenEndOffset;\n            }\n            else if (nextInsertToken) {\n                if (nextInsertToken.offset > originalEndOffset) {\n                    // insert token is in the middle of the next token.\n                    text += this._text.substring(originalEndOffset, nextInsertToken.offset);\n                    const metadata = this._tokens[(nextOriginalTokenIdx << 1) + 1];\n                    newTokens.push(text.length, metadata);\n                    originalEndOffset = nextInsertToken.offset;\n                }\n                text += nextInsertToken.text;\n                newTokens.push(text.length, nextInsertToken.tokenMetadata);\n                nextInsertTokenIdx++;\n            }\n            else {\n                break;\n            }\n        }\n        return new LineTokens(new Uint32Array(newTokens), text, this.languageIdCodec);\n    }\n    getTokenText(tokenIndex) {\n        const startOffset = this.getStartOffset(tokenIndex);\n        const endOffset = this.getEndOffset(tokenIndex);\n        const text = this._text.substring(startOffset, endOffset);\n        return text;\n    }\n    forEach(callback) {\n        const tokenCount = this.getCount();\n        for (let tokenIndex = 0; tokenIndex < tokenCount; tokenIndex++) {\n            callback(tokenIndex);\n        }\n    }\n}\nLineTokens.defaultTokenMetadata = ((0 /* FontStyle.None */ << 11 /* MetadataConsts.FONT_STYLE_OFFSET */)\n    | (1 /* ColorId.DefaultForeground */ << 15 /* MetadataConsts.FOREGROUND_OFFSET */)\n    | (2 /* ColorId.DefaultBackground */ << 24 /* MetadataConsts.BACKGROUND_OFFSET */)) >>> 0;\nclass SliceLineTokens {\n    constructor(source, startOffset, endOffset, deltaOffset) {\n        this._source = source;\n        this._startOffset = startOffset;\n        this._endOffset = endOffset;\n        this._deltaOffset = deltaOffset;\n        this._firstTokenIndex = source.findTokenIndexAtOffset(startOffset);\n        this.languageIdCodec = source.languageIdCodec;\n        this._tokensCount = 0;\n        for (let i = this._firstTokenIndex, len = source.getCount(); i < len; i++) {\n            const tokenStartOffset = source.getStartOffset(i);\n            if (tokenStartOffset >= endOffset) {\n                break;\n            }\n            this._tokensCount++;\n        }\n    }\n    getMetadata(tokenIndex) {\n        return this._source.getMetadata(this._firstTokenIndex + tokenIndex);\n    }\n    getLanguageId(tokenIndex) {\n        return this._source.getLanguageId(this._firstTokenIndex + tokenIndex);\n    }\n    getLineContent() {\n        return this._source.getLineContent().substring(this._startOffset, this._endOffset);\n    }\n    equals(other) {\n        if (other instanceof SliceLineTokens) {\n            return (this._startOffset === other._startOffset\n                && this._endOffset === other._endOffset\n                && this._deltaOffset === other._deltaOffset\n                && this._source.slicedEquals(other._source, this._firstTokenIndex, this._tokensCount));\n        }\n        return false;\n    }\n    getCount() {\n        return this._tokensCount;\n    }\n    getStandardTokenType(tokenIndex) {\n        return this._source.getStandardTokenType(this._firstTokenIndex + tokenIndex);\n    }\n    getForeground(tokenIndex) {\n        return this._source.getForeground(this._firstTokenIndex + tokenIndex);\n    }\n    getEndOffset(tokenIndex) {\n        const tokenEndOffset = this._source.getEndOffset(this._firstTokenIndex + tokenIndex);\n        return Math.min(this._endOffset, tokenEndOffset) - this._startOffset + this._deltaOffset;\n    }\n    getClassName(tokenIndex) {\n        return this._source.getClassName(this._firstTokenIndex + tokenIndex);\n    }\n    getInlineStyle(tokenIndex, colorMap) {\n        return this._source.getInlineStyle(this._firstTokenIndex + tokenIndex, colorMap);\n    }\n    getPresentation(tokenIndex) {\n        return this._source.getPresentation(this._firstTokenIndex + tokenIndex);\n    }\n    findTokenIndexAtOffset(offset) {\n        return this._source.findTokenIndexAtOffset(offset + this._startOffset - this._deltaOffset) - this._firstTokenIndex;\n    }\n    getTokenText(tokenIndex) {\n        const adjustedTokenIndex = this._firstTokenIndex + tokenIndex;\n        const tokenStartOffset = this._source.getStartOffset(adjustedTokenIndex);\n        const tokenEndOffset = this._source.getEndOffset(adjustedTokenIndex);\n        let text = this._source.getTokenText(adjustedTokenIndex);\n        if (tokenStartOffset < this._startOffset) {\n            text = text.substring(this._startOffset - tokenStartOffset);\n        }\n        if (tokenEndOffset > this._endOffset) {\n            text = text.substring(0, text.length - (tokenEndOffset - this._endOffset));\n        }\n        return text;\n    }\n    forEach(callback) {\n        for (let tokenIndex = 0; tokenIndex < this.getCount(); tokenIndex++) {\n            callback(tokenIndex);\n        }\n    }\n}\nexport function getStandardTokenTypeAtPosition(model, position) {\n    const lineNumber = position.lineNumber;\n    if (!model.tokenization.isCheapToTokenize(lineNumber)) {\n        return undefined;\n    }\n    model.tokenization.forceTokenization(lineNumber);\n    const lineTokens = model.tokenization.getLineTokens(lineNumber);\n    const tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n    const tokenType = lineTokens.getStandardTokenType(tokenIndex);\n    return tokenType;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/tokens/sparseMultilineTokens.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Position } from '../core/position.js';\nimport { Range } from '../core/range.js';\nimport { countEOL } from '../core/eolCounter.js';\n/**\n * Represents sparse tokens over a contiguous range of lines.\n */\nexport class SparseMultilineTokens {\n    static create(startLineNumber, tokens) {\n        return new SparseMultilineTokens(startLineNumber, new SparseMultilineTokensStorage(tokens));\n    }\n    /**\n     * (Inclusive) start line number for these tokens.\n     */\n    get startLineNumber() {\n        return this._startLineNumber;\n    }\n    /**\n     * (Inclusive) end line number for these tokens.\n     */\n    get endLineNumber() {\n        return this._endLineNumber;\n    }\n    constructor(startLineNumber, tokens) {\n        this._startLineNumber = startLineNumber;\n        this._tokens = tokens;\n        this._endLineNumber = this._startLineNumber + this._tokens.getMaxDeltaLine();\n    }\n    toString() {\n        return this._tokens.toString(this._startLineNumber);\n    }\n    _updateEndLineNumber() {\n        this._endLineNumber = this._startLineNumber + this._tokens.getMaxDeltaLine();\n    }\n    isEmpty() {\n        return this._tokens.isEmpty();\n    }\n    getLineTokens(lineNumber) {\n        if (this._startLineNumber <= lineNumber && lineNumber <= this._endLineNumber) {\n            return this._tokens.getLineTokens(lineNumber - this._startLineNumber);\n        }\n        return null;\n    }\n    getRange() {\n        const deltaRange = this._tokens.getRange();\n        if (!deltaRange) {\n            return deltaRange;\n        }\n        return new Range(this._startLineNumber + deltaRange.startLineNumber, deltaRange.startColumn, this._startLineNumber + deltaRange.endLineNumber, deltaRange.endColumn);\n    }\n    removeTokens(range) {\n        const startLineIndex = range.startLineNumber - this._startLineNumber;\n        const endLineIndex = range.endLineNumber - this._startLineNumber;\n        this._startLineNumber += this._tokens.removeTokens(startLineIndex, range.startColumn - 1, endLineIndex, range.endColumn - 1);\n        this._updateEndLineNumber();\n    }\n    split(range) {\n        // split tokens to two:\n        // a) all the tokens before `range`\n        // b) all the tokens after `range`\n        const startLineIndex = range.startLineNumber - this._startLineNumber;\n        const endLineIndex = range.endLineNumber - this._startLineNumber;\n        const [a, b, bDeltaLine] = this._tokens.split(startLineIndex, range.startColumn - 1, endLineIndex, range.endColumn - 1);\n        return [new SparseMultilineTokens(this._startLineNumber, a), new SparseMultilineTokens(this._startLineNumber + bDeltaLine, b)];\n    }\n    applyEdit(range, text) {\n        const [eolCount, firstLineLength, lastLineLength] = countEOL(text);\n        this.acceptEdit(range, eolCount, firstLineLength, lastLineLength, text.length > 0 ? text.charCodeAt(0) : 0 /* CharCode.Null */);\n    }\n    acceptEdit(range, eolCount, firstLineLength, lastLineLength, firstCharCode) {\n        this._acceptDeleteRange(range);\n        this._acceptInsertText(new Position(range.startLineNumber, range.startColumn), eolCount, firstLineLength, lastLineLength, firstCharCode);\n        this._updateEndLineNumber();\n    }\n    _acceptDeleteRange(range) {\n        if (range.startLineNumber === range.endLineNumber && range.startColumn === range.endColumn) {\n            // Nothing to delete\n            return;\n        }\n        const firstLineIndex = range.startLineNumber - this._startLineNumber;\n        const lastLineIndex = range.endLineNumber - this._startLineNumber;\n        if (lastLineIndex < 0) {\n            // this deletion occurs entirely before this block, so we only need to adjust line numbers\n            const deletedLinesCount = lastLineIndex - firstLineIndex;\n            this._startLineNumber -= deletedLinesCount;\n            return;\n        }\n        const tokenMaxDeltaLine = this._tokens.getMaxDeltaLine();\n        if (firstLineIndex >= tokenMaxDeltaLine + 1) {\n            // this deletion occurs entirely after this block, so there is nothing to do\n            return;\n        }\n        if (firstLineIndex < 0 && lastLineIndex >= tokenMaxDeltaLine + 1) {\n            // this deletion completely encompasses this block\n            this._startLineNumber = 0;\n            this._tokens.clear();\n            return;\n        }\n        if (firstLineIndex < 0) {\n            const deletedBefore = -firstLineIndex;\n            this._startLineNumber -= deletedBefore;\n            this._tokens.acceptDeleteRange(range.startColumn - 1, 0, 0, lastLineIndex, range.endColumn - 1);\n        }\n        else {\n            this._tokens.acceptDeleteRange(0, firstLineIndex, range.startColumn - 1, lastLineIndex, range.endColumn - 1);\n        }\n    }\n    _acceptInsertText(position, eolCount, firstLineLength, lastLineLength, firstCharCode) {\n        if (eolCount === 0 && firstLineLength === 0) {\n            // Nothing to insert\n            return;\n        }\n        const lineIndex = position.lineNumber - this._startLineNumber;\n        if (lineIndex < 0) {\n            // this insertion occurs before this block, so we only need to adjust line numbers\n            this._startLineNumber += eolCount;\n            return;\n        }\n        const tokenMaxDeltaLine = this._tokens.getMaxDeltaLine();\n        if (lineIndex >= tokenMaxDeltaLine + 1) {\n            // this insertion occurs after this block, so there is nothing to do\n            return;\n        }\n        this._tokens.acceptInsertText(lineIndex, position.column - 1, eolCount, firstLineLength, lastLineLength, firstCharCode);\n    }\n}\nclass SparseMultilineTokensStorage {\n    constructor(tokens) {\n        this._tokens = tokens;\n        this._tokenCount = tokens.length / 4;\n    }\n    toString(startLineNumber) {\n        const pieces = [];\n        for (let i = 0; i < this._tokenCount; i++) {\n            pieces.push(`(${this._getDeltaLine(i) + startLineNumber},${this._getStartCharacter(i)}-${this._getEndCharacter(i)})`);\n        }\n        return `[${pieces.join(',')}]`;\n    }\n    getMaxDeltaLine() {\n        const tokenCount = this._getTokenCount();\n        if (tokenCount === 0) {\n            return -1;\n        }\n        return this._getDeltaLine(tokenCount - 1);\n    }\n    getRange() {\n        const tokenCount = this._getTokenCount();\n        if (tokenCount === 0) {\n            return null;\n        }\n        const startChar = this._getStartCharacter(0);\n        const maxDeltaLine = this._getDeltaLine(tokenCount - 1);\n        const endChar = this._getEndCharacter(tokenCount - 1);\n        return new Range(0, startChar + 1, maxDeltaLine, endChar + 1);\n    }\n    _getTokenCount() {\n        return this._tokenCount;\n    }\n    _getDeltaLine(tokenIndex) {\n        return this._tokens[4 * tokenIndex];\n    }\n    _getStartCharacter(tokenIndex) {\n        return this._tokens[4 * tokenIndex + 1];\n    }\n    _getEndCharacter(tokenIndex) {\n        return this._tokens[4 * tokenIndex + 2];\n    }\n    isEmpty() {\n        return (this._getTokenCount() === 0);\n    }\n    getLineTokens(deltaLine) {\n        let low = 0;\n        let high = this._getTokenCount() - 1;\n        while (low < high) {\n            const mid = low + Math.floor((high - low) / 2);\n            const midDeltaLine = this._getDeltaLine(mid);\n            if (midDeltaLine < deltaLine) {\n                low = mid + 1;\n            }\n            else if (midDeltaLine > deltaLine) {\n                high = mid - 1;\n            }\n            else {\n                let min = mid;\n                while (min > low && this._getDeltaLine(min - 1) === deltaLine) {\n                    min--;\n                }\n                let max = mid;\n                while (max < high && this._getDeltaLine(max + 1) === deltaLine) {\n                    max++;\n                }\n                return new SparseLineTokens(this._tokens.subarray(4 * min, 4 * max + 4));\n            }\n        }\n        if (this._getDeltaLine(low) === deltaLine) {\n            return new SparseLineTokens(this._tokens.subarray(4 * low, 4 * low + 4));\n        }\n        return null;\n    }\n    clear() {\n        this._tokenCount = 0;\n    }\n    removeTokens(startDeltaLine, startChar, endDeltaLine, endChar) {\n        const tokens = this._tokens;\n        const tokenCount = this._tokenCount;\n        let newTokenCount = 0;\n        let hasDeletedTokens = false;\n        let firstDeltaLine = 0;\n        for (let i = 0; i < tokenCount; i++) {\n            const srcOffset = 4 * i;\n            const tokenDeltaLine = tokens[srcOffset];\n            const tokenStartCharacter = tokens[srcOffset + 1];\n            const tokenEndCharacter = tokens[srcOffset + 2];\n            const tokenMetadata = tokens[srcOffset + 3];\n            if ((tokenDeltaLine > startDeltaLine || (tokenDeltaLine === startDeltaLine && tokenEndCharacter >= startChar))\n                && (tokenDeltaLine < endDeltaLine || (tokenDeltaLine === endDeltaLine && tokenStartCharacter <= endChar))) {\n                hasDeletedTokens = true;\n            }\n            else {\n                if (newTokenCount === 0) {\n                    firstDeltaLine = tokenDeltaLine;\n                }\n                if (hasDeletedTokens) {\n                    // must move the token to the left\n                    const destOffset = 4 * newTokenCount;\n                    tokens[destOffset] = tokenDeltaLine - firstDeltaLine;\n                    tokens[destOffset + 1] = tokenStartCharacter;\n                    tokens[destOffset + 2] = tokenEndCharacter;\n                    tokens[destOffset + 3] = tokenMetadata;\n                }\n                newTokenCount++;\n            }\n        }\n        this._tokenCount = newTokenCount;\n        return firstDeltaLine;\n    }\n    split(startDeltaLine, startChar, endDeltaLine, endChar) {\n        const tokens = this._tokens;\n        const tokenCount = this._tokenCount;\n        const aTokens = [];\n        const bTokens = [];\n        let destTokens = aTokens;\n        let destOffset = 0;\n        let destFirstDeltaLine = 0;\n        for (let i = 0; i < tokenCount; i++) {\n            const srcOffset = 4 * i;\n            const tokenDeltaLine = tokens[srcOffset];\n            const tokenStartCharacter = tokens[srcOffset + 1];\n            const tokenEndCharacter = tokens[srcOffset + 2];\n            const tokenMetadata = tokens[srcOffset + 3];\n            if ((tokenDeltaLine > startDeltaLine || (tokenDeltaLine === startDeltaLine && tokenEndCharacter >= startChar))) {\n                if ((tokenDeltaLine < endDeltaLine || (tokenDeltaLine === endDeltaLine && tokenStartCharacter <= endChar))) {\n                    // this token is touching the range\n                    continue;\n                }\n                else {\n                    // this token is after the range\n                    if (destTokens !== bTokens) {\n                        // this token is the first token after the range\n                        destTokens = bTokens;\n                        destOffset = 0;\n                        destFirstDeltaLine = tokenDeltaLine;\n                    }\n                }\n            }\n            destTokens[destOffset++] = tokenDeltaLine - destFirstDeltaLine;\n            destTokens[destOffset++] = tokenStartCharacter;\n            destTokens[destOffset++] = tokenEndCharacter;\n            destTokens[destOffset++] = tokenMetadata;\n        }\n        return [new SparseMultilineTokensStorage(new Uint32Array(aTokens)), new SparseMultilineTokensStorage(new Uint32Array(bTokens)), destFirstDeltaLine];\n    }\n    acceptDeleteRange(horizontalShiftForFirstLineTokens, startDeltaLine, startCharacter, endDeltaLine, endCharacter) {\n        // This is a bit complex, here are the cases I used to think about this:\n        //\n        // 1. The token starts before the deletion range\n        // 1a. The token is completely before the deletion range\n        //               -----------\n        //                          xxxxxxxxxxx\n        // 1b. The token starts before, the deletion range ends after the token\n        //               -----------\n        //                      xxxxxxxxxxx\n        // 1c. The token starts before, the deletion range ends precisely with the token\n        //               ---------------\n        //                      xxxxxxxx\n        // 1d. The token starts before, the deletion range is inside the token\n        //               ---------------\n        //                    xxxxx\n        //\n        // 2. The token starts at the same position with the deletion range\n        // 2a. The token starts at the same position, and ends inside the deletion range\n        //               -------\n        //               xxxxxxxxxxx\n        // 2b. The token starts at the same position, and ends at the same position as the deletion range\n        //               ----------\n        //               xxxxxxxxxx\n        // 2c. The token starts at the same position, and ends after the deletion range\n        //               -------------\n        //               xxxxxxx\n        //\n        // 3. The token starts inside the deletion range\n        // 3a. The token is inside the deletion range\n        //                -------\n        //             xxxxxxxxxxxxx\n        // 3b. The token starts inside the deletion range, and ends at the same position as the deletion range\n        //                ----------\n        //             xxxxxxxxxxxxx\n        // 3c. The token starts inside the deletion range, and ends after the deletion range\n        //                ------------\n        //             xxxxxxxxxxx\n        //\n        // 4. The token starts after the deletion range\n        //                  -----------\n        //          xxxxxxxx\n        //\n        const tokens = this._tokens;\n        const tokenCount = this._tokenCount;\n        const deletedLineCount = (endDeltaLine - startDeltaLine);\n        let newTokenCount = 0;\n        let hasDeletedTokens = false;\n        for (let i = 0; i < tokenCount; i++) {\n            const srcOffset = 4 * i;\n            let tokenDeltaLine = tokens[srcOffset];\n            let tokenStartCharacter = tokens[srcOffset + 1];\n            let tokenEndCharacter = tokens[srcOffset + 2];\n            const tokenMetadata = tokens[srcOffset + 3];\n            if (tokenDeltaLine < startDeltaLine || (tokenDeltaLine === startDeltaLine && tokenEndCharacter <= startCharacter)) {\n                // 1a. The token is completely before the deletion range\n                // => nothing to do\n                newTokenCount++;\n                continue;\n            }\n            else if (tokenDeltaLine === startDeltaLine && tokenStartCharacter < startCharacter) {\n                // 1b, 1c, 1d\n                // => the token survives, but it needs to shrink\n                if (tokenDeltaLine === endDeltaLine && tokenEndCharacter > endCharacter) {\n                    // 1d. The token starts before, the deletion range is inside the token\n                    // => the token shrinks by the deletion character count\n                    tokenEndCharacter -= (endCharacter - startCharacter);\n                }\n                else {\n                    // 1b. The token starts before, the deletion range ends after the token\n                    // 1c. The token starts before, the deletion range ends precisely with the token\n                    // => the token shrinks its ending to the deletion start\n                    tokenEndCharacter = startCharacter;\n                }\n            }\n            else if (tokenDeltaLine === startDeltaLine && tokenStartCharacter === startCharacter) {\n                // 2a, 2b, 2c\n                if (tokenDeltaLine === endDeltaLine && tokenEndCharacter > endCharacter) {\n                    // 2c. The token starts at the same position, and ends after the deletion range\n                    // => the token shrinks by the deletion character count\n                    tokenEndCharacter -= (endCharacter - startCharacter);\n                }\n                else {\n                    // 2a. The token starts at the same position, and ends inside the deletion range\n                    // 2b. The token starts at the same position, and ends at the same position as the deletion range\n                    // => the token is deleted\n                    hasDeletedTokens = true;\n                    continue;\n                }\n            }\n            else if (tokenDeltaLine < endDeltaLine || (tokenDeltaLine === endDeltaLine && tokenStartCharacter < endCharacter)) {\n                // 3a, 3b, 3c\n                if (tokenDeltaLine === endDeltaLine && tokenEndCharacter > endCharacter) {\n                    // 3c. The token starts inside the deletion range, and ends after the deletion range\n                    // => the token moves to continue right after the deletion\n                    tokenDeltaLine = startDeltaLine;\n                    tokenStartCharacter = startCharacter;\n                    tokenEndCharacter = tokenStartCharacter + (tokenEndCharacter - endCharacter);\n                }\n                else {\n                    // 3a. The token is inside the deletion range\n                    // 3b. The token starts inside the deletion range, and ends at the same position as the deletion range\n                    // => the token is deleted\n                    hasDeletedTokens = true;\n                    continue;\n                }\n            }\n            else if (tokenDeltaLine > endDeltaLine) {\n                // 4. (partial) The token starts after the deletion range, on a line below...\n                if (deletedLineCount === 0 && !hasDeletedTokens) {\n                    // early stop, there is no need to walk all the tokens and do nothing...\n                    newTokenCount = tokenCount;\n                    break;\n                }\n                tokenDeltaLine -= deletedLineCount;\n            }\n            else if (tokenDeltaLine === endDeltaLine && tokenStartCharacter >= endCharacter) {\n                // 4. (continued) The token starts after the deletion range, on the last line where a deletion occurs\n                if (horizontalShiftForFirstLineTokens && tokenDeltaLine === 0) {\n                    tokenStartCharacter += horizontalShiftForFirstLineTokens;\n                    tokenEndCharacter += horizontalShiftForFirstLineTokens;\n                }\n                tokenDeltaLine -= deletedLineCount;\n                tokenStartCharacter -= (endCharacter - startCharacter);\n                tokenEndCharacter -= (endCharacter - startCharacter);\n            }\n            else {\n                throw new Error(`Not possible!`);\n            }\n            const destOffset = 4 * newTokenCount;\n            tokens[destOffset] = tokenDeltaLine;\n            tokens[destOffset + 1] = tokenStartCharacter;\n            tokens[destOffset + 2] = tokenEndCharacter;\n            tokens[destOffset + 3] = tokenMetadata;\n            newTokenCount++;\n        }\n        this._tokenCount = newTokenCount;\n    }\n    acceptInsertText(deltaLine, character, eolCount, firstLineLength, lastLineLength, firstCharCode) {\n        // Here are the cases I used to think about this:\n        //\n        // 1. The token is completely before the insertion point\n        //            -----------   |\n        // 2. The token ends precisely at the insertion point\n        //            -----------|\n        // 3. The token contains the insertion point\n        //            -----|------\n        // 4. The token starts precisely at the insertion point\n        //            |-----------\n        // 5. The token is completely after the insertion point\n        //            |   -----------\n        //\n        const isInsertingPreciselyOneWordCharacter = (eolCount === 0\n            && firstLineLength === 1\n            && ((firstCharCode >= 48 /* CharCode.Digit0 */ && firstCharCode <= 57 /* CharCode.Digit9 */)\n                || (firstCharCode >= 65 /* CharCode.A */ && firstCharCode <= 90 /* CharCode.Z */)\n                || (firstCharCode >= 97 /* CharCode.a */ && firstCharCode <= 122 /* CharCode.z */)));\n        const tokens = this._tokens;\n        const tokenCount = this._tokenCount;\n        for (let i = 0; i < tokenCount; i++) {\n            const offset = 4 * i;\n            let tokenDeltaLine = tokens[offset];\n            let tokenStartCharacter = tokens[offset + 1];\n            let tokenEndCharacter = tokens[offset + 2];\n            if (tokenDeltaLine < deltaLine || (tokenDeltaLine === deltaLine && tokenEndCharacter < character)) {\n                // 1. The token is completely before the insertion point\n                // => nothing to do\n                continue;\n            }\n            else if (tokenDeltaLine === deltaLine && tokenEndCharacter === character) {\n                // 2. The token ends precisely at the insertion point\n                // => expand the end character only if inserting precisely one character that is a word character\n                if (isInsertingPreciselyOneWordCharacter) {\n                    tokenEndCharacter += 1;\n                }\n                else {\n                    continue;\n                }\n            }\n            else if (tokenDeltaLine === deltaLine && tokenStartCharacter < character && character < tokenEndCharacter) {\n                // 3. The token contains the insertion point\n                if (eolCount === 0) {\n                    // => just expand the end character\n                    tokenEndCharacter += firstLineLength;\n                }\n                else {\n                    // => cut off the token\n                    tokenEndCharacter = character;\n                }\n            }\n            else {\n                // 4. or 5.\n                if (tokenDeltaLine === deltaLine && tokenStartCharacter === character) {\n                    // 4. The token starts precisely at the insertion point\n                    // => grow the token (by keeping its start constant) only if inserting precisely one character that is a word character\n                    // => otherwise behave as in case 5.\n                    if (isInsertingPreciselyOneWordCharacter) {\n                        continue;\n                    }\n                }\n                // => the token must move and keep its size constant\n                if (tokenDeltaLine === deltaLine) {\n                    tokenDeltaLine += eolCount;\n                    // this token is on the line where the insertion is taking place\n                    if (eolCount === 0) {\n                        tokenStartCharacter += firstLineLength;\n                        tokenEndCharacter += firstLineLength;\n                    }\n                    else {\n                        const tokenLength = tokenEndCharacter - tokenStartCharacter;\n                        tokenStartCharacter = lastLineLength + (tokenStartCharacter - character);\n                        tokenEndCharacter = tokenStartCharacter + tokenLength;\n                    }\n                }\n                else {\n                    tokenDeltaLine += eolCount;\n                }\n            }\n            tokens[offset] = tokenDeltaLine;\n            tokens[offset + 1] = tokenStartCharacter;\n            tokens[offset + 2] = tokenEndCharacter;\n        }\n    }\n}\nexport class SparseLineTokens {\n    constructor(tokens) {\n        this._tokens = tokens;\n    }\n    getCount() {\n        return this._tokens.length / 4;\n    }\n    getStartCharacter(tokenIndex) {\n        return this._tokens[4 * tokenIndex + 1];\n    }\n    getEndCharacter(tokenIndex) {\n        return this._tokens[4 * tokenIndex + 2];\n    }\n    getMetadata(tokenIndex) {\n        return this._tokens[4 * tokenIndex + 3];\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/tokens/sparseTokensStore.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as arrays from '../../../base/common/arrays.js';\nimport { LineTokens } from './lineTokens.js';\n/**\n * Represents sparse tokens in a text model.\n */\nexport class SparseTokensStore {\n    constructor(languageIdCodec) {\n        this._pieces = [];\n        this._isComplete = false;\n        this._languageIdCodec = languageIdCodec;\n    }\n    flush() {\n        this._pieces = [];\n        this._isComplete = false;\n    }\n    isEmpty() {\n        return (this._pieces.length === 0);\n    }\n    set(pieces, isComplete) {\n        this._pieces = pieces || [];\n        this._isComplete = isComplete;\n    }\n    setPartial(_range, pieces) {\n        // console.log(`setPartial ${_range} ${pieces.map(p => p.toString()).join(', ')}`);\n        let range = _range;\n        if (pieces.length > 0) {\n            const _firstRange = pieces[0].getRange();\n            const _lastRange = pieces[pieces.length - 1].getRange();\n            if (!_firstRange || !_lastRange) {\n                return _range;\n            }\n            range = _range.plusRange(_firstRange).plusRange(_lastRange);\n        }\n        let insertPosition = null;\n        for (let i = 0, len = this._pieces.length; i < len; i++) {\n            const piece = this._pieces[i];\n            if (piece.endLineNumber < range.startLineNumber) {\n                // this piece is before the range\n                continue;\n            }\n            if (piece.startLineNumber > range.endLineNumber) {\n                // this piece is after the range, so mark the spot before this piece\n                // as a good insertion position and stop looping\n                insertPosition = insertPosition || { index: i };\n                break;\n            }\n            // this piece might intersect with the range\n            piece.removeTokens(range);\n            if (piece.isEmpty()) {\n                // remove the piece if it became empty\n                this._pieces.splice(i, 1);\n                i--;\n                len--;\n                continue;\n            }\n            if (piece.endLineNumber < range.startLineNumber) {\n                // after removal, this piece is before the range\n                continue;\n            }\n            if (piece.startLineNumber > range.endLineNumber) {\n                // after removal, this piece is after the range\n                insertPosition = insertPosition || { index: i };\n                continue;\n            }\n            // after removal, this piece contains the range\n            const [a, b] = piece.split(range);\n            if (a.isEmpty()) {\n                // this piece is actually after the range\n                insertPosition = insertPosition || { index: i };\n                continue;\n            }\n            if (b.isEmpty()) {\n                // this piece is actually before the range\n                continue;\n            }\n            this._pieces.splice(i, 1, a, b);\n            i++;\n            len++;\n            insertPosition = insertPosition || { index: i };\n        }\n        insertPosition = insertPosition || { index: this._pieces.length };\n        if (pieces.length > 0) {\n            this._pieces = arrays.arrayInsert(this._pieces, insertPosition.index, pieces);\n        }\n        // console.log(`I HAVE ${this._pieces.length} pieces`);\n        // console.log(`${this._pieces.map(p => p.toString()).join('\\n')}`);\n        return range;\n    }\n    isComplete() {\n        return this._isComplete;\n    }\n    addSparseTokens(lineNumber, aTokens) {\n        if (aTokens.getLineContent().length === 0) {\n            // Don't do anything for empty lines\n            return aTokens;\n        }\n        const pieces = this._pieces;\n        if (pieces.length === 0) {\n            return aTokens;\n        }\n        const pieceIndex = SparseTokensStore._findFirstPieceWithLine(pieces, lineNumber);\n        const bTokens = pieces[pieceIndex].getLineTokens(lineNumber);\n        if (!bTokens) {\n            return aTokens;\n        }\n        const aLen = aTokens.getCount();\n        const bLen = bTokens.getCount();\n        let aIndex = 0;\n        const result = [];\n        let resultLen = 0;\n        let lastEndOffset = 0;\n        const emitToken = (endOffset, metadata) => {\n            if (endOffset === lastEndOffset) {\n                return;\n            }\n            lastEndOffset = endOffset;\n            result[resultLen++] = endOffset;\n            result[resultLen++] = metadata;\n        };\n        for (let bIndex = 0; bIndex < bLen; bIndex++) {\n            const bStartCharacter = bTokens.getStartCharacter(bIndex);\n            const bEndCharacter = bTokens.getEndCharacter(bIndex);\n            const bMetadata = bTokens.getMetadata(bIndex);\n            const bMask = (((bMetadata & 1 /* MetadataConsts.SEMANTIC_USE_ITALIC */) ? 2048 /* MetadataConsts.ITALIC_MASK */ : 0)\n                | ((bMetadata & 2 /* MetadataConsts.SEMANTIC_USE_BOLD */) ? 4096 /* MetadataConsts.BOLD_MASK */ : 0)\n                | ((bMetadata & 4 /* MetadataConsts.SEMANTIC_USE_UNDERLINE */) ? 8192 /* MetadataConsts.UNDERLINE_MASK */ : 0)\n                | ((bMetadata & 8 /* MetadataConsts.SEMANTIC_USE_STRIKETHROUGH */) ? 16384 /* MetadataConsts.STRIKETHROUGH_MASK */ : 0)\n                | ((bMetadata & 16 /* MetadataConsts.SEMANTIC_USE_FOREGROUND */) ? 16744448 /* MetadataConsts.FOREGROUND_MASK */ : 0)\n                | ((bMetadata & 32 /* MetadataConsts.SEMANTIC_USE_BACKGROUND */) ? 4278190080 /* MetadataConsts.BACKGROUND_MASK */ : 0)) >>> 0;\n            const aMask = (~bMask) >>> 0;\n            // push any token from `a` that is before `b`\n            while (aIndex < aLen && aTokens.getEndOffset(aIndex) <= bStartCharacter) {\n                emitToken(aTokens.getEndOffset(aIndex), aTokens.getMetadata(aIndex));\n                aIndex++;\n            }\n            // push the token from `a` if it intersects the token from `b`\n            if (aIndex < aLen && aTokens.getStartOffset(aIndex) < bStartCharacter) {\n                emitToken(bStartCharacter, aTokens.getMetadata(aIndex));\n            }\n            // skip any tokens from `a` that are contained inside `b`\n            while (aIndex < aLen && aTokens.getEndOffset(aIndex) < bEndCharacter) {\n                emitToken(aTokens.getEndOffset(aIndex), (aTokens.getMetadata(aIndex) & aMask) | (bMetadata & bMask));\n                aIndex++;\n            }\n            if (aIndex < aLen) {\n                emitToken(bEndCharacter, (aTokens.getMetadata(aIndex) & aMask) | (bMetadata & bMask));\n                if (aTokens.getEndOffset(aIndex) === bEndCharacter) {\n                    // `a` ends exactly at the same spot as `b`!\n                    aIndex++;\n                }\n            }\n            else {\n                const aMergeIndex = Math.min(Math.max(0, aIndex - 1), aLen - 1);\n                // push the token from `b`\n                emitToken(bEndCharacter, (aTokens.getMetadata(aMergeIndex) & aMask) | (bMetadata & bMask));\n            }\n        }\n        // push the remaining tokens from `a`\n        while (aIndex < aLen) {\n            emitToken(aTokens.getEndOffset(aIndex), aTokens.getMetadata(aIndex));\n            aIndex++;\n        }\n        return new LineTokens(new Uint32Array(result), aTokens.getLineContent(), this._languageIdCodec);\n    }\n    static _findFirstPieceWithLine(pieces, lineNumber) {\n        let low = 0;\n        let high = pieces.length - 1;\n        while (low < high) {\n            let mid = low + Math.floor((high - low) / 2);\n            if (pieces[mid].endLineNumber < lineNumber) {\n                low = mid + 1;\n            }\n            else if (pieces[mid].startLineNumber > lineNumber) {\n                high = mid - 1;\n            }\n            else {\n                while (mid > low && pieces[mid - 1].startLineNumber <= lineNumber && lineNumber <= pieces[mid - 1].endLineNumber) {\n                    mid--;\n                }\n                return mid;\n            }\n        }\n        return low;\n    }\n    acceptEdit(range, eolCount, firstLineLength, lastLineLength, firstCharCode) {\n        for (const piece of this._pieces) {\n            piece.acceptEdit(range, eolCount, firstLineLength, lastLineLength, firstCharCode);\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/viewEventHandler.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Disposable } from '../../base/common/lifecycle.js';\nexport class ViewEventHandler extends Disposable {\n    constructor() {\n        super();\n        this._shouldRender = true;\n    }\n    shouldRender() {\n        return this._shouldRender;\n    }\n    forceShouldRender() {\n        this._shouldRender = true;\n    }\n    setShouldRender() {\n        this._shouldRender = true;\n    }\n    onDidRender() {\n        this._shouldRender = false;\n    }\n    // --- begin event handlers\n    onCompositionStart(e) {\n        return false;\n    }\n    onCompositionEnd(e) {\n        return false;\n    }\n    onConfigurationChanged(e) {\n        return false;\n    }\n    onCursorStateChanged(e) {\n        return false;\n    }\n    onDecorationsChanged(e) {\n        return false;\n    }\n    onFlushed(e) {\n        return false;\n    }\n    onFocusChanged(e) {\n        return false;\n    }\n    onLanguageConfigurationChanged(e) {\n        return false;\n    }\n    onLineMappingChanged(e) {\n        return false;\n    }\n    onLinesChanged(e) {\n        return false;\n    }\n    onLinesDeleted(e) {\n        return false;\n    }\n    onLinesInserted(e) {\n        return false;\n    }\n    onRevealRangeRequest(e) {\n        return false;\n    }\n    onScrollChanged(e) {\n        return false;\n    }\n    onThemeChanged(e) {\n        return false;\n    }\n    onTokensChanged(e) {\n        return false;\n    }\n    onTokensColorsChanged(e) {\n        return false;\n    }\n    onZonesChanged(e) {\n        return false;\n    }\n    // --- end event handlers\n    handleEvents(events) {\n        let shouldRender = false;\n        for (let i = 0, len = events.length; i < len; i++) {\n            const e = events[i];\n            switch (e.type) {\n                case 0 /* viewEvents.ViewEventType.ViewCompositionStart */:\n                    if (this.onCompositionStart(e)) {\n                        shouldRender = true;\n                    }\n                    break;\n                case 1 /* viewEvents.ViewEventType.ViewCompositionEnd */:\n                    if (this.onCompositionEnd(e)) {\n                        shouldRender = true;\n                    }\n                    break;\n                case 2 /* viewEvents.ViewEventType.ViewConfigurationChanged */:\n                    if (this.onConfigurationChanged(e)) {\n                        shouldRender = true;\n                    }\n                    break;\n                case 3 /* viewEvents.ViewEventType.ViewCursorStateChanged */:\n                    if (this.onCursorStateChanged(e)) {\n                        shouldRender = true;\n                    }\n                    break;\n                case 4 /* viewEvents.ViewEventType.ViewDecorationsChanged */:\n                    if (this.onDecorationsChanged(e)) {\n                        shouldRender = true;\n                    }\n                    break;\n                case 5 /* viewEvents.ViewEventType.ViewFlushed */:\n                    if (this.onFlushed(e)) {\n                        shouldRender = true;\n                    }\n                    break;\n                case 6 /* viewEvents.ViewEventType.ViewFocusChanged */:\n                    if (this.onFocusChanged(e)) {\n                        shouldRender = true;\n                    }\n                    break;\n                case 7 /* viewEvents.ViewEventType.ViewLanguageConfigurationChanged */:\n                    if (this.onLanguageConfigurationChanged(e)) {\n                        shouldRender = true;\n                    }\n                    break;\n                case 8 /* viewEvents.ViewEventType.ViewLineMappingChanged */:\n                    if (this.onLineMappingChanged(e)) {\n                        shouldRender = true;\n                    }\n                    break;\n                case 9 /* viewEvents.ViewEventType.ViewLinesChanged */:\n                    if (this.onLinesChanged(e)) {\n                        shouldRender = true;\n                    }\n                    break;\n                case 10 /* viewEvents.ViewEventType.ViewLinesDeleted */:\n                    if (this.onLinesDeleted(e)) {\n                        shouldRender = true;\n                    }\n                    break;\n                case 11 /* viewEvents.ViewEventType.ViewLinesInserted */:\n                    if (this.onLinesInserted(e)) {\n                        shouldRender = true;\n                    }\n                    break;\n                case 12 /* viewEvents.ViewEventType.ViewRevealRangeRequest */:\n                    if (this.onRevealRangeRequest(e)) {\n                        shouldRender = true;\n                    }\n                    break;\n                case 13 /* viewEvents.ViewEventType.ViewScrollChanged */:\n                    if (this.onScrollChanged(e)) {\n                        shouldRender = true;\n                    }\n                    break;\n                case 15 /* viewEvents.ViewEventType.ViewTokensChanged */:\n                    if (this.onTokensChanged(e)) {\n                        shouldRender = true;\n                    }\n                    break;\n                case 14 /* viewEvents.ViewEventType.ViewThemeChanged */:\n                    if (this.onThemeChanged(e)) {\n                        shouldRender = true;\n                    }\n                    break;\n                case 16 /* viewEvents.ViewEventType.ViewTokensColorsChanged */:\n                    if (this.onTokensColorsChanged(e)) {\n                        shouldRender = true;\n                    }\n                    break;\n                case 17 /* viewEvents.ViewEventType.ViewZonesChanged */:\n                    if (this.onZonesChanged(e)) {\n                        shouldRender = true;\n                    }\n                    break;\n                default:\n                    console.info('View received unknown event: ');\n                    console.info(e);\n            }\n        }\n        if (shouldRender) {\n            this._shouldRender = true;\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/viewEvents.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class ViewCompositionStartEvent {\n    constructor() {\n        this.type = 0 /* ViewEventType.ViewCompositionStart */;\n    }\n}\nexport class ViewCompositionEndEvent {\n    constructor() {\n        this.type = 1 /* ViewEventType.ViewCompositionEnd */;\n    }\n}\nexport class ViewConfigurationChangedEvent {\n    constructor(source) {\n        this.type = 2 /* ViewEventType.ViewConfigurationChanged */;\n        this._source = source;\n    }\n    hasChanged(id) {\n        return this._source.hasChanged(id);\n    }\n}\nexport class ViewCursorStateChangedEvent {\n    constructor(selections, modelSelections, reason) {\n        this.selections = selections;\n        this.modelSelections = modelSelections;\n        this.reason = reason;\n        this.type = 3 /* ViewEventType.ViewCursorStateChanged */;\n    }\n}\nexport class ViewDecorationsChangedEvent {\n    constructor(source) {\n        this.type = 4 /* ViewEventType.ViewDecorationsChanged */;\n        if (source) {\n            this.affectsMinimap = source.affectsMinimap;\n            this.affectsOverviewRuler = source.affectsOverviewRuler;\n            this.affectsGlyphMargin = source.affectsGlyphMargin;\n            this.affectsLineNumber = source.affectsLineNumber;\n        }\n        else {\n            this.affectsMinimap = true;\n            this.affectsOverviewRuler = true;\n            this.affectsGlyphMargin = true;\n            this.affectsLineNumber = true;\n        }\n    }\n}\nexport class ViewFlushedEvent {\n    constructor() {\n        this.type = 5 /* ViewEventType.ViewFlushed */;\n        // Nothing to do\n    }\n}\nexport class ViewFocusChangedEvent {\n    constructor(isFocused) {\n        this.type = 6 /* ViewEventType.ViewFocusChanged */;\n        this.isFocused = isFocused;\n    }\n}\nexport class ViewLanguageConfigurationEvent {\n    constructor() {\n        this.type = 7 /* ViewEventType.ViewLanguageConfigurationChanged */;\n    }\n}\nexport class ViewLineMappingChangedEvent {\n    constructor() {\n        this.type = 8 /* ViewEventType.ViewLineMappingChanged */;\n        // Nothing to do\n    }\n}\nexport class ViewLinesChangedEvent {\n    constructor(\n    /**\n     * The first line that has changed.\n     */\n    fromLineNumber, \n    /**\n     * The number of lines that have changed.\n     */\n    count) {\n        this.fromLineNumber = fromLineNumber;\n        this.count = count;\n        this.type = 9 /* ViewEventType.ViewLinesChanged */;\n    }\n}\nexport class ViewLinesDeletedEvent {\n    constructor(fromLineNumber, toLineNumber) {\n        this.type = 10 /* ViewEventType.ViewLinesDeleted */;\n        this.fromLineNumber = fromLineNumber;\n        this.toLineNumber = toLineNumber;\n    }\n}\nexport class ViewLinesInsertedEvent {\n    constructor(fromLineNumber, toLineNumber) {\n        this.type = 11 /* ViewEventType.ViewLinesInserted */;\n        this.fromLineNumber = fromLineNumber;\n        this.toLineNumber = toLineNumber;\n    }\n}\nexport class ViewRevealRangeRequestEvent {\n    constructor(\n    /**\n     * Source of the call that caused the event.\n     */\n    source, \n    /**\n     * Reduce the revealing to a minimum (e.g. avoid scrolling if the bounding box is visible and near the viewport edge).\n     */\n    minimalReveal, \n    /**\n     * Range to be reavealed.\n     */\n    range, \n    /**\n     * Selections to be revealed.\n     */\n    selections, \n    /**\n     * The vertical reveal strategy.\n     */\n    verticalType, \n    /**\n     * If true: there should be a horizontal & vertical revealing.\n     * If false: there should be just a vertical revealing.\n     */\n    revealHorizontal, \n    /**\n     * The scroll type.\n     */\n    scrollType) {\n        this.source = source;\n        this.minimalReveal = minimalReveal;\n        this.range = range;\n        this.selections = selections;\n        this.verticalType = verticalType;\n        this.revealHorizontal = revealHorizontal;\n        this.scrollType = scrollType;\n        this.type = 12 /* ViewEventType.ViewRevealRangeRequest */;\n    }\n}\nexport class ViewScrollChangedEvent {\n    constructor(source) {\n        this.type = 13 /* ViewEventType.ViewScrollChanged */;\n        this.scrollWidth = source.scrollWidth;\n        this.scrollLeft = source.scrollLeft;\n        this.scrollHeight = source.scrollHeight;\n        this.scrollTop = source.scrollTop;\n        this.scrollWidthChanged = source.scrollWidthChanged;\n        this.scrollLeftChanged = source.scrollLeftChanged;\n        this.scrollHeightChanged = source.scrollHeightChanged;\n        this.scrollTopChanged = source.scrollTopChanged;\n    }\n}\nexport class ViewThemeChangedEvent {\n    constructor(theme) {\n        this.theme = theme;\n        this.type = 14 /* ViewEventType.ViewThemeChanged */;\n    }\n}\nexport class ViewTokensChangedEvent {\n    constructor(ranges) {\n        this.type = 15 /* ViewEventType.ViewTokensChanged */;\n        this.ranges = ranges;\n    }\n}\nexport class ViewTokensColorsChangedEvent {\n    constructor() {\n        this.type = 16 /* ViewEventType.ViewTokensColorsChanged */;\n        // Nothing to do\n    }\n}\nexport class ViewZonesChangedEvent {\n    constructor() {\n        this.type = 17 /* ViewEventType.ViewZonesChanged */;\n        // Nothing to do\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/viewLayout/lineDecorations.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../base/common/strings.js';\nexport class LineDecoration {\n    constructor(startColumn, endColumn, className, type) {\n        this.startColumn = startColumn;\n        this.endColumn = endColumn;\n        this.className = className;\n        this.type = type;\n        this._lineDecorationBrand = undefined;\n    }\n    static _equals(a, b) {\n        return (a.startColumn === b.startColumn\n            && a.endColumn === b.endColumn\n            && a.className === b.className\n            && a.type === b.type);\n    }\n    static equalsArr(a, b) {\n        const aLen = a.length;\n        const bLen = b.length;\n        if (aLen !== bLen) {\n            return false;\n        }\n        for (let i = 0; i < aLen; i++) {\n            if (!LineDecoration._equals(a[i], b[i])) {\n                return false;\n            }\n        }\n        return true;\n    }\n    static extractWrapped(arr, startOffset, endOffset) {\n        if (arr.length === 0) {\n            return arr;\n        }\n        const startColumn = startOffset + 1;\n        const endColumn = endOffset + 1;\n        const lineLength = endOffset - startOffset;\n        const r = [];\n        let rLength = 0;\n        for (const dec of arr) {\n            if (dec.endColumn <= startColumn || dec.startColumn >= endColumn) {\n                continue;\n            }\n            r[rLength++] = new LineDecoration(Math.max(1, dec.startColumn - startColumn + 1), Math.min(lineLength + 1, dec.endColumn - startColumn + 1), dec.className, dec.type);\n        }\n        return r;\n    }\n    static filter(lineDecorations, lineNumber, minLineColumn, maxLineColumn) {\n        if (lineDecorations.length === 0) {\n            return [];\n        }\n        const result = [];\n        let resultLen = 0;\n        for (let i = 0, len = lineDecorations.length; i < len; i++) {\n            const d = lineDecorations[i];\n            const range = d.range;\n            if (range.endLineNumber < lineNumber || range.startLineNumber > lineNumber) {\n                // Ignore decorations that sit outside this line\n                continue;\n            }\n            if (range.isEmpty() && (d.type === 0 /* InlineDecorationType.Regular */ || d.type === 3 /* InlineDecorationType.RegularAffectingLetterSpacing */)) {\n                // Ignore empty range decorations\n                continue;\n            }\n            const startColumn = (range.startLineNumber === lineNumber ? range.startColumn : minLineColumn);\n            const endColumn = (range.endLineNumber === lineNumber ? range.endColumn : maxLineColumn);\n            result[resultLen++] = new LineDecoration(startColumn, endColumn, d.inlineClassName, d.type);\n        }\n        return result;\n    }\n    static _typeCompare(a, b) {\n        const ORDER = [2, 0, 1, 3];\n        return ORDER[a] - ORDER[b];\n    }\n    static compare(a, b) {\n        if (a.startColumn !== b.startColumn) {\n            return a.startColumn - b.startColumn;\n        }\n        if (a.endColumn !== b.endColumn) {\n            return a.endColumn - b.endColumn;\n        }\n        const typeCmp = LineDecoration._typeCompare(a.type, b.type);\n        if (typeCmp !== 0) {\n            return typeCmp;\n        }\n        if (a.className !== b.className) {\n            return a.className < b.className ? -1 : 1;\n        }\n        return 0;\n    }\n}\nexport class DecorationSegment {\n    constructor(startOffset, endOffset, className, metadata) {\n        this.startOffset = startOffset;\n        this.endOffset = endOffset;\n        this.className = className;\n        this.metadata = metadata;\n    }\n}\nclass Stack {\n    constructor() {\n        this.stopOffsets = [];\n        this.classNames = [];\n        this.metadata = [];\n        this.count = 0;\n    }\n    static _metadata(metadata) {\n        let result = 0;\n        for (let i = 0, len = metadata.length; i < len; i++) {\n            result |= metadata[i];\n        }\n        return result;\n    }\n    consumeLowerThan(maxStopOffset, nextStartOffset, result) {\n        while (this.count > 0 && this.stopOffsets[0] < maxStopOffset) {\n            let i = 0;\n            // Take all equal stopping offsets\n            while (i + 1 < this.count && this.stopOffsets[i] === this.stopOffsets[i + 1]) {\n                i++;\n            }\n            // Basically we are consuming the first i + 1 elements of the stack\n            result.push(new DecorationSegment(nextStartOffset, this.stopOffsets[i], this.classNames.join(' '), Stack._metadata(this.metadata)));\n            nextStartOffset = this.stopOffsets[i] + 1;\n            // Consume them\n            this.stopOffsets.splice(0, i + 1);\n            this.classNames.splice(0, i + 1);\n            this.metadata.splice(0, i + 1);\n            this.count -= (i + 1);\n        }\n        if (this.count > 0 && nextStartOffset < maxStopOffset) {\n            result.push(new DecorationSegment(nextStartOffset, maxStopOffset - 1, this.classNames.join(' '), Stack._metadata(this.metadata)));\n            nextStartOffset = maxStopOffset;\n        }\n        return nextStartOffset;\n    }\n    insert(stopOffset, className, metadata) {\n        if (this.count === 0 || this.stopOffsets[this.count - 1] <= stopOffset) {\n            // Insert at the end\n            this.stopOffsets.push(stopOffset);\n            this.classNames.push(className);\n            this.metadata.push(metadata);\n        }\n        else {\n            // Find the insertion position for `stopOffset`\n            for (let i = 0; i < this.count; i++) {\n                if (this.stopOffsets[i] >= stopOffset) {\n                    this.stopOffsets.splice(i, 0, stopOffset);\n                    this.classNames.splice(i, 0, className);\n                    this.metadata.splice(i, 0, metadata);\n                    break;\n                }\n            }\n        }\n        this.count++;\n        return;\n    }\n}\nexport class LineDecorationsNormalizer {\n    /**\n     * Normalize line decorations. Overlapping decorations will generate multiple segments\n     */\n    static normalize(lineContent, lineDecorations) {\n        if (lineDecorations.length === 0) {\n            return [];\n        }\n        const result = [];\n        const stack = new Stack();\n        let nextStartOffset = 0;\n        for (let i = 0, len = lineDecorations.length; i < len; i++) {\n            const d = lineDecorations[i];\n            let startColumn = d.startColumn;\n            let endColumn = d.endColumn;\n            const className = d.className;\n            const metadata = (d.type === 1 /* InlineDecorationType.Before */\n                ? 2 /* LinePartMetadata.PSEUDO_BEFORE */\n                : d.type === 2 /* InlineDecorationType.After */\n                    ? 4 /* LinePartMetadata.PSEUDO_AFTER */\n                    : 0);\n            // If the position would end up in the middle of a high-low surrogate pair, we move it to before the pair\n            if (startColumn > 1) {\n                const charCodeBefore = lineContent.charCodeAt(startColumn - 2);\n                if (strings.isHighSurrogate(charCodeBefore)) {\n                    startColumn--;\n                }\n            }\n            if (endColumn > 1) {\n                const charCodeBefore = lineContent.charCodeAt(endColumn - 2);\n                if (strings.isHighSurrogate(charCodeBefore)) {\n                    endColumn--;\n                }\n            }\n            const currentStartOffset = startColumn - 1;\n            const currentEndOffset = endColumn - 2;\n            nextStartOffset = stack.consumeLowerThan(currentStartOffset, nextStartOffset, result);\n            if (stack.count === 0) {\n                nextStartOffset = currentStartOffset;\n            }\n            stack.insert(currentEndOffset, className, metadata);\n        }\n        stack.consumeLowerThan(1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */, nextStartOffset, result);\n        return result;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/viewLayout/linePart.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class LinePart {\n    constructor(\n    /**\n     * last char index of this token (not inclusive).\n     */\n    endIndex, type, metadata, containsRTL) {\n        this.endIndex = endIndex;\n        this.type = type;\n        this.metadata = metadata;\n        this.containsRTL = containsRTL;\n        this._linePartBrand = undefined;\n    }\n    isWhitespace() {\n        return (this.metadata & 1 /* LinePartMetadata.IS_WHITESPACE_MASK */ ? true : false);\n    }\n    isPseudoAfter() {\n        return (this.metadata & 4 /* LinePartMetadata.PSEUDO_AFTER_MASK */ ? true : false);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/viewLayout/linesLayout.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../base/common/strings.js';\nclass PendingChanges {\n    constructor() {\n        this._hasPending = false;\n        this._inserts = [];\n        this._changes = [];\n        this._removes = [];\n    }\n    insert(x) {\n        this._hasPending = true;\n        this._inserts.push(x);\n    }\n    change(x) {\n        this._hasPending = true;\n        this._changes.push(x);\n    }\n    remove(x) {\n        this._hasPending = true;\n        this._removes.push(x);\n    }\n    mustCommit() {\n        return this._hasPending;\n    }\n    commit(linesLayout) {\n        if (!this._hasPending) {\n            return;\n        }\n        const inserts = this._inserts;\n        const changes = this._changes;\n        const removes = this._removes;\n        this._hasPending = false;\n        this._inserts = [];\n        this._changes = [];\n        this._removes = [];\n        linesLayout._commitPendingChanges(inserts, changes, removes);\n    }\n}\nexport class EditorWhitespace {\n    constructor(id, afterLineNumber, ordinal, height, minWidth) {\n        this.id = id;\n        this.afterLineNumber = afterLineNumber;\n        this.ordinal = ordinal;\n        this.height = height;\n        this.minWidth = minWidth;\n        this.prefixSum = 0;\n    }\n}\n/**\n * Layouting of objects that take vertical space (by having a height) and push down other objects.\n *\n * These objects are basically either text (lines) or spaces between those lines (whitespaces).\n * This provides commodity operations for working with lines that contain whitespace that pushes lines lower (vertically).\n */\nexport class LinesLayout {\n    constructor(lineCount, lineHeight, paddingTop, paddingBottom) {\n        this._instanceId = strings.singleLetterHash(++LinesLayout.INSTANCE_COUNT);\n        this._pendingChanges = new PendingChanges();\n        this._lastWhitespaceId = 0;\n        this._arr = [];\n        this._prefixSumValidIndex = -1;\n        this._minWidth = -1; /* marker for not being computed */\n        this._lineCount = lineCount;\n        this._lineHeight = lineHeight;\n        this._paddingTop = paddingTop;\n        this._paddingBottom = paddingBottom;\n    }\n    /**\n     * Find the insertion index for a new value inside a sorted array of values.\n     * If the value is already present in the sorted array, the insertion index will be after the already existing value.\n     */\n    static findInsertionIndex(arr, afterLineNumber, ordinal) {\n        let low = 0;\n        let high = arr.length;\n        while (low < high) {\n            const mid = ((low + high) >>> 1);\n            if (afterLineNumber === arr[mid].afterLineNumber) {\n                if (ordinal < arr[mid].ordinal) {\n                    high = mid;\n                }\n                else {\n                    low = mid + 1;\n                }\n            }\n            else if (afterLineNumber < arr[mid].afterLineNumber) {\n                high = mid;\n            }\n            else {\n                low = mid + 1;\n            }\n        }\n        return low;\n    }\n    /**\n     * Change the height of a line in pixels.\n     */\n    setLineHeight(lineHeight) {\n        this._checkPendingChanges();\n        this._lineHeight = lineHeight;\n    }\n    /**\n     * Changes the padding used to calculate vertical offsets.\n     */\n    setPadding(paddingTop, paddingBottom) {\n        this._paddingTop = paddingTop;\n        this._paddingBottom = paddingBottom;\n    }\n    /**\n     * Set the number of lines.\n     *\n     * @param lineCount New number of lines.\n     */\n    onFlushed(lineCount) {\n        this._checkPendingChanges();\n        this._lineCount = lineCount;\n    }\n    changeWhitespace(callback) {\n        let hadAChange = false;\n        try {\n            const accessor = {\n                insertWhitespace: (afterLineNumber, ordinal, heightInPx, minWidth) => {\n                    hadAChange = true;\n                    afterLineNumber = afterLineNumber | 0;\n                    ordinal = ordinal | 0;\n                    heightInPx = heightInPx | 0;\n                    minWidth = minWidth | 0;\n                    const id = this._instanceId + (++this._lastWhitespaceId);\n                    this._pendingChanges.insert(new EditorWhitespace(id, afterLineNumber, ordinal, heightInPx, minWidth));\n                    return id;\n                },\n                changeOneWhitespace: (id, newAfterLineNumber, newHeight) => {\n                    hadAChange = true;\n                    newAfterLineNumber = newAfterLineNumber | 0;\n                    newHeight = newHeight | 0;\n                    this._pendingChanges.change({ id, newAfterLineNumber, newHeight });\n                },\n                removeWhitespace: (id) => {\n                    hadAChange = true;\n                    this._pendingChanges.remove({ id });\n                }\n            };\n            callback(accessor);\n        }\n        finally {\n            this._pendingChanges.commit(this);\n        }\n        return hadAChange;\n    }\n    _commitPendingChanges(inserts, changes, removes) {\n        if (inserts.length > 0 || removes.length > 0) {\n            this._minWidth = -1; /* marker for not being computed */\n        }\n        if (inserts.length + changes.length + removes.length <= 1) {\n            // when only one thing happened, handle it \"delicately\"\n            for (const insert of inserts) {\n                this._insertWhitespace(insert);\n            }\n            for (const change of changes) {\n                this._changeOneWhitespace(change.id, change.newAfterLineNumber, change.newHeight);\n            }\n            for (const remove of removes) {\n                const index = this._findWhitespaceIndex(remove.id);\n                if (index === -1) {\n                    continue;\n                }\n                this._removeWhitespace(index);\n            }\n            return;\n        }\n        // simply rebuild the entire datastructure\n        const toRemove = new Set();\n        for (const remove of removes) {\n            toRemove.add(remove.id);\n        }\n        const toChange = new Map();\n        for (const change of changes) {\n            toChange.set(change.id, change);\n        }\n        const applyRemoveAndChange = (whitespaces) => {\n            const result = [];\n            for (const whitespace of whitespaces) {\n                if (toRemove.has(whitespace.id)) {\n                    continue;\n                }\n                if (toChange.has(whitespace.id)) {\n                    const change = toChange.get(whitespace.id);\n                    whitespace.afterLineNumber = change.newAfterLineNumber;\n                    whitespace.height = change.newHeight;\n                }\n                result.push(whitespace);\n            }\n            return result;\n        };\n        const result = applyRemoveAndChange(this._arr).concat(applyRemoveAndChange(inserts));\n        result.sort((a, b) => {\n            if (a.afterLineNumber === b.afterLineNumber) {\n                return a.ordinal - b.ordinal;\n            }\n            return a.afterLineNumber - b.afterLineNumber;\n        });\n        this._arr = result;\n        this._prefixSumValidIndex = -1;\n    }\n    _checkPendingChanges() {\n        if (this._pendingChanges.mustCommit()) {\n            this._pendingChanges.commit(this);\n        }\n    }\n    _insertWhitespace(whitespace) {\n        const insertIndex = LinesLayout.findInsertionIndex(this._arr, whitespace.afterLineNumber, whitespace.ordinal);\n        this._arr.splice(insertIndex, 0, whitespace);\n        this._prefixSumValidIndex = Math.min(this._prefixSumValidIndex, insertIndex - 1);\n    }\n    _findWhitespaceIndex(id) {\n        const arr = this._arr;\n        for (let i = 0, len = arr.length; i < len; i++) {\n            if (arr[i].id === id) {\n                return i;\n            }\n        }\n        return -1;\n    }\n    _changeOneWhitespace(id, newAfterLineNumber, newHeight) {\n        const index = this._findWhitespaceIndex(id);\n        if (index === -1) {\n            return;\n        }\n        if (this._arr[index].height !== newHeight) {\n            this._arr[index].height = newHeight;\n            this._prefixSumValidIndex = Math.min(this._prefixSumValidIndex, index - 1);\n        }\n        if (this._arr[index].afterLineNumber !== newAfterLineNumber) {\n            // `afterLineNumber` changed for this whitespace\n            // Record old whitespace\n            const whitespace = this._arr[index];\n            // Since changing `afterLineNumber` can trigger a reordering, we're gonna remove this whitespace\n            this._removeWhitespace(index);\n            whitespace.afterLineNumber = newAfterLineNumber;\n            // And add it again\n            this._insertWhitespace(whitespace);\n        }\n    }\n    _removeWhitespace(removeIndex) {\n        this._arr.splice(removeIndex, 1);\n        this._prefixSumValidIndex = Math.min(this._prefixSumValidIndex, removeIndex - 1);\n    }\n    /**\n     * Notify the layouter that lines have been deleted (a continuous zone of lines).\n     *\n     * @param fromLineNumber The line number at which the deletion started, inclusive\n     * @param toLineNumber The line number at which the deletion ended, inclusive\n     */\n    onLinesDeleted(fromLineNumber, toLineNumber) {\n        this._checkPendingChanges();\n        fromLineNumber = fromLineNumber | 0;\n        toLineNumber = toLineNumber | 0;\n        this._lineCount -= (toLineNumber - fromLineNumber + 1);\n        for (let i = 0, len = this._arr.length; i < len; i++) {\n            const afterLineNumber = this._arr[i].afterLineNumber;\n            if (fromLineNumber <= afterLineNumber && afterLineNumber <= toLineNumber) {\n                // The line this whitespace was after has been deleted\n                //  => move whitespace to before first deleted line\n                this._arr[i].afterLineNumber = fromLineNumber - 1;\n            }\n            else if (afterLineNumber > toLineNumber) {\n                // The line this whitespace was after has been moved up\n                //  => move whitespace up\n                this._arr[i].afterLineNumber -= (toLineNumber - fromLineNumber + 1);\n            }\n        }\n    }\n    /**\n     * Notify the layouter that lines have been inserted (a continuous zone of lines).\n     *\n     * @param fromLineNumber The line number at which the insertion started, inclusive\n     * @param toLineNumber The line number at which the insertion ended, inclusive.\n     */\n    onLinesInserted(fromLineNumber, toLineNumber) {\n        this._checkPendingChanges();\n        fromLineNumber = fromLineNumber | 0;\n        toLineNumber = toLineNumber | 0;\n        this._lineCount += (toLineNumber - fromLineNumber + 1);\n        for (let i = 0, len = this._arr.length; i < len; i++) {\n            const afterLineNumber = this._arr[i].afterLineNumber;\n            if (fromLineNumber <= afterLineNumber) {\n                this._arr[i].afterLineNumber += (toLineNumber - fromLineNumber + 1);\n            }\n        }\n    }\n    /**\n     * Get the sum of all the whitespaces.\n     */\n    getWhitespacesTotalHeight() {\n        this._checkPendingChanges();\n        if (this._arr.length === 0) {\n            return 0;\n        }\n        return this.getWhitespacesAccumulatedHeight(this._arr.length - 1);\n    }\n    /**\n     * Return the sum of the heights of the whitespaces at [0..index].\n     * This includes the whitespace at `index`.\n     *\n     * @param index The index of the whitespace.\n     * @return The sum of the heights of all whitespaces before the one at `index`, including the one at `index`.\n     */\n    getWhitespacesAccumulatedHeight(index) {\n        this._checkPendingChanges();\n        index = index | 0;\n        let startIndex = Math.max(0, this._prefixSumValidIndex + 1);\n        if (startIndex === 0) {\n            this._arr[0].prefixSum = this._arr[0].height;\n            startIndex++;\n        }\n        for (let i = startIndex; i <= index; i++) {\n            this._arr[i].prefixSum = this._arr[i - 1].prefixSum + this._arr[i].height;\n        }\n        this._prefixSumValidIndex = Math.max(this._prefixSumValidIndex, index);\n        return this._arr[index].prefixSum;\n    }\n    /**\n     * Get the sum of heights for all objects.\n     *\n     * @return The sum of heights for all objects.\n     */\n    getLinesTotalHeight() {\n        this._checkPendingChanges();\n        const linesHeight = this._lineHeight * this._lineCount;\n        const whitespacesHeight = this.getWhitespacesTotalHeight();\n        return linesHeight + whitespacesHeight + this._paddingTop + this._paddingBottom;\n    }\n    /**\n     * Returns the accumulated height of whitespaces before the given line number.\n     *\n     * @param lineNumber The line number\n     */\n    getWhitespaceAccumulatedHeightBeforeLineNumber(lineNumber) {\n        this._checkPendingChanges();\n        lineNumber = lineNumber | 0;\n        const lastWhitespaceBeforeLineNumber = this._findLastWhitespaceBeforeLineNumber(lineNumber);\n        if (lastWhitespaceBeforeLineNumber === -1) {\n            return 0;\n        }\n        return this.getWhitespacesAccumulatedHeight(lastWhitespaceBeforeLineNumber);\n    }\n    _findLastWhitespaceBeforeLineNumber(lineNumber) {\n        lineNumber = lineNumber | 0;\n        // Find the whitespace before line number\n        const arr = this._arr;\n        let low = 0;\n        let high = arr.length - 1;\n        while (low <= high) {\n            const delta = (high - low) | 0;\n            const halfDelta = (delta / 2) | 0;\n            const mid = (low + halfDelta) | 0;\n            if (arr[mid].afterLineNumber < lineNumber) {\n                if (mid + 1 >= arr.length || arr[mid + 1].afterLineNumber >= lineNumber) {\n                    return mid;\n                }\n                else {\n                    low = (mid + 1) | 0;\n                }\n            }\n            else {\n                high = (mid - 1) | 0;\n            }\n        }\n        return -1;\n    }\n    _findFirstWhitespaceAfterLineNumber(lineNumber) {\n        lineNumber = lineNumber | 0;\n        const lastWhitespaceBeforeLineNumber = this._findLastWhitespaceBeforeLineNumber(lineNumber);\n        const firstWhitespaceAfterLineNumber = lastWhitespaceBeforeLineNumber + 1;\n        if (firstWhitespaceAfterLineNumber < this._arr.length) {\n            return firstWhitespaceAfterLineNumber;\n        }\n        return -1;\n    }\n    /**\n     * Find the index of the first whitespace which has `afterLineNumber` >= `lineNumber`.\n     * @return The index of the first whitespace with `afterLineNumber` >= `lineNumber` or -1 if no whitespace is found.\n     */\n    getFirstWhitespaceIndexAfterLineNumber(lineNumber) {\n        this._checkPendingChanges();\n        lineNumber = lineNumber | 0;\n        return this._findFirstWhitespaceAfterLineNumber(lineNumber);\n    }\n    /**\n     * Get the vertical offset (the sum of heights for all objects above) a certain line number.\n     *\n     * @param lineNumber The line number\n     * @return The sum of heights for all objects above `lineNumber`.\n     */\n    getVerticalOffsetForLineNumber(lineNumber, includeViewZones = false) {\n        this._checkPendingChanges();\n        lineNumber = lineNumber | 0;\n        let previousLinesHeight;\n        if (lineNumber > 1) {\n            previousLinesHeight = this._lineHeight * (lineNumber - 1);\n        }\n        else {\n            previousLinesHeight = 0;\n        }\n        const previousWhitespacesHeight = this.getWhitespaceAccumulatedHeightBeforeLineNumber(lineNumber - (includeViewZones ? 1 : 0));\n        return previousLinesHeight + previousWhitespacesHeight + this._paddingTop;\n    }\n    /**\n     * Get the vertical offset (the sum of heights for all objects above) a certain line number.\n     *\n     * @param lineNumber The line number\n     * @return The sum of heights for all objects above `lineNumber`.\n     */\n    getVerticalOffsetAfterLineNumber(lineNumber, includeViewZones = false) {\n        this._checkPendingChanges();\n        lineNumber = lineNumber | 0;\n        const previousLinesHeight = this._lineHeight * lineNumber;\n        const previousWhitespacesHeight = this.getWhitespaceAccumulatedHeightBeforeLineNumber(lineNumber + (includeViewZones ? 1 : 0));\n        return previousLinesHeight + previousWhitespacesHeight + this._paddingTop;\n    }\n    /**\n     * The maximum min width for all whitespaces.\n     */\n    getWhitespaceMinWidth() {\n        this._checkPendingChanges();\n        if (this._minWidth === -1) {\n            let minWidth = 0;\n            for (let i = 0, len = this._arr.length; i < len; i++) {\n                minWidth = Math.max(minWidth, this._arr[i].minWidth);\n            }\n            this._minWidth = minWidth;\n        }\n        return this._minWidth;\n    }\n    /**\n     * Check if `verticalOffset` is below all lines.\n     */\n    isAfterLines(verticalOffset) {\n        this._checkPendingChanges();\n        const totalHeight = this.getLinesTotalHeight();\n        return verticalOffset > totalHeight;\n    }\n    isInTopPadding(verticalOffset) {\n        if (this._paddingTop === 0) {\n            return false;\n        }\n        this._checkPendingChanges();\n        return (verticalOffset < this._paddingTop);\n    }\n    isInBottomPadding(verticalOffset) {\n        if (this._paddingBottom === 0) {\n            return false;\n        }\n        this._checkPendingChanges();\n        const totalHeight = this.getLinesTotalHeight();\n        return (verticalOffset >= totalHeight - this._paddingBottom);\n    }\n    /**\n     * Find the first line number that is at or after vertical offset `verticalOffset`.\n     * i.e. if getVerticalOffsetForLine(line) is x and getVerticalOffsetForLine(line + 1) is y, then\n     * getLineNumberAtOrAfterVerticalOffset(i) = line, x <= i < y.\n     *\n     * @param verticalOffset The vertical offset to search at.\n     * @return The line number at or after vertical offset `verticalOffset`.\n     */\n    getLineNumberAtOrAfterVerticalOffset(verticalOffset) {\n        this._checkPendingChanges();\n        verticalOffset = verticalOffset | 0;\n        if (verticalOffset < 0) {\n            return 1;\n        }\n        const linesCount = this._lineCount | 0;\n        const lineHeight = this._lineHeight;\n        let minLineNumber = 1;\n        let maxLineNumber = linesCount;\n        while (minLineNumber < maxLineNumber) {\n            const midLineNumber = ((minLineNumber + maxLineNumber) / 2) | 0;\n            const midLineNumberVerticalOffset = this.getVerticalOffsetForLineNumber(midLineNumber) | 0;\n            if (verticalOffset >= midLineNumberVerticalOffset + lineHeight) {\n                // vertical offset is after mid line number\n                minLineNumber = midLineNumber + 1;\n            }\n            else if (verticalOffset >= midLineNumberVerticalOffset) {\n                // Hit\n                return midLineNumber;\n            }\n            else {\n                // vertical offset is before mid line number, but mid line number could still be what we're searching for\n                maxLineNumber = midLineNumber;\n            }\n        }\n        if (minLineNumber > linesCount) {\n            return linesCount;\n        }\n        return minLineNumber;\n    }\n    /**\n     * Get all the lines and their relative vertical offsets that are positioned between `verticalOffset1` and `verticalOffset2`.\n     *\n     * @param verticalOffset1 The beginning of the viewport.\n     * @param verticalOffset2 The end of the viewport.\n     * @return A structure describing the lines positioned between `verticalOffset1` and `verticalOffset2`.\n     */\n    getLinesViewportData(verticalOffset1, verticalOffset2) {\n        this._checkPendingChanges();\n        verticalOffset1 = verticalOffset1 | 0;\n        verticalOffset2 = verticalOffset2 | 0;\n        const lineHeight = this._lineHeight;\n        // Find first line number\n        // We don't live in a perfect world, so the line number might start before or after verticalOffset1\n        const startLineNumber = this.getLineNumberAtOrAfterVerticalOffset(verticalOffset1) | 0;\n        const startLineNumberVerticalOffset = this.getVerticalOffsetForLineNumber(startLineNumber) | 0;\n        let endLineNumber = this._lineCount | 0;\n        // Also keep track of what whitespace we've got\n        let whitespaceIndex = this.getFirstWhitespaceIndexAfterLineNumber(startLineNumber) | 0;\n        const whitespaceCount = this.getWhitespacesCount() | 0;\n        let currentWhitespaceHeight;\n        let currentWhitespaceAfterLineNumber;\n        if (whitespaceIndex === -1) {\n            whitespaceIndex = whitespaceCount;\n            currentWhitespaceAfterLineNumber = endLineNumber + 1;\n            currentWhitespaceHeight = 0;\n        }\n        else {\n            currentWhitespaceAfterLineNumber = this.getAfterLineNumberForWhitespaceIndex(whitespaceIndex) | 0;\n            currentWhitespaceHeight = this.getHeightForWhitespaceIndex(whitespaceIndex) | 0;\n        }\n        let currentVerticalOffset = startLineNumberVerticalOffset;\n        let currentLineRelativeOffset = currentVerticalOffset;\n        // IE (all versions) cannot handle units above about 1,533,908 px, so every 500k pixels bring numbers down\n        const STEP_SIZE = 500000;\n        let bigNumbersDelta = 0;\n        if (startLineNumberVerticalOffset >= STEP_SIZE) {\n            // Compute a delta that guarantees that lines are positioned at `lineHeight` increments\n            bigNumbersDelta = Math.floor(startLineNumberVerticalOffset / STEP_SIZE) * STEP_SIZE;\n            bigNumbersDelta = Math.floor(bigNumbersDelta / lineHeight) * lineHeight;\n            currentLineRelativeOffset -= bigNumbersDelta;\n        }\n        const linesOffsets = [];\n        const verticalCenter = verticalOffset1 + (verticalOffset2 - verticalOffset1) / 2;\n        let centeredLineNumber = -1;\n        // Figure out how far the lines go\n        for (let lineNumber = startLineNumber; lineNumber <= endLineNumber; lineNumber++) {\n            if (centeredLineNumber === -1) {\n                const currentLineTop = currentVerticalOffset;\n                const currentLineBottom = currentVerticalOffset + lineHeight;\n                if ((currentLineTop <= verticalCenter && verticalCenter < currentLineBottom) || currentLineTop > verticalCenter) {\n                    centeredLineNumber = lineNumber;\n                }\n            }\n            // Count current line height in the vertical offsets\n            currentVerticalOffset += lineHeight;\n            linesOffsets[lineNumber - startLineNumber] = currentLineRelativeOffset;\n            // Next line starts immediately after this one\n            currentLineRelativeOffset += lineHeight;\n            while (currentWhitespaceAfterLineNumber === lineNumber) {\n                // Push down next line with the height of the current whitespace\n                currentLineRelativeOffset += currentWhitespaceHeight;\n                // Count current whitespace in the vertical offsets\n                currentVerticalOffset += currentWhitespaceHeight;\n                whitespaceIndex++;\n                if (whitespaceIndex >= whitespaceCount) {\n                    currentWhitespaceAfterLineNumber = endLineNumber + 1;\n                }\n                else {\n                    currentWhitespaceAfterLineNumber = this.getAfterLineNumberForWhitespaceIndex(whitespaceIndex) | 0;\n                    currentWhitespaceHeight = this.getHeightForWhitespaceIndex(whitespaceIndex) | 0;\n                }\n            }\n            if (currentVerticalOffset >= verticalOffset2) {\n                // We have covered the entire viewport area, time to stop\n                endLineNumber = lineNumber;\n                break;\n            }\n        }\n        if (centeredLineNumber === -1) {\n            centeredLineNumber = endLineNumber;\n        }\n        const endLineNumberVerticalOffset = this.getVerticalOffsetForLineNumber(endLineNumber) | 0;\n        let completelyVisibleStartLineNumber = startLineNumber;\n        let completelyVisibleEndLineNumber = endLineNumber;\n        if (completelyVisibleStartLineNumber < completelyVisibleEndLineNumber) {\n            if (startLineNumberVerticalOffset < verticalOffset1) {\n                completelyVisibleStartLineNumber++;\n            }\n        }\n        if (completelyVisibleStartLineNumber < completelyVisibleEndLineNumber) {\n            if (endLineNumberVerticalOffset + lineHeight > verticalOffset2) {\n                completelyVisibleEndLineNumber--;\n            }\n        }\n        return {\n            bigNumbersDelta: bigNumbersDelta,\n            startLineNumber: startLineNumber,\n            endLineNumber: endLineNumber,\n            relativeVerticalOffset: linesOffsets,\n            centeredLineNumber: centeredLineNumber,\n            completelyVisibleStartLineNumber: completelyVisibleStartLineNumber,\n            completelyVisibleEndLineNumber: completelyVisibleEndLineNumber,\n            lineHeight: this._lineHeight,\n        };\n    }\n    getVerticalOffsetForWhitespaceIndex(whitespaceIndex) {\n        this._checkPendingChanges();\n        whitespaceIndex = whitespaceIndex | 0;\n        const afterLineNumber = this.getAfterLineNumberForWhitespaceIndex(whitespaceIndex);\n        let previousLinesHeight;\n        if (afterLineNumber >= 1) {\n            previousLinesHeight = this._lineHeight * afterLineNumber;\n        }\n        else {\n            previousLinesHeight = 0;\n        }\n        let previousWhitespacesHeight;\n        if (whitespaceIndex > 0) {\n            previousWhitespacesHeight = this.getWhitespacesAccumulatedHeight(whitespaceIndex - 1);\n        }\n        else {\n            previousWhitespacesHeight = 0;\n        }\n        return previousLinesHeight + previousWhitespacesHeight + this._paddingTop;\n    }\n    getWhitespaceIndexAtOrAfterVerticallOffset(verticalOffset) {\n        this._checkPendingChanges();\n        verticalOffset = verticalOffset | 0;\n        let minWhitespaceIndex = 0;\n        let maxWhitespaceIndex = this.getWhitespacesCount() - 1;\n        if (maxWhitespaceIndex < 0) {\n            return -1;\n        }\n        // Special case: nothing to be found\n        const maxWhitespaceVerticalOffset = this.getVerticalOffsetForWhitespaceIndex(maxWhitespaceIndex);\n        const maxWhitespaceHeight = this.getHeightForWhitespaceIndex(maxWhitespaceIndex);\n        if (verticalOffset >= maxWhitespaceVerticalOffset + maxWhitespaceHeight) {\n            return -1;\n        }\n        while (minWhitespaceIndex < maxWhitespaceIndex) {\n            const midWhitespaceIndex = Math.floor((minWhitespaceIndex + maxWhitespaceIndex) / 2);\n            const midWhitespaceVerticalOffset = this.getVerticalOffsetForWhitespaceIndex(midWhitespaceIndex);\n            const midWhitespaceHeight = this.getHeightForWhitespaceIndex(midWhitespaceIndex);\n            if (verticalOffset >= midWhitespaceVerticalOffset + midWhitespaceHeight) {\n                // vertical offset is after whitespace\n                minWhitespaceIndex = midWhitespaceIndex + 1;\n            }\n            else if (verticalOffset >= midWhitespaceVerticalOffset) {\n                // Hit\n                return midWhitespaceIndex;\n            }\n            else {\n                // vertical offset is before whitespace, but midWhitespaceIndex might still be what we're searching for\n                maxWhitespaceIndex = midWhitespaceIndex;\n            }\n        }\n        return minWhitespaceIndex;\n    }\n    /**\n     * Get exactly the whitespace that is layouted at `verticalOffset`.\n     *\n     * @param verticalOffset The vertical offset.\n     * @return Precisely the whitespace that is layouted at `verticaloffset` or null.\n     */\n    getWhitespaceAtVerticalOffset(verticalOffset) {\n        this._checkPendingChanges();\n        verticalOffset = verticalOffset | 0;\n        const candidateIndex = this.getWhitespaceIndexAtOrAfterVerticallOffset(verticalOffset);\n        if (candidateIndex < 0) {\n            return null;\n        }\n        if (candidateIndex >= this.getWhitespacesCount()) {\n            return null;\n        }\n        const candidateTop = this.getVerticalOffsetForWhitespaceIndex(candidateIndex);\n        if (candidateTop > verticalOffset) {\n            return null;\n        }\n        const candidateHeight = this.getHeightForWhitespaceIndex(candidateIndex);\n        const candidateId = this.getIdForWhitespaceIndex(candidateIndex);\n        const candidateAfterLineNumber = this.getAfterLineNumberForWhitespaceIndex(candidateIndex);\n        return {\n            id: candidateId,\n            afterLineNumber: candidateAfterLineNumber,\n            verticalOffset: candidateTop,\n            height: candidateHeight\n        };\n    }\n    /**\n     * Get a list of whitespaces that are positioned between `verticalOffset1` and `verticalOffset2`.\n     *\n     * @param verticalOffset1 The beginning of the viewport.\n     * @param verticalOffset2 The end of the viewport.\n     * @return An array with all the whitespaces in the viewport. If no whitespace is in viewport, the array is empty.\n     */\n    getWhitespaceViewportData(verticalOffset1, verticalOffset2) {\n        this._checkPendingChanges();\n        verticalOffset1 = verticalOffset1 | 0;\n        verticalOffset2 = verticalOffset2 | 0;\n        const startIndex = this.getWhitespaceIndexAtOrAfterVerticallOffset(verticalOffset1);\n        const endIndex = this.getWhitespacesCount() - 1;\n        if (startIndex < 0) {\n            return [];\n        }\n        const result = [];\n        for (let i = startIndex; i <= endIndex; i++) {\n            const top = this.getVerticalOffsetForWhitespaceIndex(i);\n            const height = this.getHeightForWhitespaceIndex(i);\n            if (top >= verticalOffset2) {\n                break;\n            }\n            result.push({\n                id: this.getIdForWhitespaceIndex(i),\n                afterLineNumber: this.getAfterLineNumberForWhitespaceIndex(i),\n                verticalOffset: top,\n                height: height\n            });\n        }\n        return result;\n    }\n    /**\n     * Get all whitespaces.\n     */\n    getWhitespaces() {\n        this._checkPendingChanges();\n        return this._arr.slice(0);\n    }\n    /**\n     * The number of whitespaces.\n     */\n    getWhitespacesCount() {\n        this._checkPendingChanges();\n        return this._arr.length;\n    }\n    /**\n     * Get the `id` for whitespace at index `index`.\n     *\n     * @param index The index of the whitespace.\n     * @return `id` of whitespace at `index`.\n     */\n    getIdForWhitespaceIndex(index) {\n        this._checkPendingChanges();\n        index = index | 0;\n        return this._arr[index].id;\n    }\n    /**\n     * Get the `afterLineNumber` for whitespace at index `index`.\n     *\n     * @param index The index of the whitespace.\n     * @return `afterLineNumber` of whitespace at `index`.\n     */\n    getAfterLineNumberForWhitespaceIndex(index) {\n        this._checkPendingChanges();\n        index = index | 0;\n        return this._arr[index].afterLineNumber;\n    }\n    /**\n     * Get the `height` for whitespace at index `index`.\n     *\n     * @param index The index of the whitespace.\n     * @return `height` of whitespace at `index`.\n     */\n    getHeightForWhitespaceIndex(index) {\n        this._checkPendingChanges();\n        index = index | 0;\n        return this._arr[index].height;\n    }\n}\nLinesLayout.INSTANCE_COUNT = 0;\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/viewLayout/viewLayout.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../../base/common/event.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { Scrollable } from '../../../base/common/scrollable.js';\nimport { LinesLayout } from './linesLayout.js';\nimport { Viewport } from '../viewModel.js';\nimport { ContentSizeChangedEvent } from '../viewModelEventDispatcher.js';\nconst SMOOTH_SCROLLING_TIME = 125;\nclass EditorScrollDimensions {\n    constructor(width, contentWidth, height, contentHeight) {\n        width = width | 0;\n        contentWidth = contentWidth | 0;\n        height = height | 0;\n        contentHeight = contentHeight | 0;\n        if (width < 0) {\n            width = 0;\n        }\n        if (contentWidth < 0) {\n            contentWidth = 0;\n        }\n        if (height < 0) {\n            height = 0;\n        }\n        if (contentHeight < 0) {\n            contentHeight = 0;\n        }\n        this.width = width;\n        this.contentWidth = contentWidth;\n        this.scrollWidth = Math.max(width, contentWidth);\n        this.height = height;\n        this.contentHeight = contentHeight;\n        this.scrollHeight = Math.max(height, contentHeight);\n    }\n    equals(other) {\n        return (this.width === other.width\n            && this.contentWidth === other.contentWidth\n            && this.height === other.height\n            && this.contentHeight === other.contentHeight);\n    }\n}\nclass EditorScrollable extends Disposable {\n    constructor(smoothScrollDuration, scheduleAtNextAnimationFrame) {\n        super();\n        this._onDidContentSizeChange = this._register(new Emitter());\n        this.onDidContentSizeChange = this._onDidContentSizeChange.event;\n        this._dimensions = new EditorScrollDimensions(0, 0, 0, 0);\n        this._scrollable = this._register(new Scrollable({\n            forceIntegerValues: true,\n            smoothScrollDuration,\n            scheduleAtNextAnimationFrame\n        }));\n        this.onDidScroll = this._scrollable.onScroll;\n    }\n    getScrollable() {\n        return this._scrollable;\n    }\n    setSmoothScrollDuration(smoothScrollDuration) {\n        this._scrollable.setSmoothScrollDuration(smoothScrollDuration);\n    }\n    validateScrollPosition(scrollPosition) {\n        return this._scrollable.validateScrollPosition(scrollPosition);\n    }\n    getScrollDimensions() {\n        return this._dimensions;\n    }\n    setScrollDimensions(dimensions) {\n        if (this._dimensions.equals(dimensions)) {\n            return;\n        }\n        const oldDimensions = this._dimensions;\n        this._dimensions = dimensions;\n        this._scrollable.setScrollDimensions({\n            width: dimensions.width,\n            scrollWidth: dimensions.scrollWidth,\n            height: dimensions.height,\n            scrollHeight: dimensions.scrollHeight\n        }, true);\n        const contentWidthChanged = (oldDimensions.contentWidth !== dimensions.contentWidth);\n        const contentHeightChanged = (oldDimensions.contentHeight !== dimensions.contentHeight);\n        if (contentWidthChanged || contentHeightChanged) {\n            this._onDidContentSizeChange.fire(new ContentSizeChangedEvent(oldDimensions.contentWidth, oldDimensions.contentHeight, dimensions.contentWidth, dimensions.contentHeight));\n        }\n    }\n    getFutureScrollPosition() {\n        return this._scrollable.getFutureScrollPosition();\n    }\n    getCurrentScrollPosition() {\n        return this._scrollable.getCurrentScrollPosition();\n    }\n    setScrollPositionNow(update) {\n        this._scrollable.setScrollPositionNow(update);\n    }\n    setScrollPositionSmooth(update) {\n        this._scrollable.setScrollPositionSmooth(update);\n    }\n    hasPendingScrollAnimation() {\n        return this._scrollable.hasPendingScrollAnimation();\n    }\n}\nexport class ViewLayout extends Disposable {\n    constructor(configuration, lineCount, scheduleAtNextAnimationFrame) {\n        super();\n        this._configuration = configuration;\n        const options = this._configuration.options;\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        const padding = options.get(84 /* EditorOption.padding */);\n        this._linesLayout = new LinesLayout(lineCount, options.get(67 /* EditorOption.lineHeight */), padding.top, padding.bottom);\n        this._maxLineWidth = 0;\n        this._overlayWidgetsMinWidth = 0;\n        this._scrollable = this._register(new EditorScrollable(0, scheduleAtNextAnimationFrame));\n        this._configureSmoothScrollDuration();\n        this._scrollable.setScrollDimensions(new EditorScrollDimensions(layoutInfo.contentWidth, 0, layoutInfo.height, 0));\n        this.onDidScroll = this._scrollable.onDidScroll;\n        this.onDidContentSizeChange = this._scrollable.onDidContentSizeChange;\n        this._updateHeight();\n    }\n    dispose() {\n        super.dispose();\n    }\n    getScrollable() {\n        return this._scrollable.getScrollable();\n    }\n    onHeightMaybeChanged() {\n        this._updateHeight();\n    }\n    _configureSmoothScrollDuration() {\n        this._scrollable.setSmoothScrollDuration(this._configuration.options.get(114 /* EditorOption.smoothScrolling */) ? SMOOTH_SCROLLING_TIME : 0);\n    }\n    // ---- begin view event handlers\n    onConfigurationChanged(e) {\n        const options = this._configuration.options;\n        if (e.hasChanged(67 /* EditorOption.lineHeight */)) {\n            this._linesLayout.setLineHeight(options.get(67 /* EditorOption.lineHeight */));\n        }\n        if (e.hasChanged(84 /* EditorOption.padding */)) {\n            const padding = options.get(84 /* EditorOption.padding */);\n            this._linesLayout.setPadding(padding.top, padding.bottom);\n        }\n        if (e.hasChanged(145 /* EditorOption.layoutInfo */)) {\n            const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n            const width = layoutInfo.contentWidth;\n            const height = layoutInfo.height;\n            const scrollDimensions = this._scrollable.getScrollDimensions();\n            const contentWidth = scrollDimensions.contentWidth;\n            this._scrollable.setScrollDimensions(new EditorScrollDimensions(width, scrollDimensions.contentWidth, height, this._getContentHeight(width, height, contentWidth)));\n        }\n        else {\n            this._updateHeight();\n        }\n        if (e.hasChanged(114 /* EditorOption.smoothScrolling */)) {\n            this._configureSmoothScrollDuration();\n        }\n    }\n    onFlushed(lineCount) {\n        this._linesLayout.onFlushed(lineCount);\n    }\n    onLinesDeleted(fromLineNumber, toLineNumber) {\n        this._linesLayout.onLinesDeleted(fromLineNumber, toLineNumber);\n    }\n    onLinesInserted(fromLineNumber, toLineNumber) {\n        this._linesLayout.onLinesInserted(fromLineNumber, toLineNumber);\n    }\n    // ---- end view event handlers\n    _getHorizontalScrollbarHeight(width, scrollWidth) {\n        const options = this._configuration.options;\n        const scrollbar = options.get(103 /* EditorOption.scrollbar */);\n        if (scrollbar.horizontal === 2 /* ScrollbarVisibility.Hidden */) {\n            // horizontal scrollbar not visible\n            return 0;\n        }\n        if (width >= scrollWidth) {\n            // horizontal scrollbar not visible\n            return 0;\n        }\n        return scrollbar.horizontalScrollbarSize;\n    }\n    _getContentHeight(width, height, contentWidth) {\n        const options = this._configuration.options;\n        let result = this._linesLayout.getLinesTotalHeight();\n        if (options.get(105 /* EditorOption.scrollBeyondLastLine */)) {\n            result += Math.max(0, height - options.get(67 /* EditorOption.lineHeight */) - options.get(84 /* EditorOption.padding */).bottom);\n        }\n        else if (!options.get(103 /* EditorOption.scrollbar */).ignoreHorizontalScrollbarInContentHeight) {\n            result += this._getHorizontalScrollbarHeight(width, contentWidth);\n        }\n        return result;\n    }\n    _updateHeight() {\n        const scrollDimensions = this._scrollable.getScrollDimensions();\n        const width = scrollDimensions.width;\n        const height = scrollDimensions.height;\n        const contentWidth = scrollDimensions.contentWidth;\n        this._scrollable.setScrollDimensions(new EditorScrollDimensions(width, scrollDimensions.contentWidth, height, this._getContentHeight(width, height, contentWidth)));\n    }\n    // ---- Layouting logic\n    getCurrentViewport() {\n        const scrollDimensions = this._scrollable.getScrollDimensions();\n        const currentScrollPosition = this._scrollable.getCurrentScrollPosition();\n        return new Viewport(currentScrollPosition.scrollTop, currentScrollPosition.scrollLeft, scrollDimensions.width, scrollDimensions.height);\n    }\n    getFutureViewport() {\n        const scrollDimensions = this._scrollable.getScrollDimensions();\n        const currentScrollPosition = this._scrollable.getFutureScrollPosition();\n        return new Viewport(currentScrollPosition.scrollTop, currentScrollPosition.scrollLeft, scrollDimensions.width, scrollDimensions.height);\n    }\n    _computeContentWidth() {\n        const options = this._configuration.options;\n        const maxLineWidth = this._maxLineWidth;\n        const wrappingInfo = options.get(146 /* EditorOption.wrappingInfo */);\n        const fontInfo = options.get(50 /* EditorOption.fontInfo */);\n        const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n        if (wrappingInfo.isViewportWrapping) {\n            const minimap = options.get(73 /* EditorOption.minimap */);\n            if (maxLineWidth > layoutInfo.contentWidth + fontInfo.typicalHalfwidthCharacterWidth) {\n                // This is a case where viewport wrapping is on, but the line extends above the viewport\n                if (minimap.enabled && minimap.side === 'right') {\n                    // We need to accomodate the scrollbar width\n                    return maxLineWidth + layoutInfo.verticalScrollbarWidth;\n                }\n            }\n            return maxLineWidth;\n        }\n        else {\n            const extraHorizontalSpace = options.get(104 /* EditorOption.scrollBeyondLastColumn */) * fontInfo.typicalHalfwidthCharacterWidth;\n            const whitespaceMinWidth = this._linesLayout.getWhitespaceMinWidth();\n            return Math.max(maxLineWidth + extraHorizontalSpace + layoutInfo.verticalScrollbarWidth, whitespaceMinWidth, this._overlayWidgetsMinWidth);\n        }\n    }\n    setMaxLineWidth(maxLineWidth) {\n        this._maxLineWidth = maxLineWidth;\n        this._updateContentWidth();\n    }\n    setOverlayWidgetsMinWidth(maxMinWidth) {\n        this._overlayWidgetsMinWidth = maxMinWidth;\n        this._updateContentWidth();\n    }\n    _updateContentWidth() {\n        const scrollDimensions = this._scrollable.getScrollDimensions();\n        this._scrollable.setScrollDimensions(new EditorScrollDimensions(scrollDimensions.width, this._computeContentWidth(), scrollDimensions.height, scrollDimensions.contentHeight));\n        // The height might depend on the fact that there is a horizontal scrollbar or not\n        this._updateHeight();\n    }\n    // ---- view state\n    saveState() {\n        const currentScrollPosition = this._scrollable.getFutureScrollPosition();\n        const scrollTop = currentScrollPosition.scrollTop;\n        const firstLineNumberInViewport = this._linesLayout.getLineNumberAtOrAfterVerticalOffset(scrollTop);\n        const whitespaceAboveFirstLine = this._linesLayout.getWhitespaceAccumulatedHeightBeforeLineNumber(firstLineNumberInViewport);\n        return {\n            scrollTop: scrollTop,\n            scrollTopWithoutViewZones: scrollTop - whitespaceAboveFirstLine,\n            scrollLeft: currentScrollPosition.scrollLeft\n        };\n    }\n    // ----\n    changeWhitespace(callback) {\n        const hadAChange = this._linesLayout.changeWhitespace(callback);\n        if (hadAChange) {\n            this.onHeightMaybeChanged();\n        }\n        return hadAChange;\n    }\n    getVerticalOffsetForLineNumber(lineNumber, includeViewZones = false) {\n        return this._linesLayout.getVerticalOffsetForLineNumber(lineNumber, includeViewZones);\n    }\n    getVerticalOffsetAfterLineNumber(lineNumber, includeViewZones = false) {\n        return this._linesLayout.getVerticalOffsetAfterLineNumber(lineNumber, includeViewZones);\n    }\n    isAfterLines(verticalOffset) {\n        return this._linesLayout.isAfterLines(verticalOffset);\n    }\n    isInTopPadding(verticalOffset) {\n        return this._linesLayout.isInTopPadding(verticalOffset);\n    }\n    isInBottomPadding(verticalOffset) {\n        return this._linesLayout.isInBottomPadding(verticalOffset);\n    }\n    getLineNumberAtVerticalOffset(verticalOffset) {\n        return this._linesLayout.getLineNumberAtOrAfterVerticalOffset(verticalOffset);\n    }\n    getWhitespaceAtVerticalOffset(verticalOffset) {\n        return this._linesLayout.getWhitespaceAtVerticalOffset(verticalOffset);\n    }\n    getLinesViewportData() {\n        const visibleBox = this.getCurrentViewport();\n        return this._linesLayout.getLinesViewportData(visibleBox.top, visibleBox.top + visibleBox.height);\n    }\n    getLinesViewportDataAtScrollTop(scrollTop) {\n        // do some minimal validations on scrollTop\n        const scrollDimensions = this._scrollable.getScrollDimensions();\n        if (scrollTop + scrollDimensions.height > scrollDimensions.scrollHeight) {\n            scrollTop = scrollDimensions.scrollHeight - scrollDimensions.height;\n        }\n        if (scrollTop < 0) {\n            scrollTop = 0;\n        }\n        return this._linesLayout.getLinesViewportData(scrollTop, scrollTop + scrollDimensions.height);\n    }\n    getWhitespaceViewportData() {\n        const visibleBox = this.getCurrentViewport();\n        return this._linesLayout.getWhitespaceViewportData(visibleBox.top, visibleBox.top + visibleBox.height);\n    }\n    getWhitespaces() {\n        return this._linesLayout.getWhitespaces();\n    }\n    // ----\n    getContentWidth() {\n        const scrollDimensions = this._scrollable.getScrollDimensions();\n        return scrollDimensions.contentWidth;\n    }\n    getScrollWidth() {\n        const scrollDimensions = this._scrollable.getScrollDimensions();\n        return scrollDimensions.scrollWidth;\n    }\n    getContentHeight() {\n        const scrollDimensions = this._scrollable.getScrollDimensions();\n        return scrollDimensions.contentHeight;\n    }\n    getScrollHeight() {\n        const scrollDimensions = this._scrollable.getScrollDimensions();\n        return scrollDimensions.scrollHeight;\n    }\n    getCurrentScrollLeft() {\n        const currentScrollPosition = this._scrollable.getCurrentScrollPosition();\n        return currentScrollPosition.scrollLeft;\n    }\n    getCurrentScrollTop() {\n        const currentScrollPosition = this._scrollable.getCurrentScrollPosition();\n        return currentScrollPosition.scrollTop;\n    }\n    validateScrollPosition(scrollPosition) {\n        return this._scrollable.validateScrollPosition(scrollPosition);\n    }\n    setScrollPosition(position, type) {\n        if (type === 1 /* ScrollType.Immediate */) {\n            this._scrollable.setScrollPositionNow(position);\n        }\n        else {\n            this._scrollable.setScrollPositionSmooth(position);\n        }\n    }\n    hasPendingScrollAnimation() {\n        return this._scrollable.hasPendingScrollAnimation();\n    }\n    deltaScrollNow(deltaScrollLeft, deltaScrollTop) {\n        const currentScrollPosition = this._scrollable.getCurrentScrollPosition();\n        this._scrollable.setScrollPositionNow({\n            scrollLeft: currentScrollPosition.scrollLeft + deltaScrollLeft,\n            scrollTop: currentScrollPosition.scrollTop + deltaScrollTop\n        });\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/viewLayout/viewLineRenderer.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../nls.js';\nimport * as strings from '../../../base/common/strings.js';\nimport { StringBuilder } from '../core/stringBuilder.js';\nimport { LineDecoration, LineDecorationsNormalizer } from './lineDecorations.js';\nimport { LinePart } from './linePart.js';\nexport class LineRange {\n    constructor(startIndex, endIndex) {\n        this.startOffset = startIndex;\n        this.endOffset = endIndex;\n    }\n    equals(otherLineRange) {\n        return this.startOffset === otherLineRange.startOffset\n            && this.endOffset === otherLineRange.endOffset;\n    }\n}\nexport class RenderLineInput {\n    constructor(useMonospaceOptimizations, canUseHalfwidthRightwardsArrow, lineContent, continuesWithWrappedLine, isBasicASCII, containsRTL, fauxIndentLength, lineTokens, lineDecorations, tabSize, startVisibleColumn, spaceWidth, middotWidth, wsmiddotWidth, stopRenderingLineAfter, renderWhitespace, renderControlCharacters, fontLigatures, selectionsOnLine) {\n        this.useMonospaceOptimizations = useMonospaceOptimizations;\n        this.canUseHalfwidthRightwardsArrow = canUseHalfwidthRightwardsArrow;\n        this.lineContent = lineContent;\n        this.continuesWithWrappedLine = continuesWithWrappedLine;\n        this.isBasicASCII = isBasicASCII;\n        this.containsRTL = containsRTL;\n        this.fauxIndentLength = fauxIndentLength;\n        this.lineTokens = lineTokens;\n        this.lineDecorations = lineDecorations.sort(LineDecoration.compare);\n        this.tabSize = tabSize;\n        this.startVisibleColumn = startVisibleColumn;\n        this.spaceWidth = spaceWidth;\n        this.stopRenderingLineAfter = stopRenderingLineAfter;\n        this.renderWhitespace = (renderWhitespace === 'all'\n            ? 4 /* RenderWhitespace.All */\n            : renderWhitespace === 'boundary'\n                ? 1 /* RenderWhitespace.Boundary */\n                : renderWhitespace === 'selection'\n                    ? 2 /* RenderWhitespace.Selection */\n                    : renderWhitespace === 'trailing'\n                        ? 3 /* RenderWhitespace.Trailing */\n                        : 0 /* RenderWhitespace.None */);\n        this.renderControlCharacters = renderControlCharacters;\n        this.fontLigatures = fontLigatures;\n        this.selectionsOnLine = selectionsOnLine && selectionsOnLine.sort((a, b) => a.startOffset < b.startOffset ? -1 : 1);\n        const wsmiddotDiff = Math.abs(wsmiddotWidth - spaceWidth);\n        const middotDiff = Math.abs(middotWidth - spaceWidth);\n        if (wsmiddotDiff < middotDiff) {\n            this.renderSpaceWidth = wsmiddotWidth;\n            this.renderSpaceCharCode = 0x2E31; // U+2E31 - WORD SEPARATOR MIDDLE DOT\n        }\n        else {\n            this.renderSpaceWidth = middotWidth;\n            this.renderSpaceCharCode = 0xB7; // U+00B7 - MIDDLE DOT\n        }\n    }\n    sameSelection(otherSelections) {\n        if (this.selectionsOnLine === null) {\n            return otherSelections === null;\n        }\n        if (otherSelections === null) {\n            return false;\n        }\n        if (otherSelections.length !== this.selectionsOnLine.length) {\n            return false;\n        }\n        for (let i = 0; i < this.selectionsOnLine.length; i++) {\n            if (!this.selectionsOnLine[i].equals(otherSelections[i])) {\n                return false;\n            }\n        }\n        return true;\n    }\n    equals(other) {\n        return (this.useMonospaceOptimizations === other.useMonospaceOptimizations\n            && this.canUseHalfwidthRightwardsArrow === other.canUseHalfwidthRightwardsArrow\n            && this.lineContent === other.lineContent\n            && this.continuesWithWrappedLine === other.continuesWithWrappedLine\n            && this.isBasicASCII === other.isBasicASCII\n            && this.containsRTL === other.containsRTL\n            && this.fauxIndentLength === other.fauxIndentLength\n            && this.tabSize === other.tabSize\n            && this.startVisibleColumn === other.startVisibleColumn\n            && this.spaceWidth === other.spaceWidth\n            && this.renderSpaceWidth === other.renderSpaceWidth\n            && this.renderSpaceCharCode === other.renderSpaceCharCode\n            && this.stopRenderingLineAfter === other.stopRenderingLineAfter\n            && this.renderWhitespace === other.renderWhitespace\n            && this.renderControlCharacters === other.renderControlCharacters\n            && this.fontLigatures === other.fontLigatures\n            && LineDecoration.equalsArr(this.lineDecorations, other.lineDecorations)\n            && this.lineTokens.equals(other.lineTokens)\n            && this.sameSelection(other.selectionsOnLine));\n    }\n}\nexport class DomPosition {\n    constructor(partIndex, charIndex) {\n        this.partIndex = partIndex;\n        this.charIndex = charIndex;\n    }\n}\n/**\n * Provides a both direction mapping between a line's character and its rendered position.\n */\nexport class CharacterMapping {\n    static getPartIndex(partData) {\n        return (partData & 4294901760 /* CharacterMappingConstants.PART_INDEX_MASK */) >>> 16 /* CharacterMappingConstants.PART_INDEX_OFFSET */;\n    }\n    static getCharIndex(partData) {\n        return (partData & 65535 /* CharacterMappingConstants.CHAR_INDEX_MASK */) >>> 0 /* CharacterMappingConstants.CHAR_INDEX_OFFSET */;\n    }\n    constructor(length, partCount) {\n        this.length = length;\n        this._data = new Uint32Array(this.length);\n        this._horizontalOffset = new Uint32Array(this.length);\n    }\n    setColumnInfo(column, partIndex, charIndex, horizontalOffset) {\n        const partData = ((partIndex << 16 /* CharacterMappingConstants.PART_INDEX_OFFSET */)\n            | (charIndex << 0 /* CharacterMappingConstants.CHAR_INDEX_OFFSET */)) >>> 0;\n        this._data[column - 1] = partData;\n        this._horizontalOffset[column - 1] = horizontalOffset;\n    }\n    getHorizontalOffset(column) {\n        if (this._horizontalOffset.length === 0) {\n            // No characters on this line\n            return 0;\n        }\n        return this._horizontalOffset[column - 1];\n    }\n    charOffsetToPartData(charOffset) {\n        if (this.length === 0) {\n            return 0;\n        }\n        if (charOffset < 0) {\n            return this._data[0];\n        }\n        if (charOffset >= this.length) {\n            return this._data[this.length - 1];\n        }\n        return this._data[charOffset];\n    }\n    getDomPosition(column) {\n        const partData = this.charOffsetToPartData(column - 1);\n        const partIndex = CharacterMapping.getPartIndex(partData);\n        const charIndex = CharacterMapping.getCharIndex(partData);\n        return new DomPosition(partIndex, charIndex);\n    }\n    getColumn(domPosition, partLength) {\n        const charOffset = this.partDataToCharOffset(domPosition.partIndex, partLength, domPosition.charIndex);\n        return charOffset + 1;\n    }\n    partDataToCharOffset(partIndex, partLength, charIndex) {\n        if (this.length === 0) {\n            return 0;\n        }\n        const searchEntry = ((partIndex << 16 /* CharacterMappingConstants.PART_INDEX_OFFSET */)\n            | (charIndex << 0 /* CharacterMappingConstants.CHAR_INDEX_OFFSET */)) >>> 0;\n        let min = 0;\n        let max = this.length - 1;\n        while (min + 1 < max) {\n            const mid = ((min + max) >>> 1);\n            const midEntry = this._data[mid];\n            if (midEntry === searchEntry) {\n                return mid;\n            }\n            else if (midEntry > searchEntry) {\n                max = mid;\n            }\n            else {\n                min = mid;\n            }\n        }\n        if (min === max) {\n            return min;\n        }\n        const minEntry = this._data[min];\n        const maxEntry = this._data[max];\n        if (minEntry === searchEntry) {\n            return min;\n        }\n        if (maxEntry === searchEntry) {\n            return max;\n        }\n        const minPartIndex = CharacterMapping.getPartIndex(minEntry);\n        const minCharIndex = CharacterMapping.getCharIndex(minEntry);\n        const maxPartIndex = CharacterMapping.getPartIndex(maxEntry);\n        let maxCharIndex;\n        if (minPartIndex !== maxPartIndex) {\n            // sitting between parts\n            maxCharIndex = partLength;\n        }\n        else {\n            maxCharIndex = CharacterMapping.getCharIndex(maxEntry);\n        }\n        const minEntryDistance = charIndex - minCharIndex;\n        const maxEntryDistance = maxCharIndex - charIndex;\n        if (minEntryDistance <= maxEntryDistance) {\n            return min;\n        }\n        return max;\n    }\n}\nexport class RenderLineOutput {\n    constructor(characterMapping, containsRTL, containsForeignElements) {\n        this._renderLineOutputBrand = undefined;\n        this.characterMapping = characterMapping;\n        this.containsRTL = containsRTL;\n        this.containsForeignElements = containsForeignElements;\n    }\n}\nexport function renderViewLine(input, sb) {\n    if (input.lineContent.length === 0) {\n        if (input.lineDecorations.length > 0) {\n            // This line is empty, but it contains inline decorations\n            sb.appendString(`<span>`);\n            let beforeCount = 0;\n            let afterCount = 0;\n            let containsForeignElements = 0 /* ForeignElementType.None */;\n            for (const lineDecoration of input.lineDecorations) {\n                if (lineDecoration.type === 1 /* InlineDecorationType.Before */ || lineDecoration.type === 2 /* InlineDecorationType.After */) {\n                    sb.appendString(`<span class=\"`);\n                    sb.appendString(lineDecoration.className);\n                    sb.appendString(`\"></span>`);\n                    if (lineDecoration.type === 1 /* InlineDecorationType.Before */) {\n                        containsForeignElements |= 1 /* ForeignElementType.Before */;\n                        beforeCount++;\n                    }\n                    if (lineDecoration.type === 2 /* InlineDecorationType.After */) {\n                        containsForeignElements |= 2 /* ForeignElementType.After */;\n                        afterCount++;\n                    }\n                }\n            }\n            sb.appendString(`</span>`);\n            const characterMapping = new CharacterMapping(1, beforeCount + afterCount);\n            characterMapping.setColumnInfo(1, beforeCount, 0, 0);\n            return new RenderLineOutput(characterMapping, false, containsForeignElements);\n        }\n        // completely empty line\n        sb.appendString('<span><span></span></span>');\n        return new RenderLineOutput(new CharacterMapping(0, 0), false, 0 /* ForeignElementType.None */);\n    }\n    return _renderLine(resolveRenderLineInput(input), sb);\n}\nexport class RenderLineOutput2 {\n    constructor(characterMapping, html, containsRTL, containsForeignElements) {\n        this.characterMapping = characterMapping;\n        this.html = html;\n        this.containsRTL = containsRTL;\n        this.containsForeignElements = containsForeignElements;\n    }\n}\nexport function renderViewLine2(input) {\n    const sb = new StringBuilder(10000);\n    const out = renderViewLine(input, sb);\n    return new RenderLineOutput2(out.characterMapping, sb.build(), out.containsRTL, out.containsForeignElements);\n}\nclass ResolvedRenderLineInput {\n    constructor(fontIsMonospace, canUseHalfwidthRightwardsArrow, lineContent, len, isOverflowing, overflowingCharCount, parts, containsForeignElements, fauxIndentLength, tabSize, startVisibleColumn, containsRTL, spaceWidth, renderSpaceCharCode, renderWhitespace, renderControlCharacters) {\n        this.fontIsMonospace = fontIsMonospace;\n        this.canUseHalfwidthRightwardsArrow = canUseHalfwidthRightwardsArrow;\n        this.lineContent = lineContent;\n        this.len = len;\n        this.isOverflowing = isOverflowing;\n        this.overflowingCharCount = overflowingCharCount;\n        this.parts = parts;\n        this.containsForeignElements = containsForeignElements;\n        this.fauxIndentLength = fauxIndentLength;\n        this.tabSize = tabSize;\n        this.startVisibleColumn = startVisibleColumn;\n        this.containsRTL = containsRTL;\n        this.spaceWidth = spaceWidth;\n        this.renderSpaceCharCode = renderSpaceCharCode;\n        this.renderWhitespace = renderWhitespace;\n        this.renderControlCharacters = renderControlCharacters;\n        //\n    }\n}\nfunction resolveRenderLineInput(input) {\n    const lineContent = input.lineContent;\n    let isOverflowing;\n    let overflowingCharCount;\n    let len;\n    if (input.stopRenderingLineAfter !== -1 && input.stopRenderingLineAfter < lineContent.length) {\n        isOverflowing = true;\n        overflowingCharCount = lineContent.length - input.stopRenderingLineAfter;\n        len = input.stopRenderingLineAfter;\n    }\n    else {\n        isOverflowing = false;\n        overflowingCharCount = 0;\n        len = lineContent.length;\n    }\n    let tokens = transformAndRemoveOverflowing(lineContent, input.containsRTL, input.lineTokens, input.fauxIndentLength, len);\n    if (input.renderControlCharacters && !input.isBasicASCII) {\n        // Calling `extractControlCharacters` before adding (possibly empty) line parts\n        // for inline decorations. `extractControlCharacters` removes empty line parts.\n        tokens = extractControlCharacters(lineContent, tokens);\n    }\n    if (input.renderWhitespace === 4 /* RenderWhitespace.All */ ||\n        input.renderWhitespace === 1 /* RenderWhitespace.Boundary */ ||\n        (input.renderWhitespace === 2 /* RenderWhitespace.Selection */ && !!input.selectionsOnLine) ||\n        (input.renderWhitespace === 3 /* RenderWhitespace.Trailing */ && !input.continuesWithWrappedLine)) {\n        tokens = _applyRenderWhitespace(input, lineContent, len, tokens);\n    }\n    let containsForeignElements = 0 /* ForeignElementType.None */;\n    if (input.lineDecorations.length > 0) {\n        for (let i = 0, len = input.lineDecorations.length; i < len; i++) {\n            const lineDecoration = input.lineDecorations[i];\n            if (lineDecoration.type === 3 /* InlineDecorationType.RegularAffectingLetterSpacing */) {\n                // Pretend there are foreign elements... although not 100% accurate.\n                containsForeignElements |= 1 /* ForeignElementType.Before */;\n            }\n            else if (lineDecoration.type === 1 /* InlineDecorationType.Before */) {\n                containsForeignElements |= 1 /* ForeignElementType.Before */;\n            }\n            else if (lineDecoration.type === 2 /* InlineDecorationType.After */) {\n                containsForeignElements |= 2 /* ForeignElementType.After */;\n            }\n        }\n        tokens = _applyInlineDecorations(lineContent, len, tokens, input.lineDecorations);\n    }\n    if (!input.containsRTL) {\n        // We can never split RTL text, as it ruins the rendering\n        tokens = splitLargeTokens(lineContent, tokens, !input.isBasicASCII || input.fontLigatures);\n    }\n    return new ResolvedRenderLineInput(input.useMonospaceOptimizations, input.canUseHalfwidthRightwardsArrow, lineContent, len, isOverflowing, overflowingCharCount, tokens, containsForeignElements, input.fauxIndentLength, input.tabSize, input.startVisibleColumn, input.containsRTL, input.spaceWidth, input.renderSpaceCharCode, input.renderWhitespace, input.renderControlCharacters);\n}\n/**\n * In the rendering phase, characters are always looped until token.endIndex.\n * Ensure that all tokens end before `len` and the last one ends precisely at `len`.\n */\nfunction transformAndRemoveOverflowing(lineContent, lineContainsRTL, tokens, fauxIndentLength, len) {\n    const result = [];\n    let resultLen = 0;\n    // The faux indent part of the line should have no token type\n    if (fauxIndentLength > 0) {\n        result[resultLen++] = new LinePart(fauxIndentLength, '', 0, false);\n    }\n    let startOffset = fauxIndentLength;\n    for (let tokenIndex = 0, tokensLen = tokens.getCount(); tokenIndex < tokensLen; tokenIndex++) {\n        const endIndex = tokens.getEndOffset(tokenIndex);\n        if (endIndex <= fauxIndentLength) {\n            // The faux indent part of the line should have no token type\n            continue;\n        }\n        const type = tokens.getClassName(tokenIndex);\n        if (endIndex >= len) {\n            const tokenContainsRTL = (lineContainsRTL ? strings.containsRTL(lineContent.substring(startOffset, len)) : false);\n            result[resultLen++] = new LinePart(len, type, 0, tokenContainsRTL);\n            break;\n        }\n        const tokenContainsRTL = (lineContainsRTL ? strings.containsRTL(lineContent.substring(startOffset, endIndex)) : false);\n        result[resultLen++] = new LinePart(endIndex, type, 0, tokenContainsRTL);\n        startOffset = endIndex;\n    }\n    return result;\n}\n/**\n * See https://github.com/microsoft/vscode/issues/6885.\n * It appears that having very large spans causes very slow reading of character positions.\n * So here we try to avoid that.\n */\nfunction splitLargeTokens(lineContent, tokens, onlyAtSpaces) {\n    let lastTokenEndIndex = 0;\n    const result = [];\n    let resultLen = 0;\n    if (onlyAtSpaces) {\n        // Split only at spaces => we need to walk each character\n        for (let i = 0, len = tokens.length; i < len; i++) {\n            const token = tokens[i];\n            const tokenEndIndex = token.endIndex;\n            if (lastTokenEndIndex + 50 /* Constants.LongToken */ < tokenEndIndex) {\n                const tokenType = token.type;\n                const tokenMetadata = token.metadata;\n                const tokenContainsRTL = token.containsRTL;\n                let lastSpaceOffset = -1;\n                let currTokenStart = lastTokenEndIndex;\n                for (let j = lastTokenEndIndex; j < tokenEndIndex; j++) {\n                    if (lineContent.charCodeAt(j) === 32 /* CharCode.Space */) {\n                        lastSpaceOffset = j;\n                    }\n                    if (lastSpaceOffset !== -1 && j - currTokenStart >= 50 /* Constants.LongToken */) {\n                        // Split at `lastSpaceOffset` + 1\n                        result[resultLen++] = new LinePart(lastSpaceOffset + 1, tokenType, tokenMetadata, tokenContainsRTL);\n                        currTokenStart = lastSpaceOffset + 1;\n                        lastSpaceOffset = -1;\n                    }\n                }\n                if (currTokenStart !== tokenEndIndex) {\n                    result[resultLen++] = new LinePart(tokenEndIndex, tokenType, tokenMetadata, tokenContainsRTL);\n                }\n            }\n            else {\n                result[resultLen++] = token;\n            }\n            lastTokenEndIndex = tokenEndIndex;\n        }\n    }\n    else {\n        // Split anywhere => we don't need to walk each character\n        for (let i = 0, len = tokens.length; i < len; i++) {\n            const token = tokens[i];\n            const tokenEndIndex = token.endIndex;\n            const diff = (tokenEndIndex - lastTokenEndIndex);\n            if (diff > 50 /* Constants.LongToken */) {\n                const tokenType = token.type;\n                const tokenMetadata = token.metadata;\n                const tokenContainsRTL = token.containsRTL;\n                const piecesCount = Math.ceil(diff / 50 /* Constants.LongToken */);\n                for (let j = 1; j < piecesCount; j++) {\n                    const pieceEndIndex = lastTokenEndIndex + (j * 50 /* Constants.LongToken */);\n                    result[resultLen++] = new LinePart(pieceEndIndex, tokenType, tokenMetadata, tokenContainsRTL);\n                }\n                result[resultLen++] = new LinePart(tokenEndIndex, tokenType, tokenMetadata, tokenContainsRTL);\n            }\n            else {\n                result[resultLen++] = token;\n            }\n            lastTokenEndIndex = tokenEndIndex;\n        }\n    }\n    return result;\n}\nfunction isControlCharacter(charCode) {\n    if (charCode < 32) {\n        return (charCode !== 9 /* CharCode.Tab */);\n    }\n    if (charCode === 127) {\n        // DEL\n        return true;\n    }\n    if ((charCode >= 0x202A && charCode <= 0x202E)\n        || (charCode >= 0x2066 && charCode <= 0x2069)\n        || (charCode >= 0x200E && charCode <= 0x200F)\n        || charCode === 0x061C) {\n        // Unicode Directional Formatting Characters\n        // LRE\tU+202A\tLEFT-TO-RIGHT EMBEDDING\n        // RLE\tU+202B\tRIGHT-TO-LEFT EMBEDDING\n        // PDF\tU+202C\tPOP DIRECTIONAL FORMATTING\n        // LRO\tU+202D\tLEFT-TO-RIGHT OVERRIDE\n        // RLO\tU+202E\tRIGHT-TO-LEFT OVERRIDE\n        // LRI\tU+2066\tLEFT-TO-RIGHT ISOLATE\n        // RLI\tU+2067\tRIGHT-TO-LEFT ISOLATE\n        // FSI\tU+2068\tFIRST STRONG ISOLATE\n        // PDI\tU+2069\tPOP DIRECTIONAL ISOLATE\n        // LRM\tU+200E\tLEFT-TO-RIGHT MARK\n        // RLM\tU+200F\tRIGHT-TO-LEFT MARK\n        // ALM\tU+061C\tARABIC LETTER MARK\n        return true;\n    }\n    return false;\n}\nfunction extractControlCharacters(lineContent, tokens) {\n    const result = [];\n    let lastLinePart = new LinePart(0, '', 0, false);\n    let charOffset = 0;\n    for (const token of tokens) {\n        const tokenEndIndex = token.endIndex;\n        for (; charOffset < tokenEndIndex; charOffset++) {\n            const charCode = lineContent.charCodeAt(charOffset);\n            if (isControlCharacter(charCode)) {\n                if (charOffset > lastLinePart.endIndex) {\n                    // emit previous part if it has text\n                    lastLinePart = new LinePart(charOffset, token.type, token.metadata, token.containsRTL);\n                    result.push(lastLinePart);\n                }\n                lastLinePart = new LinePart(charOffset + 1, 'mtkcontrol', token.metadata, false);\n                result.push(lastLinePart);\n            }\n        }\n        if (charOffset > lastLinePart.endIndex) {\n            // emit previous part if it has text\n            lastLinePart = new LinePart(tokenEndIndex, token.type, token.metadata, token.containsRTL);\n            result.push(lastLinePart);\n        }\n    }\n    return result;\n}\n/**\n * Whitespace is rendered by \"replacing\" tokens with a special-purpose `mtkw` type that is later recognized in the rendering phase.\n * Moreover, a token is created for every visual indent because on some fonts the glyphs used for rendering whitespace (&rarr; or &middot;) do not have the same width as &nbsp;.\n * The rendering phase will generate `style=\"width:...\"` for these tokens.\n */\nfunction _applyRenderWhitespace(input, lineContent, len, tokens) {\n    const continuesWithWrappedLine = input.continuesWithWrappedLine;\n    const fauxIndentLength = input.fauxIndentLength;\n    const tabSize = input.tabSize;\n    const startVisibleColumn = input.startVisibleColumn;\n    const useMonospaceOptimizations = input.useMonospaceOptimizations;\n    const selections = input.selectionsOnLine;\n    const onlyBoundary = (input.renderWhitespace === 1 /* RenderWhitespace.Boundary */);\n    const onlyTrailing = (input.renderWhitespace === 3 /* RenderWhitespace.Trailing */);\n    const generateLinePartForEachWhitespace = (input.renderSpaceWidth !== input.spaceWidth);\n    const result = [];\n    let resultLen = 0;\n    let tokenIndex = 0;\n    let tokenType = tokens[tokenIndex].type;\n    let tokenContainsRTL = tokens[tokenIndex].containsRTL;\n    let tokenEndIndex = tokens[tokenIndex].endIndex;\n    const tokensLength = tokens.length;\n    let lineIsEmptyOrWhitespace = false;\n    let firstNonWhitespaceIndex = strings.firstNonWhitespaceIndex(lineContent);\n    let lastNonWhitespaceIndex;\n    if (firstNonWhitespaceIndex === -1) {\n        lineIsEmptyOrWhitespace = true;\n        firstNonWhitespaceIndex = len;\n        lastNonWhitespaceIndex = len;\n    }\n    else {\n        lastNonWhitespaceIndex = strings.lastNonWhitespaceIndex(lineContent);\n    }\n    let wasInWhitespace = false;\n    let currentSelectionIndex = 0;\n    let currentSelection = selections && selections[currentSelectionIndex];\n    let tmpIndent = startVisibleColumn % tabSize;\n    for (let charIndex = fauxIndentLength; charIndex < len; charIndex++) {\n        const chCode = lineContent.charCodeAt(charIndex);\n        if (currentSelection && charIndex >= currentSelection.endOffset) {\n            currentSelectionIndex++;\n            currentSelection = selections && selections[currentSelectionIndex];\n        }\n        let isInWhitespace;\n        if (charIndex < firstNonWhitespaceIndex || charIndex > lastNonWhitespaceIndex) {\n            // in leading or trailing whitespace\n            isInWhitespace = true;\n        }\n        else if (chCode === 9 /* CharCode.Tab */) {\n            // a tab character is rendered both in all and boundary cases\n            isInWhitespace = true;\n        }\n        else if (chCode === 32 /* CharCode.Space */) {\n            // hit a space character\n            if (onlyBoundary) {\n                // rendering only boundary whitespace\n                if (wasInWhitespace) {\n                    isInWhitespace = true;\n                }\n                else {\n                    const nextChCode = (charIndex + 1 < len ? lineContent.charCodeAt(charIndex + 1) : 0 /* CharCode.Null */);\n                    isInWhitespace = (nextChCode === 32 /* CharCode.Space */ || nextChCode === 9 /* CharCode.Tab */);\n                }\n            }\n            else {\n                isInWhitespace = true;\n            }\n        }\n        else {\n            isInWhitespace = false;\n        }\n        // If rendering whitespace on selection, check that the charIndex falls within a selection\n        if (isInWhitespace && selections) {\n            isInWhitespace = !!currentSelection && currentSelection.startOffset <= charIndex && currentSelection.endOffset > charIndex;\n        }\n        // If rendering only trailing whitespace, check that the charIndex points to trailing whitespace.\n        if (isInWhitespace && onlyTrailing) {\n            isInWhitespace = lineIsEmptyOrWhitespace || charIndex > lastNonWhitespaceIndex;\n        }\n        if (isInWhitespace && tokenContainsRTL) {\n            // If the token contains RTL text, breaking it up into multiple line parts\n            // to render whitespace might affect the browser's bidi layout.\n            //\n            // We render whitespace in such tokens only if the whitespace\n            // is the leading or the trailing whitespace of the line,\n            // which doesn't affect the browser's bidi layout.\n            if (charIndex >= firstNonWhitespaceIndex && charIndex <= lastNonWhitespaceIndex) {\n                isInWhitespace = false;\n            }\n        }\n        if (wasInWhitespace) {\n            // was in whitespace token\n            if (!isInWhitespace || (!useMonospaceOptimizations && tmpIndent >= tabSize)) {\n                // leaving whitespace token or entering a new indent\n                if (generateLinePartForEachWhitespace) {\n                    const lastEndIndex = (resultLen > 0 ? result[resultLen - 1].endIndex : fauxIndentLength);\n                    for (let i = lastEndIndex + 1; i <= charIndex; i++) {\n                        result[resultLen++] = new LinePart(i, 'mtkw', 1 /* LinePartMetadata.IS_WHITESPACE */, false);\n                    }\n                }\n                else {\n                    result[resultLen++] = new LinePart(charIndex, 'mtkw', 1 /* LinePartMetadata.IS_WHITESPACE */, false);\n                }\n                tmpIndent = tmpIndent % tabSize;\n            }\n        }\n        else {\n            // was in regular token\n            if (charIndex === tokenEndIndex || (isInWhitespace && charIndex > fauxIndentLength)) {\n                result[resultLen++] = new LinePart(charIndex, tokenType, 0, tokenContainsRTL);\n                tmpIndent = tmpIndent % tabSize;\n            }\n        }\n        if (chCode === 9 /* CharCode.Tab */) {\n            tmpIndent = tabSize;\n        }\n        else if (strings.isFullWidthCharacter(chCode)) {\n            tmpIndent += 2;\n        }\n        else {\n            tmpIndent++;\n        }\n        wasInWhitespace = isInWhitespace;\n        while (charIndex === tokenEndIndex) {\n            tokenIndex++;\n            if (tokenIndex < tokensLength) {\n                tokenType = tokens[tokenIndex].type;\n                tokenContainsRTL = tokens[tokenIndex].containsRTL;\n                tokenEndIndex = tokens[tokenIndex].endIndex;\n            }\n            else {\n                break;\n            }\n        }\n    }\n    let generateWhitespace = false;\n    if (wasInWhitespace) {\n        // was in whitespace token\n        if (continuesWithWrappedLine && onlyBoundary) {\n            const lastCharCode = (len > 0 ? lineContent.charCodeAt(len - 1) : 0 /* CharCode.Null */);\n            const prevCharCode = (len > 1 ? lineContent.charCodeAt(len - 2) : 0 /* CharCode.Null */);\n            const isSingleTrailingSpace = (lastCharCode === 32 /* CharCode.Space */ && (prevCharCode !== 32 /* CharCode.Space */ && prevCharCode !== 9 /* CharCode.Tab */));\n            if (!isSingleTrailingSpace) {\n                generateWhitespace = true;\n            }\n        }\n        else {\n            generateWhitespace = true;\n        }\n    }\n    if (generateWhitespace) {\n        if (generateLinePartForEachWhitespace) {\n            const lastEndIndex = (resultLen > 0 ? result[resultLen - 1].endIndex : fauxIndentLength);\n            for (let i = lastEndIndex + 1; i <= len; i++) {\n                result[resultLen++] = new LinePart(i, 'mtkw', 1 /* LinePartMetadata.IS_WHITESPACE */, false);\n            }\n        }\n        else {\n            result[resultLen++] = new LinePart(len, 'mtkw', 1 /* LinePartMetadata.IS_WHITESPACE */, false);\n        }\n    }\n    else {\n        result[resultLen++] = new LinePart(len, tokenType, 0, tokenContainsRTL);\n    }\n    return result;\n}\n/**\n * Inline decorations are \"merged\" on top of tokens.\n * Special care must be taken when multiple inline decorations are at play and they overlap.\n */\nfunction _applyInlineDecorations(lineContent, len, tokens, _lineDecorations) {\n    _lineDecorations.sort(LineDecoration.compare);\n    const lineDecorations = LineDecorationsNormalizer.normalize(lineContent, _lineDecorations);\n    const lineDecorationsLen = lineDecorations.length;\n    let lineDecorationIndex = 0;\n    const result = [];\n    let resultLen = 0;\n    let lastResultEndIndex = 0;\n    for (let tokenIndex = 0, len = tokens.length; tokenIndex < len; tokenIndex++) {\n        const token = tokens[tokenIndex];\n        const tokenEndIndex = token.endIndex;\n        const tokenType = token.type;\n        const tokenMetadata = token.metadata;\n        const tokenContainsRTL = token.containsRTL;\n        while (lineDecorationIndex < lineDecorationsLen && lineDecorations[lineDecorationIndex].startOffset < tokenEndIndex) {\n            const lineDecoration = lineDecorations[lineDecorationIndex];\n            if (lineDecoration.startOffset > lastResultEndIndex) {\n                lastResultEndIndex = lineDecoration.startOffset;\n                result[resultLen++] = new LinePart(lastResultEndIndex, tokenType, tokenMetadata, tokenContainsRTL);\n            }\n            if (lineDecoration.endOffset + 1 <= tokenEndIndex) {\n                // This line decoration ends before this token ends\n                lastResultEndIndex = lineDecoration.endOffset + 1;\n                result[resultLen++] = new LinePart(lastResultEndIndex, tokenType + ' ' + lineDecoration.className, tokenMetadata | lineDecoration.metadata, tokenContainsRTL);\n                lineDecorationIndex++;\n            }\n            else {\n                // This line decoration continues on to the next token\n                lastResultEndIndex = tokenEndIndex;\n                result[resultLen++] = new LinePart(lastResultEndIndex, tokenType + ' ' + lineDecoration.className, tokenMetadata | lineDecoration.metadata, tokenContainsRTL);\n                break;\n            }\n        }\n        if (tokenEndIndex > lastResultEndIndex) {\n            lastResultEndIndex = tokenEndIndex;\n            result[resultLen++] = new LinePart(lastResultEndIndex, tokenType, tokenMetadata, tokenContainsRTL);\n        }\n    }\n    const lastTokenEndIndex = tokens[tokens.length - 1].endIndex;\n    if (lineDecorationIndex < lineDecorationsLen && lineDecorations[lineDecorationIndex].startOffset === lastTokenEndIndex) {\n        while (lineDecorationIndex < lineDecorationsLen && lineDecorations[lineDecorationIndex].startOffset === lastTokenEndIndex) {\n            const lineDecoration = lineDecorations[lineDecorationIndex];\n            result[resultLen++] = new LinePart(lastResultEndIndex, lineDecoration.className, lineDecoration.metadata, false);\n            lineDecorationIndex++;\n        }\n    }\n    return result;\n}\n/**\n * This function is on purpose not split up into multiple functions to allow runtime type inference (i.e. performance reasons).\n * Notice how all the needed data is fully resolved and passed in (i.e. no other calls).\n */\nfunction _renderLine(input, sb) {\n    const fontIsMonospace = input.fontIsMonospace;\n    const canUseHalfwidthRightwardsArrow = input.canUseHalfwidthRightwardsArrow;\n    const containsForeignElements = input.containsForeignElements;\n    const lineContent = input.lineContent;\n    const len = input.len;\n    const isOverflowing = input.isOverflowing;\n    const overflowingCharCount = input.overflowingCharCount;\n    const parts = input.parts;\n    const fauxIndentLength = input.fauxIndentLength;\n    const tabSize = input.tabSize;\n    const startVisibleColumn = input.startVisibleColumn;\n    const containsRTL = input.containsRTL;\n    const spaceWidth = input.spaceWidth;\n    const renderSpaceCharCode = input.renderSpaceCharCode;\n    const renderWhitespace = input.renderWhitespace;\n    const renderControlCharacters = input.renderControlCharacters;\n    const characterMapping = new CharacterMapping(len + 1, parts.length);\n    let lastCharacterMappingDefined = false;\n    let charIndex = 0;\n    let visibleColumn = startVisibleColumn;\n    let charOffsetInPart = 0; // the character offset in the current part\n    let charHorizontalOffset = 0; // the character horizontal position in terms of chars relative to line start\n    let partDisplacement = 0;\n    if (containsRTL) {\n        sb.appendString('<span dir=\"ltr\">');\n    }\n    else {\n        sb.appendString('<span>');\n    }\n    for (let partIndex = 0, tokensLen = parts.length; partIndex < tokensLen; partIndex++) {\n        const part = parts[partIndex];\n        const partEndIndex = part.endIndex;\n        const partType = part.type;\n        const partContainsRTL = part.containsRTL;\n        const partRendersWhitespace = (renderWhitespace !== 0 /* RenderWhitespace.None */ && part.isWhitespace());\n        const partRendersWhitespaceWithWidth = partRendersWhitespace && !fontIsMonospace && (partType === 'mtkw' /*only whitespace*/ || !containsForeignElements);\n        const partIsEmptyAndHasPseudoAfter = (charIndex === partEndIndex && part.isPseudoAfter());\n        charOffsetInPart = 0;\n        sb.appendString('<span ');\n        if (partContainsRTL) {\n            sb.appendString('style=\"unicode-bidi:isolate\" ');\n        }\n        sb.appendString('class=\"');\n        sb.appendString(partRendersWhitespaceWithWidth ? 'mtkz' : partType);\n        sb.appendASCIICharCode(34 /* CharCode.DoubleQuote */);\n        if (partRendersWhitespace) {\n            let partWidth = 0;\n            {\n                let _charIndex = charIndex;\n                let _visibleColumn = visibleColumn;\n                for (; _charIndex < partEndIndex; _charIndex++) {\n                    const charCode = lineContent.charCodeAt(_charIndex);\n                    const charWidth = (charCode === 9 /* CharCode.Tab */ ? (tabSize - (_visibleColumn % tabSize)) : 1) | 0;\n                    partWidth += charWidth;\n                    if (_charIndex >= fauxIndentLength) {\n                        _visibleColumn += charWidth;\n                    }\n                }\n            }\n            if (partRendersWhitespaceWithWidth) {\n                sb.appendString(' style=\"width:');\n                sb.appendString(String(spaceWidth * partWidth));\n                sb.appendString('px\"');\n            }\n            sb.appendASCIICharCode(62 /* CharCode.GreaterThan */);\n            for (; charIndex < partEndIndex; charIndex++) {\n                characterMapping.setColumnInfo(charIndex + 1, partIndex - partDisplacement, charOffsetInPart, charHorizontalOffset);\n                partDisplacement = 0;\n                const charCode = lineContent.charCodeAt(charIndex);\n                let producedCharacters;\n                let charWidth;\n                if (charCode === 9 /* CharCode.Tab */) {\n                    producedCharacters = (tabSize - (visibleColumn % tabSize)) | 0;\n                    charWidth = producedCharacters;\n                    if (!canUseHalfwidthRightwardsArrow || charWidth > 1) {\n                        sb.appendCharCode(0x2192); // RIGHTWARDS ARROW\n                    }\n                    else {\n                        sb.appendCharCode(0xFFEB); // HALFWIDTH RIGHTWARDS ARROW\n                    }\n                    for (let space = 2; space <= charWidth; space++) {\n                        sb.appendCharCode(0xA0); // &nbsp;\n                    }\n                }\n                else { // must be CharCode.Space\n                    producedCharacters = 2;\n                    charWidth = 1;\n                    sb.appendCharCode(renderSpaceCharCode); // &middot; or word separator middle dot\n                    sb.appendCharCode(0x200C); // ZERO WIDTH NON-JOINER\n                }\n                charOffsetInPart += producedCharacters;\n                charHorizontalOffset += charWidth;\n                if (charIndex >= fauxIndentLength) {\n                    visibleColumn += charWidth;\n                }\n            }\n        }\n        else {\n            sb.appendASCIICharCode(62 /* CharCode.GreaterThan */);\n            for (; charIndex < partEndIndex; charIndex++) {\n                characterMapping.setColumnInfo(charIndex + 1, partIndex - partDisplacement, charOffsetInPart, charHorizontalOffset);\n                partDisplacement = 0;\n                const charCode = lineContent.charCodeAt(charIndex);\n                let producedCharacters = 1;\n                let charWidth = 1;\n                switch (charCode) {\n                    case 9 /* CharCode.Tab */:\n                        producedCharacters = (tabSize - (visibleColumn % tabSize));\n                        charWidth = producedCharacters;\n                        for (let space = 1; space <= producedCharacters; space++) {\n                            sb.appendCharCode(0xA0); // &nbsp;\n                        }\n                        break;\n                    case 32 /* CharCode.Space */:\n                        sb.appendCharCode(0xA0); // &nbsp;\n                        break;\n                    case 60 /* CharCode.LessThan */:\n                        sb.appendString('&lt;');\n                        break;\n                    case 62 /* CharCode.GreaterThan */:\n                        sb.appendString('&gt;');\n                        break;\n                    case 38 /* CharCode.Ampersand */:\n                        sb.appendString('&amp;');\n                        break;\n                    case 0 /* CharCode.Null */:\n                        if (renderControlCharacters) {\n                            // See https://unicode-table.com/en/blocks/control-pictures/\n                            sb.appendCharCode(9216);\n                        }\n                        else {\n                            sb.appendString('&#00;');\n                        }\n                        break;\n                    case 65279 /* CharCode.UTF8_BOM */:\n                    case 8232 /* CharCode.LINE_SEPARATOR */:\n                    case 8233 /* CharCode.PARAGRAPH_SEPARATOR */:\n                    case 133 /* CharCode.NEXT_LINE */:\n                        sb.appendCharCode(0xFFFD);\n                        break;\n                    default:\n                        if (strings.isFullWidthCharacter(charCode)) {\n                            charWidth++;\n                        }\n                        // See https://unicode-table.com/en/blocks/control-pictures/\n                        if (renderControlCharacters && charCode < 32) {\n                            sb.appendCharCode(9216 + charCode);\n                        }\n                        else if (renderControlCharacters && charCode === 127) {\n                            // DEL\n                            sb.appendCharCode(9249);\n                        }\n                        else if (renderControlCharacters && isControlCharacter(charCode)) {\n                            sb.appendString('[U+');\n                            sb.appendString(to4CharHex(charCode));\n                            sb.appendString(']');\n                            producedCharacters = 8;\n                            charWidth = producedCharacters;\n                        }\n                        else {\n                            sb.appendCharCode(charCode);\n                        }\n                }\n                charOffsetInPart += producedCharacters;\n                charHorizontalOffset += charWidth;\n                if (charIndex >= fauxIndentLength) {\n                    visibleColumn += charWidth;\n                }\n            }\n        }\n        if (partIsEmptyAndHasPseudoAfter) {\n            partDisplacement++;\n        }\n        else {\n            partDisplacement = 0;\n        }\n        if (charIndex >= len && !lastCharacterMappingDefined && part.isPseudoAfter()) {\n            lastCharacterMappingDefined = true;\n            characterMapping.setColumnInfo(charIndex + 1, partIndex, charOffsetInPart, charHorizontalOffset);\n        }\n        sb.appendString('</span>');\n    }\n    if (!lastCharacterMappingDefined) {\n        // When getting client rects for the last character, we will position the\n        // text range at the end of the span, insteaf of at the beginning of next span\n        characterMapping.setColumnInfo(len + 1, parts.length - 1, charOffsetInPart, charHorizontalOffset);\n    }\n    if (isOverflowing) {\n        sb.appendString('<span class=\"mtkoverflow\">');\n        sb.appendString(nls.localize('showMore', \"Show more ({0})\", renderOverflowingCharCount(overflowingCharCount)));\n        sb.appendString('</span>');\n    }\n    sb.appendString('</span>');\n    return new RenderLineOutput(characterMapping, containsRTL, containsForeignElements);\n}\nfunction to4CharHex(n) {\n    return n.toString(16).toUpperCase().padStart(4, '0');\n}\nfunction renderOverflowingCharCount(n) {\n    if (n < 1024) {\n        return nls.localize('overflow.chars', \"{0} chars\", n);\n    }\n    if (n < 1024 * 1024) {\n        return `${(n / 1024).toFixed(1)} KB`;\n    }\n    return `${(n / 1024 / 1024).toFixed(1)} MB`;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/viewLayout/viewLinesViewportData.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Range } from '../core/range.js';\n/**\n * Contains all data needed to render at a specific viewport.\n */\nexport class ViewportData {\n    constructor(selections, partialData, whitespaceViewportData, model) {\n        this.selections = selections;\n        this.startLineNumber = partialData.startLineNumber | 0;\n        this.endLineNumber = partialData.endLineNumber | 0;\n        this.relativeVerticalOffset = partialData.relativeVerticalOffset;\n        this.bigNumbersDelta = partialData.bigNumbersDelta | 0;\n        this.lineHeight = partialData.lineHeight | 0;\n        this.whitespaceViewportData = whitespaceViewportData;\n        this._model = model;\n        this.visibleRange = new Range(partialData.startLineNumber, this._model.getLineMinColumn(partialData.startLineNumber), partialData.endLineNumber, this._model.getLineMaxColumn(partialData.endLineNumber));\n    }\n    getViewLineRenderingData(lineNumber) {\n        return this._model.getViewportViewLineRenderingData(this.visibleRange, lineNumber);\n    }\n    getDecorationsInViewport() {\n        return this._model.getDecorationsInViewport(this.visibleRange);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/viewModel/glyphLanesModel.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { GlyphMarginLane } from '../model.js';\nconst MAX_LANE = GlyphMarginLane.Right;\nexport class GlyphMarginLanesModel {\n    constructor(maxLine) {\n        this.persist = 0;\n        this._requiredLanes = 1; // always render at least one lane\n        this.lanes = new Uint8Array(Math.ceil(((maxLine + 1) * MAX_LANE) / 8));\n    }\n    reset(maxLine) {\n        const bytes = Math.ceil(((maxLine + 1) * MAX_LANE) / 8);\n        if (this.lanes.length < bytes) {\n            this.lanes = new Uint8Array(bytes);\n        }\n        else {\n            this.lanes.fill(0);\n        }\n        this._requiredLanes = 1;\n    }\n    get requiredLanes() {\n        return this._requiredLanes;\n    }\n    push(lane, range, persist) {\n        if (persist) {\n            this.persist |= (1 << (lane - 1));\n        }\n        for (let i = range.startLineNumber; i <= range.endLineNumber; i++) {\n            const bit = (MAX_LANE * i) + (lane - 1);\n            this.lanes[bit >>> 3] |= (1 << (bit % 8));\n            this._requiredLanes = Math.max(this._requiredLanes, this.countAtLine(i));\n        }\n    }\n    getLanesAtLine(lineNumber) {\n        const lanes = [];\n        let bit = MAX_LANE * lineNumber;\n        for (let i = 0; i < MAX_LANE; i++) {\n            if (this.persist & (1 << i) || this.lanes[bit >>> 3] & (1 << (bit % 8))) {\n                lanes.push(i + 1);\n            }\n            bit++;\n        }\n        return lanes.length ? lanes : [GlyphMarginLane.Center];\n    }\n    countAtLine(lineNumber) {\n        let bit = MAX_LANE * lineNumber;\n        let count = 0;\n        for (let i = 0; i < MAX_LANE; i++) {\n            if (this.persist & (1 << i) || this.lanes[bit >>> 3] & (1 << (bit % 8))) {\n                count++;\n            }\n            bit++;\n        }\n        return count;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/viewModel/minimapTokensColorTracker.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../../base/common/event.js';\nimport { Disposable, markAsSingleton } from '../../../base/common/lifecycle.js';\nimport { RGBA8 } from '../core/rgba.js';\nimport { TokenizationRegistry } from '../languages.js';\nexport class MinimapTokensColorTracker extends Disposable {\n    static getInstance() {\n        if (!this._INSTANCE) {\n            this._INSTANCE = markAsSingleton(new MinimapTokensColorTracker());\n        }\n        return this._INSTANCE;\n    }\n    constructor() {\n        super();\n        this._onDidChange = new Emitter();\n        this.onDidChange = this._onDidChange.event;\n        this._updateColorMap();\n        this._register(TokenizationRegistry.onDidChange(e => {\n            if (e.changedColorMap) {\n                this._updateColorMap();\n            }\n        }));\n    }\n    _updateColorMap() {\n        const colorMap = TokenizationRegistry.getColorMap();\n        if (!colorMap) {\n            this._colors = [RGBA8.Empty];\n            this._backgroundIsLight = true;\n            return;\n        }\n        this._colors = [RGBA8.Empty];\n        for (let colorId = 1; colorId < colorMap.length; colorId++) {\n            const source = colorMap[colorId].rgba;\n            // Use a VM friendly data-type\n            this._colors[colorId] = new RGBA8(source.r, source.g, source.b, Math.round(source.a * 255));\n        }\n        const backgroundLuminosity = colorMap[2 /* ColorId.DefaultBackground */].getRelativeLuminance();\n        this._backgroundIsLight = backgroundLuminosity >= 0.5;\n        this._onDidChange.fire(undefined);\n    }\n    getColor(colorId) {\n        if (colorId < 1 || colorId >= this._colors.length) {\n            // background color (basically invisible)\n            colorId = 2 /* ColorId.DefaultBackground */;\n        }\n        return this._colors[colorId];\n    }\n    backgroundIsLight() {\n        return this._backgroundIsLight;\n    }\n}\nMinimapTokensColorTracker._INSTANCE = null;\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/viewModel/modelLineProjection.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { LineTokens } from '../tokens/lineTokens.js';\nimport { Position } from '../core/position.js';\nimport { LineInjectedText } from '../textModelEvents.js';\nimport { SingleLineInlineDecoration, ViewLineData } from '../viewModel.js';\nexport function createModelLineProjection(lineBreakData, isVisible) {\n    if (lineBreakData === null) {\n        // No mapping needed\n        if (isVisible) {\n            return IdentityModelLineProjection.INSTANCE;\n        }\n        return HiddenModelLineProjection.INSTANCE;\n    }\n    else {\n        return new ModelLineProjection(lineBreakData, isVisible);\n    }\n}\n/**\n * This projection is used to\n * * wrap model lines\n * * inject text\n */\nclass ModelLineProjection {\n    constructor(lineBreakData, isVisible) {\n        this._projectionData = lineBreakData;\n        this._isVisible = isVisible;\n    }\n    isVisible() {\n        return this._isVisible;\n    }\n    setVisible(isVisible) {\n        this._isVisible = isVisible;\n        return this;\n    }\n    getProjectionData() {\n        return this._projectionData;\n    }\n    getViewLineCount() {\n        if (!this._isVisible) {\n            return 0;\n        }\n        return this._projectionData.getOutputLineCount();\n    }\n    getViewLineContent(model, modelLineNumber, outputLineIndex) {\n        this._assertVisible();\n        const startOffsetInInputWithInjections = outputLineIndex > 0 ? this._projectionData.breakOffsets[outputLineIndex - 1] : 0;\n        const endOffsetInInputWithInjections = this._projectionData.breakOffsets[outputLineIndex];\n        let r;\n        if (this._projectionData.injectionOffsets !== null) {\n            const injectedTexts = this._projectionData.injectionOffsets.map((offset, idx) => new LineInjectedText(0, 0, offset + 1, this._projectionData.injectionOptions[idx], 0));\n            const lineWithInjections = LineInjectedText.applyInjectedText(model.getLineContent(modelLineNumber), injectedTexts);\n            r = lineWithInjections.substring(startOffsetInInputWithInjections, endOffsetInInputWithInjections);\n        }\n        else {\n            r = model.getValueInRange({\n                startLineNumber: modelLineNumber,\n                startColumn: startOffsetInInputWithInjections + 1,\n                endLineNumber: modelLineNumber,\n                endColumn: endOffsetInInputWithInjections + 1\n            });\n        }\n        if (outputLineIndex > 0) {\n            r = spaces(this._projectionData.wrappedTextIndentLength) + r;\n        }\n        return r;\n    }\n    getViewLineLength(model, modelLineNumber, outputLineIndex) {\n        this._assertVisible();\n        return this._projectionData.getLineLength(outputLineIndex);\n    }\n    getViewLineMinColumn(_model, _modelLineNumber, outputLineIndex) {\n        this._assertVisible();\n        return this._projectionData.getMinOutputOffset(outputLineIndex) + 1;\n    }\n    getViewLineMaxColumn(model, modelLineNumber, outputLineIndex) {\n        this._assertVisible();\n        return this._projectionData.getMaxOutputOffset(outputLineIndex) + 1;\n    }\n    /**\n     * Try using {@link getViewLinesData} instead.\n    */\n    getViewLineData(model, modelLineNumber, outputLineIndex) {\n        const arr = new Array();\n        this.getViewLinesData(model, modelLineNumber, outputLineIndex, 1, 0, [true], arr);\n        return arr[0];\n    }\n    getViewLinesData(model, modelLineNumber, outputLineIdx, lineCount, globalStartIndex, needed, result) {\n        this._assertVisible();\n        const lineBreakData = this._projectionData;\n        const injectionOffsets = lineBreakData.injectionOffsets;\n        const injectionOptions = lineBreakData.injectionOptions;\n        let inlineDecorationsPerOutputLine = null;\n        if (injectionOffsets) {\n            inlineDecorationsPerOutputLine = [];\n            let totalInjectedTextLengthBefore = 0;\n            let currentInjectedOffset = 0;\n            for (let outputLineIndex = 0; outputLineIndex < lineBreakData.getOutputLineCount(); outputLineIndex++) {\n                const inlineDecorations = new Array();\n                inlineDecorationsPerOutputLine[outputLineIndex] = inlineDecorations;\n                const lineStartOffsetInInputWithInjections = outputLineIndex > 0 ? lineBreakData.breakOffsets[outputLineIndex - 1] : 0;\n                const lineEndOffsetInInputWithInjections = lineBreakData.breakOffsets[outputLineIndex];\n                while (currentInjectedOffset < injectionOffsets.length) {\n                    const length = injectionOptions[currentInjectedOffset].content.length;\n                    const injectedTextStartOffsetInInputWithInjections = injectionOffsets[currentInjectedOffset] + totalInjectedTextLengthBefore;\n                    const injectedTextEndOffsetInInputWithInjections = injectedTextStartOffsetInInputWithInjections + length;\n                    if (injectedTextStartOffsetInInputWithInjections > lineEndOffsetInInputWithInjections) {\n                        // Injected text only starts in later wrapped lines.\n                        break;\n                    }\n                    if (lineStartOffsetInInputWithInjections < injectedTextEndOffsetInInputWithInjections) {\n                        // Injected text ends after or in this line (but also starts in or before this line).\n                        const options = injectionOptions[currentInjectedOffset];\n                        if (options.inlineClassName) {\n                            const offset = (outputLineIndex > 0 ? lineBreakData.wrappedTextIndentLength : 0);\n                            const start = offset + Math.max(injectedTextStartOffsetInInputWithInjections - lineStartOffsetInInputWithInjections, 0);\n                            const end = offset + Math.min(injectedTextEndOffsetInInputWithInjections - lineStartOffsetInInputWithInjections, lineEndOffsetInInputWithInjections - lineStartOffsetInInputWithInjections);\n                            if (start !== end) {\n                                inlineDecorations.push(new SingleLineInlineDecoration(start, end, options.inlineClassName, options.inlineClassNameAffectsLetterSpacing));\n                            }\n                        }\n                    }\n                    if (injectedTextEndOffsetInInputWithInjections <= lineEndOffsetInInputWithInjections) {\n                        totalInjectedTextLengthBefore += length;\n                        currentInjectedOffset++;\n                    }\n                    else {\n                        // injected text breaks into next line, process it again\n                        break;\n                    }\n                }\n            }\n        }\n        let lineWithInjections;\n        if (injectionOffsets) {\n            lineWithInjections = model.tokenization.getLineTokens(modelLineNumber).withInserted(injectionOffsets.map((offset, idx) => ({\n                offset,\n                text: injectionOptions[idx].content,\n                tokenMetadata: LineTokens.defaultTokenMetadata\n            })));\n        }\n        else {\n            lineWithInjections = model.tokenization.getLineTokens(modelLineNumber);\n        }\n        for (let outputLineIndex = outputLineIdx; outputLineIndex < outputLineIdx + lineCount; outputLineIndex++) {\n            const globalIndex = globalStartIndex + outputLineIndex - outputLineIdx;\n            if (!needed[globalIndex]) {\n                result[globalIndex] = null;\n                continue;\n            }\n            result[globalIndex] = this._getViewLineData(lineWithInjections, inlineDecorationsPerOutputLine ? inlineDecorationsPerOutputLine[outputLineIndex] : null, outputLineIndex);\n        }\n    }\n    _getViewLineData(lineWithInjections, inlineDecorations, outputLineIndex) {\n        this._assertVisible();\n        const lineBreakData = this._projectionData;\n        const deltaStartIndex = (outputLineIndex > 0 ? lineBreakData.wrappedTextIndentLength : 0);\n        const lineStartOffsetInInputWithInjections = outputLineIndex > 0 ? lineBreakData.breakOffsets[outputLineIndex - 1] : 0;\n        const lineEndOffsetInInputWithInjections = lineBreakData.breakOffsets[outputLineIndex];\n        const tokens = lineWithInjections.sliceAndInflate(lineStartOffsetInInputWithInjections, lineEndOffsetInInputWithInjections, deltaStartIndex);\n        let lineContent = tokens.getLineContent();\n        if (outputLineIndex > 0) {\n            lineContent = spaces(lineBreakData.wrappedTextIndentLength) + lineContent;\n        }\n        const minColumn = this._projectionData.getMinOutputOffset(outputLineIndex) + 1;\n        const maxColumn = lineContent.length + 1;\n        const continuesWithWrappedLine = (outputLineIndex + 1 < this.getViewLineCount());\n        const startVisibleColumn = (outputLineIndex === 0 ? 0 : lineBreakData.breakOffsetsVisibleColumn[outputLineIndex - 1]);\n        return new ViewLineData(lineContent, continuesWithWrappedLine, minColumn, maxColumn, startVisibleColumn, tokens, inlineDecorations);\n    }\n    getModelColumnOfViewPosition(outputLineIndex, outputColumn) {\n        this._assertVisible();\n        return this._projectionData.translateToInputOffset(outputLineIndex, outputColumn - 1) + 1;\n    }\n    getViewPositionOfModelPosition(deltaLineNumber, inputColumn, affinity = 2 /* PositionAffinity.None */) {\n        this._assertVisible();\n        const r = this._projectionData.translateToOutputPosition(inputColumn - 1, affinity);\n        return r.toPosition(deltaLineNumber);\n    }\n    getViewLineNumberOfModelPosition(deltaLineNumber, inputColumn) {\n        this._assertVisible();\n        const r = this._projectionData.translateToOutputPosition(inputColumn - 1);\n        return deltaLineNumber + r.outputLineIndex;\n    }\n    normalizePosition(outputLineIndex, outputPosition, affinity) {\n        const baseViewLineNumber = outputPosition.lineNumber - outputLineIndex;\n        const normalizedOutputPosition = this._projectionData.normalizeOutputPosition(outputLineIndex, outputPosition.column - 1, affinity);\n        const result = normalizedOutputPosition.toPosition(baseViewLineNumber);\n        return result;\n    }\n    getInjectedTextAt(outputLineIndex, outputColumn) {\n        return this._projectionData.getInjectedText(outputLineIndex, outputColumn - 1);\n    }\n    _assertVisible() {\n        if (!this._isVisible) {\n            throw new Error('Not supported');\n        }\n    }\n}\n/**\n * This projection does not change the model line.\n*/\nclass IdentityModelLineProjection {\n    constructor() { }\n    isVisible() {\n        return true;\n    }\n    setVisible(isVisible) {\n        if (isVisible) {\n            return this;\n        }\n        return HiddenModelLineProjection.INSTANCE;\n    }\n    getProjectionData() {\n        return null;\n    }\n    getViewLineCount() {\n        return 1;\n    }\n    getViewLineContent(model, modelLineNumber, _outputLineIndex) {\n        return model.getLineContent(modelLineNumber);\n    }\n    getViewLineLength(model, modelLineNumber, _outputLineIndex) {\n        return model.getLineLength(modelLineNumber);\n    }\n    getViewLineMinColumn(model, modelLineNumber, _outputLineIndex) {\n        return model.getLineMinColumn(modelLineNumber);\n    }\n    getViewLineMaxColumn(model, modelLineNumber, _outputLineIndex) {\n        return model.getLineMaxColumn(modelLineNumber);\n    }\n    getViewLineData(model, modelLineNumber, _outputLineIndex) {\n        const lineTokens = model.tokenization.getLineTokens(modelLineNumber);\n        const lineContent = lineTokens.getLineContent();\n        return new ViewLineData(lineContent, false, 1, lineContent.length + 1, 0, lineTokens.inflate(), null);\n    }\n    getViewLinesData(model, modelLineNumber, _fromOuputLineIndex, _toOutputLineIndex, globalStartIndex, needed, result) {\n        if (!needed[globalStartIndex]) {\n            result[globalStartIndex] = null;\n            return;\n        }\n        result[globalStartIndex] = this.getViewLineData(model, modelLineNumber, 0);\n    }\n    getModelColumnOfViewPosition(_outputLineIndex, outputColumn) {\n        return outputColumn;\n    }\n    getViewPositionOfModelPosition(deltaLineNumber, inputColumn) {\n        return new Position(deltaLineNumber, inputColumn);\n    }\n    getViewLineNumberOfModelPosition(deltaLineNumber, _inputColumn) {\n        return deltaLineNumber;\n    }\n    normalizePosition(outputLineIndex, outputPosition, affinity) {\n        return outputPosition;\n    }\n    getInjectedTextAt(_outputLineIndex, _outputColumn) {\n        return null;\n    }\n}\nIdentityModelLineProjection.INSTANCE = new IdentityModelLineProjection();\n/**\n * This projection hides the model line.\n */\nclass HiddenModelLineProjection {\n    constructor() { }\n    isVisible() {\n        return false;\n    }\n    setVisible(isVisible) {\n        if (!isVisible) {\n            return this;\n        }\n        return IdentityModelLineProjection.INSTANCE;\n    }\n    getProjectionData() {\n        return null;\n    }\n    getViewLineCount() {\n        return 0;\n    }\n    getViewLineContent(_model, _modelLineNumber, _outputLineIndex) {\n        throw new Error('Not supported');\n    }\n    getViewLineLength(_model, _modelLineNumber, _outputLineIndex) {\n        throw new Error('Not supported');\n    }\n    getViewLineMinColumn(_model, _modelLineNumber, _outputLineIndex) {\n        throw new Error('Not supported');\n    }\n    getViewLineMaxColumn(_model, _modelLineNumber, _outputLineIndex) {\n        throw new Error('Not supported');\n    }\n    getViewLineData(_model, _modelLineNumber, _outputLineIndex) {\n        throw new Error('Not supported');\n    }\n    getViewLinesData(_model, _modelLineNumber, _fromOuputLineIndex, _toOutputLineIndex, _globalStartIndex, _needed, _result) {\n        throw new Error('Not supported');\n    }\n    getModelColumnOfViewPosition(_outputLineIndex, _outputColumn) {\n        throw new Error('Not supported');\n    }\n    getViewPositionOfModelPosition(_deltaLineNumber, _inputColumn) {\n        throw new Error('Not supported');\n    }\n    getViewLineNumberOfModelPosition(_deltaLineNumber, _inputColumn) {\n        throw new Error('Not supported');\n    }\n    normalizePosition(outputLineIndex, outputPosition, affinity) {\n        throw new Error('Not supported');\n    }\n    getInjectedTextAt(_outputLineIndex, _outputColumn) {\n        throw new Error('Not supported');\n    }\n}\nHiddenModelLineProjection.INSTANCE = new HiddenModelLineProjection();\nconst _spaces = [''];\nfunction spaces(count) {\n    if (count >= _spaces.length) {\n        for (let i = 1; i <= count; i++) {\n            _spaces[i] = _makeSpaces(i);\n        }\n    }\n    return _spaces[count];\n}\nfunction _makeSpaces(count) {\n    return new Array(count + 1).join(' ');\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/viewModel/monospaceLineBreaksComputer.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../base/common/strings.js';\nimport { CharacterClassifier } from '../core/characterClassifier.js';\nimport { LineInjectedText } from '../textModelEvents.js';\nimport { ModelLineProjectionData } from '../modelLineProjectionData.js';\nexport class MonospaceLineBreaksComputerFactory {\n    static create(options) {\n        return new MonospaceLineBreaksComputerFactory(options.get(134 /* EditorOption.wordWrapBreakBeforeCharacters */), options.get(133 /* EditorOption.wordWrapBreakAfterCharacters */));\n    }\n    constructor(breakBeforeChars, breakAfterChars) {\n        this.classifier = new WrappingCharacterClassifier(breakBeforeChars, breakAfterChars);\n    }\n    createLineBreaksComputer(fontInfo, tabSize, wrappingColumn, wrappingIndent, wordBreak) {\n        const requests = [];\n        const injectedTexts = [];\n        const previousBreakingData = [];\n        return {\n            addRequest: (lineText, injectedText, previousLineBreakData) => {\n                requests.push(lineText);\n                injectedTexts.push(injectedText);\n                previousBreakingData.push(previousLineBreakData);\n            },\n            finalize: () => {\n                const columnsForFullWidthChar = fontInfo.typicalFullwidthCharacterWidth / fontInfo.typicalHalfwidthCharacterWidth;\n                const result = [];\n                for (let i = 0, len = requests.length; i < len; i++) {\n                    const injectedText = injectedTexts[i];\n                    const previousLineBreakData = previousBreakingData[i];\n                    if (previousLineBreakData && !previousLineBreakData.injectionOptions && !injectedText) {\n                        result[i] = createLineBreaksFromPreviousLineBreaks(this.classifier, previousLineBreakData, requests[i], tabSize, wrappingColumn, columnsForFullWidthChar, wrappingIndent, wordBreak);\n                    }\n                    else {\n                        result[i] = createLineBreaks(this.classifier, requests[i], injectedText, tabSize, wrappingColumn, columnsForFullWidthChar, wrappingIndent, wordBreak);\n                    }\n                }\n                arrPool1.length = 0;\n                arrPool2.length = 0;\n                return result;\n            }\n        };\n    }\n}\nclass WrappingCharacterClassifier extends CharacterClassifier {\n    constructor(BREAK_BEFORE, BREAK_AFTER) {\n        super(0 /* CharacterClass.NONE */);\n        for (let i = 0; i < BREAK_BEFORE.length; i++) {\n            this.set(BREAK_BEFORE.charCodeAt(i), 1 /* CharacterClass.BREAK_BEFORE */);\n        }\n        for (let i = 0; i < BREAK_AFTER.length; i++) {\n            this.set(BREAK_AFTER.charCodeAt(i), 2 /* CharacterClass.BREAK_AFTER */);\n        }\n    }\n    get(charCode) {\n        if (charCode >= 0 && charCode < 256) {\n            return this._asciiMap[charCode];\n        }\n        else {\n            // Initialize CharacterClass.BREAK_IDEOGRAPHIC for these Unicode ranges:\n            // 1. CJK Unified Ideographs (0x4E00 -- 0x9FFF)\n            // 2. CJK Unified Ideographs Extension A (0x3400 -- 0x4DBF)\n            // 3. Hiragana and Katakana (0x3040 -- 0x30FF)\n            if ((charCode >= 0x3040 && charCode <= 0x30FF)\n                || (charCode >= 0x3400 && charCode <= 0x4DBF)\n                || (charCode >= 0x4E00 && charCode <= 0x9FFF)) {\n                return 3 /* CharacterClass.BREAK_IDEOGRAPHIC */;\n            }\n            return (this._map.get(charCode) || this._defaultValue);\n        }\n    }\n}\nlet arrPool1 = [];\nlet arrPool2 = [];\nfunction createLineBreaksFromPreviousLineBreaks(classifier, previousBreakingData, lineText, tabSize, firstLineBreakColumn, columnsForFullWidthChar, wrappingIndent, wordBreak) {\n    if (firstLineBreakColumn === -1) {\n        return null;\n    }\n    const len = lineText.length;\n    if (len <= 1) {\n        return null;\n    }\n    const isKeepAll = (wordBreak === 'keepAll');\n    const prevBreakingOffsets = previousBreakingData.breakOffsets;\n    const prevBreakingOffsetsVisibleColumn = previousBreakingData.breakOffsetsVisibleColumn;\n    const wrappedTextIndentLength = computeWrappedTextIndentLength(lineText, tabSize, firstLineBreakColumn, columnsForFullWidthChar, wrappingIndent);\n    const wrappedLineBreakColumn = firstLineBreakColumn - wrappedTextIndentLength;\n    const breakingOffsets = arrPool1;\n    const breakingOffsetsVisibleColumn = arrPool2;\n    let breakingOffsetsCount = 0;\n    let lastBreakingOffset = 0;\n    let lastBreakingOffsetVisibleColumn = 0;\n    let breakingColumn = firstLineBreakColumn;\n    const prevLen = prevBreakingOffsets.length;\n    let prevIndex = 0;\n    if (prevIndex >= 0) {\n        let bestDistance = Math.abs(prevBreakingOffsetsVisibleColumn[prevIndex] - breakingColumn);\n        while (prevIndex + 1 < prevLen) {\n            const distance = Math.abs(prevBreakingOffsetsVisibleColumn[prevIndex + 1] - breakingColumn);\n            if (distance >= bestDistance) {\n                break;\n            }\n            bestDistance = distance;\n            prevIndex++;\n        }\n    }\n    while (prevIndex < prevLen) {\n        // Allow for prevIndex to be -1 (for the case where we hit a tab when walking backwards from the first break)\n        let prevBreakOffset = prevIndex < 0 ? 0 : prevBreakingOffsets[prevIndex];\n        let prevBreakOffsetVisibleColumn = prevIndex < 0 ? 0 : prevBreakingOffsetsVisibleColumn[prevIndex];\n        if (lastBreakingOffset > prevBreakOffset) {\n            prevBreakOffset = lastBreakingOffset;\n            prevBreakOffsetVisibleColumn = lastBreakingOffsetVisibleColumn;\n        }\n        let breakOffset = 0;\n        let breakOffsetVisibleColumn = 0;\n        let forcedBreakOffset = 0;\n        let forcedBreakOffsetVisibleColumn = 0;\n        // initially, we search as much as possible to the right (if it fits)\n        if (prevBreakOffsetVisibleColumn <= breakingColumn) {\n            let visibleColumn = prevBreakOffsetVisibleColumn;\n            let prevCharCode = prevBreakOffset === 0 ? 0 /* CharCode.Null */ : lineText.charCodeAt(prevBreakOffset - 1);\n            let prevCharCodeClass = prevBreakOffset === 0 ? 0 /* CharacterClass.NONE */ : classifier.get(prevCharCode);\n            let entireLineFits = true;\n            for (let i = prevBreakOffset; i < len; i++) {\n                const charStartOffset = i;\n                const charCode = lineText.charCodeAt(i);\n                let charCodeClass;\n                let charWidth;\n                if (strings.isHighSurrogate(charCode)) {\n                    // A surrogate pair must always be considered as a single unit, so it is never to be broken\n                    i++;\n                    charCodeClass = 0 /* CharacterClass.NONE */;\n                    charWidth = 2;\n                }\n                else {\n                    charCodeClass = classifier.get(charCode);\n                    charWidth = computeCharWidth(charCode, visibleColumn, tabSize, columnsForFullWidthChar);\n                }\n                if (charStartOffset > lastBreakingOffset && canBreak(prevCharCode, prevCharCodeClass, charCode, charCodeClass, isKeepAll)) {\n                    breakOffset = charStartOffset;\n                    breakOffsetVisibleColumn = visibleColumn;\n                }\n                visibleColumn += charWidth;\n                // check if adding character at `i` will go over the breaking column\n                if (visibleColumn > breakingColumn) {\n                    // We need to break at least before character at `i`:\n                    if (charStartOffset > lastBreakingOffset) {\n                        forcedBreakOffset = charStartOffset;\n                        forcedBreakOffsetVisibleColumn = visibleColumn - charWidth;\n                    }\n                    else {\n                        // we need to advance at least by one character\n                        forcedBreakOffset = i + 1;\n                        forcedBreakOffsetVisibleColumn = visibleColumn;\n                    }\n                    if (visibleColumn - breakOffsetVisibleColumn > wrappedLineBreakColumn) {\n                        // Cannot break at `breakOffset` => reset it if it was set\n                        breakOffset = 0;\n                    }\n                    entireLineFits = false;\n                    break;\n                }\n                prevCharCode = charCode;\n                prevCharCodeClass = charCodeClass;\n            }\n            if (entireLineFits) {\n                // there is no more need to break => stop the outer loop!\n                if (breakingOffsetsCount > 0) {\n                    // Add last segment, no need to assign to `lastBreakingOffset` and `lastBreakingOffsetVisibleColumn`\n                    breakingOffsets[breakingOffsetsCount] = prevBreakingOffsets[prevBreakingOffsets.length - 1];\n                    breakingOffsetsVisibleColumn[breakingOffsetsCount] = prevBreakingOffsetsVisibleColumn[prevBreakingOffsets.length - 1];\n                    breakingOffsetsCount++;\n                }\n                break;\n            }\n        }\n        if (breakOffset === 0) {\n            // must search left\n            let visibleColumn = prevBreakOffsetVisibleColumn;\n            let charCode = lineText.charCodeAt(prevBreakOffset);\n            let charCodeClass = classifier.get(charCode);\n            let hitATabCharacter = false;\n            for (let i = prevBreakOffset - 1; i >= lastBreakingOffset; i--) {\n                const charStartOffset = i + 1;\n                const prevCharCode = lineText.charCodeAt(i);\n                if (prevCharCode === 9 /* CharCode.Tab */) {\n                    // cannot determine the width of a tab when going backwards, so we must go forwards\n                    hitATabCharacter = true;\n                    break;\n                }\n                let prevCharCodeClass;\n                let prevCharWidth;\n                if (strings.isLowSurrogate(prevCharCode)) {\n                    // A surrogate pair must always be considered as a single unit, so it is never to be broken\n                    i--;\n                    prevCharCodeClass = 0 /* CharacterClass.NONE */;\n                    prevCharWidth = 2;\n                }\n                else {\n                    prevCharCodeClass = classifier.get(prevCharCode);\n                    prevCharWidth = (strings.isFullWidthCharacter(prevCharCode) ? columnsForFullWidthChar : 1);\n                }\n                if (visibleColumn <= breakingColumn) {\n                    if (forcedBreakOffset === 0) {\n                        forcedBreakOffset = charStartOffset;\n                        forcedBreakOffsetVisibleColumn = visibleColumn;\n                    }\n                    if (visibleColumn <= breakingColumn - wrappedLineBreakColumn) {\n                        // went too far!\n                        break;\n                    }\n                    if (canBreak(prevCharCode, prevCharCodeClass, charCode, charCodeClass, isKeepAll)) {\n                        breakOffset = charStartOffset;\n                        breakOffsetVisibleColumn = visibleColumn;\n                        break;\n                    }\n                }\n                visibleColumn -= prevCharWidth;\n                charCode = prevCharCode;\n                charCodeClass = prevCharCodeClass;\n            }\n            if (breakOffset !== 0) {\n                const remainingWidthOfNextLine = wrappedLineBreakColumn - (forcedBreakOffsetVisibleColumn - breakOffsetVisibleColumn);\n                if (remainingWidthOfNextLine <= tabSize) {\n                    const charCodeAtForcedBreakOffset = lineText.charCodeAt(forcedBreakOffset);\n                    let charWidth;\n                    if (strings.isHighSurrogate(charCodeAtForcedBreakOffset)) {\n                        // A surrogate pair must always be considered as a single unit, so it is never to be broken\n                        charWidth = 2;\n                    }\n                    else {\n                        charWidth = computeCharWidth(charCodeAtForcedBreakOffset, forcedBreakOffsetVisibleColumn, tabSize, columnsForFullWidthChar);\n                    }\n                    if (remainingWidthOfNextLine - charWidth < 0) {\n                        // it is not worth it to break at breakOffset, it just introduces an extra needless line!\n                        breakOffset = 0;\n                    }\n                }\n            }\n            if (hitATabCharacter) {\n                // cannot determine the width of a tab when going backwards, so we must go forwards from the previous break\n                prevIndex--;\n                continue;\n            }\n        }\n        if (breakOffset === 0) {\n            // Could not find a good breaking point\n            breakOffset = forcedBreakOffset;\n            breakOffsetVisibleColumn = forcedBreakOffsetVisibleColumn;\n        }\n        if (breakOffset <= lastBreakingOffset) {\n            // Make sure that we are advancing (at least one character)\n            const charCode = lineText.charCodeAt(lastBreakingOffset);\n            if (strings.isHighSurrogate(charCode)) {\n                // A surrogate pair must always be considered as a single unit, so it is never to be broken\n                breakOffset = lastBreakingOffset + 2;\n                breakOffsetVisibleColumn = lastBreakingOffsetVisibleColumn + 2;\n            }\n            else {\n                breakOffset = lastBreakingOffset + 1;\n                breakOffsetVisibleColumn = lastBreakingOffsetVisibleColumn + computeCharWidth(charCode, lastBreakingOffsetVisibleColumn, tabSize, columnsForFullWidthChar);\n            }\n        }\n        lastBreakingOffset = breakOffset;\n        breakingOffsets[breakingOffsetsCount] = breakOffset;\n        lastBreakingOffsetVisibleColumn = breakOffsetVisibleColumn;\n        breakingOffsetsVisibleColumn[breakingOffsetsCount] = breakOffsetVisibleColumn;\n        breakingOffsetsCount++;\n        breakingColumn = breakOffsetVisibleColumn + wrappedLineBreakColumn;\n        while (prevIndex < 0 || (prevIndex < prevLen && prevBreakingOffsetsVisibleColumn[prevIndex] < breakOffsetVisibleColumn)) {\n            prevIndex++;\n        }\n        let bestDistance = Math.abs(prevBreakingOffsetsVisibleColumn[prevIndex] - breakingColumn);\n        while (prevIndex + 1 < prevLen) {\n            const distance = Math.abs(prevBreakingOffsetsVisibleColumn[prevIndex + 1] - breakingColumn);\n            if (distance >= bestDistance) {\n                break;\n            }\n            bestDistance = distance;\n            prevIndex++;\n        }\n    }\n    if (breakingOffsetsCount === 0) {\n        return null;\n    }\n    // Doing here some object reuse which ends up helping a huge deal with GC pauses!\n    breakingOffsets.length = breakingOffsetsCount;\n    breakingOffsetsVisibleColumn.length = breakingOffsetsCount;\n    arrPool1 = previousBreakingData.breakOffsets;\n    arrPool2 = previousBreakingData.breakOffsetsVisibleColumn;\n    previousBreakingData.breakOffsets = breakingOffsets;\n    previousBreakingData.breakOffsetsVisibleColumn = breakingOffsetsVisibleColumn;\n    previousBreakingData.wrappedTextIndentLength = wrappedTextIndentLength;\n    return previousBreakingData;\n}\nfunction createLineBreaks(classifier, _lineText, injectedTexts, tabSize, firstLineBreakColumn, columnsForFullWidthChar, wrappingIndent, wordBreak) {\n    const lineText = LineInjectedText.applyInjectedText(_lineText, injectedTexts);\n    let injectionOptions;\n    let injectionOffsets;\n    if (injectedTexts && injectedTexts.length > 0) {\n        injectionOptions = injectedTexts.map(t => t.options);\n        injectionOffsets = injectedTexts.map(text => text.column - 1);\n    }\n    else {\n        injectionOptions = null;\n        injectionOffsets = null;\n    }\n    if (firstLineBreakColumn === -1) {\n        if (!injectionOptions) {\n            return null;\n        }\n        // creating a `LineBreakData` with an invalid `breakOffsetsVisibleColumn` is OK\n        // because `breakOffsetsVisibleColumn` will never be used because it contains injected text\n        return new ModelLineProjectionData(injectionOffsets, injectionOptions, [lineText.length], [], 0);\n    }\n    const len = lineText.length;\n    if (len <= 1) {\n        if (!injectionOptions) {\n            return null;\n        }\n        // creating a `LineBreakData` with an invalid `breakOffsetsVisibleColumn` is OK\n        // because `breakOffsetsVisibleColumn` will never be used because it contains injected text\n        return new ModelLineProjectionData(injectionOffsets, injectionOptions, [lineText.length], [], 0);\n    }\n    const isKeepAll = (wordBreak === 'keepAll');\n    const wrappedTextIndentLength = computeWrappedTextIndentLength(lineText, tabSize, firstLineBreakColumn, columnsForFullWidthChar, wrappingIndent);\n    const wrappedLineBreakColumn = firstLineBreakColumn - wrappedTextIndentLength;\n    const breakingOffsets = [];\n    const breakingOffsetsVisibleColumn = [];\n    let breakingOffsetsCount = 0;\n    let breakOffset = 0;\n    let breakOffsetVisibleColumn = 0;\n    let breakingColumn = firstLineBreakColumn;\n    let prevCharCode = lineText.charCodeAt(0);\n    let prevCharCodeClass = classifier.get(prevCharCode);\n    let visibleColumn = computeCharWidth(prevCharCode, 0, tabSize, columnsForFullWidthChar);\n    let startOffset = 1;\n    if (strings.isHighSurrogate(prevCharCode)) {\n        // A surrogate pair must always be considered as a single unit, so it is never to be broken\n        visibleColumn += 1;\n        prevCharCode = lineText.charCodeAt(1);\n        prevCharCodeClass = classifier.get(prevCharCode);\n        startOffset++;\n    }\n    for (let i = startOffset; i < len; i++) {\n        const charStartOffset = i;\n        const charCode = lineText.charCodeAt(i);\n        let charCodeClass;\n        let charWidth;\n        if (strings.isHighSurrogate(charCode)) {\n            // A surrogate pair must always be considered as a single unit, so it is never to be broken\n            i++;\n            charCodeClass = 0 /* CharacterClass.NONE */;\n            charWidth = 2;\n        }\n        else {\n            charCodeClass = classifier.get(charCode);\n            charWidth = computeCharWidth(charCode, visibleColumn, tabSize, columnsForFullWidthChar);\n        }\n        if (canBreak(prevCharCode, prevCharCodeClass, charCode, charCodeClass, isKeepAll)) {\n            breakOffset = charStartOffset;\n            breakOffsetVisibleColumn = visibleColumn;\n        }\n        visibleColumn += charWidth;\n        // check if adding character at `i` will go over the breaking column\n        if (visibleColumn > breakingColumn) {\n            // We need to break at least before character at `i`:\n            if (breakOffset === 0 || visibleColumn - breakOffsetVisibleColumn > wrappedLineBreakColumn) {\n                // Cannot break at `breakOffset`, must break at `i`\n                breakOffset = charStartOffset;\n                breakOffsetVisibleColumn = visibleColumn - charWidth;\n            }\n            breakingOffsets[breakingOffsetsCount] = breakOffset;\n            breakingOffsetsVisibleColumn[breakingOffsetsCount] = breakOffsetVisibleColumn;\n            breakingOffsetsCount++;\n            breakingColumn = breakOffsetVisibleColumn + wrappedLineBreakColumn;\n            breakOffset = 0;\n        }\n        prevCharCode = charCode;\n        prevCharCodeClass = charCodeClass;\n    }\n    if (breakingOffsetsCount === 0 && (!injectedTexts || injectedTexts.length === 0)) {\n        return null;\n    }\n    // Add last segment\n    breakingOffsets[breakingOffsetsCount] = len;\n    breakingOffsetsVisibleColumn[breakingOffsetsCount] = visibleColumn;\n    return new ModelLineProjectionData(injectionOffsets, injectionOptions, breakingOffsets, breakingOffsetsVisibleColumn, wrappedTextIndentLength);\n}\nfunction computeCharWidth(charCode, visibleColumn, tabSize, columnsForFullWidthChar) {\n    if (charCode === 9 /* CharCode.Tab */) {\n        return (tabSize - (visibleColumn % tabSize));\n    }\n    if (strings.isFullWidthCharacter(charCode)) {\n        return columnsForFullWidthChar;\n    }\n    if (charCode < 32) {\n        // when using `editor.renderControlCharacters`, the substitutions are often wide\n        return columnsForFullWidthChar;\n    }\n    return 1;\n}\nfunction tabCharacterWidth(visibleColumn, tabSize) {\n    return (tabSize - (visibleColumn % tabSize));\n}\n/**\n * Kinsoku Shori : Don't break after a leading character, like an open bracket\n * Kinsoku Shori : Don't break before a trailing character, like a period\n */\nfunction canBreak(prevCharCode, prevCharCodeClass, charCode, charCodeClass, isKeepAll) {\n    return (charCode !== 32 /* CharCode.Space */\n        && ((prevCharCodeClass === 2 /* CharacterClass.BREAK_AFTER */ && charCodeClass !== 2 /* CharacterClass.BREAK_AFTER */) // break at the end of multiple BREAK_AFTER\n            || (prevCharCodeClass !== 1 /* CharacterClass.BREAK_BEFORE */ && charCodeClass === 1 /* CharacterClass.BREAK_BEFORE */) // break at the start of multiple BREAK_BEFORE\n            || (!isKeepAll && prevCharCodeClass === 3 /* CharacterClass.BREAK_IDEOGRAPHIC */ && charCodeClass !== 2 /* CharacterClass.BREAK_AFTER */)\n            || (!isKeepAll && charCodeClass === 3 /* CharacterClass.BREAK_IDEOGRAPHIC */ && prevCharCodeClass !== 1 /* CharacterClass.BREAK_BEFORE */)));\n}\nfunction computeWrappedTextIndentLength(lineText, tabSize, firstLineBreakColumn, columnsForFullWidthChar, wrappingIndent) {\n    let wrappedTextIndentLength = 0;\n    if (wrappingIndent !== 0 /* WrappingIndent.None */) {\n        const firstNonWhitespaceIndex = strings.firstNonWhitespaceIndex(lineText);\n        if (firstNonWhitespaceIndex !== -1) {\n            // Track existing indent\n            for (let i = 0; i < firstNonWhitespaceIndex; i++) {\n                const charWidth = (lineText.charCodeAt(i) === 9 /* CharCode.Tab */ ? tabCharacterWidth(wrappedTextIndentLength, tabSize) : 1);\n                wrappedTextIndentLength += charWidth;\n            }\n            // Increase indent of continuation lines, if desired\n            const numberOfAdditionalTabs = (wrappingIndent === 3 /* WrappingIndent.DeepIndent */ ? 2 : wrappingIndent === 2 /* WrappingIndent.Indent */ ? 1 : 0);\n            for (let i = 0; i < numberOfAdditionalTabs; i++) {\n                const charWidth = tabCharacterWidth(wrappedTextIndentLength, tabSize);\n                wrappedTextIndentLength += charWidth;\n            }\n            // Force sticking to beginning of line if no character would fit except for the indentation\n            if (wrappedTextIndentLength + columnsForFullWidthChar > firstLineBreakColumn) {\n                wrappedTextIndentLength = 0;\n            }\n        }\n    }\n    return wrappedTextIndentLength;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/viewModel/overviewZoneManager.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class ColorZone {\n    constructor(from, to, colorId) {\n        this._colorZoneBrand = undefined;\n        this.from = from | 0;\n        this.to = to | 0;\n        this.colorId = colorId | 0;\n    }\n    static compare(a, b) {\n        if (a.colorId === b.colorId) {\n            if (a.from === b.from) {\n                return a.to - b.to;\n            }\n            return a.from - b.from;\n        }\n        return a.colorId - b.colorId;\n    }\n}\n/**\n * A zone in the overview ruler\n */\nexport class OverviewRulerZone {\n    constructor(startLineNumber, endLineNumber, heightInLines, color) {\n        this._overviewRulerZoneBrand = undefined;\n        this.startLineNumber = startLineNumber;\n        this.endLineNumber = endLineNumber;\n        this.heightInLines = heightInLines;\n        this.color = color;\n        this._colorZone = null;\n    }\n    static compare(a, b) {\n        if (a.color === b.color) {\n            if (a.startLineNumber === b.startLineNumber) {\n                if (a.heightInLines === b.heightInLines) {\n                    return a.endLineNumber - b.endLineNumber;\n                }\n                return a.heightInLines - b.heightInLines;\n            }\n            return a.startLineNumber - b.startLineNumber;\n        }\n        return a.color < b.color ? -1 : 1;\n    }\n    setColorZone(colorZone) {\n        this._colorZone = colorZone;\n    }\n    getColorZones() {\n        return this._colorZone;\n    }\n}\nexport class OverviewZoneManager {\n    constructor(getVerticalOffsetForLine) {\n        this._getVerticalOffsetForLine = getVerticalOffsetForLine;\n        this._zones = [];\n        this._colorZonesInvalid = false;\n        this._lineHeight = 0;\n        this._domWidth = 0;\n        this._domHeight = 0;\n        this._outerHeight = 0;\n        this._pixelRatio = 1;\n        this._lastAssignedId = 0;\n        this._color2Id = Object.create(null);\n        this._id2Color = [];\n    }\n    getId2Color() {\n        return this._id2Color;\n    }\n    setZones(newZones) {\n        this._zones = newZones;\n        this._zones.sort(OverviewRulerZone.compare);\n    }\n    setLineHeight(lineHeight) {\n        if (this._lineHeight === lineHeight) {\n            return false;\n        }\n        this._lineHeight = lineHeight;\n        this._colorZonesInvalid = true;\n        return true;\n    }\n    setPixelRatio(pixelRatio) {\n        this._pixelRatio = pixelRatio;\n        this._colorZonesInvalid = true;\n    }\n    getDOMWidth() {\n        return this._domWidth;\n    }\n    getCanvasWidth() {\n        return this._domWidth * this._pixelRatio;\n    }\n    setDOMWidth(width) {\n        if (this._domWidth === width) {\n            return false;\n        }\n        this._domWidth = width;\n        this._colorZonesInvalid = true;\n        return true;\n    }\n    getDOMHeight() {\n        return this._domHeight;\n    }\n    getCanvasHeight() {\n        return this._domHeight * this._pixelRatio;\n    }\n    setDOMHeight(height) {\n        if (this._domHeight === height) {\n            return false;\n        }\n        this._domHeight = height;\n        this._colorZonesInvalid = true;\n        return true;\n    }\n    getOuterHeight() {\n        return this._outerHeight;\n    }\n    setOuterHeight(outerHeight) {\n        if (this._outerHeight === outerHeight) {\n            return false;\n        }\n        this._outerHeight = outerHeight;\n        this._colorZonesInvalid = true;\n        return true;\n    }\n    resolveColorZones() {\n        const colorZonesInvalid = this._colorZonesInvalid;\n        const lineHeight = Math.floor(this._lineHeight);\n        const totalHeight = Math.floor(this.getCanvasHeight());\n        const outerHeight = Math.floor(this._outerHeight);\n        const heightRatio = totalHeight / outerHeight;\n        const halfMinimumHeight = Math.floor(4 /* Constants.MINIMUM_HEIGHT */ * this._pixelRatio / 2);\n        const allColorZones = [];\n        for (let i = 0, len = this._zones.length; i < len; i++) {\n            const zone = this._zones[i];\n            if (!colorZonesInvalid) {\n                const colorZone = zone.getColorZones();\n                if (colorZone) {\n                    allColorZones.push(colorZone);\n                    continue;\n                }\n            }\n            const offset1 = this._getVerticalOffsetForLine(zone.startLineNumber);\n            const offset2 = (zone.heightInLines === 0\n                ? this._getVerticalOffsetForLine(zone.endLineNumber) + lineHeight\n                : offset1 + zone.heightInLines * lineHeight);\n            const y1 = Math.floor(heightRatio * offset1);\n            const y2 = Math.floor(heightRatio * offset2);\n            let ycenter = Math.floor((y1 + y2) / 2);\n            let halfHeight = (y2 - ycenter);\n            if (halfHeight < halfMinimumHeight) {\n                halfHeight = halfMinimumHeight;\n            }\n            if (ycenter - halfHeight < 0) {\n                ycenter = halfHeight;\n            }\n            if (ycenter + halfHeight > totalHeight) {\n                ycenter = totalHeight - halfHeight;\n            }\n            const color = zone.color;\n            let colorId = this._color2Id[color];\n            if (!colorId) {\n                colorId = (++this._lastAssignedId);\n                this._color2Id[color] = colorId;\n                this._id2Color[colorId] = color;\n            }\n            const colorZone = new ColorZone(ycenter - halfHeight, ycenter + halfHeight, colorId);\n            zone.setColorZone(colorZone);\n            allColorZones.push(colorZone);\n        }\n        this._colorZonesInvalid = false;\n        allColorZones.sort(ColorZone.compare);\n        return allColorZones;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/viewModel/viewContext.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { EditorTheme } from '../editorTheme.js';\nexport class ViewContext {\n    constructor(configuration, theme, model) {\n        this.configuration = configuration;\n        this.theme = new EditorTheme(theme);\n        this.viewModel = model;\n        this.viewLayout = model.viewLayout;\n    }\n    addEventHandler(eventHandler) {\n        this.viewModel.addViewEventHandler(eventHandler);\n    }\n    removeEventHandler(eventHandler) {\n        this.viewModel.removeViewEventHandler(eventHandler);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/viewModel/viewModelDecorations.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Position } from '../core/position.js';\nimport { Range } from '../core/range.js';\nimport { InlineDecoration, ViewModelDecoration } from '../viewModel.js';\nimport { filterValidationDecorations } from '../config/editorOptions.js';\nexport class ViewModelDecorations {\n    constructor(editorId, model, configuration, linesCollection, coordinatesConverter) {\n        this.editorId = editorId;\n        this.model = model;\n        this.configuration = configuration;\n        this._linesCollection = linesCollection;\n        this._coordinatesConverter = coordinatesConverter;\n        this._decorationsCache = Object.create(null);\n        this._cachedModelDecorationsResolver = null;\n        this._cachedModelDecorationsResolverViewRange = null;\n    }\n    _clearCachedModelDecorationsResolver() {\n        this._cachedModelDecorationsResolver = null;\n        this._cachedModelDecorationsResolverViewRange = null;\n    }\n    dispose() {\n        this._decorationsCache = Object.create(null);\n        this._clearCachedModelDecorationsResolver();\n    }\n    reset() {\n        this._decorationsCache = Object.create(null);\n        this._clearCachedModelDecorationsResolver();\n    }\n    onModelDecorationsChanged() {\n        this._decorationsCache = Object.create(null);\n        this._clearCachedModelDecorationsResolver();\n    }\n    onLineMappingChanged() {\n        this._decorationsCache = Object.create(null);\n        this._clearCachedModelDecorationsResolver();\n    }\n    _getOrCreateViewModelDecoration(modelDecoration) {\n        const id = modelDecoration.id;\n        let r = this._decorationsCache[id];\n        if (!r) {\n            const modelRange = modelDecoration.range;\n            const options = modelDecoration.options;\n            let viewRange;\n            if (options.isWholeLine) {\n                const start = this._coordinatesConverter.convertModelPositionToViewPosition(new Position(modelRange.startLineNumber, 1), 0 /* PositionAffinity.Left */, false, true);\n                const end = this._coordinatesConverter.convertModelPositionToViewPosition(new Position(modelRange.endLineNumber, this.model.getLineMaxColumn(modelRange.endLineNumber)), 1 /* PositionAffinity.Right */);\n                viewRange = new Range(start.lineNumber, start.column, end.lineNumber, end.column);\n            }\n            else {\n                // For backwards compatibility reasons, we want injected text before any decoration.\n                // Thus, move decorations to the right.\n                viewRange = this._coordinatesConverter.convertModelRangeToViewRange(modelRange, 1 /* PositionAffinity.Right */);\n            }\n            r = new ViewModelDecoration(viewRange, options);\n            this._decorationsCache[id] = r;\n        }\n        return r;\n    }\n    getMinimapDecorationsInRange(range) {\n        return this._getDecorationsInRange(range, true, false).decorations;\n    }\n    getDecorationsViewportData(viewRange) {\n        let cacheIsValid = (this._cachedModelDecorationsResolver !== null);\n        cacheIsValid = cacheIsValid && (viewRange.equalsRange(this._cachedModelDecorationsResolverViewRange));\n        if (!cacheIsValid) {\n            this._cachedModelDecorationsResolver = this._getDecorationsInRange(viewRange, false, false);\n            this._cachedModelDecorationsResolverViewRange = viewRange;\n        }\n        return this._cachedModelDecorationsResolver;\n    }\n    getInlineDecorationsOnLine(lineNumber, onlyMinimapDecorations = false, onlyMarginDecorations = false) {\n        const range = new Range(lineNumber, this._linesCollection.getViewLineMinColumn(lineNumber), lineNumber, this._linesCollection.getViewLineMaxColumn(lineNumber));\n        return this._getDecorationsInRange(range, onlyMinimapDecorations, onlyMarginDecorations).inlineDecorations[0];\n    }\n    _getDecorationsInRange(viewRange, onlyMinimapDecorations, onlyMarginDecorations) {\n        const modelDecorations = this._linesCollection.getDecorationsInRange(viewRange, this.editorId, filterValidationDecorations(this.configuration.options), onlyMinimapDecorations, onlyMarginDecorations);\n        const startLineNumber = viewRange.startLineNumber;\n        const endLineNumber = viewRange.endLineNumber;\n        const decorationsInViewport = [];\n        let decorationsInViewportLen = 0;\n        const inlineDecorations = [];\n        for (let j = startLineNumber; j <= endLineNumber; j++) {\n            inlineDecorations[j - startLineNumber] = [];\n        }\n        for (let i = 0, len = modelDecorations.length; i < len; i++) {\n            const modelDecoration = modelDecorations[i];\n            const decorationOptions = modelDecoration.options;\n            if (!isModelDecorationVisible(this.model, modelDecoration)) {\n                continue;\n            }\n            const viewModelDecoration = this._getOrCreateViewModelDecoration(modelDecoration);\n            const viewRange = viewModelDecoration.range;\n            decorationsInViewport[decorationsInViewportLen++] = viewModelDecoration;\n            if (decorationOptions.inlineClassName) {\n                const inlineDecoration = new InlineDecoration(viewRange, decorationOptions.inlineClassName, decorationOptions.inlineClassNameAffectsLetterSpacing ? 3 /* InlineDecorationType.RegularAffectingLetterSpacing */ : 0 /* InlineDecorationType.Regular */);\n                const intersectedStartLineNumber = Math.max(startLineNumber, viewRange.startLineNumber);\n                const intersectedEndLineNumber = Math.min(endLineNumber, viewRange.endLineNumber);\n                for (let j = intersectedStartLineNumber; j <= intersectedEndLineNumber; j++) {\n                    inlineDecorations[j - startLineNumber].push(inlineDecoration);\n                }\n            }\n            if (decorationOptions.beforeContentClassName) {\n                if (startLineNumber <= viewRange.startLineNumber && viewRange.startLineNumber <= endLineNumber) {\n                    const inlineDecoration = new InlineDecoration(new Range(viewRange.startLineNumber, viewRange.startColumn, viewRange.startLineNumber, viewRange.startColumn), decorationOptions.beforeContentClassName, 1 /* InlineDecorationType.Before */);\n                    inlineDecorations[viewRange.startLineNumber - startLineNumber].push(inlineDecoration);\n                }\n            }\n            if (decorationOptions.afterContentClassName) {\n                if (startLineNumber <= viewRange.endLineNumber && viewRange.endLineNumber <= endLineNumber) {\n                    const inlineDecoration = new InlineDecoration(new Range(viewRange.endLineNumber, viewRange.endColumn, viewRange.endLineNumber, viewRange.endColumn), decorationOptions.afterContentClassName, 2 /* InlineDecorationType.After */);\n                    inlineDecorations[viewRange.endLineNumber - startLineNumber].push(inlineDecoration);\n                }\n            }\n        }\n        return {\n            decorations: decorationsInViewport,\n            inlineDecorations: inlineDecorations\n        };\n    }\n}\nexport function isModelDecorationVisible(model, decoration) {\n    if (decoration.options.hideInCommentTokens && isModelDecorationInComment(model, decoration)) {\n        return false;\n    }\n    if (decoration.options.hideInStringTokens && isModelDecorationInString(model, decoration)) {\n        return false;\n    }\n    return true;\n}\nexport function isModelDecorationInComment(model, decoration) {\n    return testTokensInRange(model, decoration.range, (tokenType) => tokenType === 1 /* StandardTokenType.Comment */);\n}\nexport function isModelDecorationInString(model, decoration) {\n    return testTokensInRange(model, decoration.range, (tokenType) => tokenType === 2 /* StandardTokenType.String */);\n}\n/**\n * Calls the callback for every token that intersects the range.\n * If the callback returns `false`, iteration stops and `false` is returned.\n * Otherwise, `true` is returned.\n */\nfunction testTokensInRange(model, range, callback) {\n    for (let lineNumber = range.startLineNumber; lineNumber <= range.endLineNumber; lineNumber++) {\n        const lineTokens = model.tokenization.getLineTokens(lineNumber);\n        const isFirstLine = lineNumber === range.startLineNumber;\n        const isEndLine = lineNumber === range.endLineNumber;\n        let tokenIdx = isFirstLine ? lineTokens.findTokenIndexAtOffset(range.startColumn - 1) : 0;\n        while (tokenIdx < lineTokens.getCount()) {\n            if (isEndLine) {\n                const startOffset = lineTokens.getStartOffset(tokenIdx);\n                if (startOffset > range.endColumn - 1) {\n                    break;\n                }\n            }\n            const callbackResult = callback(lineTokens.getStandardTokenType(tokenIdx));\n            if (!callbackResult) {\n                return false;\n            }\n            tokenIdx++;\n        }\n    }\n    return true;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/viewModel/viewModelImpl.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { ArrayQueue } from '../../../base/common/arrays.js';\nimport { RunOnceScheduler } from '../../../base/common/async.js';\nimport { Color } from '../../../base/common/color.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport * as platform from '../../../base/common/platform.js';\nimport * as strings from '../../../base/common/strings.js';\nimport { EDITOR_FONT_DEFAULTS, filterValidationDecorations } from '../config/editorOptions.js';\nimport { CursorsController } from '../cursor/cursor.js';\nimport { CursorConfiguration } from '../cursorCommon.js';\nimport { Position } from '../core/position.js';\nimport { Range } from '../core/range.js';\nimport * as textModelEvents from '../textModelEvents.js';\nimport { TokenizationRegistry } from '../languages.js';\nimport { PLAINTEXT_LANGUAGE_ID } from '../languages/modesRegistry.js';\nimport { tokenizeLineToHTML } from '../languages/textToHtmlTokenizer.js';\nimport * as viewEvents from '../viewEvents.js';\nimport { ViewLayout } from '../viewLayout/viewLayout.js';\nimport { MinimapTokensColorTracker } from './minimapTokensColorTracker.js';\nimport { MinimapLinesRenderingData, OverviewRulerDecorationsGroup, ViewLineRenderingData } from '../viewModel.js';\nimport { ViewModelDecorations } from './viewModelDecorations.js';\nimport { FocusChangedEvent, HiddenAreasChangedEvent, ModelContentChangedEvent, ModelDecorationsChangedEvent, ModelLanguageChangedEvent, ModelLanguageConfigurationChangedEvent, ModelOptionsChangedEvent, ModelTokensChangedEvent, ReadOnlyEditAttemptEvent, ScrollChangedEvent, ViewModelEventDispatcher, ViewZonesChangedEvent } from '../viewModelEventDispatcher.js';\nimport { ViewModelLinesFromModelAsIs, ViewModelLinesFromProjectedModel } from './viewModelLines.js';\nimport { GlyphMarginLanesModel } from './glyphLanesModel.js';\nconst USE_IDENTITY_LINES_COLLECTION = true;\nexport class ViewModel extends Disposable {\n    constructor(editorId, configuration, model, domLineBreaksComputerFactory, monospaceLineBreaksComputerFactory, scheduleAtNextAnimationFrame, languageConfigurationService, _themeService, _attachedView) {\n        super();\n        this.languageConfigurationService = languageConfigurationService;\n        this._themeService = _themeService;\n        this._attachedView = _attachedView;\n        this.hiddenAreasModel = new HiddenAreasModel();\n        this.previousHiddenAreas = [];\n        this._editorId = editorId;\n        this._configuration = configuration;\n        this.model = model;\n        this._eventDispatcher = new ViewModelEventDispatcher();\n        this.onEvent = this._eventDispatcher.onEvent;\n        this.cursorConfig = new CursorConfiguration(this.model.getLanguageId(), this.model.getOptions(), this._configuration, this.languageConfigurationService);\n        this._updateConfigurationViewLineCount = this._register(new RunOnceScheduler(() => this._updateConfigurationViewLineCountNow(), 0));\n        this._hasFocus = false;\n        this._viewportStart = ViewportStart.create(this.model);\n        this.glyphLanes = new GlyphMarginLanesModel(0);\n        if (USE_IDENTITY_LINES_COLLECTION && this.model.isTooLargeForTokenization()) {\n            this._lines = new ViewModelLinesFromModelAsIs(this.model);\n        }\n        else {\n            const options = this._configuration.options;\n            const fontInfo = options.get(50 /* EditorOption.fontInfo */);\n            const wrappingStrategy = options.get(139 /* EditorOption.wrappingStrategy */);\n            const wrappingInfo = options.get(146 /* EditorOption.wrappingInfo */);\n            const wrappingIndent = options.get(138 /* EditorOption.wrappingIndent */);\n            const wordBreak = options.get(129 /* EditorOption.wordBreak */);\n            this._lines = new ViewModelLinesFromProjectedModel(this._editorId, this.model, domLineBreaksComputerFactory, monospaceLineBreaksComputerFactory, fontInfo, this.model.getOptions().tabSize, wrappingStrategy, wrappingInfo.wrappingColumn, wrappingIndent, wordBreak);\n        }\n        this.coordinatesConverter = this._lines.createCoordinatesConverter();\n        this._cursor = this._register(new CursorsController(model, this, this.coordinatesConverter, this.cursorConfig));\n        this.viewLayout = this._register(new ViewLayout(this._configuration, this.getLineCount(), scheduleAtNextAnimationFrame));\n        this._register(this.viewLayout.onDidScroll((e) => {\n            if (e.scrollTopChanged) {\n                this._handleVisibleLinesChanged();\n            }\n            if (e.scrollTopChanged) {\n                this._viewportStart.invalidate();\n            }\n            this._eventDispatcher.emitSingleViewEvent(new viewEvents.ViewScrollChangedEvent(e));\n            this._eventDispatcher.emitOutgoingEvent(new ScrollChangedEvent(e.oldScrollWidth, e.oldScrollLeft, e.oldScrollHeight, e.oldScrollTop, e.scrollWidth, e.scrollLeft, e.scrollHeight, e.scrollTop));\n        }));\n        this._register(this.viewLayout.onDidContentSizeChange((e) => {\n            this._eventDispatcher.emitOutgoingEvent(e);\n        }));\n        this._decorations = new ViewModelDecorations(this._editorId, this.model, this._configuration, this._lines, this.coordinatesConverter);\n        this._registerModelEvents();\n        this._register(this._configuration.onDidChangeFast((e) => {\n            try {\n                const eventsCollector = this._eventDispatcher.beginEmitViewEvents();\n                this._onConfigurationChanged(eventsCollector, e);\n            }\n            finally {\n                this._eventDispatcher.endEmitViewEvents();\n            }\n        }));\n        this._register(MinimapTokensColorTracker.getInstance().onDidChange(() => {\n            this._eventDispatcher.emitSingleViewEvent(new viewEvents.ViewTokensColorsChangedEvent());\n        }));\n        this._register(this._themeService.onDidColorThemeChange((theme) => {\n            this._invalidateDecorationsColorCache();\n            this._eventDispatcher.emitSingleViewEvent(new viewEvents.ViewThemeChangedEvent(theme));\n        }));\n        this._updateConfigurationViewLineCountNow();\n    }\n    dispose() {\n        // First remove listeners, as disposing the lines might end up sending\n        // model decoration changed events ... and we no longer care about them ...\n        super.dispose();\n        this._decorations.dispose();\n        this._lines.dispose();\n        this._viewportStart.dispose();\n        this._eventDispatcher.dispose();\n    }\n    createLineBreaksComputer() {\n        return this._lines.createLineBreaksComputer();\n    }\n    addViewEventHandler(eventHandler) {\n        this._eventDispatcher.addViewEventHandler(eventHandler);\n    }\n    removeViewEventHandler(eventHandler) {\n        this._eventDispatcher.removeViewEventHandler(eventHandler);\n    }\n    _updateConfigurationViewLineCountNow() {\n        this._configuration.setViewLineCount(this._lines.getViewLineCount());\n    }\n    getModelVisibleRanges() {\n        const linesViewportData = this.viewLayout.getLinesViewportData();\n        const viewVisibleRange = new Range(linesViewportData.startLineNumber, this.getLineMinColumn(linesViewportData.startLineNumber), linesViewportData.endLineNumber, this.getLineMaxColumn(linesViewportData.endLineNumber));\n        const modelVisibleRanges = this._toModelVisibleRanges(viewVisibleRange);\n        return modelVisibleRanges;\n    }\n    visibleLinesStabilized() {\n        const modelVisibleRanges = this.getModelVisibleRanges();\n        this._attachedView.setVisibleLines(modelVisibleRanges, true);\n    }\n    _handleVisibleLinesChanged() {\n        const modelVisibleRanges = this.getModelVisibleRanges();\n        this._attachedView.setVisibleLines(modelVisibleRanges, false);\n    }\n    setHasFocus(hasFocus) {\n        this._hasFocus = hasFocus;\n        this._cursor.setHasFocus(hasFocus);\n        this._eventDispatcher.emitSingleViewEvent(new viewEvents.ViewFocusChangedEvent(hasFocus));\n        this._eventDispatcher.emitOutgoingEvent(new FocusChangedEvent(!hasFocus, hasFocus));\n    }\n    onCompositionStart() {\n        this._eventDispatcher.emitSingleViewEvent(new viewEvents.ViewCompositionStartEvent());\n    }\n    onCompositionEnd() {\n        this._eventDispatcher.emitSingleViewEvent(new viewEvents.ViewCompositionEndEvent());\n    }\n    _captureStableViewport() {\n        // We might need to restore the current start view range, so save it (if available)\n        // But only if the scroll position is not at the top of the file\n        if (this._viewportStart.isValid && this.viewLayout.getCurrentScrollTop() > 0) {\n            const previousViewportStartViewPosition = new Position(this._viewportStart.viewLineNumber, this.getLineMinColumn(this._viewportStart.viewLineNumber));\n            const previousViewportStartModelPosition = this.coordinatesConverter.convertViewPositionToModelPosition(previousViewportStartViewPosition);\n            return new StableViewport(previousViewportStartModelPosition, this._viewportStart.startLineDelta);\n        }\n        return new StableViewport(null, 0);\n    }\n    _onConfigurationChanged(eventsCollector, e) {\n        const stableViewport = this._captureStableViewport();\n        const options = this._configuration.options;\n        const fontInfo = options.get(50 /* EditorOption.fontInfo */);\n        const wrappingStrategy = options.get(139 /* EditorOption.wrappingStrategy */);\n        const wrappingInfo = options.get(146 /* EditorOption.wrappingInfo */);\n        const wrappingIndent = options.get(138 /* EditorOption.wrappingIndent */);\n        const wordBreak = options.get(129 /* EditorOption.wordBreak */);\n        if (this._lines.setWrappingSettings(fontInfo, wrappingStrategy, wrappingInfo.wrappingColumn, wrappingIndent, wordBreak)) {\n            eventsCollector.emitViewEvent(new viewEvents.ViewFlushedEvent());\n            eventsCollector.emitViewEvent(new viewEvents.ViewLineMappingChangedEvent());\n            eventsCollector.emitViewEvent(new viewEvents.ViewDecorationsChangedEvent(null));\n            this._cursor.onLineMappingChanged(eventsCollector);\n            this._decorations.onLineMappingChanged();\n            this.viewLayout.onFlushed(this.getLineCount());\n            this._updateConfigurationViewLineCount.schedule();\n        }\n        if (e.hasChanged(91 /* EditorOption.readOnly */)) {\n            // Must read again all decorations due to readOnly filtering\n            this._decorations.reset();\n            eventsCollector.emitViewEvent(new viewEvents.ViewDecorationsChangedEvent(null));\n        }\n        if (e.hasChanged(98 /* EditorOption.renderValidationDecorations */)) {\n            this._decorations.reset();\n            eventsCollector.emitViewEvent(new viewEvents.ViewDecorationsChangedEvent(null));\n        }\n        eventsCollector.emitViewEvent(new viewEvents.ViewConfigurationChangedEvent(e));\n        this.viewLayout.onConfigurationChanged(e);\n        stableViewport.recoverViewportStart(this.coordinatesConverter, this.viewLayout);\n        if (CursorConfiguration.shouldRecreate(e)) {\n            this.cursorConfig = new CursorConfiguration(this.model.getLanguageId(), this.model.getOptions(), this._configuration, this.languageConfigurationService);\n            this._cursor.updateConfiguration(this.cursorConfig);\n        }\n    }\n    _registerModelEvents() {\n        this._register(this.model.onDidChangeContentOrInjectedText((e) => {\n            try {\n                const eventsCollector = this._eventDispatcher.beginEmitViewEvents();\n                let hadOtherModelChange = false;\n                let hadModelLineChangeThatChangedLineMapping = false;\n                const changes = (e instanceof textModelEvents.InternalModelContentChangeEvent ? e.rawContentChangedEvent.changes : e.changes);\n                const versionId = (e instanceof textModelEvents.InternalModelContentChangeEvent ? e.rawContentChangedEvent.versionId : null);\n                // Do a first pass to compute line mappings, and a second pass to actually interpret them\n                const lineBreaksComputer = this._lines.createLineBreaksComputer();\n                for (const change of changes) {\n                    switch (change.changeType) {\n                        case 4 /* textModelEvents.RawContentChangedType.LinesInserted */: {\n                            for (let lineIdx = 0; lineIdx < change.detail.length; lineIdx++) {\n                                const line = change.detail[lineIdx];\n                                let injectedText = change.injectedTexts[lineIdx];\n                                if (injectedText) {\n                                    injectedText = injectedText.filter(element => (!element.ownerId || element.ownerId === this._editorId));\n                                }\n                                lineBreaksComputer.addRequest(line, injectedText, null);\n                            }\n                            break;\n                        }\n                        case 2 /* textModelEvents.RawContentChangedType.LineChanged */: {\n                            let injectedText = null;\n                            if (change.injectedText) {\n                                injectedText = change.injectedText.filter(element => (!element.ownerId || element.ownerId === this._editorId));\n                            }\n                            lineBreaksComputer.addRequest(change.detail, injectedText, null);\n                            break;\n                        }\n                    }\n                }\n                const lineBreaks = lineBreaksComputer.finalize();\n                const lineBreakQueue = new ArrayQueue(lineBreaks);\n                for (const change of changes) {\n                    switch (change.changeType) {\n                        case 1 /* textModelEvents.RawContentChangedType.Flush */: {\n                            this._lines.onModelFlushed();\n                            eventsCollector.emitViewEvent(new viewEvents.ViewFlushedEvent());\n                            this._decorations.reset();\n                            this.viewLayout.onFlushed(this.getLineCount());\n                            hadOtherModelChange = true;\n                            break;\n                        }\n                        case 3 /* textModelEvents.RawContentChangedType.LinesDeleted */: {\n                            const linesDeletedEvent = this._lines.onModelLinesDeleted(versionId, change.fromLineNumber, change.toLineNumber);\n                            if (linesDeletedEvent !== null) {\n                                eventsCollector.emitViewEvent(linesDeletedEvent);\n                                this.viewLayout.onLinesDeleted(linesDeletedEvent.fromLineNumber, linesDeletedEvent.toLineNumber);\n                            }\n                            hadOtherModelChange = true;\n                            break;\n                        }\n                        case 4 /* textModelEvents.RawContentChangedType.LinesInserted */: {\n                            const insertedLineBreaks = lineBreakQueue.takeCount(change.detail.length);\n                            const linesInsertedEvent = this._lines.onModelLinesInserted(versionId, change.fromLineNumber, change.toLineNumber, insertedLineBreaks);\n                            if (linesInsertedEvent !== null) {\n                                eventsCollector.emitViewEvent(linesInsertedEvent);\n                                this.viewLayout.onLinesInserted(linesInsertedEvent.fromLineNumber, linesInsertedEvent.toLineNumber);\n                            }\n                            hadOtherModelChange = true;\n                            break;\n                        }\n                        case 2 /* textModelEvents.RawContentChangedType.LineChanged */: {\n                            const changedLineBreakData = lineBreakQueue.dequeue();\n                            const [lineMappingChanged, linesChangedEvent, linesInsertedEvent, linesDeletedEvent] = this._lines.onModelLineChanged(versionId, change.lineNumber, changedLineBreakData);\n                            hadModelLineChangeThatChangedLineMapping = lineMappingChanged;\n                            if (linesChangedEvent) {\n                                eventsCollector.emitViewEvent(linesChangedEvent);\n                            }\n                            if (linesInsertedEvent) {\n                                eventsCollector.emitViewEvent(linesInsertedEvent);\n                                this.viewLayout.onLinesInserted(linesInsertedEvent.fromLineNumber, linesInsertedEvent.toLineNumber);\n                            }\n                            if (linesDeletedEvent) {\n                                eventsCollector.emitViewEvent(linesDeletedEvent);\n                                this.viewLayout.onLinesDeleted(linesDeletedEvent.fromLineNumber, linesDeletedEvent.toLineNumber);\n                            }\n                            break;\n                        }\n                        case 5 /* textModelEvents.RawContentChangedType.EOLChanged */: {\n                            // Nothing to do. The new version will be accepted below\n                            break;\n                        }\n                    }\n                }\n                if (versionId !== null) {\n                    this._lines.acceptVersionId(versionId);\n                }\n                this.viewLayout.onHeightMaybeChanged();\n                if (!hadOtherModelChange && hadModelLineChangeThatChangedLineMapping) {\n                    eventsCollector.emitViewEvent(new viewEvents.ViewLineMappingChangedEvent());\n                    eventsCollector.emitViewEvent(new viewEvents.ViewDecorationsChangedEvent(null));\n                    this._cursor.onLineMappingChanged(eventsCollector);\n                    this._decorations.onLineMappingChanged();\n                }\n            }\n            finally {\n                this._eventDispatcher.endEmitViewEvents();\n            }\n            // Update the configuration and reset the centered view line\n            const viewportStartWasValid = this._viewportStart.isValid;\n            this._viewportStart.invalidate();\n            this._configuration.setModelLineCount(this.model.getLineCount());\n            this._updateConfigurationViewLineCountNow();\n            // Recover viewport\n            if (!this._hasFocus && this.model.getAttachedEditorCount() >= 2 && viewportStartWasValid) {\n                const modelRange = this.model._getTrackedRange(this._viewportStart.modelTrackedRange);\n                if (modelRange) {\n                    const viewPosition = this.coordinatesConverter.convertModelPositionToViewPosition(modelRange.getStartPosition());\n                    const viewPositionTop = this.viewLayout.getVerticalOffsetForLineNumber(viewPosition.lineNumber);\n                    this.viewLayout.setScrollPosition({ scrollTop: viewPositionTop + this._viewportStart.startLineDelta }, 1 /* ScrollType.Immediate */);\n                }\n            }\n            try {\n                const eventsCollector = this._eventDispatcher.beginEmitViewEvents();\n                if (e instanceof textModelEvents.InternalModelContentChangeEvent) {\n                    eventsCollector.emitOutgoingEvent(new ModelContentChangedEvent(e.contentChangedEvent));\n                }\n                this._cursor.onModelContentChanged(eventsCollector, e);\n            }\n            finally {\n                this._eventDispatcher.endEmitViewEvents();\n            }\n            this._handleVisibleLinesChanged();\n        }));\n        this._register(this.model.onDidChangeTokens((e) => {\n            const viewRanges = [];\n            for (let j = 0, lenJ = e.ranges.length; j < lenJ; j++) {\n                const modelRange = e.ranges[j];\n                const viewStartLineNumber = this.coordinatesConverter.convertModelPositionToViewPosition(new Position(modelRange.fromLineNumber, 1)).lineNumber;\n                const viewEndLineNumber = this.coordinatesConverter.convertModelPositionToViewPosition(new Position(modelRange.toLineNumber, this.model.getLineMaxColumn(modelRange.toLineNumber))).lineNumber;\n                viewRanges[j] = {\n                    fromLineNumber: viewStartLineNumber,\n                    toLineNumber: viewEndLineNumber\n                };\n            }\n            this._eventDispatcher.emitSingleViewEvent(new viewEvents.ViewTokensChangedEvent(viewRanges));\n            this._eventDispatcher.emitOutgoingEvent(new ModelTokensChangedEvent(e));\n        }));\n        this._register(this.model.onDidChangeLanguageConfiguration((e) => {\n            this._eventDispatcher.emitSingleViewEvent(new viewEvents.ViewLanguageConfigurationEvent());\n            this.cursorConfig = new CursorConfiguration(this.model.getLanguageId(), this.model.getOptions(), this._configuration, this.languageConfigurationService);\n            this._cursor.updateConfiguration(this.cursorConfig);\n            this._eventDispatcher.emitOutgoingEvent(new ModelLanguageConfigurationChangedEvent(e));\n        }));\n        this._register(this.model.onDidChangeLanguage((e) => {\n            this.cursorConfig = new CursorConfiguration(this.model.getLanguageId(), this.model.getOptions(), this._configuration, this.languageConfigurationService);\n            this._cursor.updateConfiguration(this.cursorConfig);\n            this._eventDispatcher.emitOutgoingEvent(new ModelLanguageChangedEvent(e));\n        }));\n        this._register(this.model.onDidChangeOptions((e) => {\n            // A tab size change causes a line mapping changed event => all view parts will repaint OK, no further event needed here\n            if (this._lines.setTabSize(this.model.getOptions().tabSize)) {\n                try {\n                    const eventsCollector = this._eventDispatcher.beginEmitViewEvents();\n                    eventsCollector.emitViewEvent(new viewEvents.ViewFlushedEvent());\n                    eventsCollector.emitViewEvent(new viewEvents.ViewLineMappingChangedEvent());\n                    eventsCollector.emitViewEvent(new viewEvents.ViewDecorationsChangedEvent(null));\n                    this._cursor.onLineMappingChanged(eventsCollector);\n                    this._decorations.onLineMappingChanged();\n                    this.viewLayout.onFlushed(this.getLineCount());\n                }\n                finally {\n                    this._eventDispatcher.endEmitViewEvents();\n                }\n                this._updateConfigurationViewLineCount.schedule();\n            }\n            this.cursorConfig = new CursorConfiguration(this.model.getLanguageId(), this.model.getOptions(), this._configuration, this.languageConfigurationService);\n            this._cursor.updateConfiguration(this.cursorConfig);\n            this._eventDispatcher.emitOutgoingEvent(new ModelOptionsChangedEvent(e));\n        }));\n        this._register(this.model.onDidChangeDecorations((e) => {\n            this._decorations.onModelDecorationsChanged();\n            this._eventDispatcher.emitSingleViewEvent(new viewEvents.ViewDecorationsChangedEvent(e));\n            this._eventDispatcher.emitOutgoingEvent(new ModelDecorationsChangedEvent(e));\n        }));\n    }\n    setHiddenAreas(ranges, source) {\n        var _a;\n        this.hiddenAreasModel.setHiddenAreas(source, ranges);\n        const mergedRanges = this.hiddenAreasModel.getMergedRanges();\n        if (mergedRanges === this.previousHiddenAreas) {\n            return;\n        }\n        this.previousHiddenAreas = mergedRanges;\n        const stableViewport = this._captureStableViewport();\n        let lineMappingChanged = false;\n        try {\n            const eventsCollector = this._eventDispatcher.beginEmitViewEvents();\n            lineMappingChanged = this._lines.setHiddenAreas(mergedRanges);\n            if (lineMappingChanged) {\n                eventsCollector.emitViewEvent(new viewEvents.ViewFlushedEvent());\n                eventsCollector.emitViewEvent(new viewEvents.ViewLineMappingChangedEvent());\n                eventsCollector.emitViewEvent(new viewEvents.ViewDecorationsChangedEvent(null));\n                this._cursor.onLineMappingChanged(eventsCollector);\n                this._decorations.onLineMappingChanged();\n                this.viewLayout.onFlushed(this.getLineCount());\n                this.viewLayout.onHeightMaybeChanged();\n            }\n            const firstModelLineInViewPort = (_a = stableViewport.viewportStartModelPosition) === null || _a === void 0 ? void 0 : _a.lineNumber;\n            const firstModelLineIsHidden = firstModelLineInViewPort && mergedRanges.some(range => range.startLineNumber <= firstModelLineInViewPort && firstModelLineInViewPort <= range.endLineNumber);\n            if (!firstModelLineIsHidden) {\n                stableViewport.recoverViewportStart(this.coordinatesConverter, this.viewLayout);\n            }\n        }\n        finally {\n            this._eventDispatcher.endEmitViewEvents();\n        }\n        this._updateConfigurationViewLineCount.schedule();\n        if (lineMappingChanged) {\n            this._eventDispatcher.emitOutgoingEvent(new HiddenAreasChangedEvent());\n        }\n    }\n    getVisibleRangesPlusViewportAboveBelow() {\n        const layoutInfo = this._configuration.options.get(145 /* EditorOption.layoutInfo */);\n        const lineHeight = this._configuration.options.get(67 /* EditorOption.lineHeight */);\n        const linesAround = Math.max(20, Math.round(layoutInfo.height / lineHeight));\n        const partialData = this.viewLayout.getLinesViewportData();\n        const startViewLineNumber = Math.max(1, partialData.completelyVisibleStartLineNumber - linesAround);\n        const endViewLineNumber = Math.min(this.getLineCount(), partialData.completelyVisibleEndLineNumber + linesAround);\n        return this._toModelVisibleRanges(new Range(startViewLineNumber, this.getLineMinColumn(startViewLineNumber), endViewLineNumber, this.getLineMaxColumn(endViewLineNumber)));\n    }\n    getVisibleRanges() {\n        const visibleViewRange = this.getCompletelyVisibleViewRange();\n        return this._toModelVisibleRanges(visibleViewRange);\n    }\n    getHiddenAreas() {\n        return this._lines.getHiddenAreas();\n    }\n    _toModelVisibleRanges(visibleViewRange) {\n        const visibleRange = this.coordinatesConverter.convertViewRangeToModelRange(visibleViewRange);\n        const hiddenAreas = this._lines.getHiddenAreas();\n        if (hiddenAreas.length === 0) {\n            return [visibleRange];\n        }\n        const result = [];\n        let resultLen = 0;\n        let startLineNumber = visibleRange.startLineNumber;\n        let startColumn = visibleRange.startColumn;\n        const endLineNumber = visibleRange.endLineNumber;\n        const endColumn = visibleRange.endColumn;\n        for (let i = 0, len = hiddenAreas.length; i < len; i++) {\n            const hiddenStartLineNumber = hiddenAreas[i].startLineNumber;\n            const hiddenEndLineNumber = hiddenAreas[i].endLineNumber;\n            if (hiddenEndLineNumber < startLineNumber) {\n                continue;\n            }\n            if (hiddenStartLineNumber > endLineNumber) {\n                continue;\n            }\n            if (startLineNumber < hiddenStartLineNumber) {\n                result[resultLen++] = new Range(startLineNumber, startColumn, hiddenStartLineNumber - 1, this.model.getLineMaxColumn(hiddenStartLineNumber - 1));\n            }\n            startLineNumber = hiddenEndLineNumber + 1;\n            startColumn = 1;\n        }\n        if (startLineNumber < endLineNumber || (startLineNumber === endLineNumber && startColumn < endColumn)) {\n            result[resultLen++] = new Range(startLineNumber, startColumn, endLineNumber, endColumn);\n        }\n        return result;\n    }\n    getCompletelyVisibleViewRange() {\n        const partialData = this.viewLayout.getLinesViewportData();\n        const startViewLineNumber = partialData.completelyVisibleStartLineNumber;\n        const endViewLineNumber = partialData.completelyVisibleEndLineNumber;\n        return new Range(startViewLineNumber, this.getLineMinColumn(startViewLineNumber), endViewLineNumber, this.getLineMaxColumn(endViewLineNumber));\n    }\n    getCompletelyVisibleViewRangeAtScrollTop(scrollTop) {\n        const partialData = this.viewLayout.getLinesViewportDataAtScrollTop(scrollTop);\n        const startViewLineNumber = partialData.completelyVisibleStartLineNumber;\n        const endViewLineNumber = partialData.completelyVisibleEndLineNumber;\n        return new Range(startViewLineNumber, this.getLineMinColumn(startViewLineNumber), endViewLineNumber, this.getLineMaxColumn(endViewLineNumber));\n    }\n    saveState() {\n        const compatViewState = this.viewLayout.saveState();\n        const scrollTop = compatViewState.scrollTop;\n        const firstViewLineNumber = this.viewLayout.getLineNumberAtVerticalOffset(scrollTop);\n        const firstPosition = this.coordinatesConverter.convertViewPositionToModelPosition(new Position(firstViewLineNumber, this.getLineMinColumn(firstViewLineNumber)));\n        const firstPositionDeltaTop = this.viewLayout.getVerticalOffsetForLineNumber(firstViewLineNumber) - scrollTop;\n        return {\n            scrollLeft: compatViewState.scrollLeft,\n            firstPosition: firstPosition,\n            firstPositionDeltaTop: firstPositionDeltaTop\n        };\n    }\n    reduceRestoreState(state) {\n        if (typeof state.firstPosition === 'undefined') {\n            // This is a view state serialized by an older version\n            return this._reduceRestoreStateCompatibility(state);\n        }\n        const modelPosition = this.model.validatePosition(state.firstPosition);\n        const viewPosition = this.coordinatesConverter.convertModelPositionToViewPosition(modelPosition);\n        const scrollTop = this.viewLayout.getVerticalOffsetForLineNumber(viewPosition.lineNumber) - state.firstPositionDeltaTop;\n        return {\n            scrollLeft: state.scrollLeft,\n            scrollTop: scrollTop\n        };\n    }\n    _reduceRestoreStateCompatibility(state) {\n        return {\n            scrollLeft: state.scrollLeft,\n            scrollTop: state.scrollTopWithoutViewZones\n        };\n    }\n    getTabSize() {\n        return this.model.getOptions().tabSize;\n    }\n    getLineCount() {\n        return this._lines.getViewLineCount();\n    }\n    /**\n     * Gives a hint that a lot of requests are about to come in for these line numbers.\n     */\n    setViewport(startLineNumber, endLineNumber, centeredLineNumber) {\n        this._viewportStart.update(this, startLineNumber);\n    }\n    getActiveIndentGuide(lineNumber, minLineNumber, maxLineNumber) {\n        return this._lines.getActiveIndentGuide(lineNumber, minLineNumber, maxLineNumber);\n    }\n    getLinesIndentGuides(startLineNumber, endLineNumber) {\n        return this._lines.getViewLinesIndentGuides(startLineNumber, endLineNumber);\n    }\n    getBracketGuidesInRangeByLine(startLineNumber, endLineNumber, activePosition, options) {\n        return this._lines.getViewLinesBracketGuides(startLineNumber, endLineNumber, activePosition, options);\n    }\n    getLineContent(lineNumber) {\n        return this._lines.getViewLineContent(lineNumber);\n    }\n    getLineLength(lineNumber) {\n        return this._lines.getViewLineLength(lineNumber);\n    }\n    getLineMinColumn(lineNumber) {\n        return this._lines.getViewLineMinColumn(lineNumber);\n    }\n    getLineMaxColumn(lineNumber) {\n        return this._lines.getViewLineMaxColumn(lineNumber);\n    }\n    getLineFirstNonWhitespaceColumn(lineNumber) {\n        const result = strings.firstNonWhitespaceIndex(this.getLineContent(lineNumber));\n        if (result === -1) {\n            return 0;\n        }\n        return result + 1;\n    }\n    getLineLastNonWhitespaceColumn(lineNumber) {\n        const result = strings.lastNonWhitespaceIndex(this.getLineContent(lineNumber));\n        if (result === -1) {\n            return 0;\n        }\n        return result + 2;\n    }\n    getMinimapDecorationsInRange(range) {\n        return this._decorations.getMinimapDecorationsInRange(range);\n    }\n    getDecorationsInViewport(visibleRange) {\n        return this._decorations.getDecorationsViewportData(visibleRange).decorations;\n    }\n    getInjectedTextAt(viewPosition) {\n        return this._lines.getInjectedTextAt(viewPosition);\n    }\n    getViewportViewLineRenderingData(visibleRange, lineNumber) {\n        const allInlineDecorations = this._decorations.getDecorationsViewportData(visibleRange).inlineDecorations;\n        const inlineDecorations = allInlineDecorations[lineNumber - visibleRange.startLineNumber];\n        return this._getViewLineRenderingData(lineNumber, inlineDecorations);\n    }\n    getViewLineRenderingData(lineNumber) {\n        const inlineDecorations = this._decorations.getInlineDecorationsOnLine(lineNumber);\n        return this._getViewLineRenderingData(lineNumber, inlineDecorations);\n    }\n    _getViewLineRenderingData(lineNumber, inlineDecorations) {\n        const mightContainRTL = this.model.mightContainRTL();\n        const mightContainNonBasicASCII = this.model.mightContainNonBasicASCII();\n        const tabSize = this.getTabSize();\n        const lineData = this._lines.getViewLineData(lineNumber);\n        if (lineData.inlineDecorations) {\n            inlineDecorations = [\n                ...inlineDecorations,\n                ...lineData.inlineDecorations.map(d => d.toInlineDecoration(lineNumber))\n            ];\n        }\n        return new ViewLineRenderingData(lineData.minColumn, lineData.maxColumn, lineData.content, lineData.continuesWithWrappedLine, mightContainRTL, mightContainNonBasicASCII, lineData.tokens, inlineDecorations, tabSize, lineData.startVisibleColumn);\n    }\n    getViewLineData(lineNumber) {\n        return this._lines.getViewLineData(lineNumber);\n    }\n    getMinimapLinesRenderingData(startLineNumber, endLineNumber, needed) {\n        const result = this._lines.getViewLinesData(startLineNumber, endLineNumber, needed);\n        return new MinimapLinesRenderingData(this.getTabSize(), result);\n    }\n    getAllOverviewRulerDecorations(theme) {\n        const decorations = this.model.getOverviewRulerDecorations(this._editorId, filterValidationDecorations(this._configuration.options));\n        const result = new OverviewRulerDecorations();\n        for (const decoration of decorations) {\n            const decorationOptions = decoration.options;\n            const opts = decorationOptions.overviewRuler;\n            if (!opts) {\n                continue;\n            }\n            const lane = opts.position;\n            if (lane === 0) {\n                continue;\n            }\n            const color = opts.getColor(theme.value);\n            const viewStartLineNumber = this.coordinatesConverter.getViewLineNumberOfModelPosition(decoration.range.startLineNumber, decoration.range.startColumn);\n            const viewEndLineNumber = this.coordinatesConverter.getViewLineNumberOfModelPosition(decoration.range.endLineNumber, decoration.range.endColumn);\n            result.accept(color, decorationOptions.zIndex, viewStartLineNumber, viewEndLineNumber, lane);\n        }\n        return result.asArray;\n    }\n    _invalidateDecorationsColorCache() {\n        const decorations = this.model.getOverviewRulerDecorations();\n        for (const decoration of decorations) {\n            const opts1 = decoration.options.overviewRuler;\n            opts1 === null || opts1 === void 0 ? void 0 : opts1.invalidateCachedColor();\n            const opts2 = decoration.options.minimap;\n            opts2 === null || opts2 === void 0 ? void 0 : opts2.invalidateCachedColor();\n        }\n    }\n    getValueInRange(range, eol) {\n        const modelRange = this.coordinatesConverter.convertViewRangeToModelRange(range);\n        return this.model.getValueInRange(modelRange, eol);\n    }\n    getValueLengthInRange(range, eol) {\n        const modelRange = this.coordinatesConverter.convertViewRangeToModelRange(range);\n        return this.model.getValueLengthInRange(modelRange, eol);\n    }\n    modifyPosition(position, offset) {\n        const modelPosition = this.coordinatesConverter.convertViewPositionToModelPosition(position);\n        const resultModelPosition = this.model.modifyPosition(modelPosition, offset);\n        return this.coordinatesConverter.convertModelPositionToViewPosition(resultModelPosition);\n    }\n    deduceModelPositionRelativeToViewPosition(viewAnchorPosition, deltaOffset, lineFeedCnt) {\n        const modelAnchor = this.coordinatesConverter.convertViewPositionToModelPosition(viewAnchorPosition);\n        if (this.model.getEOL().length === 2) {\n            // This model uses CRLF, so the delta must take that into account\n            if (deltaOffset < 0) {\n                deltaOffset -= lineFeedCnt;\n            }\n            else {\n                deltaOffset += lineFeedCnt;\n            }\n        }\n        const modelAnchorOffset = this.model.getOffsetAt(modelAnchor);\n        const resultOffset = modelAnchorOffset + deltaOffset;\n        return this.model.getPositionAt(resultOffset);\n    }\n    getPlainTextToCopy(modelRanges, emptySelectionClipboard, forceCRLF) {\n        const newLineCharacter = forceCRLF ? '\\r\\n' : this.model.getEOL();\n        modelRanges = modelRanges.slice(0);\n        modelRanges.sort(Range.compareRangesUsingStarts);\n        let hasEmptyRange = false;\n        let hasNonEmptyRange = false;\n        for (const range of modelRanges) {\n            if (range.isEmpty()) {\n                hasEmptyRange = true;\n            }\n            else {\n                hasNonEmptyRange = true;\n            }\n        }\n        if (!hasNonEmptyRange) {\n            // all ranges are empty\n            if (!emptySelectionClipboard) {\n                return '';\n            }\n            const modelLineNumbers = modelRanges.map((r) => r.startLineNumber);\n            let result = '';\n            for (let i = 0; i < modelLineNumbers.length; i++) {\n                if (i > 0 && modelLineNumbers[i - 1] === modelLineNumbers[i]) {\n                    continue;\n                }\n                result += this.model.getLineContent(modelLineNumbers[i]) + newLineCharacter;\n            }\n            return result;\n        }\n        if (hasEmptyRange && emptySelectionClipboard) {\n            // mixed empty selections and non-empty selections\n            const result = [];\n            let prevModelLineNumber = 0;\n            for (const modelRange of modelRanges) {\n                const modelLineNumber = modelRange.startLineNumber;\n                if (modelRange.isEmpty()) {\n                    if (modelLineNumber !== prevModelLineNumber) {\n                        result.push(this.model.getLineContent(modelLineNumber));\n                    }\n                }\n                else {\n                    result.push(this.model.getValueInRange(modelRange, forceCRLF ? 2 /* EndOfLinePreference.CRLF */ : 0 /* EndOfLinePreference.TextDefined */));\n                }\n                prevModelLineNumber = modelLineNumber;\n            }\n            return result.length === 1 ? result[0] : result;\n        }\n        const result = [];\n        for (const modelRange of modelRanges) {\n            if (!modelRange.isEmpty()) {\n                result.push(this.model.getValueInRange(modelRange, forceCRLF ? 2 /* EndOfLinePreference.CRLF */ : 0 /* EndOfLinePreference.TextDefined */));\n            }\n        }\n        return result.length === 1 ? result[0] : result;\n    }\n    getRichTextToCopy(modelRanges, emptySelectionClipboard) {\n        const languageId = this.model.getLanguageId();\n        if (languageId === PLAINTEXT_LANGUAGE_ID) {\n            return null;\n        }\n        if (modelRanges.length !== 1) {\n            // no multiple selection support at this time\n            return null;\n        }\n        let range = modelRanges[0];\n        if (range.isEmpty()) {\n            if (!emptySelectionClipboard) {\n                // nothing to copy\n                return null;\n            }\n            const lineNumber = range.startLineNumber;\n            range = new Range(lineNumber, this.model.getLineMinColumn(lineNumber), lineNumber, this.model.getLineMaxColumn(lineNumber));\n        }\n        const fontInfo = this._configuration.options.get(50 /* EditorOption.fontInfo */);\n        const colorMap = this._getColorMap();\n        const hasBadChars = (/[:;\\\\\\/<>]/.test(fontInfo.fontFamily));\n        const useDefaultFontFamily = (hasBadChars || fontInfo.fontFamily === EDITOR_FONT_DEFAULTS.fontFamily);\n        let fontFamily;\n        if (useDefaultFontFamily) {\n            fontFamily = EDITOR_FONT_DEFAULTS.fontFamily;\n        }\n        else {\n            fontFamily = fontInfo.fontFamily;\n            fontFamily = fontFamily.replace(/\"/g, '\\'');\n            const hasQuotesOrIsList = /[,']/.test(fontFamily);\n            if (!hasQuotesOrIsList) {\n                const needsQuotes = /[+ ]/.test(fontFamily);\n                if (needsQuotes) {\n                    fontFamily = `'${fontFamily}'`;\n                }\n            }\n            fontFamily = `${fontFamily}, ${EDITOR_FONT_DEFAULTS.fontFamily}`;\n        }\n        return {\n            mode: languageId,\n            html: (`<div style=\"`\n                + `color: ${colorMap[1 /* ColorId.DefaultForeground */]};`\n                + `background-color: ${colorMap[2 /* ColorId.DefaultBackground */]};`\n                + `font-family: ${fontFamily};`\n                + `font-weight: ${fontInfo.fontWeight};`\n                + `font-size: ${fontInfo.fontSize}px;`\n                + `line-height: ${fontInfo.lineHeight}px;`\n                + `white-space: pre;`\n                + `\">`\n                + this._getHTMLToCopy(range, colorMap)\n                + '</div>')\n        };\n    }\n    _getHTMLToCopy(modelRange, colorMap) {\n        const startLineNumber = modelRange.startLineNumber;\n        const startColumn = modelRange.startColumn;\n        const endLineNumber = modelRange.endLineNumber;\n        const endColumn = modelRange.endColumn;\n        const tabSize = this.getTabSize();\n        let result = '';\n        for (let lineNumber = startLineNumber; lineNumber <= endLineNumber; lineNumber++) {\n            const lineTokens = this.model.tokenization.getLineTokens(lineNumber);\n            const lineContent = lineTokens.getLineContent();\n            const startOffset = (lineNumber === startLineNumber ? startColumn - 1 : 0);\n            const endOffset = (lineNumber === endLineNumber ? endColumn - 1 : lineContent.length);\n            if (lineContent === '') {\n                result += '<br>';\n            }\n            else {\n                result += tokenizeLineToHTML(lineContent, lineTokens.inflate(), colorMap, startOffset, endOffset, tabSize, platform.isWindows);\n            }\n        }\n        return result;\n    }\n    _getColorMap() {\n        const colorMap = TokenizationRegistry.getColorMap();\n        const result = ['#000000'];\n        if (colorMap) {\n            for (let i = 1, len = colorMap.length; i < len; i++) {\n                result[i] = Color.Format.CSS.formatHex(colorMap[i]);\n            }\n        }\n        return result;\n    }\n    //#region cursor operations\n    getPrimaryCursorState() {\n        return this._cursor.getPrimaryCursorState();\n    }\n    getLastAddedCursorIndex() {\n        return this._cursor.getLastAddedCursorIndex();\n    }\n    getCursorStates() {\n        return this._cursor.getCursorStates();\n    }\n    setCursorStates(source, reason, states) {\n        return this._withViewEventsCollector(eventsCollector => this._cursor.setStates(eventsCollector, source, reason, states));\n    }\n    getCursorColumnSelectData() {\n        return this._cursor.getCursorColumnSelectData();\n    }\n    getCursorAutoClosedCharacters() {\n        return this._cursor.getAutoClosedCharacters();\n    }\n    setCursorColumnSelectData(columnSelectData) {\n        this._cursor.setCursorColumnSelectData(columnSelectData);\n    }\n    getPrevEditOperationType() {\n        return this._cursor.getPrevEditOperationType();\n    }\n    setPrevEditOperationType(type) {\n        this._cursor.setPrevEditOperationType(type);\n    }\n    getSelection() {\n        return this._cursor.getSelection();\n    }\n    getSelections() {\n        return this._cursor.getSelections();\n    }\n    getPosition() {\n        return this._cursor.getPrimaryCursorState().modelState.position;\n    }\n    setSelections(source, selections, reason = 0 /* CursorChangeReason.NotSet */) {\n        this._withViewEventsCollector(eventsCollector => this._cursor.setSelections(eventsCollector, source, selections, reason));\n    }\n    saveCursorState() {\n        return this._cursor.saveState();\n    }\n    restoreCursorState(states) {\n        this._withViewEventsCollector(eventsCollector => this._cursor.restoreState(eventsCollector, states));\n    }\n    _executeCursorEdit(callback) {\n        if (this._cursor.context.cursorConfig.readOnly) {\n            // we cannot edit when read only...\n            this._eventDispatcher.emitOutgoingEvent(new ReadOnlyEditAttemptEvent());\n            return;\n        }\n        this._withViewEventsCollector(callback);\n    }\n    executeEdits(source, edits, cursorStateComputer) {\n        this._executeCursorEdit(eventsCollector => this._cursor.executeEdits(eventsCollector, source, edits, cursorStateComputer));\n    }\n    startComposition() {\n        this._executeCursorEdit(eventsCollector => this._cursor.startComposition(eventsCollector));\n    }\n    endComposition(source) {\n        this._executeCursorEdit(eventsCollector => this._cursor.endComposition(eventsCollector, source));\n    }\n    type(text, source) {\n        this._executeCursorEdit(eventsCollector => this._cursor.type(eventsCollector, text, source));\n    }\n    compositionType(text, replacePrevCharCnt, replaceNextCharCnt, positionDelta, source) {\n        this._executeCursorEdit(eventsCollector => this._cursor.compositionType(eventsCollector, text, replacePrevCharCnt, replaceNextCharCnt, positionDelta, source));\n    }\n    paste(text, pasteOnNewLine, multicursorText, source) {\n        this._executeCursorEdit(eventsCollector => this._cursor.paste(eventsCollector, text, pasteOnNewLine, multicursorText, source));\n    }\n    cut(source) {\n        this._executeCursorEdit(eventsCollector => this._cursor.cut(eventsCollector, source));\n    }\n    executeCommand(command, source) {\n        this._executeCursorEdit(eventsCollector => this._cursor.executeCommand(eventsCollector, command, source));\n    }\n    executeCommands(commands, source) {\n        this._executeCursorEdit(eventsCollector => this._cursor.executeCommands(eventsCollector, commands, source));\n    }\n    revealAllCursors(source, revealHorizontal, minimalReveal = false) {\n        this._withViewEventsCollector(eventsCollector => this._cursor.revealAll(eventsCollector, source, minimalReveal, 0 /* viewEvents.VerticalRevealType.Simple */, revealHorizontal, 0 /* ScrollType.Smooth */));\n    }\n    revealPrimaryCursor(source, revealHorizontal, minimalReveal = false) {\n        this._withViewEventsCollector(eventsCollector => this._cursor.revealPrimary(eventsCollector, source, minimalReveal, 0 /* viewEvents.VerticalRevealType.Simple */, revealHorizontal, 0 /* ScrollType.Smooth */));\n    }\n    revealTopMostCursor(source) {\n        const viewPosition = this._cursor.getTopMostViewPosition();\n        const viewRange = new Range(viewPosition.lineNumber, viewPosition.column, viewPosition.lineNumber, viewPosition.column);\n        this._withViewEventsCollector(eventsCollector => eventsCollector.emitViewEvent(new viewEvents.ViewRevealRangeRequestEvent(source, false, viewRange, null, 0 /* viewEvents.VerticalRevealType.Simple */, true, 0 /* ScrollType.Smooth */)));\n    }\n    revealBottomMostCursor(source) {\n        const viewPosition = this._cursor.getBottomMostViewPosition();\n        const viewRange = new Range(viewPosition.lineNumber, viewPosition.column, viewPosition.lineNumber, viewPosition.column);\n        this._withViewEventsCollector(eventsCollector => eventsCollector.emitViewEvent(new viewEvents.ViewRevealRangeRequestEvent(source, false, viewRange, null, 0 /* viewEvents.VerticalRevealType.Simple */, true, 0 /* ScrollType.Smooth */)));\n    }\n    revealRange(source, revealHorizontal, viewRange, verticalType, scrollType) {\n        this._withViewEventsCollector(eventsCollector => eventsCollector.emitViewEvent(new viewEvents.ViewRevealRangeRequestEvent(source, false, viewRange, null, verticalType, revealHorizontal, scrollType)));\n    }\n    //#endregion\n    //#region viewLayout\n    changeWhitespace(callback) {\n        const hadAChange = this.viewLayout.changeWhitespace(callback);\n        if (hadAChange) {\n            this._eventDispatcher.emitSingleViewEvent(new viewEvents.ViewZonesChangedEvent());\n            this._eventDispatcher.emitOutgoingEvent(new ViewZonesChangedEvent());\n        }\n    }\n    //#endregion\n    _withViewEventsCollector(callback) {\n        try {\n            const eventsCollector = this._eventDispatcher.beginEmitViewEvents();\n            return callback(eventsCollector);\n        }\n        finally {\n            this._eventDispatcher.endEmitViewEvents();\n        }\n    }\n    batchEvents(callback) {\n        this._withViewEventsCollector(() => { callback(); });\n    }\n    normalizePosition(position, affinity) {\n        return this._lines.normalizePosition(position, affinity);\n    }\n    /**\n     * Gets the column at which indentation stops at a given line.\n     * @internal\n    */\n    getLineIndentColumn(lineNumber) {\n        return this._lines.getLineIndentColumn(lineNumber);\n    }\n}\nclass ViewportStart {\n    static create(model) {\n        const viewportStartLineTrackedRange = model._setTrackedRange(null, new Range(1, 1, 1, 1), 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */);\n        return new ViewportStart(model, 1, false, viewportStartLineTrackedRange, 0);\n    }\n    get viewLineNumber() {\n        return this._viewLineNumber;\n    }\n    get isValid() {\n        return this._isValid;\n    }\n    get modelTrackedRange() {\n        return this._modelTrackedRange;\n    }\n    get startLineDelta() {\n        return this._startLineDelta;\n    }\n    constructor(_model, _viewLineNumber, _isValid, _modelTrackedRange, _startLineDelta) {\n        this._model = _model;\n        this._viewLineNumber = _viewLineNumber;\n        this._isValid = _isValid;\n        this._modelTrackedRange = _modelTrackedRange;\n        this._startLineDelta = _startLineDelta;\n    }\n    dispose() {\n        this._model._setTrackedRange(this._modelTrackedRange, null, 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */);\n    }\n    update(viewModel, startLineNumber) {\n        const position = viewModel.coordinatesConverter.convertViewPositionToModelPosition(new Position(startLineNumber, viewModel.getLineMinColumn(startLineNumber)));\n        const viewportStartLineTrackedRange = viewModel.model._setTrackedRange(this._modelTrackedRange, new Range(position.lineNumber, position.column, position.lineNumber, position.column), 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */);\n        const viewportStartLineTop = viewModel.viewLayout.getVerticalOffsetForLineNumber(startLineNumber);\n        const scrollTop = viewModel.viewLayout.getCurrentScrollTop();\n        this._viewLineNumber = startLineNumber;\n        this._isValid = true;\n        this._modelTrackedRange = viewportStartLineTrackedRange;\n        this._startLineDelta = scrollTop - viewportStartLineTop;\n    }\n    invalidate() {\n        this._isValid = false;\n    }\n}\nclass OverviewRulerDecorations {\n    constructor() {\n        this._asMap = Object.create(null);\n        this.asArray = [];\n    }\n    accept(color, zIndex, startLineNumber, endLineNumber, lane) {\n        const prevGroup = this._asMap[color];\n        if (prevGroup) {\n            const prevData = prevGroup.data;\n            const prevLane = prevData[prevData.length - 3];\n            const prevEndLineNumber = prevData[prevData.length - 1];\n            if (prevLane === lane && prevEndLineNumber + 1 >= startLineNumber) {\n                // merge into prev\n                if (endLineNumber > prevEndLineNumber) {\n                    prevData[prevData.length - 1] = endLineNumber;\n                }\n                return;\n            }\n            // push\n            prevData.push(lane, startLineNumber, endLineNumber);\n        }\n        else {\n            const group = new OverviewRulerDecorationsGroup(color, zIndex, [lane, startLineNumber, endLineNumber]);\n            this._asMap[color] = group;\n            this.asArray.push(group);\n        }\n    }\n}\nclass HiddenAreasModel {\n    constructor() {\n        this.hiddenAreas = new Map();\n        this.shouldRecompute = false;\n        this.ranges = [];\n    }\n    setHiddenAreas(source, ranges) {\n        const existing = this.hiddenAreas.get(source);\n        if (existing && rangeArraysEqual(existing, ranges)) {\n            return;\n        }\n        this.hiddenAreas.set(source, ranges);\n        this.shouldRecompute = true;\n    }\n    /**\n     * The returned array is immutable.\n    */\n    getMergedRanges() {\n        if (!this.shouldRecompute) {\n            return this.ranges;\n        }\n        this.shouldRecompute = false;\n        const newRanges = Array.from(this.hiddenAreas.values()).reduce((r, hiddenAreas) => mergeLineRangeArray(r, hiddenAreas), []);\n        if (rangeArraysEqual(this.ranges, newRanges)) {\n            return this.ranges;\n        }\n        this.ranges = newRanges;\n        return this.ranges;\n    }\n}\nfunction mergeLineRangeArray(arr1, arr2) {\n    const result = [];\n    let i = 0;\n    let j = 0;\n    while (i < arr1.length && j < arr2.length) {\n        const item1 = arr1[i];\n        const item2 = arr2[j];\n        if (item1.endLineNumber < item2.startLineNumber - 1) {\n            result.push(arr1[i++]);\n        }\n        else if (item2.endLineNumber < item1.startLineNumber - 1) {\n            result.push(arr2[j++]);\n        }\n        else {\n            const startLineNumber = Math.min(item1.startLineNumber, item2.startLineNumber);\n            const endLineNumber = Math.max(item1.endLineNumber, item2.endLineNumber);\n            result.push(new Range(startLineNumber, 1, endLineNumber, 1));\n            i++;\n            j++;\n        }\n    }\n    while (i < arr1.length) {\n        result.push(arr1[i++]);\n    }\n    while (j < arr2.length) {\n        result.push(arr2[j++]);\n    }\n    return result;\n}\nfunction rangeArraysEqual(arr1, arr2) {\n    if (arr1.length !== arr2.length) {\n        return false;\n    }\n    for (let i = 0; i < arr1.length; i++) {\n        if (!arr1[i].equalsRange(arr2[i])) {\n            return false;\n        }\n    }\n    return true;\n}\n/**\n * Maintain a stable viewport by trying to keep the first line in the viewport constant.\n */\nclass StableViewport {\n    constructor(viewportStartModelPosition, startLineDelta) {\n        this.viewportStartModelPosition = viewportStartModelPosition;\n        this.startLineDelta = startLineDelta;\n    }\n    recoverViewportStart(coordinatesConverter, viewLayout) {\n        if (!this.viewportStartModelPosition) {\n            return;\n        }\n        const viewPosition = coordinatesConverter.convertModelPositionToViewPosition(this.viewportStartModelPosition);\n        const viewPositionTop = viewLayout.getVerticalOffsetForLineNumber(viewPosition.lineNumber);\n        viewLayout.setScrollPosition({ scrollTop: viewPositionTop + this.startLineDelta }, 1 /* ScrollType.Immediate */);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/viewModel/viewModelLines.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as arrays from '../../../base/common/arrays.js';\nimport { Position } from '../core/position.js';\nimport { Range } from '../core/range.js';\nimport { IndentGuide, IndentGuideHorizontalLine } from '../textModelGuides.js';\nimport { ModelDecorationOptions } from '../model/textModel.js';\nimport { LineInjectedText } from '../textModelEvents.js';\nimport * as viewEvents from '../viewEvents.js';\nimport { createModelLineProjection } from './modelLineProjection.js';\nimport { ConstantTimePrefixSumComputer } from '../model/prefixSumComputer.js';\nimport { ViewLineData } from '../viewModel.js';\nexport class ViewModelLinesFromProjectedModel {\n    constructor(editorId, model, domLineBreaksComputerFactory, monospaceLineBreaksComputerFactory, fontInfo, tabSize, wrappingStrategy, wrappingColumn, wrappingIndent, wordBreak) {\n        this._editorId = editorId;\n        this.model = model;\n        this._validModelVersionId = -1;\n        this._domLineBreaksComputerFactory = domLineBreaksComputerFactory;\n        this._monospaceLineBreaksComputerFactory = monospaceLineBreaksComputerFactory;\n        this.fontInfo = fontInfo;\n        this.tabSize = tabSize;\n        this.wrappingStrategy = wrappingStrategy;\n        this.wrappingColumn = wrappingColumn;\n        this.wrappingIndent = wrappingIndent;\n        this.wordBreak = wordBreak;\n        this._constructLines(/*resetHiddenAreas*/ true, null);\n    }\n    dispose() {\n        this.hiddenAreasDecorationIds = this.model.deltaDecorations(this.hiddenAreasDecorationIds, []);\n    }\n    createCoordinatesConverter() {\n        return new CoordinatesConverter(this);\n    }\n    _constructLines(resetHiddenAreas, previousLineBreaks) {\n        this.modelLineProjections = [];\n        if (resetHiddenAreas) {\n            this.hiddenAreasDecorationIds = this.model.deltaDecorations(this.hiddenAreasDecorationIds, []);\n        }\n        const linesContent = this.model.getLinesContent();\n        const injectedTextDecorations = this.model.getInjectedTextDecorations(this._editorId);\n        const lineCount = linesContent.length;\n        const lineBreaksComputer = this.createLineBreaksComputer();\n        const injectedTextQueue = new arrays.ArrayQueue(LineInjectedText.fromDecorations(injectedTextDecorations));\n        for (let i = 0; i < lineCount; i++) {\n            const lineInjectedText = injectedTextQueue.takeWhile(t => t.lineNumber === i + 1);\n            lineBreaksComputer.addRequest(linesContent[i], lineInjectedText, previousLineBreaks ? previousLineBreaks[i] : null);\n        }\n        const linesBreaks = lineBreaksComputer.finalize();\n        const values = [];\n        const hiddenAreas = this.hiddenAreasDecorationIds.map((areaId) => this.model.getDecorationRange(areaId)).sort(Range.compareRangesUsingStarts);\n        let hiddenAreaStart = 1, hiddenAreaEnd = 0;\n        let hiddenAreaIdx = -1;\n        let nextLineNumberToUpdateHiddenArea = (hiddenAreaIdx + 1 < hiddenAreas.length) ? hiddenAreaEnd + 1 : lineCount + 2;\n        for (let i = 0; i < lineCount; i++) {\n            const lineNumber = i + 1;\n            if (lineNumber === nextLineNumberToUpdateHiddenArea) {\n                hiddenAreaIdx++;\n                hiddenAreaStart = hiddenAreas[hiddenAreaIdx].startLineNumber;\n                hiddenAreaEnd = hiddenAreas[hiddenAreaIdx].endLineNumber;\n                nextLineNumberToUpdateHiddenArea = (hiddenAreaIdx + 1 < hiddenAreas.length) ? hiddenAreaEnd + 1 : lineCount + 2;\n            }\n            const isInHiddenArea = (lineNumber >= hiddenAreaStart && lineNumber <= hiddenAreaEnd);\n            const line = createModelLineProjection(linesBreaks[i], !isInHiddenArea);\n            values[i] = line.getViewLineCount();\n            this.modelLineProjections[i] = line;\n        }\n        this._validModelVersionId = this.model.getVersionId();\n        this.projectedModelLineLineCounts = new ConstantTimePrefixSumComputer(values);\n    }\n    getHiddenAreas() {\n        return this.hiddenAreasDecorationIds.map((decId) => this.model.getDecorationRange(decId));\n    }\n    setHiddenAreas(_ranges) {\n        const validatedRanges = _ranges.map(r => this.model.validateRange(r));\n        const newRanges = normalizeLineRanges(validatedRanges);\n        // TODO@Martin: Please stop calling this method on each model change!\n        // This checks if there really was a change\n        const oldRanges = this.hiddenAreasDecorationIds.map((areaId) => this.model.getDecorationRange(areaId)).sort(Range.compareRangesUsingStarts);\n        if (newRanges.length === oldRanges.length) {\n            let hasDifference = false;\n            for (let i = 0; i < newRanges.length; i++) {\n                if (!newRanges[i].equalsRange(oldRanges[i])) {\n                    hasDifference = true;\n                    break;\n                }\n            }\n            if (!hasDifference) {\n                return false;\n            }\n        }\n        const newDecorations = newRanges.map((r) => ({\n            range: r,\n            options: ModelDecorationOptions.EMPTY,\n        }));\n        this.hiddenAreasDecorationIds = this.model.deltaDecorations(this.hiddenAreasDecorationIds, newDecorations);\n        const hiddenAreas = newRanges;\n        let hiddenAreaStart = 1, hiddenAreaEnd = 0;\n        let hiddenAreaIdx = -1;\n        let nextLineNumberToUpdateHiddenArea = (hiddenAreaIdx + 1 < hiddenAreas.length) ? hiddenAreaEnd + 1 : this.modelLineProjections.length + 2;\n        let hasVisibleLine = false;\n        for (let i = 0; i < this.modelLineProjections.length; i++) {\n            const lineNumber = i + 1;\n            if (lineNumber === nextLineNumberToUpdateHiddenArea) {\n                hiddenAreaIdx++;\n                hiddenAreaStart = hiddenAreas[hiddenAreaIdx].startLineNumber;\n                hiddenAreaEnd = hiddenAreas[hiddenAreaIdx].endLineNumber;\n                nextLineNumberToUpdateHiddenArea = (hiddenAreaIdx + 1 < hiddenAreas.length) ? hiddenAreaEnd + 1 : this.modelLineProjections.length + 2;\n            }\n            let lineChanged = false;\n            if (lineNumber >= hiddenAreaStart && lineNumber <= hiddenAreaEnd) {\n                // Line should be hidden\n                if (this.modelLineProjections[i].isVisible()) {\n                    this.modelLineProjections[i] = this.modelLineProjections[i].setVisible(false);\n                    lineChanged = true;\n                }\n            }\n            else {\n                hasVisibleLine = true;\n                // Line should be visible\n                if (!this.modelLineProjections[i].isVisible()) {\n                    this.modelLineProjections[i] = this.modelLineProjections[i].setVisible(true);\n                    lineChanged = true;\n                }\n            }\n            if (lineChanged) {\n                const newOutputLineCount = this.modelLineProjections[i].getViewLineCount();\n                this.projectedModelLineLineCounts.setValue(i, newOutputLineCount);\n            }\n        }\n        if (!hasVisibleLine) {\n            // Cannot have everything be hidden => reveal everything!\n            this.setHiddenAreas([]);\n        }\n        return true;\n    }\n    modelPositionIsVisible(modelLineNumber, _modelColumn) {\n        if (modelLineNumber < 1 || modelLineNumber > this.modelLineProjections.length) {\n            // invalid arguments\n            return false;\n        }\n        return this.modelLineProjections[modelLineNumber - 1].isVisible();\n    }\n    getModelLineViewLineCount(modelLineNumber) {\n        if (modelLineNumber < 1 || modelLineNumber > this.modelLineProjections.length) {\n            // invalid arguments\n            return 1;\n        }\n        return this.modelLineProjections[modelLineNumber - 1].getViewLineCount();\n    }\n    setTabSize(newTabSize) {\n        if (this.tabSize === newTabSize) {\n            return false;\n        }\n        this.tabSize = newTabSize;\n        this._constructLines(/*resetHiddenAreas*/ false, null);\n        return true;\n    }\n    setWrappingSettings(fontInfo, wrappingStrategy, wrappingColumn, wrappingIndent, wordBreak) {\n        const equalFontInfo = this.fontInfo.equals(fontInfo);\n        const equalWrappingStrategy = (this.wrappingStrategy === wrappingStrategy);\n        const equalWrappingColumn = (this.wrappingColumn === wrappingColumn);\n        const equalWrappingIndent = (this.wrappingIndent === wrappingIndent);\n        const equalWordBreak = (this.wordBreak === wordBreak);\n        if (equalFontInfo && equalWrappingStrategy && equalWrappingColumn && equalWrappingIndent && equalWordBreak) {\n            return false;\n        }\n        const onlyWrappingColumnChanged = (equalFontInfo && equalWrappingStrategy && !equalWrappingColumn && equalWrappingIndent && equalWordBreak);\n        this.fontInfo = fontInfo;\n        this.wrappingStrategy = wrappingStrategy;\n        this.wrappingColumn = wrappingColumn;\n        this.wrappingIndent = wrappingIndent;\n        this.wordBreak = wordBreak;\n        let previousLineBreaks = null;\n        if (onlyWrappingColumnChanged) {\n            previousLineBreaks = [];\n            for (let i = 0, len = this.modelLineProjections.length; i < len; i++) {\n                previousLineBreaks[i] = this.modelLineProjections[i].getProjectionData();\n            }\n        }\n        this._constructLines(/*resetHiddenAreas*/ false, previousLineBreaks);\n        return true;\n    }\n    createLineBreaksComputer() {\n        const lineBreaksComputerFactory = (this.wrappingStrategy === 'advanced'\n            ? this._domLineBreaksComputerFactory\n            : this._monospaceLineBreaksComputerFactory);\n        return lineBreaksComputerFactory.createLineBreaksComputer(this.fontInfo, this.tabSize, this.wrappingColumn, this.wrappingIndent, this.wordBreak);\n    }\n    onModelFlushed() {\n        this._constructLines(/*resetHiddenAreas*/ true, null);\n    }\n    onModelLinesDeleted(versionId, fromLineNumber, toLineNumber) {\n        if (!versionId || versionId <= this._validModelVersionId) {\n            // Here we check for versionId in case the lines were reconstructed in the meantime.\n            // We don't want to apply stale change events on top of a newer read model state.\n            return null;\n        }\n        const outputFromLineNumber = (fromLineNumber === 1 ? 1 : this.projectedModelLineLineCounts.getPrefixSum(fromLineNumber - 1) + 1);\n        const outputToLineNumber = this.projectedModelLineLineCounts.getPrefixSum(toLineNumber);\n        this.modelLineProjections.splice(fromLineNumber - 1, toLineNumber - fromLineNumber + 1);\n        this.projectedModelLineLineCounts.removeValues(fromLineNumber - 1, toLineNumber - fromLineNumber + 1);\n        return new viewEvents.ViewLinesDeletedEvent(outputFromLineNumber, outputToLineNumber);\n    }\n    onModelLinesInserted(versionId, fromLineNumber, _toLineNumber, lineBreaks) {\n        if (!versionId || versionId <= this._validModelVersionId) {\n            // Here we check for versionId in case the lines were reconstructed in the meantime.\n            // We don't want to apply stale change events on top of a newer read model state.\n            return null;\n        }\n        // cannot use this.getHiddenAreas() because those decorations have already seen the effect of this model change\n        const isInHiddenArea = (fromLineNumber > 2 && !this.modelLineProjections[fromLineNumber - 2].isVisible());\n        const outputFromLineNumber = (fromLineNumber === 1 ? 1 : this.projectedModelLineLineCounts.getPrefixSum(fromLineNumber - 1) + 1);\n        let totalOutputLineCount = 0;\n        const insertLines = [];\n        const insertPrefixSumValues = [];\n        for (let i = 0, len = lineBreaks.length; i < len; i++) {\n            const line = createModelLineProjection(lineBreaks[i], !isInHiddenArea);\n            insertLines.push(line);\n            const outputLineCount = line.getViewLineCount();\n            totalOutputLineCount += outputLineCount;\n            insertPrefixSumValues[i] = outputLineCount;\n        }\n        // TODO@Alex: use arrays.arrayInsert\n        this.modelLineProjections =\n            this.modelLineProjections.slice(0, fromLineNumber - 1)\n                .concat(insertLines)\n                .concat(this.modelLineProjections.slice(fromLineNumber - 1));\n        this.projectedModelLineLineCounts.insertValues(fromLineNumber - 1, insertPrefixSumValues);\n        return new viewEvents.ViewLinesInsertedEvent(outputFromLineNumber, outputFromLineNumber + totalOutputLineCount - 1);\n    }\n    onModelLineChanged(versionId, lineNumber, lineBreakData) {\n        if (versionId !== null && versionId <= this._validModelVersionId) {\n            // Here we check for versionId in case the lines were reconstructed in the meantime.\n            // We don't want to apply stale change events on top of a newer read model state.\n            return [false, null, null, null];\n        }\n        const lineIndex = lineNumber - 1;\n        const oldOutputLineCount = this.modelLineProjections[lineIndex].getViewLineCount();\n        const isVisible = this.modelLineProjections[lineIndex].isVisible();\n        const line = createModelLineProjection(lineBreakData, isVisible);\n        this.modelLineProjections[lineIndex] = line;\n        const newOutputLineCount = this.modelLineProjections[lineIndex].getViewLineCount();\n        let lineMappingChanged = false;\n        let changeFrom = 0;\n        let changeTo = -1;\n        let insertFrom = 0;\n        let insertTo = -1;\n        let deleteFrom = 0;\n        let deleteTo = -1;\n        if (oldOutputLineCount > newOutputLineCount) {\n            changeFrom = this.projectedModelLineLineCounts.getPrefixSum(lineNumber - 1) + 1;\n            changeTo = changeFrom + newOutputLineCount - 1;\n            deleteFrom = changeTo + 1;\n            deleteTo = deleteFrom + (oldOutputLineCount - newOutputLineCount) - 1;\n            lineMappingChanged = true;\n        }\n        else if (oldOutputLineCount < newOutputLineCount) {\n            changeFrom = this.projectedModelLineLineCounts.getPrefixSum(lineNumber - 1) + 1;\n            changeTo = changeFrom + oldOutputLineCount - 1;\n            insertFrom = changeTo + 1;\n            insertTo = insertFrom + (newOutputLineCount - oldOutputLineCount) - 1;\n            lineMappingChanged = true;\n        }\n        else {\n            changeFrom = this.projectedModelLineLineCounts.getPrefixSum(lineNumber - 1) + 1;\n            changeTo = changeFrom + newOutputLineCount - 1;\n        }\n        this.projectedModelLineLineCounts.setValue(lineIndex, newOutputLineCount);\n        const viewLinesChangedEvent = (changeFrom <= changeTo ? new viewEvents.ViewLinesChangedEvent(changeFrom, changeTo - changeFrom + 1) : null);\n        const viewLinesInsertedEvent = (insertFrom <= insertTo ? new viewEvents.ViewLinesInsertedEvent(insertFrom, insertTo) : null);\n        const viewLinesDeletedEvent = (deleteFrom <= deleteTo ? new viewEvents.ViewLinesDeletedEvent(deleteFrom, deleteTo) : null);\n        return [lineMappingChanged, viewLinesChangedEvent, viewLinesInsertedEvent, viewLinesDeletedEvent];\n    }\n    acceptVersionId(versionId) {\n        this._validModelVersionId = versionId;\n        if (this.modelLineProjections.length === 1 && !this.modelLineProjections[0].isVisible()) {\n            // At least one line must be visible => reset hidden areas\n            this.setHiddenAreas([]);\n        }\n    }\n    getViewLineCount() {\n        return this.projectedModelLineLineCounts.getTotalSum();\n    }\n    _toValidViewLineNumber(viewLineNumber) {\n        if (viewLineNumber < 1) {\n            return 1;\n        }\n        const viewLineCount = this.getViewLineCount();\n        if (viewLineNumber > viewLineCount) {\n            return viewLineCount;\n        }\n        return viewLineNumber | 0;\n    }\n    getActiveIndentGuide(viewLineNumber, minLineNumber, maxLineNumber) {\n        viewLineNumber = this._toValidViewLineNumber(viewLineNumber);\n        minLineNumber = this._toValidViewLineNumber(minLineNumber);\n        maxLineNumber = this._toValidViewLineNumber(maxLineNumber);\n        const modelPosition = this.convertViewPositionToModelPosition(viewLineNumber, this.getViewLineMinColumn(viewLineNumber));\n        const modelMinPosition = this.convertViewPositionToModelPosition(minLineNumber, this.getViewLineMinColumn(minLineNumber));\n        const modelMaxPosition = this.convertViewPositionToModelPosition(maxLineNumber, this.getViewLineMinColumn(maxLineNumber));\n        const result = this.model.guides.getActiveIndentGuide(modelPosition.lineNumber, modelMinPosition.lineNumber, modelMaxPosition.lineNumber);\n        const viewStartPosition = this.convertModelPositionToViewPosition(result.startLineNumber, 1);\n        const viewEndPosition = this.convertModelPositionToViewPosition(result.endLineNumber, this.model.getLineMaxColumn(result.endLineNumber));\n        return {\n            startLineNumber: viewStartPosition.lineNumber,\n            endLineNumber: viewEndPosition.lineNumber,\n            indent: result.indent\n        };\n    }\n    // #region ViewLineInfo\n    getViewLineInfo(viewLineNumber) {\n        viewLineNumber = this._toValidViewLineNumber(viewLineNumber);\n        const r = this.projectedModelLineLineCounts.getIndexOf(viewLineNumber - 1);\n        const lineIndex = r.index;\n        const remainder = r.remainder;\n        return new ViewLineInfo(lineIndex + 1, remainder);\n    }\n    getMinColumnOfViewLine(viewLineInfo) {\n        return this.modelLineProjections[viewLineInfo.modelLineNumber - 1].getViewLineMinColumn(this.model, viewLineInfo.modelLineNumber, viewLineInfo.modelLineWrappedLineIdx);\n    }\n    getMaxColumnOfViewLine(viewLineInfo) {\n        return this.modelLineProjections[viewLineInfo.modelLineNumber - 1].getViewLineMaxColumn(this.model, viewLineInfo.modelLineNumber, viewLineInfo.modelLineWrappedLineIdx);\n    }\n    getModelStartPositionOfViewLine(viewLineInfo) {\n        const line = this.modelLineProjections[viewLineInfo.modelLineNumber - 1];\n        const minViewColumn = line.getViewLineMinColumn(this.model, viewLineInfo.modelLineNumber, viewLineInfo.modelLineWrappedLineIdx);\n        const column = line.getModelColumnOfViewPosition(viewLineInfo.modelLineWrappedLineIdx, minViewColumn);\n        return new Position(viewLineInfo.modelLineNumber, column);\n    }\n    getModelEndPositionOfViewLine(viewLineInfo) {\n        const line = this.modelLineProjections[viewLineInfo.modelLineNumber - 1];\n        const maxViewColumn = line.getViewLineMaxColumn(this.model, viewLineInfo.modelLineNumber, viewLineInfo.modelLineWrappedLineIdx);\n        const column = line.getModelColumnOfViewPosition(viewLineInfo.modelLineWrappedLineIdx, maxViewColumn);\n        return new Position(viewLineInfo.modelLineNumber, column);\n    }\n    getViewLineInfosGroupedByModelRanges(viewStartLineNumber, viewEndLineNumber) {\n        const startViewLine = this.getViewLineInfo(viewStartLineNumber);\n        const endViewLine = this.getViewLineInfo(viewEndLineNumber);\n        const result = new Array();\n        let lastVisibleModelPos = this.getModelStartPositionOfViewLine(startViewLine);\n        let viewLines = new Array();\n        for (let curModelLine = startViewLine.modelLineNumber; curModelLine <= endViewLine.modelLineNumber; curModelLine++) {\n            const line = this.modelLineProjections[curModelLine - 1];\n            if (line.isVisible()) {\n                const startOffset = curModelLine === startViewLine.modelLineNumber\n                    ? startViewLine.modelLineWrappedLineIdx\n                    : 0;\n                const endOffset = curModelLine === endViewLine.modelLineNumber\n                    ? endViewLine.modelLineWrappedLineIdx + 1\n                    : line.getViewLineCount();\n                for (let i = startOffset; i < endOffset; i++) {\n                    viewLines.push(new ViewLineInfo(curModelLine, i));\n                }\n            }\n            if (!line.isVisible() && lastVisibleModelPos) {\n                const lastVisibleModelPos2 = new Position(curModelLine - 1, this.model.getLineMaxColumn(curModelLine - 1) + 1);\n                const modelRange = Range.fromPositions(lastVisibleModelPos, lastVisibleModelPos2);\n                result.push(new ViewLineInfoGroupedByModelRange(modelRange, viewLines));\n                viewLines = [];\n                lastVisibleModelPos = null;\n            }\n            else if (line.isVisible() && !lastVisibleModelPos) {\n                lastVisibleModelPos = new Position(curModelLine, 1);\n            }\n        }\n        if (lastVisibleModelPos) {\n            const modelRange = Range.fromPositions(lastVisibleModelPos, this.getModelEndPositionOfViewLine(endViewLine));\n            result.push(new ViewLineInfoGroupedByModelRange(modelRange, viewLines));\n        }\n        return result;\n    }\n    // #endregion\n    getViewLinesBracketGuides(viewStartLineNumber, viewEndLineNumber, activeViewPosition, options) {\n        const modelActivePosition = activeViewPosition ? this.convertViewPositionToModelPosition(activeViewPosition.lineNumber, activeViewPosition.column) : null;\n        const resultPerViewLine = [];\n        for (const group of this.getViewLineInfosGroupedByModelRanges(viewStartLineNumber, viewEndLineNumber)) {\n            const modelRangeStartLineNumber = group.modelRange.startLineNumber;\n            const bracketGuidesPerModelLine = this.model.guides.getLinesBracketGuides(modelRangeStartLineNumber, group.modelRange.endLineNumber, modelActivePosition, options);\n            for (const viewLineInfo of group.viewLines) {\n                const bracketGuides = bracketGuidesPerModelLine[viewLineInfo.modelLineNumber - modelRangeStartLineNumber];\n                // visibleColumns stay as they are (this is a bug and needs to be fixed, but it is not a regression)\n                // model-columns must be converted to view-model columns.\n                const result = bracketGuides.map(g => {\n                    if (g.forWrappedLinesAfterColumn !== -1) {\n                        const p = this.modelLineProjections[viewLineInfo.modelLineNumber - 1].getViewPositionOfModelPosition(0, g.forWrappedLinesAfterColumn);\n                        if (p.lineNumber >= viewLineInfo.modelLineWrappedLineIdx) {\n                            return undefined;\n                        }\n                    }\n                    if (g.forWrappedLinesBeforeOrAtColumn !== -1) {\n                        const p = this.modelLineProjections[viewLineInfo.modelLineNumber - 1].getViewPositionOfModelPosition(0, g.forWrappedLinesBeforeOrAtColumn);\n                        if (p.lineNumber < viewLineInfo.modelLineWrappedLineIdx) {\n                            return undefined;\n                        }\n                    }\n                    if (!g.horizontalLine) {\n                        return g;\n                    }\n                    let column = -1;\n                    if (g.column !== -1) {\n                        const p = this.modelLineProjections[viewLineInfo.modelLineNumber - 1].getViewPositionOfModelPosition(0, g.column);\n                        if (p.lineNumber === viewLineInfo.modelLineWrappedLineIdx) {\n                            column = p.column;\n                        }\n                        else if (p.lineNumber < viewLineInfo.modelLineWrappedLineIdx) {\n                            column = this.getMinColumnOfViewLine(viewLineInfo);\n                        }\n                        else if (p.lineNumber > viewLineInfo.modelLineWrappedLineIdx) {\n                            return undefined;\n                        }\n                    }\n                    const viewPosition = this.convertModelPositionToViewPosition(viewLineInfo.modelLineNumber, g.horizontalLine.endColumn);\n                    const p = this.modelLineProjections[viewLineInfo.modelLineNumber - 1].getViewPositionOfModelPosition(0, g.horizontalLine.endColumn);\n                    if (p.lineNumber === viewLineInfo.modelLineWrappedLineIdx) {\n                        return new IndentGuide(g.visibleColumn, column, g.className, new IndentGuideHorizontalLine(g.horizontalLine.top, viewPosition.column), -1, -1);\n                    }\n                    else if (p.lineNumber < viewLineInfo.modelLineWrappedLineIdx) {\n                        return undefined;\n                    }\n                    else {\n                        if (g.visibleColumn !== -1) {\n                            // Don't repeat horizontal lines that use visibleColumn for unrelated lines.\n                            return undefined;\n                        }\n                        return new IndentGuide(g.visibleColumn, column, g.className, new IndentGuideHorizontalLine(g.horizontalLine.top, this.getMaxColumnOfViewLine(viewLineInfo)), -1, -1);\n                    }\n                });\n                resultPerViewLine.push(result.filter((r) => !!r));\n            }\n        }\n        return resultPerViewLine;\n    }\n    getViewLinesIndentGuides(viewStartLineNumber, viewEndLineNumber) {\n        // TODO: Use the same code as in `getViewLinesBracketGuides`.\n        // Future TODO: Merge with `getViewLinesBracketGuides`.\n        // However, this requires more refactoring of indent guides.\n        viewStartLineNumber = this._toValidViewLineNumber(viewStartLineNumber);\n        viewEndLineNumber = this._toValidViewLineNumber(viewEndLineNumber);\n        const modelStart = this.convertViewPositionToModelPosition(viewStartLineNumber, this.getViewLineMinColumn(viewStartLineNumber));\n        const modelEnd = this.convertViewPositionToModelPosition(viewEndLineNumber, this.getViewLineMaxColumn(viewEndLineNumber));\n        let result = [];\n        const resultRepeatCount = [];\n        const resultRepeatOption = [];\n        const modelStartLineIndex = modelStart.lineNumber - 1;\n        const modelEndLineIndex = modelEnd.lineNumber - 1;\n        let reqStart = null;\n        for (let modelLineIndex = modelStartLineIndex; modelLineIndex <= modelEndLineIndex; modelLineIndex++) {\n            const line = this.modelLineProjections[modelLineIndex];\n            if (line.isVisible()) {\n                const viewLineStartIndex = line.getViewLineNumberOfModelPosition(0, modelLineIndex === modelStartLineIndex ? modelStart.column : 1);\n                const viewLineEndIndex = line.getViewLineNumberOfModelPosition(0, this.model.getLineMaxColumn(modelLineIndex + 1));\n                const count = viewLineEndIndex - viewLineStartIndex + 1;\n                let option = 0 /* IndentGuideRepeatOption.BlockNone */;\n                if (count > 1 && line.getViewLineMinColumn(this.model, modelLineIndex + 1, viewLineEndIndex) === 1) {\n                    // wrapped lines should block indent guides\n                    option = (viewLineStartIndex === 0 ? 1 /* IndentGuideRepeatOption.BlockSubsequent */ : 2 /* IndentGuideRepeatOption.BlockAll */);\n                }\n                resultRepeatCount.push(count);\n                resultRepeatOption.push(option);\n                // merge into previous request\n                if (reqStart === null) {\n                    reqStart = new Position(modelLineIndex + 1, 0);\n                }\n            }\n            else {\n                // hit invisible line => flush request\n                if (reqStart !== null) {\n                    result = result.concat(this.model.guides.getLinesIndentGuides(reqStart.lineNumber, modelLineIndex));\n                    reqStart = null;\n                }\n            }\n        }\n        if (reqStart !== null) {\n            result = result.concat(this.model.guides.getLinesIndentGuides(reqStart.lineNumber, modelEnd.lineNumber));\n            reqStart = null;\n        }\n        const viewLineCount = viewEndLineNumber - viewStartLineNumber + 1;\n        const viewIndents = new Array(viewLineCount);\n        let currIndex = 0;\n        for (let i = 0, len = result.length; i < len; i++) {\n            let value = result[i];\n            const count = Math.min(viewLineCount - currIndex, resultRepeatCount[i]);\n            const option = resultRepeatOption[i];\n            let blockAtIndex;\n            if (option === 2 /* IndentGuideRepeatOption.BlockAll */) {\n                blockAtIndex = 0;\n            }\n            else if (option === 1 /* IndentGuideRepeatOption.BlockSubsequent */) {\n                blockAtIndex = 1;\n            }\n            else {\n                blockAtIndex = count;\n            }\n            for (let j = 0; j < count; j++) {\n                if (j === blockAtIndex) {\n                    value = 0;\n                }\n                viewIndents[currIndex++] = value;\n            }\n        }\n        return viewIndents;\n    }\n    getViewLineContent(viewLineNumber) {\n        const info = this.getViewLineInfo(viewLineNumber);\n        return this.modelLineProjections[info.modelLineNumber - 1].getViewLineContent(this.model, info.modelLineNumber, info.modelLineWrappedLineIdx);\n    }\n    getViewLineLength(viewLineNumber) {\n        const info = this.getViewLineInfo(viewLineNumber);\n        return this.modelLineProjections[info.modelLineNumber - 1].getViewLineLength(this.model, info.modelLineNumber, info.modelLineWrappedLineIdx);\n    }\n    getViewLineMinColumn(viewLineNumber) {\n        const info = this.getViewLineInfo(viewLineNumber);\n        return this.modelLineProjections[info.modelLineNumber - 1].getViewLineMinColumn(this.model, info.modelLineNumber, info.modelLineWrappedLineIdx);\n    }\n    getViewLineMaxColumn(viewLineNumber) {\n        const info = this.getViewLineInfo(viewLineNumber);\n        return this.modelLineProjections[info.modelLineNumber - 1].getViewLineMaxColumn(this.model, info.modelLineNumber, info.modelLineWrappedLineIdx);\n    }\n    getViewLineData(viewLineNumber) {\n        const info = this.getViewLineInfo(viewLineNumber);\n        return this.modelLineProjections[info.modelLineNumber - 1].getViewLineData(this.model, info.modelLineNumber, info.modelLineWrappedLineIdx);\n    }\n    getViewLinesData(viewStartLineNumber, viewEndLineNumber, needed) {\n        viewStartLineNumber = this._toValidViewLineNumber(viewStartLineNumber);\n        viewEndLineNumber = this._toValidViewLineNumber(viewEndLineNumber);\n        const start = this.projectedModelLineLineCounts.getIndexOf(viewStartLineNumber - 1);\n        let viewLineNumber = viewStartLineNumber;\n        const startModelLineIndex = start.index;\n        const startRemainder = start.remainder;\n        const result = [];\n        for (let modelLineIndex = startModelLineIndex, len = this.model.getLineCount(); modelLineIndex < len; modelLineIndex++) {\n            const line = this.modelLineProjections[modelLineIndex];\n            if (!line.isVisible()) {\n                continue;\n            }\n            const fromViewLineIndex = (modelLineIndex === startModelLineIndex ? startRemainder : 0);\n            let remainingViewLineCount = line.getViewLineCount() - fromViewLineIndex;\n            let lastLine = false;\n            if (viewLineNumber + remainingViewLineCount > viewEndLineNumber) {\n                lastLine = true;\n                remainingViewLineCount = viewEndLineNumber - viewLineNumber + 1;\n            }\n            line.getViewLinesData(this.model, modelLineIndex + 1, fromViewLineIndex, remainingViewLineCount, viewLineNumber - viewStartLineNumber, needed, result);\n            viewLineNumber += remainingViewLineCount;\n            if (lastLine) {\n                break;\n            }\n        }\n        return result;\n    }\n    validateViewPosition(viewLineNumber, viewColumn, expectedModelPosition) {\n        viewLineNumber = this._toValidViewLineNumber(viewLineNumber);\n        const r = this.projectedModelLineLineCounts.getIndexOf(viewLineNumber - 1);\n        const lineIndex = r.index;\n        const remainder = r.remainder;\n        const line = this.modelLineProjections[lineIndex];\n        const minColumn = line.getViewLineMinColumn(this.model, lineIndex + 1, remainder);\n        const maxColumn = line.getViewLineMaxColumn(this.model, lineIndex + 1, remainder);\n        if (viewColumn < minColumn) {\n            viewColumn = minColumn;\n        }\n        if (viewColumn > maxColumn) {\n            viewColumn = maxColumn;\n        }\n        const computedModelColumn = line.getModelColumnOfViewPosition(remainder, viewColumn);\n        const computedModelPosition = this.model.validatePosition(new Position(lineIndex + 1, computedModelColumn));\n        if (computedModelPosition.equals(expectedModelPosition)) {\n            return new Position(viewLineNumber, viewColumn);\n        }\n        return this.convertModelPositionToViewPosition(expectedModelPosition.lineNumber, expectedModelPosition.column);\n    }\n    validateViewRange(viewRange, expectedModelRange) {\n        const validViewStart = this.validateViewPosition(viewRange.startLineNumber, viewRange.startColumn, expectedModelRange.getStartPosition());\n        const validViewEnd = this.validateViewPosition(viewRange.endLineNumber, viewRange.endColumn, expectedModelRange.getEndPosition());\n        return new Range(validViewStart.lineNumber, validViewStart.column, validViewEnd.lineNumber, validViewEnd.column);\n    }\n    convertViewPositionToModelPosition(viewLineNumber, viewColumn) {\n        const info = this.getViewLineInfo(viewLineNumber);\n        const inputColumn = this.modelLineProjections[info.modelLineNumber - 1].getModelColumnOfViewPosition(info.modelLineWrappedLineIdx, viewColumn);\n        // console.log('out -> in ' + viewLineNumber + ',' + viewColumn + ' ===> ' + (lineIndex+1) + ',' + inputColumn);\n        return this.model.validatePosition(new Position(info.modelLineNumber, inputColumn));\n    }\n    convertViewRangeToModelRange(viewRange) {\n        const start = this.convertViewPositionToModelPosition(viewRange.startLineNumber, viewRange.startColumn);\n        const end = this.convertViewPositionToModelPosition(viewRange.endLineNumber, viewRange.endColumn);\n        return new Range(start.lineNumber, start.column, end.lineNumber, end.column);\n    }\n    convertModelPositionToViewPosition(_modelLineNumber, _modelColumn, affinity = 2 /* PositionAffinity.None */, allowZeroLineNumber = false, belowHiddenRanges = false) {\n        const validPosition = this.model.validatePosition(new Position(_modelLineNumber, _modelColumn));\n        const inputLineNumber = validPosition.lineNumber;\n        const inputColumn = validPosition.column;\n        let lineIndex = inputLineNumber - 1, lineIndexChanged = false;\n        if (belowHiddenRanges) {\n            while (lineIndex < this.modelLineProjections.length && !this.modelLineProjections[lineIndex].isVisible()) {\n                lineIndex++;\n                lineIndexChanged = true;\n            }\n        }\n        else {\n            while (lineIndex > 0 && !this.modelLineProjections[lineIndex].isVisible()) {\n                lineIndex--;\n                lineIndexChanged = true;\n            }\n        }\n        if (lineIndex === 0 && !this.modelLineProjections[lineIndex].isVisible()) {\n            // Could not reach a real line\n            // console.log('in -> out ' + inputLineNumber + ',' + inputColumn + ' ===> ' + 1 + ',' + 1);\n            // TODO@alexdima@hediet this isn't soo pretty\n            return new Position(allowZeroLineNumber ? 0 : 1, 1);\n        }\n        const deltaLineNumber = 1 + this.projectedModelLineLineCounts.getPrefixSum(lineIndex);\n        let r;\n        if (lineIndexChanged) {\n            if (belowHiddenRanges) {\n                r = this.modelLineProjections[lineIndex].getViewPositionOfModelPosition(deltaLineNumber, 1, affinity);\n            }\n            else {\n                r = this.modelLineProjections[lineIndex].getViewPositionOfModelPosition(deltaLineNumber, this.model.getLineMaxColumn(lineIndex + 1), affinity);\n            }\n        }\n        else {\n            r = this.modelLineProjections[inputLineNumber - 1].getViewPositionOfModelPosition(deltaLineNumber, inputColumn, affinity);\n        }\n        // console.log('in -> out ' + inputLineNumber + ',' + inputColumn + ' ===> ' + r.lineNumber + ',' + r);\n        return r;\n    }\n    /**\n     * @param affinity The affinity in case of an empty range. Has no effect for non-empty ranges.\n    */\n    convertModelRangeToViewRange(modelRange, affinity = 0 /* PositionAffinity.Left */) {\n        if (modelRange.isEmpty()) {\n            const start = this.convertModelPositionToViewPosition(modelRange.startLineNumber, modelRange.startColumn, affinity);\n            return Range.fromPositions(start);\n        }\n        else {\n            const start = this.convertModelPositionToViewPosition(modelRange.startLineNumber, modelRange.startColumn, 1 /* PositionAffinity.Right */);\n            const end = this.convertModelPositionToViewPosition(modelRange.endLineNumber, modelRange.endColumn, 0 /* PositionAffinity.Left */);\n            return new Range(start.lineNumber, start.column, end.lineNumber, end.column);\n        }\n    }\n    getViewLineNumberOfModelPosition(modelLineNumber, modelColumn) {\n        let lineIndex = modelLineNumber - 1;\n        if (this.modelLineProjections[lineIndex].isVisible()) {\n            // this model line is visible\n            const deltaLineNumber = 1 + this.projectedModelLineLineCounts.getPrefixSum(lineIndex);\n            return this.modelLineProjections[lineIndex].getViewLineNumberOfModelPosition(deltaLineNumber, modelColumn);\n        }\n        // this model line is not visible\n        while (lineIndex > 0 && !this.modelLineProjections[lineIndex].isVisible()) {\n            lineIndex--;\n        }\n        if (lineIndex === 0 && !this.modelLineProjections[lineIndex].isVisible()) {\n            // Could not reach a real line\n            return 1;\n        }\n        const deltaLineNumber = 1 + this.projectedModelLineLineCounts.getPrefixSum(lineIndex);\n        return this.modelLineProjections[lineIndex].getViewLineNumberOfModelPosition(deltaLineNumber, this.model.getLineMaxColumn(lineIndex + 1));\n    }\n    getDecorationsInRange(range, ownerId, filterOutValidation, onlyMinimapDecorations, onlyMarginDecorations) {\n        const modelStart = this.convertViewPositionToModelPosition(range.startLineNumber, range.startColumn);\n        const modelEnd = this.convertViewPositionToModelPosition(range.endLineNumber, range.endColumn);\n        if (modelEnd.lineNumber - modelStart.lineNumber <= range.endLineNumber - range.startLineNumber) {\n            // most likely there are no hidden lines => fast path\n            // fetch decorations from column 1 to cover the case of wrapped lines that have whole line decorations at column 1\n            return this.model.getDecorationsInRange(new Range(modelStart.lineNumber, 1, modelEnd.lineNumber, modelEnd.column), ownerId, filterOutValidation, onlyMinimapDecorations, onlyMarginDecorations);\n        }\n        let result = [];\n        const modelStartLineIndex = modelStart.lineNumber - 1;\n        const modelEndLineIndex = modelEnd.lineNumber - 1;\n        let reqStart = null;\n        for (let modelLineIndex = modelStartLineIndex; modelLineIndex <= modelEndLineIndex; modelLineIndex++) {\n            const line = this.modelLineProjections[modelLineIndex];\n            if (line.isVisible()) {\n                // merge into previous request\n                if (reqStart === null) {\n                    reqStart = new Position(modelLineIndex + 1, modelLineIndex === modelStartLineIndex ? modelStart.column : 1);\n                }\n            }\n            else {\n                // hit invisible line => flush request\n                if (reqStart !== null) {\n                    const maxLineColumn = this.model.getLineMaxColumn(modelLineIndex);\n                    result = result.concat(this.model.getDecorationsInRange(new Range(reqStart.lineNumber, reqStart.column, modelLineIndex, maxLineColumn), ownerId, filterOutValidation, onlyMinimapDecorations));\n                    reqStart = null;\n                }\n            }\n        }\n        if (reqStart !== null) {\n            result = result.concat(this.model.getDecorationsInRange(new Range(reqStart.lineNumber, reqStart.column, modelEnd.lineNumber, modelEnd.column), ownerId, filterOutValidation, onlyMinimapDecorations));\n            reqStart = null;\n        }\n        result.sort((a, b) => {\n            const res = Range.compareRangesUsingStarts(a.range, b.range);\n            if (res === 0) {\n                if (a.id < b.id) {\n                    return -1;\n                }\n                if (a.id > b.id) {\n                    return 1;\n                }\n                return 0;\n            }\n            return res;\n        });\n        // Eliminate duplicate decorations that might have intersected our visible ranges multiple times\n        const finalResult = [];\n        let finalResultLen = 0;\n        let prevDecId = null;\n        for (const dec of result) {\n            const decId = dec.id;\n            if (prevDecId === decId) {\n                // skip\n                continue;\n            }\n            prevDecId = decId;\n            finalResult[finalResultLen++] = dec;\n        }\n        return finalResult;\n    }\n    getInjectedTextAt(position) {\n        const info = this.getViewLineInfo(position.lineNumber);\n        return this.modelLineProjections[info.modelLineNumber - 1].getInjectedTextAt(info.modelLineWrappedLineIdx, position.column);\n    }\n    normalizePosition(position, affinity) {\n        const info = this.getViewLineInfo(position.lineNumber);\n        return this.modelLineProjections[info.modelLineNumber - 1].normalizePosition(info.modelLineWrappedLineIdx, position, affinity);\n    }\n    getLineIndentColumn(lineNumber) {\n        const info = this.getViewLineInfo(lineNumber);\n        if (info.modelLineWrappedLineIdx === 0) {\n            return this.model.getLineIndentColumn(info.modelLineNumber);\n        }\n        // wrapped lines have no indentation.\n        // We deliberately don't handle the case that indentation is wrapped\n        // to avoid two view lines reporting indentation for the very same model line.\n        return 0;\n    }\n}\n/**\n * Overlapping unsorted ranges:\n * [   )      [ )       [  )\n *    [    )      [       )\n * ->\n * Non overlapping sorted ranges:\n * [       )  [ ) [        )\n *\n * Note: This function only considers line information! Columns are ignored.\n*/\nfunction normalizeLineRanges(ranges) {\n    if (ranges.length === 0) {\n        return [];\n    }\n    const sortedRanges = ranges.slice();\n    sortedRanges.sort(Range.compareRangesUsingStarts);\n    const result = [];\n    let currentRangeStart = sortedRanges[0].startLineNumber;\n    let currentRangeEnd = sortedRanges[0].endLineNumber;\n    for (let i = 1, len = sortedRanges.length; i < len; i++) {\n        const range = sortedRanges[i];\n        if (range.startLineNumber > currentRangeEnd + 1) {\n            result.push(new Range(currentRangeStart, 1, currentRangeEnd, 1));\n            currentRangeStart = range.startLineNumber;\n            currentRangeEnd = range.endLineNumber;\n        }\n        else if (range.endLineNumber > currentRangeEnd) {\n            currentRangeEnd = range.endLineNumber;\n        }\n    }\n    result.push(new Range(currentRangeStart, 1, currentRangeEnd, 1));\n    return result;\n}\n/**\n * Represents a view line. Can be used to efficiently query more information about it.\n */\nclass ViewLineInfo {\n    constructor(modelLineNumber, modelLineWrappedLineIdx) {\n        this.modelLineNumber = modelLineNumber;\n        this.modelLineWrappedLineIdx = modelLineWrappedLineIdx;\n    }\n}\n/**\n * A list of view lines that have a contiguous span in the model.\n*/\nclass ViewLineInfoGroupedByModelRange {\n    constructor(modelRange, viewLines) {\n        this.modelRange = modelRange;\n        this.viewLines = viewLines;\n    }\n}\nclass CoordinatesConverter {\n    constructor(lines) {\n        this._lines = lines;\n    }\n    // View -> Model conversion and related methods\n    convertViewPositionToModelPosition(viewPosition) {\n        return this._lines.convertViewPositionToModelPosition(viewPosition.lineNumber, viewPosition.column);\n    }\n    convertViewRangeToModelRange(viewRange) {\n        return this._lines.convertViewRangeToModelRange(viewRange);\n    }\n    validateViewPosition(viewPosition, expectedModelPosition) {\n        return this._lines.validateViewPosition(viewPosition.lineNumber, viewPosition.column, expectedModelPosition);\n    }\n    validateViewRange(viewRange, expectedModelRange) {\n        return this._lines.validateViewRange(viewRange, expectedModelRange);\n    }\n    // Model -> View conversion and related methods\n    convertModelPositionToViewPosition(modelPosition, affinity, allowZero, belowHiddenRanges) {\n        return this._lines.convertModelPositionToViewPosition(modelPosition.lineNumber, modelPosition.column, affinity, allowZero, belowHiddenRanges);\n    }\n    convertModelRangeToViewRange(modelRange, affinity) {\n        return this._lines.convertModelRangeToViewRange(modelRange, affinity);\n    }\n    modelPositionIsVisible(modelPosition) {\n        return this._lines.modelPositionIsVisible(modelPosition.lineNumber, modelPosition.column);\n    }\n    getModelLineViewLineCount(modelLineNumber) {\n        return this._lines.getModelLineViewLineCount(modelLineNumber);\n    }\n    getViewLineNumberOfModelPosition(modelLineNumber, modelColumn) {\n        return this._lines.getViewLineNumberOfModelPosition(modelLineNumber, modelColumn);\n    }\n}\nexport class ViewModelLinesFromModelAsIs {\n    constructor(model) {\n        this.model = model;\n    }\n    dispose() {\n    }\n    createCoordinatesConverter() {\n        return new IdentityCoordinatesConverter(this);\n    }\n    getHiddenAreas() {\n        return [];\n    }\n    setHiddenAreas(_ranges) {\n        return false;\n    }\n    setTabSize(_newTabSize) {\n        return false;\n    }\n    setWrappingSettings(_fontInfo, _wrappingStrategy, _wrappingColumn, _wrappingIndent) {\n        return false;\n    }\n    createLineBreaksComputer() {\n        const result = [];\n        return {\n            addRequest: (lineText, injectedText, previousLineBreakData) => {\n                result.push(null);\n            },\n            finalize: () => {\n                return result;\n            }\n        };\n    }\n    onModelFlushed() {\n    }\n    onModelLinesDeleted(_versionId, fromLineNumber, toLineNumber) {\n        return new viewEvents.ViewLinesDeletedEvent(fromLineNumber, toLineNumber);\n    }\n    onModelLinesInserted(_versionId, fromLineNumber, toLineNumber, lineBreaks) {\n        return new viewEvents.ViewLinesInsertedEvent(fromLineNumber, toLineNumber);\n    }\n    onModelLineChanged(_versionId, lineNumber, lineBreakData) {\n        return [false, new viewEvents.ViewLinesChangedEvent(lineNumber, 1), null, null];\n    }\n    acceptVersionId(_versionId) {\n    }\n    getViewLineCount() {\n        return this.model.getLineCount();\n    }\n    getActiveIndentGuide(viewLineNumber, _minLineNumber, _maxLineNumber) {\n        return {\n            startLineNumber: viewLineNumber,\n            endLineNumber: viewLineNumber,\n            indent: 0\n        };\n    }\n    getViewLinesBracketGuides(startLineNumber, endLineNumber, activePosition) {\n        return new Array(endLineNumber - startLineNumber + 1).fill([]);\n    }\n    getViewLinesIndentGuides(viewStartLineNumber, viewEndLineNumber) {\n        const viewLineCount = viewEndLineNumber - viewStartLineNumber + 1;\n        const result = new Array(viewLineCount);\n        for (let i = 0; i < viewLineCount; i++) {\n            result[i] = 0;\n        }\n        return result;\n    }\n    getViewLineContent(viewLineNumber) {\n        return this.model.getLineContent(viewLineNumber);\n    }\n    getViewLineLength(viewLineNumber) {\n        return this.model.getLineLength(viewLineNumber);\n    }\n    getViewLineMinColumn(viewLineNumber) {\n        return this.model.getLineMinColumn(viewLineNumber);\n    }\n    getViewLineMaxColumn(viewLineNumber) {\n        return this.model.getLineMaxColumn(viewLineNumber);\n    }\n    getViewLineData(viewLineNumber) {\n        const lineTokens = this.model.tokenization.getLineTokens(viewLineNumber);\n        const lineContent = lineTokens.getLineContent();\n        return new ViewLineData(lineContent, false, 1, lineContent.length + 1, 0, lineTokens.inflate(), null);\n    }\n    getViewLinesData(viewStartLineNumber, viewEndLineNumber, needed) {\n        const lineCount = this.model.getLineCount();\n        viewStartLineNumber = Math.min(Math.max(1, viewStartLineNumber), lineCount);\n        viewEndLineNumber = Math.min(Math.max(1, viewEndLineNumber), lineCount);\n        const result = [];\n        for (let lineNumber = viewStartLineNumber; lineNumber <= viewEndLineNumber; lineNumber++) {\n            const idx = lineNumber - viewStartLineNumber;\n            result[idx] = needed[idx] ? this.getViewLineData(lineNumber) : null;\n        }\n        return result;\n    }\n    getDecorationsInRange(range, ownerId, filterOutValidation, onlyMinimapDecorations, onlyMarginDecorations) {\n        return this.model.getDecorationsInRange(range, ownerId, filterOutValidation, onlyMinimapDecorations, onlyMarginDecorations);\n    }\n    normalizePosition(position, affinity) {\n        return this.model.normalizePosition(position, affinity);\n    }\n    getLineIndentColumn(lineNumber) {\n        return this.model.getLineIndentColumn(lineNumber);\n    }\n    getInjectedTextAt(position) {\n        // Identity lines collection does not support injected text.\n        return null;\n    }\n}\nclass IdentityCoordinatesConverter {\n    constructor(lines) {\n        this._lines = lines;\n    }\n    _validPosition(pos) {\n        return this._lines.model.validatePosition(pos);\n    }\n    _validRange(range) {\n        return this._lines.model.validateRange(range);\n    }\n    // View -> Model conversion and related methods\n    convertViewPositionToModelPosition(viewPosition) {\n        return this._validPosition(viewPosition);\n    }\n    convertViewRangeToModelRange(viewRange) {\n        return this._validRange(viewRange);\n    }\n    validateViewPosition(_viewPosition, expectedModelPosition) {\n        return this._validPosition(expectedModelPosition);\n    }\n    validateViewRange(_viewRange, expectedModelRange) {\n        return this._validRange(expectedModelRange);\n    }\n    // Model -> View conversion and related methods\n    convertModelPositionToViewPosition(modelPosition) {\n        return this._validPosition(modelPosition);\n    }\n    convertModelRangeToViewRange(modelRange) {\n        return this._validRange(modelRange);\n    }\n    modelPositionIsVisible(modelPosition) {\n        const lineCount = this._lines.model.getLineCount();\n        if (modelPosition.lineNumber < 1 || modelPosition.lineNumber > lineCount) {\n            // invalid arguments\n            return false;\n        }\n        return true;\n    }\n    getModelLineViewLineCount(modelLineNumber) {\n        return 1;\n    }\n    getViewLineNumberOfModelPosition(modelLineNumber, modelColumn) {\n        return modelLineNumber;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/viewModel.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as arrays from '../../base/common/arrays.js';\nimport * as strings from '../../base/common/strings.js';\nimport { Range } from './core/range.js';\nexport class Viewport {\n    constructor(top, left, width, height) {\n        this._viewportBrand = undefined;\n        this.top = top | 0;\n        this.left = left | 0;\n        this.width = width | 0;\n        this.height = height | 0;\n    }\n}\nexport class MinimapLinesRenderingData {\n    constructor(tabSize, data) {\n        this.tabSize = tabSize;\n        this.data = data;\n    }\n}\nexport class ViewLineData {\n    constructor(content, continuesWithWrappedLine, minColumn, maxColumn, startVisibleColumn, tokens, inlineDecorations) {\n        this._viewLineDataBrand = undefined;\n        this.content = content;\n        this.continuesWithWrappedLine = continuesWithWrappedLine;\n        this.minColumn = minColumn;\n        this.maxColumn = maxColumn;\n        this.startVisibleColumn = startVisibleColumn;\n        this.tokens = tokens;\n        this.inlineDecorations = inlineDecorations;\n    }\n}\nexport class ViewLineRenderingData {\n    constructor(minColumn, maxColumn, content, continuesWithWrappedLine, mightContainRTL, mightContainNonBasicASCII, tokens, inlineDecorations, tabSize, startVisibleColumn) {\n        this.minColumn = minColumn;\n        this.maxColumn = maxColumn;\n        this.content = content;\n        this.continuesWithWrappedLine = continuesWithWrappedLine;\n        this.isBasicASCII = ViewLineRenderingData.isBasicASCII(content, mightContainNonBasicASCII);\n        this.containsRTL = ViewLineRenderingData.containsRTL(content, this.isBasicASCII, mightContainRTL);\n        this.tokens = tokens;\n        this.inlineDecorations = inlineDecorations;\n        this.tabSize = tabSize;\n        this.startVisibleColumn = startVisibleColumn;\n    }\n    static isBasicASCII(lineContent, mightContainNonBasicASCII) {\n        if (mightContainNonBasicASCII) {\n            return strings.isBasicASCII(lineContent);\n        }\n        return true;\n    }\n    static containsRTL(lineContent, isBasicASCII, mightContainRTL) {\n        if (!isBasicASCII && mightContainRTL) {\n            return strings.containsRTL(lineContent);\n        }\n        return false;\n    }\n}\nexport class InlineDecoration {\n    constructor(range, inlineClassName, type) {\n        this.range = range;\n        this.inlineClassName = inlineClassName;\n        this.type = type;\n    }\n}\nexport class SingleLineInlineDecoration {\n    constructor(startOffset, endOffset, inlineClassName, inlineClassNameAffectsLetterSpacing) {\n        this.startOffset = startOffset;\n        this.endOffset = endOffset;\n        this.inlineClassName = inlineClassName;\n        this.inlineClassNameAffectsLetterSpacing = inlineClassNameAffectsLetterSpacing;\n    }\n    toInlineDecoration(lineNumber) {\n        return new InlineDecoration(new Range(lineNumber, this.startOffset + 1, lineNumber, this.endOffset + 1), this.inlineClassName, this.inlineClassNameAffectsLetterSpacing ? 3 /* InlineDecorationType.RegularAffectingLetterSpacing */ : 0 /* InlineDecorationType.Regular */);\n    }\n}\nexport class ViewModelDecoration {\n    constructor(range, options) {\n        this._viewModelDecorationBrand = undefined;\n        this.range = range;\n        this.options = options;\n    }\n}\nexport class OverviewRulerDecorationsGroup {\n    constructor(color, zIndex, \n    /**\n     * Decorations are encoded in a number array using the following scheme:\n     *  - 3*i = lane\n     *  - 3*i+1 = startLineNumber\n     *  - 3*i+2 = endLineNumber\n     */\n    data) {\n        this.color = color;\n        this.zIndex = zIndex;\n        this.data = data;\n    }\n    static compareByRenderingProps(a, b) {\n        if (a.zIndex === b.zIndex) {\n            if (a.color < b.color) {\n                return -1;\n            }\n            if (a.color > b.color) {\n                return 1;\n            }\n            return 0;\n        }\n        return a.zIndex - b.zIndex;\n    }\n    static equals(a, b) {\n        return (a.color === b.color\n            && a.zIndex === b.zIndex\n            && arrays.equals(a.data, b.data));\n    }\n    static equalsArr(a, b) {\n        return arrays.equals(a, b, OverviewRulerDecorationsGroup.equals);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/common/viewModelEventDispatcher.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../base/common/event.js';\nimport { Disposable } from '../../base/common/lifecycle.js';\nexport class ViewModelEventDispatcher extends Disposable {\n    constructor() {\n        super();\n        this._onEvent = this._register(new Emitter());\n        this.onEvent = this._onEvent.event;\n        this._eventHandlers = [];\n        this._viewEventQueue = null;\n        this._isConsumingViewEventQueue = false;\n        this._collector = null;\n        this._collectorCnt = 0;\n        this._outgoingEvents = [];\n    }\n    emitOutgoingEvent(e) {\n        this._addOutgoingEvent(e);\n        this._emitOutgoingEvents();\n    }\n    _addOutgoingEvent(e) {\n        for (let i = 0, len = this._outgoingEvents.length; i < len; i++) {\n            const mergeResult = (this._outgoingEvents[i].kind === e.kind ? this._outgoingEvents[i].attemptToMerge(e) : null);\n            if (mergeResult) {\n                this._outgoingEvents[i] = mergeResult;\n                return;\n            }\n        }\n        // not merged\n        this._outgoingEvents.push(e);\n    }\n    _emitOutgoingEvents() {\n        while (this._outgoingEvents.length > 0) {\n            if (this._collector || this._isConsumingViewEventQueue) {\n                // right now collecting or emitting view events, so let's postpone emitting\n                return;\n            }\n            const event = this._outgoingEvents.shift();\n            if (event.isNoOp()) {\n                continue;\n            }\n            this._onEvent.fire(event);\n        }\n    }\n    addViewEventHandler(eventHandler) {\n        for (let i = 0, len = this._eventHandlers.length; i < len; i++) {\n            if (this._eventHandlers[i] === eventHandler) {\n                console.warn('Detected duplicate listener in ViewEventDispatcher', eventHandler);\n            }\n        }\n        this._eventHandlers.push(eventHandler);\n    }\n    removeViewEventHandler(eventHandler) {\n        for (let i = 0; i < this._eventHandlers.length; i++) {\n            if (this._eventHandlers[i] === eventHandler) {\n                this._eventHandlers.splice(i, 1);\n                break;\n            }\n        }\n    }\n    beginEmitViewEvents() {\n        this._collectorCnt++;\n        if (this._collectorCnt === 1) {\n            this._collector = new ViewModelEventsCollector();\n        }\n        return this._collector;\n    }\n    endEmitViewEvents() {\n        this._collectorCnt--;\n        if (this._collectorCnt === 0) {\n            const outgoingEvents = this._collector.outgoingEvents;\n            const viewEvents = this._collector.viewEvents;\n            this._collector = null;\n            for (const outgoingEvent of outgoingEvents) {\n                this._addOutgoingEvent(outgoingEvent);\n            }\n            if (viewEvents.length > 0) {\n                this._emitMany(viewEvents);\n            }\n        }\n        this._emitOutgoingEvents();\n    }\n    emitSingleViewEvent(event) {\n        try {\n            const eventsCollector = this.beginEmitViewEvents();\n            eventsCollector.emitViewEvent(event);\n        }\n        finally {\n            this.endEmitViewEvents();\n        }\n    }\n    _emitMany(events) {\n        if (this._viewEventQueue) {\n            this._viewEventQueue = this._viewEventQueue.concat(events);\n        }\n        else {\n            this._viewEventQueue = events;\n        }\n        if (!this._isConsumingViewEventQueue) {\n            this._consumeViewEventQueue();\n        }\n    }\n    _consumeViewEventQueue() {\n        try {\n            this._isConsumingViewEventQueue = true;\n            this._doConsumeQueue();\n        }\n        finally {\n            this._isConsumingViewEventQueue = false;\n        }\n    }\n    _doConsumeQueue() {\n        while (this._viewEventQueue) {\n            // Empty event queue, as events might come in while sending these off\n            const events = this._viewEventQueue;\n            this._viewEventQueue = null;\n            // Use a clone of the event handlers list, as they might remove themselves\n            const eventHandlers = this._eventHandlers.slice(0);\n            for (const eventHandler of eventHandlers) {\n                eventHandler.handleEvents(events);\n            }\n        }\n    }\n}\nexport class ViewModelEventsCollector {\n    constructor() {\n        this.viewEvents = [];\n        this.outgoingEvents = [];\n    }\n    emitViewEvent(event) {\n        this.viewEvents.push(event);\n    }\n    emitOutgoingEvent(e) {\n        this.outgoingEvents.push(e);\n    }\n}\nexport class ContentSizeChangedEvent {\n    constructor(oldContentWidth, oldContentHeight, contentWidth, contentHeight) {\n        this.kind = 0 /* OutgoingViewModelEventKind.ContentSizeChanged */;\n        this._oldContentWidth = oldContentWidth;\n        this._oldContentHeight = oldContentHeight;\n        this.contentWidth = contentWidth;\n        this.contentHeight = contentHeight;\n        this.contentWidthChanged = (this._oldContentWidth !== this.contentWidth);\n        this.contentHeightChanged = (this._oldContentHeight !== this.contentHeight);\n    }\n    isNoOp() {\n        return (!this.contentWidthChanged && !this.contentHeightChanged);\n    }\n    attemptToMerge(other) {\n        if (other.kind !== this.kind) {\n            return null;\n        }\n        return new ContentSizeChangedEvent(this._oldContentWidth, this._oldContentHeight, other.contentWidth, other.contentHeight);\n    }\n}\nexport class FocusChangedEvent {\n    constructor(oldHasFocus, hasFocus) {\n        this.kind = 1 /* OutgoingViewModelEventKind.FocusChanged */;\n        this.oldHasFocus = oldHasFocus;\n        this.hasFocus = hasFocus;\n    }\n    isNoOp() {\n        return (this.oldHasFocus === this.hasFocus);\n    }\n    attemptToMerge(other) {\n        if (other.kind !== this.kind) {\n            return null;\n        }\n        return new FocusChangedEvent(this.oldHasFocus, other.hasFocus);\n    }\n}\nexport class ScrollChangedEvent {\n    constructor(oldScrollWidth, oldScrollLeft, oldScrollHeight, oldScrollTop, scrollWidth, scrollLeft, scrollHeight, scrollTop) {\n        this.kind = 2 /* OutgoingViewModelEventKind.ScrollChanged */;\n        this._oldScrollWidth = oldScrollWidth;\n        this._oldScrollLeft = oldScrollLeft;\n        this._oldScrollHeight = oldScrollHeight;\n        this._oldScrollTop = oldScrollTop;\n        this.scrollWidth = scrollWidth;\n        this.scrollLeft = scrollLeft;\n        this.scrollHeight = scrollHeight;\n        this.scrollTop = scrollTop;\n        this.scrollWidthChanged = (this._oldScrollWidth !== this.scrollWidth);\n        this.scrollLeftChanged = (this._oldScrollLeft !== this.scrollLeft);\n        this.scrollHeightChanged = (this._oldScrollHeight !== this.scrollHeight);\n        this.scrollTopChanged = (this._oldScrollTop !== this.scrollTop);\n    }\n    isNoOp() {\n        return (!this.scrollWidthChanged && !this.scrollLeftChanged && !this.scrollHeightChanged && !this.scrollTopChanged);\n    }\n    attemptToMerge(other) {\n        if (other.kind !== this.kind) {\n            return null;\n        }\n        return new ScrollChangedEvent(this._oldScrollWidth, this._oldScrollLeft, this._oldScrollHeight, this._oldScrollTop, other.scrollWidth, other.scrollLeft, other.scrollHeight, other.scrollTop);\n    }\n}\nexport class ViewZonesChangedEvent {\n    constructor() {\n        this.kind = 3 /* OutgoingViewModelEventKind.ViewZonesChanged */;\n    }\n    isNoOp() {\n        return false;\n    }\n    attemptToMerge(other) {\n        if (other.kind !== this.kind) {\n            return null;\n        }\n        return this;\n    }\n}\nexport class HiddenAreasChangedEvent {\n    constructor() {\n        this.kind = 4 /* OutgoingViewModelEventKind.HiddenAreasChanged */;\n    }\n    isNoOp() {\n        return false;\n    }\n    attemptToMerge(other) {\n        if (other.kind !== this.kind) {\n            return null;\n        }\n        return this;\n    }\n}\nexport class CursorStateChangedEvent {\n    constructor(oldSelections, selections, oldModelVersionId, modelVersionId, source, reason, reachedMaxCursorCount) {\n        this.kind = 6 /* OutgoingViewModelEventKind.CursorStateChanged */;\n        this.oldSelections = oldSelections;\n        this.selections = selections;\n        this.oldModelVersionId = oldModelVersionId;\n        this.modelVersionId = modelVersionId;\n        this.source = source;\n        this.reason = reason;\n        this.reachedMaxCursorCount = reachedMaxCursorCount;\n    }\n    static _selectionsAreEqual(a, b) {\n        if (!a && !b) {\n            return true;\n        }\n        if (!a || !b) {\n            return false;\n        }\n        const aLen = a.length;\n        const bLen = b.length;\n        if (aLen !== bLen) {\n            return false;\n        }\n        for (let i = 0; i < aLen; i++) {\n            if (!a[i].equalsSelection(b[i])) {\n                return false;\n            }\n        }\n        return true;\n    }\n    isNoOp() {\n        return (CursorStateChangedEvent._selectionsAreEqual(this.oldSelections, this.selections)\n            && this.oldModelVersionId === this.modelVersionId);\n    }\n    attemptToMerge(other) {\n        if (other.kind !== this.kind) {\n            return null;\n        }\n        return new CursorStateChangedEvent(this.oldSelections, other.selections, this.oldModelVersionId, other.modelVersionId, other.source, other.reason, this.reachedMaxCursorCount || other.reachedMaxCursorCount);\n    }\n}\nexport class ReadOnlyEditAttemptEvent {\n    constructor() {\n        this.kind = 5 /* OutgoingViewModelEventKind.ReadOnlyEditAttempt */;\n    }\n    isNoOp() {\n        return false;\n    }\n    attemptToMerge(other) {\n        if (other.kind !== this.kind) {\n            return null;\n        }\n        return this;\n    }\n}\nexport class ModelDecorationsChangedEvent {\n    constructor(event) {\n        this.event = event;\n        this.kind = 7 /* OutgoingViewModelEventKind.ModelDecorationsChanged */;\n    }\n    isNoOp() {\n        return false;\n    }\n    attemptToMerge(other) {\n        return null;\n    }\n}\nexport class ModelLanguageChangedEvent {\n    constructor(event) {\n        this.event = event;\n        this.kind = 8 /* OutgoingViewModelEventKind.ModelLanguageChanged */;\n    }\n    isNoOp() {\n        return false;\n    }\n    attemptToMerge(other) {\n        return null;\n    }\n}\nexport class ModelLanguageConfigurationChangedEvent {\n    constructor(event) {\n        this.event = event;\n        this.kind = 9 /* OutgoingViewModelEventKind.ModelLanguageConfigurationChanged */;\n    }\n    isNoOp() {\n        return false;\n    }\n    attemptToMerge(other) {\n        return null;\n    }\n}\nexport class ModelContentChangedEvent {\n    constructor(event) {\n        this.event = event;\n        this.kind = 10 /* OutgoingViewModelEventKind.ModelContentChanged */;\n    }\n    isNoOp() {\n        return false;\n    }\n    attemptToMerge(other) {\n        return null;\n    }\n}\nexport class ModelOptionsChangedEvent {\n    constructor(event) {\n        this.event = event;\n        this.kind = 11 /* OutgoingViewModelEventKind.ModelOptionsChanged */;\n    }\n    isNoOp() {\n        return false;\n    }\n    attemptToMerge(other) {\n        return null;\n    }\n}\nexport class ModelTokensChangedEvent {\n    constructor(event) {\n        this.event = event;\n        this.kind = 12 /* OutgoingViewModelEventKind.ModelTokensChanged */;\n    }\n    isNoOp() {\n        return false;\n    }\n    attemptToMerge(other) {\n        return null;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/anchorSelect/browser/anchorSelect.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .selection-anchor {\n\tbackground-color: #007ACC;\n\twidth: 2px !important;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/anchorSelect/browser/anchorSelect.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/anchorSelect/browser/anchorSelect.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar SelectionAnchorController_1;\nimport { alert } from '../../../../base/browser/ui/aria/aria.js';\nimport { MarkdownString } from '../../../../base/common/htmlContent.js';\nimport { KeyChord } from '../../../../base/common/keyCodes.js';\nimport './anchorSelect.css';\nimport { EditorAction, registerEditorAction, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { localize } from '../../../../nls.js';\nimport { IContextKeyService, RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nexport const SelectionAnchorSet = new RawContextKey('selectionAnchorSet', false);\nlet SelectionAnchorController = SelectionAnchorController_1 = class SelectionAnchorController {\n    static get(editor) {\n        return editor.getContribution(SelectionAnchorController_1.ID);\n    }\n    constructor(editor, contextKeyService) {\n        this.editor = editor;\n        this.selectionAnchorSetContextKey = SelectionAnchorSet.bindTo(contextKeyService);\n        this.modelChangeListener = editor.onDidChangeModel(() => this.selectionAnchorSetContextKey.reset());\n    }\n    setSelectionAnchor() {\n        if (this.editor.hasModel()) {\n            const position = this.editor.getPosition();\n            this.editor.changeDecorations((accessor) => {\n                if (this.decorationId) {\n                    accessor.removeDecoration(this.decorationId);\n                }\n                this.decorationId = accessor.addDecoration(Selection.fromPositions(position, position), {\n                    description: 'selection-anchor',\n                    stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n                    hoverMessage: new MarkdownString().appendText(localize('selectionAnchor', \"Selection Anchor\")),\n                    className: 'selection-anchor'\n                });\n            });\n            this.selectionAnchorSetContextKey.set(!!this.decorationId);\n            alert(localize('anchorSet', \"Anchor set at {0}:{1}\", position.lineNumber, position.column));\n        }\n    }\n    goToSelectionAnchor() {\n        if (this.editor.hasModel() && this.decorationId) {\n            const anchorPosition = this.editor.getModel().getDecorationRange(this.decorationId);\n            if (anchorPosition) {\n                this.editor.setPosition(anchorPosition.getStartPosition());\n            }\n        }\n    }\n    selectFromAnchorToCursor() {\n        if (this.editor.hasModel() && this.decorationId) {\n            const start = this.editor.getModel().getDecorationRange(this.decorationId);\n            if (start) {\n                const end = this.editor.getPosition();\n                this.editor.setSelection(Selection.fromPositions(start.getStartPosition(), end));\n                this.cancelSelectionAnchor();\n            }\n        }\n    }\n    cancelSelectionAnchor() {\n        if (this.decorationId) {\n            const decorationId = this.decorationId;\n            this.editor.changeDecorations((accessor) => {\n                accessor.removeDecoration(decorationId);\n                this.decorationId = undefined;\n            });\n            this.selectionAnchorSetContextKey.set(false);\n        }\n    }\n    dispose() {\n        this.cancelSelectionAnchor();\n        this.modelChangeListener.dispose();\n    }\n};\nSelectionAnchorController.ID = 'editor.contrib.selectionAnchorController';\nSelectionAnchorController = SelectionAnchorController_1 = __decorate([\n    __param(1, IContextKeyService)\n], SelectionAnchorController);\nclass SetSelectionAnchor extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.setSelectionAnchor',\n            label: localize('setSelectionAnchor', \"Set Selection Anchor\"),\n            alias: 'Set Selection Anchor',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 32 /* KeyCode.KeyB */),\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    async run(_accessor, editor) {\n        var _a;\n        (_a = SelectionAnchorController.get(editor)) === null || _a === void 0 ? void 0 : _a.setSelectionAnchor();\n    }\n}\nclass GoToSelectionAnchor extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.goToSelectionAnchor',\n            label: localize('goToSelectionAnchor', \"Go to Selection Anchor\"),\n            alias: 'Go to Selection Anchor',\n            precondition: SelectionAnchorSet,\n        });\n    }\n    async run(_accessor, editor) {\n        var _a;\n        (_a = SelectionAnchorController.get(editor)) === null || _a === void 0 ? void 0 : _a.goToSelectionAnchor();\n    }\n}\nclass SelectFromAnchorToCursor extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.selectFromAnchorToCursor',\n            label: localize('selectFromAnchorToCursor', \"Select from Anchor to Cursor\"),\n            alias: 'Select from Anchor to Cursor',\n            precondition: SelectionAnchorSet,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */),\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    async run(_accessor, editor) {\n        var _a;\n        (_a = SelectionAnchorController.get(editor)) === null || _a === void 0 ? void 0 : _a.selectFromAnchorToCursor();\n    }\n}\nclass CancelSelectionAnchor extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.cancelSelectionAnchor',\n            label: localize('cancelSelectionAnchor', \"Cancel Selection Anchor\"),\n            alias: 'Cancel Selection Anchor',\n            precondition: SelectionAnchorSet,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: 9 /* KeyCode.Escape */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    async run(_accessor, editor) {\n        var _a;\n        (_a = SelectionAnchorController.get(editor)) === null || _a === void 0 ? void 0 : _a.cancelSelectionAnchor();\n    }\n}\nregisterEditorContribution(SelectionAnchorController.ID, SelectionAnchorController, 4 /* EditorContributionInstantiation.Lazy */);\nregisterEditorAction(SetSelectionAnchor);\nregisterEditorAction(GoToSelectionAnchor);\nregisterEditorAction(SelectFromAnchorToCursor);\nregisterEditorAction(CancelSelectionAnchor);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/bracketMatching/browser/bracketMatching.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .bracket-match {\n\tbox-sizing: border-box;\n\tbackground-color: var(--vscode-editorBracketMatch-background);\n\tborder: 1px solid var(--vscode-editorBracketMatch-border);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/bracketMatching/browser/bracketMatching.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/bracketMatching/browser/bracketMatching.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { RunOnceScheduler } from '../../../../base/common/async.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport './bracketMatching.css';\nimport { EditorAction, registerEditorAction, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { OverviewRulerLane } from '../../../common/model.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport * as nls from '../../../../nls.js';\nimport { MenuId, MenuRegistry } from '../../../../platform/actions/common/actions.js';\nimport { registerColor } from '../../../../platform/theme/common/colorRegistry.js';\nimport { themeColorFromId } from '../../../../platform/theme/common/themeService.js';\nconst overviewRulerBracketMatchForeground = registerColor('editorOverviewRuler.bracketMatchForeground', { dark: '#A0A0A0', light: '#A0A0A0', hcDark: '#A0A0A0', hcLight: '#A0A0A0' }, nls.localize('overviewRulerBracketMatchForeground', 'Overview ruler marker color for matching brackets.'));\nclass JumpToBracketAction extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.jumpToBracket',\n            label: nls.localize('smartSelect.jumpBracket', \"Go to Bracket\"),\n            alias: 'Go to Bracket',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 93 /* KeyCode.Backslash */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    run(accessor, editor) {\n        var _a;\n        (_a = BracketMatchingController.get(editor)) === null || _a === void 0 ? void 0 : _a.jumpToBracket();\n    }\n}\nclass SelectToBracketAction extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.selectToBracket',\n            label: nls.localize('smartSelect.selectToBracket', \"Select to Bracket\"),\n            alias: 'Select to Bracket',\n            precondition: undefined,\n            metadata: {\n                description: nls.localize2('smartSelect.selectToBracketDescription', \"Select the text inside and including the brackets or curly braces\"),\n                args: [{\n                        name: 'args',\n                        schema: {\n                            type: 'object',\n                            properties: {\n                                'selectBrackets': {\n                                    type: 'boolean',\n                                    default: true\n                                }\n                            },\n                        }\n                    }]\n            }\n        });\n    }\n    run(accessor, editor, args) {\n        var _a;\n        let selectBrackets = true;\n        if (args && args.selectBrackets === false) {\n            selectBrackets = false;\n        }\n        (_a = BracketMatchingController.get(editor)) === null || _a === void 0 ? void 0 : _a.selectToBracket(selectBrackets);\n    }\n}\nclass RemoveBracketsAction extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.removeBrackets',\n            label: nls.localize('smartSelect.removeBrackets', \"Remove Brackets\"),\n            alias: 'Remove Brackets',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 1 /* KeyCode.Backspace */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    run(accessor, editor) {\n        var _a;\n        (_a = BracketMatchingController.get(editor)) === null || _a === void 0 ? void 0 : _a.removeBrackets(this.id);\n    }\n}\nclass BracketsData {\n    constructor(position, brackets, options) {\n        this.position = position;\n        this.brackets = brackets;\n        this.options = options;\n    }\n}\nexport class BracketMatchingController extends Disposable {\n    static get(editor) {\n        return editor.getContribution(BracketMatchingController.ID);\n    }\n    constructor(editor) {\n        super();\n        this._editor = editor;\n        this._lastBracketsData = [];\n        this._lastVersionId = 0;\n        this._decorations = this._editor.createDecorationsCollection();\n        this._updateBracketsSoon = this._register(new RunOnceScheduler(() => this._updateBrackets(), 50));\n        this._matchBrackets = this._editor.getOption(72 /* EditorOption.matchBrackets */);\n        this._updateBracketsSoon.schedule();\n        this._register(editor.onDidChangeCursorPosition((e) => {\n            if (this._matchBrackets === 'never') {\n                // Early exit if nothing needs to be done!\n                // Leave some form of early exit check here if you wish to continue being a cursor position change listener ;)\n                return;\n            }\n            this._updateBracketsSoon.schedule();\n        }));\n        this._register(editor.onDidChangeModelContent((e) => {\n            this._updateBracketsSoon.schedule();\n        }));\n        this._register(editor.onDidChangeModel((e) => {\n            this._lastBracketsData = [];\n            this._updateBracketsSoon.schedule();\n        }));\n        this._register(editor.onDidChangeModelLanguageConfiguration((e) => {\n            this._lastBracketsData = [];\n            this._updateBracketsSoon.schedule();\n        }));\n        this._register(editor.onDidChangeConfiguration((e) => {\n            if (e.hasChanged(72 /* EditorOption.matchBrackets */)) {\n                this._matchBrackets = this._editor.getOption(72 /* EditorOption.matchBrackets */);\n                this._decorations.clear();\n                this._lastBracketsData = [];\n                this._lastVersionId = 0;\n                this._updateBracketsSoon.schedule();\n            }\n        }));\n        this._register(editor.onDidBlurEditorWidget(() => {\n            this._updateBracketsSoon.schedule();\n        }));\n        this._register(editor.onDidFocusEditorWidget(() => {\n            this._updateBracketsSoon.schedule();\n        }));\n    }\n    jumpToBracket() {\n        if (!this._editor.hasModel()) {\n            return;\n        }\n        const model = this._editor.getModel();\n        const newSelections = this._editor.getSelections().map(selection => {\n            const position = selection.getStartPosition();\n            // find matching brackets if position is on a bracket\n            const brackets = model.bracketPairs.matchBracket(position);\n            let newCursorPosition = null;\n            if (brackets) {\n                if (brackets[0].containsPosition(position) && !brackets[1].containsPosition(position)) {\n                    newCursorPosition = brackets[1].getStartPosition();\n                }\n                else if (brackets[1].containsPosition(position)) {\n                    newCursorPosition = brackets[0].getStartPosition();\n                }\n            }\n            else {\n                // find the enclosing brackets if the position isn't on a matching bracket\n                const enclosingBrackets = model.bracketPairs.findEnclosingBrackets(position);\n                if (enclosingBrackets) {\n                    newCursorPosition = enclosingBrackets[1].getStartPosition();\n                }\n                else {\n                    // no enclosing brackets, try the very first next bracket\n                    const nextBracket = model.bracketPairs.findNextBracket(position);\n                    if (nextBracket && nextBracket.range) {\n                        newCursorPosition = nextBracket.range.getStartPosition();\n                    }\n                }\n            }\n            if (newCursorPosition) {\n                return new Selection(newCursorPosition.lineNumber, newCursorPosition.column, newCursorPosition.lineNumber, newCursorPosition.column);\n            }\n            return new Selection(position.lineNumber, position.column, position.lineNumber, position.column);\n        });\n        this._editor.setSelections(newSelections);\n        this._editor.revealRange(newSelections[0]);\n    }\n    selectToBracket(selectBrackets) {\n        if (!this._editor.hasModel()) {\n            return;\n        }\n        const model = this._editor.getModel();\n        const newSelections = [];\n        this._editor.getSelections().forEach(selection => {\n            const position = selection.getStartPosition();\n            let brackets = model.bracketPairs.matchBracket(position);\n            if (!brackets) {\n                brackets = model.bracketPairs.findEnclosingBrackets(position);\n                if (!brackets) {\n                    const nextBracket = model.bracketPairs.findNextBracket(position);\n                    if (nextBracket && nextBracket.range) {\n                        brackets = model.bracketPairs.matchBracket(nextBracket.range.getStartPosition());\n                    }\n                }\n            }\n            let selectFrom = null;\n            let selectTo = null;\n            if (brackets) {\n                brackets.sort(Range.compareRangesUsingStarts);\n                const [open, close] = brackets;\n                selectFrom = selectBrackets ? open.getStartPosition() : open.getEndPosition();\n                selectTo = selectBrackets ? close.getEndPosition() : close.getStartPosition();\n                if (close.containsPosition(position)) {\n                    // select backwards if the cursor was on the closing bracket\n                    const tmp = selectFrom;\n                    selectFrom = selectTo;\n                    selectTo = tmp;\n                }\n            }\n            if (selectFrom && selectTo) {\n                newSelections.push(new Selection(selectFrom.lineNumber, selectFrom.column, selectTo.lineNumber, selectTo.column));\n            }\n        });\n        if (newSelections.length > 0) {\n            this._editor.setSelections(newSelections);\n            this._editor.revealRange(newSelections[0]);\n        }\n    }\n    removeBrackets(editSource) {\n        if (!this._editor.hasModel()) {\n            return;\n        }\n        const model = this._editor.getModel();\n        this._editor.getSelections().forEach((selection) => {\n            const position = selection.getPosition();\n            let brackets = model.bracketPairs.matchBracket(position);\n            if (!brackets) {\n                brackets = model.bracketPairs.findEnclosingBrackets(position);\n            }\n            if (brackets) {\n                this._editor.pushUndoStop();\n                this._editor.executeEdits(editSource, [\n                    { range: brackets[0], text: '' },\n                    { range: brackets[1], text: '' }\n                ]);\n                this._editor.pushUndoStop();\n            }\n        });\n    }\n    _updateBrackets() {\n        if (this._matchBrackets === 'never') {\n            return;\n        }\n        this._recomputeBrackets();\n        const newDecorations = [];\n        let newDecorationsLen = 0;\n        for (const bracketData of this._lastBracketsData) {\n            const brackets = bracketData.brackets;\n            if (brackets) {\n                newDecorations[newDecorationsLen++] = { range: brackets[0], options: bracketData.options };\n                newDecorations[newDecorationsLen++] = { range: brackets[1], options: bracketData.options };\n            }\n        }\n        this._decorations.set(newDecorations);\n    }\n    _recomputeBrackets() {\n        if (!this._editor.hasModel() || !this._editor.hasWidgetFocus()) {\n            // no model or no focus => no brackets!\n            this._lastBracketsData = [];\n            this._lastVersionId = 0;\n            return;\n        }\n        const selections = this._editor.getSelections();\n        if (selections.length > 100) {\n            // no bracket matching for high numbers of selections\n            this._lastBracketsData = [];\n            this._lastVersionId = 0;\n            return;\n        }\n        const model = this._editor.getModel();\n        const versionId = model.getVersionId();\n        let previousData = [];\n        if (this._lastVersionId === versionId) {\n            // use the previous data only if the model is at the same version id\n            previousData = this._lastBracketsData;\n        }\n        const positions = [];\n        let positionsLen = 0;\n        for (let i = 0, len = selections.length; i < len; i++) {\n            const selection = selections[i];\n            if (selection.isEmpty()) {\n                // will bracket match a cursor only if the selection is collapsed\n                positions[positionsLen++] = selection.getStartPosition();\n            }\n        }\n        // sort positions for `previousData` cache hits\n        if (positions.length > 1) {\n            positions.sort(Position.compare);\n        }\n        const newData = [];\n        let newDataLen = 0;\n        let previousIndex = 0;\n        const previousLen = previousData.length;\n        for (let i = 0, len = positions.length; i < len; i++) {\n            const position = positions[i];\n            while (previousIndex < previousLen && previousData[previousIndex].position.isBefore(position)) {\n                previousIndex++;\n            }\n            if (previousIndex < previousLen && previousData[previousIndex].position.equals(position)) {\n                newData[newDataLen++] = previousData[previousIndex];\n            }\n            else {\n                let brackets = model.bracketPairs.matchBracket(position, 20 /* give at most 20ms to compute */);\n                let options = BracketMatchingController._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;\n                if (!brackets && this._matchBrackets === 'always') {\n                    brackets = model.bracketPairs.findEnclosingBrackets(position, 20 /* give at most 20ms to compute */);\n                    options = BracketMatchingController._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER;\n                }\n                newData[newDataLen++] = new BracketsData(position, brackets, options);\n            }\n        }\n        this._lastBracketsData = newData;\n        this._lastVersionId = versionId;\n    }\n}\nBracketMatchingController.ID = 'editor.contrib.bracketMatchingController';\nBracketMatchingController._DECORATION_OPTIONS_WITH_OVERVIEW_RULER = ModelDecorationOptions.register({\n    description: 'bracket-match-overview',\n    stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n    className: 'bracket-match',\n    overviewRuler: {\n        color: themeColorFromId(overviewRulerBracketMatchForeground),\n        position: OverviewRulerLane.Center\n    }\n});\nBracketMatchingController._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER = ModelDecorationOptions.register({\n    description: 'bracket-match-no-overview',\n    stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n    className: 'bracket-match'\n});\nregisterEditorContribution(BracketMatchingController.ID, BracketMatchingController, 1 /* EditorContributionInstantiation.AfterFirstRender */);\nregisterEditorAction(SelectToBracketAction);\nregisterEditorAction(JumpToBracketAction);\nregisterEditorAction(RemoveBracketsAction);\n// Go to menu\nMenuRegistry.appendMenuItem(MenuId.MenubarGoMenu, {\n    group: '5_infile_nav',\n    command: {\n        id: 'editor.action.jumpToBracket',\n        title: nls.localize({ key: 'miGoToBracket', comment: ['&& denotes a mnemonic'] }, \"Go to &&Bracket\")\n    },\n    order: 2\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/caretOperations/browser/caretOperations.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/caretOperations/browser/caretOperations.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { EditorAction, registerEditorAction } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { MoveCaretCommand } from './moveCaretCommand.js';\nimport * as nls from '../../../../nls.js';\nclass MoveCaretAction extends EditorAction {\n    constructor(left, opts) {\n        super(opts);\n        this.left = left;\n    }\n    run(accessor, editor) {\n        if (!editor.hasModel()) {\n            return;\n        }\n        const commands = [];\n        const selections = editor.getSelections();\n        for (const selection of selections) {\n            commands.push(new MoveCaretCommand(selection, this.left));\n        }\n        editor.pushUndoStop();\n        editor.executeCommands(this.id, commands);\n        editor.pushUndoStop();\n    }\n}\nclass MoveCaretLeftAction extends MoveCaretAction {\n    constructor() {\n        super(true, {\n            id: 'editor.action.moveCarretLeftAction',\n            label: nls.localize('caret.moveLeft', \"Move Selected Text Left\"),\n            alias: 'Move Selected Text Left',\n            precondition: EditorContextKeys.writable\n        });\n    }\n}\nclass MoveCaretRightAction extends MoveCaretAction {\n    constructor() {\n        super(false, {\n            id: 'editor.action.moveCarretRightAction',\n            label: nls.localize('caret.moveRight', \"Move Selected Text Right\"),\n            alias: 'Move Selected Text Right',\n            precondition: EditorContextKeys.writable\n        });\n    }\n}\nregisterEditorAction(MoveCaretLeftAction);\nregisterEditorAction(MoveCaretRightAction);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/caretOperations/browser/moveCaretCommand.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nexport class MoveCaretCommand {\n    constructor(selection, isMovingLeft) {\n        this._selection = selection;\n        this._isMovingLeft = isMovingLeft;\n    }\n    getEditOperations(model, builder) {\n        if (this._selection.startLineNumber !== this._selection.endLineNumber || this._selection.isEmpty()) {\n            return;\n        }\n        const lineNumber = this._selection.startLineNumber;\n        const startColumn = this._selection.startColumn;\n        const endColumn = this._selection.endColumn;\n        if (this._isMovingLeft && startColumn === 1) {\n            return;\n        }\n        if (!this._isMovingLeft && endColumn === model.getLineMaxColumn(lineNumber)) {\n            return;\n        }\n        if (this._isMovingLeft) {\n            const rangeBefore = new Range(lineNumber, startColumn - 1, lineNumber, startColumn);\n            const charBefore = model.getValueInRange(rangeBefore);\n            builder.addEditOperation(rangeBefore, null);\n            builder.addEditOperation(new Range(lineNumber, endColumn, lineNumber, endColumn), charBefore);\n        }\n        else {\n            const rangeAfter = new Range(lineNumber, endColumn, lineNumber, endColumn + 1);\n            const charAfter = model.getValueInRange(rangeAfter);\n            builder.addEditOperation(rangeAfter, null);\n            builder.addEditOperation(new Range(lineNumber, startColumn, lineNumber, startColumn), charAfter);\n        }\n    }\n    computeCursorState(model, helper) {\n        if (this._isMovingLeft) {\n            return new Selection(this._selection.startLineNumber, this._selection.startColumn - 1, this._selection.endLineNumber, this._selection.endColumn - 1);\n        }\n        else {\n            return new Selection(this._selection.startLineNumber, this._selection.startColumn + 1, this._selection.endLineNumber, this._selection.endColumn + 1);\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/caretOperations/browser/transpose.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/caretOperations/browser/transpose.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { EditorAction, registerEditorAction } from '../../../browser/editorExtensions.js';\nimport { ReplaceCommand } from '../../../common/commands/replaceCommand.js';\nimport { MoveOperations } from '../../../common/cursor/cursorMoveOperations.js';\nimport { Range } from '../../../common/core/range.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport * as nls from '../../../../nls.js';\nclass TransposeLettersAction extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.transposeLetters',\n            label: nls.localize('transposeLetters.label', \"Transpose Letters\"),\n            alias: 'Transpose Letters',\n            precondition: EditorContextKeys.writable,\n            kbOpts: {\n                kbExpr: EditorContextKeys.textInputFocus,\n                primary: 0,\n                mac: {\n                    primary: 256 /* KeyMod.WinCtrl */ | 50 /* KeyCode.KeyT */\n                },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    run(accessor, editor) {\n        if (!editor.hasModel()) {\n            return;\n        }\n        const model = editor.getModel();\n        const commands = [];\n        const selections = editor.getSelections();\n        for (const selection of selections) {\n            if (!selection.isEmpty()) {\n                continue;\n            }\n            const lineNumber = selection.startLineNumber;\n            const column = selection.startColumn;\n            const lastColumn = model.getLineMaxColumn(lineNumber);\n            if (lineNumber === 1 && (column === 1 || (column === 2 && lastColumn === 2))) {\n                // at beginning of file, nothing to do\n                continue;\n            }\n            // handle special case: when at end of line, transpose left two chars\n            // otherwise, transpose left and right chars\n            const endPosition = (column === lastColumn) ?\n                selection.getPosition() :\n                MoveOperations.rightPosition(model, selection.getPosition().lineNumber, selection.getPosition().column);\n            const middlePosition = MoveOperations.leftPosition(model, endPosition);\n            const beginPosition = MoveOperations.leftPosition(model, middlePosition);\n            const leftChar = model.getValueInRange(Range.fromPositions(beginPosition, middlePosition));\n            const rightChar = model.getValueInRange(Range.fromPositions(middlePosition, endPosition));\n            const replaceRange = Range.fromPositions(beginPosition, endPosition);\n            commands.push(new ReplaceCommand(replaceRange, rightChar + leftChar));\n        }\n        if (commands.length > 0) {\n            editor.pushUndoStop();\n            editor.executeCommands(this.id, commands);\n            editor.pushUndoStop();\n        }\n    }\n}\nregisterEditorAction(TransposeLettersAction);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/clipboard/browser/clipboard.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/clipboard/browser/clipboard.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as browser from '../../../../base/browser/browser.js';\nimport { getActiveDocument } from '../../../../base/browser/dom.js';\nimport * as platform from '../../../../base/common/platform.js';\nimport { CopyOptions, InMemoryClipboardMetadataManager } from '../../../browser/controller/textAreaInput.js';\nimport { EditorAction, MultiCommand, registerEditorAction } from '../../../browser/editorExtensions.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { CopyPasteController } from '../../dropOrPasteInto/browser/copyPasteController.js';\nimport * as nls from '../../../../nls.js';\nimport { MenuId, MenuRegistry } from '../../../../platform/actions/common/actions.js';\nimport { IClipboardService } from '../../../../platform/clipboard/common/clipboardService.js';\nimport { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nconst CLIPBOARD_CONTEXT_MENU_GROUP = '9_cutcopypaste';\nconst supportsCut = (platform.isNative || document.queryCommandSupported('cut'));\nconst supportsCopy = (platform.isNative || document.queryCommandSupported('copy'));\n// Firefox only supports navigator.clipboard.readText() in browser extensions.\n// See https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/readText#Browser_compatibility\n// When loading over http, navigator.clipboard can be undefined. See https://github.com/microsoft/monaco-editor/issues/2313\nconst supportsPaste = (typeof navigator.clipboard === 'undefined' || browser.isFirefox) ? document.queryCommandSupported('paste') : true;\nfunction registerCommand(command) {\n    command.register();\n    return command;\n}\nexport const CutAction = supportsCut ? registerCommand(new MultiCommand({\n    id: 'editor.action.clipboardCutAction',\n    precondition: undefined,\n    kbOpts: (\n    // Do not bind cut keybindings in the browser,\n    // since browsers do that for us and it avoids security prompts\n    platform.isNative ? {\n        primary: 2048 /* KeyMod.CtrlCmd */ | 54 /* KeyCode.KeyX */,\n        win: { primary: 2048 /* KeyMod.CtrlCmd */ | 54 /* KeyCode.KeyX */, secondary: [1024 /* KeyMod.Shift */ | 20 /* KeyCode.Delete */] },\n        weight: 100 /* KeybindingWeight.EditorContrib */\n    } : undefined),\n    menuOpts: [{\n            menuId: MenuId.MenubarEditMenu,\n            group: '2_ccp',\n            title: nls.localize({ key: 'miCut', comment: ['&& denotes a mnemonic'] }, \"Cu&&t\"),\n            order: 1\n        }, {\n            menuId: MenuId.EditorContext,\n            group: CLIPBOARD_CONTEXT_MENU_GROUP,\n            title: nls.localize('actions.clipboard.cutLabel', \"Cut\"),\n            when: EditorContextKeys.writable,\n            order: 1,\n        }, {\n            menuId: MenuId.CommandPalette,\n            group: '',\n            title: nls.localize('actions.clipboard.cutLabel', \"Cut\"),\n            order: 1\n        }, {\n            menuId: MenuId.SimpleEditorContext,\n            group: CLIPBOARD_CONTEXT_MENU_GROUP,\n            title: nls.localize('actions.clipboard.cutLabel', \"Cut\"),\n            when: EditorContextKeys.writable,\n            order: 1,\n        }]\n})) : undefined;\nexport const CopyAction = supportsCopy ? registerCommand(new MultiCommand({\n    id: 'editor.action.clipboardCopyAction',\n    precondition: undefined,\n    kbOpts: (\n    // Do not bind copy keybindings in the browser,\n    // since browsers do that for us and it avoids security prompts\n    platform.isNative ? {\n        primary: 2048 /* KeyMod.CtrlCmd */ | 33 /* KeyCode.KeyC */,\n        win: { primary: 2048 /* KeyMod.CtrlCmd */ | 33 /* KeyCode.KeyC */, secondary: [2048 /* KeyMod.CtrlCmd */ | 19 /* KeyCode.Insert */] },\n        weight: 100 /* KeybindingWeight.EditorContrib */\n    } : undefined),\n    menuOpts: [{\n            menuId: MenuId.MenubarEditMenu,\n            group: '2_ccp',\n            title: nls.localize({ key: 'miCopy', comment: ['&& denotes a mnemonic'] }, \"&&Copy\"),\n            order: 2\n        }, {\n            menuId: MenuId.EditorContext,\n            group: CLIPBOARD_CONTEXT_MENU_GROUP,\n            title: nls.localize('actions.clipboard.copyLabel', \"Copy\"),\n            order: 2,\n        }, {\n            menuId: MenuId.CommandPalette,\n            group: '',\n            title: nls.localize('actions.clipboard.copyLabel', \"Copy\"),\n            order: 1\n        }, {\n            menuId: MenuId.SimpleEditorContext,\n            group: CLIPBOARD_CONTEXT_MENU_GROUP,\n            title: nls.localize('actions.clipboard.copyLabel', \"Copy\"),\n            order: 2,\n        }]\n})) : undefined;\nMenuRegistry.appendMenuItem(MenuId.MenubarEditMenu, { submenu: MenuId.MenubarCopy, title: nls.localize2('copy as', \"Copy As\"), group: '2_ccp', order: 3 });\nMenuRegistry.appendMenuItem(MenuId.EditorContext, { submenu: MenuId.EditorContextCopy, title: nls.localize2('copy as', \"Copy As\"), group: CLIPBOARD_CONTEXT_MENU_GROUP, order: 3 });\nMenuRegistry.appendMenuItem(MenuId.EditorContext, { submenu: MenuId.EditorContextShare, title: nls.localize2('share', \"Share\"), group: '11_share', order: -1, when: ContextKeyExpr.and(ContextKeyExpr.notEquals('resourceScheme', 'output'), EditorContextKeys.editorTextFocus) });\nMenuRegistry.appendMenuItem(MenuId.ExplorerContext, { submenu: MenuId.ExplorerContextShare, title: nls.localize2('share', \"Share\"), group: '11_share', order: -1 });\nexport const PasteAction = supportsPaste ? registerCommand(new MultiCommand({\n    id: 'editor.action.clipboardPasteAction',\n    precondition: undefined,\n    kbOpts: (\n    // Do not bind paste keybindings in the browser,\n    // since browsers do that for us and it avoids security prompts\n    platform.isNative ? {\n        primary: 2048 /* KeyMod.CtrlCmd */ | 52 /* KeyCode.KeyV */,\n        win: { primary: 2048 /* KeyMod.CtrlCmd */ | 52 /* KeyCode.KeyV */, secondary: [1024 /* KeyMod.Shift */ | 19 /* KeyCode.Insert */] },\n        linux: { primary: 2048 /* KeyMod.CtrlCmd */ | 52 /* KeyCode.KeyV */, secondary: [1024 /* KeyMod.Shift */ | 19 /* KeyCode.Insert */] },\n        weight: 100 /* KeybindingWeight.EditorContrib */\n    } : undefined),\n    menuOpts: [{\n            menuId: MenuId.MenubarEditMenu,\n            group: '2_ccp',\n            title: nls.localize({ key: 'miPaste', comment: ['&& denotes a mnemonic'] }, \"&&Paste\"),\n            order: 4\n        }, {\n            menuId: MenuId.EditorContext,\n            group: CLIPBOARD_CONTEXT_MENU_GROUP,\n            title: nls.localize('actions.clipboard.pasteLabel', \"Paste\"),\n            when: EditorContextKeys.writable,\n            order: 4,\n        }, {\n            menuId: MenuId.CommandPalette,\n            group: '',\n            title: nls.localize('actions.clipboard.pasteLabel', \"Paste\"),\n            order: 1\n        }, {\n            menuId: MenuId.SimpleEditorContext,\n            group: CLIPBOARD_CONTEXT_MENU_GROUP,\n            title: nls.localize('actions.clipboard.pasteLabel', \"Paste\"),\n            when: EditorContextKeys.writable,\n            order: 4,\n        }]\n})) : undefined;\nclass ExecCommandCopyWithSyntaxHighlightingAction extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.clipboardCopyWithSyntaxHighlightingAction',\n            label: nls.localize('actions.clipboard.copyWithSyntaxHighlightingLabel', \"Copy With Syntax Highlighting\"),\n            alias: 'Copy With Syntax Highlighting',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: EditorContextKeys.textInputFocus,\n                primary: 0,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    run(accessor, editor) {\n        if (!editor.hasModel()) {\n            return;\n        }\n        const emptySelectionClipboard = editor.getOption(37 /* EditorOption.emptySelectionClipboard */);\n        if (!emptySelectionClipboard && editor.getSelection().isEmpty()) {\n            return;\n        }\n        CopyOptions.forceCopyWithSyntaxHighlighting = true;\n        editor.focus();\n        editor.getContainerDomNode().ownerDocument.execCommand('copy');\n        CopyOptions.forceCopyWithSyntaxHighlighting = false;\n    }\n}\nfunction registerExecCommandImpl(target, browserCommand) {\n    if (!target) {\n        return;\n    }\n    // 1. handle case when focus is in editor.\n    target.addImplementation(10000, 'code-editor', (accessor, args) => {\n        // Only if editor text focus (i.e. not if editor has widget focus).\n        const focusedEditor = accessor.get(ICodeEditorService).getFocusedCodeEditor();\n        if (focusedEditor && focusedEditor.hasTextFocus()) {\n            // Do not execute if there is no selection and empty selection clipboard is off\n            const emptySelectionClipboard = focusedEditor.getOption(37 /* EditorOption.emptySelectionClipboard */);\n            const selection = focusedEditor.getSelection();\n            if (selection && selection.isEmpty() && !emptySelectionClipboard) {\n                return true;\n            }\n            focusedEditor.getContainerDomNode().ownerDocument.execCommand(browserCommand);\n            return true;\n        }\n        return false;\n    });\n    // 2. (default) handle case when focus is somewhere else.\n    target.addImplementation(0, 'generic-dom', (accessor, args) => {\n        getActiveDocument().execCommand(browserCommand);\n        return true;\n    });\n}\nregisterExecCommandImpl(CutAction, 'cut');\nregisterExecCommandImpl(CopyAction, 'copy');\nif (PasteAction) {\n    // 1. Paste: handle case when focus is in editor.\n    PasteAction.addImplementation(10000, 'code-editor', (accessor, args) => {\n        var _a, _b;\n        const codeEditorService = accessor.get(ICodeEditorService);\n        const clipboardService = accessor.get(IClipboardService);\n        // Only if editor text focus (i.e. not if editor has widget focus).\n        const focusedEditor = codeEditorService.getFocusedCodeEditor();\n        if (focusedEditor && focusedEditor.hasTextFocus()) {\n            const result = focusedEditor.getContainerDomNode().ownerDocument.execCommand('paste');\n            if (result) {\n                return (_b = (_a = CopyPasteController.get(focusedEditor)) === null || _a === void 0 ? void 0 : _a.finishedPaste()) !== null && _b !== void 0 ? _b : Promise.resolve();\n            }\n            else if (platform.isWeb) {\n                // Use the clipboard service if document.execCommand('paste') was not successful\n                return (async () => {\n                    const clipboardText = await clipboardService.readText();\n                    if (clipboardText !== '') {\n                        const metadata = InMemoryClipboardMetadataManager.INSTANCE.get(clipboardText);\n                        let pasteOnNewLine = false;\n                        let multicursorText = null;\n                        let mode = null;\n                        if (metadata) {\n                            pasteOnNewLine = (focusedEditor.getOption(37 /* EditorOption.emptySelectionClipboard */) && !!metadata.isFromEmptySelection);\n                            multicursorText = (typeof metadata.multicursorText !== 'undefined' ? metadata.multicursorText : null);\n                            mode = metadata.mode;\n                        }\n                        focusedEditor.trigger('keyboard', \"paste\" /* Handler.Paste */, {\n                            text: clipboardText,\n                            pasteOnNewLine,\n                            multicursorText,\n                            mode\n                        });\n                    }\n                })();\n            }\n            return true;\n        }\n        return false;\n    });\n    // 2. Paste: (default) handle case when focus is somewhere else.\n    PasteAction.addImplementation(0, 'generic-dom', (accessor, args) => {\n        getActiveDocument().execCommand('paste');\n        return true;\n    });\n}\nif (supportsCopy) {\n    registerEditorAction(ExecCommandCopyWithSyntaxHighlightingAction);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/codeAction/browser/codeAction.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { coalesce, equals, isNonEmptyArray } from '../../../../base/common/arrays.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { illegalArgument, isCancellationError, onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport { IBulkEditService } from '../../../browser/services/bulkEditService.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { IModelService } from '../../../common/services/model.js';\nimport { TextModelCancellationTokenSource } from '../../editorState/browser/editorState.js';\nimport * as nls from '../../../../nls.js';\nimport { CommandsRegistry, ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { INotificationService } from '../../../../platform/notification/common/notification.js';\nimport { Progress } from '../../../../platform/progress/common/progress.js';\nimport { ITelemetryService } from '../../../../platform/telemetry/common/telemetry.js';\nimport { CodeActionItem, CodeActionKind, CodeActionTriggerSource, filtersAction, mayIncludeActionsOfKind } from '../common/types.js';\nimport { HierarchicalKind } from '../../../../base/common/hierarchicalKind.js';\nexport const codeActionCommandId = 'editor.action.codeAction';\nexport const quickFixCommandId = 'editor.action.quickFix';\nexport const autoFixCommandId = 'editor.action.autoFix';\nexport const refactorCommandId = 'editor.action.refactor';\nexport const sourceActionCommandId = 'editor.action.sourceAction';\nexport const organizeImportsCommandId = 'editor.action.organizeImports';\nexport const fixAllCommandId = 'editor.action.fixAll';\nclass ManagedCodeActionSet extends Disposable {\n    static codeActionsPreferredComparator(a, b) {\n        if (a.isPreferred && !b.isPreferred) {\n            return -1;\n        }\n        else if (!a.isPreferred && b.isPreferred) {\n            return 1;\n        }\n        else {\n            return 0;\n        }\n    }\n    static codeActionsComparator({ action: a }, { action: b }) {\n        if (a.isAI && !b.isAI) {\n            return 1;\n        }\n        else if (!a.isAI && b.isAI) {\n            return -1;\n        }\n        if (isNonEmptyArray(a.diagnostics)) {\n            return isNonEmptyArray(b.diagnostics) ? ManagedCodeActionSet.codeActionsPreferredComparator(a, b) : -1;\n        }\n        else if (isNonEmptyArray(b.diagnostics)) {\n            return 1;\n        }\n        else {\n            return ManagedCodeActionSet.codeActionsPreferredComparator(a, b); // both have no diagnostics\n        }\n    }\n    constructor(actions, documentation, disposables) {\n        super();\n        this.documentation = documentation;\n        this._register(disposables);\n        this.allActions = [...actions].sort(ManagedCodeActionSet.codeActionsComparator);\n        this.validActions = this.allActions.filter(({ action }) => !action.disabled);\n    }\n    get hasAutoFix() {\n        return this.validActions.some(({ action: fix }) => !!fix.kind && CodeActionKind.QuickFix.contains(new HierarchicalKind(fix.kind)) && !!fix.isPreferred);\n    }\n    get hasAIFix() {\n        return this.validActions.some(({ action: fix }) => !!fix.isAI);\n    }\n    get allAIFixes() {\n        return this.validActions.every(({ action: fix }) => !!fix.isAI);\n    }\n}\nconst emptyCodeActionsResponse = { actions: [], documentation: undefined };\nexport async function getCodeActions(registry, model, rangeOrSelection, trigger, progress, token) {\n    var _a;\n    const filter = trigger.filter || {};\n    const notebookFilter = {\n        ...filter,\n        excludes: [...(filter.excludes || []), CodeActionKind.Notebook],\n    };\n    const codeActionContext = {\n        only: (_a = filter.include) === null || _a === void 0 ? void 0 : _a.value,\n        trigger: trigger.type,\n    };\n    const cts = new TextModelCancellationTokenSource(model, token);\n    // if the trigger is auto (autosave, lightbulb, etc), we should exclude notebook codeActions\n    const excludeNotebookCodeActions = (trigger.type === 2 /* languages.CodeActionTriggerType.Auto */);\n    const providers = getCodeActionProviders(registry, model, (excludeNotebookCodeActions) ? notebookFilter : filter);\n    const disposables = new DisposableStore();\n    const promises = providers.map(async (provider) => {\n        try {\n            progress.report(provider);\n            const providedCodeActions = await provider.provideCodeActions(model, rangeOrSelection, codeActionContext, cts.token);\n            if (providedCodeActions) {\n                disposables.add(providedCodeActions);\n            }\n            if (cts.token.isCancellationRequested) {\n                return emptyCodeActionsResponse;\n            }\n            const filteredActions = ((providedCodeActions === null || providedCodeActions === void 0 ? void 0 : providedCodeActions.actions) || []).filter(action => action && filtersAction(filter, action));\n            const documentation = getDocumentationFromProvider(provider, filteredActions, filter.include);\n            return {\n                actions: filteredActions.map(action => new CodeActionItem(action, provider)),\n                documentation\n            };\n        }\n        catch (err) {\n            if (isCancellationError(err)) {\n                throw err;\n            }\n            onUnexpectedExternalError(err);\n            return emptyCodeActionsResponse;\n        }\n    });\n    const listener = registry.onDidChange(() => {\n        const newProviders = registry.all(model);\n        if (!equals(newProviders, providers)) {\n            cts.cancel();\n        }\n    });\n    try {\n        const actions = await Promise.all(promises);\n        const allActions = actions.map(x => x.actions).flat();\n        const allDocumentation = [\n            ...coalesce(actions.map(x => x.documentation)),\n            ...getAdditionalDocumentationForShowingActions(registry, model, trigger, allActions)\n        ];\n        return new ManagedCodeActionSet(allActions, allDocumentation, disposables);\n    }\n    finally {\n        listener.dispose();\n        cts.dispose();\n    }\n}\nfunction getCodeActionProviders(registry, model, filter) {\n    return registry.all(model)\n        // Don't include providers that we know will not return code actions of interest\n        .filter(provider => {\n        if (!provider.providedCodeActionKinds) {\n            // We don't know what type of actions this provider will return.\n            return true;\n        }\n        return provider.providedCodeActionKinds.some(kind => mayIncludeActionsOfKind(filter, new HierarchicalKind(kind)));\n    });\n}\nfunction* getAdditionalDocumentationForShowingActions(registry, model, trigger, actionsToShow) {\n    var _a, _b, _c;\n    if (model && actionsToShow.length) {\n        for (const provider of registry.all(model)) {\n            if (provider._getAdditionalMenuItems) {\n                yield* (_a = provider._getAdditionalMenuItems) === null || _a === void 0 ? void 0 : _a.call(provider, { trigger: trigger.type, only: (_c = (_b = trigger.filter) === null || _b === void 0 ? void 0 : _b.include) === null || _c === void 0 ? void 0 : _c.value }, actionsToShow.map(item => item.action));\n            }\n        }\n    }\n}\nfunction getDocumentationFromProvider(provider, providedCodeActions, only) {\n    if (!provider.documentation) {\n        return undefined;\n    }\n    const documentation = provider.documentation.map(entry => ({ kind: new HierarchicalKind(entry.kind), command: entry.command }));\n    if (only) {\n        let currentBest;\n        for (const entry of documentation) {\n            if (entry.kind.contains(only)) {\n                if (!currentBest) {\n                    currentBest = entry;\n                }\n                else {\n                    // Take best match\n                    if (currentBest.kind.contains(entry.kind)) {\n                        currentBest = entry;\n                    }\n                }\n            }\n        }\n        if (currentBest) {\n            return currentBest === null || currentBest === void 0 ? void 0 : currentBest.command;\n        }\n    }\n    // Otherwise, check to see if any of the provided actions match.\n    for (const action of providedCodeActions) {\n        if (!action.kind) {\n            continue;\n        }\n        for (const entry of documentation) {\n            if (entry.kind.contains(new HierarchicalKind(action.kind))) {\n                return entry.command;\n            }\n        }\n    }\n    return undefined;\n}\nexport var ApplyCodeActionReason;\n(function (ApplyCodeActionReason) {\n    ApplyCodeActionReason[\"OnSave\"] = \"onSave\";\n    ApplyCodeActionReason[\"FromProblemsView\"] = \"fromProblemsView\";\n    ApplyCodeActionReason[\"FromCodeActions\"] = \"fromCodeActions\";\n    ApplyCodeActionReason[\"FromAILightbulb\"] = \"fromAILightbulb\"; // direct invocation when clicking on the AI lightbulb\n})(ApplyCodeActionReason || (ApplyCodeActionReason = {}));\nexport async function applyCodeAction(accessor, item, codeActionReason, options, token = CancellationToken.None) {\n    var _a;\n    const bulkEditService = accessor.get(IBulkEditService);\n    const commandService = accessor.get(ICommandService);\n    const telemetryService = accessor.get(ITelemetryService);\n    const notificationService = accessor.get(INotificationService);\n    telemetryService.publicLog2('codeAction.applyCodeAction', {\n        codeActionTitle: item.action.title,\n        codeActionKind: item.action.kind,\n        codeActionIsPreferred: !!item.action.isPreferred,\n        reason: codeActionReason,\n    });\n    await item.resolve(token);\n    if (token.isCancellationRequested) {\n        return;\n    }\n    if ((_a = item.action.edit) === null || _a === void 0 ? void 0 : _a.edits.length) {\n        const result = await bulkEditService.apply(item.action.edit, {\n            editor: options === null || options === void 0 ? void 0 : options.editor,\n            label: item.action.title,\n            quotableLabel: item.action.title,\n            code: 'undoredo.codeAction',\n            respectAutoSaveConfig: codeActionReason !== ApplyCodeActionReason.OnSave,\n            showPreview: options === null || options === void 0 ? void 0 : options.preview,\n        });\n        if (!result.isApplied) {\n            return;\n        }\n    }\n    if (item.action.command) {\n        try {\n            await commandService.executeCommand(item.action.command.id, ...(item.action.command.arguments || []));\n        }\n        catch (err) {\n            const message = asMessage(err);\n            notificationService.error(typeof message === 'string'\n                ? message\n                : nls.localize('applyCodeActionFailed', \"An unknown error occurred while applying the code action\"));\n        }\n    }\n}\nfunction asMessage(err) {\n    if (typeof err === 'string') {\n        return err;\n    }\n    else if (err instanceof Error && typeof err.message === 'string') {\n        return err.message;\n    }\n    else {\n        return undefined;\n    }\n}\nCommandsRegistry.registerCommand('_executeCodeActionProvider', async function (accessor, resource, rangeOrSelection, kind, itemResolveCount) {\n    if (!(resource instanceof URI)) {\n        throw illegalArgument();\n    }\n    const { codeActionProvider } = accessor.get(ILanguageFeaturesService);\n    const model = accessor.get(IModelService).getModel(resource);\n    if (!model) {\n        throw illegalArgument();\n    }\n    const validatedRangeOrSelection = Selection.isISelection(rangeOrSelection)\n        ? Selection.liftSelection(rangeOrSelection)\n        : Range.isIRange(rangeOrSelection)\n            ? model.validateRange(rangeOrSelection)\n            : undefined;\n    if (!validatedRangeOrSelection) {\n        throw illegalArgument();\n    }\n    const include = typeof kind === 'string' ? new HierarchicalKind(kind) : undefined;\n    const codeActionSet = await getCodeActions(codeActionProvider, model, validatedRangeOrSelection, { type: 1 /* languages.CodeActionTriggerType.Invoke */, triggerAction: CodeActionTriggerSource.Default, filter: { includeSourceActions: true, include } }, Progress.None, CancellationToken.None);\n    const resolving = [];\n    const resolveCount = Math.min(codeActionSet.validActions.length, typeof itemResolveCount === 'number' ? itemResolveCount : 0);\n    for (let i = 0; i < resolveCount; i++) {\n        resolving.push(codeActionSet.validActions[i].resolve(CancellationToken.None));\n    }\n    try {\n        await Promise.all(resolving);\n        return codeActionSet.validActions.map(item => item.action);\n    }\n    finally {\n        setTimeout(() => codeActionSet.dispose(), 100);\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/codeAction/browser/codeActionCommands.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { HierarchicalKind } from '../../../../base/common/hierarchicalKind.js';\nimport { escapeRegExpCharacters } from '../../../../base/common/strings.js';\nimport { EditorAction, EditorCommand } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { autoFixCommandId, codeActionCommandId, fixAllCommandId, organizeImportsCommandId, quickFixCommandId, refactorCommandId, sourceActionCommandId } from './codeAction.js';\nimport * as nls from '../../../../nls.js';\nimport { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nimport { CodeActionCommandArgs, CodeActionKind, CodeActionTriggerSource } from '../common/types.js';\nimport { CodeActionController } from './codeActionController.js';\nimport { SUPPORTED_CODE_ACTIONS } from './codeActionModel.js';\nfunction contextKeyForSupportedActions(kind) {\n    return ContextKeyExpr.regex(SUPPORTED_CODE_ACTIONS.keys()[0], new RegExp('(\\\\s|^)' + escapeRegExpCharacters(kind.value) + '\\\\b'));\n}\nconst argsSchema = {\n    type: 'object',\n    defaultSnippets: [{ body: { kind: '' } }],\n    properties: {\n        'kind': {\n            type: 'string',\n            description: nls.localize('args.schema.kind', \"Kind of the code action to run.\"),\n        },\n        'apply': {\n            type: 'string',\n            description: nls.localize('args.schema.apply', \"Controls when the returned actions are applied.\"),\n            default: \"ifSingle\" /* CodeActionAutoApply.IfSingle */,\n            enum: [\"first\" /* CodeActionAutoApply.First */, \"ifSingle\" /* CodeActionAutoApply.IfSingle */, \"never\" /* CodeActionAutoApply.Never */],\n            enumDescriptions: [\n                nls.localize('args.schema.apply.first', \"Always apply the first returned code action.\"),\n                nls.localize('args.schema.apply.ifSingle', \"Apply the first returned code action if it is the only one.\"),\n                nls.localize('args.schema.apply.never', \"Do not apply the returned code actions.\"),\n            ]\n        },\n        'preferred': {\n            type: 'boolean',\n            default: false,\n            description: nls.localize('args.schema.preferred', \"Controls if only preferred code actions should be returned.\"),\n        }\n    }\n};\nfunction triggerCodeActionsForEditorSelection(editor, notAvailableMessage, filter, autoApply, triggerAction = CodeActionTriggerSource.Default) {\n    if (editor.hasModel()) {\n        const controller = CodeActionController.get(editor);\n        controller === null || controller === void 0 ? void 0 : controller.manualTriggerAtCurrentPosition(notAvailableMessage, triggerAction, filter, autoApply);\n    }\n}\nexport class QuickFixAction extends EditorAction {\n    constructor() {\n        super({\n            id: quickFixCommandId,\n            label: nls.localize('quickfix.trigger.label', \"Quick Fix...\"),\n            alias: 'Quick Fix...',\n            precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasCodeActionsProvider),\n            kbOpts: {\n                kbExpr: EditorContextKeys.textInputFocus,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 89 /* KeyCode.Period */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    run(_accessor, editor) {\n        return triggerCodeActionsForEditorSelection(editor, nls.localize('editor.action.quickFix.noneMessage', \"No code actions available\"), undefined, undefined, CodeActionTriggerSource.QuickFix);\n    }\n}\nexport class CodeActionCommand extends EditorCommand {\n    constructor() {\n        super({\n            id: codeActionCommandId,\n            precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasCodeActionsProvider),\n            metadata: {\n                description: 'Trigger a code action',\n                args: [{ name: 'args', schema: argsSchema, }]\n            }\n        });\n    }\n    runEditorCommand(_accessor, editor, userArgs) {\n        const args = CodeActionCommandArgs.fromUser(userArgs, {\n            kind: HierarchicalKind.Empty,\n            apply: \"ifSingle\" /* CodeActionAutoApply.IfSingle */,\n        });\n        return triggerCodeActionsForEditorSelection(editor, typeof (userArgs === null || userArgs === void 0 ? void 0 : userArgs.kind) === 'string'\n            ? args.preferred\n                ? nls.localize('editor.action.codeAction.noneMessage.preferred.kind', \"No preferred code actions for '{0}' available\", userArgs.kind)\n                : nls.localize('editor.action.codeAction.noneMessage.kind', \"No code actions for '{0}' available\", userArgs.kind)\n            : args.preferred\n                ? nls.localize('editor.action.codeAction.noneMessage.preferred', \"No preferred code actions available\")\n                : nls.localize('editor.action.codeAction.noneMessage', \"No code actions available\"), {\n            include: args.kind,\n            includeSourceActions: true,\n            onlyIncludePreferredActions: args.preferred,\n        }, args.apply);\n    }\n}\nexport class RefactorAction extends EditorAction {\n    constructor() {\n        super({\n            id: refactorCommandId,\n            label: nls.localize('refactor.label', \"Refactor...\"),\n            alias: 'Refactor...',\n            precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasCodeActionsProvider),\n            kbOpts: {\n                kbExpr: EditorContextKeys.textInputFocus,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 48 /* KeyCode.KeyR */,\n                mac: {\n                    primary: 256 /* KeyMod.WinCtrl */ | 1024 /* KeyMod.Shift */ | 48 /* KeyCode.KeyR */\n                },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            contextMenuOpts: {\n                group: '1_modification',\n                order: 2,\n                when: ContextKeyExpr.and(EditorContextKeys.writable, contextKeyForSupportedActions(CodeActionKind.Refactor)),\n            },\n            metadata: {\n                description: 'Refactor...',\n                args: [{ name: 'args', schema: argsSchema }]\n            }\n        });\n    }\n    run(_accessor, editor, userArgs) {\n        const args = CodeActionCommandArgs.fromUser(userArgs, {\n            kind: CodeActionKind.Refactor,\n            apply: \"never\" /* CodeActionAutoApply.Never */\n        });\n        return triggerCodeActionsForEditorSelection(editor, typeof (userArgs === null || userArgs === void 0 ? void 0 : userArgs.kind) === 'string'\n            ? args.preferred\n                ? nls.localize('editor.action.refactor.noneMessage.preferred.kind', \"No preferred refactorings for '{0}' available\", userArgs.kind)\n                : nls.localize('editor.action.refactor.noneMessage.kind', \"No refactorings for '{0}' available\", userArgs.kind)\n            : args.preferred\n                ? nls.localize('editor.action.refactor.noneMessage.preferred', \"No preferred refactorings available\")\n                : nls.localize('editor.action.refactor.noneMessage', \"No refactorings available\"), {\n            include: CodeActionKind.Refactor.contains(args.kind) ? args.kind : HierarchicalKind.None,\n            onlyIncludePreferredActions: args.preferred\n        }, args.apply, CodeActionTriggerSource.Refactor);\n    }\n}\nexport class SourceAction extends EditorAction {\n    constructor() {\n        super({\n            id: sourceActionCommandId,\n            label: nls.localize('source.label', \"Source Action...\"),\n            alias: 'Source Action...',\n            precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasCodeActionsProvider),\n            contextMenuOpts: {\n                group: '1_modification',\n                order: 2.1,\n                when: ContextKeyExpr.and(EditorContextKeys.writable, contextKeyForSupportedActions(CodeActionKind.Source)),\n            },\n            metadata: {\n                description: 'Source Action...',\n                args: [{ name: 'args', schema: argsSchema }]\n            }\n        });\n    }\n    run(_accessor, editor, userArgs) {\n        const args = CodeActionCommandArgs.fromUser(userArgs, {\n            kind: CodeActionKind.Source,\n            apply: \"never\" /* CodeActionAutoApply.Never */\n        });\n        return triggerCodeActionsForEditorSelection(editor, typeof (userArgs === null || userArgs === void 0 ? void 0 : userArgs.kind) === 'string'\n            ? args.preferred\n                ? nls.localize('editor.action.source.noneMessage.preferred.kind', \"No preferred source actions for '{0}' available\", userArgs.kind)\n                : nls.localize('editor.action.source.noneMessage.kind', \"No source actions for '{0}' available\", userArgs.kind)\n            : args.preferred\n                ? nls.localize('editor.action.source.noneMessage.preferred', \"No preferred source actions available\")\n                : nls.localize('editor.action.source.noneMessage', \"No source actions available\"), {\n            include: CodeActionKind.Source.contains(args.kind) ? args.kind : HierarchicalKind.None,\n            includeSourceActions: true,\n            onlyIncludePreferredActions: args.preferred,\n        }, args.apply, CodeActionTriggerSource.SourceAction);\n    }\n}\nexport class OrganizeImportsAction extends EditorAction {\n    constructor() {\n        super({\n            id: organizeImportsCommandId,\n            label: nls.localize('organizeImports.label', \"Organize Imports\"),\n            alias: 'Organize Imports',\n            precondition: ContextKeyExpr.and(EditorContextKeys.writable, contextKeyForSupportedActions(CodeActionKind.SourceOrganizeImports)),\n            kbOpts: {\n                kbExpr: EditorContextKeys.textInputFocus,\n                primary: 1024 /* KeyMod.Shift */ | 512 /* KeyMod.Alt */ | 45 /* KeyCode.KeyO */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n        });\n    }\n    run(_accessor, editor) {\n        return triggerCodeActionsForEditorSelection(editor, nls.localize('editor.action.organize.noneMessage', \"No organize imports action available\"), { include: CodeActionKind.SourceOrganizeImports, includeSourceActions: true }, \"ifSingle\" /* CodeActionAutoApply.IfSingle */, CodeActionTriggerSource.OrganizeImports);\n    }\n}\nexport class FixAllAction extends EditorAction {\n    constructor() {\n        super({\n            id: fixAllCommandId,\n            label: nls.localize('fixAll.label', \"Fix All\"),\n            alias: 'Fix All',\n            precondition: ContextKeyExpr.and(EditorContextKeys.writable, contextKeyForSupportedActions(CodeActionKind.SourceFixAll))\n        });\n    }\n    run(_accessor, editor) {\n        return triggerCodeActionsForEditorSelection(editor, nls.localize('fixAll.noneMessage', \"No fix all action available\"), { include: CodeActionKind.SourceFixAll, includeSourceActions: true }, \"ifSingle\" /* CodeActionAutoApply.IfSingle */, CodeActionTriggerSource.FixAll);\n    }\n}\nexport class AutoFixAction extends EditorAction {\n    constructor() {\n        super({\n            id: autoFixCommandId,\n            label: nls.localize('autoFix.label', \"Auto Fix...\"),\n            alias: 'Auto Fix...',\n            precondition: ContextKeyExpr.and(EditorContextKeys.writable, contextKeyForSupportedActions(CodeActionKind.QuickFix)),\n            kbOpts: {\n                kbExpr: EditorContextKeys.textInputFocus,\n                primary: 512 /* KeyMod.Alt */ | 1024 /* KeyMod.Shift */ | 89 /* KeyCode.Period */,\n                mac: {\n                    primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 89 /* KeyCode.Period */\n                },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    run(_accessor, editor) {\n        return triggerCodeActionsForEditorSelection(editor, nls.localize('editor.action.autoFix.noneMessage', \"No auto fixes available\"), {\n            include: CodeActionKind.QuickFix,\n            onlyIncludePreferredActions: true\n        }, \"ifSingle\" /* CodeActionAutoApply.IfSingle */, CodeActionTriggerSource.AutoFix);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/codeAction/browser/codeActionContributions.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/codeAction/browser/codeActionContributions.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { registerEditorAction, registerEditorCommand, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { editorConfigurationBaseNode } from '../../../common/config/editorConfigurationSchema.js';\nimport { AutoFixAction, CodeActionCommand, FixAllAction, OrganizeImportsAction, QuickFixAction, RefactorAction, SourceAction } from './codeActionCommands.js';\nimport { CodeActionController } from './codeActionController.js';\nimport { LightBulbWidget } from './lightBulbWidget.js';\nimport * as nls from '../../../../nls.js';\nimport { Extensions } from '../../../../platform/configuration/common/configurationRegistry.js';\nimport { Registry } from '../../../../platform/registry/common/platform.js';\nregisterEditorContribution(CodeActionController.ID, CodeActionController, 3 /* EditorContributionInstantiation.Eventually */);\nregisterEditorContribution(LightBulbWidget.ID, LightBulbWidget, 4 /* EditorContributionInstantiation.Lazy */);\nregisterEditorAction(QuickFixAction);\nregisterEditorAction(RefactorAction);\nregisterEditorAction(SourceAction);\nregisterEditorAction(OrganizeImportsAction);\nregisterEditorAction(AutoFixAction);\nregisterEditorAction(FixAllAction);\nregisterEditorCommand(new CodeActionCommand());\nRegistry.as(Extensions.Configuration).registerConfiguration({\n    ...editorConfigurationBaseNode,\n    properties: {\n        'editor.codeActionWidget.showHeaders': {\n            type: 'boolean',\n            scope: 5 /* ConfigurationScope.LANGUAGE_OVERRIDABLE */,\n            description: nls.localize('showCodeActionHeaders', \"Enable/disable showing group headers in the Code Action menu.\"),\n            default: true,\n        },\n    }\n});\nRegistry.as(Extensions.Configuration).registerConfiguration({\n    ...editorConfigurationBaseNode,\n    properties: {\n        'editor.codeActionWidget.includeNearbyQuickFixes': {\n            type: 'boolean',\n            scope: 5 /* ConfigurationScope.LANGUAGE_OVERRIDABLE */,\n            description: nls.localize('includeNearbyQuickFixes', \"Enable/disable showing nearest Quick Fix within a line when not currently on a diagnostic.\"),\n            default: true,\n        },\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/codeAction/browser/codeActionController.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar CodeActionController_1;\nimport { getDomNodePagePosition } from '../../../../base/browser/dom.js';\nimport * as aria from '../../../../base/browser/ui/aria/aria.js';\nimport { onUnexpectedError } from '../../../../base/common/errors.js';\nimport { Lazy } from '../../../../base/common/lazy.js';\nimport { Disposable, MutableDisposable } from '../../../../base/common/lifecycle.js';\nimport { Position } from '../../../common/core/position.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { ApplyCodeActionReason, applyCodeAction } from './codeAction.js';\nimport { CodeActionKeybindingResolver } from './codeActionKeybindingResolver.js';\nimport { toMenuItems } from './codeActionMenu.js';\nimport { LightBulbWidget } from './lightBulbWidget.js';\nimport { MessageController } from '../../message/browser/messageController.js';\nimport { localize } from '../../../../nls.js';\nimport { IActionWidgetService } from '../../../../platform/actionWidget/browser/actionWidget.js';\nimport { ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IMarkerService } from '../../../../platform/markers/common/markers.js';\nimport { IEditorProgressService } from '../../../../platform/progress/common/progress.js';\nimport { editorFindMatchHighlight, editorFindMatchHighlightBorder } from '../../../../platform/theme/common/colorRegistry.js';\nimport { isHighContrast } from '../../../../platform/theme/common/theme.js';\nimport { registerThemingParticipant } from '../../../../platform/theme/common/themeService.js';\nimport { CodeActionKind, CodeActionTriggerSource } from '../common/types.js';\nimport { CodeActionModel } from './codeActionModel.js';\nimport { HierarchicalKind } from '../../../../base/common/hierarchicalKind.js';\nimport { ITelemetryService } from '../../../../platform/telemetry/common/telemetry.js';\nconst DECORATION_CLASS_NAME = 'quickfix-edit-highlight';\nlet CodeActionController = CodeActionController_1 = class CodeActionController extends Disposable {\n    static get(editor) {\n        return editor.getContribution(CodeActionController_1.ID);\n    }\n    constructor(editor, markerService, contextKeyService, instantiationService, languageFeaturesService, progressService, _commandService, _configurationService, _actionWidgetService, _instantiationService, _telemetryService) {\n        super();\n        this._commandService = _commandService;\n        this._configurationService = _configurationService;\n        this._actionWidgetService = _actionWidgetService;\n        this._instantiationService = _instantiationService;\n        this._telemetryService = _telemetryService;\n        this._activeCodeActions = this._register(new MutableDisposable());\n        this._showDisabled = false;\n        this._disposed = false;\n        this._editor = editor;\n        this._model = this._register(new CodeActionModel(this._editor, languageFeaturesService.codeActionProvider, markerService, contextKeyService, progressService, _configurationService));\n        this._register(this._model.onDidChangeState(newState => this.update(newState)));\n        this._lightBulbWidget = new Lazy(() => {\n            const widget = this._editor.getContribution(LightBulbWidget.ID);\n            if (widget) {\n                this._register(widget.onClick(e => this.showCodeActionsFromLightbulb(e.actions, e)));\n            }\n            return widget;\n        });\n        this._resolver = instantiationService.createInstance(CodeActionKeybindingResolver);\n        this._register(this._editor.onDidLayoutChange(() => this._actionWidgetService.hide()));\n    }\n    dispose() {\n        this._disposed = true;\n        super.dispose();\n    }\n    async showCodeActionsFromLightbulb(actions, at) {\n        this._telemetryService.publicLog2('codeAction.showCodeActionsFromLightbulb', {\n            codeActionListLength: actions.validActions.length,\n            codeActions: actions.validActions.map(action => action.action.title),\n            codeActionProviders: actions.validActions.map(action => { var _a, _b; return (_b = (_a = action.provider) === null || _a === void 0 ? void 0 : _a.displayName) !== null && _b !== void 0 ? _b : ''; }),\n        });\n        if (actions.allAIFixes && actions.validActions.length === 1) {\n            const actionItem = actions.validActions[0];\n            const command = actionItem.action.command;\n            if (command && command.id === 'inlineChat.start') {\n                if (command.arguments && command.arguments.length >= 1) {\n                    command.arguments[0] = { ...command.arguments[0], autoSend: false };\n                }\n            }\n            await this._applyCodeAction(actionItem, false, false, ApplyCodeActionReason.FromAILightbulb);\n            return;\n        }\n        await this.showCodeActionList(actions, at, { includeDisabledActions: false, fromLightbulb: true });\n    }\n    showCodeActions(_trigger, actions, at) {\n        return this.showCodeActionList(actions, at, { includeDisabledActions: false, fromLightbulb: false });\n    }\n    manualTriggerAtCurrentPosition(notAvailableMessage, triggerAction, filter, autoApply) {\n        var _a;\n        if (!this._editor.hasModel()) {\n            return;\n        }\n        (_a = MessageController.get(this._editor)) === null || _a === void 0 ? void 0 : _a.closeMessage();\n        const triggerPosition = this._editor.getPosition();\n        this._trigger({ type: 1 /* CodeActionTriggerType.Invoke */, triggerAction, filter, autoApply, context: { notAvailableMessage, position: triggerPosition } });\n    }\n    _trigger(trigger) {\n        return this._model.trigger(trigger);\n    }\n    async _applyCodeAction(action, retrigger, preview, actionReason) {\n        try {\n            await this._instantiationService.invokeFunction(applyCodeAction, action, actionReason, { preview, editor: this._editor });\n        }\n        finally {\n            if (retrigger) {\n                this._trigger({ type: 2 /* CodeActionTriggerType.Auto */, triggerAction: CodeActionTriggerSource.QuickFix, filter: {} });\n            }\n        }\n    }\n    async update(newState) {\n        var _a, _b, _c, _d, _e, _f, _g;\n        if (newState.type !== 1 /* CodeActionsState.Type.Triggered */) {\n            (_a = this._lightBulbWidget.rawValue) === null || _a === void 0 ? void 0 : _a.hide();\n            return;\n        }\n        let actions;\n        try {\n            actions = await newState.actions;\n        }\n        catch (e) {\n            onUnexpectedError(e);\n            return;\n        }\n        if (this._disposed) {\n            return;\n        }\n        (_b = this._lightBulbWidget.value) === null || _b === void 0 ? void 0 : _b.update(actions, newState.trigger, newState.position);\n        if (newState.trigger.type === 1 /* CodeActionTriggerType.Invoke */) {\n            if ((_c = newState.trigger.filter) === null || _c === void 0 ? void 0 : _c.include) { // Triggered for specific scope\n                // Check to see if we want to auto apply.\n                const validActionToApply = this.tryGetValidActionToApply(newState.trigger, actions);\n                if (validActionToApply) {\n                    try {\n                        (_d = this._lightBulbWidget.value) === null || _d === void 0 ? void 0 : _d.hide();\n                        await this._applyCodeAction(validActionToApply, false, false, ApplyCodeActionReason.FromCodeActions);\n                    }\n                    finally {\n                        actions.dispose();\n                    }\n                    return;\n                }\n                // Check to see if there is an action that we would have applied were it not invalid\n                if (newState.trigger.context) {\n                    const invalidAction = this.getInvalidActionThatWouldHaveBeenApplied(newState.trigger, actions);\n                    if (invalidAction && invalidAction.action.disabled) {\n                        (_e = MessageController.get(this._editor)) === null || _e === void 0 ? void 0 : _e.showMessage(invalidAction.action.disabled, newState.trigger.context.position);\n                        actions.dispose();\n                        return;\n                    }\n                }\n            }\n            const includeDisabledActions = !!((_f = newState.trigger.filter) === null || _f === void 0 ? void 0 : _f.include);\n            if (newState.trigger.context) {\n                if (!actions.allActions.length || !includeDisabledActions && !actions.validActions.length) {\n                    (_g = MessageController.get(this._editor)) === null || _g === void 0 ? void 0 : _g.showMessage(newState.trigger.context.notAvailableMessage, newState.trigger.context.position);\n                    this._activeCodeActions.value = actions;\n                    actions.dispose();\n                    return;\n                }\n            }\n            this._activeCodeActions.value = actions;\n            this.showCodeActionList(actions, this.toCoords(newState.position), { includeDisabledActions, fromLightbulb: false });\n        }\n        else {\n            // auto magically triggered\n            if (this._actionWidgetService.isVisible) {\n                // TODO: Figure out if we should update the showing menu?\n                actions.dispose();\n            }\n            else {\n                this._activeCodeActions.value = actions;\n            }\n        }\n    }\n    getInvalidActionThatWouldHaveBeenApplied(trigger, actions) {\n        if (!actions.allActions.length) {\n            return undefined;\n        }\n        if ((trigger.autoApply === \"first\" /* CodeActionAutoApply.First */ && actions.validActions.length === 0)\n            || (trigger.autoApply === \"ifSingle\" /* CodeActionAutoApply.IfSingle */ && actions.allActions.length === 1)) {\n            return actions.allActions.find(({ action }) => action.disabled);\n        }\n        return undefined;\n    }\n    tryGetValidActionToApply(trigger, actions) {\n        if (!actions.validActions.length) {\n            return undefined;\n        }\n        if ((trigger.autoApply === \"first\" /* CodeActionAutoApply.First */ && actions.validActions.length > 0)\n            || (trigger.autoApply === \"ifSingle\" /* CodeActionAutoApply.IfSingle */ && actions.validActions.length === 1)) {\n            return actions.validActions[0];\n        }\n        return undefined;\n    }\n    async showCodeActionList(actions, at, options) {\n        const currentDecorations = this._editor.createDecorationsCollection();\n        const editorDom = this._editor.getDomNode();\n        if (!editorDom) {\n            return;\n        }\n        const actionsToShow = options.includeDisabledActions && (this._showDisabled || actions.validActions.length === 0) ? actions.allActions : actions.validActions;\n        if (!actionsToShow.length) {\n            return;\n        }\n        const anchor = Position.isIPosition(at) ? this.toCoords(at) : at;\n        const delegate = {\n            onSelect: async (action, preview) => {\n                this._applyCodeAction(action, /* retrigger */ true, !!preview, options.fromLightbulb ? ApplyCodeActionReason.FromAILightbulb : ApplyCodeActionReason.FromCodeActions);\n                this._actionWidgetService.hide(false);\n                currentDecorations.clear();\n            },\n            onHide: (didCancel) => {\n                var _a;\n                (_a = this._editor) === null || _a === void 0 ? void 0 : _a.focus();\n                currentDecorations.clear();\n                // Telemetry for showing code actions here. only log on `showLightbulb`. Logs when code action list is quit out.\n                if (options.fromLightbulb && didCancel !== undefined) {\n                    this._telemetryService.publicLog2('codeAction.showCodeActionList.onHide', {\n                        codeActionListLength: actions.validActions.length,\n                        didCancel: didCancel,\n                        codeActions: actions.validActions.map(action => action.action.title),\n                    });\n                }\n            },\n            onHover: async (action, token) => {\n                var _a;\n                if (token.isCancellationRequested) {\n                    return;\n                }\n                let canPreview = false;\n                const actionKind = action.action.kind;\n                if (actionKind) {\n                    const hierarchicalKind = new HierarchicalKind(actionKind);\n                    const refactorKinds = [\n                        CodeActionKind.RefactorExtract,\n                        CodeActionKind.RefactorInline,\n                        CodeActionKind.RefactorRewrite,\n                        CodeActionKind.RefactorMove,\n                        CodeActionKind.Source\n                    ];\n                    canPreview = refactorKinds.some(refactorKind => refactorKind.contains(hierarchicalKind));\n                }\n                return { canPreview: canPreview || !!((_a = action.action.edit) === null || _a === void 0 ? void 0 : _a.edits.length) };\n            },\n            onFocus: (action) => {\n                var _a, _b;\n                if (action && action.action) {\n                    const ranges = action.action.ranges;\n                    const diagnostics = action.action.diagnostics;\n                    currentDecorations.clear();\n                    if (ranges && ranges.length > 0) {\n                        // Handles case for `fix all` where there are multiple diagnostics.\n                        const decorations = (diagnostics && (diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.length) > 1)\n                            ? diagnostics.map(diagnostic => ({ range: diagnostic, options: CodeActionController_1.DECORATION }))\n                            : ranges.map(range => ({ range, options: CodeActionController_1.DECORATION }));\n                        currentDecorations.set(decorations);\n                    }\n                    else if (diagnostics && diagnostics.length > 0) {\n                        const decorations = diagnostics.map(diagnostic => ({ range: diagnostic, options: CodeActionController_1.DECORATION }));\n                        currentDecorations.set(decorations);\n                        const diagnostic = diagnostics[0];\n                        if (diagnostic.startLineNumber && diagnostic.startColumn) {\n                            const selectionText = (_b = (_a = this._editor.getModel()) === null || _a === void 0 ? void 0 : _a.getWordAtPosition({ lineNumber: diagnostic.startLineNumber, column: diagnostic.startColumn })) === null || _b === void 0 ? void 0 : _b.word;\n                            aria.status(localize('editingNewSelection', \"Context: {0} at line {1} and column {2}.\", selectionText, diagnostic.startLineNumber, diagnostic.startColumn));\n                        }\n                    }\n                }\n                else {\n                    currentDecorations.clear();\n                }\n            }\n        };\n        this._actionWidgetService.show('codeActionWidget', true, toMenuItems(actionsToShow, this._shouldShowHeaders(), this._resolver.getResolver()), delegate, anchor, editorDom, this._getActionBarActions(actions, at, options));\n    }\n    toCoords(position) {\n        if (!this._editor.hasModel()) {\n            return { x: 0, y: 0 };\n        }\n        this._editor.revealPosition(position, 1 /* ScrollType.Immediate */);\n        this._editor.render();\n        // Translate to absolute editor position\n        const cursorCoords = this._editor.getScrolledVisiblePosition(position);\n        const editorCoords = getDomNodePagePosition(this._editor.getDomNode());\n        const x = editorCoords.left + cursorCoords.left;\n        const y = editorCoords.top + cursorCoords.top + cursorCoords.height;\n        return { x, y };\n    }\n    _shouldShowHeaders() {\n        var _a;\n        const model = (_a = this._editor) === null || _a === void 0 ? void 0 : _a.getModel();\n        return this._configurationService.getValue('editor.codeActionWidget.showHeaders', { resource: model === null || model === void 0 ? void 0 : model.uri });\n    }\n    _getActionBarActions(actions, at, options) {\n        if (options.fromLightbulb) {\n            return [];\n        }\n        const resultActions = actions.documentation.map((command) => {\n            var _a;\n            return ({\n                id: command.id,\n                label: command.title,\n                tooltip: (_a = command.tooltip) !== null && _a !== void 0 ? _a : '',\n                class: undefined,\n                enabled: true,\n                run: () => { var _a; return this._commandService.executeCommand(command.id, ...((_a = command.arguments) !== null && _a !== void 0 ? _a : [])); },\n            });\n        });\n        if (options.includeDisabledActions && actions.validActions.length > 0 && actions.allActions.length !== actions.validActions.length) {\n            resultActions.push(this._showDisabled ? {\n                id: 'hideMoreActions',\n                label: localize('hideMoreActions', 'Hide Disabled'),\n                enabled: true,\n                tooltip: '',\n                class: undefined,\n                run: () => {\n                    this._showDisabled = false;\n                    return this.showCodeActionList(actions, at, options);\n                }\n            } : {\n                id: 'showMoreActions',\n                label: localize('showMoreActions', 'Show Disabled'),\n                enabled: true,\n                tooltip: '',\n                class: undefined,\n                run: () => {\n                    this._showDisabled = true;\n                    return this.showCodeActionList(actions, at, options);\n                }\n            });\n        }\n        return resultActions;\n    }\n};\nCodeActionController.ID = 'editor.contrib.codeActionController';\nCodeActionController.DECORATION = ModelDecorationOptions.register({\n    description: 'quickfix-highlight',\n    className: DECORATION_CLASS_NAME\n});\nCodeActionController = CodeActionController_1 = __decorate([\n    __param(1, IMarkerService),\n    __param(2, IContextKeyService),\n    __param(3, IInstantiationService),\n    __param(4, ILanguageFeaturesService),\n    __param(5, IEditorProgressService),\n    __param(6, ICommandService),\n    __param(7, IConfigurationService),\n    __param(8, IActionWidgetService),\n    __param(9, IInstantiationService),\n    __param(10, ITelemetryService)\n], CodeActionController);\nexport { CodeActionController };\nregisterThemingParticipant((theme, collector) => {\n    const addBackgroundColorRule = (selector, color) => {\n        if (color) {\n            collector.addRule(`.monaco-editor ${selector} { background-color: ${color}; }`);\n        }\n    };\n    addBackgroundColorRule('.quickfix-edit-highlight', theme.getColor(editorFindMatchHighlight));\n    const findMatchHighlightBorder = theme.getColor(editorFindMatchHighlightBorder);\n    if (findMatchHighlightBorder) {\n        collector.addRule(`.monaco-editor .quickfix-edit-highlight { border: 1px ${isHighContrast(theme.type) ? 'dotted' : 'solid'} ${findMatchHighlightBorder}; box-sizing: border-box; }`);\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/codeAction/browser/codeActionKeybindingResolver.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar CodeActionKeybindingResolver_1;\nimport { HierarchicalKind } from '../../../../base/common/hierarchicalKind.js';\nimport { Lazy } from '../../../../base/common/lazy.js';\nimport { codeActionCommandId, fixAllCommandId, organizeImportsCommandId, refactorCommandId, sourceActionCommandId } from './codeAction.js';\nimport { CodeActionCommandArgs, CodeActionKind } from '../common/types.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nlet CodeActionKeybindingResolver = CodeActionKeybindingResolver_1 = class CodeActionKeybindingResolver {\n    constructor(keybindingService) {\n        this.keybindingService = keybindingService;\n    }\n    getResolver() {\n        // Lazy since we may not actually ever read the value\n        const allCodeActionBindings = new Lazy(() => this.keybindingService.getKeybindings()\n            .filter(item => CodeActionKeybindingResolver_1.codeActionCommands.indexOf(item.command) >= 0)\n            .filter(item => item.resolvedKeybinding)\n            .map((item) => {\n            // Special case these commands since they come built-in with VS Code and don't use 'commandArgs'\n            let commandArgs = item.commandArgs;\n            if (item.command === organizeImportsCommandId) {\n                commandArgs = { kind: CodeActionKind.SourceOrganizeImports.value };\n            }\n            else if (item.command === fixAllCommandId) {\n                commandArgs = { kind: CodeActionKind.SourceFixAll.value };\n            }\n            return {\n                resolvedKeybinding: item.resolvedKeybinding,\n                ...CodeActionCommandArgs.fromUser(commandArgs, {\n                    kind: HierarchicalKind.None,\n                    apply: \"never\" /* CodeActionAutoApply.Never */\n                })\n            };\n        }));\n        return (action) => {\n            if (action.kind) {\n                const binding = this.bestKeybindingForCodeAction(action, allCodeActionBindings.value);\n                return binding === null || binding === void 0 ? void 0 : binding.resolvedKeybinding;\n            }\n            return undefined;\n        };\n    }\n    bestKeybindingForCodeAction(action, candidates) {\n        if (!action.kind) {\n            return undefined;\n        }\n        const kind = new HierarchicalKind(action.kind);\n        return candidates\n            .filter(candidate => candidate.kind.contains(kind))\n            .filter(candidate => {\n            if (candidate.preferred) {\n                // If the candidate keybinding only applies to preferred actions, the this action must also be preferred\n                return action.isPreferred;\n            }\n            return true;\n        })\n            .reduceRight((currentBest, candidate) => {\n            if (!currentBest) {\n                return candidate;\n            }\n            // Select the more specific binding\n            return currentBest.kind.contains(candidate.kind) ? candidate : currentBest;\n        }, undefined);\n    }\n};\nCodeActionKeybindingResolver.codeActionCommands = [\n    refactorCommandId,\n    codeActionCommandId,\n    sourceActionCommandId,\n    organizeImportsCommandId,\n    fixAllCommandId\n];\nCodeActionKeybindingResolver = CodeActionKeybindingResolver_1 = __decorate([\n    __param(0, IKeybindingService)\n], CodeActionKeybindingResolver);\nexport { CodeActionKeybindingResolver };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/codeAction/browser/codeActionMenu.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport '../../../../base/browser/ui/codicons/codiconStyles.js'; // The codicon symbol styles are defined here and must be loaded\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { CodeActionKind } from '../common/types.js';\nimport '../../symbolIcons/browser/symbolIcons.js'; // The codicon symbol colors are defined here and must be loaded to get colors\nimport { localize } from '../../../../nls.js';\nimport { HierarchicalKind } from '../../../../base/common/hierarchicalKind.js';\nconst uncategorizedCodeActionGroup = Object.freeze({ kind: HierarchicalKind.Empty, title: localize('codeAction.widget.id.more', 'More Actions...') });\nconst codeActionGroups = Object.freeze([\n    { kind: CodeActionKind.QuickFix, title: localize('codeAction.widget.id.quickfix', 'Quick Fix') },\n    { kind: CodeActionKind.RefactorExtract, title: localize('codeAction.widget.id.extract', 'Extract'), icon: Codicon.wrench },\n    { kind: CodeActionKind.RefactorInline, title: localize('codeAction.widget.id.inline', 'Inline'), icon: Codicon.wrench },\n    { kind: CodeActionKind.RefactorRewrite, title: localize('codeAction.widget.id.convert', 'Rewrite'), icon: Codicon.wrench },\n    { kind: CodeActionKind.RefactorMove, title: localize('codeAction.widget.id.move', 'Move'), icon: Codicon.wrench },\n    { kind: CodeActionKind.SurroundWith, title: localize('codeAction.widget.id.surround', 'Surround With'), icon: Codicon.surroundWith },\n    { kind: CodeActionKind.Source, title: localize('codeAction.widget.id.source', 'Source Action'), icon: Codicon.symbolFile },\n    uncategorizedCodeActionGroup,\n]);\nexport function toMenuItems(inputCodeActions, showHeaders, keybindingResolver) {\n    if (!showHeaders) {\n        return inputCodeActions.map((action) => {\n            var _a;\n            return {\n                kind: \"action\" /* ActionListItemKind.Action */,\n                item: action,\n                group: uncategorizedCodeActionGroup,\n                disabled: !!action.action.disabled,\n                label: action.action.disabled || action.action.title,\n                canPreview: !!((_a = action.action.edit) === null || _a === void 0 ? void 0 : _a.edits.length),\n            };\n        });\n    }\n    // Group code actions\n    const menuEntries = codeActionGroups.map(group => ({ group, actions: [] }));\n    for (const action of inputCodeActions) {\n        const kind = action.action.kind ? new HierarchicalKind(action.action.kind) : HierarchicalKind.None;\n        for (const menuEntry of menuEntries) {\n            if (menuEntry.group.kind.contains(kind)) {\n                menuEntry.actions.push(action);\n                break;\n            }\n        }\n    }\n    const allMenuItems = [];\n    for (const menuEntry of menuEntries) {\n        if (menuEntry.actions.length) {\n            allMenuItems.push({ kind: \"header\" /* ActionListItemKind.Header */, group: menuEntry.group });\n            for (const action of menuEntry.actions) {\n                const group = menuEntry.group;\n                allMenuItems.push({\n                    kind: \"action\" /* ActionListItemKind.Action */,\n                    item: action,\n                    group: action.action.isAI ? { title: group.title, kind: group.kind, icon: Codicon.sparkle } : group,\n                    label: action.action.title,\n                    disabled: !!action.action.disabled,\n                    keybinding: keybindingResolver(action.action),\n                });\n            }\n        }\n    }\n    return allMenuItems;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/codeAction/browser/codeActionModel.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createCancelablePromise, TimeoutTimer } from '../../../../base/common/async.js';\nimport { isCancellationError } from '../../../../base/common/errors.js';\nimport { Emitter } from '../../../../base/common/event.js';\nimport { Disposable, MutableDisposable } from '../../../../base/common/lifecycle.js';\nimport { isEqual } from '../../../../base/common/resources.js';\nimport { ShowLightbulbIconMode } from '../../../common/config/editorOptions.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { Progress } from '../../../../platform/progress/common/progress.js';\nimport { CodeActionKind, CodeActionTriggerSource } from '../common/types.js';\nimport { getCodeActions } from './codeAction.js';\nimport { HierarchicalKind } from '../../../../base/common/hierarchicalKind.js';\nexport const SUPPORTED_CODE_ACTIONS = new RawContextKey('supportedCodeAction', '');\nexport const APPLY_FIX_ALL_COMMAND_ID = '_typescript.applyFixAllCodeAction';\nclass CodeActionOracle extends Disposable {\n    constructor(_editor, _markerService, _signalChange, _delay = 250) {\n        super();\n        this._editor = _editor;\n        this._markerService = _markerService;\n        this._signalChange = _signalChange;\n        this._delay = _delay;\n        this._autoTriggerTimer = this._register(new TimeoutTimer());\n        this._register(this._markerService.onMarkerChanged(e => this._onMarkerChanges(e)));\n        this._register(this._editor.onDidChangeCursorPosition(() => this._tryAutoTrigger()));\n    }\n    trigger(trigger) {\n        const selection = this._getRangeOfSelectionUnlessWhitespaceEnclosed(trigger);\n        this._signalChange(selection ? { trigger, selection } : undefined);\n    }\n    _onMarkerChanges(resources) {\n        const model = this._editor.getModel();\n        if (model && resources.some(resource => isEqual(resource, model.uri))) {\n            this._tryAutoTrigger();\n        }\n    }\n    _tryAutoTrigger() {\n        this._autoTriggerTimer.cancelAndSet(() => {\n            this.trigger({ type: 2 /* CodeActionTriggerType.Auto */, triggerAction: CodeActionTriggerSource.Default });\n        }, this._delay);\n    }\n    _getRangeOfSelectionUnlessWhitespaceEnclosed(trigger) {\n        if (!this._editor.hasModel()) {\n            return undefined;\n        }\n        const selection = this._editor.getSelection();\n        if (trigger.type === 1 /* CodeActionTriggerType.Invoke */) {\n            return selection;\n        }\n        const enabled = this._editor.getOption(65 /* EditorOption.lightbulb */).enabled;\n        if (enabled === ShowLightbulbIconMode.Off) {\n            return undefined;\n        }\n        else if (enabled === ShowLightbulbIconMode.On) {\n            return selection;\n        }\n        else if (enabled === ShowLightbulbIconMode.OnCode) {\n            const isSelectionEmpty = selection.isEmpty();\n            if (!isSelectionEmpty) {\n                return selection;\n            }\n            const model = this._editor.getModel();\n            const { lineNumber, column } = selection.getPosition();\n            const line = model.getLineContent(lineNumber);\n            if (line.length === 0) {\n                // empty line\n                return undefined;\n            }\n            else if (column === 1) {\n                // look only right\n                if (/\\s/.test(line[0])) {\n                    return undefined;\n                }\n            }\n            else if (column === model.getLineMaxColumn(lineNumber)) {\n                // look only left\n                if (/\\s/.test(line[line.length - 1])) {\n                    return undefined;\n                }\n            }\n            else {\n                // look left and right\n                if (/\\s/.test(line[column - 2]) && /\\s/.test(line[column - 1])) {\n                    return undefined;\n                }\n            }\n        }\n        return selection;\n    }\n}\nexport var CodeActionsState;\n(function (CodeActionsState) {\n    CodeActionsState.Empty = { type: 0 /* Type.Empty */ };\n    class Triggered {\n        constructor(trigger, position, _cancellablePromise) {\n            this.trigger = trigger;\n            this.position = position;\n            this._cancellablePromise = _cancellablePromise;\n            this.type = 1 /* Type.Triggered */;\n            this.actions = _cancellablePromise.catch((e) => {\n                if (isCancellationError(e)) {\n                    return emptyCodeActionSet;\n                }\n                throw e;\n            });\n        }\n        cancel() {\n            this._cancellablePromise.cancel();\n        }\n    }\n    CodeActionsState.Triggered = Triggered;\n})(CodeActionsState || (CodeActionsState = {}));\nconst emptyCodeActionSet = Object.freeze({\n    allActions: [],\n    validActions: [],\n    dispose: () => { },\n    documentation: [],\n    hasAutoFix: false,\n    hasAIFix: false,\n    allAIFixes: false,\n});\nexport class CodeActionModel extends Disposable {\n    constructor(_editor, _registry, _markerService, contextKeyService, _progressService, _configurationService) {\n        super();\n        this._editor = _editor;\n        this._registry = _registry;\n        this._markerService = _markerService;\n        this._progressService = _progressService;\n        this._configurationService = _configurationService;\n        this._codeActionOracle = this._register(new MutableDisposable());\n        this._state = CodeActionsState.Empty;\n        this._onDidChangeState = this._register(new Emitter());\n        this.onDidChangeState = this._onDidChangeState.event;\n        this._disposed = false;\n        this._supportedCodeActions = SUPPORTED_CODE_ACTIONS.bindTo(contextKeyService);\n        this._register(this._editor.onDidChangeModel(() => this._update()));\n        this._register(this._editor.onDidChangeModelLanguage(() => this._update()));\n        this._register(this._registry.onDidChange(() => this._update()));\n        this._register(this._editor.onDidChangeConfiguration((e) => {\n            if (e.hasChanged(65 /* EditorOption.lightbulb */)) {\n                this._update();\n            }\n        }));\n        this._update();\n    }\n    dispose() {\n        if (this._disposed) {\n            return;\n        }\n        this._disposed = true;\n        super.dispose();\n        this.setState(CodeActionsState.Empty, true);\n    }\n    _settingEnabledNearbyQuickfixes() {\n        var _a;\n        const model = (_a = this._editor) === null || _a === void 0 ? void 0 : _a.getModel();\n        return this._configurationService ? this._configurationService.getValue('editor.codeActionWidget.includeNearbyQuickFixes', { resource: model === null || model === void 0 ? void 0 : model.uri }) : false;\n    }\n    _update() {\n        if (this._disposed) {\n            return;\n        }\n        this._codeActionOracle.value = undefined;\n        this.setState(CodeActionsState.Empty);\n        const model = this._editor.getModel();\n        if (model\n            && this._registry.has(model)\n            && !this._editor.getOption(91 /* EditorOption.readOnly */)) {\n            const supportedActions = this._registry.all(model).flatMap(provider => { var _a; return (_a = provider.providedCodeActionKinds) !== null && _a !== void 0 ? _a : []; });\n            this._supportedCodeActions.set(supportedActions.join(' '));\n            this._codeActionOracle.value = new CodeActionOracle(this._editor, this._markerService, trigger => {\n                var _a;\n                if (!trigger) {\n                    this.setState(CodeActionsState.Empty);\n                    return;\n                }\n                const startPosition = trigger.selection.getStartPosition();\n                const actions = createCancelablePromise(async (token) => {\n                    var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n                    if (this._settingEnabledNearbyQuickfixes() && trigger.trigger.type === 1 /* CodeActionTriggerType.Invoke */ && (trigger.trigger.triggerAction === CodeActionTriggerSource.QuickFix || ((_b = (_a = trigger.trigger.filter) === null || _a === void 0 ? void 0 : _a.include) === null || _b === void 0 ? void 0 : _b.contains(CodeActionKind.QuickFix)))) {\n                        const codeActionSet = await getCodeActions(this._registry, model, trigger.selection, trigger.trigger, Progress.None, token);\n                        const allCodeActions = [...codeActionSet.allActions];\n                        if (token.isCancellationRequested) {\n                            return emptyCodeActionSet;\n                        }\n                        // Search for quickfixes in the curret code action set.\n                        const foundQuickfix = (_c = codeActionSet.validActions) === null || _c === void 0 ? void 0 : _c.some(action => action.action.kind ? CodeActionKind.QuickFix.contains(new HierarchicalKind(action.action.kind)) : false);\n                        const allMarkers = this._markerService.read({ resource: model.uri });\n                        if (foundQuickfix) {\n                            for (const action of codeActionSet.validActions) {\n                                if ((_e = (_d = action.action.command) === null || _d === void 0 ? void 0 : _d.arguments) === null || _e === void 0 ? void 0 : _e.some(arg => typeof arg === 'string' && arg.includes(APPLY_FIX_ALL_COMMAND_ID))) {\n                                    action.action.diagnostics = [...allMarkers.filter(marker => marker.relatedInformation)];\n                                }\n                            }\n                            return { validActions: codeActionSet.validActions, allActions: allCodeActions, documentation: codeActionSet.documentation, hasAutoFix: codeActionSet.hasAutoFix, hasAIFix: codeActionSet.hasAIFix, allAIFixes: codeActionSet.allAIFixes, dispose: () => { codeActionSet.dispose(); } };\n                        }\n                        else if (!foundQuickfix) {\n                            // If markers exists, and there are no quickfixes found or length is zero, check for quickfixes on that line.\n                            if (allMarkers.length > 0) {\n                                const currPosition = trigger.selection.getPosition();\n                                let trackedPosition = currPosition;\n                                let distance = Number.MAX_VALUE;\n                                const currentActions = [...codeActionSet.validActions];\n                                for (const marker of allMarkers) {\n                                    const col = marker.endColumn;\n                                    const row = marker.endLineNumber;\n                                    const startRow = marker.startLineNumber;\n                                    // Found quickfix on the same line and check relative distance to other markers\n                                    if ((row === currPosition.lineNumber || startRow === currPosition.lineNumber)) {\n                                        trackedPosition = new Position(row, col);\n                                        const newCodeActionTrigger = {\n                                            type: trigger.trigger.type,\n                                            triggerAction: trigger.trigger.triggerAction,\n                                            filter: { include: ((_f = trigger.trigger.filter) === null || _f === void 0 ? void 0 : _f.include) ? (_g = trigger.trigger.filter) === null || _g === void 0 ? void 0 : _g.include : CodeActionKind.QuickFix },\n                                            autoApply: trigger.trigger.autoApply,\n                                            context: { notAvailableMessage: ((_h = trigger.trigger.context) === null || _h === void 0 ? void 0 : _h.notAvailableMessage) || '', position: trackedPosition }\n                                        };\n                                        const selectionAsPosition = new Selection(trackedPosition.lineNumber, trackedPosition.column, trackedPosition.lineNumber, trackedPosition.column);\n                                        const actionsAtMarker = await getCodeActions(this._registry, model, selectionAsPosition, newCodeActionTrigger, Progress.None, token);\n                                        if (actionsAtMarker.validActions.length !== 0) {\n                                            for (const action of actionsAtMarker.validActions) {\n                                                if ((_k = (_j = action.action.command) === null || _j === void 0 ? void 0 : _j.arguments) === null || _k === void 0 ? void 0 : _k.some(arg => typeof arg === 'string' && arg.includes(APPLY_FIX_ALL_COMMAND_ID))) {\n                                                    action.action.diagnostics = [...allMarkers.filter(marker => marker.relatedInformation)];\n                                                }\n                                            }\n                                            if (codeActionSet.allActions.length === 0) {\n                                                allCodeActions.push(...actionsAtMarker.allActions);\n                                            }\n                                            // Already filtered through to only get quickfixes, so no need to filter again.\n                                            if (Math.abs(currPosition.column - col) < distance) {\n                                                currentActions.unshift(...actionsAtMarker.validActions);\n                                            }\n                                            else {\n                                                currentActions.push(...actionsAtMarker.validActions);\n                                            }\n                                        }\n                                        distance = Math.abs(currPosition.column - col);\n                                    }\n                                }\n                                const filteredActions = currentActions.filter((action, index, self) => self.findIndex((a) => a.action.title === action.action.title) === index);\n                                filteredActions.sort((a, b) => {\n                                    if (a.action.isPreferred && !b.action.isPreferred) {\n                                        return -1;\n                                    }\n                                    else if (!a.action.isPreferred && b.action.isPreferred) {\n                                        return 1;\n                                    }\n                                    else if (a.action.isAI && !b.action.isAI) {\n                                        return 1;\n                                    }\n                                    else if (!a.action.isAI && b.action.isAI) {\n                                        return -1;\n                                    }\n                                    else {\n                                        return 0;\n                                    }\n                                });\n                                // Only retriggers if actually found quickfix on the same line as cursor\n                                return { validActions: filteredActions, allActions: allCodeActions, documentation: codeActionSet.documentation, hasAutoFix: codeActionSet.hasAutoFix, hasAIFix: codeActionSet.hasAIFix, allAIFixes: codeActionSet.allAIFixes, dispose: () => { codeActionSet.dispose(); } };\n                            }\n                        }\n                    }\n                    // temporarilly hiding here as this is enabled/disabled behind a setting.\n                    return getCodeActions(this._registry, model, trigger.selection, trigger.trigger, Progress.None, token);\n                });\n                if (trigger.trigger.type === 1 /* CodeActionTriggerType.Invoke */) {\n                    (_a = this._progressService) === null || _a === void 0 ? void 0 : _a.showWhile(actions, 250);\n                }\n                const newState = new CodeActionsState.Triggered(trigger.trigger, startPosition, actions);\n                let isManualToAutoTransition = false;\n                if (this._state.type === 1 /* CodeActionsState.Type.Triggered */) {\n                    // Check if the current state is manual and the new state is automatic\n                    isManualToAutoTransition = this._state.trigger.type === 1 /* CodeActionTriggerType.Invoke */ &&\n                        newState.type === 1 /* CodeActionsState.Type.Triggered */ &&\n                        newState.trigger.type === 2 /* CodeActionTriggerType.Auto */ &&\n                        this._state.position !== newState.position;\n                }\n                // Do not trigger state if current state is manual and incoming state is automatic\n                if (!isManualToAutoTransition) {\n                    this.setState(newState);\n                }\n                else {\n                    // Reset the new state after getting code actions back.\n                    setTimeout(() => {\n                        this.setState(newState);\n                    }, 500);\n                }\n            }, undefined);\n            this._codeActionOracle.value.trigger({ type: 2 /* CodeActionTriggerType.Auto */, triggerAction: CodeActionTriggerSource.Default });\n        }\n        else {\n            this._supportedCodeActions.reset();\n        }\n    }\n    trigger(trigger) {\n        var _a;\n        (_a = this._codeActionOracle.value) === null || _a === void 0 ? void 0 : _a.trigger(trigger);\n    }\n    setState(newState, skipNotify) {\n        if (newState === this._state) {\n            return;\n        }\n        // Cancel old request\n        if (this._state.type === 1 /* CodeActionsState.Type.Triggered */) {\n            this._state.cancel();\n        }\n        this._state = newState;\n        if (!skipNotify && !this._disposed) {\n            this._onDidChangeState.fire(newState);\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/codeAction/browser/lightBulbWidget.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .lightBulbWidget {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.monaco-editor .lightBulbWidget:hover{\n\tcursor: pointer;\n}\n\n.monaco-editor .lightBulbWidget.codicon-light-bulb,\n.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle {\n\tcolor: var(--vscode-editorLightBulb-foreground);\n}\n\n.monaco-editor .lightBulbWidget.codicon-lightbulb-autofix,\n.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle-autofix {\n\tcolor: var(--vscode-editorLightBulbAutoFix-foreground, var(--vscode-editorLightBulb-foreground));\n}\n\n.monaco-editor .lightBulbWidget.codicon-sparkle-filled {\n\tcolor: var(--vscode-editorLightBulbAi-foreground, var(--vscode-icon-foreground));\n}\n\n.monaco-editor .lightBulbWidget:before {\n\tposition: relative;\n\tz-index: 2;\n}\n\n.monaco-editor .lightBulbWidget:after {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tcontent: '';\n\tdisplay: block;\n\twidth: 100%;\n\theight: 100%;\n\topacity: 0.3;\n\tbackground-color: var(--vscode-editor-background);\n\tz-index: 1;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/codeAction/browser/lightBulbWidget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar LightBulbWidget_1;\nimport * as dom from '../../../../base/browser/dom.js';\nimport { Gesture } from '../../../../base/browser/touch.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { Emitter, Event } from '../../../../base/common/event.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { ThemeIcon } from '../../../../base/common/themables.js';\nimport './lightBulbWidget.css';\nimport { computeIndentLevel } from '../../../common/model/utils.js';\nimport { autoFixCommandId, quickFixCommandId } from './codeAction.js';\nimport * as nls from '../../../../nls.js';\nimport { ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nvar LightBulbState;\n(function (LightBulbState) {\n    LightBulbState.Hidden = { type: 0 /* Type.Hidden */ };\n    class Showing {\n        constructor(actions, trigger, editorPosition, widgetPosition) {\n            this.actions = actions;\n            this.trigger = trigger;\n            this.editorPosition = editorPosition;\n            this.widgetPosition = widgetPosition;\n            this.type = 1 /* Type.Showing */;\n        }\n    }\n    LightBulbState.Showing = Showing;\n})(LightBulbState || (LightBulbState = {}));\nlet LightBulbWidget = LightBulbWidget_1 = class LightBulbWidget extends Disposable {\n    constructor(_editor, _keybindingService, commandService) {\n        super();\n        this._editor = _editor;\n        this._keybindingService = _keybindingService;\n        this._onClick = this._register(new Emitter());\n        this.onClick = this._onClick.event;\n        this._state = LightBulbState.Hidden;\n        this._iconClasses = [];\n        this._domNode = dom.$('div.lightBulbWidget');\n        this._domNode.role = 'listbox';\n        this._register(Gesture.ignoreTarget(this._domNode));\n        this._editor.addContentWidget(this);\n        this._register(this._editor.onDidChangeModelContent(_ => {\n            // cancel when the line in question has been removed\n            const editorModel = this._editor.getModel();\n            if (this.state.type !== 1 /* LightBulbState.Type.Showing */ || !editorModel || this.state.editorPosition.lineNumber >= editorModel.getLineCount()) {\n                this.hide();\n            }\n        }));\n        this._register(dom.addStandardDisposableGenericMouseDownListener(this._domNode, e => {\n            if (this.state.type !== 1 /* LightBulbState.Type.Showing */) {\n                return;\n            }\n            // Make sure that focus / cursor location is not lost when clicking widget icon\n            this._editor.focus();\n            e.preventDefault();\n            // a bit of extra work to make sure the menu\n            // doesn't cover the line-text\n            const { top, height } = dom.getDomNodePagePosition(this._domNode);\n            const lineHeight = this._editor.getOption(67 /* EditorOption.lineHeight */);\n            let pad = Math.floor(lineHeight / 3);\n            if (this.state.widgetPosition.position !== null && this.state.widgetPosition.position.lineNumber < this.state.editorPosition.lineNumber) {\n                pad += lineHeight;\n            }\n            this._onClick.fire({\n                x: e.posx,\n                y: top + height + pad,\n                actions: this.state.actions,\n                trigger: this.state.trigger,\n            });\n        }));\n        this._register(dom.addDisposableListener(this._domNode, 'mouseenter', (e) => {\n            if ((e.buttons & 1) !== 1) {\n                return;\n            }\n            // mouse enters lightbulb while the primary/left button\n            // is being pressed -> hide the lightbulb\n            this.hide();\n        }));\n        this._register(Event.runAndSubscribe(this._keybindingService.onDidUpdateKeybindings, () => {\n            var _a, _b, _c, _d;\n            this._preferredKbLabel = (_b = (_a = this._keybindingService.lookupKeybinding(autoFixCommandId)) === null || _a === void 0 ? void 0 : _a.getLabel()) !== null && _b !== void 0 ? _b : undefined;\n            this._quickFixKbLabel = (_d = (_c = this._keybindingService.lookupKeybinding(quickFixCommandId)) === null || _c === void 0 ? void 0 : _c.getLabel()) !== null && _d !== void 0 ? _d : undefined;\n            this._updateLightBulbTitleAndIcon();\n        }));\n    }\n    dispose() {\n        super.dispose();\n        this._editor.removeContentWidget(this);\n    }\n    getId() {\n        return 'LightBulbWidget';\n    }\n    getDomNode() {\n        return this._domNode;\n    }\n    getPosition() {\n        return this._state.type === 1 /* LightBulbState.Type.Showing */ ? this._state.widgetPosition : null;\n    }\n    update(actions, trigger, atPosition) {\n        if (actions.validActions.length <= 0) {\n            return this.hide();\n        }\n        const options = this._editor.getOptions();\n        if (!options.get(65 /* EditorOption.lightbulb */).enabled) {\n            return this.hide();\n        }\n        const model = this._editor.getModel();\n        if (!model) {\n            return this.hide();\n        }\n        const { lineNumber, column } = model.validatePosition(atPosition);\n        const tabSize = model.getOptions().tabSize;\n        const fontInfo = this._editor.getOptions().get(50 /* EditorOption.fontInfo */);\n        const lineContent = model.getLineContent(lineNumber);\n        const indent = computeIndentLevel(lineContent, tabSize);\n        const lineHasSpace = fontInfo.spaceWidth * indent > 22;\n        const isFolded = (lineNumber) => {\n            return lineNumber > 2 && this._editor.getTopForLineNumber(lineNumber) === this._editor.getTopForLineNumber(lineNumber - 1);\n        };\n        let effectiveLineNumber = lineNumber;\n        let effectiveColumnNumber = 1;\n        if (!lineHasSpace) {\n            if (lineNumber > 1 && !isFolded(lineNumber - 1)) {\n                effectiveLineNumber -= 1;\n            }\n            else if ((lineNumber < model.getLineCount()) && !isFolded(lineNumber + 1)) {\n                effectiveLineNumber += 1;\n            }\n            else if (column * fontInfo.spaceWidth < 22) {\n                // cannot show lightbulb above/below and showing\n                // it inline would overlay the cursor...\n                return this.hide();\n            }\n            effectiveColumnNumber = /^\\S\\s*$/.test(model.getLineContent(effectiveLineNumber)) ? 2 : 1;\n        }\n        this.state = new LightBulbState.Showing(actions, trigger, atPosition, {\n            position: { lineNumber: effectiveLineNumber, column: effectiveColumnNumber },\n            preference: LightBulbWidget_1._posPref\n        });\n        const validActions = actions.validActions;\n        const actionKind = actions.validActions[0].action.kind;\n        if (validActions.length !== 1 || !actionKind) {\n            this._editor.layoutContentWidget(this);\n            return;\n        }\n        this._editor.layoutContentWidget(this);\n    }\n    hide() {\n        if (this.state === LightBulbState.Hidden) {\n            return;\n        }\n        this.state = LightBulbState.Hidden;\n        this._editor.layoutContentWidget(this);\n    }\n    get state() { return this._state; }\n    set state(value) {\n        this._state = value;\n        this._updateLightBulbTitleAndIcon();\n    }\n    _updateLightBulbTitleAndIcon() {\n        this._domNode.classList.remove(...this._iconClasses);\n        this._iconClasses = [];\n        if (this.state.type !== 1 /* LightBulbState.Type.Showing */) {\n            return;\n        }\n        let icon;\n        let autoRun = false;\n        if (this.state.actions.allAIFixes) {\n            icon = Codicon.sparkleFilled;\n            if (this.state.actions.validActions.length === 1) {\n                autoRun = true;\n            }\n        }\n        else if (this.state.actions.hasAutoFix) {\n            if (this.state.actions.hasAIFix) {\n                icon = Codicon.lightbulbSparkleAutofix;\n            }\n            else {\n                icon = Codicon.lightbulbAutofix;\n            }\n        }\n        else if (this.state.actions.hasAIFix) {\n            icon = Codicon.lightbulbSparkle;\n        }\n        else {\n            icon = Codicon.lightBulb;\n        }\n        this._updateLightbulbTitle(this.state.actions.hasAutoFix, autoRun);\n        this._iconClasses = ThemeIcon.asClassNameArray(icon);\n        this._domNode.classList.add(...this._iconClasses);\n    }\n    _updateLightbulbTitle(autoFix, autoRun) {\n        if (this.state.type !== 1 /* LightBulbState.Type.Showing */) {\n            return;\n        }\n        if (autoRun) {\n            this.title = nls.localize('codeActionAutoRun', \"Run: {0}\", this.state.actions.validActions[0].action.title);\n        }\n        else if (autoFix && this._preferredKbLabel) {\n            this.title = nls.localize('preferredcodeActionWithKb', \"Show Code Actions. Preferred Quick Fix Available ({0})\", this._preferredKbLabel);\n        }\n        else if (!autoFix && this._quickFixKbLabel) {\n            this.title = nls.localize('codeActionWithKb', \"Show Code Actions ({0})\", this._quickFixKbLabel);\n        }\n        else if (!autoFix) {\n            this.title = nls.localize('codeAction', \"Show Code Actions\");\n        }\n    }\n    set title(value) {\n        this._domNode.title = value;\n    }\n};\nLightBulbWidget.ID = 'editor.contrib.lightbulbWidget';\nLightBulbWidget._posPref = [0 /* ContentWidgetPositionPreference.EXACT */];\nLightBulbWidget = LightBulbWidget_1 = __decorate([\n    __param(1, IKeybindingService),\n    __param(2, ICommandService)\n], LightBulbWidget);\nexport { LightBulbWidget };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/codeAction/common/types.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { HierarchicalKind } from '../../../../base/common/hierarchicalKind.js';\nexport const CodeActionKind = new class {\n    constructor() {\n        this.QuickFix = new HierarchicalKind('quickfix');\n        this.Refactor = new HierarchicalKind('refactor');\n        this.RefactorExtract = this.Refactor.append('extract');\n        this.RefactorInline = this.Refactor.append('inline');\n        this.RefactorMove = this.Refactor.append('move');\n        this.RefactorRewrite = this.Refactor.append('rewrite');\n        this.Notebook = new HierarchicalKind('notebook');\n        this.Source = new HierarchicalKind('source');\n        this.SourceOrganizeImports = this.Source.append('organizeImports');\n        this.SourceFixAll = this.Source.append('fixAll');\n        this.SurroundWith = this.Refactor.append('surround');\n    }\n};\nexport var CodeActionTriggerSource;\n(function (CodeActionTriggerSource) {\n    CodeActionTriggerSource[\"Refactor\"] = \"refactor\";\n    CodeActionTriggerSource[\"RefactorPreview\"] = \"refactor preview\";\n    CodeActionTriggerSource[\"Lightbulb\"] = \"lightbulb\";\n    CodeActionTriggerSource[\"Default\"] = \"other (default)\";\n    CodeActionTriggerSource[\"SourceAction\"] = \"source action\";\n    CodeActionTriggerSource[\"QuickFix\"] = \"quick fix action\";\n    CodeActionTriggerSource[\"FixAll\"] = \"fix all\";\n    CodeActionTriggerSource[\"OrganizeImports\"] = \"organize imports\";\n    CodeActionTriggerSource[\"AutoFix\"] = \"auto fix\";\n    CodeActionTriggerSource[\"QuickFixHover\"] = \"quick fix hover window\";\n    CodeActionTriggerSource[\"OnSave\"] = \"save participants\";\n    CodeActionTriggerSource[\"ProblemsView\"] = \"problems view\";\n})(CodeActionTriggerSource || (CodeActionTriggerSource = {}));\nexport function mayIncludeActionsOfKind(filter, providedKind) {\n    // A provided kind may be a subset or superset of our filtered kind.\n    if (filter.include && !filter.include.intersects(providedKind)) {\n        return false;\n    }\n    if (filter.excludes) {\n        if (filter.excludes.some(exclude => excludesAction(providedKind, exclude, filter.include))) {\n            return false;\n        }\n    }\n    // Don't return source actions unless they are explicitly requested\n    if (!filter.includeSourceActions && CodeActionKind.Source.contains(providedKind)) {\n        return false;\n    }\n    return true;\n}\nexport function filtersAction(filter, action) {\n    const actionKind = action.kind ? new HierarchicalKind(action.kind) : undefined;\n    // Filter out actions by kind\n    if (filter.include) {\n        if (!actionKind || !filter.include.contains(actionKind)) {\n            return false;\n        }\n    }\n    if (filter.excludes) {\n        if (actionKind && filter.excludes.some(exclude => excludesAction(actionKind, exclude, filter.include))) {\n            return false;\n        }\n    }\n    // Don't return source actions unless they are explicitly requested\n    if (!filter.includeSourceActions) {\n        if (actionKind && CodeActionKind.Source.contains(actionKind)) {\n            return false;\n        }\n    }\n    if (filter.onlyIncludePreferredActions) {\n        if (!action.isPreferred) {\n            return false;\n        }\n    }\n    return true;\n}\nfunction excludesAction(providedKind, exclude, include) {\n    if (!exclude.contains(providedKind)) {\n        return false;\n    }\n    if (include && exclude.contains(include)) {\n        // The include is more specific, don't filter out\n        return false;\n    }\n    return true;\n}\nexport class CodeActionCommandArgs {\n    static fromUser(arg, defaults) {\n        if (!arg || typeof arg !== 'object') {\n            return new CodeActionCommandArgs(defaults.kind, defaults.apply, false);\n        }\n        return new CodeActionCommandArgs(CodeActionCommandArgs.getKindFromUser(arg, defaults.kind), CodeActionCommandArgs.getApplyFromUser(arg, defaults.apply), CodeActionCommandArgs.getPreferredUser(arg));\n    }\n    static getApplyFromUser(arg, defaultAutoApply) {\n        switch (typeof arg.apply === 'string' ? arg.apply.toLowerCase() : '') {\n            case 'first': return \"first\" /* CodeActionAutoApply.First */;\n            case 'never': return \"never\" /* CodeActionAutoApply.Never */;\n            case 'ifsingle': return \"ifSingle\" /* CodeActionAutoApply.IfSingle */;\n            default: return defaultAutoApply;\n        }\n    }\n    static getKindFromUser(arg, defaultKind) {\n        return typeof arg.kind === 'string'\n            ? new HierarchicalKind(arg.kind)\n            : defaultKind;\n    }\n    static getPreferredUser(arg) {\n        return typeof arg.preferred === 'boolean'\n            ? arg.preferred\n            : false;\n    }\n    constructor(kind, apply, preferred) {\n        this.kind = kind;\n        this.apply = apply;\n        this.preferred = preferred;\n    }\n}\nexport class CodeActionItem {\n    constructor(action, provider, highlightRange) {\n        this.action = action;\n        this.provider = provider;\n        this.highlightRange = highlightRange;\n    }\n    async resolve(token) {\n        var _a;\n        if (((_a = this.provider) === null || _a === void 0 ? void 0 : _a.resolveCodeAction) && !this.action.edit) {\n            let action;\n            try {\n                action = await this.provider.resolveCodeAction(this.action, token);\n            }\n            catch (err) {\n                onUnexpectedExternalError(err);\n            }\n            if (action) {\n                this.action.edit = action.edit;\n            }\n        }\n        return this;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/codelens/browser/codeLensCache.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Event } from '../../../../base/common/event.js';\nimport { LRUCache } from '../../../../base/common/map.js';\nimport { Range } from '../../../common/core/range.js';\nimport { CodeLensModel } from './codelens.js';\nimport { registerSingleton } from '../../../../platform/instantiation/common/extensions.js';\nimport { createDecorator } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IStorageService, WillSaveStateReason } from '../../../../platform/storage/common/storage.js';\nimport { mainWindow } from '../../../../base/browser/window.js';\nimport { runWhenWindowIdle } from '../../../../base/browser/dom.js';\nexport const ICodeLensCache = createDecorator('ICodeLensCache');\nclass CacheItem {\n    constructor(lineCount, data) {\n        this.lineCount = lineCount;\n        this.data = data;\n    }\n}\nlet CodeLensCache = class CodeLensCache {\n    constructor(storageService) {\n        this._fakeProvider = new class {\n            provideCodeLenses() {\n                throw new Error('not supported');\n            }\n        };\n        this._cache = new LRUCache(20, 0.75);\n        // remove old data\n        const oldkey = 'codelens/cache';\n        runWhenWindowIdle(mainWindow, () => storageService.remove(oldkey, 1 /* StorageScope.WORKSPACE */));\n        // restore lens data on start\n        const key = 'codelens/cache2';\n        const raw = storageService.get(key, 1 /* StorageScope.WORKSPACE */, '{}');\n        this._deserialize(raw);\n        // store lens data on shutdown\n        Event.once(storageService.onWillSaveState)(e => {\n            if (e.reason === WillSaveStateReason.SHUTDOWN) {\n                storageService.store(key, this._serialize(), 1 /* StorageScope.WORKSPACE */, 1 /* StorageTarget.MACHINE */);\n            }\n        });\n    }\n    put(model, data) {\n        // create a copy of the model that is without command-ids\n        // but with comand-labels\n        const copyItems = data.lenses.map(item => {\n            var _a;\n            return {\n                range: item.symbol.range,\n                command: item.symbol.command && { id: '', title: (_a = item.symbol.command) === null || _a === void 0 ? void 0 : _a.title },\n            };\n        });\n        const copyModel = new CodeLensModel();\n        copyModel.add({ lenses: copyItems, dispose: () => { } }, this._fakeProvider);\n        const item = new CacheItem(model.getLineCount(), copyModel);\n        this._cache.set(model.uri.toString(), item);\n    }\n    get(model) {\n        const item = this._cache.get(model.uri.toString());\n        return item && item.lineCount === model.getLineCount() ? item.data : undefined;\n    }\n    delete(model) {\n        this._cache.delete(model.uri.toString());\n    }\n    // --- persistence\n    _serialize() {\n        const data = Object.create(null);\n        for (const [key, value] of this._cache) {\n            const lines = new Set();\n            for (const d of value.data.lenses) {\n                lines.add(d.symbol.range.startLineNumber);\n            }\n            data[key] = {\n                lineCount: value.lineCount,\n                lines: [...lines.values()]\n            };\n        }\n        return JSON.stringify(data);\n    }\n    _deserialize(raw) {\n        try {\n            const data = JSON.parse(raw);\n            for (const key in data) {\n                const element = data[key];\n                const lenses = [];\n                for (const line of element.lines) {\n                    lenses.push({ range: new Range(line, 1, line, 11) });\n                }\n                const model = new CodeLensModel();\n                model.add({ lenses, dispose() { } }, this._fakeProvider);\n                this._cache.set(key, new CacheItem(element.lineCount, model));\n            }\n        }\n        catch (_a) {\n            // ignore...\n        }\n    }\n};\nCodeLensCache = __decorate([\n    __param(0, IStorageService)\n], CodeLensCache);\nexport { CodeLensCache };\nregisterSingleton(ICodeLensCache, CodeLensCache, 1 /* InstantiationType.Delayed */);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/codelens/browser/codelens.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { illegalArgument, onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { assertType } from '../../../../base/common/types.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport { IModelService } from '../../../common/services/model.js';\nimport { CommandsRegistry } from '../../../../platform/commands/common/commands.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nexport class CodeLensModel {\n    constructor() {\n        this.lenses = [];\n        this._disposables = new DisposableStore();\n    }\n    dispose() {\n        this._disposables.dispose();\n    }\n    get isDisposed() {\n        return this._disposables.isDisposed;\n    }\n    add(list, provider) {\n        this._disposables.add(list);\n        for (const symbol of list.lenses) {\n            this.lenses.push({ symbol, provider });\n        }\n    }\n}\nexport async function getCodeLensModel(registry, model, token) {\n    const provider = registry.ordered(model);\n    const providerRanks = new Map();\n    const result = new CodeLensModel();\n    const promises = provider.map(async (provider, i) => {\n        providerRanks.set(provider, i);\n        try {\n            const list = await Promise.resolve(provider.provideCodeLenses(model, token));\n            if (list) {\n                result.add(list, provider);\n            }\n        }\n        catch (err) {\n            onUnexpectedExternalError(err);\n        }\n    });\n    await Promise.all(promises);\n    result.lenses = result.lenses.sort((a, b) => {\n        // sort by lineNumber, provider-rank, and column\n        if (a.symbol.range.startLineNumber < b.symbol.range.startLineNumber) {\n            return -1;\n        }\n        else if (a.symbol.range.startLineNumber > b.symbol.range.startLineNumber) {\n            return 1;\n        }\n        else if ((providerRanks.get(a.provider)) < (providerRanks.get(b.provider))) {\n            return -1;\n        }\n        else if ((providerRanks.get(a.provider)) > (providerRanks.get(b.provider))) {\n            return 1;\n        }\n        else if (a.symbol.range.startColumn < b.symbol.range.startColumn) {\n            return -1;\n        }\n        else if (a.symbol.range.startColumn > b.symbol.range.startColumn) {\n            return 1;\n        }\n        else {\n            return 0;\n        }\n    });\n    return result;\n}\nCommandsRegistry.registerCommand('_executeCodeLensProvider', function (accessor, ...args) {\n    let [uri, itemResolveCount] = args;\n    assertType(URI.isUri(uri));\n    assertType(typeof itemResolveCount === 'number' || !itemResolveCount);\n    const { codeLensProvider } = accessor.get(ILanguageFeaturesService);\n    const model = accessor.get(IModelService).getModel(uri);\n    if (!model) {\n        throw illegalArgument();\n    }\n    const result = [];\n    const disposables = new DisposableStore();\n    return getCodeLensModel(codeLensProvider, model, CancellationToken.None).then(value => {\n        disposables.add(value);\n        const resolve = [];\n        for (const item of value.lenses) {\n            if (itemResolveCount === undefined || itemResolveCount === null || Boolean(item.symbol.command)) {\n                result.push(item.symbol);\n            }\n            else if (itemResolveCount-- > 0 && item.provider.resolveCodeLens) {\n                resolve.push(Promise.resolve(item.provider.resolveCodeLens(model, item.symbol, CancellationToken.None)).then(symbol => result.push(symbol || item.symbol)));\n            }\n        }\n        return Promise.all(resolve);\n    }).then(() => {\n        return result;\n    }).finally(() => {\n        // make sure to return results, then (on next tick)\n        // dispose the results\n        setTimeout(() => disposables.dispose(), 100);\n    });\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/codelens/browser/codelensController.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/codelens/browser/codelensController.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { createCancelablePromise, disposableTimeout, RunOnceScheduler } from '../../../../base/common/async.js';\nimport { onUnexpectedError, onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { DisposableStore, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { StableEditorScrollState } from '../../../browser/stableEditorScroll.js';\nimport { EditorAction, registerEditorAction, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { EDITOR_FONT_DEFAULTS } from '../../../common/config/editorOptions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { getCodeLensModel } from './codelens.js';\nimport { ICodeLensCache } from './codeLensCache.js';\nimport { CodeLensHelper, CodeLensWidget } from './codelensWidget.js';\nimport { localize } from '../../../../nls.js';\nimport { ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { INotificationService } from '../../../../platform/notification/common/notification.js';\nimport { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.js';\nimport { ILanguageFeatureDebounceService } from '../../../common/services/languageFeatureDebounce.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nlet CodeLensContribution = class CodeLensContribution {\n    constructor(_editor, _languageFeaturesService, debounceService, _commandService, _notificationService, _codeLensCache) {\n        this._editor = _editor;\n        this._languageFeaturesService = _languageFeaturesService;\n        this._commandService = _commandService;\n        this._notificationService = _notificationService;\n        this._codeLensCache = _codeLensCache;\n        this._disposables = new DisposableStore();\n        this._localToDispose = new DisposableStore();\n        this._lenses = [];\n        this._oldCodeLensModels = new DisposableStore();\n        this._provideCodeLensDebounce = debounceService.for(_languageFeaturesService.codeLensProvider, 'CodeLensProvide', { min: 250 });\n        this._resolveCodeLensesDebounce = debounceService.for(_languageFeaturesService.codeLensProvider, 'CodeLensResolve', { min: 250, salt: 'resolve' });\n        this._resolveCodeLensesScheduler = new RunOnceScheduler(() => this._resolveCodeLensesInViewport(), this._resolveCodeLensesDebounce.default());\n        this._disposables.add(this._editor.onDidChangeModel(() => this._onModelChange()));\n        this._disposables.add(this._editor.onDidChangeModelLanguage(() => this._onModelChange()));\n        this._disposables.add(this._editor.onDidChangeConfiguration((e) => {\n            if (e.hasChanged(50 /* EditorOption.fontInfo */) || e.hasChanged(19 /* EditorOption.codeLensFontSize */) || e.hasChanged(18 /* EditorOption.codeLensFontFamily */)) {\n                this._updateLensStyle();\n            }\n            if (e.hasChanged(17 /* EditorOption.codeLens */)) {\n                this._onModelChange();\n            }\n        }));\n        this._disposables.add(_languageFeaturesService.codeLensProvider.onDidChange(this._onModelChange, this));\n        this._onModelChange();\n        this._updateLensStyle();\n    }\n    dispose() {\n        var _a;\n        this._localDispose();\n        this._disposables.dispose();\n        this._oldCodeLensModels.dispose();\n        (_a = this._currentCodeLensModel) === null || _a === void 0 ? void 0 : _a.dispose();\n    }\n    _getLayoutInfo() {\n        const lineHeightFactor = Math.max(1.3, this._editor.getOption(67 /* EditorOption.lineHeight */) / this._editor.getOption(52 /* EditorOption.fontSize */));\n        let fontSize = this._editor.getOption(19 /* EditorOption.codeLensFontSize */);\n        if (!fontSize || fontSize < 5) {\n            fontSize = (this._editor.getOption(52 /* EditorOption.fontSize */) * .9) | 0;\n        }\n        return {\n            fontSize,\n            codeLensHeight: (fontSize * lineHeightFactor) | 0,\n        };\n    }\n    _updateLensStyle() {\n        const { codeLensHeight, fontSize } = this._getLayoutInfo();\n        const fontFamily = this._editor.getOption(18 /* EditorOption.codeLensFontFamily */);\n        const editorFontInfo = this._editor.getOption(50 /* EditorOption.fontInfo */);\n        const { style } = this._editor.getContainerDomNode();\n        style.setProperty('--vscode-editorCodeLens-lineHeight', `${codeLensHeight}px`);\n        style.setProperty('--vscode-editorCodeLens-fontSize', `${fontSize}px`);\n        style.setProperty('--vscode-editorCodeLens-fontFeatureSettings', editorFontInfo.fontFeatureSettings);\n        if (fontFamily) {\n            style.setProperty('--vscode-editorCodeLens-fontFamily', fontFamily);\n            style.setProperty('--vscode-editorCodeLens-fontFamilyDefault', EDITOR_FONT_DEFAULTS.fontFamily);\n        }\n        //\n        this._editor.changeViewZones(accessor => {\n            for (const lens of this._lenses) {\n                lens.updateHeight(codeLensHeight, accessor);\n            }\n        });\n    }\n    _localDispose() {\n        var _a, _b, _c;\n        (_a = this._getCodeLensModelPromise) === null || _a === void 0 ? void 0 : _a.cancel();\n        this._getCodeLensModelPromise = undefined;\n        (_b = this._resolveCodeLensesPromise) === null || _b === void 0 ? void 0 : _b.cancel();\n        this._resolveCodeLensesPromise = undefined;\n        this._localToDispose.clear();\n        this._oldCodeLensModels.clear();\n        (_c = this._currentCodeLensModel) === null || _c === void 0 ? void 0 : _c.dispose();\n    }\n    _onModelChange() {\n        this._localDispose();\n        const model = this._editor.getModel();\n        if (!model) {\n            return;\n        }\n        if (!this._editor.getOption(17 /* EditorOption.codeLens */) || model.isTooLargeForTokenization()) {\n            return;\n        }\n        const cachedLenses = this._codeLensCache.get(model);\n        if (cachedLenses) {\n            this._renderCodeLensSymbols(cachedLenses);\n        }\n        if (!this._languageFeaturesService.codeLensProvider.has(model)) {\n            // no provider -> return but check with\n            // cached lenses. they expire after 30 seconds\n            if (cachedLenses) {\n                disposableTimeout(() => {\n                    const cachedLensesNow = this._codeLensCache.get(model);\n                    if (cachedLenses === cachedLensesNow) {\n                        this._codeLensCache.delete(model);\n                        this._onModelChange();\n                    }\n                }, 30 * 1000, this._localToDispose);\n            }\n            return;\n        }\n        for (const provider of this._languageFeaturesService.codeLensProvider.all(model)) {\n            if (typeof provider.onDidChange === 'function') {\n                const registration = provider.onDidChange(() => scheduler.schedule());\n                this._localToDispose.add(registration);\n            }\n        }\n        const scheduler = new RunOnceScheduler(() => {\n            var _a;\n            const t1 = Date.now();\n            (_a = this._getCodeLensModelPromise) === null || _a === void 0 ? void 0 : _a.cancel();\n            this._getCodeLensModelPromise = createCancelablePromise(token => getCodeLensModel(this._languageFeaturesService.codeLensProvider, model, token));\n            this._getCodeLensModelPromise.then(result => {\n                if (this._currentCodeLensModel) {\n                    this._oldCodeLensModels.add(this._currentCodeLensModel);\n                }\n                this._currentCodeLensModel = result;\n                // cache model to reduce flicker\n                this._codeLensCache.put(model, result);\n                // update moving average\n                const newDelay = this._provideCodeLensDebounce.update(model, Date.now() - t1);\n                scheduler.delay = newDelay;\n                // render lenses\n                this._renderCodeLensSymbols(result);\n                // dom.scheduleAtNextAnimationFrame(() => this._resolveCodeLensesInViewport());\n                this._resolveCodeLensesInViewportSoon();\n            }, onUnexpectedError);\n        }, this._provideCodeLensDebounce.get(model));\n        this._localToDispose.add(scheduler);\n        this._localToDispose.add(toDisposable(() => this._resolveCodeLensesScheduler.cancel()));\n        this._localToDispose.add(this._editor.onDidChangeModelContent(() => {\n            var _a;\n            this._editor.changeDecorations(decorationsAccessor => {\n                this._editor.changeViewZones(viewZonesAccessor => {\n                    const toDispose = [];\n                    let lastLensLineNumber = -1;\n                    this._lenses.forEach((lens) => {\n                        if (!lens.isValid() || lastLensLineNumber === lens.getLineNumber()) {\n                            // invalid -> lens collapsed, attach range doesn't exist anymore\n                            // line_number -> lenses should never be on the same line\n                            toDispose.push(lens);\n                        }\n                        else {\n                            lens.update(viewZonesAccessor);\n                            lastLensLineNumber = lens.getLineNumber();\n                        }\n                    });\n                    const helper = new CodeLensHelper();\n                    toDispose.forEach((l) => {\n                        l.dispose(helper, viewZonesAccessor);\n                        this._lenses.splice(this._lenses.indexOf(l), 1);\n                    });\n                    helper.commit(decorationsAccessor);\n                });\n            });\n            // Ask for all references again\n            scheduler.schedule();\n            // Cancel pending and active resolve requests\n            this._resolveCodeLensesScheduler.cancel();\n            (_a = this._resolveCodeLensesPromise) === null || _a === void 0 ? void 0 : _a.cancel();\n            this._resolveCodeLensesPromise = undefined;\n        }));\n        this._localToDispose.add(this._editor.onDidFocusEditorText(() => {\n            scheduler.schedule();\n        }));\n        this._localToDispose.add(this._editor.onDidBlurEditorText(() => {\n            scheduler.cancel();\n        }));\n        this._localToDispose.add(this._editor.onDidScrollChange(e => {\n            if (e.scrollTopChanged && this._lenses.length > 0) {\n                this._resolveCodeLensesInViewportSoon();\n            }\n        }));\n        this._localToDispose.add(this._editor.onDidLayoutChange(() => {\n            this._resolveCodeLensesInViewportSoon();\n        }));\n        this._localToDispose.add(toDisposable(() => {\n            if (this._editor.getModel()) {\n                const scrollState = StableEditorScrollState.capture(this._editor);\n                this._editor.changeDecorations(decorationsAccessor => {\n                    this._editor.changeViewZones(viewZonesAccessor => {\n                        this._disposeAllLenses(decorationsAccessor, viewZonesAccessor);\n                    });\n                });\n                scrollState.restore(this._editor);\n            }\n            else {\n                // No accessors available\n                this._disposeAllLenses(undefined, undefined);\n            }\n        }));\n        this._localToDispose.add(this._editor.onMouseDown(e => {\n            if (e.target.type !== 9 /* MouseTargetType.CONTENT_WIDGET */) {\n                return;\n            }\n            let target = e.target.element;\n            if ((target === null || target === void 0 ? void 0 : target.tagName) === 'SPAN') {\n                target = target.parentElement;\n            }\n            if ((target === null || target === void 0 ? void 0 : target.tagName) === 'A') {\n                for (const lens of this._lenses) {\n                    const command = lens.getCommand(target);\n                    if (command) {\n                        this._commandService.executeCommand(command.id, ...(command.arguments || [])).catch(err => this._notificationService.error(err));\n                        break;\n                    }\n                }\n            }\n        }));\n        scheduler.schedule();\n    }\n    _disposeAllLenses(decChangeAccessor, viewZoneChangeAccessor) {\n        const helper = new CodeLensHelper();\n        for (const lens of this._lenses) {\n            lens.dispose(helper, viewZoneChangeAccessor);\n        }\n        if (decChangeAccessor) {\n            helper.commit(decChangeAccessor);\n        }\n        this._lenses.length = 0;\n    }\n    _renderCodeLensSymbols(symbols) {\n        if (!this._editor.hasModel()) {\n            return;\n        }\n        const maxLineNumber = this._editor.getModel().getLineCount();\n        const groups = [];\n        let lastGroup;\n        for (const symbol of symbols.lenses) {\n            const line = symbol.symbol.range.startLineNumber;\n            if (line < 1 || line > maxLineNumber) {\n                // invalid code lens\n                continue;\n            }\n            else if (lastGroup && lastGroup[lastGroup.length - 1].symbol.range.startLineNumber === line) {\n                // on same line as previous\n                lastGroup.push(symbol);\n            }\n            else {\n                // on later line as previous\n                lastGroup = [symbol];\n                groups.push(lastGroup);\n            }\n        }\n        if (!groups.length && !this._lenses.length) {\n            // Nothing to change\n            return;\n        }\n        const scrollState = StableEditorScrollState.capture(this._editor);\n        const layoutInfo = this._getLayoutInfo();\n        this._editor.changeDecorations(decorationsAccessor => {\n            this._editor.changeViewZones(viewZoneAccessor => {\n                const helper = new CodeLensHelper();\n                let codeLensIndex = 0;\n                let groupsIndex = 0;\n                while (groupsIndex < groups.length && codeLensIndex < this._lenses.length) {\n                    const symbolsLineNumber = groups[groupsIndex][0].symbol.range.startLineNumber;\n                    const codeLensLineNumber = this._lenses[codeLensIndex].getLineNumber();\n                    if (codeLensLineNumber < symbolsLineNumber) {\n                        this._lenses[codeLensIndex].dispose(helper, viewZoneAccessor);\n                        this._lenses.splice(codeLensIndex, 1);\n                    }\n                    else if (codeLensLineNumber === symbolsLineNumber) {\n                        this._lenses[codeLensIndex].updateCodeLensSymbols(groups[groupsIndex], helper);\n                        groupsIndex++;\n                        codeLensIndex++;\n                    }\n                    else {\n                        this._lenses.splice(codeLensIndex, 0, new CodeLensWidget(groups[groupsIndex], this._editor, helper, viewZoneAccessor, layoutInfo.codeLensHeight, () => this._resolveCodeLensesInViewportSoon()));\n                        codeLensIndex++;\n                        groupsIndex++;\n                    }\n                }\n                // Delete extra code lenses\n                while (codeLensIndex < this._lenses.length) {\n                    this._lenses[codeLensIndex].dispose(helper, viewZoneAccessor);\n                    this._lenses.splice(codeLensIndex, 1);\n                }\n                // Create extra symbols\n                while (groupsIndex < groups.length) {\n                    this._lenses.push(new CodeLensWidget(groups[groupsIndex], this._editor, helper, viewZoneAccessor, layoutInfo.codeLensHeight, () => this._resolveCodeLensesInViewportSoon()));\n                    groupsIndex++;\n                }\n                helper.commit(decorationsAccessor);\n            });\n        });\n        scrollState.restore(this._editor);\n    }\n    _resolveCodeLensesInViewportSoon() {\n        const model = this._editor.getModel();\n        if (model) {\n            this._resolveCodeLensesScheduler.schedule();\n        }\n    }\n    _resolveCodeLensesInViewport() {\n        var _a;\n        (_a = this._resolveCodeLensesPromise) === null || _a === void 0 ? void 0 : _a.cancel();\n        this._resolveCodeLensesPromise = undefined;\n        const model = this._editor.getModel();\n        if (!model) {\n            return;\n        }\n        const toResolve = [];\n        const lenses = [];\n        this._lenses.forEach((lens) => {\n            const request = lens.computeIfNecessary(model);\n            if (request) {\n                toResolve.push(request);\n                lenses.push(lens);\n            }\n        });\n        if (toResolve.length === 0) {\n            return;\n        }\n        const t1 = Date.now();\n        const resolvePromise = createCancelablePromise(token => {\n            const promises = toResolve.map((request, i) => {\n                const resolvedSymbols = new Array(request.length);\n                const promises = request.map((request, i) => {\n                    if (!request.symbol.command && typeof request.provider.resolveCodeLens === 'function') {\n                        return Promise.resolve(request.provider.resolveCodeLens(model, request.symbol, token)).then(symbol => {\n                            resolvedSymbols[i] = symbol;\n                        }, onUnexpectedExternalError);\n                    }\n                    else {\n                        resolvedSymbols[i] = request.symbol;\n                        return Promise.resolve(undefined);\n                    }\n                });\n                return Promise.all(promises).then(() => {\n                    if (!token.isCancellationRequested && !lenses[i].isDisposed()) {\n                        lenses[i].updateCommands(resolvedSymbols);\n                    }\n                });\n            });\n            return Promise.all(promises);\n        });\n        this._resolveCodeLensesPromise = resolvePromise;\n        this._resolveCodeLensesPromise.then(() => {\n            // update moving average\n            const newDelay = this._resolveCodeLensesDebounce.update(model, Date.now() - t1);\n            this._resolveCodeLensesScheduler.delay = newDelay;\n            if (this._currentCodeLensModel) { // update the cached state with new resolved items\n                this._codeLensCache.put(model, this._currentCodeLensModel);\n            }\n            this._oldCodeLensModels.clear(); // dispose old models once we have updated the UI with the current model\n            if (resolvePromise === this._resolveCodeLensesPromise) {\n                this._resolveCodeLensesPromise = undefined;\n            }\n        }, err => {\n            onUnexpectedError(err); // can also be cancellation!\n            if (resolvePromise === this._resolveCodeLensesPromise) {\n                this._resolveCodeLensesPromise = undefined;\n            }\n        });\n    }\n    async getModel() {\n        var _a;\n        await this._getCodeLensModelPromise;\n        await this._resolveCodeLensesPromise;\n        return !((_a = this._currentCodeLensModel) === null || _a === void 0 ? void 0 : _a.isDisposed)\n            ? this._currentCodeLensModel\n            : undefined;\n    }\n};\nCodeLensContribution.ID = 'css.editor.codeLens';\nCodeLensContribution = __decorate([\n    __param(1, ILanguageFeaturesService),\n    __param(2, ILanguageFeatureDebounceService),\n    __param(3, ICommandService),\n    __param(4, INotificationService),\n    __param(5, ICodeLensCache)\n], CodeLensContribution);\nexport { CodeLensContribution };\nregisterEditorContribution(CodeLensContribution.ID, CodeLensContribution, 1 /* EditorContributionInstantiation.AfterFirstRender */);\nregisterEditorAction(class ShowLensesInCurrentLine extends EditorAction {\n    constructor() {\n        super({\n            id: 'codelens.showLensesInCurrentLine',\n            precondition: EditorContextKeys.hasCodeLensProvider,\n            label: localize('showLensOnLine', \"Show CodeLens Commands For Current Line\"),\n            alias: 'Show CodeLens Commands For Current Line',\n        });\n    }\n    async run(accessor, editor) {\n        if (!editor.hasModel()) {\n            return;\n        }\n        const quickInputService = accessor.get(IQuickInputService);\n        const commandService = accessor.get(ICommandService);\n        const notificationService = accessor.get(INotificationService);\n        const lineNumber = editor.getSelection().positionLineNumber;\n        const codelensController = editor.getContribution(CodeLensContribution.ID);\n        if (!codelensController) {\n            return;\n        }\n        const model = await codelensController.getModel();\n        if (!model) {\n            // nothing\n            return;\n        }\n        const items = [];\n        for (const lens of model.lenses) {\n            if (lens.symbol.command && lens.symbol.range.startLineNumber === lineNumber) {\n                items.push({\n                    label: lens.symbol.command.title,\n                    command: lens.symbol.command\n                });\n            }\n        }\n        if (items.length === 0) {\n            // We dont want an empty picker\n            return;\n        }\n        const item = await quickInputService.pick(items, {\n            canPickMany: false,\n            placeHolder: localize('placeHolder', \"Select a command\")\n        });\n        if (!item) {\n            // Nothing picked\n            return;\n        }\n        let command = item.command;\n        if (model.isDisposed) {\n            // try to find the same command again in-case the model has been re-created in the meantime\n            // this is a best attempt approach which shouldn't be needed because eager model re-creates\n            // shouldn't happen due to focus in/out anymore\n            const newModel = await codelensController.getModel();\n            const newLens = newModel === null || newModel === void 0 ? void 0 : newModel.lenses.find(lens => { var _a; return lens.symbol.range.startLineNumber === lineNumber && ((_a = lens.symbol.command) === null || _a === void 0 ? void 0 : _a.title) === command.title; });\n            if (!newLens || !newLens.symbol.command) {\n                return;\n            }\n            command = newLens.symbol.command;\n        }\n        try {\n            await commandService.executeCommand(command.id, ...(command.arguments || []));\n        }\n        catch (err) {\n            notificationService.error(err);\n        }\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/codelens/browser/codelensWidget.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .codelens-decoration {\n\toverflow: hidden;\n\tdisplay: inline-block;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n\tcolor: var(--vscode-editorCodeLens-foreground);\n\tline-height: var(--vscode-editorCodeLens-lineHeight);\n\tfont-size: var(--vscode-editorCodeLens-fontSize);\n\tpadding-right: calc(var(--vscode-editorCodeLens-fontSize)*0.5);\n\tfont-feature-settings: var(--vscode-editorCodeLens-fontFeatureSettings);\n\tfont-family: var(--vscode-editorCodeLens-fontFamily), var(--vscode-editorCodeLens-fontFamilyDefault);\n}\n\n.monaco-editor .codelens-decoration > span,\n.monaco-editor .codelens-decoration > a {\n\tuser-select: none;\n\t-webkit-user-select: none;\n\twhite-space: nowrap;\n\tvertical-align: sub;\n}\n\n.monaco-editor .codelens-decoration > a {\n\ttext-decoration: none;\n}\n\n.monaco-editor .codelens-decoration > a:hover {\n\tcursor: pointer;\n\tcolor: var(--vscode-editorLink-activeForeground) !important;\n}\n\n.monaco-editor .codelens-decoration > a:hover .codicon {\n\tcolor: var(--vscode-editorLink-activeForeground) !important;\n}\n\n.monaco-editor .codelens-decoration .codicon {\n\tvertical-align: middle;\n\tcolor: currentColor !important;\n\tcolor: var(--vscode-editorCodeLens-foreground);\n\tline-height: var(--vscode-editorCodeLens-lineHeight);\n\tfont-size: var(--vscode-editorCodeLens-fontSize);\n}\n\n.monaco-editor .codelens-decoration > a:hover .codicon::before {\n\tcursor: pointer;\n}\n\n@keyframes fadein {\n\t0% {\n\t\topacity: 0;\n\t\tvisibility: visible;\n\t}\n\n\t100% {\n\t\topacity: 1;\n\t}\n}\n\n.monaco-editor .codelens-decoration.fadein {\n\tanimation: fadein 0.1s linear;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/codelens/browser/codelensWidget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../../../base/browser/dom.js';\nimport { renderLabelWithIcons } from '../../../../base/browser/ui/iconLabel/iconLabels.js';\nimport './codelensWidget.css';\nimport { Range } from '../../../common/core/range.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nclass CodeLensViewZone {\n    constructor(afterLineNumber, heightInPx, onHeight) {\n        /**\n         * We want that this view zone, which reserves space for a code lens appears\n         * as close as possible to the next line, so we use a very large value here.\n         */\n        this.afterColumn = 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */;\n        this.afterLineNumber = afterLineNumber;\n        this.heightInPx = heightInPx;\n        this._onHeight = onHeight;\n        this.suppressMouseDown = true;\n        this.domNode = document.createElement('div');\n    }\n    onComputedHeight(height) {\n        if (this._lastHeight === undefined) {\n            this._lastHeight = height;\n        }\n        else if (this._lastHeight !== height) {\n            this._lastHeight = height;\n            this._onHeight();\n        }\n    }\n    isVisible() {\n        return this._lastHeight !== 0\n            && this.domNode.hasAttribute('monaco-visible-view-zone');\n    }\n}\nclass CodeLensContentWidget {\n    constructor(editor, line) {\n        // Editor.IContentWidget.allowEditorOverflow\n        this.allowEditorOverflow = false;\n        this.suppressMouseDown = true;\n        this._commands = new Map();\n        this._isEmpty = true;\n        this._editor = editor;\n        this._id = `codelens.widget-${(CodeLensContentWidget._idPool++)}`;\n        this.updatePosition(line);\n        this._domNode = document.createElement('span');\n        this._domNode.className = `codelens-decoration`;\n    }\n    withCommands(lenses, animate) {\n        this._commands.clear();\n        const children = [];\n        let hasSymbol = false;\n        for (let i = 0; i < lenses.length; i++) {\n            const lens = lenses[i];\n            if (!lens) {\n                continue;\n            }\n            hasSymbol = true;\n            if (lens.command) {\n                const title = renderLabelWithIcons(lens.command.title.trim());\n                if (lens.command.id) {\n                    const id = `c${(CodeLensContentWidget._idPool++)}`;\n                    children.push(dom.$('a', { id, title: lens.command.tooltip, role: 'button' }, ...title));\n                    this._commands.set(id, lens.command);\n                }\n                else {\n                    children.push(dom.$('span', { title: lens.command.tooltip }, ...title));\n                }\n                if (i + 1 < lenses.length) {\n                    children.push(dom.$('span', undefined, '\\u00a0|\\u00a0'));\n                }\n            }\n        }\n        if (!hasSymbol) {\n            // symbols but no commands\n            dom.reset(this._domNode, dom.$('span', undefined, 'no commands'));\n        }\n        else {\n            // symbols and commands\n            dom.reset(this._domNode, ...children);\n            if (this._isEmpty && animate) {\n                this._domNode.classList.add('fadein');\n            }\n            this._isEmpty = false;\n        }\n    }\n    getCommand(link) {\n        return link.parentElement === this._domNode\n            ? this._commands.get(link.id)\n            : undefined;\n    }\n    getId() {\n        return this._id;\n    }\n    getDomNode() {\n        return this._domNode;\n    }\n    updatePosition(line) {\n        const column = this._editor.getModel().getLineFirstNonWhitespaceColumn(line);\n        this._widgetPosition = {\n            position: { lineNumber: line, column: column },\n            preference: [1 /* ContentWidgetPositionPreference.ABOVE */]\n        };\n    }\n    getPosition() {\n        return this._widgetPosition || null;\n    }\n}\nCodeLensContentWidget._idPool = 0;\nexport class CodeLensHelper {\n    constructor() {\n        this._removeDecorations = [];\n        this._addDecorations = [];\n        this._addDecorationsCallbacks = [];\n    }\n    addDecoration(decoration, callback) {\n        this._addDecorations.push(decoration);\n        this._addDecorationsCallbacks.push(callback);\n    }\n    removeDecoration(decorationId) {\n        this._removeDecorations.push(decorationId);\n    }\n    commit(changeAccessor) {\n        const resultingDecorations = changeAccessor.deltaDecorations(this._removeDecorations, this._addDecorations);\n        for (let i = 0, len = resultingDecorations.length; i < len; i++) {\n            this._addDecorationsCallbacks[i](resultingDecorations[i]);\n        }\n    }\n}\nconst codeLensDecorationOptions = ModelDecorationOptions.register({\n    collapseOnReplaceEdit: true,\n    description: 'codelens'\n});\nexport class CodeLensWidget {\n    constructor(data, editor, helper, viewZoneChangeAccessor, heightInPx, updateCallback) {\n        this._isDisposed = false;\n        this._editor = editor;\n        this._data = data;\n        // create combined range, track all ranges with decorations,\n        // check if there is already something to render\n        this._decorationIds = [];\n        let range;\n        const lenses = [];\n        this._data.forEach((codeLensData, i) => {\n            if (codeLensData.symbol.command) {\n                lenses.push(codeLensData.symbol);\n            }\n            helper.addDecoration({\n                range: codeLensData.symbol.range,\n                options: codeLensDecorationOptions\n            }, id => this._decorationIds[i] = id);\n            // the range contains all lenses on this line\n            if (!range) {\n                range = Range.lift(codeLensData.symbol.range);\n            }\n            else {\n                range = Range.plusRange(range, codeLensData.symbol.range);\n            }\n        });\n        this._viewZone = new CodeLensViewZone(range.startLineNumber - 1, heightInPx, updateCallback);\n        this._viewZoneId = viewZoneChangeAccessor.addZone(this._viewZone);\n        if (lenses.length > 0) {\n            this._createContentWidgetIfNecessary();\n            this._contentWidget.withCommands(lenses, false);\n        }\n    }\n    _createContentWidgetIfNecessary() {\n        if (!this._contentWidget) {\n            this._contentWidget = new CodeLensContentWidget(this._editor, this._viewZone.afterLineNumber + 1);\n            this._editor.addContentWidget(this._contentWidget);\n        }\n        else {\n            this._editor.layoutContentWidget(this._contentWidget);\n        }\n    }\n    dispose(helper, viewZoneChangeAccessor) {\n        this._decorationIds.forEach(helper.removeDecoration, helper);\n        this._decorationIds = [];\n        viewZoneChangeAccessor === null || viewZoneChangeAccessor === void 0 ? void 0 : viewZoneChangeAccessor.removeZone(this._viewZoneId);\n        if (this._contentWidget) {\n            this._editor.removeContentWidget(this._contentWidget);\n            this._contentWidget = undefined;\n        }\n        this._isDisposed = true;\n    }\n    isDisposed() {\n        return this._isDisposed;\n    }\n    isValid() {\n        return this._decorationIds.some((id, i) => {\n            const range = this._editor.getModel().getDecorationRange(id);\n            const symbol = this._data[i].symbol;\n            return !!(range && Range.isEmpty(symbol.range) === range.isEmpty());\n        });\n    }\n    updateCodeLensSymbols(data, helper) {\n        this._decorationIds.forEach(helper.removeDecoration, helper);\n        this._decorationIds = [];\n        this._data = data;\n        this._data.forEach((codeLensData, i) => {\n            helper.addDecoration({\n                range: codeLensData.symbol.range,\n                options: codeLensDecorationOptions\n            }, id => this._decorationIds[i] = id);\n        });\n    }\n    updateHeight(height, viewZoneChangeAccessor) {\n        this._viewZone.heightInPx = height;\n        viewZoneChangeAccessor.layoutZone(this._viewZoneId);\n        if (this._contentWidget) {\n            this._editor.layoutContentWidget(this._contentWidget);\n        }\n    }\n    computeIfNecessary(model) {\n        if (!this._viewZone.isVisible()) {\n            return null;\n        }\n        // Read editor current state\n        for (let i = 0; i < this._decorationIds.length; i++) {\n            const range = model.getDecorationRange(this._decorationIds[i]);\n            if (range) {\n                this._data[i].symbol.range = range;\n            }\n        }\n        return this._data;\n    }\n    updateCommands(symbols) {\n        this._createContentWidgetIfNecessary();\n        this._contentWidget.withCommands(symbols, true);\n        for (let i = 0; i < this._data.length; i++) {\n            const resolved = symbols[i];\n            if (resolved) {\n                const { symbol } = this._data[i];\n                symbol.command = resolved.command || symbol.command;\n            }\n        }\n    }\n    getCommand(link) {\n        var _a;\n        return (_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.getCommand(link);\n    }\n    getLineNumber() {\n        const range = this._editor.getModel().getDecorationRange(this._decorationIds[0]);\n        if (range) {\n            return range.startLineNumber;\n        }\n        return -1;\n    }\n    update(viewZoneChangeAccessor) {\n        if (this.isValid()) {\n            const range = this._editor.getModel().getDecorationRange(this._decorationIds[0]);\n            if (range) {\n                this._viewZone.afterLineNumber = range.startLineNumber - 1;\n                viewZoneChangeAccessor.layoutZone(this._viewZoneId);\n                if (this._contentWidget) {\n                    this._contentWidget.updatePosition(range.startLineNumber);\n                    this._editor.layoutContentWidget(this._contentWidget);\n                }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/colorPicker/browser/color.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { illegalArgument, onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport { Range } from '../../../common/core/range.js';\nimport { IModelService } from '../../../common/services/model.js';\nimport { CommandsRegistry } from '../../../../platform/commands/common/commands.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { DefaultDocumentColorProvider } from './defaultDocumentColorProvider.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nexport async function getColors(colorProviderRegistry, model, token, isDefaultColorDecoratorsEnabled = true) {\n    return _findColorData(new ColorDataCollector(), colorProviderRegistry, model, token, isDefaultColorDecoratorsEnabled);\n}\nexport function getColorPresentations(model, colorInfo, provider, token) {\n    return Promise.resolve(provider.provideColorPresentations(model, colorInfo, token));\n}\nclass ColorDataCollector {\n    constructor() { }\n    async compute(provider, model, token, colors) {\n        const documentColors = await provider.provideDocumentColors(model, token);\n        if (Array.isArray(documentColors)) {\n            for (const colorInfo of documentColors) {\n                colors.push({ colorInfo, provider });\n            }\n        }\n        return Array.isArray(documentColors);\n    }\n}\nclass ExtColorDataCollector {\n    constructor() { }\n    async compute(provider, model, token, colors) {\n        const documentColors = await provider.provideDocumentColors(model, token);\n        if (Array.isArray(documentColors)) {\n            for (const colorInfo of documentColors) {\n                colors.push({ range: colorInfo.range, color: [colorInfo.color.red, colorInfo.color.green, colorInfo.color.blue, colorInfo.color.alpha] });\n            }\n        }\n        return Array.isArray(documentColors);\n    }\n}\nclass ColorPresentationsCollector {\n    constructor(colorInfo) {\n        this.colorInfo = colorInfo;\n    }\n    async compute(provider, model, _token, colors) {\n        const documentColors = await provider.provideColorPresentations(model, this.colorInfo, CancellationToken.None);\n        if (Array.isArray(documentColors)) {\n            colors.push(...documentColors);\n        }\n        return Array.isArray(documentColors);\n    }\n}\nasync function _findColorData(collector, colorProviderRegistry, model, token, isDefaultColorDecoratorsEnabled) {\n    let validDocumentColorProviderFound = false;\n    let defaultProvider;\n    const colorData = [];\n    const documentColorProviders = colorProviderRegistry.ordered(model);\n    for (let i = documentColorProviders.length - 1; i >= 0; i--) {\n        const provider = documentColorProviders[i];\n        if (provider instanceof DefaultDocumentColorProvider) {\n            defaultProvider = provider;\n        }\n        else {\n            try {\n                if (await collector.compute(provider, model, token, colorData)) {\n                    validDocumentColorProviderFound = true;\n                }\n            }\n            catch (e) {\n                onUnexpectedExternalError(e);\n            }\n        }\n    }\n    if (validDocumentColorProviderFound) {\n        return colorData;\n    }\n    if (defaultProvider && isDefaultColorDecoratorsEnabled) {\n        await collector.compute(defaultProvider, model, token, colorData);\n        return colorData;\n    }\n    return [];\n}\nfunction _setupColorCommand(accessor, resource) {\n    const { colorProvider: colorProviderRegistry } = accessor.get(ILanguageFeaturesService);\n    const model = accessor.get(IModelService).getModel(resource);\n    if (!model) {\n        throw illegalArgument();\n    }\n    const isDefaultColorDecoratorsEnabled = accessor.get(IConfigurationService).getValue('editor.defaultColorDecorators', { resource });\n    return { model, colorProviderRegistry, isDefaultColorDecoratorsEnabled };\n}\nCommandsRegistry.registerCommand('_executeDocumentColorProvider', function (accessor, ...args) {\n    const [resource] = args;\n    if (!(resource instanceof URI)) {\n        throw illegalArgument();\n    }\n    const { model, colorProviderRegistry, isDefaultColorDecoratorsEnabled } = _setupColorCommand(accessor, resource);\n    return _findColorData(new ExtColorDataCollector(), colorProviderRegistry, model, CancellationToken.None, isDefaultColorDecoratorsEnabled);\n});\nCommandsRegistry.registerCommand('_executeColorPresentationProvider', function (accessor, ...args) {\n    const [color, context] = args;\n    const { uri, range } = context;\n    if (!(uri instanceof URI) || !Array.isArray(color) || color.length !== 4 || !Range.isIRange(range)) {\n        throw illegalArgument();\n    }\n    const { model, colorProviderRegistry, isDefaultColorDecoratorsEnabled } = _setupColorCommand(accessor, uri);\n    const [red, green, blue, alpha] = color;\n    return _findColorData(new ColorPresentationsCollector({ range: range, color: { red, green, blue, alpha } }), colorProviderRegistry, model, CancellationToken.None, isDefaultColorDecoratorsEnabled);\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/colorPicker/browser/colorContributions.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/colorPicker/browser/colorContributions.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { Range } from '../../../common/core/range.js';\nimport { ColorDecorationInjectedTextMarker } from './colorDetector.js';\nimport { ColorHoverParticipant } from './colorHoverParticipant.js';\nimport { HoverController } from '../../hover/browser/hoverController.js';\nimport { HoverParticipantRegistry } from '../../hover/browser/hoverTypes.js';\nexport class ColorContribution extends Disposable {\n    constructor(_editor) {\n        super();\n        this._editor = _editor;\n        this._register(_editor.onMouseDown((e) => this.onMouseDown(e)));\n    }\n    dispose() {\n        super.dispose();\n    }\n    onMouseDown(mouseEvent) {\n        const colorDecoratorsActivatedOn = this._editor.getOption(148 /* EditorOption.colorDecoratorsActivatedOn */);\n        if (colorDecoratorsActivatedOn !== 'click' && colorDecoratorsActivatedOn !== 'clickAndHover') {\n            return;\n        }\n        const target = mouseEvent.target;\n        if (target.type !== 6 /* MouseTargetType.CONTENT_TEXT */) {\n            return;\n        }\n        if (!target.detail.injectedText) {\n            return;\n        }\n        if (target.detail.injectedText.options.attachedData !== ColorDecorationInjectedTextMarker) {\n            return;\n        }\n        if (!target.range) {\n            return;\n        }\n        const hoverController = this._editor.getContribution(HoverController.ID);\n        if (!hoverController) {\n            return;\n        }\n        if (!hoverController.isColorPickerVisible) {\n            const range = new Range(target.range.startLineNumber, target.range.startColumn + 1, target.range.endLineNumber, target.range.endColumn + 1);\n            hoverController.showContentHover(range, 1 /* HoverStartMode.Immediate */, 0 /* HoverStartSource.Mouse */, false, true);\n        }\n    }\n}\nColorContribution.ID = 'editor.contrib.colorContribution'; // ms\nregisterEditorContribution(ColorContribution.ID, ColorContribution, 2 /* EditorContributionInstantiation.BeforeFirstInteraction */);\nHoverParticipantRegistry.register(ColorHoverParticipant);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/colorPicker/browser/colorDetector.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar ColorDetector_1;\nimport { createCancelablePromise, TimeoutTimer } from '../../../../base/common/async.js';\nimport { RGBA } from '../../../../base/common/color.js';\nimport { onUnexpectedError } from '../../../../base/common/errors.js';\nimport { Emitter } from '../../../../base/common/event.js';\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { StopWatch } from '../../../../base/common/stopwatch.js';\nimport { noBreakWhitespace } from '../../../../base/common/strings.js';\nimport { DynamicCssRules } from '../../../browser/editorDom.js';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { Range } from '../../../common/core/range.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { ILanguageFeatureDebounceService } from '../../../common/services/languageFeatureDebounce.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { getColors } from './color.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nexport const ColorDecorationInjectedTextMarker = Object.create({});\nlet ColorDetector = ColorDetector_1 = class ColorDetector extends Disposable {\n    constructor(_editor, _configurationService, _languageFeaturesService, languageFeatureDebounceService) {\n        super();\n        this._editor = _editor;\n        this._configurationService = _configurationService;\n        this._languageFeaturesService = _languageFeaturesService;\n        this._localToDispose = this._register(new DisposableStore());\n        this._decorationsIds = [];\n        this._colorDatas = new Map();\n        this._colorDecoratorIds = this._editor.createDecorationsCollection();\n        this._ruleFactory = new DynamicCssRules(this._editor);\n        this._decoratorLimitReporter = new DecoratorLimitReporter();\n        this._colorDecorationClassRefs = this._register(new DisposableStore());\n        this._debounceInformation = languageFeatureDebounceService.for(_languageFeaturesService.colorProvider, 'Document Colors', { min: ColorDetector_1.RECOMPUTE_TIME });\n        this._register(_editor.onDidChangeModel(() => {\n            this._isColorDecoratorsEnabled = this.isEnabled();\n            this.updateColors();\n        }));\n        this._register(_editor.onDidChangeModelLanguage(() => this.updateColors()));\n        this._register(_languageFeaturesService.colorProvider.onDidChange(() => this.updateColors()));\n        this._register(_editor.onDidChangeConfiguration((e) => {\n            const prevIsEnabled = this._isColorDecoratorsEnabled;\n            this._isColorDecoratorsEnabled = this.isEnabled();\n            this._isDefaultColorDecoratorsEnabled = this._editor.getOption(147 /* EditorOption.defaultColorDecorators */);\n            const updatedColorDecoratorsSetting = prevIsEnabled !== this._isColorDecoratorsEnabled || e.hasChanged(21 /* EditorOption.colorDecoratorsLimit */);\n            const updatedDefaultColorDecoratorsSetting = e.hasChanged(147 /* EditorOption.defaultColorDecorators */);\n            if (updatedColorDecoratorsSetting || updatedDefaultColorDecoratorsSetting) {\n                if (this._isColorDecoratorsEnabled) {\n                    this.updateColors();\n                }\n                else {\n                    this.removeAllDecorations();\n                }\n            }\n        }));\n        this._timeoutTimer = null;\n        this._computePromise = null;\n        this._isColorDecoratorsEnabled = this.isEnabled();\n        this._isDefaultColorDecoratorsEnabled = this._editor.getOption(147 /* EditorOption.defaultColorDecorators */);\n        this.updateColors();\n    }\n    isEnabled() {\n        const model = this._editor.getModel();\n        if (!model) {\n            return false;\n        }\n        const languageId = model.getLanguageId();\n        // handle deprecated settings. [languageId].colorDecorators.enable\n        const deprecatedConfig = this._configurationService.getValue(languageId);\n        if (deprecatedConfig && typeof deprecatedConfig === 'object') {\n            const colorDecorators = deprecatedConfig['colorDecorators']; // deprecatedConfig.valueOf('.colorDecorators.enable');\n            if (colorDecorators && colorDecorators['enable'] !== undefined && !colorDecorators['enable']) {\n                return colorDecorators['enable'];\n            }\n        }\n        return this._editor.getOption(20 /* EditorOption.colorDecorators */);\n    }\n    static get(editor) {\n        return editor.getContribution(this.ID);\n    }\n    dispose() {\n        this.stop();\n        this.removeAllDecorations();\n        super.dispose();\n    }\n    updateColors() {\n        this.stop();\n        if (!this._isColorDecoratorsEnabled) {\n            return;\n        }\n        const model = this._editor.getModel();\n        if (!model || !this._languageFeaturesService.colorProvider.has(model)) {\n            return;\n        }\n        this._localToDispose.add(this._editor.onDidChangeModelContent(() => {\n            if (!this._timeoutTimer) {\n                this._timeoutTimer = new TimeoutTimer();\n                this._timeoutTimer.cancelAndSet(() => {\n                    this._timeoutTimer = null;\n                    this.beginCompute();\n                }, this._debounceInformation.get(model));\n            }\n        }));\n        this.beginCompute();\n    }\n    async beginCompute() {\n        this._computePromise = createCancelablePromise(async (token) => {\n            const model = this._editor.getModel();\n            if (!model) {\n                return [];\n            }\n            const sw = new StopWatch(false);\n            const colors = await getColors(this._languageFeaturesService.colorProvider, model, token, this._isDefaultColorDecoratorsEnabled);\n            this._debounceInformation.update(model, sw.elapsed());\n            return colors;\n        });\n        try {\n            const colors = await this._computePromise;\n            this.updateDecorations(colors);\n            this.updateColorDecorators(colors);\n            this._computePromise = null;\n        }\n        catch (e) {\n            onUnexpectedError(e);\n        }\n    }\n    stop() {\n        if (this._timeoutTimer) {\n            this._timeoutTimer.cancel();\n            this._timeoutTimer = null;\n        }\n        if (this._computePromise) {\n            this._computePromise.cancel();\n            this._computePromise = null;\n        }\n        this._localToDispose.clear();\n    }\n    updateDecorations(colorDatas) {\n        const decorations = colorDatas.map(c => ({\n            range: {\n                startLineNumber: c.colorInfo.range.startLineNumber,\n                startColumn: c.colorInfo.range.startColumn,\n                endLineNumber: c.colorInfo.range.endLineNumber,\n                endColumn: c.colorInfo.range.endColumn\n            },\n            options: ModelDecorationOptions.EMPTY\n        }));\n        this._editor.changeDecorations((changeAccessor) => {\n            this._decorationsIds = changeAccessor.deltaDecorations(this._decorationsIds, decorations);\n            this._colorDatas = new Map();\n            this._decorationsIds.forEach((id, i) => this._colorDatas.set(id, colorDatas[i]));\n        });\n    }\n    updateColorDecorators(colorData) {\n        this._colorDecorationClassRefs.clear();\n        const decorations = [];\n        const limit = this._editor.getOption(21 /* EditorOption.colorDecoratorsLimit */);\n        for (let i = 0; i < colorData.length && decorations.length < limit; i++) {\n            const { red, green, blue, alpha } = colorData[i].colorInfo.color;\n            const rgba = new RGBA(Math.round(red * 255), Math.round(green * 255), Math.round(blue * 255), alpha);\n            const color = `rgba(${rgba.r}, ${rgba.g}, ${rgba.b}, ${rgba.a})`;\n            const ref = this._colorDecorationClassRefs.add(this._ruleFactory.createClassNameRef({\n                backgroundColor: color\n            }));\n            decorations.push({\n                range: {\n                    startLineNumber: colorData[i].colorInfo.range.startLineNumber,\n                    startColumn: colorData[i].colorInfo.range.startColumn,\n                    endLineNumber: colorData[i].colorInfo.range.endLineNumber,\n                    endColumn: colorData[i].colorInfo.range.endColumn\n                },\n                options: {\n                    description: 'colorDetector',\n                    before: {\n                        content: noBreakWhitespace,\n                        inlineClassName: `${ref.className} colorpicker-color-decoration`,\n                        inlineClassNameAffectsLetterSpacing: true,\n                        attachedData: ColorDecorationInjectedTextMarker\n                    }\n                }\n            });\n        }\n        const limited = limit < colorData.length ? limit : false;\n        this._decoratorLimitReporter.update(colorData.length, limited);\n        this._colorDecoratorIds.set(decorations);\n    }\n    removeAllDecorations() {\n        this._editor.removeDecorations(this._decorationsIds);\n        this._decorationsIds = [];\n        this._colorDecoratorIds.clear();\n        this._colorDecorationClassRefs.clear();\n    }\n    getColorData(position) {\n        const model = this._editor.getModel();\n        if (!model) {\n            return null;\n        }\n        const decorations = model\n            .getDecorationsInRange(Range.fromPositions(position, position))\n            .filter(d => this._colorDatas.has(d.id));\n        if (decorations.length === 0) {\n            return null;\n        }\n        return this._colorDatas.get(decorations[0].id);\n    }\n    isColorDecoration(decoration) {\n        return this._colorDecoratorIds.has(decoration);\n    }\n};\nColorDetector.ID = 'editor.contrib.colorDetector';\nColorDetector.RECOMPUTE_TIME = 1000; // ms\nColorDetector = ColorDetector_1 = __decorate([\n    __param(1, IConfigurationService),\n    __param(2, ILanguageFeaturesService),\n    __param(3, ILanguageFeatureDebounceService)\n], ColorDetector);\nexport { ColorDetector };\nexport class DecoratorLimitReporter {\n    constructor() {\n        this._onDidChange = new Emitter();\n        this._computed = 0;\n        this._limited = false;\n    }\n    update(computed, limited) {\n        if (computed !== this._computed || limited !== this._limited) {\n            this._computed = computed;\n            this._limited = limited;\n            this._onDidChange.fire();\n        }\n    }\n}\nregisterEditorContribution(ColorDetector.ID, ColorDetector, 1 /* EditorContributionInstantiation.AfterFirstRender */);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/colorPicker/browser/colorHoverParticipant.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { AsyncIterableObject } from '../../../../base/common/async.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { Color, RGBA } from '../../../../base/common/color.js';\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { Range } from '../../../common/core/range.js';\nimport { getColorPresentations, getColors } from './color.js';\nimport { ColorDetector } from './colorDetector.js';\nimport { ColorPickerModel } from './colorPickerModel.js';\nimport { ColorPickerWidget } from './colorPickerWidget.js';\nimport { IThemeService } from '../../../../platform/theme/common/themeService.js';\nimport { Dimension } from '../../../../base/browser/dom.js';\nexport class ColorHover {\n    constructor(owner, range, model, provider) {\n        this.owner = owner;\n        this.range = range;\n        this.model = model;\n        this.provider = provider;\n        /**\n         * Force the hover to always be rendered at this specific range,\n         * even in the case of multiple hover parts.\n         */\n        this.forceShowAtRange = true;\n    }\n    isValidForHoverAnchor(anchor) {\n        return (anchor.type === 1 /* HoverAnchorType.Range */\n            && this.range.startColumn <= anchor.range.startColumn\n            && this.range.endColumn >= anchor.range.endColumn);\n    }\n}\nlet ColorHoverParticipant = class ColorHoverParticipant {\n    constructor(_editor, _themeService) {\n        this._editor = _editor;\n        this._themeService = _themeService;\n        this.hoverOrdinal = 2;\n    }\n    computeSync(_anchor, _lineDecorations) {\n        return [];\n    }\n    computeAsync(anchor, lineDecorations, token) {\n        return AsyncIterableObject.fromPromise(this._computeAsync(anchor, lineDecorations, token));\n    }\n    async _computeAsync(_anchor, lineDecorations, _token) {\n        if (!this._editor.hasModel()) {\n            return [];\n        }\n        const colorDetector = ColorDetector.get(this._editor);\n        if (!colorDetector) {\n            return [];\n        }\n        for (const d of lineDecorations) {\n            if (!colorDetector.isColorDecoration(d)) {\n                continue;\n            }\n            const colorData = colorDetector.getColorData(d.range.getStartPosition());\n            if (colorData) {\n                const colorHover = await _createColorHover(this, this._editor.getModel(), colorData.colorInfo, colorData.provider);\n                return [colorHover];\n            }\n        }\n        return [];\n    }\n    renderHoverParts(context, hoverParts) {\n        return renderHoverParts(this, this._editor, this._themeService, hoverParts, context);\n    }\n};\nColorHoverParticipant = __decorate([\n    __param(1, IThemeService)\n], ColorHoverParticipant);\nexport { ColorHoverParticipant };\nexport class StandaloneColorPickerHover {\n    constructor(owner, range, model, provider) {\n        this.owner = owner;\n        this.range = range;\n        this.model = model;\n        this.provider = provider;\n    }\n}\nlet StandaloneColorPickerParticipant = class StandaloneColorPickerParticipant {\n    constructor(_editor, _themeService) {\n        this._editor = _editor;\n        this._themeService = _themeService;\n        this._color = null;\n    }\n    async createColorHover(defaultColorInfo, defaultColorProvider, colorProviderRegistry) {\n        if (!this._editor.hasModel()) {\n            return null;\n        }\n        const colorDetector = ColorDetector.get(this._editor);\n        if (!colorDetector) {\n            return null;\n        }\n        const colors = await getColors(colorProviderRegistry, this._editor.getModel(), CancellationToken.None);\n        let foundColorInfo = null;\n        let foundColorProvider = null;\n        for (const colorData of colors) {\n            const colorInfo = colorData.colorInfo;\n            if (Range.containsRange(colorInfo.range, defaultColorInfo.range)) {\n                foundColorInfo = colorInfo;\n                foundColorProvider = colorData.provider;\n            }\n        }\n        const colorInfo = foundColorInfo !== null && foundColorInfo !== void 0 ? foundColorInfo : defaultColorInfo;\n        const colorProvider = foundColorProvider !== null && foundColorProvider !== void 0 ? foundColorProvider : defaultColorProvider;\n        const foundInEditor = !!foundColorInfo;\n        return { colorHover: await _createColorHover(this, this._editor.getModel(), colorInfo, colorProvider), foundInEditor: foundInEditor };\n    }\n    async updateEditorModel(colorHoverData) {\n        if (!this._editor.hasModel()) {\n            return;\n        }\n        const colorPickerModel = colorHoverData.model;\n        let range = new Range(colorHoverData.range.startLineNumber, colorHoverData.range.startColumn, colorHoverData.range.endLineNumber, colorHoverData.range.endColumn);\n        if (this._color) {\n            await _updateColorPresentations(this._editor.getModel(), colorPickerModel, this._color, range, colorHoverData);\n            range = _updateEditorModel(this._editor, range, colorPickerModel);\n        }\n    }\n    renderHoverParts(context, hoverParts) {\n        return renderHoverParts(this, this._editor, this._themeService, hoverParts, context);\n    }\n    set color(color) {\n        this._color = color;\n    }\n    get color() {\n        return this._color;\n    }\n};\nStandaloneColorPickerParticipant = __decorate([\n    __param(1, IThemeService)\n], StandaloneColorPickerParticipant);\nexport { StandaloneColorPickerParticipant };\nasync function _createColorHover(participant, editorModel, colorInfo, provider) {\n    const originalText = editorModel.getValueInRange(colorInfo.range);\n    const { red, green, blue, alpha } = colorInfo.color;\n    const rgba = new RGBA(Math.round(red * 255), Math.round(green * 255), Math.round(blue * 255), alpha);\n    const color = new Color(rgba);\n    const colorPresentations = await getColorPresentations(editorModel, colorInfo, provider, CancellationToken.None);\n    const model = new ColorPickerModel(color, [], 0);\n    model.colorPresentations = colorPresentations || [];\n    model.guessColorPresentation(color, originalText);\n    if (participant instanceof ColorHoverParticipant) {\n        return new ColorHover(participant, Range.lift(colorInfo.range), model, provider);\n    }\n    else {\n        return new StandaloneColorPickerHover(participant, Range.lift(colorInfo.range), model, provider);\n    }\n}\nfunction renderHoverParts(participant, editor, themeService, hoverParts, context) {\n    if (hoverParts.length === 0 || !editor.hasModel()) {\n        return Disposable.None;\n    }\n    if (context.setMinimumDimensions) {\n        const minimumHeight = editor.getOption(67 /* EditorOption.lineHeight */) + 8;\n        context.setMinimumDimensions(new Dimension(302, minimumHeight));\n    }\n    const disposables = new DisposableStore();\n    const colorHover = hoverParts[0];\n    const editorModel = editor.getModel();\n    const model = colorHover.model;\n    const widget = disposables.add(new ColorPickerWidget(context.fragment, model, editor.getOption(143 /* EditorOption.pixelRatio */), themeService, participant instanceof StandaloneColorPickerParticipant));\n    context.setColorPicker(widget);\n    let editorUpdatedByColorPicker = false;\n    let range = new Range(colorHover.range.startLineNumber, colorHover.range.startColumn, colorHover.range.endLineNumber, colorHover.range.endColumn);\n    if (participant instanceof StandaloneColorPickerParticipant) {\n        const color = hoverParts[0].model.color;\n        participant.color = color;\n        _updateColorPresentations(editorModel, model, color, range, colorHover);\n        disposables.add(model.onColorFlushed((color) => {\n            participant.color = color;\n        }));\n    }\n    else {\n        disposables.add(model.onColorFlushed(async (color) => {\n            await _updateColorPresentations(editorModel, model, color, range, colorHover);\n            editorUpdatedByColorPicker = true;\n            range = _updateEditorModel(editor, range, model);\n        }));\n    }\n    disposables.add(model.onDidChangeColor((color) => {\n        _updateColorPresentations(editorModel, model, color, range, colorHover);\n    }));\n    disposables.add(editor.onDidChangeModelContent((e) => {\n        if (editorUpdatedByColorPicker) {\n            editorUpdatedByColorPicker = false;\n        }\n        else {\n            context.hide();\n            editor.focus();\n        }\n    }));\n    return disposables;\n}\nfunction _updateEditorModel(editor, range, model) {\n    var _a, _b;\n    const textEdits = [];\n    const edit = (_a = model.presentation.textEdit) !== null && _a !== void 0 ? _a : { range, text: model.presentation.label, forceMoveMarkers: false };\n    textEdits.push(edit);\n    if (model.presentation.additionalTextEdits) {\n        textEdits.push(...model.presentation.additionalTextEdits);\n    }\n    const replaceRange = Range.lift(edit.range);\n    const trackedRange = editor.getModel()._setTrackedRange(null, replaceRange, 3 /* TrackedRangeStickiness.GrowsOnlyWhenTypingAfter */);\n    editor.executeEdits('colorpicker', textEdits);\n    editor.pushUndoStop();\n    return (_b = editor.getModel()._getTrackedRange(trackedRange)) !== null && _b !== void 0 ? _b : replaceRange;\n}\nasync function _updateColorPresentations(editorModel, colorPickerModel, color, range, colorHover) {\n    const colorPresentations = await getColorPresentations(editorModel, {\n        range: range,\n        color: {\n            red: color.rgba.r / 255,\n            green: color.rgba.g / 255,\n            blue: color.rgba.b / 255,\n            alpha: color.rgba.a\n        }\n    }, colorHover.provider, CancellationToken.None);\n    colorPickerModel.colorPresentations = colorPresentations || [];\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/colorPicker/browser/colorPicker.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.colorpicker-widget {\n\theight: 190px;\n\tuser-select: none;\n\t-webkit-user-select: none;\n}\n\n/* Decoration */\n\n.colorpicker-color-decoration,\n.hc-light .colorpicker-color-decoration {\n\tborder: solid 0.1em #000;\n\tbox-sizing: border-box;\n\tmargin: 0.1em 0.2em 0 0.2em;\n\twidth: 0.8em;\n\theight: 0.8em;\n\tline-height: 0.8em;\n\tdisplay: inline-block;\n\tcursor: pointer;\n}\n\n.hc-black .colorpicker-color-decoration,\n.vs-dark .colorpicker-color-decoration {\n\tborder: solid 0.1em #eee;\n}\n\n/* Header */\n\n.colorpicker-header {\n\tdisplay: flex;\n\theight: 24px;\n\tposition: relative;\n\tbackground: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=\");\n\tbackground-size: 9px 9px;\n\timage-rendering: pixelated;\n}\n\n.colorpicker-header .picked-color {\n\twidth: 240px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tline-height: 24px;\n\tcursor: pointer;\n\tcolor: white;\n\tflex: 1;\n\twhite-space: nowrap;\n\toverflow: hidden;\n}\n\n.colorpicker-header .picked-color .picked-color-presentation {\n\twhite-space: nowrap;\n\tmargin-left: 5px;\n\tmargin-right: 5px;\n}\n\n.colorpicker-header .picked-color .codicon {\n\tcolor: inherit;\n\tfont-size: 14px;\n}\n\n.colorpicker-header .picked-color.light {\n\tcolor: black;\n}\n\n.colorpicker-header .original-color {\n\twidth: 74px;\n\tz-index: inherit;\n\tcursor: pointer;\n}\n\n.standalone-colorpicker {\n\tcolor: var(--vscode-editorHoverWidget-foreground);\n\tbackground-color: var(--vscode-editorHoverWidget-background);\n\tborder: 1px solid var(--vscode-editorHoverWidget-border);\n}\n\n.colorpicker-header.standalone-colorpicker {\n\tborder-bottom: none;\n}\n\n.colorpicker-header .close-button {\n\tcursor: pointer;\n\tbackground-color: var(--vscode-editorHoverWidget-background);\n\tborder-left: 1px solid var(--vscode-editorHoverWidget-border);\n}\n\n.colorpicker-header .close-button-inner-div {\n\twidth: 100%;\n\theight: 100%;\n\ttext-align: center;\n}\n\n.colorpicker-header .close-button-inner-div:hover {\n\tbackground-color: var(--vscode-toolbar-hoverBackground);\n}\n\n.colorpicker-header .close-icon {\n\tpadding: 3px;\n}\n\n/* Body */\n\n.colorpicker-body {\n\tdisplay: flex;\n\tpadding: 8px;\n\tposition: relative;\n}\n\n.colorpicker-body .saturation-wrap {\n\toverflow: hidden;\n\theight: 150px;\n\tposition: relative;\n\tmin-width: 220px;\n\tflex: 1;\n}\n\n.colorpicker-body .saturation-box {\n\theight: 150px;\n\tposition: absolute;\n}\n\n.colorpicker-body .saturation-selection {\n\twidth: 9px;\n\theight: 9px;\n\tmargin: -5px 0 0 -5px;\n\tborder: 1px solid rgb(255, 255, 255);\n\tborder-radius: 100%;\n\tbox-shadow: 0px 0px 2px rgba(0, 0, 0, 0.8);\n\tposition: absolute;\n}\n\n.colorpicker-body .strip {\n\twidth: 25px;\n\theight: 150px;\n}\n\n.colorpicker-body .standalone-strip {\n\twidth: 25px;\n\theight: 122px;\n}\n\n.colorpicker-body .hue-strip {\n\tposition: relative;\n\tmargin-left: 8px;\n\tcursor: grab;\n\tbackground: linear-gradient(to bottom, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);\n}\n\n.colorpicker-body .opacity-strip {\n\tposition: relative;\n\tmargin-left: 8px;\n\tcursor: grab;\n\tbackground: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=\");\n\tbackground-size: 9px 9px;\n\timage-rendering: pixelated;\n}\n\n.colorpicker-body .strip.grabbing {\n\tcursor: grabbing;\n}\n\n.colorpicker-body .slider {\n\tposition: absolute;\n\ttop: 0;\n\tleft: -2px;\n\twidth: calc(100% + 4px);\n\theight: 4px;\n\tbox-sizing: border-box;\n\tborder: 1px solid rgba(255, 255, 255, 0.71);\n\tbox-shadow: 0px 0px 1px rgba(0, 0, 0, 0.85);\n}\n\n.colorpicker-body .strip .overlay {\n\theight: 150px;\n\tpointer-events: none;\n}\n\n.colorpicker-body .standalone-strip .standalone-overlay {\n\theight: 122px;\n\tpointer-events: none;\n}\n\n.standalone-colorpicker-body {\n\tdisplay: block;\n\tborder: 1px solid transparent;\n\tborder-bottom: 1px solid var(--vscode-editorHoverWidget-border);\n\toverflow: hidden;\n}\n\n.colorpicker-body .insert-button {\n\tposition: absolute;\n\theight: 20px;\n\twidth: 58px;\n\tpadding: 0px;\n\tright: 8px;\n\tbottom: 8px;\n\tbackground: var(--vscode-button-background);\n\tcolor: var(--vscode-button-foreground);\n\tborder-radius: 2px;\n\tborder: none;\n\tcursor: pointer;\n}\n\n.colorpicker-body .insert-button:hover{\n\tbackground: var(--vscode-button-hoverBackground);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/colorPicker/browser/colorPickerModel.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../../../base/common/event.js';\nexport class ColorPickerModel {\n    get color() {\n        return this._color;\n    }\n    set color(color) {\n        if (this._color.equals(color)) {\n            return;\n        }\n        this._color = color;\n        this._onDidChangeColor.fire(color);\n    }\n    get presentation() { return this.colorPresentations[this.presentationIndex]; }\n    get colorPresentations() {\n        return this._colorPresentations;\n    }\n    set colorPresentations(colorPresentations) {\n        this._colorPresentations = colorPresentations;\n        if (this.presentationIndex > colorPresentations.length - 1) {\n            this.presentationIndex = 0;\n        }\n        this._onDidChangePresentation.fire(this.presentation);\n    }\n    constructor(color, availableColorPresentations, presentationIndex) {\n        this.presentationIndex = presentationIndex;\n        this._onColorFlushed = new Emitter();\n        this.onColorFlushed = this._onColorFlushed.event;\n        this._onDidChangeColor = new Emitter();\n        this.onDidChangeColor = this._onDidChangeColor.event;\n        this._onDidChangePresentation = new Emitter();\n        this.onDidChangePresentation = this._onDidChangePresentation.event;\n        this.originalColor = color;\n        this._color = color;\n        this._colorPresentations = availableColorPresentations;\n    }\n    selectNextColorPresentation() {\n        this.presentationIndex = (this.presentationIndex + 1) % this.colorPresentations.length;\n        this.flushColor();\n        this._onDidChangePresentation.fire(this.presentation);\n    }\n    guessColorPresentation(color, originalText) {\n        let presentationIndex = -1;\n        for (let i = 0; i < this.colorPresentations.length; i++) {\n            if (originalText.toLowerCase() === this.colorPresentations[i].label) {\n                presentationIndex = i;\n                break;\n            }\n        }\n        if (presentationIndex === -1) {\n            // check which color presentation text has same prefix as original text's prefix\n            const originalTextPrefix = originalText.split('(')[0].toLowerCase();\n            for (let i = 0; i < this.colorPresentations.length; i++) {\n                if (this.colorPresentations[i].label.toLowerCase().startsWith(originalTextPrefix)) {\n                    presentationIndex = i;\n                    break;\n                }\n            }\n        }\n        if (presentationIndex !== -1 && presentationIndex !== this.presentationIndex) {\n            this.presentationIndex = presentationIndex;\n            this._onDidChangePresentation.fire(this.presentation);\n        }\n    }\n    flushColor() {\n        this._onColorFlushed.fire(this._color);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/colorPicker/browser/colorPickerWidget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { PixelRatio } from '../../../../base/browser/pixelRatio.js';\nimport * as dom from '../../../../base/browser/dom.js';\nimport { GlobalPointerMoveMonitor } from '../../../../base/browser/globalPointerMoveMonitor.js';\nimport { Widget } from '../../../../base/browser/ui/widget.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { Color, HSVA, RGBA } from '../../../../base/common/color.js';\nimport { Emitter } from '../../../../base/common/event.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { ThemeIcon } from '../../../../base/common/themables.js';\nimport './colorPicker.css';\nimport { localize } from '../../../../nls.js';\nimport { editorHoverBackground } from '../../../../platform/theme/common/colorRegistry.js';\nimport { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';\nconst $ = dom.$;\nexport class ColorPickerHeader extends Disposable {\n    constructor(container, model, themeService, showingStandaloneColorPicker = false) {\n        super();\n        this.model = model;\n        this.showingStandaloneColorPicker = showingStandaloneColorPicker;\n        this._closeButton = null;\n        this._domNode = $('.colorpicker-header');\n        dom.append(container, this._domNode);\n        this._pickedColorNode = dom.append(this._domNode, $('.picked-color'));\n        dom.append(this._pickedColorNode, $('span.codicon.codicon-color-mode'));\n        this._pickedColorPresentation = dom.append(this._pickedColorNode, document.createElement('span'));\n        this._pickedColorPresentation.classList.add('picked-color-presentation');\n        const tooltip = localize('clickToToggleColorOptions', \"Click to toggle color options (rgb/hsl/hex)\");\n        this._pickedColorNode.setAttribute('title', tooltip);\n        this._originalColorNode = dom.append(this._domNode, $('.original-color'));\n        this._originalColorNode.style.backgroundColor = Color.Format.CSS.format(this.model.originalColor) || '';\n        this.backgroundColor = themeService.getColorTheme().getColor(editorHoverBackground) || Color.white;\n        this._register(themeService.onDidColorThemeChange(theme => {\n            this.backgroundColor = theme.getColor(editorHoverBackground) || Color.white;\n        }));\n        this._register(dom.addDisposableListener(this._pickedColorNode, dom.EventType.CLICK, () => this.model.selectNextColorPresentation()));\n        this._register(dom.addDisposableListener(this._originalColorNode, dom.EventType.CLICK, () => {\n            this.model.color = this.model.originalColor;\n            this.model.flushColor();\n        }));\n        this._register(model.onDidChangeColor(this.onDidChangeColor, this));\n        this._register(model.onDidChangePresentation(this.onDidChangePresentation, this));\n        this._pickedColorNode.style.backgroundColor = Color.Format.CSS.format(model.color) || '';\n        this._pickedColorNode.classList.toggle('light', model.color.rgba.a < 0.5 ? this.backgroundColor.isLighter() : model.color.isLighter());\n        this.onDidChangeColor(this.model.color);\n        // When the color picker widget is a standalone color picker widget, then add a close button\n        if (this.showingStandaloneColorPicker) {\n            this._domNode.classList.add('standalone-colorpicker');\n            this._closeButton = this._register(new CloseButton(this._domNode));\n        }\n    }\n    get closeButton() {\n        return this._closeButton;\n    }\n    get pickedColorNode() {\n        return this._pickedColorNode;\n    }\n    get originalColorNode() {\n        return this._originalColorNode;\n    }\n    onDidChangeColor(color) {\n        this._pickedColorNode.style.backgroundColor = Color.Format.CSS.format(color) || '';\n        this._pickedColorNode.classList.toggle('light', color.rgba.a < 0.5 ? this.backgroundColor.isLighter() : color.isLighter());\n        this.onDidChangePresentation();\n    }\n    onDidChangePresentation() {\n        this._pickedColorPresentation.textContent = this.model.presentation ? this.model.presentation.label : '';\n    }\n}\nclass CloseButton extends Disposable {\n    constructor(container) {\n        super();\n        this._onClicked = this._register(new Emitter());\n        this.onClicked = this._onClicked.event;\n        this._button = document.createElement('div');\n        this._button.classList.add('close-button');\n        dom.append(container, this._button);\n        const innerDiv = document.createElement('div');\n        innerDiv.classList.add('close-button-inner-div');\n        dom.append(this._button, innerDiv);\n        const closeButton = dom.append(innerDiv, $('.button' + ThemeIcon.asCSSSelector(registerIcon('color-picker-close', Codicon.close, localize('closeIcon', 'Icon to close the color picker')))));\n        closeButton.classList.add('close-icon');\n        this._register(dom.addDisposableListener(this._button, dom.EventType.CLICK, () => {\n            this._onClicked.fire();\n        }));\n    }\n}\nexport class ColorPickerBody extends Disposable {\n    constructor(container, model, pixelRatio, isStandaloneColorPicker = false) {\n        super();\n        this.model = model;\n        this.pixelRatio = pixelRatio;\n        this._insertButton = null;\n        this._domNode = $('.colorpicker-body');\n        dom.append(container, this._domNode);\n        this._saturationBox = new SaturationBox(this._domNode, this.model, this.pixelRatio);\n        this._register(this._saturationBox);\n        this._register(this._saturationBox.onDidChange(this.onDidSaturationValueChange, this));\n        this._register(this._saturationBox.onColorFlushed(this.flushColor, this));\n        this._opacityStrip = new OpacityStrip(this._domNode, this.model, isStandaloneColorPicker);\n        this._register(this._opacityStrip);\n        this._register(this._opacityStrip.onDidChange(this.onDidOpacityChange, this));\n        this._register(this._opacityStrip.onColorFlushed(this.flushColor, this));\n        this._hueStrip = new HueStrip(this._domNode, this.model, isStandaloneColorPicker);\n        this._register(this._hueStrip);\n        this._register(this._hueStrip.onDidChange(this.onDidHueChange, this));\n        this._register(this._hueStrip.onColorFlushed(this.flushColor, this));\n        if (isStandaloneColorPicker) {\n            this._insertButton = this._register(new InsertButton(this._domNode));\n            this._domNode.classList.add('standalone-colorpicker');\n        }\n    }\n    flushColor() {\n        this.model.flushColor();\n    }\n    onDidSaturationValueChange({ s, v }) {\n        const hsva = this.model.color.hsva;\n        this.model.color = new Color(new HSVA(hsva.h, s, v, hsva.a));\n    }\n    onDidOpacityChange(a) {\n        const hsva = this.model.color.hsva;\n        this.model.color = new Color(new HSVA(hsva.h, hsva.s, hsva.v, a));\n    }\n    onDidHueChange(value) {\n        const hsva = this.model.color.hsva;\n        const h = (1 - value) * 360;\n        this.model.color = new Color(new HSVA(h === 360 ? 0 : h, hsva.s, hsva.v, hsva.a));\n    }\n    get domNode() {\n        return this._domNode;\n    }\n    get saturationBox() {\n        return this._saturationBox;\n    }\n    get enterButton() {\n        return this._insertButton;\n    }\n    layout() {\n        this._saturationBox.layout();\n        this._opacityStrip.layout();\n        this._hueStrip.layout();\n    }\n}\nclass SaturationBox extends Disposable {\n    constructor(container, model, pixelRatio) {\n        super();\n        this.model = model;\n        this.pixelRatio = pixelRatio;\n        this._onDidChange = new Emitter();\n        this.onDidChange = this._onDidChange.event;\n        this._onColorFlushed = new Emitter();\n        this.onColorFlushed = this._onColorFlushed.event;\n        this._domNode = $('.saturation-wrap');\n        dom.append(container, this._domNode);\n        // Create canvas, draw selected color\n        this._canvas = document.createElement('canvas');\n        this._canvas.className = 'saturation-box';\n        dom.append(this._domNode, this._canvas);\n        // Add selection circle\n        this.selection = $('.saturation-selection');\n        dom.append(this._domNode, this.selection);\n        this.layout();\n        this._register(dom.addDisposableListener(this._domNode, dom.EventType.POINTER_DOWN, e => this.onPointerDown(e)));\n        this._register(this.model.onDidChangeColor(this.onDidChangeColor, this));\n        this.monitor = null;\n    }\n    get domNode() {\n        return this._domNode;\n    }\n    onPointerDown(e) {\n        if (!e.target || !(e.target instanceof Element)) {\n            return;\n        }\n        this.monitor = this._register(new GlobalPointerMoveMonitor());\n        const origin = dom.getDomNodePagePosition(this._domNode);\n        if (e.target !== this.selection) {\n            this.onDidChangePosition(e.offsetX, e.offsetY);\n        }\n        this.monitor.startMonitoring(e.target, e.pointerId, e.buttons, event => this.onDidChangePosition(event.pageX - origin.left, event.pageY - origin.top), () => null);\n        const pointerUpListener = dom.addDisposableListener(e.target.ownerDocument, dom.EventType.POINTER_UP, () => {\n            this._onColorFlushed.fire();\n            pointerUpListener.dispose();\n            if (this.monitor) {\n                this.monitor.stopMonitoring(true);\n                this.monitor = null;\n            }\n        }, true);\n    }\n    onDidChangePosition(left, top) {\n        const s = Math.max(0, Math.min(1, left / this.width));\n        const v = Math.max(0, Math.min(1, 1 - (top / this.height)));\n        this.paintSelection(s, v);\n        this._onDidChange.fire({ s, v });\n    }\n    layout() {\n        this.width = this._domNode.offsetWidth;\n        this.height = this._domNode.offsetHeight;\n        this._canvas.width = this.width * this.pixelRatio;\n        this._canvas.height = this.height * this.pixelRatio;\n        this.paint();\n        const hsva = this.model.color.hsva;\n        this.paintSelection(hsva.s, hsva.v);\n    }\n    paint() {\n        const hsva = this.model.color.hsva;\n        const saturatedColor = new Color(new HSVA(hsva.h, 1, 1, 1));\n        const ctx = this._canvas.getContext('2d');\n        const whiteGradient = ctx.createLinearGradient(0, 0, this._canvas.width, 0);\n        whiteGradient.addColorStop(0, 'rgba(255, 255, 255, 1)');\n        whiteGradient.addColorStop(0.5, 'rgba(255, 255, 255, 0.5)');\n        whiteGradient.addColorStop(1, 'rgba(255, 255, 255, 0)');\n        const blackGradient = ctx.createLinearGradient(0, 0, 0, this._canvas.height);\n        blackGradient.addColorStop(0, 'rgba(0, 0, 0, 0)');\n        blackGradient.addColorStop(1, 'rgba(0, 0, 0, 1)');\n        ctx.rect(0, 0, this._canvas.width, this._canvas.height);\n        ctx.fillStyle = Color.Format.CSS.format(saturatedColor);\n        ctx.fill();\n        ctx.fillStyle = whiteGradient;\n        ctx.fill();\n        ctx.fillStyle = blackGradient;\n        ctx.fill();\n    }\n    paintSelection(s, v) {\n        this.selection.style.left = `${s * this.width}px`;\n        this.selection.style.top = `${this.height - v * this.height}px`;\n    }\n    onDidChangeColor(color) {\n        if (this.monitor && this.monitor.isMonitoring()) {\n            return;\n        }\n        this.paint();\n        const hsva = color.hsva;\n        this.paintSelection(hsva.s, hsva.v);\n    }\n}\nclass Strip extends Disposable {\n    constructor(container, model, showingStandaloneColorPicker = false) {\n        super();\n        this.model = model;\n        this._onDidChange = new Emitter();\n        this.onDidChange = this._onDidChange.event;\n        this._onColorFlushed = new Emitter();\n        this.onColorFlushed = this._onColorFlushed.event;\n        if (showingStandaloneColorPicker) {\n            this.domNode = dom.append(container, $('.standalone-strip'));\n            this.overlay = dom.append(this.domNode, $('.standalone-overlay'));\n        }\n        else {\n            this.domNode = dom.append(container, $('.strip'));\n            this.overlay = dom.append(this.domNode, $('.overlay'));\n        }\n        this.slider = dom.append(this.domNode, $('.slider'));\n        this.slider.style.top = `0px`;\n        this._register(dom.addDisposableListener(this.domNode, dom.EventType.POINTER_DOWN, e => this.onPointerDown(e)));\n        this._register(model.onDidChangeColor(this.onDidChangeColor, this));\n        this.layout();\n    }\n    layout() {\n        this.height = this.domNode.offsetHeight - this.slider.offsetHeight;\n        const value = this.getValue(this.model.color);\n        this.updateSliderPosition(value);\n    }\n    onDidChangeColor(color) {\n        const value = this.getValue(color);\n        this.updateSliderPosition(value);\n    }\n    onPointerDown(e) {\n        if (!e.target || !(e.target instanceof Element)) {\n            return;\n        }\n        const monitor = this._register(new GlobalPointerMoveMonitor());\n        const origin = dom.getDomNodePagePosition(this.domNode);\n        this.domNode.classList.add('grabbing');\n        if (e.target !== this.slider) {\n            this.onDidChangeTop(e.offsetY);\n        }\n        monitor.startMonitoring(e.target, e.pointerId, e.buttons, event => this.onDidChangeTop(event.pageY - origin.top), () => null);\n        const pointerUpListener = dom.addDisposableListener(e.target.ownerDocument, dom.EventType.POINTER_UP, () => {\n            this._onColorFlushed.fire();\n            pointerUpListener.dispose();\n            monitor.stopMonitoring(true);\n            this.domNode.classList.remove('grabbing');\n        }, true);\n    }\n    onDidChangeTop(top) {\n        const value = Math.max(0, Math.min(1, 1 - (top / this.height)));\n        this.updateSliderPosition(value);\n        this._onDidChange.fire(value);\n    }\n    updateSliderPosition(value) {\n        this.slider.style.top = `${(1 - value) * this.height}px`;\n    }\n}\nclass OpacityStrip extends Strip {\n    constructor(container, model, showingStandaloneColorPicker = false) {\n        super(container, model, showingStandaloneColorPicker);\n        this.domNode.classList.add('opacity-strip');\n        this.onDidChangeColor(this.model.color);\n    }\n    onDidChangeColor(color) {\n        super.onDidChangeColor(color);\n        const { r, g, b } = color.rgba;\n        const opaque = new Color(new RGBA(r, g, b, 1));\n        const transparent = new Color(new RGBA(r, g, b, 0));\n        this.overlay.style.background = `linear-gradient(to bottom, ${opaque} 0%, ${transparent} 100%)`;\n    }\n    getValue(color) {\n        return color.hsva.a;\n    }\n}\nclass HueStrip extends Strip {\n    constructor(container, model, showingStandaloneColorPicker = false) {\n        super(container, model, showingStandaloneColorPicker);\n        this.domNode.classList.add('hue-strip');\n    }\n    getValue(color) {\n        return 1 - (color.hsva.h / 360);\n    }\n}\nexport class InsertButton extends Disposable {\n    constructor(container) {\n        super();\n        this._onClicked = this._register(new Emitter());\n        this.onClicked = this._onClicked.event;\n        this._button = dom.append(container, document.createElement('button'));\n        this._button.classList.add('insert-button');\n        this._button.textContent = 'Insert';\n        this._register(dom.addDisposableListener(this._button, dom.EventType.CLICK, () => {\n            this._onClicked.fire();\n        }));\n    }\n    get button() {\n        return this._button;\n    }\n}\nexport class ColorPickerWidget extends Widget {\n    constructor(container, model, pixelRatio, themeService, standaloneColorPicker = false) {\n        super();\n        this.model = model;\n        this.pixelRatio = pixelRatio;\n        this._register(PixelRatio.getInstance(dom.getWindow(container)).onDidChange(() => this.layout()));\n        const element = $('.colorpicker-widget');\n        container.appendChild(element);\n        this.header = this._register(new ColorPickerHeader(element, this.model, themeService, standaloneColorPicker));\n        this.body = this._register(new ColorPickerBody(element, this.model, this.pixelRatio, standaloneColorPicker));\n    }\n    layout() {\n        this.body.layout();\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/colorPicker/browser/defaultDocumentColorProvider.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Color, RGBA } from '../../../../base/common/color.js';\nimport { EditorWorkerClient } from '../../../browser/services/editorWorkerService.js';\nimport { IModelService } from '../../../common/services/model.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { registerEditorFeature } from '../../../common/editorFeatures.js';\nexport class DefaultDocumentColorProvider {\n    constructor(modelService, languageConfigurationService) {\n        this._editorWorkerClient = new EditorWorkerClient(modelService, false, 'editorWorkerService', languageConfigurationService);\n    }\n    async provideDocumentColors(model, _token) {\n        return this._editorWorkerClient.computeDefaultDocumentColors(model.uri);\n    }\n    provideColorPresentations(_model, colorInfo, _token) {\n        const range = colorInfo.range;\n        const colorFromInfo = colorInfo.color;\n        const alpha = colorFromInfo.alpha;\n        const color = new Color(new RGBA(Math.round(255 * colorFromInfo.red), Math.round(255 * colorFromInfo.green), Math.round(255 * colorFromInfo.blue), alpha));\n        const rgb = alpha ? Color.Format.CSS.formatRGB(color) : Color.Format.CSS.formatRGBA(color);\n        const hsl = alpha ? Color.Format.CSS.formatHSL(color) : Color.Format.CSS.formatHSLA(color);\n        const hex = alpha ? Color.Format.CSS.formatHex(color) : Color.Format.CSS.formatHexA(color);\n        const colorPresentations = [];\n        colorPresentations.push({ label: rgb, textEdit: { range: range, text: rgb } });\n        colorPresentations.push({ label: hsl, textEdit: { range: range, text: hsl } });\n        colorPresentations.push({ label: hex, textEdit: { range: range, text: hex } });\n        return colorPresentations;\n    }\n}\nlet DefaultDocumentColorProviderFeature = class DefaultDocumentColorProviderFeature extends Disposable {\n    constructor(_modelService, _languageConfigurationService, _languageFeaturesService) {\n        super();\n        this._register(_languageFeaturesService.colorProvider.register('*', new DefaultDocumentColorProvider(_modelService, _languageConfigurationService)));\n    }\n};\nDefaultDocumentColorProviderFeature = __decorate([\n    __param(0, IModelService),\n    __param(1, ILanguageConfigurationService),\n    __param(2, ILanguageFeaturesService)\n], DefaultDocumentColorProviderFeature);\nregisterEditorFeature(DefaultDocumentColorProviderFeature);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/colorPicker/browser/standaloneColorPickerActions.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/colorPicker/browser/standaloneColorPickerActions.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { EditorAction, EditorAction2, registerEditorAction } from '../../../browser/editorExtensions.js';\nimport { localize, localize2 } from '../../../../nls.js';\nimport { StandaloneColorPickerController } from './standaloneColorPickerWidget.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { MenuId, registerAction2 } from '../../../../platform/actions/common/actions.js';\nimport './colorPicker.css';\nexport class ShowOrFocusStandaloneColorPicker extends EditorAction2 {\n    constructor() {\n        super({\n            id: 'editor.action.showOrFocusStandaloneColorPicker',\n            title: {\n                ...localize2('showOrFocusStandaloneColorPicker', \"Show or Focus Standalone Color Picker\"),\n                mnemonicTitle: localize({ key: 'mishowOrFocusStandaloneColorPicker', comment: ['&& denotes a mnemonic'] }, \"&&Show or Focus Standalone Color Picker\"),\n            },\n            precondition: undefined,\n            menu: [\n                { id: MenuId.CommandPalette },\n            ],\n            metadata: {\n                description: localize2('showOrFocusStandaloneColorPickerDescription', \"Show or focus a standalone color picker which uses the default color provider. It displays hex/rgb/hsl colors.\"),\n            }\n        });\n    }\n    runEditorCommand(_accessor, editor) {\n        var _a;\n        (_a = StandaloneColorPickerController.get(editor)) === null || _a === void 0 ? void 0 : _a.showOrFocus();\n    }\n}\nclass HideStandaloneColorPicker extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.hideColorPicker',\n            label: localize({\n                key: 'hideColorPicker',\n                comment: [\n                    'Action that hides the color picker'\n                ]\n            }, \"Hide the Color Picker\"),\n            alias: 'Hide the Color Picker',\n            precondition: EditorContextKeys.standaloneColorPickerVisible.isEqualTo(true),\n            kbOpts: {\n                primary: 9 /* KeyCode.Escape */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            metadata: {\n                description: localize2('hideColorPickerDescription', \"Hide the standalone color picker.\"),\n            }\n        });\n    }\n    run(_accessor, editor) {\n        var _a;\n        (_a = StandaloneColorPickerController.get(editor)) === null || _a === void 0 ? void 0 : _a.hide();\n    }\n}\nclass InsertColorWithStandaloneColorPicker extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.insertColorWithStandaloneColorPicker',\n            label: localize({\n                key: 'insertColorWithStandaloneColorPicker',\n                comment: [\n                    'Action that inserts color with standalone color picker'\n                ]\n            }, \"Insert Color with Standalone Color Picker\"),\n            alias: 'Insert Color with Standalone Color Picker',\n            precondition: EditorContextKeys.standaloneColorPickerFocused.isEqualTo(true),\n            kbOpts: {\n                primary: 3 /* KeyCode.Enter */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            metadata: {\n                description: localize2('insertColorWithStandaloneColorPickerDescription', \"Insert hex/rgb/hsl colors with the focused standalone color picker.\"),\n            }\n        });\n    }\n    run(_accessor, editor) {\n        var _a;\n        (_a = StandaloneColorPickerController.get(editor)) === null || _a === void 0 ? void 0 : _a.insertColor();\n    }\n}\nregisterEditorAction(HideStandaloneColorPicker);\nregisterEditorAction(InsertColorWithStandaloneColorPicker);\nregisterAction2(ShowOrFocusStandaloneColorPicker);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/colorPicker/browser/standaloneColorPickerWidget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar StandaloneColorPickerController_1, StandaloneColorPickerWidget_1;\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { StandaloneColorPickerParticipant } from './colorHoverParticipant.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { EditorHoverStatusBar } from '../../hover/browser/contentHoverStatusBar.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { Emitter } from '../../../../base/common/event.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IModelService } from '../../../common/services/model.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { DefaultDocumentColorProvider } from './defaultDocumentColorProvider.js';\nimport * as dom from '../../../../base/browser/dom.js';\nimport './colorPicker.css';\nlet StandaloneColorPickerController = StandaloneColorPickerController_1 = class StandaloneColorPickerController extends Disposable {\n    constructor(_editor, _contextKeyService, _modelService, _keybindingService, _instantiationService, _languageFeatureService, _languageConfigurationService) {\n        super();\n        this._editor = _editor;\n        this._modelService = _modelService;\n        this._keybindingService = _keybindingService;\n        this._instantiationService = _instantiationService;\n        this._languageFeatureService = _languageFeatureService;\n        this._languageConfigurationService = _languageConfigurationService;\n        this._standaloneColorPickerWidget = null;\n        this._standaloneColorPickerVisible = EditorContextKeys.standaloneColorPickerVisible.bindTo(_contextKeyService);\n        this._standaloneColorPickerFocused = EditorContextKeys.standaloneColorPickerFocused.bindTo(_contextKeyService);\n    }\n    showOrFocus() {\n        var _a;\n        if (!this._editor.hasModel()) {\n            return;\n        }\n        if (!this._standaloneColorPickerVisible.get()) {\n            this._standaloneColorPickerWidget = new StandaloneColorPickerWidget(this._editor, this._standaloneColorPickerVisible, this._standaloneColorPickerFocused, this._instantiationService, this._modelService, this._keybindingService, this._languageFeatureService, this._languageConfigurationService);\n        }\n        else if (!this._standaloneColorPickerFocused.get()) {\n            (_a = this._standaloneColorPickerWidget) === null || _a === void 0 ? void 0 : _a.focus();\n        }\n    }\n    hide() {\n        var _a;\n        this._standaloneColorPickerFocused.set(false);\n        this._standaloneColorPickerVisible.set(false);\n        (_a = this._standaloneColorPickerWidget) === null || _a === void 0 ? void 0 : _a.hide();\n        this._editor.focus();\n    }\n    insertColor() {\n        var _a;\n        (_a = this._standaloneColorPickerWidget) === null || _a === void 0 ? void 0 : _a.updateEditor();\n        this.hide();\n    }\n    static get(editor) {\n        return editor.getContribution(StandaloneColorPickerController_1.ID);\n    }\n};\nStandaloneColorPickerController.ID = 'editor.contrib.standaloneColorPickerController';\nStandaloneColorPickerController = StandaloneColorPickerController_1 = __decorate([\n    __param(1, IContextKeyService),\n    __param(2, IModelService),\n    __param(3, IKeybindingService),\n    __param(4, IInstantiationService),\n    __param(5, ILanguageFeaturesService),\n    __param(6, ILanguageConfigurationService)\n], StandaloneColorPickerController);\nexport { StandaloneColorPickerController };\nregisterEditorContribution(StandaloneColorPickerController.ID, StandaloneColorPickerController, 1 /* EditorContributionInstantiation.AfterFirstRender */);\nconst PADDING = 8;\nconst CLOSE_BUTTON_WIDTH = 22;\nlet StandaloneColorPickerWidget = StandaloneColorPickerWidget_1 = class StandaloneColorPickerWidget extends Disposable {\n    constructor(_editor, _standaloneColorPickerVisible, _standaloneColorPickerFocused, _instantiationService, _modelService, _keybindingService, _languageFeaturesService, _languageConfigurationService) {\n        var _a;\n        super();\n        this._editor = _editor;\n        this._standaloneColorPickerVisible = _standaloneColorPickerVisible;\n        this._standaloneColorPickerFocused = _standaloneColorPickerFocused;\n        this._modelService = _modelService;\n        this._keybindingService = _keybindingService;\n        this._languageFeaturesService = _languageFeaturesService;\n        this._languageConfigurationService = _languageConfigurationService;\n        this.allowEditorOverflow = true;\n        this._position = undefined;\n        this._body = document.createElement('div');\n        this._colorHover = null;\n        this._selectionSetInEditor = false;\n        this._onResult = this._register(new Emitter());\n        this.onResult = this._onResult.event;\n        this._standaloneColorPickerVisible.set(true);\n        this._standaloneColorPickerParticipant = _instantiationService.createInstance(StandaloneColorPickerParticipant, this._editor);\n        this._position = (_a = this._editor._getViewModel()) === null || _a === void 0 ? void 0 : _a.getPrimaryCursorState().modelState.position;\n        const editorSelection = this._editor.getSelection();\n        const selection = editorSelection ?\n            {\n                startLineNumber: editorSelection.startLineNumber,\n                startColumn: editorSelection.startColumn,\n                endLineNumber: editorSelection.endLineNumber,\n                endColumn: editorSelection.endColumn\n            } : { startLineNumber: 0, endLineNumber: 0, endColumn: 0, startColumn: 0 };\n        const focusTracker = this._register(dom.trackFocus(this._body));\n        this._register(focusTracker.onDidBlur(_ => {\n            this.hide();\n        }));\n        this._register(focusTracker.onDidFocus(_ => {\n            this.focus();\n        }));\n        // When the cursor position changes, hide the color picker\n        this._register(this._editor.onDidChangeCursorPosition(() => {\n            // Do not hide the color picker when the cursor changes position due to the keybindings\n            if (!this._selectionSetInEditor) {\n                this.hide();\n            }\n            else {\n                this._selectionSetInEditor = false;\n            }\n        }));\n        this._register(this._editor.onMouseMove((e) => {\n            var _a;\n            const classList = (_a = e.target.element) === null || _a === void 0 ? void 0 : _a.classList;\n            if (classList && classList.contains('colorpicker-color-decoration')) {\n                this.hide();\n            }\n        }));\n        this._register(this.onResult((result) => {\n            this._render(result.value, result.foundInEditor);\n        }));\n        this._start(selection);\n        this._body.style.zIndex = '50';\n        this._editor.addContentWidget(this);\n    }\n    updateEditor() {\n        if (this._colorHover) {\n            this._standaloneColorPickerParticipant.updateEditorModel(this._colorHover);\n        }\n    }\n    getId() {\n        return StandaloneColorPickerWidget_1.ID;\n    }\n    getDomNode() {\n        return this._body;\n    }\n    getPosition() {\n        if (!this._position) {\n            return null;\n        }\n        const positionPreference = this._editor.getOption(60 /* EditorOption.hover */).above;\n        return {\n            position: this._position,\n            secondaryPosition: this._position,\n            preference: positionPreference ? [1 /* ContentWidgetPositionPreference.ABOVE */, 2 /* ContentWidgetPositionPreference.BELOW */] : [2 /* ContentWidgetPositionPreference.BELOW */, 1 /* ContentWidgetPositionPreference.ABOVE */],\n            positionAffinity: 2 /* PositionAffinity.None */\n        };\n    }\n    hide() {\n        this.dispose();\n        this._standaloneColorPickerVisible.set(false);\n        this._standaloneColorPickerFocused.set(false);\n        this._editor.removeContentWidget(this);\n        this._editor.focus();\n    }\n    focus() {\n        this._standaloneColorPickerFocused.set(true);\n        this._body.focus();\n    }\n    async _start(selection) {\n        const computeAsyncResult = await this._computeAsync(selection);\n        if (!computeAsyncResult) {\n            return;\n        }\n        this._onResult.fire(new StandaloneColorPickerResult(computeAsyncResult.result, computeAsyncResult.foundInEditor));\n    }\n    async _computeAsync(range) {\n        if (!this._editor.hasModel()) {\n            return null;\n        }\n        const colorInfo = {\n            range: range,\n            color: { red: 0, green: 0, blue: 0, alpha: 1 }\n        };\n        const colorHoverResult = await this._standaloneColorPickerParticipant.createColorHover(colorInfo, new DefaultDocumentColorProvider(this._modelService, this._languageConfigurationService), this._languageFeaturesService.colorProvider);\n        if (!colorHoverResult) {\n            return null;\n        }\n        return { result: colorHoverResult.colorHover, foundInEditor: colorHoverResult.foundInEditor };\n    }\n    _render(colorHover, foundInEditor) {\n        const fragment = document.createDocumentFragment();\n        const statusBar = this._register(new EditorHoverStatusBar(this._keybindingService));\n        let colorPickerWidget;\n        const context = {\n            fragment,\n            statusBar,\n            setColorPicker: (widget) => colorPickerWidget = widget,\n            onContentsChanged: () => { },\n            hide: () => this.hide()\n        };\n        this._colorHover = colorHover;\n        this._register(this._standaloneColorPickerParticipant.renderHoverParts(context, [colorHover]));\n        if (colorPickerWidget === undefined) {\n            return;\n        }\n        this._body.classList.add('standalone-colorpicker-body');\n        this._body.style.maxHeight = Math.max(this._editor.getLayoutInfo().height / 4, 250) + 'px';\n        this._body.style.maxWidth = Math.max(this._editor.getLayoutInfo().width * 0.66, 500) + 'px';\n        this._body.tabIndex = 0;\n        this._body.appendChild(fragment);\n        colorPickerWidget.layout();\n        const colorPickerBody = colorPickerWidget.body;\n        const saturationBoxWidth = colorPickerBody.saturationBox.domNode.clientWidth;\n        const widthOfOriginalColorBox = colorPickerBody.domNode.clientWidth - saturationBoxWidth - CLOSE_BUTTON_WIDTH - PADDING;\n        const enterButton = colorPickerWidget.body.enterButton;\n        enterButton === null || enterButton === void 0 ? void 0 : enterButton.onClicked(() => {\n            this.updateEditor();\n            this.hide();\n        });\n        const colorPickerHeader = colorPickerWidget.header;\n        const pickedColorNode = colorPickerHeader.pickedColorNode;\n        pickedColorNode.style.width = saturationBoxWidth + PADDING + 'px';\n        const originalColorNode = colorPickerHeader.originalColorNode;\n        originalColorNode.style.width = widthOfOriginalColorBox + 'px';\n        const closeButton = colorPickerWidget.header.closeButton;\n        closeButton === null || closeButton === void 0 ? void 0 : closeButton.onClicked(() => {\n            this.hide();\n        });\n        // When found in the editor, highlight the selection in the editor\n        if (foundInEditor) {\n            if (enterButton) {\n                enterButton.button.textContent = 'Replace';\n            }\n            this._selectionSetInEditor = true;\n            this._editor.setSelection(colorHover.range);\n        }\n        this._editor.layoutContentWidget(this);\n    }\n};\nStandaloneColorPickerWidget.ID = 'editor.contrib.standaloneColorPickerWidget';\nStandaloneColorPickerWidget = StandaloneColorPickerWidget_1 = __decorate([\n    __param(3, IInstantiationService),\n    __param(4, IModelService),\n    __param(5, IKeybindingService),\n    __param(6, ILanguageFeaturesService),\n    __param(7, ILanguageConfigurationService)\n], StandaloneColorPickerWidget);\nexport { StandaloneColorPickerWidget };\nclass StandaloneColorPickerResult {\n    // The color picker result consists of: an array of color results and a boolean indicating if the color was found in the editor\n    constructor(value, foundInEditor) {\n        this.value = value;\n        this.foundInEditor = foundInEditor;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/comment/browser/blockCommentCommand.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { EditOperation } from '../../../common/core/editOperation.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nexport class BlockCommentCommand {\n    constructor(selection, insertSpace, languageConfigurationService) {\n        this.languageConfigurationService = languageConfigurationService;\n        this._selection = selection;\n        this._insertSpace = insertSpace;\n        this._usedEndToken = null;\n    }\n    static _haystackHasNeedleAtOffset(haystack, needle, offset) {\n        if (offset < 0) {\n            return false;\n        }\n        const needleLength = needle.length;\n        const haystackLength = haystack.length;\n        if (offset + needleLength > haystackLength) {\n            return false;\n        }\n        for (let i = 0; i < needleLength; i++) {\n            const codeA = haystack.charCodeAt(offset + i);\n            const codeB = needle.charCodeAt(i);\n            if (codeA === codeB) {\n                continue;\n            }\n            if (codeA >= 65 /* CharCode.A */ && codeA <= 90 /* CharCode.Z */ && codeA + 32 === codeB) {\n                // codeA is upper-case variant of codeB\n                continue;\n            }\n            if (codeB >= 65 /* CharCode.A */ && codeB <= 90 /* CharCode.Z */ && codeB + 32 === codeA) {\n                // codeB is upper-case variant of codeA\n                continue;\n            }\n            return false;\n        }\n        return true;\n    }\n    _createOperationsForBlockComment(selection, startToken, endToken, insertSpace, model, builder) {\n        const startLineNumber = selection.startLineNumber;\n        const startColumn = selection.startColumn;\n        const endLineNumber = selection.endLineNumber;\n        const endColumn = selection.endColumn;\n        const startLineText = model.getLineContent(startLineNumber);\n        const endLineText = model.getLineContent(endLineNumber);\n        let startTokenIndex = startLineText.lastIndexOf(startToken, startColumn - 1 + startToken.length);\n        let endTokenIndex = endLineText.indexOf(endToken, endColumn - 1 - endToken.length);\n        if (startTokenIndex !== -1 && endTokenIndex !== -1) {\n            if (startLineNumber === endLineNumber) {\n                const lineBetweenTokens = startLineText.substring(startTokenIndex + startToken.length, endTokenIndex);\n                if (lineBetweenTokens.indexOf(endToken) >= 0) {\n                    // force to add a block comment\n                    startTokenIndex = -1;\n                    endTokenIndex = -1;\n                }\n            }\n            else {\n                const startLineAfterStartToken = startLineText.substring(startTokenIndex + startToken.length);\n                const endLineBeforeEndToken = endLineText.substring(0, endTokenIndex);\n                if (startLineAfterStartToken.indexOf(endToken) >= 0 || endLineBeforeEndToken.indexOf(endToken) >= 0) {\n                    // force to add a block comment\n                    startTokenIndex = -1;\n                    endTokenIndex = -1;\n                }\n            }\n        }\n        let ops;\n        if (startTokenIndex !== -1 && endTokenIndex !== -1) {\n            // Consider spaces as part of the comment tokens\n            if (insertSpace && startTokenIndex + startToken.length < startLineText.length && startLineText.charCodeAt(startTokenIndex + startToken.length) === 32 /* CharCode.Space */) {\n                // Pretend the start token contains a trailing space\n                startToken = startToken + ' ';\n            }\n            if (insertSpace && endTokenIndex > 0 && endLineText.charCodeAt(endTokenIndex - 1) === 32 /* CharCode.Space */) {\n                // Pretend the end token contains a leading space\n                endToken = ' ' + endToken;\n                endTokenIndex -= 1;\n            }\n            ops = BlockCommentCommand._createRemoveBlockCommentOperations(new Range(startLineNumber, startTokenIndex + startToken.length + 1, endLineNumber, endTokenIndex + 1), startToken, endToken);\n        }\n        else {\n            ops = BlockCommentCommand._createAddBlockCommentOperations(selection, startToken, endToken, this._insertSpace);\n            this._usedEndToken = ops.length === 1 ? endToken : null;\n        }\n        for (const op of ops) {\n            builder.addTrackedEditOperation(op.range, op.text);\n        }\n    }\n    static _createRemoveBlockCommentOperations(r, startToken, endToken) {\n        const res = [];\n        if (!Range.isEmpty(r)) {\n            // Remove block comment start\n            res.push(EditOperation.delete(new Range(r.startLineNumber, r.startColumn - startToken.length, r.startLineNumber, r.startColumn)));\n            // Remove block comment end\n            res.push(EditOperation.delete(new Range(r.endLineNumber, r.endColumn, r.endLineNumber, r.endColumn + endToken.length)));\n        }\n        else {\n            // Remove both continuously\n            res.push(EditOperation.delete(new Range(r.startLineNumber, r.startColumn - startToken.length, r.endLineNumber, r.endColumn + endToken.length)));\n        }\n        return res;\n    }\n    static _createAddBlockCommentOperations(r, startToken, endToken, insertSpace) {\n        const res = [];\n        if (!Range.isEmpty(r)) {\n            // Insert block comment start\n            res.push(EditOperation.insert(new Position(r.startLineNumber, r.startColumn), startToken + (insertSpace ? ' ' : '')));\n            // Insert block comment end\n            res.push(EditOperation.insert(new Position(r.endLineNumber, r.endColumn), (insertSpace ? ' ' : '') + endToken));\n        }\n        else {\n            // Insert both continuously\n            res.push(EditOperation.replace(new Range(r.startLineNumber, r.startColumn, r.endLineNumber, r.endColumn), startToken + '  ' + endToken));\n        }\n        return res;\n    }\n    getEditOperations(model, builder) {\n        const startLineNumber = this._selection.startLineNumber;\n        const startColumn = this._selection.startColumn;\n        model.tokenization.tokenizeIfCheap(startLineNumber);\n        const languageId = model.getLanguageIdAtPosition(startLineNumber, startColumn);\n        const config = this.languageConfigurationService.getLanguageConfiguration(languageId).comments;\n        if (!config || !config.blockCommentStartToken || !config.blockCommentEndToken) {\n            // Mode does not support block comments\n            return;\n        }\n        this._createOperationsForBlockComment(this._selection, config.blockCommentStartToken, config.blockCommentEndToken, this._insertSpace, model, builder);\n    }\n    computeCursorState(model, helper) {\n        const inverseEditOperations = helper.getInverseEditOperations();\n        if (inverseEditOperations.length === 2) {\n            const startTokenEditOperation = inverseEditOperations[0];\n            const endTokenEditOperation = inverseEditOperations[1];\n            return new Selection(startTokenEditOperation.range.endLineNumber, startTokenEditOperation.range.endColumn, endTokenEditOperation.range.startLineNumber, endTokenEditOperation.range.startColumn);\n        }\n        else {\n            const srcRange = inverseEditOperations[0].range;\n            const deltaColumn = this._usedEndToken ? -this._usedEndToken.length - 1 : 0; // minus 1 space before endToken\n            return new Selection(srcRange.endLineNumber, srcRange.endColumn + deltaColumn, srcRange.endLineNumber, srcRange.endColumn + deltaColumn);\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/comment/browser/comment.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/comment/browser/comment.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { KeyChord } from '../../../../base/common/keyCodes.js';\nimport { EditorAction, registerEditorAction } from '../../../browser/editorExtensions.js';\nimport { Range } from '../../../common/core/range.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { BlockCommentCommand } from './blockCommentCommand.js';\nimport { LineCommentCommand } from './lineCommentCommand.js';\nimport * as nls from '../../../../nls.js';\nimport { MenuId } from '../../../../platform/actions/common/actions.js';\nclass CommentLineAction extends EditorAction {\n    constructor(type, opts) {\n        super(opts);\n        this._type = type;\n    }\n    run(accessor, editor) {\n        const languageConfigurationService = accessor.get(ILanguageConfigurationService);\n        if (!editor.hasModel()) {\n            return;\n        }\n        const model = editor.getModel();\n        const commands = [];\n        const modelOptions = model.getOptions();\n        const commentsOptions = editor.getOption(23 /* EditorOption.comments */);\n        const selections = editor.getSelections().map((selection, index) => ({ selection, index, ignoreFirstLine: false }));\n        selections.sort((a, b) => Range.compareRangesUsingStarts(a.selection, b.selection));\n        // Remove selections that would result in copying the same line\n        let prev = selections[0];\n        for (let i = 1; i < selections.length; i++) {\n            const curr = selections[i];\n            if (prev.selection.endLineNumber === curr.selection.startLineNumber) {\n                // these two selections would copy the same line\n                if (prev.index < curr.index) {\n                    // prev wins\n                    curr.ignoreFirstLine = true;\n                }\n                else {\n                    // curr wins\n                    prev.ignoreFirstLine = true;\n                    prev = curr;\n                }\n            }\n        }\n        for (const selection of selections) {\n            commands.push(new LineCommentCommand(languageConfigurationService, selection.selection, modelOptions.indentSize, this._type, commentsOptions.insertSpace, commentsOptions.ignoreEmptyLines, selection.ignoreFirstLine));\n        }\n        editor.pushUndoStop();\n        editor.executeCommands(this.id, commands);\n        editor.pushUndoStop();\n    }\n}\nclass ToggleCommentLineAction extends CommentLineAction {\n    constructor() {\n        super(0 /* Type.Toggle */, {\n            id: 'editor.action.commentLine',\n            label: nls.localize('comment.line', \"Toggle Line Comment\"),\n            alias: 'Toggle Line Comment',\n            precondition: EditorContextKeys.writable,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 90 /* KeyCode.Slash */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            menuOpts: {\n                menuId: MenuId.MenubarEditMenu,\n                group: '5_insert',\n                title: nls.localize({ key: 'miToggleLineComment', comment: ['&& denotes a mnemonic'] }, \"&&Toggle Line Comment\"),\n                order: 1\n            }\n        });\n    }\n}\nclass AddLineCommentAction extends CommentLineAction {\n    constructor() {\n        super(1 /* Type.ForceAdd */, {\n            id: 'editor.action.addCommentLine',\n            label: nls.localize('comment.line.add', \"Add Line Comment\"),\n            alias: 'Add Line Comment',\n            precondition: EditorContextKeys.writable,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 33 /* KeyCode.KeyC */),\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n}\nclass RemoveLineCommentAction extends CommentLineAction {\n    constructor() {\n        super(2 /* Type.ForceRemove */, {\n            id: 'editor.action.removeCommentLine',\n            label: nls.localize('comment.line.remove', \"Remove Line Comment\"),\n            alias: 'Remove Line Comment',\n            precondition: EditorContextKeys.writable,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 51 /* KeyCode.KeyU */),\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n}\nclass BlockCommentAction extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.blockComment',\n            label: nls.localize('comment.block', \"Toggle Block Comment\"),\n            alias: 'Toggle Block Comment',\n            precondition: EditorContextKeys.writable,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: 1024 /* KeyMod.Shift */ | 512 /* KeyMod.Alt */ | 31 /* KeyCode.KeyA */,\n                linux: { primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 31 /* KeyCode.KeyA */ },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            menuOpts: {\n                menuId: MenuId.MenubarEditMenu,\n                group: '5_insert',\n                title: nls.localize({ key: 'miToggleBlockComment', comment: ['&& denotes a mnemonic'] }, \"Toggle &&Block Comment\"),\n                order: 2\n            }\n        });\n    }\n    run(accessor, editor) {\n        const languageConfigurationService = accessor.get(ILanguageConfigurationService);\n        if (!editor.hasModel()) {\n            return;\n        }\n        const commentsOptions = editor.getOption(23 /* EditorOption.comments */);\n        const commands = [];\n        const selections = editor.getSelections();\n        for (const selection of selections) {\n            commands.push(new BlockCommentCommand(selection, commentsOptions.insertSpace, languageConfigurationService));\n        }\n        editor.pushUndoStop();\n        editor.executeCommands(this.id, commands);\n        editor.pushUndoStop();\n    }\n}\nregisterEditorAction(ToggleCommentLineAction);\nregisterEditorAction(AddLineCommentAction);\nregisterEditorAction(RemoveLineCommentAction);\nregisterEditorAction(BlockCommentAction);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/comment/browser/lineCommentCommand.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../../base/common/strings.js';\nimport { EditOperation } from '../../../common/core/editOperation.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { BlockCommentCommand } from './blockCommentCommand.js';\nexport class LineCommentCommand {\n    constructor(languageConfigurationService, selection, indentSize, type, insertSpace, ignoreEmptyLines, ignoreFirstLine) {\n        this.languageConfigurationService = languageConfigurationService;\n        this._selection = selection;\n        this._indentSize = indentSize;\n        this._type = type;\n        this._insertSpace = insertSpace;\n        this._selectionId = null;\n        this._deltaColumn = 0;\n        this._moveEndPositionDown = false;\n        this._ignoreEmptyLines = ignoreEmptyLines;\n        this._ignoreFirstLine = ignoreFirstLine || false;\n    }\n    /**\n     * Do an initial pass over the lines and gather info about the line comment string.\n     * Returns null if any of the lines doesn't support a line comment string.\n     */\n    static _gatherPreflightCommentStrings(model, startLineNumber, endLineNumber, languageConfigurationService) {\n        model.tokenization.tokenizeIfCheap(startLineNumber);\n        const languageId = model.getLanguageIdAtPosition(startLineNumber, 1);\n        const config = languageConfigurationService.getLanguageConfiguration(languageId).comments;\n        const commentStr = (config ? config.lineCommentToken : null);\n        if (!commentStr) {\n            // Mode does not support line comments\n            return null;\n        }\n        const lines = [];\n        for (let i = 0, lineCount = endLineNumber - startLineNumber + 1; i < lineCount; i++) {\n            lines[i] = {\n                ignore: false,\n                commentStr: commentStr,\n                commentStrOffset: 0,\n                commentStrLength: commentStr.length\n            };\n        }\n        return lines;\n    }\n    /**\n     * Analyze lines and decide which lines are relevant and what the toggle should do.\n     * Also, build up several offsets and lengths useful in the generation of editor operations.\n     */\n    static _analyzeLines(type, insertSpace, model, lines, startLineNumber, ignoreEmptyLines, ignoreFirstLine, languageConfigurationService) {\n        let onlyWhitespaceLines = true;\n        let shouldRemoveComments;\n        if (type === 0 /* Type.Toggle */) {\n            shouldRemoveComments = true;\n        }\n        else if (type === 1 /* Type.ForceAdd */) {\n            shouldRemoveComments = false;\n        }\n        else {\n            shouldRemoveComments = true;\n        }\n        for (let i = 0, lineCount = lines.length; i < lineCount; i++) {\n            const lineData = lines[i];\n            const lineNumber = startLineNumber + i;\n            if (lineNumber === startLineNumber && ignoreFirstLine) {\n                // first line ignored\n                lineData.ignore = true;\n                continue;\n            }\n            const lineContent = model.getLineContent(lineNumber);\n            const lineContentStartOffset = strings.firstNonWhitespaceIndex(lineContent);\n            if (lineContentStartOffset === -1) {\n                // Empty or whitespace only line\n                lineData.ignore = ignoreEmptyLines;\n                lineData.commentStrOffset = lineContent.length;\n                continue;\n            }\n            onlyWhitespaceLines = false;\n            lineData.ignore = false;\n            lineData.commentStrOffset = lineContentStartOffset;\n            if (shouldRemoveComments && !BlockCommentCommand._haystackHasNeedleAtOffset(lineContent, lineData.commentStr, lineContentStartOffset)) {\n                if (type === 0 /* Type.Toggle */) {\n                    // Every line so far has been a line comment, but this one is not\n                    shouldRemoveComments = false;\n                }\n                else if (type === 1 /* Type.ForceAdd */) {\n                    // Will not happen\n                }\n                else {\n                    lineData.ignore = true;\n                }\n            }\n            if (shouldRemoveComments && insertSpace) {\n                // Remove a following space if present\n                const commentStrEndOffset = lineContentStartOffset + lineData.commentStrLength;\n                if (commentStrEndOffset < lineContent.length && lineContent.charCodeAt(commentStrEndOffset) === 32 /* CharCode.Space */) {\n                    lineData.commentStrLength += 1;\n                }\n            }\n        }\n        if (type === 0 /* Type.Toggle */ && onlyWhitespaceLines) {\n            // For only whitespace lines, we insert comments\n            shouldRemoveComments = false;\n            // Also, no longer ignore them\n            for (let i = 0, lineCount = lines.length; i < lineCount; i++) {\n                lines[i].ignore = false;\n            }\n        }\n        return {\n            supported: true,\n            shouldRemoveComments: shouldRemoveComments,\n            lines: lines\n        };\n    }\n    /**\n     * Analyze all lines and decide exactly what to do => not supported | insert line comments | remove line comments\n     */\n    static _gatherPreflightData(type, insertSpace, model, startLineNumber, endLineNumber, ignoreEmptyLines, ignoreFirstLine, languageConfigurationService) {\n        const lines = LineCommentCommand._gatherPreflightCommentStrings(model, startLineNumber, endLineNumber, languageConfigurationService);\n        if (lines === null) {\n            return {\n                supported: false\n            };\n        }\n        return LineCommentCommand._analyzeLines(type, insertSpace, model, lines, startLineNumber, ignoreEmptyLines, ignoreFirstLine, languageConfigurationService);\n    }\n    /**\n     * Given a successful analysis, execute either insert line comments, either remove line comments\n     */\n    _executeLineComments(model, builder, data, s) {\n        let ops;\n        if (data.shouldRemoveComments) {\n            ops = LineCommentCommand._createRemoveLineCommentsOperations(data.lines, s.startLineNumber);\n        }\n        else {\n            LineCommentCommand._normalizeInsertionPoint(model, data.lines, s.startLineNumber, this._indentSize);\n            ops = this._createAddLineCommentsOperations(data.lines, s.startLineNumber);\n        }\n        const cursorPosition = new Position(s.positionLineNumber, s.positionColumn);\n        for (let i = 0, len = ops.length; i < len; i++) {\n            builder.addEditOperation(ops[i].range, ops[i].text);\n            if (Range.isEmpty(ops[i].range) && Range.getStartPosition(ops[i].range).equals(cursorPosition)) {\n                const lineContent = model.getLineContent(cursorPosition.lineNumber);\n                if (lineContent.length + 1 === cursorPosition.column) {\n                    this._deltaColumn = (ops[i].text || '').length;\n                }\n            }\n        }\n        this._selectionId = builder.trackSelection(s);\n    }\n    _attemptRemoveBlockComment(model, s, startToken, endToken) {\n        let startLineNumber = s.startLineNumber;\n        let endLineNumber = s.endLineNumber;\n        const startTokenAllowedBeforeColumn = endToken.length + Math.max(model.getLineFirstNonWhitespaceColumn(s.startLineNumber), s.startColumn);\n        let startTokenIndex = model.getLineContent(startLineNumber).lastIndexOf(startToken, startTokenAllowedBeforeColumn - 1);\n        let endTokenIndex = model.getLineContent(endLineNumber).indexOf(endToken, s.endColumn - 1 - startToken.length);\n        if (startTokenIndex !== -1 && endTokenIndex === -1) {\n            endTokenIndex = model.getLineContent(startLineNumber).indexOf(endToken, startTokenIndex + startToken.length);\n            endLineNumber = startLineNumber;\n        }\n        if (startTokenIndex === -1 && endTokenIndex !== -1) {\n            startTokenIndex = model.getLineContent(endLineNumber).lastIndexOf(startToken, endTokenIndex);\n            startLineNumber = endLineNumber;\n        }\n        if (s.isEmpty() && (startTokenIndex === -1 || endTokenIndex === -1)) {\n            startTokenIndex = model.getLineContent(startLineNumber).indexOf(startToken);\n            if (startTokenIndex !== -1) {\n                endTokenIndex = model.getLineContent(startLineNumber).indexOf(endToken, startTokenIndex + startToken.length);\n            }\n        }\n        // We have to adjust to possible inner white space.\n        // For Space after startToken, add Space to startToken - range math will work out.\n        if (startTokenIndex !== -1 && model.getLineContent(startLineNumber).charCodeAt(startTokenIndex + startToken.length) === 32 /* CharCode.Space */) {\n            startToken += ' ';\n        }\n        // For Space before endToken, add Space before endToken and shift index one left.\n        if (endTokenIndex !== -1 && model.getLineContent(endLineNumber).charCodeAt(endTokenIndex - 1) === 32 /* CharCode.Space */) {\n            endToken = ' ' + endToken;\n            endTokenIndex -= 1;\n        }\n        if (startTokenIndex !== -1 && endTokenIndex !== -1) {\n            return BlockCommentCommand._createRemoveBlockCommentOperations(new Range(startLineNumber, startTokenIndex + startToken.length + 1, endLineNumber, endTokenIndex + 1), startToken, endToken);\n        }\n        return null;\n    }\n    /**\n     * Given an unsuccessful analysis, delegate to the block comment command\n     */\n    _executeBlockComment(model, builder, s) {\n        model.tokenization.tokenizeIfCheap(s.startLineNumber);\n        const languageId = model.getLanguageIdAtPosition(s.startLineNumber, 1);\n        const config = this.languageConfigurationService.getLanguageConfiguration(languageId).comments;\n        if (!config || !config.blockCommentStartToken || !config.blockCommentEndToken) {\n            // Mode does not support block comments\n            return;\n        }\n        const startToken = config.blockCommentStartToken;\n        const endToken = config.blockCommentEndToken;\n        let ops = this._attemptRemoveBlockComment(model, s, startToken, endToken);\n        if (!ops) {\n            if (s.isEmpty()) {\n                const lineContent = model.getLineContent(s.startLineNumber);\n                let firstNonWhitespaceIndex = strings.firstNonWhitespaceIndex(lineContent);\n                if (firstNonWhitespaceIndex === -1) {\n                    // Line is empty or contains only whitespace\n                    firstNonWhitespaceIndex = lineContent.length;\n                }\n                ops = BlockCommentCommand._createAddBlockCommentOperations(new Range(s.startLineNumber, firstNonWhitespaceIndex + 1, s.startLineNumber, lineContent.length + 1), startToken, endToken, this._insertSpace);\n            }\n            else {\n                ops = BlockCommentCommand._createAddBlockCommentOperations(new Range(s.startLineNumber, model.getLineFirstNonWhitespaceColumn(s.startLineNumber), s.endLineNumber, model.getLineMaxColumn(s.endLineNumber)), startToken, endToken, this._insertSpace);\n            }\n            if (ops.length === 1) {\n                // Leave cursor after token and Space\n                this._deltaColumn = startToken.length + 1;\n            }\n        }\n        this._selectionId = builder.trackSelection(s);\n        for (const op of ops) {\n            builder.addEditOperation(op.range, op.text);\n        }\n    }\n    getEditOperations(model, builder) {\n        let s = this._selection;\n        this._moveEndPositionDown = false;\n        if (s.startLineNumber === s.endLineNumber && this._ignoreFirstLine) {\n            builder.addEditOperation(new Range(s.startLineNumber, model.getLineMaxColumn(s.startLineNumber), s.startLineNumber + 1, 1), s.startLineNumber === model.getLineCount() ? '' : '\\n');\n            this._selectionId = builder.trackSelection(s);\n            return;\n        }\n        if (s.startLineNumber < s.endLineNumber && s.endColumn === 1) {\n            this._moveEndPositionDown = true;\n            s = s.setEndPosition(s.endLineNumber - 1, model.getLineMaxColumn(s.endLineNumber - 1));\n        }\n        const data = LineCommentCommand._gatherPreflightData(this._type, this._insertSpace, model, s.startLineNumber, s.endLineNumber, this._ignoreEmptyLines, this._ignoreFirstLine, this.languageConfigurationService);\n        if (data.supported) {\n            return this._executeLineComments(model, builder, data, s);\n        }\n        return this._executeBlockComment(model, builder, s);\n    }\n    computeCursorState(model, helper) {\n        let result = helper.getTrackedSelection(this._selectionId);\n        if (this._moveEndPositionDown) {\n            result = result.setEndPosition(result.endLineNumber + 1, 1);\n        }\n        return new Selection(result.selectionStartLineNumber, result.selectionStartColumn + this._deltaColumn, result.positionLineNumber, result.positionColumn + this._deltaColumn);\n    }\n    /**\n     * Generate edit operations in the remove line comment case\n     */\n    static _createRemoveLineCommentsOperations(lines, startLineNumber) {\n        const res = [];\n        for (let i = 0, len = lines.length; i < len; i++) {\n            const lineData = lines[i];\n            if (lineData.ignore) {\n                continue;\n            }\n            res.push(EditOperation.delete(new Range(startLineNumber + i, lineData.commentStrOffset + 1, startLineNumber + i, lineData.commentStrOffset + lineData.commentStrLength + 1)));\n        }\n        return res;\n    }\n    /**\n     * Generate edit operations in the add line comment case\n     */\n    _createAddLineCommentsOperations(lines, startLineNumber) {\n        const res = [];\n        const afterCommentStr = this._insertSpace ? ' ' : '';\n        for (let i = 0, len = lines.length; i < len; i++) {\n            const lineData = lines[i];\n            if (lineData.ignore) {\n                continue;\n            }\n            res.push(EditOperation.insert(new Position(startLineNumber + i, lineData.commentStrOffset + 1), lineData.commentStr + afterCommentStr));\n        }\n        return res;\n    }\n    static nextVisibleColumn(currentVisibleColumn, indentSize, isTab, columnSize) {\n        if (isTab) {\n            return currentVisibleColumn + (indentSize - (currentVisibleColumn % indentSize));\n        }\n        return currentVisibleColumn + columnSize;\n    }\n    /**\n     * Adjust insertion points to have them vertically aligned in the add line comment case\n     */\n    static _normalizeInsertionPoint(model, lines, startLineNumber, indentSize) {\n        let minVisibleColumn = 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */;\n        let j;\n        let lenJ;\n        for (let i = 0, len = lines.length; i < len; i++) {\n            if (lines[i].ignore) {\n                continue;\n            }\n            const lineContent = model.getLineContent(startLineNumber + i);\n            let currentVisibleColumn = 0;\n            for (let j = 0, lenJ = lines[i].commentStrOffset; currentVisibleColumn < minVisibleColumn && j < lenJ; j++) {\n                currentVisibleColumn = LineCommentCommand.nextVisibleColumn(currentVisibleColumn, indentSize, lineContent.charCodeAt(j) === 9 /* CharCode.Tab */, 1);\n            }\n            if (currentVisibleColumn < minVisibleColumn) {\n                minVisibleColumn = currentVisibleColumn;\n            }\n        }\n        minVisibleColumn = Math.floor(minVisibleColumn / indentSize) * indentSize;\n        for (let i = 0, len = lines.length; i < len; i++) {\n            if (lines[i].ignore) {\n                continue;\n            }\n            const lineContent = model.getLineContent(startLineNumber + i);\n            let currentVisibleColumn = 0;\n            for (j = 0, lenJ = lines[i].commentStrOffset; currentVisibleColumn < minVisibleColumn && j < lenJ; j++) {\n                currentVisibleColumn = LineCommentCommand.nextVisibleColumn(currentVisibleColumn, indentSize, lineContent.charCodeAt(j) === 9 /* CharCode.Tab */, 1);\n            }\n            if (currentVisibleColumn > minVisibleColumn) {\n                lines[i].commentStrOffset = j - 1;\n            }\n            else {\n                lines[i].commentStrOffset = j;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/contextmenu/browser/contextmenu.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/contextmenu/browser/contextmenu.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar ContextMenuController_1;\nimport * as dom from '../../../../base/browser/dom.js';\nimport { ActionViewItem } from '../../../../base/browser/ui/actionbar/actionViewItems.js';\nimport { Separator, SubmenuAction } from '../../../../base/common/actions.js';\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { isIOS } from '../../../../base/common/platform.js';\nimport { EditorAction, registerEditorAction, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport * as nls from '../../../../nls.js';\nimport { IMenuService, SubmenuItemAction } from '../../../../platform/actions/common/actions.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IContextMenuService, IContextViewService } from '../../../../platform/contextview/browser/contextView.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { IWorkspaceContextService, isStandaloneEditorWorkspace } from '../../../../platform/workspace/common/workspace.js';\nlet ContextMenuController = ContextMenuController_1 = class ContextMenuController {\n    static get(editor) {\n        return editor.getContribution(ContextMenuController_1.ID);\n    }\n    constructor(editor, _contextMenuService, _contextViewService, _contextKeyService, _keybindingService, _menuService, _configurationService, _workspaceContextService) {\n        this._contextMenuService = _contextMenuService;\n        this._contextViewService = _contextViewService;\n        this._contextKeyService = _contextKeyService;\n        this._keybindingService = _keybindingService;\n        this._menuService = _menuService;\n        this._configurationService = _configurationService;\n        this._workspaceContextService = _workspaceContextService;\n        this._toDispose = new DisposableStore();\n        this._contextMenuIsBeingShownCount = 0;\n        this._editor = editor;\n        this._toDispose.add(this._editor.onContextMenu((e) => this._onContextMenu(e)));\n        this._toDispose.add(this._editor.onMouseWheel((e) => {\n            if (this._contextMenuIsBeingShownCount > 0) {\n                const view = this._contextViewService.getContextViewElement();\n                const target = e.srcElement;\n                // Event triggers on shadow root host first\n                // Check if the context view is under this host before hiding it #103169\n                if (!(target.shadowRoot && dom.getShadowRoot(view) === target.shadowRoot)) {\n                    this._contextViewService.hideContextView();\n                }\n            }\n        }));\n        this._toDispose.add(this._editor.onKeyDown((e) => {\n            if (!this._editor.getOption(24 /* EditorOption.contextmenu */)) {\n                return; // Context menu is turned off through configuration\n            }\n            if (e.keyCode === 58 /* KeyCode.ContextMenu */) {\n                // Chrome is funny like that\n                e.preventDefault();\n                e.stopPropagation();\n                this.showContextMenu();\n            }\n        }));\n    }\n    _onContextMenu(e) {\n        if (!this._editor.hasModel()) {\n            return;\n        }\n        if (!this._editor.getOption(24 /* EditorOption.contextmenu */)) {\n            this._editor.focus();\n            // Ensure the cursor is at the position of the mouse click\n            if (e.target.position && !this._editor.getSelection().containsPosition(e.target.position)) {\n                this._editor.setPosition(e.target.position);\n            }\n            return; // Context menu is turned off through configuration\n        }\n        if (e.target.type === 12 /* MouseTargetType.OVERLAY_WIDGET */) {\n            return; // allow native menu on widgets to support right click on input field for example in find\n        }\n        if (e.target.type === 6 /* MouseTargetType.CONTENT_TEXT */ && e.target.detail.injectedText) {\n            return; // allow native menu on injected text\n        }\n        e.event.preventDefault();\n        e.event.stopPropagation();\n        if (e.target.type === 11 /* MouseTargetType.SCROLLBAR */) {\n            return this._showScrollbarContextMenu(e.event);\n        }\n        if (e.target.type !== 6 /* MouseTargetType.CONTENT_TEXT */ && e.target.type !== 7 /* MouseTargetType.CONTENT_EMPTY */ && e.target.type !== 1 /* MouseTargetType.TEXTAREA */) {\n            return; // only support mouse click into text or native context menu key for now\n        }\n        // Ensure the editor gets focus if it hasn't, so the right events are being sent to other contributions\n        this._editor.focus();\n        // Ensure the cursor is at the position of the mouse click\n        if (e.target.position) {\n            let hasSelectionAtPosition = false;\n            for (const selection of this._editor.getSelections()) {\n                if (selection.containsPosition(e.target.position)) {\n                    hasSelectionAtPosition = true;\n                    break;\n                }\n            }\n            if (!hasSelectionAtPosition) {\n                this._editor.setPosition(e.target.position);\n            }\n        }\n        // Unless the user triggerd the context menu through Shift+F10, use the mouse position as menu position\n        let anchor = null;\n        if (e.target.type !== 1 /* MouseTargetType.TEXTAREA */) {\n            anchor = e.event;\n        }\n        // Show the context menu\n        this.showContextMenu(anchor);\n    }\n    showContextMenu(anchor) {\n        if (!this._editor.getOption(24 /* EditorOption.contextmenu */)) {\n            return; // Context menu is turned off through configuration\n        }\n        if (!this._editor.hasModel()) {\n            return;\n        }\n        // Find actions available for menu\n        const menuActions = this._getMenuActions(this._editor.getModel(), this._editor.contextMenuId);\n        // Show menu if we have actions to show\n        if (menuActions.length > 0) {\n            this._doShowContextMenu(menuActions, anchor);\n        }\n    }\n    _getMenuActions(model, menuId) {\n        const result = [];\n        // get menu groups\n        const menu = this._menuService.createMenu(menuId, this._contextKeyService);\n        const groups = menu.getActions({ arg: model.uri });\n        menu.dispose();\n        // translate them into other actions\n        for (const group of groups) {\n            const [, actions] = group;\n            let addedItems = 0;\n            for (const action of actions) {\n                if (action instanceof SubmenuItemAction) {\n                    const subActions = this._getMenuActions(model, action.item.submenu);\n                    if (subActions.length > 0) {\n                        result.push(new SubmenuAction(action.id, action.label, subActions));\n                        addedItems++;\n                    }\n                }\n                else {\n                    result.push(action);\n                    addedItems++;\n                }\n            }\n            if (addedItems) {\n                result.push(new Separator());\n            }\n        }\n        if (result.length) {\n            result.pop(); // remove last separator\n        }\n        return result;\n    }\n    _doShowContextMenu(actions, event = null) {\n        if (!this._editor.hasModel()) {\n            return;\n        }\n        // Disable hover\n        const oldHoverSetting = this._editor.getOption(60 /* EditorOption.hover */);\n        this._editor.updateOptions({\n            hover: {\n                enabled: false\n            }\n        });\n        let anchor = event;\n        if (!anchor) {\n            // Ensure selection is visible\n            this._editor.revealPosition(this._editor.getPosition(), 1 /* ScrollType.Immediate */);\n            this._editor.render();\n            const cursorCoords = this._editor.getScrolledVisiblePosition(this._editor.getPosition());\n            // Translate to absolute editor position\n            const editorCoords = dom.getDomNodePagePosition(this._editor.getDomNode());\n            const posx = editorCoords.left + cursorCoords.left;\n            const posy = editorCoords.top + cursorCoords.top + cursorCoords.height;\n            anchor = { x: posx, y: posy };\n        }\n        const useShadowDOM = this._editor.getOption(127 /* EditorOption.useShadowDOM */) && !isIOS; // Do not use shadow dom on IOS #122035\n        // Show menu\n        this._contextMenuIsBeingShownCount++;\n        this._contextMenuService.showContextMenu({\n            domForShadowRoot: useShadowDOM ? this._editor.getDomNode() : undefined,\n            getAnchor: () => anchor,\n            getActions: () => actions,\n            getActionViewItem: (action) => {\n                const keybinding = this._keybindingFor(action);\n                if (keybinding) {\n                    return new ActionViewItem(action, action, { label: true, keybinding: keybinding.getLabel(), isMenu: true });\n                }\n                const customActionViewItem = action;\n                if (typeof customActionViewItem.getActionViewItem === 'function') {\n                    return customActionViewItem.getActionViewItem();\n                }\n                return new ActionViewItem(action, action, { icon: true, label: true, isMenu: true });\n            },\n            getKeyBinding: (action) => {\n                return this._keybindingFor(action);\n            },\n            onHide: (wasCancelled) => {\n                this._contextMenuIsBeingShownCount--;\n                this._editor.updateOptions({\n                    hover: oldHoverSetting\n                });\n            }\n        });\n    }\n    _showScrollbarContextMenu(anchor) {\n        if (!this._editor.hasModel()) {\n            return;\n        }\n        if (isStandaloneEditorWorkspace(this._workspaceContextService.getWorkspace())) {\n            // can't update the configuration properly in the standalone editor\n            return;\n        }\n        const minimapOptions = this._editor.getOption(73 /* EditorOption.minimap */);\n        let lastId = 0;\n        const createAction = (opts) => {\n            return {\n                id: `menu-action-${++lastId}`,\n                label: opts.label,\n                tooltip: '',\n                class: undefined,\n                enabled: (typeof opts.enabled === 'undefined' ? true : opts.enabled),\n                checked: opts.checked,\n                run: opts.run\n            };\n        };\n        const createSubmenuAction = (label, actions) => {\n            return new SubmenuAction(`menu-action-${++lastId}`, label, actions, undefined);\n        };\n        const createEnumAction = (label, enabled, configName, configuredValue, options) => {\n            if (!enabled) {\n                return createAction({ label, enabled, run: () => { } });\n            }\n            const createRunner = (value) => {\n                return () => {\n                    this._configurationService.updateValue(configName, value);\n                };\n            };\n            const actions = [];\n            for (const option of options) {\n                actions.push(createAction({\n                    label: option.label,\n                    checked: configuredValue === option.value,\n                    run: createRunner(option.value)\n                }));\n            }\n            return createSubmenuAction(label, actions);\n        };\n        const actions = [];\n        actions.push(createAction({\n            label: nls.localize('context.minimap.minimap', \"Minimap\"),\n            checked: minimapOptions.enabled,\n            run: () => {\n                this._configurationService.updateValue(`editor.minimap.enabled`, !minimapOptions.enabled);\n            }\n        }));\n        actions.push(new Separator());\n        actions.push(createAction({\n            label: nls.localize('context.minimap.renderCharacters', \"Render Characters\"),\n            enabled: minimapOptions.enabled,\n            checked: minimapOptions.renderCharacters,\n            run: () => {\n                this._configurationService.updateValue(`editor.minimap.renderCharacters`, !minimapOptions.renderCharacters);\n            }\n        }));\n        actions.push(createEnumAction(nls.localize('context.minimap.size', \"Vertical size\"), minimapOptions.enabled, 'editor.minimap.size', minimapOptions.size, [{\n                label: nls.localize('context.minimap.size.proportional', \"Proportional\"),\n                value: 'proportional'\n            }, {\n                label: nls.localize('context.minimap.size.fill', \"Fill\"),\n                value: 'fill'\n            }, {\n                label: nls.localize('context.minimap.size.fit', \"Fit\"),\n                value: 'fit'\n            }]));\n        actions.push(createEnumAction(nls.localize('context.minimap.slider', \"Slider\"), minimapOptions.enabled, 'editor.minimap.showSlider', minimapOptions.showSlider, [{\n                label: nls.localize('context.minimap.slider.mouseover', \"Mouse Over\"),\n                value: 'mouseover'\n            }, {\n                label: nls.localize('context.minimap.slider.always', \"Always\"),\n                value: 'always'\n            }]));\n        const useShadowDOM = this._editor.getOption(127 /* EditorOption.useShadowDOM */) && !isIOS; // Do not use shadow dom on IOS #122035\n        this._contextMenuIsBeingShownCount++;\n        this._contextMenuService.showContextMenu({\n            domForShadowRoot: useShadowDOM ? this._editor.getDomNode() : undefined,\n            getAnchor: () => anchor,\n            getActions: () => actions,\n            onHide: (wasCancelled) => {\n                this._contextMenuIsBeingShownCount--;\n                this._editor.focus();\n            }\n        });\n    }\n    _keybindingFor(action) {\n        return this._keybindingService.lookupKeybinding(action.id);\n    }\n    dispose() {\n        if (this._contextMenuIsBeingShownCount > 0) {\n            this._contextViewService.hideContextView();\n        }\n        this._toDispose.dispose();\n    }\n};\nContextMenuController.ID = 'editor.contrib.contextmenu';\nContextMenuController = ContextMenuController_1 = __decorate([\n    __param(1, IContextMenuService),\n    __param(2, IContextViewService),\n    __param(3, IContextKeyService),\n    __param(4, IKeybindingService),\n    __param(5, IMenuService),\n    __param(6, IConfigurationService),\n    __param(7, IWorkspaceContextService)\n], ContextMenuController);\nexport { ContextMenuController };\nclass ShowContextMenu extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.showContextMenu',\n            label: nls.localize('action.showContextMenu.label', \"Show Editor Context Menu\"),\n            alias: 'Show Editor Context Menu',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: EditorContextKeys.textInputFocus,\n                primary: 1024 /* KeyMod.Shift */ | 68 /* KeyCode.F10 */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    run(accessor, editor) {\n        var _a;\n        (_a = ContextMenuController.get(editor)) === null || _a === void 0 ? void 0 : _a.showContextMenu();\n    }\n}\nregisterEditorContribution(ContextMenuController.ID, ContextMenuController, 2 /* EditorContributionInstantiation.BeforeFirstInteraction */);\nregisterEditorAction(ShowContextMenu);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/cursorUndo/browser/cursorUndo.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/cursorUndo/browser/cursorUndo.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { EditorAction, registerEditorAction, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport * as nls from '../../../../nls.js';\nclass CursorState {\n    constructor(selections) {\n        this.selections = selections;\n    }\n    equals(other) {\n        const thisLen = this.selections.length;\n        const otherLen = other.selections.length;\n        if (thisLen !== otherLen) {\n            return false;\n        }\n        for (let i = 0; i < thisLen; i++) {\n            if (!this.selections[i].equalsSelection(other.selections[i])) {\n                return false;\n            }\n        }\n        return true;\n    }\n}\nclass StackElement {\n    constructor(cursorState, scrollTop, scrollLeft) {\n        this.cursorState = cursorState;\n        this.scrollTop = scrollTop;\n        this.scrollLeft = scrollLeft;\n    }\n}\nexport class CursorUndoRedoController extends Disposable {\n    static get(editor) {\n        return editor.getContribution(CursorUndoRedoController.ID);\n    }\n    constructor(editor) {\n        super();\n        this._editor = editor;\n        this._isCursorUndoRedo = false;\n        this._undoStack = [];\n        this._redoStack = [];\n        this._register(editor.onDidChangeModel((e) => {\n            this._undoStack = [];\n            this._redoStack = [];\n        }));\n        this._register(editor.onDidChangeModelContent((e) => {\n            this._undoStack = [];\n            this._redoStack = [];\n        }));\n        this._register(editor.onDidChangeCursorSelection((e) => {\n            if (this._isCursorUndoRedo) {\n                return;\n            }\n            if (!e.oldSelections) {\n                return;\n            }\n            if (e.oldModelVersionId !== e.modelVersionId) {\n                return;\n            }\n            const prevState = new CursorState(e.oldSelections);\n            const isEqualToLastUndoStack = (this._undoStack.length > 0 && this._undoStack[this._undoStack.length - 1].cursorState.equals(prevState));\n            if (!isEqualToLastUndoStack) {\n                this._undoStack.push(new StackElement(prevState, editor.getScrollTop(), editor.getScrollLeft()));\n                this._redoStack = [];\n                if (this._undoStack.length > 50) {\n                    // keep the cursor undo stack bounded\n                    this._undoStack.shift();\n                }\n            }\n        }));\n    }\n    cursorUndo() {\n        if (!this._editor.hasModel() || this._undoStack.length === 0) {\n            return;\n        }\n        this._redoStack.push(new StackElement(new CursorState(this._editor.getSelections()), this._editor.getScrollTop(), this._editor.getScrollLeft()));\n        this._applyState(this._undoStack.pop());\n    }\n    cursorRedo() {\n        if (!this._editor.hasModel() || this._redoStack.length === 0) {\n            return;\n        }\n        this._undoStack.push(new StackElement(new CursorState(this._editor.getSelections()), this._editor.getScrollTop(), this._editor.getScrollLeft()));\n        this._applyState(this._redoStack.pop());\n    }\n    _applyState(stackElement) {\n        this._isCursorUndoRedo = true;\n        this._editor.setSelections(stackElement.cursorState.selections);\n        this._editor.setScrollPosition({\n            scrollTop: stackElement.scrollTop,\n            scrollLeft: stackElement.scrollLeft\n        });\n        this._isCursorUndoRedo = false;\n    }\n}\nCursorUndoRedoController.ID = 'editor.contrib.cursorUndoRedoController';\nexport class CursorUndo extends EditorAction {\n    constructor() {\n        super({\n            id: 'cursorUndo',\n            label: nls.localize('cursor.undo', \"Cursor Undo\"),\n            alias: 'Cursor Undo',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: EditorContextKeys.textInputFocus,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 51 /* KeyCode.KeyU */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    run(accessor, editor, args) {\n        var _a;\n        (_a = CursorUndoRedoController.get(editor)) === null || _a === void 0 ? void 0 : _a.cursorUndo();\n    }\n}\nexport class CursorRedo extends EditorAction {\n    constructor() {\n        super({\n            id: 'cursorRedo',\n            label: nls.localize('cursor.redo', \"Cursor Redo\"),\n            alias: 'Cursor Redo',\n            precondition: undefined\n        });\n    }\n    run(accessor, editor, args) {\n        var _a;\n        (_a = CursorUndoRedoController.get(editor)) === null || _a === void 0 ? void 0 : _a.cursorRedo();\n    }\n}\nregisterEditorContribution(CursorUndoRedoController.ID, CursorUndoRedoController, 0 /* EditorContributionInstantiation.Eager */); // eager because it needs to listen to record cursor state ASAP\nregisterEditorAction(CursorUndo);\nregisterEditorAction(CursorRedo);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/diffEditorBreadcrumbs/browser/contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/diffEditorBreadcrumbs/browser/contribution.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { reverseOrder, compareBy, numberComparator } from '../../../../base/common/arrays.js';\nimport { observableValue, observableSignalFromEvent, autorunWithStore } from '../../../../base/common/observable.js';\nimport { HideUnchangedRegionsFeature } from '../../../browser/widget/diffEditor/features/hideUnchangedRegionsFeature.js';\nimport { DisposableCancellationTokenSource } from '../../../browser/widget/diffEditor/utils.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { IOutlineModelService } from '../../documentSymbols/browser/outlineModel.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { Event } from '../../../../base/common/event.js';\nlet DiffEditorBreadcrumbsSource = class DiffEditorBreadcrumbsSource extends Disposable {\n    constructor(_textModel, _languageFeaturesService, _outlineModelService) {\n        super();\n        this._textModel = _textModel;\n        this._languageFeaturesService = _languageFeaturesService;\n        this._outlineModelService = _outlineModelService;\n        this._currentModel = observableValue(this, undefined);\n        const documentSymbolProviderChanged = observableSignalFromEvent('documentSymbolProvider.onDidChange', this._languageFeaturesService.documentSymbolProvider.onDidChange);\n        const textModelChanged = observableSignalFromEvent('_textModel.onDidChangeContent', Event.debounce(e => this._textModel.onDidChangeContent(e), () => undefined, 100));\n        this._register(autorunWithStore(async (reader, store) => {\n            documentSymbolProviderChanged.read(reader);\n            textModelChanged.read(reader);\n            const src = store.add(new DisposableCancellationTokenSource());\n            const model = await this._outlineModelService.getOrCreate(this._textModel, src.token);\n            if (store.isDisposed) {\n                return;\n            }\n            this._currentModel.set(model, undefined);\n        }));\n    }\n    getBreadcrumbItems(startRange, reader) {\n        const m = this._currentModel.read(reader);\n        if (!m) {\n            return [];\n        }\n        const symbols = m.asListOfDocumentSymbols()\n            .filter(s => startRange.contains(s.range.startLineNumber) && !startRange.contains(s.range.endLineNumber));\n        symbols.sort(reverseOrder(compareBy(s => s.range.endLineNumber - s.range.startLineNumber, numberComparator)));\n        return symbols.map(s => ({ name: s.name, kind: s.kind, startLineNumber: s.range.startLineNumber }));\n    }\n};\nDiffEditorBreadcrumbsSource = __decorate([\n    __param(1, ILanguageFeaturesService),\n    __param(2, IOutlineModelService)\n], DiffEditorBreadcrumbsSource);\nHideUnchangedRegionsFeature.setBreadcrumbsSourceFactory((textModel, instantiationService) => {\n    return instantiationService.createInstance(DiffEditorBreadcrumbsSource, textModel);\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/dnd/browser/dnd.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor.vs .dnd-target,\n.monaco-editor.hc-light .dnd-target {\n\tborder-right: 2px dotted black;\n\tcolor: white; /* opposite of black */\n}\n.monaco-editor.vs-dark .dnd-target {\n\tborder-right: 2px dotted #AEAFAD;\n\tcolor: #51504f; /* opposite of #AEAFAD */\n}\n.monaco-editor.hc-black .dnd-target {\n\tborder-right: 2px dotted #fff;\n\tcolor: #000; /* opposite of #fff */\n}\n\n.monaco-editor.mouse-default .view-lines,\n.monaco-editor.vs-dark.mac.mouse-default .view-lines,\n.monaco-editor.hc-black.mac.mouse-default .view-lines,\n.monaco-editor.hc-light.mac.mouse-default .view-lines {\n\tcursor: default;\n}\n.monaco-editor.mouse-copy .view-lines,\n.monaco-editor.vs-dark.mac.mouse-copy .view-lines,\n.monaco-editor.hc-black.mac.mouse-copy .view-lines,\n.monaco-editor.hc-light.mac.mouse-copy .view-lines {\n\tcursor: copy;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/dnd/browser/dnd.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/dnd/browser/dnd.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { isMacintosh } from '../../../../base/common/platform.js';\nimport './dnd.css';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { DragAndDropCommand } from './dragAndDropCommand.js';\nfunction hasTriggerModifier(e) {\n    if (isMacintosh) {\n        return e.altKey;\n    }\n    else {\n        return e.ctrlKey;\n    }\n}\nexport class DragAndDropController extends Disposable {\n    constructor(editor) {\n        super();\n        this._editor = editor;\n        this._dndDecorationIds = this._editor.createDecorationsCollection();\n        this._register(this._editor.onMouseDown((e) => this._onEditorMouseDown(e)));\n        this._register(this._editor.onMouseUp((e) => this._onEditorMouseUp(e)));\n        this._register(this._editor.onMouseDrag((e) => this._onEditorMouseDrag(e)));\n        this._register(this._editor.onMouseDrop((e) => this._onEditorMouseDrop(e)));\n        this._register(this._editor.onMouseDropCanceled(() => this._onEditorMouseDropCanceled()));\n        this._register(this._editor.onKeyDown((e) => this.onEditorKeyDown(e)));\n        this._register(this._editor.onKeyUp((e) => this.onEditorKeyUp(e)));\n        this._register(this._editor.onDidBlurEditorWidget(() => this.onEditorBlur()));\n        this._register(this._editor.onDidBlurEditorText(() => this.onEditorBlur()));\n        this._mouseDown = false;\n        this._modifierPressed = false;\n        this._dragSelection = null;\n    }\n    onEditorBlur() {\n        this._removeDecoration();\n        this._dragSelection = null;\n        this._mouseDown = false;\n        this._modifierPressed = false;\n    }\n    onEditorKeyDown(e) {\n        if (!this._editor.getOption(35 /* EditorOption.dragAndDrop */) || this._editor.getOption(22 /* EditorOption.columnSelection */)) {\n            return;\n        }\n        if (hasTriggerModifier(e)) {\n            this._modifierPressed = true;\n        }\n        if (this._mouseDown && hasTriggerModifier(e)) {\n            this._editor.updateOptions({\n                mouseStyle: 'copy'\n            });\n        }\n    }\n    onEditorKeyUp(e) {\n        if (!this._editor.getOption(35 /* EditorOption.dragAndDrop */) || this._editor.getOption(22 /* EditorOption.columnSelection */)) {\n            return;\n        }\n        if (hasTriggerModifier(e)) {\n            this._modifierPressed = false;\n        }\n        if (this._mouseDown && e.keyCode === DragAndDropController.TRIGGER_KEY_VALUE) {\n            this._editor.updateOptions({\n                mouseStyle: 'default'\n            });\n        }\n    }\n    _onEditorMouseDown(mouseEvent) {\n        this._mouseDown = true;\n    }\n    _onEditorMouseUp(mouseEvent) {\n        this._mouseDown = false;\n        // Whenever users release the mouse, the drag and drop operation should finish and the cursor should revert to text.\n        this._editor.updateOptions({\n            mouseStyle: 'text'\n        });\n    }\n    _onEditorMouseDrag(mouseEvent) {\n        const target = mouseEvent.target;\n        if (this._dragSelection === null) {\n            const selections = this._editor.getSelections() || [];\n            const possibleSelections = selections.filter(selection => target.position && selection.containsPosition(target.position));\n            if (possibleSelections.length === 1) {\n                this._dragSelection = possibleSelections[0];\n            }\n            else {\n                return;\n            }\n        }\n        if (hasTriggerModifier(mouseEvent.event)) {\n            this._editor.updateOptions({\n                mouseStyle: 'copy'\n            });\n        }\n        else {\n            this._editor.updateOptions({\n                mouseStyle: 'default'\n            });\n        }\n        if (target.position) {\n            if (this._dragSelection.containsPosition(target.position)) {\n                this._removeDecoration();\n            }\n            else {\n                this.showAt(target.position);\n            }\n        }\n    }\n    _onEditorMouseDropCanceled() {\n        this._editor.updateOptions({\n            mouseStyle: 'text'\n        });\n        this._removeDecoration();\n        this._dragSelection = null;\n        this._mouseDown = false;\n    }\n    _onEditorMouseDrop(mouseEvent) {\n        if (mouseEvent.target && (this._hitContent(mouseEvent.target) || this._hitMargin(mouseEvent.target)) && mouseEvent.target.position) {\n            const newCursorPosition = new Position(mouseEvent.target.position.lineNumber, mouseEvent.target.position.column);\n            if (this._dragSelection === null) {\n                let newSelections = null;\n                if (mouseEvent.event.shiftKey) {\n                    const primarySelection = this._editor.getSelection();\n                    if (primarySelection) {\n                        const { selectionStartLineNumber, selectionStartColumn } = primarySelection;\n                        newSelections = [new Selection(selectionStartLineNumber, selectionStartColumn, newCursorPosition.lineNumber, newCursorPosition.column)];\n                    }\n                }\n                else {\n                    newSelections = (this._editor.getSelections() || []).map(selection => {\n                        if (selection.containsPosition(newCursorPosition)) {\n                            return new Selection(newCursorPosition.lineNumber, newCursorPosition.column, newCursorPosition.lineNumber, newCursorPosition.column);\n                        }\n                        else {\n                            return selection;\n                        }\n                    });\n                }\n                // Use `mouse` as the source instead of `api` and setting the reason to explicit (to behave like any other mouse operation).\n                this._editor.setSelections(newSelections || [], 'mouse', 3 /* CursorChangeReason.Explicit */);\n            }\n            else if (!this._dragSelection.containsPosition(newCursorPosition) ||\n                ((hasTriggerModifier(mouseEvent.event) ||\n                    this._modifierPressed) && (this._dragSelection.getEndPosition().equals(newCursorPosition) || this._dragSelection.getStartPosition().equals(newCursorPosition)) // we allow users to paste content beside the selection\n                )) {\n                this._editor.pushUndoStop();\n                this._editor.executeCommand(DragAndDropController.ID, new DragAndDropCommand(this._dragSelection, newCursorPosition, hasTriggerModifier(mouseEvent.event) || this._modifierPressed));\n                this._editor.pushUndoStop();\n            }\n        }\n        this._editor.updateOptions({\n            mouseStyle: 'text'\n        });\n        this._removeDecoration();\n        this._dragSelection = null;\n        this._mouseDown = false;\n    }\n    showAt(position) {\n        this._dndDecorationIds.set([{\n                range: new Range(position.lineNumber, position.column, position.lineNumber, position.column),\n                options: DragAndDropController._DECORATION_OPTIONS\n            }]);\n        this._editor.revealPosition(position, 1 /* ScrollType.Immediate */);\n    }\n    _removeDecoration() {\n        this._dndDecorationIds.clear();\n    }\n    _hitContent(target) {\n        return target.type === 6 /* MouseTargetType.CONTENT_TEXT */ ||\n            target.type === 7 /* MouseTargetType.CONTENT_EMPTY */;\n    }\n    _hitMargin(target) {\n        return target.type === 2 /* MouseTargetType.GUTTER_GLYPH_MARGIN */ ||\n            target.type === 3 /* MouseTargetType.GUTTER_LINE_NUMBERS */ ||\n            target.type === 4 /* MouseTargetType.GUTTER_LINE_DECORATIONS */;\n    }\n    dispose() {\n        this._removeDecoration();\n        this._dragSelection = null;\n        this._mouseDown = false;\n        this._modifierPressed = false;\n        super.dispose();\n    }\n}\nDragAndDropController.ID = 'editor.contrib.dragAndDrop';\nDragAndDropController.TRIGGER_KEY_VALUE = isMacintosh ? 6 /* KeyCode.Alt */ : 5 /* KeyCode.Ctrl */;\nDragAndDropController._DECORATION_OPTIONS = ModelDecorationOptions.register({\n    description: 'dnd-target',\n    className: 'dnd-target'\n});\nregisterEditorContribution(DragAndDropController.ID, DragAndDropController, 2 /* EditorContributionInstantiation.BeforeFirstInteraction */);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/dnd/browser/dragAndDropCommand.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nexport class DragAndDropCommand {\n    constructor(selection, targetPosition, copy) {\n        this.selection = selection;\n        this.targetPosition = targetPosition;\n        this.copy = copy;\n        this.targetSelection = null;\n    }\n    getEditOperations(model, builder) {\n        const text = model.getValueInRange(this.selection);\n        if (!this.copy) {\n            builder.addEditOperation(this.selection, null);\n        }\n        builder.addEditOperation(new Range(this.targetPosition.lineNumber, this.targetPosition.column, this.targetPosition.lineNumber, this.targetPosition.column), text);\n        if (this.selection.containsPosition(this.targetPosition) && !(this.copy && (this.selection.getEndPosition().equals(this.targetPosition) || this.selection.getStartPosition().equals(this.targetPosition)) // we allow users to paste content beside the selection\n        )) {\n            this.targetSelection = this.selection;\n            return;\n        }\n        if (this.copy) {\n            this.targetSelection = new Selection(this.targetPosition.lineNumber, this.targetPosition.column, this.selection.endLineNumber - this.selection.startLineNumber + this.targetPosition.lineNumber, this.selection.startLineNumber === this.selection.endLineNumber ?\n                this.targetPosition.column + this.selection.endColumn - this.selection.startColumn :\n                this.selection.endColumn);\n            return;\n        }\n        if (this.targetPosition.lineNumber > this.selection.endLineNumber) {\n            // Drag the selection downwards\n            this.targetSelection = new Selection(this.targetPosition.lineNumber - this.selection.endLineNumber + this.selection.startLineNumber, this.targetPosition.column, this.targetPosition.lineNumber, this.selection.startLineNumber === this.selection.endLineNumber ?\n                this.targetPosition.column + this.selection.endColumn - this.selection.startColumn :\n                this.selection.endColumn);\n            return;\n        }\n        if (this.targetPosition.lineNumber < this.selection.endLineNumber) {\n            // Drag the selection upwards\n            this.targetSelection = new Selection(this.targetPosition.lineNumber, this.targetPosition.column, this.targetPosition.lineNumber + this.selection.endLineNumber - this.selection.startLineNumber, this.selection.startLineNumber === this.selection.endLineNumber ?\n                this.targetPosition.column + this.selection.endColumn - this.selection.startColumn :\n                this.selection.endColumn);\n            return;\n        }\n        // The target position is at the same line as the selection's end position.\n        if (this.selection.endColumn <= this.targetPosition.column) {\n            // The target position is after the selection's end position\n            this.targetSelection = new Selection(this.targetPosition.lineNumber - this.selection.endLineNumber + this.selection.startLineNumber, this.selection.startLineNumber === this.selection.endLineNumber ?\n                this.targetPosition.column - this.selection.endColumn + this.selection.startColumn :\n                this.targetPosition.column - this.selection.endColumn + this.selection.startColumn, this.targetPosition.lineNumber, this.selection.startLineNumber === this.selection.endLineNumber ?\n                this.targetPosition.column :\n                this.selection.endColumn);\n        }\n        else {\n            // The target position is before the selection's end position. Since the selection doesn't contain the target position, the selection is one-line and target position is before this selection.\n            this.targetSelection = new Selection(this.targetPosition.lineNumber - this.selection.endLineNumber + this.selection.startLineNumber, this.targetPosition.column, this.targetPosition.lineNumber, this.targetPosition.column + this.selection.endColumn - this.selection.startColumn);\n        }\n    }\n    computeCursorState(model, helper) {\n        return this.targetSelection;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/documentSymbols/browser/documentSymbols.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/documentSymbols/browser/documentSymbols.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { assertType } from '../../../../base/common/types.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport { ITextModelService } from '../../../common/services/resolverService.js';\nimport { IOutlineModelService } from './outlineModel.js';\nimport { CommandsRegistry } from '../../../../platform/commands/common/commands.js';\nCommandsRegistry.registerCommand('_executeDocumentSymbolProvider', async function (accessor, ...args) {\n    const [resource] = args;\n    assertType(URI.isUri(resource));\n    const outlineService = accessor.get(IOutlineModelService);\n    const modelService = accessor.get(ITextModelService);\n    const reference = await modelService.createModelReference(resource);\n    try {\n        return (await outlineService.getOrCreate(reference.object.textEditorModel, CancellationToken.None)).getTopLevelSymbols();\n    }\n    finally {\n        reference.dispose();\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/documentSymbols/browser/outlineModel.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { equals } from '../../../../base/common/arrays.js';\nimport { CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { Iterable } from '../../../../base/common/iterator.js';\nimport { LRUCache } from '../../../../base/common/map.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { ILanguageFeatureDebounceService } from '../../../common/services/languageFeatureDebounce.js';\nimport { createDecorator } from '../../../../platform/instantiation/common/instantiation.js';\nimport { registerSingleton } from '../../../../platform/instantiation/common/extensions.js';\nimport { IModelService } from '../../../common/services/model.js';\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nexport class TreeElement {\n    remove() {\n        var _a;\n        (_a = this.parent) === null || _a === void 0 ? void 0 : _a.children.delete(this.id);\n    }\n    static findId(candidate, container) {\n        // complex id-computation which contains the origin/extension,\n        // the parent path, and some dedupe logic when names collide\n        let candidateId;\n        if (typeof candidate === 'string') {\n            candidateId = `${container.id}/${candidate}`;\n        }\n        else {\n            candidateId = `${container.id}/${candidate.name}`;\n            if (container.children.get(candidateId) !== undefined) {\n                candidateId = `${container.id}/${candidate.name}_${candidate.range.startLineNumber}_${candidate.range.startColumn}`;\n            }\n        }\n        let id = candidateId;\n        for (let i = 0; container.children.get(id) !== undefined; i++) {\n            id = `${candidateId}_${i}`;\n        }\n        return id;\n    }\n    static empty(element) {\n        return element.children.size === 0;\n    }\n}\nexport class OutlineElement extends TreeElement {\n    constructor(id, parent, symbol) {\n        super();\n        this.id = id;\n        this.parent = parent;\n        this.symbol = symbol;\n        this.children = new Map();\n    }\n}\nexport class OutlineGroup extends TreeElement {\n    constructor(id, parent, label, order) {\n        super();\n        this.id = id;\n        this.parent = parent;\n        this.label = label;\n        this.order = order;\n        this.children = new Map();\n    }\n}\nexport class OutlineModel extends TreeElement {\n    static create(registry, textModel, token) {\n        const cts = new CancellationTokenSource(token);\n        const result = new OutlineModel(textModel.uri);\n        const provider = registry.ordered(textModel);\n        const promises = provider.map((provider, index) => {\n            var _a;\n            const id = TreeElement.findId(`provider_${index}`, result);\n            const group = new OutlineGroup(id, result, (_a = provider.displayName) !== null && _a !== void 0 ? _a : 'Unknown Outline Provider', index);\n            return Promise.resolve(provider.provideDocumentSymbols(textModel, cts.token)).then(result => {\n                for (const info of result || []) {\n                    OutlineModel._makeOutlineElement(info, group);\n                }\n                return group;\n            }, err => {\n                onUnexpectedExternalError(err);\n                return group;\n            }).then(group => {\n                if (!TreeElement.empty(group)) {\n                    result._groups.set(id, group);\n                }\n                else {\n                    group.remove();\n                }\n            });\n        });\n        const listener = registry.onDidChange(() => {\n            const newProvider = registry.ordered(textModel);\n            if (!equals(newProvider, provider)) {\n                cts.cancel();\n            }\n        });\n        return Promise.all(promises).then(() => {\n            if (cts.token.isCancellationRequested && !token.isCancellationRequested) {\n                return OutlineModel.create(registry, textModel, token);\n            }\n            else {\n                return result._compact();\n            }\n        }).finally(() => {\n            cts.dispose();\n            listener.dispose();\n            cts.dispose();\n        });\n    }\n    static _makeOutlineElement(info, container) {\n        const id = TreeElement.findId(info, container);\n        const res = new OutlineElement(id, container, info);\n        if (info.children) {\n            for (const childInfo of info.children) {\n                OutlineModel._makeOutlineElement(childInfo, res);\n            }\n        }\n        container.children.set(res.id, res);\n    }\n    constructor(uri) {\n        super();\n        this.uri = uri;\n        this.id = 'root';\n        this.parent = undefined;\n        this._groups = new Map();\n        this.children = new Map();\n        this.id = 'root';\n        this.parent = undefined;\n    }\n    _compact() {\n        let count = 0;\n        for (const [key, group] of this._groups) {\n            if (group.children.size === 0) { // empty\n                this._groups.delete(key);\n            }\n            else {\n                count += 1;\n            }\n        }\n        if (count !== 1) {\n            //\n            this.children = this._groups;\n        }\n        else {\n            // adopt all elements of the first group\n            const group = Iterable.first(this._groups.values());\n            for (const [, child] of group.children) {\n                child.parent = this;\n                this.children.set(child.id, child);\n            }\n        }\n        return this;\n    }\n    getTopLevelSymbols() {\n        const roots = [];\n        for (const child of this.children.values()) {\n            if (child instanceof OutlineElement) {\n                roots.push(child.symbol);\n            }\n            else {\n                roots.push(...Iterable.map(child.children.values(), child => child.symbol));\n            }\n        }\n        return roots.sort((a, b) => Range.compareRangesUsingStarts(a.range, b.range));\n    }\n    asListOfDocumentSymbols() {\n        const roots = this.getTopLevelSymbols();\n        const bucket = [];\n        OutlineModel._flattenDocumentSymbols(bucket, roots, '');\n        return bucket.sort((a, b) => Position.compare(Range.getStartPosition(a.range), Range.getStartPosition(b.range)) || Position.compare(Range.getEndPosition(b.range), Range.getEndPosition(a.range)));\n    }\n    static _flattenDocumentSymbols(bucket, entries, overrideContainerLabel) {\n        for (const entry of entries) {\n            bucket.push({\n                kind: entry.kind,\n                tags: entry.tags,\n                name: entry.name,\n                detail: entry.detail,\n                containerName: entry.containerName || overrideContainerLabel,\n                range: entry.range,\n                selectionRange: entry.selectionRange,\n                children: undefined, // we flatten it...\n            });\n            // Recurse over children\n            if (entry.children) {\n                OutlineModel._flattenDocumentSymbols(bucket, entry.children, entry.name);\n            }\n        }\n    }\n}\nexport const IOutlineModelService = createDecorator('IOutlineModelService');\nlet OutlineModelService = class OutlineModelService {\n    constructor(_languageFeaturesService, debounces, modelService) {\n        this._languageFeaturesService = _languageFeaturesService;\n        this._disposables = new DisposableStore();\n        this._cache = new LRUCache(10, 0.7);\n        this._debounceInformation = debounces.for(_languageFeaturesService.documentSymbolProvider, 'DocumentSymbols', { min: 350 });\n        // don't cache outline models longer than their text model\n        this._disposables.add(modelService.onModelRemoved(textModel => {\n            this._cache.delete(textModel.id);\n        }));\n    }\n    dispose() {\n        this._disposables.dispose();\n    }\n    async getOrCreate(textModel, token) {\n        const registry = this._languageFeaturesService.documentSymbolProvider;\n        const provider = registry.ordered(textModel);\n        let data = this._cache.get(textModel.id);\n        if (!data || data.versionId !== textModel.getVersionId() || !equals(data.provider, provider)) {\n            const source = new CancellationTokenSource();\n            data = {\n                versionId: textModel.getVersionId(),\n                provider,\n                promiseCnt: 0,\n                source,\n                promise: OutlineModel.create(registry, textModel, source.token),\n                model: undefined,\n            };\n            this._cache.set(textModel.id, data);\n            const now = Date.now();\n            data.promise.then(outlineModel => {\n                data.model = outlineModel;\n                this._debounceInformation.update(textModel, Date.now() - now);\n            }).catch(_err => {\n                this._cache.delete(textModel.id);\n            });\n        }\n        if (data.model) {\n            // resolved -> return data\n            return data.model;\n        }\n        // increase usage counter\n        data.promiseCnt += 1;\n        const listener = token.onCancellationRequested(() => {\n            // last -> cancel provider request, remove cached promise\n            if (--data.promiseCnt === 0) {\n                data.source.cancel();\n                this._cache.delete(textModel.id);\n            }\n        });\n        try {\n            return await data.promise;\n        }\n        finally {\n            listener.dispose();\n        }\n    }\n};\nOutlineModelService = __decorate([\n    __param(0, ILanguageFeaturesService),\n    __param(1, ILanguageFeatureDebounceService),\n    __param(2, IModelService)\n], OutlineModelService);\nexport { OutlineModelService };\nregisterSingleton(IOutlineModelService, OutlineModelService, 1 /* InstantiationType.Delayed */);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar _a;\nimport { HierarchicalKind } from '../../../../base/common/hierarchicalKind.js';\nimport { EditorAction, EditorCommand, registerEditorAction, registerEditorCommand, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { registerEditorFeature } from '../../../common/editorFeatures.js';\nimport { CopyPasteController, changePasteTypeCommandId, pasteWidgetVisibleCtx } from './copyPasteController.js';\nimport { DefaultPasteProvidersFeature, DefaultTextPasteOrDropEditProvider } from './defaultProviders.js';\nimport * as nls from '../../../../nls.js';\nregisterEditorContribution(CopyPasteController.ID, CopyPasteController, 0 /* EditorContributionInstantiation.Eager */); // eager because it listens to events on the container dom node of the editor\nregisterEditorFeature(DefaultPasteProvidersFeature);\nregisterEditorCommand(new class extends EditorCommand {\n    constructor() {\n        super({\n            id: changePasteTypeCommandId,\n            precondition: pasteWidgetVisibleCtx,\n            kbOpts: {\n                weight: 100 /* KeybindingWeight.EditorContrib */,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 89 /* KeyCode.Period */,\n            }\n        });\n    }\n    runEditorCommand(_accessor, editor) {\n        var _b;\n        return (_b = CopyPasteController.get(editor)) === null || _b === void 0 ? void 0 : _b.changePasteType();\n    }\n});\nregisterEditorCommand(new class extends EditorCommand {\n    constructor() {\n        super({\n            id: 'editor.hidePasteWidget',\n            precondition: pasteWidgetVisibleCtx,\n            kbOpts: {\n                weight: 100 /* KeybindingWeight.EditorContrib */,\n                primary: 9 /* KeyCode.Escape */,\n            }\n        });\n    }\n    runEditorCommand(_accessor, editor) {\n        var _b;\n        (_b = CopyPasteController.get(editor)) === null || _b === void 0 ? void 0 : _b.clearWidgets();\n    }\n});\nregisterEditorAction((_a = class PasteAsAction extends EditorAction {\n        constructor() {\n            super({\n                id: 'editor.action.pasteAs',\n                label: nls.localize('pasteAs', \"Paste As...\"),\n                alias: 'Paste As...',\n                precondition: EditorContextKeys.writable,\n                metadata: {\n                    description: 'Paste as',\n                    args: [{\n                            name: 'args',\n                            schema: _a.argsSchema\n                        }]\n                }\n            });\n        }\n        run(_accessor, editor, args) {\n            var _b;\n            let kind = typeof (args === null || args === void 0 ? void 0 : args.kind) === 'string' ? args.kind : undefined;\n            if (!kind && args) {\n                // Support old id property\n                // TODO: remove this in the future\n                kind = typeof args.id === 'string' ? args.id : undefined;\n            }\n            return (_b = CopyPasteController.get(editor)) === null || _b === void 0 ? void 0 : _b.pasteAs(kind ? new HierarchicalKind(kind) : undefined);\n        }\n    },\n    _a.argsSchema = {\n        type: 'object',\n        properties: {\n            kind: {\n                type: 'string',\n                description: nls.localize('pasteAs.kind', \"The kind of the paste edit to try applying. If not provided or there are multiple edits for this kind, the editor will show a picker.\"),\n            }\n        },\n    },\n    _a));\nregisterEditorAction(class extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.pasteAsText',\n            label: nls.localize('pasteAsText', \"Paste as Text\"),\n            alias: 'Paste as Text',\n            precondition: EditorContextKeys.writable,\n        });\n    }\n    run(_accessor, editor) {\n        var _b;\n        return (_b = CopyPasteController.get(editor)) === null || _b === void 0 ? void 0 : _b.pasteAs({ providerId: DefaultTextPasteOrDropEditProvider.id });\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar CopyPasteController_1;\nimport { addDisposableListener, getActiveDocument } from '../../../../base/browser/dom.js';\nimport { coalesce } from '../../../../base/common/arrays.js';\nimport { createCancelablePromise, raceCancellation } from '../../../../base/common/async.js';\nimport { UriList, createStringDataTransferItem, matchesMimeType } from '../../../../base/common/dataTransfer.js';\nimport { HierarchicalKind } from '../../../../base/common/hierarchicalKind.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { Mimes } from '../../../../base/common/mime.js';\nimport * as platform from '../../../../base/common/platform.js';\nimport { generateUuid } from '../../../../base/common/uuid.js';\nimport { ClipboardEventUtils } from '../../../browser/controller/textAreaInput.js';\nimport { toExternalVSDataTransfer, toVSDataTransfer } from '../../../browser/dnd.js';\nimport { IBulkEditService } from '../../../browser/services/bulkEditService.js';\nimport { Range } from '../../../common/core/range.js';\nimport { DocumentPasteTriggerKind } from '../../../common/languages.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { DefaultTextPasteOrDropEditProvider } from './defaultProviders.js';\nimport { createCombinedWorkspaceEdit, sortEditsByYieldTo } from './edit.js';\nimport { EditorStateCancellationTokenSource } from '../../editorState/browser/editorState.js';\nimport { InlineProgressManager } from '../../inlineProgress/browser/inlineProgress.js';\nimport { MessageController } from '../../message/browser/messageController.js';\nimport { localize } from '../../../../nls.js';\nimport { IClipboardService } from '../../../../platform/clipboard/common/clipboardService.js';\nimport { RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IProgressService } from '../../../../platform/progress/common/progress.js';\nimport { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.js';\nimport { PostEditWidgetManager } from './postEditWidget.js';\nexport const changePasteTypeCommandId = 'editor.changePasteType';\nexport const pasteWidgetVisibleCtx = new RawContextKey('pasteWidgetVisible', false, localize('pasteWidgetVisible', \"Whether the paste widget is showing\"));\nconst vscodeClipboardMime = 'application/vnd.code.copyMetadata';\nlet CopyPasteController = CopyPasteController_1 = class CopyPasteController extends Disposable {\n    static get(editor) {\n        return editor.getContribution(CopyPasteController_1.ID);\n    }\n    constructor(editor, instantiationService, _bulkEditService, _clipboardService, _languageFeaturesService, _quickInputService, _progressService) {\n        super();\n        this._bulkEditService = _bulkEditService;\n        this._clipboardService = _clipboardService;\n        this._languageFeaturesService = _languageFeaturesService;\n        this._quickInputService = _quickInputService;\n        this._progressService = _progressService;\n        this._editor = editor;\n        const container = editor.getContainerDomNode();\n        this._register(addDisposableListener(container, 'copy', e => this.handleCopy(e)));\n        this._register(addDisposableListener(container, 'cut', e => this.handleCopy(e)));\n        this._register(addDisposableListener(container, 'paste', e => this.handlePaste(e), true));\n        this._pasteProgressManager = this._register(new InlineProgressManager('pasteIntoEditor', editor, instantiationService));\n        this._postPasteWidgetManager = this._register(instantiationService.createInstance(PostEditWidgetManager, 'pasteIntoEditor', editor, pasteWidgetVisibleCtx, { id: changePasteTypeCommandId, label: localize('postPasteWidgetTitle', \"Show paste options...\") }));\n    }\n    changePasteType() {\n        this._postPasteWidgetManager.tryShowSelector();\n    }\n    pasteAs(preferred) {\n        this._editor.focus();\n        try {\n            this._pasteAsActionContext = { preferred };\n            getActiveDocument().execCommand('paste');\n        }\n        finally {\n            this._pasteAsActionContext = undefined;\n        }\n    }\n    clearWidgets() {\n        this._postPasteWidgetManager.clear();\n    }\n    isPasteAsEnabled() {\n        return this._editor.getOption(85 /* EditorOption.pasteAs */).enabled\n            && !this._editor.getOption(91 /* EditorOption.readOnly */);\n    }\n    async finishedPaste() {\n        await this._currentPasteOperation;\n    }\n    handleCopy(e) {\n        var _a, _b;\n        if (!this._editor.hasTextFocus()) {\n            return;\n        }\n        if (platform.isWeb) {\n            // Explicitly clear the web resources clipboard.\n            // This is needed because on web, the browser clipboard is faked out using an in-memory store.\n            // This means the resources clipboard is not properly updated when copying from the editor.\n            this._clipboardService.writeResources([]);\n        }\n        if (!e.clipboardData || !this.isPasteAsEnabled()) {\n            return;\n        }\n        const model = this._editor.getModel();\n        const selections = this._editor.getSelections();\n        if (!model || !(selections === null || selections === void 0 ? void 0 : selections.length)) {\n            return;\n        }\n        const enableEmptySelectionClipboard = this._editor.getOption(37 /* EditorOption.emptySelectionClipboard */);\n        let ranges = selections;\n        const wasFromEmptySelection = selections.length === 1 && selections[0].isEmpty();\n        if (wasFromEmptySelection) {\n            if (!enableEmptySelectionClipboard) {\n                return;\n            }\n            ranges = [new Range(ranges[0].startLineNumber, 1, ranges[0].startLineNumber, 1 + model.getLineLength(ranges[0].startLineNumber))];\n        }\n        const toCopy = (_a = this._editor._getViewModel()) === null || _a === void 0 ? void 0 : _a.getPlainTextToCopy(selections, enableEmptySelectionClipboard, platform.isWindows);\n        const multicursorText = Array.isArray(toCopy) ? toCopy : null;\n        const defaultPastePayload = {\n            multicursorText,\n            pasteOnNewLine: wasFromEmptySelection,\n            mode: null\n        };\n        const providers = this._languageFeaturesService.documentPasteEditProvider\n            .ordered(model)\n            .filter(x => !!x.prepareDocumentPaste);\n        if (!providers.length) {\n            this.setCopyMetadata(e.clipboardData, { defaultPastePayload });\n            return;\n        }\n        const dataTransfer = toVSDataTransfer(e.clipboardData);\n        const providerCopyMimeTypes = providers.flatMap(x => { var _a; return (_a = x.copyMimeTypes) !== null && _a !== void 0 ? _a : []; });\n        // Save off a handle pointing to data that VS Code maintains.\n        const handle = generateUuid();\n        this.setCopyMetadata(e.clipboardData, {\n            id: handle,\n            providerCopyMimeTypes,\n            defaultPastePayload\n        });\n        const promise = createCancelablePromise(async (token) => {\n            const results = coalesce(await Promise.all(providers.map(async (provider) => {\n                try {\n                    return await provider.prepareDocumentPaste(model, ranges, dataTransfer, token);\n                }\n                catch (err) {\n                    console.error(err);\n                    return undefined;\n                }\n            })));\n            // Values from higher priority providers should overwrite values from lower priority ones.\n            // Reverse the array to so that the calls to `replace` below will do this\n            results.reverse();\n            for (const result of results) {\n                for (const [mime, value] of result) {\n                    dataTransfer.replace(mime, value);\n                }\n            }\n            return dataTransfer;\n        });\n        (_b = CopyPasteController_1._currentCopyOperation) === null || _b === void 0 ? void 0 : _b.dataTransferPromise.cancel();\n        CopyPasteController_1._currentCopyOperation = { handle: handle, dataTransferPromise: promise };\n    }\n    async handlePaste(e) {\n        var _a, _b, _c, _d;\n        if (!e.clipboardData || !this._editor.hasTextFocus()) {\n            return;\n        }\n        (_a = MessageController.get(this._editor)) === null || _a === void 0 ? void 0 : _a.closeMessage();\n        (_b = this._currentPasteOperation) === null || _b === void 0 ? void 0 : _b.cancel();\n        this._currentPasteOperation = undefined;\n        const model = this._editor.getModel();\n        const selections = this._editor.getSelections();\n        if (!(selections === null || selections === void 0 ? void 0 : selections.length) || !model) {\n            return;\n        }\n        if (!this.isPasteAsEnabled()\n            && !this._pasteAsActionContext // Still enable if paste as was explicitly requested\n        ) {\n            return;\n        }\n        const metadata = this.fetchCopyMetadata(e);\n        const dataTransfer = toExternalVSDataTransfer(e.clipboardData);\n        dataTransfer.delete(vscodeClipboardMime);\n        const allPotentialMimeTypes = [\n            ...e.clipboardData.types,\n            ...(_c = metadata === null || metadata === void 0 ? void 0 : metadata.providerCopyMimeTypes) !== null && _c !== void 0 ? _c : [],\n            // TODO: always adds `uri-list` because this get set if there are resources in the system clipboard.\n            // However we can only check the system clipboard async. For this early check, just add it in.\n            // We filter providers again once we have the final dataTransfer we will use.\n            Mimes.uriList,\n        ];\n        const allProviders = this._languageFeaturesService.documentPasteEditProvider\n            .ordered(model)\n            .filter(provider => {\n            var _a, _b;\n            // Filter out providers that don't match the requested paste types\n            const preference = (_a = this._pasteAsActionContext) === null || _a === void 0 ? void 0 : _a.preferred;\n            if (preference) {\n                if (provider.providedPasteEditKinds && !this.providerMatchesPreference(provider, preference)) {\n                    return false;\n                }\n            }\n            // And providers that don't handle any of mime types in the clipboard\n            return (_b = provider.pasteMimeTypes) === null || _b === void 0 ? void 0 : _b.some(type => matchesMimeType(type, allPotentialMimeTypes));\n        });\n        if (!allProviders.length) {\n            if ((_d = this._pasteAsActionContext) === null || _d === void 0 ? void 0 : _d.preferred) {\n                this.showPasteAsNoEditMessage(selections, this._pasteAsActionContext.preferred);\n            }\n            return;\n        }\n        // Prevent the editor's default paste handler from running.\n        // Note that after this point, we are fully responsible for handling paste.\n        // If we can't provider a paste for any reason, we need to explicitly delegate pasting back to the editor.\n        e.preventDefault();\n        e.stopImmediatePropagation();\n        if (this._pasteAsActionContext) {\n            this.showPasteAsPick(this._pasteAsActionContext.preferred, allProviders, selections, dataTransfer, metadata);\n        }\n        else {\n            this.doPasteInline(allProviders, selections, dataTransfer, metadata, e);\n        }\n    }\n    showPasteAsNoEditMessage(selections, preference) {\n        var _a;\n        (_a = MessageController.get(this._editor)) === null || _a === void 0 ? void 0 : _a.showMessage(localize('pasteAsError', \"No paste edits for '{0}' found\", preference instanceof HierarchicalKind ? preference.value : preference.providerId), selections[0].getStartPosition());\n    }\n    doPasteInline(allProviders, selections, dataTransfer, metadata, clipboardEvent) {\n        const p = createCancelablePromise(async (token) => {\n            const editor = this._editor;\n            if (!editor.hasModel()) {\n                return;\n            }\n            const model = editor.getModel();\n            const tokenSource = new EditorStateCancellationTokenSource(editor, 1 /* CodeEditorStateFlag.Value */ | 2 /* CodeEditorStateFlag.Selection */, undefined, token);\n            try {\n                await this.mergeInDataFromCopy(dataTransfer, metadata, tokenSource.token);\n                if (tokenSource.token.isCancellationRequested) {\n                    return;\n                }\n                const supportedProviders = allProviders.filter(provider => this.isSupportedPasteProvider(provider, dataTransfer));\n                if (!supportedProviders.length\n                    || (supportedProviders.length === 1 && supportedProviders[0] instanceof DefaultTextPasteOrDropEditProvider) // Only our default text provider is active\n                ) {\n                    return this.applyDefaultPasteHandler(dataTransfer, metadata, tokenSource.token, clipboardEvent);\n                }\n                const context = {\n                    triggerKind: DocumentPasteTriggerKind.Automatic,\n                };\n                const providerEdits = await this.getPasteEdits(supportedProviders, dataTransfer, model, selections, context, tokenSource.token);\n                if (tokenSource.token.isCancellationRequested) {\n                    return;\n                }\n                // If the only edit returned is our default text edit, use the default paste handler\n                if (providerEdits.length === 1 && providerEdits[0].provider instanceof DefaultTextPasteOrDropEditProvider) {\n                    return this.applyDefaultPasteHandler(dataTransfer, metadata, tokenSource.token, clipboardEvent);\n                }\n                if (providerEdits.length) {\n                    const canShowWidget = editor.getOption(85 /* EditorOption.pasteAs */).showPasteSelector === 'afterPaste';\n                    return this._postPasteWidgetManager.applyEditAndShowIfNeeded(selections, { activeEditIndex: 0, allEdits: providerEdits }, canShowWidget, async (edit, token) => {\n                        var _a, _b;\n                        const resolved = await ((_b = (_a = edit.provider).resolveDocumentPasteEdit) === null || _b === void 0 ? void 0 : _b.call(_a, edit, token));\n                        if (resolved) {\n                            edit.additionalEdit = resolved.additionalEdit;\n                        }\n                        return edit;\n                    }, tokenSource.token);\n                }\n                await this.applyDefaultPasteHandler(dataTransfer, metadata, tokenSource.token, clipboardEvent);\n            }\n            finally {\n                tokenSource.dispose();\n                if (this._currentPasteOperation === p) {\n                    this._currentPasteOperation = undefined;\n                }\n            }\n        });\n        this._pasteProgressManager.showWhile(selections[0].getEndPosition(), localize('pasteIntoEditorProgress', \"Running paste handlers. Click to cancel\"), p);\n        this._currentPasteOperation = p;\n    }\n    showPasteAsPick(preference, allProviders, selections, dataTransfer, metadata) {\n        const p = createCancelablePromise(async (token) => {\n            const editor = this._editor;\n            if (!editor.hasModel()) {\n                return;\n            }\n            const model = editor.getModel();\n            const tokenSource = new EditorStateCancellationTokenSource(editor, 1 /* CodeEditorStateFlag.Value */ | 2 /* CodeEditorStateFlag.Selection */, undefined, token);\n            try {\n                await this.mergeInDataFromCopy(dataTransfer, metadata, tokenSource.token);\n                if (tokenSource.token.isCancellationRequested) {\n                    return;\n                }\n                // Filter out any providers the don't match the full data transfer we will send them.\n                let supportedProviders = allProviders.filter(provider => this.isSupportedPasteProvider(provider, dataTransfer, preference));\n                if (preference) {\n                    // We are looking for a specific edit\n                    supportedProviders = supportedProviders.filter(provider => this.providerMatchesPreference(provider, preference));\n                }\n                const context = {\n                    triggerKind: DocumentPasteTriggerKind.PasteAs,\n                    only: preference && preference instanceof HierarchicalKind ? preference : undefined,\n                };\n                let providerEdits = await this.getPasteEdits(supportedProviders, dataTransfer, model, selections, context, tokenSource.token);\n                if (tokenSource.token.isCancellationRequested) {\n                    return;\n                }\n                // Filter out any edits that don't match the requested kind\n                if (preference) {\n                    providerEdits = providerEdits.filter(edit => {\n                        if (preference instanceof HierarchicalKind) {\n                            return preference.contains(edit.kind);\n                        }\n                        else {\n                            return preference.providerId === edit.provider.id;\n                        }\n                    });\n                }\n                if (!providerEdits.length) {\n                    if (context.only) {\n                        this.showPasteAsNoEditMessage(selections, context.only);\n                    }\n                    return;\n                }\n                let pickedEdit;\n                if (preference) {\n                    pickedEdit = providerEdits.at(0);\n                }\n                else {\n                    const selected = await this._quickInputService.pick(providerEdits.map((edit) => {\n                        var _a;\n                        return ({\n                            label: edit.title,\n                            description: (_a = edit.kind) === null || _a === void 0 ? void 0 : _a.value,\n                            edit,\n                        });\n                    }), {\n                        placeHolder: localize('pasteAsPickerPlaceholder', \"Select Paste Action\"),\n                    });\n                    pickedEdit = selected === null || selected === void 0 ? void 0 : selected.edit;\n                }\n                if (!pickedEdit) {\n                    return;\n                }\n                const combinedWorkspaceEdit = createCombinedWorkspaceEdit(model.uri, selections, pickedEdit);\n                await this._bulkEditService.apply(combinedWorkspaceEdit, { editor: this._editor });\n            }\n            finally {\n                tokenSource.dispose();\n                if (this._currentPasteOperation === p) {\n                    this._currentPasteOperation = undefined;\n                }\n            }\n        });\n        this._progressService.withProgress({\n            location: 10 /* ProgressLocation.Window */,\n            title: localize('pasteAsProgress', \"Running paste handlers\"),\n        }, () => p);\n    }\n    setCopyMetadata(dataTransfer, metadata) {\n        dataTransfer.setData(vscodeClipboardMime, JSON.stringify(metadata));\n    }\n    fetchCopyMetadata(e) {\n        var _a;\n        if (!e.clipboardData) {\n            return;\n        }\n        // Prefer using the clipboard data we saved off\n        const rawMetadata = e.clipboardData.getData(vscodeClipboardMime);\n        if (rawMetadata) {\n            try {\n                return JSON.parse(rawMetadata);\n            }\n            catch (_b) {\n                return undefined;\n            }\n        }\n        // Otherwise try to extract the generic text editor metadata\n        const [_, metadata] = ClipboardEventUtils.getTextData(e.clipboardData);\n        if (metadata) {\n            return {\n                defaultPastePayload: {\n                    mode: metadata.mode,\n                    multicursorText: (_a = metadata.multicursorText) !== null && _a !== void 0 ? _a : null,\n                    pasteOnNewLine: !!metadata.isFromEmptySelection,\n                },\n            };\n        }\n        return undefined;\n    }\n    async mergeInDataFromCopy(dataTransfer, metadata, token) {\n        var _a;\n        if ((metadata === null || metadata === void 0 ? void 0 : metadata.id) && ((_a = CopyPasteController_1._currentCopyOperation) === null || _a === void 0 ? void 0 : _a.handle) === metadata.id) {\n            const toMergeDataTransfer = await CopyPasteController_1._currentCopyOperation.dataTransferPromise;\n            if (token.isCancellationRequested) {\n                return;\n            }\n            for (const [key, value] of toMergeDataTransfer) {\n                dataTransfer.replace(key, value);\n            }\n        }\n        if (!dataTransfer.has(Mimes.uriList)) {\n            const resources = await this._clipboardService.readResources();\n            if (token.isCancellationRequested) {\n                return;\n            }\n            if (resources.length) {\n                dataTransfer.append(Mimes.uriList, createStringDataTransferItem(UriList.create(resources)));\n            }\n        }\n    }\n    async getPasteEdits(providers, dataTransfer, model, selections, context, token) {\n        const results = await raceCancellation(Promise.all(providers.map(async (provider) => {\n            var _a, _b;\n            try {\n                const edits = await ((_a = provider.provideDocumentPasteEdits) === null || _a === void 0 ? void 0 : _a.call(provider, model, selections, dataTransfer, context, token));\n                // TODO: dispose of edits\n                return (_b = edits === null || edits === void 0 ? void 0 : edits.edits) === null || _b === void 0 ? void 0 : _b.map(edit => ({ ...edit, provider }));\n            }\n            catch (err) {\n                console.error(err);\n            }\n            return undefined;\n        })), token);\n        const edits = coalesce(results !== null && results !== void 0 ? results : []).flat().filter(edit => {\n            return !context.only || context.only.contains(edit.kind);\n        });\n        return sortEditsByYieldTo(edits);\n    }\n    async applyDefaultPasteHandler(dataTransfer, metadata, token, clipboardEvent) {\n        var _a, _b, _c, _d;\n        const textDataTransfer = (_a = dataTransfer.get(Mimes.text)) !== null && _a !== void 0 ? _a : dataTransfer.get('text');\n        const text = (_b = (await (textDataTransfer === null || textDataTransfer === void 0 ? void 0 : textDataTransfer.asString()))) !== null && _b !== void 0 ? _b : '';\n        if (token.isCancellationRequested) {\n            return;\n        }\n        const payload = {\n            clipboardEvent,\n            text,\n            pasteOnNewLine: (_c = metadata === null || metadata === void 0 ? void 0 : metadata.defaultPastePayload.pasteOnNewLine) !== null && _c !== void 0 ? _c : false,\n            multicursorText: (_d = metadata === null || metadata === void 0 ? void 0 : metadata.defaultPastePayload.multicursorText) !== null && _d !== void 0 ? _d : null,\n            mode: null,\n        };\n        this._editor.trigger('keyboard', \"paste\" /* Handler.Paste */, payload);\n    }\n    /**\n     * Filter out providers if they:\n     * - Don't handle any of the data transfer types we have\n     * - Don't match the preferred paste kind\n     */\n    isSupportedPasteProvider(provider, dataTransfer, preference) {\n        var _a;\n        if (!((_a = provider.pasteMimeTypes) === null || _a === void 0 ? void 0 : _a.some(type => dataTransfer.matches(type)))) {\n            return false;\n        }\n        return !preference || this.providerMatchesPreference(provider, preference);\n    }\n    providerMatchesPreference(provider, preference) {\n        if (preference instanceof HierarchicalKind) {\n            if (!provider.providedPasteEditKinds) {\n                return true;\n            }\n            return provider.providedPasteEditKinds.some(providedKind => preference.contains(providedKind));\n        }\n        else {\n            return provider.id === preference.providerId;\n        }\n    }\n};\nCopyPasteController.ID = 'editor.contrib.copyPasteActionController';\nCopyPasteController = CopyPasteController_1 = __decorate([\n    __param(1, IInstantiationService),\n    __param(2, IBulkEditService),\n    __param(3, IClipboardService),\n    __param(4, ILanguageFeaturesService),\n    __param(5, IQuickInputService),\n    __param(6, IProgressService)\n], CopyPasteController);\nexport { CopyPasteController };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { coalesce } from '../../../../base/common/arrays.js';\nimport { UriList } from '../../../../base/common/dataTransfer.js';\nimport { HierarchicalKind } from '../../../../base/common/hierarchicalKind.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { Mimes } from '../../../../base/common/mime.js';\nimport { Schemas } from '../../../../base/common/network.js';\nimport { relativePath } from '../../../../base/common/resources.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport { DocumentPasteTriggerKind } from '../../../common/languages.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { localize } from '../../../../nls.js';\nimport { IWorkspaceContextService } from '../../../../platform/workspace/common/workspace.js';\nclass SimplePasteAndDropProvider {\n    async provideDocumentPasteEdits(_model, _ranges, dataTransfer, context, token) {\n        const edit = await this.getEdit(dataTransfer, token);\n        if (!edit) {\n            return undefined;\n        }\n        return {\n            dispose() { },\n            edits: [{ insertText: edit.insertText, title: edit.title, kind: edit.kind, handledMimeType: edit.handledMimeType, yieldTo: edit.yieldTo }]\n        };\n    }\n    async provideDocumentDropEdits(_model, _position, dataTransfer, token) {\n        const edit = await this.getEdit(dataTransfer, token);\n        return edit ? [{ insertText: edit.insertText, title: edit.title, kind: edit.kind, handledMimeType: edit.handledMimeType, yieldTo: edit.yieldTo }] : undefined;\n    }\n}\nexport class DefaultTextPasteOrDropEditProvider extends SimplePasteAndDropProvider {\n    constructor() {\n        super(...arguments);\n        this.kind = DefaultTextPasteOrDropEditProvider.kind;\n        this.dropMimeTypes = [Mimes.text];\n        this.pasteMimeTypes = [Mimes.text];\n    }\n    async getEdit(dataTransfer, _token) {\n        const textEntry = dataTransfer.get(Mimes.text);\n        if (!textEntry) {\n            return;\n        }\n        // Suppress if there's also a uriList entry.\n        // Typically the uri-list contains the same text as the text entry so showing both is confusing.\n        if (dataTransfer.has(Mimes.uriList)) {\n            return;\n        }\n        const insertText = await textEntry.asString();\n        return {\n            handledMimeType: Mimes.text,\n            title: localize('text.label', \"Insert Plain Text\"),\n            insertText,\n            kind: this.kind,\n        };\n    }\n}\nDefaultTextPasteOrDropEditProvider.id = 'text';\nDefaultTextPasteOrDropEditProvider.kind = new HierarchicalKind('text.plain');\nclass PathProvider extends SimplePasteAndDropProvider {\n    constructor() {\n        super(...arguments);\n        this.kind = new HierarchicalKind('uri.absolute');\n        this.dropMimeTypes = [Mimes.uriList];\n        this.pasteMimeTypes = [Mimes.uriList];\n    }\n    async getEdit(dataTransfer, token) {\n        const entries = await extractUriList(dataTransfer);\n        if (!entries.length || token.isCancellationRequested) {\n            return;\n        }\n        let uriCount = 0;\n        const insertText = entries\n            .map(({ uri, originalText }) => {\n            if (uri.scheme === Schemas.file) {\n                return uri.fsPath;\n            }\n            else {\n                uriCount++;\n                return originalText;\n            }\n        })\n            .join(' ');\n        let label;\n        if (uriCount > 0) {\n            // Dropping at least one generic uri (such as https) so use most generic label\n            label = entries.length > 1\n                ? localize('defaultDropProvider.uriList.uris', \"Insert Uris\")\n                : localize('defaultDropProvider.uriList.uri', \"Insert Uri\");\n        }\n        else {\n            // All the paths are file paths\n            label = entries.length > 1\n                ? localize('defaultDropProvider.uriList.paths', \"Insert Paths\")\n                : localize('defaultDropProvider.uriList.path', \"Insert Path\");\n        }\n        return {\n            handledMimeType: Mimes.uriList,\n            insertText,\n            title: label,\n            kind: this.kind,\n        };\n    }\n}\nlet RelativePathProvider = class RelativePathProvider extends SimplePasteAndDropProvider {\n    constructor(_workspaceContextService) {\n        super();\n        this._workspaceContextService = _workspaceContextService;\n        this.kind = new HierarchicalKind('uri.relative');\n        this.dropMimeTypes = [Mimes.uriList];\n        this.pasteMimeTypes = [Mimes.uriList];\n    }\n    async getEdit(dataTransfer, token) {\n        const entries = await extractUriList(dataTransfer);\n        if (!entries.length || token.isCancellationRequested) {\n            return;\n        }\n        const relativeUris = coalesce(entries.map(({ uri }) => {\n            const root = this._workspaceContextService.getWorkspaceFolder(uri);\n            return root ? relativePath(root.uri, uri) : undefined;\n        }));\n        if (!relativeUris.length) {\n            return;\n        }\n        return {\n            handledMimeType: Mimes.uriList,\n            insertText: relativeUris.join(' '),\n            title: entries.length > 1\n                ? localize('defaultDropProvider.uriList.relativePaths', \"Insert Relative Paths\")\n                : localize('defaultDropProvider.uriList.relativePath', \"Insert Relative Path\"),\n            kind: this.kind,\n        };\n    }\n};\nRelativePathProvider = __decorate([\n    __param(0, IWorkspaceContextService)\n], RelativePathProvider);\nclass PasteHtmlProvider {\n    constructor() {\n        this.kind = new HierarchicalKind('html');\n        this.pasteMimeTypes = ['text/html'];\n        this._yieldTo = [{ mimeType: Mimes.text }];\n    }\n    async provideDocumentPasteEdits(_model, _ranges, dataTransfer, context, token) {\n        var _a;\n        if (context.triggerKind !== DocumentPasteTriggerKind.PasteAs && !((_a = context.only) === null || _a === void 0 ? void 0 : _a.contains(this.kind))) {\n            return;\n        }\n        const entry = dataTransfer.get('text/html');\n        const htmlText = await (entry === null || entry === void 0 ? void 0 : entry.asString());\n        if (!htmlText || token.isCancellationRequested) {\n            return;\n        }\n        return {\n            dispose() { },\n            edits: [{\n                    insertText: htmlText,\n                    yieldTo: this._yieldTo,\n                    title: localize('pasteHtmlLabel', 'Insert HTML'),\n                    kind: this.kind,\n                }],\n        };\n    }\n}\nasync function extractUriList(dataTransfer) {\n    const urlListEntry = dataTransfer.get(Mimes.uriList);\n    if (!urlListEntry) {\n        return [];\n    }\n    const strUriList = await urlListEntry.asString();\n    const entries = [];\n    for (const entry of UriList.parse(strUriList)) {\n        try {\n            entries.push({ uri: URI.parse(entry), originalText: entry });\n        }\n        catch (_a) {\n            // noop\n        }\n    }\n    return entries;\n}\nlet DefaultDropProvidersFeature = class DefaultDropProvidersFeature extends Disposable {\n    constructor(languageFeaturesService, workspaceContextService) {\n        super();\n        this._register(languageFeaturesService.documentDropEditProvider.register('*', new DefaultTextPasteOrDropEditProvider()));\n        this._register(languageFeaturesService.documentDropEditProvider.register('*', new PathProvider()));\n        this._register(languageFeaturesService.documentDropEditProvider.register('*', new RelativePathProvider(workspaceContextService)));\n    }\n};\nDefaultDropProvidersFeature = __decorate([\n    __param(0, ILanguageFeaturesService),\n    __param(1, IWorkspaceContextService)\n], DefaultDropProvidersFeature);\nexport { DefaultDropProvidersFeature };\nlet DefaultPasteProvidersFeature = class DefaultPasteProvidersFeature extends Disposable {\n    constructor(languageFeaturesService, workspaceContextService) {\n        super();\n        this._register(languageFeaturesService.documentPasteEditProvider.register('*', new DefaultTextPasteOrDropEditProvider()));\n        this._register(languageFeaturesService.documentPasteEditProvider.register('*', new PathProvider()));\n        this._register(languageFeaturesService.documentPasteEditProvider.register('*', new RelativePathProvider(workspaceContextService)));\n        this._register(languageFeaturesService.documentPasteEditProvider.register('*', new PasteHtmlProvider()));\n    }\n};\nDefaultPasteProvidersFeature = __decorate([\n    __param(0, ILanguageFeaturesService),\n    __param(1, IWorkspaceContextService)\n], DefaultPasteProvidersFeature);\nexport { DefaultPasteProvidersFeature };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { EditorCommand, registerEditorCommand, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { editorConfigurationBaseNode } from '../../../common/config/editorConfigurationSchema.js';\nimport { registerEditorFeature } from '../../../common/editorFeatures.js';\nimport { DefaultDropProvidersFeature } from './defaultProviders.js';\nimport * as nls from '../../../../nls.js';\nimport { Extensions as ConfigurationExtensions } from '../../../../platform/configuration/common/configurationRegistry.js';\nimport { Registry } from '../../../../platform/registry/common/platform.js';\nimport { DropIntoEditorController, changeDropTypeCommandId, defaultProviderConfig, dropWidgetVisibleCtx } from './dropIntoEditorController.js';\nregisterEditorContribution(DropIntoEditorController.ID, DropIntoEditorController, 2 /* EditorContributionInstantiation.BeforeFirstInteraction */);\nregisterEditorFeature(DefaultDropProvidersFeature);\nregisterEditorCommand(new class extends EditorCommand {\n    constructor() {\n        super({\n            id: changeDropTypeCommandId,\n            precondition: dropWidgetVisibleCtx,\n            kbOpts: {\n                weight: 100 /* KeybindingWeight.EditorContrib */,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 89 /* KeyCode.Period */,\n            }\n        });\n    }\n    runEditorCommand(_accessor, editor, _args) {\n        var _a;\n        (_a = DropIntoEditorController.get(editor)) === null || _a === void 0 ? void 0 : _a.changeDropType();\n    }\n});\nregisterEditorCommand(new class extends EditorCommand {\n    constructor() {\n        super({\n            id: 'editor.hideDropWidget',\n            precondition: dropWidgetVisibleCtx,\n            kbOpts: {\n                weight: 100 /* KeybindingWeight.EditorContrib */,\n                primary: 9 /* KeyCode.Escape */,\n            }\n        });\n    }\n    runEditorCommand(_accessor, editor, _args) {\n        var _a;\n        (_a = DropIntoEditorController.get(editor)) === null || _a === void 0 ? void 0 : _a.clearWidgets();\n    }\n});\nRegistry.as(ConfigurationExtensions.Configuration).registerConfiguration({\n    ...editorConfigurationBaseNode,\n    properties: {\n        [defaultProviderConfig]: {\n            type: 'object',\n            scope: 5 /* ConfigurationScope.LANGUAGE_OVERRIDABLE */,\n            description: nls.localize('defaultProviderDescription', \"Configures the default drop provider to use for content of a given mime type.\"),\n            default: {},\n            additionalProperties: {\n                type: 'string',\n            },\n        },\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar DropIntoEditorController_1;\nimport { coalesce } from '../../../../base/common/arrays.js';\nimport { createCancelablePromise, raceCancellation } from '../../../../base/common/async.js';\nimport { VSDataTransfer, matchesMimeType } from '../../../../base/common/dataTransfer.js';\nimport { HierarchicalKind } from '../../../../base/common/hierarchicalKind.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { toExternalVSDataTransfer } from '../../../browser/dnd.js';\nimport { Range } from '../../../common/core/range.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { DraggedTreeItemsIdentifier } from '../../../common/services/treeViewsDnd.js';\nimport { ITreeViewsDnDService } from '../../../common/services/treeViewsDndService.js';\nimport { EditorStateCancellationTokenSource } from '../../editorState/browser/editorState.js';\nimport { InlineProgressManager } from '../../inlineProgress/browser/inlineProgress.js';\nimport { localize } from '../../../../nls.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { LocalSelectionTransfer } from '../../../../platform/dnd/browser/dnd.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { sortEditsByYieldTo } from './edit.js';\nimport { PostEditWidgetManager } from './postEditWidget.js';\nexport const defaultProviderConfig = 'editor.experimental.dropIntoEditor.defaultProvider';\nexport const changeDropTypeCommandId = 'editor.changeDropType';\nexport const dropWidgetVisibleCtx = new RawContextKey('dropWidgetVisible', false, localize('dropWidgetVisible', \"Whether the drop widget is showing\"));\nlet DropIntoEditorController = DropIntoEditorController_1 = class DropIntoEditorController extends Disposable {\n    static get(editor) {\n        return editor.getContribution(DropIntoEditorController_1.ID);\n    }\n    constructor(editor, instantiationService, _configService, _languageFeaturesService, _treeViewsDragAndDropService) {\n        super();\n        this._configService = _configService;\n        this._languageFeaturesService = _languageFeaturesService;\n        this._treeViewsDragAndDropService = _treeViewsDragAndDropService;\n        this.treeItemsTransfer = LocalSelectionTransfer.getInstance();\n        this._dropProgressManager = this._register(instantiationService.createInstance(InlineProgressManager, 'dropIntoEditor', editor));\n        this._postDropWidgetManager = this._register(instantiationService.createInstance(PostEditWidgetManager, 'dropIntoEditor', editor, dropWidgetVisibleCtx, { id: changeDropTypeCommandId, label: localize('postDropWidgetTitle', \"Show drop options...\") }));\n        this._register(editor.onDropIntoEditor(e => this.onDropIntoEditor(editor, e.position, e.event)));\n    }\n    clearWidgets() {\n        this._postDropWidgetManager.clear();\n    }\n    changeDropType() {\n        this._postDropWidgetManager.tryShowSelector();\n    }\n    async onDropIntoEditor(editor, position, dragEvent) {\n        var _a;\n        if (!dragEvent.dataTransfer || !editor.hasModel()) {\n            return;\n        }\n        (_a = this._currentOperation) === null || _a === void 0 ? void 0 : _a.cancel();\n        editor.focus();\n        editor.setPosition(position);\n        const p = createCancelablePromise(async (token) => {\n            const tokenSource = new EditorStateCancellationTokenSource(editor, 1 /* CodeEditorStateFlag.Value */, undefined, token);\n            try {\n                const ourDataTransfer = await this.extractDataTransferData(dragEvent);\n                if (ourDataTransfer.size === 0 || tokenSource.token.isCancellationRequested) {\n                    return;\n                }\n                const model = editor.getModel();\n                if (!model) {\n                    return;\n                }\n                const providers = this._languageFeaturesService.documentDropEditProvider\n                    .ordered(model)\n                    .filter(provider => {\n                    if (!provider.dropMimeTypes) {\n                        // Keep all providers that don't specify mime types\n                        return true;\n                    }\n                    return provider.dropMimeTypes.some(mime => ourDataTransfer.matches(mime));\n                });\n                const edits = await this.getDropEdits(providers, model, position, ourDataTransfer, tokenSource);\n                if (tokenSource.token.isCancellationRequested) {\n                    return;\n                }\n                if (edits.length) {\n                    const activeEditIndex = this.getInitialActiveEditIndex(model, edits);\n                    const canShowWidget = editor.getOption(36 /* EditorOption.dropIntoEditor */).showDropSelector === 'afterDrop';\n                    // Pass in the parent token here as it tracks cancelling the entire drop operation\n                    await this._postDropWidgetManager.applyEditAndShowIfNeeded([Range.fromPositions(position)], { activeEditIndex, allEdits: edits }, canShowWidget, async (edit) => edit, token);\n                }\n            }\n            finally {\n                tokenSource.dispose();\n                if (this._currentOperation === p) {\n                    this._currentOperation = undefined;\n                }\n            }\n        });\n        this._dropProgressManager.showWhile(position, localize('dropIntoEditorProgress', \"Running drop handlers. Click to cancel\"), p);\n        this._currentOperation = p;\n    }\n    async getDropEdits(providers, model, position, dataTransfer, tokenSource) {\n        const results = await raceCancellation(Promise.all(providers.map(async (provider) => {\n            try {\n                const edits = await provider.provideDocumentDropEdits(model, position, dataTransfer, tokenSource.token);\n                return edits === null || edits === void 0 ? void 0 : edits.map(edit => ({ ...edit, providerId: provider.id }));\n            }\n            catch (err) {\n                console.error(err);\n            }\n            return undefined;\n        })), tokenSource.token);\n        const edits = coalesce(results !== null && results !== void 0 ? results : []).flat();\n        return sortEditsByYieldTo(edits);\n    }\n    getInitialActiveEditIndex(model, edits) {\n        const preferredProviders = this._configService.getValue(defaultProviderConfig, { resource: model.uri });\n        for (const [configMime, desiredKindStr] of Object.entries(preferredProviders)) {\n            const desiredKind = new HierarchicalKind(desiredKindStr);\n            const editIndex = edits.findIndex(edit => desiredKind.value === edit.providerId\n                && edit.handledMimeType && matchesMimeType(configMime, [edit.handledMimeType]));\n            if (editIndex >= 0) {\n                return editIndex;\n            }\n        }\n        return 0;\n    }\n    async extractDataTransferData(dragEvent) {\n        if (!dragEvent.dataTransfer) {\n            return new VSDataTransfer();\n        }\n        const dataTransfer = toExternalVSDataTransfer(dragEvent.dataTransfer);\n        if (this.treeItemsTransfer.hasData(DraggedTreeItemsIdentifier.prototype)) {\n            const data = this.treeItemsTransfer.getData(DraggedTreeItemsIdentifier.prototype);\n            if (Array.isArray(data)) {\n                for (const id of data) {\n                    const treeDataTransfer = await this._treeViewsDragAndDropService.removeDragOperationTransfer(id.identifier);\n                    if (treeDataTransfer) {\n                        for (const [type, value] of treeDataTransfer) {\n                            dataTransfer.replace(type, value);\n                        }\n                    }\n                }\n            }\n        }\n        return dataTransfer;\n    }\n};\nDropIntoEditorController.ID = 'editor.contrib.dropIntoEditorController';\nDropIntoEditorController = DropIntoEditorController_1 = __decorate([\n    __param(1, IInstantiationService),\n    __param(2, IConfigurationService),\n    __param(3, ILanguageFeaturesService),\n    __param(4, ITreeViewsDnDService)\n], DropIntoEditorController);\nexport { DropIntoEditorController };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/dropOrPasteInto/browser/edit.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { ResourceTextEdit } from '../../../browser/services/bulkEditService.js';\nimport { SnippetParser } from '../../snippet/browser/snippetParser.js';\n/**\n * Given a {@link DropOrPasteEdit} and set of ranges, creates a {@link WorkspaceEdit} that applies the insert text from\n * the {@link DropOrPasteEdit} at each range plus any additional edits.\n */\nexport function createCombinedWorkspaceEdit(uri, ranges, edit) {\n    var _a, _b, _c, _d;\n    // If the edit insert text is empty, skip applying at each range\n    if (typeof edit.insertText === 'string' ? edit.insertText === '' : edit.insertText.snippet === '') {\n        return {\n            edits: (_b = (_a = edit.additionalEdit) === null || _a === void 0 ? void 0 : _a.edits) !== null && _b !== void 0 ? _b : []\n        };\n    }\n    return {\n        edits: [\n            ...ranges.map(range => new ResourceTextEdit(uri, { range, text: typeof edit.insertText === 'string' ? SnippetParser.escape(edit.insertText) + '$0' : edit.insertText.snippet, insertAsSnippet: true })),\n            ...((_d = (_c = edit.additionalEdit) === null || _c === void 0 ? void 0 : _c.edits) !== null && _d !== void 0 ? _d : [])\n        ]\n    };\n}\nexport function sortEditsByYieldTo(edits) {\n    var _a;\n    function yieldsTo(yTo, other) {\n        if ('mimeType' in yTo) {\n            return yTo.mimeType === other.handledMimeType;\n        }\n        return !!other.kind && yTo.kind.contains(other.kind);\n    }\n    // Build list of nodes each node yields to\n    const yieldsToMap = new Map();\n    for (const edit of edits) {\n        for (const yTo of (_a = edit.yieldTo) !== null && _a !== void 0 ? _a : []) {\n            for (const other of edits) {\n                if (other === edit) {\n                    continue;\n                }\n                if (yieldsTo(yTo, other)) {\n                    let arr = yieldsToMap.get(edit);\n                    if (!arr) {\n                        arr = [];\n                        yieldsToMap.set(edit, arr);\n                    }\n                    arr.push(other);\n                }\n            }\n        }\n    }\n    if (!yieldsToMap.size) {\n        return Array.from(edits);\n    }\n    // Topological sort\n    const visited = new Set();\n    const tempStack = [];\n    function visit(nodes) {\n        if (!nodes.length) {\n            return [];\n        }\n        const node = nodes[0];\n        if (tempStack.includes(node)) {\n            console.warn('Yield to cycle detected', node);\n            return nodes;\n        }\n        if (visited.has(node)) {\n            return visit(nodes.slice(1));\n        }\n        let pre = [];\n        const yTo = yieldsToMap.get(node);\n        if (yTo) {\n            tempStack.push(node);\n            pre = visit(yTo);\n            tempStack.pop();\n        }\n        visited.add(node);\n        return [...pre, node, ...visit(nodes.slice(1))];\n    }\n    return visit(Array.from(edits));\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.post-edit-widget {\n\tbox-shadow: 0 0 8px 2px var(--vscode-widget-shadow);\n\tborder: 1px solid var(--vscode-widget-border, transparent);\n\tborder-radius: 4px;\n\tbackground-color: var(--vscode-editorWidget-background);\n\toverflow: hidden;\n}\n\n.post-edit-widget .monaco-button {\n\tpadding: 2px;\n\tborder: none;\n\tborder-radius: 0;\n}\n\n.post-edit-widget .monaco-button:hover {\n\tbackground-color: var(--vscode-button-secondaryHoverBackground) !important;\n}\n\n.post-edit-widget .monaco-button .codicon {\n\tmargin: 0;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar PostEditWidget_1;\nimport * as dom from '../../../../base/browser/dom.js';\nimport { Button } from '../../../../base/browser/ui/button/button.js';\nimport { toAction } from '../../../../base/common/actions.js';\nimport { toErrorMessage } from '../../../../base/common/errorMessage.js';\nimport { isCancellationError } from '../../../../base/common/errors.js';\nimport { Event } from '../../../../base/common/event.js';\nimport { Disposable, MutableDisposable, toDisposable } from '../../../../base/common/lifecycle.js';\nimport './postEditWidget.css';\nimport { IBulkEditService } from '../../../browser/services/bulkEditService.js';\nimport { createCombinedWorkspaceEdit } from './edit.js';\nimport { localize } from '../../../../nls.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IContextMenuService } from '../../../../platform/contextview/browser/contextView.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { INotificationService } from '../../../../platform/notification/common/notification.js';\nlet PostEditWidget = PostEditWidget_1 = class PostEditWidget extends Disposable {\n    constructor(typeId, editor, visibleContext, showCommand, range, edits, onSelectNewEdit, _contextMenuService, contextKeyService, _keybindingService) {\n        super();\n        this.typeId = typeId;\n        this.editor = editor;\n        this.showCommand = showCommand;\n        this.range = range;\n        this.edits = edits;\n        this.onSelectNewEdit = onSelectNewEdit;\n        this._contextMenuService = _contextMenuService;\n        this._keybindingService = _keybindingService;\n        this.allowEditorOverflow = true;\n        this.suppressMouseDown = true;\n        this.create();\n        this.visibleContext = visibleContext.bindTo(contextKeyService);\n        this.visibleContext.set(true);\n        this._register(toDisposable(() => this.visibleContext.reset()));\n        this.editor.addContentWidget(this);\n        this.editor.layoutContentWidget(this);\n        this._register(toDisposable((() => this.editor.removeContentWidget(this))));\n        this._register(this.editor.onDidChangeCursorPosition(e => {\n            if (!range.containsPosition(e.position)) {\n                this.dispose();\n            }\n        }));\n        this._register(Event.runAndSubscribe(_keybindingService.onDidUpdateKeybindings, () => {\n            this._updateButtonTitle();\n        }));\n    }\n    _updateButtonTitle() {\n        var _a;\n        const binding = (_a = this._keybindingService.lookupKeybinding(this.showCommand.id)) === null || _a === void 0 ? void 0 : _a.getLabel();\n        this.button.element.title = this.showCommand.label + (binding ? ` (${binding})` : '');\n    }\n    create() {\n        this.domNode = dom.$('.post-edit-widget');\n        this.button = this._register(new Button(this.domNode, {\n            supportIcons: true,\n        }));\n        this.button.label = '$(insert)';\n        this._register(dom.addDisposableListener(this.domNode, dom.EventType.CLICK, () => this.showSelector()));\n    }\n    getId() {\n        return PostEditWidget_1.baseId + '.' + this.typeId;\n    }\n    getDomNode() {\n        return this.domNode;\n    }\n    getPosition() {\n        return {\n            position: this.range.getEndPosition(),\n            preference: [2 /* ContentWidgetPositionPreference.BELOW */]\n        };\n    }\n    showSelector() {\n        this._contextMenuService.showContextMenu({\n            getAnchor: () => {\n                const pos = dom.getDomNodePagePosition(this.button.element);\n                return { x: pos.left + pos.width, y: pos.top + pos.height };\n            },\n            getActions: () => {\n                return this.edits.allEdits.map((edit, i) => toAction({\n                    id: '',\n                    label: edit.title,\n                    checked: i === this.edits.activeEditIndex,\n                    run: () => {\n                        if (i !== this.edits.activeEditIndex) {\n                            return this.onSelectNewEdit(i);\n                        }\n                    },\n                }));\n            }\n        });\n    }\n};\nPostEditWidget.baseId = 'editor.widget.postEditWidget';\nPostEditWidget = PostEditWidget_1 = __decorate([\n    __param(7, IContextMenuService),\n    __param(8, IContextKeyService),\n    __param(9, IKeybindingService)\n], PostEditWidget);\nlet PostEditWidgetManager = class PostEditWidgetManager extends Disposable {\n    constructor(_id, _editor, _visibleContext, _showCommand, _instantiationService, _bulkEditService, _notificationService) {\n        super();\n        this._id = _id;\n        this._editor = _editor;\n        this._visibleContext = _visibleContext;\n        this._showCommand = _showCommand;\n        this._instantiationService = _instantiationService;\n        this._bulkEditService = _bulkEditService;\n        this._notificationService = _notificationService;\n        this._currentWidget = this._register(new MutableDisposable());\n        this._register(Event.any(_editor.onDidChangeModel, _editor.onDidChangeModelContent)(() => this.clear()));\n    }\n    async applyEditAndShowIfNeeded(ranges, edits, canShowWidget, resolve, token) {\n        const model = this._editor.getModel();\n        if (!model || !ranges.length) {\n            return;\n        }\n        const edit = edits.allEdits.at(edits.activeEditIndex);\n        if (!edit) {\n            return;\n        }\n        const onDidSelectEdit = async (newEditIndex) => {\n            const model = this._editor.getModel();\n            if (!model) {\n                return;\n            }\n            await model.undo();\n            this.applyEditAndShowIfNeeded(ranges, { activeEditIndex: newEditIndex, allEdits: edits.allEdits }, canShowWidget, resolve, token);\n        };\n        const handleError = (e, message) => {\n            if (isCancellationError(e)) {\n                return;\n            }\n            this._notificationService.error(message);\n            if (canShowWidget) {\n                this.show(ranges[0], edits, onDidSelectEdit);\n            }\n        };\n        let resolvedEdit;\n        try {\n            resolvedEdit = await resolve(edit, token);\n        }\n        catch (e) {\n            return handleError(e, localize('resolveError', \"Error resolving edit '{0}':\\n{1}\", edit.title, toErrorMessage(e)));\n        }\n        if (token.isCancellationRequested) {\n            return;\n        }\n        const combinedWorkspaceEdit = createCombinedWorkspaceEdit(model.uri, ranges, resolvedEdit);\n        // Use a decoration to track edits around the trigger range\n        const primaryRange = ranges[0];\n        const editTrackingDecoration = model.deltaDecorations([], [{\n                range: primaryRange,\n                options: { description: 'paste-line-suffix', stickiness: 0 /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */ }\n            }]);\n        this._editor.focus();\n        let editResult;\n        let editRange;\n        try {\n            editResult = await this._bulkEditService.apply(combinedWorkspaceEdit, { editor: this._editor, token });\n            editRange = model.getDecorationRange(editTrackingDecoration[0]);\n        }\n        catch (e) {\n            return handleError(e, localize('applyError', \"Error applying edit '{0}':\\n{1}\", edit.title, toErrorMessage(e)));\n        }\n        finally {\n            model.deltaDecorations(editTrackingDecoration, []);\n        }\n        if (token.isCancellationRequested) {\n            return;\n        }\n        if (canShowWidget && editResult.isApplied && edits.allEdits.length > 1) {\n            this.show(editRange !== null && editRange !== void 0 ? editRange : primaryRange, edits, onDidSelectEdit);\n        }\n    }\n    show(range, edits, onDidSelectEdit) {\n        this.clear();\n        if (this._editor.hasModel()) {\n            this._currentWidget.value = this._instantiationService.createInstance((PostEditWidget), this._id, this._editor, this._visibleContext, this._showCommand, range, edits, onDidSelectEdit);\n        }\n    }\n    clear() {\n        this._currentWidget.clear();\n    }\n    tryShowSelector() {\n        var _a;\n        (_a = this._currentWidget.value) === null || _a === void 0 ? void 0 : _a.showSelector();\n    }\n};\nPostEditWidgetManager = __decorate([\n    __param(4, IInstantiationService),\n    __param(5, IBulkEditService),\n    __param(6, INotificationService)\n], PostEditWidgetManager);\nexport { PostEditWidgetManager };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/editorState/browser/editorState.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../../base/common/strings.js';\nimport { Range } from '../../../common/core/range.js';\nimport { CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { EditorKeybindingCancellationTokenSource } from './keybindingCancellation.js';\nexport class EditorState {\n    constructor(editor, flags) {\n        this.flags = flags;\n        if ((this.flags & 1 /* CodeEditorStateFlag.Value */) !== 0) {\n            const model = editor.getModel();\n            this.modelVersionId = model ? strings.format('{0}#{1}', model.uri.toString(), model.getVersionId()) : null;\n        }\n        else {\n            this.modelVersionId = null;\n        }\n        if ((this.flags & 4 /* CodeEditorStateFlag.Position */) !== 0) {\n            this.position = editor.getPosition();\n        }\n        else {\n            this.position = null;\n        }\n        if ((this.flags & 2 /* CodeEditorStateFlag.Selection */) !== 0) {\n            this.selection = editor.getSelection();\n        }\n        else {\n            this.selection = null;\n        }\n        if ((this.flags & 8 /* CodeEditorStateFlag.Scroll */) !== 0) {\n            this.scrollLeft = editor.getScrollLeft();\n            this.scrollTop = editor.getScrollTop();\n        }\n        else {\n            this.scrollLeft = -1;\n            this.scrollTop = -1;\n        }\n    }\n    _equals(other) {\n        if (!(other instanceof EditorState)) {\n            return false;\n        }\n        const state = other;\n        if (this.modelVersionId !== state.modelVersionId) {\n            return false;\n        }\n        if (this.scrollLeft !== state.scrollLeft || this.scrollTop !== state.scrollTop) {\n            return false;\n        }\n        if (!this.position && state.position || this.position && !state.position || this.position && state.position && !this.position.equals(state.position)) {\n            return false;\n        }\n        if (!this.selection && state.selection || this.selection && !state.selection || this.selection && state.selection && !this.selection.equalsRange(state.selection)) {\n            return false;\n        }\n        return true;\n    }\n    validate(editor) {\n        return this._equals(new EditorState(editor, this.flags));\n    }\n}\n/**\n * A cancellation token source that cancels when the editor changes as expressed\n * by the provided flags\n * @param range If provided, changes in position and selection within this range will not trigger cancellation\n */\nexport class EditorStateCancellationTokenSource extends EditorKeybindingCancellationTokenSource {\n    constructor(editor, flags, range, parent) {\n        super(editor, parent);\n        this._listener = new DisposableStore();\n        if (flags & 4 /* CodeEditorStateFlag.Position */) {\n            this._listener.add(editor.onDidChangeCursorPosition(e => {\n                if (!range || !Range.containsPosition(range, e.position)) {\n                    this.cancel();\n                }\n            }));\n        }\n        if (flags & 2 /* CodeEditorStateFlag.Selection */) {\n            this._listener.add(editor.onDidChangeCursorSelection(e => {\n                if (!range || !Range.containsRange(range, e.selection)) {\n                    this.cancel();\n                }\n            }));\n        }\n        if (flags & 8 /* CodeEditorStateFlag.Scroll */) {\n            this._listener.add(editor.onDidScrollChange(_ => this.cancel()));\n        }\n        if (flags & 1 /* CodeEditorStateFlag.Value */) {\n            this._listener.add(editor.onDidChangeModel(_ => this.cancel()));\n            this._listener.add(editor.onDidChangeModelContent(_ => this.cancel()));\n        }\n    }\n    dispose() {\n        this._listener.dispose();\n        super.dispose();\n    }\n}\n/**\n * A cancellation token source that cancels when the provided model changes\n */\nexport class TextModelCancellationTokenSource extends CancellationTokenSource {\n    constructor(model, parent) {\n        super(parent);\n        this._listener = model.onDidChangeContent(() => this.cancel());\n    }\n    dispose() {\n        this._listener.dispose();\n        super.dispose();\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/editorState/browser/keybindingCancellation.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { EditorCommand, registerEditorCommand } from '../../../browser/editorExtensions.js';\nimport { IContextKeyService, RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { LinkedList } from '../../../../base/common/linkedList.js';\nimport { createDecorator } from '../../../../platform/instantiation/common/instantiation.js';\nimport { registerSingleton } from '../../../../platform/instantiation/common/extensions.js';\nimport { localize } from '../../../../nls.js';\nconst IEditorCancellationTokens = createDecorator('IEditorCancelService');\nconst ctxCancellableOperation = new RawContextKey('cancellableOperation', false, localize('cancellableOperation', 'Whether the editor runs a cancellable operation, e.g. like \\'Peek References\\''));\nregisterSingleton(IEditorCancellationTokens, class {\n    constructor() {\n        this._tokens = new WeakMap();\n    }\n    add(editor, cts) {\n        let data = this._tokens.get(editor);\n        if (!data) {\n            data = editor.invokeWithinContext(accessor => {\n                const key = ctxCancellableOperation.bindTo(accessor.get(IContextKeyService));\n                const tokens = new LinkedList();\n                return { key, tokens };\n            });\n            this._tokens.set(editor, data);\n        }\n        let removeFn;\n        data.key.set(true);\n        removeFn = data.tokens.push(cts);\n        return () => {\n            // remove w/o cancellation\n            if (removeFn) {\n                removeFn();\n                data.key.set(!data.tokens.isEmpty());\n                removeFn = undefined;\n            }\n        };\n    }\n    cancel(editor) {\n        const data = this._tokens.get(editor);\n        if (!data) {\n            return;\n        }\n        // remove with cancellation\n        const cts = data.tokens.pop();\n        if (cts) {\n            cts.cancel();\n            data.key.set(!data.tokens.isEmpty());\n        }\n    }\n}, 1 /* InstantiationType.Delayed */);\nexport class EditorKeybindingCancellationTokenSource extends CancellationTokenSource {\n    constructor(editor, parent) {\n        super(parent);\n        this.editor = editor;\n        this._unregister = editor.invokeWithinContext(accessor => accessor.get(IEditorCancellationTokens).add(editor, this));\n    }\n    dispose() {\n        this._unregister();\n        super.dispose();\n    }\n}\nregisterEditorCommand(new class extends EditorCommand {\n    constructor() {\n        super({\n            id: 'editor.cancelOperation',\n            kbOpts: {\n                weight: 100 /* KeybindingWeight.EditorContrib */,\n                primary: 9 /* KeyCode.Escape */\n            },\n            precondition: ctxCancellableOperation\n        });\n    }\n    runEditorCommand(accessor, editor) {\n        accessor.get(IEditorCancellationTokens).cancel(editor);\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/find/browser/findController.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/find/browser/findController.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar CommonFindController_1;\nimport { Delayer } from '../../../../base/common/async.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport * as strings from '../../../../base/common/strings.js';\nimport { EditorAction, EditorCommand, MultiEditorAction, registerEditorAction, registerEditorCommand, registerEditorContribution, registerMultiEditorAction } from '../../../browser/editorExtensions.js';\nimport { overviewRulerRangeHighlight } from '../../../common/core/editorColorRegistry.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { OverviewRulerLane } from '../../../common/model.js';\nimport { CONTEXT_FIND_INPUT_FOCUSED, CONTEXT_FIND_WIDGET_VISIBLE, CONTEXT_REPLACE_INPUT_FOCUSED, FindModelBoundToEditorModel, FIND_IDS, ToggleCaseSensitiveKeybinding, TogglePreserveCaseKeybinding, ToggleRegexKeybinding, ToggleSearchScopeKeybinding, ToggleWholeWordKeybinding } from './findModel.js';\nimport { FindOptionsWidget } from './findOptionsWidget.js';\nimport { FindReplaceState } from './findState.js';\nimport { FindWidget } from './findWidget.js';\nimport * as nls from '../../../../nls.js';\nimport { MenuId } from '../../../../platform/actions/common/actions.js';\nimport { IClipboardService } from '../../../../platform/clipboard/common/clipboardService.js';\nimport { ContextKeyExpr, IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IContextViewService } from '../../../../platform/contextview/browser/contextView.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { INotificationService, Severity } from '../../../../platform/notification/common/notification.js';\nimport { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.js';\nimport { IStorageService } from '../../../../platform/storage/common/storage.js';\nimport { IThemeService, themeColorFromId } from '../../../../platform/theme/common/themeService.js';\nimport { IHoverService } from '../../../../platform/hover/browser/hover.js';\nconst SEARCH_STRING_MAX_LENGTH = 524288;\nexport function getSelectionSearchString(editor, seedSearchStringFromSelection = 'single', seedSearchStringFromNonEmptySelection = false) {\n    if (!editor.hasModel()) {\n        return null;\n    }\n    const selection = editor.getSelection();\n    // if selection spans multiple lines, default search string to empty\n    if ((seedSearchStringFromSelection === 'single' && selection.startLineNumber === selection.endLineNumber)\n        || seedSearchStringFromSelection === 'multiple') {\n        if (selection.isEmpty()) {\n            const wordAtPosition = editor.getConfiguredWordAtPosition(selection.getStartPosition());\n            if (wordAtPosition && (false === seedSearchStringFromNonEmptySelection)) {\n                return wordAtPosition.word;\n            }\n        }\n        else {\n            if (editor.getModel().getValueLengthInRange(selection) < SEARCH_STRING_MAX_LENGTH) {\n                return editor.getModel().getValueInRange(selection);\n            }\n        }\n    }\n    return null;\n}\nlet CommonFindController = CommonFindController_1 = class CommonFindController extends Disposable {\n    get editor() {\n        return this._editor;\n    }\n    static get(editor) {\n        return editor.getContribution(CommonFindController_1.ID);\n    }\n    constructor(editor, contextKeyService, storageService, clipboardService, notificationService, hoverService) {\n        super();\n        this._editor = editor;\n        this._findWidgetVisible = CONTEXT_FIND_WIDGET_VISIBLE.bindTo(contextKeyService);\n        this._contextKeyService = contextKeyService;\n        this._storageService = storageService;\n        this._clipboardService = clipboardService;\n        this._notificationService = notificationService;\n        this._hoverService = hoverService;\n        this._updateHistoryDelayer = new Delayer(500);\n        this._state = this._register(new FindReplaceState());\n        this.loadQueryState();\n        this._register(this._state.onFindReplaceStateChange((e) => this._onStateChanged(e)));\n        this._model = null;\n        this._register(this._editor.onDidChangeModel(() => {\n            const shouldRestartFind = (this._editor.getModel() && this._state.isRevealed);\n            this.disposeModel();\n            this._state.change({\n                searchScope: null,\n                matchCase: this._storageService.getBoolean('editor.matchCase', 1 /* StorageScope.WORKSPACE */, false),\n                wholeWord: this._storageService.getBoolean('editor.wholeWord', 1 /* StorageScope.WORKSPACE */, false),\n                isRegex: this._storageService.getBoolean('editor.isRegex', 1 /* StorageScope.WORKSPACE */, false),\n                preserveCase: this._storageService.getBoolean('editor.preserveCase', 1 /* StorageScope.WORKSPACE */, false)\n            }, false);\n            if (shouldRestartFind) {\n                this._start({\n                    forceRevealReplace: false,\n                    seedSearchStringFromSelection: 'none',\n                    seedSearchStringFromNonEmptySelection: false,\n                    seedSearchStringFromGlobalClipboard: false,\n                    shouldFocus: 0 /* FindStartFocusAction.NoFocusChange */,\n                    shouldAnimate: false,\n                    updateSearchScope: false,\n                    loop: this._editor.getOption(41 /* EditorOption.find */).loop\n                });\n            }\n        }));\n    }\n    dispose() {\n        this.disposeModel();\n        super.dispose();\n    }\n    disposeModel() {\n        if (this._model) {\n            this._model.dispose();\n            this._model = null;\n        }\n    }\n    _onStateChanged(e) {\n        this.saveQueryState(e);\n        if (e.isRevealed) {\n            if (this._state.isRevealed) {\n                this._findWidgetVisible.set(true);\n            }\n            else {\n                this._findWidgetVisible.reset();\n                this.disposeModel();\n            }\n        }\n        if (e.searchString) {\n            this.setGlobalBufferTerm(this._state.searchString);\n        }\n    }\n    saveQueryState(e) {\n        if (e.isRegex) {\n            this._storageService.store('editor.isRegex', this._state.actualIsRegex, 1 /* StorageScope.WORKSPACE */, 1 /* StorageTarget.MACHINE */);\n        }\n        if (e.wholeWord) {\n            this._storageService.store('editor.wholeWord', this._state.actualWholeWord, 1 /* StorageScope.WORKSPACE */, 1 /* StorageTarget.MACHINE */);\n        }\n        if (e.matchCase) {\n            this._storageService.store('editor.matchCase', this._state.actualMatchCase, 1 /* StorageScope.WORKSPACE */, 1 /* StorageTarget.MACHINE */);\n        }\n        if (e.preserveCase) {\n            this._storageService.store('editor.preserveCase', this._state.actualPreserveCase, 1 /* StorageScope.WORKSPACE */, 1 /* StorageTarget.MACHINE */);\n        }\n    }\n    loadQueryState() {\n        this._state.change({\n            matchCase: this._storageService.getBoolean('editor.matchCase', 1 /* StorageScope.WORKSPACE */, this._state.matchCase),\n            wholeWord: this._storageService.getBoolean('editor.wholeWord', 1 /* StorageScope.WORKSPACE */, this._state.wholeWord),\n            isRegex: this._storageService.getBoolean('editor.isRegex', 1 /* StorageScope.WORKSPACE */, this._state.isRegex),\n            preserveCase: this._storageService.getBoolean('editor.preserveCase', 1 /* StorageScope.WORKSPACE */, this._state.preserveCase)\n        }, false);\n    }\n    isFindInputFocused() {\n        return !!CONTEXT_FIND_INPUT_FOCUSED.getValue(this._contextKeyService);\n    }\n    getState() {\n        return this._state;\n    }\n    closeFindWidget() {\n        this._state.change({\n            isRevealed: false,\n            searchScope: null\n        }, false);\n        this._editor.focus();\n    }\n    toggleCaseSensitive() {\n        this._state.change({ matchCase: !this._state.matchCase }, false);\n        if (!this._state.isRevealed) {\n            this.highlightFindOptions();\n        }\n    }\n    toggleWholeWords() {\n        this._state.change({ wholeWord: !this._state.wholeWord }, false);\n        if (!this._state.isRevealed) {\n            this.highlightFindOptions();\n        }\n    }\n    toggleRegex() {\n        this._state.change({ isRegex: !this._state.isRegex }, false);\n        if (!this._state.isRevealed) {\n            this.highlightFindOptions();\n        }\n    }\n    togglePreserveCase() {\n        this._state.change({ preserveCase: !this._state.preserveCase }, false);\n        if (!this._state.isRevealed) {\n            this.highlightFindOptions();\n        }\n    }\n    toggleSearchScope() {\n        if (this._state.searchScope) {\n            this._state.change({ searchScope: null }, true);\n        }\n        else {\n            if (this._editor.hasModel()) {\n                let selections = this._editor.getSelections();\n                selections = selections.map(selection => {\n                    if (selection.endColumn === 1 && selection.endLineNumber > selection.startLineNumber) {\n                        selection = selection.setEndPosition(selection.endLineNumber - 1, this._editor.getModel().getLineMaxColumn(selection.endLineNumber - 1));\n                    }\n                    if (!selection.isEmpty()) {\n                        return selection;\n                    }\n                    return null;\n                }).filter((element) => !!element);\n                if (selections.length) {\n                    this._state.change({ searchScope: selections }, true);\n                }\n            }\n        }\n    }\n    setSearchString(searchString) {\n        if (this._state.isRegex) {\n            searchString = strings.escapeRegExpCharacters(searchString);\n        }\n        this._state.change({ searchString: searchString }, false);\n    }\n    highlightFindOptions(ignoreWhenVisible = false) {\n        // overwritten in subclass\n    }\n    async _start(opts, newState) {\n        this.disposeModel();\n        if (!this._editor.hasModel()) {\n            // cannot do anything with an editor that doesn't have a model...\n            return;\n        }\n        const stateChanges = {\n            ...newState,\n            isRevealed: true\n        };\n        if (opts.seedSearchStringFromSelection === 'single') {\n            const selectionSearchString = getSelectionSearchString(this._editor, opts.seedSearchStringFromSelection, opts.seedSearchStringFromNonEmptySelection);\n            if (selectionSearchString) {\n                if (this._state.isRegex) {\n                    stateChanges.searchString = strings.escapeRegExpCharacters(selectionSearchString);\n                }\n                else {\n                    stateChanges.searchString = selectionSearchString;\n                }\n            }\n        }\n        else if (opts.seedSearchStringFromSelection === 'multiple' && !opts.updateSearchScope) {\n            const selectionSearchString = getSelectionSearchString(this._editor, opts.seedSearchStringFromSelection);\n            if (selectionSearchString) {\n                stateChanges.searchString = selectionSearchString;\n            }\n        }\n        if (!stateChanges.searchString && opts.seedSearchStringFromGlobalClipboard) {\n            const selectionSearchString = await this.getGlobalBufferTerm();\n            if (!this._editor.hasModel()) {\n                // the editor has lost its model in the meantime\n                return;\n            }\n            if (selectionSearchString) {\n                stateChanges.searchString = selectionSearchString;\n            }\n        }\n        // Overwrite isReplaceRevealed\n        if (opts.forceRevealReplace || stateChanges.isReplaceRevealed) {\n            stateChanges.isReplaceRevealed = true;\n        }\n        else if (!this._findWidgetVisible.get()) {\n            stateChanges.isReplaceRevealed = false;\n        }\n        if (opts.updateSearchScope) {\n            const currentSelections = this._editor.getSelections();\n            if (currentSelections.some(selection => !selection.isEmpty())) {\n                stateChanges.searchScope = currentSelections;\n            }\n        }\n        stateChanges.loop = opts.loop;\n        this._state.change(stateChanges, false);\n        if (!this._model) {\n            this._model = new FindModelBoundToEditorModel(this._editor, this._state);\n        }\n    }\n    start(opts, newState) {\n        return this._start(opts, newState);\n    }\n    moveToNextMatch() {\n        if (this._model) {\n            this._model.moveToNextMatch();\n            return true;\n        }\n        return false;\n    }\n    moveToPrevMatch() {\n        if (this._model) {\n            this._model.moveToPrevMatch();\n            return true;\n        }\n        return false;\n    }\n    goToMatch(index) {\n        if (this._model) {\n            this._model.moveToMatch(index);\n            return true;\n        }\n        return false;\n    }\n    replace() {\n        if (this._model) {\n            this._model.replace();\n            return true;\n        }\n        return false;\n    }\n    replaceAll() {\n        var _a;\n        if (this._model) {\n            if ((_a = this._editor.getModel()) === null || _a === void 0 ? void 0 : _a.isTooLargeForHeapOperation()) {\n                this._notificationService.warn(nls.localize('too.large.for.replaceall', \"The file is too large to perform a replace all operation.\"));\n                return false;\n            }\n            this._model.replaceAll();\n            return true;\n        }\n        return false;\n    }\n    selectAllMatches() {\n        if (this._model) {\n            this._model.selectAllMatches();\n            this._editor.focus();\n            return true;\n        }\n        return false;\n    }\n    async getGlobalBufferTerm() {\n        if (this._editor.getOption(41 /* EditorOption.find */).globalFindClipboard\n            && this._editor.hasModel()\n            && !this._editor.getModel().isTooLargeForSyncing()) {\n            return this._clipboardService.readFindText();\n        }\n        return '';\n    }\n    setGlobalBufferTerm(text) {\n        if (this._editor.getOption(41 /* EditorOption.find */).globalFindClipboard\n            && this._editor.hasModel()\n            && !this._editor.getModel().isTooLargeForSyncing()) {\n            // intentionally not awaited\n            this._clipboardService.writeFindText(text);\n        }\n    }\n};\nCommonFindController.ID = 'editor.contrib.findController';\nCommonFindController = CommonFindController_1 = __decorate([\n    __param(1, IContextKeyService),\n    __param(2, IStorageService),\n    __param(3, IClipboardService),\n    __param(4, INotificationService),\n    __param(5, IHoverService)\n], CommonFindController);\nexport { CommonFindController };\nlet FindController = class FindController extends CommonFindController {\n    constructor(editor, _contextViewService, _contextKeyService, _keybindingService, _themeService, notificationService, _storageService, clipboardService, hoverService) {\n        super(editor, _contextKeyService, _storageService, clipboardService, notificationService, hoverService);\n        this._contextViewService = _contextViewService;\n        this._keybindingService = _keybindingService;\n        this._themeService = _themeService;\n        this._widget = null;\n        this._findOptionsWidget = null;\n    }\n    async _start(opts, newState) {\n        if (!this._widget) {\n            this._createFindWidget();\n        }\n        const selection = this._editor.getSelection();\n        let updateSearchScope = false;\n        switch (this._editor.getOption(41 /* EditorOption.find */).autoFindInSelection) {\n            case 'always':\n                updateSearchScope = true;\n                break;\n            case 'never':\n                updateSearchScope = false;\n                break;\n            case 'multiline': {\n                const isSelectionMultipleLine = !!selection && selection.startLineNumber !== selection.endLineNumber;\n                updateSearchScope = isSelectionMultipleLine;\n                break;\n            }\n            default:\n                break;\n        }\n        opts.updateSearchScope = opts.updateSearchScope || updateSearchScope;\n        await super._start(opts, newState);\n        if (this._widget) {\n            if (opts.shouldFocus === 2 /* FindStartFocusAction.FocusReplaceInput */) {\n                this._widget.focusReplaceInput();\n            }\n            else if (opts.shouldFocus === 1 /* FindStartFocusAction.FocusFindInput */) {\n                this._widget.focusFindInput();\n            }\n        }\n    }\n    highlightFindOptions(ignoreWhenVisible = false) {\n        if (!this._widget) {\n            this._createFindWidget();\n        }\n        if (this._state.isRevealed && !ignoreWhenVisible) {\n            this._widget.highlightFindOptions();\n        }\n        else {\n            this._findOptionsWidget.highlightFindOptions();\n        }\n    }\n    _createFindWidget() {\n        this._widget = this._register(new FindWidget(this._editor, this, this._state, this._contextViewService, this._keybindingService, this._contextKeyService, this._themeService, this._storageService, this._notificationService, this._hoverService));\n        this._findOptionsWidget = this._register(new FindOptionsWidget(this._editor, this._state, this._keybindingService));\n    }\n};\nFindController = __decorate([\n    __param(1, IContextViewService),\n    __param(2, IContextKeyService),\n    __param(3, IKeybindingService),\n    __param(4, IThemeService),\n    __param(5, INotificationService),\n    __param(6, IStorageService),\n    __param(7, IClipboardService),\n    __param(8, IHoverService)\n], FindController);\nexport { FindController };\nexport const StartFindAction = registerMultiEditorAction(new MultiEditorAction({\n    id: FIND_IDS.StartFindAction,\n    label: nls.localize('startFindAction', \"Find\"),\n    alias: 'Find',\n    precondition: ContextKeyExpr.or(EditorContextKeys.focus, ContextKeyExpr.has('editorIsOpen')),\n    kbOpts: {\n        kbExpr: null,\n        primary: 2048 /* KeyMod.CtrlCmd */ | 36 /* KeyCode.KeyF */,\n        weight: 100 /* KeybindingWeight.EditorContrib */\n    },\n    menuOpts: {\n        menuId: MenuId.MenubarEditMenu,\n        group: '3_find',\n        title: nls.localize({ key: 'miFind', comment: ['&& denotes a mnemonic'] }, \"&&Find\"),\n        order: 1\n    }\n}));\nStartFindAction.addImplementation(0, (accessor, editor, args) => {\n    const controller = CommonFindController.get(editor);\n    if (!controller) {\n        return false;\n    }\n    return controller.start({\n        forceRevealReplace: false,\n        seedSearchStringFromSelection: editor.getOption(41 /* EditorOption.find */).seedSearchStringFromSelection !== 'never' ? 'single' : 'none',\n        seedSearchStringFromNonEmptySelection: editor.getOption(41 /* EditorOption.find */).seedSearchStringFromSelection === 'selection',\n        seedSearchStringFromGlobalClipboard: editor.getOption(41 /* EditorOption.find */).globalFindClipboard,\n        shouldFocus: 1 /* FindStartFocusAction.FocusFindInput */,\n        shouldAnimate: true,\n        updateSearchScope: false,\n        loop: editor.getOption(41 /* EditorOption.find */).loop\n    });\n});\nconst findArgDescription = {\n    description: 'Open a new In-Editor Find Widget.',\n    args: [{\n            name: 'Open a new In-Editor Find Widget args',\n            schema: {\n                properties: {\n                    searchString: { type: 'string' },\n                    replaceString: { type: 'string' },\n                    isRegex: { type: 'boolean' },\n                    matchWholeWord: { type: 'boolean' },\n                    isCaseSensitive: { type: 'boolean' },\n                    preserveCase: { type: 'boolean' },\n                    findInSelection: { type: 'boolean' },\n                }\n            }\n        }]\n};\nexport class StartFindWithArgsAction extends EditorAction {\n    constructor() {\n        super({\n            id: FIND_IDS.StartFindWithArgs,\n            label: nls.localize('startFindWithArgsAction', \"Find With Arguments\"),\n            alias: 'Find With Arguments',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: null,\n                primary: 0,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            metadata: findArgDescription\n        });\n    }\n    async run(accessor, editor, args) {\n        const controller = CommonFindController.get(editor);\n        if (controller) {\n            const newState = args ? {\n                searchString: args.searchString,\n                replaceString: args.replaceString,\n                isReplaceRevealed: args.replaceString !== undefined,\n                isRegex: args.isRegex,\n                // isRegexOverride: args.regexOverride,\n                wholeWord: args.matchWholeWord,\n                // wholeWordOverride: args.wholeWordOverride,\n                matchCase: args.isCaseSensitive,\n                // matchCaseOverride: args.matchCaseOverride,\n                preserveCase: args.preserveCase,\n                // preserveCaseOverride: args.preserveCaseOverride,\n            } : {};\n            await controller.start({\n                forceRevealReplace: false,\n                seedSearchStringFromSelection: (controller.getState().searchString.length === 0) && editor.getOption(41 /* EditorOption.find */).seedSearchStringFromSelection !== 'never' ? 'single' : 'none',\n                seedSearchStringFromNonEmptySelection: editor.getOption(41 /* EditorOption.find */).seedSearchStringFromSelection === 'selection',\n                seedSearchStringFromGlobalClipboard: true,\n                shouldFocus: 1 /* FindStartFocusAction.FocusFindInput */,\n                shouldAnimate: true,\n                updateSearchScope: (args === null || args === void 0 ? void 0 : args.findInSelection) || false,\n                loop: editor.getOption(41 /* EditorOption.find */).loop\n            }, newState);\n            controller.setGlobalBufferTerm(controller.getState().searchString);\n        }\n    }\n}\nexport class StartFindWithSelectionAction extends EditorAction {\n    constructor() {\n        super({\n            id: FIND_IDS.StartFindWithSelection,\n            label: nls.localize('startFindWithSelectionAction', \"Find With Selection\"),\n            alias: 'Find With Selection',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: null,\n                primary: 0,\n                mac: {\n                    primary: 2048 /* KeyMod.CtrlCmd */ | 35 /* KeyCode.KeyE */,\n                },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    async run(accessor, editor) {\n        const controller = CommonFindController.get(editor);\n        if (controller) {\n            await controller.start({\n                forceRevealReplace: false,\n                seedSearchStringFromSelection: 'multiple',\n                seedSearchStringFromNonEmptySelection: false,\n                seedSearchStringFromGlobalClipboard: false,\n                shouldFocus: 0 /* FindStartFocusAction.NoFocusChange */,\n                shouldAnimate: true,\n                updateSearchScope: false,\n                loop: editor.getOption(41 /* EditorOption.find */).loop\n            });\n            controller.setGlobalBufferTerm(controller.getState().searchString);\n        }\n    }\n}\nexport class MatchFindAction extends EditorAction {\n    async run(accessor, editor) {\n        const controller = CommonFindController.get(editor);\n        if (controller && !this._run(controller)) {\n            await controller.start({\n                forceRevealReplace: false,\n                seedSearchStringFromSelection: (controller.getState().searchString.length === 0) && editor.getOption(41 /* EditorOption.find */).seedSearchStringFromSelection !== 'never' ? 'single' : 'none',\n                seedSearchStringFromNonEmptySelection: editor.getOption(41 /* EditorOption.find */).seedSearchStringFromSelection === 'selection',\n                seedSearchStringFromGlobalClipboard: true,\n                shouldFocus: 0 /* FindStartFocusAction.NoFocusChange */,\n                shouldAnimate: true,\n                updateSearchScope: false,\n                loop: editor.getOption(41 /* EditorOption.find */).loop\n            });\n            this._run(controller);\n        }\n    }\n}\nexport class NextMatchFindAction extends MatchFindAction {\n    constructor() {\n        super({\n            id: FIND_IDS.NextMatchFindAction,\n            label: nls.localize('findNextMatchAction', \"Find Next\"),\n            alias: 'Find Next',\n            precondition: undefined,\n            kbOpts: [{\n                    kbExpr: EditorContextKeys.focus,\n                    primary: 61 /* KeyCode.F3 */,\n                    mac: { primary: 2048 /* KeyMod.CtrlCmd */ | 37 /* KeyCode.KeyG */, secondary: [61 /* KeyCode.F3 */] },\n                    weight: 100 /* KeybindingWeight.EditorContrib */\n                }, {\n                    kbExpr: ContextKeyExpr.and(EditorContextKeys.focus, CONTEXT_FIND_INPUT_FOCUSED),\n                    primary: 3 /* KeyCode.Enter */,\n                    weight: 100 /* KeybindingWeight.EditorContrib */\n                }]\n        });\n    }\n    _run(controller) {\n        const result = controller.moveToNextMatch();\n        if (result) {\n            controller.editor.pushUndoStop();\n            return true;\n        }\n        return false;\n    }\n}\nexport class PreviousMatchFindAction extends MatchFindAction {\n    constructor() {\n        super({\n            id: FIND_IDS.PreviousMatchFindAction,\n            label: nls.localize('findPreviousMatchAction', \"Find Previous\"),\n            alias: 'Find Previous',\n            precondition: undefined,\n            kbOpts: [{\n                    kbExpr: EditorContextKeys.focus,\n                    primary: 1024 /* KeyMod.Shift */ | 61 /* KeyCode.F3 */,\n                    mac: { primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 37 /* KeyCode.KeyG */, secondary: [1024 /* KeyMod.Shift */ | 61 /* KeyCode.F3 */] },\n                    weight: 100 /* KeybindingWeight.EditorContrib */\n                }, {\n                    kbExpr: ContextKeyExpr.and(EditorContextKeys.focus, CONTEXT_FIND_INPUT_FOCUSED),\n                    primary: 1024 /* KeyMod.Shift */ | 3 /* KeyCode.Enter */,\n                    weight: 100 /* KeybindingWeight.EditorContrib */\n                }\n            ]\n        });\n    }\n    _run(controller) {\n        return controller.moveToPrevMatch();\n    }\n}\nexport class MoveToMatchFindAction extends EditorAction {\n    constructor() {\n        super({\n            id: FIND_IDS.GoToMatchFindAction,\n            label: nls.localize('findMatchAction.goToMatch', \"Go to Match...\"),\n            alias: 'Go to Match...',\n            precondition: CONTEXT_FIND_WIDGET_VISIBLE\n        });\n        this._highlightDecorations = [];\n    }\n    run(accessor, editor, args) {\n        const controller = CommonFindController.get(editor);\n        if (!controller) {\n            return;\n        }\n        const matchesCount = controller.getState().matchesCount;\n        if (matchesCount < 1) {\n            const notificationService = accessor.get(INotificationService);\n            notificationService.notify({\n                severity: Severity.Warning,\n                message: nls.localize('findMatchAction.noResults', \"No matches. Try searching for something else.\")\n            });\n            return;\n        }\n        const quickInputService = accessor.get(IQuickInputService);\n        const inputBox = quickInputService.createInputBox();\n        inputBox.placeholder = nls.localize('findMatchAction.inputPlaceHolder', \"Type a number to go to a specific match (between 1 and {0})\", matchesCount);\n        const toFindMatchIndex = (value) => {\n            const index = parseInt(value);\n            if (isNaN(index)) {\n                return undefined;\n            }\n            const matchCount = controller.getState().matchesCount;\n            if (index > 0 && index <= matchCount) {\n                return index - 1; // zero based\n            }\n            else if (index < 0 && index >= -matchCount) {\n                return matchCount + index;\n            }\n            return undefined;\n        };\n        const updatePickerAndEditor = (value) => {\n            const index = toFindMatchIndex(value);\n            if (typeof index === 'number') {\n                // valid\n                inputBox.validationMessage = undefined;\n                controller.goToMatch(index);\n                const currentMatch = controller.getState().currentMatch;\n                if (currentMatch) {\n                    this.addDecorations(editor, currentMatch);\n                }\n            }\n            else {\n                inputBox.validationMessage = nls.localize('findMatchAction.inputValidationMessage', \"Please type a number between 1 and {0}\", controller.getState().matchesCount);\n                this.clearDecorations(editor);\n            }\n        };\n        inputBox.onDidChangeValue(value => {\n            updatePickerAndEditor(value);\n        });\n        inputBox.onDidAccept(() => {\n            const index = toFindMatchIndex(inputBox.value);\n            if (typeof index === 'number') {\n                controller.goToMatch(index);\n                inputBox.hide();\n            }\n            else {\n                inputBox.validationMessage = nls.localize('findMatchAction.inputValidationMessage', \"Please type a number between 1 and {0}\", controller.getState().matchesCount);\n            }\n        });\n        inputBox.onDidHide(() => {\n            this.clearDecorations(editor);\n            inputBox.dispose();\n        });\n        inputBox.show();\n    }\n    clearDecorations(editor) {\n        editor.changeDecorations(changeAccessor => {\n            this._highlightDecorations = changeAccessor.deltaDecorations(this._highlightDecorations, []);\n        });\n    }\n    addDecorations(editor, range) {\n        editor.changeDecorations(changeAccessor => {\n            this._highlightDecorations = changeAccessor.deltaDecorations(this._highlightDecorations, [\n                {\n                    range,\n                    options: {\n                        description: 'find-match-quick-access-range-highlight',\n                        className: 'rangeHighlight',\n                        isWholeLine: true\n                    }\n                },\n                {\n                    range,\n                    options: {\n                        description: 'find-match-quick-access-range-highlight-overview',\n                        overviewRuler: {\n                            color: themeColorFromId(overviewRulerRangeHighlight),\n                            position: OverviewRulerLane.Full\n                        }\n                    }\n                }\n            ]);\n        });\n    }\n}\nexport class SelectionMatchFindAction extends EditorAction {\n    async run(accessor, editor) {\n        const controller = CommonFindController.get(editor);\n        if (!controller) {\n            return;\n        }\n        const selectionSearchString = getSelectionSearchString(editor, 'single', false);\n        if (selectionSearchString) {\n            controller.setSearchString(selectionSearchString);\n        }\n        if (!this._run(controller)) {\n            await controller.start({\n                forceRevealReplace: false,\n                seedSearchStringFromSelection: 'none',\n                seedSearchStringFromNonEmptySelection: false,\n                seedSearchStringFromGlobalClipboard: false,\n                shouldFocus: 0 /* FindStartFocusAction.NoFocusChange */,\n                shouldAnimate: true,\n                updateSearchScope: false,\n                loop: editor.getOption(41 /* EditorOption.find */).loop\n            });\n            this._run(controller);\n        }\n    }\n}\nexport class NextSelectionMatchFindAction extends SelectionMatchFindAction {\n    constructor() {\n        super({\n            id: FIND_IDS.NextSelectionMatchFindAction,\n            label: nls.localize('nextSelectionMatchFindAction', \"Find Next Selection\"),\n            alias: 'Find Next Selection',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: EditorContextKeys.focus,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 61 /* KeyCode.F3 */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    _run(controller) {\n        return controller.moveToNextMatch();\n    }\n}\nexport class PreviousSelectionMatchFindAction extends SelectionMatchFindAction {\n    constructor() {\n        super({\n            id: FIND_IDS.PreviousSelectionMatchFindAction,\n            label: nls.localize('previousSelectionMatchFindAction', \"Find Previous Selection\"),\n            alias: 'Find Previous Selection',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: EditorContextKeys.focus,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 61 /* KeyCode.F3 */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    _run(controller) {\n        return controller.moveToPrevMatch();\n    }\n}\nexport const StartFindReplaceAction = registerMultiEditorAction(new MultiEditorAction({\n    id: FIND_IDS.StartFindReplaceAction,\n    label: nls.localize('startReplace', \"Replace\"),\n    alias: 'Replace',\n    precondition: ContextKeyExpr.or(EditorContextKeys.focus, ContextKeyExpr.has('editorIsOpen')),\n    kbOpts: {\n        kbExpr: null,\n        primary: 2048 /* KeyMod.CtrlCmd */ | 38 /* KeyCode.KeyH */,\n        mac: { primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 36 /* KeyCode.KeyF */ },\n        weight: 100 /* KeybindingWeight.EditorContrib */\n    },\n    menuOpts: {\n        menuId: MenuId.MenubarEditMenu,\n        group: '3_find',\n        title: nls.localize({ key: 'miReplace', comment: ['&& denotes a mnemonic'] }, \"&&Replace\"),\n        order: 2\n    }\n}));\nStartFindReplaceAction.addImplementation(0, (accessor, editor, args) => {\n    if (!editor.hasModel() || editor.getOption(91 /* EditorOption.readOnly */)) {\n        return false;\n    }\n    const controller = CommonFindController.get(editor);\n    if (!controller) {\n        return false;\n    }\n    const currentSelection = editor.getSelection();\n    const findInputFocused = controller.isFindInputFocused();\n    // we only seed search string from selection when the current selection is single line and not empty,\n    // + the find input is not focused\n    const seedSearchStringFromSelection = !currentSelection.isEmpty()\n        && currentSelection.startLineNumber === currentSelection.endLineNumber\n        && (editor.getOption(41 /* EditorOption.find */).seedSearchStringFromSelection !== 'never')\n        && !findInputFocused;\n    /*\n    * if the existing search string in find widget is empty and we don't seed search string from selection, it means the Find Input is still empty, so we should focus the Find Input instead of Replace Input.\n\n    * findInputFocused true -> seedSearchStringFromSelection false, FocusReplaceInput\n    * findInputFocused false, seedSearchStringFromSelection true FocusReplaceInput\n    * findInputFocused false seedSearchStringFromSelection false FocusFindInput\n    */\n    const shouldFocus = (findInputFocused || seedSearchStringFromSelection) ?\n        2 /* FindStartFocusAction.FocusReplaceInput */ : 1 /* FindStartFocusAction.FocusFindInput */;\n    return controller.start({\n        forceRevealReplace: true,\n        seedSearchStringFromSelection: seedSearchStringFromSelection ? 'single' : 'none',\n        seedSearchStringFromNonEmptySelection: editor.getOption(41 /* EditorOption.find */).seedSearchStringFromSelection === 'selection',\n        seedSearchStringFromGlobalClipboard: editor.getOption(41 /* EditorOption.find */).seedSearchStringFromSelection !== 'never',\n        shouldFocus: shouldFocus,\n        shouldAnimate: true,\n        updateSearchScope: false,\n        loop: editor.getOption(41 /* EditorOption.find */).loop\n    });\n});\nregisterEditorContribution(CommonFindController.ID, FindController, 0 /* EditorContributionInstantiation.Eager */); // eager because it uses `saveViewState`/`restoreViewState`\nregisterEditorAction(StartFindWithArgsAction);\nregisterEditorAction(StartFindWithSelectionAction);\nregisterEditorAction(NextMatchFindAction);\nregisterEditorAction(PreviousMatchFindAction);\nregisterEditorAction(MoveToMatchFindAction);\nregisterEditorAction(NextSelectionMatchFindAction);\nregisterEditorAction(PreviousSelectionMatchFindAction);\nconst FindCommand = EditorCommand.bindToContribution(CommonFindController.get);\nregisterEditorCommand(new FindCommand({\n    id: FIND_IDS.CloseFindWidgetCommand,\n    precondition: CONTEXT_FIND_WIDGET_VISIBLE,\n    handler: x => x.closeFindWidget(),\n    kbOpts: {\n        weight: 100 /* KeybindingWeight.EditorContrib */ + 5,\n        kbExpr: ContextKeyExpr.and(EditorContextKeys.focus, ContextKeyExpr.not('isComposing')),\n        primary: 9 /* KeyCode.Escape */,\n        secondary: [1024 /* KeyMod.Shift */ | 9 /* KeyCode.Escape */]\n    }\n}));\nregisterEditorCommand(new FindCommand({\n    id: FIND_IDS.ToggleCaseSensitiveCommand,\n    precondition: undefined,\n    handler: x => x.toggleCaseSensitive(),\n    kbOpts: {\n        weight: 100 /* KeybindingWeight.EditorContrib */ + 5,\n        kbExpr: EditorContextKeys.focus,\n        primary: ToggleCaseSensitiveKeybinding.primary,\n        mac: ToggleCaseSensitiveKeybinding.mac,\n        win: ToggleCaseSensitiveKeybinding.win,\n        linux: ToggleCaseSensitiveKeybinding.linux\n    }\n}));\nregisterEditorCommand(new FindCommand({\n    id: FIND_IDS.ToggleWholeWordCommand,\n    precondition: undefined,\n    handler: x => x.toggleWholeWords(),\n    kbOpts: {\n        weight: 100 /* KeybindingWeight.EditorContrib */ + 5,\n        kbExpr: EditorContextKeys.focus,\n        primary: ToggleWholeWordKeybinding.primary,\n        mac: ToggleWholeWordKeybinding.mac,\n        win: ToggleWholeWordKeybinding.win,\n        linux: ToggleWholeWordKeybinding.linux\n    }\n}));\nregisterEditorCommand(new FindCommand({\n    id: FIND_IDS.ToggleRegexCommand,\n    precondition: undefined,\n    handler: x => x.toggleRegex(),\n    kbOpts: {\n        weight: 100 /* KeybindingWeight.EditorContrib */ + 5,\n        kbExpr: EditorContextKeys.focus,\n        primary: ToggleRegexKeybinding.primary,\n        mac: ToggleRegexKeybinding.mac,\n        win: ToggleRegexKeybinding.win,\n        linux: ToggleRegexKeybinding.linux\n    }\n}));\nregisterEditorCommand(new FindCommand({\n    id: FIND_IDS.ToggleSearchScopeCommand,\n    precondition: undefined,\n    handler: x => x.toggleSearchScope(),\n    kbOpts: {\n        weight: 100 /* KeybindingWeight.EditorContrib */ + 5,\n        kbExpr: EditorContextKeys.focus,\n        primary: ToggleSearchScopeKeybinding.primary,\n        mac: ToggleSearchScopeKeybinding.mac,\n        win: ToggleSearchScopeKeybinding.win,\n        linux: ToggleSearchScopeKeybinding.linux\n    }\n}));\nregisterEditorCommand(new FindCommand({\n    id: FIND_IDS.TogglePreserveCaseCommand,\n    precondition: undefined,\n    handler: x => x.togglePreserveCase(),\n    kbOpts: {\n        weight: 100 /* KeybindingWeight.EditorContrib */ + 5,\n        kbExpr: EditorContextKeys.focus,\n        primary: TogglePreserveCaseKeybinding.primary,\n        mac: TogglePreserveCaseKeybinding.mac,\n        win: TogglePreserveCaseKeybinding.win,\n        linux: TogglePreserveCaseKeybinding.linux\n    }\n}));\nregisterEditorCommand(new FindCommand({\n    id: FIND_IDS.ReplaceOneAction,\n    precondition: CONTEXT_FIND_WIDGET_VISIBLE,\n    handler: x => x.replace(),\n    kbOpts: {\n        weight: 100 /* KeybindingWeight.EditorContrib */ + 5,\n        kbExpr: EditorContextKeys.focus,\n        primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 22 /* KeyCode.Digit1 */\n    }\n}));\nregisterEditorCommand(new FindCommand({\n    id: FIND_IDS.ReplaceOneAction,\n    precondition: CONTEXT_FIND_WIDGET_VISIBLE,\n    handler: x => x.replace(),\n    kbOpts: {\n        weight: 100 /* KeybindingWeight.EditorContrib */ + 5,\n        kbExpr: ContextKeyExpr.and(EditorContextKeys.focus, CONTEXT_REPLACE_INPUT_FOCUSED),\n        primary: 3 /* KeyCode.Enter */\n    }\n}));\nregisterEditorCommand(new FindCommand({\n    id: FIND_IDS.ReplaceAllAction,\n    precondition: CONTEXT_FIND_WIDGET_VISIBLE,\n    handler: x => x.replaceAll(),\n    kbOpts: {\n        weight: 100 /* KeybindingWeight.EditorContrib */ + 5,\n        kbExpr: EditorContextKeys.focus,\n        primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 3 /* KeyCode.Enter */\n    }\n}));\nregisterEditorCommand(new FindCommand({\n    id: FIND_IDS.ReplaceAllAction,\n    precondition: CONTEXT_FIND_WIDGET_VISIBLE,\n    handler: x => x.replaceAll(),\n    kbOpts: {\n        weight: 100 /* KeybindingWeight.EditorContrib */ + 5,\n        kbExpr: ContextKeyExpr.and(EditorContextKeys.focus, CONTEXT_REPLACE_INPUT_FOCUSED),\n        primary: undefined,\n        mac: {\n            primary: 2048 /* KeyMod.CtrlCmd */ | 3 /* KeyCode.Enter */,\n        }\n    }\n}));\nregisterEditorCommand(new FindCommand({\n    id: FIND_IDS.SelectAllMatchesAction,\n    precondition: CONTEXT_FIND_WIDGET_VISIBLE,\n    handler: x => x.selectAllMatches(),\n    kbOpts: {\n        weight: 100 /* KeybindingWeight.EditorContrib */ + 5,\n        kbExpr: EditorContextKeys.focus,\n        primary: 512 /* KeyMod.Alt */ | 3 /* KeyCode.Enter */\n    }\n}));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/find/browser/findDecorations.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Range } from '../../../common/core/range.js';\nimport { OverviewRulerLane } from '../../../common/model.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { minimapFindMatch, overviewRulerFindMatchForeground } from '../../../../platform/theme/common/colorRegistry.js';\nimport { themeColorFromId } from '../../../../platform/theme/common/themeService.js';\nexport class FindDecorations {\n    constructor(editor) {\n        this._editor = editor;\n        this._decorations = [];\n        this._overviewRulerApproximateDecorations = [];\n        this._findScopeDecorationIds = [];\n        this._rangeHighlightDecorationId = null;\n        this._highlightedDecorationId = null;\n        this._startPosition = this._editor.getPosition();\n    }\n    dispose() {\n        this._editor.removeDecorations(this._allDecorations());\n        this._decorations = [];\n        this._overviewRulerApproximateDecorations = [];\n        this._findScopeDecorationIds = [];\n        this._rangeHighlightDecorationId = null;\n        this._highlightedDecorationId = null;\n    }\n    reset() {\n        this._decorations = [];\n        this._overviewRulerApproximateDecorations = [];\n        this._findScopeDecorationIds = [];\n        this._rangeHighlightDecorationId = null;\n        this._highlightedDecorationId = null;\n    }\n    getCount() {\n        return this._decorations.length;\n    }\n    /** @deprecated use getFindScopes to support multiple selections */\n    getFindScope() {\n        if (this._findScopeDecorationIds[0]) {\n            return this._editor.getModel().getDecorationRange(this._findScopeDecorationIds[0]);\n        }\n        return null;\n    }\n    getFindScopes() {\n        if (this._findScopeDecorationIds.length) {\n            const scopes = this._findScopeDecorationIds.map(findScopeDecorationId => this._editor.getModel().getDecorationRange(findScopeDecorationId)).filter(element => !!element);\n            if (scopes.length) {\n                return scopes;\n            }\n        }\n        return null;\n    }\n    getStartPosition() {\n        return this._startPosition;\n    }\n    setStartPosition(newStartPosition) {\n        this._startPosition = newStartPosition;\n        this.setCurrentFindMatch(null);\n    }\n    _getDecorationIndex(decorationId) {\n        const index = this._decorations.indexOf(decorationId);\n        if (index >= 0) {\n            return index + 1;\n        }\n        return 1;\n    }\n    getDecorationRangeAt(index) {\n        const decorationId = index < this._decorations.length ? this._decorations[index] : null;\n        if (decorationId) {\n            return this._editor.getModel().getDecorationRange(decorationId);\n        }\n        return null;\n    }\n    getCurrentMatchesPosition(desiredRange) {\n        const candidates = this._editor.getModel().getDecorationsInRange(desiredRange);\n        for (const candidate of candidates) {\n            const candidateOpts = candidate.options;\n            if (candidateOpts === FindDecorations._FIND_MATCH_DECORATION || candidateOpts === FindDecorations._CURRENT_FIND_MATCH_DECORATION) {\n                return this._getDecorationIndex(candidate.id);\n            }\n        }\n        // We don't know the current match position, so returns zero to show '?' in find widget\n        return 0;\n    }\n    setCurrentFindMatch(nextMatch) {\n        let newCurrentDecorationId = null;\n        let matchPosition = 0;\n        if (nextMatch) {\n            for (let i = 0, len = this._decorations.length; i < len; i++) {\n                const range = this._editor.getModel().getDecorationRange(this._decorations[i]);\n                if (nextMatch.equalsRange(range)) {\n                    newCurrentDecorationId = this._decorations[i];\n                    matchPosition = (i + 1);\n                    break;\n                }\n            }\n        }\n        if (this._highlightedDecorationId !== null || newCurrentDecorationId !== null) {\n            this._editor.changeDecorations((changeAccessor) => {\n                if (this._highlightedDecorationId !== null) {\n                    changeAccessor.changeDecorationOptions(this._highlightedDecorationId, FindDecorations._FIND_MATCH_DECORATION);\n                    this._highlightedDecorationId = null;\n                }\n                if (newCurrentDecorationId !== null) {\n                    this._highlightedDecorationId = newCurrentDecorationId;\n                    changeAccessor.changeDecorationOptions(this._highlightedDecorationId, FindDecorations._CURRENT_FIND_MATCH_DECORATION);\n                }\n                if (this._rangeHighlightDecorationId !== null) {\n                    changeAccessor.removeDecoration(this._rangeHighlightDecorationId);\n                    this._rangeHighlightDecorationId = null;\n                }\n                if (newCurrentDecorationId !== null) {\n                    let rng = this._editor.getModel().getDecorationRange(newCurrentDecorationId);\n                    if (rng.startLineNumber !== rng.endLineNumber && rng.endColumn === 1) {\n                        const lineBeforeEnd = rng.endLineNumber - 1;\n                        const lineBeforeEndMaxColumn = this._editor.getModel().getLineMaxColumn(lineBeforeEnd);\n                        rng = new Range(rng.startLineNumber, rng.startColumn, lineBeforeEnd, lineBeforeEndMaxColumn);\n                    }\n                    this._rangeHighlightDecorationId = changeAccessor.addDecoration(rng, FindDecorations._RANGE_HIGHLIGHT_DECORATION);\n                }\n            });\n        }\n        return matchPosition;\n    }\n    set(findMatches, findScopes) {\n        this._editor.changeDecorations((accessor) => {\n            let findMatchesOptions = FindDecorations._FIND_MATCH_DECORATION;\n            const newOverviewRulerApproximateDecorations = [];\n            if (findMatches.length > 1000) {\n                // we go into a mode where the overview ruler gets \"approximate\" decorations\n                // the reason is that the overview ruler paints all the decorations in the file and we don't want to cause freezes\n                findMatchesOptions = FindDecorations._FIND_MATCH_NO_OVERVIEW_DECORATION;\n                // approximate a distance in lines where matches should be merged\n                const lineCount = this._editor.getModel().getLineCount();\n                const height = this._editor.getLayoutInfo().height;\n                const approxPixelsPerLine = height / lineCount;\n                const mergeLinesDelta = Math.max(2, Math.ceil(3 / approxPixelsPerLine));\n                // merge decorations as much as possible\n                let prevStartLineNumber = findMatches[0].range.startLineNumber;\n                let prevEndLineNumber = findMatches[0].range.endLineNumber;\n                for (let i = 1, len = findMatches.length; i < len; i++) {\n                    const range = findMatches[i].range;\n                    if (prevEndLineNumber + mergeLinesDelta >= range.startLineNumber) {\n                        if (range.endLineNumber > prevEndLineNumber) {\n                            prevEndLineNumber = range.endLineNumber;\n                        }\n                    }\n                    else {\n                        newOverviewRulerApproximateDecorations.push({\n                            range: new Range(prevStartLineNumber, 1, prevEndLineNumber, 1),\n                            options: FindDecorations._FIND_MATCH_ONLY_OVERVIEW_DECORATION\n                        });\n                        prevStartLineNumber = range.startLineNumber;\n                        prevEndLineNumber = range.endLineNumber;\n                    }\n                }\n                newOverviewRulerApproximateDecorations.push({\n                    range: new Range(prevStartLineNumber, 1, prevEndLineNumber, 1),\n                    options: FindDecorations._FIND_MATCH_ONLY_OVERVIEW_DECORATION\n                });\n            }\n            // Find matches\n            const newFindMatchesDecorations = new Array(findMatches.length);\n            for (let i = 0, len = findMatches.length; i < len; i++) {\n                newFindMatchesDecorations[i] = {\n                    range: findMatches[i].range,\n                    options: findMatchesOptions\n                };\n            }\n            this._decorations = accessor.deltaDecorations(this._decorations, newFindMatchesDecorations);\n            // Overview ruler approximate decorations\n            this._overviewRulerApproximateDecorations = accessor.deltaDecorations(this._overviewRulerApproximateDecorations, newOverviewRulerApproximateDecorations);\n            // Range highlight\n            if (this._rangeHighlightDecorationId) {\n                accessor.removeDecoration(this._rangeHighlightDecorationId);\n                this._rangeHighlightDecorationId = null;\n            }\n            // Find scope\n            if (this._findScopeDecorationIds.length) {\n                this._findScopeDecorationIds.forEach(findScopeDecorationId => accessor.removeDecoration(findScopeDecorationId));\n                this._findScopeDecorationIds = [];\n            }\n            if (findScopes === null || findScopes === void 0 ? void 0 : findScopes.length) {\n                this._findScopeDecorationIds = findScopes.map(findScope => accessor.addDecoration(findScope, FindDecorations._FIND_SCOPE_DECORATION));\n            }\n        });\n    }\n    matchBeforePosition(position) {\n        if (this._decorations.length === 0) {\n            return null;\n        }\n        for (let i = this._decorations.length - 1; i >= 0; i--) {\n            const decorationId = this._decorations[i];\n            const r = this._editor.getModel().getDecorationRange(decorationId);\n            if (!r || r.endLineNumber > position.lineNumber) {\n                continue;\n            }\n            if (r.endLineNumber < position.lineNumber) {\n                return r;\n            }\n            if (r.endColumn > position.column) {\n                continue;\n            }\n            return r;\n        }\n        return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length - 1]);\n    }\n    matchAfterPosition(position) {\n        if (this._decorations.length === 0) {\n            return null;\n        }\n        for (let i = 0, len = this._decorations.length; i < len; i++) {\n            const decorationId = this._decorations[i];\n            const r = this._editor.getModel().getDecorationRange(decorationId);\n            if (!r || r.startLineNumber < position.lineNumber) {\n                continue;\n            }\n            if (r.startLineNumber > position.lineNumber) {\n                return r;\n            }\n            if (r.startColumn < position.column) {\n                continue;\n            }\n            return r;\n        }\n        return this._editor.getModel().getDecorationRange(this._decorations[0]);\n    }\n    _allDecorations() {\n        let result = [];\n        result = result.concat(this._decorations);\n        result = result.concat(this._overviewRulerApproximateDecorations);\n        if (this._findScopeDecorationIds.length) {\n            result.push(...this._findScopeDecorationIds);\n        }\n        if (this._rangeHighlightDecorationId) {\n            result.push(this._rangeHighlightDecorationId);\n        }\n        return result;\n    }\n}\nFindDecorations._CURRENT_FIND_MATCH_DECORATION = ModelDecorationOptions.register({\n    description: 'current-find-match',\n    stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n    zIndex: 13,\n    className: 'currentFindMatch',\n    inlineClassName: 'currentFindMatchInline',\n    showIfCollapsed: true,\n    overviewRuler: {\n        color: themeColorFromId(overviewRulerFindMatchForeground),\n        position: OverviewRulerLane.Center\n    },\n    minimap: {\n        color: themeColorFromId(minimapFindMatch),\n        position: 1 /* MinimapPosition.Inline */\n    }\n});\nFindDecorations._FIND_MATCH_DECORATION = ModelDecorationOptions.register({\n    description: 'find-match',\n    stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n    zIndex: 10,\n    className: 'findMatch',\n    inlineClassName: 'findMatchInline',\n    showIfCollapsed: true,\n    overviewRuler: {\n        color: themeColorFromId(overviewRulerFindMatchForeground),\n        position: OverviewRulerLane.Center\n    },\n    minimap: {\n        color: themeColorFromId(minimapFindMatch),\n        position: 1 /* MinimapPosition.Inline */\n    }\n});\nFindDecorations._FIND_MATCH_NO_OVERVIEW_DECORATION = ModelDecorationOptions.register({\n    description: 'find-match-no-overview',\n    stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n    className: 'findMatch',\n    showIfCollapsed: true\n});\nFindDecorations._FIND_MATCH_ONLY_OVERVIEW_DECORATION = ModelDecorationOptions.register({\n    description: 'find-match-only-overview',\n    stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n    overviewRuler: {\n        color: themeColorFromId(overviewRulerFindMatchForeground),\n        position: OverviewRulerLane.Center\n    }\n});\nFindDecorations._RANGE_HIGHLIGHT_DECORATION = ModelDecorationOptions.register({\n    description: 'find-range-highlight',\n    stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n    className: 'rangeHighlight',\n    isWholeLine: true\n});\nFindDecorations._FIND_SCOPE_DECORATION = ModelDecorationOptions.register({\n    description: 'find-scope',\n    className: 'findScope',\n    isWholeLine: true\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/find/browser/findModel.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { findFirstIdxMonotonousOrArrLen } from '../../../../base/common/arraysFind.js';\nimport { RunOnceScheduler, TimeoutTimer } from '../../../../base/common/async.js';\nimport { DisposableStore, dispose } from '../../../../base/common/lifecycle.js';\nimport { ReplaceCommand, ReplaceCommandThatPreservesSelection } from '../../../common/commands/replaceCommand.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { SearchParams } from '../../../common/model/textModelSearch.js';\nimport { FindDecorations } from './findDecorations.js';\nimport { ReplaceAllCommand } from './replaceAllCommand.js';\nimport { parseReplaceString, ReplacePattern } from './replacePattern.js';\nimport { RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nexport const CONTEXT_FIND_WIDGET_VISIBLE = new RawContextKey('findWidgetVisible', false);\nexport const CONTEXT_FIND_WIDGET_NOT_VISIBLE = CONTEXT_FIND_WIDGET_VISIBLE.toNegated();\n// Keep ContextKey use of 'Focussed' to not break when clauses\nexport const CONTEXT_FIND_INPUT_FOCUSED = new RawContextKey('findInputFocussed', false);\nexport const CONTEXT_REPLACE_INPUT_FOCUSED = new RawContextKey('replaceInputFocussed', false);\nexport const ToggleCaseSensitiveKeybinding = {\n    primary: 512 /* KeyMod.Alt */ | 33 /* KeyCode.KeyC */,\n    mac: { primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 33 /* KeyCode.KeyC */ }\n};\nexport const ToggleWholeWordKeybinding = {\n    primary: 512 /* KeyMod.Alt */ | 53 /* KeyCode.KeyW */,\n    mac: { primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 53 /* KeyCode.KeyW */ }\n};\nexport const ToggleRegexKeybinding = {\n    primary: 512 /* KeyMod.Alt */ | 48 /* KeyCode.KeyR */,\n    mac: { primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 48 /* KeyCode.KeyR */ }\n};\nexport const ToggleSearchScopeKeybinding = {\n    primary: 512 /* KeyMod.Alt */ | 42 /* KeyCode.KeyL */,\n    mac: { primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 42 /* KeyCode.KeyL */ }\n};\nexport const TogglePreserveCaseKeybinding = {\n    primary: 512 /* KeyMod.Alt */ | 46 /* KeyCode.KeyP */,\n    mac: { primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 46 /* KeyCode.KeyP */ }\n};\nexport const FIND_IDS = {\n    StartFindAction: 'actions.find',\n    StartFindWithSelection: 'actions.findWithSelection',\n    StartFindWithArgs: 'editor.actions.findWithArgs',\n    NextMatchFindAction: 'editor.action.nextMatchFindAction',\n    PreviousMatchFindAction: 'editor.action.previousMatchFindAction',\n    GoToMatchFindAction: 'editor.action.goToMatchFindAction',\n    NextSelectionMatchFindAction: 'editor.action.nextSelectionMatchFindAction',\n    PreviousSelectionMatchFindAction: 'editor.action.previousSelectionMatchFindAction',\n    StartFindReplaceAction: 'editor.action.startFindReplaceAction',\n    CloseFindWidgetCommand: 'closeFindWidget',\n    ToggleCaseSensitiveCommand: 'toggleFindCaseSensitive',\n    ToggleWholeWordCommand: 'toggleFindWholeWord',\n    ToggleRegexCommand: 'toggleFindRegex',\n    ToggleSearchScopeCommand: 'toggleFindInSelection',\n    TogglePreserveCaseCommand: 'togglePreserveCase',\n    ReplaceOneAction: 'editor.action.replaceOne',\n    ReplaceAllAction: 'editor.action.replaceAll',\n    SelectAllMatchesAction: 'editor.action.selectAllMatches'\n};\nexport const MATCHES_LIMIT = 19999;\nconst RESEARCH_DELAY = 240;\nexport class FindModelBoundToEditorModel {\n    constructor(editor, state) {\n        this._toDispose = new DisposableStore();\n        this._editor = editor;\n        this._state = state;\n        this._isDisposed = false;\n        this._startSearchingTimer = new TimeoutTimer();\n        this._decorations = new FindDecorations(editor);\n        this._toDispose.add(this._decorations);\n        this._updateDecorationsScheduler = new RunOnceScheduler(() => this.research(false), 100);\n        this._toDispose.add(this._updateDecorationsScheduler);\n        this._toDispose.add(this._editor.onDidChangeCursorPosition((e) => {\n            if (e.reason === 3 /* CursorChangeReason.Explicit */\n                || e.reason === 5 /* CursorChangeReason.Undo */\n                || e.reason === 6 /* CursorChangeReason.Redo */) {\n                this._decorations.setStartPosition(this._editor.getPosition());\n            }\n        }));\n        this._ignoreModelContentChanged = false;\n        this._toDispose.add(this._editor.onDidChangeModelContent((e) => {\n            if (this._ignoreModelContentChanged) {\n                return;\n            }\n            if (e.isFlush) {\n                // a model.setValue() was called\n                this._decorations.reset();\n            }\n            this._decorations.setStartPosition(this._editor.getPosition());\n            this._updateDecorationsScheduler.schedule();\n        }));\n        this._toDispose.add(this._state.onFindReplaceStateChange((e) => this._onStateChanged(e)));\n        this.research(false, this._state.searchScope);\n    }\n    dispose() {\n        this._isDisposed = true;\n        dispose(this._startSearchingTimer);\n        this._toDispose.dispose();\n    }\n    _onStateChanged(e) {\n        if (this._isDisposed) {\n            // The find model is disposed during a find state changed event\n            return;\n        }\n        if (!this._editor.hasModel()) {\n            // The find model will be disposed momentarily\n            return;\n        }\n        if (e.searchString || e.isReplaceRevealed || e.isRegex || e.wholeWord || e.matchCase || e.searchScope) {\n            const model = this._editor.getModel();\n            if (model.isTooLargeForSyncing()) {\n                this._startSearchingTimer.cancel();\n                this._startSearchingTimer.setIfNotSet(() => {\n                    if (e.searchScope) {\n                        this.research(e.moveCursor, this._state.searchScope);\n                    }\n                    else {\n                        this.research(e.moveCursor);\n                    }\n                }, RESEARCH_DELAY);\n            }\n            else {\n                if (e.searchScope) {\n                    this.research(e.moveCursor, this._state.searchScope);\n                }\n                else {\n                    this.research(e.moveCursor);\n                }\n            }\n        }\n    }\n    static _getSearchRange(model, findScope) {\n        // If we have set now or before a find scope, use it for computing the search range\n        if (findScope) {\n            return findScope;\n        }\n        return model.getFullModelRange();\n    }\n    research(moveCursor, newFindScope) {\n        let findScopes = null;\n        if (typeof newFindScope !== 'undefined') {\n            if (newFindScope !== null) {\n                if (!Array.isArray(newFindScope)) {\n                    findScopes = [newFindScope];\n                }\n                else {\n                    findScopes = newFindScope;\n                }\n            }\n        }\n        else {\n            findScopes = this._decorations.getFindScopes();\n        }\n        if (findScopes !== null) {\n            findScopes = findScopes.map(findScope => {\n                if (findScope.startLineNumber !== findScope.endLineNumber) {\n                    let endLineNumber = findScope.endLineNumber;\n                    if (findScope.endColumn === 1) {\n                        endLineNumber = endLineNumber - 1;\n                    }\n                    return new Range(findScope.startLineNumber, 1, endLineNumber, this._editor.getModel().getLineMaxColumn(endLineNumber));\n                }\n                return findScope;\n            });\n        }\n        const findMatches = this._findMatches(findScopes, false, MATCHES_LIMIT);\n        this._decorations.set(findMatches, findScopes);\n        const editorSelection = this._editor.getSelection();\n        let currentMatchesPosition = this._decorations.getCurrentMatchesPosition(editorSelection);\n        if (currentMatchesPosition === 0 && findMatches.length > 0) {\n            // current selection is not on top of a match\n            // try to find its nearest result from the top of the document\n            const matchAfterSelection = findFirstIdxMonotonousOrArrLen(findMatches.map(match => match.range), range => Range.compareRangesUsingStarts(range, editorSelection) >= 0);\n            currentMatchesPosition = matchAfterSelection > 0 ? matchAfterSelection - 1 + 1 /** match position is one based */ : currentMatchesPosition;\n        }\n        this._state.changeMatchInfo(currentMatchesPosition, this._decorations.getCount(), undefined);\n        if (moveCursor && this._editor.getOption(41 /* EditorOption.find */).cursorMoveOnType) {\n            this._moveToNextMatch(this._decorations.getStartPosition());\n        }\n    }\n    _hasMatches() {\n        return (this._state.matchesCount > 0);\n    }\n    _cannotFind() {\n        if (!this._hasMatches()) {\n            const findScope = this._decorations.getFindScope();\n            if (findScope) {\n                // Reveal the selection so user is reminded that 'selection find' is on.\n                this._editor.revealRangeInCenterIfOutsideViewport(findScope, 0 /* ScrollType.Smooth */);\n            }\n            return true;\n        }\n        return false;\n    }\n    _setCurrentFindMatch(match) {\n        const matchesPosition = this._decorations.setCurrentFindMatch(match);\n        this._state.changeMatchInfo(matchesPosition, this._decorations.getCount(), match);\n        this._editor.setSelection(match);\n        this._editor.revealRangeInCenterIfOutsideViewport(match, 0 /* ScrollType.Smooth */);\n    }\n    _prevSearchPosition(before) {\n        const isUsingLineStops = this._state.isRegex && (this._state.searchString.indexOf('^') >= 0\n            || this._state.searchString.indexOf('$') >= 0);\n        let { lineNumber, column } = before;\n        const model = this._editor.getModel();\n        if (isUsingLineStops || column === 1) {\n            if (lineNumber === 1) {\n                lineNumber = model.getLineCount();\n            }\n            else {\n                lineNumber--;\n            }\n            column = model.getLineMaxColumn(lineNumber);\n        }\n        else {\n            column--;\n        }\n        return new Position(lineNumber, column);\n    }\n    _moveToPrevMatch(before, isRecursed = false) {\n        if (!this._state.canNavigateBack()) {\n            // we are beyond the first matched find result\n            // instead of doing nothing, we should refocus the first item\n            const nextMatchRange = this._decorations.matchAfterPosition(before);\n            if (nextMatchRange) {\n                this._setCurrentFindMatch(nextMatchRange);\n            }\n            return;\n        }\n        if (this._decorations.getCount() < MATCHES_LIMIT) {\n            let prevMatchRange = this._decorations.matchBeforePosition(before);\n            if (prevMatchRange && prevMatchRange.isEmpty() && prevMatchRange.getStartPosition().equals(before)) {\n                before = this._prevSearchPosition(before);\n                prevMatchRange = this._decorations.matchBeforePosition(before);\n            }\n            if (prevMatchRange) {\n                this._setCurrentFindMatch(prevMatchRange);\n            }\n            return;\n        }\n        if (this._cannotFind()) {\n            return;\n        }\n        const findScope = this._decorations.getFindScope();\n        const searchRange = FindModelBoundToEditorModel._getSearchRange(this._editor.getModel(), findScope);\n        // ...(----)...|...\n        if (searchRange.getEndPosition().isBefore(before)) {\n            before = searchRange.getEndPosition();\n        }\n        // ...|...(----)...\n        if (before.isBefore(searchRange.getStartPosition())) {\n            before = searchRange.getEndPosition();\n        }\n        const { lineNumber, column } = before;\n        const model = this._editor.getModel();\n        let position = new Position(lineNumber, column);\n        let prevMatch = model.findPreviousMatch(this._state.searchString, position, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(131 /* EditorOption.wordSeparators */) : null, false);\n        if (prevMatch && prevMatch.range.isEmpty() && prevMatch.range.getStartPosition().equals(position)) {\n            // Looks like we're stuck at this position, unacceptable!\n            position = this._prevSearchPosition(position);\n            prevMatch = model.findPreviousMatch(this._state.searchString, position, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(131 /* EditorOption.wordSeparators */) : null, false);\n        }\n        if (!prevMatch) {\n            // there is precisely one match and selection is on top of it\n            return;\n        }\n        if (!isRecursed && !searchRange.containsRange(prevMatch.range)) {\n            return this._moveToPrevMatch(prevMatch.range.getStartPosition(), true);\n        }\n        this._setCurrentFindMatch(prevMatch.range);\n    }\n    moveToPrevMatch() {\n        this._moveToPrevMatch(this._editor.getSelection().getStartPosition());\n    }\n    _nextSearchPosition(after) {\n        const isUsingLineStops = this._state.isRegex && (this._state.searchString.indexOf('^') >= 0\n            || this._state.searchString.indexOf('$') >= 0);\n        let { lineNumber, column } = after;\n        const model = this._editor.getModel();\n        if (isUsingLineStops || column === model.getLineMaxColumn(lineNumber)) {\n            if (lineNumber === model.getLineCount()) {\n                lineNumber = 1;\n            }\n            else {\n                lineNumber++;\n            }\n            column = 1;\n        }\n        else {\n            column++;\n        }\n        return new Position(lineNumber, column);\n    }\n    _moveToNextMatch(after) {\n        if (!this._state.canNavigateForward()) {\n            // we are beyond the last matched find result\n            // instead of doing nothing, we should refocus the last item\n            const prevMatchRange = this._decorations.matchBeforePosition(after);\n            if (prevMatchRange) {\n                this._setCurrentFindMatch(prevMatchRange);\n            }\n            return;\n        }\n        if (this._decorations.getCount() < MATCHES_LIMIT) {\n            let nextMatchRange = this._decorations.matchAfterPosition(after);\n            if (nextMatchRange && nextMatchRange.isEmpty() && nextMatchRange.getStartPosition().equals(after)) {\n                // Looks like we're stuck at this position, unacceptable!\n                after = this._nextSearchPosition(after);\n                nextMatchRange = this._decorations.matchAfterPosition(after);\n            }\n            if (nextMatchRange) {\n                this._setCurrentFindMatch(nextMatchRange);\n            }\n            return;\n        }\n        const nextMatch = this._getNextMatch(after, false, true);\n        if (nextMatch) {\n            this._setCurrentFindMatch(nextMatch.range);\n        }\n    }\n    _getNextMatch(after, captureMatches, forceMove, isRecursed = false) {\n        if (this._cannotFind()) {\n            return null;\n        }\n        const findScope = this._decorations.getFindScope();\n        const searchRange = FindModelBoundToEditorModel._getSearchRange(this._editor.getModel(), findScope);\n        // ...(----)...|...\n        if (searchRange.getEndPosition().isBefore(after)) {\n            after = searchRange.getStartPosition();\n        }\n        // ...|...(----)...\n        if (after.isBefore(searchRange.getStartPosition())) {\n            after = searchRange.getStartPosition();\n        }\n        const { lineNumber, column } = after;\n        const model = this._editor.getModel();\n        let position = new Position(lineNumber, column);\n        let nextMatch = model.findNextMatch(this._state.searchString, position, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(131 /* EditorOption.wordSeparators */) : null, captureMatches);\n        if (forceMove && nextMatch && nextMatch.range.isEmpty() && nextMatch.range.getStartPosition().equals(position)) {\n            // Looks like we're stuck at this position, unacceptable!\n            position = this._nextSearchPosition(position);\n            nextMatch = model.findNextMatch(this._state.searchString, position, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(131 /* EditorOption.wordSeparators */) : null, captureMatches);\n        }\n        if (!nextMatch) {\n            // there is precisely one match and selection is on top of it\n            return null;\n        }\n        if (!isRecursed && !searchRange.containsRange(nextMatch.range)) {\n            return this._getNextMatch(nextMatch.range.getEndPosition(), captureMatches, forceMove, true);\n        }\n        return nextMatch;\n    }\n    moveToNextMatch() {\n        this._moveToNextMatch(this._editor.getSelection().getEndPosition());\n    }\n    _moveToMatch(index) {\n        const decorationRange = this._decorations.getDecorationRangeAt(index);\n        if (decorationRange) {\n            this._setCurrentFindMatch(decorationRange);\n        }\n    }\n    moveToMatch(index) {\n        this._moveToMatch(index);\n    }\n    _getReplacePattern() {\n        if (this._state.isRegex) {\n            return parseReplaceString(this._state.replaceString);\n        }\n        return ReplacePattern.fromStaticValue(this._state.replaceString);\n    }\n    replace() {\n        if (!this._hasMatches()) {\n            return;\n        }\n        const replacePattern = this._getReplacePattern();\n        const selection = this._editor.getSelection();\n        const nextMatch = this._getNextMatch(selection.getStartPosition(), true, false);\n        if (nextMatch) {\n            if (selection.equalsRange(nextMatch.range)) {\n                // selection sits on a find match => replace it!\n                const replaceString = replacePattern.buildReplaceString(nextMatch.matches, this._state.preserveCase);\n                const command = new ReplaceCommand(selection, replaceString);\n                this._executeEditorCommand('replace', command);\n                this._decorations.setStartPosition(new Position(selection.startLineNumber, selection.startColumn + replaceString.length));\n                this.research(true);\n            }\n            else {\n                this._decorations.setStartPosition(this._editor.getPosition());\n                this._setCurrentFindMatch(nextMatch.range);\n            }\n        }\n    }\n    _findMatches(findScopes, captureMatches, limitResultCount) {\n        const searchRanges = (findScopes || [null]).map((scope) => FindModelBoundToEditorModel._getSearchRange(this._editor.getModel(), scope));\n        return this._editor.getModel().findMatches(this._state.searchString, searchRanges, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(131 /* EditorOption.wordSeparators */) : null, captureMatches, limitResultCount);\n    }\n    replaceAll() {\n        if (!this._hasMatches()) {\n            return;\n        }\n        const findScopes = this._decorations.getFindScopes();\n        if (findScopes === null && this._state.matchesCount >= MATCHES_LIMIT) {\n            // Doing a replace on the entire file that is over ${MATCHES_LIMIT} matches\n            this._largeReplaceAll();\n        }\n        else {\n            this._regularReplaceAll(findScopes);\n        }\n        this.research(false);\n    }\n    _largeReplaceAll() {\n        const searchParams = new SearchParams(this._state.searchString, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(131 /* EditorOption.wordSeparators */) : null);\n        const searchData = searchParams.parseSearchRequest();\n        if (!searchData) {\n            return;\n        }\n        let searchRegex = searchData.regex;\n        if (!searchRegex.multiline) {\n            let mod = 'mu';\n            if (searchRegex.ignoreCase) {\n                mod += 'i';\n            }\n            if (searchRegex.global) {\n                mod += 'g';\n            }\n            searchRegex = new RegExp(searchRegex.source, mod);\n        }\n        const model = this._editor.getModel();\n        const modelText = model.getValue(1 /* EndOfLinePreference.LF */);\n        const fullModelRange = model.getFullModelRange();\n        const replacePattern = this._getReplacePattern();\n        let resultText;\n        const preserveCase = this._state.preserveCase;\n        if (replacePattern.hasReplacementPatterns || preserveCase) {\n            resultText = modelText.replace(searchRegex, function () {\n                return replacePattern.buildReplaceString(arguments, preserveCase);\n            });\n        }\n        else {\n            resultText = modelText.replace(searchRegex, replacePattern.buildReplaceString(null, preserveCase));\n        }\n        const command = new ReplaceCommandThatPreservesSelection(fullModelRange, resultText, this._editor.getSelection());\n        this._executeEditorCommand('replaceAll', command);\n    }\n    _regularReplaceAll(findScopes) {\n        const replacePattern = this._getReplacePattern();\n        // Get all the ranges (even more than the highlighted ones)\n        const matches = this._findMatches(findScopes, replacePattern.hasReplacementPatterns || this._state.preserveCase, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */);\n        const replaceStrings = [];\n        for (let i = 0, len = matches.length; i < len; i++) {\n            replaceStrings[i] = replacePattern.buildReplaceString(matches[i].matches, this._state.preserveCase);\n        }\n        const command = new ReplaceAllCommand(this._editor.getSelection(), matches.map(m => m.range), replaceStrings);\n        this._executeEditorCommand('replaceAll', command);\n    }\n    selectAllMatches() {\n        if (!this._hasMatches()) {\n            return;\n        }\n        const findScopes = this._decorations.getFindScopes();\n        // Get all the ranges (even more than the highlighted ones)\n        const matches = this._findMatches(findScopes, false, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */);\n        let selections = matches.map(m => new Selection(m.range.startLineNumber, m.range.startColumn, m.range.endLineNumber, m.range.endColumn));\n        // If one of the ranges is the editor selection, then maintain it as primary\n        const editorSelection = this._editor.getSelection();\n        for (let i = 0, len = selections.length; i < len; i++) {\n            const sel = selections[i];\n            if (sel.equalsRange(editorSelection)) {\n                selections = [editorSelection].concat(selections.slice(0, i)).concat(selections.slice(i + 1));\n                break;\n            }\n        }\n        this._editor.setSelections(selections);\n    }\n    _executeEditorCommand(source, command) {\n        try {\n            this._ignoreModelContentChanged = true;\n            this._editor.pushUndoStop();\n            this._editor.executeCommand(source, command);\n            this._editor.pushUndoStop();\n        }\n        finally {\n            this._ignoreModelContentChanged = false;\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/find/browser/findOptionsWidget.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .findOptionsWidget {\n\tbackground-color: var(--vscode-editorWidget-background);\n\tcolor: var(--vscode-editorWidget-foreground);\n\tbox-shadow: 0 0 8px 2px var(--vscode-widget-shadow);\n\tborder: 2px solid var(--vscode-contrastBorder);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/find/browser/findOptionsWidget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../../../base/browser/dom.js';\nimport './findOptionsWidget.css';\nimport { CaseSensitiveToggle, RegexToggle, WholeWordsToggle } from '../../../../base/browser/ui/findinput/findInputToggles.js';\nimport { Widget } from '../../../../base/browser/ui/widget.js';\nimport { RunOnceScheduler } from '../../../../base/common/async.js';\nimport { FIND_IDS } from './findModel.js';\nimport { asCssVariable, inputActiveOptionBackground, inputActiveOptionBorder, inputActiveOptionForeground } from '../../../../platform/theme/common/colorRegistry.js';\nimport { createInstantHoverDelegate } from '../../../../base/browser/ui/hover/hoverDelegateFactory.js';\nexport class FindOptionsWidget extends Widget {\n    constructor(editor, state, keybindingService) {\n        super();\n        this._hideSoon = this._register(new RunOnceScheduler(() => this._hide(), 2000));\n        this._isVisible = false;\n        this._editor = editor;\n        this._state = state;\n        this._keybindingService = keybindingService;\n        this._domNode = document.createElement('div');\n        this._domNode.className = 'findOptionsWidget';\n        this._domNode.style.display = 'none';\n        this._domNode.style.top = '10px';\n        this._domNode.style.zIndex = '12';\n        this._domNode.setAttribute('role', 'presentation');\n        this._domNode.setAttribute('aria-hidden', 'true');\n        const toggleStyles = {\n            inputActiveOptionBorder: asCssVariable(inputActiveOptionBorder),\n            inputActiveOptionForeground: asCssVariable(inputActiveOptionForeground),\n            inputActiveOptionBackground: asCssVariable(inputActiveOptionBackground),\n        };\n        const hoverDelegate = this._register(createInstantHoverDelegate());\n        this.caseSensitive = this._register(new CaseSensitiveToggle({\n            appendTitle: this._keybindingLabelFor(FIND_IDS.ToggleCaseSensitiveCommand),\n            isChecked: this._state.matchCase,\n            hoverDelegate,\n            ...toggleStyles\n        }));\n        this._domNode.appendChild(this.caseSensitive.domNode);\n        this._register(this.caseSensitive.onChange(() => {\n            this._state.change({\n                matchCase: this.caseSensitive.checked\n            }, false);\n        }));\n        this.wholeWords = this._register(new WholeWordsToggle({\n            appendTitle: this._keybindingLabelFor(FIND_IDS.ToggleWholeWordCommand),\n            isChecked: this._state.wholeWord,\n            hoverDelegate,\n            ...toggleStyles\n        }));\n        this._domNode.appendChild(this.wholeWords.domNode);\n        this._register(this.wholeWords.onChange(() => {\n            this._state.change({\n                wholeWord: this.wholeWords.checked\n            }, false);\n        }));\n        this.regex = this._register(new RegexToggle({\n            appendTitle: this._keybindingLabelFor(FIND_IDS.ToggleRegexCommand),\n            isChecked: this._state.isRegex,\n            hoverDelegate,\n            ...toggleStyles\n        }));\n        this._domNode.appendChild(this.regex.domNode);\n        this._register(this.regex.onChange(() => {\n            this._state.change({\n                isRegex: this.regex.checked\n            }, false);\n        }));\n        this._editor.addOverlayWidget(this);\n        this._register(this._state.onFindReplaceStateChange((e) => {\n            let somethingChanged = false;\n            if (e.isRegex) {\n                this.regex.checked = this._state.isRegex;\n                somethingChanged = true;\n            }\n            if (e.wholeWord) {\n                this.wholeWords.checked = this._state.wholeWord;\n                somethingChanged = true;\n            }\n            if (e.matchCase) {\n                this.caseSensitive.checked = this._state.matchCase;\n                somethingChanged = true;\n            }\n            if (!this._state.isRevealed && somethingChanged) {\n                this._revealTemporarily();\n            }\n        }));\n        this._register(dom.addDisposableListener(this._domNode, dom.EventType.MOUSE_LEAVE, (e) => this._onMouseLeave()));\n        this._register(dom.addDisposableListener(this._domNode, 'mouseover', (e) => this._onMouseOver()));\n    }\n    _keybindingLabelFor(actionId) {\n        const kb = this._keybindingService.lookupKeybinding(actionId);\n        if (!kb) {\n            return '';\n        }\n        return ` (${kb.getLabel()})`;\n    }\n    dispose() {\n        this._editor.removeOverlayWidget(this);\n        super.dispose();\n    }\n    // ----- IOverlayWidget API\n    getId() {\n        return FindOptionsWidget.ID;\n    }\n    getDomNode() {\n        return this._domNode;\n    }\n    getPosition() {\n        return {\n            preference: 0 /* OverlayWidgetPositionPreference.TOP_RIGHT_CORNER */\n        };\n    }\n    highlightFindOptions() {\n        this._revealTemporarily();\n    }\n    _revealTemporarily() {\n        this._show();\n        this._hideSoon.schedule();\n    }\n    _onMouseLeave() {\n        this._hideSoon.schedule();\n    }\n    _onMouseOver() {\n        this._hideSoon.cancel();\n    }\n    _show() {\n        if (this._isVisible) {\n            return;\n        }\n        this._isVisible = true;\n        this._domNode.style.display = 'block';\n    }\n    _hide() {\n        if (!this._isVisible) {\n            return;\n        }\n        this._isVisible = false;\n        this._domNode.style.display = 'none';\n    }\n}\nFindOptionsWidget.ID = 'editor.contrib.findOptionsWidget';\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/find/browser/findState.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../../../base/common/event.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { Range } from '../../../common/core/range.js';\nimport { MATCHES_LIMIT } from './findModel.js';\nfunction effectiveOptionValue(override, value) {\n    if (override === 1 /* FindOptionOverride.True */) {\n        return true;\n    }\n    if (override === 2 /* FindOptionOverride.False */) {\n        return false;\n    }\n    return value;\n}\nexport class FindReplaceState extends Disposable {\n    get searchString() { return this._searchString; }\n    get replaceString() { return this._replaceString; }\n    get isRevealed() { return this._isRevealed; }\n    get isReplaceRevealed() { return this._isReplaceRevealed; }\n    get isRegex() { return effectiveOptionValue(this._isRegexOverride, this._isRegex); }\n    get wholeWord() { return effectiveOptionValue(this._wholeWordOverride, this._wholeWord); }\n    get matchCase() { return effectiveOptionValue(this._matchCaseOverride, this._matchCase); }\n    get preserveCase() { return effectiveOptionValue(this._preserveCaseOverride, this._preserveCase); }\n    get actualIsRegex() { return this._isRegex; }\n    get actualWholeWord() { return this._wholeWord; }\n    get actualMatchCase() { return this._matchCase; }\n    get actualPreserveCase() { return this._preserveCase; }\n    get searchScope() { return this._searchScope; }\n    get matchesPosition() { return this._matchesPosition; }\n    get matchesCount() { return this._matchesCount; }\n    get currentMatch() { return this._currentMatch; }\n    constructor() {\n        super();\n        this._onFindReplaceStateChange = this._register(new Emitter());\n        this.onFindReplaceStateChange = this._onFindReplaceStateChange.event;\n        this._searchString = '';\n        this._replaceString = '';\n        this._isRevealed = false;\n        this._isReplaceRevealed = false;\n        this._isRegex = false;\n        this._isRegexOverride = 0 /* FindOptionOverride.NotSet */;\n        this._wholeWord = false;\n        this._wholeWordOverride = 0 /* FindOptionOverride.NotSet */;\n        this._matchCase = false;\n        this._matchCaseOverride = 0 /* FindOptionOverride.NotSet */;\n        this._preserveCase = false;\n        this._preserveCaseOverride = 0 /* FindOptionOverride.NotSet */;\n        this._searchScope = null;\n        this._matchesPosition = 0;\n        this._matchesCount = 0;\n        this._currentMatch = null;\n        this._loop = true;\n        this._isSearching = false;\n        this._filters = null;\n    }\n    changeMatchInfo(matchesPosition, matchesCount, currentMatch) {\n        const changeEvent = {\n            moveCursor: false,\n            updateHistory: false,\n            searchString: false,\n            replaceString: false,\n            isRevealed: false,\n            isReplaceRevealed: false,\n            isRegex: false,\n            wholeWord: false,\n            matchCase: false,\n            preserveCase: false,\n            searchScope: false,\n            matchesPosition: false,\n            matchesCount: false,\n            currentMatch: false,\n            loop: false,\n            isSearching: false,\n            filters: false\n        };\n        let somethingChanged = false;\n        if (matchesCount === 0) {\n            matchesPosition = 0;\n        }\n        if (matchesPosition > matchesCount) {\n            matchesPosition = matchesCount;\n        }\n        if (this._matchesPosition !== matchesPosition) {\n            this._matchesPosition = matchesPosition;\n            changeEvent.matchesPosition = true;\n            somethingChanged = true;\n        }\n        if (this._matchesCount !== matchesCount) {\n            this._matchesCount = matchesCount;\n            changeEvent.matchesCount = true;\n            somethingChanged = true;\n        }\n        if (typeof currentMatch !== 'undefined') {\n            if (!Range.equalsRange(this._currentMatch, currentMatch)) {\n                this._currentMatch = currentMatch;\n                changeEvent.currentMatch = true;\n                somethingChanged = true;\n            }\n        }\n        if (somethingChanged) {\n            this._onFindReplaceStateChange.fire(changeEvent);\n        }\n    }\n    change(newState, moveCursor, updateHistory = true) {\n        var _a;\n        const changeEvent = {\n            moveCursor: moveCursor,\n            updateHistory: updateHistory,\n            searchString: false,\n            replaceString: false,\n            isRevealed: false,\n            isReplaceRevealed: false,\n            isRegex: false,\n            wholeWord: false,\n            matchCase: false,\n            preserveCase: false,\n            searchScope: false,\n            matchesPosition: false,\n            matchesCount: false,\n            currentMatch: false,\n            loop: false,\n            isSearching: false,\n            filters: false\n        };\n        let somethingChanged = false;\n        const oldEffectiveIsRegex = this.isRegex;\n        const oldEffectiveWholeWords = this.wholeWord;\n        const oldEffectiveMatchCase = this.matchCase;\n        const oldEffectivePreserveCase = this.preserveCase;\n        if (typeof newState.searchString !== 'undefined') {\n            if (this._searchString !== newState.searchString) {\n                this._searchString = newState.searchString;\n                changeEvent.searchString = true;\n                somethingChanged = true;\n            }\n        }\n        if (typeof newState.replaceString !== 'undefined') {\n            if (this._replaceString !== newState.replaceString) {\n                this._replaceString = newState.replaceString;\n                changeEvent.replaceString = true;\n                somethingChanged = true;\n            }\n        }\n        if (typeof newState.isRevealed !== 'undefined') {\n            if (this._isRevealed !== newState.isRevealed) {\n                this._isRevealed = newState.isRevealed;\n                changeEvent.isRevealed = true;\n                somethingChanged = true;\n            }\n        }\n        if (typeof newState.isReplaceRevealed !== 'undefined') {\n            if (this._isReplaceRevealed !== newState.isReplaceRevealed) {\n                this._isReplaceRevealed = newState.isReplaceRevealed;\n                changeEvent.isReplaceRevealed = true;\n                somethingChanged = true;\n            }\n        }\n        if (typeof newState.isRegex !== 'undefined') {\n            this._isRegex = newState.isRegex;\n        }\n        if (typeof newState.wholeWord !== 'undefined') {\n            this._wholeWord = newState.wholeWord;\n        }\n        if (typeof newState.matchCase !== 'undefined') {\n            this._matchCase = newState.matchCase;\n        }\n        if (typeof newState.preserveCase !== 'undefined') {\n            this._preserveCase = newState.preserveCase;\n        }\n        if (typeof newState.searchScope !== 'undefined') {\n            if (!((_a = newState.searchScope) === null || _a === void 0 ? void 0 : _a.every((newSearchScope) => {\n                var _a;\n                return (_a = this._searchScope) === null || _a === void 0 ? void 0 : _a.some(existingSearchScope => {\n                    return !Range.equalsRange(existingSearchScope, newSearchScope);\n                });\n            }))) {\n                this._searchScope = newState.searchScope;\n                changeEvent.searchScope = true;\n                somethingChanged = true;\n            }\n        }\n        if (typeof newState.loop !== 'undefined') {\n            if (this._loop !== newState.loop) {\n                this._loop = newState.loop;\n                changeEvent.loop = true;\n                somethingChanged = true;\n            }\n        }\n        if (typeof newState.isSearching !== 'undefined') {\n            if (this._isSearching !== newState.isSearching) {\n                this._isSearching = newState.isSearching;\n                changeEvent.isSearching = true;\n                somethingChanged = true;\n            }\n        }\n        if (typeof newState.filters !== 'undefined') {\n            if (this._filters) {\n                this._filters.update(newState.filters);\n            }\n            else {\n                this._filters = newState.filters;\n            }\n            changeEvent.filters = true;\n            somethingChanged = true;\n        }\n        // Overrides get set when they explicitly come in and get reset anytime something else changes\n        this._isRegexOverride = (typeof newState.isRegexOverride !== 'undefined' ? newState.isRegexOverride : 0 /* FindOptionOverride.NotSet */);\n        this._wholeWordOverride = (typeof newState.wholeWordOverride !== 'undefined' ? newState.wholeWordOverride : 0 /* FindOptionOverride.NotSet */);\n        this._matchCaseOverride = (typeof newState.matchCaseOverride !== 'undefined' ? newState.matchCaseOverride : 0 /* FindOptionOverride.NotSet */);\n        this._preserveCaseOverride = (typeof newState.preserveCaseOverride !== 'undefined' ? newState.preserveCaseOverride : 0 /* FindOptionOverride.NotSet */);\n        if (oldEffectiveIsRegex !== this.isRegex) {\n            somethingChanged = true;\n            changeEvent.isRegex = true;\n        }\n        if (oldEffectiveWholeWords !== this.wholeWord) {\n            somethingChanged = true;\n            changeEvent.wholeWord = true;\n        }\n        if (oldEffectiveMatchCase !== this.matchCase) {\n            somethingChanged = true;\n            changeEvent.matchCase = true;\n        }\n        if (oldEffectivePreserveCase !== this.preserveCase) {\n            somethingChanged = true;\n            changeEvent.preserveCase = true;\n        }\n        if (somethingChanged) {\n            this._onFindReplaceStateChange.fire(changeEvent);\n        }\n    }\n    canNavigateBack() {\n        return this.canNavigateInLoop() || (this.matchesPosition !== 1);\n    }\n    canNavigateForward() {\n        return this.canNavigateInLoop() || (this.matchesPosition < this.matchesCount);\n    }\n    canNavigateInLoop() {\n        return this._loop || (this.matchesCount >= MATCHES_LIMIT);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/find/browser/findWidget.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n/* Find widget */\n.monaco-editor .find-widget {\n\tposition: absolute;\n\tz-index: 35;\n\theight: 33px;\n\toverflow: hidden;\n\tline-height: 19px;\n\ttransition: transform 200ms linear;\n\tpadding: 0 4px;\n\tbox-sizing: border-box;\n\ttransform: translateY(calc(-100% - 10px)); /* shadow (10px) */\n\tbox-shadow: 0 0 8px 2px var(--vscode-widget-shadow);\n\tcolor: var(--vscode-editorWidget-foreground);\n\tborder-left: 1px solid var(--vscode-widget-border);\n\tborder-right: 1px solid var(--vscode-widget-border);\n\tborder-bottom: 1px solid var(--vscode-widget-border);\n\tborder-bottom-left-radius: 4px;\n\tborder-bottom-right-radius: 4px;\n\tbackground-color: var(--vscode-editorWidget-background);\n}\n\n.monaco-workbench.reduce-motion .monaco-editor .find-widget {\n\ttransition: transform 0ms linear;\n}\n\n.monaco-editor .find-widget textarea {\n\tmargin: 0px;\n}\n\n.monaco-editor .find-widget.hiddenEditor {\n\tdisplay: none;\n}\n\n/* Find widget when replace is toggled on */\n.monaco-editor .find-widget.replaceToggled > .replace-part {\n\tdisplay: flex;\n}\n\n.monaco-editor .find-widget.visible  {\n\ttransform: translateY(0);\n}\n\n/* This outline-color rule is used to override the outline color for synthetic-focus find input. */\n.monaco-editor .find-widget .monaco-inputbox.synthetic-focus {\n\toutline: 1px solid -webkit-focus-ring-color;\n\toutline-offset: -1px;\n\toutline-color: var(--vscode-focusBorder);\n}\n\n.monaco-editor .find-widget .monaco-inputbox .input {\n\tbackground-color: transparent;\n\tmin-height: 0;\n}\n\n.monaco-editor .find-widget .monaco-findInput .input {\n\tfont-size: 13px;\n}\n\n.monaco-editor .find-widget > .find-part,\n.monaco-editor .find-widget > .replace-part {\n\tmargin: 3px 25px 0 17px;\n\tfont-size: 12px;\n\tdisplay: flex;\n}\n\n.monaco-editor .find-widget > .find-part .monaco-inputbox,\n.monaco-editor .find-widget > .replace-part .monaco-inputbox {\n\tmin-height: 25px;\n}\n\n\n.monaco-editor .find-widget > .replace-part .monaco-inputbox > .ibwrapper > .mirror {\n\tpadding-right: 22px;\n}\n\n.monaco-editor .find-widget > .find-part .monaco-inputbox > .ibwrapper > .input,\n.monaco-editor .find-widget > .find-part .monaco-inputbox > .ibwrapper > .mirror,\n.monaco-editor .find-widget > .replace-part .monaco-inputbox > .ibwrapper > .input,\n.monaco-editor .find-widget > .replace-part .monaco-inputbox > .ibwrapper > .mirror {\n\tpadding-top: 2px;\n\tpadding-bottom: 2px;\n}\n\n.monaco-editor .find-widget > .find-part .find-actions {\n\theight: 25px;\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.monaco-editor .find-widget > .replace-part .replace-actions {\n\theight: 25px;\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.monaco-editor .find-widget .monaco-findInput {\n\tvertical-align: middle;\n\tdisplay: flex;\n\tflex:1;\n}\n\n.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element {\n\t/* Make sure textarea inherits the width correctly */\n\twidth: 100%;\n}\n\n.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element .scrollbar.vertical {\n\t/* Hide vertical scrollbar */\n\topacity: 0;\n}\n\n.monaco-editor .find-widget .matchesCount {\n\tdisplay: flex;\n\tflex: initial;\n\tmargin: 0 0 0 3px;\n\tpadding: 2px 0 0 2px;\n\theight: 25px;\n\tvertical-align: middle;\n\tbox-sizing: border-box;\n\ttext-align: center;\n\tline-height: 23px;\n}\n\n.monaco-editor .find-widget .button {\n\twidth: 16px;\n\theight: 16px;\n\tpadding: 3px;\n\tborder-radius: 5px;\n\tdisplay: flex;\n\tflex: initial;\n\tmargin-left: 3px;\n\tbackground-position: center center;\n\tbackground-repeat: no-repeat;\n\tcursor: pointer;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n/* find in selection button */\n.monaco-editor .find-widget .codicon-find-selection {\n\twidth: 22px;\n\theight: 22px;\n\tpadding: 3px;\n\tborder-radius: 5px;\n}\n\n.monaco-editor .find-widget .button.left {\n\tmargin-left: 0;\n\tmargin-right: 3px;\n}\n\n.monaco-editor .find-widget .button.wide {\n\twidth: auto;\n\tpadding: 1px 6px;\n\ttop: -1px;\n}\n\n.monaco-editor .find-widget .button.toggle {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 3px;\n\twidth: 18px;\n\theight: 100%;\n\tborder-radius: 0;\n\tbox-sizing: border-box;\n}\n\n.monaco-editor .find-widget .button.toggle.disabled {\n\tdisplay: none;\n}\n\n.monaco-editor .find-widget .disabled {\n\tcolor: var(--vscode-disabledForeground);\n\tcursor: default;\n}\n\n.monaco-editor .find-widget > .replace-part {\n\tdisplay: none;\n}\n\n.monaco-editor .find-widget > .replace-part > .monaco-findInput {\n\tposition: relative;\n\tdisplay: flex;\n\tvertical-align: middle;\n\tflex: auto;\n\tflex-grow: 0;\n\tflex-shrink: 0;\n}\n\n.monaco-editor .find-widget > .replace-part > .monaco-findInput > .controls {\n\tposition: absolute;\n\ttop: 3px;\n\tright: 2px;\n}\n\n/* REDUCED */\n.monaco-editor .find-widget.reduced-find-widget .matchesCount {\n\tdisplay:none;\n}\n\n/* NARROW (SMALLER THAN REDUCED) */\n.monaco-editor .find-widget.narrow-find-widget {\n\tmax-width: 257px !important;\n}\n\n/* COLLAPSED (SMALLER THAN NARROW) */\n.monaco-editor .find-widget.collapsed-find-widget {\n\tmax-width: 170px !important;\n}\n\n.monaco-editor .find-widget.collapsed-find-widget .button.previous,\n.monaco-editor .find-widget.collapsed-find-widget .button.next,\n.monaco-editor .find-widget.collapsed-find-widget .button.replace,\n.monaco-editor .find-widget.collapsed-find-widget .button.replace-all,\n.monaco-editor .find-widget.collapsed-find-widget > .find-part .monaco-findInput .controls {\n\tdisplay:none;\n}\n\n.monaco-editor .find-widget.no-results .matchesCount {\n\tcolor: var(--vscode-errorForeground);\n}\n\n.monaco-editor .findMatch {\n\tanimation-duration: 0;\n\tanimation-name: inherit !important;\n\tbackground-color: var(--vscode-editor-findMatchHighlightBackground);\n}\n\n.monaco-editor .currentFindMatch {\n\tbackground-color: var(--vscode-editor-findMatchBackground);\n\tborder: 2px solid var(--vscode-editor-findMatchBorder);\n\tpadding: 1px;\n\tbox-sizing: border-box;\n}\n\n.monaco-editor .findScope {\n\tbackground-color: var(--vscode-editor-findRangeHighlightBackground);\n}\n\n.monaco-editor .find-widget .monaco-sash {\n\tleft: 0 !important;\n\tbackground-color: var(--vscode-editorWidget-resizeBorder, var(--vscode-editorWidget-border));\n}\n\n.monaco-editor.hc-black .find-widget .button:before {\n\tposition: relative;\n\ttop: 1px;\n\tleft: 2px;\n}\n\n/* Action bars */\n.monaco-editor .find-widget .button:not(.disabled):hover,\n.monaco-editor .find-widget .codicon-find-selection:hover {\n\tbackground-color: var(--vscode-toolbar-hoverBackground) !important;\n}\n\n.monaco-editor.findMatch {\n\tbackground-color: var(--vscode-editor-findMatchHighlightBackground);\n}\n\n.monaco-editor.currentFindMatch {\n\tbackground-color: var(--vscode-editor-findMatchBackground);\n}\n\n.monaco-editor.findScope {\n\tbackground-color: var(--vscode-editor-findRangeHighlightBackground);\n}\n\n.monaco-editor.findMatch {\n\tbackground-color: var(--vscode-editorWidget-background);\n}\n\n/* Close button position. */\n.monaco-editor .find-widget > .button.codicon-widget-close {\n\tposition: absolute;\n\ttop: 5px;\n\tright: 4px;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/find/browser/findWidget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../../../base/browser/dom.js';\nimport { alert as alertFn } from '../../../../base/browser/ui/aria/aria.js';\nimport { Toggle } from '../../../../base/browser/ui/toggle/toggle.js';\nimport { Sash } from '../../../../base/browser/ui/sash/sash.js';\nimport { Widget } from '../../../../base/browser/ui/widget.js';\nimport { Delayer } from '../../../../base/common/async.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { onUnexpectedError } from '../../../../base/common/errors.js';\nimport { toDisposable } from '../../../../base/common/lifecycle.js';\nimport * as platform from '../../../../base/common/platform.js';\nimport * as strings from '../../../../base/common/strings.js';\nimport './findWidget.css';\nimport { Range } from '../../../common/core/range.js';\nimport { CONTEXT_FIND_INPUT_FOCUSED, CONTEXT_REPLACE_INPUT_FOCUSED, FIND_IDS, MATCHES_LIMIT } from './findModel.js';\nimport * as nls from '../../../../nls.js';\nimport { ContextScopedFindInput, ContextScopedReplaceInput } from '../../../../platform/history/browser/contextScopedHistoryWidget.js';\nimport { showHistoryKeybindingHint } from '../../../../platform/history/browser/historyWidgetKeybindingHint.js';\nimport { asCssVariable, contrastBorder, editorFindMatchForeground, editorFindMatchHighlightBorder, editorFindMatchHighlightForeground, editorFindRangeHighlightBorder, inputActiveOptionBackground, inputActiveOptionBorder, inputActiveOptionForeground } from '../../../../platform/theme/common/colorRegistry.js';\nimport { registerIcon, widgetClose } from '../../../../platform/theme/common/iconRegistry.js';\nimport { registerThemingParticipant } from '../../../../platform/theme/common/themeService.js';\nimport { ThemeIcon } from '../../../../base/common/themables.js';\nimport { isHighContrast } from '../../../../platform/theme/common/theme.js';\nimport { assertIsDefined } from '../../../../base/common/types.js';\nimport { defaultInputBoxStyles, defaultToggleStyles } from '../../../../platform/theme/browser/defaultStyles.js';\nimport { createInstantHoverDelegate, getDefaultHoverDelegate } from '../../../../base/browser/ui/hover/hoverDelegateFactory.js';\nconst findCollapsedIcon = registerIcon('find-collapsed', Codicon.chevronRight, nls.localize('findCollapsedIcon', 'Icon to indicate that the editor find widget is collapsed.'));\nconst findExpandedIcon = registerIcon('find-expanded', Codicon.chevronDown, nls.localize('findExpandedIcon', 'Icon to indicate that the editor find widget is expanded.'));\nexport const findSelectionIcon = registerIcon('find-selection', Codicon.selection, nls.localize('findSelectionIcon', 'Icon for \\'Find in Selection\\' in the editor find widget.'));\nexport const findReplaceIcon = registerIcon('find-replace', Codicon.replace, nls.localize('findReplaceIcon', 'Icon for \\'Replace\\' in the editor find widget.'));\nexport const findReplaceAllIcon = registerIcon('find-replace-all', Codicon.replaceAll, nls.localize('findReplaceAllIcon', 'Icon for \\'Replace All\\' in the editor find widget.'));\nexport const findPreviousMatchIcon = registerIcon('find-previous-match', Codicon.arrowUp, nls.localize('findPreviousMatchIcon', 'Icon for \\'Find Previous\\' in the editor find widget.'));\nexport const findNextMatchIcon = registerIcon('find-next-match', Codicon.arrowDown, nls.localize('findNextMatchIcon', 'Icon for \\'Find Next\\' in the editor find widget.'));\nconst NLS_FIND_DIALOG_LABEL = nls.localize('label.findDialog', \"Find / Replace\");\nconst NLS_FIND_INPUT_LABEL = nls.localize('label.find', \"Find\");\nconst NLS_FIND_INPUT_PLACEHOLDER = nls.localize('placeholder.find', \"Find\");\nconst NLS_PREVIOUS_MATCH_BTN_LABEL = nls.localize('label.previousMatchButton', \"Previous Match\");\nconst NLS_NEXT_MATCH_BTN_LABEL = nls.localize('label.nextMatchButton', \"Next Match\");\nconst NLS_TOGGLE_SELECTION_FIND_TITLE = nls.localize('label.toggleSelectionFind', \"Find in Selection\");\nconst NLS_CLOSE_BTN_LABEL = nls.localize('label.closeButton', \"Close\");\nconst NLS_REPLACE_INPUT_LABEL = nls.localize('label.replace', \"Replace\");\nconst NLS_REPLACE_INPUT_PLACEHOLDER = nls.localize('placeholder.replace', \"Replace\");\nconst NLS_REPLACE_BTN_LABEL = nls.localize('label.replaceButton', \"Replace\");\nconst NLS_REPLACE_ALL_BTN_LABEL = nls.localize('label.replaceAllButton', \"Replace All\");\nconst NLS_TOGGLE_REPLACE_MODE_BTN_LABEL = nls.localize('label.toggleReplaceButton', \"Toggle Replace\");\nconst NLS_MATCHES_COUNT_LIMIT_TITLE = nls.localize('title.matchesCountLimit', \"Only the first {0} results are highlighted, but all find operations work on the entire text.\", MATCHES_LIMIT);\nexport const NLS_MATCHES_LOCATION = nls.localize('label.matchesLocation', \"{0} of {1}\");\nexport const NLS_NO_RESULTS = nls.localize('label.noResults', \"No results\");\nconst FIND_WIDGET_INITIAL_WIDTH = 419;\nconst PART_WIDTH = 275;\nconst FIND_INPUT_AREA_WIDTH = PART_WIDTH - 54;\nlet MAX_MATCHES_COUNT_WIDTH = 69;\n// let FIND_ALL_CONTROLS_WIDTH = 17/** Find Input margin-left */ + (MAX_MATCHES_COUNT_WIDTH + 3 + 1) /** Match Results */ + 23 /** Button */ * 4 + 2/** sash */;\nconst FIND_INPUT_AREA_HEIGHT = 33; // The height of Find Widget when Replace Input is not visible.\nconst ctrlEnterReplaceAllWarningPromptedKey = 'ctrlEnterReplaceAll.windows.donotask';\nconst ctrlKeyMod = (platform.isMacintosh ? 256 /* KeyMod.WinCtrl */ : 2048 /* KeyMod.CtrlCmd */);\nexport class FindWidgetViewZone {\n    constructor(afterLineNumber) {\n        this.afterLineNumber = afterLineNumber;\n        this.heightInPx = FIND_INPUT_AREA_HEIGHT;\n        this.suppressMouseDown = false;\n        this.domNode = document.createElement('div');\n        this.domNode.className = 'dock-find-viewzone';\n    }\n}\nfunction stopPropagationForMultiLineUpwards(event, value, textarea) {\n    const isMultiline = !!value.match(/\\n/);\n    if (textarea && isMultiline && textarea.selectionStart > 0) {\n        event.stopPropagation();\n        return;\n    }\n}\nfunction stopPropagationForMultiLineDownwards(event, value, textarea) {\n    const isMultiline = !!value.match(/\\n/);\n    if (textarea && isMultiline && textarea.selectionEnd < textarea.value.length) {\n        event.stopPropagation();\n        return;\n    }\n}\nexport class FindWidget extends Widget {\n    constructor(codeEditor, controller, state, contextViewProvider, keybindingService, contextKeyService, themeService, storageService, notificationService, _hoverService) {\n        super();\n        this._hoverService = _hoverService;\n        this._cachedHeight = null;\n        this._revealTimeouts = [];\n        this._codeEditor = codeEditor;\n        this._controller = controller;\n        this._state = state;\n        this._contextViewProvider = contextViewProvider;\n        this._keybindingService = keybindingService;\n        this._contextKeyService = contextKeyService;\n        this._storageService = storageService;\n        this._notificationService = notificationService;\n        this._ctrlEnterReplaceAllWarningPrompted = !!storageService.getBoolean(ctrlEnterReplaceAllWarningPromptedKey, 0 /* StorageScope.PROFILE */);\n        this._isVisible = false;\n        this._isReplaceVisible = false;\n        this._ignoreChangeEvent = false;\n        this._updateHistoryDelayer = new Delayer(500);\n        this._register(toDisposable(() => this._updateHistoryDelayer.cancel()));\n        this._register(this._state.onFindReplaceStateChange((e) => this._onStateChanged(e)));\n        this._buildDomNode();\n        this._updateButtons();\n        this._tryUpdateWidgetWidth();\n        this._findInput.inputBox.layout();\n        this._register(this._codeEditor.onDidChangeConfiguration((e) => {\n            if (e.hasChanged(91 /* EditorOption.readOnly */)) {\n                if (this._codeEditor.getOption(91 /* EditorOption.readOnly */)) {\n                    // Hide replace part if editor becomes read only\n                    this._state.change({ isReplaceRevealed: false }, false);\n                }\n                this._updateButtons();\n            }\n            if (e.hasChanged(145 /* EditorOption.layoutInfo */)) {\n                this._tryUpdateWidgetWidth();\n            }\n            if (e.hasChanged(2 /* EditorOption.accessibilitySupport */)) {\n                this.updateAccessibilitySupport();\n            }\n            if (e.hasChanged(41 /* EditorOption.find */)) {\n                const supportLoop = this._codeEditor.getOption(41 /* EditorOption.find */).loop;\n                this._state.change({ loop: supportLoop }, false);\n                const addExtraSpaceOnTop = this._codeEditor.getOption(41 /* EditorOption.find */).addExtraSpaceOnTop;\n                if (addExtraSpaceOnTop && !this._viewZone) {\n                    this._viewZone = new FindWidgetViewZone(0);\n                    this._showViewZone();\n                }\n                if (!addExtraSpaceOnTop && this._viewZone) {\n                    this._removeViewZone();\n                }\n            }\n        }));\n        this.updateAccessibilitySupport();\n        this._register(this._codeEditor.onDidChangeCursorSelection(() => {\n            if (this._isVisible) {\n                this._updateToggleSelectionFindButton();\n            }\n        }));\n        this._register(this._codeEditor.onDidFocusEditorWidget(async () => {\n            if (this._isVisible) {\n                const globalBufferTerm = await this._controller.getGlobalBufferTerm();\n                if (globalBufferTerm && globalBufferTerm !== this._state.searchString) {\n                    this._state.change({ searchString: globalBufferTerm }, false);\n                    this._findInput.select();\n                }\n            }\n        }));\n        this._findInputFocused = CONTEXT_FIND_INPUT_FOCUSED.bindTo(contextKeyService);\n        this._findFocusTracker = this._register(dom.trackFocus(this._findInput.inputBox.inputElement));\n        this._register(this._findFocusTracker.onDidFocus(() => {\n            this._findInputFocused.set(true);\n            this._updateSearchScope();\n        }));\n        this._register(this._findFocusTracker.onDidBlur(() => {\n            this._findInputFocused.set(false);\n        }));\n        this._replaceInputFocused = CONTEXT_REPLACE_INPUT_FOCUSED.bindTo(contextKeyService);\n        this._replaceFocusTracker = this._register(dom.trackFocus(this._replaceInput.inputBox.inputElement));\n        this._register(this._replaceFocusTracker.onDidFocus(() => {\n            this._replaceInputFocused.set(true);\n            this._updateSearchScope();\n        }));\n        this._register(this._replaceFocusTracker.onDidBlur(() => {\n            this._replaceInputFocused.set(false);\n        }));\n        this._codeEditor.addOverlayWidget(this);\n        if (this._codeEditor.getOption(41 /* EditorOption.find */).addExtraSpaceOnTop) {\n            this._viewZone = new FindWidgetViewZone(0); // Put it before the first line then users can scroll beyond the first line.\n        }\n        this._register(this._codeEditor.onDidChangeModel(() => {\n            if (!this._isVisible) {\n                return;\n            }\n            this._viewZoneId = undefined;\n        }));\n        this._register(this._codeEditor.onDidScrollChange((e) => {\n            if (e.scrollTopChanged) {\n                this._layoutViewZone();\n                return;\n            }\n            // for other scroll changes, layout the viewzone in next tick to avoid ruining current rendering.\n            setTimeout(() => {\n                this._layoutViewZone();\n            }, 0);\n        }));\n    }\n    // ----- IOverlayWidget API\n    getId() {\n        return FindWidget.ID;\n    }\n    getDomNode() {\n        return this._domNode;\n    }\n    getPosition() {\n        if (this._isVisible) {\n            return {\n                preference: 0 /* OverlayWidgetPositionPreference.TOP_RIGHT_CORNER */\n            };\n        }\n        return null;\n    }\n    // ----- React to state changes\n    _onStateChanged(e) {\n        if (e.searchString) {\n            try {\n                this._ignoreChangeEvent = true;\n                this._findInput.setValue(this._state.searchString);\n            }\n            finally {\n                this._ignoreChangeEvent = false;\n            }\n            this._updateButtons();\n        }\n        if (e.replaceString) {\n            this._replaceInput.inputBox.value = this._state.replaceString;\n        }\n        if (e.isRevealed) {\n            if (this._state.isRevealed) {\n                this._reveal();\n            }\n            else {\n                this._hide(true);\n            }\n        }\n        if (e.isReplaceRevealed) {\n            if (this._state.isReplaceRevealed) {\n                if (!this._codeEditor.getOption(91 /* EditorOption.readOnly */) && !this._isReplaceVisible) {\n                    this._isReplaceVisible = true;\n                    this._replaceInput.width = dom.getTotalWidth(this._findInput.domNode);\n                    this._updateButtons();\n                    this._replaceInput.inputBox.layout();\n                }\n            }\n            else {\n                if (this._isReplaceVisible) {\n                    this._isReplaceVisible = false;\n                    this._updateButtons();\n                }\n            }\n        }\n        if ((e.isRevealed || e.isReplaceRevealed) && (this._state.isRevealed || this._state.isReplaceRevealed)) {\n            if (this._tryUpdateHeight()) {\n                this._showViewZone();\n            }\n        }\n        if (e.isRegex) {\n            this._findInput.setRegex(this._state.isRegex);\n        }\n        if (e.wholeWord) {\n            this._findInput.setWholeWords(this._state.wholeWord);\n        }\n        if (e.matchCase) {\n            this._findInput.setCaseSensitive(this._state.matchCase);\n        }\n        if (e.preserveCase) {\n            this._replaceInput.setPreserveCase(this._state.preserveCase);\n        }\n        if (e.searchScope) {\n            if (this._state.searchScope) {\n                this._toggleSelectionFind.checked = true;\n            }\n            else {\n                this._toggleSelectionFind.checked = false;\n            }\n            this._updateToggleSelectionFindButton();\n        }\n        if (e.searchString || e.matchesCount || e.matchesPosition) {\n            const showRedOutline = (this._state.searchString.length > 0 && this._state.matchesCount === 0);\n            this._domNode.classList.toggle('no-results', showRedOutline);\n            this._updateMatchesCount();\n            this._updateButtons();\n        }\n        if (e.searchString || e.currentMatch) {\n            this._layoutViewZone();\n        }\n        if (e.updateHistory) {\n            this._delayedUpdateHistory();\n        }\n        if (e.loop) {\n            this._updateButtons();\n        }\n    }\n    _delayedUpdateHistory() {\n        this._updateHistoryDelayer.trigger(this._updateHistory.bind(this)).then(undefined, onUnexpectedError);\n    }\n    _updateHistory() {\n        if (this._state.searchString) {\n            this._findInput.inputBox.addToHistory();\n        }\n        if (this._state.replaceString) {\n            this._replaceInput.inputBox.addToHistory();\n        }\n    }\n    _updateMatchesCount() {\n        this._matchesCount.style.minWidth = MAX_MATCHES_COUNT_WIDTH + 'px';\n        if (this._state.matchesCount >= MATCHES_LIMIT) {\n            this._matchesCount.title = NLS_MATCHES_COUNT_LIMIT_TITLE;\n        }\n        else {\n            this._matchesCount.title = '';\n        }\n        // remove previous content\n        if (this._matchesCount.firstChild) {\n            this._matchesCount.removeChild(this._matchesCount.firstChild);\n        }\n        let label;\n        if (this._state.matchesCount > 0) {\n            let matchesCount = String(this._state.matchesCount);\n            if (this._state.matchesCount >= MATCHES_LIMIT) {\n                matchesCount += '+';\n            }\n            let matchesPosition = String(this._state.matchesPosition);\n            if (matchesPosition === '0') {\n                matchesPosition = '?';\n            }\n            label = strings.format(NLS_MATCHES_LOCATION, matchesPosition, matchesCount);\n        }\n        else {\n            label = NLS_NO_RESULTS;\n        }\n        this._matchesCount.appendChild(document.createTextNode(label));\n        alertFn(this._getAriaLabel(label, this._state.currentMatch, this._state.searchString));\n        MAX_MATCHES_COUNT_WIDTH = Math.max(MAX_MATCHES_COUNT_WIDTH, this._matchesCount.clientWidth);\n    }\n    // ----- actions\n    _getAriaLabel(label, currentMatch, searchString) {\n        if (label === NLS_NO_RESULTS) {\n            return searchString === ''\n                ? nls.localize('ariaSearchNoResultEmpty', \"{0} found\", label)\n                : nls.localize('ariaSearchNoResult', \"{0} found for '{1}'\", label, searchString);\n        }\n        if (currentMatch) {\n            const ariaLabel = nls.localize('ariaSearchNoResultWithLineNum', \"{0} found for '{1}', at {2}\", label, searchString, currentMatch.startLineNumber + ':' + currentMatch.startColumn);\n            const model = this._codeEditor.getModel();\n            if (model && (currentMatch.startLineNumber <= model.getLineCount()) && (currentMatch.startLineNumber >= 1)) {\n                const lineContent = model.getLineContent(currentMatch.startLineNumber);\n                return `${lineContent}, ${ariaLabel}`;\n            }\n            return ariaLabel;\n        }\n        return nls.localize('ariaSearchNoResultWithLineNumNoCurrentMatch', \"{0} found for '{1}'\", label, searchString);\n    }\n    /**\n     * If 'selection find' is ON we should not disable the button (its function is to cancel 'selection find').\n     * If 'selection find' is OFF we enable the button only if there is a selection.\n     */\n    _updateToggleSelectionFindButton() {\n        const selection = this._codeEditor.getSelection();\n        const isSelection = selection ? (selection.startLineNumber !== selection.endLineNumber || selection.startColumn !== selection.endColumn) : false;\n        const isChecked = this._toggleSelectionFind.checked;\n        if (this._isVisible && (isChecked || isSelection)) {\n            this._toggleSelectionFind.enable();\n        }\n        else {\n            this._toggleSelectionFind.disable();\n        }\n    }\n    _updateButtons() {\n        this._findInput.setEnabled(this._isVisible);\n        this._replaceInput.setEnabled(this._isVisible && this._isReplaceVisible);\n        this._updateToggleSelectionFindButton();\n        this._closeBtn.setEnabled(this._isVisible);\n        const findInputIsNonEmpty = (this._state.searchString.length > 0);\n        const matchesCount = this._state.matchesCount ? true : false;\n        this._prevBtn.setEnabled(this._isVisible && findInputIsNonEmpty && matchesCount && this._state.canNavigateBack());\n        this._nextBtn.setEnabled(this._isVisible && findInputIsNonEmpty && matchesCount && this._state.canNavigateForward());\n        this._replaceBtn.setEnabled(this._isVisible && this._isReplaceVisible && findInputIsNonEmpty);\n        this._replaceAllBtn.setEnabled(this._isVisible && this._isReplaceVisible && findInputIsNonEmpty);\n        this._domNode.classList.toggle('replaceToggled', this._isReplaceVisible);\n        this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);\n        const canReplace = !this._codeEditor.getOption(91 /* EditorOption.readOnly */);\n        this._toggleReplaceBtn.setEnabled(this._isVisible && canReplace);\n    }\n    _reveal() {\n        this._revealTimeouts.forEach(e => {\n            clearTimeout(e);\n        });\n        this._revealTimeouts = [];\n        if (!this._isVisible) {\n            this._isVisible = true;\n            const selection = this._codeEditor.getSelection();\n            switch (this._codeEditor.getOption(41 /* EditorOption.find */).autoFindInSelection) {\n                case 'always':\n                    this._toggleSelectionFind.checked = true;\n                    break;\n                case 'never':\n                    this._toggleSelectionFind.checked = false;\n                    break;\n                case 'multiline': {\n                    const isSelectionMultipleLine = !!selection && selection.startLineNumber !== selection.endLineNumber;\n                    this._toggleSelectionFind.checked = isSelectionMultipleLine;\n                    break;\n                }\n                default:\n                    break;\n            }\n            this._tryUpdateWidgetWidth();\n            this._updateButtons();\n            this._revealTimeouts.push(setTimeout(() => {\n                this._domNode.classList.add('visible');\n                this._domNode.setAttribute('aria-hidden', 'false');\n            }, 0));\n            // validate query again as it's being dismissed when we hide the find widget.\n            this._revealTimeouts.push(setTimeout(() => {\n                this._findInput.validate();\n            }, 200));\n            this._codeEditor.layoutOverlayWidget(this);\n            let adjustEditorScrollTop = true;\n            if (this._codeEditor.getOption(41 /* EditorOption.find */).seedSearchStringFromSelection && selection) {\n                const domNode = this._codeEditor.getDomNode();\n                if (domNode) {\n                    const editorCoords = dom.getDomNodePagePosition(domNode);\n                    const startCoords = this._codeEditor.getScrolledVisiblePosition(selection.getStartPosition());\n                    const startLeft = editorCoords.left + (startCoords ? startCoords.left : 0);\n                    const startTop = startCoords ? startCoords.top : 0;\n                    if (this._viewZone && startTop < this._viewZone.heightInPx) {\n                        if (selection.endLineNumber > selection.startLineNumber) {\n                            adjustEditorScrollTop = false;\n                        }\n                        const leftOfFindWidget = dom.getTopLeftOffset(this._domNode).left;\n                        if (startLeft > leftOfFindWidget) {\n                            adjustEditorScrollTop = false;\n                        }\n                        const endCoords = this._codeEditor.getScrolledVisiblePosition(selection.getEndPosition());\n                        const endLeft = editorCoords.left + (endCoords ? endCoords.left : 0);\n                        if (endLeft > leftOfFindWidget) {\n                            adjustEditorScrollTop = false;\n                        }\n                    }\n                }\n            }\n            this._showViewZone(adjustEditorScrollTop);\n        }\n    }\n    _hide(focusTheEditor) {\n        this._revealTimeouts.forEach(e => {\n            clearTimeout(e);\n        });\n        this._revealTimeouts = [];\n        if (this._isVisible) {\n            this._isVisible = false;\n            this._updateButtons();\n            this._domNode.classList.remove('visible');\n            this._domNode.setAttribute('aria-hidden', 'true');\n            this._findInput.clearMessage();\n            if (focusTheEditor) {\n                this._codeEditor.focus();\n            }\n            this._codeEditor.layoutOverlayWidget(this);\n            this._removeViewZone();\n        }\n    }\n    _layoutViewZone(targetScrollTop) {\n        const addExtraSpaceOnTop = this._codeEditor.getOption(41 /* EditorOption.find */).addExtraSpaceOnTop;\n        if (!addExtraSpaceOnTop) {\n            this._removeViewZone();\n            return;\n        }\n        if (!this._isVisible) {\n            return;\n        }\n        const viewZone = this._viewZone;\n        if (this._viewZoneId !== undefined || !viewZone) {\n            return;\n        }\n        this._codeEditor.changeViewZones((accessor) => {\n            viewZone.heightInPx = this._getHeight();\n            this._viewZoneId = accessor.addZone(viewZone);\n            // scroll top adjust to make sure the editor doesn't scroll when adding viewzone at the beginning.\n            this._codeEditor.setScrollTop(targetScrollTop || this._codeEditor.getScrollTop() + viewZone.heightInPx);\n        });\n    }\n    _showViewZone(adjustScroll = true) {\n        if (!this._isVisible) {\n            return;\n        }\n        const addExtraSpaceOnTop = this._codeEditor.getOption(41 /* EditorOption.find */).addExtraSpaceOnTop;\n        if (!addExtraSpaceOnTop) {\n            return;\n        }\n        if (this._viewZone === undefined) {\n            this._viewZone = new FindWidgetViewZone(0);\n        }\n        const viewZone = this._viewZone;\n        this._codeEditor.changeViewZones((accessor) => {\n            if (this._viewZoneId !== undefined) {\n                // the view zone already exists, we need to update the height\n                const newHeight = this._getHeight();\n                if (newHeight === viewZone.heightInPx) {\n                    return;\n                }\n                const scrollAdjustment = newHeight - viewZone.heightInPx;\n                viewZone.heightInPx = newHeight;\n                accessor.layoutZone(this._viewZoneId);\n                if (adjustScroll) {\n                    this._codeEditor.setScrollTop(this._codeEditor.getScrollTop() + scrollAdjustment);\n                }\n                return;\n            }\n            else {\n                let scrollAdjustment = this._getHeight();\n                // if the editor has top padding, factor that into the zone height\n                scrollAdjustment -= this._codeEditor.getOption(84 /* EditorOption.padding */).top;\n                if (scrollAdjustment <= 0) {\n                    return;\n                }\n                viewZone.heightInPx = scrollAdjustment;\n                this._viewZoneId = accessor.addZone(viewZone);\n                if (adjustScroll) {\n                    this._codeEditor.setScrollTop(this._codeEditor.getScrollTop() + scrollAdjustment);\n                }\n            }\n        });\n    }\n    _removeViewZone() {\n        this._codeEditor.changeViewZones((accessor) => {\n            if (this._viewZoneId !== undefined) {\n                accessor.removeZone(this._viewZoneId);\n                this._viewZoneId = undefined;\n                if (this._viewZone) {\n                    this._codeEditor.setScrollTop(this._codeEditor.getScrollTop() - this._viewZone.heightInPx);\n                    this._viewZone = undefined;\n                }\n            }\n        });\n    }\n    _tryUpdateWidgetWidth() {\n        if (!this._isVisible) {\n            return;\n        }\n        if (!this._domNode.isConnected) {\n            // the widget is not in the DOM\n            return;\n        }\n        const layoutInfo = this._codeEditor.getLayoutInfo();\n        const editorContentWidth = layoutInfo.contentWidth;\n        if (editorContentWidth <= 0) {\n            // for example, diff view original editor\n            this._domNode.classList.add('hiddenEditor');\n            return;\n        }\n        else if (this._domNode.classList.contains('hiddenEditor')) {\n            this._domNode.classList.remove('hiddenEditor');\n        }\n        const editorWidth = layoutInfo.width;\n        const minimapWidth = layoutInfo.minimap.minimapWidth;\n        let collapsedFindWidget = false;\n        let reducedFindWidget = false;\n        let narrowFindWidget = false;\n        if (this._resized) {\n            const widgetWidth = dom.getTotalWidth(this._domNode);\n            if (widgetWidth > FIND_WIDGET_INITIAL_WIDTH) {\n                // as the widget is resized by users, we may need to change the max width of the widget as the editor width changes.\n                this._domNode.style.maxWidth = `${editorWidth - 28 - minimapWidth - 15}px`;\n                this._replaceInput.width = dom.getTotalWidth(this._findInput.domNode);\n                return;\n            }\n        }\n        if (FIND_WIDGET_INITIAL_WIDTH + 28 + minimapWidth >= editorWidth) {\n            reducedFindWidget = true;\n        }\n        if (FIND_WIDGET_INITIAL_WIDTH + 28 + minimapWidth - MAX_MATCHES_COUNT_WIDTH >= editorWidth) {\n            narrowFindWidget = true;\n        }\n        if (FIND_WIDGET_INITIAL_WIDTH + 28 + minimapWidth - MAX_MATCHES_COUNT_WIDTH >= editorWidth + 50) {\n            collapsedFindWidget = true;\n        }\n        this._domNode.classList.toggle('collapsed-find-widget', collapsedFindWidget);\n        this._domNode.classList.toggle('narrow-find-widget', narrowFindWidget);\n        this._domNode.classList.toggle('reduced-find-widget', reducedFindWidget);\n        if (!narrowFindWidget && !collapsedFindWidget) {\n            // the minimal left offset of findwidget is 15px.\n            this._domNode.style.maxWidth = `${editorWidth - 28 - minimapWidth - 15}px`;\n        }\n        this._findInput.layout({ collapsedFindWidget, narrowFindWidget, reducedFindWidget });\n        if (this._resized) {\n            const findInputWidth = this._findInput.inputBox.element.clientWidth;\n            if (findInputWidth > 0) {\n                this._replaceInput.width = findInputWidth;\n            }\n        }\n        else if (this._isReplaceVisible) {\n            this._replaceInput.width = dom.getTotalWidth(this._findInput.domNode);\n        }\n    }\n    _getHeight() {\n        let totalheight = 0;\n        // find input margin top\n        totalheight += 4;\n        // find input height\n        totalheight += this._findInput.inputBox.height + 2 /** input box border */;\n        if (this._isReplaceVisible) {\n            // replace input margin\n            totalheight += 4;\n            totalheight += this._replaceInput.inputBox.height + 2 /** input box border */;\n        }\n        // margin bottom\n        totalheight += 4;\n        return totalheight;\n    }\n    _tryUpdateHeight() {\n        const totalHeight = this._getHeight();\n        if (this._cachedHeight !== null && this._cachedHeight === totalHeight) {\n            return false;\n        }\n        this._cachedHeight = totalHeight;\n        this._domNode.style.height = `${totalHeight}px`;\n        return true;\n    }\n    // ----- Public\n    focusFindInput() {\n        this._findInput.select();\n        // Edge browser requires focus() in addition to select()\n        this._findInput.focus();\n    }\n    focusReplaceInput() {\n        this._replaceInput.select();\n        // Edge browser requires focus() in addition to select()\n        this._replaceInput.focus();\n    }\n    highlightFindOptions() {\n        this._findInput.highlightFindOptions();\n    }\n    _updateSearchScope() {\n        if (!this._codeEditor.hasModel()) {\n            return;\n        }\n        if (this._toggleSelectionFind.checked) {\n            const selections = this._codeEditor.getSelections();\n            selections.map(selection => {\n                if (selection.endColumn === 1 && selection.endLineNumber > selection.startLineNumber) {\n                    selection = selection.setEndPosition(selection.endLineNumber - 1, this._codeEditor.getModel().getLineMaxColumn(selection.endLineNumber - 1));\n                }\n                const currentMatch = this._state.currentMatch;\n                if (selection.startLineNumber !== selection.endLineNumber) {\n                    if (!Range.equalsRange(selection, currentMatch)) {\n                        return selection;\n                    }\n                }\n                return null;\n            }).filter(element => !!element);\n            if (selections.length) {\n                this._state.change({ searchScope: selections }, true);\n            }\n        }\n    }\n    _onFindInputMouseDown(e) {\n        // on linux, middle key does pasting.\n        if (e.middleButton) {\n            e.stopPropagation();\n        }\n    }\n    _onFindInputKeyDown(e) {\n        if (e.equals(ctrlKeyMod | 3 /* KeyCode.Enter */)) {\n            if (this._keybindingService.dispatchEvent(e, e.target)) {\n                e.preventDefault();\n                return;\n            }\n            else {\n                this._findInput.inputBox.insertAtCursor('\\n');\n                e.preventDefault();\n                return;\n            }\n        }\n        if (e.equals(2 /* KeyCode.Tab */)) {\n            if (this._isReplaceVisible) {\n                this._replaceInput.focus();\n            }\n            else {\n                this._findInput.focusOnCaseSensitive();\n            }\n            e.preventDefault();\n            return;\n        }\n        if (e.equals(2048 /* KeyMod.CtrlCmd */ | 18 /* KeyCode.DownArrow */)) {\n            this._codeEditor.focus();\n            e.preventDefault();\n            return;\n        }\n        if (e.equals(16 /* KeyCode.UpArrow */)) {\n            return stopPropagationForMultiLineUpwards(e, this._findInput.getValue(), this._findInput.domNode.querySelector('textarea'));\n        }\n        if (e.equals(18 /* KeyCode.DownArrow */)) {\n            return stopPropagationForMultiLineDownwards(e, this._findInput.getValue(), this._findInput.domNode.querySelector('textarea'));\n        }\n    }\n    _onReplaceInputKeyDown(e) {\n        if (e.equals(ctrlKeyMod | 3 /* KeyCode.Enter */)) {\n            if (this._keybindingService.dispatchEvent(e, e.target)) {\n                e.preventDefault();\n                return;\n            }\n            else {\n                if (platform.isWindows && platform.isNative && !this._ctrlEnterReplaceAllWarningPrompted) {\n                    // this is the first time when users press Ctrl + Enter to replace all\n                    this._notificationService.info(nls.localize('ctrlEnter.keybindingChanged', 'Ctrl+Enter now inserts line break instead of replacing all. You can modify the keybinding for editor.action.replaceAll to override this behavior.'));\n                    this._ctrlEnterReplaceAllWarningPrompted = true;\n                    this._storageService.store(ctrlEnterReplaceAllWarningPromptedKey, true, 0 /* StorageScope.PROFILE */, 0 /* StorageTarget.USER */);\n                }\n                this._replaceInput.inputBox.insertAtCursor('\\n');\n                e.preventDefault();\n                return;\n            }\n        }\n        if (e.equals(2 /* KeyCode.Tab */)) {\n            this._findInput.focusOnCaseSensitive();\n            e.preventDefault();\n            return;\n        }\n        if (e.equals(1024 /* KeyMod.Shift */ | 2 /* KeyCode.Tab */)) {\n            this._findInput.focus();\n            e.preventDefault();\n            return;\n        }\n        if (e.equals(2048 /* KeyMod.CtrlCmd */ | 18 /* KeyCode.DownArrow */)) {\n            this._codeEditor.focus();\n            e.preventDefault();\n            return;\n        }\n        if (e.equals(16 /* KeyCode.UpArrow */)) {\n            return stopPropagationForMultiLineUpwards(e, this._replaceInput.inputBox.value, this._replaceInput.inputBox.element.querySelector('textarea'));\n        }\n        if (e.equals(18 /* KeyCode.DownArrow */)) {\n            return stopPropagationForMultiLineDownwards(e, this._replaceInput.inputBox.value, this._replaceInput.inputBox.element.querySelector('textarea'));\n        }\n    }\n    // ----- sash\n    getVerticalSashLeft(_sash) {\n        return 0;\n    }\n    // ----- initialization\n    _keybindingLabelFor(actionId) {\n        const kb = this._keybindingService.lookupKeybinding(actionId);\n        if (!kb) {\n            return '';\n        }\n        return ` (${kb.getLabel()})`;\n    }\n    _buildDomNode() {\n        const flexibleHeight = true;\n        const flexibleWidth = true;\n        // Find input\n        this._findInput = this._register(new ContextScopedFindInput(null, this._contextViewProvider, {\n            width: FIND_INPUT_AREA_WIDTH,\n            label: NLS_FIND_INPUT_LABEL,\n            placeholder: NLS_FIND_INPUT_PLACEHOLDER,\n            appendCaseSensitiveLabel: this._keybindingLabelFor(FIND_IDS.ToggleCaseSensitiveCommand),\n            appendWholeWordsLabel: this._keybindingLabelFor(FIND_IDS.ToggleWholeWordCommand),\n            appendRegexLabel: this._keybindingLabelFor(FIND_IDS.ToggleRegexCommand),\n            validation: (value) => {\n                if (value.length === 0 || !this._findInput.getRegex()) {\n                    return null;\n                }\n                try {\n                    // use `g` and `u` which are also used by the TextModel search\n                    new RegExp(value, 'gu');\n                    return null;\n                }\n                catch (e) {\n                    return { content: e.message };\n                }\n            },\n            flexibleHeight,\n            flexibleWidth,\n            flexibleMaxHeight: 118,\n            showCommonFindToggles: true,\n            showHistoryHint: () => showHistoryKeybindingHint(this._keybindingService),\n            inputBoxStyles: defaultInputBoxStyles,\n            toggleStyles: defaultToggleStyles\n        }, this._contextKeyService));\n        this._findInput.setRegex(!!this._state.isRegex);\n        this._findInput.setCaseSensitive(!!this._state.matchCase);\n        this._findInput.setWholeWords(!!this._state.wholeWord);\n        this._register(this._findInput.onKeyDown((e) => this._onFindInputKeyDown(e)));\n        this._register(this._findInput.inputBox.onDidChange(() => {\n            if (this._ignoreChangeEvent) {\n                return;\n            }\n            this._state.change({ searchString: this._findInput.getValue() }, true);\n        }));\n        this._register(this._findInput.onDidOptionChange(() => {\n            this._state.change({\n                isRegex: this._findInput.getRegex(),\n                wholeWord: this._findInput.getWholeWords(),\n                matchCase: this._findInput.getCaseSensitive()\n            }, true);\n        }));\n        this._register(this._findInput.onCaseSensitiveKeyDown((e) => {\n            if (e.equals(1024 /* KeyMod.Shift */ | 2 /* KeyCode.Tab */)) {\n                if (this._isReplaceVisible) {\n                    this._replaceInput.focus();\n                    e.preventDefault();\n                }\n            }\n        }));\n        this._register(this._findInput.onRegexKeyDown((e) => {\n            if (e.equals(2 /* KeyCode.Tab */)) {\n                if (this._isReplaceVisible) {\n                    this._replaceInput.focusOnPreserve();\n                    e.preventDefault();\n                }\n            }\n        }));\n        this._register(this._findInput.inputBox.onDidHeightChange((e) => {\n            if (this._tryUpdateHeight()) {\n                this._showViewZone();\n            }\n        }));\n        if (platform.isLinux) {\n            this._register(this._findInput.onMouseDown((e) => this._onFindInputMouseDown(e)));\n        }\n        this._matchesCount = document.createElement('div');\n        this._matchesCount.className = 'matchesCount';\n        this._updateMatchesCount();\n        // Create a scoped hover delegate for all find related buttons\n        const hoverDelegate = this._register(createInstantHoverDelegate());\n        // Previous button\n        this._prevBtn = this._register(new SimpleButton({\n            label: NLS_PREVIOUS_MATCH_BTN_LABEL + this._keybindingLabelFor(FIND_IDS.PreviousMatchFindAction),\n            icon: findPreviousMatchIcon,\n            hoverDelegate,\n            onTrigger: () => {\n                assertIsDefined(this._codeEditor.getAction(FIND_IDS.PreviousMatchFindAction)).run().then(undefined, onUnexpectedError);\n            }\n        }, this._hoverService));\n        // Next button\n        this._nextBtn = this._register(new SimpleButton({\n            label: NLS_NEXT_MATCH_BTN_LABEL + this._keybindingLabelFor(FIND_IDS.NextMatchFindAction),\n            icon: findNextMatchIcon,\n            hoverDelegate,\n            onTrigger: () => {\n                assertIsDefined(this._codeEditor.getAction(FIND_IDS.NextMatchFindAction)).run().then(undefined, onUnexpectedError);\n            }\n        }, this._hoverService));\n        const findPart = document.createElement('div');\n        findPart.className = 'find-part';\n        findPart.appendChild(this._findInput.domNode);\n        const actionsContainer = document.createElement('div');\n        actionsContainer.className = 'find-actions';\n        findPart.appendChild(actionsContainer);\n        actionsContainer.appendChild(this._matchesCount);\n        actionsContainer.appendChild(this._prevBtn.domNode);\n        actionsContainer.appendChild(this._nextBtn.domNode);\n        // Toggle selection button\n        this._toggleSelectionFind = this._register(new Toggle({\n            icon: findSelectionIcon,\n            title: NLS_TOGGLE_SELECTION_FIND_TITLE + this._keybindingLabelFor(FIND_IDS.ToggleSearchScopeCommand),\n            isChecked: false,\n            hoverDelegate: hoverDelegate,\n            inputActiveOptionBackground: asCssVariable(inputActiveOptionBackground),\n            inputActiveOptionBorder: asCssVariable(inputActiveOptionBorder),\n            inputActiveOptionForeground: asCssVariable(inputActiveOptionForeground),\n        }));\n        this._register(this._toggleSelectionFind.onChange(() => {\n            if (this._toggleSelectionFind.checked) {\n                if (this._codeEditor.hasModel()) {\n                    let selections = this._codeEditor.getSelections();\n                    selections = selections.map(selection => {\n                        if (selection.endColumn === 1 && selection.endLineNumber > selection.startLineNumber) {\n                            selection = selection.setEndPosition(selection.endLineNumber - 1, this._codeEditor.getModel().getLineMaxColumn(selection.endLineNumber - 1));\n                        }\n                        if (!selection.isEmpty()) {\n                            return selection;\n                        }\n                        return null;\n                    }).filter((element) => !!element);\n                    if (selections.length) {\n                        this._state.change({ searchScope: selections }, true);\n                    }\n                }\n            }\n            else {\n                this._state.change({ searchScope: null }, true);\n            }\n        }));\n        actionsContainer.appendChild(this._toggleSelectionFind.domNode);\n        // Close button\n        this._closeBtn = this._register(new SimpleButton({\n            label: NLS_CLOSE_BTN_LABEL + this._keybindingLabelFor(FIND_IDS.CloseFindWidgetCommand),\n            icon: widgetClose,\n            hoverDelegate,\n            onTrigger: () => {\n                this._state.change({ isRevealed: false, searchScope: null }, false);\n            },\n            onKeyDown: (e) => {\n                if (e.equals(2 /* KeyCode.Tab */)) {\n                    if (this._isReplaceVisible) {\n                        if (this._replaceBtn.isEnabled()) {\n                            this._replaceBtn.focus();\n                        }\n                        else {\n                            this._codeEditor.focus();\n                        }\n                        e.preventDefault();\n                    }\n                }\n            }\n        }, this._hoverService));\n        // Replace input\n        this._replaceInput = this._register(new ContextScopedReplaceInput(null, undefined, {\n            label: NLS_REPLACE_INPUT_LABEL,\n            placeholder: NLS_REPLACE_INPUT_PLACEHOLDER,\n            appendPreserveCaseLabel: this._keybindingLabelFor(FIND_IDS.TogglePreserveCaseCommand),\n            history: [],\n            flexibleHeight,\n            flexibleWidth,\n            flexibleMaxHeight: 118,\n            showHistoryHint: () => showHistoryKeybindingHint(this._keybindingService),\n            inputBoxStyles: defaultInputBoxStyles,\n            toggleStyles: defaultToggleStyles\n        }, this._contextKeyService, true));\n        this._replaceInput.setPreserveCase(!!this._state.preserveCase);\n        this._register(this._replaceInput.onKeyDown((e) => this._onReplaceInputKeyDown(e)));\n        this._register(this._replaceInput.inputBox.onDidChange(() => {\n            this._state.change({ replaceString: this._replaceInput.inputBox.value }, false);\n        }));\n        this._register(this._replaceInput.inputBox.onDidHeightChange((e) => {\n            if (this._isReplaceVisible && this._tryUpdateHeight()) {\n                this._showViewZone();\n            }\n        }));\n        this._register(this._replaceInput.onDidOptionChange(() => {\n            this._state.change({\n                preserveCase: this._replaceInput.getPreserveCase()\n            }, true);\n        }));\n        this._register(this._replaceInput.onPreserveCaseKeyDown((e) => {\n            if (e.equals(2 /* KeyCode.Tab */)) {\n                if (this._prevBtn.isEnabled()) {\n                    this._prevBtn.focus();\n                }\n                else if (this._nextBtn.isEnabled()) {\n                    this._nextBtn.focus();\n                }\n                else if (this._toggleSelectionFind.enabled) {\n                    this._toggleSelectionFind.focus();\n                }\n                else if (this._closeBtn.isEnabled()) {\n                    this._closeBtn.focus();\n                }\n                e.preventDefault();\n            }\n        }));\n        // Create scoped hover delegate for replace actions\n        const replaceHoverDelegate = this._register(createInstantHoverDelegate());\n        // Replace one button\n        this._replaceBtn = this._register(new SimpleButton({\n            label: NLS_REPLACE_BTN_LABEL + this._keybindingLabelFor(FIND_IDS.ReplaceOneAction),\n            icon: findReplaceIcon,\n            hoverDelegate: replaceHoverDelegate,\n            onTrigger: () => {\n                this._controller.replace();\n            },\n            onKeyDown: (e) => {\n                if (e.equals(1024 /* KeyMod.Shift */ | 2 /* KeyCode.Tab */)) {\n                    this._closeBtn.focus();\n                    e.preventDefault();\n                }\n            }\n        }, this._hoverService));\n        // Replace all button\n        this._replaceAllBtn = this._register(new SimpleButton({\n            label: NLS_REPLACE_ALL_BTN_LABEL + this._keybindingLabelFor(FIND_IDS.ReplaceAllAction),\n            icon: findReplaceAllIcon,\n            hoverDelegate: replaceHoverDelegate,\n            onTrigger: () => {\n                this._controller.replaceAll();\n            }\n        }, this._hoverService));\n        const replacePart = document.createElement('div');\n        replacePart.className = 'replace-part';\n        replacePart.appendChild(this._replaceInput.domNode);\n        const replaceActionsContainer = document.createElement('div');\n        replaceActionsContainer.className = 'replace-actions';\n        replacePart.appendChild(replaceActionsContainer);\n        replaceActionsContainer.appendChild(this._replaceBtn.domNode);\n        replaceActionsContainer.appendChild(this._replaceAllBtn.domNode);\n        // Toggle replace button\n        this._toggleReplaceBtn = this._register(new SimpleButton({\n            label: NLS_TOGGLE_REPLACE_MODE_BTN_LABEL,\n            className: 'codicon toggle left',\n            onTrigger: () => {\n                this._state.change({ isReplaceRevealed: !this._isReplaceVisible }, false);\n                if (this._isReplaceVisible) {\n                    this._replaceInput.width = dom.getTotalWidth(this._findInput.domNode);\n                    this._replaceInput.inputBox.layout();\n                }\n                this._showViewZone();\n            }\n        }, this._hoverService));\n        this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);\n        // Widget\n        this._domNode = document.createElement('div');\n        this._domNode.className = 'editor-widget find-widget';\n        this._domNode.setAttribute('aria-hidden', 'true');\n        this._domNode.ariaLabel = NLS_FIND_DIALOG_LABEL;\n        this._domNode.role = 'dialog';\n        // We need to set this explicitly, otherwise on IE11, the width inheritence of flex doesn't work.\n        this._domNode.style.width = `${FIND_WIDGET_INITIAL_WIDTH}px`;\n        this._domNode.appendChild(this._toggleReplaceBtn.domNode);\n        this._domNode.appendChild(findPart);\n        this._domNode.appendChild(this._closeBtn.domNode);\n        this._domNode.appendChild(replacePart);\n        this._resizeSash = this._register(new Sash(this._domNode, this, { orientation: 0 /* Orientation.VERTICAL */, size: 2 }));\n        this._resized = false;\n        let originalWidth = FIND_WIDGET_INITIAL_WIDTH;\n        this._register(this._resizeSash.onDidStart(() => {\n            originalWidth = dom.getTotalWidth(this._domNode);\n        }));\n        this._register(this._resizeSash.onDidChange((evt) => {\n            this._resized = true;\n            const width = originalWidth + evt.startX - evt.currentX;\n            if (width < FIND_WIDGET_INITIAL_WIDTH) {\n                // narrow down the find widget should be handled by CSS.\n                return;\n            }\n            const maxWidth = parseFloat(dom.getComputedStyle(this._domNode).maxWidth) || 0;\n            if (width > maxWidth) {\n                return;\n            }\n            this._domNode.style.width = `${width}px`;\n            if (this._isReplaceVisible) {\n                this._replaceInput.width = dom.getTotalWidth(this._findInput.domNode);\n            }\n            this._findInput.inputBox.layout();\n            this._tryUpdateHeight();\n        }));\n        this._register(this._resizeSash.onDidReset(() => {\n            // users double click on the sash\n            const currentWidth = dom.getTotalWidth(this._domNode);\n            if (currentWidth < FIND_WIDGET_INITIAL_WIDTH) {\n                // The editor is narrow and the width of the find widget is controlled fully by CSS.\n                return;\n            }\n            let width = FIND_WIDGET_INITIAL_WIDTH;\n            if (!this._resized || currentWidth === FIND_WIDGET_INITIAL_WIDTH) {\n                // 1. never resized before, double click should maximizes it\n                // 2. users resized it already but its width is the same as default\n                const layoutInfo = this._codeEditor.getLayoutInfo();\n                width = layoutInfo.width - 28 - layoutInfo.minimap.minimapWidth - 15;\n                this._resized = true;\n            }\n            else {\n                /**\n                 * no op, the find widget should be shrinked to its default size.\n                 */\n            }\n            this._domNode.style.width = `${width}px`;\n            if (this._isReplaceVisible) {\n                this._replaceInput.width = dom.getTotalWidth(this._findInput.domNode);\n            }\n            this._findInput.inputBox.layout();\n        }));\n    }\n    updateAccessibilitySupport() {\n        const value = this._codeEditor.getOption(2 /* EditorOption.accessibilitySupport */);\n        this._findInput.setFocusInputOnOptionClick(value !== 2 /* AccessibilitySupport.Enabled */);\n    }\n}\nFindWidget.ID = 'editor.contrib.findWidget';\nexport class SimpleButton extends Widget {\n    constructor(opts, hoverService) {\n        var _a;\n        super();\n        this._opts = opts;\n        let className = 'button';\n        if (this._opts.className) {\n            className = className + ' ' + this._opts.className;\n        }\n        if (this._opts.icon) {\n            className = className + ' ' + ThemeIcon.asClassName(this._opts.icon);\n        }\n        this._domNode = document.createElement('div');\n        this._domNode.tabIndex = 0;\n        this._domNode.className = className;\n        this._domNode.setAttribute('role', 'button');\n        this._domNode.setAttribute('aria-label', this._opts.label);\n        this._register(hoverService.setupUpdatableHover((_a = opts.hoverDelegate) !== null && _a !== void 0 ? _a : getDefaultHoverDelegate('element'), this._domNode, this._opts.label));\n        this.onclick(this._domNode, (e) => {\n            this._opts.onTrigger();\n            e.preventDefault();\n        });\n        this.onkeydown(this._domNode, (e) => {\n            var _a, _b;\n            if (e.equals(10 /* KeyCode.Space */) || e.equals(3 /* KeyCode.Enter */)) {\n                this._opts.onTrigger();\n                e.preventDefault();\n                return;\n            }\n            (_b = (_a = this._opts).onKeyDown) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n        });\n    }\n    get domNode() {\n        return this._domNode;\n    }\n    isEnabled() {\n        return (this._domNode.tabIndex >= 0);\n    }\n    focus() {\n        this._domNode.focus();\n    }\n    setEnabled(enabled) {\n        this._domNode.classList.toggle('disabled', !enabled);\n        this._domNode.setAttribute('aria-disabled', String(!enabled));\n        this._domNode.tabIndex = enabled ? 0 : -1;\n    }\n    setExpanded(expanded) {\n        this._domNode.setAttribute('aria-expanded', String(!!expanded));\n        if (expanded) {\n            this._domNode.classList.remove(...ThemeIcon.asClassNameArray(findCollapsedIcon));\n            this._domNode.classList.add(...ThemeIcon.asClassNameArray(findExpandedIcon));\n        }\n        else {\n            this._domNode.classList.remove(...ThemeIcon.asClassNameArray(findExpandedIcon));\n            this._domNode.classList.add(...ThemeIcon.asClassNameArray(findCollapsedIcon));\n        }\n    }\n}\n// theming\nregisterThemingParticipant((theme, collector) => {\n    const findMatchHighlightBorder = theme.getColor(editorFindMatchHighlightBorder);\n    if (findMatchHighlightBorder) {\n        collector.addRule(`.monaco-editor .findMatch { border: 1px ${isHighContrast(theme.type) ? 'dotted' : 'solid'} ${findMatchHighlightBorder}; box-sizing: border-box; }`);\n    }\n    const findRangeHighlightBorder = theme.getColor(editorFindRangeHighlightBorder);\n    if (findRangeHighlightBorder) {\n        collector.addRule(`.monaco-editor .findScope { border: 1px ${isHighContrast(theme.type) ? 'dashed' : 'solid'} ${findRangeHighlightBorder}; }`);\n    }\n    const hcBorder = theme.getColor(contrastBorder);\n    if (hcBorder) {\n        collector.addRule(`.monaco-editor .find-widget { border: 1px solid ${hcBorder}; }`);\n    }\n    const findMatchForeground = theme.getColor(editorFindMatchForeground);\n    if (findMatchForeground) {\n        collector.addRule(`.monaco-editor .findMatchInline { color: ${findMatchForeground}; }`);\n    }\n    const findMatchHighlightForeground = theme.getColor(editorFindMatchHighlightForeground);\n    if (findMatchHighlightForeground) {\n        collector.addRule(`.monaco-editor .currentFindMatchInline { color: ${findMatchHighlightForeground}; }`);\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/find/browser/replaceAllCommand.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Range } from '../../../common/core/range.js';\nexport class ReplaceAllCommand {\n    constructor(editorSelection, ranges, replaceStrings) {\n        this._editorSelection = editorSelection;\n        this._ranges = ranges;\n        this._replaceStrings = replaceStrings;\n        this._trackedEditorSelectionId = null;\n    }\n    getEditOperations(model, builder) {\n        if (this._ranges.length > 0) {\n            // Collect all edit operations\n            const ops = [];\n            for (let i = 0; i < this._ranges.length; i++) {\n                ops.push({\n                    range: this._ranges[i],\n                    text: this._replaceStrings[i]\n                });\n            }\n            // Sort them in ascending order by range starts\n            ops.sort((o1, o2) => {\n                return Range.compareRangesUsingStarts(o1.range, o2.range);\n            });\n            // Merge operations that touch each other\n            const resultOps = [];\n            let previousOp = ops[0];\n            for (let i = 1; i < ops.length; i++) {\n                if (previousOp.range.endLineNumber === ops[i].range.startLineNumber && previousOp.range.endColumn === ops[i].range.startColumn) {\n                    // These operations are one after another and can be merged\n                    previousOp.range = previousOp.range.plusRange(ops[i].range);\n                    previousOp.text = previousOp.text + ops[i].text;\n                }\n                else {\n                    resultOps.push(previousOp);\n                    previousOp = ops[i];\n                }\n            }\n            resultOps.push(previousOp);\n            for (const op of resultOps) {\n                builder.addEditOperation(op.range, op.text);\n            }\n        }\n        this._trackedEditorSelectionId = builder.trackSelection(this._editorSelection);\n    }\n    computeCursorState(model, helper) {\n        return helper.getTrackedSelection(this._trackedEditorSelectionId);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/find/browser/replacePattern.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { buildReplaceStringWithCasePreserved } from '../../../../base/common/search.js';\n/**\n * Assigned when the replace pattern is entirely static.\n */\nclass StaticValueReplacePattern {\n    constructor(staticValue) {\n        this.staticValue = staticValue;\n        this.kind = 0 /* ReplacePatternKind.StaticValue */;\n    }\n}\n/**\n * Assigned when the replace pattern has replacement patterns.\n */\nclass DynamicPiecesReplacePattern {\n    constructor(pieces) {\n        this.pieces = pieces;\n        this.kind = 1 /* ReplacePatternKind.DynamicPieces */;\n    }\n}\nexport class ReplacePattern {\n    static fromStaticValue(value) {\n        return new ReplacePattern([ReplacePiece.staticValue(value)]);\n    }\n    get hasReplacementPatterns() {\n        return (this._state.kind === 1 /* ReplacePatternKind.DynamicPieces */);\n    }\n    constructor(pieces) {\n        if (!pieces || pieces.length === 0) {\n            this._state = new StaticValueReplacePattern('');\n        }\n        else if (pieces.length === 1 && pieces[0].staticValue !== null) {\n            this._state = new StaticValueReplacePattern(pieces[0].staticValue);\n        }\n        else {\n            this._state = new DynamicPiecesReplacePattern(pieces);\n        }\n    }\n    buildReplaceString(matches, preserveCase) {\n        if (this._state.kind === 0 /* ReplacePatternKind.StaticValue */) {\n            if (preserveCase) {\n                return buildReplaceStringWithCasePreserved(matches, this._state.staticValue);\n            }\n            else {\n                return this._state.staticValue;\n            }\n        }\n        let result = '';\n        for (let i = 0, len = this._state.pieces.length; i < len; i++) {\n            const piece = this._state.pieces[i];\n            if (piece.staticValue !== null) {\n                // static value ReplacePiece\n                result += piece.staticValue;\n                continue;\n            }\n            // match index ReplacePiece\n            let match = ReplacePattern._substitute(piece.matchIndex, matches);\n            if (piece.caseOps !== null && piece.caseOps.length > 0) {\n                const repl = [];\n                const lenOps = piece.caseOps.length;\n                let opIdx = 0;\n                for (let idx = 0, len = match.length; idx < len; idx++) {\n                    if (opIdx >= lenOps) {\n                        repl.push(match.slice(idx));\n                        break;\n                    }\n                    switch (piece.caseOps[opIdx]) {\n                        case 'U':\n                            repl.push(match[idx].toUpperCase());\n                            break;\n                        case 'u':\n                            repl.push(match[idx].toUpperCase());\n                            opIdx++;\n                            break;\n                        case 'L':\n                            repl.push(match[idx].toLowerCase());\n                            break;\n                        case 'l':\n                            repl.push(match[idx].toLowerCase());\n                            opIdx++;\n                            break;\n                        default:\n                            repl.push(match[idx]);\n                    }\n                }\n                match = repl.join('');\n            }\n            result += match;\n        }\n        return result;\n    }\n    static _substitute(matchIndex, matches) {\n        if (matches === null) {\n            return '';\n        }\n        if (matchIndex === 0) {\n            return matches[0];\n        }\n        let remainder = '';\n        while (matchIndex > 0) {\n            if (matchIndex < matches.length) {\n                // A match can be undefined\n                const match = (matches[matchIndex] || '');\n                return match + remainder;\n            }\n            remainder = String(matchIndex % 10) + remainder;\n            matchIndex = Math.floor(matchIndex / 10);\n        }\n        return '$' + remainder;\n    }\n}\n/**\n * A replace piece can either be a static string or an index to a specific match.\n */\nexport class ReplacePiece {\n    static staticValue(value) {\n        return new ReplacePiece(value, -1, null);\n    }\n    static caseOps(index, caseOps) {\n        return new ReplacePiece(null, index, caseOps);\n    }\n    constructor(staticValue, matchIndex, caseOps) {\n        this.staticValue = staticValue;\n        this.matchIndex = matchIndex;\n        if (!caseOps || caseOps.length === 0) {\n            this.caseOps = null;\n        }\n        else {\n            this.caseOps = caseOps.slice(0);\n        }\n    }\n}\nclass ReplacePieceBuilder {\n    constructor(source) {\n        this._source = source;\n        this._lastCharIndex = 0;\n        this._result = [];\n        this._resultLen = 0;\n        this._currentStaticPiece = '';\n    }\n    emitUnchanged(toCharIndex) {\n        this._emitStatic(this._source.substring(this._lastCharIndex, toCharIndex));\n        this._lastCharIndex = toCharIndex;\n    }\n    emitStatic(value, toCharIndex) {\n        this._emitStatic(value);\n        this._lastCharIndex = toCharIndex;\n    }\n    _emitStatic(value) {\n        if (value.length === 0) {\n            return;\n        }\n        this._currentStaticPiece += value;\n    }\n    emitMatchIndex(index, toCharIndex, caseOps) {\n        if (this._currentStaticPiece.length !== 0) {\n            this._result[this._resultLen++] = ReplacePiece.staticValue(this._currentStaticPiece);\n            this._currentStaticPiece = '';\n        }\n        this._result[this._resultLen++] = ReplacePiece.caseOps(index, caseOps);\n        this._lastCharIndex = toCharIndex;\n    }\n    finalize() {\n        this.emitUnchanged(this._source.length);\n        if (this._currentStaticPiece.length !== 0) {\n            this._result[this._resultLen++] = ReplacePiece.staticValue(this._currentStaticPiece);\n            this._currentStaticPiece = '';\n        }\n        return new ReplacePattern(this._result);\n    }\n}\n/**\n * \\n\t\t\t=> inserts a LF\n * \\t\t\t\t=> inserts a TAB\n * \\\\\t\t\t=> inserts a \"\\\".\n * \\u\t\t\t=> upper-cases one character in a match.\n * \\U\t\t\t=> upper-cases ALL remaining characters in a match.\n * \\l\t\t\t=> lower-cases one character in a match.\n * \\L\t\t\t=> lower-cases ALL remaining characters in a match.\n * $$\t\t\t=> inserts a \"$\".\n * $& and $0\t=> inserts the matched substring.\n * $n\t\t\t=> Where n is a non-negative integer lesser than 100, inserts the nth parenthesized submatch string\n * everything else stays untouched\n *\n * Also see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_string_as_a_parameter\n */\nexport function parseReplaceString(replaceString) {\n    if (!replaceString || replaceString.length === 0) {\n        return new ReplacePattern(null);\n    }\n    const caseOps = [];\n    const result = new ReplacePieceBuilder(replaceString);\n    for (let i = 0, len = replaceString.length; i < len; i++) {\n        const chCode = replaceString.charCodeAt(i);\n        if (chCode === 92 /* CharCode.Backslash */) {\n            // move to next char\n            i++;\n            if (i >= len) {\n                // string ends with a \\\n                break;\n            }\n            const nextChCode = replaceString.charCodeAt(i);\n            // let replaceWithCharacter: string | null = null;\n            switch (nextChCode) {\n                case 92 /* CharCode.Backslash */:\n                    // \\\\ => inserts a \"\\\"\n                    result.emitUnchanged(i - 1);\n                    result.emitStatic('\\\\', i + 1);\n                    break;\n                case 110 /* CharCode.n */:\n                    // \\n => inserts a LF\n                    result.emitUnchanged(i - 1);\n                    result.emitStatic('\\n', i + 1);\n                    break;\n                case 116 /* CharCode.t */:\n                    // \\t => inserts a TAB\n                    result.emitUnchanged(i - 1);\n                    result.emitStatic('\\t', i + 1);\n                    break;\n                // Case modification of string replacements, patterned after Boost, but only applied\n                // to the replacement text, not subsequent content.\n                case 117 /* CharCode.u */:\n                // \\u => upper-cases one character.\n                case 85 /* CharCode.U */:\n                // \\U => upper-cases ALL following characters.\n                case 108 /* CharCode.l */:\n                // \\l => lower-cases one character.\n                case 76 /* CharCode.L */:\n                    // \\L => lower-cases ALL following characters.\n                    result.emitUnchanged(i - 1);\n                    result.emitStatic('', i + 1);\n                    caseOps.push(String.fromCharCode(nextChCode));\n                    break;\n            }\n            continue;\n        }\n        if (chCode === 36 /* CharCode.DollarSign */) {\n            // move to next char\n            i++;\n            if (i >= len) {\n                // string ends with a $\n                break;\n            }\n            const nextChCode = replaceString.charCodeAt(i);\n            if (nextChCode === 36 /* CharCode.DollarSign */) {\n                // $$ => inserts a \"$\"\n                result.emitUnchanged(i - 1);\n                result.emitStatic('$', i + 1);\n                continue;\n            }\n            if (nextChCode === 48 /* CharCode.Digit0 */ || nextChCode === 38 /* CharCode.Ampersand */) {\n                // $& and $0 => inserts the matched substring.\n                result.emitUnchanged(i - 1);\n                result.emitMatchIndex(0, i + 1, caseOps);\n                caseOps.length = 0;\n                continue;\n            }\n            if (49 /* CharCode.Digit1 */ <= nextChCode && nextChCode <= 57 /* CharCode.Digit9 */) {\n                // $n\n                let matchIndex = nextChCode - 48 /* CharCode.Digit0 */;\n                // peek next char to probe for $nn\n                if (i + 1 < len) {\n                    const nextNextChCode = replaceString.charCodeAt(i + 1);\n                    if (48 /* CharCode.Digit0 */ <= nextNextChCode && nextNextChCode <= 57 /* CharCode.Digit9 */) {\n                        // $nn\n                        // move to next char\n                        i++;\n                        matchIndex = matchIndex * 10 + (nextNextChCode - 48 /* CharCode.Digit0 */);\n                        result.emitUnchanged(i - 2);\n                        result.emitMatchIndex(matchIndex, i + 1, caseOps);\n                        caseOps.length = 0;\n                        continue;\n                    }\n                }\n                result.emitUnchanged(i - 1);\n                result.emitMatchIndex(matchIndex, i + 1, caseOps);\n                caseOps.length = 0;\n                continue;\n            }\n        }\n    }\n    return result.finalize();\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/folding/browser/folding.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n.monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,\n.monaco-editor .margin-view-overlays .codicon-folding-manual-expanded,\n.monaco-editor .margin-view-overlays .codicon-folding-expanded,\n.monaco-editor .margin-view-overlays .codicon-folding-collapsed {\n\tcursor: pointer;\n\topacity: 0;\n\ttransition: opacity 0.5s;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tfont-size: 140%;\n\tmargin-left: 2px;\n}\n\n.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,\n.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-expanded,\n.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-expanded,\n.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-collapsed {\n\ttransition: initial;\n}\n\n.monaco-editor .margin-view-overlays:hover .codicon,\n.monaco-editor .margin-view-overlays .codicon.codicon-folding-collapsed,\n.monaco-editor .margin-view-overlays .codicon.codicon-folding-manual-collapsed,\n.monaco-editor .margin-view-overlays .codicon.alwaysShowFoldIcons {\n\topacity: 1;\n}\n\n.monaco-editor .inline-folded:after {\n\tcolor: grey;\n\tmargin: 0.1em 0.2em 0 0.2em;\n\tcontent: \"\\22EF\"; /* ellipses unicode character */\n\tdisplay: inline;\n\tline-height: 1em;\n\tcursor: pointer;\n}\n\n.monaco-editor .folded-background {\n\tbackground-color: var(--vscode-editor-foldBackground);\n}\n\n.monaco-editor .cldr.codicon.codicon-folding-expanded,\n.monaco-editor .cldr.codicon.codicon-folding-collapsed,\n.monaco-editor .cldr.codicon.codicon-folding-manual-expanded,\n.monaco-editor .cldr.codicon.codicon-folding-manual-collapsed {\n\tcolor: var(--vscode-editorGutter-foldingControlForeground) !important;\n}\n\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/folding/browser/folding.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/folding/browser/folding.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar FoldingController_1;\nimport { createCancelablePromise, Delayer, RunOnceScheduler } from '../../../../base/common/async.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { illegalArgument, onUnexpectedError } from '../../../../base/common/errors.js';\nimport { KeyChord } from '../../../../base/common/keyCodes.js';\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { escapeRegExpCharacters } from '../../../../base/common/strings.js';\nimport * as types from '../../../../base/common/types.js';\nimport './folding.css';\nimport { StableEditorScrollState } from '../../../browser/stableEditorScroll.js';\nimport { EditorAction, registerEditorAction, registerEditorContribution, registerInstantiatedEditorAction } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { FoldingRangeKind } from '../../../common/languages.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { FoldingModel, getNextFoldLine, getParentFoldLine as getParentFoldLine, getPreviousFoldLine, setCollapseStateAtLevel, setCollapseStateForMatchingLines, setCollapseStateForRest, setCollapseStateForType, setCollapseStateLevelsDown, setCollapseStateLevelsUp, setCollapseStateUp, toggleCollapseState } from './foldingModel.js';\nimport { HiddenRangeModel } from './hiddenRangeModel.js';\nimport { IndentRangeProvider } from './indentRangeProvider.js';\nimport * as nls from '../../../../nls.js';\nimport { IContextKeyService, RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { FoldingDecorationProvider } from './foldingDecorations.js';\nimport { FoldingRegions } from './foldingRanges.js';\nimport { SyntaxRangeProvider } from './syntaxRangeProvider.js';\nimport { INotificationService } from '../../../../platform/notification/common/notification.js';\nimport { ILanguageFeatureDebounceService } from '../../../common/services/languageFeatureDebounce.js';\nimport { StopWatch } from '../../../../base/common/stopwatch.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { Emitter } from '../../../../base/common/event.js';\nimport { CommandsRegistry } from '../../../../platform/commands/common/commands.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport { IModelService } from '../../../common/services/model.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nconst CONTEXT_FOLDING_ENABLED = new RawContextKey('foldingEnabled', false);\nlet FoldingController = FoldingController_1 = class FoldingController extends Disposable {\n    static get(editor) {\n        return editor.getContribution(FoldingController_1.ID);\n    }\n    static getFoldingRangeProviders(languageFeaturesService, model) {\n        var _a, _b;\n        const foldingRangeProviders = languageFeaturesService.foldingRangeProvider.ordered(model);\n        return (_b = ((_a = FoldingController_1._foldingRangeSelector) === null || _a === void 0 ? void 0 : _a.call(FoldingController_1, foldingRangeProviders, model))) !== null && _b !== void 0 ? _b : foldingRangeProviders;\n    }\n    constructor(editor, contextKeyService, languageConfigurationService, notificationService, languageFeatureDebounceService, languageFeaturesService) {\n        super();\n        this.contextKeyService = contextKeyService;\n        this.languageConfigurationService = languageConfigurationService;\n        this.languageFeaturesService = languageFeaturesService;\n        this.localToDispose = this._register(new DisposableStore());\n        this.editor = editor;\n        this._foldingLimitReporter = new RangesLimitReporter(editor);\n        const options = this.editor.getOptions();\n        this._isEnabled = options.get(43 /* EditorOption.folding */);\n        this._useFoldingProviders = options.get(44 /* EditorOption.foldingStrategy */) !== 'indentation';\n        this._unfoldOnClickAfterEndOfLine = options.get(48 /* EditorOption.unfoldOnClickAfterEndOfLine */);\n        this._restoringViewState = false;\n        this._currentModelHasFoldedImports = false;\n        this._foldingImportsByDefault = options.get(46 /* EditorOption.foldingImportsByDefault */);\n        this.updateDebounceInfo = languageFeatureDebounceService.for(languageFeaturesService.foldingRangeProvider, 'Folding', { min: 200 });\n        this.foldingModel = null;\n        this.hiddenRangeModel = null;\n        this.rangeProvider = null;\n        this.foldingRegionPromise = null;\n        this.foldingModelPromise = null;\n        this.updateScheduler = null;\n        this.cursorChangedScheduler = null;\n        this.mouseDownInfo = null;\n        this.foldingDecorationProvider = new FoldingDecorationProvider(editor);\n        this.foldingDecorationProvider.showFoldingControls = options.get(110 /* EditorOption.showFoldingControls */);\n        this.foldingDecorationProvider.showFoldingHighlights = options.get(45 /* EditorOption.foldingHighlight */);\n        this.foldingEnabled = CONTEXT_FOLDING_ENABLED.bindTo(this.contextKeyService);\n        this.foldingEnabled.set(this._isEnabled);\n        this._register(this.editor.onDidChangeModel(() => this.onModelChanged()));\n        this._register(this.editor.onDidChangeConfiguration((e) => {\n            if (e.hasChanged(43 /* EditorOption.folding */)) {\n                this._isEnabled = this.editor.getOptions().get(43 /* EditorOption.folding */);\n                this.foldingEnabled.set(this._isEnabled);\n                this.onModelChanged();\n            }\n            if (e.hasChanged(47 /* EditorOption.foldingMaximumRegions */)) {\n                this.onModelChanged();\n            }\n            if (e.hasChanged(110 /* EditorOption.showFoldingControls */) || e.hasChanged(45 /* EditorOption.foldingHighlight */)) {\n                const options = this.editor.getOptions();\n                this.foldingDecorationProvider.showFoldingControls = options.get(110 /* EditorOption.showFoldingControls */);\n                this.foldingDecorationProvider.showFoldingHighlights = options.get(45 /* EditorOption.foldingHighlight */);\n                this.triggerFoldingModelChanged();\n            }\n            if (e.hasChanged(44 /* EditorOption.foldingStrategy */)) {\n                this._useFoldingProviders = this.editor.getOptions().get(44 /* EditorOption.foldingStrategy */) !== 'indentation';\n                this.onFoldingStrategyChanged();\n            }\n            if (e.hasChanged(48 /* EditorOption.unfoldOnClickAfterEndOfLine */)) {\n                this._unfoldOnClickAfterEndOfLine = this.editor.getOptions().get(48 /* EditorOption.unfoldOnClickAfterEndOfLine */);\n            }\n            if (e.hasChanged(46 /* EditorOption.foldingImportsByDefault */)) {\n                this._foldingImportsByDefault = this.editor.getOptions().get(46 /* EditorOption.foldingImportsByDefault */);\n            }\n        }));\n        this.onModelChanged();\n    }\n    /**\n     * Store view state.\n     */\n    saveViewState() {\n        const model = this.editor.getModel();\n        if (!model || !this._isEnabled || model.isTooLargeForTokenization()) {\n            return {};\n        }\n        if (this.foldingModel) { // disposed ?\n            const collapsedRegions = this.foldingModel.getMemento();\n            const provider = this.rangeProvider ? this.rangeProvider.id : undefined;\n            return { collapsedRegions, lineCount: model.getLineCount(), provider, foldedImports: this._currentModelHasFoldedImports };\n        }\n        return undefined;\n    }\n    /**\n     * Restore view state.\n     */\n    restoreViewState(state) {\n        const model = this.editor.getModel();\n        if (!model || !this._isEnabled || model.isTooLargeForTokenization() || !this.hiddenRangeModel) {\n            return;\n        }\n        if (!state) {\n            return;\n        }\n        this._currentModelHasFoldedImports = !!state.foldedImports;\n        if (state.collapsedRegions && state.collapsedRegions.length > 0 && this.foldingModel) {\n            this._restoringViewState = true;\n            try {\n                this.foldingModel.applyMemento(state.collapsedRegions);\n            }\n            finally {\n                this._restoringViewState = false;\n            }\n        }\n    }\n    onModelChanged() {\n        this.localToDispose.clear();\n        const model = this.editor.getModel();\n        if (!this._isEnabled || !model || model.isTooLargeForTokenization()) {\n            // huge files get no view model, so they cannot support hidden areas\n            return;\n        }\n        this._currentModelHasFoldedImports = false;\n        this.foldingModel = new FoldingModel(model, this.foldingDecorationProvider);\n        this.localToDispose.add(this.foldingModel);\n        this.hiddenRangeModel = new HiddenRangeModel(this.foldingModel);\n        this.localToDispose.add(this.hiddenRangeModel);\n        this.localToDispose.add(this.hiddenRangeModel.onDidChange(hr => this.onHiddenRangesChanges(hr)));\n        this.updateScheduler = new Delayer(this.updateDebounceInfo.get(model));\n        this.cursorChangedScheduler = new RunOnceScheduler(() => this.revealCursor(), 200);\n        this.localToDispose.add(this.cursorChangedScheduler);\n        this.localToDispose.add(this.languageFeaturesService.foldingRangeProvider.onDidChange(() => this.onFoldingStrategyChanged()));\n        this.localToDispose.add(this.editor.onDidChangeModelLanguageConfiguration(() => this.onFoldingStrategyChanged())); // covers model language changes as well\n        this.localToDispose.add(this.editor.onDidChangeModelContent(e => this.onDidChangeModelContent(e)));\n        this.localToDispose.add(this.editor.onDidChangeCursorPosition(() => this.onCursorPositionChanged()));\n        this.localToDispose.add(this.editor.onMouseDown(e => this.onEditorMouseDown(e)));\n        this.localToDispose.add(this.editor.onMouseUp(e => this.onEditorMouseUp(e)));\n        this.localToDispose.add({\n            dispose: () => {\n                var _a, _b;\n                if (this.foldingRegionPromise) {\n                    this.foldingRegionPromise.cancel();\n                    this.foldingRegionPromise = null;\n                }\n                (_a = this.updateScheduler) === null || _a === void 0 ? void 0 : _a.cancel();\n                this.updateScheduler = null;\n                this.foldingModel = null;\n                this.foldingModelPromise = null;\n                this.hiddenRangeModel = null;\n                this.cursorChangedScheduler = null;\n                (_b = this.rangeProvider) === null || _b === void 0 ? void 0 : _b.dispose();\n                this.rangeProvider = null;\n            }\n        });\n        this.triggerFoldingModelChanged();\n    }\n    onFoldingStrategyChanged() {\n        var _a;\n        (_a = this.rangeProvider) === null || _a === void 0 ? void 0 : _a.dispose();\n        this.rangeProvider = null;\n        this.triggerFoldingModelChanged();\n    }\n    getRangeProvider(editorModel) {\n        if (this.rangeProvider) {\n            return this.rangeProvider;\n        }\n        const indentRangeProvider = new IndentRangeProvider(editorModel, this.languageConfigurationService, this._foldingLimitReporter);\n        this.rangeProvider = indentRangeProvider; // fallback\n        if (this._useFoldingProviders && this.foldingModel) {\n            const selectedProviders = FoldingController_1.getFoldingRangeProviders(this.languageFeaturesService, editorModel);\n            if (selectedProviders.length > 0) {\n                this.rangeProvider = new SyntaxRangeProvider(editorModel, selectedProviders, () => this.triggerFoldingModelChanged(), this._foldingLimitReporter, indentRangeProvider);\n            }\n        }\n        return this.rangeProvider;\n    }\n    getFoldingModel() {\n        return this.foldingModelPromise;\n    }\n    onDidChangeModelContent(e) {\n        var _a;\n        (_a = this.hiddenRangeModel) === null || _a === void 0 ? void 0 : _a.notifyChangeModelContent(e);\n        this.triggerFoldingModelChanged();\n    }\n    triggerFoldingModelChanged() {\n        if (this.updateScheduler) {\n            if (this.foldingRegionPromise) {\n                this.foldingRegionPromise.cancel();\n                this.foldingRegionPromise = null;\n            }\n            this.foldingModelPromise = this.updateScheduler.trigger(() => {\n                const foldingModel = this.foldingModel;\n                if (!foldingModel) { // null if editor has been disposed, or folding turned off\n                    return null;\n                }\n                const sw = new StopWatch();\n                const provider = this.getRangeProvider(foldingModel.textModel);\n                const foldingRegionPromise = this.foldingRegionPromise = createCancelablePromise(token => provider.compute(token));\n                return foldingRegionPromise.then(foldingRanges => {\n                    if (foldingRanges && foldingRegionPromise === this.foldingRegionPromise) { // new request or cancelled in the meantime?\n                        let scrollState;\n                        if (this._foldingImportsByDefault && !this._currentModelHasFoldedImports) {\n                            const hasChanges = foldingRanges.setCollapsedAllOfType(FoldingRangeKind.Imports.value, true);\n                            if (hasChanges) {\n                                scrollState = StableEditorScrollState.capture(this.editor);\n                                this._currentModelHasFoldedImports = hasChanges;\n                            }\n                        }\n                        // some cursors might have moved into hidden regions, make sure they are in expanded regions\n                        const selections = this.editor.getSelections();\n                        const selectionLineNumbers = selections ? selections.map(s => s.startLineNumber) : [];\n                        foldingModel.update(foldingRanges, selectionLineNumbers);\n                        scrollState === null || scrollState === void 0 ? void 0 : scrollState.restore(this.editor);\n                        // update debounce info\n                        const newValue = this.updateDebounceInfo.update(foldingModel.textModel, sw.elapsed());\n                        if (this.updateScheduler) {\n                            this.updateScheduler.defaultDelay = newValue;\n                        }\n                    }\n                    return foldingModel;\n                });\n            }).then(undefined, (err) => {\n                onUnexpectedError(err);\n                return null;\n            });\n        }\n    }\n    onHiddenRangesChanges(hiddenRanges) {\n        if (this.hiddenRangeModel && hiddenRanges.length && !this._restoringViewState) {\n            const selections = this.editor.getSelections();\n            if (selections) {\n                if (this.hiddenRangeModel.adjustSelections(selections)) {\n                    this.editor.setSelections(selections);\n                }\n            }\n        }\n        this.editor.setHiddenAreas(hiddenRanges, this);\n    }\n    onCursorPositionChanged() {\n        if (this.hiddenRangeModel && this.hiddenRangeModel.hasRanges()) {\n            this.cursorChangedScheduler.schedule();\n        }\n    }\n    revealCursor() {\n        const foldingModel = this.getFoldingModel();\n        if (!foldingModel) {\n            return;\n        }\n        foldingModel.then(foldingModel => {\n            if (foldingModel) {\n                const selections = this.editor.getSelections();\n                if (selections && selections.length > 0) {\n                    const toToggle = [];\n                    for (const selection of selections) {\n                        const lineNumber = selection.selectionStartLineNumber;\n                        if (this.hiddenRangeModel && this.hiddenRangeModel.isHidden(lineNumber)) {\n                            toToggle.push(...foldingModel.getAllRegionsAtLine(lineNumber, r => r.isCollapsed && lineNumber > r.startLineNumber));\n                        }\n                    }\n                    if (toToggle.length) {\n                        foldingModel.toggleCollapseState(toToggle);\n                        this.reveal(selections[0].getPosition());\n                    }\n                }\n            }\n        }).then(undefined, onUnexpectedError);\n    }\n    onEditorMouseDown(e) {\n        this.mouseDownInfo = null;\n        if (!this.hiddenRangeModel || !e.target || !e.target.range) {\n            return;\n        }\n        if (!e.event.leftButton && !e.event.middleButton) {\n            return;\n        }\n        const range = e.target.range;\n        let iconClicked = false;\n        switch (e.target.type) {\n            case 4 /* MouseTargetType.GUTTER_LINE_DECORATIONS */: {\n                const data = e.target.detail;\n                const offsetLeftInGutter = e.target.element.offsetLeft;\n                const gutterOffsetX = data.offsetX - offsetLeftInGutter;\n                // const gutterOffsetX = data.offsetX - data.glyphMarginWidth - data.lineNumbersWidth - data.glyphMarginLeft;\n                // TODO@joao TODO@alex TODO@martin this is such that we don't collide with dirty diff\n                if (gutterOffsetX < 4) { // the whitespace between the border and the real folding icon border is 4px\n                    return;\n                }\n                iconClicked = true;\n                break;\n            }\n            case 7 /* MouseTargetType.CONTENT_EMPTY */: {\n                if (this._unfoldOnClickAfterEndOfLine && this.hiddenRangeModel.hasRanges()) {\n                    const data = e.target.detail;\n                    if (!data.isAfterLines) {\n                        break;\n                    }\n                }\n                return;\n            }\n            case 6 /* MouseTargetType.CONTENT_TEXT */: {\n                if (this.hiddenRangeModel.hasRanges()) {\n                    const model = this.editor.getModel();\n                    if (model && range.startColumn === model.getLineMaxColumn(range.startLineNumber)) {\n                        break;\n                    }\n                }\n                return;\n            }\n            default:\n                return;\n        }\n        this.mouseDownInfo = { lineNumber: range.startLineNumber, iconClicked };\n    }\n    onEditorMouseUp(e) {\n        const foldingModel = this.foldingModel;\n        if (!foldingModel || !this.mouseDownInfo || !e.target) {\n            return;\n        }\n        const lineNumber = this.mouseDownInfo.lineNumber;\n        const iconClicked = this.mouseDownInfo.iconClicked;\n        const range = e.target.range;\n        if (!range || range.startLineNumber !== lineNumber) {\n            return;\n        }\n        if (iconClicked) {\n            if (e.target.type !== 4 /* MouseTargetType.GUTTER_LINE_DECORATIONS */) {\n                return;\n            }\n        }\n        else {\n            const model = this.editor.getModel();\n            if (!model || range.startColumn !== model.getLineMaxColumn(lineNumber)) {\n                return;\n            }\n        }\n        const region = foldingModel.getRegionAtLine(lineNumber);\n        if (region && region.startLineNumber === lineNumber) {\n            const isCollapsed = region.isCollapsed;\n            if (iconClicked || isCollapsed) {\n                const surrounding = e.event.altKey;\n                let toToggle = [];\n                if (surrounding) {\n                    const filter = (otherRegion) => !otherRegion.containedBy(region) && !region.containedBy(otherRegion);\n                    const toMaybeToggle = foldingModel.getRegionsInside(null, filter);\n                    for (const r of toMaybeToggle) {\n                        if (r.isCollapsed) {\n                            toToggle.push(r);\n                        }\n                    }\n                    // if any surrounding regions are folded, unfold those. Otherwise, fold all surrounding\n                    if (toToggle.length === 0) {\n                        toToggle = toMaybeToggle;\n                    }\n                }\n                else {\n                    const recursive = e.event.middleButton || e.event.shiftKey;\n                    if (recursive) {\n                        for (const r of foldingModel.getRegionsInside(region)) {\n                            if (r.isCollapsed === isCollapsed) {\n                                toToggle.push(r);\n                            }\n                        }\n                    }\n                    // when recursive, first only collapse all children. If all are already folded or there are no children, also fold parent.\n                    if (isCollapsed || !recursive || toToggle.length === 0) {\n                        toToggle.push(region);\n                    }\n                }\n                foldingModel.toggleCollapseState(toToggle);\n                this.reveal({ lineNumber, column: 1 });\n            }\n        }\n    }\n    reveal(position) {\n        this.editor.revealPositionInCenterIfOutsideViewport(position, 0 /* ScrollType.Smooth */);\n    }\n};\nFoldingController.ID = 'editor.contrib.folding';\nFoldingController = FoldingController_1 = __decorate([\n    __param(1, IContextKeyService),\n    __param(2, ILanguageConfigurationService),\n    __param(3, INotificationService),\n    __param(4, ILanguageFeatureDebounceService),\n    __param(5, ILanguageFeaturesService)\n], FoldingController);\nexport { FoldingController };\nexport class RangesLimitReporter {\n    constructor(editor) {\n        this.editor = editor;\n        this._onDidChange = new Emitter();\n        this._computed = 0;\n        this._limited = false;\n    }\n    get limit() {\n        return this.editor.getOptions().get(47 /* EditorOption.foldingMaximumRegions */);\n    }\n    update(computed, limited) {\n        if (computed !== this._computed || limited !== this._limited) {\n            this._computed = computed;\n            this._limited = limited;\n            this._onDidChange.fire();\n        }\n    }\n}\nclass FoldingAction extends EditorAction {\n    runEditorCommand(accessor, editor, args) {\n        const languageConfigurationService = accessor.get(ILanguageConfigurationService);\n        const foldingController = FoldingController.get(editor);\n        if (!foldingController) {\n            return;\n        }\n        const foldingModelPromise = foldingController.getFoldingModel();\n        if (foldingModelPromise) {\n            this.reportTelemetry(accessor, editor);\n            return foldingModelPromise.then(foldingModel => {\n                if (foldingModel) {\n                    this.invoke(foldingController, foldingModel, editor, args, languageConfigurationService);\n                    const selection = editor.getSelection();\n                    if (selection) {\n                        foldingController.reveal(selection.getStartPosition());\n                    }\n                }\n            });\n        }\n    }\n    getSelectedLines(editor) {\n        const selections = editor.getSelections();\n        return selections ? selections.map(s => s.startLineNumber) : [];\n    }\n    getLineNumbers(args, editor) {\n        if (args && args.selectionLines) {\n            return args.selectionLines.map(l => l + 1); // to 0-bases line numbers\n        }\n        return this.getSelectedLines(editor);\n    }\n    run(_accessor, _editor) {\n    }\n}\nfunction foldingArgumentsConstraint(args) {\n    if (!types.isUndefined(args)) {\n        if (!types.isObject(args)) {\n            return false;\n        }\n        const foldingArgs = args;\n        if (!types.isUndefined(foldingArgs.levels) && !types.isNumber(foldingArgs.levels)) {\n            return false;\n        }\n        if (!types.isUndefined(foldingArgs.direction) && !types.isString(foldingArgs.direction)) {\n            return false;\n        }\n        if (!types.isUndefined(foldingArgs.selectionLines) && (!Array.isArray(foldingArgs.selectionLines) || !foldingArgs.selectionLines.every(types.isNumber))) {\n            return false;\n        }\n    }\n    return true;\n}\nclass UnfoldAction extends FoldingAction {\n    constructor() {\n        super({\n            id: 'editor.unfold',\n            label: nls.localize('unfoldAction.label', \"Unfold\"),\n            alias: 'Unfold',\n            precondition: CONTEXT_FOLDING_ENABLED,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 94 /* KeyCode.BracketRight */,\n                mac: {\n                    primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 94 /* KeyCode.BracketRight */\n                },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            metadata: {\n                description: 'Unfold the content in the editor',\n                args: [\n                    {\n                        name: 'Unfold editor argument',\n                        description: `Property-value pairs that can be passed through this argument:\n\t\t\t\t\t\t* 'levels': Number of levels to unfold. If not set, defaults to 1.\n\t\t\t\t\t\t* 'direction': If 'up', unfold given number of levels up otherwise unfolds down.\n\t\t\t\t\t\t* 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the unfold action to. If not set, the active selection(s) will be used.\n\t\t\t\t\t\t`,\n                        constraint: foldingArgumentsConstraint,\n                        schema: {\n                            'type': 'object',\n                            'properties': {\n                                'levels': {\n                                    'type': 'number',\n                                    'default': 1\n                                },\n                                'direction': {\n                                    'type': 'string',\n                                    'enum': ['up', 'down'],\n                                    'default': 'down'\n                                },\n                                'selectionLines': {\n                                    'type': 'array',\n                                    'items': {\n                                        'type': 'number'\n                                    }\n                                }\n                            }\n                        }\n                    }\n                ]\n            }\n        });\n    }\n    invoke(_foldingController, foldingModel, editor, args) {\n        const levels = args && args.levels || 1;\n        const lineNumbers = this.getLineNumbers(args, editor);\n        if (args && args.direction === 'up') {\n            setCollapseStateLevelsUp(foldingModel, false, levels, lineNumbers);\n        }\n        else {\n            setCollapseStateLevelsDown(foldingModel, false, levels, lineNumbers);\n        }\n    }\n}\nclass UnFoldRecursivelyAction extends FoldingAction {\n    constructor() {\n        super({\n            id: 'editor.unfoldRecursively',\n            label: nls.localize('unFoldRecursivelyAction.label', \"Unfold Recursively\"),\n            alias: 'Unfold Recursively',\n            precondition: CONTEXT_FOLDING_ENABLED,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 94 /* KeyCode.BracketRight */),\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    invoke(_foldingController, foldingModel, editor, _args) {\n        setCollapseStateLevelsDown(foldingModel, false, Number.MAX_VALUE, this.getSelectedLines(editor));\n    }\n}\nclass FoldAction extends FoldingAction {\n    constructor() {\n        super({\n            id: 'editor.fold',\n            label: nls.localize('foldAction.label', \"Fold\"),\n            alias: 'Fold',\n            precondition: CONTEXT_FOLDING_ENABLED,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 92 /* KeyCode.BracketLeft */,\n                mac: {\n                    primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 92 /* KeyCode.BracketLeft */\n                },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            metadata: {\n                description: 'Fold the content in the editor',\n                args: [\n                    {\n                        name: 'Fold editor argument',\n                        description: `Property-value pairs that can be passed through this argument:\n\t\t\t\t\t\t\t* 'levels': Number of levels to fold.\n\t\t\t\t\t\t\t* 'direction': If 'up', folds given number of levels up otherwise folds down.\n\t\t\t\t\t\t\t* 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the fold action to. If not set, the active selection(s) will be used.\n\t\t\t\t\t\t\tIf no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead.\n\t\t\t\t\t\t`,\n                        constraint: foldingArgumentsConstraint,\n                        schema: {\n                            'type': 'object',\n                            'properties': {\n                                'levels': {\n                                    'type': 'number',\n                                },\n                                'direction': {\n                                    'type': 'string',\n                                    'enum': ['up', 'down'],\n                                },\n                                'selectionLines': {\n                                    'type': 'array',\n                                    'items': {\n                                        'type': 'number'\n                                    }\n                                }\n                            }\n                        }\n                    }\n                ]\n            }\n        });\n    }\n    invoke(_foldingController, foldingModel, editor, args) {\n        const lineNumbers = this.getLineNumbers(args, editor);\n        const levels = args && args.levels;\n        const direction = args && args.direction;\n        if (typeof levels !== 'number' && typeof direction !== 'string') {\n            // fold the region at the location or if already collapsed, the first uncollapsed parent instead.\n            setCollapseStateUp(foldingModel, true, lineNumbers);\n        }\n        else {\n            if (direction === 'up') {\n                setCollapseStateLevelsUp(foldingModel, true, levels || 1, lineNumbers);\n            }\n            else {\n                setCollapseStateLevelsDown(foldingModel, true, levels || 1, lineNumbers);\n            }\n        }\n    }\n}\nclass ToggleFoldAction extends FoldingAction {\n    constructor() {\n        super({\n            id: 'editor.toggleFold',\n            label: nls.localize('toggleFoldAction.label', \"Toggle Fold\"),\n            alias: 'Toggle Fold',\n            precondition: CONTEXT_FOLDING_ENABLED,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 42 /* KeyCode.KeyL */),\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    invoke(_foldingController, foldingModel, editor) {\n        const selectedLines = this.getSelectedLines(editor);\n        toggleCollapseState(foldingModel, 1, selectedLines);\n    }\n}\nclass FoldRecursivelyAction extends FoldingAction {\n    constructor() {\n        super({\n            id: 'editor.foldRecursively',\n            label: nls.localize('foldRecursivelyAction.label', \"Fold Recursively\"),\n            alias: 'Fold Recursively',\n            precondition: CONTEXT_FOLDING_ENABLED,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 92 /* KeyCode.BracketLeft */),\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    invoke(_foldingController, foldingModel, editor) {\n        const selectedLines = this.getSelectedLines(editor);\n        setCollapseStateLevelsDown(foldingModel, true, Number.MAX_VALUE, selectedLines);\n    }\n}\nclass FoldAllBlockCommentsAction extends FoldingAction {\n    constructor() {\n        super({\n            id: 'editor.foldAllBlockComments',\n            label: nls.localize('foldAllBlockComments.label', \"Fold All Block Comments\"),\n            alias: 'Fold All Block Comments',\n            precondition: CONTEXT_FOLDING_ENABLED,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 90 /* KeyCode.Slash */),\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    invoke(_foldingController, foldingModel, editor, args, languageConfigurationService) {\n        if (foldingModel.regions.hasTypes()) {\n            setCollapseStateForType(foldingModel, FoldingRangeKind.Comment.value, true);\n        }\n        else {\n            const editorModel = editor.getModel();\n            if (!editorModel) {\n                return;\n            }\n            const comments = languageConfigurationService.getLanguageConfiguration(editorModel.getLanguageId()).comments;\n            if (comments && comments.blockCommentStartToken) {\n                const regExp = new RegExp('^\\\\s*' + escapeRegExpCharacters(comments.blockCommentStartToken));\n                setCollapseStateForMatchingLines(foldingModel, regExp, true);\n            }\n        }\n    }\n}\nclass FoldAllRegionsAction extends FoldingAction {\n    constructor() {\n        super({\n            id: 'editor.foldAllMarkerRegions',\n            label: nls.localize('foldAllMarkerRegions.label', \"Fold All Regions\"),\n            alias: 'Fold All Regions',\n            precondition: CONTEXT_FOLDING_ENABLED,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 29 /* KeyCode.Digit8 */),\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    invoke(_foldingController, foldingModel, editor, args, languageConfigurationService) {\n        if (foldingModel.regions.hasTypes()) {\n            setCollapseStateForType(foldingModel, FoldingRangeKind.Region.value, true);\n        }\n        else {\n            const editorModel = editor.getModel();\n            if (!editorModel) {\n                return;\n            }\n            const foldingRules = languageConfigurationService.getLanguageConfiguration(editorModel.getLanguageId()).foldingRules;\n            if (foldingRules && foldingRules.markers && foldingRules.markers.start) {\n                const regExp = new RegExp(foldingRules.markers.start);\n                setCollapseStateForMatchingLines(foldingModel, regExp, true);\n            }\n        }\n    }\n}\nclass UnfoldAllRegionsAction extends FoldingAction {\n    constructor() {\n        super({\n            id: 'editor.unfoldAllMarkerRegions',\n            label: nls.localize('unfoldAllMarkerRegions.label', \"Unfold All Regions\"),\n            alias: 'Unfold All Regions',\n            precondition: CONTEXT_FOLDING_ENABLED,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 30 /* KeyCode.Digit9 */),\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    invoke(_foldingController, foldingModel, editor, args, languageConfigurationService) {\n        if (foldingModel.regions.hasTypes()) {\n            setCollapseStateForType(foldingModel, FoldingRangeKind.Region.value, false);\n        }\n        else {\n            const editorModel = editor.getModel();\n            if (!editorModel) {\n                return;\n            }\n            const foldingRules = languageConfigurationService.getLanguageConfiguration(editorModel.getLanguageId()).foldingRules;\n            if (foldingRules && foldingRules.markers && foldingRules.markers.start) {\n                const regExp = new RegExp(foldingRules.markers.start);\n                setCollapseStateForMatchingLines(foldingModel, regExp, false);\n            }\n        }\n    }\n}\nclass FoldAllExceptAction extends FoldingAction {\n    constructor() {\n        super({\n            id: 'editor.foldAllExcept',\n            label: nls.localize('foldAllExcept.label', \"Fold All Except Selected\"),\n            alias: 'Fold All Except Selected',\n            precondition: CONTEXT_FOLDING_ENABLED,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 88 /* KeyCode.Minus */),\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    invoke(_foldingController, foldingModel, editor) {\n        const selectedLines = this.getSelectedLines(editor);\n        setCollapseStateForRest(foldingModel, true, selectedLines);\n    }\n}\nclass UnfoldAllExceptAction extends FoldingAction {\n    constructor() {\n        super({\n            id: 'editor.unfoldAllExcept',\n            label: nls.localize('unfoldAllExcept.label', \"Unfold All Except Selected\"),\n            alias: 'Unfold All Except Selected',\n            precondition: CONTEXT_FOLDING_ENABLED,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 86 /* KeyCode.Equal */),\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    invoke(_foldingController, foldingModel, editor) {\n        const selectedLines = this.getSelectedLines(editor);\n        setCollapseStateForRest(foldingModel, false, selectedLines);\n    }\n}\nclass FoldAllAction extends FoldingAction {\n    constructor() {\n        super({\n            id: 'editor.foldAll',\n            label: nls.localize('foldAllAction.label', \"Fold All\"),\n            alias: 'Fold All',\n            precondition: CONTEXT_FOLDING_ENABLED,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 21 /* KeyCode.Digit0 */),\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    invoke(_foldingController, foldingModel, _editor) {\n        setCollapseStateLevelsDown(foldingModel, true);\n    }\n}\nclass UnfoldAllAction extends FoldingAction {\n    constructor() {\n        super({\n            id: 'editor.unfoldAll',\n            label: nls.localize('unfoldAllAction.label', \"Unfold All\"),\n            alias: 'Unfold All',\n            precondition: CONTEXT_FOLDING_ENABLED,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 40 /* KeyCode.KeyJ */),\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    invoke(_foldingController, foldingModel, _editor) {\n        setCollapseStateLevelsDown(foldingModel, false);\n    }\n}\nclass FoldLevelAction extends FoldingAction {\n    getFoldingLevel() {\n        return parseInt(this.id.substr(FoldLevelAction.ID_PREFIX.length));\n    }\n    invoke(_foldingController, foldingModel, editor) {\n        setCollapseStateAtLevel(foldingModel, this.getFoldingLevel(), true, this.getSelectedLines(editor));\n    }\n}\nFoldLevelAction.ID_PREFIX = 'editor.foldLevel';\nFoldLevelAction.ID = (level) => FoldLevelAction.ID_PREFIX + level;\n/** Action to go to the parent fold of current line */\nclass GotoParentFoldAction extends FoldingAction {\n    constructor() {\n        super({\n            id: 'editor.gotoParentFold',\n            label: nls.localize('gotoParentFold.label', \"Go to Parent Fold\"),\n            alias: 'Go to Parent Fold',\n            precondition: CONTEXT_FOLDING_ENABLED,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    invoke(_foldingController, foldingModel, editor) {\n        const selectedLines = this.getSelectedLines(editor);\n        if (selectedLines.length > 0) {\n            const startLineNumber = getParentFoldLine(selectedLines[0], foldingModel);\n            if (startLineNumber !== null) {\n                editor.setSelection({\n                    startLineNumber: startLineNumber,\n                    startColumn: 1,\n                    endLineNumber: startLineNumber,\n                    endColumn: 1\n                });\n            }\n        }\n    }\n}\n/** Action to go to the previous fold of current line */\nclass GotoPreviousFoldAction extends FoldingAction {\n    constructor() {\n        super({\n            id: 'editor.gotoPreviousFold',\n            label: nls.localize('gotoPreviousFold.label', \"Go to Previous Folding Range\"),\n            alias: 'Go to Previous Folding Range',\n            precondition: CONTEXT_FOLDING_ENABLED,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    invoke(_foldingController, foldingModel, editor) {\n        const selectedLines = this.getSelectedLines(editor);\n        if (selectedLines.length > 0) {\n            const startLineNumber = getPreviousFoldLine(selectedLines[0], foldingModel);\n            if (startLineNumber !== null) {\n                editor.setSelection({\n                    startLineNumber: startLineNumber,\n                    startColumn: 1,\n                    endLineNumber: startLineNumber,\n                    endColumn: 1\n                });\n            }\n        }\n    }\n}\n/** Action to go to the next fold of current line */\nclass GotoNextFoldAction extends FoldingAction {\n    constructor() {\n        super({\n            id: 'editor.gotoNextFold',\n            label: nls.localize('gotoNextFold.label', \"Go to Next Folding Range\"),\n            alias: 'Go to Next Folding Range',\n            precondition: CONTEXT_FOLDING_ENABLED,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    invoke(_foldingController, foldingModel, editor) {\n        const selectedLines = this.getSelectedLines(editor);\n        if (selectedLines.length > 0) {\n            const startLineNumber = getNextFoldLine(selectedLines[0], foldingModel);\n            if (startLineNumber !== null) {\n                editor.setSelection({\n                    startLineNumber: startLineNumber,\n                    startColumn: 1,\n                    endLineNumber: startLineNumber,\n                    endColumn: 1\n                });\n            }\n        }\n    }\n}\nclass FoldRangeFromSelectionAction extends FoldingAction {\n    constructor() {\n        super({\n            id: 'editor.createFoldingRangeFromSelection',\n            label: nls.localize('createManualFoldRange.label', \"Create Folding Range from Selection\"),\n            alias: 'Create Folding Range from Selection',\n            precondition: CONTEXT_FOLDING_ENABLED,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 87 /* KeyCode.Comma */),\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    invoke(_foldingController, foldingModel, editor) {\n        var _a;\n        const collapseRanges = [];\n        const selections = editor.getSelections();\n        if (selections) {\n            for (const selection of selections) {\n                let endLineNumber = selection.endLineNumber;\n                if (selection.endColumn === 1) {\n                    --endLineNumber;\n                }\n                if (endLineNumber > selection.startLineNumber) {\n                    collapseRanges.push({\n                        startLineNumber: selection.startLineNumber,\n                        endLineNumber: endLineNumber,\n                        type: undefined,\n                        isCollapsed: true,\n                        source: 1 /* FoldSource.userDefined */\n                    });\n                    editor.setSelection({\n                        startLineNumber: selection.startLineNumber,\n                        startColumn: 1,\n                        endLineNumber: selection.startLineNumber,\n                        endColumn: 1\n                    });\n                }\n            }\n            if (collapseRanges.length > 0) {\n                collapseRanges.sort((a, b) => {\n                    return a.startLineNumber - b.startLineNumber;\n                });\n                const newRanges = FoldingRegions.sanitizeAndMerge(foldingModel.regions, collapseRanges, (_a = editor.getModel()) === null || _a === void 0 ? void 0 : _a.getLineCount());\n                foldingModel.updatePost(FoldingRegions.fromFoldRanges(newRanges));\n            }\n        }\n    }\n}\nclass RemoveFoldRangeFromSelectionAction extends FoldingAction {\n    constructor() {\n        super({\n            id: 'editor.removeManualFoldingRanges',\n            label: nls.localize('removeManualFoldingRanges.label', \"Remove Manual Folding Ranges\"),\n            alias: 'Remove Manual Folding Ranges',\n            precondition: CONTEXT_FOLDING_ENABLED,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 89 /* KeyCode.Period */),\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    invoke(foldingController, foldingModel, editor) {\n        const selections = editor.getSelections();\n        if (selections) {\n            const ranges = [];\n            for (const selection of selections) {\n                const { startLineNumber, endLineNumber } = selection;\n                ranges.push(endLineNumber >= startLineNumber ? { startLineNumber, endLineNumber } : { endLineNumber, startLineNumber });\n            }\n            foldingModel.removeManualRanges(ranges);\n            foldingController.triggerFoldingModelChanged();\n        }\n    }\n}\nregisterEditorContribution(FoldingController.ID, FoldingController, 0 /* EditorContributionInstantiation.Eager */); // eager because it uses `saveViewState`/`restoreViewState`\nregisterEditorAction(UnfoldAction);\nregisterEditorAction(UnFoldRecursivelyAction);\nregisterEditorAction(FoldAction);\nregisterEditorAction(FoldRecursivelyAction);\nregisterEditorAction(FoldAllAction);\nregisterEditorAction(UnfoldAllAction);\nregisterEditorAction(FoldAllBlockCommentsAction);\nregisterEditorAction(FoldAllRegionsAction);\nregisterEditorAction(UnfoldAllRegionsAction);\nregisterEditorAction(FoldAllExceptAction);\nregisterEditorAction(UnfoldAllExceptAction);\nregisterEditorAction(ToggleFoldAction);\nregisterEditorAction(GotoParentFoldAction);\nregisterEditorAction(GotoPreviousFoldAction);\nregisterEditorAction(GotoNextFoldAction);\nregisterEditorAction(FoldRangeFromSelectionAction);\nregisterEditorAction(RemoveFoldRangeFromSelectionAction);\nfor (let i = 1; i <= 7; i++) {\n    registerInstantiatedEditorAction(new FoldLevelAction({\n        id: FoldLevelAction.ID(i),\n        label: nls.localize('foldLevelAction.label', \"Fold Level {0}\", i),\n        alias: `Fold Level ${i}`,\n        precondition: CONTEXT_FOLDING_ENABLED,\n        kbOpts: {\n            kbExpr: EditorContextKeys.editorTextFocus,\n            primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | (21 /* KeyCode.Digit0 */ + i)),\n            weight: 100 /* KeybindingWeight.EditorContrib */\n        }\n    }));\n}\nCommandsRegistry.registerCommand('_executeFoldingRangeProvider', async function (accessor, ...args) {\n    const [resource] = args;\n    if (!(resource instanceof URI)) {\n        throw illegalArgument();\n    }\n    const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n    const model = accessor.get(IModelService).getModel(resource);\n    if (!model) {\n        throw illegalArgument();\n    }\n    const configurationService = accessor.get(IConfigurationService);\n    if (!configurationService.getValue('editor.folding', { resource })) {\n        return [];\n    }\n    const languageConfigurationService = accessor.get(ILanguageConfigurationService);\n    const strategy = configurationService.getValue('editor.foldingStrategy', { resource });\n    const foldingLimitReporter = {\n        get limit() {\n            return configurationService.getValue('editor.foldingMaximumRegions', { resource });\n        },\n        update: (computed, limited) => { }\n    };\n    const indentRangeProvider = new IndentRangeProvider(model, languageConfigurationService, foldingLimitReporter);\n    let rangeProvider = indentRangeProvider;\n    if (strategy !== 'indentation') {\n        const providers = FoldingController.getFoldingRangeProviders(languageFeaturesService, model);\n        if (providers.length) {\n            rangeProvider = new SyntaxRangeProvider(model, providers, () => { }, foldingLimitReporter, indentRangeProvider);\n        }\n    }\n    const ranges = await rangeProvider.compute(CancellationToken.None);\n    const result = [];\n    try {\n        if (ranges) {\n            for (let i = 0; i < ranges.length; i++) {\n                const type = ranges.getType(i);\n                result.push({ start: ranges.getStartLineNumber(i), end: ranges.getEndLineNumber(i), kind: type ? FoldingRangeKind.fromValue(type) : undefined });\n            }\n        }\n        return result;\n    }\n    finally {\n        rangeProvider.dispose();\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/folding/browser/foldingDecorations.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { localize } from '../../../../nls.js';\nimport { editorSelectionBackground, iconForeground, registerColor, transparent } from '../../../../platform/theme/common/colorRegistry.js';\nimport { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';\nimport { themeColorFromId } from '../../../../platform/theme/common/themeService.js';\nimport { ThemeIcon } from '../../../../base/common/themables.js';\nconst foldBackground = registerColor('editor.foldBackground', { light: transparent(editorSelectionBackground, 0.3), dark: transparent(editorSelectionBackground, 0.3), hcDark: null, hcLight: null }, localize('foldBackgroundBackground', \"Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations.\"), true);\nregisterColor('editorGutter.foldingControlForeground', { dark: iconForeground, light: iconForeground, hcDark: iconForeground, hcLight: iconForeground }, localize('editorGutter.foldingControlForeground', 'Color of the folding control in the editor gutter.'));\nexport const foldingExpandedIcon = registerIcon('folding-expanded', Codicon.chevronDown, localize('foldingExpandedIcon', 'Icon for expanded ranges in the editor glyph margin.'));\nexport const foldingCollapsedIcon = registerIcon('folding-collapsed', Codicon.chevronRight, localize('foldingCollapsedIcon', 'Icon for collapsed ranges in the editor glyph margin.'));\nexport const foldingManualCollapsedIcon = registerIcon('folding-manual-collapsed', foldingCollapsedIcon, localize('foldingManualCollapedIcon', 'Icon for manually collapsed ranges in the editor glyph margin.'));\nexport const foldingManualExpandedIcon = registerIcon('folding-manual-expanded', foldingExpandedIcon, localize('foldingManualExpandedIcon', 'Icon for manually expanded ranges in the editor glyph margin.'));\nconst foldedBackgroundMinimap = { color: themeColorFromId(foldBackground), position: 1 /* MinimapPosition.Inline */ };\nconst collapsed = localize('linesCollapsed', \"Click to expand the range.\");\nconst expanded = localize('linesExpanded', \"Click to collapse the range.\");\nexport class FoldingDecorationProvider {\n    constructor(editor) {\n        this.editor = editor;\n        this.showFoldingControls = 'mouseover';\n        this.showFoldingHighlights = true;\n    }\n    getDecorationOption(isCollapsed, isHidden, isManual) {\n        if (isHidden) { // is inside another collapsed region\n            return FoldingDecorationProvider.HIDDEN_RANGE_DECORATION;\n        }\n        if (this.showFoldingControls === 'never') {\n            if (isCollapsed) {\n                return this.showFoldingHighlights ? FoldingDecorationProvider.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION : FoldingDecorationProvider.NO_CONTROLS_COLLAPSED_RANGE_DECORATION;\n            }\n            return FoldingDecorationProvider.NO_CONTROLS_EXPANDED_RANGE_DECORATION;\n        }\n        if (isCollapsed) {\n            return isManual ?\n                (this.showFoldingHighlights ? FoldingDecorationProvider.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION : FoldingDecorationProvider.MANUALLY_COLLAPSED_VISUAL_DECORATION)\n                : (this.showFoldingHighlights ? FoldingDecorationProvider.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION : FoldingDecorationProvider.COLLAPSED_VISUAL_DECORATION);\n        }\n        else if (this.showFoldingControls === 'mouseover') {\n            return isManual ? FoldingDecorationProvider.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION : FoldingDecorationProvider.EXPANDED_AUTO_HIDE_VISUAL_DECORATION;\n        }\n        else {\n            return isManual ? FoldingDecorationProvider.MANUALLY_EXPANDED_VISUAL_DECORATION : FoldingDecorationProvider.EXPANDED_VISUAL_DECORATION;\n        }\n    }\n    changeDecorations(callback) {\n        return this.editor.changeDecorations(callback);\n    }\n    removeDecorations(decorationIds) {\n        this.editor.removeDecorations(decorationIds);\n    }\n}\nFoldingDecorationProvider.COLLAPSED_VISUAL_DECORATION = ModelDecorationOptions.register({\n    description: 'folding-collapsed-visual-decoration',\n    stickiness: 0 /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */,\n    afterContentClassName: 'inline-folded',\n    isWholeLine: true,\n    linesDecorationsTooltip: collapsed,\n    firstLineDecorationClassName: ThemeIcon.asClassName(foldingCollapsedIcon),\n});\nFoldingDecorationProvider.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION = ModelDecorationOptions.register({\n    description: 'folding-collapsed-highlighted-visual-decoration',\n    stickiness: 0 /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */,\n    afterContentClassName: 'inline-folded',\n    className: 'folded-background',\n    minimap: foldedBackgroundMinimap,\n    isWholeLine: true,\n    linesDecorationsTooltip: collapsed,\n    firstLineDecorationClassName: ThemeIcon.asClassName(foldingCollapsedIcon)\n});\nFoldingDecorationProvider.MANUALLY_COLLAPSED_VISUAL_DECORATION = ModelDecorationOptions.register({\n    description: 'folding-manually-collapsed-visual-decoration',\n    stickiness: 0 /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */,\n    afterContentClassName: 'inline-folded',\n    isWholeLine: true,\n    linesDecorationsTooltip: collapsed,\n    firstLineDecorationClassName: ThemeIcon.asClassName(foldingManualCollapsedIcon)\n});\nFoldingDecorationProvider.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION = ModelDecorationOptions.register({\n    description: 'folding-manually-collapsed-highlighted-visual-decoration',\n    stickiness: 0 /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */,\n    afterContentClassName: 'inline-folded',\n    className: 'folded-background',\n    minimap: foldedBackgroundMinimap,\n    isWholeLine: true,\n    linesDecorationsTooltip: collapsed,\n    firstLineDecorationClassName: ThemeIcon.asClassName(foldingManualCollapsedIcon)\n});\nFoldingDecorationProvider.NO_CONTROLS_COLLAPSED_RANGE_DECORATION = ModelDecorationOptions.register({\n    description: 'folding-no-controls-range-decoration',\n    stickiness: 0 /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */,\n    afterContentClassName: 'inline-folded',\n    isWholeLine: true,\n    linesDecorationsTooltip: collapsed,\n});\nFoldingDecorationProvider.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION = ModelDecorationOptions.register({\n    description: 'folding-no-controls-range-decoration',\n    stickiness: 0 /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */,\n    afterContentClassName: 'inline-folded',\n    className: 'folded-background',\n    minimap: foldedBackgroundMinimap,\n    isWholeLine: true,\n    linesDecorationsTooltip: collapsed,\n});\nFoldingDecorationProvider.EXPANDED_VISUAL_DECORATION = ModelDecorationOptions.register({\n    description: 'folding-expanded-visual-decoration',\n    stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n    isWholeLine: true,\n    firstLineDecorationClassName: 'alwaysShowFoldIcons ' + ThemeIcon.asClassName(foldingExpandedIcon),\n    linesDecorationsTooltip: expanded,\n});\nFoldingDecorationProvider.EXPANDED_AUTO_HIDE_VISUAL_DECORATION = ModelDecorationOptions.register({\n    description: 'folding-expanded-auto-hide-visual-decoration',\n    stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n    isWholeLine: true,\n    firstLineDecorationClassName: ThemeIcon.asClassName(foldingExpandedIcon),\n    linesDecorationsTooltip: expanded,\n});\nFoldingDecorationProvider.MANUALLY_EXPANDED_VISUAL_DECORATION = ModelDecorationOptions.register({\n    description: 'folding-manually-expanded-visual-decoration',\n    stickiness: 0 /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */,\n    isWholeLine: true,\n    firstLineDecorationClassName: 'alwaysShowFoldIcons ' + ThemeIcon.asClassName(foldingManualExpandedIcon),\n    linesDecorationsTooltip: expanded,\n});\nFoldingDecorationProvider.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION = ModelDecorationOptions.register({\n    description: 'folding-manually-expanded-auto-hide-visual-decoration',\n    stickiness: 0 /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */,\n    isWholeLine: true,\n    firstLineDecorationClassName: ThemeIcon.asClassName(foldingManualExpandedIcon),\n    linesDecorationsTooltip: expanded,\n});\nFoldingDecorationProvider.NO_CONTROLS_EXPANDED_RANGE_DECORATION = ModelDecorationOptions.register({\n    description: 'folding-no-controls-range-decoration',\n    stickiness: 0 /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */,\n    isWholeLine: true\n});\nFoldingDecorationProvider.HIDDEN_RANGE_DECORATION = ModelDecorationOptions.register({\n    description: 'folding-hidden-range-decoration',\n    stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/folding/browser/foldingModel.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../../../base/common/event.js';\nimport { FoldingRegions } from './foldingRanges.js';\nimport { hash } from '../../../../base/common/hash.js';\nexport class FoldingModel {\n    get regions() { return this._regions; }\n    get textModel() { return this._textModel; }\n    constructor(textModel, decorationProvider) {\n        this._updateEventEmitter = new Emitter();\n        this.onDidChange = this._updateEventEmitter.event;\n        this._textModel = textModel;\n        this._decorationProvider = decorationProvider;\n        this._regions = new FoldingRegions(new Uint32Array(0), new Uint32Array(0));\n        this._editorDecorationIds = [];\n    }\n    toggleCollapseState(toggledRegions) {\n        if (!toggledRegions.length) {\n            return;\n        }\n        toggledRegions = toggledRegions.sort((r1, r2) => r1.regionIndex - r2.regionIndex);\n        const processed = {};\n        this._decorationProvider.changeDecorations(accessor => {\n            let k = 0; // index from [0 ... this.regions.length]\n            let dirtyRegionEndLine = -1; // end of the range where decorations need to be updated\n            let lastHiddenLine = -1; // the end of the last hidden lines\n            const updateDecorationsUntil = (index) => {\n                while (k < index) {\n                    const endLineNumber = this._regions.getEndLineNumber(k);\n                    const isCollapsed = this._regions.isCollapsed(k);\n                    if (endLineNumber <= dirtyRegionEndLine) {\n                        const isManual = this.regions.getSource(k) !== 0 /* FoldSource.provider */;\n                        accessor.changeDecorationOptions(this._editorDecorationIds[k], this._decorationProvider.getDecorationOption(isCollapsed, endLineNumber <= lastHiddenLine, isManual));\n                    }\n                    if (isCollapsed && endLineNumber > lastHiddenLine) {\n                        lastHiddenLine = endLineNumber;\n                    }\n                    k++;\n                }\n            };\n            for (const region of toggledRegions) {\n                const index = region.regionIndex;\n                const editorDecorationId = this._editorDecorationIds[index];\n                if (editorDecorationId && !processed[editorDecorationId]) {\n                    processed[editorDecorationId] = true;\n                    updateDecorationsUntil(index); // update all decorations up to current index using the old dirtyRegionEndLine\n                    const newCollapseState = !this._regions.isCollapsed(index);\n                    this._regions.setCollapsed(index, newCollapseState);\n                    dirtyRegionEndLine = Math.max(dirtyRegionEndLine, this._regions.getEndLineNumber(index));\n                }\n            }\n            updateDecorationsUntil(this._regions.length);\n        });\n        this._updateEventEmitter.fire({ model: this, collapseStateChanged: toggledRegions });\n    }\n    removeManualRanges(ranges) {\n        const newFoldingRanges = new Array();\n        const intersects = (foldRange) => {\n            for (const range of ranges) {\n                if (!(range.startLineNumber > foldRange.endLineNumber || foldRange.startLineNumber > range.endLineNumber)) {\n                    return true;\n                }\n            }\n            return false;\n        };\n        for (let i = 0; i < this._regions.length; i++) {\n            const foldRange = this._regions.toFoldRange(i);\n            if (foldRange.source === 0 /* FoldSource.provider */ || !intersects(foldRange)) {\n                newFoldingRanges.push(foldRange);\n            }\n        }\n        this.updatePost(FoldingRegions.fromFoldRanges(newFoldingRanges));\n    }\n    update(newRegions, blockedLineNumers = []) {\n        const foldedOrManualRanges = this._currentFoldedOrManualRanges(blockedLineNumers);\n        const newRanges = FoldingRegions.sanitizeAndMerge(newRegions, foldedOrManualRanges, this._textModel.getLineCount());\n        this.updatePost(FoldingRegions.fromFoldRanges(newRanges));\n    }\n    updatePost(newRegions) {\n        const newEditorDecorations = [];\n        let lastHiddenLine = -1;\n        for (let index = 0, limit = newRegions.length; index < limit; index++) {\n            const startLineNumber = newRegions.getStartLineNumber(index);\n            const endLineNumber = newRegions.getEndLineNumber(index);\n            const isCollapsed = newRegions.isCollapsed(index);\n            const isManual = newRegions.getSource(index) !== 0 /* FoldSource.provider */;\n            const decorationRange = {\n                startLineNumber: startLineNumber,\n                startColumn: this._textModel.getLineMaxColumn(startLineNumber),\n                endLineNumber: endLineNumber,\n                endColumn: this._textModel.getLineMaxColumn(endLineNumber) + 1\n            };\n            newEditorDecorations.push({ range: decorationRange, options: this._decorationProvider.getDecorationOption(isCollapsed, endLineNumber <= lastHiddenLine, isManual) });\n            if (isCollapsed && endLineNumber > lastHiddenLine) {\n                lastHiddenLine = endLineNumber;\n            }\n        }\n        this._decorationProvider.changeDecorations(accessor => this._editorDecorationIds = accessor.deltaDecorations(this._editorDecorationIds, newEditorDecorations));\n        this._regions = newRegions;\n        this._updateEventEmitter.fire({ model: this });\n    }\n    _currentFoldedOrManualRanges(blockedLineNumers = []) {\n        const isBlocked = (startLineNumber, endLineNumber) => {\n            for (const blockedLineNumber of blockedLineNumers) {\n                if (startLineNumber < blockedLineNumber && blockedLineNumber <= endLineNumber) { // first line is visible\n                    return true;\n                }\n            }\n            return false;\n        };\n        const foldedRanges = [];\n        for (let i = 0, limit = this._regions.length; i < limit; i++) {\n            let isCollapsed = this.regions.isCollapsed(i);\n            const source = this.regions.getSource(i);\n            if (isCollapsed || source !== 0 /* FoldSource.provider */) {\n                const foldRange = this._regions.toFoldRange(i);\n                const decRange = this._textModel.getDecorationRange(this._editorDecorationIds[i]);\n                if (decRange) {\n                    if (isCollapsed && isBlocked(decRange.startLineNumber, decRange.endLineNumber)) {\n                        isCollapsed = false; // uncollapse is the range is blocked\n                    }\n                    foldedRanges.push({\n                        startLineNumber: decRange.startLineNumber,\n                        endLineNumber: decRange.endLineNumber,\n                        type: foldRange.type,\n                        isCollapsed,\n                        source\n                    });\n                }\n            }\n        }\n        return foldedRanges;\n    }\n    /**\n     * Collapse state memento, for persistence only\n     */\n    getMemento() {\n        const foldedOrManualRanges = this._currentFoldedOrManualRanges();\n        const result = [];\n        const maxLineNumber = this._textModel.getLineCount();\n        for (let i = 0, limit = foldedOrManualRanges.length; i < limit; i++) {\n            const range = foldedOrManualRanges[i];\n            if (range.startLineNumber >= range.endLineNumber || range.startLineNumber < 1 || range.endLineNumber > maxLineNumber) {\n                continue;\n            }\n            const checksum = this._getLinesChecksum(range.startLineNumber + 1, range.endLineNumber);\n            result.push({\n                startLineNumber: range.startLineNumber,\n                endLineNumber: range.endLineNumber,\n                isCollapsed: range.isCollapsed,\n                source: range.source,\n                checksum: checksum\n            });\n        }\n        return (result.length > 0) ? result : undefined;\n    }\n    /**\n     * Apply persisted state, for persistence only\n     */\n    applyMemento(state) {\n        var _a, _b;\n        if (!Array.isArray(state)) {\n            return;\n        }\n        const rangesToRestore = [];\n        const maxLineNumber = this._textModel.getLineCount();\n        for (const range of state) {\n            if (range.startLineNumber >= range.endLineNumber || range.startLineNumber < 1 || range.endLineNumber > maxLineNumber) {\n                continue;\n            }\n            const checksum = this._getLinesChecksum(range.startLineNumber + 1, range.endLineNumber);\n            if (!range.checksum || checksum === range.checksum) {\n                rangesToRestore.push({\n                    startLineNumber: range.startLineNumber,\n                    endLineNumber: range.endLineNumber,\n                    type: undefined,\n                    isCollapsed: (_a = range.isCollapsed) !== null && _a !== void 0 ? _a : true,\n                    source: (_b = range.source) !== null && _b !== void 0 ? _b : 0 /* FoldSource.provider */\n                });\n            }\n        }\n        const newRanges = FoldingRegions.sanitizeAndMerge(this._regions, rangesToRestore, maxLineNumber);\n        this.updatePost(FoldingRegions.fromFoldRanges(newRanges));\n    }\n    _getLinesChecksum(lineNumber1, lineNumber2) {\n        const h = hash(this._textModel.getLineContent(lineNumber1)\n            + this._textModel.getLineContent(lineNumber2));\n        return h % 1000000; // 6 digits is plenty\n    }\n    dispose() {\n        this._decorationProvider.removeDecorations(this._editorDecorationIds);\n    }\n    getAllRegionsAtLine(lineNumber, filter) {\n        const result = [];\n        if (this._regions) {\n            let index = this._regions.findRange(lineNumber);\n            let level = 1;\n            while (index >= 0) {\n                const current = this._regions.toRegion(index);\n                if (!filter || filter(current, level)) {\n                    result.push(current);\n                }\n                level++;\n                index = current.parentIndex;\n            }\n        }\n        return result;\n    }\n    getRegionAtLine(lineNumber) {\n        if (this._regions) {\n            const index = this._regions.findRange(lineNumber);\n            if (index >= 0) {\n                return this._regions.toRegion(index);\n            }\n        }\n        return null;\n    }\n    getRegionsInside(region, filter) {\n        const result = [];\n        const index = region ? region.regionIndex + 1 : 0;\n        const endLineNumber = region ? region.endLineNumber : Number.MAX_VALUE;\n        if (filter && filter.length === 2) {\n            const levelStack = [];\n            for (let i = index, len = this._regions.length; i < len; i++) {\n                const current = this._regions.toRegion(i);\n                if (this._regions.getStartLineNumber(i) < endLineNumber) {\n                    while (levelStack.length > 0 && !current.containedBy(levelStack[levelStack.length - 1])) {\n                        levelStack.pop();\n                    }\n                    levelStack.push(current);\n                    if (filter(current, levelStack.length)) {\n                        result.push(current);\n                    }\n                }\n                else {\n                    break;\n                }\n            }\n        }\n        else {\n            for (let i = index, len = this._regions.length; i < len; i++) {\n                const current = this._regions.toRegion(i);\n                if (this._regions.getStartLineNumber(i) < endLineNumber) {\n                    if (!filter || filter(current)) {\n                        result.push(current);\n                    }\n                }\n                else {\n                    break;\n                }\n            }\n        }\n        return result;\n    }\n}\n/**\n * Collapse or expand the regions at the given locations\n * @param levels The number of levels. Use 1 to only impact the regions at the location, use Number.MAX_VALUE for all levels.\n * @param lineNumbers the location of the regions to collapse or expand, or if not set, all regions in the model.\n */\nexport function toggleCollapseState(foldingModel, levels, lineNumbers) {\n    const toToggle = [];\n    for (const lineNumber of lineNumbers) {\n        const region = foldingModel.getRegionAtLine(lineNumber);\n        if (region) {\n            const doCollapse = !region.isCollapsed;\n            toToggle.push(region);\n            if (levels > 1) {\n                const regionsInside = foldingModel.getRegionsInside(region, (r, level) => r.isCollapsed !== doCollapse && level < levels);\n                toToggle.push(...regionsInside);\n            }\n        }\n    }\n    foldingModel.toggleCollapseState(toToggle);\n}\n/**\n * Collapse or expand the regions at the given locations including all children.\n * @param doCollapse Whether to collapse or expand\n * @param levels The number of levels. Use 1 to only impact the regions at the location, use Number.MAX_VALUE for all levels.\n * @param lineNumbers the location of the regions to collapse or expand, or if not set, all regions in the model.\n */\nexport function setCollapseStateLevelsDown(foldingModel, doCollapse, levels = Number.MAX_VALUE, lineNumbers) {\n    const toToggle = [];\n    if (lineNumbers && lineNumbers.length > 0) {\n        for (const lineNumber of lineNumbers) {\n            const region = foldingModel.getRegionAtLine(lineNumber);\n            if (region) {\n                if (region.isCollapsed !== doCollapse) {\n                    toToggle.push(region);\n                }\n                if (levels > 1) {\n                    const regionsInside = foldingModel.getRegionsInside(region, (r, level) => r.isCollapsed !== doCollapse && level < levels);\n                    toToggle.push(...regionsInside);\n                }\n            }\n        }\n    }\n    else {\n        const regionsInside = foldingModel.getRegionsInside(null, (r, level) => r.isCollapsed !== doCollapse && level < levels);\n        toToggle.push(...regionsInside);\n    }\n    foldingModel.toggleCollapseState(toToggle);\n}\n/**\n * Collapse or expand the regions at the given locations including all parents.\n * @param doCollapse Whether to collapse or expand\n * @param levels The number of levels. Use 1 to only impact the regions at the location, use Number.MAX_VALUE for all levels.\n * @param lineNumbers the location of the regions to collapse or expand.\n */\nexport function setCollapseStateLevelsUp(foldingModel, doCollapse, levels, lineNumbers) {\n    const toToggle = [];\n    for (const lineNumber of lineNumbers) {\n        const regions = foldingModel.getAllRegionsAtLine(lineNumber, (region, level) => region.isCollapsed !== doCollapse && level <= levels);\n        toToggle.push(...regions);\n    }\n    foldingModel.toggleCollapseState(toToggle);\n}\n/**\n * Collapse or expand a region at the given locations. If the inner most region is already collapsed/expanded, uses the first parent instead.\n * @param doCollapse Whether to collapse or expand\n * @param lineNumbers the location of the regions to collapse or expand.\n */\nexport function setCollapseStateUp(foldingModel, doCollapse, lineNumbers) {\n    const toToggle = [];\n    for (const lineNumber of lineNumbers) {\n        const regions = foldingModel.getAllRegionsAtLine(lineNumber, (region) => region.isCollapsed !== doCollapse);\n        if (regions.length > 0) {\n            toToggle.push(regions[0]);\n        }\n    }\n    foldingModel.toggleCollapseState(toToggle);\n}\n/**\n * Folds or unfolds all regions that have a given level, except if they contain one of the blocked lines.\n * @param foldLevel level. Level == 1 is the top level\n * @param doCollapse Whether to collapse or expand\n*/\nexport function setCollapseStateAtLevel(foldingModel, foldLevel, doCollapse, blockedLineNumbers) {\n    const filter = (region, level) => level === foldLevel && region.isCollapsed !== doCollapse && !blockedLineNumbers.some(line => region.containsLine(line));\n    const toToggle = foldingModel.getRegionsInside(null, filter);\n    foldingModel.toggleCollapseState(toToggle);\n}\n/**\n * Folds or unfolds all regions, except if they contain or are contained by a region of one of the blocked lines.\n * @param doCollapse Whether to collapse or expand\n * @param blockedLineNumbers the location of regions to not collapse or expand\n */\nexport function setCollapseStateForRest(foldingModel, doCollapse, blockedLineNumbers) {\n    const filteredRegions = [];\n    for (const lineNumber of blockedLineNumbers) {\n        const regions = foldingModel.getAllRegionsAtLine(lineNumber, undefined);\n        if (regions.length > 0) {\n            filteredRegions.push(regions[0]);\n        }\n    }\n    const filter = (region) => filteredRegions.every((filteredRegion) => !filteredRegion.containedBy(region) && !region.containedBy(filteredRegion)) && region.isCollapsed !== doCollapse;\n    const toToggle = foldingModel.getRegionsInside(null, filter);\n    foldingModel.toggleCollapseState(toToggle);\n}\n/**\n * Folds all regions for which the lines start with a given regex\n * @param foldingModel the folding model\n */\nexport function setCollapseStateForMatchingLines(foldingModel, regExp, doCollapse) {\n    const editorModel = foldingModel.textModel;\n    const regions = foldingModel.regions;\n    const toToggle = [];\n    for (let i = regions.length - 1; i >= 0; i--) {\n        if (doCollapse !== regions.isCollapsed(i)) {\n            const startLineNumber = regions.getStartLineNumber(i);\n            if (regExp.test(editorModel.getLineContent(startLineNumber))) {\n                toToggle.push(regions.toRegion(i));\n            }\n        }\n    }\n    foldingModel.toggleCollapseState(toToggle);\n}\n/**\n * Folds all regions of the given type\n * @param foldingModel the folding model\n */\nexport function setCollapseStateForType(foldingModel, type, doCollapse) {\n    const regions = foldingModel.regions;\n    const toToggle = [];\n    for (let i = regions.length - 1; i >= 0; i--) {\n        if (doCollapse !== regions.isCollapsed(i) && type === regions.getType(i)) {\n            toToggle.push(regions.toRegion(i));\n        }\n    }\n    foldingModel.toggleCollapseState(toToggle);\n}\n/**\n * Get line to go to for parent fold of current line\n * @param lineNumber the current line number\n * @param foldingModel the folding model\n *\n * @return Parent fold start line\n */\nexport function getParentFoldLine(lineNumber, foldingModel) {\n    let startLineNumber = null;\n    const foldingRegion = foldingModel.getRegionAtLine(lineNumber);\n    if (foldingRegion !== null) {\n        startLineNumber = foldingRegion.startLineNumber;\n        // If current line is not the start of the current fold, go to top line of current fold. If not, go to parent fold\n        if (lineNumber === startLineNumber) {\n            const parentFoldingIdx = foldingRegion.parentIndex;\n            if (parentFoldingIdx !== -1) {\n                startLineNumber = foldingModel.regions.getStartLineNumber(parentFoldingIdx);\n            }\n            else {\n                startLineNumber = null;\n            }\n        }\n    }\n    return startLineNumber;\n}\n/**\n * Get line to go to for previous fold at the same level of current line\n * @param lineNumber the current line number\n * @param foldingModel the folding model\n *\n * @return Previous fold start line\n */\nexport function getPreviousFoldLine(lineNumber, foldingModel) {\n    let foldingRegion = foldingModel.getRegionAtLine(lineNumber);\n    // If on the folding range start line, go to previous sibling.\n    if (foldingRegion !== null && foldingRegion.startLineNumber === lineNumber) {\n        // If current line is not the start of the current fold, go to top line of current fold. If not, go to previous fold.\n        if (lineNumber !== foldingRegion.startLineNumber) {\n            return foldingRegion.startLineNumber;\n        }\n        else {\n            // Find min line number to stay within parent.\n            const expectedParentIndex = foldingRegion.parentIndex;\n            let minLineNumber = 0;\n            if (expectedParentIndex !== -1) {\n                minLineNumber = foldingModel.regions.getStartLineNumber(foldingRegion.parentIndex);\n            }\n            // Find fold at same level.\n            while (foldingRegion !== null) {\n                if (foldingRegion.regionIndex > 0) {\n                    foldingRegion = foldingModel.regions.toRegion(foldingRegion.regionIndex - 1);\n                    // Keep at same level.\n                    if (foldingRegion.startLineNumber <= minLineNumber) {\n                        return null;\n                    }\n                    else if (foldingRegion.parentIndex === expectedParentIndex) {\n                        return foldingRegion.startLineNumber;\n                    }\n                }\n                else {\n                    return null;\n                }\n            }\n        }\n    }\n    else {\n        // Go to last fold that's before the current line.\n        if (foldingModel.regions.length > 0) {\n            foldingRegion = foldingModel.regions.toRegion(foldingModel.regions.length - 1);\n            while (foldingRegion !== null) {\n                // Found fold before current line.\n                if (foldingRegion.startLineNumber < lineNumber) {\n                    return foldingRegion.startLineNumber;\n                }\n                if (foldingRegion.regionIndex > 0) {\n                    foldingRegion = foldingModel.regions.toRegion(foldingRegion.regionIndex - 1);\n                }\n                else {\n                    foldingRegion = null;\n                }\n            }\n        }\n    }\n    return null;\n}\n/**\n * Get line to go to next fold at the same level of current line\n * @param lineNumber the current line number\n * @param foldingModel the folding model\n *\n * @return Next fold start line\n */\nexport function getNextFoldLine(lineNumber, foldingModel) {\n    let foldingRegion = foldingModel.getRegionAtLine(lineNumber);\n    // If on the folding range start line, go to next sibling.\n    if (foldingRegion !== null && foldingRegion.startLineNumber === lineNumber) {\n        // Find max line number to stay within parent.\n        const expectedParentIndex = foldingRegion.parentIndex;\n        let maxLineNumber = 0;\n        if (expectedParentIndex !== -1) {\n            maxLineNumber = foldingModel.regions.getEndLineNumber(foldingRegion.parentIndex);\n        }\n        else if (foldingModel.regions.length === 0) {\n            return null;\n        }\n        else {\n            maxLineNumber = foldingModel.regions.getEndLineNumber(foldingModel.regions.length - 1);\n        }\n        // Find fold at same level.\n        while (foldingRegion !== null) {\n            if (foldingRegion.regionIndex < foldingModel.regions.length) {\n                foldingRegion = foldingModel.regions.toRegion(foldingRegion.regionIndex + 1);\n                // Keep at same level.\n                if (foldingRegion.startLineNumber >= maxLineNumber) {\n                    return null;\n                }\n                else if (foldingRegion.parentIndex === expectedParentIndex) {\n                    return foldingRegion.startLineNumber;\n                }\n            }\n            else {\n                return null;\n            }\n        }\n    }\n    else {\n        // Go to first fold that's after the current line.\n        if (foldingModel.regions.length > 0) {\n            foldingRegion = foldingModel.regions.toRegion(0);\n            while (foldingRegion !== null) {\n                // Found fold after current line.\n                if (foldingRegion.startLineNumber > lineNumber) {\n                    return foldingRegion.startLineNumber;\n                }\n                if (foldingRegion.regionIndex < foldingModel.regions.length) {\n                    foldingRegion = foldingModel.regions.toRegion(foldingRegion.regionIndex + 1);\n                }\n                else {\n                    foldingRegion = null;\n                }\n            }\n        }\n    }\n    return null;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/folding/browser/foldingRanges.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport const foldSourceAbbr = {\n    [0 /* FoldSource.provider */]: ' ',\n    [1 /* FoldSource.userDefined */]: 'u',\n    [2 /* FoldSource.recovered */]: 'r',\n};\nexport const MAX_FOLDING_REGIONS = 0xFFFF;\nexport const MAX_LINE_NUMBER = 0xFFFFFF;\nconst MASK_INDENT = 0xFF000000;\nclass BitField {\n    constructor(size) {\n        const numWords = Math.ceil(size / 32);\n        this._states = new Uint32Array(numWords);\n    }\n    get(index) {\n        const arrayIndex = (index / 32) | 0;\n        const bit = index % 32;\n        return (this._states[arrayIndex] & (1 << bit)) !== 0;\n    }\n    set(index, newState) {\n        const arrayIndex = (index / 32) | 0;\n        const bit = index % 32;\n        const value = this._states[arrayIndex];\n        if (newState) {\n            this._states[arrayIndex] = value | (1 << bit);\n        }\n        else {\n            this._states[arrayIndex] = value & ~(1 << bit);\n        }\n    }\n}\nexport class FoldingRegions {\n    constructor(startIndexes, endIndexes, types) {\n        if (startIndexes.length !== endIndexes.length || startIndexes.length > MAX_FOLDING_REGIONS) {\n            throw new Error('invalid startIndexes or endIndexes size');\n        }\n        this._startIndexes = startIndexes;\n        this._endIndexes = endIndexes;\n        this._collapseStates = new BitField(startIndexes.length);\n        this._userDefinedStates = new BitField(startIndexes.length);\n        this._recoveredStates = new BitField(startIndexes.length);\n        this._types = types;\n        this._parentsComputed = false;\n    }\n    ensureParentIndices() {\n        if (!this._parentsComputed) {\n            this._parentsComputed = true;\n            const parentIndexes = [];\n            const isInsideLast = (startLineNumber, endLineNumber) => {\n                const index = parentIndexes[parentIndexes.length - 1];\n                return this.getStartLineNumber(index) <= startLineNumber && this.getEndLineNumber(index) >= endLineNumber;\n            };\n            for (let i = 0, len = this._startIndexes.length; i < len; i++) {\n                const startLineNumber = this._startIndexes[i];\n                const endLineNumber = this._endIndexes[i];\n                if (startLineNumber > MAX_LINE_NUMBER || endLineNumber > MAX_LINE_NUMBER) {\n                    throw new Error('startLineNumber or endLineNumber must not exceed ' + MAX_LINE_NUMBER);\n                }\n                while (parentIndexes.length > 0 && !isInsideLast(startLineNumber, endLineNumber)) {\n                    parentIndexes.pop();\n                }\n                const parentIndex = parentIndexes.length > 0 ? parentIndexes[parentIndexes.length - 1] : -1;\n                parentIndexes.push(i);\n                this._startIndexes[i] = startLineNumber + ((parentIndex & 0xFF) << 24);\n                this._endIndexes[i] = endLineNumber + ((parentIndex & 0xFF00) << 16);\n            }\n        }\n    }\n    get length() {\n        return this._startIndexes.length;\n    }\n    getStartLineNumber(index) {\n        return this._startIndexes[index] & MAX_LINE_NUMBER;\n    }\n    getEndLineNumber(index) {\n        return this._endIndexes[index] & MAX_LINE_NUMBER;\n    }\n    getType(index) {\n        return this._types ? this._types[index] : undefined;\n    }\n    hasTypes() {\n        return !!this._types;\n    }\n    isCollapsed(index) {\n        return this._collapseStates.get(index);\n    }\n    setCollapsed(index, newState) {\n        this._collapseStates.set(index, newState);\n    }\n    isUserDefined(index) {\n        return this._userDefinedStates.get(index);\n    }\n    setUserDefined(index, newState) {\n        return this._userDefinedStates.set(index, newState);\n    }\n    isRecovered(index) {\n        return this._recoveredStates.get(index);\n    }\n    setRecovered(index, newState) {\n        return this._recoveredStates.set(index, newState);\n    }\n    getSource(index) {\n        if (this.isUserDefined(index)) {\n            return 1 /* FoldSource.userDefined */;\n        }\n        else if (this.isRecovered(index)) {\n            return 2 /* FoldSource.recovered */;\n        }\n        return 0 /* FoldSource.provider */;\n    }\n    setSource(index, source) {\n        if (source === 1 /* FoldSource.userDefined */) {\n            this.setUserDefined(index, true);\n            this.setRecovered(index, false);\n        }\n        else if (source === 2 /* FoldSource.recovered */) {\n            this.setUserDefined(index, false);\n            this.setRecovered(index, true);\n        }\n        else {\n            this.setUserDefined(index, false);\n            this.setRecovered(index, false);\n        }\n    }\n    setCollapsedAllOfType(type, newState) {\n        let hasChanged = false;\n        if (this._types) {\n            for (let i = 0; i < this._types.length; i++) {\n                if (this._types[i] === type) {\n                    this.setCollapsed(i, newState);\n                    hasChanged = true;\n                }\n            }\n        }\n        return hasChanged;\n    }\n    toRegion(index) {\n        return new FoldingRegion(this, index);\n    }\n    getParentIndex(index) {\n        this.ensureParentIndices();\n        const parent = ((this._startIndexes[index] & MASK_INDENT) >>> 24) + ((this._endIndexes[index] & MASK_INDENT) >>> 16);\n        if (parent === MAX_FOLDING_REGIONS) {\n            return -1;\n        }\n        return parent;\n    }\n    contains(index, line) {\n        return this.getStartLineNumber(index) <= line && this.getEndLineNumber(index) >= line;\n    }\n    findIndex(line) {\n        let low = 0, high = this._startIndexes.length;\n        if (high === 0) {\n            return -1; // no children\n        }\n        while (low < high) {\n            const mid = Math.floor((low + high) / 2);\n            if (line < this.getStartLineNumber(mid)) {\n                high = mid;\n            }\n            else {\n                low = mid + 1;\n            }\n        }\n        return low - 1;\n    }\n    findRange(line) {\n        let index = this.findIndex(line);\n        if (index >= 0) {\n            const endLineNumber = this.getEndLineNumber(index);\n            if (endLineNumber >= line) {\n                return index;\n            }\n            index = this.getParentIndex(index);\n            while (index !== -1) {\n                if (this.contains(index, line)) {\n                    return index;\n                }\n                index = this.getParentIndex(index);\n            }\n        }\n        return -1;\n    }\n    toString() {\n        const res = [];\n        for (let i = 0; i < this.length; i++) {\n            res[i] = `[${foldSourceAbbr[this.getSource(i)]}${this.isCollapsed(i) ? '+' : '-'}] ${this.getStartLineNumber(i)}/${this.getEndLineNumber(i)}`;\n        }\n        return res.join(', ');\n    }\n    toFoldRange(index) {\n        return {\n            startLineNumber: this._startIndexes[index] & MAX_LINE_NUMBER,\n            endLineNumber: this._endIndexes[index] & MAX_LINE_NUMBER,\n            type: this._types ? this._types[index] : undefined,\n            isCollapsed: this.isCollapsed(index),\n            source: this.getSource(index)\n        };\n    }\n    static fromFoldRanges(ranges) {\n        const rangesLength = ranges.length;\n        const startIndexes = new Uint32Array(rangesLength);\n        const endIndexes = new Uint32Array(rangesLength);\n        let types = [];\n        let gotTypes = false;\n        for (let i = 0; i < rangesLength; i++) {\n            const range = ranges[i];\n            startIndexes[i] = range.startLineNumber;\n            endIndexes[i] = range.endLineNumber;\n            types.push(range.type);\n            if (range.type) {\n                gotTypes = true;\n            }\n        }\n        if (!gotTypes) {\n            types = undefined;\n        }\n        const regions = new FoldingRegions(startIndexes, endIndexes, types);\n        for (let i = 0; i < rangesLength; i++) {\n            if (ranges[i].isCollapsed) {\n                regions.setCollapsed(i, true);\n            }\n            regions.setSource(i, ranges[i].source);\n        }\n        return regions;\n    }\n    /**\n     * Two inputs, each a FoldingRegions or a FoldRange[], are merged.\n     * Each input must be pre-sorted on startLineNumber.\n     * The first list is assumed to always include all regions currently defined by range providers.\n     * The second list only contains the previously collapsed and all manual ranges.\n     * If the line position matches, the range of the new range is taken, and the range is no longer manual\n     * When an entry in one list overlaps an entry in the other, the second list's entry \"wins\" and\n     * overlapping entries in the first list are discarded.\n     * Invalid entries are discarded. An entry is invalid if:\n     * \t\tthe start and end line numbers aren't a valid range of line numbers,\n     * \t\tit is out of sequence or has the same start line as a preceding entry,\n     * \t\tit overlaps a preceding entry and is not fully contained by that entry.\n     */\n    static sanitizeAndMerge(rangesA, rangesB, maxLineNumber) {\n        maxLineNumber = maxLineNumber !== null && maxLineNumber !== void 0 ? maxLineNumber : Number.MAX_VALUE;\n        const getIndexedFunction = (r, limit) => {\n            return Array.isArray(r)\n                ? ((i) => { return (i < limit) ? r[i] : undefined; })\n                : ((i) => { return (i < limit) ? r.toFoldRange(i) : undefined; });\n        };\n        const getA = getIndexedFunction(rangesA, rangesA.length);\n        const getB = getIndexedFunction(rangesB, rangesB.length);\n        let indexA = 0;\n        let indexB = 0;\n        let nextA = getA(0);\n        let nextB = getB(0);\n        const stackedRanges = [];\n        let topStackedRange;\n        let prevLineNumber = 0;\n        const resultRanges = [];\n        while (nextA || nextB) {\n            let useRange = undefined;\n            if (nextB && (!nextA || nextA.startLineNumber >= nextB.startLineNumber)) {\n                if (nextA && nextA.startLineNumber === nextB.startLineNumber) {\n                    if (nextB.source === 1 /* FoldSource.userDefined */) {\n                        // a user defined range (possibly unfolded)\n                        useRange = nextB;\n                    }\n                    else {\n                        // a previously folded range or a (possibly unfolded) recovered range\n                        useRange = nextA;\n                        useRange.isCollapsed = nextB.isCollapsed && nextA.endLineNumber === nextB.endLineNumber;\n                        useRange.source = 0 /* FoldSource.provider */;\n                    }\n                    nextA = getA(++indexA); // not necessary, just for speed\n                }\n                else {\n                    useRange = nextB;\n                    if (nextB.isCollapsed && nextB.source === 0 /* FoldSource.provider */) {\n                        // a previously collapsed range\n                        useRange.source = 2 /* FoldSource.recovered */;\n                    }\n                }\n                nextB = getB(++indexB);\n            }\n            else {\n                // nextA is next. The user folded B set takes precedence and we sometimes need to look\n                // ahead in it to check for an upcoming conflict.\n                let scanIndex = indexB;\n                let prescanB = nextB;\n                while (true) {\n                    if (!prescanB || prescanB.startLineNumber > nextA.endLineNumber) {\n                        useRange = nextA;\n                        break; // no conflict, use this nextA\n                    }\n                    if (prescanB.source === 1 /* FoldSource.userDefined */ && prescanB.endLineNumber > nextA.endLineNumber) {\n                        // we found a user folded range, it wins\n                        break; // without setting nextResult, so this nextA gets skipped\n                    }\n                    prescanB = getB(++scanIndex);\n                }\n                nextA = getA(++indexA);\n            }\n            if (useRange) {\n                while (topStackedRange\n                    && topStackedRange.endLineNumber < useRange.startLineNumber) {\n                    topStackedRange = stackedRanges.pop();\n                }\n                if (useRange.endLineNumber > useRange.startLineNumber\n                    && useRange.startLineNumber > prevLineNumber\n                    && useRange.endLineNumber <= maxLineNumber\n                    && (!topStackedRange\n                        || topStackedRange.endLineNumber >= useRange.endLineNumber)) {\n                    resultRanges.push(useRange);\n                    prevLineNumber = useRange.startLineNumber;\n                    if (topStackedRange) {\n                        stackedRanges.push(topStackedRange);\n                    }\n                    topStackedRange = useRange;\n                }\n            }\n        }\n        return resultRanges;\n    }\n}\nexport class FoldingRegion {\n    constructor(ranges, index) {\n        this.ranges = ranges;\n        this.index = index;\n    }\n    get startLineNumber() {\n        return this.ranges.getStartLineNumber(this.index);\n    }\n    get endLineNumber() {\n        return this.ranges.getEndLineNumber(this.index);\n    }\n    get regionIndex() {\n        return this.index;\n    }\n    get parentIndex() {\n        return this.ranges.getParentIndex(this.index);\n    }\n    get isCollapsed() {\n        return this.ranges.isCollapsed(this.index);\n    }\n    containedBy(range) {\n        return range.startLineNumber <= this.startLineNumber && range.endLineNumber >= this.endLineNumber;\n    }\n    containsLine(lineNumber) {\n        return this.startLineNumber <= lineNumber && lineNumber <= this.endLineNumber;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/folding/browser/hiddenRangeModel.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { findFirstIdxMonotonousOrArrLen } from '../../../../base/common/arraysFind.js';\nimport { Emitter } from '../../../../base/common/event.js';\nimport { Range } from '../../../common/core/range.js';\nimport { countEOL } from '../../../common/core/eolCounter.js';\nexport class HiddenRangeModel {\n    get onDidChange() { return this._updateEventEmitter.event; }\n    get hiddenRanges() { return this._hiddenRanges; }\n    constructor(model) {\n        this._updateEventEmitter = new Emitter();\n        this._hasLineChanges = false;\n        this._foldingModel = model;\n        this._foldingModelListener = model.onDidChange(_ => this.updateHiddenRanges());\n        this._hiddenRanges = [];\n        if (model.regions.length) {\n            this.updateHiddenRanges();\n        }\n    }\n    notifyChangeModelContent(e) {\n        if (this._hiddenRanges.length && !this._hasLineChanges) {\n            this._hasLineChanges = e.changes.some(change => {\n                return change.range.endLineNumber !== change.range.startLineNumber || countEOL(change.text)[0] !== 0;\n            });\n        }\n    }\n    updateHiddenRanges() {\n        let updateHiddenAreas = false;\n        const newHiddenAreas = [];\n        let i = 0; // index into hidden\n        let k = 0;\n        let lastCollapsedStart = Number.MAX_VALUE;\n        let lastCollapsedEnd = -1;\n        const ranges = this._foldingModel.regions;\n        for (; i < ranges.length; i++) {\n            if (!ranges.isCollapsed(i)) {\n                continue;\n            }\n            const startLineNumber = ranges.getStartLineNumber(i) + 1; // the first line is not hidden\n            const endLineNumber = ranges.getEndLineNumber(i);\n            if (lastCollapsedStart <= startLineNumber && endLineNumber <= lastCollapsedEnd) {\n                // ignore ranges contained in collapsed regions\n                continue;\n            }\n            if (!updateHiddenAreas && k < this._hiddenRanges.length && this._hiddenRanges[k].startLineNumber === startLineNumber && this._hiddenRanges[k].endLineNumber === endLineNumber) {\n                // reuse the old ranges\n                newHiddenAreas.push(this._hiddenRanges[k]);\n                k++;\n            }\n            else {\n                updateHiddenAreas = true;\n                newHiddenAreas.push(new Range(startLineNumber, 1, endLineNumber, 1));\n            }\n            lastCollapsedStart = startLineNumber;\n            lastCollapsedEnd = endLineNumber;\n        }\n        if (this._hasLineChanges || updateHiddenAreas || k < this._hiddenRanges.length) {\n            this.applyHiddenRanges(newHiddenAreas);\n        }\n    }\n    applyHiddenRanges(newHiddenAreas) {\n        this._hiddenRanges = newHiddenAreas;\n        this._hasLineChanges = false;\n        this._updateEventEmitter.fire(newHiddenAreas);\n    }\n    hasRanges() {\n        return this._hiddenRanges.length > 0;\n    }\n    isHidden(line) {\n        return findRange(this._hiddenRanges, line) !== null;\n    }\n    adjustSelections(selections) {\n        let hasChanges = false;\n        const editorModel = this._foldingModel.textModel;\n        let lastRange = null;\n        const adjustLine = (line) => {\n            if (!lastRange || !isInside(line, lastRange)) {\n                lastRange = findRange(this._hiddenRanges, line);\n            }\n            if (lastRange) {\n                return lastRange.startLineNumber - 1;\n            }\n            return null;\n        };\n        for (let i = 0, len = selections.length; i < len; i++) {\n            let selection = selections[i];\n            const adjustedStartLine = adjustLine(selection.startLineNumber);\n            if (adjustedStartLine) {\n                selection = selection.setStartPosition(adjustedStartLine, editorModel.getLineMaxColumn(adjustedStartLine));\n                hasChanges = true;\n            }\n            const adjustedEndLine = adjustLine(selection.endLineNumber);\n            if (adjustedEndLine) {\n                selection = selection.setEndPosition(adjustedEndLine, editorModel.getLineMaxColumn(adjustedEndLine));\n                hasChanges = true;\n            }\n            selections[i] = selection;\n        }\n        return hasChanges;\n    }\n    dispose() {\n        if (this.hiddenRanges.length > 0) {\n            this._hiddenRanges = [];\n            this._updateEventEmitter.fire(this._hiddenRanges);\n        }\n        if (this._foldingModelListener) {\n            this._foldingModelListener.dispose();\n            this._foldingModelListener = null;\n        }\n    }\n}\nfunction isInside(line, range) {\n    return line >= range.startLineNumber && line <= range.endLineNumber;\n}\nfunction findRange(ranges, line) {\n    const i = findFirstIdxMonotonousOrArrLen(ranges, r => line < r.startLineNumber) - 1;\n    if (i >= 0 && ranges[i].endLineNumber >= line) {\n        return ranges[i];\n    }\n    return null;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/folding/browser/indentRangeProvider.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { computeIndentLevel } from '../../../common/model/utils.js';\nimport { FoldingRegions, MAX_LINE_NUMBER } from './foldingRanges.js';\nconst MAX_FOLDING_REGIONS_FOR_INDENT_DEFAULT = 5000;\nconst ID_INDENT_PROVIDER = 'indent';\nexport class IndentRangeProvider {\n    constructor(editorModel, languageConfigurationService, foldingRangesLimit) {\n        this.editorModel = editorModel;\n        this.languageConfigurationService = languageConfigurationService;\n        this.foldingRangesLimit = foldingRangesLimit;\n        this.id = ID_INDENT_PROVIDER;\n    }\n    dispose() { }\n    compute(cancelationToken) {\n        const foldingRules = this.languageConfigurationService.getLanguageConfiguration(this.editorModel.getLanguageId()).foldingRules;\n        const offSide = foldingRules && !!foldingRules.offSide;\n        const markers = foldingRules && foldingRules.markers;\n        return Promise.resolve(computeRanges(this.editorModel, offSide, markers, this.foldingRangesLimit));\n    }\n}\n// public only for testing\nexport class RangesCollector {\n    constructor(foldingRangesLimit) {\n        this._startIndexes = [];\n        this._endIndexes = [];\n        this._indentOccurrences = [];\n        this._length = 0;\n        this._foldingRangesLimit = foldingRangesLimit;\n    }\n    insertFirst(startLineNumber, endLineNumber, indent) {\n        if (startLineNumber > MAX_LINE_NUMBER || endLineNumber > MAX_LINE_NUMBER) {\n            return;\n        }\n        const index = this._length;\n        this._startIndexes[index] = startLineNumber;\n        this._endIndexes[index] = endLineNumber;\n        this._length++;\n        if (indent < 1000) {\n            this._indentOccurrences[indent] = (this._indentOccurrences[indent] || 0) + 1;\n        }\n    }\n    toIndentRanges(model) {\n        const limit = this._foldingRangesLimit.limit;\n        if (this._length <= limit) {\n            this._foldingRangesLimit.update(this._length, false);\n            // reverse and create arrays of the exact length\n            const startIndexes = new Uint32Array(this._length);\n            const endIndexes = new Uint32Array(this._length);\n            for (let i = this._length - 1, k = 0; i >= 0; i--, k++) {\n                startIndexes[k] = this._startIndexes[i];\n                endIndexes[k] = this._endIndexes[i];\n            }\n            return new FoldingRegions(startIndexes, endIndexes);\n        }\n        else {\n            this._foldingRangesLimit.update(this._length, limit);\n            let entries = 0;\n            let maxIndent = this._indentOccurrences.length;\n            for (let i = 0; i < this._indentOccurrences.length; i++) {\n                const n = this._indentOccurrences[i];\n                if (n) {\n                    if (n + entries > limit) {\n                        maxIndent = i;\n                        break;\n                    }\n                    entries += n;\n                }\n            }\n            const tabSize = model.getOptions().tabSize;\n            // reverse and create arrays of the exact length\n            const startIndexes = new Uint32Array(limit);\n            const endIndexes = new Uint32Array(limit);\n            for (let i = this._length - 1, k = 0; i >= 0; i--) {\n                const startIndex = this._startIndexes[i];\n                const lineContent = model.getLineContent(startIndex);\n                const indent = computeIndentLevel(lineContent, tabSize);\n                if (indent < maxIndent || (indent === maxIndent && entries++ < limit)) {\n                    startIndexes[k] = startIndex;\n                    endIndexes[k] = this._endIndexes[i];\n                    k++;\n                }\n            }\n            return new FoldingRegions(startIndexes, endIndexes);\n        }\n    }\n}\nconst foldingRangesLimitDefault = {\n    limit: MAX_FOLDING_REGIONS_FOR_INDENT_DEFAULT,\n    update: () => { }\n};\nexport function computeRanges(model, offSide, markers, foldingRangesLimit = foldingRangesLimitDefault) {\n    const tabSize = model.getOptions().tabSize;\n    const result = new RangesCollector(foldingRangesLimit);\n    let pattern = undefined;\n    if (markers) {\n        pattern = new RegExp(`(${markers.start.source})|(?:${markers.end.source})`);\n    }\n    const previousRegions = [];\n    const line = model.getLineCount() + 1;\n    previousRegions.push({ indent: -1, endAbove: line, line }); // sentinel, to make sure there's at least one entry\n    for (let line = model.getLineCount(); line > 0; line--) {\n        const lineContent = model.getLineContent(line);\n        const indent = computeIndentLevel(lineContent, tabSize);\n        let previous = previousRegions[previousRegions.length - 1];\n        if (indent === -1) {\n            if (offSide) {\n                // for offSide languages, empty lines are associated to the previous block\n                // note: the next block is already written to the results, so this only\n                // impacts the end position of the block before\n                previous.endAbove = line;\n            }\n            continue; // only whitespace\n        }\n        let m;\n        if (pattern && (m = lineContent.match(pattern))) {\n            // folding pattern match\n            if (m[1]) { // start pattern match\n                // discard all regions until the folding pattern\n                let i = previousRegions.length - 1;\n                while (i > 0 && previousRegions[i].indent !== -2) {\n                    i--;\n                }\n                if (i > 0) {\n                    previousRegions.length = i + 1;\n                    previous = previousRegions[i];\n                    // new folding range from pattern, includes the end line\n                    result.insertFirst(line, previous.line, indent);\n                    previous.line = line;\n                    previous.indent = indent;\n                    previous.endAbove = line;\n                    continue;\n                }\n                else {\n                    // no end marker found, treat line as a regular line\n                }\n            }\n            else { // end pattern match\n                previousRegions.push({ indent: -2, endAbove: line, line });\n                continue;\n            }\n        }\n        if (previous.indent > indent) {\n            // discard all regions with larger indent\n            do {\n                previousRegions.pop();\n                previous = previousRegions[previousRegions.length - 1];\n            } while (previous.indent > indent);\n            // new folding range\n            const endLineNumber = previous.endAbove - 1;\n            if (endLineNumber - line >= 1) { // needs at east size 1\n                result.insertFirst(line, endLineNumber, indent);\n            }\n        }\n        if (previous.indent === indent) {\n            previous.endAbove = line;\n        }\n        else { // previous.indent < indent\n            // new region with a bigger indent\n            previousRegions.push({ indent, endAbove: line, line });\n        }\n    }\n    return result.toIndentRanges(model);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/folding/browser/syntaxRangeProvider.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { FoldingRegions, MAX_LINE_NUMBER } from './foldingRanges.js';\nconst foldingContext = {};\nconst ID_SYNTAX_PROVIDER = 'syntax';\nexport class SyntaxRangeProvider {\n    constructor(editorModel, providers, handleFoldingRangesChange, foldingRangesLimit, fallbackRangeProvider // used when all providers return null\n    ) {\n        this.editorModel = editorModel;\n        this.providers = providers;\n        this.handleFoldingRangesChange = handleFoldingRangesChange;\n        this.foldingRangesLimit = foldingRangesLimit;\n        this.fallbackRangeProvider = fallbackRangeProvider;\n        this.id = ID_SYNTAX_PROVIDER;\n        this.disposables = new DisposableStore();\n        if (fallbackRangeProvider) {\n            this.disposables.add(fallbackRangeProvider);\n        }\n        for (const provider of providers) {\n            if (typeof provider.onDidChange === 'function') {\n                this.disposables.add(provider.onDidChange(handleFoldingRangesChange));\n            }\n        }\n    }\n    compute(cancellationToken) {\n        return collectSyntaxRanges(this.providers, this.editorModel, cancellationToken).then(ranges => {\n            var _a, _b;\n            if (ranges) {\n                const res = sanitizeRanges(ranges, this.foldingRangesLimit);\n                return res;\n            }\n            return (_b = (_a = this.fallbackRangeProvider) === null || _a === void 0 ? void 0 : _a.compute(cancellationToken)) !== null && _b !== void 0 ? _b : null;\n        });\n    }\n    dispose() {\n        this.disposables.dispose();\n    }\n}\nfunction collectSyntaxRanges(providers, model, cancellationToken) {\n    let rangeData = null;\n    const promises = providers.map((provider, i) => {\n        return Promise.resolve(provider.provideFoldingRanges(model, foldingContext, cancellationToken)).then(ranges => {\n            if (cancellationToken.isCancellationRequested) {\n                return;\n            }\n            if (Array.isArray(ranges)) {\n                if (!Array.isArray(rangeData)) {\n                    rangeData = [];\n                }\n                const nLines = model.getLineCount();\n                for (const r of ranges) {\n                    if (r.start > 0 && r.end > r.start && r.end <= nLines) {\n                        rangeData.push({ start: r.start, end: r.end, rank: i, kind: r.kind });\n                    }\n                }\n            }\n        }, onUnexpectedExternalError);\n    });\n    return Promise.all(promises).then(_ => {\n        return rangeData;\n    });\n}\nclass RangesCollector {\n    constructor(foldingRangesLimit) {\n        this._startIndexes = [];\n        this._endIndexes = [];\n        this._nestingLevels = [];\n        this._nestingLevelCounts = [];\n        this._types = [];\n        this._length = 0;\n        this._foldingRangesLimit = foldingRangesLimit;\n    }\n    add(startLineNumber, endLineNumber, type, nestingLevel) {\n        if (startLineNumber > MAX_LINE_NUMBER || endLineNumber > MAX_LINE_NUMBER) {\n            return;\n        }\n        const index = this._length;\n        this._startIndexes[index] = startLineNumber;\n        this._endIndexes[index] = endLineNumber;\n        this._nestingLevels[index] = nestingLevel;\n        this._types[index] = type;\n        this._length++;\n        if (nestingLevel < 30) {\n            this._nestingLevelCounts[nestingLevel] = (this._nestingLevelCounts[nestingLevel] || 0) + 1;\n        }\n    }\n    toIndentRanges() {\n        const limit = this._foldingRangesLimit.limit;\n        if (this._length <= limit) {\n            this._foldingRangesLimit.update(this._length, false);\n            const startIndexes = new Uint32Array(this._length);\n            const endIndexes = new Uint32Array(this._length);\n            for (let i = 0; i < this._length; i++) {\n                startIndexes[i] = this._startIndexes[i];\n                endIndexes[i] = this._endIndexes[i];\n            }\n            return new FoldingRegions(startIndexes, endIndexes, this._types);\n        }\n        else {\n            this._foldingRangesLimit.update(this._length, limit);\n            let entries = 0;\n            let maxLevel = this._nestingLevelCounts.length;\n            for (let i = 0; i < this._nestingLevelCounts.length; i++) {\n                const n = this._nestingLevelCounts[i];\n                if (n) {\n                    if (n + entries > limit) {\n                        maxLevel = i;\n                        break;\n                    }\n                    entries += n;\n                }\n            }\n            const startIndexes = new Uint32Array(limit);\n            const endIndexes = new Uint32Array(limit);\n            const types = [];\n            for (let i = 0, k = 0; i < this._length; i++) {\n                const level = this._nestingLevels[i];\n                if (level < maxLevel || (level === maxLevel && entries++ < limit)) {\n                    startIndexes[k] = this._startIndexes[i];\n                    endIndexes[k] = this._endIndexes[i];\n                    types[k] = this._types[i];\n                    k++;\n                }\n            }\n            return new FoldingRegions(startIndexes, endIndexes, types);\n        }\n    }\n}\nexport function sanitizeRanges(rangeData, foldingRangesLimit) {\n    const sorted = rangeData.sort((d1, d2) => {\n        let diff = d1.start - d2.start;\n        if (diff === 0) {\n            diff = d1.rank - d2.rank;\n        }\n        return diff;\n    });\n    const collector = new RangesCollector(foldingRangesLimit);\n    let top = undefined;\n    const previous = [];\n    for (const entry of sorted) {\n        if (!top) {\n            top = entry;\n            collector.add(entry.start, entry.end, entry.kind && entry.kind.value, previous.length);\n        }\n        else {\n            if (entry.start > top.start) {\n                if (entry.end <= top.end) {\n                    previous.push(top);\n                    top = entry;\n                    collector.add(entry.start, entry.end, entry.kind && entry.kind.value, previous.length);\n                }\n                else {\n                    if (entry.start > top.end) {\n                        do {\n                            top = previous.pop();\n                        } while (top && entry.start > top.end);\n                        if (top) {\n                            previous.push(top);\n                        }\n                        top = entry;\n                    }\n                    collector.add(entry.start, entry.end, entry.kind && entry.kind.value, previous.length);\n                }\n            }\n        }\n    }\n    return collector.toIndentRanges();\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/fontZoom/browser/fontZoom.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/fontZoom/browser/fontZoom.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { EditorAction, registerEditorAction } from '../../../browser/editorExtensions.js';\nimport { EditorZoom } from '../../../common/config/editorZoom.js';\nimport * as nls from '../../../../nls.js';\nclass EditorFontZoomIn extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.fontZoomIn',\n            label: nls.localize('EditorFontZoomIn.label', \"Increase Editor Font Size\"),\n            alias: 'Increase Editor Font Size',\n            precondition: undefined\n        });\n    }\n    run(accessor, editor) {\n        EditorZoom.setZoomLevel(EditorZoom.getZoomLevel() + 1);\n    }\n}\nclass EditorFontZoomOut extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.fontZoomOut',\n            label: nls.localize('EditorFontZoomOut.label', \"Decrease Editor Font Size\"),\n            alias: 'Decrease Editor Font Size',\n            precondition: undefined\n        });\n    }\n    run(accessor, editor) {\n        EditorZoom.setZoomLevel(EditorZoom.getZoomLevel() - 1);\n    }\n}\nclass EditorFontZoomReset extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.fontZoomReset',\n            label: nls.localize('EditorFontZoomReset.label', \"Reset Editor Font Size\"),\n            alias: 'Reset Editor Font Size',\n            precondition: undefined\n        });\n    }\n    run(accessor, editor) {\n        EditorZoom.setZoomLevel(0);\n    }\n}\nregisterEditorAction(EditorFontZoomIn);\nregisterEditorAction(EditorFontZoomOut);\nregisterEditorAction(EditorFontZoomReset);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/format/browser/format.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { asArray, isNonEmptyArray } from '../../../../base/common/arrays.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { Iterable } from '../../../../base/common/iterator.js';\nimport { LinkedList } from '../../../../base/common/linkedList.js';\nimport { assertType } from '../../../../base/common/types.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport { EditorStateCancellationTokenSource, TextModelCancellationTokenSource } from '../../editorState/browser/editorState.js';\nimport { isCodeEditor } from '../../../browser/editorBrowser.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { IEditorWorkerService } from '../../../common/services/editorWorker.js';\nimport { ITextModelService } from '../../../common/services/resolverService.js';\nimport { FormattingEdit } from './formattingEdit.js';\nimport { CommandsRegistry } from '../../../../platform/commands/common/commands.js';\nimport { ExtensionIdentifierSet } from '../../../../platform/extensions/common/extensions.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { ILogService } from '../../../../platform/log/common/log.js';\nimport { AccessibilitySignal, IAccessibilitySignalService } from '../../../../platform/accessibilitySignal/browser/accessibilitySignalService.js';\nexport function getRealAndSyntheticDocumentFormattersOrdered(documentFormattingEditProvider, documentRangeFormattingEditProvider, model) {\n    const result = [];\n    const seen = new ExtensionIdentifierSet();\n    // (1) add all document formatter\n    const docFormatter = documentFormattingEditProvider.ordered(model);\n    for (const formatter of docFormatter) {\n        result.push(formatter);\n        if (formatter.extensionId) {\n            seen.add(formatter.extensionId);\n        }\n    }\n    // (2) add all range formatter as document formatter (unless the same extension already did that)\n    const rangeFormatter = documentRangeFormattingEditProvider.ordered(model);\n    for (const formatter of rangeFormatter) {\n        if (formatter.extensionId) {\n            if (seen.has(formatter.extensionId)) {\n                continue;\n            }\n            seen.add(formatter.extensionId);\n        }\n        result.push({\n            displayName: formatter.displayName,\n            extensionId: formatter.extensionId,\n            provideDocumentFormattingEdits(model, options, token) {\n                return formatter.provideDocumentRangeFormattingEdits(model, model.getFullModelRange(), options, token);\n            }\n        });\n    }\n    return result;\n}\nexport class FormattingConflicts {\n    static setFormatterSelector(selector) {\n        const remove = FormattingConflicts._selectors.unshift(selector);\n        return { dispose: remove };\n    }\n    static async select(formatter, document, mode, kind) {\n        if (formatter.length === 0) {\n            return undefined;\n        }\n        const selector = Iterable.first(FormattingConflicts._selectors);\n        if (selector) {\n            return await selector(formatter, document, mode, kind);\n        }\n        return undefined;\n    }\n}\nFormattingConflicts._selectors = new LinkedList();\nexport async function formatDocumentRangesWithSelectedProvider(accessor, editorOrModel, rangeOrRanges, mode, progress, token, userGesture) {\n    const instaService = accessor.get(IInstantiationService);\n    const { documentRangeFormattingEditProvider: documentRangeFormattingEditProviderRegistry } = accessor.get(ILanguageFeaturesService);\n    const model = isCodeEditor(editorOrModel) ? editorOrModel.getModel() : editorOrModel;\n    const provider = documentRangeFormattingEditProviderRegistry.ordered(model);\n    const selected = await FormattingConflicts.select(provider, model, mode, 2 /* FormattingKind.Selection */);\n    if (selected) {\n        progress.report(selected);\n        await instaService.invokeFunction(formatDocumentRangesWithProvider, selected, editorOrModel, rangeOrRanges, token, userGesture);\n    }\n}\nexport async function formatDocumentRangesWithProvider(accessor, provider, editorOrModel, rangeOrRanges, token, userGesture) {\n    var _a, _b;\n    const workerService = accessor.get(IEditorWorkerService);\n    const logService = accessor.get(ILogService);\n    const accessibilitySignalService = accessor.get(IAccessibilitySignalService);\n    let model;\n    let cts;\n    if (isCodeEditor(editorOrModel)) {\n        model = editorOrModel.getModel();\n        cts = new EditorStateCancellationTokenSource(editorOrModel, 1 /* CodeEditorStateFlag.Value */ | 4 /* CodeEditorStateFlag.Position */, undefined, token);\n    }\n    else {\n        model = editorOrModel;\n        cts = new TextModelCancellationTokenSource(editorOrModel, token);\n    }\n    // make sure that ranges don't overlap nor touch each other\n    const ranges = [];\n    let len = 0;\n    for (const range of asArray(rangeOrRanges).sort(Range.compareRangesUsingStarts)) {\n        if (len > 0 && Range.areIntersectingOrTouching(ranges[len - 1], range)) {\n            ranges[len - 1] = Range.fromPositions(ranges[len - 1].getStartPosition(), range.getEndPosition());\n        }\n        else {\n            len = ranges.push(range);\n        }\n    }\n    const computeEdits = async (range) => {\n        var _a, _b;\n        logService.trace(`[format][provideDocumentRangeFormattingEdits] (request)`, (_a = provider.extensionId) === null || _a === void 0 ? void 0 : _a.value, range);\n        const result = (await provider.provideDocumentRangeFormattingEdits(model, range, model.getFormattingOptions(), cts.token)) || [];\n        logService.trace(`[format][provideDocumentRangeFormattingEdits] (response)`, (_b = provider.extensionId) === null || _b === void 0 ? void 0 : _b.value, result);\n        return result;\n    };\n    const hasIntersectingEdit = (a, b) => {\n        if (!a.length || !b.length) {\n            return false;\n        }\n        // quick exit if the list of ranges are completely unrelated [O(n)]\n        const mergedA = a.reduce((acc, val) => { return Range.plusRange(acc, val.range); }, a[0].range);\n        if (!b.some(x => { return Range.intersectRanges(mergedA, x.range); })) {\n            return false;\n        }\n        // fallback to a complete check [O(n^2)]\n        for (const edit of a) {\n            for (const otherEdit of b) {\n                if (Range.intersectRanges(edit.range, otherEdit.range)) {\n                    return true;\n                }\n            }\n        }\n        return false;\n    };\n    const allEdits = [];\n    const rawEditsList = [];\n    try {\n        if (typeof provider.provideDocumentRangesFormattingEdits === 'function') {\n            logService.trace(`[format][provideDocumentRangeFormattingEdits] (request)`, (_a = provider.extensionId) === null || _a === void 0 ? void 0 : _a.value, ranges);\n            const result = (await provider.provideDocumentRangesFormattingEdits(model, ranges, model.getFormattingOptions(), cts.token)) || [];\n            logService.trace(`[format][provideDocumentRangeFormattingEdits] (response)`, (_b = provider.extensionId) === null || _b === void 0 ? void 0 : _b.value, result);\n            rawEditsList.push(result);\n        }\n        else {\n            for (const range of ranges) {\n                if (cts.token.isCancellationRequested) {\n                    return true;\n                }\n                rawEditsList.push(await computeEdits(range));\n            }\n            for (let i = 0; i < ranges.length; ++i) {\n                for (let j = i + 1; j < ranges.length; ++j) {\n                    if (cts.token.isCancellationRequested) {\n                        return true;\n                    }\n                    if (hasIntersectingEdit(rawEditsList[i], rawEditsList[j])) {\n                        // Merge ranges i and j into a single range, recompute the associated edits\n                        const mergedRange = Range.plusRange(ranges[i], ranges[j]);\n                        const edits = await computeEdits(mergedRange);\n                        ranges.splice(j, 1);\n                        ranges.splice(i, 1);\n                        ranges.push(mergedRange);\n                        rawEditsList.splice(j, 1);\n                        rawEditsList.splice(i, 1);\n                        rawEditsList.push(edits);\n                        // Restart scanning\n                        i = 0;\n                        j = 0;\n                    }\n                }\n            }\n        }\n        for (const rawEdits of rawEditsList) {\n            if (cts.token.isCancellationRequested) {\n                return true;\n            }\n            const minimalEdits = await workerService.computeMoreMinimalEdits(model.uri, rawEdits);\n            if (minimalEdits) {\n                allEdits.push(...minimalEdits);\n            }\n        }\n    }\n    finally {\n        cts.dispose();\n    }\n    if (allEdits.length === 0) {\n        return false;\n    }\n    if (isCodeEditor(editorOrModel)) {\n        // use editor to apply edits\n        FormattingEdit.execute(editorOrModel, allEdits, true);\n        editorOrModel.revealPositionInCenterIfOutsideViewport(editorOrModel.getPosition(), 1 /* ScrollType.Immediate */);\n    }\n    else {\n        // use model to apply edits\n        const [{ range }] = allEdits;\n        const initialSelection = new Selection(range.startLineNumber, range.startColumn, range.endLineNumber, range.endColumn);\n        model.pushEditOperations([initialSelection], allEdits.map(edit => {\n            return {\n                text: edit.text,\n                range: Range.lift(edit.range),\n                forceMoveMarkers: true\n            };\n        }), undoEdits => {\n            for (const { range } of undoEdits) {\n                if (Range.areIntersectingOrTouching(range, initialSelection)) {\n                    return [new Selection(range.startLineNumber, range.startColumn, range.endLineNumber, range.endColumn)];\n                }\n            }\n            return null;\n        });\n    }\n    accessibilitySignalService.playSignal(AccessibilitySignal.format, { userGesture });\n    return true;\n}\nexport async function formatDocumentWithSelectedProvider(accessor, editorOrModel, mode, progress, token, userGesture) {\n    const instaService = accessor.get(IInstantiationService);\n    const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n    const model = isCodeEditor(editorOrModel) ? editorOrModel.getModel() : editorOrModel;\n    const provider = getRealAndSyntheticDocumentFormattersOrdered(languageFeaturesService.documentFormattingEditProvider, languageFeaturesService.documentRangeFormattingEditProvider, model);\n    const selected = await FormattingConflicts.select(provider, model, mode, 1 /* FormattingKind.File */);\n    if (selected) {\n        progress.report(selected);\n        await instaService.invokeFunction(formatDocumentWithProvider, selected, editorOrModel, mode, token, userGesture);\n    }\n}\nexport async function formatDocumentWithProvider(accessor, provider, editorOrModel, mode, token, userGesture) {\n    const workerService = accessor.get(IEditorWorkerService);\n    const accessibilitySignalService = accessor.get(IAccessibilitySignalService);\n    let model;\n    let cts;\n    if (isCodeEditor(editorOrModel)) {\n        model = editorOrModel.getModel();\n        cts = new EditorStateCancellationTokenSource(editorOrModel, 1 /* CodeEditorStateFlag.Value */ | 4 /* CodeEditorStateFlag.Position */, undefined, token);\n    }\n    else {\n        model = editorOrModel;\n        cts = new TextModelCancellationTokenSource(editorOrModel, token);\n    }\n    let edits;\n    try {\n        const rawEdits = await provider.provideDocumentFormattingEdits(model, model.getFormattingOptions(), cts.token);\n        edits = await workerService.computeMoreMinimalEdits(model.uri, rawEdits);\n        if (cts.token.isCancellationRequested) {\n            return true;\n        }\n    }\n    finally {\n        cts.dispose();\n    }\n    if (!edits || edits.length === 0) {\n        return false;\n    }\n    if (isCodeEditor(editorOrModel)) {\n        // use editor to apply edits\n        FormattingEdit.execute(editorOrModel, edits, mode !== 2 /* FormattingMode.Silent */);\n        if (mode !== 2 /* FormattingMode.Silent */) {\n            editorOrModel.revealPositionInCenterIfOutsideViewport(editorOrModel.getPosition(), 1 /* ScrollType.Immediate */);\n        }\n    }\n    else {\n        // use model to apply edits\n        const [{ range }] = edits;\n        const initialSelection = new Selection(range.startLineNumber, range.startColumn, range.endLineNumber, range.endColumn);\n        model.pushEditOperations([initialSelection], edits.map(edit => {\n            return {\n                text: edit.text,\n                range: Range.lift(edit.range),\n                forceMoveMarkers: true\n            };\n        }), undoEdits => {\n            for (const { range } of undoEdits) {\n                if (Range.areIntersectingOrTouching(range, initialSelection)) {\n                    return [new Selection(range.startLineNumber, range.startColumn, range.endLineNumber, range.endColumn)];\n                }\n            }\n            return null;\n        });\n    }\n    accessibilitySignalService.playSignal(AccessibilitySignal.format, { userGesture });\n    return true;\n}\nexport async function getDocumentRangeFormattingEditsUntilResult(workerService, languageFeaturesService, model, range, options, token) {\n    const providers = languageFeaturesService.documentRangeFormattingEditProvider.ordered(model);\n    for (const provider of providers) {\n        const rawEdits = await Promise.resolve(provider.provideDocumentRangeFormattingEdits(model, range, options, token)).catch(onUnexpectedExternalError);\n        if (isNonEmptyArray(rawEdits)) {\n            return await workerService.computeMoreMinimalEdits(model.uri, rawEdits);\n        }\n    }\n    return undefined;\n}\nexport async function getDocumentFormattingEditsUntilResult(workerService, languageFeaturesService, model, options, token) {\n    const providers = getRealAndSyntheticDocumentFormattersOrdered(languageFeaturesService.documentFormattingEditProvider, languageFeaturesService.documentRangeFormattingEditProvider, model);\n    for (const provider of providers) {\n        const rawEdits = await Promise.resolve(provider.provideDocumentFormattingEdits(model, options, token)).catch(onUnexpectedExternalError);\n        if (isNonEmptyArray(rawEdits)) {\n            return await workerService.computeMoreMinimalEdits(model.uri, rawEdits);\n        }\n    }\n    return undefined;\n}\nexport function getOnTypeFormattingEdits(workerService, languageFeaturesService, model, position, ch, options, token) {\n    const providers = languageFeaturesService.onTypeFormattingEditProvider.ordered(model);\n    if (providers.length === 0) {\n        return Promise.resolve(undefined);\n    }\n    if (providers[0].autoFormatTriggerCharacters.indexOf(ch) < 0) {\n        return Promise.resolve(undefined);\n    }\n    return Promise.resolve(providers[0].provideOnTypeFormattingEdits(model, position, ch, options, token)).catch(onUnexpectedExternalError).then(edits => {\n        return workerService.computeMoreMinimalEdits(model.uri, edits);\n    });\n}\nCommandsRegistry.registerCommand('_executeFormatRangeProvider', async function (accessor, ...args) {\n    const [resource, range, options] = args;\n    assertType(URI.isUri(resource));\n    assertType(Range.isIRange(range));\n    const resolverService = accessor.get(ITextModelService);\n    const workerService = accessor.get(IEditorWorkerService);\n    const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n    const reference = await resolverService.createModelReference(resource);\n    try {\n        return getDocumentRangeFormattingEditsUntilResult(workerService, languageFeaturesService, reference.object.textEditorModel, Range.lift(range), options, CancellationToken.None);\n    }\n    finally {\n        reference.dispose();\n    }\n});\nCommandsRegistry.registerCommand('_executeFormatDocumentProvider', async function (accessor, ...args) {\n    const [resource, options] = args;\n    assertType(URI.isUri(resource));\n    const resolverService = accessor.get(ITextModelService);\n    const workerService = accessor.get(IEditorWorkerService);\n    const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n    const reference = await resolverService.createModelReference(resource);\n    try {\n        return getDocumentFormattingEditsUntilResult(workerService, languageFeaturesService, reference.object.textEditorModel, options, CancellationToken.None);\n    }\n    finally {\n        reference.dispose();\n    }\n});\nCommandsRegistry.registerCommand('_executeFormatOnTypeProvider', async function (accessor, ...args) {\n    const [resource, position, ch, options] = args;\n    assertType(URI.isUri(resource));\n    assertType(Position.isIPosition(position));\n    assertType(typeof ch === 'string');\n    const resolverService = accessor.get(ITextModelService);\n    const workerService = accessor.get(IEditorWorkerService);\n    const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n    const reference = await resolverService.createModelReference(resource);\n    try {\n        return getOnTypeFormattingEdits(workerService, languageFeaturesService, reference.object.textEditorModel, Position.lift(position), ch, options, CancellationToken.None);\n    }\n    finally {\n        reference.dispose();\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/format/browser/formatActions.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/format/browser/formatActions.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { isNonEmptyArray } from '../../../../base/common/arrays.js';\nimport { CancellationToken, CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { onUnexpectedError } from '../../../../base/common/errors.js';\nimport { KeyChord } from '../../../../base/common/keyCodes.js';\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { EditorAction, registerEditorAction, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { CharacterSet } from '../../../common/core/characterClassifier.js';\nimport { Range } from '../../../common/core/range.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { IEditorWorkerService } from '../../../common/services/editorWorker.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { formatDocumentRangesWithSelectedProvider, formatDocumentWithSelectedProvider, getOnTypeFormattingEdits } from './format.js';\nimport { FormattingEdit } from './formattingEdit.js';\nimport * as nls from '../../../../nls.js';\nimport { AccessibilitySignal, IAccessibilitySignalService } from '../../../../platform/accessibilitySignal/browser/accessibilitySignalService.js';\nimport { CommandsRegistry, ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IEditorProgressService, Progress } from '../../../../platform/progress/common/progress.js';\nlet FormatOnType = class FormatOnType {\n    constructor(_editor, _languageFeaturesService, _workerService, _accessibilitySignalService) {\n        this._editor = _editor;\n        this._languageFeaturesService = _languageFeaturesService;\n        this._workerService = _workerService;\n        this._accessibilitySignalService = _accessibilitySignalService;\n        this._disposables = new DisposableStore();\n        this._sessionDisposables = new DisposableStore();\n        this._disposables.add(_languageFeaturesService.onTypeFormattingEditProvider.onDidChange(this._update, this));\n        this._disposables.add(_editor.onDidChangeModel(() => this._update()));\n        this._disposables.add(_editor.onDidChangeModelLanguage(() => this._update()));\n        this._disposables.add(_editor.onDidChangeConfiguration(e => {\n            if (e.hasChanged(56 /* EditorOption.formatOnType */)) {\n                this._update();\n            }\n        }));\n        this._update();\n    }\n    dispose() {\n        this._disposables.dispose();\n        this._sessionDisposables.dispose();\n    }\n    _update() {\n        // clean up\n        this._sessionDisposables.clear();\n        // we are disabled\n        if (!this._editor.getOption(56 /* EditorOption.formatOnType */)) {\n            return;\n        }\n        // no model\n        if (!this._editor.hasModel()) {\n            return;\n        }\n        const model = this._editor.getModel();\n        // no support\n        const [support] = this._languageFeaturesService.onTypeFormattingEditProvider.ordered(model);\n        if (!support || !support.autoFormatTriggerCharacters) {\n            return;\n        }\n        // register typing listeners that will trigger the format\n        const triggerChars = new CharacterSet();\n        for (const ch of support.autoFormatTriggerCharacters) {\n            triggerChars.add(ch.charCodeAt(0));\n        }\n        this._sessionDisposables.add(this._editor.onDidType((text) => {\n            const lastCharCode = text.charCodeAt(text.length - 1);\n            if (triggerChars.has(lastCharCode)) {\n                this._trigger(String.fromCharCode(lastCharCode));\n            }\n        }));\n    }\n    _trigger(ch) {\n        if (!this._editor.hasModel()) {\n            return;\n        }\n        if (this._editor.getSelections().length > 1 || !this._editor.getSelection().isEmpty()) {\n            return;\n        }\n        const model = this._editor.getModel();\n        const position = this._editor.getPosition();\n        const cts = new CancellationTokenSource();\n        // install a listener that checks if edits happens before the\n        // position on which we format right now. If so, we won't\n        // apply the format edits\n        const unbind = this._editor.onDidChangeModelContent((e) => {\n            if (e.isFlush) {\n                // a model.setValue() was called\n                // cancel only once\n                cts.cancel();\n                unbind.dispose();\n                return;\n            }\n            for (let i = 0, len = e.changes.length; i < len; i++) {\n                const change = e.changes[i];\n                if (change.range.endLineNumber <= position.lineNumber) {\n                    // cancel only once\n                    cts.cancel();\n                    unbind.dispose();\n                    return;\n                }\n            }\n        });\n        getOnTypeFormattingEdits(this._workerService, this._languageFeaturesService, model, position, ch, model.getFormattingOptions(), cts.token).then(edits => {\n            if (cts.token.isCancellationRequested) {\n                return;\n            }\n            if (isNonEmptyArray(edits)) {\n                this._accessibilitySignalService.playSignal(AccessibilitySignal.format, { userGesture: false });\n                FormattingEdit.execute(this._editor, edits, true);\n            }\n        }).finally(() => {\n            unbind.dispose();\n        });\n    }\n};\nFormatOnType.ID = 'editor.contrib.autoFormat';\nFormatOnType = __decorate([\n    __param(1, ILanguageFeaturesService),\n    __param(2, IEditorWorkerService),\n    __param(3, IAccessibilitySignalService)\n], FormatOnType);\nexport { FormatOnType };\nlet FormatOnPaste = class FormatOnPaste {\n    constructor(editor, _languageFeaturesService, _instantiationService) {\n        this.editor = editor;\n        this._languageFeaturesService = _languageFeaturesService;\n        this._instantiationService = _instantiationService;\n        this._callOnDispose = new DisposableStore();\n        this._callOnModel = new DisposableStore();\n        this._callOnDispose.add(editor.onDidChangeConfiguration(() => this._update()));\n        this._callOnDispose.add(editor.onDidChangeModel(() => this._update()));\n        this._callOnDispose.add(editor.onDidChangeModelLanguage(() => this._update()));\n        this._callOnDispose.add(_languageFeaturesService.documentRangeFormattingEditProvider.onDidChange(this._update, this));\n    }\n    dispose() {\n        this._callOnDispose.dispose();\n        this._callOnModel.dispose();\n    }\n    _update() {\n        // clean up\n        this._callOnModel.clear();\n        // we are disabled\n        if (!this.editor.getOption(55 /* EditorOption.formatOnPaste */)) {\n            return;\n        }\n        // no model\n        if (!this.editor.hasModel()) {\n            return;\n        }\n        // no formatter\n        if (!this._languageFeaturesService.documentRangeFormattingEditProvider.has(this.editor.getModel())) {\n            return;\n        }\n        this._callOnModel.add(this.editor.onDidPaste(({ range }) => this._trigger(range)));\n    }\n    _trigger(range) {\n        if (!this.editor.hasModel()) {\n            return;\n        }\n        if (this.editor.getSelections().length > 1) {\n            return;\n        }\n        this._instantiationService.invokeFunction(formatDocumentRangesWithSelectedProvider, this.editor, range, 2 /* FormattingMode.Silent */, Progress.None, CancellationToken.None, false).catch(onUnexpectedError);\n    }\n};\nFormatOnPaste.ID = 'editor.contrib.formatOnPaste';\nFormatOnPaste = __decorate([\n    __param(1, ILanguageFeaturesService),\n    __param(2, IInstantiationService)\n], FormatOnPaste);\nclass FormatDocumentAction extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.formatDocument',\n            label: nls.localize('formatDocument.label', \"Format Document\"),\n            alias: 'Format Document',\n            precondition: ContextKeyExpr.and(EditorContextKeys.notInCompositeEditor, EditorContextKeys.writable, EditorContextKeys.hasDocumentFormattingProvider),\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: 1024 /* KeyMod.Shift */ | 512 /* KeyMod.Alt */ | 36 /* KeyCode.KeyF */,\n                linux: { primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 39 /* KeyCode.KeyI */ },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            contextMenuOpts: {\n                group: '1_modification',\n                order: 1.3\n            }\n        });\n    }\n    async run(accessor, editor) {\n        if (editor.hasModel()) {\n            const instaService = accessor.get(IInstantiationService);\n            const progressService = accessor.get(IEditorProgressService);\n            await progressService.showWhile(instaService.invokeFunction(formatDocumentWithSelectedProvider, editor, 1 /* FormattingMode.Explicit */, Progress.None, CancellationToken.None, true), 250);\n        }\n    }\n}\nclass FormatSelectionAction extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.formatSelection',\n            label: nls.localize('formatSelection.label', \"Format Selection\"),\n            alias: 'Format Selection',\n            precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasDocumentSelectionFormattingProvider),\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 36 /* KeyCode.KeyF */),\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            contextMenuOpts: {\n                when: EditorContextKeys.hasNonEmptySelection,\n                group: '1_modification',\n                order: 1.31\n            }\n        });\n    }\n    async run(accessor, editor) {\n        if (!editor.hasModel()) {\n            return;\n        }\n        const instaService = accessor.get(IInstantiationService);\n        const model = editor.getModel();\n        const ranges = editor.getSelections().map(range => {\n            return range.isEmpty()\n                ? new Range(range.startLineNumber, 1, range.startLineNumber, model.getLineMaxColumn(range.startLineNumber))\n                : range;\n        });\n        const progressService = accessor.get(IEditorProgressService);\n        await progressService.showWhile(instaService.invokeFunction(formatDocumentRangesWithSelectedProvider, editor, ranges, 1 /* FormattingMode.Explicit */, Progress.None, CancellationToken.None, true), 250);\n    }\n}\nregisterEditorContribution(FormatOnType.ID, FormatOnType, 2 /* EditorContributionInstantiation.BeforeFirstInteraction */);\nregisterEditorContribution(FormatOnPaste.ID, FormatOnPaste, 2 /* EditorContributionInstantiation.BeforeFirstInteraction */);\nregisterEditorAction(FormatDocumentAction);\nregisterEditorAction(FormatSelectionAction);\n// this is the old format action that does both (format document OR format selection)\n// and we keep it here such that existing keybinding configurations etc will still work\nCommandsRegistry.registerCommand('editor.action.format', async (accessor) => {\n    const editor = accessor.get(ICodeEditorService).getFocusedCodeEditor();\n    if (!editor || !editor.hasModel()) {\n        return;\n    }\n    const commandService = accessor.get(ICommandService);\n    if (editor.getSelection().isEmpty()) {\n        await commandService.executeCommand('editor.action.formatDocument');\n    }\n    else {\n        await commandService.executeCommand('editor.action.formatSelection');\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/format/browser/formattingEdit.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { EditOperation } from '../../../common/core/editOperation.js';\nimport { Range } from '../../../common/core/range.js';\nimport { StableEditorScrollState } from '../../../browser/stableEditorScroll.js';\nexport class FormattingEdit {\n    static _handleEolEdits(editor, edits) {\n        let newEol = undefined;\n        const singleEdits = [];\n        for (const edit of edits) {\n            if (typeof edit.eol === 'number') {\n                newEol = edit.eol;\n            }\n            if (edit.range && typeof edit.text === 'string') {\n                singleEdits.push(edit);\n            }\n        }\n        if (typeof newEol === 'number') {\n            if (editor.hasModel()) {\n                editor.getModel().pushEOL(newEol);\n            }\n        }\n        return singleEdits;\n    }\n    static _isFullModelReplaceEdit(editor, edit) {\n        if (!editor.hasModel()) {\n            return false;\n        }\n        const model = editor.getModel();\n        const editRange = model.validateRange(edit.range);\n        const fullModelRange = model.getFullModelRange();\n        return fullModelRange.equalsRange(editRange);\n    }\n    static execute(editor, _edits, addUndoStops) {\n        if (addUndoStops) {\n            editor.pushUndoStop();\n        }\n        const scrollState = StableEditorScrollState.capture(editor);\n        const edits = FormattingEdit._handleEolEdits(editor, _edits);\n        if (edits.length === 1 && FormattingEdit._isFullModelReplaceEdit(editor, edits[0])) {\n            // We use replace semantics and hope that markers stay put...\n            editor.executeEdits('formatEditsCommand', edits.map(edit => EditOperation.replace(Range.lift(edit.range), edit.text)));\n        }\n        else {\n            editor.executeEdits('formatEditsCommand', edits.map(edit => EditOperation.replaceMove(Range.lift(edit.range), edit.text)));\n        }\n        if (addUndoStops) {\n            editor.pushUndoStop();\n        }\n        scrollState.restoreRelativeVerticalPositionOfCursor(editor);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/gotoError/browser/gotoError.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/gotoError/browser/gotoError.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar MarkerController_1;\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { EditorAction, EditorCommand, registerEditorAction, registerEditorCommand, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { IMarkerNavigationService } from './markerNavigationService.js';\nimport * as nls from '../../../../nls.js';\nimport { MenuId } from '../../../../platform/actions/common/actions.js';\nimport { IContextKeyService, RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';\nimport { MarkerNavigationWidget } from './gotoErrorWidget.js';\nlet MarkerController = MarkerController_1 = class MarkerController {\n    static get(editor) {\n        return editor.getContribution(MarkerController_1.ID);\n    }\n    constructor(editor, _markerNavigationService, _contextKeyService, _editorService, _instantiationService) {\n        this._markerNavigationService = _markerNavigationService;\n        this._contextKeyService = _contextKeyService;\n        this._editorService = _editorService;\n        this._instantiationService = _instantiationService;\n        this._sessionDispoables = new DisposableStore();\n        this._editor = editor;\n        this._widgetVisible = CONTEXT_MARKERS_NAVIGATION_VISIBLE.bindTo(this._contextKeyService);\n    }\n    dispose() {\n        this._cleanUp();\n        this._sessionDispoables.dispose();\n    }\n    _cleanUp() {\n        this._widgetVisible.reset();\n        this._sessionDispoables.clear();\n        this._widget = undefined;\n        this._model = undefined;\n    }\n    _getOrCreateModel(uri) {\n        if (this._model && this._model.matches(uri)) {\n            return this._model;\n        }\n        let reusePosition = false;\n        if (this._model) {\n            reusePosition = true;\n            this._cleanUp();\n        }\n        this._model = this._markerNavigationService.getMarkerList(uri);\n        if (reusePosition) {\n            this._model.move(true, this._editor.getModel(), this._editor.getPosition());\n        }\n        this._widget = this._instantiationService.createInstance(MarkerNavigationWidget, this._editor);\n        this._widget.onDidClose(() => this.close(), this, this._sessionDispoables);\n        this._widgetVisible.set(true);\n        this._sessionDispoables.add(this._model);\n        this._sessionDispoables.add(this._widget);\n        // follow cursor\n        this._sessionDispoables.add(this._editor.onDidChangeCursorPosition(e => {\n            var _a, _b, _c;\n            if (!((_a = this._model) === null || _a === void 0 ? void 0 : _a.selected) || !Range.containsPosition((_b = this._model) === null || _b === void 0 ? void 0 : _b.selected.marker, e.position)) {\n                (_c = this._model) === null || _c === void 0 ? void 0 : _c.resetIndex();\n            }\n        }));\n        // update markers\n        this._sessionDispoables.add(this._model.onDidChange(() => {\n            if (!this._widget || !this._widget.position || !this._model) {\n                return;\n            }\n            const info = this._model.find(this._editor.getModel().uri, this._widget.position);\n            if (info) {\n                this._widget.updateMarker(info.marker);\n            }\n            else {\n                this._widget.showStale();\n            }\n        }));\n        // open related\n        this._sessionDispoables.add(this._widget.onDidSelectRelatedInformation(related => {\n            this._editorService.openCodeEditor({\n                resource: related.resource,\n                options: { pinned: true, revealIfOpened: true, selection: Range.lift(related).collapseToStart() }\n            }, this._editor);\n            this.close(false);\n        }));\n        this._sessionDispoables.add(this._editor.onDidChangeModel(() => this._cleanUp()));\n        return this._model;\n    }\n    close(focusEditor = true) {\n        this._cleanUp();\n        if (focusEditor) {\n            this._editor.focus();\n        }\n    }\n    showAtMarker(marker) {\n        if (this._editor.hasModel()) {\n            const model = this._getOrCreateModel(this._editor.getModel().uri);\n            model.resetIndex();\n            model.move(true, this._editor.getModel(), new Position(marker.startLineNumber, marker.startColumn));\n            if (model.selected) {\n                this._widget.showAtMarker(model.selected.marker, model.selected.index, model.selected.total);\n            }\n        }\n    }\n    async nagivate(next, multiFile) {\n        var _a, _b;\n        if (this._editor.hasModel()) {\n            const model = this._getOrCreateModel(multiFile ? undefined : this._editor.getModel().uri);\n            model.move(next, this._editor.getModel(), this._editor.getPosition());\n            if (!model.selected) {\n                return;\n            }\n            if (model.selected.marker.resource.toString() !== this._editor.getModel().uri.toString()) {\n                // show in different editor\n                this._cleanUp();\n                const otherEditor = await this._editorService.openCodeEditor({\n                    resource: model.selected.marker.resource,\n                    options: { pinned: false, revealIfOpened: true, selectionRevealType: 2 /* TextEditorSelectionRevealType.NearTop */, selection: model.selected.marker }\n                }, this._editor);\n                if (otherEditor) {\n                    (_a = MarkerController_1.get(otherEditor)) === null || _a === void 0 ? void 0 : _a.close();\n                    (_b = MarkerController_1.get(otherEditor)) === null || _b === void 0 ? void 0 : _b.nagivate(next, multiFile);\n                }\n            }\n            else {\n                // show in this editor\n                this._widget.showAtMarker(model.selected.marker, model.selected.index, model.selected.total);\n            }\n        }\n    }\n};\nMarkerController.ID = 'editor.contrib.markerController';\nMarkerController = MarkerController_1 = __decorate([\n    __param(1, IMarkerNavigationService),\n    __param(2, IContextKeyService),\n    __param(3, ICodeEditorService),\n    __param(4, IInstantiationService)\n], MarkerController);\nexport { MarkerController };\nclass MarkerNavigationAction extends EditorAction {\n    constructor(_next, _multiFile, opts) {\n        super(opts);\n        this._next = _next;\n        this._multiFile = _multiFile;\n    }\n    async run(_accessor, editor) {\n        var _a;\n        if (editor.hasModel()) {\n            (_a = MarkerController.get(editor)) === null || _a === void 0 ? void 0 : _a.nagivate(this._next, this._multiFile);\n        }\n    }\n}\nexport class NextMarkerAction extends MarkerNavigationAction {\n    constructor() {\n        super(true, false, {\n            id: NextMarkerAction.ID,\n            label: NextMarkerAction.LABEL,\n            alias: 'Go to Next Problem (Error, Warning, Info)',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: EditorContextKeys.focus,\n                primary: 512 /* KeyMod.Alt */ | 66 /* KeyCode.F8 */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            menuOpts: {\n                menuId: MarkerNavigationWidget.TitleMenu,\n                title: NextMarkerAction.LABEL,\n                icon: registerIcon('marker-navigation-next', Codicon.arrowDown, nls.localize('nextMarkerIcon', 'Icon for goto next marker.')),\n                group: 'navigation',\n                order: 1\n            }\n        });\n    }\n}\nNextMarkerAction.ID = 'editor.action.marker.next';\nNextMarkerAction.LABEL = nls.localize('markerAction.next.label', \"Go to Next Problem (Error, Warning, Info)\");\nclass PrevMarkerAction extends MarkerNavigationAction {\n    constructor() {\n        super(false, false, {\n            id: PrevMarkerAction.ID,\n            label: PrevMarkerAction.LABEL,\n            alias: 'Go to Previous Problem (Error, Warning, Info)',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: EditorContextKeys.focus,\n                primary: 1024 /* KeyMod.Shift */ | 512 /* KeyMod.Alt */ | 66 /* KeyCode.F8 */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            menuOpts: {\n                menuId: MarkerNavigationWidget.TitleMenu,\n                title: PrevMarkerAction.LABEL,\n                icon: registerIcon('marker-navigation-previous', Codicon.arrowUp, nls.localize('previousMarkerIcon', 'Icon for goto previous marker.')),\n                group: 'navigation',\n                order: 2\n            }\n        });\n    }\n}\nPrevMarkerAction.ID = 'editor.action.marker.prev';\nPrevMarkerAction.LABEL = nls.localize('markerAction.previous.label', \"Go to Previous Problem (Error, Warning, Info)\");\nclass NextMarkerInFilesAction extends MarkerNavigationAction {\n    constructor() {\n        super(true, true, {\n            id: 'editor.action.marker.nextInFiles',\n            label: nls.localize('markerAction.nextInFiles.label', \"Go to Next Problem in Files (Error, Warning, Info)\"),\n            alias: 'Go to Next Problem in Files (Error, Warning, Info)',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: EditorContextKeys.focus,\n                primary: 66 /* KeyCode.F8 */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            menuOpts: {\n                menuId: MenuId.MenubarGoMenu,\n                title: nls.localize({ key: 'miGotoNextProblem', comment: ['&& denotes a mnemonic'] }, \"Next &&Problem\"),\n                group: '6_problem_nav',\n                order: 1\n            }\n        });\n    }\n}\nclass PrevMarkerInFilesAction extends MarkerNavigationAction {\n    constructor() {\n        super(false, true, {\n            id: 'editor.action.marker.prevInFiles',\n            label: nls.localize('markerAction.previousInFiles.label', \"Go to Previous Problem in Files (Error, Warning, Info)\"),\n            alias: 'Go to Previous Problem in Files (Error, Warning, Info)',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: EditorContextKeys.focus,\n                primary: 1024 /* KeyMod.Shift */ | 66 /* KeyCode.F8 */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            menuOpts: {\n                menuId: MenuId.MenubarGoMenu,\n                title: nls.localize({ key: 'miGotoPreviousProblem', comment: ['&& denotes a mnemonic'] }, \"Previous &&Problem\"),\n                group: '6_problem_nav',\n                order: 2\n            }\n        });\n    }\n}\nregisterEditorContribution(MarkerController.ID, MarkerController, 4 /* EditorContributionInstantiation.Lazy */);\nregisterEditorAction(NextMarkerAction);\nregisterEditorAction(PrevMarkerAction);\nregisterEditorAction(NextMarkerInFilesAction);\nregisterEditorAction(PrevMarkerInFilesAction);\nconst CONTEXT_MARKERS_NAVIGATION_VISIBLE = new RawContextKey('markersNavigationVisible', false);\nconst MarkerCommand = EditorCommand.bindToContribution(MarkerController.get);\nregisterEditorCommand(new MarkerCommand({\n    id: 'closeMarkersNavigation',\n    precondition: CONTEXT_MARKERS_NAVIGATION_VISIBLE,\n    handler: x => x.close(),\n    kbOpts: {\n        weight: 100 /* KeybindingWeight.EditorContrib */ + 50,\n        kbExpr: EditorContextKeys.focus,\n        primary: 9 /* KeyCode.Escape */,\n        secondary: [1024 /* KeyMod.Shift */ | 9 /* KeyCode.Escape */]\n    }\n}));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar MarkerNavigationWidget_1;\nimport * as dom from '../../../../base/browser/dom.js';\nimport { ScrollableElement } from '../../../../base/browser/ui/scrollbar/scrollableElement.js';\nimport { isNonEmptyArray } from '../../../../base/common/arrays.js';\nimport { Color } from '../../../../base/common/color.js';\nimport { Emitter } from '../../../../base/common/event.js';\nimport { DisposableStore, dispose } from '../../../../base/common/lifecycle.js';\nimport { basename } from '../../../../base/common/resources.js';\nimport { splitLines } from '../../../../base/common/strings.js';\nimport './media/gotoErrorWidget.css';\nimport { Range } from '../../../common/core/range.js';\nimport { peekViewTitleForeground, peekViewTitleInfoForeground, PeekViewWidget } from '../../peekView/browser/peekView.js';\nimport * as nls from '../../../../nls.js';\nimport { createAndFillInActionBarActions } from '../../../../platform/actions/browser/menuEntryActionViewItem.js';\nimport { IMenuService, MenuId } from '../../../../platform/actions/common/actions.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { ILabelService } from '../../../../platform/label/common/label.js';\nimport { MarkerSeverity } from '../../../../platform/markers/common/markers.js';\nimport { IOpenerService } from '../../../../platform/opener/common/opener.js';\nimport { SeverityIcon } from '../../../../platform/severityIcon/browser/severityIcon.js';\nimport { contrastBorder, editorBackground, editorErrorBorder, editorErrorForeground, editorInfoBorder, editorInfoForeground, editorWarningBorder, editorWarningForeground, oneOf, registerColor, transparent } from '../../../../platform/theme/common/colorRegistry.js';\nimport { IThemeService } from '../../../../platform/theme/common/themeService.js';\nclass MessageWidget {\n    constructor(parent, editor, onRelatedInformation, _openerService, _labelService) {\n        this._openerService = _openerService;\n        this._labelService = _labelService;\n        this._lines = 0;\n        this._longestLineLength = 0;\n        this._relatedDiagnostics = new WeakMap();\n        this._disposables = new DisposableStore();\n        this._editor = editor;\n        const domNode = document.createElement('div');\n        domNode.className = 'descriptioncontainer';\n        this._messageBlock = document.createElement('div');\n        this._messageBlock.classList.add('message');\n        this._messageBlock.setAttribute('aria-live', 'assertive');\n        this._messageBlock.setAttribute('role', 'alert');\n        domNode.appendChild(this._messageBlock);\n        this._relatedBlock = document.createElement('div');\n        domNode.appendChild(this._relatedBlock);\n        this._disposables.add(dom.addStandardDisposableListener(this._relatedBlock, 'click', event => {\n            event.preventDefault();\n            const related = this._relatedDiagnostics.get(event.target);\n            if (related) {\n                onRelatedInformation(related);\n            }\n        }));\n        this._scrollable = new ScrollableElement(domNode, {\n            horizontal: 1 /* ScrollbarVisibility.Auto */,\n            vertical: 1 /* ScrollbarVisibility.Auto */,\n            useShadows: false,\n            horizontalScrollbarSize: 6,\n            verticalScrollbarSize: 6\n        });\n        parent.appendChild(this._scrollable.getDomNode());\n        this._disposables.add(this._scrollable.onScroll(e => {\n            domNode.style.left = `-${e.scrollLeft}px`;\n            domNode.style.top = `-${e.scrollTop}px`;\n        }));\n        this._disposables.add(this._scrollable);\n    }\n    dispose() {\n        dispose(this._disposables);\n    }\n    update(marker) {\n        const { source, message, relatedInformation, code } = marker;\n        let sourceAndCodeLength = ((source === null || source === void 0 ? void 0 : source.length) || 0) + '()'.length;\n        if (code) {\n            if (typeof code === 'string') {\n                sourceAndCodeLength += code.length;\n            }\n            else {\n                sourceAndCodeLength += code.value.length;\n            }\n        }\n        const lines = splitLines(message);\n        this._lines = lines.length;\n        this._longestLineLength = 0;\n        for (const line of lines) {\n            this._longestLineLength = Math.max(line.length + sourceAndCodeLength, this._longestLineLength);\n        }\n        dom.clearNode(this._messageBlock);\n        this._messageBlock.setAttribute('aria-label', this.getAriaLabel(marker));\n        this._editor.applyFontInfo(this._messageBlock);\n        let lastLineElement = this._messageBlock;\n        for (const line of lines) {\n            lastLineElement = document.createElement('div');\n            lastLineElement.innerText = line;\n            if (line === '') {\n                lastLineElement.style.height = this._messageBlock.style.lineHeight;\n            }\n            this._messageBlock.appendChild(lastLineElement);\n        }\n        if (source || code) {\n            const detailsElement = document.createElement('span');\n            detailsElement.classList.add('details');\n            lastLineElement.appendChild(detailsElement);\n            if (source) {\n                const sourceElement = document.createElement('span');\n                sourceElement.innerText = source;\n                sourceElement.classList.add('source');\n                detailsElement.appendChild(sourceElement);\n            }\n            if (code) {\n                if (typeof code === 'string') {\n                    const codeElement = document.createElement('span');\n                    codeElement.innerText = `(${code})`;\n                    codeElement.classList.add('code');\n                    detailsElement.appendChild(codeElement);\n                }\n                else {\n                    this._codeLink = dom.$('a.code-link');\n                    this._codeLink.setAttribute('href', `${code.target.toString()}`);\n                    this._codeLink.onclick = (e) => {\n                        this._openerService.open(code.target, { allowCommands: true });\n                        e.preventDefault();\n                        e.stopPropagation();\n                    };\n                    const codeElement = dom.append(this._codeLink, dom.$('span'));\n                    codeElement.innerText = code.value;\n                    detailsElement.appendChild(this._codeLink);\n                }\n            }\n        }\n        dom.clearNode(this._relatedBlock);\n        this._editor.applyFontInfo(this._relatedBlock);\n        if (isNonEmptyArray(relatedInformation)) {\n            const relatedInformationNode = this._relatedBlock.appendChild(document.createElement('div'));\n            relatedInformationNode.style.paddingTop = `${Math.floor(this._editor.getOption(67 /* EditorOption.lineHeight */) * 0.66)}px`;\n            this._lines += 1;\n            for (const related of relatedInformation) {\n                const container = document.createElement('div');\n                const relatedResource = document.createElement('a');\n                relatedResource.classList.add('filename');\n                relatedResource.innerText = `${this._labelService.getUriBasenameLabel(related.resource)}(${related.startLineNumber}, ${related.startColumn}): `;\n                relatedResource.title = this._labelService.getUriLabel(related.resource);\n                this._relatedDiagnostics.set(relatedResource, related);\n                const relatedMessage = document.createElement('span');\n                relatedMessage.innerText = related.message;\n                container.appendChild(relatedResource);\n                container.appendChild(relatedMessage);\n                this._lines += 1;\n                relatedInformationNode.appendChild(container);\n            }\n        }\n        const fontInfo = this._editor.getOption(50 /* EditorOption.fontInfo */);\n        const scrollWidth = Math.ceil(fontInfo.typicalFullwidthCharacterWidth * this._longestLineLength * 0.75);\n        const scrollHeight = fontInfo.lineHeight * this._lines;\n        this._scrollable.setScrollDimensions({ scrollWidth, scrollHeight });\n    }\n    layout(height, width) {\n        this._scrollable.getDomNode().style.height = `${height}px`;\n        this._scrollable.getDomNode().style.width = `${width}px`;\n        this._scrollable.setScrollDimensions({ width, height });\n    }\n    getHeightInLines() {\n        return Math.min(17, this._lines);\n    }\n    getAriaLabel(marker) {\n        let severityLabel = '';\n        switch (marker.severity) {\n            case MarkerSeverity.Error:\n                severityLabel = nls.localize('Error', \"Error\");\n                break;\n            case MarkerSeverity.Warning:\n                severityLabel = nls.localize('Warning', \"Warning\");\n                break;\n            case MarkerSeverity.Info:\n                severityLabel = nls.localize('Info', \"Info\");\n                break;\n            case MarkerSeverity.Hint:\n                severityLabel = nls.localize('Hint', \"Hint\");\n                break;\n        }\n        let ariaLabel = nls.localize('marker aria', \"{0} at {1}. \", severityLabel, marker.startLineNumber + ':' + marker.startColumn);\n        const model = this._editor.getModel();\n        if (model && (marker.startLineNumber <= model.getLineCount()) && (marker.startLineNumber >= 1)) {\n            const lineContent = model.getLineContent(marker.startLineNumber);\n            ariaLabel = `${lineContent}, ${ariaLabel}`;\n        }\n        return ariaLabel;\n    }\n}\nlet MarkerNavigationWidget = MarkerNavigationWidget_1 = class MarkerNavigationWidget extends PeekViewWidget {\n    constructor(editor, _themeService, _openerService, _menuService, instantiationService, _contextKeyService, _labelService) {\n        super(editor, { showArrow: true, showFrame: true, isAccessible: true, frameWidth: 1 }, instantiationService);\n        this._themeService = _themeService;\n        this._openerService = _openerService;\n        this._menuService = _menuService;\n        this._contextKeyService = _contextKeyService;\n        this._labelService = _labelService;\n        this._callOnDispose = new DisposableStore();\n        this._onDidSelectRelatedInformation = new Emitter();\n        this.onDidSelectRelatedInformation = this._onDidSelectRelatedInformation.event;\n        this._severity = MarkerSeverity.Warning;\n        this._backgroundColor = Color.white;\n        this._applyTheme(_themeService.getColorTheme());\n        this._callOnDispose.add(_themeService.onDidColorThemeChange(this._applyTheme.bind(this)));\n        this.create();\n    }\n    _applyTheme(theme) {\n        this._backgroundColor = theme.getColor(editorMarkerNavigationBackground);\n        let colorId = editorMarkerNavigationError;\n        let headerBackground = editorMarkerNavigationErrorHeader;\n        if (this._severity === MarkerSeverity.Warning) {\n            colorId = editorMarkerNavigationWarning;\n            headerBackground = editorMarkerNavigationWarningHeader;\n        }\n        else if (this._severity === MarkerSeverity.Info) {\n            colorId = editorMarkerNavigationInfo;\n            headerBackground = editorMarkerNavigationInfoHeader;\n        }\n        const frameColor = theme.getColor(colorId);\n        const headerBg = theme.getColor(headerBackground);\n        this.style({\n            arrowColor: frameColor,\n            frameColor: frameColor,\n            headerBackgroundColor: headerBg,\n            primaryHeadingColor: theme.getColor(peekViewTitleForeground),\n            secondaryHeadingColor: theme.getColor(peekViewTitleInfoForeground)\n        }); // style() will trigger _applyStyles\n    }\n    _applyStyles() {\n        if (this._parentContainer) {\n            this._parentContainer.style.backgroundColor = this._backgroundColor ? this._backgroundColor.toString() : '';\n        }\n        super._applyStyles();\n    }\n    dispose() {\n        this._callOnDispose.dispose();\n        super.dispose();\n    }\n    _fillHead(container) {\n        super._fillHead(container);\n        this._disposables.add(this._actionbarWidget.actionRunner.onWillRun(e => this.editor.focus()));\n        const actions = [];\n        const menu = this._menuService.createMenu(MarkerNavigationWidget_1.TitleMenu, this._contextKeyService);\n        createAndFillInActionBarActions(menu, undefined, actions);\n        this._actionbarWidget.push(actions, { label: false, icon: true, index: 0 });\n        menu.dispose();\n    }\n    _fillTitleIcon(container) {\n        this._icon = dom.append(container, dom.$(''));\n    }\n    _fillBody(container) {\n        this._parentContainer = container;\n        container.classList.add('marker-widget');\n        this._parentContainer.tabIndex = 0;\n        this._parentContainer.setAttribute('role', 'tooltip');\n        this._container = document.createElement('div');\n        container.appendChild(this._container);\n        this._message = new MessageWidget(this._container, this.editor, related => this._onDidSelectRelatedInformation.fire(related), this._openerService, this._labelService);\n        this._disposables.add(this._message);\n    }\n    show() {\n        throw new Error('call showAtMarker');\n    }\n    showAtMarker(marker, markerIdx, markerCount) {\n        // update:\n        // * title\n        // * message\n        this._container.classList.remove('stale');\n        this._message.update(marker);\n        // update frame color (only applied on 'show')\n        this._severity = marker.severity;\n        this._applyTheme(this._themeService.getColorTheme());\n        // show\n        const range = Range.lift(marker);\n        const editorPosition = this.editor.getPosition();\n        const position = editorPosition && range.containsPosition(editorPosition) ? editorPosition : range.getStartPosition();\n        super.show(position, this.computeRequiredHeight());\n        const model = this.editor.getModel();\n        if (model) {\n            const detail = markerCount > 1\n                ? nls.localize('problems', \"{0} of {1} problems\", markerIdx, markerCount)\n                : nls.localize('change', \"{0} of {1} problem\", markerIdx, markerCount);\n            this.setTitle(basename(model.uri), detail);\n        }\n        this._icon.className = `codicon ${SeverityIcon.className(MarkerSeverity.toSeverity(this._severity))}`;\n        this.editor.revealPositionNearTop(position, 0 /* ScrollType.Smooth */);\n        this.editor.focus();\n    }\n    updateMarker(marker) {\n        this._container.classList.remove('stale');\n        this._message.update(marker);\n    }\n    showStale() {\n        this._container.classList.add('stale');\n        this._relayout();\n    }\n    _doLayoutBody(heightInPixel, widthInPixel) {\n        super._doLayoutBody(heightInPixel, widthInPixel);\n        this._heightInPixel = heightInPixel;\n        this._message.layout(heightInPixel, widthInPixel);\n        this._container.style.height = `${heightInPixel}px`;\n    }\n    _onWidth(widthInPixel) {\n        this._message.layout(this._heightInPixel, widthInPixel);\n    }\n    _relayout() {\n        super._relayout(this.computeRequiredHeight());\n    }\n    computeRequiredHeight() {\n        return 3 + this._message.getHeightInLines();\n    }\n};\nMarkerNavigationWidget.TitleMenu = new MenuId('gotoErrorTitleMenu');\nMarkerNavigationWidget = MarkerNavigationWidget_1 = __decorate([\n    __param(1, IThemeService),\n    __param(2, IOpenerService),\n    __param(3, IMenuService),\n    __param(4, IInstantiationService),\n    __param(5, IContextKeyService),\n    __param(6, ILabelService)\n], MarkerNavigationWidget);\nexport { MarkerNavigationWidget };\n// theming\nconst errorDefault = oneOf(editorErrorForeground, editorErrorBorder);\nconst warningDefault = oneOf(editorWarningForeground, editorWarningBorder);\nconst infoDefault = oneOf(editorInfoForeground, editorInfoBorder);\nconst editorMarkerNavigationError = registerColor('editorMarkerNavigationError.background', { dark: errorDefault, light: errorDefault, hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('editorMarkerNavigationError', 'Editor marker navigation widget error color.'));\nconst editorMarkerNavigationErrorHeader = registerColor('editorMarkerNavigationError.headerBackground', { dark: transparent(editorMarkerNavigationError, .1), light: transparent(editorMarkerNavigationError, .1), hcDark: null, hcLight: null }, nls.localize('editorMarkerNavigationErrorHeaderBackground', 'Editor marker navigation widget error heading background.'));\nconst editorMarkerNavigationWarning = registerColor('editorMarkerNavigationWarning.background', { dark: warningDefault, light: warningDefault, hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('editorMarkerNavigationWarning', 'Editor marker navigation widget warning color.'));\nconst editorMarkerNavigationWarningHeader = registerColor('editorMarkerNavigationWarning.headerBackground', { dark: transparent(editorMarkerNavigationWarning, .1), light: transparent(editorMarkerNavigationWarning, .1), hcDark: '#0C141F', hcLight: transparent(editorMarkerNavigationWarning, .2) }, nls.localize('editorMarkerNavigationWarningBackground', 'Editor marker navigation widget warning heading background.'));\nconst editorMarkerNavigationInfo = registerColor('editorMarkerNavigationInfo.background', { dark: infoDefault, light: infoDefault, hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('editorMarkerNavigationInfo', 'Editor marker navigation widget info color.'));\nconst editorMarkerNavigationInfoHeader = registerColor('editorMarkerNavigationInfo.headerBackground', { dark: transparent(editorMarkerNavigationInfo, .1), light: transparent(editorMarkerNavigationInfo, .1), hcDark: null, hcLight: null }, nls.localize('editorMarkerNavigationInfoHeaderBackground', 'Editor marker navigation widget info heading background.'));\nconst editorMarkerNavigationBackground = registerColor('editorMarkerNavigation.background', { dark: editorBackground, light: editorBackground, hcDark: editorBackground, hcLight: editorBackground }, nls.localize('editorMarkerNavigationBackground', 'Editor marker navigation widget background.'));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/gotoError/browser/markerNavigationService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { binarySearch } from '../../../../base/common/arrays.js';\nimport { Emitter } from '../../../../base/common/event.js';\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { LinkedList } from '../../../../base/common/linkedList.js';\nimport { compare } from '../../../../base/common/strings.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport { Range } from '../../../common/core/range.js';\nimport { registerSingleton } from '../../../../platform/instantiation/common/extensions.js';\nimport { createDecorator } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IMarkerService, MarkerSeverity } from '../../../../platform/markers/common/markers.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nexport class MarkerCoordinate {\n    constructor(marker, index, total) {\n        this.marker = marker;\n        this.index = index;\n        this.total = total;\n    }\n}\nlet MarkerList = class MarkerList {\n    constructor(resourceFilter, _markerService, _configService) {\n        this._markerService = _markerService;\n        this._configService = _configService;\n        this._onDidChange = new Emitter();\n        this.onDidChange = this._onDidChange.event;\n        this._dispoables = new DisposableStore();\n        this._markers = [];\n        this._nextIdx = -1;\n        if (URI.isUri(resourceFilter)) {\n            this._resourceFilter = uri => uri.toString() === resourceFilter.toString();\n        }\n        else if (resourceFilter) {\n            this._resourceFilter = resourceFilter;\n        }\n        const compareOrder = this._configService.getValue('problems.sortOrder');\n        const compareMarker = (a, b) => {\n            let res = compare(a.resource.toString(), b.resource.toString());\n            if (res === 0) {\n                if (compareOrder === 'position') {\n                    res = Range.compareRangesUsingStarts(a, b) || MarkerSeverity.compare(a.severity, b.severity);\n                }\n                else {\n                    res = MarkerSeverity.compare(a.severity, b.severity) || Range.compareRangesUsingStarts(a, b);\n                }\n            }\n            return res;\n        };\n        const updateMarker = () => {\n            this._markers = this._markerService.read({\n                resource: URI.isUri(resourceFilter) ? resourceFilter : undefined,\n                severities: MarkerSeverity.Error | MarkerSeverity.Warning | MarkerSeverity.Info\n            });\n            if (typeof resourceFilter === 'function') {\n                this._markers = this._markers.filter(m => this._resourceFilter(m.resource));\n            }\n            this._markers.sort(compareMarker);\n        };\n        updateMarker();\n        this._dispoables.add(_markerService.onMarkerChanged(uris => {\n            if (!this._resourceFilter || uris.some(uri => this._resourceFilter(uri))) {\n                updateMarker();\n                this._nextIdx = -1;\n                this._onDidChange.fire();\n            }\n        }));\n    }\n    dispose() {\n        this._dispoables.dispose();\n        this._onDidChange.dispose();\n    }\n    matches(uri) {\n        if (!this._resourceFilter && !uri) {\n            return true;\n        }\n        if (!this._resourceFilter || !uri) {\n            return false;\n        }\n        return this._resourceFilter(uri);\n    }\n    get selected() {\n        const marker = this._markers[this._nextIdx];\n        return marker && new MarkerCoordinate(marker, this._nextIdx + 1, this._markers.length);\n    }\n    _initIdx(model, position, fwd) {\n        let found = false;\n        let idx = this._markers.findIndex(marker => marker.resource.toString() === model.uri.toString());\n        if (idx < 0) {\n            idx = binarySearch(this._markers, { resource: model.uri }, (a, b) => compare(a.resource.toString(), b.resource.toString()));\n            if (idx < 0) {\n                idx = ~idx;\n            }\n        }\n        for (let i = idx; i < this._markers.length; i++) {\n            let range = Range.lift(this._markers[i]);\n            if (range.isEmpty()) {\n                const word = model.getWordAtPosition(range.getStartPosition());\n                if (word) {\n                    range = new Range(range.startLineNumber, word.startColumn, range.startLineNumber, word.endColumn);\n                }\n            }\n            if (position && (range.containsPosition(position) || position.isBeforeOrEqual(range.getStartPosition()))) {\n                this._nextIdx = i;\n                found = true;\n                break;\n            }\n            if (this._markers[i].resource.toString() !== model.uri.toString()) {\n                break;\n            }\n        }\n        if (!found) {\n            // after the last change\n            this._nextIdx = fwd ? 0 : this._markers.length - 1;\n        }\n        if (this._nextIdx < 0) {\n            this._nextIdx = this._markers.length - 1;\n        }\n    }\n    resetIndex() {\n        this._nextIdx = -1;\n    }\n    move(fwd, model, position) {\n        if (this._markers.length === 0) {\n            return false;\n        }\n        const oldIdx = this._nextIdx;\n        if (this._nextIdx === -1) {\n            this._initIdx(model, position, fwd);\n        }\n        else if (fwd) {\n            this._nextIdx = (this._nextIdx + 1) % this._markers.length;\n        }\n        else if (!fwd) {\n            this._nextIdx = (this._nextIdx - 1 + this._markers.length) % this._markers.length;\n        }\n        if (oldIdx !== this._nextIdx) {\n            return true;\n        }\n        return false;\n    }\n    find(uri, position) {\n        let idx = this._markers.findIndex(marker => marker.resource.toString() === uri.toString());\n        if (idx < 0) {\n            return undefined;\n        }\n        for (; idx < this._markers.length; idx++) {\n            if (Range.containsPosition(this._markers[idx], position)) {\n                return new MarkerCoordinate(this._markers[idx], idx + 1, this._markers.length);\n            }\n        }\n        return undefined;\n    }\n};\nMarkerList = __decorate([\n    __param(1, IMarkerService),\n    __param(2, IConfigurationService)\n], MarkerList);\nexport { MarkerList };\nexport const IMarkerNavigationService = createDecorator('IMarkerNavigationService');\nlet MarkerNavigationService = class MarkerNavigationService {\n    constructor(_markerService, _configService) {\n        this._markerService = _markerService;\n        this._configService = _configService;\n        this._provider = new LinkedList();\n    }\n    getMarkerList(resource) {\n        for (const provider of this._provider) {\n            const result = provider.getMarkerList(resource);\n            if (result) {\n                return result;\n            }\n        }\n        // default\n        return new MarkerList(resource, this._markerService, this._configService);\n    }\n};\nMarkerNavigationService = __decorate([\n    __param(0, IMarkerService),\n    __param(1, IConfigurationService)\n], MarkerNavigationService);\nregisterSingleton(IMarkerNavigationService, MarkerNavigationService, 1 /* InstantiationType.Delayed */);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/gotoError/browser/media/gotoErrorWidget.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n/* marker zone */\n\n.monaco-editor .peekview-widget .head .peekview-title .severity-icon {\n\tdisplay: inline-block;\n\tvertical-align: text-top;\n\tmargin-right: 4px;\n}\n\n.monaco-editor .marker-widget {\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n\n.monaco-editor .marker-widget > .stale {\n\topacity: 0.6;\n\tfont-style: italic;\n}\n\n.monaco-editor .marker-widget .title {\n\tdisplay: inline-block;\n\tpadding-right: 5px;\n}\n\n.monaco-editor .marker-widget .descriptioncontainer {\n\tposition: absolute;\n\twhite-space: pre;\n\tuser-select: text;\n\t-webkit-user-select: text;\n\tpadding: 8px 12px 0 20px;\n}\n\n.monaco-editor .marker-widget .descriptioncontainer .message {\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.monaco-editor .marker-widget .descriptioncontainer .message .details {\n\tpadding-left: 6px;\n}\n\n.monaco-editor .marker-widget .descriptioncontainer .message .source,\n.monaco-editor .marker-widget .descriptioncontainer .message span.code {\n\topacity: 0.6;\n}\n\n.monaco-editor .marker-widget .descriptioncontainer .message a.code-link {\n\topacity: 0.6;\n\tcolor: inherit;\n}\n\n.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:before {\n\tcontent: '(';\n}\n\n.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:after {\n\tcontent: ')';\n}\n\n.monaco-editor .marker-widget .descriptioncontainer .message a.code-link > span {\n\ttext-decoration: underline;\n\t/** Hack to force underline to show **/\n\tborder-bottom: 1px solid transparent;\n\ttext-underline-position: under;\n\tcolor: var(--vscode-textLink-activeForeground);\n}\n\n.monaco-editor .marker-widget .descriptioncontainer .filename {\n\tcursor: pointer;\n\tcolor: var(--vscode-textLink-activeForeground);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/gotoSymbol/browser/goToCommands.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/gotoSymbol/browser/goToCommands.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar _a, _b, _c, _d, _e, _f, _g, _h;\nimport { alert } from '../../../../base/browser/ui/aria/aria.js';\nimport { createCancelablePromise, raceCancellation } from '../../../../base/common/async.js';\nimport { KeyChord } from '../../../../base/common/keyCodes.js';\nimport { assertType } from '../../../../base/common/types.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport { EditorStateCancellationTokenSource } from '../../editorState/browser/editorState.js';\nimport { isCodeEditor } from '../../../browser/editorBrowser.js';\nimport { EditorAction2 } from '../../../browser/editorExtensions.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { EmbeddedCodeEditorWidget } from '../../../browser/widget/codeEditor/embeddedCodeEditorWidget.js';\nimport * as corePosition from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { isLocationLink } from '../../../common/languages.js';\nimport { ReferencesController } from './peek/referencesController.js';\nimport { ReferencesModel } from './referencesModel.js';\nimport { ISymbolNavigationService } from './symbolNavigation.js';\nimport { MessageController } from '../../message/browser/messageController.js';\nimport { PeekContext } from '../../peekView/browser/peekView.js';\nimport * as nls from '../../../../nls.js';\nimport { MenuId, MenuRegistry, registerAction2 } from '../../../../platform/actions/common/actions.js';\nimport { CommandsRegistry, ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { INotificationService } from '../../../../platform/notification/common/notification.js';\nimport { IEditorProgressService } from '../../../../platform/progress/common/progress.js';\nimport { getDeclarationsAtPosition, getDefinitionsAtPosition, getImplementationsAtPosition, getReferencesAtPosition, getTypeDefinitionsAtPosition } from './goToSymbol.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { Iterable } from '../../../../base/common/iterator.js';\nimport { IsWebContext } from '../../../../platform/contextkey/common/contextkeys.js';\nMenuRegistry.appendMenuItem(MenuId.EditorContext, {\n    submenu: MenuId.EditorContextPeek,\n    title: nls.localize('peek.submenu', \"Peek\"),\n    group: 'navigation',\n    order: 100\n});\nexport class SymbolNavigationAnchor {\n    static is(thing) {\n        if (!thing || typeof thing !== 'object') {\n            return false;\n        }\n        if (thing instanceof SymbolNavigationAnchor) {\n            return true;\n        }\n        if (corePosition.Position.isIPosition(thing.position) && thing.model) {\n            return true;\n        }\n        return false;\n    }\n    constructor(model, position) {\n        this.model = model;\n        this.position = position;\n    }\n}\nexport class SymbolNavigationAction extends EditorAction2 {\n    static all() {\n        return SymbolNavigationAction._allSymbolNavigationCommands.values();\n    }\n    static _patchConfig(opts) {\n        const result = { ...opts, f1: true };\n        // patch context menu when clause\n        if (result.menu) {\n            for (const item of Iterable.wrap(result.menu)) {\n                if (item.id === MenuId.EditorContext || item.id === MenuId.EditorContextPeek) {\n                    item.when = ContextKeyExpr.and(opts.precondition, item.when);\n                }\n            }\n        }\n        return result;\n    }\n    constructor(configuration, opts) {\n        super(SymbolNavigationAction._patchConfig(opts));\n        this.configuration = configuration;\n        SymbolNavigationAction._allSymbolNavigationCommands.set(opts.id, this);\n    }\n    runEditorCommand(accessor, editor, arg, range) {\n        if (!editor.hasModel()) {\n            return Promise.resolve(undefined);\n        }\n        const notificationService = accessor.get(INotificationService);\n        const editorService = accessor.get(ICodeEditorService);\n        const progressService = accessor.get(IEditorProgressService);\n        const symbolNavService = accessor.get(ISymbolNavigationService);\n        const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n        const instaService = accessor.get(IInstantiationService);\n        const model = editor.getModel();\n        const position = editor.getPosition();\n        const anchor = SymbolNavigationAnchor.is(arg) ? arg : new SymbolNavigationAnchor(model, position);\n        const cts = new EditorStateCancellationTokenSource(editor, 1 /* CodeEditorStateFlag.Value */ | 4 /* CodeEditorStateFlag.Position */);\n        const promise = raceCancellation(this._getLocationModel(languageFeaturesService, anchor.model, anchor.position, cts.token), cts.token).then(async (references) => {\n            var _j;\n            if (!references || cts.token.isCancellationRequested) {\n                return;\n            }\n            alert(references.ariaMessage);\n            let altAction;\n            if (references.referenceAt(model.uri, position)) {\n                const altActionId = this._getAlternativeCommand(editor);\n                if (!SymbolNavigationAction._activeAlternativeCommands.has(altActionId) && SymbolNavigationAction._allSymbolNavigationCommands.has(altActionId)) {\n                    altAction = SymbolNavigationAction._allSymbolNavigationCommands.get(altActionId);\n                }\n            }\n            const referenceCount = references.references.length;\n            if (referenceCount === 0) {\n                // no result -> show message\n                if (!this.configuration.muteMessage) {\n                    const info = model.getWordAtPosition(position);\n                    (_j = MessageController.get(editor)) === null || _j === void 0 ? void 0 : _j.showMessage(this._getNoResultFoundMessage(info), position);\n                }\n            }\n            else if (referenceCount === 1 && altAction) {\n                // already at the only result, run alternative\n                SymbolNavigationAction._activeAlternativeCommands.add(this.desc.id);\n                instaService.invokeFunction((accessor) => altAction.runEditorCommand(accessor, editor, arg, range).finally(() => {\n                    SymbolNavigationAction._activeAlternativeCommands.delete(this.desc.id);\n                }));\n            }\n            else {\n                // normal results handling\n                return this._onResult(editorService, symbolNavService, editor, references, range);\n            }\n        }, (err) => {\n            // report an error\n            notificationService.error(err);\n        }).finally(() => {\n            cts.dispose();\n        });\n        progressService.showWhile(promise, 250);\n        return promise;\n    }\n    async _onResult(editorService, symbolNavService, editor, model, range) {\n        const gotoLocation = this._getGoToPreference(editor);\n        if (!(editor instanceof EmbeddedCodeEditorWidget) && (this.configuration.openInPeek || (gotoLocation === 'peek' && model.references.length > 1))) {\n            this._openInPeek(editor, model, range);\n        }\n        else {\n            const next = model.firstReference();\n            const peek = model.references.length > 1 && gotoLocation === 'gotoAndPeek';\n            const targetEditor = await this._openReference(editor, editorService, next, this.configuration.openToSide, !peek);\n            if (peek && targetEditor) {\n                this._openInPeek(targetEditor, model, range);\n            }\n            else {\n                model.dispose();\n            }\n            // keep remaining locations around when using\n            // 'goto'-mode\n            if (gotoLocation === 'goto') {\n                symbolNavService.put(next);\n            }\n        }\n    }\n    async _openReference(editor, editorService, reference, sideBySide, highlight) {\n        // range is the target-selection-range when we have one\n        // and the fallback is the 'full' range\n        let range = undefined;\n        if (isLocationLink(reference)) {\n            range = reference.targetSelectionRange;\n        }\n        if (!range) {\n            range = reference.range;\n        }\n        if (!range) {\n            return undefined;\n        }\n        const targetEditor = await editorService.openCodeEditor({\n            resource: reference.uri,\n            options: {\n                selection: Range.collapseToStart(range),\n                selectionRevealType: 3 /* TextEditorSelectionRevealType.NearTopIfOutsideViewport */,\n                selectionSource: \"code.jump\" /* TextEditorSelectionSource.JUMP */\n            }\n        }, editor, sideBySide);\n        if (!targetEditor) {\n            return undefined;\n        }\n        if (highlight) {\n            const modelNow = targetEditor.getModel();\n            const decorations = targetEditor.createDecorationsCollection([{ range, options: { description: 'symbol-navigate-action-highlight', className: 'symbolHighlight' } }]);\n            setTimeout(() => {\n                if (targetEditor.getModel() === modelNow) {\n                    decorations.clear();\n                }\n            }, 350);\n        }\n        return targetEditor;\n    }\n    _openInPeek(target, model, range) {\n        const controller = ReferencesController.get(target);\n        if (controller && target.hasModel()) {\n            controller.toggleWidget(range !== null && range !== void 0 ? range : target.getSelection(), createCancelablePromise(_ => Promise.resolve(model)), this.configuration.openInPeek);\n        }\n        else {\n            model.dispose();\n        }\n    }\n}\nSymbolNavigationAction._allSymbolNavigationCommands = new Map();\nSymbolNavigationAction._activeAlternativeCommands = new Set();\n//#region --- DEFINITION\nexport class DefinitionAction extends SymbolNavigationAction {\n    async _getLocationModel(languageFeaturesService, model, position, token) {\n        return new ReferencesModel(await getDefinitionsAtPosition(languageFeaturesService.definitionProvider, model, position, token), nls.localize('def.title', 'Definitions'));\n    }\n    _getNoResultFoundMessage(info) {\n        return info && info.word\n            ? nls.localize('noResultWord', \"No definition found for '{0}'\", info.word)\n            : nls.localize('generic.noResults', \"No definition found\");\n    }\n    _getAlternativeCommand(editor) {\n        return editor.getOption(58 /* EditorOption.gotoLocation */).alternativeDefinitionCommand;\n    }\n    _getGoToPreference(editor) {\n        return editor.getOption(58 /* EditorOption.gotoLocation */).multipleDefinitions;\n    }\n}\nregisterAction2((_a = class GoToDefinitionAction extends DefinitionAction {\n        constructor() {\n            super({\n                openToSide: false,\n                openInPeek: false,\n                muteMessage: false\n            }, {\n                id: _a.id,\n                title: {\n                    ...nls.localize2('actions.goToDecl.label', \"Go to Definition\"),\n                    mnemonicTitle: nls.localize({ key: 'miGotoDefinition', comment: ['&& denotes a mnemonic'] }, \"Go to &&Definition\"),\n                },\n                precondition: EditorContextKeys.hasDefinitionProvider,\n                keybinding: [{\n                        when: EditorContextKeys.editorTextFocus,\n                        primary: 70 /* KeyCode.F12 */,\n                        weight: 100 /* KeybindingWeight.EditorContrib */\n                    }, {\n                        when: ContextKeyExpr.and(EditorContextKeys.editorTextFocus, IsWebContext),\n                        primary: 2048 /* KeyMod.CtrlCmd */ | 70 /* KeyCode.F12 */,\n                        weight: 100 /* KeybindingWeight.EditorContrib */\n                    }],\n                menu: [{\n                        id: MenuId.EditorContext,\n                        group: 'navigation',\n                        order: 1.1\n                    }, {\n                        id: MenuId.MenubarGoMenu,\n                        precondition: null,\n                        group: '4_symbol_nav',\n                        order: 2,\n                    }]\n            });\n            CommandsRegistry.registerCommandAlias('editor.action.goToDeclaration', _a.id);\n        }\n    },\n    _a.id = 'editor.action.revealDefinition',\n    _a));\nregisterAction2((_b = class OpenDefinitionToSideAction extends DefinitionAction {\n        constructor() {\n            super({\n                openToSide: true,\n                openInPeek: false,\n                muteMessage: false\n            }, {\n                id: _b.id,\n                title: nls.localize2('actions.goToDeclToSide.label', \"Open Definition to the Side\"),\n                precondition: ContextKeyExpr.and(EditorContextKeys.hasDefinitionProvider, EditorContextKeys.isInEmbeddedEditor.toNegated()),\n                keybinding: [{\n                        when: EditorContextKeys.editorTextFocus,\n                        primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 70 /* KeyCode.F12 */),\n                        weight: 100 /* KeybindingWeight.EditorContrib */\n                    }, {\n                        when: ContextKeyExpr.and(EditorContextKeys.editorTextFocus, IsWebContext),\n                        primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 70 /* KeyCode.F12 */),\n                        weight: 100 /* KeybindingWeight.EditorContrib */\n                    }]\n            });\n            CommandsRegistry.registerCommandAlias('editor.action.openDeclarationToTheSide', _b.id);\n        }\n    },\n    _b.id = 'editor.action.revealDefinitionAside',\n    _b));\nregisterAction2((_c = class PeekDefinitionAction extends DefinitionAction {\n        constructor() {\n            super({\n                openToSide: false,\n                openInPeek: true,\n                muteMessage: false\n            }, {\n                id: _c.id,\n                title: nls.localize2('actions.previewDecl.label', \"Peek Definition\"),\n                precondition: ContextKeyExpr.and(EditorContextKeys.hasDefinitionProvider, PeekContext.notInPeekEditor, EditorContextKeys.isInEmbeddedEditor.toNegated()),\n                keybinding: {\n                    when: EditorContextKeys.editorTextFocus,\n                    primary: 512 /* KeyMod.Alt */ | 70 /* KeyCode.F12 */,\n                    linux: { primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 68 /* KeyCode.F10 */ },\n                    weight: 100 /* KeybindingWeight.EditorContrib */\n                },\n                menu: {\n                    id: MenuId.EditorContextPeek,\n                    group: 'peek',\n                    order: 2\n                }\n            });\n            CommandsRegistry.registerCommandAlias('editor.action.previewDeclaration', _c.id);\n        }\n    },\n    _c.id = 'editor.action.peekDefinition',\n    _c));\n//#endregion\n//#region --- DECLARATION\nclass DeclarationAction extends SymbolNavigationAction {\n    async _getLocationModel(languageFeaturesService, model, position, token) {\n        return new ReferencesModel(await getDeclarationsAtPosition(languageFeaturesService.declarationProvider, model, position, token), nls.localize('decl.title', 'Declarations'));\n    }\n    _getNoResultFoundMessage(info) {\n        return info && info.word\n            ? nls.localize('decl.noResultWord', \"No declaration found for '{0}'\", info.word)\n            : nls.localize('decl.generic.noResults', \"No declaration found\");\n    }\n    _getAlternativeCommand(editor) {\n        return editor.getOption(58 /* EditorOption.gotoLocation */).alternativeDeclarationCommand;\n    }\n    _getGoToPreference(editor) {\n        return editor.getOption(58 /* EditorOption.gotoLocation */).multipleDeclarations;\n    }\n}\nregisterAction2((_d = class GoToDeclarationAction extends DeclarationAction {\n        constructor() {\n            super({\n                openToSide: false,\n                openInPeek: false,\n                muteMessage: false\n            }, {\n                id: _d.id,\n                title: {\n                    ...nls.localize2('actions.goToDeclaration.label', \"Go to Declaration\"),\n                    mnemonicTitle: nls.localize({ key: 'miGotoDeclaration', comment: ['&& denotes a mnemonic'] }, \"Go to &&Declaration\"),\n                },\n                precondition: ContextKeyExpr.and(EditorContextKeys.hasDeclarationProvider, EditorContextKeys.isInEmbeddedEditor.toNegated()),\n                menu: [{\n                        id: MenuId.EditorContext,\n                        group: 'navigation',\n                        order: 1.3\n                    }, {\n                        id: MenuId.MenubarGoMenu,\n                        precondition: null,\n                        group: '4_symbol_nav',\n                        order: 3,\n                    }],\n            });\n        }\n        _getNoResultFoundMessage(info) {\n            return info && info.word\n                ? nls.localize('decl.noResultWord', \"No declaration found for '{0}'\", info.word)\n                : nls.localize('decl.generic.noResults', \"No declaration found\");\n        }\n    },\n    _d.id = 'editor.action.revealDeclaration',\n    _d));\nregisterAction2(class PeekDeclarationAction extends DeclarationAction {\n    constructor() {\n        super({\n            openToSide: false,\n            openInPeek: true,\n            muteMessage: false\n        }, {\n            id: 'editor.action.peekDeclaration',\n            title: nls.localize2('actions.peekDecl.label', \"Peek Declaration\"),\n            precondition: ContextKeyExpr.and(EditorContextKeys.hasDeclarationProvider, PeekContext.notInPeekEditor, EditorContextKeys.isInEmbeddedEditor.toNegated()),\n            menu: {\n                id: MenuId.EditorContextPeek,\n                group: 'peek',\n                order: 3\n            }\n        });\n    }\n});\n//#endregion\n//#region --- TYPE DEFINITION\nclass TypeDefinitionAction extends SymbolNavigationAction {\n    async _getLocationModel(languageFeaturesService, model, position, token) {\n        return new ReferencesModel(await getTypeDefinitionsAtPosition(languageFeaturesService.typeDefinitionProvider, model, position, token), nls.localize('typedef.title', 'Type Definitions'));\n    }\n    _getNoResultFoundMessage(info) {\n        return info && info.word\n            ? nls.localize('goToTypeDefinition.noResultWord', \"No type definition found for '{0}'\", info.word)\n            : nls.localize('goToTypeDefinition.generic.noResults', \"No type definition found\");\n    }\n    _getAlternativeCommand(editor) {\n        return editor.getOption(58 /* EditorOption.gotoLocation */).alternativeTypeDefinitionCommand;\n    }\n    _getGoToPreference(editor) {\n        return editor.getOption(58 /* EditorOption.gotoLocation */).multipleTypeDefinitions;\n    }\n}\nregisterAction2((_e = class GoToTypeDefinitionAction extends TypeDefinitionAction {\n        constructor() {\n            super({\n                openToSide: false,\n                openInPeek: false,\n                muteMessage: false\n            }, {\n                id: _e.ID,\n                title: {\n                    ...nls.localize2('actions.goToTypeDefinition.label', \"Go to Type Definition\"),\n                    mnemonicTitle: nls.localize({ key: 'miGotoTypeDefinition', comment: ['&& denotes a mnemonic'] }, \"Go to &&Type Definition\"),\n                },\n                precondition: EditorContextKeys.hasTypeDefinitionProvider,\n                keybinding: {\n                    when: EditorContextKeys.editorTextFocus,\n                    primary: 0,\n                    weight: 100 /* KeybindingWeight.EditorContrib */\n                },\n                menu: [{\n                        id: MenuId.EditorContext,\n                        group: 'navigation',\n                        order: 1.4\n                    }, {\n                        id: MenuId.MenubarGoMenu,\n                        precondition: null,\n                        group: '4_symbol_nav',\n                        order: 3,\n                    }]\n            });\n        }\n    },\n    _e.ID = 'editor.action.goToTypeDefinition',\n    _e));\nregisterAction2((_f = class PeekTypeDefinitionAction extends TypeDefinitionAction {\n        constructor() {\n            super({\n                openToSide: false,\n                openInPeek: true,\n                muteMessage: false\n            }, {\n                id: _f.ID,\n                title: nls.localize2('actions.peekTypeDefinition.label', \"Peek Type Definition\"),\n                precondition: ContextKeyExpr.and(EditorContextKeys.hasTypeDefinitionProvider, PeekContext.notInPeekEditor, EditorContextKeys.isInEmbeddedEditor.toNegated()),\n                menu: {\n                    id: MenuId.EditorContextPeek,\n                    group: 'peek',\n                    order: 4\n                }\n            });\n        }\n    },\n    _f.ID = 'editor.action.peekTypeDefinition',\n    _f));\n//#endregion\n//#region --- IMPLEMENTATION\nclass ImplementationAction extends SymbolNavigationAction {\n    async _getLocationModel(languageFeaturesService, model, position, token) {\n        return new ReferencesModel(await getImplementationsAtPosition(languageFeaturesService.implementationProvider, model, position, token), nls.localize('impl.title', 'Implementations'));\n    }\n    _getNoResultFoundMessage(info) {\n        return info && info.word\n            ? nls.localize('goToImplementation.noResultWord', \"No implementation found for '{0}'\", info.word)\n            : nls.localize('goToImplementation.generic.noResults', \"No implementation found\");\n    }\n    _getAlternativeCommand(editor) {\n        return editor.getOption(58 /* EditorOption.gotoLocation */).alternativeImplementationCommand;\n    }\n    _getGoToPreference(editor) {\n        return editor.getOption(58 /* EditorOption.gotoLocation */).multipleImplementations;\n    }\n}\nregisterAction2((_g = class GoToImplementationAction extends ImplementationAction {\n        constructor() {\n            super({\n                openToSide: false,\n                openInPeek: false,\n                muteMessage: false\n            }, {\n                id: _g.ID,\n                title: {\n                    ...nls.localize2('actions.goToImplementation.label', \"Go to Implementations\"),\n                    mnemonicTitle: nls.localize({ key: 'miGotoImplementation', comment: ['&& denotes a mnemonic'] }, \"Go to &&Implementations\"),\n                },\n                precondition: EditorContextKeys.hasImplementationProvider,\n                keybinding: {\n                    when: EditorContextKeys.editorTextFocus,\n                    primary: 2048 /* KeyMod.CtrlCmd */ | 70 /* KeyCode.F12 */,\n                    weight: 100 /* KeybindingWeight.EditorContrib */\n                },\n                menu: [{\n                        id: MenuId.EditorContext,\n                        group: 'navigation',\n                        order: 1.45\n                    }, {\n                        id: MenuId.MenubarGoMenu,\n                        precondition: null,\n                        group: '4_symbol_nav',\n                        order: 4,\n                    }]\n            });\n        }\n    },\n    _g.ID = 'editor.action.goToImplementation',\n    _g));\nregisterAction2((_h = class PeekImplementationAction extends ImplementationAction {\n        constructor() {\n            super({\n                openToSide: false,\n                openInPeek: true,\n                muteMessage: false\n            }, {\n                id: _h.ID,\n                title: nls.localize2('actions.peekImplementation.label', \"Peek Implementations\"),\n                precondition: ContextKeyExpr.and(EditorContextKeys.hasImplementationProvider, PeekContext.notInPeekEditor, EditorContextKeys.isInEmbeddedEditor.toNegated()),\n                keybinding: {\n                    when: EditorContextKeys.editorTextFocus,\n                    primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 70 /* KeyCode.F12 */,\n                    weight: 100 /* KeybindingWeight.EditorContrib */\n                },\n                menu: {\n                    id: MenuId.EditorContextPeek,\n                    group: 'peek',\n                    order: 5\n                }\n            });\n        }\n    },\n    _h.ID = 'editor.action.peekImplementation',\n    _h));\n//#endregion\n//#region --- REFERENCES\nclass ReferencesAction extends SymbolNavigationAction {\n    _getNoResultFoundMessage(info) {\n        return info\n            ? nls.localize('references.no', \"No references found for '{0}'\", info.word)\n            : nls.localize('references.noGeneric', \"No references found\");\n    }\n    _getAlternativeCommand(editor) {\n        return editor.getOption(58 /* EditorOption.gotoLocation */).alternativeReferenceCommand;\n    }\n    _getGoToPreference(editor) {\n        return editor.getOption(58 /* EditorOption.gotoLocation */).multipleReferences;\n    }\n}\nregisterAction2(class GoToReferencesAction extends ReferencesAction {\n    constructor() {\n        super({\n            openToSide: false,\n            openInPeek: false,\n            muteMessage: false\n        }, {\n            id: 'editor.action.goToReferences',\n            title: {\n                ...nls.localize2('goToReferences.label', \"Go to References\"),\n                mnemonicTitle: nls.localize({ key: 'miGotoReference', comment: ['&& denotes a mnemonic'] }, \"Go to &&References\"),\n            },\n            precondition: ContextKeyExpr.and(EditorContextKeys.hasReferenceProvider, PeekContext.notInPeekEditor, EditorContextKeys.isInEmbeddedEditor.toNegated()),\n            keybinding: {\n                when: EditorContextKeys.editorTextFocus,\n                primary: 1024 /* KeyMod.Shift */ | 70 /* KeyCode.F12 */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            menu: [{\n                    id: MenuId.EditorContext,\n                    group: 'navigation',\n                    order: 1.45\n                }, {\n                    id: MenuId.MenubarGoMenu,\n                    precondition: null,\n                    group: '4_symbol_nav',\n                    order: 5,\n                }]\n        });\n    }\n    async _getLocationModel(languageFeaturesService, model, position, token) {\n        return new ReferencesModel(await getReferencesAtPosition(languageFeaturesService.referenceProvider, model, position, true, token), nls.localize('ref.title', 'References'));\n    }\n});\nregisterAction2(class PeekReferencesAction extends ReferencesAction {\n    constructor() {\n        super({\n            openToSide: false,\n            openInPeek: true,\n            muteMessage: false\n        }, {\n            id: 'editor.action.referenceSearch.trigger',\n            title: nls.localize2('references.action.label', \"Peek References\"),\n            precondition: ContextKeyExpr.and(EditorContextKeys.hasReferenceProvider, PeekContext.notInPeekEditor, EditorContextKeys.isInEmbeddedEditor.toNegated()),\n            menu: {\n                id: MenuId.EditorContextPeek,\n                group: 'peek',\n                order: 6\n            }\n        });\n    }\n    async _getLocationModel(languageFeaturesService, model, position, token) {\n        return new ReferencesModel(await getReferencesAtPosition(languageFeaturesService.referenceProvider, model, position, false, token), nls.localize('ref.title', 'References'));\n    }\n});\n//#endregion\n//#region --- GENERIC goto symbols command\nclass GenericGoToLocationAction extends SymbolNavigationAction {\n    constructor(config, _references, _gotoMultipleBehaviour) {\n        super(config, {\n            id: 'editor.action.goToLocation',\n            title: nls.localize2('label.generic', \"Go to Any Symbol\"),\n            precondition: ContextKeyExpr.and(PeekContext.notInPeekEditor, EditorContextKeys.isInEmbeddedEditor.toNegated()),\n        });\n        this._references = _references;\n        this._gotoMultipleBehaviour = _gotoMultipleBehaviour;\n    }\n    async _getLocationModel(languageFeaturesService, _model, _position, _token) {\n        return new ReferencesModel(this._references, nls.localize('generic.title', 'Locations'));\n    }\n    _getNoResultFoundMessage(info) {\n        return info && nls.localize('generic.noResult', \"No results for '{0}'\", info.word) || '';\n    }\n    _getGoToPreference(editor) {\n        var _j;\n        return (_j = this._gotoMultipleBehaviour) !== null && _j !== void 0 ? _j : editor.getOption(58 /* EditorOption.gotoLocation */).multipleReferences;\n    }\n    _getAlternativeCommand() { return ''; }\n}\nCommandsRegistry.registerCommand({\n    id: 'editor.action.goToLocations',\n    metadata: {\n        description: 'Go to locations from a position in a file',\n        args: [\n            { name: 'uri', description: 'The text document in which to start', constraint: URI },\n            { name: 'position', description: 'The position at which to start', constraint: corePosition.Position.isIPosition },\n            { name: 'locations', description: 'An array of locations.', constraint: Array },\n            { name: 'multiple', description: 'Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`' },\n            { name: 'noResultsMessage', description: 'Human readable message that shows when locations is empty.' },\n        ]\n    },\n    handler: async (accessor, resource, position, references, multiple, noResultsMessage, openInPeek) => {\n        assertType(URI.isUri(resource));\n        assertType(corePosition.Position.isIPosition(position));\n        assertType(Array.isArray(references));\n        assertType(typeof multiple === 'undefined' || typeof multiple === 'string');\n        assertType(typeof openInPeek === 'undefined' || typeof openInPeek === 'boolean');\n        const editorService = accessor.get(ICodeEditorService);\n        const editor = await editorService.openCodeEditor({ resource }, editorService.getFocusedCodeEditor());\n        if (isCodeEditor(editor)) {\n            editor.setPosition(position);\n            editor.revealPositionInCenterIfOutsideViewport(position, 0 /* ScrollType.Smooth */);\n            return editor.invokeWithinContext(accessor => {\n                const command = new class extends GenericGoToLocationAction {\n                    _getNoResultFoundMessage(info) {\n                        return noResultsMessage || super._getNoResultFoundMessage(info);\n                    }\n                }({\n                    muteMessage: !Boolean(noResultsMessage),\n                    openInPeek: Boolean(openInPeek),\n                    openToSide: false\n                }, references, multiple);\n                accessor.get(IInstantiationService).invokeFunction(command.run.bind(command), editor);\n            });\n        }\n    }\n});\nCommandsRegistry.registerCommand({\n    id: 'editor.action.peekLocations',\n    metadata: {\n        description: 'Peek locations from a position in a file',\n        args: [\n            { name: 'uri', description: 'The text document in which to start', constraint: URI },\n            { name: 'position', description: 'The position at which to start', constraint: corePosition.Position.isIPosition },\n            { name: 'locations', description: 'An array of locations.', constraint: Array },\n            { name: 'multiple', description: 'Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`' },\n        ]\n    },\n    handler: async (accessor, resource, position, references, multiple) => {\n        accessor.get(ICommandService).executeCommand('editor.action.goToLocations', resource, position, references, multiple, undefined, true);\n    }\n});\n//#endregion\n//#region --- REFERENCE search special commands\nCommandsRegistry.registerCommand({\n    id: 'editor.action.findReferences',\n    handler: (accessor, resource, position) => {\n        assertType(URI.isUri(resource));\n        assertType(corePosition.Position.isIPosition(position));\n        const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n        const codeEditorService = accessor.get(ICodeEditorService);\n        return codeEditorService.openCodeEditor({ resource }, codeEditorService.getFocusedCodeEditor()).then(control => {\n            if (!isCodeEditor(control) || !control.hasModel()) {\n                return undefined;\n            }\n            const controller = ReferencesController.get(control);\n            if (!controller) {\n                return undefined;\n            }\n            const references = createCancelablePromise(token => getReferencesAtPosition(languageFeaturesService.referenceProvider, control.getModel(), corePosition.Position.lift(position), false, token).then(references => new ReferencesModel(references, nls.localize('ref.title', 'References'))));\n            const range = new Range(position.lineNumber, position.column, position.lineNumber, position.column);\n            return Promise.resolve(controller.toggleWidget(range, references, false));\n        });\n    }\n});\n// use NEW command\nCommandsRegistry.registerCommandAlias('editor.action.showReferences', 'editor.action.peekLocations');\n//#endregion\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/gotoSymbol/browser/goToSymbol.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { coalesce } from '../../../../base/common/arrays.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { matchesSomeScheme, Schemas } from '../../../../base/common/network.js';\nimport { registerModelAndPositionCommand } from '../../../browser/editorExtensions.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { ReferencesModel } from './referencesModel.js';\nfunction shouldIncludeLocationLink(sourceModel, loc) {\n    // Always allow the location if the request comes from a document with the same scheme.\n    if (loc.uri.scheme === sourceModel.uri.scheme) {\n        return true;\n    }\n    // Otherwise filter out locations from internal schemes\n    if (matchesSomeScheme(loc.uri, Schemas.walkThroughSnippet, Schemas.vscodeChatCodeBlock, Schemas.vscodeChatCodeCompareBlock, Schemas.vscodeCopilotBackingChatCodeBlock)) {\n        return false;\n    }\n    return true;\n}\nasync function getLocationLinks(model, position, registry, provide) {\n    const provider = registry.ordered(model);\n    // get results\n    const promises = provider.map((provider) => {\n        return Promise.resolve(provide(provider, model, position)).then(undefined, err => {\n            onUnexpectedExternalError(err);\n            return undefined;\n        });\n    });\n    const values = await Promise.all(promises);\n    return coalesce(values.flat()).filter(loc => shouldIncludeLocationLink(model, loc));\n}\nexport function getDefinitionsAtPosition(registry, model, position, token) {\n    return getLocationLinks(model, position, registry, (provider, model, position) => {\n        return provider.provideDefinition(model, position, token);\n    });\n}\nexport function getDeclarationsAtPosition(registry, model, position, token) {\n    return getLocationLinks(model, position, registry, (provider, model, position) => {\n        return provider.provideDeclaration(model, position, token);\n    });\n}\nexport function getImplementationsAtPosition(registry, model, position, token) {\n    return getLocationLinks(model, position, registry, (provider, model, position) => {\n        return provider.provideImplementation(model, position, token);\n    });\n}\nexport function getTypeDefinitionsAtPosition(registry, model, position, token) {\n    return getLocationLinks(model, position, registry, (provider, model, position) => {\n        return provider.provideTypeDefinition(model, position, token);\n    });\n}\nexport function getReferencesAtPosition(registry, model, position, compact, token) {\n    return getLocationLinks(model, position, registry, async (provider, model, position) => {\n        var _a, _b;\n        const result = (_a = (await provider.provideReferences(model, position, { includeDeclaration: true }, token))) === null || _a === void 0 ? void 0 : _a.filter(ref => shouldIncludeLocationLink(model, ref));\n        if (!compact || !result || result.length !== 2) {\n            return result;\n        }\n        const resultWithoutDeclaration = (_b = (await provider.provideReferences(model, position, { includeDeclaration: false }, token))) === null || _b === void 0 ? void 0 : _b.filter(ref => shouldIncludeLocationLink(model, ref));\n        if (resultWithoutDeclaration && resultWithoutDeclaration.length === 1) {\n            return resultWithoutDeclaration;\n        }\n        return result;\n    });\n}\n// -- API commands ----\nasync function _sortedAndDeduped(callback) {\n    const rawLinks = await callback();\n    const model = new ReferencesModel(rawLinks, '');\n    const modelLinks = model.references.map(ref => ref.link);\n    model.dispose();\n    return modelLinks;\n}\nregisterModelAndPositionCommand('_executeDefinitionProvider', (accessor, model, position) => {\n    const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n    const promise = getDefinitionsAtPosition(languageFeaturesService.definitionProvider, model, position, CancellationToken.None);\n    return _sortedAndDeduped(() => promise);\n});\nregisterModelAndPositionCommand('_executeTypeDefinitionProvider', (accessor, model, position) => {\n    const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n    const promise = getTypeDefinitionsAtPosition(languageFeaturesService.typeDefinitionProvider, model, position, CancellationToken.None);\n    return _sortedAndDeduped(() => promise);\n});\nregisterModelAndPositionCommand('_executeDeclarationProvider', (accessor, model, position) => {\n    const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n    const promise = getDeclarationsAtPosition(languageFeaturesService.declarationProvider, model, position, CancellationToken.None);\n    return _sortedAndDeduped(() => promise);\n});\nregisterModelAndPositionCommand('_executeReferenceProvider', (accessor, model, position) => {\n    const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n    const promise = getReferencesAtPosition(languageFeaturesService.referenceProvider, model, position, false, CancellationToken.None);\n    return _sortedAndDeduped(() => promise);\n});\nregisterModelAndPositionCommand('_executeImplementationProvider', (accessor, model, position) => {\n    const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n    const promise = getImplementationsAtPosition(languageFeaturesService.implementationProvider, model, position, CancellationToken.None);\n    return _sortedAndDeduped(() => promise);\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/gotoSymbol/browser/link/clickLinkGesture.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../../../../base/common/event.js';\nimport { Disposable } from '../../../../../base/common/lifecycle.js';\nimport * as platform from '../../../../../base/common/platform.js';\nfunction hasModifier(e, modifier) {\n    return !!e[modifier];\n}\n/**\n * An event that encapsulates the various trigger modifiers logic needed for go to definition.\n */\nexport class ClickLinkMouseEvent {\n    constructor(source, opts) {\n        this.target = source.target;\n        this.isLeftClick = source.event.leftButton;\n        this.isMiddleClick = source.event.middleButton;\n        this.isRightClick = source.event.rightButton;\n        this.hasTriggerModifier = hasModifier(source.event, opts.triggerModifier);\n        this.hasSideBySideModifier = hasModifier(source.event, opts.triggerSideBySideModifier);\n        this.isNoneOrSingleMouseDown = (source.event.detail <= 1);\n    }\n}\n/**\n * An event that encapsulates the various trigger modifiers logic needed for go to definition.\n */\nexport class ClickLinkKeyboardEvent {\n    constructor(source, opts) {\n        this.keyCodeIsTriggerKey = (source.keyCode === opts.triggerKey);\n        this.keyCodeIsSideBySideKey = (source.keyCode === opts.triggerSideBySideKey);\n        this.hasTriggerModifier = hasModifier(source, opts.triggerModifier);\n    }\n}\nexport class ClickLinkOptions {\n    constructor(triggerKey, triggerModifier, triggerSideBySideKey, triggerSideBySideModifier) {\n        this.triggerKey = triggerKey;\n        this.triggerModifier = triggerModifier;\n        this.triggerSideBySideKey = triggerSideBySideKey;\n        this.triggerSideBySideModifier = triggerSideBySideModifier;\n    }\n    equals(other) {\n        return (this.triggerKey === other.triggerKey\n            && this.triggerModifier === other.triggerModifier\n            && this.triggerSideBySideKey === other.triggerSideBySideKey\n            && this.triggerSideBySideModifier === other.triggerSideBySideModifier);\n    }\n}\nfunction createOptions(multiCursorModifier) {\n    if (multiCursorModifier === 'altKey') {\n        if (platform.isMacintosh) {\n            return new ClickLinkOptions(57 /* KeyCode.Meta */, 'metaKey', 6 /* KeyCode.Alt */, 'altKey');\n        }\n        return new ClickLinkOptions(5 /* KeyCode.Ctrl */, 'ctrlKey', 6 /* KeyCode.Alt */, 'altKey');\n    }\n    if (platform.isMacintosh) {\n        return new ClickLinkOptions(6 /* KeyCode.Alt */, 'altKey', 57 /* KeyCode.Meta */, 'metaKey');\n    }\n    return new ClickLinkOptions(6 /* KeyCode.Alt */, 'altKey', 5 /* KeyCode.Ctrl */, 'ctrlKey');\n}\nexport class ClickLinkGesture extends Disposable {\n    constructor(editor, opts) {\n        var _a;\n        super();\n        this._onMouseMoveOrRelevantKeyDown = this._register(new Emitter());\n        this.onMouseMoveOrRelevantKeyDown = this._onMouseMoveOrRelevantKeyDown.event;\n        this._onExecute = this._register(new Emitter());\n        this.onExecute = this._onExecute.event;\n        this._onCancel = this._register(new Emitter());\n        this.onCancel = this._onCancel.event;\n        this._editor = editor;\n        this._extractLineNumberFromMouseEvent = (_a = opts === null || opts === void 0 ? void 0 : opts.extractLineNumberFromMouseEvent) !== null && _a !== void 0 ? _a : ((e) => e.target.position ? e.target.position.lineNumber : 0);\n        this._opts = createOptions(this._editor.getOption(78 /* EditorOption.multiCursorModifier */));\n        this._lastMouseMoveEvent = null;\n        this._hasTriggerKeyOnMouseDown = false;\n        this._lineNumberOnMouseDown = 0;\n        this._register(this._editor.onDidChangeConfiguration((e) => {\n            if (e.hasChanged(78 /* EditorOption.multiCursorModifier */)) {\n                const newOpts = createOptions(this._editor.getOption(78 /* EditorOption.multiCursorModifier */));\n                if (this._opts.equals(newOpts)) {\n                    return;\n                }\n                this._opts = newOpts;\n                this._lastMouseMoveEvent = null;\n                this._hasTriggerKeyOnMouseDown = false;\n                this._lineNumberOnMouseDown = 0;\n                this._onCancel.fire();\n            }\n        }));\n        this._register(this._editor.onMouseMove((e) => this._onEditorMouseMove(new ClickLinkMouseEvent(e, this._opts))));\n        this._register(this._editor.onMouseDown((e) => this._onEditorMouseDown(new ClickLinkMouseEvent(e, this._opts))));\n        this._register(this._editor.onMouseUp((e) => this._onEditorMouseUp(new ClickLinkMouseEvent(e, this._opts))));\n        this._register(this._editor.onKeyDown((e) => this._onEditorKeyDown(new ClickLinkKeyboardEvent(e, this._opts))));\n        this._register(this._editor.onKeyUp((e) => this._onEditorKeyUp(new ClickLinkKeyboardEvent(e, this._opts))));\n        this._register(this._editor.onMouseDrag(() => this._resetHandler()));\n        this._register(this._editor.onDidChangeCursorSelection((e) => this._onDidChangeCursorSelection(e)));\n        this._register(this._editor.onDidChangeModel((e) => this._resetHandler()));\n        this._register(this._editor.onDidChangeModelContent(() => this._resetHandler()));\n        this._register(this._editor.onDidScrollChange((e) => {\n            if (e.scrollTopChanged || e.scrollLeftChanged) {\n                this._resetHandler();\n            }\n        }));\n    }\n    _onDidChangeCursorSelection(e) {\n        if (e.selection && e.selection.startColumn !== e.selection.endColumn) {\n            this._resetHandler(); // immediately stop this feature if the user starts to select (https://github.com/microsoft/vscode/issues/7827)\n        }\n    }\n    _onEditorMouseMove(mouseEvent) {\n        this._lastMouseMoveEvent = mouseEvent;\n        this._onMouseMoveOrRelevantKeyDown.fire([mouseEvent, null]);\n    }\n    _onEditorMouseDown(mouseEvent) {\n        // We need to record if we had the trigger key on mouse down because someone might select something in the editor\n        // holding the mouse down and then while mouse is down start to press Ctrl/Cmd to start a copy operation and then\n        // release the mouse button without wanting to do the navigation.\n        // With this flag we prevent goto definition if the mouse was down before the trigger key was pressed.\n        this._hasTriggerKeyOnMouseDown = mouseEvent.hasTriggerModifier;\n        this._lineNumberOnMouseDown = this._extractLineNumberFromMouseEvent(mouseEvent);\n    }\n    _onEditorMouseUp(mouseEvent) {\n        const currentLineNumber = this._extractLineNumberFromMouseEvent(mouseEvent);\n        if (this._hasTriggerKeyOnMouseDown && this._lineNumberOnMouseDown && this._lineNumberOnMouseDown === currentLineNumber) {\n            this._onExecute.fire(mouseEvent);\n        }\n    }\n    _onEditorKeyDown(e) {\n        if (this._lastMouseMoveEvent\n            && (e.keyCodeIsTriggerKey // User just pressed Ctrl/Cmd (normal goto definition)\n                || (e.keyCodeIsSideBySideKey && e.hasTriggerModifier) // User pressed Ctrl/Cmd+Alt (goto definition to the side)\n            )) {\n            this._onMouseMoveOrRelevantKeyDown.fire([this._lastMouseMoveEvent, e]);\n        }\n        else if (e.hasTriggerModifier) {\n            this._onCancel.fire(); // remove decorations if user holds another key with ctrl/cmd to prevent accident goto declaration\n        }\n    }\n    _onEditorKeyUp(e) {\n        if (e.keyCodeIsTriggerKey) {\n            this._onCancel.fire();\n        }\n    }\n    _resetHandler() {\n        this._lastMouseMoveEvent = null;\n        this._hasTriggerKeyOnMouseDown = false;\n        this._onCancel.fire();\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .goto-definition-link {\n\ttext-decoration: underline;\n\tcursor: pointer;\n\tcolor: var(--vscode-editorLink-activeForeground) !important;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar GotoDefinitionAtPositionEditorContribution_1;\nimport { createCancelablePromise } from '../../../../../base/common/async.js';\nimport { onUnexpectedError } from '../../../../../base/common/errors.js';\nimport { MarkdownString } from '../../../../../base/common/htmlContent.js';\nimport { DisposableStore } from '../../../../../base/common/lifecycle.js';\nimport './goToDefinitionAtPosition.css';\nimport { EditorState } from '../../../editorState/browser/editorState.js';\nimport { registerEditorContribution } from '../../../../browser/editorExtensions.js';\nimport { Range } from '../../../../common/core/range.js';\nimport { ILanguageService } from '../../../../common/languages/language.js';\nimport { ITextModelService } from '../../../../common/services/resolverService.js';\nimport { ClickLinkGesture } from './clickLinkGesture.js';\nimport { PeekContext } from '../../../peekView/browser/peekView.js';\nimport * as nls from '../../../../../nls.js';\nimport { IContextKeyService } from '../../../../../platform/contextkey/common/contextkey.js';\nimport { DefinitionAction } from '../goToCommands.js';\nimport { getDefinitionsAtPosition } from '../goToSymbol.js';\nimport { ILanguageFeaturesService } from '../../../../common/services/languageFeatures.js';\nimport { ModelDecorationInjectedTextOptions } from '../../../../common/model/textModel.js';\nlet GotoDefinitionAtPositionEditorContribution = GotoDefinitionAtPositionEditorContribution_1 = class GotoDefinitionAtPositionEditorContribution {\n    constructor(editor, textModelResolverService, languageService, languageFeaturesService) {\n        this.textModelResolverService = textModelResolverService;\n        this.languageService = languageService;\n        this.languageFeaturesService = languageFeaturesService;\n        this.toUnhook = new DisposableStore();\n        this.toUnhookForKeyboard = new DisposableStore();\n        this.currentWordAtPosition = null;\n        this.previousPromise = null;\n        this.editor = editor;\n        this.linkDecorations = this.editor.createDecorationsCollection();\n        const linkGesture = new ClickLinkGesture(editor);\n        this.toUnhook.add(linkGesture);\n        this.toUnhook.add(linkGesture.onMouseMoveOrRelevantKeyDown(([mouseEvent, keyboardEvent]) => {\n            this.startFindDefinitionFromMouse(mouseEvent, keyboardEvent !== null && keyboardEvent !== void 0 ? keyboardEvent : undefined);\n        }));\n        this.toUnhook.add(linkGesture.onExecute((mouseEvent) => {\n            if (this.isEnabled(mouseEvent)) {\n                this.gotoDefinition(mouseEvent.target.position, mouseEvent.hasSideBySideModifier)\n                    .catch((error) => {\n                    onUnexpectedError(error);\n                })\n                    .finally(() => {\n                    this.removeLinkDecorations();\n                });\n            }\n        }));\n        this.toUnhook.add(linkGesture.onCancel(() => {\n            this.removeLinkDecorations();\n            this.currentWordAtPosition = null;\n        }));\n    }\n    static get(editor) {\n        return editor.getContribution(GotoDefinitionAtPositionEditorContribution_1.ID);\n    }\n    async startFindDefinitionFromCursor(position) {\n        // For issue: https://github.com/microsoft/vscode/issues/46257\n        // equivalent to mouse move with meta/ctrl key\n        // First find the definition and add decorations\n        // to the editor to be shown with the content hover widget\n        await this.startFindDefinition(position);\n        // Add listeners for editor cursor move and key down events\n        // Dismiss the \"extended\" editor decorations when the user hides\n        // the hover widget. There is no event for the widget itself so these\n        // serve as a best effort. After removing the link decorations, the hover\n        // widget is clean and will only show declarations per next request.\n        this.toUnhookForKeyboard.add(this.editor.onDidChangeCursorPosition(() => {\n            this.currentWordAtPosition = null;\n            this.removeLinkDecorations();\n            this.toUnhookForKeyboard.clear();\n        }));\n        this.toUnhookForKeyboard.add(this.editor.onKeyDown((e) => {\n            if (e) {\n                this.currentWordAtPosition = null;\n                this.removeLinkDecorations();\n                this.toUnhookForKeyboard.clear();\n            }\n        }));\n    }\n    startFindDefinitionFromMouse(mouseEvent, withKey) {\n        // check if we are active and on a content widget\n        if (mouseEvent.target.type === 9 /* MouseTargetType.CONTENT_WIDGET */ && this.linkDecorations.length > 0) {\n            return;\n        }\n        if (!this.editor.hasModel() || !this.isEnabled(mouseEvent, withKey)) {\n            this.currentWordAtPosition = null;\n            this.removeLinkDecorations();\n            return;\n        }\n        const position = mouseEvent.target.position;\n        this.startFindDefinition(position);\n    }\n    async startFindDefinition(position) {\n        var _a;\n        // Dispose listeners for updating decorations when using keyboard to show definition hover\n        this.toUnhookForKeyboard.clear();\n        // Find word at mouse position\n        const word = position ? (_a = this.editor.getModel()) === null || _a === void 0 ? void 0 : _a.getWordAtPosition(position) : null;\n        if (!word) {\n            this.currentWordAtPosition = null;\n            this.removeLinkDecorations();\n            return;\n        }\n        // Return early if word at position is still the same\n        if (this.currentWordAtPosition && this.currentWordAtPosition.startColumn === word.startColumn && this.currentWordAtPosition.endColumn === word.endColumn && this.currentWordAtPosition.word === word.word) {\n            return;\n        }\n        this.currentWordAtPosition = word;\n        // Find definition and decorate word if found\n        const state = new EditorState(this.editor, 4 /* CodeEditorStateFlag.Position */ | 1 /* CodeEditorStateFlag.Value */ | 2 /* CodeEditorStateFlag.Selection */ | 8 /* CodeEditorStateFlag.Scroll */);\n        if (this.previousPromise) {\n            this.previousPromise.cancel();\n            this.previousPromise = null;\n        }\n        this.previousPromise = createCancelablePromise(token => this.findDefinition(position, token));\n        let results;\n        try {\n            results = await this.previousPromise;\n        }\n        catch (error) {\n            onUnexpectedError(error);\n            return;\n        }\n        if (!results || !results.length || !state.validate(this.editor)) {\n            this.removeLinkDecorations();\n            return;\n        }\n        const linkRange = results[0].originSelectionRange\n            ? Range.lift(results[0].originSelectionRange)\n            : new Range(position.lineNumber, word.startColumn, position.lineNumber, word.endColumn);\n        // Multiple results\n        if (results.length > 1) {\n            let combinedRange = linkRange;\n            for (const { originSelectionRange } of results) {\n                if (originSelectionRange) {\n                    combinedRange = Range.plusRange(combinedRange, originSelectionRange);\n                }\n            }\n            this.addDecoration(combinedRange, new MarkdownString().appendText(nls.localize('multipleResults', \"Click to show {0} definitions.\", results.length)));\n        }\n        else {\n            // Single result\n            const result = results[0];\n            if (!result.uri) {\n                return;\n            }\n            this.textModelResolverService.createModelReference(result.uri).then(ref => {\n                if (!ref.object || !ref.object.textEditorModel) {\n                    ref.dispose();\n                    return;\n                }\n                const { object: { textEditorModel } } = ref;\n                const { startLineNumber } = result.range;\n                if (startLineNumber < 1 || startLineNumber > textEditorModel.getLineCount()) {\n                    // invalid range\n                    ref.dispose();\n                    return;\n                }\n                const previewValue = this.getPreviewValue(textEditorModel, startLineNumber, result);\n                const languageId = this.languageService.guessLanguageIdByFilepathOrFirstLine(textEditorModel.uri);\n                this.addDecoration(linkRange, previewValue ? new MarkdownString().appendCodeblock(languageId ? languageId : '', previewValue) : undefined);\n                ref.dispose();\n            });\n        }\n    }\n    getPreviewValue(textEditorModel, startLineNumber, result) {\n        let rangeToUse = result.range;\n        const numberOfLinesInRange = rangeToUse.endLineNumber - rangeToUse.startLineNumber;\n        if (numberOfLinesInRange >= GotoDefinitionAtPositionEditorContribution_1.MAX_SOURCE_PREVIEW_LINES) {\n            rangeToUse = this.getPreviewRangeBasedOnIndentation(textEditorModel, startLineNumber);\n        }\n        const previewValue = this.stripIndentationFromPreviewRange(textEditorModel, startLineNumber, rangeToUse);\n        return previewValue;\n    }\n    stripIndentationFromPreviewRange(textEditorModel, startLineNumber, previewRange) {\n        const startIndent = textEditorModel.getLineFirstNonWhitespaceColumn(startLineNumber);\n        let minIndent = startIndent;\n        for (let endLineNumber = startLineNumber + 1; endLineNumber < previewRange.endLineNumber; endLineNumber++) {\n            const endIndent = textEditorModel.getLineFirstNonWhitespaceColumn(endLineNumber);\n            minIndent = Math.min(minIndent, endIndent);\n        }\n        const previewValue = textEditorModel.getValueInRange(previewRange).replace(new RegExp(`^\\\\s{${minIndent - 1}}`, 'gm'), '').trim();\n        return previewValue;\n    }\n    getPreviewRangeBasedOnIndentation(textEditorModel, startLineNumber) {\n        const startIndent = textEditorModel.getLineFirstNonWhitespaceColumn(startLineNumber);\n        const maxLineNumber = Math.min(textEditorModel.getLineCount(), startLineNumber + GotoDefinitionAtPositionEditorContribution_1.MAX_SOURCE_PREVIEW_LINES);\n        let endLineNumber = startLineNumber + 1;\n        for (; endLineNumber < maxLineNumber; endLineNumber++) {\n            const endIndent = textEditorModel.getLineFirstNonWhitespaceColumn(endLineNumber);\n            if (startIndent === endIndent) {\n                break;\n            }\n        }\n        return new Range(startLineNumber, 1, endLineNumber + 1, 1);\n    }\n    addDecoration(range, hoverMessage) {\n        const newDecorations = {\n            range: range,\n            options: {\n                description: 'goto-definition-link',\n                inlineClassName: 'goto-definition-link',\n                hoverMessage\n            }\n        };\n        this.linkDecorations.set([newDecorations]);\n    }\n    removeLinkDecorations() {\n        this.linkDecorations.clear();\n    }\n    isEnabled(mouseEvent, withKey) {\n        var _a;\n        return this.editor.hasModel()\n            && mouseEvent.isLeftClick\n            && mouseEvent.isNoneOrSingleMouseDown\n            && mouseEvent.target.type === 6 /* MouseTargetType.CONTENT_TEXT */\n            && !(((_a = mouseEvent.target.detail.injectedText) === null || _a === void 0 ? void 0 : _a.options) instanceof ModelDecorationInjectedTextOptions)\n            && (mouseEvent.hasTriggerModifier || (withKey ? withKey.keyCodeIsTriggerKey : false))\n            && this.languageFeaturesService.definitionProvider.has(this.editor.getModel());\n    }\n    findDefinition(position, token) {\n        const model = this.editor.getModel();\n        if (!model) {\n            return Promise.resolve(null);\n        }\n        return getDefinitionsAtPosition(this.languageFeaturesService.definitionProvider, model, position, token);\n    }\n    gotoDefinition(position, openToSide) {\n        this.editor.setPosition(position);\n        return this.editor.invokeWithinContext((accessor) => {\n            const canPeek = !openToSide && this.editor.getOption(88 /* EditorOption.definitionLinkOpensInPeek */) && !this.isInPeekEditor(accessor);\n            const action = new DefinitionAction({ openToSide, openInPeek: canPeek, muteMessage: true }, { title: { value: '', original: '' }, id: '', precondition: undefined });\n            return action.run(accessor);\n        });\n    }\n    isInPeekEditor(accessor) {\n        const contextKeyService = accessor.get(IContextKeyService);\n        return PeekContext.inPeekEditor.getValue(contextKeyService);\n    }\n    dispose() {\n        this.toUnhook.dispose();\n        this.toUnhookForKeyboard.dispose();\n    }\n};\nGotoDefinitionAtPositionEditorContribution.ID = 'editor.contrib.gotodefinitionatposition';\nGotoDefinitionAtPositionEditorContribution.MAX_SOURCE_PREVIEW_LINES = 8;\nGotoDefinitionAtPositionEditorContribution = GotoDefinitionAtPositionEditorContribution_1 = __decorate([\n    __param(1, ITextModelService),\n    __param(2, ILanguageService),\n    __param(3, ILanguageFeaturesService)\n], GotoDefinitionAtPositionEditorContribution);\nexport { GotoDefinitionAtPositionEditorContribution };\nregisterEditorContribution(GotoDefinitionAtPositionEditorContribution.ID, GotoDefinitionAtPositionEditorContribution, 2 /* EditorContributionInstantiation.BeforeFirstInteraction */);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/gotoSymbol/browser/peek/referencesController.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar ReferencesController_1;\nimport { createCancelablePromise } from '../../../../../base/common/async.js';\nimport { onUnexpectedError } from '../../../../../base/common/errors.js';\nimport { KeyChord } from '../../../../../base/common/keyCodes.js';\nimport { DisposableStore } from '../../../../../base/common/lifecycle.js';\nimport { ICodeEditorService } from '../../../../browser/services/codeEditorService.js';\nimport { Position } from '../../../../common/core/position.js';\nimport { Range } from '../../../../common/core/range.js';\nimport { getOuterEditor, PeekContext } from '../../../peekView/browser/peekView.js';\nimport * as nls from '../../../../../nls.js';\nimport { CommandsRegistry } from '../../../../../platform/commands/common/commands.js';\nimport { IConfigurationService } from '../../../../../platform/configuration/common/configuration.js';\nimport { ContextKeyExpr, IContextKeyService, RawContextKey } from '../../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../../platform/instantiation/common/instantiation.js';\nimport { KeybindingsRegistry } from '../../../../../platform/keybinding/common/keybindingsRegistry.js';\nimport { IListService, WorkbenchListFocusContextKey, WorkbenchTreeElementCanCollapse, WorkbenchTreeElementCanExpand } from '../../../../../platform/list/browser/listService.js';\nimport { INotificationService } from '../../../../../platform/notification/common/notification.js';\nimport { IStorageService } from '../../../../../platform/storage/common/storage.js';\nimport { OneReference } from '../referencesModel.js';\nimport { LayoutData, ReferenceWidget } from './referencesWidget.js';\nimport { EditorContextKeys } from '../../../../common/editorContextKeys.js';\nimport { InputFocusedContext } from '../../../../../platform/contextkey/common/contextkeys.js';\nexport const ctxReferenceSearchVisible = new RawContextKey('referenceSearchVisible', false, nls.localize('referenceSearchVisible', \"Whether reference peek is visible, like 'Peek References' or 'Peek Definition'\"));\nlet ReferencesController = ReferencesController_1 = class ReferencesController {\n    static get(editor) {\n        return editor.getContribution(ReferencesController_1.ID);\n    }\n    constructor(_defaultTreeKeyboardSupport, _editor, contextKeyService, _editorService, _notificationService, _instantiationService, _storageService, _configurationService) {\n        this._defaultTreeKeyboardSupport = _defaultTreeKeyboardSupport;\n        this._editor = _editor;\n        this._editorService = _editorService;\n        this._notificationService = _notificationService;\n        this._instantiationService = _instantiationService;\n        this._storageService = _storageService;\n        this._configurationService = _configurationService;\n        this._disposables = new DisposableStore();\n        this._requestIdPool = 0;\n        this._ignoreModelChangeEvent = false;\n        this._referenceSearchVisible = ctxReferenceSearchVisible.bindTo(contextKeyService);\n    }\n    dispose() {\n        var _a, _b;\n        this._referenceSearchVisible.reset();\n        this._disposables.dispose();\n        (_a = this._widget) === null || _a === void 0 ? void 0 : _a.dispose();\n        (_b = this._model) === null || _b === void 0 ? void 0 : _b.dispose();\n        this._widget = undefined;\n        this._model = undefined;\n    }\n    toggleWidget(range, modelPromise, peekMode) {\n        // close current widget and return early is position didn't change\n        let widgetPosition;\n        if (this._widget) {\n            widgetPosition = this._widget.position;\n        }\n        this.closeWidget();\n        if (!!widgetPosition && range.containsPosition(widgetPosition)) {\n            return;\n        }\n        this._peekMode = peekMode;\n        this._referenceSearchVisible.set(true);\n        // close the widget on model/mode changes\n        this._disposables.add(this._editor.onDidChangeModelLanguage(() => { this.closeWidget(); }));\n        this._disposables.add(this._editor.onDidChangeModel(() => {\n            if (!this._ignoreModelChangeEvent) {\n                this.closeWidget();\n            }\n        }));\n        const storageKey = 'peekViewLayout';\n        const data = LayoutData.fromJSON(this._storageService.get(storageKey, 0 /* StorageScope.PROFILE */, '{}'));\n        this._widget = this._instantiationService.createInstance(ReferenceWidget, this._editor, this._defaultTreeKeyboardSupport, data);\n        this._widget.setTitle(nls.localize('labelLoading', \"Loading...\"));\n        this._widget.show(range);\n        this._disposables.add(this._widget.onDidClose(() => {\n            modelPromise.cancel();\n            if (this._widget) {\n                this._storageService.store(storageKey, JSON.stringify(this._widget.layoutData), 0 /* StorageScope.PROFILE */, 1 /* StorageTarget.MACHINE */);\n                this._widget = undefined;\n            }\n            this.closeWidget();\n        }));\n        this._disposables.add(this._widget.onDidSelectReference(event => {\n            const { element, kind } = event;\n            if (!element) {\n                return;\n            }\n            switch (kind) {\n                case 'open':\n                    if (event.source !== 'editor' || !this._configurationService.getValue('editor.stablePeek')) {\n                        // when stable peek is configured we don't close\n                        // the peek window on selecting the editor\n                        this.openReference(element, false, false);\n                    }\n                    break;\n                case 'side':\n                    this.openReference(element, true, false);\n                    break;\n                case 'goto':\n                    if (peekMode) {\n                        this._gotoReference(element, true);\n                    }\n                    else {\n                        this.openReference(element, false, true);\n                    }\n                    break;\n            }\n        }));\n        const requestId = ++this._requestIdPool;\n        modelPromise.then(model => {\n            var _a;\n            // still current request? widget still open?\n            if (requestId !== this._requestIdPool || !this._widget) {\n                model.dispose();\n                return undefined;\n            }\n            (_a = this._model) === null || _a === void 0 ? void 0 : _a.dispose();\n            this._model = model;\n            // show widget\n            return this._widget.setModel(this._model).then(() => {\n                if (this._widget && this._model && this._editor.hasModel()) { // might have been closed\n                    // set title\n                    if (!this._model.isEmpty) {\n                        this._widget.setMetaTitle(nls.localize('metaTitle.N', \"{0} ({1})\", this._model.title, this._model.references.length));\n                    }\n                    else {\n                        this._widget.setMetaTitle('');\n                    }\n                    // set 'best' selection\n                    const uri = this._editor.getModel().uri;\n                    const pos = new Position(range.startLineNumber, range.startColumn);\n                    const selection = this._model.nearestReference(uri, pos);\n                    if (selection) {\n                        return this._widget.setSelection(selection).then(() => {\n                            if (this._widget && this._editor.getOption(87 /* EditorOption.peekWidgetDefaultFocus */) === 'editor') {\n                                this._widget.focusOnPreviewEditor();\n                            }\n                        });\n                    }\n                }\n                return undefined;\n            });\n        }, error => {\n            this._notificationService.error(error);\n        });\n    }\n    changeFocusBetweenPreviewAndReferences() {\n        if (!this._widget) {\n            // can be called while still resolving...\n            return;\n        }\n        if (this._widget.isPreviewEditorFocused()) {\n            this._widget.focusOnReferenceTree();\n        }\n        else {\n            this._widget.focusOnPreviewEditor();\n        }\n    }\n    async goToNextOrPreviousReference(fwd) {\n        if (!this._editor.hasModel() || !this._model || !this._widget) {\n            // can be called while still resolving...\n            return;\n        }\n        const currentPosition = this._widget.position;\n        if (!currentPosition) {\n            return;\n        }\n        const source = this._model.nearestReference(this._editor.getModel().uri, currentPosition);\n        if (!source) {\n            return;\n        }\n        const target = this._model.nextOrPreviousReference(source, fwd);\n        const editorFocus = this._editor.hasTextFocus();\n        const previewEditorFocus = this._widget.isPreviewEditorFocused();\n        await this._widget.setSelection(target);\n        await this._gotoReference(target, false);\n        if (editorFocus) {\n            this._editor.focus();\n        }\n        else if (this._widget && previewEditorFocus) {\n            this._widget.focusOnPreviewEditor();\n        }\n    }\n    async revealReference(reference) {\n        if (!this._editor.hasModel() || !this._model || !this._widget) {\n            // can be called while still resolving...\n            return;\n        }\n        await this._widget.revealReference(reference);\n    }\n    closeWidget(focusEditor = true) {\n        var _a, _b;\n        (_a = this._widget) === null || _a === void 0 ? void 0 : _a.dispose();\n        (_b = this._model) === null || _b === void 0 ? void 0 : _b.dispose();\n        this._referenceSearchVisible.reset();\n        this._disposables.clear();\n        this._widget = undefined;\n        this._model = undefined;\n        if (focusEditor) {\n            this._editor.focus();\n        }\n        this._requestIdPool += 1; // Cancel pending requests\n    }\n    _gotoReference(ref, pinned) {\n        var _a;\n        (_a = this._widget) === null || _a === void 0 ? void 0 : _a.hide();\n        this._ignoreModelChangeEvent = true;\n        const range = Range.lift(ref.range).collapseToStart();\n        return this._editorService.openCodeEditor({\n            resource: ref.uri,\n            options: { selection: range, selectionSource: \"code.jump\" /* TextEditorSelectionSource.JUMP */, pinned }\n        }, this._editor).then(openedEditor => {\n            var _a;\n            this._ignoreModelChangeEvent = false;\n            if (!openedEditor || !this._widget) {\n                // something went wrong...\n                this.closeWidget();\n                return;\n            }\n            if (this._editor === openedEditor) {\n                //\n                this._widget.show(range);\n                this._widget.focusOnReferenceTree();\n            }\n            else {\n                // we opened a different editor instance which means a different controller instance.\n                // therefore we stop with this controller and continue with the other\n                const other = ReferencesController_1.get(openedEditor);\n                const model = this._model.clone();\n                this.closeWidget();\n                openedEditor.focus();\n                other === null || other === void 0 ? void 0 : other.toggleWidget(range, createCancelablePromise(_ => Promise.resolve(model)), (_a = this._peekMode) !== null && _a !== void 0 ? _a : false);\n            }\n        }, (err) => {\n            this._ignoreModelChangeEvent = false;\n            onUnexpectedError(err);\n        });\n    }\n    openReference(ref, sideBySide, pinned) {\n        // clear stage\n        if (!sideBySide) {\n            this.closeWidget();\n        }\n        const { uri, range } = ref;\n        this._editorService.openCodeEditor({\n            resource: uri,\n            options: { selection: range, selectionSource: \"code.jump\" /* TextEditorSelectionSource.JUMP */, pinned }\n        }, this._editor, sideBySide);\n    }\n};\nReferencesController.ID = 'editor.contrib.referencesController';\nReferencesController = ReferencesController_1 = __decorate([\n    __param(2, IContextKeyService),\n    __param(3, ICodeEditorService),\n    __param(4, INotificationService),\n    __param(5, IInstantiationService),\n    __param(6, IStorageService),\n    __param(7, IConfigurationService)\n], ReferencesController);\nexport { ReferencesController };\nfunction withController(accessor, fn) {\n    const outerEditor = getOuterEditor(accessor);\n    if (!outerEditor) {\n        return;\n    }\n    const controller = ReferencesController.get(outerEditor);\n    if (controller) {\n        fn(controller);\n    }\n}\nKeybindingsRegistry.registerCommandAndKeybindingRule({\n    id: 'togglePeekWidgetFocus',\n    weight: 100 /* KeybindingWeight.EditorContrib */,\n    primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 60 /* KeyCode.F2 */),\n    when: ContextKeyExpr.or(ctxReferenceSearchVisible, PeekContext.inPeekEditor),\n    handler(accessor) {\n        withController(accessor, controller => {\n            controller.changeFocusBetweenPreviewAndReferences();\n        });\n    }\n});\nKeybindingsRegistry.registerCommandAndKeybindingRule({\n    id: 'goToNextReference',\n    weight: 100 /* KeybindingWeight.EditorContrib */ - 10,\n    primary: 62 /* KeyCode.F4 */,\n    secondary: [70 /* KeyCode.F12 */],\n    when: ContextKeyExpr.or(ctxReferenceSearchVisible, PeekContext.inPeekEditor),\n    handler(accessor) {\n        withController(accessor, controller => {\n            controller.goToNextOrPreviousReference(true);\n        });\n    }\n});\nKeybindingsRegistry.registerCommandAndKeybindingRule({\n    id: 'goToPreviousReference',\n    weight: 100 /* KeybindingWeight.EditorContrib */ - 10,\n    primary: 1024 /* KeyMod.Shift */ | 62 /* KeyCode.F4 */,\n    secondary: [1024 /* KeyMod.Shift */ | 70 /* KeyCode.F12 */],\n    when: ContextKeyExpr.or(ctxReferenceSearchVisible, PeekContext.inPeekEditor),\n    handler(accessor) {\n        withController(accessor, controller => {\n            controller.goToNextOrPreviousReference(false);\n        });\n    }\n});\n// commands that aren't needed anymore because there is now ContextKeyExpr.OR\nCommandsRegistry.registerCommandAlias('goToNextReferenceFromEmbeddedEditor', 'goToNextReference');\nCommandsRegistry.registerCommandAlias('goToPreviousReferenceFromEmbeddedEditor', 'goToPreviousReference');\n// close\nCommandsRegistry.registerCommandAlias('closeReferenceSearchEditor', 'closeReferenceSearch');\nCommandsRegistry.registerCommand('closeReferenceSearch', accessor => withController(accessor, controller => controller.closeWidget()));\nKeybindingsRegistry.registerKeybindingRule({\n    id: 'closeReferenceSearch',\n    weight: 100 /* KeybindingWeight.EditorContrib */ - 101,\n    primary: 9 /* KeyCode.Escape */,\n    secondary: [1024 /* KeyMod.Shift */ | 9 /* KeyCode.Escape */],\n    when: ContextKeyExpr.and(PeekContext.inPeekEditor, ContextKeyExpr.not('config.editor.stablePeek'))\n});\nKeybindingsRegistry.registerKeybindingRule({\n    id: 'closeReferenceSearch',\n    weight: 200 /* KeybindingWeight.WorkbenchContrib */ + 50,\n    primary: 9 /* KeyCode.Escape */,\n    secondary: [1024 /* KeyMod.Shift */ | 9 /* KeyCode.Escape */],\n    when: ContextKeyExpr.and(ctxReferenceSearchVisible, ContextKeyExpr.not('config.editor.stablePeek'), ContextKeyExpr.or(EditorContextKeys.editorTextFocus, InputFocusedContext.negate()))\n});\nKeybindingsRegistry.registerCommandAndKeybindingRule({\n    id: 'revealReference',\n    weight: 200 /* KeybindingWeight.WorkbenchContrib */,\n    primary: 3 /* KeyCode.Enter */,\n    mac: {\n        primary: 3 /* KeyCode.Enter */,\n        secondary: [2048 /* KeyMod.CtrlCmd */ | 18 /* KeyCode.DownArrow */]\n    },\n    when: ContextKeyExpr.and(ctxReferenceSearchVisible, WorkbenchListFocusContextKey, WorkbenchTreeElementCanCollapse.negate(), WorkbenchTreeElementCanExpand.negate()),\n    handler(accessor) {\n        var _a;\n        const listService = accessor.get(IListService);\n        const focus = (_a = listService.lastFocusedList) === null || _a === void 0 ? void 0 : _a.getFocus();\n        if (Array.isArray(focus) && focus[0] instanceof OneReference) {\n            withController(accessor, controller => controller.revealReference(focus[0]));\n        }\n    }\n});\nKeybindingsRegistry.registerCommandAndKeybindingRule({\n    id: 'openReferenceToSide',\n    weight: 100 /* KeybindingWeight.EditorContrib */,\n    primary: 2048 /* KeyMod.CtrlCmd */ | 3 /* KeyCode.Enter */,\n    mac: {\n        primary: 256 /* KeyMod.WinCtrl */ | 3 /* KeyCode.Enter */\n    },\n    when: ContextKeyExpr.and(ctxReferenceSearchVisible, WorkbenchListFocusContextKey, WorkbenchTreeElementCanCollapse.negate(), WorkbenchTreeElementCanExpand.negate()),\n    handler(accessor) {\n        var _a;\n        const listService = accessor.get(IListService);\n        const focus = (_a = listService.lastFocusedList) === null || _a === void 0 ? void 0 : _a.getFocus();\n        if (Array.isArray(focus) && focus[0] instanceof OneReference) {\n            withController(accessor, controller => controller.openReference(focus[0], true, true));\n        }\n    }\n});\nCommandsRegistry.registerCommand('openReference', (accessor) => {\n    var _a;\n    const listService = accessor.get(IListService);\n    const focus = (_a = listService.lastFocusedList) === null || _a === void 0 ? void 0 : _a.getFocus();\n    if (Array.isArray(focus) && focus[0] instanceof OneReference) {\n        withController(accessor, controller => controller.openReference(focus[0], false, true));\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/gotoSymbol/browser/peek/referencesTree.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar FileReferencesRenderer_1;\nimport * as dom from '../../../../../base/browser/dom.js';\nimport { CountBadge } from '../../../../../base/browser/ui/countBadge/countBadge.js';\nimport { HighlightedLabel } from '../../../../../base/browser/ui/highlightedlabel/highlightedLabel.js';\nimport { IconLabel } from '../../../../../base/browser/ui/iconLabel/iconLabel.js';\nimport { createMatches, FuzzyScore } from '../../../../../base/common/filters.js';\nimport { Disposable } from '../../../../../base/common/lifecycle.js';\nimport { basename, dirname } from '../../../../../base/common/resources.js';\nimport { ITextModelService } from '../../../../common/services/resolverService.js';\nimport { localize } from '../../../../../nls.js';\nimport { IInstantiationService } from '../../../../../platform/instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../../../../platform/keybinding/common/keybinding.js';\nimport { ILabelService } from '../../../../../platform/label/common/label.js';\nimport { defaultCountBadgeStyles } from '../../../../../platform/theme/browser/defaultStyles.js';\nimport { FileReferences, OneReference, ReferencesModel } from '../referencesModel.js';\nlet DataSource = class DataSource {\n    constructor(_resolverService) {\n        this._resolverService = _resolverService;\n    }\n    hasChildren(element) {\n        if (element instanceof ReferencesModel) {\n            return true;\n        }\n        if (element instanceof FileReferences) {\n            return true;\n        }\n        return false;\n    }\n    getChildren(element) {\n        if (element instanceof ReferencesModel) {\n            return element.groups;\n        }\n        if (element instanceof FileReferences) {\n            return element.resolve(this._resolverService).then(val => {\n                // if (element.failure) {\n                // \t// refresh the element on failure so that\n                // \t// we can update its rendering\n                // \treturn tree.refresh(element).then(() => val.children);\n                // }\n                return val.children;\n            });\n        }\n        throw new Error('bad tree');\n    }\n};\nDataSource = __decorate([\n    __param(0, ITextModelService)\n], DataSource);\nexport { DataSource };\n//#endregion\nexport class Delegate {\n    getHeight() {\n        return 23;\n    }\n    getTemplateId(element) {\n        if (element instanceof FileReferences) {\n            return FileReferencesRenderer.id;\n        }\n        else {\n            return OneReferenceRenderer.id;\n        }\n    }\n}\nlet StringRepresentationProvider = class StringRepresentationProvider {\n    constructor(_keybindingService) {\n        this._keybindingService = _keybindingService;\n    }\n    getKeyboardNavigationLabel(element) {\n        var _a;\n        if (element instanceof OneReference) {\n            const parts = (_a = element.parent.getPreview(element)) === null || _a === void 0 ? void 0 : _a.preview(element.range);\n            if (parts) {\n                return parts.value;\n            }\n        }\n        // FileReferences or unresolved OneReference\n        return basename(element.uri);\n    }\n};\nStringRepresentationProvider = __decorate([\n    __param(0, IKeybindingService)\n], StringRepresentationProvider);\nexport { StringRepresentationProvider };\nexport class IdentityProvider {\n    getId(element) {\n        return element instanceof OneReference ? element.id : element.uri;\n    }\n}\n//#region render: File\nlet FileReferencesTemplate = class FileReferencesTemplate extends Disposable {\n    constructor(container, _labelService) {\n        super();\n        this._labelService = _labelService;\n        const parent = document.createElement('div');\n        parent.classList.add('reference-file');\n        this.file = this._register(new IconLabel(parent, { supportHighlights: true }));\n        this.badge = new CountBadge(dom.append(parent, dom.$('.count')), {}, defaultCountBadgeStyles);\n        container.appendChild(parent);\n    }\n    set(element, matches) {\n        const parent = dirname(element.uri);\n        this.file.setLabel(this._labelService.getUriBasenameLabel(element.uri), this._labelService.getUriLabel(parent, { relative: true }), { title: this._labelService.getUriLabel(element.uri), matches });\n        const len = element.children.length;\n        this.badge.setCount(len);\n        if (len > 1) {\n            this.badge.setTitleFormat(localize('referencesCount', \"{0} references\", len));\n        }\n        else {\n            this.badge.setTitleFormat(localize('referenceCount', \"{0} reference\", len));\n        }\n    }\n};\nFileReferencesTemplate = __decorate([\n    __param(1, ILabelService)\n], FileReferencesTemplate);\nlet FileReferencesRenderer = FileReferencesRenderer_1 = class FileReferencesRenderer {\n    constructor(_instantiationService) {\n        this._instantiationService = _instantiationService;\n        this.templateId = FileReferencesRenderer_1.id;\n    }\n    renderTemplate(container) {\n        return this._instantiationService.createInstance(FileReferencesTemplate, container);\n    }\n    renderElement(node, index, template) {\n        template.set(node.element, createMatches(node.filterData));\n    }\n    disposeTemplate(templateData) {\n        templateData.dispose();\n    }\n};\nFileReferencesRenderer.id = 'FileReferencesRenderer';\nFileReferencesRenderer = FileReferencesRenderer_1 = __decorate([\n    __param(0, IInstantiationService)\n], FileReferencesRenderer);\nexport { FileReferencesRenderer };\n//#endregion\n//#region render: Reference\nclass OneReferenceTemplate extends Disposable {\n    constructor(container) {\n        super();\n        this.label = this._register(new HighlightedLabel(container));\n    }\n    set(element, score) {\n        var _a;\n        const preview = (_a = element.parent.getPreview(element)) === null || _a === void 0 ? void 0 : _a.preview(element.range);\n        if (!preview || !preview.value) {\n            // this means we FAILED to resolve the document or the value is the empty string\n            this.label.set(`${basename(element.uri)}:${element.range.startLineNumber + 1}:${element.range.startColumn + 1}`);\n        }\n        else {\n            // render search match as highlight unless\n            // we have score, then render the score\n            const { value, highlight } = preview;\n            if (score && !FuzzyScore.isDefault(score)) {\n                this.label.element.classList.toggle('referenceMatch', false);\n                this.label.set(value, createMatches(score));\n            }\n            else {\n                this.label.element.classList.toggle('referenceMatch', true);\n                this.label.set(value, [highlight]);\n            }\n        }\n    }\n}\nexport class OneReferenceRenderer {\n    constructor() {\n        this.templateId = OneReferenceRenderer.id;\n    }\n    renderTemplate(container) {\n        return new OneReferenceTemplate(container);\n    }\n    renderElement(node, index, templateData) {\n        templateData.set(node.element, node.filterData);\n    }\n    disposeTemplate(templateData) {\n        templateData.dispose();\n    }\n}\nOneReferenceRenderer.id = 'OneReferenceRenderer';\n//#endregion\nexport class AccessibilityProvider {\n    getWidgetAriaLabel() {\n        return localize('treeAriaLabel', \"References\");\n    }\n    getAriaLabel(element) {\n        return element.ariaMessage;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n/* -- zone widget */\n.monaco-editor .zone-widget .zone-widget-container.reference-zone-widget {\n\tborder-top-width: 1px;\n\tborder-bottom-width: 1px;\n}\n\n.monaco-editor .reference-zone-widget .inline {\n\tdisplay: inline-block;\n\tvertical-align: top;\n}\n\n.monaco-editor .reference-zone-widget .messages {\n\theight: 100%;\n\twidth: 100%;\n\ttext-align: center;\n\tpadding: 3em 0;\n}\n\n.monaco-editor .reference-zone-widget .ref-tree {\n\tline-height: 23px;\n\tbackground-color: var(--vscode-peekViewResult-background);\n\tcolor: var(--vscode-peekViewResult-lineForeground);\n}\n\n.monaco-editor .reference-zone-widget .ref-tree .reference {\n\ttext-overflow: ellipsis;\n\toverflow: hidden;\n}\n\n.monaco-editor .reference-zone-widget .ref-tree .reference-file {\n\tdisplay: inline-flex;\n\twidth: 100%;\n\theight: 100%;\n\tcolor: var(--vscode-peekViewResult-fileForeground);\n}\n\n.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .selected .reference-file {\n\tcolor: inherit !important;\n}\n\n.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows > .monaco-list-row.selected:not(.highlighted) {\n\tbackground-color: var(--vscode-peekViewResult-selectionBackground);\n\tcolor: var(--vscode-peekViewResult-selectionForeground) !important;\n}\n\n.monaco-editor .reference-zone-widget .ref-tree .reference-file .count {\n\tmargin-right: 12px;\n\tmargin-left: auto;\n}\n\n.monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight {\n\tbackground-color: var(--vscode-peekViewResult-matchHighlightBackground);\n}\n\n.monaco-editor .reference-zone-widget .preview .reference-decoration {\n\tbackground-color: var(--vscode-peekViewEditor-matchHighlightBackground);\n\tborder: 2px solid var(--vscode-peekViewEditor-matchHighlightBorder);\n\tbox-sizing: border-box;\n}\n\n.monaco-editor .reference-zone-widget .preview .monaco-editor .monaco-editor-background,\n.monaco-editor .reference-zone-widget .preview .monaco-editor .inputarea.ime-input {\n\tbackground-color: var(--vscode-peekViewEditor-background);\n}\n\n.monaco-editor .reference-zone-widget .preview .monaco-editor .margin {\n\tbackground-color: var(--vscode-peekViewEditorGutter-background);\n}\n\n/* High Contrast Theming */\n\n.monaco-editor.hc-black .reference-zone-widget .ref-tree .reference-file,\n.monaco-editor.hc-light .reference-zone-widget .ref-tree .reference-file {\n\tfont-weight: bold;\n}\n\n.monaco-editor.hc-black .reference-zone-widget .ref-tree .referenceMatch .highlight,\n.monaco-editor.hc-light .reference-zone-widget .ref-tree .referenceMatch .highlight {\n\tborder: 1px dotted var(--vscode-contrastActiveBorder, transparent);\n\tbox-sizing: border-box;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport * as dom from '../../../../../base/browser/dom.js';\nimport { Sizing, SplitView } from '../../../../../base/browser/ui/splitview/splitview.js';\nimport { Color } from '../../../../../base/common/color.js';\nimport { Emitter, Event } from '../../../../../base/common/event.js';\nimport { DisposableStore, dispose } from '../../../../../base/common/lifecycle.js';\nimport { Schemas } from '../../../../../base/common/network.js';\nimport { basenameOrAuthority, dirname } from '../../../../../base/common/resources.js';\nimport './referencesWidget.css';\nimport { EmbeddedCodeEditorWidget } from '../../../../browser/widget/codeEditor/embeddedCodeEditorWidget.js';\nimport { Range } from '../../../../common/core/range.js';\nimport { ModelDecorationOptions, TextModel } from '../../../../common/model/textModel.js';\nimport { ILanguageConfigurationService } from '../../../../common/languages/languageConfigurationRegistry.js';\nimport { PLAINTEXT_LANGUAGE_ID } from '../../../../common/languages/modesRegistry.js';\nimport { ILanguageService } from '../../../../common/languages/language.js';\nimport { ITextModelService } from '../../../../common/services/resolverService.js';\nimport { AccessibilityProvider, DataSource, Delegate, FileReferencesRenderer, IdentityProvider, OneReferenceRenderer, StringRepresentationProvider } from './referencesTree.js';\nimport * as peekView from '../../../peekView/browser/peekView.js';\nimport * as nls from '../../../../../nls.js';\nimport { IInstantiationService } from '../../../../../platform/instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../../../../platform/keybinding/common/keybinding.js';\nimport { ILabelService } from '../../../../../platform/label/common/label.js';\nimport { WorkbenchAsyncDataTree } from '../../../../../platform/list/browser/listService.js';\nimport { IThemeService } from '../../../../../platform/theme/common/themeService.js';\nimport { IUndoRedoService } from '../../../../../platform/undoRedo/common/undoRedo.js';\nimport { FileReferences, OneReference } from '../referencesModel.js';\nclass DecorationsManager {\n    constructor(_editor, _model) {\n        this._editor = _editor;\n        this._model = _model;\n        this._decorations = new Map();\n        this._decorationIgnoreSet = new Set();\n        this._callOnDispose = new DisposableStore();\n        this._callOnModelChange = new DisposableStore();\n        this._callOnDispose.add(this._editor.onDidChangeModel(() => this._onModelChanged()));\n        this._onModelChanged();\n    }\n    dispose() {\n        this._callOnModelChange.dispose();\n        this._callOnDispose.dispose();\n        this.removeDecorations();\n    }\n    _onModelChanged() {\n        this._callOnModelChange.clear();\n        const model = this._editor.getModel();\n        if (!model) {\n            return;\n        }\n        for (const ref of this._model.references) {\n            if (ref.uri.toString() === model.uri.toString()) {\n                this._addDecorations(ref.parent);\n                return;\n            }\n        }\n    }\n    _addDecorations(reference) {\n        if (!this._editor.hasModel()) {\n            return;\n        }\n        this._callOnModelChange.add(this._editor.getModel().onDidChangeDecorations(() => this._onDecorationChanged()));\n        const newDecorations = [];\n        const newDecorationsActualIndex = [];\n        for (let i = 0, len = reference.children.length; i < len; i++) {\n            const oneReference = reference.children[i];\n            if (this._decorationIgnoreSet.has(oneReference.id)) {\n                continue;\n            }\n            if (oneReference.uri.toString() !== this._editor.getModel().uri.toString()) {\n                continue;\n            }\n            newDecorations.push({\n                range: oneReference.range,\n                options: DecorationsManager.DecorationOptions\n            });\n            newDecorationsActualIndex.push(i);\n        }\n        this._editor.changeDecorations((changeAccessor) => {\n            const decorations = changeAccessor.deltaDecorations([], newDecorations);\n            for (let i = 0; i < decorations.length; i++) {\n                this._decorations.set(decorations[i], reference.children[newDecorationsActualIndex[i]]);\n            }\n        });\n    }\n    _onDecorationChanged() {\n        const toRemove = [];\n        const model = this._editor.getModel();\n        if (!model) {\n            return;\n        }\n        for (const [decorationId, reference] of this._decorations) {\n            const newRange = model.getDecorationRange(decorationId);\n            if (!newRange) {\n                continue;\n            }\n            let ignore = false;\n            if (Range.equalsRange(newRange, reference.range)) {\n                continue;\n            }\n            if (Range.spansMultipleLines(newRange)) {\n                ignore = true;\n            }\n            else {\n                const lineLength = reference.range.endColumn - reference.range.startColumn;\n                const newLineLength = newRange.endColumn - newRange.startColumn;\n                if (lineLength !== newLineLength) {\n                    ignore = true;\n                }\n            }\n            if (ignore) {\n                this._decorationIgnoreSet.add(reference.id);\n                toRemove.push(decorationId);\n            }\n            else {\n                reference.range = newRange;\n            }\n        }\n        for (let i = 0, len = toRemove.length; i < len; i++) {\n            this._decorations.delete(toRemove[i]);\n        }\n        this._editor.removeDecorations(toRemove);\n    }\n    removeDecorations() {\n        this._editor.removeDecorations([...this._decorations.keys()]);\n        this._decorations.clear();\n    }\n}\nDecorationsManager.DecorationOptions = ModelDecorationOptions.register({\n    description: 'reference-decoration',\n    stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n    className: 'reference-decoration'\n});\nexport class LayoutData {\n    constructor() {\n        this.ratio = 0.7;\n        this.heightInLines = 18;\n    }\n    static fromJSON(raw) {\n        let ratio;\n        let heightInLines;\n        try {\n            const data = JSON.parse(raw);\n            ratio = data.ratio;\n            heightInLines = data.heightInLines;\n        }\n        catch (_a) {\n            //\n        }\n        return {\n            ratio: ratio || 0.7,\n            heightInLines: heightInLines || 18\n        };\n    }\n}\nclass ReferencesTree extends WorkbenchAsyncDataTree {\n}\n/**\n * ZoneWidget that is shown inside the editor\n */\nlet ReferenceWidget = class ReferenceWidget extends peekView.PeekViewWidget {\n    constructor(editor, _defaultTreeKeyboardSupport, layoutData, themeService, _textModelResolverService, _instantiationService, _peekViewService, _uriLabel, _undoRedoService, _keybindingService, _languageService, _languageConfigurationService) {\n        super(editor, { showFrame: false, showArrow: true, isResizeable: true, isAccessible: true, supportOnTitleClick: true }, _instantiationService);\n        this._defaultTreeKeyboardSupport = _defaultTreeKeyboardSupport;\n        this.layoutData = layoutData;\n        this._textModelResolverService = _textModelResolverService;\n        this._instantiationService = _instantiationService;\n        this._peekViewService = _peekViewService;\n        this._uriLabel = _uriLabel;\n        this._undoRedoService = _undoRedoService;\n        this._keybindingService = _keybindingService;\n        this._languageService = _languageService;\n        this._languageConfigurationService = _languageConfigurationService;\n        this._disposeOnNewModel = new DisposableStore();\n        this._callOnDispose = new DisposableStore();\n        this._onDidSelectReference = new Emitter();\n        this.onDidSelectReference = this._onDidSelectReference.event;\n        this._dim = new dom.Dimension(0, 0);\n        this._applyTheme(themeService.getColorTheme());\n        this._callOnDispose.add(themeService.onDidColorThemeChange(this._applyTheme.bind(this)));\n        this._peekViewService.addExclusiveWidget(editor, this);\n        this.create();\n    }\n    dispose() {\n        this.setModel(undefined);\n        this._callOnDispose.dispose();\n        this._disposeOnNewModel.dispose();\n        dispose(this._preview);\n        dispose(this._previewNotAvailableMessage);\n        dispose(this._tree);\n        dispose(this._previewModelReference);\n        this._splitView.dispose();\n        super.dispose();\n    }\n    _applyTheme(theme) {\n        const borderColor = theme.getColor(peekView.peekViewBorder) || Color.transparent;\n        this.style({\n            arrowColor: borderColor,\n            frameColor: borderColor,\n            headerBackgroundColor: theme.getColor(peekView.peekViewTitleBackground) || Color.transparent,\n            primaryHeadingColor: theme.getColor(peekView.peekViewTitleForeground),\n            secondaryHeadingColor: theme.getColor(peekView.peekViewTitleInfoForeground)\n        });\n    }\n    show(where) {\n        super.show(where, this.layoutData.heightInLines || 18);\n    }\n    focusOnReferenceTree() {\n        this._tree.domFocus();\n    }\n    focusOnPreviewEditor() {\n        this._preview.focus();\n    }\n    isPreviewEditorFocused() {\n        return this._preview.hasTextFocus();\n    }\n    _onTitleClick(e) {\n        if (this._preview && this._preview.getModel()) {\n            this._onDidSelectReference.fire({\n                element: this._getFocusedReference(),\n                kind: e.ctrlKey || e.metaKey || e.altKey ? 'side' : 'open',\n                source: 'title'\n            });\n        }\n    }\n    _fillBody(containerElement) {\n        this.setCssClass('reference-zone-widget');\n        // message pane\n        this._messageContainer = dom.append(containerElement, dom.$('div.messages'));\n        dom.hide(this._messageContainer);\n        this._splitView = new SplitView(containerElement, { orientation: 1 /* Orientation.HORIZONTAL */ });\n        // editor\n        this._previewContainer = dom.append(containerElement, dom.$('div.preview.inline'));\n        const options = {\n            scrollBeyondLastLine: false,\n            scrollbar: {\n                verticalScrollbarSize: 14,\n                horizontal: 'auto',\n                useShadows: true,\n                verticalHasArrows: false,\n                horizontalHasArrows: false,\n                alwaysConsumeMouseWheel: true\n            },\n            overviewRulerLanes: 2,\n            fixedOverflowWidgets: true,\n            minimap: {\n                enabled: false\n            }\n        };\n        this._preview = this._instantiationService.createInstance(EmbeddedCodeEditorWidget, this._previewContainer, options, {}, this.editor);\n        dom.hide(this._previewContainer);\n        this._previewNotAvailableMessage = new TextModel(nls.localize('missingPreviewMessage', \"no preview available\"), PLAINTEXT_LANGUAGE_ID, TextModel.DEFAULT_CREATION_OPTIONS, null, this._undoRedoService, this._languageService, this._languageConfigurationService);\n        // tree\n        this._treeContainer = dom.append(containerElement, dom.$('div.ref-tree.inline'));\n        const treeOptions = {\n            keyboardSupport: this._defaultTreeKeyboardSupport,\n            accessibilityProvider: new AccessibilityProvider(),\n            keyboardNavigationLabelProvider: this._instantiationService.createInstance(StringRepresentationProvider),\n            identityProvider: new IdentityProvider(),\n            openOnSingleClick: true,\n            selectionNavigation: true,\n            overrideStyles: {\n                listBackground: peekView.peekViewResultsBackground\n            }\n        };\n        if (this._defaultTreeKeyboardSupport) {\n            // the tree will consume `Escape` and prevent the widget from closing\n            this._callOnDispose.add(dom.addStandardDisposableListener(this._treeContainer, 'keydown', (e) => {\n                if (e.equals(9 /* KeyCode.Escape */)) {\n                    this._keybindingService.dispatchEvent(e, e.target);\n                    e.stopPropagation();\n                }\n            }, true));\n        }\n        this._tree = this._instantiationService.createInstance(ReferencesTree, 'ReferencesWidget', this._treeContainer, new Delegate(), [\n            this._instantiationService.createInstance(FileReferencesRenderer),\n            this._instantiationService.createInstance(OneReferenceRenderer),\n        ], this._instantiationService.createInstance(DataSource), treeOptions);\n        // split stuff\n        this._splitView.addView({\n            onDidChange: Event.None,\n            element: this._previewContainer,\n            minimumSize: 200,\n            maximumSize: Number.MAX_VALUE,\n            layout: (width) => {\n                this._preview.layout({ height: this._dim.height, width });\n            }\n        }, Sizing.Distribute);\n        this._splitView.addView({\n            onDidChange: Event.None,\n            element: this._treeContainer,\n            minimumSize: 100,\n            maximumSize: Number.MAX_VALUE,\n            layout: (width) => {\n                this._treeContainer.style.height = `${this._dim.height}px`;\n                this._treeContainer.style.width = `${width}px`;\n                this._tree.layout(this._dim.height, width);\n            }\n        }, Sizing.Distribute);\n        this._disposables.add(this._splitView.onDidSashChange(() => {\n            if (this._dim.width) {\n                this.layoutData.ratio = this._splitView.getViewSize(0) / this._dim.width;\n            }\n        }, undefined));\n        // listen on selection and focus\n        const onEvent = (element, kind) => {\n            if (element instanceof OneReference) {\n                if (kind === 'show') {\n                    this._revealReference(element, false);\n                }\n                this._onDidSelectReference.fire({ element, kind, source: 'tree' });\n            }\n        };\n        this._tree.onDidOpen(e => {\n            if (e.sideBySide) {\n                onEvent(e.element, 'side');\n            }\n            else if (e.editorOptions.pinned) {\n                onEvent(e.element, 'goto');\n            }\n            else {\n                onEvent(e.element, 'show');\n            }\n        });\n        dom.hide(this._treeContainer);\n    }\n    _onWidth(width) {\n        if (this._dim) {\n            this._doLayoutBody(this._dim.height, width);\n        }\n    }\n    _doLayoutBody(heightInPixel, widthInPixel) {\n        super._doLayoutBody(heightInPixel, widthInPixel);\n        this._dim = new dom.Dimension(widthInPixel, heightInPixel);\n        this.layoutData.heightInLines = this._viewZone ? this._viewZone.heightInLines : this.layoutData.heightInLines;\n        this._splitView.layout(widthInPixel);\n        this._splitView.resizeView(0, widthInPixel * this.layoutData.ratio);\n    }\n    setSelection(selection) {\n        return this._revealReference(selection, true).then(() => {\n            if (!this._model) {\n                // disposed\n                return;\n            }\n            // show in tree\n            this._tree.setSelection([selection]);\n            this._tree.setFocus([selection]);\n        });\n    }\n    setModel(newModel) {\n        // clean up\n        this._disposeOnNewModel.clear();\n        this._model = newModel;\n        if (this._model) {\n            return this._onNewModel();\n        }\n        return Promise.resolve();\n    }\n    _onNewModel() {\n        if (!this._model) {\n            return Promise.resolve(undefined);\n        }\n        if (this._model.isEmpty) {\n            this.setTitle('');\n            this._messageContainer.innerText = nls.localize('noResults', \"No results\");\n            dom.show(this._messageContainer);\n            return Promise.resolve(undefined);\n        }\n        dom.hide(this._messageContainer);\n        this._decorationsManager = new DecorationsManager(this._preview, this._model);\n        this._disposeOnNewModel.add(this._decorationsManager);\n        // listen on model changes\n        this._disposeOnNewModel.add(this._model.onDidChangeReferenceRange(reference => this._tree.rerender(reference)));\n        // listen on editor\n        this._disposeOnNewModel.add(this._preview.onMouseDown(e => {\n            const { event, target } = e;\n            if (event.detail !== 2) {\n                return;\n            }\n            const element = this._getFocusedReference();\n            if (!element) {\n                return;\n            }\n            this._onDidSelectReference.fire({\n                element: { uri: element.uri, range: target.range },\n                kind: (event.ctrlKey || event.metaKey || event.altKey) ? 'side' : 'open',\n                source: 'editor'\n            });\n        }));\n        // make sure things are rendered\n        this.container.classList.add('results-loaded');\n        dom.show(this._treeContainer);\n        dom.show(this._previewContainer);\n        this._splitView.layout(this._dim.width);\n        this.focusOnReferenceTree();\n        // pick input and a reference to begin with\n        return this._tree.setInput(this._model.groups.length === 1 ? this._model.groups[0] : this._model);\n    }\n    _getFocusedReference() {\n        const [element] = this._tree.getFocus();\n        if (element instanceof OneReference) {\n            return element;\n        }\n        else if (element instanceof FileReferences) {\n            if (element.children.length > 0) {\n                return element.children[0];\n            }\n        }\n        return undefined;\n    }\n    async revealReference(reference) {\n        await this._revealReference(reference, false);\n        this._onDidSelectReference.fire({ element: reference, kind: 'goto', source: 'tree' });\n    }\n    async _revealReference(reference, revealParent) {\n        // check if there is anything to do...\n        if (this._revealedReference === reference) {\n            return;\n        }\n        this._revealedReference = reference;\n        // Update widget header\n        if (reference.uri.scheme !== Schemas.inMemory) {\n            this.setTitle(basenameOrAuthority(reference.uri), this._uriLabel.getUriLabel(dirname(reference.uri)));\n        }\n        else {\n            this.setTitle(nls.localize('peekView.alternateTitle', \"References\"));\n        }\n        const promise = this._textModelResolverService.createModelReference(reference.uri);\n        if (this._tree.getInput() === reference.parent) {\n            this._tree.reveal(reference);\n        }\n        else {\n            if (revealParent) {\n                this._tree.reveal(reference.parent);\n            }\n            await this._tree.expand(reference.parent);\n            this._tree.reveal(reference);\n        }\n        const ref = await promise;\n        if (!this._model) {\n            // disposed\n            ref.dispose();\n            return;\n        }\n        dispose(this._previewModelReference);\n        // show in editor\n        const model = ref.object;\n        if (model) {\n            const scrollType = this._preview.getModel() === model.textEditorModel ? 0 /* ScrollType.Smooth */ : 1 /* ScrollType.Immediate */;\n            const sel = Range.lift(reference.range).collapseToStart();\n            this._previewModelReference = ref;\n            this._preview.setModel(model.textEditorModel);\n            this._preview.setSelection(sel);\n            this._preview.revealRangeInCenter(sel, scrollType);\n        }\n        else {\n            this._preview.setModel(this._previewNotAvailableMessage);\n            ref.dispose();\n        }\n    }\n};\nReferenceWidget = __decorate([\n    __param(3, IThemeService),\n    __param(4, ITextModelService),\n    __param(5, IInstantiationService),\n    __param(6, peekView.IPeekViewService),\n    __param(7, ILabelService),\n    __param(8, IUndoRedoService),\n    __param(9, IKeybindingService),\n    __param(10, ILanguageService),\n    __param(11, ILanguageConfigurationService)\n], ReferenceWidget);\nexport { ReferenceWidget };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/gotoSymbol/browser/referencesModel.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { onUnexpectedError } from '../../../../base/common/errors.js';\nimport { Emitter } from '../../../../base/common/event.js';\nimport { defaultGenerator } from '../../../../base/common/idGenerator.js';\nimport { dispose } from '../../../../base/common/lifecycle.js';\nimport { ResourceMap } from '../../../../base/common/map.js';\nimport { basename, extUri } from '../../../../base/common/resources.js';\nimport * as strings from '../../../../base/common/strings.js';\nimport { Range } from '../../../common/core/range.js';\nimport { localize } from '../../../../nls.js';\nexport class OneReference {\n    constructor(isProviderFirst, parent, link, _rangeCallback) {\n        this.isProviderFirst = isProviderFirst;\n        this.parent = parent;\n        this.link = link;\n        this._rangeCallback = _rangeCallback;\n        this.id = defaultGenerator.nextId();\n    }\n    get uri() {\n        return this.link.uri;\n    }\n    get range() {\n        var _a, _b;\n        return (_b = (_a = this._range) !== null && _a !== void 0 ? _a : this.link.targetSelectionRange) !== null && _b !== void 0 ? _b : this.link.range;\n    }\n    set range(value) {\n        this._range = value;\n        this._rangeCallback(this);\n    }\n    get ariaMessage() {\n        var _a;\n        const preview = (_a = this.parent.getPreview(this)) === null || _a === void 0 ? void 0 : _a.preview(this.range);\n        if (!preview) {\n            return localize('aria.oneReference', \"in {0} on line {1} at column {2}\", basename(this.uri), this.range.startLineNumber, this.range.startColumn);\n        }\n        else {\n            return localize({ key: 'aria.oneReference.preview', comment: ['Placeholders are: 0: filename, 1:line number, 2: column number, 3: preview snippet of source code'] }, \"{0} in {1} on line {2} at column {3}\", preview.value, basename(this.uri), this.range.startLineNumber, this.range.startColumn);\n        }\n    }\n}\nexport class FilePreview {\n    constructor(_modelReference) {\n        this._modelReference = _modelReference;\n    }\n    dispose() {\n        this._modelReference.dispose();\n    }\n    preview(range, n = 8) {\n        const model = this._modelReference.object.textEditorModel;\n        if (!model) {\n            return undefined;\n        }\n        const { startLineNumber, startColumn, endLineNumber, endColumn } = range;\n        const word = model.getWordUntilPosition({ lineNumber: startLineNumber, column: startColumn - n });\n        const beforeRange = new Range(startLineNumber, word.startColumn, startLineNumber, startColumn);\n        const afterRange = new Range(endLineNumber, endColumn, endLineNumber, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */);\n        const before = model.getValueInRange(beforeRange).replace(/^\\s+/, '');\n        const inside = model.getValueInRange(range);\n        const after = model.getValueInRange(afterRange).replace(/\\s+$/, '');\n        return {\n            value: before + inside + after,\n            highlight: { start: before.length, end: before.length + inside.length }\n        };\n    }\n}\nexport class FileReferences {\n    constructor(parent, uri) {\n        this.parent = parent;\n        this.uri = uri;\n        this.children = [];\n        this._previews = new ResourceMap();\n    }\n    dispose() {\n        dispose(this._previews.values());\n        this._previews.clear();\n    }\n    getPreview(child) {\n        return this._previews.get(child.uri);\n    }\n    get ariaMessage() {\n        const len = this.children.length;\n        if (len === 1) {\n            return localize('aria.fileReferences.1', \"1 symbol in {0}, full path {1}\", basename(this.uri), this.uri.fsPath);\n        }\n        else {\n            return localize('aria.fileReferences.N', \"{0} symbols in {1}, full path {2}\", len, basename(this.uri), this.uri.fsPath);\n        }\n    }\n    async resolve(textModelResolverService) {\n        if (this._previews.size !== 0) {\n            return this;\n        }\n        for (const child of this.children) {\n            if (this._previews.has(child.uri)) {\n                continue;\n            }\n            try {\n                const ref = await textModelResolverService.createModelReference(child.uri);\n                this._previews.set(child.uri, new FilePreview(ref));\n            }\n            catch (err) {\n                onUnexpectedError(err);\n            }\n        }\n        return this;\n    }\n}\nexport class ReferencesModel {\n    constructor(links, title) {\n        this.groups = [];\n        this.references = [];\n        this._onDidChangeReferenceRange = new Emitter();\n        this.onDidChangeReferenceRange = this._onDidChangeReferenceRange.event;\n        this._links = links;\n        this._title = title;\n        // grouping and sorting\n        const [providersFirst] = links;\n        links.sort(ReferencesModel._compareReferences);\n        let current;\n        for (const link of links) {\n            if (!current || !extUri.isEqual(current.uri, link.uri, true)) {\n                // new group\n                current = new FileReferences(this, link.uri);\n                this.groups.push(current);\n            }\n            // append, check for equality first!\n            if (current.children.length === 0 || ReferencesModel._compareReferences(link, current.children[current.children.length - 1]) !== 0) {\n                const oneRef = new OneReference(providersFirst === link, current, link, ref => this._onDidChangeReferenceRange.fire(ref));\n                this.references.push(oneRef);\n                current.children.push(oneRef);\n            }\n        }\n    }\n    dispose() {\n        dispose(this.groups);\n        this._onDidChangeReferenceRange.dispose();\n        this.groups.length = 0;\n    }\n    clone() {\n        return new ReferencesModel(this._links, this._title);\n    }\n    get title() {\n        return this._title;\n    }\n    get isEmpty() {\n        return this.groups.length === 0;\n    }\n    get ariaMessage() {\n        if (this.isEmpty) {\n            return localize('aria.result.0', \"No results found\");\n        }\n        else if (this.references.length === 1) {\n            return localize('aria.result.1', \"Found 1 symbol in {0}\", this.references[0].uri.fsPath);\n        }\n        else if (this.groups.length === 1) {\n            return localize('aria.result.n1', \"Found {0} symbols in {1}\", this.references.length, this.groups[0].uri.fsPath);\n        }\n        else {\n            return localize('aria.result.nm', \"Found {0} symbols in {1} files\", this.references.length, this.groups.length);\n        }\n    }\n    nextOrPreviousReference(reference, next) {\n        const { parent } = reference;\n        let idx = parent.children.indexOf(reference);\n        const childCount = parent.children.length;\n        const groupCount = parent.parent.groups.length;\n        if (groupCount === 1 || next && idx + 1 < childCount || !next && idx > 0) {\n            // cycling within one file\n            if (next) {\n                idx = (idx + 1) % childCount;\n            }\n            else {\n                idx = (idx + childCount - 1) % childCount;\n            }\n            return parent.children[idx];\n        }\n        idx = parent.parent.groups.indexOf(parent);\n        if (next) {\n            idx = (idx + 1) % groupCount;\n            return parent.parent.groups[idx].children[0];\n        }\n        else {\n            idx = (idx + groupCount - 1) % groupCount;\n            return parent.parent.groups[idx].children[parent.parent.groups[idx].children.length - 1];\n        }\n    }\n    nearestReference(resource, position) {\n        const nearest = this.references.map((ref, idx) => {\n            return {\n                idx,\n                prefixLen: strings.commonPrefixLength(ref.uri.toString(), resource.toString()),\n                offsetDist: Math.abs(ref.range.startLineNumber - position.lineNumber) * 100 + Math.abs(ref.range.startColumn - position.column)\n            };\n        }).sort((a, b) => {\n            if (a.prefixLen > b.prefixLen) {\n                return -1;\n            }\n            else if (a.prefixLen < b.prefixLen) {\n                return 1;\n            }\n            else if (a.offsetDist < b.offsetDist) {\n                return -1;\n            }\n            else if (a.offsetDist > b.offsetDist) {\n                return 1;\n            }\n            else {\n                return 0;\n            }\n        })[0];\n        if (nearest) {\n            return this.references[nearest.idx];\n        }\n        return undefined;\n    }\n    referenceAt(resource, position) {\n        for (const ref of this.references) {\n            if (ref.uri.toString() === resource.toString()) {\n                if (Range.containsPosition(ref.range, position)) {\n                    return ref;\n                }\n            }\n        }\n        return undefined;\n    }\n    firstReference() {\n        for (const ref of this.references) {\n            if (ref.isProviderFirst) {\n                return ref;\n            }\n        }\n        return this.references[0];\n    }\n    static _compareReferences(a, b) {\n        return extUri.compare(a.uri, b.uri) || Range.compareRangesUsingStarts(a.range, b.range);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/gotoSymbol/browser/symbolNavigation.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Emitter } from '../../../../base/common/event.js';\nimport { combinedDisposable, DisposableStore, dispose } from '../../../../base/common/lifecycle.js';\nimport { isEqual } from '../../../../base/common/resources.js';\nimport { EditorCommand, registerEditorCommand } from '../../../browser/editorExtensions.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { Range } from '../../../common/core/range.js';\nimport { localize } from '../../../../nls.js';\nimport { IContextKeyService, RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { registerSingleton } from '../../../../platform/instantiation/common/extensions.js';\nimport { createDecorator } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { KeybindingsRegistry } from '../../../../platform/keybinding/common/keybindingsRegistry.js';\nimport { INotificationService } from '../../../../platform/notification/common/notification.js';\nexport const ctxHasSymbols = new RawContextKey('hasSymbols', false, localize('hasSymbols', \"Whether there are symbol locations that can be navigated via keyboard-only.\"));\nexport const ISymbolNavigationService = createDecorator('ISymbolNavigationService');\nlet SymbolNavigationService = class SymbolNavigationService {\n    constructor(contextKeyService, _editorService, _notificationService, _keybindingService) {\n        this._editorService = _editorService;\n        this._notificationService = _notificationService;\n        this._keybindingService = _keybindingService;\n        this._currentModel = undefined;\n        this._currentIdx = -1;\n        this._ignoreEditorChange = false;\n        this._ctxHasSymbols = ctxHasSymbols.bindTo(contextKeyService);\n    }\n    reset() {\n        var _a, _b;\n        this._ctxHasSymbols.reset();\n        (_a = this._currentState) === null || _a === void 0 ? void 0 : _a.dispose();\n        (_b = this._currentMessage) === null || _b === void 0 ? void 0 : _b.dispose();\n        this._currentModel = undefined;\n        this._currentIdx = -1;\n    }\n    put(anchor) {\n        const refModel = anchor.parent.parent;\n        if (refModel.references.length <= 1) {\n            this.reset();\n            return;\n        }\n        this._currentModel = refModel;\n        this._currentIdx = refModel.references.indexOf(anchor);\n        this._ctxHasSymbols.set(true);\n        this._showMessage();\n        const editorState = new EditorState(this._editorService);\n        const listener = editorState.onDidChange(_ => {\n            if (this._ignoreEditorChange) {\n                return;\n            }\n            const editor = this._editorService.getActiveCodeEditor();\n            if (!editor) {\n                return;\n            }\n            const model = editor.getModel();\n            const position = editor.getPosition();\n            if (!model || !position) {\n                return;\n            }\n            let seenUri = false;\n            let seenPosition = false;\n            for (const reference of refModel.references) {\n                if (isEqual(reference.uri, model.uri)) {\n                    seenUri = true;\n                    seenPosition = seenPosition || Range.containsPosition(reference.range, position);\n                }\n                else if (seenUri) {\n                    break;\n                }\n            }\n            if (!seenUri || !seenPosition) {\n                this.reset();\n            }\n        });\n        this._currentState = combinedDisposable(editorState, listener);\n    }\n    revealNext(source) {\n        if (!this._currentModel) {\n            return Promise.resolve();\n        }\n        // get next result and advance\n        this._currentIdx += 1;\n        this._currentIdx %= this._currentModel.references.length;\n        const reference = this._currentModel.references[this._currentIdx];\n        // status\n        this._showMessage();\n        // open editor, ignore events while that happens\n        this._ignoreEditorChange = true;\n        return this._editorService.openCodeEditor({\n            resource: reference.uri,\n            options: {\n                selection: Range.collapseToStart(reference.range),\n                selectionRevealType: 3 /* TextEditorSelectionRevealType.NearTopIfOutsideViewport */\n            }\n        }, source).finally(() => {\n            this._ignoreEditorChange = false;\n        });\n    }\n    _showMessage() {\n        var _a;\n        (_a = this._currentMessage) === null || _a === void 0 ? void 0 : _a.dispose();\n        const kb = this._keybindingService.lookupKeybinding('editor.gotoNextSymbolFromResult');\n        const message = kb\n            ? localize('location.kb', \"Symbol {0} of {1}, {2} for next\", this._currentIdx + 1, this._currentModel.references.length, kb.getLabel())\n            : localize('location', \"Symbol {0} of {1}\", this._currentIdx + 1, this._currentModel.references.length);\n        this._currentMessage = this._notificationService.status(message);\n    }\n};\nSymbolNavigationService = __decorate([\n    __param(0, IContextKeyService),\n    __param(1, ICodeEditorService),\n    __param(2, INotificationService),\n    __param(3, IKeybindingService)\n], SymbolNavigationService);\nregisterSingleton(ISymbolNavigationService, SymbolNavigationService, 1 /* InstantiationType.Delayed */);\nregisterEditorCommand(new class extends EditorCommand {\n    constructor() {\n        super({\n            id: 'editor.gotoNextSymbolFromResult',\n            precondition: ctxHasSymbols,\n            kbOpts: {\n                weight: 100 /* KeybindingWeight.EditorContrib */,\n                primary: 70 /* KeyCode.F12 */\n            }\n        });\n    }\n    runEditorCommand(accessor, editor) {\n        return accessor.get(ISymbolNavigationService).revealNext(editor);\n    }\n});\nKeybindingsRegistry.registerCommandAndKeybindingRule({\n    id: 'editor.gotoNextSymbolFromResult.cancel',\n    weight: 100 /* KeybindingWeight.EditorContrib */,\n    when: ctxHasSymbols,\n    primary: 9 /* KeyCode.Escape */,\n    handler(accessor) {\n        accessor.get(ISymbolNavigationService).reset();\n    }\n});\n//\nlet EditorState = class EditorState {\n    constructor(editorService) {\n        this._listener = new Map();\n        this._disposables = new DisposableStore();\n        this._onDidChange = new Emitter();\n        this.onDidChange = this._onDidChange.event;\n        this._disposables.add(editorService.onCodeEditorRemove(this._onDidRemoveEditor, this));\n        this._disposables.add(editorService.onCodeEditorAdd(this._onDidAddEditor, this));\n        editorService.listCodeEditors().forEach(this._onDidAddEditor, this);\n    }\n    dispose() {\n        this._disposables.dispose();\n        this._onDidChange.dispose();\n        dispose(this._listener.values());\n    }\n    _onDidAddEditor(editor) {\n        this._listener.set(editor, combinedDisposable(editor.onDidChangeCursorPosition(_ => this._onDidChange.fire({ editor })), editor.onDidChangeModelContent(_ => this._onDidChange.fire({ editor }))));\n    }\n    _onDidRemoveEditor(editor) {\n        var _a;\n        (_a = this._listener.get(editor)) === null || _a === void 0 ? void 0 : _a.dispose();\n        this._listener.delete(editor);\n    }\n};\nEditorState = __decorate([\n    __param(0, ICodeEditorService)\n], EditorState);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/hover/browser/contentHoverComputer.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { coalesce } from '../../../../base/common/arrays.js';\nimport { AsyncIterableObject } from '../../../../base/common/async.js';\nexport class ContentHoverComputer {\n    get anchor() { return this._anchor; }\n    set anchor(value) { this._anchor = value; }\n    get shouldFocus() { return this._shouldFocus; }\n    set shouldFocus(value) { this._shouldFocus = value; }\n    get source() { return this._source; }\n    set source(value) { this._source = value; }\n    get insistOnKeepingHoverVisible() { return this._insistOnKeepingHoverVisible; }\n    set insistOnKeepingHoverVisible(value) { this._insistOnKeepingHoverVisible = value; }\n    constructor(_editor, _participants) {\n        this._editor = _editor;\n        this._participants = _participants;\n        this._anchor = null;\n        this._shouldFocus = false;\n        this._source = 0 /* HoverStartSource.Mouse */;\n        this._insistOnKeepingHoverVisible = false;\n    }\n    static _getLineDecorations(editor, anchor) {\n        if (anchor.type !== 1 /* HoverAnchorType.Range */ && !anchor.supportsMarkerHover) {\n            return [];\n        }\n        const model = editor.getModel();\n        const lineNumber = anchor.range.startLineNumber;\n        if (lineNumber > model.getLineCount()) {\n            // invalid line\n            return [];\n        }\n        const maxColumn = model.getLineMaxColumn(lineNumber);\n        return editor.getLineDecorations(lineNumber).filter((d) => {\n            if (d.options.isWholeLine) {\n                return true;\n            }\n            const startColumn = (d.range.startLineNumber === lineNumber) ? d.range.startColumn : 1;\n            const endColumn = (d.range.endLineNumber === lineNumber) ? d.range.endColumn : maxColumn;\n            if (d.options.showIfCollapsed) {\n                // Relax check around `showIfCollapsed` decorations to also include +/- 1 character\n                if (startColumn > anchor.range.startColumn + 1 || anchor.range.endColumn - 1 > endColumn) {\n                    return false;\n                }\n            }\n            else {\n                if (startColumn > anchor.range.startColumn || anchor.range.endColumn > endColumn) {\n                    return false;\n                }\n            }\n            return true;\n        });\n    }\n    computeAsync(token) {\n        const anchor = this._anchor;\n        if (!this._editor.hasModel() || !anchor) {\n            return AsyncIterableObject.EMPTY;\n        }\n        const lineDecorations = ContentHoverComputer._getLineDecorations(this._editor, anchor);\n        return AsyncIterableObject.merge(this._participants.map((participant) => {\n            if (!participant.computeAsync) {\n                return AsyncIterableObject.EMPTY;\n            }\n            return participant.computeAsync(anchor, lineDecorations, token);\n        }));\n    }\n    computeSync() {\n        if (!this._editor.hasModel() || !this._anchor) {\n            return [];\n        }\n        const lineDecorations = ContentHoverComputer._getLineDecorations(this._editor, this._anchor);\n        let result = [];\n        for (const participant of this._participants) {\n            result = result.concat(participant.computeSync(this._anchor, lineDecorations));\n        }\n        return coalesce(result);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/hover/browser/contentHoverController.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar ContentHoverController_1;\nimport * as dom from '../../../../base/browser/dom.js';\nimport { Disposable, DisposableStore, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { TokenizationRegistry } from '../../../common/languages.js';\nimport { HoverOperation } from './hoverOperation.js';\nimport { HoverParticipantRegistry, HoverRangeAnchor } from './hoverTypes.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { MarkdownHoverParticipant } from './markdownHoverParticipant.js';\nimport { InlayHintsHover } from '../../inlayHints/browser/inlayHintsHover.js';\nimport { ContentHoverWidget } from './contentHoverWidget.js';\nimport { ContentHoverComputer } from './contentHoverComputer.js';\nimport { ContentHoverVisibleData, HoverResult } from './contentHoverTypes.js';\nimport { EditorHoverStatusBar } from './contentHoverStatusBar.js';\nimport { Emitter } from '../../../../base/common/event.js';\nlet ContentHoverController = ContentHoverController_1 = class ContentHoverController extends Disposable {\n    constructor(_editor, _instantiationService, _keybindingService) {\n        super();\n        this._editor = _editor;\n        this._instantiationService = _instantiationService;\n        this._keybindingService = _keybindingService;\n        this._currentResult = null;\n        this._onContentsChanged = this._register(new Emitter());\n        this.onContentsChanged = this._onContentsChanged.event;\n        this._widget = this._register(this._instantiationService.createInstance(ContentHoverWidget, this._editor));\n        // Instantiate participants and sort them by `hoverOrdinal` which is relevant for rendering order.\n        this._participants = [];\n        for (const participant of HoverParticipantRegistry.getAll()) {\n            const participantInstance = this._instantiationService.createInstance(participant, this._editor);\n            if (participantInstance instanceof MarkdownHoverParticipant && !(participantInstance instanceof InlayHintsHover)) {\n                this._markdownHoverParticipant = participantInstance;\n            }\n            this._participants.push(participantInstance);\n        }\n        this._participants.sort((p1, p2) => p1.hoverOrdinal - p2.hoverOrdinal);\n        this._computer = new ContentHoverComputer(this._editor, this._participants);\n        this._hoverOperation = this._register(new HoverOperation(this._editor, this._computer));\n        this._register(this._hoverOperation.onResult((result) => {\n            if (!this._computer.anchor) {\n                // invalid state, ignore result\n                return;\n            }\n            const messages = (result.hasLoadingMessage ? this._addLoadingMessage(result.value) : result.value);\n            this._withResult(new HoverResult(this._computer.anchor, messages, result.isComplete));\n        }));\n        this._register(dom.addStandardDisposableListener(this._widget.getDomNode(), 'keydown', (e) => {\n            if (e.equals(9 /* KeyCode.Escape */)) {\n                this.hide();\n            }\n        }));\n        this._register(TokenizationRegistry.onDidChange(() => {\n            if (this._widget.position && this._currentResult) {\n                this._setCurrentResult(this._currentResult); // render again\n            }\n        }));\n    }\n    /**\n     * Returns true if the hover shows now or will show.\n     */\n    _startShowingOrUpdateHover(anchor, mode, source, focus, mouseEvent) {\n        if (!this._widget.position || !this._currentResult) {\n            // The hover is not visible\n            if (anchor) {\n                this._startHoverOperationIfNecessary(anchor, mode, source, focus, false);\n                return true;\n            }\n            return false;\n        }\n        // The hover is currently visible\n        const isHoverSticky = this._editor.getOption(60 /* EditorOption.hover */).sticky;\n        const isGettingCloser = (isHoverSticky\n            && mouseEvent\n            && this._widget.isMouseGettingCloser(mouseEvent.event.posx, mouseEvent.event.posy));\n        if (isGettingCloser) {\n            // The mouse is getting closer to the hover, so we will keep the hover untouched\n            // But we will kick off a hover update at the new anchor, insisting on keeping the hover visible.\n            if (anchor) {\n                this._startHoverOperationIfNecessary(anchor, mode, source, focus, true);\n            }\n            return true;\n        }\n        if (!anchor) {\n            this._setCurrentResult(null);\n            return false;\n        }\n        if (anchor && this._currentResult.anchor.equals(anchor)) {\n            // The widget is currently showing results for the exact same anchor, so no update is needed\n            return true;\n        }\n        if (!anchor.canAdoptVisibleHover(this._currentResult.anchor, this._widget.position)) {\n            // The new anchor is not compatible with the previous anchor\n            this._setCurrentResult(null);\n            this._startHoverOperationIfNecessary(anchor, mode, source, focus, false);\n            return true;\n        }\n        // We aren't getting any closer to the hover, so we will filter existing results\n        // and keep those which also apply to the new anchor.\n        this._setCurrentResult(this._currentResult.filter(anchor));\n        this._startHoverOperationIfNecessary(anchor, mode, source, focus, false);\n        return true;\n    }\n    _startHoverOperationIfNecessary(anchor, mode, source, focus, insistOnKeepingHoverVisible) {\n        if (this._computer.anchor && this._computer.anchor.equals(anchor)) {\n            // We have to start a hover operation at the exact same anchor as before, so no work is needed\n            return;\n        }\n        this._hoverOperation.cancel();\n        this._computer.anchor = anchor;\n        this._computer.shouldFocus = focus;\n        this._computer.source = source;\n        this._computer.insistOnKeepingHoverVisible = insistOnKeepingHoverVisible;\n        this._hoverOperation.start(mode);\n    }\n    _setCurrentResult(hoverResult) {\n        if (this._currentResult === hoverResult) {\n            // avoid updating the DOM to avoid resetting the user selection\n            return;\n        }\n        if (hoverResult && hoverResult.messages.length === 0) {\n            hoverResult = null;\n        }\n        this._currentResult = hoverResult;\n        if (this._currentResult) {\n            this._renderMessages(this._currentResult.anchor, this._currentResult.messages);\n        }\n        else {\n            this._widget.hide();\n        }\n    }\n    _addLoadingMessage(result) {\n        if (this._computer.anchor) {\n            for (const participant of this._participants) {\n                if (participant.createLoadingMessage) {\n                    const loadingMessage = participant.createLoadingMessage(this._computer.anchor);\n                    if (loadingMessage) {\n                        return result.slice(0).concat([loadingMessage]);\n                    }\n                }\n            }\n        }\n        return result;\n    }\n    _withResult(hoverResult) {\n        if (this._widget.position && this._currentResult && this._currentResult.isComplete) {\n            // The hover is visible with a previous complete result.\n            if (!hoverResult.isComplete) {\n                // Instead of rendering the new partial result, we wait for the result to be complete.\n                return;\n            }\n            if (this._computer.insistOnKeepingHoverVisible && hoverResult.messages.length === 0) {\n                // The hover would now hide normally, so we'll keep the previous messages\n                return;\n            }\n        }\n        this._setCurrentResult(hoverResult);\n    }\n    _renderMessages(anchor, messages) {\n        const { showAtPosition, showAtSecondaryPosition, highlightRange } = ContentHoverController_1.computeHoverRanges(this._editor, anchor.range, messages);\n        const disposables = new DisposableStore();\n        const statusBar = disposables.add(new EditorHoverStatusBar(this._keybindingService));\n        const fragment = document.createDocumentFragment();\n        let colorPicker = null;\n        const context = {\n            fragment,\n            statusBar,\n            setColorPicker: (widget) => colorPicker = widget,\n            onContentsChanged: () => this._doOnContentsChanged(),\n            setMinimumDimensions: (dimensions) => this._widget.setMinimumDimensions(dimensions),\n            hide: () => this.hide()\n        };\n        for (const participant of this._participants) {\n            const hoverParts = messages.filter(msg => msg.owner === participant);\n            if (hoverParts.length > 0) {\n                disposables.add(participant.renderHoverParts(context, hoverParts));\n            }\n        }\n        const isBeforeContent = messages.some(m => m.isBeforeContent);\n        if (statusBar.hasContent) {\n            fragment.appendChild(statusBar.hoverElement);\n        }\n        if (fragment.hasChildNodes()) {\n            if (highlightRange) {\n                const highlightDecoration = this._editor.createDecorationsCollection();\n                highlightDecoration.set([{\n                        range: highlightRange,\n                        options: ContentHoverController_1._DECORATION_OPTIONS\n                    }]);\n                disposables.add(toDisposable(() => {\n                    highlightDecoration.clear();\n                }));\n            }\n            this._widget.showAt(fragment, new ContentHoverVisibleData(anchor.initialMousePosX, anchor.initialMousePosY, colorPicker, showAtPosition, showAtSecondaryPosition, this._editor.getOption(60 /* EditorOption.hover */).above, this._computer.shouldFocus, this._computer.source, isBeforeContent, disposables));\n        }\n        else {\n            disposables.dispose();\n        }\n    }\n    _doOnContentsChanged() {\n        this._onContentsChanged.fire();\n        this._widget.onContentsChanged();\n    }\n    static computeHoverRanges(editor, anchorRange, messages) {\n        let startColumnBoundary = 1;\n        if (editor.hasModel()) {\n            // Ensure the range is on the current view line\n            const viewModel = editor._getViewModel();\n            const coordinatesConverter = viewModel.coordinatesConverter;\n            const anchorViewRange = coordinatesConverter.convertModelRangeToViewRange(anchorRange);\n            const anchorViewRangeStart = new Position(anchorViewRange.startLineNumber, viewModel.getLineMinColumn(anchorViewRange.startLineNumber));\n            startColumnBoundary = coordinatesConverter.convertViewPositionToModelPosition(anchorViewRangeStart).column;\n        }\n        // The anchor range is always on a single line\n        const anchorLineNumber = anchorRange.startLineNumber;\n        let renderStartColumn = anchorRange.startColumn;\n        let highlightRange = messages[0].range;\n        let forceShowAtRange = null;\n        for (const msg of messages) {\n            highlightRange = Range.plusRange(highlightRange, msg.range);\n            if (msg.range.startLineNumber === anchorLineNumber && msg.range.endLineNumber === anchorLineNumber) {\n                // this message has a range that is completely sitting on the line of the anchor\n                renderStartColumn = Math.max(Math.min(renderStartColumn, msg.range.startColumn), startColumnBoundary);\n            }\n            if (msg.forceShowAtRange) {\n                forceShowAtRange = msg.range;\n            }\n        }\n        const showAtPosition = forceShowAtRange ? forceShowAtRange.getStartPosition() : new Position(anchorLineNumber, anchorRange.startColumn);\n        const showAtSecondaryPosition = forceShowAtRange ? forceShowAtRange.getStartPosition() : new Position(anchorLineNumber, renderStartColumn);\n        return {\n            showAtPosition,\n            showAtSecondaryPosition,\n            highlightRange\n        };\n    }\n    showsOrWillShow(mouseEvent) {\n        if (this._widget.isResizing) {\n            return true;\n        }\n        const anchorCandidates = [];\n        for (const participant of this._participants) {\n            if (participant.suggestHoverAnchor) {\n                const anchor = participant.suggestHoverAnchor(mouseEvent);\n                if (anchor) {\n                    anchorCandidates.push(anchor);\n                }\n            }\n        }\n        const target = mouseEvent.target;\n        if (target.type === 6 /* MouseTargetType.CONTENT_TEXT */) {\n            anchorCandidates.push(new HoverRangeAnchor(0, target.range, mouseEvent.event.posx, mouseEvent.event.posy));\n        }\n        if (target.type === 7 /* MouseTargetType.CONTENT_EMPTY */) {\n            const epsilon = this._editor.getOption(50 /* EditorOption.fontInfo */).typicalHalfwidthCharacterWidth / 2;\n            if (!target.detail.isAfterLines\n                && typeof target.detail.horizontalDistanceToText === 'number'\n                && target.detail.horizontalDistanceToText < epsilon) {\n                // Let hover kick in even when the mouse is technically in the empty area after a line, given the distance is small enough\n                anchorCandidates.push(new HoverRangeAnchor(0, target.range, mouseEvent.event.posx, mouseEvent.event.posy));\n            }\n        }\n        if (anchorCandidates.length === 0) {\n            return this._startShowingOrUpdateHover(null, 0 /* HoverStartMode.Delayed */, 0 /* HoverStartSource.Mouse */, false, mouseEvent);\n        }\n        anchorCandidates.sort((a, b) => b.priority - a.priority);\n        return this._startShowingOrUpdateHover(anchorCandidates[0], 0 /* HoverStartMode.Delayed */, 0 /* HoverStartSource.Mouse */, false, mouseEvent);\n    }\n    startShowingAtRange(range, mode, source, focus) {\n        this._startShowingOrUpdateHover(new HoverRangeAnchor(0, range, undefined, undefined), mode, source, focus, null);\n    }\n    async updateMarkdownHoverVerbosityLevel(action, index, focus) {\n        var _a;\n        (_a = this._markdownHoverParticipant) === null || _a === void 0 ? void 0 : _a.updateMarkdownHoverVerbosityLevel(action, index, focus);\n    }\n    markdownHoverContentAtIndex(index) {\n        var _a, _b;\n        return (_b = (_a = this._markdownHoverParticipant) === null || _a === void 0 ? void 0 : _a.markdownHoverContentAtIndex(index)) !== null && _b !== void 0 ? _b : '';\n    }\n    doesMarkdownHoverAtIndexSupportVerbosityAction(index, action) {\n        var _a, _b;\n        return (_b = (_a = this._markdownHoverParticipant) === null || _a === void 0 ? void 0 : _a.doesMarkdownHoverAtIndexSupportVerbosityAction(index, action)) !== null && _b !== void 0 ? _b : false;\n    }\n    containsNode(node) {\n        return (node ? this._widget.getDomNode().contains(node) : false);\n    }\n    focus() {\n        this._widget.focus();\n    }\n    scrollUp() {\n        this._widget.scrollUp();\n    }\n    scrollDown() {\n        this._widget.scrollDown();\n    }\n    scrollLeft() {\n        this._widget.scrollLeft();\n    }\n    scrollRight() {\n        this._widget.scrollRight();\n    }\n    pageUp() {\n        this._widget.pageUp();\n    }\n    pageDown() {\n        this._widget.pageDown();\n    }\n    goToTop() {\n        this._widget.goToTop();\n    }\n    goToBottom() {\n        this._widget.goToBottom();\n    }\n    hide() {\n        this._computer.anchor = null;\n        this._hoverOperation.cancel();\n        this._setCurrentResult(null);\n    }\n    get isColorPickerVisible() {\n        return this._widget.isColorPickerVisible;\n    }\n    get isVisibleFromKeyboard() {\n        return this._widget.isVisibleFromKeyboard;\n    }\n    get isVisible() {\n        return this._widget.isVisible;\n    }\n    get isFocused() {\n        return this._widget.isFocused;\n    }\n    get isResizing() {\n        return this._widget.isResizing;\n    }\n    get widget() {\n        return this._widget;\n    }\n};\nContentHoverController._DECORATION_OPTIONS = ModelDecorationOptions.register({\n    description: 'content-hover-highlight',\n    className: 'hoverHighlight'\n});\nContentHoverController = ContentHoverController_1 = __decorate([\n    __param(1, IInstantiationService),\n    __param(2, IKeybindingService)\n], ContentHoverController);\nexport { ContentHoverController };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/hover/browser/contentHoverStatusBar.js",
    "content": "var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\n/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../../../base/browser/dom.js';\nimport { HoverAction } from '../../../../base/browser/ui/hover/hoverWidget.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nconst $ = dom.$;\nlet EditorHoverStatusBar = class EditorHoverStatusBar extends Disposable {\n    get hasContent() {\n        return this._hasContent;\n    }\n    constructor(_keybindingService) {\n        super();\n        this._keybindingService = _keybindingService;\n        this._hasContent = false;\n        this.hoverElement = $('div.hover-row.status-bar');\n        this.hoverElement.tabIndex = 0;\n        this.actionsElement = dom.append(this.hoverElement, $('div.actions'));\n    }\n    addAction(actionOptions) {\n        const keybinding = this._keybindingService.lookupKeybinding(actionOptions.commandId);\n        const keybindingLabel = keybinding ? keybinding.getLabel() : null;\n        this._hasContent = true;\n        return this._register(HoverAction.render(this.actionsElement, actionOptions, keybindingLabel));\n    }\n    append(element) {\n        const result = dom.append(this.actionsElement, element);\n        this._hasContent = true;\n        return result;\n    }\n};\nEditorHoverStatusBar = __decorate([\n    __param(0, IKeybindingService)\n], EditorHoverStatusBar);\nexport { EditorHoverStatusBar };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/hover/browser/contentHoverTypes.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class HoverResult {\n    constructor(anchor, messages, isComplete) {\n        this.anchor = anchor;\n        this.messages = messages;\n        this.isComplete = isComplete;\n    }\n    filter(anchor) {\n        const filteredMessages = this.messages.filter((m) => m.isValidForHoverAnchor(anchor));\n        if (filteredMessages.length === this.messages.length) {\n            return this;\n        }\n        return new FilteredHoverResult(this, this.anchor, filteredMessages, this.isComplete);\n    }\n}\nexport class FilteredHoverResult extends HoverResult {\n    constructor(original, anchor, messages, isComplete) {\n        super(anchor, messages, isComplete);\n        this.original = original;\n    }\n    filter(anchor) {\n        return this.original.filter(anchor);\n    }\n}\nexport class ContentHoverVisibleData {\n    constructor(initialMousePosX, initialMousePosY, colorPicker, showAtPosition, showAtSecondaryPosition, preferAbove, stoleFocus, source, isBeforeContent, disposables) {\n        this.initialMousePosX = initialMousePosX;\n        this.initialMousePosY = initialMousePosY;\n        this.colorPicker = colorPicker;\n        this.showAtPosition = showAtPosition;\n        this.showAtSecondaryPosition = showAtSecondaryPosition;\n        this.preferAbove = preferAbove;\n        this.stoleFocus = stoleFocus;\n        this.source = source;\n        this.isBeforeContent = isBeforeContent;\n        this.disposables = disposables;\n        this.closestMouseDistance = undefined;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/hover/browser/contentHoverWidget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar ContentHoverWidget_1;\nimport * as dom from '../../../../base/browser/dom.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { ResizableContentWidget } from './resizableContentWidget.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { IAccessibilityService } from '../../../../platform/accessibility/common/accessibility.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { getHoverAccessibleViewHint, HoverWidget } from '../../../../base/browser/ui/hover/hoverWidget.js';\nconst HORIZONTAL_SCROLLING_BY = 30;\nconst CONTAINER_HEIGHT_PADDING = 6;\nlet ContentHoverWidget = ContentHoverWidget_1 = class ContentHoverWidget extends ResizableContentWidget {\n    get isColorPickerVisible() {\n        var _a;\n        return Boolean((_a = this._visibleData) === null || _a === void 0 ? void 0 : _a.colorPicker);\n    }\n    get isVisibleFromKeyboard() {\n        var _a;\n        return (((_a = this._visibleData) === null || _a === void 0 ? void 0 : _a.source) === 1 /* HoverStartSource.Keyboard */);\n    }\n    get isVisible() {\n        var _a;\n        return (_a = this._hoverVisibleKey.get()) !== null && _a !== void 0 ? _a : false;\n    }\n    get isFocused() {\n        var _a;\n        return (_a = this._hoverFocusedKey.get()) !== null && _a !== void 0 ? _a : false;\n    }\n    constructor(editor, contextKeyService, _configurationService, _accessibilityService, _keybindingService) {\n        const minimumHeight = editor.getOption(67 /* EditorOption.lineHeight */) + 8;\n        const minimumWidth = 150;\n        const minimumSize = new dom.Dimension(minimumWidth, minimumHeight);\n        super(editor, minimumSize);\n        this._configurationService = _configurationService;\n        this._accessibilityService = _accessibilityService;\n        this._keybindingService = _keybindingService;\n        this._hover = this._register(new HoverWidget());\n        this._minimumSize = minimumSize;\n        this._hoverVisibleKey = EditorContextKeys.hoverVisible.bindTo(contextKeyService);\n        this._hoverFocusedKey = EditorContextKeys.hoverFocused.bindTo(contextKeyService);\n        dom.append(this._resizableNode.domNode, this._hover.containerDomNode);\n        this._resizableNode.domNode.style.zIndex = '50';\n        this._register(this._editor.onDidLayoutChange(() => {\n            if (this.isVisible) {\n                this._updateMaxDimensions();\n            }\n        }));\n        this._register(this._editor.onDidChangeConfiguration((e) => {\n            if (e.hasChanged(50 /* EditorOption.fontInfo */)) {\n                this._updateFont();\n            }\n        }));\n        const focusTracker = this._register(dom.trackFocus(this._resizableNode.domNode));\n        this._register(focusTracker.onDidFocus(() => {\n            this._hoverFocusedKey.set(true);\n        }));\n        this._register(focusTracker.onDidBlur(() => {\n            this._hoverFocusedKey.set(false);\n        }));\n        this._setHoverData(undefined);\n        this._editor.addContentWidget(this);\n    }\n    dispose() {\n        var _a;\n        super.dispose();\n        (_a = this._visibleData) === null || _a === void 0 ? void 0 : _a.disposables.dispose();\n        this._editor.removeContentWidget(this);\n    }\n    getId() {\n        return ContentHoverWidget_1.ID;\n    }\n    static _applyDimensions(container, width, height) {\n        const transformedWidth = typeof width === 'number' ? `${width}px` : width;\n        const transformedHeight = typeof height === 'number' ? `${height}px` : height;\n        container.style.width = transformedWidth;\n        container.style.height = transformedHeight;\n    }\n    _setContentsDomNodeDimensions(width, height) {\n        const contentsDomNode = this._hover.contentsDomNode;\n        return ContentHoverWidget_1._applyDimensions(contentsDomNode, width, height);\n    }\n    _setContainerDomNodeDimensions(width, height) {\n        const containerDomNode = this._hover.containerDomNode;\n        return ContentHoverWidget_1._applyDimensions(containerDomNode, width, height);\n    }\n    _setHoverWidgetDimensions(width, height) {\n        this._setContentsDomNodeDimensions(width, height);\n        this._setContainerDomNodeDimensions(width, height);\n        this._layoutContentWidget();\n    }\n    static _applyMaxDimensions(container, width, height) {\n        const transformedWidth = typeof width === 'number' ? `${width}px` : width;\n        const transformedHeight = typeof height === 'number' ? `${height}px` : height;\n        container.style.maxWidth = transformedWidth;\n        container.style.maxHeight = transformedHeight;\n    }\n    _setHoverWidgetMaxDimensions(width, height) {\n        ContentHoverWidget_1._applyMaxDimensions(this._hover.contentsDomNode, width, height);\n        ContentHoverWidget_1._applyMaxDimensions(this._hover.containerDomNode, width, height);\n        this._hover.containerDomNode.style.setProperty('--vscode-hover-maxWidth', typeof width === 'number' ? `${width}px` : width);\n        this._layoutContentWidget();\n    }\n    _setAdjustedHoverWidgetDimensions(size) {\n        this._setHoverWidgetMaxDimensions('none', 'none');\n        const width = size.width;\n        const height = size.height;\n        this._setHoverWidgetDimensions(width, height);\n    }\n    _updateResizableNodeMaxDimensions() {\n        var _a, _b;\n        const maxRenderingWidth = (_a = this._findMaximumRenderingWidth()) !== null && _a !== void 0 ? _a : Infinity;\n        const maxRenderingHeight = (_b = this._findMaximumRenderingHeight()) !== null && _b !== void 0 ? _b : Infinity;\n        this._resizableNode.maxSize = new dom.Dimension(maxRenderingWidth, maxRenderingHeight);\n        this._setHoverWidgetMaxDimensions(maxRenderingWidth, maxRenderingHeight);\n    }\n    _resize(size) {\n        var _a, _b;\n        ContentHoverWidget_1._lastDimensions = new dom.Dimension(size.width, size.height);\n        this._setAdjustedHoverWidgetDimensions(size);\n        this._resizableNode.layout(size.height, size.width);\n        this._updateResizableNodeMaxDimensions();\n        this._hover.scrollbar.scanDomNode();\n        this._editor.layoutContentWidget(this);\n        (_b = (_a = this._visibleData) === null || _a === void 0 ? void 0 : _a.colorPicker) === null || _b === void 0 ? void 0 : _b.layout();\n    }\n    _findAvailableSpaceVertically() {\n        var _a;\n        const position = (_a = this._visibleData) === null || _a === void 0 ? void 0 : _a.showAtPosition;\n        if (!position) {\n            return;\n        }\n        return this._positionPreference === 1 /* ContentWidgetPositionPreference.ABOVE */ ?\n            this._availableVerticalSpaceAbove(position)\n            : this._availableVerticalSpaceBelow(position);\n    }\n    _findMaximumRenderingHeight() {\n        const availableSpace = this._findAvailableSpaceVertically();\n        if (!availableSpace) {\n            return;\n        }\n        // Padding needed in order to stop the resizing down to a smaller height\n        let maximumHeight = CONTAINER_HEIGHT_PADDING;\n        Array.from(this._hover.contentsDomNode.children).forEach((hoverPart) => {\n            maximumHeight += hoverPart.clientHeight;\n        });\n        return Math.min(availableSpace, maximumHeight);\n    }\n    _isHoverTextOverflowing() {\n        // To find out if the text is overflowing, we will disable wrapping, check the widths, and then re-enable wrapping\n        this._hover.containerDomNode.style.setProperty('--vscode-hover-whiteSpace', 'nowrap');\n        this._hover.containerDomNode.style.setProperty('--vscode-hover-sourceWhiteSpace', 'nowrap');\n        const overflowing = Array.from(this._hover.contentsDomNode.children).some((hoverElement) => {\n            return hoverElement.scrollWidth > hoverElement.clientWidth;\n        });\n        this._hover.containerDomNode.style.removeProperty('--vscode-hover-whiteSpace');\n        this._hover.containerDomNode.style.removeProperty('--vscode-hover-sourceWhiteSpace');\n        return overflowing;\n    }\n    _findMaximumRenderingWidth() {\n        if (!this._editor || !this._editor.hasModel()) {\n            return;\n        }\n        const overflowing = this._isHoverTextOverflowing();\n        const initialWidth = (typeof this._contentWidth === 'undefined'\n            ? 0\n            : this._contentWidth - 2 // - 2 for the borders\n        );\n        if (overflowing || this._hover.containerDomNode.clientWidth < initialWidth) {\n            const bodyBoxWidth = dom.getClientArea(this._hover.containerDomNode.ownerDocument.body).width;\n            const horizontalPadding = 14;\n            return bodyBoxWidth - horizontalPadding;\n        }\n        else {\n            return this._hover.containerDomNode.clientWidth + 2;\n        }\n    }\n    isMouseGettingCloser(posx, posy) {\n        if (!this._visibleData) {\n            return false;\n        }\n        if (typeof this._visibleData.initialMousePosX === 'undefined'\n            || typeof this._visibleData.initialMousePosY === 'undefined') {\n            this._visibleData.initialMousePosX = posx;\n            this._visibleData.initialMousePosY = posy;\n            return false;\n        }\n        const widgetRect = dom.getDomNodePagePosition(this.getDomNode());\n        if (typeof this._visibleData.closestMouseDistance === 'undefined') {\n            this._visibleData.closestMouseDistance = computeDistanceFromPointToRectangle(this._visibleData.initialMousePosX, this._visibleData.initialMousePosY, widgetRect.left, widgetRect.top, widgetRect.width, widgetRect.height);\n        }\n        const distance = computeDistanceFromPointToRectangle(posx, posy, widgetRect.left, widgetRect.top, widgetRect.width, widgetRect.height);\n        if (distance > this._visibleData.closestMouseDistance + 4 /* tolerance of 4 pixels */) {\n            // The mouse is getting farther away\n            return false;\n        }\n        this._visibleData.closestMouseDistance = Math.min(this._visibleData.closestMouseDistance, distance);\n        return true;\n    }\n    _setHoverData(hoverData) {\n        var _a;\n        (_a = this._visibleData) === null || _a === void 0 ? void 0 : _a.disposables.dispose();\n        this._visibleData = hoverData;\n        this._hoverVisibleKey.set(!!hoverData);\n        this._hover.containerDomNode.classList.toggle('hidden', !hoverData);\n    }\n    _updateFont() {\n        const { fontSize, lineHeight } = this._editor.getOption(50 /* EditorOption.fontInfo */);\n        const contentsDomNode = this._hover.contentsDomNode;\n        contentsDomNode.style.fontSize = `${fontSize}px`;\n        contentsDomNode.style.lineHeight = `${lineHeight / fontSize}`;\n        const codeClasses = Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName('code'));\n        codeClasses.forEach(node => this._editor.applyFontInfo(node));\n    }\n    _updateContent(node) {\n        const contentsDomNode = this._hover.contentsDomNode;\n        contentsDomNode.style.paddingBottom = '';\n        contentsDomNode.textContent = '';\n        contentsDomNode.appendChild(node);\n    }\n    _layoutContentWidget() {\n        this._editor.layoutContentWidget(this);\n        this._hover.onContentsChanged();\n    }\n    _updateMaxDimensions() {\n        const height = Math.max(this._editor.getLayoutInfo().height / 4, 250, ContentHoverWidget_1._lastDimensions.height);\n        const width = Math.max(this._editor.getLayoutInfo().width * 0.66, 500, ContentHoverWidget_1._lastDimensions.width);\n        this._setHoverWidgetMaxDimensions(width, height);\n    }\n    _render(node, hoverData) {\n        this._setHoverData(hoverData);\n        this._updateFont();\n        this._updateContent(node);\n        this._updateMaxDimensions();\n        this.onContentsChanged();\n        // Simply force a synchronous render on the editor\n        // such that the widget does not really render with left = '0px'\n        this._editor.render();\n    }\n    getPosition() {\n        var _a;\n        if (!this._visibleData) {\n            return null;\n        }\n        return {\n            position: this._visibleData.showAtPosition,\n            secondaryPosition: this._visibleData.showAtSecondaryPosition,\n            positionAffinity: this._visibleData.isBeforeContent ? 3 /* PositionAffinity.LeftOfInjectedText */ : undefined,\n            preference: [(_a = this._positionPreference) !== null && _a !== void 0 ? _a : 1 /* ContentWidgetPositionPreference.ABOVE */]\n        };\n    }\n    showAt(node, hoverData) {\n        var _a, _b, _c, _d;\n        if (!this._editor || !this._editor.hasModel()) {\n            return;\n        }\n        this._render(node, hoverData);\n        const widgetHeight = dom.getTotalHeight(this._hover.containerDomNode);\n        const widgetPosition = hoverData.showAtPosition;\n        this._positionPreference = (_a = this._findPositionPreference(widgetHeight, widgetPosition)) !== null && _a !== void 0 ? _a : 1 /* ContentWidgetPositionPreference.ABOVE */;\n        // See https://github.com/microsoft/vscode/issues/140339\n        // TODO: Doing a second layout of the hover after force rendering the editor\n        this.onContentsChanged();\n        if (hoverData.stoleFocus) {\n            this._hover.containerDomNode.focus();\n        }\n        (_b = hoverData.colorPicker) === null || _b === void 0 ? void 0 : _b.layout();\n        // The aria label overrides the label, so if we add to it, add the contents of the hover\n        const hoverFocused = this._hover.containerDomNode.ownerDocument.activeElement === this._hover.containerDomNode;\n        const accessibleViewHint = hoverFocused && getHoverAccessibleViewHint(this._configurationService.getValue('accessibility.verbosity.hover') === true && this._accessibilityService.isScreenReaderOptimized(), (_d = (_c = this._keybindingService.lookupKeybinding('editor.action.accessibleView')) === null || _c === void 0 ? void 0 : _c.getAriaLabel()) !== null && _d !== void 0 ? _d : '');\n        if (accessibleViewHint) {\n            this._hover.contentsDomNode.ariaLabel = this._hover.contentsDomNode.textContent + ', ' + accessibleViewHint;\n        }\n    }\n    hide() {\n        if (!this._visibleData) {\n            return;\n        }\n        const stoleFocus = this._visibleData.stoleFocus || this._hoverFocusedKey.get();\n        this._setHoverData(undefined);\n        this._resizableNode.maxSize = new dom.Dimension(Infinity, Infinity);\n        this._resizableNode.clearSashHoverState();\n        this._hoverFocusedKey.set(false);\n        this._editor.layoutContentWidget(this);\n        if (stoleFocus) {\n            this._editor.focus();\n        }\n    }\n    _removeConstraintsRenderNormally() {\n        // Added because otherwise the initial size of the hover content is smaller than should be\n        const layoutInfo = this._editor.getLayoutInfo();\n        this._resizableNode.layout(layoutInfo.height, layoutInfo.width);\n        this._setHoverWidgetDimensions('auto', 'auto');\n    }\n    setMinimumDimensions(dimensions) {\n        // We combine the new minimum dimensions with the previous ones\n        this._minimumSize = new dom.Dimension(Math.max(this._minimumSize.width, dimensions.width), Math.max(this._minimumSize.height, dimensions.height));\n        this._updateMinimumWidth();\n    }\n    _updateMinimumWidth() {\n        const width = (typeof this._contentWidth === 'undefined'\n            ? this._minimumSize.width\n            : Math.min(this._contentWidth, this._minimumSize.width));\n        // We want to avoid that the hover is artificially large, so we use the content width as minimum width\n        this._resizableNode.minSize = new dom.Dimension(width, this._minimumSize.height);\n    }\n    onContentsChanged() {\n        var _a;\n        this._removeConstraintsRenderNormally();\n        const containerDomNode = this._hover.containerDomNode;\n        let height = dom.getTotalHeight(containerDomNode);\n        let width = dom.getTotalWidth(containerDomNode);\n        this._resizableNode.layout(height, width);\n        this._setHoverWidgetDimensions(width, height);\n        height = dom.getTotalHeight(containerDomNode);\n        width = dom.getTotalWidth(containerDomNode);\n        this._contentWidth = width;\n        this._updateMinimumWidth();\n        this._resizableNode.layout(height, width);\n        if ((_a = this._visibleData) === null || _a === void 0 ? void 0 : _a.showAtPosition) {\n            const widgetHeight = dom.getTotalHeight(this._hover.containerDomNode);\n            this._positionPreference = this._findPositionPreference(widgetHeight, this._visibleData.showAtPosition);\n        }\n        this._layoutContentWidget();\n    }\n    focus() {\n        this._hover.containerDomNode.focus();\n    }\n    scrollUp() {\n        const scrollTop = this._hover.scrollbar.getScrollPosition().scrollTop;\n        const fontInfo = this._editor.getOption(50 /* EditorOption.fontInfo */);\n        this._hover.scrollbar.setScrollPosition({ scrollTop: scrollTop - fontInfo.lineHeight });\n    }\n    scrollDown() {\n        const scrollTop = this._hover.scrollbar.getScrollPosition().scrollTop;\n        const fontInfo = this._editor.getOption(50 /* EditorOption.fontInfo */);\n        this._hover.scrollbar.setScrollPosition({ scrollTop: scrollTop + fontInfo.lineHeight });\n    }\n    scrollLeft() {\n        const scrollLeft = this._hover.scrollbar.getScrollPosition().scrollLeft;\n        this._hover.scrollbar.setScrollPosition({ scrollLeft: scrollLeft - HORIZONTAL_SCROLLING_BY });\n    }\n    scrollRight() {\n        const scrollLeft = this._hover.scrollbar.getScrollPosition().scrollLeft;\n        this._hover.scrollbar.setScrollPosition({ scrollLeft: scrollLeft + HORIZONTAL_SCROLLING_BY });\n    }\n    pageUp() {\n        const scrollTop = this._hover.scrollbar.getScrollPosition().scrollTop;\n        const scrollHeight = this._hover.scrollbar.getScrollDimensions().height;\n        this._hover.scrollbar.setScrollPosition({ scrollTop: scrollTop - scrollHeight });\n    }\n    pageDown() {\n        const scrollTop = this._hover.scrollbar.getScrollPosition().scrollTop;\n        const scrollHeight = this._hover.scrollbar.getScrollDimensions().height;\n        this._hover.scrollbar.setScrollPosition({ scrollTop: scrollTop + scrollHeight });\n    }\n    goToTop() {\n        this._hover.scrollbar.setScrollPosition({ scrollTop: 0 });\n    }\n    goToBottom() {\n        this._hover.scrollbar.setScrollPosition({ scrollTop: this._hover.scrollbar.getScrollDimensions().scrollHeight });\n    }\n};\nContentHoverWidget.ID = 'editor.contrib.resizableContentHoverWidget';\nContentHoverWidget._lastDimensions = new dom.Dimension(0, 0);\nContentHoverWidget = ContentHoverWidget_1 = __decorate([\n    __param(1, IContextKeyService),\n    __param(2, IConfigurationService),\n    __param(3, IAccessibilityService),\n    __param(4, IKeybindingService)\n], ContentHoverWidget);\nexport { ContentHoverWidget };\nfunction computeDistanceFromPointToRectangle(pointX, pointY, left, top, width, height) {\n    const x = (left + width / 2); // x center of rectangle\n    const y = (top + height / 2); // y center of rectangle\n    const dx = Math.max(Math.abs(pointX - x) - width / 2, 0);\n    const dy = Math.max(Math.abs(pointY - y) - height / 2, 0);\n    return Math.sqrt(dx * dx + dy * dy);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/hover/browser/getHover.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { AsyncIterableObject } from '../../../../base/common/async.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { registerModelAndPositionCommand } from '../../../browser/editorExtensions.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nexport class HoverProviderResult {\n    constructor(provider, hover, ordinal) {\n        this.provider = provider;\n        this.hover = hover;\n        this.ordinal = ordinal;\n    }\n}\n/**\n * Does not throw or return a rejected promise (returns undefined instead).\n */\nasync function executeProvider(provider, ordinal, model, position, token) {\n    const result = await Promise\n        .resolve(provider.provideHover(model, position, token))\n        .catch(onUnexpectedExternalError);\n    if (!result || !isValid(result)) {\n        return undefined;\n    }\n    return new HoverProviderResult(provider, result, ordinal);\n}\nexport function getHoverProviderResultsAsAsyncIterable(registry, model, position, token) {\n    const providers = registry.ordered(model);\n    const promises = providers.map((provider, index) => executeProvider(provider, index, model, position, token));\n    return AsyncIterableObject.fromPromises(promises).coalesce();\n}\nexport function getHoversPromise(registry, model, position, token) {\n    return getHoverProviderResultsAsAsyncIterable(registry, model, position, token).map(item => item.hover).toPromise();\n}\nregisterModelAndPositionCommand('_executeHoverProvider', (accessor, model, position) => {\n    const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n    return getHoversPromise(languageFeaturesService.hoverProvider, model, position, CancellationToken.None);\n});\nfunction isValid(result) {\n    const hasRange = (typeof result.range !== 'undefined');\n    const hasHtmlContent = typeof result.contents !== 'undefined' && result.contents && result.contents.length > 0;\n    return hasRange && hasHtmlContent;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/hover/browser/hover.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .hoverHighlight {\n\tbackground-color: var(--vscode-editor-hoverHighlightBackground);\n}\n\n.monaco-editor .monaco-hover-content {\n\tpadding-right: 2px;\n\tpadding-bottom: 2px;\n\tbox-sizing: border-box;\n}\n\n.monaco-editor .monaco-hover {\n\tcolor: var(--vscode-editorHoverWidget-foreground);\n\tbackground-color: var(--vscode-editorHoverWidget-background);\n\tborder: 1px solid var(--vscode-editorHoverWidget-border);\n\tborder-radius: 3px;\n}\n\n.monaco-editor .monaco-hover a {\n\tcolor: var(--vscode-textLink-foreground);\n}\n\n.monaco-editor .monaco-hover a:hover {\n\tcolor: var(--vscode-textLink-activeForeground);\n}\n\n.monaco-editor .monaco-hover .hover-row {\n\tdisplay: flex;\n}\n\n.monaco-editor .monaco-hover .hover-row .hover-row-contents {\n\tmin-width:0;\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.monaco-editor .monaco-hover .hover-row .verbosity-actions {\n\tdisplay: flex;\n\tflex-direction: column;\n\tpadding-left: 5px;\n\tpadding-right: 5px;\n\tjustify-content: end;\n\tborder-right: 1px solid var(--vscode-editorHoverWidget-border);\n}\n\n.monaco-editor .monaco-hover .hover-row .verbosity-actions .codicon {\n\tcursor: pointer;\n\tfont-size: 11px;\n}\n\n.monaco-editor .monaco-hover .hover-row .verbosity-actions .codicon.enabled {\n\tcolor: var(--vscode-textLink-foreground);\n}\n\n.monaco-editor .monaco-hover .hover-row .verbosity-actions .codicon.disabled {\n\topacity: 0.6;\n}\n\n.monaco-editor .monaco-hover .hover-row .actions {\n\tbackground-color: var(--vscode-editorHoverWidget-statusBarBackground);\n}\n\n.monaco-editor .monaco-hover code {\n\tbackground-color: var(--vscode-textCodeBlock-background);\n}\n\n\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/hover/browser/hoverAccessibleViews.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { localize } from '../../../../nls.js';\nimport { HoverVerbosityAction } from '../../../common/languages.js';\nimport { DECREASE_HOVER_VERBOSITY_ACTION_ID, INCREASE_HOVER_VERBOSITY_ACTION_ID } from './hoverActionIds.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nvar HoverAccessibilityHelpNLS;\n(function (HoverAccessibilityHelpNLS) {\n    HoverAccessibilityHelpNLS.intro = localize('intro', \"Focus on the hover widget to cycle through the hover parts with the Tab key.\");\n    HoverAccessibilityHelpNLS.increaseVerbosity = localize('increaseVerbosity', \"- The focused hover part verbosity level can be increased with the Increase Hover Verbosity command<keybinding:{0}>.\", INCREASE_HOVER_VERBOSITY_ACTION_ID);\n    HoverAccessibilityHelpNLS.decreaseVerbosity = localize('decreaseVerbosity', \"- The focused hover part verbosity level can be decreased with the Decrease Hover Verbosity command<keybinding:{0}>.\", DECREASE_HOVER_VERBOSITY_ACTION_ID);\n    HoverAccessibilityHelpNLS.hoverContent = localize('contentHover', \"The last focused hover content is the following.\");\n})(HoverAccessibilityHelpNLS || (HoverAccessibilityHelpNLS = {}));\nexport class HoverAccessibleView {\n    dispose() {\n        var _a;\n        (_a = this._provider) === null || _a === void 0 ? void 0 : _a.dispose();\n    }\n}\nexport class HoverAccessibilityHelp {\n    dispose() {\n        var _a;\n        (_a = this._provider) === null || _a === void 0 ? void 0 : _a.dispose();\n    }\n}\nclass BaseHoverAccessibleViewProvider extends Disposable {\n    constructor(_hoverController) {\n        super();\n        this._hoverController = _hoverController;\n        this._markdownHoverFocusedIndex = -1;\n    }\n}\nexport class HoverAccessibilityHelpProvider extends BaseHoverAccessibleViewProvider {\n    constructor(hoverController) {\n        super(hoverController);\n        this.options = { type: \"help\" /* AccessibleViewType.Help */ };\n    }\n    provideContentAtIndex(index) {\n        const content = [];\n        content.push(HoverAccessibilityHelpNLS.intro);\n        content.push(...this._descriptionsOfVerbosityActionsForIndex(index));\n        content.push(...this._descriptionOfFocusedMarkdownHoverAtIndex(index));\n        return content.join('\\n');\n    }\n    _descriptionsOfVerbosityActionsForIndex(index) {\n        const content = [];\n        const descriptionForIncreaseAction = this._descriptionOfVerbosityActionForIndex(HoverVerbosityAction.Increase, index);\n        if (descriptionForIncreaseAction !== undefined) {\n            content.push(descriptionForIncreaseAction);\n        }\n        const descriptionForDecreaseAction = this._descriptionOfVerbosityActionForIndex(HoverVerbosityAction.Decrease, index);\n        if (descriptionForDecreaseAction !== undefined) {\n            content.push(descriptionForDecreaseAction);\n        }\n        return content;\n    }\n    _descriptionOfVerbosityActionForIndex(action, index) {\n        const isActionSupported = this._hoverController.doesMarkdownHoverAtIndexSupportVerbosityAction(index, action);\n        if (!isActionSupported) {\n            return;\n        }\n        switch (action) {\n            case HoverVerbosityAction.Increase:\n                return HoverAccessibilityHelpNLS.increaseVerbosity;\n            case HoverVerbosityAction.Decrease:\n                return HoverAccessibilityHelpNLS.decreaseVerbosity;\n        }\n    }\n    _descriptionOfFocusedMarkdownHoverAtIndex(index) {\n        const content = [];\n        const hoverContent = this._hoverController.markdownHoverContentAtIndex(index);\n        if (hoverContent) {\n            content.push('\\n' + HoverAccessibilityHelpNLS.hoverContent);\n            content.push('\\n' + hoverContent);\n        }\n        return content;\n    }\n}\nexport class HoverAccessibleViewProvider extends BaseHoverAccessibleViewProvider {\n    constructor(_keybindingService, _editor, hoverController) {\n        super(hoverController);\n        this._keybindingService = _keybindingService;\n        this._editor = _editor;\n        this.options = { type: \"view\" /* AccessibleViewType.View */ };\n        this._initializeOptions(this._editor, hoverController);\n    }\n    _initializeOptions(editor, hoverController) {\n        var _a;\n        const helpProvider = this._register(new HoverAccessibilityHelpProvider(hoverController));\n        this.options.language = (_a = editor.getModel()) === null || _a === void 0 ? void 0 : _a.getLanguageId();\n        this.options.customHelp = () => { return helpProvider.provideContentAtIndex(this._markdownHoverFocusedIndex); };\n    }\n}\nexport class ExtHoverAccessibleView {\n    dispose() { }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/hover/browser/hoverActionIds.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../../nls.js';\nexport const SHOW_OR_FOCUS_HOVER_ACTION_ID = 'editor.action.showHover';\nexport const SHOW_DEFINITION_PREVIEW_HOVER_ACTION_ID = 'editor.action.showDefinitionPreviewHover';\nexport const SCROLL_UP_HOVER_ACTION_ID = 'editor.action.scrollUpHover';\nexport const SCROLL_DOWN_HOVER_ACTION_ID = 'editor.action.scrollDownHover';\nexport const SCROLL_LEFT_HOVER_ACTION_ID = 'editor.action.scrollLeftHover';\nexport const SCROLL_RIGHT_HOVER_ACTION_ID = 'editor.action.scrollRightHover';\nexport const PAGE_UP_HOVER_ACTION_ID = 'editor.action.pageUpHover';\nexport const PAGE_DOWN_HOVER_ACTION_ID = 'editor.action.pageDownHover';\nexport const GO_TO_TOP_HOVER_ACTION_ID = 'editor.action.goToTopHover';\nexport const GO_TO_BOTTOM_HOVER_ACTION_ID = 'editor.action.goToBottomHover';\nexport const INCREASE_HOVER_VERBOSITY_ACTION_ID = 'editor.action.increaseHoverVerbosityLevel';\nexport const INCREASE_HOVER_VERBOSITY_ACTION_LABEL = nls.localize({ key: 'increaseHoverVerbosityLevel', comment: ['Label for action that will increase the hover verbosity level.'] }, \"Increase Hover Verbosity Level\");\nexport const DECREASE_HOVER_VERBOSITY_ACTION_ID = 'editor.action.decreaseHoverVerbosityLevel';\nexport const DECREASE_HOVER_VERBOSITY_ACTION_LABEL = nls.localize({ key: 'decreaseHoverVerbosityLevel', comment: ['Label for action that will decrease the hover verbosity level.'] }, \"Decrease Hover Verbosity Level\");\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/hover/browser/hoverActions.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { DECREASE_HOVER_VERBOSITY_ACTION_ID, DECREASE_HOVER_VERBOSITY_ACTION_LABEL, GO_TO_BOTTOM_HOVER_ACTION_ID, GO_TO_TOP_HOVER_ACTION_ID, INCREASE_HOVER_VERBOSITY_ACTION_ID, INCREASE_HOVER_VERBOSITY_ACTION_LABEL, PAGE_DOWN_HOVER_ACTION_ID, PAGE_UP_HOVER_ACTION_ID, SCROLL_DOWN_HOVER_ACTION_ID, SCROLL_LEFT_HOVER_ACTION_ID, SCROLL_RIGHT_HOVER_ACTION_ID, SCROLL_UP_HOVER_ACTION_ID, SHOW_DEFINITION_PREVIEW_HOVER_ACTION_ID, SHOW_OR_FOCUS_HOVER_ACTION_ID } from './hoverActionIds.js';\nimport { KeyChord } from '../../../../base/common/keyCodes.js';\nimport { EditorAction } from '../../../browser/editorExtensions.js';\nimport { Range } from '../../../common/core/range.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { GotoDefinitionAtPositionEditorContribution } from '../../gotoSymbol/browser/link/goToDefinitionAtPosition.js';\nimport { HoverController } from './hoverController.js';\nimport { HoverVerbosityAction } from '../../../common/languages.js';\nimport * as nls from '../../../../nls.js';\nimport './hover.css';\nvar HoverFocusBehavior;\n(function (HoverFocusBehavior) {\n    HoverFocusBehavior[\"NoAutoFocus\"] = \"noAutoFocus\";\n    HoverFocusBehavior[\"FocusIfVisible\"] = \"focusIfVisible\";\n    HoverFocusBehavior[\"AutoFocusImmediately\"] = \"autoFocusImmediately\";\n})(HoverFocusBehavior || (HoverFocusBehavior = {}));\nexport class ShowOrFocusHoverAction extends EditorAction {\n    constructor() {\n        super({\n            id: SHOW_OR_FOCUS_HOVER_ACTION_ID,\n            label: nls.localize({\n                key: 'showOrFocusHover',\n                comment: [\n                    'Label for action that will trigger the showing/focusing of a hover in the editor.',\n                    'If the hover is not visible, it will show the hover.',\n                    'This allows for users to show the hover without using the mouse.'\n                ]\n            }, \"Show or Focus Hover\"),\n            metadata: {\n                description: nls.localize2('showOrFocusHoverDescription', 'Show or focus the editor hover which shows documentation, references, and other content for a symbol at the current cursor position.'),\n                args: [{\n                        name: 'args',\n                        schema: {\n                            type: 'object',\n                            properties: {\n                                'focus': {\n                                    description: 'Controls if and when the hover should take focus upon being triggered by this action.',\n                                    enum: [HoverFocusBehavior.NoAutoFocus, HoverFocusBehavior.FocusIfVisible, HoverFocusBehavior.AutoFocusImmediately],\n                                    enumDescriptions: [\n                                        nls.localize('showOrFocusHover.focus.noAutoFocus', 'The hover will not automatically take focus.'),\n                                        nls.localize('showOrFocusHover.focus.focusIfVisible', 'The hover will take focus only if it is already visible.'),\n                                        nls.localize('showOrFocusHover.focus.autoFocusImmediately', 'The hover will automatically take focus when it appears.'),\n                                    ],\n                                    default: HoverFocusBehavior.FocusIfVisible,\n                                }\n                            },\n                        }\n                    }]\n            },\n            alias: 'Show or Focus Hover',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 39 /* KeyCode.KeyI */),\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    run(accessor, editor, args) {\n        if (!editor.hasModel()) {\n            return;\n        }\n        const controller = HoverController.get(editor);\n        if (!controller) {\n            return;\n        }\n        const focusArgument = args === null || args === void 0 ? void 0 : args.focus;\n        let focusOption = HoverFocusBehavior.FocusIfVisible;\n        if (Object.values(HoverFocusBehavior).includes(focusArgument)) {\n            focusOption = focusArgument;\n        }\n        else if (typeof focusArgument === 'boolean' && focusArgument) {\n            focusOption = HoverFocusBehavior.AutoFocusImmediately;\n        }\n        const showContentHover = (focus) => {\n            const position = editor.getPosition();\n            const range = new Range(position.lineNumber, position.column, position.lineNumber, position.column);\n            controller.showContentHover(range, 1 /* HoverStartMode.Immediate */, 1 /* HoverStartSource.Keyboard */, focus);\n        };\n        const accessibilitySupportEnabled = editor.getOption(2 /* EditorOption.accessibilitySupport */) === 2 /* AccessibilitySupport.Enabled */;\n        if (controller.isHoverVisible) {\n            if (focusOption !== HoverFocusBehavior.NoAutoFocus) {\n                controller.focus();\n            }\n            else {\n                showContentHover(accessibilitySupportEnabled);\n            }\n        }\n        else {\n            showContentHover(accessibilitySupportEnabled || focusOption === HoverFocusBehavior.AutoFocusImmediately);\n        }\n    }\n}\nexport class ShowDefinitionPreviewHoverAction extends EditorAction {\n    constructor() {\n        super({\n            id: SHOW_DEFINITION_PREVIEW_HOVER_ACTION_ID,\n            label: nls.localize({\n                key: 'showDefinitionPreviewHover',\n                comment: [\n                    'Label for action that will trigger the showing of definition preview hover in the editor.',\n                    'This allows for users to show the definition preview hover without using the mouse.'\n                ]\n            }, \"Show Definition Preview Hover\"),\n            alias: 'Show Definition Preview Hover',\n            precondition: undefined,\n            metadata: {\n                description: nls.localize2('showDefinitionPreviewHoverDescription', 'Show the definition preview hover in the editor.'),\n            },\n        });\n    }\n    run(accessor, editor) {\n        const controller = HoverController.get(editor);\n        if (!controller) {\n            return;\n        }\n        const position = editor.getPosition();\n        if (!position) {\n            return;\n        }\n        const range = new Range(position.lineNumber, position.column, position.lineNumber, position.column);\n        const goto = GotoDefinitionAtPositionEditorContribution.get(editor);\n        if (!goto) {\n            return;\n        }\n        const promise = goto.startFindDefinitionFromCursor(position);\n        promise.then(() => {\n            controller.showContentHover(range, 1 /* HoverStartMode.Immediate */, 1 /* HoverStartSource.Keyboard */, true);\n        });\n    }\n}\nexport class ScrollUpHoverAction extends EditorAction {\n    constructor() {\n        super({\n            id: SCROLL_UP_HOVER_ACTION_ID,\n            label: nls.localize({\n                key: 'scrollUpHover',\n                comment: [\n                    'Action that allows to scroll up in the hover widget with the up arrow when the hover widget is focused.'\n                ]\n            }, \"Scroll Up Hover\"),\n            alias: 'Scroll Up Hover',\n            precondition: EditorContextKeys.hoverFocused,\n            kbOpts: {\n                kbExpr: EditorContextKeys.hoverFocused,\n                primary: 16 /* KeyCode.UpArrow */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            metadata: {\n                description: nls.localize2('scrollUpHoverDescription', 'Scroll up the editor hover.')\n            },\n        });\n    }\n    run(accessor, editor) {\n        const controller = HoverController.get(editor);\n        if (!controller) {\n            return;\n        }\n        controller.scrollUp();\n    }\n}\nexport class ScrollDownHoverAction extends EditorAction {\n    constructor() {\n        super({\n            id: SCROLL_DOWN_HOVER_ACTION_ID,\n            label: nls.localize({\n                key: 'scrollDownHover',\n                comment: [\n                    'Action that allows to scroll down in the hover widget with the up arrow when the hover widget is focused.'\n                ]\n            }, \"Scroll Down Hover\"),\n            alias: 'Scroll Down Hover',\n            precondition: EditorContextKeys.hoverFocused,\n            kbOpts: {\n                kbExpr: EditorContextKeys.hoverFocused,\n                primary: 18 /* KeyCode.DownArrow */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            metadata: {\n                description: nls.localize2('scrollDownHoverDescription', 'Scroll down the editor hover.'),\n            },\n        });\n    }\n    run(accessor, editor) {\n        const controller = HoverController.get(editor);\n        if (!controller) {\n            return;\n        }\n        controller.scrollDown();\n    }\n}\nexport class ScrollLeftHoverAction extends EditorAction {\n    constructor() {\n        super({\n            id: SCROLL_LEFT_HOVER_ACTION_ID,\n            label: nls.localize({\n                key: 'scrollLeftHover',\n                comment: [\n                    'Action that allows to scroll left in the hover widget with the left arrow when the hover widget is focused.'\n                ]\n            }, \"Scroll Left Hover\"),\n            alias: 'Scroll Left Hover',\n            precondition: EditorContextKeys.hoverFocused,\n            kbOpts: {\n                kbExpr: EditorContextKeys.hoverFocused,\n                primary: 15 /* KeyCode.LeftArrow */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            metadata: {\n                description: nls.localize2('scrollLeftHoverDescription', 'Scroll left the editor hover.'),\n            },\n        });\n    }\n    run(accessor, editor) {\n        const controller = HoverController.get(editor);\n        if (!controller) {\n            return;\n        }\n        controller.scrollLeft();\n    }\n}\nexport class ScrollRightHoverAction extends EditorAction {\n    constructor() {\n        super({\n            id: SCROLL_RIGHT_HOVER_ACTION_ID,\n            label: nls.localize({\n                key: 'scrollRightHover',\n                comment: [\n                    'Action that allows to scroll right in the hover widget with the right arrow when the hover widget is focused.'\n                ]\n            }, \"Scroll Right Hover\"),\n            alias: 'Scroll Right Hover',\n            precondition: EditorContextKeys.hoverFocused,\n            kbOpts: {\n                kbExpr: EditorContextKeys.hoverFocused,\n                primary: 17 /* KeyCode.RightArrow */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            metadata: {\n                description: nls.localize2('scrollRightHoverDescription', 'Scroll right the editor hover.')\n            },\n        });\n    }\n    run(accessor, editor) {\n        const controller = HoverController.get(editor);\n        if (!controller) {\n            return;\n        }\n        controller.scrollRight();\n    }\n}\nexport class PageUpHoverAction extends EditorAction {\n    constructor() {\n        super({\n            id: PAGE_UP_HOVER_ACTION_ID,\n            label: nls.localize({\n                key: 'pageUpHover',\n                comment: [\n                    'Action that allows to page up in the hover widget with the page up command when the hover widget is focused.'\n                ]\n            }, \"Page Up Hover\"),\n            alias: 'Page Up Hover',\n            precondition: EditorContextKeys.hoverFocused,\n            kbOpts: {\n                kbExpr: EditorContextKeys.hoverFocused,\n                primary: 11 /* KeyCode.PageUp */,\n                secondary: [512 /* KeyMod.Alt */ | 16 /* KeyCode.UpArrow */],\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            metadata: {\n                description: nls.localize2('pageUpHoverDescription', 'Page up the editor hover.'),\n            },\n        });\n    }\n    run(accessor, editor) {\n        const controller = HoverController.get(editor);\n        if (!controller) {\n            return;\n        }\n        controller.pageUp();\n    }\n}\nexport class PageDownHoverAction extends EditorAction {\n    constructor() {\n        super({\n            id: PAGE_DOWN_HOVER_ACTION_ID,\n            label: nls.localize({\n                key: 'pageDownHover',\n                comment: [\n                    'Action that allows to page down in the hover widget with the page down command when the hover widget is focused.'\n                ]\n            }, \"Page Down Hover\"),\n            alias: 'Page Down Hover',\n            precondition: EditorContextKeys.hoverFocused,\n            kbOpts: {\n                kbExpr: EditorContextKeys.hoverFocused,\n                primary: 12 /* KeyCode.PageDown */,\n                secondary: [512 /* KeyMod.Alt */ | 18 /* KeyCode.DownArrow */],\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            metadata: {\n                description: nls.localize2('pageDownHoverDescription', 'Page down the editor hover.'),\n            },\n        });\n    }\n    run(accessor, editor) {\n        const controller = HoverController.get(editor);\n        if (!controller) {\n            return;\n        }\n        controller.pageDown();\n    }\n}\nexport class GoToTopHoverAction extends EditorAction {\n    constructor() {\n        super({\n            id: GO_TO_TOP_HOVER_ACTION_ID,\n            label: nls.localize({\n                key: 'goToTopHover',\n                comment: [\n                    'Action that allows to go to the top of the hover widget with the home command when the hover widget is focused.'\n                ]\n            }, \"Go To Top Hover\"),\n            alias: 'Go To Bottom Hover',\n            precondition: EditorContextKeys.hoverFocused,\n            kbOpts: {\n                kbExpr: EditorContextKeys.hoverFocused,\n                primary: 14 /* KeyCode.Home */,\n                secondary: [2048 /* KeyMod.CtrlCmd */ | 16 /* KeyCode.UpArrow */],\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            metadata: {\n                description: nls.localize2('goToTopHoverDescription', 'Go to the top of the editor hover.'),\n            },\n        });\n    }\n    run(accessor, editor) {\n        const controller = HoverController.get(editor);\n        if (!controller) {\n            return;\n        }\n        controller.goToTop();\n    }\n}\nexport class GoToBottomHoverAction extends EditorAction {\n    constructor() {\n        super({\n            id: GO_TO_BOTTOM_HOVER_ACTION_ID,\n            label: nls.localize({\n                key: 'goToBottomHover',\n                comment: [\n                    'Action that allows to go to the bottom in the hover widget with the end command when the hover widget is focused.'\n                ]\n            }, \"Go To Bottom Hover\"),\n            alias: 'Go To Bottom Hover',\n            precondition: EditorContextKeys.hoverFocused,\n            kbOpts: {\n                kbExpr: EditorContextKeys.hoverFocused,\n                primary: 13 /* KeyCode.End */,\n                secondary: [2048 /* KeyMod.CtrlCmd */ | 18 /* KeyCode.DownArrow */],\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            metadata: {\n                description: nls.localize2('goToBottomHoverDescription', 'Go to the bottom of the editor hover.')\n            },\n        });\n    }\n    run(accessor, editor) {\n        const controller = HoverController.get(editor);\n        if (!controller) {\n            return;\n        }\n        controller.goToBottom();\n    }\n}\nexport class IncreaseHoverVerbosityLevel extends EditorAction {\n    constructor() {\n        super({\n            id: INCREASE_HOVER_VERBOSITY_ACTION_ID,\n            label: INCREASE_HOVER_VERBOSITY_ACTION_LABEL,\n            alias: 'Increase Hover Verbosity Level',\n            precondition: EditorContextKeys.hoverVisible\n        });\n    }\n    run(accessor, editor, args) {\n        var _a;\n        (_a = HoverController.get(editor)) === null || _a === void 0 ? void 0 : _a.updateMarkdownHoverVerbosityLevel(HoverVerbosityAction.Increase, args === null || args === void 0 ? void 0 : args.index, args === null || args === void 0 ? void 0 : args.focus);\n    }\n}\nexport class DecreaseHoverVerbosityLevel extends EditorAction {\n    constructor() {\n        super({\n            id: DECREASE_HOVER_VERBOSITY_ACTION_ID,\n            label: DECREASE_HOVER_VERBOSITY_ACTION_LABEL,\n            alias: 'Decrease Hover Verbosity Level',\n            precondition: EditorContextKeys.hoverVisible\n        });\n    }\n    run(accessor, editor, args) {\n        var _a;\n        (_a = HoverController.get(editor)) === null || _a === void 0 ? void 0 : _a.updateMarkdownHoverVerbosityLevel(HoverVerbosityAction.Decrease, args === null || args === void 0 ? void 0 : args.index, args === null || args === void 0 ? void 0 : args.focus);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/hover/browser/hoverContribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/hover/browser/hoverContribution.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { DecreaseHoverVerbosityLevel, GoToBottomHoverAction, GoToTopHoverAction, IncreaseHoverVerbosityLevel, PageDownHoverAction, PageUpHoverAction, ScrollDownHoverAction, ScrollLeftHoverAction, ScrollRightHoverAction, ScrollUpHoverAction, ShowDefinitionPreviewHoverAction, ShowOrFocusHoverAction } from './hoverActions.js';\nimport { registerEditorAction, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { editorHoverBorder } from '../../../../platform/theme/common/colorRegistry.js';\nimport { registerThemingParticipant } from '../../../../platform/theme/common/themeService.js';\nimport { HoverParticipantRegistry } from './hoverTypes.js';\nimport { MarkdownHoverParticipant } from './markdownHoverParticipant.js';\nimport { MarkerHoverParticipant } from './markerHoverParticipant.js';\nimport { HoverController } from './hoverController.js';\nimport './hover.css';\nimport { AccessibleViewRegistry } from '../../../../platform/accessibility/browser/accessibleViewRegistry.js';\nimport { ExtHoverAccessibleView, HoverAccessibilityHelp, HoverAccessibleView } from './hoverAccessibleViews.js';\nregisterEditorContribution(HoverController.ID, HoverController, 2 /* EditorContributionInstantiation.BeforeFirstInteraction */);\nregisterEditorAction(ShowOrFocusHoverAction);\nregisterEditorAction(ShowDefinitionPreviewHoverAction);\nregisterEditorAction(ScrollUpHoverAction);\nregisterEditorAction(ScrollDownHoverAction);\nregisterEditorAction(ScrollLeftHoverAction);\nregisterEditorAction(ScrollRightHoverAction);\nregisterEditorAction(PageUpHoverAction);\nregisterEditorAction(PageDownHoverAction);\nregisterEditorAction(GoToTopHoverAction);\nregisterEditorAction(GoToBottomHoverAction);\nregisterEditorAction(IncreaseHoverVerbosityLevel);\nregisterEditorAction(DecreaseHoverVerbosityLevel);\nHoverParticipantRegistry.register(MarkdownHoverParticipant);\nHoverParticipantRegistry.register(MarkerHoverParticipant);\n// theming\nregisterThemingParticipant((theme, collector) => {\n    const hoverBorder = theme.getColor(editorHoverBorder);\n    if (hoverBorder) {\n        collector.addRule(`.monaco-editor .monaco-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${hoverBorder.transparent(0.5)}; }`);\n        collector.addRule(`.monaco-editor .monaco-hover hr { border-top: 1px solid ${hoverBorder.transparent(0.5)}; }`);\n        collector.addRule(`.monaco-editor .monaco-hover hr { border-bottom: 0px solid ${hoverBorder.transparent(0.5)}; }`);\n    }\n});\nAccessibleViewRegistry.register(new HoverAccessibleView());\nAccessibleViewRegistry.register(new HoverAccessibilityHelp());\nAccessibleViewRegistry.register(new ExtHoverAccessibleView());\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/hover/browser/hoverController.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar HoverController_1;\nimport { DECREASE_HOVER_VERBOSITY_ACTION_ID, INCREASE_HOVER_VERBOSITY_ACTION_ID, SHOW_OR_FOCUS_HOVER_ACTION_ID } from './hoverActionIds.js';\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { InlineSuggestionHintsContentWidget } from '../../inlineCompletions/browser/inlineCompletionsHintsWidget.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { RunOnceScheduler } from '../../../../base/common/async.js';\nimport { ContentHoverWidget } from './contentHoverWidget.js';\nimport { ContentHoverController } from './contentHoverController.js';\nimport './hover.css';\nimport { MarginHoverWidget } from './marginHoverWidget.js';\nimport { Emitter } from '../../../../base/common/event.js';\n// sticky hover widget which doesn't disappear on focus out and such\nconst _sticky = false;\nlet HoverController = HoverController_1 = class HoverController extends Disposable {\n    constructor(_editor, _instantiationService, _keybindingService) {\n        super();\n        this._editor = _editor;\n        this._instantiationService = _instantiationService;\n        this._keybindingService = _keybindingService;\n        this._onHoverContentsChanged = this._register(new Emitter());\n        this.shouldKeepOpenOnEditorMouseMoveOrLeave = false;\n        this._listenersStore = new DisposableStore();\n        this._hoverState = {\n            mouseDown: false,\n            activatedByDecoratorClick: false\n        };\n        this._reactToEditorMouseMoveRunner = this._register(new RunOnceScheduler(() => this._reactToEditorMouseMove(this._mouseMoveEvent), 0));\n        this._hookListeners();\n        this._register(this._editor.onDidChangeConfiguration((e) => {\n            if (e.hasChanged(60 /* EditorOption.hover */)) {\n                this._unhookListeners();\n                this._hookListeners();\n            }\n        }));\n    }\n    static get(editor) {\n        return editor.getContribution(HoverController_1.ID);\n    }\n    _hookListeners() {\n        const hoverOpts = this._editor.getOption(60 /* EditorOption.hover */);\n        this._hoverSettings = {\n            enabled: hoverOpts.enabled,\n            sticky: hoverOpts.sticky,\n            hidingDelay: hoverOpts.delay\n        };\n        if (hoverOpts.enabled) {\n            this._listenersStore.add(this._editor.onMouseDown((e) => this._onEditorMouseDown(e)));\n            this._listenersStore.add(this._editor.onMouseUp(() => this._onEditorMouseUp()));\n            this._listenersStore.add(this._editor.onMouseMove((e) => this._onEditorMouseMove(e)));\n            this._listenersStore.add(this._editor.onKeyDown((e) => this._onKeyDown(e)));\n        }\n        else {\n            this._listenersStore.add(this._editor.onMouseMove((e) => this._onEditorMouseMove(e)));\n            this._listenersStore.add(this._editor.onKeyDown((e) => this._onKeyDown(e)));\n        }\n        this._listenersStore.add(this._editor.onMouseLeave((e) => this._onEditorMouseLeave(e)));\n        this._listenersStore.add(this._editor.onDidChangeModel(() => {\n            this._cancelScheduler();\n            this._hideWidgets();\n        }));\n        this._listenersStore.add(this._editor.onDidChangeModelContent(() => this._cancelScheduler()));\n        this._listenersStore.add(this._editor.onDidScrollChange((e) => this._onEditorScrollChanged(e)));\n    }\n    _unhookListeners() {\n        this._listenersStore.clear();\n    }\n    _cancelScheduler() {\n        this._mouseMoveEvent = undefined;\n        this._reactToEditorMouseMoveRunner.cancel();\n    }\n    _onEditorScrollChanged(e) {\n        if (e.scrollTopChanged || e.scrollLeftChanged) {\n            this._hideWidgets();\n        }\n    }\n    _onEditorMouseDown(mouseEvent) {\n        this._hoverState.mouseDown = true;\n        const shouldNotHideCurrentHoverWidget = this._shouldNotHideCurrentHoverWidget(mouseEvent);\n        if (shouldNotHideCurrentHoverWidget) {\n            return;\n        }\n        this._hideWidgets();\n    }\n    _shouldNotHideCurrentHoverWidget(mouseEvent) {\n        if (this._isMouseOnContentHoverWidget(mouseEvent)\n            || this._isMouseOnMarginHoverWidget(mouseEvent)\n            || this._isContentWidgetResizing()) {\n            return true;\n        }\n        return false;\n    }\n    _isMouseOnMarginHoverWidget(mouseEvent) {\n        const target = mouseEvent.target;\n        if (!target) {\n            return false;\n        }\n        return target.type === 12 /* MouseTargetType.OVERLAY_WIDGET */ && target.detail === MarginHoverWidget.ID;\n    }\n    _isMouseOnContentHoverWidget(mouseEvent) {\n        const target = mouseEvent.target;\n        if (!target) {\n            return false;\n        }\n        return target.type === 9 /* MouseTargetType.CONTENT_WIDGET */ && target.detail === ContentHoverWidget.ID;\n    }\n    _onEditorMouseUp() {\n        this._hoverState.mouseDown = false;\n    }\n    _onEditorMouseLeave(mouseEvent) {\n        if (this.shouldKeepOpenOnEditorMouseMoveOrLeave) {\n            return;\n        }\n        this._cancelScheduler();\n        const shouldNotHideCurrentHoverWidget = this._shouldNotHideCurrentHoverWidget(mouseEvent);\n        if (shouldNotHideCurrentHoverWidget) {\n            return;\n        }\n        if (_sticky) {\n            return;\n        }\n        this._hideWidgets();\n    }\n    _shouldNotRecomputeCurrentHoverWidget(mouseEvent) {\n        const isHoverSticky = this._hoverSettings.sticky;\n        const isMouseOnStickyMarginHoverWidget = (mouseEvent, isHoverSticky) => {\n            const isMouseOnMarginHoverWidget = this._isMouseOnMarginHoverWidget(mouseEvent);\n            return isHoverSticky && isMouseOnMarginHoverWidget;\n        };\n        const isMouseOnStickyContentHoverWidget = (mouseEvent, isHoverSticky) => {\n            const isMouseOnContentHoverWidget = this._isMouseOnContentHoverWidget(mouseEvent);\n            return isHoverSticky && isMouseOnContentHoverWidget;\n        };\n        const isMouseOnColorPicker = (mouseEvent) => {\n            var _a;\n            const isMouseOnContentHoverWidget = this._isMouseOnContentHoverWidget(mouseEvent);\n            const isColorPickerVisible = (_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.isColorPickerVisible;\n            return isMouseOnContentHoverWidget && isColorPickerVisible;\n        };\n        // TODO@aiday-mar verify if the following is necessary code\n        const isTextSelectedWithinContentHoverWidget = (mouseEvent, sticky) => {\n            var _a, _b, _c, _d;\n            return sticky\n                && ((_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.containsNode((_b = mouseEvent.event.browserEvent.view) === null || _b === void 0 ? void 0 : _b.document.activeElement))\n                && !((_d = (_c = mouseEvent.event.browserEvent.view) === null || _c === void 0 ? void 0 : _c.getSelection()) === null || _d === void 0 ? void 0 : _d.isCollapsed);\n        };\n        if (isMouseOnStickyMarginHoverWidget(mouseEvent, isHoverSticky)\n            || isMouseOnStickyContentHoverWidget(mouseEvent, isHoverSticky)\n            || isMouseOnColorPicker(mouseEvent)\n            || isTextSelectedWithinContentHoverWidget(mouseEvent, isHoverSticky)) {\n            return true;\n        }\n        return false;\n    }\n    _onEditorMouseMove(mouseEvent) {\n        var _a, _b, _c, _d;\n        if (this.shouldKeepOpenOnEditorMouseMoveOrLeave) {\n            return;\n        }\n        this._mouseMoveEvent = mouseEvent;\n        if (((_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.isFocused) || ((_b = this._contentWidget) === null || _b === void 0 ? void 0 : _b.isResizing)) {\n            return;\n        }\n        const sticky = this._hoverSettings.sticky;\n        if (sticky && ((_c = this._contentWidget) === null || _c === void 0 ? void 0 : _c.isVisibleFromKeyboard)) {\n            // Sticky mode is on and the hover has been shown via keyboard\n            // so moving the mouse has no effect\n            return;\n        }\n        const shouldNotRecomputeCurrentHoverWidget = this._shouldNotRecomputeCurrentHoverWidget(mouseEvent);\n        if (shouldNotRecomputeCurrentHoverWidget) {\n            this._reactToEditorMouseMoveRunner.cancel();\n            return;\n        }\n        const hidingDelay = this._hoverSettings.hidingDelay;\n        const isContentHoverWidgetVisible = (_d = this._contentWidget) === null || _d === void 0 ? void 0 : _d.isVisible;\n        // If the mouse is not over the widget, and if sticky is on,\n        // then give it a grace period before reacting to the mouse event\n        const shouldRescheduleHoverComputation = isContentHoverWidgetVisible && sticky && hidingDelay > 0;\n        if (shouldRescheduleHoverComputation) {\n            if (!this._reactToEditorMouseMoveRunner.isScheduled()) {\n                this._reactToEditorMouseMoveRunner.schedule(hidingDelay);\n            }\n            return;\n        }\n        this._reactToEditorMouseMove(mouseEvent);\n    }\n    _reactToEditorMouseMove(mouseEvent) {\n        var _a;\n        if (!mouseEvent) {\n            return;\n        }\n        const target = mouseEvent.target;\n        const mouseOnDecorator = (_a = target.element) === null || _a === void 0 ? void 0 : _a.classList.contains('colorpicker-color-decoration');\n        const decoratorActivatedOn = this._editor.getOption(148 /* EditorOption.colorDecoratorsActivatedOn */);\n        const enabled = this._hoverSettings.enabled;\n        const activatedByDecoratorClick = this._hoverState.activatedByDecoratorClick;\n        if ((mouseOnDecorator && ((decoratorActivatedOn === 'click' && !activatedByDecoratorClick) ||\n            (decoratorActivatedOn === 'hover' && !enabled && !_sticky) ||\n            (decoratorActivatedOn === 'clickAndHover' && !enabled && !activatedByDecoratorClick))) || (!mouseOnDecorator && !enabled && !activatedByDecoratorClick)) {\n            this._hideWidgets();\n            return;\n        }\n        const contentHoverShowsOrWillShow = this._tryShowHoverWidget(mouseEvent, 0 /* HoverWidgetType.Content */);\n        if (contentHoverShowsOrWillShow) {\n            return;\n        }\n        const glyphWidgetShowsOrWillShow = this._tryShowHoverWidget(mouseEvent, 1 /* HoverWidgetType.Glyph */);\n        if (glyphWidgetShowsOrWillShow) {\n            return;\n        }\n        if (_sticky) {\n            return;\n        }\n        this._hideWidgets();\n    }\n    _tryShowHoverWidget(mouseEvent, hoverWidgetType) {\n        const contentWidget = this._getOrCreateContentWidget();\n        const glyphWidget = this._getOrCreateGlyphWidget();\n        let currentWidget;\n        let otherWidget;\n        switch (hoverWidgetType) {\n            case 0 /* HoverWidgetType.Content */:\n                currentWidget = contentWidget;\n                otherWidget = glyphWidget;\n                break;\n            case 1 /* HoverWidgetType.Glyph */:\n                currentWidget = glyphWidget;\n                otherWidget = contentWidget;\n                break;\n            default:\n                throw new Error(`HoverWidgetType ${hoverWidgetType} is unrecognized`);\n        }\n        const showsOrWillShow = currentWidget.showsOrWillShow(mouseEvent);\n        if (showsOrWillShow) {\n            otherWidget.hide();\n        }\n        return showsOrWillShow;\n    }\n    _onKeyDown(e) {\n        var _a;\n        if (!this._editor.hasModel()) {\n            return;\n        }\n        const resolvedKeyboardEvent = this._keybindingService.softDispatch(e, this._editor.getDomNode());\n        // If the beginning of a multi-chord keybinding is pressed,\n        // or the command aims to focus the hover,\n        // set the variable to true, otherwise false\n        const shouldKeepHoverVisible = (resolvedKeyboardEvent.kind === 1 /* ResultKind.MoreChordsNeeded */ ||\n            (resolvedKeyboardEvent.kind === 2 /* ResultKind.KbFound */\n                && (resolvedKeyboardEvent.commandId === SHOW_OR_FOCUS_HOVER_ACTION_ID\n                    || resolvedKeyboardEvent.commandId === INCREASE_HOVER_VERBOSITY_ACTION_ID\n                    || resolvedKeyboardEvent.commandId === DECREASE_HOVER_VERBOSITY_ACTION_ID)\n                && ((_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.isVisible)));\n        if (e.keyCode === 5 /* KeyCode.Ctrl */\n            || e.keyCode === 6 /* KeyCode.Alt */\n            || e.keyCode === 57 /* KeyCode.Meta */\n            || e.keyCode === 4 /* KeyCode.Shift */\n            || shouldKeepHoverVisible) {\n            // Do not hide hover when a modifier key is pressed\n            return;\n        }\n        this._hideWidgets();\n    }\n    _hideWidgets() {\n        var _a, _b, _c;\n        if (_sticky) {\n            return;\n        }\n        if ((this._hoverState.mouseDown\n            && ((_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.isColorPickerVisible)) || InlineSuggestionHintsContentWidget.dropDownVisible) {\n            return;\n        }\n        this._hoverState.activatedByDecoratorClick = false;\n        (_b = this._glyphWidget) === null || _b === void 0 ? void 0 : _b.hide();\n        (_c = this._contentWidget) === null || _c === void 0 ? void 0 : _c.hide();\n    }\n    _getOrCreateContentWidget() {\n        if (!this._contentWidget) {\n            this._contentWidget = this._instantiationService.createInstance(ContentHoverController, this._editor);\n            this._listenersStore.add(this._contentWidget.onContentsChanged(() => this._onHoverContentsChanged.fire()));\n        }\n        return this._contentWidget;\n    }\n    _getOrCreateGlyphWidget() {\n        if (!this._glyphWidget) {\n            this._glyphWidget = this._instantiationService.createInstance(MarginHoverWidget, this._editor);\n        }\n        return this._glyphWidget;\n    }\n    showContentHover(range, mode, source, focus, activatedByColorDecoratorClick = false) {\n        this._hoverState.activatedByDecoratorClick = activatedByColorDecoratorClick;\n        this._getOrCreateContentWidget().startShowingAtRange(range, mode, source, focus);\n    }\n    _isContentWidgetResizing() {\n        var _a;\n        return ((_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.widget.isResizing) || false;\n    }\n    markdownHoverContentAtIndex(index) {\n        return this._getOrCreateContentWidget().markdownHoverContentAtIndex(index);\n    }\n    doesMarkdownHoverAtIndexSupportVerbosityAction(index, action) {\n        return this._getOrCreateContentWidget().doesMarkdownHoverAtIndexSupportVerbosityAction(index, action);\n    }\n    updateMarkdownHoverVerbosityLevel(action, index, focus) {\n        this._getOrCreateContentWidget().updateMarkdownHoverVerbosityLevel(action, index, focus);\n    }\n    focus() {\n        var _a;\n        (_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.focus();\n    }\n    scrollUp() {\n        var _a;\n        (_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.scrollUp();\n    }\n    scrollDown() {\n        var _a;\n        (_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.scrollDown();\n    }\n    scrollLeft() {\n        var _a;\n        (_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.scrollLeft();\n    }\n    scrollRight() {\n        var _a;\n        (_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.scrollRight();\n    }\n    pageUp() {\n        var _a;\n        (_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.pageUp();\n    }\n    pageDown() {\n        var _a;\n        (_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.pageDown();\n    }\n    goToTop() {\n        var _a;\n        (_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.goToTop();\n    }\n    goToBottom() {\n        var _a;\n        (_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.goToBottom();\n    }\n    get isColorPickerVisible() {\n        var _a;\n        return (_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.isColorPickerVisible;\n    }\n    get isHoverVisible() {\n        var _a;\n        return (_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.isVisible;\n    }\n    dispose() {\n        var _a, _b;\n        super.dispose();\n        this._unhookListeners();\n        this._listenersStore.dispose();\n        (_a = this._glyphWidget) === null || _a === void 0 ? void 0 : _a.dispose();\n        (_b = this._contentWidget) === null || _b === void 0 ? void 0 : _b.dispose();\n    }\n};\nHoverController.ID = 'editor.contrib.hover';\nHoverController = HoverController_1 = __decorate([\n    __param(1, IInstantiationService),\n    __param(2, IKeybindingService)\n], HoverController);\nexport { HoverController };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/hover/browser/hoverOperation.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createCancelableAsyncIterable, RunOnceScheduler } from '../../../../base/common/async.js';\nimport { onUnexpectedError } from '../../../../base/common/errors.js';\nimport { Emitter } from '../../../../base/common/event.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nexport class HoverResult {\n    constructor(value, isComplete, hasLoadingMessage) {\n        this.value = value;\n        this.isComplete = isComplete;\n        this.hasLoadingMessage = hasLoadingMessage;\n    }\n}\n/**\n * Computing the hover is very fine tuned.\n *\n * Suppose the hover delay is 300ms (the default). Then, when resting the mouse at an anchor:\n * - at 150ms, the async computation is triggered (i.e. semantic hover)\n *   - if async results already come in, they are not rendered yet.\n * - at 300ms, the sync computation is triggered (i.e. decorations, markers)\n *   - if there are sync or async results, they are rendered.\n * - at 900ms, if the async computation hasn't finished, a \"Loading...\" result is added.\n */\nexport class HoverOperation extends Disposable {\n    constructor(_editor, _computer) {\n        super();\n        this._editor = _editor;\n        this._computer = _computer;\n        this._onResult = this._register(new Emitter());\n        this.onResult = this._onResult.event;\n        this._firstWaitScheduler = this._register(new RunOnceScheduler(() => this._triggerAsyncComputation(), 0));\n        this._secondWaitScheduler = this._register(new RunOnceScheduler(() => this._triggerSyncComputation(), 0));\n        this._loadingMessageScheduler = this._register(new RunOnceScheduler(() => this._triggerLoadingMessage(), 0));\n        this._state = 0 /* HoverOperationState.Idle */;\n        this._asyncIterable = null;\n        this._asyncIterableDone = false;\n        this._result = [];\n    }\n    dispose() {\n        if (this._asyncIterable) {\n            this._asyncIterable.cancel();\n            this._asyncIterable = null;\n        }\n        super.dispose();\n    }\n    get _hoverTime() {\n        return this._editor.getOption(60 /* EditorOption.hover */).delay;\n    }\n    get _firstWaitTime() {\n        return this._hoverTime / 2;\n    }\n    get _secondWaitTime() {\n        return this._hoverTime - this._firstWaitTime;\n    }\n    get _loadingMessageTime() {\n        return 3 * this._hoverTime;\n    }\n    _setState(state, fireResult = true) {\n        this._state = state;\n        if (fireResult) {\n            this._fireResult();\n        }\n    }\n    _triggerAsyncComputation() {\n        this._setState(2 /* HoverOperationState.SecondWait */);\n        this._secondWaitScheduler.schedule(this._secondWaitTime);\n        if (this._computer.computeAsync) {\n            this._asyncIterableDone = false;\n            this._asyncIterable = createCancelableAsyncIterable(token => this._computer.computeAsync(token));\n            (async () => {\n                try {\n                    for await (const item of this._asyncIterable) {\n                        if (item) {\n                            this._result.push(item);\n                            this._fireResult();\n                        }\n                    }\n                    this._asyncIterableDone = true;\n                    if (this._state === 3 /* HoverOperationState.WaitingForAsync */ || this._state === 4 /* HoverOperationState.WaitingForAsyncShowingLoading */) {\n                        this._setState(0 /* HoverOperationState.Idle */);\n                    }\n                }\n                catch (e) {\n                    onUnexpectedError(e);\n                }\n            })();\n        }\n        else {\n            this._asyncIterableDone = true;\n        }\n    }\n    _triggerSyncComputation() {\n        if (this._computer.computeSync) {\n            this._result = this._result.concat(this._computer.computeSync());\n        }\n        this._setState(this._asyncIterableDone ? 0 /* HoverOperationState.Idle */ : 3 /* HoverOperationState.WaitingForAsync */);\n    }\n    _triggerLoadingMessage() {\n        if (this._state === 3 /* HoverOperationState.WaitingForAsync */) {\n            this._setState(4 /* HoverOperationState.WaitingForAsyncShowingLoading */);\n        }\n    }\n    _fireResult() {\n        if (this._state === 1 /* HoverOperationState.FirstWait */ || this._state === 2 /* HoverOperationState.SecondWait */) {\n            // Do not send out results before the hover time\n            return;\n        }\n        const isComplete = (this._state === 0 /* HoverOperationState.Idle */);\n        const hasLoadingMessage = (this._state === 4 /* HoverOperationState.WaitingForAsyncShowingLoading */);\n        this._onResult.fire(new HoverResult(this._result.slice(0), isComplete, hasLoadingMessage));\n    }\n    start(mode) {\n        if (mode === 0 /* HoverStartMode.Delayed */) {\n            if (this._state === 0 /* HoverOperationState.Idle */) {\n                this._setState(1 /* HoverOperationState.FirstWait */);\n                this._firstWaitScheduler.schedule(this._firstWaitTime);\n                this._loadingMessageScheduler.schedule(this._loadingMessageTime);\n            }\n        }\n        else {\n            switch (this._state) {\n                case 0 /* HoverOperationState.Idle */:\n                    this._triggerAsyncComputation();\n                    this._secondWaitScheduler.cancel();\n                    this._triggerSyncComputation();\n                    break;\n                case 2 /* HoverOperationState.SecondWait */:\n                    this._secondWaitScheduler.cancel();\n                    this._triggerSyncComputation();\n                    break;\n            }\n        }\n    }\n    cancel() {\n        this._firstWaitScheduler.cancel();\n        this._secondWaitScheduler.cancel();\n        this._loadingMessageScheduler.cancel();\n        if (this._asyncIterable) {\n            this._asyncIterable.cancel();\n            this._asyncIterable = null;\n        }\n        this._result = [];\n        this._setState(0 /* HoverOperationState.Idle */, false);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/hover/browser/hoverTypes.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class HoverRangeAnchor {\n    constructor(priority, range, initialMousePosX, initialMousePosY) {\n        this.priority = priority;\n        this.range = range;\n        this.initialMousePosX = initialMousePosX;\n        this.initialMousePosY = initialMousePosY;\n        this.type = 1 /* HoverAnchorType.Range */;\n    }\n    equals(other) {\n        return (other.type === 1 /* HoverAnchorType.Range */ && this.range.equalsRange(other.range));\n    }\n    canAdoptVisibleHover(lastAnchor, showAtPosition) {\n        return (lastAnchor.type === 1 /* HoverAnchorType.Range */ && showAtPosition.lineNumber === this.range.startLineNumber);\n    }\n}\nexport class HoverForeignElementAnchor {\n    constructor(priority, owner, range, initialMousePosX, initialMousePosY, supportsMarkerHover) {\n        this.priority = priority;\n        this.owner = owner;\n        this.range = range;\n        this.initialMousePosX = initialMousePosX;\n        this.initialMousePosY = initialMousePosY;\n        this.supportsMarkerHover = supportsMarkerHover;\n        this.type = 2 /* HoverAnchorType.ForeignElement */;\n    }\n    equals(other) {\n        return (other.type === 2 /* HoverAnchorType.ForeignElement */ && this.owner === other.owner);\n    }\n    canAdoptVisibleHover(lastAnchor, showAtPosition) {\n        return (lastAnchor.type === 2 /* HoverAnchorType.ForeignElement */ && this.owner === lastAnchor.owner);\n    }\n}\nexport const HoverParticipantRegistry = (new class HoverParticipantRegistry {\n    constructor() {\n        this._participants = [];\n    }\n    register(ctor) {\n        this._participants.push(ctor);\n    }\n    getAll() {\n        return this._participants;\n    }\n}());\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/hover/browser/marginHoverComputer.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { asArray } from '../../../../base/common/arrays.js';\nimport { isEmptyMarkdownString } from '../../../../base/common/htmlContent.js';\nimport { GlyphMarginLane } from '../../../common/model.js';\nexport class MarginHoverComputer {\n    get lineNumber() {\n        return this._lineNumber;\n    }\n    set lineNumber(value) {\n        this._lineNumber = value;\n    }\n    get lane() {\n        return this._laneOrLine;\n    }\n    set lane(value) {\n        this._laneOrLine = value;\n    }\n    constructor(_editor) {\n        this._editor = _editor;\n        this._lineNumber = -1;\n        this._laneOrLine = GlyphMarginLane.Center;\n    }\n    computeSync() {\n        var _a, _b;\n        const toHoverMessage = (contents) => {\n            return {\n                value: contents\n            };\n        };\n        const lineDecorations = this._editor.getLineDecorations(this._lineNumber);\n        const result = [];\n        const isLineHover = this._laneOrLine === 'lineNo';\n        if (!lineDecorations) {\n            return result;\n        }\n        for (const d of lineDecorations) {\n            const lane = (_b = (_a = d.options.glyphMargin) === null || _a === void 0 ? void 0 : _a.position) !== null && _b !== void 0 ? _b : GlyphMarginLane.Center;\n            if (!isLineHover && lane !== this._laneOrLine) {\n                continue;\n            }\n            const hoverMessage = isLineHover ? d.options.lineNumberHoverMessage : d.options.glyphMarginHoverMessage;\n            if (!hoverMessage || isEmptyMarkdownString(hoverMessage)) {\n                continue;\n            }\n            result.push(...asArray(hoverMessage).map(toHoverMessage));\n        }\n        return result;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/hover/browser/marginHoverWidget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../../../base/browser/dom.js';\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { MarkdownRenderer } from '../../../browser/widget/markdownRenderer/browser/markdownRenderer.js';\nimport { HoverOperation } from './hoverOperation.js';\nimport { HoverWidget } from '../../../../base/browser/ui/hover/hoverWidget.js';\nimport { MarginHoverComputer } from './marginHoverComputer.js';\nconst $ = dom.$;\nexport class MarginHoverWidget extends Disposable {\n    constructor(editor, languageService, openerService) {\n        super();\n        this._renderDisposeables = this._register(new DisposableStore());\n        this._editor = editor;\n        this._isVisible = false;\n        this._messages = [];\n        this._hover = this._register(new HoverWidget());\n        this._hover.containerDomNode.classList.toggle('hidden', !this._isVisible);\n        this._markdownRenderer = this._register(new MarkdownRenderer({ editor: this._editor }, languageService, openerService));\n        this._computer = new MarginHoverComputer(this._editor);\n        this._hoverOperation = this._register(new HoverOperation(this._editor, this._computer));\n        this._register(this._hoverOperation.onResult((result) => {\n            this._withResult(result.value);\n        }));\n        this._register(this._editor.onDidChangeModelDecorations(() => this._onModelDecorationsChanged()));\n        this._register(this._editor.onDidChangeConfiguration((e) => {\n            if (e.hasChanged(50 /* EditorOption.fontInfo */)) {\n                this._updateFont();\n            }\n        }));\n        this._editor.addOverlayWidget(this);\n    }\n    dispose() {\n        this._editor.removeOverlayWidget(this);\n        super.dispose();\n    }\n    getId() {\n        return MarginHoverWidget.ID;\n    }\n    getDomNode() {\n        return this._hover.containerDomNode;\n    }\n    getPosition() {\n        return null;\n    }\n    _updateFont() {\n        const codeClasses = Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName('code'));\n        codeClasses.forEach(node => this._editor.applyFontInfo(node));\n    }\n    _onModelDecorationsChanged() {\n        if (this._isVisible) {\n            // The decorations have changed and the hover is visible,\n            // we need to recompute the displayed text\n            this._hoverOperation.cancel();\n            this._hoverOperation.start(0 /* HoverStartMode.Delayed */);\n        }\n    }\n    showsOrWillShow(mouseEvent) {\n        const target = mouseEvent.target;\n        if (target.type === 2 /* MouseTargetType.GUTTER_GLYPH_MARGIN */ && target.detail.glyphMarginLane) {\n            this._startShowingAt(target.position.lineNumber, target.detail.glyphMarginLane);\n            return true;\n        }\n        if (target.type === 3 /* MouseTargetType.GUTTER_LINE_NUMBERS */) {\n            this._startShowingAt(target.position.lineNumber, 'lineNo');\n            return true;\n        }\n        return false;\n    }\n    _startShowingAt(lineNumber, laneOrLine) {\n        if (this._computer.lineNumber === lineNumber && this._computer.lane === laneOrLine) {\n            // We have to show the widget at the exact same line number as before, so no work is needed\n            return;\n        }\n        this._hoverOperation.cancel();\n        this.hide();\n        this._computer.lineNumber = lineNumber;\n        this._computer.lane = laneOrLine;\n        this._hoverOperation.start(0 /* HoverStartMode.Delayed */);\n    }\n    hide() {\n        this._computer.lineNumber = -1;\n        this._hoverOperation.cancel();\n        if (!this._isVisible) {\n            return;\n        }\n        this._isVisible = false;\n        this._hover.containerDomNode.classList.toggle('hidden', !this._isVisible);\n    }\n    _withResult(result) {\n        this._messages = result;\n        if (this._messages.length > 0) {\n            this._renderMessages(this._computer.lineNumber, this._messages);\n        }\n        else {\n            this.hide();\n        }\n    }\n    _renderMessages(lineNumber, messages) {\n        this._renderDisposeables.clear();\n        const fragment = document.createDocumentFragment();\n        for (const msg of messages) {\n            const markdownHoverElement = $('div.hover-row.markdown-hover');\n            const hoverContentsElement = dom.append(markdownHoverElement, $('div.hover-contents'));\n            const renderedContents = this._renderDisposeables.add(this._markdownRenderer.render(msg.value));\n            hoverContentsElement.appendChild(renderedContents.element);\n            fragment.appendChild(markdownHoverElement);\n        }\n        this._updateContents(fragment);\n        this._showAt(lineNumber);\n    }\n    _updateContents(node) {\n        this._hover.contentsDomNode.textContent = '';\n        this._hover.contentsDomNode.appendChild(node);\n        this._updateFont();\n    }\n    _showAt(lineNumber) {\n        if (!this._isVisible) {\n            this._isVisible = true;\n            this._hover.containerDomNode.classList.toggle('hidden', !this._isVisible);\n        }\n        const editorLayout = this._editor.getLayoutInfo();\n        const topForLineNumber = this._editor.getTopForLineNumber(lineNumber);\n        const editorScrollTop = this._editor.getScrollTop();\n        const lineHeight = this._editor.getOption(67 /* EditorOption.lineHeight */);\n        const nodeHeight = this._hover.containerDomNode.clientHeight;\n        const top = topForLineNumber - editorScrollTop - ((nodeHeight - lineHeight) / 2);\n        const left = editorLayout.glyphMarginLeft + editorLayout.glyphMarginWidth + (this._computer.lane === 'lineNo' ? editorLayout.lineNumbersWidth : 0);\n        this._hover.containerDomNode.style.left = `${left}px`;\n        this._hover.containerDomNode.style.top = `${Math.max(Math.round(top), 0)}px`;\n    }\n}\nMarginHoverWidget.ID = 'editor.contrib.modesGlyphHoverWidget';\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/hover/browser/markdownHoverParticipant.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport * as dom from '../../../../base/browser/dom.js';\nimport { asArray, compareBy, numberComparator } from '../../../../base/common/arrays.js';\nimport { CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { isEmptyMarkdownString, MarkdownString } from '../../../../base/common/htmlContent.js';\nimport { Disposable, DisposableStore, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { MarkdownRenderer } from '../../../browser/widget/markdownRenderer/browser/markdownRenderer.js';\nimport { DECREASE_HOVER_VERBOSITY_ACTION_ID, INCREASE_HOVER_VERBOSITY_ACTION_ID } from './hoverActionIds.js';\nimport { Range } from '../../../common/core/range.js';\nimport { ILanguageService } from '../../../common/languages/language.js';\nimport * as nls from '../../../../nls.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { IOpenerService } from '../../../../platform/opener/common/opener.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { HoverVerbosityAction } from '../../../common/languages.js';\nimport { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { ThemeIcon } from '../../../../base/common/themables.js';\nimport { onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { ClickAction, KeyDownAction } from '../../../../base/browser/ui/hover/hoverWidget.js';\nimport { IHoverService, WorkbenchHoverDelegate } from '../../../../platform/hover/browser/hover.js';\nimport { AsyncIterableObject } from '../../../../base/common/async.js';\nimport { getHoverProviderResultsAsAsyncIterable } from './getHover.js';\nconst $ = dom.$;\nconst increaseHoverVerbosityIcon = registerIcon('hover-increase-verbosity', Codicon.add, nls.localize('increaseHoverVerbosity', 'Icon for increaseing hover verbosity.'));\nconst decreaseHoverVerbosityIcon = registerIcon('hover-decrease-verbosity', Codicon.remove, nls.localize('decreaseHoverVerbosity', 'Icon for decreasing hover verbosity.'));\nexport class MarkdownHover {\n    constructor(owner, range, contents, isBeforeContent, ordinal, source = undefined) {\n        this.owner = owner;\n        this.range = range;\n        this.contents = contents;\n        this.isBeforeContent = isBeforeContent;\n        this.ordinal = ordinal;\n        this.source = source;\n    }\n    isValidForHoverAnchor(anchor) {\n        return (anchor.type === 1 /* HoverAnchorType.Range */\n            && this.range.startColumn <= anchor.range.startColumn\n            && this.range.endColumn >= anchor.range.endColumn);\n    }\n}\nclass HoverSource {\n    constructor(hover, hoverProvider, hoverPosition) {\n        this.hover = hover;\n        this.hoverProvider = hoverProvider;\n        this.hoverPosition = hoverPosition;\n    }\n    supportsVerbosityAction(hoverVerbosityAction) {\n        var _a, _b;\n        switch (hoverVerbosityAction) {\n            case HoverVerbosityAction.Increase:\n                return (_a = this.hover.canIncreaseVerbosity) !== null && _a !== void 0 ? _a : false;\n            case HoverVerbosityAction.Decrease:\n                return (_b = this.hover.canDecreaseVerbosity) !== null && _b !== void 0 ? _b : false;\n        }\n    }\n}\nlet MarkdownHoverParticipant = class MarkdownHoverParticipant {\n    constructor(_editor, _languageService, _openerService, _configurationService, _languageFeaturesService, _keybindingService, _hoverService) {\n        this._editor = _editor;\n        this._languageService = _languageService;\n        this._openerService = _openerService;\n        this._configurationService = _configurationService;\n        this._languageFeaturesService = _languageFeaturesService;\n        this._keybindingService = _keybindingService;\n        this._hoverService = _hoverService;\n        this.hoverOrdinal = 3;\n    }\n    createLoadingMessage(anchor) {\n        return new MarkdownHover(this, anchor.range, [new MarkdownString().appendText(nls.localize('modesContentHover.loading', \"Loading...\"))], false, 2000);\n    }\n    computeSync(anchor, lineDecorations) {\n        if (!this._editor.hasModel() || anchor.type !== 1 /* HoverAnchorType.Range */) {\n            return [];\n        }\n        const model = this._editor.getModel();\n        const lineNumber = anchor.range.startLineNumber;\n        const maxColumn = model.getLineMaxColumn(lineNumber);\n        const result = [];\n        let index = 1000;\n        const lineLength = model.getLineLength(lineNumber);\n        const languageId = model.getLanguageIdAtPosition(anchor.range.startLineNumber, anchor.range.startColumn);\n        const stopRenderingLineAfter = this._editor.getOption(117 /* EditorOption.stopRenderingLineAfter */);\n        const maxTokenizationLineLength = this._configurationService.getValue('editor.maxTokenizationLineLength', {\n            overrideIdentifier: languageId\n        });\n        let stopRenderingMessage = false;\n        if (stopRenderingLineAfter >= 0 && lineLength > stopRenderingLineAfter && anchor.range.startColumn >= stopRenderingLineAfter) {\n            stopRenderingMessage = true;\n            result.push(new MarkdownHover(this, anchor.range, [{\n                    value: nls.localize('stopped rendering', \"Rendering paused for long line for performance reasons. This can be configured via `editor.stopRenderingLineAfter`.\")\n                }], false, index++));\n        }\n        if (!stopRenderingMessage && typeof maxTokenizationLineLength === 'number' && lineLength >= maxTokenizationLineLength) {\n            result.push(new MarkdownHover(this, anchor.range, [{\n                    value: nls.localize('too many characters', \"Tokenization is skipped for long lines for performance reasons. This can be configured via `editor.maxTokenizationLineLength`.\")\n                }], false, index++));\n        }\n        let isBeforeContent = false;\n        for (const d of lineDecorations) {\n            const startColumn = (d.range.startLineNumber === lineNumber) ? d.range.startColumn : 1;\n            const endColumn = (d.range.endLineNumber === lineNumber) ? d.range.endColumn : maxColumn;\n            const hoverMessage = d.options.hoverMessage;\n            if (!hoverMessage || isEmptyMarkdownString(hoverMessage)) {\n                continue;\n            }\n            if (d.options.beforeContentClassName) {\n                isBeforeContent = true;\n            }\n            const range = new Range(anchor.range.startLineNumber, startColumn, anchor.range.startLineNumber, endColumn);\n            result.push(new MarkdownHover(this, range, asArray(hoverMessage), isBeforeContent, index++));\n        }\n        return result;\n    }\n    computeAsync(anchor, lineDecorations, token) {\n        if (!this._editor.hasModel() || anchor.type !== 1 /* HoverAnchorType.Range */) {\n            return AsyncIterableObject.EMPTY;\n        }\n        const model = this._editor.getModel();\n        const hoverProviderRegistry = this._languageFeaturesService.hoverProvider;\n        if (!hoverProviderRegistry.has(model)) {\n            return AsyncIterableObject.EMPTY;\n        }\n        const markdownHovers = this._getMarkdownHovers(hoverProviderRegistry, model, anchor, token);\n        return markdownHovers;\n    }\n    _getMarkdownHovers(hoverProviderRegistry, model, anchor, token) {\n        const position = anchor.range.getStartPosition();\n        const hoverProviderResults = getHoverProviderResultsAsAsyncIterable(hoverProviderRegistry, model, position, token);\n        const markdownHovers = hoverProviderResults.filter(item => !isEmptyMarkdownString(item.hover.contents))\n            .map(item => {\n            const range = item.hover.range ? Range.lift(item.hover.range) : anchor.range;\n            const hoverSource = new HoverSource(item.hover, item.provider, position);\n            return new MarkdownHover(this, range, item.hover.contents, false, item.ordinal, hoverSource);\n        });\n        return markdownHovers;\n    }\n    renderHoverParts(context, hoverParts) {\n        this._renderedHoverParts = new MarkdownRenderedHoverParts(hoverParts, context.fragment, this._editor, this._languageService, this._openerService, this._keybindingService, this._hoverService, this._configurationService, context.onContentsChanged);\n        return this._renderedHoverParts;\n    }\n    markdownHoverContentAtIndex(index) {\n        var _a, _b;\n        return (_b = (_a = this._renderedHoverParts) === null || _a === void 0 ? void 0 : _a.markdownHoverContentAtIndex(index)) !== null && _b !== void 0 ? _b : '';\n    }\n    doesMarkdownHoverAtIndexSupportVerbosityAction(index, action) {\n        var _a, _b;\n        return (_b = (_a = this._renderedHoverParts) === null || _a === void 0 ? void 0 : _a.doesMarkdownHoverAtIndexSupportVerbosityAction(index, action)) !== null && _b !== void 0 ? _b : false;\n    }\n    updateMarkdownHoverVerbosityLevel(action, index, focus) {\n        var _a;\n        (_a = this._renderedHoverParts) === null || _a === void 0 ? void 0 : _a.updateMarkdownHoverPartVerbosityLevel(action, index, focus);\n    }\n};\nMarkdownHoverParticipant = __decorate([\n    __param(1, ILanguageService),\n    __param(2, IOpenerService),\n    __param(3, IConfigurationService),\n    __param(4, ILanguageFeaturesService),\n    __param(5, IKeybindingService),\n    __param(6, IHoverService)\n], MarkdownHoverParticipant);\nexport { MarkdownHoverParticipant };\nclass MarkdownRenderedHoverParts extends Disposable {\n    constructor(hoverParts, // we own!\n    hoverPartsContainer, _editor, _languageService, _openerService, _keybindingService, _hoverService, _configurationService, _onFinishedRendering) {\n        super();\n        this._editor = _editor;\n        this._languageService = _languageService;\n        this._openerService = _openerService;\n        this._keybindingService = _keybindingService;\n        this._hoverService = _hoverService;\n        this._configurationService = _configurationService;\n        this._onFinishedRendering = _onFinishedRendering;\n        this._focusedHoverPartIndex = -1;\n        this._ongoingHoverOperations = new Map();\n        this._renderedHoverParts = this._renderHoverParts(hoverParts, hoverPartsContainer, this._onFinishedRendering);\n        this._register(toDisposable(() => {\n            this._renderedHoverParts.forEach(renderedHoverPart => {\n                renderedHoverPart.disposables.dispose();\n            });\n        }));\n        this._register(toDisposable(() => {\n            this._ongoingHoverOperations.forEach(operation => { operation.tokenSource.dispose(true); });\n        }));\n    }\n    _renderHoverParts(hoverParts, hoverPartsContainer, onFinishedRendering) {\n        hoverParts.sort(compareBy(hover => hover.ordinal, numberComparator));\n        return hoverParts.map((hoverPart, hoverIndex) => {\n            const renderedHoverPart = this._renderHoverPart(hoverIndex, hoverPart.contents, hoverPart.source, onFinishedRendering);\n            hoverPartsContainer.appendChild(renderedHoverPart.renderedMarkdown);\n            return renderedHoverPart;\n        });\n    }\n    _renderHoverPart(hoverPartIndex, hoverContents, hoverSource, onFinishedRendering) {\n        const { renderedMarkdown, disposables } = this._renderMarkdownContent(hoverContents, onFinishedRendering);\n        if (!hoverSource) {\n            return { renderedMarkdown, disposables };\n        }\n        const canIncreaseVerbosity = hoverSource.supportsVerbosityAction(HoverVerbosityAction.Increase);\n        const canDecreaseVerbosity = hoverSource.supportsVerbosityAction(HoverVerbosityAction.Decrease);\n        if (!canIncreaseVerbosity && !canDecreaseVerbosity) {\n            return { renderedMarkdown, disposables, hoverSource };\n        }\n        const actionsContainer = $('div.verbosity-actions');\n        renderedMarkdown.prepend(actionsContainer);\n        disposables.add(this._renderHoverExpansionAction(actionsContainer, HoverVerbosityAction.Increase, canIncreaseVerbosity));\n        disposables.add(this._renderHoverExpansionAction(actionsContainer, HoverVerbosityAction.Decrease, canDecreaseVerbosity));\n        this._register(dom.addDisposableListener(renderedMarkdown, dom.EventType.FOCUS_IN, (event) => {\n            event.stopPropagation();\n            this._focusedHoverPartIndex = hoverPartIndex;\n        }));\n        this._register(dom.addDisposableListener(renderedMarkdown, dom.EventType.FOCUS_OUT, (event) => {\n            event.stopPropagation();\n            this._focusedHoverPartIndex = -1;\n        }));\n        return { renderedMarkdown, disposables, hoverSource };\n    }\n    _renderMarkdownContent(markdownContent, onFinishedRendering) {\n        const renderedMarkdown = $('div.hover-row');\n        renderedMarkdown.tabIndex = 0;\n        const renderedMarkdownContents = $('div.hover-row-contents');\n        renderedMarkdown.appendChild(renderedMarkdownContents);\n        const disposables = new DisposableStore();\n        disposables.add(renderMarkdownInContainer(this._editor, renderedMarkdownContents, markdownContent, this._languageService, this._openerService, onFinishedRendering));\n        return { renderedMarkdown, disposables };\n    }\n    _renderHoverExpansionAction(container, action, actionEnabled) {\n        const store = new DisposableStore();\n        const isActionIncrease = action === HoverVerbosityAction.Increase;\n        const actionElement = dom.append(container, $(ThemeIcon.asCSSSelector(isActionIncrease ? increaseHoverVerbosityIcon : decreaseHoverVerbosityIcon)));\n        actionElement.tabIndex = 0;\n        const hoverDelegate = new WorkbenchHoverDelegate('mouse', false, { target: container, position: { hoverPosition: 0 /* HoverPosition.LEFT */ } }, this._configurationService, this._hoverService);\n        store.add(this._hoverService.setupUpdatableHover(hoverDelegate, actionElement, labelForHoverVerbosityAction(this._keybindingService, action)));\n        if (!actionEnabled) {\n            actionElement.classList.add('disabled');\n            return store;\n        }\n        actionElement.classList.add('enabled');\n        const actionFunction = () => this.updateMarkdownHoverPartVerbosityLevel(action);\n        store.add(new ClickAction(actionElement, actionFunction));\n        store.add(new KeyDownAction(actionElement, actionFunction, [3 /* KeyCode.Enter */, 10 /* KeyCode.Space */]));\n        return store;\n    }\n    async updateMarkdownHoverPartVerbosityLevel(action, index = -1, focus = true) {\n        var _a;\n        const model = this._editor.getModel();\n        if (!model) {\n            return;\n        }\n        const indexOfInterest = index !== -1 ? index : this._focusedHoverPartIndex;\n        const hoverRenderedPart = this._getRenderedHoverPartAtIndex(indexOfInterest);\n        if (!hoverRenderedPart || !((_a = hoverRenderedPart.hoverSource) === null || _a === void 0 ? void 0 : _a.supportsVerbosityAction(action))) {\n            return;\n        }\n        const hoverSource = hoverRenderedPart.hoverSource;\n        const newHover = await this._fetchHover(hoverSource, model, action);\n        if (!newHover) {\n            return;\n        }\n        const newHoverSource = new HoverSource(newHover, hoverSource.hoverProvider, hoverSource.hoverPosition);\n        const newHoverRenderedPart = this._renderHoverPart(indexOfInterest, newHover.contents, newHoverSource, this._onFinishedRendering);\n        this._replaceRenderedHoverPartAtIndex(indexOfInterest, newHoverRenderedPart);\n        if (focus) {\n            this._focusOnHoverPartWithIndex(indexOfInterest);\n        }\n        this._onFinishedRendering();\n    }\n    markdownHoverContentAtIndex(index) {\n        var _a;\n        const hoverRenderedPart = this._getRenderedHoverPartAtIndex(index);\n        return (_a = hoverRenderedPart === null || hoverRenderedPart === void 0 ? void 0 : hoverRenderedPart.renderedMarkdown.innerText) !== null && _a !== void 0 ? _a : '';\n    }\n    doesMarkdownHoverAtIndexSupportVerbosityAction(index, action) {\n        var _a;\n        const hoverRenderedPart = this._getRenderedHoverPartAtIndex(index);\n        if (!hoverRenderedPart || !((_a = hoverRenderedPart.hoverSource) === null || _a === void 0 ? void 0 : _a.supportsVerbosityAction(action))) {\n            return false;\n        }\n        return true;\n    }\n    async _fetchHover(hoverSource, model, action) {\n        let verbosityDelta = action === HoverVerbosityAction.Increase ? 1 : -1;\n        const provider = hoverSource.hoverProvider;\n        const ongoingHoverOperation = this._ongoingHoverOperations.get(provider);\n        if (ongoingHoverOperation) {\n            ongoingHoverOperation.tokenSource.cancel();\n            verbosityDelta += ongoingHoverOperation.verbosityDelta;\n        }\n        const tokenSource = new CancellationTokenSource();\n        this._ongoingHoverOperations.set(provider, { verbosityDelta, tokenSource });\n        const context = { verbosityRequest: { verbosityDelta, previousHover: hoverSource.hover } };\n        let hover;\n        try {\n            hover = await Promise.resolve(provider.provideHover(model, hoverSource.hoverPosition, tokenSource.token, context));\n        }\n        catch (e) {\n            onUnexpectedExternalError(e);\n        }\n        tokenSource.dispose();\n        this._ongoingHoverOperations.delete(provider);\n        return hover;\n    }\n    _replaceRenderedHoverPartAtIndex(index, renderedHoverPart) {\n        if (index >= this._renderHoverParts.length || index < 0) {\n            return;\n        }\n        const currentRenderedHoverPart = this._renderedHoverParts[index];\n        const currentRenderedMarkdown = currentRenderedHoverPart.renderedMarkdown;\n        currentRenderedMarkdown.replaceWith(renderedHoverPart.renderedMarkdown);\n        currentRenderedHoverPart.disposables.dispose();\n        this._renderedHoverParts[index] = renderedHoverPart;\n    }\n    _focusOnHoverPartWithIndex(index) {\n        this._renderedHoverParts[index].renderedMarkdown.focus();\n    }\n    _getRenderedHoverPartAtIndex(index) {\n        return this._renderedHoverParts[index];\n    }\n}\nexport function renderMarkdownHovers(context, hoverParts, editor, languageService, openerService) {\n    // Sort hover parts to keep them stable since they might come in async, out-of-order\n    hoverParts.sort(compareBy(hover => hover.ordinal, numberComparator));\n    const disposables = new DisposableStore();\n    for (const hoverPart of hoverParts) {\n        disposables.add(renderMarkdownInContainer(editor, context.fragment, hoverPart.contents, languageService, openerService, context.onContentsChanged));\n    }\n    return disposables;\n}\nfunction renderMarkdownInContainer(editor, container, markdownStrings, languageService, openerService, onFinishedRendering) {\n    const store = new DisposableStore();\n    for (const contents of markdownStrings) {\n        if (isEmptyMarkdownString(contents)) {\n            continue;\n        }\n        const markdownHoverElement = $('div.markdown-hover');\n        const hoverContentsElement = dom.append(markdownHoverElement, $('div.hover-contents'));\n        const renderer = store.add(new MarkdownRenderer({ editor }, languageService, openerService));\n        store.add(renderer.onDidRenderAsync(() => {\n            hoverContentsElement.className = 'hover-contents code-hover-contents';\n            onFinishedRendering();\n        }));\n        const renderedContents = store.add(renderer.render(contents));\n        hoverContentsElement.appendChild(renderedContents.element);\n        container.appendChild(markdownHoverElement);\n    }\n    return store;\n}\nexport function labelForHoverVerbosityAction(keybindingService, action) {\n    switch (action) {\n        case HoverVerbosityAction.Increase: {\n            const kb = keybindingService.lookupKeybinding(INCREASE_HOVER_VERBOSITY_ACTION_ID);\n            return kb ?\n                nls.localize('increaseVerbosityWithKb', \"Increase Hover Verbosity ({0})\", kb.getLabel()) :\n                nls.localize('increaseVerbosity', \"Increase Hover Verbosity\");\n        }\n        case HoverVerbosityAction.Decrease: {\n            const kb = keybindingService.lookupKeybinding(DECREASE_HOVER_VERBOSITY_ACTION_ID);\n            return kb ?\n                nls.localize('decreaseVerbosityWithKb', \"Decrease Hover Verbosity ({0})\", kb.getLabel()) :\n                nls.localize('decreaseVerbosity', \"Decrease Hover Verbosity\");\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/hover/browser/markerHoverParticipant.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport * as dom from '../../../../base/browser/dom.js';\nimport { isNonEmptyArray } from '../../../../base/common/arrays.js';\nimport { createCancelablePromise, disposableTimeout } from '../../../../base/common/async.js';\nimport { onUnexpectedError } from '../../../../base/common/errors.js';\nimport { Disposable, DisposableStore, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { basename } from '../../../../base/common/resources.js';\nimport { Range } from '../../../common/core/range.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { IMarkerDecorationsService } from '../../../common/services/markerDecorations.js';\nimport { getCodeActions, quickFixCommandId } from '../../codeAction/browser/codeAction.js';\nimport { CodeActionController } from '../../codeAction/browser/codeActionController.js';\nimport { CodeActionKind, CodeActionTriggerSource } from '../../codeAction/common/types.js';\nimport { MarkerController, NextMarkerAction } from '../../gotoError/browser/gotoError.js';\nimport * as nls from '../../../../nls.js';\nimport { IMarkerData, MarkerSeverity } from '../../../../platform/markers/common/markers.js';\nimport { IOpenerService } from '../../../../platform/opener/common/opener.js';\nimport { Progress } from '../../../../platform/progress/common/progress.js';\nconst $ = dom.$;\nexport class MarkerHover {\n    constructor(owner, range, marker) {\n        this.owner = owner;\n        this.range = range;\n        this.marker = marker;\n    }\n    isValidForHoverAnchor(anchor) {\n        return (anchor.type === 1 /* HoverAnchorType.Range */\n            && this.range.startColumn <= anchor.range.startColumn\n            && this.range.endColumn >= anchor.range.endColumn);\n    }\n}\nconst markerCodeActionTrigger = {\n    type: 1 /* CodeActionTriggerType.Invoke */,\n    filter: { include: CodeActionKind.QuickFix },\n    triggerAction: CodeActionTriggerSource.QuickFixHover\n};\nlet MarkerHoverParticipant = class MarkerHoverParticipant {\n    constructor(_editor, _markerDecorationsService, _openerService, _languageFeaturesService) {\n        this._editor = _editor;\n        this._markerDecorationsService = _markerDecorationsService;\n        this._openerService = _openerService;\n        this._languageFeaturesService = _languageFeaturesService;\n        this.hoverOrdinal = 1;\n        this.recentMarkerCodeActionsInfo = undefined;\n    }\n    computeSync(anchor, lineDecorations) {\n        if (!this._editor.hasModel() || anchor.type !== 1 /* HoverAnchorType.Range */ && !anchor.supportsMarkerHover) {\n            return [];\n        }\n        const model = this._editor.getModel();\n        const lineNumber = anchor.range.startLineNumber;\n        const maxColumn = model.getLineMaxColumn(lineNumber);\n        const result = [];\n        for (const d of lineDecorations) {\n            const startColumn = (d.range.startLineNumber === lineNumber) ? d.range.startColumn : 1;\n            const endColumn = (d.range.endLineNumber === lineNumber) ? d.range.endColumn : maxColumn;\n            const marker = this._markerDecorationsService.getMarker(model.uri, d);\n            if (!marker) {\n                continue;\n            }\n            const range = new Range(anchor.range.startLineNumber, startColumn, anchor.range.startLineNumber, endColumn);\n            result.push(new MarkerHover(this, range, marker));\n        }\n        return result;\n    }\n    renderHoverParts(context, hoverParts) {\n        if (!hoverParts.length) {\n            return Disposable.None;\n        }\n        const disposables = new DisposableStore();\n        hoverParts.forEach(msg => context.fragment.appendChild(this.renderMarkerHover(msg, disposables)));\n        const markerHoverForStatusbar = hoverParts.length === 1 ? hoverParts[0] : hoverParts.sort((a, b) => MarkerSeverity.compare(a.marker.severity, b.marker.severity))[0];\n        this.renderMarkerStatusbar(context, markerHoverForStatusbar, disposables);\n        return disposables;\n    }\n    renderMarkerHover(markerHover, disposables) {\n        const hoverElement = $('div.hover-row');\n        hoverElement.tabIndex = 0;\n        const markerElement = dom.append(hoverElement, $('div.marker.hover-contents'));\n        const { source, message, code, relatedInformation } = markerHover.marker;\n        this._editor.applyFontInfo(markerElement);\n        const messageElement = dom.append(markerElement, $('span'));\n        messageElement.style.whiteSpace = 'pre-wrap';\n        messageElement.innerText = message;\n        if (source || code) {\n            // Code has link\n            if (code && typeof code !== 'string') {\n                const sourceAndCodeElement = $('span');\n                if (source) {\n                    const sourceElement = dom.append(sourceAndCodeElement, $('span'));\n                    sourceElement.innerText = source;\n                }\n                const codeLink = dom.append(sourceAndCodeElement, $('a.code-link'));\n                codeLink.setAttribute('href', code.target.toString());\n                disposables.add(dom.addDisposableListener(codeLink, 'click', (e) => {\n                    this._openerService.open(code.target, { allowCommands: true });\n                    e.preventDefault();\n                    e.stopPropagation();\n                }));\n                const codeElement = dom.append(codeLink, $('span'));\n                codeElement.innerText = code.value;\n                const detailsElement = dom.append(markerElement, sourceAndCodeElement);\n                detailsElement.style.opacity = '0.6';\n                detailsElement.style.paddingLeft = '6px';\n            }\n            else {\n                const detailsElement = dom.append(markerElement, $('span'));\n                detailsElement.style.opacity = '0.6';\n                detailsElement.style.paddingLeft = '6px';\n                detailsElement.innerText = source && code ? `${source}(${code})` : source ? source : `(${code})`;\n            }\n        }\n        if (isNonEmptyArray(relatedInformation)) {\n            for (const { message, resource, startLineNumber, startColumn } of relatedInformation) {\n                const relatedInfoContainer = dom.append(markerElement, $('div'));\n                relatedInfoContainer.style.marginTop = '8px';\n                const a = dom.append(relatedInfoContainer, $('a'));\n                a.innerText = `${basename(resource)}(${startLineNumber}, ${startColumn}): `;\n                a.style.cursor = 'pointer';\n                disposables.add(dom.addDisposableListener(a, 'click', (e) => {\n                    e.stopPropagation();\n                    e.preventDefault();\n                    if (this._openerService) {\n                        this._openerService.open(resource, {\n                            fromUserGesture: true,\n                            editorOptions: { selection: { startLineNumber, startColumn } }\n                        }).catch(onUnexpectedError);\n                    }\n                }));\n                const messageElement = dom.append(relatedInfoContainer, $('span'));\n                messageElement.innerText = message;\n                this._editor.applyFontInfo(messageElement);\n            }\n        }\n        return hoverElement;\n    }\n    renderMarkerStatusbar(context, markerHover, disposables) {\n        if (markerHover.marker.severity === MarkerSeverity.Error || markerHover.marker.severity === MarkerSeverity.Warning || markerHover.marker.severity === MarkerSeverity.Info) {\n            const markerController = MarkerController.get(this._editor);\n            if (markerController) {\n                context.statusBar.addAction({\n                    label: nls.localize('view problem', \"View Problem\"),\n                    commandId: NextMarkerAction.ID,\n                    run: () => {\n                        context.hide();\n                        markerController.showAtMarker(markerHover.marker);\n                        this._editor.focus();\n                    }\n                });\n            }\n        }\n        if (!this._editor.getOption(91 /* EditorOption.readOnly */)) {\n            const quickfixPlaceholderElement = context.statusBar.append($('div'));\n            if (this.recentMarkerCodeActionsInfo) {\n                if (IMarkerData.makeKey(this.recentMarkerCodeActionsInfo.marker) === IMarkerData.makeKey(markerHover.marker)) {\n                    if (!this.recentMarkerCodeActionsInfo.hasCodeActions) {\n                        quickfixPlaceholderElement.textContent = nls.localize('noQuickFixes', \"No quick fixes available\");\n                    }\n                }\n                else {\n                    this.recentMarkerCodeActionsInfo = undefined;\n                }\n            }\n            const updatePlaceholderDisposable = this.recentMarkerCodeActionsInfo && !this.recentMarkerCodeActionsInfo.hasCodeActions ? Disposable.None : disposableTimeout(() => quickfixPlaceholderElement.textContent = nls.localize('checkingForQuickFixes', \"Checking for quick fixes...\"), 200, disposables);\n            if (!quickfixPlaceholderElement.textContent) {\n                // Have some content in here to avoid flickering\n                quickfixPlaceholderElement.textContent = String.fromCharCode(0xA0); // &nbsp;\n            }\n            const codeActionsPromise = this.getCodeActions(markerHover.marker);\n            disposables.add(toDisposable(() => codeActionsPromise.cancel()));\n            codeActionsPromise.then(actions => {\n                updatePlaceholderDisposable.dispose();\n                this.recentMarkerCodeActionsInfo = { marker: markerHover.marker, hasCodeActions: actions.validActions.length > 0 };\n                if (!this.recentMarkerCodeActionsInfo.hasCodeActions) {\n                    actions.dispose();\n                    quickfixPlaceholderElement.textContent = nls.localize('noQuickFixes', \"No quick fixes available\");\n                    return;\n                }\n                quickfixPlaceholderElement.style.display = 'none';\n                let showing = false;\n                disposables.add(toDisposable(() => {\n                    if (!showing) {\n                        actions.dispose();\n                    }\n                }));\n                context.statusBar.addAction({\n                    label: nls.localize('quick fixes', \"Quick Fix...\"),\n                    commandId: quickFixCommandId,\n                    run: (target) => {\n                        showing = true;\n                        const controller = CodeActionController.get(this._editor);\n                        const elementPosition = dom.getDomNodePagePosition(target);\n                        // Hide the hover pre-emptively, otherwise the editor can close the code actions\n                        // context menu as well when using keyboard navigation\n                        context.hide();\n                        controller === null || controller === void 0 ? void 0 : controller.showCodeActions(markerCodeActionTrigger, actions, {\n                            x: elementPosition.left,\n                            y: elementPosition.top,\n                            width: elementPosition.width,\n                            height: elementPosition.height\n                        });\n                    }\n                });\n            }, onUnexpectedError);\n        }\n    }\n    getCodeActions(marker) {\n        return createCancelablePromise(cancellationToken => {\n            return getCodeActions(this._languageFeaturesService.codeActionProvider, this._editor.getModel(), new Range(marker.startLineNumber, marker.startColumn, marker.endLineNumber, marker.endColumn), markerCodeActionTrigger, Progress.None, cancellationToken);\n        });\n    }\n};\nMarkerHoverParticipant = __decorate([\n    __param(1, IMarkerDecorationsService),\n    __param(2, IOpenerService),\n    __param(3, ILanguageFeaturesService)\n], MarkerHoverParticipant);\nexport { MarkerHoverParticipant };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/hover/browser/resizableContentWidget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { ResizableHTMLElement } from '../../../../base/browser/ui/resizable/resizable.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { Position } from '../../../common/core/position.js';\nimport * as dom from '../../../../base/browser/dom.js';\nconst TOP_HEIGHT = 30;\nconst BOTTOM_HEIGHT = 24;\nexport class ResizableContentWidget extends Disposable {\n    constructor(_editor, minimumSize = new dom.Dimension(10, 10)) {\n        super();\n        this._editor = _editor;\n        this.allowEditorOverflow = true;\n        this.suppressMouseDown = false;\n        this._resizableNode = this._register(new ResizableHTMLElement());\n        this._contentPosition = null;\n        this._isResizing = false;\n        this._resizableNode.domNode.style.position = 'absolute';\n        this._resizableNode.minSize = dom.Dimension.lift(minimumSize);\n        this._resizableNode.layout(minimumSize.height, minimumSize.width);\n        this._resizableNode.enableSashes(true, true, true, true);\n        this._register(this._resizableNode.onDidResize(e => {\n            this._resize(new dom.Dimension(e.dimension.width, e.dimension.height));\n            if (e.done) {\n                this._isResizing = false;\n            }\n        }));\n        this._register(this._resizableNode.onDidWillResize(() => {\n            this._isResizing = true;\n        }));\n    }\n    get isResizing() {\n        return this._isResizing;\n    }\n    getDomNode() {\n        return this._resizableNode.domNode;\n    }\n    getPosition() {\n        return this._contentPosition;\n    }\n    get position() {\n        var _a;\n        return ((_a = this._contentPosition) === null || _a === void 0 ? void 0 : _a.position) ? Position.lift(this._contentPosition.position) : undefined;\n    }\n    _availableVerticalSpaceAbove(position) {\n        const editorDomNode = this._editor.getDomNode();\n        const mouseBox = this._editor.getScrolledVisiblePosition(position);\n        if (!editorDomNode || !mouseBox) {\n            return;\n        }\n        const editorBox = dom.getDomNodePagePosition(editorDomNode);\n        return editorBox.top + mouseBox.top - TOP_HEIGHT;\n    }\n    _availableVerticalSpaceBelow(position) {\n        const editorDomNode = this._editor.getDomNode();\n        const mouseBox = this._editor.getScrolledVisiblePosition(position);\n        if (!editorDomNode || !mouseBox) {\n            return;\n        }\n        const editorBox = dom.getDomNodePagePosition(editorDomNode);\n        const bodyBox = dom.getClientArea(editorDomNode.ownerDocument.body);\n        const mouseBottom = editorBox.top + mouseBox.top + mouseBox.height;\n        return bodyBox.height - mouseBottom - BOTTOM_HEIGHT;\n    }\n    _findPositionPreference(widgetHeight, showAtPosition) {\n        var _a, _b;\n        const maxHeightBelow = Math.min((_a = this._availableVerticalSpaceBelow(showAtPosition)) !== null && _a !== void 0 ? _a : Infinity, widgetHeight);\n        const maxHeightAbove = Math.min((_b = this._availableVerticalSpaceAbove(showAtPosition)) !== null && _b !== void 0 ? _b : Infinity, widgetHeight);\n        const maxHeight = Math.min(Math.max(maxHeightAbove, maxHeightBelow), widgetHeight);\n        const height = Math.min(widgetHeight, maxHeight);\n        let renderingAbove;\n        if (this._editor.getOption(60 /* EditorOption.hover */).above) {\n            renderingAbove = height <= maxHeightAbove ? 1 /* ContentWidgetPositionPreference.ABOVE */ : 2 /* ContentWidgetPositionPreference.BELOW */;\n        }\n        else {\n            renderingAbove = height <= maxHeightBelow ? 2 /* ContentWidgetPositionPreference.BELOW */ : 1 /* ContentWidgetPositionPreference.ABOVE */;\n        }\n        if (renderingAbove === 1 /* ContentWidgetPositionPreference.ABOVE */) {\n            this._resizableNode.enableSashes(true, true, false, false);\n        }\n        else {\n            this._resizableNode.enableSashes(false, true, true, false);\n        }\n        return renderingAbove;\n    }\n    _resize(dimension) {\n        this._resizableNode.layout(dimension.height, dimension.width);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n\n.monaco-editor.vs .valueSetReplacement {\n\toutline: solid 2px var(--vscode-editorBracketMatch-border);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar InPlaceReplaceController_1;\nimport { createCancelablePromise, timeout } from '../../../../base/common/async.js';\nimport { onUnexpectedError } from '../../../../base/common/errors.js';\nimport { EditorState } from '../../editorState/browser/editorState.js';\nimport { EditorAction, registerEditorAction, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { IEditorWorkerService } from '../../../common/services/editorWorker.js';\nimport * as nls from '../../../../nls.js';\nimport { InPlaceReplaceCommand } from './inPlaceReplaceCommand.js';\nimport './inPlaceReplace.css';\nlet InPlaceReplaceController = InPlaceReplaceController_1 = class InPlaceReplaceController {\n    static get(editor) {\n        return editor.getContribution(InPlaceReplaceController_1.ID);\n    }\n    constructor(editor, editorWorkerService) {\n        this.editor = editor;\n        this.editorWorkerService = editorWorkerService;\n        this.decorations = this.editor.createDecorationsCollection();\n    }\n    dispose() {\n    }\n    run(source, up) {\n        var _a;\n        // cancel any pending request\n        (_a = this.currentRequest) === null || _a === void 0 ? void 0 : _a.cancel();\n        const editorSelection = this.editor.getSelection();\n        const model = this.editor.getModel();\n        if (!model || !editorSelection) {\n            return undefined;\n        }\n        let selection = editorSelection;\n        if (selection.startLineNumber !== selection.endLineNumber) {\n            // Can't accept multiline selection\n            return undefined;\n        }\n        const state = new EditorState(this.editor, 1 /* CodeEditorStateFlag.Value */ | 4 /* CodeEditorStateFlag.Position */);\n        const modelURI = model.uri;\n        if (!this.editorWorkerService.canNavigateValueSet(modelURI)) {\n            return Promise.resolve(undefined);\n        }\n        this.currentRequest = createCancelablePromise(token => this.editorWorkerService.navigateValueSet(modelURI, selection, up));\n        return this.currentRequest.then(result => {\n            var _a;\n            if (!result || !result.range || !result.value) {\n                // No proper result\n                return;\n            }\n            if (!state.validate(this.editor)) {\n                // state has changed\n                return;\n            }\n            // Selection\n            const editRange = Range.lift(result.range);\n            let highlightRange = result.range;\n            const diff = result.value.length - (selection.endColumn - selection.startColumn);\n            // highlight\n            highlightRange = {\n                startLineNumber: highlightRange.startLineNumber,\n                startColumn: highlightRange.startColumn,\n                endLineNumber: highlightRange.endLineNumber,\n                endColumn: highlightRange.startColumn + result.value.length\n            };\n            if (diff > 1) {\n                selection = new Selection(selection.startLineNumber, selection.startColumn, selection.endLineNumber, selection.endColumn + diff - 1);\n            }\n            // Insert new text\n            const command = new InPlaceReplaceCommand(editRange, selection, result.value);\n            this.editor.pushUndoStop();\n            this.editor.executeCommand(source, command);\n            this.editor.pushUndoStop();\n            // add decoration\n            this.decorations.set([{\n                    range: highlightRange,\n                    options: InPlaceReplaceController_1.DECORATION\n                }]);\n            // remove decoration after delay\n            (_a = this.decorationRemover) === null || _a === void 0 ? void 0 : _a.cancel();\n            this.decorationRemover = timeout(350);\n            this.decorationRemover.then(() => this.decorations.clear()).catch(onUnexpectedError);\n        }).catch(onUnexpectedError);\n    }\n};\nInPlaceReplaceController.ID = 'editor.contrib.inPlaceReplaceController';\nInPlaceReplaceController.DECORATION = ModelDecorationOptions.register({\n    description: 'in-place-replace',\n    className: 'valueSetReplacement'\n});\nInPlaceReplaceController = InPlaceReplaceController_1 = __decorate([\n    __param(1, IEditorWorkerService)\n], InPlaceReplaceController);\nclass InPlaceReplaceUp extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.inPlaceReplace.up',\n            label: nls.localize('InPlaceReplaceAction.previous.label', \"Replace with Previous Value\"),\n            alias: 'Replace with Previous Value',\n            precondition: EditorContextKeys.writable,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 87 /* KeyCode.Comma */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    run(accessor, editor) {\n        const controller = InPlaceReplaceController.get(editor);\n        if (!controller) {\n            return Promise.resolve(undefined);\n        }\n        return controller.run(this.id, false);\n    }\n}\nclass InPlaceReplaceDown extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.inPlaceReplace.down',\n            label: nls.localize('InPlaceReplaceAction.next.label', \"Replace with Next Value\"),\n            alias: 'Replace with Next Value',\n            precondition: EditorContextKeys.writable,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 89 /* KeyCode.Period */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    run(accessor, editor) {\n        const controller = InPlaceReplaceController.get(editor);\n        if (!controller) {\n            return Promise.resolve(undefined);\n        }\n        return controller.run(this.id, true);\n    }\n}\nregisterEditorContribution(InPlaceReplaceController.ID, InPlaceReplaceController, 4 /* EditorContributionInstantiation.Lazy */);\nregisterEditorAction(InPlaceReplaceUp);\nregisterEditorAction(InPlaceReplaceDown);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplaceCommand.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Selection } from '../../../common/core/selection.js';\nexport class InPlaceReplaceCommand {\n    constructor(editRange, originalSelection, text) {\n        this._editRange = editRange;\n        this._originalSelection = originalSelection;\n        this._text = text;\n    }\n    getEditOperations(model, builder) {\n        builder.addTrackedEditOperation(this._editRange, this._text);\n    }\n    computeCursorState(model, helper) {\n        const inverseEditOperations = helper.getInverseEditOperations();\n        const srcRange = inverseEditOperations[0].range;\n        if (!this._originalSelection.isEmpty()) {\n            // Preserve selection and extends to typed text\n            return new Selection(srcRange.endLineNumber, srcRange.endColumn - this._text.length, srcRange.endLineNumber, srcRange.endColumn);\n        }\n        return new Selection(srcRange.endLineNumber, Math.min(this._originalSelection.positionColumn, srcRange.endColumn), srcRange.endLineNumber, Math.min(this._originalSelection.positionColumn, srcRange.endColumn));\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/indentation/browser/indentation.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/indentation/browser/indentation.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport * as strings from '../../../../base/common/strings.js';\nimport { EditorAction, registerEditorAction, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { ShiftCommand } from '../../../common/commands/shiftCommand.js';\nimport { Range } from '../../../common/core/range.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { IModelService } from '../../../common/services/model.js';\nimport * as indentUtils from '../common/indentUtils.js';\nimport * as nls from '../../../../nls.js';\nimport { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.js';\nimport { getGoodIndentForLine, getIndentMetadata } from '../../../common/languages/autoIndent.js';\nimport { getReindentEditOperations } from '../common/indentation.js';\nimport { getStandardTokenTypeAtPosition } from '../../../common/tokens/lineTokens.js';\nexport class IndentationToSpacesAction extends EditorAction {\n    constructor() {\n        super({\n            id: IndentationToSpacesAction.ID,\n            label: nls.localize('indentationToSpaces', \"Convert Indentation to Spaces\"),\n            alias: 'Convert Indentation to Spaces',\n            precondition: EditorContextKeys.writable,\n            metadata: {\n                description: nls.localize2('indentationToSpacesDescription', \"Convert the tab indentation to spaces.\"),\n            }\n        });\n    }\n    run(accessor, editor) {\n        const model = editor.getModel();\n        if (!model) {\n            return;\n        }\n        const modelOpts = model.getOptions();\n        const selection = editor.getSelection();\n        if (!selection) {\n            return;\n        }\n        const command = new IndentationToSpacesCommand(selection, modelOpts.tabSize);\n        editor.pushUndoStop();\n        editor.executeCommands(this.id, [command]);\n        editor.pushUndoStop();\n        model.updateOptions({\n            insertSpaces: true\n        });\n    }\n}\nIndentationToSpacesAction.ID = 'editor.action.indentationToSpaces';\nexport class IndentationToTabsAction extends EditorAction {\n    constructor() {\n        super({\n            id: IndentationToTabsAction.ID,\n            label: nls.localize('indentationToTabs', \"Convert Indentation to Tabs\"),\n            alias: 'Convert Indentation to Tabs',\n            precondition: EditorContextKeys.writable,\n            metadata: {\n                description: nls.localize2('indentationToTabsDescription', \"Convert the spaces indentation to tabs.\"),\n            }\n        });\n    }\n    run(accessor, editor) {\n        const model = editor.getModel();\n        if (!model) {\n            return;\n        }\n        const modelOpts = model.getOptions();\n        const selection = editor.getSelection();\n        if (!selection) {\n            return;\n        }\n        const command = new IndentationToTabsCommand(selection, modelOpts.tabSize);\n        editor.pushUndoStop();\n        editor.executeCommands(this.id, [command]);\n        editor.pushUndoStop();\n        model.updateOptions({\n            insertSpaces: false\n        });\n    }\n}\nIndentationToTabsAction.ID = 'editor.action.indentationToTabs';\nexport class ChangeIndentationSizeAction extends EditorAction {\n    constructor(insertSpaces, displaySizeOnly, opts) {\n        super(opts);\n        this.insertSpaces = insertSpaces;\n        this.displaySizeOnly = displaySizeOnly;\n    }\n    run(accessor, editor) {\n        const quickInputService = accessor.get(IQuickInputService);\n        const modelService = accessor.get(IModelService);\n        const model = editor.getModel();\n        if (!model) {\n            return;\n        }\n        const creationOpts = modelService.getCreationOptions(model.getLanguageId(), model.uri, model.isForSimpleWidget);\n        const modelOpts = model.getOptions();\n        const picks = [1, 2, 3, 4, 5, 6, 7, 8].map(n => ({\n            id: n.toString(),\n            label: n.toString(),\n            // add description for tabSize value set in the configuration\n            description: (n === creationOpts.tabSize && n === modelOpts.tabSize\n                ? nls.localize('configuredTabSize', \"Configured Tab Size\")\n                : n === creationOpts.tabSize\n                    ? nls.localize('defaultTabSize', \"Default Tab Size\")\n                    : n === modelOpts.tabSize\n                        ? nls.localize('currentTabSize', \"Current Tab Size\")\n                        : undefined)\n        }));\n        // auto focus the tabSize set for the current editor\n        const autoFocusIndex = Math.min(model.getOptions().tabSize - 1, 7);\n        setTimeout(() => {\n            quickInputService.pick(picks, { placeHolder: nls.localize({ key: 'selectTabWidth', comment: ['Tab corresponds to the tab key'] }, \"Select Tab Size for Current File\"), activeItem: picks[autoFocusIndex] }).then(pick => {\n                if (pick) {\n                    if (model && !model.isDisposed()) {\n                        const pickedVal = parseInt(pick.label, 10);\n                        if (this.displaySizeOnly) {\n                            model.updateOptions({\n                                tabSize: pickedVal\n                            });\n                        }\n                        else {\n                            model.updateOptions({\n                                tabSize: pickedVal,\n                                indentSize: pickedVal,\n                                insertSpaces: this.insertSpaces\n                            });\n                        }\n                    }\n                }\n            });\n        }, 50 /* quick input is sensitive to being opened so soon after another */);\n    }\n}\nexport class IndentUsingTabs extends ChangeIndentationSizeAction {\n    constructor() {\n        super(false, false, {\n            id: IndentUsingTabs.ID,\n            label: nls.localize('indentUsingTabs', \"Indent Using Tabs\"),\n            alias: 'Indent Using Tabs',\n            precondition: undefined,\n            metadata: {\n                description: nls.localize2('indentUsingTabsDescription', \"Use indentation with tabs.\"),\n            }\n        });\n    }\n}\nIndentUsingTabs.ID = 'editor.action.indentUsingTabs';\nexport class IndentUsingSpaces extends ChangeIndentationSizeAction {\n    constructor() {\n        super(true, false, {\n            id: IndentUsingSpaces.ID,\n            label: nls.localize('indentUsingSpaces', \"Indent Using Spaces\"),\n            alias: 'Indent Using Spaces',\n            precondition: undefined,\n            metadata: {\n                description: nls.localize2('indentUsingSpacesDescription', \"Use indentation with spaces.\"),\n            }\n        });\n    }\n}\nIndentUsingSpaces.ID = 'editor.action.indentUsingSpaces';\nexport class ChangeTabDisplaySize extends ChangeIndentationSizeAction {\n    constructor() {\n        super(true, true, {\n            id: ChangeTabDisplaySize.ID,\n            label: nls.localize('changeTabDisplaySize', \"Change Tab Display Size\"),\n            alias: 'Change Tab Display Size',\n            precondition: undefined,\n            metadata: {\n                description: nls.localize2('changeTabDisplaySizeDescription', \"Change the space size equivalent of the tab.\"),\n            }\n        });\n    }\n}\nChangeTabDisplaySize.ID = 'editor.action.changeTabDisplaySize';\nexport class DetectIndentation extends EditorAction {\n    constructor() {\n        super({\n            id: DetectIndentation.ID,\n            label: nls.localize('detectIndentation', \"Detect Indentation from Content\"),\n            alias: 'Detect Indentation from Content',\n            precondition: undefined,\n            metadata: {\n                description: nls.localize2('detectIndentationDescription', \"Detect the indentation from content.\"),\n            }\n        });\n    }\n    run(accessor, editor) {\n        const modelService = accessor.get(IModelService);\n        const model = editor.getModel();\n        if (!model) {\n            return;\n        }\n        const creationOpts = modelService.getCreationOptions(model.getLanguageId(), model.uri, model.isForSimpleWidget);\n        model.detectIndentation(creationOpts.insertSpaces, creationOpts.tabSize);\n    }\n}\nDetectIndentation.ID = 'editor.action.detectIndentation';\nexport class ReindentLinesAction extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.reindentlines',\n            label: nls.localize('editor.reindentlines', \"Reindent Lines\"),\n            alias: 'Reindent Lines',\n            precondition: EditorContextKeys.writable,\n            metadata: {\n                description: nls.localize2('editor.reindentlinesDescription', \"Reindent the lines of the editor.\"),\n            }\n        });\n    }\n    run(accessor, editor) {\n        const languageConfigurationService = accessor.get(ILanguageConfigurationService);\n        const model = editor.getModel();\n        if (!model) {\n            return;\n        }\n        const edits = getReindentEditOperations(model, languageConfigurationService, 1, model.getLineCount());\n        if (edits.length > 0) {\n            editor.pushUndoStop();\n            editor.executeEdits(this.id, edits);\n            editor.pushUndoStop();\n        }\n    }\n}\nexport class ReindentSelectedLinesAction extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.reindentselectedlines',\n            label: nls.localize('editor.reindentselectedlines', \"Reindent Selected Lines\"),\n            alias: 'Reindent Selected Lines',\n            precondition: EditorContextKeys.writable,\n            metadata: {\n                description: nls.localize2('editor.reindentselectedlinesDescription', \"Reindent the selected lines of the editor.\"),\n            }\n        });\n    }\n    run(accessor, editor) {\n        const languageConfigurationService = accessor.get(ILanguageConfigurationService);\n        const model = editor.getModel();\n        if (!model) {\n            return;\n        }\n        const selections = editor.getSelections();\n        if (selections === null) {\n            return;\n        }\n        const edits = [];\n        for (const selection of selections) {\n            let startLineNumber = selection.startLineNumber;\n            let endLineNumber = selection.endLineNumber;\n            if (startLineNumber !== endLineNumber && selection.endColumn === 1) {\n                endLineNumber--;\n            }\n            if (startLineNumber === 1) {\n                if (startLineNumber === endLineNumber) {\n                    continue;\n                }\n            }\n            else {\n                startLineNumber--;\n            }\n            const editOperations = getReindentEditOperations(model, languageConfigurationService, startLineNumber, endLineNumber);\n            edits.push(...editOperations);\n        }\n        if (edits.length > 0) {\n            editor.pushUndoStop();\n            editor.executeEdits(this.id, edits);\n            editor.pushUndoStop();\n        }\n    }\n}\nexport class AutoIndentOnPasteCommand {\n    constructor(edits, initialSelection) {\n        this._initialSelection = initialSelection;\n        this._edits = [];\n        this._selectionId = null;\n        for (const edit of edits) {\n            if (edit.range && typeof edit.text === 'string') {\n                this._edits.push(edit);\n            }\n        }\n    }\n    getEditOperations(model, builder) {\n        for (const edit of this._edits) {\n            builder.addEditOperation(Range.lift(edit.range), edit.text);\n        }\n        let selectionIsSet = false;\n        if (Array.isArray(this._edits) && this._edits.length === 1 && this._initialSelection.isEmpty()) {\n            if (this._edits[0].range.startColumn === this._initialSelection.endColumn &&\n                this._edits[0].range.startLineNumber === this._initialSelection.endLineNumber) {\n                selectionIsSet = true;\n                this._selectionId = builder.trackSelection(this._initialSelection, true);\n            }\n            else if (this._edits[0].range.endColumn === this._initialSelection.startColumn &&\n                this._edits[0].range.endLineNumber === this._initialSelection.startLineNumber) {\n                selectionIsSet = true;\n                this._selectionId = builder.trackSelection(this._initialSelection, false);\n            }\n        }\n        if (!selectionIsSet) {\n            this._selectionId = builder.trackSelection(this._initialSelection);\n        }\n    }\n    computeCursorState(model, helper) {\n        return helper.getTrackedSelection(this._selectionId);\n    }\n}\nlet AutoIndentOnPaste = class AutoIndentOnPaste {\n    constructor(editor, _languageConfigurationService) {\n        this.editor = editor;\n        this._languageConfigurationService = _languageConfigurationService;\n        this.callOnDispose = new DisposableStore();\n        this.callOnModel = new DisposableStore();\n        this.callOnDispose.add(editor.onDidChangeConfiguration(() => this.update()));\n        this.callOnDispose.add(editor.onDidChangeModel(() => this.update()));\n        this.callOnDispose.add(editor.onDidChangeModelLanguage(() => this.update()));\n    }\n    update() {\n        // clean up\n        this.callOnModel.clear();\n        // we are disabled\n        if (this.editor.getOption(12 /* EditorOption.autoIndent */) < 4 /* EditorAutoIndentStrategy.Full */ || this.editor.getOption(55 /* EditorOption.formatOnPaste */)) {\n            return;\n        }\n        // no model\n        if (!this.editor.hasModel()) {\n            return;\n        }\n        this.callOnModel.add(this.editor.onDidPaste(({ range }) => {\n            this.trigger(range);\n        }));\n    }\n    trigger(range) {\n        const selections = this.editor.getSelections();\n        if (selections === null || selections.length > 1) {\n            return;\n        }\n        const model = this.editor.getModel();\n        if (!model) {\n            return;\n        }\n        if (isStartOrEndInString(model, range)) {\n            return;\n        }\n        if (!model.tokenization.isCheapToTokenize(range.getStartPosition().lineNumber)) {\n            return;\n        }\n        const autoIndent = this.editor.getOption(12 /* EditorOption.autoIndent */);\n        const { tabSize, indentSize, insertSpaces } = model.getOptions();\n        const textEdits = [];\n        const indentConverter = {\n            shiftIndent: (indentation) => {\n                return ShiftCommand.shiftIndent(indentation, indentation.length + 1, tabSize, indentSize, insertSpaces);\n            },\n            unshiftIndent: (indentation) => {\n                return ShiftCommand.unshiftIndent(indentation, indentation.length + 1, tabSize, indentSize, insertSpaces);\n            }\n        };\n        let startLineNumber = range.startLineNumber;\n        while (startLineNumber <= range.endLineNumber) {\n            if (this.shouldIgnoreLine(model, startLineNumber)) {\n                startLineNumber++;\n                continue;\n            }\n            break;\n        }\n        if (startLineNumber > range.endLineNumber) {\n            return;\n        }\n        let firstLineText = model.getLineContent(startLineNumber);\n        if (!/\\S/.test(firstLineText.substring(0, range.startColumn - 1))) {\n            const indentOfFirstLine = getGoodIndentForLine(autoIndent, model, model.getLanguageId(), startLineNumber, indentConverter, this._languageConfigurationService);\n            if (indentOfFirstLine !== null) {\n                const oldIndentation = strings.getLeadingWhitespace(firstLineText);\n                const newSpaceCnt = indentUtils.getSpaceCnt(indentOfFirstLine, tabSize);\n                const oldSpaceCnt = indentUtils.getSpaceCnt(oldIndentation, tabSize);\n                if (newSpaceCnt !== oldSpaceCnt) {\n                    const newIndent = indentUtils.generateIndent(newSpaceCnt, tabSize, insertSpaces);\n                    textEdits.push({\n                        range: new Range(startLineNumber, 1, startLineNumber, oldIndentation.length + 1),\n                        text: newIndent\n                    });\n                    firstLineText = newIndent + firstLineText.substr(oldIndentation.length);\n                }\n                else {\n                    const indentMetadata = getIndentMetadata(model, startLineNumber, this._languageConfigurationService);\n                    if (indentMetadata === 0 || indentMetadata === 8 /* IndentConsts.UNINDENT_MASK */) {\n                        // we paste content into a line where only contains whitespaces\n                        // after pasting, the indentation of the first line is already correct\n                        // the first line doesn't match any indentation rule\n                        // then no-op.\n                        return;\n                    }\n                }\n            }\n        }\n        const firstLineNumber = startLineNumber;\n        // ignore empty or ignored lines\n        while (startLineNumber < range.endLineNumber) {\n            if (!/\\S/.test(model.getLineContent(startLineNumber + 1))) {\n                startLineNumber++;\n                continue;\n            }\n            break;\n        }\n        if (startLineNumber !== range.endLineNumber) {\n            const virtualModel = {\n                tokenization: {\n                    getLineTokens: (lineNumber) => {\n                        return model.tokenization.getLineTokens(lineNumber);\n                    },\n                    getLanguageId: () => {\n                        return model.getLanguageId();\n                    },\n                    getLanguageIdAtPosition: (lineNumber, column) => {\n                        return model.getLanguageIdAtPosition(lineNumber, column);\n                    },\n                },\n                getLineContent: (lineNumber) => {\n                    if (lineNumber === firstLineNumber) {\n                        return firstLineText;\n                    }\n                    else {\n                        return model.getLineContent(lineNumber);\n                    }\n                }\n            };\n            const indentOfSecondLine = getGoodIndentForLine(autoIndent, virtualModel, model.getLanguageId(), startLineNumber + 1, indentConverter, this._languageConfigurationService);\n            if (indentOfSecondLine !== null) {\n                const newSpaceCntOfSecondLine = indentUtils.getSpaceCnt(indentOfSecondLine, tabSize);\n                const oldSpaceCntOfSecondLine = indentUtils.getSpaceCnt(strings.getLeadingWhitespace(model.getLineContent(startLineNumber + 1)), tabSize);\n                if (newSpaceCntOfSecondLine !== oldSpaceCntOfSecondLine) {\n                    const spaceCntOffset = newSpaceCntOfSecondLine - oldSpaceCntOfSecondLine;\n                    for (let i = startLineNumber + 1; i <= range.endLineNumber; i++) {\n                        const lineContent = model.getLineContent(i);\n                        const originalIndent = strings.getLeadingWhitespace(lineContent);\n                        const originalSpacesCnt = indentUtils.getSpaceCnt(originalIndent, tabSize);\n                        const newSpacesCnt = originalSpacesCnt + spaceCntOffset;\n                        const newIndent = indentUtils.generateIndent(newSpacesCnt, tabSize, insertSpaces);\n                        if (newIndent !== originalIndent) {\n                            textEdits.push({\n                                range: new Range(i, 1, i, originalIndent.length + 1),\n                                text: newIndent\n                            });\n                        }\n                    }\n                }\n            }\n        }\n        if (textEdits.length > 0) {\n            this.editor.pushUndoStop();\n            const cmd = new AutoIndentOnPasteCommand(textEdits, this.editor.getSelection());\n            this.editor.executeCommand('autoIndentOnPaste', cmd);\n            this.editor.pushUndoStop();\n        }\n    }\n    shouldIgnoreLine(model, lineNumber) {\n        model.tokenization.forceTokenization(lineNumber);\n        const nonWhitespaceColumn = model.getLineFirstNonWhitespaceColumn(lineNumber);\n        if (nonWhitespaceColumn === 0) {\n            return true;\n        }\n        const tokens = model.tokenization.getLineTokens(lineNumber);\n        if (tokens.getCount() > 0) {\n            const firstNonWhitespaceTokenIndex = tokens.findTokenIndexAtOffset(nonWhitespaceColumn);\n            if (firstNonWhitespaceTokenIndex >= 0 && tokens.getStandardTokenType(firstNonWhitespaceTokenIndex) === 1 /* StandardTokenType.Comment */) {\n                return true;\n            }\n        }\n        return false;\n    }\n    dispose() {\n        this.callOnDispose.dispose();\n        this.callOnModel.dispose();\n    }\n};\nAutoIndentOnPaste.ID = 'editor.contrib.autoIndentOnPaste';\nAutoIndentOnPaste = __decorate([\n    __param(1, ILanguageConfigurationService)\n], AutoIndentOnPaste);\nexport { AutoIndentOnPaste };\nfunction isStartOrEndInString(model, range) {\n    const isPositionInString = (position) => {\n        const tokenType = getStandardTokenTypeAtPosition(model, position);\n        return tokenType === 2 /* StandardTokenType.String */;\n    };\n    return isPositionInString(range.getStartPosition()) || isPositionInString(range.getEndPosition());\n}\nfunction getIndentationEditOperations(model, builder, tabSize, tabsToSpaces) {\n    if (model.getLineCount() === 1 && model.getLineMaxColumn(1) === 1) {\n        // Model is empty\n        return;\n    }\n    let spaces = '';\n    for (let i = 0; i < tabSize; i++) {\n        spaces += ' ';\n    }\n    const spacesRegExp = new RegExp(spaces, 'gi');\n    for (let lineNumber = 1, lineCount = model.getLineCount(); lineNumber <= lineCount; lineNumber++) {\n        let lastIndentationColumn = model.getLineFirstNonWhitespaceColumn(lineNumber);\n        if (lastIndentationColumn === 0) {\n            lastIndentationColumn = model.getLineMaxColumn(lineNumber);\n        }\n        if (lastIndentationColumn === 1) {\n            continue;\n        }\n        const originalIndentationRange = new Range(lineNumber, 1, lineNumber, lastIndentationColumn);\n        const originalIndentation = model.getValueInRange(originalIndentationRange);\n        const newIndentation = (tabsToSpaces\n            ? originalIndentation.replace(/\\t/ig, spaces)\n            : originalIndentation.replace(spacesRegExp, '\\t'));\n        builder.addEditOperation(originalIndentationRange, newIndentation);\n    }\n}\nexport class IndentationToSpacesCommand {\n    constructor(selection, tabSize) {\n        this.selection = selection;\n        this.tabSize = tabSize;\n        this.selectionId = null;\n    }\n    getEditOperations(model, builder) {\n        this.selectionId = builder.trackSelection(this.selection);\n        getIndentationEditOperations(model, builder, this.tabSize, true);\n    }\n    computeCursorState(model, helper) {\n        return helper.getTrackedSelection(this.selectionId);\n    }\n}\nexport class IndentationToTabsCommand {\n    constructor(selection, tabSize) {\n        this.selection = selection;\n        this.tabSize = tabSize;\n        this.selectionId = null;\n    }\n    getEditOperations(model, builder) {\n        this.selectionId = builder.trackSelection(this.selection);\n        getIndentationEditOperations(model, builder, this.tabSize, false);\n    }\n    computeCursorState(model, helper) {\n        return helper.getTrackedSelection(this.selectionId);\n    }\n}\nregisterEditorContribution(AutoIndentOnPaste.ID, AutoIndentOnPaste, 2 /* EditorContributionInstantiation.BeforeFirstInteraction */);\nregisterEditorAction(IndentationToSpacesAction);\nregisterEditorAction(IndentationToTabsAction);\nregisterEditorAction(IndentUsingTabs);\nregisterEditorAction(IndentUsingSpaces);\nregisterEditorAction(ChangeTabDisplaySize);\nregisterEditorAction(DetectIndentation);\nregisterEditorAction(ReindentLinesAction);\nregisterEditorAction(ReindentSelectedLinesAction);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/indentation/common/indentUtils.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport function getSpaceCnt(str, tabSize) {\n    let spacesCnt = 0;\n    for (let i = 0; i < str.length; i++) {\n        if (str.charAt(i) === '\\t') {\n            spacesCnt += tabSize;\n        }\n        else {\n            spacesCnt++;\n        }\n    }\n    return spacesCnt;\n}\nexport function generateIndent(spacesCnt, tabSize, insertSpaces) {\n    spacesCnt = spacesCnt < 0 ? 0 : spacesCnt;\n    let result = '';\n    if (!insertSpaces) {\n        const tabsCnt = Math.floor(spacesCnt / tabSize);\n        spacesCnt = spacesCnt % tabSize;\n        for (let i = 0; i < tabsCnt; i++) {\n            result += '\\t';\n        }\n    }\n    for (let i = 0; i < spacesCnt; i++) {\n        result += ' ';\n    }\n    return result;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/indentation/common/indentation.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../../base/common/strings.js';\nimport { ShiftCommand } from '../../../common/commands/shiftCommand.js';\nimport { EditOperation } from '../../../common/core/editOperation.js';\nimport { normalizeIndentation } from '../../../common/core/indentation.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { ProcessedIndentRulesSupport } from '../../../common/languages/supports/indentationLineProcessor.js';\nexport function getReindentEditOperations(model, languageConfigurationService, startLineNumber, endLineNumber) {\n    if (model.getLineCount() === 1 && model.getLineMaxColumn(1) === 1) {\n        // Model is empty\n        return [];\n    }\n    const indentationRulesSupport = languageConfigurationService.getLanguageConfiguration(model.getLanguageId()).indentRulesSupport;\n    if (!indentationRulesSupport) {\n        return [];\n    }\n    const processedIndentRulesSupport = new ProcessedIndentRulesSupport(model, indentationRulesSupport, languageConfigurationService);\n    endLineNumber = Math.min(endLineNumber, model.getLineCount());\n    // Skip `unIndentedLinePattern` lines\n    while (startLineNumber <= endLineNumber) {\n        if (!processedIndentRulesSupport.shouldIgnore(startLineNumber)) {\n            break;\n        }\n        startLineNumber++;\n    }\n    if (startLineNumber > endLineNumber - 1) {\n        return [];\n    }\n    const { tabSize, indentSize, insertSpaces } = model.getOptions();\n    const shiftIndent = (indentation, count) => {\n        count = count || 1;\n        return ShiftCommand.shiftIndent(indentation, indentation.length + count, tabSize, indentSize, insertSpaces);\n    };\n    const unshiftIndent = (indentation, count) => {\n        count = count || 1;\n        return ShiftCommand.unshiftIndent(indentation, indentation.length + count, tabSize, indentSize, insertSpaces);\n    };\n    const indentEdits = [];\n    // indentation being passed to lines below\n    // Calculate indentation for the first line\n    // If there is no passed-in indentation, we use the indentation of the first line as base.\n    const currentLineText = model.getLineContent(startLineNumber);\n    let globalIndent = strings.getLeadingWhitespace(currentLineText);\n    // idealIndentForNextLine doesn't equal globalIndent when there is a line matching `indentNextLinePattern`.\n    let idealIndentForNextLine = globalIndent;\n    if (processedIndentRulesSupport.shouldIncrease(startLineNumber)) {\n        idealIndentForNextLine = shiftIndent(idealIndentForNextLine);\n        globalIndent = shiftIndent(globalIndent);\n    }\n    else if (processedIndentRulesSupport.shouldIndentNextLine(startLineNumber)) {\n        idealIndentForNextLine = shiftIndent(idealIndentForNextLine);\n    }\n    startLineNumber++;\n    // Calculate indentation adjustment for all following lines\n    for (let lineNumber = startLineNumber; lineNumber <= endLineNumber; lineNumber++) {\n        if (doesLineStartWithString(model, lineNumber)) {\n            continue;\n        }\n        const text = model.getLineContent(lineNumber);\n        const oldIndentation = strings.getLeadingWhitespace(text);\n        const currentIdealIndent = idealIndentForNextLine;\n        if (processedIndentRulesSupport.shouldDecrease(lineNumber, currentIdealIndent)) {\n            idealIndentForNextLine = unshiftIndent(idealIndentForNextLine);\n            globalIndent = unshiftIndent(globalIndent);\n        }\n        if (oldIndentation !== idealIndentForNextLine) {\n            indentEdits.push(EditOperation.replaceMove(new Selection(lineNumber, 1, lineNumber, oldIndentation.length + 1), normalizeIndentation(idealIndentForNextLine, indentSize, insertSpaces)));\n        }\n        // calculate idealIndentForNextLine\n        if (processedIndentRulesSupport.shouldIgnore(lineNumber)) {\n            // In reindent phase, if the line matches `unIndentedLinePattern` we inherit indentation from above lines\n            // but don't change globalIndent and idealIndentForNextLine.\n            continue;\n        }\n        else if (processedIndentRulesSupport.shouldIncrease(lineNumber, currentIdealIndent)) {\n            globalIndent = shiftIndent(globalIndent);\n            idealIndentForNextLine = globalIndent;\n        }\n        else if (processedIndentRulesSupport.shouldIndentNextLine(lineNumber, currentIdealIndent)) {\n            idealIndentForNextLine = shiftIndent(idealIndentForNextLine);\n        }\n        else {\n            idealIndentForNextLine = globalIndent;\n        }\n    }\n    return indentEdits;\n}\nfunction doesLineStartWithString(model, lineNumber) {\n    if (!model.tokenization.isCheapToTokenize(lineNumber)) {\n        return false;\n    }\n    const lineTokens = model.tokenization.getLineTokens(lineNumber);\n    return lineTokens.getStandardTokenType(0) === 2 /* StandardTokenType.String */;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlayHints/browser/inlayHints.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { CancellationError, onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Schemas } from '../../../../base/common/network.js';\nimport { URI } from '../../../../base/common/uri.js';\nexport class InlayHintAnchor {\n    constructor(range, direction) {\n        this.range = range;\n        this.direction = direction;\n    }\n}\nexport class InlayHintItem {\n    constructor(hint, anchor, provider) {\n        this.hint = hint;\n        this.anchor = anchor;\n        this.provider = provider;\n        this._isResolved = false;\n    }\n    with(delta) {\n        const result = new InlayHintItem(this.hint, delta.anchor, this.provider);\n        result._isResolved = this._isResolved;\n        result._currentResolve = this._currentResolve;\n        return result;\n    }\n    async resolve(token) {\n        if (typeof this.provider.resolveInlayHint !== 'function') {\n            return;\n        }\n        if (this._currentResolve) {\n            // wait for an active resolve operation and try again\n            // when that's done.\n            await this._currentResolve;\n            if (token.isCancellationRequested) {\n                return;\n            }\n            return this.resolve(token);\n        }\n        if (!this._isResolved) {\n            this._currentResolve = this._doResolve(token)\n                .finally(() => this._currentResolve = undefined);\n        }\n        await this._currentResolve;\n    }\n    async _doResolve(token) {\n        var _a, _b, _c;\n        try {\n            const newHint = await Promise.resolve(this.provider.resolveInlayHint(this.hint, token));\n            this.hint.tooltip = (_a = newHint === null || newHint === void 0 ? void 0 : newHint.tooltip) !== null && _a !== void 0 ? _a : this.hint.tooltip;\n            this.hint.label = (_b = newHint === null || newHint === void 0 ? void 0 : newHint.label) !== null && _b !== void 0 ? _b : this.hint.label;\n            this.hint.textEdits = (_c = newHint === null || newHint === void 0 ? void 0 : newHint.textEdits) !== null && _c !== void 0 ? _c : this.hint.textEdits;\n            this._isResolved = true;\n        }\n        catch (err) {\n            onUnexpectedExternalError(err);\n            this._isResolved = false;\n        }\n    }\n}\nexport class InlayHintsFragments {\n    static async create(registry, model, ranges, token) {\n        const data = [];\n        const promises = registry.ordered(model).reverse().map(provider => ranges.map(async (range) => {\n            try {\n                const result = await provider.provideInlayHints(model, range, token);\n                if ((result === null || result === void 0 ? void 0 : result.hints.length) || provider.onDidChangeInlayHints) {\n                    data.push([result !== null && result !== void 0 ? result : InlayHintsFragments._emptyInlayHintList, provider]);\n                }\n            }\n            catch (err) {\n                onUnexpectedExternalError(err);\n            }\n        }));\n        await Promise.all(promises.flat());\n        if (token.isCancellationRequested || model.isDisposed()) {\n            throw new CancellationError();\n        }\n        return new InlayHintsFragments(ranges, data, model);\n    }\n    constructor(ranges, data, model) {\n        this._disposables = new DisposableStore();\n        this.ranges = ranges;\n        this.provider = new Set();\n        const items = [];\n        for (const [list, provider] of data) {\n            this._disposables.add(list);\n            this.provider.add(provider);\n            for (const hint of list.hints) {\n                // compute the range to which the item should be attached to\n                const position = model.validatePosition(hint.position);\n                let direction = 'before';\n                const wordRange = InlayHintsFragments._getRangeAtPosition(model, position);\n                let range;\n                if (wordRange.getStartPosition().isBefore(position)) {\n                    range = Range.fromPositions(wordRange.getStartPosition(), position);\n                    direction = 'after';\n                }\n                else {\n                    range = Range.fromPositions(position, wordRange.getEndPosition());\n                    direction = 'before';\n                }\n                items.push(new InlayHintItem(hint, new InlayHintAnchor(range, direction), provider));\n            }\n        }\n        this.items = items.sort((a, b) => Position.compare(a.hint.position, b.hint.position));\n    }\n    dispose() {\n        this._disposables.dispose();\n    }\n    static _getRangeAtPosition(model, position) {\n        const line = position.lineNumber;\n        const word = model.getWordAtPosition(position);\n        if (word) {\n            // always prefer the word range\n            return new Range(line, word.startColumn, line, word.endColumn);\n        }\n        model.tokenization.tokenizeIfCheap(line);\n        const tokens = model.tokenization.getLineTokens(line);\n        const offset = position.column - 1;\n        const idx = tokens.findTokenIndexAtOffset(offset);\n        let start = tokens.getStartOffset(idx);\n        let end = tokens.getEndOffset(idx);\n        if (end - start === 1) {\n            // single character token, when at its end try leading/trailing token instead\n            if (start === offset && idx > 1) {\n                // leading token\n                start = tokens.getStartOffset(idx - 1);\n                end = tokens.getEndOffset(idx - 1);\n            }\n            else if (end === offset && idx < tokens.getCount() - 1) {\n                // trailing token\n                start = tokens.getStartOffset(idx + 1);\n                end = tokens.getEndOffset(idx + 1);\n            }\n        }\n        return new Range(line, start + 1, line, end + 1);\n    }\n}\nInlayHintsFragments._emptyInlayHintList = Object.freeze({ dispose() { }, hints: [] });\nexport function asCommandLink(command) {\n    return URI.from({\n        scheme: Schemas.command,\n        path: command.id,\n        query: command.arguments && encodeURIComponent(JSON.stringify(command.arguments))\n    }).toString();\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlayHints/browser/inlayHintsContribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlayHints/browser/inlayHintsContribution.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { HoverParticipantRegistry } from '../../hover/browser/hoverTypes.js';\nimport { InlayHintsController } from './inlayHintsController.js';\nimport { InlayHintsHover } from './inlayHintsHover.js';\nregisterEditorContribution(InlayHintsController.ID, InlayHintsController, 1 /* EditorContributionInstantiation.AfterFirstRender */);\nHoverParticipantRegistry.register(InlayHintsHover);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlayHints/browser/inlayHintsController.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar InlayHintsController_1;\nimport { isHTMLElement, ModifierKeyEmitter } from '../../../../base/browser/dom.js';\nimport { isNonEmptyArray } from '../../../../base/common/arrays.js';\nimport { RunOnceScheduler } from '../../../../base/common/async.js';\nimport { CancellationToken, CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { onUnexpectedError } from '../../../../base/common/errors.js';\nimport { DisposableStore, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { LRUCache } from '../../../../base/common/map.js';\nimport { assertType } from '../../../../base/common/types.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport { DynamicCssRules } from '../../../browser/editorDom.js';\nimport { StableEditorScrollState } from '../../../browser/stableEditorScroll.js';\nimport { EDITOR_FONT_DEFAULTS } from '../../../common/config/editorOptions.js';\nimport { EditOperation } from '../../../common/core/editOperation.js';\nimport { Range } from '../../../common/core/range.js';\nimport * as languages from '../../../common/languages.js';\nimport { InjectedTextCursorStops } from '../../../common/model.js';\nimport { ModelDecorationInjectedTextOptions } from '../../../common/model/textModel.js';\nimport { ILanguageFeatureDebounceService } from '../../../common/services/languageFeatureDebounce.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { ITextModelService } from '../../../common/services/resolverService.js';\nimport { ClickLinkGesture } from '../../gotoSymbol/browser/link/clickLinkGesture.js';\nimport { InlayHintAnchor, InlayHintsFragments } from './inlayHints.js';\nimport { goToDefinitionWithLocation, showGoToContextMenu } from './inlayHintsLocations.js';\nimport { CommandsRegistry, ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { registerSingleton } from '../../../../platform/instantiation/common/extensions.js';\nimport { createDecorator, IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { INotificationService, Severity } from '../../../../platform/notification/common/notification.js';\nimport * as colors from '../../../../platform/theme/common/colorRegistry.js';\nimport { themeColorFromId } from '../../../../platform/theme/common/themeService.js';\n// --- hint caching service (per session)\nclass InlayHintsCache {\n    constructor() {\n        this._entries = new LRUCache(50);\n    }\n    get(model) {\n        const key = InlayHintsCache._key(model);\n        return this._entries.get(key);\n    }\n    set(model, value) {\n        const key = InlayHintsCache._key(model);\n        this._entries.set(key, value);\n    }\n    static _key(model) {\n        return `${model.uri.toString()}/${model.getVersionId()}`;\n    }\n}\nconst IInlayHintsCache = createDecorator('IInlayHintsCache');\nregisterSingleton(IInlayHintsCache, InlayHintsCache, 1 /* InstantiationType.Delayed */);\n// --- rendered label\nexport class RenderedInlayHintLabelPart {\n    constructor(item, index) {\n        this.item = item;\n        this.index = index;\n    }\n    get part() {\n        const label = this.item.hint.label;\n        if (typeof label === 'string') {\n            return { label };\n        }\n        else {\n            return label[this.index];\n        }\n    }\n}\nclass ActiveInlayHintInfo {\n    constructor(part, hasTriggerModifier) {\n        this.part = part;\n        this.hasTriggerModifier = hasTriggerModifier;\n    }\n}\n// --- controller\nlet InlayHintsController = InlayHintsController_1 = class InlayHintsController {\n    static get(editor) {\n        var _a;\n        return (_a = editor.getContribution(InlayHintsController_1.ID)) !== null && _a !== void 0 ? _a : undefined;\n    }\n    constructor(_editor, _languageFeaturesService, _featureDebounce, _inlayHintsCache, _commandService, _notificationService, _instaService) {\n        this._editor = _editor;\n        this._languageFeaturesService = _languageFeaturesService;\n        this._inlayHintsCache = _inlayHintsCache;\n        this._commandService = _commandService;\n        this._notificationService = _notificationService;\n        this._instaService = _instaService;\n        this._disposables = new DisposableStore();\n        this._sessionDisposables = new DisposableStore();\n        this._decorationsMetadata = new Map();\n        this._ruleFactory = new DynamicCssRules(this._editor);\n        this._activeRenderMode = 0 /* RenderMode.Normal */;\n        this._debounceInfo = _featureDebounce.for(_languageFeaturesService.inlayHintsProvider, 'InlayHint', { min: 25 });\n        this._disposables.add(_languageFeaturesService.inlayHintsProvider.onDidChange(() => this._update()));\n        this._disposables.add(_editor.onDidChangeModel(() => this._update()));\n        this._disposables.add(_editor.onDidChangeModelLanguage(() => this._update()));\n        this._disposables.add(_editor.onDidChangeConfiguration(e => {\n            if (e.hasChanged(141 /* EditorOption.inlayHints */)) {\n                this._update();\n            }\n        }));\n        this._update();\n    }\n    dispose() {\n        this._sessionDisposables.dispose();\n        this._removeAllDecorations();\n        this._disposables.dispose();\n    }\n    _update() {\n        this._sessionDisposables.clear();\n        this._removeAllDecorations();\n        const options = this._editor.getOption(141 /* EditorOption.inlayHints */);\n        if (options.enabled === 'off') {\n            return;\n        }\n        const model = this._editor.getModel();\n        if (!model || !this._languageFeaturesService.inlayHintsProvider.has(model)) {\n            return;\n        }\n        if (options.enabled === 'on') {\n            // different \"on\" modes: always\n            this._activeRenderMode = 0 /* RenderMode.Normal */;\n        }\n        else {\n            // different \"on\" modes: offUnlessPressed, or onUnlessPressed\n            let defaultMode;\n            let altMode;\n            if (options.enabled === 'onUnlessPressed') {\n                defaultMode = 0 /* RenderMode.Normal */;\n                altMode = 1 /* RenderMode.Invisible */;\n            }\n            else {\n                defaultMode = 1 /* RenderMode.Invisible */;\n                altMode = 0 /* RenderMode.Normal */;\n            }\n            this._activeRenderMode = defaultMode;\n            this._sessionDisposables.add(ModifierKeyEmitter.getInstance().event(e => {\n                if (!this._editor.hasModel()) {\n                    return;\n                }\n                const newRenderMode = e.altKey && e.ctrlKey && !(e.shiftKey || e.metaKey) ? altMode : defaultMode;\n                if (newRenderMode !== this._activeRenderMode) {\n                    this._activeRenderMode = newRenderMode;\n                    const model = this._editor.getModel();\n                    const copies = this._copyInlayHintsWithCurrentAnchor(model);\n                    this._updateHintsDecorators([model.getFullModelRange()], copies);\n                    scheduler.schedule(0);\n                }\n            }));\n        }\n        // iff possible, quickly update from cache\n        const cached = this._inlayHintsCache.get(model);\n        if (cached) {\n            this._updateHintsDecorators([model.getFullModelRange()], cached);\n        }\n        this._sessionDisposables.add(toDisposable(() => {\n            // cache items when switching files etc\n            if (!model.isDisposed()) {\n                this._cacheHintsForFastRestore(model);\n            }\n        }));\n        let cts;\n        const watchedProviders = new Set();\n        const scheduler = new RunOnceScheduler(async () => {\n            const t1 = Date.now();\n            cts === null || cts === void 0 ? void 0 : cts.dispose(true);\n            cts = new CancellationTokenSource();\n            const listener = model.onWillDispose(() => cts === null || cts === void 0 ? void 0 : cts.cancel());\n            try {\n                const myToken = cts.token;\n                const inlayHints = await InlayHintsFragments.create(this._languageFeaturesService.inlayHintsProvider, model, this._getHintsRanges(), myToken);\n                scheduler.delay = this._debounceInfo.update(model, Date.now() - t1);\n                if (myToken.isCancellationRequested) {\n                    inlayHints.dispose();\n                    return;\n                }\n                // listen to provider changes\n                for (const provider of inlayHints.provider) {\n                    if (typeof provider.onDidChangeInlayHints === 'function' && !watchedProviders.has(provider)) {\n                        watchedProviders.add(provider);\n                        this._sessionDisposables.add(provider.onDidChangeInlayHints(() => {\n                            if (!scheduler.isScheduled()) { // ignore event when request is already scheduled\n                                scheduler.schedule();\n                            }\n                        }));\n                    }\n                }\n                this._sessionDisposables.add(inlayHints);\n                this._updateHintsDecorators(inlayHints.ranges, inlayHints.items);\n                this._cacheHintsForFastRestore(model);\n            }\n            catch (err) {\n                onUnexpectedError(err);\n            }\n            finally {\n                cts.dispose();\n                listener.dispose();\n            }\n        }, this._debounceInfo.get(model));\n        this._sessionDisposables.add(scheduler);\n        this._sessionDisposables.add(toDisposable(() => cts === null || cts === void 0 ? void 0 : cts.dispose(true)));\n        scheduler.schedule(0);\n        this._sessionDisposables.add(this._editor.onDidScrollChange((e) => {\n            // update when scroll position changes\n            // uses scrollTopChanged has weak heuristic to differenatiate between scrolling due to\n            // typing or due to \"actual\" scrolling\n            if (e.scrollTopChanged || !scheduler.isScheduled()) {\n                scheduler.schedule();\n            }\n        }));\n        this._sessionDisposables.add(this._editor.onDidChangeModelContent((e) => {\n            cts === null || cts === void 0 ? void 0 : cts.cancel();\n            // update less aggressive when typing\n            const delay = Math.max(scheduler.delay, 1250);\n            scheduler.schedule(delay);\n        }));\n        // mouse gestures\n        this._sessionDisposables.add(this._installDblClickGesture(() => scheduler.schedule(0)));\n        this._sessionDisposables.add(this._installLinkGesture());\n        this._sessionDisposables.add(this._installContextMenu());\n    }\n    _installLinkGesture() {\n        const store = new DisposableStore();\n        const gesture = store.add(new ClickLinkGesture(this._editor));\n        // let removeHighlight = () => { };\n        const sessionStore = new DisposableStore();\n        store.add(sessionStore);\n        store.add(gesture.onMouseMoveOrRelevantKeyDown(e => {\n            const [mouseEvent] = e;\n            const labelPart = this._getInlayHintLabelPart(mouseEvent);\n            const model = this._editor.getModel();\n            if (!labelPart || !model) {\n                sessionStore.clear();\n                return;\n            }\n            // resolve the item\n            const cts = new CancellationTokenSource();\n            sessionStore.add(toDisposable(() => cts.dispose(true)));\n            labelPart.item.resolve(cts.token);\n            // render link => when the modifier is pressed and when there is a command or location\n            this._activeInlayHintPart = labelPart.part.command || labelPart.part.location\n                ? new ActiveInlayHintInfo(labelPart, mouseEvent.hasTriggerModifier)\n                : undefined;\n            const lineNumber = model.validatePosition(labelPart.item.hint.position).lineNumber;\n            const range = new Range(lineNumber, 1, lineNumber, model.getLineMaxColumn(lineNumber));\n            const lineHints = this._getInlineHintsForRange(range);\n            this._updateHintsDecorators([range], lineHints);\n            sessionStore.add(toDisposable(() => {\n                this._activeInlayHintPart = undefined;\n                this._updateHintsDecorators([range], lineHints);\n            }));\n        }));\n        store.add(gesture.onCancel(() => sessionStore.clear()));\n        store.add(gesture.onExecute(async (e) => {\n            const label = this._getInlayHintLabelPart(e);\n            if (label) {\n                const part = label.part;\n                if (part.location) {\n                    // location -> execute go to def\n                    this._instaService.invokeFunction(goToDefinitionWithLocation, e, this._editor, part.location);\n                }\n                else if (languages.Command.is(part.command)) {\n                    // command -> execute it\n                    await this._invokeCommand(part.command, label.item);\n                }\n            }\n        }));\n        return store;\n    }\n    _getInlineHintsForRange(range) {\n        const lineHints = new Set();\n        for (const data of this._decorationsMetadata.values()) {\n            if (range.containsRange(data.item.anchor.range)) {\n                lineHints.add(data.item);\n            }\n        }\n        return Array.from(lineHints);\n    }\n    _installDblClickGesture(updateInlayHints) {\n        return this._editor.onMouseUp(async (e) => {\n            if (e.event.detail !== 2) {\n                return;\n            }\n            const part = this._getInlayHintLabelPart(e);\n            if (!part) {\n                return;\n            }\n            e.event.preventDefault();\n            await part.item.resolve(CancellationToken.None);\n            if (isNonEmptyArray(part.item.hint.textEdits)) {\n                const edits = part.item.hint.textEdits.map(edit => EditOperation.replace(Range.lift(edit.range), edit.text));\n                this._editor.executeEdits('inlayHint.default', edits);\n                updateInlayHints();\n            }\n        });\n    }\n    _installContextMenu() {\n        return this._editor.onContextMenu(async (e) => {\n            if (!(isHTMLElement(e.event.target))) {\n                return;\n            }\n            const part = this._getInlayHintLabelPart(e);\n            if (part) {\n                await this._instaService.invokeFunction(showGoToContextMenu, this._editor, e.event.target, part);\n            }\n        });\n    }\n    _getInlayHintLabelPart(e) {\n        var _a;\n        if (e.target.type !== 6 /* MouseTargetType.CONTENT_TEXT */) {\n            return undefined;\n        }\n        const options = (_a = e.target.detail.injectedText) === null || _a === void 0 ? void 0 : _a.options;\n        if (options instanceof ModelDecorationInjectedTextOptions && (options === null || options === void 0 ? void 0 : options.attachedData) instanceof RenderedInlayHintLabelPart) {\n            return options.attachedData;\n        }\n        return undefined;\n    }\n    async _invokeCommand(command, item) {\n        var _a;\n        try {\n            await this._commandService.executeCommand(command.id, ...((_a = command.arguments) !== null && _a !== void 0 ? _a : []));\n        }\n        catch (err) {\n            this._notificationService.notify({\n                severity: Severity.Error,\n                source: item.provider.displayName,\n                message: err\n            });\n        }\n    }\n    _cacheHintsForFastRestore(model) {\n        const hints = this._copyInlayHintsWithCurrentAnchor(model);\n        this._inlayHintsCache.set(model, hints);\n    }\n    // return inlay hints but with an anchor that reflects \"updates\"\n    // that happened after receiving them, e.g adding new lines before a hint\n    _copyInlayHintsWithCurrentAnchor(model) {\n        const items = new Map();\n        for (const [id, obj] of this._decorationsMetadata) {\n            if (items.has(obj.item)) {\n                // an inlay item can be rendered as multiple decorations\n                // but they will all uses the same range\n                continue;\n            }\n            const range = model.getDecorationRange(id);\n            if (range) {\n                // update range with whatever the editor has tweaked it to\n                const anchor = new InlayHintAnchor(range, obj.item.anchor.direction);\n                const copy = obj.item.with({ anchor });\n                items.set(obj.item, copy);\n            }\n        }\n        return Array.from(items.values());\n    }\n    _getHintsRanges() {\n        const extra = 30;\n        const model = this._editor.getModel();\n        const visibleRanges = this._editor.getVisibleRangesPlusViewportAboveBelow();\n        const result = [];\n        for (const range of visibleRanges.sort(Range.compareRangesUsingStarts)) {\n            const extendedRange = model.validateRange(new Range(range.startLineNumber - extra, range.startColumn, range.endLineNumber + extra, range.endColumn));\n            if (result.length === 0 || !Range.areIntersectingOrTouching(result[result.length - 1], extendedRange)) {\n                result.push(extendedRange);\n            }\n            else {\n                result[result.length - 1] = Range.plusRange(result[result.length - 1], extendedRange);\n            }\n        }\n        return result;\n    }\n    _updateHintsDecorators(ranges, items) {\n        var _a, _b;\n        // utils to collect/create injected text decorations\n        const newDecorationsData = [];\n        const addInjectedText = (item, ref, content, cursorStops, attachedData) => {\n            const opts = {\n                content,\n                inlineClassNameAffectsLetterSpacing: true,\n                inlineClassName: ref.className,\n                cursorStops,\n                attachedData\n            };\n            newDecorationsData.push({\n                item,\n                classNameRef: ref,\n                decoration: {\n                    range: item.anchor.range,\n                    options: {\n                        // className: \"rangeHighlight\", // DEBUG highlight to see to what range a hint is attached\n                        description: 'InlayHint',\n                        showIfCollapsed: item.anchor.range.isEmpty(), // \"original\" range is empty\n                        collapseOnReplaceEdit: !item.anchor.range.isEmpty(),\n                        stickiness: 0 /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */,\n                        [item.anchor.direction]: this._activeRenderMode === 0 /* RenderMode.Normal */ ? opts : undefined\n                    }\n                }\n            });\n        };\n        const addInjectedWhitespace = (item, isLast) => {\n            const marginRule = this._ruleFactory.createClassNameRef({\n                width: `${(fontSize / 3) | 0}px`,\n                display: 'inline-block'\n            });\n            addInjectedText(item, marginRule, '\\u200a', isLast ? InjectedTextCursorStops.Right : InjectedTextCursorStops.None);\n        };\n        //\n        const { fontSize, fontFamily, padding, isUniform } = this._getLayoutInfo();\n        const fontFamilyVar = '--code-editorInlayHintsFontFamily';\n        this._editor.getContainerDomNode().style.setProperty(fontFamilyVar, fontFamily);\n        let currentLineInfo = { line: 0, totalLen: 0 };\n        for (const item of items) {\n            if (currentLineInfo.line !== item.anchor.range.startLineNumber) {\n                currentLineInfo = { line: item.anchor.range.startLineNumber, totalLen: 0 };\n            }\n            if (currentLineInfo.totalLen > InlayHintsController_1._MAX_LABEL_LEN) {\n                continue;\n            }\n            // whitespace leading the actual label\n            if (item.hint.paddingLeft) {\n                addInjectedWhitespace(item, false);\n            }\n            // the label with its parts\n            const parts = typeof item.hint.label === 'string'\n                ? [{ label: item.hint.label }]\n                : item.hint.label;\n            for (let i = 0; i < parts.length; i++) {\n                const part = parts[i];\n                const isFirst = i === 0;\n                const isLast = i === parts.length - 1;\n                const cssProperties = {\n                    fontSize: `${fontSize}px`,\n                    fontFamily: `var(${fontFamilyVar}), ${EDITOR_FONT_DEFAULTS.fontFamily}`,\n                    verticalAlign: isUniform ? 'baseline' : 'middle',\n                    unicodeBidi: 'isolate'\n                };\n                if (isNonEmptyArray(item.hint.textEdits)) {\n                    cssProperties.cursor = 'default';\n                }\n                this._fillInColors(cssProperties, item.hint);\n                if ((part.command || part.location) && ((_a = this._activeInlayHintPart) === null || _a === void 0 ? void 0 : _a.part.item) === item && this._activeInlayHintPart.part.index === i) {\n                    // active link!\n                    cssProperties.textDecoration = 'underline';\n                    if (this._activeInlayHintPart.hasTriggerModifier) {\n                        cssProperties.color = themeColorFromId(colors.editorActiveLinkForeground);\n                        cssProperties.cursor = 'pointer';\n                    }\n                }\n                if (padding) {\n                    if (isFirst && isLast) {\n                        // only element\n                        cssProperties.padding = `1px ${Math.max(1, fontSize / 4) | 0}px`;\n                        cssProperties.borderRadius = `${(fontSize / 4) | 0}px`;\n                    }\n                    else if (isFirst) {\n                        // first element\n                        cssProperties.padding = `1px 0 1px ${Math.max(1, fontSize / 4) | 0}px`;\n                        cssProperties.borderRadius = `${(fontSize / 4) | 0}px 0 0 ${(fontSize / 4) | 0}px`;\n                    }\n                    else if (isLast) {\n                        // last element\n                        cssProperties.padding = `1px ${Math.max(1, fontSize / 4) | 0}px 1px 0`;\n                        cssProperties.borderRadius = `0 ${(fontSize / 4) | 0}px ${(fontSize / 4) | 0}px 0`;\n                    }\n                    else {\n                        cssProperties.padding = `1px 0 1px 0`;\n                    }\n                }\n                let textlabel = part.label;\n                currentLineInfo.totalLen += textlabel.length;\n                let tooLong = false;\n                const over = currentLineInfo.totalLen - InlayHintsController_1._MAX_LABEL_LEN;\n                if (over > 0) {\n                    textlabel = textlabel.slice(0, -over) + '…';\n                    tooLong = true;\n                }\n                addInjectedText(item, this._ruleFactory.createClassNameRef(cssProperties), fixSpace(textlabel), isLast && !item.hint.paddingRight ? InjectedTextCursorStops.Right : InjectedTextCursorStops.None, new RenderedInlayHintLabelPart(item, i));\n                if (tooLong) {\n                    break;\n                }\n            }\n            // whitespace trailing the actual label\n            if (item.hint.paddingRight) {\n                addInjectedWhitespace(item, true);\n            }\n            if (newDecorationsData.length > InlayHintsController_1._MAX_DECORATORS) {\n                break;\n            }\n        }\n        // collect all decoration ids that are affected by the ranges\n        // and only update those decorations\n        const decorationIdsToReplace = [];\n        for (const [id, metadata] of this._decorationsMetadata) {\n            const range = (_b = this._editor.getModel()) === null || _b === void 0 ? void 0 : _b.getDecorationRange(id);\n            if (range && ranges.some(r => r.containsRange(range))) {\n                decorationIdsToReplace.push(id);\n                metadata.classNameRef.dispose();\n                this._decorationsMetadata.delete(id);\n            }\n        }\n        const scrollState = StableEditorScrollState.capture(this._editor);\n        this._editor.changeDecorations(accessor => {\n            const newDecorationIds = accessor.deltaDecorations(decorationIdsToReplace, newDecorationsData.map(d => d.decoration));\n            for (let i = 0; i < newDecorationIds.length; i++) {\n                const data = newDecorationsData[i];\n                this._decorationsMetadata.set(newDecorationIds[i], data);\n            }\n        });\n        scrollState.restore(this._editor);\n    }\n    _fillInColors(props, hint) {\n        if (hint.kind === languages.InlayHintKind.Parameter) {\n            props.backgroundColor = themeColorFromId(colors.editorInlayHintParameterBackground);\n            props.color = themeColorFromId(colors.editorInlayHintParameterForeground);\n        }\n        else if (hint.kind === languages.InlayHintKind.Type) {\n            props.backgroundColor = themeColorFromId(colors.editorInlayHintTypeBackground);\n            props.color = themeColorFromId(colors.editorInlayHintTypeForeground);\n        }\n        else {\n            props.backgroundColor = themeColorFromId(colors.editorInlayHintBackground);\n            props.color = themeColorFromId(colors.editorInlayHintForeground);\n        }\n    }\n    _getLayoutInfo() {\n        const options = this._editor.getOption(141 /* EditorOption.inlayHints */);\n        const padding = options.padding;\n        const editorFontSize = this._editor.getOption(52 /* EditorOption.fontSize */);\n        const editorFontFamily = this._editor.getOption(49 /* EditorOption.fontFamily */);\n        let fontSize = options.fontSize;\n        if (!fontSize || fontSize < 5 || fontSize > editorFontSize) {\n            fontSize = editorFontSize;\n        }\n        const fontFamily = options.fontFamily || editorFontFamily;\n        const isUniform = !padding\n            && fontFamily === editorFontFamily\n            && fontSize === editorFontSize;\n        return { fontSize, fontFamily, padding, isUniform };\n    }\n    _removeAllDecorations() {\n        this._editor.removeDecorations(Array.from(this._decorationsMetadata.keys()));\n        for (const obj of this._decorationsMetadata.values()) {\n            obj.classNameRef.dispose();\n        }\n        this._decorationsMetadata.clear();\n    }\n};\nInlayHintsController.ID = 'editor.contrib.InlayHints';\nInlayHintsController._MAX_DECORATORS = 1500;\nInlayHintsController._MAX_LABEL_LEN = 43;\nInlayHintsController = InlayHintsController_1 = __decorate([\n    __param(1, ILanguageFeaturesService),\n    __param(2, ILanguageFeatureDebounceService),\n    __param(3, IInlayHintsCache),\n    __param(4, ICommandService),\n    __param(5, INotificationService),\n    __param(6, IInstantiationService)\n], InlayHintsController);\nexport { InlayHintsController };\n// Prevents the view from potentially visible whitespace\nfunction fixSpace(str) {\n    const noBreakWhitespace = '\\xa0';\n    return str.replace(/[ \\t]/g, noBreakWhitespace);\n}\nCommandsRegistry.registerCommand('_executeInlayHintProvider', async (accessor, ...args) => {\n    const [uri, range] = args;\n    assertType(URI.isUri(uri));\n    assertType(Range.isIRange(range));\n    const { inlayHintsProvider } = accessor.get(ILanguageFeaturesService);\n    const ref = await accessor.get(ITextModelService).createModelReference(uri);\n    try {\n        const model = await InlayHintsFragments.create(inlayHintsProvider, ref.object.textEditorModel, [Range.lift(range)], CancellationToken.None);\n        const result = model.items.map(i => i.hint);\n        setTimeout(() => model.dispose(), 0); // dispose after sending to ext host\n        return result;\n    }\n    finally {\n        ref.dispose();\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { AsyncIterableObject } from '../../../../base/common/async.js';\nimport { isEmptyMarkdownString, MarkdownString } from '../../../../base/common/htmlContent.js';\nimport { Position } from '../../../common/core/position.js';\nimport { ModelDecorationInjectedTextOptions } from '../../../common/model/textModel.js';\nimport { HoverForeignElementAnchor } from '../../hover/browser/hoverTypes.js';\nimport { ILanguageService } from '../../../common/languages/language.js';\nimport { ITextModelService } from '../../../common/services/resolverService.js';\nimport { getHoverProviderResultsAsAsyncIterable } from '../../hover/browser/getHover.js';\nimport { MarkdownHover, MarkdownHoverParticipant } from '../../hover/browser/markdownHoverParticipant.js';\nimport { RenderedInlayHintLabelPart, InlayHintsController } from './inlayHintsController.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { IOpenerService } from '../../../../platform/opener/common/opener.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { localize } from '../../../../nls.js';\nimport * as platform from '../../../../base/common/platform.js';\nimport { asCommandLink } from './inlayHints.js';\nimport { isNonEmptyArray } from '../../../../base/common/arrays.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { IHoverService } from '../../../../platform/hover/browser/hover.js';\nclass InlayHintsHoverAnchor extends HoverForeignElementAnchor {\n    constructor(part, owner, initialMousePosX, initialMousePosY) {\n        super(10, owner, part.item.anchor.range, initialMousePosX, initialMousePosY, true);\n        this.part = part;\n    }\n}\nlet InlayHintsHover = class InlayHintsHover extends MarkdownHoverParticipant {\n    constructor(editor, languageService, openerService, keybindingService, hoverService, configurationService, _resolverService, languageFeaturesService) {\n        super(editor, languageService, openerService, configurationService, languageFeaturesService, keybindingService, hoverService);\n        this._resolverService = _resolverService;\n        this.hoverOrdinal = 6;\n    }\n    suggestHoverAnchor(mouseEvent) {\n        var _a;\n        const controller = InlayHintsController.get(this._editor);\n        if (!controller) {\n            return null;\n        }\n        if (mouseEvent.target.type !== 6 /* MouseTargetType.CONTENT_TEXT */) {\n            return null;\n        }\n        const options = (_a = mouseEvent.target.detail.injectedText) === null || _a === void 0 ? void 0 : _a.options;\n        if (!(options instanceof ModelDecorationInjectedTextOptions && options.attachedData instanceof RenderedInlayHintLabelPart)) {\n            return null;\n        }\n        return new InlayHintsHoverAnchor(options.attachedData, this, mouseEvent.event.posx, mouseEvent.event.posy);\n    }\n    computeSync() {\n        return [];\n    }\n    computeAsync(anchor, _lineDecorations, token) {\n        if (!(anchor instanceof InlayHintsHoverAnchor)) {\n            return AsyncIterableObject.EMPTY;\n        }\n        return new AsyncIterableObject(async (executor) => {\n            const { part } = anchor;\n            await part.item.resolve(token);\n            if (token.isCancellationRequested) {\n                return;\n            }\n            // (1) Inlay Tooltip\n            let itemTooltip;\n            if (typeof part.item.hint.tooltip === 'string') {\n                itemTooltip = new MarkdownString().appendText(part.item.hint.tooltip);\n            }\n            else if (part.item.hint.tooltip) {\n                itemTooltip = part.item.hint.tooltip;\n            }\n            if (itemTooltip) {\n                executor.emitOne(new MarkdownHover(this, anchor.range, [itemTooltip], false, 0));\n            }\n            // (1.2) Inlay dbl-click gesture\n            if (isNonEmptyArray(part.item.hint.textEdits)) {\n                executor.emitOne(new MarkdownHover(this, anchor.range, [new MarkdownString().appendText(localize('hint.dbl', \"Double-click to insert\"))], false, 10001));\n            }\n            // (2) Inlay Label Part Tooltip\n            let partTooltip;\n            if (typeof part.part.tooltip === 'string') {\n                partTooltip = new MarkdownString().appendText(part.part.tooltip);\n            }\n            else if (part.part.tooltip) {\n                partTooltip = part.part.tooltip;\n            }\n            if (partTooltip) {\n                executor.emitOne(new MarkdownHover(this, anchor.range, [partTooltip], false, 1));\n            }\n            // (2.2) Inlay Label Part Help Hover\n            if (part.part.location || part.part.command) {\n                let linkHint;\n                const useMetaKey = this._editor.getOption(78 /* EditorOption.multiCursorModifier */) === 'altKey';\n                const kb = useMetaKey\n                    ? platform.isMacintosh\n                        ? localize('links.navigate.kb.meta.mac', \"cmd + click\")\n                        : localize('links.navigate.kb.meta', \"ctrl + click\")\n                    : platform.isMacintosh\n                        ? localize('links.navigate.kb.alt.mac', \"option + click\")\n                        : localize('links.navigate.kb.alt', \"alt + click\");\n                if (part.part.location && part.part.command) {\n                    linkHint = new MarkdownString().appendText(localize('hint.defAndCommand', 'Go to Definition ({0}), right click for more', kb));\n                }\n                else if (part.part.location) {\n                    linkHint = new MarkdownString().appendText(localize('hint.def', 'Go to Definition ({0})', kb));\n                }\n                else if (part.part.command) {\n                    linkHint = new MarkdownString(`[${localize('hint.cmd', \"Execute Command\")}](${asCommandLink(part.part.command)} \"${part.part.command.title}\") (${kb})`, { isTrusted: true });\n                }\n                if (linkHint) {\n                    executor.emitOne(new MarkdownHover(this, anchor.range, [linkHint], false, 10000));\n                }\n            }\n            // (3) Inlay Label Part Location tooltip\n            const iterable = await this._resolveInlayHintLabelPartHover(part, token);\n            for await (const item of iterable) {\n                executor.emitOne(item);\n            }\n        });\n    }\n    async _resolveInlayHintLabelPartHover(part, token) {\n        if (!part.part.location) {\n            return AsyncIterableObject.EMPTY;\n        }\n        const { uri, range } = part.part.location;\n        const ref = await this._resolverService.createModelReference(uri);\n        try {\n            const model = ref.object.textEditorModel;\n            if (!this._languageFeaturesService.hoverProvider.has(model)) {\n                return AsyncIterableObject.EMPTY;\n            }\n            return getHoverProviderResultsAsAsyncIterable(this._languageFeaturesService.hoverProvider, model, new Position(range.startLineNumber, range.startColumn), token)\n                .filter(item => !isEmptyMarkdownString(item.hover.contents))\n                .map(item => new MarkdownHover(this, part.item.anchor.range, item.hover.contents, false, 2 + item.ordinal));\n        }\n        finally {\n            ref.dispose();\n        }\n    }\n};\nInlayHintsHover = __decorate([\n    __param(1, ILanguageService),\n    __param(2, IOpenerService),\n    __param(3, IKeybindingService),\n    __param(4, IHoverService),\n    __param(5, IConfigurationService),\n    __param(6, ITextModelService),\n    __param(7, ILanguageFeaturesService)\n], InlayHintsHover);\nexport { InlayHintsHover };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlayHints/browser/inlayHintsLocations.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../../../base/browser/dom.js';\nimport { Action, Separator } from '../../../../base/common/actions.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { generateUuid } from '../../../../base/common/uuid.js';\nimport { Range } from '../../../common/core/range.js';\nimport { ITextModelService } from '../../../common/services/resolverService.js';\nimport { DefinitionAction, SymbolNavigationAction, SymbolNavigationAnchor } from '../../gotoSymbol/browser/goToCommands.js';\nimport { PeekContext } from '../../peekView/browser/peekView.js';\nimport { isIMenuItem, MenuId, MenuItemAction, MenuRegistry } from '../../../../platform/actions/common/actions.js';\nimport { ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IContextMenuService } from '../../../../platform/contextview/browser/contextView.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { INotificationService, Severity } from '../../../../platform/notification/common/notification.js';\nexport async function showGoToContextMenu(accessor, editor, anchor, part) {\n    var _a;\n    const resolverService = accessor.get(ITextModelService);\n    const contextMenuService = accessor.get(IContextMenuService);\n    const commandService = accessor.get(ICommandService);\n    const instaService = accessor.get(IInstantiationService);\n    const notificationService = accessor.get(INotificationService);\n    await part.item.resolve(CancellationToken.None);\n    if (!part.part.location) {\n        return;\n    }\n    const location = part.part.location;\n    const menuActions = [];\n    // from all registered (not active) context menu actions select those\n    // that are a symbol navigation actions\n    const filter = new Set(MenuRegistry.getMenuItems(MenuId.EditorContext)\n        .map(item => isIMenuItem(item) ? item.command.id : generateUuid()));\n    for (const delegate of SymbolNavigationAction.all()) {\n        if (filter.has(delegate.desc.id)) {\n            menuActions.push(new Action(delegate.desc.id, MenuItemAction.label(delegate.desc, { renderShortTitle: true }), undefined, true, async () => {\n                const ref = await resolverService.createModelReference(location.uri);\n                try {\n                    const symbolAnchor = new SymbolNavigationAnchor(ref.object.textEditorModel, Range.getStartPosition(location.range));\n                    const range = part.item.anchor.range;\n                    await instaService.invokeFunction(delegate.runEditorCommand.bind(delegate), editor, symbolAnchor, range);\n                }\n                finally {\n                    ref.dispose();\n                }\n            }));\n        }\n    }\n    if (part.part.command) {\n        const { command } = part.part;\n        menuActions.push(new Separator());\n        menuActions.push(new Action(command.id, command.title, undefined, true, async () => {\n            var _a;\n            try {\n                await commandService.executeCommand(command.id, ...((_a = command.arguments) !== null && _a !== void 0 ? _a : []));\n            }\n            catch (err) {\n                notificationService.notify({\n                    severity: Severity.Error,\n                    source: part.item.provider.displayName,\n                    message: err\n                });\n            }\n        }));\n    }\n    // show context menu\n    const useShadowDOM = editor.getOption(127 /* EditorOption.useShadowDOM */);\n    contextMenuService.showContextMenu({\n        domForShadowRoot: useShadowDOM ? (_a = editor.getDomNode()) !== null && _a !== void 0 ? _a : undefined : undefined,\n        getAnchor: () => {\n            const box = dom.getDomNodePagePosition(anchor);\n            return { x: box.left, y: box.top + box.height + 8 };\n        },\n        getActions: () => menuActions,\n        onHide: () => {\n            editor.focus();\n        },\n        autoSelectFirstItem: true,\n    });\n}\nexport async function goToDefinitionWithLocation(accessor, event, editor, location) {\n    const resolverService = accessor.get(ITextModelService);\n    const ref = await resolverService.createModelReference(location.uri);\n    await editor.invokeWithinContext(async (accessor) => {\n        const openToSide = event.hasSideBySideModifier;\n        const contextKeyService = accessor.get(IContextKeyService);\n        const isInPeek = PeekContext.inPeekEditor.getValue(contextKeyService);\n        const canPeek = !openToSide && editor.getOption(88 /* EditorOption.definitionLinkOpensInPeek */) && !isInPeek;\n        const action = new DefinitionAction({ openToSide, openInPeek: canPeek, muteMessage: true }, { title: { value: '', original: '' }, id: '', precondition: undefined });\n        return action.run(accessor, new SymbolNavigationAnchor(ref.object.textEditorModel, Range.getStartPosition(location.range)), Range.lift(location.range));\n    });\n    ref.dispose();\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineCompletions/browser/commandIds.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport const inlineSuggestCommitId = 'editor.action.inlineSuggest.commit';\nexport const showPreviousInlineSuggestionActionId = 'editor.action.inlineSuggest.showPrevious';\nexport const showNextInlineSuggestionActionId = 'editor.action.inlineSuggest.showNext';\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineCompletions/browser/commands.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { transaction } from '../../../../base/common/observable.js';\nimport { asyncTransaction } from '../../../../base/common/observableInternal/base.js';\nimport { EditorAction } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { showNextInlineSuggestionActionId, showPreviousInlineSuggestionActionId, inlineSuggestCommitId } from './commandIds.js';\nimport { InlineCompletionContextKeys } from './inlineCompletionContextKeys.js';\nimport { InlineCompletionsController } from './inlineCompletionsController.js';\nimport { Context as SuggestContext } from '../../suggest/browser/suggest.js';\nimport * as nls from '../../../../nls.js';\nimport { MenuId, Action2 } from '../../../../platform/actions/common/actions.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nexport class ShowNextInlineSuggestionAction extends EditorAction {\n    constructor() {\n        super({\n            id: ShowNextInlineSuggestionAction.ID,\n            label: nls.localize('action.inlineSuggest.showNext', \"Show Next Inline Suggestion\"),\n            alias: 'Show Next Inline Suggestion',\n            precondition: ContextKeyExpr.and(EditorContextKeys.writable, InlineCompletionContextKeys.inlineSuggestionVisible),\n            kbOpts: {\n                weight: 100,\n                primary: 512 /* KeyMod.Alt */ | 94 /* KeyCode.BracketRight */,\n            },\n        });\n    }\n    async run(accessor, editor) {\n        var _a;\n        const controller = InlineCompletionsController.get(editor);\n        (_a = controller === null || controller === void 0 ? void 0 : controller.model.get()) === null || _a === void 0 ? void 0 : _a.next();\n    }\n}\nShowNextInlineSuggestionAction.ID = showNextInlineSuggestionActionId;\nexport class ShowPreviousInlineSuggestionAction extends EditorAction {\n    constructor() {\n        super({\n            id: ShowPreviousInlineSuggestionAction.ID,\n            label: nls.localize('action.inlineSuggest.showPrevious', \"Show Previous Inline Suggestion\"),\n            alias: 'Show Previous Inline Suggestion',\n            precondition: ContextKeyExpr.and(EditorContextKeys.writable, InlineCompletionContextKeys.inlineSuggestionVisible),\n            kbOpts: {\n                weight: 100,\n                primary: 512 /* KeyMod.Alt */ | 92 /* KeyCode.BracketLeft */,\n            },\n        });\n    }\n    async run(accessor, editor) {\n        var _a;\n        const controller = InlineCompletionsController.get(editor);\n        (_a = controller === null || controller === void 0 ? void 0 : controller.model.get()) === null || _a === void 0 ? void 0 : _a.previous();\n    }\n}\nShowPreviousInlineSuggestionAction.ID = showPreviousInlineSuggestionActionId;\nexport class TriggerInlineSuggestionAction extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.inlineSuggest.trigger',\n            label: nls.localize('action.inlineSuggest.trigger', \"Trigger Inline Suggestion\"),\n            alias: 'Trigger Inline Suggestion',\n            precondition: EditorContextKeys.writable\n        });\n    }\n    async run(accessor, editor) {\n        const controller = InlineCompletionsController.get(editor);\n        await asyncTransaction(async (tx) => {\n            var _a;\n            /** @description triggerExplicitly from command */\n            await ((_a = controller === null || controller === void 0 ? void 0 : controller.model.get()) === null || _a === void 0 ? void 0 : _a.triggerExplicitly(tx));\n            controller === null || controller === void 0 ? void 0 : controller.playAccessibilitySignal(tx);\n        });\n    }\n}\nexport class AcceptNextWordOfInlineCompletion extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.inlineSuggest.acceptNextWord',\n            label: nls.localize('action.inlineSuggest.acceptNextWord', \"Accept Next Word Of Inline Suggestion\"),\n            alias: 'Accept Next Word Of Inline Suggestion',\n            precondition: ContextKeyExpr.and(EditorContextKeys.writable, InlineCompletionContextKeys.inlineSuggestionVisible),\n            kbOpts: {\n                weight: 100 /* KeybindingWeight.EditorContrib */ + 1,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 17 /* KeyCode.RightArrow */,\n                kbExpr: ContextKeyExpr.and(EditorContextKeys.writable, InlineCompletionContextKeys.inlineSuggestionVisible),\n            },\n            menuOpts: [{\n                    menuId: MenuId.InlineSuggestionToolbar,\n                    title: nls.localize('acceptWord', 'Accept Word'),\n                    group: 'primary',\n                    order: 2,\n                }],\n        });\n    }\n    async run(accessor, editor) {\n        var _a;\n        const controller = InlineCompletionsController.get(editor);\n        await ((_a = controller === null || controller === void 0 ? void 0 : controller.model.get()) === null || _a === void 0 ? void 0 : _a.acceptNextWord(controller.editor));\n    }\n}\nexport class AcceptNextLineOfInlineCompletion extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.inlineSuggest.acceptNextLine',\n            label: nls.localize('action.inlineSuggest.acceptNextLine', \"Accept Next Line Of Inline Suggestion\"),\n            alias: 'Accept Next Line Of Inline Suggestion',\n            precondition: ContextKeyExpr.and(EditorContextKeys.writable, InlineCompletionContextKeys.inlineSuggestionVisible),\n            kbOpts: {\n                weight: 100 /* KeybindingWeight.EditorContrib */ + 1,\n            },\n            menuOpts: [{\n                    menuId: MenuId.InlineSuggestionToolbar,\n                    title: nls.localize('acceptLine', 'Accept Line'),\n                    group: 'secondary',\n                    order: 2,\n                }],\n        });\n    }\n    async run(accessor, editor) {\n        var _a;\n        const controller = InlineCompletionsController.get(editor);\n        await ((_a = controller === null || controller === void 0 ? void 0 : controller.model.get()) === null || _a === void 0 ? void 0 : _a.acceptNextLine(controller.editor));\n    }\n}\nexport class AcceptInlineCompletion extends EditorAction {\n    constructor() {\n        super({\n            id: inlineSuggestCommitId,\n            label: nls.localize('action.inlineSuggest.accept', \"Accept Inline Suggestion\"),\n            alias: 'Accept Inline Suggestion',\n            precondition: InlineCompletionContextKeys.inlineSuggestionVisible,\n            menuOpts: [{\n                    menuId: MenuId.InlineSuggestionToolbar,\n                    title: nls.localize('accept', \"Accept\"),\n                    group: 'primary',\n                    order: 1,\n                }],\n            kbOpts: {\n                primary: 2 /* KeyCode.Tab */,\n                weight: 200,\n                kbExpr: ContextKeyExpr.and(InlineCompletionContextKeys.inlineSuggestionVisible, EditorContextKeys.tabMovesFocus.toNegated(), InlineCompletionContextKeys.inlineSuggestionHasIndentationLessThanTabSize, SuggestContext.Visible.toNegated(), EditorContextKeys.hoverFocused.toNegated()),\n            }\n        });\n    }\n    async run(accessor, editor) {\n        var _a;\n        const controller = InlineCompletionsController.get(editor);\n        if (controller) {\n            (_a = controller.model.get()) === null || _a === void 0 ? void 0 : _a.accept(controller.editor);\n            controller.editor.focus();\n        }\n    }\n}\nexport class HideInlineCompletion extends EditorAction {\n    constructor() {\n        super({\n            id: HideInlineCompletion.ID,\n            label: nls.localize('action.inlineSuggest.hide', \"Hide Inline Suggestion\"),\n            alias: 'Hide Inline Suggestion',\n            precondition: InlineCompletionContextKeys.inlineSuggestionVisible,\n            kbOpts: {\n                weight: 100,\n                primary: 9 /* KeyCode.Escape */,\n            }\n        });\n    }\n    async run(accessor, editor) {\n        const controller = InlineCompletionsController.get(editor);\n        transaction(tx => {\n            var _a;\n            (_a = controller === null || controller === void 0 ? void 0 : controller.model.get()) === null || _a === void 0 ? void 0 : _a.stop(tx);\n        });\n    }\n}\nHideInlineCompletion.ID = 'editor.action.inlineSuggest.hide';\nexport class ToggleAlwaysShowInlineSuggestionToolbar extends Action2 {\n    constructor() {\n        super({\n            id: ToggleAlwaysShowInlineSuggestionToolbar.ID,\n            title: nls.localize('action.inlineSuggest.alwaysShowToolbar', \"Always Show Toolbar\"),\n            f1: false,\n            precondition: undefined,\n            menu: [{\n                    id: MenuId.InlineSuggestionToolbar,\n                    group: 'secondary',\n                    order: 10,\n                }],\n            toggled: ContextKeyExpr.equals('config.editor.inlineSuggest.showToolbar', 'always')\n        });\n    }\n    async run(accessor, editor) {\n        const configService = accessor.get(IConfigurationService);\n        const currentValue = configService.getValue('editor.inlineSuggest.showToolbar');\n        const newValue = currentValue === 'always' ? 'onHover' : 'always';\n        configService.updateValue('editor.inlineSuggest.showToolbar', newValue);\n    }\n}\nToggleAlwaysShowInlineSuggestionToolbar.ID = 'editor.action.inlineSuggest.toggleAlwaysShowToolbar';\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineCompletions/browser/ghostText.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .suggest-preview-additional-widget {\n\twhite-space: nowrap;\n}\n\n.monaco-editor .suggest-preview-additional-widget .content-spacer {\n\tcolor: transparent;\n\twhite-space: pre;\n}\n\n.monaco-editor .suggest-preview-additional-widget .button {\n\tdisplay: inline-block;\n\tcursor: pointer;\n\ttext-decoration: underline;\n\ttext-underline-position: under;\n}\n\n.monaco-editor .ghost-text-hidden {\n\topacity: 0;\n\tfont-size: 0;\n}\n\n.monaco-editor .ghost-text-decoration, .monaco-editor .suggest-preview-text .ghost-text {\n\tfont-style: italic;\n}\n\n.monaco-editor .inline-completion-text-to-replace {\n\ttext-decoration: underline;\n\ttext-underline-position: under;\n}\n\n.monaco-editor .ghost-text-decoration,\n.monaco-editor .ghost-text-decoration-preview,\n.monaco-editor .suggest-preview-text .ghost-text {\n\tcolor: var(--vscode-editorGhostText-foreground) !important;\n\tbackground-color: var(--vscode-editorGhostText-background);\n\tborder: 1px solid var(--vscode-editorGhostText-border);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineCompletions/browser/ghostText.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { equals } from '../../../../base/common/arrays.js';\nimport { splitLines } from '../../../../base/common/strings.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { SingleTextEdit, TextEdit } from '../../../common/core/textEdit.js';\nexport class GhostText {\n    constructor(lineNumber, parts) {\n        this.lineNumber = lineNumber;\n        this.parts = parts;\n    }\n    equals(other) {\n        return this.lineNumber === other.lineNumber &&\n            this.parts.length === other.parts.length &&\n            this.parts.every((part, index) => part.equals(other.parts[index]));\n    }\n    renderForScreenReader(lineText) {\n        if (this.parts.length === 0) {\n            return '';\n        }\n        const lastPart = this.parts[this.parts.length - 1];\n        const cappedLineText = lineText.substr(0, lastPart.column - 1);\n        const text = new TextEdit([\n            ...this.parts.map(p => new SingleTextEdit(Range.fromPositions(new Position(1, p.column)), p.lines.join('\\n'))),\n        ]).applyToString(cappedLineText);\n        return text.substring(this.parts[0].column - 1);\n    }\n    isEmpty() {\n        return this.parts.every(p => p.lines.length === 0);\n    }\n    get lineCount() {\n        return 1 + this.parts.reduce((r, p) => r + p.lines.length - 1, 0);\n    }\n}\nexport class GhostTextPart {\n    constructor(column, text, \n    /**\n     * Indicates if this part is a preview of an inline suggestion when a suggestion is previewed.\n    */\n    preview) {\n        this.column = column;\n        this.text = text;\n        this.preview = preview;\n        this.lines = splitLines(this.text);\n    }\n    equals(other) {\n        return this.column === other.column &&\n            this.lines.length === other.lines.length &&\n            this.lines.every((line, index) => line === other.lines[index]);\n    }\n}\nexport class GhostTextReplacement {\n    constructor(lineNumber, columnRange, text, additionalReservedLineCount = 0) {\n        this.lineNumber = lineNumber;\n        this.columnRange = columnRange;\n        this.text = text;\n        this.additionalReservedLineCount = additionalReservedLineCount;\n        this.parts = [\n            new GhostTextPart(this.columnRange.endColumnExclusive, this.text, false),\n        ];\n        this.newLines = splitLines(this.text);\n    }\n    renderForScreenReader(_lineText) {\n        return this.newLines.join('\\n');\n    }\n    get lineCount() {\n        return this.newLines.length;\n    }\n    isEmpty() {\n        return this.parts.every(p => p.lines.length === 0);\n    }\n    equals(other) {\n        return this.lineNumber === other.lineNumber &&\n            this.columnRange.equals(other.columnRange) &&\n            this.newLines.length === other.newLines.length &&\n            this.newLines.every((line, index) => line === other.newLines[index]) &&\n            this.additionalReservedLineCount === other.additionalReservedLineCount;\n    }\n}\nexport function ghostTextsOrReplacementsEqual(a, b) {\n    return equals(a, b, ghostTextOrReplacementEquals);\n}\nexport function ghostTextOrReplacementEquals(a, b) {\n    if (a === b) {\n        return true;\n    }\n    if (!a || !b) {\n        return false;\n    }\n    if (a instanceof GhostText && b instanceof GhostText) {\n        return a.equals(b);\n    }\n    if (a instanceof GhostTextReplacement && b instanceof GhostTextReplacement) {\n        return a.equals(b);\n    }\n    return false;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineCompletions/browser/ghostTextWidget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { createTrustedTypesPolicy } from '../../../../base/browser/trustedTypes.js';\nimport { Event } from '../../../../base/common/event.js';\nimport { Disposable, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { autorun, derived, observableFromEvent, observableSignalFromEvent, observableValue } from '../../../../base/common/observable.js';\nimport * as strings from '../../../../base/common/strings.js';\nimport './ghostText.css';\nimport { applyFontInfo } from '../../../browser/config/domFontInfo.js';\nimport { EditorFontLigatures } from '../../../common/config/editorOptions.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { StringBuilder } from '../../../common/core/stringBuilder.js';\nimport { ILanguageService } from '../../../common/languages/language.js';\nimport { InjectedTextCursorStops } from '../../../common/model.js';\nimport { LineTokens } from '../../../common/tokens/lineTokens.js';\nimport { LineDecoration } from '../../../common/viewLayout/lineDecorations.js';\nimport { RenderLineInput, renderViewLine } from '../../../common/viewLayout/viewLineRenderer.js';\nimport { GhostTextReplacement } from './ghostText.js';\nimport { ColumnRange, applyObservableDecorations } from './utils.js';\nexport const GHOST_TEXT_DESCRIPTION = 'ghost-text';\nlet GhostTextWidget = class GhostTextWidget extends Disposable {\n    constructor(editor, model, languageService) {\n        super();\n        this.editor = editor;\n        this.model = model;\n        this.languageService = languageService;\n        this.isDisposed = observableValue(this, false);\n        this.currentTextModel = observableFromEvent(this.editor.onDidChangeModel, () => /** @description editor.model */ this.editor.getModel());\n        this.uiState = derived(this, reader => {\n            if (this.isDisposed.read(reader)) {\n                return undefined;\n            }\n            const textModel = this.currentTextModel.read(reader);\n            if (textModel !== this.model.targetTextModel.read(reader)) {\n                return undefined;\n            }\n            const ghostText = this.model.ghostText.read(reader);\n            if (!ghostText) {\n                return undefined;\n            }\n            const replacedRange = ghostText instanceof GhostTextReplacement ? ghostText.columnRange : undefined;\n            const inlineTexts = [];\n            const additionalLines = [];\n            function addToAdditionalLines(lines, className) {\n                if (additionalLines.length > 0) {\n                    const lastLine = additionalLines[additionalLines.length - 1];\n                    if (className) {\n                        lastLine.decorations.push(new LineDecoration(lastLine.content.length + 1, lastLine.content.length + 1 + lines[0].length, className, 0 /* InlineDecorationType.Regular */));\n                    }\n                    lastLine.content += lines[0];\n                    lines = lines.slice(1);\n                }\n                for (const line of lines) {\n                    additionalLines.push({\n                        content: line,\n                        decorations: className ? [new LineDecoration(1, line.length + 1, className, 0 /* InlineDecorationType.Regular */)] : []\n                    });\n                }\n            }\n            const textBufferLine = textModel.getLineContent(ghostText.lineNumber);\n            let hiddenTextStartColumn = undefined;\n            let lastIdx = 0;\n            for (const part of ghostText.parts) {\n                let lines = part.lines;\n                if (hiddenTextStartColumn === undefined) {\n                    inlineTexts.push({\n                        column: part.column,\n                        text: lines[0],\n                        preview: part.preview,\n                    });\n                    lines = lines.slice(1);\n                }\n                else {\n                    addToAdditionalLines([textBufferLine.substring(lastIdx, part.column - 1)], undefined);\n                }\n                if (lines.length > 0) {\n                    addToAdditionalLines(lines, GHOST_TEXT_DESCRIPTION);\n                    if (hiddenTextStartColumn === undefined && part.column <= textBufferLine.length) {\n                        hiddenTextStartColumn = part.column;\n                    }\n                }\n                lastIdx = part.column - 1;\n            }\n            if (hiddenTextStartColumn !== undefined) {\n                addToAdditionalLines([textBufferLine.substring(lastIdx)], undefined);\n            }\n            const hiddenRange = hiddenTextStartColumn !== undefined ? new ColumnRange(hiddenTextStartColumn, textBufferLine.length + 1) : undefined;\n            return {\n                replacedRange,\n                inlineTexts,\n                additionalLines,\n                hiddenRange,\n                lineNumber: ghostText.lineNumber,\n                additionalReservedLineCount: this.model.minReservedLineCount.read(reader),\n                targetTextModel: textModel,\n            };\n        });\n        this.decorations = derived(this, reader => {\n            const uiState = this.uiState.read(reader);\n            if (!uiState) {\n                return [];\n            }\n            const decorations = [];\n            if (uiState.replacedRange) {\n                decorations.push({\n                    range: uiState.replacedRange.toRange(uiState.lineNumber),\n                    options: { inlineClassName: 'inline-completion-text-to-replace', description: 'GhostTextReplacement' }\n                });\n            }\n            if (uiState.hiddenRange) {\n                decorations.push({\n                    range: uiState.hiddenRange.toRange(uiState.lineNumber),\n                    options: { inlineClassName: 'ghost-text-hidden', description: 'ghost-text-hidden', }\n                });\n            }\n            for (const p of uiState.inlineTexts) {\n                decorations.push({\n                    range: Range.fromPositions(new Position(uiState.lineNumber, p.column)),\n                    options: {\n                        description: GHOST_TEXT_DESCRIPTION,\n                        after: { content: p.text, inlineClassName: p.preview ? 'ghost-text-decoration-preview' : 'ghost-text-decoration', cursorStops: InjectedTextCursorStops.Left },\n                        showIfCollapsed: true,\n                    }\n                });\n            }\n            return decorations;\n        });\n        this.additionalLinesWidget = this._register(new AdditionalLinesWidget(this.editor, this.languageService.languageIdCodec, derived(reader => {\n            /** @description lines */\n            const uiState = this.uiState.read(reader);\n            return uiState ? {\n                lineNumber: uiState.lineNumber,\n                additionalLines: uiState.additionalLines,\n                minReservedLineCount: uiState.additionalReservedLineCount,\n                targetTextModel: uiState.targetTextModel,\n            } : undefined;\n        })));\n        this._register(toDisposable(() => { this.isDisposed.set(true, undefined); }));\n        this._register(applyObservableDecorations(this.editor, this.decorations));\n    }\n    ownsViewZone(viewZoneId) {\n        return this.additionalLinesWidget.viewZoneId === viewZoneId;\n    }\n};\nGhostTextWidget = __decorate([\n    __param(2, ILanguageService)\n], GhostTextWidget);\nexport { GhostTextWidget };\nexport class AdditionalLinesWidget extends Disposable {\n    get viewZoneId() { return this._viewZoneId; }\n    constructor(editor, languageIdCodec, lines) {\n        super();\n        this.editor = editor;\n        this.languageIdCodec = languageIdCodec;\n        this.lines = lines;\n        this._viewZoneId = undefined;\n        this.editorOptionsChanged = observableSignalFromEvent('editorOptionChanged', Event.filter(this.editor.onDidChangeConfiguration, e => e.hasChanged(33 /* EditorOption.disableMonospaceOptimizations */)\n            || e.hasChanged(117 /* EditorOption.stopRenderingLineAfter */)\n            || e.hasChanged(99 /* EditorOption.renderWhitespace */)\n            || e.hasChanged(94 /* EditorOption.renderControlCharacters */)\n            || e.hasChanged(51 /* EditorOption.fontLigatures */)\n            || e.hasChanged(50 /* EditorOption.fontInfo */)\n            || e.hasChanged(67 /* EditorOption.lineHeight */)));\n        this._register(autorun(reader => {\n            /** @description update view zone */\n            const lines = this.lines.read(reader);\n            this.editorOptionsChanged.read(reader);\n            if (lines) {\n                this.updateLines(lines.lineNumber, lines.additionalLines, lines.minReservedLineCount);\n            }\n            else {\n                this.clear();\n            }\n        }));\n    }\n    dispose() {\n        super.dispose();\n        this.clear();\n    }\n    clear() {\n        this.editor.changeViewZones((changeAccessor) => {\n            if (this._viewZoneId) {\n                changeAccessor.removeZone(this._viewZoneId);\n                this._viewZoneId = undefined;\n            }\n        });\n    }\n    updateLines(lineNumber, additionalLines, minReservedLineCount) {\n        const textModel = this.editor.getModel();\n        if (!textModel) {\n            return;\n        }\n        const { tabSize } = textModel.getOptions();\n        this.editor.changeViewZones((changeAccessor) => {\n            if (this._viewZoneId) {\n                changeAccessor.removeZone(this._viewZoneId);\n                this._viewZoneId = undefined;\n            }\n            const heightInLines = Math.max(additionalLines.length, minReservedLineCount);\n            if (heightInLines > 0) {\n                const domNode = document.createElement('div');\n                renderLines(domNode, tabSize, additionalLines, this.editor.getOptions(), this.languageIdCodec);\n                this._viewZoneId = changeAccessor.addZone({\n                    afterLineNumber: lineNumber,\n                    heightInLines: heightInLines,\n                    domNode,\n                    afterColumnAffinity: 1 /* PositionAffinity.Right */\n                });\n            }\n        });\n    }\n}\nfunction renderLines(domNode, tabSize, lines, opts, languageIdCodec) {\n    const disableMonospaceOptimizations = opts.get(33 /* EditorOption.disableMonospaceOptimizations */);\n    const stopRenderingLineAfter = opts.get(117 /* EditorOption.stopRenderingLineAfter */);\n    // To avoid visual confusion, we don't want to render visible whitespace\n    const renderWhitespace = 'none';\n    const renderControlCharacters = opts.get(94 /* EditorOption.renderControlCharacters */);\n    const fontLigatures = opts.get(51 /* EditorOption.fontLigatures */);\n    const fontInfo = opts.get(50 /* EditorOption.fontInfo */);\n    const lineHeight = opts.get(67 /* EditorOption.lineHeight */);\n    const sb = new StringBuilder(10000);\n    sb.appendString('<div class=\"suggest-preview-text\">');\n    for (let i = 0, len = lines.length; i < len; i++) {\n        const lineData = lines[i];\n        const line = lineData.content;\n        sb.appendString('<div class=\"view-line');\n        sb.appendString('\" style=\"top:');\n        sb.appendString(String(i * lineHeight));\n        sb.appendString('px;width:1000000px;\">');\n        const isBasicASCII = strings.isBasicASCII(line);\n        const containsRTL = strings.containsRTL(line);\n        const lineTokens = LineTokens.createEmpty(line, languageIdCodec);\n        renderViewLine(new RenderLineInput((fontInfo.isMonospace && !disableMonospaceOptimizations), fontInfo.canUseHalfwidthRightwardsArrow, line, false, isBasicASCII, containsRTL, 0, lineTokens, lineData.decorations, tabSize, 0, fontInfo.spaceWidth, fontInfo.middotWidth, fontInfo.wsmiddotWidth, stopRenderingLineAfter, renderWhitespace, renderControlCharacters, fontLigatures !== EditorFontLigatures.OFF, null), sb);\n        sb.appendString('</div>');\n    }\n    sb.appendString('</div>');\n    applyFontInfo(domNode, fontInfo);\n    const html = sb.build();\n    const trustedhtml = ttPolicy ? ttPolicy.createHTML(html) : html;\n    domNode.innerHTML = trustedhtml;\n}\nexport const ttPolicy = createTrustedTypesPolicy('editorGhostText', { createHTML: value => value });\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineCompletions/browser/hoverParticipant.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport * as dom from '../../../../base/browser/dom.js';\nimport { MarkdownString } from '../../../../base/common/htmlContent.js';\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { autorun, constObservable } from '../../../../base/common/observable.js';\nimport { Range } from '../../../common/core/range.js';\nimport { ILanguageService } from '../../../common/languages/language.js';\nimport { HoverForeignElementAnchor } from '../../hover/browser/hoverTypes.js';\nimport { InlineCompletionsController } from './inlineCompletionsController.js';\nimport { InlineSuggestionHintsContentWidget } from './inlineCompletionsHintsWidget.js';\nimport { MarkdownRenderer } from '../../../browser/widget/markdownRenderer/browser/markdownRenderer.js';\nimport * as nls from '../../../../nls.js';\nimport { IAccessibilityService } from '../../../../platform/accessibility/common/accessibility.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IOpenerService } from '../../../../platform/opener/common/opener.js';\nimport { ITelemetryService } from '../../../../platform/telemetry/common/telemetry.js';\nexport class InlineCompletionsHover {\n    constructor(owner, range, controller) {\n        this.owner = owner;\n        this.range = range;\n        this.controller = controller;\n    }\n    isValidForHoverAnchor(anchor) {\n        return (anchor.type === 1 /* HoverAnchorType.Range */\n            && this.range.startColumn <= anchor.range.startColumn\n            && this.range.endColumn >= anchor.range.endColumn);\n    }\n}\nlet InlineCompletionsHoverParticipant = class InlineCompletionsHoverParticipant {\n    constructor(_editor, _languageService, _openerService, accessibilityService, _instantiationService, _telemetryService) {\n        this._editor = _editor;\n        this._languageService = _languageService;\n        this._openerService = _openerService;\n        this.accessibilityService = accessibilityService;\n        this._instantiationService = _instantiationService;\n        this._telemetryService = _telemetryService;\n        this.hoverOrdinal = 4;\n    }\n    suggestHoverAnchor(mouseEvent) {\n        const controller = InlineCompletionsController.get(this._editor);\n        if (!controller) {\n            return null;\n        }\n        const target = mouseEvent.target;\n        if (target.type === 8 /* MouseTargetType.CONTENT_VIEW_ZONE */) {\n            // handle the case where the mouse is over the view zone\n            const viewZoneData = target.detail;\n            if (controller.shouldShowHoverAtViewZone(viewZoneData.viewZoneId)) {\n                return new HoverForeignElementAnchor(1000, this, Range.fromPositions(this._editor.getModel().validatePosition(viewZoneData.positionBefore || viewZoneData.position)), mouseEvent.event.posx, mouseEvent.event.posy, false);\n            }\n        }\n        if (target.type === 7 /* MouseTargetType.CONTENT_EMPTY */) {\n            // handle the case where the mouse is over the empty portion of a line following ghost text\n            if (controller.shouldShowHoverAt(target.range)) {\n                return new HoverForeignElementAnchor(1000, this, target.range, mouseEvent.event.posx, mouseEvent.event.posy, false);\n            }\n        }\n        if (target.type === 6 /* MouseTargetType.CONTENT_TEXT */) {\n            // handle the case where the mouse is directly over ghost text\n            const mightBeForeignElement = target.detail.mightBeForeignElement;\n            if (mightBeForeignElement && controller.shouldShowHoverAt(target.range)) {\n                return new HoverForeignElementAnchor(1000, this, target.range, mouseEvent.event.posx, mouseEvent.event.posy, false);\n            }\n        }\n        return null;\n    }\n    computeSync(anchor, lineDecorations) {\n        if (this._editor.getOption(62 /* EditorOption.inlineSuggest */).showToolbar !== 'onHover') {\n            return [];\n        }\n        const controller = InlineCompletionsController.get(this._editor);\n        if (controller && controller.shouldShowHoverAt(anchor.range)) {\n            return [new InlineCompletionsHover(this, anchor.range, controller)];\n        }\n        return [];\n    }\n    renderHoverParts(context, hoverParts) {\n        const disposableStore = new DisposableStore();\n        const part = hoverParts[0];\n        this._telemetryService.publicLog2('inlineCompletionHover.shown');\n        if (this.accessibilityService.isScreenReaderOptimized() && !this._editor.getOption(8 /* EditorOption.screenReaderAnnounceInlineSuggestion */)) {\n            this.renderScreenReaderText(context, part, disposableStore);\n        }\n        const model = part.controller.model.get();\n        const w = this._instantiationService.createInstance(InlineSuggestionHintsContentWidget, this._editor, false, constObservable(null), model.selectedInlineCompletionIndex, model.inlineCompletionsCount, model.activeCommands);\n        context.fragment.appendChild(w.getDomNode());\n        model.triggerExplicitly();\n        disposableStore.add(w);\n        return disposableStore;\n    }\n    renderScreenReaderText(context, part, disposableStore) {\n        const $ = dom.$;\n        const markdownHoverElement = $('div.hover-row.markdown-hover');\n        const hoverContentsElement = dom.append(markdownHoverElement, $('div.hover-contents', { ['aria-live']: 'assertive' }));\n        const renderer = disposableStore.add(new MarkdownRenderer({ editor: this._editor }, this._languageService, this._openerService));\n        const render = (code) => {\n            disposableStore.add(renderer.onDidRenderAsync(() => {\n                hoverContentsElement.className = 'hover-contents code-hover-contents';\n                context.onContentsChanged();\n            }));\n            const inlineSuggestionAvailable = nls.localize('inlineSuggestionFollows', \"Suggestion:\");\n            const renderedContents = disposableStore.add(renderer.render(new MarkdownString().appendText(inlineSuggestionAvailable).appendCodeblock('text', code)));\n            hoverContentsElement.replaceChildren(renderedContents.element);\n        };\n        disposableStore.add(autorun(reader => {\n            var _a;\n            /** @description update hover */\n            const ghostText = (_a = part.controller.model.read(reader)) === null || _a === void 0 ? void 0 : _a.primaryGhostText.read(reader);\n            if (ghostText) {\n                const lineText = this._editor.getModel().getLineContent(ghostText.lineNumber);\n                render(ghostText.renderForScreenReader(lineText));\n            }\n            else {\n                dom.reset(hoverContentsElement);\n            }\n        }));\n        context.fragment.appendChild(markdownHoverElement);\n    }\n};\nInlineCompletionsHoverParticipant = __decorate([\n    __param(1, ILanguageService),\n    __param(2, IOpenerService),\n    __param(3, IAccessibilityService),\n    __param(4, IInstantiationService),\n    __param(5, ITelemetryService)\n], InlineCompletionsHoverParticipant);\nexport { InlineCompletionsHoverParticipant };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineCompletions/browser/inlineCompletionContextKeys.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { autorun } from '../../../../base/common/observable.js';\nimport { firstNonWhitespaceIndex } from '../../../../base/common/strings.js';\nimport { CursorColumns } from '../../../common/core/cursorColumns.js';\nimport { RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { localize } from '../../../../nls.js';\nexport class InlineCompletionContextKeys extends Disposable {\n    constructor(contextKeyService, model) {\n        super();\n        this.contextKeyService = contextKeyService;\n        this.model = model;\n        this.inlineCompletionVisible = InlineCompletionContextKeys.inlineSuggestionVisible.bindTo(this.contextKeyService);\n        this.inlineCompletionSuggestsIndentation = InlineCompletionContextKeys.inlineSuggestionHasIndentation.bindTo(this.contextKeyService);\n        this.inlineCompletionSuggestsIndentationLessThanTabSize = InlineCompletionContextKeys.inlineSuggestionHasIndentationLessThanTabSize.bindTo(this.contextKeyService);\n        this.suppressSuggestions = InlineCompletionContextKeys.suppressSuggestions.bindTo(this.contextKeyService);\n        this._register(autorun(reader => {\n            /** @description update context key: inlineCompletionVisible, suppressSuggestions */\n            const model = this.model.read(reader);\n            const state = model === null || model === void 0 ? void 0 : model.state.read(reader);\n            const isInlineCompletionVisible = !!(state === null || state === void 0 ? void 0 : state.inlineCompletion) && (state === null || state === void 0 ? void 0 : state.primaryGhostText) !== undefined && !(state === null || state === void 0 ? void 0 : state.primaryGhostText.isEmpty());\n            this.inlineCompletionVisible.set(isInlineCompletionVisible);\n            if ((state === null || state === void 0 ? void 0 : state.primaryGhostText) && (state === null || state === void 0 ? void 0 : state.inlineCompletion)) {\n                this.suppressSuggestions.set(state.inlineCompletion.inlineCompletion.source.inlineCompletions.suppressSuggestions);\n            }\n        }));\n        this._register(autorun(reader => {\n            /** @description update context key: inlineCompletionSuggestsIndentation, inlineCompletionSuggestsIndentationLessThanTabSize */\n            const model = this.model.read(reader);\n            let startsWithIndentation = false;\n            let startsWithIndentationLessThanTabSize = true;\n            const ghostText = model === null || model === void 0 ? void 0 : model.primaryGhostText.read(reader);\n            if (!!(model === null || model === void 0 ? void 0 : model.selectedSuggestItem) && ghostText && ghostText.parts.length > 0) {\n                const { column, lines } = ghostText.parts[0];\n                const firstLine = lines[0];\n                const indentationEndColumn = model.textModel.getLineIndentColumn(ghostText.lineNumber);\n                const inIndentation = column <= indentationEndColumn;\n                if (inIndentation) {\n                    let firstNonWsIdx = firstNonWhitespaceIndex(firstLine);\n                    if (firstNonWsIdx === -1) {\n                        firstNonWsIdx = firstLine.length - 1;\n                    }\n                    startsWithIndentation = firstNonWsIdx > 0;\n                    const tabSize = model.textModel.getOptions().tabSize;\n                    const visibleColumnIndentation = CursorColumns.visibleColumnFromColumn(firstLine, firstNonWsIdx + 1, tabSize);\n                    startsWithIndentationLessThanTabSize = visibleColumnIndentation < tabSize;\n                }\n            }\n            this.inlineCompletionSuggestsIndentation.set(startsWithIndentation);\n            this.inlineCompletionSuggestsIndentationLessThanTabSize.set(startsWithIndentationLessThanTabSize);\n        }));\n    }\n}\nInlineCompletionContextKeys.inlineSuggestionVisible = new RawContextKey('inlineSuggestionVisible', false, localize('inlineSuggestionVisible', \"Whether an inline suggestion is visible\"));\nInlineCompletionContextKeys.inlineSuggestionHasIndentation = new RawContextKey('inlineSuggestionHasIndentation', false, localize('inlineSuggestionHasIndentation', \"Whether the inline suggestion starts with whitespace\"));\nInlineCompletionContextKeys.inlineSuggestionHasIndentationLessThanTabSize = new RawContextKey('inlineSuggestionHasIndentationLessThanTabSize', true, localize('inlineSuggestionHasIndentationLessThanTabSize', \"Whether the inline suggestion starts with whitespace that is less than what would be inserted by tab\"));\nInlineCompletionContextKeys.suppressSuggestions = new RawContextKey('inlineSuggestionSuppressSuggestions', undefined, localize('suppressSuggestions', \"Whether suggestions should be suppressed for the current suggestion\"));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineCompletions/browser/inlineCompletions.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineCompletions/browser/inlineCompletions.contribution.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { registerEditorAction, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { HoverParticipantRegistry } from '../../hover/browser/hoverTypes.js';\nimport { TriggerInlineSuggestionAction, ShowNextInlineSuggestionAction, ShowPreviousInlineSuggestionAction, AcceptNextWordOfInlineCompletion, AcceptInlineCompletion, HideInlineCompletion, ToggleAlwaysShowInlineSuggestionToolbar, AcceptNextLineOfInlineCompletion } from './commands.js';\nimport { InlineCompletionsHoverParticipant } from './hoverParticipant.js';\nimport { InlineCompletionsAccessibleView } from './inlineCompletionsAccessibleView.js';\nimport { InlineCompletionsController } from './inlineCompletionsController.js';\nimport { AccessibleViewRegistry } from '../../../../platform/accessibility/browser/accessibleViewRegistry.js';\nimport { registerAction2 } from '../../../../platform/actions/common/actions.js';\nregisterEditorContribution(InlineCompletionsController.ID, InlineCompletionsController, 3 /* EditorContributionInstantiation.Eventually */);\nregisterEditorAction(TriggerInlineSuggestionAction);\nregisterEditorAction(ShowNextInlineSuggestionAction);\nregisterEditorAction(ShowPreviousInlineSuggestionAction);\nregisterEditorAction(AcceptNextWordOfInlineCompletion);\nregisterEditorAction(AcceptNextLineOfInlineCompletion);\nregisterEditorAction(AcceptInlineCompletion);\nregisterEditorAction(HideInlineCompletion);\nregisterAction2(ToggleAlwaysShowInlineSuggestionToolbar);\nHoverParticipantRegistry.register(InlineCompletionsHoverParticipant);\nAccessibleViewRegistry.register(new InlineCompletionsAccessibleView());\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsAccessibleView.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nexport class InlineCompletionsAccessibleView extends Disposable {\n    constructor() {\n        super();\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsController.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar InlineCompletionsController_1;\nimport { createStyleSheet2 } from '../../../../base/browser/dom.js';\nimport { alert } from '../../../../base/browser/ui/aria/aria.js';\nimport { timeout } from '../../../../base/common/async.js';\nimport { cancelOnDispose } from '../../../../base/common/cancellation.js';\nimport { itemEquals, itemsEquals } from '../../../../base/common/equals.js';\nimport { Disposable, DisposableStore, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { autorun, autorunHandleChanges, constObservable, derived, disposableObservableValue, observableFromEvent, observableSignal, observableValue, transaction, waitForState } from '../../../../base/common/observable.js';\nimport { observableValueOpts } from '../../../../base/common/observableInternal/base.js';\nimport { mapObservableArrayCached } from '../../../../base/common/observableInternal/utils.js';\nimport { isUndefined } from '../../../../base/common/types.js';\nimport { CoreEditingCommands } from '../../../browser/coreCommands.js';\nimport { Position } from '../../../common/core/position.js';\nimport { ILanguageFeatureDebounceService } from '../../../common/services/languageFeatureDebounce.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { inlineSuggestCommitId } from './commandIds.js';\nimport { GhostTextWidget } from './ghostTextWidget.js';\nimport { InlineCompletionContextKeys } from './inlineCompletionContextKeys.js';\nimport { InlineCompletionsHintsWidget, InlineSuggestionHintsContentWidget } from './inlineCompletionsHintsWidget.js';\nimport { InlineCompletionsModel, VersionIdChangeReason } from './inlineCompletionsModel.js';\nimport { SuggestWidgetAdaptor } from './suggestWidgetInlineCompletionProvider.js';\nimport { localize } from '../../../../nls.js';\nimport { IAccessibilityService } from '../../../../platform/accessibility/common/accessibility.js';\nimport { AccessibilitySignal, IAccessibilitySignalService } from '../../../../platform/accessibilitySignal/browser/accessibilitySignalService.js';\nimport { ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nlet InlineCompletionsController = InlineCompletionsController_1 = class InlineCompletionsController extends Disposable {\n    static get(editor) {\n        return editor.getContribution(InlineCompletionsController_1.ID);\n    }\n    constructor(editor, _instantiationService, _contextKeyService, _configurationService, _commandService, _debounceService, _languageFeaturesService, _accessibilitySignalService, _keybindingService, _accessibilityService) {\n        super();\n        this.editor = editor;\n        this._instantiationService = _instantiationService;\n        this._contextKeyService = _contextKeyService;\n        this._configurationService = _configurationService;\n        this._commandService = _commandService;\n        this._debounceService = _debounceService;\n        this._languageFeaturesService = _languageFeaturesService;\n        this._accessibilitySignalService = _accessibilitySignalService;\n        this._keybindingService = _keybindingService;\n        this._accessibilityService = _accessibilityService;\n        this.model = this._register(disposableObservableValue('inlineCompletionModel', undefined));\n        this._textModelVersionId = observableValue(this, -1);\n        this._positions = observableValueOpts({ owner: this, equalsFn: itemsEquals(itemEquals()) }, [new Position(1, 1)]);\n        this._suggestWidgetAdaptor = this._register(new SuggestWidgetAdaptor(this.editor, () => { var _a, _b; return (_b = (_a = this.model.get()) === null || _a === void 0 ? void 0 : _a.selectedInlineCompletion.get()) === null || _b === void 0 ? void 0 : _b.toSingleTextEdit(undefined); }, (tx) => this.updateObservables(tx, VersionIdChangeReason.Other), (item) => {\n            transaction(tx => {\n                var _a;\n                /** @description InlineCompletionsController.handleSuggestAccepted */\n                this.updateObservables(tx, VersionIdChangeReason.Other);\n                (_a = this.model.get()) === null || _a === void 0 ? void 0 : _a.handleSuggestAccepted(item);\n            });\n        }));\n        this._enabledInConfig = observableFromEvent(this.editor.onDidChangeConfiguration, () => this.editor.getOption(62 /* EditorOption.inlineSuggest */).enabled);\n        this._isScreenReaderEnabled = observableFromEvent(this._accessibilityService.onDidChangeScreenReaderOptimized, () => this._accessibilityService.isScreenReaderOptimized());\n        this._editorDictationInProgress = observableFromEvent(this._contextKeyService.onDidChangeContext, () => this._contextKeyService.getContext(this.editor.getDomNode()).getValue('editorDictation.inProgress') === true);\n        this._enabled = derived(this, reader => this._enabledInConfig.read(reader) && (!this._isScreenReaderEnabled.read(reader) || !this._editorDictationInProgress.read(reader)));\n        this._fontFamily = observableFromEvent(this.editor.onDidChangeConfiguration, () => this.editor.getOption(62 /* EditorOption.inlineSuggest */).fontFamily);\n        this._ghostTexts = derived(this, (reader) => {\n            var _a;\n            const model = this.model.read(reader);\n            return (_a = model === null || model === void 0 ? void 0 : model.ghostTexts.read(reader)) !== null && _a !== void 0 ? _a : [];\n        });\n        this._stablizedGhostTexts = convertItemsToStableObservables(this._ghostTexts, this._store);\n        this._ghostTextWidgets = mapObservableArrayCached(this, this._stablizedGhostTexts, (ghostText, store) => {\n            return store.add(this._instantiationService.createInstance(GhostTextWidget, this.editor, {\n                ghostText: ghostText,\n                minReservedLineCount: constObservable(0),\n                targetTextModel: this.model.map(v => v === null || v === void 0 ? void 0 : v.textModel),\n            }));\n        }).recomputeInitiallyAndOnChange(this._store);\n        this._debounceValue = this._debounceService.for(this._languageFeaturesService.inlineCompletionsProvider, 'InlineCompletionsDebounce', { min: 50, max: 50 });\n        this._playAccessibilitySignal = observableSignal(this);\n        this._isReadonly = observableFromEvent(this.editor.onDidChangeConfiguration, () => this.editor.getOption(91 /* EditorOption.readOnly */));\n        this._textModel = observableFromEvent(this.editor.onDidChangeModel, () => this.editor.getModel());\n        this._textModelIfWritable = derived(reader => this._isReadonly.read(reader) ? undefined : this._textModel.read(reader));\n        this._register(new InlineCompletionContextKeys(this._contextKeyService, this.model));\n        this._register(autorun(reader => {\n            /** @description InlineCompletionsController.update model */\n            const textModel = this._textModelIfWritable.read(reader);\n            transaction(tx => {\n                /** @description InlineCompletionsController.onDidChangeModel/readonly */\n                this.model.set(undefined, tx);\n                this.updateObservables(tx, VersionIdChangeReason.Other);\n                if (textModel) {\n                    const model = _instantiationService.createInstance(InlineCompletionsModel, textModel, this._suggestWidgetAdaptor.selectedItem, this._textModelVersionId, this._positions, this._debounceValue, observableFromEvent(editor.onDidChangeConfiguration, () => editor.getOption(118 /* EditorOption.suggest */).preview), observableFromEvent(editor.onDidChangeConfiguration, () => editor.getOption(118 /* EditorOption.suggest */).previewMode), observableFromEvent(editor.onDidChangeConfiguration, () => editor.getOption(62 /* EditorOption.inlineSuggest */).mode), this._enabled);\n                    this.model.set(model, tx);\n                }\n            });\n        }));\n        const styleElement = this._register(createStyleSheet2());\n        this._register(autorun(reader => {\n            const fontFamily = this._fontFamily.read(reader);\n            styleElement.setStyle(fontFamily === '' || fontFamily === 'default' ? `` : `\n.monaco-editor .ghost-text-decoration,\n.monaco-editor .ghost-text-decoration-preview,\n.monaco-editor .ghost-text {\n\tfont-family: ${fontFamily};\n}`);\n        }));\n        const getReason = (e) => {\n            var _a;\n            if (e.isUndoing) {\n                return VersionIdChangeReason.Undo;\n            }\n            if (e.isRedoing) {\n                return VersionIdChangeReason.Redo;\n            }\n            if ((_a = this.model.get()) === null || _a === void 0 ? void 0 : _a.isAcceptingPartially) {\n                return VersionIdChangeReason.AcceptWord;\n            }\n            return VersionIdChangeReason.Other;\n        };\n        this._register(editor.onDidChangeModelContent((e) => transaction(tx => \n        /** @description InlineCompletionsController.onDidChangeModelContent */\n        this.updateObservables(tx, getReason(e)))));\n        this._register(editor.onDidChangeCursorPosition(e => transaction(tx => {\n            var _a;\n            /** @description InlineCompletionsController.onDidChangeCursorPosition */\n            this.updateObservables(tx, VersionIdChangeReason.Other);\n            if (e.reason === 3 /* CursorChangeReason.Explicit */ || e.source === 'api') {\n                (_a = this.model.get()) === null || _a === void 0 ? void 0 : _a.stop(tx);\n            }\n        })));\n        this._register(editor.onDidType(() => transaction(tx => {\n            var _a;\n            /** @description InlineCompletionsController.onDidType */\n            this.updateObservables(tx, VersionIdChangeReason.Other);\n            if (this._enabled.get()) {\n                (_a = this.model.get()) === null || _a === void 0 ? void 0 : _a.trigger(tx);\n            }\n        })));\n        this._register(this._commandService.onDidExecuteCommand((e) => {\n            // These commands don't trigger onDidType.\n            const commands = new Set([\n                CoreEditingCommands.Tab.id,\n                CoreEditingCommands.DeleteLeft.id,\n                CoreEditingCommands.DeleteRight.id,\n                inlineSuggestCommitId,\n                'acceptSelectedSuggestion',\n            ]);\n            if (commands.has(e.commandId) && editor.hasTextFocus() && this._enabled.get()) {\n                transaction(tx => {\n                    var _a;\n                    /** @description onDidExecuteCommand */\n                    (_a = this.model.get()) === null || _a === void 0 ? void 0 : _a.trigger(tx);\n                });\n            }\n        }));\n        this._register(this.editor.onDidBlurEditorWidget(() => {\n            // This is a hidden setting very useful for debugging\n            if (this._contextKeyService.getContextKeyValue('accessibleViewIsShown') || this._configurationService.getValue('editor.inlineSuggest.keepOnBlur') ||\n                editor.getOption(62 /* EditorOption.inlineSuggest */).keepOnBlur) {\n                return;\n            }\n            if (InlineSuggestionHintsContentWidget.dropDownVisible) {\n                return;\n            }\n            transaction(tx => {\n                var _a;\n                /** @description InlineCompletionsController.onDidBlurEditorWidget */\n                (_a = this.model.get()) === null || _a === void 0 ? void 0 : _a.stop(tx);\n            });\n        }));\n        this._register(autorun(reader => {\n            var _a;\n            /** @description InlineCompletionsController.forceRenderingAbove */\n            const state = (_a = this.model.read(reader)) === null || _a === void 0 ? void 0 : _a.state.read(reader);\n            if (state === null || state === void 0 ? void 0 : state.suggestItem) {\n                if (state.primaryGhostText.lineCount >= 2) {\n                    this._suggestWidgetAdaptor.forceRenderingAbove();\n                }\n            }\n            else {\n                this._suggestWidgetAdaptor.stopForceRenderingAbove();\n            }\n        }));\n        this._register(toDisposable(() => {\n            this._suggestWidgetAdaptor.stopForceRenderingAbove();\n        }));\n        const cancellationStore = this._register(new DisposableStore());\n        let lastInlineCompletionId = undefined;\n        this._register(autorunHandleChanges({\n            handleChange: (context, changeSummary) => {\n                if (context.didChange(this._playAccessibilitySignal)) {\n                    lastInlineCompletionId = undefined;\n                }\n                return true;\n            },\n        }, async (reader, _) => {\n            /** @description InlineCompletionsController.playAccessibilitySignalAndReadSuggestion */\n            this._playAccessibilitySignal.read(reader);\n            const model = this.model.read(reader);\n            const state = model === null || model === void 0 ? void 0 : model.state.read(reader);\n            if (!model || !state || !state.inlineCompletion) {\n                lastInlineCompletionId = undefined;\n                return;\n            }\n            if (state.inlineCompletion.semanticId !== lastInlineCompletionId) {\n                cancellationStore.clear();\n                lastInlineCompletionId = state.inlineCompletion.semanticId;\n                const lineText = model.textModel.getLineContent(state.primaryGhostText.lineNumber);\n                await timeout(50, cancelOnDispose(cancellationStore));\n                await waitForState(this._suggestWidgetAdaptor.selectedItem, isUndefined, () => false, cancelOnDispose(cancellationStore));\n                await this._accessibilitySignalService.playSignal(AccessibilitySignal.inlineSuggestion);\n                if (this.editor.getOption(8 /* EditorOption.screenReaderAnnounceInlineSuggestion */)) {\n                    this.provideScreenReaderUpdate(state.primaryGhostText.renderForScreenReader(lineText));\n                }\n            }\n        }));\n        this._register(new InlineCompletionsHintsWidget(this.editor, this.model, this._instantiationService));\n        this._register(this._configurationService.onDidChangeConfiguration(e => {\n            if (e.affectsConfiguration('accessibility.verbosity.inlineCompletions')) {\n                this.editor.updateOptions({ inlineCompletionsAccessibilityVerbose: this._configurationService.getValue('accessibility.verbosity.inlineCompletions') });\n            }\n        }));\n        this.editor.updateOptions({ inlineCompletionsAccessibilityVerbose: this._configurationService.getValue('accessibility.verbosity.inlineCompletions') });\n    }\n    playAccessibilitySignal(tx) {\n        this._playAccessibilitySignal.trigger(tx);\n    }\n    provideScreenReaderUpdate(content) {\n        const accessibleViewShowing = this._contextKeyService.getContextKeyValue('accessibleViewIsShown');\n        const accessibleViewKeybinding = this._keybindingService.lookupKeybinding('editor.action.accessibleView');\n        let hint;\n        if (!accessibleViewShowing && accessibleViewKeybinding && this.editor.getOption(149 /* EditorOption.inlineCompletionsAccessibilityVerbose */)) {\n            hint = localize('showAccessibleViewHint', \"Inspect this in the accessible view ({0})\", accessibleViewKeybinding.getAriaLabel());\n        }\n        hint ? alert(content + ', ' + hint) : alert(content);\n    }\n    /**\n     * Copies over the relevant state from the text model to observables.\n     * This solves all kind of eventing issues, as we make sure we always operate on the latest state,\n     * regardless of who calls into us.\n     */\n    updateObservables(tx, changeReason) {\n        var _a, _b, _c;\n        const newModel = this.editor.getModel();\n        this._textModelVersionId.set((_a = newModel === null || newModel === void 0 ? void 0 : newModel.getVersionId()) !== null && _a !== void 0 ? _a : -1, tx, changeReason);\n        this._positions.set((_c = (_b = this.editor.getSelections()) === null || _b === void 0 ? void 0 : _b.map(selection => selection.getPosition())) !== null && _c !== void 0 ? _c : [new Position(1, 1)], tx);\n    }\n    shouldShowHoverAt(range) {\n        var _a;\n        const ghostText = (_a = this.model.get()) === null || _a === void 0 ? void 0 : _a.primaryGhostText.get();\n        if (ghostText) {\n            return ghostText.parts.some(p => range.containsPosition(new Position(ghostText.lineNumber, p.column)));\n        }\n        return false;\n    }\n    shouldShowHoverAtViewZone(viewZoneId) {\n        var _a, _b;\n        return (_b = (_a = this._ghostTextWidgets.get()[0]) === null || _a === void 0 ? void 0 : _a.ownsViewZone(viewZoneId)) !== null && _b !== void 0 ? _b : false;\n    }\n};\nInlineCompletionsController.ID = 'editor.contrib.inlineCompletionsController';\nInlineCompletionsController = InlineCompletionsController_1 = __decorate([\n    __param(1, IInstantiationService),\n    __param(2, IContextKeyService),\n    __param(3, IConfigurationService),\n    __param(4, ICommandService),\n    __param(5, ILanguageFeatureDebounceService),\n    __param(6, ILanguageFeaturesService),\n    __param(7, IAccessibilitySignalService),\n    __param(8, IKeybindingService),\n    __param(9, IAccessibilityService)\n], InlineCompletionsController);\nexport { InlineCompletionsController };\nfunction convertItemsToStableObservables(items, store) {\n    const result = observableValue('result', []);\n    const innerObservables = [];\n    store.add(autorun(reader => {\n        const itemsValue = items.read(reader);\n        transaction(tx => {\n            if (itemsValue.length !== innerObservables.length) {\n                innerObservables.length = itemsValue.length;\n                for (let i = 0; i < innerObservables.length; i++) {\n                    if (!innerObservables[i]) {\n                        innerObservables[i] = observableValue('item', itemsValue[i]);\n                    }\n                }\n                result.set([...innerObservables], tx);\n            }\n            innerObservables.forEach((o, i) => o.set(itemsValue[i], tx));\n        });\n    }));\n    return result;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHintsWidget.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .inlineSuggestionsHints.withBorder {\n\tz-index: 39;\n\tcolor: var(--vscode-editorHoverWidget-foreground);\n\tbackground-color: var(--vscode-editorHoverWidget-background);\n\tborder: 1px solid var(--vscode-editorHoverWidget-border);\n}\n\n.monaco-editor .inlineSuggestionsHints a {\n\tcolor: var(--vscode-foreground);\n}\n\n.monaco-editor .inlineSuggestionsHints a:hover {\n\tcolor: var(--vscode-foreground);\n}\n\n.monaco-editor .inlineSuggestionsHints .keybinding {\n\tdisplay: flex;\n\tmargin-left: 4px;\n\topacity: 0.6;\n}\n\n.monaco-editor .inlineSuggestionsHints .keybinding .monaco-keybinding-key {\n\tfont-size: 8px;\n\tpadding: 2px 3px;\n}\n\n.monaco-editor .inlineSuggestionsHints .availableSuggestionCount a {\n\tdisplay: flex;\n\tmin-width: 19px;\n\tjustify-content: center;\n}\n\n.monaco-editor .inlineSuggestionStatusBarItemLabel {\n\tmargin-right: 2px;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHintsWidget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar InlineSuggestionHintsContentWidget_1;\nimport { h } from '../../../../base/browser/dom.js';\nimport { ActionViewItem } from '../../../../base/browser/ui/actionbar/actionViewItems.js';\nimport { KeybindingLabel, unthemedKeybindingLabelOptions } from '../../../../base/browser/ui/keybindingLabel/keybindingLabel.js';\nimport { Action, Separator } from '../../../../base/common/actions.js';\nimport { equals } from '../../../../base/common/arrays.js';\nimport { RunOnceScheduler } from '../../../../base/common/async.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { Disposable, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { autorun, autorunWithStore, derived, derivedObservableWithCache, observableFromEvent } from '../../../../base/common/observable.js';\nimport { derivedWithStore } from '../../../../base/common/observableInternal/derived.js';\nimport { OS } from '../../../../base/common/platform.js';\nimport { ThemeIcon } from '../../../../base/common/themables.js';\nimport './inlineCompletionsHintsWidget.css';\nimport { Position } from '../../../common/core/position.js';\nimport { InlineCompletionTriggerKind } from '../../../common/languages.js';\nimport { showNextInlineSuggestionActionId, showPreviousInlineSuggestionActionId } from './commandIds.js';\nimport { localize } from '../../../../nls.js';\nimport { MenuEntryActionViewItem, createAndFillInActionBarActions } from '../../../../platform/actions/browser/menuEntryActionViewItem.js';\nimport { WorkbenchToolBar } from '../../../../platform/actions/browser/toolbar.js';\nimport { IMenuService, MenuId, MenuItemAction } from '../../../../platform/actions/common/actions.js';\nimport { ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IContextMenuService } from '../../../../platform/contextview/browser/contextView.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { ITelemetryService } from '../../../../platform/telemetry/common/telemetry.js';\nimport { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';\nlet InlineCompletionsHintsWidget = class InlineCompletionsHintsWidget extends Disposable {\n    constructor(editor, model, instantiationService) {\n        super();\n        this.editor = editor;\n        this.model = model;\n        this.instantiationService = instantiationService;\n        this.alwaysShowToolbar = observableFromEvent(this.editor.onDidChangeConfiguration, () => this.editor.getOption(62 /* EditorOption.inlineSuggest */).showToolbar === 'always');\n        this.sessionPosition = undefined;\n        this.position = derived(this, reader => {\n            var _a, _b, _c;\n            const ghostText = (_a = this.model.read(reader)) === null || _a === void 0 ? void 0 : _a.primaryGhostText.read(reader);\n            if (!this.alwaysShowToolbar.read(reader) || !ghostText || ghostText.parts.length === 0) {\n                this.sessionPosition = undefined;\n                return null;\n            }\n            const firstColumn = ghostText.parts[0].column;\n            if (this.sessionPosition && this.sessionPosition.lineNumber !== ghostText.lineNumber) {\n                this.sessionPosition = undefined;\n            }\n            const position = new Position(ghostText.lineNumber, Math.min(firstColumn, (_c = (_b = this.sessionPosition) === null || _b === void 0 ? void 0 : _b.column) !== null && _c !== void 0 ? _c : Number.MAX_SAFE_INTEGER));\n            this.sessionPosition = position;\n            return position;\n        });\n        this._register(autorunWithStore((reader, store) => {\n            /** @description setup content widget */\n            const model = this.model.read(reader);\n            if (!model || !this.alwaysShowToolbar.read(reader)) {\n                return;\n            }\n            const contentWidgetValue = derivedWithStore((reader, store) => {\n                const contentWidget = store.add(this.instantiationService.createInstance(InlineSuggestionHintsContentWidget, this.editor, true, this.position, model.selectedInlineCompletionIndex, model.inlineCompletionsCount, model.activeCommands));\n                editor.addContentWidget(contentWidget);\n                store.add(toDisposable(() => editor.removeContentWidget(contentWidget)));\n                store.add(autorun(reader => {\n                    /** @description request explicit */\n                    const position = this.position.read(reader);\n                    if (!position) {\n                        return;\n                    }\n                    if (model.lastTriggerKind.read(reader) !== InlineCompletionTriggerKind.Explicit) {\n                        model.triggerExplicitly();\n                    }\n                }));\n                return contentWidget;\n            });\n            const hadPosition = derivedObservableWithCache(this, (reader, lastValue) => !!this.position.read(reader) || !!lastValue);\n            store.add(autorun(reader => {\n                if (hadPosition.read(reader)) {\n                    contentWidgetValue.read(reader);\n                }\n            }));\n        }));\n    }\n};\nInlineCompletionsHintsWidget = __decorate([\n    __param(2, IInstantiationService)\n], InlineCompletionsHintsWidget);\nexport { InlineCompletionsHintsWidget };\nconst inlineSuggestionHintsNextIcon = registerIcon('inline-suggestion-hints-next', Codicon.chevronRight, localize('parameterHintsNextIcon', 'Icon for show next parameter hint.'));\nconst inlineSuggestionHintsPreviousIcon = registerIcon('inline-suggestion-hints-previous', Codicon.chevronLeft, localize('parameterHintsPreviousIcon', 'Icon for show previous parameter hint.'));\nlet InlineSuggestionHintsContentWidget = InlineSuggestionHintsContentWidget_1 = class InlineSuggestionHintsContentWidget extends Disposable {\n    static get dropDownVisible() { return this._dropDownVisible; }\n    createCommandAction(commandId, label, iconClassName) {\n        const action = new Action(commandId, label, iconClassName, true, () => this._commandService.executeCommand(commandId));\n        const kb = this.keybindingService.lookupKeybinding(commandId, this._contextKeyService);\n        let tooltip = label;\n        if (kb) {\n            tooltip = localize({ key: 'content', comment: ['A label', 'A keybinding'] }, '{0} ({1})', label, kb.getLabel());\n        }\n        action.tooltip = tooltip;\n        return action;\n    }\n    constructor(editor, withBorder, _position, _currentSuggestionIdx, _suggestionCount, _extraCommands, _commandService, instantiationService, keybindingService, _contextKeyService, _menuService) {\n        super();\n        this.editor = editor;\n        this.withBorder = withBorder;\n        this._position = _position;\n        this._currentSuggestionIdx = _currentSuggestionIdx;\n        this._suggestionCount = _suggestionCount;\n        this._extraCommands = _extraCommands;\n        this._commandService = _commandService;\n        this.keybindingService = keybindingService;\n        this._contextKeyService = _contextKeyService;\n        this._menuService = _menuService;\n        this.id = `InlineSuggestionHintsContentWidget${InlineSuggestionHintsContentWidget_1.id++}`;\n        this.allowEditorOverflow = true;\n        this.suppressMouseDown = false;\n        this.nodes = h('div.inlineSuggestionsHints', { className: this.withBorder ? '.withBorder' : '' }, [\n            h('div@toolBar'),\n        ]);\n        this.previousAction = this.createCommandAction(showPreviousInlineSuggestionActionId, localize('previous', 'Previous'), ThemeIcon.asClassName(inlineSuggestionHintsPreviousIcon));\n        this.availableSuggestionCountAction = new Action('inlineSuggestionHints.availableSuggestionCount', '', undefined, false);\n        this.nextAction = this.createCommandAction(showNextInlineSuggestionActionId, localize('next', 'Next'), ThemeIcon.asClassName(inlineSuggestionHintsNextIcon));\n        // TODO@hediet: deprecate MenuId.InlineCompletionsActions\n        this.inlineCompletionsActionsMenus = this._register(this._menuService.createMenu(MenuId.InlineCompletionsActions, this._contextKeyService));\n        this.clearAvailableSuggestionCountLabelDebounced = this._register(new RunOnceScheduler(() => {\n            this.availableSuggestionCountAction.label = '';\n        }, 100));\n        this.disableButtonsDebounced = this._register(new RunOnceScheduler(() => {\n            this.previousAction.enabled = this.nextAction.enabled = false;\n        }, 100));\n        this.toolBar = this._register(instantiationService.createInstance(CustomizedMenuWorkbenchToolBar, this.nodes.toolBar, MenuId.InlineSuggestionToolbar, {\n            menuOptions: { renderShortTitle: true },\n            toolbarOptions: { primaryGroup: g => g.startsWith('primary') },\n            actionViewItemProvider: (action, options) => {\n                if (action instanceof MenuItemAction) {\n                    return instantiationService.createInstance(StatusBarViewItem, action, undefined);\n                }\n                if (action === this.availableSuggestionCountAction) {\n                    const a = new ActionViewItemWithClassName(undefined, action, { label: true, icon: false });\n                    a.setClass('availableSuggestionCount');\n                    return a;\n                }\n                return undefined;\n            },\n            telemetrySource: 'InlineSuggestionToolbar',\n        }));\n        this.toolBar.setPrependedPrimaryActions([\n            this.previousAction,\n            this.availableSuggestionCountAction,\n            this.nextAction,\n        ]);\n        this._register(this.toolBar.onDidChangeDropdownVisibility(e => {\n            InlineSuggestionHintsContentWidget_1._dropDownVisible = e;\n        }));\n        this._register(autorun(reader => {\n            /** @description update position */\n            this._position.read(reader);\n            this.editor.layoutContentWidget(this);\n        }));\n        this._register(autorun(reader => {\n            /** @description counts */\n            const suggestionCount = this._suggestionCount.read(reader);\n            const currentSuggestionIdx = this._currentSuggestionIdx.read(reader);\n            if (suggestionCount !== undefined) {\n                this.clearAvailableSuggestionCountLabelDebounced.cancel();\n                this.availableSuggestionCountAction.label = `${currentSuggestionIdx + 1}/${suggestionCount}`;\n            }\n            else {\n                this.clearAvailableSuggestionCountLabelDebounced.schedule();\n            }\n            if (suggestionCount !== undefined && suggestionCount > 1) {\n                this.disableButtonsDebounced.cancel();\n                this.previousAction.enabled = this.nextAction.enabled = true;\n            }\n            else {\n                this.disableButtonsDebounced.schedule();\n            }\n        }));\n        this._register(autorun(reader => {\n            /** @description extra commands */\n            const extraCommands = this._extraCommands.read(reader);\n            const extraActions = extraCommands.map(c => ({\n                class: undefined,\n                id: c.id,\n                enabled: true,\n                tooltip: c.tooltip || '',\n                label: c.title,\n                run: (event) => {\n                    return this._commandService.executeCommand(c.id);\n                },\n            }));\n            for (const [_, group] of this.inlineCompletionsActionsMenus.getActions()) {\n                for (const action of group) {\n                    if (action instanceof MenuItemAction) {\n                        extraActions.push(action);\n                    }\n                }\n            }\n            if (extraActions.length > 0) {\n                extraActions.unshift(new Separator());\n            }\n            this.toolBar.setAdditionalSecondaryActions(extraActions);\n        }));\n    }\n    getId() { return this.id; }\n    getDomNode() {\n        return this.nodes.root;\n    }\n    getPosition() {\n        return {\n            position: this._position.get(),\n            preference: [1 /* ContentWidgetPositionPreference.ABOVE */, 2 /* ContentWidgetPositionPreference.BELOW */],\n            positionAffinity: 3 /* PositionAffinity.LeftOfInjectedText */,\n        };\n    }\n};\nInlineSuggestionHintsContentWidget._dropDownVisible = false;\nInlineSuggestionHintsContentWidget.id = 0;\nInlineSuggestionHintsContentWidget = InlineSuggestionHintsContentWidget_1 = __decorate([\n    __param(6, ICommandService),\n    __param(7, IInstantiationService),\n    __param(8, IKeybindingService),\n    __param(9, IContextKeyService),\n    __param(10, IMenuService)\n], InlineSuggestionHintsContentWidget);\nexport { InlineSuggestionHintsContentWidget };\nclass ActionViewItemWithClassName extends ActionViewItem {\n    constructor() {\n        super(...arguments);\n        this._className = undefined;\n    }\n    setClass(className) {\n        this._className = className;\n    }\n    render(container) {\n        super.render(container);\n        if (this._className) {\n            container.classList.add(this._className);\n        }\n    }\n    updateTooltip() {\n        // NOOP, disable tooltip\n    }\n}\nclass StatusBarViewItem extends MenuEntryActionViewItem {\n    updateLabel() {\n        const kb = this._keybindingService.lookupKeybinding(this._action.id, this._contextKeyService);\n        if (!kb) {\n            return super.updateLabel();\n        }\n        if (this.label) {\n            const div = h('div.keybinding').root;\n            const k = this._register(new KeybindingLabel(div, OS, { disableTitle: true, ...unthemedKeybindingLabelOptions }));\n            k.set(kb);\n            this.label.textContent = this._action.label;\n            this.label.appendChild(div);\n            this.label.classList.add('inlineSuggestionStatusBarItemLabel');\n        }\n    }\n    updateTooltip() {\n        // NOOP, disable tooltip\n    }\n}\nlet CustomizedMenuWorkbenchToolBar = class CustomizedMenuWorkbenchToolBar extends WorkbenchToolBar {\n    constructor(container, menuId, options2, menuService, contextKeyService, contextMenuService, keybindingService, commandService, telemetryService) {\n        super(container, { resetMenu: menuId, ...options2 }, menuService, contextKeyService, contextMenuService, keybindingService, commandService, telemetryService);\n        this.menuId = menuId;\n        this.options2 = options2;\n        this.menuService = menuService;\n        this.contextKeyService = contextKeyService;\n        this.menu = this._store.add(this.menuService.createMenu(this.menuId, this.contextKeyService, { emitEventsForSubmenuChanges: true }));\n        this.additionalActions = [];\n        this.prependedPrimaryActions = [];\n        this._store.add(this.menu.onDidChange(() => this.updateToolbar()));\n        this.updateToolbar();\n    }\n    updateToolbar() {\n        var _a, _b, _c, _d, _e, _f, _g;\n        const primary = [];\n        const secondary = [];\n        createAndFillInActionBarActions(this.menu, (_a = this.options2) === null || _a === void 0 ? void 0 : _a.menuOptions, { primary, secondary }, (_c = (_b = this.options2) === null || _b === void 0 ? void 0 : _b.toolbarOptions) === null || _c === void 0 ? void 0 : _c.primaryGroup, (_e = (_d = this.options2) === null || _d === void 0 ? void 0 : _d.toolbarOptions) === null || _e === void 0 ? void 0 : _e.shouldInlineSubmenu, (_g = (_f = this.options2) === null || _f === void 0 ? void 0 : _f.toolbarOptions) === null || _g === void 0 ? void 0 : _g.useSeparatorsInPrimaryActions);\n        secondary.push(...this.additionalActions);\n        primary.unshift(...this.prependedPrimaryActions);\n        this.setActions(primary, secondary);\n    }\n    setPrependedPrimaryActions(actions) {\n        if (equals(this.prependedPrimaryActions, actions, (a, b) => a === b)) {\n            return;\n        }\n        this.prependedPrimaryActions = actions;\n        this.updateToolbar();\n    }\n    setAdditionalSecondaryActions(actions) {\n        if (equals(this.additionalActions, actions, (a, b) => a === b)) {\n            return;\n        }\n        this.additionalActions = actions;\n        this.updateToolbar();\n    }\n};\nCustomizedMenuWorkbenchToolBar = __decorate([\n    __param(3, IMenuService),\n    __param(4, IContextKeyService),\n    __param(5, IContextMenuService),\n    __param(6, IKeybindingService),\n    __param(7, ICommandService),\n    __param(8, ITelemetryService)\n], CustomizedMenuWorkbenchToolBar);\nexport { CustomizedMenuWorkbenchToolBar };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsModel.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Permutation } from '../../../../base/common/arrays.js';\nimport { mapFindFirst } from '../../../../base/common/arraysFind.js';\nimport { itemsEquals } from '../../../../base/common/equals.js';\nimport { BugIndicatingError, onUnexpectedError, onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { autorun, derived, derivedHandleChanges, derivedOpts, observableSignal, observableValue, recomputeInitiallyAndOnChange, subtransaction, transaction } from '../../../../base/common/observable.js';\nimport { commonPrefixLength, splitLinesIncludeSeparators } from '../../../../base/common/strings.js';\nimport { isDefined } from '../../../../base/common/types.js';\nimport { EditOperation } from '../../../common/core/editOperation.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { SingleTextEdit, TextEdit } from '../../../common/core/textEdit.js';\nimport { TextLength } from '../../../common/core/textLength.js';\nimport { InlineCompletionTriggerKind } from '../../../common/languages.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { GhostText, ghostTextOrReplacementEquals, ghostTextsOrReplacementsEqual } from './ghostText.js';\nimport { InlineCompletionsSource } from './inlineCompletionsSource.js';\nimport { computeGhostText, singleTextEditAugments, singleTextRemoveCommonPrefix } from './singleTextEdit.js';\nimport { addPositions, subtractPositions } from './utils.js';\nimport { SnippetController2 } from '../../snippet/browser/snippetController2.js';\nimport { ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nexport var VersionIdChangeReason;\n(function (VersionIdChangeReason) {\n    VersionIdChangeReason[VersionIdChangeReason[\"Undo\"] = 0] = \"Undo\";\n    VersionIdChangeReason[VersionIdChangeReason[\"Redo\"] = 1] = \"Redo\";\n    VersionIdChangeReason[VersionIdChangeReason[\"AcceptWord\"] = 2] = \"AcceptWord\";\n    VersionIdChangeReason[VersionIdChangeReason[\"Other\"] = 3] = \"Other\";\n})(VersionIdChangeReason || (VersionIdChangeReason = {}));\nlet InlineCompletionsModel = class InlineCompletionsModel extends Disposable {\n    get isAcceptingPartially() { return this._isAcceptingPartially; }\n    constructor(textModel, selectedSuggestItem, textModelVersionId, _positions, _debounceValue, _suggestPreviewEnabled, _suggestPreviewMode, _inlineSuggestMode, _enabled, _instantiationService, _commandService, _languageConfigurationService) {\n        super();\n        this.textModel = textModel;\n        this.selectedSuggestItem = selectedSuggestItem;\n        this.textModelVersionId = textModelVersionId;\n        this._positions = _positions;\n        this._debounceValue = _debounceValue;\n        this._suggestPreviewEnabled = _suggestPreviewEnabled;\n        this._suggestPreviewMode = _suggestPreviewMode;\n        this._inlineSuggestMode = _inlineSuggestMode;\n        this._enabled = _enabled;\n        this._instantiationService = _instantiationService;\n        this._commandService = _commandService;\n        this._languageConfigurationService = _languageConfigurationService;\n        this._source = this._register(this._instantiationService.createInstance(InlineCompletionsSource, this.textModel, this.textModelVersionId, this._debounceValue));\n        this._isActive = observableValue(this, false);\n        this._forceUpdateExplicitlySignal = observableSignal(this);\n        // We use a semantic id to keep the same inline completion selected even if the provider reorders the completions.\n        this._selectedInlineCompletionId = observableValue(this, undefined);\n        this._primaryPosition = derived(this, reader => { var _a; return (_a = this._positions.read(reader)[0]) !== null && _a !== void 0 ? _a : new Position(1, 1); });\n        this._isAcceptingPartially = false;\n        this._preserveCurrentCompletionReasons = new Set([\n            VersionIdChangeReason.Redo,\n            VersionIdChangeReason.Undo,\n            VersionIdChangeReason.AcceptWord,\n        ]);\n        this._fetchInlineCompletionsPromise = derivedHandleChanges({\n            owner: this,\n            createEmptyChangeSummary: () => ({\n                preserveCurrentCompletion: false,\n                inlineCompletionTriggerKind: InlineCompletionTriggerKind.Automatic\n            }),\n            handleChange: (ctx, changeSummary) => {\n                /** @description fetch inline completions */\n                if (ctx.didChange(this.textModelVersionId) && this._preserveCurrentCompletionReasons.has(ctx.change)) {\n                    changeSummary.preserveCurrentCompletion = true;\n                }\n                else if (ctx.didChange(this._forceUpdateExplicitlySignal)) {\n                    changeSummary.inlineCompletionTriggerKind = InlineCompletionTriggerKind.Explicit;\n                }\n                return true;\n            },\n        }, (reader, changeSummary) => {\n            this._forceUpdateExplicitlySignal.read(reader);\n            const shouldUpdate = (this._enabled.read(reader) && this.selectedSuggestItem.read(reader)) || this._isActive.read(reader);\n            if (!shouldUpdate) {\n                this._source.cancelUpdate();\n                return undefined;\n            }\n            this.textModelVersionId.read(reader); // Refetch on text change\n            const suggestWidgetInlineCompletions = this._source.suggestWidgetInlineCompletions.get();\n            const suggestItem = this.selectedSuggestItem.read(reader);\n            if (suggestWidgetInlineCompletions && !suggestItem) {\n                const inlineCompletions = this._source.inlineCompletions.get();\n                transaction(tx => {\n                    /** @description Seed inline completions with (newer) suggest widget inline completions */\n                    if (!inlineCompletions || suggestWidgetInlineCompletions.request.versionId > inlineCompletions.request.versionId) {\n                        this._source.inlineCompletions.set(suggestWidgetInlineCompletions.clone(), tx);\n                    }\n                    this._source.clearSuggestWidgetInlineCompletions(tx);\n                });\n            }\n            const cursorPosition = this._primaryPosition.read(reader);\n            const context = {\n                triggerKind: changeSummary.inlineCompletionTriggerKind,\n                selectedSuggestionInfo: suggestItem === null || suggestItem === void 0 ? void 0 : suggestItem.toSelectedSuggestionInfo(),\n            };\n            const itemToPreserveCandidate = this.selectedInlineCompletion.get();\n            const itemToPreserve = changeSummary.preserveCurrentCompletion || (itemToPreserveCandidate === null || itemToPreserveCandidate === void 0 ? void 0 : itemToPreserveCandidate.forwardStable)\n                ? itemToPreserveCandidate : undefined;\n            return this._source.fetch(cursorPosition, context, itemToPreserve);\n        });\n        this._filteredInlineCompletionItems = derivedOpts({ owner: this, equalsFn: itemsEquals() }, reader => {\n            const c = this._source.inlineCompletions.read(reader);\n            if (!c) {\n                return [];\n            }\n            const cursorPosition = this._primaryPosition.read(reader);\n            const filteredCompletions = c.inlineCompletions.filter(c => c.isVisible(this.textModel, cursorPosition, reader));\n            return filteredCompletions;\n        });\n        this.selectedInlineCompletionIndex = derived(this, (reader) => {\n            const selectedInlineCompletionId = this._selectedInlineCompletionId.read(reader);\n            const filteredCompletions = this._filteredInlineCompletionItems.read(reader);\n            const idx = this._selectedInlineCompletionId === undefined ? -1\n                : filteredCompletions.findIndex(v => v.semanticId === selectedInlineCompletionId);\n            if (idx === -1) {\n                // Reset the selection so that the selection does not jump back when it appears again\n                this._selectedInlineCompletionId.set(undefined, undefined);\n                return 0;\n            }\n            return idx;\n        });\n        this.selectedInlineCompletion = derived(this, (reader) => {\n            const filteredCompletions = this._filteredInlineCompletionItems.read(reader);\n            const idx = this.selectedInlineCompletionIndex.read(reader);\n            return filteredCompletions[idx];\n        });\n        this.activeCommands = derivedOpts({ owner: this, equalsFn: itemsEquals() }, r => { var _a, _b; return (_b = (_a = this.selectedInlineCompletion.read(r)) === null || _a === void 0 ? void 0 : _a.inlineCompletion.source.inlineCompletions.commands) !== null && _b !== void 0 ? _b : []; });\n        this.lastTriggerKind = this._source.inlineCompletions.map(this, v => v === null || v === void 0 ? void 0 : v.request.context.triggerKind);\n        this.inlineCompletionsCount = derived(this, reader => {\n            if (this.lastTriggerKind.read(reader) === InlineCompletionTriggerKind.Explicit) {\n                return this._filteredInlineCompletionItems.read(reader).length;\n            }\n            else {\n                return undefined;\n            }\n        });\n        this.state = derivedOpts({\n            owner: this,\n            equalsFn: (a, b) => {\n                if (!a || !b) {\n                    return a === b;\n                }\n                return ghostTextsOrReplacementsEqual(a.ghostTexts, b.ghostTexts)\n                    && a.inlineCompletion === b.inlineCompletion\n                    && a.suggestItem === b.suggestItem;\n            }\n        }, (reader) => {\n            var _a, _b;\n            const model = this.textModel;\n            const suggestItem = this.selectedSuggestItem.read(reader);\n            if (suggestItem) {\n                const suggestCompletionEdit = singleTextRemoveCommonPrefix(suggestItem.toSingleTextEdit(), model);\n                const augmentation = this._computeAugmentation(suggestCompletionEdit, reader);\n                const isSuggestionPreviewEnabled = this._suggestPreviewEnabled.read(reader);\n                if (!isSuggestionPreviewEnabled && !augmentation) {\n                    return undefined;\n                }\n                const fullEdit = (_a = augmentation === null || augmentation === void 0 ? void 0 : augmentation.edit) !== null && _a !== void 0 ? _a : suggestCompletionEdit;\n                const fullEditPreviewLength = augmentation ? augmentation.edit.text.length - suggestCompletionEdit.text.length : 0;\n                const mode = this._suggestPreviewMode.read(reader);\n                const positions = this._positions.read(reader);\n                const edits = [fullEdit, ...getSecondaryEdits(this.textModel, positions, fullEdit)];\n                const ghostTexts = edits\n                    .map((edit, idx) => computeGhostText(edit, model, mode, positions[idx], fullEditPreviewLength))\n                    .filter(isDefined);\n                const primaryGhostText = (_b = ghostTexts[0]) !== null && _b !== void 0 ? _b : new GhostText(fullEdit.range.endLineNumber, []);\n                return { edits, primaryGhostText, ghostTexts, inlineCompletion: augmentation === null || augmentation === void 0 ? void 0 : augmentation.completion, suggestItem };\n            }\n            else {\n                if (!this._isActive.read(reader)) {\n                    return undefined;\n                }\n                const inlineCompletion = this.selectedInlineCompletion.read(reader);\n                if (!inlineCompletion) {\n                    return undefined;\n                }\n                const replacement = inlineCompletion.toSingleTextEdit(reader);\n                const mode = this._inlineSuggestMode.read(reader);\n                const positions = this._positions.read(reader);\n                const edits = [replacement, ...getSecondaryEdits(this.textModel, positions, replacement)];\n                const ghostTexts = edits\n                    .map((edit, idx) => computeGhostText(edit, model, mode, positions[idx], 0))\n                    .filter(isDefined);\n                if (!ghostTexts[0]) {\n                    return undefined;\n                }\n                return { edits, primaryGhostText: ghostTexts[0], ghostTexts, inlineCompletion, suggestItem: undefined };\n            }\n        });\n        this.ghostTexts = derivedOpts({\n            owner: this,\n            equalsFn: ghostTextsOrReplacementsEqual\n        }, reader => {\n            const v = this.state.read(reader);\n            if (!v) {\n                return undefined;\n            }\n            return v.ghostTexts;\n        });\n        this.primaryGhostText = derivedOpts({\n            owner: this,\n            equalsFn: ghostTextOrReplacementEquals\n        }, reader => {\n            const v = this.state.read(reader);\n            if (!v) {\n                return undefined;\n            }\n            return v === null || v === void 0 ? void 0 : v.primaryGhostText;\n        });\n        this._register(recomputeInitiallyAndOnChange(this._fetchInlineCompletionsPromise));\n        let lastItem = undefined;\n        this._register(autorun(reader => {\n            var _a, _b;\n            /** @description call handleItemDidShow */\n            const item = this.state.read(reader);\n            const completion = item === null || item === void 0 ? void 0 : item.inlineCompletion;\n            if ((completion === null || completion === void 0 ? void 0 : completion.semanticId) !== (lastItem === null || lastItem === void 0 ? void 0 : lastItem.semanticId)) {\n                lastItem = completion;\n                if (completion) {\n                    const i = completion.inlineCompletion;\n                    const src = i.source;\n                    (_b = (_a = src.provider).handleItemDidShow) === null || _b === void 0 ? void 0 : _b.call(_a, src.inlineCompletions, i.sourceInlineCompletion, i.insertText);\n                }\n            }\n        }));\n    }\n    async trigger(tx) {\n        this._isActive.set(true, tx);\n        await this._fetchInlineCompletionsPromise.get();\n    }\n    async triggerExplicitly(tx) {\n        subtransaction(tx, tx => {\n            this._isActive.set(true, tx);\n            this._forceUpdateExplicitlySignal.trigger(tx);\n        });\n        await this._fetchInlineCompletionsPromise.get();\n    }\n    stop(tx) {\n        subtransaction(tx, tx => {\n            this._isActive.set(false, tx);\n            this._source.clear(tx);\n        });\n    }\n    _computeAugmentation(suggestCompletion, reader) {\n        const model = this.textModel;\n        const suggestWidgetInlineCompletions = this._source.suggestWidgetInlineCompletions.read(reader);\n        const candidateInlineCompletions = suggestWidgetInlineCompletions\n            ? suggestWidgetInlineCompletions.inlineCompletions\n            : [this.selectedInlineCompletion.read(reader)].filter(isDefined);\n        const augmentedCompletion = mapFindFirst(candidateInlineCompletions, completion => {\n            let r = completion.toSingleTextEdit(reader);\n            r = singleTextRemoveCommonPrefix(r, model, Range.fromPositions(r.range.getStartPosition(), suggestCompletion.range.getEndPosition()));\n            return singleTextEditAugments(r, suggestCompletion) ? { completion, edit: r } : undefined;\n        });\n        return augmentedCompletion;\n    }\n    async _deltaSelectedInlineCompletionIndex(delta) {\n        await this.triggerExplicitly();\n        const completions = this._filteredInlineCompletionItems.get() || [];\n        if (completions.length > 0) {\n            const newIdx = (this.selectedInlineCompletionIndex.get() + delta + completions.length) % completions.length;\n            this._selectedInlineCompletionId.set(completions[newIdx].semanticId, undefined);\n        }\n        else {\n            this._selectedInlineCompletionId.set(undefined, undefined);\n        }\n    }\n    async next() {\n        await this._deltaSelectedInlineCompletionIndex(1);\n    }\n    async previous() {\n        await this._deltaSelectedInlineCompletionIndex(-1);\n    }\n    async accept(editor) {\n        var _a;\n        if (editor.getModel() !== this.textModel) {\n            throw new BugIndicatingError();\n        }\n        const state = this.state.get();\n        if (!state || state.primaryGhostText.isEmpty() || !state.inlineCompletion) {\n            return;\n        }\n        const completion = state.inlineCompletion.toInlineCompletion(undefined);\n        editor.pushUndoStop();\n        if (completion.snippetInfo) {\n            editor.executeEdits('inlineSuggestion.accept', [\n                EditOperation.replace(completion.range, ''),\n                ...completion.additionalTextEdits\n            ]);\n            editor.setPosition(completion.snippetInfo.range.getStartPosition(), 'inlineCompletionAccept');\n            (_a = SnippetController2.get(editor)) === null || _a === void 0 ? void 0 : _a.insert(completion.snippetInfo.snippet, { undoStopBefore: false });\n        }\n        else {\n            const edits = state.edits;\n            const selections = getEndPositionsAfterApplying(edits).map(p => Selection.fromPositions(p));\n            editor.executeEdits('inlineSuggestion.accept', [\n                ...edits.map(edit => EditOperation.replace(edit.range, edit.text)),\n                ...completion.additionalTextEdits\n            ]);\n            editor.setSelections(selections, 'inlineCompletionAccept');\n        }\n        if (completion.command) {\n            // Make sure the completion list will not be disposed.\n            completion.source.addRef();\n        }\n        // Reset before invoking the command, since the command might cause a follow up trigger.\n        transaction(tx => {\n            this._source.clear(tx);\n            // Potentially, isActive will get set back to true by the typing or accept inline suggest event\n            // if automatic inline suggestions are enabled.\n            this._isActive.set(false, tx);\n        });\n        if (completion.command) {\n            await this._commandService\n                .executeCommand(completion.command.id, ...(completion.command.arguments || []))\n                .then(undefined, onUnexpectedExternalError);\n            completion.source.removeRef();\n        }\n    }\n    async acceptNextWord(editor) {\n        await this._acceptNext(editor, (pos, text) => {\n            const langId = this.textModel.getLanguageIdAtPosition(pos.lineNumber, pos.column);\n            const config = this._languageConfigurationService.getLanguageConfiguration(langId);\n            const wordRegExp = new RegExp(config.wordDefinition.source, config.wordDefinition.flags.replace('g', ''));\n            const m1 = text.match(wordRegExp);\n            let acceptUntilIndexExclusive = 0;\n            if (m1 && m1.index !== undefined) {\n                if (m1.index === 0) {\n                    acceptUntilIndexExclusive = m1[0].length;\n                }\n                else {\n                    acceptUntilIndexExclusive = m1.index;\n                }\n            }\n            else {\n                acceptUntilIndexExclusive = text.length;\n            }\n            const wsRegExp = /\\s+/g;\n            const m2 = wsRegExp.exec(text);\n            if (m2 && m2.index !== undefined) {\n                if (m2.index + m2[0].length < acceptUntilIndexExclusive) {\n                    acceptUntilIndexExclusive = m2.index + m2[0].length;\n                }\n            }\n            return acceptUntilIndexExclusive;\n        }, 0 /* PartialAcceptTriggerKind.Word */);\n    }\n    async acceptNextLine(editor) {\n        await this._acceptNext(editor, (pos, text) => {\n            const m = text.match(/\\n/);\n            if (m && m.index !== undefined) {\n                return m.index + 1;\n            }\n            return text.length;\n        }, 1 /* PartialAcceptTriggerKind.Line */);\n    }\n    async _acceptNext(editor, getAcceptUntilIndex, kind) {\n        if (editor.getModel() !== this.textModel) {\n            throw new BugIndicatingError();\n        }\n        const state = this.state.get();\n        if (!state || state.primaryGhostText.isEmpty() || !state.inlineCompletion) {\n            return;\n        }\n        const ghostText = state.primaryGhostText;\n        const completion = state.inlineCompletion.toInlineCompletion(undefined);\n        if (completion.snippetInfo || completion.filterText !== completion.insertText) {\n            // not in WYSIWYG mode, partial commit might change completion, thus it is not supported\n            await this.accept(editor);\n            return;\n        }\n        const firstPart = ghostText.parts[0];\n        const ghostTextPos = new Position(ghostText.lineNumber, firstPart.column);\n        const ghostTextVal = firstPart.text;\n        const acceptUntilIndexExclusive = getAcceptUntilIndex(ghostTextPos, ghostTextVal);\n        if (acceptUntilIndexExclusive === ghostTextVal.length && ghostText.parts.length === 1) {\n            this.accept(editor);\n            return;\n        }\n        const partialGhostTextVal = ghostTextVal.substring(0, acceptUntilIndexExclusive);\n        const positions = this._positions.get();\n        const cursorPosition = positions[0];\n        // Executing the edit might free the completion, so we have to hold a reference on it.\n        completion.source.addRef();\n        try {\n            this._isAcceptingPartially = true;\n            try {\n                editor.pushUndoStop();\n                const replaceRange = Range.fromPositions(cursorPosition, ghostTextPos);\n                const newText = editor.getModel().getValueInRange(replaceRange) + partialGhostTextVal;\n                const primaryEdit = new SingleTextEdit(replaceRange, newText);\n                const edits = [primaryEdit, ...getSecondaryEdits(this.textModel, positions, primaryEdit)];\n                const selections = getEndPositionsAfterApplying(edits).map(p => Selection.fromPositions(p));\n                editor.executeEdits('inlineSuggestion.accept', edits.map(edit => EditOperation.replace(edit.range, edit.text)));\n                editor.setSelections(selections, 'inlineCompletionPartialAccept');\n                editor.revealPositionInCenterIfOutsideViewport(editor.getPosition(), 1 /* ScrollType.Immediate */);\n            }\n            finally {\n                this._isAcceptingPartially = false;\n            }\n            if (completion.source.provider.handlePartialAccept) {\n                const acceptedRange = Range.fromPositions(completion.range.getStartPosition(), TextLength.ofText(partialGhostTextVal).addToPosition(ghostTextPos));\n                // This assumes that the inline completion and the model use the same EOL style.\n                const text = editor.getModel().getValueInRange(acceptedRange, 1 /* EndOfLinePreference.LF */);\n                completion.source.provider.handlePartialAccept(completion.source.inlineCompletions, completion.sourceInlineCompletion, text.length, {\n                    kind,\n                });\n            }\n        }\n        finally {\n            completion.source.removeRef();\n        }\n    }\n    handleSuggestAccepted(item) {\n        var _a, _b;\n        const itemEdit = singleTextRemoveCommonPrefix(item.toSingleTextEdit(), this.textModel);\n        const augmentedCompletion = this._computeAugmentation(itemEdit, undefined);\n        if (!augmentedCompletion) {\n            return;\n        }\n        const inlineCompletion = augmentedCompletion.completion.inlineCompletion;\n        (_b = (_a = inlineCompletion.source.provider).handlePartialAccept) === null || _b === void 0 ? void 0 : _b.call(_a, inlineCompletion.source.inlineCompletions, inlineCompletion.sourceInlineCompletion, itemEdit.text.length, {\n            kind: 2 /* PartialAcceptTriggerKind.Suggest */,\n        });\n    }\n};\nInlineCompletionsModel = __decorate([\n    __param(9, IInstantiationService),\n    __param(10, ICommandService),\n    __param(11, ILanguageConfigurationService)\n], InlineCompletionsModel);\nexport { InlineCompletionsModel };\nexport function getSecondaryEdits(textModel, positions, primaryEdit) {\n    if (positions.length === 1) {\n        // No secondary cursor positions\n        return [];\n    }\n    const primaryPosition = positions[0];\n    const secondaryPositions = positions.slice(1);\n    const primaryEditStartPosition = primaryEdit.range.getStartPosition();\n    const primaryEditEndPosition = primaryEdit.range.getEndPosition();\n    const replacedTextAfterPrimaryCursor = textModel.getValueInRange(Range.fromPositions(primaryPosition, primaryEditEndPosition));\n    const positionWithinTextEdit = subtractPositions(primaryPosition, primaryEditStartPosition);\n    if (positionWithinTextEdit.lineNumber < 1) {\n        onUnexpectedError(new BugIndicatingError(`positionWithinTextEdit line number should be bigger than 0.\n\t\t\tInvalid subtraction between ${primaryPosition.toString()} and ${primaryEditStartPosition.toString()}`));\n        return [];\n    }\n    const secondaryEditText = substringPos(primaryEdit.text, positionWithinTextEdit);\n    return secondaryPositions.map(pos => {\n        const posEnd = addPositions(subtractPositions(pos, primaryEditStartPosition), primaryEditEndPosition);\n        const textAfterSecondaryCursor = textModel.getValueInRange(Range.fromPositions(pos, posEnd));\n        const l = commonPrefixLength(replacedTextAfterPrimaryCursor, textAfterSecondaryCursor);\n        const range = Range.fromPositions(pos, pos.delta(0, l));\n        return new SingleTextEdit(range, secondaryEditText);\n    });\n}\nfunction substringPos(text, pos) {\n    let subtext = '';\n    const lines = splitLinesIncludeSeparators(text);\n    for (let i = pos.lineNumber - 1; i < lines.length; i++) {\n        subtext += lines[i].substring(i === pos.lineNumber - 1 ? pos.column - 1 : 0);\n    }\n    return subtext;\n}\nfunction getEndPositionsAfterApplying(edits) {\n    const sortPerm = Permutation.createSortPermutation(edits, (edit1, edit2) => Range.compareRangesUsingStarts(edit1.range, edit2.range));\n    const edit = new TextEdit(sortPerm.apply(edits));\n    const sortedNewRanges = edit.getNewRanges();\n    const newRanges = sortPerm.inverse().apply(sortedNewRanges);\n    return newRanges.map(range => range.getEndPosition());\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsSource.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { equalsIfDefined, itemEquals } from '../../../../base/common/equals.js';\nimport { matchesSubString } from '../../../../base/common/filters.js';\nimport { Disposable, MutableDisposable } from '../../../../base/common/lifecycle.js';\nimport { derivedOpts, disposableObservableValue, transaction } from '../../../../base/common/observable.js';\nimport { Range } from '../../../common/core/range.js';\nimport { SingleTextEdit } from '../../../common/core/textEdit.js';\nimport { TextLength } from '../../../common/core/textLength.js';\nimport { InlineCompletionTriggerKind } from '../../../common/languages.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { provideInlineCompletions } from './provideInlineCompletions.js';\nimport { singleTextRemoveCommonPrefix } from './singleTextEdit.js';\nlet InlineCompletionsSource = class InlineCompletionsSource extends Disposable {\n    constructor(textModel, versionId, _debounceValue, languageFeaturesService, languageConfigurationService) {\n        super();\n        this.textModel = textModel;\n        this.versionId = versionId;\n        this._debounceValue = _debounceValue;\n        this.languageFeaturesService = languageFeaturesService;\n        this.languageConfigurationService = languageConfigurationService;\n        this._updateOperation = this._register(new MutableDisposable());\n        this.inlineCompletions = disposableObservableValue('inlineCompletions', undefined);\n        this.suggestWidgetInlineCompletions = disposableObservableValue('suggestWidgetInlineCompletions', undefined);\n        this._register(this.textModel.onDidChangeContent(() => {\n            this._updateOperation.clear();\n        }));\n    }\n    fetch(position, context, activeInlineCompletion) {\n        var _a, _b;\n        const request = new UpdateRequest(position, context, this.textModel.getVersionId());\n        const target = context.selectedSuggestionInfo ? this.suggestWidgetInlineCompletions : this.inlineCompletions;\n        if ((_a = this._updateOperation.value) === null || _a === void 0 ? void 0 : _a.request.satisfies(request)) {\n            return this._updateOperation.value.promise;\n        }\n        else if ((_b = target.get()) === null || _b === void 0 ? void 0 : _b.request.satisfies(request)) {\n            return Promise.resolve(true);\n        }\n        const updateOngoing = !!this._updateOperation.value;\n        this._updateOperation.clear();\n        const source = new CancellationTokenSource();\n        const promise = (async () => {\n            const shouldDebounce = updateOngoing || context.triggerKind === InlineCompletionTriggerKind.Automatic;\n            if (shouldDebounce) {\n                // This debounces the operation\n                await wait(this._debounceValue.get(this.textModel), source.token);\n            }\n            if (source.token.isCancellationRequested || this.textModel.getVersionId() !== request.versionId) {\n                return false;\n            }\n            const startTime = new Date();\n            const updatedCompletions = await provideInlineCompletions(this.languageFeaturesService.inlineCompletionsProvider, position, this.textModel, context, source.token, this.languageConfigurationService);\n            if (source.token.isCancellationRequested || this.textModel.getVersionId() !== request.versionId) {\n                return false;\n            }\n            const endTime = new Date();\n            this._debounceValue.update(this.textModel, endTime.getTime() - startTime.getTime());\n            const completions = new UpToDateInlineCompletions(updatedCompletions, request, this.textModel, this.versionId);\n            if (activeInlineCompletion) {\n                const asInlineCompletion = activeInlineCompletion.toInlineCompletion(undefined);\n                if (activeInlineCompletion.canBeReused(this.textModel, position) && !updatedCompletions.has(asInlineCompletion)) {\n                    completions.prepend(activeInlineCompletion.inlineCompletion, asInlineCompletion.range, true);\n                }\n            }\n            this._updateOperation.clear();\n            transaction(tx => {\n                /** @description Update completions with provider result */\n                target.set(completions, tx);\n            });\n            return true;\n        })();\n        const updateOperation = new UpdateOperation(request, source, promise);\n        this._updateOperation.value = updateOperation;\n        return promise;\n    }\n    clear(tx) {\n        this._updateOperation.clear();\n        this.inlineCompletions.set(undefined, tx);\n        this.suggestWidgetInlineCompletions.set(undefined, tx);\n    }\n    clearSuggestWidgetInlineCompletions(tx) {\n        var _a;\n        if ((_a = this._updateOperation.value) === null || _a === void 0 ? void 0 : _a.request.context.selectedSuggestionInfo) {\n            this._updateOperation.clear();\n        }\n        this.suggestWidgetInlineCompletions.set(undefined, tx);\n    }\n    cancelUpdate() {\n        this._updateOperation.clear();\n    }\n};\nInlineCompletionsSource = __decorate([\n    __param(3, ILanguageFeaturesService),\n    __param(4, ILanguageConfigurationService)\n], InlineCompletionsSource);\nexport { InlineCompletionsSource };\nfunction wait(ms, cancellationToken) {\n    return new Promise(resolve => {\n        let d = undefined;\n        const handle = setTimeout(() => {\n            if (d) {\n                d.dispose();\n            }\n            resolve();\n        }, ms);\n        if (cancellationToken) {\n            d = cancellationToken.onCancellationRequested(() => {\n                clearTimeout(handle);\n                if (d) {\n                    d.dispose();\n                }\n                resolve();\n            });\n        }\n    });\n}\nclass UpdateRequest {\n    constructor(position, context, versionId) {\n        this.position = position;\n        this.context = context;\n        this.versionId = versionId;\n    }\n    satisfies(other) {\n        return this.position.equals(other.position)\n            && equalsIfDefined(this.context.selectedSuggestionInfo, other.context.selectedSuggestionInfo, itemEquals())\n            && (other.context.triggerKind === InlineCompletionTriggerKind.Automatic\n                || this.context.triggerKind === InlineCompletionTriggerKind.Explicit)\n            && this.versionId === other.versionId;\n    }\n}\nclass UpdateOperation {\n    constructor(request, cancellationTokenSource, promise) {\n        this.request = request;\n        this.cancellationTokenSource = cancellationTokenSource;\n        this.promise = promise;\n    }\n    dispose() {\n        this.cancellationTokenSource.cancel();\n    }\n}\nexport class UpToDateInlineCompletions {\n    get inlineCompletions() { return this._inlineCompletions; }\n    constructor(inlineCompletionProviderResult, request, _textModel, _versionId) {\n        this.inlineCompletionProviderResult = inlineCompletionProviderResult;\n        this.request = request;\n        this._textModel = _textModel;\n        this._versionId = _versionId;\n        this._refCount = 1;\n        this._prependedInlineCompletionItems = [];\n        const ids = _textModel.deltaDecorations([], inlineCompletionProviderResult.completions.map(i => ({\n            range: i.range,\n            options: {\n                description: 'inline-completion-tracking-range'\n            },\n        })));\n        this._inlineCompletions = inlineCompletionProviderResult.completions.map((i, index) => new InlineCompletionWithUpdatedRange(i, ids[index], this._textModel, this._versionId));\n    }\n    clone() {\n        this._refCount++;\n        return this;\n    }\n    dispose() {\n        this._refCount--;\n        if (this._refCount === 0) {\n            setTimeout(() => {\n                // To fix https://github.com/microsoft/vscode/issues/188348\n                if (!this._textModel.isDisposed()) {\n                    // This is just cleanup. It's ok if it happens with a delay.\n                    this._textModel.deltaDecorations(this._inlineCompletions.map(i => i.decorationId), []);\n                }\n            }, 0);\n            this.inlineCompletionProviderResult.dispose();\n            for (const i of this._prependedInlineCompletionItems) {\n                i.source.removeRef();\n            }\n        }\n    }\n    prepend(inlineCompletion, range, addRefToSource) {\n        if (addRefToSource) {\n            inlineCompletion.source.addRef();\n        }\n        const id = this._textModel.deltaDecorations([], [{\n                range,\n                options: {\n                    description: 'inline-completion-tracking-range'\n                },\n            }])[0];\n        this._inlineCompletions.unshift(new InlineCompletionWithUpdatedRange(inlineCompletion, id, this._textModel, this._versionId));\n        this._prependedInlineCompletionItems.push(inlineCompletion);\n    }\n}\nexport class InlineCompletionWithUpdatedRange {\n    get forwardStable() {\n        var _a;\n        return (_a = this.inlineCompletion.source.inlineCompletions.enableForwardStability) !== null && _a !== void 0 ? _a : false;\n    }\n    constructor(inlineCompletion, decorationId, _textModel, _modelVersion) {\n        this.inlineCompletion = inlineCompletion;\n        this.decorationId = decorationId;\n        this._textModel = _textModel;\n        this._modelVersion = _modelVersion;\n        this.semanticId = JSON.stringify([\n            this.inlineCompletion.filterText,\n            this.inlineCompletion.insertText,\n            this.inlineCompletion.range.getStartPosition().toString()\n        ]);\n        this._updatedRange = derivedOpts({ owner: this, equalsFn: Range.equalsRange }, reader => {\n            this._modelVersion.read(reader);\n            return this._textModel.getDecorationRange(this.decorationId);\n        });\n    }\n    toInlineCompletion(reader) {\n        var _a;\n        return this.inlineCompletion.withRange((_a = this._updatedRange.read(reader)) !== null && _a !== void 0 ? _a : emptyRange);\n    }\n    toSingleTextEdit(reader) {\n        var _a;\n        return new SingleTextEdit((_a = this._updatedRange.read(reader)) !== null && _a !== void 0 ? _a : emptyRange, this.inlineCompletion.insertText);\n    }\n    isVisible(model, cursorPosition, reader) {\n        const minimizedReplacement = singleTextRemoveCommonPrefix(this._toFilterTextReplacement(reader), model);\n        const updatedRange = this._updatedRange.read(reader);\n        if (!updatedRange\n            || !this.inlineCompletion.range.getStartPosition().equals(updatedRange.getStartPosition())\n            || cursorPosition.lineNumber !== minimizedReplacement.range.startLineNumber) {\n            return false;\n        }\n        // We might consider comparing by .toLowerText, but this requires GhostTextReplacement\n        const originalValue = model.getValueInRange(minimizedReplacement.range, 1 /* EndOfLinePreference.LF */);\n        const filterText = minimizedReplacement.text;\n        const cursorPosIndex = Math.max(0, cursorPosition.column - minimizedReplacement.range.startColumn);\n        let filterTextBefore = filterText.substring(0, cursorPosIndex);\n        let filterTextAfter = filterText.substring(cursorPosIndex);\n        let originalValueBefore = originalValue.substring(0, cursorPosIndex);\n        let originalValueAfter = originalValue.substring(cursorPosIndex);\n        const originalValueIndent = model.getLineIndentColumn(minimizedReplacement.range.startLineNumber);\n        if (minimizedReplacement.range.startColumn <= originalValueIndent) {\n            // Remove indentation\n            originalValueBefore = originalValueBefore.trimStart();\n            if (originalValueBefore.length === 0) {\n                originalValueAfter = originalValueAfter.trimStart();\n            }\n            filterTextBefore = filterTextBefore.trimStart();\n            if (filterTextBefore.length === 0) {\n                filterTextAfter = filterTextAfter.trimStart();\n            }\n        }\n        return filterTextBefore.startsWith(originalValueBefore)\n            && !!matchesSubString(originalValueAfter, filterTextAfter);\n    }\n    canBeReused(model, position) {\n        const updatedRange = this._updatedRange.read(undefined);\n        const result = !!updatedRange\n            && updatedRange.containsPosition(position)\n            && this.isVisible(model, position, undefined)\n            && TextLength.ofRange(updatedRange).isGreaterThanOrEqualTo(TextLength.ofRange(this.inlineCompletion.range));\n        return result;\n    }\n    _toFilterTextReplacement(reader) {\n        var _a;\n        return new SingleTextEdit((_a = this._updatedRange.read(reader)) !== null && _a !== void 0 ? _a : emptyRange, this.inlineCompletion.filterText);\n    }\n}\nconst emptyRange = new Range(1, 1, 1, 1);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineCompletions/browser/provideInlineCompletions.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { assertNever } from '../../../../base/common/assert.js';\nimport { DeferredPromise } from '../../../../base/common/async.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { SetMap } from '../../../../base/common/map.js';\nimport { onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { Range } from '../../../common/core/range.js';\nimport { fixBracketsInLine } from '../../../common/model/bracketPairsTextModelPart/fixBrackets.js';\nimport { getReadonlyEmptyArray } from './utils.js';\nimport { SnippetParser, Text } from '../../snippet/browser/snippetParser.js';\nexport async function provideInlineCompletions(registry, position, model, context, token = CancellationToken.None, languageConfigurationService) {\n    // Important: Don't use position after the await calls, as the model could have been changed in the meantime!\n    const defaultReplaceRange = getDefaultRange(position, model);\n    const providers = registry.all(model);\n    const multiMap = new SetMap();\n    for (const provider of providers) {\n        if (provider.groupId) {\n            multiMap.add(provider.groupId, provider);\n        }\n    }\n    function getPreferredProviders(provider) {\n        if (!provider.yieldsToGroupIds) {\n            return [];\n        }\n        const result = [];\n        for (const groupId of provider.yieldsToGroupIds || []) {\n            const providers = multiMap.get(groupId);\n            for (const p of providers) {\n                result.push(p);\n            }\n        }\n        return result;\n    }\n    const states = new Map();\n    const seen = new Set();\n    function findPreferredProviderCircle(provider, stack) {\n        stack = [...stack, provider];\n        if (seen.has(provider)) {\n            return stack;\n        }\n        seen.add(provider);\n        try {\n            const preferred = getPreferredProviders(provider);\n            for (const p of preferred) {\n                const c = findPreferredProviderCircle(p, stack);\n                if (c) {\n                    return c;\n                }\n            }\n        }\n        finally {\n            seen.delete(provider);\n        }\n        return undefined;\n    }\n    function processProvider(provider) {\n        const state = states.get(provider);\n        if (state) {\n            return state;\n        }\n        const circle = findPreferredProviderCircle(provider, []);\n        if (circle) {\n            onUnexpectedExternalError(new Error(`Inline completions: cyclic yield-to dependency detected. Path: ${circle.map(s => s.toString ? s.toString() : ('' + s)).join(' -> ')}`));\n        }\n        const deferredPromise = new DeferredPromise();\n        states.set(provider, deferredPromise.p);\n        (async () => {\n            if (!circle) {\n                const preferred = getPreferredProviders(provider);\n                for (const p of preferred) {\n                    const result = await processProvider(p);\n                    if (result && result.items.length > 0) {\n                        // Skip provider\n                        return undefined;\n                    }\n                }\n            }\n            try {\n                const completions = await provider.provideInlineCompletions(model, position, context, token);\n                return completions;\n            }\n            catch (e) {\n                onUnexpectedExternalError(e);\n                return undefined;\n            }\n        })().then(c => deferredPromise.complete(c), e => deferredPromise.error(e));\n        return deferredPromise.p;\n    }\n    const providerResults = await Promise.all(providers.map(async (provider) => ({ provider, completions: await processProvider(provider) })));\n    const itemsByHash = new Map();\n    const lists = [];\n    for (const result of providerResults) {\n        const completions = result.completions;\n        if (!completions) {\n            continue;\n        }\n        const list = new InlineCompletionList(completions, result.provider);\n        lists.push(list);\n        for (const item of completions.items) {\n            const inlineCompletionItem = InlineCompletionItem.from(item, list, defaultReplaceRange, model, languageConfigurationService);\n            itemsByHash.set(inlineCompletionItem.hash(), inlineCompletionItem);\n        }\n    }\n    return new InlineCompletionProviderResult(Array.from(itemsByHash.values()), new Set(itemsByHash.keys()), lists);\n}\nexport class InlineCompletionProviderResult {\n    constructor(\n    /**\n     * Free of duplicates.\n     */\n    completions, hashs, providerResults) {\n        this.completions = completions;\n        this.hashs = hashs;\n        this.providerResults = providerResults;\n    }\n    has(item) {\n        return this.hashs.has(item.hash());\n    }\n    dispose() {\n        for (const result of this.providerResults) {\n            result.removeRef();\n        }\n    }\n}\n/**\n * A ref counted pointer to the computed `InlineCompletions` and the `InlineCompletionsProvider` that\n * computed them.\n */\nexport class InlineCompletionList {\n    constructor(inlineCompletions, provider) {\n        this.inlineCompletions = inlineCompletions;\n        this.provider = provider;\n        this.refCount = 1;\n    }\n    addRef() {\n        this.refCount++;\n    }\n    removeRef() {\n        this.refCount--;\n        if (this.refCount === 0) {\n            this.provider.freeInlineCompletions(this.inlineCompletions);\n        }\n    }\n}\nexport class InlineCompletionItem {\n    static from(inlineCompletion, source, defaultReplaceRange, textModel, languageConfigurationService) {\n        let insertText;\n        let snippetInfo;\n        let range = inlineCompletion.range ? Range.lift(inlineCompletion.range) : defaultReplaceRange;\n        if (typeof inlineCompletion.insertText === 'string') {\n            insertText = inlineCompletion.insertText;\n            if (languageConfigurationService && inlineCompletion.completeBracketPairs) {\n                insertText = closeBrackets(insertText, range.getStartPosition(), textModel, languageConfigurationService);\n                // Modify range depending on if brackets are added or removed\n                const diff = insertText.length - inlineCompletion.insertText.length;\n                if (diff !== 0) {\n                    range = new Range(range.startLineNumber, range.startColumn, range.endLineNumber, range.endColumn + diff);\n                }\n            }\n            snippetInfo = undefined;\n        }\n        else if ('snippet' in inlineCompletion.insertText) {\n            const preBracketCompletionLength = inlineCompletion.insertText.snippet.length;\n            if (languageConfigurationService && inlineCompletion.completeBracketPairs) {\n                inlineCompletion.insertText.snippet = closeBrackets(inlineCompletion.insertText.snippet, range.getStartPosition(), textModel, languageConfigurationService);\n                // Modify range depending on if brackets are added or removed\n                const diff = inlineCompletion.insertText.snippet.length - preBracketCompletionLength;\n                if (diff !== 0) {\n                    range = new Range(range.startLineNumber, range.startColumn, range.endLineNumber, range.endColumn + diff);\n                }\n            }\n            const snippet = new SnippetParser().parse(inlineCompletion.insertText.snippet);\n            if (snippet.children.length === 1 && snippet.children[0] instanceof Text) {\n                insertText = snippet.children[0].value;\n                snippetInfo = undefined;\n            }\n            else {\n                insertText = snippet.toString();\n                snippetInfo = {\n                    snippet: inlineCompletion.insertText.snippet,\n                    range: range\n                };\n            }\n        }\n        else {\n            assertNever(inlineCompletion.insertText);\n        }\n        return new InlineCompletionItem(insertText, inlineCompletion.command, range, insertText, snippetInfo, inlineCompletion.additionalTextEdits || getReadonlyEmptyArray(), inlineCompletion, source);\n    }\n    constructor(filterText, command, range, insertText, snippetInfo, additionalTextEdits, \n    /**\n     * A reference to the original inline completion this inline completion has been constructed from.\n     * Used for event data to ensure referential equality.\n    */\n    sourceInlineCompletion, \n    /**\n     * A reference to the original inline completion list this inline completion has been constructed from.\n     * Used for event data to ensure referential equality.\n    */\n    source) {\n        this.filterText = filterText;\n        this.command = command;\n        this.range = range;\n        this.insertText = insertText;\n        this.snippetInfo = snippetInfo;\n        this.additionalTextEdits = additionalTextEdits;\n        this.sourceInlineCompletion = sourceInlineCompletion;\n        this.source = source;\n        filterText = filterText.replace(/\\r\\n|\\r/g, '\\n');\n        insertText = filterText.replace(/\\r\\n|\\r/g, '\\n');\n    }\n    withRange(updatedRange) {\n        return new InlineCompletionItem(this.filterText, this.command, updatedRange, this.insertText, this.snippetInfo, this.additionalTextEdits, this.sourceInlineCompletion, this.source);\n    }\n    hash() {\n        return JSON.stringify({ insertText: this.insertText, range: this.range.toString() });\n    }\n}\nfunction getDefaultRange(position, model) {\n    const word = model.getWordAtPosition(position);\n    const maxColumn = model.getLineMaxColumn(position.lineNumber);\n    // By default, always replace up until the end of the current line.\n    // This default might be subject to change!\n    return word\n        ? new Range(position.lineNumber, word.startColumn, position.lineNumber, maxColumn)\n        : Range.fromPositions(position, position.with(undefined, maxColumn));\n}\nfunction closeBrackets(text, position, model, languageConfigurationService) {\n    const lineStart = model.getLineContent(position.lineNumber).substring(0, position.column - 1);\n    const newLine = lineStart + text;\n    const newTokens = model.tokenization.tokenizeLineWithEdit(position, newLine.length - (position.column - 1), text);\n    const slicedTokens = newTokens === null || newTokens === void 0 ? void 0 : newTokens.sliceAndInflate(position.column - 1, newLine.length, 0);\n    if (!slicedTokens) {\n        return text;\n    }\n    const newText = fixBracketsInLine(slicedTokens, languageConfigurationService);\n    return newText;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineCompletions/browser/singleTextEdit.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { LcsDiff } from '../../../../base/common/diff/diff.js';\nimport { commonPrefixLength, getLeadingWhitespace } from '../../../../base/common/strings.js';\nimport { Range } from '../../../common/core/range.js';\nimport { TextLength } from '../../../common/core/textLength.js';\nimport { SingleTextEdit } from '../../../common/core/textEdit.js';\nimport { GhostText, GhostTextPart } from './ghostText.js';\nexport function singleTextRemoveCommonPrefix(edit, model, validModelRange) {\n    const modelRange = validModelRange ? edit.range.intersectRanges(validModelRange) : edit.range;\n    if (!modelRange) {\n        return edit;\n    }\n    const valueToReplace = model.getValueInRange(modelRange, 1 /* EndOfLinePreference.LF */);\n    const commonPrefixLen = commonPrefixLength(valueToReplace, edit.text);\n    const start = TextLength.ofText(valueToReplace.substring(0, commonPrefixLen)).addToPosition(edit.range.getStartPosition());\n    const text = edit.text.substring(commonPrefixLen);\n    const range = Range.fromPositions(start, edit.range.getEndPosition());\n    return new SingleTextEdit(range, text);\n}\nexport function singleTextEditAugments(edit, base) {\n    // The augmented completion must replace the base range, but can replace even more\n    return edit.text.startsWith(base.text) && rangeExtends(edit.range, base.range);\n}\n/**\n * @param previewSuffixLength Sets where to split `inlineCompletion.text`.\n * \tIf the text is `hello` and the suffix length is 2, the non-preview part is `hel` and the preview-part is `lo`.\n*/\nexport function computeGhostText(edit, model, mode, cursorPosition, previewSuffixLength = 0) {\n    let e = singleTextRemoveCommonPrefix(edit, model);\n    if (e.range.endLineNumber !== e.range.startLineNumber) {\n        // This edit might span multiple lines, but the first lines must be a common prefix.\n        return undefined;\n    }\n    const sourceLine = model.getLineContent(e.range.startLineNumber);\n    const sourceIndentationLength = getLeadingWhitespace(sourceLine).length;\n    const suggestionTouchesIndentation = e.range.startColumn - 1 <= sourceIndentationLength;\n    if (suggestionTouchesIndentation) {\n        // source:      ··········[······abc]\n        //                         ^^^^^^^^^ inlineCompletion.range\n        //              ^^^^^^^^^^ ^^^^^^ sourceIndentationLength\n        //                         ^^^^^^ replacedIndentation.length\n        //                               ^^^ rangeThatDoesNotReplaceIndentation\n        // inlineCompletion.text: '··foo'\n        //                         ^^ suggestionAddedIndentationLength\n        const suggestionAddedIndentationLength = getLeadingWhitespace(e.text).length;\n        const replacedIndentation = sourceLine.substring(e.range.startColumn - 1, sourceIndentationLength);\n        const [startPosition, endPosition] = [e.range.getStartPosition(), e.range.getEndPosition()];\n        const newStartPosition = startPosition.column + replacedIndentation.length <= endPosition.column\n            ? startPosition.delta(0, replacedIndentation.length)\n            : endPosition;\n        const rangeThatDoesNotReplaceIndentation = Range.fromPositions(newStartPosition, endPosition);\n        const suggestionWithoutIndentationChange = e.text.startsWith(replacedIndentation)\n            // Adds more indentation without changing existing indentation: We can add ghost text for this\n            ? e.text.substring(replacedIndentation.length)\n            // Changes or removes existing indentation. Only add ghost text for the non-indentation part.\n            : e.text.substring(suggestionAddedIndentationLength);\n        e = new SingleTextEdit(rangeThatDoesNotReplaceIndentation, suggestionWithoutIndentationChange);\n    }\n    // This is a single line string\n    const valueToBeReplaced = model.getValueInRange(e.range);\n    const changes = cachingDiff(valueToBeReplaced, e.text);\n    if (!changes) {\n        // No ghost text in case the diff would be too slow to compute\n        return undefined;\n    }\n    const lineNumber = e.range.startLineNumber;\n    const parts = new Array();\n    if (mode === 'prefix') {\n        const filteredChanges = changes.filter(c => c.originalLength === 0);\n        if (filteredChanges.length > 1 || filteredChanges.length === 1 && filteredChanges[0].originalStart !== valueToBeReplaced.length) {\n            // Prefixes only have a single change.\n            return undefined;\n        }\n    }\n    const previewStartInCompletionText = e.text.length - previewSuffixLength;\n    for (const c of changes) {\n        const insertColumn = e.range.startColumn + c.originalStart + c.originalLength;\n        if (mode === 'subwordSmart' && cursorPosition && cursorPosition.lineNumber === e.range.startLineNumber && insertColumn < cursorPosition.column) {\n            // No ghost text before cursor\n            return undefined;\n        }\n        if (c.originalLength > 0) {\n            return undefined;\n        }\n        if (c.modifiedLength === 0) {\n            continue;\n        }\n        const modifiedEnd = c.modifiedStart + c.modifiedLength;\n        const nonPreviewTextEnd = Math.max(c.modifiedStart, Math.min(modifiedEnd, previewStartInCompletionText));\n        const nonPreviewText = e.text.substring(c.modifiedStart, nonPreviewTextEnd);\n        const italicText = e.text.substring(nonPreviewTextEnd, Math.max(c.modifiedStart, modifiedEnd));\n        if (nonPreviewText.length > 0) {\n            parts.push(new GhostTextPart(insertColumn, nonPreviewText, false));\n        }\n        if (italicText.length > 0) {\n            parts.push(new GhostTextPart(insertColumn, italicText, true));\n        }\n    }\n    return new GhostText(lineNumber, parts);\n}\nfunction rangeExtends(extendingRange, rangeToExtend) {\n    return rangeToExtend.getStartPosition().equals(extendingRange.getStartPosition())\n        && rangeToExtend.getEndPosition().isBeforeOrEqual(extendingRange.getEndPosition());\n}\nlet lastRequest = undefined;\nfunction cachingDiff(originalValue, newValue) {\n    if ((lastRequest === null || lastRequest === void 0 ? void 0 : lastRequest.originalValue) === originalValue && (lastRequest === null || lastRequest === void 0 ? void 0 : lastRequest.newValue) === newValue) {\n        return lastRequest === null || lastRequest === void 0 ? void 0 : lastRequest.changes;\n    }\n    else {\n        let changes = smartDiff(originalValue, newValue, true);\n        if (changes) {\n            const deletedChars = deletedCharacters(changes);\n            if (deletedChars > 0) {\n                // For performance reasons, don't compute diff if there is nothing to improve\n                const newChanges = smartDiff(originalValue, newValue, false);\n                if (newChanges && deletedCharacters(newChanges) < deletedChars) {\n                    // Disabling smartness seems to be better here\n                    changes = newChanges;\n                }\n            }\n        }\n        lastRequest = {\n            originalValue,\n            newValue,\n            changes\n        };\n        return changes;\n    }\n}\nfunction deletedCharacters(changes) {\n    let sum = 0;\n    for (const c of changes) {\n        sum += c.originalLength;\n    }\n    return sum;\n}\n/**\n * When matching `if ()` with `if (f() = 1) { g(); }`,\n * align it like this:        `if (       )`\n * Not like this:\t\t\t  `if (  )`\n * Also not like this:\t\t  `if (             )`.\n *\n * The parenthesis are preprocessed to ensure that they match correctly.\n */\nfunction smartDiff(originalValue, newValue, smartBracketMatching) {\n    if (originalValue.length > 5000 || newValue.length > 5000) {\n        // We don't want to work on strings that are too big\n        return undefined;\n    }\n    function getMaxCharCode(val) {\n        let maxCharCode = 0;\n        for (let i = 0, len = val.length; i < len; i++) {\n            const charCode = val.charCodeAt(i);\n            if (charCode > maxCharCode) {\n                maxCharCode = charCode;\n            }\n        }\n        return maxCharCode;\n    }\n    const maxCharCode = Math.max(getMaxCharCode(originalValue), getMaxCharCode(newValue));\n    function getUniqueCharCode(id) {\n        if (id < 0) {\n            throw new Error('unexpected');\n        }\n        return maxCharCode + id + 1;\n    }\n    function getElements(source) {\n        let level = 0;\n        let group = 0;\n        const characters = new Int32Array(source.length);\n        for (let i = 0, len = source.length; i < len; i++) {\n            // TODO support more brackets\n            if (smartBracketMatching && source[i] === '(') {\n                const id = group * 100 + level;\n                characters[i] = getUniqueCharCode(2 * id);\n                level++;\n            }\n            else if (smartBracketMatching && source[i] === ')') {\n                level = Math.max(level - 1, 0);\n                const id = group * 100 + level;\n                characters[i] = getUniqueCharCode(2 * id + 1);\n                if (level === 0) {\n                    group++;\n                }\n            }\n            else {\n                characters[i] = source.charCodeAt(i);\n            }\n        }\n        return characters;\n    }\n    const elements1 = getElements(originalValue);\n    const elements2 = getElements(newValue);\n    return new LcsDiff({ getElements: () => elements1 }, { getElements: () => elements2 }).ComputeDiff(false).changes;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineCompletions/browser/suggestWidgetInlineCompletionProvider.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Event } from '../../../../base/common/event.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { SelectedSuggestionInfo } from '../../../common/languages.js';\nimport { SnippetParser } from '../../snippet/browser/snippetParser.js';\nimport { SnippetSession } from '../../snippet/browser/snippetSession.js';\nimport { SuggestController } from '../../suggest/browser/suggestController.js';\nimport { observableValue, transaction } from '../../../../base/common/observable.js';\nimport { SingleTextEdit } from '../../../common/core/textEdit.js';\nimport { compareBy, numberComparator } from '../../../../base/common/arrays.js';\nimport { findFirstMax } from '../../../../base/common/arraysFind.js';\nimport { singleTextEditAugments, singleTextRemoveCommonPrefix } from './singleTextEdit.js';\nexport class SuggestWidgetAdaptor extends Disposable {\n    get selectedItem() {\n        return this._selectedItem;\n    }\n    constructor(editor, suggestControllerPreselector, checkModelVersion, onWillAccept) {\n        super();\n        this.editor = editor;\n        this.suggestControllerPreselector = suggestControllerPreselector;\n        this.checkModelVersion = checkModelVersion;\n        this.onWillAccept = onWillAccept;\n        this.isSuggestWidgetVisible = false;\n        this.isShiftKeyPressed = false;\n        this._isActive = false;\n        this._currentSuggestItemInfo = undefined;\n        this._selectedItem = observableValue(this, undefined);\n        // See the command acceptAlternativeSelectedSuggestion that is bound to shift+tab\n        this._register(editor.onKeyDown(e => {\n            if (e.shiftKey && !this.isShiftKeyPressed) {\n                this.isShiftKeyPressed = true;\n                this.update(this._isActive);\n            }\n        }));\n        this._register(editor.onKeyUp(e => {\n            if (e.shiftKey && this.isShiftKeyPressed) {\n                this.isShiftKeyPressed = false;\n                this.update(this._isActive);\n            }\n        }));\n        const suggestController = SuggestController.get(this.editor);\n        if (suggestController) {\n            this._register(suggestController.registerSelector({\n                priority: 100,\n                select: (model, pos, suggestItems) => {\n                    transaction(tx => this.checkModelVersion(tx));\n                    const textModel = this.editor.getModel();\n                    if (!textModel) {\n                        // Should not happen\n                        return -1;\n                    }\n                    const i = this.suggestControllerPreselector();\n                    const itemToPreselect = i ? singleTextRemoveCommonPrefix(i, textModel) : undefined;\n                    if (!itemToPreselect) {\n                        return -1;\n                    }\n                    const position = Position.lift(pos);\n                    const candidates = suggestItems\n                        .map((suggestItem, index) => {\n                        const suggestItemInfo = SuggestItemInfo.fromSuggestion(suggestController, textModel, position, suggestItem, this.isShiftKeyPressed);\n                        const suggestItemTextEdit = singleTextRemoveCommonPrefix(suggestItemInfo.toSingleTextEdit(), textModel);\n                        const valid = singleTextEditAugments(itemToPreselect, suggestItemTextEdit);\n                        return { index, valid, prefixLength: suggestItemTextEdit.text.length, suggestItem };\n                    })\n                        .filter(item => item && item.valid && item.prefixLength > 0);\n                    const result = findFirstMax(candidates, compareBy(s => s.prefixLength, numberComparator));\n                    return result ? result.index : -1;\n                }\n            }));\n            let isBoundToSuggestWidget = false;\n            const bindToSuggestWidget = () => {\n                if (isBoundToSuggestWidget) {\n                    return;\n                }\n                isBoundToSuggestWidget = true;\n                this._register(suggestController.widget.value.onDidShow(() => {\n                    this.isSuggestWidgetVisible = true;\n                    this.update(true);\n                }));\n                this._register(suggestController.widget.value.onDidHide(() => {\n                    this.isSuggestWidgetVisible = false;\n                    this.update(false);\n                }));\n                this._register(suggestController.widget.value.onDidFocus(() => {\n                    this.isSuggestWidgetVisible = true;\n                    this.update(true);\n                }));\n            };\n            this._register(Event.once(suggestController.model.onDidTrigger)(e => {\n                bindToSuggestWidget();\n            }));\n            this._register(suggestController.onWillInsertSuggestItem(e => {\n                const position = this.editor.getPosition();\n                const model = this.editor.getModel();\n                if (!position || !model) {\n                    return undefined;\n                }\n                const suggestItemInfo = SuggestItemInfo.fromSuggestion(suggestController, model, position, e.item, this.isShiftKeyPressed);\n                this.onWillAccept(suggestItemInfo);\n            }));\n        }\n        this.update(this._isActive);\n    }\n    update(newActive) {\n        const newInlineCompletion = this.getSuggestItemInfo();\n        if (this._isActive !== newActive || !suggestItemInfoEquals(this._currentSuggestItemInfo, newInlineCompletion)) {\n            this._isActive = newActive;\n            this._currentSuggestItemInfo = newInlineCompletion;\n            transaction(tx => {\n                /** @description Update state from suggest widget */\n                this.checkModelVersion(tx);\n                this._selectedItem.set(this._isActive ? this._currentSuggestItemInfo : undefined, tx);\n            });\n        }\n    }\n    getSuggestItemInfo() {\n        const suggestController = SuggestController.get(this.editor);\n        if (!suggestController || !this.isSuggestWidgetVisible) {\n            return undefined;\n        }\n        const focusedItem = suggestController.widget.value.getFocusedItem();\n        const position = this.editor.getPosition();\n        const model = this.editor.getModel();\n        if (!focusedItem || !position || !model) {\n            return undefined;\n        }\n        return SuggestItemInfo.fromSuggestion(suggestController, model, position, focusedItem.item, this.isShiftKeyPressed);\n    }\n    stopForceRenderingAbove() {\n        const suggestController = SuggestController.get(this.editor);\n        suggestController === null || suggestController === void 0 ? void 0 : suggestController.stopForceRenderingAbove();\n    }\n    forceRenderingAbove() {\n        const suggestController = SuggestController.get(this.editor);\n        suggestController === null || suggestController === void 0 ? void 0 : suggestController.forceRenderingAbove();\n    }\n}\nexport class SuggestItemInfo {\n    static fromSuggestion(suggestController, model, position, item, toggleMode) {\n        let { insertText } = item.completion;\n        let isSnippetText = false;\n        if (item.completion.insertTextRules & 4 /* CompletionItemInsertTextRule.InsertAsSnippet */) {\n            const snippet = new SnippetParser().parse(insertText);\n            if (snippet.children.length < 100) {\n                // Adjust whitespace is expensive.\n                SnippetSession.adjustWhitespace(model, position, true, snippet);\n            }\n            insertText = snippet.toString();\n            isSnippetText = true;\n        }\n        const info = suggestController.getOverwriteInfo(item, toggleMode);\n        return new SuggestItemInfo(Range.fromPositions(position.delta(0, -info.overwriteBefore), position.delta(0, Math.max(info.overwriteAfter, 0))), insertText, item.completion.kind, isSnippetText);\n    }\n    constructor(range, insertText, completionItemKind, isSnippetText) {\n        this.range = range;\n        this.insertText = insertText;\n        this.completionItemKind = completionItemKind;\n        this.isSnippetText = isSnippetText;\n    }\n    equals(other) {\n        return this.range.equalsRange(other.range)\n            && this.insertText === other.insertText\n            && this.completionItemKind === other.completionItemKind\n            && this.isSnippetText === other.isSnippetText;\n    }\n    toSelectedSuggestionInfo() {\n        return new SelectedSuggestionInfo(this.range, this.insertText, this.completionItemKind, this.isSnippetText);\n    }\n    toSingleTextEdit() {\n        return new SingleTextEdit(this.range, this.insertText);\n    }\n}\nfunction suggestItemInfoEquals(a, b) {\n    if (a === b) {\n        return true;\n    }\n    if (!a || !b) {\n        return false;\n    }\n    return a.equals(b);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineCompletions/browser/utils.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { BugIndicatingError } from '../../../../base/common/errors.js';\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { autorunOpts } from '../../../../base/common/observable.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nconst array = [];\nexport function getReadonlyEmptyArray() {\n    return array;\n}\nexport class ColumnRange {\n    constructor(startColumn, endColumnExclusive) {\n        this.startColumn = startColumn;\n        this.endColumnExclusive = endColumnExclusive;\n        if (startColumn > endColumnExclusive) {\n            throw new BugIndicatingError(`startColumn ${startColumn} cannot be after endColumnExclusive ${endColumnExclusive}`);\n        }\n    }\n    toRange(lineNumber) {\n        return new Range(lineNumber, this.startColumn, lineNumber, this.endColumnExclusive);\n    }\n    equals(other) {\n        return this.startColumn === other.startColumn\n            && this.endColumnExclusive === other.endColumnExclusive;\n    }\n}\nexport function applyObservableDecorations(editor, decorations) {\n    const d = new DisposableStore();\n    const decorationsCollection = editor.createDecorationsCollection();\n    d.add(autorunOpts({ debugName: () => `Apply decorations from ${decorations.debugName}` }, reader => {\n        const d = decorations.read(reader);\n        decorationsCollection.set(d);\n    }));\n    d.add({\n        dispose: () => {\n            decorationsCollection.clear();\n        }\n    });\n    return d;\n}\nexport function addPositions(pos1, pos2) {\n    return new Position(pos1.lineNumber + pos2.lineNumber - 1, pos2.lineNumber === 1 ? pos1.column + pos2.column - 1 : pos2.column);\n}\nexport function subtractPositions(pos1, pos2) {\n    return new Position(pos1.lineNumber - pos2.lineNumber + 1, pos1.lineNumber - pos2.lineNumber === 0 ? pos1.column - pos2.column + 1 : pos1.column);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineEdit/browser/commandIds.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport const inlineEditAcceptId = 'editor.action.inlineEdit.accept';\nexport const inlineEditRejectId = 'editor.action.inlineEdit.reject';\nexport const inlineEditJumpToId = 'editor.action.inlineEdit.jumpTo';\nexport const inlineEditJumpBackId = 'editor.action.inlineEdit.jumpBack';\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineEdit/browser/commands.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { EditorAction } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { inlineEditAcceptId, inlineEditJumpBackId, inlineEditJumpToId, inlineEditRejectId } from './commandIds.js';\nimport { InlineEditController } from './inlineEditController.js';\nimport { MenuId } from '../../../../platform/actions/common/actions.js';\nimport { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nexport class AcceptInlineEdit extends EditorAction {\n    constructor() {\n        super({\n            id: inlineEditAcceptId,\n            label: 'Accept Inline Edit',\n            alias: 'Accept Inline Edit',\n            precondition: ContextKeyExpr.and(EditorContextKeys.writable, InlineEditController.inlineEditVisibleContext),\n            kbOpts: [\n                {\n                    weight: 100 /* KeybindingWeight.EditorContrib */ + 1,\n                    primary: 2 /* KeyCode.Tab */,\n                    kbExpr: ContextKeyExpr.and(EditorContextKeys.writable, InlineEditController.inlineEditVisibleContext, InlineEditController.cursorAtInlineEditContext)\n                }\n            ],\n            menuOpts: [{\n                    menuId: MenuId.InlineEditToolbar,\n                    title: 'Accept',\n                    group: 'primary',\n                    order: 1,\n                }],\n        });\n    }\n    async run(accessor, editor) {\n        const controller = InlineEditController.get(editor);\n        await (controller === null || controller === void 0 ? void 0 : controller.accept());\n    }\n}\nexport class TriggerInlineEdit extends EditorAction {\n    constructor() {\n        const activeExpr = ContextKeyExpr.and(EditorContextKeys.writable, ContextKeyExpr.not(InlineEditController.inlineEditVisibleKey));\n        super({\n            id: 'editor.action.inlineEdit.trigger',\n            label: 'Trigger Inline Edit',\n            alias: 'Trigger Inline Edit',\n            precondition: activeExpr,\n            kbOpts: {\n                weight: 100 /* KeybindingWeight.EditorContrib */ + 1,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 86 /* KeyCode.Equal */,\n                kbExpr: activeExpr\n            },\n        });\n    }\n    async run(accessor, editor) {\n        const controller = InlineEditController.get(editor);\n        controller === null || controller === void 0 ? void 0 : controller.trigger();\n    }\n}\nexport class JumpToInlineEdit extends EditorAction {\n    constructor() {\n        const activeExpr = ContextKeyExpr.and(EditorContextKeys.writable, InlineEditController.inlineEditVisibleContext, ContextKeyExpr.not(InlineEditController.cursorAtInlineEditKey));\n        super({\n            id: inlineEditJumpToId,\n            label: 'Jump to Inline Edit',\n            alias: 'Jump to Inline Edit',\n            precondition: activeExpr,\n            kbOpts: {\n                weight: 100 /* KeybindingWeight.EditorContrib */ + 1,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 86 /* KeyCode.Equal */,\n                kbExpr: activeExpr\n            },\n            menuOpts: [{\n                    menuId: MenuId.InlineEditToolbar,\n                    title: 'Jump To Edit',\n                    group: 'primary',\n                    order: 3,\n                    when: activeExpr\n                }],\n        });\n    }\n    async run(accessor, editor) {\n        const controller = InlineEditController.get(editor);\n        controller === null || controller === void 0 ? void 0 : controller.jumpToCurrent();\n    }\n}\nexport class JumpBackInlineEdit extends EditorAction {\n    constructor() {\n        const activeExpr = ContextKeyExpr.and(EditorContextKeys.writable, InlineEditController.cursorAtInlineEditContext);\n        super({\n            id: inlineEditJumpBackId,\n            label: 'Jump Back from Inline Edit',\n            alias: 'Jump Back from Inline Edit',\n            precondition: activeExpr,\n            kbOpts: {\n                weight: 100 /* KeybindingWeight.EditorContrib */ + 10,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 86 /* KeyCode.Equal */,\n                kbExpr: activeExpr\n            },\n            menuOpts: [{\n                    menuId: MenuId.InlineEditToolbar,\n                    title: 'Jump Back',\n                    group: 'primary',\n                    order: 3,\n                    when: activeExpr\n                }],\n        });\n    }\n    async run(accessor, editor) {\n        const controller = InlineEditController.get(editor);\n        controller === null || controller === void 0 ? void 0 : controller.jumpBack();\n    }\n}\nexport class RejectInlineEdit extends EditorAction {\n    constructor() {\n        const activeExpr = ContextKeyExpr.and(EditorContextKeys.writable, InlineEditController.inlineEditVisibleContext);\n        super({\n            id: inlineEditRejectId,\n            label: 'Reject Inline Edit',\n            alias: 'Reject Inline Edit',\n            precondition: activeExpr,\n            kbOpts: {\n                weight: 100 /* KeybindingWeight.EditorContrib */,\n                primary: 9 /* KeyCode.Escape */,\n                kbExpr: activeExpr\n            },\n            menuOpts: [{\n                    menuId: MenuId.InlineEditToolbar,\n                    title: 'Reject',\n                    group: 'secondary',\n                    order: 2,\n                }],\n        });\n    }\n    async run(accessor, editor) {\n        const controller = InlineEditController.get(editor);\n        await (controller === null || controller === void 0 ? void 0 : controller.clear());\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineEdit/browser/ghostTextWidget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Disposable, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { derived, observableFromEvent, observableValue } from '../../../../base/common/observable.js';\nimport './inlineEdit.css';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { ILanguageService } from '../../../common/languages/language.js';\nimport { InjectedTextCursorStops } from '../../../common/model.js';\nimport { LineDecoration } from '../../../common/viewLayout/lineDecorations.js';\nimport { AdditionalLinesWidget } from '../../inlineCompletions/browser/ghostTextWidget.js';\nimport { ColumnRange, applyObservableDecorations } from '../../inlineCompletions/browser/utils.js';\nexport const INLINE_EDIT_DESCRIPTION = 'inline-edit';\nlet GhostTextWidget = class GhostTextWidget extends Disposable {\n    constructor(editor, model, languageService) {\n        super();\n        this.editor = editor;\n        this.model = model;\n        this.languageService = languageService;\n        this.isDisposed = observableValue(this, false);\n        this.currentTextModel = observableFromEvent(this.editor.onDidChangeModel, () => /** @description editor.model */ this.editor.getModel());\n        this.uiState = derived(this, reader => {\n            var _a;\n            if (this.isDisposed.read(reader)) {\n                return undefined;\n            }\n            const textModel = this.currentTextModel.read(reader);\n            if (textModel !== this.model.targetTextModel.read(reader)) {\n                return undefined;\n            }\n            const ghostText = this.model.ghostText.read(reader);\n            if (!ghostText) {\n                return undefined;\n            }\n            let range = (_a = this.model.range) === null || _a === void 0 ? void 0 : _a.read(reader);\n            //if range is empty, we want to remove it\n            if (range && range.startLineNumber === range.endLineNumber && range.startColumn === range.endColumn) {\n                range = undefined;\n            }\n            //check if both range and text are single line - in this case we want to do inline replacement\n            //rather than replacing whole lines\n            const isSingleLine = (range ? range.startLineNumber === range.endLineNumber : true) && ghostText.parts.length === 1 && ghostText.parts[0].lines.length === 1;\n            //check if we're just removing code\n            const isPureRemove = ghostText.parts.length === 1 && ghostText.parts[0].lines.every(l => l.length === 0);\n            const inlineTexts = [];\n            const additionalLines = [];\n            function addToAdditionalLines(lines, className) {\n                if (additionalLines.length > 0) {\n                    const lastLine = additionalLines[additionalLines.length - 1];\n                    if (className) {\n                        lastLine.decorations.push(new LineDecoration(lastLine.content.length + 1, lastLine.content.length + 1 + lines[0].length, className, 0 /* InlineDecorationType.Regular */));\n                    }\n                    lastLine.content += lines[0];\n                    lines = lines.slice(1);\n                }\n                for (const line of lines) {\n                    additionalLines.push({\n                        content: line,\n                        decorations: className ? [new LineDecoration(1, line.length + 1, className, 0 /* InlineDecorationType.Regular */)] : []\n                    });\n                }\n            }\n            const textBufferLine = textModel.getLineContent(ghostText.lineNumber);\n            let hiddenTextStartColumn = undefined;\n            let lastIdx = 0;\n            if (!isPureRemove) {\n                for (const part of ghostText.parts) {\n                    let lines = part.lines;\n                    //If remove range is set, we want to push all new liens to virtual area\n                    if (range && !isSingleLine) {\n                        addToAdditionalLines(lines, INLINE_EDIT_DESCRIPTION);\n                        lines = [];\n                    }\n                    if (hiddenTextStartColumn === undefined) {\n                        inlineTexts.push({\n                            column: part.column,\n                            text: lines[0],\n                            preview: part.preview,\n                        });\n                        lines = lines.slice(1);\n                    }\n                    else {\n                        addToAdditionalLines([textBufferLine.substring(lastIdx, part.column - 1)], undefined);\n                    }\n                    if (lines.length > 0) {\n                        addToAdditionalLines(lines, INLINE_EDIT_DESCRIPTION);\n                        if (hiddenTextStartColumn === undefined && part.column <= textBufferLine.length) {\n                            hiddenTextStartColumn = part.column;\n                        }\n                    }\n                    lastIdx = part.column - 1;\n                }\n                if (hiddenTextStartColumn !== undefined) {\n                    addToAdditionalLines([textBufferLine.substring(lastIdx)], undefined);\n                }\n            }\n            const hiddenRange = hiddenTextStartColumn !== undefined ? new ColumnRange(hiddenTextStartColumn, textBufferLine.length + 1) : undefined;\n            const lineNumber = (isSingleLine || !range) ? ghostText.lineNumber : range.endLineNumber - 1;\n            return {\n                inlineTexts,\n                additionalLines,\n                hiddenRange,\n                lineNumber,\n                additionalReservedLineCount: this.model.minReservedLineCount.read(reader),\n                targetTextModel: textModel,\n                range,\n                isSingleLine,\n                isPureRemove,\n                backgroundColoring: this.model.backgroundColoring.read(reader)\n            };\n        });\n        this.decorations = derived(this, reader => {\n            const uiState = this.uiState.read(reader);\n            if (!uiState) {\n                return [];\n            }\n            const decorations = [];\n            if (uiState.hiddenRange) {\n                decorations.push({\n                    range: uiState.hiddenRange.toRange(uiState.lineNumber),\n                    options: { inlineClassName: 'inline-edit-hidden', description: 'inline-edit-hidden', }\n                });\n            }\n            if (uiState.range) {\n                const ranges = [];\n                if (uiState.isSingleLine) {\n                    ranges.push(uiState.range);\n                }\n                else if (uiState.isPureRemove) {\n                    const lines = uiState.range.endLineNumber - uiState.range.startLineNumber;\n                    for (let i = 0; i < lines; i++) {\n                        const line = uiState.range.startLineNumber + i;\n                        const firstNonWhitespace = uiState.targetTextModel.getLineFirstNonWhitespaceColumn(line);\n                        const lastNonWhitespace = uiState.targetTextModel.getLineLastNonWhitespaceColumn(line);\n                        const range = new Range(line, firstNonWhitespace, line, lastNonWhitespace);\n                        ranges.push(range);\n                    }\n                }\n                else {\n                    const lines = uiState.range.endLineNumber - uiState.range.startLineNumber;\n                    for (let i = 0; i < lines; i++) {\n                        const line = uiState.range.startLineNumber + i;\n                        const firstNonWhitespace = uiState.targetTextModel.getLineFirstNonWhitespaceColumn(line);\n                        const lastNonWhitespace = uiState.targetTextModel.getLineLastNonWhitespaceColumn(line);\n                        const range = new Range(line, firstNonWhitespace, line, lastNonWhitespace);\n                        ranges.push(range);\n                    }\n                }\n                const className = uiState.backgroundColoring ? 'inline-edit-remove backgroundColoring' : 'inline-edit-remove';\n                for (const range of ranges) {\n                    decorations.push({\n                        range,\n                        options: { inlineClassName: className, description: 'inline-edit-remove', }\n                    });\n                }\n            }\n            for (const p of uiState.inlineTexts) {\n                decorations.push({\n                    range: Range.fromPositions(new Position(uiState.lineNumber, p.column)),\n                    options: {\n                        description: INLINE_EDIT_DESCRIPTION,\n                        after: { content: p.text, inlineClassName: p.preview ? 'inline-edit-decoration-preview' : 'inline-edit-decoration', cursorStops: InjectedTextCursorStops.Left },\n                        showIfCollapsed: true,\n                    }\n                });\n            }\n            return decorations;\n        });\n        this.additionalLinesWidget = this._register(new AdditionalLinesWidget(this.editor, this.languageService.languageIdCodec, derived(reader => {\n            /** @description lines */\n            const uiState = this.uiState.read(reader);\n            return uiState && !uiState.isPureRemove ? {\n                lineNumber: uiState.lineNumber,\n                additionalLines: uiState.additionalLines,\n                minReservedLineCount: uiState.additionalReservedLineCount,\n                targetTextModel: uiState.targetTextModel,\n            } : undefined;\n        })));\n        this._register(toDisposable(() => { this.isDisposed.set(true, undefined); }));\n        this._register(applyObservableDecorations(this.editor, this.decorations));\n    }\n    ownsViewZone(viewZoneId) {\n        return this.additionalLinesWidget.viewZoneId === viewZoneId;\n    }\n};\nGhostTextWidget = __decorate([\n    __param(2, ILanguageService)\n], GhostTextWidget);\nexport { GhostTextWidget };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineEdit/browser/hoverParticipant.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { constObservable } from '../../../../base/common/observable.js';\nimport { HoverForeignElementAnchor } from '../../hover/browser/hoverTypes.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { ITelemetryService } from '../../../../platform/telemetry/common/telemetry.js';\nimport { InlineEditController } from './inlineEditController.js';\nimport { InlineEditHintsContentWidget } from './inlineEditHintsWidget.js';\nexport class InlineEditHover {\n    constructor(owner, range, controller) {\n        this.owner = owner;\n        this.range = range;\n        this.controller = controller;\n    }\n    isValidForHoverAnchor(anchor) {\n        return (anchor.type === 1 /* HoverAnchorType.Range */\n            && this.range.startColumn <= anchor.range.startColumn\n            && this.range.endColumn >= anchor.range.endColumn);\n    }\n}\nlet InlineEditHoverParticipant = class InlineEditHoverParticipant {\n    constructor(_editor, _instantiationService, _telemetryService) {\n        this._editor = _editor;\n        this._instantiationService = _instantiationService;\n        this._telemetryService = _telemetryService;\n        this.hoverOrdinal = 5;\n    }\n    suggestHoverAnchor(mouseEvent) {\n        const controller = InlineEditController.get(this._editor);\n        if (!controller) {\n            return null;\n        }\n        const target = mouseEvent.target;\n        if (target.type === 8 /* MouseTargetType.CONTENT_VIEW_ZONE */) {\n            // handle the case where the mouse is over the view zone\n            const viewZoneData = target.detail;\n            if (controller.shouldShowHoverAtViewZone(viewZoneData.viewZoneId)) {\n                // const range = Range.fromPositions(this._editor.getModel()!.validatePosition(viewZoneData.positionBefore || viewZoneData.position));\n                const range = target.range;\n                return new HoverForeignElementAnchor(1000, this, range, mouseEvent.event.posx, mouseEvent.event.posy, false);\n            }\n        }\n        if (target.type === 7 /* MouseTargetType.CONTENT_EMPTY */) {\n            // handle the case where the mouse is over the empty portion of a line following ghost text\n            if (controller.shouldShowHoverAt(target.range)) {\n                return new HoverForeignElementAnchor(1000, this, target.range, mouseEvent.event.posx, mouseEvent.event.posy, false);\n            }\n        }\n        if (target.type === 6 /* MouseTargetType.CONTENT_TEXT */) {\n            // handle the case where the mouse is directly over ghost text\n            const mightBeForeignElement = target.detail.mightBeForeignElement;\n            if (mightBeForeignElement && controller.shouldShowHoverAt(target.range)) {\n                return new HoverForeignElementAnchor(1000, this, target.range, mouseEvent.event.posx, mouseEvent.event.posy, false);\n            }\n        }\n        return null;\n    }\n    computeSync(anchor, lineDecorations) {\n        if (this._editor.getOption(63 /* EditorOption.inlineEdit */).showToolbar !== 'onHover') {\n            return [];\n        }\n        const controller = InlineEditController.get(this._editor);\n        if (controller && controller.shouldShowHoverAt(anchor.range)) {\n            return [new InlineEditHover(this, anchor.range, controller)];\n        }\n        return [];\n    }\n    renderHoverParts(context, hoverParts) {\n        const disposableStore = new DisposableStore();\n        this._telemetryService.publicLog2('inlineEditHover.shown');\n        const w = this._instantiationService.createInstance(InlineEditHintsContentWidget, this._editor, false, constObservable(null));\n        context.fragment.appendChild(w.getDomNode());\n        disposableStore.add(w);\n        return disposableStore;\n    }\n};\nInlineEditHoverParticipant = __decorate([\n    __param(1, IInstantiationService),\n    __param(2, ITelemetryService)\n], InlineEditHoverParticipant);\nexport { InlineEditHoverParticipant };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineEdit/browser/inlineEdit.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineEdit/browser/inlineEdit.contribution.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { registerEditorAction, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { HoverParticipantRegistry } from '../../hover/browser/hoverTypes.js';\nimport { AcceptInlineEdit, JumpBackInlineEdit, JumpToInlineEdit, RejectInlineEdit, TriggerInlineEdit } from './commands.js';\nimport { InlineEditHoverParticipant } from './hoverParticipant.js';\nimport { InlineEditController } from './inlineEditController.js';\nregisterEditorAction(AcceptInlineEdit);\nregisterEditorAction(RejectInlineEdit);\nregisterEditorAction(JumpToInlineEdit);\nregisterEditorAction(JumpBackInlineEdit);\nregisterEditorAction(TriggerInlineEdit);\nregisterEditorContribution(InlineEditController.ID, InlineEditController, 3 /* EditorContributionInstantiation.Eventually */);\nHoverParticipantRegistry.register(InlineEditHoverParticipant);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineEdit/browser/inlineEdit.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .inline-edit-remove {\n\tbackground-color: var(--vscode-editorGhostText-background);\n\tfont-style: italic;\n\ttext-decoration: line-through;\n}\n\n.monaco-editor .inline-edit-remove.backgroundColoring {\n\tbackground-color: var(--vscode-diffEditor-removedLineBackground);\n}\n\n.monaco-editor .inline-edit-hidden {\n\topacity: 0;\n\tfont-size: 0;\n}\n\n.monaco-editor .inline-edit-decoration, .monaco-editor .suggest-preview-text .inline-edit {\n\tfont-style: italic;\n}\n\n.monaco-editor .inline-completion-text-to-replace {\n\ttext-decoration: underline;\n\ttext-underline-position: under;\n}\n\n.monaco-editor .inline-edit-decoration,\n.monaco-editor .inline-edit-decoration-preview,\n.monaco-editor .suggest-preview-text .inline-edit {\n\tcolor: var(--vscode-editorGhostText-foreground) !important;\n\tbackground-color: var(--vscode-editorGhostText-background);\n\tborder: 1px solid var(--vscode-editorGhostText-border);\n}\n\n\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineEdit/browser/inlineEditController.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar InlineEditController_1;\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { autorun, constObservable, disposableObservableValue, observableFromEvent, observableSignalFromEvent, observableValue, transaction } from '../../../../base/common/observable.js';\nimport { EditOperation } from '../../../common/core/editOperation.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { GhostTextWidget } from './ghostTextWidget.js';\nimport { IContextKeyService, RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { InlineEditTriggerKind } from '../../../common/languages.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { GhostText, GhostTextPart } from '../../inlineCompletions/browser/ghostText.js';\nimport { ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { InlineEditHintsWidget } from './inlineEditHintsWidget.js';\nimport { createStyleSheet2 } from '../../../../base/browser/dom.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { onUnexpectedExternalError } from '../../../../base/common/errors.js';\nexport class InlineEditWidget {\n    constructor(widget, edit) {\n        this.widget = widget;\n        this.edit = edit;\n    }\n    dispose() {\n        this.widget.dispose();\n    }\n}\nlet InlineEditController = InlineEditController_1 = class InlineEditController extends Disposable {\n    static get(editor) {\n        return editor.getContribution(InlineEditController_1.ID);\n    }\n    constructor(editor, instantiationService, contextKeyService, languageFeaturesService, _commandService, _configurationService) {\n        super();\n        this.editor = editor;\n        this.instantiationService = instantiationService;\n        this.contextKeyService = contextKeyService;\n        this.languageFeaturesService = languageFeaturesService;\n        this._commandService = _commandService;\n        this._configurationService = _configurationService;\n        this._isVisibleContext = InlineEditController_1.inlineEditVisibleContext.bindTo(this.contextKeyService);\n        this._isCursorAtInlineEditContext = InlineEditController_1.cursorAtInlineEditContext.bindTo(this.contextKeyService);\n        this._currentEdit = this._register(disposableObservableValue(this, undefined));\n        this._isAccepting = observableValue(this, false);\n        this._enabled = observableFromEvent(this.editor.onDidChangeConfiguration, () => this.editor.getOption(63 /* EditorOption.inlineEdit */).enabled);\n        this._fontFamily = observableFromEvent(this.editor.onDidChangeConfiguration, () => this.editor.getOption(63 /* EditorOption.inlineEdit */).fontFamily);\n        this._backgroundColoring = observableFromEvent(this.editor.onDidChangeConfiguration, () => this.editor.getOption(63 /* EditorOption.inlineEdit */).backgroundColoring);\n        //Automatically request inline edit when the content was changed\n        //Cancel the previous request if there is one\n        //Remove the previous ghost text\n        const modelChangedSignal = observableSignalFromEvent('InlineEditController.modelContentChangedSignal', editor.onDidChangeModelContent);\n        this._register(autorun(reader => {\n            /** @description InlineEditController.modelContentChanged model */\n            if (!this._enabled.read(reader)) {\n                return;\n            }\n            modelChangedSignal.read(reader);\n            if (this._isAccepting.read(reader)) {\n                return;\n            }\n            this.getInlineEdit(editor, true);\n        }));\n        //Check if the cursor is at the ghost text\n        const cursorPosition = observableFromEvent(editor.onDidChangeCursorPosition, () => editor.getPosition());\n        this._register(autorun(reader => {\n            /** @description InlineEditController.cursorPositionChanged model */\n            if (!this._enabled.read(reader)) {\n                return;\n            }\n            const pos = cursorPosition.read(reader);\n            if (pos) {\n                this.checkCursorPosition(pos);\n            }\n        }));\n        //Perform stuff when the current edit has changed\n        this._register(autorun((reader) => {\n            /** @description InlineEditController.update model */\n            const currentEdit = this._currentEdit.read(reader);\n            this._isCursorAtInlineEditContext.set(false);\n            if (!currentEdit) {\n                this._isVisibleContext.set(false);\n                return;\n            }\n            this._isVisibleContext.set(true);\n            const pos = editor.getPosition();\n            if (pos) {\n                this.checkCursorPosition(pos);\n            }\n        }));\n        //Clear suggestions on lost focus\n        const editorBlurSingal = observableSignalFromEvent('InlineEditController.editorBlurSignal', editor.onDidBlurEditorWidget);\n        this._register(autorun(async (reader) => {\n            var _a;\n            /** @description InlineEditController.editorBlur */\n            if (!this._enabled.read(reader)) {\n                return;\n            }\n            editorBlurSingal.read(reader);\n            // This is a hidden setting very useful for debugging\n            if (this._configurationService.getValue('editor.experimentalInlineEdit.keepOnBlur') || editor.getOption(63 /* EditorOption.inlineEdit */).keepOnBlur) {\n                return;\n            }\n            (_a = this._currentRequestCts) === null || _a === void 0 ? void 0 : _a.dispose(true);\n            this._currentRequestCts = undefined;\n            await this.clear(false);\n        }));\n        //Invoke provider on focus\n        const editorFocusSignal = observableSignalFromEvent('InlineEditController.editorFocusSignal', editor.onDidFocusEditorText);\n        this._register(autorun(reader => {\n            /** @description InlineEditController.editorFocus */\n            if (!this._enabled.read(reader)) {\n                return;\n            }\n            editorFocusSignal.read(reader);\n            this.getInlineEdit(editor, true);\n        }));\n        //handle changes of font setting\n        const styleElement = this._register(createStyleSheet2());\n        this._register(autorun(reader => {\n            const fontFamily = this._fontFamily.read(reader);\n            styleElement.setStyle(fontFamily === '' || fontFamily === 'default' ? `` : `\n.monaco-editor .inline-edit-decoration,\n.monaco-editor .inline-edit-decoration-preview,\n.monaco-editor .inline-edit {\n\tfont-family: ${fontFamily};\n}`);\n        }));\n        this._register(new InlineEditHintsWidget(this.editor, this._currentEdit, this.instantiationService));\n    }\n    checkCursorPosition(position) {\n        var _a;\n        if (!this._currentEdit) {\n            this._isCursorAtInlineEditContext.set(false);\n            return;\n        }\n        const gt = (_a = this._currentEdit.get()) === null || _a === void 0 ? void 0 : _a.edit;\n        if (!gt) {\n            this._isCursorAtInlineEditContext.set(false);\n            return;\n        }\n        this._isCursorAtInlineEditContext.set(Range.containsPosition(gt.range, position));\n    }\n    validateInlineEdit(editor, edit) {\n        var _a, _b;\n        //Multiline inline replacing edit must replace whole lines\n        if (edit.text.includes('\\n') && edit.range.startLineNumber !== edit.range.endLineNumber && edit.range.startColumn !== edit.range.endColumn) {\n            const firstColumn = edit.range.startColumn;\n            if (firstColumn !== 1) {\n                return false;\n            }\n            const lastLine = edit.range.endLineNumber;\n            const lastColumn = edit.range.endColumn;\n            const lineLength = (_b = (_a = editor.getModel()) === null || _a === void 0 ? void 0 : _a.getLineLength(lastLine)) !== null && _b !== void 0 ? _b : 0;\n            if (lastColumn !== lineLength + 1) {\n                return false;\n            }\n        }\n        return true;\n    }\n    async fetchInlineEdit(editor, auto) {\n        if (this._currentRequestCts) {\n            this._currentRequestCts.dispose(true);\n        }\n        const model = editor.getModel();\n        if (!model) {\n            return;\n        }\n        const modelVersion = model.getVersionId();\n        const providers = this.languageFeaturesService.inlineEditProvider.all(model);\n        if (providers.length === 0) {\n            return;\n        }\n        const provider = providers[0];\n        this._currentRequestCts = new CancellationTokenSource();\n        const token = this._currentRequestCts.token;\n        const triggerKind = auto ? InlineEditTriggerKind.Automatic : InlineEditTriggerKind.Invoke;\n        const shouldDebounce = auto;\n        if (shouldDebounce) {\n            await wait(50, token);\n        }\n        if (token.isCancellationRequested || model.isDisposed() || model.getVersionId() !== modelVersion) {\n            return;\n        }\n        const edit = await provider.provideInlineEdit(model, { triggerKind }, token);\n        if (!edit) {\n            return;\n        }\n        if (token.isCancellationRequested || model.isDisposed() || model.getVersionId() !== modelVersion) {\n            return;\n        }\n        if (!this.validateInlineEdit(editor, edit)) {\n            return;\n        }\n        return edit;\n    }\n    async getInlineEdit(editor, auto) {\n        var _a;\n        this._isCursorAtInlineEditContext.set(false);\n        await this.clear();\n        const edit = await this.fetchInlineEdit(editor, auto);\n        if (!edit) {\n            return;\n        }\n        const line = edit.range.endLineNumber;\n        const column = edit.range.endColumn;\n        const textToDisplay = edit.text.endsWith('\\n') && !(edit.range.startLineNumber === edit.range.endLineNumber && edit.range.startColumn === edit.range.endColumn) ? edit.text.slice(0, -1) : edit.text;\n        const ghostText = new GhostText(line, [new GhostTextPart(column, textToDisplay, false)]);\n        const instance = this.instantiationService.createInstance(GhostTextWidget, this.editor, {\n            ghostText: constObservable(ghostText),\n            minReservedLineCount: constObservable(0),\n            targetTextModel: constObservable((_a = this.editor.getModel()) !== null && _a !== void 0 ? _a : undefined),\n            range: constObservable(edit.range),\n            backgroundColoring: this._backgroundColoring\n        });\n        this._currentEdit.set(new InlineEditWidget(instance, edit), undefined);\n    }\n    async trigger() {\n        await this.getInlineEdit(this.editor, false);\n    }\n    async jumpBack() {\n        if (!this._jumpBackPosition) {\n            return;\n        }\n        this.editor.setPosition(this._jumpBackPosition);\n        //if position is outside viewports, scroll to it\n        this.editor.revealPositionInCenterIfOutsideViewport(this._jumpBackPosition);\n    }\n    async accept() {\n        var _a;\n        this._isAccepting.set(true, undefined);\n        const data = (_a = this._currentEdit.get()) === null || _a === void 0 ? void 0 : _a.edit;\n        if (!data) {\n            return;\n        }\n        //It should only happen in case of last line suggestion\n        let text = data.text;\n        if (data.text.startsWith('\\n')) {\n            text = data.text.substring(1);\n        }\n        this.editor.pushUndoStop();\n        this.editor.executeEdits('acceptCurrent', [EditOperation.replace(Range.lift(data.range), text)]);\n        if (data.accepted) {\n            await this._commandService\n                .executeCommand(data.accepted.id, ...(data.accepted.arguments || []))\n                .then(undefined, onUnexpectedExternalError);\n        }\n        this.freeEdit(data);\n        transaction((tx) => {\n            this._currentEdit.set(undefined, tx);\n            this._isAccepting.set(false, tx);\n        });\n    }\n    jumpToCurrent() {\n        var _a, _b;\n        this._jumpBackPosition = (_a = this.editor.getSelection()) === null || _a === void 0 ? void 0 : _a.getStartPosition();\n        const data = (_b = this._currentEdit.get()) === null || _b === void 0 ? void 0 : _b.edit;\n        if (!data) {\n            return;\n        }\n        const position = Position.lift({ lineNumber: data.range.startLineNumber, column: data.range.startColumn });\n        this.editor.setPosition(position);\n        //if position is outside viewports, scroll to it\n        this.editor.revealPositionInCenterIfOutsideViewport(position);\n    }\n    async clear(sendRejection = true) {\n        var _a;\n        const edit = (_a = this._currentEdit.get()) === null || _a === void 0 ? void 0 : _a.edit;\n        if (edit && (edit === null || edit === void 0 ? void 0 : edit.rejected) && sendRejection) {\n            await this._commandService\n                .executeCommand(edit.rejected.id, ...(edit.rejected.arguments || []))\n                .then(undefined, onUnexpectedExternalError);\n        }\n        if (edit) {\n            this.freeEdit(edit);\n        }\n        this._currentEdit.set(undefined, undefined);\n    }\n    freeEdit(edit) {\n        const model = this.editor.getModel();\n        if (!model) {\n            return;\n        }\n        const providers = this.languageFeaturesService.inlineEditProvider.all(model);\n        if (providers.length === 0) {\n            return;\n        }\n        providers[0].freeInlineEdit(edit);\n    }\n    shouldShowHoverAt(range) {\n        const currentEdit = this._currentEdit.get();\n        if (!currentEdit) {\n            return false;\n        }\n        const edit = currentEdit.edit;\n        const model = currentEdit.widget.model;\n        const overReplaceRange = Range.containsPosition(edit.range, range.getStartPosition()) || Range.containsPosition(edit.range, range.getEndPosition());\n        if (overReplaceRange) {\n            return true;\n        }\n        const ghostText = model.ghostText.get();\n        if (ghostText) {\n            return ghostText.parts.some(p => range.containsPosition(new Position(ghostText.lineNumber, p.column)));\n        }\n        return false;\n    }\n    shouldShowHoverAtViewZone(viewZoneId) {\n        var _a, _b;\n        return (_b = (_a = this._currentEdit.get()) === null || _a === void 0 ? void 0 : _a.widget.ownsViewZone(viewZoneId)) !== null && _b !== void 0 ? _b : false;\n    }\n};\nInlineEditController.ID = 'editor.contrib.inlineEditController';\nInlineEditController.inlineEditVisibleKey = 'inlineEditVisible';\nInlineEditController.inlineEditVisibleContext = new RawContextKey(InlineEditController_1.inlineEditVisibleKey, false);\nInlineEditController.cursorAtInlineEditKey = 'cursorAtInlineEdit';\nInlineEditController.cursorAtInlineEditContext = new RawContextKey(InlineEditController_1.cursorAtInlineEditKey, false);\nInlineEditController = InlineEditController_1 = __decorate([\n    __param(1, IInstantiationService),\n    __param(2, IContextKeyService),\n    __param(3, ILanguageFeaturesService),\n    __param(4, ICommandService),\n    __param(5, IConfigurationService)\n], InlineEditController);\nexport { InlineEditController };\nfunction wait(ms, cancellationToken) {\n    return new Promise(resolve => {\n        let d = undefined;\n        const handle = setTimeout(() => {\n            if (d) {\n                d.dispose();\n            }\n            resolve();\n        }, ms);\n        if (cancellationToken) {\n            d = cancellationToken.onCancellationRequested(() => {\n                clearTimeout(handle);\n                if (d) {\n                    d.dispose();\n                }\n                resolve();\n            });\n        }\n    });\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineEdit/browser/inlineEditHintsWidget.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .inlineEditHints.withBorder {\n\tz-index: 39;\n\tcolor: var(--vscode-editorHoverWidget-foreground);\n\tbackground-color: var(--vscode-editorHoverWidget-background);\n\tborder: 1px solid var(--vscode-editorHoverWidget-border);\n}\n\n.monaco-editor .inlineEditHints a {\n\tcolor: var(--vscode-foreground);\n}\n\n.monaco-editor .inlineEditHints a:hover {\n\tcolor: var(--vscode-foreground);\n}\n\n.monaco-editor .inlineEditHints .keybinding {\n\tdisplay: flex;\n\tmargin-left: 4px;\n\topacity: 0.6;\n}\n\n.monaco-editor .inlineEditHints .keybinding .monaco-keybinding-key {\n\tfont-size: 8px;\n\tpadding: 2px 3px;\n}\n\n.monaco-editor .inlineEditStatusBarItemLabel {\n\tmargin-right: 2px;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineEdit/browser/inlineEditHintsWidget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar InlineEditHintsContentWidget_1;\nimport { h } from '../../../../base/browser/dom.js';\nimport { KeybindingLabel, unthemedKeybindingLabelOptions } from '../../../../base/browser/ui/keybindingLabel/keybindingLabel.js';\nimport { Separator } from '../../../../base/common/actions.js';\nimport { equals } from '../../../../base/common/arrays.js';\nimport { Disposable, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { autorun, autorunWithStore, derived, observableFromEvent } from '../../../../base/common/observable.js';\nimport { OS } from '../../../../base/common/platform.js';\nimport './inlineEditHintsWidget.css';\nimport { Position } from '../../../common/core/position.js';\nimport { MenuEntryActionViewItem, createAndFillInActionBarActions } from '../../../../platform/actions/browser/menuEntryActionViewItem.js';\nimport { WorkbenchToolBar } from '../../../../platform/actions/browser/toolbar.js';\nimport { IMenuService, MenuId, MenuItemAction } from '../../../../platform/actions/common/actions.js';\nimport { ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IContextMenuService } from '../../../../platform/contextview/browser/contextView.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { ITelemetryService } from '../../../../platform/telemetry/common/telemetry.js';\nlet InlineEditHintsWidget = class InlineEditHintsWidget extends Disposable {\n    constructor(editor, model, instantiationService) {\n        super();\n        this.editor = editor;\n        this.model = model;\n        this.instantiationService = instantiationService;\n        this.alwaysShowToolbar = observableFromEvent(this.editor.onDidChangeConfiguration, () => this.editor.getOption(63 /* EditorOption.inlineEdit */).showToolbar === 'always');\n        this.sessionPosition = undefined;\n        this.position = derived(this, reader => {\n            var _a, _b, _c;\n            const ghostText = (_a = this.model.read(reader)) === null || _a === void 0 ? void 0 : _a.widget.model.ghostText.read(reader);\n            if (!this.alwaysShowToolbar.read(reader) || !ghostText || ghostText.parts.length === 0) {\n                this.sessionPosition = undefined;\n                return null;\n            }\n            const firstColumn = ghostText.parts[0].column;\n            if (this.sessionPosition && this.sessionPosition.lineNumber !== ghostText.lineNumber) {\n                this.sessionPosition = undefined;\n            }\n            const position = new Position(ghostText.lineNumber, Math.min(firstColumn, (_c = (_b = this.sessionPosition) === null || _b === void 0 ? void 0 : _b.column) !== null && _c !== void 0 ? _c : Number.MAX_SAFE_INTEGER));\n            this.sessionPosition = position;\n            return position;\n        });\n        this._register(autorunWithStore((reader, store) => {\n            /** @description setup content widget */\n            const model = this.model.read(reader);\n            if (!model || !this.alwaysShowToolbar.read(reader)) {\n                return;\n            }\n            const contentWidget = store.add(this.instantiationService.createInstance(InlineEditHintsContentWidget, this.editor, true, this.position));\n            editor.addContentWidget(contentWidget);\n            store.add(toDisposable(() => editor.removeContentWidget(contentWidget)));\n        }));\n    }\n};\nInlineEditHintsWidget = __decorate([\n    __param(2, IInstantiationService)\n], InlineEditHintsWidget);\nexport { InlineEditHintsWidget };\nlet InlineEditHintsContentWidget = InlineEditHintsContentWidget_1 = class InlineEditHintsContentWidget extends Disposable {\n    constructor(editor, withBorder, _position, instantiationService, _contextKeyService, _menuService) {\n        super();\n        this.editor = editor;\n        this.withBorder = withBorder;\n        this._position = _position;\n        this._contextKeyService = _contextKeyService;\n        this._menuService = _menuService;\n        this.id = `InlineEditHintsContentWidget${InlineEditHintsContentWidget_1.id++}`;\n        this.allowEditorOverflow = true;\n        this.suppressMouseDown = false;\n        this.nodes = h('div.inlineEditHints', { className: this.withBorder ? '.withBorder' : '' }, [\n            h('div@toolBar'),\n        ]);\n        this.inlineCompletionsActionsMenus = this._register(this._menuService.createMenu(MenuId.InlineEditActions, this._contextKeyService));\n        this.toolBar = this._register(instantiationService.createInstance(CustomizedMenuWorkbenchToolBar, this.nodes.toolBar, this.editor, MenuId.InlineEditToolbar, {\n            menuOptions: { renderShortTitle: true },\n            toolbarOptions: { primaryGroup: g => g.startsWith('primary') },\n            actionViewItemProvider: (action, options) => {\n                if (action instanceof MenuItemAction) {\n                    return instantiationService.createInstance(StatusBarViewItem, action, undefined);\n                }\n                return undefined;\n            },\n            telemetrySource: 'InlineEditToolbar',\n        }));\n        this._register(this.toolBar.onDidChangeDropdownVisibility(e => {\n            InlineEditHintsContentWidget_1._dropDownVisible = e;\n        }));\n        this._register(autorun(reader => {\n            /** @description update position */\n            this._position.read(reader);\n            this.editor.layoutContentWidget(this);\n        }));\n        this._register(autorun(reader => {\n            /** @description actions menu */\n            const extraActions = [];\n            for (const [_, group] of this.inlineCompletionsActionsMenus.getActions()) {\n                for (const action of group) {\n                    if (action instanceof MenuItemAction) {\n                        extraActions.push(action);\n                    }\n                }\n            }\n            if (extraActions.length > 0) {\n                extraActions.unshift(new Separator());\n            }\n            this.toolBar.setAdditionalSecondaryActions(extraActions);\n        }));\n    }\n    getId() { return this.id; }\n    getDomNode() {\n        return this.nodes.root;\n    }\n    getPosition() {\n        return {\n            position: this._position.get(),\n            preference: [1 /* ContentWidgetPositionPreference.ABOVE */, 2 /* ContentWidgetPositionPreference.BELOW */],\n            positionAffinity: 3 /* PositionAffinity.LeftOfInjectedText */,\n        };\n    }\n};\nInlineEditHintsContentWidget._dropDownVisible = false;\nInlineEditHintsContentWidget.id = 0;\nInlineEditHintsContentWidget = InlineEditHintsContentWidget_1 = __decorate([\n    __param(3, IInstantiationService),\n    __param(4, IContextKeyService),\n    __param(5, IMenuService)\n], InlineEditHintsContentWidget);\nexport { InlineEditHintsContentWidget };\nclass StatusBarViewItem extends MenuEntryActionViewItem {\n    updateLabel() {\n        const kb = this._keybindingService.lookupKeybinding(this._action.id, this._contextKeyService);\n        if (!kb) {\n            return super.updateLabel();\n        }\n        if (this.label) {\n            const div = h('div.keybinding').root;\n            const k = this._register(new KeybindingLabel(div, OS, { disableTitle: true, ...unthemedKeybindingLabelOptions }));\n            k.set(kb);\n            this.label.textContent = this._action.label;\n            this.label.appendChild(div);\n            this.label.classList.add('inlineEditStatusBarItemLabel');\n        }\n    }\n    updateTooltip() {\n        // NOOP, disable tooltip\n    }\n}\nlet CustomizedMenuWorkbenchToolBar = class CustomizedMenuWorkbenchToolBar extends WorkbenchToolBar {\n    constructor(container, editor, menuId, options2, menuService, contextKeyService, contextMenuService, keybindingService, commandService, telemetryService) {\n        super(container, { resetMenu: menuId, ...options2 }, menuService, contextKeyService, contextMenuService, keybindingService, commandService, telemetryService);\n        this.editor = editor;\n        this.menuId = menuId;\n        this.options2 = options2;\n        this.menuService = menuService;\n        this.contextKeyService = contextKeyService;\n        this.menu = this._store.add(this.menuService.createMenu(this.menuId, this.contextKeyService, { emitEventsForSubmenuChanges: true }));\n        this.additionalActions = [];\n        this.prependedPrimaryActions = [];\n        this._store.add(this.menu.onDidChange(() => this.updateToolbar()));\n        this._store.add(this.editor.onDidChangeCursorPosition(() => this.updateToolbar()));\n        this.updateToolbar();\n    }\n    updateToolbar() {\n        var _a, _b, _c, _d, _e, _f, _g;\n        const primary = [];\n        const secondary = [];\n        createAndFillInActionBarActions(this.menu, (_a = this.options2) === null || _a === void 0 ? void 0 : _a.menuOptions, { primary, secondary }, (_c = (_b = this.options2) === null || _b === void 0 ? void 0 : _b.toolbarOptions) === null || _c === void 0 ? void 0 : _c.primaryGroup, (_e = (_d = this.options2) === null || _d === void 0 ? void 0 : _d.toolbarOptions) === null || _e === void 0 ? void 0 : _e.shouldInlineSubmenu, (_g = (_f = this.options2) === null || _f === void 0 ? void 0 : _f.toolbarOptions) === null || _g === void 0 ? void 0 : _g.useSeparatorsInPrimaryActions);\n        secondary.push(...this.additionalActions);\n        primary.unshift(...this.prependedPrimaryActions);\n        this.setActions(primary, secondary);\n    }\n    setAdditionalSecondaryActions(actions) {\n        if (equals(this.additionalActions, actions, (a, b) => a === b)) {\n            return;\n        }\n        this.additionalActions = actions;\n        this.updateToolbar();\n    }\n};\nCustomizedMenuWorkbenchToolBar = __decorate([\n    __param(4, IMenuService),\n    __param(5, IContextKeyService),\n    __param(6, IContextMenuService),\n    __param(7, IKeybindingService),\n    __param(8, ICommandService),\n    __param(9, ITelemetryService)\n], CustomizedMenuWorkbenchToolBar);\nexport { CustomizedMenuWorkbenchToolBar };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineProgress/browser/inlineProgress.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineProgress/browser/inlineProgress.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport * as dom from '../../../../base/browser/dom.js';\nimport { disposableTimeout } from '../../../../base/common/async.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { Disposable, MutableDisposable } from '../../../../base/common/lifecycle.js';\nimport { noBreakWhitespace } from '../../../../base/common/strings.js';\nimport { ThemeIcon } from '../../../../base/common/themables.js';\nimport './inlineProgressWidget.css';\nimport { Range } from '../../../common/core/range.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nconst inlineProgressDecoration = ModelDecorationOptions.register({\n    description: 'inline-progress-widget',\n    stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n    showIfCollapsed: true,\n    after: {\n        content: noBreakWhitespace,\n        inlineClassName: 'inline-editor-progress-decoration',\n        inlineClassNameAffectsLetterSpacing: true,\n    }\n});\nclass InlineProgressWidget extends Disposable {\n    constructor(typeId, editor, range, title, delegate) {\n        super();\n        this.typeId = typeId;\n        this.editor = editor;\n        this.range = range;\n        this.delegate = delegate;\n        this.allowEditorOverflow = false;\n        this.suppressMouseDown = true;\n        this.create(title);\n        this.editor.addContentWidget(this);\n        this.editor.layoutContentWidget(this);\n    }\n    create(title) {\n        this.domNode = dom.$('.inline-progress-widget');\n        this.domNode.role = 'button';\n        this.domNode.title = title;\n        const iconElement = dom.$('span.icon');\n        this.domNode.append(iconElement);\n        iconElement.classList.add(...ThemeIcon.asClassNameArray(Codicon.loading), 'codicon-modifier-spin');\n        const updateSize = () => {\n            const lineHeight = this.editor.getOption(67 /* EditorOption.lineHeight */);\n            this.domNode.style.height = `${lineHeight}px`;\n            this.domNode.style.width = `${Math.ceil(0.8 * lineHeight)}px`;\n        };\n        updateSize();\n        this._register(this.editor.onDidChangeConfiguration(c => {\n            if (c.hasChanged(52 /* EditorOption.fontSize */) || c.hasChanged(67 /* EditorOption.lineHeight */)) {\n                updateSize();\n            }\n        }));\n        this._register(dom.addDisposableListener(this.domNode, dom.EventType.CLICK, e => {\n            this.delegate.cancel();\n        }));\n    }\n    getId() {\n        return InlineProgressWidget.baseId + '.' + this.typeId;\n    }\n    getDomNode() {\n        return this.domNode;\n    }\n    getPosition() {\n        return {\n            position: { lineNumber: this.range.startLineNumber, column: this.range.startColumn },\n            preference: [0 /* ContentWidgetPositionPreference.EXACT */]\n        };\n    }\n    dispose() {\n        super.dispose();\n        this.editor.removeContentWidget(this);\n    }\n}\nInlineProgressWidget.baseId = 'editor.widget.inlineProgressWidget';\nlet InlineProgressManager = class InlineProgressManager extends Disposable {\n    constructor(id, _editor, _instantiationService) {\n        super();\n        this.id = id;\n        this._editor = _editor;\n        this._instantiationService = _instantiationService;\n        /** Delay before showing the progress widget */\n        this._showDelay = 500; // ms\n        this._showPromise = this._register(new MutableDisposable());\n        this._currentWidget = new MutableDisposable();\n        this._operationIdPool = 0;\n        this._currentDecorations = _editor.createDecorationsCollection();\n    }\n    async showWhile(position, title, promise) {\n        const operationId = this._operationIdPool++;\n        this._currentOperation = operationId;\n        this.clear();\n        this._showPromise.value = disposableTimeout(() => {\n            const range = Range.fromPositions(position);\n            const decorationIds = this._currentDecorations.set([{\n                    range: range,\n                    options: inlineProgressDecoration,\n                }]);\n            if (decorationIds.length > 0) {\n                this._currentWidget.value = this._instantiationService.createInstance(InlineProgressWidget, this.id, this._editor, range, title, promise);\n            }\n        }, this._showDelay);\n        try {\n            return await promise;\n        }\n        finally {\n            if (this._currentOperation === operationId) {\n                this.clear();\n                this._currentOperation = undefined;\n            }\n        }\n    }\n    clear() {\n        this._showPromise.clear();\n        this._currentDecorations.clear();\n        this._currentWidget.clear();\n    }\n};\nInlineProgressManager = __decorate([\n    __param(2, IInstantiationService)\n], InlineProgressManager);\nexport { InlineProgressManager };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/inlineProgress/browser/inlineProgressWidget.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.inline-editor-progress-decoration {\n\tdisplay: inline-block;\n\twidth: 1em;\n\theight: 1em;\n}\n\n.inline-progress-widget  {\n\tdisplay: flex !important;\n\tjustify-content: center;\n\talign-items: center;\n}\n\n.inline-progress-widget .icon {\n\tfont-size: 80% !important;\n}\n\n.inline-progress-widget:hover .icon {\n\tfont-size: 90% !important;\n\tanimation: none;\n}\n\n.inline-progress-widget:hover .icon::before {\n\tcontent: var(--vscode-icon-x-content);\n\tfont-family: var(--vscode-icon-x-font-family);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/lineSelection/browser/lineSelection.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/lineSelection/browser/lineSelection.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { EditorAction, registerEditorAction } from '../../../browser/editorExtensions.js';\nimport { CursorMoveCommands } from '../../../common/cursor/cursorMoveCommands.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport * as nls from '../../../../nls.js';\nexport class ExpandLineSelectionAction extends EditorAction {\n    constructor() {\n        super({\n            id: 'expandLineSelection',\n            label: nls.localize('expandLineSelection', \"Expand Line Selection\"),\n            alias: 'Expand Line Selection',\n            precondition: undefined,\n            kbOpts: {\n                weight: 0 /* KeybindingWeight.EditorCore */,\n                kbExpr: EditorContextKeys.textInputFocus,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 42 /* KeyCode.KeyL */\n            },\n        });\n    }\n    run(_accessor, editor, args) {\n        args = args || {};\n        if (!editor.hasModel()) {\n            return;\n        }\n        const viewModel = editor._getViewModel();\n        viewModel.model.pushStackElement();\n        viewModel.setCursorStates(args.source, 3 /* CursorChangeReason.Explicit */, CursorMoveCommands.expandLineSelection(viewModel, viewModel.getCursorStates()));\n        viewModel.revealAllCursors(args.source, true);\n    }\n}\nregisterEditorAction(ExpandLineSelectionAction);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/linesOperations/browser/copyLinesCommand.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nexport class CopyLinesCommand {\n    constructor(selection, isCopyingDown, noop) {\n        this._selection = selection;\n        this._isCopyingDown = isCopyingDown;\n        this._noop = noop || false;\n        this._selectionDirection = 0 /* SelectionDirection.LTR */;\n        this._selectionId = null;\n        this._startLineNumberDelta = 0;\n        this._endLineNumberDelta = 0;\n    }\n    getEditOperations(model, builder) {\n        let s = this._selection;\n        this._startLineNumberDelta = 0;\n        this._endLineNumberDelta = 0;\n        if (s.startLineNumber < s.endLineNumber && s.endColumn === 1) {\n            this._endLineNumberDelta = 1;\n            s = s.setEndPosition(s.endLineNumber - 1, model.getLineMaxColumn(s.endLineNumber - 1));\n        }\n        const sourceLines = [];\n        for (let i = s.startLineNumber; i <= s.endLineNumber; i++) {\n            sourceLines.push(model.getLineContent(i));\n        }\n        const sourceText = sourceLines.join('\\n');\n        if (sourceText === '') {\n            // Duplicating empty line\n            if (this._isCopyingDown) {\n                this._startLineNumberDelta++;\n                this._endLineNumberDelta++;\n            }\n        }\n        if (this._noop) {\n            builder.addEditOperation(new Range(s.endLineNumber, model.getLineMaxColumn(s.endLineNumber), s.endLineNumber + 1, 1), s.endLineNumber === model.getLineCount() ? '' : '\\n');\n        }\n        else {\n            if (!this._isCopyingDown) {\n                builder.addEditOperation(new Range(s.endLineNumber, model.getLineMaxColumn(s.endLineNumber), s.endLineNumber, model.getLineMaxColumn(s.endLineNumber)), '\\n' + sourceText);\n            }\n            else {\n                builder.addEditOperation(new Range(s.startLineNumber, 1, s.startLineNumber, 1), sourceText + '\\n');\n            }\n        }\n        this._selectionId = builder.trackSelection(s);\n        this._selectionDirection = this._selection.getDirection();\n    }\n    computeCursorState(model, helper) {\n        let result = helper.getTrackedSelection(this._selectionId);\n        if (this._startLineNumberDelta !== 0 || this._endLineNumberDelta !== 0) {\n            let startLineNumber = result.startLineNumber;\n            let startColumn = result.startColumn;\n            let endLineNumber = result.endLineNumber;\n            let endColumn = result.endColumn;\n            if (this._startLineNumberDelta !== 0) {\n                startLineNumber = startLineNumber + this._startLineNumberDelta;\n                startColumn = 1;\n            }\n            if (this._endLineNumberDelta !== 0) {\n                endLineNumber = endLineNumber + this._endLineNumberDelta;\n                endColumn = 1;\n            }\n            result = Selection.createWithDirection(startLineNumber, startColumn, endLineNumber, endColumn, this._selectionDirection);\n        }\n        return result;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/linesOperations/browser/linesOperations.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/linesOperations/browser/linesOperations.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { KeyChord } from '../../../../base/common/keyCodes.js';\nimport { CoreEditingCommands } from '../../../browser/coreCommands.js';\nimport { EditorAction, registerEditorAction } from '../../../browser/editorExtensions.js';\nimport { ReplaceCommand, ReplaceCommandThatPreservesSelection, ReplaceCommandThatSelectsText } from '../../../common/commands/replaceCommand.js';\nimport { TrimTrailingWhitespaceCommand } from '../../../common/commands/trimTrailingWhitespaceCommand.js';\nimport { TypeOperations } from '../../../common/cursor/cursorTypeOperations.js';\nimport { EditOperation } from '../../../common/core/editOperation.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { CopyLinesCommand } from './copyLinesCommand.js';\nimport { MoveLinesCommand } from './moveLinesCommand.js';\nimport { SortLinesCommand } from './sortLinesCommand.js';\nimport * as nls from '../../../../nls.js';\nimport { MenuId } from '../../../../platform/actions/common/actions.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\n// copy lines\nclass AbstractCopyLinesAction extends EditorAction {\n    constructor(down, opts) {\n        super(opts);\n        this.down = down;\n    }\n    run(_accessor, editor) {\n        if (!editor.hasModel()) {\n            return;\n        }\n        const selections = editor.getSelections().map((selection, index) => ({ selection, index, ignore: false }));\n        selections.sort((a, b) => Range.compareRangesUsingStarts(a.selection, b.selection));\n        // Remove selections that would result in copying the same line\n        let prev = selections[0];\n        for (let i = 1; i < selections.length; i++) {\n            const curr = selections[i];\n            if (prev.selection.endLineNumber === curr.selection.startLineNumber) {\n                // these two selections would copy the same line\n                if (prev.index < curr.index) {\n                    // prev wins\n                    curr.ignore = true;\n                }\n                else {\n                    // curr wins\n                    prev.ignore = true;\n                    prev = curr;\n                }\n            }\n        }\n        const commands = [];\n        for (const selection of selections) {\n            commands.push(new CopyLinesCommand(selection.selection, this.down, selection.ignore));\n        }\n        editor.pushUndoStop();\n        editor.executeCommands(this.id, commands);\n        editor.pushUndoStop();\n    }\n}\nclass CopyLinesUpAction extends AbstractCopyLinesAction {\n    constructor() {\n        super(false, {\n            id: 'editor.action.copyLinesUpAction',\n            label: nls.localize('lines.copyUp', \"Copy Line Up\"),\n            alias: 'Copy Line Up',\n            precondition: EditorContextKeys.writable,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: 512 /* KeyMod.Alt */ | 1024 /* KeyMod.Shift */ | 16 /* KeyCode.UpArrow */,\n                linux: { primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 1024 /* KeyMod.Shift */ | 16 /* KeyCode.UpArrow */ },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            menuOpts: {\n                menuId: MenuId.MenubarSelectionMenu,\n                group: '2_line',\n                title: nls.localize({ key: 'miCopyLinesUp', comment: ['&& denotes a mnemonic'] }, \"&&Copy Line Up\"),\n                order: 1\n            }\n        });\n    }\n}\nclass CopyLinesDownAction extends AbstractCopyLinesAction {\n    constructor() {\n        super(true, {\n            id: 'editor.action.copyLinesDownAction',\n            label: nls.localize('lines.copyDown', \"Copy Line Down\"),\n            alias: 'Copy Line Down',\n            precondition: EditorContextKeys.writable,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: 512 /* KeyMod.Alt */ | 1024 /* KeyMod.Shift */ | 18 /* KeyCode.DownArrow */,\n                linux: { primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 1024 /* KeyMod.Shift */ | 18 /* KeyCode.DownArrow */ },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            menuOpts: {\n                menuId: MenuId.MenubarSelectionMenu,\n                group: '2_line',\n                title: nls.localize({ key: 'miCopyLinesDown', comment: ['&& denotes a mnemonic'] }, \"Co&&py Line Down\"),\n                order: 2\n            }\n        });\n    }\n}\nexport class DuplicateSelectionAction extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.duplicateSelection',\n            label: nls.localize('duplicateSelection', \"Duplicate Selection\"),\n            alias: 'Duplicate Selection',\n            precondition: EditorContextKeys.writable,\n            menuOpts: {\n                menuId: MenuId.MenubarSelectionMenu,\n                group: '2_line',\n                title: nls.localize({ key: 'miDuplicateSelection', comment: ['&& denotes a mnemonic'] }, \"&&Duplicate Selection\"),\n                order: 5\n            }\n        });\n    }\n    run(accessor, editor, args) {\n        if (!editor.hasModel()) {\n            return;\n        }\n        const commands = [];\n        const selections = editor.getSelections();\n        const model = editor.getModel();\n        for (const selection of selections) {\n            if (selection.isEmpty()) {\n                commands.push(new CopyLinesCommand(selection, true));\n            }\n            else {\n                const insertSelection = new Selection(selection.endLineNumber, selection.endColumn, selection.endLineNumber, selection.endColumn);\n                commands.push(new ReplaceCommandThatSelectsText(insertSelection, model.getValueInRange(selection)));\n            }\n        }\n        editor.pushUndoStop();\n        editor.executeCommands(this.id, commands);\n        editor.pushUndoStop();\n    }\n}\n// move lines\nclass AbstractMoveLinesAction extends EditorAction {\n    constructor(down, opts) {\n        super(opts);\n        this.down = down;\n    }\n    run(accessor, editor) {\n        const languageConfigurationService = accessor.get(ILanguageConfigurationService);\n        const commands = [];\n        const selections = editor.getSelections() || [];\n        const autoIndent = editor.getOption(12 /* EditorOption.autoIndent */);\n        for (const selection of selections) {\n            commands.push(new MoveLinesCommand(selection, this.down, autoIndent, languageConfigurationService));\n        }\n        editor.pushUndoStop();\n        editor.executeCommands(this.id, commands);\n        editor.pushUndoStop();\n    }\n}\nclass MoveLinesUpAction extends AbstractMoveLinesAction {\n    constructor() {\n        super(false, {\n            id: 'editor.action.moveLinesUpAction',\n            label: nls.localize('lines.moveUp', \"Move Line Up\"),\n            alias: 'Move Line Up',\n            precondition: EditorContextKeys.writable,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: 512 /* KeyMod.Alt */ | 16 /* KeyCode.UpArrow */,\n                linux: { primary: 512 /* KeyMod.Alt */ | 16 /* KeyCode.UpArrow */ },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            menuOpts: {\n                menuId: MenuId.MenubarSelectionMenu,\n                group: '2_line',\n                title: nls.localize({ key: 'miMoveLinesUp', comment: ['&& denotes a mnemonic'] }, \"Mo&&ve Line Up\"),\n                order: 3\n            }\n        });\n    }\n}\nclass MoveLinesDownAction extends AbstractMoveLinesAction {\n    constructor() {\n        super(true, {\n            id: 'editor.action.moveLinesDownAction',\n            label: nls.localize('lines.moveDown', \"Move Line Down\"),\n            alias: 'Move Line Down',\n            precondition: EditorContextKeys.writable,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: 512 /* KeyMod.Alt */ | 18 /* KeyCode.DownArrow */,\n                linux: { primary: 512 /* KeyMod.Alt */ | 18 /* KeyCode.DownArrow */ },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            menuOpts: {\n                menuId: MenuId.MenubarSelectionMenu,\n                group: '2_line',\n                title: nls.localize({ key: 'miMoveLinesDown', comment: ['&& denotes a mnemonic'] }, \"Move &&Line Down\"),\n                order: 4\n            }\n        });\n    }\n}\nexport class AbstractSortLinesAction extends EditorAction {\n    constructor(descending, opts) {\n        super(opts);\n        this.descending = descending;\n    }\n    run(_accessor, editor) {\n        if (!editor.hasModel()) {\n            return;\n        }\n        const model = editor.getModel();\n        let selections = editor.getSelections();\n        if (selections.length === 1 && selections[0].isEmpty()) {\n            // Apply to whole document.\n            selections = [new Selection(1, 1, model.getLineCount(), model.getLineMaxColumn(model.getLineCount()))];\n        }\n        for (const selection of selections) {\n            if (!SortLinesCommand.canRun(editor.getModel(), selection, this.descending)) {\n                return;\n            }\n        }\n        const commands = [];\n        for (let i = 0, len = selections.length; i < len; i++) {\n            commands[i] = new SortLinesCommand(selections[i], this.descending);\n        }\n        editor.pushUndoStop();\n        editor.executeCommands(this.id, commands);\n        editor.pushUndoStop();\n    }\n}\nexport class SortLinesAscendingAction extends AbstractSortLinesAction {\n    constructor() {\n        super(false, {\n            id: 'editor.action.sortLinesAscending',\n            label: nls.localize('lines.sortAscending', \"Sort Lines Ascending\"),\n            alias: 'Sort Lines Ascending',\n            precondition: EditorContextKeys.writable\n        });\n    }\n}\nexport class SortLinesDescendingAction extends AbstractSortLinesAction {\n    constructor() {\n        super(true, {\n            id: 'editor.action.sortLinesDescending',\n            label: nls.localize('lines.sortDescending', \"Sort Lines Descending\"),\n            alias: 'Sort Lines Descending',\n            precondition: EditorContextKeys.writable\n        });\n    }\n}\nexport class DeleteDuplicateLinesAction extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.removeDuplicateLines',\n            label: nls.localize('lines.deleteDuplicates', \"Delete Duplicate Lines\"),\n            alias: 'Delete Duplicate Lines',\n            precondition: EditorContextKeys.writable\n        });\n    }\n    run(_accessor, editor) {\n        if (!editor.hasModel()) {\n            return;\n        }\n        const model = editor.getModel();\n        if (model.getLineCount() === 1 && model.getLineMaxColumn(1) === 1) {\n            return;\n        }\n        const edits = [];\n        const endCursorState = [];\n        let linesDeleted = 0;\n        let updateSelection = true;\n        let selections = editor.getSelections();\n        if (selections.length === 1 && selections[0].isEmpty()) {\n            // Apply to whole document.\n            selections = [new Selection(1, 1, model.getLineCount(), model.getLineMaxColumn(model.getLineCount()))];\n            updateSelection = false;\n        }\n        for (const selection of selections) {\n            const uniqueLines = new Set();\n            const lines = [];\n            for (let i = selection.startLineNumber; i <= selection.endLineNumber; i++) {\n                const line = model.getLineContent(i);\n                if (uniqueLines.has(line)) {\n                    continue;\n                }\n                lines.push(line);\n                uniqueLines.add(line);\n            }\n            const selectionToReplace = new Selection(selection.startLineNumber, 1, selection.endLineNumber, model.getLineMaxColumn(selection.endLineNumber));\n            const adjustedSelectionStart = selection.startLineNumber - linesDeleted;\n            const finalSelection = new Selection(adjustedSelectionStart, 1, adjustedSelectionStart + lines.length - 1, lines[lines.length - 1].length);\n            edits.push(EditOperation.replace(selectionToReplace, lines.join('\\n')));\n            endCursorState.push(finalSelection);\n            linesDeleted += (selection.endLineNumber - selection.startLineNumber + 1) - lines.length;\n        }\n        editor.pushUndoStop();\n        editor.executeEdits(this.id, edits, updateSelection ? endCursorState : undefined);\n        editor.pushUndoStop();\n    }\n}\nexport class TrimTrailingWhitespaceAction extends EditorAction {\n    constructor() {\n        super({\n            id: TrimTrailingWhitespaceAction.ID,\n            label: nls.localize('lines.trimTrailingWhitespace', \"Trim Trailing Whitespace\"),\n            alias: 'Trim Trailing Whitespace',\n            precondition: EditorContextKeys.writable,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 54 /* KeyCode.KeyX */),\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    run(_accessor, editor, args) {\n        let cursors = [];\n        if (args.reason === 'auto-save') {\n            // See https://github.com/editorconfig/editorconfig-vscode/issues/47\n            // It is very convenient for the editor config extension to invoke this action.\n            // So, if we get a reason:'auto-save' passed in, let's preserve cursor positions.\n            cursors = (editor.getSelections() || []).map(s => new Position(s.positionLineNumber, s.positionColumn));\n        }\n        const selection = editor.getSelection();\n        if (selection === null) {\n            return;\n        }\n        const config = _accessor.get(IConfigurationService);\n        const model = editor.getModel();\n        const trimInRegexAndStrings = config.getValue('files.trimTrailingWhitespaceInRegexAndStrings', { overrideIdentifier: model === null || model === void 0 ? void 0 : model.getLanguageId(), resource: model === null || model === void 0 ? void 0 : model.uri });\n        const command = new TrimTrailingWhitespaceCommand(selection, cursors, trimInRegexAndStrings);\n        editor.pushUndoStop();\n        editor.executeCommands(this.id, [command]);\n        editor.pushUndoStop();\n    }\n}\nTrimTrailingWhitespaceAction.ID = 'editor.action.trimTrailingWhitespace';\nexport class DeleteLinesAction extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.deleteLines',\n            label: nls.localize('lines.delete', \"Delete Line\"),\n            alias: 'Delete Line',\n            precondition: EditorContextKeys.writable,\n            kbOpts: {\n                kbExpr: EditorContextKeys.textInputFocus,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 41 /* KeyCode.KeyK */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    run(_accessor, editor) {\n        if (!editor.hasModel()) {\n            return;\n        }\n        const ops = this._getLinesToRemove(editor);\n        const model = editor.getModel();\n        if (model.getLineCount() === 1 && model.getLineMaxColumn(1) === 1) {\n            // Model is empty\n            return;\n        }\n        let linesDeleted = 0;\n        const edits = [];\n        const cursorState = [];\n        for (let i = 0, len = ops.length; i < len; i++) {\n            const op = ops[i];\n            let startLineNumber = op.startLineNumber;\n            let endLineNumber = op.endLineNumber;\n            let startColumn = 1;\n            let endColumn = model.getLineMaxColumn(endLineNumber);\n            if (endLineNumber < model.getLineCount()) {\n                endLineNumber += 1;\n                endColumn = 1;\n            }\n            else if (startLineNumber > 1) {\n                startLineNumber -= 1;\n                startColumn = model.getLineMaxColumn(startLineNumber);\n            }\n            edits.push(EditOperation.replace(new Selection(startLineNumber, startColumn, endLineNumber, endColumn), ''));\n            cursorState.push(new Selection(startLineNumber - linesDeleted, op.positionColumn, startLineNumber - linesDeleted, op.positionColumn));\n            linesDeleted += (op.endLineNumber - op.startLineNumber + 1);\n        }\n        editor.pushUndoStop();\n        editor.executeEdits(this.id, edits, cursorState);\n        editor.pushUndoStop();\n    }\n    _getLinesToRemove(editor) {\n        // Construct delete operations\n        const operations = editor.getSelections().map((s) => {\n            let endLineNumber = s.endLineNumber;\n            if (s.startLineNumber < s.endLineNumber && s.endColumn === 1) {\n                endLineNumber -= 1;\n            }\n            return {\n                startLineNumber: s.startLineNumber,\n                selectionStartColumn: s.selectionStartColumn,\n                endLineNumber: endLineNumber,\n                positionColumn: s.positionColumn\n            };\n        });\n        // Sort delete operations\n        operations.sort((a, b) => {\n            if (a.startLineNumber === b.startLineNumber) {\n                return a.endLineNumber - b.endLineNumber;\n            }\n            return a.startLineNumber - b.startLineNumber;\n        });\n        // Merge delete operations which are adjacent or overlapping\n        const mergedOperations = [];\n        let previousOperation = operations[0];\n        for (let i = 1; i < operations.length; i++) {\n            if (previousOperation.endLineNumber + 1 >= operations[i].startLineNumber) {\n                // Merge current operations into the previous one\n                previousOperation.endLineNumber = operations[i].endLineNumber;\n            }\n            else {\n                // Push previous operation\n                mergedOperations.push(previousOperation);\n                previousOperation = operations[i];\n            }\n        }\n        // Push the last operation\n        mergedOperations.push(previousOperation);\n        return mergedOperations;\n    }\n}\nexport class IndentLinesAction extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.indentLines',\n            label: nls.localize('lines.indent', \"Indent Line\"),\n            alias: 'Indent Line',\n            precondition: EditorContextKeys.writable,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 94 /* KeyCode.BracketRight */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    run(_accessor, editor) {\n        const viewModel = editor._getViewModel();\n        if (!viewModel) {\n            return;\n        }\n        editor.pushUndoStop();\n        editor.executeCommands(this.id, TypeOperations.indent(viewModel.cursorConfig, editor.getModel(), editor.getSelections()));\n        editor.pushUndoStop();\n    }\n}\nclass OutdentLinesAction extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.outdentLines',\n            label: nls.localize('lines.outdent', \"Outdent Line\"),\n            alias: 'Outdent Line',\n            precondition: EditorContextKeys.writable,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 92 /* KeyCode.BracketLeft */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    run(_accessor, editor) {\n        CoreEditingCommands.Outdent.runEditorCommand(_accessor, editor, null);\n    }\n}\nexport class InsertLineBeforeAction extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.insertLineBefore',\n            label: nls.localize('lines.insertBefore', \"Insert Line Above\"),\n            alias: 'Insert Line Above',\n            precondition: EditorContextKeys.writable,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 3 /* KeyCode.Enter */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    run(_accessor, editor) {\n        const viewModel = editor._getViewModel();\n        if (!viewModel) {\n            return;\n        }\n        editor.pushUndoStop();\n        editor.executeCommands(this.id, TypeOperations.lineInsertBefore(viewModel.cursorConfig, editor.getModel(), editor.getSelections()));\n    }\n}\nexport class InsertLineAfterAction extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.insertLineAfter',\n            label: nls.localize('lines.insertAfter', \"Insert Line Below\"),\n            alias: 'Insert Line Below',\n            precondition: EditorContextKeys.writable,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 3 /* KeyCode.Enter */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    run(_accessor, editor) {\n        const viewModel = editor._getViewModel();\n        if (!viewModel) {\n            return;\n        }\n        editor.pushUndoStop();\n        editor.executeCommands(this.id, TypeOperations.lineInsertAfter(viewModel.cursorConfig, editor.getModel(), editor.getSelections()));\n    }\n}\nexport class AbstractDeleteAllToBoundaryAction extends EditorAction {\n    run(_accessor, editor) {\n        if (!editor.hasModel()) {\n            return;\n        }\n        const primaryCursor = editor.getSelection();\n        const rangesToDelete = this._getRangesToDelete(editor);\n        // merge overlapping selections\n        const effectiveRanges = [];\n        for (let i = 0, count = rangesToDelete.length - 1; i < count; i++) {\n            const range = rangesToDelete[i];\n            const nextRange = rangesToDelete[i + 1];\n            if (Range.intersectRanges(range, nextRange) === null) {\n                effectiveRanges.push(range);\n            }\n            else {\n                rangesToDelete[i + 1] = Range.plusRange(range, nextRange);\n            }\n        }\n        effectiveRanges.push(rangesToDelete[rangesToDelete.length - 1]);\n        const endCursorState = this._getEndCursorState(primaryCursor, effectiveRanges);\n        const edits = effectiveRanges.map(range => {\n            return EditOperation.replace(range, '');\n        });\n        editor.pushUndoStop();\n        editor.executeEdits(this.id, edits, endCursorState);\n        editor.pushUndoStop();\n    }\n}\nexport class DeleteAllLeftAction extends AbstractDeleteAllToBoundaryAction {\n    constructor() {\n        super({\n            id: 'deleteAllLeft',\n            label: nls.localize('lines.deleteAllLeft', \"Delete All Left\"),\n            alias: 'Delete All Left',\n            precondition: EditorContextKeys.writable,\n            kbOpts: {\n                kbExpr: EditorContextKeys.textInputFocus,\n                primary: 0,\n                mac: { primary: 2048 /* KeyMod.CtrlCmd */ | 1 /* KeyCode.Backspace */ },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    _getEndCursorState(primaryCursor, rangesToDelete) {\n        let endPrimaryCursor = null;\n        const endCursorState = [];\n        let deletedLines = 0;\n        rangesToDelete.forEach(range => {\n            let endCursor;\n            if (range.endColumn === 1 && deletedLines > 0) {\n                const newStartLine = range.startLineNumber - deletedLines;\n                endCursor = new Selection(newStartLine, range.startColumn, newStartLine, range.startColumn);\n            }\n            else {\n                endCursor = new Selection(range.startLineNumber, range.startColumn, range.startLineNumber, range.startColumn);\n            }\n            deletedLines += range.endLineNumber - range.startLineNumber;\n            if (range.intersectRanges(primaryCursor)) {\n                endPrimaryCursor = endCursor;\n            }\n            else {\n                endCursorState.push(endCursor);\n            }\n        });\n        if (endPrimaryCursor) {\n            endCursorState.unshift(endPrimaryCursor);\n        }\n        return endCursorState;\n    }\n    _getRangesToDelete(editor) {\n        const selections = editor.getSelections();\n        if (selections === null) {\n            return [];\n        }\n        let rangesToDelete = selections;\n        const model = editor.getModel();\n        if (model === null) {\n            return [];\n        }\n        rangesToDelete.sort(Range.compareRangesUsingStarts);\n        rangesToDelete = rangesToDelete.map(selection => {\n            if (selection.isEmpty()) {\n                if (selection.startColumn === 1) {\n                    const deleteFromLine = Math.max(1, selection.startLineNumber - 1);\n                    const deleteFromColumn = selection.startLineNumber === 1 ? 1 : model.getLineLength(deleteFromLine) + 1;\n                    return new Range(deleteFromLine, deleteFromColumn, selection.startLineNumber, 1);\n                }\n                else {\n                    return new Range(selection.startLineNumber, 1, selection.startLineNumber, selection.startColumn);\n                }\n            }\n            else {\n                return new Range(selection.startLineNumber, 1, selection.endLineNumber, selection.endColumn);\n            }\n        });\n        return rangesToDelete;\n    }\n}\nexport class DeleteAllRightAction extends AbstractDeleteAllToBoundaryAction {\n    constructor() {\n        super({\n            id: 'deleteAllRight',\n            label: nls.localize('lines.deleteAllRight', \"Delete All Right\"),\n            alias: 'Delete All Right',\n            precondition: EditorContextKeys.writable,\n            kbOpts: {\n                kbExpr: EditorContextKeys.textInputFocus,\n                primary: 0,\n                mac: { primary: 256 /* KeyMod.WinCtrl */ | 41 /* KeyCode.KeyK */, secondary: [2048 /* KeyMod.CtrlCmd */ | 20 /* KeyCode.Delete */] },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    _getEndCursorState(primaryCursor, rangesToDelete) {\n        let endPrimaryCursor = null;\n        const endCursorState = [];\n        for (let i = 0, len = rangesToDelete.length, offset = 0; i < len; i++) {\n            const range = rangesToDelete[i];\n            const endCursor = new Selection(range.startLineNumber - offset, range.startColumn, range.startLineNumber - offset, range.startColumn);\n            if (range.intersectRanges(primaryCursor)) {\n                endPrimaryCursor = endCursor;\n            }\n            else {\n                endCursorState.push(endCursor);\n            }\n        }\n        if (endPrimaryCursor) {\n            endCursorState.unshift(endPrimaryCursor);\n        }\n        return endCursorState;\n    }\n    _getRangesToDelete(editor) {\n        const model = editor.getModel();\n        if (model === null) {\n            return [];\n        }\n        const selections = editor.getSelections();\n        if (selections === null) {\n            return [];\n        }\n        const rangesToDelete = selections.map((sel) => {\n            if (sel.isEmpty()) {\n                const maxColumn = model.getLineMaxColumn(sel.startLineNumber);\n                if (sel.startColumn === maxColumn) {\n                    return new Range(sel.startLineNumber, sel.startColumn, sel.startLineNumber + 1, 1);\n                }\n                else {\n                    return new Range(sel.startLineNumber, sel.startColumn, sel.startLineNumber, maxColumn);\n                }\n            }\n            return sel;\n        });\n        rangesToDelete.sort(Range.compareRangesUsingStarts);\n        return rangesToDelete;\n    }\n}\nexport class JoinLinesAction extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.joinLines',\n            label: nls.localize('lines.joinLines', \"Join Lines\"),\n            alias: 'Join Lines',\n            precondition: EditorContextKeys.writable,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: 0,\n                mac: { primary: 256 /* KeyMod.WinCtrl */ | 40 /* KeyCode.KeyJ */ },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    run(_accessor, editor) {\n        const selections = editor.getSelections();\n        if (selections === null) {\n            return;\n        }\n        let primaryCursor = editor.getSelection();\n        if (primaryCursor === null) {\n            return;\n        }\n        selections.sort(Range.compareRangesUsingStarts);\n        const reducedSelections = [];\n        const lastSelection = selections.reduce((previousValue, currentValue) => {\n            if (previousValue.isEmpty()) {\n                if (previousValue.endLineNumber === currentValue.startLineNumber) {\n                    if (primaryCursor.equalsSelection(previousValue)) {\n                        primaryCursor = currentValue;\n                    }\n                    return currentValue;\n                }\n                if (currentValue.startLineNumber > previousValue.endLineNumber + 1) {\n                    reducedSelections.push(previousValue);\n                    return currentValue;\n                }\n                else {\n                    return new Selection(previousValue.startLineNumber, previousValue.startColumn, currentValue.endLineNumber, currentValue.endColumn);\n                }\n            }\n            else {\n                if (currentValue.startLineNumber > previousValue.endLineNumber) {\n                    reducedSelections.push(previousValue);\n                    return currentValue;\n                }\n                else {\n                    return new Selection(previousValue.startLineNumber, previousValue.startColumn, currentValue.endLineNumber, currentValue.endColumn);\n                }\n            }\n        });\n        reducedSelections.push(lastSelection);\n        const model = editor.getModel();\n        if (model === null) {\n            return;\n        }\n        const edits = [];\n        const endCursorState = [];\n        let endPrimaryCursor = primaryCursor;\n        let lineOffset = 0;\n        for (let i = 0, len = reducedSelections.length; i < len; i++) {\n            const selection = reducedSelections[i];\n            const startLineNumber = selection.startLineNumber;\n            const startColumn = 1;\n            let columnDeltaOffset = 0;\n            let endLineNumber, endColumn;\n            const selectionEndPositionOffset = model.getLineLength(selection.endLineNumber) - selection.endColumn;\n            if (selection.isEmpty() || selection.startLineNumber === selection.endLineNumber) {\n                const position = selection.getStartPosition();\n                if (position.lineNumber < model.getLineCount()) {\n                    endLineNumber = startLineNumber + 1;\n                    endColumn = model.getLineMaxColumn(endLineNumber);\n                }\n                else {\n                    endLineNumber = position.lineNumber;\n                    endColumn = model.getLineMaxColumn(position.lineNumber);\n                }\n            }\n            else {\n                endLineNumber = selection.endLineNumber;\n                endColumn = model.getLineMaxColumn(endLineNumber);\n            }\n            let trimmedLinesContent = model.getLineContent(startLineNumber);\n            for (let i = startLineNumber + 1; i <= endLineNumber; i++) {\n                const lineText = model.getLineContent(i);\n                const firstNonWhitespaceIdx = model.getLineFirstNonWhitespaceColumn(i);\n                if (firstNonWhitespaceIdx >= 1) {\n                    let insertSpace = true;\n                    if (trimmedLinesContent === '') {\n                        insertSpace = false;\n                    }\n                    if (insertSpace && (trimmedLinesContent.charAt(trimmedLinesContent.length - 1) === ' ' ||\n                        trimmedLinesContent.charAt(trimmedLinesContent.length - 1) === '\\t')) {\n                        insertSpace = false;\n                        trimmedLinesContent = trimmedLinesContent.replace(/[\\s\\uFEFF\\xA0]+$/g, ' ');\n                    }\n                    const lineTextWithoutIndent = lineText.substr(firstNonWhitespaceIdx - 1);\n                    trimmedLinesContent += (insertSpace ? ' ' : '') + lineTextWithoutIndent;\n                    if (insertSpace) {\n                        columnDeltaOffset = lineTextWithoutIndent.length + 1;\n                    }\n                    else {\n                        columnDeltaOffset = lineTextWithoutIndent.length;\n                    }\n                }\n                else {\n                    columnDeltaOffset = 0;\n                }\n            }\n            const deleteSelection = new Range(startLineNumber, startColumn, endLineNumber, endColumn);\n            if (!deleteSelection.isEmpty()) {\n                let resultSelection;\n                if (selection.isEmpty()) {\n                    edits.push(EditOperation.replace(deleteSelection, trimmedLinesContent));\n                    resultSelection = new Selection(deleteSelection.startLineNumber - lineOffset, trimmedLinesContent.length - columnDeltaOffset + 1, startLineNumber - lineOffset, trimmedLinesContent.length - columnDeltaOffset + 1);\n                }\n                else {\n                    if (selection.startLineNumber === selection.endLineNumber) {\n                        edits.push(EditOperation.replace(deleteSelection, trimmedLinesContent));\n                        resultSelection = new Selection(selection.startLineNumber - lineOffset, selection.startColumn, selection.endLineNumber - lineOffset, selection.endColumn);\n                    }\n                    else {\n                        edits.push(EditOperation.replace(deleteSelection, trimmedLinesContent));\n                        resultSelection = new Selection(selection.startLineNumber - lineOffset, selection.startColumn, selection.startLineNumber - lineOffset, trimmedLinesContent.length - selectionEndPositionOffset);\n                    }\n                }\n                if (Range.intersectRanges(deleteSelection, primaryCursor) !== null) {\n                    endPrimaryCursor = resultSelection;\n                }\n                else {\n                    endCursorState.push(resultSelection);\n                }\n            }\n            lineOffset += deleteSelection.endLineNumber - deleteSelection.startLineNumber;\n        }\n        endCursorState.unshift(endPrimaryCursor);\n        editor.pushUndoStop();\n        editor.executeEdits(this.id, edits, endCursorState);\n        editor.pushUndoStop();\n    }\n}\nexport class TransposeAction extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.transpose',\n            label: nls.localize('editor.transpose', \"Transpose Characters around the Cursor\"),\n            alias: 'Transpose Characters around the Cursor',\n            precondition: EditorContextKeys.writable\n        });\n    }\n    run(_accessor, editor) {\n        const selections = editor.getSelections();\n        if (selections === null) {\n            return;\n        }\n        const model = editor.getModel();\n        if (model === null) {\n            return;\n        }\n        const commands = [];\n        for (let i = 0, len = selections.length; i < len; i++) {\n            const selection = selections[i];\n            if (!selection.isEmpty()) {\n                continue;\n            }\n            const cursor = selection.getStartPosition();\n            const maxColumn = model.getLineMaxColumn(cursor.lineNumber);\n            if (cursor.column >= maxColumn) {\n                if (cursor.lineNumber === model.getLineCount()) {\n                    continue;\n                }\n                // The cursor is at the end of current line and current line is not empty\n                // then we transpose the character before the cursor and the line break if there is any following line.\n                const deleteSelection = new Range(cursor.lineNumber, Math.max(1, cursor.column - 1), cursor.lineNumber + 1, 1);\n                const chars = model.getValueInRange(deleteSelection).split('').reverse().join('');\n                commands.push(new ReplaceCommand(new Selection(cursor.lineNumber, Math.max(1, cursor.column - 1), cursor.lineNumber + 1, 1), chars));\n            }\n            else {\n                const deleteSelection = new Range(cursor.lineNumber, Math.max(1, cursor.column - 1), cursor.lineNumber, cursor.column + 1);\n                const chars = model.getValueInRange(deleteSelection).split('').reverse().join('');\n                commands.push(new ReplaceCommandThatPreservesSelection(deleteSelection, chars, new Selection(cursor.lineNumber, cursor.column + 1, cursor.lineNumber, cursor.column + 1)));\n            }\n        }\n        editor.pushUndoStop();\n        editor.executeCommands(this.id, commands);\n        editor.pushUndoStop();\n    }\n}\nexport class AbstractCaseAction extends EditorAction {\n    run(_accessor, editor) {\n        const selections = editor.getSelections();\n        if (selections === null) {\n            return;\n        }\n        const model = editor.getModel();\n        if (model === null) {\n            return;\n        }\n        const wordSeparators = editor.getOption(131 /* EditorOption.wordSeparators */);\n        const textEdits = [];\n        for (const selection of selections) {\n            if (selection.isEmpty()) {\n                const cursor = selection.getStartPosition();\n                const word = editor.getConfiguredWordAtPosition(cursor);\n                if (!word) {\n                    continue;\n                }\n                const wordRange = new Range(cursor.lineNumber, word.startColumn, cursor.lineNumber, word.endColumn);\n                const text = model.getValueInRange(wordRange);\n                textEdits.push(EditOperation.replace(wordRange, this._modifyText(text, wordSeparators)));\n            }\n            else {\n                const text = model.getValueInRange(selection);\n                textEdits.push(EditOperation.replace(selection, this._modifyText(text, wordSeparators)));\n            }\n        }\n        editor.pushUndoStop();\n        editor.executeEdits(this.id, textEdits);\n        editor.pushUndoStop();\n    }\n}\nexport class UpperCaseAction extends AbstractCaseAction {\n    constructor() {\n        super({\n            id: 'editor.action.transformToUppercase',\n            label: nls.localize('editor.transformToUppercase', \"Transform to Uppercase\"),\n            alias: 'Transform to Uppercase',\n            precondition: EditorContextKeys.writable\n        });\n    }\n    _modifyText(text, wordSeparators) {\n        return text.toLocaleUpperCase();\n    }\n}\nexport class LowerCaseAction extends AbstractCaseAction {\n    constructor() {\n        super({\n            id: 'editor.action.transformToLowercase',\n            label: nls.localize('editor.transformToLowercase', \"Transform to Lowercase\"),\n            alias: 'Transform to Lowercase',\n            precondition: EditorContextKeys.writable\n        });\n    }\n    _modifyText(text, wordSeparators) {\n        return text.toLocaleLowerCase();\n    }\n}\nclass BackwardsCompatibleRegExp {\n    constructor(_pattern, _flags) {\n        this._pattern = _pattern;\n        this._flags = _flags;\n        this._actual = null;\n        this._evaluated = false;\n    }\n    get() {\n        if (!this._evaluated) {\n            this._evaluated = true;\n            try {\n                this._actual = new RegExp(this._pattern, this._flags);\n            }\n            catch (err) {\n                // this browser does not support this regular expression\n            }\n        }\n        return this._actual;\n    }\n    isSupported() {\n        return (this.get() !== null);\n    }\n}\nexport class TitleCaseAction extends AbstractCaseAction {\n    constructor() {\n        super({\n            id: 'editor.action.transformToTitlecase',\n            label: nls.localize('editor.transformToTitlecase', \"Transform to Title Case\"),\n            alias: 'Transform to Title Case',\n            precondition: EditorContextKeys.writable\n        });\n    }\n    _modifyText(text, wordSeparators) {\n        const titleBoundary = TitleCaseAction.titleBoundary.get();\n        if (!titleBoundary) {\n            // cannot support this\n            return text;\n        }\n        return text\n            .toLocaleLowerCase()\n            .replace(titleBoundary, (b) => b.toLocaleUpperCase());\n    }\n}\nTitleCaseAction.titleBoundary = new BackwardsCompatibleRegExp('(^|[^\\\\p{L}\\\\p{N}\\']|((^|\\\\P{L})\\'))\\\\p{L}', 'gmu');\nexport class SnakeCaseAction extends AbstractCaseAction {\n    constructor() {\n        super({\n            id: 'editor.action.transformToSnakecase',\n            label: nls.localize('editor.transformToSnakecase', \"Transform to Snake Case\"),\n            alias: 'Transform to Snake Case',\n            precondition: EditorContextKeys.writable\n        });\n    }\n    _modifyText(text, wordSeparators) {\n        const caseBoundary = SnakeCaseAction.caseBoundary.get();\n        const singleLetters = SnakeCaseAction.singleLetters.get();\n        if (!caseBoundary || !singleLetters) {\n            // cannot support this\n            return text;\n        }\n        return (text\n            .replace(caseBoundary, '$1_$2')\n            .replace(singleLetters, '$1_$2$3')\n            .toLocaleLowerCase());\n    }\n}\nSnakeCaseAction.caseBoundary = new BackwardsCompatibleRegExp('(\\\\p{Ll})(\\\\p{Lu})', 'gmu');\nSnakeCaseAction.singleLetters = new BackwardsCompatibleRegExp('(\\\\p{Lu}|\\\\p{N})(\\\\p{Lu})(\\\\p{Ll})', 'gmu');\nexport class CamelCaseAction extends AbstractCaseAction {\n    constructor() {\n        super({\n            id: 'editor.action.transformToCamelcase',\n            label: nls.localize('editor.transformToCamelcase', \"Transform to Camel Case\"),\n            alias: 'Transform to Camel Case',\n            precondition: EditorContextKeys.writable\n        });\n    }\n    _modifyText(text, wordSeparators) {\n        const wordBoundary = CamelCaseAction.wordBoundary.get();\n        if (!wordBoundary) {\n            // cannot support this\n            return text;\n        }\n        const words = text.split(wordBoundary);\n        const firstWord = words.shift();\n        return firstWord + words.map((word) => word.substring(0, 1).toLocaleUpperCase() + word.substring(1))\n            .join('');\n    }\n}\nCamelCaseAction.wordBoundary = new BackwardsCompatibleRegExp('[_\\\\s-]', 'gm');\nexport class PascalCaseAction extends AbstractCaseAction {\n    constructor() {\n        super({\n            id: 'editor.action.transformToPascalcase',\n            label: nls.localize('editor.transformToPascalcase', \"Transform to Pascal Case\"),\n            alias: 'Transform to Pascal Case',\n            precondition: EditorContextKeys.writable\n        });\n    }\n    _modifyText(text, wordSeparators) {\n        const wordBoundary = PascalCaseAction.wordBoundary.get();\n        const wordBoundaryToMaintain = PascalCaseAction.wordBoundaryToMaintain.get();\n        if (!wordBoundary || !wordBoundaryToMaintain) {\n            // cannot support this\n            return text;\n        }\n        const wordsWithMaintainBoundaries = text.split(wordBoundaryToMaintain);\n        const words = wordsWithMaintainBoundaries.map((word) => word.split(wordBoundary)).flat();\n        return words.map((word) => word.substring(0, 1).toLocaleUpperCase() + word.substring(1))\n            .join('');\n    }\n}\nPascalCaseAction.wordBoundary = new BackwardsCompatibleRegExp('[_\\\\s-]', 'gm');\nPascalCaseAction.wordBoundaryToMaintain = new BackwardsCompatibleRegExp('(?<=\\\\.)', 'gm');\nexport class KebabCaseAction extends AbstractCaseAction {\n    static isSupported() {\n        const areAllRegexpsSupported = [\n            this.caseBoundary,\n            this.singleLetters,\n            this.underscoreBoundary,\n        ].every((regexp) => regexp.isSupported());\n        return areAllRegexpsSupported;\n    }\n    constructor() {\n        super({\n            id: 'editor.action.transformToKebabcase',\n            label: nls.localize('editor.transformToKebabcase', 'Transform to Kebab Case'),\n            alias: 'Transform to Kebab Case',\n            precondition: EditorContextKeys.writable\n        });\n    }\n    _modifyText(text, _) {\n        const caseBoundary = KebabCaseAction.caseBoundary.get();\n        const singleLetters = KebabCaseAction.singleLetters.get();\n        const underscoreBoundary = KebabCaseAction.underscoreBoundary.get();\n        if (!caseBoundary || !singleLetters || !underscoreBoundary) {\n            // one or more regexps aren't supported\n            return text;\n        }\n        return text\n            .replace(underscoreBoundary, '$1-$3')\n            .replace(caseBoundary, '$1-$2')\n            .replace(singleLetters, '$1-$2')\n            .toLocaleLowerCase();\n    }\n}\nKebabCaseAction.caseBoundary = new BackwardsCompatibleRegExp('(\\\\p{Ll})(\\\\p{Lu})', 'gmu');\nKebabCaseAction.singleLetters = new BackwardsCompatibleRegExp('(\\\\p{Lu}|\\\\p{N})(\\\\p{Lu}\\\\p{Ll})', 'gmu');\nKebabCaseAction.underscoreBoundary = new BackwardsCompatibleRegExp('(\\\\S)(_)(\\\\S)', 'gm');\nregisterEditorAction(CopyLinesUpAction);\nregisterEditorAction(CopyLinesDownAction);\nregisterEditorAction(DuplicateSelectionAction);\nregisterEditorAction(MoveLinesUpAction);\nregisterEditorAction(MoveLinesDownAction);\nregisterEditorAction(SortLinesAscendingAction);\nregisterEditorAction(SortLinesDescendingAction);\nregisterEditorAction(DeleteDuplicateLinesAction);\nregisterEditorAction(TrimTrailingWhitespaceAction);\nregisterEditorAction(DeleteLinesAction);\nregisterEditorAction(IndentLinesAction);\nregisterEditorAction(OutdentLinesAction);\nregisterEditorAction(InsertLineBeforeAction);\nregisterEditorAction(InsertLineAfterAction);\nregisterEditorAction(DeleteAllLeftAction);\nregisterEditorAction(DeleteAllRightAction);\nregisterEditorAction(JoinLinesAction);\nregisterEditorAction(TransposeAction);\nregisterEditorAction(UpperCaseAction);\nregisterEditorAction(LowerCaseAction);\nif (SnakeCaseAction.caseBoundary.isSupported() && SnakeCaseAction.singleLetters.isSupported()) {\n    registerEditorAction(SnakeCaseAction);\n}\nif (CamelCaseAction.wordBoundary.isSupported()) {\n    registerEditorAction(CamelCaseAction);\n}\nif (PascalCaseAction.wordBoundary.isSupported()) {\n    registerEditorAction(PascalCaseAction);\n}\nif (TitleCaseAction.titleBoundary.isSupported()) {\n    registerEditorAction(TitleCaseAction);\n}\nif (KebabCaseAction.isSupported()) {\n    registerEditorAction(KebabCaseAction);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/linesOperations/browser/moveLinesCommand.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport * as strings from '../../../../base/common/strings.js';\nimport { ShiftCommand } from '../../../common/commands/shiftCommand.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { IndentAction } from '../../../common/languages/languageConfiguration.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport * as indentUtils from '../../indentation/common/indentUtils.js';\nimport { getGoodIndentForLine, getIndentMetadata } from '../../../common/languages/autoIndent.js';\nimport { getEnterAction } from '../../../common/languages/enterAction.js';\nlet MoveLinesCommand = class MoveLinesCommand {\n    constructor(selection, isMovingDown, autoIndent, _languageConfigurationService) {\n        this._languageConfigurationService = _languageConfigurationService;\n        this._selection = selection;\n        this._isMovingDown = isMovingDown;\n        this._autoIndent = autoIndent;\n        this._selectionId = null;\n        this._moveEndLineSelectionShrink = false;\n    }\n    getEditOperations(model, builder) {\n        const getLanguageId = () => {\n            return model.getLanguageId();\n        };\n        const getLanguageIdAtPosition = (lineNumber, column) => {\n            return model.getLanguageIdAtPosition(lineNumber, column);\n        };\n        const modelLineCount = model.getLineCount();\n        if (this._isMovingDown && this._selection.endLineNumber === modelLineCount) {\n            this._selectionId = builder.trackSelection(this._selection);\n            return;\n        }\n        if (!this._isMovingDown && this._selection.startLineNumber === 1) {\n            this._selectionId = builder.trackSelection(this._selection);\n            return;\n        }\n        this._moveEndPositionDown = false;\n        let s = this._selection;\n        if (s.startLineNumber < s.endLineNumber && s.endColumn === 1) {\n            this._moveEndPositionDown = true;\n            s = s.setEndPosition(s.endLineNumber - 1, model.getLineMaxColumn(s.endLineNumber - 1));\n        }\n        const { tabSize, indentSize, insertSpaces } = model.getOptions();\n        const indentConverter = this.buildIndentConverter(tabSize, indentSize, insertSpaces);\n        if (s.startLineNumber === s.endLineNumber && model.getLineMaxColumn(s.startLineNumber) === 1) {\n            // Current line is empty\n            const lineNumber = s.startLineNumber;\n            const otherLineNumber = (this._isMovingDown ? lineNumber + 1 : lineNumber - 1);\n            if (model.getLineMaxColumn(otherLineNumber) === 1) {\n                // Other line number is empty too, so no editing is needed\n                // Add a no-op to force running by the model\n                builder.addEditOperation(new Range(1, 1, 1, 1), null);\n            }\n            else {\n                // Type content from other line number on line number\n                builder.addEditOperation(new Range(lineNumber, 1, lineNumber, 1), model.getLineContent(otherLineNumber));\n                // Remove content from other line number\n                builder.addEditOperation(new Range(otherLineNumber, 1, otherLineNumber, model.getLineMaxColumn(otherLineNumber)), null);\n            }\n            // Track selection at the other line number\n            s = new Selection(otherLineNumber, 1, otherLineNumber, 1);\n        }\n        else {\n            let movingLineNumber;\n            let movingLineText;\n            if (this._isMovingDown) {\n                movingLineNumber = s.endLineNumber + 1;\n                movingLineText = model.getLineContent(movingLineNumber);\n                // Delete line that needs to be moved\n                builder.addEditOperation(new Range(movingLineNumber - 1, model.getLineMaxColumn(movingLineNumber - 1), movingLineNumber, model.getLineMaxColumn(movingLineNumber)), null);\n                let insertingText = movingLineText;\n                if (this.shouldAutoIndent(model, s)) {\n                    const movingLineMatchResult = this.matchEnterRule(model, indentConverter, tabSize, movingLineNumber, s.startLineNumber - 1);\n                    // if s.startLineNumber - 1 matches onEnter rule, we still honor that.\n                    if (movingLineMatchResult !== null) {\n                        const oldIndentation = strings.getLeadingWhitespace(model.getLineContent(movingLineNumber));\n                        const newSpaceCnt = movingLineMatchResult + indentUtils.getSpaceCnt(oldIndentation, tabSize);\n                        const newIndentation = indentUtils.generateIndent(newSpaceCnt, tabSize, insertSpaces);\n                        insertingText = newIndentation + this.trimStart(movingLineText);\n                    }\n                    else {\n                        // no enter rule matches, let's check indentatin rules then.\n                        const virtualModel = {\n                            tokenization: {\n                                getLineTokens: (lineNumber) => {\n                                    if (lineNumber === s.startLineNumber) {\n                                        return model.tokenization.getLineTokens(movingLineNumber);\n                                    }\n                                    else {\n                                        return model.tokenization.getLineTokens(lineNumber);\n                                    }\n                                },\n                                getLanguageId,\n                                getLanguageIdAtPosition,\n                            },\n                            getLineContent: (lineNumber) => {\n                                if (lineNumber === s.startLineNumber) {\n                                    return model.getLineContent(movingLineNumber);\n                                }\n                                else {\n                                    return model.getLineContent(lineNumber);\n                                }\n                            },\n                        };\n                        const indentOfMovingLine = getGoodIndentForLine(this._autoIndent, virtualModel, model.getLanguageIdAtPosition(movingLineNumber, 1), s.startLineNumber, indentConverter, this._languageConfigurationService);\n                        if (indentOfMovingLine !== null) {\n                            const oldIndentation = strings.getLeadingWhitespace(model.getLineContent(movingLineNumber));\n                            const newSpaceCnt = indentUtils.getSpaceCnt(indentOfMovingLine, tabSize);\n                            const oldSpaceCnt = indentUtils.getSpaceCnt(oldIndentation, tabSize);\n                            if (newSpaceCnt !== oldSpaceCnt) {\n                                const newIndentation = indentUtils.generateIndent(newSpaceCnt, tabSize, insertSpaces);\n                                insertingText = newIndentation + this.trimStart(movingLineText);\n                            }\n                        }\n                    }\n                    // add edit operations for moving line first to make sure it's executed after we make indentation change\n                    // to s.startLineNumber\n                    builder.addEditOperation(new Range(s.startLineNumber, 1, s.startLineNumber, 1), insertingText + '\\n');\n                    const ret = this.matchEnterRuleMovingDown(model, indentConverter, tabSize, s.startLineNumber, movingLineNumber, insertingText);\n                    // check if the line being moved before matches onEnter rules, if so let's adjust the indentation by onEnter rules.\n                    if (ret !== null) {\n                        if (ret !== 0) {\n                            this.getIndentEditsOfMovingBlock(model, builder, s, tabSize, insertSpaces, ret);\n                        }\n                    }\n                    else {\n                        // it doesn't match onEnter rules, let's check indentation rules then.\n                        const virtualModel = {\n                            tokenization: {\n                                getLineTokens: (lineNumber) => {\n                                    if (lineNumber === s.startLineNumber) {\n                                        return model.tokenization.getLineTokens(movingLineNumber);\n                                    }\n                                    else if (lineNumber >= s.startLineNumber + 1 && lineNumber <= s.endLineNumber + 1) {\n                                        return model.tokenization.getLineTokens(lineNumber - 1);\n                                    }\n                                    else {\n                                        return model.tokenization.getLineTokens(lineNumber);\n                                    }\n                                },\n                                getLanguageId,\n                                getLanguageIdAtPosition,\n                            },\n                            getLineContent: (lineNumber) => {\n                                if (lineNumber === s.startLineNumber) {\n                                    return insertingText;\n                                }\n                                else if (lineNumber >= s.startLineNumber + 1 && lineNumber <= s.endLineNumber + 1) {\n                                    return model.getLineContent(lineNumber - 1);\n                                }\n                                else {\n                                    return model.getLineContent(lineNumber);\n                                }\n                            },\n                        };\n                        const newIndentatOfMovingBlock = getGoodIndentForLine(this._autoIndent, virtualModel, model.getLanguageIdAtPosition(movingLineNumber, 1), s.startLineNumber + 1, indentConverter, this._languageConfigurationService);\n                        if (newIndentatOfMovingBlock !== null) {\n                            const oldIndentation = strings.getLeadingWhitespace(model.getLineContent(s.startLineNumber));\n                            const newSpaceCnt = indentUtils.getSpaceCnt(newIndentatOfMovingBlock, tabSize);\n                            const oldSpaceCnt = indentUtils.getSpaceCnt(oldIndentation, tabSize);\n                            if (newSpaceCnt !== oldSpaceCnt) {\n                                const spaceCntOffset = newSpaceCnt - oldSpaceCnt;\n                                this.getIndentEditsOfMovingBlock(model, builder, s, tabSize, insertSpaces, spaceCntOffset);\n                            }\n                        }\n                    }\n                }\n                else {\n                    // Insert line that needs to be moved before\n                    builder.addEditOperation(new Range(s.startLineNumber, 1, s.startLineNumber, 1), insertingText + '\\n');\n                }\n            }\n            else {\n                movingLineNumber = s.startLineNumber - 1;\n                movingLineText = model.getLineContent(movingLineNumber);\n                // Delete line that needs to be moved\n                builder.addEditOperation(new Range(movingLineNumber, 1, movingLineNumber + 1, 1), null);\n                // Insert line that needs to be moved after\n                builder.addEditOperation(new Range(s.endLineNumber, model.getLineMaxColumn(s.endLineNumber), s.endLineNumber, model.getLineMaxColumn(s.endLineNumber)), '\\n' + movingLineText);\n                if (this.shouldAutoIndent(model, s)) {\n                    const virtualModel = {\n                        tokenization: {\n                            getLineTokens: (lineNumber) => {\n                                if (lineNumber === movingLineNumber) {\n                                    return model.tokenization.getLineTokens(s.startLineNumber);\n                                }\n                                else {\n                                    return model.tokenization.getLineTokens(lineNumber);\n                                }\n                            },\n                            getLanguageId,\n                            getLanguageIdAtPosition,\n                        },\n                        getLineContent: (lineNumber) => {\n                            if (lineNumber === movingLineNumber) {\n                                return model.getLineContent(s.startLineNumber);\n                            }\n                            else {\n                                return model.getLineContent(lineNumber);\n                            }\n                        },\n                    };\n                    const ret = this.matchEnterRule(model, indentConverter, tabSize, s.startLineNumber, s.startLineNumber - 2);\n                    // check if s.startLineNumber - 2 matches onEnter rules, if so adjust the moving block by onEnter rules.\n                    if (ret !== null) {\n                        if (ret !== 0) {\n                            this.getIndentEditsOfMovingBlock(model, builder, s, tabSize, insertSpaces, ret);\n                        }\n                    }\n                    else {\n                        // it doesn't match any onEnter rule, let's check indentation rules then.\n                        const indentOfFirstLine = getGoodIndentForLine(this._autoIndent, virtualModel, model.getLanguageIdAtPosition(s.startLineNumber, 1), movingLineNumber, indentConverter, this._languageConfigurationService);\n                        if (indentOfFirstLine !== null) {\n                            // adjust the indentation of the moving block\n                            const oldIndent = strings.getLeadingWhitespace(model.getLineContent(s.startLineNumber));\n                            const newSpaceCnt = indentUtils.getSpaceCnt(indentOfFirstLine, tabSize);\n                            const oldSpaceCnt = indentUtils.getSpaceCnt(oldIndent, tabSize);\n                            if (newSpaceCnt !== oldSpaceCnt) {\n                                const spaceCntOffset = newSpaceCnt - oldSpaceCnt;\n                                this.getIndentEditsOfMovingBlock(model, builder, s, tabSize, insertSpaces, spaceCntOffset);\n                            }\n                        }\n                    }\n                }\n            }\n        }\n        this._selectionId = builder.trackSelection(s);\n    }\n    buildIndentConverter(tabSize, indentSize, insertSpaces) {\n        return {\n            shiftIndent: (indentation) => {\n                return ShiftCommand.shiftIndent(indentation, indentation.length + 1, tabSize, indentSize, insertSpaces);\n            },\n            unshiftIndent: (indentation) => {\n                return ShiftCommand.unshiftIndent(indentation, indentation.length + 1, tabSize, indentSize, insertSpaces);\n            }\n        };\n    }\n    parseEnterResult(model, indentConverter, tabSize, line, enter) {\n        if (enter) {\n            let enterPrefix = enter.indentation;\n            if (enter.indentAction === IndentAction.None) {\n                enterPrefix = enter.indentation + enter.appendText;\n            }\n            else if (enter.indentAction === IndentAction.Indent) {\n                enterPrefix = enter.indentation + enter.appendText;\n            }\n            else if (enter.indentAction === IndentAction.IndentOutdent) {\n                enterPrefix = enter.indentation;\n            }\n            else if (enter.indentAction === IndentAction.Outdent) {\n                enterPrefix = indentConverter.unshiftIndent(enter.indentation) + enter.appendText;\n            }\n            const movingLineText = model.getLineContent(line);\n            if (this.trimStart(movingLineText).indexOf(this.trimStart(enterPrefix)) >= 0) {\n                const oldIndentation = strings.getLeadingWhitespace(model.getLineContent(line));\n                let newIndentation = strings.getLeadingWhitespace(enterPrefix);\n                const indentMetadataOfMovelingLine = getIndentMetadata(model, line, this._languageConfigurationService);\n                if (indentMetadataOfMovelingLine !== null && indentMetadataOfMovelingLine & 2 /* IndentConsts.DECREASE_MASK */) {\n                    newIndentation = indentConverter.unshiftIndent(newIndentation);\n                }\n                const newSpaceCnt = indentUtils.getSpaceCnt(newIndentation, tabSize);\n                const oldSpaceCnt = indentUtils.getSpaceCnt(oldIndentation, tabSize);\n                return newSpaceCnt - oldSpaceCnt;\n            }\n        }\n        return null;\n    }\n    /**\n     *\n     * @param model\n     * @param indentConverter\n     * @param tabSize\n     * @param line the line moving down\n     * @param futureAboveLineNumber the line which will be at the `line` position\n     * @param futureAboveLineText\n     */\n    matchEnterRuleMovingDown(model, indentConverter, tabSize, line, futureAboveLineNumber, futureAboveLineText) {\n        if (strings.lastNonWhitespaceIndex(futureAboveLineText) >= 0) {\n            // break\n            const maxColumn = model.getLineMaxColumn(futureAboveLineNumber);\n            const enter = getEnterAction(this._autoIndent, model, new Range(futureAboveLineNumber, maxColumn, futureAboveLineNumber, maxColumn), this._languageConfigurationService);\n            return this.parseEnterResult(model, indentConverter, tabSize, line, enter);\n        }\n        else {\n            // go upwards, starting from `line - 1`\n            let validPrecedingLine = line - 1;\n            while (validPrecedingLine >= 1) {\n                const lineContent = model.getLineContent(validPrecedingLine);\n                const nonWhitespaceIdx = strings.lastNonWhitespaceIndex(lineContent);\n                if (nonWhitespaceIdx >= 0) {\n                    break;\n                }\n                validPrecedingLine--;\n            }\n            if (validPrecedingLine < 1 || line > model.getLineCount()) {\n                return null;\n            }\n            const maxColumn = model.getLineMaxColumn(validPrecedingLine);\n            const enter = getEnterAction(this._autoIndent, model, new Range(validPrecedingLine, maxColumn, validPrecedingLine, maxColumn), this._languageConfigurationService);\n            return this.parseEnterResult(model, indentConverter, tabSize, line, enter);\n        }\n    }\n    matchEnterRule(model, indentConverter, tabSize, line, oneLineAbove, previousLineText) {\n        let validPrecedingLine = oneLineAbove;\n        while (validPrecedingLine >= 1) {\n            // ship empty lines as empty lines just inherit indentation\n            let lineContent;\n            if (validPrecedingLine === oneLineAbove && previousLineText !== undefined) {\n                lineContent = previousLineText;\n            }\n            else {\n                lineContent = model.getLineContent(validPrecedingLine);\n            }\n            const nonWhitespaceIdx = strings.lastNonWhitespaceIndex(lineContent);\n            if (nonWhitespaceIdx >= 0) {\n                break;\n            }\n            validPrecedingLine--;\n        }\n        if (validPrecedingLine < 1 || line > model.getLineCount()) {\n            return null;\n        }\n        const maxColumn = model.getLineMaxColumn(validPrecedingLine);\n        const enter = getEnterAction(this._autoIndent, model, new Range(validPrecedingLine, maxColumn, validPrecedingLine, maxColumn), this._languageConfigurationService);\n        return this.parseEnterResult(model, indentConverter, tabSize, line, enter);\n    }\n    trimStart(str) {\n        return str.replace(/^\\s+/, '');\n    }\n    shouldAutoIndent(model, selection) {\n        if (this._autoIndent < 4 /* EditorAutoIndentStrategy.Full */) {\n            return false;\n        }\n        // if it's not easy to tokenize, we stop auto indent.\n        if (!model.tokenization.isCheapToTokenize(selection.startLineNumber)) {\n            return false;\n        }\n        const languageAtSelectionStart = model.getLanguageIdAtPosition(selection.startLineNumber, 1);\n        const languageAtSelectionEnd = model.getLanguageIdAtPosition(selection.endLineNumber, 1);\n        if (languageAtSelectionStart !== languageAtSelectionEnd) {\n            return false;\n        }\n        if (this._languageConfigurationService.getLanguageConfiguration(languageAtSelectionStart).indentRulesSupport === null) {\n            return false;\n        }\n        return true;\n    }\n    getIndentEditsOfMovingBlock(model, builder, s, tabSize, insertSpaces, offset) {\n        for (let i = s.startLineNumber; i <= s.endLineNumber; i++) {\n            const lineContent = model.getLineContent(i);\n            const originalIndent = strings.getLeadingWhitespace(lineContent);\n            const originalSpacesCnt = indentUtils.getSpaceCnt(originalIndent, tabSize);\n            const newSpacesCnt = originalSpacesCnt + offset;\n            const newIndent = indentUtils.generateIndent(newSpacesCnt, tabSize, insertSpaces);\n            if (newIndent !== originalIndent) {\n                builder.addEditOperation(new Range(i, 1, i, originalIndent.length + 1), newIndent);\n                if (i === s.endLineNumber && s.endColumn <= originalIndent.length + 1 && newIndent === '') {\n                    // as users select part of the original indent white spaces\n                    // when we adjust the indentation of endLine, we should adjust the cursor position as well.\n                    this._moveEndLineSelectionShrink = true;\n                }\n            }\n        }\n    }\n    computeCursorState(model, helper) {\n        let result = helper.getTrackedSelection(this._selectionId);\n        if (this._moveEndPositionDown) {\n            result = result.setEndPosition(result.endLineNumber + 1, 1);\n        }\n        if (this._moveEndLineSelectionShrink && result.startLineNumber < result.endLineNumber) {\n            result = result.setEndPosition(result.endLineNumber, 2);\n        }\n        return result;\n    }\n};\nMoveLinesCommand = __decorate([\n    __param(3, ILanguageConfigurationService)\n], MoveLinesCommand);\nexport { MoveLinesCommand };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/linesOperations/browser/sortLinesCommand.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { EditOperation } from '../../../common/core/editOperation.js';\nimport { Range } from '../../../common/core/range.js';\nexport class SortLinesCommand {\n    static getCollator() {\n        if (!SortLinesCommand._COLLATOR) {\n            SortLinesCommand._COLLATOR = new Intl.Collator();\n        }\n        return SortLinesCommand._COLLATOR;\n    }\n    constructor(selection, descending) {\n        this.selection = selection;\n        this.descending = descending;\n        this.selectionId = null;\n    }\n    getEditOperations(model, builder) {\n        const op = sortLines(model, this.selection, this.descending);\n        if (op) {\n            builder.addEditOperation(op.range, op.text);\n        }\n        this.selectionId = builder.trackSelection(this.selection);\n    }\n    computeCursorState(model, helper) {\n        return helper.getTrackedSelection(this.selectionId);\n    }\n    static canRun(model, selection, descending) {\n        if (model === null) {\n            return false;\n        }\n        const data = getSortData(model, selection, descending);\n        if (!data) {\n            return false;\n        }\n        for (let i = 0, len = data.before.length; i < len; i++) {\n            if (data.before[i] !== data.after[i]) {\n                return true;\n            }\n        }\n        return false;\n    }\n}\nSortLinesCommand._COLLATOR = null;\nfunction getSortData(model, selection, descending) {\n    const startLineNumber = selection.startLineNumber;\n    let endLineNumber = selection.endLineNumber;\n    if (selection.endColumn === 1) {\n        endLineNumber--;\n    }\n    // Nothing to sort if user didn't select anything.\n    if (startLineNumber >= endLineNumber) {\n        return null;\n    }\n    const linesToSort = [];\n    // Get the contents of the selection to be sorted.\n    for (let lineNumber = startLineNumber; lineNumber <= endLineNumber; lineNumber++) {\n        linesToSort.push(model.getLineContent(lineNumber));\n    }\n    let sorted = linesToSort.slice(0);\n    sorted.sort(SortLinesCommand.getCollator().compare);\n    // If descending, reverse the order.\n    if (descending === true) {\n        sorted = sorted.reverse();\n    }\n    return {\n        startLineNumber: startLineNumber,\n        endLineNumber: endLineNumber,\n        before: linesToSort,\n        after: sorted\n    };\n}\n/**\n * Generate commands for sorting lines on a model.\n */\nfunction sortLines(model, selection, descending) {\n    const data = getSortData(model, selection, descending);\n    if (!data) {\n        return null;\n    }\n    return EditOperation.replace(new Range(data.startLineNumber, 1, data.endLineNumber, model.getLineMaxColumn(data.endLineNumber)), data.after.join('\\n'));\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/linkedEditing/browser/linkedEditing.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .linked-editing-decoration {\n\tbackground-color: var(--vscode-editor-linkedEditingBackground);\n\n\t/* Ensure decoration is visible even if range is empty */\n\tmin-width: 1px;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/linkedEditing/browser/linkedEditing.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/linkedEditing/browser/linkedEditing.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar LinkedEditingContribution_1;\nimport * as arrays from '../../../../base/common/arrays.js';\nimport { Delayer, first } from '../../../../base/common/async.js';\nimport { CancellationToken, CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { Color } from '../../../../base/common/color.js';\nimport { isCancellationError, onUnexpectedError, onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { Event } from '../../../../base/common/event.js';\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport * as strings from '../../../../base/common/strings.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport { EditorAction, EditorCommand, registerEditorAction, registerEditorCommand, registerEditorContribution, registerModelAndPositionCommand } from '../../../browser/editorExtensions.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport * as nls from '../../../../nls.js';\nimport { ContextKeyExpr, IContextKeyService, RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { registerColor } from '../../../../platform/theme/common/colorRegistry.js';\nimport { ILanguageFeatureDebounceService } from '../../../common/services/languageFeatureDebounce.js';\nimport { StopWatch } from '../../../../base/common/stopwatch.js';\nimport './linkedEditing.css';\nexport const CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE = new RawContextKey('LinkedEditingInputVisible', false);\nconst DECORATION_CLASS_NAME = 'linked-editing-decoration';\nlet LinkedEditingContribution = LinkedEditingContribution_1 = class LinkedEditingContribution extends Disposable {\n    static get(editor) {\n        return editor.getContribution(LinkedEditingContribution_1.ID);\n    }\n    constructor(editor, contextKeyService, languageFeaturesService, languageConfigurationService, languageFeatureDebounceService) {\n        super();\n        this.languageConfigurationService = languageConfigurationService;\n        this._syncRangesToken = 0;\n        this._localToDispose = this._register(new DisposableStore());\n        this._editor = editor;\n        this._providers = languageFeaturesService.linkedEditingRangeProvider;\n        this._enabled = false;\n        this._visibleContextKey = CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE.bindTo(contextKeyService);\n        this._debounceInformation = languageFeatureDebounceService.for(this._providers, 'Linked Editing', { max: 200 });\n        this._currentDecorations = this._editor.createDecorationsCollection();\n        this._languageWordPattern = null;\n        this._currentWordPattern = null;\n        this._ignoreChangeEvent = false;\n        this._localToDispose = this._register(new DisposableStore());\n        this._rangeUpdateTriggerPromise = null;\n        this._rangeSyncTriggerPromise = null;\n        this._currentRequestCts = null;\n        this._currentRequestPosition = null;\n        this._currentRequestModelVersion = null;\n        this._register(this._editor.onDidChangeModel(() => this.reinitialize(true)));\n        this._register(this._editor.onDidChangeConfiguration(e => {\n            if (e.hasChanged(70 /* EditorOption.linkedEditing */) || e.hasChanged(93 /* EditorOption.renameOnType */)) {\n                this.reinitialize(false);\n            }\n        }));\n        this._register(this._providers.onDidChange(() => this.reinitialize(false)));\n        this._register(this._editor.onDidChangeModelLanguage(() => this.reinitialize(true)));\n        this.reinitialize(true);\n    }\n    reinitialize(forceRefresh) {\n        const model = this._editor.getModel();\n        const isEnabled = model !== null && (this._editor.getOption(70 /* EditorOption.linkedEditing */) || this._editor.getOption(93 /* EditorOption.renameOnType */)) && this._providers.has(model);\n        if (isEnabled === this._enabled && !forceRefresh) {\n            return;\n        }\n        this._enabled = isEnabled;\n        this.clearRanges();\n        this._localToDispose.clear();\n        if (!isEnabled || model === null) {\n            return;\n        }\n        this._localToDispose.add(Event.runAndSubscribe(model.onDidChangeLanguageConfiguration, () => {\n            this._languageWordPattern = this.languageConfigurationService.getLanguageConfiguration(model.getLanguageId()).getWordDefinition();\n        }));\n        const rangeUpdateScheduler = new Delayer(this._debounceInformation.get(model));\n        const triggerRangeUpdate = () => {\n            var _a;\n            this._rangeUpdateTriggerPromise = rangeUpdateScheduler.trigger(() => this.updateRanges(), (_a = this._debounceDuration) !== null && _a !== void 0 ? _a : this._debounceInformation.get(model));\n        };\n        const rangeSyncScheduler = new Delayer(0);\n        const triggerRangeSync = (token) => {\n            this._rangeSyncTriggerPromise = rangeSyncScheduler.trigger(() => this._syncRanges(token));\n        };\n        this._localToDispose.add(this._editor.onDidChangeCursorPosition(() => {\n            triggerRangeUpdate();\n        }));\n        this._localToDispose.add(this._editor.onDidChangeModelContent((e) => {\n            if (!this._ignoreChangeEvent) {\n                if (this._currentDecorations.length > 0) {\n                    const referenceRange = this._currentDecorations.getRange(0);\n                    if (referenceRange && e.changes.every(c => referenceRange.intersectRanges(c.range))) {\n                        triggerRangeSync(this._syncRangesToken);\n                        return;\n                    }\n                }\n            }\n            triggerRangeUpdate();\n        }));\n        this._localToDispose.add({\n            dispose: () => {\n                rangeUpdateScheduler.dispose();\n                rangeSyncScheduler.dispose();\n            }\n        });\n        this.updateRanges();\n    }\n    _syncRanges(token) {\n        // delayed invocation, make sure we're still on\n        if (!this._editor.hasModel() || token !== this._syncRangesToken || this._currentDecorations.length === 0) {\n            // nothing to do\n            return;\n        }\n        const model = this._editor.getModel();\n        const referenceRange = this._currentDecorations.getRange(0);\n        if (!referenceRange || referenceRange.startLineNumber !== referenceRange.endLineNumber) {\n            return this.clearRanges();\n        }\n        const referenceValue = model.getValueInRange(referenceRange);\n        if (this._currentWordPattern) {\n            const match = referenceValue.match(this._currentWordPattern);\n            const matchLength = match ? match[0].length : 0;\n            if (matchLength !== referenceValue.length) {\n                return this.clearRanges();\n            }\n        }\n        const edits = [];\n        for (let i = 1, len = this._currentDecorations.length; i < len; i++) {\n            const mirrorRange = this._currentDecorations.getRange(i);\n            if (!mirrorRange) {\n                continue;\n            }\n            if (mirrorRange.startLineNumber !== mirrorRange.endLineNumber) {\n                edits.push({\n                    range: mirrorRange,\n                    text: referenceValue\n                });\n            }\n            else {\n                let oldValue = model.getValueInRange(mirrorRange);\n                let newValue = referenceValue;\n                let rangeStartColumn = mirrorRange.startColumn;\n                let rangeEndColumn = mirrorRange.endColumn;\n                const commonPrefixLength = strings.commonPrefixLength(oldValue, newValue);\n                rangeStartColumn += commonPrefixLength;\n                oldValue = oldValue.substr(commonPrefixLength);\n                newValue = newValue.substr(commonPrefixLength);\n                const commonSuffixLength = strings.commonSuffixLength(oldValue, newValue);\n                rangeEndColumn -= commonSuffixLength;\n                oldValue = oldValue.substr(0, oldValue.length - commonSuffixLength);\n                newValue = newValue.substr(0, newValue.length - commonSuffixLength);\n                if (rangeStartColumn !== rangeEndColumn || newValue.length !== 0) {\n                    edits.push({\n                        range: new Range(mirrorRange.startLineNumber, rangeStartColumn, mirrorRange.endLineNumber, rangeEndColumn),\n                        text: newValue\n                    });\n                }\n            }\n        }\n        if (edits.length === 0) {\n            return;\n        }\n        try {\n            this._editor.popUndoStop();\n            this._ignoreChangeEvent = true;\n            const prevEditOperationType = this._editor._getViewModel().getPrevEditOperationType();\n            this._editor.executeEdits('linkedEditing', edits);\n            this._editor._getViewModel().setPrevEditOperationType(prevEditOperationType);\n        }\n        finally {\n            this._ignoreChangeEvent = false;\n        }\n    }\n    dispose() {\n        this.clearRanges();\n        super.dispose();\n    }\n    clearRanges() {\n        this._visibleContextKey.set(false);\n        this._currentDecorations.clear();\n        if (this._currentRequestCts) {\n            this._currentRequestCts.cancel();\n            this._currentRequestCts = null;\n            this._currentRequestPosition = null;\n        }\n    }\n    async updateRanges(force = false) {\n        if (!this._editor.hasModel()) {\n            this.clearRanges();\n            return;\n        }\n        const position = this._editor.getPosition();\n        if (!this._enabled && !force || this._editor.getSelections().length > 1) {\n            // disabled or multicursor\n            this.clearRanges();\n            return;\n        }\n        const model = this._editor.getModel();\n        const modelVersionId = model.getVersionId();\n        if (this._currentRequestPosition && this._currentRequestModelVersion === modelVersionId) {\n            if (position.equals(this._currentRequestPosition)) {\n                return; // same position\n            }\n            if (this._currentDecorations.length > 0) {\n                const range = this._currentDecorations.getRange(0);\n                if (range && range.containsPosition(position)) {\n                    return; // just moving inside the existing primary range\n                }\n            }\n        }\n        // Clear existing decorations while we compute new ones\n        this.clearRanges();\n        this._currentRequestPosition = position;\n        this._currentRequestModelVersion = modelVersionId;\n        const currentRequestCts = this._currentRequestCts = new CancellationTokenSource();\n        try {\n            const sw = new StopWatch(false);\n            const response = await getLinkedEditingRanges(this._providers, model, position, currentRequestCts.token);\n            this._debounceInformation.update(model, sw.elapsed());\n            if (currentRequestCts !== this._currentRequestCts) {\n                return;\n            }\n            this._currentRequestCts = null;\n            if (modelVersionId !== model.getVersionId()) {\n                return;\n            }\n            let ranges = [];\n            if (response === null || response === void 0 ? void 0 : response.ranges) {\n                ranges = response.ranges;\n            }\n            this._currentWordPattern = (response === null || response === void 0 ? void 0 : response.wordPattern) || this._languageWordPattern;\n            let foundReferenceRange = false;\n            for (let i = 0, len = ranges.length; i < len; i++) {\n                if (Range.containsPosition(ranges[i], position)) {\n                    foundReferenceRange = true;\n                    if (i !== 0) {\n                        const referenceRange = ranges[i];\n                        ranges.splice(i, 1);\n                        ranges.unshift(referenceRange);\n                    }\n                    break;\n                }\n            }\n            if (!foundReferenceRange) {\n                // Cannot do linked editing if the ranges are not where the cursor is...\n                this.clearRanges();\n                return;\n            }\n            const decorations = ranges.map(range => ({ range: range, options: LinkedEditingContribution_1.DECORATION }));\n            this._visibleContextKey.set(true);\n            this._currentDecorations.set(decorations);\n            this._syncRangesToken++; // cancel any pending syncRanges call\n        }\n        catch (err) {\n            if (!isCancellationError(err)) {\n                onUnexpectedError(err);\n            }\n            if (this._currentRequestCts === currentRequestCts || !this._currentRequestCts) {\n                // stop if we are still the latest request\n                this.clearRanges();\n            }\n        }\n    }\n};\nLinkedEditingContribution.ID = 'editor.contrib.linkedEditing';\nLinkedEditingContribution.DECORATION = ModelDecorationOptions.register({\n    description: 'linked-editing',\n    stickiness: 0 /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */,\n    className: DECORATION_CLASS_NAME\n});\nLinkedEditingContribution = LinkedEditingContribution_1 = __decorate([\n    __param(1, IContextKeyService),\n    __param(2, ILanguageFeaturesService),\n    __param(3, ILanguageConfigurationService),\n    __param(4, ILanguageFeatureDebounceService)\n], LinkedEditingContribution);\nexport { LinkedEditingContribution };\nexport class LinkedEditingAction extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.linkedEditing',\n            label: nls.localize('linkedEditing.label', \"Start Linked Editing\"),\n            alias: 'Start Linked Editing',\n            precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasRenameProvider),\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 60 /* KeyCode.F2 */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    runCommand(accessor, args) {\n        const editorService = accessor.get(ICodeEditorService);\n        const [uri, pos] = Array.isArray(args) && args || [undefined, undefined];\n        if (URI.isUri(uri) && Position.isIPosition(pos)) {\n            return editorService.openCodeEditor({ resource: uri }, editorService.getActiveCodeEditor()).then(editor => {\n                if (!editor) {\n                    return;\n                }\n                editor.setPosition(pos);\n                editor.invokeWithinContext(accessor => {\n                    this.reportTelemetry(accessor, editor);\n                    return this.run(accessor, editor);\n                });\n            }, onUnexpectedError);\n        }\n        return super.runCommand(accessor, args);\n    }\n    run(_accessor, editor) {\n        const controller = LinkedEditingContribution.get(editor);\n        if (controller) {\n            return Promise.resolve(controller.updateRanges(true));\n        }\n        return Promise.resolve();\n    }\n}\nconst LinkedEditingCommand = EditorCommand.bindToContribution(LinkedEditingContribution.get);\nregisterEditorCommand(new LinkedEditingCommand({\n    id: 'cancelLinkedEditingInput',\n    precondition: CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE,\n    handler: x => x.clearRanges(),\n    kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        weight: 100 /* KeybindingWeight.EditorContrib */ + 99,\n        primary: 9 /* KeyCode.Escape */,\n        secondary: [1024 /* KeyMod.Shift */ | 9 /* KeyCode.Escape */]\n    }\n}));\nfunction getLinkedEditingRanges(providers, model, position, token) {\n    const orderedByScore = providers.ordered(model);\n    // in order of score ask the linked editing range provider\n    // until someone response with a good result\n    // (good = not null)\n    return first(orderedByScore.map(provider => async () => {\n        try {\n            return await provider.provideLinkedEditingRanges(model, position, token);\n        }\n        catch (e) {\n            onUnexpectedExternalError(e);\n            return undefined;\n        }\n    }), result => !!result && arrays.isNonEmptyArray(result === null || result === void 0 ? void 0 : result.ranges));\n}\nexport const editorLinkedEditingBackground = registerColor('editor.linkedEditingBackground', { dark: Color.fromHex('#f00').transparent(0.3), light: Color.fromHex('#f00').transparent(0.3), hcDark: Color.fromHex('#f00').transparent(0.3), hcLight: Color.white }, nls.localize('editorLinkedEditingBackground', 'Background color when the editor auto renames on type.'));\nregisterModelAndPositionCommand('_executeLinkedEditingProvider', (_accessor, model, position) => {\n    const { linkedEditingRangeProvider } = _accessor.get(ILanguageFeaturesService);\n    return getLinkedEditingRanges(linkedEditingRangeProvider, model, position, CancellationToken.None);\n});\nregisterEditorContribution(LinkedEditingContribution.ID, LinkedEditingContribution, 1 /* EditorContributionInstantiation.AfterFirstRender */);\nregisterEditorAction(LinkedEditingAction);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/links/browser/getLinks.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { coalesce } from '../../../../base/common/arrays.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { DisposableStore, isDisposable } from '../../../../base/common/lifecycle.js';\nimport { assertType } from '../../../../base/common/types.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport { Range } from '../../../common/core/range.js';\nimport { IModelService } from '../../../common/services/model.js';\nimport { CommandsRegistry } from '../../../../platform/commands/common/commands.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nexport class Link {\n    constructor(link, provider) {\n        this._link = link;\n        this._provider = provider;\n    }\n    toJSON() {\n        return {\n            range: this.range,\n            url: this.url,\n            tooltip: this.tooltip\n        };\n    }\n    get range() {\n        return this._link.range;\n    }\n    get url() {\n        return this._link.url;\n    }\n    get tooltip() {\n        return this._link.tooltip;\n    }\n    async resolve(token) {\n        if (this._link.url) {\n            return this._link.url;\n        }\n        if (typeof this._provider.resolveLink === 'function') {\n            return Promise.resolve(this._provider.resolveLink(this._link, token)).then(value => {\n                this._link = value || this._link;\n                if (this._link.url) {\n                    // recurse\n                    return this.resolve(token);\n                }\n                return Promise.reject(new Error('missing'));\n            });\n        }\n        return Promise.reject(new Error('missing'));\n    }\n}\nexport class LinksList {\n    constructor(tuples) {\n        this._disposables = new DisposableStore();\n        let links = [];\n        for (const [list, provider] of tuples) {\n            // merge all links\n            const newLinks = list.links.map(link => new Link(link, provider));\n            links = LinksList._union(links, newLinks);\n            // register disposables\n            if (isDisposable(list)) {\n                this._disposables.add(list);\n            }\n        }\n        this.links = links;\n    }\n    dispose() {\n        this._disposables.dispose();\n        this.links.length = 0;\n    }\n    static _union(oldLinks, newLinks) {\n        // reunite oldLinks with newLinks and remove duplicates\n        const result = [];\n        let oldIndex;\n        let oldLen;\n        let newIndex;\n        let newLen;\n        for (oldIndex = 0, newIndex = 0, oldLen = oldLinks.length, newLen = newLinks.length; oldIndex < oldLen && newIndex < newLen;) {\n            const oldLink = oldLinks[oldIndex];\n            const newLink = newLinks[newIndex];\n            if (Range.areIntersectingOrTouching(oldLink.range, newLink.range)) {\n                // Remove the oldLink\n                oldIndex++;\n                continue;\n            }\n            const comparisonResult = Range.compareRangesUsingStarts(oldLink.range, newLink.range);\n            if (comparisonResult < 0) {\n                // oldLink is before\n                result.push(oldLink);\n                oldIndex++;\n            }\n            else {\n                // newLink is before\n                result.push(newLink);\n                newIndex++;\n            }\n        }\n        for (; oldIndex < oldLen; oldIndex++) {\n            result.push(oldLinks[oldIndex]);\n        }\n        for (; newIndex < newLen; newIndex++) {\n            result.push(newLinks[newIndex]);\n        }\n        return result;\n    }\n}\nexport function getLinks(providers, model, token) {\n    const lists = [];\n    // ask all providers for links in parallel\n    const promises = providers.ordered(model).reverse().map((provider, i) => {\n        return Promise.resolve(provider.provideLinks(model, token)).then(result => {\n            if (result) {\n                lists[i] = [result, provider];\n            }\n        }, onUnexpectedExternalError);\n    });\n    return Promise.all(promises).then(() => {\n        const result = new LinksList(coalesce(lists));\n        if (!token.isCancellationRequested) {\n            return result;\n        }\n        result.dispose();\n        return new LinksList([]);\n    });\n}\nCommandsRegistry.registerCommand('_executeLinkProvider', async (accessor, ...args) => {\n    let [uri, resolveCount] = args;\n    assertType(uri instanceof URI);\n    if (typeof resolveCount !== 'number') {\n        resolveCount = 0;\n    }\n    const { linkProvider } = accessor.get(ILanguageFeaturesService);\n    const model = accessor.get(IModelService).getModel(uri);\n    if (!model) {\n        return [];\n    }\n    const list = await getLinks(linkProvider, model, CancellationToken.None);\n    if (!list) {\n        return [];\n    }\n    // resolve links\n    for (let i = 0; i < Math.min(resolveCount, list.links.length); i++) {\n        await list.links[i].resolve(CancellationToken.None);\n    }\n    const result = list.links.slice(0);\n    list.dispose();\n    return result;\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/links/browser/links.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n.monaco-editor .detected-link,\n.monaco-editor .detected-link-active {\n\ttext-decoration: underline;\n\ttext-underline-position: under;\n}\n\n.monaco-editor .detected-link-active {\n\tcursor: pointer;\n\tcolor: var(--vscode-editorLink-activeForeground) !important;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/links/browser/links.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/links/browser/links.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar LinkDetector_1;\nimport { createCancelablePromise, RunOnceScheduler } from '../../../../base/common/async.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { onUnexpectedError } from '../../../../base/common/errors.js';\nimport { MarkdownString } from '../../../../base/common/htmlContent.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { Schemas } from '../../../../base/common/network.js';\nimport * as platform from '../../../../base/common/platform.js';\nimport * as resources from '../../../../base/common/resources.js';\nimport { StopWatch } from '../../../../base/common/stopwatch.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport './links.css';\nimport { EditorAction, registerEditorAction, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { ILanguageFeatureDebounceService } from '../../../common/services/languageFeatureDebounce.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { ClickLinkGesture } from '../../gotoSymbol/browser/link/clickLinkGesture.js';\nimport { getLinks } from './getLinks.js';\nimport * as nls from '../../../../nls.js';\nimport { INotificationService } from '../../../../platform/notification/common/notification.js';\nimport { IOpenerService } from '../../../../platform/opener/common/opener.js';\nlet LinkDetector = LinkDetector_1 = class LinkDetector extends Disposable {\n    static get(editor) {\n        return editor.getContribution(LinkDetector_1.ID);\n    }\n    constructor(editor, openerService, notificationService, languageFeaturesService, languageFeatureDebounceService) {\n        super();\n        this.editor = editor;\n        this.openerService = openerService;\n        this.notificationService = notificationService;\n        this.languageFeaturesService = languageFeaturesService;\n        this.providers = this.languageFeaturesService.linkProvider;\n        this.debounceInformation = languageFeatureDebounceService.for(this.providers, 'Links', { min: 1000, max: 4000 });\n        this.computeLinks = this._register(new RunOnceScheduler(() => this.computeLinksNow(), 1000));\n        this.computePromise = null;\n        this.activeLinksList = null;\n        this.currentOccurrences = {};\n        this.activeLinkDecorationId = null;\n        const clickLinkGesture = this._register(new ClickLinkGesture(editor));\n        this._register(clickLinkGesture.onMouseMoveOrRelevantKeyDown(([mouseEvent, keyboardEvent]) => {\n            this._onEditorMouseMove(mouseEvent, keyboardEvent);\n        }));\n        this._register(clickLinkGesture.onExecute((e) => {\n            this.onEditorMouseUp(e);\n        }));\n        this._register(clickLinkGesture.onCancel((e) => {\n            this.cleanUpActiveLinkDecoration();\n        }));\n        this._register(editor.onDidChangeConfiguration((e) => {\n            if (!e.hasChanged(71 /* EditorOption.links */)) {\n                return;\n            }\n            // Remove any links (for the getting disabled case)\n            this.updateDecorations([]);\n            // Stop any computation (for the getting disabled case)\n            this.stop();\n            // Start computing (for the getting enabled case)\n            this.computeLinks.schedule(0);\n        }));\n        this._register(editor.onDidChangeModelContent((e) => {\n            if (!this.editor.hasModel()) {\n                return;\n            }\n            this.computeLinks.schedule(this.debounceInformation.get(this.editor.getModel()));\n        }));\n        this._register(editor.onDidChangeModel((e) => {\n            this.currentOccurrences = {};\n            this.activeLinkDecorationId = null;\n            this.stop();\n            this.computeLinks.schedule(0);\n        }));\n        this._register(editor.onDidChangeModelLanguage((e) => {\n            this.stop();\n            this.computeLinks.schedule(0);\n        }));\n        this._register(this.providers.onDidChange((e) => {\n            this.stop();\n            this.computeLinks.schedule(0);\n        }));\n        this.computeLinks.schedule(0);\n    }\n    async computeLinksNow() {\n        if (!this.editor.hasModel() || !this.editor.getOption(71 /* EditorOption.links */)) {\n            return;\n        }\n        const model = this.editor.getModel();\n        if (model.isTooLargeForSyncing()) {\n            return;\n        }\n        if (!this.providers.has(model)) {\n            return;\n        }\n        if (this.activeLinksList) {\n            this.activeLinksList.dispose();\n            this.activeLinksList = null;\n        }\n        this.computePromise = createCancelablePromise(token => getLinks(this.providers, model, token));\n        try {\n            const sw = new StopWatch(false);\n            this.activeLinksList = await this.computePromise;\n            this.debounceInformation.update(model, sw.elapsed());\n            if (model.isDisposed()) {\n                return;\n            }\n            this.updateDecorations(this.activeLinksList.links);\n        }\n        catch (err) {\n            onUnexpectedError(err);\n        }\n        finally {\n            this.computePromise = null;\n        }\n    }\n    updateDecorations(links) {\n        const useMetaKey = (this.editor.getOption(78 /* EditorOption.multiCursorModifier */) === 'altKey');\n        const oldDecorations = [];\n        const keys = Object.keys(this.currentOccurrences);\n        for (const decorationId of keys) {\n            const occurence = this.currentOccurrences[decorationId];\n            oldDecorations.push(occurence.decorationId);\n        }\n        const newDecorations = [];\n        if (links) {\n            // Not sure why this is sometimes null\n            for (const link of links) {\n                newDecorations.push(LinkOccurrence.decoration(link, useMetaKey));\n            }\n        }\n        this.editor.changeDecorations((changeAccessor) => {\n            const decorations = changeAccessor.deltaDecorations(oldDecorations, newDecorations);\n            this.currentOccurrences = {};\n            this.activeLinkDecorationId = null;\n            for (let i = 0, len = decorations.length; i < len; i++) {\n                const occurence = new LinkOccurrence(links[i], decorations[i]);\n                this.currentOccurrences[occurence.decorationId] = occurence;\n            }\n        });\n    }\n    _onEditorMouseMove(mouseEvent, withKey) {\n        const useMetaKey = (this.editor.getOption(78 /* EditorOption.multiCursorModifier */) === 'altKey');\n        if (this.isEnabled(mouseEvent, withKey)) {\n            this.cleanUpActiveLinkDecoration(); // always remove previous link decoration as their can only be one\n            const occurrence = this.getLinkOccurrence(mouseEvent.target.position);\n            if (occurrence) {\n                this.editor.changeDecorations((changeAccessor) => {\n                    occurrence.activate(changeAccessor, useMetaKey);\n                    this.activeLinkDecorationId = occurrence.decorationId;\n                });\n            }\n        }\n        else {\n            this.cleanUpActiveLinkDecoration();\n        }\n    }\n    cleanUpActiveLinkDecoration() {\n        const useMetaKey = (this.editor.getOption(78 /* EditorOption.multiCursorModifier */) === 'altKey');\n        if (this.activeLinkDecorationId) {\n            const occurrence = this.currentOccurrences[this.activeLinkDecorationId];\n            if (occurrence) {\n                this.editor.changeDecorations((changeAccessor) => {\n                    occurrence.deactivate(changeAccessor, useMetaKey);\n                });\n            }\n            this.activeLinkDecorationId = null;\n        }\n    }\n    onEditorMouseUp(mouseEvent) {\n        if (!this.isEnabled(mouseEvent)) {\n            return;\n        }\n        const occurrence = this.getLinkOccurrence(mouseEvent.target.position);\n        if (!occurrence) {\n            return;\n        }\n        this.openLinkOccurrence(occurrence, mouseEvent.hasSideBySideModifier, true /* from user gesture */);\n    }\n    openLinkOccurrence(occurrence, openToSide, fromUserGesture = false) {\n        if (!this.openerService) {\n            return;\n        }\n        const { link } = occurrence;\n        link.resolve(CancellationToken.None).then(uri => {\n            // Support for relative file URIs of the shape file://./relativeFile.txt or file:///./relativeFile.txt\n            if (typeof uri === 'string' && this.editor.hasModel()) {\n                const modelUri = this.editor.getModel().uri;\n                if (modelUri.scheme === Schemas.file && uri.startsWith(`${Schemas.file}:`)) {\n                    const parsedUri = URI.parse(uri);\n                    if (parsedUri.scheme === Schemas.file) {\n                        const fsPath = resources.originalFSPath(parsedUri);\n                        let relativePath = null;\n                        if (fsPath.startsWith('/./') || fsPath.startsWith('\\\\.\\\\')) {\n                            relativePath = `.${fsPath.substr(1)}`;\n                        }\n                        else if (fsPath.startsWith('//./') || fsPath.startsWith('\\\\\\\\.\\\\')) {\n                            relativePath = `.${fsPath.substr(2)}`;\n                        }\n                        if (relativePath) {\n                            uri = resources.joinPath(modelUri, relativePath);\n                        }\n                    }\n                }\n            }\n            return this.openerService.open(uri, { openToSide, fromUserGesture, allowContributedOpeners: true, allowCommands: true, fromWorkspace: true });\n        }, err => {\n            const messageOrError = err instanceof Error ? err.message : err;\n            // different error cases\n            if (messageOrError === 'invalid') {\n                this.notificationService.warn(nls.localize('invalid.url', 'Failed to open this link because it is not well-formed: {0}', link.url.toString()));\n            }\n            else if (messageOrError === 'missing') {\n                this.notificationService.warn(nls.localize('missing.url', 'Failed to open this link because its target is missing.'));\n            }\n            else {\n                onUnexpectedError(err);\n            }\n        });\n    }\n    getLinkOccurrence(position) {\n        if (!this.editor.hasModel() || !position) {\n            return null;\n        }\n        const decorations = this.editor.getModel().getDecorationsInRange({\n            startLineNumber: position.lineNumber,\n            startColumn: position.column,\n            endLineNumber: position.lineNumber,\n            endColumn: position.column\n        }, 0, true);\n        for (const decoration of decorations) {\n            const currentOccurrence = this.currentOccurrences[decoration.id];\n            if (currentOccurrence) {\n                return currentOccurrence;\n            }\n        }\n        return null;\n    }\n    isEnabled(mouseEvent, withKey) {\n        return Boolean((mouseEvent.target.type === 6 /* MouseTargetType.CONTENT_TEXT */)\n            && (mouseEvent.hasTriggerModifier || (withKey && withKey.keyCodeIsTriggerKey)));\n    }\n    stop() {\n        var _a;\n        this.computeLinks.cancel();\n        if (this.activeLinksList) {\n            (_a = this.activeLinksList) === null || _a === void 0 ? void 0 : _a.dispose();\n            this.activeLinksList = null;\n        }\n        if (this.computePromise) {\n            this.computePromise.cancel();\n            this.computePromise = null;\n        }\n    }\n    dispose() {\n        super.dispose();\n        this.stop();\n    }\n};\nLinkDetector.ID = 'editor.linkDetector';\nLinkDetector = LinkDetector_1 = __decorate([\n    __param(1, IOpenerService),\n    __param(2, INotificationService),\n    __param(3, ILanguageFeaturesService),\n    __param(4, ILanguageFeatureDebounceService)\n], LinkDetector);\nexport { LinkDetector };\nconst decoration = {\n    general: ModelDecorationOptions.register({\n        description: 'detected-link',\n        stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n        collapseOnReplaceEdit: true,\n        inlineClassName: 'detected-link'\n    }),\n    active: ModelDecorationOptions.register({\n        description: 'detected-link-active',\n        stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n        collapseOnReplaceEdit: true,\n        inlineClassName: 'detected-link-active'\n    })\n};\nclass LinkOccurrence {\n    static decoration(link, useMetaKey) {\n        return {\n            range: link.range,\n            options: LinkOccurrence._getOptions(link, useMetaKey, false)\n        };\n    }\n    static _getOptions(link, useMetaKey, isActive) {\n        const options = { ...(isActive ? decoration.active : decoration.general) };\n        options.hoverMessage = getHoverMessage(link, useMetaKey);\n        return options;\n    }\n    constructor(link, decorationId) {\n        this.link = link;\n        this.decorationId = decorationId;\n    }\n    activate(changeAccessor, useMetaKey) {\n        changeAccessor.changeDecorationOptions(this.decorationId, LinkOccurrence._getOptions(this.link, useMetaKey, true));\n    }\n    deactivate(changeAccessor, useMetaKey) {\n        changeAccessor.changeDecorationOptions(this.decorationId, LinkOccurrence._getOptions(this.link, useMetaKey, false));\n    }\n}\nfunction getHoverMessage(link, useMetaKey) {\n    const executeCmd = link.url && /^command:/i.test(link.url.toString());\n    const label = link.tooltip\n        ? link.tooltip\n        : executeCmd\n            ? nls.localize('links.navigate.executeCmd', 'Execute command')\n            : nls.localize('links.navigate.follow', 'Follow link');\n    const kb = useMetaKey\n        ? platform.isMacintosh\n            ? nls.localize('links.navigate.kb.meta.mac', \"cmd + click\")\n            : nls.localize('links.navigate.kb.meta', \"ctrl + click\")\n        : platform.isMacintosh\n            ? nls.localize('links.navigate.kb.alt.mac', \"option + click\")\n            : nls.localize('links.navigate.kb.alt', \"alt + click\");\n    if (link.url) {\n        let nativeLabel = '';\n        if (/^command:/i.test(link.url.toString())) {\n            // Don't show complete command arguments in the native tooltip\n            const match = link.url.toString().match(/^command:([^?#]+)/);\n            if (match) {\n                const commandId = match[1];\n                nativeLabel = nls.localize('tooltip.explanation', \"Execute command {0}\", commandId);\n            }\n        }\n        const hoverMessage = new MarkdownString('', true)\n            .appendLink(link.url.toString(true).replace(/ /g, '%20'), label, nativeLabel)\n            .appendMarkdown(` (${kb})`);\n        return hoverMessage;\n    }\n    else {\n        return new MarkdownString().appendText(`${label} (${kb})`);\n    }\n}\nclass OpenLinkAction extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.openLink',\n            label: nls.localize('label', \"Open Link\"),\n            alias: 'Open Link',\n            precondition: undefined\n        });\n    }\n    run(accessor, editor) {\n        const linkDetector = LinkDetector.get(editor);\n        if (!linkDetector) {\n            return;\n        }\n        if (!editor.hasModel()) {\n            return;\n        }\n        const selections = editor.getSelections();\n        for (const sel of selections) {\n            const link = linkDetector.getLinkOccurrence(sel.getEndPosition());\n            if (link) {\n                linkDetector.openLinkOccurrence(link, false);\n            }\n        }\n    }\n}\nregisterEditorContribution(LinkDetector.ID, LinkDetector, 1 /* EditorContributionInstantiation.AfterFirstRender */);\nregisterEditorAction(OpenLinkAction);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/longLinesHelper/browser/longLinesHelper.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/longLinesHelper/browser/longLinesHelper.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nclass LongLinesHelper extends Disposable {\n    constructor(_editor) {\n        super();\n        this._editor = _editor;\n        this._register(this._editor.onMouseDown((e) => {\n            const stopRenderingLineAfter = this._editor.getOption(117 /* EditorOption.stopRenderingLineAfter */);\n            if (stopRenderingLineAfter >= 0 && e.target.type === 6 /* MouseTargetType.CONTENT_TEXT */ && e.target.position.column >= stopRenderingLineAfter) {\n                this._editor.updateOptions({\n                    stopRenderingLineAfter: -1\n                });\n            }\n        }));\n    }\n}\nLongLinesHelper.ID = 'editor.contrib.longLinesHelper';\nregisterEditorContribution(LongLinesHelper.ID, LongLinesHelper, 2 /* EditorContributionInstantiation.BeforeFirstInteraction */);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/message/browser/messageController.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .monaco-editor-overlaymessage {\n\tpadding-bottom: 8px;\n\tz-index: 10000;\n}\n\n.monaco-editor .monaco-editor-overlaymessage.below {\n\tpadding-bottom: 0;\n\tpadding-top: 8px;\n\tz-index: 10000;\n}\n\n@keyframes fadeIn {\n\tfrom { opacity: 0; }\n\tto { opacity: 1; }\n}\n.monaco-editor .monaco-editor-overlaymessage.fadeIn {\n\tanimation: fadeIn 150ms ease-out;\n}\n\n@keyframes fadeOut {\n\tfrom { opacity: 1; }\n\tto { opacity: 0; }\n}\n.monaco-editor .monaco-editor-overlaymessage.fadeOut {\n\tanimation: fadeOut 100ms ease-out;\n}\n\n.monaco-editor .monaco-editor-overlaymessage .message {\n\tpadding: 2px 4px;\n\tcolor: var(--vscode-editorHoverWidget-foreground);\n\tbackground-color: var(--vscode-editorHoverWidget-background);\n\tborder: 1px solid var(--vscode-inputValidation-infoBorder);\n\tborder-radius: 3px;\n}\n\n.monaco-editor .monaco-editor-overlaymessage .message p {\n\tmargin-block: 0px;\n}\n\n.monaco-editor .monaco-editor-overlaymessage .message a {\n\tcolor: var(--vscode-textLink-foreground);\n}\n\n.monaco-editor .monaco-editor-overlaymessage .message a:hover {\n\tcolor: var(--vscode-textLink-activeForeground);\n}\n\n.monaco-editor.hc-black .monaco-editor-overlaymessage .message,\n.monaco-editor.hc-light .monaco-editor-overlaymessage .message {\n\tborder-width: 2px;\n}\n\n.monaco-editor .monaco-editor-overlaymessage .anchor {\n\twidth: 0 !important;\n\theight: 0 !important;\n\tborder-color: transparent;\n\tborder-style: solid;\n\tz-index: 1000;\n\tborder-width: 8px;\n\tposition: absolute;\n\tleft: 2px;\n}\n\n.monaco-editor .monaco-editor-overlaymessage .anchor.top {\n\tborder-bottom-color: var(--vscode-inputValidation-infoBorder);\n}\n\n.monaco-editor .monaco-editor-overlaymessage .anchor.below {\n\tborder-top-color: var(--vscode-inputValidation-infoBorder);\n}\n\n.monaco-editor .monaco-editor-overlaymessage:not(.below) .anchor.top,\n.monaco-editor .monaco-editor-overlaymessage.below .anchor.below {\n\tdisplay: none;\n}\n\n.monaco-editor .monaco-editor-overlaymessage.below .anchor.top {\n\tdisplay: inherit;\n\ttop: -8px;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/message/browser/messageController.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar MessageController_1;\nimport { renderMarkdown } from '../../../../base/browser/markdownRenderer.js';\nimport { alert } from '../../../../base/browser/ui/aria/aria.js';\nimport { Event } from '../../../../base/common/event.js';\nimport { isMarkdownString } from '../../../../base/common/htmlContent.js';\nimport { DisposableStore, MutableDisposable } from '../../../../base/common/lifecycle.js';\nimport './messageController.css';\nimport { EditorCommand, registerEditorCommand, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { Range } from '../../../common/core/range.js';\nimport { openLinkFromMarkdown } from '../../../browser/widget/markdownRenderer/browser/markdownRenderer.js';\nimport * as nls from '../../../../nls.js';\nimport { IContextKeyService, RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IOpenerService } from '../../../../platform/opener/common/opener.js';\nimport * as dom from '../../../../base/browser/dom.js';\nlet MessageController = MessageController_1 = class MessageController {\n    static get(editor) {\n        return editor.getContribution(MessageController_1.ID);\n    }\n    constructor(editor, contextKeyService, _openerService) {\n        this._openerService = _openerService;\n        this._messageWidget = new MutableDisposable();\n        this._messageListeners = new DisposableStore();\n        this._mouseOverMessage = false;\n        this._editor = editor;\n        this._visible = MessageController_1.MESSAGE_VISIBLE.bindTo(contextKeyService);\n    }\n    dispose() {\n        var _a;\n        (_a = this._message) === null || _a === void 0 ? void 0 : _a.dispose();\n        this._messageListeners.dispose();\n        this._messageWidget.dispose();\n        this._visible.reset();\n    }\n    showMessage(message, position) {\n        alert(isMarkdownString(message) ? message.value : message);\n        this._visible.set(true);\n        this._messageWidget.clear();\n        this._messageListeners.clear();\n        this._message = isMarkdownString(message) ? renderMarkdown(message, {\n            actionHandler: {\n                callback: (url) => {\n                    this.closeMessage();\n                    openLinkFromMarkdown(this._openerService, url, isMarkdownString(message) ? message.isTrusted : undefined);\n                },\n                disposables: this._messageListeners\n            },\n        }) : undefined;\n        this._messageWidget.value = new MessageWidget(this._editor, position, typeof message === 'string' ? message : this._message.element);\n        // close on blur (debounced to allow to tab into the message), cursor, model change, dispose\n        this._messageListeners.add(Event.debounce(this._editor.onDidBlurEditorText, (last, event) => event, 0)(() => {\n            if (this._mouseOverMessage) {\n                return; // override when mouse over message\n            }\n            if (this._messageWidget.value && dom.isAncestor(dom.getActiveElement(), this._messageWidget.value.getDomNode())) {\n                return; // override when focus is inside the message\n            }\n            this.closeMessage();\n        }));\n        this._messageListeners.add(this._editor.onDidChangeCursorPosition(() => this.closeMessage()));\n        this._messageListeners.add(this._editor.onDidDispose(() => this.closeMessage()));\n        this._messageListeners.add(this._editor.onDidChangeModel(() => this.closeMessage()));\n        this._messageListeners.add(dom.addDisposableListener(this._messageWidget.value.getDomNode(), dom.EventType.MOUSE_ENTER, () => this._mouseOverMessage = true, true));\n        this._messageListeners.add(dom.addDisposableListener(this._messageWidget.value.getDomNode(), dom.EventType.MOUSE_LEAVE, () => this._mouseOverMessage = false, true));\n        // close on mouse move\n        let bounds;\n        this._messageListeners.add(this._editor.onMouseMove(e => {\n            // outside the text area\n            if (!e.target.position) {\n                return;\n            }\n            if (!bounds) {\n                // define bounding box around position and first mouse occurance\n                bounds = new Range(position.lineNumber - 3, 1, e.target.position.lineNumber + 3, 1);\n            }\n            else if (!bounds.containsPosition(e.target.position)) {\n                // check if position is still in bounds\n                this.closeMessage();\n            }\n        }));\n    }\n    closeMessage() {\n        this._visible.reset();\n        this._messageListeners.clear();\n        if (this._messageWidget.value) {\n            this._messageListeners.add(MessageWidget.fadeOut(this._messageWidget.value));\n        }\n    }\n};\nMessageController.ID = 'editor.contrib.messageController';\nMessageController.MESSAGE_VISIBLE = new RawContextKey('messageVisible', false, nls.localize('messageVisible', 'Whether the editor is currently showing an inline message'));\nMessageController = MessageController_1 = __decorate([\n    __param(1, IContextKeyService),\n    __param(2, IOpenerService)\n], MessageController);\nexport { MessageController };\nconst MessageCommand = EditorCommand.bindToContribution(MessageController.get);\nregisterEditorCommand(new MessageCommand({\n    id: 'leaveEditorMessage',\n    precondition: MessageController.MESSAGE_VISIBLE,\n    handler: c => c.closeMessage(),\n    kbOpts: {\n        weight: 100 /* KeybindingWeight.EditorContrib */ + 30,\n        primary: 9 /* KeyCode.Escape */\n    }\n}));\nclass MessageWidget {\n    static fadeOut(messageWidget) {\n        const dispose = () => {\n            messageWidget.dispose();\n            clearTimeout(handle);\n            messageWidget.getDomNode().removeEventListener('animationend', dispose);\n        };\n        const handle = setTimeout(dispose, 110);\n        messageWidget.getDomNode().addEventListener('animationend', dispose);\n        messageWidget.getDomNode().classList.add('fadeOut');\n        return { dispose };\n    }\n    constructor(editor, { lineNumber, column }, text) {\n        // Editor.IContentWidget.allowEditorOverflow\n        this.allowEditorOverflow = true;\n        this.suppressMouseDown = false;\n        this._editor = editor;\n        this._editor.revealLinesInCenterIfOutsideViewport(lineNumber, lineNumber, 0 /* ScrollType.Smooth */);\n        this._position = { lineNumber, column };\n        this._domNode = document.createElement('div');\n        this._domNode.classList.add('monaco-editor-overlaymessage');\n        this._domNode.style.marginLeft = '-6px';\n        const anchorTop = document.createElement('div');\n        anchorTop.classList.add('anchor', 'top');\n        this._domNode.appendChild(anchorTop);\n        const message = document.createElement('div');\n        if (typeof text === 'string') {\n            message.classList.add('message');\n            message.textContent = text;\n        }\n        else {\n            text.classList.add('message');\n            message.appendChild(text);\n        }\n        this._domNode.appendChild(message);\n        const anchorBottom = document.createElement('div');\n        anchorBottom.classList.add('anchor', 'below');\n        this._domNode.appendChild(anchorBottom);\n        this._editor.addContentWidget(this);\n        this._domNode.classList.add('fadeIn');\n    }\n    dispose() {\n        this._editor.removeContentWidget(this);\n    }\n    getId() {\n        return 'messageoverlay';\n    }\n    getDomNode() {\n        return this._domNode;\n    }\n    getPosition() {\n        return {\n            position: this._position,\n            preference: [\n                1 /* ContentWidgetPositionPreference.ABOVE */,\n                2 /* ContentWidgetPositionPreference.BELOW */,\n            ],\n            positionAffinity: 1 /* PositionAffinity.Right */,\n        };\n    }\n    afterRender(position) {\n        this._domNode.classList.toggle('below', position === 2 /* ContentWidgetPositionPreference.BELOW */);\n    }\n}\nregisterEditorContribution(MessageController.ID, MessageController, 4 /* EditorContributionInstantiation.Lazy */);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/multicursor/browser/multicursor.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/multicursor/browser/multicursor.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar SelectionHighlighter_1;\nimport { status } from '../../../../base/browser/ui/aria/aria.js';\nimport { RunOnceScheduler } from '../../../../base/common/async.js';\nimport { KeyChord } from '../../../../base/common/keyCodes.js';\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { EditorAction, registerEditorAction, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { CursorMoveCommands } from '../../../common/cursor/cursorMoveCommands.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { CommonFindController } from '../../find/browser/findController.js';\nimport * as nls from '../../../../nls.js';\nimport { MenuId } from '../../../../platform/actions/common/actions.js';\nimport { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { getSelectionHighlightDecorationOptions } from '../../wordHighlighter/browser/highlightDecorations.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nfunction announceCursorChange(previousCursorState, cursorState) {\n    const cursorDiff = cursorState.filter(cs => !previousCursorState.find(pcs => pcs.equals(cs)));\n    if (cursorDiff.length >= 1) {\n        const cursorPositions = cursorDiff.map(cs => `line ${cs.viewState.position.lineNumber} column ${cs.viewState.position.column}`).join(', ');\n        const msg = cursorDiff.length === 1 ? nls.localize('cursorAdded', \"Cursor added: {0}\", cursorPositions) : nls.localize('cursorsAdded', \"Cursors added: {0}\", cursorPositions);\n        status(msg);\n    }\n}\nexport class InsertCursorAbove extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.insertCursorAbove',\n            label: nls.localize('mutlicursor.insertAbove', \"Add Cursor Above\"),\n            alias: 'Add Cursor Above',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 16 /* KeyCode.UpArrow */,\n                linux: {\n                    primary: 1024 /* KeyMod.Shift */ | 512 /* KeyMod.Alt */ | 16 /* KeyCode.UpArrow */,\n                    secondary: [2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 16 /* KeyCode.UpArrow */]\n                },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            menuOpts: {\n                menuId: MenuId.MenubarSelectionMenu,\n                group: '3_multi',\n                title: nls.localize({ key: 'miInsertCursorAbove', comment: ['&& denotes a mnemonic'] }, \"&&Add Cursor Above\"),\n                order: 2\n            }\n        });\n    }\n    run(accessor, editor, args) {\n        if (!editor.hasModel()) {\n            return;\n        }\n        let useLogicalLine = true;\n        if (args && args.logicalLine === false) {\n            useLogicalLine = false;\n        }\n        const viewModel = editor._getViewModel();\n        if (viewModel.cursorConfig.readOnly) {\n            return;\n        }\n        viewModel.model.pushStackElement();\n        const previousCursorState = viewModel.getCursorStates();\n        viewModel.setCursorStates(args.source, 3 /* CursorChangeReason.Explicit */, CursorMoveCommands.addCursorUp(viewModel, previousCursorState, useLogicalLine));\n        viewModel.revealTopMostCursor(args.source);\n        announceCursorChange(previousCursorState, viewModel.getCursorStates());\n    }\n}\nexport class InsertCursorBelow extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.insertCursorBelow',\n            label: nls.localize('mutlicursor.insertBelow', \"Add Cursor Below\"),\n            alias: 'Add Cursor Below',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 18 /* KeyCode.DownArrow */,\n                linux: {\n                    primary: 1024 /* KeyMod.Shift */ | 512 /* KeyMod.Alt */ | 18 /* KeyCode.DownArrow */,\n                    secondary: [2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 18 /* KeyCode.DownArrow */]\n                },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            menuOpts: {\n                menuId: MenuId.MenubarSelectionMenu,\n                group: '3_multi',\n                title: nls.localize({ key: 'miInsertCursorBelow', comment: ['&& denotes a mnemonic'] }, \"A&&dd Cursor Below\"),\n                order: 3\n            }\n        });\n    }\n    run(accessor, editor, args) {\n        if (!editor.hasModel()) {\n            return;\n        }\n        let useLogicalLine = true;\n        if (args && args.logicalLine === false) {\n            useLogicalLine = false;\n        }\n        const viewModel = editor._getViewModel();\n        if (viewModel.cursorConfig.readOnly) {\n            return;\n        }\n        viewModel.model.pushStackElement();\n        const previousCursorState = viewModel.getCursorStates();\n        viewModel.setCursorStates(args.source, 3 /* CursorChangeReason.Explicit */, CursorMoveCommands.addCursorDown(viewModel, previousCursorState, useLogicalLine));\n        viewModel.revealBottomMostCursor(args.source);\n        announceCursorChange(previousCursorState, viewModel.getCursorStates());\n    }\n}\nclass InsertCursorAtEndOfEachLineSelected extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.insertCursorAtEndOfEachLineSelected',\n            label: nls.localize('mutlicursor.insertAtEndOfEachLineSelected', \"Add Cursors to Line Ends\"),\n            alias: 'Add Cursors to Line Ends',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: 1024 /* KeyMod.Shift */ | 512 /* KeyMod.Alt */ | 39 /* KeyCode.KeyI */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            menuOpts: {\n                menuId: MenuId.MenubarSelectionMenu,\n                group: '3_multi',\n                title: nls.localize({ key: 'miInsertCursorAtEndOfEachLineSelected', comment: ['&& denotes a mnemonic'] }, \"Add C&&ursors to Line Ends\"),\n                order: 4\n            }\n        });\n    }\n    getCursorsForSelection(selection, model, result) {\n        if (selection.isEmpty()) {\n            return;\n        }\n        for (let i = selection.startLineNumber; i < selection.endLineNumber; i++) {\n            const currentLineMaxColumn = model.getLineMaxColumn(i);\n            result.push(new Selection(i, currentLineMaxColumn, i, currentLineMaxColumn));\n        }\n        if (selection.endColumn > 1) {\n            result.push(new Selection(selection.endLineNumber, selection.endColumn, selection.endLineNumber, selection.endColumn));\n        }\n    }\n    run(accessor, editor) {\n        if (!editor.hasModel()) {\n            return;\n        }\n        const model = editor.getModel();\n        const selections = editor.getSelections();\n        const viewModel = editor._getViewModel();\n        const previousCursorState = viewModel.getCursorStates();\n        const newSelections = [];\n        selections.forEach((sel) => this.getCursorsForSelection(sel, model, newSelections));\n        if (newSelections.length > 0) {\n            editor.setSelections(newSelections);\n        }\n        announceCursorChange(previousCursorState, viewModel.getCursorStates());\n    }\n}\nclass InsertCursorAtEndOfLineSelected extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.addCursorsToBottom',\n            label: nls.localize('mutlicursor.addCursorsToBottom', \"Add Cursors To Bottom\"),\n            alias: 'Add Cursors To Bottom',\n            precondition: undefined\n        });\n    }\n    run(accessor, editor) {\n        if (!editor.hasModel()) {\n            return;\n        }\n        const selections = editor.getSelections();\n        const lineCount = editor.getModel().getLineCount();\n        const newSelections = [];\n        for (let i = selections[0].startLineNumber; i <= lineCount; i++) {\n            newSelections.push(new Selection(i, selections[0].startColumn, i, selections[0].endColumn));\n        }\n        const viewModel = editor._getViewModel();\n        const previousCursorState = viewModel.getCursorStates();\n        if (newSelections.length > 0) {\n            editor.setSelections(newSelections);\n        }\n        announceCursorChange(previousCursorState, viewModel.getCursorStates());\n    }\n}\nclass InsertCursorAtTopOfLineSelected extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.addCursorsToTop',\n            label: nls.localize('mutlicursor.addCursorsToTop', \"Add Cursors To Top\"),\n            alias: 'Add Cursors To Top',\n            precondition: undefined\n        });\n    }\n    run(accessor, editor) {\n        if (!editor.hasModel()) {\n            return;\n        }\n        const selections = editor.getSelections();\n        const newSelections = [];\n        for (let i = selections[0].startLineNumber; i >= 1; i--) {\n            newSelections.push(new Selection(i, selections[0].startColumn, i, selections[0].endColumn));\n        }\n        const viewModel = editor._getViewModel();\n        const previousCursorState = viewModel.getCursorStates();\n        if (newSelections.length > 0) {\n            editor.setSelections(newSelections);\n        }\n        announceCursorChange(previousCursorState, viewModel.getCursorStates());\n    }\n}\nexport class MultiCursorSessionResult {\n    constructor(selections, revealRange, revealScrollType) {\n        this.selections = selections;\n        this.revealRange = revealRange;\n        this.revealScrollType = revealScrollType;\n    }\n}\nexport class MultiCursorSession {\n    static create(editor, findController) {\n        if (!editor.hasModel()) {\n            return null;\n        }\n        const findState = findController.getState();\n        // Find widget owns entirely what we search for if:\n        //  - focus is not in the editor (i.e. it is in the find widget)\n        //  - and the search widget is visible\n        //  - and the search string is non-empty\n        if (!editor.hasTextFocus() && findState.isRevealed && findState.searchString.length > 0) {\n            // Find widget owns what is searched for\n            return new MultiCursorSession(editor, findController, false, findState.searchString, findState.wholeWord, findState.matchCase, null);\n        }\n        // Otherwise, the selection gives the search text, and the find widget gives the search settings\n        // The exception is the find state disassociation case: when beginning with a single, collapsed selection\n        let isDisconnectedFromFindController = false;\n        let wholeWord;\n        let matchCase;\n        const selections = editor.getSelections();\n        if (selections.length === 1 && selections[0].isEmpty()) {\n            isDisconnectedFromFindController = true;\n            wholeWord = true;\n            matchCase = true;\n        }\n        else {\n            wholeWord = findState.wholeWord;\n            matchCase = findState.matchCase;\n        }\n        // Selection owns what is searched for\n        const s = editor.getSelection();\n        let searchText;\n        let currentMatch = null;\n        if (s.isEmpty()) {\n            // selection is empty => expand to current word\n            const word = editor.getConfiguredWordAtPosition(s.getStartPosition());\n            if (!word) {\n                return null;\n            }\n            searchText = word.word;\n            currentMatch = new Selection(s.startLineNumber, word.startColumn, s.startLineNumber, word.endColumn);\n        }\n        else {\n            searchText = editor.getModel().getValueInRange(s).replace(/\\r\\n/g, '\\n');\n        }\n        return new MultiCursorSession(editor, findController, isDisconnectedFromFindController, searchText, wholeWord, matchCase, currentMatch);\n    }\n    constructor(_editor, findController, isDisconnectedFromFindController, searchText, wholeWord, matchCase, currentMatch) {\n        this._editor = _editor;\n        this.findController = findController;\n        this.isDisconnectedFromFindController = isDisconnectedFromFindController;\n        this.searchText = searchText;\n        this.wholeWord = wholeWord;\n        this.matchCase = matchCase;\n        this.currentMatch = currentMatch;\n    }\n    addSelectionToNextFindMatch() {\n        if (!this._editor.hasModel()) {\n            return null;\n        }\n        const nextMatch = this._getNextMatch();\n        if (!nextMatch) {\n            return null;\n        }\n        const allSelections = this._editor.getSelections();\n        return new MultiCursorSessionResult(allSelections.concat(nextMatch), nextMatch, 0 /* ScrollType.Smooth */);\n    }\n    moveSelectionToNextFindMatch() {\n        if (!this._editor.hasModel()) {\n            return null;\n        }\n        const nextMatch = this._getNextMatch();\n        if (!nextMatch) {\n            return null;\n        }\n        const allSelections = this._editor.getSelections();\n        return new MultiCursorSessionResult(allSelections.slice(0, allSelections.length - 1).concat(nextMatch), nextMatch, 0 /* ScrollType.Smooth */);\n    }\n    _getNextMatch() {\n        if (!this._editor.hasModel()) {\n            return null;\n        }\n        if (this.currentMatch) {\n            const result = this.currentMatch;\n            this.currentMatch = null;\n            return result;\n        }\n        this.findController.highlightFindOptions();\n        const allSelections = this._editor.getSelections();\n        const lastAddedSelection = allSelections[allSelections.length - 1];\n        const nextMatch = this._editor.getModel().findNextMatch(this.searchText, lastAddedSelection.getEndPosition(), false, this.matchCase, this.wholeWord ? this._editor.getOption(131 /* EditorOption.wordSeparators */) : null, false);\n        if (!nextMatch) {\n            return null;\n        }\n        return new Selection(nextMatch.range.startLineNumber, nextMatch.range.startColumn, nextMatch.range.endLineNumber, nextMatch.range.endColumn);\n    }\n    addSelectionToPreviousFindMatch() {\n        if (!this._editor.hasModel()) {\n            return null;\n        }\n        const previousMatch = this._getPreviousMatch();\n        if (!previousMatch) {\n            return null;\n        }\n        const allSelections = this._editor.getSelections();\n        return new MultiCursorSessionResult(allSelections.concat(previousMatch), previousMatch, 0 /* ScrollType.Smooth */);\n    }\n    moveSelectionToPreviousFindMatch() {\n        if (!this._editor.hasModel()) {\n            return null;\n        }\n        const previousMatch = this._getPreviousMatch();\n        if (!previousMatch) {\n            return null;\n        }\n        const allSelections = this._editor.getSelections();\n        return new MultiCursorSessionResult(allSelections.slice(0, allSelections.length - 1).concat(previousMatch), previousMatch, 0 /* ScrollType.Smooth */);\n    }\n    _getPreviousMatch() {\n        if (!this._editor.hasModel()) {\n            return null;\n        }\n        if (this.currentMatch) {\n            const result = this.currentMatch;\n            this.currentMatch = null;\n            return result;\n        }\n        this.findController.highlightFindOptions();\n        const allSelections = this._editor.getSelections();\n        const lastAddedSelection = allSelections[allSelections.length - 1];\n        const previousMatch = this._editor.getModel().findPreviousMatch(this.searchText, lastAddedSelection.getStartPosition(), false, this.matchCase, this.wholeWord ? this._editor.getOption(131 /* EditorOption.wordSeparators */) : null, false);\n        if (!previousMatch) {\n            return null;\n        }\n        return new Selection(previousMatch.range.startLineNumber, previousMatch.range.startColumn, previousMatch.range.endLineNumber, previousMatch.range.endColumn);\n    }\n    selectAll(searchScope) {\n        if (!this._editor.hasModel()) {\n            return [];\n        }\n        this.findController.highlightFindOptions();\n        const editorModel = this._editor.getModel();\n        if (searchScope) {\n            return editorModel.findMatches(this.searchText, searchScope, false, this.matchCase, this.wholeWord ? this._editor.getOption(131 /* EditorOption.wordSeparators */) : null, false, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */);\n        }\n        return editorModel.findMatches(this.searchText, true, false, this.matchCase, this.wholeWord ? this._editor.getOption(131 /* EditorOption.wordSeparators */) : null, false, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */);\n    }\n}\nexport class MultiCursorSelectionController extends Disposable {\n    static get(editor) {\n        return editor.getContribution(MultiCursorSelectionController.ID);\n    }\n    constructor(editor) {\n        super();\n        this._sessionDispose = this._register(new DisposableStore());\n        this._editor = editor;\n        this._ignoreSelectionChange = false;\n        this._session = null;\n    }\n    dispose() {\n        this._endSession();\n        super.dispose();\n    }\n    _beginSessionIfNeeded(findController) {\n        if (!this._session) {\n            // Create a new session\n            const session = MultiCursorSession.create(this._editor, findController);\n            if (!session) {\n                return;\n            }\n            this._session = session;\n            const newState = { searchString: this._session.searchText };\n            if (this._session.isDisconnectedFromFindController) {\n                newState.wholeWordOverride = 1 /* FindOptionOverride.True */;\n                newState.matchCaseOverride = 1 /* FindOptionOverride.True */;\n                newState.isRegexOverride = 2 /* FindOptionOverride.False */;\n            }\n            findController.getState().change(newState, false);\n            this._sessionDispose.add(this._editor.onDidChangeCursorSelection((e) => {\n                if (this._ignoreSelectionChange) {\n                    return;\n                }\n                this._endSession();\n            }));\n            this._sessionDispose.add(this._editor.onDidBlurEditorText(() => {\n                this._endSession();\n            }));\n            this._sessionDispose.add(findController.getState().onFindReplaceStateChange((e) => {\n                if (e.matchCase || e.wholeWord) {\n                    this._endSession();\n                }\n            }));\n        }\n    }\n    _endSession() {\n        this._sessionDispose.clear();\n        if (this._session && this._session.isDisconnectedFromFindController) {\n            const newState = {\n                wholeWordOverride: 0 /* FindOptionOverride.NotSet */,\n                matchCaseOverride: 0 /* FindOptionOverride.NotSet */,\n                isRegexOverride: 0 /* FindOptionOverride.NotSet */,\n            };\n            this._session.findController.getState().change(newState, false);\n        }\n        this._session = null;\n    }\n    _setSelections(selections) {\n        this._ignoreSelectionChange = true;\n        this._editor.setSelections(selections);\n        this._ignoreSelectionChange = false;\n    }\n    _expandEmptyToWord(model, selection) {\n        if (!selection.isEmpty()) {\n            return selection;\n        }\n        const word = this._editor.getConfiguredWordAtPosition(selection.getStartPosition());\n        if (!word) {\n            return selection;\n        }\n        return new Selection(selection.startLineNumber, word.startColumn, selection.startLineNumber, word.endColumn);\n    }\n    _applySessionResult(result) {\n        if (!result) {\n            return;\n        }\n        this._setSelections(result.selections);\n        if (result.revealRange) {\n            this._editor.revealRangeInCenterIfOutsideViewport(result.revealRange, result.revealScrollType);\n        }\n    }\n    getSession(findController) {\n        return this._session;\n    }\n    addSelectionToNextFindMatch(findController) {\n        if (!this._editor.hasModel()) {\n            return;\n        }\n        if (!this._session) {\n            // If there are multiple cursors, handle the case where they do not all select the same text.\n            const allSelections = this._editor.getSelections();\n            if (allSelections.length > 1) {\n                const findState = findController.getState();\n                const matchCase = findState.matchCase;\n                const selectionsContainSameText = modelRangesContainSameText(this._editor.getModel(), allSelections, matchCase);\n                if (!selectionsContainSameText) {\n                    const model = this._editor.getModel();\n                    const resultingSelections = [];\n                    for (let i = 0, len = allSelections.length; i < len; i++) {\n                        resultingSelections[i] = this._expandEmptyToWord(model, allSelections[i]);\n                    }\n                    this._editor.setSelections(resultingSelections);\n                    return;\n                }\n            }\n        }\n        this._beginSessionIfNeeded(findController);\n        if (this._session) {\n            this._applySessionResult(this._session.addSelectionToNextFindMatch());\n        }\n    }\n    addSelectionToPreviousFindMatch(findController) {\n        this._beginSessionIfNeeded(findController);\n        if (this._session) {\n            this._applySessionResult(this._session.addSelectionToPreviousFindMatch());\n        }\n    }\n    moveSelectionToNextFindMatch(findController) {\n        this._beginSessionIfNeeded(findController);\n        if (this._session) {\n            this._applySessionResult(this._session.moveSelectionToNextFindMatch());\n        }\n    }\n    moveSelectionToPreviousFindMatch(findController) {\n        this._beginSessionIfNeeded(findController);\n        if (this._session) {\n            this._applySessionResult(this._session.moveSelectionToPreviousFindMatch());\n        }\n    }\n    selectAll(findController) {\n        if (!this._editor.hasModel()) {\n            return;\n        }\n        let matches = null;\n        const findState = findController.getState();\n        // Special case: find widget owns entirely what we search for if:\n        // - focus is not in the editor (i.e. it is in the find widget)\n        // - and the search widget is visible\n        // - and the search string is non-empty\n        // - and we're searching for a regex\n        if (findState.isRevealed && findState.searchString.length > 0 && findState.isRegex) {\n            const editorModel = this._editor.getModel();\n            if (findState.searchScope) {\n                matches = editorModel.findMatches(findState.searchString, findState.searchScope, findState.isRegex, findState.matchCase, findState.wholeWord ? this._editor.getOption(131 /* EditorOption.wordSeparators */) : null, false, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */);\n            }\n            else {\n                matches = editorModel.findMatches(findState.searchString, true, findState.isRegex, findState.matchCase, findState.wholeWord ? this._editor.getOption(131 /* EditorOption.wordSeparators */) : null, false, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */);\n            }\n        }\n        else {\n            this._beginSessionIfNeeded(findController);\n            if (!this._session) {\n                return;\n            }\n            matches = this._session.selectAll(findState.searchScope);\n        }\n        if (matches.length > 0) {\n            const editorSelection = this._editor.getSelection();\n            // Have the primary cursor remain the one where the action was invoked\n            for (let i = 0, len = matches.length; i < len; i++) {\n                const match = matches[i];\n                const intersection = match.range.intersectRanges(editorSelection);\n                if (intersection) {\n                    // bingo!\n                    matches[i] = matches[0];\n                    matches[0] = match;\n                    break;\n                }\n            }\n            this._setSelections(matches.map(m => new Selection(m.range.startLineNumber, m.range.startColumn, m.range.endLineNumber, m.range.endColumn)));\n        }\n    }\n}\nMultiCursorSelectionController.ID = 'editor.contrib.multiCursorController';\nexport class MultiCursorSelectionControllerAction extends EditorAction {\n    run(accessor, editor) {\n        const multiCursorController = MultiCursorSelectionController.get(editor);\n        if (!multiCursorController) {\n            return;\n        }\n        const viewModel = editor._getViewModel();\n        if (viewModel) {\n            const previousCursorState = viewModel.getCursorStates();\n            const findController = CommonFindController.get(editor);\n            if (findController) {\n                this._run(multiCursorController, findController);\n            }\n            else {\n                const newFindController = accessor.get(IInstantiationService).createInstance(CommonFindController, editor);\n                this._run(multiCursorController, newFindController);\n                newFindController.dispose();\n            }\n            announceCursorChange(previousCursorState, viewModel.getCursorStates());\n        }\n    }\n}\nexport class AddSelectionToNextFindMatchAction extends MultiCursorSelectionControllerAction {\n    constructor() {\n        super({\n            id: 'editor.action.addSelectionToNextFindMatch',\n            label: nls.localize('addSelectionToNextFindMatch', \"Add Selection To Next Find Match\"),\n            alias: 'Add Selection To Next Find Match',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: EditorContextKeys.focus,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 34 /* KeyCode.KeyD */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            menuOpts: {\n                menuId: MenuId.MenubarSelectionMenu,\n                group: '3_multi',\n                title: nls.localize({ key: 'miAddSelectionToNextFindMatch', comment: ['&& denotes a mnemonic'] }, \"Add &&Next Occurrence\"),\n                order: 5\n            }\n        });\n    }\n    _run(multiCursorController, findController) {\n        multiCursorController.addSelectionToNextFindMatch(findController);\n    }\n}\nexport class AddSelectionToPreviousFindMatchAction extends MultiCursorSelectionControllerAction {\n    constructor() {\n        super({\n            id: 'editor.action.addSelectionToPreviousFindMatch',\n            label: nls.localize('addSelectionToPreviousFindMatch', \"Add Selection To Previous Find Match\"),\n            alias: 'Add Selection To Previous Find Match',\n            precondition: undefined,\n            menuOpts: {\n                menuId: MenuId.MenubarSelectionMenu,\n                group: '3_multi',\n                title: nls.localize({ key: 'miAddSelectionToPreviousFindMatch', comment: ['&& denotes a mnemonic'] }, \"Add P&&revious Occurrence\"),\n                order: 6\n            }\n        });\n    }\n    _run(multiCursorController, findController) {\n        multiCursorController.addSelectionToPreviousFindMatch(findController);\n    }\n}\nexport class MoveSelectionToNextFindMatchAction extends MultiCursorSelectionControllerAction {\n    constructor() {\n        super({\n            id: 'editor.action.moveSelectionToNextFindMatch',\n            label: nls.localize('moveSelectionToNextFindMatch', \"Move Last Selection To Next Find Match\"),\n            alias: 'Move Last Selection To Next Find Match',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: EditorContextKeys.focus,\n                primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 34 /* KeyCode.KeyD */),\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    _run(multiCursorController, findController) {\n        multiCursorController.moveSelectionToNextFindMatch(findController);\n    }\n}\nexport class MoveSelectionToPreviousFindMatchAction extends MultiCursorSelectionControllerAction {\n    constructor() {\n        super({\n            id: 'editor.action.moveSelectionToPreviousFindMatch',\n            label: nls.localize('moveSelectionToPreviousFindMatch', \"Move Last Selection To Previous Find Match\"),\n            alias: 'Move Last Selection To Previous Find Match',\n            precondition: undefined\n        });\n    }\n    _run(multiCursorController, findController) {\n        multiCursorController.moveSelectionToPreviousFindMatch(findController);\n    }\n}\nexport class SelectHighlightsAction extends MultiCursorSelectionControllerAction {\n    constructor() {\n        super({\n            id: 'editor.action.selectHighlights',\n            label: nls.localize('selectAllOccurrencesOfFindMatch', \"Select All Occurrences of Find Match\"),\n            alias: 'Select All Occurrences of Find Match',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: EditorContextKeys.focus,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 42 /* KeyCode.KeyL */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            menuOpts: {\n                menuId: MenuId.MenubarSelectionMenu,\n                group: '3_multi',\n                title: nls.localize({ key: 'miSelectHighlights', comment: ['&& denotes a mnemonic'] }, \"Select All &&Occurrences\"),\n                order: 7\n            }\n        });\n    }\n    _run(multiCursorController, findController) {\n        multiCursorController.selectAll(findController);\n    }\n}\nexport class CompatChangeAll extends MultiCursorSelectionControllerAction {\n    constructor() {\n        super({\n            id: 'editor.action.changeAll',\n            label: nls.localize('changeAll.label', \"Change All Occurrences\"),\n            alias: 'Change All Occurrences',\n            precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.editorTextFocus),\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 60 /* KeyCode.F2 */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            contextMenuOpts: {\n                group: '1_modification',\n                order: 1.2\n            }\n        });\n    }\n    _run(multiCursorController, findController) {\n        multiCursorController.selectAll(findController);\n    }\n}\nclass SelectionHighlighterState {\n    constructor(_model, _searchText, _matchCase, _wordSeparators, prevState) {\n        this._model = _model;\n        this._searchText = _searchText;\n        this._matchCase = _matchCase;\n        this._wordSeparators = _wordSeparators;\n        this._modelVersionId = this._model.getVersionId();\n        this._cachedFindMatches = null;\n        if (prevState\n            && this._model === prevState._model\n            && this._searchText === prevState._searchText\n            && this._matchCase === prevState._matchCase\n            && this._wordSeparators === prevState._wordSeparators\n            && this._modelVersionId === prevState._modelVersionId) {\n            this._cachedFindMatches = prevState._cachedFindMatches;\n        }\n    }\n    findMatches() {\n        if (this._cachedFindMatches === null) {\n            this._cachedFindMatches = this._model.findMatches(this._searchText, true, false, this._matchCase, this._wordSeparators, false).map(m => m.range);\n            this._cachedFindMatches.sort(Range.compareRangesUsingStarts);\n        }\n        return this._cachedFindMatches;\n    }\n}\nlet SelectionHighlighter = SelectionHighlighter_1 = class SelectionHighlighter extends Disposable {\n    constructor(editor, _languageFeaturesService) {\n        super();\n        this._languageFeaturesService = _languageFeaturesService;\n        this.editor = editor;\n        this._isEnabled = editor.getOption(108 /* EditorOption.selectionHighlight */);\n        this._decorations = editor.createDecorationsCollection();\n        this.updateSoon = this._register(new RunOnceScheduler(() => this._update(), 300));\n        this.state = null;\n        this._register(editor.onDidChangeConfiguration((e) => {\n            this._isEnabled = editor.getOption(108 /* EditorOption.selectionHighlight */);\n        }));\n        this._register(editor.onDidChangeCursorSelection((e) => {\n            if (!this._isEnabled) {\n                // Early exit if nothing needs to be done!\n                // Leave some form of early exit check here if you wish to continue being a cursor position change listener ;)\n                return;\n            }\n            if (e.selection.isEmpty()) {\n                if (e.reason === 3 /* CursorChangeReason.Explicit */) {\n                    if (this.state) {\n                        // no longer valid\n                        this._setState(null);\n                    }\n                    this.updateSoon.schedule();\n                }\n                else {\n                    this._setState(null);\n                }\n            }\n            else {\n                this._update();\n            }\n        }));\n        this._register(editor.onDidChangeModel((e) => {\n            this._setState(null);\n        }));\n        this._register(editor.onDidChangeModelContent((e) => {\n            if (this._isEnabled) {\n                this.updateSoon.schedule();\n            }\n        }));\n        const findController = CommonFindController.get(editor);\n        if (findController) {\n            this._register(findController.getState().onFindReplaceStateChange((e) => {\n                this._update();\n            }));\n        }\n        this.updateSoon.schedule();\n    }\n    _update() {\n        this._setState(SelectionHighlighter_1._createState(this.state, this._isEnabled, this.editor));\n    }\n    static _createState(oldState, isEnabled, editor) {\n        if (!isEnabled) {\n            return null;\n        }\n        if (!editor.hasModel()) {\n            return null;\n        }\n        const s = editor.getSelection();\n        if (s.startLineNumber !== s.endLineNumber) {\n            // multiline forbidden for perf reasons\n            return null;\n        }\n        const multiCursorController = MultiCursorSelectionController.get(editor);\n        if (!multiCursorController) {\n            return null;\n        }\n        const findController = CommonFindController.get(editor);\n        if (!findController) {\n            return null;\n        }\n        let r = multiCursorController.getSession(findController);\n        if (!r) {\n            const allSelections = editor.getSelections();\n            if (allSelections.length > 1) {\n                const findState = findController.getState();\n                const matchCase = findState.matchCase;\n                const selectionsContainSameText = modelRangesContainSameText(editor.getModel(), allSelections, matchCase);\n                if (!selectionsContainSameText) {\n                    return null;\n                }\n            }\n            r = MultiCursorSession.create(editor, findController);\n        }\n        if (!r) {\n            return null;\n        }\n        if (r.currentMatch) {\n            // This is an empty selection\n            // Do not interfere with semantic word highlighting in the no selection case\n            return null;\n        }\n        if (/^[ \\t]+$/.test(r.searchText)) {\n            // whitespace only selection\n            return null;\n        }\n        if (r.searchText.length > 200) {\n            // very long selection\n            return null;\n        }\n        // TODO: better handling of this case\n        const findState = findController.getState();\n        const caseSensitive = findState.matchCase;\n        // Return early if the find widget shows the exact same matches\n        if (findState.isRevealed) {\n            let findStateSearchString = findState.searchString;\n            if (!caseSensitive) {\n                findStateSearchString = findStateSearchString.toLowerCase();\n            }\n            let mySearchString = r.searchText;\n            if (!caseSensitive) {\n                mySearchString = mySearchString.toLowerCase();\n            }\n            if (findStateSearchString === mySearchString && r.matchCase === findState.matchCase && r.wholeWord === findState.wholeWord && !findState.isRegex) {\n                return null;\n            }\n        }\n        return new SelectionHighlighterState(editor.getModel(), r.searchText, r.matchCase, r.wholeWord ? editor.getOption(131 /* EditorOption.wordSeparators */) : null, oldState);\n    }\n    _setState(newState) {\n        this.state = newState;\n        if (!this.state) {\n            this._decorations.clear();\n            return;\n        }\n        if (!this.editor.hasModel()) {\n            return;\n        }\n        const model = this.editor.getModel();\n        if (model.isTooLargeForTokenization()) {\n            // the file is too large, so searching word under cursor in the whole document would be blocking the UI.\n            return;\n        }\n        const allMatches = this.state.findMatches();\n        const selections = this.editor.getSelections();\n        selections.sort(Range.compareRangesUsingStarts);\n        // do not overlap with selection (issue #64 and #512)\n        const matches = [];\n        for (let i = 0, j = 0, len = allMatches.length, lenJ = selections.length; i < len;) {\n            const match = allMatches[i];\n            if (j >= lenJ) {\n                // finished all editor selections\n                matches.push(match);\n                i++;\n            }\n            else {\n                const cmp = Range.compareRangesUsingStarts(match, selections[j]);\n                if (cmp < 0) {\n                    // match is before sel\n                    if (selections[j].isEmpty() || !Range.areIntersecting(match, selections[j])) {\n                        matches.push(match);\n                    }\n                    i++;\n                }\n                else if (cmp > 0) {\n                    // sel is before match\n                    j++;\n                }\n                else {\n                    // sel is equal to match\n                    i++;\n                    j++;\n                }\n            }\n        }\n        const occurrenceHighlighting = this.editor.getOption(81 /* EditorOption.occurrencesHighlight */) !== 'off';\n        const hasSemanticHighlights = this._languageFeaturesService.documentHighlightProvider.has(model) && occurrenceHighlighting;\n        const decorations = matches.map(r => {\n            return {\n                range: r,\n                options: getSelectionHighlightDecorationOptions(hasSemanticHighlights)\n            };\n        });\n        this._decorations.set(decorations);\n    }\n    dispose() {\n        this._setState(null);\n        super.dispose();\n    }\n};\nSelectionHighlighter.ID = 'editor.contrib.selectionHighlighter';\nSelectionHighlighter = SelectionHighlighter_1 = __decorate([\n    __param(1, ILanguageFeaturesService)\n], SelectionHighlighter);\nexport { SelectionHighlighter };\nfunction modelRangesContainSameText(model, ranges, matchCase) {\n    const selectedText = getValueInRange(model, ranges[0], !matchCase);\n    for (let i = 1, len = ranges.length; i < len; i++) {\n        const range = ranges[i];\n        if (range.isEmpty()) {\n            return false;\n        }\n        const thisSelectedText = getValueInRange(model, range, !matchCase);\n        if (selectedText !== thisSelectedText) {\n            return false;\n        }\n    }\n    return true;\n}\nfunction getValueInRange(model, range, toLowerCase) {\n    const text = model.getValueInRange(range);\n    return (toLowerCase ? text.toLowerCase() : text);\n}\nexport class FocusNextCursor extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.focusNextCursor',\n            label: nls.localize('mutlicursor.focusNextCursor', \"Focus Next Cursor\"),\n            metadata: {\n                description: nls.localize('mutlicursor.focusNextCursor.description', \"Focuses the next cursor\"),\n                args: [],\n            },\n            alias: 'Focus Next Cursor',\n            precondition: undefined\n        });\n    }\n    run(accessor, editor, args) {\n        if (!editor.hasModel()) {\n            return;\n        }\n        const viewModel = editor._getViewModel();\n        if (viewModel.cursorConfig.readOnly) {\n            return;\n        }\n        viewModel.model.pushStackElement();\n        const previousCursorState = Array.from(viewModel.getCursorStates());\n        const firstCursor = previousCursorState.shift();\n        if (!firstCursor) {\n            return;\n        }\n        previousCursorState.push(firstCursor);\n        viewModel.setCursorStates(args.source, 3 /* CursorChangeReason.Explicit */, previousCursorState);\n        viewModel.revealPrimaryCursor(args.source, true);\n        announceCursorChange(previousCursorState, viewModel.getCursorStates());\n    }\n}\nexport class FocusPreviousCursor extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.focusPreviousCursor',\n            label: nls.localize('mutlicursor.focusPreviousCursor', \"Focus Previous Cursor\"),\n            metadata: {\n                description: nls.localize('mutlicursor.focusPreviousCursor.description', \"Focuses the previous cursor\"),\n                args: [],\n            },\n            alias: 'Focus Previous Cursor',\n            precondition: undefined\n        });\n    }\n    run(accessor, editor, args) {\n        if (!editor.hasModel()) {\n            return;\n        }\n        const viewModel = editor._getViewModel();\n        if (viewModel.cursorConfig.readOnly) {\n            return;\n        }\n        viewModel.model.pushStackElement();\n        const previousCursorState = Array.from(viewModel.getCursorStates());\n        const firstCursor = previousCursorState.pop();\n        if (!firstCursor) {\n            return;\n        }\n        previousCursorState.unshift(firstCursor);\n        viewModel.setCursorStates(args.source, 3 /* CursorChangeReason.Explicit */, previousCursorState);\n        viewModel.revealPrimaryCursor(args.source, true);\n        announceCursorChange(previousCursorState, viewModel.getCursorStates());\n    }\n}\nregisterEditorContribution(MultiCursorSelectionController.ID, MultiCursorSelectionController, 4 /* EditorContributionInstantiation.Lazy */);\nregisterEditorContribution(SelectionHighlighter.ID, SelectionHighlighter, 1 /* EditorContributionInstantiation.AfterFirstRender */);\nregisterEditorAction(InsertCursorAbove);\nregisterEditorAction(InsertCursorBelow);\nregisterEditorAction(InsertCursorAtEndOfEachLineSelected);\nregisterEditorAction(AddSelectionToNextFindMatchAction);\nregisterEditorAction(AddSelectionToPreviousFindMatchAction);\nregisterEditorAction(MoveSelectionToNextFindMatchAction);\nregisterEditorAction(MoveSelectionToPreviousFindMatchAction);\nregisterEditorAction(SelectHighlightsAction);\nregisterEditorAction(CompatChangeAll);\nregisterEditorAction(InsertCursorAtEndOfLineSelected);\nregisterEditorAction(InsertCursorAtTopOfLineSelected);\nregisterEditorAction(FocusNextCursor);\nregisterEditorAction(FocusPreviousCursor);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/parameterHints/browser/parameterHints.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .parameter-hints-widget {\n\t/* Must be higher than the sash's z-index and terminal canvases but lower than the suggest widget */\n\tz-index: 39;\n\tdisplay: flex;\n\tflex-direction: column;\n\tline-height: 1.5em;\n\tcursor: default;\n\tcolor: var(--vscode-editorHoverWidget-foreground);\n\tbackground-color: var(--vscode-editorHoverWidget-background);\n\tborder: 1px solid var(--vscode-editorHoverWidget-border);\n}\n\n.hc-black .monaco-editor .parameter-hints-widget,\n.hc-light .monaco-editor .parameter-hints-widget {\n\tborder-width: 2px;\n}\n\n.monaco-editor .parameter-hints-widget > .phwrapper {\n\tmax-width: 440px;\n\tdisplay: flex;\n\tflex-direction: row;\n}\n\n.monaco-editor .parameter-hints-widget.multiple {\n\tmin-height: 3.3em;\n\tpadding: 0;\n}\n\n.monaco-editor .parameter-hints-widget.multiple .body::before {\n\tcontent: \"\";\n\tdisplay: block;\n\theight: 100%;\n\tposition: absolute;\n\topacity: 0.5;\n\tborder-left: 1px solid var(--vscode-editorHoverWidget-border);\n}\n\n.monaco-editor .parameter-hints-widget p,\n.monaco-editor .parameter-hints-widget ul {\n\tmargin: 8px 0;\n}\n\n.monaco-editor .parameter-hints-widget .monaco-scrollable-element,\n.monaco-editor .parameter-hints-widget .body {\n\tdisplay: flex;\n\tflex: 1;\n\tflex-direction: column;\n\tmin-height: 100%;\n}\n\n.monaco-editor .parameter-hints-widget .signature {\n\tpadding: 4px 5px;\n\tposition: relative;\n}\n\n.monaco-editor .parameter-hints-widget .signature.has-docs::after {\n\tcontent: \"\";\n\tdisplay: block;\n\tposition: absolute;\n\tleft: 0;\n\twidth: 100%;\n\tpadding-top: 4px;\n\topacity: 0.5;\n\tborder-bottom: 1px solid var(--vscode-editorHoverWidget-border);\n}\n\n.monaco-editor .parameter-hints-widget .docs {\n\tpadding: 0 10px 0 5px;\n\twhite-space: pre-wrap;\n}\n\n.monaco-editor .parameter-hints-widget .docs.empty {\n\tdisplay: none;\n}\n\n.monaco-editor .parameter-hints-widget .docs a {\n\tcolor: var(--vscode-textLink-foreground);\n}\n\n.monaco-editor .parameter-hints-widget .docs a:hover {\n\tcolor: var(--vscode-textLink-activeForeground);\n\tcursor: pointer;\n}\n\n.monaco-editor .parameter-hints-widget .docs .markdown-docs {\n\twhite-space: initial;\n}\n\n.monaco-editor .parameter-hints-widget .docs code {\n\tfont-family: var(--monaco-monospace-font);\n\tborder-radius: 3px;\n\tpadding: 0 0.4em;\n\tbackground-color: var(--vscode-textCodeBlock-background);\n}\n\n.monaco-editor .parameter-hints-widget .docs .monaco-tokenized-source,\n.monaco-editor .parameter-hints-widget .docs .code {\n\twhite-space: pre-wrap;\n}\n\n.monaco-editor .parameter-hints-widget .controls {\n\tdisplay: none;\n\tflex-direction: column;\n\talign-items: center;\n\tmin-width: 22px;\n\tjustify-content: flex-end;\n}\n\n.monaco-editor .parameter-hints-widget.multiple .controls {\n\tdisplay: flex;\n\tpadding: 0 2px;\n}\n\n.monaco-editor .parameter-hints-widget.multiple .button {\n\twidth: 16px;\n\theight: 16px;\n\tbackground-repeat: no-repeat;\n\tcursor: pointer;\n}\n\n.monaco-editor .parameter-hints-widget .button.previous {\n\tbottom: 24px;\n}\n\n.monaco-editor .parameter-hints-widget .overloads {\n\ttext-align: center;\n\theight: 12px;\n\tline-height: 12px;\n\tfont-family: var(--monaco-monospace-font);\n}\n\n.monaco-editor .parameter-hints-widget .signature .parameter.active {\n\tcolor: var(--vscode-editorHoverWidget-highlightForeground);\n\tfont-weight: bold;\n}\n\n.monaco-editor .parameter-hints-widget .documentation-parameter > .parameter {\n\tfont-weight: bold;\n\tmargin-right: 0.5em;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/parameterHints/browser/parameterHints.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/parameterHints/browser/parameterHints.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar ParameterHintsController_1;\nimport { Lazy } from '../../../../base/common/lazy.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { EditorAction, EditorCommand, registerEditorAction, registerEditorCommand, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport * as languages from '../../../common/languages.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { ParameterHintsModel } from './parameterHintsModel.js';\nimport { Context } from './provideSignatureHelp.js';\nimport * as nls from '../../../../nls.js';\nimport { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { ParameterHintsWidget } from './parameterHintsWidget.js';\nlet ParameterHintsController = ParameterHintsController_1 = class ParameterHintsController extends Disposable {\n    static get(editor) {\n        return editor.getContribution(ParameterHintsController_1.ID);\n    }\n    constructor(editor, instantiationService, languageFeaturesService) {\n        super();\n        this.editor = editor;\n        this.model = this._register(new ParameterHintsModel(editor, languageFeaturesService.signatureHelpProvider));\n        this._register(this.model.onChangedHints(newParameterHints => {\n            var _a;\n            if (newParameterHints) {\n                this.widget.value.show();\n                this.widget.value.render(newParameterHints);\n            }\n            else {\n                (_a = this.widget.rawValue) === null || _a === void 0 ? void 0 : _a.hide();\n            }\n        }));\n        this.widget = new Lazy(() => this._register(instantiationService.createInstance(ParameterHintsWidget, this.editor, this.model)));\n    }\n    cancel() {\n        this.model.cancel();\n    }\n    previous() {\n        var _a;\n        (_a = this.widget.rawValue) === null || _a === void 0 ? void 0 : _a.previous();\n    }\n    next() {\n        var _a;\n        (_a = this.widget.rawValue) === null || _a === void 0 ? void 0 : _a.next();\n    }\n    trigger(context) {\n        this.model.trigger(context, 0);\n    }\n};\nParameterHintsController.ID = 'editor.controller.parameterHints';\nParameterHintsController = ParameterHintsController_1 = __decorate([\n    __param(1, IInstantiationService),\n    __param(2, ILanguageFeaturesService)\n], ParameterHintsController);\nexport { ParameterHintsController };\nexport class TriggerParameterHintsAction extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.triggerParameterHints',\n            label: nls.localize('parameterHints.trigger.label', \"Trigger Parameter Hints\"),\n            alias: 'Trigger Parameter Hints',\n            precondition: EditorContextKeys.hasSignatureHelpProvider,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 10 /* KeyCode.Space */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    run(accessor, editor) {\n        const controller = ParameterHintsController.get(editor);\n        controller === null || controller === void 0 ? void 0 : controller.trigger({\n            triggerKind: languages.SignatureHelpTriggerKind.Invoke\n        });\n    }\n}\nregisterEditorContribution(ParameterHintsController.ID, ParameterHintsController, 2 /* EditorContributionInstantiation.BeforeFirstInteraction */);\nregisterEditorAction(TriggerParameterHintsAction);\nconst weight = 100 /* KeybindingWeight.EditorContrib */ + 75;\nconst ParameterHintsCommand = EditorCommand.bindToContribution(ParameterHintsController.get);\nregisterEditorCommand(new ParameterHintsCommand({\n    id: 'closeParameterHints',\n    precondition: Context.Visible,\n    handler: x => x.cancel(),\n    kbOpts: {\n        weight: weight,\n        kbExpr: EditorContextKeys.focus,\n        primary: 9 /* KeyCode.Escape */,\n        secondary: [1024 /* KeyMod.Shift */ | 9 /* KeyCode.Escape */]\n    }\n}));\nregisterEditorCommand(new ParameterHintsCommand({\n    id: 'showPrevParameterHint',\n    precondition: ContextKeyExpr.and(Context.Visible, Context.MultipleSignatures),\n    handler: x => x.previous(),\n    kbOpts: {\n        weight: weight,\n        kbExpr: EditorContextKeys.focus,\n        primary: 16 /* KeyCode.UpArrow */,\n        secondary: [512 /* KeyMod.Alt */ | 16 /* KeyCode.UpArrow */],\n        mac: { primary: 16 /* KeyCode.UpArrow */, secondary: [512 /* KeyMod.Alt */ | 16 /* KeyCode.UpArrow */, 256 /* KeyMod.WinCtrl */ | 46 /* KeyCode.KeyP */] }\n    }\n}));\nregisterEditorCommand(new ParameterHintsCommand({\n    id: 'showNextParameterHint',\n    precondition: ContextKeyExpr.and(Context.Visible, Context.MultipleSignatures),\n    handler: x => x.next(),\n    kbOpts: {\n        weight: weight,\n        kbExpr: EditorContextKeys.focus,\n        primary: 18 /* KeyCode.DownArrow */,\n        secondary: [512 /* KeyMod.Alt */ | 18 /* KeyCode.DownArrow */],\n        mac: { primary: 18 /* KeyCode.DownArrow */, secondary: [512 /* KeyMod.Alt */ | 18 /* KeyCode.DownArrow */, 256 /* KeyMod.WinCtrl */ | 44 /* KeyCode.KeyN */] }\n    }\n}));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/parameterHints/browser/parameterHintsModel.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createCancelablePromise, Delayer } from '../../../../base/common/async.js';\nimport { onUnexpectedError } from '../../../../base/common/errors.js';\nimport { Emitter } from '../../../../base/common/event.js';\nimport { Disposable, MutableDisposable } from '../../../../base/common/lifecycle.js';\nimport { CharacterSet } from '../../../common/core/characterClassifier.js';\nimport * as languages from '../../../common/languages.js';\nimport { provideSignatureHelp } from './provideSignatureHelp.js';\nvar ParameterHintState;\n(function (ParameterHintState) {\n    ParameterHintState.Default = { type: 0 /* Type.Default */ };\n    class Pending {\n        constructor(request, previouslyActiveHints) {\n            this.request = request;\n            this.previouslyActiveHints = previouslyActiveHints;\n            this.type = 2 /* Type.Pending */;\n        }\n    }\n    ParameterHintState.Pending = Pending;\n    class Active {\n        constructor(hints) {\n            this.hints = hints;\n            this.type = 1 /* Type.Active */;\n        }\n    }\n    ParameterHintState.Active = Active;\n})(ParameterHintState || (ParameterHintState = {}));\nexport class ParameterHintsModel extends Disposable {\n    constructor(editor, providers, delay = ParameterHintsModel.DEFAULT_DELAY) {\n        super();\n        this._onChangedHints = this._register(new Emitter());\n        this.onChangedHints = this._onChangedHints.event;\n        this.triggerOnType = false;\n        this._state = ParameterHintState.Default;\n        this._pendingTriggers = [];\n        this._lastSignatureHelpResult = this._register(new MutableDisposable());\n        this.triggerChars = new CharacterSet();\n        this.retriggerChars = new CharacterSet();\n        this.triggerId = 0;\n        this.editor = editor;\n        this.providers = providers;\n        this.throttledDelayer = new Delayer(delay);\n        this._register(this.editor.onDidBlurEditorWidget(() => this.cancel()));\n        this._register(this.editor.onDidChangeConfiguration(() => this.onEditorConfigurationChange()));\n        this._register(this.editor.onDidChangeModel(e => this.onModelChanged()));\n        this._register(this.editor.onDidChangeModelLanguage(_ => this.onModelChanged()));\n        this._register(this.editor.onDidChangeCursorSelection(e => this.onCursorChange(e)));\n        this._register(this.editor.onDidChangeModelContent(e => this.onModelContentChange()));\n        this._register(this.providers.onDidChange(this.onModelChanged, this));\n        this._register(this.editor.onDidType(text => this.onDidType(text)));\n        this.onEditorConfigurationChange();\n        this.onModelChanged();\n    }\n    get state() { return this._state; }\n    set state(value) {\n        if (this._state.type === 2 /* ParameterHintState.Type.Pending */) {\n            this._state.request.cancel();\n        }\n        this._state = value;\n    }\n    cancel(silent = false) {\n        this.state = ParameterHintState.Default;\n        this.throttledDelayer.cancel();\n        if (!silent) {\n            this._onChangedHints.fire(undefined);\n        }\n    }\n    trigger(context, delay) {\n        const model = this.editor.getModel();\n        if (!model || !this.providers.has(model)) {\n            return;\n        }\n        const triggerId = ++this.triggerId;\n        this._pendingTriggers.push(context);\n        this.throttledDelayer.trigger(() => {\n            return this.doTrigger(triggerId);\n        }, delay)\n            .catch(onUnexpectedError);\n    }\n    next() {\n        if (this.state.type !== 1 /* ParameterHintState.Type.Active */) {\n            return;\n        }\n        const length = this.state.hints.signatures.length;\n        const activeSignature = this.state.hints.activeSignature;\n        const last = (activeSignature % length) === (length - 1);\n        const cycle = this.editor.getOption(86 /* EditorOption.parameterHints */).cycle;\n        // If there is only one signature, or we're on last signature of list\n        if ((length < 2 || last) && !cycle) {\n            this.cancel();\n            return;\n        }\n        this.updateActiveSignature(last && cycle ? 0 : activeSignature + 1);\n    }\n    previous() {\n        if (this.state.type !== 1 /* ParameterHintState.Type.Active */) {\n            return;\n        }\n        const length = this.state.hints.signatures.length;\n        const activeSignature = this.state.hints.activeSignature;\n        const first = activeSignature === 0;\n        const cycle = this.editor.getOption(86 /* EditorOption.parameterHints */).cycle;\n        // If there is only one signature, or we're on first signature of list\n        if ((length < 2 || first) && !cycle) {\n            this.cancel();\n            return;\n        }\n        this.updateActiveSignature(first && cycle ? length - 1 : activeSignature - 1);\n    }\n    updateActiveSignature(activeSignature) {\n        if (this.state.type !== 1 /* ParameterHintState.Type.Active */) {\n            return;\n        }\n        this.state = new ParameterHintState.Active({ ...this.state.hints, activeSignature });\n        this._onChangedHints.fire(this.state.hints);\n    }\n    async doTrigger(triggerId) {\n        const isRetrigger = this.state.type === 1 /* ParameterHintState.Type.Active */ || this.state.type === 2 /* ParameterHintState.Type.Pending */;\n        const activeSignatureHelp = this.getLastActiveHints();\n        this.cancel(true);\n        if (this._pendingTriggers.length === 0) {\n            return false;\n        }\n        const context = this._pendingTriggers.reduce(mergeTriggerContexts);\n        this._pendingTriggers = [];\n        const triggerContext = {\n            triggerKind: context.triggerKind,\n            triggerCharacter: context.triggerCharacter,\n            isRetrigger: isRetrigger,\n            activeSignatureHelp: activeSignatureHelp\n        };\n        if (!this.editor.hasModel()) {\n            return false;\n        }\n        const model = this.editor.getModel();\n        const position = this.editor.getPosition();\n        this.state = new ParameterHintState.Pending(createCancelablePromise(token => provideSignatureHelp(this.providers, model, position, triggerContext, token)), activeSignatureHelp);\n        try {\n            const result = await this.state.request;\n            // Check that we are still resolving the correct signature help\n            if (triggerId !== this.triggerId) {\n                result === null || result === void 0 ? void 0 : result.dispose();\n                return false;\n            }\n            if (!result || !result.value.signatures || result.value.signatures.length === 0) {\n                result === null || result === void 0 ? void 0 : result.dispose();\n                this._lastSignatureHelpResult.clear();\n                this.cancel();\n                return false;\n            }\n            else {\n                this.state = new ParameterHintState.Active(result.value);\n                this._lastSignatureHelpResult.value = result;\n                this._onChangedHints.fire(this.state.hints);\n                return true;\n            }\n        }\n        catch (error) {\n            if (triggerId === this.triggerId) {\n                this.state = ParameterHintState.Default;\n            }\n            onUnexpectedError(error);\n            return false;\n        }\n    }\n    getLastActiveHints() {\n        switch (this.state.type) {\n            case 1 /* ParameterHintState.Type.Active */: return this.state.hints;\n            case 2 /* ParameterHintState.Type.Pending */: return this.state.previouslyActiveHints;\n            default: return undefined;\n        }\n    }\n    get isTriggered() {\n        return this.state.type === 1 /* ParameterHintState.Type.Active */\n            || this.state.type === 2 /* ParameterHintState.Type.Pending */\n            || this.throttledDelayer.isTriggered();\n    }\n    onModelChanged() {\n        this.cancel();\n        this.triggerChars.clear();\n        this.retriggerChars.clear();\n        const model = this.editor.getModel();\n        if (!model) {\n            return;\n        }\n        for (const support of this.providers.ordered(model)) {\n            for (const ch of support.signatureHelpTriggerCharacters || []) {\n                if (ch.length) {\n                    const charCode = ch.charCodeAt(0);\n                    this.triggerChars.add(charCode);\n                    // All trigger characters are also considered retrigger characters\n                    this.retriggerChars.add(charCode);\n                }\n            }\n            for (const ch of support.signatureHelpRetriggerCharacters || []) {\n                if (ch.length) {\n                    this.retriggerChars.add(ch.charCodeAt(0));\n                }\n            }\n        }\n    }\n    onDidType(text) {\n        if (!this.triggerOnType) {\n            return;\n        }\n        const lastCharIndex = text.length - 1;\n        const triggerCharCode = text.charCodeAt(lastCharIndex);\n        if (this.triggerChars.has(triggerCharCode) || this.isTriggered && this.retriggerChars.has(triggerCharCode)) {\n            this.trigger({\n                triggerKind: languages.SignatureHelpTriggerKind.TriggerCharacter,\n                triggerCharacter: text.charAt(lastCharIndex),\n            });\n        }\n    }\n    onCursorChange(e) {\n        if (e.source === 'mouse') {\n            this.cancel();\n        }\n        else if (this.isTriggered) {\n            this.trigger({ triggerKind: languages.SignatureHelpTriggerKind.ContentChange });\n        }\n    }\n    onModelContentChange() {\n        if (this.isTriggered) {\n            this.trigger({ triggerKind: languages.SignatureHelpTriggerKind.ContentChange });\n        }\n    }\n    onEditorConfigurationChange() {\n        this.triggerOnType = this.editor.getOption(86 /* EditorOption.parameterHints */).enabled;\n        if (!this.triggerOnType) {\n            this.cancel();\n        }\n    }\n    dispose() {\n        this.cancel(true);\n        super.dispose();\n    }\n}\nParameterHintsModel.DEFAULT_DELAY = 120; // ms\nfunction mergeTriggerContexts(previous, current) {\n    switch (current.triggerKind) {\n        case languages.SignatureHelpTriggerKind.Invoke:\n            // Invoke overrides previous triggers.\n            return current;\n        case languages.SignatureHelpTriggerKind.ContentChange:\n            // Ignore content changes triggers\n            return previous;\n        case languages.SignatureHelpTriggerKind.TriggerCharacter:\n        default:\n            return current;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar ParameterHintsWidget_1;\nimport * as dom from '../../../../base/browser/dom.js';\nimport * as aria from '../../../../base/browser/ui/aria/aria.js';\nimport { DomScrollableElement } from '../../../../base/browser/ui/scrollbar/scrollableElement.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { Event } from '../../../../base/common/event.js';\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { escapeRegExpCharacters } from '../../../../base/common/strings.js';\nimport { assertIsDefined } from '../../../../base/common/types.js';\nimport './parameterHints.css';\nimport { ILanguageService } from '../../../common/languages/language.js';\nimport { MarkdownRenderer } from '../../../browser/widget/markdownRenderer/browser/markdownRenderer.js';\nimport { Context } from './provideSignatureHelp.js';\nimport * as nls from '../../../../nls.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IOpenerService } from '../../../../platform/opener/common/opener.js';\nimport { listHighlightForeground, registerColor } from '../../../../platform/theme/common/colorRegistry.js';\nimport { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';\nimport { ThemeIcon } from '../../../../base/common/themables.js';\nimport { StopWatch } from '../../../../base/common/stopwatch.js';\nimport { ITelemetryService } from '../../../../platform/telemetry/common/telemetry.js';\nconst $ = dom.$;\nconst parameterHintsNextIcon = registerIcon('parameter-hints-next', Codicon.chevronDown, nls.localize('parameterHintsNextIcon', 'Icon for show next parameter hint.'));\nconst parameterHintsPreviousIcon = registerIcon('parameter-hints-previous', Codicon.chevronUp, nls.localize('parameterHintsPreviousIcon', 'Icon for show previous parameter hint.'));\nlet ParameterHintsWidget = ParameterHintsWidget_1 = class ParameterHintsWidget extends Disposable {\n    constructor(editor, model, contextKeyService, openerService, languageService, telemetryService) {\n        super();\n        this.editor = editor;\n        this.model = model;\n        this.telemetryService = telemetryService;\n        this.renderDisposeables = this._register(new DisposableStore());\n        this.visible = false;\n        this.announcedLabel = null;\n        // Editor.IContentWidget.allowEditorOverflow\n        this.allowEditorOverflow = true;\n        this.markdownRenderer = this._register(new MarkdownRenderer({ editor }, languageService, openerService));\n        this.keyVisible = Context.Visible.bindTo(contextKeyService);\n        this.keyMultipleSignatures = Context.MultipleSignatures.bindTo(contextKeyService);\n    }\n    createParameterHintDOMNodes() {\n        const element = $('.editor-widget.parameter-hints-widget');\n        const wrapper = dom.append(element, $('.phwrapper'));\n        wrapper.tabIndex = -1;\n        const controls = dom.append(wrapper, $('.controls'));\n        const previous = dom.append(controls, $('.button' + ThemeIcon.asCSSSelector(parameterHintsPreviousIcon)));\n        const overloads = dom.append(controls, $('.overloads'));\n        const next = dom.append(controls, $('.button' + ThemeIcon.asCSSSelector(parameterHintsNextIcon)));\n        this._register(dom.addDisposableListener(previous, 'click', e => {\n            dom.EventHelper.stop(e);\n            this.previous();\n        }));\n        this._register(dom.addDisposableListener(next, 'click', e => {\n            dom.EventHelper.stop(e);\n            this.next();\n        }));\n        const body = $('.body');\n        const scrollbar = new DomScrollableElement(body, {\n            alwaysConsumeMouseWheel: true,\n        });\n        this._register(scrollbar);\n        wrapper.appendChild(scrollbar.getDomNode());\n        const signature = dom.append(body, $('.signature'));\n        const docs = dom.append(body, $('.docs'));\n        element.style.userSelect = 'text';\n        this.domNodes = {\n            element,\n            signature,\n            overloads,\n            docs,\n            scrollbar,\n        };\n        this.editor.addContentWidget(this);\n        this.hide();\n        this._register(this.editor.onDidChangeCursorSelection(e => {\n            if (this.visible) {\n                this.editor.layoutContentWidget(this);\n            }\n        }));\n        const updateFont = () => {\n            if (!this.domNodes) {\n                return;\n            }\n            const fontInfo = this.editor.getOption(50 /* EditorOption.fontInfo */);\n            this.domNodes.element.style.fontSize = `${fontInfo.fontSize}px`;\n            this.domNodes.element.style.lineHeight = `${fontInfo.lineHeight / fontInfo.fontSize}`;\n        };\n        updateFont();\n        this._register(Event.chain(this.editor.onDidChangeConfiguration.bind(this.editor), $ => $.filter(e => e.hasChanged(50 /* EditorOption.fontInfo */)))(updateFont));\n        this._register(this.editor.onDidLayoutChange(e => this.updateMaxHeight()));\n        this.updateMaxHeight();\n    }\n    show() {\n        if (this.visible) {\n            return;\n        }\n        if (!this.domNodes) {\n            this.createParameterHintDOMNodes();\n        }\n        this.keyVisible.set(true);\n        this.visible = true;\n        setTimeout(() => {\n            var _a;\n            (_a = this.domNodes) === null || _a === void 0 ? void 0 : _a.element.classList.add('visible');\n        }, 100);\n        this.editor.layoutContentWidget(this);\n    }\n    hide() {\n        var _a;\n        this.renderDisposeables.clear();\n        if (!this.visible) {\n            return;\n        }\n        this.keyVisible.reset();\n        this.visible = false;\n        this.announcedLabel = null;\n        (_a = this.domNodes) === null || _a === void 0 ? void 0 : _a.element.classList.remove('visible');\n        this.editor.layoutContentWidget(this);\n    }\n    getPosition() {\n        if (this.visible) {\n            return {\n                position: this.editor.getPosition(),\n                preference: [1 /* ContentWidgetPositionPreference.ABOVE */, 2 /* ContentWidgetPositionPreference.BELOW */]\n            };\n        }\n        return null;\n    }\n    render(hints) {\n        var _a;\n        this.renderDisposeables.clear();\n        if (!this.domNodes) {\n            return;\n        }\n        const multiple = hints.signatures.length > 1;\n        this.domNodes.element.classList.toggle('multiple', multiple);\n        this.keyMultipleSignatures.set(multiple);\n        this.domNodes.signature.innerText = '';\n        this.domNodes.docs.innerText = '';\n        const signature = hints.signatures[hints.activeSignature];\n        if (!signature) {\n            return;\n        }\n        const code = dom.append(this.domNodes.signature, $('.code'));\n        const fontInfo = this.editor.getOption(50 /* EditorOption.fontInfo */);\n        code.style.fontSize = `${fontInfo.fontSize}px`;\n        code.style.fontFamily = fontInfo.fontFamily;\n        const hasParameters = signature.parameters.length > 0;\n        const activeParameterIndex = (_a = signature.activeParameter) !== null && _a !== void 0 ? _a : hints.activeParameter;\n        if (!hasParameters) {\n            const label = dom.append(code, $('span'));\n            label.textContent = signature.label;\n        }\n        else {\n            this.renderParameters(code, signature, activeParameterIndex);\n        }\n        const activeParameter = signature.parameters[activeParameterIndex];\n        if (activeParameter === null || activeParameter === void 0 ? void 0 : activeParameter.documentation) {\n            const documentation = $('span.documentation');\n            if (typeof activeParameter.documentation === 'string') {\n                documentation.textContent = activeParameter.documentation;\n            }\n            else {\n                const renderedContents = this.renderMarkdownDocs(activeParameter.documentation);\n                documentation.appendChild(renderedContents.element);\n            }\n            dom.append(this.domNodes.docs, $('p', {}, documentation));\n        }\n        if (signature.documentation === undefined) {\n            /** no op */\n        }\n        else if (typeof signature.documentation === 'string') {\n            dom.append(this.domNodes.docs, $('p', {}, signature.documentation));\n        }\n        else {\n            const renderedContents = this.renderMarkdownDocs(signature.documentation);\n            dom.append(this.domNodes.docs, renderedContents.element);\n        }\n        const hasDocs = this.hasDocs(signature, activeParameter);\n        this.domNodes.signature.classList.toggle('has-docs', hasDocs);\n        this.domNodes.docs.classList.toggle('empty', !hasDocs);\n        this.domNodes.overloads.textContent =\n            String(hints.activeSignature + 1).padStart(hints.signatures.length.toString().length, '0') + '/' + hints.signatures.length;\n        if (activeParameter) {\n            let labelToAnnounce = '';\n            const param = signature.parameters[activeParameterIndex];\n            if (Array.isArray(param.label)) {\n                labelToAnnounce = signature.label.substring(param.label[0], param.label[1]);\n            }\n            else {\n                labelToAnnounce = param.label;\n            }\n            if (param.documentation) {\n                labelToAnnounce += typeof param.documentation === 'string' ? `, ${param.documentation}` : `, ${param.documentation.value}`;\n            }\n            if (signature.documentation) {\n                labelToAnnounce += typeof signature.documentation === 'string' ? `, ${signature.documentation}` : `, ${signature.documentation.value}`;\n            }\n            // Select method gets called on every user type while parameter hints are visible.\n            // We do not want to spam the user with same announcements, so we only announce if the current parameter changed.\n            if (this.announcedLabel !== labelToAnnounce) {\n                aria.alert(nls.localize('hint', \"{0}, hint\", labelToAnnounce));\n                this.announcedLabel = labelToAnnounce;\n            }\n        }\n        this.editor.layoutContentWidget(this);\n        this.domNodes.scrollbar.scanDomNode();\n    }\n    renderMarkdownDocs(markdown) {\n        const stopWatch = new StopWatch();\n        const renderedContents = this.renderDisposeables.add(this.markdownRenderer.render(markdown, {\n            asyncRenderCallback: () => {\n                var _a;\n                (_a = this.domNodes) === null || _a === void 0 ? void 0 : _a.scrollbar.scanDomNode();\n            }\n        }));\n        renderedContents.element.classList.add('markdown-docs');\n        const renderDuration = stopWatch.elapsed();\n        if (renderDuration > 300) {\n            this.telemetryService.publicLog2('parameterHints.parseMarkdown', {\n                renderDuration\n            });\n        }\n        return renderedContents;\n    }\n    hasDocs(signature, activeParameter) {\n        if (activeParameter && typeof activeParameter.documentation === 'string' && assertIsDefined(activeParameter.documentation).length > 0) {\n            return true;\n        }\n        if (activeParameter && typeof activeParameter.documentation === 'object' && assertIsDefined(activeParameter.documentation).value.length > 0) {\n            return true;\n        }\n        if (signature.documentation && typeof signature.documentation === 'string' && assertIsDefined(signature.documentation).length > 0) {\n            return true;\n        }\n        if (signature.documentation && typeof signature.documentation === 'object' && assertIsDefined(signature.documentation.value).length > 0) {\n            return true;\n        }\n        return false;\n    }\n    renderParameters(parent, signature, activeParameterIndex) {\n        const [start, end] = this.getParameterLabelOffsets(signature, activeParameterIndex);\n        const beforeSpan = document.createElement('span');\n        beforeSpan.textContent = signature.label.substring(0, start);\n        const paramSpan = document.createElement('span');\n        paramSpan.textContent = signature.label.substring(start, end);\n        paramSpan.className = 'parameter active';\n        const afterSpan = document.createElement('span');\n        afterSpan.textContent = signature.label.substring(end);\n        dom.append(parent, beforeSpan, paramSpan, afterSpan);\n    }\n    getParameterLabelOffsets(signature, paramIdx) {\n        const param = signature.parameters[paramIdx];\n        if (!param) {\n            return [0, 0];\n        }\n        else if (Array.isArray(param.label)) {\n            return param.label;\n        }\n        else if (!param.label.length) {\n            return [0, 0];\n        }\n        else {\n            const regex = new RegExp(`(\\\\W|^)${escapeRegExpCharacters(param.label)}(?=\\\\W|$)`, 'g');\n            regex.test(signature.label);\n            const idx = regex.lastIndex - param.label.length;\n            return idx >= 0\n                ? [idx, regex.lastIndex]\n                : [0, 0];\n        }\n    }\n    next() {\n        this.editor.focus();\n        this.model.next();\n    }\n    previous() {\n        this.editor.focus();\n        this.model.previous();\n    }\n    getDomNode() {\n        if (!this.domNodes) {\n            this.createParameterHintDOMNodes();\n        }\n        return this.domNodes.element;\n    }\n    getId() {\n        return ParameterHintsWidget_1.ID;\n    }\n    updateMaxHeight() {\n        if (!this.domNodes) {\n            return;\n        }\n        const height = Math.max(this.editor.getLayoutInfo().height / 4, 250);\n        const maxHeight = `${height}px`;\n        this.domNodes.element.style.maxHeight = maxHeight;\n        const wrapper = this.domNodes.element.getElementsByClassName('phwrapper');\n        if (wrapper.length) {\n            wrapper[0].style.maxHeight = maxHeight;\n        }\n    }\n};\nParameterHintsWidget.ID = 'editor.widget.parameterHintsWidget';\nParameterHintsWidget = ParameterHintsWidget_1 = __decorate([\n    __param(2, IContextKeyService),\n    __param(3, IOpenerService),\n    __param(4, ILanguageService),\n    __param(5, ITelemetryService)\n], ParameterHintsWidget);\nexport { ParameterHintsWidget };\nregisterColor('editorHoverWidget.highlightForeground', { dark: listHighlightForeground, light: listHighlightForeground, hcDark: listHighlightForeground, hcLight: listHighlightForeground }, nls.localize('editorHoverWidgetHighlightForeground', 'Foreground color of the active item in the parameter hint.'));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/parameterHints/browser/provideSignatureHelp.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { assertType } from '../../../../base/common/types.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport { Position } from '../../../common/core/position.js';\nimport * as languages from '../../../common/languages.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { ITextModelService } from '../../../common/services/resolverService.js';\nimport { CommandsRegistry } from '../../../../platform/commands/common/commands.js';\nimport { RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nexport const Context = {\n    Visible: new RawContextKey('parameterHintsVisible', false),\n    MultipleSignatures: new RawContextKey('parameterHintsMultipleSignatures', false),\n};\nexport async function provideSignatureHelp(registry, model, position, context, token) {\n    const supports = registry.ordered(model);\n    for (const support of supports) {\n        try {\n            const result = await support.provideSignatureHelp(model, position, token, context);\n            if (result) {\n                return result;\n            }\n        }\n        catch (err) {\n            onUnexpectedExternalError(err);\n        }\n    }\n    return undefined;\n}\nCommandsRegistry.registerCommand('_executeSignatureHelpProvider', async (accessor, ...args) => {\n    const [uri, position, triggerCharacter] = args;\n    assertType(URI.isUri(uri));\n    assertType(Position.isIPosition(position));\n    assertType(typeof triggerCharacter === 'string' || !triggerCharacter);\n    const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n    const ref = await accessor.get(ITextModelService).createModelReference(uri);\n    try {\n        const result = await provideSignatureHelp(languageFeaturesService.signatureHelpProvider, ref.object.textEditorModel, Position.lift(position), {\n            triggerKind: languages.SignatureHelpTriggerKind.Invoke,\n            isRetrigger: false,\n            triggerCharacter,\n        }, CancellationToken.None);\n        if (!result) {\n            return undefined;\n        }\n        setTimeout(() => result.dispose(), 0);\n        return result.value;\n    }\n    finally {\n        ref.dispose();\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/peekView/browser/media/peekViewWidget.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .peekview-widget .head {\n\tbox-sizing: border-box;\n\tdisplay: flex;\n\tjustify-content: space-between;\n\tflex-wrap: nowrap;\n}\n\n.monaco-editor .peekview-widget .head .peekview-title {\n\tdisplay: flex;\n\talign-items: baseline;\n\tfont-size: 13px;\n\tmargin-left: 20px;\n\tmin-width: 0;\n\ttext-overflow: ellipsis;\n\toverflow: hidden;\n}\n\n.monaco-editor .peekview-widget .head .peekview-title.clickable {\n\tcursor: pointer;\n}\n\n.monaco-editor .peekview-widget .head .peekview-title .dirname:not(:empty) {\n\tfont-size: 0.9em;\n\tmargin-left: 0.5em;\n}\n\n.monaco-editor .peekview-widget .head .peekview-title .meta {\n\twhite-space: nowrap;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n}\n\n.monaco-editor .peekview-widget .head .peekview-title .dirname {\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n\n.monaco-editor .peekview-widget .head .peekview-title .filename {\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n\n.monaco-editor .peekview-widget .head .peekview-title .meta:not(:empty)::before {\n\tcontent: '-';\n\tpadding: 0 0.3em;\n}\n\n.monaco-editor .peekview-widget .head .peekview-actions {\n\tflex: 1;\n\ttext-align: right;\n\tpadding-right: 2px;\n}\n\n.monaco-editor .peekview-widget .head .peekview-actions > .monaco-action-bar {\n\tdisplay: inline-block;\n}\n\n.monaco-editor .peekview-widget .head .peekview-actions > .monaco-action-bar,\n.monaco-editor .peekview-widget .head .peekview-actions > .monaco-action-bar > .actions-container {\n\theight: 100%;\n}\n\n.monaco-editor .peekview-widget > .body {\n\tborder-top: 1px solid;\n\tposition: relative;\n}\n\n.monaco-editor .peekview-widget .head .peekview-title .codicon {\n\tmargin-right: 4px;\n\talign-self: center;\n}\n\n.monaco-editor .peekview-widget .monaco-list .monaco-list-row.focused .codicon {\n\tcolor: inherit !important;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/peekView/browser/peekView.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport * as dom from '../../../../base/browser/dom.js';\nimport { ActionBar } from '../../../../base/browser/ui/actionbar/actionbar.js';\nimport { Action } from '../../../../base/common/actions.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { ThemeIcon } from '../../../../base/common/themables.js';\nimport { Color } from '../../../../base/common/color.js';\nimport { Emitter } from '../../../../base/common/event.js';\nimport * as objects from '../../../../base/common/objects.js';\nimport './media/peekViewWidget.css';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { EmbeddedCodeEditorWidget } from '../../../browser/widget/codeEditor/embeddedCodeEditorWidget.js';\nimport { ZoneWidget } from '../../zoneWidget/browser/zoneWidget.js';\nimport * as nls from '../../../../nls.js';\nimport { createActionViewItem } from '../../../../platform/actions/browser/menuEntryActionViewItem.js';\nimport { IContextKeyService, RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { registerSingleton } from '../../../../platform/instantiation/common/extensions.js';\nimport { createDecorator, IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { activeContrastBorder, contrastBorder, editorForeground, editorInfoForeground, registerColor } from '../../../../platform/theme/common/colorRegistry.js';\nexport const IPeekViewService = createDecorator('IPeekViewService');\nregisterSingleton(IPeekViewService, class {\n    constructor() {\n        this._widgets = new Map();\n    }\n    addExclusiveWidget(editor, widget) {\n        const existing = this._widgets.get(editor);\n        if (existing) {\n            existing.listener.dispose();\n            existing.widget.dispose();\n        }\n        const remove = () => {\n            const data = this._widgets.get(editor);\n            if (data && data.widget === widget) {\n                data.listener.dispose();\n                this._widgets.delete(editor);\n            }\n        };\n        this._widgets.set(editor, { widget, listener: widget.onDidClose(remove) });\n    }\n}, 1 /* InstantiationType.Delayed */);\nexport var PeekContext;\n(function (PeekContext) {\n    PeekContext.inPeekEditor = new RawContextKey('inReferenceSearchEditor', true, nls.localize('inReferenceSearchEditor', \"Whether the current code editor is embedded inside peek\"));\n    PeekContext.notInPeekEditor = PeekContext.inPeekEditor.toNegated();\n})(PeekContext || (PeekContext = {}));\nlet PeekContextController = class PeekContextController {\n    constructor(editor, contextKeyService) {\n        if (editor instanceof EmbeddedCodeEditorWidget) {\n            PeekContext.inPeekEditor.bindTo(contextKeyService);\n        }\n    }\n    dispose() { }\n};\nPeekContextController.ID = 'editor.contrib.referenceController';\nPeekContextController = __decorate([\n    __param(1, IContextKeyService)\n], PeekContextController);\nregisterEditorContribution(PeekContextController.ID, PeekContextController, 0 /* EditorContributionInstantiation.Eager */); // eager because it needs to define a context key\nexport function getOuterEditor(accessor) {\n    const editor = accessor.get(ICodeEditorService).getFocusedCodeEditor();\n    if (editor instanceof EmbeddedCodeEditorWidget) {\n        return editor.getParentEditor();\n    }\n    return editor;\n}\nconst defaultOptions = {\n    headerBackgroundColor: Color.white,\n    primaryHeadingColor: Color.fromHex('#333333'),\n    secondaryHeadingColor: Color.fromHex('#6c6c6cb3')\n};\nlet PeekViewWidget = class PeekViewWidget extends ZoneWidget {\n    constructor(editor, options, instantiationService) {\n        super(editor, options);\n        this.instantiationService = instantiationService;\n        this._onDidClose = new Emitter();\n        this.onDidClose = this._onDidClose.event;\n        objects.mixin(this.options, defaultOptions, false);\n    }\n    dispose() {\n        if (!this.disposed) {\n            this.disposed = true; // prevent consumers who dispose on onDidClose from looping\n            super.dispose();\n            this._onDidClose.fire(this);\n        }\n    }\n    style(styles) {\n        const options = this.options;\n        if (styles.headerBackgroundColor) {\n            options.headerBackgroundColor = styles.headerBackgroundColor;\n        }\n        if (styles.primaryHeadingColor) {\n            options.primaryHeadingColor = styles.primaryHeadingColor;\n        }\n        if (styles.secondaryHeadingColor) {\n            options.secondaryHeadingColor = styles.secondaryHeadingColor;\n        }\n        super.style(styles);\n    }\n    _applyStyles() {\n        super._applyStyles();\n        const options = this.options;\n        if (this._headElement && options.headerBackgroundColor) {\n            this._headElement.style.backgroundColor = options.headerBackgroundColor.toString();\n        }\n        if (this._primaryHeading && options.primaryHeadingColor) {\n            this._primaryHeading.style.color = options.primaryHeadingColor.toString();\n        }\n        if (this._secondaryHeading && options.secondaryHeadingColor) {\n            this._secondaryHeading.style.color = options.secondaryHeadingColor.toString();\n        }\n        if (this._bodyElement && options.frameColor) {\n            this._bodyElement.style.borderColor = options.frameColor.toString();\n        }\n    }\n    _fillContainer(container) {\n        this.setCssClass('peekview-widget');\n        this._headElement = dom.$('.head');\n        this._bodyElement = dom.$('.body');\n        this._fillHead(this._headElement);\n        this._fillBody(this._bodyElement);\n        container.appendChild(this._headElement);\n        container.appendChild(this._bodyElement);\n    }\n    _fillHead(container, noCloseAction) {\n        this._titleElement = dom.$('.peekview-title');\n        if (this.options.supportOnTitleClick) {\n            this._titleElement.classList.add('clickable');\n            dom.addStandardDisposableListener(this._titleElement, 'click', event => this._onTitleClick(event));\n        }\n        dom.append(this._headElement, this._titleElement);\n        this._fillTitleIcon(this._titleElement);\n        this._primaryHeading = dom.$('span.filename');\n        this._secondaryHeading = dom.$('span.dirname');\n        this._metaHeading = dom.$('span.meta');\n        dom.append(this._titleElement, this._primaryHeading, this._secondaryHeading, this._metaHeading);\n        const actionsContainer = dom.$('.peekview-actions');\n        dom.append(this._headElement, actionsContainer);\n        const actionBarOptions = this._getActionBarOptions();\n        this._actionbarWidget = new ActionBar(actionsContainer, actionBarOptions);\n        this._disposables.add(this._actionbarWidget);\n        if (!noCloseAction) {\n            this._actionbarWidget.push(new Action('peekview.close', nls.localize('label.close', \"Close\"), ThemeIcon.asClassName(Codicon.close), true, () => {\n                this.dispose();\n                return Promise.resolve();\n            }), { label: false, icon: true });\n        }\n    }\n    _fillTitleIcon(container) {\n    }\n    _getActionBarOptions() {\n        return {\n            actionViewItemProvider: createActionViewItem.bind(undefined, this.instantiationService),\n            orientation: 0 /* ActionsOrientation.HORIZONTAL */\n        };\n    }\n    _onTitleClick(event) {\n        // implement me if supportOnTitleClick option is set\n    }\n    setTitle(primaryHeading, secondaryHeading) {\n        if (this._primaryHeading && this._secondaryHeading) {\n            this._primaryHeading.innerText = primaryHeading;\n            this._primaryHeading.setAttribute('title', primaryHeading);\n            if (secondaryHeading) {\n                this._secondaryHeading.innerText = secondaryHeading;\n            }\n            else {\n                dom.clearNode(this._secondaryHeading);\n            }\n        }\n    }\n    setMetaTitle(value) {\n        if (this._metaHeading) {\n            if (value) {\n                this._metaHeading.innerText = value;\n                dom.show(this._metaHeading);\n            }\n            else {\n                dom.hide(this._metaHeading);\n            }\n        }\n    }\n    _doLayout(heightInPixel, widthInPixel) {\n        if (!this._isShowing && heightInPixel < 0) {\n            // Looks like the view zone got folded away!\n            this.dispose();\n            return;\n        }\n        const headHeight = Math.ceil(this.editor.getOption(67 /* EditorOption.lineHeight */) * 1.2);\n        const bodyHeight = Math.round(heightInPixel - (headHeight + 2 /* the border-top/bottom width*/));\n        this._doLayoutHead(headHeight, widthInPixel);\n        this._doLayoutBody(bodyHeight, widthInPixel);\n    }\n    _doLayoutHead(heightInPixel, widthInPixel) {\n        if (this._headElement) {\n            this._headElement.style.height = `${heightInPixel}px`;\n            this._headElement.style.lineHeight = this._headElement.style.height;\n        }\n    }\n    _doLayoutBody(heightInPixel, widthInPixel) {\n        if (this._bodyElement) {\n            this._bodyElement.style.height = `${heightInPixel}px`;\n        }\n    }\n};\nPeekViewWidget = __decorate([\n    __param(2, IInstantiationService)\n], PeekViewWidget);\nexport { PeekViewWidget };\nexport const peekViewTitleBackground = registerColor('peekViewTitle.background', { dark: '#252526', light: '#F3F3F3', hcDark: Color.black, hcLight: Color.white }, nls.localize('peekViewTitleBackground', 'Background color of the peek view title area.'));\nexport const peekViewTitleForeground = registerColor('peekViewTitleLabel.foreground', { dark: Color.white, light: Color.black, hcDark: Color.white, hcLight: editorForeground }, nls.localize('peekViewTitleForeground', 'Color of the peek view title.'));\nexport const peekViewTitleInfoForeground = registerColor('peekViewTitleDescription.foreground', { dark: '#ccccccb3', light: '#616161', hcDark: '#FFFFFF99', hcLight: '#292929' }, nls.localize('peekViewTitleInfoForeground', 'Color of the peek view title info.'));\nexport const peekViewBorder = registerColor('peekView.border', { dark: editorInfoForeground, light: editorInfoForeground, hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('peekViewBorder', 'Color of the peek view borders and arrow.'));\nexport const peekViewResultsBackground = registerColor('peekViewResult.background', { dark: '#252526', light: '#F3F3F3', hcDark: Color.black, hcLight: Color.white }, nls.localize('peekViewResultsBackground', 'Background color of the peek view result list.'));\nexport const peekViewResultsMatchForeground = registerColor('peekViewResult.lineForeground', { dark: '#bbbbbb', light: '#646465', hcDark: Color.white, hcLight: editorForeground }, nls.localize('peekViewResultsMatchForeground', 'Foreground color for line nodes in the peek view result list.'));\nexport const peekViewResultsFileForeground = registerColor('peekViewResult.fileForeground', { dark: Color.white, light: '#1E1E1E', hcDark: Color.white, hcLight: editorForeground }, nls.localize('peekViewResultsFileForeground', 'Foreground color for file nodes in the peek view result list.'));\nexport const peekViewResultsSelectionBackground = registerColor('peekViewResult.selectionBackground', { dark: '#3399ff33', light: '#3399ff33', hcDark: null, hcLight: null }, nls.localize('peekViewResultsSelectionBackground', 'Background color of the selected entry in the peek view result list.'));\nexport const peekViewResultsSelectionForeground = registerColor('peekViewResult.selectionForeground', { dark: Color.white, light: '#6C6C6C', hcDark: Color.white, hcLight: editorForeground }, nls.localize('peekViewResultsSelectionForeground', 'Foreground color of the selected entry in the peek view result list.'));\nexport const peekViewEditorBackground = registerColor('peekViewEditor.background', { dark: '#001F33', light: '#F2F8FC', hcDark: Color.black, hcLight: Color.white }, nls.localize('peekViewEditorBackground', 'Background color of the peek view editor.'));\nexport const peekViewEditorGutterBackground = registerColor('peekViewEditorGutter.background', { dark: peekViewEditorBackground, light: peekViewEditorBackground, hcDark: peekViewEditorBackground, hcLight: peekViewEditorBackground }, nls.localize('peekViewEditorGutterBackground', 'Background color of the gutter in the peek view editor.'));\nexport const peekViewEditorStickyScrollBackground = registerColor('peekViewEditorStickyScroll.background', { dark: peekViewEditorBackground, light: peekViewEditorBackground, hcDark: peekViewEditorBackground, hcLight: peekViewEditorBackground }, nls.localize('peekViewEditorStickScrollBackground', 'Background color of sticky scroll in the peek view editor.'));\nexport const peekViewResultsMatchHighlight = registerColor('peekViewResult.matchHighlightBackground', { dark: '#ea5c004d', light: '#ea5c004d', hcDark: null, hcLight: null }, nls.localize('peekViewResultsMatchHighlight', 'Match highlight color in the peek view result list.'));\nexport const peekViewEditorMatchHighlight = registerColor('peekViewEditor.matchHighlightBackground', { dark: '#ff8f0099', light: '#f5d802de', hcDark: null, hcLight: null }, nls.localize('peekViewEditorMatchHighlight', 'Match highlight color in the peek view editor.'));\nexport const peekViewEditorMatchHighlightBorder = registerColor('peekViewEditor.matchHighlightBorder', { dark: null, light: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize('peekViewEditorMatchHighlightBorder', 'Match highlight border in the peek view editor.'));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/quickAccess/browser/commandsQuickAccess.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { stripIcons } from '../../../../base/common/iconLabels.js';\nimport { isLocalizedString } from '../../../../platform/action/common/action.js';\nimport { AbstractCommandsQuickAccessProvider } from '../../../../platform/quickinput/browser/commandsQuickAccess.js';\nexport class AbstractEditorCommandsQuickAccessProvider extends AbstractCommandsQuickAccessProvider {\n    constructor(options, instantiationService, keybindingService, commandService, telemetryService, dialogService) {\n        super(options, instantiationService, keybindingService, commandService, telemetryService, dialogService);\n    }\n    getCodeEditorCommandPicks() {\n        var _a;\n        const activeTextEditorControl = this.activeTextEditorControl;\n        if (!activeTextEditorControl) {\n            return [];\n        }\n        const editorCommandPicks = [];\n        for (const editorAction of activeTextEditorControl.getSupportedActions()) {\n            let commandDescription;\n            if ((_a = editorAction.metadata) === null || _a === void 0 ? void 0 : _a.description) {\n                if (isLocalizedString(editorAction.metadata.description)) {\n                    commandDescription = editorAction.metadata.description;\n                }\n                else {\n                    commandDescription = { original: editorAction.metadata.description, value: editorAction.metadata.description };\n                }\n            }\n            editorCommandPicks.push({\n                commandId: editorAction.id,\n                commandAlias: editorAction.alias,\n                commandDescription,\n                label: stripIcons(editorAction.label) || editorAction.id,\n            });\n        }\n        return editorCommandPicks;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/quickAccess/browser/editorNavigationQuickAccess.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createSingleCallFunction } from '../../../../base/common/functional.js';\nimport { DisposableStore, MutableDisposable, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { getCodeEditor, isDiffEditor } from '../../../browser/editorBrowser.js';\nimport { OverviewRulerLane } from '../../../common/model.js';\nimport { overviewRulerRangeHighlight } from '../../../common/core/editorColorRegistry.js';\nimport { themeColorFromId } from '../../../../platform/theme/common/themeService.js';\nimport { status } from '../../../../base/browser/ui/aria/aria.js';\n/**\n * A reusable quick access provider for the editor with support\n * for adding decorations for navigating in the currently active file\n * (for example \"Go to line\", \"Go to symbol\").\n */\nexport class AbstractEditorNavigationQuickAccessProvider {\n    constructor(options) {\n        this.options = options;\n        //#endregion\n        //#region Decorations Utils\n        this.rangeHighlightDecorationId = undefined;\n    }\n    //#region Provider methods\n    provide(picker, token, runOptions) {\n        var _a;\n        const disposables = new DisposableStore();\n        // Apply options if any\n        picker.canAcceptInBackground = !!((_a = this.options) === null || _a === void 0 ? void 0 : _a.canAcceptInBackground);\n        // Disable filtering & sorting, we control the results\n        picker.matchOnLabel = picker.matchOnDescription = picker.matchOnDetail = picker.sortByLabel = false;\n        // Provide based on current active editor\n        const pickerDisposable = disposables.add(new MutableDisposable());\n        pickerDisposable.value = this.doProvide(picker, token, runOptions);\n        // Re-create whenever the active editor changes\n        disposables.add(this.onDidActiveTextEditorControlChange(() => {\n            // Clear old\n            pickerDisposable.value = undefined;\n            // Add new\n            pickerDisposable.value = this.doProvide(picker, token);\n        }));\n        return disposables;\n    }\n    doProvide(picker, token, runOptions) {\n        var _a;\n        const disposables = new DisposableStore();\n        // With text control\n        const editor = this.activeTextEditorControl;\n        if (editor && this.canProvideWithTextEditor(editor)) {\n            const context = { editor };\n            // Restore any view state if this picker was closed\n            // without actually going to a line\n            const codeEditor = getCodeEditor(editor);\n            if (codeEditor) {\n                // Remember view state and update it when the cursor position\n                // changes even later because it could be that the user has\n                // configured quick access to remain open when focus is lost and\n                // we always want to restore the current location.\n                let lastKnownEditorViewState = (_a = editor.saveViewState()) !== null && _a !== void 0 ? _a : undefined;\n                disposables.add(codeEditor.onDidChangeCursorPosition(() => {\n                    var _a;\n                    lastKnownEditorViewState = (_a = editor.saveViewState()) !== null && _a !== void 0 ? _a : undefined;\n                }));\n                context.restoreViewState = () => {\n                    if (lastKnownEditorViewState && editor === this.activeTextEditorControl) {\n                        editor.restoreViewState(lastKnownEditorViewState);\n                    }\n                };\n                disposables.add(createSingleCallFunction(token.onCancellationRequested)(() => { var _a; return (_a = context.restoreViewState) === null || _a === void 0 ? void 0 : _a.call(context); }));\n            }\n            // Clean up decorations on dispose\n            disposables.add(toDisposable(() => this.clearDecorations(editor)));\n            // Ask subclass for entries\n            disposables.add(this.provideWithTextEditor(context, picker, token, runOptions));\n        }\n        // Without text control\n        else {\n            disposables.add(this.provideWithoutTextEditor(picker, token));\n        }\n        return disposables;\n    }\n    /**\n     * Subclasses to implement if they can operate on the text editor.\n     */\n    canProvideWithTextEditor(editor) {\n        return true;\n    }\n    gotoLocation({ editor }, options) {\n        editor.setSelection(options.range, \"code.jump\" /* TextEditorSelectionSource.JUMP */);\n        editor.revealRangeInCenter(options.range, 0 /* ScrollType.Smooth */);\n        if (!options.preserveFocus) {\n            editor.focus();\n        }\n        const model = editor.getModel();\n        if (model && 'getLineContent' in model) {\n            status(`${model.getLineContent(options.range.startLineNumber)}`);\n        }\n    }\n    getModel(editor) {\n        var _a;\n        return isDiffEditor(editor) ?\n            (_a = editor.getModel()) === null || _a === void 0 ? void 0 : _a.modified :\n            editor.getModel();\n    }\n    addDecorations(editor, range) {\n        editor.changeDecorations(changeAccessor => {\n            // Reset old decorations if any\n            const deleteDecorations = [];\n            if (this.rangeHighlightDecorationId) {\n                deleteDecorations.push(this.rangeHighlightDecorationId.overviewRulerDecorationId);\n                deleteDecorations.push(this.rangeHighlightDecorationId.rangeHighlightId);\n                this.rangeHighlightDecorationId = undefined;\n            }\n            // Add new decorations for the range\n            const newDecorations = [\n                // highlight the entire line on the range\n                {\n                    range,\n                    options: {\n                        description: 'quick-access-range-highlight',\n                        className: 'rangeHighlight',\n                        isWholeLine: true\n                    }\n                },\n                // also add overview ruler highlight\n                {\n                    range,\n                    options: {\n                        description: 'quick-access-range-highlight-overview',\n                        overviewRuler: {\n                            color: themeColorFromId(overviewRulerRangeHighlight),\n                            position: OverviewRulerLane.Full\n                        }\n                    }\n                }\n            ];\n            const [rangeHighlightId, overviewRulerDecorationId] = changeAccessor.deltaDecorations(deleteDecorations, newDecorations);\n            this.rangeHighlightDecorationId = { rangeHighlightId, overviewRulerDecorationId };\n        });\n    }\n    clearDecorations(editor) {\n        const rangeHighlightDecorationId = this.rangeHighlightDecorationId;\n        if (rangeHighlightDecorationId) {\n            editor.changeDecorations(changeAccessor => {\n                changeAccessor.deltaDecorations([\n                    rangeHighlightDecorationId.overviewRulerDecorationId,\n                    rangeHighlightDecorationId.rangeHighlightId\n                ], []);\n            });\n            this.rangeHighlightDecorationId = undefined;\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Disposable, DisposableStore, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { getCodeEditor } from '../../../browser/editorBrowser.js';\nimport { AbstractEditorNavigationQuickAccessProvider } from './editorNavigationQuickAccess.js';\nimport { localize } from '../../../../nls.js';\nexport class AbstractGotoLineQuickAccessProvider extends AbstractEditorNavigationQuickAccessProvider {\n    constructor() {\n        super({ canAcceptInBackground: true });\n    }\n    provideWithoutTextEditor(picker) {\n        const label = localize('cannotRunGotoLine', \"Open a text editor first to go to a line.\");\n        picker.items = [{ label }];\n        picker.ariaLabel = label;\n        return Disposable.None;\n    }\n    provideWithTextEditor(context, picker, token) {\n        const editor = context.editor;\n        const disposables = new DisposableStore();\n        // Goto line once picked\n        disposables.add(picker.onDidAccept(event => {\n            const [item] = picker.selectedItems;\n            if (item) {\n                if (!this.isValidLineNumber(editor, item.lineNumber)) {\n                    return;\n                }\n                this.gotoLocation(context, { range: this.toRange(item.lineNumber, item.column), keyMods: picker.keyMods, preserveFocus: event.inBackground });\n                if (!event.inBackground) {\n                    picker.hide();\n                }\n            }\n        }));\n        // React to picker changes\n        const updatePickerAndEditor = () => {\n            const position = this.parsePosition(editor, picker.value.trim().substr(AbstractGotoLineQuickAccessProvider.PREFIX.length));\n            const label = this.getPickLabel(editor, position.lineNumber, position.column);\n            // Picker\n            picker.items = [{\n                    lineNumber: position.lineNumber,\n                    column: position.column,\n                    label\n                }];\n            // ARIA Label\n            picker.ariaLabel = label;\n            // Clear decorations for invalid range\n            if (!this.isValidLineNumber(editor, position.lineNumber)) {\n                this.clearDecorations(editor);\n                return;\n            }\n            // Reveal\n            const range = this.toRange(position.lineNumber, position.column);\n            editor.revealRangeInCenter(range, 0 /* ScrollType.Smooth */);\n            // Decorate\n            this.addDecorations(editor, range);\n        };\n        updatePickerAndEditor();\n        disposables.add(picker.onDidChangeValue(() => updatePickerAndEditor()));\n        // Adjust line number visibility as needed\n        const codeEditor = getCodeEditor(editor);\n        if (codeEditor) {\n            const options = codeEditor.getOptions();\n            const lineNumbers = options.get(68 /* EditorOption.lineNumbers */);\n            if (lineNumbers.renderType === 2 /* RenderLineNumbersType.Relative */) {\n                codeEditor.updateOptions({ lineNumbers: 'on' });\n                disposables.add(toDisposable(() => codeEditor.updateOptions({ lineNumbers: 'relative' })));\n            }\n        }\n        return disposables;\n    }\n    toRange(lineNumber = 1, column = 1) {\n        return {\n            startLineNumber: lineNumber,\n            startColumn: column,\n            endLineNumber: lineNumber,\n            endColumn: column\n        };\n    }\n    parsePosition(editor, value) {\n        // Support line-col formats of `line,col`, `line:col`, `line#col`\n        const numbers = value.split(/,|:|#/).map(part => parseInt(part, 10)).filter(part => !isNaN(part));\n        const endLine = this.lineCount(editor) + 1;\n        return {\n            lineNumber: numbers[0] > 0 ? numbers[0] : endLine + numbers[0],\n            column: numbers[1]\n        };\n    }\n    getPickLabel(editor, lineNumber, column) {\n        // Location valid: indicate this as picker label\n        if (this.isValidLineNumber(editor, lineNumber)) {\n            if (this.isValidColumn(editor, lineNumber, column)) {\n                return localize('gotoLineColumnLabel', \"Go to line {0} and character {1}.\", lineNumber, column);\n            }\n            return localize('gotoLineLabel', \"Go to line {0}.\", lineNumber);\n        }\n        // Location invalid: show generic label\n        const position = editor.getPosition() || { lineNumber: 1, column: 1 };\n        const lineCount = this.lineCount(editor);\n        if (lineCount > 1) {\n            return localize('gotoLineLabelEmptyWithLimit', \"Current Line: {0}, Character: {1}. Type a line number between 1 and {2} to navigate to.\", position.lineNumber, position.column, lineCount);\n        }\n        return localize('gotoLineLabelEmpty', \"Current Line: {0}, Character: {1}. Type a line number to navigate to.\", position.lineNumber, position.column);\n    }\n    isValidLineNumber(editor, lineNumber) {\n        if (!lineNumber || typeof lineNumber !== 'number') {\n            return false;\n        }\n        return lineNumber > 0 && lineNumber <= this.lineCount(editor);\n    }\n    isValidColumn(editor, lineNumber, column) {\n        if (!column || typeof column !== 'number') {\n            return false;\n        }\n        const model = this.getModel(editor);\n        if (!model) {\n            return false;\n        }\n        const positionCandidate = { lineNumber, column };\n        return model.validatePosition(positionCandidate).equals(positionCandidate);\n    }\n    lineCount(editor) {\n        var _a, _b;\n        return (_b = (_a = this.getModel(editor)) === null || _a === void 0 ? void 0 : _a.getLineCount()) !== null && _b !== void 0 ? _b : 0;\n    }\n}\nAbstractGotoLineQuickAccessProvider.PREFIX = ':';\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar AbstractGotoSymbolQuickAccessProvider_1;\nimport { DeferredPromise } from '../../../../base/common/async.js';\nimport { CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { ThemeIcon } from '../../../../base/common/themables.js';\nimport { pieceToQuery, prepareQuery, scoreFuzzy2 } from '../../../../base/common/fuzzyScorer.js';\nimport { Disposable, DisposableStore, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { format, trim } from '../../../../base/common/strings.js';\nimport { Range } from '../../../common/core/range.js';\nimport { SymbolKinds, getAriaLabelForSymbol } from '../../../common/languages.js';\nimport { IOutlineModelService } from '../../documentSymbols/browser/outlineModel.js';\nimport { AbstractEditorNavigationQuickAccessProvider } from './editorNavigationQuickAccess.js';\nimport { localize } from '../../../../nls.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { findLast } from '../../../../base/common/arraysFind.js';\nlet AbstractGotoSymbolQuickAccessProvider = AbstractGotoSymbolQuickAccessProvider_1 = class AbstractGotoSymbolQuickAccessProvider extends AbstractEditorNavigationQuickAccessProvider {\n    constructor(_languageFeaturesService, _outlineModelService, options = Object.create(null)) {\n        super(options);\n        this._languageFeaturesService = _languageFeaturesService;\n        this._outlineModelService = _outlineModelService;\n        this.options = options;\n        this.options.canAcceptInBackground = true;\n    }\n    provideWithoutTextEditor(picker) {\n        this.provideLabelPick(picker, localize('cannotRunGotoSymbolWithoutEditor', \"To go to a symbol, first open a text editor with symbol information.\"));\n        return Disposable.None;\n    }\n    provideWithTextEditor(context, picker, token, runOptions) {\n        const editor = context.editor;\n        const model = this.getModel(editor);\n        if (!model) {\n            return Disposable.None;\n        }\n        // Provide symbols from model if available in registry\n        if (this._languageFeaturesService.documentSymbolProvider.has(model)) {\n            return this.doProvideWithEditorSymbols(context, model, picker, token, runOptions);\n        }\n        // Otherwise show an entry for a model without registry\n        // But give a chance to resolve the symbols at a later\n        // point if possible\n        return this.doProvideWithoutEditorSymbols(context, model, picker, token);\n    }\n    doProvideWithoutEditorSymbols(context, model, picker, token) {\n        const disposables = new DisposableStore();\n        // Generic pick for not having any symbol information\n        this.provideLabelPick(picker, localize('cannotRunGotoSymbolWithoutSymbolProvider', \"The active text editor does not provide symbol information.\"));\n        // Wait for changes to the registry and see if eventually\n        // we do get symbols. This can happen if the picker is opened\n        // very early after the model has loaded but before the\n        // language registry is ready.\n        // https://github.com/microsoft/vscode/issues/70607\n        (async () => {\n            const result = await this.waitForLanguageSymbolRegistry(model, disposables);\n            if (!result || token.isCancellationRequested) {\n                return;\n            }\n            disposables.add(this.doProvideWithEditorSymbols(context, model, picker, token));\n        })();\n        return disposables;\n    }\n    provideLabelPick(picker, label) {\n        picker.items = [{ label, index: 0, kind: 14 /* SymbolKind.String */ }];\n        picker.ariaLabel = label;\n    }\n    async waitForLanguageSymbolRegistry(model, disposables) {\n        if (this._languageFeaturesService.documentSymbolProvider.has(model)) {\n            return true;\n        }\n        const symbolProviderRegistryPromise = new DeferredPromise();\n        // Resolve promise when registry knows model\n        const symbolProviderListener = disposables.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(() => {\n            if (this._languageFeaturesService.documentSymbolProvider.has(model)) {\n                symbolProviderListener.dispose();\n                symbolProviderRegistryPromise.complete(true);\n            }\n        }));\n        // Resolve promise when we get disposed too\n        disposables.add(toDisposable(() => symbolProviderRegistryPromise.complete(false)));\n        return symbolProviderRegistryPromise.p;\n    }\n    doProvideWithEditorSymbols(context, model, picker, token, runOptions) {\n        var _a;\n        const editor = context.editor;\n        const disposables = new DisposableStore();\n        // Goto symbol once picked\n        disposables.add(picker.onDidAccept(event => {\n            var _a;\n            const [item] = picker.selectedItems;\n            if (item && item.range) {\n                this.gotoLocation(context, { range: item.range.selection, keyMods: picker.keyMods, preserveFocus: event.inBackground });\n                (_a = runOptions === null || runOptions === void 0 ? void 0 : runOptions.handleAccept) === null || _a === void 0 ? void 0 : _a.call(runOptions, item);\n                if (!event.inBackground) {\n                    picker.hide();\n                }\n            }\n        }));\n        // Goto symbol side by side if enabled\n        disposables.add(picker.onDidTriggerItemButton(({ item }) => {\n            if (item && item.range) {\n                this.gotoLocation(context, { range: item.range.selection, keyMods: picker.keyMods, forceSideBySide: true });\n                picker.hide();\n            }\n        }));\n        // Resolve symbols from document once and reuse this\n        // request for all filtering and typing then on\n        const symbolsPromise = this.getDocumentSymbols(model, token);\n        // Set initial picks and update on type\n        let picksCts = undefined;\n        const updatePickerItems = async (positionToEnclose) => {\n            // Cancel any previous ask for picks and busy\n            picksCts === null || picksCts === void 0 ? void 0 : picksCts.dispose(true);\n            picker.busy = false;\n            // Create new cancellation source for this run\n            picksCts = new CancellationTokenSource(token);\n            // Collect symbol picks\n            picker.busy = true;\n            try {\n                const query = prepareQuery(picker.value.substr(AbstractGotoSymbolQuickAccessProvider_1.PREFIX.length).trim());\n                const items = await this.doGetSymbolPicks(symbolsPromise, query, undefined, picksCts.token, model);\n                if (token.isCancellationRequested) {\n                    return;\n                }\n                if (items.length > 0) {\n                    picker.items = items;\n                    if (positionToEnclose && query.original.length === 0) {\n                        const candidate = findLast(items, item => Boolean(item.type !== 'separator' && item.range && Range.containsPosition(item.range.decoration, positionToEnclose)));\n                        if (candidate) {\n                            picker.activeItems = [candidate];\n                        }\n                    }\n                }\n                else {\n                    if (query.original.length > 0) {\n                        this.provideLabelPick(picker, localize('noMatchingSymbolResults', \"No matching editor symbols\"));\n                    }\n                    else {\n                        this.provideLabelPick(picker, localize('noSymbolResults', \"No editor symbols\"));\n                    }\n                }\n            }\n            finally {\n                if (!token.isCancellationRequested) {\n                    picker.busy = false;\n                }\n            }\n        };\n        disposables.add(picker.onDidChangeValue(() => updatePickerItems(undefined)));\n        updatePickerItems((_a = editor.getSelection()) === null || _a === void 0 ? void 0 : _a.getPosition());\n        // Reveal and decorate when active item changes\n        disposables.add(picker.onDidChangeActive(() => {\n            const [item] = picker.activeItems;\n            if (item && item.range) {\n                // Reveal\n                editor.revealRangeInCenter(item.range.selection, 0 /* ScrollType.Smooth */);\n                // Decorate\n                this.addDecorations(editor, item.range.decoration);\n            }\n        }));\n        return disposables;\n    }\n    async doGetSymbolPicks(symbolsPromise, query, options, token, model) {\n        var _a, _b;\n        const symbols = await symbolsPromise;\n        if (token.isCancellationRequested) {\n            return [];\n        }\n        const filterBySymbolKind = query.original.indexOf(AbstractGotoSymbolQuickAccessProvider_1.SCOPE_PREFIX) === 0;\n        const filterPos = filterBySymbolKind ? 1 : 0;\n        // Split between symbol and container query\n        let symbolQuery;\n        let containerQuery;\n        if (query.values && query.values.length > 1) {\n            symbolQuery = pieceToQuery(query.values[0]); // symbol: only match on first part\n            containerQuery = pieceToQuery(query.values.slice(1)); // container: match on all but first parts\n        }\n        else {\n            symbolQuery = query;\n        }\n        // Convert to symbol picks and apply filtering\n        let buttons;\n        const openSideBySideDirection = (_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.openSideBySideDirection) === null || _b === void 0 ? void 0 : _b.call(_a);\n        if (openSideBySideDirection) {\n            buttons = [{\n                    iconClass: openSideBySideDirection === 'right' ? ThemeIcon.asClassName(Codicon.splitHorizontal) : ThemeIcon.asClassName(Codicon.splitVertical),\n                    tooltip: openSideBySideDirection === 'right' ? localize('openToSide', \"Open to the Side\") : localize('openToBottom', \"Open to the Bottom\")\n                }];\n        }\n        const filteredSymbolPicks = [];\n        for (let index = 0; index < symbols.length; index++) {\n            const symbol = symbols[index];\n            const symbolLabel = trim(symbol.name);\n            const symbolLabelWithIcon = `$(${SymbolKinds.toIcon(symbol.kind).id}) ${symbolLabel}`;\n            const symbolLabelIconOffset = symbolLabelWithIcon.length - symbolLabel.length;\n            let containerLabel = symbol.containerName;\n            if (options === null || options === void 0 ? void 0 : options.extraContainerLabel) {\n                if (containerLabel) {\n                    containerLabel = `${options.extraContainerLabel} • ${containerLabel}`;\n                }\n                else {\n                    containerLabel = options.extraContainerLabel;\n                }\n            }\n            let symbolScore = undefined;\n            let symbolMatches = undefined;\n            let containerScore = undefined;\n            let containerMatches = undefined;\n            if (query.original.length > filterPos) {\n                // First: try to score on the entire query, it is possible that\n                // the symbol matches perfectly (e.g. searching for \"change log\"\n                // can be a match on a markdown symbol \"change log\"). In that\n                // case we want to skip the container query altogether.\n                let skipContainerQuery = false;\n                if (symbolQuery !== query) {\n                    [symbolScore, symbolMatches] = scoreFuzzy2(symbolLabelWithIcon, { ...query, values: undefined /* disable multi-query support */ }, filterPos, symbolLabelIconOffset);\n                    if (typeof symbolScore === 'number') {\n                        skipContainerQuery = true; // since we consumed the query, skip any container matching\n                    }\n                }\n                // Otherwise: score on the symbol query and match on the container later\n                if (typeof symbolScore !== 'number') {\n                    [symbolScore, symbolMatches] = scoreFuzzy2(symbolLabelWithIcon, symbolQuery, filterPos, symbolLabelIconOffset);\n                    if (typeof symbolScore !== 'number') {\n                        continue;\n                    }\n                }\n                // Score by container if specified\n                if (!skipContainerQuery && containerQuery) {\n                    if (containerLabel && containerQuery.original.length > 0) {\n                        [containerScore, containerMatches] = scoreFuzzy2(containerLabel, containerQuery);\n                    }\n                    if (typeof containerScore !== 'number') {\n                        continue;\n                    }\n                    if (typeof symbolScore === 'number') {\n                        symbolScore += containerScore; // boost symbolScore by containerScore\n                    }\n                }\n            }\n            const deprecated = symbol.tags && symbol.tags.indexOf(1 /* SymbolTag.Deprecated */) >= 0;\n            filteredSymbolPicks.push({\n                index,\n                kind: symbol.kind,\n                score: symbolScore,\n                label: symbolLabelWithIcon,\n                ariaLabel: getAriaLabelForSymbol(symbol.name, symbol.kind),\n                description: containerLabel,\n                highlights: deprecated ? undefined : {\n                    label: symbolMatches,\n                    description: containerMatches\n                },\n                range: {\n                    selection: Range.collapseToStart(symbol.selectionRange),\n                    decoration: symbol.range\n                },\n                uri: model.uri,\n                symbolName: symbolLabel,\n                strikethrough: deprecated,\n                buttons\n            });\n        }\n        // Sort by score\n        const sortedFilteredSymbolPicks = filteredSymbolPicks.sort((symbolA, symbolB) => filterBySymbolKind ?\n            this.compareByKindAndScore(symbolA, symbolB) :\n            this.compareByScore(symbolA, symbolB));\n        // Add separator for types\n        // - @  only total number of symbols\n        // - @: grouped by symbol kind\n        let symbolPicks = [];\n        if (filterBySymbolKind) {\n            let lastSymbolKind = undefined;\n            let lastSeparator = undefined;\n            let lastSymbolKindCounter = 0;\n            function updateLastSeparatorLabel() {\n                if (lastSeparator && typeof lastSymbolKind === 'number' && lastSymbolKindCounter > 0) {\n                    lastSeparator.label = format(NLS_SYMBOL_KIND_CACHE[lastSymbolKind] || FALLBACK_NLS_SYMBOL_KIND, lastSymbolKindCounter);\n                }\n            }\n            for (const symbolPick of sortedFilteredSymbolPicks) {\n                // Found new kind\n                if (lastSymbolKind !== symbolPick.kind) {\n                    // Update last separator with number of symbols we found for kind\n                    updateLastSeparatorLabel();\n                    lastSymbolKind = symbolPick.kind;\n                    lastSymbolKindCounter = 1;\n                    // Add new separator for new kind\n                    lastSeparator = { type: 'separator' };\n                    symbolPicks.push(lastSeparator);\n                }\n                // Existing kind, keep counting\n                else {\n                    lastSymbolKindCounter++;\n                }\n                // Add to final result\n                symbolPicks.push(symbolPick);\n            }\n            // Update last separator with number of symbols we found for kind\n            updateLastSeparatorLabel();\n        }\n        else if (sortedFilteredSymbolPicks.length > 0) {\n            symbolPicks = [\n                { label: localize('symbols', \"symbols ({0})\", filteredSymbolPicks.length), type: 'separator' },\n                ...sortedFilteredSymbolPicks\n            ];\n        }\n        return symbolPicks;\n    }\n    compareByScore(symbolA, symbolB) {\n        if (typeof symbolA.score !== 'number' && typeof symbolB.score === 'number') {\n            return 1;\n        }\n        else if (typeof symbolA.score === 'number' && typeof symbolB.score !== 'number') {\n            return -1;\n        }\n        if (typeof symbolA.score === 'number' && typeof symbolB.score === 'number') {\n            if (symbolA.score > symbolB.score) {\n                return -1;\n            }\n            else if (symbolA.score < symbolB.score) {\n                return 1;\n            }\n        }\n        if (symbolA.index < symbolB.index) {\n            return -1;\n        }\n        else if (symbolA.index > symbolB.index) {\n            return 1;\n        }\n        return 0;\n    }\n    compareByKindAndScore(symbolA, symbolB) {\n        const kindA = NLS_SYMBOL_KIND_CACHE[symbolA.kind] || FALLBACK_NLS_SYMBOL_KIND;\n        const kindB = NLS_SYMBOL_KIND_CACHE[symbolB.kind] || FALLBACK_NLS_SYMBOL_KIND;\n        // Sort by type first if scoped search\n        const result = kindA.localeCompare(kindB);\n        if (result === 0) {\n            return this.compareByScore(symbolA, symbolB);\n        }\n        return result;\n    }\n    async getDocumentSymbols(document, token) {\n        const model = await this._outlineModelService.getOrCreate(document, token);\n        return token.isCancellationRequested ? [] : model.asListOfDocumentSymbols();\n    }\n};\nAbstractGotoSymbolQuickAccessProvider.PREFIX = '@';\nAbstractGotoSymbolQuickAccessProvider.SCOPE_PREFIX = ':';\nAbstractGotoSymbolQuickAccessProvider.PREFIX_BY_CATEGORY = `${AbstractGotoSymbolQuickAccessProvider_1.PREFIX}${AbstractGotoSymbolQuickAccessProvider_1.SCOPE_PREFIX}`;\nAbstractGotoSymbolQuickAccessProvider = AbstractGotoSymbolQuickAccessProvider_1 = __decorate([\n    __param(0, ILanguageFeaturesService),\n    __param(1, IOutlineModelService)\n], AbstractGotoSymbolQuickAccessProvider);\nexport { AbstractGotoSymbolQuickAccessProvider };\n// #region NLS Helpers\nconst FALLBACK_NLS_SYMBOL_KIND = localize('property', \"properties ({0})\");\nconst NLS_SYMBOL_KIND_CACHE = {\n    [5 /* SymbolKind.Method */]: localize('method', \"methods ({0})\"),\n    [11 /* SymbolKind.Function */]: localize('function', \"functions ({0})\"),\n    [8 /* SymbolKind.Constructor */]: localize('_constructor', \"constructors ({0})\"),\n    [12 /* SymbolKind.Variable */]: localize('variable', \"variables ({0})\"),\n    [4 /* SymbolKind.Class */]: localize('class', \"classes ({0})\"),\n    [22 /* SymbolKind.Struct */]: localize('struct', \"structs ({0})\"),\n    [23 /* SymbolKind.Event */]: localize('event', \"events ({0})\"),\n    [24 /* SymbolKind.Operator */]: localize('operator', \"operators ({0})\"),\n    [10 /* SymbolKind.Interface */]: localize('interface', \"interfaces ({0})\"),\n    [2 /* SymbolKind.Namespace */]: localize('namespace', \"namespaces ({0})\"),\n    [3 /* SymbolKind.Package */]: localize('package', \"packages ({0})\"),\n    [25 /* SymbolKind.TypeParameter */]: localize('typeParameter', \"type parameters ({0})\"),\n    [1 /* SymbolKind.Module */]: localize('modules', \"modules ({0})\"),\n    [6 /* SymbolKind.Property */]: localize('property', \"properties ({0})\"),\n    [9 /* SymbolKind.Enum */]: localize('enum', \"enumerations ({0})\"),\n    [21 /* SymbolKind.EnumMember */]: localize('enumMember', \"enumeration members ({0})\"),\n    [14 /* SymbolKind.String */]: localize('string', \"strings ({0})\"),\n    [0 /* SymbolKind.File */]: localize('file', \"files ({0})\"),\n    [17 /* SymbolKind.Array */]: localize('array', \"arrays ({0})\"),\n    [15 /* SymbolKind.Number */]: localize('number', \"numbers ({0})\"),\n    [16 /* SymbolKind.Boolean */]: localize('boolean', \"booleans ({0})\"),\n    [18 /* SymbolKind.Object */]: localize('object', \"objects ({0})\"),\n    [19 /* SymbolKind.Key */]: localize('key', \"keys ({0})\"),\n    [7 /* SymbolKind.Field */]: localize('field', \"fields ({0})\"),\n    [13 /* SymbolKind.Constant */]: localize('constant', \"constants ({0})\")\n};\n//#endregion\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/readOnlyMessage/browser/contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/readOnlyMessage/browser/contribution.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { MarkdownString } from '../../../../base/common/htmlContent.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { MessageController } from '../../message/browser/messageController.js';\nimport * as nls from '../../../../nls.js';\nexport class ReadOnlyMessageController extends Disposable {\n    constructor(editor) {\n        super();\n        this.editor = editor;\n        this._register(this.editor.onDidAttemptReadOnlyEdit(() => this._onDidAttemptReadOnlyEdit()));\n    }\n    _onDidAttemptReadOnlyEdit() {\n        const messageController = MessageController.get(this.editor);\n        if (messageController && this.editor.hasModel()) {\n            let message = this.editor.getOptions().get(92 /* EditorOption.readOnlyMessage */);\n            if (!message) {\n                if (this.editor.isSimpleWidget) {\n                    message = new MarkdownString(nls.localize('editor.simple.readonly', \"Cannot edit in read-only input\"));\n                }\n                else {\n                    message = new MarkdownString(nls.localize('editor.readonly', \"Cannot edit in read-only editor\"));\n                }\n            }\n            messageController.showMessage(message, this.editor.getPosition());\n        }\n    }\n}\nReadOnlyMessageController.ID = 'editor.contrib.readOnlyMessageController';\nregisterEditorContribution(ReadOnlyMessageController.ID, ReadOnlyMessageController, 2 /* EditorContributionInstantiation.BeforeFirstInteraction */);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/rename/browser/rename.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/rename/browser/rename.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar RenameController_1;\nimport { alert } from '../../../../base/browser/ui/aria/aria.js';\nimport { raceCancellation } from '../../../../base/common/async.js';\nimport { CancellationToken, CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { CancellationError, onUnexpectedError } from '../../../../base/common/errors.js';\nimport { isMarkdownString } from '../../../../base/common/htmlContent.js';\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { assertType } from '../../../../base/common/types.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport { EditorAction, EditorCommand, registerEditorAction, registerEditorCommand, registerEditorContribution, registerModelAndPositionCommand } from '../../../browser/editorExtensions.js';\nimport { IBulkEditService } from '../../../browser/services/bulkEditService.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { NewSymbolNameTriggerKind } from '../../../common/languages.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { ITextResourceConfigurationService } from '../../../common/services/textResourceConfiguration.js';\nimport { EditorStateCancellationTokenSource } from '../../editorState/browser/editorState.js';\nimport { MessageController } from '../../message/browser/messageController.js';\nimport * as nls from '../../../../nls.js';\nimport { Action2, registerAction2 } from '../../../../platform/actions/common/actions.js';\nimport { Extensions } from '../../../../platform/configuration/common/configurationRegistry.js';\nimport { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { ILogService } from '../../../../platform/log/common/log.js';\nimport { INotificationService } from '../../../../platform/notification/common/notification.js';\nimport { IEditorProgressService } from '../../../../platform/progress/common/progress.js';\nimport { Registry } from '../../../../platform/registry/common/platform.js';\nimport { ITelemetryService } from '../../../../platform/telemetry/common/telemetry.js';\nimport { CONTEXT_RENAME_INPUT_VISIBLE, RenameWidget } from './renameWidget.js';\nclass RenameSkeleton {\n    constructor(model, position, registry) {\n        this.model = model;\n        this.position = position;\n        this._providerRenameIdx = 0;\n        this._providers = registry.ordered(model);\n    }\n    hasProvider() {\n        return this._providers.length > 0;\n    }\n    async resolveRenameLocation(token) {\n        const rejects = [];\n        for (this._providerRenameIdx = 0; this._providerRenameIdx < this._providers.length; this._providerRenameIdx++) {\n            const provider = this._providers[this._providerRenameIdx];\n            if (!provider.resolveRenameLocation) {\n                break;\n            }\n            const res = await provider.resolveRenameLocation(this.model, this.position, token);\n            if (!res) {\n                continue;\n            }\n            if (res.rejectReason) {\n                rejects.push(res.rejectReason);\n                continue;\n            }\n            return res;\n        }\n        // we are here when no provider prepared a location which means we can\n        // just rely on the word under cursor and start with the first provider\n        this._providerRenameIdx = 0;\n        const word = this.model.getWordAtPosition(this.position);\n        if (!word) {\n            return {\n                range: Range.fromPositions(this.position),\n                text: '',\n                rejectReason: rejects.length > 0 ? rejects.join('\\n') : undefined\n            };\n        }\n        return {\n            range: new Range(this.position.lineNumber, word.startColumn, this.position.lineNumber, word.endColumn),\n            text: word.word,\n            rejectReason: rejects.length > 0 ? rejects.join('\\n') : undefined\n        };\n    }\n    async provideRenameEdits(newName, token) {\n        return this._provideRenameEdits(newName, this._providerRenameIdx, [], token);\n    }\n    async _provideRenameEdits(newName, i, rejects, token) {\n        const provider = this._providers[i];\n        if (!provider) {\n            return {\n                edits: [],\n                rejectReason: rejects.join('\\n')\n            };\n        }\n        const result = await provider.provideRenameEdits(this.model, this.position, newName, token);\n        if (!result) {\n            return this._provideRenameEdits(newName, i + 1, rejects.concat(nls.localize('no result', \"No result.\")), token);\n        }\n        else if (result.rejectReason) {\n            return this._provideRenameEdits(newName, i + 1, rejects.concat(result.rejectReason), token);\n        }\n        return result;\n    }\n}\nexport async function rename(registry, model, position, newName) {\n    const skeleton = new RenameSkeleton(model, position, registry);\n    const loc = await skeleton.resolveRenameLocation(CancellationToken.None);\n    if (loc === null || loc === void 0 ? void 0 : loc.rejectReason) {\n        return { edits: [], rejectReason: loc.rejectReason };\n    }\n    return skeleton.provideRenameEdits(newName, CancellationToken.None);\n}\n// ---  register actions and commands\nlet RenameController = RenameController_1 = class RenameController {\n    static get(editor) {\n        return editor.getContribution(RenameController_1.ID);\n    }\n    constructor(editor, _instaService, _notificationService, _bulkEditService, _progressService, _logService, _configService, _languageFeaturesService, _telemetryService) {\n        this.editor = editor;\n        this._instaService = _instaService;\n        this._notificationService = _notificationService;\n        this._bulkEditService = _bulkEditService;\n        this._progressService = _progressService;\n        this._logService = _logService;\n        this._configService = _configService;\n        this._languageFeaturesService = _languageFeaturesService;\n        this._telemetryService = _telemetryService;\n        this._disposableStore = new DisposableStore();\n        this._cts = new CancellationTokenSource();\n        this._renameWidget = this._disposableStore.add(this._instaService.createInstance(RenameWidget, this.editor, ['acceptRenameInput', 'acceptRenameInputWithPreview']));\n    }\n    dispose() {\n        this._disposableStore.dispose();\n        this._cts.dispose(true);\n    }\n    async run() {\n        var _a, _b;\n        const trace = this._logService.trace.bind(this._logService, '[rename]');\n        // set up cancellation token to prevent reentrant rename, this\n        // is the parent to the resolve- and rename-tokens\n        this._cts.dispose(true);\n        this._cts = new CancellationTokenSource();\n        if (!this.editor.hasModel()) {\n            trace('editor has no model');\n            return undefined;\n        }\n        const position = this.editor.getPosition();\n        const skeleton = new RenameSkeleton(this.editor.getModel(), position, this._languageFeaturesService.renameProvider);\n        if (!skeleton.hasProvider()) {\n            trace('skeleton has no provider');\n            return undefined;\n        }\n        // part 1 - resolve rename location\n        const cts1 = new EditorStateCancellationTokenSource(this.editor, 4 /* CodeEditorStateFlag.Position */ | 1 /* CodeEditorStateFlag.Value */, undefined, this._cts.token);\n        let loc;\n        try {\n            trace('resolving rename location');\n            const resolveLocationOperation = skeleton.resolveRenameLocation(cts1.token);\n            this._progressService.showWhile(resolveLocationOperation, 250);\n            loc = await resolveLocationOperation;\n            trace('resolved rename location');\n        }\n        catch (e) {\n            if (e instanceof CancellationError) {\n                trace('resolve rename location cancelled', JSON.stringify(e, null, '\\t'));\n            }\n            else {\n                trace('resolve rename location failed', e instanceof Error ? e : JSON.stringify(e, null, '\\t'));\n                if (typeof e === 'string' || isMarkdownString(e)) {\n                    (_a = MessageController.get(this.editor)) === null || _a === void 0 ? void 0 : _a.showMessage(e || nls.localize('resolveRenameLocationFailed', \"An unknown error occurred while resolving rename location\"), position);\n                }\n            }\n            return undefined;\n        }\n        finally {\n            cts1.dispose();\n        }\n        if (!loc) {\n            trace('returning early - no loc');\n            return undefined;\n        }\n        if (loc.rejectReason) {\n            trace(`returning early - rejected with reason: ${loc.rejectReason}`, loc.rejectReason);\n            (_b = MessageController.get(this.editor)) === null || _b === void 0 ? void 0 : _b.showMessage(loc.rejectReason, position);\n            return undefined;\n        }\n        if (cts1.token.isCancellationRequested) {\n            trace('returning early - cts1 cancelled');\n            return undefined;\n        }\n        // part 2 - do rename at location\n        const cts2 = new EditorStateCancellationTokenSource(this.editor, 4 /* CodeEditorStateFlag.Position */ | 1 /* CodeEditorStateFlag.Value */, loc.range, this._cts.token);\n        const model = this.editor.getModel(); // @ulugbekna: assumes editor still has a model, otherwise, cts1 should've been cancelled\n        const newSymbolNamesProviders = this._languageFeaturesService.newSymbolNamesProvider.all(model);\n        const resolvedNewSymbolnamesProviders = await Promise.all(newSymbolNamesProviders.map(async (p) => { var _a; return [p, (_a = await p.supportsAutomaticNewSymbolNamesTriggerKind) !== null && _a !== void 0 ? _a : false]; }));\n        const requestRenameSuggestions = (triggerKind, cts) => {\n            let providers = resolvedNewSymbolnamesProviders.slice();\n            if (triggerKind === NewSymbolNameTriggerKind.Automatic) {\n                providers = providers.filter(([_, supportsAutomatic]) => supportsAutomatic);\n            }\n            return providers.map(([p,]) => p.provideNewSymbolNames(model, loc.range, triggerKind, cts));\n        };\n        trace('creating rename input field and awaiting its result');\n        const supportPreview = this._bulkEditService.hasPreviewHandler() && this._configService.getValue(this.editor.getModel().uri, 'editor.rename.enablePreview');\n        const inputFieldResult = await this._renameWidget.getInput(loc.range, loc.text, supportPreview, newSymbolNamesProviders.length > 0 ? requestRenameSuggestions : undefined, cts2);\n        trace('received response from rename input field');\n        if (newSymbolNamesProviders.length > 0) { // @ulugbekna: we're interested only in telemetry for rename suggestions currently\n            this._reportTelemetry(newSymbolNamesProviders.length, model.getLanguageId(), inputFieldResult);\n        }\n        // no result, only hint to focus the editor or not\n        if (typeof inputFieldResult === 'boolean') {\n            trace(`returning early - rename input field response - ${inputFieldResult}`);\n            if (inputFieldResult) {\n                this.editor.focus();\n            }\n            cts2.dispose();\n            return undefined;\n        }\n        this.editor.focus();\n        trace('requesting rename edits');\n        const renameOperation = raceCancellation(skeleton.provideRenameEdits(inputFieldResult.newName, cts2.token), cts2.token).then(async (renameResult) => {\n            if (!renameResult) {\n                trace('returning early - no rename edits result');\n                return;\n            }\n            if (!this.editor.hasModel()) {\n                trace('returning early - no model after rename edits are provided');\n                return;\n            }\n            if (renameResult.rejectReason) {\n                trace(`returning early - rejected with reason: ${renameResult.rejectReason}`);\n                this._notificationService.info(renameResult.rejectReason);\n                return;\n            }\n            // collapse selection to active end\n            this.editor.setSelection(Range.fromPositions(this.editor.getSelection().getPosition()));\n            trace('applying edits');\n            this._bulkEditService.apply(renameResult, {\n                editor: this.editor,\n                showPreview: inputFieldResult.wantsPreview,\n                label: nls.localize('label', \"Renaming '{0}' to '{1}'\", loc === null || loc === void 0 ? void 0 : loc.text, inputFieldResult.newName),\n                code: 'undoredo.rename',\n                quotableLabel: nls.localize('quotableLabel', \"Renaming {0} to {1}\", loc === null || loc === void 0 ? void 0 : loc.text, inputFieldResult.newName),\n                respectAutoSaveConfig: true\n            }).then(result => {\n                trace('edits applied');\n                if (result.ariaSummary) {\n                    alert(nls.localize('aria', \"Successfully renamed '{0}' to '{1}'. Summary: {2}\", loc.text, inputFieldResult.newName, result.ariaSummary));\n                }\n            }).catch(err => {\n                trace(`error when applying edits ${JSON.stringify(err, null, '\\t')}`);\n                this._notificationService.error(nls.localize('rename.failedApply', \"Rename failed to apply edits\"));\n                this._logService.error(err);\n            });\n        }, err => {\n            trace('error when providing rename edits', JSON.stringify(err, null, '\\t'));\n            this._notificationService.error(nls.localize('rename.failed', \"Rename failed to compute edits\"));\n            this._logService.error(err);\n        }).finally(() => {\n            cts2.dispose();\n        });\n        trace('returning rename operation');\n        this._progressService.showWhile(renameOperation, 250);\n        return renameOperation;\n    }\n    acceptRenameInput(wantsPreview) {\n        this._renameWidget.acceptInput(wantsPreview);\n    }\n    cancelRenameInput() {\n        this._renameWidget.cancelInput(true, 'cancelRenameInput command');\n    }\n    focusNextRenameSuggestion() {\n        this._renameWidget.focusNextRenameSuggestion();\n    }\n    focusPreviousRenameSuggestion() {\n        this._renameWidget.focusPreviousRenameSuggestion();\n    }\n    _reportTelemetry(nRenameSuggestionProviders, languageId, inputFieldResult) {\n        const value = typeof inputFieldResult === 'boolean'\n            ? {\n                kind: 'cancelled',\n                languageId,\n                nRenameSuggestionProviders,\n            }\n            : {\n                kind: 'accepted',\n                languageId,\n                nRenameSuggestionProviders,\n                source: inputFieldResult.stats.source.k,\n                nRenameSuggestions: inputFieldResult.stats.nRenameSuggestions,\n                timeBeforeFirstInputFieldEdit: inputFieldResult.stats.timeBeforeFirstInputFieldEdit,\n                wantsPreview: inputFieldResult.wantsPreview,\n                nRenameSuggestionsInvocations: inputFieldResult.stats.nRenameSuggestionsInvocations,\n                hadAutomaticRenameSuggestionsInvocation: inputFieldResult.stats.hadAutomaticRenameSuggestionsInvocation,\n            };\n        this._telemetryService.publicLog2('renameInvokedEvent', value);\n    }\n};\nRenameController.ID = 'editor.contrib.renameController';\nRenameController = RenameController_1 = __decorate([\n    __param(1, IInstantiationService),\n    __param(2, INotificationService),\n    __param(3, IBulkEditService),\n    __param(4, IEditorProgressService),\n    __param(5, ILogService),\n    __param(6, ITextResourceConfigurationService),\n    __param(7, ILanguageFeaturesService),\n    __param(8, ITelemetryService)\n], RenameController);\n// ---- action implementation\nexport class RenameAction extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.rename',\n            label: nls.localize('rename.label', \"Rename Symbol\"),\n            alias: 'Rename Symbol',\n            precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasRenameProvider),\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: 60 /* KeyCode.F2 */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            contextMenuOpts: {\n                group: '1_modification',\n                order: 1.1\n            }\n        });\n    }\n    runCommand(accessor, args) {\n        const editorService = accessor.get(ICodeEditorService);\n        const [uri, pos] = Array.isArray(args) && args || [undefined, undefined];\n        if (URI.isUri(uri) && Position.isIPosition(pos)) {\n            return editorService.openCodeEditor({ resource: uri }, editorService.getActiveCodeEditor()).then(editor => {\n                if (!editor) {\n                    return;\n                }\n                editor.setPosition(pos);\n                editor.invokeWithinContext(accessor => {\n                    this.reportTelemetry(accessor, editor);\n                    return this.run(accessor, editor);\n                });\n            }, onUnexpectedError);\n        }\n        return super.runCommand(accessor, args);\n    }\n    run(accessor, editor) {\n        const logService = accessor.get(ILogService);\n        const controller = RenameController.get(editor);\n        if (controller) {\n            logService.trace('[RenameAction] got controller, running...');\n            return controller.run();\n        }\n        logService.trace('[RenameAction] returning early - controller missing');\n        return Promise.resolve();\n    }\n}\nregisterEditorContribution(RenameController.ID, RenameController, 4 /* EditorContributionInstantiation.Lazy */);\nregisterEditorAction(RenameAction);\nconst RenameCommand = EditorCommand.bindToContribution(RenameController.get);\nregisterEditorCommand(new RenameCommand({\n    id: 'acceptRenameInput',\n    precondition: CONTEXT_RENAME_INPUT_VISIBLE,\n    handler: x => x.acceptRenameInput(false),\n    kbOpts: {\n        weight: 100 /* KeybindingWeight.EditorContrib */ + 99,\n        kbExpr: ContextKeyExpr.and(EditorContextKeys.focus, ContextKeyExpr.not('isComposing')),\n        primary: 3 /* KeyCode.Enter */\n    }\n}));\nregisterEditorCommand(new RenameCommand({\n    id: 'acceptRenameInputWithPreview',\n    precondition: ContextKeyExpr.and(CONTEXT_RENAME_INPUT_VISIBLE, ContextKeyExpr.has('config.editor.rename.enablePreview')),\n    handler: x => x.acceptRenameInput(true),\n    kbOpts: {\n        weight: 100 /* KeybindingWeight.EditorContrib */ + 99,\n        kbExpr: ContextKeyExpr.and(EditorContextKeys.focus, ContextKeyExpr.not('isComposing')),\n        primary: 2048 /* KeyMod.CtrlCmd */ + 3 /* KeyCode.Enter */\n    }\n}));\nregisterEditorCommand(new RenameCommand({\n    id: 'cancelRenameInput',\n    precondition: CONTEXT_RENAME_INPUT_VISIBLE,\n    handler: x => x.cancelRenameInput(),\n    kbOpts: {\n        weight: 100 /* KeybindingWeight.EditorContrib */ + 99,\n        kbExpr: EditorContextKeys.focus,\n        primary: 9 /* KeyCode.Escape */,\n        secondary: [1024 /* KeyMod.Shift */ | 9 /* KeyCode.Escape */]\n    }\n}));\nregisterAction2(class FocusNextRenameSuggestion extends Action2 {\n    constructor() {\n        super({\n            id: 'focusNextRenameSuggestion',\n            title: {\n                ...nls.localize2('focusNextRenameSuggestion', \"Focus Next Rename Suggestion\"),\n            },\n            precondition: CONTEXT_RENAME_INPUT_VISIBLE,\n            keybinding: [\n                {\n                    primary: 18 /* KeyCode.DownArrow */,\n                    weight: 100 /* KeybindingWeight.EditorContrib */ + 99,\n                }\n            ]\n        });\n    }\n    run(accessor) {\n        const currentEditor = accessor.get(ICodeEditorService).getFocusedCodeEditor();\n        if (!currentEditor) {\n            return;\n        }\n        const controller = RenameController.get(currentEditor);\n        if (!controller) {\n            return;\n        }\n        controller.focusNextRenameSuggestion();\n    }\n});\nregisterAction2(class FocusPreviousRenameSuggestion extends Action2 {\n    constructor() {\n        super({\n            id: 'focusPreviousRenameSuggestion',\n            title: {\n                ...nls.localize2('focusPreviousRenameSuggestion', \"Focus Previous Rename Suggestion\"),\n            },\n            precondition: CONTEXT_RENAME_INPUT_VISIBLE,\n            keybinding: [\n                {\n                    primary: 16 /* KeyCode.UpArrow */,\n                    weight: 100 /* KeybindingWeight.EditorContrib */ + 99,\n                }\n            ]\n        });\n    }\n    run(accessor) {\n        const currentEditor = accessor.get(ICodeEditorService).getFocusedCodeEditor();\n        if (!currentEditor) {\n            return;\n        }\n        const controller = RenameController.get(currentEditor);\n        if (!controller) {\n            return;\n        }\n        controller.focusPreviousRenameSuggestion();\n    }\n});\n// ---- api bridge command\nregisterModelAndPositionCommand('_executeDocumentRenameProvider', function (accessor, model, position, ...args) {\n    const [newName] = args;\n    assertType(typeof newName === 'string');\n    const { renameProvider } = accessor.get(ILanguageFeaturesService);\n    return rename(renameProvider, model, position, newName);\n});\nregisterModelAndPositionCommand('_executePrepareRename', async function (accessor, model, position) {\n    const { renameProvider } = accessor.get(ILanguageFeaturesService);\n    const skeleton = new RenameSkeleton(model, position, renameProvider);\n    const loc = await skeleton.resolveRenameLocation(CancellationToken.None);\n    if (loc === null || loc === void 0 ? void 0 : loc.rejectReason) {\n        throw new Error(loc.rejectReason);\n    }\n    return loc;\n});\n//todo@jrieken use editor options world\nRegistry.as(Extensions.Configuration).registerConfiguration({\n    id: 'editor',\n    properties: {\n        'editor.rename.enablePreview': {\n            scope: 5 /* ConfigurationScope.LANGUAGE_OVERRIDABLE */,\n            description: nls.localize('enablePreview', \"Enable/disable the ability to preview changes before renaming\"),\n            default: true,\n            type: 'boolean'\n        }\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/rename/browser/renameWidget.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .rename-box {\n\tz-index: 100;\n\tcolor: inherit;\n\tborder-radius: 4px;\n}\n\n.monaco-editor .rename-box.preview {\n\tpadding: 4px 4px 0 4px;\n}\n\n.monaco-editor .rename-box .rename-input-with-button {\n\tpadding: 3px;\n\tborder-radius: 2px;\n\twidth: calc(100% - 8px); /* 4px padding on each side */\n}\n\n.monaco-editor .rename-box .rename-input {\n\twidth: calc(100% - 8px); /* 4px padding on each side */\n\tpadding: 0;\n}\n\n.monaco-editor .rename-box .rename-input:focus {\n\toutline: none;\n}\n\n.monaco-editor .rename-box .rename-suggestions-button {\n\tdisplay: flex;\n\talign-items: center;\n\tpadding: 3px;\n\tbackground-color: transparent;\n\tborder: none;\n\tborder-radius: 5px;\n\tcursor: pointer;\n}\n\n.monaco-editor .rename-box .rename-suggestions-button:hover {\n\tbackground-color: var(--vscode-toolbar-hoverBackground)\n}\n\n.monaco-editor .rename-box .rename-candidate-list-container .monaco-list-row {\n\tborder-radius: 2px;\n}\n\n.monaco-editor .rename-box .rename-label {\n\tdisplay: none;\n\topacity: .8;\n}\n\n.monaco-editor .rename-box.preview .rename-label {\n\tdisplay: inherit;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/rename/browser/renameWidget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport * as dom from '../../../../base/browser/dom.js';\nimport { StandardKeyboardEvent } from '../../../../base/browser/keyboardEvent.js';\nimport * as aria from '../../../../base/browser/ui/aria/aria.js';\nimport { getBaseLayerHoverDelegate } from '../../../../base/browser/ui/hover/hoverDelegate2.js';\nimport { getDefaultHoverDelegate } from '../../../../base/browser/ui/hover/hoverDelegateFactory.js';\nimport { renderIcon } from '../../../../base/browser/ui/iconLabel/iconLabels.js';\nimport { List } from '../../../../base/browser/ui/list/listWidget.js';\nimport * as arrays from '../../../../base/common/arrays.js';\nimport { DeferredPromise, raceCancellation } from '../../../../base/common/async.js';\nimport { CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { Emitter } from '../../../../base/common/event.js';\nimport { DisposableStore, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { StopWatch } from '../../../../base/common/stopwatch.js';\nimport { assertType, isDefined } from '../../../../base/common/types.js';\nimport './renameWidget.css';\nimport * as domFontInfo from '../../../browser/config/domFontInfo.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { NewSymbolNameTag, NewSymbolNameTriggerKind } from '../../../common/languages.js';\nimport * as nls from '../../../../nls.js';\nimport { localize } from '../../../../nls.js';\nimport { IContextKeyService, RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { ILogService } from '../../../../platform/log/common/log.js';\nimport { getListStyles } from '../../../../platform/theme/browser/defaultStyles.js';\nimport { editorWidgetBackground, inputBackground, inputBorder, inputForeground, quickInputListFocusBackground, quickInputListFocusForeground, widgetBorder, widgetShadow } from '../../../../platform/theme/common/colorRegistry.js';\nimport { IThemeService } from '../../../../platform/theme/common/themeService.js';\n/** for debugging */\nconst _sticky = false;\nexport const CONTEXT_RENAME_INPUT_VISIBLE = new RawContextKey('renameInputVisible', false, localize('renameInputVisible', \"Whether the rename input widget is visible\"));\nexport const CONTEXT_RENAME_INPUT_FOCUSED = new RawContextKey('renameInputFocused', false, localize('renameInputFocused', \"Whether the rename input widget is focused\"));\nlet RenameWidget = class RenameWidget {\n    constructor(_editor, _acceptKeybindings, _themeService, _keybindingService, contextKeyService, _logService) {\n        this._editor = _editor;\n        this._acceptKeybindings = _acceptKeybindings;\n        this._themeService = _themeService;\n        this._keybindingService = _keybindingService;\n        this._logService = _logService;\n        // implement IContentWidget\n        this.allowEditorOverflow = true;\n        this._disposables = new DisposableStore();\n        this._visibleContextKey = CONTEXT_RENAME_INPUT_VISIBLE.bindTo(contextKeyService);\n        this._isEditingRenameCandidate = false;\n        this._nRenameSuggestionsInvocations = 0;\n        this._hadAutomaticRenameSuggestionsInvocation = false;\n        this._candidates = new Set();\n        this._beforeFirstInputFieldEditSW = new StopWatch();\n        this._inputWithButton = new InputWithButton();\n        this._disposables.add(this._inputWithButton);\n        this._editor.addContentWidget(this);\n        this._disposables.add(this._editor.onDidChangeConfiguration(e => {\n            if (e.hasChanged(50 /* EditorOption.fontInfo */)) {\n                this._updateFont();\n            }\n        }));\n        this._disposables.add(_themeService.onDidColorThemeChange(this._updateStyles, this));\n    }\n    dispose() {\n        this._disposables.dispose();\n        this._editor.removeContentWidget(this);\n    }\n    getId() {\n        return '__renameInputWidget';\n    }\n    getDomNode() {\n        if (!this._domNode) {\n            this._domNode = document.createElement('div');\n            this._domNode.className = 'monaco-editor rename-box';\n            this._domNode.appendChild(this._inputWithButton.domNode);\n            this._renameCandidateListView = this._disposables.add(new RenameCandidateListView(this._domNode, {\n                fontInfo: this._editor.getOption(50 /* EditorOption.fontInfo */),\n                onFocusChange: (newSymbolName) => {\n                    this._inputWithButton.input.value = newSymbolName;\n                    this._isEditingRenameCandidate = false; // @ulugbekna: reset\n                },\n                onSelectionChange: () => {\n                    this._isEditingRenameCandidate = false; // @ulugbekna: because user picked a rename suggestion\n                    this.acceptInput(false); // we don't allow preview with mouse click for now\n                }\n            }));\n            this._disposables.add(this._inputWithButton.onDidInputChange(() => {\n                var _a, _b, _c, _d;\n                if (((_a = this._renameCandidateListView) === null || _a === void 0 ? void 0 : _a.focusedCandidate) !== undefined) {\n                    this._isEditingRenameCandidate = true;\n                }\n                (_b = this._timeBeforeFirstInputFieldEdit) !== null && _b !== void 0 ? _b : (this._timeBeforeFirstInputFieldEdit = this._beforeFirstInputFieldEditSW.elapsed());\n                if (((_c = this._renameCandidateProvidersCts) === null || _c === void 0 ? void 0 : _c.token.isCancellationRequested) === false) {\n                    this._renameCandidateProvidersCts.cancel();\n                }\n                (_d = this._renameCandidateListView) === null || _d === void 0 ? void 0 : _d.clearFocus();\n            }));\n            this._label = document.createElement('div');\n            this._label.className = 'rename-label';\n            this._domNode.appendChild(this._label);\n            this._updateFont();\n            this._updateStyles(this._themeService.getColorTheme());\n        }\n        return this._domNode;\n    }\n    _updateStyles(theme) {\n        var _a, _b, _c, _d, _e;\n        if (!this._domNode) {\n            return;\n        }\n        const widgetShadowColor = theme.getColor(widgetShadow);\n        const widgetBorderColor = theme.getColor(widgetBorder);\n        this._domNode.style.backgroundColor = String((_a = theme.getColor(editorWidgetBackground)) !== null && _a !== void 0 ? _a : '');\n        this._domNode.style.boxShadow = widgetShadowColor ? ` 0 0 8px 2px ${widgetShadowColor}` : '';\n        this._domNode.style.border = widgetBorderColor ? `1px solid ${widgetBorderColor}` : '';\n        this._domNode.style.color = String((_b = theme.getColor(inputForeground)) !== null && _b !== void 0 ? _b : '');\n        const border = theme.getColor(inputBorder);\n        this._inputWithButton.domNode.style.backgroundColor = String((_c = theme.getColor(inputBackground)) !== null && _c !== void 0 ? _c : '');\n        this._inputWithButton.input.style.backgroundColor = String((_d = theme.getColor(inputBackground)) !== null && _d !== void 0 ? _d : '');\n        this._inputWithButton.domNode.style.borderWidth = border ? '1px' : '0px';\n        this._inputWithButton.domNode.style.borderStyle = border ? 'solid' : 'none';\n        this._inputWithButton.domNode.style.borderColor = (_e = border === null || border === void 0 ? void 0 : border.toString()) !== null && _e !== void 0 ? _e : 'none';\n    }\n    _updateFont() {\n        if (this._domNode === undefined) {\n            return;\n        }\n        assertType(this._label !== undefined, 'RenameWidget#_updateFont: _label must not be undefined given _domNode is defined');\n        this._editor.applyFontInfo(this._inputWithButton.input);\n        const fontInfo = this._editor.getOption(50 /* EditorOption.fontInfo */);\n        this._label.style.fontSize = `${this._computeLabelFontSize(fontInfo.fontSize)}px`;\n    }\n    _computeLabelFontSize(editorFontSize) {\n        return editorFontSize * 0.8;\n    }\n    getPosition() {\n        if (!this._visible) {\n            return null;\n        }\n        if (!this._editor.hasModel() || // @ulugbekna: shouldn't happen\n            !this._editor.getDomNode() // @ulugbekna: can happen during tests based on suggestWidget's similar predicate check\n        ) {\n            return null;\n        }\n        const bodyBox = dom.getClientArea(this.getDomNode().ownerDocument.body);\n        const editorBox = dom.getDomNodePagePosition(this._editor.getDomNode());\n        const cursorBoxTop = this._getTopForPosition();\n        this._nPxAvailableAbove = cursorBoxTop + editorBox.top;\n        this._nPxAvailableBelow = bodyBox.height - this._nPxAvailableAbove;\n        const lineHeight = this._editor.getOption(67 /* EditorOption.lineHeight */);\n        const { totalHeight: candidateViewHeight } = RenameCandidateView.getLayoutInfo({ lineHeight });\n        const positionPreference = this._nPxAvailableBelow > candidateViewHeight * 6 /* approximate # of candidates to fit in (inclusive of rename input box & rename label) */\n            ? [2 /* ContentWidgetPositionPreference.BELOW */, 1 /* ContentWidgetPositionPreference.ABOVE */]\n            : [1 /* ContentWidgetPositionPreference.ABOVE */, 2 /* ContentWidgetPositionPreference.BELOW */];\n        return {\n            position: this._position,\n            preference: positionPreference,\n        };\n    }\n    beforeRender() {\n        var _a, _b;\n        const [accept, preview] = this._acceptKeybindings;\n        this._label.innerText = localize({ key: 'label', comment: ['placeholders are keybindings, e.g \"F2 to Rename, Shift+F2 to Preview\"'] }, \"{0} to Rename, {1} to Preview\", (_a = this._keybindingService.lookupKeybinding(accept)) === null || _a === void 0 ? void 0 : _a.getLabel(), (_b = this._keybindingService.lookupKeybinding(preview)) === null || _b === void 0 ? void 0 : _b.getLabel());\n        this._domNode.style.minWidth = `200px`; // to prevent from widening when candidates come in\n        return null;\n    }\n    afterRender(position) {\n        this._trace('invoking afterRender, position: ', position ? 'not null' : 'null');\n        if (position === null) {\n            // cancel rename when input widget isn't rendered anymore\n            this.cancelInput(true, 'afterRender (because position is null)');\n            return;\n        }\n        if (!this._editor.hasModel() || // shouldn't happen\n            !this._editor.getDomNode() // can happen during tests based on suggestWidget's similar predicate check\n        ) {\n            return;\n        }\n        assertType(this._renameCandidateListView);\n        assertType(this._nPxAvailableAbove !== undefined);\n        assertType(this._nPxAvailableBelow !== undefined);\n        const inputBoxHeight = dom.getTotalHeight(this._inputWithButton.domNode);\n        const labelHeight = dom.getTotalHeight(this._label);\n        let totalHeightAvailable;\n        if (position === 2 /* ContentWidgetPositionPreference.BELOW */) {\n            totalHeightAvailable = this._nPxAvailableBelow;\n        }\n        else {\n            totalHeightAvailable = this._nPxAvailableAbove;\n        }\n        this._renameCandidateListView.layout({\n            height: totalHeightAvailable - labelHeight - inputBoxHeight,\n            width: dom.getTotalWidth(this._inputWithButton.domNode),\n        });\n    }\n    acceptInput(wantsPreview) {\n        var _a;\n        this._trace(`invoking acceptInput`);\n        (_a = this._currentAcceptInput) === null || _a === void 0 ? void 0 : _a.call(this, wantsPreview);\n    }\n    cancelInput(focusEditor, caller) {\n        var _a;\n        this._trace(`invoking cancelInput, caller: ${caller}, _currentCancelInput: ${this._currentAcceptInput ? 'not undefined' : 'undefined'}`);\n        (_a = this._currentCancelInput) === null || _a === void 0 ? void 0 : _a.call(this, focusEditor);\n    }\n    focusNextRenameSuggestion() {\n        var _a;\n        if (!((_a = this._renameCandidateListView) === null || _a === void 0 ? void 0 : _a.focusNext())) {\n            this._inputWithButton.input.value = this._currentName;\n        }\n    }\n    focusPreviousRenameSuggestion() {\n        var _a;\n        if (!((_a = this._renameCandidateListView) === null || _a === void 0 ? void 0 : _a.focusPrevious())) {\n            this._inputWithButton.input.value = this._currentName;\n        }\n    }\n    /**\n     * @param requestRenameCandidates is `undefined` when there are no rename suggestion providers\n     */\n    getInput(where, currentName, supportPreview, requestRenameCandidates, cts) {\n        const { start: selectionStart, end: selectionEnd } = this._getSelection(where, currentName);\n        this._renameCts = cts;\n        const disposeOnDone = new DisposableStore();\n        this._nRenameSuggestionsInvocations = 0;\n        this._hadAutomaticRenameSuggestionsInvocation = false;\n        if (requestRenameCandidates === undefined) {\n            this._inputWithButton.button.style.display = 'none';\n        }\n        else {\n            this._inputWithButton.button.style.display = 'flex';\n            this._requestRenameCandidatesOnce = requestRenameCandidates;\n            this._requestRenameCandidates(currentName, false);\n            disposeOnDone.add(dom.addDisposableListener(this._inputWithButton.button, 'click', () => this._requestRenameCandidates(currentName, true)));\n            disposeOnDone.add(dom.addDisposableListener(this._inputWithButton.button, dom.EventType.KEY_DOWN, (e) => {\n                const keyEvent = new StandardKeyboardEvent(e);\n                if (keyEvent.equals(3 /* KeyCode.Enter */) || keyEvent.equals(10 /* KeyCode.Space */)) {\n                    keyEvent.stopPropagation();\n                    keyEvent.preventDefault();\n                    this._requestRenameCandidates(currentName, true);\n                }\n            }));\n        }\n        this._isEditingRenameCandidate = false;\n        this._domNode.classList.toggle('preview', supportPreview);\n        this._position = new Position(where.startLineNumber, where.startColumn);\n        this._currentName = currentName;\n        this._inputWithButton.input.value = currentName;\n        this._inputWithButton.input.setAttribute('selectionStart', selectionStart.toString());\n        this._inputWithButton.input.setAttribute('selectionEnd', selectionEnd.toString());\n        this._inputWithButton.input.size = Math.max((where.endColumn - where.startColumn) * 1.1, 20); // determines width\n        this._beforeFirstInputFieldEditSW.reset();\n        disposeOnDone.add(toDisposable(() => {\n            this._renameCts = undefined;\n            cts.dispose(true);\n        })); // @ulugbekna: this may result in `this.cancelInput` being called twice, but it should be safe since we set it to undefined after 1st call\n        disposeOnDone.add(toDisposable(() => {\n            if (this._renameCandidateProvidersCts !== undefined) {\n                this._renameCandidateProvidersCts.dispose(true);\n                this._renameCandidateProvidersCts = undefined;\n            }\n        }));\n        disposeOnDone.add(toDisposable(() => this._candidates.clear()));\n        const inputResult = new DeferredPromise();\n        inputResult.p.finally(() => {\n            disposeOnDone.dispose();\n            this._hide();\n        });\n        this._currentCancelInput = (focusEditor) => {\n            var _a;\n            this._trace('invoking _currentCancelInput');\n            this._currentAcceptInput = undefined;\n            this._currentCancelInput = undefined;\n            // fixme session cleanup\n            (_a = this._renameCandidateListView) === null || _a === void 0 ? void 0 : _a.clearCandidates();\n            inputResult.complete(focusEditor);\n            return true;\n        };\n        this._currentAcceptInput = (wantsPreview) => {\n            this._trace('invoking _currentAcceptInput');\n            assertType(this._renameCandidateListView !== undefined);\n            const nRenameSuggestions = this._renameCandidateListView.nCandidates;\n            let newName;\n            let source;\n            const focusedCandidate = this._renameCandidateListView.focusedCandidate;\n            if (focusedCandidate !== undefined) {\n                this._trace('using new name from renameSuggestion');\n                newName = focusedCandidate;\n                source = { k: 'renameSuggestion' };\n            }\n            else {\n                this._trace('using new name from inputField');\n                newName = this._inputWithButton.input.value;\n                source = this._isEditingRenameCandidate ? { k: 'userEditedRenameSuggestion' } : { k: 'inputField' };\n            }\n            if (newName === currentName || newName.trim().length === 0 /* is just whitespace */) {\n                this.cancelInput(true, '_currentAcceptInput (because newName === value || newName.trim().length === 0)');\n                return;\n            }\n            this._currentAcceptInput = undefined;\n            this._currentCancelInput = undefined;\n            this._renameCandidateListView.clearCandidates();\n            // fixme session cleanup\n            inputResult.complete({\n                newName,\n                wantsPreview: supportPreview && wantsPreview,\n                stats: {\n                    source,\n                    nRenameSuggestions,\n                    timeBeforeFirstInputFieldEdit: this._timeBeforeFirstInputFieldEdit,\n                    nRenameSuggestionsInvocations: this._nRenameSuggestionsInvocations,\n                    hadAutomaticRenameSuggestionsInvocation: this._hadAutomaticRenameSuggestionsInvocation,\n                }\n            });\n        };\n        disposeOnDone.add(cts.token.onCancellationRequested(() => this.cancelInput(true, 'cts.token.onCancellationRequested')));\n        if (!_sticky) {\n            disposeOnDone.add(this._editor.onDidBlurEditorWidget(() => { var _a; return this.cancelInput(!((_a = this._domNode) === null || _a === void 0 ? void 0 : _a.ownerDocument.hasFocus()), 'editor.onDidBlurEditorWidget'); }));\n        }\n        this._show();\n        return inputResult.p;\n    }\n    _requestRenameCandidates(currentName, isManuallyTriggered) {\n        if (this._requestRenameCandidatesOnce === undefined) {\n            return;\n        }\n        if (this._renameCandidateProvidersCts !== undefined) {\n            this._renameCandidateProvidersCts.dispose(true);\n        }\n        assertType(this._renameCts);\n        if (this._inputWithButton.buttonState !== 'stop') {\n            this._renameCandidateProvidersCts = new CancellationTokenSource();\n            const triggerKind = isManuallyTriggered ? NewSymbolNameTriggerKind.Invoke : NewSymbolNameTriggerKind.Automatic;\n            const candidates = this._requestRenameCandidatesOnce(triggerKind, this._renameCandidateProvidersCts.token);\n            if (candidates.length === 0) {\n                this._inputWithButton.setSparkleButton();\n                return;\n            }\n            if (!isManuallyTriggered) {\n                this._hadAutomaticRenameSuggestionsInvocation = true;\n            }\n            this._nRenameSuggestionsInvocations += 1;\n            this._inputWithButton.setStopButton();\n            this._updateRenameCandidates(candidates, currentName, this._renameCts.token);\n        }\n    }\n    /**\n     * This allows selecting only part of the symbol name in the input field based on the selection in the editor\n     */\n    _getSelection(where, currentName) {\n        assertType(this._editor.hasModel());\n        const selection = this._editor.getSelection();\n        let start = 0;\n        let end = currentName.length;\n        if (!Range.isEmpty(selection) && !Range.spansMultipleLines(selection) && Range.containsRange(where, selection)) {\n            start = Math.max(0, selection.startColumn - where.startColumn);\n            end = Math.min(where.endColumn, selection.endColumn) - where.startColumn;\n        }\n        return { start, end };\n    }\n    _show() {\n        this._trace('invoking _show');\n        this._editor.revealLineInCenterIfOutsideViewport(this._position.lineNumber, 0 /* ScrollType.Smooth */);\n        this._visible = true;\n        this._visibleContextKey.set(true);\n        this._editor.layoutContentWidget(this);\n        // TODO@ulugbekna: could this be simply run in `afterRender`?\n        setTimeout(() => {\n            this._inputWithButton.input.focus();\n            this._inputWithButton.input.setSelectionRange(parseInt(this._inputWithButton.input.getAttribute('selectionStart')), parseInt(this._inputWithButton.input.getAttribute('selectionEnd')));\n        }, 100);\n    }\n    async _updateRenameCandidates(candidates, currentName, token) {\n        const trace = (...args) => this._trace('_updateRenameCandidates', ...args);\n        trace('start');\n        const namesListResults = await raceCancellation(Promise.allSettled(candidates), token);\n        this._inputWithButton.setSparkleButton();\n        if (namesListResults === undefined) {\n            trace('returning early - received updateRenameCandidates results - undefined');\n            return;\n        }\n        const newNames = namesListResults.flatMap(namesListResult => namesListResult.status === 'fulfilled' && isDefined(namesListResult.value)\n            ? namesListResult.value\n            : []);\n        trace(`received updateRenameCandidates results - total (unfiltered) ${newNames.length} candidates.`);\n        // deduplicate and filter out the current value\n        const distinctNames = arrays.distinct(newNames, v => v.newSymbolName);\n        trace(`distinct candidates - ${distinctNames.length} candidates.`);\n        const validDistinctNames = distinctNames.filter(({ newSymbolName }) => newSymbolName.trim().length > 0 && newSymbolName !== this._inputWithButton.input.value && newSymbolName !== currentName && !this._candidates.has(newSymbolName));\n        trace(`valid distinct candidates - ${newNames.length} candidates.`);\n        validDistinctNames.forEach(n => this._candidates.add(n.newSymbolName));\n        if (validDistinctNames.length < 1) {\n            trace('returning early - no valid distinct candidates');\n            return;\n        }\n        // show the candidates\n        trace('setting candidates');\n        this._renameCandidateListView.setCandidates(validDistinctNames);\n        // ask editor to re-layout given that the widget is now of a different size after rendering rename candidates\n        trace('asking editor to re-layout');\n        this._editor.layoutContentWidget(this);\n    }\n    _hide() {\n        this._trace('invoked _hide');\n        this._visible = false;\n        this._visibleContextKey.reset();\n        this._editor.layoutContentWidget(this);\n    }\n    _getTopForPosition() {\n        const visibleRanges = this._editor.getVisibleRanges();\n        let firstLineInViewport;\n        if (visibleRanges.length > 0) {\n            firstLineInViewport = visibleRanges[0].startLineNumber;\n        }\n        else {\n            this._logService.warn('RenameWidget#_getTopForPosition: this should not happen - visibleRanges is empty');\n            firstLineInViewport = Math.max(1, this._position.lineNumber - 5); // @ulugbekna: fallback to current line minus 5\n        }\n        return this._editor.getTopForLineNumber(this._position.lineNumber) - this._editor.getTopForLineNumber(firstLineInViewport);\n    }\n    _trace(...args) {\n        this._logService.trace('RenameWidget', ...args);\n    }\n};\nRenameWidget = __decorate([\n    __param(2, IThemeService),\n    __param(3, IKeybindingService),\n    __param(4, IContextKeyService),\n    __param(5, ILogService)\n], RenameWidget);\nexport { RenameWidget };\nclass RenameCandidateListView {\n    // FIXME@ulugbekna: rewrite using event emitters\n    constructor(parent, opts) {\n        this._disposables = new DisposableStore();\n        this._availableHeight = 0;\n        this._minimumWidth = 0;\n        this._lineHeight = opts.fontInfo.lineHeight;\n        this._typicalHalfwidthCharacterWidth = opts.fontInfo.typicalHalfwidthCharacterWidth;\n        this._listContainer = document.createElement('div');\n        this._listContainer.className = 'rename-box rename-candidate-list-container';\n        parent.appendChild(this._listContainer);\n        this._listWidget = RenameCandidateListView._createListWidget(this._listContainer, this._candidateViewHeight, opts.fontInfo);\n        this._listWidget.onDidChangeFocus(e => {\n            if (e.elements.length === 1) {\n                opts.onFocusChange(e.elements[0].newSymbolName);\n            }\n        }, this._disposables);\n        this._listWidget.onDidChangeSelection(e => {\n            if (e.elements.length === 1) {\n                opts.onSelectionChange();\n            }\n        }, this._disposables);\n        this._disposables.add(this._listWidget.onDidBlur(e => {\n            this._listWidget.setFocus([]);\n        }));\n        this._listWidget.style(getListStyles({\n            listInactiveFocusForeground: quickInputListFocusForeground,\n            listInactiveFocusBackground: quickInputListFocusBackground,\n        }));\n    }\n    dispose() {\n        this._listWidget.dispose();\n        this._disposables.dispose();\n    }\n    // height - max height allowed by parent element\n    layout({ height, width }) {\n        this._availableHeight = height;\n        this._minimumWidth = width;\n    }\n    setCandidates(candidates) {\n        // insert candidates into list widget\n        this._listWidget.splice(0, 0, candidates);\n        // adjust list widget layout\n        const height = this._pickListHeight(this._listWidget.length);\n        const width = this._pickListWidth(candidates);\n        this._listWidget.layout(height, width);\n        // adjust list container layout\n        this._listContainer.style.height = `${height}px`;\n        this._listContainer.style.width = `${width}px`;\n        aria.status(localize('renameSuggestionsReceivedAria', \"Received {0} rename suggestions\", candidates.length));\n    }\n    clearCandidates() {\n        this._listContainer.style.height = '0px';\n        this._listContainer.style.width = '0px';\n        this._listWidget.splice(0, this._listWidget.length, []);\n    }\n    get nCandidates() {\n        return this._listWidget.length;\n    }\n    get focusedCandidate() {\n        if (this._listWidget.length === 0) {\n            return;\n        }\n        const selectedElement = this._listWidget.getSelectedElements()[0];\n        if (selectedElement !== undefined) {\n            return selectedElement.newSymbolName;\n        }\n        const focusedElement = this._listWidget.getFocusedElements()[0];\n        if (focusedElement !== undefined) {\n            return focusedElement.newSymbolName;\n        }\n        return;\n    }\n    focusNext() {\n        if (this._listWidget.length === 0) {\n            return false;\n        }\n        const focusedIxs = this._listWidget.getFocus();\n        if (focusedIxs.length === 0) {\n            this._listWidget.focusFirst();\n            this._listWidget.reveal(0);\n            return true;\n        }\n        else {\n            if (focusedIxs[0] === this._listWidget.length - 1) {\n                this._listWidget.setFocus([]);\n                this._listWidget.reveal(0); // @ulugbekna: without this, it seems like focused element is obstructed\n                return false;\n            }\n            else {\n                this._listWidget.focusNext();\n                const focused = this._listWidget.getFocus()[0];\n                this._listWidget.reveal(focused);\n                return true;\n            }\n        }\n    }\n    /**\n     * @returns true if focus is moved to previous element\n     */\n    focusPrevious() {\n        if (this._listWidget.length === 0) {\n            return false;\n        }\n        const focusedIxs = this._listWidget.getFocus();\n        if (focusedIxs.length === 0) {\n            this._listWidget.focusLast();\n            const focused = this._listWidget.getFocus()[0];\n            this._listWidget.reveal(focused);\n            return true;\n        }\n        else {\n            if (focusedIxs[0] === 0) {\n                this._listWidget.setFocus([]);\n                return false;\n            }\n            else {\n                this._listWidget.focusPrevious();\n                const focused = this._listWidget.getFocus()[0];\n                this._listWidget.reveal(focused);\n                return true;\n            }\n        }\n    }\n    clearFocus() {\n        this._listWidget.setFocus([]);\n    }\n    get _candidateViewHeight() {\n        const { totalHeight } = RenameCandidateView.getLayoutInfo({ lineHeight: this._lineHeight });\n        return totalHeight;\n    }\n    _pickListHeight(nCandidates) {\n        const heightToFitAllCandidates = this._candidateViewHeight * nCandidates;\n        const MAX_N_CANDIDATES = 7; // @ulugbekna: max # of candidates we want to show at once\n        const height = Math.min(heightToFitAllCandidates, this._availableHeight, this._candidateViewHeight * MAX_N_CANDIDATES);\n        return height;\n    }\n    _pickListWidth(candidates) {\n        const longestCandidateWidth = Math.ceil(Math.max(...candidates.map(c => c.newSymbolName.length)) * this._typicalHalfwidthCharacterWidth);\n        const width = Math.max(this._minimumWidth, 4 /* padding */ + 16 /* sparkle icon */ + 5 /* margin-left */ + longestCandidateWidth + 10 /* (possibly visible) scrollbar width */ // TODO@ulugbekna: approximate calc - clean this up\n        );\n        return width;\n    }\n    static _createListWidget(container, candidateViewHeight, fontInfo) {\n        const virtualDelegate = new class {\n            getTemplateId(element) {\n                return 'candidate';\n            }\n            getHeight(element) {\n                return candidateViewHeight;\n            }\n        };\n        const renderer = new class {\n            constructor() {\n                this.templateId = 'candidate';\n            }\n            renderTemplate(container) {\n                return new RenameCandidateView(container, fontInfo);\n            }\n            renderElement(candidate, index, templateData) {\n                templateData.populate(candidate);\n            }\n            disposeTemplate(templateData) {\n                templateData.dispose();\n            }\n        };\n        return new List('NewSymbolNameCandidates', container, virtualDelegate, [renderer], {\n            keyboardSupport: false, // @ulugbekna: because we handle keyboard events through proper commands & keybinding service, see `rename.ts`\n            mouseSupport: true,\n            multipleSelectionSupport: false,\n        });\n    }\n}\nclass InputWithButton {\n    constructor() {\n        this._onDidInputChange = new Emitter();\n        this.onDidInputChange = this._onDidInputChange.event;\n        this._disposables = new DisposableStore();\n    }\n    get domNode() {\n        if (!this._domNode) {\n            this._domNode = document.createElement('div');\n            this._domNode.className = 'rename-input-with-button';\n            this._domNode.style.display = 'flex';\n            this._domNode.style.flexDirection = 'row';\n            this._domNode.style.alignItems = 'center';\n            this._inputNode = document.createElement('input');\n            this._inputNode.className = 'rename-input';\n            this._inputNode.type = 'text';\n            this._inputNode.style.border = 'none';\n            this._inputNode.setAttribute('aria-label', localize('renameAriaLabel', \"Rename input. Type new name and press Enter to commit.\"));\n            this._domNode.appendChild(this._inputNode);\n            this._buttonNode = document.createElement('div');\n            this._buttonNode.className = 'rename-suggestions-button';\n            this._buttonNode.setAttribute('tabindex', '0');\n            this._buttonGenHoverText = nls.localize('generateRenameSuggestionsButton', \"Generate new name suggestions\");\n            this._buttonCancelHoverText = nls.localize('cancelRenameSuggestionsButton', \"Cancel\");\n            this._buttonHover = getBaseLayerHoverDelegate().setupUpdatableHover(getDefaultHoverDelegate('element'), this._buttonNode, this._buttonGenHoverText);\n            this._disposables.add(this._buttonHover);\n            this._domNode.appendChild(this._buttonNode);\n            // notify if selection changes to cancel request to rename-suggestion providers\n            this._disposables.add(dom.addDisposableListener(this.input, dom.EventType.INPUT, () => this._onDidInputChange.fire()));\n            this._disposables.add(dom.addDisposableListener(this.input, dom.EventType.KEY_DOWN, (e) => {\n                const keyEvent = new StandardKeyboardEvent(e);\n                if (keyEvent.keyCode === 15 /* KeyCode.LeftArrow */ || keyEvent.keyCode === 17 /* KeyCode.RightArrow */) {\n                    this._onDidInputChange.fire();\n                }\n            }));\n            this._disposables.add(dom.addDisposableListener(this.input, dom.EventType.CLICK, () => this._onDidInputChange.fire()));\n            // focus \"container\" border instead of input box\n            this._disposables.add(dom.addDisposableListener(this.input, dom.EventType.FOCUS, () => {\n                this.domNode.style.outlineWidth = '1px';\n                this.domNode.style.outlineStyle = 'solid';\n                this.domNode.style.outlineOffset = '-1px';\n                this.domNode.style.outlineColor = 'var(--vscode-focusBorder)';\n            }));\n            this._disposables.add(dom.addDisposableListener(this.input, dom.EventType.BLUR, () => {\n                this.domNode.style.outline = 'none';\n            }));\n        }\n        return this._domNode;\n    }\n    get input() {\n        assertType(this._inputNode);\n        return this._inputNode;\n    }\n    get button() {\n        assertType(this._buttonNode);\n        return this._buttonNode;\n    }\n    get buttonState() {\n        return this._buttonState;\n    }\n    setSparkleButton() {\n        var _a, _b;\n        this._buttonState = 'sparkle';\n        (_a = this._sparkleIcon) !== null && _a !== void 0 ? _a : (this._sparkleIcon = renderIcon(Codicon.sparkle));\n        dom.clearNode(this.button);\n        this.button.appendChild(this._sparkleIcon);\n        this.button.setAttribute('aria-label', 'Generating new name suggestions');\n        (_b = this._buttonHover) === null || _b === void 0 ? void 0 : _b.update(this._buttonGenHoverText);\n        this.input.focus();\n    }\n    setStopButton() {\n        var _a, _b;\n        this._buttonState = 'stop';\n        (_a = this._stopIcon) !== null && _a !== void 0 ? _a : (this._stopIcon = renderIcon(Codicon.primitiveSquare));\n        dom.clearNode(this.button);\n        this.button.appendChild(this._stopIcon);\n        this.button.setAttribute('aria-label', 'Cancel generating new name suggestions');\n        (_b = this._buttonHover) === null || _b === void 0 ? void 0 : _b.update(this._buttonCancelHoverText);\n        this.input.focus();\n    }\n    dispose() {\n        this._disposables.dispose();\n    }\n}\nclass RenameCandidateView {\n    constructor(parent, fontInfo) {\n        this._domNode = document.createElement('div');\n        this._domNode.className = 'rename-box rename-candidate';\n        this._domNode.style.display = `flex`;\n        this._domNode.style.columnGap = `5px`;\n        this._domNode.style.alignItems = `center`;\n        this._domNode.style.height = `${fontInfo.lineHeight}px`;\n        this._domNode.style.padding = `${RenameCandidateView._PADDING}px`;\n        // @ulugbekna: needed to keep space when the `icon.style.display` is set to `none`\n        const iconContainer = document.createElement('div');\n        iconContainer.style.display = `flex`;\n        iconContainer.style.alignItems = `center`;\n        iconContainer.style.width = iconContainer.style.height = `${fontInfo.lineHeight * 0.8}px`;\n        this._domNode.appendChild(iconContainer);\n        this._icon = renderIcon(Codicon.sparkle);\n        this._icon.style.display = `none`;\n        iconContainer.appendChild(this._icon);\n        this._label = document.createElement('div');\n        domFontInfo.applyFontInfo(this._label, fontInfo);\n        this._domNode.appendChild(this._label);\n        parent.appendChild(this._domNode);\n    }\n    populate(value) {\n        this._updateIcon(value);\n        this._updateLabel(value);\n    }\n    _updateIcon(value) {\n        var _a;\n        const isAIGenerated = !!((_a = value.tags) === null || _a === void 0 ? void 0 : _a.includes(NewSymbolNameTag.AIGenerated));\n        this._icon.style.display = isAIGenerated ? 'inherit' : 'none';\n    }\n    _updateLabel(value) {\n        this._label.innerText = value.newSymbolName;\n    }\n    static getLayoutInfo({ lineHeight }) {\n        const totalHeight = lineHeight + RenameCandidateView._PADDING * 2 /* top & bottom padding */;\n        return { totalHeight };\n    }\n    dispose() {\n    }\n}\nRenameCandidateView._PADDING = 2;\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/sectionHeaders/browser/sectionHeaders.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/sectionHeaders/browser/sectionHeaders.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { RunOnceScheduler } from '../../../../base/common/async.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { IEditorWorkerService } from '../../../common/services/editorWorker.js';\nlet SectionHeaderDetector = class SectionHeaderDetector extends Disposable {\n    constructor(editor, languageConfigurationService, editorWorkerService) {\n        super();\n        this.editor = editor;\n        this.languageConfigurationService = languageConfigurationService;\n        this.editorWorkerService = editorWorkerService;\n        this.decorations = this.editor.createDecorationsCollection();\n        this.options = this.createOptions(editor.getOption(73 /* EditorOption.minimap */));\n        this.computePromise = null;\n        this.currentOccurrences = {};\n        this._register(editor.onDidChangeModel((e) => {\n            this.currentOccurrences = {};\n            this.options = this.createOptions(editor.getOption(73 /* EditorOption.minimap */));\n            this.stop();\n            this.computeSectionHeaders.schedule(0);\n        }));\n        this._register(editor.onDidChangeModelLanguage((e) => {\n            this.currentOccurrences = {};\n            this.options = this.createOptions(editor.getOption(73 /* EditorOption.minimap */));\n            this.stop();\n            this.computeSectionHeaders.schedule(0);\n        }));\n        this._register(languageConfigurationService.onDidChange((e) => {\n            var _a;\n            const editorLanguageId = (_a = this.editor.getModel()) === null || _a === void 0 ? void 0 : _a.getLanguageId();\n            if (editorLanguageId && e.affects(editorLanguageId)) {\n                this.currentOccurrences = {};\n                this.options = this.createOptions(editor.getOption(73 /* EditorOption.minimap */));\n                this.stop();\n                this.computeSectionHeaders.schedule(0);\n            }\n        }));\n        this._register(editor.onDidChangeConfiguration(e => {\n            if (this.options && !e.hasChanged(73 /* EditorOption.minimap */)) {\n                return;\n            }\n            this.options = this.createOptions(editor.getOption(73 /* EditorOption.minimap */));\n            // Remove any links (for the getting disabled case)\n            this.updateDecorations([]);\n            // Stop any computation (for the getting disabled case)\n            this.stop();\n            // Start computing (for the getting enabled case)\n            this.computeSectionHeaders.schedule(0);\n        }));\n        this._register(this.editor.onDidChangeModelContent(e => {\n            this.computeSectionHeaders.schedule();\n        }));\n        this._register(editor.onDidChangeModelTokens((e) => {\n            if (!this.computeSectionHeaders.isScheduled()) {\n                this.computeSectionHeaders.schedule(1000);\n            }\n        }));\n        this.computeSectionHeaders = this._register(new RunOnceScheduler(() => {\n            this.findSectionHeaders();\n        }, 250));\n        this.computeSectionHeaders.schedule(0);\n    }\n    createOptions(minimap) {\n        if (!minimap || !this.editor.hasModel()) {\n            return undefined;\n        }\n        const languageId = this.editor.getModel().getLanguageId();\n        if (!languageId) {\n            return undefined;\n        }\n        const commentsConfiguration = this.languageConfigurationService.getLanguageConfiguration(languageId).comments;\n        const foldingRules = this.languageConfigurationService.getLanguageConfiguration(languageId).foldingRules;\n        if (!commentsConfiguration && !(foldingRules === null || foldingRules === void 0 ? void 0 : foldingRules.markers)) {\n            return undefined;\n        }\n        return {\n            foldingRules,\n            findMarkSectionHeaders: minimap.showMarkSectionHeaders,\n            findRegionSectionHeaders: minimap.showRegionSectionHeaders,\n        };\n    }\n    findSectionHeaders() {\n        var _a, _b;\n        if (!this.editor.hasModel()\n            || (!((_a = this.options) === null || _a === void 0 ? void 0 : _a.findMarkSectionHeaders) && !((_b = this.options) === null || _b === void 0 ? void 0 : _b.findRegionSectionHeaders))) {\n            return;\n        }\n        const model = this.editor.getModel();\n        if (model.isDisposed() || model.isTooLargeForSyncing()) {\n            return;\n        }\n        const modelVersionId = model.getVersionId();\n        this.editorWorkerService.findSectionHeaders(model.uri, this.options)\n            .then((sectionHeaders) => {\n            if (model.isDisposed() || model.getVersionId() !== modelVersionId) {\n                // model changed in the meantime\n                return;\n            }\n            this.updateDecorations(sectionHeaders);\n        });\n    }\n    updateDecorations(sectionHeaders) {\n        const model = this.editor.getModel();\n        if (model) {\n            // Remove all section headers that should be in comments and are not in comments\n            sectionHeaders = sectionHeaders.filter((sectionHeader) => {\n                if (!sectionHeader.shouldBeInComments) {\n                    return true;\n                }\n                const validRange = model.validateRange(sectionHeader.range);\n                const tokens = model.tokenization.getLineTokens(validRange.startLineNumber);\n                const idx = tokens.findTokenIndexAtOffset(validRange.startColumn - 1);\n                const tokenType = tokens.getStandardTokenType(idx);\n                const languageId = tokens.getLanguageId(idx);\n                return (languageId === model.getLanguageId() && tokenType === 1 /* StandardTokenType.Comment */);\n            });\n        }\n        const oldDecorations = Object.values(this.currentOccurrences).map(occurrence => occurrence.decorationId);\n        const newDecorations = sectionHeaders.map(sectionHeader => decoration(sectionHeader));\n        this.editor.changeDecorations((changeAccessor) => {\n            const decorations = changeAccessor.deltaDecorations(oldDecorations, newDecorations);\n            this.currentOccurrences = {};\n            for (let i = 0, len = decorations.length; i < len; i++) {\n                const occurrence = { sectionHeader: sectionHeaders[i], decorationId: decorations[i] };\n                this.currentOccurrences[occurrence.decorationId] = occurrence;\n            }\n        });\n    }\n    stop() {\n        this.computeSectionHeaders.cancel();\n        if (this.computePromise) {\n            this.computePromise.cancel();\n            this.computePromise = null;\n        }\n    }\n    dispose() {\n        super.dispose();\n        this.stop();\n        this.decorations.clear();\n    }\n};\nSectionHeaderDetector.ID = 'editor.sectionHeaderDetector';\nSectionHeaderDetector = __decorate([\n    __param(1, ILanguageConfigurationService),\n    __param(2, IEditorWorkerService)\n], SectionHeaderDetector);\nexport { SectionHeaderDetector };\nfunction decoration(sectionHeader) {\n    return {\n        range: sectionHeader.range,\n        options: ModelDecorationOptions.createDynamic({\n            description: 'section-header',\n            stickiness: 3 /* TrackedRangeStickiness.GrowsOnlyWhenTypingAfter */,\n            collapseOnReplaceEdit: true,\n            minimap: {\n                color: undefined,\n                position: 1 /* MinimapPosition.Inline */,\n                sectionHeaderStyle: sectionHeader.hasSeparatorLine ? 2 /* MinimapSectionHeaderStyle.Underlined */ : 1 /* MinimapSectionHeaderStyle.Normal */,\n                sectionHeaderText: sectionHeader.text,\n            },\n        })\n    };\n}\nregisterEditorContribution(SectionHeaderDetector.ID, SectionHeaderDetector, 1 /* EditorContributionInstantiation.AfterFirstRender */);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/semanticTokens/browser/documentSemanticTokens.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/semanticTokens/browser/documentSemanticTokens.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar ModelSemanticColoring_1;\nimport { Disposable, dispose } from '../../../../base/common/lifecycle.js';\nimport * as errors from '../../../../base/common/errors.js';\nimport { IModelService } from '../../../common/services/model.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { RunOnceScheduler } from '../../../../base/common/async.js';\nimport { CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { IThemeService } from '../../../../platform/theme/common/themeService.js';\nimport { toMultilineTokens2 } from '../../../common/services/semanticTokensProviderStyling.js';\nimport { getDocumentSemanticTokens, hasDocumentSemanticTokensProvider, isSemanticTokens, isSemanticTokensEdits } from '../common/getSemanticTokens.js';\nimport { ILanguageFeatureDebounceService } from '../../../common/services/languageFeatureDebounce.js';\nimport { StopWatch } from '../../../../base/common/stopwatch.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { ISemanticTokensStylingService } from '../../../common/services/semanticTokensStyling.js';\nimport { registerEditorFeature } from '../../../common/editorFeatures.js';\nimport { SEMANTIC_HIGHLIGHTING_SETTING_ID, isSemanticColoringEnabled } from '../common/semanticTokensConfig.js';\nlet DocumentSemanticTokensFeature = class DocumentSemanticTokensFeature extends Disposable {\n    constructor(semanticTokensStylingService, modelService, themeService, configurationService, languageFeatureDebounceService, languageFeaturesService) {\n        super();\n        this._watchers = Object.create(null);\n        const register = (model) => {\n            this._watchers[model.uri.toString()] = new ModelSemanticColoring(model, semanticTokensStylingService, themeService, languageFeatureDebounceService, languageFeaturesService);\n        };\n        const deregister = (model, modelSemanticColoring) => {\n            modelSemanticColoring.dispose();\n            delete this._watchers[model.uri.toString()];\n        };\n        const handleSettingOrThemeChange = () => {\n            for (const model of modelService.getModels()) {\n                const curr = this._watchers[model.uri.toString()];\n                if (isSemanticColoringEnabled(model, themeService, configurationService)) {\n                    if (!curr) {\n                        register(model);\n                    }\n                }\n                else {\n                    if (curr) {\n                        deregister(model, curr);\n                    }\n                }\n            }\n        };\n        modelService.getModels().forEach(model => {\n            if (isSemanticColoringEnabled(model, themeService, configurationService)) {\n                register(model);\n            }\n        });\n        this._register(modelService.onModelAdded((model) => {\n            if (isSemanticColoringEnabled(model, themeService, configurationService)) {\n                register(model);\n            }\n        }));\n        this._register(modelService.onModelRemoved((model) => {\n            const curr = this._watchers[model.uri.toString()];\n            if (curr) {\n                deregister(model, curr);\n            }\n        }));\n        this._register(configurationService.onDidChangeConfiguration(e => {\n            if (e.affectsConfiguration(SEMANTIC_HIGHLIGHTING_SETTING_ID)) {\n                handleSettingOrThemeChange();\n            }\n        }));\n        this._register(themeService.onDidColorThemeChange(handleSettingOrThemeChange));\n    }\n    dispose() {\n        // Dispose all watchers\n        for (const watcher of Object.values(this._watchers)) {\n            watcher.dispose();\n        }\n        super.dispose();\n    }\n};\nDocumentSemanticTokensFeature = __decorate([\n    __param(0, ISemanticTokensStylingService),\n    __param(1, IModelService),\n    __param(2, IThemeService),\n    __param(3, IConfigurationService),\n    __param(4, ILanguageFeatureDebounceService),\n    __param(5, ILanguageFeaturesService)\n], DocumentSemanticTokensFeature);\nexport { DocumentSemanticTokensFeature };\nlet ModelSemanticColoring = ModelSemanticColoring_1 = class ModelSemanticColoring extends Disposable {\n    constructor(model, _semanticTokensStylingService, themeService, languageFeatureDebounceService, languageFeaturesService) {\n        super();\n        this._semanticTokensStylingService = _semanticTokensStylingService;\n        this._isDisposed = false;\n        this._model = model;\n        this._provider = languageFeaturesService.documentSemanticTokensProvider;\n        this._debounceInformation = languageFeatureDebounceService.for(this._provider, 'DocumentSemanticTokens', { min: ModelSemanticColoring_1.REQUEST_MIN_DELAY, max: ModelSemanticColoring_1.REQUEST_MAX_DELAY });\n        this._fetchDocumentSemanticTokens = this._register(new RunOnceScheduler(() => this._fetchDocumentSemanticTokensNow(), ModelSemanticColoring_1.REQUEST_MIN_DELAY));\n        this._currentDocumentResponse = null;\n        this._currentDocumentRequestCancellationTokenSource = null;\n        this._documentProvidersChangeListeners = [];\n        this._providersChangedDuringRequest = false;\n        this._register(this._model.onDidChangeContent(() => {\n            if (!this._fetchDocumentSemanticTokens.isScheduled()) {\n                this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));\n            }\n        }));\n        this._register(this._model.onDidChangeAttached(() => {\n            if (!this._fetchDocumentSemanticTokens.isScheduled()) {\n                this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));\n            }\n        }));\n        this._register(this._model.onDidChangeLanguage(() => {\n            // clear any outstanding state\n            if (this._currentDocumentResponse) {\n                this._currentDocumentResponse.dispose();\n                this._currentDocumentResponse = null;\n            }\n            if (this._currentDocumentRequestCancellationTokenSource) {\n                this._currentDocumentRequestCancellationTokenSource.cancel();\n                this._currentDocumentRequestCancellationTokenSource = null;\n            }\n            this._setDocumentSemanticTokens(null, null, null, []);\n            this._fetchDocumentSemanticTokens.schedule(0);\n        }));\n        const bindDocumentChangeListeners = () => {\n            dispose(this._documentProvidersChangeListeners);\n            this._documentProvidersChangeListeners = [];\n            for (const provider of this._provider.all(model)) {\n                if (typeof provider.onDidChange === 'function') {\n                    this._documentProvidersChangeListeners.push(provider.onDidChange(() => {\n                        if (this._currentDocumentRequestCancellationTokenSource) {\n                            // there is already a request running,\n                            this._providersChangedDuringRequest = true;\n                            return;\n                        }\n                        this._fetchDocumentSemanticTokens.schedule(0);\n                    }));\n                }\n            }\n        };\n        bindDocumentChangeListeners();\n        this._register(this._provider.onDidChange(() => {\n            bindDocumentChangeListeners();\n            this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));\n        }));\n        this._register(themeService.onDidColorThemeChange(_ => {\n            // clear out existing tokens\n            this._setDocumentSemanticTokens(null, null, null, []);\n            this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));\n        }));\n        this._fetchDocumentSemanticTokens.schedule(0);\n    }\n    dispose() {\n        if (this._currentDocumentResponse) {\n            this._currentDocumentResponse.dispose();\n            this._currentDocumentResponse = null;\n        }\n        if (this._currentDocumentRequestCancellationTokenSource) {\n            this._currentDocumentRequestCancellationTokenSource.cancel();\n            this._currentDocumentRequestCancellationTokenSource = null;\n        }\n        dispose(this._documentProvidersChangeListeners);\n        this._documentProvidersChangeListeners = [];\n        this._setDocumentSemanticTokens(null, null, null, []);\n        this._isDisposed = true;\n        super.dispose();\n    }\n    _fetchDocumentSemanticTokensNow() {\n        if (this._currentDocumentRequestCancellationTokenSource) {\n            // there is already a request running, let it finish...\n            return;\n        }\n        if (!hasDocumentSemanticTokensProvider(this._provider, this._model)) {\n            // there is no provider\n            if (this._currentDocumentResponse) {\n                // there are semantic tokens set\n                this._model.tokenization.setSemanticTokens(null, false);\n            }\n            return;\n        }\n        if (!this._model.isAttachedToEditor()) {\n            // this document is not visible, there is no need to fetch semantic tokens for it\n            return;\n        }\n        const cancellationTokenSource = new CancellationTokenSource();\n        const lastProvider = this._currentDocumentResponse ? this._currentDocumentResponse.provider : null;\n        const lastResultId = this._currentDocumentResponse ? this._currentDocumentResponse.resultId || null : null;\n        const request = getDocumentSemanticTokens(this._provider, this._model, lastProvider, lastResultId, cancellationTokenSource.token);\n        this._currentDocumentRequestCancellationTokenSource = cancellationTokenSource;\n        this._providersChangedDuringRequest = false;\n        const pendingChanges = [];\n        const contentChangeListener = this._model.onDidChangeContent((e) => {\n            pendingChanges.push(e);\n        });\n        const sw = new StopWatch(false);\n        request.then((res) => {\n            this._debounceInformation.update(this._model, sw.elapsed());\n            this._currentDocumentRequestCancellationTokenSource = null;\n            contentChangeListener.dispose();\n            if (!res) {\n                this._setDocumentSemanticTokens(null, null, null, pendingChanges);\n            }\n            else {\n                const { provider, tokens } = res;\n                const styling = this._semanticTokensStylingService.getStyling(provider);\n                this._setDocumentSemanticTokens(provider, tokens || null, styling, pendingChanges);\n            }\n        }, (err) => {\n            const isExpectedError = err && (errors.isCancellationError(err) || (typeof err.message === 'string' && err.message.indexOf('busy') !== -1));\n            if (!isExpectedError) {\n                errors.onUnexpectedError(err);\n            }\n            // Semantic tokens eats up all errors and considers errors to mean that the result is temporarily not available\n            // The API does not have a special error kind to express this...\n            this._currentDocumentRequestCancellationTokenSource = null;\n            contentChangeListener.dispose();\n            if (pendingChanges.length > 0 || this._providersChangedDuringRequest) {\n                // More changes occurred while the request was running\n                if (!this._fetchDocumentSemanticTokens.isScheduled()) {\n                    this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));\n                }\n            }\n        });\n    }\n    static _copy(src, srcOffset, dest, destOffset, length) {\n        // protect against overflows\n        length = Math.min(length, dest.length - destOffset, src.length - srcOffset);\n        for (let i = 0; i < length; i++) {\n            dest[destOffset + i] = src[srcOffset + i];\n        }\n    }\n    _setDocumentSemanticTokens(provider, tokens, styling, pendingChanges) {\n        const currentResponse = this._currentDocumentResponse;\n        const rescheduleIfNeeded = () => {\n            if ((pendingChanges.length > 0 || this._providersChangedDuringRequest) && !this._fetchDocumentSemanticTokens.isScheduled()) {\n                this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));\n            }\n        };\n        if (this._currentDocumentResponse) {\n            this._currentDocumentResponse.dispose();\n            this._currentDocumentResponse = null;\n        }\n        if (this._isDisposed) {\n            // disposed!\n            if (provider && tokens) {\n                provider.releaseDocumentSemanticTokens(tokens.resultId);\n            }\n            return;\n        }\n        if (!provider || !styling) {\n            this._model.tokenization.setSemanticTokens(null, false);\n            return;\n        }\n        if (!tokens) {\n            this._model.tokenization.setSemanticTokens(null, true);\n            rescheduleIfNeeded();\n            return;\n        }\n        if (isSemanticTokensEdits(tokens)) {\n            if (!currentResponse) {\n                // not possible!\n                this._model.tokenization.setSemanticTokens(null, true);\n                return;\n            }\n            if (tokens.edits.length === 0) {\n                // nothing to do!\n                tokens = {\n                    resultId: tokens.resultId,\n                    data: currentResponse.data\n                };\n            }\n            else {\n                let deltaLength = 0;\n                for (const edit of tokens.edits) {\n                    deltaLength += (edit.data ? edit.data.length : 0) - edit.deleteCount;\n                }\n                const srcData = currentResponse.data;\n                const destData = new Uint32Array(srcData.length + deltaLength);\n                let srcLastStart = srcData.length;\n                let destLastStart = destData.length;\n                for (let i = tokens.edits.length - 1; i >= 0; i--) {\n                    const edit = tokens.edits[i];\n                    if (edit.start > srcData.length) {\n                        styling.warnInvalidEditStart(currentResponse.resultId, tokens.resultId, i, edit.start, srcData.length);\n                        // The edits are invalid and there's no way to recover\n                        this._model.tokenization.setSemanticTokens(null, true);\n                        return;\n                    }\n                    const copyCount = srcLastStart - (edit.start + edit.deleteCount);\n                    if (copyCount > 0) {\n                        ModelSemanticColoring_1._copy(srcData, srcLastStart - copyCount, destData, destLastStart - copyCount, copyCount);\n                        destLastStart -= copyCount;\n                    }\n                    if (edit.data) {\n                        ModelSemanticColoring_1._copy(edit.data, 0, destData, destLastStart - edit.data.length, edit.data.length);\n                        destLastStart -= edit.data.length;\n                    }\n                    srcLastStart = edit.start;\n                }\n                if (srcLastStart > 0) {\n                    ModelSemanticColoring_1._copy(srcData, 0, destData, 0, srcLastStart);\n                }\n                tokens = {\n                    resultId: tokens.resultId,\n                    data: destData\n                };\n            }\n        }\n        if (isSemanticTokens(tokens)) {\n            this._currentDocumentResponse = new SemanticTokensResponse(provider, tokens.resultId, tokens.data);\n            const result = toMultilineTokens2(tokens, styling, this._model.getLanguageId());\n            // Adjust incoming semantic tokens\n            if (pendingChanges.length > 0) {\n                // More changes occurred while the request was running\n                // We need to:\n                // 1. Adjust incoming semantic tokens\n                // 2. Request them again\n                for (const change of pendingChanges) {\n                    for (const area of result) {\n                        for (const singleChange of change.changes) {\n                            area.applyEdit(singleChange.range, singleChange.text);\n                        }\n                    }\n                }\n            }\n            this._model.tokenization.setSemanticTokens(result, true);\n        }\n        else {\n            this._model.tokenization.setSemanticTokens(null, true);\n        }\n        rescheduleIfNeeded();\n    }\n};\nModelSemanticColoring.REQUEST_MIN_DELAY = 300;\nModelSemanticColoring.REQUEST_MAX_DELAY = 2000;\nModelSemanticColoring = ModelSemanticColoring_1 = __decorate([\n    __param(1, ISemanticTokensStylingService),\n    __param(2, IThemeService),\n    __param(3, ILanguageFeatureDebounceService),\n    __param(4, ILanguageFeaturesService)\n], ModelSemanticColoring);\nclass SemanticTokensResponse {\n    constructor(provider, resultId, data) {\n        this.provider = provider;\n        this.resultId = resultId;\n        this.data = data;\n    }\n    dispose() {\n        this.provider.releaseDocumentSemanticTokens(this.resultId);\n    }\n}\nregisterEditorFeature(DocumentSemanticTokensFeature);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/semanticTokens/browser/viewportSemanticTokens.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/semanticTokens/browser/viewportSemanticTokens.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { createCancelablePromise, RunOnceScheduler } from '../../../../base/common/async.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { getDocumentRangeSemanticTokens, hasDocumentRangeSemanticTokensProvider } from '../common/getSemanticTokens.js';\nimport { isSemanticColoringEnabled, SEMANTIC_HIGHLIGHTING_SETTING_ID } from '../common/semanticTokensConfig.js';\nimport { toMultilineTokens2 } from '../../../common/services/semanticTokensProviderStyling.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { IThemeService } from '../../../../platform/theme/common/themeService.js';\nimport { ILanguageFeatureDebounceService } from '../../../common/services/languageFeatureDebounce.js';\nimport { StopWatch } from '../../../../base/common/stopwatch.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { ISemanticTokensStylingService } from '../../../common/services/semanticTokensStyling.js';\nlet ViewportSemanticTokensContribution = class ViewportSemanticTokensContribution extends Disposable {\n    constructor(editor, _semanticTokensStylingService, _themeService, _configurationService, languageFeatureDebounceService, languageFeaturesService) {\n        super();\n        this._semanticTokensStylingService = _semanticTokensStylingService;\n        this._themeService = _themeService;\n        this._configurationService = _configurationService;\n        this._editor = editor;\n        this._provider = languageFeaturesService.documentRangeSemanticTokensProvider;\n        this._debounceInformation = languageFeatureDebounceService.for(this._provider, 'DocumentRangeSemanticTokens', { min: 100, max: 500 });\n        this._tokenizeViewport = this._register(new RunOnceScheduler(() => this._tokenizeViewportNow(), 100));\n        this._outstandingRequests = [];\n        const scheduleTokenizeViewport = () => {\n            if (this._editor.hasModel()) {\n                this._tokenizeViewport.schedule(this._debounceInformation.get(this._editor.getModel()));\n            }\n        };\n        this._register(this._editor.onDidScrollChange(() => {\n            scheduleTokenizeViewport();\n        }));\n        this._register(this._editor.onDidChangeModel(() => {\n            this._cancelAll();\n            scheduleTokenizeViewport();\n        }));\n        this._register(this._editor.onDidChangeModelContent((e) => {\n            this._cancelAll();\n            scheduleTokenizeViewport();\n        }));\n        this._register(this._provider.onDidChange(() => {\n            this._cancelAll();\n            scheduleTokenizeViewport();\n        }));\n        this._register(this._configurationService.onDidChangeConfiguration(e => {\n            if (e.affectsConfiguration(SEMANTIC_HIGHLIGHTING_SETTING_ID)) {\n                this._cancelAll();\n                scheduleTokenizeViewport();\n            }\n        }));\n        this._register(this._themeService.onDidColorThemeChange(() => {\n            this._cancelAll();\n            scheduleTokenizeViewport();\n        }));\n        scheduleTokenizeViewport();\n    }\n    _cancelAll() {\n        for (const request of this._outstandingRequests) {\n            request.cancel();\n        }\n        this._outstandingRequests = [];\n    }\n    _removeOutstandingRequest(req) {\n        for (let i = 0, len = this._outstandingRequests.length; i < len; i++) {\n            if (this._outstandingRequests[i] === req) {\n                this._outstandingRequests.splice(i, 1);\n                return;\n            }\n        }\n    }\n    _tokenizeViewportNow() {\n        if (!this._editor.hasModel()) {\n            return;\n        }\n        const model = this._editor.getModel();\n        if (model.tokenization.hasCompleteSemanticTokens()) {\n            return;\n        }\n        if (!isSemanticColoringEnabled(model, this._themeService, this._configurationService)) {\n            if (model.tokenization.hasSomeSemanticTokens()) {\n                model.tokenization.setSemanticTokens(null, false);\n            }\n            return;\n        }\n        if (!hasDocumentRangeSemanticTokensProvider(this._provider, model)) {\n            if (model.tokenization.hasSomeSemanticTokens()) {\n                model.tokenization.setSemanticTokens(null, false);\n            }\n            return;\n        }\n        const visibleRanges = this._editor.getVisibleRangesPlusViewportAboveBelow();\n        this._outstandingRequests = this._outstandingRequests.concat(visibleRanges.map(range => this._requestRange(model, range)));\n    }\n    _requestRange(model, range) {\n        const requestVersionId = model.getVersionId();\n        const request = createCancelablePromise(token => Promise.resolve(getDocumentRangeSemanticTokens(this._provider, model, range, token)));\n        const sw = new StopWatch(false);\n        request.then((r) => {\n            this._debounceInformation.update(model, sw.elapsed());\n            if (!r || !r.tokens || model.isDisposed() || model.getVersionId() !== requestVersionId) {\n                return;\n            }\n            const { provider, tokens: result } = r;\n            const styling = this._semanticTokensStylingService.getStyling(provider);\n            model.tokenization.setPartialSemanticTokens(range, toMultilineTokens2(result, styling, model.getLanguageId()));\n        }).then(() => this._removeOutstandingRequest(request), () => this._removeOutstandingRequest(request));\n        return request;\n    }\n};\nViewportSemanticTokensContribution.ID = 'editor.contrib.viewportSemanticTokens';\nViewportSemanticTokensContribution = __decorate([\n    __param(1, ISemanticTokensStylingService),\n    __param(2, IThemeService),\n    __param(3, IConfigurationService),\n    __param(4, ILanguageFeatureDebounceService),\n    __param(5, ILanguageFeaturesService)\n], ViewportSemanticTokensContribution);\nexport { ViewportSemanticTokensContribution };\nregisterEditorContribution(ViewportSemanticTokensContribution.ID, ViewportSemanticTokensContribution, 1 /* EditorContributionInstantiation.AfterFirstRender */);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/semanticTokens/common/getSemanticTokens.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport { IModelService } from '../../../common/services/model.js';\nimport { CommandsRegistry, ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { assertType } from '../../../../base/common/types.js';\nimport { encodeSemanticTokensDto } from '../../../common/services/semanticTokensDto.js';\nimport { Range } from '../../../common/core/range.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nexport function isSemanticTokens(v) {\n    return v && !!(v.data);\n}\nexport function isSemanticTokensEdits(v) {\n    return v && Array.isArray(v.edits);\n}\nexport class DocumentSemanticTokensResult {\n    constructor(provider, tokens, error) {\n        this.provider = provider;\n        this.tokens = tokens;\n        this.error = error;\n    }\n}\nexport function hasDocumentSemanticTokensProvider(registry, model) {\n    return registry.has(model);\n}\nfunction getDocumentSemanticTokensProviders(registry, model) {\n    const groups = registry.orderedGroups(model);\n    return (groups.length > 0 ? groups[0] : []);\n}\nexport async function getDocumentSemanticTokens(registry, model, lastProvider, lastResultId, token) {\n    const providers = getDocumentSemanticTokensProviders(registry, model);\n    // Get tokens from all providers at the same time.\n    const results = await Promise.all(providers.map(async (provider) => {\n        let result;\n        let error = null;\n        try {\n            result = await provider.provideDocumentSemanticTokens(model, (provider === lastProvider ? lastResultId : null), token);\n        }\n        catch (err) {\n            error = err;\n            result = null;\n        }\n        if (!result || (!isSemanticTokens(result) && !isSemanticTokensEdits(result))) {\n            result = null;\n        }\n        return new DocumentSemanticTokensResult(provider, result, error);\n    }));\n    // Try to return the first result with actual tokens or\n    // the first result which threw an error (!!)\n    for (const result of results) {\n        if (result.error) {\n            throw result.error;\n        }\n        if (result.tokens) {\n            return result;\n        }\n    }\n    // Return the first result, even if it doesn't have tokens\n    if (results.length > 0) {\n        return results[0];\n    }\n    return null;\n}\nfunction _getDocumentSemanticTokensProviderHighestGroup(registry, model) {\n    const result = registry.orderedGroups(model);\n    return (result.length > 0 ? result[0] : null);\n}\nclass DocumentRangeSemanticTokensResult {\n    constructor(provider, tokens) {\n        this.provider = provider;\n        this.tokens = tokens;\n    }\n}\nexport function hasDocumentRangeSemanticTokensProvider(providers, model) {\n    return providers.has(model);\n}\nfunction getDocumentRangeSemanticTokensProviders(providers, model) {\n    const groups = providers.orderedGroups(model);\n    return (groups.length > 0 ? groups[0] : []);\n}\nexport async function getDocumentRangeSemanticTokens(registry, model, range, token) {\n    const providers = getDocumentRangeSemanticTokensProviders(registry, model);\n    // Get tokens from all providers at the same time.\n    const results = await Promise.all(providers.map(async (provider) => {\n        let result;\n        try {\n            result = await provider.provideDocumentRangeSemanticTokens(model, range, token);\n        }\n        catch (err) {\n            onUnexpectedExternalError(err);\n            result = null;\n        }\n        if (!result || !isSemanticTokens(result)) {\n            result = null;\n        }\n        return new DocumentRangeSemanticTokensResult(provider, result);\n    }));\n    // Try to return the first result with actual tokens\n    for (const result of results) {\n        if (result.tokens) {\n            return result;\n        }\n    }\n    // Return the first result, even if it doesn't have tokens\n    if (results.length > 0) {\n        return results[0];\n    }\n    return null;\n}\nCommandsRegistry.registerCommand('_provideDocumentSemanticTokensLegend', async (accessor, ...args) => {\n    const [uri] = args;\n    assertType(uri instanceof URI);\n    const model = accessor.get(IModelService).getModel(uri);\n    if (!model) {\n        return undefined;\n    }\n    const { documentSemanticTokensProvider } = accessor.get(ILanguageFeaturesService);\n    const providers = _getDocumentSemanticTokensProviderHighestGroup(documentSemanticTokensProvider, model);\n    if (!providers) {\n        // there is no provider => fall back to a document range semantic tokens provider\n        return accessor.get(ICommandService).executeCommand('_provideDocumentRangeSemanticTokensLegend', uri);\n    }\n    return providers[0].getLegend();\n});\nCommandsRegistry.registerCommand('_provideDocumentSemanticTokens', async (accessor, ...args) => {\n    const [uri] = args;\n    assertType(uri instanceof URI);\n    const model = accessor.get(IModelService).getModel(uri);\n    if (!model) {\n        return undefined;\n    }\n    const { documentSemanticTokensProvider } = accessor.get(ILanguageFeaturesService);\n    if (!hasDocumentSemanticTokensProvider(documentSemanticTokensProvider, model)) {\n        // there is no provider => fall back to a document range semantic tokens provider\n        return accessor.get(ICommandService).executeCommand('_provideDocumentRangeSemanticTokens', uri, model.getFullModelRange());\n    }\n    const r = await getDocumentSemanticTokens(documentSemanticTokensProvider, model, null, null, CancellationToken.None);\n    if (!r) {\n        return undefined;\n    }\n    const { provider, tokens } = r;\n    if (!tokens || !isSemanticTokens(tokens)) {\n        return undefined;\n    }\n    const buff = encodeSemanticTokensDto({\n        id: 0,\n        type: 'full',\n        data: tokens.data\n    });\n    if (tokens.resultId) {\n        provider.releaseDocumentSemanticTokens(tokens.resultId);\n    }\n    return buff;\n});\nCommandsRegistry.registerCommand('_provideDocumentRangeSemanticTokensLegend', async (accessor, ...args) => {\n    const [uri, range] = args;\n    assertType(uri instanceof URI);\n    const model = accessor.get(IModelService).getModel(uri);\n    if (!model) {\n        return undefined;\n    }\n    const { documentRangeSemanticTokensProvider } = accessor.get(ILanguageFeaturesService);\n    const providers = getDocumentRangeSemanticTokensProviders(documentRangeSemanticTokensProvider, model);\n    if (providers.length === 0) {\n        // no providers\n        return undefined;\n    }\n    if (providers.length === 1) {\n        // straight forward case, just a single provider\n        return providers[0].getLegend();\n    }\n    if (!range || !Range.isIRange(range)) {\n        // if no range is provided, we cannot support multiple providers\n        // as we cannot fall back to the one which would give results\n        // => return the first legend for backwards compatibility and print a warning\n        console.warn(`provideDocumentRangeSemanticTokensLegend might be out-of-sync with provideDocumentRangeSemanticTokens unless a range argument is passed in`);\n        return providers[0].getLegend();\n    }\n    const result = await getDocumentRangeSemanticTokens(documentRangeSemanticTokensProvider, model, Range.lift(range), CancellationToken.None);\n    if (!result) {\n        return undefined;\n    }\n    return result.provider.getLegend();\n});\nCommandsRegistry.registerCommand('_provideDocumentRangeSemanticTokens', async (accessor, ...args) => {\n    const [uri, range] = args;\n    assertType(uri instanceof URI);\n    assertType(Range.isIRange(range));\n    const model = accessor.get(IModelService).getModel(uri);\n    if (!model) {\n        return undefined;\n    }\n    const { documentRangeSemanticTokensProvider } = accessor.get(ILanguageFeaturesService);\n    const result = await getDocumentRangeSemanticTokens(documentRangeSemanticTokensProvider, model, Range.lift(range), CancellationToken.None);\n    if (!result || !result.tokens) {\n        // there is no provider or it didn't return tokens\n        return undefined;\n    }\n    return encodeSemanticTokensDto({\n        id: 0,\n        type: 'full',\n        data: result.tokens.data\n    });\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/semanticTokens/common/semanticTokensConfig.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport const SEMANTIC_HIGHLIGHTING_SETTING_ID = 'editor.semanticHighlighting';\nexport function isSemanticColoringEnabled(model, themeService, configurationService) {\n    var _a;\n    const setting = (_a = configurationService.getValue(SEMANTIC_HIGHLIGHTING_SETTING_ID, { overrideIdentifier: model.getLanguageId(), resource: model.uri })) === null || _a === void 0 ? void 0 : _a.enabled;\n    if (typeof setting === 'boolean') {\n        return setting;\n    }\n    return themeService.getColorTheme().semanticHighlighting;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/smartSelect/browser/bracketSelections.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { LinkedList } from '../../../../base/common/linkedList.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nexport class BracketSelectionRangeProvider {\n    async provideSelectionRanges(model, positions) {\n        const result = [];\n        for (const position of positions) {\n            const bucket = [];\n            result.push(bucket);\n            const ranges = new Map();\n            await new Promise(resolve => BracketSelectionRangeProvider._bracketsRightYield(resolve, 0, model, position, ranges));\n            await new Promise(resolve => BracketSelectionRangeProvider._bracketsLeftYield(resolve, 0, model, position, ranges, bucket));\n        }\n        return result;\n    }\n    static _bracketsRightYield(resolve, round, model, pos, ranges) {\n        const counts = new Map();\n        const t1 = Date.now();\n        while (true) {\n            if (round >= BracketSelectionRangeProvider._maxRounds) {\n                resolve();\n                break;\n            }\n            if (!pos) {\n                resolve();\n                break;\n            }\n            const bracket = model.bracketPairs.findNextBracket(pos);\n            if (!bracket) {\n                resolve();\n                break;\n            }\n            const d = Date.now() - t1;\n            if (d > BracketSelectionRangeProvider._maxDuration) {\n                setTimeout(() => BracketSelectionRangeProvider._bracketsRightYield(resolve, round + 1, model, pos, ranges));\n                break;\n            }\n            if (bracket.bracketInfo.isOpeningBracket) {\n                const key = bracket.bracketInfo.bracketText;\n                // wait for closing\n                const val = counts.has(key) ? counts.get(key) : 0;\n                counts.set(key, val + 1);\n            }\n            else {\n                const key = bracket.bracketInfo.getOpeningBrackets()[0].bracketText;\n                // process closing\n                let val = counts.has(key) ? counts.get(key) : 0;\n                val -= 1;\n                counts.set(key, Math.max(0, val));\n                if (val < 0) {\n                    let list = ranges.get(key);\n                    if (!list) {\n                        list = new LinkedList();\n                        ranges.set(key, list);\n                    }\n                    list.push(bracket.range);\n                }\n            }\n            pos = bracket.range.getEndPosition();\n        }\n    }\n    static _bracketsLeftYield(resolve, round, model, pos, ranges, bucket) {\n        const counts = new Map();\n        const t1 = Date.now();\n        while (true) {\n            if (round >= BracketSelectionRangeProvider._maxRounds && ranges.size === 0) {\n                resolve();\n                break;\n            }\n            if (!pos) {\n                resolve();\n                break;\n            }\n            const bracket = model.bracketPairs.findPrevBracket(pos);\n            if (!bracket) {\n                resolve();\n                break;\n            }\n            const d = Date.now() - t1;\n            if (d > BracketSelectionRangeProvider._maxDuration) {\n                setTimeout(() => BracketSelectionRangeProvider._bracketsLeftYield(resolve, round + 1, model, pos, ranges, bucket));\n                break;\n            }\n            if (!bracket.bracketInfo.isOpeningBracket) {\n                const key = bracket.bracketInfo.getOpeningBrackets()[0].bracketText;\n                // wait for opening\n                const val = counts.has(key) ? counts.get(key) : 0;\n                counts.set(key, val + 1);\n            }\n            else {\n                const key = bracket.bracketInfo.bracketText;\n                // opening\n                let val = counts.has(key) ? counts.get(key) : 0;\n                val -= 1;\n                counts.set(key, Math.max(0, val));\n                if (val < 0) {\n                    const list = ranges.get(key);\n                    if (list) {\n                        const closing = list.shift();\n                        if (list.size === 0) {\n                            ranges.delete(key);\n                        }\n                        const innerBracket = Range.fromPositions(bracket.range.getEndPosition(), closing.getStartPosition());\n                        const outerBracket = Range.fromPositions(bracket.range.getStartPosition(), closing.getEndPosition());\n                        bucket.push({ range: innerBracket });\n                        bucket.push({ range: outerBracket });\n                        BracketSelectionRangeProvider._addBracketLeading(model, outerBracket, bucket);\n                    }\n                }\n            }\n            pos = bracket.range.getStartPosition();\n        }\n    }\n    static _addBracketLeading(model, bracket, bucket) {\n        if (bracket.startLineNumber === bracket.endLineNumber) {\n            return;\n        }\n        // xxxxxxxx {\n        //\n        // }\n        const startLine = bracket.startLineNumber;\n        const column = model.getLineFirstNonWhitespaceColumn(startLine);\n        if (column !== 0 && column !== bracket.startColumn) {\n            bucket.push({ range: Range.fromPositions(new Position(startLine, column), bracket.getEndPosition()) });\n            bucket.push({ range: Range.fromPositions(new Position(startLine, 1), bracket.getEndPosition()) });\n        }\n        // xxxxxxxx\n        // {\n        //\n        // }\n        const aboveLine = startLine - 1;\n        if (aboveLine > 0) {\n            const column = model.getLineFirstNonWhitespaceColumn(aboveLine);\n            if (column === bracket.startColumn && column !== model.getLineLastNonWhitespaceColumn(aboveLine)) {\n                bucket.push({ range: Range.fromPositions(new Position(aboveLine, column), bracket.getEndPosition()) });\n                bucket.push({ range: Range.fromPositions(new Position(aboveLine, 1), bracket.getEndPosition()) });\n            }\n        }\n    }\n}\nBracketSelectionRangeProvider._maxDuration = 30;\nBracketSelectionRangeProvider._maxRounds = 2;\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/smartSelect/browser/smartSelect.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/smartSelect/browser/smartSelect.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar SmartSelectController_1;\nimport * as arrays from '../../../../base/common/arrays.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { EditorAction, registerEditorAction, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { BracketSelectionRangeProvider } from './bracketSelections.js';\nimport { WordSelectionRangeProvider } from './wordSelections.js';\nimport * as nls from '../../../../nls.js';\nimport { MenuId } from '../../../../platform/actions/common/actions.js';\nimport { CommandsRegistry } from '../../../../platform/commands/common/commands.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { ITextModelService } from '../../../common/services/resolverService.js';\nimport { assertType } from '../../../../base/common/types.js';\nimport { URI } from '../../../../base/common/uri.js';\nclass SelectionRanges {\n    constructor(index, ranges) {\n        this.index = index;\n        this.ranges = ranges;\n    }\n    mov(fwd) {\n        const index = this.index + (fwd ? 1 : -1);\n        if (index < 0 || index >= this.ranges.length) {\n            return this;\n        }\n        const res = new SelectionRanges(index, this.ranges);\n        if (res.ranges[index].equalsRange(this.ranges[this.index])) {\n            // next range equals this range, retry with next-next\n            return res.mov(fwd);\n        }\n        return res;\n    }\n}\nlet SmartSelectController = SmartSelectController_1 = class SmartSelectController {\n    static get(editor) {\n        return editor.getContribution(SmartSelectController_1.ID);\n    }\n    constructor(_editor, _languageFeaturesService) {\n        this._editor = _editor;\n        this._languageFeaturesService = _languageFeaturesService;\n        this._ignoreSelection = false;\n    }\n    dispose() {\n        var _a;\n        (_a = this._selectionListener) === null || _a === void 0 ? void 0 : _a.dispose();\n    }\n    async run(forward) {\n        if (!this._editor.hasModel()) {\n            return;\n        }\n        const selections = this._editor.getSelections();\n        const model = this._editor.getModel();\n        if (!this._state) {\n            await provideSelectionRanges(this._languageFeaturesService.selectionRangeProvider, model, selections.map(s => s.getPosition()), this._editor.getOption(113 /* EditorOption.smartSelect */), CancellationToken.None).then(ranges => {\n                var _a;\n                if (!arrays.isNonEmptyArray(ranges) || ranges.length !== selections.length) {\n                    // invalid result\n                    return;\n                }\n                if (!this._editor.hasModel() || !arrays.equals(this._editor.getSelections(), selections, (a, b) => a.equalsSelection(b))) {\n                    // invalid editor state\n                    return;\n                }\n                for (let i = 0; i < ranges.length; i++) {\n                    ranges[i] = ranges[i].filter(range => {\n                        // filter ranges inside the selection\n                        return range.containsPosition(selections[i].getStartPosition()) && range.containsPosition(selections[i].getEndPosition());\n                    });\n                    // prepend current selection\n                    ranges[i].unshift(selections[i]);\n                }\n                this._state = ranges.map(ranges => new SelectionRanges(0, ranges));\n                // listen to caret move and forget about state\n                (_a = this._selectionListener) === null || _a === void 0 ? void 0 : _a.dispose();\n                this._selectionListener = this._editor.onDidChangeCursorPosition(() => {\n                    var _a;\n                    if (!this._ignoreSelection) {\n                        (_a = this._selectionListener) === null || _a === void 0 ? void 0 : _a.dispose();\n                        this._state = undefined;\n                    }\n                });\n            });\n        }\n        if (!this._state) {\n            // no state\n            return;\n        }\n        this._state = this._state.map(state => state.mov(forward));\n        const newSelections = this._state.map(state => Selection.fromPositions(state.ranges[state.index].getStartPosition(), state.ranges[state.index].getEndPosition()));\n        this._ignoreSelection = true;\n        try {\n            this._editor.setSelections(newSelections);\n        }\n        finally {\n            this._ignoreSelection = false;\n        }\n    }\n};\nSmartSelectController.ID = 'editor.contrib.smartSelectController';\nSmartSelectController = SmartSelectController_1 = __decorate([\n    __param(1, ILanguageFeaturesService)\n], SmartSelectController);\nexport { SmartSelectController };\nclass AbstractSmartSelect extends EditorAction {\n    constructor(forward, opts) {\n        super(opts);\n        this._forward = forward;\n    }\n    async run(_accessor, editor) {\n        const controller = SmartSelectController.get(editor);\n        if (controller) {\n            await controller.run(this._forward);\n        }\n    }\n}\nclass GrowSelectionAction extends AbstractSmartSelect {\n    constructor() {\n        super(true, {\n            id: 'editor.action.smartSelect.expand',\n            label: nls.localize('smartSelect.expand', \"Expand Selection\"),\n            alias: 'Expand Selection',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: 1024 /* KeyMod.Shift */ | 512 /* KeyMod.Alt */ | 17 /* KeyCode.RightArrow */,\n                mac: {\n                    primary: 2048 /* KeyMod.CtrlCmd */ | 256 /* KeyMod.WinCtrl */ | 1024 /* KeyMod.Shift */ | 17 /* KeyCode.RightArrow */,\n                    secondary: [256 /* KeyMod.WinCtrl */ | 1024 /* KeyMod.Shift */ | 17 /* KeyCode.RightArrow */],\n                },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            menuOpts: {\n                menuId: MenuId.MenubarSelectionMenu,\n                group: '1_basic',\n                title: nls.localize({ key: 'miSmartSelectGrow', comment: ['&& denotes a mnemonic'] }, \"&&Expand Selection\"),\n                order: 2\n            }\n        });\n    }\n}\n// renamed command id\nCommandsRegistry.registerCommandAlias('editor.action.smartSelect.grow', 'editor.action.smartSelect.expand');\nclass ShrinkSelectionAction extends AbstractSmartSelect {\n    constructor() {\n        super(false, {\n            id: 'editor.action.smartSelect.shrink',\n            label: nls.localize('smartSelect.shrink', \"Shrink Selection\"),\n            alias: 'Shrink Selection',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: 1024 /* KeyMod.Shift */ | 512 /* KeyMod.Alt */ | 15 /* KeyCode.LeftArrow */,\n                mac: {\n                    primary: 2048 /* KeyMod.CtrlCmd */ | 256 /* KeyMod.WinCtrl */ | 1024 /* KeyMod.Shift */ | 15 /* KeyCode.LeftArrow */,\n                    secondary: [256 /* KeyMod.WinCtrl */ | 1024 /* KeyMod.Shift */ | 15 /* KeyCode.LeftArrow */],\n                },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            menuOpts: {\n                menuId: MenuId.MenubarSelectionMenu,\n                group: '1_basic',\n                title: nls.localize({ key: 'miSmartSelectShrink', comment: ['&& denotes a mnemonic'] }, \"&&Shrink Selection\"),\n                order: 3\n            }\n        });\n    }\n}\nregisterEditorContribution(SmartSelectController.ID, SmartSelectController, 4 /* EditorContributionInstantiation.Lazy */);\nregisterEditorAction(GrowSelectionAction);\nregisterEditorAction(ShrinkSelectionAction);\nexport async function provideSelectionRanges(registry, model, positions, options, token) {\n    const providers = registry.all(model)\n        .concat(new WordSelectionRangeProvider(options.selectSubwords)); // ALWAYS have word based selection range\n    if (providers.length === 1) {\n        // add word selection and bracket selection when no provider exists\n        providers.unshift(new BracketSelectionRangeProvider());\n    }\n    const work = [];\n    const allRawRanges = [];\n    for (const provider of providers) {\n        work.push(Promise.resolve(provider.provideSelectionRanges(model, positions, token)).then(allProviderRanges => {\n            if (arrays.isNonEmptyArray(allProviderRanges) && allProviderRanges.length === positions.length) {\n                for (let i = 0; i < positions.length; i++) {\n                    if (!allRawRanges[i]) {\n                        allRawRanges[i] = [];\n                    }\n                    for (const oneProviderRanges of allProviderRanges[i]) {\n                        if (Range.isIRange(oneProviderRanges.range) && Range.containsPosition(oneProviderRanges.range, positions[i])) {\n                            allRawRanges[i].push(Range.lift(oneProviderRanges.range));\n                        }\n                    }\n                }\n            }\n        }, onUnexpectedExternalError));\n    }\n    await Promise.all(work);\n    return allRawRanges.map(oneRawRanges => {\n        if (oneRawRanges.length === 0) {\n            return [];\n        }\n        // sort all by start/end position\n        oneRawRanges.sort((a, b) => {\n            if (Position.isBefore(a.getStartPosition(), b.getStartPosition())) {\n                return 1;\n            }\n            else if (Position.isBefore(b.getStartPosition(), a.getStartPosition())) {\n                return -1;\n            }\n            else if (Position.isBefore(a.getEndPosition(), b.getEndPosition())) {\n                return -1;\n            }\n            else if (Position.isBefore(b.getEndPosition(), a.getEndPosition())) {\n                return 1;\n            }\n            else {\n                return 0;\n            }\n        });\n        // remove ranges that don't contain the former range or that are equal to the\n        // former range\n        const oneRanges = [];\n        let last;\n        for (const range of oneRawRanges) {\n            if (!last || (Range.containsRange(range, last) && !Range.equalsRange(range, last))) {\n                oneRanges.push(range);\n                last = range;\n            }\n        }\n        if (!options.selectLeadingAndTrailingWhitespace) {\n            return oneRanges;\n        }\n        // add ranges that expand trivia at line starts and ends whenever a range\n        // wraps onto the a new line\n        const oneRangesWithTrivia = [oneRanges[0]];\n        for (let i = 1; i < oneRanges.length; i++) {\n            const prev = oneRanges[i - 1];\n            const cur = oneRanges[i];\n            if (cur.startLineNumber !== prev.startLineNumber || cur.endLineNumber !== prev.endLineNumber) {\n                // add line/block range without leading/failing whitespace\n                const rangeNoWhitespace = new Range(prev.startLineNumber, model.getLineFirstNonWhitespaceColumn(prev.startLineNumber), prev.endLineNumber, model.getLineLastNonWhitespaceColumn(prev.endLineNumber));\n                if (rangeNoWhitespace.containsRange(prev) && !rangeNoWhitespace.equalsRange(prev) && cur.containsRange(rangeNoWhitespace) && !cur.equalsRange(rangeNoWhitespace)) {\n                    oneRangesWithTrivia.push(rangeNoWhitespace);\n                }\n                // add line/block range\n                const rangeFull = new Range(prev.startLineNumber, 1, prev.endLineNumber, model.getLineMaxColumn(prev.endLineNumber));\n                if (rangeFull.containsRange(prev) && !rangeFull.equalsRange(rangeNoWhitespace) && cur.containsRange(rangeFull) && !cur.equalsRange(rangeFull)) {\n                    oneRangesWithTrivia.push(rangeFull);\n                }\n            }\n            oneRangesWithTrivia.push(cur);\n        }\n        return oneRangesWithTrivia;\n    });\n}\nCommandsRegistry.registerCommand('_executeSelectionRangeProvider', async function (accessor, ...args) {\n    const [resource, positions] = args;\n    assertType(URI.isUri(resource));\n    const registry = accessor.get(ILanguageFeaturesService).selectionRangeProvider;\n    const reference = await accessor.get(ITextModelService).createModelReference(resource);\n    try {\n        return provideSelectionRanges(registry, reference.object.textEditorModel, positions, { selectLeadingAndTrailingWhitespace: true, selectSubwords: true }, CancellationToken.None);\n    }\n    finally {\n        reference.dispose();\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/smartSelect/browser/wordSelections.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { isLowerAsciiLetter, isUpperAsciiLetter } from '../../../../base/common/strings.js';\nimport { Range } from '../../../common/core/range.js';\nexport class WordSelectionRangeProvider {\n    constructor(selectSubwords = true) {\n        this.selectSubwords = selectSubwords;\n    }\n    provideSelectionRanges(model, positions) {\n        const result = [];\n        for (const position of positions) {\n            const bucket = [];\n            result.push(bucket);\n            if (this.selectSubwords) {\n                this._addInWordRanges(bucket, model, position);\n            }\n            this._addWordRanges(bucket, model, position);\n            this._addWhitespaceLine(bucket, model, position);\n            bucket.push({ range: model.getFullModelRange() });\n        }\n        return result;\n    }\n    _addInWordRanges(bucket, model, pos) {\n        const obj = model.getWordAtPosition(pos);\n        if (!obj) {\n            return;\n        }\n        const { word, startColumn } = obj;\n        const offset = pos.column - startColumn;\n        let start = offset;\n        let end = offset;\n        let lastCh = 0;\n        // LEFT anchor (start)\n        for (; start >= 0; start--) {\n            const ch = word.charCodeAt(start);\n            if ((start !== offset) && (ch === 95 /* CharCode.Underline */ || ch === 45 /* CharCode.Dash */)) {\n                // foo-bar OR foo_bar\n                break;\n            }\n            else if (isLowerAsciiLetter(ch) && isUpperAsciiLetter(lastCh)) {\n                // fooBar\n                break;\n            }\n            lastCh = ch;\n        }\n        start += 1;\n        // RIGHT anchor (end)\n        for (; end < word.length; end++) {\n            const ch = word.charCodeAt(end);\n            if (isUpperAsciiLetter(ch) && isLowerAsciiLetter(lastCh)) {\n                // fooBar\n                break;\n            }\n            else if (ch === 95 /* CharCode.Underline */ || ch === 45 /* CharCode.Dash */) {\n                // foo-bar OR foo_bar\n                break;\n            }\n            lastCh = ch;\n        }\n        if (start < end) {\n            bucket.push({ range: new Range(pos.lineNumber, startColumn + start, pos.lineNumber, startColumn + end) });\n        }\n    }\n    _addWordRanges(bucket, model, pos) {\n        const word = model.getWordAtPosition(pos);\n        if (word) {\n            bucket.push({ range: new Range(pos.lineNumber, word.startColumn, pos.lineNumber, word.endColumn) });\n        }\n    }\n    _addWhitespaceLine(bucket, model, pos) {\n        if (model.getLineLength(pos.lineNumber) > 0\n            && model.getLineFirstNonWhitespaceColumn(pos.lineNumber) === 0\n            && model.getLineLastNonWhitespaceColumn(pos.lineNumber) === 0) {\n            bucket.push({ range: new Range(pos.lineNumber, 1, pos.lineNumber, model.getLineMaxColumn(pos.lineNumber)) });\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/snippet/browser/snippetController2.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/snippet/browser/snippetController2.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar SnippetController2_1;\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { assertType } from '../../../../base/common/types.js';\nimport { EditorCommand, registerEditorCommand, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { Position } from '../../../common/core/position.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { showSimpleSuggestions } from '../../suggest/browser/suggest.js';\nimport { localize } from '../../../../nls.js';\nimport { ContextKeyExpr, IContextKeyService, RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { ILogService } from '../../../../platform/log/common/log.js';\nimport { SnippetSession } from './snippetSession.js';\nconst _defaultOptions = {\n    overwriteBefore: 0,\n    overwriteAfter: 0,\n    undoStopBefore: true,\n    undoStopAfter: true,\n    adjustWhitespace: true,\n    clipboardText: undefined,\n    overtypingCapturer: undefined\n};\nlet SnippetController2 = SnippetController2_1 = class SnippetController2 {\n    static get(editor) {\n        return editor.getContribution(SnippetController2_1.ID);\n    }\n    constructor(_editor, _logService, _languageFeaturesService, contextKeyService, _languageConfigurationService) {\n        this._editor = _editor;\n        this._logService = _logService;\n        this._languageFeaturesService = _languageFeaturesService;\n        this._languageConfigurationService = _languageConfigurationService;\n        this._snippetListener = new DisposableStore();\n        this._modelVersionId = -1;\n        this._inSnippet = SnippetController2_1.InSnippetMode.bindTo(contextKeyService);\n        this._hasNextTabstop = SnippetController2_1.HasNextTabstop.bindTo(contextKeyService);\n        this._hasPrevTabstop = SnippetController2_1.HasPrevTabstop.bindTo(contextKeyService);\n    }\n    dispose() {\n        var _a;\n        this._inSnippet.reset();\n        this._hasPrevTabstop.reset();\n        this._hasNextTabstop.reset();\n        (_a = this._session) === null || _a === void 0 ? void 0 : _a.dispose();\n        this._snippetListener.dispose();\n    }\n    insert(template, opts) {\n        // this is here to find out more about the yet-not-understood\n        // error that sometimes happens when we fail to inserted a nested\n        // snippet\n        try {\n            this._doInsert(template, typeof opts === 'undefined' ? _defaultOptions : { ..._defaultOptions, ...opts });\n        }\n        catch (e) {\n            this.cancel();\n            this._logService.error(e);\n            this._logService.error('snippet_error');\n            this._logService.error('insert_template=', template);\n            this._logService.error('existing_template=', this._session ? this._session._logInfo() : '<no_session>');\n        }\n    }\n    _doInsert(template, opts) {\n        var _a;\n        if (!this._editor.hasModel()) {\n            return;\n        }\n        // don't listen while inserting the snippet\n        // as that is the inflight state causing cancelation\n        this._snippetListener.clear();\n        if (opts.undoStopBefore) {\n            this._editor.getModel().pushStackElement();\n        }\n        // don't merge\n        if (this._session && typeof template !== 'string') {\n            this.cancel();\n        }\n        if (!this._session) {\n            this._modelVersionId = this._editor.getModel().getAlternativeVersionId();\n            this._session = new SnippetSession(this._editor, template, opts, this._languageConfigurationService);\n            this._session.insert();\n        }\n        else {\n            assertType(typeof template === 'string');\n            this._session.merge(template, opts);\n        }\n        if (opts.undoStopAfter) {\n            this._editor.getModel().pushStackElement();\n        }\n        // regster completion item provider when there is any choice element\n        if ((_a = this._session) === null || _a === void 0 ? void 0 : _a.hasChoice) {\n            const provider = {\n                _debugDisplayName: 'snippetChoiceCompletions',\n                provideCompletionItems: (model, position) => {\n                    if (!this._session || model !== this._editor.getModel() || !Position.equals(this._editor.getPosition(), position)) {\n                        return undefined;\n                    }\n                    const { activeChoice } = this._session;\n                    if (!activeChoice || activeChoice.choice.options.length === 0) {\n                        return undefined;\n                    }\n                    const word = model.getValueInRange(activeChoice.range);\n                    const isAnyOfOptions = Boolean(activeChoice.choice.options.find(o => o.value === word));\n                    const suggestions = [];\n                    for (let i = 0; i < activeChoice.choice.options.length; i++) {\n                        const option = activeChoice.choice.options[i];\n                        suggestions.push({\n                            kind: 13 /* CompletionItemKind.Value */,\n                            label: option.value,\n                            insertText: option.value,\n                            sortText: 'a'.repeat(i + 1),\n                            range: activeChoice.range,\n                            filterText: isAnyOfOptions ? `${word}_${option.value}` : undefined,\n                            command: { id: 'jumpToNextSnippetPlaceholder', title: localize('next', 'Go to next placeholder...') }\n                        });\n                    }\n                    return { suggestions };\n                }\n            };\n            const model = this._editor.getModel();\n            let registration;\n            let isRegistered = false;\n            const disable = () => {\n                registration === null || registration === void 0 ? void 0 : registration.dispose();\n                isRegistered = false;\n            };\n            const enable = () => {\n                if (!isRegistered) {\n                    registration = this._languageFeaturesService.completionProvider.register({\n                        language: model.getLanguageId(),\n                        pattern: model.uri.fsPath,\n                        scheme: model.uri.scheme,\n                        exclusive: true\n                    }, provider);\n                    this._snippetListener.add(registration);\n                    isRegistered = true;\n                }\n            };\n            this._choiceCompletions = { provider, enable, disable };\n        }\n        this._updateState();\n        this._snippetListener.add(this._editor.onDidChangeModelContent(e => e.isFlush && this.cancel()));\n        this._snippetListener.add(this._editor.onDidChangeModel(() => this.cancel()));\n        this._snippetListener.add(this._editor.onDidChangeCursorSelection(() => this._updateState()));\n    }\n    _updateState() {\n        if (!this._session || !this._editor.hasModel()) {\n            // canceled in the meanwhile\n            return;\n        }\n        if (this._modelVersionId === this._editor.getModel().getAlternativeVersionId()) {\n            // undo until the 'before' state happened\n            // and makes use cancel snippet mode\n            return this.cancel();\n        }\n        if (!this._session.hasPlaceholder) {\n            // don't listen for selection changes and don't\n            // update context keys when the snippet is plain text\n            return this.cancel();\n        }\n        if (this._session.isAtLastPlaceholder || !this._session.isSelectionWithinPlaceholders()) {\n            this._editor.getModel().pushStackElement();\n            return this.cancel();\n        }\n        this._inSnippet.set(true);\n        this._hasPrevTabstop.set(!this._session.isAtFirstPlaceholder);\n        this._hasNextTabstop.set(!this._session.isAtLastPlaceholder);\n        this._handleChoice();\n    }\n    _handleChoice() {\n        var _a;\n        if (!this._session || !this._editor.hasModel()) {\n            this._currentChoice = undefined;\n            return;\n        }\n        const { activeChoice } = this._session;\n        if (!activeChoice || !this._choiceCompletions) {\n            (_a = this._choiceCompletions) === null || _a === void 0 ? void 0 : _a.disable();\n            this._currentChoice = undefined;\n            return;\n        }\n        if (this._currentChoice !== activeChoice.choice) {\n            this._currentChoice = activeChoice.choice;\n            this._choiceCompletions.enable();\n            // trigger suggest with the special choice completion provider\n            queueMicrotask(() => {\n                showSimpleSuggestions(this._editor, this._choiceCompletions.provider);\n            });\n        }\n    }\n    finish() {\n        while (this._inSnippet.get()) {\n            this.next();\n        }\n    }\n    cancel(resetSelection = false) {\n        var _a;\n        this._inSnippet.reset();\n        this._hasPrevTabstop.reset();\n        this._hasNextTabstop.reset();\n        this._snippetListener.clear();\n        this._currentChoice = undefined;\n        (_a = this._session) === null || _a === void 0 ? void 0 : _a.dispose();\n        this._session = undefined;\n        this._modelVersionId = -1;\n        if (resetSelection) {\n            // reset selection to the primary cursor when being asked\n            // for. this happens when explicitly cancelling snippet mode,\n            // e.g. when pressing ESC\n            this._editor.setSelections([this._editor.getSelection()]);\n        }\n    }\n    prev() {\n        var _a;\n        (_a = this._session) === null || _a === void 0 ? void 0 : _a.prev();\n        this._updateState();\n    }\n    next() {\n        var _a;\n        (_a = this._session) === null || _a === void 0 ? void 0 : _a.next();\n        this._updateState();\n    }\n    isInSnippet() {\n        return Boolean(this._inSnippet.get());\n    }\n};\nSnippetController2.ID = 'snippetController2';\nSnippetController2.InSnippetMode = new RawContextKey('inSnippetMode', false, localize('inSnippetMode', \"Whether the editor in current in snippet mode\"));\nSnippetController2.HasNextTabstop = new RawContextKey('hasNextTabstop', false, localize('hasNextTabstop', \"Whether there is a next tab stop when in snippet mode\"));\nSnippetController2.HasPrevTabstop = new RawContextKey('hasPrevTabstop', false, localize('hasPrevTabstop', \"Whether there is a previous tab stop when in snippet mode\"));\nSnippetController2 = SnippetController2_1 = __decorate([\n    __param(1, ILogService),\n    __param(2, ILanguageFeaturesService),\n    __param(3, IContextKeyService),\n    __param(4, ILanguageConfigurationService)\n], SnippetController2);\nexport { SnippetController2 };\nregisterEditorContribution(SnippetController2.ID, SnippetController2, 4 /* EditorContributionInstantiation.Lazy */);\nconst CommandCtor = EditorCommand.bindToContribution(SnippetController2.get);\nregisterEditorCommand(new CommandCtor({\n    id: 'jumpToNextSnippetPlaceholder',\n    precondition: ContextKeyExpr.and(SnippetController2.InSnippetMode, SnippetController2.HasNextTabstop),\n    handler: ctrl => ctrl.next(),\n    kbOpts: {\n        weight: 100 /* KeybindingWeight.EditorContrib */ + 30,\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 2 /* KeyCode.Tab */\n    }\n}));\nregisterEditorCommand(new CommandCtor({\n    id: 'jumpToPrevSnippetPlaceholder',\n    precondition: ContextKeyExpr.and(SnippetController2.InSnippetMode, SnippetController2.HasPrevTabstop),\n    handler: ctrl => ctrl.prev(),\n    kbOpts: {\n        weight: 100 /* KeybindingWeight.EditorContrib */ + 30,\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 1024 /* KeyMod.Shift */ | 2 /* KeyCode.Tab */\n    }\n}));\nregisterEditorCommand(new CommandCtor({\n    id: 'leaveSnippet',\n    precondition: SnippetController2.InSnippetMode,\n    handler: ctrl => ctrl.cancel(true),\n    kbOpts: {\n        weight: 100 /* KeybindingWeight.EditorContrib */ + 30,\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 9 /* KeyCode.Escape */,\n        secondary: [1024 /* KeyMod.Shift */ | 9 /* KeyCode.Escape */]\n    }\n}));\nregisterEditorCommand(new CommandCtor({\n    id: 'acceptSnippet',\n    precondition: SnippetController2.InSnippetMode,\n    handler: ctrl => ctrl.finish(),\n    // kbOpts: {\n    // \tweight: KeybindingWeight.EditorContrib + 30,\n    // \tkbExpr: EditorContextKeys.textFocus,\n    // \tprimary: KeyCode.Enter,\n    // }\n}));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/snippet/browser/snippetParser.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class Scanner {\n    constructor() {\n        this.value = '';\n        this.pos = 0;\n    }\n    static isDigitCharacter(ch) {\n        return ch >= 48 /* CharCode.Digit0 */ && ch <= 57 /* CharCode.Digit9 */;\n    }\n    static isVariableCharacter(ch) {\n        return ch === 95 /* CharCode.Underline */\n            || (ch >= 97 /* CharCode.a */ && ch <= 122 /* CharCode.z */)\n            || (ch >= 65 /* CharCode.A */ && ch <= 90 /* CharCode.Z */);\n    }\n    text(value) {\n        this.value = value;\n        this.pos = 0;\n    }\n    tokenText(token) {\n        return this.value.substr(token.pos, token.len);\n    }\n    next() {\n        if (this.pos >= this.value.length) {\n            return { type: 14 /* TokenType.EOF */, pos: this.pos, len: 0 };\n        }\n        const pos = this.pos;\n        let len = 0;\n        let ch = this.value.charCodeAt(pos);\n        let type;\n        // static types\n        type = Scanner._table[ch];\n        if (typeof type === 'number') {\n            this.pos += 1;\n            return { type, pos, len: 1 };\n        }\n        // number\n        if (Scanner.isDigitCharacter(ch)) {\n            type = 8 /* TokenType.Int */;\n            do {\n                len += 1;\n                ch = this.value.charCodeAt(pos + len);\n            } while (Scanner.isDigitCharacter(ch));\n            this.pos += len;\n            return { type, pos, len };\n        }\n        // variable name\n        if (Scanner.isVariableCharacter(ch)) {\n            type = 9 /* TokenType.VariableName */;\n            do {\n                ch = this.value.charCodeAt(pos + (++len));\n            } while (Scanner.isVariableCharacter(ch) || Scanner.isDigitCharacter(ch));\n            this.pos += len;\n            return { type, pos, len };\n        }\n        // format\n        type = 10 /* TokenType.Format */;\n        do {\n            len += 1;\n            ch = this.value.charCodeAt(pos + len);\n        } while (!isNaN(ch)\n            && typeof Scanner._table[ch] === 'undefined' // not static token\n            && !Scanner.isDigitCharacter(ch) // not number\n            && !Scanner.isVariableCharacter(ch) // not variable\n        );\n        this.pos += len;\n        return { type, pos, len };\n    }\n}\nScanner._table = {\n    [36 /* CharCode.DollarSign */]: 0 /* TokenType.Dollar */,\n    [58 /* CharCode.Colon */]: 1 /* TokenType.Colon */,\n    [44 /* CharCode.Comma */]: 2 /* TokenType.Comma */,\n    [123 /* CharCode.OpenCurlyBrace */]: 3 /* TokenType.CurlyOpen */,\n    [125 /* CharCode.CloseCurlyBrace */]: 4 /* TokenType.CurlyClose */,\n    [92 /* CharCode.Backslash */]: 5 /* TokenType.Backslash */,\n    [47 /* CharCode.Slash */]: 6 /* TokenType.Forwardslash */,\n    [124 /* CharCode.Pipe */]: 7 /* TokenType.Pipe */,\n    [43 /* CharCode.Plus */]: 11 /* TokenType.Plus */,\n    [45 /* CharCode.Dash */]: 12 /* TokenType.Dash */,\n    [63 /* CharCode.QuestionMark */]: 13 /* TokenType.QuestionMark */,\n};\nexport class Marker {\n    constructor() {\n        this._children = [];\n    }\n    appendChild(child) {\n        if (child instanceof Text && this._children[this._children.length - 1] instanceof Text) {\n            // this and previous child are text -> merge them\n            this._children[this._children.length - 1].value += child.value;\n        }\n        else {\n            // normal adoption of child\n            child.parent = this;\n            this._children.push(child);\n        }\n        return this;\n    }\n    replace(child, others) {\n        const { parent } = child;\n        const idx = parent.children.indexOf(child);\n        const newChildren = parent.children.slice(0);\n        newChildren.splice(idx, 1, ...others);\n        parent._children = newChildren;\n        (function _fixParent(children, parent) {\n            for (const child of children) {\n                child.parent = parent;\n                _fixParent(child.children, child);\n            }\n        })(others, parent);\n    }\n    get children() {\n        return this._children;\n    }\n    get rightMostDescendant() {\n        if (this._children.length > 0) {\n            return this._children[this._children.length - 1].rightMostDescendant;\n        }\n        return this;\n    }\n    get snippet() {\n        let candidate = this;\n        while (true) {\n            if (!candidate) {\n                return undefined;\n            }\n            if (candidate instanceof TextmateSnippet) {\n                return candidate;\n            }\n            candidate = candidate.parent;\n        }\n    }\n    toString() {\n        return this.children.reduce((prev, cur) => prev + cur.toString(), '');\n    }\n    len() {\n        return 0;\n    }\n}\nexport class Text extends Marker {\n    constructor(value) {\n        super();\n        this.value = value;\n    }\n    toString() {\n        return this.value;\n    }\n    len() {\n        return this.value.length;\n    }\n    clone() {\n        return new Text(this.value);\n    }\n}\nexport class TransformableMarker extends Marker {\n}\nexport class Placeholder extends TransformableMarker {\n    static compareByIndex(a, b) {\n        if (a.index === b.index) {\n            return 0;\n        }\n        else if (a.isFinalTabstop) {\n            return 1;\n        }\n        else if (b.isFinalTabstop) {\n            return -1;\n        }\n        else if (a.index < b.index) {\n            return -1;\n        }\n        else if (a.index > b.index) {\n            return 1;\n        }\n        else {\n            return 0;\n        }\n    }\n    constructor(index) {\n        super();\n        this.index = index;\n    }\n    get isFinalTabstop() {\n        return this.index === 0;\n    }\n    get choice() {\n        return this._children.length === 1 && this._children[0] instanceof Choice\n            ? this._children[0]\n            : undefined;\n    }\n    clone() {\n        const ret = new Placeholder(this.index);\n        if (this.transform) {\n            ret.transform = this.transform.clone();\n        }\n        ret._children = this.children.map(child => child.clone());\n        return ret;\n    }\n}\nexport class Choice extends Marker {\n    constructor() {\n        super(...arguments);\n        this.options = [];\n    }\n    appendChild(marker) {\n        if (marker instanceof Text) {\n            marker.parent = this;\n            this.options.push(marker);\n        }\n        return this;\n    }\n    toString() {\n        return this.options[0].value;\n    }\n    len() {\n        return this.options[0].len();\n    }\n    clone() {\n        const ret = new Choice();\n        this.options.forEach(ret.appendChild, ret);\n        return ret;\n    }\n}\nexport class Transform extends Marker {\n    constructor() {\n        super(...arguments);\n        this.regexp = new RegExp('');\n    }\n    resolve(value) {\n        const _this = this;\n        let didMatch = false;\n        let ret = value.replace(this.regexp, function () {\n            didMatch = true;\n            return _this._replace(Array.prototype.slice.call(arguments, 0, -2));\n        });\n        // when the regex didn't match and when the transform has\n        // else branches, then run those\n        if (!didMatch && this._children.some(child => child instanceof FormatString && Boolean(child.elseValue))) {\n            ret = this._replace([]);\n        }\n        return ret;\n    }\n    _replace(groups) {\n        let ret = '';\n        for (const marker of this._children) {\n            if (marker instanceof FormatString) {\n                let value = groups[marker.index] || '';\n                value = marker.resolve(value);\n                ret += value;\n            }\n            else {\n                ret += marker.toString();\n            }\n        }\n        return ret;\n    }\n    toString() {\n        return '';\n    }\n    clone() {\n        const ret = new Transform();\n        ret.regexp = new RegExp(this.regexp.source, '' + (this.regexp.ignoreCase ? 'i' : '') + (this.regexp.global ? 'g' : ''));\n        ret._children = this.children.map(child => child.clone());\n        return ret;\n    }\n}\nexport class FormatString extends Marker {\n    constructor(index, shorthandName, ifValue, elseValue) {\n        super();\n        this.index = index;\n        this.shorthandName = shorthandName;\n        this.ifValue = ifValue;\n        this.elseValue = elseValue;\n    }\n    resolve(value) {\n        if (this.shorthandName === 'upcase') {\n            return !value ? '' : value.toLocaleUpperCase();\n        }\n        else if (this.shorthandName === 'downcase') {\n            return !value ? '' : value.toLocaleLowerCase();\n        }\n        else if (this.shorthandName === 'capitalize') {\n            return !value ? '' : (value[0].toLocaleUpperCase() + value.substr(1));\n        }\n        else if (this.shorthandName === 'pascalcase') {\n            return !value ? '' : this._toPascalCase(value);\n        }\n        else if (this.shorthandName === 'camelcase') {\n            return !value ? '' : this._toCamelCase(value);\n        }\n        else if (Boolean(value) && typeof this.ifValue === 'string') {\n            return this.ifValue;\n        }\n        else if (!Boolean(value) && typeof this.elseValue === 'string') {\n            return this.elseValue;\n        }\n        else {\n            return value || '';\n        }\n    }\n    _toPascalCase(value) {\n        const match = value.match(/[a-z0-9]+/gi);\n        if (!match) {\n            return value;\n        }\n        return match.map(word => {\n            return word.charAt(0).toUpperCase() + word.substr(1);\n        })\n            .join('');\n    }\n    _toCamelCase(value) {\n        const match = value.match(/[a-z0-9]+/gi);\n        if (!match) {\n            return value;\n        }\n        return match.map((word, index) => {\n            if (index === 0) {\n                return word.charAt(0).toLowerCase() + word.substr(1);\n            }\n            return word.charAt(0).toUpperCase() + word.substr(1);\n        })\n            .join('');\n    }\n    clone() {\n        const ret = new FormatString(this.index, this.shorthandName, this.ifValue, this.elseValue);\n        return ret;\n    }\n}\nexport class Variable extends TransformableMarker {\n    constructor(name) {\n        super();\n        this.name = name;\n    }\n    resolve(resolver) {\n        let value = resolver.resolve(this);\n        if (this.transform) {\n            value = this.transform.resolve(value || '');\n        }\n        if (value !== undefined) {\n            this._children = [new Text(value)];\n            return true;\n        }\n        return false;\n    }\n    clone() {\n        const ret = new Variable(this.name);\n        if (this.transform) {\n            ret.transform = this.transform.clone();\n        }\n        ret._children = this.children.map(child => child.clone());\n        return ret;\n    }\n}\nfunction walk(marker, visitor) {\n    const stack = [...marker];\n    while (stack.length > 0) {\n        const marker = stack.shift();\n        const recurse = visitor(marker);\n        if (!recurse) {\n            break;\n        }\n        stack.unshift(...marker.children);\n    }\n}\nexport class TextmateSnippet extends Marker {\n    get placeholderInfo() {\n        if (!this._placeholders) {\n            // fill in placeholders\n            const all = [];\n            let last;\n            this.walk(function (candidate) {\n                if (candidate instanceof Placeholder) {\n                    all.push(candidate);\n                    last = !last || last.index < candidate.index ? candidate : last;\n                }\n                return true;\n            });\n            this._placeholders = { all, last };\n        }\n        return this._placeholders;\n    }\n    get placeholders() {\n        const { all } = this.placeholderInfo;\n        return all;\n    }\n    offset(marker) {\n        let pos = 0;\n        let found = false;\n        this.walk(candidate => {\n            if (candidate === marker) {\n                found = true;\n                return false;\n            }\n            pos += candidate.len();\n            return true;\n        });\n        if (!found) {\n            return -1;\n        }\n        return pos;\n    }\n    fullLen(marker) {\n        let ret = 0;\n        walk([marker], marker => {\n            ret += marker.len();\n            return true;\n        });\n        return ret;\n    }\n    enclosingPlaceholders(placeholder) {\n        const ret = [];\n        let { parent } = placeholder;\n        while (parent) {\n            if (parent instanceof Placeholder) {\n                ret.push(parent);\n            }\n            parent = parent.parent;\n        }\n        return ret;\n    }\n    resolveVariables(resolver) {\n        this.walk(candidate => {\n            if (candidate instanceof Variable) {\n                if (candidate.resolve(resolver)) {\n                    this._placeholders = undefined;\n                }\n            }\n            return true;\n        });\n        return this;\n    }\n    appendChild(child) {\n        this._placeholders = undefined;\n        return super.appendChild(child);\n    }\n    replace(child, others) {\n        this._placeholders = undefined;\n        return super.replace(child, others);\n    }\n    clone() {\n        const ret = new TextmateSnippet();\n        this._children = this.children.map(child => child.clone());\n        return ret;\n    }\n    walk(visitor) {\n        walk(this.children, visitor);\n    }\n}\nexport class SnippetParser {\n    constructor() {\n        this._scanner = new Scanner();\n        this._token = { type: 14 /* TokenType.EOF */, pos: 0, len: 0 };\n    }\n    static escape(value) {\n        return value.replace(/\\$|}|\\\\/g, '\\\\$&');\n    }\n    static guessNeedsClipboard(template) {\n        return /\\${?CLIPBOARD/.test(template);\n    }\n    parse(value, insertFinalTabstop, enforceFinalTabstop) {\n        const snippet = new TextmateSnippet();\n        this.parseFragment(value, snippet);\n        this.ensureFinalTabstop(snippet, enforceFinalTabstop !== null && enforceFinalTabstop !== void 0 ? enforceFinalTabstop : false, insertFinalTabstop !== null && insertFinalTabstop !== void 0 ? insertFinalTabstop : false);\n        return snippet;\n    }\n    parseFragment(value, snippet) {\n        const offset = snippet.children.length;\n        this._scanner.text(value);\n        this._token = this._scanner.next();\n        while (this._parse(snippet)) {\n            // nothing\n        }\n        // fill in values for placeholders. the first placeholder of an index\n        // that has a value defines the value for all placeholders with that index\n        const placeholderDefaultValues = new Map();\n        const incompletePlaceholders = [];\n        snippet.walk(marker => {\n            if (marker instanceof Placeholder) {\n                if (marker.isFinalTabstop) {\n                    placeholderDefaultValues.set(0, undefined);\n                }\n                else if (!placeholderDefaultValues.has(marker.index) && marker.children.length > 0) {\n                    placeholderDefaultValues.set(marker.index, marker.children);\n                }\n                else {\n                    incompletePlaceholders.push(marker);\n                }\n            }\n            return true;\n        });\n        const fillInIncompletePlaceholder = (placeholder, stack) => {\n            const defaultValues = placeholderDefaultValues.get(placeholder.index);\n            if (!defaultValues) {\n                return;\n            }\n            const clone = new Placeholder(placeholder.index);\n            clone.transform = placeholder.transform;\n            for (const child of defaultValues) {\n                const newChild = child.clone();\n                clone.appendChild(newChild);\n                // \"recurse\" on children that are again placeholders\n                if (newChild instanceof Placeholder && placeholderDefaultValues.has(newChild.index) && !stack.has(newChild.index)) {\n                    stack.add(newChild.index);\n                    fillInIncompletePlaceholder(newChild, stack);\n                    stack.delete(newChild.index);\n                }\n            }\n            snippet.replace(placeholder, [clone]);\n        };\n        const stack = new Set();\n        for (const placeholder of incompletePlaceholders) {\n            fillInIncompletePlaceholder(placeholder, stack);\n        }\n        return snippet.children.slice(offset);\n    }\n    ensureFinalTabstop(snippet, enforceFinalTabstop, insertFinalTabstop) {\n        if (enforceFinalTabstop || insertFinalTabstop && snippet.placeholders.length > 0) {\n            const finalTabstop = snippet.placeholders.find(p => p.index === 0);\n            if (!finalTabstop) {\n                // the snippet uses placeholders but has no\n                // final tabstop defined -> insert at the end\n                snippet.appendChild(new Placeholder(0));\n            }\n        }\n    }\n    _accept(type, value) {\n        if (type === undefined || this._token.type === type) {\n            const ret = !value ? true : this._scanner.tokenText(this._token);\n            this._token = this._scanner.next();\n            return ret;\n        }\n        return false;\n    }\n    _backTo(token) {\n        this._scanner.pos = token.pos + token.len;\n        this._token = token;\n        return false;\n    }\n    _until(type) {\n        const start = this._token;\n        while (this._token.type !== type) {\n            if (this._token.type === 14 /* TokenType.EOF */) {\n                return false;\n            }\n            else if (this._token.type === 5 /* TokenType.Backslash */) {\n                const nextToken = this._scanner.next();\n                if (nextToken.type !== 0 /* TokenType.Dollar */\n                    && nextToken.type !== 4 /* TokenType.CurlyClose */\n                    && nextToken.type !== 5 /* TokenType.Backslash */) {\n                    return false;\n                }\n            }\n            this._token = this._scanner.next();\n        }\n        const value = this._scanner.value.substring(start.pos, this._token.pos).replace(/\\\\(\\$|}|\\\\)/g, '$1');\n        this._token = this._scanner.next();\n        return value;\n    }\n    _parse(marker) {\n        return this._parseEscaped(marker)\n            || this._parseTabstopOrVariableName(marker)\n            || this._parseComplexPlaceholder(marker)\n            || this._parseComplexVariable(marker)\n            || this._parseAnything(marker);\n    }\n    // \\$, \\\\, \\} -> just text\n    _parseEscaped(marker) {\n        let value;\n        if (value = this._accept(5 /* TokenType.Backslash */, true)) {\n            // saw a backslash, append escaped token or that backslash\n            value = this._accept(0 /* TokenType.Dollar */, true)\n                || this._accept(4 /* TokenType.CurlyClose */, true)\n                || this._accept(5 /* TokenType.Backslash */, true)\n                || value;\n            marker.appendChild(new Text(value));\n            return true;\n        }\n        return false;\n    }\n    // $foo -> variable, $1 -> tabstop\n    _parseTabstopOrVariableName(parent) {\n        let value;\n        const token = this._token;\n        const match = this._accept(0 /* TokenType.Dollar */)\n            && (value = this._accept(9 /* TokenType.VariableName */, true) || this._accept(8 /* TokenType.Int */, true));\n        if (!match) {\n            return this._backTo(token);\n        }\n        parent.appendChild(/^\\d+$/.test(value)\n            ? new Placeholder(Number(value))\n            : new Variable(value));\n        return true;\n    }\n    // ${1:<children>}, ${1} -> placeholder\n    _parseComplexPlaceholder(parent) {\n        let index;\n        const token = this._token;\n        const match = this._accept(0 /* TokenType.Dollar */)\n            && this._accept(3 /* TokenType.CurlyOpen */)\n            && (index = this._accept(8 /* TokenType.Int */, true));\n        if (!match) {\n            return this._backTo(token);\n        }\n        const placeholder = new Placeholder(Number(index));\n        if (this._accept(1 /* TokenType.Colon */)) {\n            // ${1:<children>}\n            while (true) {\n                // ...} -> done\n                if (this._accept(4 /* TokenType.CurlyClose */)) {\n                    parent.appendChild(placeholder);\n                    return true;\n                }\n                if (this._parse(placeholder)) {\n                    continue;\n                }\n                // fallback\n                parent.appendChild(new Text('${' + index + ':'));\n                placeholder.children.forEach(parent.appendChild, parent);\n                return true;\n            }\n        }\n        else if (placeholder.index > 0 && this._accept(7 /* TokenType.Pipe */)) {\n            // ${1|one,two,three|}\n            const choice = new Choice();\n            while (true) {\n                if (this._parseChoiceElement(choice)) {\n                    if (this._accept(2 /* TokenType.Comma */)) {\n                        // opt, -> more\n                        continue;\n                    }\n                    if (this._accept(7 /* TokenType.Pipe */)) {\n                        placeholder.appendChild(choice);\n                        if (this._accept(4 /* TokenType.CurlyClose */)) {\n                            // ..|} -> done\n                            parent.appendChild(placeholder);\n                            return true;\n                        }\n                    }\n                }\n                this._backTo(token);\n                return false;\n            }\n        }\n        else if (this._accept(6 /* TokenType.Forwardslash */)) {\n            // ${1/<regex>/<format>/<options>}\n            if (this._parseTransform(placeholder)) {\n                parent.appendChild(placeholder);\n                return true;\n            }\n            this._backTo(token);\n            return false;\n        }\n        else if (this._accept(4 /* TokenType.CurlyClose */)) {\n            // ${1}\n            parent.appendChild(placeholder);\n            return true;\n        }\n        else {\n            // ${1 <- missing curly or colon\n            return this._backTo(token);\n        }\n    }\n    _parseChoiceElement(parent) {\n        const token = this._token;\n        const values = [];\n        while (true) {\n            if (this._token.type === 2 /* TokenType.Comma */ || this._token.type === 7 /* TokenType.Pipe */) {\n                break;\n            }\n            let value;\n            if (value = this._accept(5 /* TokenType.Backslash */, true)) {\n                // \\, \\|, or \\\\\n                value = this._accept(2 /* TokenType.Comma */, true)\n                    || this._accept(7 /* TokenType.Pipe */, true)\n                    || this._accept(5 /* TokenType.Backslash */, true)\n                    || value;\n            }\n            else {\n                value = this._accept(undefined, true);\n            }\n            if (!value) {\n                // EOF\n                this._backTo(token);\n                return false;\n            }\n            values.push(value);\n        }\n        if (values.length === 0) {\n            this._backTo(token);\n            return false;\n        }\n        parent.appendChild(new Text(values.join('')));\n        return true;\n    }\n    // ${foo:<children>}, ${foo} -> variable\n    _parseComplexVariable(parent) {\n        let name;\n        const token = this._token;\n        const match = this._accept(0 /* TokenType.Dollar */)\n            && this._accept(3 /* TokenType.CurlyOpen */)\n            && (name = this._accept(9 /* TokenType.VariableName */, true));\n        if (!match) {\n            return this._backTo(token);\n        }\n        const variable = new Variable(name);\n        if (this._accept(1 /* TokenType.Colon */)) {\n            // ${foo:<children>}\n            while (true) {\n                // ...} -> done\n                if (this._accept(4 /* TokenType.CurlyClose */)) {\n                    parent.appendChild(variable);\n                    return true;\n                }\n                if (this._parse(variable)) {\n                    continue;\n                }\n                // fallback\n                parent.appendChild(new Text('${' + name + ':'));\n                variable.children.forEach(parent.appendChild, parent);\n                return true;\n            }\n        }\n        else if (this._accept(6 /* TokenType.Forwardslash */)) {\n            // ${foo/<regex>/<format>/<options>}\n            if (this._parseTransform(variable)) {\n                parent.appendChild(variable);\n                return true;\n            }\n            this._backTo(token);\n            return false;\n        }\n        else if (this._accept(4 /* TokenType.CurlyClose */)) {\n            // ${foo}\n            parent.appendChild(variable);\n            return true;\n        }\n        else {\n            // ${foo <- missing curly or colon\n            return this._backTo(token);\n        }\n    }\n    _parseTransform(parent) {\n        // ...<regex>/<format>/<options>}\n        const transform = new Transform();\n        let regexValue = '';\n        let regexOptions = '';\n        // (1) /regex\n        while (true) {\n            if (this._accept(6 /* TokenType.Forwardslash */)) {\n                break;\n            }\n            let escaped;\n            if (escaped = this._accept(5 /* TokenType.Backslash */, true)) {\n                escaped = this._accept(6 /* TokenType.Forwardslash */, true) || escaped;\n                regexValue += escaped;\n                continue;\n            }\n            if (this._token.type !== 14 /* TokenType.EOF */) {\n                regexValue += this._accept(undefined, true);\n                continue;\n            }\n            return false;\n        }\n        // (2) /format\n        while (true) {\n            if (this._accept(6 /* TokenType.Forwardslash */)) {\n                break;\n            }\n            let escaped;\n            if (escaped = this._accept(5 /* TokenType.Backslash */, true)) {\n                escaped = this._accept(5 /* TokenType.Backslash */, true) || this._accept(6 /* TokenType.Forwardslash */, true) || escaped;\n                transform.appendChild(new Text(escaped));\n                continue;\n            }\n            if (this._parseFormatString(transform) || this._parseAnything(transform)) {\n                continue;\n            }\n            return false;\n        }\n        // (3) /option\n        while (true) {\n            if (this._accept(4 /* TokenType.CurlyClose */)) {\n                break;\n            }\n            if (this._token.type !== 14 /* TokenType.EOF */) {\n                regexOptions += this._accept(undefined, true);\n                continue;\n            }\n            return false;\n        }\n        try {\n            transform.regexp = new RegExp(regexValue, regexOptions);\n        }\n        catch (e) {\n            // invalid regexp\n            return false;\n        }\n        parent.transform = transform;\n        return true;\n    }\n    _parseFormatString(parent) {\n        const token = this._token;\n        if (!this._accept(0 /* TokenType.Dollar */)) {\n            return false;\n        }\n        let complex = false;\n        if (this._accept(3 /* TokenType.CurlyOpen */)) {\n            complex = true;\n        }\n        const index = this._accept(8 /* TokenType.Int */, true);\n        if (!index) {\n            this._backTo(token);\n            return false;\n        }\n        else if (!complex) {\n            // $1\n            parent.appendChild(new FormatString(Number(index)));\n            return true;\n        }\n        else if (this._accept(4 /* TokenType.CurlyClose */)) {\n            // ${1}\n            parent.appendChild(new FormatString(Number(index)));\n            return true;\n        }\n        else if (!this._accept(1 /* TokenType.Colon */)) {\n            this._backTo(token);\n            return false;\n        }\n        if (this._accept(6 /* TokenType.Forwardslash */)) {\n            // ${1:/upcase}\n            const shorthand = this._accept(9 /* TokenType.VariableName */, true);\n            if (!shorthand || !this._accept(4 /* TokenType.CurlyClose */)) {\n                this._backTo(token);\n                return false;\n            }\n            else {\n                parent.appendChild(new FormatString(Number(index), shorthand));\n                return true;\n            }\n        }\n        else if (this._accept(11 /* TokenType.Plus */)) {\n            // ${1:+<if>}\n            const ifValue = this._until(4 /* TokenType.CurlyClose */);\n            if (ifValue) {\n                parent.appendChild(new FormatString(Number(index), undefined, ifValue, undefined));\n                return true;\n            }\n        }\n        else if (this._accept(12 /* TokenType.Dash */)) {\n            // ${2:-<else>}\n            const elseValue = this._until(4 /* TokenType.CurlyClose */);\n            if (elseValue) {\n                parent.appendChild(new FormatString(Number(index), undefined, undefined, elseValue));\n                return true;\n            }\n        }\n        else if (this._accept(13 /* TokenType.QuestionMark */)) {\n            // ${2:?<if>:<else>}\n            const ifValue = this._until(1 /* TokenType.Colon */);\n            if (ifValue) {\n                const elseValue = this._until(4 /* TokenType.CurlyClose */);\n                if (elseValue) {\n                    parent.appendChild(new FormatString(Number(index), undefined, ifValue, elseValue));\n                    return true;\n                }\n            }\n        }\n        else {\n            // ${1:<else>}\n            const elseValue = this._until(4 /* TokenType.CurlyClose */);\n            if (elseValue) {\n                parent.appendChild(new FormatString(Number(index), undefined, undefined, elseValue));\n                return true;\n            }\n        }\n        this._backTo(token);\n        return false;\n    }\n    _parseAnything(marker) {\n        if (this._token.type !== 14 /* TokenType.EOF */) {\n            marker.appendChild(new Text(this._scanner.tokenText(this._token)));\n            this._accept(undefined);\n            return true;\n        }\n        return false;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/snippet/browser/snippetSession.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .snippet-placeholder {\n\tmin-width: 2px;\n\toutline-style: solid;\n\toutline-width: 1px;\n\tbackground-color: var(--vscode-editor-snippetTabstopHighlightBackground, transparent);\n\toutline-color: var(--vscode-editor-snippetTabstopHighlightBorder, transparent);\n}\n\n.monaco-editor .finish-snippet-placeholder {\n\toutline-style: solid;\n\toutline-width: 1px;\n\tbackground-color: var(--vscode-editor-snippetFinalTabstopHighlightBackground, transparent);\n\toutline-color: var(--vscode-editor-snippetFinalTabstopHighlightBorder, transparent);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/snippet/browser/snippetSession.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar SnippetSession_1;\nimport { groupBy } from '../../../../base/common/arrays.js';\nimport { dispose } from '../../../../base/common/lifecycle.js';\nimport { getLeadingWhitespace } from '../../../../base/common/strings.js';\nimport './snippetSession.css';\nimport { EditOperation } from '../../../common/core/editOperation.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { ILabelService } from '../../../../platform/label/common/label.js';\nimport { IWorkspaceContextService } from '../../../../platform/workspace/common/workspace.js';\nimport { Choice, Placeholder, SnippetParser, Text, TextmateSnippet } from './snippetParser.js';\nimport { ClipboardBasedVariableResolver, CommentBasedVariableResolver, CompositeSnippetVariableResolver, ModelBasedVariableResolver, RandomBasedVariableResolver, SelectionBasedVariableResolver, TimeBasedVariableResolver, WorkspaceBasedVariableResolver } from './snippetVariables.js';\nexport class OneSnippet {\n    constructor(_editor, _snippet, _snippetLineLeadingWhitespace) {\n        this._editor = _editor;\n        this._snippet = _snippet;\n        this._snippetLineLeadingWhitespace = _snippetLineLeadingWhitespace;\n        this._offset = -1;\n        this._nestingLevel = 1;\n        this._placeholderGroups = groupBy(_snippet.placeholders, Placeholder.compareByIndex);\n        this._placeholderGroupsIdx = -1;\n    }\n    initialize(textChange) {\n        this._offset = textChange.newPosition;\n    }\n    dispose() {\n        if (this._placeholderDecorations) {\n            this._editor.removeDecorations([...this._placeholderDecorations.values()]);\n        }\n        this._placeholderGroups.length = 0;\n    }\n    _initDecorations() {\n        if (this._offset === -1) {\n            throw new Error(`Snippet not initialized!`);\n        }\n        if (this._placeholderDecorations) {\n            // already initialized\n            return;\n        }\n        this._placeholderDecorations = new Map();\n        const model = this._editor.getModel();\n        this._editor.changeDecorations(accessor => {\n            // create a decoration for each placeholder\n            for (const placeholder of this._snippet.placeholders) {\n                const placeholderOffset = this._snippet.offset(placeholder);\n                const placeholderLen = this._snippet.fullLen(placeholder);\n                const range = Range.fromPositions(model.getPositionAt(this._offset + placeholderOffset), model.getPositionAt(this._offset + placeholderOffset + placeholderLen));\n                const options = placeholder.isFinalTabstop ? OneSnippet._decor.inactiveFinal : OneSnippet._decor.inactive;\n                const handle = accessor.addDecoration(range, options);\n                this._placeholderDecorations.set(placeholder, handle);\n            }\n        });\n    }\n    move(fwd) {\n        if (!this._editor.hasModel()) {\n            return [];\n        }\n        this._initDecorations();\n        // Transform placeholder text if necessary\n        if (this._placeholderGroupsIdx >= 0) {\n            const operations = [];\n            for (const placeholder of this._placeholderGroups[this._placeholderGroupsIdx]) {\n                // Check if the placeholder has a transformation\n                if (placeholder.transform) {\n                    const id = this._placeholderDecorations.get(placeholder);\n                    const range = this._editor.getModel().getDecorationRange(id);\n                    const currentValue = this._editor.getModel().getValueInRange(range);\n                    const transformedValueLines = placeholder.transform.resolve(currentValue).split(/\\r\\n|\\r|\\n/);\n                    // fix indentation for transformed lines\n                    for (let i = 1; i < transformedValueLines.length; i++) {\n                        transformedValueLines[i] = this._editor.getModel().normalizeIndentation(this._snippetLineLeadingWhitespace + transformedValueLines[i]);\n                    }\n                    operations.push(EditOperation.replace(range, transformedValueLines.join(this._editor.getModel().getEOL())));\n                }\n            }\n            if (operations.length > 0) {\n                this._editor.executeEdits('snippet.placeholderTransform', operations);\n            }\n        }\n        let couldSkipThisPlaceholder = false;\n        if (fwd === true && this._placeholderGroupsIdx < this._placeholderGroups.length - 1) {\n            this._placeholderGroupsIdx += 1;\n            couldSkipThisPlaceholder = true;\n        }\n        else if (fwd === false && this._placeholderGroupsIdx > 0) {\n            this._placeholderGroupsIdx -= 1;\n            couldSkipThisPlaceholder = true;\n        }\n        else {\n            // the selection of the current placeholder might\n            // not acurate any more -> simply restore it\n        }\n        const newSelections = this._editor.getModel().changeDecorations(accessor => {\n            const activePlaceholders = new Set();\n            // change stickiness to always grow when typing at its edges\n            // because these decorations represent the currently active\n            // tabstop.\n            // Special case #1: reaching the final tabstop\n            // Special case #2: placeholders enclosing active placeholders\n            const selections = [];\n            for (const placeholder of this._placeholderGroups[this._placeholderGroupsIdx]) {\n                const id = this._placeholderDecorations.get(placeholder);\n                const range = this._editor.getModel().getDecorationRange(id);\n                selections.push(new Selection(range.startLineNumber, range.startColumn, range.endLineNumber, range.endColumn));\n                // consider to skip this placeholder index when the decoration\n                // range is empty but when the placeholder wasn't. that's a strong\n                // hint that the placeholder has been deleted. (all placeholder must match this)\n                couldSkipThisPlaceholder = couldSkipThisPlaceholder && this._hasPlaceholderBeenCollapsed(placeholder);\n                accessor.changeDecorationOptions(id, placeholder.isFinalTabstop ? OneSnippet._decor.activeFinal : OneSnippet._decor.active);\n                activePlaceholders.add(placeholder);\n                for (const enclosingPlaceholder of this._snippet.enclosingPlaceholders(placeholder)) {\n                    const id = this._placeholderDecorations.get(enclosingPlaceholder);\n                    accessor.changeDecorationOptions(id, enclosingPlaceholder.isFinalTabstop ? OneSnippet._decor.activeFinal : OneSnippet._decor.active);\n                    activePlaceholders.add(enclosingPlaceholder);\n                }\n            }\n            // change stickness to never grow when typing at its edges\n            // so that in-active tabstops never grow\n            for (const [placeholder, id] of this._placeholderDecorations) {\n                if (!activePlaceholders.has(placeholder)) {\n                    accessor.changeDecorationOptions(id, placeholder.isFinalTabstop ? OneSnippet._decor.inactiveFinal : OneSnippet._decor.inactive);\n                }\n            }\n            return selections;\n        });\n        return !couldSkipThisPlaceholder ? newSelections !== null && newSelections !== void 0 ? newSelections : [] : this.move(fwd);\n    }\n    _hasPlaceholderBeenCollapsed(placeholder) {\n        // A placeholder is empty when it wasn't empty when authored but\n        // when its tracking decoration is empty. This also applies to all\n        // potential parent placeholders\n        let marker = placeholder;\n        while (marker) {\n            if (marker instanceof Placeholder) {\n                const id = this._placeholderDecorations.get(marker);\n                const range = this._editor.getModel().getDecorationRange(id);\n                if (range.isEmpty() && marker.toString().length > 0) {\n                    return true;\n                }\n            }\n            marker = marker.parent;\n        }\n        return false;\n    }\n    get isAtFirstPlaceholder() {\n        return this._placeholderGroupsIdx <= 0 || this._placeholderGroups.length === 0;\n    }\n    get isAtLastPlaceholder() {\n        return this._placeholderGroupsIdx === this._placeholderGroups.length - 1;\n    }\n    get hasPlaceholder() {\n        return this._snippet.placeholders.length > 0;\n    }\n    /**\n     * A snippet is trivial when it has no placeholder or only a final placeholder at\n     * its very end\n     */\n    get isTrivialSnippet() {\n        if (this._snippet.placeholders.length === 0) {\n            return true;\n        }\n        if (this._snippet.placeholders.length === 1) {\n            const [placeholder] = this._snippet.placeholders;\n            if (placeholder.isFinalTabstop) {\n                if (this._snippet.rightMostDescendant === placeholder) {\n                    return true;\n                }\n            }\n        }\n        return false;\n    }\n    computePossibleSelections() {\n        const result = new Map();\n        for (const placeholdersWithEqualIndex of this._placeholderGroups) {\n            let ranges;\n            for (const placeholder of placeholdersWithEqualIndex) {\n                if (placeholder.isFinalTabstop) {\n                    // ignore those\n                    break;\n                }\n                if (!ranges) {\n                    ranges = [];\n                    result.set(placeholder.index, ranges);\n                }\n                const id = this._placeholderDecorations.get(placeholder);\n                const range = this._editor.getModel().getDecorationRange(id);\n                if (!range) {\n                    // one of the placeholder lost its decoration and\n                    // therefore we bail out and pretend the placeholder\n                    // (with its mirrors) doesn't exist anymore.\n                    result.delete(placeholder.index);\n                    break;\n                }\n                ranges.push(range);\n            }\n        }\n        return result;\n    }\n    get activeChoice() {\n        if (!this._placeholderDecorations) {\n            return undefined;\n        }\n        const placeholder = this._placeholderGroups[this._placeholderGroupsIdx][0];\n        if (!(placeholder === null || placeholder === void 0 ? void 0 : placeholder.choice)) {\n            return undefined;\n        }\n        const id = this._placeholderDecorations.get(placeholder);\n        if (!id) {\n            return undefined;\n        }\n        const range = this._editor.getModel().getDecorationRange(id);\n        if (!range) {\n            return undefined;\n        }\n        return { range, choice: placeholder.choice };\n    }\n    get hasChoice() {\n        let result = false;\n        this._snippet.walk(marker => {\n            result = marker instanceof Choice;\n            return !result;\n        });\n        return result;\n    }\n    merge(others) {\n        const model = this._editor.getModel();\n        this._nestingLevel *= 10;\n        this._editor.changeDecorations(accessor => {\n            // For each active placeholder take one snippet and merge it\n            // in that the placeholder (can be many for `$1foo$1foo`). Because\n            // everything is sorted by editor selection we can simply remove\n            // elements from the beginning of the array\n            for (const placeholder of this._placeholderGroups[this._placeholderGroupsIdx]) {\n                const nested = others.shift();\n                console.assert(nested._offset !== -1);\n                console.assert(!nested._placeholderDecorations);\n                // Massage placeholder-indicies of the nested snippet to be\n                // sorted right after the insertion point. This ensures we move\n                // through the placeholders in the correct order\n                const indexLastPlaceholder = nested._snippet.placeholderInfo.last.index;\n                for (const nestedPlaceholder of nested._snippet.placeholderInfo.all) {\n                    if (nestedPlaceholder.isFinalTabstop) {\n                        nestedPlaceholder.index = placeholder.index + ((indexLastPlaceholder + 1) / this._nestingLevel);\n                    }\n                    else {\n                        nestedPlaceholder.index = placeholder.index + (nestedPlaceholder.index / this._nestingLevel);\n                    }\n                }\n                this._snippet.replace(placeholder, nested._snippet.children);\n                // Remove the placeholder at which position are inserting\n                // the snippet and also remove its decoration.\n                const id = this._placeholderDecorations.get(placeholder);\n                accessor.removeDecoration(id);\n                this._placeholderDecorations.delete(placeholder);\n                // For each *new* placeholder we create decoration to monitor\n                // how and if it grows/shrinks.\n                for (const placeholder of nested._snippet.placeholders) {\n                    const placeholderOffset = nested._snippet.offset(placeholder);\n                    const placeholderLen = nested._snippet.fullLen(placeholder);\n                    const range = Range.fromPositions(model.getPositionAt(nested._offset + placeholderOffset), model.getPositionAt(nested._offset + placeholderOffset + placeholderLen));\n                    const handle = accessor.addDecoration(range, OneSnippet._decor.inactive);\n                    this._placeholderDecorations.set(placeholder, handle);\n                }\n            }\n            // Last, re-create the placeholder groups by sorting placeholders by their index.\n            this._placeholderGroups = groupBy(this._snippet.placeholders, Placeholder.compareByIndex);\n        });\n    }\n}\nOneSnippet._decor = {\n    active: ModelDecorationOptions.register({ description: 'snippet-placeholder-1', stickiness: 0 /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */, className: 'snippet-placeholder' }),\n    inactive: ModelDecorationOptions.register({ description: 'snippet-placeholder-2', stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */, className: 'snippet-placeholder' }),\n    activeFinal: ModelDecorationOptions.register({ description: 'snippet-placeholder-3', stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */, className: 'finish-snippet-placeholder' }),\n    inactiveFinal: ModelDecorationOptions.register({ description: 'snippet-placeholder-4', stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */, className: 'finish-snippet-placeholder' }),\n};\nconst _defaultOptions = {\n    overwriteBefore: 0,\n    overwriteAfter: 0,\n    adjustWhitespace: true,\n    clipboardText: undefined,\n    overtypingCapturer: undefined\n};\nlet SnippetSession = SnippetSession_1 = class SnippetSession {\n    static adjustWhitespace(model, position, adjustIndentation, snippet, filter) {\n        const line = model.getLineContent(position.lineNumber);\n        const lineLeadingWhitespace = getLeadingWhitespace(line, 0, position.column - 1);\n        // the snippet as inserted\n        let snippetTextString;\n        snippet.walk(marker => {\n            // all text elements that are not inside choice\n            if (!(marker instanceof Text) || marker.parent instanceof Choice) {\n                return true;\n            }\n            // check with filter (iff provided)\n            if (filter && !filter.has(marker)) {\n                return true;\n            }\n            const lines = marker.value.split(/\\r\\n|\\r|\\n/);\n            if (adjustIndentation) {\n                // adjust indentation of snippet test\n                // -the snippet-start doesn't get extra-indented (lineLeadingWhitespace), only normalized\n                // -all N+1 lines get extra-indented and normalized\n                // -the text start get extra-indented and normalized when following a linebreak\n                const offset = snippet.offset(marker);\n                if (offset === 0) {\n                    // snippet start\n                    lines[0] = model.normalizeIndentation(lines[0]);\n                }\n                else {\n                    // check if text start is after a linebreak\n                    snippetTextString = snippetTextString !== null && snippetTextString !== void 0 ? snippetTextString : snippet.toString();\n                    const prevChar = snippetTextString.charCodeAt(offset - 1);\n                    if (prevChar === 10 /* CharCode.LineFeed */ || prevChar === 13 /* CharCode.CarriageReturn */) {\n                        lines[0] = model.normalizeIndentation(lineLeadingWhitespace + lines[0]);\n                    }\n                }\n                for (let i = 1; i < lines.length; i++) {\n                    lines[i] = model.normalizeIndentation(lineLeadingWhitespace + lines[i]);\n                }\n            }\n            const newValue = lines.join(model.getEOL());\n            if (newValue !== marker.value) {\n                marker.parent.replace(marker, [new Text(newValue)]);\n                snippetTextString = undefined;\n            }\n            return true;\n        });\n        return lineLeadingWhitespace;\n    }\n    static adjustSelection(model, selection, overwriteBefore, overwriteAfter) {\n        if (overwriteBefore !== 0 || overwriteAfter !== 0) {\n            // overwrite[Before|After] is compute using the position, not the whole\n            // selection. therefore we adjust the selection around that position\n            const { positionLineNumber, positionColumn } = selection;\n            const positionColumnBefore = positionColumn - overwriteBefore;\n            const positionColumnAfter = positionColumn + overwriteAfter;\n            const range = model.validateRange({\n                startLineNumber: positionLineNumber,\n                startColumn: positionColumnBefore,\n                endLineNumber: positionLineNumber,\n                endColumn: positionColumnAfter\n            });\n            selection = Selection.createWithDirection(range.startLineNumber, range.startColumn, range.endLineNumber, range.endColumn, selection.getDirection());\n        }\n        return selection;\n    }\n    static createEditsAndSnippetsFromSelections(editor, template, overwriteBefore, overwriteAfter, enforceFinalTabstop, adjustWhitespace, clipboardText, overtypingCapturer, languageConfigurationService) {\n        const edits = [];\n        const snippets = [];\n        if (!editor.hasModel()) {\n            return { edits, snippets };\n        }\n        const model = editor.getModel();\n        const workspaceService = editor.invokeWithinContext(accessor => accessor.get(IWorkspaceContextService));\n        const modelBasedVariableResolver = editor.invokeWithinContext(accessor => new ModelBasedVariableResolver(accessor.get(ILabelService), model));\n        const readClipboardText = () => clipboardText;\n        // know what text the overwrite[Before|After] extensions\n        // of the primary curser have selected because only when\n        // secondary selections extend to the same text we can grow them\n        const firstBeforeText = model.getValueInRange(SnippetSession_1.adjustSelection(model, editor.getSelection(), overwriteBefore, 0));\n        const firstAfterText = model.getValueInRange(SnippetSession_1.adjustSelection(model, editor.getSelection(), 0, overwriteAfter));\n        // remember the first non-whitespace column to decide if\n        // `keepWhitespace` should be overruled for secondary selections\n        const firstLineFirstNonWhitespace = model.getLineFirstNonWhitespaceColumn(editor.getSelection().positionLineNumber);\n        // sort selections by their start position but remeber\n        // the original index. that allows you to create correct\n        // offset-based selection logic without changing the\n        // primary selection\n        const indexedSelections = editor.getSelections()\n            .map((selection, idx) => ({ selection, idx }))\n            .sort((a, b) => Range.compareRangesUsingStarts(a.selection, b.selection));\n        for (const { selection, idx } of indexedSelections) {\n            // extend selection with the `overwriteBefore` and `overwriteAfter` and then\n            // compare if this matches the extensions of the primary selection\n            let extensionBefore = SnippetSession_1.adjustSelection(model, selection, overwriteBefore, 0);\n            let extensionAfter = SnippetSession_1.adjustSelection(model, selection, 0, overwriteAfter);\n            if (firstBeforeText !== model.getValueInRange(extensionBefore)) {\n                extensionBefore = selection;\n            }\n            if (firstAfterText !== model.getValueInRange(extensionAfter)) {\n                extensionAfter = selection;\n            }\n            // merge the before and after selection into one\n            const snippetSelection = selection\n                .setStartPosition(extensionBefore.startLineNumber, extensionBefore.startColumn)\n                .setEndPosition(extensionAfter.endLineNumber, extensionAfter.endColumn);\n            const snippet = new SnippetParser().parse(template, true, enforceFinalTabstop);\n            // adjust the template string to match the indentation and\n            // whitespace rules of this insert location (can be different for each cursor)\n            // happens when being asked for (default) or when this is a secondary\n            // cursor and the leading whitespace is different\n            const start = snippetSelection.getStartPosition();\n            const snippetLineLeadingWhitespace = SnippetSession_1.adjustWhitespace(model, start, adjustWhitespace || (idx > 0 && firstLineFirstNonWhitespace !== model.getLineFirstNonWhitespaceColumn(selection.positionLineNumber)), snippet);\n            snippet.resolveVariables(new CompositeSnippetVariableResolver([\n                modelBasedVariableResolver,\n                new ClipboardBasedVariableResolver(readClipboardText, idx, indexedSelections.length, editor.getOption(79 /* EditorOption.multiCursorPaste */) === 'spread'),\n                new SelectionBasedVariableResolver(model, selection, idx, overtypingCapturer),\n                new CommentBasedVariableResolver(model, selection, languageConfigurationService),\n                new TimeBasedVariableResolver,\n                new WorkspaceBasedVariableResolver(workspaceService),\n                new RandomBasedVariableResolver,\n            ]));\n            // store snippets with the index of their originating selection.\n            // that ensures the primiary cursor stays primary despite not being\n            // the one with lowest start position\n            edits[idx] = EditOperation.replace(snippetSelection, snippet.toString());\n            edits[idx].identifier = { major: idx, minor: 0 }; // mark the edit so only our undo edits will be used to generate end cursors\n            edits[idx]._isTracked = true;\n            snippets[idx] = new OneSnippet(editor, snippet, snippetLineLeadingWhitespace);\n        }\n        return { edits, snippets };\n    }\n    static createEditsAndSnippetsFromEdits(editor, snippetEdits, enforceFinalTabstop, adjustWhitespace, clipboardText, overtypingCapturer, languageConfigurationService) {\n        if (!editor.hasModel() || snippetEdits.length === 0) {\n            return { edits: [], snippets: [] };\n        }\n        const edits = [];\n        const model = editor.getModel();\n        const parser = new SnippetParser();\n        const snippet = new TextmateSnippet();\n        // snippet variables resolver\n        const resolver = new CompositeSnippetVariableResolver([\n            editor.invokeWithinContext(accessor => new ModelBasedVariableResolver(accessor.get(ILabelService), model)),\n            new ClipboardBasedVariableResolver(() => clipboardText, 0, editor.getSelections().length, editor.getOption(79 /* EditorOption.multiCursorPaste */) === 'spread'),\n            new SelectionBasedVariableResolver(model, editor.getSelection(), 0, overtypingCapturer),\n            new CommentBasedVariableResolver(model, editor.getSelection(), languageConfigurationService),\n            new TimeBasedVariableResolver,\n            new WorkspaceBasedVariableResolver(editor.invokeWithinContext(accessor => accessor.get(IWorkspaceContextService))),\n            new RandomBasedVariableResolver,\n        ]);\n        //\n        snippetEdits = snippetEdits.sort((a, b) => Range.compareRangesUsingStarts(a.range, b.range));\n        let offset = 0;\n        for (let i = 0; i < snippetEdits.length; i++) {\n            const { range, template } = snippetEdits[i];\n            // gaps between snippet edits are appended as text nodes. this\n            // ensures placeholder-offsets are later correct\n            if (i > 0) {\n                const lastRange = snippetEdits[i - 1].range;\n                const textRange = Range.fromPositions(lastRange.getEndPosition(), range.getStartPosition());\n                const textNode = new Text(model.getValueInRange(textRange));\n                snippet.appendChild(textNode);\n                offset += textNode.value.length;\n            }\n            const newNodes = parser.parseFragment(template, snippet);\n            SnippetSession_1.adjustWhitespace(model, range.getStartPosition(), true, snippet, new Set(newNodes));\n            snippet.resolveVariables(resolver);\n            const snippetText = snippet.toString();\n            const snippetFragmentText = snippetText.slice(offset);\n            offset = snippetText.length;\n            // make edit\n            const edit = EditOperation.replace(range, snippetFragmentText);\n            edit.identifier = { major: i, minor: 0 }; // mark the edit so only our undo edits will be used to generate end cursors\n            edit._isTracked = true;\n            edits.push(edit);\n        }\n        //\n        parser.ensureFinalTabstop(snippet, enforceFinalTabstop, true);\n        return {\n            edits,\n            snippets: [new OneSnippet(editor, snippet, '')]\n        };\n    }\n    constructor(_editor, _template, _options = _defaultOptions, _languageConfigurationService) {\n        this._editor = _editor;\n        this._template = _template;\n        this._options = _options;\n        this._languageConfigurationService = _languageConfigurationService;\n        this._templateMerges = [];\n        this._snippets = [];\n    }\n    dispose() {\n        dispose(this._snippets);\n    }\n    _logInfo() {\n        return `template=\"${this._template}\", merged_templates=\"${this._templateMerges.join(' -> ')}\"`;\n    }\n    insert() {\n        if (!this._editor.hasModel()) {\n            return;\n        }\n        // make insert edit and start with first selections\n        const { edits, snippets } = typeof this._template === 'string'\n            ? SnippetSession_1.createEditsAndSnippetsFromSelections(this._editor, this._template, this._options.overwriteBefore, this._options.overwriteAfter, false, this._options.adjustWhitespace, this._options.clipboardText, this._options.overtypingCapturer, this._languageConfigurationService)\n            : SnippetSession_1.createEditsAndSnippetsFromEdits(this._editor, this._template, false, this._options.adjustWhitespace, this._options.clipboardText, this._options.overtypingCapturer, this._languageConfigurationService);\n        this._snippets = snippets;\n        this._editor.executeEdits('snippet', edits, _undoEdits => {\n            // Sometimes, the text buffer will remove automatic whitespace when doing any edits,\n            // so we need to look only at the undo edits relevant for us.\n            // Our edits have an identifier set so that's how we can distinguish them\n            const undoEdits = _undoEdits.filter(edit => !!edit.identifier);\n            for (let idx = 0; idx < snippets.length; idx++) {\n                snippets[idx].initialize(undoEdits[idx].textChange);\n            }\n            if (this._snippets[0].hasPlaceholder) {\n                return this._move(true);\n            }\n            else {\n                return undoEdits\n                    .map(edit => Selection.fromPositions(edit.range.getEndPosition()));\n            }\n        });\n        this._editor.revealRange(this._editor.getSelections()[0]);\n    }\n    merge(template, options = _defaultOptions) {\n        if (!this._editor.hasModel()) {\n            return;\n        }\n        this._templateMerges.push([this._snippets[0]._nestingLevel, this._snippets[0]._placeholderGroupsIdx, template]);\n        const { edits, snippets } = SnippetSession_1.createEditsAndSnippetsFromSelections(this._editor, template, options.overwriteBefore, options.overwriteAfter, true, options.adjustWhitespace, options.clipboardText, options.overtypingCapturer, this._languageConfigurationService);\n        this._editor.executeEdits('snippet', edits, _undoEdits => {\n            // Sometimes, the text buffer will remove automatic whitespace when doing any edits,\n            // so we need to look only at the undo edits relevant for us.\n            // Our edits have an identifier set so that's how we can distinguish them\n            const undoEdits = _undoEdits.filter(edit => !!edit.identifier);\n            for (let idx = 0; idx < snippets.length; idx++) {\n                snippets[idx].initialize(undoEdits[idx].textChange);\n            }\n            // Trivial snippets have no placeholder or are just the final placeholder. That means they\n            // are just text insertions and we don't need to merge the nested snippet into the existing\n            // snippet\n            const isTrivialSnippet = snippets[0].isTrivialSnippet;\n            if (!isTrivialSnippet) {\n                for (const snippet of this._snippets) {\n                    snippet.merge(snippets);\n                }\n                console.assert(snippets.length === 0);\n            }\n            if (this._snippets[0].hasPlaceholder && !isTrivialSnippet) {\n                return this._move(undefined);\n            }\n            else {\n                return undoEdits.map(edit => Selection.fromPositions(edit.range.getEndPosition()));\n            }\n        });\n    }\n    next() {\n        const newSelections = this._move(true);\n        this._editor.setSelections(newSelections);\n        this._editor.revealPositionInCenterIfOutsideViewport(newSelections[0].getPosition());\n    }\n    prev() {\n        const newSelections = this._move(false);\n        this._editor.setSelections(newSelections);\n        this._editor.revealPositionInCenterIfOutsideViewport(newSelections[0].getPosition());\n    }\n    _move(fwd) {\n        const selections = [];\n        for (const snippet of this._snippets) {\n            const oneSelection = snippet.move(fwd);\n            selections.push(...oneSelection);\n        }\n        return selections;\n    }\n    get isAtFirstPlaceholder() {\n        return this._snippets[0].isAtFirstPlaceholder;\n    }\n    get isAtLastPlaceholder() {\n        return this._snippets[0].isAtLastPlaceholder;\n    }\n    get hasPlaceholder() {\n        return this._snippets[0].hasPlaceholder;\n    }\n    get hasChoice() {\n        return this._snippets[0].hasChoice;\n    }\n    get activeChoice() {\n        return this._snippets[0].activeChoice;\n    }\n    isSelectionWithinPlaceholders() {\n        if (!this.hasPlaceholder) {\n            return false;\n        }\n        const selections = this._editor.getSelections();\n        if (selections.length < this._snippets.length) {\n            // this means we started snippet mode with N\n            // selections and have M (N > M) selections.\n            // So one snippet is without selection -> cancel\n            return false;\n        }\n        const allPossibleSelections = new Map();\n        for (const snippet of this._snippets) {\n            const possibleSelections = snippet.computePossibleSelections();\n            // for the first snippet find the placeholder (and its ranges)\n            // that contain at least one selection. for all remaining snippets\n            // the same placeholder (and their ranges) must be used.\n            if (allPossibleSelections.size === 0) {\n                for (const [index, ranges] of possibleSelections) {\n                    ranges.sort(Range.compareRangesUsingStarts);\n                    for (const selection of selections) {\n                        if (ranges[0].containsRange(selection)) {\n                            allPossibleSelections.set(index, []);\n                            break;\n                        }\n                    }\n                }\n            }\n            if (allPossibleSelections.size === 0) {\n                // return false if we couldn't associate a selection to\n                // this (the first) snippet\n                return false;\n            }\n            // add selections from 'this' snippet so that we know all\n            // selections for this placeholder\n            allPossibleSelections.forEach((array, index) => {\n                array.push(...possibleSelections.get(index));\n            });\n        }\n        // sort selections (and later placeholder-ranges). then walk both\n        // arrays and make sure the placeholder-ranges contain the corresponding\n        // selection\n        selections.sort(Range.compareRangesUsingStarts);\n        for (const [index, ranges] of allPossibleSelections) {\n            if (ranges.length !== selections.length) {\n                allPossibleSelections.delete(index);\n                continue;\n            }\n            ranges.sort(Range.compareRangesUsingStarts);\n            for (let i = 0; i < ranges.length; i++) {\n                if (!ranges[i].containsRange(selections[i])) {\n                    allPossibleSelections.delete(index);\n                    continue;\n                }\n            }\n        }\n        // from all possible selections we have deleted those\n        // that don't match with the current selection. if we don't\n        // have any left, we don't have a selection anymore\n        return allPossibleSelections.size > 0;\n    }\n};\nSnippetSession = SnippetSession_1 = __decorate([\n    __param(3, ILanguageConfigurationService)\n], SnippetSession);\nexport { SnippetSession };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/snippet/browser/snippetVariables.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { normalizeDriveLetter } from '../../../../base/common/labels.js';\nimport * as path from '../../../../base/common/path.js';\nimport { dirname } from '../../../../base/common/resources.js';\nimport { commonPrefixLength, getLeadingWhitespace, isFalsyOrWhitespace, splitLines } from '../../../../base/common/strings.js';\nimport { generateUuid } from '../../../../base/common/uuid.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { Text } from './snippetParser.js';\nimport * as nls from '../../../../nls.js';\nimport { WORKSPACE_EXTENSION, isSingleFolderWorkspaceIdentifier, toWorkspaceIdentifier, isEmptyWorkspaceIdentifier } from '../../../../platform/workspace/common/workspace.js';\nexport const KnownSnippetVariableNames = Object.freeze({\n    'CURRENT_YEAR': true,\n    'CURRENT_YEAR_SHORT': true,\n    'CURRENT_MONTH': true,\n    'CURRENT_DATE': true,\n    'CURRENT_HOUR': true,\n    'CURRENT_MINUTE': true,\n    'CURRENT_SECOND': true,\n    'CURRENT_DAY_NAME': true,\n    'CURRENT_DAY_NAME_SHORT': true,\n    'CURRENT_MONTH_NAME': true,\n    'CURRENT_MONTH_NAME_SHORT': true,\n    'CURRENT_SECONDS_UNIX': true,\n    'CURRENT_TIMEZONE_OFFSET': true,\n    'SELECTION': true,\n    'CLIPBOARD': true,\n    'TM_SELECTED_TEXT': true,\n    'TM_CURRENT_LINE': true,\n    'TM_CURRENT_WORD': true,\n    'TM_LINE_INDEX': true,\n    'TM_LINE_NUMBER': true,\n    'TM_FILENAME': true,\n    'TM_FILENAME_BASE': true,\n    'TM_DIRECTORY': true,\n    'TM_FILEPATH': true,\n    'CURSOR_INDEX': true, // 0-offset\n    'CURSOR_NUMBER': true, // 1-offset\n    'RELATIVE_FILEPATH': true,\n    'BLOCK_COMMENT_START': true,\n    'BLOCK_COMMENT_END': true,\n    'LINE_COMMENT': true,\n    'WORKSPACE_NAME': true,\n    'WORKSPACE_FOLDER': true,\n    'RANDOM': true,\n    'RANDOM_HEX': true,\n    'UUID': true\n});\nexport class CompositeSnippetVariableResolver {\n    constructor(_delegates) {\n        this._delegates = _delegates;\n        //\n    }\n    resolve(variable) {\n        for (const delegate of this._delegates) {\n            const value = delegate.resolve(variable);\n            if (value !== undefined) {\n                return value;\n            }\n        }\n        return undefined;\n    }\n}\nexport class SelectionBasedVariableResolver {\n    constructor(_model, _selection, _selectionIdx, _overtypingCapturer) {\n        this._model = _model;\n        this._selection = _selection;\n        this._selectionIdx = _selectionIdx;\n        this._overtypingCapturer = _overtypingCapturer;\n        //\n    }\n    resolve(variable) {\n        const { name } = variable;\n        if (name === 'SELECTION' || name === 'TM_SELECTED_TEXT') {\n            let value = this._model.getValueInRange(this._selection) || undefined;\n            let isMultiline = this._selection.startLineNumber !== this._selection.endLineNumber;\n            // If there was no selected text, try to get last overtyped text\n            if (!value && this._overtypingCapturer) {\n                const info = this._overtypingCapturer.getLastOvertypedInfo(this._selectionIdx);\n                if (info) {\n                    value = info.value;\n                    isMultiline = info.multiline;\n                }\n            }\n            if (value && isMultiline && variable.snippet) {\n                // Selection is a multiline string which we indentation we now\n                // need to adjust. We compare the indentation of this variable\n                // with the indentation at the editor position and add potential\n                // extra indentation to the value\n                const line = this._model.getLineContent(this._selection.startLineNumber);\n                const lineLeadingWhitespace = getLeadingWhitespace(line, 0, this._selection.startColumn - 1);\n                let varLeadingWhitespace = lineLeadingWhitespace;\n                variable.snippet.walk(marker => {\n                    if (marker === variable) {\n                        return false;\n                    }\n                    if (marker instanceof Text) {\n                        varLeadingWhitespace = getLeadingWhitespace(splitLines(marker.value).pop());\n                    }\n                    return true;\n                });\n                const whitespaceCommonLength = commonPrefixLength(varLeadingWhitespace, lineLeadingWhitespace);\n                value = value.replace(/(\\r\\n|\\r|\\n)(.*)/g, (m, newline, rest) => `${newline}${varLeadingWhitespace.substr(whitespaceCommonLength)}${rest}`);\n            }\n            return value;\n        }\n        else if (name === 'TM_CURRENT_LINE') {\n            return this._model.getLineContent(this._selection.positionLineNumber);\n        }\n        else if (name === 'TM_CURRENT_WORD') {\n            const info = this._model.getWordAtPosition({\n                lineNumber: this._selection.positionLineNumber,\n                column: this._selection.positionColumn\n            });\n            return info && info.word || undefined;\n        }\n        else if (name === 'TM_LINE_INDEX') {\n            return String(this._selection.positionLineNumber - 1);\n        }\n        else if (name === 'TM_LINE_NUMBER') {\n            return String(this._selection.positionLineNumber);\n        }\n        else if (name === 'CURSOR_INDEX') {\n            return String(this._selectionIdx);\n        }\n        else if (name === 'CURSOR_NUMBER') {\n            return String(this._selectionIdx + 1);\n        }\n        return undefined;\n    }\n}\nexport class ModelBasedVariableResolver {\n    constructor(_labelService, _model) {\n        this._labelService = _labelService;\n        this._model = _model;\n        //\n    }\n    resolve(variable) {\n        const { name } = variable;\n        if (name === 'TM_FILENAME') {\n            return path.basename(this._model.uri.fsPath);\n        }\n        else if (name === 'TM_FILENAME_BASE') {\n            const name = path.basename(this._model.uri.fsPath);\n            const idx = name.lastIndexOf('.');\n            if (idx <= 0) {\n                return name;\n            }\n            else {\n                return name.slice(0, idx);\n            }\n        }\n        else if (name === 'TM_DIRECTORY') {\n            if (path.dirname(this._model.uri.fsPath) === '.') {\n                return '';\n            }\n            return this._labelService.getUriLabel(dirname(this._model.uri));\n        }\n        else if (name === 'TM_FILEPATH') {\n            return this._labelService.getUriLabel(this._model.uri);\n        }\n        else if (name === 'RELATIVE_FILEPATH') {\n            return this._labelService.getUriLabel(this._model.uri, { relative: true, noPrefix: true });\n        }\n        return undefined;\n    }\n}\nexport class ClipboardBasedVariableResolver {\n    constructor(_readClipboardText, _selectionIdx, _selectionCount, _spread) {\n        this._readClipboardText = _readClipboardText;\n        this._selectionIdx = _selectionIdx;\n        this._selectionCount = _selectionCount;\n        this._spread = _spread;\n        //\n    }\n    resolve(variable) {\n        if (variable.name !== 'CLIPBOARD') {\n            return undefined;\n        }\n        const clipboardText = this._readClipboardText();\n        if (!clipboardText) {\n            return undefined;\n        }\n        // `spread` is assigning each cursor a line of the clipboard\n        // text whenever there the line count equals the cursor count\n        // and when enabled\n        if (this._spread) {\n            const lines = clipboardText.split(/\\r\\n|\\n|\\r/).filter(s => !isFalsyOrWhitespace(s));\n            if (lines.length === this._selectionCount) {\n                return lines[this._selectionIdx];\n            }\n        }\n        return clipboardText;\n    }\n}\nlet CommentBasedVariableResolver = class CommentBasedVariableResolver {\n    constructor(_model, _selection, _languageConfigurationService) {\n        this._model = _model;\n        this._selection = _selection;\n        this._languageConfigurationService = _languageConfigurationService;\n        //\n    }\n    resolve(variable) {\n        const { name } = variable;\n        const langId = this._model.getLanguageIdAtPosition(this._selection.selectionStartLineNumber, this._selection.selectionStartColumn);\n        const config = this._languageConfigurationService.getLanguageConfiguration(langId).comments;\n        if (!config) {\n            return undefined;\n        }\n        if (name === 'LINE_COMMENT') {\n            return config.lineCommentToken || undefined;\n        }\n        else if (name === 'BLOCK_COMMENT_START') {\n            return config.blockCommentStartToken || undefined;\n        }\n        else if (name === 'BLOCK_COMMENT_END') {\n            return config.blockCommentEndToken || undefined;\n        }\n        return undefined;\n    }\n};\nCommentBasedVariableResolver = __decorate([\n    __param(2, ILanguageConfigurationService)\n], CommentBasedVariableResolver);\nexport { CommentBasedVariableResolver };\nexport class TimeBasedVariableResolver {\n    constructor() {\n        this._date = new Date();\n    }\n    resolve(variable) {\n        const { name } = variable;\n        if (name === 'CURRENT_YEAR') {\n            return String(this._date.getFullYear());\n        }\n        else if (name === 'CURRENT_YEAR_SHORT') {\n            return String(this._date.getFullYear()).slice(-2);\n        }\n        else if (name === 'CURRENT_MONTH') {\n            return String(this._date.getMonth().valueOf() + 1).padStart(2, '0');\n        }\n        else if (name === 'CURRENT_DATE') {\n            return String(this._date.getDate().valueOf()).padStart(2, '0');\n        }\n        else if (name === 'CURRENT_HOUR') {\n            return String(this._date.getHours().valueOf()).padStart(2, '0');\n        }\n        else if (name === 'CURRENT_MINUTE') {\n            return String(this._date.getMinutes().valueOf()).padStart(2, '0');\n        }\n        else if (name === 'CURRENT_SECOND') {\n            return String(this._date.getSeconds().valueOf()).padStart(2, '0');\n        }\n        else if (name === 'CURRENT_DAY_NAME') {\n            return TimeBasedVariableResolver.dayNames[this._date.getDay()];\n        }\n        else if (name === 'CURRENT_DAY_NAME_SHORT') {\n            return TimeBasedVariableResolver.dayNamesShort[this._date.getDay()];\n        }\n        else if (name === 'CURRENT_MONTH_NAME') {\n            return TimeBasedVariableResolver.monthNames[this._date.getMonth()];\n        }\n        else if (name === 'CURRENT_MONTH_NAME_SHORT') {\n            return TimeBasedVariableResolver.monthNamesShort[this._date.getMonth()];\n        }\n        else if (name === 'CURRENT_SECONDS_UNIX') {\n            return String(Math.floor(this._date.getTime() / 1000));\n        }\n        else if (name === 'CURRENT_TIMEZONE_OFFSET') {\n            const rawTimeOffset = this._date.getTimezoneOffset();\n            const sign = rawTimeOffset > 0 ? '-' : '+';\n            const hours = Math.trunc(Math.abs(rawTimeOffset / 60));\n            const hoursString = (hours < 10 ? '0' + hours : hours);\n            const minutes = Math.abs(rawTimeOffset) - hours * 60;\n            const minutesString = (minutes < 10 ? '0' + minutes : minutes);\n            return sign + hoursString + ':' + minutesString;\n        }\n        return undefined;\n    }\n}\nTimeBasedVariableResolver.dayNames = [nls.localize('Sunday', \"Sunday\"), nls.localize('Monday', \"Monday\"), nls.localize('Tuesday', \"Tuesday\"), nls.localize('Wednesday', \"Wednesday\"), nls.localize('Thursday', \"Thursday\"), nls.localize('Friday', \"Friday\"), nls.localize('Saturday', \"Saturday\")];\nTimeBasedVariableResolver.dayNamesShort = [nls.localize('SundayShort', \"Sun\"), nls.localize('MondayShort', \"Mon\"), nls.localize('TuesdayShort', \"Tue\"), nls.localize('WednesdayShort', \"Wed\"), nls.localize('ThursdayShort', \"Thu\"), nls.localize('FridayShort', \"Fri\"), nls.localize('SaturdayShort', \"Sat\")];\nTimeBasedVariableResolver.monthNames = [nls.localize('January', \"January\"), nls.localize('February', \"February\"), nls.localize('March', \"March\"), nls.localize('April', \"April\"), nls.localize('May', \"May\"), nls.localize('June', \"June\"), nls.localize('July', \"July\"), nls.localize('August', \"August\"), nls.localize('September', \"September\"), nls.localize('October', \"October\"), nls.localize('November', \"November\"), nls.localize('December', \"December\")];\nTimeBasedVariableResolver.monthNamesShort = [nls.localize('JanuaryShort', \"Jan\"), nls.localize('FebruaryShort', \"Feb\"), nls.localize('MarchShort', \"Mar\"), nls.localize('AprilShort', \"Apr\"), nls.localize('MayShort', \"May\"), nls.localize('JuneShort', \"Jun\"), nls.localize('JulyShort', \"Jul\"), nls.localize('AugustShort', \"Aug\"), nls.localize('SeptemberShort', \"Sep\"), nls.localize('OctoberShort', \"Oct\"), nls.localize('NovemberShort', \"Nov\"), nls.localize('DecemberShort', \"Dec\")];\nexport class WorkspaceBasedVariableResolver {\n    constructor(_workspaceService) {\n        this._workspaceService = _workspaceService;\n        //\n    }\n    resolve(variable) {\n        if (!this._workspaceService) {\n            return undefined;\n        }\n        const workspaceIdentifier = toWorkspaceIdentifier(this._workspaceService.getWorkspace());\n        if (isEmptyWorkspaceIdentifier(workspaceIdentifier)) {\n            return undefined;\n        }\n        if (variable.name === 'WORKSPACE_NAME') {\n            return this._resolveWorkspaceName(workspaceIdentifier);\n        }\n        else if (variable.name === 'WORKSPACE_FOLDER') {\n            return this._resoveWorkspacePath(workspaceIdentifier);\n        }\n        return undefined;\n    }\n    _resolveWorkspaceName(workspaceIdentifier) {\n        if (isSingleFolderWorkspaceIdentifier(workspaceIdentifier)) {\n            return path.basename(workspaceIdentifier.uri.path);\n        }\n        let filename = path.basename(workspaceIdentifier.configPath.path);\n        if (filename.endsWith(WORKSPACE_EXTENSION)) {\n            filename = filename.substr(0, filename.length - WORKSPACE_EXTENSION.length - 1);\n        }\n        return filename;\n    }\n    _resoveWorkspacePath(workspaceIdentifier) {\n        if (isSingleFolderWorkspaceIdentifier(workspaceIdentifier)) {\n            return normalizeDriveLetter(workspaceIdentifier.uri.fsPath);\n        }\n        const filename = path.basename(workspaceIdentifier.configPath.path);\n        let folderpath = workspaceIdentifier.configPath.fsPath;\n        if (folderpath.endsWith(filename)) {\n            folderpath = folderpath.substr(0, folderpath.length - filename.length - 1);\n        }\n        return (folderpath ? normalizeDriveLetter(folderpath) : '/');\n    }\n}\nexport class RandomBasedVariableResolver {\n    resolve(variable) {\n        const { name } = variable;\n        if (name === 'RANDOM') {\n            return Math.random().toString().slice(-6);\n        }\n        else if (name === 'RANDOM_HEX') {\n            return Math.random().toString(16).slice(-6);\n        }\n        else if (name === 'UUID') {\n            return generateUuid();\n        }\n        return undefined;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/stickyScroll/browser/stickyScroll.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .sticky-widget {\n\toverflow: hidden;\n}\n\n.monaco-editor .sticky-widget-line-numbers {\n\tfloat: left;\n\tbackground-color: inherit;\n}\n\n.monaco-editor .sticky-widget-lines-scrollable {\n\tdisplay: inline-block;\n\tposition: absolute;\n\toverflow: hidden;\n\twidth: var(--vscode-editorStickyScroll-scrollableWidth);\n\tbackground-color: inherit;\n}\n\n.monaco-editor .sticky-widget-lines {\n\tposition: absolute;\n\tbackground-color: inherit;\n}\n\n.monaco-editor .sticky-line-number, .monaco-editor .sticky-line-content {\n\tcolor: var(--vscode-editorLineNumber-foreground);\n\twhite-space: nowrap;\n\tdisplay: inline-block;\n\tposition: absolute;\n\tbackground-color: inherit;\n}\n\n.monaco-editor .sticky-line-number .codicon-folding-expanded,\n.monaco-editor .sticky-line-number .codicon-folding-collapsed {\n\tfloat: right;\n\ttransition: var(--vscode-editorStickyScroll-foldingOpacityTransition);\n}\n\n.monaco-editor .sticky-line-content {\n\twidth: var(--vscode-editorStickyScroll-scrollableWidth);\n\tbackground-color: inherit;\n\twhite-space: nowrap;\n}\n\n.monaco-editor .sticky-line-number-inner {\n\tdisplay: inline-block;\n\ttext-align: right;\n}\n\n.monaco-editor .sticky-widget {\n\tborder-bottom: 1px solid var(--vscode-editorStickyScroll-border);\n}\n\n.monaco-editor .sticky-line-content:hover {\n\tbackground-color: var(--vscode-editorStickyScrollHover-background);\n\tcursor: pointer;\n}\n\n.monaco-editor .sticky-widget {\n\twidth: 100%;\n\tbox-shadow: var(--vscode-editorStickyScroll-shadow) 0 3px 2px -2px;\n\tz-index: 4;\n\tbackground-color: var(--vscode-editorStickyScroll-background);\n\tright: initial !important;\n}\n\n.monaco-editor .sticky-widget.peek {\n\tbackground-color: var(--vscode-peekViewEditorStickyScroll-background);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { EditorAction2 } from '../../../browser/editorExtensions.js';\nimport { localize, localize2 } from '../../../../nls.js';\nimport { Categories } from '../../../../platform/action/common/actionCommonCategories.js';\nimport { Action2, MenuId } from '../../../../platform/actions/common/actions.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { StickyScrollController } from './stickyScrollController.js';\nexport class ToggleStickyScroll extends Action2 {\n    constructor() {\n        super({\n            id: 'editor.action.toggleStickyScroll',\n            title: {\n                ...localize2('toggleEditorStickyScroll', \"Toggle Editor Sticky Scroll\"),\n                mnemonicTitle: localize({ key: 'mitoggleStickyScroll', comment: ['&& denotes a mnemonic'] }, \"&&Toggle Editor Sticky Scroll\"),\n            },\n            metadata: {\n                description: localize2('toggleEditorStickyScroll.description', \"Toggle/enable the editor sticky scroll which shows the nested scopes at the top of the viewport\"),\n            },\n            category: Categories.View,\n            toggled: {\n                condition: ContextKeyExpr.equals('config.editor.stickyScroll.enabled', true),\n                title: localize('stickyScroll', \"Sticky Scroll\"),\n                mnemonicTitle: localize({ key: 'miStickyScroll', comment: ['&& denotes a mnemonic'] }, \"&&Sticky Scroll\"),\n            },\n            menu: [\n                { id: MenuId.CommandPalette },\n                { id: MenuId.MenubarAppearanceMenu, group: '4_editor', order: 3 },\n                { id: MenuId.StickyScrollContext }\n            ]\n        });\n    }\n    async run(accessor) {\n        const configurationService = accessor.get(IConfigurationService);\n        const newValue = !configurationService.getValue('editor.stickyScroll.enabled');\n        return configurationService.updateValue('editor.stickyScroll.enabled', newValue);\n    }\n}\nconst weight = 100 /* KeybindingWeight.EditorContrib */;\nexport class FocusStickyScroll extends EditorAction2 {\n    constructor() {\n        super({\n            id: 'editor.action.focusStickyScroll',\n            title: {\n                ...localize2('focusStickyScroll', \"Focus on the editor sticky scroll\"),\n                mnemonicTitle: localize({ key: 'mifocusStickyScroll', comment: ['&& denotes a mnemonic'] }, \"&&Focus Sticky Scroll\"),\n            },\n            precondition: ContextKeyExpr.and(ContextKeyExpr.has('config.editor.stickyScroll.enabled'), EditorContextKeys.stickyScrollVisible),\n            menu: [\n                { id: MenuId.CommandPalette },\n            ]\n        });\n    }\n    runEditorCommand(_accessor, editor) {\n        var _a;\n        (_a = StickyScrollController.get(editor)) === null || _a === void 0 ? void 0 : _a.focus();\n    }\n}\nexport class SelectNextStickyScrollLine extends EditorAction2 {\n    constructor() {\n        super({\n            id: 'editor.action.selectNextStickyScrollLine',\n            title: localize2('selectNextStickyScrollLine.title', \"Select the next editor sticky scroll line\"),\n            precondition: EditorContextKeys.stickyScrollFocused.isEqualTo(true),\n            keybinding: {\n                weight,\n                primary: 18 /* KeyCode.DownArrow */\n            }\n        });\n    }\n    runEditorCommand(_accessor, editor) {\n        var _a;\n        (_a = StickyScrollController.get(editor)) === null || _a === void 0 ? void 0 : _a.focusNext();\n    }\n}\nexport class SelectPreviousStickyScrollLine extends EditorAction2 {\n    constructor() {\n        super({\n            id: 'editor.action.selectPreviousStickyScrollLine',\n            title: localize2('selectPreviousStickyScrollLine.title', \"Select the previous sticky scroll line\"),\n            precondition: EditorContextKeys.stickyScrollFocused.isEqualTo(true),\n            keybinding: {\n                weight,\n                primary: 16 /* KeyCode.UpArrow */\n            }\n        });\n    }\n    runEditorCommand(_accessor, editor) {\n        var _a;\n        (_a = StickyScrollController.get(editor)) === null || _a === void 0 ? void 0 : _a.focusPrevious();\n    }\n}\nexport class GoToStickyScrollLine extends EditorAction2 {\n    constructor() {\n        super({\n            id: 'editor.action.goToFocusedStickyScrollLine',\n            title: localize2('goToFocusedStickyScrollLine.title', \"Go to the focused sticky scroll line\"),\n            precondition: EditorContextKeys.stickyScrollFocused.isEqualTo(true),\n            keybinding: {\n                weight,\n                primary: 3 /* KeyCode.Enter */\n            }\n        });\n    }\n    runEditorCommand(_accessor, editor) {\n        var _a;\n        (_a = StickyScrollController.get(editor)) === null || _a === void 0 ? void 0 : _a.goToFocused();\n    }\n}\nexport class SelectEditor extends EditorAction2 {\n    constructor() {\n        super({\n            id: 'editor.action.selectEditor',\n            title: localize2('selectEditor.title', \"Select Editor\"),\n            precondition: EditorContextKeys.stickyScrollFocused.isEqualTo(true),\n            keybinding: {\n                weight,\n                primary: 9 /* KeyCode.Escape */\n            }\n        });\n    }\n    runEditorCommand(_accessor, editor) {\n        var _a;\n        (_a = StickyScrollController.get(editor)) === null || _a === void 0 ? void 0 : _a.selectEditor();\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/stickyScroll/browser/stickyScrollContribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/stickyScroll/browser/stickyScrollContribution.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { ToggleStickyScroll, FocusStickyScroll, SelectEditor, SelectPreviousStickyScrollLine, SelectNextStickyScrollLine, GoToStickyScrollLine } from './stickyScrollActions.js';\nimport { StickyScrollController } from './stickyScrollController.js';\nimport { registerAction2 } from '../../../../platform/actions/common/actions.js';\nregisterEditorContribution(StickyScrollController.ID, StickyScrollController, 1 /* EditorContributionInstantiation.AfterFirstRender */);\nregisterAction2(ToggleStickyScroll);\nregisterAction2(FocusStickyScroll);\nregisterAction2(SelectPreviousStickyScrollLine);\nregisterAction2(SelectNextStickyScrollLine);\nregisterAction2(GoToStickyScrollLine);\nregisterAction2(SelectEditor);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar StickyScrollController_1;\nimport { Disposable, DisposableStore, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { StickyScrollWidget, StickyScrollWidgetState } from './stickyScrollWidget.js';\nimport { StickyLineCandidateProvider } from './stickyScrollProvider.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IContextMenuService } from '../../../../platform/contextview/browser/contextView.js';\nimport { MenuId } from '../../../../platform/actions/common/actions.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { ClickLinkGesture } from '../../gotoSymbol/browser/link/clickLinkGesture.js';\nimport { Range } from '../../../common/core/range.js';\nimport { getDefinitionsAtPosition } from '../../gotoSymbol/browser/goToSymbol.js';\nimport { goToDefinitionWithLocation } from '../../inlayHints/browser/inlayHintsLocations.js';\nimport { Position } from '../../../common/core/position.js';\nimport { CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { ILanguageFeatureDebounceService } from '../../../common/services/languageFeatureDebounce.js';\nimport * as dom from '../../../../base/browser/dom.js';\nimport { StickyRange } from './stickyScrollElement.js';\nimport { StandardMouseEvent } from '../../../../base/browser/mouseEvent.js';\nimport { FoldingController } from '../../folding/browser/folding.js';\nimport { toggleCollapseState } from '../../folding/browser/foldingModel.js';\nlet StickyScrollController = StickyScrollController_1 = class StickyScrollController extends Disposable {\n    constructor(_editor, _contextMenuService, _languageFeaturesService, _instaService, _languageConfigurationService, _languageFeatureDebounceService, _contextKeyService) {\n        super();\n        this._editor = _editor;\n        this._contextMenuService = _contextMenuService;\n        this._languageFeaturesService = _languageFeaturesService;\n        this._instaService = _instaService;\n        this._contextKeyService = _contextKeyService;\n        this._sessionStore = new DisposableStore();\n        this._foldingModel = null;\n        this._maxStickyLines = Number.MAX_SAFE_INTEGER;\n        this._candidateDefinitionsLength = -1;\n        this._focusedStickyElementIndex = -1;\n        this._enabled = false;\n        this._focused = false;\n        this._positionRevealed = false;\n        this._onMouseDown = false;\n        this._endLineNumbers = [];\n        this._showEndForLine = null;\n        this._stickyScrollWidget = new StickyScrollWidget(this._editor);\n        this._stickyLineCandidateProvider = new StickyLineCandidateProvider(this._editor, _languageFeaturesService, _languageConfigurationService);\n        this._register(this._stickyScrollWidget);\n        this._register(this._stickyLineCandidateProvider);\n        this._widgetState = new StickyScrollWidgetState([], [], 0);\n        this._onDidResize();\n        this._readConfiguration();\n        const stickyScrollDomNode = this._stickyScrollWidget.getDomNode();\n        this._register(this._editor.onDidChangeConfiguration(e => {\n            this._readConfigurationChange(e);\n        }));\n        this._register(dom.addDisposableListener(stickyScrollDomNode, dom.EventType.CONTEXT_MENU, async (event) => {\n            this._onContextMenu(dom.getWindow(stickyScrollDomNode), event);\n        }));\n        this._stickyScrollFocusedContextKey = EditorContextKeys.stickyScrollFocused.bindTo(this._contextKeyService);\n        this._stickyScrollVisibleContextKey = EditorContextKeys.stickyScrollVisible.bindTo(this._contextKeyService);\n        const focusTracker = this._register(dom.trackFocus(stickyScrollDomNode));\n        this._register(focusTracker.onDidBlur(_ => {\n            // Suppose that the blurring is caused by scrolling, then keep the focus on the sticky scroll\n            // This is determined by the fact that the height of the widget has become zero and there has been no position revealing\n            if (this._positionRevealed === false && stickyScrollDomNode.clientHeight === 0) {\n                this._focusedStickyElementIndex = -1;\n                this.focus();\n            }\n            // In all other casees, dispose the focus on the sticky scroll\n            else {\n                this._disposeFocusStickyScrollStore();\n            }\n        }));\n        this._register(focusTracker.onDidFocus(_ => {\n            this.focus();\n        }));\n        this._registerMouseListeners();\n        // Suppose that mouse down on the sticky scroll, then do not focus on the sticky scroll because this will be followed by the revealing of a position\n        this._register(dom.addDisposableListener(stickyScrollDomNode, dom.EventType.MOUSE_DOWN, (e) => {\n            this._onMouseDown = true;\n        }));\n    }\n    static get(editor) {\n        return editor.getContribution(StickyScrollController_1.ID);\n    }\n    _disposeFocusStickyScrollStore() {\n        var _a;\n        this._stickyScrollFocusedContextKey.set(false);\n        (_a = this._focusDisposableStore) === null || _a === void 0 ? void 0 : _a.dispose();\n        this._focused = false;\n        this._positionRevealed = false;\n        this._onMouseDown = false;\n    }\n    focus() {\n        // If the mouse is down, do not focus on the sticky scroll\n        if (this._onMouseDown) {\n            this._onMouseDown = false;\n            this._editor.focus();\n            return;\n        }\n        const focusState = this._stickyScrollFocusedContextKey.get();\n        if (focusState === true) {\n            return;\n        }\n        this._focused = true;\n        this._focusDisposableStore = new DisposableStore();\n        this._stickyScrollFocusedContextKey.set(true);\n        this._focusedStickyElementIndex = this._stickyScrollWidget.lineNumbers.length - 1;\n        this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex);\n    }\n    focusNext() {\n        if (this._focusedStickyElementIndex < this._stickyScrollWidget.lineNumberCount - 1) {\n            this._focusNav(true);\n        }\n    }\n    focusPrevious() {\n        if (this._focusedStickyElementIndex > 0) {\n            this._focusNav(false);\n        }\n    }\n    selectEditor() {\n        this._editor.focus();\n    }\n    // True is next, false is previous\n    _focusNav(direction) {\n        this._focusedStickyElementIndex = direction ? this._focusedStickyElementIndex + 1 : this._focusedStickyElementIndex - 1;\n        this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex);\n    }\n    goToFocused() {\n        const lineNumbers = this._stickyScrollWidget.lineNumbers;\n        this._disposeFocusStickyScrollStore();\n        this._revealPosition({ lineNumber: lineNumbers[this._focusedStickyElementIndex], column: 1 });\n    }\n    _revealPosition(position) {\n        this._reveaInEditor(position, () => this._editor.revealPosition(position));\n    }\n    _revealLineInCenterIfOutsideViewport(position) {\n        this._reveaInEditor(position, () => this._editor.revealLineInCenterIfOutsideViewport(position.lineNumber, 0 /* ScrollType.Smooth */));\n    }\n    _reveaInEditor(position, revealFunction) {\n        if (this._focused) {\n            this._disposeFocusStickyScrollStore();\n        }\n        this._positionRevealed = true;\n        revealFunction();\n        this._editor.setSelection(Range.fromPositions(position));\n        this._editor.focus();\n    }\n    _registerMouseListeners() {\n        const sessionStore = this._register(new DisposableStore());\n        const gesture = this._register(new ClickLinkGesture(this._editor, {\n            extractLineNumberFromMouseEvent: (e) => {\n                const position = this._stickyScrollWidget.getEditorPositionFromNode(e.target.element);\n                return position ? position.lineNumber : 0;\n            }\n        }));\n        const getMouseEventTarget = (mouseEvent) => {\n            if (!this._editor.hasModel()) {\n                return null;\n            }\n            if (mouseEvent.target.type !== 12 /* MouseTargetType.OVERLAY_WIDGET */ || mouseEvent.target.detail !== this._stickyScrollWidget.getId()) {\n                // not hovering over our widget\n                return null;\n            }\n            const mouseTargetElement = mouseEvent.target.element;\n            if (!mouseTargetElement || mouseTargetElement.innerText !== mouseTargetElement.innerHTML) {\n                // not on a span element rendering text\n                return null;\n            }\n            const position = this._stickyScrollWidget.getEditorPositionFromNode(mouseTargetElement);\n            if (!position) {\n                // not hovering a sticky scroll line\n                return null;\n            }\n            return {\n                range: new Range(position.lineNumber, position.column, position.lineNumber, position.column + mouseTargetElement.innerText.length),\n                textElement: mouseTargetElement\n            };\n        };\n        const stickyScrollWidgetDomNode = this._stickyScrollWidget.getDomNode();\n        this._register(dom.addStandardDisposableListener(stickyScrollWidgetDomNode, dom.EventType.CLICK, (mouseEvent) => {\n            if (mouseEvent.ctrlKey || mouseEvent.altKey || mouseEvent.metaKey) {\n                // modifier pressed\n                return;\n            }\n            if (!mouseEvent.leftButton) {\n                // not left click\n                return;\n            }\n            if (mouseEvent.shiftKey) {\n                // shift click\n                const lineIndex = this._stickyScrollWidget.getLineIndexFromChildDomNode(mouseEvent.target);\n                if (lineIndex === null) {\n                    return;\n                }\n                const position = new Position(this._endLineNumbers[lineIndex], 1);\n                this._revealLineInCenterIfOutsideViewport(position);\n                return;\n            }\n            const isInFoldingIconDomNode = this._stickyScrollWidget.isInFoldingIconDomNode(mouseEvent.target);\n            if (isInFoldingIconDomNode) {\n                // clicked on folding icon\n                const lineNumber = this._stickyScrollWidget.getLineNumberFromChildDomNode(mouseEvent.target);\n                this._toggleFoldingRegionForLine(lineNumber);\n                return;\n            }\n            const isInStickyLine = this._stickyScrollWidget.isInStickyLine(mouseEvent.target);\n            if (!isInStickyLine) {\n                return;\n            }\n            // normal click\n            let position = this._stickyScrollWidget.getEditorPositionFromNode(mouseEvent.target);\n            if (!position) {\n                const lineNumber = this._stickyScrollWidget.getLineNumberFromChildDomNode(mouseEvent.target);\n                if (lineNumber === null) {\n                    // not hovering a sticky scroll line\n                    return;\n                }\n                position = new Position(lineNumber, 1);\n            }\n            this._revealPosition(position);\n        }));\n        this._register(dom.addStandardDisposableListener(stickyScrollWidgetDomNode, dom.EventType.MOUSE_MOVE, (mouseEvent) => {\n            if (mouseEvent.shiftKey) {\n                const currentEndForLineIndex = this._stickyScrollWidget.getLineIndexFromChildDomNode(mouseEvent.target);\n                if (currentEndForLineIndex === null || this._showEndForLine !== null && this._showEndForLine === currentEndForLineIndex) {\n                    return;\n                }\n                this._showEndForLine = currentEndForLineIndex;\n                this._renderStickyScroll();\n                return;\n            }\n            if (this._showEndForLine !== null) {\n                this._showEndForLine = null;\n                this._renderStickyScroll();\n            }\n        }));\n        this._register(dom.addDisposableListener(stickyScrollWidgetDomNode, dom.EventType.MOUSE_LEAVE, (e) => {\n            if (this._showEndForLine !== null) {\n                this._showEndForLine = null;\n                this._renderStickyScroll();\n            }\n        }));\n        this._register(gesture.onMouseMoveOrRelevantKeyDown(([mouseEvent, _keyboardEvent]) => {\n            const mouseTarget = getMouseEventTarget(mouseEvent);\n            if (!mouseTarget || !mouseEvent.hasTriggerModifier || !this._editor.hasModel()) {\n                sessionStore.clear();\n                return;\n            }\n            const { range, textElement } = mouseTarget;\n            if (!range.equalsRange(this._stickyRangeProjectedOnEditor)) {\n                this._stickyRangeProjectedOnEditor = range;\n                sessionStore.clear();\n            }\n            else if (textElement.style.textDecoration === 'underline') {\n                return;\n            }\n            const cancellationToken = new CancellationTokenSource();\n            sessionStore.add(toDisposable(() => cancellationToken.dispose(true)));\n            let currentHTMLChild;\n            getDefinitionsAtPosition(this._languageFeaturesService.definitionProvider, this._editor.getModel(), new Position(range.startLineNumber, range.startColumn + 1), cancellationToken.token).then((candidateDefinitions => {\n                if (cancellationToken.token.isCancellationRequested) {\n                    return;\n                }\n                if (candidateDefinitions.length !== 0) {\n                    this._candidateDefinitionsLength = candidateDefinitions.length;\n                    const childHTML = textElement;\n                    if (currentHTMLChild !== childHTML) {\n                        sessionStore.clear();\n                        currentHTMLChild = childHTML;\n                        currentHTMLChild.style.textDecoration = 'underline';\n                        sessionStore.add(toDisposable(() => {\n                            currentHTMLChild.style.textDecoration = 'none';\n                        }));\n                    }\n                    else if (!currentHTMLChild) {\n                        currentHTMLChild = childHTML;\n                        currentHTMLChild.style.textDecoration = 'underline';\n                        sessionStore.add(toDisposable(() => {\n                            currentHTMLChild.style.textDecoration = 'none';\n                        }));\n                    }\n                }\n                else {\n                    sessionStore.clear();\n                }\n            }));\n        }));\n        this._register(gesture.onCancel(() => {\n            sessionStore.clear();\n        }));\n        this._register(gesture.onExecute(async (e) => {\n            if (e.target.type !== 12 /* MouseTargetType.OVERLAY_WIDGET */ || e.target.detail !== this._stickyScrollWidget.getId()) {\n                // not hovering over our widget\n                return;\n            }\n            const position = this._stickyScrollWidget.getEditorPositionFromNode(e.target.element);\n            if (!position) {\n                // not hovering a sticky scroll line\n                return;\n            }\n            if (!this._editor.hasModel() || !this._stickyRangeProjectedOnEditor) {\n                return;\n            }\n            if (this._candidateDefinitionsLength > 1) {\n                if (this._focused) {\n                    this._disposeFocusStickyScrollStore();\n                }\n                this._revealPosition({ lineNumber: position.lineNumber, column: 1 });\n            }\n            this._instaService.invokeFunction(goToDefinitionWithLocation, e, this._editor, { uri: this._editor.getModel().uri, range: this._stickyRangeProjectedOnEditor });\n        }));\n    }\n    _onContextMenu(targetWindow, e) {\n        const event = new StandardMouseEvent(targetWindow, e);\n        this._contextMenuService.showContextMenu({\n            menuId: MenuId.StickyScrollContext,\n            getAnchor: () => event,\n        });\n    }\n    _toggleFoldingRegionForLine(line) {\n        if (!this._foldingModel || line === null) {\n            return;\n        }\n        const stickyLine = this._stickyScrollWidget.getRenderedStickyLine(line);\n        const foldingIcon = stickyLine === null || stickyLine === void 0 ? void 0 : stickyLine.foldingIcon;\n        if (!foldingIcon) {\n            return;\n        }\n        toggleCollapseState(this._foldingModel, Number.MAX_VALUE, [line]);\n        foldingIcon.isCollapsed = !foldingIcon.isCollapsed;\n        const scrollTop = (foldingIcon.isCollapsed ?\n            this._editor.getTopForLineNumber(foldingIcon.foldingEndLine)\n            : this._editor.getTopForLineNumber(foldingIcon.foldingStartLine))\n            - this._editor.getOption(67 /* EditorOption.lineHeight */) * stickyLine.index + 1;\n        this._editor.setScrollTop(scrollTop);\n        this._renderStickyScroll(line);\n    }\n    _readConfiguration() {\n        const options = this._editor.getOption(115 /* EditorOption.stickyScroll */);\n        if (options.enabled === false) {\n            this._editor.removeOverlayWidget(this._stickyScrollWidget);\n            this._sessionStore.clear();\n            this._enabled = false;\n            return;\n        }\n        else if (options.enabled && !this._enabled) {\n            // When sticky scroll was just enabled, add the listeners on the sticky scroll\n            this._editor.addOverlayWidget(this._stickyScrollWidget);\n            this._sessionStore.add(this._editor.onDidScrollChange((e) => {\n                if (e.scrollTopChanged) {\n                    this._showEndForLine = null;\n                    this._renderStickyScroll();\n                }\n            }));\n            this._sessionStore.add(this._editor.onDidLayoutChange(() => this._onDidResize()));\n            this._sessionStore.add(this._editor.onDidChangeModelTokens((e) => this._onTokensChange(e)));\n            this._sessionStore.add(this._stickyLineCandidateProvider.onDidChangeStickyScroll(() => {\n                this._showEndForLine = null;\n                this._renderStickyScroll();\n            }));\n            this._enabled = true;\n        }\n        const lineNumberOption = this._editor.getOption(68 /* EditorOption.lineNumbers */);\n        if (lineNumberOption.renderType === 2 /* RenderLineNumbersType.Relative */) {\n            this._sessionStore.add(this._editor.onDidChangeCursorPosition(() => {\n                this._showEndForLine = null;\n                this._renderStickyScroll(0);\n            }));\n        }\n    }\n    _readConfigurationChange(event) {\n        if (event.hasChanged(115 /* EditorOption.stickyScroll */)\n            || event.hasChanged(73 /* EditorOption.minimap */)\n            || event.hasChanged(67 /* EditorOption.lineHeight */)\n            || event.hasChanged(110 /* EditorOption.showFoldingControls */)\n            || event.hasChanged(68 /* EditorOption.lineNumbers */)) {\n            this._readConfiguration();\n        }\n        if (event.hasChanged(68 /* EditorOption.lineNumbers */)) {\n            this._renderStickyScroll(0);\n        }\n    }\n    _needsUpdate(event) {\n        const stickyLineNumbers = this._stickyScrollWidget.getCurrentLines();\n        for (const stickyLineNumber of stickyLineNumbers) {\n            for (const range of event.ranges) {\n                if (stickyLineNumber >= range.fromLineNumber && stickyLineNumber <= range.toLineNumber) {\n                    return true;\n                }\n            }\n        }\n        return false;\n    }\n    _onTokensChange(event) {\n        if (this._needsUpdate(event)) {\n            // Rebuilding the whole widget from line 0\n            this._renderStickyScroll(0);\n        }\n    }\n    _onDidResize() {\n        const layoutInfo = this._editor.getLayoutInfo();\n        // Make sure sticky scroll doesn't take up more than 25% of the editor\n        const theoreticalLines = layoutInfo.height / this._editor.getOption(67 /* EditorOption.lineHeight */);\n        this._maxStickyLines = Math.round(theoreticalLines * .25);\n    }\n    async _renderStickyScroll(rebuildFromLine) {\n        var _a, _b;\n        const model = this._editor.getModel();\n        if (!model || model.isTooLargeForTokenization()) {\n            this._foldingModel = null;\n            this._stickyScrollWidget.setState(undefined, null);\n            return;\n        }\n        const stickyLineVersion = this._stickyLineCandidateProvider.getVersionId();\n        if (stickyLineVersion === undefined || stickyLineVersion === model.getVersionId()) {\n            this._foldingModel = (_b = await ((_a = FoldingController.get(this._editor)) === null || _a === void 0 ? void 0 : _a.getFoldingModel())) !== null && _b !== void 0 ? _b : null;\n            this._widgetState = this.findScrollWidgetState();\n            this._stickyScrollVisibleContextKey.set(!(this._widgetState.startLineNumbers.length === 0));\n            if (!this._focused) {\n                this._stickyScrollWidget.setState(this._widgetState, this._foldingModel, rebuildFromLine);\n            }\n            else {\n                // Suppose that previously the sticky scroll widget had height 0, then if there are visible lines, set the last line as focused\n                if (this._focusedStickyElementIndex === -1) {\n                    this._stickyScrollWidget.setState(this._widgetState, this._foldingModel, rebuildFromLine);\n                    this._focusedStickyElementIndex = this._stickyScrollWidget.lineNumberCount - 1;\n                    if (this._focusedStickyElementIndex !== -1) {\n                        this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex);\n                    }\n                }\n                else {\n                    const focusedStickyElementLineNumber = this._stickyScrollWidget.lineNumbers[this._focusedStickyElementIndex];\n                    this._stickyScrollWidget.setState(this._widgetState, this._foldingModel, rebuildFromLine);\n                    // Suppose that after setting the state, there are no sticky lines, set the focused index to -1\n                    if (this._stickyScrollWidget.lineNumberCount === 0) {\n                        this._focusedStickyElementIndex = -1;\n                    }\n                    else {\n                        const previousFocusedLineNumberExists = this._stickyScrollWidget.lineNumbers.includes(focusedStickyElementLineNumber);\n                        // If the line number is still there, do not change anything\n                        // If the line number is not there, set the new focused line to be the last line\n                        if (!previousFocusedLineNumberExists) {\n                            this._focusedStickyElementIndex = this._stickyScrollWidget.lineNumberCount - 1;\n                        }\n                        this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex);\n                    }\n                }\n            }\n        }\n    }\n    findScrollWidgetState() {\n        const lineHeight = this._editor.getOption(67 /* EditorOption.lineHeight */);\n        const maxNumberStickyLines = Math.min(this._maxStickyLines, this._editor.getOption(115 /* EditorOption.stickyScroll */).maxLineCount);\n        const scrollTop = this._editor.getScrollTop();\n        let lastLineRelativePosition = 0;\n        const startLineNumbers = [];\n        const endLineNumbers = [];\n        const arrayVisibleRanges = this._editor.getVisibleRanges();\n        if (arrayVisibleRanges.length !== 0) {\n            const fullVisibleRange = new StickyRange(arrayVisibleRanges[0].startLineNumber, arrayVisibleRanges[arrayVisibleRanges.length - 1].endLineNumber);\n            const candidateRanges = this._stickyLineCandidateProvider.getCandidateStickyLinesIntersecting(fullVisibleRange);\n            for (const range of candidateRanges) {\n                const start = range.startLineNumber;\n                const end = range.endLineNumber;\n                const depth = range.nestingDepth;\n                if (end - start > 0) {\n                    const topOfElementAtDepth = (depth - 1) * lineHeight;\n                    const bottomOfElementAtDepth = depth * lineHeight;\n                    const bottomOfBeginningLine = this._editor.getBottomForLineNumber(start) - scrollTop;\n                    const topOfEndLine = this._editor.getTopForLineNumber(end) - scrollTop;\n                    const bottomOfEndLine = this._editor.getBottomForLineNumber(end) - scrollTop;\n                    if (topOfElementAtDepth > topOfEndLine && topOfElementAtDepth <= bottomOfEndLine) {\n                        startLineNumbers.push(start);\n                        endLineNumbers.push(end + 1);\n                        lastLineRelativePosition = bottomOfEndLine - bottomOfElementAtDepth;\n                        break;\n                    }\n                    else if (bottomOfElementAtDepth > bottomOfBeginningLine && bottomOfElementAtDepth <= bottomOfEndLine) {\n                        startLineNumbers.push(start);\n                        endLineNumbers.push(end + 1);\n                    }\n                    if (startLineNumbers.length === maxNumberStickyLines) {\n                        break;\n                    }\n                }\n            }\n        }\n        this._endLineNumbers = endLineNumbers;\n        return new StickyScrollWidgetState(startLineNumbers, endLineNumbers, lastLineRelativePosition, this._showEndForLine);\n    }\n    dispose() {\n        super.dispose();\n        this._sessionStore.dispose();\n    }\n};\nStickyScrollController.ID = 'store.contrib.stickyScrollController';\nStickyScrollController = StickyScrollController_1 = __decorate([\n    __param(1, IContextMenuService),\n    __param(2, ILanguageFeaturesService),\n    __param(3, IInstantiationService),\n    __param(4, ILanguageConfigurationService),\n    __param(5, ILanguageFeatureDebounceService),\n    __param(6, IContextKeyService)\n], StickyScrollController);\nexport { StickyScrollController };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/stickyScroll/browser/stickyScrollElement.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class StickyRange {\n    constructor(startLineNumber, endLineNumber) {\n        this.startLineNumber = startLineNumber;\n        this.endLineNumber = endLineNumber;\n    }\n}\nexport class StickyElement {\n    constructor(\n    /**\n     * Range of line numbers spanned by the current scope\n     */\n    range, \n    /**\n     * Must be sorted by start line number\n    */\n    children, \n    /**\n     * Parent sticky outline element\n     */\n    parent) {\n        this.range = range;\n        this.children = children;\n        this.parent = parent;\n    }\n}\nexport class StickyModel {\n    constructor(uri, version, element, outlineProviderId) {\n        this.uri = uri;\n        this.version = version;\n        this.element = element;\n        this.outlineProviderId = outlineProviderId;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/stickyScroll/browser/stickyScrollModelProvider.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { OutlineElement, OutlineGroup, OutlineModel } from '../../documentSymbols/browser/outlineModel.js';\nimport { createCancelablePromise, Delayer } from '../../../../base/common/async.js';\nimport { FoldingController, RangesLimitReporter } from '../../folding/browser/folding.js';\nimport { SyntaxRangeProvider } from '../../folding/browser/syntaxRangeProvider.js';\nimport { IndentRangeProvider } from '../../folding/browser/indentRangeProvider.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { onUnexpectedError } from '../../../../base/common/errors.js';\nimport { StickyElement, StickyModel, StickyRange } from './stickyScrollElement.js';\nimport { Iterable } from '../../../../base/common/iterator.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nvar ModelProvider;\n(function (ModelProvider) {\n    ModelProvider[\"OUTLINE_MODEL\"] = \"outlineModel\";\n    ModelProvider[\"FOLDING_PROVIDER_MODEL\"] = \"foldingProviderModel\";\n    ModelProvider[\"INDENTATION_MODEL\"] = \"indentationModel\";\n})(ModelProvider || (ModelProvider = {}));\nvar Status;\n(function (Status) {\n    Status[Status[\"VALID\"] = 0] = \"VALID\";\n    Status[Status[\"INVALID\"] = 1] = \"INVALID\";\n    Status[Status[\"CANCELED\"] = 2] = \"CANCELED\";\n})(Status || (Status = {}));\nlet StickyModelProvider = class StickyModelProvider extends Disposable {\n    constructor(_editor, onProviderUpdate, _languageConfigurationService, _languageFeaturesService) {\n        super();\n        this._editor = _editor;\n        this._modelProviders = [];\n        this._modelPromise = null;\n        this._updateScheduler = this._register(new Delayer(300));\n        this._updateOperation = this._register(new DisposableStore());\n        switch (this._editor.getOption(115 /* EditorOption.stickyScroll */).defaultModel) {\n            case ModelProvider.OUTLINE_MODEL:\n                this._modelProviders.push(new StickyModelFromCandidateOutlineProvider(this._editor, _languageFeaturesService));\n            // fall through\n            case ModelProvider.FOLDING_PROVIDER_MODEL:\n                this._modelProviders.push(new StickyModelFromCandidateSyntaxFoldingProvider(this._editor, onProviderUpdate, _languageFeaturesService));\n            // fall through\n            case ModelProvider.INDENTATION_MODEL:\n                this._modelProviders.push(new StickyModelFromCandidateIndentationFoldingProvider(this._editor, _languageConfigurationService));\n                break;\n        }\n    }\n    dispose() {\n        this._modelProviders.forEach(provider => provider.dispose());\n        this._updateOperation.clear();\n        this._cancelModelPromise();\n        super.dispose();\n    }\n    _cancelModelPromise() {\n        if (this._modelPromise) {\n            this._modelPromise.cancel();\n            this._modelPromise = null;\n        }\n    }\n    async update(token) {\n        this._updateOperation.clear();\n        this._updateOperation.add({\n            dispose: () => {\n                this._cancelModelPromise();\n                this._updateScheduler.cancel();\n            }\n        });\n        this._cancelModelPromise();\n        return await this._updateScheduler.trigger(async () => {\n            for (const modelProvider of this._modelProviders) {\n                const { statusPromise, modelPromise } = modelProvider.computeStickyModel(token);\n                this._modelPromise = modelPromise;\n                const status = await statusPromise;\n                if (this._modelPromise !== modelPromise) {\n                    return null;\n                }\n                switch (status) {\n                    case Status.CANCELED:\n                        this._updateOperation.clear();\n                        return null;\n                    case Status.VALID:\n                        return modelProvider.stickyModel;\n                }\n            }\n            return null;\n        }).catch((error) => {\n            onUnexpectedError(error);\n            return null;\n        });\n    }\n};\nStickyModelProvider = __decorate([\n    __param(2, IInstantiationService),\n    __param(3, ILanguageFeaturesService)\n], StickyModelProvider);\nexport { StickyModelProvider };\nclass StickyModelCandidateProvider extends Disposable {\n    constructor(_editor) {\n        super();\n        this._editor = _editor;\n        this._stickyModel = null;\n    }\n    get stickyModel() {\n        return this._stickyModel;\n    }\n    _invalid() {\n        this._stickyModel = null;\n        return Status.INVALID;\n    }\n    computeStickyModel(token) {\n        if (token.isCancellationRequested || !this.isProviderValid()) {\n            return { statusPromise: this._invalid(), modelPromise: null };\n        }\n        const providerModelPromise = createCancelablePromise(token => this.createModelFromProvider(token));\n        return {\n            statusPromise: providerModelPromise.then(providerModel => {\n                if (!this.isModelValid(providerModel)) {\n                    return this._invalid();\n                }\n                if (token.isCancellationRequested) {\n                    return Status.CANCELED;\n                }\n                this._stickyModel = this.createStickyModel(token, providerModel);\n                return Status.VALID;\n            }).then(undefined, (err) => {\n                onUnexpectedError(err);\n                return Status.CANCELED;\n            }),\n            modelPromise: providerModelPromise\n        };\n    }\n    /**\n     * Method which checks whether the model returned by the provider is valid and can be used to compute a sticky model.\n     * This method by default returns true.\n     * @param model model returned by the provider\n     * @returns boolean indicating whether the model is valid\n     */\n    isModelValid(model) {\n        return true;\n    }\n    /**\n     * Method which checks whether the provider is valid before applying it to find the provider model.\n     * This method by default returns true.\n     * @returns boolean indicating whether the provider is valid\n     */\n    isProviderValid() {\n        return true;\n    }\n}\nlet StickyModelFromCandidateOutlineProvider = class StickyModelFromCandidateOutlineProvider extends StickyModelCandidateProvider {\n    constructor(_editor, _languageFeaturesService) {\n        super(_editor);\n        this._languageFeaturesService = _languageFeaturesService;\n    }\n    createModelFromProvider(token) {\n        return OutlineModel.create(this._languageFeaturesService.documentSymbolProvider, this._editor.getModel(), token);\n    }\n    createStickyModel(token, model) {\n        var _a;\n        const { stickyOutlineElement, providerID } = this._stickyModelFromOutlineModel(model, (_a = this._stickyModel) === null || _a === void 0 ? void 0 : _a.outlineProviderId);\n        const textModel = this._editor.getModel();\n        return new StickyModel(textModel.uri, textModel.getVersionId(), stickyOutlineElement, providerID);\n    }\n    isModelValid(model) {\n        return model && model.children.size > 0;\n    }\n    _stickyModelFromOutlineModel(outlineModel, preferredProvider) {\n        let outlineElements;\n        // When several possible outline providers\n        if (Iterable.first(outlineModel.children.values()) instanceof OutlineGroup) {\n            const provider = Iterable.find(outlineModel.children.values(), outlineGroupOfModel => outlineGroupOfModel.id === preferredProvider);\n            if (provider) {\n                outlineElements = provider.children;\n            }\n            else {\n                let tempID = '';\n                let maxTotalSumOfRanges = -1;\n                let optimalOutlineGroup = undefined;\n                for (const [_key, outlineGroup] of outlineModel.children.entries()) {\n                    const totalSumRanges = this._findSumOfRangesOfGroup(outlineGroup);\n                    if (totalSumRanges > maxTotalSumOfRanges) {\n                        optimalOutlineGroup = outlineGroup;\n                        maxTotalSumOfRanges = totalSumRanges;\n                        tempID = outlineGroup.id;\n                    }\n                }\n                preferredProvider = tempID;\n                outlineElements = optimalOutlineGroup.children;\n            }\n        }\n        else {\n            outlineElements = outlineModel.children;\n        }\n        const stickyChildren = [];\n        const outlineElementsArray = Array.from(outlineElements.values()).sort((element1, element2) => {\n            const range1 = new StickyRange(element1.symbol.range.startLineNumber, element1.symbol.range.endLineNumber);\n            const range2 = new StickyRange(element2.symbol.range.startLineNumber, element2.symbol.range.endLineNumber);\n            return this._comparator(range1, range2);\n        });\n        for (const outlineElement of outlineElementsArray) {\n            stickyChildren.push(this._stickyModelFromOutlineElement(outlineElement, outlineElement.symbol.selectionRange.startLineNumber));\n        }\n        const stickyOutlineElement = new StickyElement(undefined, stickyChildren, undefined);\n        return {\n            stickyOutlineElement: stickyOutlineElement,\n            providerID: preferredProvider\n        };\n    }\n    _stickyModelFromOutlineElement(outlineElement, previousStartLine) {\n        const children = [];\n        for (const child of outlineElement.children.values()) {\n            if (child.symbol.selectionRange.startLineNumber !== child.symbol.range.endLineNumber) {\n                if (child.symbol.selectionRange.startLineNumber !== previousStartLine) {\n                    children.push(this._stickyModelFromOutlineElement(child, child.symbol.selectionRange.startLineNumber));\n                }\n                else {\n                    for (const subchild of child.children.values()) {\n                        children.push(this._stickyModelFromOutlineElement(subchild, child.symbol.selectionRange.startLineNumber));\n                    }\n                }\n            }\n        }\n        children.sort((child1, child2) => this._comparator(child1.range, child2.range));\n        const range = new StickyRange(outlineElement.symbol.selectionRange.startLineNumber, outlineElement.symbol.range.endLineNumber);\n        return new StickyElement(range, children, undefined);\n    }\n    _comparator(range1, range2) {\n        if (range1.startLineNumber !== range2.startLineNumber) {\n            return range1.startLineNumber - range2.startLineNumber;\n        }\n        else {\n            return range2.endLineNumber - range1.endLineNumber;\n        }\n    }\n    _findSumOfRangesOfGroup(outline) {\n        let res = 0;\n        for (const child of outline.children.values()) {\n            res += this._findSumOfRangesOfGroup(child);\n        }\n        if (outline instanceof OutlineElement) {\n            return res + outline.symbol.range.endLineNumber - outline.symbol.selectionRange.startLineNumber;\n        }\n        else {\n            return res;\n        }\n    }\n};\nStickyModelFromCandidateOutlineProvider = __decorate([\n    __param(1, ILanguageFeaturesService)\n], StickyModelFromCandidateOutlineProvider);\nclass StickyModelFromCandidateFoldingProvider extends StickyModelCandidateProvider {\n    constructor(editor) {\n        super(editor);\n        this._foldingLimitReporter = new RangesLimitReporter(editor);\n    }\n    createStickyModel(token, model) {\n        const foldingElement = this._fromFoldingRegions(model);\n        const textModel = this._editor.getModel();\n        return new StickyModel(textModel.uri, textModel.getVersionId(), foldingElement, undefined);\n    }\n    isModelValid(model) {\n        return model !== null;\n    }\n    _fromFoldingRegions(foldingRegions) {\n        const length = foldingRegions.length;\n        const orderedStickyElements = [];\n        // The root sticky outline element\n        const stickyOutlineElement = new StickyElement(undefined, [], undefined);\n        for (let i = 0; i < length; i++) {\n            // Finding the parent index of the current range\n            const parentIndex = foldingRegions.getParentIndex(i);\n            let parentNode;\n            if (parentIndex !== -1) {\n                // Access the reference of the parent node\n                parentNode = orderedStickyElements[parentIndex];\n            }\n            else {\n                // In that case the parent node is the root node\n                parentNode = stickyOutlineElement;\n            }\n            const child = new StickyElement(new StickyRange(foldingRegions.getStartLineNumber(i), foldingRegions.getEndLineNumber(i) + 1), [], parentNode);\n            parentNode.children.push(child);\n            orderedStickyElements.push(child);\n        }\n        return stickyOutlineElement;\n    }\n}\nlet StickyModelFromCandidateIndentationFoldingProvider = class StickyModelFromCandidateIndentationFoldingProvider extends StickyModelFromCandidateFoldingProvider {\n    constructor(editor, _languageConfigurationService) {\n        super(editor);\n        this._languageConfigurationService = _languageConfigurationService;\n        this.provider = this._register(new IndentRangeProvider(editor.getModel(), this._languageConfigurationService, this._foldingLimitReporter));\n    }\n    async createModelFromProvider(token) {\n        return this.provider.compute(token);\n    }\n};\nStickyModelFromCandidateIndentationFoldingProvider = __decorate([\n    __param(1, ILanguageConfigurationService)\n], StickyModelFromCandidateIndentationFoldingProvider);\nlet StickyModelFromCandidateSyntaxFoldingProvider = class StickyModelFromCandidateSyntaxFoldingProvider extends StickyModelFromCandidateFoldingProvider {\n    constructor(editor, onProviderUpdate, _languageFeaturesService) {\n        super(editor);\n        this._languageFeaturesService = _languageFeaturesService;\n        const selectedProviders = FoldingController.getFoldingRangeProviders(this._languageFeaturesService, editor.getModel());\n        if (selectedProviders.length > 0) {\n            this.provider = this._register(new SyntaxRangeProvider(editor.getModel(), selectedProviders, onProviderUpdate, this._foldingLimitReporter, undefined));\n        }\n    }\n    isProviderValid() {\n        return this.provider !== undefined;\n    }\n    async createModelFromProvider(token) {\n        var _a, _b;\n        return (_b = (_a = this.provider) === null || _a === void 0 ? void 0 : _a.compute(token)) !== null && _b !== void 0 ? _b : null;\n    }\n};\nStickyModelFromCandidateSyntaxFoldingProvider = __decorate([\n    __param(2, ILanguageFeaturesService)\n], StickyModelFromCandidateSyntaxFoldingProvider);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/stickyScroll/browser/stickyScrollProvider.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Disposable, DisposableStore, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { RunOnceScheduler } from '../../../../base/common/async.js';\nimport { binarySearch } from '../../../../base/common/arrays.js';\nimport { Emitter } from '../../../../base/common/event.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { StickyModelProvider } from './stickyScrollModelProvider.js';\nexport class StickyLineCandidate {\n    constructor(startLineNumber, endLineNumber, nestingDepth) {\n        this.startLineNumber = startLineNumber;\n        this.endLineNumber = endLineNumber;\n        this.nestingDepth = nestingDepth;\n    }\n}\nlet StickyLineCandidateProvider = class StickyLineCandidateProvider extends Disposable {\n    constructor(editor, _languageFeaturesService, _languageConfigurationService) {\n        super();\n        this._languageFeaturesService = _languageFeaturesService;\n        this._languageConfigurationService = _languageConfigurationService;\n        this._onDidChangeStickyScroll = this._register(new Emitter());\n        this.onDidChangeStickyScroll = this._onDidChangeStickyScroll.event;\n        this._model = null;\n        this._cts = null;\n        this._stickyModelProvider = null;\n        this._editor = editor;\n        this._sessionStore = this._register(new DisposableStore());\n        this._updateSoon = this._register(new RunOnceScheduler(() => this.update(), 50));\n        this._register(this._editor.onDidChangeConfiguration(e => {\n            if (e.hasChanged(115 /* EditorOption.stickyScroll */)) {\n                this.readConfiguration();\n            }\n        }));\n        this.readConfiguration();\n    }\n    readConfiguration() {\n        this._sessionStore.clear();\n        const options = this._editor.getOption(115 /* EditorOption.stickyScroll */);\n        if (!options.enabled) {\n            return;\n        }\n        this._sessionStore.add(this._editor.onDidChangeModel(() => {\n            // We should not show an old model for a different file, it will always be wrong.\n            // So we clear the model here immediately and then trigger an update.\n            this._model = null;\n            this.updateStickyModelProvider();\n            this._onDidChangeStickyScroll.fire();\n            this.update();\n        }));\n        this._sessionStore.add(this._editor.onDidChangeHiddenAreas(() => this.update()));\n        this._sessionStore.add(this._editor.onDidChangeModelContent(() => this._updateSoon.schedule()));\n        this._sessionStore.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(() => this.update()));\n        this._sessionStore.add(toDisposable(() => {\n            var _a;\n            (_a = this._stickyModelProvider) === null || _a === void 0 ? void 0 : _a.dispose();\n            this._stickyModelProvider = null;\n        }));\n        this.updateStickyModelProvider();\n        this.update();\n    }\n    getVersionId() {\n        var _a;\n        return (_a = this._model) === null || _a === void 0 ? void 0 : _a.version;\n    }\n    updateStickyModelProvider() {\n        var _a;\n        (_a = this._stickyModelProvider) === null || _a === void 0 ? void 0 : _a.dispose();\n        this._stickyModelProvider = null;\n        const editor = this._editor;\n        if (editor.hasModel()) {\n            this._stickyModelProvider = new StickyModelProvider(editor, () => this._updateSoon.schedule(), this._languageConfigurationService, this._languageFeaturesService);\n        }\n    }\n    async update() {\n        var _a;\n        (_a = this._cts) === null || _a === void 0 ? void 0 : _a.dispose(true);\n        this._cts = new CancellationTokenSource();\n        await this.updateStickyModel(this._cts.token);\n        this._onDidChangeStickyScroll.fire();\n    }\n    async updateStickyModel(token) {\n        if (!this._editor.hasModel() || !this._stickyModelProvider || this._editor.getModel().isTooLargeForTokenization()) {\n            this._model = null;\n            return;\n        }\n        const model = await this._stickyModelProvider.update(token);\n        if (token.isCancellationRequested) {\n            // the computation was canceled, so do not overwrite the model\n            return;\n        }\n        this._model = model;\n    }\n    updateIndex(index) {\n        if (index === -1) {\n            index = 0;\n        }\n        else if (index < 0) {\n            index = -index - 2;\n        }\n        return index;\n    }\n    getCandidateStickyLinesIntersectingFromStickyModel(range, outlineModel, result, depth, lastStartLineNumber) {\n        if (outlineModel.children.length === 0) {\n            return;\n        }\n        let lastLine = lastStartLineNumber;\n        const childrenStartLines = [];\n        for (let i = 0; i < outlineModel.children.length; i++) {\n            const child = outlineModel.children[i];\n            if (child.range) {\n                childrenStartLines.push(child.range.startLineNumber);\n            }\n        }\n        const lowerBound = this.updateIndex(binarySearch(childrenStartLines, range.startLineNumber, (a, b) => { return a - b; }));\n        const upperBound = this.updateIndex(binarySearch(childrenStartLines, range.startLineNumber + depth, (a, b) => { return a - b; }));\n        for (let i = lowerBound; i <= upperBound; i++) {\n            const child = outlineModel.children[i];\n            if (!child) {\n                return;\n            }\n            if (child.range) {\n                const childStartLine = child.range.startLineNumber;\n                const childEndLine = child.range.endLineNumber;\n                if (range.startLineNumber <= childEndLine + 1 && childStartLine - 1 <= range.endLineNumber && childStartLine !== lastLine) {\n                    lastLine = childStartLine;\n                    result.push(new StickyLineCandidate(childStartLine, childEndLine - 1, depth + 1));\n                    this.getCandidateStickyLinesIntersectingFromStickyModel(range, child, result, depth + 1, childStartLine);\n                }\n            }\n            else {\n                this.getCandidateStickyLinesIntersectingFromStickyModel(range, child, result, depth, lastStartLineNumber);\n            }\n        }\n    }\n    getCandidateStickyLinesIntersecting(range) {\n        var _a, _b;\n        if (!((_a = this._model) === null || _a === void 0 ? void 0 : _a.element)) {\n            return [];\n        }\n        let stickyLineCandidates = [];\n        this.getCandidateStickyLinesIntersectingFromStickyModel(range, this._model.element, stickyLineCandidates, 0, -1);\n        const hiddenRanges = (_b = this._editor._getViewModel()) === null || _b === void 0 ? void 0 : _b.getHiddenAreas();\n        if (hiddenRanges) {\n            for (const hiddenRange of hiddenRanges) {\n                stickyLineCandidates = stickyLineCandidates.filter(stickyLine => !(stickyLine.startLineNumber >= hiddenRange.startLineNumber && stickyLine.endLineNumber <= hiddenRange.endLineNumber + 1));\n            }\n        }\n        return stickyLineCandidates;\n    }\n};\nStickyLineCandidateProvider = __decorate([\n    __param(1, ILanguageFeaturesService),\n    __param(2, ILanguageConfigurationService)\n], StickyLineCandidateProvider);\nexport { StickyLineCandidateProvider };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../../../base/browser/dom.js';\nimport { createTrustedTypesPolicy } from '../../../../base/browser/trustedTypes.js';\nimport { equals } from '../../../../base/common/arrays.js';\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { ThemeIcon } from '../../../../base/common/themables.js';\nimport './stickyScroll.css';\nimport { getColumnOfNodeOffset } from '../../../browser/viewParts/lines/viewLine.js';\nimport { EmbeddedCodeEditorWidget } from '../../../browser/widget/codeEditor/embeddedCodeEditorWidget.js';\nimport { Position } from '../../../common/core/position.js';\nimport { StringBuilder } from '../../../common/core/stringBuilder.js';\nimport { LineDecoration } from '../../../common/viewLayout/lineDecorations.js';\nimport { RenderLineInput, renderViewLine } from '../../../common/viewLayout/viewLineRenderer.js';\nimport { foldingCollapsedIcon, foldingExpandedIcon } from '../../folding/browser/foldingDecorations.js';\nexport class StickyScrollWidgetState {\n    constructor(startLineNumbers, endLineNumbers, lastLineRelativePosition, showEndForLine = null) {\n        this.startLineNumbers = startLineNumbers;\n        this.endLineNumbers = endLineNumbers;\n        this.lastLineRelativePosition = lastLineRelativePosition;\n        this.showEndForLine = showEndForLine;\n    }\n    equals(other) {\n        return !!other\n            && this.lastLineRelativePosition === other.lastLineRelativePosition\n            && this.showEndForLine === other.showEndForLine\n            && equals(this.startLineNumbers, other.startLineNumbers)\n            && equals(this.endLineNumbers, other.endLineNumbers);\n    }\n}\nconst _ttPolicy = createTrustedTypesPolicy('stickyScrollViewLayer', { createHTML: value => value });\nconst STICKY_INDEX_ATTR = 'data-sticky-line-index';\nconst STICKY_IS_LINE_ATTR = 'data-sticky-is-line';\nconst STICKY_IS_LINE_NUMBER_ATTR = 'data-sticky-is-line-number';\nconst STICKY_IS_FOLDING_ICON_ATTR = 'data-sticky-is-folding-icon';\nexport class StickyScrollWidget extends Disposable {\n    constructor(_editor) {\n        super();\n        this._editor = _editor;\n        this._foldingIconStore = new DisposableStore();\n        this._rootDomNode = document.createElement('div');\n        this._lineNumbersDomNode = document.createElement('div');\n        this._linesDomNodeScrollable = document.createElement('div');\n        this._linesDomNode = document.createElement('div');\n        this._lineHeight = this._editor.getOption(67 /* EditorOption.lineHeight */);\n        this._renderedStickyLines = [];\n        this._lineNumbers = [];\n        this._lastLineRelativePosition = 0;\n        this._minContentWidthInPx = 0;\n        this._isOnGlyphMargin = false;\n        this._lineNumbersDomNode.className = 'sticky-widget-line-numbers';\n        this._lineNumbersDomNode.setAttribute('role', 'none');\n        this._linesDomNode.className = 'sticky-widget-lines';\n        this._linesDomNode.setAttribute('role', 'list');\n        this._linesDomNodeScrollable.className = 'sticky-widget-lines-scrollable';\n        this._linesDomNodeScrollable.appendChild(this._linesDomNode);\n        this._rootDomNode.className = 'sticky-widget';\n        this._rootDomNode.classList.toggle('peek', _editor instanceof EmbeddedCodeEditorWidget);\n        this._rootDomNode.appendChild(this._lineNumbersDomNode);\n        this._rootDomNode.appendChild(this._linesDomNodeScrollable);\n        const updateScrollLeftPosition = () => {\n            this._linesDomNode.style.left = this._editor.getOption(115 /* EditorOption.stickyScroll */).scrollWithEditor ? `-${this._editor.getScrollLeft()}px` : '0px';\n        };\n        this._register(this._editor.onDidChangeConfiguration((e) => {\n            if (e.hasChanged(115 /* EditorOption.stickyScroll */)) {\n                updateScrollLeftPosition();\n            }\n            if (e.hasChanged(67 /* EditorOption.lineHeight */)) {\n                this._lineHeight = this._editor.getOption(67 /* EditorOption.lineHeight */);\n            }\n        }));\n        this._register(this._editor.onDidScrollChange((e) => {\n            if (e.scrollLeftChanged) {\n                updateScrollLeftPosition();\n            }\n            if (e.scrollWidthChanged) {\n                this._updateWidgetWidth();\n            }\n        }));\n        this._register(this._editor.onDidChangeModel(() => {\n            updateScrollLeftPosition();\n            this._updateWidgetWidth();\n        }));\n        this._register(this._foldingIconStore);\n        updateScrollLeftPosition();\n        this._register(this._editor.onDidLayoutChange((e) => {\n            this._updateWidgetWidth();\n        }));\n        this._updateWidgetWidth();\n    }\n    get lineNumbers() {\n        return this._lineNumbers;\n    }\n    get lineNumberCount() {\n        return this._lineNumbers.length;\n    }\n    getRenderedStickyLine(lineNumber) {\n        return this._renderedStickyLines.find(stickyLine => stickyLine.lineNumber === lineNumber);\n    }\n    getCurrentLines() {\n        return this._lineNumbers;\n    }\n    setState(_state, foldingModel, _rebuildFromLine) {\n        if (_rebuildFromLine === undefined &&\n            ((!this._previousState && !_state) || (this._previousState && this._previousState.equals(_state)))) {\n            return;\n        }\n        const isWidgetHeightZero = this._isWidgetHeightZero(_state);\n        const state = isWidgetHeightZero ? undefined : _state;\n        const rebuildFromLine = isWidgetHeightZero ? 0 : this._findLineToRebuildWidgetFrom(_state, _rebuildFromLine);\n        this._renderRootNode(state, foldingModel, rebuildFromLine);\n        this._previousState = _state;\n    }\n    _isWidgetHeightZero(state) {\n        if (!state) {\n            return true;\n        }\n        const futureWidgetHeight = state.startLineNumbers.length * this._lineHeight + state.lastLineRelativePosition;\n        if (futureWidgetHeight > 0) {\n            this._lastLineRelativePosition = state.lastLineRelativePosition;\n            const lineNumbers = [...state.startLineNumbers];\n            if (state.showEndForLine !== null) {\n                lineNumbers[state.showEndForLine] = state.endLineNumbers[state.showEndForLine];\n            }\n            this._lineNumbers = lineNumbers;\n        }\n        else {\n            this._lastLineRelativePosition = 0;\n            this._lineNumbers = [];\n        }\n        return futureWidgetHeight === 0;\n    }\n    _findLineToRebuildWidgetFrom(state, _rebuildFromLine) {\n        if (!state || !this._previousState) {\n            return 0;\n        }\n        if (_rebuildFromLine !== undefined) {\n            return _rebuildFromLine;\n        }\n        const previousState = this._previousState;\n        const indexOfLinesAlreadyRendered = state.startLineNumbers.findIndex(startLineNumber => !previousState.startLineNumbers.includes(startLineNumber));\n        return (indexOfLinesAlreadyRendered === -1) ? 0 : indexOfLinesAlreadyRendered;\n    }\n    _updateWidgetWidth() {\n        const layoutInfo = this._editor.getLayoutInfo();\n        const lineNumbersWidth = layoutInfo.contentLeft;\n        this._lineNumbersDomNode.style.width = `${lineNumbersWidth}px`;\n        this._linesDomNodeScrollable.style.setProperty('--vscode-editorStickyScroll-scrollableWidth', `${this._editor.getScrollWidth() - layoutInfo.verticalScrollbarWidth}px`);\n        this._rootDomNode.style.width = `${layoutInfo.width - layoutInfo.verticalScrollbarWidth}px`;\n    }\n    _clearStickyLinesFromLine(clearFromLine) {\n        this._foldingIconStore.clear();\n        // Removing only the lines that need to be rerendered\n        for (let i = clearFromLine; i < this._renderedStickyLines.length; i++) {\n            const stickyLine = this._renderedStickyLines[i];\n            stickyLine.lineNumberDomNode.remove();\n            stickyLine.lineDomNode.remove();\n        }\n        // Keep the lines that need to be updated\n        this._renderedStickyLines = this._renderedStickyLines.slice(0, clearFromLine);\n        this._rootDomNode.style.display = 'none';\n    }\n    _useFoldingOpacityTransition(requireTransitions) {\n        this._lineNumbersDomNode.style.setProperty('--vscode-editorStickyScroll-foldingOpacityTransition', `opacity ${requireTransitions ? 0.5 : 0}s`);\n    }\n    _setFoldingIconsVisibility(allVisible) {\n        for (const line of this._renderedStickyLines) {\n            const foldingIcon = line.foldingIcon;\n            if (!foldingIcon) {\n                continue;\n            }\n            foldingIcon.setVisible(allVisible ? true : foldingIcon.isCollapsed);\n        }\n    }\n    async _renderRootNode(state, foldingModel, rebuildFromLine) {\n        this._clearStickyLinesFromLine(rebuildFromLine);\n        if (!state) {\n            return;\n        }\n        // For existing sticky lines update the top and z-index\n        for (const stickyLine of this._renderedStickyLines) {\n            this._updateTopAndZIndexOfStickyLine(stickyLine);\n        }\n        // For new sticky lines\n        const layoutInfo = this._editor.getLayoutInfo();\n        const linesToRender = this._lineNumbers.slice(rebuildFromLine);\n        for (const [index, line] of linesToRender.entries()) {\n            const stickyLine = this._renderChildNode(index + rebuildFromLine, line, foldingModel, layoutInfo);\n            if (!stickyLine) {\n                continue;\n            }\n            this._linesDomNode.appendChild(stickyLine.lineDomNode);\n            this._lineNumbersDomNode.appendChild(stickyLine.lineNumberDomNode);\n            this._renderedStickyLines.push(stickyLine);\n        }\n        if (foldingModel) {\n            this._setFoldingHoverListeners();\n            this._useFoldingOpacityTransition(!this._isOnGlyphMargin);\n        }\n        const widgetHeight = this._lineNumbers.length * this._lineHeight + this._lastLineRelativePosition;\n        this._rootDomNode.style.display = 'block';\n        this._lineNumbersDomNode.style.height = `${widgetHeight}px`;\n        this._linesDomNodeScrollable.style.height = `${widgetHeight}px`;\n        this._rootDomNode.style.height = `${widgetHeight}px`;\n        this._rootDomNode.style.marginLeft = '0px';\n        this._minContentWidthInPx = Math.max(...this._renderedStickyLines.map(l => l.scrollWidth)) + layoutInfo.verticalScrollbarWidth;\n        this._editor.layoutOverlayWidget(this);\n    }\n    _setFoldingHoverListeners() {\n        const showFoldingControls = this._editor.getOption(110 /* EditorOption.showFoldingControls */);\n        if (showFoldingControls !== 'mouseover') {\n            return;\n        }\n        this._foldingIconStore.add(dom.addDisposableListener(this._lineNumbersDomNode, dom.EventType.MOUSE_ENTER, () => {\n            this._isOnGlyphMargin = true;\n            this._setFoldingIconsVisibility(true);\n        }));\n        this._foldingIconStore.add(dom.addDisposableListener(this._lineNumbersDomNode, dom.EventType.MOUSE_LEAVE, () => {\n            this._isOnGlyphMargin = false;\n            this._useFoldingOpacityTransition(true);\n            this._setFoldingIconsVisibility(false);\n        }));\n    }\n    _renderChildNode(index, line, foldingModel, layoutInfo) {\n        const viewModel = this._editor._getViewModel();\n        if (!viewModel) {\n            return;\n        }\n        const viewLineNumber = viewModel.coordinatesConverter.convertModelPositionToViewPosition(new Position(line, 1)).lineNumber;\n        const lineRenderingData = viewModel.getViewLineRenderingData(viewLineNumber);\n        const lineNumberOption = this._editor.getOption(68 /* EditorOption.lineNumbers */);\n        let actualInlineDecorations;\n        try {\n            actualInlineDecorations = LineDecoration.filter(lineRenderingData.inlineDecorations, viewLineNumber, lineRenderingData.minColumn, lineRenderingData.maxColumn);\n        }\n        catch (err) {\n            actualInlineDecorations = [];\n        }\n        const renderLineInput = new RenderLineInput(true, true, lineRenderingData.content, lineRenderingData.continuesWithWrappedLine, lineRenderingData.isBasicASCII, lineRenderingData.containsRTL, 0, lineRenderingData.tokens, actualInlineDecorations, lineRenderingData.tabSize, lineRenderingData.startVisibleColumn, 1, 1, 1, 500, 'none', true, true, null);\n        const sb = new StringBuilder(2000);\n        const renderOutput = renderViewLine(renderLineInput, sb);\n        let newLine;\n        if (_ttPolicy) {\n            newLine = _ttPolicy.createHTML(sb.build());\n        }\n        else {\n            newLine = sb.build();\n        }\n        const lineHTMLNode = document.createElement('span');\n        lineHTMLNode.setAttribute(STICKY_INDEX_ATTR, String(index));\n        lineHTMLNode.setAttribute(STICKY_IS_LINE_ATTR, '');\n        lineHTMLNode.setAttribute('role', 'listitem');\n        lineHTMLNode.tabIndex = 0;\n        lineHTMLNode.className = 'sticky-line-content';\n        lineHTMLNode.classList.add(`stickyLine${line}`);\n        lineHTMLNode.style.lineHeight = `${this._lineHeight}px`;\n        lineHTMLNode.innerHTML = newLine;\n        const lineNumberHTMLNode = document.createElement('span');\n        lineNumberHTMLNode.setAttribute(STICKY_INDEX_ATTR, String(index));\n        lineNumberHTMLNode.setAttribute(STICKY_IS_LINE_NUMBER_ATTR, '');\n        lineNumberHTMLNode.className = 'sticky-line-number';\n        lineNumberHTMLNode.style.lineHeight = `${this._lineHeight}px`;\n        const lineNumbersWidth = layoutInfo.contentLeft;\n        lineNumberHTMLNode.style.width = `${lineNumbersWidth}px`;\n        const innerLineNumberHTML = document.createElement('span');\n        if (lineNumberOption.renderType === 1 /* RenderLineNumbersType.On */ || lineNumberOption.renderType === 3 /* RenderLineNumbersType.Interval */ && line % 10 === 0) {\n            innerLineNumberHTML.innerText = line.toString();\n        }\n        else if (lineNumberOption.renderType === 2 /* RenderLineNumbersType.Relative */) {\n            innerLineNumberHTML.innerText = Math.abs(line - this._editor.getPosition().lineNumber).toString();\n        }\n        innerLineNumberHTML.className = 'sticky-line-number-inner';\n        innerLineNumberHTML.style.lineHeight = `${this._lineHeight}px`;\n        innerLineNumberHTML.style.width = `${layoutInfo.lineNumbersWidth}px`;\n        innerLineNumberHTML.style.paddingLeft = `${layoutInfo.lineNumbersLeft}px`;\n        lineNumberHTMLNode.appendChild(innerLineNumberHTML);\n        const foldingIcon = this._renderFoldingIconForLine(foldingModel, line);\n        if (foldingIcon) {\n            lineNumberHTMLNode.appendChild(foldingIcon.domNode);\n        }\n        this._editor.applyFontInfo(lineHTMLNode);\n        this._editor.applyFontInfo(innerLineNumberHTML);\n        lineNumberHTMLNode.style.lineHeight = `${this._lineHeight}px`;\n        lineHTMLNode.style.lineHeight = `${this._lineHeight}px`;\n        lineNumberHTMLNode.style.height = `${this._lineHeight}px`;\n        lineHTMLNode.style.height = `${this._lineHeight}px`;\n        const renderedLine = new RenderedStickyLine(index, line, lineHTMLNode, lineNumberHTMLNode, foldingIcon, renderOutput.characterMapping, lineHTMLNode.scrollWidth);\n        return this._updateTopAndZIndexOfStickyLine(renderedLine);\n    }\n    _updateTopAndZIndexOfStickyLine(stickyLine) {\n        var _a;\n        const index = stickyLine.index;\n        const lineHTMLNode = stickyLine.lineDomNode;\n        const lineNumberHTMLNode = stickyLine.lineNumberDomNode;\n        const isLastLine = index === this._lineNumbers.length - 1;\n        const lastLineZIndex = '0';\n        const intermediateLineZIndex = '1';\n        lineHTMLNode.style.zIndex = isLastLine ? lastLineZIndex : intermediateLineZIndex;\n        lineNumberHTMLNode.style.zIndex = isLastLine ? lastLineZIndex : intermediateLineZIndex;\n        const lastLineTop = `${index * this._lineHeight + this._lastLineRelativePosition + (((_a = stickyLine.foldingIcon) === null || _a === void 0 ? void 0 : _a.isCollapsed) ? 1 : 0)}px`;\n        const intermediateLineTop = `${index * this._lineHeight}px`;\n        lineHTMLNode.style.top = isLastLine ? lastLineTop : intermediateLineTop;\n        lineNumberHTMLNode.style.top = isLastLine ? lastLineTop : intermediateLineTop;\n        return stickyLine;\n    }\n    _renderFoldingIconForLine(foldingModel, line) {\n        const showFoldingControls = this._editor.getOption(110 /* EditorOption.showFoldingControls */);\n        if (!foldingModel || showFoldingControls === 'never') {\n            return;\n        }\n        const foldingRegions = foldingModel.regions;\n        const indexOfFoldingRegion = foldingRegions.findRange(line);\n        const startLineNumber = foldingRegions.getStartLineNumber(indexOfFoldingRegion);\n        const isFoldingScope = line === startLineNumber;\n        if (!isFoldingScope) {\n            return;\n        }\n        const isCollapsed = foldingRegions.isCollapsed(indexOfFoldingRegion);\n        const foldingIcon = new StickyFoldingIcon(isCollapsed, startLineNumber, foldingRegions.getEndLineNumber(indexOfFoldingRegion), this._lineHeight);\n        foldingIcon.setVisible(this._isOnGlyphMargin ? true : (isCollapsed || showFoldingControls === 'always'));\n        foldingIcon.domNode.setAttribute(STICKY_IS_FOLDING_ICON_ATTR, '');\n        return foldingIcon;\n    }\n    getId() {\n        return 'editor.contrib.stickyScrollWidget';\n    }\n    getDomNode() {\n        return this._rootDomNode;\n    }\n    getPosition() {\n        return {\n            preference: 2 /* OverlayWidgetPositionPreference.TOP_CENTER */,\n            stackOridinal: 10,\n        };\n    }\n    getMinContentWidthInPx() {\n        return this._minContentWidthInPx;\n    }\n    focusLineWithIndex(index) {\n        if (0 <= index && index < this._renderedStickyLines.length) {\n            this._renderedStickyLines[index].lineDomNode.focus();\n        }\n    }\n    /**\n     * Given a leaf dom node, tries to find the editor position.\n     */\n    getEditorPositionFromNode(spanDomNode) {\n        if (!spanDomNode || spanDomNode.children.length > 0) {\n            // This is not a leaf node\n            return null;\n        }\n        const renderedStickyLine = this._getRenderedStickyLineFromChildDomNode(spanDomNode);\n        if (!renderedStickyLine) {\n            return null;\n        }\n        const column = getColumnOfNodeOffset(renderedStickyLine.characterMapping, spanDomNode, 0);\n        return new Position(renderedStickyLine.lineNumber, column);\n    }\n    getLineNumberFromChildDomNode(domNode) {\n        var _a, _b;\n        return (_b = (_a = this._getRenderedStickyLineFromChildDomNode(domNode)) === null || _a === void 0 ? void 0 : _a.lineNumber) !== null && _b !== void 0 ? _b : null;\n    }\n    _getRenderedStickyLineFromChildDomNode(domNode) {\n        const index = this.getLineIndexFromChildDomNode(domNode);\n        if (index === null || index < 0 || index >= this._renderedStickyLines.length) {\n            return null;\n        }\n        return this._renderedStickyLines[index];\n    }\n    /**\n     * Given a child dom node, tries to find the line number attribute that was stored in the node.\n     * @returns the attribute value or null if none is found.\n     */\n    getLineIndexFromChildDomNode(domNode) {\n        const lineIndex = this._getAttributeValue(domNode, STICKY_INDEX_ATTR);\n        return lineIndex ? parseInt(lineIndex, 10) : null;\n    }\n    /**\n     * Given a child dom node, tries to find if it is (contained in) a sticky line.\n     * @returns a boolean.\n     */\n    isInStickyLine(domNode) {\n        const isInLine = this._getAttributeValue(domNode, STICKY_IS_LINE_ATTR);\n        return isInLine !== undefined;\n    }\n    /**\n     * Given a child dom node, tries to find if this dom node is (contained in) a sticky folding icon.\n     * @returns a boolean.\n     */\n    isInFoldingIconDomNode(domNode) {\n        const isInFoldingIcon = this._getAttributeValue(domNode, STICKY_IS_FOLDING_ICON_ATTR);\n        return isInFoldingIcon !== undefined;\n    }\n    /**\n     * Given the dom node, finds if it or its parent sequence contains the given attribute.\n     * @returns the attribute value or undefined.\n     */\n    _getAttributeValue(domNode, attribute) {\n        while (domNode && domNode !== this._rootDomNode) {\n            const line = domNode.getAttribute(attribute);\n            if (line !== null) {\n                return line;\n            }\n            domNode = domNode.parentElement;\n        }\n        return;\n    }\n}\nclass RenderedStickyLine {\n    constructor(index, lineNumber, lineDomNode, lineNumberDomNode, foldingIcon, characterMapping, scrollWidth) {\n        this.index = index;\n        this.lineNumber = lineNumber;\n        this.lineDomNode = lineDomNode;\n        this.lineNumberDomNode = lineNumberDomNode;\n        this.foldingIcon = foldingIcon;\n        this.characterMapping = characterMapping;\n        this.scrollWidth = scrollWidth;\n    }\n}\nclass StickyFoldingIcon {\n    constructor(isCollapsed, foldingStartLine, foldingEndLine, dimension) {\n        this.isCollapsed = isCollapsed;\n        this.foldingStartLine = foldingStartLine;\n        this.foldingEndLine = foldingEndLine;\n        this.dimension = dimension;\n        this.domNode = document.createElement('div');\n        this.domNode.style.width = `${dimension}px`;\n        this.domNode.style.height = `${dimension}px`;\n        this.domNode.className = ThemeIcon.asClassName(isCollapsed ? foldingCollapsedIcon : foldingExpandedIcon);\n    }\n    setVisible(visible) {\n        this.domNode.style.cursor = visible ? 'pointer' : 'default';\n        this.domNode.style.opacity = visible ? '1' : '0';\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/suggest/browser/completionModel.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { quickSelect } from '../../../../base/common/arrays.js';\nimport { anyScore, fuzzyScore, FuzzyScore, fuzzyScoreGracefulAggressive, FuzzyScoreOptions } from '../../../../base/common/filters.js';\nimport { compareIgnoreCase } from '../../../../base/common/strings.js';\nexport class LineContext {\n    constructor(leadingLineContent, characterCountDelta) {\n        this.leadingLineContent = leadingLineContent;\n        this.characterCountDelta = characterCountDelta;\n    }\n}\n/**\n * Sorted, filtered completion view model\n * */\nexport class CompletionModel {\n    constructor(items, column, lineContext, wordDistance, options, snippetSuggestions, fuzzyScoreOptions = FuzzyScoreOptions.default, clipboardText = undefined) {\n        this.clipboardText = clipboardText;\n        this._snippetCompareFn = CompletionModel._compareCompletionItems;\n        this._items = items;\n        this._column = column;\n        this._wordDistance = wordDistance;\n        this._options = options;\n        this._refilterKind = 1 /* Refilter.All */;\n        this._lineContext = lineContext;\n        this._fuzzyScoreOptions = fuzzyScoreOptions;\n        if (snippetSuggestions === 'top') {\n            this._snippetCompareFn = CompletionModel._compareCompletionItemsSnippetsUp;\n        }\n        else if (snippetSuggestions === 'bottom') {\n            this._snippetCompareFn = CompletionModel._compareCompletionItemsSnippetsDown;\n        }\n    }\n    get lineContext() {\n        return this._lineContext;\n    }\n    set lineContext(value) {\n        if (this._lineContext.leadingLineContent !== value.leadingLineContent\n            || this._lineContext.characterCountDelta !== value.characterCountDelta) {\n            this._refilterKind = this._lineContext.characterCountDelta < value.characterCountDelta && this._filteredItems ? 2 /* Refilter.Incr */ : 1 /* Refilter.All */;\n            this._lineContext = value;\n        }\n    }\n    get items() {\n        this._ensureCachedState();\n        return this._filteredItems;\n    }\n    getItemsByProvider() {\n        this._ensureCachedState();\n        return this._itemsByProvider;\n    }\n    getIncompleteProvider() {\n        this._ensureCachedState();\n        const result = new Set();\n        for (const [provider, items] of this.getItemsByProvider()) {\n            if (items.length > 0 && items[0].container.incomplete) {\n                result.add(provider);\n            }\n        }\n        return result;\n    }\n    get stats() {\n        this._ensureCachedState();\n        return this._stats;\n    }\n    _ensureCachedState() {\n        if (this._refilterKind !== 0 /* Refilter.Nothing */) {\n            this._createCachedState();\n        }\n    }\n    _createCachedState() {\n        this._itemsByProvider = new Map();\n        const labelLengths = [];\n        const { leadingLineContent, characterCountDelta } = this._lineContext;\n        let word = '';\n        let wordLow = '';\n        // incrementally filter less\n        const source = this._refilterKind === 1 /* Refilter.All */ ? this._items : this._filteredItems;\n        const target = [];\n        // picks a score function based on the number of\n        // items that we have to score/filter and based on the\n        // user-configuration\n        const scoreFn = (!this._options.filterGraceful || source.length > 2000) ? fuzzyScore : fuzzyScoreGracefulAggressive;\n        for (let i = 0; i < source.length; i++) {\n            const item = source[i];\n            if (item.isInvalid) {\n                continue; // SKIP invalid items\n            }\n            // keep all items by their provider\n            const arr = this._itemsByProvider.get(item.provider);\n            if (arr) {\n                arr.push(item);\n            }\n            else {\n                this._itemsByProvider.set(item.provider, [item]);\n            }\n            // 'word' is that remainder of the current line that we\n            // filter and score against. In theory each suggestion uses a\n            // different word, but in practice not - that's why we cache\n            const overwriteBefore = item.position.column - item.editStart.column;\n            const wordLen = overwriteBefore + characterCountDelta - (item.position.column - this._column);\n            if (word.length !== wordLen) {\n                word = wordLen === 0 ? '' : leadingLineContent.slice(-wordLen);\n                wordLow = word.toLowerCase();\n            }\n            // remember the word against which this item was\n            // scored\n            item.word = word;\n            if (wordLen === 0) {\n                // when there is nothing to score against, don't\n                // event try to do. Use a const rank and rely on\n                // the fallback-sort using the initial sort order.\n                // use a score of `-100` because that is out of the\n                // bound of values `fuzzyScore` will return\n                item.score = FuzzyScore.Default;\n            }\n            else {\n                // skip word characters that are whitespace until\n                // we have hit the replace range (overwriteBefore)\n                let wordPos = 0;\n                while (wordPos < overwriteBefore) {\n                    const ch = word.charCodeAt(wordPos);\n                    if (ch === 32 /* CharCode.Space */ || ch === 9 /* CharCode.Tab */) {\n                        wordPos += 1;\n                    }\n                    else {\n                        break;\n                    }\n                }\n                if (wordPos >= wordLen) {\n                    // the wordPos at which scoring starts is the whole word\n                    // and therefore the same rules as not having a word apply\n                    item.score = FuzzyScore.Default;\n                }\n                else if (typeof item.completion.filterText === 'string') {\n                    // when there is a `filterText` it must match the `word`.\n                    // if it matches we check with the label to compute highlights\n                    // and if that doesn't yield a result we have no highlights,\n                    // despite having the match\n                    const match = scoreFn(word, wordLow, wordPos, item.completion.filterText, item.filterTextLow, 0, this._fuzzyScoreOptions);\n                    if (!match) {\n                        continue; // NO match\n                    }\n                    if (compareIgnoreCase(item.completion.filterText, item.textLabel) === 0) {\n                        // filterText and label are actually the same -> use good highlights\n                        item.score = match;\n                    }\n                    else {\n                        // re-run the scorer on the label in the hope of a result BUT use the rank\n                        // of the filterText-match\n                        item.score = anyScore(word, wordLow, wordPos, item.textLabel, item.labelLow, 0);\n                        item.score[0] = match[0]; // use score from filterText\n                    }\n                }\n                else {\n                    // by default match `word` against the `label`\n                    const match = scoreFn(word, wordLow, wordPos, item.textLabel, item.labelLow, 0, this._fuzzyScoreOptions);\n                    if (!match) {\n                        continue; // NO match\n                    }\n                    item.score = match;\n                }\n            }\n            item.idx = i;\n            item.distance = this._wordDistance.distance(item.position, item.completion);\n            target.push(item);\n            // update stats\n            labelLengths.push(item.textLabel.length);\n        }\n        this._filteredItems = target.sort(this._snippetCompareFn);\n        this._refilterKind = 0 /* Refilter.Nothing */;\n        this._stats = {\n            pLabelLen: labelLengths.length ?\n                quickSelect(labelLengths.length - .85, labelLengths, (a, b) => a - b)\n                : 0\n        };\n    }\n    static _compareCompletionItems(a, b) {\n        if (a.score[0] > b.score[0]) {\n            return -1;\n        }\n        else if (a.score[0] < b.score[0]) {\n            return 1;\n        }\n        else if (a.distance < b.distance) {\n            return -1;\n        }\n        else if (a.distance > b.distance) {\n            return 1;\n        }\n        else if (a.idx < b.idx) {\n            return -1;\n        }\n        else if (a.idx > b.idx) {\n            return 1;\n        }\n        else {\n            return 0;\n        }\n    }\n    static _compareCompletionItemsSnippetsDown(a, b) {\n        if (a.completion.kind !== b.completion.kind) {\n            if (a.completion.kind === 27 /* CompletionItemKind.Snippet */) {\n                return 1;\n            }\n            else if (b.completion.kind === 27 /* CompletionItemKind.Snippet */) {\n                return -1;\n            }\n        }\n        return CompletionModel._compareCompletionItems(a, b);\n    }\n    static _compareCompletionItemsSnippetsUp(a, b) {\n        if (a.completion.kind !== b.completion.kind) {\n            if (a.completion.kind === 27 /* CompletionItemKind.Snippet */) {\n                return -1;\n            }\n            else if (b.completion.kind === 27 /* CompletionItemKind.Snippet */) {\n                return 1;\n            }\n        }\n        return CompletionModel._compareCompletionItems(a, b);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/suggest/browser/media/suggest.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n/* Suggest widget*/\n\n.monaco-editor .suggest-widget {\n\twidth: 430px;\n\tz-index: 40;\n\tdisplay: flex;\n\tflex-direction: column;\n\tborder-radius: 3px;\n}\n\n.monaco-editor .suggest-widget.message {\n\tflex-direction: row;\n\talign-items: center;\n}\n\n.monaco-editor .suggest-widget,\n.monaco-editor .suggest-details {\n\tflex: 0 1 auto;\n\twidth: 100%;\n\tborder-style: solid;\n\tborder-width: 1px;\n\tborder-color: var(--vscode-editorSuggestWidget-border);\n\tbackground-color: var(--vscode-editorSuggestWidget-background);\n}\n\n.monaco-editor.hc-black .suggest-widget,\n.monaco-editor.hc-black .suggest-details,\n.monaco-editor.hc-light .suggest-widget,\n.monaco-editor.hc-light .suggest-details {\n\tborder-width: 2px;\n}\n\n/* Styles for status bar part */\n\n\n.monaco-editor .suggest-widget .suggest-status-bar {\n\tbox-sizing: border-box;\n\tdisplay: none;\n\tflex-flow: row nowrap;\n\tjustify-content: space-between;\n\twidth: 100%;\n\tfont-size: 80%;\n\tpadding: 0 4px 0 4px;\n\tborder-top: 1px solid var(--vscode-editorSuggestWidget-border);\n\toverflow: hidden;\n}\n\n.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar {\n\tdisplay: flex;\n}\n\n.monaco-editor .suggest-widget .suggest-status-bar .left {\n\tpadding-right: 8px;\n}\n\n.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-label {\n\tcolor: var(--vscode-editorSuggestWidgetStatus-foreground);\n}\n\n.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label {\n\tmargin-right: 0;\n}\n\n.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label::after {\n\tcontent: ', ';\n\tmargin-right: 0.3em;\n}\n\n.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row > .contents > .main > .right > .readMore,\n.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row.focused.string-label > .contents > .main > .right > .readMore {\n\tdisplay: none;\n}\n\n.monaco-editor .suggest-widget.with-status-bar:not(.docs-side) .monaco-list .monaco-list-row:hover > .contents > .main > .right.can-expand-details > .details-label {\n\twidth: 100%;\n}\n\n/* Styles for Message element for when widget is loading or is empty */\n\n.monaco-editor .suggest-widget > .message {\n\tpadding-left: 22px;\n}\n\n/** Styles for the list element **/\n\n.monaco-editor .suggest-widget > .tree {\n\theight: 100%;\n\twidth: 100%;\n}\n\n.monaco-editor .suggest-widget .monaco-list {\n\tuser-select: none;\n\t-webkit-user-select: none;\n}\n\n/** Styles for each row in the list element **/\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row {\n\tdisplay: flex;\n\t-mox-box-sizing: border-box;\n\tbox-sizing: border-box;\n\tpadding-right: 10px;\n\tbackground-repeat: no-repeat;\n\tbackground-position: 2px 2px;\n\twhite-space: nowrap;\n\tcursor: pointer;\n\ttouch-action: none;\n}\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused {\n\tcolor: var(--vscode-editorSuggestWidget-selectedForeground);\n}\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused .codicon {\n\tcolor: var(--vscode-editorSuggestWidget-selectedIconForeground);\n}\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents {\n\tflex: 1;\n\theight: 100%;\n\toverflow: hidden;\n\tpadding-left: 2px;\n}\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main {\n\tdisplay: flex;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: pre;\n\tjustify-content: space-between;\n}\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .left,\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right {\n\tdisplay: flex;\n}\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.focused) > .contents > .main .monaco-icon-label {\n\tcolor: var(--vscode-editorSuggestWidget-foreground);\n}\n\n.monaco-editor .suggest-widget:not(.frozen) .monaco-highlighted-label .highlight {\n\tfont-weight: bold;\n}\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main .monaco-highlighted-label .highlight {\n\tcolor: var(--vscode-editorSuggestWidget-highlightForeground);\n}\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused > .contents > .main .monaco-highlighted-label .highlight {\n\tcolor: var(--vscode-editorSuggestWidget-focusHighlightForeground);\n}\n\n/** ReadMore Icon styles **/\n\n.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .header > .codicon-close,\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right > .readMore::before {\n\tcolor: inherit;\n\topacity: 1;\n\tfont-size: 14px;\n\tcursor: pointer;\n}\n\n.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .header > .codicon-close {\n\tposition: absolute;\n\ttop: 6px;\n\tright: 2px;\n}\n\n.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .header > .codicon-close:hover,\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right > .readMore:hover {\n\topacity: 1;\n}\n\n/** signature, qualifier, type/details opacity **/\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right > .details-label {\n\topacity: 0.7;\n}\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .left > .signature-label {\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\topacity: 0.6;\n}\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .left > .qualifier-label {\n\tmargin-left: 12px;\n\topacity: 0.4;\n\tfont-size: 85%;\n\tline-height: initial;\n\ttext-overflow: ellipsis;\n\toverflow: hidden;\n\talign-self: center;\n}\n\n/** Type Info and icon next to the label in the focused completion item **/\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right > .details-label {\n\tfont-size: 85%;\n\tmargin-left: 1.1em;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right > .details-label > .monaco-tokenized-source {\n\tdisplay: inline;\n}\n\n/** Details: if using CompletionItem#details, show on focus **/\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right > .details-label {\n\tdisplay: none;\n}\n\n.monaco-editor .suggest-widget:not(.shows-details) .monaco-list .monaco-list-row.focused > .contents > .main > .right > .details-label {\n\tdisplay: inline;\n}\n\n/** Details: if using CompletionItemLabel#details, always show **/\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label) > .contents > .main > .right > .details-label,\n.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row.focused:not(.string-label) > .contents > .main > .right > .details-label {\n\tdisplay: inline;\n}\n\n/** Ellipsis on hover **/\n\n.monaco-editor .suggest-widget:not(.docs-side) .monaco-list .monaco-list-row.focused:hover > .contents > .main > .right.can-expand-details > .details-label {\n\twidth: calc(100% - 26px);\n}\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .left {\n\tflex-shrink: 1;\n\tflex-grow: 1;\n\toverflow: hidden;\n}\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .left > .monaco-icon-label {\n\tflex-shrink: 0;\n}\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label) > .contents > .main > .left > .monaco-icon-label {\n\tmax-width: 100%;\n}\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label > .contents > .main > .left > .monaco-icon-label {\n\tflex-shrink: 1;\n}\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right {\n\toverflow: hidden;\n\tflex-shrink: 4;\n\tmax-width: 70%;\n}\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right > .readMore {\n\tdisplay: inline-block;\n\tposition: absolute;\n\tright: 10px;\n\twidth: 18px;\n\theight: 18px;\n\tvisibility: hidden;\n}\n\n/** Do NOT display ReadMore when docs is side/below **/\n\n.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row > .contents > .main > .right > .readMore {\n\tdisplay: none !important;\n}\n\n/** Do NOT display ReadMore when using plain CompletionItemLabel (details/documentation might not be resolved) **/\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label > .contents > .main > .right > .readMore {\n\tdisplay: none;\n}\n\n/** Focused item can show ReadMore, but can't when docs is side/below **/\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused.string-label > .contents > .main > .right > .readMore {\n\tdisplay: inline-block;\n}\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused:hover > .contents > .main > .right > .readMore {\n\tvisibility: visible;\n}\n\n/** Styles for each row in the list **/\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated {\n\topacity: 0.66;\n\ttext-decoration: unset;\n}\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated > .monaco-icon-label-container > .monaco-icon-name-container {\n\ttext-decoration: line-through;\n}\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label::before {\n\theight: 100%;\n}\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon {\n\tdisplay: block;\n\theight: 16px;\n\twidth: 16px;\n\tmargin-left: 2px;\n\tbackground-repeat: no-repeat;\n\tbackground-size: 80%;\n\tbackground-position: center;\n}\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.hide {\n\tdisplay: none;\n}\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .suggest-icon {\n\tdisplay: flex;\n\talign-items: center;\n\tmargin-right: 4px;\n}\n\n.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .icon,\n.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .suggest-icon::before {\n\tdisplay: none;\n}\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.customcolor .colorspan {\n\tmargin: 0 0 0 0.3em;\n\tborder: 0.1em solid #000;\n\twidth: 0.7em;\n\theight: 0.7em;\n\tdisplay: inline-block;\n}\n\n/** Styles for the docs of the completion item in focus **/\n\n.monaco-editor .suggest-details-container {\n\tz-index: 41;\n}\n\n.monaco-editor .suggest-details {\n\tdisplay: flex;\n\tflex-direction: column;\n\tcursor: default;\n\tcolor: var(--vscode-editorSuggestWidget-foreground);\n}\n\n.monaco-editor .suggest-details.focused {\n\tborder-color: var(--vscode-focusBorder);\n}\n\n.monaco-editor .suggest-details a {\n\tcolor: var(--vscode-textLink-foreground);\n}\n\n.monaco-editor .suggest-details a:hover {\n\tcolor: var(--vscode-textLink-activeForeground);\n}\n\n.monaco-editor .suggest-details code {\n\tbackground-color: var(--vscode-textCodeBlock-background);\n}\n\n.monaco-editor .suggest-details.no-docs {\n\tdisplay: none;\n}\n\n.monaco-editor .suggest-details > .monaco-scrollable-element {\n\tflex: 1;\n}\n\n.monaco-editor .suggest-details > .monaco-scrollable-element > .body {\n\tbox-sizing: border-box;\n\theight: 100%;\n\twidth: 100%;\n}\n\n.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .header > .type {\n\tflex: 2;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\topacity: 0.7;\n\twhite-space: pre;\n\tmargin: 0 24px 0 0;\n\tpadding: 4px 0 12px 5px;\n}\n\n.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .header > .type.auto-wrap {\n\twhite-space: normal;\n\tword-break: break-all;\n}\n\n.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs {\n\tmargin: 0;\n\tpadding: 4px 5px;\n\twhite-space: pre-wrap;\n}\n\n.monaco-editor .suggest-details.no-type > .monaco-scrollable-element > .body > .docs {\n\tmargin-right: 24px;\n\toverflow: hidden;\n}\n\n.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs.markdown-docs {\n\tpadding: 0;\n\twhite-space: initial;\n\tmin-height: calc(1rem + 8px);\n}\n\n.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs.markdown-docs > div,\n.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs.markdown-docs > span:not(:empty) {\n\tpadding: 4px 5px;\n}\n\n.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs.markdown-docs > div > p:first-child {\n\tmargin-top: 0;\n}\n\n.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs.markdown-docs > div > p:last-child {\n\tmargin-bottom: 0;\n}\n\n.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs.markdown-docs .monaco-tokenized-source {\n\twhite-space: pre;\n}\n\n.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs .code {\n\twhite-space: pre-wrap;\n\tword-wrap: break-word;\n}\n\n.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs.markdown-docs .codicon {\n\tvertical-align: sub;\n}\n\n.monaco-editor .suggest-details > .monaco-scrollable-element > .body > p:empty {\n\tdisplay: none;\n}\n\n.monaco-editor .suggest-details code {\n\tborder-radius: 3px;\n\tpadding: 0 0.4em;\n}\n\n.monaco-editor .suggest-details ul {\n\tpadding-left: 20px;\n}\n\n.monaco-editor .suggest-details ol {\n\tpadding-left: 20px;\n}\n\n.monaco-editor .suggest-details p code {\n\tfont-family: var(--monaco-monospace-font);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/suggest/browser/suggest.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { CancellationError, isCancellationError, onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { FuzzyScore } from '../../../../base/common/filters.js';\nimport { DisposableStore, isDisposable } from '../../../../base/common/lifecycle.js';\nimport { StopWatch } from '../../../../base/common/stopwatch.js';\nimport { assertType } from '../../../../base/common/types.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { ITextModelService } from '../../../common/services/resolverService.js';\nimport { SnippetParser } from '../../snippet/browser/snippetParser.js';\nimport { localize } from '../../../../nls.js';\nimport { MenuId } from '../../../../platform/actions/common/actions.js';\nimport { CommandsRegistry } from '../../../../platform/commands/common/commands.js';\nimport { RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { historyNavigationVisible } from '../../../../platform/history/browser/contextScopedHistoryWidget.js';\nexport const Context = {\n    Visible: historyNavigationVisible,\n    HasFocusedSuggestion: new RawContextKey('suggestWidgetHasFocusedSuggestion', false, localize('suggestWidgetHasSelection', \"Whether any suggestion is focused\")),\n    DetailsVisible: new RawContextKey('suggestWidgetDetailsVisible', false, localize('suggestWidgetDetailsVisible', \"Whether suggestion details are visible\")),\n    MultipleSuggestions: new RawContextKey('suggestWidgetMultipleSuggestions', false, localize('suggestWidgetMultipleSuggestions', \"Whether there are multiple suggestions to pick from\")),\n    MakesTextEdit: new RawContextKey('suggestionMakesTextEdit', true, localize('suggestionMakesTextEdit', \"Whether inserting the current suggestion yields in a change or has everything already been typed\")),\n    AcceptSuggestionsOnEnter: new RawContextKey('acceptSuggestionOnEnter', true, localize('acceptSuggestionOnEnter', \"Whether suggestions are inserted when pressing Enter\")),\n    HasInsertAndReplaceRange: new RawContextKey('suggestionHasInsertAndReplaceRange', false, localize('suggestionHasInsertAndReplaceRange', \"Whether the current suggestion has insert and replace behaviour\")),\n    InsertMode: new RawContextKey('suggestionInsertMode', undefined, { type: 'string', description: localize('suggestionInsertMode', \"Whether the default behaviour is to insert or replace\") }),\n    CanResolve: new RawContextKey('suggestionCanResolve', false, localize('suggestionCanResolve', \"Whether the current suggestion supports to resolve further details\")),\n};\nexport const suggestWidgetStatusbarMenu = new MenuId('suggestWidgetStatusBar');\nexport class CompletionItem {\n    constructor(position, completion, container, provider) {\n        var _a;\n        this.position = position;\n        this.completion = completion;\n        this.container = container;\n        this.provider = provider;\n        // validation\n        this.isInvalid = false;\n        // sorting, filtering\n        this.score = FuzzyScore.Default;\n        this.distance = 0;\n        this.textLabel = typeof completion.label === 'string'\n            ? completion.label\n            : (_a = completion.label) === null || _a === void 0 ? void 0 : _a.label;\n        // ensure lower-variants (perf)\n        this.labelLow = this.textLabel.toLowerCase();\n        // validate label\n        this.isInvalid = !this.textLabel;\n        this.sortTextLow = completion.sortText && completion.sortText.toLowerCase();\n        this.filterTextLow = completion.filterText && completion.filterText.toLowerCase();\n        this.extensionId = completion.extensionId;\n        // normalize ranges\n        if (Range.isIRange(completion.range)) {\n            this.editStart = new Position(completion.range.startLineNumber, completion.range.startColumn);\n            this.editInsertEnd = new Position(completion.range.endLineNumber, completion.range.endColumn);\n            this.editReplaceEnd = new Position(completion.range.endLineNumber, completion.range.endColumn);\n            // validate range\n            this.isInvalid = this.isInvalid\n                || Range.spansMultipleLines(completion.range) || completion.range.startLineNumber !== position.lineNumber;\n        }\n        else {\n            this.editStart = new Position(completion.range.insert.startLineNumber, completion.range.insert.startColumn);\n            this.editInsertEnd = new Position(completion.range.insert.endLineNumber, completion.range.insert.endColumn);\n            this.editReplaceEnd = new Position(completion.range.replace.endLineNumber, completion.range.replace.endColumn);\n            // validate ranges\n            this.isInvalid = this.isInvalid\n                || Range.spansMultipleLines(completion.range.insert) || Range.spansMultipleLines(completion.range.replace)\n                || completion.range.insert.startLineNumber !== position.lineNumber || completion.range.replace.startLineNumber !== position.lineNumber\n                || completion.range.insert.startColumn !== completion.range.replace.startColumn;\n        }\n        // create the suggestion resolver\n        if (typeof provider.resolveCompletionItem !== 'function') {\n            this._resolveCache = Promise.resolve();\n            this._resolveDuration = 0;\n        }\n    }\n    // ---- resolving\n    get isResolved() {\n        return this._resolveDuration !== undefined;\n    }\n    get resolveDuration() {\n        return this._resolveDuration !== undefined ? this._resolveDuration : -1;\n    }\n    async resolve(token) {\n        if (!this._resolveCache) {\n            const sub = token.onCancellationRequested(() => {\n                this._resolveCache = undefined;\n                this._resolveDuration = undefined;\n            });\n            const sw = new StopWatch(true);\n            this._resolveCache = Promise.resolve(this.provider.resolveCompletionItem(this.completion, token)).then(value => {\n                Object.assign(this.completion, value);\n                this._resolveDuration = sw.elapsed();\n            }, err => {\n                if (isCancellationError(err)) {\n                    // the IPC queue will reject the request with the\n                    // cancellation error -> reset cached\n                    this._resolveCache = undefined;\n                    this._resolveDuration = undefined;\n                }\n            }).finally(() => {\n                sub.dispose();\n            });\n        }\n        return this._resolveCache;\n    }\n}\nexport class CompletionOptions {\n    constructor(snippetSortOrder = 2 /* SnippetSortOrder.Bottom */, kindFilter = new Set(), providerFilter = new Set(), providerItemsToReuse = new Map(), showDeprecated = true) {\n        this.snippetSortOrder = snippetSortOrder;\n        this.kindFilter = kindFilter;\n        this.providerFilter = providerFilter;\n        this.providerItemsToReuse = providerItemsToReuse;\n        this.showDeprecated = showDeprecated;\n    }\n}\nCompletionOptions.default = new CompletionOptions();\nlet _snippetSuggestSupport;\nexport function getSnippetSuggestSupport() {\n    return _snippetSuggestSupport;\n}\nexport class CompletionItemModel {\n    constructor(items, needsClipboard, durations, disposable) {\n        this.items = items;\n        this.needsClipboard = needsClipboard;\n        this.durations = durations;\n        this.disposable = disposable;\n    }\n}\nexport async function provideSuggestionItems(registry, model, position, options = CompletionOptions.default, context = { triggerKind: 0 /* languages.CompletionTriggerKind.Invoke */ }, token = CancellationToken.None) {\n    const sw = new StopWatch();\n    position = position.clone();\n    const word = model.getWordAtPosition(position);\n    const defaultReplaceRange = word ? new Range(position.lineNumber, word.startColumn, position.lineNumber, word.endColumn) : Range.fromPositions(position);\n    const defaultRange = { replace: defaultReplaceRange, insert: defaultReplaceRange.setEndPosition(position.lineNumber, position.column) };\n    const result = [];\n    const disposables = new DisposableStore();\n    const durations = [];\n    let needsClipboard = false;\n    const onCompletionList = (provider, container, sw) => {\n        var _a, _b, _c;\n        let didAddResult = false;\n        if (!container) {\n            return didAddResult;\n        }\n        for (const suggestion of container.suggestions) {\n            if (!options.kindFilter.has(suggestion.kind)) {\n                // skip if not showing deprecated suggestions\n                if (!options.showDeprecated && ((_a = suggestion === null || suggestion === void 0 ? void 0 : suggestion.tags) === null || _a === void 0 ? void 0 : _a.includes(1 /* languages.CompletionItemTag.Deprecated */))) {\n                    continue;\n                }\n                // fill in default range when missing\n                if (!suggestion.range) {\n                    suggestion.range = defaultRange;\n                }\n                // fill in default sortText when missing\n                if (!suggestion.sortText) {\n                    suggestion.sortText = typeof suggestion.label === 'string' ? suggestion.label : suggestion.label.label;\n                }\n                if (!needsClipboard && suggestion.insertTextRules && suggestion.insertTextRules & 4 /* languages.CompletionItemInsertTextRule.InsertAsSnippet */) {\n                    needsClipboard = SnippetParser.guessNeedsClipboard(suggestion.insertText);\n                }\n                result.push(new CompletionItem(position, suggestion, container, provider));\n                didAddResult = true;\n            }\n        }\n        if (isDisposable(container)) {\n            disposables.add(container);\n        }\n        durations.push({\n            providerName: (_b = provider._debugDisplayName) !== null && _b !== void 0 ? _b : 'unknown_provider', elapsedProvider: (_c = container.duration) !== null && _c !== void 0 ? _c : -1, elapsedOverall: sw.elapsed()\n        });\n        return didAddResult;\n    };\n    // ask for snippets in parallel to asking \"real\" providers. Only do something if configured to\n    // do so - no snippet filter, no special-providers-only request\n    const snippetCompletions = (async () => {\n        if (!_snippetSuggestSupport || options.kindFilter.has(27 /* languages.CompletionItemKind.Snippet */)) {\n            return;\n        }\n        // we have items from a previous session that we can reuse\n        const reuseItems = options.providerItemsToReuse.get(_snippetSuggestSupport);\n        if (reuseItems) {\n            reuseItems.forEach(item => result.push(item));\n            return;\n        }\n        if (options.providerFilter.size > 0 && !options.providerFilter.has(_snippetSuggestSupport)) {\n            return;\n        }\n        const sw = new StopWatch();\n        const list = await _snippetSuggestSupport.provideCompletionItems(model, position, context, token);\n        onCompletionList(_snippetSuggestSupport, list, sw);\n    })();\n    // add suggestions from contributed providers - providers are ordered in groups of\n    // equal score and once a group produces a result the process stops\n    // get provider groups, always add snippet suggestion provider\n    for (const providerGroup of registry.orderedGroups(model)) {\n        // for each support in the group ask for suggestions\n        let didAddResult = false;\n        await Promise.all(providerGroup.map(async (provider) => {\n            // we have items from a previous session that we can reuse\n            if (options.providerItemsToReuse.has(provider)) {\n                const items = options.providerItemsToReuse.get(provider);\n                items.forEach(item => result.push(item));\n                didAddResult = didAddResult || items.length > 0;\n                return;\n            }\n            // check if this provider is filtered out\n            if (options.providerFilter.size > 0 && !options.providerFilter.has(provider)) {\n                return;\n            }\n            try {\n                const sw = new StopWatch();\n                const list = await provider.provideCompletionItems(model, position, context, token);\n                didAddResult = onCompletionList(provider, list, sw) || didAddResult;\n            }\n            catch (err) {\n                onUnexpectedExternalError(err);\n            }\n        }));\n        if (didAddResult || token.isCancellationRequested) {\n            break;\n        }\n    }\n    await snippetCompletions;\n    if (token.isCancellationRequested) {\n        disposables.dispose();\n        return Promise.reject(new CancellationError());\n    }\n    return new CompletionItemModel(result.sort(getSuggestionComparator(options.snippetSortOrder)), needsClipboard, { entries: durations, elapsed: sw.elapsed() }, disposables);\n}\nfunction defaultComparator(a, b) {\n    // check with 'sortText'\n    if (a.sortTextLow && b.sortTextLow) {\n        if (a.sortTextLow < b.sortTextLow) {\n            return -1;\n        }\n        else if (a.sortTextLow > b.sortTextLow) {\n            return 1;\n        }\n    }\n    // check with 'label'\n    if (a.textLabel < b.textLabel) {\n        return -1;\n    }\n    else if (a.textLabel > b.textLabel) {\n        return 1;\n    }\n    // check with 'type'\n    return a.completion.kind - b.completion.kind;\n}\nfunction snippetUpComparator(a, b) {\n    if (a.completion.kind !== b.completion.kind) {\n        if (a.completion.kind === 27 /* languages.CompletionItemKind.Snippet */) {\n            return -1;\n        }\n        else if (b.completion.kind === 27 /* languages.CompletionItemKind.Snippet */) {\n            return 1;\n        }\n    }\n    return defaultComparator(a, b);\n}\nfunction snippetDownComparator(a, b) {\n    if (a.completion.kind !== b.completion.kind) {\n        if (a.completion.kind === 27 /* languages.CompletionItemKind.Snippet */) {\n            return 1;\n        }\n        else if (b.completion.kind === 27 /* languages.CompletionItemKind.Snippet */) {\n            return -1;\n        }\n    }\n    return defaultComparator(a, b);\n}\nconst _snippetComparators = new Map();\n_snippetComparators.set(0 /* SnippetSortOrder.Top */, snippetUpComparator);\n_snippetComparators.set(2 /* SnippetSortOrder.Bottom */, snippetDownComparator);\n_snippetComparators.set(1 /* SnippetSortOrder.Inline */, defaultComparator);\nexport function getSuggestionComparator(snippetConfig) {\n    return _snippetComparators.get(snippetConfig);\n}\nCommandsRegistry.registerCommand('_executeCompletionItemProvider', async (accessor, ...args) => {\n    const [uri, position, triggerCharacter, maxItemsToResolve] = args;\n    assertType(URI.isUri(uri));\n    assertType(Position.isIPosition(position));\n    assertType(typeof triggerCharacter === 'string' || !triggerCharacter);\n    assertType(typeof maxItemsToResolve === 'number' || !maxItemsToResolve);\n    const { completionProvider } = accessor.get(ILanguageFeaturesService);\n    const ref = await accessor.get(ITextModelService).createModelReference(uri);\n    try {\n        const result = {\n            incomplete: false,\n            suggestions: []\n        };\n        const resolving = [];\n        const actualPosition = ref.object.textEditorModel.validatePosition(position);\n        const completions = await provideSuggestionItems(completionProvider, ref.object.textEditorModel, actualPosition, undefined, { triggerCharacter: triggerCharacter !== null && triggerCharacter !== void 0 ? triggerCharacter : undefined, triggerKind: triggerCharacter ? 1 /* languages.CompletionTriggerKind.TriggerCharacter */ : 0 /* languages.CompletionTriggerKind.Invoke */ });\n        for (const item of completions.items) {\n            if (resolving.length < (maxItemsToResolve !== null && maxItemsToResolve !== void 0 ? maxItemsToResolve : 0)) {\n                resolving.push(item.resolve(CancellationToken.None));\n            }\n            result.incomplete = result.incomplete || item.container.incomplete;\n            result.suggestions.push(item.completion);\n        }\n        try {\n            await Promise.all(resolving);\n            return result;\n        }\n        finally {\n            setTimeout(() => completions.disposable.dispose(), 100);\n        }\n    }\n    finally {\n        ref.dispose();\n    }\n});\nexport function showSimpleSuggestions(editor, provider) {\n    var _a;\n    (_a = editor.getContribution('editor.contrib.suggestController')) === null || _a === void 0 ? void 0 : _a.triggerSuggest(new Set().add(provider), undefined, true);\n}\nexport class QuickSuggestionsOptions {\n    static isAllOff(config) {\n        return config.other === 'off' && config.comments === 'off' && config.strings === 'off';\n    }\n    static isAllOn(config) {\n        return config.other === 'on' && config.comments === 'on' && config.strings === 'on';\n    }\n    static valueFor(config, tokenType) {\n        switch (tokenType) {\n            case 1 /* StandardTokenType.Comment */: return config.comments;\n            case 2 /* StandardTokenType.String */: return config.strings;\n            default: return config.other;\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/suggest/browser/suggestAlternatives.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar SuggestAlternatives_1;\nimport { IContextKeyService, RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nlet SuggestAlternatives = SuggestAlternatives_1 = class SuggestAlternatives {\n    constructor(_editor, contextKeyService) {\n        this._editor = _editor;\n        this._index = 0;\n        this._ckOtherSuggestions = SuggestAlternatives_1.OtherSuggestions.bindTo(contextKeyService);\n    }\n    dispose() {\n        this.reset();\n    }\n    reset() {\n        var _a;\n        this._ckOtherSuggestions.reset();\n        (_a = this._listener) === null || _a === void 0 ? void 0 : _a.dispose();\n        this._model = undefined;\n        this._acceptNext = undefined;\n        this._ignore = false;\n    }\n    set({ model, index }, acceptNext) {\n        // no suggestions -> nothing to do\n        if (model.items.length === 0) {\n            this.reset();\n            return;\n        }\n        // no alternative suggestions -> nothing to do\n        const nextIndex = SuggestAlternatives_1._moveIndex(true, model, index);\n        if (nextIndex === index) {\n            this.reset();\n            return;\n        }\n        this._acceptNext = acceptNext;\n        this._model = model;\n        this._index = index;\n        this._listener = this._editor.onDidChangeCursorPosition(() => {\n            if (!this._ignore) {\n                this.reset();\n            }\n        });\n        this._ckOtherSuggestions.set(true);\n    }\n    static _moveIndex(fwd, model, index) {\n        let newIndex = index;\n        for (let rounds = model.items.length; rounds > 0; rounds--) {\n            newIndex = (newIndex + model.items.length + (fwd ? +1 : -1)) % model.items.length;\n            if (newIndex === index) {\n                break;\n            }\n            if (!model.items[newIndex].completion.additionalTextEdits) {\n                break;\n            }\n        }\n        return newIndex;\n    }\n    next() {\n        this._move(true);\n    }\n    prev() {\n        this._move(false);\n    }\n    _move(fwd) {\n        if (!this._model) {\n            // nothing to reason about\n            return;\n        }\n        try {\n            this._ignore = true;\n            this._index = SuggestAlternatives_1._moveIndex(fwd, this._model, this._index);\n            this._acceptNext({ index: this._index, item: this._model.items[this._index], model: this._model });\n        }\n        finally {\n            this._ignore = false;\n        }\n    }\n};\nSuggestAlternatives.OtherSuggestions = new RawContextKey('hasOtherSuggestions', false);\nSuggestAlternatives = SuggestAlternatives_1 = __decorate([\n    __param(1, IContextKeyService)\n], SuggestAlternatives);\nexport { SuggestAlternatives };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/suggest/browser/suggestCommitCharacters.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { isNonEmptyArray } from '../../../../base/common/arrays.js';\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { CharacterSet } from '../../../common/core/characterClassifier.js';\nexport class CommitCharacterController {\n    constructor(editor, widget, model, accept) {\n        this._disposables = new DisposableStore();\n        this._disposables.add(model.onDidSuggest(e => {\n            if (e.completionModel.items.length === 0) {\n                this.reset();\n            }\n        }));\n        this._disposables.add(model.onDidCancel(e => {\n            this.reset();\n        }));\n        this._disposables.add(widget.onDidShow(() => this._onItem(widget.getFocusedItem())));\n        this._disposables.add(widget.onDidFocus(this._onItem, this));\n        this._disposables.add(widget.onDidHide(this.reset, this));\n        this._disposables.add(editor.onWillType(text => {\n            if (this._active && !widget.isFrozen() && model.state !== 0 /* State.Idle */) {\n                const ch = text.charCodeAt(text.length - 1);\n                if (this._active.acceptCharacters.has(ch) && editor.getOption(0 /* EditorOption.acceptSuggestionOnCommitCharacter */)) {\n                    accept(this._active.item);\n                }\n            }\n        }));\n    }\n    _onItem(selected) {\n        if (!selected || !isNonEmptyArray(selected.item.completion.commitCharacters)) {\n            // no item or no commit characters\n            this.reset();\n            return;\n        }\n        if (this._active && this._active.item.item === selected.item) {\n            // still the same item\n            return;\n        }\n        // keep item and its commit characters\n        const acceptCharacters = new CharacterSet();\n        for (const ch of selected.item.completion.commitCharacters) {\n            if (ch.length > 0) {\n                acceptCharacters.add(ch.charCodeAt(0));\n            }\n        }\n        this._active = { acceptCharacters, item: selected };\n    }\n    reset() {\n        this._active = undefined;\n    }\n    dispose() {\n        this._disposables.dispose();\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/suggest/browser/suggestController.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/suggest/browser/suggestController.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar SuggestController_1;\nimport { alert } from '../../../../base/browser/ui/aria/aria.js';\nimport { isNonEmptyArray } from '../../../../base/common/arrays.js';\nimport { CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { onUnexpectedError, onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { Emitter, Event } from '../../../../base/common/event.js';\nimport { KeyCodeChord } from '../../../../base/common/keybindings.js';\nimport { DisposableStore, dispose, MutableDisposable, toDisposable } from '../../../../base/common/lifecycle.js';\nimport * as platform from '../../../../base/common/platform.js';\nimport { StopWatch } from '../../../../base/common/stopwatch.js';\nimport { assertType, isObject } from '../../../../base/common/types.js';\nimport { StableEditorScrollState } from '../../../browser/stableEditorScroll.js';\nimport { EditorAction, EditorCommand, registerEditorAction, registerEditorCommand, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { EditOperation } from '../../../common/core/editOperation.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { SnippetController2 } from '../../snippet/browser/snippetController2.js';\nimport { SnippetParser } from '../../snippet/browser/snippetParser.js';\nimport { ISuggestMemoryService } from './suggestMemory.js';\nimport { WordContextKey } from './wordContextKey.js';\nimport * as nls from '../../../../nls.js';\nimport { CommandsRegistry, ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { ContextKeyExpr, IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { ILogService } from '../../../../platform/log/common/log.js';\nimport { Context as SuggestContext, suggestWidgetStatusbarMenu } from './suggest.js';\nimport { SuggestAlternatives } from './suggestAlternatives.js';\nimport { CommitCharacterController } from './suggestCommitCharacters.js';\nimport { SuggestModel } from './suggestModel.js';\nimport { OvertypingCapturer } from './suggestOvertypingCapturer.js';\nimport { SuggestWidget } from './suggestWidget.js';\nimport { ITelemetryService } from '../../../../platform/telemetry/common/telemetry.js';\nimport { basename, extname } from '../../../../base/common/resources.js';\nimport { hash } from '../../../../base/common/hash.js';\nimport { WindowIdleValue, getWindow } from '../../../../base/browser/dom.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\n// sticky suggest widget which doesn't disappear on focus out and such\nconst _sticky = false;\nclass LineSuffix {\n    constructor(_model, _position) {\n        this._model = _model;\n        this._position = _position;\n        this._decorationOptions = ModelDecorationOptions.register({\n            description: 'suggest-line-suffix',\n            stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */\n        });\n        // spy on what's happening right of the cursor. two cases:\n        // 1. end of line -> check that it's still end of line\n        // 2. mid of line -> add a marker and compute the delta\n        const maxColumn = _model.getLineMaxColumn(_position.lineNumber);\n        if (maxColumn !== _position.column) {\n            const offset = _model.getOffsetAt(_position);\n            const end = _model.getPositionAt(offset + 1);\n            _model.changeDecorations(accessor => {\n                if (this._marker) {\n                    accessor.removeDecoration(this._marker);\n                }\n                this._marker = accessor.addDecoration(Range.fromPositions(_position, end), this._decorationOptions);\n            });\n        }\n    }\n    dispose() {\n        if (this._marker && !this._model.isDisposed()) {\n            this._model.changeDecorations(accessor => {\n                accessor.removeDecoration(this._marker);\n                this._marker = undefined;\n            });\n        }\n    }\n    delta(position) {\n        if (this._model.isDisposed() || this._position.lineNumber !== position.lineNumber) {\n            // bail out early if things seems fishy\n            return 0;\n        }\n        // read the marker (in case suggest was triggered at line end) or compare\n        // the cursor to the line end.\n        if (this._marker) {\n            const range = this._model.getDecorationRange(this._marker);\n            const end = this._model.getOffsetAt(range.getStartPosition());\n            return end - this._model.getOffsetAt(position);\n        }\n        else {\n            return this._model.getLineMaxColumn(position.lineNumber) - position.column;\n        }\n    }\n}\nlet SuggestController = SuggestController_1 = class SuggestController {\n    static get(editor) {\n        return editor.getContribution(SuggestController_1.ID);\n    }\n    constructor(editor, _memoryService, _commandService, _contextKeyService, _instantiationService, _logService, _telemetryService) {\n        this._memoryService = _memoryService;\n        this._commandService = _commandService;\n        this._contextKeyService = _contextKeyService;\n        this._instantiationService = _instantiationService;\n        this._logService = _logService;\n        this._telemetryService = _telemetryService;\n        this._lineSuffix = new MutableDisposable();\n        this._toDispose = new DisposableStore();\n        this._selectors = new PriorityRegistry(s => s.priority);\n        this._onWillInsertSuggestItem = new Emitter();\n        this.onWillInsertSuggestItem = this._onWillInsertSuggestItem.event;\n        this.editor = editor;\n        this.model = _instantiationService.createInstance(SuggestModel, this.editor);\n        // default selector\n        this._selectors.register({\n            priority: 0,\n            select: (model, pos, items) => this._memoryService.select(model, pos, items)\n        });\n        // context key: update insert/replace mode\n        const ctxInsertMode = SuggestContext.InsertMode.bindTo(_contextKeyService);\n        ctxInsertMode.set(editor.getOption(118 /* EditorOption.suggest */).insertMode);\n        this._toDispose.add(this.model.onDidTrigger(() => ctxInsertMode.set(editor.getOption(118 /* EditorOption.suggest */).insertMode)));\n        this.widget = this._toDispose.add(new WindowIdleValue(getWindow(editor.getDomNode()), () => {\n            const widget = this._instantiationService.createInstance(SuggestWidget, this.editor);\n            this._toDispose.add(widget);\n            this._toDispose.add(widget.onDidSelect(item => this._insertSuggestion(item, 0 /* InsertFlags.None */), this));\n            // Wire up logic to accept a suggestion on certain characters\n            const commitCharacterController = new CommitCharacterController(this.editor, widget, this.model, item => this._insertSuggestion(item, 2 /* InsertFlags.NoAfterUndoStop */));\n            this._toDispose.add(commitCharacterController);\n            // Wire up makes text edit context key\n            const ctxMakesTextEdit = SuggestContext.MakesTextEdit.bindTo(this._contextKeyService);\n            const ctxHasInsertAndReplace = SuggestContext.HasInsertAndReplaceRange.bindTo(this._contextKeyService);\n            const ctxCanResolve = SuggestContext.CanResolve.bindTo(this._contextKeyService);\n            this._toDispose.add(toDisposable(() => {\n                ctxMakesTextEdit.reset();\n                ctxHasInsertAndReplace.reset();\n                ctxCanResolve.reset();\n            }));\n            this._toDispose.add(widget.onDidFocus(({ item }) => {\n                // (ctx: makesTextEdit)\n                const position = this.editor.getPosition();\n                const startColumn = item.editStart.column;\n                const endColumn = position.column;\n                let value = true;\n                if (this.editor.getOption(1 /* EditorOption.acceptSuggestionOnEnter */) === 'smart'\n                    && this.model.state === 2 /* State.Auto */\n                    && !item.completion.additionalTextEdits\n                    && !(item.completion.insertTextRules & 4 /* CompletionItemInsertTextRule.InsertAsSnippet */)\n                    && endColumn - startColumn === item.completion.insertText.length) {\n                    const oldText = this.editor.getModel().getValueInRange({\n                        startLineNumber: position.lineNumber,\n                        startColumn,\n                        endLineNumber: position.lineNumber,\n                        endColumn\n                    });\n                    value = oldText !== item.completion.insertText;\n                }\n                ctxMakesTextEdit.set(value);\n                // (ctx: hasInsertAndReplaceRange)\n                ctxHasInsertAndReplace.set(!Position.equals(item.editInsertEnd, item.editReplaceEnd));\n                // (ctx: canResolve)\n                ctxCanResolve.set(Boolean(item.provider.resolveCompletionItem) || Boolean(item.completion.documentation) || item.completion.detail !== item.completion.label);\n            }));\n            this._toDispose.add(widget.onDetailsKeyDown(e => {\n                // cmd + c on macOS, ctrl + c on Win / Linux\n                if (e.toKeyCodeChord().equals(new KeyCodeChord(true, false, false, false, 33 /* KeyCode.KeyC */)) ||\n                    (platform.isMacintosh && e.toKeyCodeChord().equals(new KeyCodeChord(false, false, false, true, 33 /* KeyCode.KeyC */)))) {\n                    e.stopPropagation();\n                    return;\n                }\n                if (!e.toKeyCodeChord().isModifierKey()) {\n                    this.editor.focus();\n                }\n            }));\n            return widget;\n        }));\n        // Wire up text overtyping capture\n        this._overtypingCapturer = this._toDispose.add(new WindowIdleValue(getWindow(editor.getDomNode()), () => {\n            return this._toDispose.add(new OvertypingCapturer(this.editor, this.model));\n        }));\n        this._alternatives = this._toDispose.add(new WindowIdleValue(getWindow(editor.getDomNode()), () => {\n            return this._toDispose.add(new SuggestAlternatives(this.editor, this._contextKeyService));\n        }));\n        this._toDispose.add(_instantiationService.createInstance(WordContextKey, editor));\n        this._toDispose.add(this.model.onDidTrigger(e => {\n            this.widget.value.showTriggered(e.auto, e.shy ? 250 : 50);\n            this._lineSuffix.value = new LineSuffix(this.editor.getModel(), e.position);\n        }));\n        this._toDispose.add(this.model.onDidSuggest(e => {\n            if (e.triggerOptions.shy) {\n                return;\n            }\n            let index = -1;\n            for (const selector of this._selectors.itemsOrderedByPriorityDesc) {\n                index = selector.select(this.editor.getModel(), this.editor.getPosition(), e.completionModel.items);\n                if (index !== -1) {\n                    break;\n                }\n            }\n            if (index === -1) {\n                index = 0;\n            }\n            if (this.model.state === 0 /* State.Idle */) {\n                // selecting an item can \"pump\" out selection/cursor change events\n                // which can cancel suggest halfway through this function. therefore\n                // we need to check again and bail if the session has been canceled\n                return;\n            }\n            let noFocus = false;\n            if (e.triggerOptions.auto) {\n                // don't \"focus\" item when configured to do\n                const options = this.editor.getOption(118 /* EditorOption.suggest */);\n                if (options.selectionMode === 'never' || options.selectionMode === 'always') {\n                    // simple: always or never\n                    noFocus = options.selectionMode === 'never';\n                }\n                else if (options.selectionMode === 'whenTriggerCharacter') {\n                    // on with trigger character\n                    noFocus = e.triggerOptions.triggerKind !== 1 /* CompletionTriggerKind.TriggerCharacter */;\n                }\n                else if (options.selectionMode === 'whenQuickSuggestion') {\n                    // without trigger character or when refiltering\n                    noFocus = e.triggerOptions.triggerKind === 1 /* CompletionTriggerKind.TriggerCharacter */ && !e.triggerOptions.refilter;\n                }\n            }\n            this.widget.value.showSuggestions(e.completionModel, index, e.isFrozen, e.triggerOptions.auto, noFocus);\n        }));\n        this._toDispose.add(this.model.onDidCancel(e => {\n            if (!e.retrigger) {\n                this.widget.value.hideWidget();\n            }\n        }));\n        this._toDispose.add(this.editor.onDidBlurEditorWidget(() => {\n            if (!_sticky) {\n                this.model.cancel();\n                this.model.clear();\n            }\n        }));\n        // Manage the acceptSuggestionsOnEnter context key\n        const acceptSuggestionsOnEnter = SuggestContext.AcceptSuggestionsOnEnter.bindTo(_contextKeyService);\n        const updateFromConfig = () => {\n            const acceptSuggestionOnEnter = this.editor.getOption(1 /* EditorOption.acceptSuggestionOnEnter */);\n            acceptSuggestionsOnEnter.set(acceptSuggestionOnEnter === 'on' || acceptSuggestionOnEnter === 'smart');\n        };\n        this._toDispose.add(this.editor.onDidChangeConfiguration(() => updateFromConfig()));\n        updateFromConfig();\n    }\n    dispose() {\n        this._alternatives.dispose();\n        this._toDispose.dispose();\n        this.widget.dispose();\n        this.model.dispose();\n        this._lineSuffix.dispose();\n        this._onWillInsertSuggestItem.dispose();\n    }\n    _insertSuggestion(event, flags) {\n        if (!event || !event.item) {\n            this._alternatives.value.reset();\n            this.model.cancel();\n            this.model.clear();\n            return;\n        }\n        if (!this.editor.hasModel()) {\n            return;\n        }\n        const snippetController = SnippetController2.get(this.editor);\n        if (!snippetController) {\n            return;\n        }\n        this._onWillInsertSuggestItem.fire({ item: event.item });\n        const model = this.editor.getModel();\n        const modelVersionNow = model.getAlternativeVersionId();\n        const { item } = event;\n        //\n        const tasks = [];\n        const cts = new CancellationTokenSource();\n        // pushing undo stops *before* additional text edits and\n        // *after* the main edit\n        if (!(flags & 1 /* InsertFlags.NoBeforeUndoStop */)) {\n            this.editor.pushUndoStop();\n        }\n        // compute overwrite[Before|After] deltas BEFORE applying extra edits\n        const info = this.getOverwriteInfo(item, Boolean(flags & 8 /* InsertFlags.AlternativeOverwriteConfig */));\n        // keep item in memory\n        this._memoryService.memorize(model, this.editor.getPosition(), item);\n        const isResolved = item.isResolved;\n        // telemetry data points: duration of command execution, info about async additional edits (-1=n/a, -2=none, 1=success, 0=failed)\n        let _commandExectionDuration = -1;\n        let _additionalEditsAppliedAsync = -1;\n        if (Array.isArray(item.completion.additionalTextEdits)) {\n            // cancel -> stops all listening and closes widget\n            this.model.cancel();\n            // sync additional edits\n            const scrollState = StableEditorScrollState.capture(this.editor);\n            this.editor.executeEdits('suggestController.additionalTextEdits.sync', item.completion.additionalTextEdits.map(edit => {\n                let range = Range.lift(edit.range);\n                if (range.startLineNumber === item.position.lineNumber && range.startColumn > item.position.column) {\n                    // shift additional edit when it is \"after\" the completion insertion position\n                    const columnDelta = this.editor.getPosition().column - item.position.column;\n                    const startColumnDelta = columnDelta;\n                    const endColumnDelta = Range.spansMultipleLines(range) ? 0 : columnDelta;\n                    range = new Range(range.startLineNumber, range.startColumn + startColumnDelta, range.endLineNumber, range.endColumn + endColumnDelta);\n                }\n                return EditOperation.replaceMove(range, edit.text);\n            }));\n            scrollState.restoreRelativeVerticalPositionOfCursor(this.editor);\n        }\n        else if (!isResolved) {\n            // async additional edits\n            const sw = new StopWatch();\n            let position;\n            const docListener = model.onDidChangeContent(e => {\n                if (e.isFlush) {\n                    cts.cancel();\n                    docListener.dispose();\n                    return;\n                }\n                for (const change of e.changes) {\n                    const thisPosition = Range.getEndPosition(change.range);\n                    if (!position || Position.isBefore(thisPosition, position)) {\n                        position = thisPosition;\n                    }\n                }\n            });\n            const oldFlags = flags;\n            flags |= 2 /* InsertFlags.NoAfterUndoStop */;\n            let didType = false;\n            const typeListener = this.editor.onWillType(() => {\n                typeListener.dispose();\n                didType = true;\n                if (!(oldFlags & 2 /* InsertFlags.NoAfterUndoStop */)) {\n                    this.editor.pushUndoStop();\n                }\n            });\n            tasks.push(item.resolve(cts.token).then(() => {\n                if (!item.completion.additionalTextEdits || cts.token.isCancellationRequested) {\n                    return undefined;\n                }\n                if (position && item.completion.additionalTextEdits.some(edit => Position.isBefore(position, Range.getStartPosition(edit.range)))) {\n                    return false;\n                }\n                if (didType) {\n                    this.editor.pushUndoStop();\n                }\n                const scrollState = StableEditorScrollState.capture(this.editor);\n                this.editor.executeEdits('suggestController.additionalTextEdits.async', item.completion.additionalTextEdits.map(edit => EditOperation.replaceMove(Range.lift(edit.range), edit.text)));\n                scrollState.restoreRelativeVerticalPositionOfCursor(this.editor);\n                if (didType || !(oldFlags & 2 /* InsertFlags.NoAfterUndoStop */)) {\n                    this.editor.pushUndoStop();\n                }\n                return true;\n            }).then(applied => {\n                this._logService.trace('[suggest] async resolving of edits DONE (ms, applied?)', sw.elapsed(), applied);\n                _additionalEditsAppliedAsync = applied === true ? 1 : applied === false ? 0 : -2;\n            }).finally(() => {\n                docListener.dispose();\n                typeListener.dispose();\n            }));\n        }\n        let { insertText } = item.completion;\n        if (!(item.completion.insertTextRules & 4 /* CompletionItemInsertTextRule.InsertAsSnippet */)) {\n            insertText = SnippetParser.escape(insertText);\n        }\n        // cancel -> stops all listening and closes widget\n        this.model.cancel();\n        snippetController.insert(insertText, {\n            overwriteBefore: info.overwriteBefore,\n            overwriteAfter: info.overwriteAfter,\n            undoStopBefore: false,\n            undoStopAfter: false,\n            adjustWhitespace: !(item.completion.insertTextRules & 1 /* CompletionItemInsertTextRule.KeepWhitespace */),\n            clipboardText: event.model.clipboardText,\n            overtypingCapturer: this._overtypingCapturer.value\n        });\n        if (!(flags & 2 /* InsertFlags.NoAfterUndoStop */)) {\n            this.editor.pushUndoStop();\n        }\n        if (item.completion.command) {\n            if (item.completion.command.id === TriggerSuggestAction.id) {\n                // retigger\n                this.model.trigger({ auto: true, retrigger: true });\n            }\n            else {\n                // exec command, done\n                const sw = new StopWatch();\n                tasks.push(this._commandService.executeCommand(item.completion.command.id, ...(item.completion.command.arguments ? [...item.completion.command.arguments] : [])).catch(e => {\n                    if (item.completion.extensionId) {\n                        onUnexpectedExternalError(e);\n                    }\n                    else {\n                        onUnexpectedError(e);\n                    }\n                }).finally(() => {\n                    _commandExectionDuration = sw.elapsed();\n                }));\n            }\n        }\n        if (flags & 4 /* InsertFlags.KeepAlternativeSuggestions */) {\n            this._alternatives.value.set(event, next => {\n                // cancel resolving of additional edits\n                cts.cancel();\n                // this is not so pretty. when inserting the 'next'\n                // suggestion we undo until we are at the state at\n                // which we were before inserting the previous suggestion...\n                while (model.canUndo()) {\n                    if (modelVersionNow !== model.getAlternativeVersionId()) {\n                        model.undo();\n                    }\n                    this._insertSuggestion(next, 1 /* InsertFlags.NoBeforeUndoStop */ | 2 /* InsertFlags.NoAfterUndoStop */ | (flags & 8 /* InsertFlags.AlternativeOverwriteConfig */ ? 8 /* InsertFlags.AlternativeOverwriteConfig */ : 0));\n                    break;\n                }\n            });\n        }\n        this._alertCompletionItem(item);\n        // clear only now - after all tasks are done\n        Promise.all(tasks).finally(() => {\n            this._reportSuggestionAcceptedTelemetry(item, model, isResolved, _commandExectionDuration, _additionalEditsAppliedAsync);\n            this.model.clear();\n            cts.dispose();\n        });\n    }\n    _reportSuggestionAcceptedTelemetry(item, model, itemResolved, commandExectionDuration, additionalEditsAppliedAsync) {\n        var _a, _b, _c;\n        if (Math.floor(Math.random() * 100) === 0) {\n            // throttle telemetry event because accepting completions happens a lot\n            return;\n        }\n        this._telemetryService.publicLog2('suggest.acceptedSuggestion', {\n            extensionId: (_b = (_a = item.extensionId) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : 'unknown',\n            providerId: (_c = item.provider._debugDisplayName) !== null && _c !== void 0 ? _c : 'unknown',\n            kind: item.completion.kind,\n            basenameHash: hash(basename(model.uri)).toString(16),\n            languageId: model.getLanguageId(),\n            fileExtension: extname(model.uri),\n            resolveInfo: !item.provider.resolveCompletionItem ? -1 : itemResolved ? 1 : 0,\n            resolveDuration: item.resolveDuration,\n            commandDuration: commandExectionDuration,\n            additionalEditsAsync: additionalEditsAppliedAsync\n        });\n    }\n    getOverwriteInfo(item, toggleMode) {\n        assertType(this.editor.hasModel());\n        let replace = this.editor.getOption(118 /* EditorOption.suggest */).insertMode === 'replace';\n        if (toggleMode) {\n            replace = !replace;\n        }\n        const overwriteBefore = item.position.column - item.editStart.column;\n        const overwriteAfter = (replace ? item.editReplaceEnd.column : item.editInsertEnd.column) - item.position.column;\n        const columnDelta = this.editor.getPosition().column - item.position.column;\n        const suffixDelta = this._lineSuffix.value ? this._lineSuffix.value.delta(this.editor.getPosition()) : 0;\n        return {\n            overwriteBefore: overwriteBefore + columnDelta,\n            overwriteAfter: overwriteAfter + suffixDelta\n        };\n    }\n    _alertCompletionItem(item) {\n        if (isNonEmptyArray(item.completion.additionalTextEdits)) {\n            const msg = nls.localize('aria.alert.snippet', \"Accepting '{0}' made {1} additional edits\", item.textLabel, item.completion.additionalTextEdits.length);\n            alert(msg);\n        }\n    }\n    triggerSuggest(onlyFrom, auto, noFilter) {\n        if (this.editor.hasModel()) {\n            this.model.trigger({\n                auto: auto !== null && auto !== void 0 ? auto : false,\n                completionOptions: { providerFilter: onlyFrom, kindFilter: noFilter ? new Set() : undefined }\n            });\n            this.editor.revealPosition(this.editor.getPosition(), 0 /* ScrollType.Smooth */);\n            this.editor.focus();\n        }\n    }\n    triggerSuggestAndAcceptBest(arg) {\n        if (!this.editor.hasModel()) {\n            return;\n        }\n        const positionNow = this.editor.getPosition();\n        const fallback = () => {\n            if (positionNow.equals(this.editor.getPosition())) {\n                this._commandService.executeCommand(arg.fallback);\n            }\n        };\n        const makesTextEdit = (item) => {\n            if (item.completion.insertTextRules & 4 /* CompletionItemInsertTextRule.InsertAsSnippet */ || item.completion.additionalTextEdits) {\n                // snippet, other editor -> makes edit\n                return true;\n            }\n            const position = this.editor.getPosition();\n            const startColumn = item.editStart.column;\n            const endColumn = position.column;\n            if (endColumn - startColumn !== item.completion.insertText.length) {\n                // unequal lengths -> makes edit\n                return true;\n            }\n            const textNow = this.editor.getModel().getValueInRange({\n                startLineNumber: position.lineNumber,\n                startColumn,\n                endLineNumber: position.lineNumber,\n                endColumn\n            });\n            // unequal text -> makes edit\n            return textNow !== item.completion.insertText;\n        };\n        Event.once(this.model.onDidTrigger)(_ => {\n            // wait for trigger because only then the cancel-event is trustworthy\n            const listener = [];\n            Event.any(this.model.onDidTrigger, this.model.onDidCancel)(() => {\n                // retrigger or cancel -> try to type default text\n                dispose(listener);\n                fallback();\n            }, undefined, listener);\n            this.model.onDidSuggest(({ completionModel }) => {\n                dispose(listener);\n                if (completionModel.items.length === 0) {\n                    fallback();\n                    return;\n                }\n                const index = this._memoryService.select(this.editor.getModel(), this.editor.getPosition(), completionModel.items);\n                const item = completionModel.items[index];\n                if (!makesTextEdit(item)) {\n                    fallback();\n                    return;\n                }\n                this.editor.pushUndoStop();\n                this._insertSuggestion({ index, item, model: completionModel }, 4 /* InsertFlags.KeepAlternativeSuggestions */ | 1 /* InsertFlags.NoBeforeUndoStop */ | 2 /* InsertFlags.NoAfterUndoStop */);\n            }, undefined, listener);\n        });\n        this.model.trigger({ auto: false, shy: true });\n        this.editor.revealPosition(positionNow, 0 /* ScrollType.Smooth */);\n        this.editor.focus();\n    }\n    acceptSelectedSuggestion(keepAlternativeSuggestions, alternativeOverwriteConfig) {\n        const item = this.widget.value.getFocusedItem();\n        let flags = 0;\n        if (keepAlternativeSuggestions) {\n            flags |= 4 /* InsertFlags.KeepAlternativeSuggestions */;\n        }\n        if (alternativeOverwriteConfig) {\n            flags |= 8 /* InsertFlags.AlternativeOverwriteConfig */;\n        }\n        this._insertSuggestion(item, flags);\n    }\n    acceptNextSuggestion() {\n        this._alternatives.value.next();\n    }\n    acceptPrevSuggestion() {\n        this._alternatives.value.prev();\n    }\n    cancelSuggestWidget() {\n        this.model.cancel();\n        this.model.clear();\n        this.widget.value.hideWidget();\n    }\n    focusSuggestion() {\n        this.widget.value.focusSelected();\n    }\n    selectNextSuggestion() {\n        this.widget.value.selectNext();\n    }\n    selectNextPageSuggestion() {\n        this.widget.value.selectNextPage();\n    }\n    selectLastSuggestion() {\n        this.widget.value.selectLast();\n    }\n    selectPrevSuggestion() {\n        this.widget.value.selectPrevious();\n    }\n    selectPrevPageSuggestion() {\n        this.widget.value.selectPreviousPage();\n    }\n    selectFirstSuggestion() {\n        this.widget.value.selectFirst();\n    }\n    toggleSuggestionDetails() {\n        this.widget.value.toggleDetails();\n    }\n    toggleExplainMode() {\n        this.widget.value.toggleExplainMode();\n    }\n    toggleSuggestionFocus() {\n        this.widget.value.toggleDetailsFocus();\n    }\n    resetWidgetSize() {\n        this.widget.value.resetPersistedSize();\n    }\n    forceRenderingAbove() {\n        this.widget.value.forceRenderingAbove();\n    }\n    stopForceRenderingAbove() {\n        if (!this.widget.isInitialized) {\n            // This method has no effect if the widget is not initialized yet.\n            return;\n        }\n        this.widget.value.stopForceRenderingAbove();\n    }\n    registerSelector(selector) {\n        return this._selectors.register(selector);\n    }\n};\nSuggestController.ID = 'editor.contrib.suggestController';\nSuggestController = SuggestController_1 = __decorate([\n    __param(1, ISuggestMemoryService),\n    __param(2, ICommandService),\n    __param(3, IContextKeyService),\n    __param(4, IInstantiationService),\n    __param(5, ILogService),\n    __param(6, ITelemetryService)\n], SuggestController);\nexport { SuggestController };\nclass PriorityRegistry {\n    constructor(prioritySelector) {\n        this.prioritySelector = prioritySelector;\n        this._items = new Array();\n    }\n    register(value) {\n        if (this._items.indexOf(value) !== -1) {\n            throw new Error('Value is already registered');\n        }\n        this._items.push(value);\n        this._items.sort((s1, s2) => this.prioritySelector(s2) - this.prioritySelector(s1));\n        return {\n            dispose: () => {\n                const idx = this._items.indexOf(value);\n                if (idx >= 0) {\n                    this._items.splice(idx, 1);\n                }\n            }\n        };\n    }\n    get itemsOrderedByPriorityDesc() {\n        return this._items;\n    }\n}\nexport class TriggerSuggestAction extends EditorAction {\n    constructor() {\n        super({\n            id: TriggerSuggestAction.id,\n            label: nls.localize('suggest.trigger.label', \"Trigger Suggest\"),\n            alias: 'Trigger Suggest',\n            precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasCompletionItemProvider, SuggestContext.Visible.toNegated()),\n            kbOpts: {\n                kbExpr: EditorContextKeys.textInputFocus,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 10 /* KeyCode.Space */,\n                secondary: [2048 /* KeyMod.CtrlCmd */ | 39 /* KeyCode.KeyI */],\n                mac: { primary: 256 /* KeyMod.WinCtrl */ | 10 /* KeyCode.Space */, secondary: [512 /* KeyMod.Alt */ | 9 /* KeyCode.Escape */, 2048 /* KeyMod.CtrlCmd */ | 39 /* KeyCode.KeyI */] },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    run(_accessor, editor, args) {\n        const controller = SuggestController.get(editor);\n        if (!controller) {\n            return;\n        }\n        let auto;\n        if (args && typeof args === 'object') {\n            if (args.auto === true) {\n                auto = true;\n            }\n        }\n        controller.triggerSuggest(undefined, auto, undefined);\n    }\n}\nTriggerSuggestAction.id = 'editor.action.triggerSuggest';\nregisterEditorContribution(SuggestController.ID, SuggestController, 2 /* EditorContributionInstantiation.BeforeFirstInteraction */);\nregisterEditorAction(TriggerSuggestAction);\nconst weight = 100 /* KeybindingWeight.EditorContrib */ + 90;\nconst SuggestCommand = EditorCommand.bindToContribution(SuggestController.get);\nregisterEditorCommand(new SuggestCommand({\n    id: 'acceptSelectedSuggestion',\n    precondition: ContextKeyExpr.and(SuggestContext.Visible, SuggestContext.HasFocusedSuggestion),\n    handler(x) {\n        x.acceptSelectedSuggestion(true, false);\n    },\n    kbOpts: [{\n            // normal tab\n            primary: 2 /* KeyCode.Tab */,\n            kbExpr: ContextKeyExpr.and(SuggestContext.Visible, EditorContextKeys.textInputFocus),\n            weight,\n        }, {\n            // accept on enter has special rules\n            primary: 3 /* KeyCode.Enter */,\n            kbExpr: ContextKeyExpr.and(SuggestContext.Visible, EditorContextKeys.textInputFocus, SuggestContext.AcceptSuggestionsOnEnter, SuggestContext.MakesTextEdit),\n            weight,\n        }],\n    menuOpts: [{\n            menuId: suggestWidgetStatusbarMenu,\n            title: nls.localize('accept.insert', \"Insert\"),\n            group: 'left',\n            order: 1,\n            when: SuggestContext.HasInsertAndReplaceRange.toNegated()\n        }, {\n            menuId: suggestWidgetStatusbarMenu,\n            title: nls.localize('accept.insert', \"Insert\"),\n            group: 'left',\n            order: 1,\n            when: ContextKeyExpr.and(SuggestContext.HasInsertAndReplaceRange, SuggestContext.InsertMode.isEqualTo('insert'))\n        }, {\n            menuId: suggestWidgetStatusbarMenu,\n            title: nls.localize('accept.replace', \"Replace\"),\n            group: 'left',\n            order: 1,\n            when: ContextKeyExpr.and(SuggestContext.HasInsertAndReplaceRange, SuggestContext.InsertMode.isEqualTo('replace'))\n        }]\n}));\nregisterEditorCommand(new SuggestCommand({\n    id: 'acceptAlternativeSelectedSuggestion',\n    precondition: ContextKeyExpr.and(SuggestContext.Visible, EditorContextKeys.textInputFocus, SuggestContext.HasFocusedSuggestion),\n    kbOpts: {\n        weight: weight,\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 1024 /* KeyMod.Shift */ | 3 /* KeyCode.Enter */,\n        secondary: [1024 /* KeyMod.Shift */ | 2 /* KeyCode.Tab */],\n    },\n    handler(x) {\n        x.acceptSelectedSuggestion(false, true);\n    },\n    menuOpts: [{\n            menuId: suggestWidgetStatusbarMenu,\n            group: 'left',\n            order: 2,\n            when: ContextKeyExpr.and(SuggestContext.HasInsertAndReplaceRange, SuggestContext.InsertMode.isEqualTo('insert')),\n            title: nls.localize('accept.replace', \"Replace\")\n        }, {\n            menuId: suggestWidgetStatusbarMenu,\n            group: 'left',\n            order: 2,\n            when: ContextKeyExpr.and(SuggestContext.HasInsertAndReplaceRange, SuggestContext.InsertMode.isEqualTo('replace')),\n            title: nls.localize('accept.insert', \"Insert\")\n        }]\n}));\n// continue to support the old command\nCommandsRegistry.registerCommandAlias('acceptSelectedSuggestionOnEnter', 'acceptSelectedSuggestion');\nregisterEditorCommand(new SuggestCommand({\n    id: 'hideSuggestWidget',\n    precondition: SuggestContext.Visible,\n    handler: x => x.cancelSuggestWidget(),\n    kbOpts: {\n        weight: weight,\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 9 /* KeyCode.Escape */,\n        secondary: [1024 /* KeyMod.Shift */ | 9 /* KeyCode.Escape */]\n    }\n}));\nregisterEditorCommand(new SuggestCommand({\n    id: 'selectNextSuggestion',\n    precondition: ContextKeyExpr.and(SuggestContext.Visible, ContextKeyExpr.or(SuggestContext.MultipleSuggestions, SuggestContext.HasFocusedSuggestion.negate())),\n    handler: c => c.selectNextSuggestion(),\n    kbOpts: {\n        weight: weight,\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 18 /* KeyCode.DownArrow */,\n        secondary: [2048 /* KeyMod.CtrlCmd */ | 18 /* KeyCode.DownArrow */],\n        mac: { primary: 18 /* KeyCode.DownArrow */, secondary: [2048 /* KeyMod.CtrlCmd */ | 18 /* KeyCode.DownArrow */, 256 /* KeyMod.WinCtrl */ | 44 /* KeyCode.KeyN */] }\n    }\n}));\nregisterEditorCommand(new SuggestCommand({\n    id: 'selectNextPageSuggestion',\n    precondition: ContextKeyExpr.and(SuggestContext.Visible, ContextKeyExpr.or(SuggestContext.MultipleSuggestions, SuggestContext.HasFocusedSuggestion.negate())),\n    handler: c => c.selectNextPageSuggestion(),\n    kbOpts: {\n        weight: weight,\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 12 /* KeyCode.PageDown */,\n        secondary: [2048 /* KeyMod.CtrlCmd */ | 12 /* KeyCode.PageDown */]\n    }\n}));\nregisterEditorCommand(new SuggestCommand({\n    id: 'selectLastSuggestion',\n    precondition: ContextKeyExpr.and(SuggestContext.Visible, ContextKeyExpr.or(SuggestContext.MultipleSuggestions, SuggestContext.HasFocusedSuggestion.negate())),\n    handler: c => c.selectLastSuggestion()\n}));\nregisterEditorCommand(new SuggestCommand({\n    id: 'selectPrevSuggestion',\n    precondition: ContextKeyExpr.and(SuggestContext.Visible, ContextKeyExpr.or(SuggestContext.MultipleSuggestions, SuggestContext.HasFocusedSuggestion.negate())),\n    handler: c => c.selectPrevSuggestion(),\n    kbOpts: {\n        weight: weight,\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 16 /* KeyCode.UpArrow */,\n        secondary: [2048 /* KeyMod.CtrlCmd */ | 16 /* KeyCode.UpArrow */],\n        mac: { primary: 16 /* KeyCode.UpArrow */, secondary: [2048 /* KeyMod.CtrlCmd */ | 16 /* KeyCode.UpArrow */, 256 /* KeyMod.WinCtrl */ | 46 /* KeyCode.KeyP */] }\n    }\n}));\nregisterEditorCommand(new SuggestCommand({\n    id: 'selectPrevPageSuggestion',\n    precondition: ContextKeyExpr.and(SuggestContext.Visible, ContextKeyExpr.or(SuggestContext.MultipleSuggestions, SuggestContext.HasFocusedSuggestion.negate())),\n    handler: c => c.selectPrevPageSuggestion(),\n    kbOpts: {\n        weight: weight,\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 11 /* KeyCode.PageUp */,\n        secondary: [2048 /* KeyMod.CtrlCmd */ | 11 /* KeyCode.PageUp */]\n    }\n}));\nregisterEditorCommand(new SuggestCommand({\n    id: 'selectFirstSuggestion',\n    precondition: ContextKeyExpr.and(SuggestContext.Visible, ContextKeyExpr.or(SuggestContext.MultipleSuggestions, SuggestContext.HasFocusedSuggestion.negate())),\n    handler: c => c.selectFirstSuggestion()\n}));\nregisterEditorCommand(new SuggestCommand({\n    id: 'focusSuggestion',\n    precondition: ContextKeyExpr.and(SuggestContext.Visible, SuggestContext.HasFocusedSuggestion.negate()),\n    handler: x => x.focusSuggestion(),\n    kbOpts: {\n        weight: weight,\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 2048 /* KeyMod.CtrlCmd */ | 10 /* KeyCode.Space */,\n        secondary: [2048 /* KeyMod.CtrlCmd */ | 39 /* KeyCode.KeyI */],\n        mac: { primary: 256 /* KeyMod.WinCtrl */ | 10 /* KeyCode.Space */, secondary: [2048 /* KeyMod.CtrlCmd */ | 39 /* KeyCode.KeyI */] }\n    },\n}));\nregisterEditorCommand(new SuggestCommand({\n    id: 'focusAndAcceptSuggestion',\n    precondition: ContextKeyExpr.and(SuggestContext.Visible, SuggestContext.HasFocusedSuggestion.negate()),\n    handler: c => {\n        c.focusSuggestion();\n        c.acceptSelectedSuggestion(true, false);\n    }\n}));\nregisterEditorCommand(new SuggestCommand({\n    id: 'toggleSuggestionDetails',\n    precondition: ContextKeyExpr.and(SuggestContext.Visible, SuggestContext.HasFocusedSuggestion),\n    handler: x => x.toggleSuggestionDetails(),\n    kbOpts: {\n        weight: weight,\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 2048 /* KeyMod.CtrlCmd */ | 10 /* KeyCode.Space */,\n        secondary: [2048 /* KeyMod.CtrlCmd */ | 39 /* KeyCode.KeyI */],\n        mac: { primary: 256 /* KeyMod.WinCtrl */ | 10 /* KeyCode.Space */, secondary: [2048 /* KeyMod.CtrlCmd */ | 39 /* KeyCode.KeyI */] }\n    },\n    menuOpts: [{\n            menuId: suggestWidgetStatusbarMenu,\n            group: 'right',\n            order: 1,\n            when: ContextKeyExpr.and(SuggestContext.DetailsVisible, SuggestContext.CanResolve),\n            title: nls.localize('detail.more', \"show less\")\n        }, {\n            menuId: suggestWidgetStatusbarMenu,\n            group: 'right',\n            order: 1,\n            when: ContextKeyExpr.and(SuggestContext.DetailsVisible.toNegated(), SuggestContext.CanResolve),\n            title: nls.localize('detail.less', \"show more\")\n        }]\n}));\nregisterEditorCommand(new SuggestCommand({\n    id: 'toggleExplainMode',\n    precondition: SuggestContext.Visible,\n    handler: x => x.toggleExplainMode(),\n    kbOpts: {\n        weight: 100 /* KeybindingWeight.EditorContrib */,\n        primary: 2048 /* KeyMod.CtrlCmd */ | 90 /* KeyCode.Slash */,\n    }\n}));\nregisterEditorCommand(new SuggestCommand({\n    id: 'toggleSuggestionFocus',\n    precondition: SuggestContext.Visible,\n    handler: x => x.toggleSuggestionFocus(),\n    kbOpts: {\n        weight: weight,\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 10 /* KeyCode.Space */,\n        mac: { primary: 256 /* KeyMod.WinCtrl */ | 512 /* KeyMod.Alt */ | 10 /* KeyCode.Space */ }\n    }\n}));\n//#region tab completions\nregisterEditorCommand(new SuggestCommand({\n    id: 'insertBestCompletion',\n    precondition: ContextKeyExpr.and(EditorContextKeys.textInputFocus, ContextKeyExpr.equals('config.editor.tabCompletion', 'on'), WordContextKey.AtEnd, SuggestContext.Visible.toNegated(), SuggestAlternatives.OtherSuggestions.toNegated(), SnippetController2.InSnippetMode.toNegated()),\n    handler: (x, arg) => {\n        x.triggerSuggestAndAcceptBest(isObject(arg) ? { fallback: 'tab', ...arg } : { fallback: 'tab' });\n    },\n    kbOpts: {\n        weight,\n        primary: 2 /* KeyCode.Tab */\n    }\n}));\nregisterEditorCommand(new SuggestCommand({\n    id: 'insertNextSuggestion',\n    precondition: ContextKeyExpr.and(EditorContextKeys.textInputFocus, ContextKeyExpr.equals('config.editor.tabCompletion', 'on'), SuggestAlternatives.OtherSuggestions, SuggestContext.Visible.toNegated(), SnippetController2.InSnippetMode.toNegated()),\n    handler: x => x.acceptNextSuggestion(),\n    kbOpts: {\n        weight: weight,\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 2 /* KeyCode.Tab */\n    }\n}));\nregisterEditorCommand(new SuggestCommand({\n    id: 'insertPrevSuggestion',\n    precondition: ContextKeyExpr.and(EditorContextKeys.textInputFocus, ContextKeyExpr.equals('config.editor.tabCompletion', 'on'), SuggestAlternatives.OtherSuggestions, SuggestContext.Visible.toNegated(), SnippetController2.InSnippetMode.toNegated()),\n    handler: x => x.acceptPrevSuggestion(),\n    kbOpts: {\n        weight: weight,\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 1024 /* KeyMod.Shift */ | 2 /* KeyCode.Tab */\n    }\n}));\nregisterEditorAction(class extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.resetSuggestSize',\n            label: nls.localize('suggest.reset.label', \"Reset Suggest Widget Size\"),\n            alias: 'Reset Suggest Widget Size',\n            precondition: undefined\n        });\n    }\n    run(_accessor, editor) {\n        var _a;\n        (_a = SuggestController.get(editor)) === null || _a === void 0 ? void 0 : _a.resetWidgetSize();\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/suggest/browser/suggestInlineCompletions.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/suggest/browser/suggestInlineCompletions.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { FuzzyScore } from '../../../../base/common/filters.js';\nimport { Iterable } from '../../../../base/common/iterator.js';\nimport { Disposable, RefCountedDisposable } from '../../../../base/common/lifecycle.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { Range } from '../../../common/core/range.js';\nimport { registerEditorFeature } from '../../../common/editorFeatures.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { CompletionModel, LineContext } from './completionModel.js';\nimport { CompletionOptions, provideSuggestionItems, QuickSuggestionsOptions } from './suggest.js';\nimport { ISuggestMemoryService } from './suggestMemory.js';\nimport { SuggestModel } from './suggestModel.js';\nimport { WordDistance } from './wordDistance.js';\nimport { IClipboardService } from '../../../../platform/clipboard/common/clipboardService.js';\nclass SuggestInlineCompletion {\n    constructor(range, insertText, filterText, additionalTextEdits, command, completion) {\n        this.range = range;\n        this.insertText = insertText;\n        this.filterText = filterText;\n        this.additionalTextEdits = additionalTextEdits;\n        this.command = command;\n        this.completion = completion;\n    }\n}\nlet InlineCompletionResults = class InlineCompletionResults extends RefCountedDisposable {\n    constructor(model, line, word, completionModel, completions, _suggestMemoryService) {\n        super(completions.disposable);\n        this.model = model;\n        this.line = line;\n        this.word = word;\n        this.completionModel = completionModel;\n        this._suggestMemoryService = _suggestMemoryService;\n    }\n    canBeReused(model, line, word) {\n        return this.model === model // same model\n            && this.line === line\n            && this.word.word.length > 0\n            && this.word.startColumn === word.startColumn && this.word.endColumn < word.endColumn // same word\n            && this.completionModel.getIncompleteProvider().size === 0; // no incomplete results\n    }\n    get items() {\n        var _a;\n        const result = [];\n        // Split items by preselected index. This ensures the memory-selected item shows first and that better/worst\n        // ranked items are before/after\n        const { items } = this.completionModel;\n        const selectedIndex = this._suggestMemoryService.select(this.model, { lineNumber: this.line, column: this.word.endColumn + this.completionModel.lineContext.characterCountDelta }, items);\n        const first = Iterable.slice(items, selectedIndex);\n        const second = Iterable.slice(items, 0, selectedIndex);\n        let resolveCount = 5;\n        for (const item of Iterable.concat(first, second)) {\n            if (item.score === FuzzyScore.Default) {\n                // skip items that have no overlap\n                continue;\n            }\n            const range = new Range(item.editStart.lineNumber, item.editStart.column, item.editInsertEnd.lineNumber, item.editInsertEnd.column + this.completionModel.lineContext.characterCountDelta // end PLUS character delta\n            );\n            const insertText = item.completion.insertTextRules && (item.completion.insertTextRules & 4 /* CompletionItemInsertTextRule.InsertAsSnippet */)\n                ? { snippet: item.completion.insertText }\n                : item.completion.insertText;\n            result.push(new SuggestInlineCompletion(range, insertText, (_a = item.filterTextLow) !== null && _a !== void 0 ? _a : item.labelLow, item.completion.additionalTextEdits, item.completion.command, item));\n            // resolve the first N suggestions eagerly\n            if (resolveCount-- >= 0) {\n                item.resolve(CancellationToken.None);\n            }\n        }\n        return result;\n    }\n};\nInlineCompletionResults = __decorate([\n    __param(5, ISuggestMemoryService)\n], InlineCompletionResults);\nlet SuggestInlineCompletions = class SuggestInlineCompletions extends Disposable {\n    constructor(_languageFeatureService, _clipboardService, _suggestMemoryService, _editorService) {\n        super();\n        this._languageFeatureService = _languageFeatureService;\n        this._clipboardService = _clipboardService;\n        this._suggestMemoryService = _suggestMemoryService;\n        this._editorService = _editorService;\n        this._store.add(_languageFeatureService.inlineCompletionsProvider.register('*', this));\n    }\n    async provideInlineCompletions(model, position, context, token) {\n        var _a;\n        if (context.selectedSuggestionInfo) {\n            return;\n        }\n        let editor;\n        for (const candidate of this._editorService.listCodeEditors()) {\n            if (candidate.getModel() === model) {\n                editor = candidate;\n                break;\n            }\n        }\n        if (!editor) {\n            return;\n        }\n        const config = editor.getOption(89 /* EditorOption.quickSuggestions */);\n        if (QuickSuggestionsOptions.isAllOff(config)) {\n            // quick suggest is off (for this model/language)\n            return;\n        }\n        model.tokenization.tokenizeIfCheap(position.lineNumber);\n        const lineTokens = model.tokenization.getLineTokens(position.lineNumber);\n        const tokenType = lineTokens.getStandardTokenType(lineTokens.findTokenIndexAtOffset(Math.max(position.column - 1 - 1, 0)));\n        if (QuickSuggestionsOptions.valueFor(config, tokenType) !== 'inline') {\n            // quick suggest is off (for this token)\n            return undefined;\n        }\n        // We consider non-empty leading words and trigger characters. The latter only\n        // when no word is being typed (word characters superseed trigger characters)\n        let wordInfo = model.getWordAtPosition(position);\n        let triggerCharacterInfo;\n        if (!(wordInfo === null || wordInfo === void 0 ? void 0 : wordInfo.word)) {\n            triggerCharacterInfo = this._getTriggerCharacterInfo(model, position);\n        }\n        if (!(wordInfo === null || wordInfo === void 0 ? void 0 : wordInfo.word) && !triggerCharacterInfo) {\n            // not at word, not a trigger character\n            return;\n        }\n        // ensure that we have word information and that we are at the end of a word\n        // otherwise we stop because we don't want to do quick suggestions inside words\n        if (!wordInfo) {\n            wordInfo = model.getWordUntilPosition(position);\n        }\n        if (wordInfo.endColumn !== position.column) {\n            return;\n        }\n        let result;\n        const leadingLineContents = model.getValueInRange(new Range(position.lineNumber, 1, position.lineNumber, position.column));\n        if (!triggerCharacterInfo && ((_a = this._lastResult) === null || _a === void 0 ? void 0 : _a.canBeReused(model, position.lineNumber, wordInfo))) {\n            // reuse a previous result iff possible, only a refilter is needed\n            // TODO@jrieken this can be improved further and only incomplete results can be updated\n            // console.log(`REUSE with ${wordInfo.word}`);\n            const newLineContext = new LineContext(leadingLineContents, position.column - this._lastResult.word.endColumn);\n            this._lastResult.completionModel.lineContext = newLineContext;\n            this._lastResult.acquire();\n            result = this._lastResult;\n        }\n        else {\n            // refesh model is required\n            const completions = await provideSuggestionItems(this._languageFeatureService.completionProvider, model, position, new CompletionOptions(undefined, SuggestModel.createSuggestFilter(editor).itemKind, triggerCharacterInfo === null || triggerCharacterInfo === void 0 ? void 0 : triggerCharacterInfo.providers), triggerCharacterInfo && { triggerKind: 1 /* CompletionTriggerKind.TriggerCharacter */, triggerCharacter: triggerCharacterInfo.ch }, token);\n            let clipboardText;\n            if (completions.needsClipboard) {\n                clipboardText = await this._clipboardService.readText();\n            }\n            const completionModel = new CompletionModel(completions.items, position.column, new LineContext(leadingLineContents, 0), WordDistance.None, editor.getOption(118 /* EditorOption.suggest */), editor.getOption(112 /* EditorOption.snippetSuggestions */), { boostFullMatch: false, firstMatchCanBeWeak: false }, clipboardText);\n            result = new InlineCompletionResults(model, position.lineNumber, wordInfo, completionModel, completions, this._suggestMemoryService);\n        }\n        this._lastResult = result;\n        return result;\n    }\n    handleItemDidShow(_completions, item) {\n        item.completion.resolve(CancellationToken.None);\n    }\n    freeInlineCompletions(result) {\n        result.release();\n    }\n    _getTriggerCharacterInfo(model, position) {\n        var _a;\n        const ch = model.getValueInRange(Range.fromPositions({ lineNumber: position.lineNumber, column: position.column - 1 }, position));\n        const providers = new Set();\n        for (const provider of this._languageFeatureService.completionProvider.all(model)) {\n            if ((_a = provider.triggerCharacters) === null || _a === void 0 ? void 0 : _a.includes(ch)) {\n                providers.add(provider);\n            }\n        }\n        if (providers.size === 0) {\n            return undefined;\n        }\n        return { providers, ch };\n    }\n};\nSuggestInlineCompletions = __decorate([\n    __param(0, ILanguageFeaturesService),\n    __param(1, IClipboardService),\n    __param(2, ISuggestMemoryService),\n    __param(3, ICodeEditorService)\n], SuggestInlineCompletions);\nexport { SuggestInlineCompletions };\nregisterEditorFeature(SuggestInlineCompletions);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/suggest/browser/suggestMemory.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar SuggestMemoryService_1;\nimport { RunOnceScheduler } from '../../../../base/common/async.js';\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { LRUCache } from '../../../../base/common/map.js';\nimport { TernarySearchTree } from '../../../../base/common/ternarySearchTree.js';\nimport { CompletionItemKinds } from '../../../common/languages.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { registerSingleton } from '../../../../platform/instantiation/common/extensions.js';\nimport { createDecorator } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IStorageService, WillSaveStateReason } from '../../../../platform/storage/common/storage.js';\nexport class Memory {\n    constructor(name) {\n        this.name = name;\n    }\n    select(model, pos, items) {\n        if (items.length === 0) {\n            return 0;\n        }\n        const topScore = items[0].score[0];\n        for (let i = 0; i < items.length; i++) {\n            const { score, completion: suggestion } = items[i];\n            if (score[0] !== topScore) {\n                // stop when leaving the group of top matches\n                break;\n            }\n            if (suggestion.preselect) {\n                // stop when seeing an auto-select-item\n                return i;\n            }\n        }\n        return 0;\n    }\n}\nexport class NoMemory extends Memory {\n    constructor() {\n        super('first');\n    }\n    memorize(model, pos, item) {\n        // no-op\n    }\n    toJSON() {\n        return undefined;\n    }\n    fromJSON() {\n        //\n    }\n}\nexport class LRUMemory extends Memory {\n    constructor() {\n        super('recentlyUsed');\n        this._cache = new LRUCache(300, 0.66);\n        this._seq = 0;\n    }\n    memorize(model, pos, item) {\n        const key = `${model.getLanguageId()}/${item.textLabel}`;\n        this._cache.set(key, {\n            touch: this._seq++,\n            type: item.completion.kind,\n            insertText: item.completion.insertText\n        });\n    }\n    select(model, pos, items) {\n        if (items.length === 0) {\n            return 0;\n        }\n        const lineSuffix = model.getLineContent(pos.lineNumber).substr(pos.column - 10, pos.column - 1);\n        if (/\\s$/.test(lineSuffix)) {\n            return super.select(model, pos, items);\n        }\n        const topScore = items[0].score[0];\n        let indexPreselect = -1;\n        let indexRecency = -1;\n        let seq = -1;\n        for (let i = 0; i < items.length; i++) {\n            if (items[i].score[0] !== topScore) {\n                // consider only top items\n                break;\n            }\n            const key = `${model.getLanguageId()}/${items[i].textLabel}`;\n            const item = this._cache.peek(key);\n            if (item && item.touch > seq && item.type === items[i].completion.kind && item.insertText === items[i].completion.insertText) {\n                seq = item.touch;\n                indexRecency = i;\n            }\n            if (items[i].completion.preselect && indexPreselect === -1) {\n                // stop when seeing an auto-select-item\n                return indexPreselect = i;\n            }\n        }\n        if (indexRecency !== -1) {\n            return indexRecency;\n        }\n        else if (indexPreselect !== -1) {\n            return indexPreselect;\n        }\n        else {\n            return 0;\n        }\n    }\n    toJSON() {\n        return this._cache.toJSON();\n    }\n    fromJSON(data) {\n        this._cache.clear();\n        const seq = 0;\n        for (const [key, value] of data) {\n            value.touch = seq;\n            value.type = typeof value.type === 'number' ? value.type : CompletionItemKinds.fromString(value.type);\n            this._cache.set(key, value);\n        }\n        this._seq = this._cache.size;\n    }\n}\nexport class PrefixMemory extends Memory {\n    constructor() {\n        super('recentlyUsedByPrefix');\n        this._trie = TernarySearchTree.forStrings();\n        this._seq = 0;\n    }\n    memorize(model, pos, item) {\n        const { word } = model.getWordUntilPosition(pos);\n        const key = `${model.getLanguageId()}/${word}`;\n        this._trie.set(key, {\n            type: item.completion.kind,\n            insertText: item.completion.insertText,\n            touch: this._seq++\n        });\n    }\n    select(model, pos, items) {\n        const { word } = model.getWordUntilPosition(pos);\n        if (!word) {\n            return super.select(model, pos, items);\n        }\n        const key = `${model.getLanguageId()}/${word}`;\n        let item = this._trie.get(key);\n        if (!item) {\n            item = this._trie.findSubstr(key);\n        }\n        if (item) {\n            for (let i = 0; i < items.length; i++) {\n                const { kind, insertText } = items[i].completion;\n                if (kind === item.type && insertText === item.insertText) {\n                    return i;\n                }\n            }\n        }\n        return super.select(model, pos, items);\n    }\n    toJSON() {\n        const entries = [];\n        this._trie.forEach((value, key) => entries.push([key, value]));\n        // sort by last recently used (touch), then\n        // take the top 200 item and normalize their\n        // touch\n        entries\n            .sort((a, b) => -(a[1].touch - b[1].touch))\n            .forEach((value, i) => value[1].touch = i);\n        return entries.slice(0, 200);\n    }\n    fromJSON(data) {\n        this._trie.clear();\n        if (data.length > 0) {\n            this._seq = data[0][1].touch + 1;\n            for (const [key, value] of data) {\n                value.type = typeof value.type === 'number' ? value.type : CompletionItemKinds.fromString(value.type);\n                this._trie.set(key, value);\n            }\n        }\n    }\n}\nlet SuggestMemoryService = SuggestMemoryService_1 = class SuggestMemoryService {\n    constructor(_storageService, _configService) {\n        this._storageService = _storageService;\n        this._configService = _configService;\n        this._disposables = new DisposableStore();\n        this._persistSoon = new RunOnceScheduler(() => this._saveState(), 500);\n        this._disposables.add(_storageService.onWillSaveState(e => {\n            if (e.reason === WillSaveStateReason.SHUTDOWN) {\n                this._saveState();\n            }\n        }));\n    }\n    dispose() {\n        this._disposables.dispose();\n        this._persistSoon.dispose();\n    }\n    memorize(model, pos, item) {\n        this._withStrategy(model, pos).memorize(model, pos, item);\n        this._persistSoon.schedule();\n    }\n    select(model, pos, items) {\n        return this._withStrategy(model, pos).select(model, pos, items);\n    }\n    _withStrategy(model, pos) {\n        var _a;\n        const mode = this._configService.getValue('editor.suggestSelection', {\n            overrideIdentifier: model.getLanguageIdAtPosition(pos.lineNumber, pos.column),\n            resource: model.uri\n        });\n        if (((_a = this._strategy) === null || _a === void 0 ? void 0 : _a.name) !== mode) {\n            this._saveState();\n            const ctor = SuggestMemoryService_1._strategyCtors.get(mode) || NoMemory;\n            this._strategy = new ctor();\n            try {\n                const share = this._configService.getValue('editor.suggest.shareSuggestSelections');\n                const scope = share ? 0 /* StorageScope.PROFILE */ : 1 /* StorageScope.WORKSPACE */;\n                const raw = this._storageService.get(`${SuggestMemoryService_1._storagePrefix}/${mode}`, scope);\n                if (raw) {\n                    this._strategy.fromJSON(JSON.parse(raw));\n                }\n            }\n            catch (e) {\n                // things can go wrong with JSON...\n            }\n        }\n        return this._strategy;\n    }\n    _saveState() {\n        if (this._strategy) {\n            const share = this._configService.getValue('editor.suggest.shareSuggestSelections');\n            const scope = share ? 0 /* StorageScope.PROFILE */ : 1 /* StorageScope.WORKSPACE */;\n            const raw = JSON.stringify(this._strategy);\n            this._storageService.store(`${SuggestMemoryService_1._storagePrefix}/${this._strategy.name}`, raw, scope, 1 /* StorageTarget.MACHINE */);\n        }\n    }\n};\nSuggestMemoryService._strategyCtors = new Map([\n    ['recentlyUsedByPrefix', PrefixMemory],\n    ['recentlyUsed', LRUMemory],\n    ['first', NoMemory]\n]);\nSuggestMemoryService._storagePrefix = 'suggest/memories';\nSuggestMemoryService = SuggestMemoryService_1 = __decorate([\n    __param(0, IStorageService),\n    __param(1, IConfigurationService)\n], SuggestMemoryService);\nexport { SuggestMemoryService };\nexport const ISuggestMemoryService = createDecorator('ISuggestMemories');\nregisterSingleton(ISuggestMemoryService, SuggestMemoryService, 1 /* InstantiationType.Delayed */);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/suggest/browser/suggestModel.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar SuggestModel_1;\nimport { TimeoutTimer } from '../../../../base/common/async.js';\nimport { CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { onUnexpectedError } from '../../../../base/common/errors.js';\nimport { Emitter } from '../../../../base/common/event.js';\nimport { DisposableStore, dispose } from '../../../../base/common/lifecycle.js';\nimport { getLeadingWhitespace, isHighSurrogate, isLowSurrogate } from '../../../../base/common/strings.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { IEditorWorkerService } from '../../../common/services/editorWorker.js';\nimport { WordDistance } from './wordDistance.js';\nimport { IClipboardService } from '../../../../platform/clipboard/common/clipboardService.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { ILogService } from '../../../../platform/log/common/log.js';\nimport { ITelemetryService } from '../../../../platform/telemetry/common/telemetry.js';\nimport { CompletionModel } from './completionModel.js';\nimport { CompletionOptions, getSnippetSuggestSupport, provideSuggestionItems, QuickSuggestionsOptions } from './suggest.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { FuzzyScoreOptions } from '../../../../base/common/filters.js';\nimport { assertType } from '../../../../base/common/types.js';\nimport { InlineCompletionContextKeys } from '../../inlineCompletions/browser/inlineCompletionContextKeys.js';\nimport { SnippetController2 } from '../../snippet/browser/snippetController2.js';\nimport { IEnvironmentService } from '../../../../platform/environment/common/environment.js';\nexport class LineContext {\n    static shouldAutoTrigger(editor) {\n        if (!editor.hasModel()) {\n            return false;\n        }\n        const model = editor.getModel();\n        const pos = editor.getPosition();\n        model.tokenization.tokenizeIfCheap(pos.lineNumber);\n        const word = model.getWordAtPosition(pos);\n        if (!word) {\n            return false;\n        }\n        if (word.endColumn !== pos.column &&\n            word.startColumn + 1 !== pos.column /* after typing a single character before a word */) {\n            return false;\n        }\n        if (!isNaN(Number(word.word))) {\n            return false;\n        }\n        return true;\n    }\n    constructor(model, position, triggerOptions) {\n        this.leadingLineContent = model.getLineContent(position.lineNumber).substr(0, position.column - 1);\n        this.leadingWord = model.getWordUntilPosition(position);\n        this.lineNumber = position.lineNumber;\n        this.column = position.column;\n        this.triggerOptions = triggerOptions;\n    }\n}\nfunction canShowQuickSuggest(editor, contextKeyService, configurationService) {\n    if (!Boolean(contextKeyService.getContextKeyValue(InlineCompletionContextKeys.inlineSuggestionVisible.key))) {\n        // Allow if there is no inline suggestion.\n        return true;\n    }\n    const suppressSuggestions = contextKeyService.getContextKeyValue(InlineCompletionContextKeys.suppressSuggestions.key);\n    if (suppressSuggestions !== undefined) {\n        return !suppressSuggestions;\n    }\n    return !editor.getOption(62 /* EditorOption.inlineSuggest */).suppressSuggestions;\n}\nfunction canShowSuggestOnTriggerCharacters(editor, contextKeyService, configurationService) {\n    if (!Boolean(contextKeyService.getContextKeyValue('inlineSuggestionVisible'))) {\n        // Allow if there is no inline suggestion.\n        return true;\n    }\n    const suppressSuggestions = contextKeyService.getContextKeyValue(InlineCompletionContextKeys.suppressSuggestions.key);\n    if (suppressSuggestions !== undefined) {\n        return !suppressSuggestions;\n    }\n    return !editor.getOption(62 /* EditorOption.inlineSuggest */).suppressSuggestions;\n}\nlet SuggestModel = SuggestModel_1 = class SuggestModel {\n    constructor(_editor, _editorWorkerService, _clipboardService, _telemetryService, _logService, _contextKeyService, _configurationService, _languageFeaturesService, _envService) {\n        this._editor = _editor;\n        this._editorWorkerService = _editorWorkerService;\n        this._clipboardService = _clipboardService;\n        this._telemetryService = _telemetryService;\n        this._logService = _logService;\n        this._contextKeyService = _contextKeyService;\n        this._configurationService = _configurationService;\n        this._languageFeaturesService = _languageFeaturesService;\n        this._envService = _envService;\n        this._toDispose = new DisposableStore();\n        this._triggerCharacterListener = new DisposableStore();\n        this._triggerQuickSuggest = new TimeoutTimer();\n        this._triggerState = undefined;\n        this._completionDisposables = new DisposableStore();\n        this._onDidCancel = new Emitter();\n        this._onDidTrigger = new Emitter();\n        this._onDidSuggest = new Emitter();\n        this.onDidCancel = this._onDidCancel.event;\n        this.onDidTrigger = this._onDidTrigger.event;\n        this.onDidSuggest = this._onDidSuggest.event;\n        this._telemetryGate = 0;\n        this._currentSelection = this._editor.getSelection() || new Selection(1, 1, 1, 1);\n        // wire up various listeners\n        this._toDispose.add(this._editor.onDidChangeModel(() => {\n            this._updateTriggerCharacters();\n            this.cancel();\n        }));\n        this._toDispose.add(this._editor.onDidChangeModelLanguage(() => {\n            this._updateTriggerCharacters();\n            this.cancel();\n        }));\n        this._toDispose.add(this._editor.onDidChangeConfiguration(() => {\n            this._updateTriggerCharacters();\n        }));\n        this._toDispose.add(this._languageFeaturesService.completionProvider.onDidChange(() => {\n            this._updateTriggerCharacters();\n            this._updateActiveSuggestSession();\n        }));\n        let editorIsComposing = false;\n        this._toDispose.add(this._editor.onDidCompositionStart(() => {\n            editorIsComposing = true;\n        }));\n        this._toDispose.add(this._editor.onDidCompositionEnd(() => {\n            editorIsComposing = false;\n            this._onCompositionEnd();\n        }));\n        this._toDispose.add(this._editor.onDidChangeCursorSelection(e => {\n            // only trigger suggest when the editor isn't composing a character\n            if (!editorIsComposing) {\n                this._onCursorChange(e);\n            }\n        }));\n        this._toDispose.add(this._editor.onDidChangeModelContent(() => {\n            // only filter completions when the editor isn't composing a character\n            // allow-any-unicode-next-line\n            // e.g. ¨ + u makes ü but just ¨ cannot be used for filtering\n            if (!editorIsComposing && this._triggerState !== undefined) {\n                this._refilterCompletionItems();\n            }\n        }));\n        this._updateTriggerCharacters();\n    }\n    dispose() {\n        dispose(this._triggerCharacterListener);\n        dispose([this._onDidCancel, this._onDidSuggest, this._onDidTrigger, this._triggerQuickSuggest]);\n        this._toDispose.dispose();\n        this._completionDisposables.dispose();\n        this.cancel();\n    }\n    _updateTriggerCharacters() {\n        this._triggerCharacterListener.clear();\n        if (this._editor.getOption(91 /* EditorOption.readOnly */)\n            || !this._editor.hasModel()\n            || !this._editor.getOption(121 /* EditorOption.suggestOnTriggerCharacters */)) {\n            return;\n        }\n        const supportsByTriggerCharacter = new Map();\n        for (const support of this._languageFeaturesService.completionProvider.all(this._editor.getModel())) {\n            for (const ch of support.triggerCharacters || []) {\n                let set = supportsByTriggerCharacter.get(ch);\n                if (!set) {\n                    set = new Set();\n                    set.add(getSnippetSuggestSupport());\n                    supportsByTriggerCharacter.set(ch, set);\n                }\n                set.add(support);\n            }\n        }\n        const checkTriggerCharacter = (text) => {\n            var _a;\n            if (!canShowSuggestOnTriggerCharacters(this._editor, this._contextKeyService, this._configurationService)) {\n                return;\n            }\n            if (LineContext.shouldAutoTrigger(this._editor)) {\n                // don't trigger by trigger characters when this is a case for quick suggest\n                return;\n            }\n            if (!text) {\n                // came here from the compositionEnd-event\n                const position = this._editor.getPosition();\n                const model = this._editor.getModel();\n                text = model.getLineContent(position.lineNumber).substr(0, position.column - 1);\n            }\n            let lastChar = '';\n            if (isLowSurrogate(text.charCodeAt(text.length - 1))) {\n                if (isHighSurrogate(text.charCodeAt(text.length - 2))) {\n                    lastChar = text.substr(text.length - 2);\n                }\n            }\n            else {\n                lastChar = text.charAt(text.length - 1);\n            }\n            const supports = supportsByTriggerCharacter.get(lastChar);\n            if (supports) {\n                // keep existing items that where not computed by the\n                // supports/providers that want to trigger now\n                const providerItemsToReuse = new Map();\n                if (this._completionModel) {\n                    for (const [provider, items] of this._completionModel.getItemsByProvider()) {\n                        if (!supports.has(provider)) {\n                            providerItemsToReuse.set(provider, items);\n                        }\n                    }\n                }\n                this.trigger({\n                    auto: true,\n                    triggerKind: 1 /* CompletionTriggerKind.TriggerCharacter */,\n                    triggerCharacter: lastChar,\n                    retrigger: Boolean(this._completionModel),\n                    clipboardText: (_a = this._completionModel) === null || _a === void 0 ? void 0 : _a.clipboardText,\n                    completionOptions: { providerFilter: supports, providerItemsToReuse }\n                });\n            }\n        };\n        this._triggerCharacterListener.add(this._editor.onDidType(checkTriggerCharacter));\n        this._triggerCharacterListener.add(this._editor.onDidCompositionEnd(() => checkTriggerCharacter()));\n    }\n    // --- trigger/retrigger/cancel suggest\n    get state() {\n        if (!this._triggerState) {\n            return 0 /* State.Idle */;\n        }\n        else if (!this._triggerState.auto) {\n            return 1 /* State.Manual */;\n        }\n        else {\n            return 2 /* State.Auto */;\n        }\n    }\n    cancel(retrigger = false) {\n        var _a;\n        if (this._triggerState !== undefined) {\n            this._triggerQuickSuggest.cancel();\n            (_a = this._requestToken) === null || _a === void 0 ? void 0 : _a.cancel();\n            this._requestToken = undefined;\n            this._triggerState = undefined;\n            this._completionModel = undefined;\n            this._context = undefined;\n            this._onDidCancel.fire({ retrigger });\n        }\n    }\n    clear() {\n        this._completionDisposables.clear();\n    }\n    _updateActiveSuggestSession() {\n        if (this._triggerState !== undefined) {\n            if (!this._editor.hasModel() || !this._languageFeaturesService.completionProvider.has(this._editor.getModel())) {\n                this.cancel();\n            }\n            else {\n                this.trigger({ auto: this._triggerState.auto, retrigger: true });\n            }\n        }\n    }\n    _onCursorChange(e) {\n        if (!this._editor.hasModel()) {\n            return;\n        }\n        const prevSelection = this._currentSelection;\n        this._currentSelection = this._editor.getSelection();\n        if (!e.selection.isEmpty()\n            || (e.reason !== 0 /* CursorChangeReason.NotSet */ && e.reason !== 3 /* CursorChangeReason.Explicit */)\n            || (e.source !== 'keyboard' && e.source !== 'deleteLeft')) {\n            // Early exit if nothing needs to be done!\n            // Leave some form of early exit check here if you wish to continue being a cursor position change listener ;)\n            this.cancel();\n            return;\n        }\n        if (this._triggerState === undefined && e.reason === 0 /* CursorChangeReason.NotSet */) {\n            if (prevSelection.containsRange(this._currentSelection) || prevSelection.getEndPosition().isBeforeOrEqual(this._currentSelection.getPosition())) {\n                // cursor did move RIGHT due to typing -> trigger quick suggest\n                this._doTriggerQuickSuggest();\n            }\n        }\n        else if (this._triggerState !== undefined && e.reason === 3 /* CursorChangeReason.Explicit */) {\n            // suggest is active and something like cursor keys are used to move\n            // the cursor. this means we can refilter at the new position\n            this._refilterCompletionItems();\n        }\n    }\n    _onCompositionEnd() {\n        // trigger or refilter when composition ends\n        if (this._triggerState === undefined) {\n            this._doTriggerQuickSuggest();\n        }\n        else {\n            this._refilterCompletionItems();\n        }\n    }\n    _doTriggerQuickSuggest() {\n        var _a;\n        if (QuickSuggestionsOptions.isAllOff(this._editor.getOption(89 /* EditorOption.quickSuggestions */))) {\n            // not enabled\n            return;\n        }\n        if (this._editor.getOption(118 /* EditorOption.suggest */).snippetsPreventQuickSuggestions && ((_a = SnippetController2.get(this._editor)) === null || _a === void 0 ? void 0 : _a.isInSnippet())) {\n            // no quick suggestion when in snippet mode\n            return;\n        }\n        this.cancel();\n        this._triggerQuickSuggest.cancelAndSet(() => {\n            if (this._triggerState !== undefined) {\n                return;\n            }\n            if (!LineContext.shouldAutoTrigger(this._editor)) {\n                return;\n            }\n            if (!this._editor.hasModel() || !this._editor.hasWidgetFocus()) {\n                return;\n            }\n            const model = this._editor.getModel();\n            const pos = this._editor.getPosition();\n            // validate enabled now\n            const config = this._editor.getOption(89 /* EditorOption.quickSuggestions */);\n            if (QuickSuggestionsOptions.isAllOff(config)) {\n                return;\n            }\n            if (!QuickSuggestionsOptions.isAllOn(config)) {\n                // Check the type of the token that triggered this\n                model.tokenization.tokenizeIfCheap(pos.lineNumber);\n                const lineTokens = model.tokenization.getLineTokens(pos.lineNumber);\n                const tokenType = lineTokens.getStandardTokenType(lineTokens.findTokenIndexAtOffset(Math.max(pos.column - 1 - 1, 0)));\n                if (QuickSuggestionsOptions.valueFor(config, tokenType) !== 'on') {\n                    return;\n                }\n            }\n            if (!canShowQuickSuggest(this._editor, this._contextKeyService, this._configurationService)) {\n                // do not trigger quick suggestions if inline suggestions are shown\n                return;\n            }\n            if (!this._languageFeaturesService.completionProvider.has(model)) {\n                return;\n            }\n            // we made it till here -> trigger now\n            this.trigger({ auto: true });\n        }, this._editor.getOption(90 /* EditorOption.quickSuggestionsDelay */));\n    }\n    _refilterCompletionItems() {\n        assertType(this._editor.hasModel());\n        assertType(this._triggerState !== undefined);\n        const model = this._editor.getModel();\n        const position = this._editor.getPosition();\n        const ctx = new LineContext(model, position, { ...this._triggerState, refilter: true });\n        this._onNewContext(ctx);\n    }\n    trigger(options) {\n        var _a, _b, _c, _d, _e, _f;\n        if (!this._editor.hasModel()) {\n            return;\n        }\n        const model = this._editor.getModel();\n        const ctx = new LineContext(model, this._editor.getPosition(), options);\n        // Cancel previous requests, change state & update UI\n        this.cancel(options.retrigger);\n        this._triggerState = options;\n        this._onDidTrigger.fire({ auto: options.auto, shy: (_a = options.shy) !== null && _a !== void 0 ? _a : false, position: this._editor.getPosition() });\n        // Capture context when request was sent\n        this._context = ctx;\n        // Build context for request\n        let suggestCtx = { triggerKind: (_b = options.triggerKind) !== null && _b !== void 0 ? _b : 0 /* CompletionTriggerKind.Invoke */ };\n        if (options.triggerCharacter) {\n            suggestCtx = {\n                triggerKind: 1 /* CompletionTriggerKind.TriggerCharacter */,\n                triggerCharacter: options.triggerCharacter\n            };\n        }\n        this._requestToken = new CancellationTokenSource();\n        // kind filter and snippet sort rules\n        const snippetSuggestions = this._editor.getOption(112 /* EditorOption.snippetSuggestions */);\n        let snippetSortOrder = 1 /* SnippetSortOrder.Inline */;\n        switch (snippetSuggestions) {\n            case 'top':\n                snippetSortOrder = 0 /* SnippetSortOrder.Top */;\n                break;\n            // \t↓ that's the default anyways...\n            // case 'inline':\n            // \tsnippetSortOrder = SnippetSortOrder.Inline;\n            // \tbreak;\n            case 'bottom':\n                snippetSortOrder = 2 /* SnippetSortOrder.Bottom */;\n                break;\n        }\n        const { itemKind: itemKindFilter, showDeprecated } = SuggestModel_1.createSuggestFilter(this._editor);\n        const completionOptions = new CompletionOptions(snippetSortOrder, (_d = (_c = options.completionOptions) === null || _c === void 0 ? void 0 : _c.kindFilter) !== null && _d !== void 0 ? _d : itemKindFilter, (_e = options.completionOptions) === null || _e === void 0 ? void 0 : _e.providerFilter, (_f = options.completionOptions) === null || _f === void 0 ? void 0 : _f.providerItemsToReuse, showDeprecated);\n        const wordDistance = WordDistance.create(this._editorWorkerService, this._editor);\n        const completions = provideSuggestionItems(this._languageFeaturesService.completionProvider, model, this._editor.getPosition(), completionOptions, suggestCtx, this._requestToken.token);\n        Promise.all([completions, wordDistance]).then(async ([completions, wordDistance]) => {\n            var _a;\n            (_a = this._requestToken) === null || _a === void 0 ? void 0 : _a.dispose();\n            if (!this._editor.hasModel()) {\n                return;\n            }\n            let clipboardText = options === null || options === void 0 ? void 0 : options.clipboardText;\n            if (!clipboardText && completions.needsClipboard) {\n                clipboardText = await this._clipboardService.readText();\n            }\n            if (this._triggerState === undefined) {\n                return;\n            }\n            const model = this._editor.getModel();\n            // const items = completions.items;\n            // if (existing) {\n            // \tconst cmpFn = getSuggestionComparator(snippetSortOrder);\n            // \titems = items.concat(existing.items).sort(cmpFn);\n            // }\n            const ctx = new LineContext(model, this._editor.getPosition(), options);\n            const fuzzySearchOptions = {\n                ...FuzzyScoreOptions.default,\n                firstMatchCanBeWeak: !this._editor.getOption(118 /* EditorOption.suggest */).matchOnWordStartOnly\n            };\n            this._completionModel = new CompletionModel(completions.items, this._context.column, {\n                leadingLineContent: ctx.leadingLineContent,\n                characterCountDelta: ctx.column - this._context.column\n            }, wordDistance, this._editor.getOption(118 /* EditorOption.suggest */), this._editor.getOption(112 /* EditorOption.snippetSuggestions */), fuzzySearchOptions, clipboardText);\n            // store containers so that they can be disposed later\n            this._completionDisposables.add(completions.disposable);\n            this._onNewContext(ctx);\n            // finally report telemetry about durations\n            this._reportDurationsTelemetry(completions.durations);\n            // report invalid completions by source\n            if (!this._envService.isBuilt || this._envService.isExtensionDevelopment) {\n                for (const item of completions.items) {\n                    if (item.isInvalid) {\n                        this._logService.warn(`[suggest] did IGNORE invalid completion item from ${item.provider._debugDisplayName}`, item.completion);\n                    }\n                }\n            }\n        }).catch(onUnexpectedError);\n    }\n    _reportDurationsTelemetry(durations) {\n        if (this._telemetryGate++ % 230 !== 0) {\n            return;\n        }\n        setTimeout(() => {\n            this._telemetryService.publicLog2('suggest.durations.json', { data: JSON.stringify(durations) });\n            this._logService.debug('suggest.durations.json', durations);\n        });\n    }\n    static createSuggestFilter(editor) {\n        // kind filter and snippet sort rules\n        const result = new Set();\n        // snippet setting\n        const snippetSuggestions = editor.getOption(112 /* EditorOption.snippetSuggestions */);\n        if (snippetSuggestions === 'none') {\n            result.add(27 /* CompletionItemKind.Snippet */);\n        }\n        // type setting\n        const suggestOptions = editor.getOption(118 /* EditorOption.suggest */);\n        if (!suggestOptions.showMethods) {\n            result.add(0 /* CompletionItemKind.Method */);\n        }\n        if (!suggestOptions.showFunctions) {\n            result.add(1 /* CompletionItemKind.Function */);\n        }\n        if (!suggestOptions.showConstructors) {\n            result.add(2 /* CompletionItemKind.Constructor */);\n        }\n        if (!suggestOptions.showFields) {\n            result.add(3 /* CompletionItemKind.Field */);\n        }\n        if (!suggestOptions.showVariables) {\n            result.add(4 /* CompletionItemKind.Variable */);\n        }\n        if (!suggestOptions.showClasses) {\n            result.add(5 /* CompletionItemKind.Class */);\n        }\n        if (!suggestOptions.showStructs) {\n            result.add(6 /* CompletionItemKind.Struct */);\n        }\n        if (!suggestOptions.showInterfaces) {\n            result.add(7 /* CompletionItemKind.Interface */);\n        }\n        if (!suggestOptions.showModules) {\n            result.add(8 /* CompletionItemKind.Module */);\n        }\n        if (!suggestOptions.showProperties) {\n            result.add(9 /* CompletionItemKind.Property */);\n        }\n        if (!suggestOptions.showEvents) {\n            result.add(10 /* CompletionItemKind.Event */);\n        }\n        if (!suggestOptions.showOperators) {\n            result.add(11 /* CompletionItemKind.Operator */);\n        }\n        if (!suggestOptions.showUnits) {\n            result.add(12 /* CompletionItemKind.Unit */);\n        }\n        if (!suggestOptions.showValues) {\n            result.add(13 /* CompletionItemKind.Value */);\n        }\n        if (!suggestOptions.showConstants) {\n            result.add(14 /* CompletionItemKind.Constant */);\n        }\n        if (!suggestOptions.showEnums) {\n            result.add(15 /* CompletionItemKind.Enum */);\n        }\n        if (!suggestOptions.showEnumMembers) {\n            result.add(16 /* CompletionItemKind.EnumMember */);\n        }\n        if (!suggestOptions.showKeywords) {\n            result.add(17 /* CompletionItemKind.Keyword */);\n        }\n        if (!suggestOptions.showWords) {\n            result.add(18 /* CompletionItemKind.Text */);\n        }\n        if (!suggestOptions.showColors) {\n            result.add(19 /* CompletionItemKind.Color */);\n        }\n        if (!suggestOptions.showFiles) {\n            result.add(20 /* CompletionItemKind.File */);\n        }\n        if (!suggestOptions.showReferences) {\n            result.add(21 /* CompletionItemKind.Reference */);\n        }\n        if (!suggestOptions.showColors) {\n            result.add(22 /* CompletionItemKind.Customcolor */);\n        }\n        if (!suggestOptions.showFolders) {\n            result.add(23 /* CompletionItemKind.Folder */);\n        }\n        if (!suggestOptions.showTypeParameters) {\n            result.add(24 /* CompletionItemKind.TypeParameter */);\n        }\n        if (!suggestOptions.showSnippets) {\n            result.add(27 /* CompletionItemKind.Snippet */);\n        }\n        if (!suggestOptions.showUsers) {\n            result.add(25 /* CompletionItemKind.User */);\n        }\n        if (!suggestOptions.showIssues) {\n            result.add(26 /* CompletionItemKind.Issue */);\n        }\n        return { itemKind: result, showDeprecated: suggestOptions.showDeprecated };\n    }\n    _onNewContext(ctx) {\n        if (!this._context) {\n            // happens when 24x7 IntelliSense is enabled and still in its delay\n            return;\n        }\n        if (ctx.lineNumber !== this._context.lineNumber) {\n            // e.g. happens when pressing Enter while IntelliSense is computed\n            this.cancel();\n            return;\n        }\n        if (getLeadingWhitespace(ctx.leadingLineContent) !== getLeadingWhitespace(this._context.leadingLineContent)) {\n            // cancel IntelliSense when line start changes\n            // happens when the current word gets outdented\n            this.cancel();\n            return;\n        }\n        if (ctx.column < this._context.column) {\n            // typed -> moved cursor LEFT -> retrigger if still on a word\n            if (ctx.leadingWord.word) {\n                this.trigger({ auto: this._context.triggerOptions.auto, retrigger: true });\n            }\n            else {\n                this.cancel();\n            }\n            return;\n        }\n        if (!this._completionModel) {\n            // happens when IntelliSense is not yet computed\n            return;\n        }\n        if (ctx.leadingWord.word.length !== 0 && ctx.leadingWord.startColumn > this._context.leadingWord.startColumn) {\n            // started a new word while IntelliSense shows -> retrigger but reuse all items that we currently have\n            const shouldAutoTrigger = LineContext.shouldAutoTrigger(this._editor);\n            if (shouldAutoTrigger && this._context) {\n                // shouldAutoTrigger forces tokenization, which can cause pending cursor change events to be emitted, which can cause\n                // suggestions to be cancelled, which causes `this._context` to be undefined\n                const map = this._completionModel.getItemsByProvider();\n                this.trigger({\n                    auto: this._context.triggerOptions.auto,\n                    retrigger: true,\n                    clipboardText: this._completionModel.clipboardText,\n                    completionOptions: { providerItemsToReuse: map }\n                });\n            }\n            return;\n        }\n        if (ctx.column > this._context.column && this._completionModel.getIncompleteProvider().size > 0 && ctx.leadingWord.word.length !== 0) {\n            // typed -> moved cursor RIGHT & incomple model & still on a word -> retrigger\n            const providerItemsToReuse = new Map();\n            const providerFilter = new Set();\n            for (const [provider, items] of this._completionModel.getItemsByProvider()) {\n                if (items.length > 0 && items[0].container.incomplete) {\n                    providerFilter.add(provider);\n                }\n                else {\n                    providerItemsToReuse.set(provider, items);\n                }\n            }\n            this.trigger({\n                auto: this._context.triggerOptions.auto,\n                triggerKind: 2 /* CompletionTriggerKind.TriggerForIncompleteCompletions */,\n                retrigger: true,\n                clipboardText: this._completionModel.clipboardText,\n                completionOptions: { providerFilter, providerItemsToReuse }\n            });\n        }\n        else {\n            // typed -> moved cursor RIGHT -> update UI\n            const oldLineContext = this._completionModel.lineContext;\n            let isFrozen = false;\n            this._completionModel.lineContext = {\n                leadingLineContent: ctx.leadingLineContent,\n                characterCountDelta: ctx.column - this._context.column\n            };\n            if (this._completionModel.items.length === 0) {\n                const shouldAutoTrigger = LineContext.shouldAutoTrigger(this._editor);\n                if (!this._context) {\n                    // shouldAutoTrigger forces tokenization, which can cause pending cursor change events to be emitted, which can cause\n                    // suggestions to be cancelled, which causes `this._context` to be undefined\n                    this.cancel();\n                    return;\n                }\n                if (shouldAutoTrigger && this._context.leadingWord.endColumn < ctx.leadingWord.startColumn) {\n                    // retrigger when heading into a new word\n                    this.trigger({ auto: this._context.triggerOptions.auto, retrigger: true });\n                    return;\n                }\n                if (!this._context.triggerOptions.auto) {\n                    // freeze when IntelliSense was manually requested\n                    this._completionModel.lineContext = oldLineContext;\n                    isFrozen = this._completionModel.items.length > 0;\n                    if (isFrozen && ctx.leadingWord.word.length === 0) {\n                        // there were results before but now there aren't\n                        // and also we are not on a word anymore -> cancel\n                        this.cancel();\n                        return;\n                    }\n                }\n                else {\n                    // nothing left\n                    this.cancel();\n                    return;\n                }\n            }\n            this._onDidSuggest.fire({\n                completionModel: this._completionModel,\n                triggerOptions: ctx.triggerOptions,\n                isFrozen,\n            });\n        }\n    }\n};\nSuggestModel = SuggestModel_1 = __decorate([\n    __param(1, IEditorWorkerService),\n    __param(2, IClipboardService),\n    __param(3, ITelemetryService),\n    __param(4, ILogService),\n    __param(5, IContextKeyService),\n    __param(6, IConfigurationService),\n    __param(7, ILanguageFeaturesService),\n    __param(8, IEnvironmentService)\n], SuggestModel);\nexport { SuggestModel };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/suggest/browser/suggestOvertypingCapturer.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nexport class OvertypingCapturer {\n    constructor(editor, suggestModel) {\n        this._disposables = new DisposableStore();\n        this._lastOvertyped = [];\n        this._locked = false;\n        this._disposables.add(editor.onWillType(() => {\n            if (this._locked || !editor.hasModel()) {\n                return;\n            }\n            const selections = editor.getSelections();\n            const selectionsLength = selections.length;\n            // Check if it will overtype any selections\n            let willOvertype = false;\n            for (let i = 0; i < selectionsLength; i++) {\n                if (!selections[i].isEmpty()) {\n                    willOvertype = true;\n                    break;\n                }\n            }\n            if (!willOvertype) {\n                if (this._lastOvertyped.length !== 0) {\n                    this._lastOvertyped.length = 0;\n                }\n                return;\n            }\n            this._lastOvertyped = [];\n            const model = editor.getModel();\n            for (let i = 0; i < selectionsLength; i++) {\n                const selection = selections[i];\n                // Check for overtyping capturer restrictions\n                if (model.getValueLengthInRange(selection) > OvertypingCapturer._maxSelectionLength) {\n                    return;\n                }\n                this._lastOvertyped[i] = { value: model.getValueInRange(selection), multiline: selection.startLineNumber !== selection.endLineNumber };\n            }\n        }));\n        this._disposables.add(suggestModel.onDidTrigger(e => {\n            this._locked = true;\n        }));\n        this._disposables.add(suggestModel.onDidCancel(e => {\n            this._locked = false;\n        }));\n    }\n    getLastOvertypedInfo(idx) {\n        if (idx >= 0 && idx < this._lastOvertyped.length) {\n            return this._lastOvertyped[idx];\n        }\n        return undefined;\n    }\n    dispose() {\n        this._disposables.dispose();\n    }\n}\nOvertypingCapturer._maxSelectionLength = 51200;\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/suggest/browser/suggestWidget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar SuggestWidget_1;\nimport * as dom from '../../../../base/browser/dom.js';\nimport '../../../../base/browser/ui/codicons/codiconStyles.js'; // The codicon symbol styles are defined here and must be loaded\nimport { List } from '../../../../base/browser/ui/list/listWidget.js';\nimport { createCancelablePromise, disposableTimeout, TimeoutTimer } from '../../../../base/common/async.js';\nimport { onUnexpectedError } from '../../../../base/common/errors.js';\nimport { Emitter, PauseableEmitter } from '../../../../base/common/event.js';\nimport { DisposableStore, MutableDisposable } from '../../../../base/common/lifecycle.js';\nimport { clamp } from '../../../../base/common/numbers.js';\nimport * as strings from '../../../../base/common/strings.js';\nimport './media/suggest.css';\nimport { EmbeddedCodeEditorWidget } from '../../../browser/widget/codeEditor/embeddedCodeEditorWidget.js';\nimport { SuggestWidgetStatus } from './suggestWidgetStatus.js';\nimport '../../symbolIcons/browser/symbolIcons.js'; // The codicon symbol colors are defined here and must be loaded to get colors\nimport * as nls from '../../../../nls.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IStorageService } from '../../../../platform/storage/common/storage.js';\nimport { activeContrastBorder, editorForeground, editorWidgetBackground, editorWidgetBorder, listFocusHighlightForeground, listHighlightForeground, quickInputListFocusBackground, quickInputListFocusForeground, quickInputListFocusIconForeground, registerColor, transparent } from '../../../../platform/theme/common/colorRegistry.js';\nimport { isHighContrast } from '../../../../platform/theme/common/theme.js';\nimport { IThemeService } from '../../../../platform/theme/common/themeService.js';\nimport { ResizableHTMLElement } from '../../../../base/browser/ui/resizable/resizable.js';\nimport { Context as SuggestContext, suggestWidgetStatusbarMenu } from './suggest.js';\nimport { canExpandCompletionItem, SuggestDetailsOverlay, SuggestDetailsWidget } from './suggestWidgetDetails.js';\nimport { getAriaId, ItemRenderer } from './suggestWidgetRenderer.js';\nimport { getListStyles } from '../../../../platform/theme/browser/defaultStyles.js';\nimport { status } from '../../../../base/browser/ui/aria/aria.js';\n/**\n * Suggest widget colors\n */\nregisterColor('editorSuggestWidget.background', { dark: editorWidgetBackground, light: editorWidgetBackground, hcDark: editorWidgetBackground, hcLight: editorWidgetBackground }, nls.localize('editorSuggestWidgetBackground', 'Background color of the suggest widget.'));\nregisterColor('editorSuggestWidget.border', { dark: editorWidgetBorder, light: editorWidgetBorder, hcDark: editorWidgetBorder, hcLight: editorWidgetBorder }, nls.localize('editorSuggestWidgetBorder', 'Border color of the suggest widget.'));\nconst editorSuggestWidgetForeground = registerColor('editorSuggestWidget.foreground', { dark: editorForeground, light: editorForeground, hcDark: editorForeground, hcLight: editorForeground }, nls.localize('editorSuggestWidgetForeground', 'Foreground color of the suggest widget.'));\nregisterColor('editorSuggestWidget.selectedForeground', { dark: quickInputListFocusForeground, light: quickInputListFocusForeground, hcDark: quickInputListFocusForeground, hcLight: quickInputListFocusForeground }, nls.localize('editorSuggestWidgetSelectedForeground', 'Foreground color of the selected entry in the suggest widget.'));\nregisterColor('editorSuggestWidget.selectedIconForeground', { dark: quickInputListFocusIconForeground, light: quickInputListFocusIconForeground, hcDark: quickInputListFocusIconForeground, hcLight: quickInputListFocusIconForeground }, nls.localize('editorSuggestWidgetSelectedIconForeground', 'Icon foreground color of the selected entry in the suggest widget.'));\nexport const editorSuggestWidgetSelectedBackground = registerColor('editorSuggestWidget.selectedBackground', { dark: quickInputListFocusBackground, light: quickInputListFocusBackground, hcDark: quickInputListFocusBackground, hcLight: quickInputListFocusBackground }, nls.localize('editorSuggestWidgetSelectedBackground', 'Background color of the selected entry in the suggest widget.'));\nregisterColor('editorSuggestWidget.highlightForeground', { dark: listHighlightForeground, light: listHighlightForeground, hcDark: listHighlightForeground, hcLight: listHighlightForeground }, nls.localize('editorSuggestWidgetHighlightForeground', 'Color of the match highlights in the suggest widget.'));\nregisterColor('editorSuggestWidget.focusHighlightForeground', { dark: listFocusHighlightForeground, light: listFocusHighlightForeground, hcDark: listFocusHighlightForeground, hcLight: listFocusHighlightForeground }, nls.localize('editorSuggestWidgetFocusHighlightForeground', 'Color of the match highlights in the suggest widget when an item is focused.'));\nregisterColor('editorSuggestWidgetStatus.foreground', { dark: transparent(editorSuggestWidgetForeground, .5), light: transparent(editorSuggestWidgetForeground, .5), hcDark: transparent(editorSuggestWidgetForeground, .5), hcLight: transparent(editorSuggestWidgetForeground, .5) }, nls.localize('editorSuggestWidgetStatusForeground', 'Foreground color of the suggest widget status.'));\nclass PersistedWidgetSize {\n    constructor(_service, editor) {\n        this._service = _service;\n        this._key = `suggestWidget.size/${editor.getEditorType()}/${editor instanceof EmbeddedCodeEditorWidget}`;\n    }\n    restore() {\n        var _a;\n        const raw = (_a = this._service.get(this._key, 0 /* StorageScope.PROFILE */)) !== null && _a !== void 0 ? _a : '';\n        try {\n            const obj = JSON.parse(raw);\n            if (dom.Dimension.is(obj)) {\n                return dom.Dimension.lift(obj);\n            }\n        }\n        catch (_b) {\n            // ignore\n        }\n        return undefined;\n    }\n    store(size) {\n        this._service.store(this._key, JSON.stringify(size), 0 /* StorageScope.PROFILE */, 1 /* StorageTarget.MACHINE */);\n    }\n    reset() {\n        this._service.remove(this._key, 0 /* StorageScope.PROFILE */);\n    }\n}\nlet SuggestWidget = SuggestWidget_1 = class SuggestWidget {\n    constructor(editor, _storageService, _contextKeyService, _themeService, instantiationService) {\n        this.editor = editor;\n        this._storageService = _storageService;\n        this._state = 0 /* State.Hidden */;\n        this._isAuto = false;\n        this._pendingLayout = new MutableDisposable();\n        this._pendingShowDetails = new MutableDisposable();\n        this._ignoreFocusEvents = false;\n        this._forceRenderingAbove = false;\n        this._explainMode = false;\n        this._showTimeout = new TimeoutTimer();\n        this._disposables = new DisposableStore();\n        this._onDidSelect = new PauseableEmitter();\n        this._onDidFocus = new PauseableEmitter();\n        this._onDidHide = new Emitter();\n        this._onDidShow = new Emitter();\n        this.onDidSelect = this._onDidSelect.event;\n        this.onDidFocus = this._onDidFocus.event;\n        this.onDidHide = this._onDidHide.event;\n        this.onDidShow = this._onDidShow.event;\n        this._onDetailsKeydown = new Emitter();\n        this.onDetailsKeyDown = this._onDetailsKeydown.event;\n        this.element = new ResizableHTMLElement();\n        this.element.domNode.classList.add('editor-widget', 'suggest-widget');\n        this._contentWidget = new SuggestContentWidget(this, editor);\n        this._persistedSize = new PersistedWidgetSize(_storageService, editor);\n        class ResizeState {\n            constructor(persistedSize, currentSize, persistHeight = false, persistWidth = false) {\n                this.persistedSize = persistedSize;\n                this.currentSize = currentSize;\n                this.persistHeight = persistHeight;\n                this.persistWidth = persistWidth;\n            }\n        }\n        let state;\n        this._disposables.add(this.element.onDidWillResize(() => {\n            this._contentWidget.lockPreference();\n            state = new ResizeState(this._persistedSize.restore(), this.element.size);\n        }));\n        this._disposables.add(this.element.onDidResize(e => {\n            var _a, _b, _c, _d;\n            this._resize(e.dimension.width, e.dimension.height);\n            if (state) {\n                state.persistHeight = state.persistHeight || !!e.north || !!e.south;\n                state.persistWidth = state.persistWidth || !!e.east || !!e.west;\n            }\n            if (!e.done) {\n                return;\n            }\n            if (state) {\n                // only store width or height value that have changed and also\n                // only store changes that are above a certain threshold\n                const { itemHeight, defaultSize } = this.getLayoutInfo();\n                const threshold = Math.round(itemHeight / 2);\n                let { width, height } = this.element.size;\n                if (!state.persistHeight || Math.abs(state.currentSize.height - height) <= threshold) {\n                    height = (_b = (_a = state.persistedSize) === null || _a === void 0 ? void 0 : _a.height) !== null && _b !== void 0 ? _b : defaultSize.height;\n                }\n                if (!state.persistWidth || Math.abs(state.currentSize.width - width) <= threshold) {\n                    width = (_d = (_c = state.persistedSize) === null || _c === void 0 ? void 0 : _c.width) !== null && _d !== void 0 ? _d : defaultSize.width;\n                }\n                this._persistedSize.store(new dom.Dimension(width, height));\n            }\n            // reset working state\n            this._contentWidget.unlockPreference();\n            state = undefined;\n        }));\n        this._messageElement = dom.append(this.element.domNode, dom.$('.message'));\n        this._listElement = dom.append(this.element.domNode, dom.$('.tree'));\n        const details = this._disposables.add(instantiationService.createInstance(SuggestDetailsWidget, this.editor));\n        details.onDidClose(this.toggleDetails, this, this._disposables);\n        this._details = new SuggestDetailsOverlay(details, this.editor);\n        const applyIconStyle = () => this.element.domNode.classList.toggle('no-icons', !this.editor.getOption(118 /* EditorOption.suggest */).showIcons);\n        applyIconStyle();\n        const renderer = instantiationService.createInstance(ItemRenderer, this.editor);\n        this._disposables.add(renderer);\n        this._disposables.add(renderer.onDidToggleDetails(() => this.toggleDetails()));\n        this._list = new List('SuggestWidget', this._listElement, {\n            getHeight: (_element) => this.getLayoutInfo().itemHeight,\n            getTemplateId: (_element) => 'suggestion'\n        }, [renderer], {\n            alwaysConsumeMouseWheel: true,\n            useShadows: false,\n            mouseSupport: false,\n            multipleSelectionSupport: false,\n            accessibilityProvider: {\n                getRole: () => 'option',\n                getWidgetAriaLabel: () => nls.localize('suggest', \"Suggest\"),\n                getWidgetRole: () => 'listbox',\n                getAriaLabel: (item) => {\n                    let label = item.textLabel;\n                    if (typeof item.completion.label !== 'string') {\n                        const { detail, description } = item.completion.label;\n                        if (detail && description) {\n                            label = nls.localize('label.full', '{0} {1}, {2}', label, detail, description);\n                        }\n                        else if (detail) {\n                            label = nls.localize('label.detail', '{0} {1}', label, detail);\n                        }\n                        else if (description) {\n                            label = nls.localize('label.desc', '{0}, {1}', label, description);\n                        }\n                    }\n                    if (!item.isResolved || !this._isDetailsVisible()) {\n                        return label;\n                    }\n                    const { documentation, detail } = item.completion;\n                    const docs = strings.format('{0}{1}', detail || '', documentation ? (typeof documentation === 'string' ? documentation : documentation.value) : '');\n                    return nls.localize('ariaCurrenttSuggestionReadDetails', \"{0}, docs: {1}\", label, docs);\n                },\n            }\n        });\n        this._list.style(getListStyles({\n            listInactiveFocusBackground: editorSuggestWidgetSelectedBackground,\n            listInactiveFocusOutline: activeContrastBorder\n        }));\n        this._status = instantiationService.createInstance(SuggestWidgetStatus, this.element.domNode, suggestWidgetStatusbarMenu);\n        const applyStatusBarStyle = () => this.element.domNode.classList.toggle('with-status-bar', this.editor.getOption(118 /* EditorOption.suggest */).showStatusBar);\n        applyStatusBarStyle();\n        this._disposables.add(_themeService.onDidColorThemeChange(t => this._onThemeChange(t)));\n        this._onThemeChange(_themeService.getColorTheme());\n        this._disposables.add(this._list.onMouseDown(e => this._onListMouseDownOrTap(e)));\n        this._disposables.add(this._list.onTap(e => this._onListMouseDownOrTap(e)));\n        this._disposables.add(this._list.onDidChangeSelection(e => this._onListSelection(e)));\n        this._disposables.add(this._list.onDidChangeFocus(e => this._onListFocus(e)));\n        this._disposables.add(this.editor.onDidChangeCursorSelection(() => this._onCursorSelectionChanged()));\n        this._disposables.add(this.editor.onDidChangeConfiguration(e => {\n            if (e.hasChanged(118 /* EditorOption.suggest */)) {\n                applyStatusBarStyle();\n                applyIconStyle();\n            }\n            if (this._completionModel && (e.hasChanged(50 /* EditorOption.fontInfo */) || e.hasChanged(119 /* EditorOption.suggestFontSize */) || e.hasChanged(120 /* EditorOption.suggestLineHeight */))) {\n                this._list.splice(0, this._list.length, this._completionModel.items);\n            }\n        }));\n        this._ctxSuggestWidgetVisible = SuggestContext.Visible.bindTo(_contextKeyService);\n        this._ctxSuggestWidgetDetailsVisible = SuggestContext.DetailsVisible.bindTo(_contextKeyService);\n        this._ctxSuggestWidgetMultipleSuggestions = SuggestContext.MultipleSuggestions.bindTo(_contextKeyService);\n        this._ctxSuggestWidgetHasFocusedSuggestion = SuggestContext.HasFocusedSuggestion.bindTo(_contextKeyService);\n        this._disposables.add(dom.addStandardDisposableListener(this._details.widget.domNode, 'keydown', e => {\n            this._onDetailsKeydown.fire(e);\n        }));\n        this._disposables.add(this.editor.onMouseDown((e) => this._onEditorMouseDown(e)));\n    }\n    dispose() {\n        var _a;\n        this._details.widget.dispose();\n        this._details.dispose();\n        this._list.dispose();\n        this._status.dispose();\n        this._disposables.dispose();\n        (_a = this._loadingTimeout) === null || _a === void 0 ? void 0 : _a.dispose();\n        this._pendingLayout.dispose();\n        this._pendingShowDetails.dispose();\n        this._showTimeout.dispose();\n        this._contentWidget.dispose();\n        this.element.dispose();\n    }\n    _onEditorMouseDown(mouseEvent) {\n        if (this._details.widget.domNode.contains(mouseEvent.target.element)) {\n            // Clicking inside details\n            this._details.widget.domNode.focus();\n        }\n        else {\n            // Clicking outside details and inside suggest\n            if (this.element.domNode.contains(mouseEvent.target.element)) {\n                this.editor.focus();\n            }\n        }\n    }\n    _onCursorSelectionChanged() {\n        if (this._state !== 0 /* State.Hidden */) {\n            this._contentWidget.layout();\n        }\n    }\n    _onListMouseDownOrTap(e) {\n        if (typeof e.element === 'undefined' || typeof e.index === 'undefined') {\n            return;\n        }\n        // prevent stealing browser focus from the editor\n        e.browserEvent.preventDefault();\n        e.browserEvent.stopPropagation();\n        this._select(e.element, e.index);\n    }\n    _onListSelection(e) {\n        if (e.elements.length) {\n            this._select(e.elements[0], e.indexes[0]);\n        }\n    }\n    _select(item, index) {\n        const completionModel = this._completionModel;\n        if (completionModel) {\n            this._onDidSelect.fire({ item, index, model: completionModel });\n            this.editor.focus();\n        }\n    }\n    _onThemeChange(theme) {\n        this._details.widget.borderWidth = isHighContrast(theme.type) ? 2 : 1;\n    }\n    _onListFocus(e) {\n        var _a;\n        if (this._ignoreFocusEvents) {\n            return;\n        }\n        if (!e.elements.length) {\n            if (this._currentSuggestionDetails) {\n                this._currentSuggestionDetails.cancel();\n                this._currentSuggestionDetails = undefined;\n                this._focusedItem = undefined;\n            }\n            this.editor.setAriaOptions({ activeDescendant: undefined });\n            this._ctxSuggestWidgetHasFocusedSuggestion.set(false);\n            return;\n        }\n        if (!this._completionModel) {\n            return;\n        }\n        this._ctxSuggestWidgetHasFocusedSuggestion.set(true);\n        const item = e.elements[0];\n        const index = e.indexes[0];\n        if (item !== this._focusedItem) {\n            (_a = this._currentSuggestionDetails) === null || _a === void 0 ? void 0 : _a.cancel();\n            this._currentSuggestionDetails = undefined;\n            this._focusedItem = item;\n            this._list.reveal(index);\n            this._currentSuggestionDetails = createCancelablePromise(async (token) => {\n                const loading = disposableTimeout(() => {\n                    if (this._isDetailsVisible()) {\n                        this.showDetails(true);\n                    }\n                }, 250);\n                const sub = token.onCancellationRequested(() => loading.dispose());\n                try {\n                    return await item.resolve(token);\n                }\n                finally {\n                    loading.dispose();\n                    sub.dispose();\n                }\n            });\n            this._currentSuggestionDetails.then(() => {\n                if (index >= this._list.length || item !== this._list.element(index)) {\n                    return;\n                }\n                // item can have extra information, so re-render\n                this._ignoreFocusEvents = true;\n                this._list.splice(index, 1, [item]);\n                this._list.setFocus([index]);\n                this._ignoreFocusEvents = false;\n                if (this._isDetailsVisible()) {\n                    this.showDetails(false);\n                }\n                else {\n                    this.element.domNode.classList.remove('docs-side');\n                }\n                this.editor.setAriaOptions({ activeDescendant: getAriaId(index) });\n            }).catch(onUnexpectedError);\n        }\n        // emit an event\n        this._onDidFocus.fire({ item, index, model: this._completionModel });\n    }\n    _setState(state) {\n        if (this._state === state) {\n            return;\n        }\n        this._state = state;\n        this.element.domNode.classList.toggle('frozen', state === 4 /* State.Frozen */);\n        this.element.domNode.classList.remove('message');\n        switch (state) {\n            case 0 /* State.Hidden */:\n                dom.hide(this._messageElement, this._listElement, this._status.element);\n                this._details.hide(true);\n                this._status.hide();\n                this._contentWidget.hide();\n                this._ctxSuggestWidgetVisible.reset();\n                this._ctxSuggestWidgetMultipleSuggestions.reset();\n                this._ctxSuggestWidgetHasFocusedSuggestion.reset();\n                this._showTimeout.cancel();\n                this.element.domNode.classList.remove('visible');\n                this._list.splice(0, this._list.length);\n                this._focusedItem = undefined;\n                this._cappedHeight = undefined;\n                this._explainMode = false;\n                break;\n            case 1 /* State.Loading */:\n                this.element.domNode.classList.add('message');\n                this._messageElement.textContent = SuggestWidget_1.LOADING_MESSAGE;\n                dom.hide(this._listElement, this._status.element);\n                dom.show(this._messageElement);\n                this._details.hide();\n                this._show();\n                this._focusedItem = undefined;\n                status(SuggestWidget_1.LOADING_MESSAGE);\n                break;\n            case 2 /* State.Empty */:\n                this.element.domNode.classList.add('message');\n                this._messageElement.textContent = SuggestWidget_1.NO_SUGGESTIONS_MESSAGE;\n                dom.hide(this._listElement, this._status.element);\n                dom.show(this._messageElement);\n                this._details.hide();\n                this._show();\n                this._focusedItem = undefined;\n                status(SuggestWidget_1.NO_SUGGESTIONS_MESSAGE);\n                break;\n            case 3 /* State.Open */:\n                dom.hide(this._messageElement);\n                dom.show(this._listElement, this._status.element);\n                this._show();\n                break;\n            case 4 /* State.Frozen */:\n                dom.hide(this._messageElement);\n                dom.show(this._listElement, this._status.element);\n                this._show();\n                break;\n            case 5 /* State.Details */:\n                dom.hide(this._messageElement);\n                dom.show(this._listElement, this._status.element);\n                this._details.show();\n                this._show();\n                break;\n        }\n    }\n    _show() {\n        this._status.show();\n        this._contentWidget.show();\n        this._layout(this._persistedSize.restore());\n        this._ctxSuggestWidgetVisible.set(true);\n        this._showTimeout.cancelAndSet(() => {\n            this.element.domNode.classList.add('visible');\n            this._onDidShow.fire(this);\n        }, 100);\n    }\n    showTriggered(auto, delay) {\n        if (this._state !== 0 /* State.Hidden */) {\n            return;\n        }\n        this._contentWidget.setPosition(this.editor.getPosition());\n        this._isAuto = !!auto;\n        if (!this._isAuto) {\n            this._loadingTimeout = disposableTimeout(() => this._setState(1 /* State.Loading */), delay);\n        }\n    }\n    showSuggestions(completionModel, selectionIndex, isFrozen, isAuto, noFocus) {\n        var _a, _b;\n        this._contentWidget.setPosition(this.editor.getPosition());\n        (_a = this._loadingTimeout) === null || _a === void 0 ? void 0 : _a.dispose();\n        (_b = this._currentSuggestionDetails) === null || _b === void 0 ? void 0 : _b.cancel();\n        this._currentSuggestionDetails = undefined;\n        if (this._completionModel !== completionModel) {\n            this._completionModel = completionModel;\n        }\n        if (isFrozen && this._state !== 2 /* State.Empty */ && this._state !== 0 /* State.Hidden */) {\n            this._setState(4 /* State.Frozen */);\n            return;\n        }\n        const visibleCount = this._completionModel.items.length;\n        const isEmpty = visibleCount === 0;\n        this._ctxSuggestWidgetMultipleSuggestions.set(visibleCount > 1);\n        if (isEmpty) {\n            this._setState(isAuto ? 0 /* State.Hidden */ : 2 /* State.Empty */);\n            this._completionModel = undefined;\n            return;\n        }\n        this._focusedItem = undefined;\n        // calling list.splice triggers focus event which this widget forwards. That can lead to\n        // suggestions being cancelled and the widget being cleared (and hidden). All this happens\n        // before revealing and focusing is done which means revealing and focusing will fail when\n        // they get run.\n        this._onDidFocus.pause();\n        this._onDidSelect.pause();\n        try {\n            this._list.splice(0, this._list.length, this._completionModel.items);\n            this._setState(isFrozen ? 4 /* State.Frozen */ : 3 /* State.Open */);\n            this._list.reveal(selectionIndex, 0);\n            this._list.setFocus(noFocus ? [] : [selectionIndex]);\n        }\n        finally {\n            this._onDidFocus.resume();\n            this._onDidSelect.resume();\n        }\n        this._pendingLayout.value = dom.runAtThisOrScheduleAtNextAnimationFrame(dom.getWindow(this.element.domNode), () => {\n            this._pendingLayout.clear();\n            this._layout(this.element.size);\n            // Reset focus border\n            this._details.widget.domNode.classList.remove('focused');\n        });\n    }\n    focusSelected() {\n        if (this._list.length > 0) {\n            this._list.setFocus([0]);\n        }\n    }\n    selectNextPage() {\n        switch (this._state) {\n            case 0 /* State.Hidden */:\n                return false;\n            case 5 /* State.Details */:\n                this._details.widget.pageDown();\n                return true;\n            case 1 /* State.Loading */:\n                return !this._isAuto;\n            default:\n                this._list.focusNextPage();\n                return true;\n        }\n    }\n    selectNext() {\n        switch (this._state) {\n            case 0 /* State.Hidden */:\n                return false;\n            case 1 /* State.Loading */:\n                return !this._isAuto;\n            default:\n                this._list.focusNext(1, true);\n                return true;\n        }\n    }\n    selectLast() {\n        switch (this._state) {\n            case 0 /* State.Hidden */:\n                return false;\n            case 5 /* State.Details */:\n                this._details.widget.scrollBottom();\n                return true;\n            case 1 /* State.Loading */:\n                return !this._isAuto;\n            default:\n                this._list.focusLast();\n                return true;\n        }\n    }\n    selectPreviousPage() {\n        switch (this._state) {\n            case 0 /* State.Hidden */:\n                return false;\n            case 5 /* State.Details */:\n                this._details.widget.pageUp();\n                return true;\n            case 1 /* State.Loading */:\n                return !this._isAuto;\n            default:\n                this._list.focusPreviousPage();\n                return true;\n        }\n    }\n    selectPrevious() {\n        switch (this._state) {\n            case 0 /* State.Hidden */:\n                return false;\n            case 1 /* State.Loading */:\n                return !this._isAuto;\n            default:\n                this._list.focusPrevious(1, true);\n                return false;\n        }\n    }\n    selectFirst() {\n        switch (this._state) {\n            case 0 /* State.Hidden */:\n                return false;\n            case 5 /* State.Details */:\n                this._details.widget.scrollTop();\n                return true;\n            case 1 /* State.Loading */:\n                return !this._isAuto;\n            default:\n                this._list.focusFirst();\n                return true;\n        }\n    }\n    getFocusedItem() {\n        if (this._state !== 0 /* State.Hidden */\n            && this._state !== 2 /* State.Empty */\n            && this._state !== 1 /* State.Loading */\n            && this._completionModel\n            && this._list.getFocus().length > 0) {\n            return {\n                item: this._list.getFocusedElements()[0],\n                index: this._list.getFocus()[0],\n                model: this._completionModel\n            };\n        }\n        return undefined;\n    }\n    toggleDetailsFocus() {\n        if (this._state === 5 /* State.Details */) {\n            this._setState(3 /* State.Open */);\n            this._details.widget.domNode.classList.remove('focused');\n        }\n        else if (this._state === 3 /* State.Open */ && this._isDetailsVisible()) {\n            this._setState(5 /* State.Details */);\n            this._details.widget.domNode.classList.add('focused');\n        }\n    }\n    toggleDetails() {\n        if (this._isDetailsVisible()) {\n            // hide details widget\n            this._pendingShowDetails.clear();\n            this._ctxSuggestWidgetDetailsVisible.set(false);\n            this._setDetailsVisible(false);\n            this._details.hide();\n            this.element.domNode.classList.remove('shows-details');\n        }\n        else if ((canExpandCompletionItem(this._list.getFocusedElements()[0]) || this._explainMode) && (this._state === 3 /* State.Open */ || this._state === 5 /* State.Details */ || this._state === 4 /* State.Frozen */)) {\n            // show details widget (iff possible)\n            this._ctxSuggestWidgetDetailsVisible.set(true);\n            this._setDetailsVisible(true);\n            this.showDetails(false);\n        }\n    }\n    showDetails(loading) {\n        this._pendingShowDetails.value = dom.runAtThisOrScheduleAtNextAnimationFrame(dom.getWindow(this.element.domNode), () => {\n            this._pendingShowDetails.clear();\n            this._details.show();\n            if (loading) {\n                this._details.widget.renderLoading();\n            }\n            else {\n                this._details.widget.renderItem(this._list.getFocusedElements()[0], this._explainMode);\n            }\n            if (!this._details.widget.isEmpty) {\n                this._positionDetails();\n                this.element.domNode.classList.add('shows-details');\n            }\n            else {\n                this._details.hide();\n            }\n            this.editor.focus();\n        });\n    }\n    toggleExplainMode() {\n        if (this._list.getFocusedElements()[0]) {\n            this._explainMode = !this._explainMode;\n            if (!this._isDetailsVisible()) {\n                this.toggleDetails();\n            }\n            else {\n                this.showDetails(false);\n            }\n        }\n    }\n    resetPersistedSize() {\n        this._persistedSize.reset();\n    }\n    hideWidget() {\n        var _a;\n        this._pendingLayout.clear();\n        this._pendingShowDetails.clear();\n        (_a = this._loadingTimeout) === null || _a === void 0 ? void 0 : _a.dispose();\n        this._setState(0 /* State.Hidden */);\n        this._onDidHide.fire(this);\n        this.element.clearSashHoverState();\n        // ensure that a reasonable widget height is persisted so that\n        // accidential \"resize-to-single-items\" cases aren't happening\n        const dim = this._persistedSize.restore();\n        const minPersistedHeight = Math.ceil(this.getLayoutInfo().itemHeight * 4.3);\n        if (dim && dim.height < minPersistedHeight) {\n            this._persistedSize.store(dim.with(undefined, minPersistedHeight));\n        }\n    }\n    isFrozen() {\n        return this._state === 4 /* State.Frozen */;\n    }\n    _afterRender(position) {\n        if (position === null) {\n            if (this._isDetailsVisible()) {\n                this._details.hide(); //todo@jrieken soft-hide\n            }\n            return;\n        }\n        if (this._state === 2 /* State.Empty */ || this._state === 1 /* State.Loading */) {\n            // no special positioning when widget isn't showing list\n            return;\n        }\n        if (this._isDetailsVisible() && !this._details.widget.isEmpty) {\n            this._details.show();\n        }\n        this._positionDetails();\n    }\n    _layout(size) {\n        var _a, _b, _c;\n        if (!this.editor.hasModel()) {\n            return;\n        }\n        if (!this.editor.getDomNode()) {\n            // happens when running tests\n            return;\n        }\n        const bodyBox = dom.getClientArea(this.element.domNode.ownerDocument.body);\n        const info = this.getLayoutInfo();\n        if (!size) {\n            size = info.defaultSize;\n        }\n        let height = size.height;\n        let width = size.width;\n        // status bar\n        this._status.element.style.height = `${info.itemHeight}px`;\n        if (this._state === 2 /* State.Empty */ || this._state === 1 /* State.Loading */) {\n            // showing a message only\n            height = info.itemHeight + info.borderHeight;\n            width = info.defaultSize.width / 2;\n            this.element.enableSashes(false, false, false, false);\n            this.element.minSize = this.element.maxSize = new dom.Dimension(width, height);\n            this._contentWidget.setPreference(2 /* ContentWidgetPositionPreference.BELOW */);\n        }\n        else {\n            // showing items\n            // width math\n            const maxWidth = bodyBox.width - info.borderHeight - 2 * info.horizontalPadding;\n            if (width > maxWidth) {\n                width = maxWidth;\n            }\n            const preferredWidth = this._completionModel ? this._completionModel.stats.pLabelLen * info.typicalHalfwidthCharacterWidth : width;\n            // height math\n            const fullHeight = info.statusBarHeight + this._list.contentHeight + info.borderHeight;\n            const minHeight = info.itemHeight + info.statusBarHeight;\n            const editorBox = dom.getDomNodePagePosition(this.editor.getDomNode());\n            const cursorBox = this.editor.getScrolledVisiblePosition(this.editor.getPosition());\n            const cursorBottom = editorBox.top + cursorBox.top + cursorBox.height;\n            const maxHeightBelow = Math.min(bodyBox.height - cursorBottom - info.verticalPadding, fullHeight);\n            const availableSpaceAbove = editorBox.top + cursorBox.top - info.verticalPadding;\n            const maxHeightAbove = Math.min(availableSpaceAbove, fullHeight);\n            let maxHeight = Math.min(Math.max(maxHeightAbove, maxHeightBelow) + info.borderHeight, fullHeight);\n            if (height === ((_a = this._cappedHeight) === null || _a === void 0 ? void 0 : _a.capped)) {\n                // Restore the old (wanted) height when the current\n                // height is capped to fit\n                height = this._cappedHeight.wanted;\n            }\n            if (height < minHeight) {\n                height = minHeight;\n            }\n            if (height > maxHeight) {\n                height = maxHeight;\n            }\n            const forceRenderingAboveRequiredSpace = 150;\n            if (height > maxHeightBelow || (this._forceRenderingAbove && availableSpaceAbove > forceRenderingAboveRequiredSpace)) {\n                this._contentWidget.setPreference(1 /* ContentWidgetPositionPreference.ABOVE */);\n                this.element.enableSashes(true, true, false, false);\n                maxHeight = maxHeightAbove;\n            }\n            else {\n                this._contentWidget.setPreference(2 /* ContentWidgetPositionPreference.BELOW */);\n                this.element.enableSashes(false, true, true, false);\n                maxHeight = maxHeightBelow;\n            }\n            this.element.preferredSize = new dom.Dimension(preferredWidth, info.defaultSize.height);\n            this.element.maxSize = new dom.Dimension(maxWidth, maxHeight);\n            this.element.minSize = new dom.Dimension(220, minHeight);\n            // Know when the height was capped to fit and remember\n            // the wanted height for later. This is required when going\n            // left to widen suggestions.\n            this._cappedHeight = height === fullHeight\n                ? { wanted: (_c = (_b = this._cappedHeight) === null || _b === void 0 ? void 0 : _b.wanted) !== null && _c !== void 0 ? _c : size.height, capped: height }\n                : undefined;\n        }\n        this._resize(width, height);\n    }\n    _resize(width, height) {\n        const { width: maxWidth, height: maxHeight } = this.element.maxSize;\n        width = Math.min(maxWidth, width);\n        height = Math.min(maxHeight, height);\n        const { statusBarHeight } = this.getLayoutInfo();\n        this._list.layout(height - statusBarHeight, width);\n        this._listElement.style.height = `${height - statusBarHeight}px`;\n        this.element.layout(height, width);\n        this._contentWidget.layout();\n        this._positionDetails();\n    }\n    _positionDetails() {\n        var _a;\n        if (this._isDetailsVisible()) {\n            this._details.placeAtAnchor(this.element.domNode, ((_a = this._contentWidget.getPosition()) === null || _a === void 0 ? void 0 : _a.preference[0]) === 2 /* ContentWidgetPositionPreference.BELOW */);\n        }\n    }\n    getLayoutInfo() {\n        const fontInfo = this.editor.getOption(50 /* EditorOption.fontInfo */);\n        const itemHeight = clamp(this.editor.getOption(120 /* EditorOption.suggestLineHeight */) || fontInfo.lineHeight, 8, 1000);\n        const statusBarHeight = !this.editor.getOption(118 /* EditorOption.suggest */).showStatusBar || this._state === 2 /* State.Empty */ || this._state === 1 /* State.Loading */ ? 0 : itemHeight;\n        const borderWidth = this._details.widget.borderWidth;\n        const borderHeight = 2 * borderWidth;\n        return {\n            itemHeight,\n            statusBarHeight,\n            borderWidth,\n            borderHeight,\n            typicalHalfwidthCharacterWidth: fontInfo.typicalHalfwidthCharacterWidth,\n            verticalPadding: 22,\n            horizontalPadding: 14,\n            defaultSize: new dom.Dimension(430, statusBarHeight + 12 * itemHeight + borderHeight)\n        };\n    }\n    _isDetailsVisible() {\n        return this._storageService.getBoolean('expandSuggestionDocs', 0 /* StorageScope.PROFILE */, false);\n    }\n    _setDetailsVisible(value) {\n        this._storageService.store('expandSuggestionDocs', value, 0 /* StorageScope.PROFILE */, 0 /* StorageTarget.USER */);\n    }\n    forceRenderingAbove() {\n        if (!this._forceRenderingAbove) {\n            this._forceRenderingAbove = true;\n            this._layout(this._persistedSize.restore());\n        }\n    }\n    stopForceRenderingAbove() {\n        this._forceRenderingAbove = false;\n    }\n};\nSuggestWidget.LOADING_MESSAGE = nls.localize('suggestWidget.loading', \"Loading...\");\nSuggestWidget.NO_SUGGESTIONS_MESSAGE = nls.localize('suggestWidget.noSuggestions', \"No suggestions.\");\nSuggestWidget = SuggestWidget_1 = __decorate([\n    __param(1, IStorageService),\n    __param(2, IContextKeyService),\n    __param(3, IThemeService),\n    __param(4, IInstantiationService)\n], SuggestWidget);\nexport { SuggestWidget };\nexport class SuggestContentWidget {\n    constructor(_widget, _editor) {\n        this._widget = _widget;\n        this._editor = _editor;\n        this.allowEditorOverflow = true;\n        this.suppressMouseDown = false;\n        this._preferenceLocked = false;\n        this._added = false;\n        this._hidden = false;\n    }\n    dispose() {\n        if (this._added) {\n            this._added = false;\n            this._editor.removeContentWidget(this);\n        }\n    }\n    getId() {\n        return 'editor.widget.suggestWidget';\n    }\n    getDomNode() {\n        return this._widget.element.domNode;\n    }\n    show() {\n        this._hidden = false;\n        if (!this._added) {\n            this._added = true;\n            this._editor.addContentWidget(this);\n        }\n    }\n    hide() {\n        if (!this._hidden) {\n            this._hidden = true;\n            this.layout();\n        }\n    }\n    layout() {\n        this._editor.layoutContentWidget(this);\n    }\n    getPosition() {\n        if (this._hidden || !this._position || !this._preference) {\n            return null;\n        }\n        return {\n            position: this._position,\n            preference: [this._preference]\n        };\n    }\n    beforeRender() {\n        const { height, width } = this._widget.element.size;\n        const { borderWidth, horizontalPadding } = this._widget.getLayoutInfo();\n        return new dom.Dimension(width + 2 * borderWidth + horizontalPadding, height + 2 * borderWidth);\n    }\n    afterRender(position) {\n        this._widget._afterRender(position);\n    }\n    setPreference(preference) {\n        if (!this._preferenceLocked) {\n            this._preference = preference;\n        }\n    }\n    lockPreference() {\n        this._preferenceLocked = true;\n    }\n    unlockPreference() {\n        this._preferenceLocked = false;\n    }\n    setPosition(position) {\n        this._position = position;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport * as dom from '../../../../base/browser/dom.js';\nimport { DomScrollableElement } from '../../../../base/browser/ui/scrollbar/scrollableElement.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { ThemeIcon } from '../../../../base/common/themables.js';\nimport { Emitter } from '../../../../base/common/event.js';\nimport { MarkdownString } from '../../../../base/common/htmlContent.js';\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { MarkdownRenderer } from '../../../browser/widget/markdownRenderer/browser/markdownRenderer.js';\nimport { ResizableHTMLElement } from '../../../../base/browser/ui/resizable/resizable.js';\nimport * as nls from '../../../../nls.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nexport function canExpandCompletionItem(item) {\n    return !!item && Boolean(item.completion.documentation || item.completion.detail && item.completion.detail !== item.completion.label);\n}\nlet SuggestDetailsWidget = class SuggestDetailsWidget {\n    constructor(_editor, instaService) {\n        this._editor = _editor;\n        this._onDidClose = new Emitter();\n        this.onDidClose = this._onDidClose.event;\n        this._onDidChangeContents = new Emitter();\n        this.onDidChangeContents = this._onDidChangeContents.event;\n        this._disposables = new DisposableStore();\n        this._renderDisposeable = new DisposableStore();\n        this._borderWidth = 1;\n        this._size = new dom.Dimension(330, 0);\n        this.domNode = dom.$('.suggest-details');\n        this.domNode.classList.add('no-docs');\n        this._markdownRenderer = instaService.createInstance(MarkdownRenderer, { editor: _editor });\n        this._body = dom.$('.body');\n        this._scrollbar = new DomScrollableElement(this._body, {\n            alwaysConsumeMouseWheel: true,\n        });\n        dom.append(this.domNode, this._scrollbar.getDomNode());\n        this._disposables.add(this._scrollbar);\n        this._header = dom.append(this._body, dom.$('.header'));\n        this._close = dom.append(this._header, dom.$('span' + ThemeIcon.asCSSSelector(Codicon.close)));\n        this._close.title = nls.localize('details.close', \"Close\");\n        this._type = dom.append(this._header, dom.$('p.type'));\n        this._docs = dom.append(this._body, dom.$('p.docs'));\n        this._configureFont();\n        this._disposables.add(this._editor.onDidChangeConfiguration(e => {\n            if (e.hasChanged(50 /* EditorOption.fontInfo */)) {\n                this._configureFont();\n            }\n        }));\n    }\n    dispose() {\n        this._disposables.dispose();\n        this._renderDisposeable.dispose();\n    }\n    _configureFont() {\n        const options = this._editor.getOptions();\n        const fontInfo = options.get(50 /* EditorOption.fontInfo */);\n        const fontFamily = fontInfo.getMassagedFontFamily();\n        const fontSize = options.get(119 /* EditorOption.suggestFontSize */) || fontInfo.fontSize;\n        const lineHeight = options.get(120 /* EditorOption.suggestLineHeight */) || fontInfo.lineHeight;\n        const fontWeight = fontInfo.fontWeight;\n        const fontSizePx = `${fontSize}px`;\n        const lineHeightPx = `${lineHeight}px`;\n        this.domNode.style.fontSize = fontSizePx;\n        this.domNode.style.lineHeight = `${lineHeight / fontSize}`;\n        this.domNode.style.fontWeight = fontWeight;\n        this.domNode.style.fontFeatureSettings = fontInfo.fontFeatureSettings;\n        this._type.style.fontFamily = fontFamily;\n        this._close.style.height = lineHeightPx;\n        this._close.style.width = lineHeightPx;\n    }\n    getLayoutInfo() {\n        const lineHeight = this._editor.getOption(120 /* EditorOption.suggestLineHeight */) || this._editor.getOption(50 /* EditorOption.fontInfo */).lineHeight;\n        const borderWidth = this._borderWidth;\n        const borderHeight = borderWidth * 2;\n        return {\n            lineHeight,\n            borderWidth,\n            borderHeight,\n            verticalPadding: 22,\n            horizontalPadding: 14\n        };\n    }\n    renderLoading() {\n        this._type.textContent = nls.localize('loading', \"Loading...\");\n        this._docs.textContent = '';\n        this.domNode.classList.remove('no-docs', 'no-type');\n        this.layout(this.size.width, this.getLayoutInfo().lineHeight * 2);\n        this._onDidChangeContents.fire(this);\n    }\n    renderItem(item, explainMode) {\n        var _a, _b;\n        this._renderDisposeable.clear();\n        let { detail, documentation } = item.completion;\n        if (explainMode) {\n            let md = '';\n            md += `score: ${item.score[0]}\\n`;\n            md += `prefix: ${(_a = item.word) !== null && _a !== void 0 ? _a : '(no prefix)'}\\n`;\n            md += `word: ${item.completion.filterText ? item.completion.filterText + ' (filterText)' : item.textLabel}\\n`;\n            md += `distance: ${item.distance} (localityBonus-setting)\\n`;\n            md += `index: ${item.idx}, based on ${item.completion.sortText && `sortText: \"${item.completion.sortText}\"` || 'label'}\\n`;\n            md += `commit_chars: ${(_b = item.completion.commitCharacters) === null || _b === void 0 ? void 0 : _b.join('')}\\n`;\n            documentation = new MarkdownString().appendCodeblock('empty', md);\n            detail = `Provider: ${item.provider._debugDisplayName}`;\n        }\n        if (!explainMode && !canExpandCompletionItem(item)) {\n            this.clearContents();\n            return;\n        }\n        this.domNode.classList.remove('no-docs', 'no-type');\n        // --- details\n        if (detail) {\n            const cappedDetail = detail.length > 100000 ? `${detail.substr(0, 100000)}…` : detail;\n            this._type.textContent = cappedDetail;\n            this._type.title = cappedDetail;\n            dom.show(this._type);\n            this._type.classList.toggle('auto-wrap', !/\\r?\\n^\\s+/gmi.test(cappedDetail));\n        }\n        else {\n            dom.clearNode(this._type);\n            this._type.title = '';\n            dom.hide(this._type);\n            this.domNode.classList.add('no-type');\n        }\n        // --- documentation\n        dom.clearNode(this._docs);\n        if (typeof documentation === 'string') {\n            this._docs.classList.remove('markdown-docs');\n            this._docs.textContent = documentation;\n        }\n        else if (documentation) {\n            this._docs.classList.add('markdown-docs');\n            dom.clearNode(this._docs);\n            const renderedContents = this._markdownRenderer.render(documentation);\n            this._docs.appendChild(renderedContents.element);\n            this._renderDisposeable.add(renderedContents);\n            this._renderDisposeable.add(this._markdownRenderer.onDidRenderAsync(() => {\n                this.layout(this._size.width, this._type.clientHeight + this._docs.clientHeight);\n                this._onDidChangeContents.fire(this);\n            }));\n        }\n        this.domNode.style.userSelect = 'text';\n        this.domNode.tabIndex = -1;\n        this._close.onmousedown = e => {\n            e.preventDefault();\n            e.stopPropagation();\n        };\n        this._close.onclick = e => {\n            e.preventDefault();\n            e.stopPropagation();\n            this._onDidClose.fire();\n        };\n        this._body.scrollTop = 0;\n        this.layout(this._size.width, this._type.clientHeight + this._docs.clientHeight);\n        this._onDidChangeContents.fire(this);\n    }\n    clearContents() {\n        this.domNode.classList.add('no-docs');\n        this._type.textContent = '';\n        this._docs.textContent = '';\n    }\n    get isEmpty() {\n        return this.domNode.classList.contains('no-docs');\n    }\n    get size() {\n        return this._size;\n    }\n    layout(width, height) {\n        const newSize = new dom.Dimension(width, height);\n        if (!dom.Dimension.equals(newSize, this._size)) {\n            this._size = newSize;\n            dom.size(this.domNode, width, height);\n        }\n        this._scrollbar.scanDomNode();\n    }\n    scrollDown(much = 8) {\n        this._body.scrollTop += much;\n    }\n    scrollUp(much = 8) {\n        this._body.scrollTop -= much;\n    }\n    scrollTop() {\n        this._body.scrollTop = 0;\n    }\n    scrollBottom() {\n        this._body.scrollTop = this._body.scrollHeight;\n    }\n    pageDown() {\n        this.scrollDown(80);\n    }\n    pageUp() {\n        this.scrollUp(80);\n    }\n    set borderWidth(width) {\n        this._borderWidth = width;\n    }\n    get borderWidth() {\n        return this._borderWidth;\n    }\n};\nSuggestDetailsWidget = __decorate([\n    __param(1, IInstantiationService)\n], SuggestDetailsWidget);\nexport { SuggestDetailsWidget };\nexport class SuggestDetailsOverlay {\n    constructor(widget, _editor) {\n        this.widget = widget;\n        this._editor = _editor;\n        this.allowEditorOverflow = true;\n        this._disposables = new DisposableStore();\n        this._added = false;\n        this._preferAlignAtTop = true;\n        this._resizable = new ResizableHTMLElement();\n        this._resizable.domNode.classList.add('suggest-details-container');\n        this._resizable.domNode.appendChild(widget.domNode);\n        this._resizable.enableSashes(false, true, true, false);\n        let topLeftNow;\n        let sizeNow;\n        let deltaTop = 0;\n        let deltaLeft = 0;\n        this._disposables.add(this._resizable.onDidWillResize(() => {\n            topLeftNow = this._topLeft;\n            sizeNow = this._resizable.size;\n        }));\n        this._disposables.add(this._resizable.onDidResize(e => {\n            if (topLeftNow && sizeNow) {\n                this.widget.layout(e.dimension.width, e.dimension.height);\n                let updateTopLeft = false;\n                if (e.west) {\n                    deltaLeft = sizeNow.width - e.dimension.width;\n                    updateTopLeft = true;\n                }\n                if (e.north) {\n                    deltaTop = sizeNow.height - e.dimension.height;\n                    updateTopLeft = true;\n                }\n                if (updateTopLeft) {\n                    this._applyTopLeft({\n                        top: topLeftNow.top + deltaTop,\n                        left: topLeftNow.left + deltaLeft,\n                    });\n                }\n            }\n            if (e.done) {\n                topLeftNow = undefined;\n                sizeNow = undefined;\n                deltaTop = 0;\n                deltaLeft = 0;\n                this._userSize = e.dimension;\n            }\n        }));\n        this._disposables.add(this.widget.onDidChangeContents(() => {\n            var _a;\n            if (this._anchorBox) {\n                this._placeAtAnchor(this._anchorBox, (_a = this._userSize) !== null && _a !== void 0 ? _a : this.widget.size, this._preferAlignAtTop);\n            }\n        }));\n    }\n    dispose() {\n        this._resizable.dispose();\n        this._disposables.dispose();\n        this.hide();\n    }\n    getId() {\n        return 'suggest.details';\n    }\n    getDomNode() {\n        return this._resizable.domNode;\n    }\n    getPosition() {\n        return this._topLeft ? { preference: this._topLeft } : null;\n    }\n    show() {\n        if (!this._added) {\n            this._editor.addOverlayWidget(this);\n            this._added = true;\n        }\n    }\n    hide(sessionEnded = false) {\n        this._resizable.clearSashHoverState();\n        if (this._added) {\n            this._editor.removeOverlayWidget(this);\n            this._added = false;\n            this._anchorBox = undefined;\n            this._topLeft = undefined;\n        }\n        if (sessionEnded) {\n            this._userSize = undefined;\n            this.widget.clearContents();\n        }\n    }\n    placeAtAnchor(anchor, preferAlignAtTop) {\n        var _a;\n        const anchorBox = anchor.getBoundingClientRect();\n        this._anchorBox = anchorBox;\n        this._preferAlignAtTop = preferAlignAtTop;\n        this._placeAtAnchor(this._anchorBox, (_a = this._userSize) !== null && _a !== void 0 ? _a : this.widget.size, preferAlignAtTop);\n    }\n    _placeAtAnchor(anchorBox, size, preferAlignAtTop) {\n        var _a;\n        const bodyBox = dom.getClientArea(this.getDomNode().ownerDocument.body);\n        const info = this.widget.getLayoutInfo();\n        const defaultMinSize = new dom.Dimension(220, 2 * info.lineHeight);\n        const defaultTop = anchorBox.top;\n        // EAST\n        const eastPlacement = (function () {\n            const width = bodyBox.width - (anchorBox.left + anchorBox.width + info.borderWidth + info.horizontalPadding);\n            const left = -info.borderWidth + anchorBox.left + anchorBox.width;\n            const maxSizeTop = new dom.Dimension(width, bodyBox.height - anchorBox.top - info.borderHeight - info.verticalPadding);\n            const maxSizeBottom = maxSizeTop.with(undefined, anchorBox.top + anchorBox.height - info.borderHeight - info.verticalPadding);\n            return { top: defaultTop, left, fit: width - size.width, maxSizeTop, maxSizeBottom, minSize: defaultMinSize.with(Math.min(width, defaultMinSize.width)) };\n        })();\n        // WEST\n        const westPlacement = (function () {\n            const width = anchorBox.left - info.borderWidth - info.horizontalPadding;\n            const left = Math.max(info.horizontalPadding, anchorBox.left - size.width - info.borderWidth);\n            const maxSizeTop = new dom.Dimension(width, bodyBox.height - anchorBox.top - info.borderHeight - info.verticalPadding);\n            const maxSizeBottom = maxSizeTop.with(undefined, anchorBox.top + anchorBox.height - info.borderHeight - info.verticalPadding);\n            return { top: defaultTop, left, fit: width - size.width, maxSizeTop, maxSizeBottom, minSize: defaultMinSize.with(Math.min(width, defaultMinSize.width)) };\n        })();\n        // SOUTH\n        const southPacement = (function () {\n            const left = anchorBox.left;\n            const top = -info.borderWidth + anchorBox.top + anchorBox.height;\n            const maxSizeBottom = new dom.Dimension(anchorBox.width - info.borderHeight, bodyBox.height - anchorBox.top - anchorBox.height - info.verticalPadding);\n            return { top, left, fit: maxSizeBottom.height - size.height, maxSizeBottom, maxSizeTop: maxSizeBottom, minSize: defaultMinSize.with(maxSizeBottom.width) };\n        })();\n        // take first placement that fits or the first with \"least bad\" fit\n        const placements = [eastPlacement, westPlacement, southPacement];\n        const placement = (_a = placements.find(p => p.fit >= 0)) !== null && _a !== void 0 ? _a : placements.sort((a, b) => b.fit - a.fit)[0];\n        // top/bottom placement\n        const bottom = anchorBox.top + anchorBox.height - info.borderHeight;\n        let alignAtTop;\n        let height = size.height;\n        const maxHeight = Math.max(placement.maxSizeTop.height, placement.maxSizeBottom.height);\n        if (height > maxHeight) {\n            height = maxHeight;\n        }\n        let maxSize;\n        if (preferAlignAtTop) {\n            if (height <= placement.maxSizeTop.height) {\n                alignAtTop = true;\n                maxSize = placement.maxSizeTop;\n            }\n            else {\n                alignAtTop = false;\n                maxSize = placement.maxSizeBottom;\n            }\n        }\n        else {\n            if (height <= placement.maxSizeBottom.height) {\n                alignAtTop = false;\n                maxSize = placement.maxSizeBottom;\n            }\n            else {\n                alignAtTop = true;\n                maxSize = placement.maxSizeTop;\n            }\n        }\n        let { top, left } = placement;\n        if (!alignAtTop && height > anchorBox.height) {\n            top = bottom - height;\n        }\n        const editorDomNode = this._editor.getDomNode();\n        if (editorDomNode) {\n            // get bounding rectangle of the suggest widget relative to the editor\n            const editorBoundingBox = editorDomNode.getBoundingClientRect();\n            top -= editorBoundingBox.top;\n            left -= editorBoundingBox.left;\n        }\n        this._applyTopLeft({ left, top });\n        this._resizable.enableSashes(!alignAtTop, placement === eastPlacement, alignAtTop, placement !== eastPlacement);\n        this._resizable.minSize = placement.minSize;\n        this._resizable.maxSize = maxSize;\n        this._resizable.layout(height, Math.min(maxSize.width, size.width));\n        this.widget.layout(this._resizable.size.width, this._resizable.size.height);\n    }\n    _applyTopLeft(topLeft) {\n        this._topLeft = topLeft;\n        this._editor.layoutOverlayWidget(this);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a;\nimport { $, append, hide, show } from '../../../../base/browser/dom.js';\nimport { IconLabel } from '../../../../base/browser/ui/iconLabel/iconLabel.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { ThemeIcon } from '../../../../base/common/themables.js';\nimport { Emitter } from '../../../../base/common/event.js';\nimport { createMatches } from '../../../../base/common/filters.js';\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport { CompletionItemKinds } from '../../../common/languages.js';\nimport { getIconClasses } from '../../../common/services/getIconClasses.js';\nimport { IModelService } from '../../../common/services/model.js';\nimport { ILanguageService } from '../../../common/languages/language.js';\nimport * as nls from '../../../../nls.js';\nimport { FileKind } from '../../../../platform/files/common/files.js';\nimport { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';\nimport { IThemeService } from '../../../../platform/theme/common/themeService.js';\nimport { canExpandCompletionItem } from './suggestWidgetDetails.js';\nexport function getAriaId(index) {\n    return `suggest-aria-id:${index}`;\n}\nconst suggestMoreInfoIcon = registerIcon('suggest-more-info', Codicon.chevronRight, nls.localize('suggestMoreInfoIcon', 'Icon for more information in the suggest widget.'));\nconst _completionItemColor = new (_a = class ColorExtractor {\n        extract(item, out) {\n            if (item.textLabel.match(_a._regexStrict)) {\n                out[0] = item.textLabel;\n                return true;\n            }\n            if (item.completion.detail && item.completion.detail.match(_a._regexStrict)) {\n                out[0] = item.completion.detail;\n                return true;\n            }\n            if (item.completion.documentation) {\n                const value = typeof item.completion.documentation === 'string'\n                    ? item.completion.documentation\n                    : item.completion.documentation.value;\n                const match = _a._regexRelaxed.exec(value);\n                if (match && (match.index === 0 || match.index + match[0].length === value.length)) {\n                    out[0] = match[0];\n                    return true;\n                }\n            }\n            return false;\n        }\n    },\n    _a._regexRelaxed = /(#([\\da-fA-F]{3}){1,2}|(rgb|hsl)a\\(\\s*(\\d{1,3}%?\\s*,\\s*){3}(1|0?\\.\\d+)\\)|(rgb|hsl)\\(\\s*\\d{1,3}%?(\\s*,\\s*\\d{1,3}%?){2}\\s*\\))/,\n    _a._regexStrict = new RegExp(`^${_a._regexRelaxed.source}$`, 'i'),\n    _a);\nlet ItemRenderer = class ItemRenderer {\n    constructor(_editor, _modelService, _languageService, _themeService) {\n        this._editor = _editor;\n        this._modelService = _modelService;\n        this._languageService = _languageService;\n        this._themeService = _themeService;\n        this._onDidToggleDetails = new Emitter();\n        this.onDidToggleDetails = this._onDidToggleDetails.event;\n        this.templateId = 'suggestion';\n    }\n    dispose() {\n        this._onDidToggleDetails.dispose();\n    }\n    renderTemplate(container) {\n        const disposables = new DisposableStore();\n        const root = container;\n        root.classList.add('show-file-icons');\n        const icon = append(container, $('.icon'));\n        const colorspan = append(icon, $('span.colorspan'));\n        const text = append(container, $('.contents'));\n        const main = append(text, $('.main'));\n        const iconContainer = append(main, $('.icon-label.codicon'));\n        const left = append(main, $('span.left'));\n        const right = append(main, $('span.right'));\n        const iconLabel = new IconLabel(left, { supportHighlights: true, supportIcons: true });\n        disposables.add(iconLabel);\n        const parametersLabel = append(left, $('span.signature-label'));\n        const qualifierLabel = append(left, $('span.qualifier-label'));\n        const detailsLabel = append(right, $('span.details-label'));\n        const readMore = append(right, $('span.readMore' + ThemeIcon.asCSSSelector(suggestMoreInfoIcon)));\n        readMore.title = nls.localize('readMore', \"Read More\");\n        const configureFont = () => {\n            const options = this._editor.getOptions();\n            const fontInfo = options.get(50 /* EditorOption.fontInfo */);\n            const fontFamily = fontInfo.getMassagedFontFamily();\n            const fontFeatureSettings = fontInfo.fontFeatureSettings;\n            const fontSize = options.get(119 /* EditorOption.suggestFontSize */) || fontInfo.fontSize;\n            const lineHeight = options.get(120 /* EditorOption.suggestLineHeight */) || fontInfo.lineHeight;\n            const fontWeight = fontInfo.fontWeight;\n            const letterSpacing = fontInfo.letterSpacing;\n            const fontSizePx = `${fontSize}px`;\n            const lineHeightPx = `${lineHeight}px`;\n            const letterSpacingPx = `${letterSpacing}px`;\n            root.style.fontSize = fontSizePx;\n            root.style.fontWeight = fontWeight;\n            root.style.letterSpacing = letterSpacingPx;\n            main.style.fontFamily = fontFamily;\n            main.style.fontFeatureSettings = fontFeatureSettings;\n            main.style.lineHeight = lineHeightPx;\n            icon.style.height = lineHeightPx;\n            icon.style.width = lineHeightPx;\n            readMore.style.height = lineHeightPx;\n            readMore.style.width = lineHeightPx;\n        };\n        return { root, left, right, icon, colorspan, iconLabel, iconContainer, parametersLabel, qualifierLabel, detailsLabel, readMore, disposables, configureFont };\n    }\n    renderElement(element, index, data) {\n        data.configureFont();\n        const { completion } = element;\n        data.root.id = getAriaId(index);\n        data.colorspan.style.backgroundColor = '';\n        const labelOptions = {\n            labelEscapeNewLines: true,\n            matches: createMatches(element.score)\n        };\n        const color = [];\n        if (completion.kind === 19 /* CompletionItemKind.Color */ && _completionItemColor.extract(element, color)) {\n            // special logic for 'color' completion items\n            data.icon.className = 'icon customcolor';\n            data.iconContainer.className = 'icon hide';\n            data.colorspan.style.backgroundColor = color[0];\n        }\n        else if (completion.kind === 20 /* CompletionItemKind.File */ && this._themeService.getFileIconTheme().hasFileIcons) {\n            // special logic for 'file' completion items\n            data.icon.className = 'icon hide';\n            data.iconContainer.className = 'icon hide';\n            const labelClasses = getIconClasses(this._modelService, this._languageService, URI.from({ scheme: 'fake', path: element.textLabel }), FileKind.FILE);\n            const detailClasses = getIconClasses(this._modelService, this._languageService, URI.from({ scheme: 'fake', path: completion.detail }), FileKind.FILE);\n            labelOptions.extraClasses = labelClasses.length > detailClasses.length ? labelClasses : detailClasses;\n        }\n        else if (completion.kind === 23 /* CompletionItemKind.Folder */ && this._themeService.getFileIconTheme().hasFolderIcons) {\n            // special logic for 'folder' completion items\n            data.icon.className = 'icon hide';\n            data.iconContainer.className = 'icon hide';\n            labelOptions.extraClasses = [\n                getIconClasses(this._modelService, this._languageService, URI.from({ scheme: 'fake', path: element.textLabel }), FileKind.FOLDER),\n                getIconClasses(this._modelService, this._languageService, URI.from({ scheme: 'fake', path: completion.detail }), FileKind.FOLDER)\n            ].flat();\n        }\n        else {\n            // normal icon\n            data.icon.className = 'icon hide';\n            data.iconContainer.className = '';\n            data.iconContainer.classList.add('suggest-icon', ...ThemeIcon.asClassNameArray(CompletionItemKinds.toIcon(completion.kind)));\n        }\n        if (completion.tags && completion.tags.indexOf(1 /* CompletionItemTag.Deprecated */) >= 0) {\n            labelOptions.extraClasses = (labelOptions.extraClasses || []).concat(['deprecated']);\n            labelOptions.matches = [];\n        }\n        data.iconLabel.setLabel(element.textLabel, undefined, labelOptions);\n        if (typeof completion.label === 'string') {\n            data.parametersLabel.textContent = '';\n            data.detailsLabel.textContent = stripNewLines(completion.detail || '');\n            data.root.classList.add('string-label');\n        }\n        else {\n            data.parametersLabel.textContent = stripNewLines(completion.label.detail || '');\n            data.detailsLabel.textContent = stripNewLines(completion.label.description || '');\n            data.root.classList.remove('string-label');\n        }\n        if (this._editor.getOption(118 /* EditorOption.suggest */).showInlineDetails) {\n            show(data.detailsLabel);\n        }\n        else {\n            hide(data.detailsLabel);\n        }\n        if (canExpandCompletionItem(element)) {\n            data.right.classList.add('can-expand-details');\n            show(data.readMore);\n            data.readMore.onmousedown = e => {\n                e.stopPropagation();\n                e.preventDefault();\n            };\n            data.readMore.onclick = e => {\n                e.stopPropagation();\n                e.preventDefault();\n                this._onDidToggleDetails.fire();\n            };\n        }\n        else {\n            data.right.classList.remove('can-expand-details');\n            hide(data.readMore);\n            data.readMore.onmousedown = null;\n            data.readMore.onclick = null;\n        }\n    }\n    disposeTemplate(templateData) {\n        templateData.disposables.dispose();\n    }\n};\nItemRenderer = __decorate([\n    __param(1, IModelService),\n    __param(2, ILanguageService),\n    __param(3, IThemeService)\n], ItemRenderer);\nexport { ItemRenderer };\nfunction stripNewLines(str) {\n    return str.replace(/\\r\\n|\\r|\\n/g, '');\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/suggest/browser/suggestWidgetStatus.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport * as dom from '../../../../base/browser/dom.js';\nimport { ActionBar } from '../../../../base/browser/ui/actionbar/actionbar.js';\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { localize } from '../../../../nls.js';\nimport { MenuEntryActionViewItem } from '../../../../platform/actions/browser/menuEntryActionViewItem.js';\nimport { IMenuService, MenuItemAction } from '../../../../platform/actions/common/actions.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nclass StatusBarViewItem extends MenuEntryActionViewItem {\n    updateLabel() {\n        const kb = this._keybindingService.lookupKeybinding(this._action.id, this._contextKeyService);\n        if (!kb) {\n            return super.updateLabel();\n        }\n        if (this.label) {\n            this.label.textContent = localize({ key: 'content', comment: ['A label', 'A keybinding'] }, '{0} ({1})', this._action.label, StatusBarViewItem.symbolPrintEnter(kb));\n        }\n    }\n    static symbolPrintEnter(kb) {\n        var _a;\n        return (_a = kb.getLabel()) === null || _a === void 0 ? void 0 : _a.replace(/\\benter\\b/gi, '\\u23CE');\n    }\n}\nlet SuggestWidgetStatus = class SuggestWidgetStatus {\n    constructor(container, _menuId, instantiationService, _menuService, _contextKeyService) {\n        this._menuId = _menuId;\n        this._menuService = _menuService;\n        this._contextKeyService = _contextKeyService;\n        this._menuDisposables = new DisposableStore();\n        this.element = dom.append(container, dom.$('.suggest-status-bar'));\n        const actionViewItemProvider = (action => {\n            return action instanceof MenuItemAction ? instantiationService.createInstance(StatusBarViewItem, action, undefined) : undefined;\n        });\n        this._leftActions = new ActionBar(this.element, { actionViewItemProvider });\n        this._rightActions = new ActionBar(this.element, { actionViewItemProvider });\n        this._leftActions.domNode.classList.add('left');\n        this._rightActions.domNode.classList.add('right');\n    }\n    dispose() {\n        this._menuDisposables.dispose();\n        this._leftActions.dispose();\n        this._rightActions.dispose();\n        this.element.remove();\n    }\n    show() {\n        const menu = this._menuService.createMenu(this._menuId, this._contextKeyService);\n        const renderMenu = () => {\n            const left = [];\n            const right = [];\n            for (const [group, actions] of menu.getActions()) {\n                if (group === 'left') {\n                    left.push(...actions);\n                }\n                else {\n                    right.push(...actions);\n                }\n            }\n            this._leftActions.clear();\n            this._leftActions.push(left);\n            this._rightActions.clear();\n            this._rightActions.push(right);\n        };\n        this._menuDisposables.add(menu.onDidChange(() => renderMenu()));\n        this._menuDisposables.add(menu);\n    }\n    hide() {\n        this._menuDisposables.clear();\n    }\n};\nSuggestWidgetStatus = __decorate([\n    __param(2, IInstantiationService),\n    __param(3, IMenuService),\n    __param(4, IContextKeyService)\n], SuggestWidgetStatus);\nexport { SuggestWidgetStatus };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/suggest/browser/wordContextKey.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar WordContextKey_1;\nimport { IContextKeyService, RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nlet WordContextKey = WordContextKey_1 = class WordContextKey {\n    constructor(_editor, contextKeyService) {\n        this._editor = _editor;\n        this._enabled = false;\n        this._ckAtEnd = WordContextKey_1.AtEnd.bindTo(contextKeyService);\n        this._configListener = this._editor.onDidChangeConfiguration(e => e.hasChanged(123 /* EditorOption.tabCompletion */) && this._update());\n        this._update();\n    }\n    dispose() {\n        var _a;\n        this._configListener.dispose();\n        (_a = this._selectionListener) === null || _a === void 0 ? void 0 : _a.dispose();\n        this._ckAtEnd.reset();\n    }\n    _update() {\n        // only update this when tab completions are enabled\n        const enabled = this._editor.getOption(123 /* EditorOption.tabCompletion */) === 'on';\n        if (this._enabled === enabled) {\n            return;\n        }\n        this._enabled = enabled;\n        if (this._enabled) {\n            const checkForWordEnd = () => {\n                if (!this._editor.hasModel()) {\n                    this._ckAtEnd.set(false);\n                    return;\n                }\n                const model = this._editor.getModel();\n                const selection = this._editor.getSelection();\n                const word = model.getWordAtPosition(selection.getStartPosition());\n                if (!word) {\n                    this._ckAtEnd.set(false);\n                    return;\n                }\n                this._ckAtEnd.set(word.endColumn === selection.getStartPosition().column);\n            };\n            this._selectionListener = this._editor.onDidChangeCursorSelection(checkForWordEnd);\n            checkForWordEnd();\n        }\n        else if (this._selectionListener) {\n            this._ckAtEnd.reset();\n            this._selectionListener.dispose();\n            this._selectionListener = undefined;\n        }\n    }\n};\nWordContextKey.AtEnd = new RawContextKey('atEndOfWord', false);\nWordContextKey = WordContextKey_1 = __decorate([\n    __param(1, IContextKeyService)\n], WordContextKey);\nexport { WordContextKey };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/suggest/browser/wordDistance.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { binarySearch, isFalsyOrEmpty } from '../../../../base/common/arrays.js';\nimport { Range } from '../../../common/core/range.js';\nimport { BracketSelectionRangeProvider } from '../../smartSelect/browser/bracketSelections.js';\nexport class WordDistance {\n    static async create(service, editor) {\n        if (!editor.getOption(118 /* EditorOption.suggest */).localityBonus) {\n            return WordDistance.None;\n        }\n        if (!editor.hasModel()) {\n            return WordDistance.None;\n        }\n        const model = editor.getModel();\n        const position = editor.getPosition();\n        if (!service.canComputeWordRanges(model.uri)) {\n            return WordDistance.None;\n        }\n        const [ranges] = await new BracketSelectionRangeProvider().provideSelectionRanges(model, [position]);\n        if (ranges.length === 0) {\n            return WordDistance.None;\n        }\n        const wordRanges = await service.computeWordRanges(model.uri, ranges[0].range);\n        if (!wordRanges) {\n            return WordDistance.None;\n        }\n        // remove current word\n        const wordUntilPos = model.getWordUntilPosition(position);\n        delete wordRanges[wordUntilPos.word];\n        return new class extends WordDistance {\n            distance(anchor, item) {\n                if (!position.equals(editor.getPosition())) {\n                    return 0;\n                }\n                if (item.kind === 17 /* CompletionItemKind.Keyword */) {\n                    return 2 << 20;\n                }\n                const word = typeof item.label === 'string' ? item.label : item.label.label;\n                const wordLines = wordRanges[word];\n                if (isFalsyOrEmpty(wordLines)) {\n                    return 2 << 20;\n                }\n                const idx = binarySearch(wordLines, Range.fromPositions(anchor), Range.compareRangesUsingStarts);\n                const bestWordRange = idx >= 0 ? wordLines[idx] : wordLines[Math.max(0, ~idx - 1)];\n                let blockDistance = ranges.length;\n                for (const range of ranges) {\n                    if (!Range.containsRange(range.range, bestWordRange)) {\n                        break;\n                    }\n                    blockDistance -= 1;\n                }\n                return blockDistance;\n            }\n        };\n    }\n}\nWordDistance.None = new class extends WordDistance {\n    distance() { return 0; }\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/symbolIcons/browser/symbolIcons.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .codicon.codicon-symbol-array,\n.monaco-workbench .codicon.codicon-symbol-array { color: var(--vscode-symbolIcon-arrayForeground); }\n.monaco-editor .codicon.codicon-symbol-boolean,\n.monaco-workbench .codicon.codicon-symbol-boolean { color: var(--vscode-symbolIcon-booleanForeground); }\n.monaco-editor .codicon.codicon-symbol-class,\n.monaco-workbench .codicon.codicon-symbol-class { color: var(--vscode-symbolIcon-classForeground); }\n.monaco-editor .codicon.codicon-symbol-method,\n.monaco-workbench .codicon.codicon-symbol-method { color: var(--vscode-symbolIcon-methodForeground); }\n.monaco-editor .codicon.codicon-symbol-color,\n.monaco-workbench .codicon.codicon-symbol-color { color: var(--vscode-symbolIcon-colorForeground); }\n.monaco-editor .codicon.codicon-symbol-constant,\n.monaco-workbench .codicon.codicon-symbol-constant { color: var(--vscode-symbolIcon-constantForeground); }\n.monaco-editor .codicon.codicon-symbol-constructor,\n.monaco-workbench .codicon.codicon-symbol-constructor { color: var(--vscode-symbolIcon-constructorForeground); }\n.monaco-editor .codicon.codicon-symbol-value,\n.monaco-workbench .codicon.codicon-symbol-value,\n.monaco-editor .codicon.codicon-symbol-enum,\n.monaco-workbench .codicon.codicon-symbol-enum { color: var(--vscode-symbolIcon-enumeratorForeground); }\n.monaco-editor .codicon.codicon-symbol-enum-member,\n.monaco-workbench .codicon.codicon-symbol-enum-member { color: var(--vscode-symbolIcon-enumeratorMemberForeground); }\n.monaco-editor .codicon.codicon-symbol-event,\n.monaco-workbench .codicon.codicon-symbol-event { color: var(--vscode-symbolIcon-eventForeground); }\n.monaco-editor .codicon.codicon-symbol-field,\n.monaco-workbench .codicon.codicon-symbol-field { color: var(--vscode-symbolIcon-fieldForeground); }\n.monaco-editor .codicon.codicon-symbol-file,\n.monaco-workbench .codicon.codicon-symbol-file { color: var(--vscode-symbolIcon-fileForeground); }\n.monaco-editor .codicon.codicon-symbol-folder,\n.monaco-workbench .codicon.codicon-symbol-folder { color: var(--vscode-symbolIcon-folderForeground); }\n.monaco-editor .codicon.codicon-symbol-function,\n.monaco-workbench .codicon.codicon-symbol-function { color: var(--vscode-symbolIcon-functionForeground); }\n.monaco-editor .codicon.codicon-symbol-interface,\n.monaco-workbench .codicon.codicon-symbol-interface { color: var(--vscode-symbolIcon-interfaceForeground); }\n.monaco-editor .codicon.codicon-symbol-key,\n.monaco-workbench .codicon.codicon-symbol-key { color: var(--vscode-symbolIcon-keyForeground); }\n.monaco-editor .codicon.codicon-symbol-keyword,\n.monaco-workbench .codicon.codicon-symbol-keyword { color: var(--vscode-symbolIcon-keywordForeground); }\n.monaco-editor .codicon.codicon-symbol-module,\n.monaco-workbench .codicon.codicon-symbol-module { color: var(--vscode-symbolIcon-moduleForeground); }\n.monaco-editor .codicon.codicon-symbol-namespace,\n.monaco-workbench .codicon.codicon-symbol-namespace { color: var(--vscode-symbolIcon-namespaceForeground); }\n.monaco-editor .codicon.codicon-symbol-null,\n.monaco-workbench .codicon.codicon-symbol-null { color: var(--vscode-symbolIcon-nullForeground); }\n.monaco-editor .codicon.codicon-symbol-number,\n.monaco-workbench .codicon.codicon-symbol-number { color: var(--vscode-symbolIcon-numberForeground); }\n.monaco-editor .codicon.codicon-symbol-object,\n.monaco-workbench .codicon.codicon-symbol-object { color: var(--vscode-symbolIcon-objectForeground); }\n.monaco-editor .codicon.codicon-symbol-operator,\n.monaco-workbench .codicon.codicon-symbol-operator { color: var(--vscode-symbolIcon-operatorForeground); }\n.monaco-editor .codicon.codicon-symbol-package,\n.monaco-workbench .codicon.codicon-symbol-package { color: var(--vscode-symbolIcon-packageForeground); }\n.monaco-editor .codicon.codicon-symbol-property,\n.monaco-workbench .codicon.codicon-symbol-property { color: var(--vscode-symbolIcon-propertyForeground); }\n.monaco-editor .codicon.codicon-symbol-reference,\n.monaco-workbench .codicon.codicon-symbol-reference { color: var(--vscode-symbolIcon-referenceForeground); }\n.monaco-editor .codicon.codicon-symbol-snippet,\n.monaco-workbench .codicon.codicon-symbol-snippet { color: var(--vscode-symbolIcon-snippetForeground); }\n.monaco-editor .codicon.codicon-symbol-string,\n.monaco-workbench .codicon.codicon-symbol-string { color: var(--vscode-symbolIcon-stringForeground); }\n.monaco-editor .codicon.codicon-symbol-struct,\n.monaco-workbench .codicon.codicon-symbol-struct { color: var(--vscode-symbolIcon-structForeground); }\n.monaco-editor .codicon.codicon-symbol-text,\n.monaco-workbench .codicon.codicon-symbol-text { color: var(--vscode-symbolIcon-textForeground); }\n.monaco-editor .codicon.codicon-symbol-type-parameter,\n.monaco-workbench .codicon.codicon-symbol-type-parameter { color: var(--vscode-symbolIcon-typeParameterForeground); }\n.monaco-editor .codicon.codicon-symbol-unit,\n.monaco-workbench .codicon.codicon-symbol-unit { color: var(--vscode-symbolIcon-unitForeground); }\n.monaco-editor .codicon.codicon-symbol-variable,\n.monaco-workbench .codicon.codicon-symbol-variable { color: var(--vscode-symbolIcon-variableForeground); }\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/symbolIcons/browser/symbolIcons.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './symbolIcons.css';\nimport { localize } from '../../../../nls.js';\nimport { foreground, registerColor } from '../../../../platform/theme/common/colorRegistry.js';\nexport const SYMBOL_ICON_ARRAY_FOREGROUND = registerColor('symbolIcon.arrayForeground', {\n    dark: foreground,\n    light: foreground,\n    hcDark: foreground,\n    hcLight: foreground,\n}, localize('symbolIcon.arrayForeground', 'The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_BOOLEAN_FOREGROUND = registerColor('symbolIcon.booleanForeground', {\n    dark: foreground,\n    light: foreground,\n    hcDark: foreground,\n    hcLight: foreground,\n}, localize('symbolIcon.booleanForeground', 'The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_CLASS_FOREGROUND = registerColor('symbolIcon.classForeground', {\n    dark: '#EE9D28',\n    light: '#D67E00',\n    hcDark: '#EE9D28',\n    hcLight: '#D67E00'\n}, localize('symbolIcon.classForeground', 'The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_COLOR_FOREGROUND = registerColor('symbolIcon.colorForeground', {\n    dark: foreground,\n    light: foreground,\n    hcDark: foreground,\n    hcLight: foreground\n}, localize('symbolIcon.colorForeground', 'The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_CONSTANT_FOREGROUND = registerColor('symbolIcon.constantForeground', {\n    dark: foreground,\n    light: foreground,\n    hcDark: foreground,\n    hcLight: foreground\n}, localize('symbolIcon.constantForeground', 'The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_CONSTRUCTOR_FOREGROUND = registerColor('symbolIcon.constructorForeground', {\n    dark: '#B180D7',\n    light: '#652D90',\n    hcDark: '#B180D7',\n    hcLight: '#652D90'\n}, localize('symbolIcon.constructorForeground', 'The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_ENUMERATOR_FOREGROUND = registerColor('symbolIcon.enumeratorForeground', {\n    dark: '#EE9D28',\n    light: '#D67E00',\n    hcDark: '#EE9D28',\n    hcLight: '#D67E00'\n}, localize('symbolIcon.enumeratorForeground', 'The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_ENUMERATOR_MEMBER_FOREGROUND = registerColor('symbolIcon.enumeratorMemberForeground', {\n    dark: '#75BEFF',\n    light: '#007ACC',\n    hcDark: '#75BEFF',\n    hcLight: '#007ACC'\n}, localize('symbolIcon.enumeratorMemberForeground', 'The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_EVENT_FOREGROUND = registerColor('symbolIcon.eventForeground', {\n    dark: '#EE9D28',\n    light: '#D67E00',\n    hcDark: '#EE9D28',\n    hcLight: '#D67E00'\n}, localize('symbolIcon.eventForeground', 'The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_FIELD_FOREGROUND = registerColor('symbolIcon.fieldForeground', {\n    dark: '#75BEFF',\n    light: '#007ACC',\n    hcDark: '#75BEFF',\n    hcLight: '#007ACC'\n}, localize('symbolIcon.fieldForeground', 'The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_FILE_FOREGROUND = registerColor('symbolIcon.fileForeground', {\n    dark: foreground,\n    light: foreground,\n    hcDark: foreground,\n    hcLight: foreground\n}, localize('symbolIcon.fileForeground', 'The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_FOLDER_FOREGROUND = registerColor('symbolIcon.folderForeground', {\n    dark: foreground,\n    light: foreground,\n    hcDark: foreground,\n    hcLight: foreground\n}, localize('symbolIcon.folderForeground', 'The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_FUNCTION_FOREGROUND = registerColor('symbolIcon.functionForeground', {\n    dark: '#B180D7',\n    light: '#652D90',\n    hcDark: '#B180D7',\n    hcLight: '#652D90'\n}, localize('symbolIcon.functionForeground', 'The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_INTERFACE_FOREGROUND = registerColor('symbolIcon.interfaceForeground', {\n    dark: '#75BEFF',\n    light: '#007ACC',\n    hcDark: '#75BEFF',\n    hcLight: '#007ACC'\n}, localize('symbolIcon.interfaceForeground', 'The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_KEY_FOREGROUND = registerColor('symbolIcon.keyForeground', {\n    dark: foreground,\n    light: foreground,\n    hcDark: foreground,\n    hcLight: foreground\n}, localize('symbolIcon.keyForeground', 'The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_KEYWORD_FOREGROUND = registerColor('symbolIcon.keywordForeground', {\n    dark: foreground,\n    light: foreground,\n    hcDark: foreground,\n    hcLight: foreground\n}, localize('symbolIcon.keywordForeground', 'The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_METHOD_FOREGROUND = registerColor('symbolIcon.methodForeground', {\n    dark: '#B180D7',\n    light: '#652D90',\n    hcDark: '#B180D7',\n    hcLight: '#652D90'\n}, localize('symbolIcon.methodForeground', 'The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_MODULE_FOREGROUND = registerColor('symbolIcon.moduleForeground', {\n    dark: foreground,\n    light: foreground,\n    hcDark: foreground,\n    hcLight: foreground\n}, localize('symbolIcon.moduleForeground', 'The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_NAMESPACE_FOREGROUND = registerColor('symbolIcon.namespaceForeground', {\n    dark: foreground,\n    light: foreground,\n    hcDark: foreground,\n    hcLight: foreground\n}, localize('symbolIcon.namespaceForeground', 'The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_NULL_FOREGROUND = registerColor('symbolIcon.nullForeground', {\n    dark: foreground,\n    light: foreground,\n    hcDark: foreground,\n    hcLight: foreground\n}, localize('symbolIcon.nullForeground', 'The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_NUMBER_FOREGROUND = registerColor('symbolIcon.numberForeground', {\n    dark: foreground,\n    light: foreground,\n    hcDark: foreground,\n    hcLight: foreground\n}, localize('symbolIcon.numberForeground', 'The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_OBJECT_FOREGROUND = registerColor('symbolIcon.objectForeground', {\n    dark: foreground,\n    light: foreground,\n    hcDark: foreground,\n    hcLight: foreground\n}, localize('symbolIcon.objectForeground', 'The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_OPERATOR_FOREGROUND = registerColor('symbolIcon.operatorForeground', {\n    dark: foreground,\n    light: foreground,\n    hcDark: foreground,\n    hcLight: foreground\n}, localize('symbolIcon.operatorForeground', 'The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_PACKAGE_FOREGROUND = registerColor('symbolIcon.packageForeground', {\n    dark: foreground,\n    light: foreground,\n    hcDark: foreground,\n    hcLight: foreground\n}, localize('symbolIcon.packageForeground', 'The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_PROPERTY_FOREGROUND = registerColor('symbolIcon.propertyForeground', {\n    dark: foreground,\n    light: foreground,\n    hcDark: foreground,\n    hcLight: foreground\n}, localize('symbolIcon.propertyForeground', 'The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_REFERENCE_FOREGROUND = registerColor('symbolIcon.referenceForeground', {\n    dark: foreground,\n    light: foreground,\n    hcDark: foreground,\n    hcLight: foreground\n}, localize('symbolIcon.referenceForeground', 'The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_SNIPPET_FOREGROUND = registerColor('symbolIcon.snippetForeground', {\n    dark: foreground,\n    light: foreground,\n    hcDark: foreground,\n    hcLight: foreground\n}, localize('symbolIcon.snippetForeground', 'The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_STRING_FOREGROUND = registerColor('symbolIcon.stringForeground', {\n    dark: foreground,\n    light: foreground,\n    hcDark: foreground,\n    hcLight: foreground\n}, localize('symbolIcon.stringForeground', 'The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_STRUCT_FOREGROUND = registerColor('symbolIcon.structForeground', {\n    dark: foreground,\n    light: foreground,\n    hcDark: foreground,\n    hcLight: foreground,\n}, localize('symbolIcon.structForeground', 'The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_TEXT_FOREGROUND = registerColor('symbolIcon.textForeground', {\n    dark: foreground,\n    light: foreground,\n    hcDark: foreground,\n    hcLight: foreground\n}, localize('symbolIcon.textForeground', 'The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_TYPEPARAMETER_FOREGROUND = registerColor('symbolIcon.typeParameterForeground', {\n    dark: foreground,\n    light: foreground,\n    hcDark: foreground,\n    hcLight: foreground\n}, localize('symbolIcon.typeParameterForeground', 'The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_UNIT_FOREGROUND = registerColor('symbolIcon.unitForeground', {\n    dark: foreground,\n    light: foreground,\n    hcDark: foreground,\n    hcLight: foreground\n}, localize('symbolIcon.unitForeground', 'The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\nexport const SYMBOL_ICON_VARIABLE_FOREGROUND = registerColor('symbolIcon.variableForeground', {\n    dark: '#75BEFF',\n    light: '#007ACC',\n    hcDark: '#75BEFF',\n    hcLight: '#007ACC',\n}, localize('symbolIcon.variableForeground', 'The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { alert } from '../../../../base/browser/ui/aria/aria.js';\nimport { TabFocus } from '../../../browser/config/tabFocus.js';\nimport * as nls from '../../../../nls.js';\nimport { Action2, registerAction2 } from '../../../../platform/actions/common/actions.js';\nexport class ToggleTabFocusModeAction extends Action2 {\n    constructor() {\n        super({\n            id: ToggleTabFocusModeAction.ID,\n            title: nls.localize2({ key: 'toggle.tabMovesFocus', comment: ['Turn on/off use of tab key for moving focus around VS Code'] }, 'Toggle Tab Key Moves Focus'),\n            precondition: undefined,\n            keybinding: {\n                primary: 2048 /* KeyMod.CtrlCmd */ | 43 /* KeyCode.KeyM */,\n                mac: { primary: 256 /* KeyMod.WinCtrl */ | 1024 /* KeyMod.Shift */ | 43 /* KeyCode.KeyM */ },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            metadata: {\n                description: nls.localize2('tabMovesFocusDescriptions', \"Determines whether the tab key moves focus around the workbench or inserts the tab character in the current editor. This is also called tab trapping, tab navigation, or tab focus mode.\"),\n            },\n            f1: true\n        });\n    }\n    run() {\n        const oldValue = TabFocus.getTabFocusMode();\n        const newValue = !oldValue;\n        TabFocus.setTabFocusMode(newValue);\n        if (newValue) {\n            alert(nls.localize('toggle.tabMovesFocus.on', \"Pressing Tab will now move focus to the next focusable element\"));\n        }\n        else {\n            alert(nls.localize('toggle.tabMovesFocus.off', \"Pressing Tab will now insert the tab character\"));\n        }\n    }\n}\nToggleTabFocusModeAction.ID = 'editor.action.toggleTabFocusMode';\nregisterAction2(ToggleTabFocusModeAction);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/tokenization/browser/tokenization.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/tokenization/browser/tokenization.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { StopWatch } from '../../../../base/common/stopwatch.js';\nimport { EditorAction, registerEditorAction } from '../../../browser/editorExtensions.js';\nimport * as nls from '../../../../nls.js';\nclass ForceRetokenizeAction extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.forceRetokenize',\n            label: nls.localize('forceRetokenize', \"Developer: Force Retokenize\"),\n            alias: 'Developer: Force Retokenize',\n            precondition: undefined\n        });\n    }\n    run(accessor, editor) {\n        if (!editor.hasModel()) {\n            return;\n        }\n        const model = editor.getModel();\n        model.tokenization.resetTokenization();\n        const sw = new StopWatch();\n        model.tokenization.forceTokenization(model.getLineCount());\n        sw.stop();\n        console.log(`tokenization took ${sw.elapsed()}`);\n    }\n}\nregisterEditorAction(ForceRetokenizeAction);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/unicodeHighlighter/browser/bannerController.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.editor-banner {\n\tbox-sizing: border-box;\n\tcursor: default;\n\twidth: 100%;\n\tfont-size: 12px;\n\tdisplay: flex;\n\toverflow: visible;\n\n\theight: 26px;\n\n\tbackground: var(--vscode-banner-background);\n}\n\n\n.editor-banner .icon-container {\n\tdisplay: flex;\n\tflex-shrink: 0;\n\talign-items: center;\n\tpadding: 0 6px 0 10px;\n}\n\n.editor-banner .icon-container.custom-icon {\n\tbackground-repeat: no-repeat;\n\tbackground-position: center center;\n\tbackground-size: 16px;\n\twidth: 16px;\n\tpadding: 0;\n\tmargin: 0 6px 0 10px;\n}\n\n.editor-banner .message-container {\n\tdisplay: flex;\n\talign-items: center;\n\tline-height: 26px;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n\toverflow: hidden;\n}\n\n.editor-banner .message-container p {\n\tmargin-block-start: 0;\n\tmargin-block-end: 0;\n}\n\n.editor-banner .message-actions-container {\n\tflex-grow: 1;\n\tflex-shrink: 0;\n\tline-height: 26px;\n\tmargin: 0 4px;\n}\n\n.editor-banner .message-actions-container a.monaco-button {\n\twidth: inherit;\n\tmargin: 2px 8px;\n\tpadding: 0px 12px;\n}\n\n.editor-banner .message-actions-container a {\n\tpadding: 3px;\n\tmargin-left: 12px;\n\ttext-decoration: underline;\n}\n\n.editor-banner .action-container {\n\tpadding: 0 10px 0 6px;\n}\n\n.editor-banner {\n\tbackground-color: var(--vscode-banner-background);\n}\n\n.editor-banner,\n.editor-banner .action-container .codicon,\n.editor-banner .message-actions-container .monaco-link {\n\tcolor: var(--vscode-banner-foreground);\n}\n\n.editor-banner .icon-container .codicon {\n\tcolor: var(--vscode-banner-iconForeground);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js",
    "content": "var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\n/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './bannerController.css';\nimport { $, append, clearNode } from '../../../../base/browser/dom.js';\nimport { ActionBar } from '../../../../base/browser/ui/actionbar/actionbar.js';\nimport { Action } from '../../../../base/common/actions.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { MarkdownRenderer } from '../../../browser/widget/markdownRenderer/browser/markdownRenderer.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { Link } from '../../../../platform/opener/browser/link.js';\nimport { widgetClose } from '../../../../platform/theme/common/iconRegistry.js';\nimport { ThemeIcon } from '../../../../base/common/themables.js';\nconst BANNER_ELEMENT_HEIGHT = 26;\nlet BannerController = class BannerController extends Disposable {\n    constructor(_editor, instantiationService) {\n        super();\n        this._editor = _editor;\n        this.instantiationService = instantiationService;\n        this.banner = this._register(this.instantiationService.createInstance(Banner));\n    }\n    hide() {\n        this._editor.setBanner(null, 0);\n        this.banner.clear();\n    }\n    show(item) {\n        this.banner.show({\n            ...item,\n            onClose: () => {\n                var _a;\n                this.hide();\n                (_a = item.onClose) === null || _a === void 0 ? void 0 : _a.call(item);\n            }\n        });\n        this._editor.setBanner(this.banner.element, BANNER_ELEMENT_HEIGHT);\n    }\n};\nBannerController = __decorate([\n    __param(1, IInstantiationService)\n], BannerController);\nexport { BannerController };\n// TODO@hediet: Investigate if this can be reused by the workspace banner (bannerPart.ts).\nlet Banner = class Banner extends Disposable {\n    constructor(instantiationService) {\n        super();\n        this.instantiationService = instantiationService;\n        this.markdownRenderer = this.instantiationService.createInstance(MarkdownRenderer, {});\n        this.element = $('div.editor-banner');\n        this.element.tabIndex = 0;\n    }\n    getAriaLabel(item) {\n        if (item.ariaLabel) {\n            return item.ariaLabel;\n        }\n        if (typeof item.message === 'string') {\n            return item.message;\n        }\n        return undefined;\n    }\n    getBannerMessage(message) {\n        if (typeof message === 'string') {\n            const element = $('span');\n            element.innerText = message;\n            return element;\n        }\n        return this.markdownRenderer.render(message).element;\n    }\n    clear() {\n        clearNode(this.element);\n    }\n    show(item) {\n        // Clear previous item\n        clearNode(this.element);\n        // Banner aria label\n        const ariaLabel = this.getAriaLabel(item);\n        if (ariaLabel) {\n            this.element.setAttribute('aria-label', ariaLabel);\n        }\n        // Icon\n        const iconContainer = append(this.element, $('div.icon-container'));\n        iconContainer.setAttribute('aria-hidden', 'true');\n        if (item.icon) {\n            iconContainer.appendChild($(`div${ThemeIcon.asCSSSelector(item.icon)}`));\n        }\n        // Message\n        const messageContainer = append(this.element, $('div.message-container'));\n        messageContainer.setAttribute('aria-hidden', 'true');\n        messageContainer.appendChild(this.getBannerMessage(item.message));\n        // Message Actions\n        this.messageActionsContainer = append(this.element, $('div.message-actions-container'));\n        if (item.actions) {\n            for (const action of item.actions) {\n                this._register(this.instantiationService.createInstance(Link, this.messageActionsContainer, { ...action, tabIndex: -1 }, {}));\n            }\n        }\n        // Action\n        const actionBarContainer = append(this.element, $('div.action-container'));\n        this.actionBar = this._register(new ActionBar(actionBarContainer));\n        this.actionBar.push(this._register(new Action('banner.close', 'Close Banner', ThemeIcon.asClassName(widgetClose), true, () => {\n            if (typeof item.onClose === 'function') {\n                item.onClose();\n            }\n        })), { icon: true, label: false });\n        this.actionBar.setFocusable(false);\n    }\n};\nBanner = __decorate([\n    __param(0, IInstantiationService)\n], Banner);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .unicode-highlight {\n\tborder: 1px solid var(--vscode-editorUnicodeHighlight-border);\n\tbackground-color: var(--vscode-editorUnicodeHighlight-background);\n\tbox-sizing: border-box;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { RunOnceScheduler } from '../../../../base/common/async.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { MarkdownString } from '../../../../base/common/htmlContent.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport * as platform from '../../../../base/common/platform.js';\nimport { InvisibleCharacters, isBasicASCII } from '../../../../base/common/strings.js';\nimport './unicodeHighlighter.css';\nimport { EditorAction, registerEditorAction, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { inUntrustedWorkspace, unicodeHighlightConfigKeys } from '../../../common/config/editorOptions.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { UnicodeTextModelHighlighter } from '../../../common/services/unicodeTextModelHighlighter.js';\nimport { IEditorWorkerService } from '../../../common/services/editorWorker.js';\nimport { ILanguageService } from '../../../common/languages/language.js';\nimport { isModelDecorationInComment, isModelDecorationInString, isModelDecorationVisible } from '../../../common/viewModel/viewModelDecorations.js';\nimport { HoverParticipantRegistry } from '../../hover/browser/hoverTypes.js';\nimport { MarkdownHover, renderMarkdownHovers } from '../../hover/browser/markdownHoverParticipant.js';\nimport { BannerController } from './bannerController.js';\nimport * as nls from '../../../../nls.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IOpenerService } from '../../../../platform/opener/common/opener.js';\nimport { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.js';\nimport { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';\nimport { IWorkspaceTrustManagementService } from '../../../../platform/workspace/common/workspaceTrust.js';\nexport const warningIcon = registerIcon('extensions-warning-message', Codicon.warning, nls.localize('warningIcon', 'Icon shown with a warning message in the extensions editor.'));\nlet UnicodeHighlighter = class UnicodeHighlighter extends Disposable {\n    constructor(_editor, _editorWorkerService, _workspaceTrustService, instantiationService) {\n        super();\n        this._editor = _editor;\n        this._editorWorkerService = _editorWorkerService;\n        this._workspaceTrustService = _workspaceTrustService;\n        this._highlighter = null;\n        this._bannerClosed = false;\n        this._updateState = (state) => {\n            if (state && state.hasMore) {\n                if (this._bannerClosed) {\n                    return;\n                }\n                // This document contains many non-basic ASCII characters.\n                const max = Math.max(state.ambiguousCharacterCount, state.nonBasicAsciiCharacterCount, state.invisibleCharacterCount);\n                let data;\n                if (state.nonBasicAsciiCharacterCount >= max) {\n                    data = {\n                        message: nls.localize('unicodeHighlighting.thisDocumentHasManyNonBasicAsciiUnicodeCharacters', 'This document contains many non-basic ASCII unicode characters'),\n                        command: new DisableHighlightingOfNonBasicAsciiCharactersAction(),\n                    };\n                }\n                else if (state.ambiguousCharacterCount >= max) {\n                    data = {\n                        message: nls.localize('unicodeHighlighting.thisDocumentHasManyAmbiguousUnicodeCharacters', 'This document contains many ambiguous unicode characters'),\n                        command: new DisableHighlightingOfAmbiguousCharactersAction(),\n                    };\n                }\n                else if (state.invisibleCharacterCount >= max) {\n                    data = {\n                        message: nls.localize('unicodeHighlighting.thisDocumentHasManyInvisibleUnicodeCharacters', 'This document contains many invisible unicode characters'),\n                        command: new DisableHighlightingOfInvisibleCharactersAction(),\n                    };\n                }\n                else {\n                    throw new Error('Unreachable');\n                }\n                this._bannerController.show({\n                    id: 'unicodeHighlightBanner',\n                    message: data.message,\n                    icon: warningIcon,\n                    actions: [\n                        {\n                            label: data.command.shortLabel,\n                            href: `command:${data.command.id}`\n                        }\n                    ],\n                    onClose: () => {\n                        this._bannerClosed = true;\n                    },\n                });\n            }\n            else {\n                this._bannerController.hide();\n            }\n        };\n        this._bannerController = this._register(instantiationService.createInstance(BannerController, _editor));\n        this._register(this._editor.onDidChangeModel(() => {\n            this._bannerClosed = false;\n            this._updateHighlighter();\n        }));\n        this._options = _editor.getOption(125 /* EditorOption.unicodeHighlighting */);\n        this._register(_workspaceTrustService.onDidChangeTrust(e => {\n            this._updateHighlighter();\n        }));\n        this._register(_editor.onDidChangeConfiguration(e => {\n            if (e.hasChanged(125 /* EditorOption.unicodeHighlighting */)) {\n                this._options = _editor.getOption(125 /* EditorOption.unicodeHighlighting */);\n                this._updateHighlighter();\n            }\n        }));\n        this._updateHighlighter();\n    }\n    dispose() {\n        if (this._highlighter) {\n            this._highlighter.dispose();\n            this._highlighter = null;\n        }\n        super.dispose();\n    }\n    _updateHighlighter() {\n        this._updateState(null);\n        if (this._highlighter) {\n            this._highlighter.dispose();\n            this._highlighter = null;\n        }\n        if (!this._editor.hasModel()) {\n            return;\n        }\n        const options = resolveOptions(this._workspaceTrustService.isWorkspaceTrusted(), this._options);\n        if ([\n            options.nonBasicASCII,\n            options.ambiguousCharacters,\n            options.invisibleCharacters,\n        ].every((option) => option === false)) {\n            // Don't do anything if the feature is fully disabled\n            return;\n        }\n        const highlightOptions = {\n            nonBasicASCII: options.nonBasicASCII,\n            ambiguousCharacters: options.ambiguousCharacters,\n            invisibleCharacters: options.invisibleCharacters,\n            includeComments: options.includeComments,\n            includeStrings: options.includeStrings,\n            allowedCodePoints: Object.keys(options.allowedCharacters).map(c => c.codePointAt(0)),\n            allowedLocales: Object.keys(options.allowedLocales).map(locale => {\n                if (locale === '_os') {\n                    const osLocale = new Intl.NumberFormat().resolvedOptions().locale;\n                    return osLocale;\n                }\n                else if (locale === '_vscode') {\n                    return platform.language;\n                }\n                return locale;\n            }),\n        };\n        if (this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri)) {\n            this._highlighter = new DocumentUnicodeHighlighter(this._editor, highlightOptions, this._updateState, this._editorWorkerService);\n        }\n        else {\n            this._highlighter = new ViewportUnicodeHighlighter(this._editor, highlightOptions, this._updateState);\n        }\n    }\n    getDecorationInfo(decoration) {\n        if (this._highlighter) {\n            return this._highlighter.getDecorationInfo(decoration);\n        }\n        return null;\n    }\n};\nUnicodeHighlighter.ID = 'editor.contrib.unicodeHighlighter';\nUnicodeHighlighter = __decorate([\n    __param(1, IEditorWorkerService),\n    __param(2, IWorkspaceTrustManagementService),\n    __param(3, IInstantiationService)\n], UnicodeHighlighter);\nexport { UnicodeHighlighter };\nfunction resolveOptions(trusted, options) {\n    return {\n        nonBasicASCII: options.nonBasicASCII === inUntrustedWorkspace ? !trusted : options.nonBasicASCII,\n        ambiguousCharacters: options.ambiguousCharacters,\n        invisibleCharacters: options.invisibleCharacters,\n        includeComments: options.includeComments === inUntrustedWorkspace ? !trusted : options.includeComments,\n        includeStrings: options.includeStrings === inUntrustedWorkspace ? !trusted : options.includeStrings,\n        allowedCharacters: options.allowedCharacters,\n        allowedLocales: options.allowedLocales,\n    };\n}\nlet DocumentUnicodeHighlighter = class DocumentUnicodeHighlighter extends Disposable {\n    constructor(_editor, _options, _updateState, _editorWorkerService) {\n        super();\n        this._editor = _editor;\n        this._options = _options;\n        this._updateState = _updateState;\n        this._editorWorkerService = _editorWorkerService;\n        this._model = this._editor.getModel();\n        this._decorations = this._editor.createDecorationsCollection();\n        this._updateSoon = this._register(new RunOnceScheduler(() => this._update(), 250));\n        this._register(this._editor.onDidChangeModelContent(() => {\n            this._updateSoon.schedule();\n        }));\n        this._updateSoon.schedule();\n    }\n    dispose() {\n        this._decorations.clear();\n        super.dispose();\n    }\n    _update() {\n        if (this._model.isDisposed()) {\n            return;\n        }\n        if (!this._model.mightContainNonBasicASCII()) {\n            this._decorations.clear();\n            return;\n        }\n        const modelVersionId = this._model.getVersionId();\n        this._editorWorkerService\n            .computedUnicodeHighlights(this._model.uri, this._options)\n            .then((info) => {\n            if (this._model.isDisposed()) {\n                return;\n            }\n            if (this._model.getVersionId() !== modelVersionId) {\n                // model changed in the meantime\n                return;\n            }\n            this._updateState(info);\n            const decorations = [];\n            if (!info.hasMore) {\n                // Don't show decoration if there are too many.\n                // In this case, a banner is shown.\n                for (const range of info.ranges) {\n                    decorations.push({\n                        range: range,\n                        options: Decorations.instance.getDecorationFromOptions(this._options),\n                    });\n                }\n            }\n            this._decorations.set(decorations);\n        });\n    }\n    getDecorationInfo(decoration) {\n        if (!this._decorations.has(decoration)) {\n            return null;\n        }\n        const model = this._editor.getModel();\n        if (!isModelDecorationVisible(model, decoration)) {\n            return null;\n        }\n        const text = model.getValueInRange(decoration.range);\n        return {\n            reason: computeReason(text, this._options),\n            inComment: isModelDecorationInComment(model, decoration),\n            inString: isModelDecorationInString(model, decoration),\n        };\n    }\n};\nDocumentUnicodeHighlighter = __decorate([\n    __param(3, IEditorWorkerService)\n], DocumentUnicodeHighlighter);\nclass ViewportUnicodeHighlighter extends Disposable {\n    constructor(_editor, _options, _updateState) {\n        super();\n        this._editor = _editor;\n        this._options = _options;\n        this._updateState = _updateState;\n        this._model = this._editor.getModel();\n        this._decorations = this._editor.createDecorationsCollection();\n        this._updateSoon = this._register(new RunOnceScheduler(() => this._update(), 250));\n        this._register(this._editor.onDidLayoutChange(() => {\n            this._updateSoon.schedule();\n        }));\n        this._register(this._editor.onDidScrollChange(() => {\n            this._updateSoon.schedule();\n        }));\n        this._register(this._editor.onDidChangeHiddenAreas(() => {\n            this._updateSoon.schedule();\n        }));\n        this._register(this._editor.onDidChangeModelContent(() => {\n            this._updateSoon.schedule();\n        }));\n        this._updateSoon.schedule();\n    }\n    dispose() {\n        this._decorations.clear();\n        super.dispose();\n    }\n    _update() {\n        if (this._model.isDisposed()) {\n            return;\n        }\n        if (!this._model.mightContainNonBasicASCII()) {\n            this._decorations.clear();\n            return;\n        }\n        const ranges = this._editor.getVisibleRanges();\n        const decorations = [];\n        const totalResult = {\n            ranges: [],\n            ambiguousCharacterCount: 0,\n            invisibleCharacterCount: 0,\n            nonBasicAsciiCharacterCount: 0,\n            hasMore: false,\n        };\n        for (const range of ranges) {\n            const result = UnicodeTextModelHighlighter.computeUnicodeHighlights(this._model, this._options, range);\n            for (const r of result.ranges) {\n                totalResult.ranges.push(r);\n            }\n            totalResult.ambiguousCharacterCount += totalResult.ambiguousCharacterCount;\n            totalResult.invisibleCharacterCount += totalResult.invisibleCharacterCount;\n            totalResult.nonBasicAsciiCharacterCount += totalResult.nonBasicAsciiCharacterCount;\n            totalResult.hasMore = totalResult.hasMore || result.hasMore;\n        }\n        if (!totalResult.hasMore) {\n            // Don't show decorations if there are too many.\n            // A banner will be shown instead.\n            for (const range of totalResult.ranges) {\n                decorations.push({ range, options: Decorations.instance.getDecorationFromOptions(this._options) });\n            }\n        }\n        this._updateState(totalResult);\n        this._decorations.set(decorations);\n    }\n    getDecorationInfo(decoration) {\n        if (!this._decorations.has(decoration)) {\n            return null;\n        }\n        const model = this._editor.getModel();\n        const text = model.getValueInRange(decoration.range);\n        if (!isModelDecorationVisible(model, decoration)) {\n            return null;\n        }\n        return {\n            reason: computeReason(text, this._options),\n            inComment: isModelDecorationInComment(model, decoration),\n            inString: isModelDecorationInString(model, decoration),\n        };\n    }\n}\nconst configureUnicodeHighlightOptionsStr = nls.localize('unicodeHighlight.configureUnicodeHighlightOptions', 'Configure Unicode Highlight Options');\nlet UnicodeHighlighterHoverParticipant = class UnicodeHighlighterHoverParticipant {\n    constructor(_editor, _languageService, _openerService) {\n        this._editor = _editor;\n        this._languageService = _languageService;\n        this._openerService = _openerService;\n        this.hoverOrdinal = 5;\n    }\n    computeSync(anchor, lineDecorations) {\n        if (!this._editor.hasModel() || anchor.type !== 1 /* HoverAnchorType.Range */) {\n            return [];\n        }\n        const model = this._editor.getModel();\n        const unicodeHighlighter = this._editor.getContribution(UnicodeHighlighter.ID);\n        if (!unicodeHighlighter) {\n            return [];\n        }\n        const result = [];\n        const existedReason = new Set();\n        let index = 300;\n        for (const d of lineDecorations) {\n            const highlightInfo = unicodeHighlighter.getDecorationInfo(d);\n            if (!highlightInfo) {\n                continue;\n            }\n            const char = model.getValueInRange(d.range);\n            // text refers to a single character.\n            const codePoint = char.codePointAt(0);\n            const codePointStr = formatCodePointMarkdown(codePoint);\n            let reason;\n            switch (highlightInfo.reason.kind) {\n                case 0 /* UnicodeHighlighterReasonKind.Ambiguous */: {\n                    if (isBasicASCII(highlightInfo.reason.confusableWith)) {\n                        reason = nls.localize('unicodeHighlight.characterIsAmbiguousASCII', 'The character {0} could be confused with the ASCII character {1}, which is more common in source code.', codePointStr, formatCodePointMarkdown(highlightInfo.reason.confusableWith.codePointAt(0)));\n                    }\n                    else {\n                        reason = nls.localize('unicodeHighlight.characterIsAmbiguous', 'The character {0} could be confused with the character {1}, which is more common in source code.', codePointStr, formatCodePointMarkdown(highlightInfo.reason.confusableWith.codePointAt(0)));\n                    }\n                    break;\n                }\n                case 1 /* UnicodeHighlighterReasonKind.Invisible */:\n                    reason = nls.localize('unicodeHighlight.characterIsInvisible', 'The character {0} is invisible.', codePointStr);\n                    break;\n                case 2 /* UnicodeHighlighterReasonKind.NonBasicAscii */:\n                    reason = nls.localize('unicodeHighlight.characterIsNonBasicAscii', 'The character {0} is not a basic ASCII character.', codePointStr);\n                    break;\n            }\n            if (existedReason.has(reason)) {\n                continue;\n            }\n            existedReason.add(reason);\n            const adjustSettingsArgs = {\n                codePoint: codePoint,\n                reason: highlightInfo.reason,\n                inComment: highlightInfo.inComment,\n                inString: highlightInfo.inString,\n            };\n            const adjustSettings = nls.localize('unicodeHighlight.adjustSettings', 'Adjust settings');\n            const uri = `command:${ShowExcludeOptions.ID}?${encodeURIComponent(JSON.stringify(adjustSettingsArgs))}`;\n            const markdown = new MarkdownString('', true)\n                .appendMarkdown(reason)\n                .appendText(' ')\n                .appendLink(uri, adjustSettings, configureUnicodeHighlightOptionsStr);\n            result.push(new MarkdownHover(this, d.range, [markdown], false, index++));\n        }\n        return result;\n    }\n    renderHoverParts(context, hoverParts) {\n        return renderMarkdownHovers(context, hoverParts, this._editor, this._languageService, this._openerService);\n    }\n};\nUnicodeHighlighterHoverParticipant = __decorate([\n    __param(1, ILanguageService),\n    __param(2, IOpenerService)\n], UnicodeHighlighterHoverParticipant);\nexport { UnicodeHighlighterHoverParticipant };\nfunction codePointToHex(codePoint) {\n    return `U+${codePoint.toString(16).padStart(4, '0')}`;\n}\nfunction formatCodePointMarkdown(codePoint) {\n    let value = `\\`${codePointToHex(codePoint)}\\``;\n    if (!InvisibleCharacters.isInvisibleCharacter(codePoint)) {\n        // Don't render any control characters or any invisible characters, as they cannot be seen anyways.\n        value += ` \"${`${renderCodePointAsInlineCode(codePoint)}`}\"`;\n    }\n    return value;\n}\nfunction renderCodePointAsInlineCode(codePoint) {\n    if (codePoint === 96 /* CharCode.BackTick */) {\n        return '`` ` ``';\n    }\n    return '`' + String.fromCodePoint(codePoint) + '`';\n}\nfunction computeReason(char, options) {\n    return UnicodeTextModelHighlighter.computeUnicodeHighlightReason(char, options);\n}\nclass Decorations {\n    constructor() {\n        this.map = new Map();\n    }\n    getDecorationFromOptions(options) {\n        return this.getDecoration(!options.includeComments, !options.includeStrings);\n    }\n    getDecoration(hideInComments, hideInStrings) {\n        const key = `${hideInComments}${hideInStrings}`;\n        let options = this.map.get(key);\n        if (!options) {\n            options = ModelDecorationOptions.createDynamic({\n                description: 'unicode-highlight',\n                stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n                className: 'unicode-highlight',\n                showIfCollapsed: true,\n                overviewRuler: null,\n                minimap: null,\n                hideInCommentTokens: hideInComments,\n                hideInStringTokens: hideInStrings,\n            });\n            this.map.set(key, options);\n        }\n        return options;\n    }\n}\nDecorations.instance = new Decorations();\nexport class DisableHighlightingInCommentsAction extends EditorAction {\n    constructor() {\n        super({\n            id: DisableHighlightingOfAmbiguousCharactersAction.ID,\n            label: nls.localize('action.unicodeHighlight.disableHighlightingInComments', 'Disable highlighting of characters in comments'),\n            alias: 'Disable highlighting of characters in comments',\n            precondition: undefined\n        });\n        this.shortLabel = nls.localize('unicodeHighlight.disableHighlightingInComments.shortLabel', 'Disable Highlight In Comments');\n    }\n    async run(accessor, editor, args) {\n        const configurationService = accessor === null || accessor === void 0 ? void 0 : accessor.get(IConfigurationService);\n        if (configurationService) {\n            this.runAction(configurationService);\n        }\n    }\n    async runAction(configurationService) {\n        await configurationService.updateValue(unicodeHighlightConfigKeys.includeComments, false, 2 /* ConfigurationTarget.USER */);\n    }\n}\nexport class DisableHighlightingInStringsAction extends EditorAction {\n    constructor() {\n        super({\n            id: DisableHighlightingOfAmbiguousCharactersAction.ID,\n            label: nls.localize('action.unicodeHighlight.disableHighlightingInStrings', 'Disable highlighting of characters in strings'),\n            alias: 'Disable highlighting of characters in strings',\n            precondition: undefined\n        });\n        this.shortLabel = nls.localize('unicodeHighlight.disableHighlightingInStrings.shortLabel', 'Disable Highlight In Strings');\n    }\n    async run(accessor, editor, args) {\n        const configurationService = accessor === null || accessor === void 0 ? void 0 : accessor.get(IConfigurationService);\n        if (configurationService) {\n            this.runAction(configurationService);\n        }\n    }\n    async runAction(configurationService) {\n        await configurationService.updateValue(unicodeHighlightConfigKeys.includeStrings, false, 2 /* ConfigurationTarget.USER */);\n    }\n}\nexport class DisableHighlightingOfAmbiguousCharactersAction extends EditorAction {\n    constructor() {\n        super({\n            id: DisableHighlightingOfAmbiguousCharactersAction.ID,\n            label: nls.localize('action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters', 'Disable highlighting of ambiguous characters'),\n            alias: 'Disable highlighting of ambiguous characters',\n            precondition: undefined\n        });\n        this.shortLabel = nls.localize('unicodeHighlight.disableHighlightingOfAmbiguousCharacters.shortLabel', 'Disable Ambiguous Highlight');\n    }\n    async run(accessor, editor, args) {\n        const configurationService = accessor === null || accessor === void 0 ? void 0 : accessor.get(IConfigurationService);\n        if (configurationService) {\n            this.runAction(configurationService);\n        }\n    }\n    async runAction(configurationService) {\n        await configurationService.updateValue(unicodeHighlightConfigKeys.ambiguousCharacters, false, 2 /* ConfigurationTarget.USER */);\n    }\n}\nDisableHighlightingOfAmbiguousCharactersAction.ID = 'editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters';\nexport class DisableHighlightingOfInvisibleCharactersAction extends EditorAction {\n    constructor() {\n        super({\n            id: DisableHighlightingOfInvisibleCharactersAction.ID,\n            label: nls.localize('action.unicodeHighlight.disableHighlightingOfInvisibleCharacters', 'Disable highlighting of invisible characters'),\n            alias: 'Disable highlighting of invisible characters',\n            precondition: undefined\n        });\n        this.shortLabel = nls.localize('unicodeHighlight.disableHighlightingOfInvisibleCharacters.shortLabel', 'Disable Invisible Highlight');\n    }\n    async run(accessor, editor, args) {\n        const configurationService = accessor === null || accessor === void 0 ? void 0 : accessor.get(IConfigurationService);\n        if (configurationService) {\n            this.runAction(configurationService);\n        }\n    }\n    async runAction(configurationService) {\n        await configurationService.updateValue(unicodeHighlightConfigKeys.invisibleCharacters, false, 2 /* ConfigurationTarget.USER */);\n    }\n}\nDisableHighlightingOfInvisibleCharactersAction.ID = 'editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters';\nexport class DisableHighlightingOfNonBasicAsciiCharactersAction extends EditorAction {\n    constructor() {\n        super({\n            id: DisableHighlightingOfNonBasicAsciiCharactersAction.ID,\n            label: nls.localize('action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters', 'Disable highlighting of non basic ASCII characters'),\n            alias: 'Disable highlighting of non basic ASCII characters',\n            precondition: undefined\n        });\n        this.shortLabel = nls.localize('unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters.shortLabel', 'Disable Non ASCII Highlight');\n    }\n    async run(accessor, editor, args) {\n        const configurationService = accessor === null || accessor === void 0 ? void 0 : accessor.get(IConfigurationService);\n        if (configurationService) {\n            this.runAction(configurationService);\n        }\n    }\n    async runAction(configurationService) {\n        await configurationService.updateValue(unicodeHighlightConfigKeys.nonBasicASCII, false, 2 /* ConfigurationTarget.USER */);\n    }\n}\nDisableHighlightingOfNonBasicAsciiCharactersAction.ID = 'editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters';\nexport class ShowExcludeOptions extends EditorAction {\n    constructor() {\n        super({\n            id: ShowExcludeOptions.ID,\n            label: nls.localize('action.unicodeHighlight.showExcludeOptions', \"Show Exclude Options\"),\n            alias: 'Show Exclude Options',\n            precondition: undefined\n        });\n    }\n    async run(accessor, editor, args) {\n        const { codePoint, reason, inString, inComment } = args;\n        const char = String.fromCodePoint(codePoint);\n        const quickPickService = accessor.get(IQuickInputService);\n        const configurationService = accessor.get(IConfigurationService);\n        function getExcludeCharFromBeingHighlightedLabel(codePoint) {\n            if (InvisibleCharacters.isInvisibleCharacter(codePoint)) {\n                return nls.localize('unicodeHighlight.excludeInvisibleCharFromBeingHighlighted', 'Exclude {0} (invisible character) from being highlighted', codePointToHex(codePoint));\n            }\n            return nls.localize('unicodeHighlight.excludeCharFromBeingHighlighted', 'Exclude {0} from being highlighted', `${codePointToHex(codePoint)} \"${char}\"`);\n        }\n        const options = [];\n        if (reason.kind === 0 /* UnicodeHighlighterReasonKind.Ambiguous */) {\n            for (const locale of reason.notAmbiguousInLocales) {\n                options.push({\n                    label: nls.localize(\"unicodeHighlight.allowCommonCharactersInLanguage\", \"Allow unicode characters that are more common in the language \\\"{0}\\\".\", locale),\n                    run: async () => {\n                        excludeLocaleFromBeingHighlighted(configurationService, [locale]);\n                    },\n                });\n            }\n        }\n        options.push({\n            label: getExcludeCharFromBeingHighlightedLabel(codePoint),\n            run: () => excludeCharFromBeingHighlighted(configurationService, [codePoint])\n        });\n        if (inComment) {\n            const action = new DisableHighlightingInCommentsAction();\n            options.push({ label: action.label, run: async () => action.runAction(configurationService) });\n        }\n        else if (inString) {\n            const action = new DisableHighlightingInStringsAction();\n            options.push({ label: action.label, run: async () => action.runAction(configurationService) });\n        }\n        if (reason.kind === 0 /* UnicodeHighlighterReasonKind.Ambiguous */) {\n            const action = new DisableHighlightingOfAmbiguousCharactersAction();\n            options.push({ label: action.label, run: async () => action.runAction(configurationService) });\n        }\n        else if (reason.kind === 1 /* UnicodeHighlighterReasonKind.Invisible */) {\n            const action = new DisableHighlightingOfInvisibleCharactersAction();\n            options.push({ label: action.label, run: async () => action.runAction(configurationService) });\n        }\n        else if (reason.kind === 2 /* UnicodeHighlighterReasonKind.NonBasicAscii */) {\n            const action = new DisableHighlightingOfNonBasicAsciiCharactersAction();\n            options.push({ label: action.label, run: async () => action.runAction(configurationService) });\n        }\n        else {\n            expectNever(reason);\n        }\n        const result = await quickPickService.pick(options, { title: configureUnicodeHighlightOptionsStr });\n        if (result) {\n            await result.run();\n        }\n    }\n}\nShowExcludeOptions.ID = 'editor.action.unicodeHighlight.showExcludeOptions';\nasync function excludeCharFromBeingHighlighted(configurationService, charCodes) {\n    const existingValue = configurationService.getValue(unicodeHighlightConfigKeys.allowedCharacters);\n    let value;\n    if ((typeof existingValue === 'object') && existingValue) {\n        value = existingValue;\n    }\n    else {\n        value = {};\n    }\n    for (const charCode of charCodes) {\n        value[String.fromCodePoint(charCode)] = true;\n    }\n    await configurationService.updateValue(unicodeHighlightConfigKeys.allowedCharacters, value, 2 /* ConfigurationTarget.USER */);\n}\nasync function excludeLocaleFromBeingHighlighted(configurationService, locales) {\n    var _a;\n    const existingValue = (_a = configurationService.inspect(unicodeHighlightConfigKeys.allowedLocales).user) === null || _a === void 0 ? void 0 : _a.value;\n    let value;\n    if ((typeof existingValue === 'object') && existingValue) {\n        // Copy value, as the existing value is read only\n        value = Object.assign({}, existingValue);\n    }\n    else {\n        value = {};\n    }\n    for (const locale of locales) {\n        value[locale] = true;\n    }\n    await configurationService.updateValue(unicodeHighlightConfigKeys.allowedLocales, value, 2 /* ConfigurationTarget.USER */);\n}\nfunction expectNever(value) {\n    throw new Error(`Unexpected value: ${value}`);\n}\nregisterEditorAction(DisableHighlightingOfAmbiguousCharactersAction);\nregisterEditorAction(DisableHighlightingOfInvisibleCharactersAction);\nregisterEditorAction(DisableHighlightingOfNonBasicAsciiCharactersAction);\nregisterEditorAction(ShowExcludeOptions);\nregisterEditorContribution(UnicodeHighlighter.ID, UnicodeHighlighter, 1 /* EditorContributionInstantiation.AfterFirstRender */);\nHoverParticipantRegistry.register(UnicodeHighlighterHoverParticipant);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { basename } from '../../../../base/common/resources.js';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport * as nls from '../../../../nls.js';\nimport { IDialogService } from '../../../../platform/dialogs/common/dialogs.js';\nconst ignoreUnusualLineTerminators = 'ignoreUnusualLineTerminators';\nfunction writeIgnoreState(codeEditorService, model, state) {\n    codeEditorService.setModelProperty(model.uri, ignoreUnusualLineTerminators, state);\n}\nfunction readIgnoreState(codeEditorService, model) {\n    return codeEditorService.getModelProperty(model.uri, ignoreUnusualLineTerminators);\n}\nlet UnusualLineTerminatorsDetector = class UnusualLineTerminatorsDetector extends Disposable {\n    constructor(_editor, _dialogService, _codeEditorService) {\n        super();\n        this._editor = _editor;\n        this._dialogService = _dialogService;\n        this._codeEditorService = _codeEditorService;\n        this._isPresentingDialog = false;\n        this._config = this._editor.getOption(126 /* EditorOption.unusualLineTerminators */);\n        this._register(this._editor.onDidChangeConfiguration((e) => {\n            if (e.hasChanged(126 /* EditorOption.unusualLineTerminators */)) {\n                this._config = this._editor.getOption(126 /* EditorOption.unusualLineTerminators */);\n                this._checkForUnusualLineTerminators();\n            }\n        }));\n        this._register(this._editor.onDidChangeModel(() => {\n            this._checkForUnusualLineTerminators();\n        }));\n        this._register(this._editor.onDidChangeModelContent((e) => {\n            if (e.isUndoing) {\n                // skip checking in case of undoing\n                return;\n            }\n            this._checkForUnusualLineTerminators();\n        }));\n        this._checkForUnusualLineTerminators();\n    }\n    async _checkForUnusualLineTerminators() {\n        if (this._config === 'off') {\n            return;\n        }\n        if (!this._editor.hasModel()) {\n            return;\n        }\n        const model = this._editor.getModel();\n        if (!model.mightContainUnusualLineTerminators()) {\n            return;\n        }\n        const ignoreState = readIgnoreState(this._codeEditorService, model);\n        if (ignoreState === true) {\n            // this model should be ignored\n            return;\n        }\n        if (this._editor.getOption(91 /* EditorOption.readOnly */)) {\n            // read only editor => sorry!\n            return;\n        }\n        if (this._config === 'auto') {\n            // just do it!\n            model.removeUnusualLineTerminators(this._editor.getSelections());\n            return;\n        }\n        if (this._isPresentingDialog) {\n            // we're currently showing the dialog, which is async.\n            // avoid spamming the user\n            return;\n        }\n        let result;\n        try {\n            this._isPresentingDialog = true;\n            result = await this._dialogService.confirm({\n                title: nls.localize('unusualLineTerminators.title', \"Unusual Line Terminators\"),\n                message: nls.localize('unusualLineTerminators.message', \"Detected unusual line terminators\"),\n                detail: nls.localize('unusualLineTerminators.detail', \"The file '{0}' contains one or more unusual line terminator characters, like Line Separator (LS) or Paragraph Separator (PS).\\n\\nIt is recommended to remove them from the file. This can be configured via `editor.unusualLineTerminators`.\", basename(model.uri)),\n                primaryButton: nls.localize({ key: 'unusualLineTerminators.fix', comment: ['&& denotes a mnemonic'] }, \"&&Remove Unusual Line Terminators\"),\n                cancelButton: nls.localize('unusualLineTerminators.ignore', \"Ignore\")\n            });\n        }\n        finally {\n            this._isPresentingDialog = false;\n        }\n        if (!result.confirmed) {\n            // this model should be ignored\n            writeIgnoreState(this._codeEditorService, model, true);\n            return;\n        }\n        model.removeUnusualLineTerminators(this._editor.getSelections());\n    }\n};\nUnusualLineTerminatorsDetector.ID = 'editor.contrib.unusualLineTerminatorsDetector';\nUnusualLineTerminatorsDetector = __decorate([\n    __param(1, IDialogService),\n    __param(2, ICodeEditorService)\n], UnusualLineTerminatorsDetector);\nexport { UnusualLineTerminatorsDetector };\nregisterEditorContribution(UnusualLineTerminatorsDetector.ID, UnusualLineTerminatorsDetector, 1 /* EditorContributionInstantiation.AfterFirstRender */);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .focused .selectionHighlight {\n\tbackground-color: var(--vscode-editor-selectionHighlightBackground);\n\tbox-sizing: border-box;\n\tborder: 1px solid var(--vscode-editor-selectionHighlightBorder);\n}\n.monaco-editor.hc-black .focused .selectionHighlight, .monaco-editor.hc-light .focused .selectionHighlight {\n\tborder-style: dotted;\n}\n\n.monaco-editor .wordHighlight {\n\tbackground-color: var(--vscode-editor-wordHighlightBackground);\n\tbox-sizing: border-box;\n\tborder: 1px solid var(--vscode-editor-wordHighlightBorder);\n}\n.monaco-editor.hc-black .wordHighlight, .monaco-editor.hc-light .wordHighlight {\n\tborder-style: dotted;\n}\n\n.monaco-editor .wordHighlightStrong {\n\tbackground-color: var(--vscode-editor-wordHighlightStrongBackground);\n\tbox-sizing: border-box;\n\tborder: 1px solid var(--vscode-editor-wordHighlightStrongBorder);\n}\n.monaco-editor.hc-black .wordHighlightStrong, .monaco-editor.hc-light .wordHighlightStrong {\n\tborder-style: dotted;\n}\n\n.monaco-editor .wordHighlightText {\n\tbackground-color: var(--vscode-editor-wordHighlightTextBackground);\n\tbox-sizing: border-box;\n\tborder: 1px solid var(--vscode-editor-wordHighlightTextBorder);\n}\n.monaco-editor.hc-black .wordHighlightText, .monaco-editor.hc-light .wordHighlightText {\n\tborder-style: dotted;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './highlightDecorations.css';\nimport { OverviewRulerLane } from '../../../common/model.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { DocumentHighlightKind } from '../../../common/languages.js';\nimport * as nls from '../../../../nls.js';\nimport { activeContrastBorder, editorSelectionHighlight, minimapSelectionOccurrenceHighlight, overviewRulerSelectionHighlightForeground, registerColor } from '../../../../platform/theme/common/colorRegistry.js';\nimport { registerThemingParticipant, themeColorFromId } from '../../../../platform/theme/common/themeService.js';\nconst wordHighlightBackground = registerColor('editor.wordHighlightBackground', { dark: '#575757B8', light: '#57575740', hcDark: null, hcLight: null }, nls.localize('wordHighlight', 'Background color of a symbol during read-access, like reading a variable. The color must not be opaque so as not to hide underlying decorations.'), true);\nregisterColor('editor.wordHighlightStrongBackground', { dark: '#004972B8', light: '#0e639c40', hcDark: null, hcLight: null }, nls.localize('wordHighlightStrong', 'Background color of a symbol during write-access, like writing to a variable. The color must not be opaque so as not to hide underlying decorations.'), true);\nregisterColor('editor.wordHighlightTextBackground', { light: wordHighlightBackground, dark: wordHighlightBackground, hcDark: wordHighlightBackground, hcLight: wordHighlightBackground }, nls.localize('wordHighlightText', 'Background color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations.'), true);\nconst wordHighlightBorder = registerColor('editor.wordHighlightBorder', { light: null, dark: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize('wordHighlightBorder', 'Border color of a symbol during read-access, like reading a variable.'));\nregisterColor('editor.wordHighlightStrongBorder', { light: null, dark: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize('wordHighlightStrongBorder', 'Border color of a symbol during write-access, like writing to a variable.'));\nregisterColor('editor.wordHighlightTextBorder', { light: wordHighlightBorder, dark: wordHighlightBorder, hcDark: wordHighlightBorder, hcLight: wordHighlightBorder }, nls.localize('wordHighlightTextBorder', \"Border color of a textual occurrence for a symbol.\"));\nconst overviewRulerWordHighlightForeground = registerColor('editorOverviewRuler.wordHighlightForeground', { dark: '#A0A0A0CC', light: '#A0A0A0CC', hcDark: '#A0A0A0CC', hcLight: '#A0A0A0CC' }, nls.localize('overviewRulerWordHighlightForeground', 'Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations.'), true);\nconst overviewRulerWordHighlightStrongForeground = registerColor('editorOverviewRuler.wordHighlightStrongForeground', { dark: '#C0A0C0CC', light: '#C0A0C0CC', hcDark: '#C0A0C0CC', hcLight: '#C0A0C0CC' }, nls.localize('overviewRulerWordHighlightStrongForeground', 'Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations.'), true);\nconst overviewRulerWordHighlightTextForeground = registerColor('editorOverviewRuler.wordHighlightTextForeground', { dark: overviewRulerSelectionHighlightForeground, light: overviewRulerSelectionHighlightForeground, hcDark: overviewRulerSelectionHighlightForeground, hcLight: overviewRulerSelectionHighlightForeground }, nls.localize('overviewRulerWordHighlightTextForeground', 'Overview ruler marker color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations.'), true);\nconst _WRITE_OPTIONS = ModelDecorationOptions.register({\n    description: 'word-highlight-strong',\n    stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n    className: 'wordHighlightStrong',\n    overviewRuler: {\n        color: themeColorFromId(overviewRulerWordHighlightStrongForeground),\n        position: OverviewRulerLane.Center\n    },\n    minimap: {\n        color: themeColorFromId(minimapSelectionOccurrenceHighlight),\n        position: 1 /* MinimapPosition.Inline */\n    },\n});\nconst _TEXT_OPTIONS = ModelDecorationOptions.register({\n    description: 'word-highlight-text',\n    stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n    className: 'wordHighlightText',\n    overviewRuler: {\n        color: themeColorFromId(overviewRulerWordHighlightTextForeground),\n        position: OverviewRulerLane.Center\n    },\n    minimap: {\n        color: themeColorFromId(minimapSelectionOccurrenceHighlight),\n        position: 1 /* MinimapPosition.Inline */\n    },\n});\nconst _SELECTION_HIGHLIGHT_OPTIONS = ModelDecorationOptions.register({\n    description: 'selection-highlight-overview',\n    stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n    className: 'selectionHighlight',\n    overviewRuler: {\n        color: themeColorFromId(overviewRulerSelectionHighlightForeground),\n        position: OverviewRulerLane.Center\n    },\n    minimap: {\n        color: themeColorFromId(minimapSelectionOccurrenceHighlight),\n        position: 1 /* MinimapPosition.Inline */\n    },\n});\nconst _SELECTION_HIGHLIGHT_OPTIONS_NO_OVERVIEW = ModelDecorationOptions.register({\n    description: 'selection-highlight',\n    stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n    className: 'selectionHighlight',\n});\nconst _REGULAR_OPTIONS = ModelDecorationOptions.register({\n    description: 'word-highlight',\n    stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n    className: 'wordHighlight',\n    overviewRuler: {\n        color: themeColorFromId(overviewRulerWordHighlightForeground),\n        position: OverviewRulerLane.Center\n    },\n    minimap: {\n        color: themeColorFromId(minimapSelectionOccurrenceHighlight),\n        position: 1 /* MinimapPosition.Inline */\n    },\n});\nexport function getHighlightDecorationOptions(kind) {\n    if (kind === DocumentHighlightKind.Write) {\n        return _WRITE_OPTIONS;\n    }\n    else if (kind === DocumentHighlightKind.Text) {\n        return _TEXT_OPTIONS;\n    }\n    else {\n        return _REGULAR_OPTIONS;\n    }\n}\nexport function getSelectionHighlightDecorationOptions(hasSemanticHighlights) {\n    // Show in overviewRuler only if model has no semantic highlighting\n    return (hasSemanticHighlights ? _SELECTION_HIGHLIGHT_OPTIONS_NO_OVERVIEW : _SELECTION_HIGHLIGHT_OPTIONS);\n}\nregisterThemingParticipant((theme, collector) => {\n    const selectionHighlight = theme.getColor(editorSelectionHighlight);\n    if (selectionHighlight) {\n        collector.addRule(`.monaco-editor .selectionHighlight { background-color: ${selectionHighlight.transparent(0.5)}; }`);\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar WordHighlighter_1, WordHighlighterContribution_1;\nimport * as nls from '../../../../nls.js';\nimport * as arrays from '../../../../base/common/arrays.js';\nimport { alert } from '../../../../base/browser/ui/aria/aria.js';\nimport { createCancelablePromise, first, timeout } from '../../../../base/common/async.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { onUnexpectedError, onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { isDiffEditor } from '../../../browser/editorBrowser.js';\nimport { EditorAction, registerEditorAction, registerEditorContribution, registerModelAndPositionCommand } from '../../../browser/editorExtensions.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { Range } from '../../../common/core/range.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { DocumentHighlightKind } from '../../../common/languages.js';\nimport { shouldSynchronizeModel } from '../../../common/model.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { getHighlightDecorationOptions } from './highlightDecorations.js';\nimport { IContextKeyService, RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { Schemas } from '../../../../base/common/network.js';\nimport { ResourceMap } from '../../../../base/common/map.js';\nimport { score } from '../../../common/languageSelector.js';\n// import { TextualMultiDocumentHighlightFeature } from 'vs/editor/contrib/wordHighlighter/browser/textualHighlightProvider';\n// import { registerEditorFeature } from 'vs/editor/common/editorFeatures';\nconst ctxHasWordHighlights = new RawContextKey('hasWordHighlights', false);\nexport function getOccurrencesAtPosition(registry, model, position, token) {\n    const orderedByScore = registry.ordered(model);\n    // in order of score ask the occurrences provider\n    // until someone response with a good result\n    // (good = none empty array)\n    return first(orderedByScore.map(provider => () => {\n        return Promise.resolve(provider.provideDocumentHighlights(model, position, token))\n            .then(undefined, onUnexpectedExternalError);\n    }), arrays.isNonEmptyArray).then(result => {\n        if (result) {\n            const map = new ResourceMap();\n            map.set(model.uri, result);\n            return map;\n        }\n        return new ResourceMap();\n    });\n}\nexport function getOccurrencesAcrossMultipleModels(registry, model, position, wordSeparators, token, otherModels) {\n    const orderedByScore = registry.ordered(model);\n    // in order of score ask the occurrences provider\n    // until someone response with a good result\n    // (good = none empty array)\n    return first(orderedByScore.map(provider => () => {\n        const filteredModels = otherModels.filter(otherModel => {\n            return shouldSynchronizeModel(otherModel);\n        }).filter(otherModel => {\n            return score(provider.selector, otherModel.uri, otherModel.getLanguageId(), true, undefined, undefined) > 0;\n        });\n        return Promise.resolve(provider.provideMultiDocumentHighlights(model, position, filteredModels, token))\n            .then(undefined, onUnexpectedExternalError);\n    }), (t) => t instanceof ResourceMap && t.size > 0);\n}\nclass OccurenceAtPositionRequest {\n    constructor(_model, _selection, _wordSeparators) {\n        this._model = _model;\n        this._selection = _selection;\n        this._wordSeparators = _wordSeparators;\n        this._wordRange = this._getCurrentWordRange(_model, _selection);\n        this._result = null;\n    }\n    get result() {\n        if (!this._result) {\n            this._result = createCancelablePromise(token => this._compute(this._model, this._selection, this._wordSeparators, token));\n        }\n        return this._result;\n    }\n    _getCurrentWordRange(model, selection) {\n        const word = model.getWordAtPosition(selection.getPosition());\n        if (word) {\n            return new Range(selection.startLineNumber, word.startColumn, selection.startLineNumber, word.endColumn);\n        }\n        return null;\n    }\n    isValid(model, selection, decorations) {\n        const lineNumber = selection.startLineNumber;\n        const startColumn = selection.startColumn;\n        const endColumn = selection.endColumn;\n        const currentWordRange = this._getCurrentWordRange(model, selection);\n        let requestIsValid = Boolean(this._wordRange && this._wordRange.equalsRange(currentWordRange));\n        // Even if we are on a different word, if that word is in the decorations ranges, the request is still valid\n        // (Same symbol)\n        for (let i = 0, len = decorations.length; !requestIsValid && i < len; i++) {\n            const range = decorations.getRange(i);\n            if (range && range.startLineNumber === lineNumber) {\n                if (range.startColumn <= startColumn && range.endColumn >= endColumn) {\n                    requestIsValid = true;\n                }\n            }\n        }\n        return requestIsValid;\n    }\n    cancel() {\n        this.result.cancel();\n    }\n}\nclass SemanticOccurenceAtPositionRequest extends OccurenceAtPositionRequest {\n    constructor(model, selection, wordSeparators, providers) {\n        super(model, selection, wordSeparators);\n        this._providers = providers;\n    }\n    _compute(model, selection, wordSeparators, token) {\n        return getOccurrencesAtPosition(this._providers, model, selection.getPosition(), token).then(value => {\n            if (!value) {\n                return new ResourceMap();\n            }\n            return value;\n        });\n    }\n}\nclass MultiModelOccurenceRequest extends OccurenceAtPositionRequest {\n    constructor(model, selection, wordSeparators, providers, otherModels) {\n        super(model, selection, wordSeparators);\n        this._providers = providers;\n        this._otherModels = otherModels;\n    }\n    _compute(model, selection, wordSeparators, token) {\n        return getOccurrencesAcrossMultipleModels(this._providers, model, selection.getPosition(), wordSeparators, token, this._otherModels).then(value => {\n            if (!value) {\n                return new ResourceMap();\n            }\n            return value;\n        });\n    }\n}\nclass TextualOccurenceRequest extends OccurenceAtPositionRequest {\n    constructor(model, selection, word, wordSeparators, otherModels) {\n        super(model, selection, wordSeparators);\n        this._otherModels = otherModels;\n        this._selectionIsEmpty = selection.isEmpty();\n        this._word = word;\n    }\n    _compute(model, selection, wordSeparators, token) {\n        return timeout(250, token).then(() => {\n            const result = new ResourceMap();\n            let wordResult;\n            if (this._word) {\n                wordResult = this._word;\n            }\n            else {\n                wordResult = model.getWordAtPosition(selection.getPosition());\n            }\n            if (!wordResult) {\n                return new ResourceMap();\n            }\n            const allModels = [model, ...this._otherModels];\n            for (const otherModel of allModels) {\n                if (otherModel.isDisposed()) {\n                    continue;\n                }\n                const matches = otherModel.findMatches(wordResult.word, true, false, true, wordSeparators, false);\n                const highlights = matches.map(m => ({\n                    range: m.range,\n                    kind: DocumentHighlightKind.Text\n                }));\n                if (highlights) {\n                    result.set(otherModel.uri, highlights);\n                }\n            }\n            return result;\n        });\n    }\n    isValid(model, selection, decorations) {\n        const currentSelectionIsEmpty = selection.isEmpty();\n        if (this._selectionIsEmpty !== currentSelectionIsEmpty) {\n            return false;\n        }\n        return super.isValid(model, selection, decorations);\n    }\n}\nfunction computeOccurencesAtPosition(registry, model, selection, word, wordSeparators) {\n    if (registry.has(model)) {\n        return new SemanticOccurenceAtPositionRequest(model, selection, wordSeparators, registry);\n    }\n    return new TextualOccurenceRequest(model, selection, word, wordSeparators, []);\n}\nfunction computeOccurencesMultiModel(registry, model, selection, word, wordSeparators, otherModels) {\n    if (registry.has(model)) {\n        return new MultiModelOccurenceRequest(model, selection, wordSeparators, registry, otherModels);\n    }\n    return new TextualOccurenceRequest(model, selection, word, wordSeparators, otherModels);\n}\nregisterModelAndPositionCommand('_executeDocumentHighlights', async (accessor, model, position) => {\n    const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n    const map = await getOccurrencesAtPosition(languageFeaturesService.documentHighlightProvider, model, position, CancellationToken.None);\n    return map === null || map === void 0 ? void 0 : map.get(model.uri);\n});\nlet WordHighlighter = WordHighlighter_1 = class WordHighlighter {\n    constructor(editor, providers, multiProviders, contextKeyService, codeEditorService) {\n        this.toUnhook = new DisposableStore();\n        this.workerRequestTokenId = 0;\n        this.workerRequestCompleted = false;\n        this.workerRequestValue = new ResourceMap();\n        this.lastCursorPositionChangeTime = 0;\n        this.renderDecorationsTimer = -1;\n        this.editor = editor;\n        this.providers = providers;\n        this.multiDocumentProviders = multiProviders;\n        this.codeEditorService = codeEditorService;\n        this._hasWordHighlights = ctxHasWordHighlights.bindTo(contextKeyService);\n        this._ignorePositionChangeEvent = false;\n        this.occurrencesHighlight = this.editor.getOption(81 /* EditorOption.occurrencesHighlight */);\n        this.model = this.editor.getModel();\n        this.toUnhook.add(editor.onDidChangeCursorPosition((e) => {\n            if (this._ignorePositionChangeEvent) {\n                // We are changing the position => ignore this event\n                return;\n            }\n            if (this.occurrencesHighlight === 'off') {\n                // Early exit if nothing needs to be done!\n                // Leave some form of early exit check here if you wish to continue being a cursor position change listener ;)\n                return;\n            }\n            this._onPositionChanged(e);\n        }));\n        this.toUnhook.add(editor.onDidFocusEditorText((e) => {\n            if (this.occurrencesHighlight === 'off') {\n                // Early exit if nothing needs to be done\n                return;\n            }\n            if (!this.workerRequest) {\n                this._run();\n            }\n        }));\n        this.toUnhook.add(editor.onDidChangeModelContent((e) => {\n            this._stopAll();\n        }));\n        this.toUnhook.add(editor.onDidChangeModel((e) => {\n            if (!e.newModelUrl && e.oldModelUrl) {\n                this._stopSingular();\n            }\n            else {\n                if (WordHighlighter_1.query) {\n                    this._run();\n                }\n            }\n        }));\n        this.toUnhook.add(editor.onDidChangeConfiguration((e) => {\n            const newValue = this.editor.getOption(81 /* EditorOption.occurrencesHighlight */);\n            if (this.occurrencesHighlight !== newValue) {\n                this.occurrencesHighlight = newValue;\n                this._stopAll();\n            }\n        }));\n        this.decorations = this.editor.createDecorationsCollection();\n        this.workerRequestTokenId = 0;\n        this.workerRequest = null;\n        this.workerRequestCompleted = false;\n        this.lastCursorPositionChangeTime = 0;\n        this.renderDecorationsTimer = -1;\n        // if there is a query already, highlight off that query\n        if (WordHighlighter_1.query) {\n            this._run();\n        }\n    }\n    hasDecorations() {\n        return (this.decorations.length > 0);\n    }\n    restore() {\n        if (this.occurrencesHighlight === 'off') {\n            return;\n        }\n        this._run();\n    }\n    _getSortedHighlights() {\n        return (this.decorations.getRanges()\n            .sort(Range.compareRangesUsingStarts));\n    }\n    moveNext() {\n        const highlights = this._getSortedHighlights();\n        const index = highlights.findIndex((range) => range.containsPosition(this.editor.getPosition()));\n        const newIndex = ((index + 1) % highlights.length);\n        const dest = highlights[newIndex];\n        try {\n            this._ignorePositionChangeEvent = true;\n            this.editor.setPosition(dest.getStartPosition());\n            this.editor.revealRangeInCenterIfOutsideViewport(dest);\n            const word = this._getWord();\n            if (word) {\n                const lineContent = this.editor.getModel().getLineContent(dest.startLineNumber);\n                alert(`${lineContent}, ${newIndex + 1} of ${highlights.length} for '${word.word}'`);\n            }\n        }\n        finally {\n            this._ignorePositionChangeEvent = false;\n        }\n    }\n    moveBack() {\n        const highlights = this._getSortedHighlights();\n        const index = highlights.findIndex((range) => range.containsPosition(this.editor.getPosition()));\n        const newIndex = ((index - 1 + highlights.length) % highlights.length);\n        const dest = highlights[newIndex];\n        try {\n            this._ignorePositionChangeEvent = true;\n            this.editor.setPosition(dest.getStartPosition());\n            this.editor.revealRangeInCenterIfOutsideViewport(dest);\n            const word = this._getWord();\n            if (word) {\n                const lineContent = this.editor.getModel().getLineContent(dest.startLineNumber);\n                alert(`${lineContent}, ${newIndex + 1} of ${highlights.length} for '${word.word}'`);\n            }\n        }\n        finally {\n            this._ignorePositionChangeEvent = false;\n        }\n    }\n    _removeSingleDecorations() {\n        // return if no model\n        if (!this.editor.hasModel()) {\n            return;\n        }\n        const currentDecorationIDs = WordHighlighter_1.storedDecorations.get(this.editor.getModel().uri);\n        if (!currentDecorationIDs) {\n            return;\n        }\n        this.editor.removeDecorations(currentDecorationIDs);\n        WordHighlighter_1.storedDecorations.delete(this.editor.getModel().uri);\n        if (this.decorations.length > 0) {\n            this.decorations.clear();\n            this._hasWordHighlights.set(false);\n        }\n    }\n    _removeAllDecorations() {\n        const currentEditors = this.codeEditorService.listCodeEditors();\n        const deleteURI = [];\n        // iterate over editors and store models in currentModels\n        for (const editor of currentEditors) {\n            if (!editor.hasModel()) {\n                continue;\n            }\n            const currentDecorationIDs = WordHighlighter_1.storedDecorations.get(editor.getModel().uri);\n            if (!currentDecorationIDs) {\n                continue;\n            }\n            editor.removeDecorations(currentDecorationIDs);\n            deleteURI.push(editor.getModel().uri);\n            const editorHighlighterContrib = WordHighlighterContribution.get(editor);\n            if (!(editorHighlighterContrib === null || editorHighlighterContrib === void 0 ? void 0 : editorHighlighterContrib.wordHighlighter)) {\n                continue;\n            }\n            if (editorHighlighterContrib.wordHighlighter.decorations.length > 0) {\n                editorHighlighterContrib.wordHighlighter.decorations.clear();\n                editorHighlighterContrib.wordHighlighter.workerRequest = null;\n                editorHighlighterContrib.wordHighlighter._hasWordHighlights.set(false);\n            }\n        }\n        for (const uri of deleteURI) {\n            WordHighlighter_1.storedDecorations.delete(uri);\n        }\n    }\n    _stopSingular() {\n        var _a, _b, _c, _d;\n        // Remove any existing decorations + a possible query, and re - run to update decorations\n        this._removeSingleDecorations();\n        if (this.editor.hasTextFocus()) {\n            if (((_a = this.editor.getModel()) === null || _a === void 0 ? void 0 : _a.uri.scheme) !== Schemas.vscodeNotebookCell && ((_c = (_b = WordHighlighter_1.query) === null || _b === void 0 ? void 0 : _b.modelInfo) === null || _c === void 0 ? void 0 : _c.model.uri.scheme) !== Schemas.vscodeNotebookCell) { // clear query if focused non-nb editor\n                WordHighlighter_1.query = null;\n                this._run(); // TODO: @Yoyokrazy -- investigate why we need a full rerun here. likely addressed a case/patch in the first iteration of this feature\n            }\n            else { // remove modelInfo to account for nb cell being disposed\n                if ((_d = WordHighlighter_1.query) === null || _d === void 0 ? void 0 : _d.modelInfo) {\n                    WordHighlighter_1.query.modelInfo = null;\n                }\n            }\n        }\n        // Cancel any renderDecorationsTimer\n        if (this.renderDecorationsTimer !== -1) {\n            clearTimeout(this.renderDecorationsTimer);\n            this.renderDecorationsTimer = -1;\n        }\n        // Cancel any worker request\n        if (this.workerRequest !== null) {\n            this.workerRequest.cancel();\n            this.workerRequest = null;\n        }\n        // Invalidate any worker request callback\n        if (!this.workerRequestCompleted) {\n            this.workerRequestTokenId++;\n            this.workerRequestCompleted = true;\n        }\n    }\n    _stopAll() {\n        // Remove any existing decorations\n        // TODO: @Yoyokrazy -- this triggers as notebooks scroll, causing highlights to disappear momentarily.\n        // maybe a nb type check?\n        this._removeAllDecorations();\n        // Cancel any renderDecorationsTimer\n        if (this.renderDecorationsTimer !== -1) {\n            clearTimeout(this.renderDecorationsTimer);\n            this.renderDecorationsTimer = -1;\n        }\n        // Cancel any worker request\n        if (this.workerRequest !== null) {\n            this.workerRequest.cancel();\n            this.workerRequest = null;\n        }\n        // Invalidate any worker request callback\n        if (!this.workerRequestCompleted) {\n            this.workerRequestTokenId++;\n            this.workerRequestCompleted = true;\n        }\n    }\n    _onPositionChanged(e) {\n        var _a;\n        // disabled\n        if (this.occurrencesHighlight === 'off') {\n            this._stopAll();\n            return;\n        }\n        // ignore typing & other\n        // need to check if the model is a notebook cell, should not stop if nb\n        if (e.reason !== 3 /* CursorChangeReason.Explicit */ && ((_a = this.editor.getModel()) === null || _a === void 0 ? void 0 : _a.uri.scheme) !== Schemas.vscodeNotebookCell) {\n            this._stopAll();\n            return;\n        }\n        this._run();\n    }\n    _getWord() {\n        const editorSelection = this.editor.getSelection();\n        const lineNumber = editorSelection.startLineNumber;\n        const startColumn = editorSelection.startColumn;\n        if (this.model.isDisposed()) {\n            return null;\n        }\n        return this.model.getWordAtPosition({\n            lineNumber: lineNumber,\n            column: startColumn\n        });\n    }\n    getOtherModelsToHighlight(model) {\n        if (!model) {\n            return [];\n        }\n        // notebook case\n        const isNotebookEditor = model.uri.scheme === Schemas.vscodeNotebookCell;\n        if (isNotebookEditor) {\n            const currentModels = [];\n            const currentEditors = this.codeEditorService.listCodeEditors();\n            for (const editor of currentEditors) {\n                const tempModel = editor.getModel();\n                if (tempModel && tempModel !== model && tempModel.uri.scheme === Schemas.vscodeNotebookCell) {\n                    currentModels.push(tempModel);\n                }\n            }\n            return currentModels;\n        }\n        // inline case\n        // ? current works when highlighting outside of an inline diff, highlighting in.\n        // ? broken when highlighting within a diff editor. highlighting the main editor does not work\n        // ? editor group service could be useful here\n        const currentModels = [];\n        const currentEditors = this.codeEditorService.listCodeEditors();\n        for (const editor of currentEditors) {\n            if (!isDiffEditor(editor)) {\n                continue;\n            }\n            const diffModel = editor.getModel();\n            if (!diffModel) {\n                continue;\n            }\n            if (model === diffModel.modified) { // embedded inline chat diff would pass this, allowing highlights\n                //? currentModels.push(diffModel.original);\n                currentModels.push(diffModel.modified);\n            }\n        }\n        if (currentModels.length) { // no matching editors have been found\n            return currentModels;\n        }\n        // multi-doc OFF\n        if (this.occurrencesHighlight === 'singleFile') {\n            return [];\n        }\n        // multi-doc ON\n        for (const editor of currentEditors) {\n            const tempModel = editor.getModel();\n            const isValidModel = tempModel && tempModel !== model;\n            if (isValidModel) {\n                currentModels.push(tempModel);\n            }\n        }\n        return currentModels;\n    }\n    _run() {\n        var _a;\n        let workerRequestIsValid;\n        const hasTextFocus = this.editor.hasTextFocus();\n        if (!hasTextFocus) { // new nb cell scrolled in, didChangeModel fires\n            if (!WordHighlighter_1.query) { // no previous query, nothing to highlight off of\n                return;\n            }\n        }\n        else { // has text focus\n            const editorSelection = this.editor.getSelection();\n            // ignore multiline selection\n            if (!editorSelection || editorSelection.startLineNumber !== editorSelection.endLineNumber) {\n                WordHighlighter_1.query = null;\n                this._stopAll();\n                return;\n            }\n            const startColumn = editorSelection.startColumn;\n            const endColumn = editorSelection.endColumn;\n            const word = this._getWord();\n            // The selection must be inside a word or surround one word at most\n            if (!word || word.startColumn > startColumn || word.endColumn < endColumn) {\n                // no previous query, nothing to highlight\n                WordHighlighter_1.query = null;\n                this._stopAll();\n                return;\n            }\n            // All the effort below is trying to achieve this:\n            // - when cursor is moved to a word, trigger immediately a findOccurrences request\n            // - 250ms later after the last cursor move event, render the occurrences\n            // - no flickering!\n            workerRequestIsValid = (this.workerRequest && this.workerRequest.isValid(this.model, editorSelection, this.decorations));\n            WordHighlighter_1.query = {\n                modelInfo: {\n                    model: this.model,\n                    selection: editorSelection,\n                },\n                word: word\n            };\n        }\n        // There are 4 cases:\n        // a) old workerRequest is valid & completed, renderDecorationsTimer fired\n        // b) old workerRequest is valid & completed, renderDecorationsTimer not fired\n        // c) old workerRequest is valid, but not completed\n        // d) old workerRequest is not valid\n        // For a) no action is needed\n        // For c), member 'lastCursorPositionChangeTime' will be used when installing the timer so no action is needed\n        this.lastCursorPositionChangeTime = (new Date()).getTime();\n        if (workerRequestIsValid) {\n            if (this.workerRequestCompleted && this.renderDecorationsTimer !== -1) {\n                // case b)\n                // Delay the firing of renderDecorationsTimer by an extra 250 ms\n                clearTimeout(this.renderDecorationsTimer);\n                this.renderDecorationsTimer = -1;\n                this._beginRenderDecorations();\n            }\n        }\n        else {\n            // case d)\n            // Stop all previous actions and start fresh\n            this._stopAll();\n            const myRequestId = ++this.workerRequestTokenId;\n            this.workerRequestCompleted = false;\n            const otherModelsToHighlight = this.getOtherModelsToHighlight(this.editor.getModel());\n            // when reaching here, there are two possible states.\n            // \t\t1) we have text focus, and a valid query was updated.\n            // \t\t2) we do not have text focus, and a valid query is cached.\n            // the query will ALWAYS have the correct data for the current highlight request, so it can always be passed to the workerRequest safely\n            if (!WordHighlighter_1.query.modelInfo || WordHighlighter_1.query.modelInfo.model.isDisposed()) {\n                return;\n            }\n            this.workerRequest = this.computeWithModel(WordHighlighter_1.query.modelInfo.model, WordHighlighter_1.query.modelInfo.selection, WordHighlighter_1.query.word, otherModelsToHighlight);\n            (_a = this.workerRequest) === null || _a === void 0 ? void 0 : _a.result.then(data => {\n                if (myRequestId === this.workerRequestTokenId) {\n                    this.workerRequestCompleted = true;\n                    this.workerRequestValue = data || [];\n                    this._beginRenderDecorations();\n                }\n            }, onUnexpectedError);\n        }\n    }\n    computeWithModel(model, selection, word, otherModels) {\n        if (!otherModels.length) {\n            return computeOccurencesAtPosition(this.providers, model, selection, word, this.editor.getOption(131 /* EditorOption.wordSeparators */));\n        }\n        else {\n            return computeOccurencesMultiModel(this.multiDocumentProviders, model, selection, word, this.editor.getOption(131 /* EditorOption.wordSeparators */), otherModels);\n        }\n    }\n    _beginRenderDecorations() {\n        const currentTime = (new Date()).getTime();\n        const minimumRenderTime = this.lastCursorPositionChangeTime + 250;\n        if (currentTime >= minimumRenderTime) {\n            // Synchronous\n            this.renderDecorationsTimer = -1;\n            this.renderDecorations();\n        }\n        else {\n            // Asynchronous\n            this.renderDecorationsTimer = setTimeout(() => {\n                this.renderDecorations();\n            }, (minimumRenderTime - currentTime));\n        }\n    }\n    renderDecorations() {\n        var _a, _b, _c;\n        this.renderDecorationsTimer = -1;\n        // create new loop, iterate over current editors using this.codeEditorService.listCodeEditors(),\n        // if the URI of that codeEditor is in the map, then add the decorations to the decorations array\n        // then set the decorations for the editor\n        const currentEditors = this.codeEditorService.listCodeEditors();\n        for (const editor of currentEditors) {\n            const editorHighlighterContrib = WordHighlighterContribution.get(editor);\n            if (!editorHighlighterContrib) {\n                continue;\n            }\n            const newDecorations = [];\n            const uri = (_a = editor.getModel()) === null || _a === void 0 ? void 0 : _a.uri;\n            if (uri && this.workerRequestValue.has(uri)) {\n                const oldDecorationIDs = WordHighlighter_1.storedDecorations.get(uri);\n                const newDocumentHighlights = this.workerRequestValue.get(uri);\n                if (newDocumentHighlights) {\n                    for (const highlight of newDocumentHighlights) {\n                        if (!highlight.range) {\n                            continue;\n                        }\n                        newDecorations.push({\n                            range: highlight.range,\n                            options: getHighlightDecorationOptions(highlight.kind)\n                        });\n                    }\n                }\n                let newDecorationIDs = [];\n                editor.changeDecorations((changeAccessor) => {\n                    newDecorationIDs = changeAccessor.deltaDecorations(oldDecorationIDs !== null && oldDecorationIDs !== void 0 ? oldDecorationIDs : [], newDecorations);\n                });\n                WordHighlighter_1.storedDecorations = WordHighlighter_1.storedDecorations.set(uri, newDecorationIDs);\n                if (newDecorations.length > 0) {\n                    (_b = editorHighlighterContrib.wordHighlighter) === null || _b === void 0 ? void 0 : _b.decorations.set(newDecorations);\n                    (_c = editorHighlighterContrib.wordHighlighter) === null || _c === void 0 ? void 0 : _c._hasWordHighlights.set(true);\n                }\n            }\n        }\n    }\n    dispose() {\n        this._stopSingular();\n        this.toUnhook.dispose();\n    }\n};\nWordHighlighter.storedDecorations = new ResourceMap();\nWordHighlighter.query = null;\nWordHighlighter = WordHighlighter_1 = __decorate([\n    __param(4, ICodeEditorService)\n], WordHighlighter);\nlet WordHighlighterContribution = WordHighlighterContribution_1 = class WordHighlighterContribution extends Disposable {\n    static get(editor) {\n        return editor.getContribution(WordHighlighterContribution_1.ID);\n    }\n    constructor(editor, contextKeyService, languageFeaturesService, codeEditorService) {\n        super();\n        this._wordHighlighter = null;\n        const createWordHighlighterIfPossible = () => {\n            if (editor.hasModel() && !editor.getModel().isTooLargeForTokenization()) {\n                this._wordHighlighter = new WordHighlighter(editor, languageFeaturesService.documentHighlightProvider, languageFeaturesService.multiDocumentHighlightProvider, contextKeyService, codeEditorService);\n            }\n        };\n        this._register(editor.onDidChangeModel((e) => {\n            if (this._wordHighlighter) {\n                this._wordHighlighter.dispose();\n                this._wordHighlighter = null;\n            }\n            createWordHighlighterIfPossible();\n        }));\n        createWordHighlighterIfPossible();\n    }\n    get wordHighlighter() {\n        return this._wordHighlighter;\n    }\n    saveViewState() {\n        if (this._wordHighlighter && this._wordHighlighter.hasDecorations()) {\n            return true;\n        }\n        return false;\n    }\n    moveNext() {\n        var _a;\n        (_a = this._wordHighlighter) === null || _a === void 0 ? void 0 : _a.moveNext();\n    }\n    moveBack() {\n        var _a;\n        (_a = this._wordHighlighter) === null || _a === void 0 ? void 0 : _a.moveBack();\n    }\n    restoreViewState(state) {\n        if (this._wordHighlighter && state) {\n            this._wordHighlighter.restore();\n        }\n    }\n    dispose() {\n        if (this._wordHighlighter) {\n            this._wordHighlighter.dispose();\n            this._wordHighlighter = null;\n        }\n        super.dispose();\n    }\n};\nWordHighlighterContribution.ID = 'editor.contrib.wordHighlighter';\nWordHighlighterContribution = WordHighlighterContribution_1 = __decorate([\n    __param(1, IContextKeyService),\n    __param(2, ILanguageFeaturesService),\n    __param(3, ICodeEditorService)\n], WordHighlighterContribution);\nexport { WordHighlighterContribution };\nclass WordHighlightNavigationAction extends EditorAction {\n    constructor(next, opts) {\n        super(opts);\n        this._isNext = next;\n    }\n    run(accessor, editor) {\n        const controller = WordHighlighterContribution.get(editor);\n        if (!controller) {\n            return;\n        }\n        if (this._isNext) {\n            controller.moveNext();\n        }\n        else {\n            controller.moveBack();\n        }\n    }\n}\nclass NextWordHighlightAction extends WordHighlightNavigationAction {\n    constructor() {\n        super(true, {\n            id: 'editor.action.wordHighlight.next',\n            label: nls.localize('wordHighlight.next.label', \"Go to Next Symbol Highlight\"),\n            alias: 'Go to Next Symbol Highlight',\n            precondition: ctxHasWordHighlights,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: 65 /* KeyCode.F7 */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n}\nclass PrevWordHighlightAction extends WordHighlightNavigationAction {\n    constructor() {\n        super(false, {\n            id: 'editor.action.wordHighlight.prev',\n            label: nls.localize('wordHighlight.previous.label', \"Go to Previous Symbol Highlight\"),\n            alias: 'Go to Previous Symbol Highlight',\n            precondition: ctxHasWordHighlights,\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: 1024 /* KeyMod.Shift */ | 65 /* KeyCode.F7 */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n}\nclass TriggerWordHighlightAction extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.wordHighlight.trigger',\n            label: nls.localize('wordHighlight.trigger.label', \"Trigger Symbol Highlight\"),\n            alias: 'Trigger Symbol Highlight',\n            precondition: ctxHasWordHighlights.toNegated(),\n            kbOpts: {\n                kbExpr: EditorContextKeys.editorTextFocus,\n                primary: 0,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    run(accessor, editor, args) {\n        const controller = WordHighlighterContribution.get(editor);\n        if (!controller) {\n            return;\n        }\n        controller.restoreViewState(true);\n    }\n}\nregisterEditorContribution(WordHighlighterContribution.ID, WordHighlighterContribution, 0 /* EditorContributionInstantiation.Eager */); // eager because it uses `saveViewState`/`restoreViewState`\nregisterEditorAction(NextWordHighlightAction);\nregisterEditorAction(PrevWordHighlightAction);\nregisterEditorAction(TriggerWordHighlightAction);\n// registerEditorFeature(TextualMultiDocumentHighlightFeature);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/wordOperations/browser/wordOperations.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/wordOperations/browser/wordOperations.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { EditorAction, EditorCommand, registerEditorAction, registerEditorCommand } from '../../../browser/editorExtensions.js';\nimport { ReplaceCommand } from '../../../common/commands/replaceCommand.js';\nimport { EditorOptions } from '../../../common/config/editorOptions.js';\nimport { CursorState } from '../../../common/cursorCommon.js';\nimport { WordOperations } from '../../../common/cursor/cursorWordOperations.js';\nimport { getMapForWordSeparators } from '../../../common/core/wordCharacterClassifier.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport * as nls from '../../../../nls.js';\nimport { CONTEXT_ACCESSIBILITY_MODE_ENABLED } from '../../../../platform/accessibility/common/accessibility.js';\nimport { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IsWindowsContext } from '../../../../platform/contextkey/common/contextkeys.js';\nexport class MoveWordCommand extends EditorCommand {\n    constructor(opts) {\n        super(opts);\n        this._inSelectionMode = opts.inSelectionMode;\n        this._wordNavigationType = opts.wordNavigationType;\n    }\n    runEditorCommand(accessor, editor, args) {\n        if (!editor.hasModel()) {\n            return;\n        }\n        const wordSeparators = getMapForWordSeparators(editor.getOption(131 /* EditorOption.wordSeparators */), editor.getOption(130 /* EditorOption.wordSegmenterLocales */));\n        const model = editor.getModel();\n        const selections = editor.getSelections();\n        const result = selections.map((sel) => {\n            const inPosition = new Position(sel.positionLineNumber, sel.positionColumn);\n            const outPosition = this._move(wordSeparators, model, inPosition, this._wordNavigationType);\n            return this._moveTo(sel, outPosition, this._inSelectionMode);\n        });\n        model.pushStackElement();\n        editor._getViewModel().setCursorStates('moveWordCommand', 3 /* CursorChangeReason.Explicit */, result.map(r => CursorState.fromModelSelection(r)));\n        if (result.length === 1) {\n            const pos = new Position(result[0].positionLineNumber, result[0].positionColumn);\n            editor.revealPosition(pos, 0 /* ScrollType.Smooth */);\n        }\n    }\n    _moveTo(from, to, inSelectionMode) {\n        if (inSelectionMode) {\n            // move just position\n            return new Selection(from.selectionStartLineNumber, from.selectionStartColumn, to.lineNumber, to.column);\n        }\n        else {\n            // move everything\n            return new Selection(to.lineNumber, to.column, to.lineNumber, to.column);\n        }\n    }\n}\nexport class WordLeftCommand extends MoveWordCommand {\n    _move(wordSeparators, model, position, wordNavigationType) {\n        return WordOperations.moveWordLeft(wordSeparators, model, position, wordNavigationType);\n    }\n}\nexport class WordRightCommand extends MoveWordCommand {\n    _move(wordSeparators, model, position, wordNavigationType) {\n        return WordOperations.moveWordRight(wordSeparators, model, position, wordNavigationType);\n    }\n}\nexport class CursorWordStartLeft extends WordLeftCommand {\n    constructor() {\n        super({\n            inSelectionMode: false,\n            wordNavigationType: 0 /* WordNavigationType.WordStart */,\n            id: 'cursorWordStartLeft',\n            precondition: undefined\n        });\n    }\n}\nexport class CursorWordEndLeft extends WordLeftCommand {\n    constructor() {\n        super({\n            inSelectionMode: false,\n            wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n            id: 'cursorWordEndLeft',\n            precondition: undefined\n        });\n    }\n}\nexport class CursorWordLeft extends WordLeftCommand {\n    constructor() {\n        var _a;\n        super({\n            inSelectionMode: false,\n            wordNavigationType: 1 /* WordNavigationType.WordStartFast */,\n            id: 'cursorWordLeft',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: ContextKeyExpr.and(EditorContextKeys.textInputFocus, (_a = ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED, IsWindowsContext)) === null || _a === void 0 ? void 0 : _a.negate()),\n                primary: 2048 /* KeyMod.CtrlCmd */ | 15 /* KeyCode.LeftArrow */,\n                mac: { primary: 512 /* KeyMod.Alt */ | 15 /* KeyCode.LeftArrow */ },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n}\nexport class CursorWordStartLeftSelect extends WordLeftCommand {\n    constructor() {\n        super({\n            inSelectionMode: true,\n            wordNavigationType: 0 /* WordNavigationType.WordStart */,\n            id: 'cursorWordStartLeftSelect',\n            precondition: undefined\n        });\n    }\n}\nexport class CursorWordEndLeftSelect extends WordLeftCommand {\n    constructor() {\n        super({\n            inSelectionMode: true,\n            wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n            id: 'cursorWordEndLeftSelect',\n            precondition: undefined\n        });\n    }\n}\nexport class CursorWordLeftSelect extends WordLeftCommand {\n    constructor() {\n        var _a;\n        super({\n            inSelectionMode: true,\n            wordNavigationType: 1 /* WordNavigationType.WordStartFast */,\n            id: 'cursorWordLeftSelect',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: ContextKeyExpr.and(EditorContextKeys.textInputFocus, (_a = ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED, IsWindowsContext)) === null || _a === void 0 ? void 0 : _a.negate()),\n                primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 15 /* KeyCode.LeftArrow */,\n                mac: { primary: 512 /* KeyMod.Alt */ | 1024 /* KeyMod.Shift */ | 15 /* KeyCode.LeftArrow */ },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n}\n// Accessibility navigation commands should only be enabled on windows since they are tuned to what NVDA expects\nexport class CursorWordAccessibilityLeft extends WordLeftCommand {\n    constructor() {\n        super({\n            inSelectionMode: false,\n            wordNavigationType: 3 /* WordNavigationType.WordAccessibility */,\n            id: 'cursorWordAccessibilityLeft',\n            precondition: undefined\n        });\n    }\n    _move(wordCharacterClassifier, model, position, wordNavigationType) {\n        return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue, wordCharacterClassifier.intlSegmenterLocales), model, position, wordNavigationType);\n    }\n}\nexport class CursorWordAccessibilityLeftSelect extends WordLeftCommand {\n    constructor() {\n        super({\n            inSelectionMode: true,\n            wordNavigationType: 3 /* WordNavigationType.WordAccessibility */,\n            id: 'cursorWordAccessibilityLeftSelect',\n            precondition: undefined\n        });\n    }\n    _move(wordCharacterClassifier, model, position, wordNavigationType) {\n        return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue, wordCharacterClassifier.intlSegmenterLocales), model, position, wordNavigationType);\n    }\n}\nexport class CursorWordStartRight extends WordRightCommand {\n    constructor() {\n        super({\n            inSelectionMode: false,\n            wordNavigationType: 0 /* WordNavigationType.WordStart */,\n            id: 'cursorWordStartRight',\n            precondition: undefined\n        });\n    }\n}\nexport class CursorWordEndRight extends WordRightCommand {\n    constructor() {\n        var _a;\n        super({\n            inSelectionMode: false,\n            wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n            id: 'cursorWordEndRight',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: ContextKeyExpr.and(EditorContextKeys.textInputFocus, (_a = ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED, IsWindowsContext)) === null || _a === void 0 ? void 0 : _a.negate()),\n                primary: 2048 /* KeyMod.CtrlCmd */ | 17 /* KeyCode.RightArrow */,\n                mac: { primary: 512 /* KeyMod.Alt */ | 17 /* KeyCode.RightArrow */ },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n}\nexport class CursorWordRight extends WordRightCommand {\n    constructor() {\n        super({\n            inSelectionMode: false,\n            wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n            id: 'cursorWordRight',\n            precondition: undefined\n        });\n    }\n}\nexport class CursorWordStartRightSelect extends WordRightCommand {\n    constructor() {\n        super({\n            inSelectionMode: true,\n            wordNavigationType: 0 /* WordNavigationType.WordStart */,\n            id: 'cursorWordStartRightSelect',\n            precondition: undefined\n        });\n    }\n}\nexport class CursorWordEndRightSelect extends WordRightCommand {\n    constructor() {\n        var _a;\n        super({\n            inSelectionMode: true,\n            wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n            id: 'cursorWordEndRightSelect',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: ContextKeyExpr.and(EditorContextKeys.textInputFocus, (_a = ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED, IsWindowsContext)) === null || _a === void 0 ? void 0 : _a.negate()),\n                primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 17 /* KeyCode.RightArrow */,\n                mac: { primary: 512 /* KeyMod.Alt */ | 1024 /* KeyMod.Shift */ | 17 /* KeyCode.RightArrow */ },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n}\nexport class CursorWordRightSelect extends WordRightCommand {\n    constructor() {\n        super({\n            inSelectionMode: true,\n            wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n            id: 'cursorWordRightSelect',\n            precondition: undefined\n        });\n    }\n}\nexport class CursorWordAccessibilityRight extends WordRightCommand {\n    constructor() {\n        super({\n            inSelectionMode: false,\n            wordNavigationType: 3 /* WordNavigationType.WordAccessibility */,\n            id: 'cursorWordAccessibilityRight',\n            precondition: undefined\n        });\n    }\n    _move(wordCharacterClassifier, model, position, wordNavigationType) {\n        return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue, wordCharacterClassifier.intlSegmenterLocales), model, position, wordNavigationType);\n    }\n}\nexport class CursorWordAccessibilityRightSelect extends WordRightCommand {\n    constructor() {\n        super({\n            inSelectionMode: true,\n            wordNavigationType: 3 /* WordNavigationType.WordAccessibility */,\n            id: 'cursorWordAccessibilityRightSelect',\n            precondition: undefined\n        });\n    }\n    _move(wordCharacterClassifier, model, position, wordNavigationType) {\n        return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue, wordCharacterClassifier.intlSegmenterLocales), model, position, wordNavigationType);\n    }\n}\nexport class DeleteWordCommand extends EditorCommand {\n    constructor(opts) {\n        super(opts);\n        this._whitespaceHeuristics = opts.whitespaceHeuristics;\n        this._wordNavigationType = opts.wordNavigationType;\n    }\n    runEditorCommand(accessor, editor, args) {\n        const languageConfigurationService = accessor.get(ILanguageConfigurationService);\n        if (!editor.hasModel()) {\n            return;\n        }\n        const wordSeparators = getMapForWordSeparators(editor.getOption(131 /* EditorOption.wordSeparators */), editor.getOption(130 /* EditorOption.wordSegmenterLocales */));\n        const model = editor.getModel();\n        const selections = editor.getSelections();\n        const autoClosingBrackets = editor.getOption(6 /* EditorOption.autoClosingBrackets */);\n        const autoClosingQuotes = editor.getOption(11 /* EditorOption.autoClosingQuotes */);\n        const autoClosingPairs = languageConfigurationService.getLanguageConfiguration(model.getLanguageId()).getAutoClosingPairs();\n        const viewModel = editor._getViewModel();\n        const commands = selections.map((sel) => {\n            const deleteRange = this._delete({\n                wordSeparators,\n                model,\n                selection: sel,\n                whitespaceHeuristics: this._whitespaceHeuristics,\n                autoClosingDelete: editor.getOption(9 /* EditorOption.autoClosingDelete */),\n                autoClosingBrackets,\n                autoClosingQuotes,\n                autoClosingPairs,\n                autoClosedCharacters: viewModel.getCursorAutoClosedCharacters(),\n            }, this._wordNavigationType);\n            return new ReplaceCommand(deleteRange, '');\n        });\n        editor.pushUndoStop();\n        editor.executeCommands(this.id, commands);\n        editor.pushUndoStop();\n    }\n}\nexport class DeleteWordLeftCommand extends DeleteWordCommand {\n    _delete(ctx, wordNavigationType) {\n        const r = WordOperations.deleteWordLeft(ctx, wordNavigationType);\n        if (r) {\n            return r;\n        }\n        return new Range(1, 1, 1, 1);\n    }\n}\nexport class DeleteWordRightCommand extends DeleteWordCommand {\n    _delete(ctx, wordNavigationType) {\n        const r = WordOperations.deleteWordRight(ctx, wordNavigationType);\n        if (r) {\n            return r;\n        }\n        const lineCount = ctx.model.getLineCount();\n        const maxColumn = ctx.model.getLineMaxColumn(lineCount);\n        return new Range(lineCount, maxColumn, lineCount, maxColumn);\n    }\n}\nexport class DeleteWordStartLeft extends DeleteWordLeftCommand {\n    constructor() {\n        super({\n            whitespaceHeuristics: false,\n            wordNavigationType: 0 /* WordNavigationType.WordStart */,\n            id: 'deleteWordStartLeft',\n            precondition: EditorContextKeys.writable\n        });\n    }\n}\nexport class DeleteWordEndLeft extends DeleteWordLeftCommand {\n    constructor() {\n        super({\n            whitespaceHeuristics: false,\n            wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n            id: 'deleteWordEndLeft',\n            precondition: EditorContextKeys.writable\n        });\n    }\n}\nexport class DeleteWordLeft extends DeleteWordLeftCommand {\n    constructor() {\n        super({\n            whitespaceHeuristics: true,\n            wordNavigationType: 0 /* WordNavigationType.WordStart */,\n            id: 'deleteWordLeft',\n            precondition: EditorContextKeys.writable,\n            kbOpts: {\n                kbExpr: EditorContextKeys.textInputFocus,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 1 /* KeyCode.Backspace */,\n                mac: { primary: 512 /* KeyMod.Alt */ | 1 /* KeyCode.Backspace */ },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n}\nexport class DeleteWordStartRight extends DeleteWordRightCommand {\n    constructor() {\n        super({\n            whitespaceHeuristics: false,\n            wordNavigationType: 0 /* WordNavigationType.WordStart */,\n            id: 'deleteWordStartRight',\n            precondition: EditorContextKeys.writable\n        });\n    }\n}\nexport class DeleteWordEndRight extends DeleteWordRightCommand {\n    constructor() {\n        super({\n            whitespaceHeuristics: false,\n            wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n            id: 'deleteWordEndRight',\n            precondition: EditorContextKeys.writable\n        });\n    }\n}\nexport class DeleteWordRight extends DeleteWordRightCommand {\n    constructor() {\n        super({\n            whitespaceHeuristics: true,\n            wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n            id: 'deleteWordRight',\n            precondition: EditorContextKeys.writable,\n            kbOpts: {\n                kbExpr: EditorContextKeys.textInputFocus,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 20 /* KeyCode.Delete */,\n                mac: { primary: 512 /* KeyMod.Alt */ | 20 /* KeyCode.Delete */ },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n}\nexport class DeleteInsideWord extends EditorAction {\n    constructor() {\n        super({\n            id: 'deleteInsideWord',\n            precondition: EditorContextKeys.writable,\n            label: nls.localize('deleteInsideWord', \"Delete Word\"),\n            alias: 'Delete Word'\n        });\n    }\n    run(accessor, editor, args) {\n        if (!editor.hasModel()) {\n            return;\n        }\n        const wordSeparators = getMapForWordSeparators(editor.getOption(131 /* EditorOption.wordSeparators */), editor.getOption(130 /* EditorOption.wordSegmenterLocales */));\n        const model = editor.getModel();\n        const selections = editor.getSelections();\n        const commands = selections.map((sel) => {\n            const deleteRange = WordOperations.deleteInsideWord(wordSeparators, model, sel);\n            return new ReplaceCommand(deleteRange, '');\n        });\n        editor.pushUndoStop();\n        editor.executeCommands(this.id, commands);\n        editor.pushUndoStop();\n    }\n}\nregisterEditorCommand(new CursorWordStartLeft());\nregisterEditorCommand(new CursorWordEndLeft());\nregisterEditorCommand(new CursorWordLeft());\nregisterEditorCommand(new CursorWordStartLeftSelect());\nregisterEditorCommand(new CursorWordEndLeftSelect());\nregisterEditorCommand(new CursorWordLeftSelect());\nregisterEditorCommand(new CursorWordStartRight());\nregisterEditorCommand(new CursorWordEndRight());\nregisterEditorCommand(new CursorWordRight());\nregisterEditorCommand(new CursorWordStartRightSelect());\nregisterEditorCommand(new CursorWordEndRightSelect());\nregisterEditorCommand(new CursorWordRightSelect());\nregisterEditorCommand(new CursorWordAccessibilityLeft());\nregisterEditorCommand(new CursorWordAccessibilityLeftSelect());\nregisterEditorCommand(new CursorWordAccessibilityRight());\nregisterEditorCommand(new CursorWordAccessibilityRightSelect());\nregisterEditorCommand(new DeleteWordStartLeft());\nregisterEditorCommand(new DeleteWordEndLeft());\nregisterEditorCommand(new DeleteWordLeft());\nregisterEditorCommand(new DeleteWordStartRight());\nregisterEditorCommand(new DeleteWordEndRight());\nregisterEditorCommand(new DeleteWordRight());\nregisterEditorAction(DeleteInsideWord);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/wordPartOperations/browser/wordPartOperations.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/wordPartOperations/browser/wordPartOperations.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { registerEditorCommand } from '../../../browser/editorExtensions.js';\nimport { WordPartOperations } from '../../../common/cursor/cursorWordOperations.js';\nimport { Range } from '../../../common/core/range.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { DeleteWordCommand, MoveWordCommand } from '../../wordOperations/browser/wordOperations.js';\nimport { CommandsRegistry } from '../../../../platform/commands/common/commands.js';\nexport class DeleteWordPartLeft extends DeleteWordCommand {\n    constructor() {\n        super({\n            whitespaceHeuristics: true,\n            wordNavigationType: 0 /* WordNavigationType.WordStart */,\n            id: 'deleteWordPartLeft',\n            precondition: EditorContextKeys.writable,\n            kbOpts: {\n                kbExpr: EditorContextKeys.textInputFocus,\n                primary: 0,\n                mac: { primary: 256 /* KeyMod.WinCtrl */ | 512 /* KeyMod.Alt */ | 1 /* KeyCode.Backspace */ },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    _delete(ctx, wordNavigationType) {\n        const r = WordPartOperations.deleteWordPartLeft(ctx);\n        if (r) {\n            return r;\n        }\n        return new Range(1, 1, 1, 1);\n    }\n}\nexport class DeleteWordPartRight extends DeleteWordCommand {\n    constructor() {\n        super({\n            whitespaceHeuristics: true,\n            wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n            id: 'deleteWordPartRight',\n            precondition: EditorContextKeys.writable,\n            kbOpts: {\n                kbExpr: EditorContextKeys.textInputFocus,\n                primary: 0,\n                mac: { primary: 256 /* KeyMod.WinCtrl */ | 512 /* KeyMod.Alt */ | 20 /* KeyCode.Delete */ },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    _delete(ctx, wordNavigationType) {\n        const r = WordPartOperations.deleteWordPartRight(ctx);\n        if (r) {\n            return r;\n        }\n        const lineCount = ctx.model.getLineCount();\n        const maxColumn = ctx.model.getLineMaxColumn(lineCount);\n        return new Range(lineCount, maxColumn, lineCount, maxColumn);\n    }\n}\nexport class WordPartLeftCommand extends MoveWordCommand {\n    _move(wordSeparators, model, position, wordNavigationType) {\n        return WordPartOperations.moveWordPartLeft(wordSeparators, model, position);\n    }\n}\nexport class CursorWordPartLeft extends WordPartLeftCommand {\n    constructor() {\n        super({\n            inSelectionMode: false,\n            wordNavigationType: 0 /* WordNavigationType.WordStart */,\n            id: 'cursorWordPartLeft',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: EditorContextKeys.textInputFocus,\n                primary: 0,\n                mac: { primary: 256 /* KeyMod.WinCtrl */ | 512 /* KeyMod.Alt */ | 15 /* KeyCode.LeftArrow */ },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n}\n// Register previous id for compatibility purposes\nCommandsRegistry.registerCommandAlias('cursorWordPartStartLeft', 'cursorWordPartLeft');\nexport class CursorWordPartLeftSelect extends WordPartLeftCommand {\n    constructor() {\n        super({\n            inSelectionMode: true,\n            wordNavigationType: 0 /* WordNavigationType.WordStart */,\n            id: 'cursorWordPartLeftSelect',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: EditorContextKeys.textInputFocus,\n                primary: 0,\n                mac: { primary: 256 /* KeyMod.WinCtrl */ | 512 /* KeyMod.Alt */ | 1024 /* KeyMod.Shift */ | 15 /* KeyCode.LeftArrow */ },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n}\n// Register previous id for compatibility purposes\nCommandsRegistry.registerCommandAlias('cursorWordPartStartLeftSelect', 'cursorWordPartLeftSelect');\nexport class WordPartRightCommand extends MoveWordCommand {\n    _move(wordSeparators, model, position, wordNavigationType) {\n        return WordPartOperations.moveWordPartRight(wordSeparators, model, position);\n    }\n}\nexport class CursorWordPartRight extends WordPartRightCommand {\n    constructor() {\n        super({\n            inSelectionMode: false,\n            wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n            id: 'cursorWordPartRight',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: EditorContextKeys.textInputFocus,\n                primary: 0,\n                mac: { primary: 256 /* KeyMod.WinCtrl */ | 512 /* KeyMod.Alt */ | 17 /* KeyCode.RightArrow */ },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n}\nexport class CursorWordPartRightSelect extends WordPartRightCommand {\n    constructor() {\n        super({\n            inSelectionMode: true,\n            wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n            id: 'cursorWordPartRightSelect',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: EditorContextKeys.textInputFocus,\n                primary: 0,\n                mac: { primary: 256 /* KeyMod.WinCtrl */ | 512 /* KeyMod.Alt */ | 1024 /* KeyMod.Shift */ | 17 /* KeyCode.RightArrow */ },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n}\nregisterEditorCommand(new DeleteWordPartLeft());\nregisterEditorCommand(new DeleteWordPartRight());\nregisterEditorCommand(new CursorWordPartLeft());\nregisterEditorCommand(new CursorWordPartLeftSelect());\nregisterEditorCommand(new CursorWordPartRight());\nregisterEditorCommand(new CursorWordPartRightSelect());\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/zoneWidget/browser/zoneWidget.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n.monaco-editor .zone-widget {\n\tposition: absolute;\n\tz-index: 10;\n}\n\n\n.monaco-editor .zone-widget .zone-widget-container {\n\tborder-top-style: solid;\n\tborder-bottom-style: solid;\n\tborder-top-width: 0;\n\tborder-bottom-width: 0;\n\tposition: relative;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/contrib/zoneWidget/browser/zoneWidget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../../../base/browser/dom.js';\nimport { Sash } from '../../../../base/browser/ui/sash/sash.js';\nimport { Color, RGBA } from '../../../../base/common/color.js';\nimport { IdGenerator } from '../../../../base/common/idGenerator.js';\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport * as objects from '../../../../base/common/objects.js';\nimport './zoneWidget.css';\nimport { Range } from '../../../common/core/range.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nconst defaultColor = new Color(new RGBA(0, 122, 204));\nconst defaultOptions = {\n    showArrow: true,\n    showFrame: true,\n    className: '',\n    frameColor: defaultColor,\n    arrowColor: defaultColor,\n    keepEditorSelection: false\n};\nconst WIDGET_ID = 'vs.editor.contrib.zoneWidget';\nclass ViewZoneDelegate {\n    constructor(domNode, afterLineNumber, afterColumn, heightInLines, onDomNodeTop, onComputedHeight, showInHiddenAreas, ordinal) {\n        this.id = ''; // A valid zone id should be greater than 0\n        this.domNode = domNode;\n        this.afterLineNumber = afterLineNumber;\n        this.afterColumn = afterColumn;\n        this.heightInLines = heightInLines;\n        this.showInHiddenAreas = showInHiddenAreas;\n        this.ordinal = ordinal;\n        this._onDomNodeTop = onDomNodeTop;\n        this._onComputedHeight = onComputedHeight;\n    }\n    onDomNodeTop(top) {\n        this._onDomNodeTop(top);\n    }\n    onComputedHeight(height) {\n        this._onComputedHeight(height);\n    }\n}\nexport class OverlayWidgetDelegate {\n    constructor(id, domNode) {\n        this._id = id;\n        this._domNode = domNode;\n    }\n    getId() {\n        return this._id;\n    }\n    getDomNode() {\n        return this._domNode;\n    }\n    getPosition() {\n        return null;\n    }\n}\nclass Arrow {\n    constructor(_editor) {\n        this._editor = _editor;\n        this._ruleName = Arrow._IdGenerator.nextId();\n        this._decorations = this._editor.createDecorationsCollection();\n        this._color = null;\n        this._height = -1;\n    }\n    dispose() {\n        this.hide();\n        dom.removeCSSRulesContainingSelector(this._ruleName);\n    }\n    set color(value) {\n        if (this._color !== value) {\n            this._color = value;\n            this._updateStyle();\n        }\n    }\n    set height(value) {\n        if (this._height !== value) {\n            this._height = value;\n            this._updateStyle();\n        }\n    }\n    _updateStyle() {\n        dom.removeCSSRulesContainingSelector(this._ruleName);\n        dom.createCSSRule(`.monaco-editor ${this._ruleName}`, `border-style: solid; border-color: transparent; border-bottom-color: ${this._color}; border-width: ${this._height}px; bottom: -${this._height}px !important; margin-left: -${this._height}px; `);\n    }\n    show(where) {\n        if (where.column === 1) {\n            // the arrow isn't pretty at column 1 and we need to push it out a little\n            where = { lineNumber: where.lineNumber, column: 2 };\n        }\n        this._decorations.set([{\n                range: Range.fromPositions(where),\n                options: {\n                    description: 'zone-widget-arrow',\n                    className: this._ruleName,\n                    stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */\n                }\n            }]);\n    }\n    hide() {\n        this._decorations.clear();\n    }\n}\nArrow._IdGenerator = new IdGenerator('.arrow-decoration-');\nexport class ZoneWidget {\n    constructor(editor, options = {}) {\n        this._arrow = null;\n        this._overlayWidget = null;\n        this._resizeSash = null;\n        this._viewZone = null;\n        this._disposables = new DisposableStore();\n        this.container = null;\n        this._isShowing = false;\n        this.editor = editor;\n        this._positionMarkerId = this.editor.createDecorationsCollection();\n        this.options = objects.deepClone(options);\n        objects.mixin(this.options, defaultOptions, false);\n        this.domNode = document.createElement('div');\n        if (!this.options.isAccessible) {\n            this.domNode.setAttribute('aria-hidden', 'true');\n            this.domNode.setAttribute('role', 'presentation');\n        }\n        this._disposables.add(this.editor.onDidLayoutChange((info) => {\n            const width = this._getWidth(info);\n            this.domNode.style.width = width + 'px';\n            this.domNode.style.left = this._getLeft(info) + 'px';\n            this._onWidth(width);\n        }));\n    }\n    dispose() {\n        if (this._overlayWidget) {\n            this.editor.removeOverlayWidget(this._overlayWidget);\n            this._overlayWidget = null;\n        }\n        if (this._viewZone) {\n            this.editor.changeViewZones(accessor => {\n                if (this._viewZone) {\n                    accessor.removeZone(this._viewZone.id);\n                }\n                this._viewZone = null;\n            });\n        }\n        this._positionMarkerId.clear();\n        this._disposables.dispose();\n    }\n    create() {\n        this.domNode.classList.add('zone-widget');\n        if (this.options.className) {\n            this.domNode.classList.add(this.options.className);\n        }\n        this.container = document.createElement('div');\n        this.container.classList.add('zone-widget-container');\n        this.domNode.appendChild(this.container);\n        if (this.options.showArrow) {\n            this._arrow = new Arrow(this.editor);\n            this._disposables.add(this._arrow);\n        }\n        this._fillContainer(this.container);\n        this._initSash();\n        this._applyStyles();\n    }\n    style(styles) {\n        if (styles.frameColor) {\n            this.options.frameColor = styles.frameColor;\n        }\n        if (styles.arrowColor) {\n            this.options.arrowColor = styles.arrowColor;\n        }\n        this._applyStyles();\n    }\n    _applyStyles() {\n        if (this.container && this.options.frameColor) {\n            const frameColor = this.options.frameColor.toString();\n            this.container.style.borderTopColor = frameColor;\n            this.container.style.borderBottomColor = frameColor;\n        }\n        if (this._arrow && this.options.arrowColor) {\n            const arrowColor = this.options.arrowColor.toString();\n            this._arrow.color = arrowColor;\n        }\n    }\n    _getWidth(info) {\n        return info.width - info.minimap.minimapWidth - info.verticalScrollbarWidth;\n    }\n    _getLeft(info) {\n        // If minimap is to the left, we move beyond it\n        if (info.minimap.minimapWidth > 0 && info.minimap.minimapLeft === 0) {\n            return info.minimap.minimapWidth;\n        }\n        return 0;\n    }\n    _onViewZoneTop(top) {\n        this.domNode.style.top = top + 'px';\n    }\n    _onViewZoneHeight(height) {\n        var _a;\n        this.domNode.style.height = `${height}px`;\n        if (this.container) {\n            const containerHeight = height - this._decoratingElementsHeight();\n            this.container.style.height = `${containerHeight}px`;\n            const layoutInfo = this.editor.getLayoutInfo();\n            this._doLayout(containerHeight, this._getWidth(layoutInfo));\n        }\n        (_a = this._resizeSash) === null || _a === void 0 ? void 0 : _a.layout();\n    }\n    get position() {\n        const range = this._positionMarkerId.getRange(0);\n        if (!range) {\n            return undefined;\n        }\n        return range.getStartPosition();\n    }\n    show(rangeOrPos, heightInLines) {\n        const range = Range.isIRange(rangeOrPos) ? Range.lift(rangeOrPos) : Range.fromPositions(rangeOrPos);\n        this._isShowing = true;\n        this._showImpl(range, heightInLines);\n        this._isShowing = false;\n        this._positionMarkerId.set([{ range, options: ModelDecorationOptions.EMPTY }]);\n    }\n    hide() {\n        var _a;\n        if (this._viewZone) {\n            this.editor.changeViewZones(accessor => {\n                if (this._viewZone) {\n                    accessor.removeZone(this._viewZone.id);\n                }\n            });\n            this._viewZone = null;\n        }\n        if (this._overlayWidget) {\n            this.editor.removeOverlayWidget(this._overlayWidget);\n            this._overlayWidget = null;\n        }\n        (_a = this._arrow) === null || _a === void 0 ? void 0 : _a.hide();\n        this._positionMarkerId.clear();\n    }\n    _decoratingElementsHeight() {\n        const lineHeight = this.editor.getOption(67 /* EditorOption.lineHeight */);\n        let result = 0;\n        if (this.options.showArrow) {\n            const arrowHeight = Math.round(lineHeight / 3);\n            result += 2 * arrowHeight;\n        }\n        if (this.options.showFrame) {\n            const frameThickness = Math.round(lineHeight / 9);\n            result += 2 * frameThickness;\n        }\n        return result;\n    }\n    _showImpl(where, heightInLines) {\n        const position = where.getStartPosition();\n        const layoutInfo = this.editor.getLayoutInfo();\n        const width = this._getWidth(layoutInfo);\n        this.domNode.style.width = `${width}px`;\n        this.domNode.style.left = this._getLeft(layoutInfo) + 'px';\n        // Render the widget as zone (rendering) and widget (lifecycle)\n        const viewZoneDomNode = document.createElement('div');\n        viewZoneDomNode.style.overflow = 'hidden';\n        const lineHeight = this.editor.getOption(67 /* EditorOption.lineHeight */);\n        // adjust heightInLines to viewport\n        if (!this.options.allowUnlimitedHeight) {\n            const maxHeightInLines = Math.max(12, (this.editor.getLayoutInfo().height / lineHeight) * 0.8);\n            heightInLines = Math.min(heightInLines, maxHeightInLines);\n        }\n        let arrowHeight = 0;\n        let frameThickness = 0;\n        // Render the arrow one 1/3 of an editor line height\n        if (this._arrow && this.options.showArrow) {\n            arrowHeight = Math.round(lineHeight / 3);\n            this._arrow.height = arrowHeight;\n            this._arrow.show(position);\n        }\n        // Render the frame as 1/9 of an editor line height\n        if (this.options.showFrame) {\n            frameThickness = Math.round(lineHeight / 9);\n        }\n        // insert zone widget\n        this.editor.changeViewZones((accessor) => {\n            if (this._viewZone) {\n                accessor.removeZone(this._viewZone.id);\n            }\n            if (this._overlayWidget) {\n                this.editor.removeOverlayWidget(this._overlayWidget);\n                this._overlayWidget = null;\n            }\n            this.domNode.style.top = '-1000px';\n            this._viewZone = new ViewZoneDelegate(viewZoneDomNode, position.lineNumber, position.column, heightInLines, (top) => this._onViewZoneTop(top), (height) => this._onViewZoneHeight(height), this.options.showInHiddenAreas, this.options.ordinal);\n            this._viewZone.id = accessor.addZone(this._viewZone);\n            this._overlayWidget = new OverlayWidgetDelegate(WIDGET_ID + this._viewZone.id, this.domNode);\n            this.editor.addOverlayWidget(this._overlayWidget);\n        });\n        if (this.container && this.options.showFrame) {\n            const width = this.options.frameWidth ? this.options.frameWidth : frameThickness;\n            this.container.style.borderTopWidth = width + 'px';\n            this.container.style.borderBottomWidth = width + 'px';\n        }\n        const containerHeight = heightInLines * lineHeight - this._decoratingElementsHeight();\n        if (this.container) {\n            this.container.style.top = arrowHeight + 'px';\n            this.container.style.height = containerHeight + 'px';\n            this.container.style.overflow = 'hidden';\n        }\n        this._doLayout(containerHeight, width);\n        if (!this.options.keepEditorSelection) {\n            this.editor.setSelection(where);\n        }\n        const model = this.editor.getModel();\n        if (model) {\n            const range = model.validateRange(new Range(where.startLineNumber, 1, where.endLineNumber + 1, 1));\n            this.revealRange(range, range.startLineNumber === model.getLineCount());\n        }\n    }\n    revealRange(range, isLastLine) {\n        if (isLastLine) {\n            this.editor.revealLineNearTop(range.endLineNumber, 0 /* ScrollType.Smooth */);\n        }\n        else {\n            this.editor.revealRange(range, 0 /* ScrollType.Smooth */);\n        }\n    }\n    setCssClass(className, classToReplace) {\n        if (!this.container) {\n            return;\n        }\n        if (classToReplace) {\n            this.container.classList.remove(classToReplace);\n        }\n        this.container.classList.add(className);\n    }\n    _onWidth(widthInPixel) {\n        // implement in subclass\n    }\n    _doLayout(heightInPixel, widthInPixel) {\n        // implement in subclass\n    }\n    _relayout(newHeightInLines) {\n        if (this._viewZone && this._viewZone.heightInLines !== newHeightInLines) {\n            this.editor.changeViewZones(accessor => {\n                if (this._viewZone) {\n                    this._viewZone.heightInLines = newHeightInLines;\n                    accessor.layoutZone(this._viewZone.id);\n                }\n            });\n        }\n    }\n    // --- sash\n    _initSash() {\n        if (this._resizeSash) {\n            return;\n        }\n        this._resizeSash = this._disposables.add(new Sash(this.domNode, this, { orientation: 1 /* Orientation.HORIZONTAL */ }));\n        if (!this.options.isResizeable) {\n            this._resizeSash.state = 0 /* SashState.Disabled */;\n        }\n        let data;\n        this._disposables.add(this._resizeSash.onDidStart((e) => {\n            if (this._viewZone) {\n                data = {\n                    startY: e.startY,\n                    heightInLines: this._viewZone.heightInLines,\n                };\n            }\n        }));\n        this._disposables.add(this._resizeSash.onDidEnd(() => {\n            data = undefined;\n        }));\n        this._disposables.add(this._resizeSash.onDidChange((evt) => {\n            if (data) {\n                const lineDelta = (evt.currentY - data.startY) / this.editor.getOption(67 /* EditorOption.lineHeight */);\n                const roundedLineDelta = lineDelta < 0 ? Math.ceil(lineDelta) : Math.floor(lineDelta);\n                const newHeightInLines = data.heightInLines + roundedLineDelta;\n                if (newHeightInLines > 5 && newHeightInLines < 35) {\n                    this._relayout(newHeightInLines);\n                }\n            }\n        }));\n    }\n    getHorizontalSashLeft() {\n        return 0;\n    }\n    getHorizontalSashTop() {\n        return (this.domNode.style.height === null ? 0 : parseInt(this.domNode.style.height)) - (this._decoratingElementsHeight() / 2);\n    }\n    getHorizontalSashWidth() {\n        const layoutInfo = this.editor.getLayoutInfo();\n        return layoutInfo.width - layoutInfo.minimap.minimapWidth;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/edcore.main.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './editor.all.js';\nimport './standalone/browser/iPadShowKeyboard/iPadShowKeyboard.js';\nimport './standalone/browser/inspectTokens/inspectTokens.js';\nimport './standalone/browser/quickAccess/standaloneHelpQuickAccess.js';\nimport './standalone/browser/quickAccess/standaloneGotoLineQuickAccess.js';\nimport './standalone/browser/quickAccess/standaloneGotoSymbolQuickAccess.js';\nimport './standalone/browser/quickAccess/standaloneCommandsQuickAccess.js';\nimport './standalone/browser/referenceSearch/standaloneReferenceSearch.js';\nimport './standalone/browser/toggleHighContrast/toggleHighContrast.js';\nexport * from './editor.api.js';\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/editor.all.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './browser/coreCommands.js';\nimport './browser/widget/codeEditor/codeEditorWidget.js';\nimport './browser/widget/diffEditor/diffEditor.contribution.js';\nimport './contrib/anchorSelect/browser/anchorSelect.js';\nimport './contrib/bracketMatching/browser/bracketMatching.js';\nimport './contrib/caretOperations/browser/caretOperations.js';\nimport './contrib/caretOperations/browser/transpose.js';\nimport './contrib/clipboard/browser/clipboard.js';\nimport './contrib/codeAction/browser/codeActionContributions.js';\nimport './contrib/codelens/browser/codelensController.js';\nimport './contrib/colorPicker/browser/colorContributions.js';\nimport './contrib/colorPicker/browser/standaloneColorPickerActions.js';\nimport './contrib/comment/browser/comment.js';\nimport './contrib/contextmenu/browser/contextmenu.js';\nimport './contrib/cursorUndo/browser/cursorUndo.js';\nimport './contrib/dnd/browser/dnd.js';\nimport './contrib/dropOrPasteInto/browser/copyPasteContribution.js';\nimport './contrib/dropOrPasteInto/browser/dropIntoEditorContribution.js';\nimport './contrib/find/browser/findController.js';\nimport './contrib/folding/browser/folding.js';\nimport './contrib/fontZoom/browser/fontZoom.js';\nimport './contrib/format/browser/formatActions.js';\nimport './contrib/documentSymbols/browser/documentSymbols.js';\nimport './contrib/inlineCompletions/browser/inlineCompletions.contribution.js';\nimport './contrib/inlineProgress/browser/inlineProgress.js';\nimport './contrib/gotoSymbol/browser/goToCommands.js';\nimport './contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js';\nimport './contrib/gotoError/browser/gotoError.js';\nimport './contrib/hover/browser/hoverContribution.js';\nimport './contrib/indentation/browser/indentation.js';\nimport './contrib/inlayHints/browser/inlayHintsContribution.js';\nimport './contrib/inPlaceReplace/browser/inPlaceReplace.js';\nimport './contrib/lineSelection/browser/lineSelection.js';\nimport './contrib/linesOperations/browser/linesOperations.js';\nimport './contrib/linkedEditing/browser/linkedEditing.js';\nimport './contrib/links/browser/links.js';\nimport './contrib/longLinesHelper/browser/longLinesHelper.js';\nimport './contrib/multicursor/browser/multicursor.js';\nimport './contrib/inlineEdit/browser/inlineEdit.contribution.js';\nimport './contrib/parameterHints/browser/parameterHints.js';\nimport './contrib/rename/browser/rename.js';\nimport './contrib/sectionHeaders/browser/sectionHeaders.js';\nimport './contrib/semanticTokens/browser/documentSemanticTokens.js';\nimport './contrib/semanticTokens/browser/viewportSemanticTokens.js';\nimport './contrib/smartSelect/browser/smartSelect.js';\nimport './contrib/snippet/browser/snippetController2.js';\nimport './contrib/stickyScroll/browser/stickyScrollContribution.js';\nimport './contrib/suggest/browser/suggestController.js';\nimport './contrib/suggest/browser/suggestInlineCompletions.js';\nimport './contrib/tokenization/browser/tokenization.js';\nimport './contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js';\nimport './contrib/unicodeHighlighter/browser/unicodeHighlighter.js';\nimport './contrib/unusualLineTerminators/browser/unusualLineTerminators.js';\nimport './contrib/wordHighlighter/browser/wordHighlighter.js';\nimport './contrib/wordOperations/browser/wordOperations.js';\nimport './contrib/wordPartOperations/browser/wordPartOperations.js';\nimport './contrib/readOnlyMessage/browser/contribution.js';\nimport './contrib/diffEditorBreadcrumbs/browser/contribution.js';\n// Load up these strings even in VSCode, even if they are not used\n// in order to get them translated\nimport './common/standaloneStrings.js';\nimport '../base/browser/ui/codicons/codiconStyles.js'; // The codicons are defined here and must be loaded\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/editor.api.d.ts",
    "content": "/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Type definitions for monaco-editor\n * Released under the MIT license\n*-----------------------------------------------------------*/\n/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\ndeclare global {\n    let MonacoEnvironment: Environment | undefined;\n\n    interface Window {\n        MonacoEnvironment?: Environment | undefined;\n    }\n}\n\ninterface Window {\n    MonacoEnvironment?: Environment | undefined;\n}\n\nexport type Thenable<T> = PromiseLike<T>;\n\nexport interface Environment {\n    /**\n     * Define a global `monaco` symbol.\n     * This is true by default in AMD and false by default in ESM.\n     */\n    globalAPI?: boolean;\n    /**\n     * The base url where the editor sources are found (which contains the vs folder)\n     */\n    baseUrl?: string;\n    /**\n     * A web worker factory.\n     * NOTE: If `getWorker` is defined, `getWorkerUrl` is not invoked.\n     */\n    getWorker?(workerId: string, label: string): Promise<Worker> | Worker;\n    /**\n     * Return the location for web worker scripts.\n     * NOTE: If `getWorker` is defined, `getWorkerUrl` is not invoked.\n     */\n    getWorkerUrl?(workerId: string, label: string): string;\n    /**\n     * Create a trusted types policy (same API as window.trustedTypes.createPolicy)\n     */\n    createTrustedTypesPolicy?(\n        policyName: string,\n        policyOptions?: ITrustedTypePolicyOptions,\n    ): undefined | ITrustedTypePolicy;\n}\n\nexport interface ITrustedTypePolicyOptions {\n    createHTML?: (input: string, ...arguments: any[]) => string;\n    createScript?: (input: string, ...arguments: any[]) => string;\n    createScriptURL?: (input: string, ...arguments: any[]) => string;\n}\n\nexport interface ITrustedTypePolicy {\n    readonly name: string;\n    createHTML?(input: string): any;\n    createScript?(input: string): any;\n    createScriptURL?(input: string): any;\n}\n\nexport interface IDisposable {\n    dispose(): void;\n}\n\nexport interface IEvent<T> {\n    (listener: (e: T) => any, thisArg?: any): IDisposable;\n}\n\n/**\n * A helper that allows to emit and listen to typed events\n */\nexport class Emitter<T> {\n    constructor();\n    readonly event: IEvent<T>;\n    fire(event: T): void;\n    dispose(): void;\n}\n\nexport enum MarkerTag {\n    Unnecessary = 1,\n    Deprecated = 2\n}\n\nexport enum MarkerSeverity {\n    Hint = 1,\n    Info = 2,\n    Warning = 4,\n    Error = 8\n}\n\nexport class CancellationTokenSource {\n    constructor(parent?: CancellationToken);\n    get token(): CancellationToken;\n    cancel(): void;\n    dispose(cancel?: boolean): void;\n}\n\nexport interface CancellationToken {\n    /**\n     * A flag signalling is cancellation has been requested.\n     */\n    readonly isCancellationRequested: boolean;\n    /**\n     * An event which fires when cancellation is requested. This event\n     * only ever fires `once` as cancellation can only happen once. Listeners\n     * that are registered after cancellation will be called (next event loop run),\n     * but also only once.\n     *\n     * @event\n     */\n    readonly onCancellationRequested: (listener: (e: any) => any, thisArgs?: any, disposables?: IDisposable[]) => IDisposable;\n}\n/**\n * Uniform Resource Identifier (Uri) http://tools.ietf.org/html/rfc3986.\n * This class is a simple parser which creates the basic component parts\n * (http://tools.ietf.org/html/rfc3986#section-3) with minimal validation\n * and encoding.\n *\n * ```txt\n *       foo://example.com:8042/over/there?name=ferret#nose\n *       \\_/   \\______________/\\_________/ \\_________/ \\__/\n *        |           |            |            |        |\n *     scheme     authority       path        query   fragment\n *        |   _____________________|__\n *       / \\ /                        \\\n *       urn:example:animal:ferret:nose\n * ```\n */\nexport class Uri implements UriComponents {\n    static isUri(thing: any): thing is Uri;\n    /**\n     * scheme is the 'http' part of 'http://www.example.com/some/path?query#fragment'.\n     * The part before the first colon.\n     */\n    readonly scheme: string;\n    /**\n     * authority is the 'www.example.com' part of 'http://www.example.com/some/path?query#fragment'.\n     * The part between the first double slashes and the next slash.\n     */\n    readonly authority: string;\n    /**\n     * path is the '/some/path' part of 'http://www.example.com/some/path?query#fragment'.\n     */\n    readonly path: string;\n    /**\n     * query is the 'query' part of 'http://www.example.com/some/path?query#fragment'.\n     */\n    readonly query: string;\n    /**\n     * fragment is the 'fragment' part of 'http://www.example.com/some/path?query#fragment'.\n     */\n    readonly fragment: string;\n    /**\n     * Returns a string representing the corresponding file system path of this Uri.\n     * Will handle UNC paths, normalizes windows drive letters to lower-case, and uses the\n     * platform specific path separator.\n     *\n     * * Will *not* validate the path for invalid characters and semantics.\n     * * Will *not* look at the scheme of this Uri.\n     * * The result shall *not* be used for display purposes but for accessing a file on disk.\n     *\n     *\n     * The *difference* to `Uri#path` is the use of the platform specific separator and the handling\n     * of UNC paths. See the below sample of a file-uri with an authority (UNC path).\n     *\n     * ```ts\n        const u = Uri.parse('file://server/c$/folder/file.txt')\n        u.authority === 'server'\n        u.path === '/shares/c$/file.txt'\n        u.fsPath === '\\\\server\\c$\\folder\\file.txt'\n    ```\n     *\n     * Using `Uri#path` to read a file (using fs-apis) would not be enough because parts of the path,\n     * namely the server name, would be missing. Therefore `Uri#fsPath` exists - it's sugar to ease working\n     * with URIs that represent files on disk (`file` scheme).\n     */\n    get fsPath(): string;\n    with(change: {\n        scheme?: string;\n        authority?: string | null;\n        path?: string | null;\n        query?: string | null;\n        fragment?: string | null;\n    }): Uri;\n    /**\n     * Creates a new Uri from a string, e.g. `http://www.example.com/some/path`,\n     * `file:///usr/home`, or `scheme:with/path`.\n     *\n     * @param value A string which represents an Uri (see `Uri#toString`).\n     */\n    static parse(value: string, _strict?: boolean): Uri;\n    /**\n     * Creates a new Uri from a file system path, e.g. `c:\\my\\files`,\n     * `/usr/home`, or `\\\\server\\share\\some\\path`.\n     *\n     * The *difference* between `Uri#parse` and `Uri#file` is that the latter treats the argument\n     * as path, not as stringified-uri. E.g. `Uri.file(path)` is **not the same as**\n     * `Uri.parse('file://' + path)` because the path might contain characters that are\n     * interpreted (# and ?). See the following sample:\n     * ```ts\n    const good = Uri.file('/coding/c#/project1');\n    good.scheme === 'file';\n    good.path === '/coding/c#/project1';\n    good.fragment === '';\n    const bad = Uri.parse('file://' + '/coding/c#/project1');\n    bad.scheme === 'file';\n    bad.path === '/coding/c'; // path is now broken\n    bad.fragment === '/project1';\n    ```\n     *\n     * @param path A file system path (see `Uri#fsPath`)\n     */\n    static file(path: string): Uri;\n    /**\n     * Creates new Uri from uri components.\n     *\n     * Unless `strict` is `true` the scheme is defaults to be `file`. This function performs\n     * validation and should be used for untrusted uri components retrieved from storage,\n     * user input, command arguments etc\n     */\n    static from(components: UriComponents, strict?: boolean): Uri;\n    /**\n     * Join a Uri path with path fragments and normalizes the resulting path.\n     *\n     * @param uri The input Uri.\n     * @param pathFragment The path fragment to add to the Uri path.\n     * @returns The resulting Uri.\n     */\n    static joinPath(uri: Uri, ...pathFragment: string[]): Uri;\n    /**\n     * Creates a string representation for this Uri. It's guaranteed that calling\n     * `Uri.parse` with the result of this function creates an Uri which is equal\n     * to this Uri.\n     *\n     * * The result shall *not* be used for display purposes but for externalization or transport.\n     * * The result will be encoded using the percentage encoding and encoding happens mostly\n     * ignore the scheme-specific encoding rules.\n     *\n     * @param skipEncoding Do not encode the result, default is `false`\n     */\n    toString(skipEncoding?: boolean): string;\n    toJSON(): UriComponents;\n    /**\n     * A helper function to revive URIs.\n     *\n     * **Note** that this function should only be used when receiving Uri#toJSON generated data\n     * and that it doesn't do any validation. Use {@link Uri.from} when received \"untrusted\"\n     * uri components such as command arguments or data from storage.\n     *\n     * @param data The Uri components or Uri to revive.\n     * @returns The revived Uri or undefined or null.\n     */\n    static revive(data: UriComponents | Uri): Uri;\n    static revive(data: UriComponents | Uri | undefined): Uri | undefined;\n    static revive(data: UriComponents | Uri | null): Uri | null;\n    static revive(data: UriComponents | Uri | undefined | null): Uri | undefined | null;\n}\n\nexport interface UriComponents {\n    scheme: string;\n    authority?: string;\n    path?: string;\n    query?: string;\n    fragment?: string;\n}\n/**\n * Virtual Key Codes, the value does not hold any inherent meaning.\n * Inspired somewhat from https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx\n * But these are \"more general\", as they should work across browsers & OS`s.\n */\nexport enum KeyCode {\n    DependsOnKbLayout = -1,\n    /**\n     * Placed first to cover the 0 value of the enum.\n     */\n    Unknown = 0,\n    Backspace = 1,\n    Tab = 2,\n    Enter = 3,\n    Shift = 4,\n    Ctrl = 5,\n    Alt = 6,\n    PauseBreak = 7,\n    CapsLock = 8,\n    Escape = 9,\n    Space = 10,\n    PageUp = 11,\n    PageDown = 12,\n    End = 13,\n    Home = 14,\n    LeftArrow = 15,\n    UpArrow = 16,\n    RightArrow = 17,\n    DownArrow = 18,\n    Insert = 19,\n    Delete = 20,\n    Digit0 = 21,\n    Digit1 = 22,\n    Digit2 = 23,\n    Digit3 = 24,\n    Digit4 = 25,\n    Digit5 = 26,\n    Digit6 = 27,\n    Digit7 = 28,\n    Digit8 = 29,\n    Digit9 = 30,\n    KeyA = 31,\n    KeyB = 32,\n    KeyC = 33,\n    KeyD = 34,\n    KeyE = 35,\n    KeyF = 36,\n    KeyG = 37,\n    KeyH = 38,\n    KeyI = 39,\n    KeyJ = 40,\n    KeyK = 41,\n    KeyL = 42,\n    KeyM = 43,\n    KeyN = 44,\n    KeyO = 45,\n    KeyP = 46,\n    KeyQ = 47,\n    KeyR = 48,\n    KeyS = 49,\n    KeyT = 50,\n    KeyU = 51,\n    KeyV = 52,\n    KeyW = 53,\n    KeyX = 54,\n    KeyY = 55,\n    KeyZ = 56,\n    Meta = 57,\n    ContextMenu = 58,\n    F1 = 59,\n    F2 = 60,\n    F3 = 61,\n    F4 = 62,\n    F5 = 63,\n    F6 = 64,\n    F7 = 65,\n    F8 = 66,\n    F9 = 67,\n    F10 = 68,\n    F11 = 69,\n    F12 = 70,\n    F13 = 71,\n    F14 = 72,\n    F15 = 73,\n    F16 = 74,\n    F17 = 75,\n    F18 = 76,\n    F19 = 77,\n    F20 = 78,\n    F21 = 79,\n    F22 = 80,\n    F23 = 81,\n    F24 = 82,\n    NumLock = 83,\n    ScrollLock = 84,\n    /**\n     * Used for miscellaneous characters; it can vary by keyboard.\n     * For the US standard keyboard, the ';:' key\n     */\n    Semicolon = 85,\n    /**\n     * For any country/region, the '+' key\n     * For the US standard keyboard, the '=+' key\n     */\n    Equal = 86,\n    /**\n     * For any country/region, the ',' key\n     * For the US standard keyboard, the ',<' key\n     */\n    Comma = 87,\n    /**\n     * For any country/region, the '-' key\n     * For the US standard keyboard, the '-_' key\n     */\n    Minus = 88,\n    /**\n     * For any country/region, the '.' key\n     * For the US standard keyboard, the '.>' key\n     */\n    Period = 89,\n    /**\n     * Used for miscellaneous characters; it can vary by keyboard.\n     * For the US standard keyboard, the '/?' key\n     */\n    Slash = 90,\n    /**\n     * Used for miscellaneous characters; it can vary by keyboard.\n     * For the US standard keyboard, the '`~' key\n     */\n    Backquote = 91,\n    /**\n     * Used for miscellaneous characters; it can vary by keyboard.\n     * For the US standard keyboard, the '[{' key\n     */\n    BracketLeft = 92,\n    /**\n     * Used for miscellaneous characters; it can vary by keyboard.\n     * For the US standard keyboard, the '\\|' key\n     */\n    Backslash = 93,\n    /**\n     * Used for miscellaneous characters; it can vary by keyboard.\n     * For the US standard keyboard, the ']}' key\n     */\n    BracketRight = 94,\n    /**\n     * Used for miscellaneous characters; it can vary by keyboard.\n     * For the US standard keyboard, the ''\"' key\n     */\n    Quote = 95,\n    /**\n     * Used for miscellaneous characters; it can vary by keyboard.\n     */\n    OEM_8 = 96,\n    /**\n     * Either the angle bracket key or the backslash key on the RT 102-key keyboard.\n     */\n    IntlBackslash = 97,\n    Numpad0 = 98,// VK_NUMPAD0, 0x60, Numeric keypad 0 key\n    Numpad1 = 99,// VK_NUMPAD1, 0x61, Numeric keypad 1 key\n    Numpad2 = 100,// VK_NUMPAD2, 0x62, Numeric keypad 2 key\n    Numpad3 = 101,// VK_NUMPAD3, 0x63, Numeric keypad 3 key\n    Numpad4 = 102,// VK_NUMPAD4, 0x64, Numeric keypad 4 key\n    Numpad5 = 103,// VK_NUMPAD5, 0x65, Numeric keypad 5 key\n    Numpad6 = 104,// VK_NUMPAD6, 0x66, Numeric keypad 6 key\n    Numpad7 = 105,// VK_NUMPAD7, 0x67, Numeric keypad 7 key\n    Numpad8 = 106,// VK_NUMPAD8, 0x68, Numeric keypad 8 key\n    Numpad9 = 107,// VK_NUMPAD9, 0x69, Numeric keypad 9 key\n    NumpadMultiply = 108,// VK_MULTIPLY, 0x6A, Multiply key\n    NumpadAdd = 109,// VK_ADD, 0x6B, Add key\n    NUMPAD_SEPARATOR = 110,// VK_SEPARATOR, 0x6C, Separator key\n    NumpadSubtract = 111,// VK_SUBTRACT, 0x6D, Subtract key\n    NumpadDecimal = 112,// VK_DECIMAL, 0x6E, Decimal key\n    NumpadDivide = 113,// VK_DIVIDE, 0x6F,\n    /**\n     * Cover all key codes when IME is processing input.\n     */\n    KEY_IN_COMPOSITION = 114,\n    ABNT_C1 = 115,// Brazilian (ABNT) Keyboard\n    ABNT_C2 = 116,// Brazilian (ABNT) Keyboard\n    AudioVolumeMute = 117,\n    AudioVolumeUp = 118,\n    AudioVolumeDown = 119,\n    BrowserSearch = 120,\n    BrowserHome = 121,\n    BrowserBack = 122,\n    BrowserForward = 123,\n    MediaTrackNext = 124,\n    MediaTrackPrevious = 125,\n    MediaStop = 126,\n    MediaPlayPause = 127,\n    LaunchMediaPlayer = 128,\n    LaunchMail = 129,\n    LaunchApp2 = 130,\n    /**\n     * VK_CLEAR, 0x0C, CLEAR key\n     */\n    Clear = 131,\n    /**\n     * Placed last to cover the length of the enum.\n     * Please do not depend on this value!\n     */\n    MAX_VALUE = 132\n}\nexport class KeyMod {\n    static readonly CtrlCmd: number;\n    static readonly Shift: number;\n    static readonly Alt: number;\n    static readonly WinCtrl: number;\n    static chord(firstPart: number, secondPart: number): number;\n}\n\nexport interface IMarkdownString {\n    readonly value: string;\n    readonly isTrusted?: boolean | MarkdownStringTrustedOptions;\n    readonly supportThemeIcons?: boolean;\n    readonly supportHtml?: boolean;\n    readonly baseUri?: UriComponents;\n    uris?: {\n        [href: string]: UriComponents;\n    };\n}\n\nexport interface MarkdownStringTrustedOptions {\n    readonly enabledCommands: readonly string[];\n}\n\nexport interface IKeyboardEvent {\n    readonly _standardKeyboardEventBrand: true;\n    readonly browserEvent: KeyboardEvent;\n    readonly target: HTMLElement;\n    readonly ctrlKey: boolean;\n    readonly shiftKey: boolean;\n    readonly altKey: boolean;\n    readonly metaKey: boolean;\n    readonly altGraphKey: boolean;\n    readonly keyCode: KeyCode;\n    readonly code: string;\n    equals(keybinding: number): boolean;\n    preventDefault(): void;\n    stopPropagation(): void;\n}\nexport interface IMouseEvent {\n    readonly browserEvent: MouseEvent;\n    readonly leftButton: boolean;\n    readonly middleButton: boolean;\n    readonly rightButton: boolean;\n    readonly buttons: number;\n    readonly target: HTMLElement;\n    readonly detail: number;\n    readonly posx: number;\n    readonly posy: number;\n    readonly ctrlKey: boolean;\n    readonly shiftKey: boolean;\n    readonly altKey: boolean;\n    readonly metaKey: boolean;\n    readonly timestamp: number;\n    preventDefault(): void;\n    stopPropagation(): void;\n}\n\nexport interface IScrollEvent {\n    readonly scrollTop: number;\n    readonly scrollLeft: number;\n    readonly scrollWidth: number;\n    readonly scrollHeight: number;\n    readonly scrollTopChanged: boolean;\n    readonly scrollLeftChanged: boolean;\n    readonly scrollWidthChanged: boolean;\n    readonly scrollHeightChanged: boolean;\n}\n/**\n * A position in the editor. This interface is suitable for serialization.\n */\nexport interface IPosition {\n    /**\n     * line number (starts at 1)\n     */\n    readonly lineNumber: number;\n    /**\n     * column (the first character in a line is between column 1 and column 2)\n     */\n    readonly column: number;\n}\n\n/**\n * A position in the editor.\n */\nexport class Position {\n    /**\n     * line number (starts at 1)\n     */\n    readonly lineNumber: number;\n    /**\n     * column (the first character in a line is between column 1 and column 2)\n     */\n    readonly column: number;\n    constructor(lineNumber: number, column: number);\n    /**\n     * Create a new position from this position.\n     *\n     * @param newLineNumber new line number\n     * @param newColumn new column\n     */\n    with(newLineNumber?: number, newColumn?: number): Position;\n    /**\n     * Derive a new position from this position.\n     *\n     * @param deltaLineNumber line number delta\n     * @param deltaColumn column delta\n     */\n    delta(deltaLineNumber?: number, deltaColumn?: number): Position;\n    /**\n     * Test if this position equals other position\n     */\n    equals(other: IPosition): boolean;\n    /**\n     * Test if position `a` equals position `b`\n     */\n    static equals(a: IPosition | null, b: IPosition | null): boolean;\n    /**\n     * Test if this position is before other position.\n     * If the two positions are equal, the result will be false.\n     */\n    isBefore(other: IPosition): boolean;\n    /**\n     * Test if position `a` is before position `b`.\n     * If the two positions are equal, the result will be false.\n     */\n    static isBefore(a: IPosition, b: IPosition): boolean;\n    /**\n     * Test if this position is before other position.\n     * If the two positions are equal, the result will be true.\n     */\n    isBeforeOrEqual(other: IPosition): boolean;\n    /**\n     * Test if position `a` is before position `b`.\n     * If the two positions are equal, the result will be true.\n     */\n    static isBeforeOrEqual(a: IPosition, b: IPosition): boolean;\n    /**\n     * A function that compares positions, useful for sorting\n     */\n    static compare(a: IPosition, b: IPosition): number;\n    /**\n     * Clone this position.\n     */\n    clone(): Position;\n    /**\n     * Convert to a human-readable representation.\n     */\n    toString(): string;\n    /**\n     * Create a `Position` from an `IPosition`.\n     */\n    static lift(pos: IPosition): Position;\n    /**\n     * Test if `obj` is an `IPosition`.\n     */\n    static isIPosition(obj: any): obj is IPosition;\n    toJSON(): IPosition;\n}\n\n/**\n * A range in the editor. This interface is suitable for serialization.\n */\nexport interface IRange {\n    /**\n     * Line number on which the range starts (starts at 1).\n     */\n    readonly startLineNumber: number;\n    /**\n     * Column on which the range starts in line `startLineNumber` (starts at 1).\n     */\n    readonly startColumn: number;\n    /**\n     * Line number on which the range ends.\n     */\n    readonly endLineNumber: number;\n    /**\n     * Column on which the range ends in line `endLineNumber`.\n     */\n    readonly endColumn: number;\n}\n\n/**\n * A range in the editor. (startLineNumber,startColumn) is <= (endLineNumber,endColumn)\n */\nexport class Range {\n    /**\n     * Line number on which the range starts (starts at 1).\n     */\n    readonly startLineNumber: number;\n    /**\n     * Column on which the range starts in line `startLineNumber` (starts at 1).\n     */\n    readonly startColumn: number;\n    /**\n     * Line number on which the range ends.\n     */\n    readonly endLineNumber: number;\n    /**\n     * Column on which the range ends in line `endLineNumber`.\n     */\n    readonly endColumn: number;\n    constructor(startLineNumber: number, startColumn: number, endLineNumber: number, endColumn: number);\n    /**\n     * Test if this range is empty.\n     */\n    isEmpty(): boolean;\n    /**\n     * Test if `range` is empty.\n     */\n    static isEmpty(range: IRange): boolean;\n    /**\n     * Test if position is in this range. If the position is at the edges, will return true.\n     */\n    containsPosition(position: IPosition): boolean;\n    /**\n     * Test if `position` is in `range`. If the position is at the edges, will return true.\n     */\n    static containsPosition(range: IRange, position: IPosition): boolean;\n    /**\n     * Test if range is in this range. If the range is equal to this range, will return true.\n     */\n    containsRange(range: IRange): boolean;\n    /**\n     * Test if `otherRange` is in `range`. If the ranges are equal, will return true.\n     */\n    static containsRange(range: IRange, otherRange: IRange): boolean;\n    /**\n     * Test if `range` is strictly in this range. `range` must start after and end before this range for the result to be true.\n     */\n    strictContainsRange(range: IRange): boolean;\n    /**\n     * Test if `otherRange` is strictly in `range` (must start after, and end before). If the ranges are equal, will return false.\n     */\n    static strictContainsRange(range: IRange, otherRange: IRange): boolean;\n    /**\n     * A reunion of the two ranges.\n     * The smallest position will be used as the start point, and the largest one as the end point.\n     */\n    plusRange(range: IRange): Range;\n    /**\n     * A reunion of the two ranges.\n     * The smallest position will be used as the start point, and the largest one as the end point.\n     */\n    static plusRange(a: IRange, b: IRange): Range;\n    /**\n     * A intersection of the two ranges.\n     */\n    intersectRanges(range: IRange): Range | null;\n    /**\n     * A intersection of the two ranges.\n     */\n    static intersectRanges(a: IRange, b: IRange): Range | null;\n    /**\n     * Test if this range equals other.\n     */\n    equalsRange(other: IRange | null | undefined): boolean;\n    /**\n     * Test if range `a` equals `b`.\n     */\n    static equalsRange(a: IRange | null | undefined, b: IRange | null | undefined): boolean;\n    /**\n     * Return the end position (which will be after or equal to the start position)\n     */\n    getEndPosition(): Position;\n    /**\n     * Return the end position (which will be after or equal to the start position)\n     */\n    static getEndPosition(range: IRange): Position;\n    /**\n     * Return the start position (which will be before or equal to the end position)\n     */\n    getStartPosition(): Position;\n    /**\n     * Return the start position (which will be before or equal to the end position)\n     */\n    static getStartPosition(range: IRange): Position;\n    /**\n     * Transform to a user presentable string representation.\n     */\n    toString(): string;\n    /**\n     * Create a new range using this range's start position, and using endLineNumber and endColumn as the end position.\n     */\n    setEndPosition(endLineNumber: number, endColumn: number): Range;\n    /**\n     * Create a new range using this range's end position, and using startLineNumber and startColumn as the start position.\n     */\n    setStartPosition(startLineNumber: number, startColumn: number): Range;\n    /**\n     * Create a new empty range using this range's start position.\n     */\n    collapseToStart(): Range;\n    /**\n     * Create a new empty range using this range's start position.\n     */\n    static collapseToStart(range: IRange): Range;\n    /**\n     * Create a new empty range using this range's end position.\n     */\n    collapseToEnd(): Range;\n    /**\n     * Create a new empty range using this range's end position.\n     */\n    static collapseToEnd(range: IRange): Range;\n    /**\n     * Moves the range by the given amount of lines.\n     */\n    delta(lineCount: number): Range;\n    static fromPositions(start: IPosition, end?: IPosition): Range;\n    /**\n     * Create a `Range` from an `IRange`.\n     */\n    static lift(range: undefined | null): null;\n    static lift(range: IRange): Range;\n    static lift(range: IRange | undefined | null): Range | null;\n    /**\n     * Test if `obj` is an `IRange`.\n     */\n    static isIRange(obj: any): obj is IRange;\n    /**\n     * Test if the two ranges are touching in any way.\n     */\n    static areIntersectingOrTouching(a: IRange, b: IRange): boolean;\n    /**\n     * Test if the two ranges are intersecting. If the ranges are touching it returns true.\n     */\n    static areIntersecting(a: IRange, b: IRange): boolean;\n    /**\n     * A function that compares ranges, useful for sorting ranges\n     * It will first compare ranges on the startPosition and then on the endPosition\n     */\n    static compareRangesUsingStarts(a: IRange | null | undefined, b: IRange | null | undefined): number;\n    /**\n     * A function that compares ranges, useful for sorting ranges\n     * It will first compare ranges on the endPosition and then on the startPosition\n     */\n    static compareRangesUsingEnds(a: IRange, b: IRange): number;\n    /**\n     * Test if the range spans multiple lines.\n     */\n    static spansMultipleLines(range: IRange): boolean;\n    toJSON(): IRange;\n}\n\n/**\n * A selection in the editor.\n * The selection is a range that has an orientation.\n */\nexport interface ISelection {\n    /**\n     * The line number on which the selection has started.\n     */\n    readonly selectionStartLineNumber: number;\n    /**\n     * The column on `selectionStartLineNumber` where the selection has started.\n     */\n    readonly selectionStartColumn: number;\n    /**\n     * The line number on which the selection has ended.\n     */\n    readonly positionLineNumber: number;\n    /**\n     * The column on `positionLineNumber` where the selection has ended.\n     */\n    readonly positionColumn: number;\n}\n\n/**\n * A selection in the editor.\n * The selection is a range that has an orientation.\n */\nexport class Selection extends Range {\n    /**\n     * The line number on which the selection has started.\n     */\n    readonly selectionStartLineNumber: number;\n    /**\n     * The column on `selectionStartLineNumber` where the selection has started.\n     */\n    readonly selectionStartColumn: number;\n    /**\n     * The line number on which the selection has ended.\n     */\n    readonly positionLineNumber: number;\n    /**\n     * The column on `positionLineNumber` where the selection has ended.\n     */\n    readonly positionColumn: number;\n    constructor(selectionStartLineNumber: number, selectionStartColumn: number, positionLineNumber: number, positionColumn: number);\n    /**\n     * Transform to a human-readable representation.\n     */\n    toString(): string;\n    /**\n     * Test if equals other selection.\n     */\n    equalsSelection(other: ISelection): boolean;\n    /**\n     * Test if the two selections are equal.\n     */\n    static selectionsEqual(a: ISelection, b: ISelection): boolean;\n    /**\n     * Get directions (LTR or RTL).\n     */\n    getDirection(): SelectionDirection;\n    /**\n     * Create a new selection with a different `positionLineNumber` and `positionColumn`.\n     */\n    setEndPosition(endLineNumber: number, endColumn: number): Selection;\n    /**\n     * Get the position at `positionLineNumber` and `positionColumn`.\n     */\n    getPosition(): Position;\n    /**\n     * Get the position at the start of the selection.\n    */\n    getSelectionStart(): Position;\n    /**\n     * Create a new selection with a different `selectionStartLineNumber` and `selectionStartColumn`.\n     */\n    setStartPosition(startLineNumber: number, startColumn: number): Selection;\n    /**\n     * Create a `Selection` from one or two positions\n     */\n    static fromPositions(start: IPosition, end?: IPosition): Selection;\n    /**\n     * Creates a `Selection` from a range, given a direction.\n     */\n    static fromRange(range: Range, direction: SelectionDirection): Selection;\n    /**\n     * Create a `Selection` from an `ISelection`.\n     */\n    static liftSelection(sel: ISelection): Selection;\n    /**\n     * `a` equals `b`.\n     */\n    static selectionsArrEqual(a: ISelection[], b: ISelection[]): boolean;\n    /**\n     * Test if `obj` is an `ISelection`.\n     */\n    static isISelection(obj: any): obj is ISelection;\n    /**\n     * Create with a direction.\n     */\n    static createWithDirection(startLineNumber: number, startColumn: number, endLineNumber: number, endColumn: number, direction: SelectionDirection): Selection;\n}\n\n/**\n * The direction of a selection.\n */\nexport enum SelectionDirection {\n    /**\n     * The selection starts above where it ends.\n     */\n    LTR = 0,\n    /**\n     * The selection starts below where it ends.\n     */\n    RTL = 1\n}\n\nexport class Token {\n    readonly offset: number;\n    readonly type: string;\n    readonly language: string;\n    _tokenBrand: void;\n    constructor(offset: number, type: string, language: string);\n    toString(): string;\n}\n\nexport namespace editor {\n\n    /**\n     * Create a new editor under `domElement`.\n     * `domElement` should be empty (not contain other dom nodes).\n     * The editor will read the size of `domElement`.\n     */\n    export function create(domElement: HTMLElement, options?: IStandaloneEditorConstructionOptions, override?: IEditorOverrideServices): IStandaloneCodeEditor;\n\n    /**\n     * Emitted when an editor is created.\n     * Creating a diff editor might cause this listener to be invoked with the two editors.\n     * @event\n     */\n    export function onDidCreateEditor(listener: (codeEditor: ICodeEditor) => void): IDisposable;\n\n    /**\n     * Emitted when an diff editor is created.\n     * @event\n     */\n    export function onDidCreateDiffEditor(listener: (diffEditor: IDiffEditor) => void): IDisposable;\n\n    /**\n     * Get all the created editors.\n     */\n    export function getEditors(): readonly ICodeEditor[];\n\n    /**\n     * Get all the created diff editors.\n     */\n    export function getDiffEditors(): readonly IDiffEditor[];\n\n    /**\n     * Create a new diff editor under `domElement`.\n     * `domElement` should be empty (not contain other dom nodes).\n     * The editor will read the size of `domElement`.\n     */\n    export function createDiffEditor(domElement: HTMLElement, options?: IStandaloneDiffEditorConstructionOptions, override?: IEditorOverrideServices): IStandaloneDiffEditor;\n\n    export function createMultiFileDiffEditor(domElement: HTMLElement, override?: IEditorOverrideServices): any;\n\n    /**\n     * Description of a command contribution\n     */\n    export interface ICommandDescriptor {\n        /**\n         * An unique identifier of the contributed command.\n         */\n        id: string;\n        /**\n         * Callback that will be executed when the command is triggered.\n         */\n        run: ICommandHandler;\n    }\n\n    /**\n     * Add a command.\n     */\n    export function addCommand(descriptor: ICommandDescriptor): IDisposable;\n\n    /**\n     * Add an action to all editors.\n     */\n    export function addEditorAction(descriptor: IActionDescriptor): IDisposable;\n\n    /**\n     * A keybinding rule.\n     */\n    export interface IKeybindingRule {\n        keybinding: number;\n        command?: string | null;\n        commandArgs?: any;\n        when?: string | null;\n    }\n\n    /**\n     * Add a keybinding rule.\n     */\n    export function addKeybindingRule(rule: IKeybindingRule): IDisposable;\n\n    /**\n     * Add keybinding rules.\n     */\n    export function addKeybindingRules(rules: IKeybindingRule[]): IDisposable;\n\n    /**\n     * Create a new editor model.\n     * You can specify the language that should be set for this model or let the language be inferred from the `uri`.\n     */\n    export function createModel(value: string, language?: string, uri?: Uri): ITextModel;\n\n    /**\n     * Change the language for a model.\n     */\n    export function setModelLanguage(model: ITextModel, mimeTypeOrLanguageId: string): void;\n\n    /**\n     * Set the markers for a model.\n     */\n    export function setModelMarkers(model: ITextModel, owner: string, markers: IMarkerData[]): void;\n\n    /**\n     * Remove all markers of an owner.\n     */\n    export function removeAllMarkers(owner: string): void;\n\n    /**\n     * Get markers for owner and/or resource\n     *\n     * @returns list of markers\n     */\n    export function getModelMarkers(filter: {\n        owner?: string;\n        resource?: Uri;\n        take?: number;\n    }): IMarker[];\n\n    /**\n     * Emitted when markers change for a model.\n     * @event\n     */\n    export function onDidChangeMarkers(listener: (e: readonly Uri[]) => void): IDisposable;\n\n    /**\n     * Get the model that has `uri` if it exists.\n     */\n    export function getModel(uri: Uri): ITextModel | null;\n\n    /**\n     * Get all the created models.\n     */\n    export function getModels(): ITextModel[];\n\n    /**\n     * Emitted when a model is created.\n     * @event\n     */\n    export function onDidCreateModel(listener: (model: ITextModel) => void): IDisposable;\n\n    /**\n     * Emitted right before a model is disposed.\n     * @event\n     */\n    export function onWillDisposeModel(listener: (model: ITextModel) => void): IDisposable;\n\n    /**\n     * Emitted when a different language is set to a model.\n     * @event\n     */\n    export function onDidChangeModelLanguage(listener: (e: {\n        readonly model: ITextModel;\n        readonly oldLanguage: string;\n    }) => void): IDisposable;\n\n    /**\n     * Create a new web worker that has model syncing capabilities built in.\n     * Specify an AMD module to load that will `create` an object that will be proxied.\n     */\n    export function createWebWorker<T extends object>(opts: IWebWorkerOptions): MonacoWebWorker<T>;\n\n    /**\n     * Colorize the contents of `domNode` using attribute `data-lang`.\n     */\n    export function colorizeElement(domNode: HTMLElement, options: IColorizerElementOptions): Promise<void>;\n\n    /**\n     * Colorize `text` using language `languageId`.\n     */\n    export function colorize(text: string, languageId: string, options: IColorizerOptions): Promise<string>;\n\n    /**\n     * Colorize a line in a model.\n     */\n    export function colorizeModelLine(model: ITextModel, lineNumber: number, tabSize?: number): string;\n\n    /**\n     * Tokenize `text` using language `languageId`\n     */\n    export function tokenize(text: string, languageId: string): Token[][];\n\n    /**\n     * Define a new theme or update an existing theme.\n     */\n    export function defineTheme(themeName: string, themeData: IStandaloneThemeData): void;\n\n    /**\n     * Switches to a theme.\n     */\n    export function setTheme(themeName: string): void;\n\n    /**\n     * Clears all cached font measurements and triggers re-measurement.\n     */\n    export function remeasureFonts(): void;\n\n    /**\n     * Register a command.\n     */\n    export function registerCommand(id: string, handler: (accessor: any, ...args: any[]) => void): IDisposable;\n\n    export interface ILinkOpener {\n        open(resource: Uri): boolean | Promise<boolean>;\n    }\n\n    /**\n     * Registers a handler that is called when a link is opened in any editor. The handler callback should return `true` if the link was handled and `false` otherwise.\n     * The handler that was registered last will be called first when a link is opened.\n     *\n     * Returns a disposable that can unregister the opener again.\n     */\n    export function registerLinkOpener(opener: ILinkOpener): IDisposable;\n\n    /**\n     * Represents an object that can handle editor open operations (e.g. when \"go to definition\" is called\n     * with a resource other than the current model).\n     */\n    export interface ICodeEditorOpener {\n        /**\n         * Callback that is invoked when a resource other than the current model should be opened (e.g. when \"go to definition\" is called).\n         * The callback should return `true` if the request was handled and `false` otherwise.\n         * @param source The code editor instance that initiated the request.\n         * @param resource The Uri of the resource that should be opened.\n         * @param selectionOrPosition An optional position or selection inside the model corresponding to `resource` that can be used to set the cursor.\n         */\n        openCodeEditor(source: ICodeEditor, resource: Uri, selectionOrPosition?: IRange | IPosition): boolean | Promise<boolean>;\n    }\n\n    /**\n     * Registers a handler that is called when a resource other than the current model should be opened in the editor (e.g. \"go to definition\").\n     * The handler callback should return `true` if the request was handled and `false` otherwise.\n     *\n     * Returns a disposable that can unregister the opener again.\n     *\n     * If no handler is registered the default behavior is to do nothing for models other than the currently attached one.\n     */\n    export function registerEditorOpener(opener: ICodeEditorOpener): IDisposable;\n\n    export type BuiltinTheme = 'vs' | 'vs-dark' | 'hc-black' | 'hc-light';\n\n    export interface IStandaloneThemeData {\n        base: BuiltinTheme;\n        inherit: boolean;\n        rules: ITokenThemeRule[];\n        encodedTokensColors?: string[];\n        colors: IColors;\n    }\n\n    export type IColors = {\n        [colorId: string]: string;\n    };\n\n    export interface ITokenThemeRule {\n        token: string;\n        foreground?: string;\n        background?: string;\n        fontStyle?: string;\n    }\n\n    /**\n     * A web worker that can provide a proxy to an arbitrary file.\n     */\n    export interface MonacoWebWorker<T> {\n        /**\n         * Terminate the web worker, thus invalidating the returned proxy.\n         */\n        dispose(): void;\n        /**\n         * Get a proxy to the arbitrary loaded code.\n         */\n        getProxy(): Promise<T>;\n        /**\n         * Synchronize (send) the models at `resources` to the web worker,\n         * making them available in the monaco.worker.getMirrorModels().\n         */\n        withSyncedResources(resources: Uri[]): Promise<T>;\n    }\n\n    export interface IWebWorkerOptions {\n        /**\n         * The AMD moduleId to load.\n         * It should export a function `create` that should return the exported proxy.\n         */\n        moduleId: string;\n        /**\n         * The data to send over when calling create on the module.\n         */\n        createData?: any;\n        /**\n         * A label to be used to identify the web worker for debugging purposes.\n         */\n        label?: string;\n        /**\n         * An object that can be used by the web worker to make calls back to the main thread.\n         */\n        host?: any;\n        /**\n         * Keep idle models.\n         * Defaults to false, which means that idle models will stop syncing after a while.\n         */\n        keepIdleModels?: boolean;\n    }\n\n    /**\n     * Description of an action contribution\n     */\n    export interface IActionDescriptor {\n        /**\n         * An unique identifier of the contributed action.\n         */\n        id: string;\n        /**\n         * A label of the action that will be presented to the user.\n         */\n        label: string;\n        /**\n         * Precondition rule. The value should be a [context key expression](https://code.visualstudio.com/docs/getstarted/keybindings#_when-clause-contexts).\n         */\n        precondition?: string;\n        /**\n         * An array of keybindings for the action.\n         */\n        keybindings?: number[];\n        /**\n         * The keybinding rule (condition on top of precondition).\n         */\n        keybindingContext?: string;\n        /**\n         * Control if the action should show up in the context menu and where.\n         * The context menu of the editor has these default:\n         *   navigation - The navigation group comes first in all cases.\n         *   1_modification - This group comes next and contains commands that modify your code.\n         *   9_cutcopypaste - The last default group with the basic editing commands.\n         * You can also create your own group.\n         * Defaults to null (don't show in context menu).\n         */\n        contextMenuGroupId?: string;\n        /**\n         * Control the order in the context menu group.\n         */\n        contextMenuOrder?: number;\n        /**\n         * Method that will be executed when the action is triggered.\n         * @param editor The editor instance is passed in as a convenience\n         */\n        run(editor: ICodeEditor, ...args: any[]): void | Promise<void>;\n    }\n\n    /**\n     * Options which apply for all editors.\n     */\n    export interface IGlobalEditorOptions {\n        /**\n         * The number of spaces a tab is equal to.\n         * This setting is overridden based on the file contents when `detectIndentation` is on.\n         * Defaults to 4.\n         */\n        tabSize?: number;\n        /**\n         * Insert spaces when pressing `Tab`.\n         * This setting is overridden based on the file contents when `detectIndentation` is on.\n         * Defaults to true.\n         */\n        insertSpaces?: boolean;\n        /**\n         * Controls whether `tabSize` and `insertSpaces` will be automatically detected when a file is opened based on the file contents.\n         * Defaults to true.\n         */\n        detectIndentation?: boolean;\n        /**\n         * Remove trailing auto inserted whitespace.\n         * Defaults to true.\n         */\n        trimAutoWhitespace?: boolean;\n        /**\n         * Special handling for large files to disable certain memory intensive features.\n         * Defaults to true.\n         */\n        largeFileOptimizations?: boolean;\n        /**\n         * Controls whether completions should be computed based on words in the document.\n         * Defaults to true.\n         */\n        wordBasedSuggestions?: 'off' | 'currentDocument' | 'matchingDocuments' | 'allDocuments';\n        /**\n         * Controls whether word based completions should be included from opened documents of the same language or any language.\n         */\n        wordBasedSuggestionsOnlySameLanguage?: boolean;\n        /**\n         * Controls whether the semanticHighlighting is shown for the languages that support it.\n         * true: semanticHighlighting is enabled for all themes\n         * false: semanticHighlighting is disabled for all themes\n         * 'configuredByTheme': semanticHighlighting is controlled by the current color theme's semanticHighlighting setting.\n         * Defaults to 'byTheme'.\n         */\n        'semanticHighlighting.enabled'?: true | false | 'configuredByTheme';\n        /**\n         * Keep peek editors open even when double-clicking their content or when hitting `Escape`.\n         * Defaults to false.\n         */\n        stablePeek?: boolean;\n        /**\n         * Lines above this length will not be tokenized for performance reasons.\n         * Defaults to 20000.\n         */\n        maxTokenizationLineLength?: number;\n        /**\n         * Theme to be used for rendering.\n         * The current out-of-the-box available themes are: 'vs' (default), 'vs-dark', 'hc-black', 'hc-light'.\n         * You can create custom themes via `monaco.editor.defineTheme`.\n         * To switch a theme, use `monaco.editor.setTheme`.\n         * **NOTE**: The theme might be overwritten if the OS is in high contrast mode, unless `autoDetectHighContrast` is set to false.\n         */\n        theme?: string;\n        /**\n         * If enabled, will automatically change to high contrast theme if the OS is using a high contrast theme.\n         * Defaults to true.\n         */\n        autoDetectHighContrast?: boolean;\n    }\n\n    /**\n     * The options to create an editor.\n     */\n    export interface IStandaloneEditorConstructionOptions extends IEditorConstructionOptions, IGlobalEditorOptions {\n        /**\n         * The initial model associated with this code editor.\n         */\n        model?: ITextModel | null;\n        /**\n         * The initial value of the auto created model in the editor.\n         * To not automatically create a model, use `model: null`.\n         */\n        value?: string;\n        /**\n         * The initial language of the auto created model in the editor.\n         * To not automatically create a model, use `model: null`.\n         */\n        language?: string;\n        /**\n         * Initial theme to be used for rendering.\n         * The current out-of-the-box available themes are: 'vs' (default), 'vs-dark', 'hc-black', 'hc-light.\n         * You can create custom themes via `monaco.editor.defineTheme`.\n         * To switch a theme, use `monaco.editor.setTheme`.\n         * **NOTE**: The theme might be overwritten if the OS is in high contrast mode, unless `autoDetectHighContrast` is set to false.\n         */\n        theme?: string;\n        /**\n         * If enabled, will automatically change to high contrast theme if the OS is using a high contrast theme.\n         * Defaults to true.\n         */\n        autoDetectHighContrast?: boolean;\n        /**\n         * An URL to open when Ctrl+H (Windows and Linux) or Cmd+H (OSX) is pressed in\n         * the accessibility help dialog in the editor.\n         *\n         * Defaults to \"https://go.microsoft.com/fwlink/?linkid=852450\"\n         */\n        accessibilityHelpUrl?: string;\n        /**\n         * Container element to use for ARIA messages.\n         * Defaults to document.body.\n         */\n        ariaContainerElement?: HTMLElement;\n    }\n\n    /**\n     * The options to create a diff editor.\n     */\n    export interface IStandaloneDiffEditorConstructionOptions extends IDiffEditorConstructionOptions {\n        /**\n         * Initial theme to be used for rendering.\n         * The current out-of-the-box available themes are: 'vs' (default), 'vs-dark', 'hc-black', 'hc-light.\n         * You can create custom themes via `monaco.editor.defineTheme`.\n         * To switch a theme, use `monaco.editor.setTheme`.\n         * **NOTE**: The theme might be overwritten if the OS is in high contrast mode, unless `autoDetectHighContrast` is set to false.\n         */\n        theme?: string;\n        /**\n         * If enabled, will automatically change to high contrast theme if the OS is using a high contrast theme.\n         * Defaults to true.\n         */\n        autoDetectHighContrast?: boolean;\n    }\n\n    export interface IStandaloneCodeEditor extends ICodeEditor {\n        updateOptions(newOptions: IEditorOptions & IGlobalEditorOptions): void;\n        addCommand(keybinding: number, handler: ICommandHandler, context?: string): string | null;\n        createContextKey<T extends ContextKeyValue = ContextKeyValue>(key: string, defaultValue: T): IContextKey<T>;\n        addAction(descriptor: IActionDescriptor): IDisposable;\n    }\n\n    export interface IStandaloneDiffEditor extends IDiffEditor {\n        addCommand(keybinding: number, handler: ICommandHandler, context?: string): string | null;\n        createContextKey<T extends ContextKeyValue = ContextKeyValue>(key: string, defaultValue: T): IContextKey<T>;\n        addAction(descriptor: IActionDescriptor): IDisposable;\n        getOriginalEditor(): IStandaloneCodeEditor;\n        getModifiedEditor(): IStandaloneCodeEditor;\n    }\n    export interface ICommandHandler {\n        (...args: any[]): void;\n    }\n    export interface ILocalizedString {\n        original: string;\n        value: string;\n    }\n    export interface ICommandMetadata {\n        readonly description: ILocalizedString | string;\n    }\n\n    export interface IContextKey<T extends ContextKeyValue = ContextKeyValue> {\n        set(value: T): void;\n        reset(): void;\n        get(): T | undefined;\n    }\n\n    export type ContextKeyValue = null | undefined | boolean | number | string | Array<null | undefined | boolean | number | string> | Record<string, null | undefined | boolean | number | string>;\n\n    export interface IEditorOverrideServices {\n        [index: string]: any;\n    }\n\n    export interface IMarker {\n        owner: string;\n        resource: Uri;\n        severity: MarkerSeverity;\n        code?: string | {\n            value: string;\n            target: Uri;\n        };\n        message: string;\n        source?: string;\n        startLineNumber: number;\n        startColumn: number;\n        endLineNumber: number;\n        endColumn: number;\n        modelVersionId?: number;\n        relatedInformation?: IRelatedInformation[];\n        tags?: MarkerTag[];\n    }\n\n    /**\n     * A structure defining a problem/warning/etc.\n     */\n    export interface IMarkerData {\n        code?: string | {\n            value: string;\n            target: Uri;\n        };\n        severity: MarkerSeverity;\n        message: string;\n        source?: string;\n        startLineNumber: number;\n        startColumn: number;\n        endLineNumber: number;\n        endColumn: number;\n        modelVersionId?: number;\n        relatedInformation?: IRelatedInformation[];\n        tags?: MarkerTag[];\n    }\n\n    /**\n     *\n     */\n    export interface IRelatedInformation {\n        resource: Uri;\n        message: string;\n        startLineNumber: number;\n        startColumn: number;\n        endLineNumber: number;\n        endColumn: number;\n    }\n\n    export interface IColorizerOptions {\n        tabSize?: number;\n    }\n\n    export interface IColorizerElementOptions extends IColorizerOptions {\n        theme?: string;\n        mimeType?: string;\n    }\n\n    export enum ScrollbarVisibility {\n        Auto = 1,\n        Hidden = 2,\n        Visible = 3\n    }\n\n    export interface ThemeColor {\n        id: string;\n    }\n\n    /**\n     * A single edit operation, that acts as a simple replace.\n     * i.e. Replace text at `range` with `text` in model.\n     */\n    export interface ISingleEditOperation {\n        /**\n         * The range to replace. This can be empty to emulate a simple insert.\n         */\n        range: IRange;\n        /**\n         * The text to replace with. This can be null to emulate a simple delete.\n         */\n        text: string | null;\n        /**\n         * This indicates that this operation has \"insert\" semantics.\n         * i.e. forceMoveMarkers = true => if `range` is collapsed, all markers at the position will be moved.\n         */\n        forceMoveMarkers?: boolean;\n    }\n\n    /**\n     * Word inside a model.\n     */\n    export interface IWordAtPosition {\n        /**\n         * The word.\n         */\n        readonly word: string;\n        /**\n         * The column where the word starts.\n         */\n        readonly startColumn: number;\n        /**\n         * The column where the word ends.\n         */\n        readonly endColumn: number;\n    }\n\n    /**\n     * Vertical Lane in the overview ruler of the editor.\n     */\n    export enum OverviewRulerLane {\n        Left = 1,\n        Center = 2,\n        Right = 4,\n        Full = 7\n    }\n\n    /**\n     * Vertical Lane in the glyph margin of the editor.\n     */\n    export enum GlyphMarginLane {\n        Left = 1,\n        Center = 2,\n        Right = 3\n    }\n\n    export interface IGlyphMarginLanesModel {\n        /**\n         * The number of lanes that should be rendered in the editor.\n         */\n        readonly requiredLanes: number;\n        /**\n         * Gets the lanes that should be rendered starting at a given line number.\n         */\n        getLanesAtLine(lineNumber: number): GlyphMarginLane[];\n        /**\n         * Resets the model and ensures it can contain at least `maxLine` lines.\n         */\n        reset(maxLine: number): void;\n        /**\n         * Registers that a lane should be visible at the Range in the model.\n         * @param persist - if true, notes that the lane should always be visible,\n         * even on lines where there's no specific request for that lane.\n         */\n        push(lane: GlyphMarginLane, range: Range, persist?: boolean): void;\n    }\n\n    /**\n     * Position in the minimap to render the decoration.\n     */\n    export enum MinimapPosition {\n        Inline = 1,\n        Gutter = 2\n    }\n\n    /**\n     * Section header style.\n     */\n    export enum MinimapSectionHeaderStyle {\n        Normal = 1,\n        Underlined = 2\n    }\n\n    export interface IDecorationOptions {\n        /**\n         * CSS color to render.\n         * e.g.: rgba(100, 100, 100, 0.5) or a color from the color registry\n         */\n        color: string | ThemeColor | undefined;\n        /**\n         * CSS color to render.\n         * e.g.: rgba(100, 100, 100, 0.5) or a color from the color registry\n         */\n        darkColor?: string | ThemeColor;\n    }\n\n    export interface IModelDecorationGlyphMarginOptions {\n        /**\n         * The position in the glyph margin.\n         */\n        position: GlyphMarginLane;\n        /**\n         * Whether the glyph margin lane in {@link position} should be rendered even\n         * outside of this decoration's range.\n         */\n        persistLane?: boolean;\n    }\n\n    /**\n     * Options for rendering a model decoration in the overview ruler.\n     */\n    export interface IModelDecorationOverviewRulerOptions extends IDecorationOptions {\n        /**\n         * The position in the overview ruler.\n         */\n        position: OverviewRulerLane;\n    }\n\n    /**\n     * Options for rendering a model decoration in the minimap.\n     */\n    export interface IModelDecorationMinimapOptions extends IDecorationOptions {\n        /**\n         * The position in the minimap.\n         */\n        position: MinimapPosition;\n        /**\n         * If the decoration is for a section header, which header style.\n         */\n        sectionHeaderStyle?: MinimapSectionHeaderStyle | null;\n        /**\n         * If the decoration is for a section header, the header text.\n         */\n        sectionHeaderText?: string | null;\n    }\n\n    /**\n     * Options for a model decoration.\n     */\n    export interface IModelDecorationOptions {\n        /**\n         * Customize the growing behavior of the decoration when typing at the edges of the decoration.\n         * Defaults to TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges\n         */\n        stickiness?: TrackedRangeStickiness;\n        /**\n         * CSS class name describing the decoration.\n         */\n        className?: string | null;\n        /**\n         * Indicates whether the decoration should span across the entire line when it continues onto the next line.\n         */\n        shouldFillLineOnLineBreak?: boolean | null;\n        blockClassName?: string | null;\n        /**\n         * Indicates if this block should be rendered after the last line.\n         * In this case, the range must be empty and set to the last line.\n         */\n        blockIsAfterEnd?: boolean | null;\n        blockDoesNotCollapse?: boolean | null;\n        blockPadding?: [top: number, right: number, bottom: number, left: number] | null;\n        /**\n         * Message to be rendered when hovering over the glyph margin decoration.\n         */\n        glyphMarginHoverMessage?: IMarkdownString | IMarkdownString[] | null;\n        /**\n         * Array of MarkdownString to render as the decoration message.\n         */\n        hoverMessage?: IMarkdownString | IMarkdownString[] | null;\n        /**\n         * Array of MarkdownString to render as the line number message.\n         */\n        lineNumberHoverMessage?: IMarkdownString | IMarkdownString[] | null;\n        /**\n         * Should the decoration expand to encompass a whole line.\n         */\n        isWholeLine?: boolean;\n        /**\n         * Always render the decoration (even when the range it encompasses is collapsed).\n         */\n        showIfCollapsed?: boolean;\n        /**\n         * Specifies the stack order of a decoration.\n         * A decoration with greater stack order is always in front of a decoration with\n         * a lower stack order when the decorations are on the same line.\n         */\n        zIndex?: number;\n        /**\n         * If set, render this decoration in the overview ruler.\n         */\n        overviewRuler?: IModelDecorationOverviewRulerOptions | null;\n        /**\n         * If set, render this decoration in the minimap.\n         */\n        minimap?: IModelDecorationMinimapOptions | null;\n        /**\n         * If set, the decoration will be rendered in the glyph margin with this CSS class name.\n         */\n        glyphMarginClassName?: string | null;\n        /**\n         * If set and the decoration has {@link glyphMarginClassName} set, render this decoration\n         * with the specified {@link IModelDecorationGlyphMarginOptions} in the glyph margin.\n         */\n        glyphMargin?: IModelDecorationGlyphMarginOptions | null;\n        /**\n         * If set, the decoration will be rendered in the lines decorations with this CSS class name.\n         */\n        linesDecorationsClassName?: string | null;\n        /**\n         * Controls the tooltip text of the line decoration.\n         */\n        linesDecorationsTooltip?: string | null;\n        /**\n         * If set, the decoration will be rendered on the line number.\n         */\n        lineNumberClassName?: string | null;\n        /**\n         * If set, the decoration will be rendered in the lines decorations with this CSS class name, but only for the first line in case of line wrapping.\n         */\n        firstLineDecorationClassName?: string | null;\n        /**\n         * If set, the decoration will be rendered in the margin (covering its full width) with this CSS class name.\n         */\n        marginClassName?: string | null;\n        /**\n         * If set, the decoration will be rendered inline with the text with this CSS class name.\n         * Please use this only for CSS rules that must impact the text. For example, use `className`\n         * to have a background color decoration.\n         */\n        inlineClassName?: string | null;\n        /**\n         * If there is an `inlineClassName` which affects letter spacing.\n         */\n        inlineClassNameAffectsLetterSpacing?: boolean;\n        /**\n         * If set, the decoration will be rendered before the text with this CSS class name.\n         */\n        beforeContentClassName?: string | null;\n        /**\n         * If set, the decoration will be rendered after the text with this CSS class name.\n         */\n        afterContentClassName?: string | null;\n        /**\n         * If set, text will be injected in the view after the range.\n         */\n        after?: InjectedTextOptions | null;\n        /**\n         * If set, text will be injected in the view before the range.\n         */\n        before?: InjectedTextOptions | null;\n    }\n\n    /**\n     * Configures text that is injected into the view without changing the underlying document.\n    */\n    export interface InjectedTextOptions {\n        /**\n         * Sets the text to inject. Must be a single line.\n         */\n        readonly content: string;\n        /**\n         * If set, the decoration will be rendered inline with the text with this CSS class name.\n         */\n        readonly inlineClassName?: string | null;\n        /**\n         * If there is an `inlineClassName` which affects letter spacing.\n         */\n        readonly inlineClassNameAffectsLetterSpacing?: boolean;\n        /**\n         * This field allows to attach data to this injected text.\n         * The data can be read when injected texts at a given position are queried.\n         */\n        readonly attachedData?: unknown;\n        /**\n         * Configures cursor stops around injected text.\n         * Defaults to {@link InjectedTextCursorStops.Both}.\n        */\n        readonly cursorStops?: InjectedTextCursorStops | null;\n    }\n\n    export enum InjectedTextCursorStops {\n        Both = 0,\n        Right = 1,\n        Left = 2,\n        None = 3\n    }\n\n    /**\n     * New model decorations.\n     */\n    export interface IModelDeltaDecoration {\n        /**\n         * Range that this decoration covers.\n         */\n        range: IRange;\n        /**\n         * Options associated with this decoration.\n         */\n        options: IModelDecorationOptions;\n    }\n\n    /**\n     * A decoration in the model.\n     */\n    export interface IModelDecoration {\n        /**\n         * Identifier for a decoration.\n         */\n        readonly id: string;\n        /**\n         * Identifier for a decoration's owner.\n         */\n        readonly ownerId: number;\n        /**\n         * Range that this decoration covers.\n         */\n        readonly range: Range;\n        /**\n         * Options associated with this decoration.\n         */\n        readonly options: IModelDecorationOptions;\n    }\n\n    /**\n     * End of line character preference.\n     */\n    export enum EndOfLinePreference {\n        /**\n         * Use the end of line character identified in the text buffer.\n         */\n        TextDefined = 0,\n        /**\n         * Use line feed (\\n) as the end of line character.\n         */\n        LF = 1,\n        /**\n         * Use carriage return and line feed (\\r\\n) as the end of line character.\n         */\n        CRLF = 2\n    }\n\n    /**\n     * The default end of line to use when instantiating models.\n     */\n    export enum DefaultEndOfLine {\n        /**\n         * Use line feed (\\n) as the end of line character.\n         */\n        LF = 1,\n        /**\n         * Use carriage return and line feed (\\r\\n) as the end of line character.\n         */\n        CRLF = 2\n    }\n\n    /**\n     * End of line character preference.\n     */\n    export enum EndOfLineSequence {\n        /**\n         * Use line feed (\\n) as the end of line character.\n         */\n        LF = 0,\n        /**\n         * Use carriage return and line feed (\\r\\n) as the end of line character.\n         */\n        CRLF = 1\n    }\n\n    /**\n     * A single edit operation, that has an identifier.\n     */\n    export interface IIdentifiedSingleEditOperation extends ISingleEditOperation {\n    }\n\n    export interface IValidEditOperation {\n        /**\n         * The range to replace. This can be empty to emulate a simple insert.\n         */\n        range: Range;\n        /**\n         * The text to replace with. This can be empty to emulate a simple delete.\n         */\n        text: string;\n    }\n\n    /**\n     * A callback that can compute the cursor state after applying a series of edit operations.\n     */\n    export interface ICursorStateComputer {\n        /**\n         * A callback that can compute the resulting cursors state after some edit operations have been executed.\n         */\n        (inverseEditOperations: IValidEditOperation[]): Selection[] | null;\n    }\n\n    export class TextModelResolvedOptions {\n        _textModelResolvedOptionsBrand: void;\n        readonly tabSize: number;\n        readonly indentSize: number;\n        readonly insertSpaces: boolean;\n        readonly defaultEOL: DefaultEndOfLine;\n        readonly trimAutoWhitespace: boolean;\n        readonly bracketPairColorizationOptions: BracketPairColorizationOptions;\n        get originalIndentSize(): number | 'tabSize';\n    }\n\n    export interface BracketPairColorizationOptions {\n        enabled: boolean;\n        independentColorPoolPerBracketType: boolean;\n    }\n\n    export interface ITextModelUpdateOptions {\n        tabSize?: number;\n        indentSize?: number | 'tabSize';\n        insertSpaces?: boolean;\n        trimAutoWhitespace?: boolean;\n        bracketColorizationOptions?: BracketPairColorizationOptions;\n    }\n\n    export class FindMatch {\n        _findMatchBrand: void;\n        readonly range: Range;\n        readonly matches: string[] | null;\n    }\n\n    /**\n     * Describes the behavior of decorations when typing/editing near their edges.\n     * Note: Please do not edit the values, as they very carefully match `DecorationRangeBehavior`\n     */\n    export enum TrackedRangeStickiness {\n        AlwaysGrowsWhenTypingAtEdges = 0,\n        NeverGrowsWhenTypingAtEdges = 1,\n        GrowsOnlyWhenTypingBefore = 2,\n        GrowsOnlyWhenTypingAfter = 3\n    }\n\n    /**\n     * Text snapshot that works like an iterator.\n     * Will try to return chunks of roughly ~64KB size.\n     * Will return null when finished.\n     */\n    export interface ITextSnapshot {\n        read(): string | null;\n    }\n\n    /**\n     * A model.\n     */\n    export interface ITextModel {\n        /**\n         * Gets the resource associated with this editor model.\n         */\n        readonly uri: Uri;\n        /**\n         * A unique identifier associated with this model.\n         */\n        readonly id: string;\n        /**\n         * Get the resolved options for this model.\n         */\n        getOptions(): TextModelResolvedOptions;\n        /**\n         * Get the current version id of the model.\n         * Anytime a change happens to the model (even undo/redo),\n         * the version id is incremented.\n         */\n        getVersionId(): number;\n        /**\n         * Get the alternative version id of the model.\n         * This alternative version id is not always incremented,\n         * it will return the same values in the case of undo-redo.\n         */\n        getAlternativeVersionId(): number;\n        /**\n         * Replace the entire text buffer value contained in this model.\n         */\n        setValue(newValue: string | ITextSnapshot): void;\n        /**\n         * Get the text stored in this model.\n         * @param eol The end of line character preference. Defaults to `EndOfLinePreference.TextDefined`.\n         * @param preserverBOM Preserve a BOM character if it was detected when the model was constructed.\n         * @return The text.\n         */\n        getValue(eol?: EndOfLinePreference, preserveBOM?: boolean): string;\n        /**\n         * Get the text stored in this model.\n         * @param preserverBOM Preserve a BOM character if it was detected when the model was constructed.\n         * @return The text snapshot (it is safe to consume it asynchronously).\n         */\n        createSnapshot(preserveBOM?: boolean): ITextSnapshot;\n        /**\n         * Get the length of the text stored in this model.\n         */\n        getValueLength(eol?: EndOfLinePreference, preserveBOM?: boolean): number;\n        /**\n         * Get the text in a certain range.\n         * @param range The range describing what text to get.\n         * @param eol The end of line character preference. This will only be used for multiline ranges. Defaults to `EndOfLinePreference.TextDefined`.\n         * @return The text.\n         */\n        getValueInRange(range: IRange, eol?: EndOfLinePreference): string;\n        /**\n         * Get the length of text in a certain range.\n         * @param range The range describing what text length to get.\n         * @return The text length.\n         */\n        getValueLengthInRange(range: IRange, eol?: EndOfLinePreference): number;\n        /**\n         * Get the character count of text in a certain range.\n         * @param range The range describing what text length to get.\n         */\n        getCharacterCountInRange(range: IRange, eol?: EndOfLinePreference): number;\n        /**\n         * Get the number of lines in the model.\n         */\n        getLineCount(): number;\n        /**\n         * Get the text for a certain line.\n         */\n        getLineContent(lineNumber: number): string;\n        /**\n         * Get the text length for a certain line.\n         */\n        getLineLength(lineNumber: number): number;\n        /**\n         * Get the text for all lines.\n         */\n        getLinesContent(): string[];\n        /**\n         * Get the end of line sequence predominantly used in the text buffer.\n         * @return EOL char sequence (e.g.: '\\n' or '\\r\\n').\n         */\n        getEOL(): string;\n        /**\n         * Get the end of line sequence predominantly used in the text buffer.\n         */\n        getEndOfLineSequence(): EndOfLineSequence;\n        /**\n         * Get the minimum legal column for line at `lineNumber`\n         */\n        getLineMinColumn(lineNumber: number): number;\n        /**\n         * Get the maximum legal column for line at `lineNumber`\n         */\n        getLineMaxColumn(lineNumber: number): number;\n        /**\n         * Returns the column before the first non whitespace character for line at `lineNumber`.\n         * Returns 0 if line is empty or contains only whitespace.\n         */\n        getLineFirstNonWhitespaceColumn(lineNumber: number): number;\n        /**\n         * Returns the column after the last non whitespace character for line at `lineNumber`.\n         * Returns 0 if line is empty or contains only whitespace.\n         */\n        getLineLastNonWhitespaceColumn(lineNumber: number): number;\n        /**\n         * Create a valid position.\n         */\n        validatePosition(position: IPosition): Position;\n        /**\n         * Advances the given position by the given offset (negative offsets are also accepted)\n         * and returns it as a new valid position.\n         *\n         * If the offset and position are such that their combination goes beyond the beginning or\n         * end of the model, throws an exception.\n         *\n         * If the offset is such that the new position would be in the middle of a multi-byte\n         * line terminator, throws an exception.\n         */\n        modifyPosition(position: IPosition, offset: number): Position;\n        /**\n         * Create a valid range.\n         */\n        validateRange(range: IRange): Range;\n        /**\n         * Converts the position to a zero-based offset.\n         *\n         * The position will be [adjusted](#TextDocument.validatePosition).\n         *\n         * @param position A position.\n         * @return A valid zero-based offset.\n         */\n        getOffsetAt(position: IPosition): number;\n        /**\n         * Converts a zero-based offset to a position.\n         *\n         * @param offset A zero-based offset.\n         * @return A valid [position](#Position).\n         */\n        getPositionAt(offset: number): Position;\n        /**\n         * Get a range covering the entire model.\n         */\n        getFullModelRange(): Range;\n        /**\n         * Returns if the model was disposed or not.\n         */\n        isDisposed(): boolean;\n        /**\n         * Search the model.\n         * @param searchString The string used to search. If it is a regular expression, set `isRegex` to true.\n         * @param searchOnlyEditableRange Limit the searching to only search inside the editable range of the model.\n         * @param isRegex Used to indicate that `searchString` is a regular expression.\n         * @param matchCase Force the matching to match lower/upper case exactly.\n         * @param wordSeparators Force the matching to match entire words only. Pass null otherwise.\n         * @param captureMatches The result will contain the captured groups.\n         * @param limitResultCount Limit the number of results\n         * @return The ranges where the matches are. It is empty if not matches have been found.\n         */\n        findMatches(searchString: string, searchOnlyEditableRange: boolean, isRegex: boolean, matchCase: boolean, wordSeparators: string | null, captureMatches: boolean, limitResultCount?: number): FindMatch[];\n        /**\n         * Search the model.\n         * @param searchString The string used to search. If it is a regular expression, set `isRegex` to true.\n         * @param searchScope Limit the searching to only search inside these ranges.\n         * @param isRegex Used to indicate that `searchString` is a regular expression.\n         * @param matchCase Force the matching to match lower/upper case exactly.\n         * @param wordSeparators Force the matching to match entire words only. Pass null otherwise.\n         * @param captureMatches The result will contain the captured groups.\n         * @param limitResultCount Limit the number of results\n         * @return The ranges where the matches are. It is empty if no matches have been found.\n         */\n        findMatches(searchString: string, searchScope: IRange | IRange[], isRegex: boolean, matchCase: boolean, wordSeparators: string | null, captureMatches: boolean, limitResultCount?: number): FindMatch[];\n        /**\n         * Search the model for the next match. Loops to the beginning of the model if needed.\n         * @param searchString The string used to search. If it is a regular expression, set `isRegex` to true.\n         * @param searchStart Start the searching at the specified position.\n         * @param isRegex Used to indicate that `searchString` is a regular expression.\n         * @param matchCase Force the matching to match lower/upper case exactly.\n         * @param wordSeparators Force the matching to match entire words only. Pass null otherwise.\n         * @param captureMatches The result will contain the captured groups.\n         * @return The range where the next match is. It is null if no next match has been found.\n         */\n        findNextMatch(searchString: string, searchStart: IPosition, isRegex: boolean, matchCase: boolean, wordSeparators: string | null, captureMatches: boolean): FindMatch | null;\n        /**\n         * Search the model for the previous match. Loops to the end of the model if needed.\n         * @param searchString The string used to search. If it is a regular expression, set `isRegex` to true.\n         * @param searchStart Start the searching at the specified position.\n         * @param isRegex Used to indicate that `searchString` is a regular expression.\n         * @param matchCase Force the matching to match lower/upper case exactly.\n         * @param wordSeparators Force the matching to match entire words only. Pass null otherwise.\n         * @param captureMatches The result will contain the captured groups.\n         * @return The range where the previous match is. It is null if no previous match has been found.\n         */\n        findPreviousMatch(searchString: string, searchStart: IPosition, isRegex: boolean, matchCase: boolean, wordSeparators: string | null, captureMatches: boolean): FindMatch | null;\n        /**\n         * Get the language associated with this model.\n         */\n        getLanguageId(): string;\n        /**\n         * Get the word under or besides `position`.\n         * @param position The position to look for a word.\n         * @return The word under or besides `position`. Might be null.\n         */\n        getWordAtPosition(position: IPosition): IWordAtPosition | null;\n        /**\n         * Get the word under or besides `position` trimmed to `position`.column\n         * @param position The position to look for a word.\n         * @return The word under or besides `position`. Will never be null.\n         */\n        getWordUntilPosition(position: IPosition): IWordAtPosition;\n        /**\n         * Perform a minimum amount of operations, in order to transform the decorations\n         * identified by `oldDecorations` to the decorations described by `newDecorations`\n         * and returns the new identifiers associated with the resulting decorations.\n         *\n         * @param oldDecorations Array containing previous decorations identifiers.\n         * @param newDecorations Array describing what decorations should result after the call.\n         * @param ownerId Identifies the editor id in which these decorations should appear. If no `ownerId` is provided, the decorations will appear in all editors that attach this model.\n         * @return An array containing the new decorations identifiers.\n         */\n        deltaDecorations(oldDecorations: string[], newDecorations: IModelDeltaDecoration[], ownerId?: number): string[];\n        /**\n         * Get the options associated with a decoration.\n         * @param id The decoration id.\n         * @return The decoration options or null if the decoration was not found.\n         */\n        getDecorationOptions(id: string): IModelDecorationOptions | null;\n        /**\n         * Get the range associated with a decoration.\n         * @param id The decoration id.\n         * @return The decoration range or null if the decoration was not found.\n         */\n        getDecorationRange(id: string): Range | null;\n        /**\n         * Gets all the decorations for the line `lineNumber` as an array.\n         * @param lineNumber The line number\n         * @param ownerId If set, it will ignore decorations belonging to other owners.\n         * @param filterOutValidation If set, it will ignore decorations specific to validation (i.e. warnings, errors).\n         * @return An array with the decorations\n         */\n        getLineDecorations(lineNumber: number, ownerId?: number, filterOutValidation?: boolean): IModelDecoration[];\n        /**\n         * Gets all the decorations for the lines between `startLineNumber` and `endLineNumber` as an array.\n         * @param startLineNumber The start line number\n         * @param endLineNumber The end line number\n         * @param ownerId If set, it will ignore decorations belonging to other owners.\n         * @param filterOutValidation If set, it will ignore decorations specific to validation (i.e. warnings, errors).\n         * @return An array with the decorations\n         */\n        getLinesDecorations(startLineNumber: number, endLineNumber: number, ownerId?: number, filterOutValidation?: boolean): IModelDecoration[];\n        /**\n         * Gets all the decorations in a range as an array. Only `startLineNumber` and `endLineNumber` from `range` are used for filtering.\n         * So for now it returns all the decorations on the same line as `range`.\n         * @param range The range to search in\n         * @param ownerId If set, it will ignore decorations belonging to other owners.\n         * @param filterOutValidation If set, it will ignore decorations specific to validation (i.e. warnings, errors).\n         * @param onlyMinimapDecorations If set, it will return only decorations that render in the minimap.\n         * @param onlyMarginDecorations If set, it will return only decorations that render in the glyph margin.\n         * @return An array with the decorations\n         */\n        getDecorationsInRange(range: IRange, ownerId?: number, filterOutValidation?: boolean, onlyMinimapDecorations?: boolean, onlyMarginDecorations?: boolean): IModelDecoration[];\n        /**\n         * Gets all the decorations as an array.\n         * @param ownerId If set, it will ignore decorations belonging to other owners.\n         * @param filterOutValidation If set, it will ignore decorations specific to validation (i.e. warnings, errors).\n         */\n        getAllDecorations(ownerId?: number, filterOutValidation?: boolean): IModelDecoration[];\n        /**\n         * Gets all decorations that render in the glyph margin as an array.\n         * @param ownerId If set, it will ignore decorations belonging to other owners.\n         */\n        getAllMarginDecorations(ownerId?: number): IModelDecoration[];\n        /**\n         * Gets all the decorations that should be rendered in the overview ruler as an array.\n         * @param ownerId If set, it will ignore decorations belonging to other owners.\n         * @param filterOutValidation If set, it will ignore decorations specific to validation (i.e. warnings, errors).\n         */\n        getOverviewRulerDecorations(ownerId?: number, filterOutValidation?: boolean): IModelDecoration[];\n        /**\n         * Gets all the decorations that contain injected text.\n         * @param ownerId If set, it will ignore decorations belonging to other owners.\n         */\n        getInjectedTextDecorations(ownerId?: number): IModelDecoration[];\n        /**\n         * Normalize a string containing whitespace according to indentation rules (converts to spaces or to tabs).\n         */\n        normalizeIndentation(str: string): string;\n        /**\n         * Change the options of this model.\n         */\n        updateOptions(newOpts: ITextModelUpdateOptions): void;\n        /**\n         * Detect the indentation options for this model from its content.\n         */\n        detectIndentation(defaultInsertSpaces: boolean, defaultTabSize: number): void;\n        /**\n         * Close the current undo-redo element.\n         * This offers a way to create an undo/redo stop point.\n         */\n        pushStackElement(): void;\n        /**\n         * Open the current undo-redo element.\n         * This offers a way to remove the current undo/redo stop point.\n         */\n        popStackElement(): void;\n        /**\n         * Push edit operations, basically editing the model. This is the preferred way\n         * of editing the model. The edit operations will land on the undo stack.\n         * @param beforeCursorState The cursor state before the edit operations. This cursor state will be returned when `undo` or `redo` are invoked.\n         * @param editOperations The edit operations.\n         * @param cursorStateComputer A callback that can compute the resulting cursors state after the edit operations have been executed.\n         * @return The cursor state returned by the `cursorStateComputer`.\n         */\n        pushEditOperations(beforeCursorState: Selection[] | null, editOperations: IIdentifiedSingleEditOperation[], cursorStateComputer: ICursorStateComputer): Selection[] | null;\n        /**\n         * Change the end of line sequence. This is the preferred way of\n         * changing the eol sequence. This will land on the undo stack.\n         */\n        pushEOL(eol: EndOfLineSequence): void;\n        /**\n         * Edit the model without adding the edits to the undo stack.\n         * This can have dire consequences on the undo stack! See @pushEditOperations for the preferred way.\n         * @param operations The edit operations.\n         * @return If desired, the inverse edit operations, that, when applied, will bring the model back to the previous state.\n         */\n        applyEdits(operations: IIdentifiedSingleEditOperation[]): void;\n        applyEdits(operations: IIdentifiedSingleEditOperation[], computeUndoEdits: false): void;\n        applyEdits(operations: IIdentifiedSingleEditOperation[], computeUndoEdits: true): IValidEditOperation[];\n        /**\n         * Change the end of line sequence without recording in the undo stack.\n         * This can have dire consequences on the undo stack! See @pushEOL for the preferred way.\n         */\n        setEOL(eol: EndOfLineSequence): void;\n        /**\n         * An event emitted when the contents of the model have changed.\n         * @event\n         */\n        onDidChangeContent(listener: (e: IModelContentChangedEvent) => void): IDisposable;\n        /**\n         * An event emitted when decorations of the model have changed.\n         * @event\n         */\n        readonly onDidChangeDecorations: IEvent<IModelDecorationsChangedEvent>;\n        /**\n         * An event emitted when the model options have changed.\n         * @event\n         */\n        readonly onDidChangeOptions: IEvent<IModelOptionsChangedEvent>;\n        /**\n         * An event emitted when the language associated with the model has changed.\n         * @event\n         */\n        readonly onDidChangeLanguage: IEvent<IModelLanguageChangedEvent>;\n        /**\n         * An event emitted when the language configuration associated with the model has changed.\n         * @event\n         */\n        readonly onDidChangeLanguageConfiguration: IEvent<IModelLanguageConfigurationChangedEvent>;\n        /**\n         * An event emitted when the model has been attached to the first editor or detached from the last editor.\n         * @event\n         */\n        readonly onDidChangeAttached: IEvent<void>;\n        /**\n         * An event emitted right before disposing the model.\n         * @event\n         */\n        readonly onWillDispose: IEvent<void>;\n        /**\n         * Destroy this model.\n         */\n        dispose(): void;\n        /**\n         * Returns if this model is attached to an editor or not.\n         */\n        isAttachedToEditor(): boolean;\n    }\n\n    export enum PositionAffinity {\n        /**\n         * Prefers the left most position.\n        */\n        Left = 0,\n        /**\n         * Prefers the right most position.\n        */\n        Right = 1,\n        /**\n         * No preference.\n        */\n        None = 2,\n        /**\n         * If the given position is on injected text, prefers the position left of it.\n        */\n        LeftOfInjectedText = 3,\n        /**\n         * If the given position is on injected text, prefers the position right of it.\n        */\n        RightOfInjectedText = 4\n    }\n\n    /**\n     * A change\n     */\n    export interface IChange {\n        readonly originalStartLineNumber: number;\n        readonly originalEndLineNumber: number;\n        readonly modifiedStartLineNumber: number;\n        readonly modifiedEndLineNumber: number;\n    }\n\n    /**\n     * A character level change.\n     */\n    export interface ICharChange extends IChange {\n        readonly originalStartColumn: number;\n        readonly originalEndColumn: number;\n        readonly modifiedStartColumn: number;\n        readonly modifiedEndColumn: number;\n    }\n\n    /**\n     * A line change\n     */\n    export interface ILineChange extends IChange {\n        readonly charChanges: ICharChange[] | undefined;\n    }\n    export interface IDimension {\n        width: number;\n        height: number;\n    }\n\n    /**\n     * A builder and helper for edit operations for a command.\n     */\n    export interface IEditOperationBuilder {\n        /**\n         * Add a new edit operation (a replace operation).\n         * @param range The range to replace (delete). May be empty to represent a simple insert.\n         * @param text The text to replace with. May be null to represent a simple delete.\n         */\n        addEditOperation(range: IRange, text: string | null, forceMoveMarkers?: boolean): void;\n        /**\n         * Add a new edit operation (a replace operation).\n         * The inverse edits will be accessible in `ICursorStateComputerData.getInverseEditOperations()`\n         * @param range The range to replace (delete). May be empty to represent a simple insert.\n         * @param text The text to replace with. May be null to represent a simple delete.\n         */\n        addTrackedEditOperation(range: IRange, text: string | null, forceMoveMarkers?: boolean): void;\n        /**\n         * Track `selection` when applying edit operations.\n         * A best effort will be made to not grow/expand the selection.\n         * An empty selection will clamp to a nearby character.\n         * @param selection The selection to track.\n         * @param trackPreviousOnEmpty If set, and the selection is empty, indicates whether the selection\n         *           should clamp to the previous or the next character.\n         * @return A unique identifier.\n         */\n        trackSelection(selection: Selection, trackPreviousOnEmpty?: boolean): string;\n    }\n\n    /**\n     * A helper for computing cursor state after a command.\n     */\n    export interface ICursorStateComputerData {\n        /**\n         * Get the inverse edit operations of the added edit operations.\n         */\n        getInverseEditOperations(): IValidEditOperation[];\n        /**\n         * Get a previously tracked selection.\n         * @param id The unique identifier returned by `trackSelection`.\n         * @return The selection.\n         */\n        getTrackedSelection(id: string): Selection;\n    }\n\n    /**\n     * A command that modifies text / cursor state on a model.\n     */\n    export interface ICommand {\n        /**\n         * Get the edit operations needed to execute this command.\n         * @param model The model the command will execute on.\n         * @param builder A helper to collect the needed edit operations and to track selections.\n         */\n        getEditOperations(model: ITextModel, builder: IEditOperationBuilder): void;\n        /**\n         * Compute the cursor state after the edit operations were applied.\n         * @param model The model the command has executed on.\n         * @param helper A helper to get inverse edit operations and to get previously tracked selections.\n         * @return The cursor state after the command executed.\n         */\n        computeCursorState(model: ITextModel, helper: ICursorStateComputerData): Selection;\n    }\n\n    /**\n     * A model for the diff editor.\n     */\n    export interface IDiffEditorModel {\n        /**\n         * Original model.\n         */\n        original: ITextModel;\n        /**\n         * Modified model.\n         */\n        modified: ITextModel;\n    }\n\n    export interface IDiffEditorViewModel extends IDisposable {\n        readonly model: IDiffEditorModel;\n        waitForDiff(): Promise<void>;\n    }\n\n    /**\n     * An event describing that an editor has had its model reset (i.e. `editor.setModel()`).\n     */\n    export interface IModelChangedEvent {\n        /**\n         * The `uri` of the previous model or null.\n         */\n        readonly oldModelUrl: Uri | null;\n        /**\n         * The `uri` of the new model or null.\n         */\n        readonly newModelUrl: Uri | null;\n    }\n\n    export interface IContentSizeChangedEvent {\n        readonly contentWidth: number;\n        readonly contentHeight: number;\n        readonly contentWidthChanged: boolean;\n        readonly contentHeightChanged: boolean;\n    }\n\n    export interface INewScrollPosition {\n        scrollLeft?: number;\n        scrollTop?: number;\n    }\n\n    export interface IEditorAction {\n        readonly id: string;\n        readonly label: string;\n        readonly alias: string;\n        readonly metadata: ICommandMetadata | undefined;\n        isSupported(): boolean;\n        run(args?: unknown): Promise<void>;\n    }\n\n    export type IEditorModel = ITextModel | IDiffEditorModel | IDiffEditorViewModel;\n\n    /**\n     * A (serializable) state of the cursors.\n     */\n    export interface ICursorState {\n        inSelectionMode: boolean;\n        selectionStart: IPosition;\n        position: IPosition;\n    }\n\n    /**\n     * A (serializable) state of the view.\n     */\n    export interface IViewState {\n        /** written by previous versions */\n        scrollTop?: number;\n        /** written by previous versions */\n        scrollTopWithoutViewZones?: number;\n        scrollLeft: number;\n        firstPosition: IPosition;\n        firstPositionDeltaTop: number;\n    }\n\n    /**\n     * A (serializable) state of the code editor.\n     */\n    export interface ICodeEditorViewState {\n        cursorState: ICursorState[];\n        viewState: IViewState;\n        contributionsState: {\n            [id: string]: any;\n        };\n    }\n\n    /**\n     * (Serializable) View state for the diff editor.\n     */\n    export interface IDiffEditorViewState {\n        original: ICodeEditorViewState | null;\n        modified: ICodeEditorViewState | null;\n        modelState?: unknown;\n    }\n\n    /**\n     * An editor view state.\n     */\n    export type IEditorViewState = ICodeEditorViewState | IDiffEditorViewState;\n\n    export enum ScrollType {\n        Smooth = 0,\n        Immediate = 1\n    }\n\n    /**\n     * An editor.\n     */\n    export interface IEditor {\n        /**\n         * An event emitted when the editor has been disposed.\n         * @event\n         */\n        onDidDispose(listener: () => void): IDisposable;\n        /**\n         * Dispose the editor.\n         */\n        dispose(): void;\n        /**\n         * Get a unique id for this editor instance.\n         */\n        getId(): string;\n        /**\n         * Get the editor type. Please see `EditorType`.\n         * This is to avoid an instanceof check\n         */\n        getEditorType(): string;\n        /**\n         * Update the editor's options after the editor has been created.\n         */\n        updateOptions(newOptions: IEditorOptions): void;\n        /**\n         * Instructs the editor to remeasure its container. This method should\n         * be called when the container of the editor gets resized.\n         *\n         * If a dimension is passed in, the passed in value will be used.\n         *\n         * By default, this will also render the editor immediately.\n         * If you prefer to delay rendering to the next animation frame, use postponeRendering == true.\n         */\n        layout(dimension?: IDimension, postponeRendering?: boolean): void;\n        /**\n         * Brings browser focus to the editor text\n         */\n        focus(): void;\n        /**\n         * Returns true if the text inside this editor is focused (i.e. cursor is blinking).\n         */\n        hasTextFocus(): boolean;\n        /**\n         * Returns all actions associated with this editor.\n         */\n        getSupportedActions(): IEditorAction[];\n        /**\n         * Saves current view state of the editor in a serializable object.\n         */\n        saveViewState(): IEditorViewState | null;\n        /**\n         * Restores the view state of the editor from a serializable object generated by `saveViewState`.\n         */\n        restoreViewState(state: IEditorViewState | null): void;\n        /**\n         * Given a position, returns a column number that takes tab-widths into account.\n         */\n        getVisibleColumnFromPosition(position: IPosition): number;\n        /**\n         * Returns the primary position of the cursor.\n         */\n        getPosition(): Position | null;\n        /**\n         * Set the primary position of the cursor. This will remove any secondary cursors.\n         * @param position New primary cursor's position\n         * @param source Source of the call that caused the position\n         */\n        setPosition(position: IPosition, source?: string): void;\n        /**\n         * Scroll vertically as necessary and reveal a line.\n         */\n        revealLine(lineNumber: number, scrollType?: ScrollType): void;\n        /**\n         * Scroll vertically as necessary and reveal a line centered vertically.\n         */\n        revealLineInCenter(lineNumber: number, scrollType?: ScrollType): void;\n        /**\n         * Scroll vertically as necessary and reveal a line centered vertically only if it lies outside the viewport.\n         */\n        revealLineInCenterIfOutsideViewport(lineNumber: number, scrollType?: ScrollType): void;\n        /**\n         * Scroll vertically as necessary and reveal a line close to the top of the viewport,\n         * optimized for viewing a code definition.\n         */\n        revealLineNearTop(lineNumber: number, scrollType?: ScrollType): void;\n        /**\n         * Scroll vertically or horizontally as necessary and reveal a position.\n         */\n        revealPosition(position: IPosition, scrollType?: ScrollType): void;\n        /**\n         * Scroll vertically or horizontally as necessary and reveal a position centered vertically.\n         */\n        revealPositionInCenter(position: IPosition, scrollType?: ScrollType): void;\n        /**\n         * Scroll vertically or horizontally as necessary and reveal a position centered vertically only if it lies outside the viewport.\n         */\n        revealPositionInCenterIfOutsideViewport(position: IPosition, scrollType?: ScrollType): void;\n        /**\n         * Scroll vertically or horizontally as necessary and reveal a position close to the top of the viewport,\n         * optimized for viewing a code definition.\n         */\n        revealPositionNearTop(position: IPosition, scrollType?: ScrollType): void;\n        /**\n         * Returns the primary selection of the editor.\n         */\n        getSelection(): Selection | null;\n        /**\n         * Returns all the selections of the editor.\n         */\n        getSelections(): Selection[] | null;\n        /**\n         * Set the primary selection of the editor. This will remove any secondary cursors.\n         * @param selection The new selection\n         * @param source Source of the call that caused the selection\n         */\n        setSelection(selection: IRange, source?: string): void;\n        /**\n         * Set the primary selection of the editor. This will remove any secondary cursors.\n         * @param selection The new selection\n         * @param source Source of the call that caused the selection\n         */\n        setSelection(selection: Range, source?: string): void;\n        /**\n         * Set the primary selection of the editor. This will remove any secondary cursors.\n         * @param selection The new selection\n         * @param source Source of the call that caused the selection\n         */\n        setSelection(selection: ISelection, source?: string): void;\n        /**\n         * Set the primary selection of the editor. This will remove any secondary cursors.\n         * @param selection The new selection\n         * @param source Source of the call that caused the selection\n         */\n        setSelection(selection: Selection, source?: string): void;\n        /**\n         * Set the selections for all the cursors of the editor.\n         * Cursors will be removed or added, as necessary.\n         * @param selections The new selection\n         * @param source Source of the call that caused the selection\n         */\n        setSelections(selections: readonly ISelection[], source?: string): void;\n        /**\n         * Scroll vertically as necessary and reveal lines.\n         */\n        revealLines(startLineNumber: number, endLineNumber: number, scrollType?: ScrollType): void;\n        /**\n         * Scroll vertically as necessary and reveal lines centered vertically.\n         */\n        revealLinesInCenter(lineNumber: number, endLineNumber: number, scrollType?: ScrollType): void;\n        /**\n         * Scroll vertically as necessary and reveal lines centered vertically only if it lies outside the viewport.\n         */\n        revealLinesInCenterIfOutsideViewport(lineNumber: number, endLineNumber: number, scrollType?: ScrollType): void;\n        /**\n         * Scroll vertically as necessary and reveal lines close to the top of the viewport,\n         * optimized for viewing a code definition.\n         */\n        revealLinesNearTop(lineNumber: number, endLineNumber: number, scrollType?: ScrollType): void;\n        /**\n         * Scroll vertically or horizontally as necessary and reveal a range.\n         */\n        revealRange(range: IRange, scrollType?: ScrollType): void;\n        /**\n         * Scroll vertically or horizontally as necessary and reveal a range centered vertically.\n         */\n        revealRangeInCenter(range: IRange, scrollType?: ScrollType): void;\n        /**\n         * Scroll vertically or horizontally as necessary and reveal a range at the top of the viewport.\n         */\n        revealRangeAtTop(range: IRange, scrollType?: ScrollType): void;\n        /**\n         * Scroll vertically or horizontally as necessary and reveal a range centered vertically only if it lies outside the viewport.\n         */\n        revealRangeInCenterIfOutsideViewport(range: IRange, scrollType?: ScrollType): void;\n        /**\n         * Scroll vertically or horizontally as necessary and reveal a range close to the top of the viewport,\n         * optimized for viewing a code definition.\n         */\n        revealRangeNearTop(range: IRange, scrollType?: ScrollType): void;\n        /**\n         * Scroll vertically or horizontally as necessary and reveal a range close to the top of the viewport,\n         * optimized for viewing a code definition. Only if it lies outside the viewport.\n         */\n        revealRangeNearTopIfOutsideViewport(range: IRange, scrollType?: ScrollType): void;\n        /**\n         * Directly trigger a handler or an editor action.\n         * @param source The source of the call.\n         * @param handlerId The id of the handler or the id of a contribution.\n         * @param payload Extra data to be sent to the handler.\n         */\n        trigger(source: string | null | undefined, handlerId: string, payload: any): void;\n        /**\n         * Gets the current model attached to this editor.\n         */\n        getModel(): IEditorModel | null;\n        /**\n         * Sets the current model attached to this editor.\n         * If the previous model was created by the editor via the value key in the options\n         * literal object, it will be destroyed. Otherwise, if the previous model was set\n         * via setModel, or the model key in the options literal object, the previous model\n         * will not be destroyed.\n         * It is safe to call setModel(null) to simply detach the current model from the editor.\n         */\n        setModel(model: IEditorModel | null): void;\n        /**\n         * Create a collection of decorations. All decorations added through this collection\n         * will get the ownerId of the editor (meaning they will not show up in other editors).\n         * These decorations will be automatically cleared when the editor's model changes.\n         */\n        createDecorationsCollection(decorations?: IModelDeltaDecoration[]): IEditorDecorationsCollection;\n    }\n\n    /**\n     * A collection of decorations\n     */\n    export interface IEditorDecorationsCollection {\n        /**\n         * An event emitted when decorations change in the editor,\n         * but the change is not caused by us setting or clearing the collection.\n         */\n        onDidChange: IEvent<IModelDecorationsChangedEvent>;\n        /**\n         * Get the decorations count.\n         */\n        length: number;\n        /**\n         * Get the range for a decoration.\n         */\n        getRange(index: number): Range | null;\n        /**\n         * Get all ranges for decorations.\n         */\n        getRanges(): Range[];\n        /**\n         * Determine if a decoration is in this collection.\n         */\n        has(decoration: IModelDecoration): boolean;\n        /**\n         * Replace all previous decorations with `newDecorations`.\n         */\n        set(newDecorations: readonly IModelDeltaDecoration[]): string[];\n        /**\n         * Append `newDecorations` to this collection.\n         */\n        append(newDecorations: readonly IModelDeltaDecoration[]): string[];\n        /**\n         * Remove all previous decorations.\n         */\n        clear(): void;\n    }\n\n    /**\n     * An editor contribution that gets created every time a new editor gets created and gets disposed when the editor gets disposed.\n     */\n    export interface IEditorContribution {\n        /**\n         * Dispose this contribution.\n         */\n        dispose(): void;\n        /**\n         * Store view state.\n         */\n        saveViewState?(): any;\n        /**\n         * Restore view state.\n         */\n        restoreViewState?(state: any): void;\n    }\n\n    /**\n     * The type of the `IEditor`.\n     */\n    export const EditorType: {\n        ICodeEditor: string;\n        IDiffEditor: string;\n    };\n\n    /**\n     * An event describing that the current language associated with a model has changed.\n     */\n    export interface IModelLanguageChangedEvent {\n        /**\n         * Previous language\n         */\n        readonly oldLanguage: string;\n        /**\n         * New language\n         */\n        readonly newLanguage: string;\n        /**\n         * Source of the call that caused the event.\n         */\n        readonly source: string;\n    }\n\n    /**\n     * An event describing that the language configuration associated with a model has changed.\n     */\n    export interface IModelLanguageConfigurationChangedEvent {\n    }\n\n    export interface IModelContentChange {\n        /**\n         * The range that got replaced.\n         */\n        readonly range: IRange;\n        /**\n         * The offset of the range that got replaced.\n         */\n        readonly rangeOffset: number;\n        /**\n         * The length of the range that got replaced.\n         */\n        readonly rangeLength: number;\n        /**\n         * The new text for the range.\n         */\n        readonly text: string;\n    }\n\n    /**\n     * An event describing a change in the text of a model.\n     */\n    export interface IModelContentChangedEvent {\n        readonly changes: IModelContentChange[];\n        /**\n         * The (new) end-of-line character.\n         */\n        readonly eol: string;\n        /**\n         * The new version id the model has transitioned to.\n         */\n        readonly versionId: number;\n        /**\n         * Flag that indicates that this event was generated while undoing.\n         */\n        readonly isUndoing: boolean;\n        /**\n         * Flag that indicates that this event was generated while redoing.\n         */\n        readonly isRedoing: boolean;\n        /**\n         * Flag that indicates that all decorations were lost with this edit.\n         * The model has been reset to a new value.\n         */\n        readonly isFlush: boolean;\n        /**\n         * Flag that indicates that this event describes an eol change.\n         */\n        readonly isEolChange: boolean;\n    }\n\n    /**\n     * An event describing that model decorations have changed.\n     */\n    export interface IModelDecorationsChangedEvent {\n        readonly affectsMinimap: boolean;\n        readonly affectsOverviewRuler: boolean;\n        readonly affectsGlyphMargin: boolean;\n        readonly affectsLineNumber: boolean;\n    }\n\n    export interface IModelOptionsChangedEvent {\n        readonly tabSize: boolean;\n        readonly indentSize: boolean;\n        readonly insertSpaces: boolean;\n        readonly trimAutoWhitespace: boolean;\n    }\n\n    /**\n     * Describes the reason the cursor has changed its position.\n     */\n    export enum CursorChangeReason {\n        /**\n         * Unknown or not set.\n         */\n        NotSet = 0,\n        /**\n         * A `model.setValue()` was called.\n         */\n        ContentFlush = 1,\n        /**\n         * The `model` has been changed outside of this cursor and the cursor recovers its position from associated markers.\n         */\n        RecoverFromMarkers = 2,\n        /**\n         * There was an explicit user gesture.\n         */\n        Explicit = 3,\n        /**\n         * There was a Paste.\n         */\n        Paste = 4,\n        /**\n         * There was an Undo.\n         */\n        Undo = 5,\n        /**\n         * There was a Redo.\n         */\n        Redo = 6\n    }\n\n    /**\n     * An event describing that the cursor position has changed.\n     */\n    export interface ICursorPositionChangedEvent {\n        /**\n         * Primary cursor's position.\n         */\n        readonly position: Position;\n        /**\n         * Secondary cursors' position.\n         */\n        readonly secondaryPositions: Position[];\n        /**\n         * Reason.\n         */\n        readonly reason: CursorChangeReason;\n        /**\n         * Source of the call that caused the event.\n         */\n        readonly source: string;\n    }\n\n    /**\n     * An event describing that the cursor selection has changed.\n     */\n    export interface ICursorSelectionChangedEvent {\n        /**\n         * The primary selection.\n         */\n        readonly selection: Selection;\n        /**\n         * The secondary selections.\n         */\n        readonly secondarySelections: Selection[];\n        /**\n         * The model version id.\n         */\n        readonly modelVersionId: number;\n        /**\n         * The old selections.\n         */\n        readonly oldSelections: Selection[] | null;\n        /**\n         * The model version id the that `oldSelections` refer to.\n         */\n        readonly oldModelVersionId: number;\n        /**\n         * Source of the call that caused the event.\n         */\n        readonly source: string;\n        /**\n         * Reason.\n         */\n        readonly reason: CursorChangeReason;\n    }\n\n    export enum AccessibilitySupport {\n        /**\n         * This should be the browser case where it is not known if a screen reader is attached or no.\n         */\n        Unknown = 0,\n        Disabled = 1,\n        Enabled = 2\n    }\n\n    /**\n     * Configuration options for auto closing quotes and brackets\n     */\n    export type EditorAutoClosingStrategy = 'always' | 'languageDefined' | 'beforeWhitespace' | 'never';\n\n    /**\n     * Configuration options for auto wrapping quotes and brackets\n     */\n    export type EditorAutoSurroundStrategy = 'languageDefined' | 'quotes' | 'brackets' | 'never';\n\n    /**\n     * Configuration options for typing over closing quotes or brackets\n     */\n    export type EditorAutoClosingEditStrategy = 'always' | 'auto' | 'never';\n\n    /**\n     * Configuration options for auto indentation in the editor\n     */\n    export enum EditorAutoIndentStrategy {\n        None = 0,\n        Keep = 1,\n        Brackets = 2,\n        Advanced = 3,\n        Full = 4\n    }\n\n    /**\n     * Configuration options for the editor.\n     */\n    export interface IEditorOptions {\n        /**\n         * This editor is used inside a diff editor.\n         */\n        inDiffEditor?: boolean;\n        /**\n         * The aria label for the editor's textarea (when it is focused).\n         */\n        ariaLabel?: string;\n        /**\n         * Whether the aria-required attribute should be set on the editors textarea.\n         */\n        ariaRequired?: boolean;\n        /**\n         * Control whether a screen reader announces inline suggestion content immediately.\n         */\n        screenReaderAnnounceInlineSuggestion?: boolean;\n        /**\n         * The `tabindex` property of the editor's textarea\n         */\n        tabIndex?: number;\n        /**\n         * Render vertical lines at the specified columns.\n         * Defaults to empty array.\n         */\n        rulers?: (number | IRulerOption)[];\n        /**\n         * Locales used for segmenting lines into words when doing word related navigations or operations.\n         *\n         * Specify the BCP 47 language tag of the word you wish to recognize (e.g., ja, zh-CN, zh-Hant-TW, etc.).\n         * Defaults to empty array\n         */\n        wordSegmenterLocales?: string | string[];\n        /**\n         * A string containing the word separators used when doing word navigation.\n         * Defaults to `~!@#$%^&*()-=+[{]}\\\\|;:\\'\",.<>/?\n         */\n        wordSeparators?: string;\n        /**\n         * Enable Linux primary clipboard.\n         * Defaults to true.\n         */\n        selectionClipboard?: boolean;\n        /**\n         * Control the rendering of line numbers.\n         * If it is a function, it will be invoked when rendering a line number and the return value will be rendered.\n         * Otherwise, if it is a truthy, line numbers will be rendered normally (equivalent of using an identity function).\n         * Otherwise, line numbers will not be rendered.\n         * Defaults to `on`.\n         */\n        lineNumbers?: LineNumbersType;\n        /**\n         * Controls the minimal number of visible leading and trailing lines surrounding the cursor.\n         * Defaults to 0.\n        */\n        cursorSurroundingLines?: number;\n        /**\n         * Controls when `cursorSurroundingLines` should be enforced\n         * Defaults to `default`, `cursorSurroundingLines` is not enforced when cursor position is changed\n         * by mouse.\n        */\n        cursorSurroundingLinesStyle?: 'default' | 'all';\n        /**\n         * Render last line number when the file ends with a newline.\n         * Defaults to 'on' for Windows and macOS and 'dimmed' for Linux.\n        */\n        renderFinalNewline?: 'on' | 'off' | 'dimmed';\n        /**\n         * Remove unusual line terminators like LINE SEPARATOR (LS), PARAGRAPH SEPARATOR (PS).\n         * Defaults to 'prompt'.\n         */\n        unusualLineTerminators?: 'auto' | 'off' | 'prompt';\n        /**\n         * Should the corresponding line be selected when clicking on the line number?\n         * Defaults to true.\n         */\n        selectOnLineNumbers?: boolean;\n        /**\n         * Control the width of line numbers, by reserving horizontal space for rendering at least an amount of digits.\n         * Defaults to 5.\n         */\n        lineNumbersMinChars?: number;\n        /**\n         * Enable the rendering of the glyph margin.\n         * Defaults to true in vscode and to false in monaco-editor.\n         */\n        glyphMargin?: boolean;\n        /**\n         * The width reserved for line decorations (in px).\n         * Line decorations are placed between line numbers and the editor content.\n         * You can pass in a string in the format floating point followed by \"ch\". e.g. 1.3ch.\n         * Defaults to 10.\n         */\n        lineDecorationsWidth?: number | string;\n        /**\n         * When revealing the cursor, a virtual padding (px) is added to the cursor, turning it into a rectangle.\n         * This virtual padding ensures that the cursor gets revealed before hitting the edge of the viewport.\n         * Defaults to 30 (px).\n         */\n        revealHorizontalRightPadding?: number;\n        /**\n         * Render the editor selection with rounded borders.\n         * Defaults to true.\n         */\n        roundedSelection?: boolean;\n        /**\n         * Class name to be added to the editor.\n         */\n        extraEditorClassName?: string;\n        /**\n         * Should the editor be read only. See also `domReadOnly`.\n         * Defaults to false.\n         */\n        readOnly?: boolean;\n        /**\n         * The message to display when the editor is readonly.\n         */\n        readOnlyMessage?: IMarkdownString;\n        /**\n         * Should the textarea used for input use the DOM `readonly` attribute.\n         * Defaults to false.\n         */\n        domReadOnly?: boolean;\n        /**\n         * Enable linked editing.\n         * Defaults to false.\n         */\n        linkedEditing?: boolean;\n        /**\n         * deprecated, use linkedEditing instead\n         */\n        renameOnType?: boolean;\n        /**\n         * Should the editor render validation decorations.\n         * Defaults to editable.\n         */\n        renderValidationDecorations?: 'editable' | 'on' | 'off';\n        /**\n         * Control the behavior and rendering of the scrollbars.\n         */\n        scrollbar?: IEditorScrollbarOptions;\n        /**\n         * Control the behavior of sticky scroll options\n         */\n        stickyScroll?: IEditorStickyScrollOptions;\n        /**\n         * Control the behavior and rendering of the minimap.\n         */\n        minimap?: IEditorMinimapOptions;\n        /**\n         * Control the behavior of the find widget.\n         */\n        find?: IEditorFindOptions;\n        /**\n         * Display overflow widgets as `fixed`.\n         * Defaults to `false`.\n         */\n        fixedOverflowWidgets?: boolean;\n        /**\n         * The number of vertical lanes the overview ruler should render.\n         * Defaults to 3.\n         */\n        overviewRulerLanes?: number;\n        /**\n         * Controls if a border should be drawn around the overview ruler.\n         * Defaults to `true`.\n         */\n        overviewRulerBorder?: boolean;\n        /**\n         * Control the cursor animation style, possible values are 'blink', 'smooth', 'phase', 'expand' and 'solid'.\n         * Defaults to 'blink'.\n         */\n        cursorBlinking?: 'blink' | 'smooth' | 'phase' | 'expand' | 'solid';\n        /**\n         * Zoom the font in the editor when using the mouse wheel in combination with holding Ctrl.\n         * Defaults to false.\n         */\n        mouseWheelZoom?: boolean;\n        /**\n         * Control the mouse pointer style, either 'text' or 'default' or 'copy'\n         * Defaults to 'text'\n         */\n        mouseStyle?: 'text' | 'default' | 'copy';\n        /**\n         * Enable smooth caret animation.\n         * Defaults to 'off'.\n         */\n        cursorSmoothCaretAnimation?: 'off' | 'explicit' | 'on';\n        /**\n         * Control the cursor style, either 'block' or 'line'.\n         * Defaults to 'line'.\n         */\n        cursorStyle?: 'line' | 'block' | 'underline' | 'line-thin' | 'block-outline' | 'underline-thin';\n        /**\n         * Control the width of the cursor when cursorStyle is set to 'line'\n         */\n        cursorWidth?: number;\n        /**\n         * Enable font ligatures.\n         * Defaults to false.\n         */\n        fontLigatures?: boolean | string;\n        /**\n         * Enable font variations.\n         * Defaults to false.\n         */\n        fontVariations?: boolean | string;\n        /**\n         * Controls whether to use default color decorations or not using the default document color provider\n         */\n        defaultColorDecorators?: boolean;\n        /**\n         * Disable the use of `transform: translate3d(0px, 0px, 0px)` for the editor margin and lines layers.\n         * The usage of `transform: translate3d(0px, 0px, 0px)` acts as a hint for browsers to create an extra layer.\n         * Defaults to false.\n         */\n        disableLayerHinting?: boolean;\n        /**\n         * Disable the optimizations for monospace fonts.\n         * Defaults to false.\n         */\n        disableMonospaceOptimizations?: boolean;\n        /**\n         * Should the cursor be hidden in the overview ruler.\n         * Defaults to false.\n         */\n        hideCursorInOverviewRuler?: boolean;\n        /**\n         * Enable that scrolling can go one screen size after the last line.\n         * Defaults to true.\n         */\n        scrollBeyondLastLine?: boolean;\n        /**\n         * Enable that scrolling can go beyond the last column by a number of columns.\n         * Defaults to 5.\n         */\n        scrollBeyondLastColumn?: number;\n        /**\n         * Enable that the editor animates scrolling to a position.\n         * Defaults to false.\n         */\n        smoothScrolling?: boolean;\n        /**\n         * Enable that the editor will install a ResizeObserver to check if its container dom node size has changed.\n         * Defaults to false.\n         */\n        automaticLayout?: boolean;\n        /**\n         * Control the wrapping of the editor.\n         * When `wordWrap` = \"off\", the lines will never wrap.\n         * When `wordWrap` = \"on\", the lines will wrap at the viewport width.\n         * When `wordWrap` = \"wordWrapColumn\", the lines will wrap at `wordWrapColumn`.\n         * When `wordWrap` = \"bounded\", the lines will wrap at min(viewport width, wordWrapColumn).\n         * Defaults to \"off\".\n         */\n        wordWrap?: 'off' | 'on' | 'wordWrapColumn' | 'bounded';\n        /**\n         * Override the `wordWrap` setting.\n         */\n        wordWrapOverride1?: 'off' | 'on' | 'inherit';\n        /**\n         * Override the `wordWrapOverride1` setting.\n         */\n        wordWrapOverride2?: 'off' | 'on' | 'inherit';\n        /**\n         * Control the wrapping of the editor.\n         * When `wordWrap` = \"off\", the lines will never wrap.\n         * When `wordWrap` = \"on\", the lines will wrap at the viewport width.\n         * When `wordWrap` = \"wordWrapColumn\", the lines will wrap at `wordWrapColumn`.\n         * When `wordWrap` = \"bounded\", the lines will wrap at min(viewport width, wordWrapColumn).\n         * Defaults to 80.\n         */\n        wordWrapColumn?: number;\n        /**\n         * Control indentation of wrapped lines. Can be: 'none', 'same', 'indent' or 'deepIndent'.\n         * Defaults to 'same' in vscode and to 'none' in monaco-editor.\n         */\n        wrappingIndent?: 'none' | 'same' | 'indent' | 'deepIndent';\n        /**\n         * Controls the wrapping strategy to use.\n         * Defaults to 'simple'.\n         */\n        wrappingStrategy?: 'simple' | 'advanced';\n        /**\n         * Configure word wrapping characters. A break will be introduced before these characters.\n         */\n        wordWrapBreakBeforeCharacters?: string;\n        /**\n         * Configure word wrapping characters. A break will be introduced after these characters.\n         */\n        wordWrapBreakAfterCharacters?: string;\n        /**\n         * Sets whether line breaks appear wherever the text would otherwise overflow its content box.\n         * When wordBreak = 'normal', Use the default line break rule.\n         * When wordBreak = 'keepAll', Word breaks should not be used for Chinese/Japanese/Korean (CJK) text. Non-CJK text behavior is the same as for normal.\n         */\n        wordBreak?: 'normal' | 'keepAll';\n        /**\n         * Performance guard: Stop rendering a line after x characters.\n         * Defaults to 10000.\n         * Use -1 to never stop rendering\n         */\n        stopRenderingLineAfter?: number;\n        /**\n         * Configure the editor's hover.\n         */\n        hover?: IEditorHoverOptions;\n        /**\n         * Enable detecting links and making them clickable.\n         * Defaults to true.\n         */\n        links?: boolean;\n        /**\n         * Enable inline color decorators and color picker rendering.\n         */\n        colorDecorators?: boolean;\n        /**\n         * Controls what is the condition to spawn a color picker from a color dectorator\n         */\n        colorDecoratorsActivatedOn?: 'clickAndHover' | 'click' | 'hover';\n        /**\n         * Controls the max number of color decorators that can be rendered in an editor at once.\n         */\n        colorDecoratorsLimit?: number;\n        /**\n         * Control the behaviour of comments in the editor.\n         */\n        comments?: IEditorCommentsOptions;\n        /**\n         * Enable custom contextmenu.\n         * Defaults to true.\n         */\n        contextmenu?: boolean;\n        /**\n         * A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.\n         * Defaults to 1.\n         */\n        mouseWheelScrollSensitivity?: number;\n        /**\n         * FastScrolling mulitplier speed when pressing `Alt`\n         * Defaults to 5.\n         */\n        fastScrollSensitivity?: number;\n        /**\n         * Enable that the editor scrolls only the predominant axis. Prevents horizontal drift when scrolling vertically on a trackpad.\n         * Defaults to true.\n         */\n        scrollPredominantAxis?: boolean;\n        /**\n         * Enable that the selection with the mouse and keys is doing column selection.\n         * Defaults to false.\n         */\n        columnSelection?: boolean;\n        /**\n         * The modifier to be used to add multiple cursors with the mouse.\n         * Defaults to 'alt'\n         */\n        multiCursorModifier?: 'ctrlCmd' | 'alt';\n        /**\n         * Merge overlapping selections.\n         * Defaults to true\n         */\n        multiCursorMergeOverlapping?: boolean;\n        /**\n         * Configure the behaviour when pasting a text with the line count equal to the cursor count.\n         * Defaults to 'spread'.\n         */\n        multiCursorPaste?: 'spread' | 'full';\n        /**\n         * Controls the max number of text cursors that can be in an active editor at once.\n         */\n        multiCursorLimit?: number;\n        /**\n         * Configure the editor's accessibility support.\n         * Defaults to 'auto'. It is best to leave this to 'auto'.\n         */\n        accessibilitySupport?: 'auto' | 'off' | 'on';\n        /**\n         * Controls the number of lines in the editor that can be read out by a screen reader\n         */\n        accessibilityPageSize?: number;\n        /**\n         * Suggest options.\n         */\n        suggest?: ISuggestOptions;\n        inlineSuggest?: IInlineSuggestOptions;\n        experimentalInlineEdit?: IInlineEditOptions;\n        /**\n         * Smart select options.\n         */\n        smartSelect?: ISmartSelectOptions;\n        /**\n         *\n         */\n        gotoLocation?: IGotoLocationOptions;\n        /**\n         * Enable quick suggestions (shadow suggestions)\n         * Defaults to true.\n         */\n        quickSuggestions?: boolean | IQuickSuggestionsOptions;\n        /**\n         * Quick suggestions show delay (in ms)\n         * Defaults to 10 (ms)\n         */\n        quickSuggestionsDelay?: number;\n        /**\n         * Controls the spacing around the editor.\n         */\n        padding?: IEditorPaddingOptions;\n        /**\n         * Parameter hint options.\n         */\n        parameterHints?: IEditorParameterHintOptions;\n        /**\n         * Options for auto closing brackets.\n         * Defaults to language defined behavior.\n         */\n        autoClosingBrackets?: EditorAutoClosingStrategy;\n        /**\n         * Options for auto closing comments.\n         * Defaults to language defined behavior.\n         */\n        autoClosingComments?: EditorAutoClosingStrategy;\n        /**\n         * Options for auto closing quotes.\n         * Defaults to language defined behavior.\n         */\n        autoClosingQuotes?: EditorAutoClosingStrategy;\n        /**\n         * Options for pressing backspace near quotes or bracket pairs.\n         */\n        autoClosingDelete?: EditorAutoClosingEditStrategy;\n        /**\n         * Options for typing over closing quotes or brackets.\n         */\n        autoClosingOvertype?: EditorAutoClosingEditStrategy;\n        /**\n         * Options for auto surrounding.\n         * Defaults to always allowing auto surrounding.\n         */\n        autoSurround?: EditorAutoSurroundStrategy;\n        /**\n         * Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.\n         * Defaults to advanced.\n         */\n        autoIndent?: 'none' | 'keep' | 'brackets' | 'advanced' | 'full';\n        /**\n         * Emulate selection behaviour of tab characters when using spaces for indentation.\n         * This means selection will stick to tab stops.\n         */\n        stickyTabStops?: boolean;\n        /**\n         * Enable format on type.\n         * Defaults to false.\n         */\n        formatOnType?: boolean;\n        /**\n         * Enable format on paste.\n         * Defaults to false.\n         */\n        formatOnPaste?: boolean;\n        /**\n         * Controls if the editor should allow to move selections via drag and drop.\n         * Defaults to false.\n         */\n        dragAndDrop?: boolean;\n        /**\n         * Enable the suggestion box to pop-up on trigger characters.\n         * Defaults to true.\n         */\n        suggestOnTriggerCharacters?: boolean;\n        /**\n         * Accept suggestions on ENTER.\n         * Defaults to 'on'.\n         */\n        acceptSuggestionOnEnter?: 'on' | 'smart' | 'off';\n        /**\n         * Accept suggestions on provider defined characters.\n         * Defaults to true.\n         */\n        acceptSuggestionOnCommitCharacter?: boolean;\n        /**\n         * Enable snippet suggestions. Default to 'true'.\n         */\n        snippetSuggestions?: 'top' | 'bottom' | 'inline' | 'none';\n        /**\n         * Copying without a selection copies the current line.\n         */\n        emptySelectionClipboard?: boolean;\n        /**\n         * Syntax highlighting is copied.\n         */\n        copyWithSyntaxHighlighting?: boolean;\n        /**\n         * The history mode for suggestions.\n         */\n        suggestSelection?: 'first' | 'recentlyUsed' | 'recentlyUsedByPrefix';\n        /**\n         * The font size for the suggest widget.\n         * Defaults to the editor font size.\n         */\n        suggestFontSize?: number;\n        /**\n         * The line height for the suggest widget.\n         * Defaults to the editor line height.\n         */\n        suggestLineHeight?: number;\n        /**\n         * Enable tab completion.\n         */\n        tabCompletion?: 'on' | 'off' | 'onlySnippets';\n        /**\n         * Enable selection highlight.\n         * Defaults to true.\n         */\n        selectionHighlight?: boolean;\n        /**\n         * Enable semantic occurrences highlight.\n         * Defaults to 'singleFile'.\n         * 'off' disables occurrence highlighting\n         * 'singleFile' triggers occurrence highlighting in the current document\n         * 'multiFile'  triggers occurrence highlighting across valid open documents\n         */\n        occurrencesHighlight?: 'off' | 'singleFile' | 'multiFile';\n        /**\n         * Show code lens\n         * Defaults to true.\n         */\n        codeLens?: boolean;\n        /**\n         * Code lens font family. Defaults to editor font family.\n         */\n        codeLensFontFamily?: string;\n        /**\n         * Code lens font size. Default to 90% of the editor font size\n         */\n        codeLensFontSize?: number;\n        /**\n         * Control the behavior and rendering of the code action lightbulb.\n         */\n        lightbulb?: IEditorLightbulbOptions;\n        /**\n         * Timeout for running code actions on save.\n         */\n        codeActionsOnSaveTimeout?: number;\n        /**\n         * Enable code folding.\n         * Defaults to true.\n         */\n        folding?: boolean;\n        /**\n         * Selects the folding strategy. 'auto' uses the strategies contributed for the current document, 'indentation' uses the indentation based folding strategy.\n         * Defaults to 'auto'.\n         */\n        foldingStrategy?: 'auto' | 'indentation';\n        /**\n         * Enable highlight for folded regions.\n         * Defaults to true.\n         */\n        foldingHighlight?: boolean;\n        /**\n         * Auto fold imports folding regions.\n         * Defaults to true.\n         */\n        foldingImportsByDefault?: boolean;\n        /**\n         * Maximum number of foldable regions.\n         * Defaults to 5000.\n         */\n        foldingMaximumRegions?: number;\n        /**\n         * Controls whether the fold actions in the gutter stay always visible or hide unless the mouse is over the gutter.\n         * Defaults to 'mouseover'.\n         */\n        showFoldingControls?: 'always' | 'never' | 'mouseover';\n        /**\n         * Controls whether clicking on the empty content after a folded line will unfold the line.\n         * Defaults to false.\n         */\n        unfoldOnClickAfterEndOfLine?: boolean;\n        /**\n         * Enable highlighting of matching brackets.\n         * Defaults to 'always'.\n         */\n        matchBrackets?: 'never' | 'near' | 'always';\n        /**\n         * Enable experimental whitespace rendering.\n         * Defaults to 'svg'.\n         */\n        experimentalWhitespaceRendering?: 'svg' | 'font' | 'off';\n        /**\n         * Enable rendering of whitespace.\n         * Defaults to 'selection'.\n         */\n        renderWhitespace?: 'none' | 'boundary' | 'selection' | 'trailing' | 'all';\n        /**\n         * Enable rendering of control characters.\n         * Defaults to true.\n         */\n        renderControlCharacters?: boolean;\n        /**\n         * Enable rendering of current line highlight.\n         * Defaults to all.\n         */\n        renderLineHighlight?: 'none' | 'gutter' | 'line' | 'all';\n        /**\n         * Control if the current line highlight should be rendered only the editor is focused.\n         * Defaults to false.\n         */\n        renderLineHighlightOnlyWhenFocus?: boolean;\n        /**\n         * Inserting and deleting whitespace follows tab stops.\n         */\n        useTabStops?: boolean;\n        /**\n         * The font family\n         */\n        fontFamily?: string;\n        /**\n         * The font weight\n         */\n        fontWeight?: string;\n        /**\n         * The font size\n         */\n        fontSize?: number;\n        /**\n         * The line height\n         */\n        lineHeight?: number;\n        /**\n         * The letter spacing\n         */\n        letterSpacing?: number;\n        /**\n         * Controls fading out of unused variables.\n         */\n        showUnused?: boolean;\n        /**\n         * Controls whether to focus the inline editor in the peek widget by default.\n         * Defaults to false.\n         */\n        peekWidgetDefaultFocus?: 'tree' | 'editor';\n        /**\n         * Controls whether the definition link opens element in the peek widget.\n         * Defaults to false.\n         */\n        definitionLinkOpensInPeek?: boolean;\n        /**\n         * Controls strikethrough deprecated variables.\n         */\n        showDeprecated?: boolean;\n        /**\n         * Controls whether suggestions allow matches in the middle of the word instead of only at the beginning\n         */\n        matchOnWordStartOnly?: boolean;\n        /**\n         * Control the behavior and rendering of the inline hints.\n         */\n        inlayHints?: IEditorInlayHintsOptions;\n        /**\n         * Control if the editor should use shadow DOM.\n         */\n        useShadowDOM?: boolean;\n        /**\n         * Controls the behavior of editor guides.\n        */\n        guides?: IGuidesOptions;\n        /**\n         * Controls the behavior of the unicode highlight feature\n         * (by default, ambiguous and invisible characters are highlighted).\n         */\n        unicodeHighlight?: IUnicodeHighlightOptions;\n        /**\n         * Configures bracket pair colorization (disabled by default).\n        */\n        bracketPairColorization?: IBracketPairColorizationOptions;\n        /**\n         * Controls dropping into the editor from an external source.\n         *\n         * When enabled, this shows a preview of the drop location and triggers an `onDropIntoEditor` event.\n         */\n        dropIntoEditor?: IDropIntoEditorOptions;\n        /**\n         * Controls support for changing how content is pasted into the editor.\n         */\n        pasteAs?: IPasteAsOptions;\n        /**\n         * Controls whether the editor / terminal receives tabs or defers them to the workbench for navigation.\n         */\n        tabFocusMode?: boolean;\n        /**\n         * Controls whether the accessibility hint should be provided to screen reader users when an inline completion is shown.\n         */\n        inlineCompletionsAccessibilityVerbose?: boolean;\n    }\n\n    export interface IDiffEditorBaseOptions {\n        /**\n         * Allow the user to resize the diff editor split view.\n         * Defaults to true.\n         */\n        enableSplitViewResizing?: boolean;\n        /**\n         * The default ratio when rendering side-by-side editors.\n         * Must be a number between 0 and 1, min sizes apply.\n         * Defaults to 0.5\n         */\n        splitViewDefaultRatio?: number;\n        /**\n         * Render the differences in two side-by-side editors.\n         * Defaults to true.\n         */\n        renderSideBySide?: boolean;\n        /**\n         * When `renderSideBySide` is enabled, `useInlineViewWhenSpaceIsLimited` is set,\n         * and the diff editor has a width less than `renderSideBySideInlineBreakpoint`, the inline view is used.\n         */\n        renderSideBySideInlineBreakpoint?: number | undefined;\n        /**\n         * When `renderSideBySide` is enabled, `useInlineViewWhenSpaceIsLimited` is set,\n         * and the diff editor has a width less than `renderSideBySideInlineBreakpoint`, the inline view is used.\n         */\n        useInlineViewWhenSpaceIsLimited?: boolean;\n        /**\n         * Timeout in milliseconds after which diff computation is cancelled.\n         * Defaults to 5000.\n         */\n        maxComputationTime?: number;\n        /**\n         * Maximum supported file size in MB.\n         * Defaults to 50.\n         */\n        maxFileSize?: number;\n        /**\n         * Compute the diff by ignoring leading/trailing whitespace\n         * Defaults to true.\n         */\n        ignoreTrimWhitespace?: boolean;\n        /**\n         * Render +/- indicators for added/deleted changes.\n         * Defaults to true.\n         */\n        renderIndicators?: boolean;\n        /**\n         * Shows icons in the glyph margin to revert changes.\n         * Default to true.\n         */\n        renderMarginRevertIcon?: boolean;\n        /**\n         * Indicates if the gutter menu should be rendered.\n        */\n        renderGutterMenu?: boolean;\n        /**\n         * Original model should be editable?\n         * Defaults to false.\n         */\n        originalEditable?: boolean;\n        /**\n         * Should the diff editor enable code lens?\n         * Defaults to false.\n         */\n        diffCodeLens?: boolean;\n        /**\n         * Is the diff editor should render overview ruler\n         * Defaults to true\n         */\n        renderOverviewRuler?: boolean;\n        /**\n         * Control the wrapping of the diff editor.\n         */\n        diffWordWrap?: 'off' | 'on' | 'inherit';\n        /**\n         * Diff Algorithm\n        */\n        diffAlgorithm?: 'legacy' | 'advanced';\n        /**\n         * Whether the diff editor aria label should be verbose.\n         */\n        accessibilityVerbose?: boolean;\n        experimental?: {\n            /**\n             * Defaults to false.\n             */\n            showMoves?: boolean;\n            showEmptyDecorations?: boolean;\n        };\n        /**\n         * Is the diff editor inside another editor\n         * Defaults to false\n         */\n        isInEmbeddedEditor?: boolean;\n        /**\n         * If the diff editor should only show the difference review mode.\n         */\n        onlyShowAccessibleDiffViewer?: boolean;\n        hideUnchangedRegions?: {\n            enabled?: boolean;\n            revealLineCount?: number;\n            minimumLineCount?: number;\n            contextLineCount?: number;\n        };\n    }\n\n    /**\n     * Configuration options for the diff editor.\n     */\n    export interface IDiffEditorOptions extends IEditorOptions, IDiffEditorBaseOptions {\n    }\n\n    /**\n     * An event describing that the configuration of the editor has changed.\n     */\n    export class ConfigurationChangedEvent {\n        hasChanged(id: EditorOption): boolean;\n    }\n\n    /**\n     * All computed editor options.\n     */\n    export interface IComputedEditorOptions {\n        get<T extends EditorOption>(id: T): FindComputedEditorOptionValueById<T>;\n    }\n\n    export interface IEditorOption<K extends EditorOption, V> {\n        readonly id: K;\n        readonly name: string;\n        defaultValue: V;\n        /**\n         * Might modify `value`.\n        */\n        applyUpdate(value: V | undefined, update: V): ApplyUpdateResult<V>;\n    }\n\n    export class ApplyUpdateResult<T> {\n        readonly newValue: T;\n        readonly didChange: boolean;\n        constructor(newValue: T, didChange: boolean);\n    }\n\n    /**\n     * Configuration options for editor comments\n     */\n    export interface IEditorCommentsOptions {\n        /**\n         * Insert a space after the line comment token and inside the block comments tokens.\n         * Defaults to true.\n         */\n        insertSpace?: boolean;\n        /**\n         * Ignore empty lines when inserting line comments.\n         * Defaults to true.\n         */\n        ignoreEmptyLines?: boolean;\n    }\n\n    /**\n     * The kind of animation in which the editor's cursor should be rendered.\n     */\n    export enum TextEditorCursorBlinkingStyle {\n        /**\n         * Hidden\n         */\n        Hidden = 0,\n        /**\n         * Blinking\n         */\n        Blink = 1,\n        /**\n         * Blinking with smooth fading\n         */\n        Smooth = 2,\n        /**\n         * Blinking with prolonged filled state and smooth fading\n         */\n        Phase = 3,\n        /**\n         * Expand collapse animation on the y axis\n         */\n        Expand = 4,\n        /**\n         * No-Blinking\n         */\n        Solid = 5\n    }\n\n    /**\n     * The style in which the editor's cursor should be rendered.\n     */\n    export enum TextEditorCursorStyle {\n        /**\n         * As a vertical line (sitting between two characters).\n         */\n        Line = 1,\n        /**\n         * As a block (sitting on top of a character).\n         */\n        Block = 2,\n        /**\n         * As a horizontal line (sitting under a character).\n         */\n        Underline = 3,\n        /**\n         * As a thin vertical line (sitting between two characters).\n         */\n        LineThin = 4,\n        /**\n         * As an outlined block (sitting on top of a character).\n         */\n        BlockOutline = 5,\n        /**\n         * As a thin horizontal line (sitting under a character).\n         */\n        UnderlineThin = 6\n    }\n\n    /**\n     * Configuration options for editor find widget\n     */\n    export interface IEditorFindOptions {\n        /**\n        * Controls whether the cursor should move to find matches while typing.\n        */\n        cursorMoveOnType?: boolean;\n        /**\n         * Controls if we seed search string in the Find Widget with editor selection.\n         */\n        seedSearchStringFromSelection?: 'never' | 'always' | 'selection';\n        /**\n         * Controls if Find in Selection flag is turned on in the editor.\n         */\n        autoFindInSelection?: 'never' | 'always' | 'multiline';\n        addExtraSpaceOnTop?: boolean;\n        /**\n         * Controls whether the search result and diff result automatically restarts from the beginning (or the end) when no further matches can be found\n         */\n        loop?: boolean;\n    }\n\n    export type GoToLocationValues = 'peek' | 'gotoAndPeek' | 'goto';\n\n    /**\n     * Configuration options for go to location\n     */\n    export interface IGotoLocationOptions {\n        multiple?: GoToLocationValues;\n        multipleDefinitions?: GoToLocationValues;\n        multipleTypeDefinitions?: GoToLocationValues;\n        multipleDeclarations?: GoToLocationValues;\n        multipleImplementations?: GoToLocationValues;\n        multipleReferences?: GoToLocationValues;\n        alternativeDefinitionCommand?: string;\n        alternativeTypeDefinitionCommand?: string;\n        alternativeDeclarationCommand?: string;\n        alternativeImplementationCommand?: string;\n        alternativeReferenceCommand?: string;\n    }\n\n    /**\n     * Configuration options for editor hover\n     */\n    export interface IEditorHoverOptions {\n        /**\n         * Enable the hover.\n         * Defaults to true.\n         */\n        enabled?: boolean;\n        /**\n         * Delay for showing the hover.\n         * Defaults to 300.\n         */\n        delay?: number;\n        /**\n         * Is the hover sticky such that it can be clicked and its contents selected?\n         * Defaults to true.\n         */\n        sticky?: boolean;\n        /**\n         * Controls how long the hover is visible after you hovered out of it.\n         * Require sticky setting to be true.\n         */\n        hidingDelay?: number;\n        /**\n         * Should the hover be shown above the line if possible?\n         * Defaults to false.\n         */\n        above?: boolean;\n    }\n\n    /**\n     * A description for the overview ruler position.\n     */\n    export interface OverviewRulerPosition {\n        /**\n         * Width of the overview ruler\n         */\n        readonly width: number;\n        /**\n         * Height of the overview ruler\n         */\n        readonly height: number;\n        /**\n         * Top position for the overview ruler\n         */\n        readonly top: number;\n        /**\n         * Right position for the overview ruler\n         */\n        readonly right: number;\n    }\n\n    export enum RenderMinimap {\n        None = 0,\n        Text = 1,\n        Blocks = 2\n    }\n\n    /**\n     * The internal layout details of the editor.\n     */\n    export interface EditorLayoutInfo {\n        /**\n         * Full editor width.\n         */\n        readonly width: number;\n        /**\n         * Full editor height.\n         */\n        readonly height: number;\n        /**\n         * Left position for the glyph margin.\n         */\n        readonly glyphMarginLeft: number;\n        /**\n         * The width of the glyph margin.\n         */\n        readonly glyphMarginWidth: number;\n        /**\n         * The number of decoration lanes to render in the glyph margin.\n         */\n        readonly glyphMarginDecorationLaneCount: number;\n        /**\n         * Left position for the line numbers.\n         */\n        readonly lineNumbersLeft: number;\n        /**\n         * The width of the line numbers.\n         */\n        readonly lineNumbersWidth: number;\n        /**\n         * Left position for the line decorations.\n         */\n        readonly decorationsLeft: number;\n        /**\n         * The width of the line decorations.\n         */\n        readonly decorationsWidth: number;\n        /**\n         * Left position for the content (actual text)\n         */\n        readonly contentLeft: number;\n        /**\n         * The width of the content (actual text)\n         */\n        readonly contentWidth: number;\n        /**\n         * Layout information for the minimap\n         */\n        readonly minimap: EditorMinimapLayoutInfo;\n        /**\n         * The number of columns (of typical characters) fitting on a viewport line.\n         */\n        readonly viewportColumn: number;\n        readonly isWordWrapMinified: boolean;\n        readonly isViewportWrapping: boolean;\n        readonly wrappingColumn: number;\n        /**\n         * The width of the vertical scrollbar.\n         */\n        readonly verticalScrollbarWidth: number;\n        /**\n         * The height of the horizontal scrollbar.\n         */\n        readonly horizontalScrollbarHeight: number;\n        /**\n         * The position of the overview ruler.\n         */\n        readonly overviewRuler: OverviewRulerPosition;\n    }\n\n    /**\n     * The internal layout details of the editor.\n     */\n    export interface EditorMinimapLayoutInfo {\n        readonly renderMinimap: RenderMinimap;\n        readonly minimapLeft: number;\n        readonly minimapWidth: number;\n        readonly minimapHeightIsEditorHeight: boolean;\n        readonly minimapIsSampling: boolean;\n        readonly minimapScale: number;\n        readonly minimapLineHeight: number;\n        readonly minimapCanvasInnerWidth: number;\n        readonly minimapCanvasInnerHeight: number;\n        readonly minimapCanvasOuterWidth: number;\n        readonly minimapCanvasOuterHeight: number;\n    }\n\n    export enum ShowLightbulbIconMode {\n        Off = 'off',\n        OnCode = 'onCode',\n        On = 'on'\n    }\n\n    /**\n     * Configuration options for editor lightbulb\n     */\n    export interface IEditorLightbulbOptions {\n        /**\n         * Enable the lightbulb code action.\n         * The three possible values are `off`, `on` and `onCode` and the default is `onCode`.\n         * `off` disables the code action menu.\n         * `on` shows the code action menu on code and on empty lines.\n         * `onCode` shows the code action menu on code only.\n         */\n        enabled?: ShowLightbulbIconMode;\n    }\n\n    export interface IEditorStickyScrollOptions {\n        /**\n         * Enable the sticky scroll\n         */\n        enabled?: boolean;\n        /**\n         * Maximum number of sticky lines to show\n         */\n        maxLineCount?: number;\n        /**\n         * Model to choose for sticky scroll by default\n         */\n        defaultModel?: 'outlineModel' | 'foldingProviderModel' | 'indentationModel';\n        /**\n         * Define whether to scroll sticky scroll with editor horizontal scrollbae\n         */\n        scrollWithEditor?: boolean;\n    }\n\n    /**\n     * Configuration options for editor inlayHints\n     */\n    export interface IEditorInlayHintsOptions {\n        /**\n         * Enable the inline hints.\n         * Defaults to true.\n         */\n        enabled?: 'on' | 'off' | 'offUnlessPressed' | 'onUnlessPressed';\n        /**\n         * Font size of inline hints.\n         * Default to 90% of the editor font size.\n         */\n        fontSize?: number;\n        /**\n         * Font family of inline hints.\n         * Defaults to editor font family.\n         */\n        fontFamily?: string;\n        /**\n         * Enables the padding around the inlay hint.\n         * Defaults to false.\n         */\n        padding?: boolean;\n    }\n\n    /**\n     * Configuration options for editor minimap\n     */\n    export interface IEditorMinimapOptions {\n        /**\n         * Enable the rendering of the minimap.\n         * Defaults to true.\n         */\n        enabled?: boolean;\n        /**\n         * Control the rendering of minimap.\n         */\n        autohide?: boolean;\n        /**\n         * Control the side of the minimap in editor.\n         * Defaults to 'right'.\n         */\n        side?: 'right' | 'left';\n        /**\n         * Control the minimap rendering mode.\n         * Defaults to 'actual'.\n         */\n        size?: 'proportional' | 'fill' | 'fit';\n        /**\n         * Control the rendering of the minimap slider.\n         * Defaults to 'mouseover'.\n         */\n        showSlider?: 'always' | 'mouseover';\n        /**\n         * Render the actual text on a line (as opposed to color blocks).\n         * Defaults to true.\n         */\n        renderCharacters?: boolean;\n        /**\n         * Limit the width of the minimap to render at most a certain number of columns.\n         * Defaults to 120.\n         */\n        maxColumn?: number;\n        /**\n         * Relative size of the font in the minimap. Defaults to 1.\n         */\n        scale?: number;\n        /**\n         * Whether to show named regions as section headers. Defaults to true.\n         */\n        showRegionSectionHeaders?: boolean;\n        /**\n         * Whether to show MARK: comments as section headers. Defaults to true.\n         */\n        showMarkSectionHeaders?: boolean;\n        /**\n         * Font size of section headers. Defaults to 9.\n         */\n        sectionHeaderFontSize?: number;\n        /**\n         * Spacing between the section header characters (in CSS px). Defaults to 1.\n         */\n        sectionHeaderLetterSpacing?: number;\n    }\n\n    /**\n     * Configuration options for editor padding\n     */\n    export interface IEditorPaddingOptions {\n        /**\n         * Spacing between top edge of editor and first line.\n         */\n        top?: number;\n        /**\n         * Spacing between bottom edge of editor and last line.\n         */\n        bottom?: number;\n    }\n\n    /**\n     * Configuration options for parameter hints\n     */\n    export interface IEditorParameterHintOptions {\n        /**\n         * Enable parameter hints.\n         * Defaults to true.\n         */\n        enabled?: boolean;\n        /**\n         * Enable cycling of parameter hints.\n         * Defaults to false.\n         */\n        cycle?: boolean;\n    }\n\n    export type QuickSuggestionsValue = 'on' | 'inline' | 'off';\n\n    /**\n     * Configuration options for quick suggestions\n     */\n    export interface IQuickSuggestionsOptions {\n        other?: boolean | QuickSuggestionsValue;\n        comments?: boolean | QuickSuggestionsValue;\n        strings?: boolean | QuickSuggestionsValue;\n    }\n\n    export interface InternalQuickSuggestionsOptions {\n        readonly other: QuickSuggestionsValue;\n        readonly comments: QuickSuggestionsValue;\n        readonly strings: QuickSuggestionsValue;\n    }\n\n    export type LineNumbersType = 'on' | 'off' | 'relative' | 'interval' | ((lineNumber: number) => string);\n\n    export enum RenderLineNumbersType {\n        Off = 0,\n        On = 1,\n        Relative = 2,\n        Interval = 3,\n        Custom = 4\n    }\n\n    export interface InternalEditorRenderLineNumbersOptions {\n        readonly renderType: RenderLineNumbersType;\n        readonly renderFn: ((lineNumber: number) => string) | null;\n    }\n\n    export interface IRulerOption {\n        readonly column: number;\n        readonly color: string | null;\n    }\n\n    /**\n     * Configuration options for editor scrollbars\n     */\n    export interface IEditorScrollbarOptions {\n        /**\n         * The size of arrows (if displayed).\n         * Defaults to 11.\n         * **NOTE**: This option cannot be updated using `updateOptions()`\n         */\n        arrowSize?: number;\n        /**\n         * Render vertical scrollbar.\n         * Defaults to 'auto'.\n         */\n        vertical?: 'auto' | 'visible' | 'hidden';\n        /**\n         * Render horizontal scrollbar.\n         * Defaults to 'auto'.\n         */\n        horizontal?: 'auto' | 'visible' | 'hidden';\n        /**\n         * Cast horizontal and vertical shadows when the content is scrolled.\n         * Defaults to true.\n         * **NOTE**: This option cannot be updated using `updateOptions()`\n         */\n        useShadows?: boolean;\n        /**\n         * Render arrows at the top and bottom of the vertical scrollbar.\n         * Defaults to false.\n         * **NOTE**: This option cannot be updated using `updateOptions()`\n         */\n        verticalHasArrows?: boolean;\n        /**\n         * Render arrows at the left and right of the horizontal scrollbar.\n         * Defaults to false.\n         * **NOTE**: This option cannot be updated using `updateOptions()`\n         */\n        horizontalHasArrows?: boolean;\n        /**\n         * Listen to mouse wheel events and react to them by scrolling.\n         * Defaults to true.\n         */\n        handleMouseWheel?: boolean;\n        /**\n         * Always consume mouse wheel events (always call preventDefault() and stopPropagation() on the browser events).\n         * Defaults to true.\n         * **NOTE**: This option cannot be updated using `updateOptions()`\n         */\n        alwaysConsumeMouseWheel?: boolean;\n        /**\n         * Height in pixels for the horizontal scrollbar.\n         * Defaults to 10 (px).\n         */\n        horizontalScrollbarSize?: number;\n        /**\n         * Width in pixels for the vertical scrollbar.\n         * Defaults to 10 (px).\n         */\n        verticalScrollbarSize?: number;\n        /**\n         * Width in pixels for the vertical slider.\n         * Defaults to `verticalScrollbarSize`.\n         * **NOTE**: This option cannot be updated using `updateOptions()`\n         */\n        verticalSliderSize?: number;\n        /**\n         * Height in pixels for the horizontal slider.\n         * Defaults to `horizontalScrollbarSize`.\n         * **NOTE**: This option cannot be updated using `updateOptions()`\n         */\n        horizontalSliderSize?: number;\n        /**\n         * Scroll gutter clicks move by page vs jump to position.\n         * Defaults to false.\n         */\n        scrollByPage?: boolean;\n        /**\n         * When set, the horizontal scrollbar will not increase content height.\n         * Defaults to false.\n         */\n        ignoreHorizontalScrollbarInContentHeight?: boolean;\n    }\n\n    export interface InternalEditorScrollbarOptions {\n        readonly arrowSize: number;\n        readonly vertical: ScrollbarVisibility;\n        readonly horizontal: ScrollbarVisibility;\n        readonly useShadows: boolean;\n        readonly verticalHasArrows: boolean;\n        readonly horizontalHasArrows: boolean;\n        readonly handleMouseWheel: boolean;\n        readonly alwaysConsumeMouseWheel: boolean;\n        readonly horizontalScrollbarSize: number;\n        readonly horizontalSliderSize: number;\n        readonly verticalScrollbarSize: number;\n        readonly verticalSliderSize: number;\n        readonly scrollByPage: boolean;\n        readonly ignoreHorizontalScrollbarInContentHeight: boolean;\n    }\n\n    export type InUntrustedWorkspace = 'inUntrustedWorkspace';\n\n    /**\n     * Configuration options for unicode highlighting.\n     */\n    export interface IUnicodeHighlightOptions {\n        /**\n         * Controls whether all non-basic ASCII characters are highlighted. Only characters between U+0020 and U+007E, tab, line-feed and carriage-return are considered basic ASCII.\n         */\n        nonBasicASCII?: boolean | InUntrustedWorkspace;\n        /**\n         * Controls whether characters that just reserve space or have no width at all are highlighted.\n         */\n        invisibleCharacters?: boolean;\n        /**\n         * Controls whether characters are highlighted that can be confused with basic ASCII characters, except those that are common in the current user locale.\n         */\n        ambiguousCharacters?: boolean;\n        /**\n         * Controls whether characters in comments should also be subject to unicode highlighting.\n         */\n        includeComments?: boolean | InUntrustedWorkspace;\n        /**\n         * Controls whether characters in strings should also be subject to unicode highlighting.\n         */\n        includeStrings?: boolean | InUntrustedWorkspace;\n        /**\n         * Defines allowed characters that are not being highlighted.\n         */\n        allowedCharacters?: Record<string, true>;\n        /**\n         * Unicode characters that are common in allowed locales are not being highlighted.\n         */\n        allowedLocales?: Record<string | '_os' | '_vscode', true>;\n    }\n\n    export interface IInlineSuggestOptions {\n        /**\n         * Enable or disable the rendering of automatic inline completions.\n        */\n        enabled?: boolean;\n        /**\n         * Configures the mode.\n         * Use `prefix` to only show ghost text if the text to replace is a prefix of the suggestion text.\n         * Use `subword` to only show ghost text if the replace text is a subword of the suggestion text.\n         * Use `subwordSmart` to only show ghost text if the replace text is a subword of the suggestion text, but the subword must start after the cursor position.\n         * Defaults to `prefix`.\n        */\n        mode?: 'prefix' | 'subword' | 'subwordSmart';\n        showToolbar?: 'always' | 'onHover' | 'never';\n        suppressSuggestions?: boolean;\n        /**\n         * Does not clear active inline suggestions when the editor loses focus.\n         */\n        keepOnBlur?: boolean;\n        /**\n         * Font family for inline suggestions.\n         */\n        fontFamily?: string | 'default';\n    }\n\n    export interface IInlineEditOptions {\n        /**\n         * Enable or disable the rendering of automatic inline edit.\n        */\n        enabled?: boolean;\n        showToolbar?: 'always' | 'onHover' | 'never';\n        /**\n         * Font family for inline suggestions.\n         */\n        fontFamily?: string | 'default';\n        /**\n         * Does not clear active inline suggestions when the editor loses focus.\n         */\n        keepOnBlur?: boolean;\n        backgroundColoring?: boolean;\n    }\n\n    export interface IBracketPairColorizationOptions {\n        /**\n         * Enable or disable bracket pair colorization.\n        */\n        enabled?: boolean;\n        /**\n         * Use independent color pool per bracket type.\n        */\n        independentColorPoolPerBracketType?: boolean;\n    }\n\n    export interface IGuidesOptions {\n        /**\n         * Enable rendering of bracket pair guides.\n         * Defaults to false.\n        */\n        bracketPairs?: boolean | 'active';\n        /**\n         * Enable rendering of vertical bracket pair guides.\n         * Defaults to 'active'.\n         */\n        bracketPairsHorizontal?: boolean | 'active';\n        /**\n         * Enable highlighting of the active bracket pair.\n         * Defaults to true.\n        */\n        highlightActiveBracketPair?: boolean;\n        /**\n         * Enable rendering of indent guides.\n         * Defaults to true.\n         */\n        indentation?: boolean;\n        /**\n         * Enable highlighting of the active indent guide.\n         * Defaults to true.\n         */\n        highlightActiveIndentation?: boolean | 'always';\n    }\n\n    /**\n     * Configuration options for editor suggest widget\n     */\n    export interface ISuggestOptions {\n        /**\n         * Overwrite word ends on accept. Default to false.\n         */\n        insertMode?: 'insert' | 'replace';\n        /**\n         * Enable graceful matching. Defaults to true.\n         */\n        filterGraceful?: boolean;\n        /**\n         * Prevent quick suggestions when a snippet is active. Defaults to true.\n         */\n        snippetsPreventQuickSuggestions?: boolean;\n        /**\n         * Favors words that appear close to the cursor.\n         */\n        localityBonus?: boolean;\n        /**\n         * Enable using global storage for remembering suggestions.\n         */\n        shareSuggestSelections?: boolean;\n        /**\n         * Select suggestions when triggered via quick suggest or trigger characters\n         */\n        selectionMode?: 'always' | 'never' | 'whenTriggerCharacter' | 'whenQuickSuggestion';\n        /**\n         * Enable or disable icons in suggestions. Defaults to true.\n         */\n        showIcons?: boolean;\n        /**\n         * Enable or disable the suggest status bar.\n         */\n        showStatusBar?: boolean;\n        /**\n         * Enable or disable the rendering of the suggestion preview.\n         */\n        preview?: boolean;\n        /**\n         * Configures the mode of the preview.\n        */\n        previewMode?: 'prefix' | 'subword' | 'subwordSmart';\n        /**\n         * Show details inline with the label. Defaults to true.\n         */\n        showInlineDetails?: boolean;\n        /**\n         * Show method-suggestions.\n         */\n        showMethods?: boolean;\n        /**\n         * Show function-suggestions.\n         */\n        showFunctions?: boolean;\n        /**\n         * Show constructor-suggestions.\n         */\n        showConstructors?: boolean;\n        /**\n         * Show deprecated-suggestions.\n         */\n        showDeprecated?: boolean;\n        /**\n         * Controls whether suggestions allow matches in the middle of the word instead of only at the beginning\n         */\n        matchOnWordStartOnly?: boolean;\n        /**\n         * Show field-suggestions.\n         */\n        showFields?: boolean;\n        /**\n         * Show variable-suggestions.\n         */\n        showVariables?: boolean;\n        /**\n         * Show class-suggestions.\n         */\n        showClasses?: boolean;\n        /**\n         * Show struct-suggestions.\n         */\n        showStructs?: boolean;\n        /**\n         * Show interface-suggestions.\n         */\n        showInterfaces?: boolean;\n        /**\n         * Show module-suggestions.\n         */\n        showModules?: boolean;\n        /**\n         * Show property-suggestions.\n         */\n        showProperties?: boolean;\n        /**\n         * Show event-suggestions.\n         */\n        showEvents?: boolean;\n        /**\n         * Show operator-suggestions.\n         */\n        showOperators?: boolean;\n        /**\n         * Show unit-suggestions.\n         */\n        showUnits?: boolean;\n        /**\n         * Show value-suggestions.\n         */\n        showValues?: boolean;\n        /**\n         * Show constant-suggestions.\n         */\n        showConstants?: boolean;\n        /**\n         * Show enum-suggestions.\n         */\n        showEnums?: boolean;\n        /**\n         * Show enumMember-suggestions.\n         */\n        showEnumMembers?: boolean;\n        /**\n         * Show keyword-suggestions.\n         */\n        showKeywords?: boolean;\n        /**\n         * Show text-suggestions.\n         */\n        showWords?: boolean;\n        /**\n         * Show color-suggestions.\n         */\n        showColors?: boolean;\n        /**\n         * Show file-suggestions.\n         */\n        showFiles?: boolean;\n        /**\n         * Show reference-suggestions.\n         */\n        showReferences?: boolean;\n        /**\n         * Show folder-suggestions.\n         */\n        showFolders?: boolean;\n        /**\n         * Show typeParameter-suggestions.\n         */\n        showTypeParameters?: boolean;\n        /**\n         * Show issue-suggestions.\n         */\n        showIssues?: boolean;\n        /**\n         * Show user-suggestions.\n         */\n        showUsers?: boolean;\n        /**\n         * Show snippet-suggestions.\n         */\n        showSnippets?: boolean;\n    }\n\n    export interface ISmartSelectOptions {\n        selectLeadingAndTrailingWhitespace?: boolean;\n        selectSubwords?: boolean;\n    }\n\n    /**\n     * Describes how to indent wrapped lines.\n     */\n    export enum WrappingIndent {\n        /**\n         * No indentation => wrapped lines begin at column 1.\n         */\n        None = 0,\n        /**\n         * Same => wrapped lines get the same indentation as the parent.\n         */\n        Same = 1,\n        /**\n         * Indent => wrapped lines get +1 indentation toward the parent.\n         */\n        Indent = 2,\n        /**\n         * DeepIndent => wrapped lines get +2 indentation toward the parent.\n         */\n        DeepIndent = 3\n    }\n\n    export interface EditorWrappingInfo {\n        readonly isDominatedByLongLines: boolean;\n        readonly isWordWrapMinified: boolean;\n        readonly isViewportWrapping: boolean;\n        readonly wrappingColumn: number;\n    }\n\n    /**\n     * Configuration options for editor drop into behavior\n     */\n    export interface IDropIntoEditorOptions {\n        /**\n         * Enable dropping into editor.\n         * Defaults to true.\n         */\n        enabled?: boolean;\n        /**\n         * Controls if a widget is shown after a drop.\n         * Defaults to 'afterDrop'.\n         */\n        showDropSelector?: 'afterDrop' | 'never';\n    }\n\n    /**\n     * Configuration options for editor pasting as into behavior\n     */\n    export interface IPasteAsOptions {\n        /**\n         * Enable paste as functionality in editors.\n         * Defaults to true.\n         */\n        enabled?: boolean;\n        /**\n         * Controls if a widget is shown after a drop.\n         * Defaults to 'afterPaste'.\n         */\n        showPasteSelector?: 'afterPaste' | 'never';\n    }\n\n    export enum EditorOption {\n        acceptSuggestionOnCommitCharacter = 0,\n        acceptSuggestionOnEnter = 1,\n        accessibilitySupport = 2,\n        accessibilityPageSize = 3,\n        ariaLabel = 4,\n        ariaRequired = 5,\n        autoClosingBrackets = 6,\n        autoClosingComments = 7,\n        screenReaderAnnounceInlineSuggestion = 8,\n        autoClosingDelete = 9,\n        autoClosingOvertype = 10,\n        autoClosingQuotes = 11,\n        autoIndent = 12,\n        automaticLayout = 13,\n        autoSurround = 14,\n        bracketPairColorization = 15,\n        guides = 16,\n        codeLens = 17,\n        codeLensFontFamily = 18,\n        codeLensFontSize = 19,\n        colorDecorators = 20,\n        colorDecoratorsLimit = 21,\n        columnSelection = 22,\n        comments = 23,\n        contextmenu = 24,\n        copyWithSyntaxHighlighting = 25,\n        cursorBlinking = 26,\n        cursorSmoothCaretAnimation = 27,\n        cursorStyle = 28,\n        cursorSurroundingLines = 29,\n        cursorSurroundingLinesStyle = 30,\n        cursorWidth = 31,\n        disableLayerHinting = 32,\n        disableMonospaceOptimizations = 33,\n        domReadOnly = 34,\n        dragAndDrop = 35,\n        dropIntoEditor = 36,\n        emptySelectionClipboard = 37,\n        experimentalWhitespaceRendering = 38,\n        extraEditorClassName = 39,\n        fastScrollSensitivity = 40,\n        find = 41,\n        fixedOverflowWidgets = 42,\n        folding = 43,\n        foldingStrategy = 44,\n        foldingHighlight = 45,\n        foldingImportsByDefault = 46,\n        foldingMaximumRegions = 47,\n        unfoldOnClickAfterEndOfLine = 48,\n        fontFamily = 49,\n        fontInfo = 50,\n        fontLigatures = 51,\n        fontSize = 52,\n        fontWeight = 53,\n        fontVariations = 54,\n        formatOnPaste = 55,\n        formatOnType = 56,\n        glyphMargin = 57,\n        gotoLocation = 58,\n        hideCursorInOverviewRuler = 59,\n        hover = 60,\n        inDiffEditor = 61,\n        inlineSuggest = 62,\n        inlineEdit = 63,\n        letterSpacing = 64,\n        lightbulb = 65,\n        lineDecorationsWidth = 66,\n        lineHeight = 67,\n        lineNumbers = 68,\n        lineNumbersMinChars = 69,\n        linkedEditing = 70,\n        links = 71,\n        matchBrackets = 72,\n        minimap = 73,\n        mouseStyle = 74,\n        mouseWheelScrollSensitivity = 75,\n        mouseWheelZoom = 76,\n        multiCursorMergeOverlapping = 77,\n        multiCursorModifier = 78,\n        multiCursorPaste = 79,\n        multiCursorLimit = 80,\n        occurrencesHighlight = 81,\n        overviewRulerBorder = 82,\n        overviewRulerLanes = 83,\n        padding = 84,\n        pasteAs = 85,\n        parameterHints = 86,\n        peekWidgetDefaultFocus = 87,\n        definitionLinkOpensInPeek = 88,\n        quickSuggestions = 89,\n        quickSuggestionsDelay = 90,\n        readOnly = 91,\n        readOnlyMessage = 92,\n        renameOnType = 93,\n        renderControlCharacters = 94,\n        renderFinalNewline = 95,\n        renderLineHighlight = 96,\n        renderLineHighlightOnlyWhenFocus = 97,\n        renderValidationDecorations = 98,\n        renderWhitespace = 99,\n        revealHorizontalRightPadding = 100,\n        roundedSelection = 101,\n        rulers = 102,\n        scrollbar = 103,\n        scrollBeyondLastColumn = 104,\n        scrollBeyondLastLine = 105,\n        scrollPredominantAxis = 106,\n        selectionClipboard = 107,\n        selectionHighlight = 108,\n        selectOnLineNumbers = 109,\n        showFoldingControls = 110,\n        showUnused = 111,\n        snippetSuggestions = 112,\n        smartSelect = 113,\n        smoothScrolling = 114,\n        stickyScroll = 115,\n        stickyTabStops = 116,\n        stopRenderingLineAfter = 117,\n        suggest = 118,\n        suggestFontSize = 119,\n        suggestLineHeight = 120,\n        suggestOnTriggerCharacters = 121,\n        suggestSelection = 122,\n        tabCompletion = 123,\n        tabIndex = 124,\n        unicodeHighlighting = 125,\n        unusualLineTerminators = 126,\n        useShadowDOM = 127,\n        useTabStops = 128,\n        wordBreak = 129,\n        wordSegmenterLocales = 130,\n        wordSeparators = 131,\n        wordWrap = 132,\n        wordWrapBreakAfterCharacters = 133,\n        wordWrapBreakBeforeCharacters = 134,\n        wordWrapColumn = 135,\n        wordWrapOverride1 = 136,\n        wordWrapOverride2 = 137,\n        wrappingIndent = 138,\n        wrappingStrategy = 139,\n        showDeprecated = 140,\n        inlayHints = 141,\n        editorClassName = 142,\n        pixelRatio = 143,\n        tabFocusMode = 144,\n        layoutInfo = 145,\n        wrappingInfo = 146,\n        defaultColorDecorators = 147,\n        colorDecoratorsActivatedOn = 148,\n        inlineCompletionsAccessibilityVerbose = 149\n    }\n\n    export const EditorOptions: {\n        acceptSuggestionOnCommitCharacter: IEditorOption<EditorOption.acceptSuggestionOnCommitCharacter, boolean>;\n        acceptSuggestionOnEnter: IEditorOption<EditorOption.acceptSuggestionOnEnter, 'on' | 'off' | 'smart'>;\n        accessibilitySupport: IEditorOption<EditorOption.accessibilitySupport, AccessibilitySupport>;\n        accessibilityPageSize: IEditorOption<EditorOption.accessibilityPageSize, number>;\n        ariaLabel: IEditorOption<EditorOption.ariaLabel, string>;\n        ariaRequired: IEditorOption<EditorOption.ariaRequired, boolean>;\n        screenReaderAnnounceInlineSuggestion: IEditorOption<EditorOption.screenReaderAnnounceInlineSuggestion, boolean>;\n        autoClosingBrackets: IEditorOption<EditorOption.autoClosingBrackets, 'always' | 'languageDefined' | 'beforeWhitespace' | 'never'>;\n        autoClosingComments: IEditorOption<EditorOption.autoClosingComments, 'always' | 'languageDefined' | 'beforeWhitespace' | 'never'>;\n        autoClosingDelete: IEditorOption<EditorOption.autoClosingDelete, 'always' | 'never' | 'auto'>;\n        autoClosingOvertype: IEditorOption<EditorOption.autoClosingOvertype, 'always' | 'never' | 'auto'>;\n        autoClosingQuotes: IEditorOption<EditorOption.autoClosingQuotes, 'always' | 'languageDefined' | 'beforeWhitespace' | 'never'>;\n        autoIndent: IEditorOption<EditorOption.autoIndent, EditorAutoIndentStrategy>;\n        automaticLayout: IEditorOption<EditorOption.automaticLayout, boolean>;\n        autoSurround: IEditorOption<EditorOption.autoSurround, 'languageDefined' | 'never' | 'quotes' | 'brackets'>;\n        bracketPairColorization: IEditorOption<EditorOption.bracketPairColorization, Readonly<Required<IBracketPairColorizationOptions>>>;\n        bracketPairGuides: IEditorOption<EditorOption.guides, Readonly<Required<IGuidesOptions>>>;\n        stickyTabStops: IEditorOption<EditorOption.stickyTabStops, boolean>;\n        codeLens: IEditorOption<EditorOption.codeLens, boolean>;\n        codeLensFontFamily: IEditorOption<EditorOption.codeLensFontFamily, string>;\n        codeLensFontSize: IEditorOption<EditorOption.codeLensFontSize, number>;\n        colorDecorators: IEditorOption<EditorOption.colorDecorators, boolean>;\n        colorDecoratorActivatedOn: IEditorOption<EditorOption.colorDecoratorsActivatedOn, 'clickAndHover' | 'click' | 'hover'>;\n        colorDecoratorsLimit: IEditorOption<EditorOption.colorDecoratorsLimit, number>;\n        columnSelection: IEditorOption<EditorOption.columnSelection, boolean>;\n        comments: IEditorOption<EditorOption.comments, Readonly<Required<IEditorCommentsOptions>>>;\n        contextmenu: IEditorOption<EditorOption.contextmenu, boolean>;\n        copyWithSyntaxHighlighting: IEditorOption<EditorOption.copyWithSyntaxHighlighting, boolean>;\n        cursorBlinking: IEditorOption<EditorOption.cursorBlinking, TextEditorCursorBlinkingStyle>;\n        cursorSmoothCaretAnimation: IEditorOption<EditorOption.cursorSmoothCaretAnimation, 'on' | 'off' | 'explicit'>;\n        cursorStyle: IEditorOption<EditorOption.cursorStyle, TextEditorCursorStyle>;\n        cursorSurroundingLines: IEditorOption<EditorOption.cursorSurroundingLines, number>;\n        cursorSurroundingLinesStyle: IEditorOption<EditorOption.cursorSurroundingLinesStyle, 'default' | 'all'>;\n        cursorWidth: IEditorOption<EditorOption.cursorWidth, number>;\n        disableLayerHinting: IEditorOption<EditorOption.disableLayerHinting, boolean>;\n        disableMonospaceOptimizations: IEditorOption<EditorOption.disableMonospaceOptimizations, boolean>;\n        domReadOnly: IEditorOption<EditorOption.domReadOnly, boolean>;\n        dragAndDrop: IEditorOption<EditorOption.dragAndDrop, boolean>;\n        emptySelectionClipboard: IEditorOption<EditorOption.emptySelectionClipboard, boolean>;\n        dropIntoEditor: IEditorOption<EditorOption.dropIntoEditor, Readonly<Required<IDropIntoEditorOptions>>>;\n        stickyScroll: IEditorOption<EditorOption.stickyScroll, Readonly<Required<IEditorStickyScrollOptions>>>;\n        experimentalWhitespaceRendering: IEditorOption<EditorOption.experimentalWhitespaceRendering, 'off' | 'svg' | 'font'>;\n        extraEditorClassName: IEditorOption<EditorOption.extraEditorClassName, string>;\n        fastScrollSensitivity: IEditorOption<EditorOption.fastScrollSensitivity, number>;\n        find: IEditorOption<EditorOption.find, Readonly<Required<IEditorFindOptions>>>;\n        fixedOverflowWidgets: IEditorOption<EditorOption.fixedOverflowWidgets, boolean>;\n        folding: IEditorOption<EditorOption.folding, boolean>;\n        foldingStrategy: IEditorOption<EditorOption.foldingStrategy, 'auto' | 'indentation'>;\n        foldingHighlight: IEditorOption<EditorOption.foldingHighlight, boolean>;\n        foldingImportsByDefault: IEditorOption<EditorOption.foldingImportsByDefault, boolean>;\n        foldingMaximumRegions: IEditorOption<EditorOption.foldingMaximumRegions, number>;\n        unfoldOnClickAfterEndOfLine: IEditorOption<EditorOption.unfoldOnClickAfterEndOfLine, boolean>;\n        fontFamily: IEditorOption<EditorOption.fontFamily, string>;\n        fontInfo: IEditorOption<EditorOption.fontInfo, FontInfo>;\n        fontLigatures2: IEditorOption<EditorOption.fontLigatures, string>;\n        fontSize: IEditorOption<EditorOption.fontSize, number>;\n        fontWeight: IEditorOption<EditorOption.fontWeight, string>;\n        fontVariations: IEditorOption<EditorOption.fontVariations, string>;\n        formatOnPaste: IEditorOption<EditorOption.formatOnPaste, boolean>;\n        formatOnType: IEditorOption<EditorOption.formatOnType, boolean>;\n        glyphMargin: IEditorOption<EditorOption.glyphMargin, boolean>;\n        gotoLocation: IEditorOption<EditorOption.gotoLocation, Readonly<Required<IGotoLocationOptions>>>;\n        hideCursorInOverviewRuler: IEditorOption<EditorOption.hideCursorInOverviewRuler, boolean>;\n        hover: IEditorOption<EditorOption.hover, Readonly<Required<IEditorHoverOptions>>>;\n        inDiffEditor: IEditorOption<EditorOption.inDiffEditor, boolean>;\n        letterSpacing: IEditorOption<EditorOption.letterSpacing, number>;\n        lightbulb: IEditorOption<EditorOption.lightbulb, Readonly<Required<IEditorLightbulbOptions>>>;\n        lineDecorationsWidth: IEditorOption<EditorOption.lineDecorationsWidth, number>;\n        lineHeight: IEditorOption<EditorOption.lineHeight, number>;\n        lineNumbers: IEditorOption<EditorOption.lineNumbers, InternalEditorRenderLineNumbersOptions>;\n        lineNumbersMinChars: IEditorOption<EditorOption.lineNumbersMinChars, number>;\n        linkedEditing: IEditorOption<EditorOption.linkedEditing, boolean>;\n        links: IEditorOption<EditorOption.links, boolean>;\n        matchBrackets: IEditorOption<EditorOption.matchBrackets, 'always' | 'never' | 'near'>;\n        minimap: IEditorOption<EditorOption.minimap, Readonly<Required<IEditorMinimapOptions>>>;\n        mouseStyle: IEditorOption<EditorOption.mouseStyle, 'default' | 'text' | 'copy'>;\n        mouseWheelScrollSensitivity: IEditorOption<EditorOption.mouseWheelScrollSensitivity, number>;\n        mouseWheelZoom: IEditorOption<EditorOption.mouseWheelZoom, boolean>;\n        multiCursorMergeOverlapping: IEditorOption<EditorOption.multiCursorMergeOverlapping, boolean>;\n        multiCursorModifier: IEditorOption<EditorOption.multiCursorModifier, 'altKey' | 'metaKey' | 'ctrlKey'>;\n        multiCursorPaste: IEditorOption<EditorOption.multiCursorPaste, 'spread' | 'full'>;\n        multiCursorLimit: IEditorOption<EditorOption.multiCursorLimit, number>;\n        occurrencesHighlight: IEditorOption<EditorOption.occurrencesHighlight, 'off' | 'singleFile' | 'multiFile'>;\n        overviewRulerBorder: IEditorOption<EditorOption.overviewRulerBorder, boolean>;\n        overviewRulerLanes: IEditorOption<EditorOption.overviewRulerLanes, number>;\n        padding: IEditorOption<EditorOption.padding, Readonly<Required<IEditorPaddingOptions>>>;\n        pasteAs: IEditorOption<EditorOption.pasteAs, Readonly<Required<IPasteAsOptions>>>;\n        parameterHints: IEditorOption<EditorOption.parameterHints, Readonly<Required<IEditorParameterHintOptions>>>;\n        peekWidgetDefaultFocus: IEditorOption<EditorOption.peekWidgetDefaultFocus, 'tree' | 'editor'>;\n        definitionLinkOpensInPeek: IEditorOption<EditorOption.definitionLinkOpensInPeek, boolean>;\n        quickSuggestions: IEditorOption<EditorOption.quickSuggestions, InternalQuickSuggestionsOptions>;\n        quickSuggestionsDelay: IEditorOption<EditorOption.quickSuggestionsDelay, number>;\n        readOnly: IEditorOption<EditorOption.readOnly, boolean>;\n        readOnlyMessage: IEditorOption<EditorOption.readOnlyMessage, any>;\n        renameOnType: IEditorOption<EditorOption.renameOnType, boolean>;\n        renderControlCharacters: IEditorOption<EditorOption.renderControlCharacters, boolean>;\n        renderFinalNewline: IEditorOption<EditorOption.renderFinalNewline, 'on' | 'off' | 'dimmed'>;\n        renderLineHighlight: IEditorOption<EditorOption.renderLineHighlight, 'all' | 'line' | 'none' | 'gutter'>;\n        renderLineHighlightOnlyWhenFocus: IEditorOption<EditorOption.renderLineHighlightOnlyWhenFocus, boolean>;\n        renderValidationDecorations: IEditorOption<EditorOption.renderValidationDecorations, 'on' | 'off' | 'editable'>;\n        renderWhitespace: IEditorOption<EditorOption.renderWhitespace, 'all' | 'none' | 'boundary' | 'selection' | 'trailing'>;\n        revealHorizontalRightPadding: IEditorOption<EditorOption.revealHorizontalRightPadding, number>;\n        roundedSelection: IEditorOption<EditorOption.roundedSelection, boolean>;\n        rulers: IEditorOption<EditorOption.rulers, {}>;\n        scrollbar: IEditorOption<EditorOption.scrollbar, InternalEditorScrollbarOptions>;\n        scrollBeyondLastColumn: IEditorOption<EditorOption.scrollBeyondLastColumn, number>;\n        scrollBeyondLastLine: IEditorOption<EditorOption.scrollBeyondLastLine, boolean>;\n        scrollPredominantAxis: IEditorOption<EditorOption.scrollPredominantAxis, boolean>;\n        selectionClipboard: IEditorOption<EditorOption.selectionClipboard, boolean>;\n        selectionHighlight: IEditorOption<EditorOption.selectionHighlight, boolean>;\n        selectOnLineNumbers: IEditorOption<EditorOption.selectOnLineNumbers, boolean>;\n        showFoldingControls: IEditorOption<EditorOption.showFoldingControls, 'always' | 'never' | 'mouseover'>;\n        showUnused: IEditorOption<EditorOption.showUnused, boolean>;\n        showDeprecated: IEditorOption<EditorOption.showDeprecated, boolean>;\n        inlayHints: IEditorOption<EditorOption.inlayHints, Readonly<Required<IEditorInlayHintsOptions>>>;\n        snippetSuggestions: IEditorOption<EditorOption.snippetSuggestions, 'none' | 'top' | 'bottom' | 'inline'>;\n        smartSelect: IEditorOption<EditorOption.smartSelect, Readonly<Required<ISmartSelectOptions>>>;\n        smoothScrolling: IEditorOption<EditorOption.smoothScrolling, boolean>;\n        stopRenderingLineAfter: IEditorOption<EditorOption.stopRenderingLineAfter, number>;\n        suggest: IEditorOption<EditorOption.suggest, Readonly<Required<ISuggestOptions>>>;\n        inlineSuggest: IEditorOption<EditorOption.inlineSuggest, Readonly<Required<IInlineSuggestOptions>>>;\n        inlineEdit: IEditorOption<EditorOption.inlineEdit, Readonly<Required<IInlineEditOptions>>>;\n        inlineCompletionsAccessibilityVerbose: IEditorOption<EditorOption.inlineCompletionsAccessibilityVerbose, boolean>;\n        suggestFontSize: IEditorOption<EditorOption.suggestFontSize, number>;\n        suggestLineHeight: IEditorOption<EditorOption.suggestLineHeight, number>;\n        suggestOnTriggerCharacters: IEditorOption<EditorOption.suggestOnTriggerCharacters, boolean>;\n        suggestSelection: IEditorOption<EditorOption.suggestSelection, 'first' | 'recentlyUsed' | 'recentlyUsedByPrefix'>;\n        tabCompletion: IEditorOption<EditorOption.tabCompletion, 'on' | 'off' | 'onlySnippets'>;\n        tabIndex: IEditorOption<EditorOption.tabIndex, number>;\n        unicodeHighlight: IEditorOption<EditorOption.unicodeHighlighting, any>;\n        unusualLineTerminators: IEditorOption<EditorOption.unusualLineTerminators, 'auto' | 'off' | 'prompt'>;\n        useShadowDOM: IEditorOption<EditorOption.useShadowDOM, boolean>;\n        useTabStops: IEditorOption<EditorOption.useTabStops, boolean>;\n        wordBreak: IEditorOption<EditorOption.wordBreak, 'normal' | 'keepAll'>;\n        wordSegmenterLocales: IEditorOption<EditorOption.wordSegmenterLocales, {}>;\n        wordSeparators: IEditorOption<EditorOption.wordSeparators, string>;\n        wordWrap: IEditorOption<EditorOption.wordWrap, 'on' | 'off' | 'wordWrapColumn' | 'bounded'>;\n        wordWrapBreakAfterCharacters: IEditorOption<EditorOption.wordWrapBreakAfterCharacters, string>;\n        wordWrapBreakBeforeCharacters: IEditorOption<EditorOption.wordWrapBreakBeforeCharacters, string>;\n        wordWrapColumn: IEditorOption<EditorOption.wordWrapColumn, number>;\n        wordWrapOverride1: IEditorOption<EditorOption.wordWrapOverride1, 'on' | 'off' | 'inherit'>;\n        wordWrapOverride2: IEditorOption<EditorOption.wordWrapOverride2, 'on' | 'off' | 'inherit'>;\n        editorClassName: IEditorOption<EditorOption.editorClassName, string>;\n        defaultColorDecorators: IEditorOption<EditorOption.defaultColorDecorators, boolean>;\n        pixelRatio: IEditorOption<EditorOption.pixelRatio, number>;\n        tabFocusMode: IEditorOption<EditorOption.tabFocusMode, boolean>;\n        layoutInfo: IEditorOption<EditorOption.layoutInfo, EditorLayoutInfo>;\n        wrappingInfo: IEditorOption<EditorOption.wrappingInfo, EditorWrappingInfo>;\n        wrappingIndent: IEditorOption<EditorOption.wrappingIndent, WrappingIndent>;\n        wrappingStrategy: IEditorOption<EditorOption.wrappingStrategy, 'simple' | 'advanced'>;\n    };\n\n    type EditorOptionsType = typeof EditorOptions;\n\n    type FindEditorOptionsKeyById<T extends EditorOption> = {\n        [K in keyof EditorOptionsType]: EditorOptionsType[K]['id'] extends T ? K : never;\n    }[keyof EditorOptionsType];\n\n    type ComputedEditorOptionValue<T extends IEditorOption<any, any>> = T extends IEditorOption<any, infer R> ? R : never;\n\n    export type FindComputedEditorOptionValueById<T extends EditorOption> = NonNullable<ComputedEditorOptionValue<EditorOptionsType[FindEditorOptionsKeyById<T>]>>;\n\n    export interface IEditorConstructionOptions extends IEditorOptions {\n        /**\n         * The initial editor dimension (to avoid measuring the container).\n         */\n        dimension?: IDimension;\n        /**\n         * Place overflow widgets inside an external DOM node.\n         * Defaults to an internal DOM node.\n         */\n        overflowWidgetsDomNode?: HTMLElement;\n    }\n\n    /**\n     * A view zone is a full horizontal rectangle that 'pushes' text down.\n     * The editor reserves space for view zones when rendering.\n     */\n    export interface IViewZone {\n        /**\n         * The line number after which this zone should appear.\n         * Use 0 to place a view zone before the first line number.\n         */\n        afterLineNumber: number;\n        /**\n         * The column after which this zone should appear.\n         * If not set, the maxLineColumn of `afterLineNumber` will be used.\n         * This is relevant for wrapped lines.\n         */\n        afterColumn?: number;\n        /**\n         * If the `afterColumn` has multiple view columns, the affinity specifies which one to use. Defaults to `none`.\n        */\n        afterColumnAffinity?: PositionAffinity;\n        /**\n         * Render the zone even when its line is hidden.\n         */\n        showInHiddenAreas?: boolean;\n        /**\n         * Tiebreaker that is used when multiple view zones want to be after the same line.\n         * Defaults to `afterColumn` otherwise 10000;\n         */\n        ordinal?: number;\n        /**\n         * Suppress mouse down events.\n         * If set, the editor will attach a mouse down listener to the view zone and .preventDefault on it.\n         * Defaults to false\n         */\n        suppressMouseDown?: boolean;\n        /**\n         * The height in lines of the view zone.\n         * If specified, `heightInPx` will be used instead of this.\n         * If neither `heightInPx` nor `heightInLines` is specified, a default of `heightInLines` = 1 will be chosen.\n         */\n        heightInLines?: number;\n        /**\n         * The height in px of the view zone.\n         * If this is set, the editor will give preference to it rather than `heightInLines` above.\n         * If neither `heightInPx` nor `heightInLines` is specified, a default of `heightInLines` = 1 will be chosen.\n         */\n        heightInPx?: number;\n        /**\n         * The minimum width in px of the view zone.\n         * If this is set, the editor will ensure that the scroll width is >= than this value.\n         */\n        minWidthInPx?: number;\n        /**\n         * The dom node of the view zone\n         */\n        domNode: HTMLElement;\n        /**\n         * An optional dom node for the view zone that will be placed in the margin area.\n         */\n        marginDomNode?: HTMLElement | null;\n        /**\n         * Callback which gives the relative top of the view zone as it appears (taking scrolling into account).\n         */\n        onDomNodeTop?: (top: number) => void;\n        /**\n         * Callback which gives the height in pixels of the view zone.\n         */\n        onComputedHeight?: (height: number) => void;\n    }\n\n    /**\n     * An accessor that allows for zones to be added or removed.\n     */\n    export interface IViewZoneChangeAccessor {\n        /**\n         * Create a new view zone.\n         * @param zone Zone to create\n         * @return A unique identifier to the view zone.\n         */\n        addZone(zone: IViewZone): string;\n        /**\n         * Remove a zone\n         * @param id A unique identifier to the view zone, as returned by the `addZone` call.\n         */\n        removeZone(id: string): void;\n        /**\n         * Change a zone's position.\n         * The editor will rescan the `afterLineNumber` and `afterColumn` properties of a view zone.\n         */\n        layoutZone(id: string): void;\n    }\n\n    /**\n     * A positioning preference for rendering content widgets.\n     */\n    export enum ContentWidgetPositionPreference {\n        /**\n         * Place the content widget exactly at a position\n         */\n        EXACT = 0,\n        /**\n         * Place the content widget above a position\n         */\n        ABOVE = 1,\n        /**\n         * Place the content widget below a position\n         */\n        BELOW = 2\n    }\n\n    /**\n     * A position for rendering content widgets.\n     */\n    export interface IContentWidgetPosition {\n        /**\n         * Desired position which serves as an anchor for placing the content widget.\n         * The widget will be placed above, at, or below the specified position, based on the\n         * provided preference. The widget will always touch this position.\n         *\n         * Given sufficient horizontal space, the widget will be placed to the right of the\n         * passed in position. This can be tweaked by providing a `secondaryPosition`.\n         *\n         * @see preference\n         * @see secondaryPosition\n         */\n        position: IPosition | null;\n        /**\n         * Optionally, a secondary position can be provided to further define the placing of\n         * the content widget. The secondary position must have the same line number as the\n         * primary position. If possible, the widget will be placed such that it also touches\n         * the secondary position.\n         */\n        secondaryPosition?: IPosition | null;\n        /**\n         * Placement preference for position, in order of preference.\n         */\n        preference: ContentWidgetPositionPreference[];\n        /**\n         * Placement preference when multiple view positions refer to the same (model) position.\n         * This plays a role when injected text is involved.\n        */\n        positionAffinity?: PositionAffinity;\n    }\n\n    /**\n     * A content widget renders inline with the text and can be easily placed 'near' an editor position.\n     */\n    export interface IContentWidget {\n        /**\n         * Render this content widget in a location where it could overflow the editor's view dom node.\n         */\n        allowEditorOverflow?: boolean;\n        /**\n         * Call preventDefault() on mousedown events that target the content widget.\n         */\n        suppressMouseDown?: boolean;\n        /**\n         * Get a unique identifier of the content widget.\n         */\n        getId(): string;\n        /**\n         * Get the dom node of the content widget.\n         */\n        getDomNode(): HTMLElement;\n        /**\n         * Get the placement of the content widget.\n         * If null is returned, the content widget will be placed off screen.\n         */\n        getPosition(): IContentWidgetPosition | null;\n        /**\n         * Optional function that is invoked before rendering\n         * the content widget. If a dimension is returned the editor will\n         * attempt to use it.\n         */\n        beforeRender?(): IDimension | null;\n        /**\n         * Optional function that is invoked after rendering the content\n         * widget. Is being invoked with the selected position preference\n         * or `null` if not rendered.\n         */\n        afterRender?(position: ContentWidgetPositionPreference | null): void;\n    }\n\n    /**\n     * A positioning preference for rendering overlay widgets.\n     */\n    export enum OverlayWidgetPositionPreference {\n        /**\n         * Position the overlay widget in the top right corner\n         */\n        TOP_RIGHT_CORNER = 0,\n        /**\n         * Position the overlay widget in the bottom right corner\n         */\n        BOTTOM_RIGHT_CORNER = 1,\n        /**\n         * Position the overlay widget in the top center\n         */\n        TOP_CENTER = 2\n    }\n\n    /**\n     * Represents editor-relative coordinates of an overlay widget.\n     */\n    export interface IOverlayWidgetPositionCoordinates {\n        /**\n         * The top position for the overlay widget, relative to the editor.\n         */\n        top: number;\n        /**\n         * The left position for the overlay widget, relative to the editor.\n         */\n        left: number;\n    }\n\n    /**\n     * A position for rendering overlay widgets.\n     */\n    export interface IOverlayWidgetPosition {\n        /**\n         * The position preference for the overlay widget.\n         */\n        preference: OverlayWidgetPositionPreference | IOverlayWidgetPositionCoordinates | null;\n        /**\n         * When set, stacks with other overlay widgets with the same preference,\n         * in an order determined by the ordinal value.\n         */\n        stackOridinal?: number;\n    }\n\n    /**\n     * An overlay widgets renders on top of the text.\n     */\n    export interface IOverlayWidget {\n        /**\n         * Event fired when the widget layout changes.\n         */\n        onDidLayout?: IEvent<void>;\n        /**\n         * Render this overlay widget in a location where it could overflow the editor's view dom node.\n         */\n        allowEditorOverflow?: boolean;\n        /**\n         * Get a unique identifier of the overlay widget.\n         */\n        getId(): string;\n        /**\n         * Get the dom node of the overlay widget.\n         */\n        getDomNode(): HTMLElement;\n        /**\n         * Get the placement of the overlay widget.\n         * If null is returned, the overlay widget is responsible to place itself.\n         */\n        getPosition(): IOverlayWidgetPosition | null;\n        /**\n         * The editor will ensure that the scroll width is >= than this value.\n         */\n        getMinContentWidthInPx?(): number;\n    }\n\n    /**\n     * A glyph margin widget renders in the editor glyph margin.\n     */\n    export interface IGlyphMarginWidget {\n        /**\n         * Get a unique identifier of the glyph widget.\n         */\n        getId(): string;\n        /**\n         * Get the dom node of the glyph widget.\n         */\n        getDomNode(): HTMLElement;\n        /**\n         * Get the placement of the glyph widget.\n         */\n        getPosition(): IGlyphMarginWidgetPosition;\n    }\n\n    /**\n     * A position for rendering glyph margin widgets.\n     */\n    export interface IGlyphMarginWidgetPosition {\n        /**\n         * The glyph margin lane where the widget should be shown.\n         */\n        lane: GlyphMarginLane;\n        /**\n         * The priority order of the widget, used for determining which widget\n         * to render when there are multiple.\n         */\n        zIndex: number;\n        /**\n         * The editor range that this widget applies to.\n         */\n        range: IRange;\n    }\n\n    /**\n     * Type of hit element with the mouse in the editor.\n     */\n    export enum MouseTargetType {\n        /**\n         * Mouse is on top of an unknown element.\n         */\n        UNKNOWN = 0,\n        /**\n         * Mouse is on top of the textarea used for input.\n         */\n        TEXTAREA = 1,\n        /**\n         * Mouse is on top of the glyph margin\n         */\n        GUTTER_GLYPH_MARGIN = 2,\n        /**\n         * Mouse is on top of the line numbers\n         */\n        GUTTER_LINE_NUMBERS = 3,\n        /**\n         * Mouse is on top of the line decorations\n         */\n        GUTTER_LINE_DECORATIONS = 4,\n        /**\n         * Mouse is on top of the whitespace left in the gutter by a view zone.\n         */\n        GUTTER_VIEW_ZONE = 5,\n        /**\n         * Mouse is on top of text in the content.\n         */\n        CONTENT_TEXT = 6,\n        /**\n         * Mouse is on top of empty space in the content (e.g. after line text or below last line)\n         */\n        CONTENT_EMPTY = 7,\n        /**\n         * Mouse is on top of a view zone in the content.\n         */\n        CONTENT_VIEW_ZONE = 8,\n        /**\n         * Mouse is on top of a content widget.\n         */\n        CONTENT_WIDGET = 9,\n        /**\n         * Mouse is on top of the decorations overview ruler.\n         */\n        OVERVIEW_RULER = 10,\n        /**\n         * Mouse is on top of a scrollbar.\n         */\n        SCROLLBAR = 11,\n        /**\n         * Mouse is on top of an overlay widget.\n         */\n        OVERLAY_WIDGET = 12,\n        /**\n         * Mouse is outside of the editor.\n         */\n        OUTSIDE_EDITOR = 13\n    }\n\n    export interface IBaseMouseTarget {\n        /**\n         * The target element\n         */\n        readonly element: HTMLElement | null;\n        /**\n         * The 'approximate' editor position\n         */\n        readonly position: Position | null;\n        /**\n         * Desired mouse column (e.g. when position.column gets clamped to text length -- clicking after text on a line).\n         */\n        readonly mouseColumn: number;\n        /**\n         * The 'approximate' editor range\n         */\n        readonly range: Range | null;\n    }\n\n    export interface IMouseTargetUnknown extends IBaseMouseTarget {\n        readonly type: MouseTargetType.UNKNOWN;\n    }\n\n    export interface IMouseTargetTextarea extends IBaseMouseTarget {\n        readonly type: MouseTargetType.TEXTAREA;\n        readonly position: null;\n        readonly range: null;\n    }\n\n    export interface IMouseTargetMarginData {\n        readonly isAfterLines: boolean;\n        readonly glyphMarginLeft: number;\n        readonly glyphMarginWidth: number;\n        readonly glyphMarginLane?: GlyphMarginLane;\n        readonly lineNumbersWidth: number;\n        readonly offsetX: number;\n    }\n\n    export interface IMouseTargetMargin extends IBaseMouseTarget {\n        readonly type: MouseTargetType.GUTTER_GLYPH_MARGIN | MouseTargetType.GUTTER_LINE_NUMBERS | MouseTargetType.GUTTER_LINE_DECORATIONS;\n        readonly position: Position;\n        readonly range: Range;\n        readonly detail: IMouseTargetMarginData;\n    }\n\n    export interface IMouseTargetViewZoneData {\n        readonly viewZoneId: string;\n        readonly positionBefore: Position | null;\n        readonly positionAfter: Position | null;\n        readonly position: Position;\n        readonly afterLineNumber: number;\n    }\n\n    export interface IMouseTargetViewZone extends IBaseMouseTarget {\n        readonly type: MouseTargetType.GUTTER_VIEW_ZONE | MouseTargetType.CONTENT_VIEW_ZONE;\n        readonly position: Position;\n        readonly range: Range;\n        readonly detail: IMouseTargetViewZoneData;\n    }\n\n    export interface IMouseTargetContentTextData {\n        readonly mightBeForeignElement: boolean;\n    }\n\n    export interface IMouseTargetContentText extends IBaseMouseTarget {\n        readonly type: MouseTargetType.CONTENT_TEXT;\n        readonly position: Position;\n        readonly range: Range;\n        readonly detail: IMouseTargetContentTextData;\n    }\n\n    export interface IMouseTargetContentEmptyData {\n        readonly isAfterLines: boolean;\n        readonly horizontalDistanceToText?: number;\n    }\n\n    export interface IMouseTargetContentEmpty extends IBaseMouseTarget {\n        readonly type: MouseTargetType.CONTENT_EMPTY;\n        readonly position: Position;\n        readonly range: Range;\n        readonly detail: IMouseTargetContentEmptyData;\n    }\n\n    export interface IMouseTargetContentWidget extends IBaseMouseTarget {\n        readonly type: MouseTargetType.CONTENT_WIDGET;\n        readonly position: null;\n        readonly range: null;\n        readonly detail: string;\n    }\n\n    export interface IMouseTargetOverlayWidget extends IBaseMouseTarget {\n        readonly type: MouseTargetType.OVERLAY_WIDGET;\n        readonly position: null;\n        readonly range: null;\n        readonly detail: string;\n    }\n\n    export interface IMouseTargetScrollbar extends IBaseMouseTarget {\n        readonly type: MouseTargetType.SCROLLBAR;\n        readonly position: Position;\n        readonly range: Range;\n    }\n\n    export interface IMouseTargetOverviewRuler extends IBaseMouseTarget {\n        readonly type: MouseTargetType.OVERVIEW_RULER;\n    }\n\n    export interface IMouseTargetOutsideEditor extends IBaseMouseTarget {\n        readonly type: MouseTargetType.OUTSIDE_EDITOR;\n        readonly outsidePosition: 'above' | 'below' | 'left' | 'right';\n        readonly outsideDistance: number;\n    }\n\n    /**\n     * Target hit with the mouse in the editor.\n     */\n    export type IMouseTarget = (IMouseTargetUnknown | IMouseTargetTextarea | IMouseTargetMargin | IMouseTargetViewZone | IMouseTargetContentText | IMouseTargetContentEmpty | IMouseTargetContentWidget | IMouseTargetOverlayWidget | IMouseTargetScrollbar | IMouseTargetOverviewRuler | IMouseTargetOutsideEditor);\n\n    /**\n     * A mouse event originating from the editor.\n     */\n    export interface IEditorMouseEvent {\n        readonly event: IMouseEvent;\n        readonly target: IMouseTarget;\n    }\n\n    export interface IPartialEditorMouseEvent {\n        readonly event: IMouseEvent;\n        readonly target: IMouseTarget | null;\n    }\n\n    /**\n     * A paste event originating from the editor.\n     */\n    export interface IPasteEvent {\n        readonly range: Range;\n        readonly languageId: string | null;\n        readonly clipboardEvent?: ClipboardEvent;\n    }\n\n    export interface IDiffEditorConstructionOptions extends IDiffEditorOptions, IEditorConstructionOptions {\n        /**\n         * Place overflow widgets inside an external DOM node.\n         * Defaults to an internal DOM node.\n         */\n        overflowWidgetsDomNode?: HTMLElement;\n        /**\n         * Aria label for original editor.\n         */\n        originalAriaLabel?: string;\n        /**\n         * Aria label for modified editor.\n         */\n        modifiedAriaLabel?: string;\n    }\n\n    /**\n     * A rich code editor.\n     */\n    export interface ICodeEditor extends IEditor {\n        /**\n         * An event emitted when the content of the current model has changed.\n         * @event\n         */\n        readonly onDidChangeModelContent: IEvent<IModelContentChangedEvent>;\n        /**\n         * An event emitted when the language of the current model has changed.\n         * @event\n         */\n        readonly onDidChangeModelLanguage: IEvent<IModelLanguageChangedEvent>;\n        /**\n         * An event emitted when the language configuration of the current model has changed.\n         * @event\n         */\n        readonly onDidChangeModelLanguageConfiguration: IEvent<IModelLanguageConfigurationChangedEvent>;\n        /**\n         * An event emitted when the options of the current model has changed.\n         * @event\n         */\n        readonly onDidChangeModelOptions: IEvent<IModelOptionsChangedEvent>;\n        /**\n         * An event emitted when the configuration of the editor has changed. (e.g. `editor.updateOptions()`)\n         * @event\n         */\n        readonly onDidChangeConfiguration: IEvent<ConfigurationChangedEvent>;\n        /**\n         * An event emitted when the cursor position has changed.\n         * @event\n         */\n        readonly onDidChangeCursorPosition: IEvent<ICursorPositionChangedEvent>;\n        /**\n         * An event emitted when the cursor selection has changed.\n         * @event\n         */\n        readonly onDidChangeCursorSelection: IEvent<ICursorSelectionChangedEvent>;\n        /**\n         * An event emitted when the model of this editor is about to change (e.g. from `editor.setModel()`).\n         * @event\n         */\n        readonly onWillChangeModel: IEvent<IModelChangedEvent>;\n        /**\n         * An event emitted when the model of this editor has changed (e.g. `editor.setModel()`).\n         * @event\n         */\n        readonly onDidChangeModel: IEvent<IModelChangedEvent>;\n        /**\n         * An event emitted when the decorations of the current model have changed.\n         * @event\n         */\n        readonly onDidChangeModelDecorations: IEvent<IModelDecorationsChangedEvent>;\n        /**\n         * An event emitted when the text inside this editor gained focus (i.e. cursor starts blinking).\n         * @event\n         */\n        readonly onDidFocusEditorText: IEvent<void>;\n        /**\n         * An event emitted when the text inside this editor lost focus (i.e. cursor stops blinking).\n         * @event\n         */\n        readonly onDidBlurEditorText: IEvent<void>;\n        /**\n         * An event emitted when the text inside this editor or an editor widget gained focus.\n         * @event\n         */\n        readonly onDidFocusEditorWidget: IEvent<void>;\n        /**\n         * An event emitted when the text inside this editor or an editor widget lost focus.\n         * @event\n         */\n        readonly onDidBlurEditorWidget: IEvent<void>;\n        /**\n         * An event emitted after composition has started.\n         */\n        readonly onDidCompositionStart: IEvent<void>;\n        /**\n         * An event emitted after composition has ended.\n         */\n        readonly onDidCompositionEnd: IEvent<void>;\n        /**\n         * An event emitted when editing failed because the editor is read-only.\n         * @event\n         */\n        readonly onDidAttemptReadOnlyEdit: IEvent<void>;\n        /**\n         * An event emitted when users paste text in the editor.\n         * @event\n         */\n        readonly onDidPaste: IEvent<IPasteEvent>;\n        /**\n         * An event emitted on a \"mouseup\".\n         * @event\n         */\n        readonly onMouseUp: IEvent<IEditorMouseEvent>;\n        /**\n         * An event emitted on a \"mousedown\".\n         * @event\n         */\n        readonly onMouseDown: IEvent<IEditorMouseEvent>;\n        /**\n         * An event emitted on a \"contextmenu\".\n         * @event\n         */\n        readonly onContextMenu: IEvent<IEditorMouseEvent>;\n        /**\n         * An event emitted on a \"mousemove\".\n         * @event\n         */\n        readonly onMouseMove: IEvent<IEditorMouseEvent>;\n        /**\n         * An event emitted on a \"mouseleave\".\n         * @event\n         */\n        readonly onMouseLeave: IEvent<IPartialEditorMouseEvent>;\n        /**\n         * An event emitted on a \"keyup\".\n         * @event\n         */\n        readonly onKeyUp: IEvent<IKeyboardEvent>;\n        /**\n         * An event emitted on a \"keydown\".\n         * @event\n         */\n        readonly onKeyDown: IEvent<IKeyboardEvent>;\n        /**\n         * An event emitted when the layout of the editor has changed.\n         * @event\n         */\n        readonly onDidLayoutChange: IEvent<EditorLayoutInfo>;\n        /**\n         * An event emitted when the content width or content height in the editor has changed.\n         * @event\n         */\n        readonly onDidContentSizeChange: IEvent<IContentSizeChangedEvent>;\n        /**\n         * An event emitted when the scroll in the editor has changed.\n         * @event\n         */\n        readonly onDidScrollChange: IEvent<IScrollEvent>;\n        /**\n         * An event emitted when hidden areas change in the editor (e.g. due to folding).\n         * @event\n         */\n        readonly onDidChangeHiddenAreas: IEvent<void>;\n        /**\n         * Some editor operations fire multiple events at once.\n         * To allow users to react to multiple events fired by a single operation,\n         * the editor fires a begin update before the operation and an end update after the operation.\n         * Whenever the editor fires `onBeginUpdate`, it will also fire `onEndUpdate` once the operation finishes.\n         * Note that not all operations are bracketed by `onBeginUpdate` and `onEndUpdate`.\n        */\n        readonly onBeginUpdate: IEvent<void>;\n        /**\n         * Fires after the editor completes the operation it fired `onBeginUpdate` for.\n        */\n        readonly onEndUpdate: IEvent<void>;\n        /**\n         * Saves current view state of the editor in a serializable object.\n         */\n        saveViewState(): ICodeEditorViewState | null;\n        /**\n         * Restores the view state of the editor from a serializable object generated by `saveViewState`.\n         */\n        restoreViewState(state: ICodeEditorViewState | null): void;\n        /**\n         * Returns true if the text inside this editor or an editor widget has focus.\n         */\n        hasWidgetFocus(): boolean;\n        /**\n         * Get a contribution of this editor.\n         * @id Unique identifier of the contribution.\n         * @return The contribution or null if contribution not found.\n         */\n        getContribution<T extends IEditorContribution>(id: string): T | null;\n        /**\n         * Type the getModel() of IEditor.\n         */\n        getModel(): ITextModel | null;\n        /**\n         * Sets the current model attached to this editor.\n         * If the previous model was created by the editor via the value key in the options\n         * literal object, it will be destroyed. Otherwise, if the previous model was set\n         * via setModel, or the model key in the options literal object, the previous model\n         * will not be destroyed.\n         * It is safe to call setModel(null) to simply detach the current model from the editor.\n         */\n        setModel(model: ITextModel | null): void;\n        /**\n         * Gets all the editor computed options.\n         */\n        getOptions(): IComputedEditorOptions;\n        /**\n         * Gets a specific editor option.\n         */\n        getOption<T extends EditorOption>(id: T): FindComputedEditorOptionValueById<T>;\n        /**\n         * Returns the editor's configuration (without any validation or defaults).\n         */\n        getRawOptions(): IEditorOptions;\n        /**\n         * Get value of the current model attached to this editor.\n         * @see {@link ITextModel.getValue}\n         */\n        getValue(options?: {\n            preserveBOM: boolean;\n            lineEnding: string;\n        }): string;\n        /**\n         * Set the value of the current model attached to this editor.\n         * @see {@link ITextModel.setValue}\n         */\n        setValue(newValue: string): void;\n        /**\n         * Get the width of the editor's content.\n         * This is information that is \"erased\" when computing `scrollWidth = Math.max(contentWidth, width)`\n         */\n        getContentWidth(): number;\n        /**\n         * Get the scrollWidth of the editor's viewport.\n         */\n        getScrollWidth(): number;\n        /**\n         * Get the scrollLeft of the editor's viewport.\n         */\n        getScrollLeft(): number;\n        /**\n         * Get the height of the editor's content.\n         * This is information that is \"erased\" when computing `scrollHeight = Math.max(contentHeight, height)`\n         */\n        getContentHeight(): number;\n        /**\n         * Get the scrollHeight of the editor's viewport.\n         */\n        getScrollHeight(): number;\n        /**\n         * Get the scrollTop of the editor's viewport.\n         */\n        getScrollTop(): number;\n        /**\n         * Change the scrollLeft of the editor's viewport.\n         */\n        setScrollLeft(newScrollLeft: number, scrollType?: ScrollType): void;\n        /**\n         * Change the scrollTop of the editor's viewport.\n         */\n        setScrollTop(newScrollTop: number, scrollType?: ScrollType): void;\n        /**\n         * Change the scroll position of the editor's viewport.\n         */\n        setScrollPosition(position: INewScrollPosition, scrollType?: ScrollType): void;\n        /**\n         * Check if the editor is currently scrolling towards a different scroll position.\n         */\n        hasPendingScrollAnimation(): boolean;\n        /**\n         * Get an action that is a contribution to this editor.\n         * @id Unique identifier of the contribution.\n         * @return The action or null if action not found.\n         */\n        getAction(id: string): IEditorAction | null;\n        /**\n         * Execute a command on the editor.\n         * The edits will land on the undo-redo stack, but no \"undo stop\" will be pushed.\n         * @param source The source of the call.\n         * @param command The command to execute\n         */\n        executeCommand(source: string | null | undefined, command: ICommand): void;\n        /**\n         * Create an \"undo stop\" in the undo-redo stack.\n         */\n        pushUndoStop(): boolean;\n        /**\n         * Remove the \"undo stop\" in the undo-redo stack.\n         */\n        popUndoStop(): boolean;\n        /**\n         * Execute edits on the editor.\n         * The edits will land on the undo-redo stack, but no \"undo stop\" will be pushed.\n         * @param source The source of the call.\n         * @param edits The edits to execute.\n         * @param endCursorState Cursor state after the edits were applied.\n         */\n        executeEdits(source: string | null | undefined, edits: IIdentifiedSingleEditOperation[], endCursorState?: ICursorStateComputer | Selection[]): boolean;\n        /**\n         * Execute multiple (concomitant) commands on the editor.\n         * @param source The source of the call.\n         * @param command The commands to execute\n         */\n        executeCommands(source: string | null | undefined, commands: (ICommand | null)[]): void;\n        /**\n         * Get all the decorations on a line (filtering out decorations from other editors).\n         */\n        getLineDecorations(lineNumber: number): IModelDecoration[] | null;\n        /**\n         * Get all the decorations for a range (filtering out decorations from other editors).\n         */\n        getDecorationsInRange(range: Range): IModelDecoration[] | null;\n        /**\n         * All decorations added through this call will get the ownerId of this editor.\n         * @deprecated Use `createDecorationsCollection`\n         * @see createDecorationsCollection\n         */\n        deltaDecorations(oldDecorations: string[], newDecorations: IModelDeltaDecoration[]): string[];\n        /**\n         * Remove previously added decorations.\n         */\n        removeDecorations(decorationIds: string[]): void;\n        /**\n         * Get the layout info for the editor.\n         */\n        getLayoutInfo(): EditorLayoutInfo;\n        /**\n         * Returns the ranges that are currently visible.\n         * Does not account for horizontal scrolling.\n         */\n        getVisibleRanges(): Range[];\n        /**\n         * Get the vertical position (top offset) for the line's top w.r.t. to the first line.\n         */\n        getTopForLineNumber(lineNumber: number, includeViewZones?: boolean): number;\n        /**\n         * Get the vertical position (top offset) for the line's bottom w.r.t. to the first line.\n         */\n        getBottomForLineNumber(lineNumber: number): number;\n        /**\n         * Get the vertical position (top offset) for the position w.r.t. to the first line.\n         */\n        getTopForPosition(lineNumber: number, column: number): number;\n        /**\n         * Write the screen reader content to be the current selection\n         */\n        writeScreenReaderContent(reason: string): void;\n        /**\n         * Returns the editor's container dom node\n         */\n        getContainerDomNode(): HTMLElement;\n        /**\n         * Returns the editor's dom node\n         */\n        getDomNode(): HTMLElement | null;\n        /**\n         * Add a content widget. Widgets must have unique ids, otherwise they will be overwritten.\n         */\n        addContentWidget(widget: IContentWidget): void;\n        /**\n         * Layout/Reposition a content widget. This is a ping to the editor to call widget.getPosition()\n         * and update appropriately.\n         */\n        layoutContentWidget(widget: IContentWidget): void;\n        /**\n         * Remove a content widget.\n         */\n        removeContentWidget(widget: IContentWidget): void;\n        /**\n         * Add an overlay widget. Widgets must have unique ids, otherwise they will be overwritten.\n         */\n        addOverlayWidget(widget: IOverlayWidget): void;\n        /**\n         * Layout/Reposition an overlay widget. This is a ping to the editor to call widget.getPosition()\n         * and update appropriately.\n         */\n        layoutOverlayWidget(widget: IOverlayWidget): void;\n        /**\n         * Remove an overlay widget.\n         */\n        removeOverlayWidget(widget: IOverlayWidget): void;\n        /**\n         * Add a glyph margin widget. Widgets must have unique ids, otherwise they will be overwritten.\n         */\n        addGlyphMarginWidget(widget: IGlyphMarginWidget): void;\n        /**\n         * Layout/Reposition a glyph margin widget. This is a ping to the editor to call widget.getPosition()\n         * and update appropriately.\n         */\n        layoutGlyphMarginWidget(widget: IGlyphMarginWidget): void;\n        /**\n         * Remove a glyph margin widget.\n         */\n        removeGlyphMarginWidget(widget: IGlyphMarginWidget): void;\n        /**\n         * Change the view zones. View zones are lost when a new model is attached to the editor.\n         */\n        changeViewZones(callback: (accessor: IViewZoneChangeAccessor) => void): void;\n        /**\n         * Get the horizontal position (left offset) for the column w.r.t to the beginning of the line.\n         * This method works only if the line `lineNumber` is currently rendered (in the editor's viewport).\n         * Use this method with caution.\n         */\n        getOffsetForColumn(lineNumber: number, column: number): number;\n        /**\n         * Force an editor render now.\n         */\n        render(forceRedraw?: boolean): void;\n        /**\n         * Get the hit test target at coordinates `clientX` and `clientY`.\n         * The coordinates are relative to the top-left of the viewport.\n         *\n         * @returns Hit test target or null if the coordinates fall outside the editor or the editor has no model.\n         */\n        getTargetAtClientPoint(clientX: number, clientY: number): IMouseTarget | null;\n        /**\n         * Get the visible position for `position`.\n         * The result position takes scrolling into account and is relative to the top left corner of the editor.\n         * Explanation 1: the results of this method will change for the same `position` if the user scrolls the editor.\n         * Explanation 2: the results of this method will not change if the container of the editor gets repositioned.\n         * Warning: the results of this method are inaccurate for positions that are outside the current editor viewport.\n         */\n        getScrolledVisiblePosition(position: IPosition): {\n            top: number;\n            left: number;\n            height: number;\n        } | null;\n        /**\n         * Apply the same font settings as the editor to `target`.\n         */\n        applyFontInfo(target: HTMLElement): void;\n        setBanner(bannerDomNode: HTMLElement | null, height: number): void;\n        /**\n         * Is called when the model has been set, view state was restored and options are updated.\n         * This is the best place to compute data for the viewport (such as tokens).\n         */\n        handleInitialized?(): void;\n    }\n\n    /**\n     * A rich diff editor.\n     */\n    export interface IDiffEditor extends IEditor {\n        /**\n         * @see {@link ICodeEditor.getContainerDomNode}\n         */\n        getContainerDomNode(): HTMLElement;\n        /**\n         * An event emitted when the diff information computed by this diff editor has been updated.\n         * @event\n         */\n        readonly onDidUpdateDiff: IEvent<void>;\n        /**\n         * An event emitted when the diff model is changed (i.e. the diff editor shows new content).\n         * @event\n         */\n        readonly onDidChangeModel: IEvent<void>;\n        /**\n         * Saves current view state of the editor in a serializable object.\n         */\n        saveViewState(): IDiffEditorViewState | null;\n        /**\n         * Restores the view state of the editor from a serializable object generated by `saveViewState`.\n         */\n        restoreViewState(state: IDiffEditorViewState | null): void;\n        /**\n         * Type the getModel() of IEditor.\n         */\n        getModel(): IDiffEditorModel | null;\n        createViewModel(model: IDiffEditorModel): IDiffEditorViewModel;\n        /**\n         * Sets the current model attached to this editor.\n         * If the previous model was created by the editor via the value key in the options\n         * literal object, it will be destroyed. Otherwise, if the previous model was set\n         * via setModel, or the model key in the options literal object, the previous model\n         * will not be destroyed.\n         * It is safe to call setModel(null) to simply detach the current model from the editor.\n         */\n        setModel(model: IDiffEditorModel | IDiffEditorViewModel | null): void;\n        /**\n         * Get the `original` editor.\n         */\n        getOriginalEditor(): ICodeEditor;\n        /**\n         * Get the `modified` editor.\n         */\n        getModifiedEditor(): ICodeEditor;\n        /**\n         * Get the computed diff information.\n         */\n        getLineChanges(): ILineChange[] | null;\n        /**\n         * Update the editor's options after the editor has been created.\n         */\n        updateOptions(newOptions: IDiffEditorOptions): void;\n        /**\n         * Jumps to the next or previous diff.\n         */\n        goToDiff(target: 'next' | 'previous'): void;\n        /**\n         * Scrolls to the first diff.\n         * (Waits until the diff computation finished.)\n         */\n        revealFirstDiff(): unknown;\n        accessibleDiffViewerNext(): void;\n        accessibleDiffViewerPrev(): void;\n        handleInitialized(): void;\n    }\n\n    export class FontInfo extends BareFontInfo {\n        readonly _editorStylingBrand: void;\n        readonly version: number;\n        readonly isTrusted: boolean;\n        readonly isMonospace: boolean;\n        readonly typicalHalfwidthCharacterWidth: number;\n        readonly typicalFullwidthCharacterWidth: number;\n        readonly canUseHalfwidthRightwardsArrow: boolean;\n        readonly spaceWidth: number;\n        readonly middotWidth: number;\n        readonly wsmiddotWidth: number;\n        readonly maxDigitWidth: number;\n    }\n\n    export class BareFontInfo {\n        readonly _bareFontInfoBrand: void;\n        readonly pixelRatio: number;\n        readonly fontFamily: string;\n        readonly fontWeight: string;\n        readonly fontSize: number;\n        readonly fontFeatureSettings: string;\n        readonly fontVariationSettings: string;\n        readonly lineHeight: number;\n        readonly letterSpacing: number;\n    }\n\n    export const EditorZoom: IEditorZoom;\n\n    export interface IEditorZoom {\n        onDidChangeZoomLevel: IEvent<number>;\n        getZoomLevel(): number;\n        setZoomLevel(zoomLevel: number): void;\n    }\n\n    //compatibility:\n    export type IReadOnlyModel = ITextModel;\n    export type IModel = ITextModel;\n}\n\nexport namespace languages {\n\n    export interface IRelativePattern {\n        /**\n         * A base file path to which this pattern will be matched against relatively.\n         */\n        readonly base: string;\n        /**\n         * A file glob pattern like `*.{ts,js}` that will be matched on file paths\n         * relative to the base path.\n         *\n         * Example: Given a base of `/home/work/folder` and a file path of `/home/work/folder/index.js`,\n         * the file glob pattern will match on `index.js`.\n         */\n        readonly pattern: string;\n    }\n\n    export type LanguageSelector = string | LanguageFilter | ReadonlyArray<string | LanguageFilter>;\n\n    export interface LanguageFilter {\n        readonly language?: string;\n        readonly scheme?: string;\n        readonly pattern?: string | IRelativePattern;\n        readonly notebookType?: string;\n        /**\n         * This provider is implemented in the UI thread.\n         */\n        readonly hasAccessToAllModels?: boolean;\n        readonly exclusive?: boolean;\n        /**\n         * This provider comes from a builtin extension.\n         */\n        readonly isBuiltin?: boolean;\n    }\n\n    /**\n     * Register information about a new language.\n     */\n    export function register(language: ILanguageExtensionPoint): void;\n\n    /**\n     * Get the information of all the registered languages.\n     */\n    export function getLanguages(): ILanguageExtensionPoint[];\n\n    export function getEncodedLanguageId(languageId: string): number;\n\n    /**\n     * An event emitted when a language is associated for the first time with a text model.\n     * @event\n     */\n    export function onLanguage(languageId: string, callback: () => void): IDisposable;\n\n    /**\n     * An event emitted when a language is associated for the first time with a text model or\n     * when a language is encountered during the tokenization of another language.\n     * @event\n     */\n    export function onLanguageEncountered(languageId: string, callback: () => void): IDisposable;\n\n    /**\n     * Set the editing configuration for a language.\n     */\n    export function setLanguageConfiguration(languageId: string, configuration: LanguageConfiguration): IDisposable;\n\n    /**\n     * A token.\n     */\n    export interface IToken {\n        startIndex: number;\n        scopes: string;\n    }\n\n    /**\n     * The result of a line tokenization.\n     */\n    export interface ILineTokens {\n        /**\n         * The list of tokens on the line.\n         */\n        tokens: IToken[];\n        /**\n         * The tokenization end state.\n         * A pointer will be held to this and the object should not be modified by the tokenizer after the pointer is returned.\n         */\n        endState: IState;\n    }\n\n    /**\n     * The result of a line tokenization.\n     */\n    export interface IEncodedLineTokens {\n        /**\n         * The tokens on the line in a binary, encoded format. Each token occupies two array indices. For token i:\n         *  - at offset 2*i => startIndex\n         *  - at offset 2*i + 1 => metadata\n         * Meta data is in binary format:\n         * - -------------------------------------------\n         *     3322 2222 2222 1111 1111 1100 0000 0000\n         *     1098 7654 3210 9876 5432 1098 7654 3210\n         * - -------------------------------------------\n         *     bbbb bbbb bfff ffff ffFF FFTT LLLL LLLL\n         * - -------------------------------------------\n         *  - L = EncodedLanguageId (8 bits): Use `getEncodedLanguageId` to get the encoded ID of a language.\n         *  - T = StandardTokenType (2 bits): Other = 0, Comment = 1, String = 2, RegEx = 3.\n         *  - F = FontStyle (4 bits): None = 0, Italic = 1, Bold = 2, Underline = 4, Strikethrough = 8.\n         *  - f = foreground ColorId (9 bits)\n         *  - b = background ColorId (9 bits)\n         *  - The color value for each colorId is defined in IStandaloneThemeData.customTokenColors:\n         * e.g. colorId = 1 is stored in IStandaloneThemeData.customTokenColors[1]. Color id = 0 means no color,\n         * id = 1 is for the default foreground color, id = 2 for the default background.\n         */\n        tokens: Uint32Array;\n        /**\n         * The tokenization end state.\n         * A pointer will be held to this and the object should not be modified by the tokenizer after the pointer is returned.\n         */\n        endState: IState;\n    }\n\n    /**\n     * A factory for token providers.\n     */\n    export interface TokensProviderFactory {\n        create(): ProviderResult<TokensProvider | EncodedTokensProvider | IMonarchLanguage>;\n    }\n\n    /**\n     * A \"manual\" provider of tokens.\n     */\n    export interface TokensProvider {\n        /**\n         * The initial state of a language. Will be the state passed in to tokenize the first line.\n         */\n        getInitialState(): IState;\n        /**\n         * Tokenize a line given the state at the beginning of the line.\n         */\n        tokenize(line: string, state: IState): ILineTokens;\n    }\n\n    /**\n     * A \"manual\" provider of tokens, returning tokens in a binary form.\n     */\n    export interface EncodedTokensProvider {\n        /**\n         * The initial state of a language. Will be the state passed in to tokenize the first line.\n         */\n        getInitialState(): IState;\n        /**\n         * Tokenize a line given the state at the beginning of the line.\n         */\n        tokenizeEncoded(line: string, state: IState): IEncodedLineTokens;\n        /**\n         * Tokenize a line given the state at the beginning of the line.\n         */\n        tokenize?(line: string, state: IState): ILineTokens;\n    }\n\n    /**\n     * Change the color map that is used for token colors.\n     * Supported formats (hex): #RRGGBB, $RRGGBBAA, #RGB, #RGBA\n     */\n    export function setColorMap(colorMap: string[] | null): void;\n\n    /**\n     * Register a tokens provider factory for a language. This tokenizer will be exclusive with a tokenizer\n     * set using `setTokensProvider` or one created using `setMonarchTokensProvider`, but will work together\n     * with a tokens provider set using `registerDocumentSemanticTokensProvider` or `registerDocumentRangeSemanticTokensProvider`.\n     */\n    export function registerTokensProviderFactory(languageId: string, factory: TokensProviderFactory): IDisposable;\n\n    /**\n     * Set the tokens provider for a language (manual implementation). This tokenizer will be exclusive\n     * with a tokenizer created using `setMonarchTokensProvider`, or with `registerTokensProviderFactory`,\n     * but will work together with a tokens provider set using `registerDocumentSemanticTokensProvider`\n     * or `registerDocumentRangeSemanticTokensProvider`.\n     */\n    export function setTokensProvider(languageId: string, provider: TokensProvider | EncodedTokensProvider | Thenable<TokensProvider | EncodedTokensProvider>): IDisposable;\n\n    /**\n     * Set the tokens provider for a language (monarch implementation). This tokenizer will be exclusive\n     * with a tokenizer set using `setTokensProvider`, or with `registerTokensProviderFactory`, but will\n     * work together with a tokens provider set using `registerDocumentSemanticTokensProvider` or\n     * `registerDocumentRangeSemanticTokensProvider`.\n     */\n    export function setMonarchTokensProvider(languageId: string, languageDef: IMonarchLanguage | Thenable<IMonarchLanguage>): IDisposable;\n\n    /**\n     * Register a reference provider (used by e.g. reference search).\n     */\n    export function registerReferenceProvider(languageSelector: LanguageSelector, provider: ReferenceProvider): IDisposable;\n\n    /**\n     * Register a rename provider (used by e.g. rename symbol).\n     */\n    export function registerRenameProvider(languageSelector: LanguageSelector, provider: RenameProvider): IDisposable;\n\n    /**\n     * Register a new symbol-name provider (e.g., when a symbol is being renamed, show new possible symbol-names)\n     */\n    export function registerNewSymbolNameProvider(languageSelector: LanguageSelector, provider: NewSymbolNamesProvider): IDisposable;\n\n    /**\n     * Register a signature help provider (used by e.g. parameter hints).\n     */\n    export function registerSignatureHelpProvider(languageSelector: LanguageSelector, provider: SignatureHelpProvider): IDisposable;\n\n    /**\n     * Register a hover provider (used by e.g. editor hover).\n     */\n    export function registerHoverProvider(languageSelector: LanguageSelector, provider: HoverProvider): IDisposable;\n\n    /**\n     * Register a document symbol provider (used by e.g. outline).\n     */\n    export function registerDocumentSymbolProvider(languageSelector: LanguageSelector, provider: DocumentSymbolProvider): IDisposable;\n\n    /**\n     * Register a document highlight provider (used by e.g. highlight occurrences).\n     */\n    export function registerDocumentHighlightProvider(languageSelector: LanguageSelector, provider: DocumentHighlightProvider): IDisposable;\n\n    /**\n     * Register an linked editing range provider.\n     */\n    export function registerLinkedEditingRangeProvider(languageSelector: LanguageSelector, provider: LinkedEditingRangeProvider): IDisposable;\n\n    /**\n     * Register a definition provider (used by e.g. go to definition).\n     */\n    export function registerDefinitionProvider(languageSelector: LanguageSelector, provider: DefinitionProvider): IDisposable;\n\n    /**\n     * Register a implementation provider (used by e.g. go to implementation).\n     */\n    export function registerImplementationProvider(languageSelector: LanguageSelector, provider: ImplementationProvider): IDisposable;\n\n    /**\n     * Register a type definition provider (used by e.g. go to type definition).\n     */\n    export function registerTypeDefinitionProvider(languageSelector: LanguageSelector, provider: TypeDefinitionProvider): IDisposable;\n\n    /**\n     * Register a code lens provider (used by e.g. inline code lenses).\n     */\n    export function registerCodeLensProvider(languageSelector: LanguageSelector, provider: CodeLensProvider): IDisposable;\n\n    /**\n     * Register a code action provider (used by e.g. quick fix).\n     */\n    export function registerCodeActionProvider(languageSelector: LanguageSelector, provider: CodeActionProvider, metadata?: CodeActionProviderMetadata): IDisposable;\n\n    /**\n     * Register a formatter that can handle only entire models.\n     */\n    export function registerDocumentFormattingEditProvider(languageSelector: LanguageSelector, provider: DocumentFormattingEditProvider): IDisposable;\n\n    /**\n     * Register a formatter that can handle a range inside a model.\n     */\n    export function registerDocumentRangeFormattingEditProvider(languageSelector: LanguageSelector, provider: DocumentRangeFormattingEditProvider): IDisposable;\n\n    /**\n     * Register a formatter than can do formatting as the user types.\n     */\n    export function registerOnTypeFormattingEditProvider(languageSelector: LanguageSelector, provider: OnTypeFormattingEditProvider): IDisposable;\n\n    /**\n     * Register a link provider that can find links in text.\n     */\n    export function registerLinkProvider(languageSelector: LanguageSelector, provider: LinkProvider): IDisposable;\n\n    /**\n     * Register a completion item provider (use by e.g. suggestions).\n     */\n    export function registerCompletionItemProvider(languageSelector: LanguageSelector, provider: CompletionItemProvider): IDisposable;\n\n    /**\n     * Register a document color provider (used by Color Picker, Color Decorator).\n     */\n    export function registerColorProvider(languageSelector: LanguageSelector, provider: DocumentColorProvider): IDisposable;\n\n    /**\n     * Register a folding range provider\n     */\n    export function registerFoldingRangeProvider(languageSelector: LanguageSelector, provider: FoldingRangeProvider): IDisposable;\n\n    /**\n     * Register a declaration provider\n     */\n    export function registerDeclarationProvider(languageSelector: LanguageSelector, provider: DeclarationProvider): IDisposable;\n\n    /**\n     * Register a selection range provider\n     */\n    export function registerSelectionRangeProvider(languageSelector: LanguageSelector, provider: SelectionRangeProvider): IDisposable;\n\n    /**\n     * Register a document semantic tokens provider. A semantic tokens provider will complement and enhance a\n     * simple top-down tokenizer. Simple top-down tokenizers can be set either via `setMonarchTokensProvider`\n     * or `setTokensProvider`.\n     *\n     * For the best user experience, register both a semantic tokens provider and a top-down tokenizer.\n     */\n    export function registerDocumentSemanticTokensProvider(languageSelector: LanguageSelector, provider: DocumentSemanticTokensProvider): IDisposable;\n\n    /**\n     * Register a document range semantic tokens provider. A semantic tokens provider will complement and enhance a\n     * simple top-down tokenizer. Simple top-down tokenizers can be set either via `setMonarchTokensProvider`\n     * or `setTokensProvider`.\n     *\n     * For the best user experience, register both a semantic tokens provider and a top-down tokenizer.\n     */\n    export function registerDocumentRangeSemanticTokensProvider(languageSelector: LanguageSelector, provider: DocumentRangeSemanticTokensProvider): IDisposable;\n\n    /**\n     * Register an inline completions provider.\n     */\n    export function registerInlineCompletionsProvider(languageSelector: LanguageSelector, provider: InlineCompletionsProvider): IDisposable;\n\n    export function registerInlineEditProvider(languageSelector: LanguageSelector, provider: InlineEditProvider): IDisposable;\n\n    /**\n     * Register an inlay hints provider.\n     */\n    export function registerInlayHintsProvider(languageSelector: LanguageSelector, provider: InlayHintsProvider): IDisposable;\n\n    /**\n     * Contains additional diagnostic information about the context in which\n     * a [code action](#CodeActionProvider.provideCodeActions) is run.\n     */\n    export interface CodeActionContext {\n        /**\n         * An array of diagnostics.\n         */\n        readonly markers: editor.IMarkerData[];\n        /**\n         * Requested kind of actions to return.\n         */\n        readonly only?: string;\n        /**\n         * The reason why code actions were requested.\n         */\n        readonly trigger: CodeActionTriggerType;\n    }\n\n    /**\n     * The code action interface defines the contract between extensions and\n     * the [light bulb](https://code.visualstudio.com/docs/editor/editingevolved#_code-action) feature.\n     */\n    export interface CodeActionProvider {\n        /**\n         * Provide commands for the given document and range.\n         */\n        provideCodeActions(model: editor.ITextModel, range: Range, context: CodeActionContext, token: CancellationToken): ProviderResult<CodeActionList>;\n        /**\n         * Given a code action fill in the edit. Will only invoked when missing.\n         */\n        resolveCodeAction?(codeAction: CodeAction, token: CancellationToken): ProviderResult<CodeAction>;\n    }\n\n    /**\n     * Metadata about the type of code actions that a {@link CodeActionProvider} provides.\n     */\n    export interface CodeActionProviderMetadata {\n        /**\n         * List of code action kinds that a {@link CodeActionProvider} may return.\n         *\n         * This list is used to determine if a given `CodeActionProvider` should be invoked or not.\n         * To avoid unnecessary computation, every `CodeActionProvider` should list use `providedCodeActionKinds`. The\n         * list of kinds may either be generic, such as `[\"quickfix\", \"refactor\", \"source\"]`, or list out every kind provided,\n         * such as `[\"quickfix.removeLine\", \"source.fixAll\" ...]`.\n         */\n        readonly providedCodeActionKinds?: readonly string[];\n        readonly documentation?: ReadonlyArray<{\n            readonly kind: string;\n            readonly command: Command;\n        }>;\n    }\n\n    /**\n     * Describes how comments for a language work.\n     */\n    export interface CommentRule {\n        /**\n         * The line comment token, like `// this is a comment`\n         */\n        lineComment?: string | null;\n        /**\n         * The block comment character pair, like `/* block comment *&#47;`\n         */\n        blockComment?: CharacterPair | null;\n    }\n\n    /**\n     * The language configuration interface defines the contract between extensions and\n     * various editor features, like automatic bracket insertion, automatic indentation etc.\n     */\n    export interface LanguageConfiguration {\n        /**\n         * The language's comment settings.\n         */\n        comments?: CommentRule;\n        /**\n         * The language's brackets.\n         * This configuration implicitly affects pressing Enter around these brackets.\n         */\n        brackets?: CharacterPair[];\n        /**\n         * The language's word definition.\n         * If the language supports Unicode identifiers (e.g. JavaScript), it is preferable\n         * to provide a word definition that uses exclusion of known separators.\n         * e.g.: A regex that matches anything except known separators (and dot is allowed to occur in a floating point number):\n         *   /(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g\n         */\n        wordPattern?: RegExp;\n        /**\n         * The language's indentation settings.\n         */\n        indentationRules?: IndentationRule;\n        /**\n         * The language's rules to be evaluated when pressing Enter.\n         */\n        onEnterRules?: OnEnterRule[];\n        /**\n         * The language's auto closing pairs. The 'close' character is automatically inserted with the\n         * 'open' character is typed. If not set, the configured brackets will be used.\n         */\n        autoClosingPairs?: IAutoClosingPairConditional[];\n        /**\n         * The language's surrounding pairs. When the 'open' character is typed on a selection, the\n         * selected string is surrounded by the open and close characters. If not set, the autoclosing pairs\n         * settings will be used.\n         */\n        surroundingPairs?: IAutoClosingPair[];\n        /**\n         * Defines a list of bracket pairs that are colorized depending on their nesting level.\n         * If not set, the configured brackets will be used.\n        */\n        colorizedBracketPairs?: CharacterPair[];\n        /**\n         * Defines what characters must be after the cursor for bracket or quote autoclosing to occur when using the \\'languageDefined\\' autoclosing setting.\n         *\n         * This is typically the set of characters which can not start an expression, such as whitespace, closing brackets, non-unary operators, etc.\n         */\n        autoCloseBefore?: string;\n        /**\n         * The language's folding rules.\n         */\n        folding?: FoldingRules;\n        /**\n         * **Deprecated** Do not use.\n         *\n         * @deprecated Will be replaced by a better API soon.\n         */\n        __electricCharacterSupport?: {\n            docComment?: IDocComment;\n        };\n    }\n\n    /**\n     * Describes indentation rules for a language.\n     */\n    export interface IndentationRule {\n        /**\n         * If a line matches this pattern, then all the lines after it should be unindented once (until another rule matches).\n         */\n        decreaseIndentPattern: RegExp;\n        /**\n         * If a line matches this pattern, then all the lines after it should be indented once (until another rule matches).\n         */\n        increaseIndentPattern: RegExp;\n        /**\n         * If a line matches this pattern, then **only the next line** after it should be indented once.\n         */\n        indentNextLinePattern?: RegExp | null;\n        /**\n         * If a line matches this pattern, then its indentation should not be changed and it should not be evaluated against the other rules.\n         */\n        unIndentedLinePattern?: RegExp | null;\n    }\n\n    /**\n     * Describes language specific folding markers such as '#region' and '#endregion'.\n     * The start and end regexes will be tested against the contents of all lines and must be designed efficiently:\n     * - the regex should start with '^'\n     * - regexp flags (i, g) are ignored\n     */\n    export interface FoldingMarkers {\n        start: RegExp;\n        end: RegExp;\n    }\n\n    /**\n     * Describes folding rules for a language.\n     */\n    export interface FoldingRules {\n        /**\n         * Used by the indentation based strategy to decide whether empty lines belong to the previous or the next block.\n         * A language adheres to the off-side rule if blocks in that language are expressed by their indentation.\n         * See [wikipedia](https://en.wikipedia.org/wiki/Off-side_rule) for more information.\n         * If not set, `false` is used and empty lines belong to the previous block.\n         */\n        offSide?: boolean;\n        /**\n         * Region markers used by the language.\n         */\n        markers?: FoldingMarkers;\n    }\n\n    /**\n     * Describes a rule to be evaluated when pressing Enter.\n     */\n    export interface OnEnterRule {\n        /**\n         * This rule will only execute if the text before the cursor matches this regular expression.\n         */\n        beforeText: RegExp;\n        /**\n         * This rule will only execute if the text after the cursor matches this regular expression.\n         */\n        afterText?: RegExp;\n        /**\n         * This rule will only execute if the text above the this line matches this regular expression.\n         */\n        previousLineText?: RegExp;\n        /**\n         * The action to execute.\n         */\n        action: EnterAction;\n    }\n\n    /**\n     * Definition of documentation comments (e.g. Javadoc/JSdoc)\n     */\n    export interface IDocComment {\n        /**\n         * The string that starts a doc comment (e.g. '/**')\n         */\n        open: string;\n        /**\n         * The string that appears on the last line and closes the doc comment (e.g. ' * /').\n         */\n        close?: string;\n    }\n\n    /**\n     * A tuple of two characters, like a pair of\n     * opening and closing brackets.\n     */\n    export type CharacterPair = [string, string];\n\n    export interface IAutoClosingPair {\n        open: string;\n        close: string;\n    }\n\n    export interface IAutoClosingPairConditional extends IAutoClosingPair {\n        notIn?: string[];\n    }\n\n    /**\n     * Describes what to do with the indentation when pressing Enter.\n     */\n    export enum IndentAction {\n        /**\n         * Insert new line and copy the previous line's indentation.\n         */\n        None = 0,\n        /**\n         * Insert new line and indent once (relative to the previous line's indentation).\n         */\n        Indent = 1,\n        /**\n         * Insert two new lines:\n         *  - the first one indented which will hold the cursor\n         *  - the second one at the same indentation level\n         */\n        IndentOutdent = 2,\n        /**\n         * Insert new line and outdent once (relative to the previous line's indentation).\n         */\n        Outdent = 3\n    }\n\n    /**\n     * Describes what to do when pressing Enter.\n     */\n    export interface EnterAction {\n        /**\n         * Describe what to do with the indentation.\n         */\n        indentAction: IndentAction;\n        /**\n         * Describes text to be appended after the new line and after the indentation.\n         */\n        appendText?: string;\n        /**\n         * Describes the number of characters to remove from the new line's indentation.\n         */\n        removeText?: number;\n    }\n\n    /**\n     * The state of the tokenizer between two lines.\n     * It is useful to store flags such as in multiline comment, etc.\n     * The model will clone the previous line's state and pass it in to tokenize the next line.\n     */\n    export interface IState {\n        clone(): IState;\n        equals(other: IState): boolean;\n    }\n\n    /**\n     * A provider result represents the values a provider, like the {@link HoverProvider},\n     * may return. For once this is the actual result type `T`, like `Hover`, or a thenable that resolves\n     * to that type `T`. In addition, `null` and `undefined` can be returned - either directly or from a\n     * thenable.\n     */\n    export type ProviderResult<T> = T | undefined | null | Thenable<T | undefined | null>;\n\n    /**\n     * A hover represents additional information for a symbol or word. Hovers are\n     * rendered in a tooltip-like widget.\n     */\n    export interface Hover {\n        /**\n         * The contents of this hover.\n         */\n        contents: IMarkdownString[];\n        /**\n         * The range to which this hover applies. When missing, the\n         * editor will use the range at the current position or the\n         * current position itself.\n         */\n        range?: IRange;\n        /**\n         * Can increase the verbosity of the hover\n         */\n        canIncreaseVerbosity?: boolean;\n        /**\n         * Can decrease the verbosity of the hover\n         */\n        canDecreaseVerbosity?: boolean;\n    }\n\n    /**\n     * The hover provider interface defines the contract between extensions and\n     * the [hover](https://code.visualstudio.com/docs/editor/intellisense)-feature.\n     */\n    export interface HoverProvider<THover = Hover> {\n        /**\n         * Provide a hover for the given position, context and document. Multiple hovers at the same\n         * position will be merged by the editor. A hover can have a range which defaults\n         * to the word range at the position when omitted.\n         */\n        provideHover(model: editor.ITextModel, position: Position, token: CancellationToken, context?: HoverContext<THover>): ProviderResult<THover>;\n    }\n\n    export interface HoverContext<THover = Hover> {\n        /**\n         * Hover verbosity request\n         */\n        verbosityRequest?: HoverVerbosityRequest<THover>;\n    }\n\n    export interface HoverVerbosityRequest<THover = Hover> {\n        /**\n         * The delta by which to increase/decrease the hover verbosity level\n         */\n        verbosityDelta: number;\n        /**\n         * The previous hover for the same position\n         */\n        previousHover: THover;\n    }\n\n    export enum HoverVerbosityAction {\n        /**\n         * Increase the verbosity of the hover\n         */\n        Increase = 0,\n        /**\n         * Decrease the verbosity of the hover\n         */\n        Decrease = 1\n    }\n\n    export enum CompletionItemKind {\n        Method = 0,\n        Function = 1,\n        Constructor = 2,\n        Field = 3,\n        Variable = 4,\n        Class = 5,\n        Struct = 6,\n        Interface = 7,\n        Module = 8,\n        Property = 9,\n        Event = 10,\n        Operator = 11,\n        Unit = 12,\n        Value = 13,\n        Constant = 14,\n        Enum = 15,\n        EnumMember = 16,\n        Keyword = 17,\n        Text = 18,\n        Color = 19,\n        File = 20,\n        Reference = 21,\n        Customcolor = 22,\n        Folder = 23,\n        TypeParameter = 24,\n        User = 25,\n        Issue = 26,\n        Snippet = 27\n    }\n\n    export interface CompletionItemLabel {\n        label: string;\n        detail?: string;\n        description?: string;\n    }\n\n    export enum CompletionItemTag {\n        Deprecated = 1\n    }\n\n    export enum CompletionItemInsertTextRule {\n        None = 0,\n        /**\n         * Adjust whitespace/indentation of multiline insert texts to\n         * match the current line indentation.\n         */\n        KeepWhitespace = 1,\n        /**\n         * `insertText` is a snippet.\n         */\n        InsertAsSnippet = 4\n    }\n\n    export interface CompletionItemRanges {\n        insert: IRange;\n        replace: IRange;\n    }\n\n    /**\n     * A completion item represents a text snippet that is\n     * proposed to complete text that is being typed.\n     */\n    export interface CompletionItem {\n        /**\n         * The label of this completion item. By default\n         * this is also the text that is inserted when selecting\n         * this completion.\n         */\n        label: string | CompletionItemLabel;\n        /**\n         * The kind of this completion item. Based on the kind\n         * an icon is chosen by the editor.\n         */\n        kind: CompletionItemKind;\n        /**\n         * A modifier to the `kind` which affect how the item\n         * is rendered, e.g. Deprecated is rendered with a strikeout\n         */\n        tags?: ReadonlyArray<CompletionItemTag>;\n        /**\n         * A human-readable string with additional information\n         * about this item, like type or symbol information.\n         */\n        detail?: string;\n        /**\n         * A human-readable string that represents a doc-comment.\n         */\n        documentation?: string | IMarkdownString;\n        /**\n         * A string that should be used when comparing this item\n         * with other items. When `falsy` the {@link CompletionItem.label label}\n         * is used.\n         */\n        sortText?: string;\n        /**\n         * A string that should be used when filtering a set of\n         * completion items. When `falsy` the {@link CompletionItem.label label}\n         * is used.\n         */\n        filterText?: string;\n        /**\n         * Select this item when showing. *Note* that only one completion item can be selected and\n         * that the editor decides which item that is. The rule is that the *first* item of those\n         * that match best is selected.\n         */\n        preselect?: boolean;\n        /**\n         * A string or snippet that should be inserted in a document when selecting\n         * this completion.\n         */\n        insertText: string;\n        /**\n         * Additional rules (as bitmask) that should be applied when inserting\n         * this completion.\n         */\n        insertTextRules?: CompletionItemInsertTextRule;\n        /**\n         * A range of text that should be replaced by this completion item.\n         *\n         * Defaults to a range from the start of the {@link TextDocument.getWordRangeAtPosition current word} to the\n         * current position.\n         *\n         * *Note:* The range must be a {@link Range.isSingleLine single line} and it must\n         * {@link Range.contains contain} the position at which completion has been {@link CompletionItemProvider.provideCompletionItems requested}.\n         */\n        range: IRange | CompletionItemRanges;\n        /**\n         * An optional set of characters that when pressed while this completion is active will accept it first and\n         * then type that character. *Note* that all commit characters should have `length=1` and that superfluous\n         * characters will be ignored.\n         */\n        commitCharacters?: string[];\n        /**\n         * An optional array of additional text edits that are applied when\n         * selecting this completion. Edits must not overlap with the main edit\n         * nor with themselves.\n         */\n        additionalTextEdits?: editor.ISingleEditOperation[];\n        /**\n         * A command that should be run upon acceptance of this item.\n         */\n        command?: Command;\n    }\n\n    export interface CompletionList {\n        suggestions: CompletionItem[];\n        incomplete?: boolean;\n        dispose?(): void;\n    }\n\n    /**\n     * Info provided on partial acceptance.\n     */\n    export interface PartialAcceptInfo {\n        kind: PartialAcceptTriggerKind;\n    }\n\n    /**\n     * How a partial acceptance was triggered.\n     */\n    export enum PartialAcceptTriggerKind {\n        Word = 0,\n        Line = 1,\n        Suggest = 2\n    }\n\n    /**\n     * How a suggest provider was triggered.\n     */\n    export enum CompletionTriggerKind {\n        Invoke = 0,\n        TriggerCharacter = 1,\n        TriggerForIncompleteCompletions = 2\n    }\n\n    /**\n     * Contains additional information about the context in which\n     * {@link CompletionItemProvider.provideCompletionItems completion provider} is triggered.\n     */\n    export interface CompletionContext {\n        /**\n         * How the completion was triggered.\n         */\n        triggerKind: CompletionTriggerKind;\n        /**\n         * Character that triggered the completion item provider.\n         *\n         * `undefined` if provider was not triggered by a character.\n         */\n        triggerCharacter?: string;\n    }\n\n    /**\n     * The completion item provider interface defines the contract between extensions and\n     * the [IntelliSense](https://code.visualstudio.com/docs/editor/intellisense).\n     *\n     * When computing *complete* completion items is expensive, providers can optionally implement\n     * the `resolveCompletionItem`-function. In that case it is enough to return completion\n     * items with a {@link CompletionItem.label label} from the\n     * {@link CompletionItemProvider.provideCompletionItems provideCompletionItems}-function. Subsequently,\n     * when a completion item is shown in the UI and gains focus this provider is asked to resolve\n     * the item, like adding {@link CompletionItem.documentation doc-comment} or {@link CompletionItem.detail details}.\n     */\n    export interface CompletionItemProvider {\n        triggerCharacters?: string[];\n        /**\n         * Provide completion items for the given position and document.\n         */\n        provideCompletionItems(model: editor.ITextModel, position: Position, context: CompletionContext, token: CancellationToken): ProviderResult<CompletionList>;\n        /**\n         * Given a completion item fill in more data, like {@link CompletionItem.documentation doc-comment}\n         * or {@link CompletionItem.detail details}.\n         *\n         * The editor will only resolve a completion item once.\n         */\n        resolveCompletionItem?(item: CompletionItem, token: CancellationToken): ProviderResult<CompletionItem>;\n    }\n\n    /**\n     * How an {@link InlineCompletionsProvider inline completion provider} was triggered.\n     */\n    export enum InlineCompletionTriggerKind {\n        /**\n         * Completion was triggered automatically while editing.\n         * It is sufficient to return a single completion item in this case.\n         */\n        Automatic = 0,\n        /**\n         * Completion was triggered explicitly by a user gesture.\n         * Return multiple completion items to enable cycling through them.\n         */\n        Explicit = 1\n    }\n\n    export interface InlineCompletionContext {\n        /**\n         * How the completion was triggered.\n         */\n        readonly triggerKind: InlineCompletionTriggerKind;\n        readonly selectedSuggestionInfo: SelectedSuggestionInfo | undefined;\n    }\n\n    export class SelectedSuggestionInfo {\n        readonly range: IRange;\n        readonly text: string;\n        readonly completionKind: CompletionItemKind;\n        readonly isSnippetText: boolean;\n        constructor(range: IRange, text: string, completionKind: CompletionItemKind, isSnippetText: boolean);\n        equals(other: SelectedSuggestionInfo): boolean;\n    }\n\n    export interface InlineCompletion {\n        /**\n         * The text to insert.\n         * If the text contains a line break, the range must end at the end of a line.\n         * If existing text should be replaced, the existing text must be a prefix of the text to insert.\n         *\n         * The text can also be a snippet. In that case, a preview with default parameters is shown.\n         * When accepting the suggestion, the full snippet is inserted.\n        */\n        readonly insertText: string | {\n            snippet: string;\n        };\n        /**\n         * A text that is used to decide if this inline completion should be shown.\n         * An inline completion is shown if the text to replace is a subword of the filter text.\n         */\n        readonly filterText?: string;\n        /**\n         * An optional array of additional text edits that are applied when\n         * selecting this completion. Edits must not overlap with the main edit\n         * nor with themselves.\n         */\n        readonly additionalTextEdits?: editor.ISingleEditOperation[];\n        /**\n         * The range to replace.\n         * Must begin and end on the same line.\n        */\n        readonly range?: IRange;\n        readonly command?: Command;\n        /**\n         * If set to `true`, unopened closing brackets are removed and unclosed opening brackets are closed.\n         * Defaults to `false`.\n        */\n        readonly completeBracketPairs?: boolean;\n    }\n\n    export interface InlineCompletions<TItem extends InlineCompletion = InlineCompletion> {\n        readonly items: readonly TItem[];\n        /**\n         * A list of commands associated with the inline completions of this list.\n         */\n        readonly commands?: Command[];\n        readonly suppressSuggestions?: boolean | undefined;\n        /**\n         * When set and the user types a suggestion without derivating from it, the inline suggestion is not updated.\n         */\n        readonly enableForwardStability?: boolean | undefined;\n    }\n\n    export type InlineCompletionProviderGroupId = string;\n\n    export interface InlineCompletionsProvider<T extends InlineCompletions = InlineCompletions> {\n        provideInlineCompletions(model: editor.ITextModel, position: Position, context: InlineCompletionContext, token: CancellationToken): ProviderResult<T>;\n        /**\n         * Will be called when an item is shown.\n         * @param updatedInsertText Is useful to understand bracket completion.\n        */\n        handleItemDidShow?(completions: T, item: T['items'][number], updatedInsertText: string): void;\n        /**\n         * Will be called when an item is partially accepted.\n         */\n        handlePartialAccept?(completions: T, item: T['items'][number], acceptedCharacters: number, info: PartialAcceptInfo): void;\n        /**\n         * Will be called when a completions list is no longer in use and can be garbage-collected.\n        */\n        freeInlineCompletions(completions: T): void;\n        /**\n         * Only used for {@link yieldsToGroupIds}.\n         * Multiple providers can have the same group id.\n         */\n        groupId?: InlineCompletionProviderGroupId;\n        /**\n         * Returns a list of preferred provider {@link groupId}s.\n         * The current provider is only requested for completions if no provider with a preferred group id returned a result.\n         */\n        yieldsToGroupIds?: InlineCompletionProviderGroupId[];\n        toString?(): string;\n    }\n\n    export interface CodeAction {\n        title: string;\n        command?: Command;\n        edit?: WorkspaceEdit;\n        diagnostics?: editor.IMarkerData[];\n        kind?: string;\n        isPreferred?: boolean;\n        isAI?: boolean;\n        disabled?: string;\n        ranges?: IRange[];\n    }\n\n    export enum CodeActionTriggerType {\n        Invoke = 1,\n        Auto = 2\n    }\n\n    export interface CodeActionList extends IDisposable {\n        readonly actions: ReadonlyArray<CodeAction>;\n    }\n\n    /**\n     * Represents a parameter of a callable-signature. A parameter can\n     * have a label and a doc-comment.\n     */\n    export interface ParameterInformation {\n        /**\n         * The label of this signature. Will be shown in\n         * the UI.\n         */\n        label: string | [number, number];\n        /**\n         * The human-readable doc-comment of this signature. Will be shown\n         * in the UI but can be omitted.\n         */\n        documentation?: string | IMarkdownString;\n    }\n\n    /**\n     * Represents the signature of something callable. A signature\n     * can have a label, like a function-name, a doc-comment, and\n     * a set of parameters.\n     */\n    export interface SignatureInformation {\n        /**\n         * The label of this signature. Will be shown in\n         * the UI.\n         */\n        label: string;\n        /**\n         * The human-readable doc-comment of this signature. Will be shown\n         * in the UI but can be omitted.\n         */\n        documentation?: string | IMarkdownString;\n        /**\n         * The parameters of this signature.\n         */\n        parameters: ParameterInformation[];\n        /**\n         * Index of the active parameter.\n         *\n         * If provided, this is used in place of `SignatureHelp.activeSignature`.\n         */\n        activeParameter?: number;\n    }\n\n    /**\n     * Signature help represents the signature of something\n     * callable. There can be multiple signatures but only one\n     * active and only one active parameter.\n     */\n    export interface SignatureHelp {\n        /**\n         * One or more signatures.\n         */\n        signatures: SignatureInformation[];\n        /**\n         * The active signature.\n         */\n        activeSignature: number;\n        /**\n         * The active parameter of the active signature.\n         */\n        activeParameter: number;\n    }\n\n    export interface SignatureHelpResult extends IDisposable {\n        value: SignatureHelp;\n    }\n\n    export enum SignatureHelpTriggerKind {\n        Invoke = 1,\n        TriggerCharacter = 2,\n        ContentChange = 3\n    }\n\n    export interface SignatureHelpContext {\n        readonly triggerKind: SignatureHelpTriggerKind;\n        readonly triggerCharacter?: string;\n        readonly isRetrigger: boolean;\n        readonly activeSignatureHelp?: SignatureHelp;\n    }\n\n    /**\n     * The signature help provider interface defines the contract between extensions and\n     * the [parameter hints](https://code.visualstudio.com/docs/editor/intellisense)-feature.\n     */\n    export interface SignatureHelpProvider {\n        readonly signatureHelpTriggerCharacters?: ReadonlyArray<string>;\n        readonly signatureHelpRetriggerCharacters?: ReadonlyArray<string>;\n        /**\n         * Provide help for the signature at the given position and document.\n         */\n        provideSignatureHelp(model: editor.ITextModel, position: Position, token: CancellationToken, context: SignatureHelpContext): ProviderResult<SignatureHelpResult>;\n    }\n\n    /**\n     * A document highlight kind.\n     */\n    export enum DocumentHighlightKind {\n        /**\n         * A textual occurrence.\n         */\n        Text = 0,\n        /**\n         * Read-access of a symbol, like reading a variable.\n         */\n        Read = 1,\n        /**\n         * Write-access of a symbol, like writing to a variable.\n         */\n        Write = 2\n    }\n\n    /**\n     * A document highlight is a range inside a text document which deserves\n     * special attention. Usually a document highlight is visualized by changing\n     * the background color of its range.\n     */\n    export interface DocumentHighlight {\n        /**\n         * The range this highlight applies to.\n         */\n        range: IRange;\n        /**\n         * The highlight kind, default is {@link DocumentHighlightKind.Text text}.\n         */\n        kind?: DocumentHighlightKind;\n    }\n\n    /**\n     * Represents a set of document highlights for a specific Uri.\n     */\n    export interface MultiDocumentHighlight {\n        /**\n         * The Uri of the document that the highlights belong to.\n         */\n        uri: Uri;\n        /**\n         * The set of highlights for the document.\n         */\n        highlights: DocumentHighlight[];\n    }\n\n    /**\n     * The document highlight provider interface defines the contract between extensions and\n     * the word-highlight-feature.\n     */\n    export interface DocumentHighlightProvider {\n        /**\n         * Provide a set of document highlights, like all occurrences of a variable or\n         * all exit-points of a function.\n         */\n        provideDocumentHighlights(model: editor.ITextModel, position: Position, token: CancellationToken): ProviderResult<DocumentHighlight[]>;\n    }\n\n    /**\n     * A provider that can provide document highlights across multiple documents.\n     */\n    export interface MultiDocumentHighlightProvider {\n        readonly selector: LanguageSelector;\n        /**\n         * Provide a Map of Uri --> document highlights, like all occurrences of a variable or\n         * all exit-points of a function.\n         *\n         * Used in cases such as split view, notebooks, etc. where there can be multiple documents\n         * with shared symbols.\n         *\n         * @param primaryModel The primary text model.\n         * @param position The position at which to provide document highlights.\n         * @param otherModels The other text models to search for document highlights.\n         * @param token A cancellation token.\n         * @returns A map of Uri to document highlights.\n         */\n        provideMultiDocumentHighlights(primaryModel: editor.ITextModel, position: Position, otherModels: editor.ITextModel[], token: CancellationToken): ProviderResult<Map<Uri, DocumentHighlight[]>>;\n    }\n\n    /**\n     * The linked editing range provider interface defines the contract between extensions and\n     * the linked editing feature.\n     */\n    export interface LinkedEditingRangeProvider {\n        /**\n         * Provide a list of ranges that can be edited together.\n         */\n        provideLinkedEditingRanges(model: editor.ITextModel, position: Position, token: CancellationToken): ProviderResult<LinkedEditingRanges>;\n    }\n\n    /**\n     * Represents a list of ranges that can be edited together along with a word pattern to describe valid contents.\n     */\n    export interface LinkedEditingRanges {\n        /**\n         * A list of ranges that can be edited together. The ranges must have\n         * identical length and text content. The ranges cannot overlap\n         */\n        ranges: IRange[];\n        /**\n         * An optional word pattern that describes valid contents for the given ranges.\n         * If no pattern is provided, the language configuration's word pattern will be used.\n         */\n        wordPattern?: RegExp;\n    }\n\n    /**\n     * Value-object that contains additional information when\n     * requesting references.\n     */\n    export interface ReferenceContext {\n        /**\n         * Include the declaration of the current symbol.\n         */\n        includeDeclaration: boolean;\n    }\n\n    /**\n     * The reference provider interface defines the contract between extensions and\n     * the [find references](https://code.visualstudio.com/docs/editor/editingevolved#_peek)-feature.\n     */\n    export interface ReferenceProvider {\n        /**\n         * Provide a set of project-wide references for the given position and document.\n         */\n        provideReferences(model: editor.ITextModel, position: Position, context: ReferenceContext, token: CancellationToken): ProviderResult<Location[]>;\n    }\n\n    /**\n     * Represents a location inside a resource, such as a line\n     * inside a text file.\n     */\n    export interface Location {\n        /**\n         * The resource identifier of this location.\n         */\n        uri: Uri;\n        /**\n         * The document range of this locations.\n         */\n        range: IRange;\n    }\n\n    export interface LocationLink {\n        /**\n         * A range to select where this link originates from.\n         */\n        originSelectionRange?: IRange;\n        /**\n         * The target uri this link points to.\n         */\n        uri: Uri;\n        /**\n         * The full range this link points to.\n         */\n        range: IRange;\n        /**\n         * A range to select this link points to. Must be contained\n         * in `LocationLink.range`.\n         */\n        targetSelectionRange?: IRange;\n    }\n\n    export type Definition = Location | Location[] | LocationLink[];\n\n    /**\n     * The definition provider interface defines the contract between extensions and\n     * the [go to definition](https://code.visualstudio.com/docs/editor/editingevolved#_go-to-definition)\n     * and peek definition features.\n     */\n    export interface DefinitionProvider {\n        /**\n         * Provide the definition of the symbol at the given position and document.\n         */\n        provideDefinition(model: editor.ITextModel, position: Position, token: CancellationToken): ProviderResult<Definition | LocationLink[]>;\n    }\n\n    /**\n     * The definition provider interface defines the contract between extensions and\n     * the [go to definition](https://code.visualstudio.com/docs/editor/editingevolved#_go-to-definition)\n     * and peek definition features.\n     */\n    export interface DeclarationProvider {\n        /**\n         * Provide the declaration of the symbol at the given position and document.\n         */\n        provideDeclaration(model: editor.ITextModel, position: Position, token: CancellationToken): ProviderResult<Definition | LocationLink[]>;\n    }\n\n    /**\n     * The implementation provider interface defines the contract between extensions and\n     * the go to implementation feature.\n     */\n    export interface ImplementationProvider {\n        /**\n         * Provide the implementation of the symbol at the given position and document.\n         */\n        provideImplementation(model: editor.ITextModel, position: Position, token: CancellationToken): ProviderResult<Definition | LocationLink[]>;\n    }\n\n    /**\n     * The type definition provider interface defines the contract between extensions and\n     * the go to type definition feature.\n     */\n    export interface TypeDefinitionProvider {\n        /**\n         * Provide the type definition of the symbol at the given position and document.\n         */\n        provideTypeDefinition(model: editor.ITextModel, position: Position, token: CancellationToken): ProviderResult<Definition | LocationLink[]>;\n    }\n\n    /**\n     * A symbol kind.\n     */\n    export enum SymbolKind {\n        File = 0,\n        Module = 1,\n        Namespace = 2,\n        Package = 3,\n        Class = 4,\n        Method = 5,\n        Property = 6,\n        Field = 7,\n        Constructor = 8,\n        Enum = 9,\n        Interface = 10,\n        Function = 11,\n        Variable = 12,\n        Constant = 13,\n        String = 14,\n        Number = 15,\n        Boolean = 16,\n        Array = 17,\n        Object = 18,\n        Key = 19,\n        Null = 20,\n        EnumMember = 21,\n        Struct = 22,\n        Event = 23,\n        Operator = 24,\n        TypeParameter = 25\n    }\n\n    export enum SymbolTag {\n        Deprecated = 1\n    }\n\n    export interface DocumentSymbol {\n        name: string;\n        detail: string;\n        kind: SymbolKind;\n        tags: ReadonlyArray<SymbolTag>;\n        containerName?: string;\n        range: IRange;\n        selectionRange: IRange;\n        children?: DocumentSymbol[];\n    }\n\n    /**\n     * The document symbol provider interface defines the contract between extensions and\n     * the [go to symbol](https://code.visualstudio.com/docs/editor/editingevolved#_go-to-symbol)-feature.\n     */\n    export interface DocumentSymbolProvider {\n        displayName?: string;\n        /**\n         * Provide symbol information for the given document.\n         */\n        provideDocumentSymbols(model: editor.ITextModel, token: CancellationToken): ProviderResult<DocumentSymbol[]>;\n    }\n\n    export interface TextEdit {\n        range: IRange;\n        text: string;\n        eol?: editor.EndOfLineSequence;\n    }\n\n    /**\n     * Interface used to format a model\n     */\n    export interface FormattingOptions {\n        /**\n         * Size of a tab in spaces.\n         */\n        tabSize: number;\n        /**\n         * Prefer spaces over tabs.\n         */\n        insertSpaces: boolean;\n    }\n\n    /**\n     * The document formatting provider interface defines the contract between extensions and\n     * the formatting-feature.\n     */\n    export interface DocumentFormattingEditProvider {\n        readonly displayName?: string;\n        /**\n         * Provide formatting edits for a whole document.\n         */\n        provideDocumentFormattingEdits(model: editor.ITextModel, options: FormattingOptions, token: CancellationToken): ProviderResult<TextEdit[]>;\n    }\n\n    /**\n     * The document formatting provider interface defines the contract between extensions and\n     * the formatting-feature.\n     */\n    export interface DocumentRangeFormattingEditProvider {\n        readonly displayName?: string;\n        /**\n         * Provide formatting edits for a range in a document.\n         *\n         * The given range is a hint and providers can decide to format a smaller\n         * or larger range. Often this is done by adjusting the start and end\n         * of the range to full syntax nodes.\n         */\n        provideDocumentRangeFormattingEdits(model: editor.ITextModel, range: Range, options: FormattingOptions, token: CancellationToken): ProviderResult<TextEdit[]>;\n        provideDocumentRangesFormattingEdits?(model: editor.ITextModel, ranges: Range[], options: FormattingOptions, token: CancellationToken): ProviderResult<TextEdit[]>;\n    }\n\n    /**\n     * The document formatting provider interface defines the contract between extensions and\n     * the formatting-feature.\n     */\n    export interface OnTypeFormattingEditProvider {\n        autoFormatTriggerCharacters: string[];\n        /**\n         * Provide formatting edits after a character has been typed.\n         *\n         * The given position and character should hint to the provider\n         * what range the position to expand to, like find the matching `{`\n         * when `}` has been entered.\n         */\n        provideOnTypeFormattingEdits(model: editor.ITextModel, position: Position, ch: string, options: FormattingOptions, token: CancellationToken): ProviderResult<TextEdit[]>;\n    }\n\n    /**\n     * A link inside the editor.\n     */\n    export interface ILink {\n        range: IRange;\n        url?: Uri | string;\n        tooltip?: string;\n    }\n\n    export interface ILinksList {\n        links: ILink[];\n        dispose?(): void;\n    }\n\n    /**\n     * A provider of links.\n     */\n    export interface LinkProvider {\n        provideLinks(model: editor.ITextModel, token: CancellationToken): ProviderResult<ILinksList>;\n        resolveLink?: (link: ILink, token: CancellationToken) => ProviderResult<ILink>;\n    }\n\n    /**\n     * A color in RGBA format.\n     */\n    export interface IColor {\n        /**\n         * The red component in the range [0-1].\n         */\n        readonly red: number;\n        /**\n         * The green component in the range [0-1].\n         */\n        readonly green: number;\n        /**\n         * The blue component in the range [0-1].\n         */\n        readonly blue: number;\n        /**\n         * The alpha component in the range [0-1].\n         */\n        readonly alpha: number;\n    }\n\n    /**\n     * String representations for a color\n     */\n    export interface IColorPresentation {\n        /**\n         * The label of this color presentation. It will be shown on the color\n         * picker header. By default this is also the text that is inserted when selecting\n         * this color presentation.\n         */\n        label: string;\n        /**\n         * An {@link TextEdit edit} which is applied to a document when selecting\n         * this presentation for the color.\n         */\n        textEdit?: TextEdit;\n        /**\n         * An optional array of additional {@link TextEdit text edits} that are applied when\n         * selecting this color presentation.\n         */\n        additionalTextEdits?: TextEdit[];\n    }\n\n    /**\n     * A color range is a range in a text model which represents a color.\n     */\n    export interface IColorInformation {\n        /**\n         * The range within the model.\n         */\n        range: IRange;\n        /**\n         * The color represented in this range.\n         */\n        color: IColor;\n    }\n\n    /**\n     * A provider of colors for editor models.\n     */\n    export interface DocumentColorProvider {\n        /**\n         * Provides the color ranges for a specific model.\n         */\n        provideDocumentColors(model: editor.ITextModel, token: CancellationToken): ProviderResult<IColorInformation[]>;\n        /**\n         * Provide the string representations for a color.\n         */\n        provideColorPresentations(model: editor.ITextModel, colorInfo: IColorInformation, token: CancellationToken): ProviderResult<IColorPresentation[]>;\n    }\n\n    export interface SelectionRange {\n        range: IRange;\n    }\n\n    export interface SelectionRangeProvider {\n        /**\n         * Provide ranges that should be selected from the given position.\n         */\n        provideSelectionRanges(model: editor.ITextModel, positions: Position[], token: CancellationToken): ProviderResult<SelectionRange[][]>;\n    }\n\n    export interface FoldingContext {\n    }\n\n    /**\n     * A provider of folding ranges for editor models.\n     */\n    export interface FoldingRangeProvider {\n        /**\n         * An optional event to signal that the folding ranges from this provider have changed.\n         */\n        onDidChange?: IEvent<this>;\n        /**\n         * Provides the folding ranges for a specific model.\n         */\n        provideFoldingRanges(model: editor.ITextModel, context: FoldingContext, token: CancellationToken): ProviderResult<FoldingRange[]>;\n    }\n\n    export interface FoldingRange {\n        /**\n         * The one-based start line of the range to fold. The folded area starts after the line's last character.\n         */\n        start: number;\n        /**\n         * The one-based end line of the range to fold. The folded area ends with the line's last character.\n         */\n        end: number;\n        /**\n         * Describes the {@link FoldingRangeKind Kind} of the folding range such as {@link FoldingRangeKind.Comment Comment} or\n         * {@link FoldingRangeKind.Region Region}. The kind is used to categorize folding ranges and used by commands\n         * like 'Fold all comments'. See\n         * {@link FoldingRangeKind} for an enumeration of standardized kinds.\n         */\n        kind?: FoldingRangeKind;\n    }\n\n    export class FoldingRangeKind {\n        value: string;\n        /**\n         * Kind for folding range representing a comment. The value of the kind is 'comment'.\n         */\n        static readonly Comment: FoldingRangeKind;\n        /**\n         * Kind for folding range representing a import. The value of the kind is 'imports'.\n         */\n        static readonly Imports: FoldingRangeKind;\n        /**\n         * Kind for folding range representing regions (for example marked by `#region`, `#endregion`).\n         * The value of the kind is 'region'.\n         */\n        static readonly Region: FoldingRangeKind;\n        /**\n         * Returns a {@link FoldingRangeKind} for the given value.\n         *\n         * @param value of the kind.\n         */\n        static fromValue(value: string): FoldingRangeKind;\n        /**\n         * Creates a new {@link FoldingRangeKind}.\n         *\n         * @param value of the kind.\n         */\n        constructor(value: string);\n    }\n\n    export interface WorkspaceEditMetadata {\n        needsConfirmation: boolean;\n        label: string;\n        description?: string;\n    }\n\n    export interface WorkspaceFileEditOptions {\n        overwrite?: boolean;\n        ignoreIfNotExists?: boolean;\n        ignoreIfExists?: boolean;\n        recursive?: boolean;\n        copy?: boolean;\n        folder?: boolean;\n        skipTrashBin?: boolean;\n        maxSize?: number;\n    }\n\n    export interface IWorkspaceFileEdit {\n        oldResource?: Uri;\n        newResource?: Uri;\n        options?: WorkspaceFileEditOptions;\n        metadata?: WorkspaceEditMetadata;\n    }\n\n    export interface IWorkspaceTextEdit {\n        resource: Uri;\n        textEdit: TextEdit & {\n            insertAsSnippet?: boolean;\n        };\n        versionId: number | undefined;\n        metadata?: WorkspaceEditMetadata;\n    }\n\n    export interface WorkspaceEdit {\n        edits: Array<IWorkspaceTextEdit | IWorkspaceFileEdit>;\n    }\n\n    export interface Rejection {\n        rejectReason?: string;\n    }\n\n    export interface RenameLocation {\n        range: IRange;\n        text: string;\n    }\n\n    export interface RenameProvider {\n        provideRenameEdits(model: editor.ITextModel, position: Position, newName: string, token: CancellationToken): ProviderResult<WorkspaceEdit & Rejection>;\n        resolveRenameLocation?(model: editor.ITextModel, position: Position, token: CancellationToken): ProviderResult<RenameLocation & Rejection>;\n    }\n\n    export enum NewSymbolNameTag {\n        AIGenerated = 1\n    }\n\n    export enum NewSymbolNameTriggerKind {\n        Invoke = 0,\n        Automatic = 1\n    }\n\n    export interface NewSymbolName {\n        readonly newSymbolName: string;\n        readonly tags?: readonly NewSymbolNameTag[];\n    }\n\n    export interface NewSymbolNamesProvider {\n        supportsAutomaticNewSymbolNamesTriggerKind?: Promise<boolean | undefined>;\n        provideNewSymbolNames(model: editor.ITextModel, range: IRange, triggerKind: NewSymbolNameTriggerKind, token: CancellationToken): ProviderResult<NewSymbolName[]>;\n    }\n\n    export interface Command {\n        id: string;\n        title: string;\n        tooltip?: string;\n        arguments?: any[];\n    }\n\n    export interface CommentAuthorInformation {\n        name: string;\n        iconPath?: UriComponents;\n    }\n\n    export interface PendingCommentThread {\n        body: string;\n        range: IRange | undefined;\n        uri: Uri;\n        uniqueOwner: string;\n        isReply: boolean;\n    }\n\n    export interface CodeLens {\n        range: IRange;\n        id?: string;\n        command?: Command;\n    }\n\n    export interface CodeLensList {\n        lenses: CodeLens[];\n        dispose(): void;\n    }\n\n    export interface CodeLensProvider {\n        onDidChange?: IEvent<this>;\n        provideCodeLenses(model: editor.ITextModel, token: CancellationToken): ProviderResult<CodeLensList>;\n        resolveCodeLens?(model: editor.ITextModel, codeLens: CodeLens, token: CancellationToken): ProviderResult<CodeLens>;\n    }\n\n    export enum InlayHintKind {\n        Type = 1,\n        Parameter = 2\n    }\n\n    export interface InlayHintLabelPart {\n        label: string;\n        tooltip?: string | IMarkdownString;\n        command?: Command;\n        location?: Location;\n    }\n\n    export interface InlayHint {\n        label: string | InlayHintLabelPart[];\n        tooltip?: string | IMarkdownString;\n        textEdits?: TextEdit[];\n        position: IPosition;\n        kind?: InlayHintKind;\n        paddingLeft?: boolean;\n        paddingRight?: boolean;\n    }\n\n    export interface InlayHintList {\n        hints: InlayHint[];\n        dispose(): void;\n    }\n\n    export interface InlayHintsProvider {\n        displayName?: string;\n        onDidChangeInlayHints?: IEvent<void>;\n        provideInlayHints(model: editor.ITextModel, range: Range, token: CancellationToken): ProviderResult<InlayHintList>;\n        resolveInlayHint?(hint: InlayHint, token: CancellationToken): ProviderResult<InlayHint>;\n    }\n\n    export interface SemanticTokensLegend {\n        readonly tokenTypes: string[];\n        readonly tokenModifiers: string[];\n    }\n\n    export interface SemanticTokens {\n        readonly resultId?: string;\n        readonly data: Uint32Array;\n    }\n\n    export interface SemanticTokensEdit {\n        readonly start: number;\n        readonly deleteCount: number;\n        readonly data?: Uint32Array;\n    }\n\n    export interface SemanticTokensEdits {\n        readonly resultId?: string;\n        readonly edits: SemanticTokensEdit[];\n    }\n\n    export interface DocumentSemanticTokensProvider {\n        onDidChange?: IEvent<void>;\n        getLegend(): SemanticTokensLegend;\n        provideDocumentSemanticTokens(model: editor.ITextModel, lastResultId: string | null, token: CancellationToken): ProviderResult<SemanticTokens | SemanticTokensEdits>;\n        releaseDocumentSemanticTokens(resultId: string | undefined): void;\n    }\n\n    export interface DocumentRangeSemanticTokensProvider {\n        getLegend(): SemanticTokensLegend;\n        provideDocumentRangeSemanticTokens(model: editor.ITextModel, range: Range, token: CancellationToken): ProviderResult<SemanticTokens>;\n    }\n\n    export interface DocumentContextItem {\n        readonly uri: Uri;\n        readonly version: number;\n        readonly ranges: IRange[];\n    }\n\n    export interface MappedEditsContext {\n        /** The outer array is sorted by priority - from highest to lowest. The inner arrays contain elements of the same priority. */\n        documents: DocumentContextItem[][];\n    }\n\n    export interface MappedEditsProvider {\n        /**\n         * Provider maps code blocks from the chat into a workspace edit.\n         *\n         * @param document The document to provide mapped edits for.\n         * @param codeBlocks Code blocks that come from an LLM's reply.\n         * \t\t\t\t\t\t\"Insert at cursor\" in the panel chat only sends one edit that the user clicks on, but inline chat can send multiple blocks and let the lang server decide what to do with them.\n         * @param context The context for providing mapped edits.\n         * @param token A cancellation token.\n         * @returns A provider result of text edits.\n         */\n        provideMappedEdits(document: editor.ITextModel, codeBlocks: string[], context: MappedEditsContext, token: CancellationToken): Promise<WorkspaceEdit | null>;\n    }\n\n    export interface IInlineEdit {\n        text: string;\n        range: IRange;\n        accepted?: Command;\n        rejected?: Command;\n    }\n\n    export interface IInlineEditContext {\n        triggerKind: InlineEditTriggerKind;\n    }\n\n    export enum InlineEditTriggerKind {\n        Invoke = 0,\n        Automatic = 1\n    }\n\n    export interface InlineEditProvider<T extends IInlineEdit = IInlineEdit> {\n        provideInlineEdit(model: editor.ITextModel, context: IInlineEditContext, token: CancellationToken): ProviderResult<T>;\n        freeInlineEdit(edit: T): void;\n    }\n\n    export interface ILanguageExtensionPoint {\n        id: string;\n        extensions?: string[];\n        filenames?: string[];\n        filenamePatterns?: string[];\n        firstLine?: string;\n        aliases?: string[];\n        mimetypes?: string[];\n        configuration?: Uri;\n    }\n    /**\n     * A Monarch language definition\n     */\n    export interface IMonarchLanguage {\n        /**\n         * map from string to ILanguageRule[]\n         */\n        tokenizer: {\n            [name: string]: IMonarchLanguageRule[];\n        };\n        /**\n         * is the language case insensitive?\n         */\n        ignoreCase?: boolean;\n        /**\n         * is the language unicode-aware? (i.e., /\\u{1D306}/)\n         */\n        unicode?: boolean;\n        /**\n         * if no match in the tokenizer assign this token class (default 'source')\n         */\n        defaultToken?: string;\n        /**\n         * for example [['{','}','delimiter.curly']]\n         */\n        brackets?: IMonarchLanguageBracket[];\n        /**\n         * start symbol in the tokenizer (by default the first entry is used)\n         */\n        start?: string;\n        /**\n         * attach this to every token class (by default '.' + name)\n         */\n        tokenPostfix?: string;\n        /**\n         * include line feeds (in the form of a \\n character) at the end of lines\n         * Defaults to false\n         */\n        includeLF?: boolean;\n        /**\n         * Other keys that can be referred to by the tokenizer.\n         */\n        [key: string]: any;\n    }\n\n    /**\n     * A rule is either a regular expression and an action\n     * \t\tshorthands: [reg,act] == { regex: reg, action: act}\n     *\t\tand       : [reg,act,nxt] == { regex: reg, action: act{ next: nxt }}\n     */\n    export type IShortMonarchLanguageRule1 = [string | RegExp, IMonarchLanguageAction];\n\n    export type IShortMonarchLanguageRule2 = [string | RegExp, IMonarchLanguageAction, string];\n\n    export interface IExpandedMonarchLanguageRule {\n        /**\n         * match tokens\n         */\n        regex?: string | RegExp;\n        /**\n         * action to take on match\n         */\n        action?: IMonarchLanguageAction;\n        /**\n         * or an include rule. include all rules from the included state\n         */\n        include?: string;\n    }\n\n    export type IMonarchLanguageRule = IShortMonarchLanguageRule1 | IShortMonarchLanguageRule2 | IExpandedMonarchLanguageRule;\n\n    /**\n     * An action is either an array of actions...\n     * ... or a case statement with guards...\n     * ... or a basic action with a token value.\n     */\n    export type IShortMonarchLanguageAction = string;\n\n    export interface IExpandedMonarchLanguageAction {\n        /**\n         * array of actions for each parenthesized match group\n         */\n        group?: IMonarchLanguageAction[];\n        /**\n         * map from string to ILanguageAction\n         */\n        cases?: Object;\n        /**\n         * token class (ie. css class) (or \"@brackets\" or \"@rematch\")\n         */\n        token?: string;\n        /**\n         * the next state to push, or \"@push\", \"@pop\", \"@popall\"\n         */\n        next?: string;\n        /**\n         * switch to this state\n         */\n        switchTo?: string;\n        /**\n         * go back n characters in the stream\n         */\n        goBack?: number;\n        /**\n         * @open or @close\n         */\n        bracket?: string;\n        /**\n         * switch to embedded language (using the mimetype) or get out using \"@pop\"\n         */\n        nextEmbedded?: string;\n        /**\n         * log a message to the browser console window\n         */\n        log?: string;\n    }\n\n    export type IMonarchLanguageAction = IShortMonarchLanguageAction | IExpandedMonarchLanguageAction | (IShortMonarchLanguageAction | IExpandedMonarchLanguageAction)[];\n\n    /**\n     * This interface can be shortened as an array, ie. ['{','}','delimiter.curly']\n     */\n    export interface IMonarchLanguageBracket {\n        /**\n         * open bracket\n         */\n        open: string;\n        /**\n         * closing bracket\n         */\n        close: string;\n        /**\n         * token class\n         */\n        token: string;\n    }\n\n}\n\nexport namespace worker {\n\n    export interface IMirrorTextModel {\n        readonly version: number;\n    }\n\n    export interface IMirrorModel extends IMirrorTextModel {\n        readonly uri: Uri;\n        readonly version: number;\n        getValue(): string;\n    }\n\n    export interface IWorkerContext<H = undefined> {\n        /**\n         * A proxy to the main thread host object.\n         */\n        host: H;\n        /**\n         * Get all available mirror models in this worker.\n         */\n        getMirrorModels(): IMirrorModel[];\n    }\n\n}\n\n//dtsv=3\n\n/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nexport namespace languages.css {\n    export interface CSSFormatConfiguration {\n        /** separate selectors with newline (e.g. \"a,\\nbr\" or \"a, br\"): Default: true */\n        newlineBetweenSelectors?: boolean;\n        /** add a new line after every css rule: Default: true */\n        newlineBetweenRules?: boolean;\n        /** ensure space around selector separators:  '>', '+', '~' (e.g. \"a>b\" -> \"a > b\"): Default: false */\n        spaceAroundSelectorSeparator?: boolean;\n        /** put braces on the same line as rules (`collapse`), or put braces on own line, Allman / ANSI style (`expand`). Default `collapse` */\n        braceStyle?: 'collapse' | 'expand';\n        /** whether existing line breaks before elements should be preserved. Default: true */\n        preserveNewLines?: boolean;\n        /** maximum number of line breaks to be preserved in one chunk. Default: unlimited */\n        maxPreserveNewLines?: number;\n    }\n    export interface Options {\n        readonly validate?: boolean;\n        readonly lint?: {\n            readonly compatibleVendorPrefixes?: 'ignore' | 'warning' | 'error';\n            readonly vendorPrefix?: 'ignore' | 'warning' | 'error';\n            readonly duplicateProperties?: 'ignore' | 'warning' | 'error';\n            readonly emptyRules?: 'ignore' | 'warning' | 'error';\n            readonly importStatement?: 'ignore' | 'warning' | 'error';\n            readonly boxModel?: 'ignore' | 'warning' | 'error';\n            readonly universalSelector?: 'ignore' | 'warning' | 'error';\n            readonly zeroUnits?: 'ignore' | 'warning' | 'error';\n            readonly fontFaceProperties?: 'ignore' | 'warning' | 'error';\n            readonly hexColorLength?: 'ignore' | 'warning' | 'error';\n            readonly argumentsInColorFunction?: 'ignore' | 'warning' | 'error';\n            readonly unknownProperties?: 'ignore' | 'warning' | 'error';\n            readonly ieHack?: 'ignore' | 'warning' | 'error';\n            readonly unknownVendorSpecificProperties?: 'ignore' | 'warning' | 'error';\n            readonly propertyIgnoredDueToDisplay?: 'ignore' | 'warning' | 'error';\n            readonly important?: 'ignore' | 'warning' | 'error';\n            readonly float?: 'ignore' | 'warning' | 'error';\n            readonly idSelector?: 'ignore' | 'warning' | 'error';\n        };\n        /**\n         * Configures the CSS data types known by the langauge service.\n         */\n        readonly data?: CSSDataConfiguration;\n        /**\n         * Settings for the CSS formatter.\n         */\n        readonly format?: CSSFormatConfiguration;\n    }\n    export interface ModeConfiguration {\n        /**\n         * Defines whether the built-in completionItemProvider is enabled.\n         */\n        readonly completionItems?: boolean;\n        /**\n         * Defines whether the built-in hoverProvider is enabled.\n         */\n        readonly hovers?: boolean;\n        /**\n         * Defines whether the built-in documentSymbolProvider is enabled.\n         */\n        readonly documentSymbols?: boolean;\n        /**\n         * Defines whether the built-in definitions provider is enabled.\n         */\n        readonly definitions?: boolean;\n        /**\n         * Defines whether the built-in references provider is enabled.\n         */\n        readonly references?: boolean;\n        /**\n         * Defines whether the built-in references provider is enabled.\n         */\n        readonly documentHighlights?: boolean;\n        /**\n         * Defines whether the built-in rename provider is enabled.\n         */\n        readonly rename?: boolean;\n        /**\n         * Defines whether the built-in color provider is enabled.\n         */\n        readonly colors?: boolean;\n        /**\n         * Defines whether the built-in foldingRange provider is enabled.\n         */\n        readonly foldingRanges?: boolean;\n        /**\n         * Defines whether the built-in diagnostic provider is enabled.\n         */\n        readonly diagnostics?: boolean;\n        /**\n         * Defines whether the built-in selection range provider is enabled.\n         */\n        readonly selectionRanges?: boolean;\n        /**\n         * Defines whether the built-in document formatting edit provider is enabled.\n         */\n        readonly documentFormattingEdits?: boolean;\n        /**\n         * Defines whether the built-in document formatting range edit provider is enabled.\n         */\n        readonly documentRangeFormattingEdits?: boolean;\n    }\n    export interface LanguageServiceDefaults {\n        readonly languageId: string;\n        readonly onDidChange: IEvent<LanguageServiceDefaults>;\n        readonly modeConfiguration: ModeConfiguration;\n        readonly options: Options;\n        setOptions(options: Options): void;\n        setModeConfiguration(modeConfiguration: ModeConfiguration): void;\n        /** @deprecated Use options instead */\n        readonly diagnosticsOptions: DiagnosticsOptions;\n        /** @deprecated Use setOptions instead */\n        setDiagnosticsOptions(options: DiagnosticsOptions): void;\n    }\n    /** @deprecated Use Options instead */\n    export type DiagnosticsOptions = Options;\n    export const cssDefaults: LanguageServiceDefaults;\n    export const scssDefaults: LanguageServiceDefaults;\n    export const lessDefaults: LanguageServiceDefaults;\n    export interface CSSDataConfiguration {\n        /**\n         * Defines whether the standard CSS properties, at-directives, pseudoClasses and pseudoElements are shown.\n         */\n        useDefaultDataProvider?: boolean;\n        /**\n         * Provides a set of custom data providers.\n         */\n        dataProviders?: {\n            [providerId: string]: CSSDataV1;\n        };\n    }\n    /**\n     * Custom CSS properties, at-directives, pseudoClasses and pseudoElements\n     * https://github.com/microsoft/vscode-css-languageservice/blob/main/docs/customData.md\n     */\n    export interface CSSDataV1 {\n        version: 1 | 1.1;\n        properties?: IPropertyData[];\n        atDirectives?: IAtDirectiveData[];\n        pseudoClasses?: IPseudoClassData[];\n        pseudoElements?: IPseudoElementData[];\n    }\n    export type EntryStatus = 'standard' | 'experimental' | 'nonstandard' | 'obsolete';\n    export interface IReference {\n        name: string;\n        url: string;\n    }\n    export interface IPropertyData {\n        name: string;\n        description?: string | MarkupContent;\n        browsers?: string[];\n        restrictions?: string[];\n        status?: EntryStatus;\n        syntax?: string;\n        values?: IValueData[];\n        references?: IReference[];\n        relevance?: number;\n    }\n    export interface IAtDirectiveData {\n        name: string;\n        description?: string | MarkupContent;\n        browsers?: string[];\n        status?: EntryStatus;\n        references?: IReference[];\n    }\n    export interface IPseudoClassData {\n        name: string;\n        description?: string | MarkupContent;\n        browsers?: string[];\n        status?: EntryStatus;\n        references?: IReference[];\n    }\n    export interface IPseudoElementData {\n        name: string;\n        description?: string | MarkupContent;\n        browsers?: string[];\n        status?: EntryStatus;\n        references?: IReference[];\n    }\n    export interface IValueData {\n        name: string;\n        description?: string | MarkupContent;\n        browsers?: string[];\n        status?: EntryStatus;\n        references?: IReference[];\n    }\n    export interface MarkupContent {\n        kind: MarkupKind;\n        value: string;\n    }\n    export type MarkupKind = 'plaintext' | 'markdown';\n}\n\n/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nexport namespace languages.html {\n    export interface HTMLFormatConfiguration {\n        readonly tabSize: number;\n        readonly insertSpaces: boolean;\n        readonly wrapLineLength: number;\n        readonly unformatted: string;\n        readonly contentUnformatted: string;\n        readonly indentInnerHtml: boolean;\n        readonly preserveNewLines: boolean;\n        readonly maxPreserveNewLines: number | undefined;\n        readonly indentHandlebars: boolean;\n        readonly endWithNewline: boolean;\n        readonly extraLiners: string;\n        readonly wrapAttributes: 'auto' | 'force' | 'force-aligned' | 'force-expand-multiline';\n    }\n    export interface CompletionConfiguration {\n        readonly [providerId: string]: boolean;\n    }\n    export interface Options {\n        /**\n         * Settings for the HTML formatter.\n         */\n        readonly format?: HTMLFormatConfiguration;\n        /**\n         * Code completion settings.\n         */\n        readonly suggest?: CompletionConfiguration;\n        /**\n         * Configures the HTML data types known by the HTML langauge service.\n         */\n        readonly data?: HTMLDataConfiguration;\n    }\n    export interface ModeConfiguration {\n        /**\n         * Defines whether the built-in completionItemProvider is enabled.\n         */\n        readonly completionItems?: boolean;\n        /**\n         * Defines whether the built-in hoverProvider is enabled.\n         */\n        readonly hovers?: boolean;\n        /**\n         * Defines whether the built-in documentSymbolProvider is enabled.\n         */\n        readonly documentSymbols?: boolean;\n        /**\n         * Defines whether the built-in definitions provider is enabled.\n         */\n        readonly links?: boolean;\n        /**\n         * Defines whether the built-in references provider is enabled.\n         */\n        readonly documentHighlights?: boolean;\n        /**\n         * Defines whether the built-in rename provider is enabled.\n         */\n        readonly rename?: boolean;\n        /**\n         * Defines whether the built-in color provider is enabled.\n         */\n        readonly colors?: boolean;\n        /**\n         * Defines whether the built-in foldingRange provider is enabled.\n         */\n        readonly foldingRanges?: boolean;\n        /**\n         * Defines whether the built-in diagnostic provider is enabled.\n         */\n        readonly diagnostics?: boolean;\n        /**\n         * Defines whether the built-in selection range provider is enabled.\n         */\n        readonly selectionRanges?: boolean;\n        /**\n         * Defines whether the built-in documentFormattingEdit provider is enabled.\n         */\n        readonly documentFormattingEdits?: boolean;\n        /**\n         * Defines whether the built-in documentRangeFormattingEdit provider is enabled.\n         */\n        readonly documentRangeFormattingEdits?: boolean;\n    }\n    export interface LanguageServiceDefaults {\n        readonly languageId: string;\n        readonly modeConfiguration: ModeConfiguration;\n        readonly onDidChange: IEvent<LanguageServiceDefaults>;\n        readonly options: Options;\n        setOptions(options: Options): void;\n        setModeConfiguration(modeConfiguration: ModeConfiguration): void;\n    }\n    export const htmlLanguageService: LanguageServiceRegistration;\n    export const htmlDefaults: LanguageServiceDefaults;\n    export const handlebarLanguageService: LanguageServiceRegistration;\n    export const handlebarDefaults: LanguageServiceDefaults;\n    export const razorLanguageService: LanguageServiceRegistration;\n    export const razorDefaults: LanguageServiceDefaults;\n    export interface LanguageServiceRegistration extends IDisposable {\n        readonly defaults: LanguageServiceDefaults;\n    }\n    /**\n     * Registers a new HTML language service for the languageId.\n     * Note: 'html', 'handlebar' and 'razor' are registered by default.\n     *\n     * Use this method to register additional language ids with a HTML service.\n     * The language server has to be registered before an editor model is opened.\n     */\n    export function registerHTMLLanguageService(languageId: string, options?: Options, modeConfiguration?: ModeConfiguration): LanguageServiceRegistration;\n    export interface HTMLDataConfiguration {\n        /**\n         * Defines whether the standard HTML tags and attributes are shown\n         */\n        readonly useDefaultDataProvider?: boolean;\n        /**\n         * Provides a set of custom data providers.\n         */\n        readonly dataProviders?: {\n            [providerId: string]: HTMLDataV1;\n        };\n    }\n    /**\n     * Custom HTML tags attributes and attribute values\n     * https://github.com/microsoft/vscode-html-languageservice/blob/main/docs/customData.md\n     */\n    export interface HTMLDataV1 {\n        readonly version: 1 | 1.1;\n        readonly tags?: ITagData[];\n        readonly globalAttributes?: IAttributeData[];\n        readonly valueSets?: IValueSet[];\n    }\n    export interface IReference {\n        readonly name: string;\n        readonly url: string;\n    }\n    export interface ITagData {\n        readonly name: string;\n        readonly description?: string | MarkupContent;\n        readonly attributes: IAttributeData[];\n        readonly references?: IReference[];\n    }\n    export interface IAttributeData {\n        readonly name: string;\n        readonly description?: string | MarkupContent;\n        readonly valueSet?: string;\n        readonly values?: IValueData[];\n        readonly references?: IReference[];\n    }\n    export interface IValueData {\n        readonly name: string;\n        readonly description?: string | MarkupContent;\n        readonly references?: IReference[];\n    }\n    export interface IValueSet {\n        readonly name: string;\n        readonly values: IValueData[];\n    }\n    export interface MarkupContent {\n        readonly kind: MarkupKind;\n        readonly value: string;\n    }\n    export type MarkupKind = 'plaintext' | 'markdown';\n}\n\n/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nexport namespace languages.json {\n    export interface BaseASTNode {\n        readonly type: 'object' | 'array' | 'property' | 'string' | 'number' | 'boolean' | 'null';\n        readonly parent?: ASTNode;\n        readonly offset: number;\n        readonly length: number;\n        readonly children?: ASTNode[];\n        readonly value?: string | boolean | number | null;\n    }\n    export interface ObjectASTNode extends BaseASTNode {\n        readonly type: 'object';\n        readonly properties: PropertyASTNode[];\n        readonly children: ASTNode[];\n    }\n    export interface PropertyASTNode extends BaseASTNode {\n        readonly type: 'property';\n        readonly keyNode: StringASTNode;\n        readonly valueNode?: ASTNode;\n        readonly colonOffset?: number;\n        readonly children: ASTNode[];\n    }\n    export interface ArrayASTNode extends BaseASTNode {\n        readonly type: 'array';\n        readonly items: ASTNode[];\n        readonly children: ASTNode[];\n    }\n    export interface StringASTNode extends BaseASTNode {\n        readonly type: 'string';\n        readonly value: string;\n    }\n    export interface NumberASTNode extends BaseASTNode {\n        readonly type: 'number';\n        readonly value: number;\n        readonly isInteger: boolean;\n    }\n    export interface BooleanASTNode extends BaseASTNode {\n        readonly type: 'boolean';\n        readonly value: boolean;\n    }\n    export interface NullASTNode extends BaseASTNode {\n        readonly type: 'null';\n        readonly value: null;\n    }\n    export type ASTNode = ObjectASTNode | PropertyASTNode | ArrayASTNode | StringASTNode | NumberASTNode | BooleanASTNode | NullASTNode;\n    export type JSONDocument = {\n        root: ASTNode | undefined;\n        getNodeFromOffset(offset: number, includeRightBound?: boolean): ASTNode | undefined;\n    };\n    export type JSONSchemaRef = JSONSchema | boolean;\n    export interface JSONSchemaMap {\n        [name: string]: JSONSchemaRef;\n    }\n    export interface JSONSchema {\n        id?: string;\n        $id?: string;\n        $schema?: string;\n        type?: string | string[];\n        title?: string;\n        default?: any;\n        definitions?: {\n            [name: string]: JSONSchema;\n        };\n        description?: string;\n        properties?: JSONSchemaMap;\n        patternProperties?: JSONSchemaMap;\n        additionalProperties?: boolean | JSONSchemaRef;\n        minProperties?: number;\n        maxProperties?: number;\n        dependencies?: JSONSchemaMap | {\n            [prop: string]: string[];\n        };\n        items?: JSONSchemaRef | JSONSchemaRef[];\n        minItems?: number;\n        maxItems?: number;\n        uniqueItems?: boolean;\n        additionalItems?: boolean | JSONSchemaRef;\n        pattern?: string;\n        minLength?: number;\n        maxLength?: number;\n        minimum?: number;\n        maximum?: number;\n        exclusiveMinimum?: boolean | number;\n        exclusiveMaximum?: boolean | number;\n        multipleOf?: number;\n        required?: string[];\n        $ref?: string;\n        anyOf?: JSONSchemaRef[];\n        allOf?: JSONSchemaRef[];\n        oneOf?: JSONSchemaRef[];\n        not?: JSONSchemaRef;\n        enum?: any[];\n        format?: string;\n        const?: any;\n        contains?: JSONSchemaRef;\n        propertyNames?: JSONSchemaRef;\n        examples?: any[];\n        $comment?: string;\n        if?: JSONSchemaRef;\n        then?: JSONSchemaRef;\n        else?: JSONSchemaRef;\n        defaultSnippets?: {\n            label?: string;\n            description?: string;\n            markdownDescription?: string;\n            body?: any;\n            bodyText?: string;\n        }[];\n        errorMessage?: string;\n        patternErrorMessage?: string;\n        deprecationMessage?: string;\n        enumDescriptions?: string[];\n        markdownEnumDescriptions?: string[];\n        markdownDescription?: string;\n        doNotSuggest?: boolean;\n        suggestSortText?: string;\n        allowComments?: boolean;\n        allowTrailingCommas?: boolean;\n    }\n    export interface MatchingSchema {\n        node: ASTNode;\n        schema: JSONSchema;\n    }\n    export interface DiagnosticsOptions {\n        /**\n         * If set, the validator will be enabled and perform syntax and schema based validation,\n         * unless `DiagnosticsOptions.schemaValidation` is set to `ignore`.\n         */\n        readonly validate?: boolean;\n        /**\n         * If set, comments are tolerated. If set to false, syntax errors will be emitted for comments.\n         * `DiagnosticsOptions.allowComments` will override this setting.\n         */\n        readonly allowComments?: boolean;\n        /**\n         * A list of known schemas and/or associations of schemas to file names.\n         */\n        readonly schemas?: {\n            /**\n             * The URI of the schema, which is also the identifier of the schema.\n             */\n            readonly uri: string;\n            /**\n             * A list of glob patterns that describe for which file URIs the JSON schema will be used.\n             * '*' and '**' wildcards are supported. Exclusion patterns start with '!'.\n             * For example '*.schema.json', 'package.json', '!foo*.schema.json', 'foo/**\\/BADRESP.json'.\n             * A match succeeds when there is at least one pattern matching and last matching pattern does not start with '!'.\n             */\n            readonly fileMatch?: string[];\n            /**\n             * The schema for the given URI.\n             */\n            readonly schema?: any;\n        }[];\n        /**\n         *  If set, the schema service would load schema content on-demand with 'fetch' if available\n         */\n        readonly enableSchemaRequest?: boolean;\n        /**\n         * The severity of problems from schema validation. If set to 'ignore', schema validation will be skipped. If not set, 'warning' is used.\n         */\n        readonly schemaValidation?: SeverityLevel;\n        /**\n         * The severity of problems that occurred when resolving and loading schemas. If set to 'ignore', schema resolving problems are not reported. If not set, 'warning' is used.\n         */\n        readonly schemaRequest?: SeverityLevel;\n        /**\n         * The severity of reported trailing commas. If not set, trailing commas will be reported as errors.\n         */\n        readonly trailingCommas?: SeverityLevel;\n        /**\n         * The severity of reported comments. If not set, 'DiagnosticsOptions.allowComments' defines whether comments are ignored or reported as errors.\n         */\n        readonly comments?: SeverityLevel;\n    }\n    export type SeverityLevel = 'error' | 'warning' | 'ignore';\n    export interface ModeConfiguration {\n        /**\n         * Defines whether the built-in documentFormattingEdit provider is enabled.\n         */\n        readonly documentFormattingEdits?: boolean;\n        /**\n         * Defines whether the built-in documentRangeFormattingEdit provider is enabled.\n         */\n        readonly documentRangeFormattingEdits?: boolean;\n        /**\n         * Defines whether the built-in completionItemProvider is enabled.\n         */\n        readonly completionItems?: boolean;\n        /**\n         * Defines whether the built-in hoverProvider is enabled.\n         */\n        readonly hovers?: boolean;\n        /**\n         * Defines whether the built-in documentSymbolProvider is enabled.\n         */\n        readonly documentSymbols?: boolean;\n        /**\n         * Defines whether the built-in tokens provider is enabled.\n         */\n        readonly tokens?: boolean;\n        /**\n         * Defines whether the built-in color provider is enabled.\n         */\n        readonly colors?: boolean;\n        /**\n         * Defines whether the built-in foldingRange provider is enabled.\n         */\n        readonly foldingRanges?: boolean;\n        /**\n         * Defines whether the built-in diagnostic provider is enabled.\n         */\n        readonly diagnostics?: boolean;\n        /**\n         * Defines whether the built-in selection range provider is enabled.\n         */\n        readonly selectionRanges?: boolean;\n    }\n    export interface LanguageServiceDefaults {\n        readonly languageId: string;\n        readonly onDidChange: IEvent<LanguageServiceDefaults>;\n        readonly diagnosticsOptions: DiagnosticsOptions;\n        readonly modeConfiguration: ModeConfiguration;\n        setDiagnosticsOptions(options: DiagnosticsOptions): void;\n        setModeConfiguration(modeConfiguration: ModeConfiguration): void;\n    }\n    export const jsonDefaults: LanguageServiceDefaults;\n    export interface IJSONWorker {\n        parseJSONDocument(uri: string): Promise<JSONDocument | null>;\n        getMatchingSchemas(uri: string): Promise<MatchingSchema[]>;\n    }\n    export const getWorker: () => Promise<(...uris: Uri[]) => Promise<IJSONWorker>>;\n}\n\n/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nexport namespace languages.typescript {\n    export enum ModuleKind {\n        None = 0,\n        CommonJS = 1,\n        AMD = 2,\n        UMD = 3,\n        System = 4,\n        ES2015 = 5,\n        ESNext = 99\n    }\n    export enum JsxEmit {\n        None = 0,\n        Preserve = 1,\n        React = 2,\n        ReactNative = 3,\n        ReactJSX = 4,\n        ReactJSXDev = 5\n    }\n    export enum NewLineKind {\n        CarriageReturnLineFeed = 0,\n        LineFeed = 1\n    }\n    export enum ScriptTarget {\n        ES3 = 0,\n        ES5 = 1,\n        ES2015 = 2,\n        ES2016 = 3,\n        ES2017 = 4,\n        ES2018 = 5,\n        ES2019 = 6,\n        ES2020 = 7,\n        ESNext = 99,\n        JSON = 100,\n        Latest = 99\n    }\n    export enum ModuleResolutionKind {\n        Classic = 1,\n        NodeJs = 2\n    }\n    interface MapLike<T> {\n        [index: string]: T;\n    }\n    type CompilerOptionsValue = string | number | boolean | (string | number)[] | string[] | MapLike<string[]> | null | undefined;\n    interface CompilerOptions {\n        allowJs?: boolean;\n        allowSyntheticDefaultImports?: boolean;\n        allowUmdGlobalAccess?: boolean;\n        allowUnreachableCode?: boolean;\n        allowUnusedLabels?: boolean;\n        alwaysStrict?: boolean;\n        baseUrl?: string;\n        charset?: string;\n        checkJs?: boolean;\n        declaration?: boolean;\n        declarationMap?: boolean;\n        emitDeclarationOnly?: boolean;\n        declarationDir?: string;\n        disableSizeLimit?: boolean;\n        disableSourceOfProjectReferenceRedirect?: boolean;\n        downlevelIteration?: boolean;\n        emitBOM?: boolean;\n        emitDecoratorMetadata?: boolean;\n        experimentalDecorators?: boolean;\n        forceConsistentCasingInFileNames?: boolean;\n        importHelpers?: boolean;\n        inlineSourceMap?: boolean;\n        inlineSources?: boolean;\n        isolatedModules?: boolean;\n        jsx?: JsxEmit;\n        keyofStringsOnly?: boolean;\n        lib?: string[];\n        locale?: string;\n        mapRoot?: string;\n        maxNodeModuleJsDepth?: number;\n        module?: ModuleKind;\n        moduleResolution?: ModuleResolutionKind;\n        newLine?: NewLineKind;\n        noEmit?: boolean;\n        noEmitHelpers?: boolean;\n        noEmitOnError?: boolean;\n        noErrorTruncation?: boolean;\n        noFallthroughCasesInSwitch?: boolean;\n        noImplicitAny?: boolean;\n        noImplicitReturns?: boolean;\n        noImplicitThis?: boolean;\n        noStrictGenericChecks?: boolean;\n        noUnusedLocals?: boolean;\n        noUnusedParameters?: boolean;\n        noImplicitUseStrict?: boolean;\n        noLib?: boolean;\n        noResolve?: boolean;\n        out?: string;\n        outDir?: string;\n        outFile?: string;\n        paths?: MapLike<string[]>;\n        preserveConstEnums?: boolean;\n        preserveSymlinks?: boolean;\n        project?: string;\n        reactNamespace?: string;\n        jsxFactory?: string;\n        composite?: boolean;\n        removeComments?: boolean;\n        rootDir?: string;\n        rootDirs?: string[];\n        skipLibCheck?: boolean;\n        skipDefaultLibCheck?: boolean;\n        sourceMap?: boolean;\n        sourceRoot?: string;\n        strict?: boolean;\n        strictFunctionTypes?: boolean;\n        strictBindCallApply?: boolean;\n        strictNullChecks?: boolean;\n        strictPropertyInitialization?: boolean;\n        stripInternal?: boolean;\n        suppressExcessPropertyErrors?: boolean;\n        suppressImplicitAnyIndexErrors?: boolean;\n        target?: ScriptTarget;\n        traceResolution?: boolean;\n        resolveJsonModule?: boolean;\n        types?: string[];\n        /** Paths used to compute primary types search locations */\n        typeRoots?: string[];\n        esModuleInterop?: boolean;\n        useDefineForClassFields?: boolean;\n        [option: string]: CompilerOptionsValue | undefined;\n    }\n    export interface DiagnosticsOptions {\n        noSemanticValidation?: boolean;\n        noSyntaxValidation?: boolean;\n        noSuggestionDiagnostics?: boolean;\n        /**\n         * Limit diagnostic computation to only visible files.\n         * Defaults to false.\n         */\n        onlyVisible?: boolean;\n        diagnosticCodesToIgnore?: number[];\n    }\n    export interface WorkerOptions {\n        /** A full HTTP path to a JavaScript file which adds a function `customTSWorkerFactory` to the self inside a web-worker */\n        customWorkerPath?: string;\n    }\n    interface InlayHintsOptions {\n        readonly includeInlayParameterNameHints?: 'none' | 'literals' | 'all';\n        readonly includeInlayParameterNameHintsWhenArgumentMatchesName?: boolean;\n        readonly includeInlayFunctionParameterTypeHints?: boolean;\n        readonly includeInlayVariableTypeHints?: boolean;\n        readonly includeInlayPropertyDeclarationTypeHints?: boolean;\n        readonly includeInlayFunctionLikeReturnTypeHints?: boolean;\n        readonly includeInlayEnumMemberValueHints?: boolean;\n    }\n    interface IExtraLib {\n        content: string;\n        version: number;\n    }\n    export interface IExtraLibs {\n        [path: string]: IExtraLib;\n    }\n    /**\n     * A linked list of formatted diagnostic messages to be used as part of a multiline message.\n     * It is built from the bottom up, leaving the head to be the \"main\" diagnostic.\n     */\n    interface DiagnosticMessageChain {\n        messageText: string;\n        /** Diagnostic category: warning = 0, error = 1, suggestion = 2, message = 3 */\n        category: 0 | 1 | 2 | 3;\n        code: number;\n        next?: DiagnosticMessageChain[];\n    }\n    export interface Diagnostic extends DiagnosticRelatedInformation {\n        /** May store more in future. For now, this will simply be `true` to indicate when a diagnostic is an unused-identifier diagnostic. */\n        reportsUnnecessary?: {};\n        reportsDeprecated?: {};\n        source?: string;\n        relatedInformation?: DiagnosticRelatedInformation[];\n    }\n    export interface DiagnosticRelatedInformation {\n        /** Diagnostic category: warning = 0, error = 1, suggestion = 2, message = 3 */\n        category: 0 | 1 | 2 | 3;\n        code: number;\n        /** TypeScriptWorker removes all but the `fileName` property to avoid serializing circular JSON structures. */\n        file: {\n            fileName: string;\n        } | undefined;\n        start: number | undefined;\n        length: number | undefined;\n        messageText: string | DiagnosticMessageChain;\n    }\n    export interface EmitOutput {\n        outputFiles: OutputFile[];\n        emitSkipped: boolean;\n        diagnostics?: Diagnostic[];\n    }\n    interface OutputFile {\n        name: string;\n        writeByteOrderMark: boolean;\n        text: string;\n    }\n    export interface ModeConfiguration {\n        /**\n         * Defines whether the built-in completionItemProvider is enabled.\n         */\n        readonly completionItems?: boolean;\n        /**\n         * Defines whether the built-in hoverProvider is enabled.\n         */\n        readonly hovers?: boolean;\n        /**\n         * Defines whether the built-in documentSymbolProvider is enabled.\n         */\n        readonly documentSymbols?: boolean;\n        /**\n         * Defines whether the built-in definitions provider is enabled.\n         */\n        readonly definitions?: boolean;\n        /**\n         * Defines whether the built-in references provider is enabled.\n         */\n        readonly references?: boolean;\n        /**\n         * Defines whether the built-in references provider is enabled.\n         */\n        readonly documentHighlights?: boolean;\n        /**\n         * Defines whether the built-in rename provider is enabled.\n         */\n        readonly rename?: boolean;\n        /**\n         * Defines whether the built-in diagnostic provider is enabled.\n         */\n        readonly diagnostics?: boolean;\n        /**\n         * Defines whether the built-in document formatting range edit provider is enabled.\n         */\n        readonly documentRangeFormattingEdits?: boolean;\n        /**\n         * Defines whether the built-in signature help provider is enabled.\n         */\n        readonly signatureHelp?: boolean;\n        /**\n         * Defines whether the built-in onType formatting edit provider is enabled.\n         */\n        readonly onTypeFormattingEdits?: boolean;\n        /**\n         * Defines whether the built-in code actions provider is enabled.\n         */\n        readonly codeActions?: boolean;\n        /**\n         * Defines whether the built-in inlay hints provider is enabled.\n         */\n        readonly inlayHints?: boolean;\n    }\n    export interface LanguageServiceDefaults {\n        /**\n         * Event fired when compiler options or diagnostics options are changed.\n         */\n        readonly onDidChange: IEvent<void>;\n        /**\n         * Event fired when extra libraries registered with the language service change.\n         */\n        readonly onDidExtraLibsChange: IEvent<void>;\n        readonly workerOptions: WorkerOptions;\n        readonly inlayHintsOptions: InlayHintsOptions;\n        readonly modeConfiguration: ModeConfiguration;\n        setModeConfiguration(modeConfiguration: ModeConfiguration): void;\n        /**\n         * Get the current extra libs registered with the language service.\n         */\n        getExtraLibs(): IExtraLibs;\n        /**\n         * Add an additional source file to the language service. Use this\n         * for typescript (definition) files that won't be loaded as editor\n         * documents, like `jquery.d.ts`.\n         *\n         * @param content The file content\n         * @param filePath An optional file path\n         * @returns A disposable which will remove the file from the\n         * language service upon disposal.\n         */\n        addExtraLib(content: string, filePath?: string): IDisposable;\n        /**\n         * Remove all existing extra libs and set the additional source\n         * files to the language service. Use this for typescript definition\n         * files that won't be loaded as editor documents, like `jquery.d.ts`.\n         * @param libs An array of entries to register.\n         */\n        setExtraLibs(libs: {\n            content: string;\n            filePath?: string;\n        }[]): void;\n        /**\n         * Get current TypeScript compiler options for the language service.\n         */\n        getCompilerOptions(): CompilerOptions;\n        /**\n         * Set TypeScript compiler options.\n         */\n        setCompilerOptions(options: CompilerOptions): void;\n        /**\n         * Get the current diagnostics options for the language service.\n         */\n        getDiagnosticsOptions(): DiagnosticsOptions;\n        /**\n         * Configure whether syntactic and/or semantic validation should\n         * be performed\n         */\n        setDiagnosticsOptions(options: DiagnosticsOptions): void;\n        /**\n         * Configure webworker options\n         */\n        setWorkerOptions(options: WorkerOptions): void;\n        /**\n         * No-op.\n         */\n        setMaximumWorkerIdleTime(value: number): void;\n        /**\n         * Configure if all existing models should be eagerly sync'd\n         * to the worker on start or restart.\n         */\n        setEagerModelSync(value: boolean): void;\n        /**\n         * Get the current setting for whether all existing models should be eagerly sync'd\n         * to the worker on start or restart.\n         */\n        getEagerModelSync(): boolean;\n        /**\n         * Configure inlay hints options.\n         */\n        setInlayHintsOptions(options: InlayHintsOptions): void;\n    }\n    export interface TypeScriptWorker {\n        /**\n         * Get diagnostic messages for any syntax issues in the given file.\n         */\n        getSyntacticDiagnostics(fileName: string): Promise<Diagnostic[]>;\n        /**\n         * Get diagnostic messages for any semantic issues in the given file.\n         */\n        getSemanticDiagnostics(fileName: string): Promise<Diagnostic[]>;\n        /**\n         * Get diagnostic messages for any suggestions related to the given file.\n         */\n        getSuggestionDiagnostics(fileName: string): Promise<Diagnostic[]>;\n        /**\n         * Get the content of a given file.\n         */\n        getScriptText(fileName: string): Promise<string | undefined>;\n        /**\n         * Get diagnostic messages related to the current compiler options.\n         * @param fileName Not used\n         */\n        getCompilerOptionsDiagnostics(fileName: string): Promise<Diagnostic[]>;\n        /**\n         * Get code completions for the given file and position.\n         * @returns `Promise<typescript.CompletionInfo | undefined>`\n         */\n        getCompletionsAtPosition(fileName: string, position: number): Promise<any | undefined>;\n        /**\n         * Get code completion details for the given file, position, and entry.\n         * @returns `Promise<typescript.CompletionEntryDetails | undefined>`\n         */\n        getCompletionEntryDetails(fileName: string, position: number, entry: string): Promise<any | undefined>;\n        /**\n         * Get signature help items for the item at the given file and position.\n         * @returns `Promise<typescript.SignatureHelpItems | undefined>`\n         */\n        getSignatureHelpItems(fileName: string, position: number, options: any): Promise<any | undefined>;\n        /**\n         * Get quick info for the item at the given position in the file.\n         * @returns `Promise<typescript.QuickInfo | undefined>`\n         */\n        getQuickInfoAtPosition(fileName: string, position: number): Promise<any | undefined>;\n        getDocumentHighlights(fileName: string, position: number, filesToSearch: string[]): Promise<ReadonlyArray<any> | undefined>;\n        /**\n         * Get the definition of the item at the given position in the file.\n         * @returns `Promise<ReadonlyArray<typescript.DefinitionInfo> | undefined>`\n         */\n        getDefinitionAtPosition(fileName: string, position: number): Promise<ReadonlyArray<any> | undefined>;\n        /**\n         * Get references to the item at the given position in the file.\n         * @returns `Promise<typescript.ReferenceEntry[] | undefined>`\n         */\n        getReferencesAtPosition(fileName: string, position: number): Promise<any[] | undefined>;\n        /**\n         * Get outline entries for the item at the given position in the file.\n         * @returns `Promise<typescript.NavigationTree | undefined>`\n         */\n        getNavigationTree(fileName: string): Promise<any | undefined>;\n        /**\n         * Get changes which should be applied to format the given file.\n         * @param options `typescript.FormatCodeOptions`\n         * @returns `Promise<typescript.TextChange[]>`\n         */\n        getFormattingEditsForDocument(fileName: string, options: any): Promise<any[]>;\n        /**\n         * Get changes which should be applied to format the given range in the file.\n         * @param options `typescript.FormatCodeOptions`\n         * @returns `Promise<typescript.TextChange[]>`\n         */\n        getFormattingEditsForRange(fileName: string, start: number, end: number, options: any): Promise<any[]>;\n        /**\n         * Get formatting changes which should be applied after the given keystroke.\n         * @param options `typescript.FormatCodeOptions`\n         * @returns `Promise<typescript.TextChange[]>`\n         */\n        getFormattingEditsAfterKeystroke(fileName: string, postion: number, ch: string, options: any): Promise<any[]>;\n        /**\n         * Get other occurrences which should be updated when renaming the item at the given file and position.\n         * @returns `Promise<readonly typescript.RenameLocation[] | undefined>`\n         */\n        findRenameLocations(fileName: string, positon: number, findInStrings: boolean, findInComments: boolean, providePrefixAndSuffixTextForRename: boolean): Promise<readonly any[] | undefined>;\n        /**\n         * Get edits which should be applied to rename the item at the given file and position (or a failure reason).\n         * @param options `typescript.RenameInfoOptions`\n         * @returns `Promise<typescript.RenameInfo>`\n         */\n        getRenameInfo(fileName: string, positon: number, options: any): Promise<any>;\n        /**\n         * Get transpiled output for the given file.\n         * @returns `typescript.EmitOutput`\n         */\n        getEmitOutput(fileName: string, emitOnlyDtsFiles?: boolean, forceDtsEmit?: boolean): Promise<EmitOutput>;\n        /**\n         * Get possible code fixes at the given position in the file.\n         * @param formatOptions `typescript.FormatCodeOptions`\n         * @returns `Promise<ReadonlyArray<typescript.CodeFixAction>>`\n         */\n        getCodeFixesAtPosition(fileName: string, start: number, end: number, errorCodes: number[], formatOptions: any): Promise<ReadonlyArray<any>>;\n        /**\n         * Get inlay hints in the range of the file.\n         * @param fileName\n         * @returns `Promise<typescript.InlayHint[]>`\n         */\n        provideInlayHints(fileName: string, start: number, end: number): Promise<ReadonlyArray<any>>;\n    }\n    export const typescriptVersion: string;\n    export const typescriptDefaults: LanguageServiceDefaults;\n    export const javascriptDefaults: LanguageServiceDefaults;\n    export const getTypeScriptWorker: () => Promise<(...uris: Uri[]) => Promise<TypeScriptWorker>>;\n    export const getJavaScriptWorker: () => Promise<(...uris: Uri[]) => Promise<TypeScriptWorker>>;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/editor.api.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { EditorOptions } from './common/config/editorOptions.js';\nimport { createMonacoBaseAPI } from './common/services/editorBaseApi.js';\nimport { createMonacoEditorAPI } from './standalone/browser/standaloneEditor.js';\nimport { createMonacoLanguagesAPI } from './standalone/browser/standaloneLanguages.js';\nimport { FormattingConflicts } from './contrib/format/browser/format.js';\n// Set defaults for standalone editor\nEditorOptions.wrappingIndent.defaultValue = 0 /* WrappingIndent.None */;\nEditorOptions.glyphMargin.defaultValue = false;\nEditorOptions.autoIndent.defaultValue = 3 /* EditorAutoIndentStrategy.Advanced */;\nEditorOptions.overviewRulerLanes.defaultValue = 2;\n// We need to register a formatter selector which simply picks the first available formatter.\n// See https://github.com/microsoft/monaco-editor/issues/2327\nFormattingConflicts.setFormatterSelector((formatter, document, mode) => Promise.resolve(formatter[0]));\nconst api = createMonacoBaseAPI();\napi.editor = createMonacoEditorAPI();\napi.languages = createMonacoLanguagesAPI();\nexport const CancellationTokenSource = api.CancellationTokenSource;\nexport const Emitter = api.Emitter;\nexport const KeyCode = api.KeyCode;\nexport const KeyMod = api.KeyMod;\nexport const Position = api.Position;\nexport const Range = api.Range;\nexport const Selection = api.Selection;\nexport const SelectionDirection = api.SelectionDirection;\nexport const MarkerSeverity = api.MarkerSeverity;\nexport const MarkerTag = api.MarkerTag;\nexport const Uri = api.Uri;\nexport const Token = api.Token;\nexport const editor = api.editor;\nexport const languages = api.languages;\nconst monacoEnvironment = globalThis.MonacoEnvironment;\nif ((monacoEnvironment === null || monacoEnvironment === void 0 ? void 0 : monacoEnvironment.globalAPI) || (typeof define === 'function' && define.amd)) {\n    globalThis.monaco = api;\n}\nif (typeof globalThis.require !== 'undefined' && typeof globalThis.require.config === 'function') {\n    globalThis.require.config({\n        ignoreDuplicateModules: [\n            'vscode-languageserver-types',\n            'vscode-languageserver-types/main',\n            'vscode-languageserver-textdocument',\n            'vscode-languageserver-textdocument/main',\n            'vscode-nls',\n            'vscode-nls/vscode-nls',\n            'jsonc-parser',\n            'jsonc-parser/main',\n            'vscode-uri',\n            'vscode-uri/index',\n            'vs/basic-languages/typescript/typescript'\n        ]\n    });\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/editor.main.js",
    "content": "import '../basic-languages/monaco.contribution';\nimport '../language/css/monaco.contribution';\nimport '../language/html/monaco.contribution';\nimport '../language/json/monaco.contribution';\nimport '../language/typescript/monaco.contribution';\n\nexport * from './edcore.main';"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/editor.worker.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { SimpleWorkerServer } from '../base/common/worker/simpleWorker.js';\nimport { EditorSimpleWorker } from './common/services/editorSimpleWorker.js';\nlet initialized = false;\nexport function initialize(foreignModule) {\n    if (initialized) {\n        return;\n    }\n    initialized = true;\n    const simpleWorker = new SimpleWorkerServer((msg) => {\n        globalThis.postMessage(msg);\n    }, (host) => new EditorSimpleWorker(host, foreignModule));\n    globalThis.onmessage = (e) => {\n        simpleWorker.onmessage(e.data);\n    };\n}\nglobalThis.onmessage = (e) => {\n    // Ignore first message in this case and initialize if not yet initialized\n    if (!initialized) {\n        initialize(null);\n    }\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/browser/colorizer.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createTrustedTypesPolicy } from '../../../base/browser/trustedTypes.js';\nimport * as strings from '../../../base/common/strings.js';\nimport { TokenizationRegistry } from '../../common/languages.js';\nimport { LineTokens } from '../../common/tokens/lineTokens.js';\nimport { RenderLineInput, renderViewLine2 as renderViewLine } from '../../common/viewLayout/viewLineRenderer.js';\nimport { ViewLineRenderingData } from '../../common/viewModel.js';\nimport { MonarchTokenizer } from '../common/monarch/monarchLexer.js';\nconst ttPolicy = createTrustedTypesPolicy('standaloneColorizer', { createHTML: value => value });\nexport class Colorizer {\n    static colorizeElement(themeService, languageService, domNode, options) {\n        options = options || {};\n        const theme = options.theme || 'vs';\n        const mimeType = options.mimeType || domNode.getAttribute('lang') || domNode.getAttribute('data-lang');\n        if (!mimeType) {\n            console.error('Mode not detected');\n            return Promise.resolve();\n        }\n        const languageId = languageService.getLanguageIdByMimeType(mimeType) || mimeType;\n        themeService.setTheme(theme);\n        const text = domNode.firstChild ? domNode.firstChild.nodeValue : '';\n        domNode.className += ' ' + theme;\n        const render = (str) => {\n            var _a;\n            const trustedhtml = (_a = ttPolicy === null || ttPolicy === void 0 ? void 0 : ttPolicy.createHTML(str)) !== null && _a !== void 0 ? _a : str;\n            domNode.innerHTML = trustedhtml;\n        };\n        return this.colorize(languageService, text || '', languageId, options).then(render, (err) => console.error(err));\n    }\n    static async colorize(languageService, text, languageId, options) {\n        const languageIdCodec = languageService.languageIdCodec;\n        let tabSize = 4;\n        if (options && typeof options.tabSize === 'number') {\n            tabSize = options.tabSize;\n        }\n        if (strings.startsWithUTF8BOM(text)) {\n            text = text.substr(1);\n        }\n        const lines = strings.splitLines(text);\n        if (!languageService.isRegisteredLanguageId(languageId)) {\n            return _fakeColorize(lines, tabSize, languageIdCodec);\n        }\n        const tokenizationSupport = await TokenizationRegistry.getOrCreate(languageId);\n        if (tokenizationSupport) {\n            return _colorize(lines, tabSize, tokenizationSupport, languageIdCodec);\n        }\n        return _fakeColorize(lines, tabSize, languageIdCodec);\n    }\n    static colorizeLine(line, mightContainNonBasicASCII, mightContainRTL, tokens, tabSize = 4) {\n        const isBasicASCII = ViewLineRenderingData.isBasicASCII(line, mightContainNonBasicASCII);\n        const containsRTL = ViewLineRenderingData.containsRTL(line, isBasicASCII, mightContainRTL);\n        const renderResult = renderViewLine(new RenderLineInput(false, true, line, false, isBasicASCII, containsRTL, 0, tokens, [], tabSize, 0, 0, 0, 0, -1, 'none', false, false, null));\n        return renderResult.html;\n    }\n    static colorizeModelLine(model, lineNumber, tabSize = 4) {\n        const content = model.getLineContent(lineNumber);\n        model.tokenization.forceTokenization(lineNumber);\n        const tokens = model.tokenization.getLineTokens(lineNumber);\n        const inflatedTokens = tokens.inflate();\n        return this.colorizeLine(content, model.mightContainNonBasicASCII(), model.mightContainRTL(), inflatedTokens, tabSize);\n    }\n}\nfunction _colorize(lines, tabSize, tokenizationSupport, languageIdCodec) {\n    return new Promise((c, e) => {\n        const execute = () => {\n            const result = _actualColorize(lines, tabSize, tokenizationSupport, languageIdCodec);\n            if (tokenizationSupport instanceof MonarchTokenizer) {\n                const status = tokenizationSupport.getLoadStatus();\n                if (status.loaded === false) {\n                    status.promise.then(execute, e);\n                    return;\n                }\n            }\n            c(result);\n        };\n        execute();\n    });\n}\nfunction _fakeColorize(lines, tabSize, languageIdCodec) {\n    let html = [];\n    const defaultMetadata = ((0 /* FontStyle.None */ << 11 /* MetadataConsts.FONT_STYLE_OFFSET */)\n        | (1 /* ColorId.DefaultForeground */ << 15 /* MetadataConsts.FOREGROUND_OFFSET */)\n        | (2 /* ColorId.DefaultBackground */ << 24 /* MetadataConsts.BACKGROUND_OFFSET */)) >>> 0;\n    const tokens = new Uint32Array(2);\n    tokens[0] = 0;\n    tokens[1] = defaultMetadata;\n    for (let i = 0, length = lines.length; i < length; i++) {\n        const line = lines[i];\n        tokens[0] = line.length;\n        const lineTokens = new LineTokens(tokens, line, languageIdCodec);\n        const isBasicASCII = ViewLineRenderingData.isBasicASCII(line, /* check for basic ASCII */ true);\n        const containsRTL = ViewLineRenderingData.containsRTL(line, isBasicASCII, /* check for RTL */ true);\n        const renderResult = renderViewLine(new RenderLineInput(false, true, line, false, isBasicASCII, containsRTL, 0, lineTokens, [], tabSize, 0, 0, 0, 0, -1, 'none', false, false, null));\n        html = html.concat(renderResult.html);\n        html.push('<br/>');\n    }\n    return html.join('');\n}\nfunction _actualColorize(lines, tabSize, tokenizationSupport, languageIdCodec) {\n    let html = [];\n    let state = tokenizationSupport.getInitialState();\n    for (let i = 0, length = lines.length; i < length; i++) {\n        const line = lines[i];\n        const tokenizeResult = tokenizationSupport.tokenizeEncoded(line, true, state);\n        LineTokens.convertToEndOffset(tokenizeResult.tokens, line.length);\n        const lineTokens = new LineTokens(tokenizeResult.tokens, line, languageIdCodec);\n        const isBasicASCII = ViewLineRenderingData.isBasicASCII(line, /* check for basic ASCII */ true);\n        const containsRTL = ViewLineRenderingData.containsRTL(line, isBasicASCII, /* check for RTL */ true);\n        const renderResult = renderViewLine(new RenderLineInput(false, true, line, false, isBasicASCII, containsRTL, 0, lineTokens.inflate(), [], tabSize, 0, 0, 0, 0, -1, 'none', false, false, null));\n        html = html.concat(renderResult.html);\n        html.push('<br/>');\n        state = tokenizeResult.endState;\n    }\n    return html.join('');\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .iPadShowKeyboard {\n\twidth: 58px;\n\tmin-width: 0;\n\theight: 36px;\n\tmin-height: 0;\n\tmargin: 0;\n\tpadding: 0;\n\tposition: absolute;\n\tresize: none;\n\toverflow: hidden;\n\tbackground: url(\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCA1MyAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDguMDM2NCA0LjAxMDQySDQuMDA3NzlMNC4wMDc3OSAzMi4wMjg2SDQ4LjAzNjRWNC4wMTA0MlpNNC4wMDc3OSAwLjAwNzgxMjVDMS43OTcyMSAwLjAwNzgxMjUgMC4wMDUxODc5OSAxLjc5OTg0IDAuMDA1MTg3OTkgNC4wMTA0MlYzMi4wMjg2QzAuMDA1MTg3OTkgMzQuMjM5MiAxLjc5NzIxIDM2LjAzMTIgNC4wMDc3OSAzNi4wMzEySDQ4LjAzNjRDNTAuMjQ3IDM2LjAzMTIgNTIuMDM5IDM0LjIzOTIgNTIuMDM5IDMyLjAyODZWNC4wMTA0MkM1Mi4wMzkgMS43OTk4NCA1MC4yNDcgMC4wMDc4MTI1IDQ4LjAzNjQgMC4wMDc4MTI1SDQuMDA3NzlaTTguMDEwNDIgOC4wMTMwMkgxMi4wMTNWMTIuMDE1Nkg4LjAxMDQyVjguMDEzMDJaTTIwLjAxODIgOC4wMTMwMkgxNi4wMTU2VjEyLjAxNTZIMjAuMDE4MlY4LjAxMzAyWk0yNC4wMjA4IDguMDEzMDJIMjguMDIzNFYxMi4wMTU2SDI0LjAyMDhWOC4wMTMwMlpNMzYuMDI4NiA4LjAxMzAySDMyLjAyNlYxMi4wMTU2SDM2LjAyODZWOC4wMTMwMlpNNDAuMDMxMiA4LjAxMzAySDQ0LjAzMzlWMTIuMDE1Nkg0MC4wMzEyVjguMDEzMDJaTTE2LjAxNTYgMTYuMDE4Mkg4LjAxMDQyVjIwLjAyMDhIMTYuMDE1NlYxNi4wMTgyWk0yMC4wMTgyIDE2LjAxODJIMjQuMDIwOFYyMC4wMjA4SDIwLjAxODJWMTYuMDE4MlpNMzIuMDI2IDE2LjAxODJIMjguMDIzNFYyMC4wMjA4SDMyLjAyNlYxNi4wMTgyWk00NC4wMzM5IDE2LjAxODJWMjAuMDIwOEgzNi4wMjg2VjE2LjAxODJINDQuMDMzOVpNMTIuMDEzIDI0LjAyMzRIOC4wMTA0MlYyOC4wMjZIMTIuMDEzVjI0LjAyMzRaTTE2LjAxNTYgMjQuMDIzNEgzNi4wMjg2VjI4LjAyNkgxNi4wMTU2VjI0LjAyMzRaTTQ0LjAzMzkgMjQuMDIzNEg0MC4wMzEyVjI4LjAyNkg0NC4wMzM5VjI0LjAyMzRaIiBmaWxsPSIjNDI0MjQyIi8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDAiPgo8cmVjdCB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==\") center center no-repeat;\n\tborder: 4px solid #F6F6F6;\n\tborder-radius: 4px;\n}\n\n.monaco-editor.vs-dark .iPadShowKeyboard {\n\tbackground: url(\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCA1MyAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDguMDM2NCA0LjAxMDQySDQuMDA3NzlMNC4wMDc3OSAzMi4wMjg2SDQ4LjAzNjRWNC4wMTA0MlpNNC4wMDc3OSAwLjAwNzgxMjVDMS43OTcyMSAwLjAwNzgxMjUgMC4wMDUxODc5OSAxLjc5OTg0IDAuMDA1MTg3OTkgNC4wMTA0MlYzMi4wMjg2QzAuMDA1MTg3OTkgMzQuMjM5MiAxLjc5NzIxIDM2LjAzMTIgNC4wMDc3OSAzNi4wMzEySDQ4LjAzNjRDNTAuMjQ3IDM2LjAzMTIgNTIuMDM5IDM0LjIzOTIgNTIuMDM5IDMyLjAyODZWNC4wMTA0MkM1Mi4wMzkgMS43OTk4NCA1MC4yNDcgMC4wMDc4MTI1IDQ4LjAzNjQgMC4wMDc4MTI1SDQuMDA3NzlaTTguMDEwNDIgOC4wMTMwMkgxMi4wMTNWMTIuMDE1Nkg4LjAxMDQyVjguMDEzMDJaTTIwLjAxODIgOC4wMTMwMkgxNi4wMTU2VjEyLjAxNTZIMjAuMDE4MlY4LjAxMzAyWk0yNC4wMjA4IDguMDEzMDJIMjguMDIzNFYxMi4wMTU2SDI0LjAyMDhWOC4wMTMwMlpNMzYuMDI4NiA4LjAxMzAySDMyLjAyNlYxMi4wMTU2SDM2LjAyODZWOC4wMTMwMlpNNDAuMDMxMiA4LjAxMzAySDQ0LjAzMzlWMTIuMDE1Nkg0MC4wMzEyVjguMDEzMDJaTTE2LjAxNTYgMTYuMDE4Mkg4LjAxMDQyVjIwLjAyMDhIMTYuMDE1NlYxNi4wMTgyWk0yMC4wMTgyIDE2LjAxODJIMjQuMDIwOFYyMC4wMjA4SDIwLjAxODJWMTYuMDE4MlpNMzIuMDI2IDE2LjAxODJIMjguMDIzNFYyMC4wMjA4SDMyLjAyNlYxNi4wMTgyWk00NC4wMzM5IDE2LjAxODJWMjAuMDIwOEgzNi4wMjg2VjE2LjAxODJINDQuMDMzOVpNMTIuMDEzIDI0LjAyMzRIOC4wMTA0MlYyOC4wMjZIMTIuMDEzVjI0LjAyMzRaTTE2LjAxNTYgMjQuMDIzNEgzNi4wMjg2VjI4LjAyNkgxNi4wMTU2VjI0LjAyMzRaTTQ0LjAzMzkgMjQuMDIzNEg0MC4wMzEyVjI4LjAyNkg0NC4wMzM5VjI0LjAyMzRaIiBmaWxsPSIjQzVDNUM1Ii8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDAiPgo8cmVjdCB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==\") center center no-repeat;\n\tborder: 4px solid #252526;\n}"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './iPadShowKeyboard.css';\nimport * as dom from '../../../../base/browser/dom.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { isIOS } from '../../../../base/common/platform.js';\nexport class IPadShowKeyboard extends Disposable {\n    constructor(editor) {\n        super();\n        this.editor = editor;\n        this.widget = null;\n        if (isIOS) {\n            this._register(editor.onDidChangeConfiguration(() => this.update()));\n            this.update();\n        }\n    }\n    update() {\n        const shouldHaveWidget = (!this.editor.getOption(91 /* EditorOption.readOnly */));\n        if (!this.widget && shouldHaveWidget) {\n            this.widget = new ShowKeyboardWidget(this.editor);\n        }\n        else if (this.widget && !shouldHaveWidget) {\n            this.widget.dispose();\n            this.widget = null;\n        }\n    }\n    dispose() {\n        super.dispose();\n        if (this.widget) {\n            this.widget.dispose();\n            this.widget = null;\n        }\n    }\n}\nIPadShowKeyboard.ID = 'editor.contrib.iPadShowKeyboard';\nclass ShowKeyboardWidget extends Disposable {\n    constructor(editor) {\n        super();\n        this.editor = editor;\n        this._domNode = document.createElement('textarea');\n        this._domNode.className = 'iPadShowKeyboard';\n        this._register(dom.addDisposableListener(this._domNode, 'touchstart', (e) => {\n            this.editor.focus();\n        }));\n        this._register(dom.addDisposableListener(this._domNode, 'focus', (e) => {\n            this.editor.focus();\n        }));\n        this.editor.addOverlayWidget(this);\n    }\n    dispose() {\n        this.editor.removeOverlayWidget(this);\n        super.dispose();\n    }\n    // ----- IOverlayWidget API\n    getId() {\n        return ShowKeyboardWidget.ID;\n    }\n    getDomNode() {\n        return this._domNode;\n    }\n    getPosition() {\n        return {\n            preference: 1 /* OverlayWidgetPositionPreference.BOTTOM_RIGHT_CORNER */\n        };\n    }\n}\nShowKeyboardWidget.ID = 'editor.contrib.ShowKeyboardWidget';\nregisterEditorContribution(IPadShowKeyboard.ID, IPadShowKeyboard, 3 /* EditorContributionInstantiation.Eventually */);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/browser/inspectTokens/inspectTokens.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .tokens-inspect-widget {\n\tz-index: 50;\n\tuser-select: text;\n\t-webkit-user-select: text;\n\tpadding: 10px;\n\tcolor: var(--vscode-editorHoverWidget-foreground);\n\tbackground-color: var(--vscode-editorHoverWidget-background);\n\tborder: 1px solid var(--vscode-editorHoverWidget-border);\n}\n.monaco-editor.hc-black .tokens-inspect-widget, .monaco-editor.hc-light .tokens-inspect-widget {\n\tborder-width: 2px;\n}\n\n.monaco-editor .tokens-inspect-widget .tokens-inspect-separator {\n\theight: 1px;\n\tborder: 0;\n\tbackground-color: var(--vscode-editorHoverWidget-border);\n}\n\n.monaco-editor .tokens-inspect-widget .tm-token {\n\tfont-family: var(--monaco-monospace-font);\n}\n\n.monaco-editor .tokens-inspect-widget .tm-token-length {\n\tfont-weight: normal;\n\tfont-size: 60%;\n\tfloat: right;\n}\n\n.monaco-editor .tokens-inspect-widget .tm-metadata-table {\n\twidth: 100%;\n}\n\n.monaco-editor .tokens-inspect-widget .tm-metadata-value {\n\tfont-family: var(--monaco-monospace-font);\n\ttext-align: right;\n}\n\n.monaco-editor .tokens-inspect-widget .tm-token-type {\n\tfont-family: var(--monaco-monospace-font);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/browser/inspectTokens/inspectTokens.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/browser/inspectTokens/inspectTokens.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar InspectTokensController_1;\nimport './inspectTokens.css';\nimport { $, append, reset } from '../../../../base/browser/dom.js';\nimport { Color } from '../../../../base/common/color.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { EditorAction, registerEditorAction, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { TokenizationRegistry } from '../../../common/languages.js';\nimport { TokenMetadata } from '../../../common/encodedTokenAttributes.js';\nimport { NullState, nullTokenize, nullTokenizeEncoded } from '../../../common/languages/nullTokenize.js';\nimport { ILanguageService } from '../../../common/languages/language.js';\nimport { IStandaloneThemeService } from '../../common/standaloneTheme.js';\nimport { InspectTokensNLS } from '../../../common/standaloneStrings.js';\nlet InspectTokensController = InspectTokensController_1 = class InspectTokensController extends Disposable {\n    static get(editor) {\n        return editor.getContribution(InspectTokensController_1.ID);\n    }\n    constructor(editor, standaloneColorService, languageService) {\n        super();\n        this._editor = editor;\n        this._languageService = languageService;\n        this._widget = null;\n        this._register(this._editor.onDidChangeModel((e) => this.stop()));\n        this._register(this._editor.onDidChangeModelLanguage((e) => this.stop()));\n        this._register(TokenizationRegistry.onDidChange((e) => this.stop()));\n        this._register(this._editor.onKeyUp((e) => e.keyCode === 9 /* KeyCode.Escape */ && this.stop()));\n    }\n    dispose() {\n        this.stop();\n        super.dispose();\n    }\n    launch() {\n        if (this._widget) {\n            return;\n        }\n        if (!this._editor.hasModel()) {\n            return;\n        }\n        this._widget = new InspectTokensWidget(this._editor, this._languageService);\n    }\n    stop() {\n        if (this._widget) {\n            this._widget.dispose();\n            this._widget = null;\n        }\n    }\n};\nInspectTokensController.ID = 'editor.contrib.inspectTokens';\nInspectTokensController = InspectTokensController_1 = __decorate([\n    __param(1, IStandaloneThemeService),\n    __param(2, ILanguageService)\n], InspectTokensController);\nclass InspectTokens extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.inspectTokens',\n            label: InspectTokensNLS.inspectTokensAction,\n            alias: 'Developer: Inspect Tokens',\n            precondition: undefined\n        });\n    }\n    run(accessor, editor) {\n        const controller = InspectTokensController.get(editor);\n        controller === null || controller === void 0 ? void 0 : controller.launch();\n    }\n}\nfunction renderTokenText(tokenText) {\n    let result = '';\n    for (let charIndex = 0, len = tokenText.length; charIndex < len; charIndex++) {\n        const charCode = tokenText.charCodeAt(charIndex);\n        switch (charCode) {\n            case 9 /* CharCode.Tab */:\n                result += '\\u2192'; // &rarr;\n                break;\n            case 32 /* CharCode.Space */:\n                result += '\\u00B7'; // &middot;\n                break;\n            default:\n                result += String.fromCharCode(charCode);\n        }\n    }\n    return result;\n}\nfunction getSafeTokenizationSupport(languageIdCodec, languageId) {\n    const tokenizationSupport = TokenizationRegistry.get(languageId);\n    if (tokenizationSupport) {\n        return tokenizationSupport;\n    }\n    const encodedLanguageId = languageIdCodec.encodeLanguageId(languageId);\n    return {\n        getInitialState: () => NullState,\n        tokenize: (line, hasEOL, state) => nullTokenize(languageId, state),\n        tokenizeEncoded: (line, hasEOL, state) => nullTokenizeEncoded(encodedLanguageId, state)\n    };\n}\nclass InspectTokensWidget extends Disposable {\n    constructor(editor, languageService) {\n        super();\n        // Editor.IContentWidget.allowEditorOverflow\n        this.allowEditorOverflow = true;\n        this._editor = editor;\n        this._languageService = languageService;\n        this._model = this._editor.getModel();\n        this._domNode = document.createElement('div');\n        this._domNode.className = 'tokens-inspect-widget';\n        this._tokenizationSupport = getSafeTokenizationSupport(this._languageService.languageIdCodec, this._model.getLanguageId());\n        this._compute(this._editor.getPosition());\n        this._register(this._editor.onDidChangeCursorPosition((e) => this._compute(this._editor.getPosition())));\n        this._editor.addContentWidget(this);\n    }\n    dispose() {\n        this._editor.removeContentWidget(this);\n        super.dispose();\n    }\n    getId() {\n        return InspectTokensWidget._ID;\n    }\n    _compute(position) {\n        const data = this._getTokensAtLine(position.lineNumber);\n        let token1Index = 0;\n        for (let i = data.tokens1.length - 1; i >= 0; i--) {\n            const t = data.tokens1[i];\n            if (position.column - 1 >= t.offset) {\n                token1Index = i;\n                break;\n            }\n        }\n        let token2Index = 0;\n        for (let i = (data.tokens2.length >>> 1); i >= 0; i--) {\n            if (position.column - 1 >= data.tokens2[(i << 1)]) {\n                token2Index = i;\n                break;\n            }\n        }\n        const lineContent = this._model.getLineContent(position.lineNumber);\n        let tokenText = '';\n        if (token1Index < data.tokens1.length) {\n            const tokenStartIndex = data.tokens1[token1Index].offset;\n            const tokenEndIndex = token1Index + 1 < data.tokens1.length ? data.tokens1[token1Index + 1].offset : lineContent.length;\n            tokenText = lineContent.substring(tokenStartIndex, tokenEndIndex);\n        }\n        reset(this._domNode, $('h2.tm-token', undefined, renderTokenText(tokenText), $('span.tm-token-length', undefined, `${tokenText.length} ${tokenText.length === 1 ? 'char' : 'chars'}`)));\n        append(this._domNode, $('hr.tokens-inspect-separator', { 'style': 'clear:both' }));\n        const metadata = (token2Index << 1) + 1 < data.tokens2.length ? this._decodeMetadata(data.tokens2[(token2Index << 1) + 1]) : null;\n        append(this._domNode, $('table.tm-metadata-table', undefined, $('tbody', undefined, $('tr', undefined, $('td.tm-metadata-key', undefined, 'language'), $('td.tm-metadata-value', undefined, `${metadata ? metadata.languageId : '-?-'}`)), $('tr', undefined, $('td.tm-metadata-key', undefined, 'token type'), $('td.tm-metadata-value', undefined, `${metadata ? this._tokenTypeToString(metadata.tokenType) : '-?-'}`)), $('tr', undefined, $('td.tm-metadata-key', undefined, 'font style'), $('td.tm-metadata-value', undefined, `${metadata ? this._fontStyleToString(metadata.fontStyle) : '-?-'}`)), $('tr', undefined, $('td.tm-metadata-key', undefined, 'foreground'), $('td.tm-metadata-value', undefined, `${metadata ? Color.Format.CSS.formatHex(metadata.foreground) : '-?-'}`)), $('tr', undefined, $('td.tm-metadata-key', undefined, 'background'), $('td.tm-metadata-value', undefined, `${metadata ? Color.Format.CSS.formatHex(metadata.background) : '-?-'}`)))));\n        append(this._domNode, $('hr.tokens-inspect-separator'));\n        if (token1Index < data.tokens1.length) {\n            append(this._domNode, $('span.tm-token-type', undefined, data.tokens1[token1Index].type));\n        }\n        this._editor.layoutContentWidget(this);\n    }\n    _decodeMetadata(metadata) {\n        const colorMap = TokenizationRegistry.getColorMap();\n        const languageId = TokenMetadata.getLanguageId(metadata);\n        const tokenType = TokenMetadata.getTokenType(metadata);\n        const fontStyle = TokenMetadata.getFontStyle(metadata);\n        const foreground = TokenMetadata.getForeground(metadata);\n        const background = TokenMetadata.getBackground(metadata);\n        return {\n            languageId: this._languageService.languageIdCodec.decodeLanguageId(languageId),\n            tokenType: tokenType,\n            fontStyle: fontStyle,\n            foreground: colorMap[foreground],\n            background: colorMap[background]\n        };\n    }\n    _tokenTypeToString(tokenType) {\n        switch (tokenType) {\n            case 0 /* StandardTokenType.Other */: return 'Other';\n            case 1 /* StandardTokenType.Comment */: return 'Comment';\n            case 2 /* StandardTokenType.String */: return 'String';\n            case 3 /* StandardTokenType.RegEx */: return 'RegEx';\n            default: return '??';\n        }\n    }\n    _fontStyleToString(fontStyle) {\n        let r = '';\n        if (fontStyle & 1 /* FontStyle.Italic */) {\n            r += 'italic ';\n        }\n        if (fontStyle & 2 /* FontStyle.Bold */) {\n            r += 'bold ';\n        }\n        if (fontStyle & 4 /* FontStyle.Underline */) {\n            r += 'underline ';\n        }\n        if (fontStyle & 8 /* FontStyle.Strikethrough */) {\n            r += 'strikethrough ';\n        }\n        if (r.length === 0) {\n            r = '---';\n        }\n        return r;\n    }\n    _getTokensAtLine(lineNumber) {\n        const stateBeforeLine = this._getStateBeforeLine(lineNumber);\n        const tokenizationResult1 = this._tokenizationSupport.tokenize(this._model.getLineContent(lineNumber), true, stateBeforeLine);\n        const tokenizationResult2 = this._tokenizationSupport.tokenizeEncoded(this._model.getLineContent(lineNumber), true, stateBeforeLine);\n        return {\n            startState: stateBeforeLine,\n            tokens1: tokenizationResult1.tokens,\n            tokens2: tokenizationResult2.tokens,\n            endState: tokenizationResult1.endState\n        };\n    }\n    _getStateBeforeLine(lineNumber) {\n        let state = this._tokenizationSupport.getInitialState();\n        for (let i = 1; i < lineNumber; i++) {\n            const tokenizationResult = this._tokenizationSupport.tokenize(this._model.getLineContent(i), true, state);\n            state = tokenizationResult.endState;\n        }\n        return state;\n    }\n    getDomNode() {\n        return this._domNode;\n    }\n    getPosition() {\n        return {\n            position: this._editor.getPosition(),\n            preference: [2 /* ContentWidgetPositionPreference.BELOW */, 1 /* ContentWidgetPositionPreference.ABOVE */]\n        };\n    }\n}\nInspectTokensWidget._ID = 'editor.contrib.inspectTokensWidget';\nregisterEditorContribution(InspectTokensController.ID, InspectTokensController, 4 /* EditorContributionInstantiation.Lazy */);\nregisterEditorAction(InspectTokens);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/browser/quickAccess/standaloneCommandsQuickAccess.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/browser/quickAccess/standaloneCommandsQuickAccess.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Registry } from '../../../../platform/registry/common/platform.js';\nimport { Extensions } from '../../../../platform/quickinput/common/quickAccess.js';\nimport { QuickCommandNLS } from '../../../common/standaloneStrings.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { AbstractEditorCommandsQuickAccessProvider } from '../../../contrib/quickAccess/browser/commandsQuickAccess.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { ITelemetryService } from '../../../../platform/telemetry/common/telemetry.js';\nimport { IDialogService } from '../../../../platform/dialogs/common/dialogs.js';\nimport { EditorAction, registerEditorAction } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.js';\nlet StandaloneCommandsQuickAccessProvider = class StandaloneCommandsQuickAccessProvider extends AbstractEditorCommandsQuickAccessProvider {\n    get activeTextEditorControl() { var _a; return (_a = this.codeEditorService.getFocusedCodeEditor()) !== null && _a !== void 0 ? _a : undefined; }\n    constructor(instantiationService, codeEditorService, keybindingService, commandService, telemetryService, dialogService) {\n        super({ showAlias: false }, instantiationService, keybindingService, commandService, telemetryService, dialogService);\n        this.codeEditorService = codeEditorService;\n    }\n    async getCommandPicks() {\n        return this.getCodeEditorCommandPicks();\n    }\n    hasAdditionalCommandPicks() {\n        return false;\n    }\n    async getAdditionalCommandPicks() {\n        return [];\n    }\n};\nStandaloneCommandsQuickAccessProvider = __decorate([\n    __param(0, IInstantiationService),\n    __param(1, ICodeEditorService),\n    __param(2, IKeybindingService),\n    __param(3, ICommandService),\n    __param(4, ITelemetryService),\n    __param(5, IDialogService)\n], StandaloneCommandsQuickAccessProvider);\nexport { StandaloneCommandsQuickAccessProvider };\nexport class GotoLineAction extends EditorAction {\n    constructor() {\n        super({\n            id: GotoLineAction.ID,\n            label: QuickCommandNLS.quickCommandActionLabel,\n            alias: 'Command Palette',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: EditorContextKeys.focus,\n                primary: 59 /* KeyCode.F1 */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            contextMenuOpts: {\n                group: 'z_commands',\n                order: 1\n            }\n        });\n    }\n    run(accessor) {\n        accessor.get(IQuickInputService).quickAccess.show(StandaloneCommandsQuickAccessProvider.PREFIX);\n    }\n}\nGotoLineAction.ID = 'editor.action.quickCommand';\nregisterEditorAction(GotoLineAction);\nRegistry.as(Extensions.Quickaccess).registerQuickAccessProvider({\n    ctor: StandaloneCommandsQuickAccessProvider,\n    prefix: StandaloneCommandsQuickAccessProvider.PREFIX,\n    helpEntries: [{ description: QuickCommandNLS.quickCommandHelp, commandId: GotoLineAction.ID }]\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { AbstractGotoLineQuickAccessProvider } from '../../../contrib/quickAccess/browser/gotoLineQuickAccess.js';\nimport { Registry } from '../../../../platform/registry/common/platform.js';\nimport { Extensions } from '../../../../platform/quickinput/common/quickAccess.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { GoToLineNLS } from '../../../common/standaloneStrings.js';\nimport { Event } from '../../../../base/common/event.js';\nimport { EditorAction, registerEditorAction } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.js';\nlet StandaloneGotoLineQuickAccessProvider = class StandaloneGotoLineQuickAccessProvider extends AbstractGotoLineQuickAccessProvider {\n    constructor(editorService) {\n        super();\n        this.editorService = editorService;\n        this.onDidActiveTextEditorControlChange = Event.None;\n    }\n    get activeTextEditorControl() {\n        var _a;\n        return (_a = this.editorService.getFocusedCodeEditor()) !== null && _a !== void 0 ? _a : undefined;\n    }\n};\nStandaloneGotoLineQuickAccessProvider = __decorate([\n    __param(0, ICodeEditorService)\n], StandaloneGotoLineQuickAccessProvider);\nexport { StandaloneGotoLineQuickAccessProvider };\nexport class GotoLineAction extends EditorAction {\n    constructor() {\n        super({\n            id: GotoLineAction.ID,\n            label: GoToLineNLS.gotoLineActionLabel,\n            alias: 'Go to Line/Column...',\n            precondition: undefined,\n            kbOpts: {\n                kbExpr: EditorContextKeys.focus,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 37 /* KeyCode.KeyG */,\n                mac: { primary: 256 /* KeyMod.WinCtrl */ | 37 /* KeyCode.KeyG */ },\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            }\n        });\n    }\n    run(accessor) {\n        accessor.get(IQuickInputService).quickAccess.show(StandaloneGotoLineQuickAccessProvider.PREFIX);\n    }\n}\nGotoLineAction.ID = 'editor.action.gotoLine';\nregisterEditorAction(GotoLineAction);\nRegistry.as(Extensions.Quickaccess).registerQuickAccessProvider({\n    ctor: StandaloneGotoLineQuickAccessProvider,\n    prefix: StandaloneGotoLineQuickAccessProvider.PREFIX,\n    helpEntries: [{ description: GoToLineNLS.gotoLineActionLabel, commandId: GotoLineAction.ID }]\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/browser/quickAccess/standaloneGotoSymbolQuickAccess.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/browser/quickAccess/standaloneGotoSymbolQuickAccess.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport '../../../../base/browser/ui/codicons/codiconStyles.js'; // The codicon symbol styles are defined here and must be loaded\nimport '../../../contrib/symbolIcons/browser/symbolIcons.js'; // The codicon symbol colors are defined here and must be loaded to get colors\nimport { AbstractGotoSymbolQuickAccessProvider } from '../../../contrib/quickAccess/browser/gotoSymbolQuickAccess.js';\nimport { Registry } from '../../../../platform/registry/common/platform.js';\nimport { Extensions } from '../../../../platform/quickinput/common/quickAccess.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { QuickOutlineNLS } from '../../../common/standaloneStrings.js';\nimport { Event } from '../../../../base/common/event.js';\nimport { EditorAction, registerEditorAction } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { IQuickInputService, ItemActivation } from '../../../../platform/quickinput/common/quickInput.js';\nimport { IOutlineModelService } from '../../../contrib/documentSymbols/browser/outlineModel.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nlet StandaloneGotoSymbolQuickAccessProvider = class StandaloneGotoSymbolQuickAccessProvider extends AbstractGotoSymbolQuickAccessProvider {\n    constructor(editorService, languageFeaturesService, outlineModelService) {\n        super(languageFeaturesService, outlineModelService);\n        this.editorService = editorService;\n        this.onDidActiveTextEditorControlChange = Event.None;\n    }\n    get activeTextEditorControl() {\n        var _a;\n        return (_a = this.editorService.getFocusedCodeEditor()) !== null && _a !== void 0 ? _a : undefined;\n    }\n};\nStandaloneGotoSymbolQuickAccessProvider = __decorate([\n    __param(0, ICodeEditorService),\n    __param(1, ILanguageFeaturesService),\n    __param(2, IOutlineModelService)\n], StandaloneGotoSymbolQuickAccessProvider);\nexport { StandaloneGotoSymbolQuickAccessProvider };\nexport class GotoSymbolAction extends EditorAction {\n    constructor() {\n        super({\n            id: GotoSymbolAction.ID,\n            label: QuickOutlineNLS.quickOutlineActionLabel,\n            alias: 'Go to Symbol...',\n            precondition: EditorContextKeys.hasDocumentSymbolProvider,\n            kbOpts: {\n                kbExpr: EditorContextKeys.focus,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 45 /* KeyCode.KeyO */,\n                weight: 100 /* KeybindingWeight.EditorContrib */\n            },\n            contextMenuOpts: {\n                group: 'navigation',\n                order: 3\n            }\n        });\n    }\n    run(accessor) {\n        accessor.get(IQuickInputService).quickAccess.show(AbstractGotoSymbolQuickAccessProvider.PREFIX, { itemActivation: ItemActivation.NONE });\n    }\n}\nGotoSymbolAction.ID = 'editor.action.quickOutline';\nregisterEditorAction(GotoSymbolAction);\nRegistry.as(Extensions.Quickaccess).registerQuickAccessProvider({\n    ctor: StandaloneGotoSymbolQuickAccessProvider,\n    prefix: AbstractGotoSymbolQuickAccessProvider.PREFIX,\n    helpEntries: [\n        { description: QuickOutlineNLS.quickOutlineActionLabel, prefix: AbstractGotoSymbolQuickAccessProvider.PREFIX, commandId: GotoSymbolAction.ID },\n        { description: QuickOutlineNLS.quickOutlineByCategoryActionLabel, prefix: AbstractGotoSymbolQuickAccessProvider.PREFIX_BY_CATEGORY }\n    ]\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/browser/quickAccess/standaloneHelpQuickAccess.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/browser/quickAccess/standaloneHelpQuickAccess.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Registry } from '../../../../platform/registry/common/platform.js';\nimport { Extensions } from '../../../../platform/quickinput/common/quickAccess.js';\nimport { QuickHelpNLS } from '../../../common/standaloneStrings.js';\nimport { HelpQuickAccessProvider } from '../../../../platform/quickinput/browser/helpQuickAccess.js';\nRegistry.as(Extensions.Quickaccess).registerQuickAccessProvider({\n    ctor: HelpQuickAccessProvider,\n    prefix: '',\n    helpEntries: [{ description: QuickHelpNLS.helpQuickAccessActionLabel }]\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/browser/quickInput/standaloneQuickInput.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.quick-input-widget {\n\tfont-size: 13px;\n}\n\n.quick-input-widget .monaco-highlighted-label .highlight,\n.quick-input-widget .monaco-highlighted-label .highlight {\n\tcolor: #0066BF;\n}\n\n.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight,\n.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight {\n\tcolor: #9DDDFF;\n}\n\n.vs-dark .quick-input-widget .monaco-highlighted-label .highlight,\n.vs-dark .quick-input-widget .monaco-highlighted-label .highlight {\n\tcolor: #0097fb;\n}\n\n.hc-black .quick-input-widget .monaco-highlighted-label .highlight,\n.hc-black .quick-input-widget .monaco-highlighted-label .highlight {\n\tcolor: #F38518;\n}\n\n.hc-light .quick-input-widget .monaco-highlighted-label .highlight,\n.hc-light .quick-input-widget .monaco-highlighted-label .highlight {\n\tcolor: #0F4A85;\n}\n\n.monaco-keybinding > .monaco-keybinding-key {\n\tbackground-color: rgba(221, 221, 221, 0.4);\n\tborder: solid 1px rgba(204, 204, 204, 0.4);\n\tborder-bottom-color: rgba(187, 187, 187, 0.4);\n\tbox-shadow: inset 0 -1px 0 rgba(187, 187, 187, 0.4);\n\tcolor: #555;\n}\n\n.hc-black .monaco-keybinding > .monaco-keybinding-key {\n\tbackground-color: transparent;\n\tborder: solid 1px rgb(111, 195, 223);\n\tbox-shadow: none;\n\tcolor: #fff;\n}\n\n.hc-light .monaco-keybinding > .monaco-keybinding-key {\n\tbackground-color: transparent;\n\tborder: solid 1px #0F4A85;\n\tbox-shadow: none;\n\tcolor: #292929;\n}\n\n.vs-dark .monaco-keybinding > .monaco-keybinding-key {\n\tbackground-color: rgba(128, 128, 128, 0.17);\n\tborder: solid 1px rgba(51, 51, 51, 0.6);\n\tborder-bottom-color: rgba(68, 68, 68, 0.6);\n\tbox-shadow: inset 0 -1px 0 rgba(68, 68, 68, 0.6);\n\tcolor: #ccc;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/browser/quickInput/standaloneQuickInputService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport './standaloneQuickInput.css';\nimport { Event } from '../../../../base/common/event.js';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { IThemeService } from '../../../../platform/theme/common/themeService.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { EditorScopedLayoutService } from '../standaloneLayoutService.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { QuickInputService } from '../../../../platform/quickinput/browser/quickInputService.js';\nimport { createSingleCallFunction } from '../../../../base/common/functional.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nlet EditorScopedQuickInputService = class EditorScopedQuickInputService extends QuickInputService {\n    constructor(editor, instantiationService, contextKeyService, themeService, codeEditorService, configurationService) {\n        super(instantiationService, contextKeyService, themeService, new EditorScopedLayoutService(editor.getContainerDomNode(), codeEditorService), configurationService);\n        this.host = undefined;\n        // Use the passed in code editor as host for the quick input widget\n        const contribution = QuickInputEditorContribution.get(editor);\n        if (contribution) {\n            const widget = contribution.widget;\n            this.host = {\n                _serviceBrand: undefined,\n                get mainContainer() { return widget.getDomNode(); },\n                getContainer() { return widget.getDomNode(); },\n                whenContainerStylesLoaded() { return undefined; },\n                get containers() { return [widget.getDomNode()]; },\n                get activeContainer() { return widget.getDomNode(); },\n                get mainContainerDimension() { return editor.getLayoutInfo(); },\n                get activeContainerDimension() { return editor.getLayoutInfo(); },\n                get onDidLayoutMainContainer() { return editor.onDidLayoutChange; },\n                get onDidLayoutActiveContainer() { return editor.onDidLayoutChange; },\n                get onDidLayoutContainer() { return Event.map(editor.onDidLayoutChange, dimension => ({ container: widget.getDomNode(), dimension })); },\n                get onDidChangeActiveContainer() { return Event.None; },\n                get onDidAddContainer() { return Event.None; },\n                get mainContainerOffset() { return { top: 0, quickPickTop: 0 }; },\n                get activeContainerOffset() { return { top: 0, quickPickTop: 0 }; },\n                focus: () => editor.focus()\n            };\n        }\n        else {\n            this.host = undefined;\n        }\n    }\n    createController() {\n        return super.createController(this.host);\n    }\n};\nEditorScopedQuickInputService = __decorate([\n    __param(1, IInstantiationService),\n    __param(2, IContextKeyService),\n    __param(3, IThemeService),\n    __param(4, ICodeEditorService),\n    __param(5, IConfigurationService)\n], EditorScopedQuickInputService);\nlet StandaloneQuickInputService = class StandaloneQuickInputService {\n    get activeService() {\n        const editor = this.codeEditorService.getFocusedCodeEditor();\n        if (!editor) {\n            throw new Error('Quick input service needs a focused editor to work.');\n        }\n        // Find the quick input implementation for the focused\n        // editor or create it lazily if not yet created\n        let quickInputService = this.mapEditorToService.get(editor);\n        if (!quickInputService) {\n            const newQuickInputService = quickInputService = this.instantiationService.createInstance(EditorScopedQuickInputService, editor);\n            this.mapEditorToService.set(editor, quickInputService);\n            createSingleCallFunction(editor.onDidDispose)(() => {\n                newQuickInputService.dispose();\n                this.mapEditorToService.delete(editor);\n            });\n        }\n        return quickInputService;\n    }\n    get currentQuickInput() { return this.activeService.currentQuickInput; }\n    get quickAccess() { return this.activeService.quickAccess; }\n    constructor(instantiationService, codeEditorService) {\n        this.instantiationService = instantiationService;\n        this.codeEditorService = codeEditorService;\n        this.mapEditorToService = new Map();\n    }\n    pick(picks, options = {}, token = CancellationToken.None) {\n        return this.activeService /* TS fail */.pick(picks, options, token);\n    }\n    createQuickPick() {\n        return this.activeService.createQuickPick();\n    }\n    createInputBox() {\n        return this.activeService.createInputBox();\n    }\n};\nStandaloneQuickInputService = __decorate([\n    __param(0, IInstantiationService),\n    __param(1, ICodeEditorService)\n], StandaloneQuickInputService);\nexport { StandaloneQuickInputService };\nexport class QuickInputEditorContribution {\n    static get(editor) {\n        return editor.getContribution(QuickInputEditorContribution.ID);\n    }\n    constructor(editor) {\n        this.editor = editor;\n        this.widget = new QuickInputEditorWidget(this.editor);\n    }\n    dispose() {\n        this.widget.dispose();\n    }\n}\nQuickInputEditorContribution.ID = 'editor.controller.quickInput';\nexport class QuickInputEditorWidget {\n    constructor(codeEditor) {\n        this.codeEditor = codeEditor;\n        this.domNode = document.createElement('div');\n        this.codeEditor.addOverlayWidget(this);\n    }\n    getId() {\n        return QuickInputEditorWidget.ID;\n    }\n    getDomNode() {\n        return this.domNode;\n    }\n    getPosition() {\n        return { preference: 2 /* OverlayWidgetPositionPreference.TOP_CENTER */ };\n    }\n    dispose() {\n        this.codeEditor.removeOverlayWidget(this);\n    }\n}\nQuickInputEditorWidget.ID = 'editor.contrib.quickInputWidget';\nregisterEditorContribution(QuickInputEditorContribution.ID, QuickInputEditorContribution, 4 /* EditorContributionInstantiation.Lazy */);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/browser/referenceSearch/standaloneReferenceSearch.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/browser/referenceSearch/standaloneReferenceSearch.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { ReferencesController } from '../../../contrib/gotoSymbol/browser/peek/referencesController.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { INotificationService } from '../../../../platform/notification/common/notification.js';\nimport { IStorageService } from '../../../../platform/storage/common/storage.js';\nlet StandaloneReferencesController = class StandaloneReferencesController extends ReferencesController {\n    constructor(editor, contextKeyService, editorService, notificationService, instantiationService, storageService, configurationService) {\n        super(true, editor, contextKeyService, editorService, notificationService, instantiationService, storageService, configurationService);\n    }\n};\nStandaloneReferencesController = __decorate([\n    __param(1, IContextKeyService),\n    __param(2, ICodeEditorService),\n    __param(3, INotificationService),\n    __param(4, IInstantiationService),\n    __param(5, IStorageService),\n    __param(6, IConfigurationService)\n], StandaloneReferencesController);\nexport { StandaloneReferencesController };\nregisterEditorContribution(ReferencesController.ID, StandaloneReferencesController, 4 /* EditorContributionInstantiation.Lazy */);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/browser/standalone-tokens.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n\n/* Default standalone editor fonts */\n.monaco-editor {\n\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe WPC\", \"Segoe UI\", \"HelveticaNeue-Light\", system-ui, \"Ubuntu\", \"Droid Sans\", sans-serif;\n\t--monaco-monospace-font: \"SF Mono\", Monaco, Menlo, Consolas, \"Ubuntu Mono\", \"Liberation Mono\", \"DejaVu Sans Mono\", \"Courier New\", monospace;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label {\n\tstroke-width: 1.2px;\n}\n\n.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,\n.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,\n.monaco-editor.hc-light .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label {\n\tstroke-width: 1.2px;\n}\n\n.monaco-hover p {\n\tmargin: 0;\n}\n\n/* See https://github.com/microsoft/monaco-editor/issues/2168#issuecomment-780078600 */\n.monaco-aria-container {\n\tposition: absolute !important;\n\ttop: 0; /* avoid being placed underneath a sibling element */\n\theight: 1px;\n\twidth: 1px;\n\tmargin: -1px;\n\toverflow: hidden;\n\tpadding: 0;\n\tclip: rect(1px, 1px, 1px, 1px);\n\tclip-path: inset(50%);\n}\n\n.monaco-editor, .monaco-diff-editor .synthetic-focus,\n.monaco-editor, .monaco-diff-editor [tabindex=\"0\"]:focus,\n.monaco-editor, .monaco-diff-editor [tabindex=\"-1\"]:focus,\n.monaco-editor, .monaco-diff-editor button:focus,\n.monaco-editor, .monaco-diff-editor input[type=button]:focus,\n.monaco-editor, .monaco-diff-editor input[type=checkbox]:focus,\n.monaco-editor, .monaco-diff-editor input[type=search]:focus,\n.monaco-editor, .monaco-diff-editor input[type=text]:focus,\n.monaco-editor, .monaco-diff-editor select:focus,\n.monaco-editor, .monaco-diff-editor textarea:focus {\n\toutline-width: 1px;\n\toutline-style: solid;\n\toutline-offset: -1px;\n\toutline-color: var(--vscode-focusBorder);\n\topacity: 1\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/browser/standaloneCodeEditor.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport * as aria from '../../../base/browser/ui/aria/aria.js';\nimport { Disposable, toDisposable, DisposableStore } from '../../../base/common/lifecycle.js';\nimport { ICodeEditorService } from '../../browser/services/codeEditorService.js';\nimport { CodeEditorWidget } from '../../browser/widget/codeEditor/codeEditorWidget.js';\nimport { InternalEditorAction } from '../../common/editorAction.js';\nimport { StandaloneKeybindingService, updateConfigurationService } from './standaloneServices.js';\nimport { IStandaloneThemeService } from '../common/standaloneTheme.js';\nimport { MenuId, MenuRegistry } from '../../../platform/actions/common/actions.js';\nimport { CommandsRegistry, ICommandService } from '../../../platform/commands/common/commands.js';\nimport { IConfigurationService } from '../../../platform/configuration/common/configuration.js';\nimport { ContextKeyExpr, IContextKeyService } from '../../../platform/contextkey/common/contextkey.js';\nimport { IContextMenuService } from '../../../platform/contextview/browser/contextView.js';\nimport { IInstantiationService } from '../../../platform/instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../../platform/keybinding/common/keybinding.js';\nimport { INotificationService } from '../../../platform/notification/common/notification.js';\nimport { IThemeService } from '../../../platform/theme/common/themeService.js';\nimport { IAccessibilityService } from '../../../platform/accessibility/common/accessibility.js';\nimport { StandaloneCodeEditorNLS } from '../../common/standaloneStrings.js';\nimport { IClipboardService } from '../../../platform/clipboard/common/clipboardService.js';\nimport { IEditorProgressService } from '../../../platform/progress/common/progress.js';\nimport { IModelService } from '../../common/services/model.js';\nimport { ILanguageService } from '../../common/languages/language.js';\nimport { StandaloneCodeEditorService } from './standaloneCodeEditorService.js';\nimport { PLAINTEXT_LANGUAGE_ID } from '../../common/languages/modesRegistry.js';\nimport { ILanguageConfigurationService } from '../../common/languages/languageConfigurationRegistry.js';\nimport { ILanguageFeaturesService } from '../../common/services/languageFeatures.js';\nimport { DiffEditorWidget } from '../../browser/widget/diffEditor/diffEditorWidget.js';\nimport { IAccessibilitySignalService } from '../../../platform/accessibilitySignal/browser/accessibilitySignalService.js';\nimport { mainWindow } from '../../../base/browser/window.js';\nimport { setHoverDelegateFactory } from '../../../base/browser/ui/hover/hoverDelegateFactory.js';\nimport { IHoverService, WorkbenchHoverDelegate } from '../../../platform/hover/browser/hover.js';\nimport { setBaseLayerHoverDelegate } from '../../../base/browser/ui/hover/hoverDelegate2.js';\nlet LAST_GENERATED_COMMAND_ID = 0;\nlet ariaDomNodeCreated = false;\n/**\n * Create ARIA dom node inside parent,\n * or only for the first editor instantiation inside document.body.\n * @param parent container element for ARIA dom node\n */\nfunction createAriaDomNode(parent) {\n    if (!parent) {\n        if (ariaDomNodeCreated) {\n            return;\n        }\n        ariaDomNodeCreated = true;\n    }\n    aria.setARIAContainer(parent || mainWindow.document.body);\n}\n/**\n * A code editor to be used both by the standalone editor and the standalone diff editor.\n */\nlet StandaloneCodeEditor = class StandaloneCodeEditor extends CodeEditorWidget {\n    constructor(domElement, _options, instantiationService, codeEditorService, commandService, contextKeyService, hoverService, keybindingService, themeService, notificationService, accessibilityService, languageConfigurationService, languageFeaturesService) {\n        const options = { ..._options };\n        options.ariaLabel = options.ariaLabel || StandaloneCodeEditorNLS.editorViewAccessibleLabel;\n        options.ariaLabel = options.ariaLabel + ';' + (StandaloneCodeEditorNLS.accessibilityHelpMessage);\n        super(domElement, options, {}, instantiationService, codeEditorService, commandService, contextKeyService, themeService, notificationService, accessibilityService, languageConfigurationService, languageFeaturesService);\n        if (keybindingService instanceof StandaloneKeybindingService) {\n            this._standaloneKeybindingService = keybindingService;\n        }\n        else {\n            this._standaloneKeybindingService = null;\n        }\n        createAriaDomNode(options.ariaContainerElement);\n        setHoverDelegateFactory((placement, enableInstantHover) => instantiationService.createInstance(WorkbenchHoverDelegate, placement, enableInstantHover, {}));\n        setBaseLayerHoverDelegate(hoverService);\n    }\n    addCommand(keybinding, handler, context) {\n        if (!this._standaloneKeybindingService) {\n            console.warn('Cannot add command because the editor is configured with an unrecognized KeybindingService');\n            return null;\n        }\n        const commandId = 'DYNAMIC_' + (++LAST_GENERATED_COMMAND_ID);\n        const whenExpression = ContextKeyExpr.deserialize(context);\n        this._standaloneKeybindingService.addDynamicKeybinding(commandId, keybinding, handler, whenExpression);\n        return commandId;\n    }\n    createContextKey(key, defaultValue) {\n        return this._contextKeyService.createKey(key, defaultValue);\n    }\n    addAction(_descriptor) {\n        if ((typeof _descriptor.id !== 'string') || (typeof _descriptor.label !== 'string') || (typeof _descriptor.run !== 'function')) {\n            throw new Error('Invalid action descriptor, `id`, `label` and `run` are required properties!');\n        }\n        if (!this._standaloneKeybindingService) {\n            console.warn('Cannot add keybinding because the editor is configured with an unrecognized KeybindingService');\n            return Disposable.None;\n        }\n        // Read descriptor options\n        const id = _descriptor.id;\n        const label = _descriptor.label;\n        const precondition = ContextKeyExpr.and(ContextKeyExpr.equals('editorId', this.getId()), ContextKeyExpr.deserialize(_descriptor.precondition));\n        const keybindings = _descriptor.keybindings;\n        const keybindingsWhen = ContextKeyExpr.and(precondition, ContextKeyExpr.deserialize(_descriptor.keybindingContext));\n        const contextMenuGroupId = _descriptor.contextMenuGroupId || null;\n        const contextMenuOrder = _descriptor.contextMenuOrder || 0;\n        const run = (_accessor, ...args) => {\n            return Promise.resolve(_descriptor.run(this, ...args));\n        };\n        const toDispose = new DisposableStore();\n        // Generate a unique id to allow the same descriptor.id across multiple editor instances\n        const uniqueId = this.getId() + ':' + id;\n        // Register the command\n        toDispose.add(CommandsRegistry.registerCommand(uniqueId, run));\n        // Register the context menu item\n        if (contextMenuGroupId) {\n            const menuItem = {\n                command: {\n                    id: uniqueId,\n                    title: label\n                },\n                when: precondition,\n                group: contextMenuGroupId,\n                order: contextMenuOrder\n            };\n            toDispose.add(MenuRegistry.appendMenuItem(MenuId.EditorContext, menuItem));\n        }\n        // Register the keybindings\n        if (Array.isArray(keybindings)) {\n            for (const kb of keybindings) {\n                toDispose.add(this._standaloneKeybindingService.addDynamicKeybinding(uniqueId, kb, run, keybindingsWhen));\n            }\n        }\n        // Finally, register an internal editor action\n        const internalAction = new InternalEditorAction(uniqueId, label, label, undefined, precondition, (...args) => Promise.resolve(_descriptor.run(this, ...args)), this._contextKeyService);\n        // Store it under the original id, such that trigger with the original id will work\n        this._actions.set(id, internalAction);\n        toDispose.add(toDisposable(() => {\n            this._actions.delete(id);\n        }));\n        return toDispose;\n    }\n    _triggerCommand(handlerId, payload) {\n        if (this._codeEditorService instanceof StandaloneCodeEditorService) {\n            // Help commands find this editor as the active editor\n            try {\n                this._codeEditorService.setActiveCodeEditor(this);\n                super._triggerCommand(handlerId, payload);\n            }\n            finally {\n                this._codeEditorService.setActiveCodeEditor(null);\n            }\n        }\n        else {\n            super._triggerCommand(handlerId, payload);\n        }\n    }\n};\nStandaloneCodeEditor = __decorate([\n    __param(2, IInstantiationService),\n    __param(3, ICodeEditorService),\n    __param(4, ICommandService),\n    __param(5, IContextKeyService),\n    __param(6, IHoverService),\n    __param(7, IKeybindingService),\n    __param(8, IThemeService),\n    __param(9, INotificationService),\n    __param(10, IAccessibilityService),\n    __param(11, ILanguageConfigurationService),\n    __param(12, ILanguageFeaturesService)\n], StandaloneCodeEditor);\nexport { StandaloneCodeEditor };\nlet StandaloneEditor = class StandaloneEditor extends StandaloneCodeEditor {\n    constructor(domElement, _options, instantiationService, codeEditorService, commandService, contextKeyService, hoverService, keybindingService, themeService, notificationService, configurationService, accessibilityService, modelService, languageService, languageConfigurationService, languageFeaturesService) {\n        const options = { ..._options };\n        updateConfigurationService(configurationService, options, false);\n        const themeDomRegistration = themeService.registerEditorContainer(domElement);\n        if (typeof options.theme === 'string') {\n            themeService.setTheme(options.theme);\n        }\n        if (typeof options.autoDetectHighContrast !== 'undefined') {\n            themeService.setAutoDetectHighContrast(Boolean(options.autoDetectHighContrast));\n        }\n        const _model = options.model;\n        delete options.model;\n        super(domElement, options, instantiationService, codeEditorService, commandService, contextKeyService, hoverService, keybindingService, themeService, notificationService, accessibilityService, languageConfigurationService, languageFeaturesService);\n        this._configurationService = configurationService;\n        this._standaloneThemeService = themeService;\n        this._register(themeDomRegistration);\n        let model;\n        if (typeof _model === 'undefined') {\n            const languageId = languageService.getLanguageIdByMimeType(options.language) || options.language || PLAINTEXT_LANGUAGE_ID;\n            model = createTextModel(modelService, languageService, options.value || '', languageId, undefined);\n            this._ownsModel = true;\n        }\n        else {\n            model = _model;\n            this._ownsModel = false;\n        }\n        this._attachModel(model);\n        if (model) {\n            const e = {\n                oldModelUrl: null,\n                newModelUrl: model.uri\n            };\n            this._onDidChangeModel.fire(e);\n        }\n    }\n    dispose() {\n        super.dispose();\n    }\n    updateOptions(newOptions) {\n        updateConfigurationService(this._configurationService, newOptions, false);\n        if (typeof newOptions.theme === 'string') {\n            this._standaloneThemeService.setTheme(newOptions.theme);\n        }\n        if (typeof newOptions.autoDetectHighContrast !== 'undefined') {\n            this._standaloneThemeService.setAutoDetectHighContrast(Boolean(newOptions.autoDetectHighContrast));\n        }\n        super.updateOptions(newOptions);\n    }\n    _postDetachModelCleanup(detachedModel) {\n        super._postDetachModelCleanup(detachedModel);\n        if (detachedModel && this._ownsModel) {\n            detachedModel.dispose();\n            this._ownsModel = false;\n        }\n    }\n};\nStandaloneEditor = __decorate([\n    __param(2, IInstantiationService),\n    __param(3, ICodeEditorService),\n    __param(4, ICommandService),\n    __param(5, IContextKeyService),\n    __param(6, IHoverService),\n    __param(7, IKeybindingService),\n    __param(8, IStandaloneThemeService),\n    __param(9, INotificationService),\n    __param(10, IConfigurationService),\n    __param(11, IAccessibilityService),\n    __param(12, IModelService),\n    __param(13, ILanguageService),\n    __param(14, ILanguageConfigurationService),\n    __param(15, ILanguageFeaturesService)\n], StandaloneEditor);\nexport { StandaloneEditor };\nlet StandaloneDiffEditor2 = class StandaloneDiffEditor2 extends DiffEditorWidget {\n    constructor(domElement, _options, instantiationService, contextKeyService, codeEditorService, themeService, notificationService, configurationService, contextMenuService, editorProgressService, clipboardService, accessibilitySignalService) {\n        const options = { ..._options };\n        updateConfigurationService(configurationService, options, true);\n        const themeDomRegistration = themeService.registerEditorContainer(domElement);\n        if (typeof options.theme === 'string') {\n            themeService.setTheme(options.theme);\n        }\n        if (typeof options.autoDetectHighContrast !== 'undefined') {\n            themeService.setAutoDetectHighContrast(Boolean(options.autoDetectHighContrast));\n        }\n        super(domElement, options, {}, contextKeyService, instantiationService, codeEditorService, accessibilitySignalService, editorProgressService);\n        this._configurationService = configurationService;\n        this._standaloneThemeService = themeService;\n        this._register(themeDomRegistration);\n    }\n    dispose() {\n        super.dispose();\n    }\n    updateOptions(newOptions) {\n        updateConfigurationService(this._configurationService, newOptions, true);\n        if (typeof newOptions.theme === 'string') {\n            this._standaloneThemeService.setTheme(newOptions.theme);\n        }\n        if (typeof newOptions.autoDetectHighContrast !== 'undefined') {\n            this._standaloneThemeService.setAutoDetectHighContrast(Boolean(newOptions.autoDetectHighContrast));\n        }\n        super.updateOptions(newOptions);\n    }\n    _createInnerEditor(instantiationService, container, options) {\n        return instantiationService.createInstance(StandaloneCodeEditor, container, options);\n    }\n    getOriginalEditor() {\n        return super.getOriginalEditor();\n    }\n    getModifiedEditor() {\n        return super.getModifiedEditor();\n    }\n    addCommand(keybinding, handler, context) {\n        return this.getModifiedEditor().addCommand(keybinding, handler, context);\n    }\n    createContextKey(key, defaultValue) {\n        return this.getModifiedEditor().createContextKey(key, defaultValue);\n    }\n    addAction(descriptor) {\n        return this.getModifiedEditor().addAction(descriptor);\n    }\n};\nStandaloneDiffEditor2 = __decorate([\n    __param(2, IInstantiationService),\n    __param(3, IContextKeyService),\n    __param(4, ICodeEditorService),\n    __param(5, IStandaloneThemeService),\n    __param(6, INotificationService),\n    __param(7, IConfigurationService),\n    __param(8, IContextMenuService),\n    __param(9, IEditorProgressService),\n    __param(10, IClipboardService),\n    __param(11, IAccessibilitySignalService)\n], StandaloneDiffEditor2);\nexport { StandaloneDiffEditor2 };\n/**\n * @internal\n */\nexport function createTextModel(modelService, languageService, value, languageId, uri) {\n    value = value || '';\n    if (!languageId) {\n        const firstLF = value.indexOf('\\n');\n        let firstLine = value;\n        if (firstLF !== -1) {\n            firstLine = value.substring(0, firstLF);\n        }\n        return doCreateModel(modelService, value, languageService.createByFilepathOrFirstLine(uri || null, firstLine), uri);\n    }\n    return doCreateModel(modelService, value, languageService.createById(languageId), uri);\n}\n/**\n * @internal\n */\nfunction doCreateModel(modelService, value, languageSelection, uri) {\n    return modelService.createModel(value, languageSelection, uri);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/browser/standaloneCodeEditorService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { windowOpenNoOpener } from '../../../base/browser/dom.js';\nimport { Schemas } from '../../../base/common/network.js';\nimport { AbstractCodeEditorService } from '../../browser/services/abstractCodeEditorService.js';\nimport { ICodeEditorService } from '../../browser/services/codeEditorService.js';\nimport { IContextKeyService } from '../../../platform/contextkey/common/contextkey.js';\nimport { registerSingleton } from '../../../platform/instantiation/common/extensions.js';\nimport { IThemeService } from '../../../platform/theme/common/themeService.js';\nlet StandaloneCodeEditorService = class StandaloneCodeEditorService extends AbstractCodeEditorService {\n    constructor(contextKeyService, themeService) {\n        super(themeService);\n        this._register(this.onCodeEditorAdd(() => this._checkContextKey()));\n        this._register(this.onCodeEditorRemove(() => this._checkContextKey()));\n        this._editorIsOpen = contextKeyService.createKey('editorIsOpen', false);\n        this._activeCodeEditor = null;\n        this._register(this.registerCodeEditorOpenHandler(async (input, source, sideBySide) => {\n            if (!source) {\n                return null;\n            }\n            return this.doOpenEditor(source, input);\n        }));\n    }\n    _checkContextKey() {\n        let hasCodeEditor = false;\n        for (const editor of this.listCodeEditors()) {\n            if (!editor.isSimpleWidget) {\n                hasCodeEditor = true;\n                break;\n            }\n        }\n        this._editorIsOpen.set(hasCodeEditor);\n    }\n    setActiveCodeEditor(activeCodeEditor) {\n        this._activeCodeEditor = activeCodeEditor;\n    }\n    getActiveCodeEditor() {\n        return this._activeCodeEditor;\n    }\n    doOpenEditor(editor, input) {\n        const model = this.findModel(editor, input.resource);\n        if (!model) {\n            if (input.resource) {\n                const schema = input.resource.scheme;\n                if (schema === Schemas.http || schema === Schemas.https) {\n                    // This is a fully qualified http or https URL\n                    windowOpenNoOpener(input.resource.toString());\n                    return editor;\n                }\n            }\n            return null;\n        }\n        const selection = (input.options ? input.options.selection : null);\n        if (selection) {\n            if (typeof selection.endLineNumber === 'number' && typeof selection.endColumn === 'number') {\n                editor.setSelection(selection);\n                editor.revealRangeInCenter(selection, 1 /* ScrollType.Immediate */);\n            }\n            else {\n                const pos = {\n                    lineNumber: selection.startLineNumber,\n                    column: selection.startColumn\n                };\n                editor.setPosition(pos);\n                editor.revealPositionInCenter(pos, 1 /* ScrollType.Immediate */);\n            }\n        }\n        return editor;\n    }\n    findModel(editor, resource) {\n        const model = editor.getModel();\n        if (model && model.uri.toString() !== resource.toString()) {\n            return null;\n        }\n        return model;\n    }\n};\nStandaloneCodeEditorService = __decorate([\n    __param(0, IContextKeyService),\n    __param(1, IThemeService)\n], StandaloneCodeEditorService);\nexport { StandaloneCodeEditorService };\nregisterSingleton(ICodeEditorService, StandaloneCodeEditorService, 0 /* InstantiationType.Eager */);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/browser/standaloneEditor.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { mainWindow } from '../../../base/browser/window.js';\nimport { Disposable, DisposableStore } from '../../../base/common/lifecycle.js';\nimport { splitLines } from '../../../base/common/strings.js';\nimport { URI } from '../../../base/common/uri.js';\nimport './standalone-tokens.css';\nimport { FontMeasurements } from '../../browser/config/fontMeasurements.js';\nimport { EditorCommand } from '../../browser/editorExtensions.js';\nimport { ICodeEditorService } from '../../browser/services/codeEditorService.js';\nimport { createWebWorker as actualCreateWebWorker } from '../../browser/services/webWorker.js';\nimport { ApplyUpdateResult, ConfigurationChangedEvent, EditorOptions } from '../../common/config/editorOptions.js';\nimport { EditorZoom } from '../../common/config/editorZoom.js';\nimport { BareFontInfo, FontInfo } from '../../common/config/fontInfo.js';\nimport { EditorType } from '../../common/editorCommon.js';\nimport * as languages from '../../common/languages.js';\nimport { ILanguageService } from '../../common/languages/language.js';\nimport { ILanguageConfigurationService } from '../../common/languages/languageConfigurationRegistry.js';\nimport { PLAINTEXT_LANGUAGE_ID } from '../../common/languages/modesRegistry.js';\nimport { NullState, nullTokenize } from '../../common/languages/nullTokenize.js';\nimport { FindMatch, TextModelResolvedOptions } from '../../common/model.js';\nimport { IModelService } from '../../common/services/model.js';\nimport * as standaloneEnums from '../../common/standalone/standaloneEnums.js';\nimport { Colorizer } from './colorizer.js';\nimport { StandaloneDiffEditor2, StandaloneEditor, createTextModel } from './standaloneCodeEditor.js';\nimport { StandaloneKeybindingService, StandaloneServices } from './standaloneServices.js';\nimport { IStandaloneThemeService } from '../common/standaloneTheme.js';\nimport { MenuId, MenuRegistry } from '../../../platform/actions/common/actions.js';\nimport { CommandsRegistry } from '../../../platform/commands/common/commands.js';\nimport { ContextKeyExpr } from '../../../platform/contextkey/common/contextkey.js';\nimport { IKeybindingService } from '../../../platform/keybinding/common/keybinding.js';\nimport { IMarkerService } from '../../../platform/markers/common/markers.js';\nimport { IOpenerService } from '../../../platform/opener/common/opener.js';\nimport { MultiDiffEditorWidget } from '../../browser/widget/multiDiffEditor/multiDiffEditorWidget.js';\n/**\n * Create a new editor under `domElement`.\n * `domElement` should be empty (not contain other dom nodes).\n * The editor will read the size of `domElement`.\n */\nexport function create(domElement, options, override) {\n    const instantiationService = StandaloneServices.initialize(override || {});\n    return instantiationService.createInstance(StandaloneEditor, domElement, options);\n}\n/**\n * Emitted when an editor is created.\n * Creating a diff editor might cause this listener to be invoked with the two editors.\n * @event\n */\nexport function onDidCreateEditor(listener) {\n    const codeEditorService = StandaloneServices.get(ICodeEditorService);\n    return codeEditorService.onCodeEditorAdd((editor) => {\n        listener(editor);\n    });\n}\n/**\n * Emitted when an diff editor is created.\n * @event\n */\nexport function onDidCreateDiffEditor(listener) {\n    const codeEditorService = StandaloneServices.get(ICodeEditorService);\n    return codeEditorService.onDiffEditorAdd((editor) => {\n        listener(editor);\n    });\n}\n/**\n * Get all the created editors.\n */\nexport function getEditors() {\n    const codeEditorService = StandaloneServices.get(ICodeEditorService);\n    return codeEditorService.listCodeEditors();\n}\n/**\n * Get all the created diff editors.\n */\nexport function getDiffEditors() {\n    const codeEditorService = StandaloneServices.get(ICodeEditorService);\n    return codeEditorService.listDiffEditors();\n}\n/**\n * Create a new diff editor under `domElement`.\n * `domElement` should be empty (not contain other dom nodes).\n * The editor will read the size of `domElement`.\n */\nexport function createDiffEditor(domElement, options, override) {\n    const instantiationService = StandaloneServices.initialize(override || {});\n    return instantiationService.createInstance(StandaloneDiffEditor2, domElement, options);\n}\nexport function createMultiFileDiffEditor(domElement, override) {\n    const instantiationService = StandaloneServices.initialize(override || {});\n    return new MultiDiffEditorWidget(domElement, {}, instantiationService);\n}\n/**\n * Add a command.\n */\nexport function addCommand(descriptor) {\n    if ((typeof descriptor.id !== 'string') || (typeof descriptor.run !== 'function')) {\n        throw new Error('Invalid command descriptor, `id` and `run` are required properties!');\n    }\n    return CommandsRegistry.registerCommand(descriptor.id, descriptor.run);\n}\n/**\n * Add an action to all editors.\n */\nexport function addEditorAction(descriptor) {\n    if ((typeof descriptor.id !== 'string') || (typeof descriptor.label !== 'string') || (typeof descriptor.run !== 'function')) {\n        throw new Error('Invalid action descriptor, `id`, `label` and `run` are required properties!');\n    }\n    const precondition = ContextKeyExpr.deserialize(descriptor.precondition);\n    const run = (accessor, ...args) => {\n        return EditorCommand.runEditorCommand(accessor, args, precondition, (accessor, editor, args) => Promise.resolve(descriptor.run(editor, ...args)));\n    };\n    const toDispose = new DisposableStore();\n    // Register the command\n    toDispose.add(CommandsRegistry.registerCommand(descriptor.id, run));\n    // Register the context menu item\n    if (descriptor.contextMenuGroupId) {\n        const menuItem = {\n            command: {\n                id: descriptor.id,\n                title: descriptor.label\n            },\n            when: precondition,\n            group: descriptor.contextMenuGroupId,\n            order: descriptor.contextMenuOrder || 0\n        };\n        toDispose.add(MenuRegistry.appendMenuItem(MenuId.EditorContext, menuItem));\n    }\n    // Register the keybindings\n    if (Array.isArray(descriptor.keybindings)) {\n        const keybindingService = StandaloneServices.get(IKeybindingService);\n        if (!(keybindingService instanceof StandaloneKeybindingService)) {\n            console.warn('Cannot add keybinding because the editor is configured with an unrecognized KeybindingService');\n        }\n        else {\n            const keybindingsWhen = ContextKeyExpr.and(precondition, ContextKeyExpr.deserialize(descriptor.keybindingContext));\n            toDispose.add(keybindingService.addDynamicKeybindings(descriptor.keybindings.map((keybinding) => {\n                return {\n                    keybinding,\n                    command: descriptor.id,\n                    when: keybindingsWhen\n                };\n            })));\n        }\n    }\n    return toDispose;\n}\n/**\n * Add a keybinding rule.\n */\nexport function addKeybindingRule(rule) {\n    return addKeybindingRules([rule]);\n}\n/**\n * Add keybinding rules.\n */\nexport function addKeybindingRules(rules) {\n    const keybindingService = StandaloneServices.get(IKeybindingService);\n    if (!(keybindingService instanceof StandaloneKeybindingService)) {\n        console.warn('Cannot add keybinding because the editor is configured with an unrecognized KeybindingService');\n        return Disposable.None;\n    }\n    return keybindingService.addDynamicKeybindings(rules.map((rule) => {\n        return {\n            keybinding: rule.keybinding,\n            command: rule.command,\n            commandArgs: rule.commandArgs,\n            when: ContextKeyExpr.deserialize(rule.when),\n        };\n    }));\n}\n/**\n * Create a new editor model.\n * You can specify the language that should be set for this model or let the language be inferred from the `uri`.\n */\nexport function createModel(value, language, uri) {\n    const languageService = StandaloneServices.get(ILanguageService);\n    const languageId = languageService.getLanguageIdByMimeType(language) || language;\n    return createTextModel(StandaloneServices.get(IModelService), languageService, value, languageId, uri);\n}\n/**\n * Change the language for a model.\n */\nexport function setModelLanguage(model, mimeTypeOrLanguageId) {\n    const languageService = StandaloneServices.get(ILanguageService);\n    const languageId = languageService.getLanguageIdByMimeType(mimeTypeOrLanguageId) || mimeTypeOrLanguageId || PLAINTEXT_LANGUAGE_ID;\n    model.setLanguage(languageService.createById(languageId));\n}\n/**\n * Set the markers for a model.\n */\nexport function setModelMarkers(model, owner, markers) {\n    if (model) {\n        const markerService = StandaloneServices.get(IMarkerService);\n        markerService.changeOne(owner, model.uri, markers);\n    }\n}\n/**\n * Remove all markers of an owner.\n */\nexport function removeAllMarkers(owner) {\n    const markerService = StandaloneServices.get(IMarkerService);\n    markerService.changeAll(owner, []);\n}\n/**\n * Get markers for owner and/or resource\n *\n * @returns list of markers\n */\nexport function getModelMarkers(filter) {\n    const markerService = StandaloneServices.get(IMarkerService);\n    return markerService.read(filter);\n}\n/**\n * Emitted when markers change for a model.\n * @event\n */\nexport function onDidChangeMarkers(listener) {\n    const markerService = StandaloneServices.get(IMarkerService);\n    return markerService.onMarkerChanged(listener);\n}\n/**\n * Get the model that has `uri` if it exists.\n */\nexport function getModel(uri) {\n    const modelService = StandaloneServices.get(IModelService);\n    return modelService.getModel(uri);\n}\n/**\n * Get all the created models.\n */\nexport function getModels() {\n    const modelService = StandaloneServices.get(IModelService);\n    return modelService.getModels();\n}\n/**\n * Emitted when a model is created.\n * @event\n */\nexport function onDidCreateModel(listener) {\n    const modelService = StandaloneServices.get(IModelService);\n    return modelService.onModelAdded(listener);\n}\n/**\n * Emitted right before a model is disposed.\n * @event\n */\nexport function onWillDisposeModel(listener) {\n    const modelService = StandaloneServices.get(IModelService);\n    return modelService.onModelRemoved(listener);\n}\n/**\n * Emitted when a different language is set to a model.\n * @event\n */\nexport function onDidChangeModelLanguage(listener) {\n    const modelService = StandaloneServices.get(IModelService);\n    return modelService.onModelLanguageChanged((e) => {\n        listener({\n            model: e.model,\n            oldLanguage: e.oldLanguageId\n        });\n    });\n}\n/**\n * Create a new web worker that has model syncing capabilities built in.\n * Specify an AMD module to load that will `create` an object that will be proxied.\n */\nexport function createWebWorker(opts) {\n    return actualCreateWebWorker(StandaloneServices.get(IModelService), StandaloneServices.get(ILanguageConfigurationService), opts);\n}\n/**\n * Colorize the contents of `domNode` using attribute `data-lang`.\n */\nexport function colorizeElement(domNode, options) {\n    const languageService = StandaloneServices.get(ILanguageService);\n    const themeService = StandaloneServices.get(IStandaloneThemeService);\n    return Colorizer.colorizeElement(themeService, languageService, domNode, options).then(() => {\n        themeService.registerEditorContainer(domNode);\n    });\n}\n/**\n * Colorize `text` using language `languageId`.\n */\nexport function colorize(text, languageId, options) {\n    const languageService = StandaloneServices.get(ILanguageService);\n    const themeService = StandaloneServices.get(IStandaloneThemeService);\n    themeService.registerEditorContainer(mainWindow.document.body);\n    return Colorizer.colorize(languageService, text, languageId, options);\n}\n/**\n * Colorize a line in a model.\n */\nexport function colorizeModelLine(model, lineNumber, tabSize = 4) {\n    const themeService = StandaloneServices.get(IStandaloneThemeService);\n    themeService.registerEditorContainer(mainWindow.document.body);\n    return Colorizer.colorizeModelLine(model, lineNumber, tabSize);\n}\n/**\n * @internal\n */\nfunction getSafeTokenizationSupport(language) {\n    const tokenizationSupport = languages.TokenizationRegistry.get(language);\n    if (tokenizationSupport) {\n        return tokenizationSupport;\n    }\n    return {\n        getInitialState: () => NullState,\n        tokenize: (line, hasEOL, state) => nullTokenize(language, state)\n    };\n}\n/**\n * Tokenize `text` using language `languageId`\n */\nexport function tokenize(text, languageId) {\n    // Needed in order to get the mode registered for subsequent look-ups\n    languages.TokenizationRegistry.getOrCreate(languageId);\n    const tokenizationSupport = getSafeTokenizationSupport(languageId);\n    const lines = splitLines(text);\n    const result = [];\n    let state = tokenizationSupport.getInitialState();\n    for (let i = 0, len = lines.length; i < len; i++) {\n        const line = lines[i];\n        const tokenizationResult = tokenizationSupport.tokenize(line, true, state);\n        result[i] = tokenizationResult.tokens;\n        state = tokenizationResult.endState;\n    }\n    return result;\n}\n/**\n * Define a new theme or update an existing theme.\n */\nexport function defineTheme(themeName, themeData) {\n    const standaloneThemeService = StandaloneServices.get(IStandaloneThemeService);\n    standaloneThemeService.defineTheme(themeName, themeData);\n}\n/**\n * Switches to a theme.\n */\nexport function setTheme(themeName) {\n    const standaloneThemeService = StandaloneServices.get(IStandaloneThemeService);\n    standaloneThemeService.setTheme(themeName);\n}\n/**\n * Clears all cached font measurements and triggers re-measurement.\n */\nexport function remeasureFonts() {\n    FontMeasurements.clearAllFontInfos();\n}\n/**\n * Register a command.\n */\nexport function registerCommand(id, handler) {\n    return CommandsRegistry.registerCommand({ id, handler });\n}\n/**\n * Registers a handler that is called when a link is opened in any editor. The handler callback should return `true` if the link was handled and `false` otherwise.\n * The handler that was registered last will be called first when a link is opened.\n *\n * Returns a disposable that can unregister the opener again.\n */\nexport function registerLinkOpener(opener) {\n    const openerService = StandaloneServices.get(IOpenerService);\n    return openerService.registerOpener({\n        async open(resource) {\n            if (typeof resource === 'string') {\n                resource = URI.parse(resource);\n            }\n            return opener.open(resource);\n        }\n    });\n}\n/**\n * Registers a handler that is called when a resource other than the current model should be opened in the editor (e.g. \"go to definition\").\n * The handler callback should return `true` if the request was handled and `false` otherwise.\n *\n * Returns a disposable that can unregister the opener again.\n *\n * If no handler is registered the default behavior is to do nothing for models other than the currently attached one.\n */\nexport function registerEditorOpener(opener) {\n    const codeEditorService = StandaloneServices.get(ICodeEditorService);\n    return codeEditorService.registerCodeEditorOpenHandler(async (input, source, sideBySide) => {\n        var _a;\n        if (!source) {\n            return null;\n        }\n        const selection = (_a = input.options) === null || _a === void 0 ? void 0 : _a.selection;\n        let selectionOrPosition;\n        if (selection && typeof selection.endLineNumber === 'number' && typeof selection.endColumn === 'number') {\n            selectionOrPosition = selection;\n        }\n        else if (selection) {\n            selectionOrPosition = { lineNumber: selection.startLineNumber, column: selection.startColumn };\n        }\n        if (await opener.openCodeEditor(source, input.resource, selectionOrPosition)) {\n            return source; // return source editor to indicate that this handler has successfully handled the opening\n        }\n        return null; // fallback to other registered handlers\n    });\n}\n/**\n * @internal\n */\nexport function createMonacoEditorAPI() {\n    return {\n        // methods\n        create: create,\n        getEditors: getEditors,\n        getDiffEditors: getDiffEditors,\n        onDidCreateEditor: onDidCreateEditor,\n        onDidCreateDiffEditor: onDidCreateDiffEditor,\n        createDiffEditor: createDiffEditor,\n        addCommand: addCommand,\n        addEditorAction: addEditorAction,\n        addKeybindingRule: addKeybindingRule,\n        addKeybindingRules: addKeybindingRules,\n        createModel: createModel,\n        setModelLanguage: setModelLanguage,\n        setModelMarkers: setModelMarkers,\n        getModelMarkers: getModelMarkers,\n        removeAllMarkers: removeAllMarkers,\n        onDidChangeMarkers: onDidChangeMarkers,\n        getModels: getModels,\n        getModel: getModel,\n        onDidCreateModel: onDidCreateModel,\n        onWillDisposeModel: onWillDisposeModel,\n        onDidChangeModelLanguage: onDidChangeModelLanguage,\n        createWebWorker: createWebWorker,\n        colorizeElement: colorizeElement,\n        colorize: colorize,\n        colorizeModelLine: colorizeModelLine,\n        tokenize: tokenize,\n        defineTheme: defineTheme,\n        setTheme: setTheme,\n        remeasureFonts: remeasureFonts,\n        registerCommand: registerCommand,\n        registerLinkOpener: registerLinkOpener,\n        registerEditorOpener: registerEditorOpener,\n        // enums\n        AccessibilitySupport: standaloneEnums.AccessibilitySupport,\n        ContentWidgetPositionPreference: standaloneEnums.ContentWidgetPositionPreference,\n        CursorChangeReason: standaloneEnums.CursorChangeReason,\n        DefaultEndOfLine: standaloneEnums.DefaultEndOfLine,\n        EditorAutoIndentStrategy: standaloneEnums.EditorAutoIndentStrategy,\n        EditorOption: standaloneEnums.EditorOption,\n        EndOfLinePreference: standaloneEnums.EndOfLinePreference,\n        EndOfLineSequence: standaloneEnums.EndOfLineSequence,\n        MinimapPosition: standaloneEnums.MinimapPosition,\n        MinimapSectionHeaderStyle: standaloneEnums.MinimapSectionHeaderStyle,\n        MouseTargetType: standaloneEnums.MouseTargetType,\n        OverlayWidgetPositionPreference: standaloneEnums.OverlayWidgetPositionPreference,\n        OverviewRulerLane: standaloneEnums.OverviewRulerLane,\n        GlyphMarginLane: standaloneEnums.GlyphMarginLane,\n        RenderLineNumbersType: standaloneEnums.RenderLineNumbersType,\n        RenderMinimap: standaloneEnums.RenderMinimap,\n        ScrollbarVisibility: standaloneEnums.ScrollbarVisibility,\n        ScrollType: standaloneEnums.ScrollType,\n        TextEditorCursorBlinkingStyle: standaloneEnums.TextEditorCursorBlinkingStyle,\n        TextEditorCursorStyle: standaloneEnums.TextEditorCursorStyle,\n        TrackedRangeStickiness: standaloneEnums.TrackedRangeStickiness,\n        WrappingIndent: standaloneEnums.WrappingIndent,\n        InjectedTextCursorStops: standaloneEnums.InjectedTextCursorStops,\n        PositionAffinity: standaloneEnums.PositionAffinity,\n        ShowLightbulbIconMode: standaloneEnums.ShowLightbulbIconMode,\n        // classes\n        ConfigurationChangedEvent: ConfigurationChangedEvent,\n        BareFontInfo: BareFontInfo,\n        FontInfo: FontInfo,\n        TextModelResolvedOptions: TextModelResolvedOptions,\n        FindMatch: FindMatch,\n        ApplyUpdateResult: ApplyUpdateResult,\n        EditorZoom: EditorZoom,\n        createMultiFileDiffEditor: createMultiFileDiffEditor,\n        // vars\n        EditorType: EditorType,\n        EditorOptions: EditorOptions\n    };\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/browser/standaloneLanguages.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Color } from '../../../base/common/color.js';\nimport { Range } from '../../common/core/range.js';\nimport * as languages from '../../common/languages.js';\nimport { ILanguageService } from '../../common/languages/language.js';\nimport { ILanguageConfigurationService } from '../../common/languages/languageConfigurationRegistry.js';\nimport { ModesRegistry } from '../../common/languages/modesRegistry.js';\nimport { ILanguageFeaturesService } from '../../common/services/languageFeatures.js';\nimport * as standaloneEnums from '../../common/standalone/standaloneEnums.js';\nimport { StandaloneServices } from './standaloneServices.js';\nimport { compile } from '../common/monarch/monarchCompile.js';\nimport { MonarchTokenizer } from '../common/monarch/monarchLexer.js';\nimport { IStandaloneThemeService } from '../common/standaloneTheme.js';\nimport { IConfigurationService } from '../../../platform/configuration/common/configuration.js';\nimport { IMarkerService } from '../../../platform/markers/common/markers.js';\n/**\n * Register information about a new language.\n */\nexport function register(language) {\n    // Intentionally using the `ModesRegistry` here to avoid\n    // instantiating services too quickly in the standalone editor.\n    ModesRegistry.registerLanguage(language);\n}\n/**\n * Get the information of all the registered languages.\n */\nexport function getLanguages() {\n    let result = [];\n    result = result.concat(ModesRegistry.getLanguages());\n    return result;\n}\nexport function getEncodedLanguageId(languageId) {\n    const languageService = StandaloneServices.get(ILanguageService);\n    return languageService.languageIdCodec.encodeLanguageId(languageId);\n}\n/**\n * An event emitted when a language is associated for the first time with a text model.\n * @event\n */\nexport function onLanguage(languageId, callback) {\n    return StandaloneServices.withServices(() => {\n        const languageService = StandaloneServices.get(ILanguageService);\n        const disposable = languageService.onDidRequestRichLanguageFeatures((encounteredLanguageId) => {\n            if (encounteredLanguageId === languageId) {\n                // stop listening\n                disposable.dispose();\n                // invoke actual listener\n                callback();\n            }\n        });\n        return disposable;\n    });\n}\n/**\n * An event emitted when a language is associated for the first time with a text model or\n * when a language is encountered during the tokenization of another language.\n * @event\n */\nexport function onLanguageEncountered(languageId, callback) {\n    return StandaloneServices.withServices(() => {\n        const languageService = StandaloneServices.get(ILanguageService);\n        const disposable = languageService.onDidRequestBasicLanguageFeatures((encounteredLanguageId) => {\n            if (encounteredLanguageId === languageId) {\n                // stop listening\n                disposable.dispose();\n                // invoke actual listener\n                callback();\n            }\n        });\n        return disposable;\n    });\n}\n/**\n * Set the editing configuration for a language.\n */\nexport function setLanguageConfiguration(languageId, configuration) {\n    const languageService = StandaloneServices.get(ILanguageService);\n    if (!languageService.isRegisteredLanguageId(languageId)) {\n        throw new Error(`Cannot set configuration for unknown language ${languageId}`);\n    }\n    const languageConfigurationService = StandaloneServices.get(ILanguageConfigurationService);\n    return languageConfigurationService.register(languageId, configuration, 100);\n}\n/**\n * @internal\n */\nexport class EncodedTokenizationSupportAdapter {\n    constructor(languageId, actual) {\n        this._languageId = languageId;\n        this._actual = actual;\n    }\n    dispose() {\n        // NOOP\n    }\n    getInitialState() {\n        return this._actual.getInitialState();\n    }\n    tokenize(line, hasEOL, state) {\n        if (typeof this._actual.tokenize === 'function') {\n            return TokenizationSupportAdapter.adaptTokenize(this._languageId, this._actual, line, state);\n        }\n        throw new Error('Not supported!');\n    }\n    tokenizeEncoded(line, hasEOL, state) {\n        const result = this._actual.tokenizeEncoded(line, state);\n        return new languages.EncodedTokenizationResult(result.tokens, result.endState);\n    }\n}\n/**\n * @internal\n */\nexport class TokenizationSupportAdapter {\n    constructor(_languageId, _actual, _languageService, _standaloneThemeService) {\n        this._languageId = _languageId;\n        this._actual = _actual;\n        this._languageService = _languageService;\n        this._standaloneThemeService = _standaloneThemeService;\n    }\n    dispose() {\n        // NOOP\n    }\n    getInitialState() {\n        return this._actual.getInitialState();\n    }\n    static _toClassicTokens(tokens, language) {\n        const result = [];\n        let previousStartIndex = 0;\n        for (let i = 0, len = tokens.length; i < len; i++) {\n            const t = tokens[i];\n            let startIndex = t.startIndex;\n            // Prevent issues stemming from a buggy external tokenizer.\n            if (i === 0) {\n                // Force first token to start at first index!\n                startIndex = 0;\n            }\n            else if (startIndex < previousStartIndex) {\n                // Force tokens to be after one another!\n                startIndex = previousStartIndex;\n            }\n            result[i] = new languages.Token(startIndex, t.scopes, language);\n            previousStartIndex = startIndex;\n        }\n        return result;\n    }\n    static adaptTokenize(language, actual, line, state) {\n        const actualResult = actual.tokenize(line, state);\n        const tokens = TokenizationSupportAdapter._toClassicTokens(actualResult.tokens, language);\n        let endState;\n        // try to save an object if possible\n        if (actualResult.endState.equals(state)) {\n            endState = state;\n        }\n        else {\n            endState = actualResult.endState;\n        }\n        return new languages.TokenizationResult(tokens, endState);\n    }\n    tokenize(line, hasEOL, state) {\n        return TokenizationSupportAdapter.adaptTokenize(this._languageId, this._actual, line, state);\n    }\n    _toBinaryTokens(languageIdCodec, tokens) {\n        const languageId = languageIdCodec.encodeLanguageId(this._languageId);\n        const tokenTheme = this._standaloneThemeService.getColorTheme().tokenTheme;\n        const result = [];\n        let resultLen = 0;\n        let previousStartIndex = 0;\n        for (let i = 0, len = tokens.length; i < len; i++) {\n            const t = tokens[i];\n            const metadata = tokenTheme.match(languageId, t.scopes) | 1024 /* MetadataConsts.BALANCED_BRACKETS_MASK */;\n            if (resultLen > 0 && result[resultLen - 1] === metadata) {\n                // same metadata\n                continue;\n            }\n            let startIndex = t.startIndex;\n            // Prevent issues stemming from a buggy external tokenizer.\n            if (i === 0) {\n                // Force first token to start at first index!\n                startIndex = 0;\n            }\n            else if (startIndex < previousStartIndex) {\n                // Force tokens to be after one another!\n                startIndex = previousStartIndex;\n            }\n            result[resultLen++] = startIndex;\n            result[resultLen++] = metadata;\n            previousStartIndex = startIndex;\n        }\n        const actualResult = new Uint32Array(resultLen);\n        for (let i = 0; i < resultLen; i++) {\n            actualResult[i] = result[i];\n        }\n        return actualResult;\n    }\n    tokenizeEncoded(line, hasEOL, state) {\n        const actualResult = this._actual.tokenize(line, state);\n        const tokens = this._toBinaryTokens(this._languageService.languageIdCodec, actualResult.tokens);\n        let endState;\n        // try to save an object if possible\n        if (actualResult.endState.equals(state)) {\n            endState = state;\n        }\n        else {\n            endState = actualResult.endState;\n        }\n        return new languages.EncodedTokenizationResult(tokens, endState);\n    }\n}\nfunction isATokensProvider(provider) {\n    return (typeof provider.getInitialState === 'function');\n}\nfunction isEncodedTokensProvider(provider) {\n    return 'tokenizeEncoded' in provider;\n}\nfunction isThenable(obj) {\n    return obj && typeof obj.then === 'function';\n}\n/**\n * Change the color map that is used for token colors.\n * Supported formats (hex): #RRGGBB, $RRGGBBAA, #RGB, #RGBA\n */\nexport function setColorMap(colorMap) {\n    const standaloneThemeService = StandaloneServices.get(IStandaloneThemeService);\n    if (colorMap) {\n        const result = [null];\n        for (let i = 1, len = colorMap.length; i < len; i++) {\n            result[i] = Color.fromHex(colorMap[i]);\n        }\n        standaloneThemeService.setColorMapOverride(result);\n    }\n    else {\n        standaloneThemeService.setColorMapOverride(null);\n    }\n}\n/**\n * @internal\n */\nfunction createTokenizationSupportAdapter(languageId, provider) {\n    if (isEncodedTokensProvider(provider)) {\n        return new EncodedTokenizationSupportAdapter(languageId, provider);\n    }\n    else {\n        return new TokenizationSupportAdapter(languageId, provider, StandaloneServices.get(ILanguageService), StandaloneServices.get(IStandaloneThemeService));\n    }\n}\n/**\n * Register a tokens provider factory for a language. This tokenizer will be exclusive with a tokenizer\n * set using `setTokensProvider` or one created using `setMonarchTokensProvider`, but will work together\n * with a tokens provider set using `registerDocumentSemanticTokensProvider` or `registerDocumentRangeSemanticTokensProvider`.\n */\nexport function registerTokensProviderFactory(languageId, factory) {\n    const adaptedFactory = new languages.LazyTokenizationSupport(async () => {\n        const result = await Promise.resolve(factory.create());\n        if (!result) {\n            return null;\n        }\n        if (isATokensProvider(result)) {\n            return createTokenizationSupportAdapter(languageId, result);\n        }\n        return new MonarchTokenizer(StandaloneServices.get(ILanguageService), StandaloneServices.get(IStandaloneThemeService), languageId, compile(languageId, result), StandaloneServices.get(IConfigurationService));\n    });\n    return languages.TokenizationRegistry.registerFactory(languageId, adaptedFactory);\n}\n/**\n * Set the tokens provider for a language (manual implementation). This tokenizer will be exclusive\n * with a tokenizer created using `setMonarchTokensProvider`, or with `registerTokensProviderFactory`,\n * but will work together with a tokens provider set using `registerDocumentSemanticTokensProvider`\n * or `registerDocumentRangeSemanticTokensProvider`.\n */\nexport function setTokensProvider(languageId, provider) {\n    const languageService = StandaloneServices.get(ILanguageService);\n    if (!languageService.isRegisteredLanguageId(languageId)) {\n        throw new Error(`Cannot set tokens provider for unknown language ${languageId}`);\n    }\n    if (isThenable(provider)) {\n        return registerTokensProviderFactory(languageId, { create: () => provider });\n    }\n    return languages.TokenizationRegistry.register(languageId, createTokenizationSupportAdapter(languageId, provider));\n}\n/**\n * Set the tokens provider for a language (monarch implementation). This tokenizer will be exclusive\n * with a tokenizer set using `setTokensProvider`, or with `registerTokensProviderFactory`, but will\n * work together with a tokens provider set using `registerDocumentSemanticTokensProvider` or\n * `registerDocumentRangeSemanticTokensProvider`.\n */\nexport function setMonarchTokensProvider(languageId, languageDef) {\n    const create = (languageDef) => {\n        return new MonarchTokenizer(StandaloneServices.get(ILanguageService), StandaloneServices.get(IStandaloneThemeService), languageId, compile(languageId, languageDef), StandaloneServices.get(IConfigurationService));\n    };\n    if (isThenable(languageDef)) {\n        return registerTokensProviderFactory(languageId, { create: () => languageDef });\n    }\n    return languages.TokenizationRegistry.register(languageId, create(languageDef));\n}\n/**\n * Register a reference provider (used by e.g. reference search).\n */\nexport function registerReferenceProvider(languageSelector, provider) {\n    const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n    return languageFeaturesService.referenceProvider.register(languageSelector, provider);\n}\n/**\n * Register a rename provider (used by e.g. rename symbol).\n */\nexport function registerRenameProvider(languageSelector, provider) {\n    const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n    return languageFeaturesService.renameProvider.register(languageSelector, provider);\n}\n/**\n * Register a new symbol-name provider (e.g., when a symbol is being renamed, show new possible symbol-names)\n */\nexport function registerNewSymbolNameProvider(languageSelector, provider) {\n    const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n    return languageFeaturesService.newSymbolNamesProvider.register(languageSelector, provider);\n}\n/**\n * Register a signature help provider (used by e.g. parameter hints).\n */\nexport function registerSignatureHelpProvider(languageSelector, provider) {\n    const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n    return languageFeaturesService.signatureHelpProvider.register(languageSelector, provider);\n}\n/**\n * Register a hover provider (used by e.g. editor hover).\n */\nexport function registerHoverProvider(languageSelector, provider) {\n    const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n    return languageFeaturesService.hoverProvider.register(languageSelector, {\n        provideHover: async (model, position, token, context) => {\n            const word = model.getWordAtPosition(position);\n            return Promise.resolve(provider.provideHover(model, position, token, context)).then((value) => {\n                if (!value) {\n                    return undefined;\n                }\n                if (!value.range && word) {\n                    value.range = new Range(position.lineNumber, word.startColumn, position.lineNumber, word.endColumn);\n                }\n                if (!value.range) {\n                    value.range = new Range(position.lineNumber, position.column, position.lineNumber, position.column);\n                }\n                return value;\n            });\n        }\n    });\n}\n/**\n * Register a document symbol provider (used by e.g. outline).\n */\nexport function registerDocumentSymbolProvider(languageSelector, provider) {\n    const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n    return languageFeaturesService.documentSymbolProvider.register(languageSelector, provider);\n}\n/**\n * Register a document highlight provider (used by e.g. highlight occurrences).\n */\nexport function registerDocumentHighlightProvider(languageSelector, provider) {\n    const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n    return languageFeaturesService.documentHighlightProvider.register(languageSelector, provider);\n}\n/**\n * Register an linked editing range provider.\n */\nexport function registerLinkedEditingRangeProvider(languageSelector, provider) {\n    const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n    return languageFeaturesService.linkedEditingRangeProvider.register(languageSelector, provider);\n}\n/**\n * Register a definition provider (used by e.g. go to definition).\n */\nexport function registerDefinitionProvider(languageSelector, provider) {\n    const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n    return languageFeaturesService.definitionProvider.register(languageSelector, provider);\n}\n/**\n * Register a implementation provider (used by e.g. go to implementation).\n */\nexport function registerImplementationProvider(languageSelector, provider) {\n    const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n    return languageFeaturesService.implementationProvider.register(languageSelector, provider);\n}\n/**\n * Register a type definition provider (used by e.g. go to type definition).\n */\nexport function registerTypeDefinitionProvider(languageSelector, provider) {\n    const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n    return languageFeaturesService.typeDefinitionProvider.register(languageSelector, provider);\n}\n/**\n * Register a code lens provider (used by e.g. inline code lenses).\n */\nexport function registerCodeLensProvider(languageSelector, provider) {\n    const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n    return languageFeaturesService.codeLensProvider.register(languageSelector, provider);\n}\n/**\n * Register a code action provider (used by e.g. quick fix).\n */\nexport function registerCodeActionProvider(languageSelector, provider, metadata) {\n    const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n    return languageFeaturesService.codeActionProvider.register(languageSelector, {\n        providedCodeActionKinds: metadata === null || metadata === void 0 ? void 0 : metadata.providedCodeActionKinds,\n        documentation: metadata === null || metadata === void 0 ? void 0 : metadata.documentation,\n        provideCodeActions: (model, range, context, token) => {\n            const markerService = StandaloneServices.get(IMarkerService);\n            const markers = markerService.read({ resource: model.uri }).filter(m => {\n                return Range.areIntersectingOrTouching(m, range);\n            });\n            return provider.provideCodeActions(model, range, { markers, only: context.only, trigger: context.trigger }, token);\n        },\n        resolveCodeAction: provider.resolveCodeAction\n    });\n}\n/**\n * Register a formatter that can handle only entire models.\n */\nexport function registerDocumentFormattingEditProvider(languageSelector, provider) {\n    const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n    return languageFeaturesService.documentFormattingEditProvider.register(languageSelector, provider);\n}\n/**\n * Register a formatter that can handle a range inside a model.\n */\nexport function registerDocumentRangeFormattingEditProvider(languageSelector, provider) {\n    const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n    return languageFeaturesService.documentRangeFormattingEditProvider.register(languageSelector, provider);\n}\n/**\n * Register a formatter than can do formatting as the user types.\n */\nexport function registerOnTypeFormattingEditProvider(languageSelector, provider) {\n    const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n    return languageFeaturesService.onTypeFormattingEditProvider.register(languageSelector, provider);\n}\n/**\n * Register a link provider that can find links in text.\n */\nexport function registerLinkProvider(languageSelector, provider) {\n    const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n    return languageFeaturesService.linkProvider.register(languageSelector, provider);\n}\n/**\n * Register a completion item provider (use by e.g. suggestions).\n */\nexport function registerCompletionItemProvider(languageSelector, provider) {\n    const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n    return languageFeaturesService.completionProvider.register(languageSelector, provider);\n}\n/**\n * Register a document color provider (used by Color Picker, Color Decorator).\n */\nexport function registerColorProvider(languageSelector, provider) {\n    const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n    return languageFeaturesService.colorProvider.register(languageSelector, provider);\n}\n/**\n * Register a folding range provider\n */\nexport function registerFoldingRangeProvider(languageSelector, provider) {\n    const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n    return languageFeaturesService.foldingRangeProvider.register(languageSelector, provider);\n}\n/**\n * Register a declaration provider\n */\nexport function registerDeclarationProvider(languageSelector, provider) {\n    const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n    return languageFeaturesService.declarationProvider.register(languageSelector, provider);\n}\n/**\n * Register a selection range provider\n */\nexport function registerSelectionRangeProvider(languageSelector, provider) {\n    const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n    return languageFeaturesService.selectionRangeProvider.register(languageSelector, provider);\n}\n/**\n * Register a document semantic tokens provider. A semantic tokens provider will complement and enhance a\n * simple top-down tokenizer. Simple top-down tokenizers can be set either via `setMonarchTokensProvider`\n * or `setTokensProvider`.\n *\n * For the best user experience, register both a semantic tokens provider and a top-down tokenizer.\n */\nexport function registerDocumentSemanticTokensProvider(languageSelector, provider) {\n    const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n    return languageFeaturesService.documentSemanticTokensProvider.register(languageSelector, provider);\n}\n/**\n * Register a document range semantic tokens provider. A semantic tokens provider will complement and enhance a\n * simple top-down tokenizer. Simple top-down tokenizers can be set either via `setMonarchTokensProvider`\n * or `setTokensProvider`.\n *\n * For the best user experience, register both a semantic tokens provider and a top-down tokenizer.\n */\nexport function registerDocumentRangeSemanticTokensProvider(languageSelector, provider) {\n    const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n    return languageFeaturesService.documentRangeSemanticTokensProvider.register(languageSelector, provider);\n}\n/**\n * Register an inline completions provider.\n */\nexport function registerInlineCompletionsProvider(languageSelector, provider) {\n    const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n    return languageFeaturesService.inlineCompletionsProvider.register(languageSelector, provider);\n}\nexport function registerInlineEditProvider(languageSelector, provider) {\n    const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n    return languageFeaturesService.inlineEditProvider.register(languageSelector, provider);\n}\n/**\n * Register an inlay hints provider.\n */\nexport function registerInlayHintsProvider(languageSelector, provider) {\n    const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n    return languageFeaturesService.inlayHintsProvider.register(languageSelector, provider);\n}\n/**\n * @internal\n */\nexport function createMonacoLanguagesAPI() {\n    return {\n        register: register,\n        getLanguages: getLanguages,\n        onLanguage: onLanguage,\n        onLanguageEncountered: onLanguageEncountered,\n        getEncodedLanguageId: getEncodedLanguageId,\n        // provider methods\n        setLanguageConfiguration: setLanguageConfiguration,\n        setColorMap: setColorMap,\n        registerTokensProviderFactory: registerTokensProviderFactory,\n        setTokensProvider: setTokensProvider,\n        setMonarchTokensProvider: setMonarchTokensProvider,\n        registerReferenceProvider: registerReferenceProvider,\n        registerRenameProvider: registerRenameProvider,\n        registerNewSymbolNameProvider: registerNewSymbolNameProvider,\n        registerCompletionItemProvider: registerCompletionItemProvider,\n        registerSignatureHelpProvider: registerSignatureHelpProvider,\n        registerHoverProvider: registerHoverProvider,\n        registerDocumentSymbolProvider: registerDocumentSymbolProvider,\n        registerDocumentHighlightProvider: registerDocumentHighlightProvider,\n        registerLinkedEditingRangeProvider: registerLinkedEditingRangeProvider,\n        registerDefinitionProvider: registerDefinitionProvider,\n        registerImplementationProvider: registerImplementationProvider,\n        registerTypeDefinitionProvider: registerTypeDefinitionProvider,\n        registerCodeLensProvider: registerCodeLensProvider,\n        registerCodeActionProvider: registerCodeActionProvider,\n        registerDocumentFormattingEditProvider: registerDocumentFormattingEditProvider,\n        registerDocumentRangeFormattingEditProvider: registerDocumentRangeFormattingEditProvider,\n        registerOnTypeFormattingEditProvider: registerOnTypeFormattingEditProvider,\n        registerLinkProvider: registerLinkProvider,\n        registerColorProvider: registerColorProvider,\n        registerFoldingRangeProvider: registerFoldingRangeProvider,\n        registerDeclarationProvider: registerDeclarationProvider,\n        registerSelectionRangeProvider: registerSelectionRangeProvider,\n        registerDocumentSemanticTokensProvider: registerDocumentSemanticTokensProvider,\n        registerDocumentRangeSemanticTokensProvider: registerDocumentRangeSemanticTokensProvider,\n        registerInlineCompletionsProvider: registerInlineCompletionsProvider,\n        registerInlineEditProvider: registerInlineEditProvider,\n        registerInlayHintsProvider: registerInlayHintsProvider,\n        // enums\n        DocumentHighlightKind: standaloneEnums.DocumentHighlightKind,\n        CompletionItemKind: standaloneEnums.CompletionItemKind,\n        CompletionItemTag: standaloneEnums.CompletionItemTag,\n        CompletionItemInsertTextRule: standaloneEnums.CompletionItemInsertTextRule,\n        SymbolKind: standaloneEnums.SymbolKind,\n        SymbolTag: standaloneEnums.SymbolTag,\n        IndentAction: standaloneEnums.IndentAction,\n        CompletionTriggerKind: standaloneEnums.CompletionTriggerKind,\n        SignatureHelpTriggerKind: standaloneEnums.SignatureHelpTriggerKind,\n        InlayHintKind: standaloneEnums.InlayHintKind,\n        InlineCompletionTriggerKind: standaloneEnums.InlineCompletionTriggerKind,\n        InlineEditTriggerKind: standaloneEnums.InlineEditTriggerKind,\n        CodeActionTriggerType: standaloneEnums.CodeActionTriggerType,\n        NewSymbolNameTag: standaloneEnums.NewSymbolNameTag,\n        NewSymbolNameTriggerKind: standaloneEnums.NewSymbolNameTriggerKind,\n        PartialAcceptTriggerKind: standaloneEnums.PartialAcceptTriggerKind,\n        HoverVerbosityAction: standaloneEnums.HoverVerbosityAction,\n        // classes\n        FoldingRangeKind: languages.FoldingRangeKind,\n        SelectedSuggestionInfo: languages.SelectedSuggestionInfo,\n    };\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/browser/standaloneLayoutService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport * as dom from '../../../base/browser/dom.js';\nimport { mainWindow } from '../../../base/browser/window.js';\nimport { coalesce, firstOrDefault } from '../../../base/common/arrays.js';\nimport { Event } from '../../../base/common/event.js';\nimport { ICodeEditorService } from '../../browser/services/codeEditorService.js';\nimport { registerSingleton } from '../../../platform/instantiation/common/extensions.js';\nimport { ILayoutService } from '../../../platform/layout/browser/layoutService.js';\nlet StandaloneLayoutService = class StandaloneLayoutService {\n    get mainContainer() {\n        var _a, _b;\n        return (_b = (_a = firstOrDefault(this._codeEditorService.listCodeEditors())) === null || _a === void 0 ? void 0 : _a.getContainerDomNode()) !== null && _b !== void 0 ? _b : mainWindow.document.body;\n    }\n    get activeContainer() {\n        var _a, _b;\n        const activeCodeEditor = (_a = this._codeEditorService.getFocusedCodeEditor()) !== null && _a !== void 0 ? _a : this._codeEditorService.getActiveCodeEditor();\n        return (_b = activeCodeEditor === null || activeCodeEditor === void 0 ? void 0 : activeCodeEditor.getContainerDomNode()) !== null && _b !== void 0 ? _b : this.mainContainer;\n    }\n    get mainContainerDimension() {\n        return dom.getClientArea(this.mainContainer);\n    }\n    get activeContainerDimension() {\n        return dom.getClientArea(this.activeContainer);\n    }\n    get containers() {\n        return coalesce(this._codeEditorService.listCodeEditors().map(codeEditor => codeEditor.getContainerDomNode()));\n    }\n    getContainer() {\n        return this.activeContainer;\n    }\n    whenContainerStylesLoaded() { return undefined; }\n    focus() {\n        var _a;\n        (_a = this._codeEditorService.getFocusedCodeEditor()) === null || _a === void 0 ? void 0 : _a.focus();\n    }\n    constructor(_codeEditorService) {\n        this._codeEditorService = _codeEditorService;\n        this.onDidLayoutMainContainer = Event.None;\n        this.onDidLayoutActiveContainer = Event.None;\n        this.onDidLayoutContainer = Event.None;\n        this.onDidChangeActiveContainer = Event.None;\n        this.onDidAddContainer = Event.None;\n        this.mainContainerOffset = { top: 0, quickPickTop: 0 };\n        this.activeContainerOffset = { top: 0, quickPickTop: 0 };\n    }\n};\nStandaloneLayoutService = __decorate([\n    __param(0, ICodeEditorService)\n], StandaloneLayoutService);\nlet EditorScopedLayoutService = class EditorScopedLayoutService extends StandaloneLayoutService {\n    get mainContainer() {\n        return this._container;\n    }\n    constructor(_container, codeEditorService) {\n        super(codeEditorService);\n        this._container = _container;\n    }\n};\nEditorScopedLayoutService = __decorate([\n    __param(1, ICodeEditorService)\n], EditorScopedLayoutService);\nexport { EditorScopedLayoutService };\nregisterSingleton(ILayoutService, StandaloneLayoutService, 1 /* InstantiationType.Delayed */);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/browser/standaloneServices.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport '../../common/languages/languageConfigurationRegistry.js';\nimport './standaloneCodeEditorService.js';\nimport './standaloneLayoutService.js';\nimport '../../../platform/undoRedo/common/undoRedoService.js';\nimport '../../common/services/languageFeatureDebounce.js';\nimport '../../common/services/semanticTokensStylingService.js';\nimport '../../common/services/languageFeaturesService.js';\nimport '../../browser/services/hoverService/hoverService.js';\nimport * as strings from '../../../base/common/strings.js';\nimport * as dom from '../../../base/browser/dom.js';\nimport { StandardKeyboardEvent } from '../../../base/browser/keyboardEvent.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { KeyCodeChord, decodeKeybinding } from '../../../base/common/keybindings.js';\nimport { ImmortalReference, toDisposable, DisposableStore, Disposable, combinedDisposable } from '../../../base/common/lifecycle.js';\nimport { OS, isLinux, isMacintosh } from '../../../base/common/platform.js';\nimport Severity from '../../../base/common/severity.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { IBulkEditService, ResourceEdit, ResourceTextEdit } from '../../browser/services/bulkEditService.js';\nimport { isDiffEditorConfigurationKey, isEditorConfigurationKey } from '../../common/config/editorConfigurationSchema.js';\nimport { EditOperation } from '../../common/core/editOperation.js';\nimport { Position as Pos } from '../../common/core/position.js';\nimport { Range } from '../../common/core/range.js';\nimport { IModelService } from '../../common/services/model.js';\nimport { ITextModelService } from '../../common/services/resolverService.js';\nimport { ITextResourceConfigurationService, ITextResourcePropertiesService } from '../../common/services/textResourceConfiguration.js';\nimport { CommandsRegistry, ICommandService } from '../../../platform/commands/common/commands.js';\nimport { IConfigurationService } from '../../../platform/configuration/common/configuration.js';\nimport { Configuration, ConfigurationModel, ConfigurationChangeEvent } from '../../../platform/configuration/common/configurationModels.js';\nimport { IContextKeyService } from '../../../platform/contextkey/common/contextkey.js';\nimport { IDialogService } from '../../../platform/dialogs/common/dialogs.js';\nimport { createDecorator, IInstantiationService } from '../../../platform/instantiation/common/instantiation.js';\nimport { AbstractKeybindingService } from '../../../platform/keybinding/common/abstractKeybindingService.js';\nimport { IKeybindingService } from '../../../platform/keybinding/common/keybinding.js';\nimport { KeybindingResolver } from '../../../platform/keybinding/common/keybindingResolver.js';\nimport { KeybindingsRegistry } from '../../../platform/keybinding/common/keybindingsRegistry.js';\nimport { ResolvedKeybindingItem } from '../../../platform/keybinding/common/resolvedKeybindingItem.js';\nimport { USLayoutResolvedKeybinding } from '../../../platform/keybinding/common/usLayoutResolvedKeybinding.js';\nimport { ILabelService } from '../../../platform/label/common/label.js';\nimport { INotificationService, NoOpNotification } from '../../../platform/notification/common/notification.js';\nimport { IEditorProgressService, IProgressService } from '../../../platform/progress/common/progress.js';\nimport { ITelemetryService } from '../../../platform/telemetry/common/telemetry.js';\nimport { IWorkspaceContextService, WorkspaceFolder, STANDALONE_EDITOR_WORKSPACE_ID } from '../../../platform/workspace/common/workspace.js';\nimport { ILayoutService } from '../../../platform/layout/browser/layoutService.js';\nimport { StandaloneServicesNLS } from '../../common/standaloneStrings.js';\nimport { basename } from '../../../base/common/resources.js';\nimport { ICodeEditorService } from '../../browser/services/codeEditorService.js';\nimport { ConsoleLogger, ILogService } from '../../../platform/log/common/log.js';\nimport { IWorkspaceTrustManagementService } from '../../../platform/workspace/common/workspaceTrust.js';\nimport { IContextMenuService, IContextViewService } from '../../../platform/contextview/browser/contextView.js';\nimport { ContextViewService } from '../../../platform/contextview/browser/contextViewService.js';\nimport { LanguageService } from '../../common/services/languageService.js';\nimport { ContextMenuService } from '../../../platform/contextview/browser/contextMenuService.js';\nimport { getSingletonServiceDescriptors, registerSingleton } from '../../../platform/instantiation/common/extensions.js';\nimport { OpenerService } from '../../browser/services/openerService.js';\nimport { IEditorWorkerService } from '../../common/services/editorWorker.js';\nimport { EditorWorkerService } from '../../browser/services/editorWorkerService.js';\nimport { ILanguageService } from '../../common/languages/language.js';\nimport { MarkerDecorationsService } from '../../common/services/markerDecorationsService.js';\nimport { IMarkerDecorationsService } from '../../common/services/markerDecorations.js';\nimport { ModelService } from '../../common/services/modelService.js';\nimport { StandaloneQuickInputService } from './quickInput/standaloneQuickInputService.js';\nimport { StandaloneThemeService } from './standaloneThemeService.js';\nimport { IStandaloneThemeService } from '../common/standaloneTheme.js';\nimport { AccessibilityService } from '../../../platform/accessibility/browser/accessibilityService.js';\nimport { IAccessibilityService } from '../../../platform/accessibility/common/accessibility.js';\nimport { IMenuService } from '../../../platform/actions/common/actions.js';\nimport { MenuService } from '../../../platform/actions/common/menuService.js';\nimport { BrowserClipboardService } from '../../../platform/clipboard/browser/clipboardService.js';\nimport { IClipboardService } from '../../../platform/clipboard/common/clipboardService.js';\nimport { ContextKeyService } from '../../../platform/contextkey/browser/contextKeyService.js';\nimport { SyncDescriptor } from '../../../platform/instantiation/common/descriptors.js';\nimport { InstantiationService } from '../../../platform/instantiation/common/instantiationService.js';\nimport { ServiceCollection } from '../../../platform/instantiation/common/serviceCollection.js';\nimport { IListService, ListService } from '../../../platform/list/browser/listService.js';\nimport { IMarkerService } from '../../../platform/markers/common/markers.js';\nimport { MarkerService } from '../../../platform/markers/common/markerService.js';\nimport { IOpenerService } from '../../../platform/opener/common/opener.js';\nimport { IQuickInputService } from '../../../platform/quickinput/common/quickInput.js';\nimport { IStorageService, InMemoryStorageService } from '../../../platform/storage/common/storage.js';\nimport { DefaultConfiguration } from '../../../platform/configuration/common/configurations.js';\nimport { IAccessibilitySignalService } from '../../../platform/accessibilitySignal/browser/accessibilitySignalService.js';\nimport { LogService } from '../../../platform/log/common/logService.js';\nimport { getEditorFeatures } from '../../common/editorFeatures.js';\nimport { onUnexpectedError } from '../../../base/common/errors.js';\nimport { IEnvironmentService } from '../../../platform/environment/common/environment.js';\nimport { mainWindow } from '../../../base/browser/window.js';\nimport { ResourceMap } from '../../../base/common/map.js';\nclass SimpleModel {\n    constructor(model) {\n        this.disposed = false;\n        this.model = model;\n        this._onWillDispose = new Emitter();\n    }\n    get textEditorModel() {\n        return this.model;\n    }\n    dispose() {\n        this.disposed = true;\n        this._onWillDispose.fire();\n    }\n}\nlet StandaloneTextModelService = class StandaloneTextModelService {\n    constructor(modelService) {\n        this.modelService = modelService;\n    }\n    createModelReference(resource) {\n        const model = this.modelService.getModel(resource);\n        if (!model) {\n            return Promise.reject(new Error(`Model not found`));\n        }\n        return Promise.resolve(new ImmortalReference(new SimpleModel(model)));\n    }\n};\nStandaloneTextModelService = __decorate([\n    __param(0, IModelService)\n], StandaloneTextModelService);\nclass StandaloneEditorProgressService {\n    show() {\n        return StandaloneEditorProgressService.NULL_PROGRESS_RUNNER;\n    }\n    async showWhile(promise, delay) {\n        await promise;\n    }\n}\nStandaloneEditorProgressService.NULL_PROGRESS_RUNNER = {\n    done: () => { },\n    total: () => { },\n    worked: () => { }\n};\nclass StandaloneProgressService {\n    withProgress(_options, task, onDidCancel) {\n        return task({\n            report: () => { },\n        });\n    }\n}\nclass StandaloneEnvironmentService {\n    constructor() {\n        this.isExtensionDevelopment = false;\n        this.isBuilt = false;\n    }\n}\nclass StandaloneDialogService {\n    async confirm(confirmation) {\n        const confirmed = this.doConfirm(confirmation.message, confirmation.detail);\n        return {\n            confirmed,\n            checkboxChecked: false // unsupported\n        };\n    }\n    doConfirm(message, detail) {\n        let messageText = message;\n        if (detail) {\n            messageText = messageText + '\\n\\n' + detail;\n        }\n        return mainWindow.confirm(messageText);\n    }\n    async prompt(prompt) {\n        var _a, _b;\n        let result = undefined;\n        const confirmed = this.doConfirm(prompt.message, prompt.detail);\n        if (confirmed) {\n            const promptButtons = [...((_a = prompt.buttons) !== null && _a !== void 0 ? _a : [])];\n            if (prompt.cancelButton && typeof prompt.cancelButton !== 'string' && typeof prompt.cancelButton !== 'boolean') {\n                promptButtons.push(prompt.cancelButton);\n            }\n            result = await ((_b = promptButtons[0]) === null || _b === void 0 ? void 0 : _b.run({ checkboxChecked: false }));\n        }\n        return { result };\n    }\n    async error(message, detail) {\n        await this.prompt({ type: Severity.Error, message, detail });\n    }\n}\nexport class StandaloneNotificationService {\n    info(message) {\n        return this.notify({ severity: Severity.Info, message });\n    }\n    warn(message) {\n        return this.notify({ severity: Severity.Warning, message });\n    }\n    error(error) {\n        return this.notify({ severity: Severity.Error, message: error });\n    }\n    notify(notification) {\n        switch (notification.severity) {\n            case Severity.Error:\n                console.error(notification.message);\n                break;\n            case Severity.Warning:\n                console.warn(notification.message);\n                break;\n            default:\n                console.log(notification.message);\n                break;\n        }\n        return StandaloneNotificationService.NO_OP;\n    }\n    prompt(severity, message, choices, options) {\n        return StandaloneNotificationService.NO_OP;\n    }\n    status(message, options) {\n        return Disposable.None;\n    }\n}\nStandaloneNotificationService.NO_OP = new NoOpNotification();\nlet StandaloneCommandService = class StandaloneCommandService {\n    constructor(instantiationService) {\n        this._onWillExecuteCommand = new Emitter();\n        this._onDidExecuteCommand = new Emitter();\n        this.onDidExecuteCommand = this._onDidExecuteCommand.event;\n        this._instantiationService = instantiationService;\n    }\n    executeCommand(id, ...args) {\n        const command = CommandsRegistry.getCommand(id);\n        if (!command) {\n            return Promise.reject(new Error(`command '${id}' not found`));\n        }\n        try {\n            this._onWillExecuteCommand.fire({ commandId: id, args });\n            const result = this._instantiationService.invokeFunction.apply(this._instantiationService, [command.handler, ...args]);\n            this._onDidExecuteCommand.fire({ commandId: id, args });\n            return Promise.resolve(result);\n        }\n        catch (err) {\n            return Promise.reject(err);\n        }\n    }\n};\nStandaloneCommandService = __decorate([\n    __param(0, IInstantiationService)\n], StandaloneCommandService);\nexport { StandaloneCommandService };\nlet StandaloneKeybindingService = class StandaloneKeybindingService extends AbstractKeybindingService {\n    constructor(contextKeyService, commandService, telemetryService, notificationService, logService, codeEditorService) {\n        super(contextKeyService, commandService, telemetryService, notificationService, logService);\n        this._cachedResolver = null;\n        this._dynamicKeybindings = [];\n        this._domNodeListeners = [];\n        const addContainer = (domNode) => {\n            const disposables = new DisposableStore();\n            // for standard keybindings\n            disposables.add(dom.addDisposableListener(domNode, dom.EventType.KEY_DOWN, (e) => {\n                const keyEvent = new StandardKeyboardEvent(e);\n                const shouldPreventDefault = this._dispatch(keyEvent, keyEvent.target);\n                if (shouldPreventDefault) {\n                    keyEvent.preventDefault();\n                    keyEvent.stopPropagation();\n                }\n            }));\n            // for single modifier chord keybindings (e.g. shift shift)\n            disposables.add(dom.addDisposableListener(domNode, dom.EventType.KEY_UP, (e) => {\n                const keyEvent = new StandardKeyboardEvent(e);\n                const shouldPreventDefault = this._singleModifierDispatch(keyEvent, keyEvent.target);\n                if (shouldPreventDefault) {\n                    keyEvent.preventDefault();\n                }\n            }));\n            this._domNodeListeners.push(new DomNodeListeners(domNode, disposables));\n        };\n        const removeContainer = (domNode) => {\n            for (let i = 0; i < this._domNodeListeners.length; i++) {\n                const domNodeListeners = this._domNodeListeners[i];\n                if (domNodeListeners.domNode === domNode) {\n                    this._domNodeListeners.splice(i, 1);\n                    domNodeListeners.dispose();\n                }\n            }\n        };\n        const addCodeEditor = (codeEditor) => {\n            if (codeEditor.getOption(61 /* EditorOption.inDiffEditor */)) {\n                return;\n            }\n            addContainer(codeEditor.getContainerDomNode());\n        };\n        const removeCodeEditor = (codeEditor) => {\n            if (codeEditor.getOption(61 /* EditorOption.inDiffEditor */)) {\n                return;\n            }\n            removeContainer(codeEditor.getContainerDomNode());\n        };\n        this._register(codeEditorService.onCodeEditorAdd(addCodeEditor));\n        this._register(codeEditorService.onCodeEditorRemove(removeCodeEditor));\n        codeEditorService.listCodeEditors().forEach(addCodeEditor);\n        const addDiffEditor = (diffEditor) => {\n            addContainer(diffEditor.getContainerDomNode());\n        };\n        const removeDiffEditor = (diffEditor) => {\n            removeContainer(diffEditor.getContainerDomNode());\n        };\n        this._register(codeEditorService.onDiffEditorAdd(addDiffEditor));\n        this._register(codeEditorService.onDiffEditorRemove(removeDiffEditor));\n        codeEditorService.listDiffEditors().forEach(addDiffEditor);\n    }\n    addDynamicKeybinding(command, keybinding, handler, when) {\n        return combinedDisposable(CommandsRegistry.registerCommand(command, handler), this.addDynamicKeybindings([{\n                keybinding,\n                command,\n                when\n            }]));\n    }\n    addDynamicKeybindings(rules) {\n        const entries = rules.map((rule) => {\n            var _a;\n            const keybinding = decodeKeybinding(rule.keybinding, OS);\n            return {\n                keybinding,\n                command: (_a = rule.command) !== null && _a !== void 0 ? _a : null,\n                commandArgs: rule.commandArgs,\n                when: rule.when,\n                weight1: 1000,\n                weight2: 0,\n                extensionId: null,\n                isBuiltinExtension: false\n            };\n        });\n        this._dynamicKeybindings = this._dynamicKeybindings.concat(entries);\n        this.updateResolver();\n        return toDisposable(() => {\n            // Search the first entry and remove them all since they will be contiguous\n            for (let i = 0; i < this._dynamicKeybindings.length; i++) {\n                if (this._dynamicKeybindings[i] === entries[0]) {\n                    this._dynamicKeybindings.splice(i, entries.length);\n                    this.updateResolver();\n                    return;\n                }\n            }\n        });\n    }\n    updateResolver() {\n        this._cachedResolver = null;\n        this._onDidUpdateKeybindings.fire();\n    }\n    _getResolver() {\n        if (!this._cachedResolver) {\n            const defaults = this._toNormalizedKeybindingItems(KeybindingsRegistry.getDefaultKeybindings(), true);\n            const overrides = this._toNormalizedKeybindingItems(this._dynamicKeybindings, false);\n            this._cachedResolver = new KeybindingResolver(defaults, overrides, (str) => this._log(str));\n        }\n        return this._cachedResolver;\n    }\n    _documentHasFocus() {\n        return mainWindow.document.hasFocus();\n    }\n    _toNormalizedKeybindingItems(items, isDefault) {\n        const result = [];\n        let resultLen = 0;\n        for (const item of items) {\n            const when = item.when || undefined;\n            const keybinding = item.keybinding;\n            if (!keybinding) {\n                // This might be a removal keybinding item in user settings => accept it\n                result[resultLen++] = new ResolvedKeybindingItem(undefined, item.command, item.commandArgs, when, isDefault, null, false);\n            }\n            else {\n                const resolvedKeybindings = USLayoutResolvedKeybinding.resolveKeybinding(keybinding, OS);\n                for (const resolvedKeybinding of resolvedKeybindings) {\n                    result[resultLen++] = new ResolvedKeybindingItem(resolvedKeybinding, item.command, item.commandArgs, when, isDefault, null, false);\n                }\n            }\n        }\n        return result;\n    }\n    resolveKeyboardEvent(keyboardEvent) {\n        const chord = new KeyCodeChord(keyboardEvent.ctrlKey, keyboardEvent.shiftKey, keyboardEvent.altKey, keyboardEvent.metaKey, keyboardEvent.keyCode);\n        return new USLayoutResolvedKeybinding([chord], OS);\n    }\n};\nStandaloneKeybindingService = __decorate([\n    __param(0, IContextKeyService),\n    __param(1, ICommandService),\n    __param(2, ITelemetryService),\n    __param(3, INotificationService),\n    __param(4, ILogService),\n    __param(5, ICodeEditorService)\n], StandaloneKeybindingService);\nexport { StandaloneKeybindingService };\nclass DomNodeListeners extends Disposable {\n    constructor(domNode, disposables) {\n        super();\n        this.domNode = domNode;\n        this._register(disposables);\n    }\n}\nfunction isConfigurationOverrides(thing) {\n    return thing\n        && typeof thing === 'object'\n        && (!thing.overrideIdentifier || typeof thing.overrideIdentifier === 'string')\n        && (!thing.resource || thing.resource instanceof URI);\n}\nlet StandaloneConfigurationService = class StandaloneConfigurationService {\n    constructor(logService) {\n        this.logService = logService;\n        this._onDidChangeConfiguration = new Emitter();\n        this.onDidChangeConfiguration = this._onDidChangeConfiguration.event;\n        const defaultConfiguration = new DefaultConfiguration(logService);\n        this._configuration = new Configuration(defaultConfiguration.reload(), ConfigurationModel.createEmptyModel(logService), ConfigurationModel.createEmptyModel(logService), ConfigurationModel.createEmptyModel(logService), ConfigurationModel.createEmptyModel(logService), ConfigurationModel.createEmptyModel(logService), new ResourceMap(), ConfigurationModel.createEmptyModel(logService), new ResourceMap(), logService);\n        defaultConfiguration.dispose();\n    }\n    getValue(arg1, arg2) {\n        const section = typeof arg1 === 'string' ? arg1 : undefined;\n        const overrides = isConfigurationOverrides(arg1) ? arg1 : isConfigurationOverrides(arg2) ? arg2 : {};\n        return this._configuration.getValue(section, overrides, undefined);\n    }\n    updateValues(values) {\n        const previous = { data: this._configuration.toData() };\n        const changedKeys = [];\n        for (const entry of values) {\n            const [key, value] = entry;\n            if (this.getValue(key) === value) {\n                continue;\n            }\n            this._configuration.updateValue(key, value);\n            changedKeys.push(key);\n        }\n        if (changedKeys.length > 0) {\n            const configurationChangeEvent = new ConfigurationChangeEvent({ keys: changedKeys, overrides: [] }, previous, this._configuration, undefined, this.logService);\n            configurationChangeEvent.source = 8 /* ConfigurationTarget.MEMORY */;\n            this._onDidChangeConfiguration.fire(configurationChangeEvent);\n        }\n        return Promise.resolve();\n    }\n    updateValue(key, value, arg3, arg4) {\n        return this.updateValues([[key, value]]);\n    }\n    inspect(key, options = {}) {\n        return this._configuration.inspect(key, options, undefined);\n    }\n};\nStandaloneConfigurationService = __decorate([\n    __param(0, ILogService)\n], StandaloneConfigurationService);\nexport { StandaloneConfigurationService };\nlet StandaloneResourceConfigurationService = class StandaloneResourceConfigurationService {\n    constructor(configurationService, modelService, languageService) {\n        this.configurationService = configurationService;\n        this.modelService = modelService;\n        this.languageService = languageService;\n        this._onDidChangeConfiguration = new Emitter();\n        this.configurationService.onDidChangeConfiguration((e) => {\n            this._onDidChangeConfiguration.fire({ affectedKeys: e.affectedKeys, affectsConfiguration: (resource, configuration) => e.affectsConfiguration(configuration) });\n        });\n    }\n    getValue(resource, arg2, arg3) {\n        const position = Pos.isIPosition(arg2) ? arg2 : null;\n        const section = position ? (typeof arg3 === 'string' ? arg3 : undefined) : (typeof arg2 === 'string' ? arg2 : undefined);\n        const language = resource ? this.getLanguage(resource, position) : undefined;\n        if (typeof section === 'undefined') {\n            return this.configurationService.getValue({\n                resource,\n                overrideIdentifier: language\n            });\n        }\n        return this.configurationService.getValue(section, {\n            resource,\n            overrideIdentifier: language\n        });\n    }\n    getLanguage(resource, position) {\n        const model = this.modelService.getModel(resource);\n        if (model) {\n            return position ? model.getLanguageIdAtPosition(position.lineNumber, position.column) : model.getLanguageId();\n        }\n        return this.languageService.guessLanguageIdByFilepathOrFirstLine(resource);\n    }\n};\nStandaloneResourceConfigurationService = __decorate([\n    __param(0, IConfigurationService),\n    __param(1, IModelService),\n    __param(2, ILanguageService)\n], StandaloneResourceConfigurationService);\nlet StandaloneResourcePropertiesService = class StandaloneResourcePropertiesService {\n    constructor(configurationService) {\n        this.configurationService = configurationService;\n    }\n    getEOL(resource, language) {\n        const eol = this.configurationService.getValue('files.eol', { overrideIdentifier: language, resource });\n        if (eol && typeof eol === 'string' && eol !== 'auto') {\n            return eol;\n        }\n        return (isLinux || isMacintosh) ? '\\n' : '\\r\\n';\n    }\n};\nStandaloneResourcePropertiesService = __decorate([\n    __param(0, IConfigurationService)\n], StandaloneResourcePropertiesService);\nclass StandaloneTelemetryService {\n    publicLog2() { }\n}\nclass StandaloneWorkspaceContextService {\n    constructor() {\n        const resource = URI.from({ scheme: StandaloneWorkspaceContextService.SCHEME, authority: 'model', path: '/' });\n        this.workspace = { id: STANDALONE_EDITOR_WORKSPACE_ID, folders: [new WorkspaceFolder({ uri: resource, name: '', index: 0 })] };\n    }\n    getWorkspace() {\n        return this.workspace;\n    }\n    getWorkspaceFolder(resource) {\n        return resource && resource.scheme === StandaloneWorkspaceContextService.SCHEME ? this.workspace.folders[0] : null;\n    }\n}\nStandaloneWorkspaceContextService.SCHEME = 'inmemory';\nexport function updateConfigurationService(configurationService, source, isDiffEditor) {\n    if (!source) {\n        return;\n    }\n    if (!(configurationService instanceof StandaloneConfigurationService)) {\n        return;\n    }\n    const toUpdate = [];\n    Object.keys(source).forEach((key) => {\n        if (isEditorConfigurationKey(key)) {\n            toUpdate.push([`editor.${key}`, source[key]]);\n        }\n        if (isDiffEditor && isDiffEditorConfigurationKey(key)) {\n            toUpdate.push([`diffEditor.${key}`, source[key]]);\n        }\n    });\n    if (toUpdate.length > 0) {\n        configurationService.updateValues(toUpdate);\n    }\n}\nlet StandaloneBulkEditService = class StandaloneBulkEditService {\n    constructor(_modelService) {\n        this._modelService = _modelService;\n        //\n    }\n    hasPreviewHandler() {\n        return false;\n    }\n    async apply(editsIn, _options) {\n        const edits = Array.isArray(editsIn) ? editsIn : ResourceEdit.convert(editsIn);\n        const textEdits = new Map();\n        for (const edit of edits) {\n            if (!(edit instanceof ResourceTextEdit)) {\n                throw new Error('bad edit - only text edits are supported');\n            }\n            const model = this._modelService.getModel(edit.resource);\n            if (!model) {\n                throw new Error('bad edit - model not found');\n            }\n            if (typeof edit.versionId === 'number' && model.getVersionId() !== edit.versionId) {\n                throw new Error('bad state - model changed in the meantime');\n            }\n            let array = textEdits.get(model);\n            if (!array) {\n                array = [];\n                textEdits.set(model, array);\n            }\n            array.push(EditOperation.replaceMove(Range.lift(edit.textEdit.range), edit.textEdit.text));\n        }\n        let totalEdits = 0;\n        let totalFiles = 0;\n        for (const [model, edits] of textEdits) {\n            model.pushStackElement();\n            model.pushEditOperations([], edits, () => []);\n            model.pushStackElement();\n            totalFiles += 1;\n            totalEdits += edits.length;\n        }\n        return {\n            ariaSummary: strings.format(StandaloneServicesNLS.bulkEditServiceSummary, totalEdits, totalFiles),\n            isApplied: totalEdits > 0\n        };\n    }\n};\nStandaloneBulkEditService = __decorate([\n    __param(0, IModelService)\n], StandaloneBulkEditService);\nclass StandaloneUriLabelService {\n    getUriLabel(resource, options) {\n        if (resource.scheme === 'file') {\n            return resource.fsPath;\n        }\n        return resource.path;\n    }\n    getUriBasenameLabel(resource) {\n        return basename(resource);\n    }\n}\nlet StandaloneContextViewService = class StandaloneContextViewService extends ContextViewService {\n    constructor(layoutService, _codeEditorService) {\n        super(layoutService);\n        this._codeEditorService = _codeEditorService;\n    }\n    showContextView(delegate, container, shadowRoot) {\n        if (!container) {\n            const codeEditor = this._codeEditorService.getFocusedCodeEditor() || this._codeEditorService.getActiveCodeEditor();\n            if (codeEditor) {\n                container = codeEditor.getContainerDomNode();\n            }\n        }\n        return super.showContextView(delegate, container, shadowRoot);\n    }\n};\nStandaloneContextViewService = __decorate([\n    __param(0, ILayoutService),\n    __param(1, ICodeEditorService)\n], StandaloneContextViewService);\nclass StandaloneWorkspaceTrustManagementService {\n    constructor() {\n        this._neverEmitter = new Emitter();\n        this.onDidChangeTrust = this._neverEmitter.event;\n    }\n    isWorkspaceTrusted() {\n        return true;\n    }\n}\nclass StandaloneLanguageService extends LanguageService {\n    constructor() {\n        super();\n    }\n}\nclass StandaloneLogService extends LogService {\n    constructor() {\n        super(new ConsoleLogger());\n    }\n}\nlet StandaloneContextMenuService = class StandaloneContextMenuService extends ContextMenuService {\n    constructor(telemetryService, notificationService, contextViewService, keybindingService, menuService, contextKeyService) {\n        super(telemetryService, notificationService, contextViewService, keybindingService, menuService, contextKeyService);\n        this.configure({ blockMouse: false }); // we do not want that in the standalone editor\n    }\n};\nStandaloneContextMenuService = __decorate([\n    __param(0, ITelemetryService),\n    __param(1, INotificationService),\n    __param(2, IContextViewService),\n    __param(3, IKeybindingService),\n    __param(4, IMenuService),\n    __param(5, IContextKeyService)\n], StandaloneContextMenuService);\nclass StandaloneAccessbilitySignalService {\n    async playSignal(cue, options) {\n    }\n}\nregisterSingleton(ILogService, StandaloneLogService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IConfigurationService, StandaloneConfigurationService, 0 /* InstantiationType.Eager */);\nregisterSingleton(ITextResourceConfigurationService, StandaloneResourceConfigurationService, 0 /* InstantiationType.Eager */);\nregisterSingleton(ITextResourcePropertiesService, StandaloneResourcePropertiesService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IWorkspaceContextService, StandaloneWorkspaceContextService, 0 /* InstantiationType.Eager */);\nregisterSingleton(ILabelService, StandaloneUriLabelService, 0 /* InstantiationType.Eager */);\nregisterSingleton(ITelemetryService, StandaloneTelemetryService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IDialogService, StandaloneDialogService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IEnvironmentService, StandaloneEnvironmentService, 0 /* InstantiationType.Eager */);\nregisterSingleton(INotificationService, StandaloneNotificationService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IMarkerService, MarkerService, 0 /* InstantiationType.Eager */);\nregisterSingleton(ILanguageService, StandaloneLanguageService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IStandaloneThemeService, StandaloneThemeService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IModelService, ModelService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IMarkerDecorationsService, MarkerDecorationsService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IContextKeyService, ContextKeyService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IProgressService, StandaloneProgressService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IEditorProgressService, StandaloneEditorProgressService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IStorageService, InMemoryStorageService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IEditorWorkerService, EditorWorkerService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IBulkEditService, StandaloneBulkEditService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IWorkspaceTrustManagementService, StandaloneWorkspaceTrustManagementService, 0 /* InstantiationType.Eager */);\nregisterSingleton(ITextModelService, StandaloneTextModelService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IAccessibilityService, AccessibilityService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IListService, ListService, 0 /* InstantiationType.Eager */);\nregisterSingleton(ICommandService, StandaloneCommandService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IKeybindingService, StandaloneKeybindingService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IQuickInputService, StandaloneQuickInputService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IContextViewService, StandaloneContextViewService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IOpenerService, OpenerService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IClipboardService, BrowserClipboardService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IContextMenuService, StandaloneContextMenuService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IMenuService, MenuService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IAccessibilitySignalService, StandaloneAccessbilitySignalService, 0 /* InstantiationType.Eager */);\n/**\n * We don't want to eagerly instantiate services because embedders get a one time chance\n * to override services when they create the first editor.\n */\nexport var StandaloneServices;\n(function (StandaloneServices) {\n    const serviceCollection = new ServiceCollection();\n    for (const [id, descriptor] of getSingletonServiceDescriptors()) {\n        serviceCollection.set(id, descriptor);\n    }\n    const instantiationService = new InstantiationService(serviceCollection, true);\n    serviceCollection.set(IInstantiationService, instantiationService);\n    function get(serviceId) {\n        if (!initialized) {\n            initialize({});\n        }\n        const r = serviceCollection.get(serviceId);\n        if (!r) {\n            throw new Error('Missing service ' + serviceId);\n        }\n        if (r instanceof SyncDescriptor) {\n            return instantiationService.invokeFunction((accessor) => accessor.get(serviceId));\n        }\n        else {\n            return r;\n        }\n    }\n    StandaloneServices.get = get;\n    let initialized = false;\n    const onDidInitialize = new Emitter();\n    function initialize(overrides) {\n        if (initialized) {\n            return instantiationService;\n        }\n        initialized = true;\n        // Add singletons that were registered after this module loaded\n        for (const [id, descriptor] of getSingletonServiceDescriptors()) {\n            if (!serviceCollection.get(id)) {\n                serviceCollection.set(id, descriptor);\n            }\n        }\n        // Initialize the service collection with the overrides, but only if the\n        // service was not instantiated in the meantime.\n        for (const serviceId in overrides) {\n            if (overrides.hasOwnProperty(serviceId)) {\n                const serviceIdentifier = createDecorator(serviceId);\n                const r = serviceCollection.get(serviceIdentifier);\n                if (r instanceof SyncDescriptor) {\n                    serviceCollection.set(serviceIdentifier, overrides[serviceId]);\n                }\n            }\n        }\n        // Instantiate all editor features\n        const editorFeatures = getEditorFeatures();\n        for (const feature of editorFeatures) {\n            try {\n                instantiationService.createInstance(feature);\n            }\n            catch (err) {\n                onUnexpectedError(err);\n            }\n        }\n        onDidInitialize.fire();\n        return instantiationService;\n    }\n    StandaloneServices.initialize = initialize;\n    /**\n     * Executes callback once services are initialized.\n     */\n    function withServices(callback) {\n        if (initialized) {\n            return callback();\n        }\n        const disposable = new DisposableStore();\n        const listener = disposable.add(onDidInitialize.event(() => {\n            listener.dispose();\n            disposable.add(callback());\n        }));\n        return disposable;\n    }\n    StandaloneServices.withServices = withServices;\n})(StandaloneServices || (StandaloneServices = {}));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/browser/standaloneThemeService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../../base/browser/dom.js';\nimport { addMatchMediaChangeListener } from '../../../base/browser/browser.js';\nimport { Color } from '../../../base/common/color.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { TokenizationRegistry } from '../../common/languages.js';\nimport { TokenMetadata } from '../../common/encodedTokenAttributes.js';\nimport { TokenTheme, generateTokensCSSForColorMap } from '../../common/languages/supports/tokenization.js';\nimport { hc_black, hc_light, vs, vs_dark } from '../common/themes.js';\nimport { Registry } from '../../../platform/registry/common/platform.js';\nimport { asCssVariableName, Extensions } from '../../../platform/theme/common/colorRegistry.js';\nimport { Extensions as ThemingExtensions } from '../../../platform/theme/common/themeService.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { ColorScheme, isDark, isHighContrast } from '../../../platform/theme/common/theme.js';\nimport { getIconsStyleSheet, UnthemedProductIconTheme } from '../../../platform/theme/browser/iconsStyleSheet.js';\nimport { mainWindow } from '../../../base/browser/window.js';\nexport const VS_LIGHT_THEME_NAME = 'vs';\nexport const VS_DARK_THEME_NAME = 'vs-dark';\nexport const HC_BLACK_THEME_NAME = 'hc-black';\nexport const HC_LIGHT_THEME_NAME = 'hc-light';\nconst colorRegistry = Registry.as(Extensions.ColorContribution);\nconst themingRegistry = Registry.as(ThemingExtensions.ThemingContribution);\nclass StandaloneTheme {\n    constructor(name, standaloneThemeData) {\n        this.semanticHighlighting = false;\n        this.themeData = standaloneThemeData;\n        const base = standaloneThemeData.base;\n        if (name.length > 0) {\n            if (isBuiltinTheme(name)) {\n                this.id = name;\n            }\n            else {\n                this.id = base + ' ' + name;\n            }\n            this.themeName = name;\n        }\n        else {\n            this.id = base;\n            this.themeName = base;\n        }\n        this.colors = null;\n        this.defaultColors = Object.create(null);\n        this._tokenTheme = null;\n    }\n    get base() {\n        return this.themeData.base;\n    }\n    notifyBaseUpdated() {\n        if (this.themeData.inherit) {\n            this.colors = null;\n            this._tokenTheme = null;\n        }\n    }\n    getColors() {\n        if (!this.colors) {\n            const colors = new Map();\n            for (const id in this.themeData.colors) {\n                colors.set(id, Color.fromHex(this.themeData.colors[id]));\n            }\n            if (this.themeData.inherit) {\n                const baseData = getBuiltinRules(this.themeData.base);\n                for (const id in baseData.colors) {\n                    if (!colors.has(id)) {\n                        colors.set(id, Color.fromHex(baseData.colors[id]));\n                    }\n                }\n            }\n            this.colors = colors;\n        }\n        return this.colors;\n    }\n    getColor(colorId, useDefault) {\n        const color = this.getColors().get(colorId);\n        if (color) {\n            return color;\n        }\n        if (useDefault !== false) {\n            return this.getDefault(colorId);\n        }\n        return undefined;\n    }\n    getDefault(colorId) {\n        let color = this.defaultColors[colorId];\n        if (color) {\n            return color;\n        }\n        color = colorRegistry.resolveDefaultColor(colorId, this);\n        this.defaultColors[colorId] = color;\n        return color;\n    }\n    defines(colorId) {\n        return this.getColors().has(colorId);\n    }\n    get type() {\n        switch (this.base) {\n            case VS_LIGHT_THEME_NAME: return ColorScheme.LIGHT;\n            case HC_BLACK_THEME_NAME: return ColorScheme.HIGH_CONTRAST_DARK;\n            case HC_LIGHT_THEME_NAME: return ColorScheme.HIGH_CONTRAST_LIGHT;\n            default: return ColorScheme.DARK;\n        }\n    }\n    get tokenTheme() {\n        if (!this._tokenTheme) {\n            let rules = [];\n            let encodedTokensColors = [];\n            if (this.themeData.inherit) {\n                const baseData = getBuiltinRules(this.themeData.base);\n                rules = baseData.rules;\n                if (baseData.encodedTokensColors) {\n                    encodedTokensColors = baseData.encodedTokensColors;\n                }\n            }\n            // Pick up default colors from `editor.foreground` and `editor.background` if available\n            const editorForeground = this.themeData.colors['editor.foreground'];\n            const editorBackground = this.themeData.colors['editor.background'];\n            if (editorForeground || editorBackground) {\n                const rule = { token: '' };\n                if (editorForeground) {\n                    rule.foreground = editorForeground;\n                }\n                if (editorBackground) {\n                    rule.background = editorBackground;\n                }\n                rules.push(rule);\n            }\n            rules = rules.concat(this.themeData.rules);\n            if (this.themeData.encodedTokensColors) {\n                encodedTokensColors = this.themeData.encodedTokensColors;\n            }\n            this._tokenTheme = TokenTheme.createFromRawTokenTheme(rules, encodedTokensColors);\n        }\n        return this._tokenTheme;\n    }\n    getTokenStyleMetadata(type, modifiers, modelLanguage) {\n        // use theme rules match\n        const style = this.tokenTheme._match([type].concat(modifiers).join('.'));\n        const metadata = style.metadata;\n        const foreground = TokenMetadata.getForeground(metadata);\n        const fontStyle = TokenMetadata.getFontStyle(metadata);\n        return {\n            foreground: foreground,\n            italic: Boolean(fontStyle & 1 /* FontStyle.Italic */),\n            bold: Boolean(fontStyle & 2 /* FontStyle.Bold */),\n            underline: Boolean(fontStyle & 4 /* FontStyle.Underline */),\n            strikethrough: Boolean(fontStyle & 8 /* FontStyle.Strikethrough */)\n        };\n    }\n}\nfunction isBuiltinTheme(themeName) {\n    return (themeName === VS_LIGHT_THEME_NAME\n        || themeName === VS_DARK_THEME_NAME\n        || themeName === HC_BLACK_THEME_NAME\n        || themeName === HC_LIGHT_THEME_NAME);\n}\nfunction getBuiltinRules(builtinTheme) {\n    switch (builtinTheme) {\n        case VS_LIGHT_THEME_NAME:\n            return vs;\n        case VS_DARK_THEME_NAME:\n            return vs_dark;\n        case HC_BLACK_THEME_NAME:\n            return hc_black;\n        case HC_LIGHT_THEME_NAME:\n            return hc_light;\n    }\n}\nfunction newBuiltInTheme(builtinTheme) {\n    const themeData = getBuiltinRules(builtinTheme);\n    return new StandaloneTheme(builtinTheme, themeData);\n}\nexport class StandaloneThemeService extends Disposable {\n    constructor() {\n        super();\n        this._onColorThemeChange = this._register(new Emitter());\n        this.onDidColorThemeChange = this._onColorThemeChange.event;\n        this._onProductIconThemeChange = this._register(new Emitter());\n        this.onDidProductIconThemeChange = this._onProductIconThemeChange.event;\n        this._environment = Object.create(null);\n        this._builtInProductIconTheme = new UnthemedProductIconTheme();\n        this._autoDetectHighContrast = true;\n        this._knownThemes = new Map();\n        this._knownThemes.set(VS_LIGHT_THEME_NAME, newBuiltInTheme(VS_LIGHT_THEME_NAME));\n        this._knownThemes.set(VS_DARK_THEME_NAME, newBuiltInTheme(VS_DARK_THEME_NAME));\n        this._knownThemes.set(HC_BLACK_THEME_NAME, newBuiltInTheme(HC_BLACK_THEME_NAME));\n        this._knownThemes.set(HC_LIGHT_THEME_NAME, newBuiltInTheme(HC_LIGHT_THEME_NAME));\n        const iconsStyleSheet = this._register(getIconsStyleSheet(this));\n        this._codiconCSS = iconsStyleSheet.getCSS();\n        this._themeCSS = '';\n        this._allCSS = `${this._codiconCSS}\\n${this._themeCSS}`;\n        this._globalStyleElement = null;\n        this._styleElements = [];\n        this._colorMapOverride = null;\n        this.setTheme(VS_LIGHT_THEME_NAME);\n        this._onOSSchemeChanged();\n        this._register(iconsStyleSheet.onDidChange(() => {\n            this._codiconCSS = iconsStyleSheet.getCSS();\n            this._updateCSS();\n        }));\n        addMatchMediaChangeListener(mainWindow, '(forced-colors: active)', () => {\n            this._onOSSchemeChanged();\n        });\n    }\n    registerEditorContainer(domNode) {\n        if (dom.isInShadowDOM(domNode)) {\n            return this._registerShadowDomContainer(domNode);\n        }\n        return this._registerRegularEditorContainer();\n    }\n    _registerRegularEditorContainer() {\n        if (!this._globalStyleElement) {\n            this._globalStyleElement = dom.createStyleSheet(undefined, style => {\n                style.className = 'monaco-colors';\n                style.textContent = this._allCSS;\n            });\n            this._styleElements.push(this._globalStyleElement);\n        }\n        return Disposable.None;\n    }\n    _registerShadowDomContainer(domNode) {\n        const styleElement = dom.createStyleSheet(domNode, style => {\n            style.className = 'monaco-colors';\n            style.textContent = this._allCSS;\n        });\n        this._styleElements.push(styleElement);\n        return {\n            dispose: () => {\n                for (let i = 0; i < this._styleElements.length; i++) {\n                    if (this._styleElements[i] === styleElement) {\n                        this._styleElements.splice(i, 1);\n                        return;\n                    }\n                }\n            }\n        };\n    }\n    defineTheme(themeName, themeData) {\n        if (!/^[a-z0-9\\-]+$/i.test(themeName)) {\n            throw new Error('Illegal theme name!');\n        }\n        if (!isBuiltinTheme(themeData.base) && !isBuiltinTheme(themeName)) {\n            throw new Error('Illegal theme base!');\n        }\n        // set or replace theme\n        this._knownThemes.set(themeName, new StandaloneTheme(themeName, themeData));\n        if (isBuiltinTheme(themeName)) {\n            this._knownThemes.forEach(theme => {\n                if (theme.base === themeName) {\n                    theme.notifyBaseUpdated();\n                }\n            });\n        }\n        if (this._theme.themeName === themeName) {\n            this.setTheme(themeName); // refresh theme\n        }\n    }\n    getColorTheme() {\n        return this._theme;\n    }\n    setColorMapOverride(colorMapOverride) {\n        this._colorMapOverride = colorMapOverride;\n        this._updateThemeOrColorMap();\n    }\n    setTheme(themeName) {\n        let theme;\n        if (this._knownThemes.has(themeName)) {\n            theme = this._knownThemes.get(themeName);\n        }\n        else {\n            theme = this._knownThemes.get(VS_LIGHT_THEME_NAME);\n        }\n        this._updateActualTheme(theme);\n    }\n    _updateActualTheme(desiredTheme) {\n        if (!desiredTheme || this._theme === desiredTheme) {\n            // Nothing to do\n            return;\n        }\n        this._theme = desiredTheme;\n        this._updateThemeOrColorMap();\n    }\n    _onOSSchemeChanged() {\n        if (this._autoDetectHighContrast) {\n            const wantsHighContrast = mainWindow.matchMedia(`(forced-colors: active)`).matches;\n            if (wantsHighContrast !== isHighContrast(this._theme.type)) {\n                // switch to high contrast or non-high contrast but stick to dark or light\n                let newThemeName;\n                if (isDark(this._theme.type)) {\n                    newThemeName = wantsHighContrast ? HC_BLACK_THEME_NAME : VS_DARK_THEME_NAME;\n                }\n                else {\n                    newThemeName = wantsHighContrast ? HC_LIGHT_THEME_NAME : VS_LIGHT_THEME_NAME;\n                }\n                this._updateActualTheme(this._knownThemes.get(newThemeName));\n            }\n        }\n    }\n    setAutoDetectHighContrast(autoDetectHighContrast) {\n        this._autoDetectHighContrast = autoDetectHighContrast;\n        this._onOSSchemeChanged();\n    }\n    _updateThemeOrColorMap() {\n        const cssRules = [];\n        const hasRule = {};\n        const ruleCollector = {\n            addRule: (rule) => {\n                if (!hasRule[rule]) {\n                    cssRules.push(rule);\n                    hasRule[rule] = true;\n                }\n            }\n        };\n        themingRegistry.getThemingParticipants().forEach(p => p(this._theme, ruleCollector, this._environment));\n        const colorVariables = [];\n        for (const item of colorRegistry.getColors()) {\n            const color = this._theme.getColor(item.id, true);\n            if (color) {\n                colorVariables.push(`${asCssVariableName(item.id)}: ${color.toString()};`);\n            }\n        }\n        ruleCollector.addRule(`.monaco-editor, .monaco-diff-editor, .monaco-component { ${colorVariables.join('\\n')} }`);\n        const colorMap = this._colorMapOverride || this._theme.tokenTheme.getColorMap();\n        ruleCollector.addRule(generateTokensCSSForColorMap(colorMap));\n        this._themeCSS = cssRules.join('\\n');\n        this._updateCSS();\n        TokenizationRegistry.setColorMap(colorMap);\n        this._onColorThemeChange.fire(this._theme);\n    }\n    _updateCSS() {\n        this._allCSS = `${this._codiconCSS}\\n${this._themeCSS}`;\n        this._styleElements.forEach(styleElement => styleElement.textContent = this._allCSS);\n    }\n    getFileIconTheme() {\n        return {\n            hasFileIcons: false,\n            hasFolderIcons: false,\n            hidesExplorerArrows: false\n        };\n    }\n    getProductIconTheme() {\n        return this._builtInProductIconTheme;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { EditorAction, registerEditorAction } from '../../../browser/editorExtensions.js';\nimport { IStandaloneThemeService } from '../../common/standaloneTheme.js';\nimport { ToggleHighContrastNLS } from '../../../common/standaloneStrings.js';\nimport { isDark, isHighContrast } from '../../../../platform/theme/common/theme.js';\nimport { HC_BLACK_THEME_NAME, HC_LIGHT_THEME_NAME, VS_DARK_THEME_NAME, VS_LIGHT_THEME_NAME } from '../standaloneThemeService.js';\nclass ToggleHighContrast extends EditorAction {\n    constructor() {\n        super({\n            id: 'editor.action.toggleHighContrast',\n            label: ToggleHighContrastNLS.toggleHighContrast,\n            alias: 'Toggle High Contrast Theme',\n            precondition: undefined\n        });\n        this._originalThemeName = null;\n    }\n    run(accessor, editor) {\n        const standaloneThemeService = accessor.get(IStandaloneThemeService);\n        const currentTheme = standaloneThemeService.getColorTheme();\n        if (isHighContrast(currentTheme.type)) {\n            // We must toggle back to the integrator's theme\n            standaloneThemeService.setTheme(this._originalThemeName || (isDark(currentTheme.type) ? VS_DARK_THEME_NAME : VS_LIGHT_THEME_NAME));\n            this._originalThemeName = null;\n        }\n        else {\n            standaloneThemeService.setTheme(isDark(currentTheme.type) ? HC_BLACK_THEME_NAME : HC_LIGHT_THEME_NAME);\n            this._originalThemeName = currentTheme.themeName;\n        }\n    }\n}\nregisterEditorAction(ToggleHighContrast);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/common/monarch/monarchCommon.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport function isFuzzyActionArr(what) {\n    return (Array.isArray(what));\n}\nexport function isFuzzyAction(what) {\n    return !isFuzzyActionArr(what);\n}\nexport function isString(what) {\n    return (typeof what === 'string');\n}\nexport function isIAction(what) {\n    return !isString(what);\n}\n// Small helper functions\n/**\n * Is a string null, undefined, or empty?\n */\nexport function empty(s) {\n    return (s ? false : true);\n}\n/**\n * Puts a string to lower case if 'ignoreCase' is set.\n */\nexport function fixCase(lexer, str) {\n    return (lexer.ignoreCase && str ? str.toLowerCase() : str);\n}\n/**\n * Ensures there are no bad characters in a CSS token class.\n */\nexport function sanitize(s) {\n    return s.replace(/[&<>'\"_]/g, '-'); // used on all output token CSS classes\n}\n// Logging\n/**\n * Logs a message.\n */\nexport function log(lexer, msg) {\n    console.log(`${lexer.languageId}: ${msg}`);\n}\n// Throwing errors\nexport function createError(lexer, msg) {\n    return new Error(`${lexer.languageId}: ${msg}`);\n}\n// Helper functions for rule finding and substitution\n/**\n * substituteMatches is used on lexer strings and can substitutes predefined patterns:\n * \t\t$$  => $\n * \t\t$#  => id\n * \t\t$n  => matched entry n\n * \t\t@attr => contents of lexer[attr]\n *\n * See documentation for more info\n */\nexport function substituteMatches(lexer, str, id, matches, state) {\n    const re = /\\$((\\$)|(#)|(\\d\\d?)|[sS](\\d\\d?)|@(\\w+))/g;\n    let stateMatches = null;\n    return str.replace(re, function (full, sub, dollar, hash, n, s, attr, ofs, total) {\n        if (!empty(dollar)) {\n            return '$'; // $$\n        }\n        if (!empty(hash)) {\n            return fixCase(lexer, id); // default $#\n        }\n        if (!empty(n) && n < matches.length) {\n            return fixCase(lexer, matches[n]); // $n\n        }\n        if (!empty(attr) && lexer && typeof (lexer[attr]) === 'string') {\n            return lexer[attr]; //@attribute\n        }\n        if (stateMatches === null) { // split state on demand\n            stateMatches = state.split('.');\n            stateMatches.unshift(state);\n        }\n        if (!empty(s) && s < stateMatches.length) {\n            return fixCase(lexer, stateMatches[s]); //$Sn\n        }\n        return '';\n    });\n}\n/**\n * substituteMatchesRe is used on lexer regex rules and can substitutes predefined patterns:\n * \t\t$Sn => n'th part of state\n *\n */\nexport function substituteMatchesRe(lexer, str, state) {\n    const re = /\\$[sS](\\d\\d?)/g;\n    let stateMatches = null;\n    return str.replace(re, function (full, s) {\n        if (stateMatches === null) { // split state on demand\n            stateMatches = state.split('.');\n            stateMatches.unshift(state);\n        }\n        if (!empty(s) && s < stateMatches.length) {\n            return fixCase(lexer, stateMatches[s]); //$Sn\n        }\n        return '';\n    });\n}\n/**\n * Find the tokenizer rules for a specific state (i.e. next action)\n */\nexport function findRules(lexer, inState) {\n    let state = inState;\n    while (state && state.length > 0) {\n        const rules = lexer.tokenizer[state];\n        if (rules) {\n            return rules;\n        }\n        const idx = state.lastIndexOf('.');\n        if (idx < 0) {\n            state = null; // no further parent\n        }\n        else {\n            state = state.substr(0, idx);\n        }\n    }\n    return null;\n}\n/**\n * Is a certain state defined? In contrast to 'findRules' this works on a ILexerMin.\n * This is used during compilation where we may know the defined states\n * but not yet whether the corresponding rules are correct.\n */\nexport function stateExists(lexer, inState) {\n    let state = inState;\n    while (state && state.length > 0) {\n        const exist = lexer.stateNames[state];\n        if (exist) {\n            return true;\n        }\n        const idx = state.lastIndexOf('.');\n        if (idx < 0) {\n            state = null; // no further parent\n        }\n        else {\n            state = state.substr(0, idx);\n        }\n    }\n    return false;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/common/monarch/monarchCompile.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/*\n * This module only exports 'compile' which compiles a JSON language definition\n * into a typed and checked ILexer definition.\n */\nimport * as monarchCommon from './monarchCommon.js';\n/*\n * Type helpers\n *\n * Note: this is just for sanity checks on the JSON description which is\n * helpful for the programmer. No checks are done anymore once the lexer is\n * already 'compiled and checked'.\n *\n */\nfunction isArrayOf(elemType, obj) {\n    if (!obj) {\n        return false;\n    }\n    if (!(Array.isArray(obj))) {\n        return false;\n    }\n    for (const el of obj) {\n        if (!(elemType(el))) {\n            return false;\n        }\n    }\n    return true;\n}\nfunction bool(prop, defValue) {\n    if (typeof prop === 'boolean') {\n        return prop;\n    }\n    return defValue;\n}\nfunction string(prop, defValue) {\n    if (typeof (prop) === 'string') {\n        return prop;\n    }\n    return defValue;\n}\nfunction arrayToHash(array) {\n    const result = {};\n    for (const e of array) {\n        result[e] = true;\n    }\n    return result;\n}\nfunction createKeywordMatcher(arr, caseInsensitive = false) {\n    if (caseInsensitive) {\n        arr = arr.map(function (x) { return x.toLowerCase(); });\n    }\n    const hash = arrayToHash(arr);\n    if (caseInsensitive) {\n        return function (word) {\n            return hash[word.toLowerCase()] !== undefined && hash.hasOwnProperty(word.toLowerCase());\n        };\n    }\n    else {\n        return function (word) {\n            return hash[word] !== undefined && hash.hasOwnProperty(word);\n        };\n    }\n}\nfunction compileRegExp(lexer, str, handleSn) {\n    // @@ must be interpreted as a literal @, so we replace all occurences of @@ with a placeholder character\n    str = str.replace(/@@/g, `\\x01`);\n    let n = 0;\n    let hadExpansion;\n    do {\n        hadExpansion = false;\n        str = str.replace(/@(\\w+)/g, function (s, attr) {\n            hadExpansion = true;\n            let sub = '';\n            if (typeof (lexer[attr]) === 'string') {\n                sub = lexer[attr];\n            }\n            else if (lexer[attr] && lexer[attr] instanceof RegExp) {\n                sub = lexer[attr].source;\n            }\n            else {\n                if (lexer[attr] === undefined) {\n                    throw monarchCommon.createError(lexer, 'language definition does not contain attribute \\'' + attr + '\\', used at: ' + str);\n                }\n                else {\n                    throw monarchCommon.createError(lexer, 'attribute reference \\'' + attr + '\\' must be a string, used at: ' + str);\n                }\n            }\n            return (monarchCommon.empty(sub) ? '' : '(?:' + sub + ')');\n        });\n        n++;\n    } while (hadExpansion && n < 5);\n    // handle escaped @@\n    str = str.replace(/\\x01/g, '@');\n    const flags = (lexer.ignoreCase ? 'i' : '') + (lexer.unicode ? 'u' : '');\n    // handle $Sn\n    if (handleSn) {\n        const match = str.match(/\\$[sS](\\d\\d?)/g);\n        if (match) {\n            let lastState = null;\n            let lastRegEx = null;\n            return (state) => {\n                if (lastRegEx && lastState === state) {\n                    return lastRegEx;\n                }\n                lastState = state;\n                lastRegEx = new RegExp(monarchCommon.substituteMatchesRe(lexer, str, state), flags);\n                return lastRegEx;\n            };\n        }\n    }\n    return new RegExp(str, flags);\n}\n/**\n * Compiles guard functions for case matches.\n * This compiles 'cases' attributes into efficient match functions.\n *\n */\nfunction selectScrutinee(id, matches, state, num) {\n    if (num < 0) {\n        return id;\n    }\n    if (num < matches.length) {\n        return matches[num];\n    }\n    if (num >= 100) {\n        num = num - 100;\n        const parts = state.split('.');\n        parts.unshift(state);\n        if (num < parts.length) {\n            return parts[num];\n        }\n    }\n    return null;\n}\nfunction createGuard(lexer, ruleName, tkey, val) {\n    // get the scrutinee and pattern\n    let scrut = -1; // -1: $!, 0-99: $n, 100+n: $Sn\n    let oppat = tkey;\n    let matches = tkey.match(/^\\$(([sS]?)(\\d\\d?)|#)(.*)$/);\n    if (matches) {\n        if (matches[3]) { // if digits\n            scrut = parseInt(matches[3]);\n            if (matches[2]) {\n                scrut = scrut + 100; // if [sS] present\n            }\n        }\n        oppat = matches[4];\n    }\n    // get operator\n    let op = '~';\n    let pat = oppat;\n    if (!oppat || oppat.length === 0) {\n        op = '!=';\n        pat = '';\n    }\n    else if (/^\\w*$/.test(pat)) { // just a word\n        op = '==';\n    }\n    else {\n        matches = oppat.match(/^(@|!@|~|!~|==|!=)(.*)$/);\n        if (matches) {\n            op = matches[1];\n            pat = matches[2];\n        }\n    }\n    // set the tester function\n    let tester;\n    // special case a regexp that matches just words\n    if ((op === '~' || op === '!~') && /^(\\w|\\|)*$/.test(pat)) {\n        const inWords = createKeywordMatcher(pat.split('|'), lexer.ignoreCase);\n        tester = function (s) { return (op === '~' ? inWords(s) : !inWords(s)); };\n    }\n    else if (op === '@' || op === '!@') {\n        const words = lexer[pat];\n        if (!words) {\n            throw monarchCommon.createError(lexer, 'the @ match target \\'' + pat + '\\' is not defined, in rule: ' + ruleName);\n        }\n        if (!(isArrayOf(function (elem) { return (typeof (elem) === 'string'); }, words))) {\n            throw monarchCommon.createError(lexer, 'the @ match target \\'' + pat + '\\' must be an array of strings, in rule: ' + ruleName);\n        }\n        const inWords = createKeywordMatcher(words, lexer.ignoreCase);\n        tester = function (s) { return (op === '@' ? inWords(s) : !inWords(s)); };\n    }\n    else if (op === '~' || op === '!~') {\n        if (pat.indexOf('$') < 0) {\n            // precompile regular expression\n            const re = compileRegExp(lexer, '^' + pat + '$', false);\n            tester = function (s) { return (op === '~' ? re.test(s) : !re.test(s)); };\n        }\n        else {\n            tester = function (s, id, matches, state) {\n                const re = compileRegExp(lexer, '^' + monarchCommon.substituteMatches(lexer, pat, id, matches, state) + '$', false);\n                return re.test(s);\n            };\n        }\n    }\n    else { // if (op==='==' || op==='!=') {\n        if (pat.indexOf('$') < 0) {\n            const patx = monarchCommon.fixCase(lexer, pat);\n            tester = function (s) { return (op === '==' ? s === patx : s !== patx); };\n        }\n        else {\n            const patx = monarchCommon.fixCase(lexer, pat);\n            tester = function (s, id, matches, state, eos) {\n                const patexp = monarchCommon.substituteMatches(lexer, patx, id, matches, state);\n                return (op === '==' ? s === patexp : s !== patexp);\n            };\n        }\n    }\n    // return the branch object\n    if (scrut === -1) {\n        return {\n            name: tkey, value: val, test: function (id, matches, state, eos) {\n                return tester(id, id, matches, state, eos);\n            }\n        };\n    }\n    else {\n        return {\n            name: tkey, value: val, test: function (id, matches, state, eos) {\n                const scrutinee = selectScrutinee(id, matches, state, scrut);\n                return tester(!scrutinee ? '' : scrutinee, id, matches, state, eos);\n            }\n        };\n    }\n}\n/**\n * Compiles an action: i.e. optimize regular expressions and case matches\n * and do many sanity checks.\n *\n * This is called only during compilation but if the lexer definition\n * contains user functions as actions (which is usually not allowed), then this\n * may be called during lexing. It is important therefore to compile common cases efficiently\n */\nfunction compileAction(lexer, ruleName, action) {\n    if (!action) {\n        return { token: '' };\n    }\n    else if (typeof (action) === 'string') {\n        return action; // { token: action };\n    }\n    else if (action.token || action.token === '') {\n        if (typeof (action.token) !== 'string') {\n            throw monarchCommon.createError(lexer, 'a \\'token\\' attribute must be of type string, in rule: ' + ruleName);\n        }\n        else {\n            // only copy specific typed fields (only happens once during compile Lexer)\n            const newAction = { token: action.token };\n            if (action.token.indexOf('$') >= 0) {\n                newAction.tokenSubst = true;\n            }\n            if (typeof (action.bracket) === 'string') {\n                if (action.bracket === '@open') {\n                    newAction.bracket = 1 /* monarchCommon.MonarchBracket.Open */;\n                }\n                else if (action.bracket === '@close') {\n                    newAction.bracket = -1 /* monarchCommon.MonarchBracket.Close */;\n                }\n                else {\n                    throw monarchCommon.createError(lexer, 'a \\'bracket\\' attribute must be either \\'@open\\' or \\'@close\\', in rule: ' + ruleName);\n                }\n            }\n            if (action.next) {\n                if (typeof (action.next) !== 'string') {\n                    throw monarchCommon.createError(lexer, 'the next state must be a string value in rule: ' + ruleName);\n                }\n                else {\n                    let next = action.next;\n                    if (!/^(@pop|@push|@popall)$/.test(next)) {\n                        if (next[0] === '@') {\n                            next = next.substr(1); // peel off starting @ sign\n                        }\n                        if (next.indexOf('$') < 0) { // no dollar substitution, we can check if the state exists\n                            if (!monarchCommon.stateExists(lexer, monarchCommon.substituteMatches(lexer, next, '', [], ''))) {\n                                throw monarchCommon.createError(lexer, 'the next state \\'' + action.next + '\\' is not defined in rule: ' + ruleName);\n                            }\n                        }\n                    }\n                    newAction.next = next;\n                }\n            }\n            if (typeof (action.goBack) === 'number') {\n                newAction.goBack = action.goBack;\n            }\n            if (typeof (action.switchTo) === 'string') {\n                newAction.switchTo = action.switchTo;\n            }\n            if (typeof (action.log) === 'string') {\n                newAction.log = action.log;\n            }\n            if (typeof (action.nextEmbedded) === 'string') {\n                newAction.nextEmbedded = action.nextEmbedded;\n                lexer.usesEmbedded = true;\n            }\n            return newAction;\n        }\n    }\n    else if (Array.isArray(action)) {\n        const results = [];\n        for (let i = 0, len = action.length; i < len; i++) {\n            results[i] = compileAction(lexer, ruleName, action[i]);\n        }\n        return { group: results };\n    }\n    else if (action.cases) {\n        // build an array of test cases\n        const cases = [];\n        // for each case, push a test function and result value\n        for (const tkey in action.cases) {\n            if (action.cases.hasOwnProperty(tkey)) {\n                const val = compileAction(lexer, ruleName, action.cases[tkey]);\n                // what kind of case\n                if (tkey === '@default' || tkey === '@' || tkey === '') {\n                    cases.push({ test: undefined, value: val, name: tkey });\n                }\n                else if (tkey === '@eos') {\n                    cases.push({ test: function (id, matches, state, eos) { return eos; }, value: val, name: tkey });\n                }\n                else {\n                    cases.push(createGuard(lexer, ruleName, tkey, val)); // call separate function to avoid local variable capture\n                }\n            }\n        }\n        // create a matching function\n        const def = lexer.defaultToken;\n        return {\n            test: function (id, matches, state, eos) {\n                for (const _case of cases) {\n                    const didmatch = (!_case.test || _case.test(id, matches, state, eos));\n                    if (didmatch) {\n                        return _case.value;\n                    }\n                }\n                return def;\n            }\n        };\n    }\n    else {\n        throw monarchCommon.createError(lexer, 'an action must be a string, an object with a \\'token\\' or \\'cases\\' attribute, or an array of actions; in rule: ' + ruleName);\n    }\n}\n/**\n * Helper class for creating matching rules\n */\nclass Rule {\n    constructor(name) {\n        this.regex = new RegExp('');\n        this.action = { token: '' };\n        this.matchOnlyAtLineStart = false;\n        this.name = '';\n        this.name = name;\n    }\n    setRegex(lexer, re) {\n        let sregex;\n        if (typeof (re) === 'string') {\n            sregex = re;\n        }\n        else if (re instanceof RegExp) {\n            sregex = re.source;\n        }\n        else {\n            throw monarchCommon.createError(lexer, 'rules must start with a match string or regular expression: ' + this.name);\n        }\n        this.matchOnlyAtLineStart = (sregex.length > 0 && sregex[0] === '^');\n        this.name = this.name + ': ' + sregex;\n        this.regex = compileRegExp(lexer, '^(?:' + (this.matchOnlyAtLineStart ? sregex.substr(1) : sregex) + ')', true);\n    }\n    setAction(lexer, act) {\n        this.action = compileAction(lexer, this.name, act);\n    }\n    resolveRegex(state) {\n        if (this.regex instanceof RegExp) {\n            return this.regex;\n        }\n        else {\n            return this.regex(state);\n        }\n    }\n}\n/**\n * Compiles a json description function into json where all regular expressions,\n * case matches etc, are compiled and all include rules are expanded.\n * We also compile the bracket definitions, supply defaults, and do many sanity checks.\n * If the 'jsonStrict' parameter is 'false', we allow at certain locations\n * regular expression objects and functions that get called during lexing.\n * (Currently we have no samples that need this so perhaps we should always have\n * jsonStrict to true).\n */\nexport function compile(languageId, json) {\n    if (!json || typeof (json) !== 'object') {\n        throw new Error('Monarch: expecting a language definition object');\n    }\n    // Create our lexer\n    const lexer = {};\n    lexer.languageId = languageId;\n    lexer.includeLF = bool(json.includeLF, false);\n    lexer.noThrow = false; // raise exceptions during compilation\n    lexer.maxStack = 100;\n    // Set standard fields: be defensive about types\n    lexer.start = (typeof json.start === 'string' ? json.start : null);\n    lexer.ignoreCase = bool(json.ignoreCase, false);\n    lexer.unicode = bool(json.unicode, false);\n    lexer.tokenPostfix = string(json.tokenPostfix, '.' + lexer.languageId);\n    lexer.defaultToken = string(json.defaultToken, 'source');\n    lexer.usesEmbedded = false; // becomes true if we find a nextEmbedded action\n    // For calling compileAction later on\n    const lexerMin = json;\n    lexerMin.languageId = languageId;\n    lexerMin.includeLF = lexer.includeLF;\n    lexerMin.ignoreCase = lexer.ignoreCase;\n    lexerMin.unicode = lexer.unicode;\n    lexerMin.noThrow = lexer.noThrow;\n    lexerMin.usesEmbedded = lexer.usesEmbedded;\n    lexerMin.stateNames = json.tokenizer;\n    lexerMin.defaultToken = lexer.defaultToken;\n    // Compile an array of rules into newrules where RegExp objects are created.\n    function addRules(state, newrules, rules) {\n        for (const rule of rules) {\n            let include = rule.include;\n            if (include) {\n                if (typeof (include) !== 'string') {\n                    throw monarchCommon.createError(lexer, 'an \\'include\\' attribute must be a string at: ' + state);\n                }\n                if (include[0] === '@') {\n                    include = include.substr(1); // peel off starting @\n                }\n                if (!json.tokenizer[include]) {\n                    throw monarchCommon.createError(lexer, 'include target \\'' + include + '\\' is not defined at: ' + state);\n                }\n                addRules(state + '.' + include, newrules, json.tokenizer[include]);\n            }\n            else {\n                const newrule = new Rule(state);\n                // Set up new rule attributes\n                if (Array.isArray(rule) && rule.length >= 1 && rule.length <= 3) {\n                    newrule.setRegex(lexerMin, rule[0]);\n                    if (rule.length >= 3) {\n                        if (typeof (rule[1]) === 'string') {\n                            newrule.setAction(lexerMin, { token: rule[1], next: rule[2] });\n                        }\n                        else if (typeof (rule[1]) === 'object') {\n                            const rule1 = rule[1];\n                            rule1.next = rule[2];\n                            newrule.setAction(lexerMin, rule1);\n                        }\n                        else {\n                            throw monarchCommon.createError(lexer, 'a next state as the last element of a rule can only be given if the action is either an object or a string, at: ' + state);\n                        }\n                    }\n                    else {\n                        newrule.setAction(lexerMin, rule[1]);\n                    }\n                }\n                else {\n                    if (!rule.regex) {\n                        throw monarchCommon.createError(lexer, 'a rule must either be an array, or an object with a \\'regex\\' or \\'include\\' field at: ' + state);\n                    }\n                    if (rule.name) {\n                        if (typeof rule.name === 'string') {\n                            newrule.name = rule.name;\n                        }\n                    }\n                    if (rule.matchOnlyAtStart) {\n                        newrule.matchOnlyAtLineStart = bool(rule.matchOnlyAtLineStart, false);\n                    }\n                    newrule.setRegex(lexerMin, rule.regex);\n                    newrule.setAction(lexerMin, rule.action);\n                }\n                newrules.push(newrule);\n            }\n        }\n    }\n    // compile the tokenizer rules\n    if (!json.tokenizer || typeof (json.tokenizer) !== 'object') {\n        throw monarchCommon.createError(lexer, 'a language definition must define the \\'tokenizer\\' attribute as an object');\n    }\n    lexer.tokenizer = [];\n    for (const key in json.tokenizer) {\n        if (json.tokenizer.hasOwnProperty(key)) {\n            if (!lexer.start) {\n                lexer.start = key;\n            }\n            const rules = json.tokenizer[key];\n            lexer.tokenizer[key] = new Array();\n            addRules('tokenizer.' + key, lexer.tokenizer[key], rules);\n        }\n    }\n    lexer.usesEmbedded = lexerMin.usesEmbedded; // can be set during compileAction\n    // Set simple brackets\n    if (json.brackets) {\n        if (!(Array.isArray(json.brackets))) {\n            throw monarchCommon.createError(lexer, 'the \\'brackets\\' attribute must be defined as an array');\n        }\n    }\n    else {\n        json.brackets = [\n            { open: '{', close: '}', token: 'delimiter.curly' },\n            { open: '[', close: ']', token: 'delimiter.square' },\n            { open: '(', close: ')', token: 'delimiter.parenthesis' },\n            { open: '<', close: '>', token: 'delimiter.angle' }\n        ];\n    }\n    const brackets = [];\n    for (const el of json.brackets) {\n        let desc = el;\n        if (desc && Array.isArray(desc) && desc.length === 3) {\n            desc = { token: desc[2], open: desc[0], close: desc[1] };\n        }\n        if (desc.open === desc.close) {\n            throw monarchCommon.createError(lexer, 'open and close brackets in a \\'brackets\\' attribute must be different: ' + desc.open +\n                '\\n hint: use the \\'bracket\\' attribute if matching on equal brackets is required.');\n        }\n        if (typeof desc.open === 'string' && typeof desc.token === 'string' && typeof desc.close === 'string') {\n            brackets.push({\n                token: desc.token + lexer.tokenPostfix,\n                open: monarchCommon.fixCase(lexer, desc.open),\n                close: monarchCommon.fixCase(lexer, desc.close)\n            });\n        }\n        else {\n            throw monarchCommon.createError(lexer, 'every element in the \\'brackets\\' array must be a \\'{open,close,token}\\' object or array');\n        }\n    }\n    lexer.brackets = brackets;\n    // Disable throw so the syntax highlighter goes, no matter what\n    lexer.noThrow = true;\n    return lexer;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/common/monarch/monarchLexer.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar MonarchTokenizer_1;\n/**\n * Create a syntax highighter with a fully declarative JSON style lexer description\n * using regular expressions.\n */\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport * as languages from '../../../common/languages.js';\nimport { NullState, nullTokenizeEncoded, nullTokenize } from '../../../common/languages/nullTokenize.js';\nimport * as monarchCommon from './monarchCommon.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nconst CACHE_STACK_DEPTH = 5;\n/**\n * Reuse the same stack elements up to a certain depth.\n */\nclass MonarchStackElementFactory {\n    static create(parent, state) {\n        return this._INSTANCE.create(parent, state);\n    }\n    constructor(maxCacheDepth) {\n        this._maxCacheDepth = maxCacheDepth;\n        this._entries = Object.create(null);\n    }\n    create(parent, state) {\n        if (parent !== null && parent.depth >= this._maxCacheDepth) {\n            // no caching above a certain depth\n            return new MonarchStackElement(parent, state);\n        }\n        let stackElementId = MonarchStackElement.getStackElementId(parent);\n        if (stackElementId.length > 0) {\n            stackElementId += '|';\n        }\n        stackElementId += state;\n        let result = this._entries[stackElementId];\n        if (result) {\n            return result;\n        }\n        result = new MonarchStackElement(parent, state);\n        this._entries[stackElementId] = result;\n        return result;\n    }\n}\nMonarchStackElementFactory._INSTANCE = new MonarchStackElementFactory(CACHE_STACK_DEPTH);\nclass MonarchStackElement {\n    constructor(parent, state) {\n        this.parent = parent;\n        this.state = state;\n        this.depth = (this.parent ? this.parent.depth : 0) + 1;\n    }\n    static getStackElementId(element) {\n        let result = '';\n        while (element !== null) {\n            if (result.length > 0) {\n                result += '|';\n            }\n            result += element.state;\n            element = element.parent;\n        }\n        return result;\n    }\n    static _equals(a, b) {\n        while (a !== null && b !== null) {\n            if (a === b) {\n                return true;\n            }\n            if (a.state !== b.state) {\n                return false;\n            }\n            a = a.parent;\n            b = b.parent;\n        }\n        if (a === null && b === null) {\n            return true;\n        }\n        return false;\n    }\n    equals(other) {\n        return MonarchStackElement._equals(this, other);\n    }\n    push(state) {\n        return MonarchStackElementFactory.create(this, state);\n    }\n    pop() {\n        return this.parent;\n    }\n    popall() {\n        let result = this;\n        while (result.parent) {\n            result = result.parent;\n        }\n        return result;\n    }\n    switchTo(state) {\n        return MonarchStackElementFactory.create(this.parent, state);\n    }\n}\nclass EmbeddedLanguageData {\n    constructor(languageId, state) {\n        this.languageId = languageId;\n        this.state = state;\n    }\n    equals(other) {\n        return (this.languageId === other.languageId\n            && this.state.equals(other.state));\n    }\n    clone() {\n        const stateClone = this.state.clone();\n        // save an object\n        if (stateClone === this.state) {\n            return this;\n        }\n        return new EmbeddedLanguageData(this.languageId, this.state);\n    }\n}\n/**\n * Reuse the same line states up to a certain depth.\n */\nclass MonarchLineStateFactory {\n    static create(stack, embeddedLanguageData) {\n        return this._INSTANCE.create(stack, embeddedLanguageData);\n    }\n    constructor(maxCacheDepth) {\n        this._maxCacheDepth = maxCacheDepth;\n        this._entries = Object.create(null);\n    }\n    create(stack, embeddedLanguageData) {\n        if (embeddedLanguageData !== null) {\n            // no caching when embedding\n            return new MonarchLineState(stack, embeddedLanguageData);\n        }\n        if (stack !== null && stack.depth >= this._maxCacheDepth) {\n            // no caching above a certain depth\n            return new MonarchLineState(stack, embeddedLanguageData);\n        }\n        const stackElementId = MonarchStackElement.getStackElementId(stack);\n        let result = this._entries[stackElementId];\n        if (result) {\n            return result;\n        }\n        result = new MonarchLineState(stack, null);\n        this._entries[stackElementId] = result;\n        return result;\n    }\n}\nMonarchLineStateFactory._INSTANCE = new MonarchLineStateFactory(CACHE_STACK_DEPTH);\nclass MonarchLineState {\n    constructor(stack, embeddedLanguageData) {\n        this.stack = stack;\n        this.embeddedLanguageData = embeddedLanguageData;\n    }\n    clone() {\n        const embeddedlanguageDataClone = this.embeddedLanguageData ? this.embeddedLanguageData.clone() : null;\n        // save an object\n        if (embeddedlanguageDataClone === this.embeddedLanguageData) {\n            return this;\n        }\n        return MonarchLineStateFactory.create(this.stack, this.embeddedLanguageData);\n    }\n    equals(other) {\n        if (!(other instanceof MonarchLineState)) {\n            return false;\n        }\n        if (!this.stack.equals(other.stack)) {\n            return false;\n        }\n        if (this.embeddedLanguageData === null && other.embeddedLanguageData === null) {\n            return true;\n        }\n        if (this.embeddedLanguageData === null || other.embeddedLanguageData === null) {\n            return false;\n        }\n        return this.embeddedLanguageData.equals(other.embeddedLanguageData);\n    }\n}\nclass MonarchClassicTokensCollector {\n    constructor() {\n        this._tokens = [];\n        this._languageId = null;\n        this._lastTokenType = null;\n        this._lastTokenLanguage = null;\n    }\n    enterLanguage(languageId) {\n        this._languageId = languageId;\n    }\n    emit(startOffset, type) {\n        if (this._lastTokenType === type && this._lastTokenLanguage === this._languageId) {\n            return;\n        }\n        this._lastTokenType = type;\n        this._lastTokenLanguage = this._languageId;\n        this._tokens.push(new languages.Token(startOffset, type, this._languageId));\n    }\n    nestedLanguageTokenize(embeddedLanguageLine, hasEOL, embeddedLanguageData, offsetDelta) {\n        const nestedLanguageId = embeddedLanguageData.languageId;\n        const embeddedModeState = embeddedLanguageData.state;\n        const nestedLanguageTokenizationSupport = languages.TokenizationRegistry.get(nestedLanguageId);\n        if (!nestedLanguageTokenizationSupport) {\n            this.enterLanguage(nestedLanguageId);\n            this.emit(offsetDelta, '');\n            return embeddedModeState;\n        }\n        const nestedResult = nestedLanguageTokenizationSupport.tokenize(embeddedLanguageLine, hasEOL, embeddedModeState);\n        if (offsetDelta !== 0) {\n            for (const token of nestedResult.tokens) {\n                this._tokens.push(new languages.Token(token.offset + offsetDelta, token.type, token.language));\n            }\n        }\n        else {\n            this._tokens = this._tokens.concat(nestedResult.tokens);\n        }\n        this._lastTokenType = null;\n        this._lastTokenLanguage = null;\n        this._languageId = null;\n        return nestedResult.endState;\n    }\n    finalize(endState) {\n        return new languages.TokenizationResult(this._tokens, endState);\n    }\n}\nclass MonarchModernTokensCollector {\n    constructor(languageService, theme) {\n        this._languageService = languageService;\n        this._theme = theme;\n        this._prependTokens = null;\n        this._tokens = [];\n        this._currentLanguageId = 0 /* LanguageId.Null */;\n        this._lastTokenMetadata = 0;\n    }\n    enterLanguage(languageId) {\n        this._currentLanguageId = this._languageService.languageIdCodec.encodeLanguageId(languageId);\n    }\n    emit(startOffset, type) {\n        const metadata = this._theme.match(this._currentLanguageId, type) | 1024 /* MetadataConsts.BALANCED_BRACKETS_MASK */;\n        if (this._lastTokenMetadata === metadata) {\n            return;\n        }\n        this._lastTokenMetadata = metadata;\n        this._tokens.push(startOffset);\n        this._tokens.push(metadata);\n    }\n    static _merge(a, b, c) {\n        const aLen = (a !== null ? a.length : 0);\n        const bLen = b.length;\n        const cLen = (c !== null ? c.length : 0);\n        if (aLen === 0 && bLen === 0 && cLen === 0) {\n            return new Uint32Array(0);\n        }\n        if (aLen === 0 && bLen === 0) {\n            return c;\n        }\n        if (bLen === 0 && cLen === 0) {\n            return a;\n        }\n        const result = new Uint32Array(aLen + bLen + cLen);\n        if (a !== null) {\n            result.set(a);\n        }\n        for (let i = 0; i < bLen; i++) {\n            result[aLen + i] = b[i];\n        }\n        if (c !== null) {\n            result.set(c, aLen + bLen);\n        }\n        return result;\n    }\n    nestedLanguageTokenize(embeddedLanguageLine, hasEOL, embeddedLanguageData, offsetDelta) {\n        const nestedLanguageId = embeddedLanguageData.languageId;\n        const embeddedModeState = embeddedLanguageData.state;\n        const nestedLanguageTokenizationSupport = languages.TokenizationRegistry.get(nestedLanguageId);\n        if (!nestedLanguageTokenizationSupport) {\n            this.enterLanguage(nestedLanguageId);\n            this.emit(offsetDelta, '');\n            return embeddedModeState;\n        }\n        const nestedResult = nestedLanguageTokenizationSupport.tokenizeEncoded(embeddedLanguageLine, hasEOL, embeddedModeState);\n        if (offsetDelta !== 0) {\n            for (let i = 0, len = nestedResult.tokens.length; i < len; i += 2) {\n                nestedResult.tokens[i] += offsetDelta;\n            }\n        }\n        this._prependTokens = MonarchModernTokensCollector._merge(this._prependTokens, this._tokens, nestedResult.tokens);\n        this._tokens = [];\n        this._currentLanguageId = 0;\n        this._lastTokenMetadata = 0;\n        return nestedResult.endState;\n    }\n    finalize(endState) {\n        return new languages.EncodedTokenizationResult(MonarchModernTokensCollector._merge(this._prependTokens, this._tokens, null), endState);\n    }\n}\nlet MonarchTokenizer = MonarchTokenizer_1 = class MonarchTokenizer extends Disposable {\n    constructor(languageService, standaloneThemeService, languageId, lexer, _configurationService) {\n        super();\n        this._configurationService = _configurationService;\n        this._languageService = languageService;\n        this._standaloneThemeService = standaloneThemeService;\n        this._languageId = languageId;\n        this._lexer = lexer;\n        this._embeddedLanguages = Object.create(null);\n        this.embeddedLoaded = Promise.resolve(undefined);\n        // Set up listening for embedded modes\n        let emitting = false;\n        this._register(languages.TokenizationRegistry.onDidChange((e) => {\n            if (emitting) {\n                return;\n            }\n            let isOneOfMyEmbeddedModes = false;\n            for (let i = 0, len = e.changedLanguages.length; i < len; i++) {\n                const language = e.changedLanguages[i];\n                if (this._embeddedLanguages[language]) {\n                    isOneOfMyEmbeddedModes = true;\n                    break;\n                }\n            }\n            if (isOneOfMyEmbeddedModes) {\n                emitting = true;\n                languages.TokenizationRegistry.handleChange([this._languageId]);\n                emitting = false;\n            }\n        }));\n        this._maxTokenizationLineLength = this._configurationService.getValue('editor.maxTokenizationLineLength', {\n            overrideIdentifier: this._languageId\n        });\n        this._register(this._configurationService.onDidChangeConfiguration(e => {\n            if (e.affectsConfiguration('editor.maxTokenizationLineLength')) {\n                this._maxTokenizationLineLength = this._configurationService.getValue('editor.maxTokenizationLineLength', {\n                    overrideIdentifier: this._languageId\n                });\n            }\n        }));\n    }\n    getLoadStatus() {\n        const promises = [];\n        for (const nestedLanguageId in this._embeddedLanguages) {\n            const tokenizationSupport = languages.TokenizationRegistry.get(nestedLanguageId);\n            if (tokenizationSupport) {\n                // The nested language is already loaded\n                if (tokenizationSupport instanceof MonarchTokenizer_1) {\n                    const nestedModeStatus = tokenizationSupport.getLoadStatus();\n                    if (nestedModeStatus.loaded === false) {\n                        promises.push(nestedModeStatus.promise);\n                    }\n                }\n                continue;\n            }\n            if (!languages.TokenizationRegistry.isResolved(nestedLanguageId)) {\n                // The nested language is in the process of being loaded\n                promises.push(languages.TokenizationRegistry.getOrCreate(nestedLanguageId));\n            }\n        }\n        if (promises.length === 0) {\n            return {\n                loaded: true\n            };\n        }\n        return {\n            loaded: false,\n            promise: Promise.all(promises).then(_ => undefined)\n        };\n    }\n    getInitialState() {\n        const rootState = MonarchStackElementFactory.create(null, this._lexer.start);\n        return MonarchLineStateFactory.create(rootState, null);\n    }\n    tokenize(line, hasEOL, lineState) {\n        if (line.length >= this._maxTokenizationLineLength) {\n            return nullTokenize(this._languageId, lineState);\n        }\n        const tokensCollector = new MonarchClassicTokensCollector();\n        const endLineState = this._tokenize(line, hasEOL, lineState, tokensCollector);\n        return tokensCollector.finalize(endLineState);\n    }\n    tokenizeEncoded(line, hasEOL, lineState) {\n        if (line.length >= this._maxTokenizationLineLength) {\n            return nullTokenizeEncoded(this._languageService.languageIdCodec.encodeLanguageId(this._languageId), lineState);\n        }\n        const tokensCollector = new MonarchModernTokensCollector(this._languageService, this._standaloneThemeService.getColorTheme().tokenTheme);\n        const endLineState = this._tokenize(line, hasEOL, lineState, tokensCollector);\n        return tokensCollector.finalize(endLineState);\n    }\n    _tokenize(line, hasEOL, lineState, collector) {\n        if (lineState.embeddedLanguageData) {\n            return this._nestedTokenize(line, hasEOL, lineState, 0, collector);\n        }\n        else {\n            return this._myTokenize(line, hasEOL, lineState, 0, collector);\n        }\n    }\n    _findLeavingNestedLanguageOffset(line, state) {\n        let rules = this._lexer.tokenizer[state.stack.state];\n        if (!rules) {\n            rules = monarchCommon.findRules(this._lexer, state.stack.state); // do parent matching\n            if (!rules) {\n                throw monarchCommon.createError(this._lexer, 'tokenizer state is not defined: ' + state.stack.state);\n            }\n        }\n        let popOffset = -1;\n        let hasEmbeddedPopRule = false;\n        for (const rule of rules) {\n            if (!monarchCommon.isIAction(rule.action) || rule.action.nextEmbedded !== '@pop') {\n                continue;\n            }\n            hasEmbeddedPopRule = true;\n            let regex = rule.resolveRegex(state.stack.state);\n            const regexSource = regex.source;\n            if (regexSource.substr(0, 4) === '^(?:' && regexSource.substr(regexSource.length - 1, 1) === ')') {\n                const flags = (regex.ignoreCase ? 'i' : '') + (regex.unicode ? 'u' : '');\n                regex = new RegExp(regexSource.substr(4, regexSource.length - 5), flags);\n            }\n            const result = line.search(regex);\n            if (result === -1 || (result !== 0 && rule.matchOnlyAtLineStart)) {\n                continue;\n            }\n            if (popOffset === -1 || result < popOffset) {\n                popOffset = result;\n            }\n        }\n        if (!hasEmbeddedPopRule) {\n            throw monarchCommon.createError(this._lexer, 'no rule containing nextEmbedded: \"@pop\" in tokenizer embedded state: ' + state.stack.state);\n        }\n        return popOffset;\n    }\n    _nestedTokenize(line, hasEOL, lineState, offsetDelta, tokensCollector) {\n        const popOffset = this._findLeavingNestedLanguageOffset(line, lineState);\n        if (popOffset === -1) {\n            // tokenization will not leave nested language\n            const nestedEndState = tokensCollector.nestedLanguageTokenize(line, hasEOL, lineState.embeddedLanguageData, offsetDelta);\n            return MonarchLineStateFactory.create(lineState.stack, new EmbeddedLanguageData(lineState.embeddedLanguageData.languageId, nestedEndState));\n        }\n        const nestedLanguageLine = line.substring(0, popOffset);\n        if (nestedLanguageLine.length > 0) {\n            // tokenize with the nested language\n            tokensCollector.nestedLanguageTokenize(nestedLanguageLine, false, lineState.embeddedLanguageData, offsetDelta);\n        }\n        const restOfTheLine = line.substring(popOffset);\n        return this._myTokenize(restOfTheLine, hasEOL, lineState, offsetDelta + popOffset, tokensCollector);\n    }\n    _safeRuleName(rule) {\n        if (rule) {\n            return rule.name;\n        }\n        return '(unknown)';\n    }\n    _myTokenize(lineWithoutLF, hasEOL, lineState, offsetDelta, tokensCollector) {\n        tokensCollector.enterLanguage(this._languageId);\n        const lineWithoutLFLength = lineWithoutLF.length;\n        const line = (hasEOL && this._lexer.includeLF ? lineWithoutLF + '\\n' : lineWithoutLF);\n        const lineLength = line.length;\n        let embeddedLanguageData = lineState.embeddedLanguageData;\n        let stack = lineState.stack;\n        let pos = 0;\n        let groupMatching = null;\n        // See https://github.com/microsoft/monaco-editor/issues/1235\n        // Evaluate rules at least once for an empty line\n        let forceEvaluation = true;\n        while (forceEvaluation || pos < lineLength) {\n            const pos0 = pos;\n            const stackLen0 = stack.depth;\n            const groupLen0 = groupMatching ? groupMatching.groups.length : 0;\n            const state = stack.state;\n            let matches = null;\n            let matched = null;\n            let action = null;\n            let rule = null;\n            let enteringEmbeddedLanguage = null;\n            // check if we need to process group matches first\n            if (groupMatching) {\n                matches = groupMatching.matches;\n                const groupEntry = groupMatching.groups.shift();\n                matched = groupEntry.matched;\n                action = groupEntry.action;\n                rule = groupMatching.rule;\n                // cleanup if necessary\n                if (groupMatching.groups.length === 0) {\n                    groupMatching = null;\n                }\n            }\n            else {\n                // otherwise we match on the token stream\n                if (!forceEvaluation && pos >= lineLength) {\n                    // nothing to do\n                    break;\n                }\n                forceEvaluation = false;\n                // get the rules for this state\n                let rules = this._lexer.tokenizer[state];\n                if (!rules) {\n                    rules = monarchCommon.findRules(this._lexer, state); // do parent matching\n                    if (!rules) {\n                        throw monarchCommon.createError(this._lexer, 'tokenizer state is not defined: ' + state);\n                    }\n                }\n                // try each rule until we match\n                const restOfLine = line.substr(pos);\n                for (const rule of rules) {\n                    if (pos === 0 || !rule.matchOnlyAtLineStart) {\n                        matches = restOfLine.match(rule.resolveRegex(state));\n                        if (matches) {\n                            matched = matches[0];\n                            action = rule.action;\n                            break;\n                        }\n                    }\n                }\n            }\n            // We matched 'rule' with 'matches' and 'action'\n            if (!matches) {\n                matches = [''];\n                matched = '';\n            }\n            if (!action) {\n                // bad: we didn't match anything, and there is no action to take\n                // we need to advance the stream or we get progress trouble\n                if (pos < lineLength) {\n                    matches = [line.charAt(pos)];\n                    matched = matches[0];\n                }\n                action = this._lexer.defaultToken;\n            }\n            if (matched === null) {\n                // should never happen, needed for strict null checking\n                break;\n            }\n            // advance stream\n            pos += matched.length;\n            // maybe call action function (used for 'cases')\n            while (monarchCommon.isFuzzyAction(action) && monarchCommon.isIAction(action) && action.test) {\n                action = action.test(matched, matches, state, pos === lineLength);\n            }\n            let result = null;\n            // set the result: either a string or an array of actions\n            if (typeof action === 'string' || Array.isArray(action)) {\n                result = action;\n            }\n            else if (action.group) {\n                result = action.group;\n            }\n            else if (action.token !== null && action.token !== undefined) {\n                // do $n replacements?\n                if (action.tokenSubst) {\n                    result = monarchCommon.substituteMatches(this._lexer, action.token, matched, matches, state);\n                }\n                else {\n                    result = action.token;\n                }\n                // enter embedded language?\n                if (action.nextEmbedded) {\n                    if (action.nextEmbedded === '@pop') {\n                        if (!embeddedLanguageData) {\n                            throw monarchCommon.createError(this._lexer, 'cannot pop embedded language if not inside one');\n                        }\n                        embeddedLanguageData = null;\n                    }\n                    else if (embeddedLanguageData) {\n                        throw monarchCommon.createError(this._lexer, 'cannot enter embedded language from within an embedded language');\n                    }\n                    else {\n                        enteringEmbeddedLanguage = monarchCommon.substituteMatches(this._lexer, action.nextEmbedded, matched, matches, state);\n                    }\n                }\n                // state transformations\n                if (action.goBack) { // back up the stream..\n                    pos = Math.max(0, pos - action.goBack);\n                }\n                if (action.switchTo && typeof action.switchTo === 'string') {\n                    let nextState = monarchCommon.substituteMatches(this._lexer, action.switchTo, matched, matches, state); // switch state without a push...\n                    if (nextState[0] === '@') {\n                        nextState = nextState.substr(1); // peel off starting '@'\n                    }\n                    if (!monarchCommon.findRules(this._lexer, nextState)) {\n                        throw monarchCommon.createError(this._lexer, 'trying to switch to a state \\'' + nextState + '\\' that is undefined in rule: ' + this._safeRuleName(rule));\n                    }\n                    else {\n                        stack = stack.switchTo(nextState);\n                    }\n                }\n                else if (action.transform && typeof action.transform === 'function') {\n                    throw monarchCommon.createError(this._lexer, 'action.transform not supported');\n                }\n                else if (action.next) {\n                    if (action.next === '@push') {\n                        if (stack.depth >= this._lexer.maxStack) {\n                            throw monarchCommon.createError(this._lexer, 'maximum tokenizer stack size reached: [' +\n                                stack.state + ',' + stack.parent.state + ',...]');\n                        }\n                        else {\n                            stack = stack.push(state);\n                        }\n                    }\n                    else if (action.next === '@pop') {\n                        if (stack.depth <= 1) {\n                            throw monarchCommon.createError(this._lexer, 'trying to pop an empty stack in rule: ' + this._safeRuleName(rule));\n                        }\n                        else {\n                            stack = stack.pop();\n                        }\n                    }\n                    else if (action.next === '@popall') {\n                        stack = stack.popall();\n                    }\n                    else {\n                        let nextState = monarchCommon.substituteMatches(this._lexer, action.next, matched, matches, state);\n                        if (nextState[0] === '@') {\n                            nextState = nextState.substr(1); // peel off starting '@'\n                        }\n                        if (!monarchCommon.findRules(this._lexer, nextState)) {\n                            throw monarchCommon.createError(this._lexer, 'trying to set a next state \\'' + nextState + '\\' that is undefined in rule: ' + this._safeRuleName(rule));\n                        }\n                        else {\n                            stack = stack.push(nextState);\n                        }\n                    }\n                }\n                if (action.log && typeof (action.log) === 'string') {\n                    monarchCommon.log(this._lexer, this._lexer.languageId + ': ' + monarchCommon.substituteMatches(this._lexer, action.log, matched, matches, state));\n                }\n            }\n            // check result\n            if (result === null) {\n                throw monarchCommon.createError(this._lexer, 'lexer rule has no well-defined action in rule: ' + this._safeRuleName(rule));\n            }\n            const computeNewStateForEmbeddedLanguage = (enteringEmbeddedLanguage) => {\n                // support language names, mime types, and language ids\n                const languageId = (this._languageService.getLanguageIdByLanguageName(enteringEmbeddedLanguage)\n                    || this._languageService.getLanguageIdByMimeType(enteringEmbeddedLanguage)\n                    || enteringEmbeddedLanguage);\n                const embeddedLanguageData = this._getNestedEmbeddedLanguageData(languageId);\n                if (pos < lineLength) {\n                    // there is content from the embedded language on this line\n                    const restOfLine = lineWithoutLF.substr(pos);\n                    return this._nestedTokenize(restOfLine, hasEOL, MonarchLineStateFactory.create(stack, embeddedLanguageData), offsetDelta + pos, tokensCollector);\n                }\n                else {\n                    return MonarchLineStateFactory.create(stack, embeddedLanguageData);\n                }\n            };\n            // is the result a group match?\n            if (Array.isArray(result)) {\n                if (groupMatching && groupMatching.groups.length > 0) {\n                    throw monarchCommon.createError(this._lexer, 'groups cannot be nested: ' + this._safeRuleName(rule));\n                }\n                if (matches.length !== result.length + 1) {\n                    throw monarchCommon.createError(this._lexer, 'matched number of groups does not match the number of actions in rule: ' + this._safeRuleName(rule));\n                }\n                let totalLen = 0;\n                for (let i = 1; i < matches.length; i++) {\n                    totalLen += matches[i].length;\n                }\n                if (totalLen !== matched.length) {\n                    throw monarchCommon.createError(this._lexer, 'with groups, all characters should be matched in consecutive groups in rule: ' + this._safeRuleName(rule));\n                }\n                groupMatching = {\n                    rule: rule,\n                    matches: matches,\n                    groups: []\n                };\n                for (let i = 0; i < result.length; i++) {\n                    groupMatching.groups[i] = {\n                        action: result[i],\n                        matched: matches[i + 1]\n                    };\n                }\n                pos -= matched.length;\n                // call recursively to initiate first result match\n                continue;\n            }\n            else {\n                // regular result\n                // check for '@rematch'\n                if (result === '@rematch') {\n                    pos -= matched.length;\n                    matched = ''; // better set the next state too..\n                    matches = null;\n                    result = '';\n                    // Even though `@rematch` was specified, if `nextEmbedded` also specified,\n                    // a state transition should occur.\n                    if (enteringEmbeddedLanguage !== null) {\n                        return computeNewStateForEmbeddedLanguage(enteringEmbeddedLanguage);\n                    }\n                }\n                // check progress\n                if (matched.length === 0) {\n                    if (lineLength === 0 || stackLen0 !== stack.depth || state !== stack.state || (!groupMatching ? 0 : groupMatching.groups.length) !== groupLen0) {\n                        continue;\n                    }\n                    else {\n                        throw monarchCommon.createError(this._lexer, 'no progress in tokenizer in rule: ' + this._safeRuleName(rule));\n                    }\n                }\n                // return the result (and check for brace matching)\n                // todo: for efficiency we could pre-sanitize tokenPostfix and substitutions\n                let tokenType = null;\n                if (monarchCommon.isString(result) && result.indexOf('@brackets') === 0) {\n                    const rest = result.substr('@brackets'.length);\n                    const bracket = findBracket(this._lexer, matched);\n                    if (!bracket) {\n                        throw monarchCommon.createError(this._lexer, '@brackets token returned but no bracket defined as: ' + matched);\n                    }\n                    tokenType = monarchCommon.sanitize(bracket.token + rest);\n                }\n                else {\n                    const token = (result === '' ? '' : result + this._lexer.tokenPostfix);\n                    tokenType = monarchCommon.sanitize(token);\n                }\n                if (pos0 < lineWithoutLFLength) {\n                    tokensCollector.emit(pos0 + offsetDelta, tokenType);\n                }\n            }\n            if (enteringEmbeddedLanguage !== null) {\n                return computeNewStateForEmbeddedLanguage(enteringEmbeddedLanguage);\n            }\n        }\n        return MonarchLineStateFactory.create(stack, embeddedLanguageData);\n    }\n    _getNestedEmbeddedLanguageData(languageId) {\n        if (!this._languageService.isRegisteredLanguageId(languageId)) {\n            return new EmbeddedLanguageData(languageId, NullState);\n        }\n        if (languageId !== this._languageId) {\n            // Fire language loading event\n            this._languageService.requestBasicLanguageFeatures(languageId);\n            languages.TokenizationRegistry.getOrCreate(languageId);\n            this._embeddedLanguages[languageId] = true;\n        }\n        const tokenizationSupport = languages.TokenizationRegistry.get(languageId);\n        if (tokenizationSupport) {\n            return new EmbeddedLanguageData(languageId, tokenizationSupport.getInitialState());\n        }\n        return new EmbeddedLanguageData(languageId, NullState);\n    }\n};\nMonarchTokenizer = MonarchTokenizer_1 = __decorate([\n    __param(4, IConfigurationService)\n], MonarchTokenizer);\nexport { MonarchTokenizer };\n/**\n * Searches for a bracket in the 'brackets' attribute that matches the input.\n */\nfunction findBracket(lexer, matched) {\n    if (!matched) {\n        return null;\n    }\n    matched = monarchCommon.fixCase(lexer, matched);\n    const brackets = lexer.brackets;\n    for (const bracket of brackets) {\n        if (bracket.open === matched) {\n            return { token: bracket.token, bracketType: 1 /* monarchCommon.MonarchBracket.Open */ };\n        }\n        else if (bracket.close === matched) {\n            return { token: bracket.token, bracketType: -1 /* monarchCommon.MonarchBracket.Close */ };\n        }\n    }\n    return null;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/common/monarch/monarchTypes.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport {};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/common/standaloneTheme.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nexport const IStandaloneThemeService = createDecorator('themeService');\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/editor/standalone/common/themes.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { editorActiveIndentGuide1, editorIndentGuide1 } from '../../common/core/editorColorRegistry.js';\nimport { editorBackground, editorForeground, editorInactiveSelection, editorSelectionHighlight } from '../../../platform/theme/common/colorRegistry.js';\n/* -------------------------------- Begin vs theme -------------------------------- */\nexport const vs = {\n    base: 'vs',\n    inherit: false,\n    rules: [\n        { token: '', foreground: '000000', background: 'fffffe' },\n        { token: 'invalid', foreground: 'cd3131' },\n        { token: 'emphasis', fontStyle: 'italic' },\n        { token: 'strong', fontStyle: 'bold' },\n        { token: 'variable', foreground: '001188' },\n        { token: 'variable.predefined', foreground: '4864AA' },\n        { token: 'constant', foreground: 'dd0000' },\n        { token: 'comment', foreground: '008000' },\n        { token: 'number', foreground: '098658' },\n        { token: 'number.hex', foreground: '3030c0' },\n        { token: 'regexp', foreground: '800000' },\n        { token: 'annotation', foreground: '808080' },\n        { token: 'type', foreground: '008080' },\n        { token: 'delimiter', foreground: '000000' },\n        { token: 'delimiter.html', foreground: '383838' },\n        { token: 'delimiter.xml', foreground: '0000FF' },\n        { token: 'tag', foreground: '800000' },\n        { token: 'tag.id.pug', foreground: '4F76AC' },\n        { token: 'tag.class.pug', foreground: '4F76AC' },\n        { token: 'meta.scss', foreground: '800000' },\n        { token: 'metatag', foreground: 'e00000' },\n        { token: 'metatag.content.html', foreground: 'FF0000' },\n        { token: 'metatag.html', foreground: '808080' },\n        { token: 'metatag.xml', foreground: '808080' },\n        { token: 'metatag.php', fontStyle: 'bold' },\n        { token: 'key', foreground: '863B00' },\n        { token: 'string.key.json', foreground: 'A31515' },\n        { token: 'string.value.json', foreground: '0451A5' },\n        { token: 'attribute.name', foreground: 'FF0000' },\n        { token: 'attribute.value', foreground: '0451A5' },\n        { token: 'attribute.value.number', foreground: '098658' },\n        { token: 'attribute.value.unit', foreground: '098658' },\n        { token: 'attribute.value.html', foreground: '0000FF' },\n        { token: 'attribute.value.xml', foreground: '0000FF' },\n        { token: 'string', foreground: 'A31515' },\n        { token: 'string.html', foreground: '0000FF' },\n        { token: 'string.sql', foreground: 'FF0000' },\n        { token: 'string.yaml', foreground: '0451A5' },\n        { token: 'keyword', foreground: '0000FF' },\n        { token: 'keyword.json', foreground: '0451A5' },\n        { token: 'keyword.flow', foreground: 'AF00DB' },\n        { token: 'keyword.flow.scss', foreground: '0000FF' },\n        { token: 'operator.scss', foreground: '666666' },\n        { token: 'operator.sql', foreground: '778899' },\n        { token: 'operator.swift', foreground: '666666' },\n        { token: 'predefined.sql', foreground: 'C700C7' },\n    ],\n    colors: {\n        [editorBackground]: '#FFFFFE',\n        [editorForeground]: '#000000',\n        [editorInactiveSelection]: '#E5EBF1',\n        [editorIndentGuide1]: '#D3D3D3',\n        [editorActiveIndentGuide1]: '#939393',\n        [editorSelectionHighlight]: '#ADD6FF4D'\n    }\n};\n/* -------------------------------- End vs theme -------------------------------- */\n/* -------------------------------- Begin vs-dark theme -------------------------------- */\nexport const vs_dark = {\n    base: 'vs-dark',\n    inherit: false,\n    rules: [\n        { token: '', foreground: 'D4D4D4', background: '1E1E1E' },\n        { token: 'invalid', foreground: 'f44747' },\n        { token: 'emphasis', fontStyle: 'italic' },\n        { token: 'strong', fontStyle: 'bold' },\n        { token: 'variable', foreground: '74B0DF' },\n        { token: 'variable.predefined', foreground: '4864AA' },\n        { token: 'variable.parameter', foreground: '9CDCFE' },\n        { token: 'constant', foreground: '569CD6' },\n        { token: 'comment', foreground: '608B4E' },\n        { token: 'number', foreground: 'B5CEA8' },\n        { token: 'number.hex', foreground: '5BB498' },\n        { token: 'regexp', foreground: 'B46695' },\n        { token: 'annotation', foreground: 'cc6666' },\n        { token: 'type', foreground: '3DC9B0' },\n        { token: 'delimiter', foreground: 'DCDCDC' },\n        { token: 'delimiter.html', foreground: '808080' },\n        { token: 'delimiter.xml', foreground: '808080' },\n        { token: 'tag', foreground: '569CD6' },\n        { token: 'tag.id.pug', foreground: '4F76AC' },\n        { token: 'tag.class.pug', foreground: '4F76AC' },\n        { token: 'meta.scss', foreground: 'A79873' },\n        { token: 'meta.tag', foreground: 'CE9178' },\n        { token: 'metatag', foreground: 'DD6A6F' },\n        { token: 'metatag.content.html', foreground: '9CDCFE' },\n        { token: 'metatag.html', foreground: '569CD6' },\n        { token: 'metatag.xml', foreground: '569CD6' },\n        { token: 'metatag.php', fontStyle: 'bold' },\n        { token: 'key', foreground: '9CDCFE' },\n        { token: 'string.key.json', foreground: '9CDCFE' },\n        { token: 'string.value.json', foreground: 'CE9178' },\n        { token: 'attribute.name', foreground: '9CDCFE' },\n        { token: 'attribute.value', foreground: 'CE9178' },\n        { token: 'attribute.value.number.css', foreground: 'B5CEA8' },\n        { token: 'attribute.value.unit.css', foreground: 'B5CEA8' },\n        { token: 'attribute.value.hex.css', foreground: 'D4D4D4' },\n        { token: 'string', foreground: 'CE9178' },\n        { token: 'string.sql', foreground: 'FF0000' },\n        { token: 'keyword', foreground: '569CD6' },\n        { token: 'keyword.flow', foreground: 'C586C0' },\n        { token: 'keyword.json', foreground: 'CE9178' },\n        { token: 'keyword.flow.scss', foreground: '569CD6' },\n        { token: 'operator.scss', foreground: '909090' },\n        { token: 'operator.sql', foreground: '778899' },\n        { token: 'operator.swift', foreground: '909090' },\n        { token: 'predefined.sql', foreground: 'FF00FF' },\n    ],\n    colors: {\n        [editorBackground]: '#1E1E1E',\n        [editorForeground]: '#D4D4D4',\n        [editorInactiveSelection]: '#3A3D41',\n        [editorIndentGuide1]: '#404040',\n        [editorActiveIndentGuide1]: '#707070',\n        [editorSelectionHighlight]: '#ADD6FF26'\n    }\n};\n/* -------------------------------- End vs-dark theme -------------------------------- */\n/* -------------------------------- Begin hc-black theme -------------------------------- */\nexport const hc_black = {\n    base: 'hc-black',\n    inherit: false,\n    rules: [\n        { token: '', foreground: 'FFFFFF', background: '000000' },\n        { token: 'invalid', foreground: 'f44747' },\n        { token: 'emphasis', fontStyle: 'italic' },\n        { token: 'strong', fontStyle: 'bold' },\n        { token: 'variable', foreground: '1AEBFF' },\n        { token: 'variable.parameter', foreground: '9CDCFE' },\n        { token: 'constant', foreground: '569CD6' },\n        { token: 'comment', foreground: '608B4E' },\n        { token: 'number', foreground: 'FFFFFF' },\n        { token: 'regexp', foreground: 'C0C0C0' },\n        { token: 'annotation', foreground: '569CD6' },\n        { token: 'type', foreground: '3DC9B0' },\n        { token: 'delimiter', foreground: 'FFFF00' },\n        { token: 'delimiter.html', foreground: 'FFFF00' },\n        { token: 'tag', foreground: '569CD6' },\n        { token: 'tag.id.pug', foreground: '4F76AC' },\n        { token: 'tag.class.pug', foreground: '4F76AC' },\n        { token: 'meta', foreground: 'D4D4D4' },\n        { token: 'meta.tag', foreground: 'CE9178' },\n        { token: 'metatag', foreground: '569CD6' },\n        { token: 'metatag.content.html', foreground: '1AEBFF' },\n        { token: 'metatag.html', foreground: '569CD6' },\n        { token: 'metatag.xml', foreground: '569CD6' },\n        { token: 'metatag.php', fontStyle: 'bold' },\n        { token: 'key', foreground: '9CDCFE' },\n        { token: 'string.key', foreground: '9CDCFE' },\n        { token: 'string.value', foreground: 'CE9178' },\n        { token: 'attribute.name', foreground: '569CD6' },\n        { token: 'attribute.value', foreground: '3FF23F' },\n        { token: 'string', foreground: 'CE9178' },\n        { token: 'string.sql', foreground: 'FF0000' },\n        { token: 'keyword', foreground: '569CD6' },\n        { token: 'keyword.flow', foreground: 'C586C0' },\n        { token: 'operator.sql', foreground: '778899' },\n        { token: 'operator.swift', foreground: '909090' },\n        { token: 'predefined.sql', foreground: 'FF00FF' },\n    ],\n    colors: {\n        [editorBackground]: '#000000',\n        [editorForeground]: '#FFFFFF',\n        [editorIndentGuide1]: '#FFFFFF',\n        [editorActiveIndentGuide1]: '#FFFFFF',\n    }\n};\n/* -------------------------------- End hc-black theme -------------------------------- */\n/* -------------------------------- Begin hc-light theme -------------------------------- */\nexport const hc_light = {\n    base: 'hc-light',\n    inherit: false,\n    rules: [\n        { token: '', foreground: '292929', background: 'FFFFFF' },\n        { token: 'invalid', foreground: 'B5200D' },\n        { token: 'emphasis', fontStyle: 'italic' },\n        { token: 'strong', fontStyle: 'bold' },\n        { token: 'variable', foreground: '264F70' },\n        { token: 'variable.predefined', foreground: '4864AA' },\n        { token: 'constant', foreground: 'dd0000' },\n        { token: 'comment', foreground: '008000' },\n        { token: 'number', foreground: '098658' },\n        { token: 'number.hex', foreground: '3030c0' },\n        { token: 'regexp', foreground: '800000' },\n        { token: 'annotation', foreground: '808080' },\n        { token: 'type', foreground: '008080' },\n        { token: 'delimiter', foreground: '000000' },\n        { token: 'delimiter.html', foreground: '383838' },\n        { token: 'tag', foreground: '800000' },\n        { token: 'tag.id.pug', foreground: '4F76AC' },\n        { token: 'tag.class.pug', foreground: '4F76AC' },\n        { token: 'meta.scss', foreground: '800000' },\n        { token: 'metatag', foreground: 'e00000' },\n        { token: 'metatag.content.html', foreground: 'B5200D' },\n        { token: 'metatag.html', foreground: '808080' },\n        { token: 'metatag.xml', foreground: '808080' },\n        { token: 'metatag.php', fontStyle: 'bold' },\n        { token: 'key', foreground: '863B00' },\n        { token: 'string.key.json', foreground: 'A31515' },\n        { token: 'string.value.json', foreground: '0451A5' },\n        { token: 'attribute.name', foreground: '264F78' },\n        { token: 'attribute.value', foreground: '0451A5' },\n        { token: 'string', foreground: 'A31515' },\n        { token: 'string.sql', foreground: 'B5200D' },\n        { token: 'keyword', foreground: '0000FF' },\n        { token: 'keyword.flow', foreground: 'AF00DB' },\n        { token: 'operator.sql', foreground: '778899' },\n        { token: 'operator.swift', foreground: '666666' },\n        { token: 'predefined.sql', foreground: 'C700C7' },\n    ],\n    colors: {\n        [editorBackground]: '#FFFFFF',\n        [editorForeground]: '#292929',\n        [editorIndentGuide1]: '#292929',\n        [editorActiveIndentGuide1]: '#292929',\n    }\n};\n/* -------------------------------- End hc-light theme -------------------------------- */\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/language/css/css.worker.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/language/css/css.worker.ts\nimport * as worker from \"../../editor/editor.worker.js\";\n\n// node_modules/vscode-css-languageservice/lib/esm/parser/cssScanner.js\nvar TokenType;\n(function(TokenType2) {\n  TokenType2[TokenType2[\"Ident\"] = 0] = \"Ident\";\n  TokenType2[TokenType2[\"AtKeyword\"] = 1] = \"AtKeyword\";\n  TokenType2[TokenType2[\"String\"] = 2] = \"String\";\n  TokenType2[TokenType2[\"BadString\"] = 3] = \"BadString\";\n  TokenType2[TokenType2[\"UnquotedString\"] = 4] = \"UnquotedString\";\n  TokenType2[TokenType2[\"Hash\"] = 5] = \"Hash\";\n  TokenType2[TokenType2[\"Num\"] = 6] = \"Num\";\n  TokenType2[TokenType2[\"Percentage\"] = 7] = \"Percentage\";\n  TokenType2[TokenType2[\"Dimension\"] = 8] = \"Dimension\";\n  TokenType2[TokenType2[\"UnicodeRange\"] = 9] = \"UnicodeRange\";\n  TokenType2[TokenType2[\"CDO\"] = 10] = \"CDO\";\n  TokenType2[TokenType2[\"CDC\"] = 11] = \"CDC\";\n  TokenType2[TokenType2[\"Colon\"] = 12] = \"Colon\";\n  TokenType2[TokenType2[\"SemiColon\"] = 13] = \"SemiColon\";\n  TokenType2[TokenType2[\"CurlyL\"] = 14] = \"CurlyL\";\n  TokenType2[TokenType2[\"CurlyR\"] = 15] = \"CurlyR\";\n  TokenType2[TokenType2[\"ParenthesisL\"] = 16] = \"ParenthesisL\";\n  TokenType2[TokenType2[\"ParenthesisR\"] = 17] = \"ParenthesisR\";\n  TokenType2[TokenType2[\"BracketL\"] = 18] = \"BracketL\";\n  TokenType2[TokenType2[\"BracketR\"] = 19] = \"BracketR\";\n  TokenType2[TokenType2[\"Whitespace\"] = 20] = \"Whitespace\";\n  TokenType2[TokenType2[\"Includes\"] = 21] = \"Includes\";\n  TokenType2[TokenType2[\"Dashmatch\"] = 22] = \"Dashmatch\";\n  TokenType2[TokenType2[\"SubstringOperator\"] = 23] = \"SubstringOperator\";\n  TokenType2[TokenType2[\"PrefixOperator\"] = 24] = \"PrefixOperator\";\n  TokenType2[TokenType2[\"SuffixOperator\"] = 25] = \"SuffixOperator\";\n  TokenType2[TokenType2[\"Delim\"] = 26] = \"Delim\";\n  TokenType2[TokenType2[\"EMS\"] = 27] = \"EMS\";\n  TokenType2[TokenType2[\"EXS\"] = 28] = \"EXS\";\n  TokenType2[TokenType2[\"Length\"] = 29] = \"Length\";\n  TokenType2[TokenType2[\"Angle\"] = 30] = \"Angle\";\n  TokenType2[TokenType2[\"Time\"] = 31] = \"Time\";\n  TokenType2[TokenType2[\"Freq\"] = 32] = \"Freq\";\n  TokenType2[TokenType2[\"Exclamation\"] = 33] = \"Exclamation\";\n  TokenType2[TokenType2[\"Resolution\"] = 34] = \"Resolution\";\n  TokenType2[TokenType2[\"Comma\"] = 35] = \"Comma\";\n  TokenType2[TokenType2[\"Charset\"] = 36] = \"Charset\";\n  TokenType2[TokenType2[\"EscapedJavaScript\"] = 37] = \"EscapedJavaScript\";\n  TokenType2[TokenType2[\"BadEscapedJavaScript\"] = 38] = \"BadEscapedJavaScript\";\n  TokenType2[TokenType2[\"Comment\"] = 39] = \"Comment\";\n  TokenType2[TokenType2[\"SingleLineComment\"] = 40] = \"SingleLineComment\";\n  TokenType2[TokenType2[\"EOF\"] = 41] = \"EOF\";\n  TokenType2[TokenType2[\"ContainerQueryLength\"] = 42] = \"ContainerQueryLength\";\n  TokenType2[TokenType2[\"CustomToken\"] = 43] = \"CustomToken\";\n})(TokenType || (TokenType = {}));\nvar MultiLineStream = class {\n  constructor(source) {\n    this.source = source;\n    this.len = source.length;\n    this.position = 0;\n  }\n  substring(from, to = this.position) {\n    return this.source.substring(from, to);\n  }\n  eos() {\n    return this.len <= this.position;\n  }\n  pos() {\n    return this.position;\n  }\n  goBackTo(pos) {\n    this.position = pos;\n  }\n  goBack(n) {\n    this.position -= n;\n  }\n  advance(n) {\n    this.position += n;\n  }\n  nextChar() {\n    return this.source.charCodeAt(this.position++) || 0;\n  }\n  peekChar(n = 0) {\n    return this.source.charCodeAt(this.position + n) || 0;\n  }\n  lookbackChar(n = 0) {\n    return this.source.charCodeAt(this.position - n) || 0;\n  }\n  advanceIfChar(ch) {\n    if (ch === this.source.charCodeAt(this.position)) {\n      this.position++;\n      return true;\n    }\n    return false;\n  }\n  advanceIfChars(ch) {\n    if (this.position + ch.length > this.source.length) {\n      return false;\n    }\n    let i = 0;\n    for (; i < ch.length; i++) {\n      if (this.source.charCodeAt(this.position + i) !== ch[i]) {\n        return false;\n      }\n    }\n    this.advance(i);\n    return true;\n  }\n  advanceWhileChar(condition) {\n    const posNow = this.position;\n    while (this.position < this.len && condition(this.source.charCodeAt(this.position))) {\n      this.position++;\n    }\n    return this.position - posNow;\n  }\n};\nvar _a = \"a\".charCodeAt(0);\nvar _f = \"f\".charCodeAt(0);\nvar _z = \"z\".charCodeAt(0);\nvar _u = \"u\".charCodeAt(0);\nvar _A = \"A\".charCodeAt(0);\nvar _F = \"F\".charCodeAt(0);\nvar _Z = \"Z\".charCodeAt(0);\nvar _0 = \"0\".charCodeAt(0);\nvar _9 = \"9\".charCodeAt(0);\nvar _TLD = \"~\".charCodeAt(0);\nvar _HAT = \"^\".charCodeAt(0);\nvar _EQS = \"=\".charCodeAt(0);\nvar _PIP = \"|\".charCodeAt(0);\nvar _MIN = \"-\".charCodeAt(0);\nvar _USC = \"_\".charCodeAt(0);\nvar _PRC = \"%\".charCodeAt(0);\nvar _MUL = \"*\".charCodeAt(0);\nvar _LPA = \"(\".charCodeAt(0);\nvar _RPA = \")\".charCodeAt(0);\nvar _LAN = \"<\".charCodeAt(0);\nvar _RAN = \">\".charCodeAt(0);\nvar _ATS = \"@\".charCodeAt(0);\nvar _HSH = \"#\".charCodeAt(0);\nvar _DLR = \"$\".charCodeAt(0);\nvar _BSL = \"\\\\\".charCodeAt(0);\nvar _FSL = \"/\".charCodeAt(0);\nvar _NWL = \"\\n\".charCodeAt(0);\nvar _CAR = \"\\r\".charCodeAt(0);\nvar _LFD = \"\\f\".charCodeAt(0);\nvar _DQO = '\"'.charCodeAt(0);\nvar _SQO = \"'\".charCodeAt(0);\nvar _WSP = \" \".charCodeAt(0);\nvar _TAB = \"\t\".charCodeAt(0);\nvar _SEM = \";\".charCodeAt(0);\nvar _COL = \":\".charCodeAt(0);\nvar _CUL = \"{\".charCodeAt(0);\nvar _CUR = \"}\".charCodeAt(0);\nvar _BRL = \"[\".charCodeAt(0);\nvar _BRR = \"]\".charCodeAt(0);\nvar _CMA = \",\".charCodeAt(0);\nvar _DOT = \".\".charCodeAt(0);\nvar _BNG = \"!\".charCodeAt(0);\nvar _QSM = \"?\".charCodeAt(0);\nvar _PLS = \"+\".charCodeAt(0);\nvar staticTokenTable = {};\nstaticTokenTable[_SEM] = TokenType.SemiColon;\nstaticTokenTable[_COL] = TokenType.Colon;\nstaticTokenTable[_CUL] = TokenType.CurlyL;\nstaticTokenTable[_CUR] = TokenType.CurlyR;\nstaticTokenTable[_BRR] = TokenType.BracketR;\nstaticTokenTable[_BRL] = TokenType.BracketL;\nstaticTokenTable[_LPA] = TokenType.ParenthesisL;\nstaticTokenTable[_RPA] = TokenType.ParenthesisR;\nstaticTokenTable[_CMA] = TokenType.Comma;\nvar staticUnitTable = {};\nstaticUnitTable[\"em\"] = TokenType.EMS;\nstaticUnitTable[\"ex\"] = TokenType.EXS;\nstaticUnitTable[\"px\"] = TokenType.Length;\nstaticUnitTable[\"cm\"] = TokenType.Length;\nstaticUnitTable[\"mm\"] = TokenType.Length;\nstaticUnitTable[\"in\"] = TokenType.Length;\nstaticUnitTable[\"pt\"] = TokenType.Length;\nstaticUnitTable[\"pc\"] = TokenType.Length;\nstaticUnitTable[\"deg\"] = TokenType.Angle;\nstaticUnitTable[\"rad\"] = TokenType.Angle;\nstaticUnitTable[\"grad\"] = TokenType.Angle;\nstaticUnitTable[\"ms\"] = TokenType.Time;\nstaticUnitTable[\"s\"] = TokenType.Time;\nstaticUnitTable[\"hz\"] = TokenType.Freq;\nstaticUnitTable[\"khz\"] = TokenType.Freq;\nstaticUnitTable[\"%\"] = TokenType.Percentage;\nstaticUnitTable[\"fr\"] = TokenType.Percentage;\nstaticUnitTable[\"dpi\"] = TokenType.Resolution;\nstaticUnitTable[\"dpcm\"] = TokenType.Resolution;\nstaticUnitTable[\"cqw\"] = TokenType.ContainerQueryLength;\nstaticUnitTable[\"cqh\"] = TokenType.ContainerQueryLength;\nstaticUnitTable[\"cqi\"] = TokenType.ContainerQueryLength;\nstaticUnitTable[\"cqb\"] = TokenType.ContainerQueryLength;\nstaticUnitTable[\"cqmin\"] = TokenType.ContainerQueryLength;\nstaticUnitTable[\"cqmax\"] = TokenType.ContainerQueryLength;\nvar Scanner = class {\n  constructor() {\n    this.stream = new MultiLineStream(\"\");\n    this.ignoreComment = true;\n    this.ignoreWhitespace = true;\n    this.inURL = false;\n  }\n  setSource(input) {\n    this.stream = new MultiLineStream(input);\n  }\n  finishToken(offset, type, text) {\n    return {\n      offset,\n      len: this.stream.pos() - offset,\n      type,\n      text: text || this.stream.substring(offset)\n    };\n  }\n  substring(offset, len) {\n    return this.stream.substring(offset, offset + len);\n  }\n  pos() {\n    return this.stream.pos();\n  }\n  goBackTo(pos) {\n    this.stream.goBackTo(pos);\n  }\n  scanUnquotedString() {\n    const offset = this.stream.pos();\n    const content = [];\n    if (this._unquotedString(content)) {\n      return this.finishToken(offset, TokenType.UnquotedString, content.join(\"\"));\n    }\n    return null;\n  }\n  scan() {\n    const triviaToken = this.trivia();\n    if (triviaToken !== null) {\n      return triviaToken;\n    }\n    const offset = this.stream.pos();\n    if (this.stream.eos()) {\n      return this.finishToken(offset, TokenType.EOF);\n    }\n    return this.scanNext(offset);\n  }\n  /**\n   * Read the range as described in https://www.w3.org/TR/CSS21/syndata.html#tokenization\n   * Assume the `u` has aleady been consumed\n   * @returns if reading the unicode was successful\n   */\n  tryScanUnicode() {\n    const offset = this.stream.pos();\n    if (!this.stream.eos() && this._unicodeRange()) {\n      return this.finishToken(offset, TokenType.UnicodeRange);\n    }\n    this.stream.goBackTo(offset);\n    return void 0;\n  }\n  scanNext(offset) {\n    if (this.stream.advanceIfChars([_LAN, _BNG, _MIN, _MIN])) {\n      return this.finishToken(offset, TokenType.CDO);\n    }\n    if (this.stream.advanceIfChars([_MIN, _MIN, _RAN])) {\n      return this.finishToken(offset, TokenType.CDC);\n    }\n    let content = [];\n    if (this.ident(content)) {\n      return this.finishToken(offset, TokenType.Ident, content.join(\"\"));\n    }\n    if (this.stream.advanceIfChar(_ATS)) {\n      content = [\"@\"];\n      if (this._name(content)) {\n        const keywordText = content.join(\"\");\n        if (keywordText === \"@charset\") {\n          return this.finishToken(offset, TokenType.Charset, keywordText);\n        }\n        return this.finishToken(offset, TokenType.AtKeyword, keywordText);\n      } else {\n        return this.finishToken(offset, TokenType.Delim);\n      }\n    }\n    if (this.stream.advanceIfChar(_HSH)) {\n      content = [\"#\"];\n      if (this._name(content)) {\n        return this.finishToken(offset, TokenType.Hash, content.join(\"\"));\n      } else {\n        return this.finishToken(offset, TokenType.Delim);\n      }\n    }\n    if (this.stream.advanceIfChar(_BNG)) {\n      return this.finishToken(offset, TokenType.Exclamation);\n    }\n    if (this._number()) {\n      const pos = this.stream.pos();\n      content = [this.stream.substring(offset, pos)];\n      if (this.stream.advanceIfChar(_PRC)) {\n        return this.finishToken(offset, TokenType.Percentage);\n      } else if (this.ident(content)) {\n        const dim = this.stream.substring(pos).toLowerCase();\n        const tokenType2 = staticUnitTable[dim];\n        if (typeof tokenType2 !== \"undefined\") {\n          return this.finishToken(offset, tokenType2, content.join(\"\"));\n        } else {\n          return this.finishToken(offset, TokenType.Dimension, content.join(\"\"));\n        }\n      }\n      return this.finishToken(offset, TokenType.Num);\n    }\n    content = [];\n    let tokenType = this._string(content);\n    if (tokenType !== null) {\n      return this.finishToken(offset, tokenType, content.join(\"\"));\n    }\n    tokenType = staticTokenTable[this.stream.peekChar()];\n    if (typeof tokenType !== \"undefined\") {\n      this.stream.advance(1);\n      return this.finishToken(offset, tokenType);\n    }\n    if (this.stream.peekChar(0) === _TLD && this.stream.peekChar(1) === _EQS) {\n      this.stream.advance(2);\n      return this.finishToken(offset, TokenType.Includes);\n    }\n    if (this.stream.peekChar(0) === _PIP && this.stream.peekChar(1) === _EQS) {\n      this.stream.advance(2);\n      return this.finishToken(offset, TokenType.Dashmatch);\n    }\n    if (this.stream.peekChar(0) === _MUL && this.stream.peekChar(1) === _EQS) {\n      this.stream.advance(2);\n      return this.finishToken(offset, TokenType.SubstringOperator);\n    }\n    if (this.stream.peekChar(0) === _HAT && this.stream.peekChar(1) === _EQS) {\n      this.stream.advance(2);\n      return this.finishToken(offset, TokenType.PrefixOperator);\n    }\n    if (this.stream.peekChar(0) === _DLR && this.stream.peekChar(1) === _EQS) {\n      this.stream.advance(2);\n      return this.finishToken(offset, TokenType.SuffixOperator);\n    }\n    this.stream.nextChar();\n    return this.finishToken(offset, TokenType.Delim);\n  }\n  trivia() {\n    while (true) {\n      const offset = this.stream.pos();\n      if (this._whitespace()) {\n        if (!this.ignoreWhitespace) {\n          return this.finishToken(offset, TokenType.Whitespace);\n        }\n      } else if (this.comment()) {\n        if (!this.ignoreComment) {\n          return this.finishToken(offset, TokenType.Comment);\n        }\n      } else {\n        return null;\n      }\n    }\n  }\n  comment() {\n    if (this.stream.advanceIfChars([_FSL, _MUL])) {\n      let success = false, hot = false;\n      this.stream.advanceWhileChar((ch) => {\n        if (hot && ch === _FSL) {\n          success = true;\n          return false;\n        }\n        hot = ch === _MUL;\n        return true;\n      });\n      if (success) {\n        this.stream.advance(1);\n      }\n      return true;\n    }\n    return false;\n  }\n  _number() {\n    let npeek = 0, ch;\n    if (this.stream.peekChar() === _DOT) {\n      npeek = 1;\n    }\n    ch = this.stream.peekChar(npeek);\n    if (ch >= _0 && ch <= _9) {\n      this.stream.advance(npeek + 1);\n      this.stream.advanceWhileChar((ch2) => {\n        return ch2 >= _0 && ch2 <= _9 || npeek === 0 && ch2 === _DOT;\n      });\n      return true;\n    }\n    return false;\n  }\n  _newline(result) {\n    const ch = this.stream.peekChar();\n    switch (ch) {\n      case _CAR:\n      case _LFD:\n      case _NWL:\n        this.stream.advance(1);\n        result.push(String.fromCharCode(ch));\n        if (ch === _CAR && this.stream.advanceIfChar(_NWL)) {\n          result.push(\"\\n\");\n        }\n        return true;\n    }\n    return false;\n  }\n  _escape(result, includeNewLines) {\n    let ch = this.stream.peekChar();\n    if (ch === _BSL) {\n      this.stream.advance(1);\n      ch = this.stream.peekChar();\n      let hexNumCount = 0;\n      while (hexNumCount < 6 && (ch >= _0 && ch <= _9 || ch >= _a && ch <= _f || ch >= _A && ch <= _F)) {\n        this.stream.advance(1);\n        ch = this.stream.peekChar();\n        hexNumCount++;\n      }\n      if (hexNumCount > 0) {\n        try {\n          const hexVal = parseInt(this.stream.substring(this.stream.pos() - hexNumCount), 16);\n          if (hexVal) {\n            result.push(String.fromCharCode(hexVal));\n          }\n        } catch (e) {\n        }\n        if (ch === _WSP || ch === _TAB) {\n          this.stream.advance(1);\n        } else {\n          this._newline([]);\n        }\n        return true;\n      }\n      if (ch !== _CAR && ch !== _LFD && ch !== _NWL) {\n        this.stream.advance(1);\n        result.push(String.fromCharCode(ch));\n        return true;\n      } else if (includeNewLines) {\n        return this._newline(result);\n      }\n    }\n    return false;\n  }\n  _stringChar(closeQuote, result) {\n    const ch = this.stream.peekChar();\n    if (ch !== 0 && ch !== closeQuote && ch !== _BSL && ch !== _CAR && ch !== _LFD && ch !== _NWL) {\n      this.stream.advance(1);\n      result.push(String.fromCharCode(ch));\n      return true;\n    }\n    return false;\n  }\n  _string(result) {\n    if (this.stream.peekChar() === _SQO || this.stream.peekChar() === _DQO) {\n      const closeQuote = this.stream.nextChar();\n      result.push(String.fromCharCode(closeQuote));\n      while (this._stringChar(closeQuote, result) || this._escape(result, true)) {\n      }\n      if (this.stream.peekChar() === closeQuote) {\n        this.stream.nextChar();\n        result.push(String.fromCharCode(closeQuote));\n        return TokenType.String;\n      } else {\n        return TokenType.BadString;\n      }\n    }\n    return null;\n  }\n  _unquotedChar(result) {\n    const ch = this.stream.peekChar();\n    if (ch !== 0 && ch !== _BSL && ch !== _SQO && ch !== _DQO && ch !== _LPA && ch !== _RPA && ch !== _WSP && ch !== _TAB && ch !== _NWL && ch !== _LFD && ch !== _CAR) {\n      this.stream.advance(1);\n      result.push(String.fromCharCode(ch));\n      return true;\n    }\n    return false;\n  }\n  _unquotedString(result) {\n    let hasContent = false;\n    while (this._unquotedChar(result) || this._escape(result)) {\n      hasContent = true;\n    }\n    return hasContent;\n  }\n  _whitespace() {\n    const n = this.stream.advanceWhileChar((ch) => {\n      return ch === _WSP || ch === _TAB || ch === _NWL || ch === _LFD || ch === _CAR;\n    });\n    return n > 0;\n  }\n  _name(result) {\n    let matched = false;\n    while (this._identChar(result) || this._escape(result)) {\n      matched = true;\n    }\n    return matched;\n  }\n  ident(result) {\n    const pos = this.stream.pos();\n    const hasMinus = this._minus(result);\n    if (hasMinus) {\n      if (this._minus(result) || this._identFirstChar(result) || this._escape(result)) {\n        while (this._identChar(result) || this._escape(result)) {\n        }\n        return true;\n      }\n    } else if (this._identFirstChar(result) || this._escape(result)) {\n      while (this._identChar(result) || this._escape(result)) {\n      }\n      return true;\n    }\n    this.stream.goBackTo(pos);\n    return false;\n  }\n  _identFirstChar(result) {\n    const ch = this.stream.peekChar();\n    if (ch === _USC || // _\n    ch >= _a && ch <= _z || // a-z\n    ch >= _A && ch <= _Z || // A-Z\n    ch >= 128 && ch <= 65535) {\n      this.stream.advance(1);\n      result.push(String.fromCharCode(ch));\n      return true;\n    }\n    return false;\n  }\n  _minus(result) {\n    const ch = this.stream.peekChar();\n    if (ch === _MIN) {\n      this.stream.advance(1);\n      result.push(String.fromCharCode(ch));\n      return true;\n    }\n    return false;\n  }\n  _identChar(result) {\n    const ch = this.stream.peekChar();\n    if (ch === _USC || // _\n    ch === _MIN || // -\n    ch >= _a && ch <= _z || // a-z\n    ch >= _A && ch <= _Z || // A-Z\n    ch >= _0 && ch <= _9 || // 0/9\n    ch >= 128 && ch <= 65535) {\n      this.stream.advance(1);\n      result.push(String.fromCharCode(ch));\n      return true;\n    }\n    return false;\n  }\n  _unicodeRange() {\n    if (this.stream.advanceIfChar(_PLS)) {\n      const isHexDigit = (ch) => ch >= _0 && ch <= _9 || ch >= _a && ch <= _f || ch >= _A && ch <= _F;\n      const codePoints = this.stream.advanceWhileChar(isHexDigit) + this.stream.advanceWhileChar((ch) => ch === _QSM);\n      if (codePoints >= 1 && codePoints <= 6) {\n        if (this.stream.advanceIfChar(_MIN)) {\n          const digits = this.stream.advanceWhileChar(isHexDigit);\n          if (digits >= 1 && digits <= 6) {\n            return true;\n          }\n        } else {\n          return true;\n        }\n      }\n    }\n    return false;\n  }\n};\n\n// node_modules/vscode-css-languageservice/lib/esm/utils/strings.js\nfunction startsWith(haystack, needle) {\n  if (haystack.length < needle.length) {\n    return false;\n  }\n  for (let i = 0; i < needle.length; i++) {\n    if (haystack[i] !== needle[i]) {\n      return false;\n    }\n  }\n  return true;\n}\nfunction endsWith(haystack, needle) {\n  let diff = haystack.length - needle.length;\n  if (diff > 0) {\n    return haystack.lastIndexOf(needle) === diff;\n  } else if (diff === 0) {\n    return haystack === needle;\n  } else {\n    return false;\n  }\n}\nfunction difference(first, second, maxLenDelta = 4) {\n  let lengthDifference = Math.abs(first.length - second.length);\n  if (lengthDifference > maxLenDelta) {\n    return 0;\n  }\n  let LCS = [];\n  let zeroArray = [];\n  let i, j;\n  for (i = 0; i < second.length + 1; ++i) {\n    zeroArray.push(0);\n  }\n  for (i = 0; i < first.length + 1; ++i) {\n    LCS.push(zeroArray);\n  }\n  for (i = 1; i < first.length + 1; ++i) {\n    for (j = 1; j < second.length + 1; ++j) {\n      if (first[i - 1] === second[j - 1]) {\n        LCS[i][j] = LCS[i - 1][j - 1] + 1;\n      } else {\n        LCS[i][j] = Math.max(LCS[i - 1][j], LCS[i][j - 1]);\n      }\n    }\n  }\n  return LCS[first.length][second.length] - Math.sqrt(lengthDifference);\n}\nfunction getLimitedString(str, ellipsis = true) {\n  if (!str) {\n    return \"\";\n  }\n  if (str.length < 140) {\n    return str;\n  }\n  return str.slice(0, 140) + (ellipsis ? \"\\u2026\" : \"\");\n}\nfunction trim(str, regexp) {\n  const m = regexp.exec(str);\n  if (m && m[0].length) {\n    return str.substr(0, str.length - m[0].length);\n  }\n  return str;\n}\nfunction repeat(value, count) {\n  let s = \"\";\n  while (count > 0) {\n    if ((count & 1) === 1) {\n      s += value;\n    }\n    value += value;\n    count = count >>> 1;\n  }\n  return s;\n}\n\n// node_modules/vscode-css-languageservice/lib/esm/parser/cssNodes.js\nvar NodeType;\n(function(NodeType2) {\n  NodeType2[NodeType2[\"Undefined\"] = 0] = \"Undefined\";\n  NodeType2[NodeType2[\"Identifier\"] = 1] = \"Identifier\";\n  NodeType2[NodeType2[\"Stylesheet\"] = 2] = \"Stylesheet\";\n  NodeType2[NodeType2[\"Ruleset\"] = 3] = \"Ruleset\";\n  NodeType2[NodeType2[\"Selector\"] = 4] = \"Selector\";\n  NodeType2[NodeType2[\"SimpleSelector\"] = 5] = \"SimpleSelector\";\n  NodeType2[NodeType2[\"SelectorInterpolation\"] = 6] = \"SelectorInterpolation\";\n  NodeType2[NodeType2[\"SelectorCombinator\"] = 7] = \"SelectorCombinator\";\n  NodeType2[NodeType2[\"SelectorCombinatorParent\"] = 8] = \"SelectorCombinatorParent\";\n  NodeType2[NodeType2[\"SelectorCombinatorSibling\"] = 9] = \"SelectorCombinatorSibling\";\n  NodeType2[NodeType2[\"SelectorCombinatorAllSiblings\"] = 10] = \"SelectorCombinatorAllSiblings\";\n  NodeType2[NodeType2[\"SelectorCombinatorShadowPiercingDescendant\"] = 11] = \"SelectorCombinatorShadowPiercingDescendant\";\n  NodeType2[NodeType2[\"Page\"] = 12] = \"Page\";\n  NodeType2[NodeType2[\"PageBoxMarginBox\"] = 13] = \"PageBoxMarginBox\";\n  NodeType2[NodeType2[\"ClassSelector\"] = 14] = \"ClassSelector\";\n  NodeType2[NodeType2[\"IdentifierSelector\"] = 15] = \"IdentifierSelector\";\n  NodeType2[NodeType2[\"ElementNameSelector\"] = 16] = \"ElementNameSelector\";\n  NodeType2[NodeType2[\"PseudoSelector\"] = 17] = \"PseudoSelector\";\n  NodeType2[NodeType2[\"AttributeSelector\"] = 18] = \"AttributeSelector\";\n  NodeType2[NodeType2[\"Declaration\"] = 19] = \"Declaration\";\n  NodeType2[NodeType2[\"Declarations\"] = 20] = \"Declarations\";\n  NodeType2[NodeType2[\"Property\"] = 21] = \"Property\";\n  NodeType2[NodeType2[\"Expression\"] = 22] = \"Expression\";\n  NodeType2[NodeType2[\"BinaryExpression\"] = 23] = \"BinaryExpression\";\n  NodeType2[NodeType2[\"Term\"] = 24] = \"Term\";\n  NodeType2[NodeType2[\"Operator\"] = 25] = \"Operator\";\n  NodeType2[NodeType2[\"Value\"] = 26] = \"Value\";\n  NodeType2[NodeType2[\"StringLiteral\"] = 27] = \"StringLiteral\";\n  NodeType2[NodeType2[\"URILiteral\"] = 28] = \"URILiteral\";\n  NodeType2[NodeType2[\"EscapedValue\"] = 29] = \"EscapedValue\";\n  NodeType2[NodeType2[\"Function\"] = 30] = \"Function\";\n  NodeType2[NodeType2[\"NumericValue\"] = 31] = \"NumericValue\";\n  NodeType2[NodeType2[\"HexColorValue\"] = 32] = \"HexColorValue\";\n  NodeType2[NodeType2[\"RatioValue\"] = 33] = \"RatioValue\";\n  NodeType2[NodeType2[\"MixinDeclaration\"] = 34] = \"MixinDeclaration\";\n  NodeType2[NodeType2[\"MixinReference\"] = 35] = \"MixinReference\";\n  NodeType2[NodeType2[\"VariableName\"] = 36] = \"VariableName\";\n  NodeType2[NodeType2[\"VariableDeclaration\"] = 37] = \"VariableDeclaration\";\n  NodeType2[NodeType2[\"Prio\"] = 38] = \"Prio\";\n  NodeType2[NodeType2[\"Interpolation\"] = 39] = \"Interpolation\";\n  NodeType2[NodeType2[\"NestedProperties\"] = 40] = \"NestedProperties\";\n  NodeType2[NodeType2[\"ExtendsReference\"] = 41] = \"ExtendsReference\";\n  NodeType2[NodeType2[\"SelectorPlaceholder\"] = 42] = \"SelectorPlaceholder\";\n  NodeType2[NodeType2[\"Debug\"] = 43] = \"Debug\";\n  NodeType2[NodeType2[\"If\"] = 44] = \"If\";\n  NodeType2[NodeType2[\"Else\"] = 45] = \"Else\";\n  NodeType2[NodeType2[\"For\"] = 46] = \"For\";\n  NodeType2[NodeType2[\"Each\"] = 47] = \"Each\";\n  NodeType2[NodeType2[\"While\"] = 48] = \"While\";\n  NodeType2[NodeType2[\"MixinContentReference\"] = 49] = \"MixinContentReference\";\n  NodeType2[NodeType2[\"MixinContentDeclaration\"] = 50] = \"MixinContentDeclaration\";\n  NodeType2[NodeType2[\"Media\"] = 51] = \"Media\";\n  NodeType2[NodeType2[\"Keyframe\"] = 52] = \"Keyframe\";\n  NodeType2[NodeType2[\"FontFace\"] = 53] = \"FontFace\";\n  NodeType2[NodeType2[\"Import\"] = 54] = \"Import\";\n  NodeType2[NodeType2[\"Namespace\"] = 55] = \"Namespace\";\n  NodeType2[NodeType2[\"Invocation\"] = 56] = \"Invocation\";\n  NodeType2[NodeType2[\"FunctionDeclaration\"] = 57] = \"FunctionDeclaration\";\n  NodeType2[NodeType2[\"ReturnStatement\"] = 58] = \"ReturnStatement\";\n  NodeType2[NodeType2[\"MediaQuery\"] = 59] = \"MediaQuery\";\n  NodeType2[NodeType2[\"MediaCondition\"] = 60] = \"MediaCondition\";\n  NodeType2[NodeType2[\"MediaFeature\"] = 61] = \"MediaFeature\";\n  NodeType2[NodeType2[\"FunctionParameter\"] = 62] = \"FunctionParameter\";\n  NodeType2[NodeType2[\"FunctionArgument\"] = 63] = \"FunctionArgument\";\n  NodeType2[NodeType2[\"KeyframeSelector\"] = 64] = \"KeyframeSelector\";\n  NodeType2[NodeType2[\"ViewPort\"] = 65] = \"ViewPort\";\n  NodeType2[NodeType2[\"Document\"] = 66] = \"Document\";\n  NodeType2[NodeType2[\"AtApplyRule\"] = 67] = \"AtApplyRule\";\n  NodeType2[NodeType2[\"CustomPropertyDeclaration\"] = 68] = \"CustomPropertyDeclaration\";\n  NodeType2[NodeType2[\"CustomPropertySet\"] = 69] = \"CustomPropertySet\";\n  NodeType2[NodeType2[\"ListEntry\"] = 70] = \"ListEntry\";\n  NodeType2[NodeType2[\"Supports\"] = 71] = \"Supports\";\n  NodeType2[NodeType2[\"SupportsCondition\"] = 72] = \"SupportsCondition\";\n  NodeType2[NodeType2[\"NamespacePrefix\"] = 73] = \"NamespacePrefix\";\n  NodeType2[NodeType2[\"GridLine\"] = 74] = \"GridLine\";\n  NodeType2[NodeType2[\"Plugin\"] = 75] = \"Plugin\";\n  NodeType2[NodeType2[\"UnknownAtRule\"] = 76] = \"UnknownAtRule\";\n  NodeType2[NodeType2[\"Use\"] = 77] = \"Use\";\n  NodeType2[NodeType2[\"ModuleConfiguration\"] = 78] = \"ModuleConfiguration\";\n  NodeType2[NodeType2[\"Forward\"] = 79] = \"Forward\";\n  NodeType2[NodeType2[\"ForwardVisibility\"] = 80] = \"ForwardVisibility\";\n  NodeType2[NodeType2[\"Module\"] = 81] = \"Module\";\n  NodeType2[NodeType2[\"UnicodeRange\"] = 82] = \"UnicodeRange\";\n  NodeType2[NodeType2[\"Layer\"] = 83] = \"Layer\";\n  NodeType2[NodeType2[\"LayerNameList\"] = 84] = \"LayerNameList\";\n  NodeType2[NodeType2[\"LayerName\"] = 85] = \"LayerName\";\n  NodeType2[NodeType2[\"PropertyAtRule\"] = 86] = \"PropertyAtRule\";\n  NodeType2[NodeType2[\"Container\"] = 87] = \"Container\";\n})(NodeType || (NodeType = {}));\nvar ReferenceType;\n(function(ReferenceType2) {\n  ReferenceType2[ReferenceType2[\"Mixin\"] = 0] = \"Mixin\";\n  ReferenceType2[ReferenceType2[\"Rule\"] = 1] = \"Rule\";\n  ReferenceType2[ReferenceType2[\"Variable\"] = 2] = \"Variable\";\n  ReferenceType2[ReferenceType2[\"Function\"] = 3] = \"Function\";\n  ReferenceType2[ReferenceType2[\"Keyframe\"] = 4] = \"Keyframe\";\n  ReferenceType2[ReferenceType2[\"Unknown\"] = 5] = \"Unknown\";\n  ReferenceType2[ReferenceType2[\"Module\"] = 6] = \"Module\";\n  ReferenceType2[ReferenceType2[\"Forward\"] = 7] = \"Forward\";\n  ReferenceType2[ReferenceType2[\"ForwardVisibility\"] = 8] = \"ForwardVisibility\";\n  ReferenceType2[ReferenceType2[\"Property\"] = 9] = \"Property\";\n})(ReferenceType || (ReferenceType = {}));\nfunction getNodeAtOffset(node, offset) {\n  let candidate = null;\n  if (!node || offset < node.offset || offset > node.end) {\n    return null;\n  }\n  node.accept((node2) => {\n    if (node2.offset === -1 && node2.length === -1) {\n      return true;\n    }\n    if (node2.offset <= offset && node2.end >= offset) {\n      if (!candidate) {\n        candidate = node2;\n      } else if (node2.length <= candidate.length) {\n        candidate = node2;\n      }\n      return true;\n    }\n    return false;\n  });\n  return candidate;\n}\nfunction getNodePath(node, offset) {\n  let candidate = getNodeAtOffset(node, offset);\n  const path = [];\n  while (candidate) {\n    path.unshift(candidate);\n    candidate = candidate.parent;\n  }\n  return path;\n}\nfunction getParentDeclaration(node) {\n  const decl = node.findParent(NodeType.Declaration);\n  const value = decl && decl.getValue();\n  if (value && value.encloses(node)) {\n    return decl;\n  }\n  return null;\n}\nvar Node = class {\n  get end() {\n    return this.offset + this.length;\n  }\n  constructor(offset = -1, len = -1, nodeType) {\n    this.parent = null;\n    this.offset = offset;\n    this.length = len;\n    if (nodeType) {\n      this.nodeType = nodeType;\n    }\n  }\n  set type(type) {\n    this.nodeType = type;\n  }\n  get type() {\n    return this.nodeType || NodeType.Undefined;\n  }\n  getTextProvider() {\n    let node = this;\n    while (node && !node.textProvider) {\n      node = node.parent;\n    }\n    if (node) {\n      return node.textProvider;\n    }\n    return () => {\n      return \"unknown\";\n    };\n  }\n  getText() {\n    return this.getTextProvider()(this.offset, this.length);\n  }\n  matches(str) {\n    return this.length === str.length && this.getTextProvider()(this.offset, this.length) === str;\n  }\n  startsWith(str) {\n    return this.length >= str.length && this.getTextProvider()(this.offset, str.length) === str;\n  }\n  endsWith(str) {\n    return this.length >= str.length && this.getTextProvider()(this.end - str.length, str.length) === str;\n  }\n  accept(visitor) {\n    if (visitor(this) && this.children) {\n      for (const child of this.children) {\n        child.accept(visitor);\n      }\n    }\n  }\n  acceptVisitor(visitor) {\n    this.accept(visitor.visitNode.bind(visitor));\n  }\n  adoptChild(node, index = -1) {\n    if (node.parent && node.parent.children) {\n      const idx = node.parent.children.indexOf(node);\n      if (idx >= 0) {\n        node.parent.children.splice(idx, 1);\n      }\n    }\n    node.parent = this;\n    let children = this.children;\n    if (!children) {\n      children = this.children = [];\n    }\n    if (index !== -1) {\n      children.splice(index, 0, node);\n    } else {\n      children.push(node);\n    }\n    return node;\n  }\n  attachTo(parent, index = -1) {\n    if (parent) {\n      parent.adoptChild(this, index);\n    }\n    return this;\n  }\n  collectIssues(results) {\n    if (this.issues) {\n      results.push.apply(results, this.issues);\n    }\n  }\n  addIssue(issue) {\n    if (!this.issues) {\n      this.issues = [];\n    }\n    this.issues.push(issue);\n  }\n  hasIssue(rule) {\n    return Array.isArray(this.issues) && this.issues.some((i) => i.getRule() === rule);\n  }\n  isErroneous(recursive = false) {\n    if (this.issues && this.issues.length > 0) {\n      return true;\n    }\n    return recursive && Array.isArray(this.children) && this.children.some((c) => c.isErroneous(true));\n  }\n  setNode(field, node, index = -1) {\n    if (node) {\n      node.attachTo(this, index);\n      this[field] = node;\n      return true;\n    }\n    return false;\n  }\n  addChild(node) {\n    if (node) {\n      if (!this.children) {\n        this.children = [];\n      }\n      node.attachTo(this);\n      this.updateOffsetAndLength(node);\n      return true;\n    }\n    return false;\n  }\n  updateOffsetAndLength(node) {\n    if (node.offset < this.offset || this.offset === -1) {\n      this.offset = node.offset;\n    }\n    const nodeEnd = node.end;\n    if (nodeEnd > this.end || this.length === -1) {\n      this.length = nodeEnd - this.offset;\n    }\n  }\n  hasChildren() {\n    return !!this.children && this.children.length > 0;\n  }\n  getChildren() {\n    return this.children ? this.children.slice(0) : [];\n  }\n  getChild(index) {\n    if (this.children && index < this.children.length) {\n      return this.children[index];\n    }\n    return null;\n  }\n  addChildren(nodes) {\n    for (const node of nodes) {\n      this.addChild(node);\n    }\n  }\n  findFirstChildBeforeOffset(offset) {\n    if (this.children) {\n      let current = null;\n      for (let i = this.children.length - 1; i >= 0; i--) {\n        current = this.children[i];\n        if (current.offset <= offset) {\n          return current;\n        }\n      }\n    }\n    return null;\n  }\n  findChildAtOffset(offset, goDeep) {\n    const current = this.findFirstChildBeforeOffset(offset);\n    if (current && current.end >= offset) {\n      if (goDeep) {\n        return current.findChildAtOffset(offset, true) || current;\n      }\n      return current;\n    }\n    return null;\n  }\n  encloses(candidate) {\n    return this.offset <= candidate.offset && this.offset + this.length >= candidate.offset + candidate.length;\n  }\n  getParent() {\n    let result = this.parent;\n    while (result instanceof Nodelist) {\n      result = result.parent;\n    }\n    return result;\n  }\n  findParent(type) {\n    let result = this;\n    while (result && result.type !== type) {\n      result = result.parent;\n    }\n    return result;\n  }\n  findAParent(...types) {\n    let result = this;\n    while (result && !types.some((t2) => result.type === t2)) {\n      result = result.parent;\n    }\n    return result;\n  }\n  setData(key, value) {\n    if (!this.options) {\n      this.options = {};\n    }\n    this.options[key] = value;\n  }\n  getData(key) {\n    if (!this.options || !this.options.hasOwnProperty(key)) {\n      return null;\n    }\n    return this.options[key];\n  }\n};\nvar Nodelist = class extends Node {\n  constructor(parent, index = -1) {\n    super(-1, -1);\n    this.attachTo(parent, index);\n    this.offset = -1;\n    this.length = -1;\n  }\n};\nvar UnicodeRange = class extends Node {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.UnicodeRange;\n  }\n  setRangeStart(rangeStart) {\n    return this.setNode(\"rangeStart\", rangeStart);\n  }\n  getRangeStart() {\n    return this.rangeStart;\n  }\n  setRangeEnd(rangeEnd) {\n    return this.setNode(\"rangeEnd\", rangeEnd);\n  }\n  getRangeEnd() {\n    return this.rangeEnd;\n  }\n};\nvar Identifier = class extends Node {\n  constructor(offset, length) {\n    super(offset, length);\n    this.isCustomProperty = false;\n  }\n  get type() {\n    return NodeType.Identifier;\n  }\n  containsInterpolation() {\n    return this.hasChildren();\n  }\n};\nvar Stylesheet = class extends Node {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.Stylesheet;\n  }\n};\nvar Declarations = class extends Node {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.Declarations;\n  }\n};\nvar BodyDeclaration = class extends Node {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  getDeclarations() {\n    return this.declarations;\n  }\n  setDeclarations(decls) {\n    return this.setNode(\"declarations\", decls);\n  }\n};\nvar RuleSet = class extends BodyDeclaration {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.Ruleset;\n  }\n  getSelectors() {\n    if (!this.selectors) {\n      this.selectors = new Nodelist(this);\n    }\n    return this.selectors;\n  }\n  isNested() {\n    return !!this.parent && this.parent.findParent(NodeType.Declarations) !== null;\n  }\n};\nvar Selector = class extends Node {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.Selector;\n  }\n};\nvar SimpleSelector = class extends Node {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.SimpleSelector;\n  }\n};\nvar AbstractDeclaration = class extends Node {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n};\nvar CustomPropertySet = class extends BodyDeclaration {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.CustomPropertySet;\n  }\n};\nvar Declaration = class _Declaration extends AbstractDeclaration {\n  constructor(offset, length) {\n    super(offset, length);\n    this.property = null;\n  }\n  get type() {\n    return NodeType.Declaration;\n  }\n  setProperty(node) {\n    return this.setNode(\"property\", node);\n  }\n  getProperty() {\n    return this.property;\n  }\n  getFullPropertyName() {\n    const propertyName = this.property ? this.property.getName() : \"unknown\";\n    if (this.parent instanceof Declarations && this.parent.getParent() instanceof NestedProperties) {\n      const parentDecl = this.parent.getParent().getParent();\n      if (parentDecl instanceof _Declaration) {\n        return parentDecl.getFullPropertyName() + propertyName;\n      }\n    }\n    return propertyName;\n  }\n  getNonPrefixedPropertyName() {\n    const propertyName = this.getFullPropertyName();\n    if (propertyName && propertyName.charAt(0) === \"-\") {\n      const vendorPrefixEnd = propertyName.indexOf(\"-\", 1);\n      if (vendorPrefixEnd !== -1) {\n        return propertyName.substring(vendorPrefixEnd + 1);\n      }\n    }\n    return propertyName;\n  }\n  setValue(value) {\n    return this.setNode(\"value\", value);\n  }\n  getValue() {\n    return this.value;\n  }\n  setNestedProperties(value) {\n    return this.setNode(\"nestedProperties\", value);\n  }\n  getNestedProperties() {\n    return this.nestedProperties;\n  }\n};\nvar CustomPropertyDeclaration = class extends Declaration {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.CustomPropertyDeclaration;\n  }\n  setPropertySet(value) {\n    return this.setNode(\"propertySet\", value);\n  }\n  getPropertySet() {\n    return this.propertySet;\n  }\n};\nvar Property = class extends Node {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.Property;\n  }\n  setIdentifier(value) {\n    return this.setNode(\"identifier\", value);\n  }\n  getIdentifier() {\n    return this.identifier;\n  }\n  getName() {\n    return trim(this.getText(), /[_\\+]+$/);\n  }\n  isCustomProperty() {\n    return !!this.identifier && this.identifier.isCustomProperty;\n  }\n};\nvar Invocation = class extends Node {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.Invocation;\n  }\n  getArguments() {\n    if (!this.arguments) {\n      this.arguments = new Nodelist(this);\n    }\n    return this.arguments;\n  }\n};\nvar Function = class extends Invocation {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.Function;\n  }\n  setIdentifier(node) {\n    return this.setNode(\"identifier\", node, 0);\n  }\n  getIdentifier() {\n    return this.identifier;\n  }\n  getName() {\n    return this.identifier ? this.identifier.getText() : \"\";\n  }\n};\nvar FunctionParameter = class extends Node {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.FunctionParameter;\n  }\n  setIdentifier(node) {\n    return this.setNode(\"identifier\", node, 0);\n  }\n  getIdentifier() {\n    return this.identifier;\n  }\n  getName() {\n    return this.identifier ? this.identifier.getText() : \"\";\n  }\n  setDefaultValue(node) {\n    return this.setNode(\"defaultValue\", node, 0);\n  }\n  getDefaultValue() {\n    return this.defaultValue;\n  }\n};\nvar FunctionArgument = class extends Node {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.FunctionArgument;\n  }\n  setIdentifier(node) {\n    return this.setNode(\"identifier\", node, 0);\n  }\n  getIdentifier() {\n    return this.identifier;\n  }\n  getName() {\n    return this.identifier ? this.identifier.getText() : \"\";\n  }\n  setValue(node) {\n    return this.setNode(\"value\", node, 0);\n  }\n  getValue() {\n    return this.value;\n  }\n};\nvar IfStatement = class extends BodyDeclaration {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.If;\n  }\n  setExpression(node) {\n    return this.setNode(\"expression\", node, 0);\n  }\n  setElseClause(elseClause) {\n    return this.setNode(\"elseClause\", elseClause);\n  }\n};\nvar ForStatement = class extends BodyDeclaration {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.For;\n  }\n  setVariable(node) {\n    return this.setNode(\"variable\", node, 0);\n  }\n};\nvar EachStatement = class extends BodyDeclaration {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.Each;\n  }\n  getVariables() {\n    if (!this.variables) {\n      this.variables = new Nodelist(this);\n    }\n    return this.variables;\n  }\n};\nvar WhileStatement = class extends BodyDeclaration {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.While;\n  }\n};\nvar ElseStatement = class extends BodyDeclaration {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.Else;\n  }\n};\nvar FunctionDeclaration = class extends BodyDeclaration {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.FunctionDeclaration;\n  }\n  setIdentifier(node) {\n    return this.setNode(\"identifier\", node, 0);\n  }\n  getIdentifier() {\n    return this.identifier;\n  }\n  getName() {\n    return this.identifier ? this.identifier.getText() : \"\";\n  }\n  getParameters() {\n    if (!this.parameters) {\n      this.parameters = new Nodelist(this);\n    }\n    return this.parameters;\n  }\n};\nvar ViewPort = class extends BodyDeclaration {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.ViewPort;\n  }\n};\nvar FontFace = class extends BodyDeclaration {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.FontFace;\n  }\n};\nvar NestedProperties = class extends BodyDeclaration {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.NestedProperties;\n  }\n};\nvar Keyframe = class extends BodyDeclaration {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.Keyframe;\n  }\n  setKeyword(keyword) {\n    return this.setNode(\"keyword\", keyword, 0);\n  }\n  getKeyword() {\n    return this.keyword;\n  }\n  setIdentifier(node) {\n    return this.setNode(\"identifier\", node, 0);\n  }\n  getIdentifier() {\n    return this.identifier;\n  }\n  getName() {\n    return this.identifier ? this.identifier.getText() : \"\";\n  }\n};\nvar KeyframeSelector = class extends BodyDeclaration {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.KeyframeSelector;\n  }\n};\nvar Import = class extends Node {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.Import;\n  }\n  setMedialist(node) {\n    if (node) {\n      node.attachTo(this);\n      return true;\n    }\n    return false;\n  }\n};\nvar Use = class extends Node {\n  get type() {\n    return NodeType.Use;\n  }\n  getParameters() {\n    if (!this.parameters) {\n      this.parameters = new Nodelist(this);\n    }\n    return this.parameters;\n  }\n  setIdentifier(node) {\n    return this.setNode(\"identifier\", node, 0);\n  }\n  getIdentifier() {\n    return this.identifier;\n  }\n};\nvar ModuleConfiguration = class extends Node {\n  get type() {\n    return NodeType.ModuleConfiguration;\n  }\n  setIdentifier(node) {\n    return this.setNode(\"identifier\", node, 0);\n  }\n  getIdentifier() {\n    return this.identifier;\n  }\n  getName() {\n    return this.identifier ? this.identifier.getText() : \"\";\n  }\n  setValue(node) {\n    return this.setNode(\"value\", node, 0);\n  }\n  getValue() {\n    return this.value;\n  }\n};\nvar Forward = class extends Node {\n  get type() {\n    return NodeType.Forward;\n  }\n  setIdentifier(node) {\n    return this.setNode(\"identifier\", node, 0);\n  }\n  getIdentifier() {\n    return this.identifier;\n  }\n  getMembers() {\n    if (!this.members) {\n      this.members = new Nodelist(this);\n    }\n    return this.members;\n  }\n  getParameters() {\n    if (!this.parameters) {\n      this.parameters = new Nodelist(this);\n    }\n    return this.parameters;\n  }\n};\nvar ForwardVisibility = class extends Node {\n  get type() {\n    return NodeType.ForwardVisibility;\n  }\n  setIdentifier(node) {\n    return this.setNode(\"identifier\", node, 0);\n  }\n  getIdentifier() {\n    return this.identifier;\n  }\n};\nvar Namespace = class extends Node {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.Namespace;\n  }\n};\nvar Media = class extends BodyDeclaration {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.Media;\n  }\n};\nvar Supports = class extends BodyDeclaration {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.Supports;\n  }\n};\nvar Layer = class extends BodyDeclaration {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.Layer;\n  }\n  setNames(names) {\n    return this.setNode(\"names\", names);\n  }\n  getNames() {\n    return this.names;\n  }\n};\nvar PropertyAtRule = class extends BodyDeclaration {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.PropertyAtRule;\n  }\n  setName(node) {\n    if (node) {\n      node.attachTo(this);\n      this.name = node;\n      return true;\n    }\n    return false;\n  }\n  getName() {\n    return this.name;\n  }\n};\nvar Document = class extends BodyDeclaration {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.Document;\n  }\n};\nvar Container = class extends BodyDeclaration {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.Container;\n  }\n};\nvar Medialist = class extends Node {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n};\nvar MediaQuery = class extends Node {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.MediaQuery;\n  }\n};\nvar MediaCondition = class extends Node {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.MediaCondition;\n  }\n};\nvar MediaFeature = class extends Node {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.MediaFeature;\n  }\n};\nvar SupportsCondition = class extends Node {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.SupportsCondition;\n  }\n};\nvar Page = class extends BodyDeclaration {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.Page;\n  }\n};\nvar PageBoxMarginBox = class extends BodyDeclaration {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.PageBoxMarginBox;\n  }\n};\nvar Expression = class extends Node {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.Expression;\n  }\n};\nvar BinaryExpression = class extends Node {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.BinaryExpression;\n  }\n  setLeft(left) {\n    return this.setNode(\"left\", left);\n  }\n  getLeft() {\n    return this.left;\n  }\n  setRight(right) {\n    return this.setNode(\"right\", right);\n  }\n  getRight() {\n    return this.right;\n  }\n  setOperator(value) {\n    return this.setNode(\"operator\", value);\n  }\n  getOperator() {\n    return this.operator;\n  }\n};\nvar Term = class extends Node {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.Term;\n  }\n  setOperator(value) {\n    return this.setNode(\"operator\", value);\n  }\n  getOperator() {\n    return this.operator;\n  }\n  setExpression(value) {\n    return this.setNode(\"expression\", value);\n  }\n  getExpression() {\n    return this.expression;\n  }\n};\nvar AttributeSelector = class extends Node {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.AttributeSelector;\n  }\n  setNamespacePrefix(value) {\n    return this.setNode(\"namespacePrefix\", value);\n  }\n  getNamespacePrefix() {\n    return this.namespacePrefix;\n  }\n  setIdentifier(value) {\n    return this.setNode(\"identifier\", value);\n  }\n  getIdentifier() {\n    return this.identifier;\n  }\n  setOperator(operator) {\n    return this.setNode(\"operator\", operator);\n  }\n  getOperator() {\n    return this.operator;\n  }\n  setValue(value) {\n    return this.setNode(\"value\", value);\n  }\n  getValue() {\n    return this.value;\n  }\n};\nvar HexColorValue = class extends Node {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.HexColorValue;\n  }\n};\nvar RatioValue = class extends Node {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.RatioValue;\n  }\n};\nvar _dot = \".\".charCodeAt(0);\nvar _02 = \"0\".charCodeAt(0);\nvar _92 = \"9\".charCodeAt(0);\nvar NumericValue = class extends Node {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.NumericValue;\n  }\n  getValue() {\n    const raw = this.getText();\n    let unitIdx = 0;\n    let code;\n    for (let i = 0, len = raw.length; i < len; i++) {\n      code = raw.charCodeAt(i);\n      if (!(_02 <= code && code <= _92 || code === _dot)) {\n        break;\n      }\n      unitIdx += 1;\n    }\n    return {\n      value: raw.substring(0, unitIdx),\n      unit: unitIdx < raw.length ? raw.substring(unitIdx) : void 0\n    };\n  }\n};\nvar VariableDeclaration = class extends AbstractDeclaration {\n  constructor(offset, length) {\n    super(offset, length);\n    this.needsSemicolon = true;\n  }\n  get type() {\n    return NodeType.VariableDeclaration;\n  }\n  setVariable(node) {\n    if (node) {\n      node.attachTo(this);\n      this.variable = node;\n      return true;\n    }\n    return false;\n  }\n  getVariable() {\n    return this.variable;\n  }\n  getName() {\n    return this.variable ? this.variable.getName() : \"\";\n  }\n  setValue(node) {\n    if (node) {\n      node.attachTo(this);\n      this.value = node;\n      return true;\n    }\n    return false;\n  }\n  getValue() {\n    return this.value;\n  }\n};\nvar Interpolation = class extends Node {\n  // private _interpolations: void; // workaround for https://github.com/Microsoft/TypeScript/issues/18276\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.Interpolation;\n  }\n};\nvar Variable = class extends Node {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.VariableName;\n  }\n  getName() {\n    return this.getText();\n  }\n};\nvar ExtendsReference = class extends Node {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.ExtendsReference;\n  }\n  getSelectors() {\n    if (!this.selectors) {\n      this.selectors = new Nodelist(this);\n    }\n    return this.selectors;\n  }\n};\nvar MixinContentReference = class extends Node {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.MixinContentReference;\n  }\n  getArguments() {\n    if (!this.arguments) {\n      this.arguments = new Nodelist(this);\n    }\n    return this.arguments;\n  }\n};\nvar MixinContentDeclaration = class extends BodyDeclaration {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.MixinContentDeclaration;\n  }\n  getParameters() {\n    if (!this.parameters) {\n      this.parameters = new Nodelist(this);\n    }\n    return this.parameters;\n  }\n};\nvar MixinReference = class extends Node {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.MixinReference;\n  }\n  getNamespaces() {\n    if (!this.namespaces) {\n      this.namespaces = new Nodelist(this);\n    }\n    return this.namespaces;\n  }\n  setIdentifier(node) {\n    return this.setNode(\"identifier\", node, 0);\n  }\n  getIdentifier() {\n    return this.identifier;\n  }\n  getName() {\n    return this.identifier ? this.identifier.getText() : \"\";\n  }\n  getArguments() {\n    if (!this.arguments) {\n      this.arguments = new Nodelist(this);\n    }\n    return this.arguments;\n  }\n  setContent(node) {\n    return this.setNode(\"content\", node);\n  }\n  getContent() {\n    return this.content;\n  }\n};\nvar MixinDeclaration = class extends BodyDeclaration {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.MixinDeclaration;\n  }\n  setIdentifier(node) {\n    return this.setNode(\"identifier\", node, 0);\n  }\n  getIdentifier() {\n    return this.identifier;\n  }\n  getName() {\n    return this.identifier ? this.identifier.getText() : \"\";\n  }\n  getParameters() {\n    if (!this.parameters) {\n      this.parameters = new Nodelist(this);\n    }\n    return this.parameters;\n  }\n  setGuard(node) {\n    if (node) {\n      node.attachTo(this);\n      this.guard = node;\n    }\n    return false;\n  }\n};\nvar UnknownAtRule = class extends BodyDeclaration {\n  constructor(offset, length) {\n    super(offset, length);\n  }\n  get type() {\n    return NodeType.UnknownAtRule;\n  }\n  setAtRuleName(atRuleName) {\n    this.atRuleName = atRuleName;\n  }\n  getAtRuleName() {\n    return this.atRuleName;\n  }\n};\nvar ListEntry = class extends Node {\n  get type() {\n    return NodeType.ListEntry;\n  }\n  setKey(node) {\n    return this.setNode(\"key\", node, 0);\n  }\n  setValue(node) {\n    return this.setNode(\"value\", node, 1);\n  }\n};\nvar LessGuard = class extends Node {\n  getConditions() {\n    if (!this.conditions) {\n      this.conditions = new Nodelist(this);\n    }\n    return this.conditions;\n  }\n};\nvar GuardCondition = class extends Node {\n  setVariable(node) {\n    return this.setNode(\"variable\", node);\n  }\n};\nvar Module = class extends Node {\n  get type() {\n    return NodeType.Module;\n  }\n  setIdentifier(node) {\n    return this.setNode(\"identifier\", node, 0);\n  }\n  getIdentifier() {\n    return this.identifier;\n  }\n};\nvar Level;\n(function(Level2) {\n  Level2[Level2[\"Ignore\"] = 1] = \"Ignore\";\n  Level2[Level2[\"Warning\"] = 2] = \"Warning\";\n  Level2[Level2[\"Error\"] = 4] = \"Error\";\n})(Level || (Level = {}));\nvar Marker = class {\n  constructor(node, rule, level, message, offset = node.offset, length = node.length) {\n    this.node = node;\n    this.rule = rule;\n    this.level = level;\n    this.message = message || rule.message;\n    this.offset = offset;\n    this.length = length;\n  }\n  getRule() {\n    return this.rule;\n  }\n  getLevel() {\n    return this.level;\n  }\n  getOffset() {\n    return this.offset;\n  }\n  getLength() {\n    return this.length;\n  }\n  getNode() {\n    return this.node;\n  }\n  getMessage() {\n    return this.message;\n  }\n};\nvar ParseErrorCollector = class _ParseErrorCollector {\n  static entries(node) {\n    const visitor = new _ParseErrorCollector();\n    node.acceptVisitor(visitor);\n    return visitor.entries;\n  }\n  constructor() {\n    this.entries = [];\n  }\n  visitNode(node) {\n    if (node.isErroneous()) {\n      node.collectIssues(this.entries);\n    }\n    return true;\n  }\n};\n\n// node_modules/@vscode/l10n/dist/browser.js\nvar bundle;\nfunction t(...args) {\n  const firstArg = args[0];\n  let key;\n  let message;\n  let formatArgs;\n  if (typeof firstArg === \"string\") {\n    key = firstArg;\n    message = firstArg;\n    args.splice(0, 1);\n    formatArgs = !args || typeof args[0] !== \"object\" ? args : args[0];\n  } else if (firstArg instanceof Array) {\n    const replacements = args.slice(1);\n    if (firstArg.length !== replacements.length + 1) {\n      throw new Error(\"expected a string as the first argument to l10n.t\");\n    }\n    let str = firstArg[0];\n    for (let i = 1; i < firstArg.length; i++) {\n      str += `{${i - 1}}` + firstArg[i];\n    }\n    return t(str, ...replacements);\n  } else {\n    message = firstArg.message;\n    key = message;\n    if (firstArg.comment && firstArg.comment.length > 0) {\n      key += `/${Array.isArray(firstArg.comment) ? firstArg.comment.join(\"\") : firstArg.comment}`;\n    }\n    formatArgs = firstArg.args ?? {};\n  }\n  const messageFromBundle = bundle?.[key];\n  if (!messageFromBundle) {\n    return format(message, formatArgs);\n  }\n  if (typeof messageFromBundle === \"string\") {\n    return format(messageFromBundle, formatArgs);\n  }\n  if (messageFromBundle.comment) {\n    return format(messageFromBundle.message, formatArgs);\n  }\n  return format(message, formatArgs);\n}\nvar _format2Regexp = /{([^}]+)}/g;\nfunction format(template, values2) {\n  if (Object.keys(values2).length === 0) {\n    return template;\n  }\n  return template.replace(_format2Regexp, (match, group) => values2[group] ?? match);\n}\n\n// node_modules/vscode-css-languageservice/lib/esm/parser/cssErrors.js\nvar CSSIssueType = class {\n  constructor(id, message) {\n    this.id = id;\n    this.message = message;\n  }\n};\nvar ParseError = {\n  NumberExpected: new CSSIssueType(\"css-numberexpected\", t(\"number expected\")),\n  ConditionExpected: new CSSIssueType(\"css-conditionexpected\", t(\"condition expected\")),\n  RuleOrSelectorExpected: new CSSIssueType(\"css-ruleorselectorexpected\", t(\"at-rule or selector expected\")),\n  DotExpected: new CSSIssueType(\"css-dotexpected\", t(\"dot expected\")),\n  ColonExpected: new CSSIssueType(\"css-colonexpected\", t(\"colon expected\")),\n  SemiColonExpected: new CSSIssueType(\"css-semicolonexpected\", t(\"semi-colon expected\")),\n  TermExpected: new CSSIssueType(\"css-termexpected\", t(\"term expected\")),\n  ExpressionExpected: new CSSIssueType(\"css-expressionexpected\", t(\"expression expected\")),\n  OperatorExpected: new CSSIssueType(\"css-operatorexpected\", t(\"operator expected\")),\n  IdentifierExpected: new CSSIssueType(\"css-identifierexpected\", t(\"identifier expected\")),\n  PercentageExpected: new CSSIssueType(\"css-percentageexpected\", t(\"percentage expected\")),\n  URIOrStringExpected: new CSSIssueType(\"css-uriorstringexpected\", t(\"uri or string expected\")),\n  URIExpected: new CSSIssueType(\"css-uriexpected\", t(\"URI expected\")),\n  VariableNameExpected: new CSSIssueType(\"css-varnameexpected\", t(\"variable name expected\")),\n  VariableValueExpected: new CSSIssueType(\"css-varvalueexpected\", t(\"variable value expected\")),\n  PropertyValueExpected: new CSSIssueType(\"css-propertyvalueexpected\", t(\"property value expected\")),\n  LeftCurlyExpected: new CSSIssueType(\"css-lcurlyexpected\", t(\"{ expected\")),\n  RightCurlyExpected: new CSSIssueType(\"css-rcurlyexpected\", t(\"} expected\")),\n  LeftSquareBracketExpected: new CSSIssueType(\"css-rbracketexpected\", t(\"[ expected\")),\n  RightSquareBracketExpected: new CSSIssueType(\"css-lbracketexpected\", t(\"] expected\")),\n  LeftParenthesisExpected: new CSSIssueType(\"css-lparentexpected\", t(\"( expected\")),\n  RightParenthesisExpected: new CSSIssueType(\"css-rparentexpected\", t(\") expected\")),\n  CommaExpected: new CSSIssueType(\"css-commaexpected\", t(\"comma expected\")),\n  PageDirectiveOrDeclarationExpected: new CSSIssueType(\"css-pagedirordeclexpected\", t(\"page directive or declaraton expected\")),\n  UnknownAtRule: new CSSIssueType(\"css-unknownatrule\", t(\"at-rule unknown\")),\n  UnknownKeyword: new CSSIssueType(\"css-unknownkeyword\", t(\"unknown keyword\")),\n  SelectorExpected: new CSSIssueType(\"css-selectorexpected\", t(\"selector expected\")),\n  StringLiteralExpected: new CSSIssueType(\"css-stringliteralexpected\", t(\"string literal expected\")),\n  WhitespaceExpected: new CSSIssueType(\"css-whitespaceexpected\", t(\"whitespace expected\")),\n  MediaQueryExpected: new CSSIssueType(\"css-mediaqueryexpected\", t(\"media query expected\")),\n  IdentifierOrWildcardExpected: new CSSIssueType(\"css-idorwildcardexpected\", t(\"identifier or wildcard expected\")),\n  WildcardExpected: new CSSIssueType(\"css-wildcardexpected\", t(\"wildcard expected\")),\n  IdentifierOrVariableExpected: new CSSIssueType(\"css-idorvarexpected\", t(\"identifier or variable expected\"))\n};\n\n// node_modules/vscode-languageserver-types/lib/esm/main.js\nvar DocumentUri;\n(function(DocumentUri2) {\n  function is(value) {\n    return typeof value === \"string\";\n  }\n  DocumentUri2.is = is;\n})(DocumentUri || (DocumentUri = {}));\nvar URI;\n(function(URI3) {\n  function is(value) {\n    return typeof value === \"string\";\n  }\n  URI3.is = is;\n})(URI || (URI = {}));\nvar integer;\n(function(integer2) {\n  integer2.MIN_VALUE = -2147483648;\n  integer2.MAX_VALUE = 2147483647;\n  function is(value) {\n    return typeof value === \"number\" && integer2.MIN_VALUE <= value && value <= integer2.MAX_VALUE;\n  }\n  integer2.is = is;\n})(integer || (integer = {}));\nvar uinteger;\n(function(uinteger2) {\n  uinteger2.MIN_VALUE = 0;\n  uinteger2.MAX_VALUE = 2147483647;\n  function is(value) {\n    return typeof value === \"number\" && uinteger2.MIN_VALUE <= value && value <= uinteger2.MAX_VALUE;\n  }\n  uinteger2.is = is;\n})(uinteger || (uinteger = {}));\nvar Position;\n(function(Position2) {\n  function create(line, character) {\n    if (line === Number.MAX_VALUE) {\n      line = uinteger.MAX_VALUE;\n    }\n    if (character === Number.MAX_VALUE) {\n      character = uinteger.MAX_VALUE;\n    }\n    return { line, character };\n  }\n  Position2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.objectLiteral(candidate) && Is.uinteger(candidate.line) && Is.uinteger(candidate.character);\n  }\n  Position2.is = is;\n})(Position || (Position = {}));\nvar Range;\n(function(Range2) {\n  function create(one, two, three, four) {\n    if (Is.uinteger(one) && Is.uinteger(two) && Is.uinteger(three) && Is.uinteger(four)) {\n      return { start: Position.create(one, two), end: Position.create(three, four) };\n    } else if (Position.is(one) && Position.is(two)) {\n      return { start: one, end: two };\n    } else {\n      throw new Error(`Range#create called with invalid arguments[${one}, ${two}, ${three}, ${four}]`);\n    }\n  }\n  Range2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.objectLiteral(candidate) && Position.is(candidate.start) && Position.is(candidate.end);\n  }\n  Range2.is = is;\n})(Range || (Range = {}));\nvar Location;\n(function(Location2) {\n  function create(uri, range) {\n    return { uri, range };\n  }\n  Location2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.objectLiteral(candidate) && Range.is(candidate.range) && (Is.string(candidate.uri) || Is.undefined(candidate.uri));\n  }\n  Location2.is = is;\n})(Location || (Location = {}));\nvar LocationLink;\n(function(LocationLink2) {\n  function create(targetUri, targetRange, targetSelectionRange, originSelectionRange) {\n    return { targetUri, targetRange, targetSelectionRange, originSelectionRange };\n  }\n  LocationLink2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.objectLiteral(candidate) && Range.is(candidate.targetRange) && Is.string(candidate.targetUri) && Range.is(candidate.targetSelectionRange) && (Range.is(candidate.originSelectionRange) || Is.undefined(candidate.originSelectionRange));\n  }\n  LocationLink2.is = is;\n})(LocationLink || (LocationLink = {}));\nvar Color;\n(function(Color2) {\n  function create(red, green, blue, alpha) {\n    return {\n      red,\n      green,\n      blue,\n      alpha\n    };\n  }\n  Color2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.numberRange(candidate.red, 0, 1) && Is.numberRange(candidate.green, 0, 1) && Is.numberRange(candidate.blue, 0, 1) && Is.numberRange(candidate.alpha, 0, 1);\n  }\n  Color2.is = is;\n})(Color || (Color = {}));\nvar ColorInformation;\n(function(ColorInformation2) {\n  function create(range, color) {\n    return {\n      range,\n      color\n    };\n  }\n  ColorInformation2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Range.is(candidate.range) && Color.is(candidate.color);\n  }\n  ColorInformation2.is = is;\n})(ColorInformation || (ColorInformation = {}));\nvar ColorPresentation;\n(function(ColorPresentation2) {\n  function create(label, textEdit, additionalTextEdits) {\n    return {\n      label,\n      textEdit,\n      additionalTextEdits\n    };\n  }\n  ColorPresentation2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.string(candidate.label) && (Is.undefined(candidate.textEdit) || TextEdit.is(candidate)) && (Is.undefined(candidate.additionalTextEdits) || Is.typedArray(candidate.additionalTextEdits, TextEdit.is));\n  }\n  ColorPresentation2.is = is;\n})(ColorPresentation || (ColorPresentation = {}));\nvar FoldingRangeKind;\n(function(FoldingRangeKind2) {\n  FoldingRangeKind2.Comment = \"comment\";\n  FoldingRangeKind2.Imports = \"imports\";\n  FoldingRangeKind2.Region = \"region\";\n})(FoldingRangeKind || (FoldingRangeKind = {}));\nvar FoldingRange;\n(function(FoldingRange2) {\n  function create(startLine, endLine, startCharacter, endCharacter, kind, collapsedText) {\n    const result = {\n      startLine,\n      endLine\n    };\n    if (Is.defined(startCharacter)) {\n      result.startCharacter = startCharacter;\n    }\n    if (Is.defined(endCharacter)) {\n      result.endCharacter = endCharacter;\n    }\n    if (Is.defined(kind)) {\n      result.kind = kind;\n    }\n    if (Is.defined(collapsedText)) {\n      result.collapsedText = collapsedText;\n    }\n    return result;\n  }\n  FoldingRange2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.uinteger(candidate.startLine) && Is.uinteger(candidate.startLine) && (Is.undefined(candidate.startCharacter) || Is.uinteger(candidate.startCharacter)) && (Is.undefined(candidate.endCharacter) || Is.uinteger(candidate.endCharacter)) && (Is.undefined(candidate.kind) || Is.string(candidate.kind));\n  }\n  FoldingRange2.is = is;\n})(FoldingRange || (FoldingRange = {}));\nvar DiagnosticRelatedInformation;\n(function(DiagnosticRelatedInformation2) {\n  function create(location, message) {\n    return {\n      location,\n      message\n    };\n  }\n  DiagnosticRelatedInformation2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Location.is(candidate.location) && Is.string(candidate.message);\n  }\n  DiagnosticRelatedInformation2.is = is;\n})(DiagnosticRelatedInformation || (DiagnosticRelatedInformation = {}));\nvar DiagnosticSeverity;\n(function(DiagnosticSeverity2) {\n  DiagnosticSeverity2.Error = 1;\n  DiagnosticSeverity2.Warning = 2;\n  DiagnosticSeverity2.Information = 3;\n  DiagnosticSeverity2.Hint = 4;\n})(DiagnosticSeverity || (DiagnosticSeverity = {}));\nvar DiagnosticTag;\n(function(DiagnosticTag2) {\n  DiagnosticTag2.Unnecessary = 1;\n  DiagnosticTag2.Deprecated = 2;\n})(DiagnosticTag || (DiagnosticTag = {}));\nvar CodeDescription;\n(function(CodeDescription2) {\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.string(candidate.href);\n  }\n  CodeDescription2.is = is;\n})(CodeDescription || (CodeDescription = {}));\nvar Diagnostic;\n(function(Diagnostic2) {\n  function create(range, message, severity, code, source, relatedInformation) {\n    let result = { range, message };\n    if (Is.defined(severity)) {\n      result.severity = severity;\n    }\n    if (Is.defined(code)) {\n      result.code = code;\n    }\n    if (Is.defined(source)) {\n      result.source = source;\n    }\n    if (Is.defined(relatedInformation)) {\n      result.relatedInformation = relatedInformation;\n    }\n    return result;\n  }\n  Diagnostic2.create = create;\n  function is(value) {\n    var _a2;\n    let candidate = value;\n    return Is.defined(candidate) && Range.is(candidate.range) && Is.string(candidate.message) && (Is.number(candidate.severity) || Is.undefined(candidate.severity)) && (Is.integer(candidate.code) || Is.string(candidate.code) || Is.undefined(candidate.code)) && (Is.undefined(candidate.codeDescription) || Is.string((_a2 = candidate.codeDescription) === null || _a2 === void 0 ? void 0 : _a2.href)) && (Is.string(candidate.source) || Is.undefined(candidate.source)) && (Is.undefined(candidate.relatedInformation) || Is.typedArray(candidate.relatedInformation, DiagnosticRelatedInformation.is));\n  }\n  Diagnostic2.is = is;\n})(Diagnostic || (Diagnostic = {}));\nvar Command;\n(function(Command2) {\n  function create(title, command, ...args) {\n    let result = { title, command };\n    if (Is.defined(args) && args.length > 0) {\n      result.arguments = args;\n    }\n    return result;\n  }\n  Command2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.title) && Is.string(candidate.command);\n  }\n  Command2.is = is;\n})(Command || (Command = {}));\nvar TextEdit;\n(function(TextEdit2) {\n  function replace(range, newText) {\n    return { range, newText };\n  }\n  TextEdit2.replace = replace;\n  function insert(position, newText) {\n    return { range: { start: position, end: position }, newText };\n  }\n  TextEdit2.insert = insert;\n  function del(range) {\n    return { range, newText: \"\" };\n  }\n  TextEdit2.del = del;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.string(candidate.newText) && Range.is(candidate.range);\n  }\n  TextEdit2.is = is;\n})(TextEdit || (TextEdit = {}));\nvar ChangeAnnotation;\n(function(ChangeAnnotation2) {\n  function create(label, needsConfirmation, description) {\n    const result = { label };\n    if (needsConfirmation !== void 0) {\n      result.needsConfirmation = needsConfirmation;\n    }\n    if (description !== void 0) {\n      result.description = description;\n    }\n    return result;\n  }\n  ChangeAnnotation2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.string(candidate.label) && (Is.boolean(candidate.needsConfirmation) || candidate.needsConfirmation === void 0) && (Is.string(candidate.description) || candidate.description === void 0);\n  }\n  ChangeAnnotation2.is = is;\n})(ChangeAnnotation || (ChangeAnnotation = {}));\nvar ChangeAnnotationIdentifier;\n(function(ChangeAnnotationIdentifier2) {\n  function is(value) {\n    const candidate = value;\n    return Is.string(candidate);\n  }\n  ChangeAnnotationIdentifier2.is = is;\n})(ChangeAnnotationIdentifier || (ChangeAnnotationIdentifier = {}));\nvar AnnotatedTextEdit;\n(function(AnnotatedTextEdit2) {\n  function replace(range, newText, annotation) {\n    return { range, newText, annotationId: annotation };\n  }\n  AnnotatedTextEdit2.replace = replace;\n  function insert(position, newText, annotation) {\n    return { range: { start: position, end: position }, newText, annotationId: annotation };\n  }\n  AnnotatedTextEdit2.insert = insert;\n  function del(range, annotation) {\n    return { range, newText: \"\", annotationId: annotation };\n  }\n  AnnotatedTextEdit2.del = del;\n  function is(value) {\n    const candidate = value;\n    return TextEdit.is(candidate) && (ChangeAnnotation.is(candidate.annotationId) || ChangeAnnotationIdentifier.is(candidate.annotationId));\n  }\n  AnnotatedTextEdit2.is = is;\n})(AnnotatedTextEdit || (AnnotatedTextEdit = {}));\nvar TextDocumentEdit;\n(function(TextDocumentEdit2) {\n  function create(textDocument, edits) {\n    return { textDocument, edits };\n  }\n  TextDocumentEdit2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && OptionalVersionedTextDocumentIdentifier.is(candidate.textDocument) && Array.isArray(candidate.edits);\n  }\n  TextDocumentEdit2.is = is;\n})(TextDocumentEdit || (TextDocumentEdit = {}));\nvar CreateFile;\n(function(CreateFile2) {\n  function create(uri, options, annotation) {\n    let result = {\n      kind: \"create\",\n      uri\n    };\n    if (options !== void 0 && (options.overwrite !== void 0 || options.ignoreIfExists !== void 0)) {\n      result.options = options;\n    }\n    if (annotation !== void 0) {\n      result.annotationId = annotation;\n    }\n    return result;\n  }\n  CreateFile2.create = create;\n  function is(value) {\n    let candidate = value;\n    return candidate && candidate.kind === \"create\" && Is.string(candidate.uri) && (candidate.options === void 0 || (candidate.options.overwrite === void 0 || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === void 0 || Is.boolean(candidate.options.ignoreIfExists))) && (candidate.annotationId === void 0 || ChangeAnnotationIdentifier.is(candidate.annotationId));\n  }\n  CreateFile2.is = is;\n})(CreateFile || (CreateFile = {}));\nvar RenameFile;\n(function(RenameFile2) {\n  function create(oldUri, newUri, options, annotation) {\n    let result = {\n      kind: \"rename\",\n      oldUri,\n      newUri\n    };\n    if (options !== void 0 && (options.overwrite !== void 0 || options.ignoreIfExists !== void 0)) {\n      result.options = options;\n    }\n    if (annotation !== void 0) {\n      result.annotationId = annotation;\n    }\n    return result;\n  }\n  RenameFile2.create = create;\n  function is(value) {\n    let candidate = value;\n    return candidate && candidate.kind === \"rename\" && Is.string(candidate.oldUri) && Is.string(candidate.newUri) && (candidate.options === void 0 || (candidate.options.overwrite === void 0 || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === void 0 || Is.boolean(candidate.options.ignoreIfExists))) && (candidate.annotationId === void 0 || ChangeAnnotationIdentifier.is(candidate.annotationId));\n  }\n  RenameFile2.is = is;\n})(RenameFile || (RenameFile = {}));\nvar DeleteFile;\n(function(DeleteFile2) {\n  function create(uri, options, annotation) {\n    let result = {\n      kind: \"delete\",\n      uri\n    };\n    if (options !== void 0 && (options.recursive !== void 0 || options.ignoreIfNotExists !== void 0)) {\n      result.options = options;\n    }\n    if (annotation !== void 0) {\n      result.annotationId = annotation;\n    }\n    return result;\n  }\n  DeleteFile2.create = create;\n  function is(value) {\n    let candidate = value;\n    return candidate && candidate.kind === \"delete\" && Is.string(candidate.uri) && (candidate.options === void 0 || (candidate.options.recursive === void 0 || Is.boolean(candidate.options.recursive)) && (candidate.options.ignoreIfNotExists === void 0 || Is.boolean(candidate.options.ignoreIfNotExists))) && (candidate.annotationId === void 0 || ChangeAnnotationIdentifier.is(candidate.annotationId));\n  }\n  DeleteFile2.is = is;\n})(DeleteFile || (DeleteFile = {}));\nvar WorkspaceEdit;\n(function(WorkspaceEdit2) {\n  function is(value) {\n    let candidate = value;\n    return candidate && (candidate.changes !== void 0 || candidate.documentChanges !== void 0) && (candidate.documentChanges === void 0 || candidate.documentChanges.every((change) => {\n      if (Is.string(change.kind)) {\n        return CreateFile.is(change) || RenameFile.is(change) || DeleteFile.is(change);\n      } else {\n        return TextDocumentEdit.is(change);\n      }\n    }));\n  }\n  WorkspaceEdit2.is = is;\n})(WorkspaceEdit || (WorkspaceEdit = {}));\nvar TextDocumentIdentifier;\n(function(TextDocumentIdentifier2) {\n  function create(uri) {\n    return { uri };\n  }\n  TextDocumentIdentifier2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.uri);\n  }\n  TextDocumentIdentifier2.is = is;\n})(TextDocumentIdentifier || (TextDocumentIdentifier = {}));\nvar VersionedTextDocumentIdentifier;\n(function(VersionedTextDocumentIdentifier2) {\n  function create(uri, version) {\n    return { uri, version };\n  }\n  VersionedTextDocumentIdentifier2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.uri) && Is.integer(candidate.version);\n  }\n  VersionedTextDocumentIdentifier2.is = is;\n})(VersionedTextDocumentIdentifier || (VersionedTextDocumentIdentifier = {}));\nvar OptionalVersionedTextDocumentIdentifier;\n(function(OptionalVersionedTextDocumentIdentifier2) {\n  function create(uri, version) {\n    return { uri, version };\n  }\n  OptionalVersionedTextDocumentIdentifier2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.uri) && (candidate.version === null || Is.integer(candidate.version));\n  }\n  OptionalVersionedTextDocumentIdentifier2.is = is;\n})(OptionalVersionedTextDocumentIdentifier || (OptionalVersionedTextDocumentIdentifier = {}));\nvar TextDocumentItem;\n(function(TextDocumentItem2) {\n  function create(uri, languageId, version, text) {\n    return { uri, languageId, version, text };\n  }\n  TextDocumentItem2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.uri) && Is.string(candidate.languageId) && Is.integer(candidate.version) && Is.string(candidate.text);\n  }\n  TextDocumentItem2.is = is;\n})(TextDocumentItem || (TextDocumentItem = {}));\nvar MarkupKind;\n(function(MarkupKind2) {\n  MarkupKind2.PlainText = \"plaintext\";\n  MarkupKind2.Markdown = \"markdown\";\n  function is(value) {\n    const candidate = value;\n    return candidate === MarkupKind2.PlainText || candidate === MarkupKind2.Markdown;\n  }\n  MarkupKind2.is = is;\n})(MarkupKind || (MarkupKind = {}));\nvar MarkupContent;\n(function(MarkupContent2) {\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(value) && MarkupKind.is(candidate.kind) && Is.string(candidate.value);\n  }\n  MarkupContent2.is = is;\n})(MarkupContent || (MarkupContent = {}));\nvar CompletionItemKind;\n(function(CompletionItemKind2) {\n  CompletionItemKind2.Text = 1;\n  CompletionItemKind2.Method = 2;\n  CompletionItemKind2.Function = 3;\n  CompletionItemKind2.Constructor = 4;\n  CompletionItemKind2.Field = 5;\n  CompletionItemKind2.Variable = 6;\n  CompletionItemKind2.Class = 7;\n  CompletionItemKind2.Interface = 8;\n  CompletionItemKind2.Module = 9;\n  CompletionItemKind2.Property = 10;\n  CompletionItemKind2.Unit = 11;\n  CompletionItemKind2.Value = 12;\n  CompletionItemKind2.Enum = 13;\n  CompletionItemKind2.Keyword = 14;\n  CompletionItemKind2.Snippet = 15;\n  CompletionItemKind2.Color = 16;\n  CompletionItemKind2.File = 17;\n  CompletionItemKind2.Reference = 18;\n  CompletionItemKind2.Folder = 19;\n  CompletionItemKind2.EnumMember = 20;\n  CompletionItemKind2.Constant = 21;\n  CompletionItemKind2.Struct = 22;\n  CompletionItemKind2.Event = 23;\n  CompletionItemKind2.Operator = 24;\n  CompletionItemKind2.TypeParameter = 25;\n})(CompletionItemKind || (CompletionItemKind = {}));\nvar InsertTextFormat;\n(function(InsertTextFormat2) {\n  InsertTextFormat2.PlainText = 1;\n  InsertTextFormat2.Snippet = 2;\n})(InsertTextFormat || (InsertTextFormat = {}));\nvar CompletionItemTag;\n(function(CompletionItemTag2) {\n  CompletionItemTag2.Deprecated = 1;\n})(CompletionItemTag || (CompletionItemTag = {}));\nvar InsertReplaceEdit;\n(function(InsertReplaceEdit2) {\n  function create(newText, insert, replace) {\n    return { newText, insert, replace };\n  }\n  InsertReplaceEdit2.create = create;\n  function is(value) {\n    const candidate = value;\n    return candidate && Is.string(candidate.newText) && Range.is(candidate.insert) && Range.is(candidate.replace);\n  }\n  InsertReplaceEdit2.is = is;\n})(InsertReplaceEdit || (InsertReplaceEdit = {}));\nvar InsertTextMode;\n(function(InsertTextMode2) {\n  InsertTextMode2.asIs = 1;\n  InsertTextMode2.adjustIndentation = 2;\n})(InsertTextMode || (InsertTextMode = {}));\nvar CompletionItemLabelDetails;\n(function(CompletionItemLabelDetails2) {\n  function is(value) {\n    const candidate = value;\n    return candidate && (Is.string(candidate.detail) || candidate.detail === void 0) && (Is.string(candidate.description) || candidate.description === void 0);\n  }\n  CompletionItemLabelDetails2.is = is;\n})(CompletionItemLabelDetails || (CompletionItemLabelDetails = {}));\nvar CompletionItem;\n(function(CompletionItem2) {\n  function create(label) {\n    return { label };\n  }\n  CompletionItem2.create = create;\n})(CompletionItem || (CompletionItem = {}));\nvar CompletionList;\n(function(CompletionList2) {\n  function create(items, isIncomplete) {\n    return { items: items ? items : [], isIncomplete: !!isIncomplete };\n  }\n  CompletionList2.create = create;\n})(CompletionList || (CompletionList = {}));\nvar MarkedString;\n(function(MarkedString2) {\n  function fromPlainText(plainText) {\n    return plainText.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g, \"\\\\$&\");\n  }\n  MarkedString2.fromPlainText = fromPlainText;\n  function is(value) {\n    const candidate = value;\n    return Is.string(candidate) || Is.objectLiteral(candidate) && Is.string(candidate.language) && Is.string(candidate.value);\n  }\n  MarkedString2.is = is;\n})(MarkedString || (MarkedString = {}));\nvar Hover;\n(function(Hover2) {\n  function is(value) {\n    let candidate = value;\n    return !!candidate && Is.objectLiteral(candidate) && (MarkupContent.is(candidate.contents) || MarkedString.is(candidate.contents) || Is.typedArray(candidate.contents, MarkedString.is)) && (value.range === void 0 || Range.is(value.range));\n  }\n  Hover2.is = is;\n})(Hover || (Hover = {}));\nvar ParameterInformation;\n(function(ParameterInformation2) {\n  function create(label, documentation) {\n    return documentation ? { label, documentation } : { label };\n  }\n  ParameterInformation2.create = create;\n})(ParameterInformation || (ParameterInformation = {}));\nvar SignatureInformation;\n(function(SignatureInformation2) {\n  function create(label, documentation, ...parameters) {\n    let result = { label };\n    if (Is.defined(documentation)) {\n      result.documentation = documentation;\n    }\n    if (Is.defined(parameters)) {\n      result.parameters = parameters;\n    } else {\n      result.parameters = [];\n    }\n    return result;\n  }\n  SignatureInformation2.create = create;\n})(SignatureInformation || (SignatureInformation = {}));\nvar DocumentHighlightKind;\n(function(DocumentHighlightKind2) {\n  DocumentHighlightKind2.Text = 1;\n  DocumentHighlightKind2.Read = 2;\n  DocumentHighlightKind2.Write = 3;\n})(DocumentHighlightKind || (DocumentHighlightKind = {}));\nvar DocumentHighlight;\n(function(DocumentHighlight2) {\n  function create(range, kind) {\n    let result = { range };\n    if (Is.number(kind)) {\n      result.kind = kind;\n    }\n    return result;\n  }\n  DocumentHighlight2.create = create;\n})(DocumentHighlight || (DocumentHighlight = {}));\nvar SymbolKind;\n(function(SymbolKind2) {\n  SymbolKind2.File = 1;\n  SymbolKind2.Module = 2;\n  SymbolKind2.Namespace = 3;\n  SymbolKind2.Package = 4;\n  SymbolKind2.Class = 5;\n  SymbolKind2.Method = 6;\n  SymbolKind2.Property = 7;\n  SymbolKind2.Field = 8;\n  SymbolKind2.Constructor = 9;\n  SymbolKind2.Enum = 10;\n  SymbolKind2.Interface = 11;\n  SymbolKind2.Function = 12;\n  SymbolKind2.Variable = 13;\n  SymbolKind2.Constant = 14;\n  SymbolKind2.String = 15;\n  SymbolKind2.Number = 16;\n  SymbolKind2.Boolean = 17;\n  SymbolKind2.Array = 18;\n  SymbolKind2.Object = 19;\n  SymbolKind2.Key = 20;\n  SymbolKind2.Null = 21;\n  SymbolKind2.EnumMember = 22;\n  SymbolKind2.Struct = 23;\n  SymbolKind2.Event = 24;\n  SymbolKind2.Operator = 25;\n  SymbolKind2.TypeParameter = 26;\n})(SymbolKind || (SymbolKind = {}));\nvar SymbolTag;\n(function(SymbolTag2) {\n  SymbolTag2.Deprecated = 1;\n})(SymbolTag || (SymbolTag = {}));\nvar SymbolInformation;\n(function(SymbolInformation2) {\n  function create(name, kind, range, uri, containerName) {\n    let result = {\n      name,\n      kind,\n      location: { uri, range }\n    };\n    if (containerName) {\n      result.containerName = containerName;\n    }\n    return result;\n  }\n  SymbolInformation2.create = create;\n})(SymbolInformation || (SymbolInformation = {}));\nvar WorkspaceSymbol;\n(function(WorkspaceSymbol2) {\n  function create(name, kind, uri, range) {\n    return range !== void 0 ? { name, kind, location: { uri, range } } : { name, kind, location: { uri } };\n  }\n  WorkspaceSymbol2.create = create;\n})(WorkspaceSymbol || (WorkspaceSymbol = {}));\nvar DocumentSymbol;\n(function(DocumentSymbol2) {\n  function create(name, detail, kind, range, selectionRange, children) {\n    let result = {\n      name,\n      detail,\n      kind,\n      range,\n      selectionRange\n    };\n    if (children !== void 0) {\n      result.children = children;\n    }\n    return result;\n  }\n  DocumentSymbol2.create = create;\n  function is(value) {\n    let candidate = value;\n    return candidate && Is.string(candidate.name) && Is.number(candidate.kind) && Range.is(candidate.range) && Range.is(candidate.selectionRange) && (candidate.detail === void 0 || Is.string(candidate.detail)) && (candidate.deprecated === void 0 || Is.boolean(candidate.deprecated)) && (candidate.children === void 0 || Array.isArray(candidate.children)) && (candidate.tags === void 0 || Array.isArray(candidate.tags));\n  }\n  DocumentSymbol2.is = is;\n})(DocumentSymbol || (DocumentSymbol = {}));\nvar CodeActionKind;\n(function(CodeActionKind2) {\n  CodeActionKind2.Empty = \"\";\n  CodeActionKind2.QuickFix = \"quickfix\";\n  CodeActionKind2.Refactor = \"refactor\";\n  CodeActionKind2.RefactorExtract = \"refactor.extract\";\n  CodeActionKind2.RefactorInline = \"refactor.inline\";\n  CodeActionKind2.RefactorRewrite = \"refactor.rewrite\";\n  CodeActionKind2.Source = \"source\";\n  CodeActionKind2.SourceOrganizeImports = \"source.organizeImports\";\n  CodeActionKind2.SourceFixAll = \"source.fixAll\";\n})(CodeActionKind || (CodeActionKind = {}));\nvar CodeActionTriggerKind;\n(function(CodeActionTriggerKind2) {\n  CodeActionTriggerKind2.Invoked = 1;\n  CodeActionTriggerKind2.Automatic = 2;\n})(CodeActionTriggerKind || (CodeActionTriggerKind = {}));\nvar CodeActionContext;\n(function(CodeActionContext2) {\n  function create(diagnostics, only, triggerKind) {\n    let result = { diagnostics };\n    if (only !== void 0 && only !== null) {\n      result.only = only;\n    }\n    if (triggerKind !== void 0 && triggerKind !== null) {\n      result.triggerKind = triggerKind;\n    }\n    return result;\n  }\n  CodeActionContext2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.typedArray(candidate.diagnostics, Diagnostic.is) && (candidate.only === void 0 || Is.typedArray(candidate.only, Is.string)) && (candidate.triggerKind === void 0 || candidate.triggerKind === CodeActionTriggerKind.Invoked || candidate.triggerKind === CodeActionTriggerKind.Automatic);\n  }\n  CodeActionContext2.is = is;\n})(CodeActionContext || (CodeActionContext = {}));\nvar CodeAction;\n(function(CodeAction2) {\n  function create(title, kindOrCommandOrEdit, kind) {\n    let result = { title };\n    let checkKind = true;\n    if (typeof kindOrCommandOrEdit === \"string\") {\n      checkKind = false;\n      result.kind = kindOrCommandOrEdit;\n    } else if (Command.is(kindOrCommandOrEdit)) {\n      result.command = kindOrCommandOrEdit;\n    } else {\n      result.edit = kindOrCommandOrEdit;\n    }\n    if (checkKind && kind !== void 0) {\n      result.kind = kind;\n    }\n    return result;\n  }\n  CodeAction2.create = create;\n  function is(value) {\n    let candidate = value;\n    return candidate && Is.string(candidate.title) && (candidate.diagnostics === void 0 || Is.typedArray(candidate.diagnostics, Diagnostic.is)) && (candidate.kind === void 0 || Is.string(candidate.kind)) && (candidate.edit !== void 0 || candidate.command !== void 0) && (candidate.command === void 0 || Command.is(candidate.command)) && (candidate.isPreferred === void 0 || Is.boolean(candidate.isPreferred)) && (candidate.edit === void 0 || WorkspaceEdit.is(candidate.edit));\n  }\n  CodeAction2.is = is;\n})(CodeAction || (CodeAction = {}));\nvar CodeLens;\n(function(CodeLens2) {\n  function create(range, data) {\n    let result = { range };\n    if (Is.defined(data)) {\n      result.data = data;\n    }\n    return result;\n  }\n  CodeLens2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.command) || Command.is(candidate.command));\n  }\n  CodeLens2.is = is;\n})(CodeLens || (CodeLens = {}));\nvar FormattingOptions;\n(function(FormattingOptions2) {\n  function create(tabSize, insertSpaces) {\n    return { tabSize, insertSpaces };\n  }\n  FormattingOptions2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.uinteger(candidate.tabSize) && Is.boolean(candidate.insertSpaces);\n  }\n  FormattingOptions2.is = is;\n})(FormattingOptions || (FormattingOptions = {}));\nvar DocumentLink;\n(function(DocumentLink2) {\n  function create(range, target, data) {\n    return { range, target, data };\n  }\n  DocumentLink2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.target) || Is.string(candidate.target));\n  }\n  DocumentLink2.is = is;\n})(DocumentLink || (DocumentLink = {}));\nvar SelectionRange;\n(function(SelectionRange2) {\n  function create(range, parent) {\n    return { range, parent };\n  }\n  SelectionRange2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.objectLiteral(candidate) && Range.is(candidate.range) && (candidate.parent === void 0 || SelectionRange2.is(candidate.parent));\n  }\n  SelectionRange2.is = is;\n})(SelectionRange || (SelectionRange = {}));\nvar SemanticTokenTypes;\n(function(SemanticTokenTypes2) {\n  SemanticTokenTypes2[\"namespace\"] = \"namespace\";\n  SemanticTokenTypes2[\"type\"] = \"type\";\n  SemanticTokenTypes2[\"class\"] = \"class\";\n  SemanticTokenTypes2[\"enum\"] = \"enum\";\n  SemanticTokenTypes2[\"interface\"] = \"interface\";\n  SemanticTokenTypes2[\"struct\"] = \"struct\";\n  SemanticTokenTypes2[\"typeParameter\"] = \"typeParameter\";\n  SemanticTokenTypes2[\"parameter\"] = \"parameter\";\n  SemanticTokenTypes2[\"variable\"] = \"variable\";\n  SemanticTokenTypes2[\"property\"] = \"property\";\n  SemanticTokenTypes2[\"enumMember\"] = \"enumMember\";\n  SemanticTokenTypes2[\"event\"] = \"event\";\n  SemanticTokenTypes2[\"function\"] = \"function\";\n  SemanticTokenTypes2[\"method\"] = \"method\";\n  SemanticTokenTypes2[\"macro\"] = \"macro\";\n  SemanticTokenTypes2[\"keyword\"] = \"keyword\";\n  SemanticTokenTypes2[\"modifier\"] = \"modifier\";\n  SemanticTokenTypes2[\"comment\"] = \"comment\";\n  SemanticTokenTypes2[\"string\"] = \"string\";\n  SemanticTokenTypes2[\"number\"] = \"number\";\n  SemanticTokenTypes2[\"regexp\"] = \"regexp\";\n  SemanticTokenTypes2[\"operator\"] = \"operator\";\n  SemanticTokenTypes2[\"decorator\"] = \"decorator\";\n})(SemanticTokenTypes || (SemanticTokenTypes = {}));\nvar SemanticTokenModifiers;\n(function(SemanticTokenModifiers2) {\n  SemanticTokenModifiers2[\"declaration\"] = \"declaration\";\n  SemanticTokenModifiers2[\"definition\"] = \"definition\";\n  SemanticTokenModifiers2[\"readonly\"] = \"readonly\";\n  SemanticTokenModifiers2[\"static\"] = \"static\";\n  SemanticTokenModifiers2[\"deprecated\"] = \"deprecated\";\n  SemanticTokenModifiers2[\"abstract\"] = \"abstract\";\n  SemanticTokenModifiers2[\"async\"] = \"async\";\n  SemanticTokenModifiers2[\"modification\"] = \"modification\";\n  SemanticTokenModifiers2[\"documentation\"] = \"documentation\";\n  SemanticTokenModifiers2[\"defaultLibrary\"] = \"defaultLibrary\";\n})(SemanticTokenModifiers || (SemanticTokenModifiers = {}));\nvar SemanticTokens;\n(function(SemanticTokens2) {\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && (candidate.resultId === void 0 || typeof candidate.resultId === \"string\") && Array.isArray(candidate.data) && (candidate.data.length === 0 || typeof candidate.data[0] === \"number\");\n  }\n  SemanticTokens2.is = is;\n})(SemanticTokens || (SemanticTokens = {}));\nvar InlineValueText;\n(function(InlineValueText2) {\n  function create(range, text) {\n    return { range, text };\n  }\n  InlineValueText2.create = create;\n  function is(value) {\n    const candidate = value;\n    return candidate !== void 0 && candidate !== null && Range.is(candidate.range) && Is.string(candidate.text);\n  }\n  InlineValueText2.is = is;\n})(InlineValueText || (InlineValueText = {}));\nvar InlineValueVariableLookup;\n(function(InlineValueVariableLookup2) {\n  function create(range, variableName, caseSensitiveLookup) {\n    return { range, variableName, caseSensitiveLookup };\n  }\n  InlineValueVariableLookup2.create = create;\n  function is(value) {\n    const candidate = value;\n    return candidate !== void 0 && candidate !== null && Range.is(candidate.range) && Is.boolean(candidate.caseSensitiveLookup) && (Is.string(candidate.variableName) || candidate.variableName === void 0);\n  }\n  InlineValueVariableLookup2.is = is;\n})(InlineValueVariableLookup || (InlineValueVariableLookup = {}));\nvar InlineValueEvaluatableExpression;\n(function(InlineValueEvaluatableExpression2) {\n  function create(range, expression) {\n    return { range, expression };\n  }\n  InlineValueEvaluatableExpression2.create = create;\n  function is(value) {\n    const candidate = value;\n    return candidate !== void 0 && candidate !== null && Range.is(candidate.range) && (Is.string(candidate.expression) || candidate.expression === void 0);\n  }\n  InlineValueEvaluatableExpression2.is = is;\n})(InlineValueEvaluatableExpression || (InlineValueEvaluatableExpression = {}));\nvar InlineValueContext;\n(function(InlineValueContext2) {\n  function create(frameId, stoppedLocation) {\n    return { frameId, stoppedLocation };\n  }\n  InlineValueContext2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.defined(candidate) && Range.is(value.stoppedLocation);\n  }\n  InlineValueContext2.is = is;\n})(InlineValueContext || (InlineValueContext = {}));\nvar InlayHintKind;\n(function(InlayHintKind2) {\n  InlayHintKind2.Type = 1;\n  InlayHintKind2.Parameter = 2;\n  function is(value) {\n    return value === 1 || value === 2;\n  }\n  InlayHintKind2.is = is;\n})(InlayHintKind || (InlayHintKind = {}));\nvar InlayHintLabelPart;\n(function(InlayHintLabelPart2) {\n  function create(value) {\n    return { value };\n  }\n  InlayHintLabelPart2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && (candidate.tooltip === void 0 || Is.string(candidate.tooltip) || MarkupContent.is(candidate.tooltip)) && (candidate.location === void 0 || Location.is(candidate.location)) && (candidate.command === void 0 || Command.is(candidate.command));\n  }\n  InlayHintLabelPart2.is = is;\n})(InlayHintLabelPart || (InlayHintLabelPart = {}));\nvar InlayHint;\n(function(InlayHint2) {\n  function create(position, label, kind) {\n    const result = { position, label };\n    if (kind !== void 0) {\n      result.kind = kind;\n    }\n    return result;\n  }\n  InlayHint2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Position.is(candidate.position) && (Is.string(candidate.label) || Is.typedArray(candidate.label, InlayHintLabelPart.is)) && (candidate.kind === void 0 || InlayHintKind.is(candidate.kind)) && candidate.textEdits === void 0 || Is.typedArray(candidate.textEdits, TextEdit.is) && (candidate.tooltip === void 0 || Is.string(candidate.tooltip) || MarkupContent.is(candidate.tooltip)) && (candidate.paddingLeft === void 0 || Is.boolean(candidate.paddingLeft)) && (candidate.paddingRight === void 0 || Is.boolean(candidate.paddingRight));\n  }\n  InlayHint2.is = is;\n})(InlayHint || (InlayHint = {}));\nvar StringValue;\n(function(StringValue2) {\n  function createSnippet(value) {\n    return { kind: \"snippet\", value };\n  }\n  StringValue2.createSnippet = createSnippet;\n})(StringValue || (StringValue = {}));\nvar InlineCompletionItem;\n(function(InlineCompletionItem2) {\n  function create(insertText, filterText, range, command) {\n    return { insertText, filterText, range, command };\n  }\n  InlineCompletionItem2.create = create;\n})(InlineCompletionItem || (InlineCompletionItem = {}));\nvar InlineCompletionList;\n(function(InlineCompletionList2) {\n  function create(items) {\n    return { items };\n  }\n  InlineCompletionList2.create = create;\n})(InlineCompletionList || (InlineCompletionList = {}));\nvar InlineCompletionTriggerKind;\n(function(InlineCompletionTriggerKind2) {\n  InlineCompletionTriggerKind2.Invoked = 0;\n  InlineCompletionTriggerKind2.Automatic = 1;\n})(InlineCompletionTriggerKind || (InlineCompletionTriggerKind = {}));\nvar SelectedCompletionInfo;\n(function(SelectedCompletionInfo2) {\n  function create(range, text) {\n    return { range, text };\n  }\n  SelectedCompletionInfo2.create = create;\n})(SelectedCompletionInfo || (SelectedCompletionInfo = {}));\nvar InlineCompletionContext;\n(function(InlineCompletionContext2) {\n  function create(triggerKind, selectedCompletionInfo) {\n    return { triggerKind, selectedCompletionInfo };\n  }\n  InlineCompletionContext2.create = create;\n})(InlineCompletionContext || (InlineCompletionContext = {}));\nvar WorkspaceFolder;\n(function(WorkspaceFolder2) {\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && URI.is(candidate.uri) && Is.string(candidate.name);\n  }\n  WorkspaceFolder2.is = is;\n})(WorkspaceFolder || (WorkspaceFolder = {}));\nvar TextDocument;\n(function(TextDocument3) {\n  function create(uri, languageId, version, content) {\n    return new FullTextDocument(uri, languageId, version, content);\n  }\n  TextDocument3.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.uri) && (Is.undefined(candidate.languageId) || Is.string(candidate.languageId)) && Is.uinteger(candidate.lineCount) && Is.func(candidate.getText) && Is.func(candidate.positionAt) && Is.func(candidate.offsetAt) ? true : false;\n  }\n  TextDocument3.is = is;\n  function applyEdits(document, edits) {\n    let text = document.getText();\n    let sortedEdits = mergeSort2(edits, (a2, b) => {\n      let diff = a2.range.start.line - b.range.start.line;\n      if (diff === 0) {\n        return a2.range.start.character - b.range.start.character;\n      }\n      return diff;\n    });\n    let lastModifiedOffset = text.length;\n    for (let i = sortedEdits.length - 1; i >= 0; i--) {\n      let e = sortedEdits[i];\n      let startOffset = document.offsetAt(e.range.start);\n      let endOffset = document.offsetAt(e.range.end);\n      if (endOffset <= lastModifiedOffset) {\n        text = text.substring(0, startOffset) + e.newText + text.substring(endOffset, text.length);\n      } else {\n        throw new Error(\"Overlapping edit\");\n      }\n      lastModifiedOffset = startOffset;\n    }\n    return text;\n  }\n  TextDocument3.applyEdits = applyEdits;\n  function mergeSort2(data, compare) {\n    if (data.length <= 1) {\n      return data;\n    }\n    const p = data.length / 2 | 0;\n    const left = data.slice(0, p);\n    const right = data.slice(p);\n    mergeSort2(left, compare);\n    mergeSort2(right, compare);\n    let leftIdx = 0;\n    let rightIdx = 0;\n    let i = 0;\n    while (leftIdx < left.length && rightIdx < right.length) {\n      let ret = compare(left[leftIdx], right[rightIdx]);\n      if (ret <= 0) {\n        data[i++] = left[leftIdx++];\n      } else {\n        data[i++] = right[rightIdx++];\n      }\n    }\n    while (leftIdx < left.length) {\n      data[i++] = left[leftIdx++];\n    }\n    while (rightIdx < right.length) {\n      data[i++] = right[rightIdx++];\n    }\n    return data;\n  }\n})(TextDocument || (TextDocument = {}));\nvar FullTextDocument = class {\n  constructor(uri, languageId, version, content) {\n    this._uri = uri;\n    this._languageId = languageId;\n    this._version = version;\n    this._content = content;\n    this._lineOffsets = void 0;\n  }\n  get uri() {\n    return this._uri;\n  }\n  get languageId() {\n    return this._languageId;\n  }\n  get version() {\n    return this._version;\n  }\n  getText(range) {\n    if (range) {\n      let start = this.offsetAt(range.start);\n      let end = this.offsetAt(range.end);\n      return this._content.substring(start, end);\n    }\n    return this._content;\n  }\n  update(event, version) {\n    this._content = event.text;\n    this._version = version;\n    this._lineOffsets = void 0;\n  }\n  getLineOffsets() {\n    if (this._lineOffsets === void 0) {\n      let lineOffsets = [];\n      let text = this._content;\n      let isLineStart = true;\n      for (let i = 0; i < text.length; i++) {\n        if (isLineStart) {\n          lineOffsets.push(i);\n          isLineStart = false;\n        }\n        let ch = text.charAt(i);\n        isLineStart = ch === \"\\r\" || ch === \"\\n\";\n        if (ch === \"\\r\" && i + 1 < text.length && text.charAt(i + 1) === \"\\n\") {\n          i++;\n        }\n      }\n      if (isLineStart && text.length > 0) {\n        lineOffsets.push(text.length);\n      }\n      this._lineOffsets = lineOffsets;\n    }\n    return this._lineOffsets;\n  }\n  positionAt(offset) {\n    offset = Math.max(Math.min(offset, this._content.length), 0);\n    let lineOffsets = this.getLineOffsets();\n    let low = 0, high = lineOffsets.length;\n    if (high === 0) {\n      return Position.create(0, offset);\n    }\n    while (low < high) {\n      let mid = Math.floor((low + high) / 2);\n      if (lineOffsets[mid] > offset) {\n        high = mid;\n      } else {\n        low = mid + 1;\n      }\n    }\n    let line = low - 1;\n    return Position.create(line, offset - lineOffsets[line]);\n  }\n  offsetAt(position) {\n    let lineOffsets = this.getLineOffsets();\n    if (position.line >= lineOffsets.length) {\n      return this._content.length;\n    } else if (position.line < 0) {\n      return 0;\n    }\n    let lineOffset = lineOffsets[position.line];\n    let nextLineOffset = position.line + 1 < lineOffsets.length ? lineOffsets[position.line + 1] : this._content.length;\n    return Math.max(Math.min(lineOffset + position.character, nextLineOffset), lineOffset);\n  }\n  get lineCount() {\n    return this.getLineOffsets().length;\n  }\n};\nvar Is;\n(function(Is2) {\n  const toString = Object.prototype.toString;\n  function defined(value) {\n    return typeof value !== \"undefined\";\n  }\n  Is2.defined = defined;\n  function undefined2(value) {\n    return typeof value === \"undefined\";\n  }\n  Is2.undefined = undefined2;\n  function boolean(value) {\n    return value === true || value === false;\n  }\n  Is2.boolean = boolean;\n  function string(value) {\n    return toString.call(value) === \"[object String]\";\n  }\n  Is2.string = string;\n  function number(value) {\n    return toString.call(value) === \"[object Number]\";\n  }\n  Is2.number = number;\n  function numberRange(value, min, max) {\n    return toString.call(value) === \"[object Number]\" && min <= value && value <= max;\n  }\n  Is2.numberRange = numberRange;\n  function integer2(value) {\n    return toString.call(value) === \"[object Number]\" && -2147483648 <= value && value <= 2147483647;\n  }\n  Is2.integer = integer2;\n  function uinteger2(value) {\n    return toString.call(value) === \"[object Number]\" && 0 <= value && value <= 2147483647;\n  }\n  Is2.uinteger = uinteger2;\n  function func(value) {\n    return toString.call(value) === \"[object Function]\";\n  }\n  Is2.func = func;\n  function objectLiteral(value) {\n    return value !== null && typeof value === \"object\";\n  }\n  Is2.objectLiteral = objectLiteral;\n  function typedArray(value, check) {\n    return Array.isArray(value) && value.every(check);\n  }\n  Is2.typedArray = typedArray;\n})(Is || (Is = {}));\n\n// node_modules/vscode-languageserver-textdocument/lib/esm/main.js\nvar FullTextDocument2 = class _FullTextDocument {\n  constructor(uri, languageId, version, content) {\n    this._uri = uri;\n    this._languageId = languageId;\n    this._version = version;\n    this._content = content;\n    this._lineOffsets = void 0;\n  }\n  get uri() {\n    return this._uri;\n  }\n  get languageId() {\n    return this._languageId;\n  }\n  get version() {\n    return this._version;\n  }\n  getText(range) {\n    if (range) {\n      const start = this.offsetAt(range.start);\n      const end = this.offsetAt(range.end);\n      return this._content.substring(start, end);\n    }\n    return this._content;\n  }\n  update(changes, version) {\n    for (let change of changes) {\n      if (_FullTextDocument.isIncremental(change)) {\n        const range = getWellformedRange(change.range);\n        const startOffset = this.offsetAt(range.start);\n        const endOffset = this.offsetAt(range.end);\n        this._content = this._content.substring(0, startOffset) + change.text + this._content.substring(endOffset, this._content.length);\n        const startLine = Math.max(range.start.line, 0);\n        const endLine = Math.max(range.end.line, 0);\n        let lineOffsets = this._lineOffsets;\n        const addedLineOffsets = computeLineOffsets(change.text, false, startOffset);\n        if (endLine - startLine === addedLineOffsets.length) {\n          for (let i = 0, len = addedLineOffsets.length; i < len; i++) {\n            lineOffsets[i + startLine + 1] = addedLineOffsets[i];\n          }\n        } else {\n          if (addedLineOffsets.length < 1e4) {\n            lineOffsets.splice(startLine + 1, endLine - startLine, ...addedLineOffsets);\n          } else {\n            this._lineOffsets = lineOffsets = lineOffsets.slice(0, startLine + 1).concat(addedLineOffsets, lineOffsets.slice(endLine + 1));\n          }\n        }\n        const diff = change.text.length - (endOffset - startOffset);\n        if (diff !== 0) {\n          for (let i = startLine + 1 + addedLineOffsets.length, len = lineOffsets.length; i < len; i++) {\n            lineOffsets[i] = lineOffsets[i] + diff;\n          }\n        }\n      } else if (_FullTextDocument.isFull(change)) {\n        this._content = change.text;\n        this._lineOffsets = void 0;\n      } else {\n        throw new Error(\"Unknown change event received\");\n      }\n    }\n    this._version = version;\n  }\n  getLineOffsets() {\n    if (this._lineOffsets === void 0) {\n      this._lineOffsets = computeLineOffsets(this._content, true);\n    }\n    return this._lineOffsets;\n  }\n  positionAt(offset) {\n    offset = Math.max(Math.min(offset, this._content.length), 0);\n    let lineOffsets = this.getLineOffsets();\n    let low = 0, high = lineOffsets.length;\n    if (high === 0) {\n      return { line: 0, character: offset };\n    }\n    while (low < high) {\n      let mid = Math.floor((low + high) / 2);\n      if (lineOffsets[mid] > offset) {\n        high = mid;\n      } else {\n        low = mid + 1;\n      }\n    }\n    let line = low - 1;\n    return { line, character: offset - lineOffsets[line] };\n  }\n  offsetAt(position) {\n    let lineOffsets = this.getLineOffsets();\n    if (position.line >= lineOffsets.length) {\n      return this._content.length;\n    } else if (position.line < 0) {\n      return 0;\n    }\n    let lineOffset = lineOffsets[position.line];\n    let nextLineOffset = position.line + 1 < lineOffsets.length ? lineOffsets[position.line + 1] : this._content.length;\n    return Math.max(Math.min(lineOffset + position.character, nextLineOffset), lineOffset);\n  }\n  get lineCount() {\n    return this.getLineOffsets().length;\n  }\n  static isIncremental(event) {\n    let candidate = event;\n    return candidate !== void 0 && candidate !== null && typeof candidate.text === \"string\" && candidate.range !== void 0 && (candidate.rangeLength === void 0 || typeof candidate.rangeLength === \"number\");\n  }\n  static isFull(event) {\n    let candidate = event;\n    return candidate !== void 0 && candidate !== null && typeof candidate.text === \"string\" && candidate.range === void 0 && candidate.rangeLength === void 0;\n  }\n};\nvar TextDocument2;\n(function(TextDocument3) {\n  function create(uri, languageId, version, content) {\n    return new FullTextDocument2(uri, languageId, version, content);\n  }\n  TextDocument3.create = create;\n  function update(document, changes, version) {\n    if (document instanceof FullTextDocument2) {\n      document.update(changes, version);\n      return document;\n    } else {\n      throw new Error(\"TextDocument.update: document must be created by TextDocument.create\");\n    }\n  }\n  TextDocument3.update = update;\n  function applyEdits(document, edits) {\n    let text = document.getText();\n    let sortedEdits = mergeSort(edits.map(getWellformedEdit), (a2, b) => {\n      let diff = a2.range.start.line - b.range.start.line;\n      if (diff === 0) {\n        return a2.range.start.character - b.range.start.character;\n      }\n      return diff;\n    });\n    let lastModifiedOffset = 0;\n    const spans = [];\n    for (const e of sortedEdits) {\n      let startOffset = document.offsetAt(e.range.start);\n      if (startOffset < lastModifiedOffset) {\n        throw new Error(\"Overlapping edit\");\n      } else if (startOffset > lastModifiedOffset) {\n        spans.push(text.substring(lastModifiedOffset, startOffset));\n      }\n      if (e.newText.length) {\n        spans.push(e.newText);\n      }\n      lastModifiedOffset = document.offsetAt(e.range.end);\n    }\n    spans.push(text.substr(lastModifiedOffset));\n    return spans.join(\"\");\n  }\n  TextDocument3.applyEdits = applyEdits;\n})(TextDocument2 || (TextDocument2 = {}));\nfunction mergeSort(data, compare) {\n  if (data.length <= 1) {\n    return data;\n  }\n  const p = data.length / 2 | 0;\n  const left = data.slice(0, p);\n  const right = data.slice(p);\n  mergeSort(left, compare);\n  mergeSort(right, compare);\n  let leftIdx = 0;\n  let rightIdx = 0;\n  let i = 0;\n  while (leftIdx < left.length && rightIdx < right.length) {\n    let ret = compare(left[leftIdx], right[rightIdx]);\n    if (ret <= 0) {\n      data[i++] = left[leftIdx++];\n    } else {\n      data[i++] = right[rightIdx++];\n    }\n  }\n  while (leftIdx < left.length) {\n    data[i++] = left[leftIdx++];\n  }\n  while (rightIdx < right.length) {\n    data[i++] = right[rightIdx++];\n  }\n  return data;\n}\nfunction computeLineOffsets(text, isAtLineStart, textOffset = 0) {\n  const result = isAtLineStart ? [textOffset] : [];\n  for (let i = 0; i < text.length; i++) {\n    let ch = text.charCodeAt(i);\n    if (ch === 13 || ch === 10) {\n      if (ch === 13 && i + 1 < text.length && text.charCodeAt(i + 1) === 10) {\n        i++;\n      }\n      result.push(textOffset + i + 1);\n    }\n  }\n  return result;\n}\nfunction getWellformedRange(range) {\n  const start = range.start;\n  const end = range.end;\n  if (start.line > end.line || start.line === end.line && start.character > end.character) {\n    return { start: end, end: start };\n  }\n  return range;\n}\nfunction getWellformedEdit(textEdit) {\n  const range = getWellformedRange(textEdit.range);\n  if (range !== textEdit.range) {\n    return { newText: textEdit.newText, range };\n  }\n  return textEdit;\n}\n\n// node_modules/vscode-css-languageservice/lib/esm/cssLanguageTypes.js\nvar ClientCapabilities;\n(function(ClientCapabilities2) {\n  ClientCapabilities2.LATEST = {\n    textDocument: {\n      completion: {\n        completionItem: {\n          documentationFormat: [MarkupKind.Markdown, MarkupKind.PlainText]\n        }\n      },\n      hover: {\n        contentFormat: [MarkupKind.Markdown, MarkupKind.PlainText]\n      }\n    }\n  };\n})(ClientCapabilities || (ClientCapabilities = {}));\nvar FileType;\n(function(FileType2) {\n  FileType2[FileType2[\"Unknown\"] = 0] = \"Unknown\";\n  FileType2[FileType2[\"File\"] = 1] = \"File\";\n  FileType2[FileType2[\"Directory\"] = 2] = \"Directory\";\n  FileType2[FileType2[\"SymbolicLink\"] = 64] = \"SymbolicLink\";\n})(FileType || (FileType = {}));\n\n// node_modules/vscode-css-languageservice/lib/esm/languageFacts/entry.js\nvar browserNames = {\n  E: \"Edge\",\n  FF: \"Firefox\",\n  S: \"Safari\",\n  C: \"Chrome\",\n  IE: \"IE\",\n  O: \"Opera\"\n};\nfunction getEntryStatus(status) {\n  switch (status) {\n    case \"experimental\":\n      return \"\\u26A0\\uFE0F Property is experimental. Be cautious when using it.\\uFE0F\\n\\n\";\n    case \"nonstandard\":\n      return \"\\u{1F6A8}\\uFE0F Property is nonstandard. Avoid using it.\\n\\n\";\n    case \"obsolete\":\n      return \"\\u{1F6A8}\\uFE0F\\uFE0F\\uFE0F Property is obsolete. Avoid using it.\\n\\n\";\n    default:\n      return \"\";\n  }\n}\nfunction getEntryDescription(entry, doesSupportMarkdown, settings) {\n  let result;\n  if (doesSupportMarkdown) {\n    result = {\n      kind: \"markdown\",\n      value: getEntryMarkdownDescription(entry, settings)\n    };\n  } else {\n    result = {\n      kind: \"plaintext\",\n      value: getEntryStringDescription(entry, settings)\n    };\n  }\n  if (result.value === \"\") {\n    return void 0;\n  }\n  return result;\n}\nfunction textToMarkedString(text) {\n  text = text.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g, \"\\\\$&\");\n  return text.replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\");\n}\nfunction getEntryStringDescription(entry, settings) {\n  if (!entry.description || entry.description === \"\") {\n    return \"\";\n  }\n  if (typeof entry.description !== \"string\") {\n    return entry.description.value;\n  }\n  let result = \"\";\n  if (settings?.documentation !== false) {\n    if (entry.status) {\n      result += getEntryStatus(entry.status);\n    }\n    result += entry.description;\n    const browserLabel = getBrowserLabel(entry.browsers);\n    if (browserLabel) {\n      result += \"\\n(\" + browserLabel + \")\";\n    }\n    if (\"syntax\" in entry) {\n      result += `\n\nSyntax: ${entry.syntax}`;\n    }\n  }\n  if (entry.references && entry.references.length > 0 && settings?.references !== false) {\n    if (result.length > 0) {\n      result += \"\\n\\n\";\n    }\n    result += entry.references.map((r) => {\n      return `${r.name}: ${r.url}`;\n    }).join(\" | \");\n  }\n  return result;\n}\nfunction getEntryMarkdownDescription(entry, settings) {\n  if (!entry.description || entry.description === \"\") {\n    return \"\";\n  }\n  let result = \"\";\n  if (settings?.documentation !== false) {\n    if (entry.status) {\n      result += getEntryStatus(entry.status);\n    }\n    if (typeof entry.description === \"string\") {\n      result += textToMarkedString(entry.description);\n    } else {\n      result += entry.description.kind === MarkupKind.Markdown ? entry.description.value : textToMarkedString(entry.description.value);\n    }\n    const browserLabel = getBrowserLabel(entry.browsers);\n    if (browserLabel) {\n      result += \"\\n\\n(\" + textToMarkedString(browserLabel) + \")\";\n    }\n    if (\"syntax\" in entry && entry.syntax) {\n      result += `\n\nSyntax: ${textToMarkedString(entry.syntax)}`;\n    }\n  }\n  if (entry.references && entry.references.length > 0 && settings?.references !== false) {\n    if (result.length > 0) {\n      result += \"\\n\\n\";\n    }\n    result += entry.references.map((r) => {\n      return `[${r.name}](${r.url})`;\n    }).join(\" | \");\n  }\n  return result;\n}\nfunction getBrowserLabel(browsers = []) {\n  if (browsers.length === 0) {\n    return null;\n  }\n  return browsers.map((b) => {\n    let result = \"\";\n    const matches2 = b.match(/([A-Z]+)(\\d+)?/);\n    const name = matches2[1];\n    const version = matches2[2];\n    if (name in browserNames) {\n      result += browserNames[name];\n    }\n    if (version) {\n      result += \" \" + version;\n    }\n    return result;\n  }).join(\", \");\n}\n\n// node_modules/vscode-css-languageservice/lib/esm/languageFacts/colors.js\nvar hexColorRegExp = /(^#([0-9A-F]{3}){1,2}$)|(^#([0-9A-F]{4}){1,2}$)/i;\nvar colorFunctions = [\n  {\n    label: \"rgb\",\n    func: \"rgb($red, $green, $blue)\",\n    insertText: \"rgb(${1:red}, ${2:green}, ${3:blue})\",\n    desc: t(\"Creates a Color from red, green, and blue values.\")\n  },\n  {\n    label: \"rgba\",\n    func: \"rgba($red, $green, $blue, $alpha)\",\n    insertText: \"rgba(${1:red}, ${2:green}, ${3:blue}, ${4:alpha})\",\n    desc: t(\"Creates a Color from red, green, blue, and alpha values.\")\n  },\n  {\n    label: \"rgb relative\",\n    func: \"rgb(from $color $red $green $blue)\",\n    insertText: \"rgb(from ${1:color} ${2:r} ${3:g} ${4:b})\",\n    desc: t(\"Creates a Color from the red, green, and blue values of another Color.\")\n  },\n  {\n    label: \"hsl\",\n    func: \"hsl($hue, $saturation, $lightness)\",\n    insertText: \"hsl(${1:hue}, ${2:saturation}, ${3:lightness})\",\n    desc: t(\"Creates a Color from hue, saturation, and lightness values.\")\n  },\n  {\n    label: \"hsla\",\n    func: \"hsla($hue, $saturation, $lightness, $alpha)\",\n    insertText: \"hsla(${1:hue}, ${2:saturation}, ${3:lightness}, ${4:alpha})\",\n    desc: t(\"Creates a Color from hue, saturation, lightness, and alpha values.\")\n  },\n  {\n    label: \"hsl relative\",\n    func: \"hsl(from $color $hue $saturation $lightness)\",\n    insertText: \"hsl(from ${1:color} ${2:h} ${3:s} ${4:l})\",\n    desc: t(\"Creates a Color from the hue, saturation, and lightness values of another Color.\")\n  },\n  {\n    label: \"hwb\",\n    func: \"hwb($hue $white $black)\",\n    insertText: \"hwb(${1:hue} ${2:white} ${3:black})\",\n    desc: t(\"Creates a Color from hue, white, and black values.\")\n  },\n  {\n    label: \"hwb relative\",\n    func: \"hwb(from $color $hue $white $black)\",\n    insertText: \"hwb(from ${1:color} ${2:h} ${3:w} ${4:b})\",\n    desc: t(\"Creates a Color from the hue, white, and black values of another Color.\")\n  },\n  {\n    label: \"lab\",\n    func: \"lab($lightness $a $b)\",\n    insertText: \"lab(${1:lightness} ${2:a} ${3:b})\",\n    desc: t(\"Creates a Color from lightness, a, and b values.\")\n  },\n  {\n    label: \"lab relative\",\n    func: \"lab(from $color $lightness $a $b)\",\n    insertText: \"lab(from ${1:color} ${2:l} ${3:a} ${4:b})\",\n    desc: t(\"Creates a Color from the lightness, a, and b values of another Color.\")\n  },\n  {\n    label: \"oklab\",\n    func: \"oklab($lightness $a $b)\",\n    insertText: \"oklab(${1:lightness} ${2:a} ${3:b})\",\n    desc: t(\"Creates a Color from lightness, a, and b values.\")\n  },\n  {\n    label: \"oklab relative\",\n    func: \"oklab(from $color $lightness $a $b)\",\n    insertText: \"oklab(from ${1:color} ${2:l} ${3:a} ${4:b})\",\n    desc: t(\"Creates a Color from the lightness, a, and b values of another Color.\")\n  },\n  {\n    label: \"lch\",\n    func: \"lch($lightness $chroma $hue)\",\n    insertText: \"lch(${1:lightness} ${2:chroma} ${3:hue})\",\n    desc: t(\"Creates a Color from lightness, chroma, and hue values.\")\n  },\n  {\n    label: \"lch relative\",\n    func: \"lch(from $color $lightness $chroma $hue)\",\n    insertText: \"lch(from ${1:color} ${2:l} ${3:c} ${4:h})\",\n    desc: t(\"Creates a Color from the lightness, chroma, and hue values of another Color.\")\n  },\n  {\n    label: \"oklch\",\n    func: \"oklch($lightness $chroma $hue)\",\n    insertText: \"oklch(${1:lightness} ${2:chroma} ${3:hue})\",\n    desc: t(\"Creates a Color from lightness, chroma, and hue values.\")\n  },\n  {\n    label: \"oklch relative\",\n    func: \"oklch(from $color $lightness $chroma $hue)\",\n    insertText: \"oklch(from ${1:color} ${2:l} ${3:c} ${4:h})\",\n    desc: t(\"Creates a Color from the lightness, chroma, and hue values of another Color.\")\n  },\n  {\n    label: \"color\",\n    func: \"color($color-space $red $green $blue)\",\n    insertText: \"color(${1|srgb,srgb-linear,display-p3,a98-rgb,prophoto-rgb,rec2020,xyx,xyz-d50,xyz-d65|} ${2:red} ${3:green} ${4:blue})\",\n    desc: t(\"Creates a Color in a specific color space from red, green, and blue values.\")\n  },\n  {\n    label: \"color relative\",\n    func: \"color(from $color $color-space $red $green $blue)\",\n    insertText: \"color(from ${1:color} ${2|srgb,srgb-linear,display-p3,a98-rgb,prophoto-rgb,rec2020,xyx,xyz-d50,xyz-d65|} ${3:r} ${4:g} ${5:b})\",\n    desc: t(\"Creates a Color in a specific color space from the red, green, and blue values of another Color.\")\n  },\n  {\n    label: \"color-mix\",\n    func: \"color-mix(in $color-space, $color $percentage, $color $percentage)\",\n    insertText: \"color-mix(in ${1|srgb,srgb-linear,lab,oklab,xyz,xyz-d50,xyz-d65|}, ${3:color} ${4:percentage}, ${5:color} ${6:percentage})\",\n    desc: t(\"Mix two colors together in a rectangular color space.\")\n  },\n  {\n    label: \"color-mix hue\",\n    func: \"color-mix(in $color-space $interpolation-method hue, $color $percentage, $color $percentage)\",\n    insertText: \"color-mix(in ${1|hsl,hwb,lch,oklch|} ${2|shorter hue,longer hue,increasing hue,decreasing hue|}, ${3:color} ${4:percentage}, ${5:color} ${6:percentage})\",\n    desc: t(\"Mix two colors together in a polar color space.\")\n  }\n];\nvar colorFunctionNameRegExp = /^(rgb|rgba|hsl|hsla|hwb)$/i;\nvar colors = {\n  aliceblue: \"#f0f8ff\",\n  antiquewhite: \"#faebd7\",\n  aqua: \"#00ffff\",\n  aquamarine: \"#7fffd4\",\n  azure: \"#f0ffff\",\n  beige: \"#f5f5dc\",\n  bisque: \"#ffe4c4\",\n  black: \"#000000\",\n  blanchedalmond: \"#ffebcd\",\n  blue: \"#0000ff\",\n  blueviolet: \"#8a2be2\",\n  brown: \"#a52a2a\",\n  burlywood: \"#deb887\",\n  cadetblue: \"#5f9ea0\",\n  chartreuse: \"#7fff00\",\n  chocolate: \"#d2691e\",\n  coral: \"#ff7f50\",\n  cornflowerblue: \"#6495ed\",\n  cornsilk: \"#fff8dc\",\n  crimson: \"#dc143c\",\n  cyan: \"#00ffff\",\n  darkblue: \"#00008b\",\n  darkcyan: \"#008b8b\",\n  darkgoldenrod: \"#b8860b\",\n  darkgray: \"#a9a9a9\",\n  darkgrey: \"#a9a9a9\",\n  darkgreen: \"#006400\",\n  darkkhaki: \"#bdb76b\",\n  darkmagenta: \"#8b008b\",\n  darkolivegreen: \"#556b2f\",\n  darkorange: \"#ff8c00\",\n  darkorchid: \"#9932cc\",\n  darkred: \"#8b0000\",\n  darksalmon: \"#e9967a\",\n  darkseagreen: \"#8fbc8f\",\n  darkslateblue: \"#483d8b\",\n  darkslategray: \"#2f4f4f\",\n  darkslategrey: \"#2f4f4f\",\n  darkturquoise: \"#00ced1\",\n  darkviolet: \"#9400d3\",\n  deeppink: \"#ff1493\",\n  deepskyblue: \"#00bfff\",\n  dimgray: \"#696969\",\n  dimgrey: \"#696969\",\n  dodgerblue: \"#1e90ff\",\n  firebrick: \"#b22222\",\n  floralwhite: \"#fffaf0\",\n  forestgreen: \"#228b22\",\n  fuchsia: \"#ff00ff\",\n  gainsboro: \"#dcdcdc\",\n  ghostwhite: \"#f8f8ff\",\n  gold: \"#ffd700\",\n  goldenrod: \"#daa520\",\n  gray: \"#808080\",\n  grey: \"#808080\",\n  green: \"#008000\",\n  greenyellow: \"#adff2f\",\n  honeydew: \"#f0fff0\",\n  hotpink: \"#ff69b4\",\n  indianred: \"#cd5c5c\",\n  indigo: \"#4b0082\",\n  ivory: \"#fffff0\",\n  khaki: \"#f0e68c\",\n  lavender: \"#e6e6fa\",\n  lavenderblush: \"#fff0f5\",\n  lawngreen: \"#7cfc00\",\n  lemonchiffon: \"#fffacd\",\n  lightblue: \"#add8e6\",\n  lightcoral: \"#f08080\",\n  lightcyan: \"#e0ffff\",\n  lightgoldenrodyellow: \"#fafad2\",\n  lightgray: \"#d3d3d3\",\n  lightgrey: \"#d3d3d3\",\n  lightgreen: \"#90ee90\",\n  lightpink: \"#ffb6c1\",\n  lightsalmon: \"#ffa07a\",\n  lightseagreen: \"#20b2aa\",\n  lightskyblue: \"#87cefa\",\n  lightslategray: \"#778899\",\n  lightslategrey: \"#778899\",\n  lightsteelblue: \"#b0c4de\",\n  lightyellow: \"#ffffe0\",\n  lime: \"#00ff00\",\n  limegreen: \"#32cd32\",\n  linen: \"#faf0e6\",\n  magenta: \"#ff00ff\",\n  maroon: \"#800000\",\n  mediumaquamarine: \"#66cdaa\",\n  mediumblue: \"#0000cd\",\n  mediumorchid: \"#ba55d3\",\n  mediumpurple: \"#9370d8\",\n  mediumseagreen: \"#3cb371\",\n  mediumslateblue: \"#7b68ee\",\n  mediumspringgreen: \"#00fa9a\",\n  mediumturquoise: \"#48d1cc\",\n  mediumvioletred: \"#c71585\",\n  midnightblue: \"#191970\",\n  mintcream: \"#f5fffa\",\n  mistyrose: \"#ffe4e1\",\n  moccasin: \"#ffe4b5\",\n  navajowhite: \"#ffdead\",\n  navy: \"#000080\",\n  oldlace: \"#fdf5e6\",\n  olive: \"#808000\",\n  olivedrab: \"#6b8e23\",\n  orange: \"#ffa500\",\n  orangered: \"#ff4500\",\n  orchid: \"#da70d6\",\n  palegoldenrod: \"#eee8aa\",\n  palegreen: \"#98fb98\",\n  paleturquoise: \"#afeeee\",\n  palevioletred: \"#d87093\",\n  papayawhip: \"#ffefd5\",\n  peachpuff: \"#ffdab9\",\n  peru: \"#cd853f\",\n  pink: \"#ffc0cb\",\n  plum: \"#dda0dd\",\n  powderblue: \"#b0e0e6\",\n  purple: \"#800080\",\n  red: \"#ff0000\",\n  rebeccapurple: \"#663399\",\n  rosybrown: \"#bc8f8f\",\n  royalblue: \"#4169e1\",\n  saddlebrown: \"#8b4513\",\n  salmon: \"#fa8072\",\n  sandybrown: \"#f4a460\",\n  seagreen: \"#2e8b57\",\n  seashell: \"#fff5ee\",\n  sienna: \"#a0522d\",\n  silver: \"#c0c0c0\",\n  skyblue: \"#87ceeb\",\n  slateblue: \"#6a5acd\",\n  slategray: \"#708090\",\n  slategrey: \"#708090\",\n  snow: \"#fffafa\",\n  springgreen: \"#00ff7f\",\n  steelblue: \"#4682b4\",\n  tan: \"#d2b48c\",\n  teal: \"#008080\",\n  thistle: \"#d8bfd8\",\n  tomato: \"#ff6347\",\n  turquoise: \"#40e0d0\",\n  violet: \"#ee82ee\",\n  wheat: \"#f5deb3\",\n  white: \"#ffffff\",\n  whitesmoke: \"#f5f5f5\",\n  yellow: \"#ffff00\",\n  yellowgreen: \"#9acd32\"\n};\nvar colorsRegExp = new RegExp(`^(${Object.keys(colors).join(\"|\")})$`, \"i\");\nvar colorKeywords = {\n  \"currentColor\": \"The value of the 'color' property. The computed value of the 'currentColor' keyword is the computed value of the 'color' property. If the 'currentColor' keyword is set on the 'color' property itself, it is treated as 'color:inherit' at parse time.\",\n  \"transparent\": \"Fully transparent. This keyword can be considered a shorthand for rgba(0,0,0,0) which is its computed value.\"\n};\nvar colorKeywordsRegExp = new RegExp(`^(${Object.keys(colorKeywords).join(\"|\")})$`, \"i\");\nfunction getNumericValue(node, factor) {\n  const val = node.getText();\n  const m = val.match(/^([-+]?[0-9]*\\.?[0-9]+)(%?)$/);\n  if (m) {\n    if (m[2]) {\n      factor = 100;\n    }\n    const result = parseFloat(m[1]) / factor;\n    if (result >= 0 && result <= 1) {\n      return result;\n    }\n  }\n  throw new Error();\n}\nfunction getAngle(node) {\n  const val = node.getText();\n  const m = val.match(/^([-+]?[0-9]*\\.?[0-9]+)(deg|rad|grad|turn)?$/);\n  if (m) {\n    switch (m[2]) {\n      case \"deg\":\n        return parseFloat(val) % 360;\n      case \"rad\":\n        return parseFloat(val) * 180 / Math.PI % 360;\n      case \"grad\":\n        return parseFloat(val) * 0.9 % 360;\n      case \"turn\":\n        return parseFloat(val) * 360 % 360;\n      default:\n        if (\"undefined\" === typeof m[2]) {\n          return parseFloat(val) % 360;\n        }\n    }\n  }\n  throw new Error();\n}\nfunction isColorConstructor(node) {\n  const name = node.getName();\n  if (!name) {\n    return false;\n  }\n  return colorFunctionNameRegExp.test(name);\n}\nfunction isColorString(s) {\n  return hexColorRegExp.test(s) || colorsRegExp.test(s) || colorKeywordsRegExp.test(s);\n}\nvar Digit0 = 48;\nvar Digit9 = 57;\nvar A = 65;\nvar a = 97;\nvar f = 102;\nfunction hexDigit(charCode) {\n  if (charCode < Digit0) {\n    return 0;\n  }\n  if (charCode <= Digit9) {\n    return charCode - Digit0;\n  }\n  if (charCode < a) {\n    charCode += a - A;\n  }\n  if (charCode >= a && charCode <= f) {\n    return charCode - a + 10;\n  }\n  return 0;\n}\nfunction colorFromHex(text) {\n  if (text[0] !== \"#\") {\n    return null;\n  }\n  switch (text.length) {\n    case 4:\n      return {\n        red: hexDigit(text.charCodeAt(1)) * 17 / 255,\n        green: hexDigit(text.charCodeAt(2)) * 17 / 255,\n        blue: hexDigit(text.charCodeAt(3)) * 17 / 255,\n        alpha: 1\n      };\n    case 5:\n      return {\n        red: hexDigit(text.charCodeAt(1)) * 17 / 255,\n        green: hexDigit(text.charCodeAt(2)) * 17 / 255,\n        blue: hexDigit(text.charCodeAt(3)) * 17 / 255,\n        alpha: hexDigit(text.charCodeAt(4)) * 17 / 255\n      };\n    case 7:\n      return {\n        red: (hexDigit(text.charCodeAt(1)) * 16 + hexDigit(text.charCodeAt(2))) / 255,\n        green: (hexDigit(text.charCodeAt(3)) * 16 + hexDigit(text.charCodeAt(4))) / 255,\n        blue: (hexDigit(text.charCodeAt(5)) * 16 + hexDigit(text.charCodeAt(6))) / 255,\n        alpha: 1\n      };\n    case 9:\n      return {\n        red: (hexDigit(text.charCodeAt(1)) * 16 + hexDigit(text.charCodeAt(2))) / 255,\n        green: (hexDigit(text.charCodeAt(3)) * 16 + hexDigit(text.charCodeAt(4))) / 255,\n        blue: (hexDigit(text.charCodeAt(5)) * 16 + hexDigit(text.charCodeAt(6))) / 255,\n        alpha: (hexDigit(text.charCodeAt(7)) * 16 + hexDigit(text.charCodeAt(8))) / 255\n      };\n  }\n  return null;\n}\nfunction colorFromHSL(hue, sat, light, alpha = 1) {\n  hue = hue / 60;\n  if (sat === 0) {\n    return { red: light, green: light, blue: light, alpha };\n  } else {\n    const hueToRgb = (t12, t22, hue2) => {\n      while (hue2 < 0) {\n        hue2 += 6;\n      }\n      while (hue2 >= 6) {\n        hue2 -= 6;\n      }\n      if (hue2 < 1) {\n        return (t22 - t12) * hue2 + t12;\n      }\n      if (hue2 < 3) {\n        return t22;\n      }\n      if (hue2 < 4) {\n        return (t22 - t12) * (4 - hue2) + t12;\n      }\n      return t12;\n    };\n    const t2 = light <= 0.5 ? light * (sat + 1) : light + sat - light * sat;\n    const t1 = light * 2 - t2;\n    return { red: hueToRgb(t1, t2, hue + 2), green: hueToRgb(t1, t2, hue), blue: hueToRgb(t1, t2, hue - 2), alpha };\n  }\n}\nfunction hslFromColor(rgba) {\n  const r = rgba.red;\n  const g = rgba.green;\n  const b = rgba.blue;\n  const a2 = rgba.alpha;\n  const max = Math.max(r, g, b);\n  const min = Math.min(r, g, b);\n  let h = 0;\n  let s = 0;\n  const l = (min + max) / 2;\n  const chroma = max - min;\n  if (chroma > 0) {\n    s = Math.min(l <= 0.5 ? chroma / (2 * l) : chroma / (2 - 2 * l), 1);\n    switch (max) {\n      case r:\n        h = (g - b) / chroma + (g < b ? 6 : 0);\n        break;\n      case g:\n        h = (b - r) / chroma + 2;\n        break;\n      case b:\n        h = (r - g) / chroma + 4;\n        break;\n    }\n    h *= 60;\n    h = Math.round(h);\n  }\n  return { h, s, l, a: a2 };\n}\nfunction colorFromHWB(hue, white, black, alpha = 1) {\n  if (white + black >= 1) {\n    const gray = white / (white + black);\n    return { red: gray, green: gray, blue: gray, alpha };\n  }\n  const rgb = colorFromHSL(hue, 1, 0.5, alpha);\n  let red = rgb.red;\n  red *= 1 - white - black;\n  red += white;\n  let green = rgb.green;\n  green *= 1 - white - black;\n  green += white;\n  let blue = rgb.blue;\n  blue *= 1 - white - black;\n  blue += white;\n  return {\n    red,\n    green,\n    blue,\n    alpha\n  };\n}\nfunction hwbFromColor(rgba) {\n  const hsl = hslFromColor(rgba);\n  const white = Math.min(rgba.red, rgba.green, rgba.blue);\n  const black = 1 - Math.max(rgba.red, rgba.green, rgba.blue);\n  return {\n    h: hsl.h,\n    w: white,\n    b: black,\n    a: hsl.a\n  };\n}\nfunction getColorValue(node) {\n  if (node.type === NodeType.HexColorValue) {\n    const text = node.getText();\n    return colorFromHex(text);\n  } else if (node.type === NodeType.Function) {\n    const functionNode = node;\n    const name = functionNode.getName();\n    let colorValues = functionNode.getArguments().getChildren();\n    if (colorValues.length === 1) {\n      const functionArg = colorValues[0].getChildren();\n      if (functionArg.length === 1 && functionArg[0].type === NodeType.Expression) {\n        colorValues = functionArg[0].getChildren();\n        if (colorValues.length === 3) {\n          const lastValue = colorValues[2];\n          if (lastValue instanceof BinaryExpression) {\n            const left = lastValue.getLeft(), right = lastValue.getRight(), operator = lastValue.getOperator();\n            if (left && right && operator && operator.matches(\"/\")) {\n              colorValues = [colorValues[0], colorValues[1], left, right];\n            }\n          }\n        }\n      }\n    }\n    if (!name || colorValues.length < 3 || colorValues.length > 4) {\n      return null;\n    }\n    try {\n      const alpha = colorValues.length === 4 ? getNumericValue(colorValues[3], 1) : 1;\n      if (name === \"rgb\" || name === \"rgba\") {\n        return {\n          red: getNumericValue(colorValues[0], 255),\n          green: getNumericValue(colorValues[1], 255),\n          blue: getNumericValue(colorValues[2], 255),\n          alpha\n        };\n      } else if (name === \"hsl\" || name === \"hsla\") {\n        const h = getAngle(colorValues[0]);\n        const s = getNumericValue(colorValues[1], 100);\n        const l = getNumericValue(colorValues[2], 100);\n        return colorFromHSL(h, s, l, alpha);\n      } else if (name === \"hwb\") {\n        const h = getAngle(colorValues[0]);\n        const w = getNumericValue(colorValues[1], 100);\n        const b = getNumericValue(colorValues[2], 100);\n        return colorFromHWB(h, w, b, alpha);\n      }\n    } catch (e) {\n      return null;\n    }\n  } else if (node.type === NodeType.Identifier) {\n    if (node.parent && node.parent.type !== NodeType.Term) {\n      return null;\n    }\n    const term = node.parent;\n    if (term && term.parent && term.parent.type === NodeType.BinaryExpression) {\n      const expression = term.parent;\n      if (expression.parent && expression.parent.type === NodeType.ListEntry && expression.parent.key === expression) {\n        return null;\n      }\n    }\n    const candidateColor = node.getText().toLowerCase();\n    if (candidateColor === \"none\") {\n      return null;\n    }\n    const colorHex = colors[candidateColor];\n    if (colorHex) {\n      return colorFromHex(colorHex);\n    }\n  }\n  return null;\n}\n\n// node_modules/vscode-css-languageservice/lib/esm/languageFacts/builtinData.js\nvar positionKeywords = {\n  \"bottom\": \"Computes to \\u2018100%\\u2019 for the vertical position if one or two values are given, otherwise specifies the bottom edge as the origin for the next offset.\",\n  \"center\": \"Computes to \\u201850%\\u2019 (\\u2018left 50%\\u2019) for the horizontal position if the horizontal position is not otherwise specified, or \\u201850%\\u2019 (\\u2018top 50%\\u2019) for the vertical position if it is.\",\n  \"left\": \"Computes to \\u20180%\\u2019 for the horizontal position if one or two values are given, otherwise specifies the left edge as the origin for the next offset.\",\n  \"right\": \"Computes to \\u2018100%\\u2019 for the horizontal position if one or two values are given, otherwise specifies the right edge as the origin for the next offset.\",\n  \"top\": \"Computes to \\u20180%\\u2019 for the vertical position if one or two values are given, otherwise specifies the top edge as the origin for the next offset.\"\n};\nvar repeatStyleKeywords = {\n  \"no-repeat\": \"Placed once and not repeated in this direction.\",\n  \"repeat\": \"Repeated in this direction as often as needed to cover the background painting area.\",\n  \"repeat-x\": \"Computes to \\u2018repeat no-repeat\\u2019.\",\n  \"repeat-y\": \"Computes to \\u2018no-repeat repeat\\u2019.\",\n  \"round\": \"Repeated as often as will fit within the background positioning area. If it doesn\\u2019t fit a whole number of times, it is rescaled so that it does.\",\n  \"space\": \"Repeated as often as will fit within the background positioning area without being clipped and then the images are spaced out to fill the area.\"\n};\nvar lineStyleKeywords = {\n  \"dashed\": \"A series of square-ended dashes.\",\n  \"dotted\": \"A series of round dots.\",\n  \"double\": \"Two parallel solid lines with some space between them.\",\n  \"groove\": \"Looks as if it were carved in the canvas.\",\n  \"hidden\": \"Same as \\u2018none\\u2019, but has different behavior in the border conflict resolution rules for border-collapsed tables.\",\n  \"inset\": \"Looks as if the content on the inside of the border is sunken into the canvas.\",\n  \"none\": \"No border. Color and width are ignored.\",\n  \"outset\": \"Looks as if the content on the inside of the border is coming out of the canvas.\",\n  \"ridge\": \"Looks as if it were coming out of the canvas.\",\n  \"solid\": \"A single line segment.\"\n};\nvar lineWidthKeywords = [\"medium\", \"thick\", \"thin\"];\nvar boxKeywords = {\n  \"border-box\": \"The background is painted within (clipped to) the border box.\",\n  \"content-box\": \"The background is painted within (clipped to) the content box.\",\n  \"padding-box\": \"The background is painted within (clipped to) the padding box.\"\n};\nvar geometryBoxKeywords = {\n  \"margin-box\": \"Uses the margin box as reference box.\",\n  \"fill-box\": \"Uses the object bounding box as reference box.\",\n  \"stroke-box\": \"Uses the stroke bounding box as reference box.\",\n  \"view-box\": \"Uses the nearest SVG viewport as reference box.\"\n};\nvar cssWideKeywords = {\n  \"initial\": \"Represents the value specified as the property\\u2019s initial value.\",\n  \"inherit\": \"Represents the computed value of the property on the element\\u2019s parent.\",\n  \"unset\": \"Acts as either `inherit` or `initial`, depending on whether the property is inherited or not.\"\n};\nvar cssWideFunctions = {\n  \"var()\": \"Evaluates the value of a custom variable.\",\n  \"calc()\": \"Evaluates an mathematical expression. The following operators can be used: + - * /.\"\n};\nvar imageFunctions = {\n  \"url()\": \"Reference an image file by URL\",\n  \"image()\": \"Provide image fallbacks and annotations.\",\n  \"-webkit-image-set()\": \"Provide multiple resolutions. Remember to use unprefixed image-set() in addition.\",\n  \"image-set()\": \"Provide multiple resolutions of an image and const the UA decide which is most appropriate in a given situation.\",\n  \"-moz-element()\": \"Use an element in the document as an image. Remember to use unprefixed element() in addition.\",\n  \"element()\": \"Use an element in the document as an image.\",\n  \"cross-fade()\": \"Indicates the two images to be combined and how far along in the transition the combination is.\",\n  \"-webkit-gradient()\": \"Deprecated. Use modern linear-gradient() or radial-gradient() instead.\",\n  \"-webkit-linear-gradient()\": \"Linear gradient. Remember to use unprefixed version in addition.\",\n  \"-moz-linear-gradient()\": \"Linear gradient. Remember to use unprefixed version in addition.\",\n  \"-o-linear-gradient()\": \"Linear gradient. Remember to use unprefixed version in addition.\",\n  \"linear-gradient()\": \"A linear gradient is created by specifying a straight gradient line, and then several colors placed along that line.\",\n  \"-webkit-repeating-linear-gradient()\": \"Repeating Linear gradient. Remember to use unprefixed version in addition.\",\n  \"-moz-repeating-linear-gradient()\": \"Repeating Linear gradient. Remember to use unprefixed version in addition.\",\n  \"-o-repeating-linear-gradient()\": \"Repeating Linear gradient. Remember to use unprefixed version in addition.\",\n  \"repeating-linear-gradient()\": \"Same as linear-gradient, except the color-stops are repeated infinitely in both directions, with their positions shifted by multiples of the difference between the last specified color-stop\\u2019s position and the first specified color-stop\\u2019s position.\",\n  \"-webkit-radial-gradient()\": \"Radial gradient. Remember to use unprefixed version in addition.\",\n  \"-moz-radial-gradient()\": \"Radial gradient. Remember to use unprefixed version in addition.\",\n  \"radial-gradient()\": \"Colors emerge from a single point and smoothly spread outward in a circular or elliptical shape.\",\n  \"-webkit-repeating-radial-gradient()\": \"Repeating radial gradient. Remember to use unprefixed version in addition.\",\n  \"-moz-repeating-radial-gradient()\": \"Repeating radial gradient. Remember to use unprefixed version in addition.\",\n  \"repeating-radial-gradient()\": \"Same as radial-gradient, except the color-stops are repeated infinitely in both directions, with their positions shifted by multiples of the difference between the last specified color-stop\\u2019s position and the first specified color-stop\\u2019s position.\"\n};\nvar transitionTimingFunctions = {\n  \"ease\": \"Equivalent to cubic-bezier(0.25, 0.1, 0.25, 1.0).\",\n  \"ease-in\": \"Equivalent to cubic-bezier(0.42, 0, 1.0, 1.0).\",\n  \"ease-in-out\": \"Equivalent to cubic-bezier(0.42, 0, 0.58, 1.0).\",\n  \"ease-out\": \"Equivalent to cubic-bezier(0, 0, 0.58, 1.0).\",\n  \"linear\": \"Equivalent to cubic-bezier(0.0, 0.0, 1.0, 1.0).\",\n  \"step-end\": \"Equivalent to steps(1, end).\",\n  \"step-start\": \"Equivalent to steps(1, start).\",\n  \"steps()\": \"The first parameter specifies the number of intervals in the function. The second parameter, which is optional, is either the value \\u201Cstart\\u201D or \\u201Cend\\u201D.\",\n  \"cubic-bezier()\": \"Specifies a cubic-bezier curve. The four values specify points P1 and P2  of the curve as (x1, y1, x2, y2).\",\n  \"cubic-bezier(0.6, -0.28, 0.735, 0.045)\": \"Ease-in Back. Overshoots.\",\n  \"cubic-bezier(0.68, -0.55, 0.265, 1.55)\": \"Ease-in-out Back. Overshoots.\",\n  \"cubic-bezier(0.175, 0.885, 0.32, 1.275)\": \"Ease-out Back. Overshoots.\",\n  \"cubic-bezier(0.6, 0.04, 0.98, 0.335)\": \"Ease-in Circular. Based on half circle.\",\n  \"cubic-bezier(0.785, 0.135, 0.15, 0.86)\": \"Ease-in-out Circular. Based on half circle.\",\n  \"cubic-bezier(0.075, 0.82, 0.165, 1)\": \"Ease-out Circular. Based on half circle.\",\n  \"cubic-bezier(0.55, 0.055, 0.675, 0.19)\": \"Ease-in Cubic. Based on power of three.\",\n  \"cubic-bezier(0.645, 0.045, 0.355, 1)\": \"Ease-in-out Cubic. Based on power of three.\",\n  \"cubic-bezier(0.215, 0.610, 0.355, 1)\": \"Ease-out Cubic. Based on power of three.\",\n  \"cubic-bezier(0.95, 0.05, 0.795, 0.035)\": \"Ease-in Exponential. Based on two to the power ten.\",\n  \"cubic-bezier(1, 0, 0, 1)\": \"Ease-in-out Exponential. Based on two to the power ten.\",\n  \"cubic-bezier(0.19, 1, 0.22, 1)\": \"Ease-out Exponential. Based on two to the power ten.\",\n  \"cubic-bezier(0.47, 0, 0.745, 0.715)\": \"Ease-in Sine.\",\n  \"cubic-bezier(0.445, 0.05, 0.55, 0.95)\": \"Ease-in-out Sine.\",\n  \"cubic-bezier(0.39, 0.575, 0.565, 1)\": \"Ease-out Sine.\",\n  \"cubic-bezier(0.55, 0.085, 0.68, 0.53)\": \"Ease-in Quadratic. Based on power of two.\",\n  \"cubic-bezier(0.455, 0.03, 0.515, 0.955)\": \"Ease-in-out Quadratic. Based on power of two.\",\n  \"cubic-bezier(0.25, 0.46, 0.45, 0.94)\": \"Ease-out Quadratic. Based on power of two.\",\n  \"cubic-bezier(0.895, 0.03, 0.685, 0.22)\": \"Ease-in Quartic. Based on power of four.\",\n  \"cubic-bezier(0.77, 0, 0.175, 1)\": \"Ease-in-out Quartic. Based on power of four.\",\n  \"cubic-bezier(0.165, 0.84, 0.44, 1)\": \"Ease-out Quartic. Based on power of four.\",\n  \"cubic-bezier(0.755, 0.05, 0.855, 0.06)\": \"Ease-in Quintic. Based on power of five.\",\n  \"cubic-bezier(0.86, 0, 0.07, 1)\": \"Ease-in-out Quintic. Based on power of five.\",\n  \"cubic-bezier(0.23, 1, 0.320, 1)\": \"Ease-out Quintic. Based on power of five.\"\n};\nvar basicShapeFunctions = {\n  \"circle()\": \"Defines a circle.\",\n  \"ellipse()\": \"Defines an ellipse.\",\n  \"inset()\": \"Defines an inset rectangle.\",\n  \"polygon()\": \"Defines a polygon.\"\n};\nvar units = {\n  \"length\": [\"cap\", \"ch\", \"cm\", \"cqb\", \"cqh\", \"cqi\", \"cqmax\", \"cqmin\", \"cqw\", \"dvb\", \"dvh\", \"dvi\", \"dvw\", \"em\", \"ex\", \"ic\", \"in\", \"lh\", \"lvb\", \"lvh\", \"lvi\", \"lvw\", \"mm\", \"pc\", \"pt\", \"px\", \"q\", \"rcap\", \"rch\", \"rem\", \"rex\", \"ric\", \"rlh\", \"svb\", \"svh\", \"svi\", \"svw\", \"vb\", \"vh\", \"vi\", \"vmax\", \"vmin\", \"vw\"],\n  \"angle\": [\"deg\", \"rad\", \"grad\", \"turn\"],\n  \"time\": [\"ms\", \"s\"],\n  \"frequency\": [\"Hz\", \"kHz\"],\n  \"resolution\": [\"dpi\", \"dpcm\", \"dppx\"],\n  \"percentage\": [\"%\", \"fr\"]\n};\nvar html5Tags = [\n  \"a\",\n  \"abbr\",\n  \"address\",\n  \"area\",\n  \"article\",\n  \"aside\",\n  \"audio\",\n  \"b\",\n  \"base\",\n  \"bdi\",\n  \"bdo\",\n  \"blockquote\",\n  \"body\",\n  \"br\",\n  \"button\",\n  \"canvas\",\n  \"caption\",\n  \"cite\",\n  \"code\",\n  \"col\",\n  \"colgroup\",\n  \"data\",\n  \"datalist\",\n  \"dd\",\n  \"del\",\n  \"details\",\n  \"dfn\",\n  \"dialog\",\n  \"div\",\n  \"dl\",\n  \"dt\",\n  \"em\",\n  \"embed\",\n  \"fieldset\",\n  \"figcaption\",\n  \"figure\",\n  \"footer\",\n  \"form\",\n  \"h1\",\n  \"h2\",\n  \"h3\",\n  \"h4\",\n  \"h5\",\n  \"h6\",\n  \"head\",\n  \"header\",\n  \"hgroup\",\n  \"hr\",\n  \"html\",\n  \"i\",\n  \"iframe\",\n  \"img\",\n  \"input\",\n  \"ins\",\n  \"kbd\",\n  \"keygen\",\n  \"label\",\n  \"legend\",\n  \"li\",\n  \"link\",\n  \"main\",\n  \"map\",\n  \"mark\",\n  \"menu\",\n  \"menuitem\",\n  \"meta\",\n  \"meter\",\n  \"nav\",\n  \"noscript\",\n  \"object\",\n  \"ol\",\n  \"optgroup\",\n  \"option\",\n  \"output\",\n  \"p\",\n  \"param\",\n  \"picture\",\n  \"pre\",\n  \"progress\",\n  \"q\",\n  \"rb\",\n  \"rp\",\n  \"rt\",\n  \"rtc\",\n  \"ruby\",\n  \"s\",\n  \"samp\",\n  \"script\",\n  \"section\",\n  \"select\",\n  \"small\",\n  \"source\",\n  \"span\",\n  \"strong\",\n  \"style\",\n  \"sub\",\n  \"summary\",\n  \"sup\",\n  \"table\",\n  \"tbody\",\n  \"td\",\n  \"template\",\n  \"textarea\",\n  \"tfoot\",\n  \"th\",\n  \"thead\",\n  \"time\",\n  \"title\",\n  \"tr\",\n  \"track\",\n  \"u\",\n  \"ul\",\n  \"const\",\n  \"video\",\n  \"wbr\"\n];\nvar svgElements = [\n  \"circle\",\n  \"clipPath\",\n  \"cursor\",\n  \"defs\",\n  \"desc\",\n  \"ellipse\",\n  \"feBlend\",\n  \"feColorMatrix\",\n  \"feComponentTransfer\",\n  \"feComposite\",\n  \"feConvolveMatrix\",\n  \"feDiffuseLighting\",\n  \"feDisplacementMap\",\n  \"feDistantLight\",\n  \"feDropShadow\",\n  \"feFlood\",\n  \"feFuncA\",\n  \"feFuncB\",\n  \"feFuncG\",\n  \"feFuncR\",\n  \"feGaussianBlur\",\n  \"feImage\",\n  \"feMerge\",\n  \"feMergeNode\",\n  \"feMorphology\",\n  \"feOffset\",\n  \"fePointLight\",\n  \"feSpecularLighting\",\n  \"feSpotLight\",\n  \"feTile\",\n  \"feTurbulence\",\n  \"filter\",\n  \"foreignObject\",\n  \"g\",\n  \"hatch\",\n  \"hatchpath\",\n  \"image\",\n  \"line\",\n  \"linearGradient\",\n  \"marker\",\n  \"mask\",\n  \"mesh\",\n  \"meshpatch\",\n  \"meshrow\",\n  \"metadata\",\n  \"mpath\",\n  \"path\",\n  \"pattern\",\n  \"polygon\",\n  \"polyline\",\n  \"radialGradient\",\n  \"rect\",\n  \"set\",\n  \"solidcolor\",\n  \"stop\",\n  \"svg\",\n  \"switch\",\n  \"symbol\",\n  \"text\",\n  \"textPath\",\n  \"tspan\",\n  \"use\",\n  \"view\"\n];\nvar pageBoxDirectives = [\n  \"@bottom-center\",\n  \"@bottom-left\",\n  \"@bottom-left-corner\",\n  \"@bottom-right\",\n  \"@bottom-right-corner\",\n  \"@left-bottom\",\n  \"@left-middle\",\n  \"@left-top\",\n  \"@right-bottom\",\n  \"@right-middle\",\n  \"@right-top\",\n  \"@top-center\",\n  \"@top-left\",\n  \"@top-left-corner\",\n  \"@top-right\",\n  \"@top-right-corner\"\n];\n\n// node_modules/vscode-css-languageservice/lib/esm/utils/objects.js\nfunction values(obj) {\n  return Object.keys(obj).map((key) => obj[key]);\n}\nfunction isDefined(obj) {\n  return typeof obj !== \"undefined\";\n}\n\n// node_modules/vscode-css-languageservice/lib/esm/parser/cssParser.js\nvar Parser = class {\n  constructor(scnr = new Scanner()) {\n    this.keyframeRegex = /^@(\\-(webkit|ms|moz|o)\\-)?keyframes$/i;\n    this.scanner = scnr;\n    this.token = { type: TokenType.EOF, offset: -1, len: 0, text: \"\" };\n    this.prevToken = void 0;\n  }\n  peekIdent(text) {\n    return TokenType.Ident === this.token.type && text.length === this.token.text.length && text === this.token.text.toLowerCase();\n  }\n  peekKeyword(text) {\n    return TokenType.AtKeyword === this.token.type && text.length === this.token.text.length && text === this.token.text.toLowerCase();\n  }\n  peekDelim(text) {\n    return TokenType.Delim === this.token.type && text === this.token.text;\n  }\n  peek(type) {\n    return type === this.token.type;\n  }\n  peekOne(...types) {\n    return types.indexOf(this.token.type) !== -1;\n  }\n  peekRegExp(type, regEx) {\n    if (type !== this.token.type) {\n      return false;\n    }\n    return regEx.test(this.token.text);\n  }\n  hasWhitespace() {\n    return !!this.prevToken && this.prevToken.offset + this.prevToken.len !== this.token.offset;\n  }\n  consumeToken() {\n    this.prevToken = this.token;\n    this.token = this.scanner.scan();\n  }\n  acceptUnicodeRange() {\n    const token = this.scanner.tryScanUnicode();\n    if (token) {\n      this.prevToken = token;\n      this.token = this.scanner.scan();\n      return true;\n    }\n    return false;\n  }\n  mark() {\n    return {\n      prev: this.prevToken,\n      curr: this.token,\n      pos: this.scanner.pos()\n    };\n  }\n  restoreAtMark(mark) {\n    this.prevToken = mark.prev;\n    this.token = mark.curr;\n    this.scanner.goBackTo(mark.pos);\n  }\n  try(func) {\n    const pos = this.mark();\n    const node = func();\n    if (!node) {\n      this.restoreAtMark(pos);\n      return null;\n    }\n    return node;\n  }\n  acceptOneKeyword(keywords) {\n    if (TokenType.AtKeyword === this.token.type) {\n      for (const keyword of keywords) {\n        if (keyword.length === this.token.text.length && keyword === this.token.text.toLowerCase()) {\n          this.consumeToken();\n          return true;\n        }\n      }\n    }\n    return false;\n  }\n  accept(type) {\n    if (type === this.token.type) {\n      this.consumeToken();\n      return true;\n    }\n    return false;\n  }\n  acceptIdent(text) {\n    if (this.peekIdent(text)) {\n      this.consumeToken();\n      return true;\n    }\n    return false;\n  }\n  acceptKeyword(text) {\n    if (this.peekKeyword(text)) {\n      this.consumeToken();\n      return true;\n    }\n    return false;\n  }\n  acceptDelim(text) {\n    if (this.peekDelim(text)) {\n      this.consumeToken();\n      return true;\n    }\n    return false;\n  }\n  acceptRegexp(regEx) {\n    if (regEx.test(this.token.text)) {\n      this.consumeToken();\n      return true;\n    }\n    return false;\n  }\n  _parseRegexp(regEx) {\n    let node = this.createNode(NodeType.Identifier);\n    do {\n    } while (this.acceptRegexp(regEx));\n    return this.finish(node);\n  }\n  acceptUnquotedString() {\n    const pos = this.scanner.pos();\n    this.scanner.goBackTo(this.token.offset);\n    const unquoted = this.scanner.scanUnquotedString();\n    if (unquoted) {\n      this.token = unquoted;\n      this.consumeToken();\n      return true;\n    }\n    this.scanner.goBackTo(pos);\n    return false;\n  }\n  resync(resyncTokens, resyncStopTokens) {\n    while (true) {\n      if (resyncTokens && resyncTokens.indexOf(this.token.type) !== -1) {\n        this.consumeToken();\n        return true;\n      } else if (resyncStopTokens && resyncStopTokens.indexOf(this.token.type) !== -1) {\n        return true;\n      } else {\n        if (this.token.type === TokenType.EOF) {\n          return false;\n        }\n        this.token = this.scanner.scan();\n      }\n    }\n  }\n  createNode(nodeType) {\n    return new Node(this.token.offset, this.token.len, nodeType);\n  }\n  create(ctor) {\n    return new ctor(this.token.offset, this.token.len);\n  }\n  finish(node, error, resyncTokens, resyncStopTokens) {\n    if (!(node instanceof Nodelist)) {\n      if (error) {\n        this.markError(node, error, resyncTokens, resyncStopTokens);\n      }\n      if (this.prevToken) {\n        const prevEnd = this.prevToken.offset + this.prevToken.len;\n        node.length = prevEnd > node.offset ? prevEnd - node.offset : 0;\n      }\n    }\n    return node;\n  }\n  markError(node, error, resyncTokens, resyncStopTokens) {\n    if (this.token !== this.lastErrorToken) {\n      node.addIssue(new Marker(node, error, Level.Error, void 0, this.token.offset, this.token.len));\n      this.lastErrorToken = this.token;\n    }\n    if (resyncTokens || resyncStopTokens) {\n      this.resync(resyncTokens, resyncStopTokens);\n    }\n  }\n  parseStylesheet(textDocument) {\n    const versionId = textDocument.version;\n    const text = textDocument.getText();\n    const textProvider = (offset, length) => {\n      if (textDocument.version !== versionId) {\n        throw new Error(\"Underlying model has changed, AST is no longer valid\");\n      }\n      return text.substr(offset, length);\n    };\n    return this.internalParse(text, this._parseStylesheet, textProvider);\n  }\n  internalParse(input, parseFunc, textProvider) {\n    this.scanner.setSource(input);\n    this.token = this.scanner.scan();\n    const node = parseFunc.bind(this)();\n    if (node) {\n      if (textProvider) {\n        node.textProvider = textProvider;\n      } else {\n        node.textProvider = (offset, length) => {\n          return input.substr(offset, length);\n        };\n      }\n    }\n    return node;\n  }\n  _parseStylesheet() {\n    const node = this.create(Stylesheet);\n    while (node.addChild(this._parseStylesheetStart())) {\n    }\n    let inRecovery = false;\n    do {\n      let hasMatch = false;\n      do {\n        hasMatch = false;\n        const statement = this._parseStylesheetStatement();\n        if (statement) {\n          node.addChild(statement);\n          hasMatch = true;\n          inRecovery = false;\n          if (!this.peek(TokenType.EOF) && this._needsSemicolonAfter(statement) && !this.accept(TokenType.SemiColon)) {\n            this.markError(node, ParseError.SemiColonExpected);\n          }\n        }\n        while (this.accept(TokenType.SemiColon) || this.accept(TokenType.CDO) || this.accept(TokenType.CDC)) {\n          hasMatch = true;\n          inRecovery = false;\n        }\n      } while (hasMatch);\n      if (this.peek(TokenType.EOF)) {\n        break;\n      }\n      if (!inRecovery) {\n        if (this.peek(TokenType.AtKeyword)) {\n          this.markError(node, ParseError.UnknownAtRule);\n        } else {\n          this.markError(node, ParseError.RuleOrSelectorExpected);\n        }\n        inRecovery = true;\n      }\n      this.consumeToken();\n    } while (!this.peek(TokenType.EOF));\n    return this.finish(node);\n  }\n  _parseStylesheetStart() {\n    return this._parseCharset();\n  }\n  _parseStylesheetStatement(isNested = false) {\n    if (this.peek(TokenType.AtKeyword)) {\n      return this._parseStylesheetAtStatement(isNested);\n    }\n    return this._parseRuleset(isNested);\n  }\n  _parseStylesheetAtStatement(isNested = false) {\n    return this._parseImport() || this._parseMedia(isNested) || this._parsePage() || this._parseFontFace() || this._parseKeyframe() || this._parseSupports(isNested) || this._parseLayer(isNested) || this._parsePropertyAtRule() || this._parseViewPort() || this._parseNamespace() || this._parseDocument() || this._parseContainer(isNested) || this._parseUnknownAtRule();\n  }\n  _tryParseRuleset(isNested) {\n    const mark = this.mark();\n    if (this._parseSelector(isNested)) {\n      while (this.accept(TokenType.Comma) && this._parseSelector(isNested)) {\n      }\n      if (this.accept(TokenType.CurlyL)) {\n        this.restoreAtMark(mark);\n        return this._parseRuleset(isNested);\n      }\n    }\n    this.restoreAtMark(mark);\n    return null;\n  }\n  _parseRuleset(isNested = false) {\n    const node = this.create(RuleSet);\n    const selectors = node.getSelectors();\n    if (!selectors.addChild(this._parseSelector(isNested))) {\n      return null;\n    }\n    while (this.accept(TokenType.Comma)) {\n      if (!selectors.addChild(this._parseSelector(isNested))) {\n        return this.finish(node, ParseError.SelectorExpected);\n      }\n    }\n    return this._parseBody(node, this._parseRuleSetDeclaration.bind(this));\n  }\n  _parseRuleSetDeclarationAtStatement() {\n    return this._parseMedia(true) || this._parseSupports(true) || this._parseLayer(true) || this._parseContainer(true) || this._parseUnknownAtRule();\n  }\n  _parseRuleSetDeclaration() {\n    if (this.peek(TokenType.AtKeyword)) {\n      return this._parseRuleSetDeclarationAtStatement();\n    }\n    if (!this.peek(TokenType.Ident)) {\n      return this._parseRuleset(true);\n    }\n    return this._tryParseRuleset(true) || this._parseDeclaration();\n  }\n  _needsSemicolonAfter(node) {\n    switch (node.type) {\n      case NodeType.Keyframe:\n      case NodeType.ViewPort:\n      case NodeType.Media:\n      case NodeType.Ruleset:\n      case NodeType.Namespace:\n      case NodeType.If:\n      case NodeType.For:\n      case NodeType.Each:\n      case NodeType.While:\n      case NodeType.MixinDeclaration:\n      case NodeType.FunctionDeclaration:\n      case NodeType.MixinContentDeclaration:\n        return false;\n      case NodeType.ExtendsReference:\n      case NodeType.MixinContentReference:\n      case NodeType.ReturnStatement:\n      case NodeType.MediaQuery:\n      case NodeType.Debug:\n      case NodeType.Import:\n      case NodeType.AtApplyRule:\n      case NodeType.CustomPropertyDeclaration:\n        return true;\n      case NodeType.VariableDeclaration:\n        return node.needsSemicolon;\n      case NodeType.MixinReference:\n        return !node.getContent();\n      case NodeType.Declaration:\n        return !node.getNestedProperties();\n    }\n    return false;\n  }\n  _parseDeclarations(parseDeclaration) {\n    const node = this.create(Declarations);\n    if (!this.accept(TokenType.CurlyL)) {\n      return null;\n    }\n    let decl = parseDeclaration();\n    while (node.addChild(decl)) {\n      if (this.peek(TokenType.CurlyR)) {\n        break;\n      }\n      if (this._needsSemicolonAfter(decl) && !this.accept(TokenType.SemiColon)) {\n        return this.finish(node, ParseError.SemiColonExpected, [TokenType.SemiColon, TokenType.CurlyR]);\n      }\n      if (decl && this.prevToken && this.prevToken.type === TokenType.SemiColon) {\n        decl.semicolonPosition = this.prevToken.offset;\n      }\n      while (this.accept(TokenType.SemiColon)) {\n      }\n      decl = parseDeclaration();\n    }\n    if (!this.accept(TokenType.CurlyR)) {\n      return this.finish(node, ParseError.RightCurlyExpected, [TokenType.CurlyR, TokenType.SemiColon]);\n    }\n    return this.finish(node);\n  }\n  _parseBody(node, parseDeclaration) {\n    if (!node.setDeclarations(this._parseDeclarations(parseDeclaration))) {\n      return this.finish(node, ParseError.LeftCurlyExpected, [TokenType.CurlyR, TokenType.SemiColon]);\n    }\n    return this.finish(node);\n  }\n  _parseSelector(isNested) {\n    const node = this.create(Selector);\n    let hasContent = false;\n    if (isNested) {\n      hasContent = node.addChild(this._parseCombinator());\n    }\n    while (node.addChild(this._parseSimpleSelector())) {\n      hasContent = true;\n      node.addChild(this._parseCombinator());\n    }\n    return hasContent ? this.finish(node) : null;\n  }\n  _parseDeclaration(stopTokens) {\n    const customProperty = this._tryParseCustomPropertyDeclaration(stopTokens);\n    if (customProperty) {\n      return customProperty;\n    }\n    const node = this.create(Declaration);\n    if (!node.setProperty(this._parseProperty())) {\n      return null;\n    }\n    if (!this.accept(TokenType.Colon)) {\n      return this.finish(node, ParseError.ColonExpected, [TokenType.Colon], stopTokens || [TokenType.SemiColon]);\n    }\n    if (this.prevToken) {\n      node.colonPosition = this.prevToken.offset;\n    }\n    if (!node.setValue(this._parseExpr())) {\n      return this.finish(node, ParseError.PropertyValueExpected);\n    }\n    node.addChild(this._parsePrio());\n    if (this.peek(TokenType.SemiColon)) {\n      node.semicolonPosition = this.token.offset;\n    }\n    return this.finish(node);\n  }\n  _tryParseCustomPropertyDeclaration(stopTokens) {\n    if (!this.peekRegExp(TokenType.Ident, /^--/)) {\n      return null;\n    }\n    const node = this.create(CustomPropertyDeclaration);\n    if (!node.setProperty(this._parseProperty())) {\n      return null;\n    }\n    if (!this.accept(TokenType.Colon)) {\n      return this.finish(node, ParseError.ColonExpected, [TokenType.Colon]);\n    }\n    if (this.prevToken) {\n      node.colonPosition = this.prevToken.offset;\n    }\n    const mark = this.mark();\n    if (this.peek(TokenType.CurlyL)) {\n      const propertySet = this.create(CustomPropertySet);\n      const declarations = this._parseDeclarations(this._parseRuleSetDeclaration.bind(this));\n      if (propertySet.setDeclarations(declarations) && !declarations.isErroneous(true)) {\n        propertySet.addChild(this._parsePrio());\n        if (this.peek(TokenType.SemiColon)) {\n          this.finish(propertySet);\n          node.setPropertySet(propertySet);\n          node.semicolonPosition = this.token.offset;\n          return this.finish(node);\n        }\n      }\n      this.restoreAtMark(mark);\n    }\n    const expression = this._parseExpr();\n    if (expression && !expression.isErroneous(true)) {\n      this._parsePrio();\n      if (this.peekOne(...stopTokens || [], TokenType.SemiColon, TokenType.EOF)) {\n        node.setValue(expression);\n        if (this.peek(TokenType.SemiColon)) {\n          node.semicolonPosition = this.token.offset;\n        }\n        return this.finish(node);\n      }\n    }\n    this.restoreAtMark(mark);\n    node.addChild(this._parseCustomPropertyValue(stopTokens));\n    node.addChild(this._parsePrio());\n    if (isDefined(node.colonPosition) && this.token.offset === node.colonPosition + 1) {\n      return this.finish(node, ParseError.PropertyValueExpected);\n    }\n    return this.finish(node);\n  }\n  /**\n   * Parse custom property values.\n   *\n   * Based on https://www.w3.org/TR/css-variables/#syntax\n   *\n   * This code is somewhat unusual, as the allowed syntax is incredibly broad,\n   * parsing almost any sequence of tokens, save for a small set of exceptions.\n   * Unbalanced delimitors, invalid tokens, and declaration\n   * terminators like semicolons and !important directives (when not inside\n   * of delimitors).\n   */\n  _parseCustomPropertyValue(stopTokens = [TokenType.CurlyR]) {\n    const node = this.create(Node);\n    const isTopLevel = () => curlyDepth === 0 && parensDepth === 0 && bracketsDepth === 0;\n    const onStopToken = () => stopTokens.indexOf(this.token.type) !== -1;\n    let curlyDepth = 0;\n    let parensDepth = 0;\n    let bracketsDepth = 0;\n    done:\n      while (true) {\n        switch (this.token.type) {\n          case TokenType.SemiColon:\n            if (isTopLevel()) {\n              break done;\n            }\n            break;\n          case TokenType.Exclamation:\n            if (isTopLevel()) {\n              break done;\n            }\n            break;\n          case TokenType.CurlyL:\n            curlyDepth++;\n            break;\n          case TokenType.CurlyR:\n            curlyDepth--;\n            if (curlyDepth < 0) {\n              if (onStopToken() && parensDepth === 0 && bracketsDepth === 0) {\n                break done;\n              }\n              return this.finish(node, ParseError.LeftCurlyExpected);\n            }\n            break;\n          case TokenType.ParenthesisL:\n            parensDepth++;\n            break;\n          case TokenType.ParenthesisR:\n            parensDepth--;\n            if (parensDepth < 0) {\n              if (onStopToken() && bracketsDepth === 0 && curlyDepth === 0) {\n                break done;\n              }\n              return this.finish(node, ParseError.LeftParenthesisExpected);\n            }\n            break;\n          case TokenType.BracketL:\n            bracketsDepth++;\n            break;\n          case TokenType.BracketR:\n            bracketsDepth--;\n            if (bracketsDepth < 0) {\n              return this.finish(node, ParseError.LeftSquareBracketExpected);\n            }\n            break;\n          case TokenType.BadString:\n            break done;\n          case TokenType.EOF:\n            let error = ParseError.RightCurlyExpected;\n            if (bracketsDepth > 0) {\n              error = ParseError.RightSquareBracketExpected;\n            } else if (parensDepth > 0) {\n              error = ParseError.RightParenthesisExpected;\n            }\n            return this.finish(node, error);\n        }\n        this.consumeToken();\n      }\n    return this.finish(node);\n  }\n  _tryToParseDeclaration(stopTokens) {\n    const mark = this.mark();\n    if (this._parseProperty() && this.accept(TokenType.Colon)) {\n      this.restoreAtMark(mark);\n      return this._parseDeclaration(stopTokens);\n    }\n    this.restoreAtMark(mark);\n    return null;\n  }\n  _parseProperty() {\n    const node = this.create(Property);\n    const mark = this.mark();\n    if (this.acceptDelim(\"*\") || this.acceptDelim(\"_\")) {\n      if (this.hasWhitespace()) {\n        this.restoreAtMark(mark);\n        return null;\n      }\n    }\n    if (node.setIdentifier(this._parsePropertyIdentifier())) {\n      return this.finish(node);\n    }\n    return null;\n  }\n  _parsePropertyIdentifier() {\n    return this._parseIdent();\n  }\n  _parseCharset() {\n    if (!this.peek(TokenType.Charset)) {\n      return null;\n    }\n    const node = this.create(Node);\n    this.consumeToken();\n    if (!this.accept(TokenType.String)) {\n      return this.finish(node, ParseError.IdentifierExpected);\n    }\n    if (!this.accept(TokenType.SemiColon)) {\n      return this.finish(node, ParseError.SemiColonExpected);\n    }\n    return this.finish(node);\n  }\n  _parseImport() {\n    if (!this.peekKeyword(\"@import\")) {\n      return null;\n    }\n    const node = this.create(Import);\n    this.consumeToken();\n    if (!node.addChild(this._parseURILiteral()) && !node.addChild(this._parseStringLiteral())) {\n      return this.finish(node, ParseError.URIOrStringExpected);\n    }\n    return this._completeParseImport(node);\n  }\n  _completeParseImport(node) {\n    if (this.acceptIdent(\"layer\")) {\n      if (this.accept(TokenType.ParenthesisL)) {\n        if (!node.addChild(this._parseLayerName())) {\n          return this.finish(node, ParseError.IdentifierExpected, [TokenType.SemiColon]);\n        }\n        if (!this.accept(TokenType.ParenthesisR)) {\n          return this.finish(node, ParseError.RightParenthesisExpected, [TokenType.ParenthesisR], []);\n        }\n      }\n    }\n    if (this.acceptIdent(\"supports\")) {\n      if (this.accept(TokenType.ParenthesisL)) {\n        node.addChild(this._tryToParseDeclaration() || this._parseSupportsCondition());\n        if (!this.accept(TokenType.ParenthesisR)) {\n          return this.finish(node, ParseError.RightParenthesisExpected, [TokenType.ParenthesisR], []);\n        }\n      }\n    }\n    if (!this.peek(TokenType.SemiColon) && !this.peek(TokenType.EOF)) {\n      node.setMedialist(this._parseMediaQueryList());\n    }\n    return this.finish(node);\n  }\n  _parseNamespace() {\n    if (!this.peekKeyword(\"@namespace\")) {\n      return null;\n    }\n    const node = this.create(Namespace);\n    this.consumeToken();\n    if (!node.addChild(this._parseURILiteral())) {\n      node.addChild(this._parseIdent());\n      if (!node.addChild(this._parseURILiteral()) && !node.addChild(this._parseStringLiteral())) {\n        return this.finish(node, ParseError.URIExpected, [TokenType.SemiColon]);\n      }\n    }\n    if (!this.accept(TokenType.SemiColon)) {\n      return this.finish(node, ParseError.SemiColonExpected);\n    }\n    return this.finish(node);\n  }\n  _parseFontFace() {\n    if (!this.peekKeyword(\"@font-face\")) {\n      return null;\n    }\n    const node = this.create(FontFace);\n    this.consumeToken();\n    return this._parseBody(node, this._parseRuleSetDeclaration.bind(this));\n  }\n  _parseViewPort() {\n    if (!this.peekKeyword(\"@-ms-viewport\") && !this.peekKeyword(\"@-o-viewport\") && !this.peekKeyword(\"@viewport\")) {\n      return null;\n    }\n    const node = this.create(ViewPort);\n    this.consumeToken();\n    return this._parseBody(node, this._parseRuleSetDeclaration.bind(this));\n  }\n  _parseKeyframe() {\n    if (!this.peekRegExp(TokenType.AtKeyword, this.keyframeRegex)) {\n      return null;\n    }\n    const node = this.create(Keyframe);\n    const atNode = this.create(Node);\n    this.consumeToken();\n    node.setKeyword(this.finish(atNode));\n    if (atNode.matches(\"@-ms-keyframes\")) {\n      this.markError(atNode, ParseError.UnknownKeyword);\n    }\n    if (!node.setIdentifier(this._parseKeyframeIdent())) {\n      return this.finish(node, ParseError.IdentifierExpected, [TokenType.CurlyR]);\n    }\n    return this._parseBody(node, this._parseKeyframeSelector.bind(this));\n  }\n  _parseKeyframeIdent() {\n    return this._parseIdent([ReferenceType.Keyframe]);\n  }\n  _parseKeyframeSelector() {\n    const node = this.create(KeyframeSelector);\n    let hasContent = false;\n    if (node.addChild(this._parseIdent())) {\n      hasContent = true;\n    }\n    if (this.accept(TokenType.Percentage)) {\n      hasContent = true;\n    }\n    if (!hasContent) {\n      return null;\n    }\n    while (this.accept(TokenType.Comma)) {\n      hasContent = false;\n      if (node.addChild(this._parseIdent())) {\n        hasContent = true;\n      }\n      if (this.accept(TokenType.Percentage)) {\n        hasContent = true;\n      }\n      if (!hasContent) {\n        return this.finish(node, ParseError.PercentageExpected);\n      }\n    }\n    return this._parseBody(node, this._parseRuleSetDeclaration.bind(this));\n  }\n  _tryParseKeyframeSelector() {\n    const node = this.create(KeyframeSelector);\n    const pos = this.mark();\n    let hasContent = false;\n    if (node.addChild(this._parseIdent())) {\n      hasContent = true;\n    }\n    if (this.accept(TokenType.Percentage)) {\n      hasContent = true;\n    }\n    if (!hasContent) {\n      return null;\n    }\n    while (this.accept(TokenType.Comma)) {\n      hasContent = false;\n      if (node.addChild(this._parseIdent())) {\n        hasContent = true;\n      }\n      if (this.accept(TokenType.Percentage)) {\n        hasContent = true;\n      }\n      if (!hasContent) {\n        this.restoreAtMark(pos);\n        return null;\n      }\n    }\n    if (!this.peek(TokenType.CurlyL)) {\n      this.restoreAtMark(pos);\n      return null;\n    }\n    return this._parseBody(node, this._parseRuleSetDeclaration.bind(this));\n  }\n  _parsePropertyAtRule() {\n    if (!this.peekKeyword(\"@property\")) {\n      return null;\n    }\n    const node = this.create(PropertyAtRule);\n    this.consumeToken();\n    if (!this.peekRegExp(TokenType.Ident, /^--/) || !node.setName(this._parseIdent([ReferenceType.Property]))) {\n      return this.finish(node, ParseError.IdentifierExpected);\n    }\n    return this._parseBody(node, this._parseDeclaration.bind(this));\n  }\n  _parseLayer(isNested = false) {\n    if (!this.peekKeyword(\"@layer\")) {\n      return null;\n    }\n    const node = this.create(Layer);\n    this.consumeToken();\n    const names = this._parseLayerNameList();\n    if (names) {\n      node.setNames(names);\n    }\n    if ((!names || names.getChildren().length === 1) && this.peek(TokenType.CurlyL)) {\n      return this._parseBody(node, this._parseLayerDeclaration.bind(this, isNested));\n    }\n    if (!this.accept(TokenType.SemiColon)) {\n      return this.finish(node, ParseError.SemiColonExpected);\n    }\n    return this.finish(node);\n  }\n  _parseLayerDeclaration(isNested = false) {\n    if (isNested) {\n      return this._tryParseRuleset(true) || this._tryToParseDeclaration() || this._parseStylesheetStatement(true);\n    }\n    return this._parseStylesheetStatement(false);\n  }\n  _parseLayerNameList() {\n    const node = this.createNode(NodeType.LayerNameList);\n    if (!node.addChild(this._parseLayerName())) {\n      return null;\n    }\n    while (this.accept(TokenType.Comma)) {\n      if (!node.addChild(this._parseLayerName())) {\n        return this.finish(node, ParseError.IdentifierExpected);\n      }\n    }\n    return this.finish(node);\n  }\n  _parseLayerName() {\n    const node = this.createNode(NodeType.LayerName);\n    if (!node.addChild(this._parseIdent())) {\n      return null;\n    }\n    while (!this.hasWhitespace() && this.acceptDelim(\".\")) {\n      if (this.hasWhitespace() || !node.addChild(this._parseIdent())) {\n        return this.finish(node, ParseError.IdentifierExpected);\n      }\n    }\n    return this.finish(node);\n  }\n  _parseSupports(isNested = false) {\n    if (!this.peekKeyword(\"@supports\")) {\n      return null;\n    }\n    const node = this.create(Supports);\n    this.consumeToken();\n    node.addChild(this._parseSupportsCondition());\n    return this._parseBody(node, this._parseSupportsDeclaration.bind(this, isNested));\n  }\n  _parseSupportsDeclaration(isNested = false) {\n    if (isNested) {\n      return this._tryParseRuleset(true) || this._tryToParseDeclaration() || this._parseStylesheetStatement(true);\n    }\n    return this._parseStylesheetStatement(false);\n  }\n  _parseSupportsCondition() {\n    const node = this.create(SupportsCondition);\n    if (this.acceptIdent(\"not\")) {\n      node.addChild(this._parseSupportsConditionInParens());\n    } else {\n      node.addChild(this._parseSupportsConditionInParens());\n      if (this.peekRegExp(TokenType.Ident, /^(and|or)$/i)) {\n        const text = this.token.text.toLowerCase();\n        while (this.acceptIdent(text)) {\n          node.addChild(this._parseSupportsConditionInParens());\n        }\n      }\n    }\n    return this.finish(node);\n  }\n  _parseSupportsConditionInParens() {\n    const node = this.create(SupportsCondition);\n    if (this.accept(TokenType.ParenthesisL)) {\n      if (this.prevToken) {\n        node.lParent = this.prevToken.offset;\n      }\n      if (!node.addChild(this._tryToParseDeclaration([TokenType.ParenthesisR]))) {\n        if (!this._parseSupportsCondition()) {\n          return this.finish(node, ParseError.ConditionExpected);\n        }\n      }\n      if (!this.accept(TokenType.ParenthesisR)) {\n        return this.finish(node, ParseError.RightParenthesisExpected, [TokenType.ParenthesisR], []);\n      }\n      if (this.prevToken) {\n        node.rParent = this.prevToken.offset;\n      }\n      return this.finish(node);\n    } else if (this.peek(TokenType.Ident)) {\n      const pos = this.mark();\n      this.consumeToken();\n      if (!this.hasWhitespace() && this.accept(TokenType.ParenthesisL)) {\n        let openParentCount = 1;\n        while (this.token.type !== TokenType.EOF && openParentCount !== 0) {\n          if (this.token.type === TokenType.ParenthesisL) {\n            openParentCount++;\n          } else if (this.token.type === TokenType.ParenthesisR) {\n            openParentCount--;\n          }\n          this.consumeToken();\n        }\n        return this.finish(node);\n      } else {\n        this.restoreAtMark(pos);\n      }\n    }\n    return this.finish(node, ParseError.LeftParenthesisExpected, [], [TokenType.ParenthesisL]);\n  }\n  _parseMediaDeclaration(isNested = false) {\n    if (isNested) {\n      return this._tryParseRuleset(true) || this._tryToParseDeclaration() || this._parseStylesheetStatement(true);\n    }\n    return this._parseStylesheetStatement(false);\n  }\n  _parseMedia(isNested = false) {\n    if (!this.peekKeyword(\"@media\")) {\n      return null;\n    }\n    const node = this.create(Media);\n    this.consumeToken();\n    if (!node.addChild(this._parseMediaQueryList())) {\n      return this.finish(node, ParseError.MediaQueryExpected);\n    }\n    return this._parseBody(node, this._parseMediaDeclaration.bind(this, isNested));\n  }\n  _parseMediaQueryList() {\n    const node = this.create(Medialist);\n    if (!node.addChild(this._parseMediaQuery())) {\n      return this.finish(node, ParseError.MediaQueryExpected);\n    }\n    while (this.accept(TokenType.Comma)) {\n      if (!node.addChild(this._parseMediaQuery())) {\n        return this.finish(node, ParseError.MediaQueryExpected);\n      }\n    }\n    return this.finish(node);\n  }\n  _parseMediaQuery() {\n    const node = this.create(MediaQuery);\n    const pos = this.mark();\n    this.acceptIdent(\"not\");\n    if (!this.peek(TokenType.ParenthesisL)) {\n      if (this.acceptIdent(\"only\")) {\n      }\n      if (!node.addChild(this._parseIdent())) {\n        return null;\n      }\n      if (this.acceptIdent(\"and\")) {\n        node.addChild(this._parseMediaCondition());\n      }\n    } else {\n      this.restoreAtMark(pos);\n      node.addChild(this._parseMediaCondition());\n    }\n    return this.finish(node);\n  }\n  _parseRatio() {\n    const pos = this.mark();\n    const node = this.create(RatioValue);\n    if (!this._parseNumeric()) {\n      return null;\n    }\n    if (!this.acceptDelim(\"/\")) {\n      this.restoreAtMark(pos);\n      return null;\n    }\n    if (!this._parseNumeric()) {\n      return this.finish(node, ParseError.NumberExpected);\n    }\n    return this.finish(node);\n  }\n  _parseMediaCondition() {\n    const node = this.create(MediaCondition);\n    this.acceptIdent(\"not\");\n    let parseExpression = true;\n    while (parseExpression) {\n      if (!this.accept(TokenType.ParenthesisL)) {\n        return this.finish(node, ParseError.LeftParenthesisExpected, [], [TokenType.CurlyL]);\n      }\n      if (this.peek(TokenType.ParenthesisL) || this.peekIdent(\"not\")) {\n        node.addChild(this._parseMediaCondition());\n      } else {\n        node.addChild(this._parseMediaFeature());\n      }\n      if (!this.accept(TokenType.ParenthesisR)) {\n        return this.finish(node, ParseError.RightParenthesisExpected, [], [TokenType.CurlyL]);\n      }\n      parseExpression = this.acceptIdent(\"and\") || this.acceptIdent(\"or\");\n    }\n    return this.finish(node);\n  }\n  _parseMediaFeature() {\n    const resyncStopToken = [TokenType.ParenthesisR];\n    const node = this.create(MediaFeature);\n    if (node.addChild(this._parseMediaFeatureName())) {\n      if (this.accept(TokenType.Colon)) {\n        if (!node.addChild(this._parseMediaFeatureValue())) {\n          return this.finish(node, ParseError.TermExpected, [], resyncStopToken);\n        }\n      } else if (this._parseMediaFeatureRangeOperator()) {\n        if (!node.addChild(this._parseMediaFeatureValue())) {\n          return this.finish(node, ParseError.TermExpected, [], resyncStopToken);\n        }\n        if (this._parseMediaFeatureRangeOperator()) {\n          if (!node.addChild(this._parseMediaFeatureValue())) {\n            return this.finish(node, ParseError.TermExpected, [], resyncStopToken);\n          }\n        }\n      } else {\n      }\n    } else if (node.addChild(this._parseMediaFeatureValue())) {\n      if (!this._parseMediaFeatureRangeOperator()) {\n        return this.finish(node, ParseError.OperatorExpected, [], resyncStopToken);\n      }\n      if (!node.addChild(this._parseMediaFeatureName())) {\n        return this.finish(node, ParseError.IdentifierExpected, [], resyncStopToken);\n      }\n      if (this._parseMediaFeatureRangeOperator()) {\n        if (!node.addChild(this._parseMediaFeatureValue())) {\n          return this.finish(node, ParseError.TermExpected, [], resyncStopToken);\n        }\n      }\n    } else {\n      return this.finish(node, ParseError.IdentifierExpected, [], resyncStopToken);\n    }\n    return this.finish(node);\n  }\n  _parseMediaFeatureRangeOperator() {\n    if (this.acceptDelim(\"<\") || this.acceptDelim(\">\")) {\n      if (!this.hasWhitespace()) {\n        this.acceptDelim(\"=\");\n      }\n      return true;\n    } else if (this.acceptDelim(\"=\")) {\n      return true;\n    }\n    return false;\n  }\n  _parseMediaFeatureName() {\n    return this._parseIdent();\n  }\n  _parseMediaFeatureValue() {\n    return this._parseRatio() || this._parseTermExpression();\n  }\n  _parseMedium() {\n    const node = this.create(Node);\n    if (node.addChild(this._parseIdent())) {\n      return this.finish(node);\n    } else {\n      return null;\n    }\n  }\n  _parsePageDeclaration() {\n    return this._parsePageMarginBox() || this._parseRuleSetDeclaration();\n  }\n  _parsePage() {\n    if (!this.peekKeyword(\"@page\")) {\n      return null;\n    }\n    const node = this.create(Page);\n    this.consumeToken();\n    if (node.addChild(this._parsePageSelector())) {\n      while (this.accept(TokenType.Comma)) {\n        if (!node.addChild(this._parsePageSelector())) {\n          return this.finish(node, ParseError.IdentifierExpected);\n        }\n      }\n    }\n    return this._parseBody(node, this._parsePageDeclaration.bind(this));\n  }\n  _parsePageMarginBox() {\n    if (!this.peek(TokenType.AtKeyword)) {\n      return null;\n    }\n    const node = this.create(PageBoxMarginBox);\n    if (!this.acceptOneKeyword(pageBoxDirectives)) {\n      this.markError(node, ParseError.UnknownAtRule, [], [TokenType.CurlyL]);\n    }\n    return this._parseBody(node, this._parseRuleSetDeclaration.bind(this));\n  }\n  _parsePageSelector() {\n    if (!this.peek(TokenType.Ident) && !this.peek(TokenType.Colon)) {\n      return null;\n    }\n    const node = this.create(Node);\n    node.addChild(this._parseIdent());\n    if (this.accept(TokenType.Colon)) {\n      if (!node.addChild(this._parseIdent())) {\n        return this.finish(node, ParseError.IdentifierExpected);\n      }\n    }\n    return this.finish(node);\n  }\n  _parseDocument() {\n    if (!this.peekKeyword(\"@-moz-document\")) {\n      return null;\n    }\n    const node = this.create(Document);\n    this.consumeToken();\n    this.resync([], [TokenType.CurlyL]);\n    return this._parseBody(node, this._parseStylesheetStatement.bind(this));\n  }\n  _parseContainerDeclaration(isNested = false) {\n    if (isNested) {\n      return this._tryParseRuleset(true) || this._tryToParseDeclaration() || this._parseStylesheetStatement(true);\n    }\n    return this._parseStylesheetStatement(false);\n  }\n  _parseContainer(isNested = false) {\n    if (!this.peekKeyword(\"@container\")) {\n      return null;\n    }\n    const node = this.create(Container);\n    this.consumeToken();\n    node.addChild(this._parseIdent());\n    node.addChild(this._parseContainerQuery());\n    return this._parseBody(node, this._parseContainerDeclaration.bind(this, isNested));\n  }\n  _parseContainerQuery() {\n    const node = this.create(Node);\n    if (this.acceptIdent(\"not\")) {\n      node.addChild(this._parseContainerQueryInParens());\n    } else {\n      node.addChild(this._parseContainerQueryInParens());\n      if (this.peekIdent(\"and\")) {\n        while (this.acceptIdent(\"and\")) {\n          node.addChild(this._parseContainerQueryInParens());\n        }\n      } else if (this.peekIdent(\"or\")) {\n        while (this.acceptIdent(\"or\")) {\n          node.addChild(this._parseContainerQueryInParens());\n        }\n      }\n    }\n    return this.finish(node);\n  }\n  _parseContainerQueryInParens() {\n    const node = this.create(Node);\n    if (this.accept(TokenType.ParenthesisL)) {\n      if (this.peekIdent(\"not\") || this.peek(TokenType.ParenthesisL)) {\n        node.addChild(this._parseContainerQuery());\n      } else {\n        node.addChild(this._parseMediaFeature());\n      }\n      if (!this.accept(TokenType.ParenthesisR)) {\n        return this.finish(node, ParseError.RightParenthesisExpected, [], [TokenType.CurlyL]);\n      }\n    } else if (this.acceptIdent(\"style\")) {\n      if (this.hasWhitespace() || !this.accept(TokenType.ParenthesisL)) {\n        return this.finish(node, ParseError.LeftParenthesisExpected, [], [TokenType.CurlyL]);\n      }\n      node.addChild(this._parseStyleQuery());\n      if (!this.accept(TokenType.ParenthesisR)) {\n        return this.finish(node, ParseError.RightParenthesisExpected, [], [TokenType.CurlyL]);\n      }\n    } else {\n      return this.finish(node, ParseError.LeftParenthesisExpected, [], [TokenType.CurlyL]);\n    }\n    return this.finish(node);\n  }\n  _parseStyleQuery() {\n    const node = this.create(Node);\n    if (this.acceptIdent(\"not\")) {\n      node.addChild(this._parseStyleInParens());\n    } else if (this.peek(TokenType.ParenthesisL)) {\n      node.addChild(this._parseStyleInParens());\n      if (this.peekIdent(\"and\")) {\n        while (this.acceptIdent(\"and\")) {\n          node.addChild(this._parseStyleInParens());\n        }\n      } else if (this.peekIdent(\"or\")) {\n        while (this.acceptIdent(\"or\")) {\n          node.addChild(this._parseStyleInParens());\n        }\n      }\n    } else {\n      node.addChild(this._parseDeclaration([TokenType.ParenthesisR]));\n    }\n    return this.finish(node);\n  }\n  _parseStyleInParens() {\n    const node = this.create(Node);\n    if (this.accept(TokenType.ParenthesisL)) {\n      node.addChild(this._parseStyleQuery());\n      if (!this.accept(TokenType.ParenthesisR)) {\n        return this.finish(node, ParseError.RightParenthesisExpected, [], [TokenType.CurlyL]);\n      }\n    } else {\n      return this.finish(node, ParseError.LeftParenthesisExpected, [], [TokenType.CurlyL]);\n    }\n    return this.finish(node);\n  }\n  // https://www.w3.org/TR/css-syntax-3/#consume-an-at-rule\n  _parseUnknownAtRule() {\n    if (!this.peek(TokenType.AtKeyword)) {\n      return null;\n    }\n    const node = this.create(UnknownAtRule);\n    node.addChild(this._parseUnknownAtRuleName());\n    const isTopLevel = () => curlyDepth === 0 && parensDepth === 0 && bracketsDepth === 0;\n    let curlyLCount = 0;\n    let curlyDepth = 0;\n    let parensDepth = 0;\n    let bracketsDepth = 0;\n    done:\n      while (true) {\n        switch (this.token.type) {\n          case TokenType.SemiColon:\n            if (isTopLevel()) {\n              break done;\n            }\n            break;\n          case TokenType.EOF:\n            if (curlyDepth > 0) {\n              return this.finish(node, ParseError.RightCurlyExpected);\n            } else if (bracketsDepth > 0) {\n              return this.finish(node, ParseError.RightSquareBracketExpected);\n            } else if (parensDepth > 0) {\n              return this.finish(node, ParseError.RightParenthesisExpected);\n            } else {\n              return this.finish(node);\n            }\n          case TokenType.CurlyL:\n            curlyLCount++;\n            curlyDepth++;\n            break;\n          case TokenType.CurlyR:\n            curlyDepth--;\n            if (curlyLCount > 0 && curlyDepth === 0) {\n              this.consumeToken();\n              if (bracketsDepth > 0) {\n                return this.finish(node, ParseError.RightSquareBracketExpected);\n              } else if (parensDepth > 0) {\n                return this.finish(node, ParseError.RightParenthesisExpected);\n              }\n              break done;\n            }\n            if (curlyDepth < 0) {\n              if (parensDepth === 0 && bracketsDepth === 0) {\n                break done;\n              }\n              return this.finish(node, ParseError.LeftCurlyExpected);\n            }\n            break;\n          case TokenType.ParenthesisL:\n            parensDepth++;\n            break;\n          case TokenType.ParenthesisR:\n            parensDepth--;\n            if (parensDepth < 0) {\n              return this.finish(node, ParseError.LeftParenthesisExpected);\n            }\n            break;\n          case TokenType.BracketL:\n            bracketsDepth++;\n            break;\n          case TokenType.BracketR:\n            bracketsDepth--;\n            if (bracketsDepth < 0) {\n              return this.finish(node, ParseError.LeftSquareBracketExpected);\n            }\n            break;\n        }\n        this.consumeToken();\n      }\n    return node;\n  }\n  _parseUnknownAtRuleName() {\n    const node = this.create(Node);\n    if (this.accept(TokenType.AtKeyword)) {\n      return this.finish(node);\n    }\n    return node;\n  }\n  _parseOperator() {\n    if (this.peekDelim(\"/\") || this.peekDelim(\"*\") || this.peekDelim(\"+\") || this.peekDelim(\"-\") || this.peek(TokenType.Dashmatch) || this.peek(TokenType.Includes) || this.peek(TokenType.SubstringOperator) || this.peek(TokenType.PrefixOperator) || this.peek(TokenType.SuffixOperator) || this.peekDelim(\"=\")) {\n      const node = this.createNode(NodeType.Operator);\n      this.consumeToken();\n      return this.finish(node);\n    } else {\n      return null;\n    }\n  }\n  _parseUnaryOperator() {\n    if (!this.peekDelim(\"+\") && !this.peekDelim(\"-\")) {\n      return null;\n    }\n    const node = this.create(Node);\n    this.consumeToken();\n    return this.finish(node);\n  }\n  _parseCombinator() {\n    if (this.peekDelim(\">\")) {\n      const node = this.create(Node);\n      this.consumeToken();\n      const mark = this.mark();\n      if (!this.hasWhitespace() && this.acceptDelim(\">\")) {\n        if (!this.hasWhitespace() && this.acceptDelim(\">\")) {\n          node.type = NodeType.SelectorCombinatorShadowPiercingDescendant;\n          return this.finish(node);\n        }\n        this.restoreAtMark(mark);\n      }\n      node.type = NodeType.SelectorCombinatorParent;\n      return this.finish(node);\n    } else if (this.peekDelim(\"+\")) {\n      const node = this.create(Node);\n      this.consumeToken();\n      node.type = NodeType.SelectorCombinatorSibling;\n      return this.finish(node);\n    } else if (this.peekDelim(\"~\")) {\n      const node = this.create(Node);\n      this.consumeToken();\n      node.type = NodeType.SelectorCombinatorAllSiblings;\n      return this.finish(node);\n    } else if (this.peekDelim(\"/\")) {\n      const node = this.create(Node);\n      this.consumeToken();\n      const mark = this.mark();\n      if (!this.hasWhitespace() && this.acceptIdent(\"deep\") && !this.hasWhitespace() && this.acceptDelim(\"/\")) {\n        node.type = NodeType.SelectorCombinatorShadowPiercingDescendant;\n        return this.finish(node);\n      }\n      this.restoreAtMark(mark);\n    }\n    return null;\n  }\n  _parseSimpleSelector() {\n    const node = this.create(SimpleSelector);\n    let c = 0;\n    if (node.addChild(this._parseElementName() || this._parseNestingSelector())) {\n      c++;\n    }\n    while ((c === 0 || !this.hasWhitespace()) && node.addChild(this._parseSimpleSelectorBody())) {\n      c++;\n    }\n    return c > 0 ? this.finish(node) : null;\n  }\n  _parseNestingSelector() {\n    if (this.peekDelim(\"&\")) {\n      const node = this.createNode(NodeType.SelectorCombinator);\n      this.consumeToken();\n      return this.finish(node);\n    }\n    return null;\n  }\n  _parseSimpleSelectorBody() {\n    return this._parsePseudo() || this._parseHash() || this._parseClass() || this._parseAttrib();\n  }\n  _parseSelectorIdent() {\n    return this._parseIdent();\n  }\n  _parseHash() {\n    if (!this.peek(TokenType.Hash) && !this.peekDelim(\"#\")) {\n      return null;\n    }\n    const node = this.createNode(NodeType.IdentifierSelector);\n    if (this.acceptDelim(\"#\")) {\n      if (this.hasWhitespace() || !node.addChild(this._parseSelectorIdent())) {\n        return this.finish(node, ParseError.IdentifierExpected);\n      }\n    } else {\n      this.consumeToken();\n    }\n    return this.finish(node);\n  }\n  _parseClass() {\n    if (!this.peekDelim(\".\")) {\n      return null;\n    }\n    const node = this.createNode(NodeType.ClassSelector);\n    this.consumeToken();\n    if (this.hasWhitespace() || !node.addChild(this._parseSelectorIdent())) {\n      return this.finish(node, ParseError.IdentifierExpected);\n    }\n    return this.finish(node);\n  }\n  _parseElementName() {\n    const pos = this.mark();\n    const node = this.createNode(NodeType.ElementNameSelector);\n    node.addChild(this._parseNamespacePrefix());\n    if (!node.addChild(this._parseSelectorIdent()) && !this.acceptDelim(\"*\")) {\n      this.restoreAtMark(pos);\n      return null;\n    }\n    return this.finish(node);\n  }\n  _parseNamespacePrefix() {\n    const pos = this.mark();\n    const node = this.createNode(NodeType.NamespacePrefix);\n    if (!node.addChild(this._parseIdent()) && !this.acceptDelim(\"*\")) {\n    }\n    if (!this.acceptDelim(\"|\")) {\n      this.restoreAtMark(pos);\n      return null;\n    }\n    return this.finish(node);\n  }\n  _parseAttrib() {\n    if (!this.peek(TokenType.BracketL)) {\n      return null;\n    }\n    const node = this.create(AttributeSelector);\n    this.consumeToken();\n    node.setNamespacePrefix(this._parseNamespacePrefix());\n    if (!node.setIdentifier(this._parseIdent())) {\n      return this.finish(node, ParseError.IdentifierExpected);\n    }\n    if (node.setOperator(this._parseOperator())) {\n      node.setValue(this._parseBinaryExpr());\n      this.acceptIdent(\"i\");\n      this.acceptIdent(\"s\");\n    }\n    if (!this.accept(TokenType.BracketR)) {\n      return this.finish(node, ParseError.RightSquareBracketExpected);\n    }\n    return this.finish(node);\n  }\n  _parsePseudo() {\n    const node = this._tryParsePseudoIdentifier();\n    if (node) {\n      if (!this.hasWhitespace() && this.accept(TokenType.ParenthesisL)) {\n        const tryAsSelector = () => {\n          const selectors = this.create(Node);\n          if (!selectors.addChild(this._parseSelector(true))) {\n            return null;\n          }\n          while (this.accept(TokenType.Comma) && selectors.addChild(this._parseSelector(true))) {\n          }\n          if (this.peek(TokenType.ParenthesisR)) {\n            return this.finish(selectors);\n          }\n          return null;\n        };\n        let hasSelector = node.addChild(this.try(tryAsSelector));\n        if (!hasSelector) {\n          if (node.addChild(this._parseBinaryExpr()) && this.acceptIdent(\"of\") && !node.addChild(this.try(tryAsSelector))) {\n            return this.finish(node, ParseError.SelectorExpected);\n          }\n        }\n        if (!this.accept(TokenType.ParenthesisR)) {\n          return this.finish(node, ParseError.RightParenthesisExpected);\n        }\n      }\n      return this.finish(node);\n    }\n    return null;\n  }\n  _tryParsePseudoIdentifier() {\n    if (!this.peek(TokenType.Colon)) {\n      return null;\n    }\n    const pos = this.mark();\n    const node = this.createNode(NodeType.PseudoSelector);\n    this.consumeToken();\n    if (this.hasWhitespace()) {\n      this.restoreAtMark(pos);\n      return null;\n    }\n    this.accept(TokenType.Colon);\n    if (this.hasWhitespace() || !node.addChild(this._parseIdent())) {\n      return this.finish(node, ParseError.IdentifierExpected);\n    }\n    return this.finish(node);\n  }\n  _tryParsePrio() {\n    const mark = this.mark();\n    const prio = this._parsePrio();\n    if (prio) {\n      return prio;\n    }\n    this.restoreAtMark(mark);\n    return null;\n  }\n  _parsePrio() {\n    if (!this.peek(TokenType.Exclamation)) {\n      return null;\n    }\n    const node = this.createNode(NodeType.Prio);\n    if (this.accept(TokenType.Exclamation) && this.acceptIdent(\"important\")) {\n      return this.finish(node);\n    }\n    return null;\n  }\n  _parseExpr(stopOnComma = false) {\n    const node = this.create(Expression);\n    if (!node.addChild(this._parseBinaryExpr())) {\n      return null;\n    }\n    while (true) {\n      if (this.peek(TokenType.Comma)) {\n        if (stopOnComma) {\n          return this.finish(node);\n        }\n        this.consumeToken();\n      }\n      if (!node.addChild(this._parseBinaryExpr())) {\n        break;\n      }\n    }\n    return this.finish(node);\n  }\n  _parseUnicodeRange() {\n    if (!this.peekIdent(\"u\")) {\n      return null;\n    }\n    const node = this.create(UnicodeRange);\n    if (!this.acceptUnicodeRange()) {\n      return null;\n    }\n    return this.finish(node);\n  }\n  _parseNamedLine() {\n    if (!this.peek(TokenType.BracketL)) {\n      return null;\n    }\n    const node = this.createNode(NodeType.GridLine);\n    this.consumeToken();\n    while (node.addChild(this._parseIdent())) {\n    }\n    if (!this.accept(TokenType.BracketR)) {\n      return this.finish(node, ParseError.RightSquareBracketExpected);\n    }\n    return this.finish(node);\n  }\n  _parseBinaryExpr(preparsedLeft, preparsedOper) {\n    let node = this.create(BinaryExpression);\n    if (!node.setLeft(preparsedLeft || this._parseTerm())) {\n      return null;\n    }\n    if (!node.setOperator(preparsedOper || this._parseOperator())) {\n      return this.finish(node);\n    }\n    if (!node.setRight(this._parseTerm())) {\n      return this.finish(node, ParseError.TermExpected);\n    }\n    node = this.finish(node);\n    const operator = this._parseOperator();\n    if (operator) {\n      node = this._parseBinaryExpr(node, operator);\n    }\n    return this.finish(node);\n  }\n  _parseTerm() {\n    let node = this.create(Term);\n    node.setOperator(this._parseUnaryOperator());\n    if (node.setExpression(this._parseTermExpression())) {\n      return this.finish(node);\n    }\n    return null;\n  }\n  _parseTermExpression() {\n    return this._parseURILiteral() || // url before function\n    this._parseUnicodeRange() || this._parseFunction() || // function before ident\n    this._parseIdent() || this._parseStringLiteral() || this._parseNumeric() || this._parseHexColor() || this._parseOperation() || this._parseNamedLine();\n  }\n  _parseOperation() {\n    if (!this.peek(TokenType.ParenthesisL)) {\n      return null;\n    }\n    const node = this.create(Node);\n    this.consumeToken();\n    node.addChild(this._parseExpr());\n    if (!this.accept(TokenType.ParenthesisR)) {\n      return this.finish(node, ParseError.RightParenthesisExpected);\n    }\n    return this.finish(node);\n  }\n  _parseNumeric() {\n    if (this.peek(TokenType.Num) || this.peek(TokenType.Percentage) || this.peek(TokenType.Resolution) || this.peek(TokenType.Length) || this.peek(TokenType.EMS) || this.peek(TokenType.EXS) || this.peek(TokenType.Angle) || this.peek(TokenType.Time) || this.peek(TokenType.Dimension) || this.peek(TokenType.ContainerQueryLength) || this.peek(TokenType.Freq)) {\n      const node = this.create(NumericValue);\n      this.consumeToken();\n      return this.finish(node);\n    }\n    return null;\n  }\n  _parseStringLiteral() {\n    if (!this.peek(TokenType.String) && !this.peek(TokenType.BadString)) {\n      return null;\n    }\n    const node = this.createNode(NodeType.StringLiteral);\n    this.consumeToken();\n    return this.finish(node);\n  }\n  _parseURILiteral() {\n    if (!this.peekRegExp(TokenType.Ident, /^url(-prefix)?$/i)) {\n      return null;\n    }\n    const pos = this.mark();\n    const node = this.createNode(NodeType.URILiteral);\n    this.accept(TokenType.Ident);\n    if (this.hasWhitespace() || !this.peek(TokenType.ParenthesisL)) {\n      this.restoreAtMark(pos);\n      return null;\n    }\n    this.scanner.inURL = true;\n    this.consumeToken();\n    node.addChild(this._parseURLArgument());\n    this.scanner.inURL = false;\n    if (!this.accept(TokenType.ParenthesisR)) {\n      return this.finish(node, ParseError.RightParenthesisExpected);\n    }\n    return this.finish(node);\n  }\n  _parseURLArgument() {\n    const node = this.create(Node);\n    if (!this.accept(TokenType.String) && !this.accept(TokenType.BadString) && !this.acceptUnquotedString()) {\n      return null;\n    }\n    return this.finish(node);\n  }\n  _parseIdent(referenceTypes) {\n    if (!this.peek(TokenType.Ident)) {\n      return null;\n    }\n    const node = this.create(Identifier);\n    if (referenceTypes) {\n      node.referenceTypes = referenceTypes;\n    }\n    node.isCustomProperty = this.peekRegExp(TokenType.Ident, /^--/);\n    this.consumeToken();\n    return this.finish(node);\n  }\n  _parseFunction() {\n    const pos = this.mark();\n    const node = this.create(Function);\n    if (!node.setIdentifier(this._parseFunctionIdentifier())) {\n      return null;\n    }\n    if (this.hasWhitespace() || !this.accept(TokenType.ParenthesisL)) {\n      this.restoreAtMark(pos);\n      return null;\n    }\n    if (node.getArguments().addChild(this._parseFunctionArgument())) {\n      while (this.accept(TokenType.Comma)) {\n        if (this.peek(TokenType.ParenthesisR)) {\n          break;\n        }\n        if (!node.getArguments().addChild(this._parseFunctionArgument())) {\n          this.markError(node, ParseError.ExpressionExpected);\n        }\n      }\n    }\n    if (!this.accept(TokenType.ParenthesisR)) {\n      return this.finish(node, ParseError.RightParenthesisExpected);\n    }\n    return this.finish(node);\n  }\n  _parseFunctionIdentifier() {\n    if (!this.peek(TokenType.Ident)) {\n      return null;\n    }\n    const node = this.create(Identifier);\n    node.referenceTypes = [ReferenceType.Function];\n    if (this.acceptIdent(\"progid\")) {\n      if (this.accept(TokenType.Colon)) {\n        while (this.accept(TokenType.Ident) && this.acceptDelim(\".\")) {\n        }\n      }\n      return this.finish(node);\n    }\n    this.consumeToken();\n    return this.finish(node);\n  }\n  _parseFunctionArgument() {\n    const node = this.create(FunctionArgument);\n    if (node.setValue(this._parseExpr(true))) {\n      return this.finish(node);\n    }\n    return null;\n  }\n  _parseHexColor() {\n    if (this.peekRegExp(TokenType.Hash, /^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$/g)) {\n      const node = this.create(HexColorValue);\n      this.consumeToken();\n      return this.finish(node);\n    } else {\n      return null;\n    }\n  }\n};\n\n// node_modules/vscode-css-languageservice/lib/esm/utils/arrays.js\nfunction findFirst(array, p) {\n  let low = 0, high = array.length;\n  if (high === 0) {\n    return 0;\n  }\n  while (low < high) {\n    let mid = Math.floor((low + high) / 2);\n    if (p(array[mid])) {\n      high = mid;\n    } else {\n      low = mid + 1;\n    }\n  }\n  return low;\n}\nfunction includes(array, item) {\n  return array.indexOf(item) !== -1;\n}\nfunction union(...arrays) {\n  const result = [];\n  for (const array of arrays) {\n    for (const item of array) {\n      if (!includes(result, item)) {\n        result.push(item);\n      }\n    }\n  }\n  return result;\n}\n\n// node_modules/vscode-css-languageservice/lib/esm/parser/cssSymbolScope.js\nvar Scope = class {\n  constructor(offset, length) {\n    this.offset = offset;\n    this.length = length;\n    this.symbols = [];\n    this.parent = null;\n    this.children = [];\n  }\n  addChild(scope) {\n    this.children.push(scope);\n    scope.setParent(this);\n  }\n  setParent(scope) {\n    this.parent = scope;\n  }\n  findScope(offset, length = 0) {\n    if (this.offset <= offset && this.offset + this.length > offset + length || this.offset === offset && this.length === length) {\n      return this.findInScope(offset, length);\n    }\n    return null;\n  }\n  findInScope(offset, length = 0) {\n    const end = offset + length;\n    const idx = findFirst(this.children, (s) => s.offset > end);\n    if (idx === 0) {\n      return this;\n    }\n    const res = this.children[idx - 1];\n    if (res.offset <= offset && res.offset + res.length >= offset + length) {\n      return res.findInScope(offset, length);\n    }\n    return this;\n  }\n  addSymbol(symbol) {\n    this.symbols.push(symbol);\n  }\n  getSymbol(name, type) {\n    for (let index = 0; index < this.symbols.length; index++) {\n      const symbol = this.symbols[index];\n      if (symbol.name === name && symbol.type === type) {\n        return symbol;\n      }\n    }\n    return null;\n  }\n  getSymbols() {\n    return this.symbols;\n  }\n};\nvar GlobalScope = class extends Scope {\n  constructor() {\n    super(0, Number.MAX_VALUE);\n  }\n};\nvar Symbol2 = class {\n  constructor(name, value, node, type) {\n    this.name = name;\n    this.value = value;\n    this.node = node;\n    this.type = type;\n  }\n};\nvar ScopeBuilder = class {\n  constructor(scope) {\n    this.scope = scope;\n  }\n  addSymbol(node, name, value, type) {\n    if (node.offset !== -1) {\n      const current = this.scope.findScope(node.offset, node.length);\n      if (current) {\n        current.addSymbol(new Symbol2(name, value, node, type));\n      }\n    }\n  }\n  addScope(node) {\n    if (node.offset !== -1) {\n      const current = this.scope.findScope(node.offset, node.length);\n      if (current && (current.offset !== node.offset || current.length !== node.length)) {\n        const newScope = new Scope(node.offset, node.length);\n        current.addChild(newScope);\n        return newScope;\n      }\n      return current;\n    }\n    return null;\n  }\n  addSymbolToChildScope(scopeNode, node, name, value, type) {\n    if (scopeNode && scopeNode.offset !== -1) {\n      const current = this.addScope(scopeNode);\n      if (current) {\n        current.addSymbol(new Symbol2(name, value, node, type));\n      }\n    }\n  }\n  visitNode(node) {\n    switch (node.type) {\n      case NodeType.Keyframe:\n        this.addSymbol(node, node.getName(), void 0, ReferenceType.Keyframe);\n        return true;\n      case NodeType.CustomPropertyDeclaration:\n        return this.visitCustomPropertyDeclarationNode(node);\n      case NodeType.VariableDeclaration:\n        return this.visitVariableDeclarationNode(node);\n      case NodeType.Ruleset:\n        return this.visitRuleSet(node);\n      case NodeType.MixinDeclaration:\n        this.addSymbol(node, node.getName(), void 0, ReferenceType.Mixin);\n        return true;\n      case NodeType.FunctionDeclaration:\n        this.addSymbol(node, node.getName(), void 0, ReferenceType.Function);\n        return true;\n      case NodeType.FunctionParameter: {\n        return this.visitFunctionParameterNode(node);\n      }\n      case NodeType.Declarations:\n        this.addScope(node);\n        return true;\n      case NodeType.For:\n        const forNode = node;\n        const scopeNode = forNode.getDeclarations();\n        if (scopeNode && forNode.variable) {\n          this.addSymbolToChildScope(scopeNode, forNode.variable, forNode.variable.getName(), void 0, ReferenceType.Variable);\n        }\n        return true;\n      case NodeType.Each: {\n        const eachNode = node;\n        const scopeNode2 = eachNode.getDeclarations();\n        if (scopeNode2) {\n          const variables = eachNode.getVariables().getChildren();\n          for (const variable of variables) {\n            this.addSymbolToChildScope(scopeNode2, variable, variable.getName(), void 0, ReferenceType.Variable);\n          }\n        }\n        return true;\n      }\n    }\n    return true;\n  }\n  visitRuleSet(node) {\n    const current = this.scope.findScope(node.offset, node.length);\n    if (current) {\n      for (const child of node.getSelectors().getChildren()) {\n        if (child instanceof Selector) {\n          if (child.getChildren().length === 1) {\n            current.addSymbol(new Symbol2(child.getChild(0).getText(), void 0, child, ReferenceType.Rule));\n          }\n        }\n      }\n    }\n    return true;\n  }\n  visitVariableDeclarationNode(node) {\n    const value = node.getValue() ? node.getValue().getText() : void 0;\n    this.addSymbol(node, node.getName(), value, ReferenceType.Variable);\n    return true;\n  }\n  visitFunctionParameterNode(node) {\n    const scopeNode = node.getParent().getDeclarations();\n    if (scopeNode) {\n      const valueNode = node.getDefaultValue();\n      const value = valueNode ? valueNode.getText() : void 0;\n      this.addSymbolToChildScope(scopeNode, node, node.getName(), value, ReferenceType.Variable);\n    }\n    return true;\n  }\n  visitCustomPropertyDeclarationNode(node) {\n    const value = node.getValue() ? node.getValue().getText() : \"\";\n    this.addCSSVariable(node.getProperty(), node.getProperty().getName(), value, ReferenceType.Variable);\n    return true;\n  }\n  addCSSVariable(node, name, value, type) {\n    if (node.offset !== -1) {\n      this.scope.addSymbol(new Symbol2(name, value, node, type));\n    }\n  }\n};\nvar Symbols = class {\n  constructor(node) {\n    this.global = new GlobalScope();\n    node.acceptVisitor(new ScopeBuilder(this.global));\n  }\n  findSymbolsAtOffset(offset, referenceType) {\n    let scope = this.global.findScope(offset, 0);\n    const result = [];\n    const names = {};\n    while (scope) {\n      const symbols = scope.getSymbols();\n      for (let i = 0; i < symbols.length; i++) {\n        const symbol = symbols[i];\n        if (symbol.type === referenceType && !names[symbol.name]) {\n          result.push(symbol);\n          names[symbol.name] = true;\n        }\n      }\n      scope = scope.parent;\n    }\n    return result;\n  }\n  internalFindSymbol(node, referenceTypes) {\n    let scopeNode = node;\n    if (node.parent instanceof FunctionParameter && node.parent.getParent() instanceof BodyDeclaration) {\n      scopeNode = node.parent.getParent().getDeclarations();\n    }\n    if (node.parent instanceof FunctionArgument && node.parent.getParent() instanceof Function) {\n      const funcId = node.parent.getParent().getIdentifier();\n      if (funcId) {\n        const functionSymbol = this.internalFindSymbol(funcId, [ReferenceType.Function]);\n        if (functionSymbol) {\n          scopeNode = functionSymbol.node.getDeclarations();\n        }\n      }\n    }\n    if (!scopeNode) {\n      return null;\n    }\n    const name = node.getText();\n    let scope = this.global.findScope(scopeNode.offset, scopeNode.length);\n    while (scope) {\n      for (let index = 0; index < referenceTypes.length; index++) {\n        const type = referenceTypes[index];\n        const symbol = scope.getSymbol(name, type);\n        if (symbol) {\n          return symbol;\n        }\n      }\n      scope = scope.parent;\n    }\n    return null;\n  }\n  evaluateReferenceTypes(node) {\n    if (node instanceof Identifier) {\n      const referenceTypes = node.referenceTypes;\n      if (referenceTypes) {\n        return referenceTypes;\n      } else {\n        if (node.isCustomProperty) {\n          return [ReferenceType.Variable];\n        }\n        const decl = getParentDeclaration(node);\n        if (decl) {\n          const propertyName = decl.getNonPrefixedPropertyName();\n          if ((propertyName === \"animation\" || propertyName === \"animation-name\") && decl.getValue() && decl.getValue().offset === node.offset) {\n            return [ReferenceType.Keyframe];\n          }\n        }\n      }\n    } else if (node instanceof Variable) {\n      return [ReferenceType.Variable];\n    }\n    const selector = node.findAParent(NodeType.Selector, NodeType.ExtendsReference);\n    if (selector) {\n      return [ReferenceType.Rule];\n    }\n    return null;\n  }\n  findSymbolFromNode(node) {\n    if (!node) {\n      return null;\n    }\n    while (node.type === NodeType.Interpolation) {\n      node = node.getParent();\n    }\n    const referenceTypes = this.evaluateReferenceTypes(node);\n    if (referenceTypes) {\n      return this.internalFindSymbol(node, referenceTypes);\n    }\n    return null;\n  }\n  matchesSymbol(node, symbol) {\n    if (!node) {\n      return false;\n    }\n    while (node.type === NodeType.Interpolation) {\n      node = node.getParent();\n    }\n    if (!node.matches(symbol.name)) {\n      return false;\n    }\n    const referenceTypes = this.evaluateReferenceTypes(node);\n    if (!referenceTypes || referenceTypes.indexOf(symbol.type) === -1) {\n      return false;\n    }\n    const nodeSymbol = this.internalFindSymbol(node, referenceTypes);\n    return nodeSymbol === symbol;\n  }\n  findSymbol(name, type, offset) {\n    let scope = this.global.findScope(offset);\n    while (scope) {\n      const symbol = scope.getSymbol(name, type);\n      if (symbol) {\n        return symbol;\n      }\n      scope = scope.parent;\n    }\n    return null;\n  }\n};\n\n// node_modules/vscode-uri/lib/esm/index.mjs\nvar LIB;\n(() => {\n  \"use strict\";\n  var t2 = { 470: (t3) => {\n    function e2(t4) {\n      if (\"string\" != typeof t4)\n        throw new TypeError(\"Path must be a string. Received \" + JSON.stringify(t4));\n    }\n    function r2(t4, e3) {\n      for (var r3, n3 = \"\", i = 0, o = -1, s = 0, h = 0; h <= t4.length; ++h) {\n        if (h < t4.length)\n          r3 = t4.charCodeAt(h);\n        else {\n          if (47 === r3)\n            break;\n          r3 = 47;\n        }\n        if (47 === r3) {\n          if (o === h - 1 || 1 === s)\n            ;\n          else if (o !== h - 1 && 2 === s) {\n            if (n3.length < 2 || 2 !== i || 46 !== n3.charCodeAt(n3.length - 1) || 46 !== n3.charCodeAt(n3.length - 2)) {\n              if (n3.length > 2) {\n                var a2 = n3.lastIndexOf(\"/\");\n                if (a2 !== n3.length - 1) {\n                  -1 === a2 ? (n3 = \"\", i = 0) : i = (n3 = n3.slice(0, a2)).length - 1 - n3.lastIndexOf(\"/\"), o = h, s = 0;\n                  continue;\n                }\n              } else if (2 === n3.length || 1 === n3.length) {\n                n3 = \"\", i = 0, o = h, s = 0;\n                continue;\n              }\n            }\n            e3 && (n3.length > 0 ? n3 += \"/..\" : n3 = \"..\", i = 2);\n          } else\n            n3.length > 0 ? n3 += \"/\" + t4.slice(o + 1, h) : n3 = t4.slice(o + 1, h), i = h - o - 1;\n          o = h, s = 0;\n        } else\n          46 === r3 && -1 !== s ? ++s : s = -1;\n      }\n      return n3;\n    }\n    var n2 = { resolve: function() {\n      for (var t4, n3 = \"\", i = false, o = arguments.length - 1; o >= -1 && !i; o--) {\n        var s;\n        o >= 0 ? s = arguments[o] : (void 0 === t4 && (t4 = process.cwd()), s = t4), e2(s), 0 !== s.length && (n3 = s + \"/\" + n3, i = 47 === s.charCodeAt(0));\n      }\n      return n3 = r2(n3, !i), i ? n3.length > 0 ? \"/\" + n3 : \"/\" : n3.length > 0 ? n3 : \".\";\n    }, normalize: function(t4) {\n      if (e2(t4), 0 === t4.length)\n        return \".\";\n      var n3 = 47 === t4.charCodeAt(0), i = 47 === t4.charCodeAt(t4.length - 1);\n      return 0 !== (t4 = r2(t4, !n3)).length || n3 || (t4 = \".\"), t4.length > 0 && i && (t4 += \"/\"), n3 ? \"/\" + t4 : t4;\n    }, isAbsolute: function(t4) {\n      return e2(t4), t4.length > 0 && 47 === t4.charCodeAt(0);\n    }, join: function() {\n      if (0 === arguments.length)\n        return \".\";\n      for (var t4, r3 = 0; r3 < arguments.length; ++r3) {\n        var i = arguments[r3];\n        e2(i), i.length > 0 && (void 0 === t4 ? t4 = i : t4 += \"/\" + i);\n      }\n      return void 0 === t4 ? \".\" : n2.normalize(t4);\n    }, relative: function(t4, r3) {\n      if (e2(t4), e2(r3), t4 === r3)\n        return \"\";\n      if ((t4 = n2.resolve(t4)) === (r3 = n2.resolve(r3)))\n        return \"\";\n      for (var i = 1; i < t4.length && 47 === t4.charCodeAt(i); ++i)\n        ;\n      for (var o = t4.length, s = o - i, h = 1; h < r3.length && 47 === r3.charCodeAt(h); ++h)\n        ;\n      for (var a2 = r3.length - h, c = s < a2 ? s : a2, f2 = -1, u = 0; u <= c; ++u) {\n        if (u === c) {\n          if (a2 > c) {\n            if (47 === r3.charCodeAt(h + u))\n              return r3.slice(h + u + 1);\n            if (0 === u)\n              return r3.slice(h + u);\n          } else\n            s > c && (47 === t4.charCodeAt(i + u) ? f2 = u : 0 === u && (f2 = 0));\n          break;\n        }\n        var l = t4.charCodeAt(i + u);\n        if (l !== r3.charCodeAt(h + u))\n          break;\n        47 === l && (f2 = u);\n      }\n      var g = \"\";\n      for (u = i + f2 + 1; u <= o; ++u)\n        u !== o && 47 !== t4.charCodeAt(u) || (0 === g.length ? g += \"..\" : g += \"/..\");\n      return g.length > 0 ? g + r3.slice(h + f2) : (h += f2, 47 === r3.charCodeAt(h) && ++h, r3.slice(h));\n    }, _makeLong: function(t4) {\n      return t4;\n    }, dirname: function(t4) {\n      if (e2(t4), 0 === t4.length)\n        return \".\";\n      for (var r3 = t4.charCodeAt(0), n3 = 47 === r3, i = -1, o = true, s = t4.length - 1; s >= 1; --s)\n        if (47 === (r3 = t4.charCodeAt(s))) {\n          if (!o) {\n            i = s;\n            break;\n          }\n        } else\n          o = false;\n      return -1 === i ? n3 ? \"/\" : \".\" : n3 && 1 === i ? \"//\" : t4.slice(0, i);\n    }, basename: function(t4, r3) {\n      if (void 0 !== r3 && \"string\" != typeof r3)\n        throw new TypeError('\"ext\" argument must be a string');\n      e2(t4);\n      var n3, i = 0, o = -1, s = true;\n      if (void 0 !== r3 && r3.length > 0 && r3.length <= t4.length) {\n        if (r3.length === t4.length && r3 === t4)\n          return \"\";\n        var h = r3.length - 1, a2 = -1;\n        for (n3 = t4.length - 1; n3 >= 0; --n3) {\n          var c = t4.charCodeAt(n3);\n          if (47 === c) {\n            if (!s) {\n              i = n3 + 1;\n              break;\n            }\n          } else\n            -1 === a2 && (s = false, a2 = n3 + 1), h >= 0 && (c === r3.charCodeAt(h) ? -1 == --h && (o = n3) : (h = -1, o = a2));\n        }\n        return i === o ? o = a2 : -1 === o && (o = t4.length), t4.slice(i, o);\n      }\n      for (n3 = t4.length - 1; n3 >= 0; --n3)\n        if (47 === t4.charCodeAt(n3)) {\n          if (!s) {\n            i = n3 + 1;\n            break;\n          }\n        } else\n          -1 === o && (s = false, o = n3 + 1);\n      return -1 === o ? \"\" : t4.slice(i, o);\n    }, extname: function(t4) {\n      e2(t4);\n      for (var r3 = -1, n3 = 0, i = -1, o = true, s = 0, h = t4.length - 1; h >= 0; --h) {\n        var a2 = t4.charCodeAt(h);\n        if (47 !== a2)\n          -1 === i && (o = false, i = h + 1), 46 === a2 ? -1 === r3 ? r3 = h : 1 !== s && (s = 1) : -1 !== r3 && (s = -1);\n        else if (!o) {\n          n3 = h + 1;\n          break;\n        }\n      }\n      return -1 === r3 || -1 === i || 0 === s || 1 === s && r3 === i - 1 && r3 === n3 + 1 ? \"\" : t4.slice(r3, i);\n    }, format: function(t4) {\n      if (null === t4 || \"object\" != typeof t4)\n        throw new TypeError('The \"pathObject\" argument must be of type Object. Received type ' + typeof t4);\n      return function(t5, e3) {\n        var r3 = e3.dir || e3.root, n3 = e3.base || (e3.name || \"\") + (e3.ext || \"\");\n        return r3 ? r3 === e3.root ? r3 + n3 : r3 + \"/\" + n3 : n3;\n      }(0, t4);\n    }, parse: function(t4) {\n      e2(t4);\n      var r3 = { root: \"\", dir: \"\", base: \"\", ext: \"\", name: \"\" };\n      if (0 === t4.length)\n        return r3;\n      var n3, i = t4.charCodeAt(0), o = 47 === i;\n      o ? (r3.root = \"/\", n3 = 1) : n3 = 0;\n      for (var s = -1, h = 0, a2 = -1, c = true, f2 = t4.length - 1, u = 0; f2 >= n3; --f2)\n        if (47 !== (i = t4.charCodeAt(f2)))\n          -1 === a2 && (c = false, a2 = f2 + 1), 46 === i ? -1 === s ? s = f2 : 1 !== u && (u = 1) : -1 !== s && (u = -1);\n        else if (!c) {\n          h = f2 + 1;\n          break;\n        }\n      return -1 === s || -1 === a2 || 0 === u || 1 === u && s === a2 - 1 && s === h + 1 ? -1 !== a2 && (r3.base = r3.name = 0 === h && o ? t4.slice(1, a2) : t4.slice(h, a2)) : (0 === h && o ? (r3.name = t4.slice(1, s), r3.base = t4.slice(1, a2)) : (r3.name = t4.slice(h, s), r3.base = t4.slice(h, a2)), r3.ext = t4.slice(s, a2)), h > 0 ? r3.dir = t4.slice(0, h - 1) : o && (r3.dir = \"/\"), r3;\n    }, sep: \"/\", delimiter: \":\", win32: null, posix: null };\n    n2.posix = n2, t3.exports = n2;\n  } }, e = {};\n  function r(n2) {\n    var i = e[n2];\n    if (void 0 !== i)\n      return i.exports;\n    var o = e[n2] = { exports: {} };\n    return t2[n2](o, o.exports, r), o.exports;\n  }\n  r.d = (t3, e2) => {\n    for (var n2 in e2)\n      r.o(e2, n2) && !r.o(t3, n2) && Object.defineProperty(t3, n2, { enumerable: true, get: e2[n2] });\n  }, r.o = (t3, e2) => Object.prototype.hasOwnProperty.call(t3, e2), r.r = (t3) => {\n    \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t3, Symbol.toStringTag, { value: \"Module\" }), Object.defineProperty(t3, \"__esModule\", { value: true });\n  };\n  var n = {};\n  (() => {\n    let t3;\n    if (r.r(n), r.d(n, { URI: () => f2, Utils: () => P }), \"object\" == typeof process)\n      t3 = \"win32\" === process.platform;\n    else if (\"object\" == typeof navigator) {\n      let e3 = navigator.userAgent;\n      t3 = e3.indexOf(\"Windows\") >= 0;\n    }\n    const e2 = /^\\w[\\w\\d+.-]*$/, i = /^\\//, o = /^\\/\\//;\n    function s(t4, r2) {\n      if (!t4.scheme && r2)\n        throw new Error(`[UriError]: Scheme is missing: {scheme: \"\", authority: \"${t4.authority}\", path: \"${t4.path}\", query: \"${t4.query}\", fragment: \"${t4.fragment}\"}`);\n      if (t4.scheme && !e2.test(t4.scheme))\n        throw new Error(\"[UriError]: Scheme contains illegal characters.\");\n      if (t4.path) {\n        if (t4.authority) {\n          if (!i.test(t4.path))\n            throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash (\"/\") character');\n        } else if (o.test(t4.path))\n          throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")');\n      }\n    }\n    const h = \"\", a2 = \"/\", c = /^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/;\n    class f2 {\n      static isUri(t4) {\n        return t4 instanceof f2 || !!t4 && \"string\" == typeof t4.authority && \"string\" == typeof t4.fragment && \"string\" == typeof t4.path && \"string\" == typeof t4.query && \"string\" == typeof t4.scheme && \"string\" == typeof t4.fsPath && \"function\" == typeof t4.with && \"function\" == typeof t4.toString;\n      }\n      scheme;\n      authority;\n      path;\n      query;\n      fragment;\n      constructor(t4, e3, r2, n2, i2, o2 = false) {\n        \"object\" == typeof t4 ? (this.scheme = t4.scheme || h, this.authority = t4.authority || h, this.path = t4.path || h, this.query = t4.query || h, this.fragment = t4.fragment || h) : (this.scheme = /* @__PURE__ */ function(t5, e4) {\n          return t5 || e4 ? t5 : \"file\";\n        }(t4, o2), this.authority = e3 || h, this.path = function(t5, e4) {\n          switch (t5) {\n            case \"https\":\n            case \"http\":\n            case \"file\":\n              e4 ? e4[0] !== a2 && (e4 = a2 + e4) : e4 = a2;\n          }\n          return e4;\n        }(this.scheme, r2 || h), this.query = n2 || h, this.fragment = i2 || h, s(this, o2));\n      }\n      get fsPath() {\n        return m(this, false);\n      }\n      with(t4) {\n        if (!t4)\n          return this;\n        let { scheme: e3, authority: r2, path: n2, query: i2, fragment: o2 } = t4;\n        return void 0 === e3 ? e3 = this.scheme : null === e3 && (e3 = h), void 0 === r2 ? r2 = this.authority : null === r2 && (r2 = h), void 0 === n2 ? n2 = this.path : null === n2 && (n2 = h), void 0 === i2 ? i2 = this.query : null === i2 && (i2 = h), void 0 === o2 ? o2 = this.fragment : null === o2 && (o2 = h), e3 === this.scheme && r2 === this.authority && n2 === this.path && i2 === this.query && o2 === this.fragment ? this : new l(e3, r2, n2, i2, o2);\n      }\n      static parse(t4, e3 = false) {\n        const r2 = c.exec(t4);\n        return r2 ? new l(r2[2] || h, C(r2[4] || h), C(r2[5] || h), C(r2[7] || h), C(r2[9] || h), e3) : new l(h, h, h, h, h);\n      }\n      static file(e3) {\n        let r2 = h;\n        if (t3 && (e3 = e3.replace(/\\\\/g, a2)), e3[0] === a2 && e3[1] === a2) {\n          const t4 = e3.indexOf(a2, 2);\n          -1 === t4 ? (r2 = e3.substring(2), e3 = a2) : (r2 = e3.substring(2, t4), e3 = e3.substring(t4) || a2);\n        }\n        return new l(\"file\", r2, e3, h, h);\n      }\n      static from(t4) {\n        const e3 = new l(t4.scheme, t4.authority, t4.path, t4.query, t4.fragment);\n        return s(e3, true), e3;\n      }\n      toString(t4 = false) {\n        return y(this, t4);\n      }\n      toJSON() {\n        return this;\n      }\n      static revive(t4) {\n        if (t4) {\n          if (t4 instanceof f2)\n            return t4;\n          {\n            const e3 = new l(t4);\n            return e3._formatted = t4.external, e3._fsPath = t4._sep === u ? t4.fsPath : null, e3;\n          }\n        }\n        return t4;\n      }\n    }\n    const u = t3 ? 1 : void 0;\n    class l extends f2 {\n      _formatted = null;\n      _fsPath = null;\n      get fsPath() {\n        return this._fsPath || (this._fsPath = m(this, false)), this._fsPath;\n      }\n      toString(t4 = false) {\n        return t4 ? y(this, true) : (this._formatted || (this._formatted = y(this, false)), this._formatted);\n      }\n      toJSON() {\n        const t4 = { $mid: 1 };\n        return this._fsPath && (t4.fsPath = this._fsPath, t4._sep = u), this._formatted && (t4.external = this._formatted), this.path && (t4.path = this.path), this.scheme && (t4.scheme = this.scheme), this.authority && (t4.authority = this.authority), this.query && (t4.query = this.query), this.fragment && (t4.fragment = this.fragment), t4;\n      }\n    }\n    const g = { 58: \"%3A\", 47: \"%2F\", 63: \"%3F\", 35: \"%23\", 91: \"%5B\", 93: \"%5D\", 64: \"%40\", 33: \"%21\", 36: \"%24\", 38: \"%26\", 39: \"%27\", 40: \"%28\", 41: \"%29\", 42: \"%2A\", 43: \"%2B\", 44: \"%2C\", 59: \"%3B\", 61: \"%3D\", 32: \"%20\" };\n    function d(t4, e3, r2) {\n      let n2, i2 = -1;\n      for (let o2 = 0; o2 < t4.length; o2++) {\n        const s2 = t4.charCodeAt(o2);\n        if (s2 >= 97 && s2 <= 122 || s2 >= 65 && s2 <= 90 || s2 >= 48 && s2 <= 57 || 45 === s2 || 46 === s2 || 95 === s2 || 126 === s2 || e3 && 47 === s2 || r2 && 91 === s2 || r2 && 93 === s2 || r2 && 58 === s2)\n          -1 !== i2 && (n2 += encodeURIComponent(t4.substring(i2, o2)), i2 = -1), void 0 !== n2 && (n2 += t4.charAt(o2));\n        else {\n          void 0 === n2 && (n2 = t4.substr(0, o2));\n          const e4 = g[s2];\n          void 0 !== e4 ? (-1 !== i2 && (n2 += encodeURIComponent(t4.substring(i2, o2)), i2 = -1), n2 += e4) : -1 === i2 && (i2 = o2);\n        }\n      }\n      return -1 !== i2 && (n2 += encodeURIComponent(t4.substring(i2))), void 0 !== n2 ? n2 : t4;\n    }\n    function p(t4) {\n      let e3;\n      for (let r2 = 0; r2 < t4.length; r2++) {\n        const n2 = t4.charCodeAt(r2);\n        35 === n2 || 63 === n2 ? (void 0 === e3 && (e3 = t4.substr(0, r2)), e3 += g[n2]) : void 0 !== e3 && (e3 += t4[r2]);\n      }\n      return void 0 !== e3 ? e3 : t4;\n    }\n    function m(e3, r2) {\n      let n2;\n      return n2 = e3.authority && e3.path.length > 1 && \"file\" === e3.scheme ? `//${e3.authority}${e3.path}` : 47 === e3.path.charCodeAt(0) && (e3.path.charCodeAt(1) >= 65 && e3.path.charCodeAt(1) <= 90 || e3.path.charCodeAt(1) >= 97 && e3.path.charCodeAt(1) <= 122) && 58 === e3.path.charCodeAt(2) ? r2 ? e3.path.substr(1) : e3.path[1].toLowerCase() + e3.path.substr(2) : e3.path, t3 && (n2 = n2.replace(/\\//g, \"\\\\\")), n2;\n    }\n    function y(t4, e3) {\n      const r2 = e3 ? p : d;\n      let n2 = \"\", { scheme: i2, authority: o2, path: s2, query: h2, fragment: c2 } = t4;\n      if (i2 && (n2 += i2, n2 += \":\"), (o2 || \"file\" === i2) && (n2 += a2, n2 += a2), o2) {\n        let t5 = o2.indexOf(\"@\");\n        if (-1 !== t5) {\n          const e4 = o2.substr(0, t5);\n          o2 = o2.substr(t5 + 1), t5 = e4.lastIndexOf(\":\"), -1 === t5 ? n2 += r2(e4, false, false) : (n2 += r2(e4.substr(0, t5), false, false), n2 += \":\", n2 += r2(e4.substr(t5 + 1), false, true)), n2 += \"@\";\n        }\n        o2 = o2.toLowerCase(), t5 = o2.lastIndexOf(\":\"), -1 === t5 ? n2 += r2(o2, false, true) : (n2 += r2(o2.substr(0, t5), false, true), n2 += o2.substr(t5));\n      }\n      if (s2) {\n        if (s2.length >= 3 && 47 === s2.charCodeAt(0) && 58 === s2.charCodeAt(2)) {\n          const t5 = s2.charCodeAt(1);\n          t5 >= 65 && t5 <= 90 && (s2 = `/${String.fromCharCode(t5 + 32)}:${s2.substr(3)}`);\n        } else if (s2.length >= 2 && 58 === s2.charCodeAt(1)) {\n          const t5 = s2.charCodeAt(0);\n          t5 >= 65 && t5 <= 90 && (s2 = `${String.fromCharCode(t5 + 32)}:${s2.substr(2)}`);\n        }\n        n2 += r2(s2, true, false);\n      }\n      return h2 && (n2 += \"?\", n2 += r2(h2, false, false)), c2 && (n2 += \"#\", n2 += e3 ? c2 : d(c2, false, false)), n2;\n    }\n    function v(t4) {\n      try {\n        return decodeURIComponent(t4);\n      } catch {\n        return t4.length > 3 ? t4.substr(0, 3) + v(t4.substr(3)) : t4;\n      }\n    }\n    const b = /(%[0-9A-Za-z][0-9A-Za-z])+/g;\n    function C(t4) {\n      return t4.match(b) ? t4.replace(b, (t5) => v(t5)) : t4;\n    }\n    var A2 = r(470);\n    const w = A2.posix || A2, x = \"/\";\n    var P;\n    !function(t4) {\n      t4.joinPath = function(t5, ...e3) {\n        return t5.with({ path: w.join(t5.path, ...e3) });\n      }, t4.resolvePath = function(t5, ...e3) {\n        let r2 = t5.path, n2 = false;\n        r2[0] !== x && (r2 = x + r2, n2 = true);\n        let i2 = w.resolve(r2, ...e3);\n        return n2 && i2[0] === x && !t5.authority && (i2 = i2.substring(1)), t5.with({ path: i2 });\n      }, t4.dirname = function(t5) {\n        if (0 === t5.path.length || t5.path === x)\n          return t5;\n        let e3 = w.dirname(t5.path);\n        return 1 === e3.length && 46 === e3.charCodeAt(0) && (e3 = \"\"), t5.with({ path: e3 });\n      }, t4.basename = function(t5) {\n        return w.basename(t5.path);\n      }, t4.extname = function(t5) {\n        return w.extname(t5.path);\n      };\n    }(P || (P = {}));\n  })(), LIB = n;\n})();\nvar { URI: URI2, Utils } = LIB;\n\n// node_modules/vscode-css-languageservice/lib/esm/utils/resources.js\nfunction dirname(uriString) {\n  return Utils.dirname(URI2.parse(uriString)).toString(true);\n}\nfunction joinPath(uriString, ...paths) {\n  return Utils.joinPath(URI2.parse(uriString), ...paths).toString(true);\n}\n\n// node_modules/vscode-css-languageservice/lib/esm/services/pathCompletion.js\nvar PathCompletionParticipant = class {\n  constructor(readDirectory) {\n    this.readDirectory = readDirectory;\n    this.literalCompletions = [];\n    this.importCompletions = [];\n  }\n  onCssURILiteralValue(context) {\n    this.literalCompletions.push(context);\n  }\n  onCssImportPath(context) {\n    this.importCompletions.push(context);\n  }\n  async computeCompletions(document, documentContext) {\n    const result = { items: [], isIncomplete: false };\n    for (const literalCompletion of this.literalCompletions) {\n      const uriValue = literalCompletion.uriValue;\n      const fullValue = stripQuotes(uriValue);\n      if (fullValue === \".\" || fullValue === \"..\") {\n        result.isIncomplete = true;\n      } else {\n        const items = await this.providePathSuggestions(uriValue, literalCompletion.position, literalCompletion.range, document, documentContext);\n        for (let item of items) {\n          result.items.push(item);\n        }\n      }\n    }\n    for (const importCompletion of this.importCompletions) {\n      const pathValue = importCompletion.pathValue;\n      const fullValue = stripQuotes(pathValue);\n      if (fullValue === \".\" || fullValue === \"..\") {\n        result.isIncomplete = true;\n      } else {\n        let suggestions = await this.providePathSuggestions(pathValue, importCompletion.position, importCompletion.range, document, documentContext);\n        if (document.languageId === \"scss\") {\n          suggestions.forEach((s) => {\n            if (startsWith(s.label, \"_\") && endsWith(s.label, \".scss\")) {\n              if (s.textEdit) {\n                s.textEdit.newText = s.label.slice(1, -5);\n              } else {\n                s.label = s.label.slice(1, -5);\n              }\n            }\n          });\n        }\n        for (let item of suggestions) {\n          result.items.push(item);\n        }\n      }\n    }\n    return result;\n  }\n  async providePathSuggestions(pathValue, position, range, document, documentContext) {\n    const fullValue = stripQuotes(pathValue);\n    const isValueQuoted = startsWith(pathValue, `'`) || startsWith(pathValue, `\"`);\n    const valueBeforeCursor = isValueQuoted ? fullValue.slice(0, position.character - (range.start.character + 1)) : fullValue.slice(0, position.character - range.start.character);\n    const currentDocUri = document.uri;\n    const fullValueRange = isValueQuoted ? shiftRange(range, 1, -1) : range;\n    const replaceRange = pathToReplaceRange(valueBeforeCursor, fullValue, fullValueRange);\n    const valueBeforeLastSlash = valueBeforeCursor.substring(0, valueBeforeCursor.lastIndexOf(\"/\") + 1);\n    let parentDir = documentContext.resolveReference(valueBeforeLastSlash || \".\", currentDocUri);\n    if (parentDir) {\n      try {\n        const result = [];\n        const infos = await this.readDirectory(parentDir);\n        for (const [name, type] of infos) {\n          if (name.charCodeAt(0) !== CharCode_dot && (type === FileType.Directory || joinPath(parentDir, name) !== currentDocUri)) {\n            result.push(createCompletionItem(name, type === FileType.Directory, replaceRange));\n          }\n        }\n        return result;\n      } catch (e) {\n      }\n    }\n    return [];\n  }\n};\nvar CharCode_dot = \".\".charCodeAt(0);\nfunction stripQuotes(fullValue) {\n  if (startsWith(fullValue, `'`) || startsWith(fullValue, `\"`)) {\n    return fullValue.slice(1, -1);\n  } else {\n    return fullValue;\n  }\n}\nfunction pathToReplaceRange(valueBeforeCursor, fullValue, fullValueRange) {\n  let replaceRange;\n  const lastIndexOfSlash = valueBeforeCursor.lastIndexOf(\"/\");\n  if (lastIndexOfSlash === -1) {\n    replaceRange = fullValueRange;\n  } else {\n    const valueAfterLastSlash = fullValue.slice(lastIndexOfSlash + 1);\n    const startPos = shiftPosition(fullValueRange.end, -valueAfterLastSlash.length);\n    const whitespaceIndex = valueAfterLastSlash.indexOf(\" \");\n    let endPos;\n    if (whitespaceIndex !== -1) {\n      endPos = shiftPosition(startPos, whitespaceIndex);\n    } else {\n      endPos = fullValueRange.end;\n    }\n    replaceRange = Range.create(startPos, endPos);\n  }\n  return replaceRange;\n}\nfunction createCompletionItem(name, isDir, replaceRange) {\n  if (isDir) {\n    name = name + \"/\";\n    return {\n      label: escapePath(name),\n      kind: CompletionItemKind.Folder,\n      textEdit: TextEdit.replace(replaceRange, escapePath(name)),\n      command: {\n        title: \"Suggest\",\n        command: \"editor.action.triggerSuggest\"\n      }\n    };\n  } else {\n    return {\n      label: escapePath(name),\n      kind: CompletionItemKind.File,\n      textEdit: TextEdit.replace(replaceRange, escapePath(name))\n    };\n  }\n}\nfunction escapePath(p) {\n  return p.replace(/(\\s|\\(|\\)|,|\"|')/g, \"\\\\$1\");\n}\nfunction shiftPosition(pos, offset) {\n  return Position.create(pos.line, pos.character + offset);\n}\nfunction shiftRange(range, startOffset, endOffset) {\n  const start = shiftPosition(range.start, startOffset);\n  const end = shiftPosition(range.end, endOffset);\n  return Range.create(start, end);\n}\n\n// node_modules/vscode-css-languageservice/lib/esm/services/cssCompletion.js\nvar SnippetFormat = InsertTextFormat.Snippet;\nvar retriggerCommand = {\n  title: \"Suggest\",\n  command: \"editor.action.triggerSuggest\"\n};\nvar SortTexts;\n(function(SortTexts2) {\n  SortTexts2[\"Enums\"] = \" \";\n  SortTexts2[\"Normal\"] = \"d\";\n  SortTexts2[\"VendorPrefixed\"] = \"x\";\n  SortTexts2[\"Term\"] = \"y\";\n  SortTexts2[\"Variable\"] = \"z\";\n})(SortTexts || (SortTexts = {}));\nvar CSSCompletion = class {\n  constructor(variablePrefix = null, lsOptions, cssDataManager) {\n    this.variablePrefix = variablePrefix;\n    this.lsOptions = lsOptions;\n    this.cssDataManager = cssDataManager;\n    this.completionParticipants = [];\n  }\n  configure(settings) {\n    this.defaultSettings = settings;\n  }\n  getSymbolContext() {\n    if (!this.symbolContext) {\n      this.symbolContext = new Symbols(this.styleSheet);\n    }\n    return this.symbolContext;\n  }\n  setCompletionParticipants(registeredCompletionParticipants) {\n    this.completionParticipants = registeredCompletionParticipants || [];\n  }\n  async doComplete2(document, position, styleSheet, documentContext, completionSettings = this.defaultSettings) {\n    if (!this.lsOptions.fileSystemProvider || !this.lsOptions.fileSystemProvider.readDirectory) {\n      return this.doComplete(document, position, styleSheet, completionSettings);\n    }\n    const participant = new PathCompletionParticipant(this.lsOptions.fileSystemProvider.readDirectory);\n    const contributedParticipants = this.completionParticipants;\n    this.completionParticipants = [participant].concat(contributedParticipants);\n    const result = this.doComplete(document, position, styleSheet, completionSettings);\n    try {\n      const pathCompletionResult = await participant.computeCompletions(document, documentContext);\n      return {\n        isIncomplete: result.isIncomplete || pathCompletionResult.isIncomplete,\n        itemDefaults: result.itemDefaults,\n        items: pathCompletionResult.items.concat(result.items)\n      };\n    } finally {\n      this.completionParticipants = contributedParticipants;\n    }\n  }\n  doComplete(document, position, styleSheet, documentSettings) {\n    this.offset = document.offsetAt(position);\n    this.position = position;\n    this.currentWord = getCurrentWord(document, this.offset);\n    this.defaultReplaceRange = Range.create(Position.create(this.position.line, this.position.character - this.currentWord.length), this.position);\n    this.textDocument = document;\n    this.styleSheet = styleSheet;\n    this.documentSettings = documentSettings;\n    try {\n      const result = {\n        isIncomplete: false,\n        itemDefaults: {\n          editRange: {\n            start: { line: position.line, character: position.character - this.currentWord.length },\n            end: position\n          }\n        },\n        items: []\n      };\n      this.nodePath = getNodePath(this.styleSheet, this.offset);\n      for (let i = this.nodePath.length - 1; i >= 0; i--) {\n        const node = this.nodePath[i];\n        if (node instanceof Property) {\n          this.getCompletionsForDeclarationProperty(node.getParent(), result);\n        } else if (node instanceof Expression) {\n          if (node.parent instanceof Interpolation) {\n            this.getVariableProposals(null, result);\n          } else {\n            this.getCompletionsForExpression(node, result);\n          }\n        } else if (node instanceof SimpleSelector) {\n          const parentRef = node.findAParent(NodeType.ExtendsReference, NodeType.Ruleset);\n          if (parentRef) {\n            if (parentRef.type === NodeType.ExtendsReference) {\n              this.getCompletionsForExtendsReference(parentRef, node, result);\n            } else {\n              const parentRuleSet = parentRef;\n              this.getCompletionsForSelector(parentRuleSet, parentRuleSet && parentRuleSet.isNested(), result);\n            }\n          }\n        } else if (node instanceof FunctionArgument) {\n          this.getCompletionsForFunctionArgument(node, node.getParent(), result);\n        } else if (node instanceof Declarations) {\n          this.getCompletionsForDeclarations(node, result);\n        } else if (node instanceof VariableDeclaration) {\n          this.getCompletionsForVariableDeclaration(node, result);\n        } else if (node instanceof RuleSet) {\n          this.getCompletionsForRuleSet(node, result);\n        } else if (node instanceof Interpolation) {\n          this.getCompletionsForInterpolation(node, result);\n        } else if (node instanceof FunctionDeclaration) {\n          this.getCompletionsForFunctionDeclaration(node, result);\n        } else if (node instanceof MixinReference) {\n          this.getCompletionsForMixinReference(node, result);\n        } else if (node instanceof Function) {\n          this.getCompletionsForFunctionArgument(null, node, result);\n        } else if (node instanceof Supports) {\n          this.getCompletionsForSupports(node, result);\n        } else if (node instanceof SupportsCondition) {\n          this.getCompletionsForSupportsCondition(node, result);\n        } else if (node instanceof ExtendsReference) {\n          this.getCompletionsForExtendsReference(node, null, result);\n        } else if (node.type === NodeType.URILiteral) {\n          this.getCompletionForUriLiteralValue(node, result);\n        } else if (node.parent === null) {\n          this.getCompletionForTopLevel(result);\n        } else if (node.type === NodeType.StringLiteral && this.isImportPathParent(node.parent.type)) {\n          this.getCompletionForImportPath(node, result);\n        } else {\n          continue;\n        }\n        if (result.items.length > 0 || this.offset > node.offset) {\n          return this.finalize(result);\n        }\n      }\n      this.getCompletionsForStylesheet(result);\n      if (result.items.length === 0) {\n        if (this.variablePrefix && this.currentWord.indexOf(this.variablePrefix) === 0) {\n          this.getVariableProposals(null, result);\n        }\n      }\n      return this.finalize(result);\n    } finally {\n      this.position = null;\n      this.currentWord = null;\n      this.textDocument = null;\n      this.styleSheet = null;\n      this.symbolContext = null;\n      this.defaultReplaceRange = null;\n      this.nodePath = null;\n    }\n  }\n  isImportPathParent(type) {\n    return type === NodeType.Import;\n  }\n  finalize(result) {\n    return result;\n  }\n  findInNodePath(...types) {\n    for (let i = this.nodePath.length - 1; i >= 0; i--) {\n      const node = this.nodePath[i];\n      if (types.indexOf(node.type) !== -1) {\n        return node;\n      }\n    }\n    return null;\n  }\n  getCompletionsForDeclarationProperty(declaration, result) {\n    return this.getPropertyProposals(declaration, result);\n  }\n  getPropertyProposals(declaration, result) {\n    const triggerPropertyValueCompletion = this.isTriggerPropertyValueCompletionEnabled;\n    const completePropertyWithSemicolon = this.isCompletePropertyWithSemicolonEnabled;\n    const properties = this.cssDataManager.getProperties();\n    properties.forEach((entry) => {\n      let range;\n      let insertText;\n      let retrigger = false;\n      if (declaration) {\n        range = this.getCompletionRange(declaration.getProperty());\n        insertText = entry.name;\n        if (!isDefined(declaration.colonPosition)) {\n          insertText += \": \";\n          retrigger = true;\n        }\n      } else {\n        range = this.getCompletionRange(null);\n        insertText = entry.name + \": \";\n        retrigger = true;\n      }\n      if (!declaration && completePropertyWithSemicolon) {\n        insertText += \"$0;\";\n      }\n      if (declaration && !declaration.semicolonPosition) {\n        if (completePropertyWithSemicolon && this.offset >= this.textDocument.offsetAt(range.end)) {\n          insertText += \"$0;\";\n        }\n      }\n      const item = {\n        label: entry.name,\n        documentation: getEntryDescription(entry, this.doesSupportMarkdown()),\n        tags: isDeprecated(entry) ? [CompletionItemTag.Deprecated] : [],\n        textEdit: TextEdit.replace(range, insertText),\n        insertTextFormat: InsertTextFormat.Snippet,\n        kind: CompletionItemKind.Property\n      };\n      if (!entry.restrictions) {\n        retrigger = false;\n      }\n      if (triggerPropertyValueCompletion && retrigger) {\n        item.command = retriggerCommand;\n      }\n      const relevance = typeof entry.relevance === \"number\" ? Math.min(Math.max(entry.relevance, 0), 99) : 50;\n      const sortTextSuffix = (255 - relevance).toString(16);\n      const sortTextPrefix = startsWith(entry.name, \"-\") ? SortTexts.VendorPrefixed : SortTexts.Normal;\n      item.sortText = sortTextPrefix + \"_\" + sortTextSuffix;\n      result.items.push(item);\n    });\n    this.completionParticipants.forEach((participant) => {\n      if (participant.onCssProperty) {\n        participant.onCssProperty({\n          propertyName: this.currentWord,\n          range: this.defaultReplaceRange\n        });\n      }\n    });\n    return result;\n  }\n  get isTriggerPropertyValueCompletionEnabled() {\n    return this.documentSettings?.triggerPropertyValueCompletion ?? true;\n  }\n  get isCompletePropertyWithSemicolonEnabled() {\n    return this.documentSettings?.completePropertyWithSemicolon ?? true;\n  }\n  getCompletionsForDeclarationValue(node, result) {\n    const propertyName = node.getFullPropertyName();\n    const entry = this.cssDataManager.getProperty(propertyName);\n    let existingNode = node.getValue() || null;\n    while (existingNode && existingNode.hasChildren()) {\n      existingNode = existingNode.findChildAtOffset(this.offset, false);\n    }\n    this.completionParticipants.forEach((participant) => {\n      if (participant.onCssPropertyValue) {\n        participant.onCssPropertyValue({\n          propertyName,\n          propertyValue: this.currentWord,\n          range: this.getCompletionRange(existingNode)\n        });\n      }\n    });\n    if (entry) {\n      if (entry.restrictions) {\n        for (const restriction of entry.restrictions) {\n          switch (restriction) {\n            case \"color\":\n              this.getColorProposals(entry, existingNode, result);\n              break;\n            case \"position\":\n              this.getPositionProposals(entry, existingNode, result);\n              break;\n            case \"repeat\":\n              this.getRepeatStyleProposals(entry, existingNode, result);\n              break;\n            case \"line-style\":\n              this.getLineStyleProposals(entry, existingNode, result);\n              break;\n            case \"line-width\":\n              this.getLineWidthProposals(entry, existingNode, result);\n              break;\n            case \"geometry-box\":\n              this.getGeometryBoxProposals(entry, existingNode, result);\n              break;\n            case \"box\":\n              this.getBoxProposals(entry, existingNode, result);\n              break;\n            case \"image\":\n              this.getImageProposals(entry, existingNode, result);\n              break;\n            case \"timing-function\":\n              this.getTimingFunctionProposals(entry, existingNode, result);\n              break;\n            case \"shape\":\n              this.getBasicShapeProposals(entry, existingNode, result);\n              break;\n          }\n        }\n      }\n      this.getValueEnumProposals(entry, existingNode, result);\n      this.getCSSWideKeywordProposals(entry, existingNode, result);\n      this.getUnitProposals(entry, existingNode, result);\n    } else {\n      const existingValues = collectValues(this.styleSheet, node);\n      for (const existingValue of existingValues.getEntries()) {\n        result.items.push({\n          label: existingValue,\n          textEdit: TextEdit.replace(this.getCompletionRange(existingNode), existingValue),\n          kind: CompletionItemKind.Value\n        });\n      }\n    }\n    this.getVariableProposals(existingNode, result);\n    this.getTermProposals(entry, existingNode, result);\n    return result;\n  }\n  getValueEnumProposals(entry, existingNode, result) {\n    if (entry.values) {\n      for (const value of entry.values) {\n        let insertString = value.name;\n        let insertTextFormat;\n        if (endsWith(insertString, \")\")) {\n          const from = insertString.lastIndexOf(\"(\");\n          if (from !== -1) {\n            insertString = insertString.substring(0, from + 1) + \"$1\" + insertString.substring(from + 1);\n            insertTextFormat = SnippetFormat;\n          }\n        }\n        let sortText = SortTexts.Enums;\n        if (startsWith(value.name, \"-\")) {\n          sortText += SortTexts.VendorPrefixed;\n        }\n        const item = {\n          label: value.name,\n          documentation: getEntryDescription(value, this.doesSupportMarkdown()),\n          tags: isDeprecated(entry) ? [CompletionItemTag.Deprecated] : [],\n          textEdit: TextEdit.replace(this.getCompletionRange(existingNode), insertString),\n          sortText,\n          kind: CompletionItemKind.Value,\n          insertTextFormat\n        };\n        result.items.push(item);\n      }\n    }\n    return result;\n  }\n  getCSSWideKeywordProposals(entry, existingNode, result) {\n    for (const keywords in cssWideKeywords) {\n      result.items.push({\n        label: keywords,\n        documentation: cssWideKeywords[keywords],\n        textEdit: TextEdit.replace(this.getCompletionRange(existingNode), keywords),\n        kind: CompletionItemKind.Value\n      });\n    }\n    for (const func in cssWideFunctions) {\n      const insertText = moveCursorInsideParenthesis(func);\n      result.items.push({\n        label: func,\n        documentation: cssWideFunctions[func],\n        textEdit: TextEdit.replace(this.getCompletionRange(existingNode), insertText),\n        kind: CompletionItemKind.Function,\n        insertTextFormat: SnippetFormat,\n        command: startsWith(func, \"var\") ? retriggerCommand : void 0\n      });\n    }\n    return result;\n  }\n  getCompletionsForInterpolation(node, result) {\n    if (this.offset >= node.offset + 2) {\n      this.getVariableProposals(null, result);\n    }\n    return result;\n  }\n  getVariableProposals(existingNode, result) {\n    const symbols = this.getSymbolContext().findSymbolsAtOffset(this.offset, ReferenceType.Variable);\n    for (const symbol of symbols) {\n      const insertText = startsWith(symbol.name, \"--\") ? `var(${symbol.name})` : symbol.name;\n      const completionItem = {\n        label: symbol.name,\n        documentation: symbol.value ? getLimitedString(symbol.value) : symbol.value,\n        textEdit: TextEdit.replace(this.getCompletionRange(existingNode), insertText),\n        kind: CompletionItemKind.Variable,\n        sortText: SortTexts.Variable\n      };\n      if (typeof completionItem.documentation === \"string\" && isColorString(completionItem.documentation)) {\n        completionItem.kind = CompletionItemKind.Color;\n      }\n      if (symbol.node.type === NodeType.FunctionParameter) {\n        const mixinNode = symbol.node.getParent();\n        if (mixinNode.type === NodeType.MixinDeclaration) {\n          completionItem.detail = t(\"argument from '{0}'\", mixinNode.getName());\n        }\n      }\n      result.items.push(completionItem);\n    }\n    return result;\n  }\n  getVariableProposalsForCSSVarFunction(result) {\n    const allReferencedVariables = new Set2();\n    this.styleSheet.acceptVisitor(new VariableCollector(allReferencedVariables, this.offset));\n    let symbols = this.getSymbolContext().findSymbolsAtOffset(this.offset, ReferenceType.Variable);\n    for (const symbol of symbols) {\n      if (startsWith(symbol.name, \"--\")) {\n        const completionItem = {\n          label: symbol.name,\n          documentation: symbol.value ? getLimitedString(symbol.value) : symbol.value,\n          textEdit: TextEdit.replace(this.getCompletionRange(null), symbol.name),\n          kind: CompletionItemKind.Variable\n        };\n        if (typeof completionItem.documentation === \"string\" && isColorString(completionItem.documentation)) {\n          completionItem.kind = CompletionItemKind.Color;\n        }\n        result.items.push(completionItem);\n      }\n      allReferencedVariables.remove(symbol.name);\n    }\n    for (const name of allReferencedVariables.getEntries()) {\n      if (startsWith(name, \"--\")) {\n        const completionItem = {\n          label: name,\n          textEdit: TextEdit.replace(this.getCompletionRange(null), name),\n          kind: CompletionItemKind.Variable\n        };\n        result.items.push(completionItem);\n      }\n    }\n    return result;\n  }\n  getUnitProposals(entry, existingNode, result) {\n    let currentWord = \"0\";\n    if (this.currentWord.length > 0) {\n      const numMatch = this.currentWord.match(/^-?\\d[\\.\\d+]*/);\n      if (numMatch) {\n        currentWord = numMatch[0];\n        result.isIncomplete = currentWord.length === this.currentWord.length;\n      }\n    } else if (this.currentWord.length === 0) {\n      result.isIncomplete = true;\n    }\n    if (existingNode && existingNode.parent && existingNode.parent.type === NodeType.Term) {\n      existingNode = existingNode.getParent();\n    }\n    if (entry.restrictions) {\n      for (const restriction of entry.restrictions) {\n        const units2 = units[restriction];\n        if (units2) {\n          for (const unit of units2) {\n            const insertText = currentWord + unit;\n            result.items.push({\n              label: insertText,\n              textEdit: TextEdit.replace(this.getCompletionRange(existingNode), insertText),\n              kind: CompletionItemKind.Unit\n            });\n          }\n        }\n      }\n    }\n    return result;\n  }\n  getCompletionRange(existingNode) {\n    if (existingNode && existingNode.offset <= this.offset && this.offset <= existingNode.end) {\n      const end = existingNode.end !== -1 ? this.textDocument.positionAt(existingNode.end) : this.position;\n      const start = this.textDocument.positionAt(existingNode.offset);\n      if (start.line === end.line) {\n        return Range.create(start, end);\n      }\n    }\n    return this.defaultReplaceRange;\n  }\n  getColorProposals(entry, existingNode, result) {\n    for (const color in colors) {\n      result.items.push({\n        label: color,\n        documentation: colors[color],\n        textEdit: TextEdit.replace(this.getCompletionRange(existingNode), color),\n        kind: CompletionItemKind.Color\n      });\n    }\n    for (const color in colorKeywords) {\n      result.items.push({\n        label: color,\n        documentation: colorKeywords[color],\n        textEdit: TextEdit.replace(this.getCompletionRange(existingNode), color),\n        kind: CompletionItemKind.Value\n      });\n    }\n    const colorValues = new Set2();\n    this.styleSheet.acceptVisitor(new ColorValueCollector(colorValues, this.offset));\n    for (const color of colorValues.getEntries()) {\n      result.items.push({\n        label: color,\n        textEdit: TextEdit.replace(this.getCompletionRange(existingNode), color),\n        kind: CompletionItemKind.Color\n      });\n    }\n    for (const p of colorFunctions) {\n      result.items.push({\n        label: p.label,\n        detail: p.func,\n        documentation: p.desc,\n        textEdit: TextEdit.replace(this.getCompletionRange(existingNode), p.insertText),\n        insertTextFormat: SnippetFormat,\n        kind: CompletionItemKind.Function\n      });\n    }\n    return result;\n  }\n  getPositionProposals(entry, existingNode, result) {\n    for (const position in positionKeywords) {\n      result.items.push({\n        label: position,\n        documentation: positionKeywords[position],\n        textEdit: TextEdit.replace(this.getCompletionRange(existingNode), position),\n        kind: CompletionItemKind.Value\n      });\n    }\n    return result;\n  }\n  getRepeatStyleProposals(entry, existingNode, result) {\n    for (const repeat2 in repeatStyleKeywords) {\n      result.items.push({\n        label: repeat2,\n        documentation: repeatStyleKeywords[repeat2],\n        textEdit: TextEdit.replace(this.getCompletionRange(existingNode), repeat2),\n        kind: CompletionItemKind.Value\n      });\n    }\n    return result;\n  }\n  getLineStyleProposals(entry, existingNode, result) {\n    for (const lineStyle in lineStyleKeywords) {\n      result.items.push({\n        label: lineStyle,\n        documentation: lineStyleKeywords[lineStyle],\n        textEdit: TextEdit.replace(this.getCompletionRange(existingNode), lineStyle),\n        kind: CompletionItemKind.Value\n      });\n    }\n    return result;\n  }\n  getLineWidthProposals(entry, existingNode, result) {\n    for (const lineWidth of lineWidthKeywords) {\n      result.items.push({\n        label: lineWidth,\n        textEdit: TextEdit.replace(this.getCompletionRange(existingNode), lineWidth),\n        kind: CompletionItemKind.Value\n      });\n    }\n    return result;\n  }\n  getGeometryBoxProposals(entry, existingNode, result) {\n    for (const box in geometryBoxKeywords) {\n      result.items.push({\n        label: box,\n        documentation: geometryBoxKeywords[box],\n        textEdit: TextEdit.replace(this.getCompletionRange(existingNode), box),\n        kind: CompletionItemKind.Value\n      });\n    }\n    return result;\n  }\n  getBoxProposals(entry, existingNode, result) {\n    for (const box in boxKeywords) {\n      result.items.push({\n        label: box,\n        documentation: boxKeywords[box],\n        textEdit: TextEdit.replace(this.getCompletionRange(existingNode), box),\n        kind: CompletionItemKind.Value\n      });\n    }\n    return result;\n  }\n  getImageProposals(entry, existingNode, result) {\n    for (const image in imageFunctions) {\n      const insertText = moveCursorInsideParenthesis(image);\n      result.items.push({\n        label: image,\n        documentation: imageFunctions[image],\n        textEdit: TextEdit.replace(this.getCompletionRange(existingNode), insertText),\n        kind: CompletionItemKind.Function,\n        insertTextFormat: image !== insertText ? SnippetFormat : void 0\n      });\n    }\n    return result;\n  }\n  getTimingFunctionProposals(entry, existingNode, result) {\n    for (const timing in transitionTimingFunctions) {\n      const insertText = moveCursorInsideParenthesis(timing);\n      result.items.push({\n        label: timing,\n        documentation: transitionTimingFunctions[timing],\n        textEdit: TextEdit.replace(this.getCompletionRange(existingNode), insertText),\n        kind: CompletionItemKind.Function,\n        insertTextFormat: timing !== insertText ? SnippetFormat : void 0\n      });\n    }\n    return result;\n  }\n  getBasicShapeProposals(entry, existingNode, result) {\n    for (const shape in basicShapeFunctions) {\n      const insertText = moveCursorInsideParenthesis(shape);\n      result.items.push({\n        label: shape,\n        documentation: basicShapeFunctions[shape],\n        textEdit: TextEdit.replace(this.getCompletionRange(existingNode), insertText),\n        kind: CompletionItemKind.Function,\n        insertTextFormat: shape !== insertText ? SnippetFormat : void 0\n      });\n    }\n    return result;\n  }\n  getCompletionsForStylesheet(result) {\n    const node = this.styleSheet.findFirstChildBeforeOffset(this.offset);\n    if (!node) {\n      return this.getCompletionForTopLevel(result);\n    }\n    if (node instanceof RuleSet) {\n      return this.getCompletionsForRuleSet(node, result);\n    }\n    if (node instanceof Supports) {\n      return this.getCompletionsForSupports(node, result);\n    }\n    return result;\n  }\n  getCompletionForTopLevel(result) {\n    this.cssDataManager.getAtDirectives().forEach((entry) => {\n      result.items.push({\n        label: entry.name,\n        textEdit: TextEdit.replace(this.getCompletionRange(null), entry.name),\n        documentation: getEntryDescription(entry, this.doesSupportMarkdown()),\n        tags: isDeprecated(entry) ? [CompletionItemTag.Deprecated] : [],\n        kind: CompletionItemKind.Keyword\n      });\n    });\n    this.getCompletionsForSelector(null, false, result);\n    return result;\n  }\n  getCompletionsForRuleSet(ruleSet, result) {\n    const declarations = ruleSet.getDeclarations();\n    const isAfter = declarations && declarations.endsWith(\"}\") && this.offset >= declarations.end;\n    if (isAfter) {\n      return this.getCompletionForTopLevel(result);\n    }\n    const isInSelectors = !declarations || this.offset <= declarations.offset;\n    if (isInSelectors) {\n      return this.getCompletionsForSelector(ruleSet, ruleSet.isNested(), result);\n    }\n    return this.getCompletionsForDeclarations(ruleSet.getDeclarations(), result);\n  }\n  getCompletionsForSelector(ruleSet, isNested, result) {\n    const existingNode = this.findInNodePath(NodeType.PseudoSelector, NodeType.IdentifierSelector, NodeType.ClassSelector, NodeType.ElementNameSelector);\n    if (!existingNode && this.hasCharacterAtPosition(this.offset - this.currentWord.length - 1, \":\")) {\n      this.currentWord = \":\" + this.currentWord;\n      if (this.hasCharacterAtPosition(this.offset - this.currentWord.length - 1, \":\")) {\n        this.currentWord = \":\" + this.currentWord;\n      }\n      this.defaultReplaceRange = Range.create(Position.create(this.position.line, this.position.character - this.currentWord.length), this.position);\n    }\n    const pseudoClasses = this.cssDataManager.getPseudoClasses();\n    pseudoClasses.forEach((entry) => {\n      const insertText = moveCursorInsideParenthesis(entry.name);\n      const item = {\n        label: entry.name,\n        textEdit: TextEdit.replace(this.getCompletionRange(existingNode), insertText),\n        documentation: getEntryDescription(entry, this.doesSupportMarkdown()),\n        tags: isDeprecated(entry) ? [CompletionItemTag.Deprecated] : [],\n        kind: CompletionItemKind.Function,\n        insertTextFormat: entry.name !== insertText ? SnippetFormat : void 0\n      };\n      if (startsWith(entry.name, \":-\")) {\n        item.sortText = SortTexts.VendorPrefixed;\n      }\n      result.items.push(item);\n    });\n    const pseudoElements = this.cssDataManager.getPseudoElements();\n    pseudoElements.forEach((entry) => {\n      const insertText = moveCursorInsideParenthesis(entry.name);\n      const item = {\n        label: entry.name,\n        textEdit: TextEdit.replace(this.getCompletionRange(existingNode), insertText),\n        documentation: getEntryDescription(entry, this.doesSupportMarkdown()),\n        tags: isDeprecated(entry) ? [CompletionItemTag.Deprecated] : [],\n        kind: CompletionItemKind.Function,\n        insertTextFormat: entry.name !== insertText ? SnippetFormat : void 0\n      };\n      if (startsWith(entry.name, \"::-\")) {\n        item.sortText = SortTexts.VendorPrefixed;\n      }\n      result.items.push(item);\n    });\n    if (!isNested) {\n      for (const entry of html5Tags) {\n        result.items.push({\n          label: entry,\n          textEdit: TextEdit.replace(this.getCompletionRange(existingNode), entry),\n          kind: CompletionItemKind.Keyword\n        });\n      }\n      for (const entry of svgElements) {\n        result.items.push({\n          label: entry,\n          textEdit: TextEdit.replace(this.getCompletionRange(existingNode), entry),\n          kind: CompletionItemKind.Keyword\n        });\n      }\n    }\n    const visited = {};\n    visited[this.currentWord] = true;\n    const docText = this.textDocument.getText();\n    this.styleSheet.accept((n) => {\n      if (n.type === NodeType.SimpleSelector && n.length > 0) {\n        const selector = docText.substr(n.offset, n.length);\n        if (selector.charAt(0) === \".\" && !visited[selector]) {\n          visited[selector] = true;\n          result.items.push({\n            label: selector,\n            textEdit: TextEdit.replace(this.getCompletionRange(existingNode), selector),\n            kind: CompletionItemKind.Keyword\n          });\n        }\n        return false;\n      }\n      return true;\n    });\n    if (ruleSet && ruleSet.isNested()) {\n      const selector = ruleSet.getSelectors().findFirstChildBeforeOffset(this.offset);\n      if (selector && ruleSet.getSelectors().getChildren().indexOf(selector) === 0) {\n        this.getPropertyProposals(null, result);\n      }\n    }\n    return result;\n  }\n  getCompletionsForDeclarations(declarations, result) {\n    if (!declarations || this.offset === declarations.offset) {\n      return result;\n    }\n    const node = declarations.findFirstChildBeforeOffset(this.offset);\n    if (!node) {\n      return this.getCompletionsForDeclarationProperty(null, result);\n    }\n    if (node instanceof AbstractDeclaration) {\n      const declaration = node;\n      if (!isDefined(declaration.colonPosition) || this.offset <= declaration.colonPosition) {\n        return this.getCompletionsForDeclarationProperty(declaration, result);\n      } else if (isDefined(declaration.semicolonPosition) && declaration.semicolonPosition < this.offset) {\n        if (this.offset === declaration.semicolonPosition + 1) {\n          return result;\n        }\n        return this.getCompletionsForDeclarationProperty(null, result);\n      }\n      if (declaration instanceof Declaration) {\n        return this.getCompletionsForDeclarationValue(declaration, result);\n      }\n    } else if (node instanceof ExtendsReference) {\n      this.getCompletionsForExtendsReference(node, null, result);\n    } else if (this.currentWord && this.currentWord[0] === \"@\") {\n      this.getCompletionsForDeclarationProperty(null, result);\n    } else if (node instanceof RuleSet) {\n      this.getCompletionsForDeclarationProperty(null, result);\n    }\n    return result;\n  }\n  getCompletionsForVariableDeclaration(declaration, result) {\n    if (this.offset && isDefined(declaration.colonPosition) && this.offset > declaration.colonPosition) {\n      this.getVariableProposals(declaration.getValue() || null, result);\n    }\n    return result;\n  }\n  getCompletionsForExpression(expression, result) {\n    const parent = expression.getParent();\n    if (parent instanceof FunctionArgument) {\n      this.getCompletionsForFunctionArgument(parent, parent.getParent(), result);\n      return result;\n    }\n    const declaration = expression.findParent(NodeType.Declaration);\n    if (!declaration) {\n      this.getTermProposals(void 0, null, result);\n      return result;\n    }\n    const node = expression.findChildAtOffset(this.offset, true);\n    if (!node) {\n      return this.getCompletionsForDeclarationValue(declaration, result);\n    }\n    if (node instanceof NumericValue || node instanceof Identifier) {\n      return this.getCompletionsForDeclarationValue(declaration, result);\n    }\n    return result;\n  }\n  getCompletionsForFunctionArgument(arg, func, result) {\n    const identifier = func.getIdentifier();\n    if (identifier && identifier.matches(\"var\")) {\n      if (!func.getArguments().hasChildren() || func.getArguments().getChild(0) === arg) {\n        this.getVariableProposalsForCSSVarFunction(result);\n      }\n    }\n    return result;\n  }\n  getCompletionsForFunctionDeclaration(decl, result) {\n    const declarations = decl.getDeclarations();\n    if (declarations && this.offset > declarations.offset && this.offset < declarations.end) {\n      this.getTermProposals(void 0, null, result);\n    }\n    return result;\n  }\n  getCompletionsForMixinReference(ref, result) {\n    const allMixins = this.getSymbolContext().findSymbolsAtOffset(this.offset, ReferenceType.Mixin);\n    for (const mixinSymbol of allMixins) {\n      if (mixinSymbol.node instanceof MixinDeclaration) {\n        result.items.push(this.makeTermProposal(mixinSymbol, mixinSymbol.node.getParameters(), null));\n      }\n    }\n    const identifierNode = ref.getIdentifier() || null;\n    this.completionParticipants.forEach((participant) => {\n      if (participant.onCssMixinReference) {\n        participant.onCssMixinReference({\n          mixinName: this.currentWord,\n          range: this.getCompletionRange(identifierNode)\n        });\n      }\n    });\n    return result;\n  }\n  getTermProposals(entry, existingNode, result) {\n    const allFunctions = this.getSymbolContext().findSymbolsAtOffset(this.offset, ReferenceType.Function);\n    for (const functionSymbol of allFunctions) {\n      if (functionSymbol.node instanceof FunctionDeclaration) {\n        result.items.push(this.makeTermProposal(functionSymbol, functionSymbol.node.getParameters(), existingNode));\n      }\n    }\n    return result;\n  }\n  makeTermProposal(symbol, parameters, existingNode) {\n    const decl = symbol.node;\n    const params = parameters.getChildren().map((c) => {\n      return c instanceof FunctionParameter ? c.getName() : c.getText();\n    });\n    const insertText = symbol.name + \"(\" + params.map((p, index) => \"${\" + (index + 1) + \":\" + p + \"}\").join(\", \") + \")\";\n    return {\n      label: symbol.name,\n      detail: symbol.name + \"(\" + params.join(\", \") + \")\",\n      textEdit: TextEdit.replace(this.getCompletionRange(existingNode), insertText),\n      insertTextFormat: SnippetFormat,\n      kind: CompletionItemKind.Function,\n      sortText: SortTexts.Term\n    };\n  }\n  getCompletionsForSupportsCondition(supportsCondition, result) {\n    const child = supportsCondition.findFirstChildBeforeOffset(this.offset);\n    if (child) {\n      if (child instanceof Declaration) {\n        if (!isDefined(child.colonPosition) || this.offset <= child.colonPosition) {\n          return this.getCompletionsForDeclarationProperty(child, result);\n        } else {\n          return this.getCompletionsForDeclarationValue(child, result);\n        }\n      } else if (child instanceof SupportsCondition) {\n        return this.getCompletionsForSupportsCondition(child, result);\n      }\n    }\n    if (isDefined(supportsCondition.lParent) && this.offset > supportsCondition.lParent && (!isDefined(supportsCondition.rParent) || this.offset <= supportsCondition.rParent)) {\n      return this.getCompletionsForDeclarationProperty(null, result);\n    }\n    return result;\n  }\n  getCompletionsForSupports(supports, result) {\n    const declarations = supports.getDeclarations();\n    const inInCondition = !declarations || this.offset <= declarations.offset;\n    if (inInCondition) {\n      const child = supports.findFirstChildBeforeOffset(this.offset);\n      if (child instanceof SupportsCondition) {\n        return this.getCompletionsForSupportsCondition(child, result);\n      }\n      return result;\n    }\n    return this.getCompletionForTopLevel(result);\n  }\n  getCompletionsForExtendsReference(extendsRef, existingNode, result) {\n    return result;\n  }\n  getCompletionForUriLiteralValue(uriLiteralNode, result) {\n    let uriValue;\n    let position;\n    let range;\n    if (!uriLiteralNode.hasChildren()) {\n      uriValue = \"\";\n      position = this.position;\n      const emptyURIValuePosition = this.textDocument.positionAt(uriLiteralNode.offset + \"url(\".length);\n      range = Range.create(emptyURIValuePosition, emptyURIValuePosition);\n    } else {\n      const uriValueNode = uriLiteralNode.getChild(0);\n      uriValue = uriValueNode.getText();\n      position = this.position;\n      range = this.getCompletionRange(uriValueNode);\n    }\n    this.completionParticipants.forEach((participant) => {\n      if (participant.onCssURILiteralValue) {\n        participant.onCssURILiteralValue({\n          uriValue,\n          position,\n          range\n        });\n      }\n    });\n    return result;\n  }\n  getCompletionForImportPath(importPathNode, result) {\n    this.completionParticipants.forEach((participant) => {\n      if (participant.onCssImportPath) {\n        participant.onCssImportPath({\n          pathValue: importPathNode.getText(),\n          position: this.position,\n          range: this.getCompletionRange(importPathNode)\n        });\n      }\n    });\n    return result;\n  }\n  hasCharacterAtPosition(offset, char) {\n    const text = this.textDocument.getText();\n    return offset >= 0 && offset < text.length && text.charAt(offset) === char;\n  }\n  doesSupportMarkdown() {\n    if (!isDefined(this.supportsMarkdown)) {\n      if (!isDefined(this.lsOptions.clientCapabilities)) {\n        this.supportsMarkdown = true;\n        return this.supportsMarkdown;\n      }\n      const documentationFormat = this.lsOptions.clientCapabilities.textDocument?.completion?.completionItem?.documentationFormat;\n      this.supportsMarkdown = Array.isArray(documentationFormat) && documentationFormat.indexOf(MarkupKind.Markdown) !== -1;\n    }\n    return this.supportsMarkdown;\n  }\n};\nfunction isDeprecated(entry) {\n  if (entry.status && (entry.status === \"nonstandard\" || entry.status === \"obsolete\")) {\n    return true;\n  }\n  return false;\n}\nvar Set2 = class {\n  constructor() {\n    this.entries = {};\n  }\n  add(entry) {\n    this.entries[entry] = true;\n  }\n  remove(entry) {\n    delete this.entries[entry];\n  }\n  getEntries() {\n    return Object.keys(this.entries);\n  }\n};\nfunction moveCursorInsideParenthesis(text) {\n  return text.replace(/\\(\\)$/, \"($1)\");\n}\nfunction collectValues(styleSheet, declaration) {\n  const fullPropertyName = declaration.getFullPropertyName();\n  const entries = new Set2();\n  function visitValue(node) {\n    if (node instanceof Identifier || node instanceof NumericValue || node instanceof HexColorValue) {\n      entries.add(node.getText());\n    }\n    return true;\n  }\n  function matchesProperty(decl) {\n    const propertyName = decl.getFullPropertyName();\n    return fullPropertyName === propertyName;\n  }\n  function vistNode(node) {\n    if (node instanceof Declaration && node !== declaration) {\n      if (matchesProperty(node)) {\n        const value = node.getValue();\n        if (value) {\n          value.accept(visitValue);\n        }\n      }\n    }\n    return true;\n  }\n  styleSheet.accept(vistNode);\n  return entries;\n}\nvar ColorValueCollector = class {\n  constructor(entries, currentOffset) {\n    this.entries = entries;\n    this.currentOffset = currentOffset;\n  }\n  visitNode(node) {\n    if (node instanceof HexColorValue || node instanceof Function && isColorConstructor(node)) {\n      if (this.currentOffset < node.offset || node.end < this.currentOffset) {\n        this.entries.add(node.getText());\n      }\n    }\n    return true;\n  }\n};\nvar VariableCollector = class {\n  constructor(entries, currentOffset) {\n    this.entries = entries;\n    this.currentOffset = currentOffset;\n  }\n  visitNode(node) {\n    if (node instanceof Identifier && node.isCustomProperty) {\n      if (this.currentOffset < node.offset || node.end < this.currentOffset) {\n        this.entries.add(node.getText());\n      }\n    }\n    return true;\n  }\n};\nfunction getCurrentWord(document, offset) {\n  let i = offset - 1;\n  const text = document.getText();\n  while (i >= 0 && ' \t\\n\\r\":{[()]},*>+'.indexOf(text.charAt(i)) === -1) {\n    i--;\n  }\n  return text.substring(i + 1, offset);\n}\n\n// node_modules/vscode-css-languageservice/lib/esm/services/selectorPrinting.js\nvar Element = class _Element {\n  constructor() {\n    this.parent = null;\n    this.children = null;\n    this.attributes = null;\n  }\n  findAttribute(name) {\n    if (this.attributes) {\n      for (const attribute of this.attributes) {\n        if (attribute.name === name) {\n          return attribute.value;\n        }\n      }\n    }\n    return null;\n  }\n  addChild(child) {\n    if (child instanceof _Element) {\n      child.parent = this;\n    }\n    if (!this.children) {\n      this.children = [];\n    }\n    this.children.push(child);\n  }\n  append(text) {\n    if (this.attributes) {\n      const last = this.attributes[this.attributes.length - 1];\n      last.value = last.value + text;\n    }\n  }\n  prepend(text) {\n    if (this.attributes) {\n      const first = this.attributes[0];\n      first.value = text + first.value;\n    }\n  }\n  findRoot() {\n    let curr = this;\n    while (curr.parent && !(curr.parent instanceof RootElement)) {\n      curr = curr.parent;\n    }\n    return curr;\n  }\n  removeChild(child) {\n    if (this.children) {\n      const index = this.children.indexOf(child);\n      if (index !== -1) {\n        this.children.splice(index, 1);\n        return true;\n      }\n    }\n    return false;\n  }\n  addAttr(name, value) {\n    if (!this.attributes) {\n      this.attributes = [];\n    }\n    for (const attribute of this.attributes) {\n      if (attribute.name === name) {\n        attribute.value += \" \" + value;\n        return;\n      }\n    }\n    this.attributes.push({ name, value });\n  }\n  clone(cloneChildren = true) {\n    const elem = new _Element();\n    if (this.attributes) {\n      elem.attributes = [];\n      for (const attribute of this.attributes) {\n        elem.addAttr(attribute.name, attribute.value);\n      }\n    }\n    if (cloneChildren && this.children) {\n      elem.children = [];\n      for (let index = 0; index < this.children.length; index++) {\n        elem.addChild(this.children[index].clone());\n      }\n    }\n    return elem;\n  }\n  cloneWithParent() {\n    const clone = this.clone(false);\n    if (this.parent && !(this.parent instanceof RootElement)) {\n      const parentClone = this.parent.cloneWithParent();\n      parentClone.addChild(clone);\n    }\n    return clone;\n  }\n};\nvar RootElement = class extends Element {\n};\nvar LabelElement = class extends Element {\n  constructor(label) {\n    super();\n    this.addAttr(\"name\", label);\n  }\n};\nvar MarkedStringPrinter = class {\n  constructor(quote) {\n    this.quote = quote;\n    this.result = [];\n  }\n  print(element, flagOpts) {\n    this.result = [];\n    if (element instanceof RootElement) {\n      if (element.children) {\n        this.doPrint(element.children, 0);\n      }\n    } else {\n      this.doPrint([element], 0);\n    }\n    let value;\n    if (flagOpts) {\n      value = `${flagOpts.text}\n \\u2026 ` + this.result.join(\"\\n\");\n    } else {\n      value = this.result.join(\"\\n\");\n    }\n    return [{ language: \"html\", value }];\n  }\n  doPrint(elements, indent) {\n    for (const element of elements) {\n      this.doPrintElement(element, indent);\n      if (element.children) {\n        this.doPrint(element.children, indent + 1);\n      }\n    }\n  }\n  writeLine(level, content) {\n    const indent = new Array(level + 1).join(\"  \");\n    this.result.push(indent + content);\n  }\n  doPrintElement(element, indent) {\n    const name = element.findAttribute(\"name\");\n    if (element instanceof LabelElement || name === \"\\u2026\") {\n      this.writeLine(indent, name);\n      return;\n    }\n    const content = [\"<\"];\n    if (name) {\n      content.push(name);\n    } else {\n      content.push(\"element\");\n    }\n    if (element.attributes) {\n      for (const attr of element.attributes) {\n        if (attr.name !== \"name\") {\n          content.push(\" \");\n          content.push(attr.name);\n          const value = attr.value;\n          if (value) {\n            content.push(\"=\");\n            content.push(quotes.ensure(value, this.quote));\n          }\n        }\n      }\n    }\n    content.push(\">\");\n    this.writeLine(indent, content.join(\"\"));\n  }\n};\nvar quotes;\n(function(quotes2) {\n  function ensure(value, which) {\n    return which + remove(value) + which;\n  }\n  quotes2.ensure = ensure;\n  function remove(value) {\n    const match = value.match(/^['\"](.*)[\"']$/);\n    if (match) {\n      return match[1];\n    }\n    return value;\n  }\n  quotes2.remove = remove;\n})(quotes || (quotes = {}));\nvar Specificity = class {\n  constructor() {\n    this.id = 0;\n    this.attr = 0;\n    this.tag = 0;\n  }\n};\nfunction toElement(node, parentElement) {\n  let result = new Element();\n  for (const child of node.getChildren()) {\n    switch (child.type) {\n      case NodeType.SelectorCombinator:\n        if (parentElement) {\n          const segments = child.getText().split(\"&\");\n          if (segments.length === 1) {\n            result.addAttr(\"name\", segments[0]);\n            break;\n          }\n          result = parentElement.cloneWithParent();\n          if (segments[0]) {\n            const root = result.findRoot();\n            root.prepend(segments[0]);\n          }\n          for (let i = 1; i < segments.length; i++) {\n            if (i > 1) {\n              const clone = parentElement.cloneWithParent();\n              result.addChild(clone.findRoot());\n              result = clone;\n            }\n            result.append(segments[i]);\n          }\n        }\n        break;\n      case NodeType.SelectorPlaceholder:\n        if (child.matches(\"@at-root\")) {\n          return result;\n        }\n      case NodeType.ElementNameSelector:\n        const text = child.getText();\n        result.addAttr(\"name\", text === \"*\" ? \"element\" : unescape(text));\n        break;\n      case NodeType.ClassSelector:\n        result.addAttr(\"class\", unescape(child.getText().substring(1)));\n        break;\n      case NodeType.IdentifierSelector:\n        result.addAttr(\"id\", unescape(child.getText().substring(1)));\n        break;\n      case NodeType.MixinDeclaration:\n        result.addAttr(\"class\", child.getName());\n        break;\n      case NodeType.PseudoSelector:\n        result.addAttr(unescape(child.getText()), \"\");\n        break;\n      case NodeType.AttributeSelector:\n        const selector = child;\n        const identifier = selector.getIdentifier();\n        if (identifier) {\n          const expression = selector.getValue();\n          const operator = selector.getOperator();\n          let value;\n          if (expression && operator) {\n            switch (unescape(operator.getText())) {\n              case \"|=\":\n                value = `${quotes.remove(unescape(expression.getText()))}-\\u2026`;\n                break;\n              case \"^=\":\n                value = `${quotes.remove(unescape(expression.getText()))}\\u2026`;\n                break;\n              case \"$=\":\n                value = `\\u2026${quotes.remove(unescape(expression.getText()))}`;\n                break;\n              case \"~=\":\n                value = ` \\u2026 ${quotes.remove(unescape(expression.getText()))} \\u2026 `;\n                break;\n              case \"*=\":\n                value = `\\u2026${quotes.remove(unescape(expression.getText()))}\\u2026`;\n                break;\n              default:\n                value = quotes.remove(unescape(expression.getText()));\n                break;\n            }\n          }\n          result.addAttr(unescape(identifier.getText()), value);\n        }\n        break;\n    }\n  }\n  return result;\n}\nfunction unescape(content) {\n  const scanner = new Scanner();\n  scanner.setSource(content);\n  const token = scanner.scanUnquotedString();\n  if (token) {\n    return token.text;\n  }\n  return content;\n}\nvar SelectorPrinting = class {\n  constructor(cssDataManager) {\n    this.cssDataManager = cssDataManager;\n  }\n  selectorToMarkedString(node, flagOpts) {\n    const root = selectorToElement(node);\n    if (root) {\n      const markedStrings = new MarkedStringPrinter('\"').print(root, flagOpts);\n      markedStrings.push(this.selectorToSpecificityMarkedString(node));\n      return markedStrings;\n    } else {\n      return [];\n    }\n  }\n  simpleSelectorToMarkedString(node) {\n    const element = toElement(node);\n    const markedStrings = new MarkedStringPrinter('\"').print(element);\n    markedStrings.push(this.selectorToSpecificityMarkedString(node));\n    return markedStrings;\n  }\n  isPseudoElementIdentifier(text) {\n    const match = text.match(/^::?([\\w-]+)/);\n    if (!match) {\n      return false;\n    }\n    return !!this.cssDataManager.getPseudoElement(\"::\" + match[1]);\n  }\n  selectorToSpecificityMarkedString(node) {\n    const calculateMostSpecificListItem = (childElements) => {\n      const specificity2 = new Specificity();\n      let mostSpecificListItem = new Specificity();\n      for (const containerElement of childElements) {\n        for (const childElement of containerElement.getChildren()) {\n          const itemSpecificity = calculateScore(childElement);\n          if (itemSpecificity.id > mostSpecificListItem.id) {\n            mostSpecificListItem = itemSpecificity;\n            continue;\n          } else if (itemSpecificity.id < mostSpecificListItem.id) {\n            continue;\n          }\n          if (itemSpecificity.attr > mostSpecificListItem.attr) {\n            mostSpecificListItem = itemSpecificity;\n            continue;\n          } else if (itemSpecificity.attr < mostSpecificListItem.attr) {\n            continue;\n          }\n          if (itemSpecificity.tag > mostSpecificListItem.tag) {\n            mostSpecificListItem = itemSpecificity;\n            continue;\n          }\n        }\n      }\n      specificity2.id += mostSpecificListItem.id;\n      specificity2.attr += mostSpecificListItem.attr;\n      specificity2.tag += mostSpecificListItem.tag;\n      return specificity2;\n    };\n    const calculateScore = (node2) => {\n      const specificity2 = new Specificity();\n      elementLoop:\n        for (const element of node2.getChildren()) {\n          switch (element.type) {\n            case NodeType.IdentifierSelector:\n              specificity2.id++;\n              break;\n            case NodeType.ClassSelector:\n            case NodeType.AttributeSelector:\n              specificity2.attr++;\n              break;\n            case NodeType.ElementNameSelector:\n              if (element.matches(\"*\")) {\n                break;\n              }\n              specificity2.tag++;\n              break;\n            case NodeType.PseudoSelector:\n              const text = element.getText();\n              const childElements = element.getChildren();\n              if (this.isPseudoElementIdentifier(text)) {\n                if (text.match(/^::slotted/i) && childElements.length > 0) {\n                  specificity2.tag++;\n                  let mostSpecificListItem = calculateMostSpecificListItem(childElements);\n                  specificity2.id += mostSpecificListItem.id;\n                  specificity2.attr += mostSpecificListItem.attr;\n                  specificity2.tag += mostSpecificListItem.tag;\n                  continue elementLoop;\n                }\n                specificity2.tag++;\n                continue elementLoop;\n              }\n              if (text.match(/^:where/i)) {\n                continue elementLoop;\n              }\n              if (text.match(/^:(?:not|has|is)/i) && childElements.length > 0) {\n                let mostSpecificListItem = calculateMostSpecificListItem(childElements);\n                specificity2.id += mostSpecificListItem.id;\n                specificity2.attr += mostSpecificListItem.attr;\n                specificity2.tag += mostSpecificListItem.tag;\n                continue elementLoop;\n              }\n              if (text.match(/^:(?:host|host-context)/i) && childElements.length > 0) {\n                specificity2.attr++;\n                let mostSpecificListItem = calculateMostSpecificListItem(childElements);\n                specificity2.id += mostSpecificListItem.id;\n                specificity2.attr += mostSpecificListItem.attr;\n                specificity2.tag += mostSpecificListItem.tag;\n                continue elementLoop;\n              }\n              if (text.match(/^:(?:nth-child|nth-last-child)/i) && childElements.length > 0) {\n                specificity2.attr++;\n                if (childElements.length === 3 && childElements[1].type === 23) {\n                  let mostSpecificListItem = calculateMostSpecificListItem(childElements[2].getChildren());\n                  specificity2.id += mostSpecificListItem.id;\n                  specificity2.attr += mostSpecificListItem.attr;\n                  specificity2.tag += mostSpecificListItem.tag;\n                  continue elementLoop;\n                }\n                const parser = new Parser();\n                const pseudoSelectorText = childElements[1].getText();\n                parser.scanner.setSource(pseudoSelectorText);\n                const firstToken = parser.scanner.scan();\n                const secondToken = parser.scanner.scan();\n                if (firstToken.text === \"n\" || firstToken.text === \"-n\" && secondToken.text === \"of\") {\n                  const complexSelectorListNodes = [];\n                  const complexSelectorText = pseudoSelectorText.slice(secondToken.offset + 2);\n                  const complexSelectorArray = complexSelectorText.split(\",\");\n                  for (const selector of complexSelectorArray) {\n                    const node3 = parser.internalParse(selector, parser._parseSelector);\n                    if (node3) {\n                      complexSelectorListNodes.push(node3);\n                    }\n                  }\n                  let mostSpecificListItem = calculateMostSpecificListItem(complexSelectorListNodes);\n                  specificity2.id += mostSpecificListItem.id;\n                  specificity2.attr += mostSpecificListItem.attr;\n                  specificity2.tag += mostSpecificListItem.tag;\n                  continue elementLoop;\n                }\n                continue elementLoop;\n              }\n              specificity2.attr++;\n              continue elementLoop;\n          }\n          if (element.getChildren().length > 0) {\n            const itemSpecificity = calculateScore(element);\n            specificity2.id += itemSpecificity.id;\n            specificity2.attr += itemSpecificity.attr;\n            specificity2.tag += itemSpecificity.tag;\n          }\n        }\n      return specificity2;\n    };\n    const specificity = calculateScore(node);\n    return `[${t(\"Selector Specificity\")}](https://developer.mozilla.org/docs/Web/CSS/Specificity): (${specificity.id}, ${specificity.attr}, ${specificity.tag})`;\n  }\n};\nvar SelectorElementBuilder = class {\n  constructor(element) {\n    this.prev = null;\n    this.element = element;\n  }\n  processSelector(selector) {\n    let parentElement = null;\n    if (!(this.element instanceof RootElement)) {\n      if (selector.getChildren().some((c) => c.hasChildren() && c.getChild(0).type === NodeType.SelectorCombinator)) {\n        const curr = this.element.findRoot();\n        if (curr.parent instanceof RootElement) {\n          parentElement = this.element;\n          this.element = curr.parent;\n          this.element.removeChild(curr);\n          this.prev = null;\n        }\n      }\n    }\n    for (const selectorChild of selector.getChildren()) {\n      if (selectorChild instanceof SimpleSelector) {\n        if (this.prev instanceof SimpleSelector) {\n          const labelElement = new LabelElement(\"\\u2026\");\n          this.element.addChild(labelElement);\n          this.element = labelElement;\n        } else if (this.prev && (this.prev.matches(\"+\") || this.prev.matches(\"~\")) && this.element.parent) {\n          this.element = this.element.parent;\n        }\n        if (this.prev && this.prev.matches(\"~\")) {\n          this.element.addChild(new LabelElement(\"\\u22EE\"));\n        }\n        const thisElement = toElement(selectorChild, parentElement);\n        const root = thisElement.findRoot();\n        this.element.addChild(root);\n        this.element = thisElement;\n      }\n      if (selectorChild instanceof SimpleSelector || selectorChild.type === NodeType.SelectorCombinatorParent || selectorChild.type === NodeType.SelectorCombinatorShadowPiercingDescendant || selectorChild.type === NodeType.SelectorCombinatorSibling || selectorChild.type === NodeType.SelectorCombinatorAllSiblings) {\n        this.prev = selectorChild;\n      }\n    }\n  }\n};\nfunction isNewSelectorContext(node) {\n  switch (node.type) {\n    case NodeType.MixinDeclaration:\n    case NodeType.Stylesheet:\n      return true;\n  }\n  return false;\n}\nfunction selectorToElement(node) {\n  if (node.matches(\"@at-root\")) {\n    return null;\n  }\n  const root = new RootElement();\n  const parentRuleSets = [];\n  const ruleSet = node.getParent();\n  if (ruleSet instanceof RuleSet) {\n    let parent = ruleSet.getParent();\n    while (parent && !isNewSelectorContext(parent)) {\n      if (parent instanceof RuleSet) {\n        if (parent.getSelectors().matches(\"@at-root\")) {\n          break;\n        }\n        parentRuleSets.push(parent);\n      }\n      parent = parent.getParent();\n    }\n  }\n  const builder = new SelectorElementBuilder(root);\n  for (let i = parentRuleSets.length - 1; i >= 0; i--) {\n    const selector = parentRuleSets[i].getSelectors().getChild(0);\n    if (selector) {\n      builder.processSelector(selector);\n    }\n  }\n  builder.processSelector(node);\n  return root;\n}\n\n// node_modules/vscode-css-languageservice/lib/esm/services/cssHover.js\nvar CSSHover = class {\n  constructor(clientCapabilities, cssDataManager) {\n    this.clientCapabilities = clientCapabilities;\n    this.cssDataManager = cssDataManager;\n    this.selectorPrinting = new SelectorPrinting(cssDataManager);\n  }\n  configure(settings) {\n    this.defaultSettings = settings;\n  }\n  doHover(document, position, stylesheet, settings = this.defaultSettings) {\n    function getRange2(node) {\n      return Range.create(document.positionAt(node.offset), document.positionAt(node.end));\n    }\n    const offset = document.offsetAt(position);\n    const nodepath = getNodePath(stylesheet, offset);\n    let hover = null;\n    let flagOpts;\n    for (let i = 0; i < nodepath.length; i++) {\n      const node = nodepath[i];\n      if (node instanceof Media) {\n        const regex = /@media[^\\{]+/g;\n        const matches2 = node.getText().match(regex);\n        flagOpts = {\n          isMedia: true,\n          text: matches2?.[0]\n        };\n      }\n      if (node instanceof Selector) {\n        hover = {\n          contents: this.selectorPrinting.selectorToMarkedString(node, flagOpts),\n          range: getRange2(node)\n        };\n        break;\n      }\n      if (node instanceof SimpleSelector) {\n        if (!startsWith(node.getText(), \"@\")) {\n          hover = {\n            contents: this.selectorPrinting.simpleSelectorToMarkedString(node),\n            range: getRange2(node)\n          };\n        }\n        break;\n      }\n      if (node instanceof Declaration) {\n        const propertyName = node.getFullPropertyName();\n        const entry = this.cssDataManager.getProperty(propertyName);\n        if (entry) {\n          const contents = getEntryDescription(entry, this.doesSupportMarkdown(), settings);\n          if (contents) {\n            hover = {\n              contents,\n              range: getRange2(node)\n            };\n          } else {\n            hover = null;\n          }\n        }\n        continue;\n      }\n      if (node instanceof UnknownAtRule) {\n        const atRuleName = node.getText();\n        const entry = this.cssDataManager.getAtDirective(atRuleName);\n        if (entry) {\n          const contents = getEntryDescription(entry, this.doesSupportMarkdown(), settings);\n          if (contents) {\n            hover = {\n              contents,\n              range: getRange2(node)\n            };\n          } else {\n            hover = null;\n          }\n        }\n        continue;\n      }\n      if (node instanceof Node && node.type === NodeType.PseudoSelector) {\n        const selectorName = node.getText();\n        const entry = selectorName.slice(0, 2) === \"::\" ? this.cssDataManager.getPseudoElement(selectorName) : this.cssDataManager.getPseudoClass(selectorName);\n        if (entry) {\n          const contents = getEntryDescription(entry, this.doesSupportMarkdown(), settings);\n          if (contents) {\n            hover = {\n              contents,\n              range: getRange2(node)\n            };\n          } else {\n            hover = null;\n          }\n        }\n        continue;\n      }\n    }\n    if (hover) {\n      hover.contents = this.convertContents(hover.contents);\n    }\n    return hover;\n  }\n  convertContents(contents) {\n    if (!this.doesSupportMarkdown()) {\n      if (typeof contents === \"string\") {\n        return contents;\n      } else if (\"kind\" in contents) {\n        return {\n          kind: \"plaintext\",\n          value: contents.value\n        };\n      } else if (Array.isArray(contents)) {\n        return contents.map((c) => {\n          return typeof c === \"string\" ? c : c.value;\n        });\n      } else {\n        return contents.value;\n      }\n    }\n    return contents;\n  }\n  doesSupportMarkdown() {\n    if (!isDefined(this.supportsMarkdown)) {\n      if (!isDefined(this.clientCapabilities)) {\n        this.supportsMarkdown = true;\n        return this.supportsMarkdown;\n      }\n      const hover = this.clientCapabilities.textDocument && this.clientCapabilities.textDocument.hover;\n      this.supportsMarkdown = hover && hover.contentFormat && Array.isArray(hover.contentFormat) && hover.contentFormat.indexOf(MarkupKind.Markdown) !== -1;\n    }\n    return this.supportsMarkdown;\n  }\n};\n\n// node_modules/vscode-css-languageservice/lib/esm/services/cssNavigation.js\nvar startsWithSchemeRegex = /^\\w+:\\/\\//;\nvar startsWithData = /^data:/;\nvar CSSNavigation = class {\n  constructor(fileSystemProvider, resolveModuleReferences) {\n    this.fileSystemProvider = fileSystemProvider;\n    this.resolveModuleReferences = resolveModuleReferences;\n  }\n  configure(settings) {\n    this.defaultSettings = settings;\n  }\n  findDefinition(document, position, stylesheet) {\n    const symbols = new Symbols(stylesheet);\n    const offset = document.offsetAt(position);\n    const node = getNodeAtOffset(stylesheet, offset);\n    if (!node) {\n      return null;\n    }\n    const symbol = symbols.findSymbolFromNode(node);\n    if (!symbol) {\n      return null;\n    }\n    return {\n      uri: document.uri,\n      range: getRange(symbol.node, document)\n    };\n  }\n  findReferences(document, position, stylesheet) {\n    const highlights = this.findDocumentHighlights(document, position, stylesheet);\n    return highlights.map((h) => {\n      return {\n        uri: document.uri,\n        range: h.range\n      };\n    });\n  }\n  getHighlightNode(document, position, stylesheet) {\n    const offset = document.offsetAt(position);\n    let node = getNodeAtOffset(stylesheet, offset);\n    if (!node || node.type === NodeType.Stylesheet || node.type === NodeType.Declarations) {\n      return;\n    }\n    if (node.type === NodeType.Identifier && node.parent && node.parent.type === NodeType.ClassSelector) {\n      node = node.parent;\n    }\n    return node;\n  }\n  findDocumentHighlights(document, position, stylesheet) {\n    const result = [];\n    const node = this.getHighlightNode(document, position, stylesheet);\n    if (!node) {\n      return result;\n    }\n    const symbols = new Symbols(stylesheet);\n    const symbol = symbols.findSymbolFromNode(node);\n    const name = node.getText();\n    stylesheet.accept((candidate) => {\n      if (symbol) {\n        if (symbols.matchesSymbol(candidate, symbol)) {\n          result.push({\n            kind: getHighlightKind(candidate),\n            range: getRange(candidate, document)\n          });\n          return false;\n        }\n      } else if (node && node.type === candidate.type && candidate.matches(name)) {\n        result.push({\n          kind: getHighlightKind(candidate),\n          range: getRange(candidate, document)\n        });\n      }\n      return true;\n    });\n    return result;\n  }\n  isRawStringDocumentLinkNode(node) {\n    return node.type === NodeType.Import;\n  }\n  findDocumentLinks(document, stylesheet, documentContext) {\n    const linkData = this.findUnresolvedLinks(document, stylesheet);\n    const resolvedLinks = [];\n    for (let data of linkData) {\n      const link = data.link;\n      const target = link.target;\n      if (!target || startsWithData.test(target)) {\n      } else if (startsWithSchemeRegex.test(target)) {\n        resolvedLinks.push(link);\n      } else {\n        const resolved = documentContext.resolveReference(target, document.uri);\n        if (resolved) {\n          link.target = resolved;\n        }\n        resolvedLinks.push(link);\n      }\n    }\n    return resolvedLinks;\n  }\n  async findDocumentLinks2(document, stylesheet, documentContext) {\n    const linkData = this.findUnresolvedLinks(document, stylesheet);\n    const resolvedLinks = [];\n    for (let data of linkData) {\n      const link = data.link;\n      const target = link.target;\n      if (!target || startsWithData.test(target)) {\n      } else if (startsWithSchemeRegex.test(target)) {\n        resolvedLinks.push(link);\n      } else {\n        const resolvedTarget = await this.resolveReference(target, document.uri, documentContext, data.isRawLink);\n        if (resolvedTarget !== void 0) {\n          link.target = resolvedTarget;\n          resolvedLinks.push(link);\n        }\n      }\n    }\n    return resolvedLinks;\n  }\n  findUnresolvedLinks(document, stylesheet) {\n    const result = [];\n    const collect = (uriStringNode) => {\n      let rawUri = uriStringNode.getText();\n      const range = getRange(uriStringNode, document);\n      if (range.start.line === range.end.line && range.start.character === range.end.character) {\n        return;\n      }\n      if (startsWith(rawUri, `'`) || startsWith(rawUri, `\"`)) {\n        rawUri = rawUri.slice(1, -1);\n      }\n      const isRawLink = uriStringNode.parent ? this.isRawStringDocumentLinkNode(uriStringNode.parent) : false;\n      result.push({ link: { target: rawUri, range }, isRawLink });\n    };\n    stylesheet.accept((candidate) => {\n      if (candidate.type === NodeType.URILiteral) {\n        const first = candidate.getChild(0);\n        if (first) {\n          collect(first);\n        }\n        return false;\n      }\n      if (candidate.parent && this.isRawStringDocumentLinkNode(candidate.parent)) {\n        const rawText = candidate.getText();\n        if (startsWith(rawText, `'`) || startsWith(rawText, `\"`)) {\n          collect(candidate);\n        }\n        return false;\n      }\n      return true;\n    });\n    return result;\n  }\n  findSymbolInformations(document, stylesheet) {\n    const result = [];\n    const addSymbolInformation = (name, kind, symbolNodeOrRange) => {\n      const range = symbolNodeOrRange instanceof Node ? getRange(symbolNodeOrRange, document) : symbolNodeOrRange;\n      const entry = {\n        name: name || t(\"<undefined>\"),\n        kind,\n        location: Location.create(document.uri, range)\n      };\n      result.push(entry);\n    };\n    this.collectDocumentSymbols(document, stylesheet, addSymbolInformation);\n    return result;\n  }\n  findDocumentSymbols(document, stylesheet) {\n    const result = [];\n    const parents = [];\n    const addDocumentSymbol = (name, kind, symbolNodeOrRange, nameNodeOrRange, bodyNode) => {\n      const range = symbolNodeOrRange instanceof Node ? getRange(symbolNodeOrRange, document) : symbolNodeOrRange;\n      let selectionRange = nameNodeOrRange instanceof Node ? getRange(nameNodeOrRange, document) : nameNodeOrRange;\n      if (!selectionRange || !containsRange(range, selectionRange)) {\n        selectionRange = Range.create(range.start, range.start);\n      }\n      const entry = {\n        name: name || t(\"<undefined>\"),\n        kind,\n        range,\n        selectionRange\n      };\n      let top = parents.pop();\n      while (top && !containsRange(top[1], range)) {\n        top = parents.pop();\n      }\n      if (top) {\n        const topSymbol = top[0];\n        if (!topSymbol.children) {\n          topSymbol.children = [];\n        }\n        topSymbol.children.push(entry);\n        parents.push(top);\n      } else {\n        result.push(entry);\n      }\n      if (bodyNode) {\n        parents.push([entry, getRange(bodyNode, document)]);\n      }\n    };\n    this.collectDocumentSymbols(document, stylesheet, addDocumentSymbol);\n    return result;\n  }\n  collectDocumentSymbols(document, stylesheet, collect) {\n    stylesheet.accept((node) => {\n      if (node instanceof RuleSet) {\n        for (const selector of node.getSelectors().getChildren()) {\n          if (selector instanceof Selector) {\n            const range = Range.create(document.positionAt(selector.offset), document.positionAt(node.end));\n            collect(selector.getText(), SymbolKind.Class, range, selector, node.getDeclarations());\n          }\n        }\n      } else if (node instanceof VariableDeclaration) {\n        collect(node.getName(), SymbolKind.Variable, node, node.getVariable(), void 0);\n      } else if (node instanceof MixinDeclaration) {\n        collect(node.getName(), SymbolKind.Method, node, node.getIdentifier(), node.getDeclarations());\n      } else if (node instanceof FunctionDeclaration) {\n        collect(node.getName(), SymbolKind.Function, node, node.getIdentifier(), node.getDeclarations());\n      } else if (node instanceof Keyframe) {\n        const name = t(\"@keyframes {0}\", node.getName());\n        collect(name, SymbolKind.Class, node, node.getIdentifier(), node.getDeclarations());\n      } else if (node instanceof FontFace) {\n        const name = t(\"@font-face\");\n        collect(name, SymbolKind.Class, node, void 0, node.getDeclarations());\n      } else if (node instanceof Media) {\n        const mediaList = node.getChild(0);\n        if (mediaList instanceof Medialist) {\n          const name = \"@media \" + mediaList.getText();\n          collect(name, SymbolKind.Module, node, mediaList, node.getDeclarations());\n        }\n      }\n      return true;\n    });\n  }\n  findDocumentColors(document, stylesheet) {\n    const result = [];\n    stylesheet.accept((node) => {\n      const colorInfo = getColorInformation(node, document);\n      if (colorInfo) {\n        result.push(colorInfo);\n      }\n      return true;\n    });\n    return result;\n  }\n  getColorPresentations(document, stylesheet, color, range) {\n    const result = [];\n    const red256 = Math.round(color.red * 255), green256 = Math.round(color.green * 255), blue256 = Math.round(color.blue * 255);\n    let label;\n    if (color.alpha === 1) {\n      label = `rgb(${red256}, ${green256}, ${blue256})`;\n    } else {\n      label = `rgba(${red256}, ${green256}, ${blue256}, ${color.alpha})`;\n    }\n    result.push({ label, textEdit: TextEdit.replace(range, label) });\n    if (color.alpha === 1) {\n      label = `#${toTwoDigitHex(red256)}${toTwoDigitHex(green256)}${toTwoDigitHex(blue256)}`;\n    } else {\n      label = `#${toTwoDigitHex(red256)}${toTwoDigitHex(green256)}${toTwoDigitHex(blue256)}${toTwoDigitHex(Math.round(color.alpha * 255))}`;\n    }\n    result.push({ label, textEdit: TextEdit.replace(range, label) });\n    const hsl = hslFromColor(color);\n    if (hsl.a === 1) {\n      label = `hsl(${hsl.h}, ${Math.round(hsl.s * 100)}%, ${Math.round(hsl.l * 100)}%)`;\n    } else {\n      label = `hsla(${hsl.h}, ${Math.round(hsl.s * 100)}%, ${Math.round(hsl.l * 100)}%, ${hsl.a})`;\n    }\n    result.push({ label, textEdit: TextEdit.replace(range, label) });\n    const hwb = hwbFromColor(color);\n    if (hwb.a === 1) {\n      label = `hwb(${hwb.h} ${Math.round(hwb.w * 100)}% ${Math.round(hwb.b * 100)}%)`;\n    } else {\n      label = `hwb(${hwb.h} ${Math.round(hwb.w * 100)}% ${Math.round(hwb.b * 100)}% / ${hwb.a})`;\n    }\n    result.push({ label, textEdit: TextEdit.replace(range, label) });\n    return result;\n  }\n  prepareRename(document, position, stylesheet) {\n    const node = this.getHighlightNode(document, position, stylesheet);\n    if (node) {\n      return Range.create(document.positionAt(node.offset), document.positionAt(node.end));\n    }\n  }\n  doRename(document, position, newName, stylesheet) {\n    const highlights = this.findDocumentHighlights(document, position, stylesheet);\n    const edits = highlights.map((h) => TextEdit.replace(h.range, newName));\n    return {\n      changes: { [document.uri]: edits }\n    };\n  }\n  async resolveModuleReference(ref, documentUri, documentContext) {\n    if (startsWith(documentUri, \"file://\")) {\n      const moduleName = getModuleNameFromPath(ref);\n      if (moduleName && moduleName !== \".\" && moduleName !== \"..\") {\n        const rootFolderUri = documentContext.resolveReference(\"/\", documentUri);\n        const documentFolderUri = dirname(documentUri);\n        const modulePath = await this.resolvePathToModule(moduleName, documentFolderUri, rootFolderUri);\n        if (modulePath) {\n          const pathWithinModule = ref.substring(moduleName.length + 1);\n          return joinPath(modulePath, pathWithinModule);\n        }\n      }\n    }\n    return void 0;\n  }\n  async mapReference(target, isRawLink) {\n    return target;\n  }\n  async resolveReference(target, documentUri, documentContext, isRawLink = false, settings = this.defaultSettings) {\n    if (target[0] === \"~\" && target[1] !== \"/\" && this.fileSystemProvider) {\n      target = target.substring(1);\n      return this.mapReference(await this.resolveModuleReference(target, documentUri, documentContext), isRawLink);\n    }\n    const ref = await this.mapReference(documentContext.resolveReference(target, documentUri), isRawLink);\n    if (this.resolveModuleReferences) {\n      if (ref && await this.fileExists(ref)) {\n        return ref;\n      }\n      const moduleReference = await this.mapReference(await this.resolveModuleReference(target, documentUri, documentContext), isRawLink);\n      if (moduleReference) {\n        return moduleReference;\n      }\n    }\n    if (ref && !await this.fileExists(ref)) {\n      const rootFolderUri = documentContext.resolveReference(\"/\", documentUri);\n      if (settings && rootFolderUri) {\n        if (target in settings) {\n          return this.mapReference(joinPath(rootFolderUri, settings[target]), isRawLink);\n        }\n        const firstSlash = target.indexOf(\"/\");\n        const prefix = `${target.substring(0, firstSlash)}/`;\n        if (prefix in settings) {\n          const aliasPath = settings[prefix].slice(0, -1);\n          let newPath = joinPath(rootFolderUri, aliasPath);\n          return this.mapReference(newPath = joinPath(newPath, target.substring(prefix.length - 1)), isRawLink);\n        }\n      }\n    }\n    return ref;\n  }\n  async resolvePathToModule(_moduleName, documentFolderUri, rootFolderUri) {\n    const packPath = joinPath(documentFolderUri, \"node_modules\", _moduleName, \"package.json\");\n    if (await this.fileExists(packPath)) {\n      return dirname(packPath);\n    } else if (rootFolderUri && documentFolderUri.startsWith(rootFolderUri) && documentFolderUri.length !== rootFolderUri.length) {\n      return this.resolvePathToModule(_moduleName, dirname(documentFolderUri), rootFolderUri);\n    }\n    return void 0;\n  }\n  async fileExists(uri) {\n    if (!this.fileSystemProvider) {\n      return false;\n    }\n    try {\n      const stat = await this.fileSystemProvider.stat(uri);\n      if (stat.type === FileType.Unknown && stat.size === -1) {\n        return false;\n      }\n      return true;\n    } catch (err) {\n      return false;\n    }\n  }\n};\nfunction getColorInformation(node, document) {\n  const color = getColorValue(node);\n  if (color) {\n    const range = getRange(node, document);\n    return { color, range };\n  }\n  return null;\n}\nfunction getRange(node, document) {\n  return Range.create(document.positionAt(node.offset), document.positionAt(node.end));\n}\nfunction containsRange(range, otherRange) {\n  const otherStartLine = otherRange.start.line, otherEndLine = otherRange.end.line;\n  const rangeStartLine = range.start.line, rangeEndLine = range.end.line;\n  if (otherStartLine < rangeStartLine || otherEndLine < rangeStartLine) {\n    return false;\n  }\n  if (otherStartLine > rangeEndLine || otherEndLine > rangeEndLine) {\n    return false;\n  }\n  if (otherStartLine === rangeStartLine && otherRange.start.character < range.start.character) {\n    return false;\n  }\n  if (otherEndLine === rangeEndLine && otherRange.end.character > range.end.character) {\n    return false;\n  }\n  return true;\n}\nfunction getHighlightKind(node) {\n  if (node.type === NodeType.Selector) {\n    return DocumentHighlightKind.Write;\n  }\n  if (node instanceof Identifier) {\n    if (node.parent && node.parent instanceof Property) {\n      if (node.isCustomProperty) {\n        return DocumentHighlightKind.Write;\n      }\n    }\n  }\n  if (node.parent) {\n    switch (node.parent.type) {\n      case NodeType.FunctionDeclaration:\n      case NodeType.MixinDeclaration:\n      case NodeType.Keyframe:\n      case NodeType.VariableDeclaration:\n      case NodeType.FunctionParameter:\n        return DocumentHighlightKind.Write;\n    }\n  }\n  return DocumentHighlightKind.Read;\n}\nfunction toTwoDigitHex(n) {\n  const r = n.toString(16);\n  return r.length !== 2 ? \"0\" + r : r;\n}\nfunction getModuleNameFromPath(path) {\n  const firstSlash = path.indexOf(\"/\");\n  if (firstSlash === -1) {\n    return \"\";\n  }\n  if (path[0] === \"@\") {\n    const secondSlash = path.indexOf(\"/\", firstSlash + 1);\n    if (secondSlash === -1) {\n      return path;\n    }\n    return path.substring(0, secondSlash);\n  }\n  return path.substring(0, firstSlash);\n}\n\n// node_modules/vscode-css-languageservice/lib/esm/services/lintRules.js\nvar Warning = Level.Warning;\nvar Error2 = Level.Error;\nvar Ignore = Level.Ignore;\nvar Rule = class {\n  constructor(id, message, defaultValue) {\n    this.id = id;\n    this.message = message;\n    this.defaultValue = defaultValue;\n  }\n};\nvar Setting = class {\n  constructor(id, message, defaultValue) {\n    this.id = id;\n    this.message = message;\n    this.defaultValue = defaultValue;\n  }\n};\nvar Rules = {\n  AllVendorPrefixes: new Rule(\"compatibleVendorPrefixes\", t(\"When using a vendor-specific prefix make sure to also include all other vendor-specific properties\"), Ignore),\n  IncludeStandardPropertyWhenUsingVendorPrefix: new Rule(\"vendorPrefix\", t(\"When using a vendor-specific prefix also include the standard property\"), Warning),\n  DuplicateDeclarations: new Rule(\"duplicateProperties\", t(\"Do not use duplicate style definitions\"), Ignore),\n  EmptyRuleSet: new Rule(\"emptyRules\", t(\"Do not use empty rulesets\"), Warning),\n  ImportStatemement: new Rule(\"importStatement\", t(\"Import statements do not load in parallel\"), Ignore),\n  BewareOfBoxModelSize: new Rule(\"boxModel\", t(\"Do not use width or height when using padding or border\"), Ignore),\n  UniversalSelector: new Rule(\"universalSelector\", t(\"The universal selector (*) is known to be slow\"), Ignore),\n  ZeroWithUnit: new Rule(\"zeroUnits\", t(\"No unit for zero needed\"), Ignore),\n  RequiredPropertiesForFontFace: new Rule(\"fontFaceProperties\", t(\"@font-face rule must define 'src' and 'font-family' properties\"), Warning),\n  HexColorLength: new Rule(\"hexColorLength\", t(\"Hex colors must consist of three, four, six or eight hex numbers\"), Error2),\n  ArgsInColorFunction: new Rule(\"argumentsInColorFunction\", t(\"Invalid number of parameters\"), Error2),\n  UnknownProperty: new Rule(\"unknownProperties\", t(\"Unknown property.\"), Warning),\n  UnknownAtRules: new Rule(\"unknownAtRules\", t(\"Unknown at-rule.\"), Warning),\n  IEStarHack: new Rule(\"ieHack\", t(\"IE hacks are only necessary when supporting IE7 and older\"), Ignore),\n  UnknownVendorSpecificProperty: new Rule(\"unknownVendorSpecificProperties\", t(\"Unknown vendor specific property.\"), Ignore),\n  PropertyIgnoredDueToDisplay: new Rule(\"propertyIgnoredDueToDisplay\", t(\"Property is ignored due to the display.\"), Warning),\n  AvoidImportant: new Rule(\"important\", t(\"Avoid using !important. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored.\"), Ignore),\n  AvoidFloat: new Rule(\"float\", t(\"Avoid using 'float'. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes.\"), Ignore),\n  AvoidIdSelector: new Rule(\"idSelector\", t(\"Selectors should not contain IDs because these rules are too tightly coupled with the HTML.\"), Ignore)\n};\nvar Settings = {\n  ValidProperties: new Setting(\"validProperties\", t(\"A list of properties that are not validated against the `unknownProperties` rule.\"), [])\n};\nvar LintConfigurationSettings = class {\n  constructor(conf = {}) {\n    this.conf = conf;\n  }\n  getRule(rule) {\n    if (this.conf.hasOwnProperty(rule.id)) {\n      const level = toLevel(this.conf[rule.id]);\n      if (level) {\n        return level;\n      }\n    }\n    return rule.defaultValue;\n  }\n  getSetting(setting) {\n    return this.conf[setting.id];\n  }\n};\nfunction toLevel(level) {\n  switch (level) {\n    case \"ignore\":\n      return Level.Ignore;\n    case \"warning\":\n      return Level.Warning;\n    case \"error\":\n      return Level.Error;\n  }\n  return null;\n}\n\n// node_modules/vscode-css-languageservice/lib/esm/services/cssCodeActions.js\nvar CSSCodeActions = class {\n  constructor(cssDataManager) {\n    this.cssDataManager = cssDataManager;\n  }\n  doCodeActions(document, range, context, stylesheet) {\n    return this.doCodeActions2(document, range, context, stylesheet).map((ca) => {\n      const textDocumentEdit = ca.edit && ca.edit.documentChanges && ca.edit.documentChanges[0];\n      return Command.create(ca.title, \"_css.applyCodeAction\", document.uri, document.version, textDocumentEdit && textDocumentEdit.edits);\n    });\n  }\n  doCodeActions2(document, range, context, stylesheet) {\n    const result = [];\n    if (context.diagnostics) {\n      for (const diagnostic of context.diagnostics) {\n        this.appendFixesForMarker(document, stylesheet, diagnostic, result);\n      }\n    }\n    return result;\n  }\n  getFixesForUnknownProperty(document, property, marker, result) {\n    const propertyName = property.getName();\n    const candidates = [];\n    this.cssDataManager.getProperties().forEach((p) => {\n      const score = difference(propertyName, p.name);\n      if (score >= propertyName.length / 2) {\n        candidates.push({ property: p.name, score });\n      }\n    });\n    candidates.sort((a2, b) => {\n      return b.score - a2.score || a2.property.localeCompare(b.property);\n    });\n    let maxActions = 3;\n    for (const candidate of candidates) {\n      const propertyName2 = candidate.property;\n      const title = t(\"Rename to '{0}'\", propertyName2);\n      const edit = TextEdit.replace(marker.range, propertyName2);\n      const documentIdentifier = VersionedTextDocumentIdentifier.create(document.uri, document.version);\n      const workspaceEdit = { documentChanges: [TextDocumentEdit.create(documentIdentifier, [edit])] };\n      const codeAction = CodeAction.create(title, workspaceEdit, CodeActionKind.QuickFix);\n      codeAction.diagnostics = [marker];\n      result.push(codeAction);\n      if (--maxActions <= 0) {\n        return;\n      }\n    }\n  }\n  appendFixesForMarker(document, stylesheet, marker, result) {\n    if (marker.code !== Rules.UnknownProperty.id) {\n      return;\n    }\n    const offset = document.offsetAt(marker.range.start);\n    const end = document.offsetAt(marker.range.end);\n    const nodepath = getNodePath(stylesheet, offset);\n    for (let i = nodepath.length - 1; i >= 0; i--) {\n      const node = nodepath[i];\n      if (node instanceof Declaration) {\n        const property = node.getProperty();\n        if (property && property.offset === offset && property.end === end) {\n          this.getFixesForUnknownProperty(document, property, marker, result);\n          return;\n        }\n      }\n    }\n  }\n};\n\n// node_modules/vscode-css-languageservice/lib/esm/services/lintUtil.js\nvar Element2 = class {\n  constructor(decl) {\n    this.fullPropertyName = decl.getFullPropertyName().toLowerCase();\n    this.node = decl;\n  }\n};\nfunction setSide(model, side, value, property) {\n  const state = model[side];\n  state.value = value;\n  if (value) {\n    if (!includes(state.properties, property)) {\n      state.properties.push(property);\n    }\n  }\n}\nfunction setAllSides(model, value, property) {\n  setSide(model, \"top\", value, property);\n  setSide(model, \"right\", value, property);\n  setSide(model, \"bottom\", value, property);\n  setSide(model, \"left\", value, property);\n}\nfunction updateModelWithValue(model, side, value, property) {\n  if (side === \"top\" || side === \"right\" || side === \"bottom\" || side === \"left\") {\n    setSide(model, side, value, property);\n  } else {\n    setAllSides(model, value, property);\n  }\n}\nfunction updateModelWithList(model, values2, property) {\n  switch (values2.length) {\n    case 1:\n      updateModelWithValue(model, void 0, values2[0], property);\n      break;\n    case 2:\n      updateModelWithValue(model, \"top\", values2[0], property);\n      updateModelWithValue(model, \"bottom\", values2[0], property);\n      updateModelWithValue(model, \"right\", values2[1], property);\n      updateModelWithValue(model, \"left\", values2[1], property);\n      break;\n    case 3:\n      updateModelWithValue(model, \"top\", values2[0], property);\n      updateModelWithValue(model, \"right\", values2[1], property);\n      updateModelWithValue(model, \"left\", values2[1], property);\n      updateModelWithValue(model, \"bottom\", values2[2], property);\n      break;\n    case 4:\n      updateModelWithValue(model, \"top\", values2[0], property);\n      updateModelWithValue(model, \"right\", values2[1], property);\n      updateModelWithValue(model, \"bottom\", values2[2], property);\n      updateModelWithValue(model, \"left\", values2[3], property);\n      break;\n  }\n}\nfunction matches(value, candidates) {\n  for (let candidate of candidates) {\n    if (value.matches(candidate)) {\n      return true;\n    }\n  }\n  return false;\n}\nfunction checkLineWidth(value, allowsKeywords = true) {\n  if (allowsKeywords && matches(value, [\"initial\", \"unset\"])) {\n    return false;\n  }\n  return parseFloat(value.getText()) !== 0;\n}\nfunction checkLineWidthList(nodes, allowsKeywords = true) {\n  return nodes.map((node) => checkLineWidth(node, allowsKeywords));\n}\nfunction checkLineStyle(valueNode, allowsKeywords = true) {\n  if (matches(valueNode, [\"none\", \"hidden\"])) {\n    return false;\n  }\n  if (allowsKeywords && matches(valueNode, [\"initial\", \"unset\"])) {\n    return false;\n  }\n  return true;\n}\nfunction checkLineStyleList(nodes, allowsKeywords = true) {\n  return nodes.map((node) => checkLineStyle(node, allowsKeywords));\n}\nfunction checkBorderShorthand(node) {\n  const children = node.getChildren();\n  if (children.length === 1) {\n    const value = children[0];\n    return checkLineWidth(value) && checkLineStyle(value);\n  }\n  for (const child of children) {\n    const value = child;\n    if (!checkLineWidth(\n      value,\n      /* allowsKeywords: */\n      false\n    ) || !checkLineStyle(\n      value,\n      /* allowsKeywords: */\n      false\n    )) {\n      return false;\n    }\n  }\n  return true;\n}\nfunction calculateBoxModel(propertyTable) {\n  const model = {\n    top: { value: false, properties: [] },\n    right: { value: false, properties: [] },\n    bottom: { value: false, properties: [] },\n    left: { value: false, properties: [] }\n  };\n  for (const property of propertyTable) {\n    const value = property.node.value;\n    if (typeof value === \"undefined\") {\n      continue;\n    }\n    switch (property.fullPropertyName) {\n      case \"box-sizing\":\n        return {\n          top: { value: false, properties: [] },\n          right: { value: false, properties: [] },\n          bottom: { value: false, properties: [] },\n          left: { value: false, properties: [] }\n        };\n      case \"width\":\n        model.width = property;\n        break;\n      case \"height\":\n        model.height = property;\n        break;\n      default:\n        const segments = property.fullPropertyName.split(\"-\");\n        switch (segments[0]) {\n          case \"border\":\n            switch (segments[1]) {\n              case void 0:\n              case \"top\":\n              case \"right\":\n              case \"bottom\":\n              case \"left\":\n                switch (segments[2]) {\n                  case void 0:\n                    updateModelWithValue(model, segments[1], checkBorderShorthand(value), property);\n                    break;\n                  case \"width\":\n                    updateModelWithValue(model, segments[1], checkLineWidth(value, false), property);\n                    break;\n                  case \"style\":\n                    updateModelWithValue(model, segments[1], checkLineStyle(value, true), property);\n                    break;\n                }\n                break;\n              case \"width\":\n                updateModelWithList(model, checkLineWidthList(value.getChildren(), false), property);\n                break;\n              case \"style\":\n                updateModelWithList(model, checkLineStyleList(value.getChildren(), true), property);\n                break;\n            }\n            break;\n          case \"padding\":\n            if (segments.length === 1) {\n              updateModelWithList(model, checkLineWidthList(value.getChildren(), true), property);\n            } else {\n              updateModelWithValue(model, segments[1], checkLineWidth(value, true), property);\n            }\n            break;\n        }\n        break;\n    }\n  }\n  return model;\n}\n\n// node_modules/vscode-css-languageservice/lib/esm/services/lint.js\nvar NodesByRootMap = class {\n  constructor() {\n    this.data = {};\n  }\n  add(root, name, node) {\n    let entry = this.data[root];\n    if (!entry) {\n      entry = { nodes: [], names: [] };\n      this.data[root] = entry;\n    }\n    entry.names.push(name);\n    if (node) {\n      entry.nodes.push(node);\n    }\n  }\n};\nvar LintVisitor = class _LintVisitor {\n  static entries(node, document, settings, cssDataManager, entryFilter) {\n    const visitor = new _LintVisitor(document, settings, cssDataManager);\n    node.acceptVisitor(visitor);\n    visitor.completeValidations();\n    return visitor.getEntries(entryFilter);\n  }\n  constructor(document, settings, cssDataManager) {\n    this.cssDataManager = cssDataManager;\n    this.warnings = [];\n    this.settings = settings;\n    this.documentText = document.getText();\n    this.keyframes = new NodesByRootMap();\n    this.validProperties = {};\n    const properties = settings.getSetting(Settings.ValidProperties);\n    if (Array.isArray(properties)) {\n      properties.forEach((p) => {\n        if (typeof p === \"string\") {\n          const name = p.trim().toLowerCase();\n          if (name.length) {\n            this.validProperties[name] = true;\n          }\n        }\n      });\n    }\n  }\n  isValidPropertyDeclaration(element) {\n    const propertyName = element.fullPropertyName;\n    return this.validProperties[propertyName];\n  }\n  fetch(input, s) {\n    const elements = [];\n    for (const curr of input) {\n      if (curr.fullPropertyName === s) {\n        elements.push(curr);\n      }\n    }\n    return elements;\n  }\n  fetchWithValue(input, s, v) {\n    const elements = [];\n    for (const inputElement of input) {\n      if (inputElement.fullPropertyName === s) {\n        const expression = inputElement.node.getValue();\n        if (expression && this.findValueInExpression(expression, v)) {\n          elements.push(inputElement);\n        }\n      }\n    }\n    return elements;\n  }\n  findValueInExpression(expression, v) {\n    let found = false;\n    expression.accept((node) => {\n      if (node.type === NodeType.Identifier && node.matches(v)) {\n        found = true;\n      }\n      return !found;\n    });\n    return found;\n  }\n  getEntries(filter = Level.Warning | Level.Error) {\n    return this.warnings.filter((entry) => {\n      return (entry.getLevel() & filter) !== 0;\n    });\n  }\n  addEntry(node, rule, details) {\n    const entry = new Marker(node, rule, this.settings.getRule(rule), details);\n    this.warnings.push(entry);\n  }\n  getMissingNames(expected, actual) {\n    const expectedClone = expected.slice(0);\n    for (let i = 0; i < actual.length; i++) {\n      const k = expectedClone.indexOf(actual[i]);\n      if (k !== -1) {\n        expectedClone[k] = null;\n      }\n    }\n    let result = null;\n    for (let i = 0; i < expectedClone.length; i++) {\n      const curr = expectedClone[i];\n      if (curr) {\n        if (result === null) {\n          result = t(\"'{0}'\", curr);\n        } else {\n          result = t(\"{0}, '{1}'\", result, curr);\n        }\n      }\n    }\n    return result;\n  }\n  visitNode(node) {\n    switch (node.type) {\n      case NodeType.UnknownAtRule:\n        return this.visitUnknownAtRule(node);\n      case NodeType.Keyframe:\n        return this.visitKeyframe(node);\n      case NodeType.FontFace:\n        return this.visitFontFace(node);\n      case NodeType.Ruleset:\n        return this.visitRuleSet(node);\n      case NodeType.SimpleSelector:\n        return this.visitSimpleSelector(node);\n      case NodeType.Function:\n        return this.visitFunction(node);\n      case NodeType.NumericValue:\n        return this.visitNumericValue(node);\n      case NodeType.Import:\n        return this.visitImport(node);\n      case NodeType.HexColorValue:\n        return this.visitHexColorValue(node);\n      case NodeType.Prio:\n        return this.visitPrio(node);\n      case NodeType.IdentifierSelector:\n        return this.visitIdentifierSelector(node);\n    }\n    return true;\n  }\n  completeValidations() {\n    this.validateKeyframes();\n  }\n  visitUnknownAtRule(node) {\n    const atRuleName = node.getChild(0);\n    if (!atRuleName) {\n      return false;\n    }\n    const atDirective = this.cssDataManager.getAtDirective(atRuleName.getText());\n    if (atDirective) {\n      return false;\n    }\n    this.addEntry(atRuleName, Rules.UnknownAtRules, `Unknown at rule ${atRuleName.getText()}`);\n    return true;\n  }\n  visitKeyframe(node) {\n    const keyword = node.getKeyword();\n    if (!keyword) {\n      return false;\n    }\n    const text = keyword.getText();\n    this.keyframes.add(node.getName(), text, text !== \"@keyframes\" ? keyword : null);\n    return true;\n  }\n  validateKeyframes() {\n    const expected = [\"@-webkit-keyframes\", \"@-moz-keyframes\", \"@-o-keyframes\"];\n    for (const name in this.keyframes.data) {\n      const actual = this.keyframes.data[name].names;\n      const needsStandard = actual.indexOf(\"@keyframes\") === -1;\n      if (!needsStandard && actual.length === 1) {\n        continue;\n      }\n      const missingVendorSpecific = this.getMissingNames(expected, actual);\n      if (missingVendorSpecific || needsStandard) {\n        for (const node of this.keyframes.data[name].nodes) {\n          if (needsStandard) {\n            const message = t(\"Always define standard rule '@keyframes' when defining keyframes.\");\n            this.addEntry(node, Rules.IncludeStandardPropertyWhenUsingVendorPrefix, message);\n          }\n          if (missingVendorSpecific) {\n            const message = t(\"Always include all vendor specific rules: Missing: {0}\", missingVendorSpecific);\n            this.addEntry(node, Rules.AllVendorPrefixes, message);\n          }\n        }\n      }\n    }\n    return true;\n  }\n  visitSimpleSelector(node) {\n    const firstChar = this.documentText.charAt(node.offset);\n    if (node.length === 1 && firstChar === \"*\") {\n      this.addEntry(node, Rules.UniversalSelector);\n    }\n    return true;\n  }\n  visitIdentifierSelector(node) {\n    this.addEntry(node, Rules.AvoidIdSelector);\n    return true;\n  }\n  visitImport(node) {\n    this.addEntry(node, Rules.ImportStatemement);\n    return true;\n  }\n  visitRuleSet(node) {\n    const declarations = node.getDeclarations();\n    if (!declarations) {\n      return false;\n    }\n    if (!declarations.hasChildren()) {\n      this.addEntry(node.getSelectors(), Rules.EmptyRuleSet);\n    }\n    const propertyTable = [];\n    for (const element of declarations.getChildren()) {\n      if (element instanceof Declaration) {\n        propertyTable.push(new Element2(element));\n      }\n    }\n    const boxModel = calculateBoxModel(propertyTable);\n    if (boxModel.width) {\n      let properties = [];\n      if (boxModel.right.value) {\n        properties = union(properties, boxModel.right.properties);\n      }\n      if (boxModel.left.value) {\n        properties = union(properties, boxModel.left.properties);\n      }\n      if (properties.length !== 0) {\n        for (const item of properties) {\n          this.addEntry(item.node, Rules.BewareOfBoxModelSize);\n        }\n        this.addEntry(boxModel.width.node, Rules.BewareOfBoxModelSize);\n      }\n    }\n    if (boxModel.height) {\n      let properties = [];\n      if (boxModel.top.value) {\n        properties = union(properties, boxModel.top.properties);\n      }\n      if (boxModel.bottom.value) {\n        properties = union(properties, boxModel.bottom.properties);\n      }\n      if (properties.length !== 0) {\n        for (const item of properties) {\n          this.addEntry(item.node, Rules.BewareOfBoxModelSize);\n        }\n        this.addEntry(boxModel.height.node, Rules.BewareOfBoxModelSize);\n      }\n    }\n    let displayElems = this.fetchWithValue(propertyTable, \"display\", \"inline-block\");\n    if (displayElems.length > 0) {\n      const elem = this.fetch(propertyTable, \"float\");\n      for (let index = 0; index < elem.length; index++) {\n        const node2 = elem[index].node;\n        const value = node2.getValue();\n        if (value && !value.matches(\"none\")) {\n          this.addEntry(node2, Rules.PropertyIgnoredDueToDisplay, t(\"inline-block is ignored due to the float. If 'float' has a value other than 'none', the box is floated and 'display' is treated as 'block'\"));\n        }\n      }\n    }\n    displayElems = this.fetchWithValue(propertyTable, \"display\", \"block\");\n    if (displayElems.length > 0) {\n      const elem = this.fetch(propertyTable, \"vertical-align\");\n      for (let index = 0; index < elem.length; index++) {\n        this.addEntry(elem[index].node, Rules.PropertyIgnoredDueToDisplay, t(\"Property is ignored due to the display. With 'display: block', vertical-align should not be used.\"));\n      }\n    }\n    const elements = this.fetch(propertyTable, \"float\");\n    for (let index = 0; index < elements.length; index++) {\n      const element = elements[index];\n      if (!this.isValidPropertyDeclaration(element)) {\n        this.addEntry(element.node, Rules.AvoidFloat);\n      }\n    }\n    for (let i = 0; i < propertyTable.length; i++) {\n      const element = propertyTable[i];\n      if (element.fullPropertyName !== \"background\" && !this.validProperties[element.fullPropertyName]) {\n        const value = element.node.getValue();\n        if (value && this.documentText.charAt(value.offset) !== \"-\") {\n          const elements2 = this.fetch(propertyTable, element.fullPropertyName);\n          if (elements2.length > 1) {\n            for (let k = 0; k < elements2.length; k++) {\n              const value2 = elements2[k].node.getValue();\n              if (value2 && this.documentText.charAt(value2.offset) !== \"-\" && elements2[k] !== element) {\n                this.addEntry(element.node, Rules.DuplicateDeclarations);\n              }\n            }\n          }\n        }\n      }\n    }\n    const isExportBlock = node.getSelectors().matches(\":export\");\n    if (!isExportBlock) {\n      const propertiesBySuffix = new NodesByRootMap();\n      let containsUnknowns = false;\n      for (const element of propertyTable) {\n        const decl = element.node;\n        if (this.isCSSDeclaration(decl)) {\n          let name = element.fullPropertyName;\n          const firstChar = name.charAt(0);\n          if (firstChar === \"-\") {\n            if (name.charAt(1) !== \"-\") {\n              if (!this.cssDataManager.isKnownProperty(name) && !this.validProperties[name]) {\n                this.addEntry(decl.getProperty(), Rules.UnknownVendorSpecificProperty);\n              }\n              const nonPrefixedName = decl.getNonPrefixedPropertyName();\n              propertiesBySuffix.add(nonPrefixedName, name, decl.getProperty());\n            }\n          } else {\n            const fullName = name;\n            if (firstChar === \"*\" || firstChar === \"_\") {\n              this.addEntry(decl.getProperty(), Rules.IEStarHack);\n              name = name.substr(1);\n            }\n            if (!this.cssDataManager.isKnownProperty(fullName) && !this.cssDataManager.isKnownProperty(name)) {\n              if (!this.validProperties[name]) {\n                this.addEntry(decl.getProperty(), Rules.UnknownProperty, t(\"Unknown property: '{0}'\", decl.getFullPropertyName()));\n              }\n            }\n            propertiesBySuffix.add(name, name, null);\n          }\n        } else {\n          containsUnknowns = true;\n        }\n      }\n      if (!containsUnknowns) {\n        for (const suffix in propertiesBySuffix.data) {\n          const entry = propertiesBySuffix.data[suffix];\n          const actual = entry.names;\n          const needsStandard = this.cssDataManager.isStandardProperty(suffix) && actual.indexOf(suffix) === -1;\n          if (!needsStandard && actual.length === 1) {\n            continue;\n          }\n          const entriesThatNeedStandard = new Set(needsStandard ? entry.nodes : []);\n          if (needsStandard) {\n            const pseudoElements = this.getContextualVendorSpecificPseudoElements(node);\n            for (const node2 of entry.nodes) {\n              const propertyName = node2.getName();\n              const prefix = propertyName.substring(0, propertyName.length - suffix.length);\n              if (pseudoElements.some((x) => x.startsWith(prefix))) {\n                entriesThatNeedStandard.delete(node2);\n              }\n            }\n          }\n          const expected = [];\n          for (let i = 0, len = _LintVisitor.prefixes.length; i < len; i++) {\n            const prefix = _LintVisitor.prefixes[i];\n            if (this.cssDataManager.isStandardProperty(prefix + suffix)) {\n              expected.push(prefix + suffix);\n            }\n          }\n          const missingVendorSpecific = this.getMissingNames(expected, actual);\n          if (missingVendorSpecific || needsStandard) {\n            for (const node2 of entry.nodes) {\n              if (needsStandard && entriesThatNeedStandard.has(node2)) {\n                const message = t(\"Also define the standard property '{0}' for compatibility\", suffix);\n                this.addEntry(node2, Rules.IncludeStandardPropertyWhenUsingVendorPrefix, message);\n              }\n              if (missingVendorSpecific) {\n                const message = t(\"Always include all vendor specific properties: Missing: {0}\", missingVendorSpecific);\n                this.addEntry(node2, Rules.AllVendorPrefixes, message);\n              }\n            }\n          }\n        }\n      }\n    }\n    return true;\n  }\n  /**\n   * Walks up the syntax tree (starting from given `node`) and captures vendor\n   * specific pseudo-element selectors.\n   * @returns An array of vendor specific pseudo-elements; or empty if none\n   * was found.\n   */\n  getContextualVendorSpecificPseudoElements(node) {\n    function walkDown(s, n) {\n      for (const child of n.getChildren()) {\n        if (child.type === NodeType.PseudoSelector) {\n          const pseudoElement = child.getChildren()[0]?.getText();\n          if (pseudoElement) {\n            s.add(pseudoElement);\n          }\n        }\n        walkDown(s, child);\n      }\n    }\n    function walkUp(s, n) {\n      if (n.type === NodeType.Ruleset) {\n        for (const selector of n.getSelectors().getChildren()) {\n          walkDown(s, selector);\n        }\n      }\n      return n.parent ? walkUp(s, n.parent) : void 0;\n    }\n    const result = /* @__PURE__ */ new Set();\n    walkUp(result, node);\n    return Array.from(result);\n  }\n  visitPrio(node) {\n    this.addEntry(node, Rules.AvoidImportant);\n    return true;\n  }\n  visitNumericValue(node) {\n    const funcDecl = node.findParent(NodeType.Function);\n    if (funcDecl && funcDecl.getName() === \"calc\") {\n      return true;\n    }\n    const decl = node.findParent(NodeType.Declaration);\n    if (decl) {\n      const declValue = decl.getValue();\n      if (declValue) {\n        const value = node.getValue();\n        if (!value.unit || units.length.indexOf(value.unit.toLowerCase()) === -1) {\n          return true;\n        }\n        if (parseFloat(value.value) === 0 && !!value.unit && !this.validProperties[decl.getFullPropertyName()]) {\n          this.addEntry(node, Rules.ZeroWithUnit);\n        }\n      }\n    }\n    return true;\n  }\n  visitFontFace(node) {\n    const declarations = node.getDeclarations();\n    if (!declarations) {\n      return false;\n    }\n    let definesSrc = false, definesFontFamily = false;\n    let containsUnknowns = false;\n    for (const node2 of declarations.getChildren()) {\n      if (this.isCSSDeclaration(node2)) {\n        const name = node2.getProperty().getName().toLowerCase();\n        if (name === \"src\") {\n          definesSrc = true;\n        }\n        if (name === \"font-family\") {\n          definesFontFamily = true;\n        }\n      } else {\n        containsUnknowns = true;\n      }\n    }\n    if (!containsUnknowns && (!definesSrc || !definesFontFamily)) {\n      this.addEntry(node, Rules.RequiredPropertiesForFontFace);\n    }\n    return true;\n  }\n  isCSSDeclaration(node) {\n    if (node instanceof Declaration) {\n      if (!node.getValue()) {\n        return false;\n      }\n      const property = node.getProperty();\n      if (!property) {\n        return false;\n      }\n      const identifier = property.getIdentifier();\n      if (!identifier || identifier.containsInterpolation()) {\n        return false;\n      }\n      return true;\n    }\n    return false;\n  }\n  visitHexColorValue(node) {\n    const length = node.length;\n    if (length !== 9 && length !== 7 && length !== 5 && length !== 4) {\n      this.addEntry(node, Rules.HexColorLength);\n    }\n    return false;\n  }\n  visitFunction(node) {\n    const fnName = node.getName().toLowerCase();\n    let expectedAttrCount = -1;\n    let actualAttrCount = 0;\n    switch (fnName) {\n      case \"rgb(\":\n      case \"hsl(\":\n        expectedAttrCount = 3;\n        break;\n      case \"rgba(\":\n      case \"hsla(\":\n        expectedAttrCount = 4;\n        break;\n    }\n    if (expectedAttrCount !== -1) {\n      node.getArguments().accept((n) => {\n        if (n instanceof BinaryExpression) {\n          actualAttrCount += 1;\n          return false;\n        }\n        return true;\n      });\n      if (actualAttrCount !== expectedAttrCount) {\n        this.addEntry(node, Rules.ArgsInColorFunction);\n      }\n    }\n    return true;\n  }\n};\nLintVisitor.prefixes = [\n  \"-ms-\",\n  \"-moz-\",\n  \"-o-\",\n  \"-webkit-\"\n  // Quite common\n  //\t\t'-xv-', '-atsc-', '-wap-', '-khtml-', 'mso-', 'prince-', '-ah-', '-hp-', '-ro-', '-rim-', '-tc-' // Quite un-common\n];\n\n// node_modules/vscode-css-languageservice/lib/esm/services/cssValidation.js\nvar CSSValidation = class {\n  constructor(cssDataManager) {\n    this.cssDataManager = cssDataManager;\n  }\n  configure(settings) {\n    this.settings = settings;\n  }\n  doValidation(document, stylesheet, settings = this.settings) {\n    if (settings && settings.validate === false) {\n      return [];\n    }\n    const entries = [];\n    entries.push.apply(entries, ParseErrorCollector.entries(stylesheet));\n    entries.push.apply(entries, LintVisitor.entries(stylesheet, document, new LintConfigurationSettings(settings && settings.lint), this.cssDataManager));\n    const ruleIds = [];\n    for (const r in Rules) {\n      ruleIds.push(Rules[r].id);\n    }\n    function toDiagnostic(marker) {\n      const range = Range.create(document.positionAt(marker.getOffset()), document.positionAt(marker.getOffset() + marker.getLength()));\n      const source = document.languageId;\n      return {\n        code: marker.getRule().id,\n        source,\n        message: marker.getMessage(),\n        severity: marker.getLevel() === Level.Warning ? DiagnosticSeverity.Warning : DiagnosticSeverity.Error,\n        range\n      };\n    }\n    return entries.filter((entry) => entry.getLevel() !== Level.Ignore).map(toDiagnostic);\n  }\n};\n\n// node_modules/vscode-css-languageservice/lib/esm/parser/scssScanner.js\nvar _FSL2 = \"/\".charCodeAt(0);\nvar _NWL2 = \"\\n\".charCodeAt(0);\nvar _CAR2 = \"\\r\".charCodeAt(0);\nvar _LFD2 = \"\\f\".charCodeAt(0);\nvar _DLR2 = \"$\".charCodeAt(0);\nvar _HSH2 = \"#\".charCodeAt(0);\nvar _CUL2 = \"{\".charCodeAt(0);\nvar _EQS2 = \"=\".charCodeAt(0);\nvar _BNG2 = \"!\".charCodeAt(0);\nvar _LAN2 = \"<\".charCodeAt(0);\nvar _RAN2 = \">\".charCodeAt(0);\nvar _DOT2 = \".\".charCodeAt(0);\nvar _ATS2 = \"@\".charCodeAt(0);\nvar customTokenValue = TokenType.CustomToken;\nvar VariableName = customTokenValue++;\nvar InterpolationFunction = customTokenValue++;\nvar Default = customTokenValue++;\nvar EqualsOperator = customTokenValue++;\nvar NotEqualsOperator = customTokenValue++;\nvar GreaterEqualsOperator = customTokenValue++;\nvar SmallerEqualsOperator = customTokenValue++;\nvar Ellipsis = customTokenValue++;\nvar Module2 = customTokenValue++;\nvar SCSSScanner = class extends Scanner {\n  scanNext(offset) {\n    if (this.stream.advanceIfChar(_DLR2)) {\n      const content = [\"$\"];\n      if (this.ident(content)) {\n        return this.finishToken(offset, VariableName, content.join(\"\"));\n      } else {\n        this.stream.goBackTo(offset);\n      }\n    }\n    if (this.stream.advanceIfChars([_HSH2, _CUL2])) {\n      return this.finishToken(offset, InterpolationFunction);\n    }\n    if (this.stream.advanceIfChars([_EQS2, _EQS2])) {\n      return this.finishToken(offset, EqualsOperator);\n    }\n    if (this.stream.advanceIfChars([_BNG2, _EQS2])) {\n      return this.finishToken(offset, NotEqualsOperator);\n    }\n    if (this.stream.advanceIfChar(_LAN2)) {\n      if (this.stream.advanceIfChar(_EQS2)) {\n        return this.finishToken(offset, SmallerEqualsOperator);\n      }\n      return this.finishToken(offset, TokenType.Delim);\n    }\n    if (this.stream.advanceIfChar(_RAN2)) {\n      if (this.stream.advanceIfChar(_EQS2)) {\n        return this.finishToken(offset, GreaterEqualsOperator);\n      }\n      return this.finishToken(offset, TokenType.Delim);\n    }\n    if (this.stream.advanceIfChars([_DOT2, _DOT2, _DOT2])) {\n      return this.finishToken(offset, Ellipsis);\n    }\n    return super.scanNext(offset);\n  }\n  comment() {\n    if (super.comment()) {\n      return true;\n    }\n    if (!this.inURL && this.stream.advanceIfChars([_FSL2, _FSL2])) {\n      this.stream.advanceWhileChar((ch) => {\n        switch (ch) {\n          case _NWL2:\n          case _CAR2:\n          case _LFD2:\n            return false;\n          default:\n            return true;\n        }\n      });\n      return true;\n    } else {\n      return false;\n    }\n  }\n};\n\n// node_modules/vscode-css-languageservice/lib/esm/parser/scssErrors.js\nvar SCSSIssueType = class {\n  constructor(id, message) {\n    this.id = id;\n    this.message = message;\n  }\n};\nvar SCSSParseError = {\n  FromExpected: new SCSSIssueType(\"scss-fromexpected\", t(\"'from' expected\")),\n  ThroughOrToExpected: new SCSSIssueType(\"scss-throughexpected\", t(\"'through' or 'to' expected\")),\n  InExpected: new SCSSIssueType(\"scss-fromexpected\", t(\"'in' expected\"))\n};\n\n// node_modules/vscode-css-languageservice/lib/esm/parser/scssParser.js\nvar SCSSParser = class extends Parser {\n  constructor() {\n    super(new SCSSScanner());\n  }\n  _parseStylesheetStatement(isNested = false) {\n    if (this.peek(TokenType.AtKeyword)) {\n      return this._parseWarnAndDebug() || this._parseControlStatement() || this._parseMixinDeclaration() || this._parseMixinContent() || this._parseMixinReference() || this._parseFunctionDeclaration() || this._parseForward() || this._parseUse() || this._parseRuleset(isNested) || super._parseStylesheetAtStatement(isNested);\n    }\n    return this._parseRuleset(true) || this._parseVariableDeclaration();\n  }\n  _parseImport() {\n    if (!this.peekKeyword(\"@import\")) {\n      return null;\n    }\n    const node = this.create(Import);\n    this.consumeToken();\n    if (!node.addChild(this._parseURILiteral()) && !node.addChild(this._parseStringLiteral())) {\n      return this.finish(node, ParseError.URIOrStringExpected);\n    }\n    while (this.accept(TokenType.Comma)) {\n      if (!node.addChild(this._parseURILiteral()) && !node.addChild(this._parseStringLiteral())) {\n        return this.finish(node, ParseError.URIOrStringExpected);\n      }\n    }\n    return this._completeParseImport(node);\n  }\n  // scss variables: $font-size: 12px;\n  _parseVariableDeclaration(panic = []) {\n    if (!this.peek(VariableName)) {\n      return null;\n    }\n    const node = this.create(VariableDeclaration);\n    if (!node.setVariable(this._parseVariable())) {\n      return null;\n    }\n    if (!this.accept(TokenType.Colon)) {\n      return this.finish(node, ParseError.ColonExpected);\n    }\n    if (this.prevToken) {\n      node.colonPosition = this.prevToken.offset;\n    }\n    if (!node.setValue(this._parseExpr())) {\n      return this.finish(node, ParseError.VariableValueExpected, [], panic);\n    }\n    while (this.peek(TokenType.Exclamation)) {\n      if (node.addChild(this._tryParsePrio())) {\n      } else {\n        this.consumeToken();\n        if (!this.peekRegExp(TokenType.Ident, /^(default|global)$/)) {\n          return this.finish(node, ParseError.UnknownKeyword);\n        }\n        this.consumeToken();\n      }\n    }\n    if (this.peek(TokenType.SemiColon)) {\n      node.semicolonPosition = this.token.offset;\n    }\n    return this.finish(node);\n  }\n  _parseMediaCondition() {\n    return this._parseInterpolation() || super._parseMediaCondition();\n  }\n  _parseMediaFeatureRangeOperator() {\n    return this.accept(SmallerEqualsOperator) || this.accept(GreaterEqualsOperator) || super._parseMediaFeatureRangeOperator();\n  }\n  _parseMediaFeatureName() {\n    return this._parseModuleMember() || this._parseFunction() || this._parseIdent() || this._parseVariable();\n  }\n  _parseKeyframeSelector() {\n    return this._tryParseKeyframeSelector() || this._parseControlStatement(this._parseKeyframeSelector.bind(this)) || this._parseWarnAndDebug() || this._parseMixinReference() || this._parseFunctionDeclaration() || this._parseVariableDeclaration() || this._parseMixinContent();\n  }\n  _parseVariable() {\n    if (!this.peek(VariableName)) {\n      return null;\n    }\n    const node = this.create(Variable);\n    this.consumeToken();\n    return node;\n  }\n  _parseModuleMember() {\n    const pos = this.mark();\n    const node = this.create(Module);\n    if (!node.setIdentifier(this._parseIdent([ReferenceType.Module]))) {\n      return null;\n    }\n    if (this.hasWhitespace() || !this.acceptDelim(\".\") || this.hasWhitespace()) {\n      this.restoreAtMark(pos);\n      return null;\n    }\n    if (!node.addChild(this._parseVariable() || this._parseFunction())) {\n      return this.finish(node, ParseError.IdentifierOrVariableExpected);\n    }\n    return node;\n  }\n  _parseIdent(referenceTypes) {\n    if (!this.peek(TokenType.Ident) && !this.peek(InterpolationFunction) && !this.peekDelim(\"-\")) {\n      return null;\n    }\n    const node = this.create(Identifier);\n    node.referenceTypes = referenceTypes;\n    node.isCustomProperty = this.peekRegExp(TokenType.Ident, /^--/);\n    let hasContent = false;\n    const indentInterpolation = () => {\n      const pos = this.mark();\n      if (this.acceptDelim(\"-\")) {\n        if (!this.hasWhitespace()) {\n          this.acceptDelim(\"-\");\n        }\n        if (this.hasWhitespace()) {\n          this.restoreAtMark(pos);\n          return null;\n        }\n      }\n      return this._parseInterpolation();\n    };\n    while (this.accept(TokenType.Ident) || node.addChild(indentInterpolation()) || hasContent && this.acceptRegexp(/^[\\w-]/)) {\n      hasContent = true;\n      if (this.hasWhitespace()) {\n        break;\n      }\n    }\n    return hasContent ? this.finish(node) : null;\n  }\n  _parseTermExpression() {\n    return this._parseModuleMember() || this._parseVariable() || this._parseNestingSelector() || //this._tryParsePrio() ||\n    super._parseTermExpression();\n  }\n  _parseInterpolation() {\n    if (this.peek(InterpolationFunction)) {\n      const node = this.create(Interpolation);\n      this.consumeToken();\n      if (!node.addChild(this._parseExpr()) && !this._parseNestingSelector()) {\n        if (this.accept(TokenType.CurlyR)) {\n          return this.finish(node);\n        }\n        return this.finish(node, ParseError.ExpressionExpected);\n      }\n      if (!this.accept(TokenType.CurlyR)) {\n        return this.finish(node, ParseError.RightCurlyExpected);\n      }\n      return this.finish(node);\n    }\n    return null;\n  }\n  _parseOperator() {\n    if (this.peek(EqualsOperator) || this.peek(NotEqualsOperator) || this.peek(GreaterEqualsOperator) || this.peek(SmallerEqualsOperator) || this.peekDelim(\">\") || this.peekDelim(\"<\") || this.peekIdent(\"and\") || this.peekIdent(\"or\") || this.peekDelim(\"%\")) {\n      const node = this.createNode(NodeType.Operator);\n      this.consumeToken();\n      return this.finish(node);\n    }\n    return super._parseOperator();\n  }\n  _parseUnaryOperator() {\n    if (this.peekIdent(\"not\")) {\n      const node = this.create(Node);\n      this.consumeToken();\n      return this.finish(node);\n    }\n    return super._parseUnaryOperator();\n  }\n  _parseRuleSetDeclaration() {\n    if (this.peek(TokenType.AtKeyword)) {\n      return this._parseKeyframe() || this._parseImport() || this._parseMedia(true) || this._parseFontFace() || this._parseWarnAndDebug() || this._parseControlStatement() || this._parseFunctionDeclaration() || this._parseExtends() || this._parseMixinReference() || this._parseMixinContent() || this._parseMixinDeclaration() || this._parseRuleset(true) || this._parseSupports(true) || this._parseLayer() || this._parsePropertyAtRule() || this._parseContainer(true) || this._parseRuleSetDeclarationAtStatement();\n    }\n    return this._parseVariableDeclaration() || this._tryParseRuleset(true) || this._parseDeclaration();\n  }\n  _parseDeclaration(stopTokens) {\n    const custonProperty = this._tryParseCustomPropertyDeclaration(stopTokens);\n    if (custonProperty) {\n      return custonProperty;\n    }\n    const node = this.create(Declaration);\n    if (!node.setProperty(this._parseProperty())) {\n      return null;\n    }\n    if (!this.accept(TokenType.Colon)) {\n      return this.finish(node, ParseError.ColonExpected, [TokenType.Colon], stopTokens || [TokenType.SemiColon]);\n    }\n    if (this.prevToken) {\n      node.colonPosition = this.prevToken.offset;\n    }\n    let hasContent = false;\n    if (node.setValue(this._parseExpr())) {\n      hasContent = true;\n      node.addChild(this._parsePrio());\n    }\n    if (this.peek(TokenType.CurlyL)) {\n      node.setNestedProperties(this._parseNestedProperties());\n    } else {\n      if (!hasContent) {\n        return this.finish(node, ParseError.PropertyValueExpected);\n      }\n    }\n    if (this.peek(TokenType.SemiColon)) {\n      node.semicolonPosition = this.token.offset;\n    }\n    return this.finish(node);\n  }\n  _parseNestedProperties() {\n    const node = this.create(NestedProperties);\n    return this._parseBody(node, this._parseDeclaration.bind(this));\n  }\n  _parseExtends() {\n    if (this.peekKeyword(\"@extend\")) {\n      const node = this.create(ExtendsReference);\n      this.consumeToken();\n      if (!node.getSelectors().addChild(this._parseSimpleSelector())) {\n        return this.finish(node, ParseError.SelectorExpected);\n      }\n      while (this.accept(TokenType.Comma)) {\n        node.getSelectors().addChild(this._parseSimpleSelector());\n      }\n      if (this.accept(TokenType.Exclamation)) {\n        if (!this.acceptIdent(\"optional\")) {\n          return this.finish(node, ParseError.UnknownKeyword);\n        }\n      }\n      return this.finish(node);\n    }\n    return null;\n  }\n  _parseSimpleSelectorBody() {\n    return this._parseSelectorPlaceholder() || super._parseSimpleSelectorBody();\n  }\n  _parseNestingSelector() {\n    if (this.peekDelim(\"&\")) {\n      const node = this.createNode(NodeType.SelectorCombinator);\n      this.consumeToken();\n      while (!this.hasWhitespace() && (this.acceptDelim(\"-\") || this.accept(TokenType.Num) || this.accept(TokenType.Dimension) || node.addChild(this._parseIdent()) || this.acceptDelim(\"&\"))) {\n      }\n      return this.finish(node);\n    }\n    return null;\n  }\n  _parseSelectorPlaceholder() {\n    if (this.peekDelim(\"%\")) {\n      const node = this.createNode(NodeType.SelectorPlaceholder);\n      this.consumeToken();\n      this._parseIdent();\n      return this.finish(node);\n    } else if (this.peekKeyword(\"@at-root\")) {\n      const node = this.createNode(NodeType.SelectorPlaceholder);\n      this.consumeToken();\n      if (this.accept(TokenType.ParenthesisL)) {\n        if (!this.acceptIdent(\"with\") && !this.acceptIdent(\"without\")) {\n          return this.finish(node, ParseError.IdentifierExpected);\n        }\n        if (!this.accept(TokenType.Colon)) {\n          return this.finish(node, ParseError.ColonExpected);\n        }\n        if (!node.addChild(this._parseIdent())) {\n          return this.finish(node, ParseError.IdentifierExpected);\n        }\n        if (!this.accept(TokenType.ParenthesisR)) {\n          return this.finish(node, ParseError.RightParenthesisExpected, [TokenType.CurlyR]);\n        }\n      }\n      return this.finish(node);\n    }\n    return null;\n  }\n  _parseElementName() {\n    const pos = this.mark();\n    const node = super._parseElementName();\n    if (node && !this.hasWhitespace() && this.peek(TokenType.ParenthesisL)) {\n      this.restoreAtMark(pos);\n      return null;\n    }\n    return node;\n  }\n  _tryParsePseudoIdentifier() {\n    return this._parseInterpolation() || super._tryParsePseudoIdentifier();\n  }\n  _parseWarnAndDebug() {\n    if (!this.peekKeyword(\"@debug\") && !this.peekKeyword(\"@warn\") && !this.peekKeyword(\"@error\")) {\n      return null;\n    }\n    const node = this.createNode(NodeType.Debug);\n    this.consumeToken();\n    node.addChild(this._parseExpr());\n    return this.finish(node);\n  }\n  _parseControlStatement(parseStatement = this._parseRuleSetDeclaration.bind(this)) {\n    if (!this.peek(TokenType.AtKeyword)) {\n      return null;\n    }\n    return this._parseIfStatement(parseStatement) || this._parseForStatement(parseStatement) || this._parseEachStatement(parseStatement) || this._parseWhileStatement(parseStatement);\n  }\n  _parseIfStatement(parseStatement) {\n    if (!this.peekKeyword(\"@if\")) {\n      return null;\n    }\n    return this._internalParseIfStatement(parseStatement);\n  }\n  _internalParseIfStatement(parseStatement) {\n    const node = this.create(IfStatement);\n    this.consumeToken();\n    if (!node.setExpression(this._parseExpr(true))) {\n      return this.finish(node, ParseError.ExpressionExpected);\n    }\n    this._parseBody(node, parseStatement);\n    if (this.acceptKeyword(\"@else\")) {\n      if (this.peekIdent(\"if\")) {\n        node.setElseClause(this._internalParseIfStatement(parseStatement));\n      } else if (this.peek(TokenType.CurlyL)) {\n        const elseNode = this.create(ElseStatement);\n        this._parseBody(elseNode, parseStatement);\n        node.setElseClause(elseNode);\n      }\n    }\n    return this.finish(node);\n  }\n  _parseForStatement(parseStatement) {\n    if (!this.peekKeyword(\"@for\")) {\n      return null;\n    }\n    const node = this.create(ForStatement);\n    this.consumeToken();\n    if (!node.setVariable(this._parseVariable())) {\n      return this.finish(node, ParseError.VariableNameExpected, [TokenType.CurlyR]);\n    }\n    if (!this.acceptIdent(\"from\")) {\n      return this.finish(node, SCSSParseError.FromExpected, [TokenType.CurlyR]);\n    }\n    if (!node.addChild(this._parseBinaryExpr())) {\n      return this.finish(node, ParseError.ExpressionExpected, [TokenType.CurlyR]);\n    }\n    if (!this.acceptIdent(\"to\") && !this.acceptIdent(\"through\")) {\n      return this.finish(node, SCSSParseError.ThroughOrToExpected, [TokenType.CurlyR]);\n    }\n    if (!node.addChild(this._parseBinaryExpr())) {\n      return this.finish(node, ParseError.ExpressionExpected, [TokenType.CurlyR]);\n    }\n    return this._parseBody(node, parseStatement);\n  }\n  _parseEachStatement(parseStatement) {\n    if (!this.peekKeyword(\"@each\")) {\n      return null;\n    }\n    const node = this.create(EachStatement);\n    this.consumeToken();\n    const variables = node.getVariables();\n    if (!variables.addChild(this._parseVariable())) {\n      return this.finish(node, ParseError.VariableNameExpected, [TokenType.CurlyR]);\n    }\n    while (this.accept(TokenType.Comma)) {\n      if (!variables.addChild(this._parseVariable())) {\n        return this.finish(node, ParseError.VariableNameExpected, [TokenType.CurlyR]);\n      }\n    }\n    this.finish(variables);\n    if (!this.acceptIdent(\"in\")) {\n      return this.finish(node, SCSSParseError.InExpected, [TokenType.CurlyR]);\n    }\n    if (!node.addChild(this._parseExpr())) {\n      return this.finish(node, ParseError.ExpressionExpected, [TokenType.CurlyR]);\n    }\n    return this._parseBody(node, parseStatement);\n  }\n  _parseWhileStatement(parseStatement) {\n    if (!this.peekKeyword(\"@while\")) {\n      return null;\n    }\n    const node = this.create(WhileStatement);\n    this.consumeToken();\n    if (!node.addChild(this._parseBinaryExpr())) {\n      return this.finish(node, ParseError.ExpressionExpected, [TokenType.CurlyR]);\n    }\n    return this._parseBody(node, parseStatement);\n  }\n  _parseFunctionBodyDeclaration() {\n    return this._parseVariableDeclaration() || this._parseReturnStatement() || this._parseWarnAndDebug() || this._parseControlStatement(this._parseFunctionBodyDeclaration.bind(this));\n  }\n  _parseFunctionDeclaration() {\n    if (!this.peekKeyword(\"@function\")) {\n      return null;\n    }\n    const node = this.create(FunctionDeclaration);\n    this.consumeToken();\n    if (!node.setIdentifier(this._parseIdent([ReferenceType.Function]))) {\n      return this.finish(node, ParseError.IdentifierExpected, [TokenType.CurlyR]);\n    }\n    if (!this.accept(TokenType.ParenthesisL)) {\n      return this.finish(node, ParseError.LeftParenthesisExpected, [TokenType.CurlyR]);\n    }\n    if (node.getParameters().addChild(this._parseParameterDeclaration())) {\n      while (this.accept(TokenType.Comma)) {\n        if (this.peek(TokenType.ParenthesisR)) {\n          break;\n        }\n        if (!node.getParameters().addChild(this._parseParameterDeclaration())) {\n          return this.finish(node, ParseError.VariableNameExpected);\n        }\n      }\n    }\n    if (!this.accept(TokenType.ParenthesisR)) {\n      return this.finish(node, ParseError.RightParenthesisExpected, [TokenType.CurlyR]);\n    }\n    return this._parseBody(node, this._parseFunctionBodyDeclaration.bind(this));\n  }\n  _parseReturnStatement() {\n    if (!this.peekKeyword(\"@return\")) {\n      return null;\n    }\n    const node = this.createNode(NodeType.ReturnStatement);\n    this.consumeToken();\n    if (!node.addChild(this._parseExpr())) {\n      return this.finish(node, ParseError.ExpressionExpected);\n    }\n    return this.finish(node);\n  }\n  _parseMixinDeclaration() {\n    if (!this.peekKeyword(\"@mixin\")) {\n      return null;\n    }\n    const node = this.create(MixinDeclaration);\n    this.consumeToken();\n    if (!node.setIdentifier(this._parseIdent([ReferenceType.Mixin]))) {\n      return this.finish(node, ParseError.IdentifierExpected, [TokenType.CurlyR]);\n    }\n    if (this.accept(TokenType.ParenthesisL)) {\n      if (node.getParameters().addChild(this._parseParameterDeclaration())) {\n        while (this.accept(TokenType.Comma)) {\n          if (this.peek(TokenType.ParenthesisR)) {\n            break;\n          }\n          if (!node.getParameters().addChild(this._parseParameterDeclaration())) {\n            return this.finish(node, ParseError.VariableNameExpected);\n          }\n        }\n      }\n      if (!this.accept(TokenType.ParenthesisR)) {\n        return this.finish(node, ParseError.RightParenthesisExpected, [TokenType.CurlyR]);\n      }\n    }\n    return this._parseBody(node, this._parseRuleSetDeclaration.bind(this));\n  }\n  _parseParameterDeclaration() {\n    const node = this.create(FunctionParameter);\n    if (!node.setIdentifier(this._parseVariable())) {\n      return null;\n    }\n    if (this.accept(Ellipsis)) {\n    }\n    if (this.accept(TokenType.Colon)) {\n      if (!node.setDefaultValue(this._parseExpr(true))) {\n        return this.finish(node, ParseError.VariableValueExpected, [], [TokenType.Comma, TokenType.ParenthesisR]);\n      }\n    }\n    return this.finish(node);\n  }\n  _parseMixinContent() {\n    if (!this.peekKeyword(\"@content\")) {\n      return null;\n    }\n    const node = this.create(MixinContentReference);\n    this.consumeToken();\n    if (this.accept(TokenType.ParenthesisL)) {\n      if (node.getArguments().addChild(this._parseFunctionArgument())) {\n        while (this.accept(TokenType.Comma)) {\n          if (this.peek(TokenType.ParenthesisR)) {\n            break;\n          }\n          if (!node.getArguments().addChild(this._parseFunctionArgument())) {\n            return this.finish(node, ParseError.ExpressionExpected);\n          }\n        }\n      }\n      if (!this.accept(TokenType.ParenthesisR)) {\n        return this.finish(node, ParseError.RightParenthesisExpected);\n      }\n    }\n    return this.finish(node);\n  }\n  _parseMixinReference() {\n    if (!this.peekKeyword(\"@include\")) {\n      return null;\n    }\n    const node = this.create(MixinReference);\n    this.consumeToken();\n    const firstIdent = this._parseIdent([ReferenceType.Mixin]);\n    if (!node.setIdentifier(firstIdent)) {\n      return this.finish(node, ParseError.IdentifierExpected, [TokenType.CurlyR]);\n    }\n    if (!this.hasWhitespace() && this.acceptDelim(\".\") && !this.hasWhitespace()) {\n      const secondIdent = this._parseIdent([ReferenceType.Mixin]);\n      if (!secondIdent) {\n        return this.finish(node, ParseError.IdentifierExpected, [TokenType.CurlyR]);\n      }\n      const moduleToken = this.create(Module);\n      firstIdent.referenceTypes = [ReferenceType.Module];\n      moduleToken.setIdentifier(firstIdent);\n      node.setIdentifier(secondIdent);\n      node.addChild(moduleToken);\n    }\n    if (this.accept(TokenType.ParenthesisL)) {\n      if (node.getArguments().addChild(this._parseFunctionArgument())) {\n        while (this.accept(TokenType.Comma)) {\n          if (this.peek(TokenType.ParenthesisR)) {\n            break;\n          }\n          if (!node.getArguments().addChild(this._parseFunctionArgument())) {\n            return this.finish(node, ParseError.ExpressionExpected);\n          }\n        }\n      }\n      if (!this.accept(TokenType.ParenthesisR)) {\n        return this.finish(node, ParseError.RightParenthesisExpected);\n      }\n    }\n    if (this.peekIdent(\"using\") || this.peek(TokenType.CurlyL)) {\n      node.setContent(this._parseMixinContentDeclaration());\n    }\n    return this.finish(node);\n  }\n  _parseMixinContentDeclaration() {\n    const node = this.create(MixinContentDeclaration);\n    if (this.acceptIdent(\"using\")) {\n      if (!this.accept(TokenType.ParenthesisL)) {\n        return this.finish(node, ParseError.LeftParenthesisExpected, [TokenType.CurlyL]);\n      }\n      if (node.getParameters().addChild(this._parseParameterDeclaration())) {\n        while (this.accept(TokenType.Comma)) {\n          if (this.peek(TokenType.ParenthesisR)) {\n            break;\n          }\n          if (!node.getParameters().addChild(this._parseParameterDeclaration())) {\n            return this.finish(node, ParseError.VariableNameExpected);\n          }\n        }\n      }\n      if (!this.accept(TokenType.ParenthesisR)) {\n        return this.finish(node, ParseError.RightParenthesisExpected, [TokenType.CurlyL]);\n      }\n    }\n    if (this.peek(TokenType.CurlyL)) {\n      this._parseBody(node, this._parseMixinReferenceBodyStatement.bind(this));\n    }\n    return this.finish(node);\n  }\n  _parseMixinReferenceBodyStatement() {\n    return this._tryParseKeyframeSelector() || this._parseRuleSetDeclaration();\n  }\n  _parseFunctionArgument() {\n    const node = this.create(FunctionArgument);\n    const pos = this.mark();\n    const argument = this._parseVariable();\n    if (argument) {\n      if (!this.accept(TokenType.Colon)) {\n        if (this.accept(Ellipsis)) {\n          node.setValue(argument);\n          return this.finish(node);\n        } else {\n          this.restoreAtMark(pos);\n        }\n      } else {\n        node.setIdentifier(argument);\n      }\n    }\n    if (node.setValue(this._parseExpr(true))) {\n      this.accept(Ellipsis);\n      node.addChild(this._parsePrio());\n      return this.finish(node);\n    } else if (node.setValue(this._tryParsePrio())) {\n      return this.finish(node);\n    }\n    return null;\n  }\n  _parseURLArgument() {\n    const pos = this.mark();\n    const node = super._parseURLArgument();\n    if (!node || !this.peek(TokenType.ParenthesisR)) {\n      this.restoreAtMark(pos);\n      const node2 = this.create(Node);\n      node2.addChild(this._parseBinaryExpr());\n      return this.finish(node2);\n    }\n    return node;\n  }\n  _parseOperation() {\n    if (!this.peek(TokenType.ParenthesisL)) {\n      return null;\n    }\n    const node = this.create(Node);\n    this.consumeToken();\n    while (node.addChild(this._parseListElement())) {\n      this.accept(TokenType.Comma);\n    }\n    if (!this.accept(TokenType.ParenthesisR)) {\n      return this.finish(node, ParseError.RightParenthesisExpected);\n    }\n    return this.finish(node);\n  }\n  _parseListElement() {\n    const node = this.create(ListEntry);\n    const child = this._parseBinaryExpr();\n    if (!child) {\n      return null;\n    }\n    if (this.accept(TokenType.Colon)) {\n      node.setKey(child);\n      if (!node.setValue(this._parseBinaryExpr())) {\n        return this.finish(node, ParseError.ExpressionExpected);\n      }\n    } else {\n      node.setValue(child);\n    }\n    return this.finish(node);\n  }\n  _parseUse() {\n    if (!this.peekKeyword(\"@use\")) {\n      return null;\n    }\n    const node = this.create(Use);\n    this.consumeToken();\n    if (!node.addChild(this._parseStringLiteral())) {\n      return this.finish(node, ParseError.StringLiteralExpected);\n    }\n    if (!this.peek(TokenType.SemiColon) && !this.peek(TokenType.EOF)) {\n      if (!this.peekRegExp(TokenType.Ident, /as|with/)) {\n        return this.finish(node, ParseError.UnknownKeyword);\n      }\n      if (this.acceptIdent(\"as\") && (!node.setIdentifier(this._parseIdent([ReferenceType.Module])) && !this.acceptDelim(\"*\"))) {\n        return this.finish(node, ParseError.IdentifierOrWildcardExpected);\n      }\n      if (this.acceptIdent(\"with\")) {\n        if (!this.accept(TokenType.ParenthesisL)) {\n          return this.finish(node, ParseError.LeftParenthesisExpected, [TokenType.ParenthesisR]);\n        }\n        if (!node.getParameters().addChild(this._parseModuleConfigDeclaration())) {\n          return this.finish(node, ParseError.VariableNameExpected);\n        }\n        while (this.accept(TokenType.Comma)) {\n          if (this.peek(TokenType.ParenthesisR)) {\n            break;\n          }\n          if (!node.getParameters().addChild(this._parseModuleConfigDeclaration())) {\n            return this.finish(node, ParseError.VariableNameExpected);\n          }\n        }\n        if (!this.accept(TokenType.ParenthesisR)) {\n          return this.finish(node, ParseError.RightParenthesisExpected);\n        }\n      }\n    }\n    if (!this.accept(TokenType.SemiColon) && !this.accept(TokenType.EOF)) {\n      return this.finish(node, ParseError.SemiColonExpected);\n    }\n    return this.finish(node);\n  }\n  _parseModuleConfigDeclaration() {\n    const node = this.create(ModuleConfiguration);\n    if (!node.setIdentifier(this._parseVariable())) {\n      return null;\n    }\n    if (!this.accept(TokenType.Colon) || !node.setValue(this._parseExpr(true))) {\n      return this.finish(node, ParseError.VariableValueExpected, [], [TokenType.Comma, TokenType.ParenthesisR]);\n    }\n    if (this.accept(TokenType.Exclamation)) {\n      if (this.hasWhitespace() || !this.acceptIdent(\"default\")) {\n        return this.finish(node, ParseError.UnknownKeyword);\n      }\n    }\n    return this.finish(node);\n  }\n  _parseForward() {\n    if (!this.peekKeyword(\"@forward\")) {\n      return null;\n    }\n    const node = this.create(Forward);\n    this.consumeToken();\n    if (!node.addChild(this._parseStringLiteral())) {\n      return this.finish(node, ParseError.StringLiteralExpected);\n    }\n    if (this.acceptIdent(\"as\")) {\n      const identifier = this._parseIdent([ReferenceType.Forward]);\n      if (!node.setIdentifier(identifier)) {\n        return this.finish(node, ParseError.IdentifierExpected);\n      }\n      if (this.hasWhitespace() || !this.acceptDelim(\"*\")) {\n        return this.finish(node, ParseError.WildcardExpected);\n      }\n    }\n    if (this.acceptIdent(\"with\")) {\n      if (!this.accept(TokenType.ParenthesisL)) {\n        return this.finish(node, ParseError.LeftParenthesisExpected, [TokenType.ParenthesisR]);\n      }\n      if (!node.getParameters().addChild(this._parseModuleConfigDeclaration())) {\n        return this.finish(node, ParseError.VariableNameExpected);\n      }\n      while (this.accept(TokenType.Comma)) {\n        if (this.peek(TokenType.ParenthesisR)) {\n          break;\n        }\n        if (!node.getParameters().addChild(this._parseModuleConfigDeclaration())) {\n          return this.finish(node, ParseError.VariableNameExpected);\n        }\n      }\n      if (!this.accept(TokenType.ParenthesisR)) {\n        return this.finish(node, ParseError.RightParenthesisExpected);\n      }\n    } else if (this.peekIdent(\"hide\") || this.peekIdent(\"show\")) {\n      if (!node.addChild(this._parseForwardVisibility())) {\n        return this.finish(node, ParseError.IdentifierOrVariableExpected);\n      }\n    }\n    if (!this.accept(TokenType.SemiColon) && !this.accept(TokenType.EOF)) {\n      return this.finish(node, ParseError.SemiColonExpected);\n    }\n    return this.finish(node);\n  }\n  _parseForwardVisibility() {\n    const node = this.create(ForwardVisibility);\n    node.setIdentifier(this._parseIdent());\n    while (node.addChild(this._parseVariable() || this._parseIdent())) {\n      this.accept(TokenType.Comma);\n    }\n    return node.getChildren().length > 1 ? node : null;\n  }\n  _parseSupportsCondition() {\n    return this._parseInterpolation() || super._parseSupportsCondition();\n  }\n};\n\n// node_modules/vscode-css-languageservice/lib/esm/services/scssCompletion.js\nvar sassDocumentationName = t(\"Sass documentation\");\nvar SCSSCompletion = class _SCSSCompletion extends CSSCompletion {\n  constructor(lsServiceOptions, cssDataManager) {\n    super(\"$\", lsServiceOptions, cssDataManager);\n    addReferencesToDocumentation(_SCSSCompletion.scssModuleLoaders);\n    addReferencesToDocumentation(_SCSSCompletion.scssModuleBuiltIns);\n  }\n  isImportPathParent(type) {\n    return type === NodeType.Forward || type === NodeType.Use || super.isImportPathParent(type);\n  }\n  getCompletionForImportPath(importPathNode, result) {\n    const parentType = importPathNode.getParent().type;\n    if (parentType === NodeType.Forward || parentType === NodeType.Use) {\n      for (let p of _SCSSCompletion.scssModuleBuiltIns) {\n        const item = {\n          label: p.label,\n          documentation: p.documentation,\n          textEdit: TextEdit.replace(this.getCompletionRange(importPathNode), `'${p.label}'`),\n          kind: CompletionItemKind.Module\n        };\n        result.items.push(item);\n      }\n    }\n    return super.getCompletionForImportPath(importPathNode, result);\n  }\n  createReplaceFunction() {\n    let tabStopCounter = 1;\n    return (_match, p1) => {\n      return \"\\\\\" + p1 + \": ${\" + tabStopCounter++ + \":\" + (_SCSSCompletion.variableDefaults[p1] || \"\") + \"}\";\n    };\n  }\n  createFunctionProposals(proposals, existingNode, sortToEnd, result) {\n    for (const p of proposals) {\n      const insertText = p.func.replace(/\\[?(\\$\\w+)\\]?/g, this.createReplaceFunction());\n      const label = p.func.substr(0, p.func.indexOf(\"(\"));\n      const item = {\n        label,\n        detail: p.func,\n        documentation: p.desc,\n        textEdit: TextEdit.replace(this.getCompletionRange(existingNode), insertText),\n        insertTextFormat: InsertTextFormat.Snippet,\n        kind: CompletionItemKind.Function\n      };\n      if (sortToEnd) {\n        item.sortText = \"z\";\n      }\n      result.items.push(item);\n    }\n    return result;\n  }\n  getCompletionsForSelector(ruleSet, isNested, result) {\n    this.createFunctionProposals(_SCSSCompletion.selectorFuncs, null, true, result);\n    return super.getCompletionsForSelector(ruleSet, isNested, result);\n  }\n  getTermProposals(entry, existingNode, result) {\n    let functions = _SCSSCompletion.builtInFuncs;\n    if (entry) {\n      functions = functions.filter((f2) => !f2.type || !entry.restrictions || entry.restrictions.indexOf(f2.type) !== -1);\n    }\n    this.createFunctionProposals(functions, existingNode, true, result);\n    return super.getTermProposals(entry, existingNode, result);\n  }\n  getColorProposals(entry, existingNode, result) {\n    this.createFunctionProposals(_SCSSCompletion.colorProposals, existingNode, false, result);\n    return super.getColorProposals(entry, existingNode, result);\n  }\n  getCompletionsForDeclarationProperty(declaration, result) {\n    this.getCompletionForAtDirectives(result);\n    this.getCompletionsForSelector(null, true, result);\n    return super.getCompletionsForDeclarationProperty(declaration, result);\n  }\n  getCompletionsForExtendsReference(_extendsRef, existingNode, result) {\n    const symbols = this.getSymbolContext().findSymbolsAtOffset(this.offset, ReferenceType.Rule);\n    for (const symbol of symbols) {\n      const suggest = {\n        label: symbol.name,\n        textEdit: TextEdit.replace(this.getCompletionRange(existingNode), symbol.name),\n        kind: CompletionItemKind.Function\n      };\n      result.items.push(suggest);\n    }\n    return result;\n  }\n  getCompletionForAtDirectives(result) {\n    result.items.push(..._SCSSCompletion.scssAtDirectives);\n    return result;\n  }\n  getCompletionForTopLevel(result) {\n    this.getCompletionForAtDirectives(result);\n    this.getCompletionForModuleLoaders(result);\n    super.getCompletionForTopLevel(result);\n    return result;\n  }\n  getCompletionForModuleLoaders(result) {\n    result.items.push(..._SCSSCompletion.scssModuleLoaders);\n    return result;\n  }\n};\nSCSSCompletion.variableDefaults = {\n  \"$red\": \"1\",\n  \"$green\": \"2\",\n  \"$blue\": \"3\",\n  \"$alpha\": \"1.0\",\n  \"$color\": \"#000000\",\n  \"$weight\": \"0.5\",\n  \"$hue\": \"0\",\n  \"$saturation\": \"0%\",\n  \"$lightness\": \"0%\",\n  \"$degrees\": \"0\",\n  \"$amount\": \"0\",\n  \"$string\": '\"\"',\n  \"$substring\": '\"s\"',\n  \"$number\": \"0\",\n  \"$limit\": \"1\"\n};\nSCSSCompletion.colorProposals = [\n  { func: \"red($color)\", desc: t(\"Gets the red component of a color.\") },\n  { func: \"green($color)\", desc: t(\"Gets the green component of a color.\") },\n  { func: \"blue($color)\", desc: t(\"Gets the blue component of a color.\") },\n  { func: \"mix($color, $color, [$weight])\", desc: t(\"Mixes two colors together.\") },\n  { func: \"hue($color)\", desc: t(\"Gets the hue component of a color.\") },\n  { func: \"saturation($color)\", desc: t(\"Gets the saturation component of a color.\") },\n  { func: \"lightness($color)\", desc: t(\"Gets the lightness component of a color.\") },\n  { func: \"adjust-hue($color, $degrees)\", desc: t(\"Changes the hue of a color.\") },\n  { func: \"lighten($color, $amount)\", desc: t(\"Makes a color lighter.\") },\n  { func: \"darken($color, $amount)\", desc: t(\"Makes a color darker.\") },\n  { func: \"saturate($color, $amount)\", desc: t(\"Makes a color more saturated.\") },\n  { func: \"desaturate($color, $amount)\", desc: t(\"Makes a color less saturated.\") },\n  { func: \"grayscale($color)\", desc: t(\"Converts a color to grayscale.\") },\n  { func: \"complement($color)\", desc: t(\"Returns the complement of a color.\") },\n  { func: \"invert($color)\", desc: t(\"Returns the inverse of a color.\") },\n  { func: \"alpha($color)\", desc: t(\"Gets the opacity component of a color.\") },\n  { func: \"opacity($color)\", desc: \"Gets the alpha component (opacity) of a color.\" },\n  { func: \"rgba($color, $alpha)\", desc: t(\"Changes the alpha component for a color.\") },\n  { func: \"opacify($color, $amount)\", desc: t(\"Makes a color more opaque.\") },\n  { func: \"fade-in($color, $amount)\", desc: t(\"Makes a color more opaque.\") },\n  { func: \"transparentize($color, $amount)\", desc: t(\"Makes a color more transparent.\") },\n  { func: \"fade-out($color, $amount)\", desc: t(\"Makes a color more transparent.\") },\n  { func: \"adjust-color($color, [$red], [$green], [$blue], [$hue], [$saturation], [$lightness], [$alpha])\", desc: t(\"Increases or decreases one or more components of a color.\") },\n  { func: \"scale-color($color, [$red], [$green], [$blue], [$saturation], [$lightness], [$alpha])\", desc: t(\"Fluidly scales one or more properties of a color.\") },\n  { func: \"change-color($color, [$red], [$green], [$blue], [$hue], [$saturation], [$lightness], [$alpha])\", desc: t(\"Changes one or more properties of a color.\") },\n  { func: \"ie-hex-str($color)\", desc: t(\"Converts a color into the format understood by IE filters.\") }\n];\nSCSSCompletion.selectorFuncs = [\n  { func: \"selector-nest($selectors\\u2026)\", desc: t(\"Nests selector beneath one another like they would be nested in the stylesheet.\") },\n  { func: \"selector-append($selectors\\u2026)\", desc: t(\"Appends selectors to one another without spaces in between.\") },\n  { func: \"selector-extend($selector, $extendee, $extender)\", desc: t(\"Extends $extendee with $extender within $selector.\") },\n  { func: \"selector-replace($selector, $original, $replacement)\", desc: t(\"Replaces $original with $replacement within $selector.\") },\n  { func: \"selector-unify($selector1, $selector2)\", desc: t(\"Unifies two selectors to produce a selector that matches elements matched by both.\") },\n  { func: \"is-superselector($super, $sub)\", desc: t(\"Returns whether $super matches all the elements $sub does, and possibly more.\") },\n  { func: \"simple-selectors($selector)\", desc: t(\"Returns the simple selectors that comprise a compound selector.\") },\n  { func: \"selector-parse($selector)\", desc: t(\"Parses a selector into the format returned by &.\") }\n];\nSCSSCompletion.builtInFuncs = [\n  { func: \"unquote($string)\", desc: t(\"Removes quotes from a string.\") },\n  { func: \"quote($string)\", desc: t(\"Adds quotes to a string.\") },\n  { func: \"str-length($string)\", desc: t(\"Returns the number of characters in a string.\") },\n  { func: \"str-insert($string, $insert, $index)\", desc: t(\"Inserts $insert into $string at $index.\") },\n  { func: \"str-index($string, $substring)\", desc: t(\"Returns the index of the first occurance of $substring in $string.\") },\n  { func: \"str-slice($string, $start-at, [$end-at])\", desc: t(\"Extracts a substring from $string.\") },\n  { func: \"to-upper-case($string)\", desc: t(\"Converts a string to upper case.\") },\n  { func: \"to-lower-case($string)\", desc: t(\"Converts a string to lower case.\") },\n  { func: \"percentage($number)\", desc: t(\"Converts a unitless number to a percentage.\"), type: \"percentage\" },\n  { func: \"round($number)\", desc: t(\"Rounds a number to the nearest whole number.\") },\n  { func: \"ceil($number)\", desc: t(\"Rounds a number up to the next whole number.\") },\n  { func: \"floor($number)\", desc: t(\"Rounds a number down to the previous whole number.\") },\n  { func: \"abs($number)\", desc: t(\"Returns the absolute value of a number.\") },\n  { func: \"min($numbers)\", desc: t(\"Finds the minimum of several numbers.\") },\n  { func: \"max($numbers)\", desc: t(\"Finds the maximum of several numbers.\") },\n  { func: \"random([$limit])\", desc: t(\"Returns a random number.\") },\n  { func: \"length($list)\", desc: t(\"Returns the length of a list.\") },\n  { func: \"nth($list, $n)\", desc: t(\"Returns a specific item in a list.\") },\n  { func: \"set-nth($list, $n, $value)\", desc: t(\"Replaces the nth item in a list.\") },\n  { func: \"join($list1, $list2, [$separator])\", desc: t(\"Joins together two lists into one.\") },\n  { func: \"append($list1, $val, [$separator])\", desc: t(\"Appends a single value onto the end of a list.\") },\n  { func: \"zip($lists)\", desc: t(\"Combines several lists into a single multidimensional list.\") },\n  { func: \"index($list, $value)\", desc: t(\"Returns the position of a value within a list.\") },\n  { func: \"list-separator(#list)\", desc: t(\"Returns the separator of a list.\") },\n  { func: \"map-get($map, $key)\", desc: t(\"Returns the value in a map associated with a given key.\") },\n  { func: \"map-merge($map1, $map2)\", desc: t(\"Merges two maps together into a new map.\") },\n  { func: \"map-remove($map, $keys)\", desc: t(\"Returns a new map with keys removed.\") },\n  { func: \"map-keys($map)\", desc: t(\"Returns a list of all keys in a map.\") },\n  { func: \"map-values($map)\", desc: t(\"Returns a list of all values in a map.\") },\n  { func: \"map-has-key($map, $key)\", desc: t(\"Returns whether a map has a value associated with a given key.\") },\n  { func: \"keywords($args)\", desc: t(\"Returns the keywords passed to a function that takes variable arguments.\") },\n  { func: \"feature-exists($feature)\", desc: t(\"Returns whether a feature exists in the current Sass runtime.\") },\n  { func: \"variable-exists($name)\", desc: t(\"Returns whether a variable with the given name exists in the current scope.\") },\n  { func: \"global-variable-exists($name)\", desc: t(\"Returns whether a variable with the given name exists in the global scope.\") },\n  { func: \"function-exists($name)\", desc: t(\"Returns whether a function with the given name exists.\") },\n  { func: \"mixin-exists($name)\", desc: t(\"Returns whether a mixin with the given name exists.\") },\n  { func: \"inspect($value)\", desc: t(\"Returns the string representation of a value as it would be represented in Sass.\") },\n  { func: \"type-of($value)\", desc: t(\"Returns the type of a value.\") },\n  { func: \"unit($number)\", desc: t(\"Returns the unit(s) associated with a number.\") },\n  { func: \"unitless($number)\", desc: t(\"Returns whether a number has units.\") },\n  { func: \"comparable($number1, $number2)\", desc: t(\"Returns whether two numbers can be added, subtracted, or compared.\") },\n  { func: \"call($name, $args\\u2026)\", desc: t(\"Dynamically calls a Sass function.\") }\n];\nSCSSCompletion.scssAtDirectives = [\n  {\n    label: \"@extend\",\n    documentation: t(\"Inherits the styles of another selector.\"),\n    kind: CompletionItemKind.Keyword\n  },\n  {\n    label: \"@at-root\",\n    documentation: t(\"Causes one or more rules to be emitted at the root of the document.\"),\n    kind: CompletionItemKind.Keyword\n  },\n  {\n    label: \"@debug\",\n    documentation: t(\"Prints the value of an expression to the standard error output stream. Useful for debugging complicated Sass files.\"),\n    kind: CompletionItemKind.Keyword\n  },\n  {\n    label: \"@warn\",\n    documentation: t(\"Prints the value of an expression to the standard error output stream. Useful for libraries that need to warn users of deprecations or recovering from minor mixin usage mistakes. Warnings can be turned off with the `--quiet` command-line option or the `:quiet` Sass option.\"),\n    kind: CompletionItemKind.Keyword\n  },\n  {\n    label: \"@error\",\n    documentation: t(\"Throws the value of an expression as a fatal error with stack trace. Useful for validating arguments to mixins and functions.\"),\n    kind: CompletionItemKind.Keyword\n  },\n  {\n    label: \"@if\",\n    documentation: t(\"Includes the body if the expression does not evaluate to `false` or `null`.\"),\n    insertText: \"@if ${1:expr} {\\n\t$0\\n}\",\n    insertTextFormat: InsertTextFormat.Snippet,\n    kind: CompletionItemKind.Keyword\n  },\n  {\n    label: \"@for\",\n    documentation: t(\"For loop that repeatedly outputs a set of styles for each `$var` in the `from/through` or `from/to` clause.\"),\n    insertText: \"@for \\\\$${1:var} from ${2:start} ${3|to,through|} ${4:end} {\\n\t$0\\n}\",\n    insertTextFormat: InsertTextFormat.Snippet,\n    kind: CompletionItemKind.Keyword\n  },\n  {\n    label: \"@each\",\n    documentation: t(\"Each loop that sets `$var` to each item in the list or map, then outputs the styles it contains using that value of `$var`.\"),\n    insertText: \"@each \\\\$${1:var} in ${2:list} {\\n\t$0\\n}\",\n    insertTextFormat: InsertTextFormat.Snippet,\n    kind: CompletionItemKind.Keyword\n  },\n  {\n    label: \"@while\",\n    documentation: t(\"While loop that takes an expression and repeatedly outputs the nested styles until the statement evaluates to `false`.\"),\n    insertText: \"@while ${1:condition} {\\n\t$0\\n}\",\n    insertTextFormat: InsertTextFormat.Snippet,\n    kind: CompletionItemKind.Keyword\n  },\n  {\n    label: \"@mixin\",\n    documentation: t(\"Defines styles that can be re-used throughout the stylesheet with `@include`.\"),\n    insertText: \"@mixin ${1:name} {\\n\t$0\\n}\",\n    insertTextFormat: InsertTextFormat.Snippet,\n    kind: CompletionItemKind.Keyword\n  },\n  {\n    label: \"@include\",\n    documentation: t(\"Includes the styles defined by another mixin into the current rule.\"),\n    kind: CompletionItemKind.Keyword\n  },\n  {\n    label: \"@function\",\n    documentation: t(\"Defines complex operations that can be re-used throughout stylesheets.\"),\n    kind: CompletionItemKind.Keyword\n  }\n];\nSCSSCompletion.scssModuleLoaders = [\n  {\n    label: \"@use\",\n    documentation: t(\"Loads mixins, functions, and variables from other Sass stylesheets as 'modules', and combines CSS from multiple stylesheets together.\"),\n    references: [{ name: sassDocumentationName, url: \"https://sass-lang.com/documentation/at-rules/use\" }],\n    insertText: \"@use $0;\",\n    insertTextFormat: InsertTextFormat.Snippet,\n    kind: CompletionItemKind.Keyword\n  },\n  {\n    label: \"@forward\",\n    documentation: t(\"Loads a Sass stylesheet and makes its mixins, functions, and variables available when this stylesheet is loaded with the @use rule.\"),\n    references: [{ name: sassDocumentationName, url: \"https://sass-lang.com/documentation/at-rules/forward\" }],\n    insertText: \"@forward $0;\",\n    insertTextFormat: InsertTextFormat.Snippet,\n    kind: CompletionItemKind.Keyword\n  }\n];\nSCSSCompletion.scssModuleBuiltIns = [\n  {\n    label: \"sass:math\",\n    documentation: t(\"Provides functions that operate on numbers.\"),\n    references: [{ name: sassDocumentationName, url: \"https://sass-lang.com/documentation/modules/math\" }]\n  },\n  {\n    label: \"sass:string\",\n    documentation: t(\"Makes it easy to combine, search, or split apart strings.\"),\n    references: [{ name: sassDocumentationName, url: \"https://sass-lang.com/documentation/modules/string\" }]\n  },\n  {\n    label: \"sass:color\",\n    documentation: t(\"Generates new colors based on existing ones, making it easy to build color themes.\"),\n    references: [{ name: sassDocumentationName, url: \"https://sass-lang.com/documentation/modules/color\" }]\n  },\n  {\n    label: \"sass:list\",\n    documentation: t(\"Lets you access and modify values in lists.\"),\n    references: [{ name: sassDocumentationName, url: \"https://sass-lang.com/documentation/modules/list\" }]\n  },\n  {\n    label: \"sass:map\",\n    documentation: t(\"Makes it possible to look up the value associated with a key in a map, and much more.\"),\n    references: [{ name: sassDocumentationName, url: \"https://sass-lang.com/documentation/modules/map\" }]\n  },\n  {\n    label: \"sass:selector\",\n    documentation: t(\"Provides access to Sass\\u2019s powerful selector engine.\"),\n    references: [{ name: sassDocumentationName, url: \"https://sass-lang.com/documentation/modules/selector\" }]\n  },\n  {\n    label: \"sass:meta\",\n    documentation: t(\"Exposes the details of Sass\\u2019s inner workings.\"),\n    references: [{ name: sassDocumentationName, url: \"https://sass-lang.com/documentation/modules/meta\" }]\n  }\n];\nfunction addReferencesToDocumentation(items) {\n  items.forEach((i) => {\n    if (i.documentation && i.references && i.references.length > 0) {\n      const markdownDoc = typeof i.documentation === \"string\" ? { kind: \"markdown\", value: i.documentation } : { kind: \"markdown\", value: i.documentation.value };\n      markdownDoc.value += \"\\n\\n\";\n      markdownDoc.value += i.references.map((r) => {\n        return `[${r.name}](${r.url})`;\n      }).join(\" | \");\n      i.documentation = markdownDoc;\n    }\n  });\n}\n\n// node_modules/vscode-css-languageservice/lib/esm/parser/lessScanner.js\nvar _FSL3 = \"/\".charCodeAt(0);\nvar _NWL3 = \"\\n\".charCodeAt(0);\nvar _CAR3 = \"\\r\".charCodeAt(0);\nvar _LFD3 = \"\\f\".charCodeAt(0);\nvar _TIC = \"`\".charCodeAt(0);\nvar _DOT3 = \".\".charCodeAt(0);\nvar customTokenValue2 = TokenType.CustomToken;\nvar Ellipsis2 = customTokenValue2++;\nvar LESSScanner = class extends Scanner {\n  scanNext(offset) {\n    const tokenType = this.escapedJavaScript();\n    if (tokenType !== null) {\n      return this.finishToken(offset, tokenType);\n    }\n    if (this.stream.advanceIfChars([_DOT3, _DOT3, _DOT3])) {\n      return this.finishToken(offset, Ellipsis2);\n    }\n    return super.scanNext(offset);\n  }\n  comment() {\n    if (super.comment()) {\n      return true;\n    }\n    if (!this.inURL && this.stream.advanceIfChars([_FSL3, _FSL3])) {\n      this.stream.advanceWhileChar((ch) => {\n        switch (ch) {\n          case _NWL3:\n          case _CAR3:\n          case _LFD3:\n            return false;\n          default:\n            return true;\n        }\n      });\n      return true;\n    } else {\n      return false;\n    }\n  }\n  escapedJavaScript() {\n    const ch = this.stream.peekChar();\n    if (ch === _TIC) {\n      this.stream.advance(1);\n      this.stream.advanceWhileChar((ch2) => {\n        return ch2 !== _TIC;\n      });\n      return this.stream.advanceIfChar(_TIC) ? TokenType.EscapedJavaScript : TokenType.BadEscapedJavaScript;\n    }\n    return null;\n  }\n};\n\n// node_modules/vscode-css-languageservice/lib/esm/parser/lessParser.js\nvar LESSParser = class extends Parser {\n  constructor() {\n    super(new LESSScanner());\n  }\n  _parseStylesheetStatement(isNested = false) {\n    if (this.peek(TokenType.AtKeyword)) {\n      return this._parseVariableDeclaration() || this._parsePlugin() || super._parseStylesheetAtStatement(isNested);\n    }\n    return this._tryParseMixinDeclaration() || this._tryParseMixinReference() || this._parseFunction() || this._parseRuleset(true);\n  }\n  _parseImport() {\n    if (!this.peekKeyword(\"@import\") && !this.peekKeyword(\"@import-once\")) {\n      return null;\n    }\n    const node = this.create(Import);\n    this.consumeToken();\n    if (this.accept(TokenType.ParenthesisL)) {\n      if (!this.accept(TokenType.Ident)) {\n        return this.finish(node, ParseError.IdentifierExpected, [TokenType.SemiColon]);\n      }\n      do {\n        if (!this.accept(TokenType.Comma)) {\n          break;\n        }\n      } while (this.accept(TokenType.Ident));\n      if (!this.accept(TokenType.ParenthesisR)) {\n        return this.finish(node, ParseError.RightParenthesisExpected, [TokenType.SemiColon]);\n      }\n    }\n    if (!node.addChild(this._parseURILiteral()) && !node.addChild(this._parseStringLiteral())) {\n      return this.finish(node, ParseError.URIOrStringExpected, [TokenType.SemiColon]);\n    }\n    if (!this.peek(TokenType.SemiColon) && !this.peek(TokenType.EOF)) {\n      node.setMedialist(this._parseMediaQueryList());\n    }\n    return this._completeParseImport(node);\n  }\n  _parsePlugin() {\n    if (!this.peekKeyword(\"@plugin\")) {\n      return null;\n    }\n    const node = this.createNode(NodeType.Plugin);\n    this.consumeToken();\n    if (!node.addChild(this._parseStringLiteral())) {\n      return this.finish(node, ParseError.StringLiteralExpected);\n    }\n    if (!this.accept(TokenType.SemiColon)) {\n      return this.finish(node, ParseError.SemiColonExpected);\n    }\n    return this.finish(node);\n  }\n  _parseMediaQuery() {\n    const node = super._parseMediaQuery();\n    if (!node) {\n      const node2 = this.create(MediaQuery);\n      if (node2.addChild(this._parseVariable())) {\n        return this.finish(node2);\n      }\n      return null;\n    }\n    return node;\n  }\n  _parseMediaDeclaration(isNested = false) {\n    return this._tryParseRuleset(isNested) || this._tryToParseDeclaration() || this._tryParseMixinDeclaration() || this._tryParseMixinReference() || this._parseDetachedRuleSetMixin() || this._parseStylesheetStatement(isNested);\n  }\n  _parseMediaFeatureName() {\n    return this._parseIdent() || this._parseVariable();\n  }\n  _parseVariableDeclaration(panic = []) {\n    const node = this.create(VariableDeclaration);\n    const mark = this.mark();\n    if (!node.setVariable(this._parseVariable(true))) {\n      return null;\n    }\n    if (this.accept(TokenType.Colon)) {\n      if (this.prevToken) {\n        node.colonPosition = this.prevToken.offset;\n      }\n      if (node.setValue(this._parseDetachedRuleSet())) {\n        node.needsSemicolon = false;\n      } else if (!node.setValue(this._parseExpr())) {\n        return this.finish(node, ParseError.VariableValueExpected, [], panic);\n      }\n      node.addChild(this._parsePrio());\n    } else {\n      this.restoreAtMark(mark);\n      return null;\n    }\n    if (this.peek(TokenType.SemiColon)) {\n      node.semicolonPosition = this.token.offset;\n    }\n    return this.finish(node);\n  }\n  _parseDetachedRuleSet() {\n    let mark = this.mark();\n    if (this.peekDelim(\"#\") || this.peekDelim(\".\")) {\n      this.consumeToken();\n      if (!this.hasWhitespace() && this.accept(TokenType.ParenthesisL)) {\n        let node = this.create(MixinDeclaration);\n        if (node.getParameters().addChild(this._parseMixinParameter())) {\n          while (this.accept(TokenType.Comma) || this.accept(TokenType.SemiColon)) {\n            if (this.peek(TokenType.ParenthesisR)) {\n              break;\n            }\n            if (!node.getParameters().addChild(this._parseMixinParameter())) {\n              this.markError(node, ParseError.IdentifierExpected, [], [TokenType.ParenthesisR]);\n            }\n          }\n        }\n        if (!this.accept(TokenType.ParenthesisR)) {\n          this.restoreAtMark(mark);\n          return null;\n        }\n      } else {\n        this.restoreAtMark(mark);\n        return null;\n      }\n    }\n    if (!this.peek(TokenType.CurlyL)) {\n      return null;\n    }\n    const content = this.create(BodyDeclaration);\n    this._parseBody(content, this._parseDetachedRuleSetBody.bind(this));\n    return this.finish(content);\n  }\n  _parseDetachedRuleSetBody() {\n    return this._tryParseKeyframeSelector() || this._parseRuleSetDeclaration();\n  }\n  _addLookupChildren(node) {\n    if (!node.addChild(this._parseLookupValue())) {\n      return false;\n    }\n    let expectsValue = false;\n    while (true) {\n      if (this.peek(TokenType.BracketL)) {\n        expectsValue = true;\n      }\n      if (!node.addChild(this._parseLookupValue())) {\n        break;\n      }\n      expectsValue = false;\n    }\n    return !expectsValue;\n  }\n  _parseLookupValue() {\n    const node = this.create(Node);\n    const mark = this.mark();\n    if (!this.accept(TokenType.BracketL)) {\n      this.restoreAtMark(mark);\n      return null;\n    }\n    if ((node.addChild(this._parseVariable(false, true)) || node.addChild(this._parsePropertyIdentifier())) && this.accept(TokenType.BracketR) || this.accept(TokenType.BracketR)) {\n      return node;\n    }\n    this.restoreAtMark(mark);\n    return null;\n  }\n  _parseVariable(declaration = false, insideLookup = false) {\n    const isPropertyReference = !declaration && this.peekDelim(\"$\");\n    if (!this.peekDelim(\"@\") && !isPropertyReference && !this.peek(TokenType.AtKeyword)) {\n      return null;\n    }\n    const node = this.create(Variable);\n    const mark = this.mark();\n    while (this.acceptDelim(\"@\") || !declaration && this.acceptDelim(\"$\")) {\n      if (this.hasWhitespace()) {\n        this.restoreAtMark(mark);\n        return null;\n      }\n    }\n    if (!this.accept(TokenType.AtKeyword) && !this.accept(TokenType.Ident)) {\n      this.restoreAtMark(mark);\n      return null;\n    }\n    if (!insideLookup && this.peek(TokenType.BracketL)) {\n      if (!this._addLookupChildren(node)) {\n        this.restoreAtMark(mark);\n        return null;\n      }\n    }\n    return node;\n  }\n  _parseTermExpression() {\n    return this._parseVariable() || this._parseEscaped() || super._parseTermExpression() || // preference for colors before mixin references\n    this._tryParseMixinReference(false);\n  }\n  _parseEscaped() {\n    if (this.peek(TokenType.EscapedJavaScript) || this.peek(TokenType.BadEscapedJavaScript)) {\n      const node = this.createNode(NodeType.EscapedValue);\n      this.consumeToken();\n      return this.finish(node);\n    }\n    if (this.peekDelim(\"~\")) {\n      const node = this.createNode(NodeType.EscapedValue);\n      this.consumeToken();\n      if (this.accept(TokenType.String) || this.accept(TokenType.EscapedJavaScript)) {\n        return this.finish(node);\n      } else {\n        return this.finish(node, ParseError.TermExpected);\n      }\n    }\n    return null;\n  }\n  _parseOperator() {\n    const node = this._parseGuardOperator();\n    if (node) {\n      return node;\n    } else {\n      return super._parseOperator();\n    }\n  }\n  _parseGuardOperator() {\n    if (this.peekDelim(\">\")) {\n      const node = this.createNode(NodeType.Operator);\n      this.consumeToken();\n      this.acceptDelim(\"=\");\n      return node;\n    } else if (this.peekDelim(\"=\")) {\n      const node = this.createNode(NodeType.Operator);\n      this.consumeToken();\n      this.acceptDelim(\"<\");\n      return node;\n    } else if (this.peekDelim(\"<\")) {\n      const node = this.createNode(NodeType.Operator);\n      this.consumeToken();\n      this.acceptDelim(\"=\");\n      return node;\n    }\n    return null;\n  }\n  _parseRuleSetDeclaration() {\n    if (this.peek(TokenType.AtKeyword)) {\n      return this._parseKeyframe() || this._parseMedia(true) || this._parseImport() || this._parseSupports(true) || this._parseLayer() || this._parsePropertyAtRule() || this._parseContainer(true) || this._parseDetachedRuleSetMixin() || this._parseVariableDeclaration() || this._parseRuleSetDeclarationAtStatement();\n    }\n    return this._tryParseMixinDeclaration() || this._tryParseRuleset(true) || this._tryParseMixinReference() || this._parseFunction() || this._parseExtend() || this._parseDeclaration();\n  }\n  _parseKeyframeIdent() {\n    return this._parseIdent([ReferenceType.Keyframe]) || this._parseVariable();\n  }\n  _parseKeyframeSelector() {\n    return this._parseDetachedRuleSetMixin() || super._parseKeyframeSelector();\n  }\n  // public _parseSimpleSelectorBody(): nodes.Node | null {\n  // \treturn this._parseNestingSelector() || super._parseSimpleSelectorBody();\n  // }\n  _parseSelector(isNested) {\n    const node = this.create(Selector);\n    let hasContent = false;\n    if (isNested) {\n      hasContent = node.addChild(this._parseCombinator());\n    }\n    while (node.addChild(this._parseSimpleSelector())) {\n      hasContent = true;\n      const mark = this.mark();\n      if (node.addChild(this._parseGuard()) && this.peek(TokenType.CurlyL)) {\n        break;\n      }\n      this.restoreAtMark(mark);\n      node.addChild(this._parseCombinator());\n    }\n    return hasContent ? this.finish(node) : null;\n  }\n  _parseNestingSelector() {\n    if (this.peekDelim(\"&\")) {\n      const node = this.createNode(NodeType.SelectorCombinator);\n      this.consumeToken();\n      while (!this.hasWhitespace() && (this.acceptDelim(\"-\") || this.accept(TokenType.Num) || this.accept(TokenType.Dimension) || node.addChild(this._parseIdent()) || this.acceptDelim(\"&\"))) {\n      }\n      return this.finish(node);\n    }\n    return null;\n  }\n  _parseSelectorIdent() {\n    if (!this.peekInterpolatedIdent()) {\n      return null;\n    }\n    const node = this.createNode(NodeType.SelectorInterpolation);\n    const hasContent = this._acceptInterpolatedIdent(node);\n    return hasContent ? this.finish(node) : null;\n  }\n  _parsePropertyIdentifier(inLookup = false) {\n    const propertyRegex = /^[\\w-]+/;\n    if (!this.peekInterpolatedIdent() && !this.peekRegExp(this.token.type, propertyRegex)) {\n      return null;\n    }\n    const mark = this.mark();\n    const node = this.create(Identifier);\n    node.isCustomProperty = this.acceptDelim(\"-\") && this.acceptDelim(\"-\");\n    let childAdded = false;\n    if (!inLookup) {\n      if (node.isCustomProperty) {\n        childAdded = this._acceptInterpolatedIdent(node);\n      } else {\n        childAdded = this._acceptInterpolatedIdent(node, propertyRegex);\n      }\n    } else {\n      if (node.isCustomProperty) {\n        childAdded = node.addChild(this._parseIdent());\n      } else {\n        childAdded = node.addChild(this._parseRegexp(propertyRegex));\n      }\n    }\n    if (!childAdded) {\n      this.restoreAtMark(mark);\n      return null;\n    }\n    if (!inLookup && !this.hasWhitespace()) {\n      this.acceptDelim(\"+\");\n      if (!this.hasWhitespace()) {\n        this.acceptIdent(\"_\");\n      }\n    }\n    return this.finish(node);\n  }\n  peekInterpolatedIdent() {\n    return this.peek(TokenType.Ident) || this.peekDelim(\"@\") || this.peekDelim(\"$\") || this.peekDelim(\"-\");\n  }\n  _acceptInterpolatedIdent(node, identRegex) {\n    let hasContent = false;\n    const indentInterpolation = () => {\n      const pos = this.mark();\n      if (this.acceptDelim(\"-\")) {\n        if (!this.hasWhitespace()) {\n          this.acceptDelim(\"-\");\n        }\n        if (this.hasWhitespace()) {\n          this.restoreAtMark(pos);\n          return null;\n        }\n      }\n      return this._parseInterpolation();\n    };\n    const accept = identRegex ? () => this.acceptRegexp(identRegex) : () => this.accept(TokenType.Ident);\n    while (accept() || node.addChild(this._parseInterpolation() || this.try(indentInterpolation))) {\n      hasContent = true;\n      if (this.hasWhitespace()) {\n        break;\n      }\n    }\n    return hasContent;\n  }\n  _parseInterpolation() {\n    const mark = this.mark();\n    if (this.peekDelim(\"@\") || this.peekDelim(\"$\")) {\n      const node = this.createNode(NodeType.Interpolation);\n      this.consumeToken();\n      if (this.hasWhitespace() || !this.accept(TokenType.CurlyL)) {\n        this.restoreAtMark(mark);\n        return null;\n      }\n      if (!node.addChild(this._parseIdent())) {\n        return this.finish(node, ParseError.IdentifierExpected);\n      }\n      if (!this.accept(TokenType.CurlyR)) {\n        return this.finish(node, ParseError.RightCurlyExpected);\n      }\n      return this.finish(node);\n    }\n    return null;\n  }\n  _tryParseMixinDeclaration() {\n    const mark = this.mark();\n    const node = this.create(MixinDeclaration);\n    if (!node.setIdentifier(this._parseMixinDeclarationIdentifier()) || !this.accept(TokenType.ParenthesisL)) {\n      this.restoreAtMark(mark);\n      return null;\n    }\n    if (node.getParameters().addChild(this._parseMixinParameter())) {\n      while (this.accept(TokenType.Comma) || this.accept(TokenType.SemiColon)) {\n        if (this.peek(TokenType.ParenthesisR)) {\n          break;\n        }\n        if (!node.getParameters().addChild(this._parseMixinParameter())) {\n          this.markError(node, ParseError.IdentifierExpected, [], [TokenType.ParenthesisR]);\n        }\n      }\n    }\n    if (!this.accept(TokenType.ParenthesisR)) {\n      this.restoreAtMark(mark);\n      return null;\n    }\n    node.setGuard(this._parseGuard());\n    if (!this.peek(TokenType.CurlyL)) {\n      this.restoreAtMark(mark);\n      return null;\n    }\n    return this._parseBody(node, this._parseMixInBodyDeclaration.bind(this));\n  }\n  _parseMixInBodyDeclaration() {\n    return this._parseFontFace() || this._parseRuleSetDeclaration();\n  }\n  _parseMixinDeclarationIdentifier() {\n    let identifier;\n    if (this.peekDelim(\"#\") || this.peekDelim(\".\")) {\n      identifier = this.create(Identifier);\n      this.consumeToken();\n      if (this.hasWhitespace() || !identifier.addChild(this._parseIdent())) {\n        return null;\n      }\n    } else if (this.peek(TokenType.Hash)) {\n      identifier = this.create(Identifier);\n      this.consumeToken();\n    } else {\n      return null;\n    }\n    identifier.referenceTypes = [ReferenceType.Mixin];\n    return this.finish(identifier);\n  }\n  _parsePseudo() {\n    if (!this.peek(TokenType.Colon)) {\n      return null;\n    }\n    const mark = this.mark();\n    const node = this.create(ExtendsReference);\n    this.consumeToken();\n    if (this.acceptIdent(\"extend\")) {\n      return this._completeExtends(node);\n    }\n    this.restoreAtMark(mark);\n    return super._parsePseudo();\n  }\n  _parseExtend() {\n    if (!this.peekDelim(\"&\")) {\n      return null;\n    }\n    const mark = this.mark();\n    const node = this.create(ExtendsReference);\n    this.consumeToken();\n    if (this.hasWhitespace() || !this.accept(TokenType.Colon) || !this.acceptIdent(\"extend\")) {\n      this.restoreAtMark(mark);\n      return null;\n    }\n    return this._completeExtends(node);\n  }\n  _completeExtends(node) {\n    if (!this.accept(TokenType.ParenthesisL)) {\n      return this.finish(node, ParseError.LeftParenthesisExpected);\n    }\n    const selectors = node.getSelectors();\n    if (!selectors.addChild(this._parseSelector(true))) {\n      return this.finish(node, ParseError.SelectorExpected);\n    }\n    while (this.accept(TokenType.Comma)) {\n      if (!selectors.addChild(this._parseSelector(true))) {\n        return this.finish(node, ParseError.SelectorExpected);\n      }\n    }\n    if (!this.accept(TokenType.ParenthesisR)) {\n      return this.finish(node, ParseError.RightParenthesisExpected);\n    }\n    return this.finish(node);\n  }\n  _parseDetachedRuleSetMixin() {\n    if (!this.peek(TokenType.AtKeyword)) {\n      return null;\n    }\n    const mark = this.mark();\n    const node = this.create(MixinReference);\n    if (node.addChild(this._parseVariable(true)) && (this.hasWhitespace() || !this.accept(TokenType.ParenthesisL))) {\n      this.restoreAtMark(mark);\n      return null;\n    }\n    if (!this.accept(TokenType.ParenthesisR)) {\n      return this.finish(node, ParseError.RightParenthesisExpected);\n    }\n    return this.finish(node);\n  }\n  _tryParseMixinReference(atRoot = true) {\n    const mark = this.mark();\n    const node = this.create(MixinReference);\n    let identifier = this._parseMixinDeclarationIdentifier();\n    while (identifier) {\n      this.acceptDelim(\">\");\n      const nextId = this._parseMixinDeclarationIdentifier();\n      if (nextId) {\n        node.getNamespaces().addChild(identifier);\n        identifier = nextId;\n      } else {\n        break;\n      }\n    }\n    if (!node.setIdentifier(identifier)) {\n      this.restoreAtMark(mark);\n      return null;\n    }\n    let hasArguments = false;\n    if (this.accept(TokenType.ParenthesisL)) {\n      hasArguments = true;\n      if (node.getArguments().addChild(this._parseMixinArgument())) {\n        while (this.accept(TokenType.Comma) || this.accept(TokenType.SemiColon)) {\n          if (this.peek(TokenType.ParenthesisR)) {\n            break;\n          }\n          if (!node.getArguments().addChild(this._parseMixinArgument())) {\n            return this.finish(node, ParseError.ExpressionExpected);\n          }\n        }\n      }\n      if (!this.accept(TokenType.ParenthesisR)) {\n        return this.finish(node, ParseError.RightParenthesisExpected);\n      }\n      identifier.referenceTypes = [ReferenceType.Mixin];\n    } else {\n      identifier.referenceTypes = [ReferenceType.Mixin, ReferenceType.Rule];\n    }\n    if (this.peek(TokenType.BracketL)) {\n      if (!atRoot) {\n        this._addLookupChildren(node);\n      }\n    } else {\n      node.addChild(this._parsePrio());\n    }\n    if (!hasArguments && !this.peek(TokenType.SemiColon) && !this.peek(TokenType.CurlyR) && !this.peek(TokenType.EOF)) {\n      this.restoreAtMark(mark);\n      return null;\n    }\n    return this.finish(node);\n  }\n  _parseMixinArgument() {\n    const node = this.create(FunctionArgument);\n    const pos = this.mark();\n    const argument = this._parseVariable();\n    if (argument) {\n      if (!this.accept(TokenType.Colon)) {\n        this.restoreAtMark(pos);\n      } else {\n        node.setIdentifier(argument);\n      }\n    }\n    if (node.setValue(this._parseDetachedRuleSet() || this._parseExpr(true))) {\n      return this.finish(node);\n    }\n    this.restoreAtMark(pos);\n    return null;\n  }\n  _parseMixinParameter() {\n    const node = this.create(FunctionParameter);\n    if (this.peekKeyword(\"@rest\")) {\n      const restNode = this.create(Node);\n      this.consumeToken();\n      if (!this.accept(Ellipsis2)) {\n        return this.finish(node, ParseError.DotExpected, [], [TokenType.Comma, TokenType.ParenthesisR]);\n      }\n      node.setIdentifier(this.finish(restNode));\n      return this.finish(node);\n    }\n    if (this.peek(Ellipsis2)) {\n      const varargsNode = this.create(Node);\n      this.consumeToken();\n      node.setIdentifier(this.finish(varargsNode));\n      return this.finish(node);\n    }\n    let hasContent = false;\n    if (node.setIdentifier(this._parseVariable())) {\n      this.accept(TokenType.Colon);\n      hasContent = true;\n    }\n    if (!node.setDefaultValue(this._parseDetachedRuleSet() || this._parseExpr(true)) && !hasContent) {\n      return null;\n    }\n    return this.finish(node);\n  }\n  _parseGuard() {\n    if (!this.peekIdent(\"when\")) {\n      return null;\n    }\n    const node = this.create(LessGuard);\n    this.consumeToken();\n    if (!node.getConditions().addChild(this._parseGuardCondition())) {\n      return this.finish(node, ParseError.ConditionExpected);\n    }\n    while (this.acceptIdent(\"and\") || this.accept(TokenType.Comma)) {\n      if (!node.getConditions().addChild(this._parseGuardCondition())) {\n        return this.finish(node, ParseError.ConditionExpected);\n      }\n    }\n    return this.finish(node);\n  }\n  _parseGuardCondition() {\n    const node = this.create(GuardCondition);\n    node.isNegated = this.acceptIdent(\"not\");\n    if (!this.accept(TokenType.ParenthesisL)) {\n      if (node.isNegated) {\n        return this.finish(node, ParseError.LeftParenthesisExpected);\n      }\n      return null;\n    }\n    if (!node.addChild(this._parseExpr())) {\n    }\n    if (!this.accept(TokenType.ParenthesisR)) {\n      return this.finish(node, ParseError.RightParenthesisExpected);\n    }\n    return this.finish(node);\n  }\n  _parseFunction() {\n    const pos = this.mark();\n    const node = this.create(Function);\n    if (!node.setIdentifier(this._parseFunctionIdentifier())) {\n      return null;\n    }\n    if (this.hasWhitespace() || !this.accept(TokenType.ParenthesisL)) {\n      this.restoreAtMark(pos);\n      return null;\n    }\n    if (node.getArguments().addChild(this._parseMixinArgument())) {\n      while (this.accept(TokenType.Comma) || this.accept(TokenType.SemiColon)) {\n        if (this.peek(TokenType.ParenthesisR)) {\n          break;\n        }\n        if (!node.getArguments().addChild(this._parseMixinArgument())) {\n          return this.finish(node, ParseError.ExpressionExpected);\n        }\n      }\n    }\n    if (!this.accept(TokenType.ParenthesisR)) {\n      return this.finish(node, ParseError.RightParenthesisExpected);\n    }\n    return this.finish(node);\n  }\n  _parseFunctionIdentifier() {\n    if (this.peekDelim(\"%\")) {\n      const node = this.create(Identifier);\n      node.referenceTypes = [ReferenceType.Function];\n      this.consumeToken();\n      return this.finish(node);\n    }\n    return super._parseFunctionIdentifier();\n  }\n  _parseURLArgument() {\n    const pos = this.mark();\n    const node = super._parseURLArgument();\n    if (!node || !this.peek(TokenType.ParenthesisR)) {\n      this.restoreAtMark(pos);\n      const node2 = this.create(Node);\n      node2.addChild(this._parseBinaryExpr());\n      return this.finish(node2);\n    }\n    return node;\n  }\n};\n\n// node_modules/vscode-css-languageservice/lib/esm/services/lessCompletion.js\nvar LESSCompletion = class _LESSCompletion extends CSSCompletion {\n  constructor(lsOptions, cssDataManager) {\n    super(\"@\", lsOptions, cssDataManager);\n  }\n  createFunctionProposals(proposals, existingNode, sortToEnd, result) {\n    for (const p of proposals) {\n      const item = {\n        label: p.name,\n        detail: p.example,\n        documentation: p.description,\n        textEdit: TextEdit.replace(this.getCompletionRange(existingNode), p.name + \"($0)\"),\n        insertTextFormat: InsertTextFormat.Snippet,\n        kind: CompletionItemKind.Function\n      };\n      if (sortToEnd) {\n        item.sortText = \"z\";\n      }\n      result.items.push(item);\n    }\n    return result;\n  }\n  getTermProposals(entry, existingNode, result) {\n    let functions = _LESSCompletion.builtInProposals;\n    if (entry) {\n      functions = functions.filter((f2) => !f2.type || !entry.restrictions || entry.restrictions.indexOf(f2.type) !== -1);\n    }\n    this.createFunctionProposals(functions, existingNode, true, result);\n    return super.getTermProposals(entry, existingNode, result);\n  }\n  getColorProposals(entry, existingNode, result) {\n    this.createFunctionProposals(_LESSCompletion.colorProposals, existingNode, false, result);\n    return super.getColorProposals(entry, existingNode, result);\n  }\n  getCompletionsForDeclarationProperty(declaration, result) {\n    this.getCompletionsForSelector(null, true, result);\n    return super.getCompletionsForDeclarationProperty(declaration, result);\n  }\n};\nLESSCompletion.builtInProposals = [\n  // Boolean functions\n  {\n    \"name\": \"if\",\n    \"example\": \"if(condition, trueValue [, falseValue]);\",\n    \"description\": t(\"returns one of two values depending on a condition.\")\n  },\n  {\n    \"name\": \"boolean\",\n    \"example\": \"boolean(condition);\",\n    \"description\": t('\"store\" a boolean test for later evaluation in a guard or if().')\n  },\n  // List functions\n  {\n    \"name\": \"length\",\n    \"example\": \"length(@list);\",\n    \"description\": t(\"returns the number of elements in a value list\")\n  },\n  {\n    \"name\": \"extract\",\n    \"example\": \"extract(@list, index);\",\n    \"description\": t(\"returns a value at the specified position in the list\")\n  },\n  {\n    \"name\": \"range\",\n    \"example\": \"range([start, ] end [, step]);\",\n    \"description\": t(\"generate a list spanning a range of values\")\n  },\n  {\n    \"name\": \"each\",\n    \"example\": \"each(@list, ruleset);\",\n    \"description\": t(\"bind the evaluation of a ruleset to each member of a list.\")\n  },\n  // Other built-ins\n  {\n    \"name\": \"escape\",\n    \"example\": \"escape(@string);\",\n    \"description\": t(\"URL encodes a string\")\n  },\n  {\n    \"name\": \"e\",\n    \"example\": \"e(@string);\",\n    \"description\": t(\"escape string content\")\n  },\n  {\n    \"name\": \"replace\",\n    \"example\": \"replace(@string, @pattern, @replacement[, @flags]);\",\n    \"description\": t(\"string replace\")\n  },\n  {\n    \"name\": \"unit\",\n    \"example\": \"unit(@dimension, [@unit: '']);\",\n    \"description\": t(\"remove or change the unit of a dimension\")\n  },\n  {\n    \"name\": \"color\",\n    \"example\": \"color(@string);\",\n    \"description\": t(\"parses a string to a color\"),\n    \"type\": \"color\"\n  },\n  {\n    \"name\": \"convert\",\n    \"example\": \"convert(@value, unit);\",\n    \"description\": t(\"converts numbers from one type into another\")\n  },\n  {\n    \"name\": \"data-uri\",\n    \"example\": \"data-uri([mimetype,] url);\",\n    \"description\": t(\"inlines a resource and falls back to `url()`\"),\n    \"type\": \"url\"\n  },\n  {\n    \"name\": \"abs\",\n    \"description\": t(\"absolute value of a number\"),\n    \"example\": \"abs(number);\"\n  },\n  {\n    \"name\": \"acos\",\n    \"description\": t(\"arccosine - inverse of cosine function\"),\n    \"example\": \"acos(number);\"\n  },\n  {\n    \"name\": \"asin\",\n    \"description\": t(\"arcsine - inverse of sine function\"),\n    \"example\": \"asin(number);\"\n  },\n  {\n    \"name\": \"ceil\",\n    \"example\": \"ceil(@number);\",\n    \"description\": t(\"rounds up to an integer\")\n  },\n  {\n    \"name\": \"cos\",\n    \"description\": t(\"cosine function\"),\n    \"example\": \"cos(number);\"\n  },\n  {\n    \"name\": \"floor\",\n    \"description\": t(\"rounds down to an integer\"),\n    \"example\": \"floor(@number);\"\n  },\n  {\n    \"name\": \"percentage\",\n    \"description\": t(\"converts to a %, e.g. 0.5 > 50%\"),\n    \"example\": \"percentage(@number);\",\n    \"type\": \"percentage\"\n  },\n  {\n    \"name\": \"round\",\n    \"description\": t(\"rounds a number to a number of places\"),\n    \"example\": \"round(number, [places: 0]);\"\n  },\n  {\n    \"name\": \"sqrt\",\n    \"description\": t(\"calculates square root of a number\"),\n    \"example\": \"sqrt(number);\"\n  },\n  {\n    \"name\": \"sin\",\n    \"description\": t(\"sine function\"),\n    \"example\": \"sin(number);\"\n  },\n  {\n    \"name\": \"tan\",\n    \"description\": t(\"tangent function\"),\n    \"example\": \"tan(number);\"\n  },\n  {\n    \"name\": \"atan\",\n    \"description\": t(\"arctangent - inverse of tangent function\"),\n    \"example\": \"atan(number);\"\n  },\n  {\n    \"name\": \"pi\",\n    \"description\": t(\"returns pi\"),\n    \"example\": \"pi();\"\n  },\n  {\n    \"name\": \"pow\",\n    \"description\": t(\"first argument raised to the power of the second argument\"),\n    \"example\": \"pow(@base, @exponent);\"\n  },\n  {\n    \"name\": \"mod\",\n    \"description\": t(\"first argument modulus second argument\"),\n    \"example\": \"mod(number, number);\"\n  },\n  {\n    \"name\": \"min\",\n    \"description\": t(\"returns the lowest of one or more values\"),\n    \"example\": \"min(@x, @y);\"\n  },\n  {\n    \"name\": \"max\",\n    \"description\": t(\"returns the lowest of one or more values\"),\n    \"example\": \"max(@x, @y);\"\n  }\n];\nLESSCompletion.colorProposals = [\n  {\n    \"name\": \"argb\",\n    \"example\": \"argb(@color);\",\n    \"description\": t(\"creates a #AARRGGBB\")\n  },\n  {\n    \"name\": \"hsl\",\n    \"example\": \"hsl(@hue, @saturation, @lightness);\",\n    \"description\": t(\"creates a color\")\n  },\n  {\n    \"name\": \"hsla\",\n    \"example\": \"hsla(@hue, @saturation, @lightness, @alpha);\",\n    \"description\": t(\"creates a color\")\n  },\n  {\n    \"name\": \"hsv\",\n    \"example\": \"hsv(@hue, @saturation, @value);\",\n    \"description\": t(\"creates a color\")\n  },\n  {\n    \"name\": \"hsva\",\n    \"example\": \"hsva(@hue, @saturation, @value, @alpha);\",\n    \"description\": t(\"creates a color\")\n  },\n  {\n    \"name\": \"hue\",\n    \"example\": \"hue(@color);\",\n    \"description\": t(\"returns the `hue` channel of `@color` in the HSL space\")\n  },\n  {\n    \"name\": \"saturation\",\n    \"example\": \"saturation(@color);\",\n    \"description\": t(\"returns the `saturation` channel of `@color` in the HSL space\")\n  },\n  {\n    \"name\": \"lightness\",\n    \"example\": \"lightness(@color);\",\n    \"description\": t(\"returns the `lightness` channel of `@color` in the HSL space\")\n  },\n  {\n    \"name\": \"hsvhue\",\n    \"example\": \"hsvhue(@color);\",\n    \"description\": t(\"returns the `hue` channel of `@color` in the HSV space\")\n  },\n  {\n    \"name\": \"hsvsaturation\",\n    \"example\": \"hsvsaturation(@color);\",\n    \"description\": t(\"returns the `saturation` channel of `@color` in the HSV space\")\n  },\n  {\n    \"name\": \"hsvvalue\",\n    \"example\": \"hsvvalue(@color);\",\n    \"description\": t(\"returns the `value` channel of `@color` in the HSV space\")\n  },\n  {\n    \"name\": \"red\",\n    \"example\": \"red(@color);\",\n    \"description\": t(\"returns the `red` channel of `@color`\")\n  },\n  {\n    \"name\": \"green\",\n    \"example\": \"green(@color);\",\n    \"description\": t(\"returns the `green` channel of `@color`\")\n  },\n  {\n    \"name\": \"blue\",\n    \"example\": \"blue(@color);\",\n    \"description\": t(\"returns the `blue` channel of `@color`\")\n  },\n  {\n    \"name\": \"alpha\",\n    \"example\": \"alpha(@color);\",\n    \"description\": t(\"returns the `alpha` channel of `@color`\")\n  },\n  {\n    \"name\": \"luma\",\n    \"example\": \"luma(@color);\",\n    \"description\": t(\"returns the `luma` value (perceptual brightness) of `@color`\")\n  },\n  {\n    \"name\": \"saturate\",\n    \"example\": \"saturate(@color, 10%);\",\n    \"description\": t(\"return `@color` 10% points more saturated\")\n  },\n  {\n    \"name\": \"desaturate\",\n    \"example\": \"desaturate(@color, 10%);\",\n    \"description\": t(\"return `@color` 10% points less saturated\")\n  },\n  {\n    \"name\": \"lighten\",\n    \"example\": \"lighten(@color, 10%);\",\n    \"description\": t(\"return `@color` 10% points lighter\")\n  },\n  {\n    \"name\": \"darken\",\n    \"example\": \"darken(@color, 10%);\",\n    \"description\": t(\"return `@color` 10% points darker\")\n  },\n  {\n    \"name\": \"fadein\",\n    \"example\": \"fadein(@color, 10%);\",\n    \"description\": t(\"return `@color` 10% points less transparent\")\n  },\n  {\n    \"name\": \"fadeout\",\n    \"example\": \"fadeout(@color, 10%);\",\n    \"description\": t(\"return `@color` 10% points more transparent\")\n  },\n  {\n    \"name\": \"fade\",\n    \"example\": \"fade(@color, 50%);\",\n    \"description\": t(\"return `@color` with 50% transparency\")\n  },\n  {\n    \"name\": \"spin\",\n    \"example\": \"spin(@color, 10);\",\n    \"description\": t(\"return `@color` with a 10 degree larger in hue\")\n  },\n  {\n    \"name\": \"mix\",\n    \"example\": \"mix(@color1, @color2, [@weight: 50%]);\",\n    \"description\": t(\"return a mix of `@color1` and `@color2`\")\n  },\n  {\n    \"name\": \"greyscale\",\n    \"example\": \"greyscale(@color);\",\n    \"description\": t(\"returns a grey, 100% desaturated color\")\n  },\n  {\n    \"name\": \"contrast\",\n    \"example\": \"contrast(@color1, [@darkcolor: black], [@lightcolor: white], [@threshold: 43%]);\",\n    \"description\": t(\"return `@darkcolor` if `@color1 is> 43% luma` otherwise return `@lightcolor`, see notes\")\n  },\n  {\n    \"name\": \"multiply\",\n    \"example\": \"multiply(@color1, @color2);\"\n  },\n  {\n    \"name\": \"screen\",\n    \"example\": \"screen(@color1, @color2);\"\n  },\n  {\n    \"name\": \"overlay\",\n    \"example\": \"overlay(@color1, @color2);\"\n  },\n  {\n    \"name\": \"softlight\",\n    \"example\": \"softlight(@color1, @color2);\"\n  },\n  {\n    \"name\": \"hardlight\",\n    \"example\": \"hardlight(@color1, @color2);\"\n  },\n  {\n    \"name\": \"difference\",\n    \"example\": \"difference(@color1, @color2);\"\n  },\n  {\n    \"name\": \"exclusion\",\n    \"example\": \"exclusion(@color1, @color2);\"\n  },\n  {\n    \"name\": \"average\",\n    \"example\": \"average(@color1, @color2);\"\n  },\n  {\n    \"name\": \"negation\",\n    \"example\": \"negation(@color1, @color2);\"\n  }\n];\n\n// node_modules/vscode-css-languageservice/lib/esm/services/cssFolding.js\nfunction getFoldingRanges(document, context) {\n  const ranges = computeFoldingRanges(document);\n  return limitFoldingRanges(ranges, context);\n}\nfunction computeFoldingRanges(document) {\n  function getStartLine(t2) {\n    return document.positionAt(t2.offset).line;\n  }\n  function getEndLine(t2) {\n    return document.positionAt(t2.offset + t2.len).line;\n  }\n  function getScanner() {\n    switch (document.languageId) {\n      case \"scss\":\n        return new SCSSScanner();\n      case \"less\":\n        return new LESSScanner();\n      default:\n        return new Scanner();\n    }\n  }\n  function tokenToRange(t2, kind) {\n    const startLine = getStartLine(t2);\n    const endLine = getEndLine(t2);\n    if (startLine !== endLine) {\n      return {\n        startLine,\n        endLine,\n        kind\n      };\n    } else {\n      return null;\n    }\n  }\n  const ranges = [];\n  const delimiterStack = [];\n  const scanner = getScanner();\n  scanner.ignoreComment = false;\n  scanner.setSource(document.getText());\n  let token = scanner.scan();\n  let prevToken = null;\n  while (token.type !== TokenType.EOF) {\n    switch (token.type) {\n      case TokenType.CurlyL:\n      case InterpolationFunction: {\n        delimiterStack.push({ line: getStartLine(token), type: \"brace\", isStart: true });\n        break;\n      }\n      case TokenType.CurlyR: {\n        if (delimiterStack.length !== 0) {\n          const prevDelimiter = popPrevStartDelimiterOfType(delimiterStack, \"brace\");\n          if (!prevDelimiter) {\n            break;\n          }\n          let endLine = getEndLine(token);\n          if (prevDelimiter.type === \"brace\") {\n            if (prevToken && getEndLine(prevToken) !== endLine) {\n              endLine--;\n            }\n            if (prevDelimiter.line !== endLine) {\n              ranges.push({\n                startLine: prevDelimiter.line,\n                endLine,\n                kind: void 0\n              });\n            }\n          }\n        }\n        break;\n      }\n      case TokenType.Comment: {\n        const commentRegionMarkerToDelimiter = (marker) => {\n          if (marker === \"#region\") {\n            return { line: getStartLine(token), type: \"comment\", isStart: true };\n          } else {\n            return { line: getEndLine(token), type: \"comment\", isStart: false };\n          }\n        };\n        const getCurrDelimiter = (token2) => {\n          const matches2 = token2.text.match(/^\\s*\\/\\*\\s*(#region|#endregion)\\b\\s*(.*?)\\s*\\*\\//);\n          if (matches2) {\n            return commentRegionMarkerToDelimiter(matches2[1]);\n          } else if (document.languageId === \"scss\" || document.languageId === \"less\") {\n            const matches3 = token2.text.match(/^\\s*\\/\\/\\s*(#region|#endregion)\\b\\s*(.*?)\\s*/);\n            if (matches3) {\n              return commentRegionMarkerToDelimiter(matches3[1]);\n            }\n          }\n          return null;\n        };\n        const currDelimiter = getCurrDelimiter(token);\n        if (currDelimiter) {\n          if (currDelimiter.isStart) {\n            delimiterStack.push(currDelimiter);\n          } else {\n            const prevDelimiter = popPrevStartDelimiterOfType(delimiterStack, \"comment\");\n            if (!prevDelimiter) {\n              break;\n            }\n            if (prevDelimiter.type === \"comment\") {\n              if (prevDelimiter.line !== currDelimiter.line) {\n                ranges.push({\n                  startLine: prevDelimiter.line,\n                  endLine: currDelimiter.line,\n                  kind: \"region\"\n                });\n              }\n            }\n          }\n        } else {\n          const range = tokenToRange(token, \"comment\");\n          if (range) {\n            ranges.push(range);\n          }\n        }\n        break;\n      }\n    }\n    prevToken = token;\n    token = scanner.scan();\n  }\n  return ranges;\n}\nfunction popPrevStartDelimiterOfType(stack, type) {\n  if (stack.length === 0) {\n    return null;\n  }\n  for (let i = stack.length - 1; i >= 0; i--) {\n    if (stack[i].type === type && stack[i].isStart) {\n      return stack.splice(i, 1)[0];\n    }\n  }\n  return null;\n}\nfunction limitFoldingRanges(ranges, context) {\n  const maxRanges = context && context.rangeLimit || Number.MAX_VALUE;\n  const sortedRanges = ranges.sort((r1, r2) => {\n    let diff = r1.startLine - r2.startLine;\n    if (diff === 0) {\n      diff = r1.endLine - r2.endLine;\n    }\n    return diff;\n  });\n  const validRanges = [];\n  let prevEndLine = -1;\n  sortedRanges.forEach((r) => {\n    if (!(r.startLine < prevEndLine && prevEndLine < r.endLine)) {\n      validRanges.push(r);\n      prevEndLine = r.endLine;\n    }\n  });\n  if (validRanges.length < maxRanges) {\n    return validRanges;\n  } else {\n    return validRanges.slice(0, maxRanges);\n  }\n}\n\n// node_modules/vscode-css-languageservice/lib/esm/beautify/beautify-css.js\nvar legacy_beautify_css;\n(function() {\n  \"use strict\";\n  var __webpack_modules__ = [\n    ,\n    ,\n    /* 2 */\n    /***/\n    function(module) {\n      function OutputLine(parent) {\n        this.__parent = parent;\n        this.__character_count = 0;\n        this.__indent_count = -1;\n        this.__alignment_count = 0;\n        this.__wrap_point_index = 0;\n        this.__wrap_point_character_count = 0;\n        this.__wrap_point_indent_count = -1;\n        this.__wrap_point_alignment_count = 0;\n        this.__items = [];\n      }\n      OutputLine.prototype.clone_empty = function() {\n        var line = new OutputLine(this.__parent);\n        line.set_indent(this.__indent_count, this.__alignment_count);\n        return line;\n      };\n      OutputLine.prototype.item = function(index) {\n        if (index < 0) {\n          return this.__items[this.__items.length + index];\n        } else {\n          return this.__items[index];\n        }\n      };\n      OutputLine.prototype.has_match = function(pattern) {\n        for (var lastCheckedOutput = this.__items.length - 1; lastCheckedOutput >= 0; lastCheckedOutput--) {\n          if (this.__items[lastCheckedOutput].match(pattern)) {\n            return true;\n          }\n        }\n        return false;\n      };\n      OutputLine.prototype.set_indent = function(indent, alignment) {\n        if (this.is_empty()) {\n          this.__indent_count = indent || 0;\n          this.__alignment_count = alignment || 0;\n          this.__character_count = this.__parent.get_indent_size(this.__indent_count, this.__alignment_count);\n        }\n      };\n      OutputLine.prototype._set_wrap_point = function() {\n        if (this.__parent.wrap_line_length) {\n          this.__wrap_point_index = this.__items.length;\n          this.__wrap_point_character_count = this.__character_count;\n          this.__wrap_point_indent_count = this.__parent.next_line.__indent_count;\n          this.__wrap_point_alignment_count = this.__parent.next_line.__alignment_count;\n        }\n      };\n      OutputLine.prototype._should_wrap = function() {\n        return this.__wrap_point_index && this.__character_count > this.__parent.wrap_line_length && this.__wrap_point_character_count > this.__parent.next_line.__character_count;\n      };\n      OutputLine.prototype._allow_wrap = function() {\n        if (this._should_wrap()) {\n          this.__parent.add_new_line();\n          var next = this.__parent.current_line;\n          next.set_indent(this.__wrap_point_indent_count, this.__wrap_point_alignment_count);\n          next.__items = this.__items.slice(this.__wrap_point_index);\n          this.__items = this.__items.slice(0, this.__wrap_point_index);\n          next.__character_count += this.__character_count - this.__wrap_point_character_count;\n          this.__character_count = this.__wrap_point_character_count;\n          if (next.__items[0] === \" \") {\n            next.__items.splice(0, 1);\n            next.__character_count -= 1;\n          }\n          return true;\n        }\n        return false;\n      };\n      OutputLine.prototype.is_empty = function() {\n        return this.__items.length === 0;\n      };\n      OutputLine.prototype.last = function() {\n        if (!this.is_empty()) {\n          return this.__items[this.__items.length - 1];\n        } else {\n          return null;\n        }\n      };\n      OutputLine.prototype.push = function(item) {\n        this.__items.push(item);\n        var last_newline_index = item.lastIndexOf(\"\\n\");\n        if (last_newline_index !== -1) {\n          this.__character_count = item.length - last_newline_index;\n        } else {\n          this.__character_count += item.length;\n        }\n      };\n      OutputLine.prototype.pop = function() {\n        var item = null;\n        if (!this.is_empty()) {\n          item = this.__items.pop();\n          this.__character_count -= item.length;\n        }\n        return item;\n      };\n      OutputLine.prototype._remove_indent = function() {\n        if (this.__indent_count > 0) {\n          this.__indent_count -= 1;\n          this.__character_count -= this.__parent.indent_size;\n        }\n      };\n      OutputLine.prototype._remove_wrap_indent = function() {\n        if (this.__wrap_point_indent_count > 0) {\n          this.__wrap_point_indent_count -= 1;\n        }\n      };\n      OutputLine.prototype.trim = function() {\n        while (this.last() === \" \") {\n          this.__items.pop();\n          this.__character_count -= 1;\n        }\n      };\n      OutputLine.prototype.toString = function() {\n        var result = \"\";\n        if (this.is_empty()) {\n          if (this.__parent.indent_empty_lines) {\n            result = this.__parent.get_indent_string(this.__indent_count);\n          }\n        } else {\n          result = this.__parent.get_indent_string(this.__indent_count, this.__alignment_count);\n          result += this.__items.join(\"\");\n        }\n        return result;\n      };\n      function IndentStringCache(options, baseIndentString) {\n        this.__cache = [\"\"];\n        this.__indent_size = options.indent_size;\n        this.__indent_string = options.indent_char;\n        if (!options.indent_with_tabs) {\n          this.__indent_string = new Array(options.indent_size + 1).join(options.indent_char);\n        }\n        baseIndentString = baseIndentString || \"\";\n        if (options.indent_level > 0) {\n          baseIndentString = new Array(options.indent_level + 1).join(this.__indent_string);\n        }\n        this.__base_string = baseIndentString;\n        this.__base_string_length = baseIndentString.length;\n      }\n      IndentStringCache.prototype.get_indent_size = function(indent, column) {\n        var result = this.__base_string_length;\n        column = column || 0;\n        if (indent < 0) {\n          result = 0;\n        }\n        result += indent * this.__indent_size;\n        result += column;\n        return result;\n      };\n      IndentStringCache.prototype.get_indent_string = function(indent_level, column) {\n        var result = this.__base_string;\n        column = column || 0;\n        if (indent_level < 0) {\n          indent_level = 0;\n          result = \"\";\n        }\n        column += indent_level * this.__indent_size;\n        this.__ensure_cache(column);\n        result += this.__cache[column];\n        return result;\n      };\n      IndentStringCache.prototype.__ensure_cache = function(column) {\n        while (column >= this.__cache.length) {\n          this.__add_column();\n        }\n      };\n      IndentStringCache.prototype.__add_column = function() {\n        var column = this.__cache.length;\n        var indent = 0;\n        var result = \"\";\n        if (this.__indent_size && column >= this.__indent_size) {\n          indent = Math.floor(column / this.__indent_size);\n          column -= indent * this.__indent_size;\n          result = new Array(indent + 1).join(this.__indent_string);\n        }\n        if (column) {\n          result += new Array(column + 1).join(\" \");\n        }\n        this.__cache.push(result);\n      };\n      function Output(options, baseIndentString) {\n        this.__indent_cache = new IndentStringCache(options, baseIndentString);\n        this.raw = false;\n        this._end_with_newline = options.end_with_newline;\n        this.indent_size = options.indent_size;\n        this.wrap_line_length = options.wrap_line_length;\n        this.indent_empty_lines = options.indent_empty_lines;\n        this.__lines = [];\n        this.previous_line = null;\n        this.current_line = null;\n        this.next_line = new OutputLine(this);\n        this.space_before_token = false;\n        this.non_breaking_space = false;\n        this.previous_token_wrapped = false;\n        this.__add_outputline();\n      }\n      Output.prototype.__add_outputline = function() {\n        this.previous_line = this.current_line;\n        this.current_line = this.next_line.clone_empty();\n        this.__lines.push(this.current_line);\n      };\n      Output.prototype.get_line_number = function() {\n        return this.__lines.length;\n      };\n      Output.prototype.get_indent_string = function(indent, column) {\n        return this.__indent_cache.get_indent_string(indent, column);\n      };\n      Output.prototype.get_indent_size = function(indent, column) {\n        return this.__indent_cache.get_indent_size(indent, column);\n      };\n      Output.prototype.is_empty = function() {\n        return !this.previous_line && this.current_line.is_empty();\n      };\n      Output.prototype.add_new_line = function(force_newline) {\n        if (this.is_empty() || !force_newline && this.just_added_newline()) {\n          return false;\n        }\n        if (!this.raw) {\n          this.__add_outputline();\n        }\n        return true;\n      };\n      Output.prototype.get_code = function(eol) {\n        this.trim(true);\n        var last_item = this.current_line.pop();\n        if (last_item) {\n          if (last_item[last_item.length - 1] === \"\\n\") {\n            last_item = last_item.replace(/\\n+$/g, \"\");\n          }\n          this.current_line.push(last_item);\n        }\n        if (this._end_with_newline) {\n          this.__add_outputline();\n        }\n        var sweet_code = this.__lines.join(\"\\n\");\n        if (eol !== \"\\n\") {\n          sweet_code = sweet_code.replace(/[\\n]/g, eol);\n        }\n        return sweet_code;\n      };\n      Output.prototype.set_wrap_point = function() {\n        this.current_line._set_wrap_point();\n      };\n      Output.prototype.set_indent = function(indent, alignment) {\n        indent = indent || 0;\n        alignment = alignment || 0;\n        this.next_line.set_indent(indent, alignment);\n        if (this.__lines.length > 1) {\n          this.current_line.set_indent(indent, alignment);\n          return true;\n        }\n        this.current_line.set_indent();\n        return false;\n      };\n      Output.prototype.add_raw_token = function(token) {\n        for (var x = 0; x < token.newlines; x++) {\n          this.__add_outputline();\n        }\n        this.current_line.set_indent(-1);\n        this.current_line.push(token.whitespace_before);\n        this.current_line.push(token.text);\n        this.space_before_token = false;\n        this.non_breaking_space = false;\n        this.previous_token_wrapped = false;\n      };\n      Output.prototype.add_token = function(printable_token) {\n        this.__add_space_before_token();\n        this.current_line.push(printable_token);\n        this.space_before_token = false;\n        this.non_breaking_space = false;\n        this.previous_token_wrapped = this.current_line._allow_wrap();\n      };\n      Output.prototype.__add_space_before_token = function() {\n        if (this.space_before_token && !this.just_added_newline()) {\n          if (!this.non_breaking_space) {\n            this.set_wrap_point();\n          }\n          this.current_line.push(\" \");\n        }\n      };\n      Output.prototype.remove_indent = function(index) {\n        var output_length = this.__lines.length;\n        while (index < output_length) {\n          this.__lines[index]._remove_indent();\n          index++;\n        }\n        this.current_line._remove_wrap_indent();\n      };\n      Output.prototype.trim = function(eat_newlines) {\n        eat_newlines = eat_newlines === void 0 ? false : eat_newlines;\n        this.current_line.trim();\n        while (eat_newlines && this.__lines.length > 1 && this.current_line.is_empty()) {\n          this.__lines.pop();\n          this.current_line = this.__lines[this.__lines.length - 1];\n          this.current_line.trim();\n        }\n        this.previous_line = this.__lines.length > 1 ? this.__lines[this.__lines.length - 2] : null;\n      };\n      Output.prototype.just_added_newline = function() {\n        return this.current_line.is_empty();\n      };\n      Output.prototype.just_added_blankline = function() {\n        return this.is_empty() || this.current_line.is_empty() && this.previous_line.is_empty();\n      };\n      Output.prototype.ensure_empty_line_above = function(starts_with, ends_with) {\n        var index = this.__lines.length - 2;\n        while (index >= 0) {\n          var potentialEmptyLine = this.__lines[index];\n          if (potentialEmptyLine.is_empty()) {\n            break;\n          } else if (potentialEmptyLine.item(0).indexOf(starts_with) !== 0 && potentialEmptyLine.item(-1) !== ends_with) {\n            this.__lines.splice(index + 1, 0, new OutputLine(this));\n            this.previous_line = this.__lines[this.__lines.length - 2];\n            break;\n          }\n          index--;\n        }\n      };\n      module.exports.Output = Output;\n    },\n    ,\n    ,\n    ,\n    /* 6 */\n    /***/\n    function(module) {\n      function Options(options, merge_child_field) {\n        this.raw_options = _mergeOpts(options, merge_child_field);\n        this.disabled = this._get_boolean(\"disabled\");\n        this.eol = this._get_characters(\"eol\", \"auto\");\n        this.end_with_newline = this._get_boolean(\"end_with_newline\");\n        this.indent_size = this._get_number(\"indent_size\", 4);\n        this.indent_char = this._get_characters(\"indent_char\", \" \");\n        this.indent_level = this._get_number(\"indent_level\");\n        this.preserve_newlines = this._get_boolean(\"preserve_newlines\", true);\n        this.max_preserve_newlines = this._get_number(\"max_preserve_newlines\", 32786);\n        if (!this.preserve_newlines) {\n          this.max_preserve_newlines = 0;\n        }\n        this.indent_with_tabs = this._get_boolean(\"indent_with_tabs\", this.indent_char === \"\t\");\n        if (this.indent_with_tabs) {\n          this.indent_char = \"\t\";\n          if (this.indent_size === 1) {\n            this.indent_size = 4;\n          }\n        }\n        this.wrap_line_length = this._get_number(\"wrap_line_length\", this._get_number(\"max_char\"));\n        this.indent_empty_lines = this._get_boolean(\"indent_empty_lines\");\n        this.templating = this._get_selection_list(\"templating\", [\"auto\", \"none\", \"angular\", \"django\", \"erb\", \"handlebars\", \"php\", \"smarty\"], [\"auto\"]);\n      }\n      Options.prototype._get_array = function(name, default_value) {\n        var option_value = this.raw_options[name];\n        var result = default_value || [];\n        if (typeof option_value === \"object\") {\n          if (option_value !== null && typeof option_value.concat === \"function\") {\n            result = option_value.concat();\n          }\n        } else if (typeof option_value === \"string\") {\n          result = option_value.split(/[^a-zA-Z0-9_\\/\\-]+/);\n        }\n        return result;\n      };\n      Options.prototype._get_boolean = function(name, default_value) {\n        var option_value = this.raw_options[name];\n        var result = option_value === void 0 ? !!default_value : !!option_value;\n        return result;\n      };\n      Options.prototype._get_characters = function(name, default_value) {\n        var option_value = this.raw_options[name];\n        var result = default_value || \"\";\n        if (typeof option_value === \"string\") {\n          result = option_value.replace(/\\\\r/, \"\\r\").replace(/\\\\n/, \"\\n\").replace(/\\\\t/, \"\t\");\n        }\n        return result;\n      };\n      Options.prototype._get_number = function(name, default_value) {\n        var option_value = this.raw_options[name];\n        default_value = parseInt(default_value, 10);\n        if (isNaN(default_value)) {\n          default_value = 0;\n        }\n        var result = parseInt(option_value, 10);\n        if (isNaN(result)) {\n          result = default_value;\n        }\n        return result;\n      };\n      Options.prototype._get_selection = function(name, selection_list, default_value) {\n        var result = this._get_selection_list(name, selection_list, default_value);\n        if (result.length !== 1) {\n          throw new Error(\n            \"Invalid Option Value: The option '\" + name + \"' can only be one of the following values:\\n\" + selection_list + \"\\nYou passed in: '\" + this.raw_options[name] + \"'\"\n          );\n        }\n        return result[0];\n      };\n      Options.prototype._get_selection_list = function(name, selection_list, default_value) {\n        if (!selection_list || selection_list.length === 0) {\n          throw new Error(\"Selection list cannot be empty.\");\n        }\n        default_value = default_value || [selection_list[0]];\n        if (!this._is_valid_selection(default_value, selection_list)) {\n          throw new Error(\"Invalid Default Value!\");\n        }\n        var result = this._get_array(name, default_value);\n        if (!this._is_valid_selection(result, selection_list)) {\n          throw new Error(\n            \"Invalid Option Value: The option '\" + name + \"' can contain only the following values:\\n\" + selection_list + \"\\nYou passed in: '\" + this.raw_options[name] + \"'\"\n          );\n        }\n        return result;\n      };\n      Options.prototype._is_valid_selection = function(result, selection_list) {\n        return result.length && selection_list.length && !result.some(function(item) {\n          return selection_list.indexOf(item) === -1;\n        });\n      };\n      function _mergeOpts(allOptions, childFieldName) {\n        var finalOpts = {};\n        allOptions = _normalizeOpts(allOptions);\n        var name;\n        for (name in allOptions) {\n          if (name !== childFieldName) {\n            finalOpts[name] = allOptions[name];\n          }\n        }\n        if (childFieldName && allOptions[childFieldName]) {\n          for (name in allOptions[childFieldName]) {\n            finalOpts[name] = allOptions[childFieldName][name];\n          }\n        }\n        return finalOpts;\n      }\n      function _normalizeOpts(options) {\n        var convertedOpts = {};\n        var key;\n        for (key in options) {\n          var newKey = key.replace(/-/g, \"_\");\n          convertedOpts[newKey] = options[key];\n        }\n        return convertedOpts;\n      }\n      module.exports.Options = Options;\n      module.exports.normalizeOpts = _normalizeOpts;\n      module.exports.mergeOpts = _mergeOpts;\n    },\n    ,\n    /* 8 */\n    /***/\n    function(module) {\n      var regexp_has_sticky = RegExp.prototype.hasOwnProperty(\"sticky\");\n      function InputScanner(input_string) {\n        this.__input = input_string || \"\";\n        this.__input_length = this.__input.length;\n        this.__position = 0;\n      }\n      InputScanner.prototype.restart = function() {\n        this.__position = 0;\n      };\n      InputScanner.prototype.back = function() {\n        if (this.__position > 0) {\n          this.__position -= 1;\n        }\n      };\n      InputScanner.prototype.hasNext = function() {\n        return this.__position < this.__input_length;\n      };\n      InputScanner.prototype.next = function() {\n        var val = null;\n        if (this.hasNext()) {\n          val = this.__input.charAt(this.__position);\n          this.__position += 1;\n        }\n        return val;\n      };\n      InputScanner.prototype.peek = function(index) {\n        var val = null;\n        index = index || 0;\n        index += this.__position;\n        if (index >= 0 && index < this.__input_length) {\n          val = this.__input.charAt(index);\n        }\n        return val;\n      };\n      InputScanner.prototype.__match = function(pattern, index) {\n        pattern.lastIndex = index;\n        var pattern_match = pattern.exec(this.__input);\n        if (pattern_match && !(regexp_has_sticky && pattern.sticky)) {\n          if (pattern_match.index !== index) {\n            pattern_match = null;\n          }\n        }\n        return pattern_match;\n      };\n      InputScanner.prototype.test = function(pattern, index) {\n        index = index || 0;\n        index += this.__position;\n        if (index >= 0 && index < this.__input_length) {\n          return !!this.__match(pattern, index);\n        } else {\n          return false;\n        }\n      };\n      InputScanner.prototype.testChar = function(pattern, index) {\n        var val = this.peek(index);\n        pattern.lastIndex = 0;\n        return val !== null && pattern.test(val);\n      };\n      InputScanner.prototype.match = function(pattern) {\n        var pattern_match = this.__match(pattern, this.__position);\n        if (pattern_match) {\n          this.__position += pattern_match[0].length;\n        } else {\n          pattern_match = null;\n        }\n        return pattern_match;\n      };\n      InputScanner.prototype.read = function(starting_pattern, until_pattern, until_after) {\n        var val = \"\";\n        var match;\n        if (starting_pattern) {\n          match = this.match(starting_pattern);\n          if (match) {\n            val += match[0];\n          }\n        }\n        if (until_pattern && (match || !starting_pattern)) {\n          val += this.readUntil(until_pattern, until_after);\n        }\n        return val;\n      };\n      InputScanner.prototype.readUntil = function(pattern, until_after) {\n        var val = \"\";\n        var match_index = this.__position;\n        pattern.lastIndex = this.__position;\n        var pattern_match = pattern.exec(this.__input);\n        if (pattern_match) {\n          match_index = pattern_match.index;\n          if (until_after) {\n            match_index += pattern_match[0].length;\n          }\n        } else {\n          match_index = this.__input_length;\n        }\n        val = this.__input.substring(this.__position, match_index);\n        this.__position = match_index;\n        return val;\n      };\n      InputScanner.prototype.readUntilAfter = function(pattern) {\n        return this.readUntil(pattern, true);\n      };\n      InputScanner.prototype.get_regexp = function(pattern, match_from) {\n        var result = null;\n        var flags = \"g\";\n        if (match_from && regexp_has_sticky) {\n          flags = \"y\";\n        }\n        if (typeof pattern === \"string\" && pattern !== \"\") {\n          result = new RegExp(pattern, flags);\n        } else if (pattern) {\n          result = new RegExp(pattern.source, flags);\n        }\n        return result;\n      };\n      InputScanner.prototype.get_literal_regexp = function(literal_string) {\n        return RegExp(literal_string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\"));\n      };\n      InputScanner.prototype.peekUntilAfter = function(pattern) {\n        var start = this.__position;\n        var val = this.readUntilAfter(pattern);\n        this.__position = start;\n        return val;\n      };\n      InputScanner.prototype.lookBack = function(testVal) {\n        var start = this.__position - 1;\n        return start >= testVal.length && this.__input.substring(start - testVal.length, start).toLowerCase() === testVal;\n      };\n      module.exports.InputScanner = InputScanner;\n    },\n    ,\n    ,\n    ,\n    ,\n    /* 13 */\n    /***/\n    function(module) {\n      function Directives(start_block_pattern, end_block_pattern) {\n        start_block_pattern = typeof start_block_pattern === \"string\" ? start_block_pattern : start_block_pattern.source;\n        end_block_pattern = typeof end_block_pattern === \"string\" ? end_block_pattern : end_block_pattern.source;\n        this.__directives_block_pattern = new RegExp(start_block_pattern + / beautify( \\w+[:]\\w+)+ /.source + end_block_pattern, \"g\");\n        this.__directive_pattern = / (\\w+)[:](\\w+)/g;\n        this.__directives_end_ignore_pattern = new RegExp(start_block_pattern + /\\sbeautify\\signore:end\\s/.source + end_block_pattern, \"g\");\n      }\n      Directives.prototype.get_directives = function(text) {\n        if (!text.match(this.__directives_block_pattern)) {\n          return null;\n        }\n        var directives = {};\n        this.__directive_pattern.lastIndex = 0;\n        var directive_match = this.__directive_pattern.exec(text);\n        while (directive_match) {\n          directives[directive_match[1]] = directive_match[2];\n          directive_match = this.__directive_pattern.exec(text);\n        }\n        return directives;\n      };\n      Directives.prototype.readIgnored = function(input) {\n        return input.readUntilAfter(this.__directives_end_ignore_pattern);\n      };\n      module.exports.Directives = Directives;\n    },\n    ,\n    /* 15 */\n    /***/\n    function(module, __unused_webpack_exports, __webpack_require__2) {\n      var Beautifier = __webpack_require__2(16).Beautifier, Options = __webpack_require__2(17).Options;\n      function css_beautify2(source_text, options) {\n        var beautifier = new Beautifier(source_text, options);\n        return beautifier.beautify();\n      }\n      module.exports = css_beautify2;\n      module.exports.defaultOptions = function() {\n        return new Options();\n      };\n    },\n    /* 16 */\n    /***/\n    function(module, __unused_webpack_exports, __webpack_require__2) {\n      var Options = __webpack_require__2(17).Options;\n      var Output = __webpack_require__2(2).Output;\n      var InputScanner = __webpack_require__2(8).InputScanner;\n      var Directives = __webpack_require__2(13).Directives;\n      var directives_core = new Directives(/\\/\\*/, /\\*\\//);\n      var lineBreak = /\\r\\n|[\\r\\n]/;\n      var allLineBreaks = /\\r\\n|[\\r\\n]/g;\n      var whitespaceChar = /\\s/;\n      var whitespacePattern = /(?:\\s|\\n)+/g;\n      var block_comment_pattern = /\\/\\*(?:[\\s\\S]*?)((?:\\*\\/)|$)/g;\n      var comment_pattern = /\\/\\/(?:[^\\n\\r\\u2028\\u2029]*)/g;\n      function Beautifier(source_text, options) {\n        this._source_text = source_text || \"\";\n        this._options = new Options(options);\n        this._ch = null;\n        this._input = null;\n        this.NESTED_AT_RULE = {\n          \"page\": true,\n          \"font-face\": true,\n          \"keyframes\": true,\n          // also in CONDITIONAL_GROUP_RULE below\n          \"media\": true,\n          \"supports\": true,\n          \"document\": true\n        };\n        this.CONDITIONAL_GROUP_RULE = {\n          \"media\": true,\n          \"supports\": true,\n          \"document\": true\n        };\n        this.NON_SEMICOLON_NEWLINE_PROPERTY = [\n          \"grid-template-areas\",\n          \"grid-template\"\n        ];\n      }\n      Beautifier.prototype.eatString = function(endChars) {\n        var result = \"\";\n        this._ch = this._input.next();\n        while (this._ch) {\n          result += this._ch;\n          if (this._ch === \"\\\\\") {\n            result += this._input.next();\n          } else if (endChars.indexOf(this._ch) !== -1 || this._ch === \"\\n\") {\n            break;\n          }\n          this._ch = this._input.next();\n        }\n        return result;\n      };\n      Beautifier.prototype.eatWhitespace = function(allowAtLeastOneNewLine) {\n        var result = whitespaceChar.test(this._input.peek());\n        var newline_count = 0;\n        while (whitespaceChar.test(this._input.peek())) {\n          this._ch = this._input.next();\n          if (allowAtLeastOneNewLine && this._ch === \"\\n\") {\n            if (newline_count === 0 || newline_count < this._options.max_preserve_newlines) {\n              newline_count++;\n              this._output.add_new_line(true);\n            }\n          }\n        }\n        return result;\n      };\n      Beautifier.prototype.foundNestedPseudoClass = function() {\n        var openParen = 0;\n        var i = 1;\n        var ch = this._input.peek(i);\n        while (ch) {\n          if (ch === \"{\") {\n            return true;\n          } else if (ch === \"(\") {\n            openParen += 1;\n          } else if (ch === \")\") {\n            if (openParen === 0) {\n              return false;\n            }\n            openParen -= 1;\n          } else if (ch === \";\" || ch === \"}\") {\n            return false;\n          }\n          i++;\n          ch = this._input.peek(i);\n        }\n        return false;\n      };\n      Beautifier.prototype.print_string = function(output_string) {\n        this._output.set_indent(this._indentLevel);\n        this._output.non_breaking_space = true;\n        this._output.add_token(output_string);\n      };\n      Beautifier.prototype.preserveSingleSpace = function(isAfterSpace) {\n        if (isAfterSpace) {\n          this._output.space_before_token = true;\n        }\n      };\n      Beautifier.prototype.indent = function() {\n        this._indentLevel++;\n      };\n      Beautifier.prototype.outdent = function() {\n        if (this._indentLevel > 0) {\n          this._indentLevel--;\n        }\n      };\n      Beautifier.prototype.beautify = function() {\n        if (this._options.disabled) {\n          return this._source_text;\n        }\n        var source_text = this._source_text;\n        var eol = this._options.eol;\n        if (eol === \"auto\") {\n          eol = \"\\n\";\n          if (source_text && lineBreak.test(source_text || \"\")) {\n            eol = source_text.match(lineBreak)[0];\n          }\n        }\n        source_text = source_text.replace(allLineBreaks, \"\\n\");\n        var baseIndentString = source_text.match(/^[\\t ]*/)[0];\n        this._output = new Output(this._options, baseIndentString);\n        this._input = new InputScanner(source_text);\n        this._indentLevel = 0;\n        this._nestedLevel = 0;\n        this._ch = null;\n        var parenLevel = 0;\n        var insideRule = false;\n        var insidePropertyValue = false;\n        var enteringConditionalGroup = false;\n        var insideNonNestedAtRule = false;\n        var insideScssMap = false;\n        var topCharacter = this._ch;\n        var insideNonSemiColonValues = false;\n        var whitespace;\n        var isAfterSpace;\n        var previous_ch;\n        while (true) {\n          whitespace = this._input.read(whitespacePattern);\n          isAfterSpace = whitespace !== \"\";\n          previous_ch = topCharacter;\n          this._ch = this._input.next();\n          if (this._ch === \"\\\\\" && this._input.hasNext()) {\n            this._ch += this._input.next();\n          }\n          topCharacter = this._ch;\n          if (!this._ch) {\n            break;\n          } else if (this._ch === \"/\" && this._input.peek() === \"*\") {\n            this._output.add_new_line();\n            this._input.back();\n            var comment = this._input.read(block_comment_pattern);\n            var directives = directives_core.get_directives(comment);\n            if (directives && directives.ignore === \"start\") {\n              comment += directives_core.readIgnored(this._input);\n            }\n            this.print_string(comment);\n            this.eatWhitespace(true);\n            this._output.add_new_line();\n          } else if (this._ch === \"/\" && this._input.peek() === \"/\") {\n            this._output.space_before_token = true;\n            this._input.back();\n            this.print_string(this._input.read(comment_pattern));\n            this.eatWhitespace(true);\n          } else if (this._ch === \"$\") {\n            this.preserveSingleSpace(isAfterSpace);\n            this.print_string(this._ch);\n            var variable = this._input.peekUntilAfter(/[: ,;{}()[\\]\\/='\"]/g);\n            if (variable.match(/[ :]$/)) {\n              variable = this.eatString(\": \").replace(/\\s+$/, \"\");\n              this.print_string(variable);\n              this._output.space_before_token = true;\n            }\n            if (parenLevel === 0 && variable.indexOf(\":\") !== -1) {\n              insidePropertyValue = true;\n              this.indent();\n            }\n          } else if (this._ch === \"@\") {\n            this.preserveSingleSpace(isAfterSpace);\n            if (this._input.peek() === \"{\") {\n              this.print_string(this._ch + this.eatString(\"}\"));\n            } else {\n              this.print_string(this._ch);\n              var variableOrRule = this._input.peekUntilAfter(/[: ,;{}()[\\]\\/='\"]/g);\n              if (variableOrRule.match(/[ :]$/)) {\n                variableOrRule = this.eatString(\": \").replace(/\\s+$/, \"\");\n                this.print_string(variableOrRule);\n                this._output.space_before_token = true;\n              }\n              if (parenLevel === 0 && variableOrRule.indexOf(\":\") !== -1) {\n                insidePropertyValue = true;\n                this.indent();\n              } else if (variableOrRule in this.NESTED_AT_RULE) {\n                this._nestedLevel += 1;\n                if (variableOrRule in this.CONDITIONAL_GROUP_RULE) {\n                  enteringConditionalGroup = true;\n                }\n              } else if (parenLevel === 0 && !insidePropertyValue) {\n                insideNonNestedAtRule = true;\n              }\n            }\n          } else if (this._ch === \"#\" && this._input.peek() === \"{\") {\n            this.preserveSingleSpace(isAfterSpace);\n            this.print_string(this._ch + this.eatString(\"}\"));\n          } else if (this._ch === \"{\") {\n            if (insidePropertyValue) {\n              insidePropertyValue = false;\n              this.outdent();\n            }\n            insideNonNestedAtRule = false;\n            if (enteringConditionalGroup) {\n              enteringConditionalGroup = false;\n              insideRule = this._indentLevel >= this._nestedLevel;\n            } else {\n              insideRule = this._indentLevel >= this._nestedLevel - 1;\n            }\n            if (this._options.newline_between_rules && insideRule) {\n              if (this._output.previous_line && this._output.previous_line.item(-1) !== \"{\") {\n                this._output.ensure_empty_line_above(\"/\", \",\");\n              }\n            }\n            this._output.space_before_token = true;\n            if (this._options.brace_style === \"expand\") {\n              this._output.add_new_line();\n              this.print_string(this._ch);\n              this.indent();\n              this._output.set_indent(this._indentLevel);\n            } else {\n              if (previous_ch === \"(\") {\n                this._output.space_before_token = false;\n              } else if (previous_ch !== \",\") {\n                this.indent();\n              }\n              this.print_string(this._ch);\n            }\n            this.eatWhitespace(true);\n            this._output.add_new_line();\n          } else if (this._ch === \"}\") {\n            this.outdent();\n            this._output.add_new_line();\n            if (previous_ch === \"{\") {\n              this._output.trim(true);\n            }\n            if (insidePropertyValue) {\n              this.outdent();\n              insidePropertyValue = false;\n            }\n            this.print_string(this._ch);\n            insideRule = false;\n            if (this._nestedLevel) {\n              this._nestedLevel--;\n            }\n            this.eatWhitespace(true);\n            this._output.add_new_line();\n            if (this._options.newline_between_rules && !this._output.just_added_blankline()) {\n              if (this._input.peek() !== \"}\") {\n                this._output.add_new_line(true);\n              }\n            }\n            if (this._input.peek() === \")\") {\n              this._output.trim(true);\n              if (this._options.brace_style === \"expand\") {\n                this._output.add_new_line(true);\n              }\n            }\n          } else if (this._ch === \":\") {\n            for (var i = 0; i < this.NON_SEMICOLON_NEWLINE_PROPERTY.length; i++) {\n              if (this._input.lookBack(this.NON_SEMICOLON_NEWLINE_PROPERTY[i])) {\n                insideNonSemiColonValues = true;\n                break;\n              }\n            }\n            if ((insideRule || enteringConditionalGroup) && !(this._input.lookBack(\"&\") || this.foundNestedPseudoClass()) && !this._input.lookBack(\"(\") && !insideNonNestedAtRule && parenLevel === 0) {\n              this.print_string(\":\");\n              if (!insidePropertyValue) {\n                insidePropertyValue = true;\n                this._output.space_before_token = true;\n                this.eatWhitespace(true);\n                this.indent();\n              }\n            } else {\n              if (this._input.lookBack(\" \")) {\n                this._output.space_before_token = true;\n              }\n              if (this._input.peek() === \":\") {\n                this._ch = this._input.next();\n                this.print_string(\"::\");\n              } else {\n                this.print_string(\":\");\n              }\n            }\n          } else if (this._ch === '\"' || this._ch === \"'\") {\n            var preserveQuoteSpace = previous_ch === '\"' || previous_ch === \"'\";\n            this.preserveSingleSpace(preserveQuoteSpace || isAfterSpace);\n            this.print_string(this._ch + this.eatString(this._ch));\n            this.eatWhitespace(true);\n          } else if (this._ch === \";\") {\n            insideNonSemiColonValues = false;\n            if (parenLevel === 0) {\n              if (insidePropertyValue) {\n                this.outdent();\n                insidePropertyValue = false;\n              }\n              insideNonNestedAtRule = false;\n              this.print_string(this._ch);\n              this.eatWhitespace(true);\n              if (this._input.peek() !== \"/\") {\n                this._output.add_new_line();\n              }\n            } else {\n              this.print_string(this._ch);\n              this.eatWhitespace(true);\n              this._output.space_before_token = true;\n            }\n          } else if (this._ch === \"(\") {\n            if (this._input.lookBack(\"url\")) {\n              this.print_string(this._ch);\n              this.eatWhitespace();\n              parenLevel++;\n              this.indent();\n              this._ch = this._input.next();\n              if (this._ch === \")\" || this._ch === '\"' || this._ch === \"'\") {\n                this._input.back();\n              } else if (this._ch) {\n                this.print_string(this._ch + this.eatString(\")\"));\n                if (parenLevel) {\n                  parenLevel--;\n                  this.outdent();\n                }\n              }\n            } else {\n              var space_needed = false;\n              if (this._input.lookBack(\"with\")) {\n                space_needed = true;\n              }\n              this.preserveSingleSpace(isAfterSpace || space_needed);\n              this.print_string(this._ch);\n              if (insidePropertyValue && previous_ch === \"$\" && this._options.selector_separator_newline) {\n                this._output.add_new_line();\n                insideScssMap = true;\n              } else {\n                this.eatWhitespace();\n                parenLevel++;\n                this.indent();\n              }\n            }\n          } else if (this._ch === \")\") {\n            if (parenLevel) {\n              parenLevel--;\n              this.outdent();\n            }\n            if (insideScssMap && this._input.peek() === \";\" && this._options.selector_separator_newline) {\n              insideScssMap = false;\n              this.outdent();\n              this._output.add_new_line();\n            }\n            this.print_string(this._ch);\n          } else if (this._ch === \",\") {\n            this.print_string(this._ch);\n            this.eatWhitespace(true);\n            if (this._options.selector_separator_newline && (!insidePropertyValue || insideScssMap) && parenLevel === 0 && !insideNonNestedAtRule) {\n              this._output.add_new_line();\n            } else {\n              this._output.space_before_token = true;\n            }\n          } else if ((this._ch === \">\" || this._ch === \"+\" || this._ch === \"~\") && !insidePropertyValue && parenLevel === 0) {\n            if (this._options.space_around_combinator) {\n              this._output.space_before_token = true;\n              this.print_string(this._ch);\n              this._output.space_before_token = true;\n            } else {\n              this.print_string(this._ch);\n              this.eatWhitespace();\n              if (this._ch && whitespaceChar.test(this._ch)) {\n                this._ch = \"\";\n              }\n            }\n          } else if (this._ch === \"]\") {\n            this.print_string(this._ch);\n          } else if (this._ch === \"[\") {\n            this.preserveSingleSpace(isAfterSpace);\n            this.print_string(this._ch);\n          } else if (this._ch === \"=\") {\n            this.eatWhitespace();\n            this.print_string(\"=\");\n            if (whitespaceChar.test(this._ch)) {\n              this._ch = \"\";\n            }\n          } else if (this._ch === \"!\" && !this._input.lookBack(\"\\\\\")) {\n            this._output.space_before_token = true;\n            this.print_string(this._ch);\n          } else {\n            var preserveAfterSpace = previous_ch === '\"' || previous_ch === \"'\";\n            this.preserveSingleSpace(preserveAfterSpace || isAfterSpace);\n            this.print_string(this._ch);\n            if (!this._output.just_added_newline() && this._input.peek() === \"\\n\" && insideNonSemiColonValues) {\n              this._output.add_new_line();\n            }\n          }\n        }\n        var sweetCode = this._output.get_code(eol);\n        return sweetCode;\n      };\n      module.exports.Beautifier = Beautifier;\n    },\n    /* 17 */\n    /***/\n    function(module, __unused_webpack_exports, __webpack_require__2) {\n      var BaseOptions = __webpack_require__2(6).Options;\n      function Options(options) {\n        BaseOptions.call(this, options, \"css\");\n        this.selector_separator_newline = this._get_boolean(\"selector_separator_newline\", true);\n        this.newline_between_rules = this._get_boolean(\"newline_between_rules\", true);\n        var space_around_selector_separator = this._get_boolean(\"space_around_selector_separator\");\n        this.space_around_combinator = this._get_boolean(\"space_around_combinator\") || space_around_selector_separator;\n        var brace_style_split = this._get_selection_list(\"brace_style\", [\"collapse\", \"expand\", \"end-expand\", \"none\", \"preserve-inline\"]);\n        this.brace_style = \"collapse\";\n        for (var bs = 0; bs < brace_style_split.length; bs++) {\n          if (brace_style_split[bs] !== \"expand\") {\n            this.brace_style = \"collapse\";\n          } else {\n            this.brace_style = brace_style_split[bs];\n          }\n        }\n      }\n      Options.prototype = new BaseOptions();\n      module.exports.Options = Options;\n    }\n    /******/\n  ];\n  var __webpack_module_cache__ = {};\n  function __webpack_require__(moduleId) {\n    var cachedModule = __webpack_module_cache__[moduleId];\n    if (cachedModule !== void 0) {\n      return cachedModule.exports;\n    }\n    var module = __webpack_module_cache__[moduleId] = {\n      /******/\n      // no module.id needed\n      /******/\n      // no module.loaded needed\n      /******/\n      exports: {}\n      /******/\n    };\n    __webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n    return module.exports;\n  }\n  var __webpack_exports__ = __webpack_require__(15);\n  legacy_beautify_css = __webpack_exports__;\n})();\nvar css_beautify = legacy_beautify_css;\n\n// node_modules/vscode-css-languageservice/lib/esm/services/cssFormatter.js\nfunction format2(document, range, options) {\n  let value = document.getText();\n  let includesEnd = true;\n  let initialIndentLevel = 0;\n  let inRule = false;\n  const tabSize = options.tabSize || 4;\n  if (range) {\n    let startOffset = document.offsetAt(range.start);\n    let extendedStart = startOffset;\n    while (extendedStart > 0 && isWhitespace(value, extendedStart - 1)) {\n      extendedStart--;\n    }\n    if (extendedStart === 0 || isEOL(value, extendedStart - 1)) {\n      startOffset = extendedStart;\n    } else {\n      if (extendedStart < startOffset) {\n        startOffset = extendedStart + 1;\n      }\n    }\n    let endOffset = document.offsetAt(range.end);\n    let extendedEnd = endOffset;\n    while (extendedEnd < value.length && isWhitespace(value, extendedEnd)) {\n      extendedEnd++;\n    }\n    if (extendedEnd === value.length || isEOL(value, extendedEnd)) {\n      endOffset = extendedEnd;\n    }\n    range = Range.create(document.positionAt(startOffset), document.positionAt(endOffset));\n    inRule = isInRule(value, startOffset);\n    includesEnd = endOffset === value.length;\n    value = value.substring(startOffset, endOffset);\n    if (startOffset !== 0) {\n      const startOfLineOffset = document.offsetAt(Position.create(range.start.line, 0));\n      initialIndentLevel = computeIndentLevel(document.getText(), startOfLineOffset, options);\n    }\n    if (inRule) {\n      value = `{\n${trimLeft(value)}`;\n    }\n  } else {\n    range = Range.create(Position.create(0, 0), document.positionAt(value.length));\n  }\n  const cssOptions = {\n    indent_size: tabSize,\n    indent_char: options.insertSpaces ? \" \" : \"\t\",\n    end_with_newline: includesEnd && getFormatOption(options, \"insertFinalNewline\", false),\n    selector_separator_newline: getFormatOption(options, \"newlineBetweenSelectors\", true),\n    newline_between_rules: getFormatOption(options, \"newlineBetweenRules\", true),\n    space_around_selector_separator: getFormatOption(options, \"spaceAroundSelectorSeparator\", false),\n    brace_style: getFormatOption(options, \"braceStyle\", \"collapse\"),\n    indent_empty_lines: getFormatOption(options, \"indentEmptyLines\", false),\n    max_preserve_newlines: getFormatOption(options, \"maxPreserveNewLines\", void 0),\n    preserve_newlines: getFormatOption(options, \"preserveNewLines\", true),\n    wrap_line_length: getFormatOption(options, \"wrapLineLength\", void 0),\n    eol: \"\\n\"\n  };\n  let result = css_beautify(value, cssOptions);\n  if (inRule) {\n    result = trimLeft(result.substring(2));\n  }\n  if (initialIndentLevel > 0) {\n    const indent = options.insertSpaces ? repeat(\" \", tabSize * initialIndentLevel) : repeat(\"\t\", initialIndentLevel);\n    result = result.split(\"\\n\").join(\"\\n\" + indent);\n    if (range.start.character === 0) {\n      result = indent + result;\n    }\n  }\n  return [{\n    range,\n    newText: result\n  }];\n}\nfunction trimLeft(str) {\n  return str.replace(/^\\s+/, \"\");\n}\nvar _CUL3 = \"{\".charCodeAt(0);\nvar _CUR2 = \"}\".charCodeAt(0);\nfunction isInRule(str, offset) {\n  while (offset >= 0) {\n    const ch = str.charCodeAt(offset);\n    if (ch === _CUL3) {\n      return true;\n    } else if (ch === _CUR2) {\n      return false;\n    }\n    offset--;\n  }\n  return false;\n}\nfunction getFormatOption(options, key, dflt) {\n  if (options && options.hasOwnProperty(key)) {\n    const value = options[key];\n    if (value !== null) {\n      return value;\n    }\n  }\n  return dflt;\n}\nfunction computeIndentLevel(content, offset, options) {\n  let i = offset;\n  let nChars = 0;\n  const tabSize = options.tabSize || 4;\n  while (i < content.length) {\n    const ch = content.charAt(i);\n    if (ch === \" \") {\n      nChars++;\n    } else if (ch === \"\t\") {\n      nChars += tabSize;\n    } else {\n      break;\n    }\n    i++;\n  }\n  return Math.floor(nChars / tabSize);\n}\nfunction isEOL(text, offset) {\n  return \"\\r\\n\".indexOf(text.charAt(offset)) !== -1;\n}\nfunction isWhitespace(text, offset) {\n  return \" \t\".indexOf(text.charAt(offset)) !== -1;\n}\n\n// node_modules/vscode-css-languageservice/lib/esm/data/webCustomData.js\nvar cssData = {\n  \"version\": 1.1,\n  \"properties\": [\n    {\n      \"name\": \"additive-symbols\",\n      \"browsers\": [\n        \"FF33\"\n      ],\n      \"atRule\": \"@counter-style\",\n      \"syntax\": \"[ <integer> && <symbol> ]#\",\n      \"relevance\": 50,\n      \"description\": \"@counter-style descriptor. Specifies the symbols used by the marker-construction algorithm specified by the system descriptor. Needs to be specified if the counter system is 'additive'.\",\n      \"restrictions\": [\n        \"integer\",\n        \"string\",\n        \"image\",\n        \"identifier\"\n      ]\n    },\n    {\n      \"name\": \"align-content\",\n      \"browsers\": [\n        \"E12\",\n        \"FF28\",\n        \"S9\",\n        \"C29\",\n        \"IE11\",\n        \"O16\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"center\",\n          \"description\": \"Lines are packed toward the center of the flex container.\"\n        },\n        {\n          \"name\": \"flex-end\",\n          \"description\": \"Lines are packed toward the end of the flex container.\"\n        },\n        {\n          \"name\": \"flex-start\",\n          \"description\": \"Lines are packed toward the start of the flex container.\"\n        },\n        {\n          \"name\": \"space-around\",\n          \"description\": \"Lines are evenly distributed in the flex container, with half-size spaces on either end.\"\n        },\n        {\n          \"name\": \"space-between\",\n          \"description\": \"Lines are evenly distributed in the flex container.\"\n        },\n        {\n          \"name\": \"stretch\",\n          \"description\": \"Lines stretch to take up the remaining space.\"\n        },\n        {\n          \"name\": \"start\"\n        },\n        {\n          \"name\": \"end\"\n        },\n        {\n          \"name\": \"normal\"\n        },\n        {\n          \"name\": \"baseline\"\n        },\n        {\n          \"name\": \"first baseline\"\n        },\n        {\n          \"name\": \"last baseline\"\n        },\n        {\n          \"name\": \"space-around\"\n        },\n        {\n          \"name\": \"space-between\"\n        },\n        {\n          \"name\": \"space-evenly\"\n        },\n        {\n          \"name\": \"stretch\"\n        },\n        {\n          \"name\": \"safe\"\n        },\n        {\n          \"name\": \"unsafe\"\n        }\n      ],\n      \"syntax\": \"normal | <baseline-position> | <content-distribution> | <overflow-position>? <content-position>\",\n      \"relevance\": 66,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/align-content\"\n        }\n      ],\n      \"description\": \"Aligns a flex container's lines within the flex container when there is extra space in the cross-axis, similar to how 'justify-content' aligns individual items within the main-axis.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"align-items\",\n      \"browsers\": [\n        \"E12\",\n        \"FF20\",\n        \"S9\",\n        \"C29\",\n        \"IE11\",\n        \"O16\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"baseline\",\n          \"description\": \"If the flex item's inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment.\"\n        },\n        {\n          \"name\": \"center\",\n          \"description\": \"The flex item's margin box is centered in the cross axis within the line.\"\n        },\n        {\n          \"name\": \"flex-end\",\n          \"description\": \"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line.\"\n        },\n        {\n          \"name\": \"flex-start\",\n          \"description\": \"The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line.\"\n        },\n        {\n          \"name\": \"stretch\",\n          \"description\": \"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched.\"\n        },\n        {\n          \"name\": \"normal\"\n        },\n        {\n          \"name\": \"start\"\n        },\n        {\n          \"name\": \"end\"\n        },\n        {\n          \"name\": \"self-start\"\n        },\n        {\n          \"name\": \"self-end\"\n        },\n        {\n          \"name\": \"first baseline\"\n        },\n        {\n          \"name\": \"last baseline\"\n        },\n        {\n          \"name\": \"stretch\"\n        },\n        {\n          \"name\": \"safe\"\n        },\n        {\n          \"name\": \"unsafe\"\n        }\n      ],\n      \"syntax\": \"normal | stretch | <baseline-position> | [ <overflow-position>? <self-position> ]\",\n      \"relevance\": 87,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/align-items\"\n        }\n      ],\n      \"description\": \"Aligns flex items along the cross axis of the current line of the flex container.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"justify-items\",\n      \"browsers\": [\n        \"E12\",\n        \"FF20\",\n        \"S9\",\n        \"C52\",\n        \"IE11\",\n        \"O12.1\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        },\n        {\n          \"name\": \"normal\"\n        },\n        {\n          \"name\": \"end\"\n        },\n        {\n          \"name\": \"start\"\n        },\n        {\n          \"name\": \"flex-end\",\n          \"description\": '\"Flex items are packed toward the end of the line.\"'\n        },\n        {\n          \"name\": \"flex-start\",\n          \"description\": '\"Flex items are packed toward the start of the line.\"'\n        },\n        {\n          \"name\": \"self-end\",\n          \"description\": \"The item is packed flush to the edge of the alignment container of the end side of the item, in the appropriate axis.\"\n        },\n        {\n          \"name\": \"self-start\",\n          \"description\": \"The item is packed flush to the edge of the alignment container of the start side of the item, in the appropriate axis..\"\n        },\n        {\n          \"name\": \"center\",\n          \"description\": \"The items are packed flush to each other toward the center of the of the alignment container.\"\n        },\n        {\n          \"name\": \"left\"\n        },\n        {\n          \"name\": \"right\"\n        },\n        {\n          \"name\": \"baseline\"\n        },\n        {\n          \"name\": \"first baseline\"\n        },\n        {\n          \"name\": \"last baseline\"\n        },\n        {\n          \"name\": \"stretch\",\n          \"description\": \"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched.\"\n        },\n        {\n          \"name\": \"safe\"\n        },\n        {\n          \"name\": \"unsafe\"\n        },\n        {\n          \"name\": \"legacy\"\n        }\n      ],\n      \"syntax\": \"normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | legacy | legacy && [ left | right | center ]\",\n      \"relevance\": 53,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/justify-items\"\n        }\n      ],\n      \"description\": \"Defines the default justify-self for all items of the box, giving them the default way of justifying each box along the appropriate axis\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"justify-self\",\n      \"browsers\": [\n        \"E16\",\n        \"FF45\",\n        \"S10.1\",\n        \"C57\",\n        \"IE10\",\n        \"O44\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        },\n        {\n          \"name\": \"normal\"\n        },\n        {\n          \"name\": \"end\"\n        },\n        {\n          \"name\": \"start\"\n        },\n        {\n          \"name\": \"flex-end\",\n          \"description\": '\"Flex items are packed toward the end of the line.\"'\n        },\n        {\n          \"name\": \"flex-start\",\n          \"description\": '\"Flex items are packed toward the start of the line.\"'\n        },\n        {\n          \"name\": \"self-end\",\n          \"description\": \"The item is packed flush to the edge of the alignment container of the end side of the item, in the appropriate axis.\"\n        },\n        {\n          \"name\": \"self-start\",\n          \"description\": \"The item is packed flush to the edge of the alignment container of the start side of the item, in the appropriate axis..\"\n        },\n        {\n          \"name\": \"center\",\n          \"description\": \"The items are packed flush to each other toward the center of the of the alignment container.\"\n        },\n        {\n          \"name\": \"left\"\n        },\n        {\n          \"name\": \"right\"\n        },\n        {\n          \"name\": \"baseline\"\n        },\n        {\n          \"name\": \"first baseline\"\n        },\n        {\n          \"name\": \"last baseline\"\n        },\n        {\n          \"name\": \"stretch\",\n          \"description\": \"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched.\"\n        },\n        {\n          \"name\": \"save\"\n        },\n        {\n          \"name\": \"unsave\"\n        }\n      ],\n      \"syntax\": \"auto | normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ]\",\n      \"relevance\": 55,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/justify-self\"\n        }\n      ],\n      \"description\": \"Defines the way of justifying a box inside its container along the appropriate axis.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"align-self\",\n      \"browsers\": [\n        \"E12\",\n        \"FF20\",\n        \"S9\",\n        \"C29\",\n        \"IE10\",\n        \"O12.1\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Computes to the value of 'align-items' on the element's parent, or 'stretch' if the element has no parent. On absolutely positioned elements, it computes to itself.\"\n        },\n        {\n          \"name\": \"normal\"\n        },\n        {\n          \"name\": \"self-end\"\n        },\n        {\n          \"name\": \"self-start\"\n        },\n        {\n          \"name\": \"baseline\",\n          \"description\": \"If the flex item's inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment.\"\n        },\n        {\n          \"name\": \"center\",\n          \"description\": \"The flex item's margin box is centered in the cross axis within the line.\"\n        },\n        {\n          \"name\": \"flex-end\",\n          \"description\": \"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line.\"\n        },\n        {\n          \"name\": \"flex-start\",\n          \"description\": \"The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line.\"\n        },\n        {\n          \"name\": \"stretch\",\n          \"description\": \"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched.\"\n        },\n        {\n          \"name\": \"baseline\"\n        },\n        {\n          \"name\": \"first baseline\"\n        },\n        {\n          \"name\": \"last baseline\"\n        },\n        {\n          \"name\": \"safe\"\n        },\n        {\n          \"name\": \"unsafe\"\n        }\n      ],\n      \"syntax\": \"auto | normal | stretch | <baseline-position> | <overflow-position>? <self-position>\",\n      \"relevance\": 73,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/align-self\"\n        }\n      ],\n      \"description\": \"Allows the default alignment along the cross axis to be overridden for individual flex items.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"all\",\n      \"browsers\": [\n        \"E79\",\n        \"FF27\",\n        \"S9.1\",\n        \"C37\",\n        \"O24\"\n      ],\n      \"values\": [],\n      \"syntax\": \"initial | inherit | unset | revert | revert-layer\",\n      \"relevance\": 53,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/all\"\n        }\n      ],\n      \"description\": \"Shorthand that resets all properties except 'direction' and 'unicode-bidi'.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"alt\",\n      \"browsers\": [\n        \"S9\"\n      ],\n      \"values\": [],\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/alt\"\n        }\n      ],\n      \"description\": \"Provides alternative text for assistive technology to replace the generated content of a ::before or ::after element.\",\n      \"restrictions\": [\n        \"string\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"animation\",\n      \"browsers\": [\n        \"E12\",\n        \"FF16\",\n        \"S9\",\n        \"C43\",\n        \"IE10\",\n        \"O30\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"alternate\",\n          \"description\": \"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"\n        },\n        {\n          \"name\": \"alternate-reverse\",\n          \"description\": \"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"\n        },\n        {\n          \"name\": \"backwards\",\n          \"description\": \"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"\n        },\n        {\n          \"name\": \"both\",\n          \"description\": \"Both forwards and backwards fill modes are applied.\"\n        },\n        {\n          \"name\": \"forwards\",\n          \"description\": \"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"\n        },\n        {\n          \"name\": \"infinite\",\n          \"description\": \"Causes the animation to repeat forever.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"No animation is performed\"\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"Normal playback.\"\n        },\n        {\n          \"name\": \"reverse\",\n          \"description\": \"All iterations of the animation are played in the reverse direction from the way they were specified.\"\n        }\n      ],\n      \"syntax\": \"<single-animation>#\",\n      \"relevance\": 82,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/animation\"\n        }\n      ],\n      \"description\": \"Shorthand property combines six of the animation properties into a single property.\",\n      \"restrictions\": [\n        \"time\",\n        \"timing-function\",\n        \"enum\",\n        \"identifier\",\n        \"number\"\n      ]\n    },\n    {\n      \"name\": \"animation-delay\",\n      \"browsers\": [\n        \"E12\",\n        \"FF16\",\n        \"S9\",\n        \"C43\",\n        \"IE10\",\n        \"O30\"\n      ],\n      \"syntax\": \"<time>#\",\n      \"relevance\": 66,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/animation-delay\"\n        }\n      ],\n      \"description\": \"Defines when the animation will start.\",\n      \"restrictions\": [\n        \"time\"\n      ]\n    },\n    {\n      \"name\": \"animation-direction\",\n      \"browsers\": [\n        \"E12\",\n        \"FF16\",\n        \"S9\",\n        \"C43\",\n        \"IE10\",\n        \"O30\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"alternate\",\n          \"description\": \"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"\n        },\n        {\n          \"name\": \"alternate-reverse\",\n          \"description\": \"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"Normal playback.\"\n        },\n        {\n          \"name\": \"reverse\",\n          \"description\": \"All iterations of the animation are played in the reverse direction from the way they were specified.\"\n        }\n      ],\n      \"syntax\": \"<single-animation-direction>#\",\n      \"relevance\": 58,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/animation-direction\"\n        }\n      ],\n      \"description\": \"Defines whether or not the animation should play in reverse on alternate cycles.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"animation-duration\",\n      \"browsers\": [\n        \"E12\",\n        \"FF16\",\n        \"S9\",\n        \"C43\",\n        \"IE10\",\n        \"O30\"\n      ],\n      \"syntax\": \"<time>#\",\n      \"relevance\": 72,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/animation-duration\"\n        }\n      ],\n      \"description\": \"Defines the length of time that an animation takes to complete one cycle.\",\n      \"restrictions\": [\n        \"time\"\n      ]\n    },\n    {\n      \"name\": \"animation-fill-mode\",\n      \"browsers\": [\n        \"E12\",\n        \"FF16\",\n        \"S9\",\n        \"C43\",\n        \"IE10\",\n        \"O30\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"backwards\",\n          \"description\": \"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"\n        },\n        {\n          \"name\": \"both\",\n          \"description\": \"Both forwards and backwards fill modes are applied.\"\n        },\n        {\n          \"name\": \"forwards\",\n          \"description\": \"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"There is no change to the property value between the time the animation is applied and the time the animation begins playing or after the animation completes.\"\n        }\n      ],\n      \"syntax\": \"<single-animation-fill-mode>#\",\n      \"relevance\": 65,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/animation-fill-mode\"\n        }\n      ],\n      \"description\": \"Defines what values are applied by the animation outside the time it is executing.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"animation-iteration-count\",\n      \"browsers\": [\n        \"E12\",\n        \"FF16\",\n        \"S9\",\n        \"C43\",\n        \"IE10\",\n        \"O30\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"infinite\",\n          \"description\": \"Causes the animation to repeat forever.\"\n        }\n      ],\n      \"syntax\": \"<single-animation-iteration-count>#\",\n      \"relevance\": 64,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/animation-iteration-count\"\n        }\n      ],\n      \"description\": \"Defines the number of times an animation cycle is played. The default value is one, meaning the animation will play from beginning to end once.\",\n      \"restrictions\": [\n        \"number\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"animation-name\",\n      \"browsers\": [\n        \"E12\",\n        \"FF16\",\n        \"S9\",\n        \"C43\",\n        \"IE10\",\n        \"O30\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"No animation is performed\"\n        }\n      ],\n      \"syntax\": \"[ none | <keyframes-name> ]#\",\n      \"relevance\": 72,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/animation-name\"\n        }\n      ],\n      \"description\": \"Defines a list of animations that apply. Each name is used to select the keyframe at-rule that provides the property values for the animation.\",\n      \"restrictions\": [\n        \"identifier\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"animation-play-state\",\n      \"browsers\": [\n        \"E12\",\n        \"FF16\",\n        \"S9\",\n        \"C43\",\n        \"IE10\",\n        \"O30\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"paused\",\n          \"description\": \"A running animation will be paused.\"\n        },\n        {\n          \"name\": \"running\",\n          \"description\": \"Resume playback of a paused animation.\"\n        }\n      ],\n      \"syntax\": \"<single-animation-play-state>#\",\n      \"relevance\": 55,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/animation-play-state\"\n        }\n      ],\n      \"description\": \"Defines whether the animation is running or paused.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"animation-timing-function\",\n      \"browsers\": [\n        \"E12\",\n        \"FF16\",\n        \"S9\",\n        \"C43\",\n        \"IE10\",\n        \"O30\"\n      ],\n      \"syntax\": \"<easing-function>#\",\n      \"relevance\": 71,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/animation-timing-function\"\n        }\n      ],\n      \"description\": \"Describes how the animation will progress over one cycle of its duration.\",\n      \"restrictions\": [\n        \"timing-function\"\n      ]\n    },\n    {\n      \"name\": \"backface-visibility\",\n      \"browsers\": [\n        \"E12\",\n        \"FF16\",\n        \"S15.4\",\n        \"C36\",\n        \"IE10\",\n        \"O23\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"hidden\",\n          \"description\": \"Back side is hidden.\"\n        },\n        {\n          \"name\": \"visible\",\n          \"description\": \"Back side is visible.\"\n        }\n      ],\n      \"syntax\": \"visible | hidden\",\n      \"relevance\": 60,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/backface-visibility\"\n        }\n      ],\n      \"description\": \"Determines whether or not the 'back' side of a transformed element is visible when facing the viewer. With an identity transform, the front side of an element faces the viewer.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"background\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"fixed\",\n          \"description\": \"The background is fixed with regard to the viewport. In paged media where there is no viewport, a 'fixed' background is fixed with respect to the page box and therefore replicated on every page.\"\n        },\n        {\n          \"name\": \"local\",\n          \"description\": \"The background is fixed with regard to the element's contents: if the element has a scrolling mechanism, the background scrolls with the element's contents.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"A value of 'none' counts as an image layer but draws nothing.\"\n        },\n        {\n          \"name\": \"scroll\",\n          \"description\": \"The background is fixed with regard to the element itself and does not scroll with its contents. (It is effectively attached to the element's border.)\"\n        }\n      ],\n      \"syntax\": \"[ <bg-layer> , ]* <final-bg-layer>\",\n      \"relevance\": 93,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/background\"\n        }\n      ],\n      \"description\": \"Shorthand property for setting most background properties at the same place in the style sheet.\",\n      \"restrictions\": [\n        \"enum\",\n        \"image\",\n        \"color\",\n        \"position\",\n        \"length\",\n        \"repeat\",\n        \"percentage\",\n        \"box\"\n      ]\n    },\n    {\n      \"name\": \"background-attachment\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"fixed\",\n          \"description\": \"The background is fixed with regard to the viewport. In paged media where there is no viewport, a 'fixed' background is fixed with respect to the page box and therefore replicated on every page.\"\n        },\n        {\n          \"name\": \"local\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O3.5\"\n          ],\n          \"description\": \"The background is fixed with regard to the element's contents: if the element has a scrolling mechanism, the background scrolls with the element's contents.\"\n        },\n        {\n          \"name\": \"scroll\",\n          \"description\": \"The background is fixed with regard to the element itself and does not scroll with its contents. (It is effectively attached to the element's border.)\"\n        }\n      ],\n      \"syntax\": \"<attachment>#\",\n      \"relevance\": 54,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/background-attachment\"\n        }\n      ],\n      \"description\": \"Specifies whether the background images are fixed with regard to the viewport ('fixed') or scroll along with the element ('scroll') or its contents ('local').\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"background-blend-mode\",\n      \"browsers\": [\n        \"E79\",\n        \"FF30\",\n        \"S8\",\n        \"C35\",\n        \"O22\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"normal\",\n          \"description\": \"Default attribute which specifies no blending\"\n        },\n        {\n          \"name\": \"multiply\",\n          \"description\": \"The source color is multiplied by the destination color and replaces the destination.\"\n        },\n        {\n          \"name\": \"screen\",\n          \"description\": \"Multiplies the complements of the backdrop and source color values, then complements the result.\"\n        },\n        {\n          \"name\": \"overlay\",\n          \"description\": \"Multiplies or screens the colors, depending on the backdrop color value.\"\n        },\n        {\n          \"name\": \"darken\",\n          \"description\": \"Selects the darker of the backdrop and source colors.\"\n        },\n        {\n          \"name\": \"lighten\",\n          \"description\": \"Selects the lighter of the backdrop and source colors.\"\n        },\n        {\n          \"name\": \"color-dodge\",\n          \"description\": \"Brightens the backdrop color to reflect the source color.\"\n        },\n        {\n          \"name\": \"color-burn\",\n          \"description\": \"Darkens the backdrop color to reflect the source color.\"\n        },\n        {\n          \"name\": \"hard-light\",\n          \"description\": \"Multiplies or screens the colors, depending on the source color value.\"\n        },\n        {\n          \"name\": \"soft-light\",\n          \"description\": \"Darkens or lightens the colors, depending on the source color value.\"\n        },\n        {\n          \"name\": \"difference\",\n          \"description\": \"Subtracts the darker of the two constituent colors from the lighter color..\"\n        },\n        {\n          \"name\": \"exclusion\",\n          \"description\": \"Produces an effect similar to that of the Difference mode but lower in contrast.\"\n        },\n        {\n          \"name\": \"hue\",\n          \"browsers\": [\n            \"E79\",\n            \"FF30\",\n            \"S8\",\n            \"C35\",\n            \"O22\"\n          ],\n          \"description\": \"Creates a color with the hue of the source color and the saturation and luminosity of the backdrop color.\"\n        },\n        {\n          \"name\": \"saturation\",\n          \"browsers\": [\n            \"E79\",\n            \"FF30\",\n            \"S8\",\n            \"C35\",\n            \"O22\"\n          ],\n          \"description\": \"Creates a color with the saturation of the source color and the hue and luminosity of the backdrop color.\"\n        },\n        {\n          \"name\": \"color\",\n          \"browsers\": [\n            \"E79\",\n            \"FF30\",\n            \"S8\",\n            \"C35\",\n            \"O22\"\n          ],\n          \"description\": \"Creates a color with the hue and saturation of the source color and the luminosity of the backdrop color.\"\n        },\n        {\n          \"name\": \"luminosity\",\n          \"browsers\": [\n            \"E79\",\n            \"FF30\",\n            \"S8\",\n            \"C35\",\n            \"O22\"\n          ],\n          \"description\": \"Creates a color with the luminosity of the source color and the hue and saturation of the backdrop color.\"\n        }\n      ],\n      \"syntax\": \"<blend-mode>#\",\n      \"relevance\": 52,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/background-blend-mode\"\n        }\n      ],\n      \"description\": \"Defines the blending mode of each background layer.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"background-clip\",\n      \"browsers\": [\n        \"E12\",\n        \"FF4\",\n        \"S5\",\n        \"C1\",\n        \"IE9\",\n        \"O10.5\"\n      ],\n      \"syntax\": \"<box>#\",\n      \"relevance\": 69,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/background-clip\"\n        }\n      ],\n      \"description\": \"Determines the background painting area.\",\n      \"restrictions\": [\n        \"box\"\n      ]\n    },\n    {\n      \"name\": \"background-color\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"syntax\": \"<color>\",\n      \"relevance\": 94,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/background-color\"\n        }\n      ],\n      \"description\": \"Sets the background color of an element.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"background-image\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"Counts as an image layer but draws nothing.\"\n        }\n      ],\n      \"syntax\": \"<bg-image>#\",\n      \"relevance\": 88,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/background-image\"\n        }\n      ],\n      \"description\": \"Sets the background image(s) of an element.\",\n      \"restrictions\": [\n        \"image\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"background-origin\",\n      \"browsers\": [\n        \"E12\",\n        \"FF4\",\n        \"S3\",\n        \"C1\",\n        \"IE9\",\n        \"O10.5\"\n      ],\n      \"syntax\": \"<box>#\",\n      \"relevance\": 53,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/background-origin\"\n        }\n      ],\n      \"description\": \"For elements rendered as a single box, specifies the background positioning area. For elements rendered as multiple boxes (e.g., inline boxes on several lines, boxes on several pages) specifies which boxes 'box-decoration-break' operates on to determine the background positioning area(s).\",\n      \"restrictions\": [\n        \"box\"\n      ]\n    },\n    {\n      \"name\": \"background-position\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"syntax\": \"<bg-position>#\",\n      \"relevance\": 87,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/background-position\"\n        }\n      ],\n      \"description\": \"Specifies the initial position of the background image(s) (after any resizing) within their corresponding background positioning area.\",\n      \"restrictions\": [\n        \"position\",\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"background-position-x\",\n      \"browsers\": [\n        \"E12\",\n        \"FF49\",\n        \"S1\",\n        \"C1\",\n        \"IE6\",\n        \"O15\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"center\",\n          \"description\": \"Equivalent to '50%' ('left 50%') for the horizontal position if the horizontal position is not otherwise specified, or '50%' ('top 50%') for the vertical position if it is.\"\n        },\n        {\n          \"name\": \"left\",\n          \"description\": \"Equivalent to '0%' for the horizontal position if one or two values are given, otherwise specifies the left edge as the origin for the next offset.\"\n        },\n        {\n          \"name\": \"right\",\n          \"description\": \"Equivalent to '100%' for the horizontal position if one or two values are given, otherwise specifies the right edge as the origin for the next offset.\"\n        }\n      ],\n      \"syntax\": \"[ center | [ [ left | right | x-start | x-end ]? <length-percentage>? ]! ]#\",\n      \"relevance\": 55,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/background-position-x\"\n        }\n      ],\n      \"description\": \"If background images have been specified, this property specifies their initial position (after any resizing) within their corresponding background positioning area.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"background-position-y\",\n      \"browsers\": [\n        \"E12\",\n        \"FF49\",\n        \"S1\",\n        \"C1\",\n        \"IE6\",\n        \"O15\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"bottom\",\n          \"description\": \"Equivalent to '100%' for the vertical position if one or two values are given, otherwise specifies the bottom edge as the origin for the next offset.\"\n        },\n        {\n          \"name\": \"center\",\n          \"description\": \"Equivalent to '50%' ('left 50%') for the horizontal position if the horizontal position is not otherwise specified, or '50%' ('top 50%') for the vertical position if it is.\"\n        },\n        {\n          \"name\": \"top\",\n          \"description\": \"Equivalent to '0%' for the vertical position if one or two values are given, otherwise specifies the top edge as the origin for the next offset.\"\n        }\n      ],\n      \"syntax\": \"[ center | [ [ top | bottom | y-start | y-end ]? <length-percentage>? ]! ]#\",\n      \"relevance\": 53,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/background-position-y\"\n        }\n      ],\n      \"description\": \"If background images have been specified, this property specifies their initial position (after any resizing) within their corresponding background positioning area.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"background-repeat\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"values\": [],\n      \"syntax\": \"<repeat-style>#\",\n      \"relevance\": 85,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/background-repeat\"\n        }\n      ],\n      \"description\": \"Specifies how background images are tiled after they have been sized and positioned.\",\n      \"restrictions\": [\n        \"repeat\"\n      ]\n    },\n    {\n      \"name\": \"background-size\",\n      \"browsers\": [\n        \"E12\",\n        \"FF4\",\n        \"S5\",\n        \"C3\",\n        \"IE9\",\n        \"O10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Resolved by using the image's intrinsic ratio and the size of the other dimension, or failing that, using the image's intrinsic size, or failing that, treating it as 100%.\"\n        },\n        {\n          \"name\": \"contain\",\n          \"description\": \"Scale the image, while preserving its intrinsic aspect ratio (if any), to the largest size such that both its width and its height can fit inside the background positioning area.\"\n        },\n        {\n          \"name\": \"cover\",\n          \"description\": \"Scale the image, while preserving its intrinsic aspect ratio (if any), to the smallest size such that both its width and its height can completely cover the background positioning area.\"\n        }\n      ],\n      \"syntax\": \"<bg-size>#\",\n      \"relevance\": 85,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/background-size\"\n        }\n      ],\n      \"description\": \"Specifies the size of the background images.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"behavior\",\n      \"browsers\": [\n        \"IE6\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"IE only. Used to extend behaviors of the browser.\",\n      \"restrictions\": [\n        \"url\"\n      ]\n    },\n    {\n      \"name\": \"block-size\",\n      \"browsers\": [\n        \"E79\",\n        \"FF41\",\n        \"S12.1\",\n        \"C57\",\n        \"O44\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Depends on the values of other properties.\"\n        }\n      ],\n      \"syntax\": \"<'width'>\",\n      \"relevance\": 53,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/block-size\"\n        }\n      ],\n      \"description\": \"Size of an element in the direction opposite that of the direction specified by 'writing-mode'.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"border\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"syntax\": \"<line-width> || <line-style> || <color>\",\n      \"relevance\": 95,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border\"\n        }\n      ],\n      \"description\": \"Shorthand property for setting border width, style, and color.\",\n      \"restrictions\": [\n        \"length\",\n        \"line-width\",\n        \"line-style\",\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"border-block-end\",\n      \"browsers\": [\n        \"E79\",\n        \"FF41\",\n        \"S12.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"syntax\": \"<'border-top-width'> || <'border-top-style'> || <color>\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-block-end\"\n        }\n      ],\n      \"description\": \"Logical 'border-bottom'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.\",\n      \"restrictions\": [\n        \"length\",\n        \"line-width\",\n        \"line-style\",\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"border-block-start\",\n      \"browsers\": [\n        \"E79\",\n        \"FF41\",\n        \"S12.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"syntax\": \"<'border-top-width'> || <'border-top-style'> || <color>\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-block-start\"\n        }\n      ],\n      \"description\": \"Logical 'border-top'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.\",\n      \"restrictions\": [\n        \"length\",\n        \"line-width\",\n        \"line-style\",\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"border-block-end-color\",\n      \"browsers\": [\n        \"E79\",\n        \"FF41\",\n        \"S12.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"syntax\": \"<'border-top-color'>\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-block-end-color\"\n        }\n      ],\n      \"description\": \"Logical 'border-bottom-color'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"border-block-start-color\",\n      \"browsers\": [\n        \"E79\",\n        \"FF41\",\n        \"S12.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"syntax\": \"<'border-top-color'>\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-block-start-color\"\n        }\n      ],\n      \"description\": \"Logical 'border-top-color'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"border-block-end-style\",\n      \"browsers\": [\n        \"E79\",\n        \"FF41\",\n        \"S12.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"syntax\": \"<'border-top-style'>\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-block-end-style\"\n        }\n      ],\n      \"description\": \"Logical 'border-bottom-style'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.\",\n      \"restrictions\": [\n        \"line-style\"\n      ]\n    },\n    {\n      \"name\": \"border-block-start-style\",\n      \"browsers\": [\n        \"E79\",\n        \"FF41\",\n        \"S12.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"syntax\": \"<'border-top-style'>\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-block-start-style\"\n        }\n      ],\n      \"description\": \"Logical 'border-top-style'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.\",\n      \"restrictions\": [\n        \"line-style\"\n      ]\n    },\n    {\n      \"name\": \"border-block-end-width\",\n      \"browsers\": [\n        \"E79\",\n        \"FF41\",\n        \"S12.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"syntax\": \"<'border-top-width'>\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-block-end-width\"\n        }\n      ],\n      \"description\": \"Logical 'border-bottom-width'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.\",\n      \"restrictions\": [\n        \"length\",\n        \"line-width\"\n      ]\n    },\n    {\n      \"name\": \"border-block-start-width\",\n      \"browsers\": [\n        \"E79\",\n        \"FF41\",\n        \"S12.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"syntax\": \"<'border-top-width'>\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-block-start-width\"\n        }\n      ],\n      \"description\": \"Logical 'border-top-width'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.\",\n      \"restrictions\": [\n        \"length\",\n        \"line-width\"\n      ]\n    },\n    {\n      \"name\": \"border-bottom\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"syntax\": \"<line-width> || <line-style> || <color>\",\n      \"relevance\": 87,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-bottom\"\n        }\n      ],\n      \"description\": \"Shorthand property for setting border width, style and color.\",\n      \"restrictions\": [\n        \"length\",\n        \"line-width\",\n        \"line-style\",\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"border-bottom-color\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"syntax\": \"<'border-top-color'>\",\n      \"relevance\": 70,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-bottom-color\"\n        }\n      ],\n      \"description\": \"Sets the color of the bottom border.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"border-bottom-left-radius\",\n      \"browsers\": [\n        \"E12\",\n        \"FF4\",\n        \"S5\",\n        \"C4\",\n        \"IE9\",\n        \"O10.5\"\n      ],\n      \"syntax\": \"<length-percentage>{1,2}\",\n      \"relevance\": 74,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-bottom-left-radius\"\n        }\n      ],\n      \"description\": \"Defines the radii of the bottom left outer border edge.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"border-bottom-right-radius\",\n      \"browsers\": [\n        \"E12\",\n        \"FF4\",\n        \"S5\",\n        \"C4\",\n        \"IE9\",\n        \"O10.5\"\n      ],\n      \"syntax\": \"<length-percentage>{1,2}\",\n      \"relevance\": 74,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-bottom-right-radius\"\n        }\n      ],\n      \"description\": \"Defines the radii of the bottom right outer border edge.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"border-bottom-style\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE5.5\",\n        \"O9.2\"\n      ],\n      \"syntax\": \"<line-style>\",\n      \"relevance\": 60,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-bottom-style\"\n        }\n      ],\n      \"description\": \"Sets the style of the bottom border.\",\n      \"restrictions\": [\n        \"line-style\"\n      ]\n    },\n    {\n      \"name\": \"border-bottom-width\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"syntax\": \"<line-width>\",\n      \"relevance\": 65,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-bottom-width\"\n        }\n      ],\n      \"description\": \"Sets the thickness of the bottom border.\",\n      \"restrictions\": [\n        \"length\",\n        \"line-width\"\n      ]\n    },\n    {\n      \"name\": \"border-collapse\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1.2\",\n        \"C1\",\n        \"IE5\",\n        \"O4\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"collapse\",\n          \"description\": \"Selects the collapsing borders model.\"\n        },\n        {\n          \"name\": \"separate\",\n          \"description\": \"Selects the separated borders border model.\"\n        }\n      ],\n      \"syntax\": \"collapse | separate\",\n      \"relevance\": 71,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-collapse\"\n        }\n      ],\n      \"description\": \"Selects a table's border model.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"border-color\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"values\": [],\n      \"syntax\": \"<color>{1,4}\",\n      \"relevance\": 86,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-color\"\n        }\n      ],\n      \"description\": \"The color of the border around all four edges of an element.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"border-image\",\n      \"browsers\": [\n        \"E12\",\n        \"FF15\",\n        \"S6\",\n        \"C16\",\n        \"IE11\",\n        \"O11\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"If 'auto' is specified then the border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead.\"\n        },\n        {\n          \"name\": \"fill\",\n          \"description\": \"Causes the middle part of the border-image to be preserved.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"Use the border styles.\"\n        },\n        {\n          \"name\": \"repeat\",\n          \"description\": \"The image is tiled (repeated) to fill the area.\"\n        },\n        {\n          \"name\": \"round\",\n          \"description\": \"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does.\"\n        },\n        {\n          \"name\": \"space\",\n          \"description\": \"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles.\"\n        },\n        {\n          \"name\": \"stretch\",\n          \"description\": \"The image is stretched to fill the area.\"\n        },\n        {\n          \"name\": \"url()\"\n        }\n      ],\n      \"syntax\": \"<'border-image-source'> || <'border-image-slice'> [ / <'border-image-width'> | / <'border-image-width'>? / <'border-image-outset'> ]? || <'border-image-repeat'>\",\n      \"relevance\": 52,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-image\"\n        }\n      ],\n      \"description\": \"Shorthand property for setting 'border-image-source', 'border-image-slice', 'border-image-width', 'border-image-outset' and 'border-image-repeat'. Omitted values are set to their initial values.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\",\n        \"number\",\n        \"url\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"border-image-outset\",\n      \"browsers\": [\n        \"E12\",\n        \"FF15\",\n        \"S6\",\n        \"C15\",\n        \"IE11\",\n        \"O15\"\n      ],\n      \"syntax\": \"[ <length> | <number> ]{1,4}\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-image-outset\"\n        }\n      ],\n      \"description\": \"The values specify the amount by which the border image area extends beyond the border box on the top, right, bottom, and left sides respectively. If the fourth value is absent, it is the same as the second. If the third one is also absent, it is the same as the first. If the second one is also absent, it is the same as the first. Numbers represent multiples of the corresponding border-width.\",\n      \"restrictions\": [\n        \"length\",\n        \"number\"\n      ]\n    },\n    {\n      \"name\": \"border-image-repeat\",\n      \"browsers\": [\n        \"E12\",\n        \"FF15\",\n        \"S6\",\n        \"C15\",\n        \"IE11\",\n        \"O15\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"repeat\",\n          \"description\": \"The image is tiled (repeated) to fill the area.\"\n        },\n        {\n          \"name\": \"round\",\n          \"description\": \"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does.\"\n        },\n        {\n          \"name\": \"space\",\n          \"description\": \"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles.\"\n        },\n        {\n          \"name\": \"stretch\",\n          \"description\": \"The image is stretched to fill the area.\"\n        }\n      ],\n      \"syntax\": \"[ stretch | repeat | round | space ]{1,2}\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-image-repeat\"\n        }\n      ],\n      \"description\": \"Specifies how the images for the sides and the middle part of the border image are scaled and tiled. If the second keyword is absent, it is assumed to be the same as the first.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"border-image-slice\",\n      \"browsers\": [\n        \"E12\",\n        \"FF15\",\n        \"S6\",\n        \"C15\",\n        \"IE11\",\n        \"O15\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"fill\",\n          \"description\": \"Causes the middle part of the border-image to be preserved.\"\n        }\n      ],\n      \"syntax\": \"<number-percentage>{1,4} && fill?\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-image-slice\"\n        }\n      ],\n      \"description\": \"Specifies inward offsets from the top, right, bottom, and left edges of the image, dividing it into nine regions: four corners, four edges and a middle.\",\n      \"restrictions\": [\n        \"number\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"border-image-source\",\n      \"browsers\": [\n        \"E12\",\n        \"FF15\",\n        \"S6\",\n        \"C15\",\n        \"IE11\",\n        \"O15\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"Use the border styles.\"\n        }\n      ],\n      \"syntax\": \"none | <image>\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-image-source\"\n        }\n      ],\n      \"description\": \"Specifies an image to use instead of the border styles given by the 'border-style' properties and as an additional background layer for the element. If the value is 'none' or if the image cannot be displayed, the border styles will be used.\",\n      \"restrictions\": [\n        \"image\"\n      ]\n    },\n    {\n      \"name\": \"border-image-width\",\n      \"browsers\": [\n        \"E12\",\n        \"FF13\",\n        \"S6\",\n        \"C15\",\n        \"IE11\",\n        \"O15\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead.\"\n        }\n      ],\n      \"syntax\": \"[ <length-percentage> | <number> | auto ]{1,4}\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-image-width\"\n        }\n      ],\n      \"description\": \"The four values of 'border-image-width' specify offsets that are used to divide the border image area into nine parts. They represent inward distances from the top, right, bottom, and left sides of the area, respectively.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\",\n        \"number\"\n      ]\n    },\n    {\n      \"name\": \"border-inline-end\",\n      \"browsers\": [\n        \"E79\",\n        \"FF41\",\n        \"S12.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"syntax\": \"<'border-top-width'> || <'border-top-style'> || <color>\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-inline-end\"\n        }\n      ],\n      \"description\": \"Logical 'border-right'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.\",\n      \"restrictions\": [\n        \"length\",\n        \"line-width\",\n        \"line-style\",\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"border-inline-start\",\n      \"browsers\": [\n        \"E79\",\n        \"FF41\",\n        \"S12.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"syntax\": \"<'border-top-width'> || <'border-top-style'> || <color>\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-inline-start\"\n        }\n      ],\n      \"description\": \"Logical 'border-left'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.\",\n      \"restrictions\": [\n        \"length\",\n        \"line-width\",\n        \"line-style\",\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"border-inline-end-color\",\n      \"browsers\": [\n        \"E79\",\n        \"FF41\",\n        \"S12.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"syntax\": \"<'border-top-color'>\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-inline-end-color\"\n        }\n      ],\n      \"description\": \"Logical 'border-right-color'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"border-inline-start-color\",\n      \"browsers\": [\n        \"E79\",\n        \"FF41\",\n        \"S12.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"syntax\": \"<'border-top-color'>\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-inline-start-color\"\n        }\n      ],\n      \"description\": \"Logical 'border-left-color'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"border-inline-end-style\",\n      \"browsers\": [\n        \"E79\",\n        \"FF41\",\n        \"S12.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"syntax\": \"<'border-top-style'>\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-inline-end-style\"\n        }\n      ],\n      \"description\": \"Logical 'border-right-style'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.\",\n      \"restrictions\": [\n        \"line-style\"\n      ]\n    },\n    {\n      \"name\": \"border-inline-start-style\",\n      \"browsers\": [\n        \"E79\",\n        \"FF41\",\n        \"S12.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"syntax\": \"<'border-top-style'>\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-inline-start-style\"\n        }\n      ],\n      \"description\": \"Logical 'border-left-style'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.\",\n      \"restrictions\": [\n        \"line-style\"\n      ]\n    },\n    {\n      \"name\": \"border-inline-end-width\",\n      \"browsers\": [\n        \"E79\",\n        \"FF41\",\n        \"S12.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"syntax\": \"<'border-top-width'>\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-inline-end-width\"\n        }\n      ],\n      \"description\": \"Logical 'border-right-width'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.\",\n      \"restrictions\": [\n        \"length\",\n        \"line-width\"\n      ]\n    },\n    {\n      \"name\": \"border-inline-start-width\",\n      \"browsers\": [\n        \"E79\",\n        \"FF41\",\n        \"S12.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"syntax\": \"<'border-top-width'>\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-inline-start-width\"\n        }\n      ],\n      \"description\": \"Logical 'border-left-width'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.\",\n      \"restrictions\": [\n        \"length\",\n        \"line-width\"\n      ]\n    },\n    {\n      \"name\": \"border-left\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"syntax\": \"<line-width> || <line-style> || <color>\",\n      \"relevance\": 81,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-left\"\n        }\n      ],\n      \"description\": \"Shorthand property for setting border width, style and color\",\n      \"restrictions\": [\n        \"length\",\n        \"line-width\",\n        \"line-style\",\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"border-left-color\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"syntax\": \"<color>\",\n      \"relevance\": 67,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-left-color\"\n        }\n      ],\n      \"description\": \"Sets the color of the left border.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"border-left-style\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE5.5\",\n        \"O9.2\"\n      ],\n      \"syntax\": \"<line-style>\",\n      \"relevance\": 54,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-left-style\"\n        }\n      ],\n      \"description\": \"Sets the style of the left border.\",\n      \"restrictions\": [\n        \"line-style\"\n      ]\n    },\n    {\n      \"name\": \"border-left-width\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"syntax\": \"<line-width>\",\n      \"relevance\": 63,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-left-width\"\n        }\n      ],\n      \"description\": \"Sets the thickness of the left border.\",\n      \"restrictions\": [\n        \"length\",\n        \"line-width\"\n      ]\n    },\n    {\n      \"name\": \"border-radius\",\n      \"browsers\": [\n        \"E12\",\n        \"FF4\",\n        \"S5\",\n        \"C4\",\n        \"IE9\",\n        \"O10.5\"\n      ],\n      \"syntax\": \"<length-percentage>{1,4} [ / <length-percentage>{1,4} ]?\",\n      \"relevance\": 92,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-radius\"\n        }\n      ],\n      \"description\": \"Defines the radii of the outer border edge.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"border-right\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE5.5\",\n        \"O9.2\"\n      ],\n      \"syntax\": \"<line-width> || <line-style> || <color>\",\n      \"relevance\": 80,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-right\"\n        }\n      ],\n      \"description\": \"Shorthand property for setting border width, style and color\",\n      \"restrictions\": [\n        \"length\",\n        \"line-width\",\n        \"line-style\",\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"border-right-color\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"syntax\": \"<color>\",\n      \"relevance\": 66,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-right-color\"\n        }\n      ],\n      \"description\": \"Sets the color of the right border.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"border-right-style\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE5.5\",\n        \"O9.2\"\n      ],\n      \"syntax\": \"<line-style>\",\n      \"relevance\": 53,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-right-style\"\n        }\n      ],\n      \"description\": \"Sets the style of the right border.\",\n      \"restrictions\": [\n        \"line-style\"\n      ]\n    },\n    {\n      \"name\": \"border-right-width\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"syntax\": \"<line-width>\",\n      \"relevance\": 63,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-right-width\"\n        }\n      ],\n      \"description\": \"Sets the thickness of the right border.\",\n      \"restrictions\": [\n        \"length\",\n        \"line-width\"\n      ]\n    },\n    {\n      \"name\": \"border-spacing\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE8\",\n        \"O4\"\n      ],\n      \"syntax\": \"<length> <length>?\",\n      \"relevance\": 67,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-spacing\"\n        }\n      ],\n      \"description\": \"The lengths specify the distance that separates adjoining cell borders. If one length is specified, it gives both the horizontal and vertical spacing. If two are specified, the first gives the horizontal spacing and the second the vertical spacing. Lengths may not be negative.\",\n      \"restrictions\": [\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"border-style\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"values\": [],\n      \"syntax\": \"<line-style>{1,4}\",\n      \"relevance\": 79,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-style\"\n        }\n      ],\n      \"description\": \"The style of the border around edges of an element.\",\n      \"restrictions\": [\n        \"line-style\"\n      ]\n    },\n    {\n      \"name\": \"border-top\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"syntax\": \"<line-width> || <line-style> || <color>\",\n      \"relevance\": 86,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-top\"\n        }\n      ],\n      \"description\": \"Shorthand property for setting border width, style and color\",\n      \"restrictions\": [\n        \"length\",\n        \"line-width\",\n        \"line-style\",\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"border-top-color\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"syntax\": \"<color>\",\n      \"relevance\": 71,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-top-color\"\n        }\n      ],\n      \"description\": \"Sets the color of the top border.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"border-top-left-radius\",\n      \"browsers\": [\n        \"E12\",\n        \"FF4\",\n        \"S5\",\n        \"C4\",\n        \"IE9\",\n        \"O10.5\"\n      ],\n      \"syntax\": \"<length-percentage>{1,2}\",\n      \"relevance\": 75,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-top-left-radius\"\n        }\n      ],\n      \"description\": \"Defines the radii of the top left outer border edge.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"border-top-right-radius\",\n      \"browsers\": [\n        \"E12\",\n        \"FF4\",\n        \"S5\",\n        \"C4\",\n        \"IE9\",\n        \"O10.5\"\n      ],\n      \"syntax\": \"<length-percentage>{1,2}\",\n      \"relevance\": 75,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-top-right-radius\"\n        }\n      ],\n      \"description\": \"Defines the radii of the top right outer border edge.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"border-top-style\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE5.5\",\n        \"O9.2\"\n      ],\n      \"syntax\": \"<line-style>\",\n      \"relevance\": 58,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-top-style\"\n        }\n      ],\n      \"description\": \"Sets the style of the top border.\",\n      \"restrictions\": [\n        \"line-style\"\n      ]\n    },\n    {\n      \"name\": \"border-top-width\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"syntax\": \"<line-width>\",\n      \"relevance\": 61,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-top-width\"\n        }\n      ],\n      \"description\": \"Sets the thickness of the top border.\",\n      \"restrictions\": [\n        \"length\",\n        \"line-width\"\n      ]\n    },\n    {\n      \"name\": \"border-width\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"values\": [],\n      \"syntax\": \"<line-width>{1,4}\",\n      \"relevance\": 82,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-width\"\n        }\n      ],\n      \"description\": \"Shorthand that sets the four 'border-*-width' properties. If it has four values, they set top, right, bottom and left in that order. If left is missing, it is the same as right; if bottom is missing, it is the same as top; if right is missing, it is the same as top.\",\n      \"restrictions\": [\n        \"length\",\n        \"line-width\"\n      ]\n    },\n    {\n      \"name\": \"bottom\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE5\",\n        \"O6\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well\"\n        }\n      ],\n      \"syntax\": \"<length> | <percentage> | auto\",\n      \"relevance\": 90,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/bottom\"\n        }\n      ],\n      \"description\": \"Specifies how far an absolutely positioned box's bottom margin edge is offset above the bottom edge of the box's 'containing block'.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"box-decoration-break\",\n      \"browsers\": [\n        \"E79\",\n        \"FF32\",\n        \"S7\",\n        \"C22\",\n        \"O15\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"clone\",\n          \"description\": \"Each box is independently wrapped with the border and padding.\"\n        },\n        {\n          \"name\": \"slice\",\n          \"description\": \"The effect is as though the element were rendered with no breaks present, and then sliced by the breaks afterward.\"\n        }\n      ],\n      \"syntax\": \"slice | clone\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/box-decoration-break\"\n        }\n      ],\n      \"description\": \"Specifies whether individual boxes are treated as broken pieces of one continuous box, or whether each box is individually wrapped with the border and padding.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"box-shadow\",\n      \"browsers\": [\n        \"E12\",\n        \"FF4\",\n        \"S5.1\",\n        \"C10\",\n        \"IE9\",\n        \"O10.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"inset\",\n          \"description\": \"Changes the drop shadow from an outer shadow (one that shadows the box onto the canvas, as if it were lifted above the canvas) to an inner shadow (one that shadows the canvas onto the box, as if the box were cut out of the canvas and shifted behind it).\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"No shadow.\"\n        }\n      ],\n      \"syntax\": \"none | <shadow>#\",\n      \"relevance\": 90,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/box-shadow\"\n        }\n      ],\n      \"description\": \"Attaches one or more drop-shadows to the box. The property is a comma-separated list of shadows, each specified by 2-4 length values, an optional color, and an optional 'inset' keyword. Omitted lengths are 0; omitted colors are a user agent chosen color.\",\n      \"restrictions\": [\n        \"length\",\n        \"color\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"box-sizing\",\n      \"browsers\": [\n        \"E12\",\n        \"FF29\",\n        \"S5.1\",\n        \"C10\",\n        \"IE8\",\n        \"O7\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"border-box\",\n          \"description\": \"The specified width and height (and respective min/max properties) on this element determine the border box of the element.\"\n        },\n        {\n          \"name\": \"content-box\",\n          \"description\": \"Behavior of width and height as specified by CSS2.1. The specified width and height (and respective min/max properties) apply to the width and height respectively of the content box of the element.\"\n        }\n      ],\n      \"syntax\": \"content-box | border-box\",\n      \"relevance\": 92,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/box-sizing\"\n        }\n      ],\n      \"description\": \"Specifies the behavior of the 'width' and 'height' properties.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"break-after\",\n      \"browsers\": [\n        \"E12\",\n        \"FF65\",\n        \"S10\",\n        \"C50\",\n        \"IE10\",\n        \"O37\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"always\",\n          \"description\": \"Always force a page break before/after the generated box.\"\n        },\n        {\n          \"name\": \"auto\",\n          \"description\": \"Neither force nor forbid a page/column break before/after the principal box.\"\n        },\n        {\n          \"name\": \"avoid\",\n          \"description\": \"Avoid a break before/after the principal box.\"\n        },\n        {\n          \"name\": \"avoid-column\",\n          \"description\": \"Avoid a column break before/after the principal box.\"\n        },\n        {\n          \"name\": \"avoid-page\",\n          \"description\": \"Avoid a page break before/after the principal box.\"\n        },\n        {\n          \"name\": \"column\",\n          \"description\": \"Always force a column break before/after the principal box.\"\n        },\n        {\n          \"name\": \"left\",\n          \"description\": \"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page.\"\n        },\n        {\n          \"name\": \"page\",\n          \"description\": \"Always force a page break before/after the principal box.\"\n        },\n        {\n          \"name\": \"right\",\n          \"description\": \"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page.\"\n        }\n      ],\n      \"syntax\": \"auto | avoid | always | all | avoid-page | page | left | right | recto | verso | avoid-column | column | avoid-region | region\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/break-after\"\n        }\n      ],\n      \"description\": \"Describes the page/column/region break behavior after the generated box.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"break-before\",\n      \"browsers\": [\n        \"E12\",\n        \"FF65\",\n        \"S10\",\n        \"C50\",\n        \"IE10\",\n        \"O37\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"always\",\n          \"description\": \"Always force a page break before/after the generated box.\"\n        },\n        {\n          \"name\": \"auto\",\n          \"description\": \"Neither force nor forbid a page/column break before/after the principal box.\"\n        },\n        {\n          \"name\": \"avoid\",\n          \"description\": \"Avoid a break before/after the principal box.\"\n        },\n        {\n          \"name\": \"avoid-column\",\n          \"description\": \"Avoid a column break before/after the principal box.\"\n        },\n        {\n          \"name\": \"avoid-page\",\n          \"description\": \"Avoid a page break before/after the principal box.\"\n        },\n        {\n          \"name\": \"column\",\n          \"description\": \"Always force a column break before/after the principal box.\"\n        },\n        {\n          \"name\": \"left\",\n          \"description\": \"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page.\"\n        },\n        {\n          \"name\": \"page\",\n          \"description\": \"Always force a page break before/after the principal box.\"\n        },\n        {\n          \"name\": \"right\",\n          \"description\": \"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page.\"\n        }\n      ],\n      \"syntax\": \"auto | avoid | always | all | avoid-page | page | left | right | recto | verso | avoid-column | column | avoid-region | region\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/break-before\"\n        }\n      ],\n      \"description\": \"Describes the page/column/region break behavior before the generated box.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"break-inside\",\n      \"browsers\": [\n        \"E12\",\n        \"FF65\",\n        \"S10\",\n        \"C50\",\n        \"IE10\",\n        \"O37\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Impose no additional breaking constraints within the box.\"\n        },\n        {\n          \"name\": \"avoid\",\n          \"description\": \"Avoid breaks within the box.\"\n        },\n        {\n          \"name\": \"avoid-column\",\n          \"description\": \"Avoid a column break within the box.\"\n        },\n        {\n          \"name\": \"avoid-page\",\n          \"description\": \"Avoid a page break within the box.\"\n        }\n      ],\n      \"syntax\": \"auto | avoid | avoid-page | avoid-column | avoid-region\",\n      \"relevance\": 51,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/break-inside\"\n        }\n      ],\n      \"description\": \"Describes the page/column/region break behavior inside the principal box.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"caption-side\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE8\",\n        \"O4\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"bottom\",\n          \"description\": \"Positions the caption box below the table box.\"\n        },\n        {\n          \"name\": \"top\",\n          \"description\": \"Positions the caption box above the table box.\"\n        }\n      ],\n      \"syntax\": \"top | bottom | block-start | block-end | inline-start | inline-end\",\n      \"relevance\": 52,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/caption-side\"\n        }\n      ],\n      \"description\": \"Specifies the position of the caption box with respect to the table box.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"caret-color\",\n      \"browsers\": [\n        \"E79\",\n        \"FF53\",\n        \"S11.1\",\n        \"C57\",\n        \"O44\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The user agent selects an appropriate color for the caret. This is generally currentcolor, but the user agent may choose a different color to ensure good visibility and contrast with the surrounding content, taking into account the value of currentcolor, the background, shadows, and other factors.\"\n        }\n      ],\n      \"syntax\": \"auto | <color>\",\n      \"relevance\": 53,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/caret-color\"\n        }\n      ],\n      \"description\": \"Controls the color of the text insertion indicator.\",\n      \"restrictions\": [\n        \"color\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"clear\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"both\",\n          \"description\": \"The clearance of the generated box is set to the amount necessary to place the top border edge below the bottom outer edge of any right-floating and left-floating boxes that resulted from elements earlier in the source document.\"\n        },\n        {\n          \"name\": \"left\",\n          \"description\": \"The clearance of the generated box is set to the amount necessary to place the top border edge below the bottom outer edge of any left-floating boxes that resulted from elements earlier in the source document.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"No constraint on the box's position with respect to floats.\"\n        },\n        {\n          \"name\": \"right\",\n          \"description\": \"The clearance of the generated box is set to the amount necessary to place the top border edge below the bottom outer edge of any right-floating boxes that resulted from elements earlier in the source document.\"\n        }\n      ],\n      \"syntax\": \"none | left | right | both | inline-start | inline-end\",\n      \"relevance\": 83,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/clear\"\n        }\n      ],\n      \"description\": \"Indicates which sides of an element's box(es) may not be adjacent to an earlier floating box. The 'clear' property does not consider floats inside the element itself or in other block formatting contexts.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"clip\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O7\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The element does not clip.\"\n        },\n        {\n          \"name\": \"rect()\",\n          \"description\": \"Specifies offsets from the edges of the border box.\"\n        }\n      ],\n      \"syntax\": \"<shape> | auto\",\n      \"relevance\": 74,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/clip\"\n        }\n      ],\n      \"description\": \"Deprecated. Use the 'clip-path' property when support allows. Defines the visible portion of an element's box.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"clip-path\",\n      \"browsers\": [\n        \"E79\",\n        \"FF3.5\",\n        \"S9.1\",\n        \"C55\",\n        \"IE10\",\n        \"O42\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"No clipping path gets created.\"\n        },\n        {\n          \"name\": \"url()\",\n          \"description\": \"References a <clipPath> element to create a clipping path.\"\n        }\n      ],\n      \"syntax\": \"<clip-source> | [ <basic-shape> || <geometry-box> ] | none\",\n      \"relevance\": 64,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/clip-path\"\n        }\n      ],\n      \"description\": \"Specifies a clipping path where everything inside the path is visible and everything outside is clipped out.\",\n      \"restrictions\": [\n        \"url\",\n        \"shape\",\n        \"geometry-box\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"clip-rule\",\n      \"browsers\": [\n        \"E80\",\n        \"FF72\",\n        \"S13.1\",\n        \"C80\",\n        \"O67\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"evenodd\",\n          \"description\": \"Determines the 'insideness' of a point on the canvas by drawing a ray from that point to infinity in any direction and counting the number of path segments from the given shape that the ray crosses.\"\n        },\n        {\n          \"name\": \"nonzero\",\n          \"description\": \"Determines the 'insideness' of a point on the canvas by drawing a ray from that point to infinity in any direction and then examining the places where a segment of the shape crosses the ray.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Indicates the algorithm which is to be used to determine what parts of the canvas are included inside the shape.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"color\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE3\",\n        \"O3.5\"\n      ],\n      \"syntax\": \"<color>\",\n      \"relevance\": 94,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/color\"\n        }\n      ],\n      \"description\": \"Sets the color of an element's text\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"color-interpolation-filters\",\n      \"browsers\": [\n        \"E80\",\n        \"FF72\",\n        \"S13.1\",\n        \"C80\",\n        \"O67\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Color operations are not required to occur in a particular color space.\"\n        },\n        {\n          \"name\": \"linearRGB\",\n          \"description\": \"Color operations should occur in the linearized RGB color space.\"\n        },\n        {\n          \"name\": \"sRGB\",\n          \"description\": \"Color operations should occur in the sRGB color space.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies the color space for imaging operations performed via filter effects.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"column-count\",\n      \"browsers\": [\n        \"E12\",\n        \"FF52\",\n        \"S9\",\n        \"C50\",\n        \"IE10\",\n        \"O11.1\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Determines the number of columns by the 'column-width' property and the element width.\"\n        }\n      ],\n      \"syntax\": \"<integer> | auto\",\n      \"relevance\": 53,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/column-count\"\n        }\n      ],\n      \"description\": \"Describes the optimal number of columns into which the content of the element will be flowed.\",\n      \"restrictions\": [\n        \"integer\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"column-fill\",\n      \"browsers\": [\n        \"E12\",\n        \"FF52\",\n        \"S9\",\n        \"C50\",\n        \"IE10\",\n        \"O37\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Fills columns sequentially.\"\n        },\n        {\n          \"name\": \"balance\",\n          \"description\": \"Balance content equally between columns, if possible.\"\n        }\n      ],\n      \"syntax\": \"auto | balance | balance-all\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/column-fill\"\n        }\n      ],\n      \"description\": \"In continuous media, this property will only be consulted if the length of columns has been constrained. Otherwise, columns will automatically be balanced.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"column-gap\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1.5\",\n        \"S3\",\n        \"C1\",\n        \"IE10\",\n        \"O11.1\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"normal\",\n          \"description\": \"User agent specific and typically equivalent to 1em.\"\n        }\n      ],\n      \"syntax\": \"normal | <length-percentage>\",\n      \"relevance\": 60,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/column-gap\"\n        }\n      ],\n      \"description\": \"Sets the gap between columns. If there is a column rule between columns, it will appear in the middle of the gap.\",\n      \"restrictions\": [\n        \"length\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"column-rule\",\n      \"browsers\": [\n        \"E12\",\n        \"FF52\",\n        \"S9\",\n        \"C50\",\n        \"IE10\",\n        \"O11.1\"\n      ],\n      \"syntax\": \"<'column-rule-width'> || <'column-rule-style'> || <'column-rule-color'>\",\n      \"relevance\": 51,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/column-rule\"\n        }\n      ],\n      \"description\": \"Shorthand for setting 'column-rule-width', 'column-rule-style', and 'column-rule-color' at the same place in the style sheet. Omitted values are set to their initial values.\",\n      \"restrictions\": [\n        \"length\",\n        \"line-width\",\n        \"line-style\",\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"column-rule-color\",\n      \"browsers\": [\n        \"E12\",\n        \"FF52\",\n        \"S9\",\n        \"C50\",\n        \"IE10\",\n        \"O11.1\"\n      ],\n      \"syntax\": \"<color>\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/column-rule-color\"\n        }\n      ],\n      \"description\": \"Sets the color of the column rule\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"column-rule-style\",\n      \"browsers\": [\n        \"E12\",\n        \"FF52\",\n        \"S9\",\n        \"C50\",\n        \"IE10\",\n        \"O11.1\"\n      ],\n      \"syntax\": \"<'border-style'>\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/column-rule-style\"\n        }\n      ],\n      \"description\": \"Sets the style of the rule between columns of an element.\",\n      \"restrictions\": [\n        \"line-style\"\n      ]\n    },\n    {\n      \"name\": \"column-rule-width\",\n      \"browsers\": [\n        \"E12\",\n        \"FF52\",\n        \"S9\",\n        \"C50\",\n        \"IE10\",\n        \"O11.1\"\n      ],\n      \"syntax\": \"<'border-width'>\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/column-rule-width\"\n        }\n      ],\n      \"description\": \"Sets the width of the rule between columns. Negative values are not allowed.\",\n      \"restrictions\": [\n        \"length\",\n        \"line-width\"\n      ]\n    },\n    {\n      \"name\": \"columns\",\n      \"browsers\": [\n        \"E12\",\n        \"FF52\",\n        \"S9\",\n        \"C50\",\n        \"IE10\",\n        \"O11.1\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The width depends on the values of other properties.\"\n        }\n      ],\n      \"syntax\": \"<'column-width'> || <'column-count'>\",\n      \"relevance\": 51,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/columns\"\n        }\n      ],\n      \"description\": \"A shorthand property which sets both 'column-width' and 'column-count'.\",\n      \"restrictions\": [\n        \"length\",\n        \"integer\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"column-span\",\n      \"browsers\": [\n        \"E12\",\n        \"FF71\",\n        \"S9\",\n        \"C50\",\n        \"IE10\",\n        \"O11.1\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"all\",\n          \"description\": \"The element spans across all columns. Content in the normal flow that appears before the element is automatically balanced across all columns before the element appear.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"The element does not span multiple columns.\"\n        }\n      ],\n      \"syntax\": \"none | all\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/column-span\"\n        }\n      ],\n      \"description\": \"Describes the page/column break behavior after the generated box.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"column-width\",\n      \"browsers\": [\n        \"E12\",\n        \"FF50\",\n        \"S9\",\n        \"C50\",\n        \"IE10\",\n        \"O11.1\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The width depends on the values of other properties.\"\n        }\n      ],\n      \"syntax\": \"<length> | auto\",\n      \"relevance\": 51,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/column-width\"\n        }\n      ],\n      \"description\": \"Describes the width of columns in multicol elements.\",\n      \"restrictions\": [\n        \"length\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"contain\",\n      \"browsers\": [\n        \"E79\",\n        \"FF69\",\n        \"S15.4\",\n        \"C52\",\n        \"O39\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"Indicates that the property has no effect.\"\n        },\n        {\n          \"name\": \"strict\",\n          \"description\": \"Turns on all forms of containment for the element.\"\n        },\n        {\n          \"name\": \"content\",\n          \"description\": \"All containment rules except size are applied to the element.\"\n        },\n        {\n          \"name\": \"size\",\n          \"description\": \"For properties that can have effects on more than just an element and its descendants, those effects don't escape the containing element.\"\n        },\n        {\n          \"name\": \"layout\",\n          \"description\": \"Turns on layout containment for the element.\"\n        },\n        {\n          \"name\": \"style\",\n          \"description\": \"Turns on style containment for the element.\"\n        },\n        {\n          \"name\": \"paint\",\n          \"description\": \"Turns on paint containment for the element.\"\n        }\n      ],\n      \"syntax\": \"none | strict | content | [ [ size || inline-size ] || layout || style || paint ]\",\n      \"relevance\": 58,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/contain\"\n        }\n      ],\n      \"description\": \"Indicates that an element and its contents are, as much as possible, independent of the rest of the document tree.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"content\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE8\",\n        \"O4\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"attr()\",\n          \"description\": \"The attr(n) function returns as a string the value of attribute n for the subject of the selector.\"\n        },\n        {\n          \"name\": \"counter(name)\",\n          \"description\": \"Counters are denoted by identifiers (see the 'counter-increment' and 'counter-reset' properties).\"\n        },\n        {\n          \"name\": \"icon\",\n          \"description\": \"The (pseudo-)element is replaced in its entirety by the resource referenced by its 'icon' property, and treated as a replaced element.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"On elements, this inhibits the children of the element from being rendered as children of this element, as if the element was empty. On pseudo-elements it causes the pseudo-element to have no content.\"\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"See http://www.w3.org/TR/css3-content/#content for computation rules.\"\n        },\n        {\n          \"name\": \"url()\"\n        }\n      ],\n      \"syntax\": \"normal | none | [ <content-replacement> | <content-list> ] [/ [ <string> | <counter> ]+ ]?\",\n      \"relevance\": 89,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/content\"\n        }\n      ],\n      \"description\": \"Determines which page-based occurrence of a given element is applied to a counter or string value.\",\n      \"restrictions\": [\n        \"string\",\n        \"url\"\n      ]\n    },\n    {\n      \"name\": \"counter-increment\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S3\",\n        \"C2\",\n        \"IE8\",\n        \"O9.2\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"This element does not alter the value of any counters.\"\n        }\n      ],\n      \"syntax\": \"[ <counter-name> <integer>? ]+ | none\",\n      \"relevance\": 54,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/counter-increment\"\n        }\n      ],\n      \"description\": \"Manipulate the value of existing counters.\",\n      \"restrictions\": [\n        \"identifier\",\n        \"integer\"\n      ]\n    },\n    {\n      \"name\": \"counter-reset\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S3\",\n        \"C2\",\n        \"IE8\",\n        \"O9.2\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"The counter is not modified.\"\n        }\n      ],\n      \"syntax\": \"[ <counter-name> <integer>? | <reversed-counter-name> <integer>? ]+ | none\",\n      \"relevance\": 54,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/counter-reset\"\n        }\n      ],\n      \"description\": \"Property accepts one or more names of counters (identifiers), each one optionally followed by an integer. The integer gives the value that the counter is set to on each occurrence of the element.\",\n      \"restrictions\": [\n        \"identifier\",\n        \"integer\"\n      ]\n    },\n    {\n      \"name\": \"cursor\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1.2\",\n        \"C1\",\n        \"IE4\",\n        \"O7\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"alias\",\n          \"description\": \"Indicates an alias of/shortcut to something is to be created. Often rendered as an arrow with a small curved arrow next to it.\"\n        },\n        {\n          \"name\": \"all-scroll\",\n          \"description\": \"Indicates that the something can be scrolled in any direction. Often rendered as arrows pointing up, down, left, and right with a dot in the middle.\"\n        },\n        {\n          \"name\": \"auto\",\n          \"description\": \"The UA determines the cursor to display based on the current context.\"\n        },\n        {\n          \"name\": \"cell\",\n          \"description\": \"Indicates that a cell or set of cells may be selected. Often rendered as a thick plus-sign with a dot in the middle.\"\n        },\n        {\n          \"name\": \"col-resize\",\n          \"description\": \"Indicates that the item/column can be resized horizontally. Often rendered as arrows pointing left and right with a vertical bar separating them.\"\n        },\n        {\n          \"name\": \"context-menu\",\n          \"description\": \"A context menu is available for the object under the cursor. Often rendered as an arrow with a small menu-like graphic next to it.\"\n        },\n        {\n          \"name\": \"copy\",\n          \"description\": \"Indicates something is to be copied. Often rendered as an arrow with a small plus sign next to it.\"\n        },\n        {\n          \"name\": \"crosshair\",\n          \"description\": \"A simple crosshair (e.g., short line segments resembling a '+' sign). Often used to indicate a two dimensional bitmap selection mode.\"\n        },\n        {\n          \"name\": \"default\",\n          \"description\": \"The platform-dependent default cursor. Often rendered as an arrow.\"\n        },\n        {\n          \"name\": \"e-resize\",\n          \"description\": \"Indicates that east edge is to be moved.\"\n        },\n        {\n          \"name\": \"ew-resize\",\n          \"description\": \"Indicates a bidirectional east-west resize cursor.\"\n        },\n        {\n          \"name\": \"grab\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1.2\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"Indicates that something can be grabbed.\"\n        },\n        {\n          \"name\": \"grabbing\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1.2\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"Indicates that something is being grabbed.\"\n        },\n        {\n          \"name\": \"help\",\n          \"description\": \"Help is available for the object under the cursor. Often rendered as a question mark or a balloon.\"\n        },\n        {\n          \"name\": \"move\",\n          \"description\": \"Indicates something is to be moved.\"\n        },\n        {\n          \"name\": \"-moz-grab\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1.2\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"Indicates that something can be grabbed.\"\n        },\n        {\n          \"name\": \"-moz-grabbing\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1.2\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"Indicates that something is being grabbed.\"\n        },\n        {\n          \"name\": \"-moz-zoom-in\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1.2\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"Indicates that something can be zoomed (magnified) in.\"\n        },\n        {\n          \"name\": \"-moz-zoom-out\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1.2\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"Indicates that something can be zoomed (magnified) out.\"\n        },\n        {\n          \"name\": \"ne-resize\",\n          \"description\": \"Indicates that movement starts from north-east corner.\"\n        },\n        {\n          \"name\": \"nesw-resize\",\n          \"description\": \"Indicates a bidirectional north-east/south-west cursor.\"\n        },\n        {\n          \"name\": \"no-drop\",\n          \"description\": \"Indicates that the dragged item cannot be dropped at the current cursor location. Often rendered as a hand or pointer with a small circle with a line through it.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"No cursor is rendered for the element.\"\n        },\n        {\n          \"name\": \"not-allowed\",\n          \"description\": \"Indicates that the requested action will not be carried out. Often rendered as a circle with a line through it.\"\n        },\n        {\n          \"name\": \"n-resize\",\n          \"description\": \"Indicates that north edge is to be moved.\"\n        },\n        {\n          \"name\": \"ns-resize\",\n          \"description\": \"Indicates a bidirectional north-south cursor.\"\n        },\n        {\n          \"name\": \"nw-resize\",\n          \"description\": \"Indicates that movement starts from north-west corner.\"\n        },\n        {\n          \"name\": \"nwse-resize\",\n          \"description\": \"Indicates a bidirectional north-west/south-east cursor.\"\n        },\n        {\n          \"name\": \"pointer\",\n          \"description\": \"The cursor is a pointer that indicates a link.\"\n        },\n        {\n          \"name\": \"progress\",\n          \"description\": \"A progress indicator. The program is performing some processing, but is different from 'wait' in that the user may still interact with the program. Often rendered as a spinning beach ball, or an arrow with a watch or hourglass.\"\n        },\n        {\n          \"name\": \"row-resize\",\n          \"description\": \"Indicates that the item/row can be resized vertically. Often rendered as arrows pointing up and down with a horizontal bar separating them.\"\n        },\n        {\n          \"name\": \"se-resize\",\n          \"description\": \"Indicates that movement starts from south-east corner.\"\n        },\n        {\n          \"name\": \"s-resize\",\n          \"description\": \"Indicates that south edge is to be moved.\"\n        },\n        {\n          \"name\": \"sw-resize\",\n          \"description\": \"Indicates that movement starts from south-west corner.\"\n        },\n        {\n          \"name\": \"text\",\n          \"description\": \"Indicates text that may be selected. Often rendered as a vertical I-beam.\"\n        },\n        {\n          \"name\": \"vertical-text\",\n          \"description\": \"Indicates vertical-text that may be selected. Often rendered as a horizontal I-beam.\"\n        },\n        {\n          \"name\": \"wait\",\n          \"description\": \"Indicates that the program is busy and the user should wait. Often rendered as a watch or hourglass.\"\n        },\n        {\n          \"name\": \"-webkit-grab\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1.2\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"Indicates that something can be grabbed.\"\n        },\n        {\n          \"name\": \"-webkit-grabbing\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1.2\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"Indicates that something is being grabbed.\"\n        },\n        {\n          \"name\": \"-webkit-zoom-in\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1.2\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"Indicates that something can be zoomed (magnified) in.\"\n        },\n        {\n          \"name\": \"-webkit-zoom-out\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1.2\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"Indicates that something can be zoomed (magnified) out.\"\n        },\n        {\n          \"name\": \"w-resize\",\n          \"description\": \"Indicates that west edge is to be moved.\"\n        },\n        {\n          \"name\": \"zoom-in\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1.2\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"Indicates that something can be zoomed (magnified) in.\"\n        },\n        {\n          \"name\": \"zoom-out\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1.2\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"Indicates that something can be zoomed (magnified) out.\"\n        }\n      ],\n      \"syntax\": \"[ [ <url> [ <x> <y> ]? , ]* [ auto | default | none | context-menu | help | pointer | progress | wait | cell | crosshair | text | vertical-text | alias | copy | move | no-drop | not-allowed | e-resize | n-resize | ne-resize | nw-resize | s-resize | se-resize | sw-resize | w-resize | ew-resize | ns-resize | nesw-resize | nwse-resize | col-resize | row-resize | all-scroll | zoom-in | zoom-out | grab | grabbing ] ]\",\n      \"relevance\": 91,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/cursor\"\n        }\n      ],\n      \"description\": \"Allows control over cursor appearance in an element\",\n      \"restrictions\": [\n        \"url\",\n        \"number\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"direction\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C2\",\n        \"IE5.5\",\n        \"O9.2\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"ltr\",\n          \"description\": \"Left-to-right direction.\"\n        },\n        {\n          \"name\": \"rtl\",\n          \"description\": \"Right-to-left direction.\"\n        }\n      ],\n      \"syntax\": \"ltr | rtl\",\n      \"relevance\": 71,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/direction\"\n        }\n      ],\n      \"description\": \"Specifies the inline base direction or directionality of any bidi paragraph, embedding, isolate, or override established by the box. Note: for HTML content use the 'dir' attribute and 'bdo' element rather than this property.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"display\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O7\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"block\",\n          \"description\": \"The element generates a block-level box\"\n        },\n        {\n          \"name\": \"contents\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"The element itself does not generate any boxes, but its children and pseudo-elements still generate boxes as normal.\"\n        },\n        {\n          \"name\": \"flex\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"The element generates a principal flex container box and establishes a flex formatting context.\"\n        },\n        {\n          \"name\": \"flexbox\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"The element lays out its contents using flow layout (block-and-inline layout). Standardized as 'flex'.\"\n        },\n        {\n          \"name\": \"flow-root\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"The element generates a block container box, and lays out its contents using flow layout.\"\n        },\n        {\n          \"name\": \"grid\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"The element generates a principal grid container box, and establishes a grid formatting context.\"\n        },\n        {\n          \"name\": \"inline\",\n          \"description\": \"The element generates an inline-level box.\"\n        },\n        {\n          \"name\": \"inline-block\",\n          \"description\": \"A block box, which itself is flowed as a single inline box, similar to a replaced element. The inside of an inline-block is formatted as a block box, and the box itself is formatted as an inline box.\"\n        },\n        {\n          \"name\": \"inline-flex\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"Inline-level flex container.\"\n        },\n        {\n          \"name\": \"inline-flexbox\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"Inline-level flex container. Standardized as 'inline-flex'\"\n        },\n        {\n          \"name\": \"inline-table\",\n          \"description\": \"Inline-level table wrapper box containing table box.\"\n        },\n        {\n          \"name\": \"list-item\",\n          \"description\": \"One or more block boxes and one marker box.\"\n        },\n        {\n          \"name\": \"-moz-box\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"The element lays out its contents using flow layout (block-and-inline layout). Standardized as 'flex'.\"\n        },\n        {\n          \"name\": \"-moz-deck\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ]\n        },\n        {\n          \"name\": \"-moz-grid\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ]\n        },\n        {\n          \"name\": \"-moz-grid-group\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ]\n        },\n        {\n          \"name\": \"-moz-grid-line\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ]\n        },\n        {\n          \"name\": \"-moz-groupbox\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ]\n        },\n        {\n          \"name\": \"-moz-inline-box\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"Inline-level flex container. Standardized as 'inline-flex'\"\n        },\n        {\n          \"name\": \"-moz-inline-grid\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ]\n        },\n        {\n          \"name\": \"-moz-inline-stack\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ]\n        },\n        {\n          \"name\": \"-moz-marker\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ]\n        },\n        {\n          \"name\": \"-moz-popup\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ]\n        },\n        {\n          \"name\": \"-moz-stack\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ]\n        },\n        {\n          \"name\": \"-ms-flexbox\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"The element lays out its contents using flow layout (block-and-inline layout). Standardized as 'flex'.\"\n        },\n        {\n          \"name\": \"-ms-grid\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"The element generates a principal grid container box, and establishes a grid formatting context.\"\n        },\n        {\n          \"name\": \"-ms-inline-flexbox\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"Inline-level flex container. Standardized as 'inline-flex'\"\n        },\n        {\n          \"name\": \"-ms-inline-grid\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"Inline-level grid container.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"The element and its descendants generates no boxes.\"\n        },\n        {\n          \"name\": \"ruby\",\n          \"description\": \"The element generates a principal ruby container box, and establishes a ruby formatting context.\"\n        },\n        {\n          \"name\": \"ruby-base\"\n        },\n        {\n          \"name\": \"ruby-base-container\"\n        },\n        {\n          \"name\": \"ruby-text\"\n        },\n        {\n          \"name\": \"ruby-text-container\"\n        },\n        {\n          \"name\": \"run-in\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"The element generates a run-in box. Run-in elements act like inlines or blocks, depending on the surrounding elements.\"\n        },\n        {\n          \"name\": \"table\",\n          \"description\": \"The element generates a principal table wrapper box containing an additionally-generated table box, and establishes a table formatting context.\"\n        },\n        {\n          \"name\": \"table-caption\"\n        },\n        {\n          \"name\": \"table-cell\"\n        },\n        {\n          \"name\": \"table-column\"\n        },\n        {\n          \"name\": \"table-column-group\"\n        },\n        {\n          \"name\": \"table-footer-group\"\n        },\n        {\n          \"name\": \"table-header-group\"\n        },\n        {\n          \"name\": \"table-row\"\n        },\n        {\n          \"name\": \"table-row-group\"\n        },\n        {\n          \"name\": \"-webkit-box\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"The element lays out its contents using flow layout (block-and-inline layout). Standardized as 'flex'.\"\n        },\n        {\n          \"name\": \"-webkit-flex\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"The element lays out its contents using flow layout (block-and-inline layout).\"\n        },\n        {\n          \"name\": \"-webkit-inline-box\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"Inline-level flex container. Standardized as 'inline-flex'\"\n        },\n        {\n          \"name\": \"-webkit-inline-flex\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"Inline-level flex container.\"\n        }\n      ],\n      \"syntax\": \"[ <display-outside> || <display-inside> ] | <display-listitem> | <display-internal> | <display-box> | <display-legacy>\",\n      \"relevance\": 96,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/display\"\n        }\n      ],\n      \"description\": \"In combination with 'float' and 'position', determines the type of box or boxes that are generated for an element.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"empty-cells\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1.2\",\n        \"C1\",\n        \"IE8\",\n        \"O4\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"hide\",\n          \"description\": \"No borders or backgrounds are drawn around/behind empty cells.\"\n        },\n        {\n          \"name\": \"-moz-show-background\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1.2\",\n            \"C1\",\n            \"IE8\",\n            \"O4\"\n          ]\n        },\n        {\n          \"name\": \"show\",\n          \"description\": \"Borders and backgrounds are drawn around/behind empty cells (like normal cells).\"\n        }\n      ],\n      \"syntax\": \"show | hide\",\n      \"relevance\": 51,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/empty-cells\"\n        }\n      ],\n      \"description\": \"In the separated borders model, this property controls the rendering of borders and backgrounds around cells that have no visible content.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"enable-background\",\n      \"values\": [\n        {\n          \"name\": \"accumulate\",\n          \"description\": \"If the ancestor container element has a property of new, then all graphics elements within the current container are rendered both on the parent's background image and onto the target.\"\n        },\n        {\n          \"name\": \"new\",\n          \"description\": \"Create a new background image canvas. All children of the current container element can access the background, and they will be rendered onto both the parent's background image canvas in addition to the target device.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Deprecated. Use 'isolation' property instead when support allows. Specifies how the accumulation of the background image is managed.\",\n      \"restrictions\": [\n        \"integer\",\n        \"length\",\n        \"percentage\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"fallback\",\n      \"browsers\": [\n        \"FF33\"\n      ],\n      \"atRule\": \"@counter-style\",\n      \"syntax\": \"<counter-style-name>\",\n      \"relevance\": 50,\n      \"description\": \"@counter-style descriptor. Specifies a fallback counter style to be used when the current counter style can't create a representation for a given counter value.\",\n      \"restrictions\": [\n        \"identifier\"\n      ]\n    },\n    {\n      \"name\": \"fill\",\n      \"browsers\": [\n        \"E80\",\n        \"FF72\",\n        \"S13.1\",\n        \"C80\",\n        \"O67\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"url()\",\n          \"description\": \"A URL reference to a paint server element, which is an element that defines a paint server: 'hatch', 'linearGradient', 'mesh', 'pattern', 'radialGradient' and 'solidcolor'.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"No paint is applied in this layer.\"\n        }\n      ],\n      \"relevance\": 77,\n      \"description\": \"Paints the interior of the given graphical element.\",\n      \"restrictions\": [\n        \"color\",\n        \"enum\",\n        \"url\"\n      ]\n    },\n    {\n      \"name\": \"fill-opacity\",\n      \"browsers\": [\n        \"E80\",\n        \"FF72\",\n        \"S13.1\",\n        \"C80\",\n        \"O67\"\n      ],\n      \"relevance\": 52,\n      \"description\": \"Specifies the opacity of the painting operation used to paint the interior the current object.\",\n      \"restrictions\": [\n        \"number(0-1)\"\n      ]\n    },\n    {\n      \"name\": \"fill-rule\",\n      \"browsers\": [\n        \"E80\",\n        \"FF72\",\n        \"S13.1\",\n        \"C80\",\n        \"O67\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"evenodd\",\n          \"description\": \"Determines the 'insideness' of a point on the canvas by drawing a ray from that point to infinity in any direction and counting the number of path segments from the given shape that the ray crosses.\"\n        },\n        {\n          \"name\": \"nonzero\",\n          \"description\": \"Determines the 'insideness' of a point on the canvas by drawing a ray from that point to infinity in any direction and then examining the places where a segment of the shape crosses the ray.\"\n        }\n      ],\n      \"relevance\": 51,\n      \"description\": \"Indicates the algorithm (or winding rule) which is to be used to determine what parts of the canvas are included inside the shape.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"filter\",\n      \"browsers\": [\n        \"E12\",\n        \"FF35\",\n        \"S9.1\",\n        \"C53\",\n        \"O40\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"No filter effects are applied.\"\n        },\n        {\n          \"name\": \"blur()\",\n          \"description\": \"Applies a Gaussian blur to the input image.\"\n        },\n        {\n          \"name\": \"brightness()\",\n          \"description\": \"Applies a linear multiplier to input image, making it appear more or less bright.\"\n        },\n        {\n          \"name\": \"contrast()\",\n          \"description\": \"Adjusts the contrast of the input.\"\n        },\n        {\n          \"name\": \"drop-shadow()\",\n          \"description\": \"Applies a drop shadow effect to the input image.\"\n        },\n        {\n          \"name\": \"grayscale()\",\n          \"description\": \"Converts the input image to grayscale.\"\n        },\n        {\n          \"name\": \"hue-rotate()\",\n          \"description\": \"Applies a hue rotation on the input image. \"\n        },\n        {\n          \"name\": \"invert()\",\n          \"description\": \"Inverts the samples in the input image.\"\n        },\n        {\n          \"name\": \"opacity()\",\n          \"description\": \"Applies transparency to the samples in the input image.\"\n        },\n        {\n          \"name\": \"saturate()\",\n          \"description\": \"Saturates the input image.\"\n        },\n        {\n          \"name\": \"sepia()\",\n          \"description\": \"Converts the input image to sepia.\"\n        },\n        {\n          \"name\": \"url()\",\n          \"browsers\": [\n            \"E12\",\n            \"FF35\",\n            \"S9.1\",\n            \"C53\",\n            \"O40\"\n          ],\n          \"description\": \"A filter reference to a <filter> element.\"\n        }\n      ],\n      \"syntax\": \"none | <filter-function-list>\",\n      \"relevance\": 70,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/filter\"\n        }\n      ],\n      \"description\": \"Processes an element's rendering before it is displayed in the document, by applying one or more filter effects.\",\n      \"restrictions\": [\n        \"enum\",\n        \"url\"\n      ]\n    },\n    {\n      \"name\": \"flex\",\n      \"browsers\": [\n        \"E12\",\n        \"FF20\",\n        \"S9\",\n        \"C29\",\n        \"IE11\",\n        \"O12.1\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Retrieves the value of the main size property as the used 'flex-basis'.\"\n        },\n        {\n          \"name\": \"content\",\n          \"browsers\": [\n            \"E12\",\n            \"FF20\",\n            \"S9\",\n            \"C29\",\n            \"IE11\",\n            \"O12.1\"\n          ],\n          \"description\": \"Indicates automatic sizing, based on the flex item's content.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"Expands to '0 0 auto'.\"\n        }\n      ],\n      \"syntax\": \"none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]\",\n      \"relevance\": 81,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/flex\"\n        }\n      ],\n      \"description\": \"Specifies the components of a flexible length: the flex grow factor and flex shrink factor, and the flex basis.\",\n      \"restrictions\": [\n        \"length\",\n        \"number\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"flex-basis\",\n      \"browsers\": [\n        \"E12\",\n        \"FF22\",\n        \"S9\",\n        \"C29\",\n        \"IE11\",\n        \"O12.1\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Retrieves the value of the main size property as the used 'flex-basis'.\"\n        },\n        {\n          \"name\": \"content\",\n          \"browsers\": [\n            \"E12\",\n            \"FF22\",\n            \"S9\",\n            \"C29\",\n            \"IE11\",\n            \"O12.1\"\n          ],\n          \"description\": \"Indicates automatic sizing, based on the flex item's content.\"\n        }\n      ],\n      \"syntax\": \"content | <'width'>\",\n      \"relevance\": 70,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/flex-basis\"\n        }\n      ],\n      \"description\": \"Sets the flex basis.\",\n      \"restrictions\": [\n        \"length\",\n        \"number\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"flex-direction\",\n      \"browsers\": [\n        \"E12\",\n        \"FF81\",\n        \"S9\",\n        \"C29\",\n        \"IE11\",\n        \"O12.1\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"column\",\n          \"description\": \"The flex container's main axis has the same orientation as the block axis of the current writing mode.\"\n        },\n        {\n          \"name\": \"column-reverse\",\n          \"description\": \"Same as 'column', except the main-start and main-end directions are swapped.\"\n        },\n        {\n          \"name\": \"row\",\n          \"description\": \"The flex container's main axis has the same orientation as the inline axis of the current writing mode.\"\n        },\n        {\n          \"name\": \"row-reverse\",\n          \"description\": \"Same as 'row', except the main-start and main-end directions are swapped.\"\n        }\n      ],\n      \"syntax\": \"row | row-reverse | column | column-reverse\",\n      \"relevance\": 84,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/flex-direction\"\n        }\n      ],\n      \"description\": \"Specifies how flex items are placed in the flex container, by setting the direction of the flex container's main axis.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"flex-flow\",\n      \"browsers\": [\n        \"E12\",\n        \"FF28\",\n        \"S9\",\n        \"C29\",\n        \"IE11\",\n        \"O12.1\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"column\",\n          \"description\": \"The flex container's main axis has the same orientation as the block axis of the current writing mode.\"\n        },\n        {\n          \"name\": \"column-reverse\",\n          \"description\": \"Same as 'column', except the main-start and main-end directions are swapped.\"\n        },\n        {\n          \"name\": \"nowrap\",\n          \"description\": \"The flex container is single-line.\"\n        },\n        {\n          \"name\": \"row\",\n          \"description\": \"The flex container's main axis has the same orientation as the inline axis of the current writing mode.\"\n        },\n        {\n          \"name\": \"row-reverse\",\n          \"description\": \"Same as 'row', except the main-start and main-end directions are swapped.\"\n        },\n        {\n          \"name\": \"wrap\",\n          \"description\": \"The flexbox is multi-line.\"\n        },\n        {\n          \"name\": \"wrap-reverse\",\n          \"description\": \"Same as 'wrap', except the cross-start and cross-end directions are swapped.\"\n        }\n      ],\n      \"syntax\": \"<'flex-direction'> || <'flex-wrap'>\",\n      \"relevance\": 64,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/flex-flow\"\n        }\n      ],\n      \"description\": \"Specifies how flexbox items are placed in the flexbox.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"flex-grow\",\n      \"browsers\": [\n        \"E12\",\n        \"FF20\",\n        \"S9\",\n        \"C29\",\n        \"IE11\",\n        \"O12.1\"\n      ],\n      \"syntax\": \"<number>\",\n      \"relevance\": 77,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/flex-grow\"\n        }\n      ],\n      \"description\": \"Sets the flex grow factor. Negative numbers are invalid.\",\n      \"restrictions\": [\n        \"number\"\n      ]\n    },\n    {\n      \"name\": \"flex-shrink\",\n      \"browsers\": [\n        \"E12\",\n        \"FF20\",\n        \"S9\",\n        \"C29\",\n        \"IE10\",\n        \"O12.1\"\n      ],\n      \"syntax\": \"<number>\",\n      \"relevance\": 76,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/flex-shrink\"\n        }\n      ],\n      \"description\": \"Sets the flex shrink factor. Negative numbers are invalid.\",\n      \"restrictions\": [\n        \"number\"\n      ]\n    },\n    {\n      \"name\": \"flex-wrap\",\n      \"browsers\": [\n        \"E12\",\n        \"FF28\",\n        \"S9\",\n        \"C29\",\n        \"IE11\",\n        \"O17\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"nowrap\",\n          \"description\": \"The flex container is single-line.\"\n        },\n        {\n          \"name\": \"wrap\",\n          \"description\": \"The flexbox is multi-line.\"\n        },\n        {\n          \"name\": \"wrap-reverse\",\n          \"description\": \"Same as 'wrap', except the cross-start and cross-end directions are swapped.\"\n        }\n      ],\n      \"syntax\": \"nowrap | wrap | wrap-reverse\",\n      \"relevance\": 82,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/flex-wrap\"\n        }\n      ],\n      \"description\": \"Controls whether the flex container is single-line or multi-line, and the direction of the cross-axis, which determines the direction new lines are stacked in.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"float\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O7\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"inline-end\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"A keyword indicating that the element must float on the end side of its containing block. That is the right side with ltr scripts, and the left side with rtl scripts.\"\n        },\n        {\n          \"name\": \"inline-start\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"A keyword indicating that the element must float on the start side of its containing block. That is the left side with ltr scripts, and the right side with rtl scripts.\"\n        },\n        {\n          \"name\": \"left\",\n          \"description\": \"The element generates a block box that is floated to the left. Content flows on the right side of the box, starting at the top (subject to the 'clear' property).\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"The box is not floated.\"\n        },\n        {\n          \"name\": \"right\",\n          \"description\": \"Similar to 'left', except the box is floated to the right, and content flows on the left side of the box, starting at the top.\"\n        }\n      ],\n      \"syntax\": \"left | right | none | inline-start | inline-end\",\n      \"relevance\": 89,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/float\"\n        }\n      ],\n      \"description\": \"Specifies how a box should be floated. It may be set for any element, but only applies to elements that generate boxes that are not absolutely positioned.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"flood-color\",\n      \"browsers\": [\n        \"E12\",\n        \"FF3\",\n        \"S6\",\n        \"C5\",\n        \"IE\",\n        \"O15\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Indicates what color to use to flood the current filter primitive subregion.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"flood-opacity\",\n      \"browsers\": [\n        \"E12\",\n        \"FF3\",\n        \"S6\",\n        \"C5\",\n        \"IE\",\n        \"O15\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Indicates what opacity to use to flood the current filter primitive subregion.\",\n      \"restrictions\": [\n        \"number(0-1)\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"font\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE3\",\n        \"O3.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"100\",\n          \"description\": \"Thin\"\n        },\n        {\n          \"name\": \"200\",\n          \"description\": \"Extra Light (Ultra Light)\"\n        },\n        {\n          \"name\": \"300\",\n          \"description\": \"Light\"\n        },\n        {\n          \"name\": \"400\",\n          \"description\": \"Normal\"\n        },\n        {\n          \"name\": \"500\",\n          \"description\": \"Medium\"\n        },\n        {\n          \"name\": \"600\",\n          \"description\": \"Semi Bold (Demi Bold)\"\n        },\n        {\n          \"name\": \"700\",\n          \"description\": \"Bold\"\n        },\n        {\n          \"name\": \"800\",\n          \"description\": \"Extra Bold (Ultra Bold)\"\n        },\n        {\n          \"name\": \"900\",\n          \"description\": \"Black (Heavy)\"\n        },\n        {\n          \"name\": \"bold\",\n          \"description\": \"Same as 700\"\n        },\n        {\n          \"name\": \"bolder\",\n          \"description\": \"Specifies the weight of the face bolder than the inherited value.\"\n        },\n        {\n          \"name\": \"caption\",\n          \"description\": \"The font used for captioned controls (e.g., buttons, drop-downs, etc.).\"\n        },\n        {\n          \"name\": \"icon\",\n          \"description\": \"The font used to label icons.\"\n        },\n        {\n          \"name\": \"italic\",\n          \"description\": \"Selects a font that is labeled 'italic', or, if that is not available, one labeled 'oblique'.\"\n        },\n        {\n          \"name\": \"large\"\n        },\n        {\n          \"name\": \"larger\"\n        },\n        {\n          \"name\": \"lighter\",\n          \"description\": \"Specifies the weight of the face lighter than the inherited value.\"\n        },\n        {\n          \"name\": \"medium\"\n        },\n        {\n          \"name\": \"menu\",\n          \"description\": \"The font used in menus (e.g., dropdown menus and menu lists).\"\n        },\n        {\n          \"name\": \"message-box\",\n          \"description\": \"The font used in dialog boxes.\"\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"Specifies a face that is not labeled as a small-caps font.\"\n        },\n        {\n          \"name\": \"oblique\",\n          \"description\": \"Selects a font that is labeled 'oblique'.\"\n        },\n        {\n          \"name\": \"small\"\n        },\n        {\n          \"name\": \"small-caps\",\n          \"description\": \"Specifies a font that is labeled as a small-caps font. If a genuine small-caps font is not available, user agents should simulate a small-caps font.\"\n        },\n        {\n          \"name\": \"small-caption\",\n          \"description\": \"The font used for labeling small controls.\"\n        },\n        {\n          \"name\": \"smaller\"\n        },\n        {\n          \"name\": \"status-bar\",\n          \"description\": \"The font used in window status bars.\"\n        },\n        {\n          \"name\": \"x-large\"\n        },\n        {\n          \"name\": \"x-small\"\n        },\n        {\n          \"name\": \"xx-large\"\n        },\n        {\n          \"name\": \"xx-small\"\n        }\n      ],\n      \"syntax\": \"[ [ <'font-style'> || <font-variant-css21> || <'font-weight'> || <'font-stretch'> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'> ] | caption | icon | menu | message-box | small-caption | status-bar\",\n      \"relevance\": 83,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/font\"\n        }\n      ],\n      \"description\": \"Shorthand property for setting 'font-style', 'font-variant', 'font-weight', 'font-size', 'line-height', and 'font-family', at the same place in the style sheet. The syntax of this property is based on a traditional typographical shorthand notation to set multiple properties related to fonts.\",\n      \"restrictions\": [\n        \"font\"\n      ]\n    },\n    {\n      \"name\": \"font-family\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE3\",\n        \"O3.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif\"\n        },\n        {\n          \"name\": \"Arial, Helvetica, sans-serif\"\n        },\n        {\n          \"name\": \"Cambria, Cochin, Georgia, Times, 'Times New Roman', serif\"\n        },\n        {\n          \"name\": \"'Courier New', Courier, monospace\"\n        },\n        {\n          \"name\": \"cursive\"\n        },\n        {\n          \"name\": \"fantasy\"\n        },\n        {\n          \"name\": \"'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif\"\n        },\n        {\n          \"name\": \"Georgia, 'Times New Roman', Times, serif\"\n        },\n        {\n          \"name\": \"'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif\"\n        },\n        {\n          \"name\": \"Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif\"\n        },\n        {\n          \"name\": \"'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif\"\n        },\n        {\n          \"name\": \"monospace\"\n        },\n        {\n          \"name\": \"sans-serif\"\n        },\n        {\n          \"name\": \"'Segoe UI', Tahoma, Geneva, Verdana, sans-serif\"\n        },\n        {\n          \"name\": \"serif\"\n        },\n        {\n          \"name\": \"'Times New Roman', Times, serif\"\n        },\n        {\n          \"name\": \"'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif\"\n        },\n        {\n          \"name\": \"Verdana, Geneva, Tahoma, sans-serif\"\n        }\n      ],\n      \"atRule\": \"@font-face\",\n      \"syntax\": \"<family-name>\",\n      \"relevance\": 93,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/font-family\"\n        }\n      ],\n      \"description\": \"Specifies a prioritized list of font family names or generic family names. A user agent iterates through the list of family names until it matches an available font that contains a glyph for the character to be rendered.\",\n      \"restrictions\": [\n        \"font\"\n      ]\n    },\n    {\n      \"name\": \"font-feature-settings\",\n      \"browsers\": [\n        \"E15\",\n        \"FF34\",\n        \"S9.1\",\n        \"C48\",\n        \"IE10\",\n        \"O35\"\n      ],\n      \"values\": [\n        {\n          \"name\": '\"aalt\"',\n          \"description\": \"Access All Alternates.\"\n        },\n        {\n          \"name\": '\"abvf\"',\n          \"description\": \"Above-base Forms. Required in Khmer script.\"\n        },\n        {\n          \"name\": '\"abvm\"',\n          \"description\": \"Above-base Mark Positioning. Required in Indic scripts.\"\n        },\n        {\n          \"name\": '\"abvs\"',\n          \"description\": \"Above-base Substitutions. Required in Indic scripts.\"\n        },\n        {\n          \"name\": '\"afrc\"',\n          \"description\": \"Alternative Fractions.\"\n        },\n        {\n          \"name\": '\"akhn\"',\n          \"description\": \"Akhand. Required in most Indic scripts.\"\n        },\n        {\n          \"name\": '\"blwf\"',\n          \"description\": \"Below-base Form. Required in a number of Indic scripts.\"\n        },\n        {\n          \"name\": '\"blwm\"',\n          \"description\": \"Below-base Mark Positioning. Required in Indic scripts.\"\n        },\n        {\n          \"name\": '\"blws\"',\n          \"description\": \"Below-base Substitutions. Required in Indic scripts.\"\n        },\n        {\n          \"name\": '\"calt\"',\n          \"description\": \"Contextual Alternates.\"\n        },\n        {\n          \"name\": '\"case\"',\n          \"description\": \"Case-Sensitive Forms. Applies only to European scripts; particularly prominent in Spanish-language setting.\"\n        },\n        {\n          \"name\": '\"ccmp\"',\n          \"description\": \"Glyph Composition/Decomposition.\"\n        },\n        {\n          \"name\": '\"cfar\"',\n          \"description\": \"Conjunct Form After Ro. Required in Khmer scripts.\"\n        },\n        {\n          \"name\": '\"cjct\"',\n          \"description\": \"Conjunct Forms. Required in Indic scripts that show similarity to Devanagari.\"\n        },\n        {\n          \"name\": '\"clig\"',\n          \"description\": \"Contextual Ligatures.\"\n        },\n        {\n          \"name\": '\"cpct\"',\n          \"description\": \"Centered CJK Punctuation. Used primarily in Chinese fonts.\"\n        },\n        {\n          \"name\": '\"cpsp\"',\n          \"description\": \"Capital Spacing. Should not be used in connecting scripts (e.g. most Arabic).\"\n        },\n        {\n          \"name\": '\"cswh\"',\n          \"description\": \"Contextual Swash.\"\n        },\n        {\n          \"name\": '\"curs\"',\n          \"description\": \"Cursive Positioning. Can be used in any cursive script.\"\n        },\n        {\n          \"name\": '\"c2pc\"',\n          \"description\": \"Petite Capitals From Capitals. Applies only to bicameral scripts.\"\n        },\n        {\n          \"name\": '\"c2sc\"',\n          \"description\": \"Small Capitals From Capitals. Applies only to bicameral scripts.\"\n        },\n        {\n          \"name\": '\"dist\"',\n          \"description\": \"Distances. Required in Indic scripts.\"\n        },\n        {\n          \"name\": '\"dlig\"',\n          \"description\": \"Discretionary ligatures.\"\n        },\n        {\n          \"name\": '\"dnom\"',\n          \"description\": \"Denominators.\"\n        },\n        {\n          \"name\": '\"dtls\"',\n          \"description\": \"Dotless Forms. Applied to math formula layout.\"\n        },\n        {\n          \"name\": '\"expt\"',\n          \"description\": \"Expert Forms. Applies only to Japanese.\"\n        },\n        {\n          \"name\": '\"falt\"',\n          \"description\": \"Final Glyph on Line Alternates. Can be used in any cursive script.\"\n        },\n        {\n          \"name\": '\"fin2\"',\n          \"description\": \"Terminal Form #2. Used only with the Syriac script.\"\n        },\n        {\n          \"name\": '\"fin3\"',\n          \"description\": \"Terminal Form #3. Used only with the Syriac script.\"\n        },\n        {\n          \"name\": '\"fina\"',\n          \"description\": \"Terminal Forms. Can be used in any alphabetic script.\"\n        },\n        {\n          \"name\": '\"flac\"',\n          \"description\": \"Flattened ascent forms. Applied to math formula layout.\"\n        },\n        {\n          \"name\": '\"frac\"',\n          \"description\": \"Fractions.\"\n        },\n        {\n          \"name\": '\"fwid\"',\n          \"description\": \"Full Widths. Applies to any script which can use monospaced forms.\"\n        },\n        {\n          \"name\": '\"half\"',\n          \"description\": \"Half Forms. Required in Indic scripts that show similarity to Devanagari.\"\n        },\n        {\n          \"name\": '\"haln\"',\n          \"description\": \"Halant Forms. Required in Indic scripts.\"\n        },\n        {\n          \"name\": '\"halt\"',\n          \"description\": \"Alternate Half Widths. Used only in CJKV fonts.\"\n        },\n        {\n          \"name\": '\"hist\"',\n          \"description\": \"Historical Forms.\"\n        },\n        {\n          \"name\": '\"hkna\"',\n          \"description\": \"Horizontal Kana Alternates. Applies only to fonts that support kana (hiragana and katakana).\"\n        },\n        {\n          \"name\": '\"hlig\"',\n          \"description\": \"Historical Ligatures.\"\n        },\n        {\n          \"name\": '\"hngl\"',\n          \"description\": \"Hangul. Korean only.\"\n        },\n        {\n          \"name\": '\"hojo\"',\n          \"description\": \"Hojo Kanji Forms (JIS X 0212-1990 Kanji Forms). Used only with Kanji script.\"\n        },\n        {\n          \"name\": '\"hwid\"',\n          \"description\": \"Half Widths. Generally used only in CJKV fonts.\"\n        },\n        {\n          \"name\": '\"init\"',\n          \"description\": \"Initial Forms. Can be used in any alphabetic script.\"\n        },\n        {\n          \"name\": '\"isol\"',\n          \"description\": \"Isolated Forms. Can be used in any cursive script.\"\n        },\n        {\n          \"name\": '\"ital\"',\n          \"description\": \"Italics. Applies mostly to Latin; note that many non-Latin fonts contain Latin as well.\"\n        },\n        {\n          \"name\": '\"jalt\"',\n          \"description\": \"Justification Alternates. Can be used in any cursive script.\"\n        },\n        {\n          \"name\": '\"jp78\"',\n          \"description\": \"JIS78 Forms. Applies only to Japanese.\"\n        },\n        {\n          \"name\": '\"jp83\"',\n          \"description\": \"JIS83 Forms. Applies only to Japanese.\"\n        },\n        {\n          \"name\": '\"jp90\"',\n          \"description\": \"JIS90 Forms. Applies only to Japanese.\"\n        },\n        {\n          \"name\": '\"jp04\"',\n          \"description\": \"JIS2004 Forms. Applies only to Japanese.\"\n        },\n        {\n          \"name\": '\"kern\"',\n          \"description\": \"Kerning.\"\n        },\n        {\n          \"name\": '\"lfbd\"',\n          \"description\": \"Left Bounds.\"\n        },\n        {\n          \"name\": '\"liga\"',\n          \"description\": \"Standard Ligatures.\"\n        },\n        {\n          \"name\": '\"ljmo\"',\n          \"description\": \"Leading Jamo Forms. Required for Hangul script when Ancient Hangul writing system is supported.\"\n        },\n        {\n          \"name\": '\"lnum\"',\n          \"description\": \"Lining Figures.\"\n        },\n        {\n          \"name\": '\"locl\"',\n          \"description\": \"Localized Forms.\"\n        },\n        {\n          \"name\": '\"ltra\"',\n          \"description\": \"Left-to-right glyph alternates.\"\n        },\n        {\n          \"name\": '\"ltrm\"',\n          \"description\": \"Left-to-right mirrored forms.\"\n        },\n        {\n          \"name\": '\"mark\"',\n          \"description\": \"Mark Positioning.\"\n        },\n        {\n          \"name\": '\"med2\"',\n          \"description\": \"Medial Form #2. Used only with the Syriac script.\"\n        },\n        {\n          \"name\": '\"medi\"',\n          \"description\": \"Medial Forms.\"\n        },\n        {\n          \"name\": '\"mgrk\"',\n          \"description\": \"Mathematical Greek.\"\n        },\n        {\n          \"name\": '\"mkmk\"',\n          \"description\": \"Mark to Mark Positioning.\"\n        },\n        {\n          \"name\": '\"nalt\"',\n          \"description\": \"Alternate Annotation Forms.\"\n        },\n        {\n          \"name\": '\"nlck\"',\n          \"description\": \"NLC Kanji Forms. Used only with Kanji script.\"\n        },\n        {\n          \"name\": '\"nukt\"',\n          \"description\": \"Nukta Forms. Required in Indic scripts..\"\n        },\n        {\n          \"name\": '\"numr\"',\n          \"description\": \"Numerators.\"\n        },\n        {\n          \"name\": '\"onum\"',\n          \"description\": \"Oldstyle Figures.\"\n        },\n        {\n          \"name\": '\"opbd\"',\n          \"description\": \"Optical Bounds.\"\n        },\n        {\n          \"name\": '\"ordn\"',\n          \"description\": \"Ordinals. Applies mostly to Latin script.\"\n        },\n        {\n          \"name\": '\"ornm\"',\n          \"description\": \"Ornaments.\"\n        },\n        {\n          \"name\": '\"palt\"',\n          \"description\": \"Proportional Alternate Widths. Used mostly in CJKV fonts.\"\n        },\n        {\n          \"name\": '\"pcap\"',\n          \"description\": \"Petite Capitals.\"\n        },\n        {\n          \"name\": '\"pkna\"',\n          \"description\": \"Proportional Kana. Generally used only in Japanese fonts.\"\n        },\n        {\n          \"name\": '\"pnum\"',\n          \"description\": \"Proportional Figures.\"\n        },\n        {\n          \"name\": '\"pref\"',\n          \"description\": \"Pre-base Forms. Required in Khmer and Myanmar (Burmese) scripts and southern Indic scripts that may display a pre-base form of Ra.\"\n        },\n        {\n          \"name\": '\"pres\"',\n          \"description\": \"Pre-base Substitutions. Required in Indic scripts.\"\n        },\n        {\n          \"name\": '\"pstf\"',\n          \"description\": \"Post-base Forms. Required in scripts of south and southeast Asia that have post-base forms for consonants eg: Gurmukhi, Malayalam, Khmer.\"\n        },\n        {\n          \"name\": '\"psts\"',\n          \"description\": \"Post-base Substitutions.\"\n        },\n        {\n          \"name\": '\"pwid\"',\n          \"description\": \"Proportional Widths.\"\n        },\n        {\n          \"name\": '\"qwid\"',\n          \"description\": \"Quarter Widths. Generally used only in CJKV fonts.\"\n        },\n        {\n          \"name\": '\"rand\"',\n          \"description\": \"Randomize.\"\n        },\n        {\n          \"name\": '\"rclt\"',\n          \"description\": \"Required Contextual Alternates. May apply to any script, but is especially important for many styles of Arabic.\"\n        },\n        {\n          \"name\": '\"rlig\"',\n          \"description\": \"Required Ligatures. Applies to Arabic and Syriac. May apply to some other scripts.\"\n        },\n        {\n          \"name\": '\"rkrf\"',\n          \"description\": \"Rakar Forms. Required in Devanagari and Gujarati scripts.\"\n        },\n        {\n          \"name\": '\"rphf\"',\n          \"description\": \"Reph Form. Required in Indic scripts. E.g. Devanagari, Kannada.\"\n        },\n        {\n          \"name\": '\"rtbd\"',\n          \"description\": \"Right Bounds.\"\n        },\n        {\n          \"name\": '\"rtla\"',\n          \"description\": \"Right-to-left alternates.\"\n        },\n        {\n          \"name\": '\"rtlm\"',\n          \"description\": \"Right-to-left mirrored forms.\"\n        },\n        {\n          \"name\": '\"ruby\"',\n          \"description\": \"Ruby Notation Forms. Applies only to Japanese.\"\n        },\n        {\n          \"name\": '\"salt\"',\n          \"description\": \"Stylistic Alternates.\"\n        },\n        {\n          \"name\": '\"sinf\"',\n          \"description\": \"Scientific Inferiors.\"\n        },\n        {\n          \"name\": '\"size\"',\n          \"description\": \"Optical size.\"\n        },\n        {\n          \"name\": '\"smcp\"',\n          \"description\": \"Small Capitals. Applies only to bicameral scripts.\"\n        },\n        {\n          \"name\": '\"smpl\"',\n          \"description\": \"Simplified Forms. Applies only to Chinese and Japanese.\"\n        },\n        {\n          \"name\": '\"ssty\"',\n          \"description\": \"Math script style alternates.\"\n        },\n        {\n          \"name\": '\"stch\"',\n          \"description\": \"Stretching Glyph Decomposition.\"\n        },\n        {\n          \"name\": '\"subs\"',\n          \"description\": \"Subscript.\"\n        },\n        {\n          \"name\": '\"sups\"',\n          \"description\": \"Superscript.\"\n        },\n        {\n          \"name\": '\"swsh\"',\n          \"description\": \"Swash. Does not apply to ideographic scripts.\"\n        },\n        {\n          \"name\": '\"titl\"',\n          \"description\": \"Titling.\"\n        },\n        {\n          \"name\": '\"tjmo\"',\n          \"description\": \"Trailing Jamo Forms. Required for Hangul script when Ancient Hangul writing system is supported.\"\n        },\n        {\n          \"name\": '\"tnam\"',\n          \"description\": \"Traditional Name Forms. Applies only to Japanese.\"\n        },\n        {\n          \"name\": '\"tnum\"',\n          \"description\": \"Tabular Figures.\"\n        },\n        {\n          \"name\": '\"trad\"',\n          \"description\": \"Traditional Forms. Applies only to Chinese and Japanese.\"\n        },\n        {\n          \"name\": '\"twid\"',\n          \"description\": \"Third Widths. Generally used only in CJKV fonts.\"\n        },\n        {\n          \"name\": '\"unic\"',\n          \"description\": \"Unicase.\"\n        },\n        {\n          \"name\": '\"valt\"',\n          \"description\": \"Alternate Vertical Metrics. Applies only to scripts with vertical writing modes.\"\n        },\n        {\n          \"name\": '\"vatu\"',\n          \"description\": \"Vattu Variants. Used for Indic scripts. E.g. Devanagari.\"\n        },\n        {\n          \"name\": '\"vert\"',\n          \"description\": \"Vertical Alternates. Applies only to scripts with vertical writing modes.\"\n        },\n        {\n          \"name\": '\"vhal\"',\n          \"description\": \"Alternate Vertical Half Metrics. Used only in CJKV fonts.\"\n        },\n        {\n          \"name\": '\"vjmo\"',\n          \"description\": \"Vowel Jamo Forms. Required for Hangul script when Ancient Hangul writing system is supported.\"\n        },\n        {\n          \"name\": '\"vkna\"',\n          \"description\": \"Vertical Kana Alternates. Applies only to fonts that support kana (hiragana and katakana).\"\n        },\n        {\n          \"name\": '\"vkrn\"',\n          \"description\": \"Vertical Kerning.\"\n        },\n        {\n          \"name\": '\"vpal\"',\n          \"description\": \"Proportional Alternate Vertical Metrics. Used mostly in CJKV fonts.\"\n        },\n        {\n          \"name\": '\"vrt2\"',\n          \"description\": \"Vertical Alternates and Rotation. Applies only to scripts with vertical writing modes.\"\n        },\n        {\n          \"name\": '\"zero\"',\n          \"description\": \"Slashed Zero.\"\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"No change in glyph substitution or positioning occurs.\"\n        },\n        {\n          \"name\": \"off\",\n          \"description\": \"Disable feature.\"\n        },\n        {\n          \"name\": \"on\",\n          \"description\": \"Enable feature.\"\n        }\n      ],\n      \"atRule\": \"@font-face\",\n      \"syntax\": \"normal | <feature-tag-value>#\",\n      \"relevance\": 57,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/font-feature-settings\"\n        }\n      ],\n      \"description\": \"Provides low-level control over OpenType font features. It is intended as a way of providing access to font features that are not widely used but are needed for a particular use case.\",\n      \"restrictions\": [\n        \"string\",\n        \"integer\"\n      ]\n    },\n    {\n      \"name\": \"font-kerning\",\n      \"browsers\": [\n        \"E79\",\n        \"FF32\",\n        \"S9\",\n        \"C33\",\n        \"O20\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Specifies that kerning is applied at the discretion of the user agent.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"Specifies that kerning is not applied.\"\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"Specifies that kerning is applied.\"\n        }\n      ],\n      \"syntax\": \"auto | normal | none\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/font-kerning\"\n        }\n      ],\n      \"description\": \"Kerning is the contextual adjustment of inter-glyph spacing. This property controls metric kerning, kerning that utilizes adjustment data contained in the font.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"font-language-override\",\n      \"browsers\": [\n        \"FF34\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"normal\",\n          \"description\": \"Implies that when rendering with OpenType fonts the language of the document is used to infer the OpenType language system, used to select language specific features when rendering.\"\n        }\n      ],\n      \"syntax\": \"normal | <string>\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/font-language-override\"\n        }\n      ],\n      \"description\": \"The value of 'normal' implies that when rendering with OpenType fonts the language of the document is used to infer the OpenType language system, used to select language specific features when rendering.\",\n      \"restrictions\": [\n        \"string\"\n      ]\n    },\n    {\n      \"name\": \"font-size\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE5.5\",\n        \"O7\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"large\"\n        },\n        {\n          \"name\": \"larger\"\n        },\n        {\n          \"name\": \"medium\"\n        },\n        {\n          \"name\": \"small\"\n        },\n        {\n          \"name\": \"smaller\"\n        },\n        {\n          \"name\": \"x-large\"\n        },\n        {\n          \"name\": \"x-small\"\n        },\n        {\n          \"name\": \"xx-large\"\n        },\n        {\n          \"name\": \"xx-small\"\n        }\n      ],\n      \"syntax\": \"<absolute-size> | <relative-size> | <length-percentage>\",\n      \"relevance\": 94,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/font-size\"\n        }\n      ],\n      \"description\": \"Indicates the desired height of glyphs from the font. For scalable fonts, the font-size is a scale factor applied to the EM unit of the font. (Note that certain glyphs may bleed outside their EM box.) For non-scalable fonts, the font-size is converted into absolute units and matched against the declared font-size of the font, using the same absolute coordinate space for both of the matched values.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"font-size-adjust\",\n      \"browsers\": [\n        \"FF3\",\n        \"S16.4\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"Do not preserve the font's x-height.\"\n        }\n      ],\n      \"syntax\": \"none | [ ex-height | cap-height | ch-width | ic-width | ic-height ]? [ from-font | <number> ]\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/font-size-adjust\"\n        }\n      ],\n      \"description\": \"Preserves the readability of text when font fallback occurs by adjusting the font-size so that the x-height is the same regardless of the font used.\",\n      \"restrictions\": [\n        \"number\"\n      ]\n    },\n    {\n      \"name\": \"font-stretch\",\n      \"browsers\": [\n        \"E12\",\n        \"FF9\",\n        \"S11\",\n        \"C60\",\n        \"IE9\",\n        \"O47\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"condensed\"\n        },\n        {\n          \"name\": \"expanded\"\n        },\n        {\n          \"name\": \"extra-condensed\"\n        },\n        {\n          \"name\": \"extra-expanded\"\n        },\n        {\n          \"name\": \"narrower\",\n          \"browsers\": [\n            \"E12\",\n            \"FF9\",\n            \"S11\",\n            \"C60\",\n            \"IE9\",\n            \"O47\"\n          ],\n          \"description\": \"Indicates a narrower value relative to the width of the parent element.\"\n        },\n        {\n          \"name\": \"normal\"\n        },\n        {\n          \"name\": \"semi-condensed\"\n        },\n        {\n          \"name\": \"semi-expanded\"\n        },\n        {\n          \"name\": \"ultra-condensed\"\n        },\n        {\n          \"name\": \"ultra-expanded\"\n        },\n        {\n          \"name\": \"wider\",\n          \"browsers\": [\n            \"E12\",\n            \"FF9\",\n            \"S11\",\n            \"C60\",\n            \"IE9\",\n            \"O47\"\n          ],\n          \"description\": \"Indicates a wider value relative to the width of the parent element.\"\n        }\n      ],\n      \"atRule\": \"@font-face\",\n      \"syntax\": \"<font-stretch-absolute>{1,2}\",\n      \"relevance\": 56,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/font-stretch\"\n        }\n      ],\n      \"description\": \"Selects a normal, condensed, or expanded face from a font family.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"font-style\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O7\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"italic\",\n          \"description\": \"Selects a font that is labeled as an 'italic' face, or an 'oblique' face if one is not\"\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"Selects a face that is classified as 'normal'.\"\n        },\n        {\n          \"name\": \"oblique\",\n          \"description\": \"Selects a font that is labeled as an 'oblique' face, or an 'italic' face if one is not.\"\n        }\n      ],\n      \"atRule\": \"@font-face\",\n      \"syntax\": \"normal | italic | oblique <angle>{0,2}\",\n      \"relevance\": 89,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/font-style\"\n        }\n      ],\n      \"description\": \"Allows italic or oblique faces to be selected. Italic forms are generally cursive in nature while oblique faces are typically sloped versions of the regular face.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"font-synthesis\",\n      \"browsers\": [\n        \"E97\",\n        \"FF34\",\n        \"S9\",\n        \"C97\",\n        \"O83\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"Disallow all synthetic faces.\"\n        },\n        {\n          \"name\": \"style\",\n          \"description\": \"Allow synthetic italic faces.\"\n        },\n        {\n          \"name\": \"weight\",\n          \"description\": \"Allow synthetic bold faces.\"\n        }\n      ],\n      \"syntax\": \"none | [ weight || style || small-caps || position]\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/font-synthesis\"\n        }\n      ],\n      \"description\": \"Controls whether user agents are allowed to synthesize bold or oblique font faces when a font family lacks bold or italic faces.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"font-variant\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"normal\",\n          \"description\": \"Specifies a face that is not labeled as a small-caps font.\"\n        },\n        {\n          \"name\": \"small-caps\",\n          \"description\": \"Specifies a font that is labeled as a small-caps font. If a genuine small-caps font is not available, user agents should simulate a small-caps font.\"\n        }\n      ],\n      \"syntax\": \"normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> || stylistic( <feature-value-name> ) || historical-forms || styleset( <feature-value-name># ) || character-variant( <feature-value-name># ) || swash( <feature-value-name> ) || ornaments( <feature-value-name> ) || annotation( <feature-value-name> ) || [ small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps ] || <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero || <east-asian-variant-values> || <east-asian-width-values> || ruby ]\",\n      \"relevance\": 64,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/font-variant\"\n        }\n      ],\n      \"description\": \"Specifies variant representations of the font\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"font-variant-alternates\",\n      \"browsers\": [\n        \"E111\",\n        \"FF34\",\n        \"S9.1\",\n        \"C111\",\n        \"O97\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"annotation()\",\n          \"description\": \"Enables display of alternate annotation forms.\"\n        },\n        {\n          \"name\": \"character-variant()\",\n          \"description\": \"Enables display of specific character variants.\"\n        },\n        {\n          \"name\": \"historical-forms\",\n          \"description\": \"Enables display of historical forms.\"\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"None of the features are enabled.\"\n        },\n        {\n          \"name\": \"ornaments()\",\n          \"description\": \"Enables replacement of default glyphs with ornaments, if provided in the font.\"\n        },\n        {\n          \"name\": \"styleset()\",\n          \"description\": \"Enables display with stylistic sets.\"\n        },\n        {\n          \"name\": \"stylistic()\",\n          \"description\": \"Enables display of stylistic alternates.\"\n        },\n        {\n          \"name\": \"swash()\",\n          \"description\": \"Enables display of swash glyphs.\"\n        }\n      ],\n      \"syntax\": \"normal | [ stylistic( <feature-value-name> ) || historical-forms || styleset( <feature-value-name># ) || character-variant( <feature-value-name># ) || swash( <feature-value-name> ) || ornaments( <feature-value-name> ) || annotation( <feature-value-name> ) ]\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/font-variant-alternates\"\n        }\n      ],\n      \"description\": \"For any given character, fonts can provide a variety of alternate glyphs in addition to the default glyph for that character. This property provides control over the selection of these alternate glyphs.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"font-variant-caps\",\n      \"browsers\": [\n        \"E79\",\n        \"FF34\",\n        \"S9.1\",\n        \"C52\",\n        \"O39\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"all-petite-caps\",\n          \"description\": \"Enables display of petite capitals for both upper and lowercase letters.\"\n        },\n        {\n          \"name\": \"all-small-caps\",\n          \"description\": \"Enables display of small capitals for both upper and lowercase letters.\"\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"None of the features are enabled.\"\n        },\n        {\n          \"name\": \"petite-caps\",\n          \"description\": \"Enables display of petite capitals.\"\n        },\n        {\n          \"name\": \"small-caps\",\n          \"description\": \"Enables display of small capitals. Small-caps glyphs typically use the form of uppercase letters but are reduced to the size of lowercase letters.\"\n        },\n        {\n          \"name\": \"titling-caps\",\n          \"description\": \"Enables display of titling capitals.\"\n        },\n        {\n          \"name\": \"unicase\",\n          \"description\": \"Enables display of mixture of small capitals for uppercase letters with normal lowercase letters.\"\n        }\n      ],\n      \"syntax\": \"normal | small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/font-variant-caps\"\n        }\n      ],\n      \"description\": \"Specifies control over capitalized forms.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"font-variant-east-asian\",\n      \"browsers\": [\n        \"E79\",\n        \"FF34\",\n        \"S9.1\",\n        \"C63\",\n        \"O50\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"full-width\",\n          \"description\": \"Enables rendering of full-width variants.\"\n        },\n        {\n          \"name\": \"jis04\",\n          \"description\": \"Enables rendering of JIS04 forms.\"\n        },\n        {\n          \"name\": \"jis78\",\n          \"description\": \"Enables rendering of JIS78 forms.\"\n        },\n        {\n          \"name\": \"jis83\",\n          \"description\": \"Enables rendering of JIS83 forms.\"\n        },\n        {\n          \"name\": \"jis90\",\n          \"description\": \"Enables rendering of JIS90 forms.\"\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"None of the features are enabled.\"\n        },\n        {\n          \"name\": \"proportional-width\",\n          \"description\": \"Enables rendering of proportionally-spaced variants.\"\n        },\n        {\n          \"name\": \"ruby\",\n          \"description\": \"Enables display of ruby variant glyphs.\"\n        },\n        {\n          \"name\": \"simplified\",\n          \"description\": \"Enables rendering of simplified forms.\"\n        },\n        {\n          \"name\": \"traditional\",\n          \"description\": \"Enables rendering of traditional forms.\"\n        }\n      ],\n      \"syntax\": \"normal | [ <east-asian-variant-values> || <east-asian-width-values> || ruby ]\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/font-variant-east-asian\"\n        }\n      ],\n      \"description\": \"Allows control of glyph substitute and positioning in East Asian text.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"font-variant-ligatures\",\n      \"browsers\": [\n        \"E79\",\n        \"FF34\",\n        \"S9.1\",\n        \"C34\",\n        \"O21\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"additional-ligatures\",\n          \"description\": \"Enables display of additional ligatures.\"\n        },\n        {\n          \"name\": \"common-ligatures\",\n          \"description\": \"Enables display of common ligatures.\"\n        },\n        {\n          \"name\": \"contextual\",\n          \"browsers\": [\n            \"E79\",\n            \"FF34\",\n            \"S9.1\",\n            \"C34\",\n            \"O21\"\n          ],\n          \"description\": \"Enables display of contextual alternates.\"\n        },\n        {\n          \"name\": \"discretionary-ligatures\",\n          \"description\": \"Enables display of discretionary ligatures.\"\n        },\n        {\n          \"name\": \"historical-ligatures\",\n          \"description\": \"Enables display of historical ligatures.\"\n        },\n        {\n          \"name\": \"no-additional-ligatures\",\n          \"description\": \"Disables display of additional ligatures.\"\n        },\n        {\n          \"name\": \"no-common-ligatures\",\n          \"description\": \"Disables display of common ligatures.\"\n        },\n        {\n          \"name\": \"no-contextual\",\n          \"browsers\": [\n            \"E79\",\n            \"FF34\",\n            \"S9.1\",\n            \"C34\",\n            \"O21\"\n          ],\n          \"description\": \"Disables display of contextual alternates.\"\n        },\n        {\n          \"name\": \"no-discretionary-ligatures\",\n          \"description\": \"Disables display of discretionary ligatures.\"\n        },\n        {\n          \"name\": \"no-historical-ligatures\",\n          \"description\": \"Disables display of historical ligatures.\"\n        },\n        {\n          \"name\": \"none\",\n          \"browsers\": [\n            \"E79\",\n            \"FF34\",\n            \"S9.1\",\n            \"C34\",\n            \"O21\"\n          ],\n          \"description\": \"Disables all ligatures.\"\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"Implies that the defaults set by the font are used.\"\n        }\n      ],\n      \"syntax\": \"normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> ]\",\n      \"relevance\": 52,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/font-variant-ligatures\"\n        }\n      ],\n      \"description\": \"Specifies control over which ligatures are enabled or disabled. A value of 'normal' implies that the defaults set by the font are used.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"font-variant-numeric\",\n      \"browsers\": [\n        \"E79\",\n        \"FF34\",\n        \"S9.1\",\n        \"C52\",\n        \"O39\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"diagonal-fractions\",\n          \"description\": \"Enables display of lining diagonal fractions.\"\n        },\n        {\n          \"name\": \"lining-nums\",\n          \"description\": \"Enables display of lining numerals.\"\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"None of the features are enabled.\"\n        },\n        {\n          \"name\": \"oldstyle-nums\",\n          \"description\": \"Enables display of old-style numerals.\"\n        },\n        {\n          \"name\": \"ordinal\",\n          \"description\": \"Enables display of letter forms used with ordinal numbers.\"\n        },\n        {\n          \"name\": \"proportional-nums\",\n          \"description\": \"Enables display of proportional numerals.\"\n        },\n        {\n          \"name\": \"slashed-zero\",\n          \"description\": \"Enables display of slashed zeros.\"\n        },\n        {\n          \"name\": \"stacked-fractions\",\n          \"description\": \"Enables display of lining stacked fractions.\"\n        },\n        {\n          \"name\": \"tabular-nums\",\n          \"description\": \"Enables display of tabular numerals.\"\n        }\n      ],\n      \"syntax\": \"normal | [ <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero ]\",\n      \"relevance\": 51,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/font-variant-numeric\"\n        }\n      ],\n      \"description\": \"Specifies control over numerical forms.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"font-variant-position\",\n      \"browsers\": [\n        \"E117\",\n        \"FF34\",\n        \"S9.1\",\n        \"C117\",\n        \"O103\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"normal\",\n          \"description\": \"None of the features are enabled.\"\n        },\n        {\n          \"name\": \"sub\",\n          \"description\": \"Enables display of subscript variants (OpenType feature: subs).\"\n        },\n        {\n          \"name\": \"super\",\n          \"description\": \"Enables display of superscript variants (OpenType feature: sups).\"\n        }\n      ],\n      \"syntax\": \"normal | sub | super\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/font-variant-position\"\n        }\n      ],\n      \"description\": \"Specifies the vertical position\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"font-weight\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C2\",\n        \"IE3\",\n        \"O3.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"100\",\n          \"description\": \"Thin\"\n        },\n        {\n          \"name\": \"200\",\n          \"description\": \"Extra Light (Ultra Light)\"\n        },\n        {\n          \"name\": \"300\",\n          \"description\": \"Light\"\n        },\n        {\n          \"name\": \"400\",\n          \"description\": \"Normal\"\n        },\n        {\n          \"name\": \"500\",\n          \"description\": \"Medium\"\n        },\n        {\n          \"name\": \"600\",\n          \"description\": \"Semi Bold (Demi Bold)\"\n        },\n        {\n          \"name\": \"700\",\n          \"description\": \"Bold\"\n        },\n        {\n          \"name\": \"800\",\n          \"description\": \"Extra Bold (Ultra Bold)\"\n        },\n        {\n          \"name\": \"900\",\n          \"description\": \"Black (Heavy)\"\n        },\n        {\n          \"name\": \"bold\",\n          \"description\": \"Same as 700\"\n        },\n        {\n          \"name\": \"bolder\",\n          \"description\": \"Specifies the weight of the face bolder than the inherited value.\"\n        },\n        {\n          \"name\": \"lighter\",\n          \"description\": \"Specifies the weight of the face lighter than the inherited value.\"\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"Same as 400\"\n        }\n      ],\n      \"atRule\": \"@font-face\",\n      \"syntax\": \"<font-weight-absolute>{1,2}\",\n      \"relevance\": 93,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/font-weight\"\n        }\n      ],\n      \"description\": \"Specifies weight of glyphs in the font, their degree of blackness or stroke thickness.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"glyph-orientation-horizontal\",\n      \"relevance\": 50,\n      \"description\": \"Controls glyph orientation when the inline-progression-direction is horizontal.\",\n      \"restrictions\": [\n        \"angle\",\n        \"number\"\n      ]\n    },\n    {\n      \"name\": \"glyph-orientation-vertical\",\n      \"browsers\": [\n        \"S13.1\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Sets the orientation based on the fullwidth or non-fullwidth characters and the most common orientation.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Controls glyph orientation when the inline-progression-direction is vertical.\",\n      \"restrictions\": [\n        \"angle\",\n        \"number\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"grid-area\",\n      \"browsers\": [\n        \"E16\",\n        \"FF52\",\n        \"S10.1\",\n        \"C57\",\n        \"O44\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The property contributes nothing to the grid item's placement, indicating auto-placement, an automatic span, or a default span of one.\"\n        },\n        {\n          \"name\": \"span\",\n          \"description\": \"Contributes a grid span to the grid item's placement such that the corresponding edge of the grid item's grid area is N lines from its opposite edge.\"\n        }\n      ],\n      \"syntax\": \"<grid-line> [ / <grid-line> ]{0,3}\",\n      \"relevance\": 57,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/grid-area\"\n        }\n      ],\n      \"description\": \"Determine a grid item's size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement. Shorthand for 'grid-row-start', 'grid-column-start', 'grid-row-end', and 'grid-column-end'.\",\n      \"restrictions\": [\n        \"identifier\",\n        \"integer\"\n      ]\n    },\n    {\n      \"name\": \"grid\",\n      \"browsers\": [\n        \"E16\",\n        \"FF52\",\n        \"S10.1\",\n        \"C57\",\n        \"O44\"\n      ],\n      \"syntax\": \"<'grid-template'> | <'grid-template-rows'> / [ auto-flow && dense? ] <'grid-auto-columns'>? | [ auto-flow && dense? ] <'grid-auto-rows'>? / <'grid-template-columns'>\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/grid\"\n        }\n      ],\n      \"description\": \"The grid CSS property is a shorthand property that sets all of the explicit grid properties ('grid-template-rows', 'grid-template-columns', and 'grid-template-areas'), and all the implicit grid properties ('grid-auto-rows', 'grid-auto-columns', and 'grid-auto-flow'), in a single declaration.\",\n      \"restrictions\": [\n        \"identifier\",\n        \"length\",\n        \"percentage\",\n        \"string\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"grid-auto-columns\",\n      \"browsers\": [\n        \"E16\",\n        \"FF70\",\n        \"S10.1\",\n        \"C57\",\n        \"IE10\",\n        \"O44\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"min-content\",\n          \"description\": \"Represents the largest min-content contribution of the grid items occupying the grid track.\"\n        },\n        {\n          \"name\": \"max-content\",\n          \"description\": \"Represents the largest max-content contribution of the grid items occupying the grid track.\"\n        },\n        {\n          \"name\": \"auto\",\n          \"description\": \"As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track.\"\n        },\n        {\n          \"name\": \"minmax()\",\n          \"description\": \"Defines a size range greater than or equal to min and less than or equal to max.\"\n        }\n      ],\n      \"syntax\": \"<track-size>+\",\n      \"relevance\": 51,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/grid-auto-columns\"\n        }\n      ],\n      \"description\": \"Specifies the size of implicitly created columns.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"grid-auto-flow\",\n      \"browsers\": [\n        \"E16\",\n        \"FF52\",\n        \"S10.1\",\n        \"C57\",\n        \"O44\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"row\",\n          \"description\": \"The auto-placement algorithm places items by filling each row in turn, adding new rows as necessary.\"\n        },\n        {\n          \"name\": \"column\",\n          \"description\": \"The auto-placement algorithm places items by filling each column in turn, adding new columns as necessary.\"\n        },\n        {\n          \"name\": \"dense\",\n          \"description\": 'If specified, the auto-placement algorithm uses a \"dense\" packing algorithm, which attempts to fill in holes earlier in the grid if smaller items come up later.'\n        }\n      ],\n      \"syntax\": \"[ row | column ] || dense\",\n      \"relevance\": 53,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/grid-auto-flow\"\n        }\n      ],\n      \"description\": \"Controls how the auto-placement algorithm works, specifying exactly how auto-placed items get flowed into the grid.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"grid-auto-rows\",\n      \"browsers\": [\n        \"E16\",\n        \"FF70\",\n        \"S10.1\",\n        \"C57\",\n        \"IE10\",\n        \"O44\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"min-content\",\n          \"description\": \"Represents the largest min-content contribution of the grid items occupying the grid track.\"\n        },\n        {\n          \"name\": \"max-content\",\n          \"description\": \"Represents the largest max-content contribution of the grid items occupying the grid track.\"\n        },\n        {\n          \"name\": \"auto\",\n          \"description\": \"As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track.\"\n        },\n        {\n          \"name\": \"minmax()\",\n          \"description\": \"Defines a size range greater than or equal to min and less than or equal to max.\"\n        }\n      ],\n      \"syntax\": \"<track-size>+\",\n      \"relevance\": 52,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/grid-auto-rows\"\n        }\n      ],\n      \"description\": \"Specifies the size of implicitly created rows.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"grid-column\",\n      \"browsers\": [\n        \"E16\",\n        \"FF52\",\n        \"S10.1\",\n        \"C57\",\n        \"O44\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The property contributes nothing to the grid item's placement, indicating auto-placement, an automatic span, or a default span of one.\"\n        },\n        {\n          \"name\": \"span\",\n          \"description\": \"Contributes a grid span to the grid item's placement such that the corresponding edge of the grid item's grid area is N lines from its opposite edge.\"\n        }\n      ],\n      \"syntax\": \"<grid-line> [ / <grid-line> ]?\",\n      \"relevance\": 56,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/grid-column\"\n        }\n      ],\n      \"description\": \"Shorthand for 'grid-column-start' and 'grid-column-end'.\",\n      \"restrictions\": [\n        \"identifier\",\n        \"integer\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"grid-column-end\",\n      \"browsers\": [\n        \"E16\",\n        \"FF52\",\n        \"S10.1\",\n        \"C57\",\n        \"O44\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The property contributes nothing to the grid item's placement, indicating auto-placement, an automatic span, or a default span of one.\"\n        },\n        {\n          \"name\": \"span\",\n          \"description\": \"Contributes a grid span to the grid item's placement such that the corresponding edge of the grid item's grid area is N lines from its opposite edge.\"\n        }\n      ],\n      \"syntax\": \"<grid-line>\",\n      \"relevance\": 51,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/grid-column-end\"\n        }\n      ],\n      \"description\": \"Determine a grid item's size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement.\",\n      \"restrictions\": [\n        \"identifier\",\n        \"integer\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"grid-column-gap\",\n      \"browsers\": [\n        \"FF52\",\n        \"C57\",\n        \"S10.1\",\n        \"O44\"\n      ],\n      \"status\": \"obsolete\",\n      \"syntax\": \"<length-percentage>\",\n      \"relevance\": 4,\n      \"description\": \"Specifies the gutters between grid columns. Replaced by 'column-gap' property.\",\n      \"restrictions\": [\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"grid-column-start\",\n      \"browsers\": [\n        \"E16\",\n        \"FF52\",\n        \"S10.1\",\n        \"C57\",\n        \"O44\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The property contributes nothing to the grid item's placement, indicating auto-placement, an automatic span, or a default span of one.\"\n        },\n        {\n          \"name\": \"span\",\n          \"description\": \"Contributes a grid span to the grid item's placement such that the corresponding edge of the grid item's grid area is N lines from its opposite edge.\"\n        }\n      ],\n      \"syntax\": \"<grid-line>\",\n      \"relevance\": 51,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/grid-column-start\"\n        }\n      ],\n      \"description\": \"Determine a grid item's size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement.\",\n      \"restrictions\": [\n        \"identifier\",\n        \"integer\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"grid-gap\",\n      \"browsers\": [\n        \"FF52\",\n        \"C57\",\n        \"S10.1\",\n        \"O44\"\n      ],\n      \"status\": \"obsolete\",\n      \"syntax\": \"<'grid-row-gap'> <'grid-column-gap'>?\",\n      \"relevance\": 5,\n      \"description\": \"Shorthand that specifies the gutters between grid columns and grid rows in one declaration. Replaced by 'gap' property.\",\n      \"restrictions\": [\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"grid-row\",\n      \"browsers\": [\n        \"E16\",\n        \"FF52\",\n        \"S10.1\",\n        \"C57\",\n        \"O44\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The property contributes nothing to the grid item's placement, indicating auto-placement, an automatic span, or a default span of one.\"\n        },\n        {\n          \"name\": \"span\",\n          \"description\": \"Contributes a grid span to the grid item's placement such that the corresponding edge of the grid item's grid area is N lines from its opposite edge.\"\n        }\n      ],\n      \"syntax\": \"<grid-line> [ / <grid-line> ]?\",\n      \"relevance\": 54,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/grid-row\"\n        }\n      ],\n      \"description\": \"Shorthand for 'grid-row-start' and 'grid-row-end'.\",\n      \"restrictions\": [\n        \"identifier\",\n        \"integer\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"grid-row-end\",\n      \"browsers\": [\n        \"E16\",\n        \"FF52\",\n        \"S10.1\",\n        \"C57\",\n        \"O44\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The property contributes nothing to the grid item's placement, indicating auto-placement, an automatic span, or a default span of one.\"\n        },\n        {\n          \"name\": \"span\",\n          \"description\": \"Contributes a grid span to the grid item's placement such that the corresponding edge of the grid item's grid area is N lines from its opposite edge.\"\n        }\n      ],\n      \"syntax\": \"<grid-line>\",\n      \"relevance\": 51,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/grid-row-end\"\n        }\n      ],\n      \"description\": \"Determine a grid item's size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement.\",\n      \"restrictions\": [\n        \"identifier\",\n        \"integer\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"grid-row-gap\",\n      \"browsers\": [\n        \"FF52\",\n        \"C57\",\n        \"S10.1\",\n        \"O44\"\n      ],\n      \"status\": \"obsolete\",\n      \"syntax\": \"<length-percentage>\",\n      \"relevance\": 2,\n      \"description\": \"Specifies the gutters between grid rows. Replaced by 'row-gap' property.\",\n      \"restrictions\": [\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"grid-row-start\",\n      \"browsers\": [\n        \"E16\",\n        \"FF52\",\n        \"S10.1\",\n        \"C57\",\n        \"O44\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The property contributes nothing to the grid item's placement, indicating auto-placement, an automatic span, or a default span of one.\"\n        },\n        {\n          \"name\": \"span\",\n          \"description\": \"Contributes a grid span to the grid item's placement such that the corresponding edge of the grid item's grid area is N lines from its opposite edge.\"\n        }\n      ],\n      \"syntax\": \"<grid-line>\",\n      \"relevance\": 51,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/grid-row-start\"\n        }\n      ],\n      \"description\": \"Determine a grid item's size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement.\",\n      \"restrictions\": [\n        \"identifier\",\n        \"integer\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"grid-template\",\n      \"browsers\": [\n        \"E16\",\n        \"FF52\",\n        \"S10.1\",\n        \"C57\",\n        \"O44\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"Sets all three properties to their initial values.\"\n        },\n        {\n          \"name\": \"min-content\",\n          \"description\": \"Represents the largest min-content contribution of the grid items occupying the grid track.\"\n        },\n        {\n          \"name\": \"max-content\",\n          \"description\": \"Represents the largest max-content contribution of the grid items occupying the grid track.\"\n        },\n        {\n          \"name\": \"auto\",\n          \"description\": \"As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track.\"\n        },\n        {\n          \"name\": \"subgrid\",\n          \"description\": \"Sets 'grid-template-rows' and 'grid-template-columns' to 'subgrid', and 'grid-template-areas' to its initial value.\"\n        },\n        {\n          \"name\": \"minmax()\",\n          \"description\": \"Defines a size range greater than or equal to min and less than or equal to max.\"\n        },\n        {\n          \"name\": \"repeat()\",\n          \"description\": \"Represents a repeated fragment of the track list, allowing a large number of columns or rows that exhibit a recurring pattern to be written in a more compact form.\"\n        }\n      ],\n      \"syntax\": \"none | [ <'grid-template-rows'> / <'grid-template-columns'> ] | [ <line-names>? <string> <track-size>? <line-names>? ]+ [ / <explicit-track-list> ]?\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/grid-template\"\n        }\n      ],\n      \"description\": \"Shorthand for setting grid-template-columns, grid-template-rows, and grid-template-areas in a single declaration.\",\n      \"restrictions\": [\n        \"identifier\",\n        \"length\",\n        \"percentage\",\n        \"string\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"grid-template-areas\",\n      \"browsers\": [\n        \"E16\",\n        \"FF52\",\n        \"S10.1\",\n        \"C57\",\n        \"O44\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"The grid container doesn't define any named grid areas.\"\n        }\n      ],\n      \"syntax\": \"none | <string>+\",\n      \"relevance\": 54,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/grid-template-areas\"\n        }\n      ],\n      \"description\": \"Specifies named grid areas, which are not associated with any particular grid item, but can be referenced from the grid-placement properties.\",\n      \"restrictions\": [\n        \"string\"\n      ]\n    },\n    {\n      \"name\": \"grid-template-columns\",\n      \"browsers\": [\n        \"E16\",\n        \"FF52\",\n        \"S10.1\",\n        \"C57\",\n        \"IE10\",\n        \"O44\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"There is no explicit grid; any rows/columns will be implicitly generated.\"\n        },\n        {\n          \"name\": \"min-content\",\n          \"description\": \"Represents the largest min-content contribution of the grid items occupying the grid track.\"\n        },\n        {\n          \"name\": \"max-content\",\n          \"description\": \"Represents the largest max-content contribution of the grid items occupying the grid track.\"\n        },\n        {\n          \"name\": \"auto\",\n          \"description\": \"As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track.\"\n        },\n        {\n          \"name\": \"subgrid\",\n          \"description\": \"Indicates that the grid will align to its parent grid in that axis.\"\n        },\n        {\n          \"name\": \"minmax()\",\n          \"description\": \"Defines a size range greater than or equal to min and less than or equal to max.\"\n        },\n        {\n          \"name\": \"repeat()\",\n          \"description\": \"Represents a repeated fragment of the track list, allowing a large number of columns or rows that exhibit a recurring pattern to be written in a more compact form.\"\n        }\n      ],\n      \"syntax\": \"none | <track-list> | <auto-track-list> | subgrid <line-name-list>?\",\n      \"relevance\": 64,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/grid-template-columns\"\n        }\n      ],\n      \"description\": \"specifies, as a space-separated track list, the line names and track sizing functions of the grid.\",\n      \"restrictions\": [\n        \"identifier\",\n        \"length\",\n        \"percentage\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"grid-template-rows\",\n      \"browsers\": [\n        \"E16\",\n        \"FF52\",\n        \"S10.1\",\n        \"C57\",\n        \"IE10\",\n        \"O44\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"There is no explicit grid; any rows/columns will be implicitly generated.\"\n        },\n        {\n          \"name\": \"min-content\",\n          \"description\": \"Represents the largest min-content contribution of the grid items occupying the grid track.\"\n        },\n        {\n          \"name\": \"max-content\",\n          \"description\": \"Represents the largest max-content contribution of the grid items occupying the grid track.\"\n        },\n        {\n          \"name\": \"auto\",\n          \"description\": \"As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track.\"\n        },\n        {\n          \"name\": \"subgrid\",\n          \"description\": \"Indicates that the grid will align to its parent grid in that axis.\"\n        },\n        {\n          \"name\": \"minmax()\",\n          \"description\": \"Defines a size range greater than or equal to min and less than or equal to max.\"\n        },\n        {\n          \"name\": \"repeat()\",\n          \"description\": \"Represents a repeated fragment of the track list, allowing a large number of columns or rows that exhibit a recurring pattern to be written in a more compact form.\"\n        }\n      ],\n      \"syntax\": \"none | <track-list> | <auto-track-list> | subgrid <line-name-list>?\",\n      \"relevance\": 57,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/grid-template-rows\"\n        }\n      ],\n      \"description\": \"specifies, as a space-separated track list, the line names and track sizing functions of the grid.\",\n      \"restrictions\": [\n        \"identifier\",\n        \"length\",\n        \"percentage\",\n        \"string\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"height\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O7\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The height depends on the values of other properties.\"\n        },\n        {\n          \"name\": \"fit-content\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode.\"\n        },\n        {\n          \"name\": \"max-content\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"Use the max-content inline size or max-content block size, as appropriate to the writing mode.\"\n        },\n        {\n          \"name\": \"min-content\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"Use the min-content inline size or min-content block size, as appropriate to the writing mode.\"\n        }\n      ],\n      \"syntax\": \"auto | <length> | <percentage> | min-content | max-content | fit-content | fit-content(<length-percentage>)\",\n      \"relevance\": 96,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/height\"\n        }\n      ],\n      \"description\": \"Specifies the height of the content area, padding area or border area (depending on 'box-sizing') of certain boxes.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"hyphens\",\n      \"browsers\": [\n        \"E79\",\n        \"FF43\",\n        \"S17\",\n        \"C55\",\n        \"IE10\",\n        \"O42\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Conditional hyphenation characters inside a word, if present, take priority over automatic resources when determining hyphenation points within the word.\"\n        },\n        {\n          \"name\": \"manual\",\n          \"description\": \"Words are only broken at line breaks where there are characters inside the word that suggest line break opportunities\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"Words are not broken at line breaks, even if characters inside the word suggest line break points.\"\n        }\n      ],\n      \"syntax\": \"none | manual | auto\",\n      \"relevance\": 56,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/hyphens\"\n        }\n      ],\n      \"description\": \"Controls whether hyphenation is allowed to create more break opportunities within a line of text.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"image-orientation\",\n      \"browsers\": [\n        \"E81\",\n        \"FF26\",\n        \"S13.1\",\n        \"C81\",\n        \"O67\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"flip\",\n          \"description\": \"After rotating by the precededing angle, the image is flipped horizontally. Defaults to 0deg if the angle is ommitted.\"\n        },\n        {\n          \"name\": \"from-image\",\n          \"description\": \"If the image has an orientation specified in its metadata, such as EXIF, this value computes to the angle that the metadata specifies is necessary to correctly orient the image.\"\n        }\n      ],\n      \"syntax\": \"from-image | <angle> | [ <angle>? flip ]\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/image-orientation\"\n        }\n      ],\n      \"description\": \"Specifies an orthogonal rotation to be applied to an image before it is laid out.\",\n      \"restrictions\": [\n        \"angle\"\n      ]\n    },\n    {\n      \"name\": \"image-rendering\",\n      \"browsers\": [\n        \"E79\",\n        \"FF3.6\",\n        \"S6\",\n        \"C13\",\n        \"O15\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The image should be scaled with an algorithm that maximizes the appearance of the image.\"\n        },\n        {\n          \"name\": \"crisp-edges\",\n          \"description\": \"The image must be scaled with an algorithm that preserves contrast and edges in the image, and which does not smooth colors or introduce blur to the image in the process.\"\n        },\n        {\n          \"name\": \"-moz-crisp-edges\",\n          \"browsers\": [\n            \"E79\",\n            \"FF3.6\",\n            \"S6\",\n            \"C13\",\n            \"O15\"\n          ]\n        },\n        {\n          \"name\": \"optimizeQuality\",\n          \"description\": \"Deprecated.\"\n        },\n        {\n          \"name\": \"optimizeSpeed\",\n          \"description\": \"Deprecated.\"\n        },\n        {\n          \"name\": \"pixelated\",\n          \"description\": \"When scaling the image up, the 'nearest neighbor' or similar algorithm must be used, so that the image appears to be simply composed of very large pixels.\"\n        }\n      ],\n      \"syntax\": \"auto | crisp-edges | pixelated\",\n      \"relevance\": 54,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/image-rendering\"\n        }\n      ],\n      \"description\": \"Provides a hint to the user-agent about what aspects of an image are most important to preserve when the image is scaled, to aid the user-agent in the choice of an appropriate scaling algorithm.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"ime-mode\",\n      \"browsers\": [\n        \"E12\",\n        \"FF3\",\n        \"IE5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"active\",\n          \"description\": \"The input method editor is initially active; text entry is performed using it unless the user specifically dismisses it.\"\n        },\n        {\n          \"name\": \"auto\",\n          \"description\": \"No change is made to the current input method editor state. This is the default.\"\n        },\n        {\n          \"name\": \"disabled\",\n          \"description\": \"The input method editor is disabled and may not be activated by the user.\"\n        },\n        {\n          \"name\": \"inactive\",\n          \"description\": \"The input method editor is initially inactive, but the user may activate it if they wish.\"\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"The IME state should be normal; this value can be used in a user style sheet to override the page setting.\"\n        }\n      ],\n      \"status\": \"obsolete\",\n      \"syntax\": \"auto | normal | active | inactive | disabled\",\n      \"relevance\": 0,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/ime-mode\"\n        }\n      ],\n      \"description\": \"Controls the state of the input method editor for text fields.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"inline-size\",\n      \"browsers\": [\n        \"E79\",\n        \"FF41\",\n        \"S12.1\",\n        \"C57\",\n        \"O44\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Depends on the values of other properties.\"\n        }\n      ],\n      \"syntax\": \"<'width'>\",\n      \"relevance\": 54,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/inline-size\"\n        }\n      ],\n      \"description\": \"Size of an element in the direction specified by 'writing-mode'.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"isolation\",\n      \"browsers\": [\n        \"E79\",\n        \"FF36\",\n        \"S8\",\n        \"C41\",\n        \"O30\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Elements are not isolated unless an operation is applied that causes the creation of a stacking context.\"\n        },\n        {\n          \"name\": \"isolate\",\n          \"description\": \"In CSS will turn the element into a stacking context.\"\n        }\n      ],\n      \"syntax\": \"auto | isolate\",\n      \"relevance\": 54,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/isolation\"\n        }\n      ],\n      \"description\": \"In CSS setting to 'isolate' will turn the element into a stacking context. In SVG, it defines whether an element is isolated or not.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"justify-content\",\n      \"browsers\": [\n        \"E12\",\n        \"FF20\",\n        \"S9\",\n        \"C29\",\n        \"IE11\",\n        \"O12.1\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"center\",\n          \"description\": \"Flex items are packed toward the center of the line.\"\n        },\n        {\n          \"name\": \"start\",\n          \"description\": \"The items are packed flush to each other toward the start edge of the alignment container in the main axis.\"\n        },\n        {\n          \"name\": \"end\",\n          \"description\": \"The items are packed flush to each other toward the end edge of the alignment container in the main axis.\"\n        },\n        {\n          \"name\": \"left\",\n          \"description\": \"The items are packed flush to each other toward the left edge of the alignment container in the main axis.\"\n        },\n        {\n          \"name\": \"right\",\n          \"description\": \"The items are packed flush to each other toward the right edge of the alignment container in the main axis.\"\n        },\n        {\n          \"name\": \"safe\",\n          \"description\": \"If the size of the item overflows the alignment container, the item is instead aligned as if the alignment mode were start.\"\n        },\n        {\n          \"name\": \"unsafe\",\n          \"description\": \"Regardless of the relative sizes of the item and alignment container, the given alignment value is honored.\"\n        },\n        {\n          \"name\": \"stretch\",\n          \"description\": \"If the combined size of the alignment subjects is less than the size of the alignment container, any auto-sized alignment subjects have their size increased equally (not proportionally), while still respecting the constraints imposed by max-height/max-width (or equivalent functionality), so that the combined size exactly fills the alignment container.\"\n        },\n        {\n          \"name\": \"space-evenly\",\n          \"description\": \"The items are evenly distributed within the alignment container along the main axis.\"\n        },\n        {\n          \"name\": \"flex-end\",\n          \"description\": \"Flex items are packed toward the end of the line.\"\n        },\n        {\n          \"name\": \"flex-start\",\n          \"description\": \"Flex items are packed toward the start of the line.\"\n        },\n        {\n          \"name\": \"space-around\",\n          \"description\": \"Flex items are evenly distributed in the line, with half-size spaces on either end.\"\n        },\n        {\n          \"name\": \"space-between\",\n          \"description\": \"Flex items are evenly distributed in the line.\"\n        },\n        {\n          \"name\": \"baseline\",\n          \"description\": \"Specifies participation in first-baseline alignment.\"\n        },\n        {\n          \"name\": \"first baseline\",\n          \"description\": \"Specifies participation in first-baseline alignment.\"\n        },\n        {\n          \"name\": \"last baseline\",\n          \"description\": \"Specifies participation in last-baseline alignment.\"\n        }\n      ],\n      \"syntax\": \"normal | <content-distribution> | <overflow-position>? [ <content-position> | left | right ]\",\n      \"relevance\": 87,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/justify-content\"\n        }\n      ],\n      \"description\": \"Aligns flex items along the main axis of the current line of the flex container.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"kerning\",\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Indicates that the user agent should adjust inter-glyph spacing based on kerning tables that are included in the font that will be used.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Indicates whether the user agent should adjust inter-glyph spacing based on kerning tables that are included in the relevant font or instead disable auto-kerning and set inter-character spacing to a specific length.\",\n      \"restrictions\": [\n        \"length\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"left\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE5.5\",\n        \"O5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well\"\n        }\n      ],\n      \"syntax\": \"<length> | <percentage> | auto\",\n      \"relevance\": 94,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/left\"\n        }\n      ],\n      \"description\": \"Specifies how far an absolutely positioned box's left margin edge is offset to the right of the left edge of the box's 'containing block'.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"letter-spacing\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"normal\",\n          \"description\": \"The spacing is the normal spacing for the current font. It is typically zero-length.\"\n        }\n      ],\n      \"syntax\": \"normal | <length>\",\n      \"relevance\": 81,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/letter-spacing\"\n        }\n      ],\n      \"description\": \"Specifies the minimum, maximum, and optimal spacing between grapheme clusters.\",\n      \"restrictions\": [\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"lighting-color\",\n      \"browsers\": [\n        \"E12\",\n        \"FF3\",\n        \"S6\",\n        \"C5\",\n        \"IE\",\n        \"O15\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Defines the color of the light source for filter primitives 'feDiffuseLighting' and 'feSpecularLighting'.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"line-break\",\n      \"browsers\": [\n        \"E14\",\n        \"FF69\",\n        \"S11\",\n        \"C58\",\n        \"IE5.5\",\n        \"O45\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The UA determines the set of line-breaking restrictions to use for CJK scripts, and it may vary the restrictions based on the length of the line; e.g., use a less restrictive set of line-break rules for short lines.\"\n        },\n        {\n          \"name\": \"loose\",\n          \"description\": \"Breaks text using the least restrictive set of line-breaking rules. Typically used for short lines, such as in newspapers.\"\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"Breaks text using the most common set of line-breaking rules.\"\n        },\n        {\n          \"name\": \"strict\",\n          \"description\": \"Breaks CJK scripts using a more restrictive set of line-breaking rules than 'normal'.\"\n        },\n        {\n          \"name\": \"anywhere\",\n          \"description\": \"There is a soft wrap opportunity around every typographic character unit, including around any punctuation character or preserved white spaces, or in the middle of words, disregarding any prohibition against line breaks, even those introduced by characters with the GL, WJ, or ZWJ line breaking classes or mandated by the word-break property.\"\n        }\n      ],\n      \"syntax\": \"auto | loose | normal | strict | anywhere\",\n      \"relevance\": 52,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/line-break\"\n        }\n      ],\n      \"description\": \"Specifies what set of line breaking restrictions are in effect within the element.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"line-height\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O7\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"normal\",\n          \"description\": \"Tells user agents to set the computed value to a 'reasonable' value based on the font size of the element.\"\n        }\n      ],\n      \"syntax\": \"normal | <number> | <length> | <percentage>\",\n      \"relevance\": 92,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/line-height\"\n        }\n      ],\n      \"description\": \"Determines the block-progression dimension of the text content area of an inline box.\",\n      \"restrictions\": [\n        \"number\",\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"list-style\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O7\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"armenian\"\n        },\n        {\n          \"name\": \"circle\",\n          \"description\": \"A hollow circle.\"\n        },\n        {\n          \"name\": \"decimal\"\n        },\n        {\n          \"name\": \"decimal-leading-zero\"\n        },\n        {\n          \"name\": \"disc\",\n          \"description\": \"A filled circle.\"\n        },\n        {\n          \"name\": \"georgian\"\n        },\n        {\n          \"name\": \"inside\",\n          \"description\": \"The marker box is outside the principal block box, as described in the section on the ::marker pseudo-element below.\"\n        },\n        {\n          \"name\": \"lower-alpha\"\n        },\n        {\n          \"name\": \"lower-greek\"\n        },\n        {\n          \"name\": \"lower-latin\"\n        },\n        {\n          \"name\": \"lower-roman\"\n        },\n        {\n          \"name\": \"none\"\n        },\n        {\n          \"name\": \"outside\",\n          \"description\": \"The ::marker pseudo-element is an inline element placed immediately before all ::before pseudo-elements in the principal block box, after which the element's content flows.\"\n        },\n        {\n          \"name\": \"square\",\n          \"description\": \"A filled square.\"\n        },\n        {\n          \"name\": \"symbols()\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"Allows a counter style to be defined inline.\"\n        },\n        {\n          \"name\": \"upper-alpha\"\n        },\n        {\n          \"name\": \"upper-latin\"\n        },\n        {\n          \"name\": \"upper-roman\"\n        },\n        {\n          \"name\": \"url()\"\n        }\n      ],\n      \"syntax\": \"<'list-style-type'> || <'list-style-position'> || <'list-style-image'>\",\n      \"relevance\": 83,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/list-style\"\n        }\n      ],\n      \"description\": \"Shorthand for setting 'list-style-type', 'list-style-position' and 'list-style-image'\",\n      \"restrictions\": [\n        \"image\",\n        \"enum\",\n        \"url\"\n      ]\n    },\n    {\n      \"name\": \"list-style-image\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O7\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"The default contents of the of the list item's marker are given by 'list-style-type' instead.\"\n        }\n      ],\n      \"syntax\": \"<image> | none\",\n      \"relevance\": 52,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/list-style-image\"\n        }\n      ],\n      \"description\": \"Sets the image that will be used as the list item marker. When the image is available, it will replace the marker set with the 'list-style-type' marker.\",\n      \"restrictions\": [\n        \"image\"\n      ]\n    },\n    {\n      \"name\": \"list-style-position\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"inside\",\n          \"description\": \"The marker box is outside the principal block box, as described in the section on the ::marker pseudo-element below.\"\n        },\n        {\n          \"name\": \"outside\",\n          \"description\": \"The ::marker pseudo-element is an inline element placed immediately before all ::before pseudo-elements in the principal block box, after which the element's content flows.\"\n        }\n      ],\n      \"syntax\": \"inside | outside\",\n      \"relevance\": 55,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/list-style-position\"\n        }\n      ],\n      \"description\": \"Specifies the position of the '::marker' pseudo-element's box in the list item.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"list-style-type\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"armenian\",\n          \"description\": \"Traditional uppercase Armenian numbering.\"\n        },\n        {\n          \"name\": \"circle\",\n          \"description\": \"A hollow circle.\"\n        },\n        {\n          \"name\": \"decimal\",\n          \"description\": \"Western decimal numbers.\"\n        },\n        {\n          \"name\": \"decimal-leading-zero\",\n          \"description\": \"Decimal numbers padded by initial zeros.\"\n        },\n        {\n          \"name\": \"disc\",\n          \"description\": \"A filled circle.\"\n        },\n        {\n          \"name\": \"georgian\",\n          \"description\": \"Traditional Georgian numbering.\"\n        },\n        {\n          \"name\": \"lower-alpha\",\n          \"description\": \"Lowercase ASCII letters.\"\n        },\n        {\n          \"name\": \"lower-greek\",\n          \"description\": \"Lowercase classical Greek.\"\n        },\n        {\n          \"name\": \"lower-latin\",\n          \"description\": \"Lowercase ASCII letters.\"\n        },\n        {\n          \"name\": \"lower-roman\",\n          \"description\": \"Lowercase ASCII Roman numerals.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"No marker\"\n        },\n        {\n          \"name\": \"square\",\n          \"description\": \"A filled square.\"\n        },\n        {\n          \"name\": \"symbols()\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O3.5\"\n          ],\n          \"description\": \"Allows a counter style to be defined inline.\"\n        },\n        {\n          \"name\": \"upper-alpha\",\n          \"description\": \"Uppercase ASCII letters.\"\n        },\n        {\n          \"name\": \"upper-latin\",\n          \"description\": \"Uppercase ASCII letters.\"\n        },\n        {\n          \"name\": \"upper-roman\",\n          \"description\": \"Uppercase ASCII Roman numerals.\"\n        }\n      ],\n      \"syntax\": \"<counter-style> | <string> | none\",\n      \"relevance\": 73,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/list-style-type\"\n        }\n      ],\n      \"description\": \"Used to construct the default contents of a list item's marker\",\n      \"restrictions\": [\n        \"enum\",\n        \"string\"\n      ]\n    },\n    {\n      \"name\": \"margin\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE3\",\n        \"O3.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        }\n      ],\n      \"syntax\": \"[ <length> | <percentage> | auto ]{1,4}\",\n      \"relevance\": 95,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/margin\"\n        }\n      ],\n      \"description\": \"Shorthand property to set values for the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"margin-block-end\",\n      \"browsers\": [\n        \"E79\",\n        \"FF41\",\n        \"S12.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        }\n      ],\n      \"syntax\": \"<'margin-left'>\",\n      \"relevance\": 55,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/margin-block-end\"\n        }\n      ],\n      \"description\": \"Logical 'margin-bottom'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"margin-block-start\",\n      \"browsers\": [\n        \"E79\",\n        \"FF41\",\n        \"S12.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        }\n      ],\n      \"syntax\": \"<'margin-left'>\",\n      \"relevance\": 56,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/margin-block-start\"\n        }\n      ],\n      \"description\": \"Logical 'margin-top'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"margin-bottom\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE3\",\n        \"O3.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        }\n      ],\n      \"syntax\": \"<length> | <percentage> | auto\",\n      \"relevance\": 91,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/margin-bottom\"\n        }\n      ],\n      \"description\": \"Shorthand property to set values for the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits..\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"margin-inline-end\",\n      \"browsers\": [\n        \"E79\",\n        \"FF41\",\n        \"S12.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        }\n      ],\n      \"syntax\": \"<'margin-left'>\",\n      \"relevance\": 58,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/margin-inline-end\"\n        }\n      ],\n      \"description\": \"Logical 'margin-right'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"margin-inline-start\",\n      \"browsers\": [\n        \"E79\",\n        \"FF41\",\n        \"S12.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        }\n      ],\n      \"syntax\": \"<'margin-left'>\",\n      \"relevance\": 59,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/margin-inline-start\"\n        }\n      ],\n      \"description\": \"Logical 'margin-left'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"margin-left\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE3\",\n        \"O3.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        }\n      ],\n      \"syntax\": \"<length> | <percentage> | auto\",\n      \"relevance\": 91,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/margin-left\"\n        }\n      ],\n      \"description\": \"Shorthand property to set values for the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits..\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"margin-right\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE3\",\n        \"O3.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        }\n      ],\n      \"syntax\": \"<length> | <percentage> | auto\",\n      \"relevance\": 91,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/margin-right\"\n        }\n      ],\n      \"description\": \"Shorthand property to set values for the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits..\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"margin-top\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE3\",\n        \"O3.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        }\n      ],\n      \"syntax\": \"<length> | <percentage> | auto\",\n      \"relevance\": 94,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/margin-top\"\n        }\n      ],\n      \"description\": \"Shorthand property to set values for the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits..\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"marker\",\n      \"browsers\": [\n        \"E80\",\n        \"FF72\",\n        \"S13.1\",\n        \"C80\",\n        \"O67\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"Indicates that no marker symbol will be drawn at the given vertex or vertices.\"\n        },\n        {\n          \"name\": \"url()\",\n          \"description\": \"Indicates that the <marker> element referenced will be used.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies the marker symbol that shall be used for all points on the sets the value for all vertices on the given 'path' element or basic shape.\",\n      \"restrictions\": [\n        \"url\"\n      ]\n    },\n    {\n      \"name\": \"marker-end\",\n      \"browsers\": [\n        \"E80\",\n        \"FF72\",\n        \"S13.1\",\n        \"C80\",\n        \"O67\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"Indicates that no marker symbol will be drawn at the given vertex or vertices.\"\n        },\n        {\n          \"name\": \"url()\",\n          \"description\": \"Indicates that the <marker> element referenced will be used.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies the marker that will be drawn at the last vertices of the given markable element.\",\n      \"restrictions\": [\n        \"url\"\n      ]\n    },\n    {\n      \"name\": \"marker-mid\",\n      \"browsers\": [\n        \"E80\",\n        \"FF72\",\n        \"S13.1\",\n        \"C80\",\n        \"O67\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"Indicates that no marker symbol will be drawn at the given vertex or vertices.\"\n        },\n        {\n          \"name\": \"url()\",\n          \"description\": \"Indicates that the <marker> element referenced will be used.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies the marker that will be drawn at all vertices except the first and last.\",\n      \"restrictions\": [\n        \"url\"\n      ]\n    },\n    {\n      \"name\": \"marker-start\",\n      \"browsers\": [\n        \"E80\",\n        \"FF72\",\n        \"S13.1\",\n        \"C80\",\n        \"O67\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"Indicates that no marker symbol will be drawn at the given vertex or vertices.\"\n        },\n        {\n          \"name\": \"url()\",\n          \"description\": \"Indicates that the <marker> element referenced will be used.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies the marker that will be drawn at the first vertices of the given markable element.\",\n      \"restrictions\": [\n        \"url\"\n      ]\n    },\n    {\n      \"name\": \"mask-image\",\n      \"browsers\": [\n        \"E79\",\n        \"FF53\",\n        \"S15.4\",\n        \"C120\",\n        \"O15\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"Counts as a transparent black image layer.\"\n        },\n        {\n          \"name\": \"url()\",\n          \"description\": \"Reference to a <mask element or to a CSS image.\"\n        }\n      ],\n      \"syntax\": \"<mask-reference>#\",\n      \"relevance\": 57,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/mask-image\"\n        }\n      ],\n      \"description\": \"Sets the mask layer image of an element.\",\n      \"restrictions\": [\n        \"url\",\n        \"image\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"mask-mode\",\n      \"browsers\": [\n        \"E120\",\n        \"FF53\",\n        \"S15.4\",\n        \"C120\",\n        \"O106\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"alpha\",\n          \"description\": \"Alpha values of the mask layer image should be used as the mask values.\"\n        },\n        {\n          \"name\": \"auto\",\n          \"description\": \"Use alpha values if 'mask-image' is an image, luminance if a <mask> element or a CSS image.\"\n        },\n        {\n          \"name\": \"luminance\",\n          \"description\": \"Luminance values of the mask layer image should be used as the mask values.\"\n        }\n      ],\n      \"syntax\": \"<masking-mode>#\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/mask-mode\"\n        }\n      ],\n      \"description\": \"Indicates whether the mask layer image is treated as luminance mask or alpha mask.\",\n      \"restrictions\": [\n        \"url\",\n        \"image\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"mask-origin\",\n      \"browsers\": [\n        \"E120\",\n        \"FF53\",\n        \"S15.4\",\n        \"C120\",\n        \"O106\"\n      ],\n      \"syntax\": \"<geometry-box>#\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/mask-origin\"\n        }\n      ],\n      \"description\": \"Specifies the mask positioning area.\",\n      \"restrictions\": [\n        \"geometry-box\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"mask-position\",\n      \"browsers\": [\n        \"E79\",\n        \"FF53\",\n        \"S15.4\",\n        \"C120\",\n        \"O106\"\n      ],\n      \"syntax\": \"<position>#\",\n      \"relevance\": 52,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/mask-position\"\n        }\n      ],\n      \"description\": \"Specifies how mask layer images are positioned.\",\n      \"restrictions\": [\n        \"position\",\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"mask-repeat\",\n      \"browsers\": [\n        \"E79\",\n        \"FF53\",\n        \"S15.4\",\n        \"C120\",\n        \"O106\"\n      ],\n      \"syntax\": \"<repeat-style>#\",\n      \"relevance\": 53,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/mask-repeat\"\n        }\n      ],\n      \"description\": \"Specifies how mask layer images are tiled after they have been sized and positioned.\",\n      \"restrictions\": [\n        \"repeat\"\n      ]\n    },\n    {\n      \"name\": \"mask-size\",\n      \"browsers\": [\n        \"E79\",\n        \"FF53\",\n        \"S15.4\",\n        \"C120\",\n        \"O106\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Resolved by using the image's intrinsic ratio and the size of the other dimension, or failing that, using the image's intrinsic size, or failing that, treating it as 100%.\"\n        },\n        {\n          \"name\": \"contain\",\n          \"description\": \"Scale the image, while preserving its intrinsic aspect ratio (if any), to the largest size such that both its width and its height can fit inside the background positioning area.\"\n        },\n        {\n          \"name\": \"cover\",\n          \"description\": \"Scale the image, while preserving its intrinsic aspect ratio (if any), to the smallest size such that both its width and its height can completely cover the background positioning area.\"\n        }\n      ],\n      \"syntax\": \"<bg-size>#\",\n      \"relevance\": 54,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/mask-size\"\n        }\n      ],\n      \"description\": \"Specifies the size of the mask layer images.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"mask-type\",\n      \"browsers\": [\n        \"E79\",\n        \"FF35\",\n        \"S7\",\n        \"C24\",\n        \"O15\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"alpha\",\n          \"description\": \"Indicates that the alpha values of the mask should be used.\"\n        },\n        {\n          \"name\": \"luminance\",\n          \"description\": \"Indicates that the luminance values of the mask should be used.\"\n        }\n      ],\n      \"syntax\": \"luminance | alpha\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/mask-type\"\n        }\n      ],\n      \"description\": \"Defines whether the content of the <mask> element is treated as as luminance mask or alpha mask.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"max-block-size\",\n      \"browsers\": [\n        \"E79\",\n        \"FF41\",\n        \"S12.1\",\n        \"C57\",\n        \"O44\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"No limit on the width of the box.\"\n        }\n      ],\n      \"syntax\": \"<'max-width'>\",\n      \"relevance\": 53,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/max-block-size\"\n        }\n      ],\n      \"description\": \"Maximum size of an element in the direction opposite that of the direction specified by 'writing-mode'.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"max-height\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1.3\",\n        \"C18\",\n        \"IE7\",\n        \"O7\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"No limit on the height of the box.\"\n        },\n        {\n          \"name\": \"fit-content\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1.3\",\n            \"C18\",\n            \"IE7\",\n            \"O7\"\n          ],\n          \"description\": \"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode.\"\n        },\n        {\n          \"name\": \"max-content\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1.3\",\n            \"C18\",\n            \"IE7\",\n            \"O7\"\n          ],\n          \"description\": \"Use the max-content inline size or max-content block size, as appropriate to the writing mode.\"\n        },\n        {\n          \"name\": \"min-content\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1.3\",\n            \"C18\",\n            \"IE7\",\n            \"O7\"\n          ],\n          \"description\": \"Use the min-content inline size or min-content block size, as appropriate to the writing mode.\"\n        }\n      ],\n      \"syntax\": \"none | <length-percentage> | min-content | max-content | fit-content | fit-content(<length-percentage>)\",\n      \"relevance\": 85,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/max-height\"\n        }\n      ],\n      \"description\": \"Allows authors to constrain content height to a certain range.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"max-inline-size\",\n      \"browsers\": [\n        \"E79\",\n        \"FF41\",\n        \"S12.1\",\n        \"C57\",\n        \"O44\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"No limit on the height of the box.\"\n        }\n      ],\n      \"syntax\": \"<'max-width'>\",\n      \"relevance\": 54,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/max-inline-size\"\n        }\n      ],\n      \"description\": \"Maximum size of an element in the direction specified by 'writing-mode'.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"max-width\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE7\",\n        \"O4\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"No limit on the width of the box.\"\n        },\n        {\n          \"name\": \"fit-content\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE7\",\n            \"O4\"\n          ],\n          \"description\": \"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode.\"\n        },\n        {\n          \"name\": \"max-content\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE7\",\n            \"O4\"\n          ],\n          \"description\": \"Use the max-content inline size or max-content block size, as appropriate to the writing mode.\"\n        },\n        {\n          \"name\": \"min-content\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE7\",\n            \"O4\"\n          ],\n          \"description\": \"Use the min-content inline size or min-content block size, as appropriate to the writing mode.\"\n        }\n      ],\n      \"syntax\": \"none | <length-percentage> | min-content | max-content | fit-content | fit-content(<length-percentage>)\",\n      \"relevance\": 91,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/max-width\"\n        }\n      ],\n      \"description\": \"Allows authors to constrain content width to a certain range.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"min-block-size\",\n      \"browsers\": [\n        \"E79\",\n        \"FF41\",\n        \"S12.1\",\n        \"C57\",\n        \"O44\"\n      ],\n      \"syntax\": \"<'min-width'>\",\n      \"relevance\": 53,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/min-block-size\"\n        }\n      ],\n      \"description\": \"Minimal size of an element in the direction opposite that of the direction specified by 'writing-mode'.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"min-height\",\n      \"browsers\": [\n        \"E12\",\n        \"FF3\",\n        \"S1.3\",\n        \"C1\",\n        \"IE7\",\n        \"O4\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"browsers\": [\n            \"E12\",\n            \"FF3\",\n            \"S1.3\",\n            \"C1\",\n            \"IE7\",\n            \"O4\"\n          ]\n        },\n        {\n          \"name\": \"fit-content\",\n          \"browsers\": [\n            \"E12\",\n            \"FF3\",\n            \"S1.3\",\n            \"C1\",\n            \"IE7\",\n            \"O4\"\n          ],\n          \"description\": \"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode.\"\n        },\n        {\n          \"name\": \"max-content\",\n          \"browsers\": [\n            \"E12\",\n            \"FF3\",\n            \"S1.3\",\n            \"C1\",\n            \"IE7\",\n            \"O4\"\n          ],\n          \"description\": \"Use the max-content inline size or max-content block size, as appropriate to the writing mode.\"\n        },\n        {\n          \"name\": \"min-content\",\n          \"browsers\": [\n            \"E12\",\n            \"FF3\",\n            \"S1.3\",\n            \"C1\",\n            \"IE7\",\n            \"O4\"\n          ],\n          \"description\": \"Use the min-content inline size or min-content block size, as appropriate to the writing mode.\"\n        }\n      ],\n      \"syntax\": \"auto | <length> | <percentage> | min-content | max-content | fit-content | fit-content(<length-percentage>)\",\n      \"relevance\": 89,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/min-height\"\n        }\n      ],\n      \"description\": \"Allows authors to constrain content height to a certain range.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"min-inline-size\",\n      \"browsers\": [\n        \"E79\",\n        \"FF41\",\n        \"S12.1\",\n        \"C57\",\n        \"O44\"\n      ],\n      \"syntax\": \"<'min-width'>\",\n      \"relevance\": 54,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/min-inline-size\"\n        }\n      ],\n      \"description\": \"Minimal size of an element in the direction specified by 'writing-mode'.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"min-width\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE7\",\n        \"O4\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE7\",\n            \"O4\"\n          ]\n        },\n        {\n          \"name\": \"fit-content\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE7\",\n            \"O4\"\n          ],\n          \"description\": \"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode.\"\n        },\n        {\n          \"name\": \"max-content\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE7\",\n            \"O4\"\n          ],\n          \"description\": \"Use the max-content inline size or max-content block size, as appropriate to the writing mode.\"\n        },\n        {\n          \"name\": \"min-content\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE7\",\n            \"O4\"\n          ],\n          \"description\": \"Use the min-content inline size or min-content block size, as appropriate to the writing mode.\"\n        }\n      ],\n      \"syntax\": \"auto | <length> | <percentage> | min-content | max-content | fit-content | fit-content(<length-percentage>)\",\n      \"relevance\": 88,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/min-width\"\n        }\n      ],\n      \"description\": \"Allows authors to constrain content width to a certain range.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"mix-blend-mode\",\n      \"browsers\": [\n        \"E79\",\n        \"FF32\",\n        \"S8\",\n        \"C41\",\n        \"O28\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"normal\",\n          \"description\": \"Default attribute which specifies no blending\"\n        },\n        {\n          \"name\": \"multiply\",\n          \"description\": \"The source color is multiplied by the destination color and replaces the destination.\"\n        },\n        {\n          \"name\": \"screen\",\n          \"description\": \"Multiplies the complements of the backdrop and source color values, then complements the result.\"\n        },\n        {\n          \"name\": \"overlay\",\n          \"description\": \"Multiplies or screens the colors, depending on the backdrop color value.\"\n        },\n        {\n          \"name\": \"darken\",\n          \"description\": \"Selects the darker of the backdrop and source colors.\"\n        },\n        {\n          \"name\": \"lighten\",\n          \"description\": \"Selects the lighter of the backdrop and source colors.\"\n        },\n        {\n          \"name\": \"color-dodge\",\n          \"description\": \"Brightens the backdrop color to reflect the source color.\"\n        },\n        {\n          \"name\": \"color-burn\",\n          \"description\": \"Darkens the backdrop color to reflect the source color.\"\n        },\n        {\n          \"name\": \"hard-light\",\n          \"description\": \"Multiplies or screens the colors, depending on the source color value.\"\n        },\n        {\n          \"name\": \"soft-light\",\n          \"description\": \"Darkens or lightens the colors, depending on the source color value.\"\n        },\n        {\n          \"name\": \"difference\",\n          \"description\": \"Subtracts the darker of the two constituent colors from the lighter color..\"\n        },\n        {\n          \"name\": \"exclusion\",\n          \"description\": \"Produces an effect similar to that of the Difference mode but lower in contrast.\"\n        },\n        {\n          \"name\": \"hue\",\n          \"browsers\": [\n            \"E79\",\n            \"FF32\",\n            \"S8\",\n            \"C41\",\n            \"O28\"\n          ],\n          \"description\": \"Creates a color with the hue of the source color and the saturation and luminosity of the backdrop color.\"\n        },\n        {\n          \"name\": \"saturation\",\n          \"browsers\": [\n            \"E79\",\n            \"FF32\",\n            \"S8\",\n            \"C41\",\n            \"O28\"\n          ],\n          \"description\": \"Creates a color with the saturation of the source color and the hue and luminosity of the backdrop color.\"\n        },\n        {\n          \"name\": \"color\",\n          \"browsers\": [\n            \"E79\",\n            \"FF32\",\n            \"S8\",\n            \"C41\",\n            \"O28\"\n          ],\n          \"description\": \"Creates a color with the hue and saturation of the source color and the luminosity of the backdrop color.\"\n        },\n        {\n          \"name\": \"luminosity\",\n          \"browsers\": [\n            \"E79\",\n            \"FF32\",\n            \"S8\",\n            \"C41\",\n            \"O28\"\n          ],\n          \"description\": \"Creates a color with the luminosity of the source color and the hue and saturation of the backdrop color.\"\n        }\n      ],\n      \"syntax\": \"<blend-mode> | plus-lighter\",\n      \"relevance\": 54,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/mix-blend-mode\"\n        }\n      ],\n      \"description\": \"Defines the formula that must be used to mix the colors with the backdrop.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"motion\",\n      \"browsers\": [\n        \"C46\",\n        \"O33\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"No motion path gets created.\"\n        },\n        {\n          \"name\": \"path()\",\n          \"description\": \"Defines an SVG path as a string, with optional 'fill-rule' as the first argument.\"\n        },\n        {\n          \"name\": \"auto\",\n          \"description\": \"Indicates that the object is rotated by the angle of the direction of the motion path.\"\n        },\n        {\n          \"name\": \"reverse\",\n          \"description\": \"Indicates that the object is rotated by the angle of the direction of the motion path plus 180 degrees.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Shorthand property for setting 'motion-path', 'motion-offset' and 'motion-rotation'.\",\n      \"restrictions\": [\n        \"url\",\n        \"length\",\n        \"percentage\",\n        \"angle\",\n        \"shape\",\n        \"geometry-box\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"motion-offset\",\n      \"browsers\": [\n        \"C46\",\n        \"O33\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"A distance that describes the position along the specified motion path.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"motion-path\",\n      \"browsers\": [\n        \"C46\",\n        \"O33\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"No motion path gets created.\"\n        },\n        {\n          \"name\": \"path()\",\n          \"description\": \"Defines an SVG path as a string, with optional 'fill-rule' as the first argument.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies the motion path the element gets positioned at.\",\n      \"restrictions\": [\n        \"url\",\n        \"shape\",\n        \"geometry-box\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"motion-rotation\",\n      \"browsers\": [\n        \"C46\",\n        \"O33\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Indicates that the object is rotated by the angle of the direction of the motion path.\"\n        },\n        {\n          \"name\": \"reverse\",\n          \"description\": \"Indicates that the object is rotated by the angle of the direction of the motion path plus 180 degrees.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Defines the direction of the element while positioning along the motion path.\",\n      \"restrictions\": [\n        \"angle\"\n      ]\n    },\n    {\n      \"name\": \"-moz-animation\",\n      \"browsers\": [\n        \"FF9\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"alternate\",\n          \"description\": \"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"\n        },\n        {\n          \"name\": \"alternate-reverse\",\n          \"description\": \"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"\n        },\n        {\n          \"name\": \"backwards\",\n          \"description\": \"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"\n        },\n        {\n          \"name\": \"both\",\n          \"description\": \"Both forwards and backwards fill modes are applied.\"\n        },\n        {\n          \"name\": \"forwards\",\n          \"description\": \"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"\n        },\n        {\n          \"name\": \"infinite\",\n          \"description\": \"Causes the animation to repeat forever.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"No animation is performed\"\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"Normal playback.\"\n        },\n        {\n          \"name\": \"reverse\",\n          \"description\": \"All iterations of the animation are played in the reverse direction from the way they were specified.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Shorthand property combines six of the animation properties into a single property.\",\n      \"restrictions\": [\n        \"time\",\n        \"enum\",\n        \"timing-function\",\n        \"identifier\",\n        \"number\"\n      ]\n    },\n    {\n      \"name\": \"-moz-animation-delay\",\n      \"browsers\": [\n        \"FF9\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Defines when the animation will start.\",\n      \"restrictions\": [\n        \"time\"\n      ]\n    },\n    {\n      \"name\": \"-moz-animation-direction\",\n      \"browsers\": [\n        \"FF9\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"alternate\",\n          \"description\": \"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"\n        },\n        {\n          \"name\": \"alternate-reverse\",\n          \"description\": \"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"Normal playback.\"\n        },\n        {\n          \"name\": \"reverse\",\n          \"description\": \"All iterations of the animation are played in the reverse direction from the way they were specified.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Defines whether or not the animation should play in reverse on alternate cycles.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-moz-animation-duration\",\n      \"browsers\": [\n        \"FF9\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Defines the length of time that an animation takes to complete one cycle.\",\n      \"restrictions\": [\n        \"time\"\n      ]\n    },\n    {\n      \"name\": \"-moz-animation-iteration-count\",\n      \"browsers\": [\n        \"FF9\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"infinite\",\n          \"description\": \"Causes the animation to repeat forever.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Defines the number of times an animation cycle is played. The default value is one, meaning the animation will play from beginning to end once.\",\n      \"restrictions\": [\n        \"number\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-moz-animation-name\",\n      \"browsers\": [\n        \"FF9\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"No animation is performed\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Defines a list of animations that apply. Each name is used to select the keyframe at-rule that provides the property values for the animation.\",\n      \"restrictions\": [\n        \"identifier\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-moz-animation-play-state\",\n      \"browsers\": [\n        \"FF9\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"paused\",\n          \"description\": \"A running animation will be paused.\"\n        },\n        {\n          \"name\": \"running\",\n          \"description\": \"Resume playback of a paused animation.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Defines whether the animation is running or paused.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-moz-animation-timing-function\",\n      \"browsers\": [\n        \"FF9\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Describes how the animation will progress over one cycle of its duration. See the 'transition-timing-function'.\",\n      \"restrictions\": [\n        \"timing-function\"\n      ]\n    },\n    {\n      \"name\": \"-moz-appearance\",\n      \"browsers\": [\n        \"FF1\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"button\"\n        },\n        {\n          \"name\": \"button-arrow-down\"\n        },\n        {\n          \"name\": \"button-arrow-next\"\n        },\n        {\n          \"name\": \"button-arrow-previous\"\n        },\n        {\n          \"name\": \"button-arrow-up\"\n        },\n        {\n          \"name\": \"button-bevel\"\n        },\n        {\n          \"name\": \"checkbox\"\n        },\n        {\n          \"name\": \"checkbox-container\"\n        },\n        {\n          \"name\": \"checkbox-label\"\n        },\n        {\n          \"name\": \"dialog\"\n        },\n        {\n          \"name\": \"groupbox\"\n        },\n        {\n          \"name\": \"listbox\"\n        },\n        {\n          \"name\": \"menuarrow\"\n        },\n        {\n          \"name\": \"menuimage\"\n        },\n        {\n          \"name\": \"menuitem\"\n        },\n        {\n          \"name\": \"menuitemtext\"\n        },\n        {\n          \"name\": \"menulist\"\n        },\n        {\n          \"name\": \"menulist-button\"\n        },\n        {\n          \"name\": \"menulist-text\"\n        },\n        {\n          \"name\": \"menulist-textfield\"\n        },\n        {\n          \"name\": \"menupopup\"\n        },\n        {\n          \"name\": \"menuradio\"\n        },\n        {\n          \"name\": \"menuseparator\"\n        },\n        {\n          \"name\": \"-moz-mac-unified-toolbar\"\n        },\n        {\n          \"name\": \"-moz-win-borderless-glass\"\n        },\n        {\n          \"name\": \"-moz-win-browsertabbar-toolbox\"\n        },\n        {\n          \"name\": \"-moz-win-communications-toolbox\"\n        },\n        {\n          \"name\": \"-moz-win-glass\"\n        },\n        {\n          \"name\": \"-moz-win-media-toolbox\"\n        },\n        {\n          \"name\": \"none\"\n        },\n        {\n          \"name\": \"progressbar\"\n        },\n        {\n          \"name\": \"progresschunk\"\n        },\n        {\n          \"name\": \"radio\"\n        },\n        {\n          \"name\": \"radio-container\"\n        },\n        {\n          \"name\": \"radio-label\"\n        },\n        {\n          \"name\": \"radiomenuitem\"\n        },\n        {\n          \"name\": \"resizer\"\n        },\n        {\n          \"name\": \"resizerpanel\"\n        },\n        {\n          \"name\": \"scrollbarbutton-down\"\n        },\n        {\n          \"name\": \"scrollbarbutton-left\"\n        },\n        {\n          \"name\": \"scrollbarbutton-right\"\n        },\n        {\n          \"name\": \"scrollbarbutton-up\"\n        },\n        {\n          \"name\": \"scrollbar-small\"\n        },\n        {\n          \"name\": \"scrollbartrack-horizontal\"\n        },\n        {\n          \"name\": \"scrollbartrack-vertical\"\n        },\n        {\n          \"name\": \"separator\"\n        },\n        {\n          \"name\": \"spinner\"\n        },\n        {\n          \"name\": \"spinner-downbutton\"\n        },\n        {\n          \"name\": \"spinner-textfield\"\n        },\n        {\n          \"name\": \"spinner-upbutton\"\n        },\n        {\n          \"name\": \"statusbar\"\n        },\n        {\n          \"name\": \"statusbarpanel\"\n        },\n        {\n          \"name\": \"tab\"\n        },\n        {\n          \"name\": \"tabpanels\"\n        },\n        {\n          \"name\": \"tab-scroll-arrow-back\"\n        },\n        {\n          \"name\": \"tab-scroll-arrow-forward\"\n        },\n        {\n          \"name\": \"textfield\"\n        },\n        {\n          \"name\": \"textfield-multiline\"\n        },\n        {\n          \"name\": \"toolbar\"\n        },\n        {\n          \"name\": \"toolbox\"\n        },\n        {\n          \"name\": \"tooltip\"\n        },\n        {\n          \"name\": \"treeheadercell\"\n        },\n        {\n          \"name\": \"treeheadersortarrow\"\n        },\n        {\n          \"name\": \"treeitem\"\n        },\n        {\n          \"name\": \"treetwistyopen\"\n        },\n        {\n          \"name\": \"treeview\"\n        },\n        {\n          \"name\": \"treewisty\"\n        },\n        {\n          \"name\": \"window\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"none | button | button-arrow-down | button-arrow-next | button-arrow-previous | button-arrow-up | button-bevel | button-focus | caret | checkbox | checkbox-container | checkbox-label | checkmenuitem | dualbutton | groupbox | listbox | listitem | menuarrow | menubar | menucheckbox | menuimage | menuitem | menuitemtext | menulist | menulist-button | menulist-text | menulist-textfield | menupopup | menuradio | menuseparator | meterbar | meterchunk | progressbar | progressbar-vertical | progresschunk | progresschunk-vertical | radio | radio-container | radio-label | radiomenuitem | range | range-thumb | resizer | resizerpanel | scale-horizontal | scalethumbend | scalethumb-horizontal | scalethumbstart | scalethumbtick | scalethumb-vertical | scale-vertical | scrollbarbutton-down | scrollbarbutton-left | scrollbarbutton-right | scrollbarbutton-up | scrollbarthumb-horizontal | scrollbarthumb-vertical | scrollbartrack-horizontal | scrollbartrack-vertical | searchfield | separator | sheet | spinner | spinner-downbutton | spinner-textfield | spinner-upbutton | splitter | statusbar | statusbarpanel | tab | tabpanel | tabpanels | tab-scroll-arrow-back | tab-scroll-arrow-forward | textfield | textfield-multiline | toolbar | toolbarbutton | toolbarbutton-dropdown | toolbargripper | toolbox | tooltip | treeheader | treeheadercell | treeheadersortarrow | treeitem | treeline | treetwisty | treetwistyopen | treeview | -moz-mac-unified-toolbar | -moz-win-borderless-glass | -moz-win-browsertabbar-toolbox | -moz-win-communicationstext | -moz-win-communications-toolbox | -moz-win-exclude-glass | -moz-win-glass | -moz-win-mediatext | -moz-win-media-toolbox | -moz-window-button-box | -moz-window-button-box-maximized | -moz-window-button-close | -moz-window-button-maximize | -moz-window-button-minimize | -moz-window-button-restore | -moz-window-frame-bottom | -moz-window-frame-left | -moz-window-frame-right | -moz-window-titlebar | -moz-window-titlebar-maximized\",\n      \"relevance\": 0,\n      \"description\": \"Used in Gecko (Firefox) to display an element using a platform-native styling based on the operating system's theme.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-moz-backface-visibility\",\n      \"browsers\": [\n        \"FF10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"hidden\"\n        },\n        {\n          \"name\": \"visible\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Determines whether or not the 'back' side of a transformed element is visible when facing the viewer. With an identity transform, the front side of an element faces the viewer.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-moz-background-clip\",\n      \"browsers\": [\n        \"FF1-3.6\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"padding\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Determines the background painting area.\",\n      \"restrictions\": [\n        \"box\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-moz-background-inline-policy\",\n      \"browsers\": [\n        \"FF1\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"bounding-box\"\n        },\n        {\n          \"name\": \"continuous\"\n        },\n        {\n          \"name\": \"each-box\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"In Gecko-based applications like Firefox, the -moz-background-inline-policy CSS property specifies how the background image of an inline element is determined when the content of the inline element wraps onto multiple lines. The choice of position has significant effects on repetition.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-moz-background-origin\",\n      \"browsers\": [\n        \"FF1\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"For elements rendered as a single box, specifies the background positioning area. For elements rendered as multiple boxes (e.g., inline boxes on several lines, boxes on several pages) specifies which boxes 'box-decoration-break' operates on to determine the background positioning area(s).\",\n      \"restrictions\": [\n        \"box\"\n      ]\n    },\n    {\n      \"name\": \"-moz-border-bottom-colors\",\n      \"browsers\": [\n        \"FF1\"\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<color>+ | none\",\n      \"relevance\": 0,\n      \"description\": \"Sets a list of colors for the bottom border.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"-moz-border-image\",\n      \"browsers\": [\n        \"FF3.6\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"If 'auto' is specified then the border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead.\"\n        },\n        {\n          \"name\": \"fill\",\n          \"description\": \"Causes the middle part of the border-image to be preserved.\"\n        },\n        {\n          \"name\": \"none\"\n        },\n        {\n          \"name\": \"repeat\",\n          \"description\": \"The image is tiled (repeated) to fill the area.\"\n        },\n        {\n          \"name\": \"round\",\n          \"description\": \"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does.\"\n        },\n        {\n          \"name\": \"space\",\n          \"description\": \"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles.\"\n        },\n        {\n          \"name\": \"stretch\",\n          \"description\": \"The image is stretched to fill the area.\"\n        },\n        {\n          \"name\": \"url()\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Shorthand property for setting 'border-image-source', 'border-image-slice', 'border-image-width', 'border-image-outset' and 'border-image-repeat'. Omitted values are set to their initial values.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\",\n        \"number\",\n        \"url\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-moz-border-left-colors\",\n      \"browsers\": [\n        \"FF1\"\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<color>+ | none\",\n      \"relevance\": 0,\n      \"description\": \"Sets a list of colors for the bottom border.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"-moz-border-right-colors\",\n      \"browsers\": [\n        \"FF1\"\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<color>+ | none\",\n      \"relevance\": 0,\n      \"description\": \"Sets a list of colors for the bottom border.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"-moz-border-top-colors\",\n      \"browsers\": [\n        \"FF1\"\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<color>+ | none\",\n      \"relevance\": 0,\n      \"description\": \"Ske Firefox, -moz-border-bottom-colors sets a list of colors for the bottom border.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"-moz-box-align\",\n      \"browsers\": [\n        \"FF1\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"baseline\",\n          \"description\": \"If this box orientation is inline-axis or horizontal, all children are placed with their baselines aligned, and extra space placed before or after as necessary. For block flows, the baseline of the first non-empty line box located within the element is used. For tables, the baseline of the first cell is used.\"\n        },\n        {\n          \"name\": \"center\",\n          \"description\": \"Any extra space is divided evenly, with half placed above the child and the other half placed after the child.\"\n        },\n        {\n          \"name\": \"end\",\n          \"description\": \"For normal direction boxes, the bottom edge of each child is placed along the bottom of the box. Extra space is placed above the element. For reverse direction boxes, the top edge of each child is placed along the top of the box. Extra space is placed below the element.\"\n        },\n        {\n          \"name\": \"start\",\n          \"description\": \"For normal direction boxes, the top edge of each child is placed along the top of the box. Extra space is placed below the element. For reverse direction boxes, the bottom edge of each child is placed along the bottom of the box. Extra space is placed above the element.\"\n        },\n        {\n          \"name\": \"stretch\",\n          \"description\": \"The height of each child is adjusted to that of the containing block.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies how a XUL box aligns its contents across (perpendicular to) the direction of its layout. The effect of this is only visible if there is extra space in the box.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-moz-box-direction\",\n      \"browsers\": [\n        \"FF1\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"normal\",\n          \"description\": \"A box with a computed value of horizontal for box-orient displays its children from left to right. A box with a computed value of vertical displays its children from top to bottom.\"\n        },\n        {\n          \"name\": \"reverse\",\n          \"description\": \"A box with a computed value of horizontal for box-orient displays its children from right to left. A box with a computed value of vertical displays its children from bottom to top.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge).\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-moz-box-flex\",\n      \"browsers\": [\n        \"FF1\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies how a box grows to fill the box that contains it, in the direction of the containing box's layout.\",\n      \"restrictions\": [\n        \"number\"\n      ]\n    },\n    {\n      \"name\": \"-moz-box-flexgroup\",\n      \"browsers\": [\n        \"FF1\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Flexible elements can be assigned to flex groups using the 'box-flex-group' property.\",\n      \"restrictions\": [\n        \"integer\"\n      ]\n    },\n    {\n      \"name\": \"-moz-box-ordinal-group\",\n      \"browsers\": [\n        \"FF1\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Indicates the ordinal group the element belongs to. Elements with a lower ordinal group are displayed before those with a higher ordinal group.\",\n      \"restrictions\": [\n        \"integer\"\n      ]\n    },\n    {\n      \"name\": \"-moz-box-orient\",\n      \"browsers\": [\n        \"FF1\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"block-axis\",\n          \"description\": \"Elements are oriented along the box's axis.\"\n        },\n        {\n          \"name\": \"horizontal\",\n          \"description\": \"The box displays its children from left to right in a horizontal line.\"\n        },\n        {\n          \"name\": \"inline-axis\",\n          \"description\": \"Elements are oriented vertically.\"\n        },\n        {\n          \"name\": \"vertical\",\n          \"description\": \"The box displays its children from stacked from top to bottom vertically.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"In Mozilla applications, -moz-box-orient specifies whether a box lays out its contents horizontally or vertically.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-moz-box-pack\",\n      \"browsers\": [\n        \"FF1\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"center\",\n          \"description\": \"The extra space is divided evenly, with half placed before the first child and the other half placed after the last child.\"\n        },\n        {\n          \"name\": \"end\",\n          \"description\": \"For normal direction boxes, the right edge of the last child is placed at the right side, with all extra space placed before the first child. For reverse direction boxes, the left edge of the first child is placed at the left side, with all extra space placed after the last child.\"\n        },\n        {\n          \"name\": \"justify\",\n          \"description\": \"The space is divided evenly in-between each child, with none of the extra space placed before the first child or after the last child. If there is only one child, treat the pack value as if it were start.\"\n        },\n        {\n          \"name\": \"start\",\n          \"description\": \"For normal direction boxes, the left edge of the first child is placed at the left side, with all extra space placed after the last child. For reverse direction boxes, the right edge of the last child is placed at the right side, with all extra space placed before the first child.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies how a box packs its contents in the direction of its layout. The effect of this is only visible if there is extra space in the box.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-moz-box-sizing\",\n      \"browsers\": [\n        \"FF1\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"border-box\",\n          \"description\": \"The specified width and height (and respective min/max properties) on this element determine the border box of the element.\"\n        },\n        {\n          \"name\": \"content-box\",\n          \"description\": \"Behavior of width and height as specified by CSS2.1. The specified width and height (and respective min/max properties) apply to the width and height respectively of the content box of the element.\"\n        },\n        {\n          \"name\": \"padding-box\",\n          \"description\": \"The specified width and height (and respective min/max properties) on this element determine the padding box of the element.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Box Model addition in CSS3.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-moz-column-count\",\n      \"browsers\": [\n        \"FF3.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Determines the number of columns by the 'column-width' property and the element width.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Describes the optimal number of columns into which the content of the element will be flowed.\",\n      \"restrictions\": [\n        \"integer\"\n      ]\n    },\n    {\n      \"name\": \"-moz-column-gap\",\n      \"browsers\": [\n        \"FF3.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"normal\",\n          \"description\": \"User agent specific and typically equivalent to 1em.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Sets the gap between columns. If there is a column rule between columns, it will appear in the middle of the gap.\",\n      \"restrictions\": [\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"-moz-column-rule\",\n      \"browsers\": [\n        \"FF3.5\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Shorthand for setting 'column-rule-width', 'column-rule-style', and 'column-rule-color' at the same place in the style sheet. Omitted values are set to their initial values.\",\n      \"restrictions\": [\n        \"length\",\n        \"line-width\",\n        \"line-style\",\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"-moz-column-rule-color\",\n      \"browsers\": [\n        \"FF3.5\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Sets the color of the column rule\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"-moz-column-rule-style\",\n      \"browsers\": [\n        \"FF3.5\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Sets the style of the rule between columns of an element.\",\n      \"restrictions\": [\n        \"line-style\"\n      ]\n    },\n    {\n      \"name\": \"-moz-column-rule-width\",\n      \"browsers\": [\n        \"FF3.5\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Sets the width of the rule between columns. Negative values are not allowed.\",\n      \"restrictions\": [\n        \"length\",\n        \"line-width\"\n      ]\n    },\n    {\n      \"name\": \"-moz-columns\",\n      \"browsers\": [\n        \"FF9\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The width depends on the values of other properties.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"A shorthand property which sets both 'column-width' and 'column-count'.\",\n      \"restrictions\": [\n        \"length\",\n        \"integer\"\n      ]\n    },\n    {\n      \"name\": \"-moz-column-width\",\n      \"browsers\": [\n        \"FF3.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The width depends on the values of other properties.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"This property describes the width of columns in multicol elements.\",\n      \"restrictions\": [\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"-moz-font-feature-settings\",\n      \"browsers\": [\n        \"FF4\"\n      ],\n      \"values\": [\n        {\n          \"name\": '\"c2cs\"'\n        },\n        {\n          \"name\": '\"dlig\"'\n        },\n        {\n          \"name\": '\"kern\"'\n        },\n        {\n          \"name\": '\"liga\"'\n        },\n        {\n          \"name\": '\"lnum\"'\n        },\n        {\n          \"name\": '\"onum\"'\n        },\n        {\n          \"name\": '\"smcp\"'\n        },\n        {\n          \"name\": '\"swsh\"'\n        },\n        {\n          \"name\": '\"tnum\"'\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"No change in glyph substitution or positioning occurs.\"\n        },\n        {\n          \"name\": \"off\",\n          \"browsers\": [\n            \"FF4\"\n          ]\n        },\n        {\n          \"name\": \"on\",\n          \"browsers\": [\n            \"FF4\"\n          ]\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Provides low-level control over OpenType font features. It is intended as a way of providing access to font features that are not widely used but are needed for a particular use case.\",\n      \"restrictions\": [\n        \"string\",\n        \"integer\"\n      ]\n    },\n    {\n      \"name\": \"-moz-hyphens\",\n      \"browsers\": [\n        \"FF9\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Conditional hyphenation characters inside a word, if present, take priority over automatic resources when determining hyphenation points within the word.\"\n        },\n        {\n          \"name\": \"manual\",\n          \"description\": \"Words are only broken at line breaks where there are characters inside the word that suggest line break opportunities\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"Words are not broken at line breaks, even if characters inside the word suggest line break points.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Controls whether hyphenation is allowed to create more break opportunities within a line of text.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-moz-perspective\",\n      \"browsers\": [\n        \"FF10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"No perspective transform is applied.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Applies the same transform as the perspective(<number>) transform function, except that it applies only to the positioned or transformed children of the element, not to the transform on the element itself.\",\n      \"restrictions\": [\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"-moz-perspective-origin\",\n      \"browsers\": [\n        \"FF10\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Establishes the origin for the perspective property. It effectively sets the X and Y position at which the viewer appears to be looking at the children of the element.\",\n      \"restrictions\": [\n        \"position\",\n        \"percentage\",\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"-moz-text-align-last\",\n      \"browsers\": [\n        \"FF12\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        },\n        {\n          \"name\": \"center\",\n          \"description\": \"The inline contents are centered within the line box.\"\n        },\n        {\n          \"name\": \"justify\",\n          \"description\": \"The text is justified according to the method specified by the 'text-justify' property.\"\n        },\n        {\n          \"name\": \"left\",\n          \"description\": \"The inline contents are aligned to the left edge of the line box. In vertical text, 'left' aligns to the edge of the line box that would be the start edge for left-to-right text.\"\n        },\n        {\n          \"name\": \"right\",\n          \"description\": \"The inline contents are aligned to the right edge of the line box. In vertical text, 'right' aligns to the edge of the line box that would be the end edge for left-to-right text.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Describes how the last line of a block or a line right before a forced line break is aligned when 'text-align' is set to 'justify'.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-moz-text-decoration-color\",\n      \"browsers\": [\n        \"FF6\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies the color of text decoration (underlines overlines, and line-throughs) set on the element with text-decoration-line.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"-moz-text-decoration-line\",\n      \"browsers\": [\n        \"FF6\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"line-through\",\n          \"description\": \"Each line of text has a line through the middle.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"Neither produces nor inhibits text decoration.\"\n        },\n        {\n          \"name\": \"overline\",\n          \"description\": \"Each line of text has a line above it.\"\n        },\n        {\n          \"name\": \"underline\",\n          \"description\": \"Each line of text is underlined.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies what line decorations, if any, are added to the element.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-moz-text-decoration-style\",\n      \"browsers\": [\n        \"FF6\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"dashed\",\n          \"description\": \"Produces a dashed line style.\"\n        },\n        {\n          \"name\": \"dotted\",\n          \"description\": \"Produces a dotted line.\"\n        },\n        {\n          \"name\": \"double\",\n          \"description\": \"Produces a double line.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"Produces no line.\"\n        },\n        {\n          \"name\": \"solid\",\n          \"description\": \"Produces a solid line.\"\n        },\n        {\n          \"name\": \"wavy\",\n          \"description\": \"Produces a wavy line.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies the line style for underline, line-through and overline text decoration.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-moz-text-size-adjust\",\n      \"browsers\": [\n        \"FF\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Renderers must use the default size adjustment when displaying on a small device.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"Renderers must not do size adjustment when displaying on a small device.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies a size adjustment for displaying text content in mobile browsers.\",\n      \"restrictions\": [\n        \"enum\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"-moz-transform\",\n      \"browsers\": [\n        \"FF3.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"matrix()\",\n          \"description\": \"Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]\"\n        },\n        {\n          \"name\": \"matrix3d()\",\n          \"description\": \"Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order.\"\n        },\n        {\n          \"name\": \"none\"\n        },\n        {\n          \"name\": \"perspective\",\n          \"description\": \"Specifies a perspective projection matrix.\"\n        },\n        {\n          \"name\": \"rotate()\",\n          \"description\": \"Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property.\"\n        },\n        {\n          \"name\": \"rotate3d()\",\n          \"description\": \"Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters.\"\n        },\n        {\n          \"name\": \"rotateX('angle')\",\n          \"description\": \"Specifies a clockwise rotation by the given angle about the X axis.\"\n        },\n        {\n          \"name\": \"rotateY('angle')\",\n          \"description\": \"Specifies a clockwise rotation by the given angle about the Y axis.\"\n        },\n        {\n          \"name\": \"rotateZ('angle')\",\n          \"description\": \"Specifies a clockwise rotation by the given angle about the Z axis.\"\n        },\n        {\n          \"name\": \"scale()\",\n          \"description\": \"Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first.\"\n        },\n        {\n          \"name\": \"scale3d()\",\n          \"description\": \"Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters.\"\n        },\n        {\n          \"name\": \"scaleX()\",\n          \"description\": \"Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter.\"\n        },\n        {\n          \"name\": \"scaleY()\",\n          \"description\": \"Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter.\"\n        },\n        {\n          \"name\": \"scaleZ()\",\n          \"description\": \"Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter.\"\n        },\n        {\n          \"name\": \"skew()\",\n          \"description\": \"Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis).\"\n        },\n        {\n          \"name\": \"skewX()\",\n          \"description\": \"Specifies a skew transformation along the X axis by the given angle.\"\n        },\n        {\n          \"name\": \"skewY()\",\n          \"description\": \"Specifies a skew transformation along the Y axis by the given angle.\"\n        },\n        {\n          \"name\": \"translate()\",\n          \"description\": \"Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter.\"\n        },\n        {\n          \"name\": \"translate3d()\",\n          \"description\": \"Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively.\"\n        },\n        {\n          \"name\": \"translateX()\",\n          \"description\": \"Specifies a translation by the given amount in the X direction.\"\n        },\n        {\n          \"name\": \"translateY()\",\n          \"description\": \"Specifies a translation by the given amount in the Y direction.\"\n        },\n        {\n          \"name\": \"translateZ()\",\n          \"description\": \"Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-moz-transform-origin\",\n      \"browsers\": [\n        \"FF3.5\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Establishes the origin of transformation for an element.\",\n      \"restrictions\": [\n        \"position\",\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"-moz-transition\",\n      \"browsers\": [\n        \"FF4\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"all\",\n          \"description\": \"Every property that is able to undergo a transition will do so.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"No property will transition.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Shorthand property combines four of the transition properties into a single property.\",\n      \"restrictions\": [\n        \"time\",\n        \"property\",\n        \"timing-function\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-moz-transition-delay\",\n      \"browsers\": [\n        \"FF4\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Defines when the transition will start. It allows a transition to begin execution some period of time from when it is applied.\",\n      \"restrictions\": [\n        \"time\"\n      ]\n    },\n    {\n      \"name\": \"-moz-transition-duration\",\n      \"browsers\": [\n        \"FF4\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies how long the transition from the old value to the new value should take.\",\n      \"restrictions\": [\n        \"time\"\n      ]\n    },\n    {\n      \"name\": \"-moz-transition-property\",\n      \"browsers\": [\n        \"FF4\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"all\",\n          \"description\": \"Every property that is able to undergo a transition will do so.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"No property will transition.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies the name of the CSS property to which the transition is applied.\",\n      \"restrictions\": [\n        \"property\"\n      ]\n    },\n    {\n      \"name\": \"-moz-transition-timing-function\",\n      \"browsers\": [\n        \"FF4\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Describes how the intermediate values used during a transition will be calculated.\",\n      \"restrictions\": [\n        \"timing-function\"\n      ]\n    },\n    {\n      \"name\": \"-moz-user-focus\",\n      \"browsers\": [\n        \"FF1\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"ignore\"\n        },\n        {\n          \"name\": \"normal\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"ignore | normal | select-after | select-before | select-menu | select-same | select-all | none\",\n      \"relevance\": 0,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/-moz-user-focus\"\n        }\n      ],\n      \"description\": \"Used to indicate whether the element can have focus.\"\n    },\n    {\n      \"name\": \"-moz-user-select\",\n      \"browsers\": [\n        \"FF1.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"all\"\n        },\n        {\n          \"name\": \"element\"\n        },\n        {\n          \"name\": \"elements\"\n        },\n        {\n          \"name\": \"-moz-all\"\n        },\n        {\n          \"name\": \"-moz-none\"\n        },\n        {\n          \"name\": \"none\"\n        },\n        {\n          \"name\": \"text\"\n        },\n        {\n          \"name\": \"toggle\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Controls the appearance of selection.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-accelerator\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"false\",\n          \"description\": \"The element does not contain an accelerator key sequence.\"\n        },\n        {\n          \"name\": \"true\",\n          \"description\": \"The element contains an accelerator key sequence.\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"false | true\",\n      \"relevance\": 0,\n      \"description\": \"IE only. Has the ability to turn off its system underlines for accelerator keys until the ALT key is pressed\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-behavior\",\n      \"browsers\": [\n        \"IE8\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"IE only. Used to extend behaviors of the browser\",\n      \"restrictions\": [\n        \"url\"\n      ]\n    },\n    {\n      \"name\": \"-ms-block-progression\",\n      \"browsers\": [\n        \"IE8\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"bt\",\n          \"description\": \"Bottom-to-top block flow. Layout is horizontal.\"\n        },\n        {\n          \"name\": \"lr\",\n          \"description\": \"Left-to-right direction. The flow orientation is vertical.\"\n        },\n        {\n          \"name\": \"rl\",\n          \"description\": \"Right-to-left direction. The flow orientation is vertical.\"\n        },\n        {\n          \"name\": \"tb\",\n          \"description\": \"Top-to-bottom direction. The flow orientation is horizontal.\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"tb | rl | bt | lr\",\n      \"relevance\": 0,\n      \"description\": \"Sets the block-progression value and the flow orientation\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-content-zoom-chaining\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"chained\",\n          \"description\": \"The nearest zoomable parent element begins zooming when the user hits a zoom limit during a manipulation. No bounce effect is shown.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"A bounce effect is shown when the user hits a zoom limit during a manipulation.\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"none | chained\",\n      \"relevance\": 0,\n      \"description\": \"Specifies the zoom behavior that occurs when a user hits the zoom limit during a manipulation.\"\n    },\n    {\n      \"name\": \"-ms-content-zooming\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"The element is not zoomable.\"\n        },\n        {\n          \"name\": \"zoom\",\n          \"description\": \"The element is zoomable.\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"none | zoom\",\n      \"relevance\": 0,\n      \"description\": \"Specifies whether zooming is enabled.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-content-zoom-limit\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<'-ms-content-zoom-limit-min'> <'-ms-content-zoom-limit-max'>\",\n      \"relevance\": 0,\n      \"description\": \"Shorthand property for the -ms-content-zoom-limit-min and -ms-content-zoom-limit-max properties.\",\n      \"restrictions\": [\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"-ms-content-zoom-limit-max\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<percentage>\",\n      \"relevance\": 0,\n      \"description\": \"Specifies the maximum zoom factor.\",\n      \"restrictions\": [\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"-ms-content-zoom-limit-min\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<percentage>\",\n      \"relevance\": 0,\n      \"description\": \"Specifies the minimum zoom factor.\",\n      \"restrictions\": [\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"-ms-content-zoom-snap\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"mandatory\",\n          \"description\": \"Indicates that the motion of the content after the contact is picked up is always adjusted so that it lands on a snap-point.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"Indicates that zooming is unaffected by any defined snap-points.\"\n        },\n        {\n          \"name\": \"proximity\",\n          \"description\": 'Indicates that the motion of the content after the contact is picked up may be adjusted if the content would normally stop \"close enough\" to a snap-point.'\n        },\n        {\n          \"name\": \"snapInterval(100%, 100%)\",\n          \"description\": \"Specifies where the snap-points will be placed.\"\n        },\n        {\n          \"name\": \"snapList()\",\n          \"description\": \"Specifies the position of individual snap-points as a comma-separated list of zoom factors.\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<'-ms-content-zoom-snap-type'> || <'-ms-content-zoom-snap-points'>\",\n      \"relevance\": 0,\n      \"description\": \"Shorthand property for the -ms-content-zoom-snap-type and -ms-content-zoom-snap-points properties.\"\n    },\n    {\n      \"name\": \"-ms-content-zoom-snap-points\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"snapInterval(100%, 100%)\",\n          \"description\": \"Specifies where the snap-points will be placed.\"\n        },\n        {\n          \"name\": \"snapList()\",\n          \"description\": \"Specifies the position of individual snap-points as a comma-separated list of zoom factors.\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"snapInterval( <percentage>, <percentage> ) | snapList( <percentage># )\",\n      \"relevance\": 0,\n      \"description\": \"Defines where zoom snap-points are located.\"\n    },\n    {\n      \"name\": \"-ms-content-zoom-snap-type\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"mandatory\",\n          \"description\": \"Indicates that the motion of the content after the contact is picked up is always adjusted so that it lands on a snap-point.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"Indicates that zooming is unaffected by any defined snap-points.\"\n        },\n        {\n          \"name\": \"proximity\",\n          \"description\": 'Indicates that the motion of the content after the contact is picked up may be adjusted if the content would normally stop \"close enough\" to a snap-point.'\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"none | proximity | mandatory\",\n      \"relevance\": 0,\n      \"description\": \"Specifies how zooming is affected by defined snap-points.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-filter\",\n      \"browsers\": [\n        \"IE8-9\"\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<string>\",\n      \"relevance\": 0,\n      \"description\": \"IE only. Used to produce visual effects.\",\n      \"restrictions\": [\n        \"string\"\n      ]\n    },\n    {\n      \"name\": \"-ms-flex\",\n      \"browsers\": [\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Retrieves the value of the main size property as the used 'flex-basis'.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"Expands to '0 0 auto'.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"specifies the parameters of a flexible length: the positive and negative flexibility, and the preferred size.\",\n      \"restrictions\": [\n        \"length\",\n        \"number\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"-ms-flex-align\",\n      \"browsers\": [\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"baseline\",\n          \"description\": \"If the flex item's inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment.\"\n        },\n        {\n          \"name\": \"center\",\n          \"description\": \"The flex item's margin box is centered in the cross axis within the line.\"\n        },\n        {\n          \"name\": \"end\",\n          \"description\": \"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line.\"\n        },\n        {\n          \"name\": \"start\",\n          \"description\": \"The cross-start margin edge of the flexbox item is placed flush with the cross-start edge of the line.\"\n        },\n        {\n          \"name\": \"stretch\",\n          \"description\": \"If the cross size property of the flexbox item is anything other than 'auto', this value is identical to 'start'.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Aligns flex items along the cross axis of the current line of the flex container.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-flex-direction\",\n      \"browsers\": [\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"column\",\n          \"description\": \"The flex container's main axis has the same orientation as the block axis of the current writing mode.\"\n        },\n        {\n          \"name\": \"column-reverse\",\n          \"description\": \"Same as 'column', except the main-start and main-end directions are swapped.\"\n        },\n        {\n          \"name\": \"row\",\n          \"description\": \"The flex container's main axis has the same orientation as the inline axis of the current writing mode.\"\n        },\n        {\n          \"name\": \"row-reverse\",\n          \"description\": \"Same as 'row', except the main-start and main-end directions are swapped.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies how flex items are placed in the flex container, by setting the direction of the flex container's main axis.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-flex-flow\",\n      \"browsers\": [\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"column\",\n          \"description\": \"The flex container's main axis has the same orientation as the block axis of the current writing mode.\"\n        },\n        {\n          \"name\": \"column-reverse\",\n          \"description\": \"Same as 'column', except the main-start and main-end directions are swapped.\"\n        },\n        {\n          \"name\": \"nowrap\",\n          \"description\": \"The flex container is single-line.\"\n        },\n        {\n          \"name\": \"row\",\n          \"description\": \"The flex container's main axis has the same orientation as the inline axis of the current writing mode.\"\n        },\n        {\n          \"name\": \"wrap\",\n          \"description\": \"The flexbox is multi-line.\"\n        },\n        {\n          \"name\": \"wrap-reverse\",\n          \"description\": \"Same as 'wrap', except the cross-start and cross-end directions are swapped.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies how flexbox items are placed in the flexbox.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-flex-item-align\",\n      \"browsers\": [\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Computes to the value of 'align-items' on the element's parent, or 'stretch' if the element has no parent. On absolutely positioned elements, it computes to itself.\"\n        },\n        {\n          \"name\": \"baseline\",\n          \"description\": \"If the flex item's inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment.\"\n        },\n        {\n          \"name\": \"center\",\n          \"description\": \"The flex item's margin box is centered in the cross axis within the line.\"\n        },\n        {\n          \"name\": \"end\",\n          \"description\": \"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line.\"\n        },\n        {\n          \"name\": \"start\",\n          \"description\": \"The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line.\"\n        },\n        {\n          \"name\": \"stretch\",\n          \"description\": \"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Allows the default alignment along the cross axis to be overridden for individual flex items.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-flex-line-pack\",\n      \"browsers\": [\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"center\",\n          \"description\": \"Lines are packed toward the center of the flex container.\"\n        },\n        {\n          \"name\": \"distribute\",\n          \"description\": \"Lines are evenly distributed in the flex container, with half-size spaces on either end.\"\n        },\n        {\n          \"name\": \"end\",\n          \"description\": \"Lines are packed toward the end of the flex container.\"\n        },\n        {\n          \"name\": \"justify\",\n          \"description\": \"Lines are evenly distributed in the flex container.\"\n        },\n        {\n          \"name\": \"start\",\n          \"description\": \"Lines are packed toward the start of the flex container.\"\n        },\n        {\n          \"name\": \"stretch\",\n          \"description\": \"Lines stretch to take up the remaining space.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Aligns a flex container's lines within the flex container when there is extra space in the cross-axis, similar to how 'justify-content' aligns individual items within the main-axis.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-flex-order\",\n      \"browsers\": [\n        \"IE10\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Controls the order in which children of a flex container appear within the flex container, by assigning them to ordinal groups.\",\n      \"restrictions\": [\n        \"integer\"\n      ]\n    },\n    {\n      \"name\": \"-ms-flex-pack\",\n      \"browsers\": [\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"center\",\n          \"description\": \"Flex items are packed toward the center of the line.\"\n        },\n        {\n          \"name\": \"distribute\",\n          \"description\": \"Flex items are evenly distributed in the line, with half-size spaces on either end.\"\n        },\n        {\n          \"name\": \"end\",\n          \"description\": \"Flex items are packed toward the end of the line.\"\n        },\n        {\n          \"name\": \"justify\",\n          \"description\": \"Flex items are evenly distributed in the line.\"\n        },\n        {\n          \"name\": \"start\",\n          \"description\": \"Flex items are packed toward the start of the line.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Aligns flex items along the main axis of the current line of the flex container.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-flex-wrap\",\n      \"browsers\": [\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"nowrap\",\n          \"description\": \"The flex container is single-line.\"\n        },\n        {\n          \"name\": \"wrap\",\n          \"description\": \"The flexbox is multi-line.\"\n        },\n        {\n          \"name\": \"wrap-reverse\",\n          \"description\": \"Same as 'wrap', except the cross-start and cross-end directions are swapped.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Controls whether the flex container is single-line or multi-line, and the direction of the cross-axis, which determines the direction new lines are stacked in.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-flow-from\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"The block container is not a CSS Region.\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"[ none | <custom-ident> ]#\",\n      \"relevance\": 0,\n      \"description\": \"Makes a block container a region and associates it with a named flow.\",\n      \"restrictions\": [\n        \"identifier\"\n      ]\n    },\n    {\n      \"name\": \"-ms-flow-into\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"The element is not moved to a named flow and normal CSS processing takes place.\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"[ none | <custom-ident> ]#\",\n      \"relevance\": 0,\n      \"description\": \"Places an element or its contents into a named flow.\",\n      \"restrictions\": [\n        \"identifier\"\n      ]\n    },\n    {\n      \"name\": \"-ms-grid-column\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        },\n        {\n          \"name\": \"end\"\n        },\n        {\n          \"name\": \"start\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Used to place grid items and explicitly defined grid cells in the Grid.\",\n      \"restrictions\": [\n        \"integer\",\n        \"string\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-grid-column-align\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"center\",\n          \"description\": \"Places the center of the Grid Item's margin box at the center of the Grid Item's column.\"\n        },\n        {\n          \"name\": \"end\",\n          \"description\": \"Aligns the end edge of the Grid Item's margin box to the end edge of the Grid Item's column.\"\n        },\n        {\n          \"name\": \"start\",\n          \"description\": \"Aligns the starting edge of the Grid Item's margin box to the starting edge of the Grid Item's column.\"\n        },\n        {\n          \"name\": \"stretch\",\n          \"description\": \"Ensures that the Grid Item's margin box is equal to the size of the Grid Item's column.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Aligns the columns in a grid.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-grid-columns\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"none | <track-list> | <auto-track-list>\",\n      \"relevance\": 0,\n      \"description\": \"Lays out the columns of the grid.\"\n    },\n    {\n      \"name\": \"-ms-grid-column-span\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies the number of columns to span.\",\n      \"restrictions\": [\n        \"integer\"\n      ]\n    },\n    {\n      \"name\": \"-ms-grid-layer\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Grid-layer is similar in concept to z-index, but avoids overloading the meaning of the z-index property, which is applicable only to positioned elements.\",\n      \"restrictions\": [\n        \"integer\"\n      ]\n    },\n    {\n      \"name\": \"-ms-grid-row\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        },\n        {\n          \"name\": \"end\"\n        },\n        {\n          \"name\": \"start\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"grid-row is used to place grid items and explicitly defined grid cells in the Grid.\",\n      \"restrictions\": [\n        \"integer\",\n        \"string\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-grid-row-align\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"center\",\n          \"description\": \"Places the center of the Grid Item's margin box at the center of the Grid Item's row.\"\n        },\n        {\n          \"name\": \"end\",\n          \"description\": \"Aligns the end edge of the Grid Item's margin box to the end edge of the Grid Item's row.\"\n        },\n        {\n          \"name\": \"start\",\n          \"description\": \"Aligns the starting edge of the Grid Item's margin box to the starting edge of the Grid Item's row.\"\n        },\n        {\n          \"name\": \"stretch\",\n          \"description\": \"Ensures that the Grid Item's margin box is equal to the size of the Grid Item's row.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Aligns the rows in a grid.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-grid-rows\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"none | <track-list> | <auto-track-list>\",\n      \"relevance\": 0,\n      \"description\": \"Lays out the columns of the grid.\"\n    },\n    {\n      \"name\": \"-ms-grid-row-span\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies the number of rows to span.\",\n      \"restrictions\": [\n        \"integer\"\n      ]\n    },\n    {\n      \"name\": \"-ms-high-contrast-adjust\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Properties will be adjusted as applicable.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"No adjustments will be applied.\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"auto | none\",\n      \"relevance\": 0,\n      \"description\": \"Specifies if properties should be adjusted in high contrast mode.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-hyphenate-limit-chars\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The user agent chooses a value that adapts to the current layout.\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"auto | <integer>{1,3}\",\n      \"relevance\": 0,\n      \"description\": \"Specifies the minimum number of characters in a hyphenated word.\",\n      \"restrictions\": [\n        \"integer\"\n      ]\n    },\n    {\n      \"name\": \"-ms-hyphenate-limit-lines\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"no-limit\",\n          \"description\": \"There is no limit.\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"no-limit | <integer>\",\n      \"relevance\": 0,\n      \"description\": \"Indicates the maximum number of successive hyphenated lines in an element.\",\n      \"restrictions\": [\n        \"integer\"\n      ]\n    },\n    {\n      \"name\": \"-ms-hyphenate-limit-zone\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<percentage> | <length>\",\n      \"relevance\": 0,\n      \"description\": \"Specifies the maximum amount of unfilled space (before justification) that may be left in the line box before hyphenation is triggered to pull part of a word from the next line back up into the current line.\",\n      \"restrictions\": [\n        \"percentage\",\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"-ms-hyphens\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Conditional hyphenation characters inside a word, if present, take priority over automatic resources when determining hyphenation points within the word.\"\n        },\n        {\n          \"name\": \"manual\",\n          \"description\": \"Words are only broken at line breaks where there are characters inside the word that suggest line break opportunities\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"Words are not broken at line breaks, even if characters inside the word suggest line break points.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Controls whether hyphenation is allowed to create more break opportunities within a line of text.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-ime-mode\",\n      \"browsers\": [\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"active\",\n          \"description\": \"The input method editor is initially active; text entry is performed using it unless the user specifically dismisses it.\"\n        },\n        {\n          \"name\": \"auto\",\n          \"description\": \"No change is made to the current input method editor state. This is the default.\"\n        },\n        {\n          \"name\": \"disabled\",\n          \"description\": \"The input method editor is disabled and may not be activated by the user.\"\n        },\n        {\n          \"name\": \"inactive\",\n          \"description\": \"The input method editor is initially inactive, but the user may activate it if they wish.\"\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"The IME state should be normal; this value can be used in a user style sheet to override the page setting.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Controls the state of the input method editor for text fields.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-interpolation-mode\",\n      \"browsers\": [\n        \"IE7\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"bicubic\"\n        },\n        {\n          \"name\": \"nearest-neighbor\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Gets or sets the interpolation (resampling) method used to stretch images.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-layout-grid\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"char\",\n          \"description\": \"Any of the range of character values available to the -ms-layout-grid-char property.\"\n        },\n        {\n          \"name\": \"line\",\n          \"description\": \"Any of the range of line values available to the -ms-layout-grid-line property.\"\n        },\n        {\n          \"name\": \"mode\",\n          \"description\": \"Any of the range of mode values available to the -ms-layout-grid-mode property.\"\n        },\n        {\n          \"name\": \"type\",\n          \"description\": \"Any of the range of type values available to the -ms-layout-grid-type property.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Sets or retrieves the composite document grid properties that specify the layout of text characters.\"\n    },\n    {\n      \"name\": \"-ms-layout-grid-char\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Largest character in the font of the element is used to set the character grid.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"Default. No character grid is set.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Sets or retrieves the size of the character grid used for rendering the text content of an element.\",\n      \"restrictions\": [\n        \"enum\",\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"-ms-layout-grid-line\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Largest character in the font of the element is used to set the character grid.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"Default. No grid line is set.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Sets or retrieves the gridline value used for rendering the text content of an element.\",\n      \"restrictions\": [\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"-ms-layout-grid-mode\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"both\",\n          \"description\": \"Default. Both the char and line grid modes are enabled. This setting is necessary to fully enable the layout grid on an element.\"\n        },\n        {\n          \"name\": \"char\",\n          \"description\": \"Only a character grid is used. This is recommended for use with block-level elements, such as a blockquote, where the line grid is intended to be disabled.\"\n        },\n        {\n          \"name\": \"line\",\n          \"description\": \"Only a line grid is used. This is recommended for use with inline elements, such as a span, to disable the horizontal grid on runs of text that act as a single entity in the grid layout.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"No grid is used.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Gets or sets whether the text layout grid uses two dimensions.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-layout-grid-type\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"fixed\",\n          \"description\": \"Grid used for monospaced layout. All noncursive characters are treated as equal; every character is centered within a single grid space by default.\"\n        },\n        {\n          \"name\": \"loose\",\n          \"description\": \"Default. Grid used for Japanese and Korean characters.\"\n        },\n        {\n          \"name\": \"strict\",\n          \"description\": \"Grid used for Chinese, as well as Japanese (Genko) and Korean characters. Only the ideographs, kanas, and wide characters are snapped to the grid.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Sets or retrieves the type of grid used for rendering the text content of an element.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-line-break\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The UA determines the set of line-breaking restrictions to use for CJK scripts, and it may vary the restrictions based on the length of the line; e.g., use a less restrictive set of line-break rules for short lines.\"\n        },\n        {\n          \"name\": \"keep-all\",\n          \"description\": \"Sequences of CJK characters can no longer break on implied break points. This option should only be used where the presence of word separator characters still creates line-breaking opportunities, as in Korean.\"\n        },\n        {\n          \"name\": \"newspaper\",\n          \"description\": \"Breaks CJK scripts using the least restrictive set of line-breaking rules. Typically used for short lines, such as in newspapers.\"\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"Breaks CJK scripts using a normal set of line-breaking rules.\"\n        },\n        {\n          \"name\": \"strict\",\n          \"description\": \"Breaks CJK scripts using a more restrictive set of line-breaking rules than 'normal'.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies what set of line breaking restrictions are in effect within the element.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-overflow-style\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"No preference, UA should use the first scrolling method in the list that it supports.\"\n        },\n        {\n          \"name\": \"-ms-autohiding-scrollbar\",\n          \"description\": \"Indicates the element displays auto-hiding scrollbars during mouse interactions and panning indicators during touch and keyboard interactions.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"Indicates the element does not display scrollbars or panning indicators, even when its content overflows.\"\n        },\n        {\n          \"name\": \"scrollbar\",\n          \"description\": 'Scrollbars are typically narrow strips inserted on one or two edges of an element and which often have arrows to click on and a \"thumb\" to drag up and down (or left and right) to move the contents of the element.'\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"auto | none | scrollbar | -ms-autohiding-scrollbar\",\n      \"relevance\": 0,\n      \"description\": \"Specify whether content is clipped when it overflows the element's content area.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-perspective\",\n      \"browsers\": [\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"No perspective transform is applied.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Applies the same transform as the perspective(<number>) transform function, except that it applies only to the positioned or transformed children of the element, not to the transform on the element itself.\",\n      \"restrictions\": [\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"-ms-perspective-origin\",\n      \"browsers\": [\n        \"IE10\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Establishes the origin for the perspective property. It effectively sets the X and Y position at which the viewer appears to be looking at the children of the element.\",\n      \"restrictions\": [\n        \"position\",\n        \"percentage\",\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"-ms-perspective-origin-x\",\n      \"browsers\": [\n        \"IE10\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Establishes the origin for the perspective property. It effectively sets the X  position at which the viewer appears to be looking at the children of the element.\",\n      \"restrictions\": [\n        \"position\",\n        \"percentage\",\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"-ms-perspective-origin-y\",\n      \"browsers\": [\n        \"IE10\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Establishes the origin for the perspective property. It effectively sets the Y position at which the viewer appears to be looking at the children of the element.\",\n      \"restrictions\": [\n        \"position\",\n        \"percentage\",\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"-ms-progress-appearance\",\n      \"browsers\": [\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"bar\"\n        },\n        {\n          \"name\": \"ring\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Gets or sets a value that specifies whether a progress control displays as a bar or a ring.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-scrollbar-3dlight-color\",\n      \"browsers\": [\n        \"IE8\"\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<color>\",\n      \"relevance\": 0,\n      \"description\": \"Determines the color of the top and left edges of the scroll box and scroll arrows of a scroll bar.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"-ms-scrollbar-arrow-color\",\n      \"browsers\": [\n        \"IE8\"\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<color>\",\n      \"relevance\": 0,\n      \"description\": \"Determines the color of the arrow elements of a scroll arrow.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"-ms-scrollbar-base-color\",\n      \"browsers\": [\n        \"IE8\"\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<color>\",\n      \"relevance\": 0,\n      \"description\": \"Determines the color of the main elements of a scroll bar, which include the scroll box, track, and scroll arrows.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"-ms-scrollbar-darkshadow-color\",\n      \"browsers\": [\n        \"IE8\"\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<color>\",\n      \"relevance\": 0,\n      \"description\": \"Determines the color of the gutter of a scroll bar.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"-ms-scrollbar-face-color\",\n      \"browsers\": [\n        \"IE8\"\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<color>\",\n      \"relevance\": 0,\n      \"description\": \"Determines the color of the scroll box and scroll arrows of a scroll bar.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"-ms-scrollbar-highlight-color\",\n      \"browsers\": [\n        \"IE8\"\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<color>\",\n      \"relevance\": 0,\n      \"description\": \"Determines the color of the top and left edges of the scroll box and scroll arrows of a scroll bar.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"-ms-scrollbar-shadow-color\",\n      \"browsers\": [\n        \"IE8\"\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<color>\",\n      \"relevance\": 0,\n      \"description\": \"Determines the color of the bottom and right edges of the scroll box and scroll arrows of a scroll bar.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"-ms-scrollbar-track-color\",\n      \"browsers\": [\n        \"IE8\"\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<color>\",\n      \"relevance\": 0,\n      \"description\": \"Determines the color of the track element of a scroll bar.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"-ms-scroll-chaining\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"chained\"\n        },\n        {\n          \"name\": \"none\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"chained | none\",\n      \"relevance\": 0,\n      \"description\": \"Gets or sets a value that indicates the scrolling behavior that occurs when a user hits the content boundary during a manipulation.\",\n      \"restrictions\": [\n        \"enum\",\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"-ms-scroll-limit\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<'-ms-scroll-limit-x-min'> <'-ms-scroll-limit-y-min'> <'-ms-scroll-limit-x-max'> <'-ms-scroll-limit-y-max'>\",\n      \"relevance\": 0,\n      \"description\": \"Gets or sets a shorthand value that sets values for the -ms-scroll-limit-x-min, -ms-scroll-limit-y-min, -ms-scroll-limit-x-max, and -ms-scroll-limit-y-max properties.\",\n      \"restrictions\": [\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"-ms-scroll-limit-x-max\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"auto | <length>\",\n      \"relevance\": 0,\n      \"description\": \"Gets or sets a value that specifies the maximum value for the scrollLeft property.\",\n      \"restrictions\": [\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"-ms-scroll-limit-x-min\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<length>\",\n      \"relevance\": 0,\n      \"description\": \"Gets or sets a value that specifies the minimum value for the scrollLeft property.\",\n      \"restrictions\": [\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"-ms-scroll-limit-y-max\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"auto | <length>\",\n      \"relevance\": 0,\n      \"description\": \"Gets or sets a value that specifies the maximum value for the scrollTop property.\",\n      \"restrictions\": [\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"-ms-scroll-limit-y-min\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<length>\",\n      \"relevance\": 0,\n      \"description\": \"Gets or sets a value that specifies the minimum value for the scrollTop property.\",\n      \"restrictions\": [\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"-ms-scroll-rails\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\"\n        },\n        {\n          \"name\": \"railed\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"none | railed\",\n      \"relevance\": 0,\n      \"description\": \"Gets or sets a value that indicates whether or not small motions perpendicular to the primary axis of motion will result in either changes to both the scrollTop and scrollLeft properties or a change to the primary axis (for instance, either the scrollTop or scrollLeft properties will change, but not both).\",\n      \"restrictions\": [\n        \"enum\",\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"-ms-scroll-snap-points-x\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"snapInterval(100%, 100%)\"\n        },\n        {\n          \"name\": \"snapList()\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"snapInterval( <length-percentage>, <length-percentage> ) | snapList( <length-percentage># )\",\n      \"relevance\": 0,\n      \"description\": \"Gets or sets a value that defines where snap-points will be located along the x-axis.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-scroll-snap-points-y\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"snapInterval(100%, 100%)\"\n        },\n        {\n          \"name\": \"snapList()\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"snapInterval( <length-percentage>, <length-percentage> ) | snapList( <length-percentage># )\",\n      \"relevance\": 0,\n      \"description\": \"Gets or sets a value that defines where snap-points will be located along the y-axis.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-scroll-snap-type\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"The visual viewport of this scroll container must ignore snap points, if any, when scrolled.\"\n        },\n        {\n          \"name\": \"mandatory\",\n          \"description\": \"The visual viewport of this scroll container is guaranteed to rest on a snap point when there are no active scrolling operations.\"\n        },\n        {\n          \"name\": \"proximity\",\n          \"description\": \"The visual viewport of this scroll container may come to rest on a snap point at the termination of a scroll at the discretion of the UA given the parameters of the scroll.\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"none | proximity | mandatory\",\n      \"relevance\": 0,\n      \"description\": \"Gets or sets a value that defines what type of snap-point should be used for the current element. There are two type of snap-points, with the primary difference being whether or not the user is guaranteed to always stop on a snap-point.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-scroll-snap-x\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"mandatory\"\n        },\n        {\n          \"name\": \"none\"\n        },\n        {\n          \"name\": \"proximity\"\n        },\n        {\n          \"name\": \"snapInterval(100%, 100%)\"\n        },\n        {\n          \"name\": \"snapList()\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-x'>\",\n      \"relevance\": 0,\n      \"description\": \"Gets or sets a shorthand value that sets values for the -ms-scroll-snap-type and -ms-scroll-snap-points-x properties.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-scroll-snap-y\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"mandatory\"\n        },\n        {\n          \"name\": \"none\"\n        },\n        {\n          \"name\": \"proximity\"\n        },\n        {\n          \"name\": \"snapInterval(100%, 100%)\"\n        },\n        {\n          \"name\": \"snapList()\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-y'>\",\n      \"relevance\": 0,\n      \"description\": \"Gets or sets a shorthand value that sets values for the -ms-scroll-snap-type and -ms-scroll-snap-points-y properties.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-scroll-translation\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\"\n        },\n        {\n          \"name\": \"vertical-to-horizontal\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"none | vertical-to-horizontal\",\n      \"relevance\": 0,\n      \"description\": \"Gets or sets a value that specifies whether vertical-to-horizontal scroll wheel translation occurs on the specified element.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-text-align-last\",\n      \"browsers\": [\n        \"E\",\n        \"IE8\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        },\n        {\n          \"name\": \"center\",\n          \"description\": \"The inline contents are centered within the line box.\"\n        },\n        {\n          \"name\": \"justify\",\n          \"description\": \"The text is justified according to the method specified by the 'text-justify' property.\"\n        },\n        {\n          \"name\": \"left\",\n          \"description\": \"The inline contents are aligned to the left edge of the line box. In vertical text, 'left' aligns to the edge of the line box that would be the start edge for left-to-right text.\"\n        },\n        {\n          \"name\": \"right\",\n          \"description\": \"The inline contents are aligned to the right edge of the line box. In vertical text, 'right' aligns to the edge of the line box that would be the end edge for left-to-right text.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Describes how the last line of a block or a line right before a forced line break is aligned when 'text-align' is set to 'justify'.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-text-autospace\",\n      \"browsers\": [\n        \"E\",\n        \"IE8\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"ideograph-alpha\",\n          \"description\": \"Creates 1/4em extra spacing between runs of ideographic letters and non-ideographic letters, such as Latin-based, Cyrillic, Greek, Arabic or Hebrew.\"\n        },\n        {\n          \"name\": \"ideograph-numeric\",\n          \"description\": \"Creates 1/4em extra spacing between runs of ideographic letters and numeric glyphs.\"\n        },\n        {\n          \"name\": \"ideograph-parenthesis\",\n          \"description\": \"Creates extra spacing between normal (non wide) parenthesis and ideographs.\"\n        },\n        {\n          \"name\": \"ideograph-space\",\n          \"description\": \"Extends the width of the space character while surrounded by ideographs.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"No extra space is created.\"\n        },\n        {\n          \"name\": \"punctuation\",\n          \"description\": \"Creates extra non-breaking spacing around punctuation as required by language-specific typographic conventions.\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"none | ideograph-alpha | ideograph-numeric | ideograph-parenthesis | ideograph-space\",\n      \"relevance\": 0,\n      \"description\": \"Determines whether or not a full-width punctuation mark character should be trimmed if it appears at the beginning of a line, so that its 'ink' lines up with the first glyph in the line above and below.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-text-combine-horizontal\",\n      \"browsers\": [\n        \"E\",\n        \"IE11\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"all\",\n          \"description\": \"Attempt to typeset horizontally all consecutive characters within the box such that they take up the space of a single character within the vertical line box.\"\n        },\n        {\n          \"name\": \"digits\",\n          \"description\": \"Attempt to typeset horizontally each maximal sequence of consecutive ASCII digits (U+0030-U+0039) that has as many or fewer characters than the specified integer such that it takes up the space of a single character within the vertical line box.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"No special processing.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"This property specifies the combination of multiple characters into the space of a single character.\",\n      \"restrictions\": [\n        \"enum\",\n        \"integer\"\n      ]\n    },\n    {\n      \"name\": \"-ms-text-justify\",\n      \"browsers\": [\n        \"E\",\n        \"IE8\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The UA determines the justification algorithm to follow, based on a balance between performance and adequate presentation quality.\"\n        },\n        {\n          \"name\": \"distribute\",\n          \"description\": \"Justification primarily changes spacing both at word separators and at grapheme cluster boundaries in all scripts except those in the connected and cursive groups. This value is sometimes used in e.g. Japanese, often with the 'text-align-last' property.\"\n        },\n        {\n          \"name\": \"inter-cluster\",\n          \"description\": \"Justification primarily changes spacing at word separators and at grapheme cluster boundaries in clustered scripts. This value is typically used for Southeast Asian scripts such as Thai.\"\n        },\n        {\n          \"name\": \"inter-ideograph\",\n          \"description\": \"Justification primarily changes spacing at word separators and at inter-graphemic boundaries in scripts that use no word spaces. This value is typically used for CJK languages.\"\n        },\n        {\n          \"name\": \"inter-word\",\n          \"description\": \"Justification primarily changes spacing at word separators. This value is typically used for languages that separate words using spaces, like English or (sometimes) Korean.\"\n        },\n        {\n          \"name\": \"kashida\",\n          \"description\": \"Justification primarily stretches Arabic and related scripts through the use of kashida or other calligraphic elongation.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Selects the justification algorithm used when 'text-align' is set to 'justify'. The property applies to block containers, but the UA may (but is not required to) also support it on inline elements.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-text-kashida-space\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Sets or retrieves the ratio of kashida expansion to white space expansion when justifying lines of text in the object.\",\n      \"restrictions\": [\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"-ms-text-overflow\",\n      \"browsers\": [\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"clip\",\n          \"description\": \"Clip inline content that overflows. Characters may be only partially rendered.\"\n        },\n        {\n          \"name\": \"ellipsis\",\n          \"description\": \"Render an ellipsis character (U+2026) to represent clipped inline content.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Text can overflow for example when it is prevented from wrapping\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-text-size-adjust\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Renderers must use the default size adjustment when displaying on a small device.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"Renderers must not do size adjustment when displaying on a small device.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies a size adjustment for displaying text content in mobile browsers.\",\n      \"restrictions\": [\n        \"enum\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"-ms-text-underline-position\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"alphabetic\",\n          \"description\": \"The underline is aligned with the alphabetic baseline. In this case the underline is likely to cross some descenders.\"\n        },\n        {\n          \"name\": \"auto\",\n          \"description\": \"The user agent may use any algorithm to determine the underline's position. In horizontal line layout, the underline should be aligned as for alphabetic. In vertical line layout, if the language is set to Japanese or Korean, the underline should be aligned as for over.\"\n        },\n        {\n          \"name\": \"over\",\n          \"description\": \"The underline is aligned with the 'top' (right in vertical writing) edge of the element's em-box. In this mode, an overline also switches sides.\"\n        },\n        {\n          \"name\": \"under\",\n          \"description\": \"The underline is aligned with the 'bottom' (left in vertical writing) edge of the element's em-box. In this case the underline usually does not cross the descenders. This is sometimes called 'accounting' underline.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Sets the position of an underline specified on the same element: it does not affect underlines specified by ancestor elements.This property is typically used in vertical writing contexts such as in Japanese documents where it often desired to have the underline appear 'over' (to the right of) the affected run of text\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-touch-action\",\n      \"browsers\": [\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The element is a passive element, with several exceptions.\"\n        },\n        {\n          \"name\": \"double-tap-zoom\",\n          \"description\": \"The element will zoom on double-tap.\"\n        },\n        {\n          \"name\": \"manipulation\",\n          \"description\": \"The element is a manipulation-causing element.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"The element is a manipulation-blocking element.\"\n        },\n        {\n          \"name\": \"pan-x\",\n          \"description\": \"The element permits touch-driven panning on the horizontal axis. The touch pan is performed on the nearest ancestor with horizontally scrollable content.\"\n        },\n        {\n          \"name\": \"pan-y\",\n          \"description\": \"The element permits touch-driven panning on the vertical axis. The touch pan is performed on the nearest ancestor with vertically scrollable content.\"\n        },\n        {\n          \"name\": \"pinch-zoom\",\n          \"description\": \"The element permits pinch-zooming. The pinch-zoom is performed on the nearest ancestor with zoomable content.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Gets or sets a value that indicates whether and how a given region can be manipulated by the user.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-touch-select\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"grippers\",\n          \"description\": \"Grippers are always on.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"Grippers are always off.\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"grippers | none\",\n      \"relevance\": 0,\n      \"description\": \"Gets or sets a value that toggles the 'gripper' visual elements that enable touch text selection.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-transform\",\n      \"browsers\": [\n        \"IE9-9\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"matrix()\",\n          \"description\": \"Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]\"\n        },\n        {\n          \"name\": \"matrix3d()\",\n          \"description\": \"Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order.\"\n        },\n        {\n          \"name\": \"none\"\n        },\n        {\n          \"name\": \"rotate()\",\n          \"description\": \"Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property.\"\n        },\n        {\n          \"name\": \"rotate3d()\",\n          \"description\": \"Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters.\"\n        },\n        {\n          \"name\": \"rotateX('angle')\",\n          \"description\": \"Specifies a clockwise rotation by the given angle about the X axis.\"\n        },\n        {\n          \"name\": \"rotateY('angle')\",\n          \"description\": \"Specifies a clockwise rotation by the given angle about the Y axis.\"\n        },\n        {\n          \"name\": \"rotateZ('angle')\",\n          \"description\": \"Specifies a clockwise rotation by the given angle about the Z axis.\"\n        },\n        {\n          \"name\": \"scale()\",\n          \"description\": \"Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first.\"\n        },\n        {\n          \"name\": \"scale3d()\",\n          \"description\": \"Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters.\"\n        },\n        {\n          \"name\": \"scaleX()\",\n          \"description\": \"Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter.\"\n        },\n        {\n          \"name\": \"scaleY()\",\n          \"description\": \"Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter.\"\n        },\n        {\n          \"name\": \"scaleZ()\",\n          \"description\": \"Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter.\"\n        },\n        {\n          \"name\": \"skew()\",\n          \"description\": \"Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis).\"\n        },\n        {\n          \"name\": \"skewX()\",\n          \"description\": \"Specifies a skew transformation along the X axis by the given angle.\"\n        },\n        {\n          \"name\": \"skewY()\",\n          \"description\": \"Specifies a skew transformation along the Y axis by the given angle.\"\n        },\n        {\n          \"name\": \"translate()\",\n          \"description\": \"Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter.\"\n        },\n        {\n          \"name\": \"translate3d()\",\n          \"description\": \"Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively.\"\n        },\n        {\n          \"name\": \"translateX()\",\n          \"description\": \"Specifies a translation by the given amount in the X direction.\"\n        },\n        {\n          \"name\": \"translateY()\",\n          \"description\": \"Specifies a translation by the given amount in the Y direction.\"\n        },\n        {\n          \"name\": \"translateZ()\",\n          \"description\": \"Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-transform-origin\",\n      \"browsers\": [\n        \"IE9-9\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Establishes the origin of transformation for an element.\",\n      \"restrictions\": [\n        \"position\",\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"-ms-transform-origin-x\",\n      \"browsers\": [\n        \"IE10\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"The x coordinate of the origin for transforms applied to an element with respect to its border box.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"-ms-transform-origin-y\",\n      \"browsers\": [\n        \"IE10\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"The y coordinate of the origin for transforms applied to an element with respect to its border box.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"-ms-transform-origin-z\",\n      \"browsers\": [\n        \"IE10\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"The z coordinate of the origin for transforms applied to an element with respect to its border box.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"-ms-user-select\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"element\"\n        },\n        {\n          \"name\": \"none\"\n        },\n        {\n          \"name\": \"text\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"none | element | text\",\n      \"relevance\": 0,\n      \"description\": \"Controls the appearance of selection.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-word-break\",\n      \"browsers\": [\n        \"IE8\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"break-all\",\n          \"description\": \"Lines may break between any two grapheme clusters for non-CJK scripts.\"\n        },\n        {\n          \"name\": \"keep-all\",\n          \"description\": \"Block characters can no longer create implied break points.\"\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"Breaks non-CJK scripts according to their own rules.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies line break opportunities for non-CJK scripts.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-word-wrap\",\n      \"browsers\": [\n        \"IE8\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"break-word\",\n          \"description\": \"An unbreakable 'word' may be broken at an arbitrary point if there are no otherwise-acceptable break points in the line.\"\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"Lines may break only at allowed break points.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies whether the UA may break within a word to prevent overflow when an otherwise-unbreakable string is too long to fit.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-wrap-flow\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"For floats an exclusion is created, for all other elements an exclusion is not created.\"\n        },\n        {\n          \"name\": \"both\",\n          \"description\": \"Inline flow content can flow on all sides of the exclusion.\"\n        },\n        {\n          \"name\": \"clear\",\n          \"description\": \"Inline flow content can only wrap on top and bottom of the exclusion and must leave the areas to the start and end edges of the exclusion box empty.\"\n        },\n        {\n          \"name\": \"end\",\n          \"description\": \"Inline flow content can wrap on the end side of the exclusion area but must leave the area to the start edge of the exclusion area empty.\"\n        },\n        {\n          \"name\": \"maximum\",\n          \"description\": \"Inline flow content can wrap on the side of the exclusion with the largest available space for the given line, and must leave the other side of the exclusion empty.\"\n        },\n        {\n          \"name\": \"minimum\",\n          \"description\": \"Inline flow content can flow around the edge of the exclusion with the smallest available space within the flow content's containing block, and must leave the other edge of the exclusion empty.\"\n        },\n        {\n          \"name\": \"start\",\n          \"description\": \"Inline flow content can wrap on the start edge of the exclusion area but must leave the area to end edge of the exclusion area empty.\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"auto | both | start | end | maximum | clear\",\n      \"relevance\": 0,\n      \"description\": \"An element becomes an exclusion when its 'wrap-flow' property has a computed value other than 'auto'.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-wrap-margin\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<length>\",\n      \"relevance\": 0,\n      \"description\": \"Gets or sets a value that is used to offset the inner wrap shape from other shapes.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"-ms-wrap-through\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"The exclusion element does not inherit its parent node's wrapping context. Its descendants are only subject to exclusion shapes defined inside the element.\"\n        },\n        {\n          \"name\": \"wrap\",\n          \"description\": \"The exclusion element inherits its parent node's wrapping context. Its descendant inline content wraps around exclusions defined outside the element.\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"wrap | none\",\n      \"relevance\": 0,\n      \"description\": \"Specifies if an element inherits its parent wrapping context. In other words if it is subject to the exclusions defined outside the element.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-writing-mode\",\n      \"browsers\": [\n        \"IE8\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"bt-lr\"\n        },\n        {\n          \"name\": \"bt-rl\"\n        },\n        {\n          \"name\": \"lr-bt\"\n        },\n        {\n          \"name\": \"lr-tb\"\n        },\n        {\n          \"name\": \"rl-bt\"\n        },\n        {\n          \"name\": \"rl-tb\"\n        },\n        {\n          \"name\": \"tb-lr\"\n        },\n        {\n          \"name\": \"tb-rl\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Shorthand property for both 'direction' and 'block-progression'.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-ms-zoom\",\n      \"browsers\": [\n        \"IE8\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"normal\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Sets or retrieves the magnification scale of the object.\",\n      \"restrictions\": [\n        \"enum\",\n        \"integer\",\n        \"number\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"-ms-zoom-animation\",\n      \"browsers\": [\n        \"IE10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"default\"\n        },\n        {\n          \"name\": \"none\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Gets or sets a value that indicates whether an animation is used when zooming.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"nav-down\",\n      \"browsers\": [\n        \"O9.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The user agent automatically determines which element to navigate the focus to in response to directional navigational input.\"\n        },\n        {\n          \"name\": \"current\",\n          \"description\": \"Indicates that the user agent should target the frame that the element is in.\"\n        },\n        {\n          \"name\": \"root\",\n          \"description\": \"Indicates that the user agent should target the full window.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Provides an way to control directional focus navigation.\",\n      \"restrictions\": [\n        \"enum\",\n        \"identifier\",\n        \"string\"\n      ]\n    },\n    {\n      \"name\": \"nav-index\",\n      \"browsers\": [\n        \"O9.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The element's sequential navigation order is assigned automatically by the user agent.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Provides an input-method-neutral way of specifying the sequential navigation order (also known as 'tabbing order').\",\n      \"restrictions\": [\n        \"number\"\n      ]\n    },\n    {\n      \"name\": \"nav-left\",\n      \"browsers\": [\n        \"O9.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The user agent automatically determines which element to navigate the focus to in response to directional navigational input.\"\n        },\n        {\n          \"name\": \"current\",\n          \"description\": \"Indicates that the user agent should target the frame that the element is in.\"\n        },\n        {\n          \"name\": \"root\",\n          \"description\": \"Indicates that the user agent should target the full window.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Provides an way to control directional focus navigation.\",\n      \"restrictions\": [\n        \"enum\",\n        \"identifier\",\n        \"string\"\n      ]\n    },\n    {\n      \"name\": \"nav-right\",\n      \"browsers\": [\n        \"O9.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The user agent automatically determines which element to navigate the focus to in response to directional navigational input.\"\n        },\n        {\n          \"name\": \"current\",\n          \"description\": \"Indicates that the user agent should target the frame that the element is in.\"\n        },\n        {\n          \"name\": \"root\",\n          \"description\": \"Indicates that the user agent should target the full window.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Provides an way to control directional focus navigation.\",\n      \"restrictions\": [\n        \"enum\",\n        \"identifier\",\n        \"string\"\n      ]\n    },\n    {\n      \"name\": \"nav-up\",\n      \"browsers\": [\n        \"O9.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The user agent automatically determines which element to navigate the focus to in response to directional navigational input.\"\n        },\n        {\n          \"name\": \"current\",\n          \"description\": \"Indicates that the user agent should target the frame that the element is in.\"\n        },\n        {\n          \"name\": \"root\",\n          \"description\": \"Indicates that the user agent should target the full window.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Provides an way to control directional focus navigation.\",\n      \"restrictions\": [\n        \"enum\",\n        \"identifier\",\n        \"string\"\n      ]\n    },\n    {\n      \"name\": \"negative\",\n      \"browsers\": [\n        \"FF33\"\n      ],\n      \"atRule\": \"@counter-style\",\n      \"syntax\": \"<symbol> <symbol>?\",\n      \"relevance\": 50,\n      \"description\": \"@counter-style descriptor. Defines how to alter the representation when the counter value is negative.\",\n      \"restrictions\": [\n        \"image\",\n        \"identifier\",\n        \"string\"\n      ]\n    },\n    {\n      \"name\": \"-o-animation\",\n      \"browsers\": [\n        \"O12\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"alternate\",\n          \"description\": \"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"\n        },\n        {\n          \"name\": \"alternate-reverse\",\n          \"description\": \"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"\n        },\n        {\n          \"name\": \"backwards\",\n          \"description\": \"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"\n        },\n        {\n          \"name\": \"both\",\n          \"description\": \"Both forwards and backwards fill modes are applied.\"\n        },\n        {\n          \"name\": \"forwards\",\n          \"description\": \"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"\n        },\n        {\n          \"name\": \"infinite\",\n          \"description\": \"Causes the animation to repeat forever.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"No animation is performed\"\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"Normal playback.\"\n        },\n        {\n          \"name\": \"reverse\",\n          \"description\": \"All iterations of the animation are played in the reverse direction from the way they were specified.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Shorthand property combines six of the animation properties into a single property.\",\n      \"restrictions\": [\n        \"time\",\n        \"enum\",\n        \"timing-function\",\n        \"identifier\",\n        \"number\"\n      ]\n    },\n    {\n      \"name\": \"-o-animation-delay\",\n      \"browsers\": [\n        \"O12\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Defines when the animation will start.\",\n      \"restrictions\": [\n        \"time\"\n      ]\n    },\n    {\n      \"name\": \"-o-animation-direction\",\n      \"browsers\": [\n        \"O12\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"alternate\",\n          \"description\": \"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"\n        },\n        {\n          \"name\": \"alternate-reverse\",\n          \"description\": \"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"Normal playback.\"\n        },\n        {\n          \"name\": \"reverse\",\n          \"description\": \"All iterations of the animation are played in the reverse direction from the way they were specified.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Defines whether or not the animation should play in reverse on alternate cycles.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-o-animation-duration\",\n      \"browsers\": [\n        \"O12\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Defines the length of time that an animation takes to complete one cycle.\",\n      \"restrictions\": [\n        \"time\"\n      ]\n    },\n    {\n      \"name\": \"-o-animation-fill-mode\",\n      \"browsers\": [\n        \"O12\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"backwards\",\n          \"description\": \"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"\n        },\n        {\n          \"name\": \"both\",\n          \"description\": \"Both forwards and backwards fill modes are applied.\"\n        },\n        {\n          \"name\": \"forwards\",\n          \"description\": \"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"There is no change to the property value between the time the animation is applied and the time the animation begins playing or after the animation completes.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Defines what values are applied by the animation outside the time it is executing.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-o-animation-iteration-count\",\n      \"browsers\": [\n        \"O12\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"infinite\",\n          \"description\": \"Causes the animation to repeat forever.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Defines the number of times an animation cycle is played. The default value is one, meaning the animation will play from beginning to end once.\",\n      \"restrictions\": [\n        \"number\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-o-animation-name\",\n      \"browsers\": [\n        \"O12\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"No animation is performed\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Defines a list of animations that apply. Each name is used to select the keyframe at-rule that provides the property values for the animation.\",\n      \"restrictions\": [\n        \"identifier\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-o-animation-play-state\",\n      \"browsers\": [\n        \"O12\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"paused\",\n          \"description\": \"A running animation will be paused.\"\n        },\n        {\n          \"name\": \"running\",\n          \"description\": \"Resume playback of a paused animation.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Defines whether the animation is running or paused.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-o-animation-timing-function\",\n      \"browsers\": [\n        \"O12\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Describes how the animation will progress over one cycle of its duration. See the 'transition-timing-function'.\",\n      \"restrictions\": [\n        \"timing-function\"\n      ]\n    },\n    {\n      \"name\": \"object-fit\",\n      \"browsers\": [\n        \"E79\",\n        \"FF36\",\n        \"S10\",\n        \"C32\",\n        \"O19\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"contain\",\n          \"description\": \"The replaced content is sized to maintain its aspect ratio while fitting within the element's content box: its concrete object size is resolved as a contain constraint against the element's used width and height.\"\n        },\n        {\n          \"name\": \"cover\",\n          \"description\": \"The replaced content is sized to maintain its aspect ratio while filling the element's entire content box: its concrete object size is resolved as a cover constraint against the element's used width and height.\"\n        },\n        {\n          \"name\": \"fill\",\n          \"description\": \"The replaced content is sized to fill the element's content box: the object's concrete object size is the element's used width and height.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"The replaced content is not resized to fit inside the element's content box\"\n        },\n        {\n          \"name\": \"scale-down\",\n          \"description\": \"Size the content as if 'none' or 'contain' were specified, whichever would result in a smaller concrete object size.\"\n        }\n      ],\n      \"syntax\": \"fill | contain | cover | none | scale-down\",\n      \"relevance\": 72,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/object-fit\"\n        }\n      ],\n      \"description\": \"Specifies how the contents of a replaced element should be scaled relative to the box established by its used height and width.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"object-position\",\n      \"browsers\": [\n        \"E79\",\n        \"FF36\",\n        \"S10\",\n        \"C32\",\n        \"O19\"\n      ],\n      \"syntax\": \"<position>\",\n      \"relevance\": 57,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/object-position\"\n        }\n      ],\n      \"description\": \"Determines the alignment of the replaced element inside its box.\",\n      \"restrictions\": [\n        \"position\",\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"-o-border-image\",\n      \"browsers\": [\n        \"O11.6\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"If 'auto' is specified then the border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead.\"\n        },\n        {\n          \"name\": \"fill\",\n          \"description\": \"Causes the middle part of the border-image to be preserved.\"\n        },\n        {\n          \"name\": \"none\"\n        },\n        {\n          \"name\": \"repeat\",\n          \"description\": \"The image is tiled (repeated) to fill the area.\"\n        },\n        {\n          \"name\": \"round\",\n          \"description\": \"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does.\"\n        },\n        {\n          \"name\": \"space\",\n          \"description\": \"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles.\"\n        },\n        {\n          \"name\": \"stretch\",\n          \"description\": \"The image is stretched to fill the area.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Shorthand property for setting 'border-image-source', 'border-image-slice', 'border-image-width', 'border-image-outset' and 'border-image-repeat'. Omitted values are set to their initial values.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\",\n        \"number\",\n        \"image\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-o-object-fit\",\n      \"browsers\": [\n        \"O10.6\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"contain\",\n          \"description\": \"The replaced content is sized to maintain its aspect ratio while fitting within the element's content box: its concrete object size is resolved as a contain constraint against the element's used width and height.\"\n        },\n        {\n          \"name\": \"cover\",\n          \"description\": \"The replaced content is sized to maintain its aspect ratio while filling the element's entire content box: its concrete object size is resolved as a cover constraint against the element's used width and height.\"\n        },\n        {\n          \"name\": \"fill\",\n          \"description\": \"The replaced content is sized to fill the element's content box: the object's concrete object size is the element's used width and height.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"The replaced content is not resized to fit inside the element's content box\"\n        },\n        {\n          \"name\": \"scale-down\",\n          \"description\": \"Size the content as if 'none' or 'contain' were specified, whichever would result in a smaller concrete object size.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies how the contents of a replaced element should be scaled relative to the box established by its used height and width.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-o-object-position\",\n      \"browsers\": [\n        \"O10.6\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Determines the alignment of the replaced element inside its box.\",\n      \"restrictions\": [\n        \"position\",\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"opacity\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S2\",\n        \"C1\",\n        \"IE9\",\n        \"O9\"\n      ],\n      \"syntax\": \"<alpha-value>\",\n      \"relevance\": 92,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/opacity\"\n        }\n      ],\n      \"description\": \"Opacity of an element's text, where 1 is opaque and 0 is entirely transparent.\",\n      \"restrictions\": [\n        \"number(0-1)\"\n      ]\n    },\n    {\n      \"name\": \"order\",\n      \"browsers\": [\n        \"E12\",\n        \"FF20\",\n        \"S9\",\n        \"C29\",\n        \"IE11\",\n        \"O12.1\"\n      ],\n      \"syntax\": \"<integer>\",\n      \"relevance\": 67,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/order\"\n        }\n      ],\n      \"description\": \"Controls the order in which children of a flex container appear within the flex container, by assigning them to ordinal groups.\",\n      \"restrictions\": [\n        \"integer\"\n      ]\n    },\n    {\n      \"name\": \"orphans\",\n      \"browsers\": [\n        \"E12\",\n        \"S1.3\",\n        \"C25\",\n        \"IE8\",\n        \"O9.2\"\n      ],\n      \"syntax\": \"<integer>\",\n      \"relevance\": 51,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/orphans\"\n        }\n      ],\n      \"description\": \"Specifies the minimum number of line boxes in a block container that must be left in a fragment before a fragmentation break.\",\n      \"restrictions\": [\n        \"integer\"\n      ]\n    },\n    {\n      \"name\": \"-o-table-baseline\",\n      \"browsers\": [\n        \"O9.6\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Determines which row of a inline-table should be used as baseline of inline-table.\",\n      \"restrictions\": [\n        \"integer\"\n      ]\n    },\n    {\n      \"name\": \"-o-tab-size\",\n      \"browsers\": [\n        \"O10.6\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"This property determines the width of the tab character (U+0009), in space characters (U+0020), when rendered.\",\n      \"restrictions\": [\n        \"integer\",\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"-o-text-overflow\",\n      \"browsers\": [\n        \"O10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"clip\",\n          \"description\": \"Clip inline content that overflows. Characters may be only partially rendered.\"\n        },\n        {\n          \"name\": \"ellipsis\",\n          \"description\": \"Render an ellipsis character (U+2026) to represent clipped inline content.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Text can overflow for example when it is prevented from wrapping\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-o-transform\",\n      \"browsers\": [\n        \"O10.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"matrix()\",\n          \"description\": \"Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]\"\n        },\n        {\n          \"name\": \"matrix3d()\",\n          \"description\": \"Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order.\"\n        },\n        {\n          \"name\": \"none\"\n        },\n        {\n          \"name\": \"rotate()\",\n          \"description\": \"Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property.\"\n        },\n        {\n          \"name\": \"rotate3d()\",\n          \"description\": \"Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters.\"\n        },\n        {\n          \"name\": \"rotateX('angle')\",\n          \"description\": \"Specifies a clockwise rotation by the given angle about the X axis.\"\n        },\n        {\n          \"name\": \"rotateY('angle')\",\n          \"description\": \"Specifies a clockwise rotation by the given angle about the Y axis.\"\n        },\n        {\n          \"name\": \"rotateZ('angle')\",\n          \"description\": \"Specifies a clockwise rotation by the given angle about the Z axis.\"\n        },\n        {\n          \"name\": \"scale()\",\n          \"description\": \"Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first.\"\n        },\n        {\n          \"name\": \"scale3d()\",\n          \"description\": \"Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters.\"\n        },\n        {\n          \"name\": \"scaleX()\",\n          \"description\": \"Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter.\"\n        },\n        {\n          \"name\": \"scaleY()\",\n          \"description\": \"Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter.\"\n        },\n        {\n          \"name\": \"scaleZ()\",\n          \"description\": \"Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter.\"\n        },\n        {\n          \"name\": \"skew()\",\n          \"description\": \"Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis).\"\n        },\n        {\n          \"name\": \"skewX()\",\n          \"description\": \"Specifies a skew transformation along the X axis by the given angle.\"\n        },\n        {\n          \"name\": \"skewY()\",\n          \"description\": \"Specifies a skew transformation along the Y axis by the given angle.\"\n        },\n        {\n          \"name\": \"translate()\",\n          \"description\": \"Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter.\"\n        },\n        {\n          \"name\": \"translate3d()\",\n          \"description\": \"Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively.\"\n        },\n        {\n          \"name\": \"translateX()\",\n          \"description\": \"Specifies a translation by the given amount in the X direction.\"\n        },\n        {\n          \"name\": \"translateY()\",\n          \"description\": \"Specifies a translation by the given amount in the Y direction.\"\n        },\n        {\n          \"name\": \"translateZ()\",\n          \"description\": \"Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-o-transform-origin\",\n      \"browsers\": [\n        \"O10.5\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Establishes the origin of transformation for an element.\",\n      \"restrictions\": [\n        \"positon\",\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"-o-transition\",\n      \"browsers\": [\n        \"O11.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"all\",\n          \"description\": \"Every property that is able to undergo a transition will do so.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"No property will transition.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Shorthand property combines four of the transition properties into a single property.\",\n      \"restrictions\": [\n        \"time\",\n        \"property\",\n        \"timing-function\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-o-transition-delay\",\n      \"browsers\": [\n        \"O11.5\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Defines when the transition will start. It allows a transition to begin execution some period of time from when it is applied.\",\n      \"restrictions\": [\n        \"time\"\n      ]\n    },\n    {\n      \"name\": \"-o-transition-duration\",\n      \"browsers\": [\n        \"O11.5\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies how long the transition from the old value to the new value should take.\",\n      \"restrictions\": [\n        \"time\"\n      ]\n    },\n    {\n      \"name\": \"-o-transition-property\",\n      \"browsers\": [\n        \"O11.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"all\",\n          \"description\": \"Every property that is able to undergo a transition will do so.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"No property will transition.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies the name of the CSS property to which the transition is applied.\",\n      \"restrictions\": [\n        \"property\"\n      ]\n    },\n    {\n      \"name\": \"-o-transition-timing-function\",\n      \"browsers\": [\n        \"O11.5\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Describes how the intermediate values used during a transition will be calculated.\",\n      \"restrictions\": [\n        \"timing-function\"\n      ]\n    },\n    {\n      \"name\": \"offset-block-end\",\n      \"browsers\": [\n        \"FF41\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Logical 'bottom'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"offset-block-start\",\n      \"browsers\": [\n        \"FF41\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Logical 'top'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"offset-inline-end\",\n      \"browsers\": [\n        \"FF41\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Logical 'right'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"offset-inline-start\",\n      \"browsers\": [\n        \"FF41\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Logical 'left'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"outline\",\n      \"browsers\": [\n        \"E94\",\n        \"FF88\",\n        \"S16.4\",\n        \"C94\",\n        \"IE8\",\n        \"O80\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Permits the user agent to render a custom outline style, typically the default platform style.\"\n        },\n        {\n          \"name\": \"invert\",\n          \"browsers\": [\n            \"E94\",\n            \"FF88\",\n            \"S16.4\",\n            \"C94\",\n            \"IE8\",\n            \"O80\"\n          ],\n          \"description\": \"Performs a color inversion on the pixels on the screen.\"\n        }\n      ],\n      \"syntax\": \"[ <'outline-color'> || <'outline-style'> || <'outline-width'> ]\",\n      \"relevance\": 88,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/outline\"\n        }\n      ],\n      \"description\": \"Shorthand property for 'outline-style', 'outline-width', and 'outline-color'.\",\n      \"restrictions\": [\n        \"length\",\n        \"line-width\",\n        \"line-style\",\n        \"color\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"outline-color\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1.5\",\n        \"S1.2\",\n        \"C1\",\n        \"IE8\",\n        \"O7\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"invert\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1.5\",\n            \"S1.2\",\n            \"C1\",\n            \"IE8\",\n            \"O7\"\n          ],\n          \"description\": \"Performs a color inversion on the pixels on the screen.\"\n        }\n      ],\n      \"syntax\": \"auto | <color>\",\n      \"relevance\": 61,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/outline-color\"\n        }\n      ],\n      \"description\": \"The color of the outline.\",\n      \"restrictions\": [\n        \"enum\",\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"outline-offset\",\n      \"browsers\": [\n        \"E15\",\n        \"FF1.5\",\n        \"S1.2\",\n        \"C1\",\n        \"O9.5\"\n      ],\n      \"syntax\": \"<length>\",\n      \"relevance\": 69,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/outline-offset\"\n        }\n      ],\n      \"description\": \"Offset the outline and draw it beyond the border edge.\",\n      \"restrictions\": [\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"outline-style\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1.5\",\n        \"S1.2\",\n        \"C1\",\n        \"IE8\",\n        \"O7\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Permits the user agent to render a custom outline style, typically the default platform style.\"\n        }\n      ],\n      \"syntax\": \"auto | <'border-style'>\",\n      \"relevance\": 61,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/outline-style\"\n        }\n      ],\n      \"description\": \"Style of the outline.\",\n      \"restrictions\": [\n        \"line-style\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"outline-width\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1.5\",\n        \"S1.2\",\n        \"C1\",\n        \"IE8\",\n        \"O7\"\n      ],\n      \"syntax\": \"<line-width>\",\n      \"relevance\": 62,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/outline-width\"\n        }\n      ],\n      \"description\": \"Width of the outline.\",\n      \"restrictions\": [\n        \"length\",\n        \"line-width\"\n      ]\n    },\n    {\n      \"name\": \"overflow\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O7\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The behavior of the 'auto' value is UA-dependent, but should cause a scrolling mechanism to be provided for overflowing boxes.\"\n        },\n        {\n          \"name\": \"hidden\",\n          \"description\": \"Content is clipped and no scrolling mechanism should be provided to view the content outside the clipping region.\"\n        },\n        {\n          \"name\": \"-moz-hidden-unscrollable\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O7\"\n          ],\n          \"description\": \"Same as the standardized 'clip', except doesn't establish a block formatting context.\"\n        },\n        {\n          \"name\": \"scroll\",\n          \"description\": \"Content is clipped and if the user agent uses a scrolling mechanism that is visible on the screen (such as a scroll bar or a panner), that mechanism should be displayed for a box whether or not any of its content is clipped.\"\n        },\n        {\n          \"name\": \"visible\",\n          \"description\": \"Content is not clipped, i.e., it may be rendered outside the content box.\"\n        }\n      ],\n      \"syntax\": \"[ visible | hidden | clip | scroll | auto ]{1,2}\",\n      \"relevance\": 93,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/overflow\"\n        }\n      ],\n      \"description\": \"Shorthand for setting 'overflow-x' and 'overflow-y'.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"overflow-wrap\",\n      \"browsers\": [\n        \"E18\",\n        \"FF49\",\n        \"S7\",\n        \"C23\",\n        \"IE5.5\",\n        \"O12.1\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"break-word\",\n          \"description\": \"An otherwise unbreakable sequence of characters may be broken at an arbitrary point if there are no otherwise-acceptable break points in the line.\"\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"Lines may break only at allowed break points.\"\n        }\n      ],\n      \"syntax\": \"normal | break-word | anywhere\",\n      \"relevance\": 65,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/overflow-wrap\"\n        }\n      ],\n      \"description\": \"Specifies whether the UA may break within a word to prevent overflow when an otherwise-unbreakable string is too long to fit within the line box.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"overflow-x\",\n      \"browsers\": [\n        \"E12\",\n        \"FF3.5\",\n        \"S3\",\n        \"C1\",\n        \"IE5\",\n        \"O9.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The behavior of the 'auto' value is UA-dependent, but should cause a scrolling mechanism to be provided for overflowing boxes.\"\n        },\n        {\n          \"name\": \"hidden\",\n          \"description\": \"Content is clipped and no scrolling mechanism should be provided to view the content outside the clipping region.\"\n        },\n        {\n          \"name\": \"scroll\",\n          \"description\": \"Content is clipped and if the user agent uses a scrolling mechanism that is visible on the screen (such as a scroll bar or a panner), that mechanism should be displayed for a box whether or not any of its content is clipped.\"\n        },\n        {\n          \"name\": \"visible\",\n          \"description\": \"Content is not clipped, i.e., it may be rendered outside the content box.\"\n        }\n      ],\n      \"syntax\": \"visible | hidden | clip | scroll | auto\",\n      \"relevance\": 81,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/overflow-x\"\n        }\n      ],\n      \"description\": \"Specifies the handling of overflow in the horizontal direction.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"overflow-y\",\n      \"browsers\": [\n        \"E12\",\n        \"FF3.5\",\n        \"S3\",\n        \"C1\",\n        \"IE5\",\n        \"O9.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The behavior of the 'auto' value is UA-dependent, but should cause a scrolling mechanism to be provided for overflowing boxes.\"\n        },\n        {\n          \"name\": \"hidden\",\n          \"description\": \"Content is clipped and no scrolling mechanism should be provided to view the content outside the clipping region.\"\n        },\n        {\n          \"name\": \"scroll\",\n          \"description\": \"Content is clipped and if the user agent uses a scrolling mechanism that is visible on the screen (such as a scroll bar or a panner), that mechanism should be displayed for a box whether or not any of its content is clipped.\"\n        },\n        {\n          \"name\": \"visible\",\n          \"description\": \"Content is not clipped, i.e., it may be rendered outside the content box.\"\n        }\n      ],\n      \"syntax\": \"visible | hidden | clip | scroll | auto\",\n      \"relevance\": 82,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/overflow-y\"\n        }\n      ],\n      \"description\": \"Specifies the handling of overflow in the vertical direction.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"pad\",\n      \"browsers\": [\n        \"FF33\"\n      ],\n      \"atRule\": \"@counter-style\",\n      \"syntax\": \"<integer> && <symbol>\",\n      \"relevance\": 50,\n      \"description\": '@counter-style descriptor. Specifies a \"fixed-width\" counter style, where representations shorter than the pad value are padded with a particular <symbol>',\n      \"restrictions\": [\n        \"integer\",\n        \"image\",\n        \"string\",\n        \"identifier\"\n      ]\n    },\n    {\n      \"name\": \"padding\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"values\": [],\n      \"syntax\": \"[ <length> | <percentage> ]{1,4}\",\n      \"relevance\": 95,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/padding\"\n        }\n      ],\n      \"description\": \"Shorthand property to set values for the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"padding-bottom\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"syntax\": \"<length> | <percentage>\",\n      \"relevance\": 88,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/padding-bottom\"\n        }\n      ],\n      \"description\": \"Shorthand property to set values for the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"padding-block-end\",\n      \"browsers\": [\n        \"E79\",\n        \"FF41\",\n        \"S12.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"syntax\": \"<'padding-left'>\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/padding-block-end\"\n        }\n      ],\n      \"description\": \"Logical 'padding-bottom'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"padding-block-start\",\n      \"browsers\": [\n        \"E79\",\n        \"FF41\",\n        \"S12.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"syntax\": \"<'padding-left'>\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/padding-block-start\"\n        }\n      ],\n      \"description\": \"Logical 'padding-top'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"padding-inline-end\",\n      \"browsers\": [\n        \"E79\",\n        \"FF41\",\n        \"S12.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"syntax\": \"<'padding-left'>\",\n      \"relevance\": 55,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/padding-inline-end\"\n        }\n      ],\n      \"description\": \"Logical 'padding-right'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"padding-inline-start\",\n      \"browsers\": [\n        \"E79\",\n        \"FF41\",\n        \"S12.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"syntax\": \"<'padding-left'>\",\n      \"relevance\": 56,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/padding-inline-start\"\n        }\n      ],\n      \"description\": \"Logical 'padding-left'. Mapping depends on the parent element's 'writing-mode', 'direction', and 'text-orientation'.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"padding-left\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"syntax\": \"<length> | <percentage>\",\n      \"relevance\": 89,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/padding-left\"\n        }\n      ],\n      \"description\": \"Shorthand property to set values for the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"padding-right\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"syntax\": \"<length> | <percentage>\",\n      \"relevance\": 88,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/padding-right\"\n        }\n      ],\n      \"description\": \"Shorthand property to set values for the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"padding-top\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"syntax\": \"<length> | <percentage>\",\n      \"relevance\": 89,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/padding-top\"\n        }\n      ],\n      \"description\": \"Shorthand property to set values for the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"page-break-after\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1.2\",\n        \"C1\",\n        \"IE4\",\n        \"O7\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"always\",\n          \"description\": \"Always force a page break after the generated box.\"\n        },\n        {\n          \"name\": \"auto\",\n          \"description\": \"Neither force nor forbid a page break after generated box.\"\n        },\n        {\n          \"name\": \"avoid\",\n          \"description\": \"Avoid a page break after the generated box.\"\n        },\n        {\n          \"name\": \"left\",\n          \"description\": \"Force one or two page breaks after the generated box so that the next page is formatted as a left page.\"\n        },\n        {\n          \"name\": \"right\",\n          \"description\": \"Force one or two page breaks after the generated box so that the next page is formatted as a right page.\"\n        }\n      ],\n      \"syntax\": \"auto | always | avoid | left | right | recto | verso\",\n      \"relevance\": 52,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/page-break-after\"\n        }\n      ],\n      \"description\": \"Defines rules for page breaks after an element.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"page-break-before\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1.2\",\n        \"C1\",\n        \"IE4\",\n        \"O7\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"always\",\n          \"description\": \"Always force a page break before the generated box.\"\n        },\n        {\n          \"name\": \"auto\",\n          \"description\": \"Neither force nor forbid a page break before the generated box.\"\n        },\n        {\n          \"name\": \"avoid\",\n          \"description\": \"Avoid a page break before the generated box.\"\n        },\n        {\n          \"name\": \"left\",\n          \"description\": \"Force one or two page breaks before the generated box so that the next page is formatted as a left page.\"\n        },\n        {\n          \"name\": \"right\",\n          \"description\": \"Force one or two page breaks before the generated box so that the next page is formatted as a right page.\"\n        }\n      ],\n      \"syntax\": \"auto | always | avoid | left | right | recto | verso\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/page-break-before\"\n        }\n      ],\n      \"description\": \"Defines rules for page breaks before an element.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"page-break-inside\",\n      \"browsers\": [\n        \"E12\",\n        \"FF19\",\n        \"S1.3\",\n        \"C1\",\n        \"IE8\",\n        \"O7\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Neither force nor forbid a page break inside the generated box.\"\n        },\n        {\n          \"name\": \"avoid\",\n          \"description\": \"Avoid a page break inside the generated box.\"\n        }\n      ],\n      \"syntax\": \"auto | avoid\",\n      \"relevance\": 53,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/page-break-inside\"\n        }\n      ],\n      \"description\": \"Defines rules for page breaks inside an element.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"paint-order\",\n      \"browsers\": [\n        \"E79\",\n        \"FF60\",\n        \"S11\",\n        \"C35\",\n        \"O22\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"fill\"\n        },\n        {\n          \"name\": \"markers\"\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"The element is painted with the standard order of painting operations: the 'fill' is painted first, then its 'stroke' and finally its markers.\"\n        },\n        {\n          \"name\": \"stroke\"\n        }\n      ],\n      \"syntax\": \"normal | [ fill || stroke || markers ]\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/paint-order\"\n        }\n      ],\n      \"description\": \"Controls the order that the three paint operations that shapes and text are rendered with: their fill, their stroke and any markers they might have.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"perspective\",\n      \"browsers\": [\n        \"E12\",\n        \"FF16\",\n        \"S9\",\n        \"C36\",\n        \"IE10\",\n        \"O23\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"No perspective transform is applied.\"\n        }\n      ],\n      \"syntax\": \"none | <length>\",\n      \"relevance\": 55,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/perspective\"\n        }\n      ],\n      \"description\": \"Applies the same transform as the perspective(<number>) transform function, except that it applies only to the positioned or transformed children of the element, not to the transform on the element itself.\",\n      \"restrictions\": [\n        \"length\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"perspective-origin\",\n      \"browsers\": [\n        \"E12\",\n        \"FF16\",\n        \"S9\",\n        \"C36\",\n        \"IE10\",\n        \"O23\"\n      ],\n      \"syntax\": \"<position>\",\n      \"relevance\": 51,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/perspective-origin\"\n        }\n      ],\n      \"description\": \"Establishes the origin for the perspective property. It effectively sets the X and Y position at which the viewer appears to be looking at the children of the element.\",\n      \"restrictions\": [\n        \"position\",\n        \"percentage\",\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"pointer-events\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1.5\",\n        \"S4\",\n        \"C1\",\n        \"IE11\",\n        \"O9\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"all\",\n          \"description\": \"The given element can be the target element for pointer events whenever the pointer is over either the interior or the perimeter of the element.\"\n        },\n        {\n          \"name\": \"fill\",\n          \"description\": \"The given element can be the target element for pointer events whenever the pointer is over the interior of the element.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"The given element does not receive pointer events.\"\n        },\n        {\n          \"name\": \"painted\",\n          \"description\": 'The given element can be the target element for pointer events when the pointer is over a \"painted\" area. '\n        },\n        {\n          \"name\": \"stroke\",\n          \"description\": \"The given element can be the target element for pointer events whenever the pointer is over the perimeter of the element.\"\n        },\n        {\n          \"name\": \"visible\",\n          \"description\": \"The given element can be the target element for pointer events when the 'visibility' property is set to visible and the pointer is over either the interior or the perimeter of the element.\"\n        },\n        {\n          \"name\": \"visibleFill\",\n          \"description\": \"The given element can be the target element for pointer events when the 'visibility' property is set to visible and when the pointer is over the interior of the element.\"\n        },\n        {\n          \"name\": \"visiblePainted\",\n          \"description\": \"The given element can be the target element for pointer events when the 'visibility' property is set to visible and when the pointer is over a 'painted' area.\"\n        },\n        {\n          \"name\": \"visibleStroke\",\n          \"description\": \"The given element can be the target element for pointer events when the 'visibility' property is set to visible and when the pointer is over the perimeter of the element.\"\n        }\n      ],\n      \"syntax\": \"auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit\",\n      \"relevance\": 82,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/pointer-events\"\n        }\n      ],\n      \"description\": \"Specifies under what circumstances a given element can be the target element for a pointer event.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"position\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O4\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"absolute\",\n          \"description\": \"The box's position (and possibly size) is specified with the 'top', 'right', 'bottom', and 'left' properties. These properties specify offsets with respect to the box's 'containing block'.\"\n        },\n        {\n          \"name\": \"fixed\",\n          \"description\": \"The box's position is calculated according to the 'absolute' model, but in addition, the box is fixed with respect to some reference. As with the 'absolute' model, the box's margins do not collapse with any other margins.\"\n        },\n        {\n          \"name\": \"-ms-page\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O4\"\n          ],\n          \"description\": \"The box's position is calculated according to the 'absolute' model.\"\n        },\n        {\n          \"name\": \"relative\",\n          \"description\": \"The box's position is calculated according to the normal flow (this is called the position in normal flow). Then the box is offset relative to its normal position.\"\n        },\n        {\n          \"name\": \"static\",\n          \"description\": \"The box is a normal box, laid out according to the normal flow. The 'top', 'right', 'bottom', and 'left' properties do not apply.\"\n        },\n        {\n          \"name\": \"sticky\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O4\"\n          ],\n          \"description\": \"The box's position is calculated according to the normal flow. Then the box is offset relative to its flow root and containing block and in all cases, including table elements, does not affect the position of any following boxes.\"\n        },\n        {\n          \"name\": \"-webkit-sticky\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O4\"\n          ],\n          \"description\": \"The box's position is calculated according to the normal flow. Then the box is offset relative to its flow root and containing block and in all cases, including table elements, does not affect the position of any following boxes.\"\n        }\n      ],\n      \"syntax\": \"static | relative | absolute | sticky | fixed\",\n      \"relevance\": 95,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/position\"\n        }\n      ],\n      \"description\": \"The position CSS property sets how an element is positioned in a document. The top, right, bottom, and left properties determine the final location of positioned elements.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"prefix\",\n      \"browsers\": [\n        \"FF33\"\n      ],\n      \"atRule\": \"@counter-style\",\n      \"syntax\": \"<symbol>\",\n      \"relevance\": 50,\n      \"description\": \"@counter-style descriptor. Specifies a <symbol> that is prepended to the marker representation.\",\n      \"restrictions\": [\n        \"image\",\n        \"string\",\n        \"identifier\"\n      ]\n    },\n    {\n      \"name\": \"quotes\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1.5\",\n        \"S9\",\n        \"C11\",\n        \"IE8\",\n        \"O4\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"The 'open-quote' and 'close-quote' values of the 'content' property produce no quotations marks, as if they were 'no-open-quote' and 'no-close-quote' respectively.\"\n        }\n      ],\n      \"syntax\": \"none | auto | [ <string> <string> ]+\",\n      \"relevance\": 53,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/quotes\"\n        }\n      ],\n      \"description\": \"Specifies quotation marks for any number of embedded quotations.\",\n      \"restrictions\": [\n        \"string\"\n      ]\n    },\n    {\n      \"name\": \"range\",\n      \"browsers\": [\n        \"FF33\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The range depends on the counter system.\"\n        },\n        {\n          \"name\": \"infinite\",\n          \"description\": \"If used as the first value in a range, it represents negative infinity; if used as the second value, it represents positive infinity.\"\n        }\n      ],\n      \"atRule\": \"@counter-style\",\n      \"syntax\": \"[ [ <integer> | infinite ]{2} ]# | auto\",\n      \"relevance\": 50,\n      \"description\": \"@counter-style descriptor. Defines the ranges over which the counter style is defined.\",\n      \"restrictions\": [\n        \"integer\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"resize\",\n      \"browsers\": [\n        \"E79\",\n        \"FF4\",\n        \"S3\",\n        \"C1\",\n        \"O12.1\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"both\",\n          \"description\": \"The UA presents a bidirectional resizing mechanism to allow the user to adjust both the height and the width of the element.\"\n        },\n        {\n          \"name\": \"horizontal\",\n          \"description\": \"The UA presents a unidirectional horizontal resizing mechanism to allow the user to adjust only the width of the element.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"The UA does not present a resizing mechanism on the element, and the user is given no direct manipulation mechanism to resize the element.\"\n        },\n        {\n          \"name\": \"vertical\",\n          \"description\": \"The UA presents a unidirectional vertical resizing mechanism to allow the user to adjust only the height of the element.\"\n        }\n      ],\n      \"syntax\": \"none | both | horizontal | vertical | block | inline\",\n      \"relevance\": 66,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/resize\"\n        }\n      ],\n      \"description\": \"Specifies whether or not an element is resizable by the user, and if so, along which axis/axes.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"right\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE5.5\",\n        \"O5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well\"\n        }\n      ],\n      \"syntax\": \"<length> | <percentage> | auto\",\n      \"relevance\": 91,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/right\"\n        }\n      ],\n      \"description\": \"Specifies how far an absolutely positioned box's right margin edge is offset to the left of the right edge of the box's 'containing block'.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"ruby-align\",\n      \"browsers\": [\n        \"FF38\",\n        \"Spreview\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"browsers\": [\n            \"FF38\",\n            \"Spreview\"\n          ],\n          \"description\": \"The user agent determines how the ruby contents are aligned. This is the initial value.\"\n        },\n        {\n          \"name\": \"center\",\n          \"description\": \"The ruby content is centered within its box.\"\n        },\n        {\n          \"name\": \"distribute-letter\",\n          \"browsers\": [\n            \"FF38\",\n            \"Spreview\"\n          ],\n          \"description\": \"If the width of the ruby text is smaller than that of the base, then the ruby text contents are evenly distributed across the width of the base, with the first and last ruby text glyphs lining up with the corresponding first and last base glyphs. If the width of the ruby text is at least the width of the base, then the letters of the base are evenly distributed across the width of the ruby text.\"\n        },\n        {\n          \"name\": \"distribute-space\",\n          \"browsers\": [\n            \"FF38\",\n            \"Spreview\"\n          ],\n          \"description\": \"If the width of the ruby text is smaller than that of the base, then the ruby text contents are evenly distributed across the width of the base, with a certain amount of white space preceding the first and following the last character in the ruby text. That amount of white space is normally equal to half the amount of inter-character space of the ruby text.\"\n        },\n        {\n          \"name\": \"left\",\n          \"description\": \"The ruby text content is aligned with the start edge of the base.\"\n        },\n        {\n          \"name\": \"line-edge\",\n          \"browsers\": [\n            \"FF38\",\n            \"Spreview\"\n          ],\n          \"description\": \"If the ruby text is not adjacent to a line edge, it is aligned as in 'auto'. If it is adjacent to a line edge, then it is still aligned as in auto, but the side of the ruby text that touches the end of the line is lined up with the corresponding edge of the base.\"\n        },\n        {\n          \"name\": \"right\",\n          \"browsers\": [\n            \"FF38\",\n            \"Spreview\"\n          ],\n          \"description\": \"The ruby text content is aligned with the end edge of the base.\"\n        },\n        {\n          \"name\": \"start\",\n          \"browsers\": [\n            \"FF38\",\n            \"Spreview\"\n          ],\n          \"description\": \"The ruby text content is aligned with the start edge of the base.\"\n        },\n        {\n          \"name\": \"space-between\",\n          \"browsers\": [\n            \"FF38\",\n            \"Spreview\"\n          ],\n          \"description\": \"The ruby content expands as defined for normal text justification (as defined by 'text-justify'),\"\n        },\n        {\n          \"name\": \"space-around\",\n          \"browsers\": [\n            \"FF38\",\n            \"Spreview\"\n          ],\n          \"description\": \"As for 'space-between' except that there exists an extra justification opportunities whose space is distributed half before and half after the ruby content.\"\n        }\n      ],\n      \"status\": \"experimental\",\n      \"syntax\": \"start | center | space-between | space-around\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/ruby-align\"\n        }\n      ],\n      \"description\": \"Specifies how text is distributed within the various ruby boxes when their contents do not exactly fill their respective boxes.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"ruby-overhang\",\n      \"browsers\": [\n        \"FF10\",\n        \"IE5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The ruby text can overhang text adjacent to the base on either side. This is the initial value.\"\n        },\n        {\n          \"name\": \"end\",\n          \"description\": \"The ruby text can overhang the text that follows it.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"The ruby text cannot overhang any text adjacent to its base, only its own base.\"\n        },\n        {\n          \"name\": \"start\",\n          \"description\": \"The ruby text can overhang the text that precedes it.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Determines whether, and on which side, ruby text is allowed to partially overhang any adjacent text in addition to its own base, when the ruby text is wider than the ruby base.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"ruby-position\",\n      \"browsers\": [\n        \"E84\",\n        \"FF38\",\n        \"S7\",\n        \"C84\",\n        \"O70\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"after\",\n          \"description\": \"The ruby text appears after the base. This is a relatively rare setting used in ideographic East Asian writing systems, most easily found in educational text.\"\n        },\n        {\n          \"name\": \"before\",\n          \"description\": \"The ruby text appears before the base. This is the most common setting used in ideographic East Asian writing systems.\"\n        },\n        {\n          \"name\": \"inline\"\n        },\n        {\n          \"name\": \"right\",\n          \"description\": \"The ruby text appears on the right of the base. Unlike 'before' and 'after', this value is not relative to the text flow direction.\"\n        }\n      ],\n      \"syntax\": \"[ alternate || [ over | under ] ] | inter-character\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/ruby-position\"\n        }\n      ],\n      \"description\": \"Used by the parent of elements with display: ruby-text to control the position of the ruby text with respect to its base.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"ruby-span\",\n      \"browsers\": [\n        \"FF10\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"attr(x)\",\n          \"description\": \"The value of attribute 'x' is a string value. The string value is evaluated as a <number> to determine the number of ruby base elements to be spanned by the annotation element.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"No spanning. The computed value is '1'.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Determines whether, and on which side, ruby text is allowed to partially overhang any adjacent text in addition to its own base, when the ruby text is wider than the ruby base.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"scrollbar-3dlight-color\",\n      \"browsers\": [\n        \"IE5\"\n      ],\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scrollbar-3dlight-color\"\n        }\n      ],\n      \"description\": \"Determines the color of the top and left edges of the scroll box and scroll arrows of a scroll bar.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"scrollbar-arrow-color\",\n      \"browsers\": [\n        \"IE5\"\n      ],\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scrollbar-arrow-color\"\n        }\n      ],\n      \"description\": \"Determines the color of the arrow elements of a scroll arrow.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"scrollbar-base-color\",\n      \"browsers\": [\n        \"IE5\"\n      ],\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scrollbar-base-color\"\n        }\n      ],\n      \"description\": \"Determines the color of the main elements of a scroll bar, which include the scroll box, track, and scroll arrows.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"scrollbar-darkshadow-color\",\n      \"browsers\": [\n        \"IE5\"\n      ],\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scrollbar-darkshadow-color\"\n        }\n      ],\n      \"description\": \"Determines the color of the gutter of a scroll bar.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"scrollbar-face-color\",\n      \"browsers\": [\n        \"IE5\"\n      ],\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scrollbar-face-color\"\n        }\n      ],\n      \"description\": \"Determines the color of the scroll box and scroll arrows of a scroll bar.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"scrollbar-highlight-color\",\n      \"browsers\": [\n        \"IE5\"\n      ],\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scrollbar-highlight-color\"\n        }\n      ],\n      \"description\": \"Determines the color of the top and left edges of the scroll box and scroll arrows of a scroll bar.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"scrollbar-shadow-color\",\n      \"browsers\": [\n        \"IE5\"\n      ],\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scrollbar-shadow-color\"\n        }\n      ],\n      \"description\": \"Determines the color of the bottom and right edges of the scroll box and scroll arrows of a scroll bar.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"scrollbar-track-color\",\n      \"browsers\": [\n        \"IE6\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Determines the color of the track element of a scroll bar.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"scroll-behavior\",\n      \"browsers\": [\n        \"E79\",\n        \"FF36\",\n        \"S15.4\",\n        \"C61\",\n        \"O48\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Scrolls in an instant fashion.\"\n        },\n        {\n          \"name\": \"smooth\",\n          \"description\": \"Scrolls in a smooth fashion using a user-agent-defined timing function and time period.\"\n        }\n      ],\n      \"syntax\": \"auto | smooth\",\n      \"relevance\": 55,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scroll-behavior\"\n        }\n      ],\n      \"description\": \"Specifies the scrolling behavior for a scrolling box, when scrolling happens due to navigation or CSSOM scrolling APIs.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"scroll-snap-coordinate\",\n      \"browsers\": [\n        \"FF39\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"Specifies that this element does not contribute a snap point.\"\n        }\n      ],\n      \"status\": \"obsolete\",\n      \"syntax\": \"none | <position>#\",\n      \"relevance\": 0,\n      \"description\": \"Defines the x and y coordinate within the element which will align with the nearest ancestor scroll container's snap-destination for the respective axis.\",\n      \"restrictions\": [\n        \"position\",\n        \"length\",\n        \"percentage\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"scroll-snap-destination\",\n      \"browsers\": [\n        \"FF39\"\n      ],\n      \"status\": \"obsolete\",\n      \"syntax\": \"<position>\",\n      \"relevance\": 0,\n      \"description\": \"Define the x and y coordinate within the scroll container's visual viewport which element snap points will align with.\",\n      \"restrictions\": [\n        \"position\",\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"scroll-snap-points-x\",\n      \"browsers\": [\n        \"FF39\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"No snap points are defined by this scroll container.\"\n        },\n        {\n          \"name\": \"repeat()\",\n          \"description\": \"Defines an interval at which snap points are defined, starting from the container's relevant start edge.\"\n        }\n      ],\n      \"status\": \"obsolete\",\n      \"syntax\": \"none | repeat( <length-percentage> )\",\n      \"relevance\": 0,\n      \"description\": \"Defines the positioning of snap points along the x axis of the scroll container it is applied to.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"scroll-snap-points-y\",\n      \"browsers\": [\n        \"FF39\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"No snap points are defined by this scroll container.\"\n        },\n        {\n          \"name\": \"repeat()\",\n          \"description\": \"Defines an interval at which snap points are defined, starting from the container's relevant start edge.\"\n        }\n      ],\n      \"status\": \"obsolete\",\n      \"syntax\": \"none | repeat( <length-percentage> )\",\n      \"relevance\": 0,\n      \"description\": \"Defines the positioning of snap points along the y axis of the scroll container it is applied to.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"scroll-snap-type\",\n      \"browsers\": [\n        \"E79\",\n        \"FF99\",\n        \"S11\",\n        \"C69\",\n        \"IE10\",\n        \"O56\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"The visual viewport of this scroll container must ignore snap points, if any, when scrolled.\"\n        },\n        {\n          \"name\": \"mandatory\",\n          \"description\": \"The visual viewport of this scroll container is guaranteed to rest on a snap point when there are no active scrolling operations.\"\n        },\n        {\n          \"name\": \"proximity\",\n          \"description\": \"The visual viewport of this scroll container may come to rest on a snap point at the termination of a scroll at the discretion of the UA given the parameters of the scroll.\"\n        }\n      ],\n      \"syntax\": \"none | [ x | y | block | inline | both ] [ mandatory | proximity ]?\",\n      \"relevance\": 53,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-type\"\n        }\n      ],\n      \"description\": \"Defines how strictly snap points are enforced on the scroll container.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"shape-image-threshold\",\n      \"browsers\": [\n        \"E79\",\n        \"FF62\",\n        \"S10.1\",\n        \"C37\",\n        \"O24\"\n      ],\n      \"syntax\": \"<alpha-value>\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/shape-image-threshold\"\n        }\n      ],\n      \"description\": \"Defines the alpha channel threshold used to extract the shape using an image. A value of 0.5 means that the shape will enclose all the pixels that are more than 50% opaque.\",\n      \"restrictions\": [\n        \"number\"\n      ]\n    },\n    {\n      \"name\": \"shape-margin\",\n      \"browsers\": [\n        \"E79\",\n        \"FF62\",\n        \"S10.1\",\n        \"C37\",\n        \"O24\"\n      ],\n      \"syntax\": \"<length-percentage>\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/shape-margin\"\n        }\n      ],\n      \"description\": \"Adds a margin to a 'shape-outside'. This defines a new shape that is the smallest contour that includes all the points that are the 'shape-margin' distance outward in the perpendicular direction from a point on the underlying shape.\",\n      \"restrictions\": [\n        \"url\",\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"shape-outside\",\n      \"browsers\": [\n        \"E79\",\n        \"FF62\",\n        \"S10.1\",\n        \"C37\",\n        \"O24\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"margin-box\",\n          \"description\": \"The background is painted within (clipped to) the margin box.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"The float area is unaffected.\"\n        }\n      ],\n      \"syntax\": \"none | [ <shape-box> || <basic-shape> ] | <image>\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/shape-outside\"\n        }\n      ],\n      \"description\": \"Specifies an orthogonal rotation to be applied to an image before it is laid out.\",\n      \"restrictions\": [\n        \"image\",\n        \"box\",\n        \"shape\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"shape-rendering\",\n      \"browsers\": [\n        \"E80\",\n        \"FF72\",\n        \"S13.1\",\n        \"C80\",\n        \"O67\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Suppresses aural rendering.\"\n        },\n        {\n          \"name\": \"crispEdges\",\n          \"description\": \"Emphasize the contrast between clean edges of artwork over rendering speed and geometric precision.\"\n        },\n        {\n          \"name\": \"geometricPrecision\",\n          \"description\": \"Emphasize geometric precision over speed and crisp edges.\"\n        },\n        {\n          \"name\": \"optimizeSpeed\",\n          \"description\": \"Emphasize rendering speed over geometric precision and crisp edges.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Provides hints about what tradeoffs to make as it renders vector graphics elements such as <path> elements and basic shapes such as circles and rectangles.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"size\",\n      \"browsers\": [\n        \"C\",\n        \"O8\"\n      ],\n      \"atRule\": \"@page\",\n      \"syntax\": \"<length>{1,2} | auto | [ <page-size> || [ portrait | landscape ] ]\",\n      \"relevance\": 53,\n      \"description\": \"The size CSS at-rule descriptor, used with the @page at-rule, defines the size and orientation of the box which is used to represent a page. Most of the time, this size corresponds to the target size of the printed page if applicable.\",\n      \"restrictions\": [\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"src\",\n      \"values\": [\n        {\n          \"name\": \"url()\",\n          \"description\": \"Reference font by URL\"\n        },\n        {\n          \"name\": \"format()\",\n          \"description\": \"Optional hint describing the format of the font resource.\"\n        },\n        {\n          \"name\": \"local()\",\n          \"description\": \"Format-specific string that identifies a locally available copy of a given font.\"\n        }\n      ],\n      \"atRule\": \"@font-face\",\n      \"syntax\": \"[ <url> [ format( <string># ) ]? | local( <family-name> ) ]#\",\n      \"relevance\": 86,\n      \"description\": \"@font-face descriptor. Specifies the resource containing font data. It is required, whether the font is downloadable or locally installed.\",\n      \"restrictions\": [\n        \"enum\",\n        \"url\",\n        \"identifier\"\n      ]\n    },\n    {\n      \"name\": \"stop-color\",\n      \"browsers\": [\n        \"E80\",\n        \"FF72\",\n        \"S13.1\",\n        \"C80\",\n        \"O67\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Indicates what color to use at that gradient stop.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"stop-opacity\",\n      \"browsers\": [\n        \"E80\",\n        \"FF72\",\n        \"S13.1\",\n        \"C80\",\n        \"O67\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Defines the opacity of a given gradient stop.\",\n      \"restrictions\": [\n        \"number(0-1)\"\n      ]\n    },\n    {\n      \"name\": \"stroke\",\n      \"browsers\": [\n        \"E80\",\n        \"FF72\",\n        \"S13.1\",\n        \"C80\",\n        \"O67\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"url()\",\n          \"description\": \"A URL reference to a paint server element, which is an element that defines a paint server: 'hatch', 'linearGradient', 'mesh', 'pattern', 'radialGradient' and 'solidcolor'.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"No paint is applied in this layer.\"\n        }\n      ],\n      \"relevance\": 67,\n      \"description\": \"Paints along the outline of the given graphical element.\",\n      \"restrictions\": [\n        \"color\",\n        \"enum\",\n        \"url\"\n      ]\n    },\n    {\n      \"name\": \"stroke-dasharray\",\n      \"browsers\": [\n        \"E80\",\n        \"FF72\",\n        \"S13.1\",\n        \"C80\",\n        \"O67\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"Indicates that no dashing is used.\"\n        }\n      ],\n      \"relevance\": 61,\n      \"description\": \"Controls the pattern of dashes and gaps used to stroke paths.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\",\n        \"number\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"stroke-dashoffset\",\n      \"browsers\": [\n        \"E80\",\n        \"FF72\",\n        \"S13.1\",\n        \"C80\",\n        \"O67\"\n      ],\n      \"relevance\": 62,\n      \"description\": \"Specifies the distance into the dash pattern to start the dash.\",\n      \"restrictions\": [\n        \"percentage\",\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"stroke-linecap\",\n      \"browsers\": [\n        \"E80\",\n        \"FF72\",\n        \"S13.1\",\n        \"C80\",\n        \"O67\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"butt\",\n          \"description\": \"Indicates that the stroke for each subpath does not extend beyond its two endpoints.\"\n        },\n        {\n          \"name\": \"round\",\n          \"description\": \"Indicates that at each end of each subpath, the shape representing the stroke will be extended by a half circle with a radius equal to the stroke width.\"\n        },\n        {\n          \"name\": \"square\",\n          \"description\": \"Indicates that at the end of each subpath, the shape representing the stroke will be extended by a rectangle with the same width as the stroke width and whose length is half of the stroke width.\"\n        }\n      ],\n      \"relevance\": 53,\n      \"description\": \"Specifies the shape to be used at the end of open subpaths when they are stroked.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"stroke-linejoin\",\n      \"browsers\": [\n        \"E80\",\n        \"FF72\",\n        \"S13.1\",\n        \"C80\",\n        \"O67\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"bevel\",\n          \"description\": \"Indicates that a bevelled corner is to be used to join path segments.\"\n        },\n        {\n          \"name\": \"miter\",\n          \"description\": \"Indicates that a sharp corner is to be used to join path segments.\"\n        },\n        {\n          \"name\": \"round\",\n          \"description\": \"Indicates that a round corner is to be used to join path segments.\"\n        }\n      ],\n      \"relevance\": 51,\n      \"description\": \"Specifies the shape to be used at the corners of paths or basic shapes when they are stroked.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"stroke-miterlimit\",\n      \"browsers\": [\n        \"E80\",\n        \"FF72\",\n        \"S13.1\",\n        \"C80\",\n        \"O67\"\n      ],\n      \"relevance\": 51,\n      \"description\": \"When two line segments meet at a sharp angle and miter joins have been specified for 'stroke-linejoin', it is possible for the miter to extend far beyond the thickness of the line stroking the path.\",\n      \"restrictions\": [\n        \"number\"\n      ]\n    },\n    {\n      \"name\": \"stroke-opacity\",\n      \"browsers\": [\n        \"E80\",\n        \"FF72\",\n        \"S13.1\",\n        \"C80\",\n        \"O67\"\n      ],\n      \"relevance\": 52,\n      \"description\": \"Specifies the opacity of the painting operation used to stroke the current object.\",\n      \"restrictions\": [\n        \"number(0-1)\"\n      ]\n    },\n    {\n      \"name\": \"stroke-width\",\n      \"browsers\": [\n        \"E80\",\n        \"FF72\",\n        \"S13.1\",\n        \"C80\",\n        \"O67\"\n      ],\n      \"relevance\": 64,\n      \"description\": \"Specifies the width of the stroke on the current object.\",\n      \"restrictions\": [\n        \"percentage\",\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"suffix\",\n      \"browsers\": [\n        \"FF33\"\n      ],\n      \"atRule\": \"@counter-style\",\n      \"syntax\": \"<symbol>\",\n      \"relevance\": 50,\n      \"description\": \"@counter-style descriptor. Specifies a <symbol> that is appended to the marker representation.\",\n      \"restrictions\": [\n        \"image\",\n        \"string\",\n        \"identifier\"\n      ]\n    },\n    {\n      \"name\": \"system\",\n      \"browsers\": [\n        \"FF33\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"additive\",\n          \"description\": 'Represents \"sign-value\" numbering systems, which, rather than using reusing digits in different positions to change their value, define additional digits with much larger values, so that the value of the number can be obtained by adding all the digits together.'\n        },\n        {\n          \"name\": \"alphabetic\",\n          \"description\": 'Interprets the list of counter symbols as digits to an alphabetic numbering system, similar to the default lower-alpha counter style, which wraps from \"a\", \"b\", \"c\", to \"aa\", \"ab\", \"ac\".'\n        },\n        {\n          \"name\": \"cyclic\",\n          \"description\": \"Cycles repeatedly through its provided symbols, looping back to the beginning when it reaches the end of the list.\"\n        },\n        {\n          \"name\": \"extends\",\n          \"description\": \"Use the algorithm of another counter style, but alter other aspects.\"\n        },\n        {\n          \"name\": \"fixed\",\n          \"description\": \"Runs through its list of counter symbols once, then falls back.\"\n        },\n        {\n          \"name\": \"numeric\",\n          \"description\": `interprets the list of counter symbols as digits to a \"place-value\" numbering system, similar to the default 'decimal' counter style.`\n        },\n        {\n          \"name\": \"symbolic\",\n          \"description\": \"Cycles repeatedly through its provided symbols, doubling, tripling, etc. the symbols on each successive pass through the list.\"\n        }\n      ],\n      \"atRule\": \"@counter-style\",\n      \"syntax\": \"cyclic | numeric | alphabetic | symbolic | additive | [ fixed <integer>? ] | [ extends <counter-style-name> ]\",\n      \"relevance\": 50,\n      \"description\": \"@counter-style descriptor. Specifies which algorithm will be used to construct the counter's representation based on the counter value.\",\n      \"restrictions\": [\n        \"enum\",\n        \"integer\"\n      ]\n    },\n    {\n      \"name\": \"symbols\",\n      \"browsers\": [\n        \"FF33\"\n      ],\n      \"atRule\": \"@counter-style\",\n      \"syntax\": \"<symbol>+\",\n      \"relevance\": 50,\n      \"description\": \"@counter-style descriptor. Specifies the symbols used by the marker-construction algorithm specified by the system descriptor.\",\n      \"restrictions\": [\n        \"image\",\n        \"string\",\n        \"identifier\"\n      ]\n    },\n    {\n      \"name\": \"table-layout\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C14\",\n        \"IE5\",\n        \"O7\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Use any automatic table layout algorithm.\"\n        },\n        {\n          \"name\": \"fixed\",\n          \"description\": \"Use the fixed table layout algorithm.\"\n        }\n      ],\n      \"syntax\": \"auto | fixed\",\n      \"relevance\": 58,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/table-layout\"\n        }\n      ],\n      \"description\": \"Controls the algorithm used to lay out the table cells, rows, and columns.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"tab-size\",\n      \"browsers\": [\n        \"E79\",\n        \"FF91\",\n        \"S7\",\n        \"C21\",\n        \"O15\"\n      ],\n      \"syntax\": \"<integer> | <length>\",\n      \"relevance\": 53,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/tab-size\"\n        }\n      ],\n      \"description\": \"Determines the width of the tab character (U+0009), in space characters (U+0020), when rendered.\",\n      \"restrictions\": [\n        \"integer\",\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"text-align\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE3\",\n        \"O3.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"center\",\n          \"description\": \"The inline contents are centered within the line box.\"\n        },\n        {\n          \"name\": \"end\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE3\",\n            \"O3.5\"\n          ],\n          \"description\": \"The inline contents are aligned to the end edge of the line box.\"\n        },\n        {\n          \"name\": \"justify\",\n          \"description\": \"The text is justified according to the method specified by the 'text-justify' property.\"\n        },\n        {\n          \"name\": \"left\",\n          \"description\": \"The inline contents are aligned to the left edge of the line box. In vertical text, 'left' aligns to the edge of the line box that would be the start edge for left-to-right text.\"\n        },\n        {\n          \"name\": \"right\",\n          \"description\": \"The inline contents are aligned to the right edge of the line box. In vertical text, 'right' aligns to the edge of the line box that would be the end edge for left-to-right text.\"\n        },\n        {\n          \"name\": \"start\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE3\",\n            \"O3.5\"\n          ],\n          \"description\": \"The inline contents are aligned to the start edge of the line box.\"\n        }\n      ],\n      \"syntax\": \"start | end | left | right | center | justify | match-parent\",\n      \"relevance\": 93,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/text-align\"\n        }\n      ],\n      \"description\": \"Describes how inline contents of a block are horizontally aligned if the contents do not completely fill the line box.\",\n      \"restrictions\": [\n        \"string\"\n      ]\n    },\n    {\n      \"name\": \"text-align-last\",\n      \"browsers\": [\n        \"E12\",\n        \"FF49\",\n        \"S16\",\n        \"C47\",\n        \"IE5.5\",\n        \"O34\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Content on the affected line is aligned per 'text-align' unless 'text-align' is set to 'justify', in which case it is 'start-aligned'.\"\n        },\n        {\n          \"name\": \"center\",\n          \"description\": \"The inline contents are centered within the line box.\"\n        },\n        {\n          \"name\": \"justify\",\n          \"description\": \"The text is justified according to the method specified by the 'text-justify' property.\"\n        },\n        {\n          \"name\": \"left\",\n          \"description\": \"The inline contents are aligned to the left edge of the line box. In vertical text, 'left' aligns to the edge of the line box that would be the start edge for left-to-right text.\"\n        },\n        {\n          \"name\": \"right\",\n          \"description\": \"The inline contents are aligned to the right edge of the line box. In vertical text, 'right' aligns to the edge of the line box that would be the end edge for left-to-right text.\"\n        }\n      ],\n      \"syntax\": \"auto | start | end | left | right | center | justify\",\n      \"relevance\": 51,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/text-align-last\"\n        }\n      ],\n      \"description\": \"Describes how the last line of a block or a line right before a forced line break is aligned when 'text-align' is set to 'justify'.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"text-anchor\",\n      \"browsers\": [\n        \"E80\",\n        \"FF72\",\n        \"S13.1\",\n        \"C80\",\n        \"O67\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"end\",\n          \"description\": \"The rendered characters are aligned such that the end of the resulting rendered text is at the initial current text position.\"\n        },\n        {\n          \"name\": \"middle\",\n          \"description\": \"The rendered characters are aligned such that the geometric middle of the resulting rendered text is at the initial current text position.\"\n        },\n        {\n          \"name\": \"start\",\n          \"description\": \"The rendered characters are aligned such that the start of the resulting rendered text is at the initial current text position.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Used to align (start-, middle- or end-alignment) a string of text relative to a given point.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"text-decoration\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE3\",\n        \"O3.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"dashed\",\n          \"description\": \"Produces a dashed line style.\"\n        },\n        {\n          \"name\": \"dotted\",\n          \"description\": \"Produces a dotted line.\"\n        },\n        {\n          \"name\": \"double\",\n          \"description\": \"Produces a double line.\"\n        },\n        {\n          \"name\": \"line-through\",\n          \"description\": \"Each line of text has a line through the middle.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"Produces no line.\"\n        },\n        {\n          \"name\": \"overline\",\n          \"description\": \"Each line of text has a line above it.\"\n        },\n        {\n          \"name\": \"solid\",\n          \"description\": \"Produces a solid line.\"\n        },\n        {\n          \"name\": \"underline\",\n          \"description\": \"Each line of text is underlined.\"\n        },\n        {\n          \"name\": \"wavy\",\n          \"description\": \"Produces a wavy line.\"\n        }\n      ],\n      \"syntax\": \"<'text-decoration-line'> || <'text-decoration-style'> || <'text-decoration-color'> || <'text-decoration-thickness'>\",\n      \"relevance\": 91,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/text-decoration\"\n        }\n      ],\n      \"description\": \"Decorations applied to font used for an element's text.\",\n      \"restrictions\": [\n        \"enum\",\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"text-decoration-color\",\n      \"browsers\": [\n        \"E79\",\n        \"FF36\",\n        \"S12.1\",\n        \"C57\",\n        \"O44\"\n      ],\n      \"syntax\": \"<color>\",\n      \"relevance\": 55,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/text-decoration-color\"\n        }\n      ],\n      \"description\": \"Specifies the color of text decoration (underlines overlines, and line-throughs) set on the element with text-decoration-line.\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"text-decoration-line\",\n      \"browsers\": [\n        \"E79\",\n        \"FF36\",\n        \"S12.1\",\n        \"C57\",\n        \"O44\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"line-through\",\n          \"description\": \"Each line of text has a line through the middle.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"Neither produces nor inhibits text decoration.\"\n        },\n        {\n          \"name\": \"overline\",\n          \"description\": \"Each line of text has a line above it.\"\n        },\n        {\n          \"name\": \"underline\",\n          \"description\": \"Each line of text is underlined.\"\n        }\n      ],\n      \"syntax\": \"none | [ underline || overline || line-through || blink ] | spelling-error | grammar-error\",\n      \"relevance\": 57,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/text-decoration-line\"\n        }\n      ],\n      \"description\": \"Specifies what line decorations, if any, are added to the element.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"text-decoration-style\",\n      \"browsers\": [\n        \"E79\",\n        \"FF36\",\n        \"S12.1\",\n        \"C57\",\n        \"O44\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"dashed\",\n          \"description\": \"Produces a dashed line style.\"\n        },\n        {\n          \"name\": \"dotted\",\n          \"description\": \"Produces a dotted line.\"\n        },\n        {\n          \"name\": \"double\",\n          \"description\": \"Produces a double line.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"Produces no line.\"\n        },\n        {\n          \"name\": \"solid\",\n          \"description\": \"Produces a solid line.\"\n        },\n        {\n          \"name\": \"wavy\",\n          \"description\": \"Produces a wavy line.\"\n        }\n      ],\n      \"syntax\": \"solid | double | dotted | dashed | wavy\",\n      \"relevance\": 51,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/text-decoration-style\"\n        }\n      ],\n      \"description\": \"Specifies the line style for underline, line-through and overline text decoration.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"text-indent\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE3\",\n        \"O3.5\"\n      ],\n      \"values\": [],\n      \"syntax\": \"<length-percentage> && hanging? && each-line?\",\n      \"relevance\": 67,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/text-indent\"\n        }\n      ],\n      \"description\": \"Specifies the indentation applied to lines of inline content in a block. The indentation only affects the first line of inline content in the block unless the 'hanging' keyword is specified, in which case it affects all lines except the first.\",\n      \"restrictions\": [\n        \"percentage\",\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"text-justify\",\n      \"browsers\": [\n        \"E79\",\n        \"FF55\",\n        \"C32\",\n        \"IE11\",\n        \"O19\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The UA determines the justification algorithm to follow, based on a balance between performance and adequate presentation quality.\"\n        },\n        {\n          \"name\": \"distribute\",\n          \"description\": \"Justification primarily changes spacing both at word separators and at grapheme cluster boundaries in all scripts except those in the connected and cursive groups. This value is sometimes used in e.g. Japanese, often with the 'text-align-last' property.\"\n        },\n        {\n          \"name\": \"distribute-all-lines\"\n        },\n        {\n          \"name\": \"inter-cluster\",\n          \"description\": \"Justification primarily changes spacing at word separators and at grapheme cluster boundaries in clustered scripts. This value is typically used for Southeast Asian scripts such as Thai.\"\n        },\n        {\n          \"name\": \"inter-ideograph\",\n          \"description\": \"Justification primarily changes spacing at word separators and at inter-graphemic boundaries in scripts that use no word spaces. This value is typically used for CJK languages.\"\n        },\n        {\n          \"name\": \"inter-word\",\n          \"description\": \"Justification primarily changes spacing at word separators. This value is typically used for languages that separate words using spaces, like English or (sometimes) Korean.\"\n        },\n        {\n          \"name\": \"kashida\",\n          \"description\": \"Justification primarily stretches Arabic and related scripts through the use of kashida or other calligraphic elongation.\"\n        },\n        {\n          \"name\": \"newspaper\"\n        }\n      ],\n      \"syntax\": \"auto | inter-character | inter-word | none\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/text-justify\"\n        }\n      ],\n      \"description\": \"Selects the justification algorithm used when 'text-align' is set to 'justify'. The property applies to block containers, but the UA may (but is not required to) also support it on inline elements.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"text-orientation\",\n      \"browsers\": [\n        \"E79\",\n        \"FF41\",\n        \"S14\",\n        \"C48\",\n        \"O35\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"sideways\",\n          \"browsers\": [\n            \"E79\",\n            \"FF41\",\n            \"S14\",\n            \"C48\",\n            \"O35\"\n          ],\n          \"description\": \"This value is equivalent to 'sideways-right' in 'vertical-rl' writing mode and equivalent to 'sideways-left' in 'vertical-lr' writing mode.\"\n        },\n        {\n          \"name\": \"sideways-right\",\n          \"browsers\": [\n            \"E79\",\n            \"FF41\",\n            \"S14\",\n            \"C48\",\n            \"O35\"\n          ],\n          \"description\": \"In vertical writing modes, this causes text to be set as if in a horizontal layout, but rotated 90\\xB0 clockwise.\"\n        },\n        {\n          \"name\": \"upright\",\n          \"description\": \"In vertical writing modes, characters from horizontal-only scripts are rendered upright, i.e. in their standard horizontal orientation.\"\n        }\n      ],\n      \"syntax\": \"mixed | upright | sideways\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/text-orientation\"\n        }\n      ],\n      \"description\": \"Specifies the orientation of text within a line.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"text-overflow\",\n      \"browsers\": [\n        \"E12\",\n        \"FF7\",\n        \"S1.3\",\n        \"C1\",\n        \"IE6\",\n        \"O11\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"clip\",\n          \"description\": \"Clip inline content that overflows. Characters may be only partially rendered.\"\n        },\n        {\n          \"name\": \"ellipsis\",\n          \"description\": \"Render an ellipsis character (U+2026) to represent clipped inline content.\"\n        }\n      ],\n      \"syntax\": \"[ clip | ellipsis | <string> ]{1,2}\",\n      \"relevance\": 82,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/text-overflow\"\n        }\n      ],\n      \"description\": \"Text can overflow for example when it is prevented from wrapping.\",\n      \"restrictions\": [\n        \"enum\",\n        \"string\"\n      ]\n    },\n    {\n      \"name\": \"text-rendering\",\n      \"browsers\": [\n        \"E79\",\n        \"FF1\",\n        \"S5\",\n        \"C4\",\n        \"O15\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        },\n        {\n          \"name\": \"geometricPrecision\",\n          \"description\": \"Indicates that the user agent shall emphasize geometric precision over legibility and rendering speed.\"\n        },\n        {\n          \"name\": \"optimizeLegibility\",\n          \"description\": \"Indicates that the user agent shall emphasize legibility over rendering speed and geometric precision.\"\n        },\n        {\n          \"name\": \"optimizeSpeed\",\n          \"description\": \"Indicates that the user agent shall emphasize rendering speed over legibility and geometric precision.\"\n        }\n      ],\n      \"syntax\": \"auto | optimizeSpeed | optimizeLegibility | geometricPrecision\",\n      \"relevance\": 68,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/text-rendering\"\n        }\n      ],\n      \"description\": \"The creator of SVG content might want to provide a hint to the implementation about what tradeoffs to make as it renders text. The 'text-rendering' property provides these hints.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"text-shadow\",\n      \"browsers\": [\n        \"E12\",\n        \"FF3.5\",\n        \"S1.1\",\n        \"C2\",\n        \"IE10\",\n        \"O9.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"No shadow.\"\n        }\n      ],\n      \"syntax\": \"none | <shadow-t>#\",\n      \"relevance\": 73,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/text-shadow\"\n        }\n      ],\n      \"description\": \"Enables shadow effects to be applied to the text of the element.\",\n      \"restrictions\": [\n        \"length\",\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"text-transform\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O7\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"capitalize\",\n          \"description\": \"Puts the first typographic letter unit of each word in titlecase.\"\n        },\n        {\n          \"name\": \"lowercase\",\n          \"description\": \"Puts all letters in lowercase.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"No effects.\"\n        },\n        {\n          \"name\": \"uppercase\",\n          \"description\": \"Puts all letters in uppercase.\"\n        }\n      ],\n      \"syntax\": \"none | capitalize | uppercase | lowercase | full-width | full-size-kana\",\n      \"relevance\": 86,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/text-transform\"\n        }\n      ],\n      \"description\": \"Controls capitalization effects of an element's text.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"text-underline-position\",\n      \"browsers\": [\n        \"E12\",\n        \"FF74\",\n        \"S12.1\",\n        \"C33\",\n        \"IE6\",\n        \"O20\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"above\"\n        },\n        {\n          \"name\": \"auto\",\n          \"description\": \"The user agent may use any algorithm to determine the underline's position. In horizontal line layout, the underline should be aligned as for alphabetic. In vertical line layout, if the language is set to Japanese or Korean, the underline should be aligned as for over.\"\n        },\n        {\n          \"name\": \"below\",\n          \"description\": \"The underline is aligned with the under edge of the element's content box.\"\n        }\n      ],\n      \"syntax\": \"auto | from-font | [ under || [ left | right ] ]\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/text-underline-position\"\n        }\n      ],\n      \"description\": \"Sets the position of an underline specified on the same element: it does not affect underlines specified by ancestor elements. This property is typically used in vertical writing contexts such as in Japanese documents where it often desired to have the underline appear 'over' (to the right of) the affected run of text\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"top\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE5\",\n        \"O6\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well\"\n        }\n      ],\n      \"syntax\": \"<length> | <percentage> | auto\",\n      \"relevance\": 95,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/top\"\n        }\n      ],\n      \"description\": \"Specifies how far an absolutely positioned box's top margin edge is offset below the top edge of the box's 'containing block'.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"touch-action\",\n      \"browsers\": [\n        \"E12\",\n        \"FF52\",\n        \"S13\",\n        \"C36\",\n        \"IE11\",\n        \"O23\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The user agent may determine any permitted touch behaviors for touches that begin on the element.\"\n        },\n        {\n          \"name\": \"cross-slide-x\",\n          \"browsers\": [\n            \"E12\",\n            \"FF52\",\n            \"S13\",\n            \"C36\",\n            \"IE11\",\n            \"O23\"\n          ]\n        },\n        {\n          \"name\": \"cross-slide-y\",\n          \"browsers\": [\n            \"E12\",\n            \"FF52\",\n            \"S13\",\n            \"C36\",\n            \"IE11\",\n            \"O23\"\n          ]\n        },\n        {\n          \"name\": \"double-tap-zoom\",\n          \"browsers\": [\n            \"E12\",\n            \"FF52\",\n            \"S13\",\n            \"C36\",\n            \"IE11\",\n            \"O23\"\n          ]\n        },\n        {\n          \"name\": \"manipulation\",\n          \"description\": \"The user agent may consider touches that begin on the element only for the purposes of scrolling and continuous zooming.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"Touches that begin on the element must not trigger default touch behaviors.\"\n        },\n        {\n          \"name\": \"pan-x\",\n          \"description\": \"The user agent may consider touches that begin on the element only for the purposes of horizontally scrolling the element's nearest ancestor with horizontally scrollable content.\"\n        },\n        {\n          \"name\": \"pan-y\",\n          \"description\": \"The user agent may consider touches that begin on the element only for the purposes of vertically scrolling the element's nearest ancestor with vertically scrollable content.\"\n        },\n        {\n          \"name\": \"pinch-zoom\",\n          \"browsers\": [\n            \"E12\",\n            \"FF52\",\n            \"S13\",\n            \"C36\",\n            \"IE11\",\n            \"O23\"\n          ]\n        }\n      ],\n      \"syntax\": \"auto | none | [ [ pan-x | pan-left | pan-right ] || [ pan-y | pan-up | pan-down ] || pinch-zoom ] | manipulation\",\n      \"relevance\": 69,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/touch-action\"\n        }\n      ],\n      \"description\": \"Determines whether touch input may trigger default behavior supplied by user agent.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"transform\",\n      \"browsers\": [\n        \"E12\",\n        \"FF16\",\n        \"S9\",\n        \"C36\",\n        \"IE10\",\n        \"O23\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"matrix()\",\n          \"description\": \"Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]\"\n        },\n        {\n          \"name\": \"matrix3d()\",\n          \"description\": \"Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order.\"\n        },\n        {\n          \"name\": \"none\"\n        },\n        {\n          \"name\": \"perspective()\",\n          \"description\": \"Specifies a perspective projection matrix.\"\n        },\n        {\n          \"name\": \"rotate()\",\n          \"description\": \"Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property.\"\n        },\n        {\n          \"name\": \"rotate3d()\",\n          \"description\": \"Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters.\"\n        },\n        {\n          \"name\": \"rotateX('angle')\",\n          \"description\": \"Specifies a clockwise rotation by the given angle about the X axis.\"\n        },\n        {\n          \"name\": \"rotateY('angle')\",\n          \"description\": \"Specifies a clockwise rotation by the given angle about the Y axis.\"\n        },\n        {\n          \"name\": \"rotateZ('angle')\",\n          \"description\": \"Specifies a clockwise rotation by the given angle about the Z axis.\"\n        },\n        {\n          \"name\": \"scale()\",\n          \"description\": \"Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first.\"\n        },\n        {\n          \"name\": \"scale3d()\",\n          \"description\": \"Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters.\"\n        },\n        {\n          \"name\": \"scaleX()\",\n          \"description\": \"Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter.\"\n        },\n        {\n          \"name\": \"scaleY()\",\n          \"description\": \"Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter.\"\n        },\n        {\n          \"name\": \"scaleZ()\",\n          \"description\": \"Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter.\"\n        },\n        {\n          \"name\": \"skew()\",\n          \"description\": \"Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis).\"\n        },\n        {\n          \"name\": \"skewX()\",\n          \"description\": \"Specifies a skew transformation along the X axis by the given angle.\"\n        },\n        {\n          \"name\": \"skewY()\",\n          \"description\": \"Specifies a skew transformation along the Y axis by the given angle.\"\n        },\n        {\n          \"name\": \"translate()\",\n          \"description\": \"Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter.\"\n        },\n        {\n          \"name\": \"translate3d()\",\n          \"description\": \"Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively.\"\n        },\n        {\n          \"name\": \"translateX()\",\n          \"description\": \"Specifies a translation by the given amount in the X direction.\"\n        },\n        {\n          \"name\": \"translateY()\",\n          \"description\": \"Specifies a translation by the given amount in the Y direction.\"\n        },\n        {\n          \"name\": \"translateZ()\",\n          \"description\": \"Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0.\"\n        }\n      ],\n      \"syntax\": \"none | <transform-list>\",\n      \"relevance\": 90,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/transform\"\n        }\n      ],\n      \"description\": \"A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"transform-origin\",\n      \"browsers\": [\n        \"E12\",\n        \"FF16\",\n        \"S9\",\n        \"C36\",\n        \"IE10\",\n        \"O23\"\n      ],\n      \"syntax\": \"[ <length-percentage> | left | center | right | top | bottom ] | [ [ <length-percentage> | left | center | right ] && [ <length-percentage> | top | center | bottom ] ] <length>?\",\n      \"relevance\": 76,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/transform-origin\"\n        }\n      ],\n      \"description\": \"Establishes the origin of transformation for an element.\",\n      \"restrictions\": [\n        \"position\",\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"transform-style\",\n      \"browsers\": [\n        \"E12\",\n        \"FF16\",\n        \"S9\",\n        \"C36\",\n        \"O23\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"flat\",\n          \"description\": \"All children of this element are rendered flattened into the 2D plane of the element.\"\n        },\n        {\n          \"name\": \"preserve-3d\",\n          \"browsers\": [\n            \"E12\",\n            \"FF16\",\n            \"S9\",\n            \"C36\",\n            \"O23\"\n          ],\n          \"description\": \"Flattening is not performed, so children maintain their position in 3D space.\"\n        }\n      ],\n      \"syntax\": \"flat | preserve-3d\",\n      \"relevance\": 56,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/transform-style\"\n        }\n      ],\n      \"description\": \"Defines how nested elements are rendered in 3D space.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"transition\",\n      \"browsers\": [\n        \"E12\",\n        \"FF16\",\n        \"S9\",\n        \"C26\",\n        \"IE10\",\n        \"O12.1\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"all\",\n          \"description\": \"Every property that is able to undergo a transition will do so.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"No property will transition.\"\n        }\n      ],\n      \"syntax\": \"<single-transition>#\",\n      \"relevance\": 89,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/transition\"\n        }\n      ],\n      \"description\": \"Shorthand property combines four of the transition properties into a single property.\",\n      \"restrictions\": [\n        \"time\",\n        \"property\",\n        \"timing-function\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"transition-delay\",\n      \"browsers\": [\n        \"E12\",\n        \"FF16\",\n        \"S9\",\n        \"C26\",\n        \"IE10\",\n        \"O12.1\"\n      ],\n      \"syntax\": \"<time>#\",\n      \"relevance\": 64,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/transition-delay\"\n        }\n      ],\n      \"description\": \"Defines when the transition will start. It allows a transition to begin execution some period of time from when it is applied.\",\n      \"restrictions\": [\n        \"time\"\n      ]\n    },\n    {\n      \"name\": \"transition-duration\",\n      \"browsers\": [\n        \"E12\",\n        \"FF16\",\n        \"S9\",\n        \"C26\",\n        \"IE10\",\n        \"O12.1\"\n      ],\n      \"syntax\": \"<time>#\",\n      \"relevance\": 68,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/transition-duration\"\n        }\n      ],\n      \"description\": \"Specifies how long the transition from the old value to the new value should take.\",\n      \"restrictions\": [\n        \"time\"\n      ]\n    },\n    {\n      \"name\": \"transition-property\",\n      \"browsers\": [\n        \"E12\",\n        \"FF16\",\n        \"S9\",\n        \"C26\",\n        \"IE10\",\n        \"O12.1\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"all\",\n          \"description\": \"Every property that is able to undergo a transition will do so.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"No property will transition.\"\n        }\n      ],\n      \"syntax\": \"none | <single-transition-property>#\",\n      \"relevance\": 68,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/transition-property\"\n        }\n      ],\n      \"description\": \"Specifies the name of the CSS property to which the transition is applied.\",\n      \"restrictions\": [\n        \"property\"\n      ]\n    },\n    {\n      \"name\": \"transition-timing-function\",\n      \"browsers\": [\n        \"E12\",\n        \"FF16\",\n        \"S9\",\n        \"C26\",\n        \"IE10\",\n        \"O12.1\"\n      ],\n      \"syntax\": \"<easing-function>#\",\n      \"relevance\": 65,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/transition-timing-function\"\n        }\n      ],\n      \"description\": \"Describes how the intermediate values used during a transition will be calculated.\",\n      \"restrictions\": [\n        \"timing-function\"\n      ]\n    },\n    {\n      \"name\": \"unicode-bidi\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1.3\",\n        \"C2\",\n        \"IE5.5\",\n        \"O9.2\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"bidi-override\",\n          \"description\": \"Inside the element, reordering is strictly in sequence according to the 'direction' property; the implicit part of the bidirectional algorithm is ignored.\"\n        },\n        {\n          \"name\": \"embed\",\n          \"description\": \"If the element is inline-level, this value opens an additional level of embedding with respect to the bidirectional algorithm. The direction of this embedding level is given by the 'direction' property.\"\n        },\n        {\n          \"name\": \"isolate\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1.3\",\n            \"C2\",\n            \"IE5.5\",\n            \"O9.2\"\n          ],\n          \"description\": \"The contents of the element are considered to be inside a separate, independent paragraph.\"\n        },\n        {\n          \"name\": \"isolate-override\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1.3\",\n            \"C2\",\n            \"IE5.5\",\n            \"O9.2\"\n          ],\n          \"description\": \"This combines the isolation behavior of 'isolate' with the directional override behavior of 'bidi-override'\"\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"The element does not open an additional level of embedding with respect to the bidirectional algorithm. For inline-level elements, implicit reordering works across element boundaries.\"\n        },\n        {\n          \"name\": \"plaintext\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1.3\",\n            \"C2\",\n            \"IE5.5\",\n            \"O9.2\"\n          ],\n          \"description\": \"For the purposes of the Unicode bidirectional algorithm, the base directionality of each bidi paragraph for which the element forms the containing block is determined not by the element's computed 'direction'.\"\n        }\n      ],\n      \"syntax\": \"normal | embed | isolate | bidi-override | isolate-override | plaintext\",\n      \"relevance\": 56,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/unicode-bidi\"\n        }\n      ],\n      \"description\": \"The level of embedding with respect to the bidirectional algorithm.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"unicode-range\",\n      \"values\": [\n        {\n          \"name\": \"U+26\",\n          \"description\": \"Ampersand.\"\n        },\n        {\n          \"name\": \"U+20-24F, U+2B0-2FF, U+370-4FF, U+1E00-1EFF, U+2000-20CF, U+2100-23FF, U+2500-26FF, U+E000-F8FF, U+FB00-FB4F\",\n          \"description\": \"WGL4 character set (Pan-European).\"\n        },\n        {\n          \"name\": \"U+20-17F, U+2B0-2FF, U+2000-206F, U+20A0-20CF, U+2100-21FF, U+2600-26FF\",\n          \"description\": \"The Multilingual European Subset No. 1. Latin. Covers ~44 languages.\"\n        },\n        {\n          \"name\": \"U+20-2FF, U+370-4FF, U+1E00-20CF, U+2100-23FF, U+2500-26FF, U+FB00-FB4F, U+FFF0-FFFD\",\n          \"description\": \"The Multilingual European Subset No. 2. Latin, Greek, and Cyrillic. Covers ~128 language.\"\n        },\n        {\n          \"name\": \"U+20-4FF, U+530-58F, U+10D0-10FF, U+1E00-23FF, U+2440-245F, U+2500-26FF, U+FB00-FB4F, U+FE20-FE2F, U+FFF0-FFFD\",\n          \"description\": \"The Multilingual European Subset No. 3. Covers all characters belonging to European scripts.\"\n        },\n        {\n          \"name\": \"U+00-7F\",\n          \"description\": \"Basic Latin (ASCII).\"\n        },\n        {\n          \"name\": \"U+80-FF\",\n          \"description\": \"Latin-1 Supplement. Accented characters for Western European languages, common punctuation characters, multiplication and division signs.\"\n        },\n        {\n          \"name\": \"U+100-17F\",\n          \"description\": \"Latin Extended-A. Accented characters for for Czech, Dutch, Polish, and Turkish.\"\n        },\n        {\n          \"name\": \"U+180-24F\",\n          \"description\": \"Latin Extended-B. Croatian, Slovenian, Romanian, Non-European and historic latin, Khoisan, Pinyin, Livonian, Sinology.\"\n        },\n        {\n          \"name\": \"U+1E00-1EFF\",\n          \"description\": \"Latin Extended Additional. Vietnamese, German captial sharp s, Medievalist, Latin general use.\"\n        },\n        {\n          \"name\": \"U+250-2AF\",\n          \"description\": \"International Phonetic Alphabet Extensions.\"\n        },\n        {\n          \"name\": \"U+370-3FF\",\n          \"description\": \"Greek and Coptic.\"\n        },\n        {\n          \"name\": \"U+1F00-1FFF\",\n          \"description\": \"Greek Extended. Accented characters for polytonic Greek.\"\n        },\n        {\n          \"name\": \"U+400-4FF\",\n          \"description\": \"Cyrillic.\"\n        },\n        {\n          \"name\": \"U+500-52F\",\n          \"description\": \"Cyrillic Supplement. Extra letters for Komi, Khanty, Chukchi, Mordvin, Kurdish, Aleut, Chuvash, Abkhaz, Azerbaijani, and Orok.\"\n        },\n        {\n          \"name\": \"U+00-52F, U+1E00-1FFF, U+2200-22FF\",\n          \"description\": \"Latin, Greek, Cyrillic, some punctuation and symbols.\"\n        },\n        {\n          \"name\": \"U+530-58F\",\n          \"description\": \"Armenian.\"\n        },\n        {\n          \"name\": \"U+590-5FF\",\n          \"description\": \"Hebrew.\"\n        },\n        {\n          \"name\": \"U+600-6FF\",\n          \"description\": \"Arabic.\"\n        },\n        {\n          \"name\": \"U+750-77F\",\n          \"description\": \"Arabic Supplement. Additional letters for African languages, Khowar, Torwali, Burushaski, and early Persian.\"\n        },\n        {\n          \"name\": \"U+8A0-8FF\",\n          \"description\": \"Arabic Extended-A. Additional letters for African languages, European and Central Asian languages, Rohingya, Tamazight, Arwi, and Koranic annotation signs.\"\n        },\n        {\n          \"name\": \"U+700-74F\",\n          \"description\": \"Syriac.\"\n        },\n        {\n          \"name\": \"U+900-97F\",\n          \"description\": \"Devanagari.\"\n        },\n        {\n          \"name\": \"U+980-9FF\",\n          \"description\": \"Bengali.\"\n        },\n        {\n          \"name\": \"U+A00-A7F\",\n          \"description\": \"Gurmukhi.\"\n        },\n        {\n          \"name\": \"U+A80-AFF\",\n          \"description\": \"Gujarati.\"\n        },\n        {\n          \"name\": \"U+B00-B7F\",\n          \"description\": \"Oriya.\"\n        },\n        {\n          \"name\": \"U+B80-BFF\",\n          \"description\": \"Tamil.\"\n        },\n        {\n          \"name\": \"U+C00-C7F\",\n          \"description\": \"Telugu.\"\n        },\n        {\n          \"name\": \"U+C80-CFF\",\n          \"description\": \"Kannada.\"\n        },\n        {\n          \"name\": \"U+D00-D7F\",\n          \"description\": \"Malayalam.\"\n        },\n        {\n          \"name\": \"U+D80-DFF\",\n          \"description\": \"Sinhala.\"\n        },\n        {\n          \"name\": \"U+118A0-118FF\",\n          \"description\": \"Warang Citi.\"\n        },\n        {\n          \"name\": \"U+E00-E7F\",\n          \"description\": \"Thai.\"\n        },\n        {\n          \"name\": \"U+1A20-1AAF\",\n          \"description\": \"Tai Tham.\"\n        },\n        {\n          \"name\": \"U+AA80-AADF\",\n          \"description\": \"Tai Viet.\"\n        },\n        {\n          \"name\": \"U+E80-EFF\",\n          \"description\": \"Lao.\"\n        },\n        {\n          \"name\": \"U+F00-FFF\",\n          \"description\": \"Tibetan.\"\n        },\n        {\n          \"name\": \"U+1000-109F\",\n          \"description\": \"Myanmar (Burmese).\"\n        },\n        {\n          \"name\": \"U+10A0-10FF\",\n          \"description\": \"Georgian.\"\n        },\n        {\n          \"name\": \"U+1200-137F\",\n          \"description\": \"Ethiopic.\"\n        },\n        {\n          \"name\": \"U+1380-139F\",\n          \"description\": \"Ethiopic Supplement. Extra Syllables for Sebatbeit, and Tonal marks\"\n        },\n        {\n          \"name\": \"U+2D80-2DDF\",\n          \"description\": \"Ethiopic Extended. Extra Syllables for Me'en, Blin, and Sebatbeit.\"\n        },\n        {\n          \"name\": \"U+AB00-AB2F\",\n          \"description\": \"Ethiopic Extended-A. Extra characters for Gamo-Gofa-Dawro, Basketo, and Gumuz.\"\n        },\n        {\n          \"name\": \"U+1780-17FF\",\n          \"description\": \"Khmer.\"\n        },\n        {\n          \"name\": \"U+1800-18AF\",\n          \"description\": \"Mongolian.\"\n        },\n        {\n          \"name\": \"U+1B80-1BBF\",\n          \"description\": \"Sundanese.\"\n        },\n        {\n          \"name\": \"U+1CC0-1CCF\",\n          \"description\": \"Sundanese Supplement. Punctuation.\"\n        },\n        {\n          \"name\": \"U+4E00-9FD5\",\n          \"description\": \"CJK (Chinese, Japanese, Korean) Unified Ideographs. Most common ideographs for modern Chinese and Japanese.\"\n        },\n        {\n          \"name\": \"U+3400-4DB5\",\n          \"description\": \"CJK Unified Ideographs Extension A. Rare ideographs.\"\n        },\n        {\n          \"name\": \"U+2F00-2FDF\",\n          \"description\": \"Kangxi Radicals.\"\n        },\n        {\n          \"name\": \"U+2E80-2EFF\",\n          \"description\": \"CJK Radicals Supplement. Alternative forms of Kangxi Radicals.\"\n        },\n        {\n          \"name\": \"U+1100-11FF\",\n          \"description\": \"Hangul Jamo.\"\n        },\n        {\n          \"name\": \"U+AC00-D7AF\",\n          \"description\": \"Hangul Syllables.\"\n        },\n        {\n          \"name\": \"U+3040-309F\",\n          \"description\": \"Hiragana.\"\n        },\n        {\n          \"name\": \"U+30A0-30FF\",\n          \"description\": \"Katakana.\"\n        },\n        {\n          \"name\": \"U+A5, U+4E00-9FFF, U+30??, U+FF00-FF9F\",\n          \"description\": \"Japanese Kanji, Hiragana and Katakana characters plus Yen/Yuan symbol.\"\n        },\n        {\n          \"name\": \"U+A4D0-A4FF\",\n          \"description\": \"Lisu.\"\n        },\n        {\n          \"name\": \"U+A000-A48F\",\n          \"description\": \"Yi Syllables.\"\n        },\n        {\n          \"name\": \"U+A490-A4CF\",\n          \"description\": \"Yi Radicals.\"\n        },\n        {\n          \"name\": \"U+2000-206F\",\n          \"description\": \"General Punctuation.\"\n        },\n        {\n          \"name\": \"U+3000-303F\",\n          \"description\": \"CJK Symbols and Punctuation.\"\n        },\n        {\n          \"name\": \"U+2070-209F\",\n          \"description\": \"Superscripts and Subscripts.\"\n        },\n        {\n          \"name\": \"U+20A0-20CF\",\n          \"description\": \"Currency Symbols.\"\n        },\n        {\n          \"name\": \"U+2100-214F\",\n          \"description\": \"Letterlike Symbols.\"\n        },\n        {\n          \"name\": \"U+2150-218F\",\n          \"description\": \"Number Forms.\"\n        },\n        {\n          \"name\": \"U+2190-21FF\",\n          \"description\": \"Arrows.\"\n        },\n        {\n          \"name\": \"U+2200-22FF\",\n          \"description\": \"Mathematical Operators.\"\n        },\n        {\n          \"name\": \"U+2300-23FF\",\n          \"description\": \"Miscellaneous Technical.\"\n        },\n        {\n          \"name\": \"U+E000-F8FF\",\n          \"description\": \"Private Use Area.\"\n        },\n        {\n          \"name\": \"U+FB00-FB4F\",\n          \"description\": \"Alphabetic Presentation Forms. Ligatures for latin, Armenian, and Hebrew.\"\n        },\n        {\n          \"name\": \"U+FB50-FDFF\",\n          \"description\": \"Arabic Presentation Forms-A. Contextual forms / ligatures for Persian, Urdu, Sindhi, Central Asian languages, etc, Arabic pedagogical symbols, word ligatures.\"\n        },\n        {\n          \"name\": \"U+1F600-1F64F\",\n          \"description\": \"Emoji: Emoticons.\"\n        },\n        {\n          \"name\": \"U+2600-26FF\",\n          \"description\": \"Emoji: Miscellaneous Symbols.\"\n        },\n        {\n          \"name\": \"U+1F300-1F5FF\",\n          \"description\": \"Emoji: Miscellaneous Symbols and Pictographs.\"\n        },\n        {\n          \"name\": \"U+1F900-1F9FF\",\n          \"description\": \"Emoji: Supplemental Symbols and Pictographs.\"\n        },\n        {\n          \"name\": \"U+1F680-1F6FF\",\n          \"description\": \"Emoji: Transport and Map Symbols.\"\n        }\n      ],\n      \"atRule\": \"@font-face\",\n      \"syntax\": \"<unicode-range>#\",\n      \"relevance\": 72,\n      \"description\": \"@font-face descriptor. Defines the set of Unicode codepoints that may be supported by the font face for which it is declared.\",\n      \"restrictions\": [\n        \"unicode-range\"\n      ]\n    },\n    {\n      \"name\": \"user-select\",\n      \"browsers\": [\n        \"E79\",\n        \"FF69\",\n        \"S3\",\n        \"C54\",\n        \"IE10\",\n        \"O41\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"all\",\n          \"description\": \"The content of the element must be selected atomically\"\n        },\n        {\n          \"name\": \"auto\"\n        },\n        {\n          \"name\": \"contain\",\n          \"description\": \"UAs must not allow a selection which is started in this element to be extended outside of this element.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"The UA must not allow selections to be started in this element.\"\n        },\n        {\n          \"name\": \"text\",\n          \"description\": \"The element imposes no constraint on the selection.\"\n        }\n      ],\n      \"syntax\": \"auto | text | none | contain | all\",\n      \"relevance\": 82,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/user-select\"\n        }\n      ],\n      \"description\": \"Controls the appearance of selection.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"vertical-align\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O4\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Align the dominant baseline of the parent box with the equivalent, or heuristically reconstructed, baseline of the element inline box.\"\n        },\n        {\n          \"name\": \"baseline\",\n          \"description\": \"Align the 'alphabetic' baseline of the element with the 'alphabetic' baseline of the parent element.\"\n        },\n        {\n          \"name\": \"bottom\",\n          \"description\": \"Align the after edge of the extended inline box with the after-edge of the line box.\"\n        },\n        {\n          \"name\": \"middle\",\n          \"description\": \"Align the 'middle' baseline of the inline element with the middle baseline of the parent.\"\n        },\n        {\n          \"name\": \"sub\",\n          \"description\": \"Lower the baseline of the box to the proper position for subscripts of the parent's box. (This value has no effect on the font size of the element's text.)\"\n        },\n        {\n          \"name\": \"super\",\n          \"description\": \"Raise the baseline of the box to the proper position for superscripts of the parent's box. (This value has no effect on the font size of the element's text.)\"\n        },\n        {\n          \"name\": \"text-bottom\",\n          \"description\": \"Align the bottom of the box with the after-edge of the parent element's font.\"\n        },\n        {\n          \"name\": \"text-top\",\n          \"description\": \"Align the top of the box with the before-edge of the parent element's font.\"\n        },\n        {\n          \"name\": \"top\",\n          \"description\": \"Align the before edge of the extended inline box with the before-edge of the line box.\"\n        },\n        {\n          \"name\": \"-webkit-baseline-middle\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O4\"\n          ]\n        }\n      ],\n      \"syntax\": \"baseline | sub | super | text-top | text-bottom | middle | top | bottom | <percentage> | <length>\",\n      \"relevance\": 90,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/vertical-align\"\n        }\n      ],\n      \"description\": \"Affects the vertical positioning of the inline boxes generated by an inline-level element inside a line box.\",\n      \"restrictions\": [\n        \"percentage\",\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"visibility\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O4\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"collapse\",\n          \"description\": \"Table-specific. If used on elements other than rows, row groups, columns, or column groups, 'collapse' has the same meaning as 'hidden'.\"\n        },\n        {\n          \"name\": \"hidden\",\n          \"description\": \"The generated box is invisible (fully transparent, nothing is drawn), but still affects layout.\"\n        },\n        {\n          \"name\": \"visible\",\n          \"description\": \"The generated box is visible.\"\n        }\n      ],\n      \"syntax\": \"visible | hidden | collapse\",\n      \"relevance\": 87,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/visibility\"\n        }\n      ],\n      \"description\": \"Specifies whether the boxes generated by an element are rendered. Invisible boxes still affect layout (set the 'display' property to 'none' to suppress box generation altogether).\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-animation\",\n      \"browsers\": [\n        \"C\",\n        \"S5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"alternate\",\n          \"description\": \"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"\n        },\n        {\n          \"name\": \"alternate-reverse\",\n          \"description\": \"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"\n        },\n        {\n          \"name\": \"backwards\",\n          \"description\": \"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"\n        },\n        {\n          \"name\": \"both\",\n          \"description\": \"Both forwards and backwards fill modes are applied.\"\n        },\n        {\n          \"name\": \"forwards\",\n          \"description\": \"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"\n        },\n        {\n          \"name\": \"infinite\",\n          \"description\": \"Causes the animation to repeat forever.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"No animation is performed\"\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"Normal playback.\"\n        },\n        {\n          \"name\": \"reverse\",\n          \"description\": \"All iterations of the animation are played in the reverse direction from the way they were specified.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Shorthand property combines six of the animation properties into a single property.\",\n      \"restrictions\": [\n        \"time\",\n        \"enum\",\n        \"timing-function\",\n        \"identifier\",\n        \"number\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-animation-delay\",\n      \"browsers\": [\n        \"C\",\n        \"S5\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Defines when the animation will start.\",\n      \"restrictions\": [\n        \"time\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-animation-direction\",\n      \"browsers\": [\n        \"C\",\n        \"S5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"alternate\",\n          \"description\": \"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction.\"\n        },\n        {\n          \"name\": \"alternate-reverse\",\n          \"description\": \"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction.\"\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"Normal playback.\"\n        },\n        {\n          \"name\": \"reverse\",\n          \"description\": \"All iterations of the animation are played in the reverse direction from the way they were specified.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Defines whether or not the animation should play in reverse on alternate cycles.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-animation-duration\",\n      \"browsers\": [\n        \"C\",\n        \"S5\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Defines the length of time that an animation takes to complete one cycle.\",\n      \"restrictions\": [\n        \"time\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-animation-fill-mode\",\n      \"browsers\": [\n        \"C\",\n        \"S5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"backwards\",\n          \"description\": \"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'.\"\n        },\n        {\n          \"name\": \"both\",\n          \"description\": \"Both forwards and backwards fill modes are applied.\"\n        },\n        {\n          \"name\": \"forwards\",\n          \"description\": \"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"There is no change to the property value between the time the animation is applied and the time the animation begins playing or after the animation completes.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Defines what values are applied by the animation outside the time it is executing.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-animation-iteration-count\",\n      \"browsers\": [\n        \"C\",\n        \"S5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"infinite\",\n          \"description\": \"Causes the animation to repeat forever.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Defines the number of times an animation cycle is played. The default value is one, meaning the animation will play from beginning to end once.\",\n      \"restrictions\": [\n        \"number\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-animation-name\",\n      \"browsers\": [\n        \"C\",\n        \"S5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"No animation is performed\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Defines a list of animations that apply. Each name is used to select the keyframe at-rule that provides the property values for the animation.\",\n      \"restrictions\": [\n        \"identifier\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-animation-play-state\",\n      \"browsers\": [\n        \"C\",\n        \"S5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"paused\",\n          \"description\": \"A running animation will be paused.\"\n        },\n        {\n          \"name\": \"running\",\n          \"description\": \"Resume playback of a paused animation.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Defines whether the animation is running or paused.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-animation-timing-function\",\n      \"browsers\": [\n        \"C\",\n        \"S5\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Describes how the animation will progress over one cycle of its duration. See the 'transition-timing-function'.\",\n      \"restrictions\": [\n        \"timing-function\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-appearance\",\n      \"browsers\": [\n        \"C\",\n        \"S3\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"button\"\n        },\n        {\n          \"name\": \"button-bevel\"\n        },\n        {\n          \"name\": \"caps-lock-indicator\"\n        },\n        {\n          \"name\": \"caret\"\n        },\n        {\n          \"name\": \"checkbox\"\n        },\n        {\n          \"name\": \"default-button\"\n        },\n        {\n          \"name\": \"listbox\"\n        },\n        {\n          \"name\": \"listitem\"\n        },\n        {\n          \"name\": \"media-fullscreen-button\"\n        },\n        {\n          \"name\": \"media-mute-button\"\n        },\n        {\n          \"name\": \"media-play-button\"\n        },\n        {\n          \"name\": \"media-seek-back-button\"\n        },\n        {\n          \"name\": \"media-seek-forward-button\"\n        },\n        {\n          \"name\": \"media-slider\"\n        },\n        {\n          \"name\": \"media-sliderthumb\"\n        },\n        {\n          \"name\": \"menulist\"\n        },\n        {\n          \"name\": \"menulist-button\"\n        },\n        {\n          \"name\": \"menulist-text\"\n        },\n        {\n          \"name\": \"menulist-textfield\"\n        },\n        {\n          \"name\": \"none\"\n        },\n        {\n          \"name\": \"push-button\"\n        },\n        {\n          \"name\": \"radio\"\n        },\n        {\n          \"name\": \"scrollbarbutton-down\"\n        },\n        {\n          \"name\": \"scrollbarbutton-left\"\n        },\n        {\n          \"name\": \"scrollbarbutton-right\"\n        },\n        {\n          \"name\": \"scrollbarbutton-up\"\n        },\n        {\n          \"name\": \"scrollbargripper-horizontal\"\n        },\n        {\n          \"name\": \"scrollbargripper-vertical\"\n        },\n        {\n          \"name\": \"scrollbarthumb-horizontal\"\n        },\n        {\n          \"name\": \"scrollbarthumb-vertical\"\n        },\n        {\n          \"name\": \"scrollbartrack-horizontal\"\n        },\n        {\n          \"name\": \"scrollbartrack-vertical\"\n        },\n        {\n          \"name\": \"searchfield\"\n        },\n        {\n          \"name\": \"searchfield-cancel-button\"\n        },\n        {\n          \"name\": \"searchfield-decoration\"\n        },\n        {\n          \"name\": \"searchfield-results-button\"\n        },\n        {\n          \"name\": \"searchfield-results-decoration\"\n        },\n        {\n          \"name\": \"slider-horizontal\"\n        },\n        {\n          \"name\": \"sliderthumb-horizontal\"\n        },\n        {\n          \"name\": \"sliderthumb-vertical\"\n        },\n        {\n          \"name\": \"slider-vertical\"\n        },\n        {\n          \"name\": \"square-button\"\n        },\n        {\n          \"name\": \"textarea\"\n        },\n        {\n          \"name\": \"textfield\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"none | button | button-bevel | caret | checkbox | default-button | inner-spin-button | listbox | listitem | media-controls-background | media-controls-fullscreen-background | media-current-time-display | media-enter-fullscreen-button | media-exit-fullscreen-button | media-fullscreen-button | media-mute-button | media-overlay-play-button | media-play-button | media-seek-back-button | media-seek-forward-button | media-slider | media-sliderthumb | media-time-remaining-display | media-toggle-closed-captions-button | media-volume-slider | media-volume-slider-container | media-volume-sliderthumb | menulist | menulist-button | menulist-text | menulist-textfield | meter | progress-bar | progress-bar-value | push-button | radio | searchfield | searchfield-cancel-button | searchfield-decoration | searchfield-results-button | searchfield-results-decoration | slider-horizontal | slider-vertical | sliderthumb-horizontal | sliderthumb-vertical | square-button | textarea | textfield | -apple-pay-button\",\n      \"relevance\": 0,\n      \"description\": \"Changes the appearance of buttons and other controls to resemble native controls.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-backdrop-filter\",\n      \"browsers\": [\n        \"S9\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"No filter effects are applied.\"\n        },\n        {\n          \"name\": \"blur()\",\n          \"description\": \"Applies a Gaussian blur to the input image.\"\n        },\n        {\n          \"name\": \"brightness()\",\n          \"description\": \"Applies a linear multiplier to input image, making it appear more or less bright.\"\n        },\n        {\n          \"name\": \"contrast()\",\n          \"description\": \"Adjusts the contrast of the input.\"\n        },\n        {\n          \"name\": \"drop-shadow()\",\n          \"description\": \"Applies a drop shadow effect to the input image.\"\n        },\n        {\n          \"name\": \"grayscale()\",\n          \"description\": \"Converts the input image to grayscale.\"\n        },\n        {\n          \"name\": \"hue-rotate()\",\n          \"description\": \"Applies a hue rotation on the input image. \"\n        },\n        {\n          \"name\": \"invert()\",\n          \"description\": \"Inverts the samples in the input image.\"\n        },\n        {\n          \"name\": \"opacity()\",\n          \"description\": \"Applies transparency to the samples in the input image.\"\n        },\n        {\n          \"name\": \"saturate()\",\n          \"description\": \"Saturates the input image.\"\n        },\n        {\n          \"name\": \"sepia()\",\n          \"description\": \"Converts the input image to sepia.\"\n        },\n        {\n          \"name\": \"url()\",\n          \"description\": \"A filter reference to a <filter> element.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Applies a filter effect where the first filter in the list takes the element's background image as the input image.\",\n      \"restrictions\": [\n        \"enum\",\n        \"url\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-backface-visibility\",\n      \"browsers\": [\n        \"C\",\n        \"S5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"hidden\"\n        },\n        {\n          \"name\": \"visible\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Determines whether or not the 'back' side of a transformed element is visible when facing the viewer. With an identity transform, the front side of an element faces the viewer.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-background-clip\",\n      \"browsers\": [\n        \"C\",\n        \"S3\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Determines the background painting area.\",\n      \"restrictions\": [\n        \"box\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-background-composite\",\n      \"browsers\": [\n        \"C\",\n        \"S3\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"border\"\n        },\n        {\n          \"name\": \"padding\"\n        }\n      ],\n      \"relevance\": 50,\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-background-origin\",\n      \"browsers\": [\n        \"C\",\n        \"S3\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"For elements rendered as a single box, specifies the background positioning area. For elements rendered as multiple boxes (e.g., inline boxes on several lines, boxes on several pages) specifies which boxes 'box-decoration-break' operates on to determine the background positioning area(s).\",\n      \"restrictions\": [\n        \"box\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-border-image\",\n      \"browsers\": [\n        \"C\",\n        \"S5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"If 'auto' is specified then the border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead.\"\n        },\n        {\n          \"name\": \"fill\",\n          \"description\": \"Causes the middle part of the border-image to be preserved.\"\n        },\n        {\n          \"name\": \"none\"\n        },\n        {\n          \"name\": \"repeat\",\n          \"description\": \"The image is tiled (repeated) to fill the area.\"\n        },\n        {\n          \"name\": \"round\",\n          \"description\": \"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does.\"\n        },\n        {\n          \"name\": \"space\",\n          \"description\": \"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles.\"\n        },\n        {\n          \"name\": \"stretch\",\n          \"description\": \"The image is stretched to fill the area.\"\n        },\n        {\n          \"name\": \"url()\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Shorthand property for setting 'border-image-source', 'border-image-slice', 'border-image-width', 'border-image-outset' and 'border-image-repeat'. Omitted values are set to their initial values.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\",\n        \"number\",\n        \"url\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-box-align\",\n      \"browsers\": [\n        \"C\",\n        \"S3\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"baseline\",\n          \"description\": \"If this box orientation is inline-axis or horizontal, all children are placed with their baselines aligned, and extra space placed before or after as necessary. For block flows, the baseline of the first non-empty line box located within the element is used. For tables, the baseline of the first cell is used.\"\n        },\n        {\n          \"name\": \"center\",\n          \"description\": \"Any extra space is divided evenly, with half placed above the child and the other half placed after the child.\"\n        },\n        {\n          \"name\": \"end\",\n          \"description\": \"For normal direction boxes, the bottom edge of each child is placed along the bottom of the box. Extra space is placed above the element. For reverse direction boxes, the top edge of each child is placed along the top of the box. Extra space is placed below the element.\"\n        },\n        {\n          \"name\": \"start\",\n          \"description\": \"For normal direction boxes, the top edge of each child is placed along the top of the box. Extra space is placed below the element. For reverse direction boxes, the bottom edge of each child is placed along the bottom of the box. Extra space is placed above the element.\"\n        },\n        {\n          \"name\": \"stretch\",\n          \"description\": \"The height of each child is adjusted to that of the containing block.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies the alignment of nested elements within an outer flexible box element.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-box-direction\",\n      \"browsers\": [\n        \"C\",\n        \"S3\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"normal\",\n          \"description\": \"A box with a computed value of horizontal for box-orient displays its children from left to right. A box with a computed value of vertical displays its children from top to bottom.\"\n        },\n        {\n          \"name\": \"reverse\",\n          \"description\": \"A box with a computed value of horizontal for box-orient displays its children from right to left. A box with a computed value of vertical displays its children from bottom to top.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"In webkit applications, -webkit-box-direction specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge).\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-box-flex\",\n      \"browsers\": [\n        \"C\",\n        \"S3\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies an element's flexibility.\",\n      \"restrictions\": [\n        \"number\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-box-flex-group\",\n      \"browsers\": [\n        \"C\",\n        \"S3\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Flexible elements can be assigned to flex groups using the 'box-flex-group' property.\",\n      \"restrictions\": [\n        \"integer\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-box-ordinal-group\",\n      \"browsers\": [\n        \"C\",\n        \"S3\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Indicates the ordinal group the element belongs to. Elements with a lower ordinal group are displayed before those with a higher ordinal group.\",\n      \"restrictions\": [\n        \"integer\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-box-orient\",\n      \"browsers\": [\n        \"C\",\n        \"S3\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"block-axis\",\n          \"description\": \"Elements are oriented along the box's axis.\"\n        },\n        {\n          \"name\": \"horizontal\",\n          \"description\": \"The box displays its children from left to right in a horizontal line.\"\n        },\n        {\n          \"name\": \"inline-axis\",\n          \"description\": \"Elements are oriented vertically.\"\n        },\n        {\n          \"name\": \"vertical\",\n          \"description\": \"The box displays its children from stacked from top to bottom vertically.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"In webkit applications, -webkit-box-orient specifies whether a box lays out its contents horizontally or vertically.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-box-pack\",\n      \"browsers\": [\n        \"C\",\n        \"S3\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"center\",\n          \"description\": \"The extra space is divided evenly, with half placed before the first child and the other half placed after the last child.\"\n        },\n        {\n          \"name\": \"end\",\n          \"description\": \"For normal direction boxes, the right edge of the last child is placed at the right side, with all extra space placed before the first child. For reverse direction boxes, the left edge of the first child is placed at the left side, with all extra space placed after the last child.\"\n        },\n        {\n          \"name\": \"justify\",\n          \"description\": \"The space is divided evenly in-between each child, with none of the extra space placed before the first child or after the last child. If there is only one child, treat the pack value as if it were start.\"\n        },\n        {\n          \"name\": \"start\",\n          \"description\": \"For normal direction boxes, the left edge of the first child is placed at the left side, with all extra space placed after the last child. For reverse direction boxes, the right edge of the last child is placed at the right side, with all extra space placed before the first child.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies alignment of child elements within the current element in the direction of orientation.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-box-reflect\",\n      \"browsers\": [\n        \"E79\",\n        \"S4\",\n        \"C4\",\n        \"O15\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"above\",\n          \"description\": \"The reflection appears above the border box.\"\n        },\n        {\n          \"name\": \"below\",\n          \"description\": \"The reflection appears below the border box.\"\n        },\n        {\n          \"name\": \"left\",\n          \"description\": \"The reflection appears to the left of the border box.\"\n        },\n        {\n          \"name\": \"right\",\n          \"description\": \"The reflection appears to the right of the border box.\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"[ above | below | right | left ]? <length>? <image>?\",\n      \"relevance\": 0,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/-webkit-box-reflect\"\n        }\n      ],\n      \"description\": \"Defines a reflection of a border box.\"\n    },\n    {\n      \"name\": \"-webkit-box-sizing\",\n      \"browsers\": [\n        \"C\",\n        \"S3\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"border-box\",\n          \"description\": \"The specified width and height (and respective min/max properties) on this element determine the border box of the element.\"\n        },\n        {\n          \"name\": \"content-box\",\n          \"description\": \"Behavior of width and height as specified by CSS2.1. The specified width and height (and respective min/max properties) apply to the width and height respectively of the content box of the element.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Box Model addition in CSS3.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-break-after\",\n      \"browsers\": [\n        \"S7\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"always\",\n          \"description\": \"Always force a page break before/after the generated box.\"\n        },\n        {\n          \"name\": \"auto\",\n          \"description\": \"Neither force nor forbid a page/column break before/after the generated box.\"\n        },\n        {\n          \"name\": \"avoid\",\n          \"description\": \"Avoid a page/column break before/after the generated box.\"\n        },\n        {\n          \"name\": \"avoid-column\",\n          \"description\": \"Avoid a column break before/after the generated box.\"\n        },\n        {\n          \"name\": \"avoid-page\",\n          \"description\": \"Avoid a page break before/after the generated box.\"\n        },\n        {\n          \"name\": \"avoid-region\"\n        },\n        {\n          \"name\": \"column\",\n          \"description\": \"Always force a column break before/after the generated box.\"\n        },\n        {\n          \"name\": \"left\",\n          \"description\": \"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page.\"\n        },\n        {\n          \"name\": \"page\",\n          \"description\": \"Always force a page break before/after the generated box.\"\n        },\n        {\n          \"name\": \"region\"\n        },\n        {\n          \"name\": \"right\",\n          \"description\": \"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Describes the page/column break behavior before the generated box.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-break-before\",\n      \"browsers\": [\n        \"S7\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"always\",\n          \"description\": \"Always force a page break before/after the generated box.\"\n        },\n        {\n          \"name\": \"auto\",\n          \"description\": \"Neither force nor forbid a page/column break before/after the generated box.\"\n        },\n        {\n          \"name\": \"avoid\",\n          \"description\": \"Avoid a page/column break before/after the generated box.\"\n        },\n        {\n          \"name\": \"avoid-column\",\n          \"description\": \"Avoid a column break before/after the generated box.\"\n        },\n        {\n          \"name\": \"avoid-page\",\n          \"description\": \"Avoid a page break before/after the generated box.\"\n        },\n        {\n          \"name\": \"avoid-region\"\n        },\n        {\n          \"name\": \"column\",\n          \"description\": \"Always force a column break before/after the generated box.\"\n        },\n        {\n          \"name\": \"left\",\n          \"description\": \"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page.\"\n        },\n        {\n          \"name\": \"page\",\n          \"description\": \"Always force a page break before/after the generated box.\"\n        },\n        {\n          \"name\": \"region\"\n        },\n        {\n          \"name\": \"right\",\n          \"description\": \"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Describes the page/column break behavior before the generated box.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-break-inside\",\n      \"browsers\": [\n        \"S7\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Neither force nor forbid a page/column break inside the generated box.\"\n        },\n        {\n          \"name\": \"avoid\",\n          \"description\": \"Avoid a page/column break inside the generated box.\"\n        },\n        {\n          \"name\": \"avoid-column\",\n          \"description\": \"Avoid a column break inside the generated box.\"\n        },\n        {\n          \"name\": \"avoid-page\",\n          \"description\": \"Avoid a page break inside the generated box.\"\n        },\n        {\n          \"name\": \"avoid-region\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Describes the page/column break behavior inside the generated box.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-column-break-after\",\n      \"browsers\": [\n        \"E80\",\n        \"S13.1\",\n        \"C80\",\n        \"O67\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"always\",\n          \"description\": \"Always force a page break before/after the generated box.\"\n        },\n        {\n          \"name\": \"auto\",\n          \"description\": \"Neither force nor forbid a page/column break before/after the generated box.\"\n        },\n        {\n          \"name\": \"avoid\",\n          \"description\": \"Avoid a page/column break before/after the generated box.\"\n        },\n        {\n          \"name\": \"avoid-column\",\n          \"description\": \"Avoid a column break before/after the generated box.\"\n        },\n        {\n          \"name\": \"avoid-page\",\n          \"description\": \"Avoid a page break before/after the generated box.\"\n        },\n        {\n          \"name\": \"avoid-region\"\n        },\n        {\n          \"name\": \"column\",\n          \"description\": \"Always force a column break before/after the generated box.\"\n        },\n        {\n          \"name\": \"left\",\n          \"description\": \"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page.\"\n        },\n        {\n          \"name\": \"page\",\n          \"description\": \"Always force a page break before/after the generated box.\"\n        },\n        {\n          \"name\": \"region\"\n        },\n        {\n          \"name\": \"right\",\n          \"description\": \"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Describes the page/column break behavior before the generated box.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-column-break-before\",\n      \"browsers\": [\n        \"E80\",\n        \"S13.1\",\n        \"C80\",\n        \"O67\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"always\",\n          \"description\": \"Always force a page break before/after the generated box.\"\n        },\n        {\n          \"name\": \"auto\",\n          \"description\": \"Neither force nor forbid a page/column break before/after the generated box.\"\n        },\n        {\n          \"name\": \"avoid\",\n          \"description\": \"Avoid a page/column break before/after the generated box.\"\n        },\n        {\n          \"name\": \"avoid-column\",\n          \"description\": \"Avoid a column break before/after the generated box.\"\n        },\n        {\n          \"name\": \"avoid-page\",\n          \"description\": \"Avoid a page break before/after the generated box.\"\n        },\n        {\n          \"name\": \"avoid-region\"\n        },\n        {\n          \"name\": \"column\",\n          \"description\": \"Always force a column break before/after the generated box.\"\n        },\n        {\n          \"name\": \"left\",\n          \"description\": \"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page.\"\n        },\n        {\n          \"name\": \"page\",\n          \"description\": \"Always force a page break before/after the generated box.\"\n        },\n        {\n          \"name\": \"region\"\n        },\n        {\n          \"name\": \"right\",\n          \"description\": \"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Describes the page/column break behavior before the generated box.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-column-break-inside\",\n      \"browsers\": [\n        \"E80\",\n        \"S13.1\",\n        \"C80\",\n        \"O67\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Neither force nor forbid a page/column break inside the generated box.\"\n        },\n        {\n          \"name\": \"avoid\",\n          \"description\": \"Avoid a page/column break inside the generated box.\"\n        },\n        {\n          \"name\": \"avoid-column\",\n          \"description\": \"Avoid a column break inside the generated box.\"\n        },\n        {\n          \"name\": \"avoid-page\",\n          \"description\": \"Avoid a page break inside the generated box.\"\n        },\n        {\n          \"name\": \"avoid-region\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Describes the page/column break behavior inside the generated box.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-column-count\",\n      \"browsers\": [\n        \"C\",\n        \"S3\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Determines the number of columns by the 'column-width' property and the element width.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Describes the optimal number of columns into which the content of the element will be flowed.\",\n      \"restrictions\": [\n        \"integer\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-column-gap\",\n      \"browsers\": [\n        \"C\",\n        \"S3\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"normal\",\n          \"description\": \"User agent specific and typically equivalent to 1em.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Sets the gap between columns. If there is a column rule between columns, it will appear in the middle of the gap.\",\n      \"restrictions\": [\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-column-rule\",\n      \"browsers\": [\n        \"C\",\n        \"S3\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"This property is a shorthand for setting 'column-rule-width', 'column-rule-style', and 'column-rule-color' at the same place in the style sheet. Omitted values are set to their initial values.\",\n      \"restrictions\": [\n        \"length\",\n        \"line-width\",\n        \"line-style\",\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-column-rule-color\",\n      \"browsers\": [\n        \"C\",\n        \"S3\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Sets the color of the column rule\",\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-column-rule-style\",\n      \"browsers\": [\n        \"C\",\n        \"S3\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Sets the style of the rule between columns of an element.\",\n      \"restrictions\": [\n        \"line-style\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-column-rule-width\",\n      \"browsers\": [\n        \"C\",\n        \"S3\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Sets the width of the rule between columns. Negative values are not allowed.\",\n      \"restrictions\": [\n        \"length\",\n        \"line-width\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-columns\",\n      \"browsers\": [\n        \"C\",\n        \"S3\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The width depends on the values of other properties.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"A shorthand property which sets both 'column-width' and 'column-count'.\",\n      \"restrictions\": [\n        \"length\",\n        \"integer\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-column-span\",\n      \"browsers\": [\n        \"C\",\n        \"S3\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"all\",\n          \"description\": \"The element spans across all columns. Content in the normal flow that appears before the element is automatically balanced across all columns before the element appear.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"The element does not span multiple columns.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Describes the page/column break behavior after the generated box.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-column-width\",\n      \"browsers\": [\n        \"C\",\n        \"S3\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The width depends on the values of other properties.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"This property describes the width of columns in multicol elements.\",\n      \"restrictions\": [\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-filter\",\n      \"browsers\": [\n        \"C18\",\n        \"O15\",\n        \"S6\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"No filter effects are applied.\"\n        },\n        {\n          \"name\": \"blur()\",\n          \"description\": \"Applies a Gaussian blur to the input image.\"\n        },\n        {\n          \"name\": \"brightness()\",\n          \"description\": \"Applies a linear multiplier to input image, making it appear more or less bright.\"\n        },\n        {\n          \"name\": \"contrast()\",\n          \"description\": \"Adjusts the contrast of the input.\"\n        },\n        {\n          \"name\": \"drop-shadow()\",\n          \"description\": \"Applies a drop shadow effect to the input image.\"\n        },\n        {\n          \"name\": \"grayscale()\",\n          \"description\": \"Converts the input image to grayscale.\"\n        },\n        {\n          \"name\": \"hue-rotate()\",\n          \"description\": \"Applies a hue rotation on the input image. \"\n        },\n        {\n          \"name\": \"invert()\",\n          \"description\": \"Inverts the samples in the input image.\"\n        },\n        {\n          \"name\": \"opacity()\",\n          \"description\": \"Applies transparency to the samples in the input image.\"\n        },\n        {\n          \"name\": \"saturate()\",\n          \"description\": \"Saturates the input image.\"\n        },\n        {\n          \"name\": \"sepia()\",\n          \"description\": \"Converts the input image to sepia.\"\n        },\n        {\n          \"name\": \"url()\",\n          \"description\": \"A filter reference to a <filter> element.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Processes an element's rendering before it is displayed in the document, by applying one or more filter effects.\",\n      \"restrictions\": [\n        \"enum\",\n        \"url\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-flow-from\",\n      \"browsers\": [\n        \"S6.1\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"The block container is not a CSS Region.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Makes a block container a region and associates it with a named flow.\",\n      \"restrictions\": [\n        \"identifier\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-flow-into\",\n      \"browsers\": [\n        \"S6.1\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"The element is not moved to a named flow and normal CSS processing takes place.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Places an element or its contents into a named flow.\",\n      \"restrictions\": [\n        \"identifier\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-font-feature-settings\",\n      \"browsers\": [\n        \"C16\"\n      ],\n      \"values\": [\n        {\n          \"name\": '\"c2cs\"'\n        },\n        {\n          \"name\": '\"dlig\"'\n        },\n        {\n          \"name\": '\"kern\"'\n        },\n        {\n          \"name\": '\"liga\"'\n        },\n        {\n          \"name\": '\"lnum\"'\n        },\n        {\n          \"name\": '\"onum\"'\n        },\n        {\n          \"name\": '\"smcp\"'\n        },\n        {\n          \"name\": '\"swsh\"'\n        },\n        {\n          \"name\": '\"tnum\"'\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"No change in glyph substitution or positioning occurs.\"\n        },\n        {\n          \"name\": \"off\"\n        },\n        {\n          \"name\": \"on\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"This property provides low-level control over OpenType font features. It is intended as a way of providing access to font features that are not widely used but are needed for a particular use case.\",\n      \"restrictions\": [\n        \"string\",\n        \"integer\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-hyphens\",\n      \"browsers\": [\n        \"S5.1\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Conditional hyphenation characters inside a word, if present, take priority over automatic resources when determining hyphenation points within the word.\"\n        },\n        {\n          \"name\": \"manual\",\n          \"description\": \"Words are only broken at line breaks where there are characters inside the word that suggest line break opportunities\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"Words are not broken at line breaks, even if characters inside the word suggest line break points.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Controls whether hyphenation is allowed to create more break opportunities within a line of text.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-line-break\",\n      \"browsers\": [\n        \"C\",\n        \"S3\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"after-white-space\"\n        },\n        {\n          \"name\": \"normal\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies line-breaking rules for CJK (Chinese, Japanese, and Korean) text.\"\n    },\n    {\n      \"name\": \"-webkit-margin-bottom-collapse\",\n      \"browsers\": [\n        \"C\",\n        \"S3\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"collapse\"\n        },\n        {\n          \"name\": \"discard\"\n        },\n        {\n          \"name\": \"separate\"\n        }\n      ],\n      \"relevance\": 50,\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-margin-collapse\",\n      \"browsers\": [\n        \"C\",\n        \"S3\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"collapse\"\n        },\n        {\n          \"name\": \"discard\"\n        },\n        {\n          \"name\": \"separate\"\n        }\n      ],\n      \"relevance\": 50,\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-margin-start\",\n      \"browsers\": [\n        \"C\",\n        \"S3\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        }\n      ],\n      \"relevance\": 50,\n      \"restrictions\": [\n        \"percentage\",\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-margin-top-collapse\",\n      \"browsers\": [\n        \"C\",\n        \"S3\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"collapse\"\n        },\n        {\n          \"name\": \"discard\"\n        },\n        {\n          \"name\": \"separate\"\n        }\n      ],\n      \"relevance\": 50,\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-mask-clip\",\n      \"browsers\": [\n        \"C\",\n        \"O15\",\n        \"S4\"\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"[ <box> | border | padding | content | text ]#\",\n      \"relevance\": 0,\n      \"description\": \"Determines the mask painting area, which determines the area that is affected by the mask.\",\n      \"restrictions\": [\n        \"box\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-mask-image\",\n      \"browsers\": [\n        \"C\",\n        \"O15\",\n        \"S4\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"Counts as a transparent black image layer.\"\n        },\n        {\n          \"name\": \"url()\",\n          \"description\": \"Reference to a <mask element or to a CSS image.\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<mask-reference>#\",\n      \"relevance\": 0,\n      \"description\": \"Sets the mask layer image of an element.\",\n      \"restrictions\": [\n        \"url\",\n        \"image\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-mask-origin\",\n      \"browsers\": [\n        \"C\",\n        \"O15\",\n        \"S4\"\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"[ <box> | border | padding | content ]#\",\n      \"relevance\": 0,\n      \"description\": \"Specifies the mask positioning area.\",\n      \"restrictions\": [\n        \"box\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-mask-repeat\",\n      \"browsers\": [\n        \"C\",\n        \"O15\",\n        \"S4\"\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<repeat-style>#\",\n      \"relevance\": 0,\n      \"description\": \"Specifies how mask layer images are tiled after they have been sized and positioned.\",\n      \"restrictions\": [\n        \"repeat\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-mask-size\",\n      \"browsers\": [\n        \"C\",\n        \"O15\",\n        \"S4\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Resolved by using the image's intrinsic ratio and the size of the other dimension, or failing that, using the image's intrinsic size, or failing that, treating it as 100%.\"\n        },\n        {\n          \"name\": \"contain\",\n          \"description\": \"Scale the image, while preserving its intrinsic aspect ratio (if any), to the largest size such that both its width and its height can fit inside the background positioning area.\"\n        },\n        {\n          \"name\": \"cover\",\n          \"description\": \"Scale the image, while preserving its intrinsic aspect ratio (if any), to the smallest size such that both its width and its height can completely cover the background positioning area.\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<bg-size>#\",\n      \"relevance\": 0,\n      \"description\": \"Specifies the size of the mask layer images.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-nbsp-mode\",\n      \"browsers\": [\n        \"S13.1\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"normal\"\n        },\n        {\n          \"name\": \"space\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Defines the behavior of nonbreaking spaces within text.\"\n    },\n    {\n      \"name\": \"-webkit-overflow-scrolling\",\n      \"browsers\": [\n        \"C\",\n        \"S5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        },\n        {\n          \"name\": \"touch\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"auto | touch\",\n      \"relevance\": 0,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/-webkit-overflow-scrolling\"\n        }\n      ],\n      \"description\": \"Specifies whether to use native-style scrolling in an overflow:scroll element.\"\n    },\n    {\n      \"name\": \"-webkit-padding-start\",\n      \"browsers\": [\n        \"C\",\n        \"S3\"\n      ],\n      \"relevance\": 50,\n      \"restrictions\": [\n        \"percentage\",\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-perspective\",\n      \"browsers\": [\n        \"C\",\n        \"S4\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\",\n          \"description\": \"No perspective transform is applied.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Applies the same transform as the perspective(<number>) transform function, except that it applies only to the positioned or transformed children of the element, not to the transform on the element itself.\",\n      \"restrictions\": [\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-perspective-origin\",\n      \"browsers\": [\n        \"C\",\n        \"S4\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Establishes the origin for the perspective property. It effectively sets the X and Y position at which the viewer appears to be looking at the children of the element.\",\n      \"restrictions\": [\n        \"position\",\n        \"percentage\",\n        \"length\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-region-fragment\",\n      \"browsers\": [\n        \"S7\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Content flows as it would in a regular content box.\"\n        },\n        {\n          \"name\": \"break\",\n          \"description\": \"If the content fits within the CSS Region, then this property has no effect.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"The 'region-fragment' property controls the behavior of the last region associated with a named flow.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-tap-highlight-color\",\n      \"browsers\": [\n        \"E12\",\n        \"C16\",\n        \"O15\"\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<color>\",\n      \"relevance\": 0,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/-webkit-tap-highlight-color\"\n        }\n      ],\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-text-fill-color\",\n      \"browsers\": [\n        \"E12\",\n        \"FF49\",\n        \"S3\",\n        \"C1\",\n        \"O15\"\n      ],\n      \"syntax\": \"<color>\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-fill-color\"\n        }\n      ],\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-text-size-adjust\",\n      \"browsers\": [\n        \"E\",\n        \"C\",\n        \"S3\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Renderers must use the default size adjustment when displaying on a small device.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"Renderers must not do size adjustment when displaying on a small device.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies a size adjustment for displaying text content in mobile browsers.\",\n      \"restrictions\": [\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-text-stroke\",\n      \"browsers\": [\n        \"E15\",\n        \"FF49\",\n        \"S3\",\n        \"C4\",\n        \"O15\"\n      ],\n      \"syntax\": \"<length> || <color>\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke\"\n        }\n      ],\n      \"restrictions\": [\n        \"length\",\n        \"line-width\",\n        \"color\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-text-stroke-color\",\n      \"browsers\": [\n        \"E15\",\n        \"FF49\",\n        \"S3\",\n        \"C1\",\n        \"O15\"\n      ],\n      \"syntax\": \"<color>\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke-color\"\n        }\n      ],\n      \"restrictions\": [\n        \"color\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-text-stroke-width\",\n      \"browsers\": [\n        \"E15\",\n        \"FF49\",\n        \"S3\",\n        \"C1\",\n        \"O15\"\n      ],\n      \"syntax\": \"<length>\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke-width\"\n        }\n      ],\n      \"restrictions\": [\n        \"length\",\n        \"line-width\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-touch-callout\",\n      \"browsers\": [\n        \"S3\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"none\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"default | none\",\n      \"relevance\": 0,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/-webkit-touch-callout\"\n        }\n      ],\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-transform\",\n      \"browsers\": [\n        \"C\",\n        \"O12\",\n        \"S3.1\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"matrix()\",\n          \"description\": \"Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]\"\n        },\n        {\n          \"name\": \"matrix3d()\",\n          \"description\": \"Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order.\"\n        },\n        {\n          \"name\": \"none\"\n        },\n        {\n          \"name\": \"perspective()\",\n          \"description\": \"Specifies a perspective projection matrix.\"\n        },\n        {\n          \"name\": \"rotate()\",\n          \"description\": \"Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property.\"\n        },\n        {\n          \"name\": \"rotate3d()\",\n          \"description\": \"Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters.\"\n        },\n        {\n          \"name\": \"rotateX('angle')\",\n          \"description\": \"Specifies a clockwise rotation by the given angle about the X axis.\"\n        },\n        {\n          \"name\": \"rotateY('angle')\",\n          \"description\": \"Specifies a clockwise rotation by the given angle about the Y axis.\"\n        },\n        {\n          \"name\": \"rotateZ('angle')\",\n          \"description\": \"Specifies a clockwise rotation by the given angle about the Z axis.\"\n        },\n        {\n          \"name\": \"scale()\",\n          \"description\": \"Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first.\"\n        },\n        {\n          \"name\": \"scale3d()\",\n          \"description\": \"Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters.\"\n        },\n        {\n          \"name\": \"scaleX()\",\n          \"description\": \"Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter.\"\n        },\n        {\n          \"name\": \"scaleY()\",\n          \"description\": \"Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter.\"\n        },\n        {\n          \"name\": \"scaleZ()\",\n          \"description\": \"Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter.\"\n        },\n        {\n          \"name\": \"skew()\",\n          \"description\": \"Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis).\"\n        },\n        {\n          \"name\": \"skewX()\",\n          \"description\": \"Specifies a skew transformation along the X axis by the given angle.\"\n        },\n        {\n          \"name\": \"skewY()\",\n          \"description\": \"Specifies a skew transformation along the Y axis by the given angle.\"\n        },\n        {\n          \"name\": \"translate()\",\n          \"description\": \"Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter.\"\n        },\n        {\n          \"name\": \"translate3d()\",\n          \"description\": \"Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively.\"\n        },\n        {\n          \"name\": \"translateX()\",\n          \"description\": \"Specifies a translation by the given amount in the X direction.\"\n        },\n        {\n          \"name\": \"translateY()\",\n          \"description\": \"Specifies a translation by the given amount in the Y direction.\"\n        },\n        {\n          \"name\": \"translateZ()\",\n          \"description\": \"Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-transform-origin\",\n      \"browsers\": [\n        \"C\",\n        \"O15\",\n        \"S3.1\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Establishes the origin of transformation for an element.\",\n      \"restrictions\": [\n        \"position\",\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-transform-origin-x\",\n      \"browsers\": [\n        \"E80\",\n        \"S13.1\",\n        \"C80\",\n        \"O67\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"The x coordinate of the origin for transforms applied to an element with respect to its border box.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-transform-origin-y\",\n      \"browsers\": [\n        \"E80\",\n        \"S13.1\",\n        \"C80\",\n        \"O67\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"The y coordinate of the origin for transforms applied to an element with respect to its border box.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-transform-origin-z\",\n      \"browsers\": [\n        \"E80\",\n        \"S13.1\",\n        \"C80\",\n        \"O67\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"The z coordinate of the origin for transforms applied to an element with respect to its border box.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-transform-style\",\n      \"browsers\": [\n        \"C\",\n        \"S4\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"flat\",\n          \"description\": \"All children of this element are rendered flattened into the 2D plane of the element.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Defines how nested elements are rendered in 3D space.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-transition\",\n      \"browsers\": [\n        \"C\",\n        \"O12\",\n        \"S5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"all\",\n          \"description\": \"Every property that is able to undergo a transition will do so.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"No property will transition.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Shorthand property combines four of the transition properties into a single property.\",\n      \"restrictions\": [\n        \"time\",\n        \"property\",\n        \"timing-function\",\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-transition-delay\",\n      \"browsers\": [\n        \"C\",\n        \"O12\",\n        \"S5\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Defines when the transition will start. It allows a transition to begin execution some period of time from when it is applied.\",\n      \"restrictions\": [\n        \"time\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-transition-duration\",\n      \"browsers\": [\n        \"C\",\n        \"O12\",\n        \"S5\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies how long the transition from the old value to the new value should take.\",\n      \"restrictions\": [\n        \"time\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-transition-property\",\n      \"browsers\": [\n        \"C\",\n        \"O12\",\n        \"S5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"all\",\n          \"description\": \"Every property that is able to undergo a transition will do so.\"\n        },\n        {\n          \"name\": \"none\",\n          \"description\": \"No property will transition.\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies the name of the CSS property to which the transition is applied.\",\n      \"restrictions\": [\n        \"property\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-transition-timing-function\",\n      \"browsers\": [\n        \"C\",\n        \"O12\",\n        \"S5\"\n      ],\n      \"relevance\": 50,\n      \"description\": \"Describes how the intermediate values used during a transition will be calculated.\",\n      \"restrictions\": [\n        \"timing-function\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-user-drag\",\n      \"browsers\": [\n        \"E80\",\n        \"S13.1\",\n        \"C80\",\n        \"O67\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        },\n        {\n          \"name\": \"element\"\n        },\n        {\n          \"name\": \"none\"\n        }\n      ],\n      \"relevance\": 50,\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-user-modify\",\n      \"browsers\": [\n        \"E80\",\n        \"S13.1\",\n        \"C80\",\n        \"O67\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"read-only\"\n        },\n        {\n          \"name\": \"read-write\"\n        },\n        {\n          \"name\": \"read-write-plaintext-only\"\n        }\n      ],\n      \"syntax\": \"read-only | read-write | read-write-plaintext-only\",\n      \"relevance\": 50,\n      \"description\": \"Determines whether a user can edit the content of an element.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"-webkit-user-select\",\n      \"browsers\": [\n        \"C\",\n        \"S3\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        },\n        {\n          \"name\": \"none\"\n        },\n        {\n          \"name\": \"text\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Controls the appearance of selection.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"widows\",\n      \"browsers\": [\n        \"E12\",\n        \"S1.3\",\n        \"C25\",\n        \"IE8\",\n        \"O9.2\"\n      ],\n      \"syntax\": \"<integer>\",\n      \"relevance\": 51,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/widows\"\n        }\n      ],\n      \"description\": \"Specifies the minimum number of line boxes of a block container that must be left in a fragment after a break.\",\n      \"restrictions\": [\n        \"integer\"\n      ]\n    },\n    {\n      \"name\": \"width\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The width depends on the values of other properties.\"\n        },\n        {\n          \"name\": \"fit-content\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O3.5\"\n          ],\n          \"description\": \"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode.\"\n        },\n        {\n          \"name\": \"max-content\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O3.5\"\n          ],\n          \"description\": \"Use the max-content inline size or max-content block size, as appropriate to the writing mode.\"\n        },\n        {\n          \"name\": \"min-content\",\n          \"browsers\": [\n            \"E12\",\n            \"FF1\",\n            \"S1\",\n            \"C1\",\n            \"IE4\",\n            \"O3.5\"\n          ],\n          \"description\": \"Use the min-content inline size or min-content block size, as appropriate to the writing mode.\"\n        }\n      ],\n      \"syntax\": \"auto | <length> | <percentage> | min-content | max-content | fit-content | fit-content(<length-percentage>)\",\n      \"relevance\": 96,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/width\"\n        }\n      ],\n      \"description\": \"Specifies the width of the content area, padding area or border area (depending on 'box-sizing') of certain boxes.\",\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"will-change\",\n      \"browsers\": [\n        \"E79\",\n        \"FF36\",\n        \"S9.1\",\n        \"C36\",\n        \"O24\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"Expresses no particular intent.\"\n        },\n        {\n          \"name\": \"contents\",\n          \"description\": \"Indicates that the author expects to animate or change something about the element's contents in the near future.\"\n        },\n        {\n          \"name\": \"scroll-position\",\n          \"description\": \"Indicates that the author expects to animate or change the scroll position of the element in the near future.\"\n        }\n      ],\n      \"syntax\": \"auto | <animateable-feature>#\",\n      \"relevance\": 65,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/will-change\"\n        }\n      ],\n      \"description\": \"Provides a rendering hint to the user agent, stating what kinds of changes the author expects to perform on the element.\",\n      \"restrictions\": [\n        \"enum\",\n        \"identifier\"\n      ]\n    },\n    {\n      \"name\": \"word-break\",\n      \"browsers\": [\n        \"E12\",\n        \"FF15\",\n        \"S3\",\n        \"C1\",\n        \"IE5.5\",\n        \"O15\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"break-all\",\n          \"description\": \"Lines may break between any two grapheme clusters for non-CJK scripts.\"\n        },\n        {\n          \"name\": \"keep-all\",\n          \"description\": \"Block characters can no longer create implied break points.\"\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"Breaks non-CJK scripts according to their own rules.\"\n        }\n      ],\n      \"syntax\": \"normal | break-all | keep-all | break-word\",\n      \"relevance\": 76,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/word-break\"\n        }\n      ],\n      \"description\": \"Specifies line break opportunities for non-CJK scripts.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"word-spacing\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE6\",\n        \"O3.5\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"normal\",\n          \"description\": \"No additional spacing is applied. Computes to zero.\"\n        }\n      ],\n      \"syntax\": \"normal | <length>\",\n      \"relevance\": 57,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/word-spacing\"\n        }\n      ],\n      \"description\": 'Specifies additional spacing between \"words\".',\n      \"restrictions\": [\n        \"length\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"word-wrap\",\n      \"browsers\": [\n        \"E80\",\n        \"FF72\",\n        \"S13.1\",\n        \"C80\",\n        \"O67\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"break-word\",\n          \"description\": \"An otherwise unbreakable sequence of characters may be broken at an arbitrary point if there are no otherwise-acceptable break points in the line.\"\n        },\n        {\n          \"name\": \"normal\",\n          \"description\": \"Lines may break only at allowed break points.\"\n        }\n      ],\n      \"syntax\": \"normal | break-word\",\n      \"relevance\": 77,\n      \"description\": \"Specifies whether the UA may break within a word to prevent overflow when an otherwise-unbreakable string is too long to fit.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"writing-mode\",\n      \"browsers\": [\n        \"E12\",\n        \"FF41\",\n        \"S10.1\",\n        \"C48\",\n        \"IE9\",\n        \"O35\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"horizontal-tb\",\n          \"description\": \"Top-to-bottom block flow direction. The writing mode is horizontal.\"\n        },\n        {\n          \"name\": \"sideways-lr\",\n          \"browsers\": [\n            \"E12\",\n            \"FF41\",\n            \"S10.1\",\n            \"C48\",\n            \"IE9\",\n            \"O35\"\n          ],\n          \"description\": \"Left-to-right block flow direction. The writing mode is vertical, while the typographic mode is horizontal.\"\n        },\n        {\n          \"name\": \"sideways-rl\",\n          \"browsers\": [\n            \"E12\",\n            \"FF41\",\n            \"S10.1\",\n            \"C48\",\n            \"IE9\",\n            \"O35\"\n          ],\n          \"description\": \"Right-to-left block flow direction. The writing mode is vertical, while the typographic mode is horizontal.\"\n        },\n        {\n          \"name\": \"vertical-lr\",\n          \"description\": \"Left-to-right block flow direction. The writing mode is vertical.\"\n        },\n        {\n          \"name\": \"vertical-rl\",\n          \"description\": \"Right-to-left block flow direction. The writing mode is vertical.\"\n        }\n      ],\n      \"syntax\": \"horizontal-tb | vertical-rl | vertical-lr | sideways-rl | sideways-lr\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/writing-mode\"\n        }\n      ],\n      \"description\": \"This is a shorthand property for both 'direction' and 'block-progression'.\",\n      \"restrictions\": [\n        \"enum\"\n      ]\n    },\n    {\n      \"name\": \"z-index\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O4\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"auto\",\n          \"description\": \"The stack level of the generated box in the current stacking context is 0. The box does not establish a new stacking context unless it is the root element.\"\n        }\n      ],\n      \"syntax\": \"auto | <integer>\",\n      \"relevance\": 92,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/z-index\"\n        }\n      ],\n      \"description\": \"For a positioned box, the 'z-index' property specifies the stack level of the box in the current stacking context and whether the box establishes a local stacking context.\",\n      \"restrictions\": [\n        \"integer\"\n      ]\n    },\n    {\n      \"name\": \"zoom\",\n      \"browsers\": [\n        \"E12\",\n        \"FFpreview\",\n        \"S3.1\",\n        \"C1\",\n        \"IE5.5\",\n        \"O15\"\n      ],\n      \"values\": [\n        {\n          \"name\": \"normal\"\n        }\n      ],\n      \"status\": \"nonstandard\",\n      \"syntax\": \"normal | reset | <number> | <percentage>\",\n      \"relevance\": 15,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/zoom\"\n        }\n      ],\n      \"description\": \"Non-standard. Specifies the magnification scale of the object. See 'transform: scale()' for a standards-based alternative.\",\n      \"restrictions\": [\n        \"enum\",\n        \"integer\",\n        \"number\",\n        \"percentage\"\n      ]\n    },\n    {\n      \"name\": \"-ms-ime-align\",\n      \"status\": \"nonstandard\",\n      \"syntax\": \"auto | after\",\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        },\n        {\n          \"name\": \"after\"\n        }\n      ],\n      \"relevance\": 0,\n      \"description\": \"Aligns the Input Method Editor (IME) candidate window box relative to the element on which the IME composition is active.\"\n    },\n    {\n      \"name\": \"-moz-binding\",\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<url> | none\",\n      \"relevance\": 0,\n      \"description\": \"The -moz-binding CSS property is used by Mozilla-based applications to attach an XBL binding to a DOM element.\"\n    },\n    {\n      \"name\": \"-moz-context-properties\",\n      \"status\": \"nonstandard\",\n      \"syntax\": \"none | [ fill | fill-opacity | stroke | stroke-opacity ]#\",\n      \"relevance\": 0,\n      \"description\": \"If you reference an SVG image in a webpage (such as with the <img> element or as a background image), the SVG image can coordinate with the embedding element (its context) to have the image adopt property values set on the embedding element. To do this the embedding element needs to list the properties that are to be made available to the image by listing them as values of the -moz-context-properties property, and the image needs to opt in to using those properties by using values such as the context-fill value.\\n\\nThis feature is available since Firefox 55, but is only currently supported with SVG images loaded via chrome:// or resource:// URLs. To experiment with the feature in SVG on the Web it is necessary to set the svg.context-properties.content.enabled pref to true.\"\n    },\n    {\n      \"name\": \"-moz-float-edge\",\n      \"status\": \"obsolete\",\n      \"syntax\": \"border-box | content-box | margin-box | padding-box\",\n      \"values\": [\n        {\n          \"name\": \"border-box\"\n        },\n        {\n          \"name\": \"content-box\"\n        },\n        {\n          \"name\": \"margin-box\"\n        },\n        {\n          \"name\": \"padding-box\"\n        }\n      ],\n      \"relevance\": 0,\n      \"browsers\": [\n        \"FF1\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/-moz-float-edge\"\n        }\n      ],\n      \"description\": \"The non-standard -moz-float-edge CSS property specifies whether the height and width properties of the element include the margin, border, or padding thickness.\"\n    },\n    {\n      \"name\": \"-moz-force-broken-image-icon\",\n      \"status\": \"obsolete\",\n      \"syntax\": \"0 | 1\",\n      \"values\": [\n        {\n          \"name\": \"0\"\n        },\n        {\n          \"name\": \"1\"\n        }\n      ],\n      \"relevance\": 0,\n      \"browsers\": [\n        \"FF1\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/-moz-force-broken-image-icon\"\n        }\n      ],\n      \"description\": \"The -moz-force-broken-image-icon extended CSS property can be used to force the broken image icon to be shown even when a broken image has an alt attribute.\"\n    },\n    {\n      \"name\": \"-moz-image-region\",\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<shape> | auto\",\n      \"relevance\": 0,\n      \"browsers\": [\n        \"FF1\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/-moz-image-region\"\n        }\n      ],\n      \"description\": \"For certain XUL elements and pseudo-elements that use an image from the list-style-image property, this property specifies a region of the image that is used in place of the whole image. This allows elements to use different pieces of the same image to improve performance.\"\n    },\n    {\n      \"name\": \"-moz-orient\",\n      \"status\": \"nonstandard\",\n      \"syntax\": \"inline | block | horizontal | vertical\",\n      \"values\": [\n        {\n          \"name\": \"inline\"\n        },\n        {\n          \"name\": \"block\"\n        },\n        {\n          \"name\": \"horizontal\"\n        },\n        {\n          \"name\": \"vertical\"\n        }\n      ],\n      \"relevance\": 0,\n      \"browsers\": [\n        \"FF6\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/-moz-orient\"\n        }\n      ],\n      \"description\": \"The -moz-orient CSS property specifies the orientation of the element to which it's applied.\"\n    },\n    {\n      \"name\": \"-moz-outline-radius\",\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<outline-radius>{1,4} [ / <outline-radius>{1,4} ]?\",\n      \"relevance\": 0,\n      \"description\": \"In Mozilla applications like Firefox, the -moz-outline-radius CSS property can be used to give an element's outline rounded corners.\"\n    },\n    {\n      \"name\": \"-moz-outline-radius-bottomleft\",\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<outline-radius>\",\n      \"relevance\": 0,\n      \"description\": \"In Mozilla applications, the -moz-outline-radius-bottomleft CSS property can be used to round the bottom-left corner of an element's outline.\"\n    },\n    {\n      \"name\": \"-moz-outline-radius-bottomright\",\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<outline-radius>\",\n      \"relevance\": 0,\n      \"description\": \"In Mozilla applications, the -moz-outline-radius-bottomright CSS property can be used to round the bottom-right corner of an element's outline.\"\n    },\n    {\n      \"name\": \"-moz-outline-radius-topleft\",\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<outline-radius>\",\n      \"relevance\": 0,\n      \"description\": \"In Mozilla applications, the -moz-outline-radius-topleft CSS property can be used to round the top-left corner of an element's outline.\"\n    },\n    {\n      \"name\": \"-moz-outline-radius-topright\",\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<outline-radius>\",\n      \"relevance\": 0,\n      \"description\": \"In Mozilla applications, the -moz-outline-radius-topright CSS property can be used to round the top-right corner of an element's outline.\"\n    },\n    {\n      \"name\": \"-moz-stack-sizing\",\n      \"status\": \"nonstandard\",\n      \"syntax\": \"ignore | stretch-to-fit\",\n      \"values\": [\n        {\n          \"name\": \"ignore\"\n        },\n        {\n          \"name\": \"stretch-to-fit\"\n        }\n      ],\n      \"relevance\": 0,\n      \"description\": \"-moz-stack-sizing is an extended CSS property. Normally, a stack will change its size so that all of its child elements are completely visible. For example, moving a child of the stack far to the right will widen the stack so the child remains visible.\"\n    },\n    {\n      \"name\": \"-moz-text-blink\",\n      \"status\": \"nonstandard\",\n      \"syntax\": \"none | blink\",\n      \"values\": [\n        {\n          \"name\": \"none\"\n        },\n        {\n          \"name\": \"blink\"\n        }\n      ],\n      \"relevance\": 0,\n      \"description\": \"The -moz-text-blink non-standard Mozilla CSS extension specifies the blink mode.\"\n    },\n    {\n      \"name\": \"-moz-user-input\",\n      \"status\": \"obsolete\",\n      \"syntax\": \"auto | none | enabled | disabled\",\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        },\n        {\n          \"name\": \"none\"\n        },\n        {\n          \"name\": \"enabled\"\n        },\n        {\n          \"name\": \"disabled\"\n        }\n      ],\n      \"relevance\": 0,\n      \"browsers\": [\n        \"FF1\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/-moz-user-input\"\n        }\n      ],\n      \"description\": \"In Mozilla applications, -moz-user-input determines if an element will accept user input.\"\n    },\n    {\n      \"name\": \"-moz-user-modify\",\n      \"status\": \"nonstandard\",\n      \"syntax\": \"read-only | read-write | write-only\",\n      \"values\": [\n        {\n          \"name\": \"read-only\"\n        },\n        {\n          \"name\": \"read-write\"\n        },\n        {\n          \"name\": \"write-only\"\n        }\n      ],\n      \"relevance\": 0,\n      \"description\": \"The -moz-user-modify property has no effect. It was originally planned to determine whether or not the content of an element can be edited by a user.\"\n    },\n    {\n      \"name\": \"-moz-window-dragging\",\n      \"status\": \"nonstandard\",\n      \"syntax\": \"drag | no-drag\",\n      \"values\": [\n        {\n          \"name\": \"drag\"\n        },\n        {\n          \"name\": \"no-drag\"\n        }\n      ],\n      \"relevance\": 0,\n      \"description\": \"The -moz-window-dragging CSS property specifies whether a window is draggable or not. It only works in Chrome code, and only on Mac OS X.\"\n    },\n    {\n      \"name\": \"-moz-window-shadow\",\n      \"status\": \"nonstandard\",\n      \"syntax\": \"default | menu | tooltip | sheet | none\",\n      \"values\": [\n        {\n          \"name\": \"default\"\n        },\n        {\n          \"name\": \"menu\"\n        },\n        {\n          \"name\": \"tooltip\"\n        },\n        {\n          \"name\": \"sheet\"\n        },\n        {\n          \"name\": \"none\"\n        }\n      ],\n      \"relevance\": 0,\n      \"description\": \"The -moz-window-shadow CSS property specifies whether a window will have a shadow. It only works on Mac OS X.\"\n    },\n    {\n      \"name\": \"-webkit-border-before\",\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<'border-width'> || <'border-style'> || <color>\",\n      \"relevance\": 0,\n      \"browsers\": [\n        \"E79\",\n        \"S5.1\",\n        \"C8\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/-webkit-border-before\"\n        }\n      ],\n      \"description\": \"The -webkit-border-before CSS property is a shorthand property for setting the individual logical block start border property values in a single place in the style sheet.\"\n    },\n    {\n      \"name\": \"-webkit-border-before-color\",\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<color>\",\n      \"relevance\": 0,\n      \"description\": \"The -webkit-border-before-color CSS property sets the color of the individual logical block start border in a single place in the style sheet.\"\n    },\n    {\n      \"name\": \"-webkit-border-before-style\",\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<'border-style'>\",\n      \"relevance\": 0,\n      \"description\": \"The -webkit-border-before-style CSS property sets the style of the individual logical block start border in a single place in the style sheet.\"\n    },\n    {\n      \"name\": \"-webkit-border-before-width\",\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<'border-width'>\",\n      \"relevance\": 0,\n      \"description\": \"The -webkit-border-before-width CSS property sets the width of the individual logical block start border in a single place in the style sheet.\"\n    },\n    {\n      \"name\": \"-webkit-line-clamp\",\n      \"syntax\": \"none | <integer>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E17\",\n        \"FF68\",\n        \"S5\",\n        \"C6\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/-webkit-line-clamp\"\n        }\n      ],\n      \"description\": \"The -webkit-line-clamp CSS property allows limiting of the contents of a block container to the specified number of lines.\"\n    },\n    {\n      \"name\": \"-webkit-mask\",\n      \"status\": \"nonstandard\",\n      \"syntax\": \"[ <mask-reference> || <position> [ / <bg-size> ]? || <repeat-style> || [ <box> | border | padding | content | text ] || [ <box> | border | padding | content ] ]#\",\n      \"relevance\": 0,\n      \"description\": \"The mask CSS property alters the visibility of an element by either partially or fully hiding it. This is accomplished by either masking or clipping the image at specific points.\"\n    },\n    {\n      \"name\": \"-webkit-mask-attachment\",\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<attachment>#\",\n      \"relevance\": 0,\n      \"browsers\": [\n        \"S4\",\n        \"C1\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-attachment\"\n        }\n      ],\n      \"description\": \"If a -webkit-mask-image is specified, -webkit-mask-attachment determines whether the mask image's position is fixed within the viewport, or scrolls along with its containing block.\"\n    },\n    {\n      \"name\": \"-webkit-mask-composite\",\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<composite-style>#\",\n      \"relevance\": 0,\n      \"browsers\": [\n        \"E18\",\n        \"S3.1\",\n        \"C1\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-composite\"\n        }\n      ],\n      \"description\": \"The -webkit-mask-composite property specifies the manner in which multiple mask images applied to the same element are composited with one another. Mask images are composited in the opposite order that they are declared with the -webkit-mask-image property.\"\n    },\n    {\n      \"name\": \"-webkit-mask-position\",\n      \"status\": \"nonstandard\",\n      \"syntax\": \"<position>#\",\n      \"relevance\": 0,\n      \"description\": \"The mask-position CSS property sets the initial position, relative to the mask position layer defined by mask-origin, for each defined mask image.\"\n    },\n    {\n      \"name\": \"-webkit-mask-position-x\",\n      \"status\": \"nonstandard\",\n      \"syntax\": \"[ <length-percentage> | left | center | right ]#\",\n      \"relevance\": 0,\n      \"browsers\": [\n        \"E18\",\n        \"FF49\",\n        \"S3.1\",\n        \"C1\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-position-x\"\n        }\n      ],\n      \"description\": \"The -webkit-mask-position-x CSS property sets the initial horizontal position of a mask image.\"\n    },\n    {\n      \"name\": \"-webkit-mask-position-y\",\n      \"status\": \"nonstandard\",\n      \"syntax\": \"[ <length-percentage> | top | center | bottom ]#\",\n      \"relevance\": 0,\n      \"browsers\": [\n        \"E18\",\n        \"FF49\",\n        \"S3.1\",\n        \"C1\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-position-y\"\n        }\n      ],\n      \"description\": \"The -webkit-mask-position-y CSS property sets the initial vertical position of a mask image.\"\n    },\n    {\n      \"name\": \"-webkit-mask-repeat-x\",\n      \"status\": \"nonstandard\",\n      \"syntax\": \"repeat | no-repeat | space | round\",\n      \"values\": [\n        {\n          \"name\": \"repeat\"\n        },\n        {\n          \"name\": \"no-repeat\"\n        },\n        {\n          \"name\": \"space\"\n        },\n        {\n          \"name\": \"round\"\n        }\n      ],\n      \"relevance\": 0,\n      \"browsers\": [\n        \"E79\",\n        \"S5\",\n        \"C3\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-repeat-x\"\n        }\n      ],\n      \"description\": \"The -webkit-mask-repeat-x property specifies whether and how a mask image is repeated (tiled) horizontally.\"\n    },\n    {\n      \"name\": \"-webkit-mask-repeat-y\",\n      \"status\": \"nonstandard\",\n      \"syntax\": \"repeat | no-repeat | space | round\",\n      \"values\": [\n        {\n          \"name\": \"repeat\"\n        },\n        {\n          \"name\": \"no-repeat\"\n        },\n        {\n          \"name\": \"space\"\n        },\n        {\n          \"name\": \"round\"\n        }\n      ],\n      \"relevance\": 0,\n      \"browsers\": [\n        \"E79\",\n        \"S5\",\n        \"C3\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-repeat-y\"\n        }\n      ],\n      \"description\": \"The -webkit-mask-repeat-y property specifies whether and how a mask image is repeated (tiled) vertically.\"\n    },\n    {\n      \"name\": \"accent-color\",\n      \"syntax\": \"auto | <color>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E93\",\n        \"FF92\",\n        \"S15.4\",\n        \"C93\",\n        \"O79\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/accent-color\"\n        }\n      ],\n      \"description\": \"Sets the color of the elements accent\"\n    },\n    {\n      \"name\": \"align-tracks\",\n      \"status\": \"experimental\",\n      \"syntax\": \"[ normal | <baseline-position> | <content-distribution> | <overflow-position>? <content-position> ]#\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"FF77\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/align-tracks\"\n        }\n      ],\n      \"description\": \"The align-tracks CSS property sets the alignment in the masonry axis for grid containers that have masonry in their block axis.\"\n    },\n    {\n      \"name\": \"animation-composition\",\n      \"syntax\": \"<single-animation-composition>#\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E112\",\n        \"FF115\",\n        \"S16\",\n        \"C112\",\n        \"O98\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/animation-composition\"\n        }\n      ],\n      \"description\": \"The composite operation to use when multiple animations affect the same property.\"\n    },\n    {\n      \"name\": \"animation-range\",\n      \"status\": \"experimental\",\n      \"syntax\": \"[ <'animation-range-start'> <'animation-range-end'>? ]#\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E115\",\n        \"C115\",\n        \"O101\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/animation-range\"\n        }\n      ],\n      \"description\": \"The animation-range CSS shorthand property is used to set the start and end of an animation's attachment range along its timeline, i.e. where along the timeline an animation will start and end.\"\n    },\n    {\n      \"name\": \"animation-range-end\",\n      \"status\": \"experimental\",\n      \"syntax\": \"[ normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]#\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E115\",\n        \"C115\",\n        \"O101\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/animation-range-end\"\n        }\n      ],\n      \"description\": \"The animation-range-end CSS property is used to set the end of an animation's attachment range along its timeline, i.e. where along the timeline an animation will end.\"\n    },\n    {\n      \"name\": \"animation-range-start\",\n      \"status\": \"experimental\",\n      \"syntax\": \"[ normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]#\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E115\",\n        \"C115\",\n        \"O101\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/animation-range-start\"\n        }\n      ],\n      \"description\": \"The animation-range-start CSS property is used to set the start of an animation's attachment range along its timeline, i.e. where along the timeline an animation will start.\"\n    },\n    {\n      \"name\": \"animation-timeline\",\n      \"status\": \"experimental\",\n      \"syntax\": \"<single-animation-timeline>#\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E115\",\n        \"FF110\",\n        \"C115\",\n        \"O101\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/animation-timeline\"\n        }\n      ],\n      \"description\": \"Specifies the names of one or more @scroll-timeline at-rules to describe the element's scroll animations.\"\n    },\n    {\n      \"name\": \"appearance\",\n      \"syntax\": \"none | auto | textfield | menulist-button | <compat-auto>\",\n      \"relevance\": 69,\n      \"browsers\": [\n        \"E84\",\n        \"FF80\",\n        \"S15.4\",\n        \"C84\",\n        \"O70\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/appearance\"\n        }\n      ],\n      \"description\": \"Changes the appearance of buttons and other controls to resemble native controls.\"\n    },\n    {\n      \"name\": \"aspect-ratio\",\n      \"syntax\": \"auto | <ratio>\",\n      \"relevance\": 60,\n      \"browsers\": [\n        \"E88\",\n        \"FF89\",\n        \"S15\",\n        \"C88\",\n        \"O74\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/aspect-ratio\"\n        }\n      ],\n      \"description\": \"The aspect-ratio   CSS property sets a preferred aspect ratio for the box, which will be used in the calculation of auto sizes and some other layout functions.\"\n    },\n    {\n      \"name\": \"azimuth\",\n      \"status\": \"obsolete\",\n      \"syntax\": \"<angle> | [ [ left-side | far-left | left | center-left | center | center-right | right | far-right | right-side ] || behind ] | leftwards | rightwards\",\n      \"relevance\": 0,\n      \"description\": \"In combination with elevation, the azimuth CSS property enables different audio sources to be positioned spatially for aural presentation. This is important in that it provides a natural way to tell several voices apart, as each can be positioned to originate at a different location on the sound stage. Stereo output produce a lateral sound stage, while binaural headphones and multi-speaker setups allow for a fully three-dimensional stage.\"\n    },\n    {\n      \"name\": \"backdrop-filter\",\n      \"syntax\": \"none | <filter-function-list>\",\n      \"relevance\": 58,\n      \"browsers\": [\n        \"E17\",\n        \"FF103\",\n        \"S9\",\n        \"C76\",\n        \"O63\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/backdrop-filter\"\n        }\n      ],\n      \"description\": \"The backdrop-filter CSS property lets you apply graphical effects such as blurring or color shifting to the area behind an element. Because it applies to everything behind the element, to see the effect you must make the element or its background at least partially transparent.\"\n    },\n    {\n      \"name\": \"border-block\",\n      \"syntax\": \"<'border-top-width'> || <'border-top-style'> || <color>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E87\",\n        \"FF66\",\n        \"S14.1\",\n        \"C87\",\n        \"O73\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-block\"\n        }\n      ],\n      \"description\": \"The border-block CSS property is a shorthand property for setting the individual logical block border property values in a single place in the style sheet.\"\n    },\n    {\n      \"name\": \"border-block-color\",\n      \"syntax\": \"<'border-top-color'>{1,2}\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E87\",\n        \"FF66\",\n        \"S14.1\",\n        \"C87\",\n        \"O73\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-block-color\"\n        }\n      ],\n      \"description\": \"The border-block-color CSS property defines the color of the logical block borders of an element, which maps to a physical border color depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-color and border-bottom-color, or border-right-color and border-left-color property depending on the values defined for writing-mode, direction, and text-orientation.\"\n    },\n    {\n      \"name\": \"border-block-style\",\n      \"syntax\": \"<'border-top-style'>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E87\",\n        \"FF66\",\n        \"S14.1\",\n        \"C87\",\n        \"O73\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-block-style\"\n        }\n      ],\n      \"description\": \"The border-block-style CSS property defines the style of the logical block borders of an element, which maps to a physical border style depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-style and border-bottom-style, or border-left-style and border-right-style properties depending on the values defined for writing-mode, direction, and text-orientation.\"\n    },\n    {\n      \"name\": \"border-block-width\",\n      \"syntax\": \"<'border-top-width'>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E87\",\n        \"FF66\",\n        \"S14.1\",\n        \"C87\",\n        \"O73\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-block-width\"\n        }\n      ],\n      \"description\": \"The border-block-width CSS property defines the width of the logical block borders of an element, which maps to a physical border width depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-width and border-bottom-width, or border-left-width, and border-right-width property depending on the values defined for writing-mode, direction, and text-orientation.\"\n    },\n    {\n      \"name\": \"border-end-end-radius\",\n      \"syntax\": \"<length-percentage>{1,2}\",\n      \"relevance\": 53,\n      \"browsers\": [\n        \"E89\",\n        \"FF66\",\n        \"S15\",\n        \"C89\",\n        \"O75\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-end-end-radius\"\n        }\n      ],\n      \"description\": \"The border-end-end-radius CSS property defines a logical border radius on an element, which maps to a physical border radius that depends on on the element's writing-mode, direction, and text-orientation.\"\n    },\n    {\n      \"name\": \"border-end-start-radius\",\n      \"syntax\": \"<length-percentage>{1,2}\",\n      \"relevance\": 53,\n      \"browsers\": [\n        \"E89\",\n        \"FF66\",\n        \"S15\",\n        \"C89\",\n        \"O75\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-end-start-radius\"\n        }\n      ],\n      \"description\": \"The border-end-start-radius CSS property defines a logical border radius on an element, which maps to a physical border radius depending on the element's writing-mode, direction, and text-orientation.\"\n    },\n    {\n      \"name\": \"border-inline\",\n      \"syntax\": \"<'border-top-width'> || <'border-top-style'> || <color>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E87\",\n        \"FF66\",\n        \"S14.1\",\n        \"C87\",\n        \"O73\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-inline\"\n        }\n      ],\n      \"description\": \"The border-inline CSS property is a shorthand property for setting the individual logical inline border property values in a single place in the style sheet.\"\n    },\n    {\n      \"name\": \"border-inline-color\",\n      \"syntax\": \"<'border-top-color'>{1,2}\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E87\",\n        \"FF66\",\n        \"S14.1\",\n        \"C87\",\n        \"O73\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-inline-color\"\n        }\n      ],\n      \"description\": \"The border-inline-color CSS property defines the color of the logical inline borders of an element, which maps to a physical border color depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-color and border-bottom-color, or border-right-color and border-left-color property depending on the values defined for writing-mode, direction, and text-orientation.\"\n    },\n    {\n      \"name\": \"border-inline-style\",\n      \"syntax\": \"<'border-top-style'>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E87\",\n        \"FF66\",\n        \"S14.1\",\n        \"C87\",\n        \"O73\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-inline-style\"\n        }\n      ],\n      \"description\": \"The border-inline-style CSS property defines the style of the logical inline borders of an element, which maps to a physical border style depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-style and border-bottom-style, or border-left-style and border-right-style properties depending on the values defined for writing-mode, direction, and text-orientation.\"\n    },\n    {\n      \"name\": \"border-inline-width\",\n      \"syntax\": \"<'border-top-width'>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E87\",\n        \"FF66\",\n        \"S14.1\",\n        \"C87\",\n        \"O73\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-inline-width\"\n        }\n      ],\n      \"description\": \"The border-inline-width CSS property defines the width of the logical inline borders of an element, which maps to a physical border width depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-width and border-bottom-width, or border-left-width, and border-right-width property depending on the values defined for writing-mode, direction, and text-orientation.\"\n    },\n    {\n      \"name\": \"border-start-end-radius\",\n      \"syntax\": \"<length-percentage>{1,2}\",\n      \"relevance\": 53,\n      \"browsers\": [\n        \"E89\",\n        \"FF66\",\n        \"S15\",\n        \"C89\",\n        \"O75\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-start-end-radius\"\n        }\n      ],\n      \"description\": \"The border-start-end-radius CSS property defines a logical border radius on an element, which maps to a physical border radius depending on the element's writing-mode, direction, and text-orientation.\"\n    },\n    {\n      \"name\": \"border-start-start-radius\",\n      \"syntax\": \"<length-percentage>{1,2}\",\n      \"relevance\": 53,\n      \"browsers\": [\n        \"E89\",\n        \"FF66\",\n        \"S15\",\n        \"C89\",\n        \"O75\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/border-start-start-radius\"\n        }\n      ],\n      \"description\": \"The border-start-start-radius CSS property defines a logical border radius on an element, which maps to a physical border radius that depends on the element's writing-mode, direction, and text-orientation.\"\n    },\n    {\n      \"name\": \"box-align\",\n      \"status\": \"obsolete\",\n      \"syntax\": \"start | center | end | baseline | stretch\",\n      \"values\": [\n        {\n          \"name\": \"start\"\n        },\n        {\n          \"name\": \"center\"\n        },\n        {\n          \"name\": \"end\"\n        },\n        {\n          \"name\": \"baseline\"\n        },\n        {\n          \"name\": \"stretch\"\n        }\n      ],\n      \"relevance\": 0,\n      \"browsers\": [\n        \"E12\",\n        \"FF49\",\n        \"S3\",\n        \"C1\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/box-align\"\n        }\n      ],\n      \"description\": \"The box-align CSS property specifies how an element aligns its contents across its layout in a perpendicular direction. The effect of the property is only visible if there is extra space in the box.\"\n    },\n    {\n      \"name\": \"box-direction\",\n      \"status\": \"obsolete\",\n      \"syntax\": \"normal | reverse | inherit\",\n      \"values\": [\n        {\n          \"name\": \"normal\"\n        },\n        {\n          \"name\": \"reverse\"\n        },\n        {\n          \"name\": \"inherit\"\n        }\n      ],\n      \"relevance\": 0,\n      \"browsers\": [\n        \"E12\",\n        \"FF49\",\n        \"S3\",\n        \"C1\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/box-direction\"\n        }\n      ],\n      \"description\": \"The box-direction CSS property specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge).\"\n    },\n    {\n      \"name\": \"box-flex\",\n      \"status\": \"obsolete\",\n      \"syntax\": \"<number>\",\n      \"relevance\": 0,\n      \"browsers\": [\n        \"E12\",\n        \"FF49\",\n        \"S3\",\n        \"C1\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/box-flex\"\n        }\n      ],\n      \"description\": \"The -moz-box-flex and -webkit-box-flex CSS properties specify how a -moz-box or -webkit-box grows to fill the box that contains it, in the direction of the containing box's layout.\"\n    },\n    {\n      \"name\": \"box-flex-group\",\n      \"status\": \"obsolete\",\n      \"syntax\": \"<integer>\",\n      \"relevance\": 0,\n      \"browsers\": [\n        \"S3\",\n        \"C1\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/box-flex-group\"\n        }\n      ],\n      \"description\": \"The box-flex-group CSS property assigns the flexbox's child elements to a flex group.\"\n    },\n    {\n      \"name\": \"box-lines\",\n      \"status\": \"obsolete\",\n      \"syntax\": \"single | multiple\",\n      \"values\": [\n        {\n          \"name\": \"single\"\n        },\n        {\n          \"name\": \"multiple\"\n        }\n      ],\n      \"relevance\": 0,\n      \"browsers\": [\n        \"S3\",\n        \"C1\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/box-lines\"\n        }\n      ],\n      \"description\": \"The box-lines CSS property determines whether the box may have a single or multiple lines (rows for horizontally oriented boxes, columns for vertically oriented boxes).\"\n    },\n    {\n      \"name\": \"box-ordinal-group\",\n      \"status\": \"obsolete\",\n      \"syntax\": \"<integer>\",\n      \"relevance\": 0,\n      \"browsers\": [\n        \"E12\",\n        \"FF49\",\n        \"S3\",\n        \"C1\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/box-ordinal-group\"\n        }\n      ],\n      \"description\": \"The box-ordinal-group CSS property assigns the flexbox's child elements to an ordinal group.\"\n    },\n    {\n      \"name\": \"box-orient\",\n      \"status\": \"obsolete\",\n      \"syntax\": \"horizontal | vertical | inline-axis | block-axis | inherit\",\n      \"values\": [\n        {\n          \"name\": \"horizontal\"\n        },\n        {\n          \"name\": \"vertical\"\n        },\n        {\n          \"name\": \"inline-axis\"\n        },\n        {\n          \"name\": \"block-axis\"\n        },\n        {\n          \"name\": \"inherit\"\n        }\n      ],\n      \"relevance\": 0,\n      \"browsers\": [\n        \"E12\",\n        \"FF49\",\n        \"S3\",\n        \"C1\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/box-orient\"\n        }\n      ],\n      \"description\": \"The box-orient CSS property specifies whether an element lays out its contents horizontally or vertically.\"\n    },\n    {\n      \"name\": \"box-pack\",\n      \"status\": \"obsolete\",\n      \"syntax\": \"start | center | end | justify\",\n      \"values\": [\n        {\n          \"name\": \"start\"\n        },\n        {\n          \"name\": \"center\"\n        },\n        {\n          \"name\": \"end\"\n        },\n        {\n          \"name\": \"justify\"\n        }\n      ],\n      \"relevance\": 0,\n      \"browsers\": [\n        \"E12\",\n        \"FF49\",\n        \"S3\",\n        \"C1\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/box-pack\"\n        }\n      ],\n      \"description\": \"The -moz-box-pack and -webkit-box-pack CSS properties specify how a -moz-box or -webkit-box packs its contents in the direction of its layout. The effect of this is only visible if there is extra space in the box.\"\n    },\n    {\n      \"name\": \"caret\",\n      \"syntax\": \"<'caret-color'> || <'caret-shape'>\",\n      \"relevance\": 50,\n      \"description\": \"Shorthand for setting caret-color and caret-shape.\"\n    },\n    {\n      \"name\": \"caret-shape\",\n      \"syntax\": \"auto | bar | block | underscore\",\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        },\n        {\n          \"name\": \"bar\"\n        },\n        {\n          \"name\": \"block\"\n        },\n        {\n          \"name\": \"underscore\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies the desired shape of the text insertion caret.\"\n    },\n    {\n      \"name\": \"color-scheme\",\n      \"syntax\": \"normal | [ light | dark | <custom-ident> ]+ && only?\",\n      \"relevance\": 57,\n      \"browsers\": [\n        \"E81\",\n        \"FF96\",\n        \"S13\",\n        \"C81\",\n        \"O68\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/color-scheme\"\n        }\n      ],\n      \"description\": \"The color-scheme CSS property allows an element to indicate which color schemes it can comfortably be rendered in.\"\n    },\n    {\n      \"name\": \"contain-intrinsic-size\",\n      \"syntax\": \"[ auto? [ none | <length> ] ]{1,2}\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E83\",\n        \"FF107\",\n        \"S17\",\n        \"C83\",\n        \"O69\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-size\"\n        }\n      ],\n      \"description\": \"Size of an element when the element is subject to size containment.\"\n    },\n    {\n      \"name\": \"contain-intrinsic-block-size\",\n      \"syntax\": \"auto? [ none | <length> ]\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E95\",\n        \"FF107\",\n        \"S17\",\n        \"C95\",\n        \"O81\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-contain-intrinsic-block-size\"\n        }\n      ],\n      \"description\": \"Block size of an element when the element is subject to size containment.\"\n    },\n    {\n      \"name\": \"contain-intrinsic-height\",\n      \"syntax\": \"auto? [ none | <length> ]\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E95\",\n        \"FF107\",\n        \"S17\",\n        \"C95\",\n        \"O81\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-height\"\n        }\n      ],\n      \"description\": \"Height of an element when the element is subject to size containment.\"\n    },\n    {\n      \"name\": \"contain-intrinsic-inline-size\",\n      \"syntax\": \"auto? [ none | <length> ]\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E95\",\n        \"FF107\",\n        \"S17\",\n        \"C95\",\n        \"O81\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-contain-intrinsic-inline-size\"\n        }\n      ],\n      \"description\": \"Inline size of an element when the element is subject to size containment.\"\n    },\n    {\n      \"name\": \"contain-intrinsic-width\",\n      \"syntax\": \"auto? [ none | <length> ]\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E95\",\n        \"FF107\",\n        \"S17\",\n        \"C95\",\n        \"O81\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-width\"\n        }\n      ],\n      \"description\": \"Width of an element when the element is subject to size containment.\"\n    },\n    {\n      \"name\": \"container\",\n      \"syntax\": \"<'container-name'> [ / <'container-type'> ]?\",\n      \"relevance\": 53,\n      \"browsers\": [\n        \"E105\",\n        \"FF110\",\n        \"S16\",\n        \"C105\",\n        \"O91\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/container\"\n        }\n      ],\n      \"description\": \"The container shorthand CSS property establishes the element as a query container and specifies the name or name for the containment context used in a container query.\"\n    },\n    {\n      \"name\": \"container-name\",\n      \"syntax\": \"none | <custom-ident>+\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E105\",\n        \"FF110\",\n        \"S16\",\n        \"C105\",\n        \"O91\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/container-name\"\n        }\n      ],\n      \"description\": \"The container-name CSS property specifies a list of query container names used by the @container at-rule in a container query.\"\n    },\n    {\n      \"name\": \"container-type\",\n      \"syntax\": \"normal | size | inline-size\",\n      \"values\": [\n        {\n          \"name\": \"normal\"\n        },\n        {\n          \"name\": \"size\"\n        },\n        {\n          \"name\": \"inline-size\"\n        }\n      ],\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E105\",\n        \"FF110\",\n        \"S16\",\n        \"C105\",\n        \"O91\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/container-type\"\n        }\n      ],\n      \"description\": \"The container-type CSS property is used to define the type of containment used in a container query.\"\n    },\n    {\n      \"name\": \"content-visibility\",\n      \"syntax\": \"visible | auto | hidden\",\n      \"values\": [\n        {\n          \"name\": \"visible\"\n        },\n        {\n          \"name\": \"auto\"\n        },\n        {\n          \"name\": \"hidden\"\n        }\n      ],\n      \"relevance\": 52,\n      \"browsers\": [\n        \"E85\",\n        \"FFpreview\",\n        \"Spreview\",\n        \"C85\",\n        \"O71\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/content-visibility\"\n        }\n      ],\n      \"description\": \"Controls whether or not an element renders its contents at all, along with forcing a strong set of containments, allowing user agents to potentially omit large swathes of layout and rendering work until it becomes needed.\"\n    },\n    {\n      \"name\": \"counter-set\",\n      \"syntax\": \"[ <counter-name> <integer>? ]+ | none\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E85\",\n        \"FF68\",\n        \"S17.2\",\n        \"C85\",\n        \"O71\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/counter-set\"\n        }\n      ],\n      \"description\": \"The counter-set CSS property sets a CSS counter to a given value. It manipulates the value of existing counters, and will only create new counters if there isn't already a counter of the given name on the element.\"\n    },\n    {\n      \"name\": \"font-optical-sizing\",\n      \"syntax\": \"auto | none\",\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        },\n        {\n          \"name\": \"none\"\n        }\n      ],\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E17\",\n        \"FF62\",\n        \"S11\",\n        \"C79\",\n        \"O66\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/font-optical-sizing\"\n        }\n      ],\n      \"description\": \"The font-optical-sizing CSS property allows developers to control whether browsers render text with slightly differing visual representations to optimize viewing at different sizes, or not. This only works for fonts that have an optical size variation axis.\"\n    },\n    {\n      \"name\": \"font-palette\",\n      \"syntax\": \"normal | light | dark | <palette-identifier>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E101\",\n        \"FF107\",\n        \"S15.4\",\n        \"C101\",\n        \"O87\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/font-palette\"\n        }\n      ],\n      \"description\": \"The font-palette CSS property allows specifying one of the many palettes contained in a font that a user agent should use for the font. Users can also override the values in a palette or create a new palette by using the @font-palette-values at-rule.\"\n    },\n    {\n      \"name\": \"font-variation-settings\",\n      \"atRule\": \"@font-face\",\n      \"syntax\": \"normal | [ <string> <number> ]#\",\n      \"relevance\": 51,\n      \"browsers\": [\n        \"E17\",\n        \"FF62\",\n        \"S11\",\n        \"C62\",\n        \"O49\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/font-variation-settings\"\n        }\n      ],\n      \"description\": \"The font-variation-settings CSS property provides low-level control over OpenType or TrueType font variations, by specifying the four letter axis names of the features you want to vary, along with their variation values.\"\n    },\n    {\n      \"name\": \"font-smooth\",\n      \"status\": \"nonstandard\",\n      \"syntax\": \"auto | never | always | <absolute-size> | <length>\",\n      \"relevance\": 0,\n      \"browsers\": [\n        \"E79\",\n        \"FF25\",\n        \"S4\",\n        \"C5\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/font-smooth\"\n        }\n      ],\n      \"description\": \"The font-smooth CSS property controls the application of anti-aliasing when fonts are rendered.\"\n    },\n    {\n      \"name\": \"font-synthesis-position\",\n      \"syntax\": \"auto | none\",\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        },\n        {\n          \"name\": \"none\"\n        }\n      ],\n      \"relevance\": 50,\n      \"browsers\": [\n        \"FF118\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/font-synthesis-position\"\n        }\n      ],\n      \"description\": 'The font-synthesis-position CSS property lets you specify whether or not a browser may synthesize the subscript and superscript \"position\" typefaces when they are missing in a font family, while using font-variant-position to set the positions.'\n    },\n    {\n      \"name\": \"font-synthesis-small-caps\",\n      \"syntax\": \"auto | none\",\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        },\n        {\n          \"name\": \"none\"\n        }\n      ],\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E97\",\n        \"FF111\",\n        \"S16.4\",\n        \"C97\",\n        \"O83\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/font-synthesis-small-caps\"\n        }\n      ],\n      \"description\": \"The font-synthesis-small-caps CSS property lets you specify whether or not the browser may synthesize small-caps typeface when it is missing in a font family. Small-caps glyphs typically use the form of uppercase letters but are reduced to the size of lowercase letters.\"\n    },\n    {\n      \"name\": \"font-synthesis-style\",\n      \"syntax\": \"auto | none\",\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        },\n        {\n          \"name\": \"none\"\n        }\n      ],\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E97\",\n        \"FF111\",\n        \"S16.4\",\n        \"C97\",\n        \"O83\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/font-synthesis-style\"\n        }\n      ],\n      \"description\": \"The font-synthesis-style CSS property lets you specify whether or not the browser may synthesize the oblique typeface when it is missing in a font family.\"\n    },\n    {\n      \"name\": \"font-synthesis-weight\",\n      \"syntax\": \"auto | none\",\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        },\n        {\n          \"name\": \"none\"\n        }\n      ],\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E97\",\n        \"FF111\",\n        \"S16.4\",\n        \"C97\",\n        \"O83\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/font-synthesis-weight\"\n        }\n      ],\n      \"description\": \"The font-synthesis-weight CSS property lets you specify whether or not the browser may synthesize the bold typeface when it is missing in a font family.\"\n    },\n    {\n      \"name\": \"font-variant-emoji\",\n      \"syntax\": \"normal | text | emoji | unicode\",\n      \"values\": [\n        {\n          \"name\": \"normal\"\n        },\n        {\n          \"name\": \"text\"\n        },\n        {\n          \"name\": \"emoji\"\n        },\n        {\n          \"name\": \"unicode\"\n        }\n      ],\n      \"relevance\": 50,\n      \"browsers\": [\n        \"FF108\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/font-variant-emoji\"\n        }\n      ],\n      \"description\": \"The font-variant-emoji CSS property specifies the default presentation style for displaying emojis.\"\n    },\n    {\n      \"name\": \"forced-color-adjust\",\n      \"syntax\": \"auto | none\",\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        },\n        {\n          \"name\": \"none\"\n        }\n      ],\n      \"relevance\": 57,\n      \"browsers\": [\n        \"E79\",\n        \"FF113\",\n        \"C89\",\n        \"IE10\",\n        \"O75\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/forced-color-adjust\"\n        }\n      ],\n      \"description\": \"Allows authors to opt certain elements out of forced colors mode. This then restores the control of those values to CSS\"\n    },\n    {\n      \"name\": \"gap\",\n      \"syntax\": \"<'row-gap'> <'column-gap'>?\",\n      \"relevance\": 70,\n      \"browsers\": [\n        \"E16\",\n        \"FF52\",\n        \"S10.1\",\n        \"C57\",\n        \"O44\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/gap\"\n        }\n      ],\n      \"description\": \"The gap CSS property is a shorthand property for row-gap and column-gap specifying the gutters between grid rows and columns.\"\n    },\n    {\n      \"name\": \"hanging-punctuation\",\n      \"syntax\": \"none | [ first || [ force-end | allow-end ] || last ]\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"S10\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/hanging-punctuation\"\n        }\n      ],\n      \"description\": \"The hanging-punctuation CSS property specifies whether a punctuation mark should hang at the start or end of a line of text. Hanging punctuation may be placed outside the line box.\"\n    },\n    {\n      \"name\": \"hyphenate-character\",\n      \"syntax\": \"auto | <string>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E106\",\n        \"FF98\",\n        \"S17\",\n        \"C106\",\n        \"O92\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/hyphenate-character\"\n        }\n      ],\n      \"description\": \"A hyphenate character used at the end of a line.\"\n    },\n    {\n      \"name\": \"hyphenate-limit-chars\",\n      \"syntax\": \"[ auto | <integer> ]{1,3}\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E109\",\n        \"C109\",\n        \"O95\"\n      ],\n      \"description\": \"The hyphenate-limit-chars CSS property specifies the minimum word length to allow hyphenation of words as well as the minimum number of characters before and after the hyphen.\"\n    },\n    {\n      \"name\": \"image-resolution\",\n      \"status\": \"experimental\",\n      \"syntax\": \"[ from-image || <resolution> ] && snap?\",\n      \"relevance\": 50,\n      \"description\": \"The image-resolution property specifies the intrinsic resolution of all raster images used in or on the element. It affects both content images (e.g. replaced elements and generated content) and decorative images (such as background-image). The intrinsic resolution of an image is used to determine the image\\u2019s intrinsic dimensions.\"\n    },\n    {\n      \"name\": \"initial-letter\",\n      \"status\": \"experimental\",\n      \"syntax\": \"normal | [ <number> <integer>? ]\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E110\",\n        \"S9\",\n        \"C110\",\n        \"O96\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/initial-letter\"\n        }\n      ],\n      \"description\": \"The initial-letter CSS property specifies styling for dropped, raised, and sunken initial letters.\"\n    },\n    {\n      \"name\": \"initial-letter-align\",\n      \"status\": \"experimental\",\n      \"syntax\": \"[ auto | alphabetic | hanging | ideographic ]\",\n      \"relevance\": 50,\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/initial-letter-align\"\n        }\n      ],\n      \"description\": \"The initial-letter-align CSS property specifies the alignment of initial letters within a paragraph.\"\n    },\n    {\n      \"name\": \"input-security\",\n      \"syntax\": \"auto | none\",\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        },\n        {\n          \"name\": \"none\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Enables or disables the obscuring a sensitive test input.\"\n    },\n    {\n      \"name\": \"inset\",\n      \"syntax\": \"<'top'>{1,4}\",\n      \"relevance\": 58,\n      \"browsers\": [\n        \"E87\",\n        \"FF66\",\n        \"S14.1\",\n        \"C87\",\n        \"O73\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/inset\"\n        }\n      ],\n      \"description\": \"The inset CSS property defines the logical block and inline start and end offsets of an element, which map to physical offsets depending on the element's writing mode, directionality, and text orientation. It corresponds to the top and bottom, or right and left properties depending on the values defined for writing-mode, direction, and text-orientation.\"\n    },\n    {\n      \"name\": \"inset-block\",\n      \"syntax\": \"<'top'>{1,2}\",\n      \"relevance\": 53,\n      \"browsers\": [\n        \"E87\",\n        \"FF63\",\n        \"S14.1\",\n        \"C87\",\n        \"O73\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/inset-block\"\n        }\n      ],\n      \"description\": \"The inset-block CSS property defines the logical block start and end offsets of an element, which maps to physical offsets depending on the element's writing mode, directionality, and text orientation. It corresponds to the top and bottom, or right and left properties depending on the values defined for writing-mode, direction, and text-orientation.\"\n    },\n    {\n      \"name\": \"inset-block-end\",\n      \"syntax\": \"<'top'>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E87\",\n        \"FF63\",\n        \"S14.1\",\n        \"C87\",\n        \"O73\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/inset-block-end\"\n        }\n      ],\n      \"description\": \"The inset-block-end CSS property defines the logical block end offset of an element, which maps to a physical offset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation.\"\n    },\n    {\n      \"name\": \"inset-block-start\",\n      \"syntax\": \"<'top'>\",\n      \"relevance\": 53,\n      \"browsers\": [\n        \"E87\",\n        \"FF63\",\n        \"S14.1\",\n        \"C87\",\n        \"O73\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/inset-block-start\"\n        }\n      ],\n      \"description\": \"The inset-block-start CSS property defines the logical block start offset of an element, which maps to a physical offset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation.\"\n    },\n    {\n      \"name\": \"inset-inline\",\n      \"syntax\": \"<'top'>{1,2}\",\n      \"relevance\": 53,\n      \"browsers\": [\n        \"E87\",\n        \"FF63\",\n        \"S14.1\",\n        \"C87\",\n        \"O73\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/inset-inline\"\n        }\n      ],\n      \"description\": \"The inset-inline CSS property defines the logical block start and end offsets of an element, which maps to physical offsets depending on the element's writing mode, directionality, and text orientation. It corresponds to the top and bottom, or right and left properties depending on the values defined for writing-mode, direction, and text-orientation.\"\n    },\n    {\n      \"name\": \"inset-inline-end\",\n      \"syntax\": \"<'top'>\",\n      \"relevance\": 51,\n      \"browsers\": [\n        \"E87\",\n        \"FF63\",\n        \"S14.1\",\n        \"C87\",\n        \"O73\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/inset-inline-end\"\n        }\n      ],\n      \"description\": \"The inset-inline-end CSS property defines the logical inline end inset of an element, which maps to a physical inset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation.\"\n    },\n    {\n      \"name\": \"inset-inline-start\",\n      \"syntax\": \"<'top'>\",\n      \"relevance\": 54,\n      \"browsers\": [\n        \"E87\",\n        \"FF63\",\n        \"S14.1\",\n        \"C87\",\n        \"O73\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/inset-inline-start\"\n        }\n      ],\n      \"description\": \"The inset-inline-start CSS property defines the logical inline start inset of an element, which maps to a physical offset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation.\"\n    },\n    {\n      \"name\": \"justify-tracks\",\n      \"status\": \"experimental\",\n      \"syntax\": \"[ normal | <content-distribution> | <overflow-position>? [ <content-position> | left | right ] ]#\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"FF77\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/justify-tracks\"\n        }\n      ],\n      \"description\": \"The justify-tracks CSS property sets the alignment in the masonry axis for grid containers that have masonry in their inline axis\"\n    },\n    {\n      \"name\": \"line-clamp\",\n      \"status\": \"experimental\",\n      \"syntax\": \"none | <integer>\",\n      \"relevance\": 50,\n      \"description\": \"The line-clamp property allows limiting the contents of a block container to the specified number of lines; remaining content is fragmented away and neither rendered nor measured. Optionally, it also allows inserting content into the last line box to indicate the continuity of truncated/interrupted content.\"\n    },\n    {\n      \"name\": \"line-height-step\",\n      \"status\": \"experimental\",\n      \"syntax\": \"<length>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"C60\",\n        \"O47\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/line-height-step\"\n        }\n      ],\n      \"description\": \"The line-height-step CSS property defines the step units for line box heights. When the step unit is positive, line box heights are rounded up to the closest multiple of the unit. Negative values are invalid.\"\n    },\n    {\n      \"name\": \"margin-block\",\n      \"syntax\": \"<'margin-left'>{1,2}\",\n      \"relevance\": 54,\n      \"browsers\": [\n        \"E87\",\n        \"FF66\",\n        \"S14.1\",\n        \"C87\",\n        \"O73\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/margin-block\"\n        }\n      ],\n      \"description\": \"The margin-block CSS property defines the logical block start and end margins of an element, which maps to physical margins depending on the element's writing mode, directionality, and text orientation.\"\n    },\n    {\n      \"name\": \"margin-inline\",\n      \"syntax\": \"<'margin-left'>{1,2}\",\n      \"relevance\": 54,\n      \"browsers\": [\n        \"E87\",\n        \"FF66\",\n        \"S14.1\",\n        \"C87\",\n        \"O73\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/margin-inline\"\n        }\n      ],\n      \"description\": \"The margin-inline CSS property defines the logical inline start and end margins of an element, which maps to physical margins depending on the element's writing mode, directionality, and text orientation.\"\n    },\n    {\n      \"name\": \"margin-trim\",\n      \"status\": \"experimental\",\n      \"syntax\": \"none | in-flow | all\",\n      \"values\": [\n        {\n          \"name\": \"none\"\n        },\n        {\n          \"name\": \"in-flow\"\n        },\n        {\n          \"name\": \"all\"\n        }\n      ],\n      \"relevance\": 50,\n      \"browsers\": [\n        \"S16.4\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/margin-trim\"\n        }\n      ],\n      \"description\": \"The margin-trim property allows the container to trim the margins of its children where they adjoin the container\\u2019s edges.\"\n    },\n    {\n      \"name\": \"mask\",\n      \"syntax\": \"<mask-layer>#\",\n      \"relevance\": 55,\n      \"browsers\": [\n        \"E79\",\n        \"FF53\",\n        \"S15.4\",\n        \"C1\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/mask\"\n        }\n      ],\n      \"description\": \"The mask CSS property alters the visibility of an element by either partially or fully hiding it. This is accomplished by either masking or clipping the image at specific points.\"\n    },\n    {\n      \"name\": \"mask-border\",\n      \"syntax\": \"<'mask-border-source'> || <'mask-border-slice'> [ / <'mask-border-width'>? [ / <'mask-border-outset'> ]? ]? || <'mask-border-repeat'> || <'mask-border-mode'>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"S17.2\",\n        \"C1\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/mask-border\"\n        }\n      ],\n      \"description\": \"The mask-border CSS property lets you create a mask along the edge of an element's border.\\n\\nThis property is a shorthand for mask-border-source, mask-border-slice, mask-border-width, mask-border-outset, mask-border-repeat, and mask-border-mode. As with all shorthand properties, any omitted sub-values will be set to their initial value.\"\n    },\n    {\n      \"name\": \"mask-border-mode\",\n      \"syntax\": \"luminance | alpha\",\n      \"values\": [\n        {\n          \"name\": \"luminance\"\n        },\n        {\n          \"name\": \"alpha\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"The mask-border-mode CSS property specifies the blending mode used in a mask border.\"\n    },\n    {\n      \"name\": \"mask-border-outset\",\n      \"syntax\": \"[ <length> | <number> ]{1,4}\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"S17.2\",\n        \"C1\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/mask-border-outset\"\n        }\n      ],\n      \"description\": \"The mask-border-outset CSS property specifies the distance by which an element's mask border is set out from its border box.\"\n    },\n    {\n      \"name\": \"mask-border-repeat\",\n      \"syntax\": \"[ stretch | repeat | round | space ]{1,2}\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"S17.2\",\n        \"C1\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/mask-border-repeat\"\n        }\n      ],\n      \"description\": \"The mask-border-repeat CSS property defines how the edge regions of a source image are adjusted to fit the dimensions of an element's mask border.\"\n    },\n    {\n      \"name\": \"mask-border-slice\",\n      \"syntax\": \"<number-percentage>{1,4} fill?\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"S17.2\",\n        \"C1\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/mask-border-slice\"\n        }\n      ],\n      \"description\": \"The mask-border-slice CSS property divides the image specified by mask-border-source into regions. These regions are used to form the components of an element's mask border.\"\n    },\n    {\n      \"name\": \"mask-border-source\",\n      \"syntax\": \"none | <image>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"S17.2\",\n        \"C1\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/mask-border-source\"\n        }\n      ],\n      \"description\": \"The mask-border-source CSS property specifies the source image used to create an element's mask border.\\n\\nThe mask-border-slice property is used to divide the source image into regions, which are then dynamically applied to the final mask border.\"\n    },\n    {\n      \"name\": \"mask-border-width\",\n      \"syntax\": \"[ <length-percentage> | <number> | auto ]{1,4}\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"S17.2\",\n        \"C1\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/mask-border-width\"\n        }\n      ],\n      \"description\": \"The mask-border-width CSS property specifies the width of an element's mask border.\"\n    },\n    {\n      \"name\": \"mask-clip\",\n      \"syntax\": \"[ <geometry-box> | no-clip ]#\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E120\",\n        \"FF53\",\n        \"S15.4\",\n        \"C120\",\n        \"O106\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/mask-clip\"\n        }\n      ],\n      \"description\": \"The mask-clip CSS property determines the area, which is affected by a mask. The painted content of an element must be restricted to this area.\"\n    },\n    {\n      \"name\": \"mask-composite\",\n      \"syntax\": \"<compositing-operator>#\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E18\",\n        \"FF53\",\n        \"S15.4\",\n        \"C120\",\n        \"O106\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/mask-composite\"\n        }\n      ],\n      \"description\": \"The mask-composite CSS property represents a compositing operation used on the current mask layer with the mask layers below it.\"\n    },\n    {\n      \"name\": \"masonry-auto-flow\",\n      \"status\": \"experimental\",\n      \"syntax\": \"[ pack | next ] || [ definite-first | ordered ]\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"Spreview\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/masonry-auto-flow\"\n        }\n      ],\n      \"description\": \"The masonry-auto-flow CSS property modifies how items are placed when using masonry in CSS Grid Layout.\"\n    },\n    {\n      \"name\": \"math-depth\",\n      \"syntax\": \"auto-add | add(<integer>) | <integer>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E109\",\n        \"FF117\",\n        \"C109\",\n        \"O95\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/math-depth\"\n        }\n      ],\n      \"description\": 'Describe a notion of \"depth\" for each element of a mathematical formula, with respect to the top-level container of that formula.'\n    },\n    {\n      \"name\": \"math-shift\",\n      \"syntax\": \"normal | compact\",\n      \"values\": [\n        {\n          \"name\": \"normal\"\n        },\n        {\n          \"name\": \"compact\"\n        }\n      ],\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E109\",\n        \"C109\",\n        \"O95\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/math-shift\"\n        }\n      ],\n      \"description\": \"Used for positioning superscript during the layout of MathML scripted elements.\"\n    },\n    {\n      \"name\": \"math-style\",\n      \"syntax\": \"normal | compact\",\n      \"values\": [\n        {\n          \"name\": \"normal\"\n        },\n        {\n          \"name\": \"compact\"\n        }\n      ],\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E109\",\n        \"FF117\",\n        \"S14.1\",\n        \"C109\",\n        \"O95\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/math-style\"\n        }\n      ],\n      \"description\": \"The math-style property indicates whether MathML equations should render with normal or compact height.\"\n    },\n    {\n      \"name\": \"max-lines\",\n      \"status\": \"experimental\",\n      \"syntax\": \"none | <integer>\",\n      \"relevance\": 50,\n      \"description\": \"The max-lines property forces a break after a set number of lines\"\n    },\n    {\n      \"name\": \"offset\",\n      \"syntax\": \"[ <'offset-position'>? [ <'offset-path'> [ <'offset-distance'> || <'offset-rotate'> ]? ]? ]! [ / <'offset-anchor'> ]?\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF72\",\n        \"S16\",\n        \"C55\",\n        \"O42\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/offset\"\n        }\n      ],\n      \"description\": \"The offset CSS property is a shorthand property for animating an element along a defined path.\"\n    },\n    {\n      \"name\": \"offset-anchor\",\n      \"syntax\": \"auto | <position>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E116\",\n        \"FF72\",\n        \"S16\",\n        \"C116\",\n        \"O102\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/offset-anchor\"\n        }\n      ],\n      \"description\": \"Defines an anchor point of the box positioned along the path. The anchor point specifies the point of the box which is to be considered as the point that is moved along the path.\"\n    },\n    {\n      \"name\": \"offset-distance\",\n      \"syntax\": \"<length-percentage>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF72\",\n        \"S16\",\n        \"C55\",\n        \"O42\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/offset-distance\"\n        }\n      ],\n      \"description\": \"The offset-distance CSS property specifies a position along an offset-path.\"\n    },\n    {\n      \"name\": \"offset-path\",\n      \"syntax\": \"none | <offset-path> || <coord-box>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF72\",\n        \"S15.4\",\n        \"C55\",\n        \"O45\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/offset-path\"\n        }\n      ],\n      \"description\": 'The offset-path CSS property specifies the offset path where the element gets positioned. The exact element\\u2019s position on the offset path is determined by the offset-distance property. An offset path is either a specified path with one or multiple sub-paths or the geometry of a not-styled basic shape. Each shape or path must define an initial position for the computed value of \"0\" for offset-distance and an initial direction which specifies the rotation of the object to the initial position.\\n\\nIn this specification, a direction (or rotation) of 0 degrees is equivalent to the direction of the positive x-axis in the object\\u2019s local coordinate system. In other words, a rotation of 0 degree points to the right side of the UA if the object and its ancestors have no transformation applied.'\n    },\n    {\n      \"name\": \"offset-position\",\n      \"syntax\": \"normal | auto | <position>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E116\",\n        \"FF122\",\n        \"S16\",\n        \"C116\",\n        \"O102\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/offset-position\"\n        }\n      ],\n      \"description\": \"Specifies the initial position of the offset path. If position is specified with static, offset-position would be ignored.\"\n    },\n    {\n      \"name\": \"offset-rotate\",\n      \"syntax\": \"[ auto | reverse ] || <angle>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF72\",\n        \"S16\",\n        \"C56\",\n        \"O43\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/offset-rotate\"\n        }\n      ],\n      \"description\": \"The offset-rotate CSS property defines the direction of the element while positioning along the offset path.\"\n    },\n    {\n      \"name\": \"overflow-anchor\",\n      \"syntax\": \"auto | none\",\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        },\n        {\n          \"name\": \"none\"\n        }\n      ],\n      \"relevance\": 52,\n      \"browsers\": [\n        \"E79\",\n        \"FF66\",\n        \"Spreview\",\n        \"C56\",\n        \"O43\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/overflow-anchor\"\n        }\n      ],\n      \"description\": \"The overflow-anchor CSS property provides a way to opt out browser scroll anchoring behavior which adjusts scroll position to minimize content shifts.\"\n    },\n    {\n      \"name\": \"overflow-block\",\n      \"syntax\": \"visible | hidden | clip | scroll | auto\",\n      \"values\": [\n        {\n          \"name\": \"visible\"\n        },\n        {\n          \"name\": \"hidden\"\n        },\n        {\n          \"name\": \"clip\"\n        },\n        {\n          \"name\": \"scroll\"\n        },\n        {\n          \"name\": \"auto\"\n        }\n      ],\n      \"relevance\": 50,\n      \"browsers\": [\n        \"FF69\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/overflow-block\"\n        }\n      ],\n      \"description\": \"The overflow-block CSS media feature can be used to test how the output device handles content that overflows the initial containing block along the block axis.\"\n    },\n    {\n      \"name\": \"overflow-clip-box\",\n      \"status\": \"nonstandard\",\n      \"syntax\": \"padding-box | content-box\",\n      \"values\": [\n        {\n          \"name\": \"padding-box\"\n        },\n        {\n          \"name\": \"content-box\"\n        }\n      ],\n      \"relevance\": 0,\n      \"description\": \"The overflow-clip-box CSS property specifies relative to which box the clipping happens when there is an overflow. It is short hand for the overflow-clip-box-inline and overflow-clip-box-block properties.\"\n    },\n    {\n      \"name\": \"overflow-clip-margin\",\n      \"syntax\": \"<visual-box> || <length [0,\\u221E]>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E90\",\n        \"FF102\",\n        \"C90\",\n        \"O76\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/overflow-clip-margin\"\n        }\n      ],\n      \"description\": \"The overflow-clip-margin CSS property determines how far outside its bounds an element with overflow: clip may be painted before being clipped.\"\n    },\n    {\n      \"name\": \"overflow-inline\",\n      \"syntax\": \"visible | hidden | clip | scroll | auto\",\n      \"values\": [\n        {\n          \"name\": \"visible\"\n        },\n        {\n          \"name\": \"hidden\"\n        },\n        {\n          \"name\": \"clip\"\n        },\n        {\n          \"name\": \"scroll\"\n        },\n        {\n          \"name\": \"auto\"\n        }\n      ],\n      \"relevance\": 50,\n      \"browsers\": [\n        \"FF69\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/overflow-inline\"\n        }\n      ],\n      \"description\": \"The overflow-inline CSS media feature can be used to test how the output device handles content that overflows the initial containing block along the inline axis.\"\n    },\n    {\n      \"name\": \"overlay\",\n      \"status\": \"experimental\",\n      \"syntax\": \"none | auto\",\n      \"values\": [\n        {\n          \"name\": \"none\"\n        },\n        {\n          \"name\": \"auto\"\n        }\n      ],\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E117\",\n        \"C117\",\n        \"O103\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/overlay\"\n        }\n      ],\n      \"description\": 'The overlay CSS property specifies whether an element appearing in the top layer (for example, a shown popover or modal {{htmlelement(\"dialog\")}} element) is actually rendered in the top layer. This property is only relevant within a list of transition-property values, and only if allow-discrete is set as the transition-behavior.'\n    },\n    {\n      \"name\": \"overscroll-behavior\",\n      \"syntax\": \"[ contain | none | auto ]{1,2}\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E18\",\n        \"FF59\",\n        \"S16\",\n        \"C63\",\n        \"O50\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior\"\n        }\n      ],\n      \"description\": \"The overscroll-behavior CSS property is shorthand for the overscroll-behavior-x and overscroll-behavior-y properties, which allow you to control the browser's scroll overflow behavior \\u2014 what happens when the boundary of a scrolling area is reached.\"\n    },\n    {\n      \"name\": \"overscroll-behavior-block\",\n      \"syntax\": \"contain | none | auto\",\n      \"values\": [\n        {\n          \"name\": \"contain\"\n        },\n        {\n          \"name\": \"none\"\n        },\n        {\n          \"name\": \"auto\"\n        }\n      ],\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF73\",\n        \"S16\",\n        \"C77\",\n        \"O64\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-block\"\n        }\n      ],\n      \"description\": \"The overscroll-behavior-block CSS property sets the browser's behavior when the block direction boundary of a scrolling area is reached.\"\n    },\n    {\n      \"name\": \"overscroll-behavior-inline\",\n      \"syntax\": \"contain | none | auto\",\n      \"values\": [\n        {\n          \"name\": \"contain\"\n        },\n        {\n          \"name\": \"none\"\n        },\n        {\n          \"name\": \"auto\"\n        }\n      ],\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF73\",\n        \"S16\",\n        \"C77\",\n        \"O64\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-inline\"\n        }\n      ],\n      \"description\": \"The overscroll-behavior-inline CSS property sets the browser's behavior when the inline direction boundary of a scrolling area is reached.\"\n    },\n    {\n      \"name\": \"overscroll-behavior-x\",\n      \"syntax\": \"contain | none | auto\",\n      \"values\": [\n        {\n          \"name\": \"contain\"\n        },\n        {\n          \"name\": \"none\"\n        },\n        {\n          \"name\": \"auto\"\n        }\n      ],\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E18\",\n        \"FF59\",\n        \"S16\",\n        \"C63\",\n        \"O50\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-x\"\n        }\n      ],\n      \"description\": \"The overscroll-behavior-x CSS property is allows you to control the browser's scroll overflow behavior \\u2014 what happens when the boundary of a scrolling area is reached \\u2014 in the x axis direction.\"\n    },\n    {\n      \"name\": \"overscroll-behavior-y\",\n      \"syntax\": \"contain | none | auto\",\n      \"values\": [\n        {\n          \"name\": \"contain\"\n        },\n        {\n          \"name\": \"none\"\n        },\n        {\n          \"name\": \"auto\"\n        }\n      ],\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E18\",\n        \"FF59\",\n        \"S16\",\n        \"C63\",\n        \"O50\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-y\"\n        }\n      ],\n      \"description\": \"The overscroll-behavior-y CSS property is allows you to control the browser's scroll overflow behavior \\u2014 what happens when the boundary of a scrolling area is reached \\u2014 in the y axis direction.\"\n    },\n    {\n      \"name\": \"padding-block\",\n      \"syntax\": \"<'padding-left'>{1,2}\",\n      \"relevance\": 54,\n      \"browsers\": [\n        \"E87\",\n        \"FF66\",\n        \"S14.1\",\n        \"C87\",\n        \"O73\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/padding-block\"\n        }\n      ],\n      \"description\": \"The padding-block CSS property defines the logical block start and end padding of an element, which maps to physical padding properties depending on the element's writing mode, directionality, and text orientation.\"\n    },\n    {\n      \"name\": \"padding-inline\",\n      \"syntax\": \"<'padding-left'>{1,2}\",\n      \"relevance\": 54,\n      \"browsers\": [\n        \"E87\",\n        \"FF66\",\n        \"S14.1\",\n        \"C87\",\n        \"O73\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/padding-inline\"\n        }\n      ],\n      \"description\": \"The padding-inline CSS property defines the logical inline start and end padding of an element, which maps to physical padding properties depending on the element's writing mode, directionality, and text orientation.\"\n    },\n    {\n      \"name\": \"page\",\n      \"syntax\": \"auto | <custom-ident>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E85\",\n        \"FF110\",\n        \"S13.1\",\n        \"C85\",\n        \"O71\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/page\"\n        }\n      ],\n      \"description\": \"The page CSS property is used to specify the named page, a specific type of page defined by the @page at-rule.\"\n    },\n    {\n      \"name\": \"place-content\",\n      \"syntax\": \"<'align-content'> <'justify-content'>?\",\n      \"relevance\": 51,\n      \"browsers\": [\n        \"E79\",\n        \"FF45\",\n        \"S9\",\n        \"C59\",\n        \"O46\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/place-content\"\n        }\n      ],\n      \"description\": \"The place-content CSS shorthand property sets both the align-content and justify-content properties.\"\n    },\n    {\n      \"name\": \"place-items\",\n      \"syntax\": \"<'align-items'> <'justify-items'>?\",\n      \"relevance\": 51,\n      \"browsers\": [\n        \"E79\",\n        \"FF45\",\n        \"S11\",\n        \"C59\",\n        \"O46\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/place-items\"\n        }\n      ],\n      \"description\": \"The CSS place-items shorthand property sets both the align-items and justify-items properties. The first value is the align-items property value, the second the justify-items one. If the second value is not present, the first value is also used for it.\"\n    },\n    {\n      \"name\": \"place-self\",\n      \"syntax\": \"<'align-self'> <'justify-self'>?\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF45\",\n        \"S11\",\n        \"C59\",\n        \"O46\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/place-self\"\n        }\n      ],\n      \"description\": \"The place-self CSS property is a shorthand property sets both the align-self and justify-self properties. The first value is the align-self property value, the second the justify-self one. If the second value is not present, the first value is also used for it.\"\n    },\n    {\n      \"name\": \"print-color-adjust\",\n      \"syntax\": \"economy | exact\",\n      \"values\": [\n        {\n          \"name\": \"economy\"\n        },\n        {\n          \"name\": \"exact\"\n        }\n      ],\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF97\",\n        \"S15.4\",\n        \"C17\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/print-color-adjust\"\n        }\n      ],\n      \"description\": \"Defines what optimization the user agent is allowed to do when adjusting the appearance for an output device.\"\n    },\n    {\n      \"name\": \"rotate\",\n      \"syntax\": \"none | <angle> | [ x | y | z | <number>{3} ] && <angle>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E104\",\n        \"FF72\",\n        \"S14.1\",\n        \"C104\",\n        \"O90\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/rotate\"\n        }\n      ],\n      \"description\": \"The rotate CSS property allows you to specify rotation transforms individually and independently of the transform property. This maps better to typical user interface usage, and saves having to remember the exact order of transform functions to specify in the transform value.\"\n    },\n    {\n      \"name\": \"row-gap\",\n      \"syntax\": \"normal | <length-percentage>\",\n      \"relevance\": 58,\n      \"browsers\": [\n        \"E16\",\n        \"FF52\",\n        \"S10.1\",\n        \"C47\",\n        \"O34\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/row-gap\"\n        }\n      ],\n      \"description\": \"The row-gap CSS property specifies the gutter between grid rows.\"\n    },\n    {\n      \"name\": \"ruby-merge\",\n      \"status\": \"experimental\",\n      \"syntax\": \"separate | collapse | auto\",\n      \"values\": [\n        {\n          \"name\": \"separate\"\n        },\n        {\n          \"name\": \"collapse\"\n        },\n        {\n          \"name\": \"auto\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"This property controls how ruby annotation boxes should be rendered when there are more than one in a ruby container box: whether each pair should be kept separate, the annotations should be collapsed and rendered as a group, or the separation should be determined based on the space available.\"\n    },\n    {\n      \"name\": \"scale\",\n      \"syntax\": \"none | <number>{1,3}\",\n      \"relevance\": 51,\n      \"browsers\": [\n        \"E104\",\n        \"FF72\",\n        \"S14.1\",\n        \"C104\",\n        \"O90\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scale\"\n        }\n      ],\n      \"description\": \"The scale CSS property allows you to specify scale transforms individually and independently of the transform property. This maps better to typical user interface usage, and saves having to remember the exact order of transform functions to specify in the transform value.\"\n    },\n    {\n      \"name\": \"scrollbar-color\",\n      \"syntax\": \"auto | <color>{2}\",\n      \"relevance\": 52,\n      \"browsers\": [\n        \"E121\",\n        \"FF64\",\n        \"C121\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scrollbar-color\"\n        }\n      ],\n      \"description\": \"The scrollbar-color CSS property sets the color of the scrollbar track and thumb.\"\n    },\n    {\n      \"name\": \"scrollbar-gutter\",\n      \"syntax\": \"auto | stable && both-edges?\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E94\",\n        \"FF97\",\n        \"S17\",\n        \"C94\",\n        \"O80\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scrollbar-gutter\"\n        }\n      ],\n      \"description\": \"The scrollbar-gutter CSS property allows authors to reserve space for the scrollbar, preventing unwanted layout changes as the content grows while also avoiding unnecessary visuals when scrolling isn't needed.\"\n    },\n    {\n      \"name\": \"scrollbar-width\",\n      \"syntax\": \"auto | thin | none\",\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        },\n        {\n          \"name\": \"thin\"\n        },\n        {\n          \"name\": \"none\"\n        }\n      ],\n      \"relevance\": 63,\n      \"browsers\": [\n        \"E121\",\n        \"FF64\",\n        \"C121\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scrollbar-width\"\n        }\n      ],\n      \"description\": \"The scrollbar-width property allows the author to set the maximum thickness of an element\\u2019s scrollbars when they are shown. \"\n    },\n    {\n      \"name\": \"scroll-margin\",\n      \"syntax\": \"<length>{1,4}\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF90\",\n        \"S14.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scroll-margin\"\n        }\n      ],\n      \"description\": \"The scroll-margin property is a shorthand property which sets all of the scroll-margin longhands, assigning values much like the margin property does for the margin-* longhands.\"\n    },\n    {\n      \"name\": \"scroll-margin-block\",\n      \"syntax\": \"<length>{1,2}\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF68\",\n        \"S15\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block\"\n        }\n      ],\n      \"description\": \"The scroll-margin-block property is a shorthand property which sets the scroll-margin longhands in the block dimension.\"\n    },\n    {\n      \"name\": \"scroll-margin-block-start\",\n      \"syntax\": \"<length>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF68\",\n        \"S15\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block-start\"\n        }\n      ],\n      \"description\": \"The scroll-margin-block-start property defines the margin of the scroll snap area at the start of the block dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container\\u2019s coordinate space), then adding the specified outsets.\"\n    },\n    {\n      \"name\": \"scroll-margin-block-end\",\n      \"syntax\": \"<length>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF68\",\n        \"S15\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block-end\"\n        }\n      ],\n      \"description\": \"The scroll-margin-block-end property defines the margin of the scroll snap area at the end of the block dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container\\u2019s coordinate space), then adding the specified outsets.\"\n    },\n    {\n      \"name\": \"scroll-margin-bottom\",\n      \"syntax\": \"<length>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF68\",\n        \"S14.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-bottom\"\n        }\n      ],\n      \"description\": \"The scroll-margin-bottom property defines the bottom margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container\\u2019s coordinate space), then adding the specified outsets.\"\n    },\n    {\n      \"name\": \"scroll-margin-inline\",\n      \"syntax\": \"<length>{1,2}\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF68\",\n        \"S15\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline\"\n        }\n      ],\n      \"description\": \"The scroll-margin-inline property is a shorthand property which sets the scroll-margin longhands in the inline dimension.\"\n    },\n    {\n      \"name\": \"scroll-margin-inline-start\",\n      \"syntax\": \"<length>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF68\",\n        \"S15\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline-start\"\n        }\n      ],\n      \"description\": \"The scroll-margin-inline-start property defines the margin of the scroll snap area at the start of the inline dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container\\u2019s coordinate space), then adding the specified outsets.\"\n    },\n    {\n      \"name\": \"scroll-margin-inline-end\",\n      \"syntax\": \"<length>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF68\",\n        \"S15\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline-end\"\n        }\n      ],\n      \"description\": \"The scroll-margin-inline-end property defines the margin of the scroll snap area at the end of the inline dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container\\u2019s coordinate space), then adding the specified outsets.\"\n    },\n    {\n      \"name\": \"scroll-margin-left\",\n      \"syntax\": \"<length>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF68\",\n        \"S14.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-left\"\n        }\n      ],\n      \"description\": \"The scroll-margin-left property defines the left margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container\\u2019s coordinate space), then adding the specified outsets.\"\n    },\n    {\n      \"name\": \"scroll-margin-right\",\n      \"syntax\": \"<length>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF68\",\n        \"S14.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-right\"\n        }\n      ],\n      \"description\": \"The scroll-margin-right property defines the right margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container\\u2019s coordinate space), then adding the specified outsets.\"\n    },\n    {\n      \"name\": \"scroll-margin-top\",\n      \"syntax\": \"<length>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF68\",\n        \"S14.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-top\"\n        }\n      ],\n      \"description\": \"The scroll-margin-top property defines the top margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container\\u2019s coordinate space), then adding the specified outsets.\"\n    },\n    {\n      \"name\": \"scroll-padding\",\n      \"syntax\": \"[ auto | <length-percentage> ]{1,4}\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF68\",\n        \"S14.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scroll-padding\"\n        }\n      ],\n      \"description\": \"The scroll-padding property is a shorthand property which sets all of the scroll-padding longhands, assigning values much like the padding property does for the padding-* longhands.\"\n    },\n    {\n      \"name\": \"scroll-padding-block\",\n      \"syntax\": \"[ auto | <length-percentage> ]{1,2}\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF68\",\n        \"S15\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block\"\n        }\n      ],\n      \"description\": \"The scroll-padding-block property is a shorthand property which sets the scroll-padding longhands for the block dimension.\"\n    },\n    {\n      \"name\": \"scroll-padding-block-start\",\n      \"syntax\": \"auto | <length-percentage>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF68\",\n        \"S15\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block-start\"\n        }\n      ],\n      \"description\": \"The scroll-padding-block-start property defines offsets for the start edge in the block dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"\n    },\n    {\n      \"name\": \"scroll-padding-block-end\",\n      \"syntax\": \"auto | <length-percentage>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF68\",\n        \"S15\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block-end\"\n        }\n      ],\n      \"description\": \"The scroll-padding-block-end property defines offsets for the end edge in the block dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"\n    },\n    {\n      \"name\": \"scroll-padding-bottom\",\n      \"syntax\": \"auto | <length-percentage>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF68\",\n        \"S14.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-bottom\"\n        }\n      ],\n      \"description\": \"The scroll-padding-bottom property defines offsets for the bottom of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"\n    },\n    {\n      \"name\": \"scroll-padding-inline\",\n      \"syntax\": \"[ auto | <length-percentage> ]{1,2}\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF68\",\n        \"S15\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline\"\n        }\n      ],\n      \"description\": \"The scroll-padding-inline property is a shorthand property which sets the scroll-padding longhands for the inline dimension.\"\n    },\n    {\n      \"name\": \"scroll-padding-inline-start\",\n      \"syntax\": \"auto | <length-percentage>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF68\",\n        \"S15\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline-start\"\n        }\n      ],\n      \"description\": \"The scroll-padding-inline-start property defines offsets for the start edge in the inline dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"\n    },\n    {\n      \"name\": \"scroll-padding-inline-end\",\n      \"syntax\": \"auto | <length-percentage>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF68\",\n        \"S15\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline-end\"\n        }\n      ],\n      \"description\": \"The scroll-padding-inline-end property defines offsets for the end edge in the inline dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"\n    },\n    {\n      \"name\": \"scroll-padding-left\",\n      \"syntax\": \"auto | <length-percentage>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF68\",\n        \"S14.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-left\"\n        }\n      ],\n      \"description\": \"The scroll-padding-left property defines offsets for the left of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"\n    },\n    {\n      \"name\": \"scroll-padding-right\",\n      \"syntax\": \"auto | <length-percentage>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF68\",\n        \"S14.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-right\"\n        }\n      ],\n      \"description\": \"The scroll-padding-right property defines offsets for the right of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"\n    },\n    {\n      \"name\": \"scroll-padding-top\",\n      \"syntax\": \"auto | <length-percentage>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF68\",\n        \"S14.1\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-top\"\n        }\n      ],\n      \"description\": \"The scroll-padding-top property defines offsets for the top of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport.\"\n    },\n    {\n      \"name\": \"scroll-snap-align\",\n      \"syntax\": \"[ none | start | end | center ]{1,2}\",\n      \"relevance\": 53,\n      \"browsers\": [\n        \"E79\",\n        \"FF68\",\n        \"S11\",\n        \"C69\",\n        \"O56\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-align\"\n        }\n      ],\n      \"description\": \"The scroll-snap-align property specifies the box\\u2019s snap position as an alignment of its snap area (as the alignment subject) within its snap container\\u2019s snapport (as the alignment container). The two values specify the snapping alignment in the block axis and inline axis, respectively. If only one value is specified, the second value defaults to the same value.\"\n    },\n    {\n      \"name\": \"scroll-snap-stop\",\n      \"syntax\": \"normal | always\",\n      \"values\": [\n        {\n          \"name\": \"normal\"\n        },\n        {\n          \"name\": \"always\"\n        }\n      ],\n      \"relevance\": 51,\n      \"browsers\": [\n        \"E79\",\n        \"FF103\",\n        \"S15\",\n        \"C75\",\n        \"O62\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-stop\"\n        }\n      ],\n      \"description\": 'The scroll-snap-stop CSS property defines whether the scroll container is allowed to \"pass over\" possible snap positions.'\n    },\n    {\n      \"name\": \"scroll-snap-type-x\",\n      \"status\": \"obsolete\",\n      \"syntax\": \"none | mandatory | proximity\",\n      \"values\": [\n        {\n          \"name\": \"none\"\n        },\n        {\n          \"name\": \"mandatory\"\n        },\n        {\n          \"name\": \"proximity\"\n        }\n      ],\n      \"relevance\": 0,\n      \"description\": \"The scroll-snap-type-x CSS property defines how strictly snap points are enforced on the horizontal axis of the scroll container in case there is one.\\n\\nSpecifying any precise animations or physics used to enforce those snap points is not covered by this property but instead left up to the user agent.\"\n    },\n    {\n      \"name\": \"scroll-snap-type-y\",\n      \"status\": \"obsolete\",\n      \"syntax\": \"none | mandatory | proximity\",\n      \"values\": [\n        {\n          \"name\": \"none\"\n        },\n        {\n          \"name\": \"mandatory\"\n        },\n        {\n          \"name\": \"proximity\"\n        }\n      ],\n      \"relevance\": 0,\n      \"description\": \"The scroll-snap-type-y CSS property defines how strictly snap points are enforced on the vertical axis of the scroll container in case there is one.\\n\\nSpecifying any precise animations or physics used to enforce those snap points is not covered by this property but instead left up to the user agent.\"\n    },\n    {\n      \"name\": \"scroll-timeline\",\n      \"status\": \"experimental\",\n      \"syntax\": \"[ <'scroll-timeline-name'> <'scroll-timeline-axis'>? ]#\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E115\",\n        \"FF111\",\n        \"C115\",\n        \"O101\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scroll-timeline\"\n        }\n      ],\n      \"description\": \"Defines a name that can be used to identify the source element of a scroll timeline, along with the scrollbar axis that should provide the timeline.\"\n    },\n    {\n      \"name\": \"scroll-timeline-axis\",\n      \"status\": \"experimental\",\n      \"syntax\": \"[ block | inline | x | y ]#\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E115\",\n        \"FF111\",\n        \"C115\",\n        \"O101\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scroll-timeline-axis\"\n        }\n      ],\n      \"description\": \"Specifies the scrollbar that will be used to provide the timeline for a scroll-timeline animation\"\n    },\n    {\n      \"name\": \"scroll-timeline-name\",\n      \"status\": \"experimental\",\n      \"syntax\": \"none | <dashed-ident>#\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E115\",\n        \"FF111\",\n        \"C115\",\n        \"O101\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/scroll-timeline-name\"\n        }\n      ],\n      \"description\": \"Defines a name that can be used to identify an element as the source of a scroll-timeline.\"\n    },\n    {\n      \"name\": \"text-combine-upright\",\n      \"syntax\": \"none | all | [ digits <integer>? ]\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF48\",\n        \"S15.4\",\n        \"C48\",\n        \"IE11\",\n        \"O35\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/text-combine-upright\"\n        }\n      ],\n      \"description\": \"The text-combine-upright CSS property specifies the combination of multiple characters into the space of a single character. If the combined text is wider than 1em, the user agent must fit the contents within 1em. The resulting composition is treated as a single upright glyph for layout and decoration. This property only has an effect in vertical writing modes.\\n\\nThis is used to produce an effect that is known as tate-ch\\u016B-yoko (\\u7E26\\u4E2D\\u6A2A) in Japanese, or as \\u76F4\\u66F8\\u6A6B\\u5411 in Chinese.\"\n    },\n    {\n      \"name\": \"text-decoration-skip\",\n      \"status\": \"experimental\",\n      \"syntax\": \"none | [ objects || [ spaces | [ leading-spaces || trailing-spaces ] ] || edges || box-decoration ]\",\n      \"relevance\": 52,\n      \"browsers\": [\n        \"S12.1\",\n        \"C57\",\n        \"O44\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/text-decoration-skip\"\n        }\n      ],\n      \"description\": \"The text-decoration-skip CSS property specifies what parts of the element\\u2019s content any text decoration affecting the element must skip over. It controls all text decoration lines drawn by the element and also any text decoration lines drawn by its ancestors.\"\n    },\n    {\n      \"name\": \"text-decoration-skip-ink\",\n      \"syntax\": \"auto | all | none\",\n      \"values\": [\n        {\n          \"name\": \"auto\"\n        },\n        {\n          \"name\": \"all\"\n        },\n        {\n          \"name\": \"none\"\n        }\n      ],\n      \"relevance\": 51,\n      \"browsers\": [\n        \"E79\",\n        \"FF70\",\n        \"S15.4\",\n        \"C64\",\n        \"O50\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/text-decoration-skip-ink\"\n        }\n      ],\n      \"description\": \"The text-decoration-skip-ink CSS property specifies how overlines and underlines are drawn when they pass over glyph ascenders and descenders.\"\n    },\n    {\n      \"name\": \"text-decoration-thickness\",\n      \"syntax\": \"auto | from-font | <length> | <percentage> \",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E89\",\n        \"FF70\",\n        \"S12.1\",\n        \"C89\",\n        \"O75\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/text-decoration-thickness\"\n        }\n      ],\n      \"description\": \"The text-decoration-thickness CSS property sets the thickness, or width, of the decoration line that is used on text in an element, such as a line-through, underline, or overline.\"\n    },\n    {\n      \"name\": \"text-emphasis\",\n      \"syntax\": \"<'text-emphasis-style'> || <'text-emphasis-color'>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E99\",\n        \"FF46\",\n        \"S7\",\n        \"C99\",\n        \"O85\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/text-emphasis\"\n        }\n      ],\n      \"description\": \"The text-emphasis CSS property is a shorthand property for setting text-emphasis-style and text-emphasis-color in one declaration. This property will apply the specified emphasis mark to each character of the element's text, except separator characters, like spaces,  and control characters.\"\n    },\n    {\n      \"name\": \"text-emphasis-color\",\n      \"syntax\": \"<color>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E99\",\n        \"FF46\",\n        \"S7\",\n        \"C99\",\n        \"O85\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/text-emphasis-color\"\n        }\n      ],\n      \"description\": \"The text-emphasis-color CSS property defines the color used to draw emphasis marks on text being rendered in the HTML document. This value can also be set and reset using the text-emphasis shorthand.\"\n    },\n    {\n      \"name\": \"text-emphasis-position\",\n      \"syntax\": \"[ over | under ] && [ right | left ]\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E99\",\n        \"FF46\",\n        \"S7\",\n        \"C99\",\n        \"O85\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/text-emphasis-position\"\n        }\n      ],\n      \"description\": \"The text-emphasis-position CSS property describes where emphasis marks are drawn at. The effect of emphasis marks on the line height is the same as for ruby text: if there isn't enough place, the line height is increased.\"\n    },\n    {\n      \"name\": \"text-emphasis-style\",\n      \"syntax\": \"none | [ [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ] ] | <string>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E99\",\n        \"FF46\",\n        \"S7\",\n        \"C99\",\n        \"O85\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/text-emphasis-style\"\n        }\n      ],\n      \"description\": \"The text-emphasis-style CSS property defines the type of emphasis used. It can also be set, and reset, using the text-emphasis shorthand.\"\n    },\n    {\n      \"name\": \"text-size-adjust\",\n      \"status\": \"experimental\",\n      \"syntax\": \"none | auto | <percentage>\",\n      \"relevance\": 57,\n      \"browsers\": [\n        \"E79\",\n        \"C54\",\n        \"O41\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/text-size-adjust\"\n        }\n      ],\n      \"description\": \"The text-size-adjust CSS property controls the text inflation algorithm used on some smartphones and tablets. Other browsers will ignore this property.\"\n    },\n    {\n      \"name\": \"text-underline-offset\",\n      \"syntax\": \"auto | <length> | <percentage> \",\n      \"relevance\": 51,\n      \"browsers\": [\n        \"E87\",\n        \"FF70\",\n        \"S12.1\",\n        \"C87\",\n        \"O73\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/text-underline-offset\"\n        }\n      ],\n      \"description\": \"The text-underline-offset CSS property sets the offset distance of an underline text decoration line (applied using text-decoration) from its original position.\"\n    },\n    {\n      \"name\": \"text-wrap\",\n      \"syntax\": \"wrap | nowrap | balance | stable | pretty\",\n      \"values\": [\n        {\n          \"name\": \"wrap\"\n        },\n        {\n          \"name\": \"nowrap\"\n        },\n        {\n          \"name\": \"balance\"\n        },\n        {\n          \"name\": \"stable\"\n        },\n        {\n          \"name\": \"pretty\"\n        }\n      ],\n      \"relevance\": 54,\n      \"browsers\": [\n        \"E114\",\n        \"FF121\",\n        \"Spreview\",\n        \"C114\",\n        \"O100\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/text-wrap\"\n        }\n      ],\n      \"description\": \"The text-wrap CSS property controls how text inside an element is wrapped.\"\n    },\n    {\n      \"name\": \"timeline-scope\",\n      \"status\": \"experimental\",\n      \"syntax\": \"none | <dashed-ident>#\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E116\",\n        \"C116\",\n        \"O102\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/timeline-scope\"\n        }\n      ],\n      \"description\": \"The timeline-scope CSS property modifies the scope of a named animation timeline.\"\n    },\n    {\n      \"name\": \"transform-box\",\n      \"syntax\": \"content-box | border-box | fill-box | stroke-box | view-box\",\n      \"values\": [\n        {\n          \"name\": \"content-box\"\n        },\n        {\n          \"name\": \"border-box\"\n        },\n        {\n          \"name\": \"fill-box\"\n        },\n        {\n          \"name\": \"stroke-box\"\n        },\n        {\n          \"name\": \"view-box\"\n        }\n      ],\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E79\",\n        \"FF55\",\n        \"S11\",\n        \"C64\",\n        \"O51\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/transform-box\"\n        }\n      ],\n      \"description\": \"The transform-box CSS property defines the layout box to which the transform and transform-origin properties relate.\"\n    },\n    {\n      \"name\": \"transition-behavior\",\n      \"status\": \"experimental\",\n      \"syntax\": \"<transition-behavior-value>#\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E117\",\n        \"C117\",\n        \"O103\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/transition-behavior\"\n        }\n      ],\n      \"description\": \"The transition-behavior CSS property specifies whether transitions will be started for properties whose animation behavior is discrete.\"\n    },\n    {\n      \"name\": \"translate\",\n      \"syntax\": \"none | <length-percentage> [ <length-percentage> <length>? ]?\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E104\",\n        \"FF72\",\n        \"S14.1\",\n        \"C104\",\n        \"O90\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/translate\"\n        }\n      ],\n      \"description\": \"The translate CSS property allows you to specify translation transforms individually and independently of the transform property. This maps better to typical user interface usage, and saves having to remember the exact order of transform functions to specify in the transform value.\"\n    },\n    {\n      \"name\": \"view-timeline\",\n      \"status\": \"experimental\",\n      \"syntax\": \"[ <'view-timeline-name'> <'view-timeline-axis'>? ]#\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E115\",\n        \"FF114\",\n        \"C115\",\n        \"O101\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/view-timeline\"\n        }\n      ],\n      \"description\": \"The view-timeline CSS shorthand property is used to define a named view progress timeline, which is progressed through based on the change in visibility of an element (known as the subject) inside a scrollable element (scroller). view-timeline is set on the subject.\"\n    },\n    {\n      \"name\": \"view-timeline-axis\",\n      \"status\": \"experimental\",\n      \"syntax\": \"[ block | inline | x | y ]#\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E115\",\n        \"FF114\",\n        \"C115\",\n        \"O101\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/view-timeline-axis\"\n        }\n      ],\n      \"description\": \"The view-timeline-axis CSS property is used to specify the scrollbar direction that will be used to provide the timeline for a named view progress timeline animation, which is progressed through based on the change in visibility of an element (known as the subject) inside a scrollable element (scroller). view-timeline-axis is set on the subject. See CSS scroll-driven animations for more details.\"\n    },\n    {\n      \"name\": \"view-timeline-inset\",\n      \"status\": \"experimental\",\n      \"syntax\": \"[ [ auto | <length-percentage> ]{1,2} ]#\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E115\",\n        \"C115\",\n        \"O101\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/view-timeline-inset\"\n        }\n      ],\n      \"description\": \"The view-timeline-inset CSS property is used to specify one or two values representing an adjustment to the position of the scrollport (see Scroll container for more details) in which the subject element of a named view progress timeline animation is deemed to be visible. Put another way, this allows you to specify start and/or end inset (or outset) values that offset the position of the timeline.\"\n    },\n    {\n      \"name\": \"view-timeline-name\",\n      \"status\": \"experimental\",\n      \"syntax\": \"none | <dashed-ident>#\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E115\",\n        \"FF111\",\n        \"C115\",\n        \"O101\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/view-timeline-name\"\n        }\n      ],\n      \"description\": \"The view-timeline-name CSS property is used to define the name of a named view progress timeline, which is progressed through based on the change in visibility of an element (known as the subject) inside a scrollable element (scroller). view-timeline is set on the subject.\"\n    },\n    {\n      \"name\": \"view-transition-name\",\n      \"status\": \"experimental\",\n      \"syntax\": \"none | <custom-ident>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E111\",\n        \"C111\",\n        \"O97\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/view-transition-name\"\n        }\n      ],\n      \"description\": \"The view-transition-name CSS property provides the selected element with a distinct identifying name (a custom-ident) and causes it to participate in a separate view transition from the root view transition \\u2014 or no view transition if the none value is specified.\"\n    },\n    {\n      \"name\": \"white-space\",\n      \"syntax\": \"normal | pre | nowrap | pre-wrap | pre-line | break-spaces | [ <'white-space-collapse'> || <'text-wrap'> || <'white-space-trim'> ]\",\n      \"relevance\": 89,\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE5.5\",\n        \"O4\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/white-space\"\n        }\n      ],\n      \"description\": \"Specifies how whitespace is handled in an element.\"\n    },\n    {\n      \"name\": \"white-space-collapse\",\n      \"syntax\": \"collapse | discard | preserve | preserve-breaks | preserve-spaces | break-spaces\",\n      \"values\": [\n        {\n          \"name\": \"collapse\"\n        },\n        {\n          \"name\": \"discard\"\n        },\n        {\n          \"name\": \"preserve\"\n        },\n        {\n          \"name\": \"preserve-breaks\"\n        },\n        {\n          \"name\": \"preserve-spaces\"\n        },\n        {\n          \"name\": \"break-spaces\"\n        }\n      ],\n      \"relevance\": 50,\n      \"browsers\": [\n        \"E114\",\n        \"Spreview\",\n        \"C114\",\n        \"O100\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/white-space-collapse\"\n        }\n      ],\n      \"description\": \"The white-space-collapse CSS property controls how white space inside an element is collapsed.\"\n    },\n    {\n      \"name\": \"speak-as\",\n      \"atRule\": \"@counter-style\",\n      \"syntax\": \"auto | bullets | numbers | words | spell-out | <counter-style-name>\",\n      \"relevance\": 50,\n      \"browsers\": [\n        \"S11.1\"\n      ],\n      \"description\": \"The speak-as descriptor specifies how a counter symbol constructed with a given @counter-style will be represented in the spoken form. For example, an author can specify a counter symbol to be either spoken as its numerical value or just represented with an audio cue.\"\n    },\n    {\n      \"name\": \"base-palette\",\n      \"atRule\": \"@font-palette-values\",\n      \"syntax\": \"light | dark | <integer [0,\\u221E]>\",\n      \"relevance\": 50,\n      \"description\": \"The base-palette CSS descriptor is used to specify the name or index of a pre-defined palette to be used for creating a new palette. If the specified base-palette does not exist, then the palette defined at index 0 will be used.\"\n    },\n    {\n      \"name\": \"override-colors\",\n      \"atRule\": \"@font-palette-values\",\n      \"syntax\": \"[ <integer [0,\\u221E]> <absolute-color-base> ]#\",\n      \"relevance\": 50,\n      \"description\": \"The override-colors CSS descriptor is used to override colors in the chosen base-palette for a color font.\"\n    },\n    {\n      \"name\": \"ascent-override\",\n      \"atRule\": \"@font-face\",\n      \"status\": \"experimental\",\n      \"syntax\": \"normal | <percentage>\",\n      \"relevance\": 50,\n      \"description\": \"Describes the ascent metric of a font.\"\n    },\n    {\n      \"name\": \"descent-override\",\n      \"atRule\": \"@font-face\",\n      \"status\": \"experimental\",\n      \"syntax\": \"normal | <percentage>\",\n      \"relevance\": 50,\n      \"description\": \"Describes the descent metric of a font.\"\n    },\n    {\n      \"name\": \"font-display\",\n      \"atRule\": \"@font-face\",\n      \"status\": \"experimental\",\n      \"syntax\": \"[ auto | block | swap | fallback | optional ]\",\n      \"relevance\": 74,\n      \"description\": \"The font-display descriptor determines how a font face is displayed based on whether and when it is downloaded and ready to use.\"\n    },\n    {\n      \"name\": \"line-gap-override\",\n      \"atRule\": \"@font-face\",\n      \"status\": \"experimental\",\n      \"syntax\": \"normal | <percentage>\",\n      \"relevance\": 50,\n      \"description\": \"Describes the line-gap metric of a font.\"\n    },\n    {\n      \"name\": \"size-adjust\",\n      \"atRule\": \"@font-face\",\n      \"status\": \"experimental\",\n      \"syntax\": \"<percentage>\",\n      \"relevance\": 50,\n      \"description\": \"A multiplier for glyph outlines and metrics of a font.\"\n    },\n    {\n      \"name\": \"bleed\",\n      \"atRule\": \"@page\",\n      \"syntax\": \"auto | <length>\",\n      \"relevance\": 50,\n      \"description\": \"The bleed CSS at-rule descriptor, used with the @page at-rule, specifies the extent of the page bleed area outside the page box. This property only has effect if crop marks are enabled using the marks property.\"\n    },\n    {\n      \"name\": \"marks\",\n      \"atRule\": \"@page\",\n      \"syntax\": \"none | [ crop || cross ]\",\n      \"relevance\": 50,\n      \"description\": \"The marks CSS at-rule descriptor, used with the @page at-rule, adds crop and/or cross marks to the presentation of the document. Crop marks indicate where the page should be cut. Cross marks are used to align sheets.\"\n    },\n    {\n      \"name\": \"page-orientation\",\n      \"atRule\": \"@page\",\n      \"syntax\": \"upright | rotate-left | rotate-right \",\n      \"relevance\": 50,\n      \"description\": \"The page-orientation CSS descriptor for the @page at-rule controls the rotation of a printed page. It handles the flow of content across pages when the orientation of a page is changed. This behavior differs from the size descriptor in that a user can define the direction in which to rotate the page.\"\n    },\n    {\n      \"name\": \"syntax\",\n      \"atRule\": \"@property\",\n      \"status\": \"experimental\",\n      \"syntax\": \"<string>\",\n      \"relevance\": 50,\n      \"description\": \"Specifies the syntax of the custom property registration represented by the @property rule, controlling how the property\\u2019s value is parsed at computed value time.\"\n    },\n    {\n      \"name\": \"inherits\",\n      \"atRule\": \"@property\",\n      \"status\": \"experimental\",\n      \"syntax\": \"true | false\",\n      \"values\": [\n        {\n          \"name\": \"true\"\n        },\n        {\n          \"name\": \"false\"\n        }\n      ],\n      \"relevance\": 50,\n      \"description\": \"Specifies the inherit flag of the custom property registration represented by the @property rule, controlling whether or not the property inherits by default.\"\n    },\n    {\n      \"name\": \"initial-value\",\n      \"atRule\": \"@property\",\n      \"status\": \"experimental\",\n      \"syntax\": \"<declaration-value>?\",\n      \"relevance\": 50,\n      \"description\": \"Specifies the initial value of the custom property registration represented by the @property rule, controlling the property\\u2019s initial value.\"\n    }\n  ],\n  \"atDirectives\": [\n    {\n      \"name\": \"@charset\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1.5\",\n        \"S4\",\n        \"C2\",\n        \"IE5.5\",\n        \"O9\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/@charset\"\n        }\n      ],\n      \"description\": \"Defines character set of the document.\"\n    },\n    {\n      \"name\": \"@counter-style\",\n      \"browsers\": [\n        \"E91\",\n        \"FF33\",\n        \"S17\",\n        \"C91\",\n        \"O77\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/@counter-style\"\n        }\n      ],\n      \"description\": \"Defines a custom counter style.\"\n    },\n    {\n      \"name\": \"@font-face\",\n      \"browsers\": [\n        \"E12\",\n        \"FF3.5\",\n        \"S3.1\",\n        \"C1\",\n        \"IE4\",\n        \"O10\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/@font-face\"\n        }\n      ],\n      \"description\": \"Allows for linking to fonts that are automatically activated when needed. This permits authors to work around the limitation of 'web-safe' fonts, allowing for consistent rendering independent of the fonts available in a given user's environment.\"\n    },\n    {\n      \"name\": \"@font-feature-values\",\n      \"browsers\": [\n        \"E111\",\n        \"FF34\",\n        \"S9.1\",\n        \"C111\",\n        \"O97\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/@font-feature-values\"\n        }\n      ],\n      \"description\": \"Defines named values for the indices used to select alternate glyphs for a given font family.\"\n    },\n    {\n      \"name\": \"@import\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE5.5\",\n        \"O3.5\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/@import\"\n        }\n      ],\n      \"description\": \"Includes content of another file.\"\n    },\n    {\n      \"name\": \"@keyframes\",\n      \"browsers\": [\n        \"E12\",\n        \"FF16\",\n        \"S9\",\n        \"C43\",\n        \"IE10\",\n        \"O30\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/@keyframes\"\n        }\n      ],\n      \"description\": \"Defines set of animation key frames.\"\n    },\n    {\n      \"name\": \"@layer\",\n      \"browsers\": [\n        \"E99\",\n        \"FF97\",\n        \"S15.4\",\n        \"C99\",\n        \"O85\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/@layer\"\n        }\n      ],\n      \"description\": \"Declare a cascade layer and the order of precedence in case of multiple cascade layers.\"\n    },\n    {\n      \"name\": \"@media\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S3\",\n        \"C1\",\n        \"IE6\",\n        \"O9.2\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/@media\"\n        }\n      ],\n      \"description\": \"Defines a stylesheet for a particular media type.\"\n    },\n    {\n      \"name\": \"@-moz-document\",\n      \"browsers\": [\n        \"FF1.8\"\n      ],\n      \"description\": \"Gecko-specific at-rule that restricts the style rules contained within it based on the URL of the document.\"\n    },\n    {\n      \"name\": \"@-moz-keyframes\",\n      \"browsers\": [\n        \"FF5\"\n      ],\n      \"description\": \"Defines set of animation key frames.\"\n    },\n    {\n      \"name\": \"@-ms-viewport\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"description\": \"Specifies the size, zoom factor, and orientation of the viewport.\"\n    },\n    {\n      \"name\": \"@namespace\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE9\",\n        \"O8\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/@namespace\"\n        }\n      ],\n      \"description\": \"Declares a prefix and associates it with a namespace name.\"\n    },\n    {\n      \"name\": \"@-o-keyframes\",\n      \"browsers\": [\n        \"O12\"\n      ],\n      \"description\": \"Defines set of animation key frames.\"\n    },\n    {\n      \"name\": \"@-o-viewport\",\n      \"browsers\": [\n        \"O11\"\n      ],\n      \"description\": \"Specifies the size, zoom factor, and orientation of the viewport.\"\n    },\n    {\n      \"name\": \"@page\",\n      \"browsers\": [\n        \"E12\",\n        \"FF19\",\n        \"S13.1\",\n        \"C2\",\n        \"IE8\",\n        \"O6\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/@page\"\n        }\n      ],\n      \"description\": \"Directive defines various page parameters.\"\n    },\n    {\n      \"name\": \"@property\",\n      \"browsers\": [\n        \"E85\",\n        \"FFpreview\",\n        \"S16.4\",\n        \"C85\",\n        \"O71\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/@property\"\n        }\n      ],\n      \"description\": \"Describes the aspect of custom properties and variables.\"\n    },\n    {\n      \"name\": \"@supports\",\n      \"browsers\": [\n        \"E12\",\n        \"FF22\",\n        \"S9\",\n        \"C28\",\n        \"O12.1\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/@supports\"\n        }\n      ],\n      \"description\": \"A conditional group rule whose condition tests whether the user agent supports CSS property:value pairs.\"\n    },\n    {\n      \"name\": \"@-webkit-keyframes\",\n      \"browsers\": [\n        \"C\",\n        \"S4\"\n      ],\n      \"description\": \"Defines set of animation key frames.\"\n    }\n  ],\n  \"pseudoClasses\": [\n    {\n      \"name\": \":active\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O5\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:active\"\n        }\n      ],\n      \"description\": \"Applies while an element is being activated by the user. For example, between the times the user presses the mouse button and releases it.\"\n    },\n    {\n      \"name\": \":any-link\",\n      \"browsers\": [\n        \"E79\",\n        \"FF50\",\n        \"S9\",\n        \"C65\",\n        \"O52\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:any-link\"\n        }\n      ],\n      \"description\": \"Represents an element that acts as the source anchor of a hyperlink. Applies to both visited and unvisited links.\"\n    },\n    {\n      \"name\": \":checked\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S3.1\",\n        \"C1\",\n        \"IE9\",\n        \"O9\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:checked\"\n        }\n      ],\n      \"description\": \"Radio and checkbox elements can be toggled by the user. Some menu items are 'checked' when the user selects them. When such elements are toggled 'on' the :checked pseudo-class applies.\"\n    },\n    {\n      \"name\": \":corner-present\",\n      \"browsers\": [\n        \"C\",\n        \"S5\"\n      ],\n      \"description\": \"Non-standard. Indicates whether or not a scrollbar corner is present.\"\n    },\n    {\n      \"name\": \":decrement\",\n      \"browsers\": [\n        \"C\",\n        \"S5\"\n      ],\n      \"description\": \"Non-standard. Applies to buttons and track pieces. Indicates whether or not the button or track piece will decrement the view's position when used.\"\n    },\n    {\n      \"name\": \":default\",\n      \"browsers\": [\n        \"E79\",\n        \"FF4\",\n        \"S5\",\n        \"C10\",\n        \"O10\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:default\"\n        }\n      ],\n      \"description\": \"Applies to the one or more UI elements that are the default among a set of similar elements. Typically applies to context menu items, buttons, and select lists/menus.\"\n    },\n    {\n      \"name\": \":disabled\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S3.1\",\n        \"C1\",\n        \"IE9\",\n        \"O9\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:disabled\"\n        }\n      ],\n      \"description\": \"Represents user interface elements that are in a disabled state; such elements have a corresponding enabled state.\"\n    },\n    {\n      \"name\": \":double-button\",\n      \"browsers\": [\n        \"C\",\n        \"S5\"\n      ],\n      \"description\": \"Non-standard. Applies to buttons and track pieces. Applies when both buttons are displayed together at the same end of the scrollbar.\"\n    },\n    {\n      \"name\": \":empty\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S3.1\",\n        \"C1\",\n        \"IE9\",\n        \"O9.5\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:empty\"\n        }\n      ],\n      \"description\": \"Represents an element that has no children at all.\"\n    },\n    {\n      \"name\": \":enabled\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S3.1\",\n        \"C1\",\n        \"IE9\",\n        \"O9\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:enabled\"\n        }\n      ],\n      \"description\": \"Represents user interface elements that are in an enabled state; such elements have a corresponding disabled state.\"\n    },\n    {\n      \"name\": \":end\",\n      \"browsers\": [\n        \"C\",\n        \"S5\"\n      ],\n      \"description\": \"Non-standard. Applies to buttons and track pieces. Indicates whether the object is placed after the thumb.\"\n    },\n    {\n      \"name\": \":first\",\n      \"browsers\": [\n        \"E12\",\n        \"FF116\",\n        \"S6\",\n        \"C18\",\n        \"IE8\",\n        \"O9.2\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:first\"\n        }\n      ],\n      \"description\": \"When printing double-sided documents, the page boxes on left and right pages may be different. This can be expressed through CSS pseudo-classes defined in the  page context.\"\n    },\n    {\n      \"name\": \":first-child\",\n      \"browsers\": [\n        \"E12\",\n        \"FF3\",\n        \"S3.1\",\n        \"C4\",\n        \"IE7\",\n        \"O9.5\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:first-child\"\n        }\n      ],\n      \"description\": \"Same as :nth-child(1). Represents an element that is the first child of some other element.\"\n    },\n    {\n      \"name\": \":first-of-type\",\n      \"browsers\": [\n        \"E12\",\n        \"FF3.5\",\n        \"S3.1\",\n        \"C1\",\n        \"IE9\",\n        \"O9.5\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:first-of-type\"\n        }\n      ],\n      \"description\": \"Same as :nth-of-type(1). Represents an element that is the first sibling of its type in the list of children of its parent element.\"\n    },\n    {\n      \"name\": \":focus\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE8\",\n        \"O7\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:focus\"\n        }\n      ],\n      \"description\": \"Applies while an element has the focus (accepts keyboard or mouse events, or other forms of input).\"\n    },\n    {\n      \"name\": \":fullscreen\",\n      \"browsers\": [\n        \"E12\",\n        \"FF64\",\n        \"S16.4\",\n        \"C71\",\n        \"IE11\",\n        \"O58\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:fullscreen\"\n        }\n      ],\n      \"description\": \"Matches any element that has its fullscreen flag set.\"\n    },\n    {\n      \"name\": \":future\",\n      \"browsers\": [\n        \"E79\",\n        \"S7\",\n        \"C23\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:future\"\n        }\n      ],\n      \"description\": \"Represents any element that is defined to occur entirely after a :current element.\"\n    },\n    {\n      \"name\": \":horizontal\",\n      \"browsers\": [\n        \"C\",\n        \"S5\"\n      ],\n      \"description\": \"Non-standard. Applies to any scrollbar pieces that have a horizontal orientation.\"\n    },\n    {\n      \"name\": \":host\",\n      \"browsers\": [\n        \"E79\",\n        \"FF63\",\n        \"S10\",\n        \"C54\",\n        \"O41\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:host\"\n        }\n      ],\n      \"description\": \"When evaluated in the context of a shadow tree, matches the shadow tree's host element.\"\n    },\n    {\n      \"name\": \":host()\",\n      \"browsers\": [\n        \"C35\",\n        \"O22\"\n      ],\n      \"description\": \"When evaluated in the context of a shadow tree, it matches the shadow tree's host element if the host element, in its normal context, matches the selector argument.\"\n    },\n    {\n      \"name\": \":host-context()\",\n      \"browsers\": [\n        \"C35\",\n        \"O22\"\n      ],\n      \"description\": \"Tests whether there is an ancestor, outside the shadow tree, which matches a particular selector.\"\n    },\n    {\n      \"name\": \":hover\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S2\",\n        \"C1\",\n        \"IE4\",\n        \"O4\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:hover\"\n        }\n      ],\n      \"description\": \"Applies while the user designates an element with a pointing device, but does not necessarily activate it. For example, a visual user agent could apply this pseudo-class when the cursor (mouse pointer) hovers over a box generated by the element.\"\n    },\n    {\n      \"name\": \":increment\",\n      \"browsers\": [\n        \"C\",\n        \"S5\"\n      ],\n      \"description\": \"Non-standard. Applies to buttons and track pieces. Indicates whether or not the button or track piece will increment the view's position when used.\"\n    },\n    {\n      \"name\": \":indeterminate\",\n      \"browsers\": [\n        \"E12\",\n        \"FF2\",\n        \"S3\",\n        \"C1\",\n        \"IE10\",\n        \"O9\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:indeterminate\"\n        }\n      ],\n      \"description\": \"Applies to UI elements whose value is in an indeterminate state.\"\n    },\n    {\n      \"name\": \":in-range\",\n      \"browsers\": [\n        \"E13\",\n        \"FF29\",\n        \"S5.1\",\n        \"C10\",\n        \"O11\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:in-range\"\n        }\n      ],\n      \"description\": \"Used in conjunction with the min and max attributes, whether on a range input, a number field, or any other types that accept those attributes.\"\n    },\n    {\n      \"name\": \":invalid\",\n      \"browsers\": [\n        \"E12\",\n        \"FF4\",\n        \"S5\",\n        \"C10\",\n        \"IE10\",\n        \"O10\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:invalid\"\n        }\n      ],\n      \"description\": \"An element is :valid or :invalid when it is, respectively, valid or invalid with respect to data validity semantics defined by a different specification.\"\n    },\n    {\n      \"name\": \":lang()\",\n      \"browsers\": [\n        \"E\",\n        \"C\",\n        \"FF1\",\n        \"IE8\",\n        \"O8\",\n        \"S3\"\n      ],\n      \"description\": \"Represents an element that is in language specified.\"\n    },\n    {\n      \"name\": \":last-child\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S3.1\",\n        \"C1\",\n        \"IE9\",\n        \"O9.5\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:last-child\"\n        }\n      ],\n      \"description\": \"Same as :nth-last-child(1). Represents an element that is the last child of some other element.\"\n    },\n    {\n      \"name\": \":last-of-type\",\n      \"browsers\": [\n        \"E12\",\n        \"FF3.5\",\n        \"S3.1\",\n        \"C1\",\n        \"IE9\",\n        \"O9.5\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:last-of-type\"\n        }\n      ],\n      \"description\": \"Same as :nth-last-of-type(1). Represents an element that is the last sibling of its type in the list of children of its parent element.\"\n    },\n    {\n      \"name\": \":left\",\n      \"browsers\": [\n        \"E12\",\n        \"S5\",\n        \"C6\",\n        \"IE8\",\n        \"O9.2\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:left\"\n        }\n      ],\n      \"description\": \"When printing double-sided documents, the page boxes on left and right pages may be different. This can be expressed through CSS pseudo-classes defined in the  page context.\"\n    },\n    {\n      \"name\": \":link\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE3\",\n        \"O3.5\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:link\"\n        }\n      ],\n      \"description\": \"Applies to links that have not yet been visited.\"\n    },\n    {\n      \"name\": \":matches()\",\n      \"browsers\": [\n        \"S9\"\n      ],\n      \"description\": \"Takes a selector list as its argument. It represents an element that is represented by its argument.\"\n    },\n    {\n      \"name\": \":-moz-any()\",\n      \"browsers\": [\n        \"FF4\"\n      ],\n      \"description\": \"Represents an element that is represented by the selector list passed as its argument. Standardized as :matches().\"\n    },\n    {\n      \"name\": \":-moz-any-link\",\n      \"browsers\": [\n        \"FF1\"\n      ],\n      \"description\": \"Represents an element that acts as the source anchor of a hyperlink. Applies to both visited and unvisited links.\"\n    },\n    {\n      \"name\": \":-moz-broken\",\n      \"browsers\": [\n        \"FF3\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:-moz-broken\"\n        }\n      ],\n      \"description\": \"Non-standard. Matches elements representing broken images.\"\n    },\n    {\n      \"name\": \":-moz-drag-over\",\n      \"browsers\": [\n        \"FF1\"\n      ],\n      \"description\": \"Non-standard. Matches elements when a drag-over event applies to it.\"\n    },\n    {\n      \"name\": \":-moz-first-node\",\n      \"browsers\": [\n        \"FF72\"\n      ],\n      \"description\": \"Non-standard. Represents an element that is the first child node of some other element.\"\n    },\n    {\n      \"name\": \":-moz-focusring\",\n      \"browsers\": [\n        \"FF4\"\n      ],\n      \"description\": \"Non-standard. Matches an element that has focus and focus ring drawing is enabled in the browser.\"\n    },\n    {\n      \"name\": \":-moz-full-screen\",\n      \"browsers\": [\n        \"FF9\"\n      ],\n      \"description\": \"Matches any element that has its fullscreen flag set. Standardized as :fullscreen.\"\n    },\n    {\n      \"name\": \":-moz-last-node\",\n      \"browsers\": [\n        \"FF72\"\n      ],\n      \"description\": \"Non-standard. Represents an element that is the last child node of some other element.\"\n    },\n    {\n      \"name\": \":-moz-loading\",\n      \"browsers\": [\n        \"FF3\"\n      ],\n      \"description\": \"Non-standard. Matches elements, such as images, that haven't started loading yet.\"\n    },\n    {\n      \"name\": \":-moz-only-whitespace\",\n      \"browsers\": [\n        \"FF1\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:-moz-only-whitespace\"\n        }\n      ],\n      \"description\": \"The same as :empty, except that it additionally matches elements that only contain code points affected by whitespace processing. Standardized as :blank.\"\n    },\n    {\n      \"name\": \":-moz-placeholder\",\n      \"browsers\": [\n        \"FF4\"\n      ],\n      \"description\": \"Deprecated. Represents placeholder text in an input field. Use ::-moz-placeholder for Firefox 19+.\"\n    },\n    {\n      \"name\": \":-moz-submit-invalid\",\n      \"browsers\": [\n        \"FF88\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:-moz-submit-invalid\"\n        }\n      ],\n      \"description\": \"Non-standard. Represents any submit button when the contents of the associated form are not valid.\"\n    },\n    {\n      \"name\": \":-moz-suppressed\",\n      \"browsers\": [\n        \"FF3\"\n      ],\n      \"description\": \"Non-standard. Matches elements representing images that have been blocked from loading.\"\n    },\n    {\n      \"name\": \":-moz-ui-invalid\",\n      \"browsers\": [\n        \"FF4\"\n      ],\n      \"description\": \"Non-standard. Represents any validated form element whose value isn't valid \"\n    },\n    {\n      \"name\": \":-moz-ui-valid\",\n      \"browsers\": [\n        \"FF4\"\n      ],\n      \"description\": \"Non-standard. Represents any validated form element whose value is valid \"\n    },\n    {\n      \"name\": \":-moz-user-disabled\",\n      \"browsers\": [\n        \"FF3\"\n      ],\n      \"description\": \"Non-standard. Matches elements representing images that have been disabled due to the user's preferences.\"\n    },\n    {\n      \"name\": \":-moz-window-inactive\",\n      \"browsers\": [\n        \"FF4\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:-moz-window-inactive\"\n        }\n      ],\n      \"description\": \"Non-standard. Matches elements in an inactive window.\"\n    },\n    {\n      \"name\": \":-ms-fullscreen\",\n      \"browsers\": [\n        \"IE11\"\n      ],\n      \"description\": \"Matches any element that has its fullscreen flag set.\"\n    },\n    {\n      \"name\": \":-ms-input-placeholder\",\n      \"browsers\": [\n        \"IE10\"\n      ],\n      \"description\": \"Represents placeholder text in an input field. Note: for Edge use the pseudo-element ::-ms-input-placeholder. Standardized as ::placeholder.\"\n    },\n    {\n      \"name\": \":-ms-keyboard-active\",\n      \"browsers\": [\n        \"IE10\"\n      ],\n      \"description\": \"Windows Store apps only. Applies one or more styles to an element when it has focus and the user presses the space bar.\"\n    },\n    {\n      \"name\": \":-ms-lang()\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"description\": \"Represents an element that is in the language specified. Accepts a comma separated list of language tokens.\"\n    },\n    {\n      \"name\": \":no-button\",\n      \"browsers\": [\n        \"C\",\n        \"S5\"\n      ],\n      \"description\": \"Non-standard. Applies to track pieces. Applies when there is no button at that end of the track.\"\n    },\n    {\n      \"name\": \":not()\",\n      \"browsers\": [\n        \"E\",\n        \"C\",\n        \"FF1\",\n        \"IE9\",\n        \"O9.5\",\n        \"S2\"\n      ],\n      \"description\": \"The negation pseudo-class, :not(X), is a functional notation taking a simple selector (excluding the negation pseudo-class itself) as an argument. It represents an element that is not represented by its argument.\"\n    },\n    {\n      \"name\": \":nth-child()\",\n      \"browsers\": [\n        \"E\",\n        \"C\",\n        \"FF3.5\",\n        \"IE9\",\n        \"O9.5\",\n        \"S3.1\"\n      ],\n      \"description\": \"Represents an element that has an+b-1 siblings before it in the document tree, for any positive integer or zero value of n, and has a parent element.\"\n    },\n    {\n      \"name\": \":nth-last-child()\",\n      \"browsers\": [\n        \"E\",\n        \"C\",\n        \"FF3.5\",\n        \"IE9\",\n        \"O9.5\",\n        \"S3.1\"\n      ],\n      \"description\": \"Represents an element that has an+b-1 siblings after it in the document tree, for any positive integer or zero value of n, and has a parent element.\"\n    },\n    {\n      \"name\": \":nth-last-of-type()\",\n      \"browsers\": [\n        \"E\",\n        \"C\",\n        \"FF3.5\",\n        \"IE9\",\n        \"O9.5\",\n        \"S3.1\"\n      ],\n      \"description\": \"Represents an element that has an+b-1 siblings with the same expanded element name after it in the document tree, for any zero or positive integer value of n, and has a parent element.\"\n    },\n    {\n      \"name\": \":nth-of-type()\",\n      \"browsers\": [\n        \"E\",\n        \"C\",\n        \"FF3.5\",\n        \"IE9\",\n        \"O9.5\",\n        \"S3.1\"\n      ],\n      \"description\": \"Represents an element that has an+b-1 siblings with the same expanded element name before it in the document tree, for any zero or positive integer value of n, and has a parent element.\"\n    },\n    {\n      \"name\": \":only-child\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1.5\",\n        \"S3.1\",\n        \"C2\",\n        \"IE9\",\n        \"O9.5\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:only-child\"\n        }\n      ],\n      \"description\": \"Represents an element that has a parent element and whose parent element has no other element children. Same as :first-child:last-child or :nth-child(1):nth-last-child(1), but with a lower specificity.\"\n    },\n    {\n      \"name\": \":only-of-type\",\n      \"browsers\": [\n        \"E12\",\n        \"FF3.5\",\n        \"S3.1\",\n        \"C1\",\n        \"IE9\",\n        \"O9.5\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:only-of-type\"\n        }\n      ],\n      \"description\": \"Matches every element that is the only child of its type, of its parent. Same as :first-of-type:last-of-type or :nth-of-type(1):nth-last-of-type(1), but with a lower specificity.\"\n    },\n    {\n      \"name\": \":optional\",\n      \"browsers\": [\n        \"E12\",\n        \"FF4\",\n        \"S5\",\n        \"C10\",\n        \"IE10\",\n        \"O10\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:optional\"\n        }\n      ],\n      \"description\": \"A form element is :required or :optional if a value for it is, respectively, required or optional before the form it belongs to is submitted. Elements that are not form elements are neither required nor optional.\"\n    },\n    {\n      \"name\": \":out-of-range\",\n      \"browsers\": [\n        \"E13\",\n        \"FF29\",\n        \"S5.1\",\n        \"C10\",\n        \"O11\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:out-of-range\"\n        }\n      ],\n      \"description\": \"Used in conjunction with the min and max attributes, whether on a range input, a number field, or any other types that accept those attributes.\"\n    },\n    {\n      \"name\": \":past\",\n      \"browsers\": [\n        \"E79\",\n        \"S7\",\n        \"C23\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:past\"\n        }\n      ],\n      \"description\": \"Represents any element that is defined to occur entirely prior to a :current element.\"\n    },\n    {\n      \"name\": \":read-only\",\n      \"browsers\": [\n        \"E13\",\n        \"FF78\",\n        \"S4\",\n        \"C1\",\n        \"O9\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:read-only\"\n        }\n      ],\n      \"description\": \"An element whose contents are not user-alterable is :read-only. However, elements whose contents are user-alterable (such as text input fields) are considered to be in a :read-write state. In typical documents, most elements are :read-only.\"\n    },\n    {\n      \"name\": \":read-write\",\n      \"browsers\": [\n        \"E13\",\n        \"FF78\",\n        \"S4\",\n        \"C1\",\n        \"O9\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:read-write\"\n        }\n      ],\n      \"description\": \"An element whose contents are not user-alterable is :read-only. However, elements whose contents are user-alterable (such as text input fields) are considered to be in a :read-write state. In typical documents, most elements are :read-only.\"\n    },\n    {\n      \"name\": \":required\",\n      \"browsers\": [\n        \"E12\",\n        \"FF4\",\n        \"S5\",\n        \"C10\",\n        \"IE10\",\n        \"O10\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:required\"\n        }\n      ],\n      \"description\": \"A form element is :required or :optional if a value for it is, respectively, required or optional before the form it belongs to is submitted. Elements that are not form elements are neither required nor optional.\"\n    },\n    {\n      \"name\": \":right\",\n      \"browsers\": [\n        \"E12\",\n        \"S5\",\n        \"C6\",\n        \"IE8\",\n        \"O9.2\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:right\"\n        }\n      ],\n      \"description\": \"When printing double-sided documents, the page boxes on left and right pages may be different. This can be expressed through CSS pseudo-classes defined in the  page context.\"\n    },\n    {\n      \"name\": \":root\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE9\",\n        \"O9.5\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:root\"\n        }\n      ],\n      \"description\": \"Represents an element that is the root of the document. In HTML 4, this is always the HTML element.\"\n    },\n    {\n      \"name\": \":scope\",\n      \"browsers\": [\n        \"E79\",\n        \"FF32\",\n        \"S7\",\n        \"C27\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:scope\"\n        }\n      ],\n      \"description\": \"Represents any element that is in the contextual reference element set.\"\n    },\n    {\n      \"name\": \":single-button\",\n      \"browsers\": [\n        \"C\",\n        \"S5\"\n      ],\n      \"description\": \"Non-standard. Applies to buttons and track pieces. Applies when both buttons are displayed separately at either end of the scrollbar.\"\n    },\n    {\n      \"name\": \":start\",\n      \"browsers\": [\n        \"C\",\n        \"S5\"\n      ],\n      \"description\": \"Non-standard. Applies to buttons and track pieces. Indicates whether the object is placed before the thumb.\"\n    },\n    {\n      \"name\": \":target\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1.3\",\n        \"C1\",\n        \"IE9\",\n        \"O9.5\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:target\"\n        }\n      ],\n      \"description\": \"Some URIs refer to a location within a resource. This kind of URI ends with a 'number sign' (#) followed by an anchor identifier (called the fragment identifier).\"\n    },\n    {\n      \"name\": \":valid\",\n      \"browsers\": [\n        \"E12\",\n        \"FF4\",\n        \"S5\",\n        \"C10\",\n        \"IE10\",\n        \"O10\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:valid\"\n        }\n      ],\n      \"description\": \"An element is :valid or :invalid when it is, respectively, valid or invalid with respect to data validity semantics defined by a different specification.\"\n    },\n    {\n      \"name\": \":vertical\",\n      \"browsers\": [\n        \"C\",\n        \"S5\"\n      ],\n      \"description\": \"Non-standard. Applies to any scrollbar pieces that have a vertical orientation.\"\n    },\n    {\n      \"name\": \":visited\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE4\",\n        \"O3.5\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:visited\"\n        }\n      ],\n      \"description\": \"Applies once the link has been visited by the user.\"\n    },\n    {\n      \"name\": \":-webkit-any()\",\n      \"browsers\": [\n        \"C\",\n        \"S5\"\n      ],\n      \"description\": \"Represents an element that is represented by the selector list passed as its argument. Standardized as :matches().\"\n    },\n    {\n      \"name\": \":-webkit-full-screen\",\n      \"browsers\": [\n        \"C\",\n        \"S6\"\n      ],\n      \"description\": \"Matches any element that has its fullscreen flag set. Standardized as :fullscreen.\"\n    },\n    {\n      \"name\": \":window-inactive\",\n      \"browsers\": [\n        \"C\",\n        \"S3\"\n      ],\n      \"description\": \"Non-standard. Applies to all scrollbar pieces. Indicates whether or not the window containing the scrollbar is currently active.\"\n    },\n    {\n      \"name\": \":current\",\n      \"status\": \"experimental\",\n      \"description\": \"The :current CSS pseudo-class selector is a time-dimensional pseudo-class that represents the element, or an ancestor of the element, that is currently being displayed\"\n    },\n    {\n      \"name\": \":blank\",\n      \"status\": \"experimental\",\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:blank\"\n        }\n      ],\n      \"description\": \"The :blank CSS pseudo-class selects empty user input elements (eg. <input> or <textarea>).\"\n    },\n    {\n      \"name\": \":defined\",\n      \"status\": \"experimental\",\n      \"browsers\": [\n        \"E79\",\n        \"FF63\",\n        \"S10\",\n        \"C54\",\n        \"O41\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:defined\"\n        }\n      ],\n      \"description\": \"The :defined CSS pseudo-class represents any element that has been defined. This includes any standard element built in to the browser, and custom elements that have been successfully defined (i.e. with the CustomElementRegistry.define() method).\"\n    },\n    {\n      \"name\": \":dir\",\n      \"browsers\": [\n        \"E120\",\n        \"FF49\",\n        \"S16.4\",\n        \"C120\",\n        \"O106\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:dir\"\n        }\n      ],\n      \"description\": \"The :dir() CSS pseudo-class matches elements based on the directionality of the text contained in them.\"\n    },\n    {\n      \"name\": \":focus-visible\",\n      \"browsers\": [\n        \"E86\",\n        \"FF85\",\n        \"S15.4\",\n        \"C86\",\n        \"O72\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:focus-visible\"\n        }\n      ],\n      \"description\": \"The :focus-visible pseudo-class applies while an element matches the :focus pseudo-class and the UA determines via heuristics that the focus should be made evident on the element.\"\n    },\n    {\n      \"name\": \":focus-within\",\n      \"browsers\": [\n        \"E79\",\n        \"FF52\",\n        \"S10.1\",\n        \"C60\",\n        \"O47\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:focus-within\"\n        }\n      ],\n      \"description\": \"The :focus-within pseudo-class applies to any element for which the :focus pseudo class applies as well as to an element whose descendant in the flat tree (including non-element nodes, such as text nodes) matches the conditions for matching :focus.\"\n    },\n    {\n      \"name\": \":has\",\n      \"status\": \"experimental\",\n      \"browsers\": [\n        \"E105\",\n        \"FF121\",\n        \"S15.4\",\n        \"C105\",\n        \"O91\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:has\"\n        }\n      ],\n      \"description\": \":The :has() CSS pseudo-class represents an element if any of the selectors passed as parameters (relative to the :scope of the given element), match at least one element.\"\n    },\n    {\n      \"name\": \":is\",\n      \"status\": \"experimental\",\n      \"browsers\": [\n        \"E88\",\n        \"FF78\",\n        \"S14\",\n        \"C88\",\n        \"O74\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:is\"\n        }\n      ],\n      \"description\": \"The :is() CSS pseudo-class function takes a selector list as its argument, and selects any element that can be selected by one of the selectors in that list. This is useful for writing large selectors in a more compact form.\"\n    },\n    {\n      \"name\": \":local-link\",\n      \"status\": \"experimental\",\n      \"description\": \"The :local-link CSS pseudo-class represents an link to the same document\"\n    },\n    {\n      \"name\": \":paused\",\n      \"status\": \"experimental\",\n      \"browsers\": [\n        \"S15.4\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:paused\"\n        }\n      ],\n      \"description\": \"The :paused CSS pseudo-class selector is a resource state pseudo-class that will match an audio, video, or similar resource that is capable of being \\u201Cplayed\\u201D or \\u201Cpaused\\u201D, when that element is \\u201Cpaused\\u201D.\"\n    },\n    {\n      \"name\": \":placeholder-shown\",\n      \"status\": \"experimental\",\n      \"browsers\": [\n        \"E79\",\n        \"FF51\",\n        \"S9\",\n        \"C47\",\n        \"IE10\",\n        \"O34\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:placeholder-shown\"\n        }\n      ],\n      \"description\": \"The :placeholder-shown CSS pseudo-class represents any <input> or <textarea> element that is currently displaying placeholder text.\"\n    },\n    {\n      \"name\": \":playing\",\n      \"status\": \"experimental\",\n      \"browsers\": [\n        \"S15.4\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:playing\"\n        }\n      ],\n      \"description\": \"The :playing CSS pseudo-class selector is a resource state pseudo-class that will match an audio, video, or similar resource that is capable of being \\u201Cplayed\\u201D or \\u201Cpaused\\u201D, when that element is \\u201Cplaying\\u201D. \"\n    },\n    {\n      \"name\": \":target-within\",\n      \"status\": \"experimental\",\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:target-within\"\n        }\n      ],\n      \"description\": \"The :target-within CSS pseudo-class represents an element that is a target element or contains an element that is a target. A target element is a unique element with an id matching the URL's fragment.\"\n    },\n    {\n      \"name\": \":user-invalid\",\n      \"status\": \"experimental\",\n      \"browsers\": [\n        \"E119\",\n        \"FF88\",\n        \"S16.5\",\n        \"C119\",\n        \"O105\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:user-invalid\"\n        }\n      ],\n      \"description\": \"The :user-invalid CSS pseudo-class represents any validated form element whose value isn't valid based on their validation constraints, after the user has interacted with it.\"\n    },\n    {\n      \"name\": \":user-valid\",\n      \"status\": \"experimental\",\n      \"browsers\": [\n        \"E119\",\n        \"FF88\",\n        \"S16.5\",\n        \"C119\",\n        \"O105\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:user-valid\"\n        }\n      ],\n      \"description\": \"The :user-valid CSS pseudo-class represents any validated form element whose value validates correctly based on its validation constraints. However, unlike :valid it only matches once the user has interacted with it.\"\n    },\n    {\n      \"name\": \":where\",\n      \"status\": \"experimental\",\n      \"browsers\": [\n        \"E88\",\n        \"FF78\",\n        \"S14\",\n        \"C88\",\n        \"O74\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:where\"\n        }\n      ],\n      \"description\": \"The :where() CSS pseudo-class function takes a selector list as its argument, and selects any element that can be selected by one of the selectors in that list.\"\n    },\n    {\n      \"name\": \":picture-in-picture\",\n      \"status\": \"experimental\",\n      \"browsers\": [\n        \"E110\",\n        \"S13.1\",\n        \"C110\",\n        \"O96\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/:picture-in-picture\"\n        }\n      ],\n      \"description\": \"The :picture-in-picture CSS pseudo-class matches the element which is currently in picture-in-picture mode.\"\n    }\n  ],\n  \"pseudoElements\": [\n    {\n      \"name\": \"::after\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1.5\",\n        \"S4\",\n        \"C1\",\n        \"IE9\",\n        \"O7\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::after\"\n        }\n      ],\n      \"description\": \"Represents a styleable child pseudo-element immediately after the originating element's actual content.\"\n    },\n    {\n      \"name\": \"::backdrop\",\n      \"browsers\": [\n        \"E79\",\n        \"FF47\",\n        \"S15.4\",\n        \"C37\",\n        \"IE11\",\n        \"O24\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::backdrop\"\n        }\n      ],\n      \"description\": \"Used to create a backdrop that hides the underlying document for an element in a top layer (such as an element that is displayed fullscreen).\"\n    },\n    {\n      \"name\": \"::before\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1.5\",\n        \"S4\",\n        \"C1\",\n        \"IE9\",\n        \"O7\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::before\"\n        }\n      ],\n      \"description\": \"Represents a styleable child pseudo-element immediately before the originating element's actual content.\"\n    },\n    {\n      \"name\": \"::content\",\n      \"browsers\": [\n        \"C35\",\n        \"O22\"\n      ],\n      \"description\": \"Deprecated. Matches the distribution list itself, on elements that have one. Use ::slotted for forward compatibility.\"\n    },\n    {\n      \"name\": \"::cue\",\n      \"browsers\": [\n        \"E79\",\n        \"FF55\",\n        \"S7\",\n        \"C26\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::cue\"\n        }\n      ]\n    },\n    {\n      \"name\": \"::cue()\",\n      \"browsers\": [\n        \"C\",\n        \"O16\",\n        \"S6\"\n      ]\n    },\n    {\n      \"name\": \"::cue-region\",\n      \"browsers\": [\n        \"C\",\n        \"O16\",\n        \"S6\"\n      ]\n    },\n    {\n      \"name\": \"::cue-region()\",\n      \"browsers\": [\n        \"C\",\n        \"O16\",\n        \"S6\"\n      ]\n    },\n    {\n      \"name\": \"::first-letter\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE9\",\n        \"O7\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::first-letter\"\n        }\n      ],\n      \"description\": \"Represents the first letter of an element, if it is not preceded by any other content (such as images or inline tables) on its line.\"\n    },\n    {\n      \"name\": \"::first-line\",\n      \"browsers\": [\n        \"E12\",\n        \"FF1\",\n        \"S1\",\n        \"C1\",\n        \"IE9\",\n        \"O7\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::first-line\"\n        }\n      ],\n      \"description\": \"Describes the contents of the first formatted line of its originating element.\"\n    },\n    {\n      \"name\": \"::-moz-focus-inner\",\n      \"browsers\": [\n        \"FF72\"\n      ]\n    },\n    {\n      \"name\": \"::-moz-focus-outer\",\n      \"browsers\": [\n        \"FF4\"\n      ]\n    },\n    {\n      \"name\": \"::-moz-list-bullet\",\n      \"browsers\": [\n        \"FF72\"\n      ],\n      \"description\": \"Used to style the bullet of a list element. Similar to the standardized ::marker.\"\n    },\n    {\n      \"name\": \"::-moz-list-number\",\n      \"browsers\": [\n        \"FF72\"\n      ],\n      \"description\": \"Used to style the numbers of a list element. Similar to the standardized ::marker.\"\n    },\n    {\n      \"name\": \"::-moz-placeholder\",\n      \"browsers\": [\n        \"FF19\"\n      ],\n      \"description\": \"Represents placeholder text in an input field\"\n    },\n    {\n      \"name\": \"::-moz-progress-bar\",\n      \"browsers\": [\n        \"FF72\"\n      ],\n      \"description\": \"Represents the bar portion of a progress bar.\"\n    },\n    {\n      \"name\": \"::-moz-selection\",\n      \"browsers\": [\n        \"FF1\"\n      ],\n      \"description\": \"Represents the portion of a document that has been highlighted by the user.\"\n    },\n    {\n      \"name\": \"::-ms-backdrop\",\n      \"browsers\": [\n        \"IE11\"\n      ],\n      \"description\": \"Used to create a backdrop that hides the underlying document for an element in a top layer (such as an element that is displayed fullscreen).\"\n    },\n    {\n      \"name\": \"::-ms-browse\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"description\": \"Represents the browse button of an input type=file control.\"\n    },\n    {\n      \"name\": \"::-ms-check\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"description\": \"Represents the check of a checkbox or radio button input control.\"\n    },\n    {\n      \"name\": \"::-ms-clear\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"description\": \"Represents the clear button of a text input control\"\n    },\n    {\n      \"name\": \"::-ms-expand\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"description\": \"Represents the drop-down button of a select control.\"\n    },\n    {\n      \"name\": \"::-ms-fill\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"description\": \"Represents the bar portion of a progress bar.\"\n    },\n    {\n      \"name\": \"::-ms-fill-lower\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"description\": \"Represents the portion of the slider track from its smallest value up to the value currently selected by the thumb. In a left-to-right layout, this is the portion of the slider track to the left of the thumb.\"\n    },\n    {\n      \"name\": \"::-ms-fill-upper\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"description\": \"Represents the portion of the slider track from the value currently selected by the thumb up to the slider's largest value. In a left-to-right layout, this is the portion of the slider track to the right of the thumb.\"\n    },\n    {\n      \"name\": \"::-ms-reveal\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"description\": \"Represents the password reveal button of an input type=password control.\"\n    },\n    {\n      \"name\": \"::-ms-thumb\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"description\": \"Represents the portion of range input control (also known as a slider control) that the user drags.\"\n    },\n    {\n      \"name\": \"::-ms-ticks-after\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"description\": \"Represents the tick marks of a slider that begin just after the thumb and continue up to the slider's largest value. In a left-to-right layout, these are the ticks to the right of the thumb.\"\n    },\n    {\n      \"name\": \"::-ms-ticks-before\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"description\": \"Represents the tick marks of a slider that represent its smallest values up to the value currently selected by the thumb. In a left-to-right layout, these are the ticks to the left of the thumb.\"\n    },\n    {\n      \"name\": \"::-ms-tooltip\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"description\": \"Represents the tooltip of a slider (input type=range).\"\n    },\n    {\n      \"name\": \"::-ms-track\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"description\": \"Represents the track of a slider.\"\n    },\n    {\n      \"name\": \"::-ms-value\",\n      \"browsers\": [\n        \"E\",\n        \"IE10\"\n      ],\n      \"description\": \"Represents the content of a text or password input control, or a select control.\"\n    },\n    {\n      \"name\": \"::selection\",\n      \"browsers\": [\n        \"E12\",\n        \"FF62\",\n        \"S1.1\",\n        \"C1\",\n        \"IE9\",\n        \"O9.5\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::selection\"\n        }\n      ],\n      \"description\": \"Represents the portion of a document that has been highlighted by the user.\"\n    },\n    {\n      \"name\": \"::shadow\",\n      \"browsers\": [\n        \"C35\",\n        \"O22\"\n      ],\n      \"description\": \"Matches the shadow root if an element has a shadow tree.\"\n    },\n    {\n      \"name\": \"::-webkit-file-upload-button\",\n      \"browsers\": [\n        \"C\",\n        \"O\",\n        \"S6\"\n      ]\n    },\n    {\n      \"name\": \"::-webkit-inner-spin-button\",\n      \"browsers\": [\n        \"E79\",\n        \"S5\",\n        \"C6\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::-webkit-inner-spin-button\"\n        }\n      ]\n    },\n    {\n      \"name\": \"::-webkit-input-placeholder\",\n      \"browsers\": [\n        \"C\",\n        \"S4\"\n      ]\n    },\n    {\n      \"name\": \"::-webkit-keygen-select\",\n      \"browsers\": [\n        \"C\",\n        \"O\",\n        \"S6\"\n      ]\n    },\n    {\n      \"name\": \"::-webkit-meter-bar\",\n      \"browsers\": [\n        \"E79\",\n        \"S5.1\",\n        \"C12\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::-webkit-meter-bar\"\n        }\n      ]\n    },\n    {\n      \"name\": \"::-webkit-meter-even-less-good-value\",\n      \"browsers\": [\n        \"E79\",\n        \"S5.1\",\n        \"C12\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::-webkit-meter-even-less-good-value\"\n        }\n      ]\n    },\n    {\n      \"name\": \"::-webkit-meter-optimum-value\",\n      \"browsers\": [\n        \"E79\",\n        \"S5.1\",\n        \"C12\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::-webkit-meter-optimum-value\"\n        }\n      ]\n    },\n    {\n      \"name\": \"::-webkit-meter-suboptimum-value\",\n      \"browsers\": [\n        \"E79\",\n        \"S5.1\",\n        \"C12\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::-webkit-meter-suboptimum-value\"\n        }\n      ]\n    },\n    {\n      \"name\": \"::-webkit-outer-spin-button\",\n      \"browsers\": [\n        \"C\",\n        \"O\",\n        \"S6\"\n      ]\n    },\n    {\n      \"name\": \"::-webkit-progress-bar\",\n      \"browsers\": [\n        \"E79\",\n        \"S7\",\n        \"C25\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::-webkit-progress-bar\"\n        }\n      ]\n    },\n    {\n      \"name\": \"::-webkit-progress-inner-element\",\n      \"browsers\": [\n        \"E79\",\n        \"S7\",\n        \"C23\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::-webkit-progress-inner-element\"\n        }\n      ]\n    },\n    {\n      \"name\": \"::-webkit-progress-value\",\n      \"browsers\": [\n        \"E79\",\n        \"S7\",\n        \"C25\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::-webkit-progress-value\"\n        }\n      ]\n    },\n    {\n      \"name\": \"::-webkit-resizer\",\n      \"browsers\": [\n        \"E79\",\n        \"S4\",\n        \"C2\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar\"\n        }\n      ]\n    },\n    {\n      \"name\": \"::-webkit-scrollbar\",\n      \"browsers\": [\n        \"E79\",\n        \"S4\",\n        \"C2\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar\"\n        }\n      ]\n    },\n    {\n      \"name\": \"::-webkit-scrollbar-button\",\n      \"browsers\": [\n        \"E79\",\n        \"S4\",\n        \"C2\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar\"\n        }\n      ]\n    },\n    {\n      \"name\": \"::-webkit-scrollbar-corner\",\n      \"browsers\": [\n        \"E79\",\n        \"S4\",\n        \"C2\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar\"\n        }\n      ]\n    },\n    {\n      \"name\": \"::-webkit-scrollbar-thumb\",\n      \"browsers\": [\n        \"E79\",\n        \"S4\",\n        \"C2\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar\"\n        }\n      ]\n    },\n    {\n      \"name\": \"::-webkit-scrollbar-track\",\n      \"browsers\": [\n        \"E79\",\n        \"S4\",\n        \"C2\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar\"\n        }\n      ]\n    },\n    {\n      \"name\": \"::-webkit-scrollbar-track-piece\",\n      \"browsers\": [\n        \"E79\",\n        \"S4\",\n        \"C2\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar\"\n        }\n      ]\n    },\n    {\n      \"name\": \"::-webkit-search-cancel-button\",\n      \"browsers\": [\n        \"E79\",\n        \"S3\",\n        \"C1\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::-webkit-search-cancel-button\"\n        }\n      ]\n    },\n    {\n      \"name\": \"::-webkit-search-decoration\",\n      \"browsers\": [\n        \"C\",\n        \"S4\"\n      ]\n    },\n    {\n      \"name\": \"::-webkit-search-results-button\",\n      \"browsers\": [\n        \"E79\",\n        \"S3\",\n        \"C1\",\n        \"O15\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::-webkit-search-results-button\"\n        }\n      ]\n    },\n    {\n      \"name\": \"::-webkit-search-results-decoration\",\n      \"browsers\": [\n        \"C\",\n        \"S4\"\n      ]\n    },\n    {\n      \"name\": \"::-webkit-slider-runnable-track\",\n      \"browsers\": [\n        \"E83\",\n        \"C83\",\n        \"O69\"\n      ]\n    },\n    {\n      \"name\": \"::-webkit-slider-thumb\",\n      \"browsers\": [\n        \"E83\",\n        \"C83\",\n        \"O69\"\n      ]\n    },\n    {\n      \"name\": \"::-webkit-textfield-decoration-container\",\n      \"browsers\": [\n        \"C\",\n        \"O\",\n        \"S6\"\n      ]\n    },\n    {\n      \"name\": \"::-webkit-validation-bubble\",\n      \"browsers\": [\n        \"C\",\n        \"O\",\n        \"S6\"\n      ]\n    },\n    {\n      \"name\": \"::-webkit-validation-bubble-arrow\",\n      \"browsers\": [\n        \"C\",\n        \"O\",\n        \"S6\"\n      ]\n    },\n    {\n      \"name\": \"::-webkit-validation-bubble-arrow-clipper\",\n      \"browsers\": [\n        \"C\",\n        \"O\",\n        \"S6\"\n      ]\n    },\n    {\n      \"name\": \"::-webkit-validation-bubble-heading\",\n      \"browsers\": [\n        \"C\",\n        \"O\",\n        \"S6\"\n      ]\n    },\n    {\n      \"name\": \"::-webkit-validation-bubble-message\",\n      \"browsers\": [\n        \"C\",\n        \"O\",\n        \"S6\"\n      ]\n    },\n    {\n      \"name\": \"::-webkit-validation-bubble-text-block\",\n      \"browsers\": [\n        \"C\",\n        \"O\",\n        \"S6\"\n      ]\n    },\n    {\n      \"name\": \"::target-text\",\n      \"status\": \"experimental\",\n      \"browsers\": [\n        \"E89\",\n        \"C89\",\n        \"O75\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::target-text\"\n        }\n      ],\n      \"description\": \"The ::target-text CSS pseudo-element represents the text that has been scrolled to if the browser supports scroll-to-text fragments. It allows authors to choose how to highlight that section of text.\"\n    },\n    {\n      \"name\": \"::-moz-range-progress\",\n      \"status\": \"nonstandard\",\n      \"browsers\": [\n        \"FF22\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::-moz-range-progress\"\n        }\n      ],\n      \"description\": 'The ::-moz-range-progress CSS pseudo-element is a Mozilla extension that represents the lower portion of the track (i.e., groove) in which the indicator slides in an <input> of type=\"range\". This portion corresponds to values lower than the value currently selected by the thumb (i.e., virtual knob).'\n    },\n    {\n      \"name\": \"::-moz-range-thumb\",\n      \"status\": \"nonstandard\",\n      \"browsers\": [\n        \"FF21\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::-moz-range-thumb\"\n        }\n      ],\n      \"description\": `The ::-moz-range-thumb CSS pseudo-element is a Mozilla extension that represents the thumb (i.e., virtual knob) of an <input> of type=\"range\". The user can move the thumb along the input's track to alter its numerical value.`\n    },\n    {\n      \"name\": \"::-moz-range-track\",\n      \"status\": \"nonstandard\",\n      \"browsers\": [\n        \"FF21\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::-moz-range-track\"\n        }\n      ],\n      \"description\": 'The ::-moz-range-track CSS pseudo-element is a Mozilla extension that represents the track (i.e., groove) in which the indicator slides in an <input> of type=\"range\".'\n    },\n    {\n      \"name\": \"::-webkit-progress-inner-value\",\n      \"status\": \"nonstandard\",\n      \"description\": \"The ::-webkit-progress-value CSS pseudo-element represents the filled-in portion of the bar of a <progress> element. It is a child of the ::-webkit-progress-bar pseudo-element.\\n\\nIn order to let ::-webkit-progress-value take effect, -webkit-appearance needs to be set to none on the <progress> element.\"\n    },\n    {\n      \"name\": \"::grammar-error\",\n      \"status\": \"experimental\",\n      \"browsers\": [\n        \"E121\",\n        \"Spreview\",\n        \"C121\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::grammar-error\"\n        }\n      ],\n      \"description\": \"The ::grammar-error CSS pseudo-element represents a text segment which the user agent has flagged as grammatically incorrect.\"\n    },\n    {\n      \"name\": \"::marker\",\n      \"browsers\": [\n        \"E86\",\n        \"FF68\",\n        \"S11.1\",\n        \"C86\",\n        \"O72\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::marker\"\n        }\n      ],\n      \"description\": \"The ::marker CSS pseudo-element selects the marker box of a list item, which typically contains a bullet or number. It works on any element or pseudo-element set to display: list-item, such as the <li> and <summary> elements.\"\n    },\n    {\n      \"name\": \"::part\",\n      \"status\": \"experimental\",\n      \"browsers\": [\n        \"E79\",\n        \"FF72\",\n        \"S13.1\",\n        \"C73\",\n        \"O60\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::part\"\n        }\n      ],\n      \"description\": \"The ::part CSS pseudo-element represents any element within a shadow tree that has a matching part attribute.\"\n    },\n    {\n      \"name\": \"::placeholder\",\n      \"browsers\": [\n        \"E79\",\n        \"FF51\",\n        \"S10.1\",\n        \"C57\",\n        \"O44\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::placeholder\"\n        }\n      ],\n      \"description\": \"The ::placeholder CSS pseudo-element represents the placeholder text of a form element.\"\n    },\n    {\n      \"name\": \"::slotted\",\n      \"browsers\": [\n        \"E79\",\n        \"FF63\",\n        \"S10\",\n        \"C50\",\n        \"O37\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::slotted\"\n        }\n      ],\n      \"description\": \"The :slotted() CSS pseudo-element represents any element that has been placed into a slot inside an HTML template.\"\n    },\n    {\n      \"name\": \"::spelling-error\",\n      \"status\": \"experimental\",\n      \"browsers\": [\n        \"E121\",\n        \"Spreview\",\n        \"C121\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::spelling-error\"\n        }\n      ],\n      \"description\": \"The ::spelling-error CSS pseudo-element represents a text segment which the user agent has flagged as incorrectly spelled.\"\n    },\n    {\n      \"name\": \"::view-transition\",\n      \"status\": \"experimental\",\n      \"browsers\": [\n        \"E109\",\n        \"C109\",\n        \"O95\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::view-transition\"\n        }\n      ],\n      \"description\": \"The ::view-transition CSS pseudo-element represents the root of the view transitions overlay, which contains all view transitions and sits over the top of all other page content.\"\n    },\n    {\n      \"name\": \"::view-transition-group\",\n      \"status\": \"experimental\",\n      \"browsers\": [\n        \"E109\",\n        \"C109\",\n        \"O95\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::view-transition-group\"\n        }\n      ],\n      \"description\": \"The ::view-transition-group CSS pseudo-element represents a single view transition group.\"\n    },\n    {\n      \"name\": \"::view-transition-image-pair\",\n      \"status\": \"experimental\",\n      \"browsers\": [\n        \"E109\",\n        \"C109\",\n        \"O95\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::view-transition-image-pair\"\n        }\n      ],\n      \"description\": `The ::view-transition-image-pair CSS pseudo-element represents a container for a view transition's \"old\" and \"new\" view states \\u2014 before and after the transition.`\n    },\n    {\n      \"name\": \"::view-transition-new\",\n      \"status\": \"experimental\",\n      \"browsers\": [\n        \"E109\",\n        \"C109\",\n        \"O95\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::view-transition-new\"\n        }\n      ],\n      \"description\": 'The ::view-transition-new CSS pseudo-element represents the \"new\" view state of a view transition \\u2014 a live representation of the new view, after the transition.'\n    },\n    {\n      \"name\": \"::view-transition-old\",\n      \"status\": \"experimental\",\n      \"browsers\": [\n        \"E109\",\n        \"C109\",\n        \"O95\"\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/CSS/::view-transition-old\"\n        }\n      ],\n      \"description\": 'The ::view-transition-old CSS pseudo-element represents the \"old\" view state of a view transition \\u2014 a static screenshot of the old view, before the transition.'\n    }\n  ]\n};\n\n// node_modules/vscode-css-languageservice/lib/esm/languageFacts/dataProvider.js\nvar CSSDataProvider = class {\n  /**\n   * Currently, unversioned data uses the V1 implementation\n   * In the future when the provider handles multiple versions of HTML custom data,\n   * use the latest implementation for unversioned data\n   */\n  constructor(data) {\n    this._properties = [];\n    this._atDirectives = [];\n    this._pseudoClasses = [];\n    this._pseudoElements = [];\n    this.addData(data);\n  }\n  provideProperties() {\n    return this._properties;\n  }\n  provideAtDirectives() {\n    return this._atDirectives;\n  }\n  providePseudoClasses() {\n    return this._pseudoClasses;\n  }\n  providePseudoElements() {\n    return this._pseudoElements;\n  }\n  addData(data) {\n    if (Array.isArray(data.properties)) {\n      for (const prop of data.properties) {\n        if (isPropertyData(prop)) {\n          this._properties.push(prop);\n        }\n      }\n    }\n    if (Array.isArray(data.atDirectives)) {\n      for (const prop of data.atDirectives) {\n        if (isAtDirective(prop)) {\n          this._atDirectives.push(prop);\n        }\n      }\n    }\n    if (Array.isArray(data.pseudoClasses)) {\n      for (const prop of data.pseudoClasses) {\n        if (isPseudoClassData(prop)) {\n          this._pseudoClasses.push(prop);\n        }\n      }\n    }\n    if (Array.isArray(data.pseudoElements)) {\n      for (const prop of data.pseudoElements) {\n        if (isPseudoElementData(prop)) {\n          this._pseudoElements.push(prop);\n        }\n      }\n    }\n  }\n};\nfunction isPropertyData(d) {\n  return typeof d.name === \"string\";\n}\nfunction isAtDirective(d) {\n  return typeof d.name === \"string\";\n}\nfunction isPseudoClassData(d) {\n  return typeof d.name === \"string\";\n}\nfunction isPseudoElementData(d) {\n  return typeof d.name === \"string\";\n}\n\n// node_modules/vscode-css-languageservice/lib/esm/languageFacts/dataManager.js\nvar CSSDataManager = class {\n  constructor(options) {\n    this.dataProviders = [];\n    this._propertySet = {};\n    this._atDirectiveSet = {};\n    this._pseudoClassSet = {};\n    this._pseudoElementSet = {};\n    this._properties = [];\n    this._atDirectives = [];\n    this._pseudoClasses = [];\n    this._pseudoElements = [];\n    this.setDataProviders(options?.useDefaultDataProvider !== false, options?.customDataProviders || []);\n  }\n  setDataProviders(builtIn, providers) {\n    this.dataProviders = [];\n    if (builtIn) {\n      this.dataProviders.push(new CSSDataProvider(cssData));\n    }\n    this.dataProviders.push(...providers);\n    this.collectData();\n  }\n  /**\n   * Collect all data  & handle duplicates\n   */\n  collectData() {\n    this._propertySet = {};\n    this._atDirectiveSet = {};\n    this._pseudoClassSet = {};\n    this._pseudoElementSet = {};\n    this.dataProviders.forEach((provider) => {\n      provider.provideProperties().forEach((p) => {\n        if (!this._propertySet[p.name]) {\n          this._propertySet[p.name] = p;\n        }\n      });\n      provider.provideAtDirectives().forEach((p) => {\n        if (!this._atDirectiveSet[p.name]) {\n          this._atDirectiveSet[p.name] = p;\n        }\n      });\n      provider.providePseudoClasses().forEach((p) => {\n        if (!this._pseudoClassSet[p.name]) {\n          this._pseudoClassSet[p.name] = p;\n        }\n      });\n      provider.providePseudoElements().forEach((p) => {\n        if (!this._pseudoElementSet[p.name]) {\n          this._pseudoElementSet[p.name] = p;\n        }\n      });\n    });\n    this._properties = values(this._propertySet);\n    this._atDirectives = values(this._atDirectiveSet);\n    this._pseudoClasses = values(this._pseudoClassSet);\n    this._pseudoElements = values(this._pseudoElementSet);\n  }\n  getProperty(name) {\n    return this._propertySet[name];\n  }\n  getAtDirective(name) {\n    return this._atDirectiveSet[name];\n  }\n  getPseudoClass(name) {\n    return this._pseudoClassSet[name];\n  }\n  getPseudoElement(name) {\n    return this._pseudoElementSet[name];\n  }\n  getProperties() {\n    return this._properties;\n  }\n  getAtDirectives() {\n    return this._atDirectives;\n  }\n  getPseudoClasses() {\n    return this._pseudoClasses;\n  }\n  getPseudoElements() {\n    return this._pseudoElements;\n  }\n  isKnownProperty(name) {\n    return name.toLowerCase() in this._propertySet;\n  }\n  isStandardProperty(name) {\n    return this.isKnownProperty(name) && (!this._propertySet[name.toLowerCase()].status || this._propertySet[name.toLowerCase()].status === \"standard\");\n  }\n};\n\n// node_modules/vscode-css-languageservice/lib/esm/services/cssSelectionRange.js\nfunction getSelectionRanges(document, positions, stylesheet) {\n  function getSelectionRange(position) {\n    const applicableRanges = getApplicableRanges(position);\n    let current = void 0;\n    for (let index = applicableRanges.length - 1; index >= 0; index--) {\n      current = SelectionRange.create(Range.create(document.positionAt(applicableRanges[index][0]), document.positionAt(applicableRanges[index][1])), current);\n    }\n    if (!current) {\n      current = SelectionRange.create(Range.create(position, position));\n    }\n    return current;\n  }\n  return positions.map(getSelectionRange);\n  function getApplicableRanges(position) {\n    const offset = document.offsetAt(position);\n    let currNode = stylesheet.findChildAtOffset(offset, true);\n    if (!currNode) {\n      return [];\n    }\n    const result = [];\n    while (currNode) {\n      if (currNode.parent && currNode.offset === currNode.parent.offset && currNode.end === currNode.parent.end) {\n        currNode = currNode.parent;\n        continue;\n      }\n      if (currNode.type === NodeType.Declarations) {\n        if (offset > currNode.offset && offset < currNode.end) {\n          result.push([currNode.offset + 1, currNode.end - 1]);\n        }\n      }\n      result.push([currNode.offset, currNode.end]);\n      currNode = currNode.parent;\n    }\n    return result;\n  }\n}\n\n// node_modules/vscode-css-languageservice/lib/esm/services/scssNavigation.js\nvar SCSSNavigation = class extends CSSNavigation {\n  constructor(fileSystemProvider) {\n    super(fileSystemProvider, true);\n  }\n  isRawStringDocumentLinkNode(node) {\n    return super.isRawStringDocumentLinkNode(node) || node.type === NodeType.Use || node.type === NodeType.Forward;\n  }\n  async mapReference(target, isRawLink) {\n    if (this.fileSystemProvider && target && isRawLink) {\n      const pathVariations = toPathVariations(target);\n      for (const variation of pathVariations) {\n        if (await this.fileExists(variation)) {\n          return variation;\n        }\n      }\n    }\n    return target;\n  }\n  async resolveReference(target, documentUri, documentContext, isRawLink = false) {\n    if (startsWith(target, \"sass:\")) {\n      return void 0;\n    }\n    return super.resolveReference(target, documentUri, documentContext, isRawLink);\n  }\n};\nfunction toPathVariations(target) {\n  if (target.endsWith(\".css\")) {\n    return [target];\n  }\n  if (target.endsWith(\"/\")) {\n    return [target + \"index.scss\", target + \"_index.scss\"];\n  }\n  const targetUri = URI2.parse(target.replace(/\\.scss$/, \"\"));\n  const basename = Utils.basename(targetUri);\n  const dirname2 = Utils.dirname(targetUri);\n  if (basename.startsWith(\"_\")) {\n    return [Utils.joinPath(dirname2, basename + \".scss\").toString(true)];\n  }\n  return [\n    Utils.joinPath(dirname2, basename + \".scss\").toString(true),\n    Utils.joinPath(dirname2, \"_\" + basename + \".scss\").toString(true),\n    target + \"/index.scss\",\n    target + \"/_index.scss\",\n    Utils.joinPath(dirname2, basename + \".css\").toString(true)\n  ];\n}\n\n// node_modules/vscode-css-languageservice/lib/esm/cssLanguageService.js\nfunction newCSSDataProvider(data) {\n  return new CSSDataProvider(data);\n}\nfunction createFacade(parser, completion, hover, navigation, codeActions, validation, cssDataManager) {\n  return {\n    configure: (settings) => {\n      validation.configure(settings);\n      completion.configure(settings?.completion);\n      hover.configure(settings?.hover);\n      navigation.configure(settings?.importAliases);\n    },\n    setDataProviders: cssDataManager.setDataProviders.bind(cssDataManager),\n    doValidation: validation.doValidation.bind(validation),\n    parseStylesheet: parser.parseStylesheet.bind(parser),\n    doComplete: completion.doComplete.bind(completion),\n    doComplete2: completion.doComplete2.bind(completion),\n    setCompletionParticipants: completion.setCompletionParticipants.bind(completion),\n    doHover: hover.doHover.bind(hover),\n    format: format2,\n    findDefinition: navigation.findDefinition.bind(navigation),\n    findReferences: navigation.findReferences.bind(navigation),\n    findDocumentHighlights: navigation.findDocumentHighlights.bind(navigation),\n    findDocumentLinks: navigation.findDocumentLinks.bind(navigation),\n    findDocumentLinks2: navigation.findDocumentLinks2.bind(navigation),\n    findDocumentSymbols: navigation.findSymbolInformations.bind(navigation),\n    findDocumentSymbols2: navigation.findDocumentSymbols.bind(navigation),\n    doCodeActions: codeActions.doCodeActions.bind(codeActions),\n    doCodeActions2: codeActions.doCodeActions2.bind(codeActions),\n    findDocumentColors: navigation.findDocumentColors.bind(navigation),\n    getColorPresentations: navigation.getColorPresentations.bind(navigation),\n    prepareRename: navigation.prepareRename.bind(navigation),\n    doRename: navigation.doRename.bind(navigation),\n    getFoldingRanges,\n    getSelectionRanges\n  };\n}\nvar defaultLanguageServiceOptions = {};\nfunction getCSSLanguageService(options = defaultLanguageServiceOptions) {\n  const cssDataManager = new CSSDataManager(options);\n  return createFacade(new Parser(), new CSSCompletion(null, options, cssDataManager), new CSSHover(options && options.clientCapabilities, cssDataManager), new CSSNavigation(options && options.fileSystemProvider, false), new CSSCodeActions(cssDataManager), new CSSValidation(cssDataManager), cssDataManager);\n}\nfunction getSCSSLanguageService(options = defaultLanguageServiceOptions) {\n  const cssDataManager = new CSSDataManager(options);\n  return createFacade(new SCSSParser(), new SCSSCompletion(options, cssDataManager), new CSSHover(options && options.clientCapabilities, cssDataManager), new SCSSNavigation(options && options.fileSystemProvider), new CSSCodeActions(cssDataManager), new CSSValidation(cssDataManager), cssDataManager);\n}\nfunction getLESSLanguageService(options = defaultLanguageServiceOptions) {\n  const cssDataManager = new CSSDataManager(options);\n  return createFacade(new LESSParser(), new LESSCompletion(options, cssDataManager), new CSSHover(options && options.clientCapabilities, cssDataManager), new CSSNavigation(options && options.fileSystemProvider, true), new CSSCodeActions(cssDataManager), new CSSValidation(cssDataManager), cssDataManager);\n}\n\n// src/language/css/cssWorker.ts\nvar CSSWorker = class {\n  constructor(ctx, createData) {\n    this._ctx = ctx;\n    this._languageSettings = createData.options;\n    this._languageId = createData.languageId;\n    const data = createData.options.data;\n    const useDefaultDataProvider = data?.useDefaultDataProvider;\n    const customDataProviders = [];\n    if (data?.dataProviders) {\n      for (const id in data.dataProviders) {\n        customDataProviders.push(newCSSDataProvider(data.dataProviders[id]));\n      }\n    }\n    const lsOptions = {\n      customDataProviders,\n      useDefaultDataProvider\n    };\n    switch (this._languageId) {\n      case \"css\":\n        this._languageService = getCSSLanguageService(lsOptions);\n        break;\n      case \"less\":\n        this._languageService = getLESSLanguageService(lsOptions);\n        break;\n      case \"scss\":\n        this._languageService = getSCSSLanguageService(lsOptions);\n        break;\n      default:\n        throw new Error(\"Invalid language id: \" + this._languageId);\n    }\n    this._languageService.configure(this._languageSettings);\n  }\n  // --- language service host ---------------\n  async doValidation(uri) {\n    const document = this._getTextDocument(uri);\n    if (document) {\n      const stylesheet = this._languageService.parseStylesheet(document);\n      const diagnostics = this._languageService.doValidation(document, stylesheet);\n      return Promise.resolve(diagnostics);\n    }\n    return Promise.resolve([]);\n  }\n  async doComplete(uri, position) {\n    const document = this._getTextDocument(uri);\n    if (!document) {\n      return null;\n    }\n    const stylesheet = this._languageService.parseStylesheet(document);\n    const completions = this._languageService.doComplete(document, position, stylesheet);\n    return Promise.resolve(completions);\n  }\n  async doHover(uri, position) {\n    const document = this._getTextDocument(uri);\n    if (!document) {\n      return null;\n    }\n    const stylesheet = this._languageService.parseStylesheet(document);\n    const hover = this._languageService.doHover(document, position, stylesheet);\n    return Promise.resolve(hover);\n  }\n  async findDefinition(uri, position) {\n    const document = this._getTextDocument(uri);\n    if (!document) {\n      return null;\n    }\n    const stylesheet = this._languageService.parseStylesheet(document);\n    const definition = this._languageService.findDefinition(document, position, stylesheet);\n    return Promise.resolve(definition);\n  }\n  async findReferences(uri, position) {\n    const document = this._getTextDocument(uri);\n    if (!document) {\n      return [];\n    }\n    const stylesheet = this._languageService.parseStylesheet(document);\n    const references = this._languageService.findReferences(document, position, stylesheet);\n    return Promise.resolve(references);\n  }\n  async findDocumentHighlights(uri, position) {\n    const document = this._getTextDocument(uri);\n    if (!document) {\n      return [];\n    }\n    const stylesheet = this._languageService.parseStylesheet(document);\n    const highlights = this._languageService.findDocumentHighlights(document, position, stylesheet);\n    return Promise.resolve(highlights);\n  }\n  async findDocumentSymbols(uri) {\n    const document = this._getTextDocument(uri);\n    if (!document) {\n      return [];\n    }\n    const stylesheet = this._languageService.parseStylesheet(document);\n    const symbols = this._languageService.findDocumentSymbols(document, stylesheet);\n    return Promise.resolve(symbols);\n  }\n  async doCodeActions(uri, range, context) {\n    const document = this._getTextDocument(uri);\n    if (!document) {\n      return [];\n    }\n    const stylesheet = this._languageService.parseStylesheet(document);\n    const actions = this._languageService.doCodeActions(document, range, context, stylesheet);\n    return Promise.resolve(actions);\n  }\n  async findDocumentColors(uri) {\n    const document = this._getTextDocument(uri);\n    if (!document) {\n      return [];\n    }\n    const stylesheet = this._languageService.parseStylesheet(document);\n    const colorSymbols = this._languageService.findDocumentColors(document, stylesheet);\n    return Promise.resolve(colorSymbols);\n  }\n  async getColorPresentations(uri, color, range) {\n    const document = this._getTextDocument(uri);\n    if (!document) {\n      return [];\n    }\n    const stylesheet = this._languageService.parseStylesheet(document);\n    const colorPresentations = this._languageService.getColorPresentations(\n      document,\n      stylesheet,\n      color,\n      range\n    );\n    return Promise.resolve(colorPresentations);\n  }\n  async getFoldingRanges(uri, context) {\n    const document = this._getTextDocument(uri);\n    if (!document) {\n      return [];\n    }\n    const ranges = this._languageService.getFoldingRanges(document, context);\n    return Promise.resolve(ranges);\n  }\n  async getSelectionRanges(uri, positions) {\n    const document = this._getTextDocument(uri);\n    if (!document) {\n      return [];\n    }\n    const stylesheet = this._languageService.parseStylesheet(document);\n    const ranges = this._languageService.getSelectionRanges(document, positions, stylesheet);\n    return Promise.resolve(ranges);\n  }\n  async doRename(uri, position, newName) {\n    const document = this._getTextDocument(uri);\n    if (!document) {\n      return null;\n    }\n    const stylesheet = this._languageService.parseStylesheet(document);\n    const renames = this._languageService.doRename(document, position, newName, stylesheet);\n    return Promise.resolve(renames);\n  }\n  async format(uri, range, options) {\n    const document = this._getTextDocument(uri);\n    if (!document) {\n      return [];\n    }\n    const settings = { ...this._languageSettings.format, ...options };\n    const textEdits = this._languageService.format(document, range, settings);\n    return Promise.resolve(textEdits);\n  }\n  _getTextDocument(uri) {\n    const models = this._ctx.getMirrorModels();\n    for (const model of models) {\n      if (model.uri.toString() === uri) {\n        return TextDocument2.create(\n          uri,\n          this._languageId,\n          model.version,\n          model.getValue()\n        );\n      }\n    }\n    return null;\n  }\n};\n\n// src/language/css/css.worker.ts\nself.onmessage = () => {\n  worker.initialize((ctx, createData) => {\n    return new CSSWorker(ctx, createData);\n  });\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/language/css/cssMode.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\n\n// src/fillers/monaco-editor-core.ts\nvar monaco_editor_core_exports = {};\n__reExport(monaco_editor_core_exports, monaco_editor_core_star);\nimport * as monaco_editor_core_star from \"../../editor/editor.api.js\";\n\n// src/language/css/workerManager.ts\nvar STOP_WHEN_IDLE_FOR = 2 * 60 * 1e3;\nvar WorkerManager = class {\n  constructor(defaults) {\n    this._defaults = defaults;\n    this._worker = null;\n    this._client = null;\n    this._idleCheckInterval = window.setInterval(() => this._checkIfIdle(), 30 * 1e3);\n    this._lastUsedTime = 0;\n    this._configChangeListener = this._defaults.onDidChange(() => this._stopWorker());\n  }\n  _stopWorker() {\n    if (this._worker) {\n      this._worker.dispose();\n      this._worker = null;\n    }\n    this._client = null;\n  }\n  dispose() {\n    clearInterval(this._idleCheckInterval);\n    this._configChangeListener.dispose();\n    this._stopWorker();\n  }\n  _checkIfIdle() {\n    if (!this._worker) {\n      return;\n    }\n    let timePassedSinceLastUsed = Date.now() - this._lastUsedTime;\n    if (timePassedSinceLastUsed > STOP_WHEN_IDLE_FOR) {\n      this._stopWorker();\n    }\n  }\n  _getClient() {\n    this._lastUsedTime = Date.now();\n    if (!this._client) {\n      this._worker = monaco_editor_core_exports.editor.createWebWorker({\n        // module that exports the create() method and returns a `CSSWorker` instance\n        moduleId: \"vs/language/css/cssWorker\",\n        label: this._defaults.languageId,\n        // passed in to the create() method\n        createData: {\n          options: this._defaults.options,\n          languageId: this._defaults.languageId\n        }\n      });\n      this._client = this._worker.getProxy();\n    }\n    return this._client;\n  }\n  getLanguageServiceWorker(...resources) {\n    let _client;\n    return this._getClient().then((client) => {\n      _client = client;\n    }).then((_) => {\n      if (this._worker) {\n        return this._worker.withSyncedResources(resources);\n      }\n    }).then((_) => _client);\n  }\n};\n\n// node_modules/vscode-languageserver-types/lib/esm/main.js\nvar DocumentUri;\n(function(DocumentUri2) {\n  function is(value) {\n    return typeof value === \"string\";\n  }\n  DocumentUri2.is = is;\n})(DocumentUri || (DocumentUri = {}));\nvar URI;\n(function(URI2) {\n  function is(value) {\n    return typeof value === \"string\";\n  }\n  URI2.is = is;\n})(URI || (URI = {}));\nvar integer;\n(function(integer2) {\n  integer2.MIN_VALUE = -2147483648;\n  integer2.MAX_VALUE = 2147483647;\n  function is(value) {\n    return typeof value === \"number\" && integer2.MIN_VALUE <= value && value <= integer2.MAX_VALUE;\n  }\n  integer2.is = is;\n})(integer || (integer = {}));\nvar uinteger;\n(function(uinteger2) {\n  uinteger2.MIN_VALUE = 0;\n  uinteger2.MAX_VALUE = 2147483647;\n  function is(value) {\n    return typeof value === \"number\" && uinteger2.MIN_VALUE <= value && value <= uinteger2.MAX_VALUE;\n  }\n  uinteger2.is = is;\n})(uinteger || (uinteger = {}));\nvar Position;\n(function(Position3) {\n  function create(line, character) {\n    if (line === Number.MAX_VALUE) {\n      line = uinteger.MAX_VALUE;\n    }\n    if (character === Number.MAX_VALUE) {\n      character = uinteger.MAX_VALUE;\n    }\n    return { line, character };\n  }\n  Position3.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.objectLiteral(candidate) && Is.uinteger(candidate.line) && Is.uinteger(candidate.character);\n  }\n  Position3.is = is;\n})(Position || (Position = {}));\nvar Range;\n(function(Range3) {\n  function create(one, two, three, four) {\n    if (Is.uinteger(one) && Is.uinteger(two) && Is.uinteger(three) && Is.uinteger(four)) {\n      return { start: Position.create(one, two), end: Position.create(three, four) };\n    } else if (Position.is(one) && Position.is(two)) {\n      return { start: one, end: two };\n    } else {\n      throw new Error(`Range#create called with invalid arguments[${one}, ${two}, ${three}, ${four}]`);\n    }\n  }\n  Range3.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.objectLiteral(candidate) && Position.is(candidate.start) && Position.is(candidate.end);\n  }\n  Range3.is = is;\n})(Range || (Range = {}));\nvar Location;\n(function(Location2) {\n  function create(uri, range) {\n    return { uri, range };\n  }\n  Location2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.objectLiteral(candidate) && Range.is(candidate.range) && (Is.string(candidate.uri) || Is.undefined(candidate.uri));\n  }\n  Location2.is = is;\n})(Location || (Location = {}));\nvar LocationLink;\n(function(LocationLink2) {\n  function create(targetUri, targetRange, targetSelectionRange, originSelectionRange) {\n    return { targetUri, targetRange, targetSelectionRange, originSelectionRange };\n  }\n  LocationLink2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.objectLiteral(candidate) && Range.is(candidate.targetRange) && Is.string(candidate.targetUri) && Range.is(candidate.targetSelectionRange) && (Range.is(candidate.originSelectionRange) || Is.undefined(candidate.originSelectionRange));\n  }\n  LocationLink2.is = is;\n})(LocationLink || (LocationLink = {}));\nvar Color;\n(function(Color2) {\n  function create(red, green, blue, alpha) {\n    return {\n      red,\n      green,\n      blue,\n      alpha\n    };\n  }\n  Color2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.numberRange(candidate.red, 0, 1) && Is.numberRange(candidate.green, 0, 1) && Is.numberRange(candidate.blue, 0, 1) && Is.numberRange(candidate.alpha, 0, 1);\n  }\n  Color2.is = is;\n})(Color || (Color = {}));\nvar ColorInformation;\n(function(ColorInformation2) {\n  function create(range, color) {\n    return {\n      range,\n      color\n    };\n  }\n  ColorInformation2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Range.is(candidate.range) && Color.is(candidate.color);\n  }\n  ColorInformation2.is = is;\n})(ColorInformation || (ColorInformation = {}));\nvar ColorPresentation;\n(function(ColorPresentation2) {\n  function create(label, textEdit, additionalTextEdits) {\n    return {\n      label,\n      textEdit,\n      additionalTextEdits\n    };\n  }\n  ColorPresentation2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.string(candidate.label) && (Is.undefined(candidate.textEdit) || TextEdit.is(candidate)) && (Is.undefined(candidate.additionalTextEdits) || Is.typedArray(candidate.additionalTextEdits, TextEdit.is));\n  }\n  ColorPresentation2.is = is;\n})(ColorPresentation || (ColorPresentation = {}));\nvar FoldingRangeKind;\n(function(FoldingRangeKind2) {\n  FoldingRangeKind2.Comment = \"comment\";\n  FoldingRangeKind2.Imports = \"imports\";\n  FoldingRangeKind2.Region = \"region\";\n})(FoldingRangeKind || (FoldingRangeKind = {}));\nvar FoldingRange;\n(function(FoldingRange2) {\n  function create(startLine, endLine, startCharacter, endCharacter, kind, collapsedText) {\n    const result = {\n      startLine,\n      endLine\n    };\n    if (Is.defined(startCharacter)) {\n      result.startCharacter = startCharacter;\n    }\n    if (Is.defined(endCharacter)) {\n      result.endCharacter = endCharacter;\n    }\n    if (Is.defined(kind)) {\n      result.kind = kind;\n    }\n    if (Is.defined(collapsedText)) {\n      result.collapsedText = collapsedText;\n    }\n    return result;\n  }\n  FoldingRange2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.uinteger(candidate.startLine) && Is.uinteger(candidate.startLine) && (Is.undefined(candidate.startCharacter) || Is.uinteger(candidate.startCharacter)) && (Is.undefined(candidate.endCharacter) || Is.uinteger(candidate.endCharacter)) && (Is.undefined(candidate.kind) || Is.string(candidate.kind));\n  }\n  FoldingRange2.is = is;\n})(FoldingRange || (FoldingRange = {}));\nvar DiagnosticRelatedInformation;\n(function(DiagnosticRelatedInformation2) {\n  function create(location, message) {\n    return {\n      location,\n      message\n    };\n  }\n  DiagnosticRelatedInformation2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Location.is(candidate.location) && Is.string(candidate.message);\n  }\n  DiagnosticRelatedInformation2.is = is;\n})(DiagnosticRelatedInformation || (DiagnosticRelatedInformation = {}));\nvar DiagnosticSeverity;\n(function(DiagnosticSeverity2) {\n  DiagnosticSeverity2.Error = 1;\n  DiagnosticSeverity2.Warning = 2;\n  DiagnosticSeverity2.Information = 3;\n  DiagnosticSeverity2.Hint = 4;\n})(DiagnosticSeverity || (DiagnosticSeverity = {}));\nvar DiagnosticTag;\n(function(DiagnosticTag2) {\n  DiagnosticTag2.Unnecessary = 1;\n  DiagnosticTag2.Deprecated = 2;\n})(DiagnosticTag || (DiagnosticTag = {}));\nvar CodeDescription;\n(function(CodeDescription2) {\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.string(candidate.href);\n  }\n  CodeDescription2.is = is;\n})(CodeDescription || (CodeDescription = {}));\nvar Diagnostic;\n(function(Diagnostic2) {\n  function create(range, message, severity, code, source, relatedInformation) {\n    let result = { range, message };\n    if (Is.defined(severity)) {\n      result.severity = severity;\n    }\n    if (Is.defined(code)) {\n      result.code = code;\n    }\n    if (Is.defined(source)) {\n      result.source = source;\n    }\n    if (Is.defined(relatedInformation)) {\n      result.relatedInformation = relatedInformation;\n    }\n    return result;\n  }\n  Diagnostic2.create = create;\n  function is(value) {\n    var _a;\n    let candidate = value;\n    return Is.defined(candidate) && Range.is(candidate.range) && Is.string(candidate.message) && (Is.number(candidate.severity) || Is.undefined(candidate.severity)) && (Is.integer(candidate.code) || Is.string(candidate.code) || Is.undefined(candidate.code)) && (Is.undefined(candidate.codeDescription) || Is.string((_a = candidate.codeDescription) === null || _a === void 0 ? void 0 : _a.href)) && (Is.string(candidate.source) || Is.undefined(candidate.source)) && (Is.undefined(candidate.relatedInformation) || Is.typedArray(candidate.relatedInformation, DiagnosticRelatedInformation.is));\n  }\n  Diagnostic2.is = is;\n})(Diagnostic || (Diagnostic = {}));\nvar Command;\n(function(Command2) {\n  function create(title, command, ...args) {\n    let result = { title, command };\n    if (Is.defined(args) && args.length > 0) {\n      result.arguments = args;\n    }\n    return result;\n  }\n  Command2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.title) && Is.string(candidate.command);\n  }\n  Command2.is = is;\n})(Command || (Command = {}));\nvar TextEdit;\n(function(TextEdit2) {\n  function replace(range, newText) {\n    return { range, newText };\n  }\n  TextEdit2.replace = replace;\n  function insert(position, newText) {\n    return { range: { start: position, end: position }, newText };\n  }\n  TextEdit2.insert = insert;\n  function del(range) {\n    return { range, newText: \"\" };\n  }\n  TextEdit2.del = del;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.string(candidate.newText) && Range.is(candidate.range);\n  }\n  TextEdit2.is = is;\n})(TextEdit || (TextEdit = {}));\nvar ChangeAnnotation;\n(function(ChangeAnnotation2) {\n  function create(label, needsConfirmation, description) {\n    const result = { label };\n    if (needsConfirmation !== void 0) {\n      result.needsConfirmation = needsConfirmation;\n    }\n    if (description !== void 0) {\n      result.description = description;\n    }\n    return result;\n  }\n  ChangeAnnotation2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.string(candidate.label) && (Is.boolean(candidate.needsConfirmation) || candidate.needsConfirmation === void 0) && (Is.string(candidate.description) || candidate.description === void 0);\n  }\n  ChangeAnnotation2.is = is;\n})(ChangeAnnotation || (ChangeAnnotation = {}));\nvar ChangeAnnotationIdentifier;\n(function(ChangeAnnotationIdentifier2) {\n  function is(value) {\n    const candidate = value;\n    return Is.string(candidate);\n  }\n  ChangeAnnotationIdentifier2.is = is;\n})(ChangeAnnotationIdentifier || (ChangeAnnotationIdentifier = {}));\nvar AnnotatedTextEdit;\n(function(AnnotatedTextEdit2) {\n  function replace(range, newText, annotation) {\n    return { range, newText, annotationId: annotation };\n  }\n  AnnotatedTextEdit2.replace = replace;\n  function insert(position, newText, annotation) {\n    return { range: { start: position, end: position }, newText, annotationId: annotation };\n  }\n  AnnotatedTextEdit2.insert = insert;\n  function del(range, annotation) {\n    return { range, newText: \"\", annotationId: annotation };\n  }\n  AnnotatedTextEdit2.del = del;\n  function is(value) {\n    const candidate = value;\n    return TextEdit.is(candidate) && (ChangeAnnotation.is(candidate.annotationId) || ChangeAnnotationIdentifier.is(candidate.annotationId));\n  }\n  AnnotatedTextEdit2.is = is;\n})(AnnotatedTextEdit || (AnnotatedTextEdit = {}));\nvar TextDocumentEdit;\n(function(TextDocumentEdit2) {\n  function create(textDocument, edits) {\n    return { textDocument, edits };\n  }\n  TextDocumentEdit2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && OptionalVersionedTextDocumentIdentifier.is(candidate.textDocument) && Array.isArray(candidate.edits);\n  }\n  TextDocumentEdit2.is = is;\n})(TextDocumentEdit || (TextDocumentEdit = {}));\nvar CreateFile;\n(function(CreateFile2) {\n  function create(uri, options, annotation) {\n    let result = {\n      kind: \"create\",\n      uri\n    };\n    if (options !== void 0 && (options.overwrite !== void 0 || options.ignoreIfExists !== void 0)) {\n      result.options = options;\n    }\n    if (annotation !== void 0) {\n      result.annotationId = annotation;\n    }\n    return result;\n  }\n  CreateFile2.create = create;\n  function is(value) {\n    let candidate = value;\n    return candidate && candidate.kind === \"create\" && Is.string(candidate.uri) && (candidate.options === void 0 || (candidate.options.overwrite === void 0 || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === void 0 || Is.boolean(candidate.options.ignoreIfExists))) && (candidate.annotationId === void 0 || ChangeAnnotationIdentifier.is(candidate.annotationId));\n  }\n  CreateFile2.is = is;\n})(CreateFile || (CreateFile = {}));\nvar RenameFile;\n(function(RenameFile2) {\n  function create(oldUri, newUri, options, annotation) {\n    let result = {\n      kind: \"rename\",\n      oldUri,\n      newUri\n    };\n    if (options !== void 0 && (options.overwrite !== void 0 || options.ignoreIfExists !== void 0)) {\n      result.options = options;\n    }\n    if (annotation !== void 0) {\n      result.annotationId = annotation;\n    }\n    return result;\n  }\n  RenameFile2.create = create;\n  function is(value) {\n    let candidate = value;\n    return candidate && candidate.kind === \"rename\" && Is.string(candidate.oldUri) && Is.string(candidate.newUri) && (candidate.options === void 0 || (candidate.options.overwrite === void 0 || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === void 0 || Is.boolean(candidate.options.ignoreIfExists))) && (candidate.annotationId === void 0 || ChangeAnnotationIdentifier.is(candidate.annotationId));\n  }\n  RenameFile2.is = is;\n})(RenameFile || (RenameFile = {}));\nvar DeleteFile;\n(function(DeleteFile2) {\n  function create(uri, options, annotation) {\n    let result = {\n      kind: \"delete\",\n      uri\n    };\n    if (options !== void 0 && (options.recursive !== void 0 || options.ignoreIfNotExists !== void 0)) {\n      result.options = options;\n    }\n    if (annotation !== void 0) {\n      result.annotationId = annotation;\n    }\n    return result;\n  }\n  DeleteFile2.create = create;\n  function is(value) {\n    let candidate = value;\n    return candidate && candidate.kind === \"delete\" && Is.string(candidate.uri) && (candidate.options === void 0 || (candidate.options.recursive === void 0 || Is.boolean(candidate.options.recursive)) && (candidate.options.ignoreIfNotExists === void 0 || Is.boolean(candidate.options.ignoreIfNotExists))) && (candidate.annotationId === void 0 || ChangeAnnotationIdentifier.is(candidate.annotationId));\n  }\n  DeleteFile2.is = is;\n})(DeleteFile || (DeleteFile = {}));\nvar WorkspaceEdit;\n(function(WorkspaceEdit2) {\n  function is(value) {\n    let candidate = value;\n    return candidate && (candidate.changes !== void 0 || candidate.documentChanges !== void 0) && (candidate.documentChanges === void 0 || candidate.documentChanges.every((change) => {\n      if (Is.string(change.kind)) {\n        return CreateFile.is(change) || RenameFile.is(change) || DeleteFile.is(change);\n      } else {\n        return TextDocumentEdit.is(change);\n      }\n    }));\n  }\n  WorkspaceEdit2.is = is;\n})(WorkspaceEdit || (WorkspaceEdit = {}));\nvar TextDocumentIdentifier;\n(function(TextDocumentIdentifier2) {\n  function create(uri) {\n    return { uri };\n  }\n  TextDocumentIdentifier2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.uri);\n  }\n  TextDocumentIdentifier2.is = is;\n})(TextDocumentIdentifier || (TextDocumentIdentifier = {}));\nvar VersionedTextDocumentIdentifier;\n(function(VersionedTextDocumentIdentifier2) {\n  function create(uri, version) {\n    return { uri, version };\n  }\n  VersionedTextDocumentIdentifier2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.uri) && Is.integer(candidate.version);\n  }\n  VersionedTextDocumentIdentifier2.is = is;\n})(VersionedTextDocumentIdentifier || (VersionedTextDocumentIdentifier = {}));\nvar OptionalVersionedTextDocumentIdentifier;\n(function(OptionalVersionedTextDocumentIdentifier2) {\n  function create(uri, version) {\n    return { uri, version };\n  }\n  OptionalVersionedTextDocumentIdentifier2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.uri) && (candidate.version === null || Is.integer(candidate.version));\n  }\n  OptionalVersionedTextDocumentIdentifier2.is = is;\n})(OptionalVersionedTextDocumentIdentifier || (OptionalVersionedTextDocumentIdentifier = {}));\nvar TextDocumentItem;\n(function(TextDocumentItem2) {\n  function create(uri, languageId, version, text) {\n    return { uri, languageId, version, text };\n  }\n  TextDocumentItem2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.uri) && Is.string(candidate.languageId) && Is.integer(candidate.version) && Is.string(candidate.text);\n  }\n  TextDocumentItem2.is = is;\n})(TextDocumentItem || (TextDocumentItem = {}));\nvar MarkupKind;\n(function(MarkupKind2) {\n  MarkupKind2.PlainText = \"plaintext\";\n  MarkupKind2.Markdown = \"markdown\";\n  function is(value) {\n    const candidate = value;\n    return candidate === MarkupKind2.PlainText || candidate === MarkupKind2.Markdown;\n  }\n  MarkupKind2.is = is;\n})(MarkupKind || (MarkupKind = {}));\nvar MarkupContent;\n(function(MarkupContent2) {\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(value) && MarkupKind.is(candidate.kind) && Is.string(candidate.value);\n  }\n  MarkupContent2.is = is;\n})(MarkupContent || (MarkupContent = {}));\nvar CompletionItemKind;\n(function(CompletionItemKind2) {\n  CompletionItemKind2.Text = 1;\n  CompletionItemKind2.Method = 2;\n  CompletionItemKind2.Function = 3;\n  CompletionItemKind2.Constructor = 4;\n  CompletionItemKind2.Field = 5;\n  CompletionItemKind2.Variable = 6;\n  CompletionItemKind2.Class = 7;\n  CompletionItemKind2.Interface = 8;\n  CompletionItemKind2.Module = 9;\n  CompletionItemKind2.Property = 10;\n  CompletionItemKind2.Unit = 11;\n  CompletionItemKind2.Value = 12;\n  CompletionItemKind2.Enum = 13;\n  CompletionItemKind2.Keyword = 14;\n  CompletionItemKind2.Snippet = 15;\n  CompletionItemKind2.Color = 16;\n  CompletionItemKind2.File = 17;\n  CompletionItemKind2.Reference = 18;\n  CompletionItemKind2.Folder = 19;\n  CompletionItemKind2.EnumMember = 20;\n  CompletionItemKind2.Constant = 21;\n  CompletionItemKind2.Struct = 22;\n  CompletionItemKind2.Event = 23;\n  CompletionItemKind2.Operator = 24;\n  CompletionItemKind2.TypeParameter = 25;\n})(CompletionItemKind || (CompletionItemKind = {}));\nvar InsertTextFormat;\n(function(InsertTextFormat2) {\n  InsertTextFormat2.PlainText = 1;\n  InsertTextFormat2.Snippet = 2;\n})(InsertTextFormat || (InsertTextFormat = {}));\nvar CompletionItemTag;\n(function(CompletionItemTag2) {\n  CompletionItemTag2.Deprecated = 1;\n})(CompletionItemTag || (CompletionItemTag = {}));\nvar InsertReplaceEdit;\n(function(InsertReplaceEdit2) {\n  function create(newText, insert, replace) {\n    return { newText, insert, replace };\n  }\n  InsertReplaceEdit2.create = create;\n  function is(value) {\n    const candidate = value;\n    return candidate && Is.string(candidate.newText) && Range.is(candidate.insert) && Range.is(candidate.replace);\n  }\n  InsertReplaceEdit2.is = is;\n})(InsertReplaceEdit || (InsertReplaceEdit = {}));\nvar InsertTextMode;\n(function(InsertTextMode2) {\n  InsertTextMode2.asIs = 1;\n  InsertTextMode2.adjustIndentation = 2;\n})(InsertTextMode || (InsertTextMode = {}));\nvar CompletionItemLabelDetails;\n(function(CompletionItemLabelDetails2) {\n  function is(value) {\n    const candidate = value;\n    return candidate && (Is.string(candidate.detail) || candidate.detail === void 0) && (Is.string(candidate.description) || candidate.description === void 0);\n  }\n  CompletionItemLabelDetails2.is = is;\n})(CompletionItemLabelDetails || (CompletionItemLabelDetails = {}));\nvar CompletionItem;\n(function(CompletionItem2) {\n  function create(label) {\n    return { label };\n  }\n  CompletionItem2.create = create;\n})(CompletionItem || (CompletionItem = {}));\nvar CompletionList;\n(function(CompletionList2) {\n  function create(items, isIncomplete) {\n    return { items: items ? items : [], isIncomplete: !!isIncomplete };\n  }\n  CompletionList2.create = create;\n})(CompletionList || (CompletionList = {}));\nvar MarkedString;\n(function(MarkedString2) {\n  function fromPlainText(plainText) {\n    return plainText.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g, \"\\\\$&\");\n  }\n  MarkedString2.fromPlainText = fromPlainText;\n  function is(value) {\n    const candidate = value;\n    return Is.string(candidate) || Is.objectLiteral(candidate) && Is.string(candidate.language) && Is.string(candidate.value);\n  }\n  MarkedString2.is = is;\n})(MarkedString || (MarkedString = {}));\nvar Hover;\n(function(Hover2) {\n  function is(value) {\n    let candidate = value;\n    return !!candidate && Is.objectLiteral(candidate) && (MarkupContent.is(candidate.contents) || MarkedString.is(candidate.contents) || Is.typedArray(candidate.contents, MarkedString.is)) && (value.range === void 0 || Range.is(value.range));\n  }\n  Hover2.is = is;\n})(Hover || (Hover = {}));\nvar ParameterInformation;\n(function(ParameterInformation2) {\n  function create(label, documentation) {\n    return documentation ? { label, documentation } : { label };\n  }\n  ParameterInformation2.create = create;\n})(ParameterInformation || (ParameterInformation = {}));\nvar SignatureInformation;\n(function(SignatureInformation2) {\n  function create(label, documentation, ...parameters) {\n    let result = { label };\n    if (Is.defined(documentation)) {\n      result.documentation = documentation;\n    }\n    if (Is.defined(parameters)) {\n      result.parameters = parameters;\n    } else {\n      result.parameters = [];\n    }\n    return result;\n  }\n  SignatureInformation2.create = create;\n})(SignatureInformation || (SignatureInformation = {}));\nvar DocumentHighlightKind;\n(function(DocumentHighlightKind2) {\n  DocumentHighlightKind2.Text = 1;\n  DocumentHighlightKind2.Read = 2;\n  DocumentHighlightKind2.Write = 3;\n})(DocumentHighlightKind || (DocumentHighlightKind = {}));\nvar DocumentHighlight;\n(function(DocumentHighlight2) {\n  function create(range, kind) {\n    let result = { range };\n    if (Is.number(kind)) {\n      result.kind = kind;\n    }\n    return result;\n  }\n  DocumentHighlight2.create = create;\n})(DocumentHighlight || (DocumentHighlight = {}));\nvar SymbolKind;\n(function(SymbolKind2) {\n  SymbolKind2.File = 1;\n  SymbolKind2.Module = 2;\n  SymbolKind2.Namespace = 3;\n  SymbolKind2.Package = 4;\n  SymbolKind2.Class = 5;\n  SymbolKind2.Method = 6;\n  SymbolKind2.Property = 7;\n  SymbolKind2.Field = 8;\n  SymbolKind2.Constructor = 9;\n  SymbolKind2.Enum = 10;\n  SymbolKind2.Interface = 11;\n  SymbolKind2.Function = 12;\n  SymbolKind2.Variable = 13;\n  SymbolKind2.Constant = 14;\n  SymbolKind2.String = 15;\n  SymbolKind2.Number = 16;\n  SymbolKind2.Boolean = 17;\n  SymbolKind2.Array = 18;\n  SymbolKind2.Object = 19;\n  SymbolKind2.Key = 20;\n  SymbolKind2.Null = 21;\n  SymbolKind2.EnumMember = 22;\n  SymbolKind2.Struct = 23;\n  SymbolKind2.Event = 24;\n  SymbolKind2.Operator = 25;\n  SymbolKind2.TypeParameter = 26;\n})(SymbolKind || (SymbolKind = {}));\nvar SymbolTag;\n(function(SymbolTag2) {\n  SymbolTag2.Deprecated = 1;\n})(SymbolTag || (SymbolTag = {}));\nvar SymbolInformation;\n(function(SymbolInformation2) {\n  function create(name, kind, range, uri, containerName) {\n    let result = {\n      name,\n      kind,\n      location: { uri, range }\n    };\n    if (containerName) {\n      result.containerName = containerName;\n    }\n    return result;\n  }\n  SymbolInformation2.create = create;\n})(SymbolInformation || (SymbolInformation = {}));\nvar WorkspaceSymbol;\n(function(WorkspaceSymbol2) {\n  function create(name, kind, uri, range) {\n    return range !== void 0 ? { name, kind, location: { uri, range } } : { name, kind, location: { uri } };\n  }\n  WorkspaceSymbol2.create = create;\n})(WorkspaceSymbol || (WorkspaceSymbol = {}));\nvar DocumentSymbol;\n(function(DocumentSymbol2) {\n  function create(name, detail, kind, range, selectionRange, children) {\n    let result = {\n      name,\n      detail,\n      kind,\n      range,\n      selectionRange\n    };\n    if (children !== void 0) {\n      result.children = children;\n    }\n    return result;\n  }\n  DocumentSymbol2.create = create;\n  function is(value) {\n    let candidate = value;\n    return candidate && Is.string(candidate.name) && Is.number(candidate.kind) && Range.is(candidate.range) && Range.is(candidate.selectionRange) && (candidate.detail === void 0 || Is.string(candidate.detail)) && (candidate.deprecated === void 0 || Is.boolean(candidate.deprecated)) && (candidate.children === void 0 || Array.isArray(candidate.children)) && (candidate.tags === void 0 || Array.isArray(candidate.tags));\n  }\n  DocumentSymbol2.is = is;\n})(DocumentSymbol || (DocumentSymbol = {}));\nvar CodeActionKind;\n(function(CodeActionKind2) {\n  CodeActionKind2.Empty = \"\";\n  CodeActionKind2.QuickFix = \"quickfix\";\n  CodeActionKind2.Refactor = \"refactor\";\n  CodeActionKind2.RefactorExtract = \"refactor.extract\";\n  CodeActionKind2.RefactorInline = \"refactor.inline\";\n  CodeActionKind2.RefactorRewrite = \"refactor.rewrite\";\n  CodeActionKind2.Source = \"source\";\n  CodeActionKind2.SourceOrganizeImports = \"source.organizeImports\";\n  CodeActionKind2.SourceFixAll = \"source.fixAll\";\n})(CodeActionKind || (CodeActionKind = {}));\nvar CodeActionTriggerKind;\n(function(CodeActionTriggerKind2) {\n  CodeActionTriggerKind2.Invoked = 1;\n  CodeActionTriggerKind2.Automatic = 2;\n})(CodeActionTriggerKind || (CodeActionTriggerKind = {}));\nvar CodeActionContext;\n(function(CodeActionContext2) {\n  function create(diagnostics, only, triggerKind) {\n    let result = { diagnostics };\n    if (only !== void 0 && only !== null) {\n      result.only = only;\n    }\n    if (triggerKind !== void 0 && triggerKind !== null) {\n      result.triggerKind = triggerKind;\n    }\n    return result;\n  }\n  CodeActionContext2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.typedArray(candidate.diagnostics, Diagnostic.is) && (candidate.only === void 0 || Is.typedArray(candidate.only, Is.string)) && (candidate.triggerKind === void 0 || candidate.triggerKind === CodeActionTriggerKind.Invoked || candidate.triggerKind === CodeActionTriggerKind.Automatic);\n  }\n  CodeActionContext2.is = is;\n})(CodeActionContext || (CodeActionContext = {}));\nvar CodeAction;\n(function(CodeAction2) {\n  function create(title, kindOrCommandOrEdit, kind) {\n    let result = { title };\n    let checkKind = true;\n    if (typeof kindOrCommandOrEdit === \"string\") {\n      checkKind = false;\n      result.kind = kindOrCommandOrEdit;\n    } else if (Command.is(kindOrCommandOrEdit)) {\n      result.command = kindOrCommandOrEdit;\n    } else {\n      result.edit = kindOrCommandOrEdit;\n    }\n    if (checkKind && kind !== void 0) {\n      result.kind = kind;\n    }\n    return result;\n  }\n  CodeAction2.create = create;\n  function is(value) {\n    let candidate = value;\n    return candidate && Is.string(candidate.title) && (candidate.diagnostics === void 0 || Is.typedArray(candidate.diagnostics, Diagnostic.is)) && (candidate.kind === void 0 || Is.string(candidate.kind)) && (candidate.edit !== void 0 || candidate.command !== void 0) && (candidate.command === void 0 || Command.is(candidate.command)) && (candidate.isPreferred === void 0 || Is.boolean(candidate.isPreferred)) && (candidate.edit === void 0 || WorkspaceEdit.is(candidate.edit));\n  }\n  CodeAction2.is = is;\n})(CodeAction || (CodeAction = {}));\nvar CodeLens;\n(function(CodeLens2) {\n  function create(range, data) {\n    let result = { range };\n    if (Is.defined(data)) {\n      result.data = data;\n    }\n    return result;\n  }\n  CodeLens2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.command) || Command.is(candidate.command));\n  }\n  CodeLens2.is = is;\n})(CodeLens || (CodeLens = {}));\nvar FormattingOptions;\n(function(FormattingOptions2) {\n  function create(tabSize, insertSpaces) {\n    return { tabSize, insertSpaces };\n  }\n  FormattingOptions2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.uinteger(candidate.tabSize) && Is.boolean(candidate.insertSpaces);\n  }\n  FormattingOptions2.is = is;\n})(FormattingOptions || (FormattingOptions = {}));\nvar DocumentLink;\n(function(DocumentLink2) {\n  function create(range, target, data) {\n    return { range, target, data };\n  }\n  DocumentLink2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.target) || Is.string(candidate.target));\n  }\n  DocumentLink2.is = is;\n})(DocumentLink || (DocumentLink = {}));\nvar SelectionRange;\n(function(SelectionRange2) {\n  function create(range, parent) {\n    return { range, parent };\n  }\n  SelectionRange2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.objectLiteral(candidate) && Range.is(candidate.range) && (candidate.parent === void 0 || SelectionRange2.is(candidate.parent));\n  }\n  SelectionRange2.is = is;\n})(SelectionRange || (SelectionRange = {}));\nvar SemanticTokenTypes;\n(function(SemanticTokenTypes2) {\n  SemanticTokenTypes2[\"namespace\"] = \"namespace\";\n  SemanticTokenTypes2[\"type\"] = \"type\";\n  SemanticTokenTypes2[\"class\"] = \"class\";\n  SemanticTokenTypes2[\"enum\"] = \"enum\";\n  SemanticTokenTypes2[\"interface\"] = \"interface\";\n  SemanticTokenTypes2[\"struct\"] = \"struct\";\n  SemanticTokenTypes2[\"typeParameter\"] = \"typeParameter\";\n  SemanticTokenTypes2[\"parameter\"] = \"parameter\";\n  SemanticTokenTypes2[\"variable\"] = \"variable\";\n  SemanticTokenTypes2[\"property\"] = \"property\";\n  SemanticTokenTypes2[\"enumMember\"] = \"enumMember\";\n  SemanticTokenTypes2[\"event\"] = \"event\";\n  SemanticTokenTypes2[\"function\"] = \"function\";\n  SemanticTokenTypes2[\"method\"] = \"method\";\n  SemanticTokenTypes2[\"macro\"] = \"macro\";\n  SemanticTokenTypes2[\"keyword\"] = \"keyword\";\n  SemanticTokenTypes2[\"modifier\"] = \"modifier\";\n  SemanticTokenTypes2[\"comment\"] = \"comment\";\n  SemanticTokenTypes2[\"string\"] = \"string\";\n  SemanticTokenTypes2[\"number\"] = \"number\";\n  SemanticTokenTypes2[\"regexp\"] = \"regexp\";\n  SemanticTokenTypes2[\"operator\"] = \"operator\";\n  SemanticTokenTypes2[\"decorator\"] = \"decorator\";\n})(SemanticTokenTypes || (SemanticTokenTypes = {}));\nvar SemanticTokenModifiers;\n(function(SemanticTokenModifiers2) {\n  SemanticTokenModifiers2[\"declaration\"] = \"declaration\";\n  SemanticTokenModifiers2[\"definition\"] = \"definition\";\n  SemanticTokenModifiers2[\"readonly\"] = \"readonly\";\n  SemanticTokenModifiers2[\"static\"] = \"static\";\n  SemanticTokenModifiers2[\"deprecated\"] = \"deprecated\";\n  SemanticTokenModifiers2[\"abstract\"] = \"abstract\";\n  SemanticTokenModifiers2[\"async\"] = \"async\";\n  SemanticTokenModifiers2[\"modification\"] = \"modification\";\n  SemanticTokenModifiers2[\"documentation\"] = \"documentation\";\n  SemanticTokenModifiers2[\"defaultLibrary\"] = \"defaultLibrary\";\n})(SemanticTokenModifiers || (SemanticTokenModifiers = {}));\nvar SemanticTokens;\n(function(SemanticTokens2) {\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && (candidate.resultId === void 0 || typeof candidate.resultId === \"string\") && Array.isArray(candidate.data) && (candidate.data.length === 0 || typeof candidate.data[0] === \"number\");\n  }\n  SemanticTokens2.is = is;\n})(SemanticTokens || (SemanticTokens = {}));\nvar InlineValueText;\n(function(InlineValueText2) {\n  function create(range, text) {\n    return { range, text };\n  }\n  InlineValueText2.create = create;\n  function is(value) {\n    const candidate = value;\n    return candidate !== void 0 && candidate !== null && Range.is(candidate.range) && Is.string(candidate.text);\n  }\n  InlineValueText2.is = is;\n})(InlineValueText || (InlineValueText = {}));\nvar InlineValueVariableLookup;\n(function(InlineValueVariableLookup2) {\n  function create(range, variableName, caseSensitiveLookup) {\n    return { range, variableName, caseSensitiveLookup };\n  }\n  InlineValueVariableLookup2.create = create;\n  function is(value) {\n    const candidate = value;\n    return candidate !== void 0 && candidate !== null && Range.is(candidate.range) && Is.boolean(candidate.caseSensitiveLookup) && (Is.string(candidate.variableName) || candidate.variableName === void 0);\n  }\n  InlineValueVariableLookup2.is = is;\n})(InlineValueVariableLookup || (InlineValueVariableLookup = {}));\nvar InlineValueEvaluatableExpression;\n(function(InlineValueEvaluatableExpression2) {\n  function create(range, expression) {\n    return { range, expression };\n  }\n  InlineValueEvaluatableExpression2.create = create;\n  function is(value) {\n    const candidate = value;\n    return candidate !== void 0 && candidate !== null && Range.is(candidate.range) && (Is.string(candidate.expression) || candidate.expression === void 0);\n  }\n  InlineValueEvaluatableExpression2.is = is;\n})(InlineValueEvaluatableExpression || (InlineValueEvaluatableExpression = {}));\nvar InlineValueContext;\n(function(InlineValueContext2) {\n  function create(frameId, stoppedLocation) {\n    return { frameId, stoppedLocation };\n  }\n  InlineValueContext2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.defined(candidate) && Range.is(value.stoppedLocation);\n  }\n  InlineValueContext2.is = is;\n})(InlineValueContext || (InlineValueContext = {}));\nvar InlayHintKind;\n(function(InlayHintKind2) {\n  InlayHintKind2.Type = 1;\n  InlayHintKind2.Parameter = 2;\n  function is(value) {\n    return value === 1 || value === 2;\n  }\n  InlayHintKind2.is = is;\n})(InlayHintKind || (InlayHintKind = {}));\nvar InlayHintLabelPart;\n(function(InlayHintLabelPart2) {\n  function create(value) {\n    return { value };\n  }\n  InlayHintLabelPart2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && (candidate.tooltip === void 0 || Is.string(candidate.tooltip) || MarkupContent.is(candidate.tooltip)) && (candidate.location === void 0 || Location.is(candidate.location)) && (candidate.command === void 0 || Command.is(candidate.command));\n  }\n  InlayHintLabelPart2.is = is;\n})(InlayHintLabelPart || (InlayHintLabelPart = {}));\nvar InlayHint;\n(function(InlayHint2) {\n  function create(position, label, kind) {\n    const result = { position, label };\n    if (kind !== void 0) {\n      result.kind = kind;\n    }\n    return result;\n  }\n  InlayHint2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Position.is(candidate.position) && (Is.string(candidate.label) || Is.typedArray(candidate.label, InlayHintLabelPart.is)) && (candidate.kind === void 0 || InlayHintKind.is(candidate.kind)) && candidate.textEdits === void 0 || Is.typedArray(candidate.textEdits, TextEdit.is) && (candidate.tooltip === void 0 || Is.string(candidate.tooltip) || MarkupContent.is(candidate.tooltip)) && (candidate.paddingLeft === void 0 || Is.boolean(candidate.paddingLeft)) && (candidate.paddingRight === void 0 || Is.boolean(candidate.paddingRight));\n  }\n  InlayHint2.is = is;\n})(InlayHint || (InlayHint = {}));\nvar StringValue;\n(function(StringValue2) {\n  function createSnippet(value) {\n    return { kind: \"snippet\", value };\n  }\n  StringValue2.createSnippet = createSnippet;\n})(StringValue || (StringValue = {}));\nvar InlineCompletionItem;\n(function(InlineCompletionItem2) {\n  function create(insertText, filterText, range, command) {\n    return { insertText, filterText, range, command };\n  }\n  InlineCompletionItem2.create = create;\n})(InlineCompletionItem || (InlineCompletionItem = {}));\nvar InlineCompletionList;\n(function(InlineCompletionList2) {\n  function create(items) {\n    return { items };\n  }\n  InlineCompletionList2.create = create;\n})(InlineCompletionList || (InlineCompletionList = {}));\nvar InlineCompletionTriggerKind;\n(function(InlineCompletionTriggerKind2) {\n  InlineCompletionTriggerKind2.Invoked = 0;\n  InlineCompletionTriggerKind2.Automatic = 1;\n})(InlineCompletionTriggerKind || (InlineCompletionTriggerKind = {}));\nvar SelectedCompletionInfo;\n(function(SelectedCompletionInfo2) {\n  function create(range, text) {\n    return { range, text };\n  }\n  SelectedCompletionInfo2.create = create;\n})(SelectedCompletionInfo || (SelectedCompletionInfo = {}));\nvar InlineCompletionContext;\n(function(InlineCompletionContext2) {\n  function create(triggerKind, selectedCompletionInfo) {\n    return { triggerKind, selectedCompletionInfo };\n  }\n  InlineCompletionContext2.create = create;\n})(InlineCompletionContext || (InlineCompletionContext = {}));\nvar WorkspaceFolder;\n(function(WorkspaceFolder2) {\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && URI.is(candidate.uri) && Is.string(candidate.name);\n  }\n  WorkspaceFolder2.is = is;\n})(WorkspaceFolder || (WorkspaceFolder = {}));\nvar TextDocument;\n(function(TextDocument2) {\n  function create(uri, languageId, version, content) {\n    return new FullTextDocument(uri, languageId, version, content);\n  }\n  TextDocument2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.uri) && (Is.undefined(candidate.languageId) || Is.string(candidate.languageId)) && Is.uinteger(candidate.lineCount) && Is.func(candidate.getText) && Is.func(candidate.positionAt) && Is.func(candidate.offsetAt) ? true : false;\n  }\n  TextDocument2.is = is;\n  function applyEdits(document, edits) {\n    let text = document.getText();\n    let sortedEdits = mergeSort(edits, (a, b) => {\n      let diff = a.range.start.line - b.range.start.line;\n      if (diff === 0) {\n        return a.range.start.character - b.range.start.character;\n      }\n      return diff;\n    });\n    let lastModifiedOffset = text.length;\n    for (let i = sortedEdits.length - 1; i >= 0; i--) {\n      let e = sortedEdits[i];\n      let startOffset = document.offsetAt(e.range.start);\n      let endOffset = document.offsetAt(e.range.end);\n      if (endOffset <= lastModifiedOffset) {\n        text = text.substring(0, startOffset) + e.newText + text.substring(endOffset, text.length);\n      } else {\n        throw new Error(\"Overlapping edit\");\n      }\n      lastModifiedOffset = startOffset;\n    }\n    return text;\n  }\n  TextDocument2.applyEdits = applyEdits;\n  function mergeSort(data, compare) {\n    if (data.length <= 1) {\n      return data;\n    }\n    const p = data.length / 2 | 0;\n    const left = data.slice(0, p);\n    const right = data.slice(p);\n    mergeSort(left, compare);\n    mergeSort(right, compare);\n    let leftIdx = 0;\n    let rightIdx = 0;\n    let i = 0;\n    while (leftIdx < left.length && rightIdx < right.length) {\n      let ret = compare(left[leftIdx], right[rightIdx]);\n      if (ret <= 0) {\n        data[i++] = left[leftIdx++];\n      } else {\n        data[i++] = right[rightIdx++];\n      }\n    }\n    while (leftIdx < left.length) {\n      data[i++] = left[leftIdx++];\n    }\n    while (rightIdx < right.length) {\n      data[i++] = right[rightIdx++];\n    }\n    return data;\n  }\n})(TextDocument || (TextDocument = {}));\nvar FullTextDocument = class {\n  constructor(uri, languageId, version, content) {\n    this._uri = uri;\n    this._languageId = languageId;\n    this._version = version;\n    this._content = content;\n    this._lineOffsets = void 0;\n  }\n  get uri() {\n    return this._uri;\n  }\n  get languageId() {\n    return this._languageId;\n  }\n  get version() {\n    return this._version;\n  }\n  getText(range) {\n    if (range) {\n      let start = this.offsetAt(range.start);\n      let end = this.offsetAt(range.end);\n      return this._content.substring(start, end);\n    }\n    return this._content;\n  }\n  update(event, version) {\n    this._content = event.text;\n    this._version = version;\n    this._lineOffsets = void 0;\n  }\n  getLineOffsets() {\n    if (this._lineOffsets === void 0) {\n      let lineOffsets = [];\n      let text = this._content;\n      let isLineStart = true;\n      for (let i = 0; i < text.length; i++) {\n        if (isLineStart) {\n          lineOffsets.push(i);\n          isLineStart = false;\n        }\n        let ch = text.charAt(i);\n        isLineStart = ch === \"\\r\" || ch === \"\\n\";\n        if (ch === \"\\r\" && i + 1 < text.length && text.charAt(i + 1) === \"\\n\") {\n          i++;\n        }\n      }\n      if (isLineStart && text.length > 0) {\n        lineOffsets.push(text.length);\n      }\n      this._lineOffsets = lineOffsets;\n    }\n    return this._lineOffsets;\n  }\n  positionAt(offset) {\n    offset = Math.max(Math.min(offset, this._content.length), 0);\n    let lineOffsets = this.getLineOffsets();\n    let low = 0, high = lineOffsets.length;\n    if (high === 0) {\n      return Position.create(0, offset);\n    }\n    while (low < high) {\n      let mid = Math.floor((low + high) / 2);\n      if (lineOffsets[mid] > offset) {\n        high = mid;\n      } else {\n        low = mid + 1;\n      }\n    }\n    let line = low - 1;\n    return Position.create(line, offset - lineOffsets[line]);\n  }\n  offsetAt(position) {\n    let lineOffsets = this.getLineOffsets();\n    if (position.line >= lineOffsets.length) {\n      return this._content.length;\n    } else if (position.line < 0) {\n      return 0;\n    }\n    let lineOffset = lineOffsets[position.line];\n    let nextLineOffset = position.line + 1 < lineOffsets.length ? lineOffsets[position.line + 1] : this._content.length;\n    return Math.max(Math.min(lineOffset + position.character, nextLineOffset), lineOffset);\n  }\n  get lineCount() {\n    return this.getLineOffsets().length;\n  }\n};\nvar Is;\n(function(Is2) {\n  const toString = Object.prototype.toString;\n  function defined(value) {\n    return typeof value !== \"undefined\";\n  }\n  Is2.defined = defined;\n  function undefined2(value) {\n    return typeof value === \"undefined\";\n  }\n  Is2.undefined = undefined2;\n  function boolean(value) {\n    return value === true || value === false;\n  }\n  Is2.boolean = boolean;\n  function string(value) {\n    return toString.call(value) === \"[object String]\";\n  }\n  Is2.string = string;\n  function number(value) {\n    return toString.call(value) === \"[object Number]\";\n  }\n  Is2.number = number;\n  function numberRange(value, min, max) {\n    return toString.call(value) === \"[object Number]\" && min <= value && value <= max;\n  }\n  Is2.numberRange = numberRange;\n  function integer2(value) {\n    return toString.call(value) === \"[object Number]\" && -2147483648 <= value && value <= 2147483647;\n  }\n  Is2.integer = integer2;\n  function uinteger2(value) {\n    return toString.call(value) === \"[object Number]\" && 0 <= value && value <= 2147483647;\n  }\n  Is2.uinteger = uinteger2;\n  function func(value) {\n    return toString.call(value) === \"[object Function]\";\n  }\n  Is2.func = func;\n  function objectLiteral(value) {\n    return value !== null && typeof value === \"object\";\n  }\n  Is2.objectLiteral = objectLiteral;\n  function typedArray(value, check) {\n    return Array.isArray(value) && value.every(check);\n  }\n  Is2.typedArray = typedArray;\n})(Is || (Is = {}));\n\n// src/language/common/lspLanguageFeatures.ts\nvar DiagnosticsAdapter = class {\n  constructor(_languageId, _worker, configChangeEvent) {\n    this._languageId = _languageId;\n    this._worker = _worker;\n    this._disposables = [];\n    this._listener = /* @__PURE__ */ Object.create(null);\n    const onModelAdd = (model) => {\n      let modeId = model.getLanguageId();\n      if (modeId !== this._languageId) {\n        return;\n      }\n      let handle;\n      this._listener[model.uri.toString()] = model.onDidChangeContent(() => {\n        window.clearTimeout(handle);\n        handle = window.setTimeout(() => this._doValidate(model.uri, modeId), 500);\n      });\n      this._doValidate(model.uri, modeId);\n    };\n    const onModelRemoved = (model) => {\n      monaco_editor_core_exports.editor.setModelMarkers(model, this._languageId, []);\n      let uriStr = model.uri.toString();\n      let listener = this._listener[uriStr];\n      if (listener) {\n        listener.dispose();\n        delete this._listener[uriStr];\n      }\n    };\n    this._disposables.push(monaco_editor_core_exports.editor.onDidCreateModel(onModelAdd));\n    this._disposables.push(monaco_editor_core_exports.editor.onWillDisposeModel(onModelRemoved));\n    this._disposables.push(\n      monaco_editor_core_exports.editor.onDidChangeModelLanguage((event) => {\n        onModelRemoved(event.model);\n        onModelAdd(event.model);\n      })\n    );\n    this._disposables.push(\n      configChangeEvent((_) => {\n        monaco_editor_core_exports.editor.getModels().forEach((model) => {\n          if (model.getLanguageId() === this._languageId) {\n            onModelRemoved(model);\n            onModelAdd(model);\n          }\n        });\n      })\n    );\n    this._disposables.push({\n      dispose: () => {\n        monaco_editor_core_exports.editor.getModels().forEach(onModelRemoved);\n        for (let key in this._listener) {\n          this._listener[key].dispose();\n        }\n      }\n    });\n    monaco_editor_core_exports.editor.getModels().forEach(onModelAdd);\n  }\n  dispose() {\n    this._disposables.forEach((d) => d && d.dispose());\n    this._disposables.length = 0;\n  }\n  _doValidate(resource, languageId) {\n    this._worker(resource).then((worker) => {\n      return worker.doValidation(resource.toString());\n    }).then((diagnostics) => {\n      const markers = diagnostics.map((d) => toDiagnostics(resource, d));\n      let model = monaco_editor_core_exports.editor.getModel(resource);\n      if (model && model.getLanguageId() === languageId) {\n        monaco_editor_core_exports.editor.setModelMarkers(model, languageId, markers);\n      }\n    }).then(void 0, (err) => {\n      console.error(err);\n    });\n  }\n};\nfunction toSeverity(lsSeverity) {\n  switch (lsSeverity) {\n    case DiagnosticSeverity.Error:\n      return monaco_editor_core_exports.MarkerSeverity.Error;\n    case DiagnosticSeverity.Warning:\n      return monaco_editor_core_exports.MarkerSeverity.Warning;\n    case DiagnosticSeverity.Information:\n      return monaco_editor_core_exports.MarkerSeverity.Info;\n    case DiagnosticSeverity.Hint:\n      return monaco_editor_core_exports.MarkerSeverity.Hint;\n    default:\n      return monaco_editor_core_exports.MarkerSeverity.Info;\n  }\n}\nfunction toDiagnostics(resource, diag) {\n  let code = typeof diag.code === \"number\" ? String(diag.code) : diag.code;\n  return {\n    severity: toSeverity(diag.severity),\n    startLineNumber: diag.range.start.line + 1,\n    startColumn: diag.range.start.character + 1,\n    endLineNumber: diag.range.end.line + 1,\n    endColumn: diag.range.end.character + 1,\n    message: diag.message,\n    code,\n    source: diag.source\n  };\n}\nvar CompletionAdapter = class {\n  constructor(_worker, _triggerCharacters) {\n    this._worker = _worker;\n    this._triggerCharacters = _triggerCharacters;\n  }\n  get triggerCharacters() {\n    return this._triggerCharacters;\n  }\n  provideCompletionItems(model, position, context, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker) => {\n      return worker.doComplete(resource.toString(), fromPosition(position));\n    }).then((info) => {\n      if (!info) {\n        return;\n      }\n      const wordInfo = model.getWordUntilPosition(position);\n      const wordRange = new monaco_editor_core_exports.Range(\n        position.lineNumber,\n        wordInfo.startColumn,\n        position.lineNumber,\n        wordInfo.endColumn\n      );\n      const items = info.items.map((entry) => {\n        const item = {\n          label: entry.label,\n          insertText: entry.insertText || entry.label,\n          sortText: entry.sortText,\n          filterText: entry.filterText,\n          documentation: entry.documentation,\n          detail: entry.detail,\n          command: toCommand(entry.command),\n          range: wordRange,\n          kind: toCompletionItemKind(entry.kind)\n        };\n        if (entry.textEdit) {\n          if (isInsertReplaceEdit(entry.textEdit)) {\n            item.range = {\n              insert: toRange(entry.textEdit.insert),\n              replace: toRange(entry.textEdit.replace)\n            };\n          } else {\n            item.range = toRange(entry.textEdit.range);\n          }\n          item.insertText = entry.textEdit.newText;\n        }\n        if (entry.additionalTextEdits) {\n          item.additionalTextEdits = entry.additionalTextEdits.map(toTextEdit);\n        }\n        if (entry.insertTextFormat === InsertTextFormat.Snippet) {\n          item.insertTextRules = monaco_editor_core_exports.languages.CompletionItemInsertTextRule.InsertAsSnippet;\n        }\n        return item;\n      });\n      return {\n        isIncomplete: info.isIncomplete,\n        suggestions: items\n      };\n    });\n  }\n};\nfunction fromPosition(position) {\n  if (!position) {\n    return void 0;\n  }\n  return { character: position.column - 1, line: position.lineNumber - 1 };\n}\nfunction fromRange(range) {\n  if (!range) {\n    return void 0;\n  }\n  return {\n    start: {\n      line: range.startLineNumber - 1,\n      character: range.startColumn - 1\n    },\n    end: { line: range.endLineNumber - 1, character: range.endColumn - 1 }\n  };\n}\nfunction toRange(range) {\n  if (!range) {\n    return void 0;\n  }\n  return new monaco_editor_core_exports.Range(\n    range.start.line + 1,\n    range.start.character + 1,\n    range.end.line + 1,\n    range.end.character + 1\n  );\n}\nfunction isInsertReplaceEdit(edit) {\n  return typeof edit.insert !== \"undefined\" && typeof edit.replace !== \"undefined\";\n}\nfunction toCompletionItemKind(kind) {\n  const mItemKind = monaco_editor_core_exports.languages.CompletionItemKind;\n  switch (kind) {\n    case CompletionItemKind.Text:\n      return mItemKind.Text;\n    case CompletionItemKind.Method:\n      return mItemKind.Method;\n    case CompletionItemKind.Function:\n      return mItemKind.Function;\n    case CompletionItemKind.Constructor:\n      return mItemKind.Constructor;\n    case CompletionItemKind.Field:\n      return mItemKind.Field;\n    case CompletionItemKind.Variable:\n      return mItemKind.Variable;\n    case CompletionItemKind.Class:\n      return mItemKind.Class;\n    case CompletionItemKind.Interface:\n      return mItemKind.Interface;\n    case CompletionItemKind.Module:\n      return mItemKind.Module;\n    case CompletionItemKind.Property:\n      return mItemKind.Property;\n    case CompletionItemKind.Unit:\n      return mItemKind.Unit;\n    case CompletionItemKind.Value:\n      return mItemKind.Value;\n    case CompletionItemKind.Enum:\n      return mItemKind.Enum;\n    case CompletionItemKind.Keyword:\n      return mItemKind.Keyword;\n    case CompletionItemKind.Snippet:\n      return mItemKind.Snippet;\n    case CompletionItemKind.Color:\n      return mItemKind.Color;\n    case CompletionItemKind.File:\n      return mItemKind.File;\n    case CompletionItemKind.Reference:\n      return mItemKind.Reference;\n  }\n  return mItemKind.Property;\n}\nfunction toTextEdit(textEdit) {\n  if (!textEdit) {\n    return void 0;\n  }\n  return {\n    range: toRange(textEdit.range),\n    text: textEdit.newText\n  };\n}\nfunction toCommand(c) {\n  return c && c.command === \"editor.action.triggerSuggest\" ? { id: c.command, title: c.title, arguments: c.arguments } : void 0;\n}\nvar HoverAdapter = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideHover(model, position, token) {\n    let resource = model.uri;\n    return this._worker(resource).then((worker) => {\n      return worker.doHover(resource.toString(), fromPosition(position));\n    }).then((info) => {\n      if (!info) {\n        return;\n      }\n      return {\n        range: toRange(info.range),\n        contents: toMarkedStringArray(info.contents)\n      };\n    });\n  }\n};\nfunction isMarkupContent(thing) {\n  return thing && typeof thing === \"object\" && typeof thing.kind === \"string\";\n}\nfunction toMarkdownString(entry) {\n  if (typeof entry === \"string\") {\n    return {\n      value: entry\n    };\n  }\n  if (isMarkupContent(entry)) {\n    if (entry.kind === \"plaintext\") {\n      return {\n        value: entry.value.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g, \"\\\\$&\")\n      };\n    }\n    return {\n      value: entry.value\n    };\n  }\n  return { value: \"```\" + entry.language + \"\\n\" + entry.value + \"\\n```\\n\" };\n}\nfunction toMarkedStringArray(contents) {\n  if (!contents) {\n    return void 0;\n  }\n  if (Array.isArray(contents)) {\n    return contents.map(toMarkdownString);\n  }\n  return [toMarkdownString(contents)];\n}\nvar DocumentHighlightAdapter = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideDocumentHighlights(model, position, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker) => worker.findDocumentHighlights(resource.toString(), fromPosition(position))).then((entries) => {\n      if (!entries) {\n        return;\n      }\n      return entries.map((entry) => {\n        return {\n          range: toRange(entry.range),\n          kind: toDocumentHighlightKind(entry.kind)\n        };\n      });\n    });\n  }\n};\nfunction toDocumentHighlightKind(kind) {\n  switch (kind) {\n    case DocumentHighlightKind.Read:\n      return monaco_editor_core_exports.languages.DocumentHighlightKind.Read;\n    case DocumentHighlightKind.Write:\n      return monaco_editor_core_exports.languages.DocumentHighlightKind.Write;\n    case DocumentHighlightKind.Text:\n      return monaco_editor_core_exports.languages.DocumentHighlightKind.Text;\n  }\n  return monaco_editor_core_exports.languages.DocumentHighlightKind.Text;\n}\nvar DefinitionAdapter = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideDefinition(model, position, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker) => {\n      return worker.findDefinition(resource.toString(), fromPosition(position));\n    }).then((definition) => {\n      if (!definition) {\n        return;\n      }\n      return [toLocation(definition)];\n    });\n  }\n};\nfunction toLocation(location) {\n  return {\n    uri: monaco_editor_core_exports.Uri.parse(location.uri),\n    range: toRange(location.range)\n  };\n}\nvar ReferenceAdapter = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideReferences(model, position, context, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker) => {\n      return worker.findReferences(resource.toString(), fromPosition(position));\n    }).then((entries) => {\n      if (!entries) {\n        return;\n      }\n      return entries.map(toLocation);\n    });\n  }\n};\nvar RenameAdapter = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideRenameEdits(model, position, newName, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker) => {\n      return worker.doRename(resource.toString(), fromPosition(position), newName);\n    }).then((edit) => {\n      return toWorkspaceEdit(edit);\n    });\n  }\n};\nfunction toWorkspaceEdit(edit) {\n  if (!edit || !edit.changes) {\n    return void 0;\n  }\n  let resourceEdits = [];\n  for (let uri in edit.changes) {\n    const _uri = monaco_editor_core_exports.Uri.parse(uri);\n    for (let e of edit.changes[uri]) {\n      resourceEdits.push({\n        resource: _uri,\n        versionId: void 0,\n        textEdit: {\n          range: toRange(e.range),\n          text: e.newText\n        }\n      });\n    }\n  }\n  return {\n    edits: resourceEdits\n  };\n}\nvar DocumentSymbolAdapter = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideDocumentSymbols(model, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker) => worker.findDocumentSymbols(resource.toString())).then((items) => {\n      if (!items) {\n        return;\n      }\n      return items.map((item) => {\n        if (isDocumentSymbol(item)) {\n          return toDocumentSymbol(item);\n        }\n        return {\n          name: item.name,\n          detail: \"\",\n          containerName: item.containerName,\n          kind: toSymbolKind(item.kind),\n          range: toRange(item.location.range),\n          selectionRange: toRange(item.location.range),\n          tags: []\n        };\n      });\n    });\n  }\n};\nfunction isDocumentSymbol(symbol) {\n  return \"children\" in symbol;\n}\nfunction toDocumentSymbol(symbol) {\n  return {\n    name: symbol.name,\n    detail: symbol.detail ?? \"\",\n    kind: toSymbolKind(symbol.kind),\n    range: toRange(symbol.range),\n    selectionRange: toRange(symbol.selectionRange),\n    tags: symbol.tags ?? [],\n    children: (symbol.children ?? []).map((item) => toDocumentSymbol(item))\n  };\n}\nfunction toSymbolKind(kind) {\n  let mKind = monaco_editor_core_exports.languages.SymbolKind;\n  switch (kind) {\n    case SymbolKind.File:\n      return mKind.File;\n    case SymbolKind.Module:\n      return mKind.Module;\n    case SymbolKind.Namespace:\n      return mKind.Namespace;\n    case SymbolKind.Package:\n      return mKind.Package;\n    case SymbolKind.Class:\n      return mKind.Class;\n    case SymbolKind.Method:\n      return mKind.Method;\n    case SymbolKind.Property:\n      return mKind.Property;\n    case SymbolKind.Field:\n      return mKind.Field;\n    case SymbolKind.Constructor:\n      return mKind.Constructor;\n    case SymbolKind.Enum:\n      return mKind.Enum;\n    case SymbolKind.Interface:\n      return mKind.Interface;\n    case SymbolKind.Function:\n      return mKind.Function;\n    case SymbolKind.Variable:\n      return mKind.Variable;\n    case SymbolKind.Constant:\n      return mKind.Constant;\n    case SymbolKind.String:\n      return mKind.String;\n    case SymbolKind.Number:\n      return mKind.Number;\n    case SymbolKind.Boolean:\n      return mKind.Boolean;\n    case SymbolKind.Array:\n      return mKind.Array;\n  }\n  return mKind.Function;\n}\nvar DocumentLinkAdapter = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideLinks(model, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker) => worker.findDocumentLinks(resource.toString())).then((items) => {\n      if (!items) {\n        return;\n      }\n      return {\n        links: items.map((item) => ({\n          range: toRange(item.range),\n          url: item.target\n        }))\n      };\n    });\n  }\n};\nvar DocumentFormattingEditProvider = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideDocumentFormattingEdits(model, options, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker) => {\n      return worker.format(resource.toString(), null, fromFormattingOptions(options)).then((edits) => {\n        if (!edits || edits.length === 0) {\n          return;\n        }\n        return edits.map(toTextEdit);\n      });\n    });\n  }\n};\nvar DocumentRangeFormattingEditProvider = class {\n  constructor(_worker) {\n    this._worker = _worker;\n    this.canFormatMultipleRanges = false;\n  }\n  provideDocumentRangeFormattingEdits(model, range, options, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker) => {\n      return worker.format(resource.toString(), fromRange(range), fromFormattingOptions(options)).then((edits) => {\n        if (!edits || edits.length === 0) {\n          return;\n        }\n        return edits.map(toTextEdit);\n      });\n    });\n  }\n};\nfunction fromFormattingOptions(options) {\n  return {\n    tabSize: options.tabSize,\n    insertSpaces: options.insertSpaces\n  };\n}\nvar DocumentColorAdapter = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideDocumentColors(model, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker) => worker.findDocumentColors(resource.toString())).then((infos) => {\n      if (!infos) {\n        return;\n      }\n      return infos.map((item) => ({\n        color: item.color,\n        range: toRange(item.range)\n      }));\n    });\n  }\n  provideColorPresentations(model, info, token) {\n    const resource = model.uri;\n    return this._worker(resource).then(\n      (worker) => worker.getColorPresentations(resource.toString(), info.color, fromRange(info.range))\n    ).then((presentations) => {\n      if (!presentations) {\n        return;\n      }\n      return presentations.map((presentation) => {\n        let item = {\n          label: presentation.label\n        };\n        if (presentation.textEdit) {\n          item.textEdit = toTextEdit(presentation.textEdit);\n        }\n        if (presentation.additionalTextEdits) {\n          item.additionalTextEdits = presentation.additionalTextEdits.map(toTextEdit);\n        }\n        return item;\n      });\n    });\n  }\n};\nvar FoldingRangeAdapter = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideFoldingRanges(model, context, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker) => worker.getFoldingRanges(resource.toString(), context)).then((ranges) => {\n      if (!ranges) {\n        return;\n      }\n      return ranges.map((range) => {\n        const result = {\n          start: range.startLine + 1,\n          end: range.endLine + 1\n        };\n        if (typeof range.kind !== \"undefined\") {\n          result.kind = toFoldingRangeKind(range.kind);\n        }\n        return result;\n      });\n    });\n  }\n};\nfunction toFoldingRangeKind(kind) {\n  switch (kind) {\n    case FoldingRangeKind.Comment:\n      return monaco_editor_core_exports.languages.FoldingRangeKind.Comment;\n    case FoldingRangeKind.Imports:\n      return monaco_editor_core_exports.languages.FoldingRangeKind.Imports;\n    case FoldingRangeKind.Region:\n      return monaco_editor_core_exports.languages.FoldingRangeKind.Region;\n  }\n  return void 0;\n}\nvar SelectionRangeAdapter = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideSelectionRanges(model, positions, token) {\n    const resource = model.uri;\n    return this._worker(resource).then(\n      (worker) => worker.getSelectionRanges(\n        resource.toString(),\n        positions.map(fromPosition)\n      )\n    ).then((selectionRanges) => {\n      if (!selectionRanges) {\n        return;\n      }\n      return selectionRanges.map((selectionRange) => {\n        const result = [];\n        while (selectionRange) {\n          result.push({ range: toRange(selectionRange.range) });\n          selectionRange = selectionRange.parent;\n        }\n        return result;\n      });\n    });\n  }\n};\n\n// src/language/css/cssMode.ts\nfunction setupMode(defaults) {\n  const disposables = [];\n  const providers = [];\n  const client = new WorkerManager(defaults);\n  disposables.push(client);\n  const worker = (...uris) => {\n    return client.getLanguageServiceWorker(...uris);\n  };\n  function registerProviders() {\n    const { languageId, modeConfiguration } = defaults;\n    disposeAll(providers);\n    if (modeConfiguration.completionItems) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerCompletionItemProvider(\n          languageId,\n          new CompletionAdapter(worker, [\"/\", \"-\", \":\"])\n        )\n      );\n    }\n    if (modeConfiguration.hovers) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerHoverProvider(languageId, new HoverAdapter(worker))\n      );\n    }\n    if (modeConfiguration.documentHighlights) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerDocumentHighlightProvider(\n          languageId,\n          new DocumentHighlightAdapter(worker)\n        )\n      );\n    }\n    if (modeConfiguration.definitions) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerDefinitionProvider(\n          languageId,\n          new DefinitionAdapter(worker)\n        )\n      );\n    }\n    if (modeConfiguration.references) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerReferenceProvider(\n          languageId,\n          new ReferenceAdapter(worker)\n        )\n      );\n    }\n    if (modeConfiguration.documentSymbols) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerDocumentSymbolProvider(\n          languageId,\n          new DocumentSymbolAdapter(worker)\n        )\n      );\n    }\n    if (modeConfiguration.rename) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerRenameProvider(languageId, new RenameAdapter(worker))\n      );\n    }\n    if (modeConfiguration.colors) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerColorProvider(\n          languageId,\n          new DocumentColorAdapter(worker)\n        )\n      );\n    }\n    if (modeConfiguration.foldingRanges) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerFoldingRangeProvider(\n          languageId,\n          new FoldingRangeAdapter(worker)\n        )\n      );\n    }\n    if (modeConfiguration.diagnostics) {\n      providers.push(\n        new DiagnosticsAdapter(languageId, worker, defaults.onDidChange)\n      );\n    }\n    if (modeConfiguration.selectionRanges) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerSelectionRangeProvider(\n          languageId,\n          new SelectionRangeAdapter(worker)\n        )\n      );\n    }\n    if (modeConfiguration.documentFormattingEdits) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerDocumentFormattingEditProvider(\n          languageId,\n          new DocumentFormattingEditProvider(worker)\n        )\n      );\n    }\n    if (modeConfiguration.documentRangeFormattingEdits) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerDocumentRangeFormattingEditProvider(\n          languageId,\n          new DocumentRangeFormattingEditProvider(worker)\n        )\n      );\n    }\n  }\n  registerProviders();\n  disposables.push(asDisposable(providers));\n  return asDisposable(disposables);\n}\nfunction asDisposable(disposables) {\n  return { dispose: () => disposeAll(disposables) };\n}\nfunction disposeAll(disposables) {\n  while (disposables.length) {\n    disposables.pop().dispose();\n  }\n}\nexport {\n  CompletionAdapter,\n  DefinitionAdapter,\n  DiagnosticsAdapter,\n  DocumentColorAdapter,\n  DocumentFormattingEditProvider,\n  DocumentHighlightAdapter,\n  DocumentLinkAdapter,\n  DocumentRangeFormattingEditProvider,\n  DocumentSymbolAdapter,\n  FoldingRangeAdapter,\n  HoverAdapter,\n  ReferenceAdapter,\n  RenameAdapter,\n  SelectionRangeAdapter,\n  WorkerManager,\n  fromPosition,\n  fromRange,\n  setupMode,\n  toRange,\n  toTextEdit\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/language/css/monaco.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/language/css/monaco.contribution.js",
    "content": "import '../../editor/editor.api.js';\n/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\n\n// src/fillers/monaco-editor-core.ts\nvar monaco_editor_core_exports = {};\n__reExport(monaco_editor_core_exports, monaco_editor_core_star);\nimport * as monaco_editor_core_star from \"../../editor/editor.api.js\";\n\n// src/language/css/monaco.contribution.ts\nvar LanguageServiceDefaultsImpl = class {\n  constructor(languageId, options, modeConfiguration) {\n    this._onDidChange = new monaco_editor_core_exports.Emitter();\n    this._languageId = languageId;\n    this.setOptions(options);\n    this.setModeConfiguration(modeConfiguration);\n  }\n  get onDidChange() {\n    return this._onDidChange.event;\n  }\n  get languageId() {\n    return this._languageId;\n  }\n  get modeConfiguration() {\n    return this._modeConfiguration;\n  }\n  get diagnosticsOptions() {\n    return this.options;\n  }\n  get options() {\n    return this._options;\n  }\n  setOptions(options) {\n    this._options = options || /* @__PURE__ */ Object.create(null);\n    this._onDidChange.fire(this);\n  }\n  setDiagnosticsOptions(options) {\n    this.setOptions(options);\n  }\n  setModeConfiguration(modeConfiguration) {\n    this._modeConfiguration = modeConfiguration || /* @__PURE__ */ Object.create(null);\n    this._onDidChange.fire(this);\n  }\n};\nvar optionsDefault = {\n  validate: true,\n  lint: {\n    compatibleVendorPrefixes: \"ignore\",\n    vendorPrefix: \"warning\",\n    duplicateProperties: \"warning\",\n    emptyRules: \"warning\",\n    importStatement: \"ignore\",\n    boxModel: \"ignore\",\n    universalSelector: \"ignore\",\n    zeroUnits: \"ignore\",\n    fontFaceProperties: \"warning\",\n    hexColorLength: \"error\",\n    argumentsInColorFunction: \"error\",\n    unknownProperties: \"warning\",\n    ieHack: \"ignore\",\n    unknownVendorSpecificProperties: \"ignore\",\n    propertyIgnoredDueToDisplay: \"warning\",\n    important: \"ignore\",\n    float: \"ignore\",\n    idSelector: \"ignore\"\n  },\n  data: { useDefaultDataProvider: true },\n  format: {\n    newlineBetweenSelectors: true,\n    newlineBetweenRules: true,\n    spaceAroundSelectorSeparator: false,\n    braceStyle: \"collapse\",\n    maxPreserveNewLines: void 0,\n    preserveNewLines: true\n  }\n};\nvar modeConfigurationDefault = {\n  completionItems: true,\n  hovers: true,\n  documentSymbols: true,\n  definitions: true,\n  references: true,\n  documentHighlights: true,\n  rename: true,\n  colors: true,\n  foldingRanges: true,\n  diagnostics: true,\n  selectionRanges: true,\n  documentFormattingEdits: true,\n  documentRangeFormattingEdits: true\n};\nvar cssDefaults = new LanguageServiceDefaultsImpl(\n  \"css\",\n  optionsDefault,\n  modeConfigurationDefault\n);\nvar scssDefaults = new LanguageServiceDefaultsImpl(\n  \"scss\",\n  optionsDefault,\n  modeConfigurationDefault\n);\nvar lessDefaults = new LanguageServiceDefaultsImpl(\n  \"less\",\n  optionsDefault,\n  modeConfigurationDefault\n);\nmonaco_editor_core_exports.languages.css = { cssDefaults, lessDefaults, scssDefaults };\nfunction getMode() {\n  if (false) {\n    return new Promise((resolve, reject) => {\n      __require([\"vs/language/css/cssMode\"], resolve, reject);\n    });\n  } else {\n    return import(\"./cssMode.js\");\n  }\n}\nmonaco_editor_core_exports.languages.onLanguage(\"less\", () => {\n  getMode().then((mode) => mode.setupMode(lessDefaults));\n});\nmonaco_editor_core_exports.languages.onLanguage(\"scss\", () => {\n  getMode().then((mode) => mode.setupMode(scssDefaults));\n});\nmonaco_editor_core_exports.languages.onLanguage(\"css\", () => {\n  getMode().then((mode) => mode.setupMode(cssDefaults));\n});\nexport {\n  cssDefaults,\n  lessDefaults,\n  scssDefaults\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/language/html/html.worker.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/language/html/html.worker.ts\nimport * as worker from \"../../editor/editor.worker.js\";\n\n// node_modules/@vscode/l10n/dist/browser.js\nvar bundle;\nfunction t(...args) {\n  const firstArg = args[0];\n  let key;\n  let message;\n  let formatArgs;\n  if (typeof firstArg === \"string\") {\n    key = firstArg;\n    message = firstArg;\n    args.splice(0, 1);\n    formatArgs = !args || typeof args[0] !== \"object\" ? args : args[0];\n  } else if (firstArg instanceof Array) {\n    const replacements = args.slice(1);\n    if (firstArg.length !== replacements.length + 1) {\n      throw new Error(\"expected a string as the first argument to l10n.t\");\n    }\n    let str = firstArg[0];\n    for (let i = 1; i < firstArg.length; i++) {\n      str += `{${i - 1}}` + firstArg[i];\n    }\n    return t(str, ...replacements);\n  } else {\n    message = firstArg.message;\n    key = message;\n    if (firstArg.comment && firstArg.comment.length > 0) {\n      key += `/${Array.isArray(firstArg.comment) ? firstArg.comment.join(\"\") : firstArg.comment}`;\n    }\n    formatArgs = firstArg.args ?? {};\n  }\n  const messageFromBundle = bundle?.[key];\n  if (!messageFromBundle) {\n    return format(message, formatArgs);\n  }\n  if (typeof messageFromBundle === \"string\") {\n    return format(messageFromBundle, formatArgs);\n  }\n  if (messageFromBundle.comment) {\n    return format(messageFromBundle.message, formatArgs);\n  }\n  return format(message, formatArgs);\n}\nvar _format2Regexp = /{([^}]+)}/g;\nfunction format(template, values) {\n  if (Object.keys(values).length === 0) {\n    return template;\n  }\n  return template.replace(_format2Regexp, (match, group) => values[group] ?? match);\n}\n\n// node_modules/vscode-languageserver-types/lib/esm/main.js\nvar DocumentUri;\n(function(DocumentUri2) {\n  function is(value) {\n    return typeof value === \"string\";\n  }\n  DocumentUri2.is = is;\n})(DocumentUri || (DocumentUri = {}));\nvar URI;\n(function(URI3) {\n  function is(value) {\n    return typeof value === \"string\";\n  }\n  URI3.is = is;\n})(URI || (URI = {}));\nvar integer;\n(function(integer2) {\n  integer2.MIN_VALUE = -2147483648;\n  integer2.MAX_VALUE = 2147483647;\n  function is(value) {\n    return typeof value === \"number\" && integer2.MIN_VALUE <= value && value <= integer2.MAX_VALUE;\n  }\n  integer2.is = is;\n})(integer || (integer = {}));\nvar uinteger;\n(function(uinteger2) {\n  uinteger2.MIN_VALUE = 0;\n  uinteger2.MAX_VALUE = 2147483647;\n  function is(value) {\n    return typeof value === \"number\" && uinteger2.MIN_VALUE <= value && value <= uinteger2.MAX_VALUE;\n  }\n  uinteger2.is = is;\n})(uinteger || (uinteger = {}));\nvar Position;\n(function(Position2) {\n  function create(line, character) {\n    if (line === Number.MAX_VALUE) {\n      line = uinteger.MAX_VALUE;\n    }\n    if (character === Number.MAX_VALUE) {\n      character = uinteger.MAX_VALUE;\n    }\n    return { line, character };\n  }\n  Position2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.objectLiteral(candidate) && Is.uinteger(candidate.line) && Is.uinteger(candidate.character);\n  }\n  Position2.is = is;\n})(Position || (Position = {}));\nvar Range;\n(function(Range2) {\n  function create(one, two, three, four) {\n    if (Is.uinteger(one) && Is.uinteger(two) && Is.uinteger(three) && Is.uinteger(four)) {\n      return { start: Position.create(one, two), end: Position.create(three, four) };\n    } else if (Position.is(one) && Position.is(two)) {\n      return { start: one, end: two };\n    } else {\n      throw new Error(`Range#create called with invalid arguments[${one}, ${two}, ${three}, ${four}]`);\n    }\n  }\n  Range2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.objectLiteral(candidate) && Position.is(candidate.start) && Position.is(candidate.end);\n  }\n  Range2.is = is;\n})(Range || (Range = {}));\nvar Location;\n(function(Location2) {\n  function create(uri, range) {\n    return { uri, range };\n  }\n  Location2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.objectLiteral(candidate) && Range.is(candidate.range) && (Is.string(candidate.uri) || Is.undefined(candidate.uri));\n  }\n  Location2.is = is;\n})(Location || (Location = {}));\nvar LocationLink;\n(function(LocationLink2) {\n  function create(targetUri, targetRange, targetSelectionRange, originSelectionRange) {\n    return { targetUri, targetRange, targetSelectionRange, originSelectionRange };\n  }\n  LocationLink2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.objectLiteral(candidate) && Range.is(candidate.targetRange) && Is.string(candidate.targetUri) && Range.is(candidate.targetSelectionRange) && (Range.is(candidate.originSelectionRange) || Is.undefined(candidate.originSelectionRange));\n  }\n  LocationLink2.is = is;\n})(LocationLink || (LocationLink = {}));\nvar Color;\n(function(Color2) {\n  function create(red, green, blue, alpha) {\n    return {\n      red,\n      green,\n      blue,\n      alpha\n    };\n  }\n  Color2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.numberRange(candidate.red, 0, 1) && Is.numberRange(candidate.green, 0, 1) && Is.numberRange(candidate.blue, 0, 1) && Is.numberRange(candidate.alpha, 0, 1);\n  }\n  Color2.is = is;\n})(Color || (Color = {}));\nvar ColorInformation;\n(function(ColorInformation2) {\n  function create(range, color) {\n    return {\n      range,\n      color\n    };\n  }\n  ColorInformation2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Range.is(candidate.range) && Color.is(candidate.color);\n  }\n  ColorInformation2.is = is;\n})(ColorInformation || (ColorInformation = {}));\nvar ColorPresentation;\n(function(ColorPresentation2) {\n  function create(label, textEdit, additionalTextEdits) {\n    return {\n      label,\n      textEdit,\n      additionalTextEdits\n    };\n  }\n  ColorPresentation2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.string(candidate.label) && (Is.undefined(candidate.textEdit) || TextEdit.is(candidate)) && (Is.undefined(candidate.additionalTextEdits) || Is.typedArray(candidate.additionalTextEdits, TextEdit.is));\n  }\n  ColorPresentation2.is = is;\n})(ColorPresentation || (ColorPresentation = {}));\nvar FoldingRangeKind;\n(function(FoldingRangeKind2) {\n  FoldingRangeKind2.Comment = \"comment\";\n  FoldingRangeKind2.Imports = \"imports\";\n  FoldingRangeKind2.Region = \"region\";\n})(FoldingRangeKind || (FoldingRangeKind = {}));\nvar FoldingRange;\n(function(FoldingRange2) {\n  function create(startLine, endLine, startCharacter, endCharacter, kind, collapsedText) {\n    const result = {\n      startLine,\n      endLine\n    };\n    if (Is.defined(startCharacter)) {\n      result.startCharacter = startCharacter;\n    }\n    if (Is.defined(endCharacter)) {\n      result.endCharacter = endCharacter;\n    }\n    if (Is.defined(kind)) {\n      result.kind = kind;\n    }\n    if (Is.defined(collapsedText)) {\n      result.collapsedText = collapsedText;\n    }\n    return result;\n  }\n  FoldingRange2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.uinteger(candidate.startLine) && Is.uinteger(candidate.startLine) && (Is.undefined(candidate.startCharacter) || Is.uinteger(candidate.startCharacter)) && (Is.undefined(candidate.endCharacter) || Is.uinteger(candidate.endCharacter)) && (Is.undefined(candidate.kind) || Is.string(candidate.kind));\n  }\n  FoldingRange2.is = is;\n})(FoldingRange || (FoldingRange = {}));\nvar DiagnosticRelatedInformation;\n(function(DiagnosticRelatedInformation2) {\n  function create(location, message) {\n    return {\n      location,\n      message\n    };\n  }\n  DiagnosticRelatedInformation2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Location.is(candidate.location) && Is.string(candidate.message);\n  }\n  DiagnosticRelatedInformation2.is = is;\n})(DiagnosticRelatedInformation || (DiagnosticRelatedInformation = {}));\nvar DiagnosticSeverity;\n(function(DiagnosticSeverity2) {\n  DiagnosticSeverity2.Error = 1;\n  DiagnosticSeverity2.Warning = 2;\n  DiagnosticSeverity2.Information = 3;\n  DiagnosticSeverity2.Hint = 4;\n})(DiagnosticSeverity || (DiagnosticSeverity = {}));\nvar DiagnosticTag;\n(function(DiagnosticTag2) {\n  DiagnosticTag2.Unnecessary = 1;\n  DiagnosticTag2.Deprecated = 2;\n})(DiagnosticTag || (DiagnosticTag = {}));\nvar CodeDescription;\n(function(CodeDescription2) {\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.string(candidate.href);\n  }\n  CodeDescription2.is = is;\n})(CodeDescription || (CodeDescription = {}));\nvar Diagnostic;\n(function(Diagnostic2) {\n  function create(range, message, severity, code, source, relatedInformation) {\n    let result = { range, message };\n    if (Is.defined(severity)) {\n      result.severity = severity;\n    }\n    if (Is.defined(code)) {\n      result.code = code;\n    }\n    if (Is.defined(source)) {\n      result.source = source;\n    }\n    if (Is.defined(relatedInformation)) {\n      result.relatedInformation = relatedInformation;\n    }\n    return result;\n  }\n  Diagnostic2.create = create;\n  function is(value) {\n    var _a2;\n    let candidate = value;\n    return Is.defined(candidate) && Range.is(candidate.range) && Is.string(candidate.message) && (Is.number(candidate.severity) || Is.undefined(candidate.severity)) && (Is.integer(candidate.code) || Is.string(candidate.code) || Is.undefined(candidate.code)) && (Is.undefined(candidate.codeDescription) || Is.string((_a2 = candidate.codeDescription) === null || _a2 === void 0 ? void 0 : _a2.href)) && (Is.string(candidate.source) || Is.undefined(candidate.source)) && (Is.undefined(candidate.relatedInformation) || Is.typedArray(candidate.relatedInformation, DiagnosticRelatedInformation.is));\n  }\n  Diagnostic2.is = is;\n})(Diagnostic || (Diagnostic = {}));\nvar Command;\n(function(Command2) {\n  function create(title, command, ...args) {\n    let result = { title, command };\n    if (Is.defined(args) && args.length > 0) {\n      result.arguments = args;\n    }\n    return result;\n  }\n  Command2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.title) && Is.string(candidate.command);\n  }\n  Command2.is = is;\n})(Command || (Command = {}));\nvar TextEdit;\n(function(TextEdit2) {\n  function replace(range, newText) {\n    return { range, newText };\n  }\n  TextEdit2.replace = replace;\n  function insert(position, newText) {\n    return { range: { start: position, end: position }, newText };\n  }\n  TextEdit2.insert = insert;\n  function del(range) {\n    return { range, newText: \"\" };\n  }\n  TextEdit2.del = del;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.string(candidate.newText) && Range.is(candidate.range);\n  }\n  TextEdit2.is = is;\n})(TextEdit || (TextEdit = {}));\nvar ChangeAnnotation;\n(function(ChangeAnnotation2) {\n  function create(label, needsConfirmation, description) {\n    const result = { label };\n    if (needsConfirmation !== void 0) {\n      result.needsConfirmation = needsConfirmation;\n    }\n    if (description !== void 0) {\n      result.description = description;\n    }\n    return result;\n  }\n  ChangeAnnotation2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.string(candidate.label) && (Is.boolean(candidate.needsConfirmation) || candidate.needsConfirmation === void 0) && (Is.string(candidate.description) || candidate.description === void 0);\n  }\n  ChangeAnnotation2.is = is;\n})(ChangeAnnotation || (ChangeAnnotation = {}));\nvar ChangeAnnotationIdentifier;\n(function(ChangeAnnotationIdentifier2) {\n  function is(value) {\n    const candidate = value;\n    return Is.string(candidate);\n  }\n  ChangeAnnotationIdentifier2.is = is;\n})(ChangeAnnotationIdentifier || (ChangeAnnotationIdentifier = {}));\nvar AnnotatedTextEdit;\n(function(AnnotatedTextEdit2) {\n  function replace(range, newText, annotation) {\n    return { range, newText, annotationId: annotation };\n  }\n  AnnotatedTextEdit2.replace = replace;\n  function insert(position, newText, annotation) {\n    return { range: { start: position, end: position }, newText, annotationId: annotation };\n  }\n  AnnotatedTextEdit2.insert = insert;\n  function del(range, annotation) {\n    return { range, newText: \"\", annotationId: annotation };\n  }\n  AnnotatedTextEdit2.del = del;\n  function is(value) {\n    const candidate = value;\n    return TextEdit.is(candidate) && (ChangeAnnotation.is(candidate.annotationId) || ChangeAnnotationIdentifier.is(candidate.annotationId));\n  }\n  AnnotatedTextEdit2.is = is;\n})(AnnotatedTextEdit || (AnnotatedTextEdit = {}));\nvar TextDocumentEdit;\n(function(TextDocumentEdit2) {\n  function create(textDocument, edits) {\n    return { textDocument, edits };\n  }\n  TextDocumentEdit2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && OptionalVersionedTextDocumentIdentifier.is(candidate.textDocument) && Array.isArray(candidate.edits);\n  }\n  TextDocumentEdit2.is = is;\n})(TextDocumentEdit || (TextDocumentEdit = {}));\nvar CreateFile;\n(function(CreateFile2) {\n  function create(uri, options, annotation) {\n    let result = {\n      kind: \"create\",\n      uri\n    };\n    if (options !== void 0 && (options.overwrite !== void 0 || options.ignoreIfExists !== void 0)) {\n      result.options = options;\n    }\n    if (annotation !== void 0) {\n      result.annotationId = annotation;\n    }\n    return result;\n  }\n  CreateFile2.create = create;\n  function is(value) {\n    let candidate = value;\n    return candidate && candidate.kind === \"create\" && Is.string(candidate.uri) && (candidate.options === void 0 || (candidate.options.overwrite === void 0 || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === void 0 || Is.boolean(candidate.options.ignoreIfExists))) && (candidate.annotationId === void 0 || ChangeAnnotationIdentifier.is(candidate.annotationId));\n  }\n  CreateFile2.is = is;\n})(CreateFile || (CreateFile = {}));\nvar RenameFile;\n(function(RenameFile2) {\n  function create(oldUri, newUri, options, annotation) {\n    let result = {\n      kind: \"rename\",\n      oldUri,\n      newUri\n    };\n    if (options !== void 0 && (options.overwrite !== void 0 || options.ignoreIfExists !== void 0)) {\n      result.options = options;\n    }\n    if (annotation !== void 0) {\n      result.annotationId = annotation;\n    }\n    return result;\n  }\n  RenameFile2.create = create;\n  function is(value) {\n    let candidate = value;\n    return candidate && candidate.kind === \"rename\" && Is.string(candidate.oldUri) && Is.string(candidate.newUri) && (candidate.options === void 0 || (candidate.options.overwrite === void 0 || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === void 0 || Is.boolean(candidate.options.ignoreIfExists))) && (candidate.annotationId === void 0 || ChangeAnnotationIdentifier.is(candidate.annotationId));\n  }\n  RenameFile2.is = is;\n})(RenameFile || (RenameFile = {}));\nvar DeleteFile;\n(function(DeleteFile2) {\n  function create(uri, options, annotation) {\n    let result = {\n      kind: \"delete\",\n      uri\n    };\n    if (options !== void 0 && (options.recursive !== void 0 || options.ignoreIfNotExists !== void 0)) {\n      result.options = options;\n    }\n    if (annotation !== void 0) {\n      result.annotationId = annotation;\n    }\n    return result;\n  }\n  DeleteFile2.create = create;\n  function is(value) {\n    let candidate = value;\n    return candidate && candidate.kind === \"delete\" && Is.string(candidate.uri) && (candidate.options === void 0 || (candidate.options.recursive === void 0 || Is.boolean(candidate.options.recursive)) && (candidate.options.ignoreIfNotExists === void 0 || Is.boolean(candidate.options.ignoreIfNotExists))) && (candidate.annotationId === void 0 || ChangeAnnotationIdentifier.is(candidate.annotationId));\n  }\n  DeleteFile2.is = is;\n})(DeleteFile || (DeleteFile = {}));\nvar WorkspaceEdit;\n(function(WorkspaceEdit2) {\n  function is(value) {\n    let candidate = value;\n    return candidate && (candidate.changes !== void 0 || candidate.documentChanges !== void 0) && (candidate.documentChanges === void 0 || candidate.documentChanges.every((change) => {\n      if (Is.string(change.kind)) {\n        return CreateFile.is(change) || RenameFile.is(change) || DeleteFile.is(change);\n      } else {\n        return TextDocumentEdit.is(change);\n      }\n    }));\n  }\n  WorkspaceEdit2.is = is;\n})(WorkspaceEdit || (WorkspaceEdit = {}));\nvar TextDocumentIdentifier;\n(function(TextDocumentIdentifier2) {\n  function create(uri) {\n    return { uri };\n  }\n  TextDocumentIdentifier2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.uri);\n  }\n  TextDocumentIdentifier2.is = is;\n})(TextDocumentIdentifier || (TextDocumentIdentifier = {}));\nvar VersionedTextDocumentIdentifier;\n(function(VersionedTextDocumentIdentifier2) {\n  function create(uri, version) {\n    return { uri, version };\n  }\n  VersionedTextDocumentIdentifier2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.uri) && Is.integer(candidate.version);\n  }\n  VersionedTextDocumentIdentifier2.is = is;\n})(VersionedTextDocumentIdentifier || (VersionedTextDocumentIdentifier = {}));\nvar OptionalVersionedTextDocumentIdentifier;\n(function(OptionalVersionedTextDocumentIdentifier2) {\n  function create(uri, version) {\n    return { uri, version };\n  }\n  OptionalVersionedTextDocumentIdentifier2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.uri) && (candidate.version === null || Is.integer(candidate.version));\n  }\n  OptionalVersionedTextDocumentIdentifier2.is = is;\n})(OptionalVersionedTextDocumentIdentifier || (OptionalVersionedTextDocumentIdentifier = {}));\nvar TextDocumentItem;\n(function(TextDocumentItem2) {\n  function create(uri, languageId, version, text) {\n    return { uri, languageId, version, text };\n  }\n  TextDocumentItem2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.uri) && Is.string(candidate.languageId) && Is.integer(candidate.version) && Is.string(candidate.text);\n  }\n  TextDocumentItem2.is = is;\n})(TextDocumentItem || (TextDocumentItem = {}));\nvar MarkupKind;\n(function(MarkupKind2) {\n  MarkupKind2.PlainText = \"plaintext\";\n  MarkupKind2.Markdown = \"markdown\";\n  function is(value) {\n    const candidate = value;\n    return candidate === MarkupKind2.PlainText || candidate === MarkupKind2.Markdown;\n  }\n  MarkupKind2.is = is;\n})(MarkupKind || (MarkupKind = {}));\nvar MarkupContent;\n(function(MarkupContent2) {\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(value) && MarkupKind.is(candidate.kind) && Is.string(candidate.value);\n  }\n  MarkupContent2.is = is;\n})(MarkupContent || (MarkupContent = {}));\nvar CompletionItemKind;\n(function(CompletionItemKind2) {\n  CompletionItemKind2.Text = 1;\n  CompletionItemKind2.Method = 2;\n  CompletionItemKind2.Function = 3;\n  CompletionItemKind2.Constructor = 4;\n  CompletionItemKind2.Field = 5;\n  CompletionItemKind2.Variable = 6;\n  CompletionItemKind2.Class = 7;\n  CompletionItemKind2.Interface = 8;\n  CompletionItemKind2.Module = 9;\n  CompletionItemKind2.Property = 10;\n  CompletionItemKind2.Unit = 11;\n  CompletionItemKind2.Value = 12;\n  CompletionItemKind2.Enum = 13;\n  CompletionItemKind2.Keyword = 14;\n  CompletionItemKind2.Snippet = 15;\n  CompletionItemKind2.Color = 16;\n  CompletionItemKind2.File = 17;\n  CompletionItemKind2.Reference = 18;\n  CompletionItemKind2.Folder = 19;\n  CompletionItemKind2.EnumMember = 20;\n  CompletionItemKind2.Constant = 21;\n  CompletionItemKind2.Struct = 22;\n  CompletionItemKind2.Event = 23;\n  CompletionItemKind2.Operator = 24;\n  CompletionItemKind2.TypeParameter = 25;\n})(CompletionItemKind || (CompletionItemKind = {}));\nvar InsertTextFormat;\n(function(InsertTextFormat2) {\n  InsertTextFormat2.PlainText = 1;\n  InsertTextFormat2.Snippet = 2;\n})(InsertTextFormat || (InsertTextFormat = {}));\nvar CompletionItemTag;\n(function(CompletionItemTag2) {\n  CompletionItemTag2.Deprecated = 1;\n})(CompletionItemTag || (CompletionItemTag = {}));\nvar InsertReplaceEdit;\n(function(InsertReplaceEdit2) {\n  function create(newText, insert, replace) {\n    return { newText, insert, replace };\n  }\n  InsertReplaceEdit2.create = create;\n  function is(value) {\n    const candidate = value;\n    return candidate && Is.string(candidate.newText) && Range.is(candidate.insert) && Range.is(candidate.replace);\n  }\n  InsertReplaceEdit2.is = is;\n})(InsertReplaceEdit || (InsertReplaceEdit = {}));\nvar InsertTextMode;\n(function(InsertTextMode2) {\n  InsertTextMode2.asIs = 1;\n  InsertTextMode2.adjustIndentation = 2;\n})(InsertTextMode || (InsertTextMode = {}));\nvar CompletionItemLabelDetails;\n(function(CompletionItemLabelDetails2) {\n  function is(value) {\n    const candidate = value;\n    return candidate && (Is.string(candidate.detail) || candidate.detail === void 0) && (Is.string(candidate.description) || candidate.description === void 0);\n  }\n  CompletionItemLabelDetails2.is = is;\n})(CompletionItemLabelDetails || (CompletionItemLabelDetails = {}));\nvar CompletionItem;\n(function(CompletionItem2) {\n  function create(label) {\n    return { label };\n  }\n  CompletionItem2.create = create;\n})(CompletionItem || (CompletionItem = {}));\nvar CompletionList;\n(function(CompletionList2) {\n  function create(items, isIncomplete) {\n    return { items: items ? items : [], isIncomplete: !!isIncomplete };\n  }\n  CompletionList2.create = create;\n})(CompletionList || (CompletionList = {}));\nvar MarkedString;\n(function(MarkedString2) {\n  function fromPlainText(plainText) {\n    return plainText.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g, \"\\\\$&\");\n  }\n  MarkedString2.fromPlainText = fromPlainText;\n  function is(value) {\n    const candidate = value;\n    return Is.string(candidate) || Is.objectLiteral(candidate) && Is.string(candidate.language) && Is.string(candidate.value);\n  }\n  MarkedString2.is = is;\n})(MarkedString || (MarkedString = {}));\nvar Hover;\n(function(Hover2) {\n  function is(value) {\n    let candidate = value;\n    return !!candidate && Is.objectLiteral(candidate) && (MarkupContent.is(candidate.contents) || MarkedString.is(candidate.contents) || Is.typedArray(candidate.contents, MarkedString.is)) && (value.range === void 0 || Range.is(value.range));\n  }\n  Hover2.is = is;\n})(Hover || (Hover = {}));\nvar ParameterInformation;\n(function(ParameterInformation2) {\n  function create(label, documentation) {\n    return documentation ? { label, documentation } : { label };\n  }\n  ParameterInformation2.create = create;\n})(ParameterInformation || (ParameterInformation = {}));\nvar SignatureInformation;\n(function(SignatureInformation2) {\n  function create(label, documentation, ...parameters) {\n    let result = { label };\n    if (Is.defined(documentation)) {\n      result.documentation = documentation;\n    }\n    if (Is.defined(parameters)) {\n      result.parameters = parameters;\n    } else {\n      result.parameters = [];\n    }\n    return result;\n  }\n  SignatureInformation2.create = create;\n})(SignatureInformation || (SignatureInformation = {}));\nvar DocumentHighlightKind;\n(function(DocumentHighlightKind2) {\n  DocumentHighlightKind2.Text = 1;\n  DocumentHighlightKind2.Read = 2;\n  DocumentHighlightKind2.Write = 3;\n})(DocumentHighlightKind || (DocumentHighlightKind = {}));\nvar DocumentHighlight;\n(function(DocumentHighlight2) {\n  function create(range, kind) {\n    let result = { range };\n    if (Is.number(kind)) {\n      result.kind = kind;\n    }\n    return result;\n  }\n  DocumentHighlight2.create = create;\n})(DocumentHighlight || (DocumentHighlight = {}));\nvar SymbolKind;\n(function(SymbolKind2) {\n  SymbolKind2.File = 1;\n  SymbolKind2.Module = 2;\n  SymbolKind2.Namespace = 3;\n  SymbolKind2.Package = 4;\n  SymbolKind2.Class = 5;\n  SymbolKind2.Method = 6;\n  SymbolKind2.Property = 7;\n  SymbolKind2.Field = 8;\n  SymbolKind2.Constructor = 9;\n  SymbolKind2.Enum = 10;\n  SymbolKind2.Interface = 11;\n  SymbolKind2.Function = 12;\n  SymbolKind2.Variable = 13;\n  SymbolKind2.Constant = 14;\n  SymbolKind2.String = 15;\n  SymbolKind2.Number = 16;\n  SymbolKind2.Boolean = 17;\n  SymbolKind2.Array = 18;\n  SymbolKind2.Object = 19;\n  SymbolKind2.Key = 20;\n  SymbolKind2.Null = 21;\n  SymbolKind2.EnumMember = 22;\n  SymbolKind2.Struct = 23;\n  SymbolKind2.Event = 24;\n  SymbolKind2.Operator = 25;\n  SymbolKind2.TypeParameter = 26;\n})(SymbolKind || (SymbolKind = {}));\nvar SymbolTag;\n(function(SymbolTag2) {\n  SymbolTag2.Deprecated = 1;\n})(SymbolTag || (SymbolTag = {}));\nvar SymbolInformation;\n(function(SymbolInformation2) {\n  function create(name, kind, range, uri, containerName) {\n    let result = {\n      name,\n      kind,\n      location: { uri, range }\n    };\n    if (containerName) {\n      result.containerName = containerName;\n    }\n    return result;\n  }\n  SymbolInformation2.create = create;\n})(SymbolInformation || (SymbolInformation = {}));\nvar WorkspaceSymbol;\n(function(WorkspaceSymbol2) {\n  function create(name, kind, uri, range) {\n    return range !== void 0 ? { name, kind, location: { uri, range } } : { name, kind, location: { uri } };\n  }\n  WorkspaceSymbol2.create = create;\n})(WorkspaceSymbol || (WorkspaceSymbol = {}));\nvar DocumentSymbol;\n(function(DocumentSymbol2) {\n  function create(name, detail, kind, range, selectionRange, children) {\n    let result = {\n      name,\n      detail,\n      kind,\n      range,\n      selectionRange\n    };\n    if (children !== void 0) {\n      result.children = children;\n    }\n    return result;\n  }\n  DocumentSymbol2.create = create;\n  function is(value) {\n    let candidate = value;\n    return candidate && Is.string(candidate.name) && Is.number(candidate.kind) && Range.is(candidate.range) && Range.is(candidate.selectionRange) && (candidate.detail === void 0 || Is.string(candidate.detail)) && (candidate.deprecated === void 0 || Is.boolean(candidate.deprecated)) && (candidate.children === void 0 || Array.isArray(candidate.children)) && (candidate.tags === void 0 || Array.isArray(candidate.tags));\n  }\n  DocumentSymbol2.is = is;\n})(DocumentSymbol || (DocumentSymbol = {}));\nvar CodeActionKind;\n(function(CodeActionKind2) {\n  CodeActionKind2.Empty = \"\";\n  CodeActionKind2.QuickFix = \"quickfix\";\n  CodeActionKind2.Refactor = \"refactor\";\n  CodeActionKind2.RefactorExtract = \"refactor.extract\";\n  CodeActionKind2.RefactorInline = \"refactor.inline\";\n  CodeActionKind2.RefactorRewrite = \"refactor.rewrite\";\n  CodeActionKind2.Source = \"source\";\n  CodeActionKind2.SourceOrganizeImports = \"source.organizeImports\";\n  CodeActionKind2.SourceFixAll = \"source.fixAll\";\n})(CodeActionKind || (CodeActionKind = {}));\nvar CodeActionTriggerKind;\n(function(CodeActionTriggerKind2) {\n  CodeActionTriggerKind2.Invoked = 1;\n  CodeActionTriggerKind2.Automatic = 2;\n})(CodeActionTriggerKind || (CodeActionTriggerKind = {}));\nvar CodeActionContext;\n(function(CodeActionContext2) {\n  function create(diagnostics, only, triggerKind) {\n    let result = { diagnostics };\n    if (only !== void 0 && only !== null) {\n      result.only = only;\n    }\n    if (triggerKind !== void 0 && triggerKind !== null) {\n      result.triggerKind = triggerKind;\n    }\n    return result;\n  }\n  CodeActionContext2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.typedArray(candidate.diagnostics, Diagnostic.is) && (candidate.only === void 0 || Is.typedArray(candidate.only, Is.string)) && (candidate.triggerKind === void 0 || candidate.triggerKind === CodeActionTriggerKind.Invoked || candidate.triggerKind === CodeActionTriggerKind.Automatic);\n  }\n  CodeActionContext2.is = is;\n})(CodeActionContext || (CodeActionContext = {}));\nvar CodeAction;\n(function(CodeAction2) {\n  function create(title, kindOrCommandOrEdit, kind) {\n    let result = { title };\n    let checkKind = true;\n    if (typeof kindOrCommandOrEdit === \"string\") {\n      checkKind = false;\n      result.kind = kindOrCommandOrEdit;\n    } else if (Command.is(kindOrCommandOrEdit)) {\n      result.command = kindOrCommandOrEdit;\n    } else {\n      result.edit = kindOrCommandOrEdit;\n    }\n    if (checkKind && kind !== void 0) {\n      result.kind = kind;\n    }\n    return result;\n  }\n  CodeAction2.create = create;\n  function is(value) {\n    let candidate = value;\n    return candidate && Is.string(candidate.title) && (candidate.diagnostics === void 0 || Is.typedArray(candidate.diagnostics, Diagnostic.is)) && (candidate.kind === void 0 || Is.string(candidate.kind)) && (candidate.edit !== void 0 || candidate.command !== void 0) && (candidate.command === void 0 || Command.is(candidate.command)) && (candidate.isPreferred === void 0 || Is.boolean(candidate.isPreferred)) && (candidate.edit === void 0 || WorkspaceEdit.is(candidate.edit));\n  }\n  CodeAction2.is = is;\n})(CodeAction || (CodeAction = {}));\nvar CodeLens;\n(function(CodeLens2) {\n  function create(range, data) {\n    let result = { range };\n    if (Is.defined(data)) {\n      result.data = data;\n    }\n    return result;\n  }\n  CodeLens2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.command) || Command.is(candidate.command));\n  }\n  CodeLens2.is = is;\n})(CodeLens || (CodeLens = {}));\nvar FormattingOptions;\n(function(FormattingOptions2) {\n  function create(tabSize, insertSpaces) {\n    return { tabSize, insertSpaces };\n  }\n  FormattingOptions2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.uinteger(candidate.tabSize) && Is.boolean(candidate.insertSpaces);\n  }\n  FormattingOptions2.is = is;\n})(FormattingOptions || (FormattingOptions = {}));\nvar DocumentLink;\n(function(DocumentLink2) {\n  function create(range, target, data) {\n    return { range, target, data };\n  }\n  DocumentLink2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.target) || Is.string(candidate.target));\n  }\n  DocumentLink2.is = is;\n})(DocumentLink || (DocumentLink = {}));\nvar SelectionRange;\n(function(SelectionRange2) {\n  function create(range, parent) {\n    return { range, parent };\n  }\n  SelectionRange2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.objectLiteral(candidate) && Range.is(candidate.range) && (candidate.parent === void 0 || SelectionRange2.is(candidate.parent));\n  }\n  SelectionRange2.is = is;\n})(SelectionRange || (SelectionRange = {}));\nvar SemanticTokenTypes;\n(function(SemanticTokenTypes2) {\n  SemanticTokenTypes2[\"namespace\"] = \"namespace\";\n  SemanticTokenTypes2[\"type\"] = \"type\";\n  SemanticTokenTypes2[\"class\"] = \"class\";\n  SemanticTokenTypes2[\"enum\"] = \"enum\";\n  SemanticTokenTypes2[\"interface\"] = \"interface\";\n  SemanticTokenTypes2[\"struct\"] = \"struct\";\n  SemanticTokenTypes2[\"typeParameter\"] = \"typeParameter\";\n  SemanticTokenTypes2[\"parameter\"] = \"parameter\";\n  SemanticTokenTypes2[\"variable\"] = \"variable\";\n  SemanticTokenTypes2[\"property\"] = \"property\";\n  SemanticTokenTypes2[\"enumMember\"] = \"enumMember\";\n  SemanticTokenTypes2[\"event\"] = \"event\";\n  SemanticTokenTypes2[\"function\"] = \"function\";\n  SemanticTokenTypes2[\"method\"] = \"method\";\n  SemanticTokenTypes2[\"macro\"] = \"macro\";\n  SemanticTokenTypes2[\"keyword\"] = \"keyword\";\n  SemanticTokenTypes2[\"modifier\"] = \"modifier\";\n  SemanticTokenTypes2[\"comment\"] = \"comment\";\n  SemanticTokenTypes2[\"string\"] = \"string\";\n  SemanticTokenTypes2[\"number\"] = \"number\";\n  SemanticTokenTypes2[\"regexp\"] = \"regexp\";\n  SemanticTokenTypes2[\"operator\"] = \"operator\";\n  SemanticTokenTypes2[\"decorator\"] = \"decorator\";\n})(SemanticTokenTypes || (SemanticTokenTypes = {}));\nvar SemanticTokenModifiers;\n(function(SemanticTokenModifiers2) {\n  SemanticTokenModifiers2[\"declaration\"] = \"declaration\";\n  SemanticTokenModifiers2[\"definition\"] = \"definition\";\n  SemanticTokenModifiers2[\"readonly\"] = \"readonly\";\n  SemanticTokenModifiers2[\"static\"] = \"static\";\n  SemanticTokenModifiers2[\"deprecated\"] = \"deprecated\";\n  SemanticTokenModifiers2[\"abstract\"] = \"abstract\";\n  SemanticTokenModifiers2[\"async\"] = \"async\";\n  SemanticTokenModifiers2[\"modification\"] = \"modification\";\n  SemanticTokenModifiers2[\"documentation\"] = \"documentation\";\n  SemanticTokenModifiers2[\"defaultLibrary\"] = \"defaultLibrary\";\n})(SemanticTokenModifiers || (SemanticTokenModifiers = {}));\nvar SemanticTokens;\n(function(SemanticTokens2) {\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && (candidate.resultId === void 0 || typeof candidate.resultId === \"string\") && Array.isArray(candidate.data) && (candidate.data.length === 0 || typeof candidate.data[0] === \"number\");\n  }\n  SemanticTokens2.is = is;\n})(SemanticTokens || (SemanticTokens = {}));\nvar InlineValueText;\n(function(InlineValueText2) {\n  function create(range, text) {\n    return { range, text };\n  }\n  InlineValueText2.create = create;\n  function is(value) {\n    const candidate = value;\n    return candidate !== void 0 && candidate !== null && Range.is(candidate.range) && Is.string(candidate.text);\n  }\n  InlineValueText2.is = is;\n})(InlineValueText || (InlineValueText = {}));\nvar InlineValueVariableLookup;\n(function(InlineValueVariableLookup2) {\n  function create(range, variableName, caseSensitiveLookup) {\n    return { range, variableName, caseSensitiveLookup };\n  }\n  InlineValueVariableLookup2.create = create;\n  function is(value) {\n    const candidate = value;\n    return candidate !== void 0 && candidate !== null && Range.is(candidate.range) && Is.boolean(candidate.caseSensitiveLookup) && (Is.string(candidate.variableName) || candidate.variableName === void 0);\n  }\n  InlineValueVariableLookup2.is = is;\n})(InlineValueVariableLookup || (InlineValueVariableLookup = {}));\nvar InlineValueEvaluatableExpression;\n(function(InlineValueEvaluatableExpression2) {\n  function create(range, expression) {\n    return { range, expression };\n  }\n  InlineValueEvaluatableExpression2.create = create;\n  function is(value) {\n    const candidate = value;\n    return candidate !== void 0 && candidate !== null && Range.is(candidate.range) && (Is.string(candidate.expression) || candidate.expression === void 0);\n  }\n  InlineValueEvaluatableExpression2.is = is;\n})(InlineValueEvaluatableExpression || (InlineValueEvaluatableExpression = {}));\nvar InlineValueContext;\n(function(InlineValueContext2) {\n  function create(frameId, stoppedLocation) {\n    return { frameId, stoppedLocation };\n  }\n  InlineValueContext2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.defined(candidate) && Range.is(value.stoppedLocation);\n  }\n  InlineValueContext2.is = is;\n})(InlineValueContext || (InlineValueContext = {}));\nvar InlayHintKind;\n(function(InlayHintKind2) {\n  InlayHintKind2.Type = 1;\n  InlayHintKind2.Parameter = 2;\n  function is(value) {\n    return value === 1 || value === 2;\n  }\n  InlayHintKind2.is = is;\n})(InlayHintKind || (InlayHintKind = {}));\nvar InlayHintLabelPart;\n(function(InlayHintLabelPart2) {\n  function create(value) {\n    return { value };\n  }\n  InlayHintLabelPart2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && (candidate.tooltip === void 0 || Is.string(candidate.tooltip) || MarkupContent.is(candidate.tooltip)) && (candidate.location === void 0 || Location.is(candidate.location)) && (candidate.command === void 0 || Command.is(candidate.command));\n  }\n  InlayHintLabelPart2.is = is;\n})(InlayHintLabelPart || (InlayHintLabelPart = {}));\nvar InlayHint;\n(function(InlayHint2) {\n  function create(position, label, kind) {\n    const result = { position, label };\n    if (kind !== void 0) {\n      result.kind = kind;\n    }\n    return result;\n  }\n  InlayHint2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Position.is(candidate.position) && (Is.string(candidate.label) || Is.typedArray(candidate.label, InlayHintLabelPart.is)) && (candidate.kind === void 0 || InlayHintKind.is(candidate.kind)) && candidate.textEdits === void 0 || Is.typedArray(candidate.textEdits, TextEdit.is) && (candidate.tooltip === void 0 || Is.string(candidate.tooltip) || MarkupContent.is(candidate.tooltip)) && (candidate.paddingLeft === void 0 || Is.boolean(candidate.paddingLeft)) && (candidate.paddingRight === void 0 || Is.boolean(candidate.paddingRight));\n  }\n  InlayHint2.is = is;\n})(InlayHint || (InlayHint = {}));\nvar StringValue;\n(function(StringValue2) {\n  function createSnippet(value) {\n    return { kind: \"snippet\", value };\n  }\n  StringValue2.createSnippet = createSnippet;\n})(StringValue || (StringValue = {}));\nvar InlineCompletionItem;\n(function(InlineCompletionItem2) {\n  function create(insertText, filterText, range, command) {\n    return { insertText, filterText, range, command };\n  }\n  InlineCompletionItem2.create = create;\n})(InlineCompletionItem || (InlineCompletionItem = {}));\nvar InlineCompletionList;\n(function(InlineCompletionList2) {\n  function create(items) {\n    return { items };\n  }\n  InlineCompletionList2.create = create;\n})(InlineCompletionList || (InlineCompletionList = {}));\nvar InlineCompletionTriggerKind;\n(function(InlineCompletionTriggerKind2) {\n  InlineCompletionTriggerKind2.Invoked = 0;\n  InlineCompletionTriggerKind2.Automatic = 1;\n})(InlineCompletionTriggerKind || (InlineCompletionTriggerKind = {}));\nvar SelectedCompletionInfo;\n(function(SelectedCompletionInfo2) {\n  function create(range, text) {\n    return { range, text };\n  }\n  SelectedCompletionInfo2.create = create;\n})(SelectedCompletionInfo || (SelectedCompletionInfo = {}));\nvar InlineCompletionContext;\n(function(InlineCompletionContext2) {\n  function create(triggerKind, selectedCompletionInfo) {\n    return { triggerKind, selectedCompletionInfo };\n  }\n  InlineCompletionContext2.create = create;\n})(InlineCompletionContext || (InlineCompletionContext = {}));\nvar WorkspaceFolder;\n(function(WorkspaceFolder2) {\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && URI.is(candidate.uri) && Is.string(candidate.name);\n  }\n  WorkspaceFolder2.is = is;\n})(WorkspaceFolder || (WorkspaceFolder = {}));\nvar TextDocument;\n(function(TextDocument3) {\n  function create(uri, languageId, version, content) {\n    return new FullTextDocument(uri, languageId, version, content);\n  }\n  TextDocument3.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.uri) && (Is.undefined(candidate.languageId) || Is.string(candidate.languageId)) && Is.uinteger(candidate.lineCount) && Is.func(candidate.getText) && Is.func(candidate.positionAt) && Is.func(candidate.offsetAt) ? true : false;\n  }\n  TextDocument3.is = is;\n  function applyEdits(document, edits) {\n    let text = document.getText();\n    let sortedEdits = mergeSort2(edits, (a, b) => {\n      let diff = a.range.start.line - b.range.start.line;\n      if (diff === 0) {\n        return a.range.start.character - b.range.start.character;\n      }\n      return diff;\n    });\n    let lastModifiedOffset = text.length;\n    for (let i = sortedEdits.length - 1; i >= 0; i--) {\n      let e = sortedEdits[i];\n      let startOffset = document.offsetAt(e.range.start);\n      let endOffset = document.offsetAt(e.range.end);\n      if (endOffset <= lastModifiedOffset) {\n        text = text.substring(0, startOffset) + e.newText + text.substring(endOffset, text.length);\n      } else {\n        throw new Error(\"Overlapping edit\");\n      }\n      lastModifiedOffset = startOffset;\n    }\n    return text;\n  }\n  TextDocument3.applyEdits = applyEdits;\n  function mergeSort2(data, compare) {\n    if (data.length <= 1) {\n      return data;\n    }\n    const p = data.length / 2 | 0;\n    const left = data.slice(0, p);\n    const right = data.slice(p);\n    mergeSort2(left, compare);\n    mergeSort2(right, compare);\n    let leftIdx = 0;\n    let rightIdx = 0;\n    let i = 0;\n    while (leftIdx < left.length && rightIdx < right.length) {\n      let ret = compare(left[leftIdx], right[rightIdx]);\n      if (ret <= 0) {\n        data[i++] = left[leftIdx++];\n      } else {\n        data[i++] = right[rightIdx++];\n      }\n    }\n    while (leftIdx < left.length) {\n      data[i++] = left[leftIdx++];\n    }\n    while (rightIdx < right.length) {\n      data[i++] = right[rightIdx++];\n    }\n    return data;\n  }\n})(TextDocument || (TextDocument = {}));\nvar FullTextDocument = class {\n  constructor(uri, languageId, version, content) {\n    this._uri = uri;\n    this._languageId = languageId;\n    this._version = version;\n    this._content = content;\n    this._lineOffsets = void 0;\n  }\n  get uri() {\n    return this._uri;\n  }\n  get languageId() {\n    return this._languageId;\n  }\n  get version() {\n    return this._version;\n  }\n  getText(range) {\n    if (range) {\n      let start = this.offsetAt(range.start);\n      let end = this.offsetAt(range.end);\n      return this._content.substring(start, end);\n    }\n    return this._content;\n  }\n  update(event, version) {\n    this._content = event.text;\n    this._version = version;\n    this._lineOffsets = void 0;\n  }\n  getLineOffsets() {\n    if (this._lineOffsets === void 0) {\n      let lineOffsets = [];\n      let text = this._content;\n      let isLineStart = true;\n      for (let i = 0; i < text.length; i++) {\n        if (isLineStart) {\n          lineOffsets.push(i);\n          isLineStart = false;\n        }\n        let ch = text.charAt(i);\n        isLineStart = ch === \"\\r\" || ch === \"\\n\";\n        if (ch === \"\\r\" && i + 1 < text.length && text.charAt(i + 1) === \"\\n\") {\n          i++;\n        }\n      }\n      if (isLineStart && text.length > 0) {\n        lineOffsets.push(text.length);\n      }\n      this._lineOffsets = lineOffsets;\n    }\n    return this._lineOffsets;\n  }\n  positionAt(offset) {\n    offset = Math.max(Math.min(offset, this._content.length), 0);\n    let lineOffsets = this.getLineOffsets();\n    let low = 0, high = lineOffsets.length;\n    if (high === 0) {\n      return Position.create(0, offset);\n    }\n    while (low < high) {\n      let mid = Math.floor((low + high) / 2);\n      if (lineOffsets[mid] > offset) {\n        high = mid;\n      } else {\n        low = mid + 1;\n      }\n    }\n    let line = low - 1;\n    return Position.create(line, offset - lineOffsets[line]);\n  }\n  offsetAt(position) {\n    let lineOffsets = this.getLineOffsets();\n    if (position.line >= lineOffsets.length) {\n      return this._content.length;\n    } else if (position.line < 0) {\n      return 0;\n    }\n    let lineOffset = lineOffsets[position.line];\n    let nextLineOffset = position.line + 1 < lineOffsets.length ? lineOffsets[position.line + 1] : this._content.length;\n    return Math.max(Math.min(lineOffset + position.character, nextLineOffset), lineOffset);\n  }\n  get lineCount() {\n    return this.getLineOffsets().length;\n  }\n};\nvar Is;\n(function(Is2) {\n  const toString = Object.prototype.toString;\n  function defined(value) {\n    return typeof value !== \"undefined\";\n  }\n  Is2.defined = defined;\n  function undefined2(value) {\n    return typeof value === \"undefined\";\n  }\n  Is2.undefined = undefined2;\n  function boolean(value) {\n    return value === true || value === false;\n  }\n  Is2.boolean = boolean;\n  function string(value) {\n    return toString.call(value) === \"[object String]\";\n  }\n  Is2.string = string;\n  function number(value) {\n    return toString.call(value) === \"[object Number]\";\n  }\n  Is2.number = number;\n  function numberRange(value, min, max) {\n    return toString.call(value) === \"[object Number]\" && min <= value && value <= max;\n  }\n  Is2.numberRange = numberRange;\n  function integer2(value) {\n    return toString.call(value) === \"[object Number]\" && -2147483648 <= value && value <= 2147483647;\n  }\n  Is2.integer = integer2;\n  function uinteger2(value) {\n    return toString.call(value) === \"[object Number]\" && 0 <= value && value <= 2147483647;\n  }\n  Is2.uinteger = uinteger2;\n  function func(value) {\n    return toString.call(value) === \"[object Function]\";\n  }\n  Is2.func = func;\n  function objectLiteral(value) {\n    return value !== null && typeof value === \"object\";\n  }\n  Is2.objectLiteral = objectLiteral;\n  function typedArray(value, check) {\n    return Array.isArray(value) && value.every(check);\n  }\n  Is2.typedArray = typedArray;\n})(Is || (Is = {}));\n\n// node_modules/vscode-languageserver-textdocument/lib/esm/main.js\nvar FullTextDocument2 = class _FullTextDocument {\n  constructor(uri, languageId, version, content) {\n    this._uri = uri;\n    this._languageId = languageId;\n    this._version = version;\n    this._content = content;\n    this._lineOffsets = void 0;\n  }\n  get uri() {\n    return this._uri;\n  }\n  get languageId() {\n    return this._languageId;\n  }\n  get version() {\n    return this._version;\n  }\n  getText(range) {\n    if (range) {\n      const start = this.offsetAt(range.start);\n      const end = this.offsetAt(range.end);\n      return this._content.substring(start, end);\n    }\n    return this._content;\n  }\n  update(changes, version) {\n    for (let change of changes) {\n      if (_FullTextDocument.isIncremental(change)) {\n        const range = getWellformedRange(change.range);\n        const startOffset = this.offsetAt(range.start);\n        const endOffset = this.offsetAt(range.end);\n        this._content = this._content.substring(0, startOffset) + change.text + this._content.substring(endOffset, this._content.length);\n        const startLine = Math.max(range.start.line, 0);\n        const endLine = Math.max(range.end.line, 0);\n        let lineOffsets = this._lineOffsets;\n        const addedLineOffsets = computeLineOffsets(change.text, false, startOffset);\n        if (endLine - startLine === addedLineOffsets.length) {\n          for (let i = 0, len = addedLineOffsets.length; i < len; i++) {\n            lineOffsets[i + startLine + 1] = addedLineOffsets[i];\n          }\n        } else {\n          if (addedLineOffsets.length < 1e4) {\n            lineOffsets.splice(startLine + 1, endLine - startLine, ...addedLineOffsets);\n          } else {\n            this._lineOffsets = lineOffsets = lineOffsets.slice(0, startLine + 1).concat(addedLineOffsets, lineOffsets.slice(endLine + 1));\n          }\n        }\n        const diff = change.text.length - (endOffset - startOffset);\n        if (diff !== 0) {\n          for (let i = startLine + 1 + addedLineOffsets.length, len = lineOffsets.length; i < len; i++) {\n            lineOffsets[i] = lineOffsets[i] + diff;\n          }\n        }\n      } else if (_FullTextDocument.isFull(change)) {\n        this._content = change.text;\n        this._lineOffsets = void 0;\n      } else {\n        throw new Error(\"Unknown change event received\");\n      }\n    }\n    this._version = version;\n  }\n  getLineOffsets() {\n    if (this._lineOffsets === void 0) {\n      this._lineOffsets = computeLineOffsets(this._content, true);\n    }\n    return this._lineOffsets;\n  }\n  positionAt(offset) {\n    offset = Math.max(Math.min(offset, this._content.length), 0);\n    let lineOffsets = this.getLineOffsets();\n    let low = 0, high = lineOffsets.length;\n    if (high === 0) {\n      return { line: 0, character: offset };\n    }\n    while (low < high) {\n      let mid = Math.floor((low + high) / 2);\n      if (lineOffsets[mid] > offset) {\n        high = mid;\n      } else {\n        low = mid + 1;\n      }\n    }\n    let line = low - 1;\n    return { line, character: offset - lineOffsets[line] };\n  }\n  offsetAt(position) {\n    let lineOffsets = this.getLineOffsets();\n    if (position.line >= lineOffsets.length) {\n      return this._content.length;\n    } else if (position.line < 0) {\n      return 0;\n    }\n    let lineOffset = lineOffsets[position.line];\n    let nextLineOffset = position.line + 1 < lineOffsets.length ? lineOffsets[position.line + 1] : this._content.length;\n    return Math.max(Math.min(lineOffset + position.character, nextLineOffset), lineOffset);\n  }\n  get lineCount() {\n    return this.getLineOffsets().length;\n  }\n  static isIncremental(event) {\n    let candidate = event;\n    return candidate !== void 0 && candidate !== null && typeof candidate.text === \"string\" && candidate.range !== void 0 && (candidate.rangeLength === void 0 || typeof candidate.rangeLength === \"number\");\n  }\n  static isFull(event) {\n    let candidate = event;\n    return candidate !== void 0 && candidate !== null && typeof candidate.text === \"string\" && candidate.range === void 0 && candidate.rangeLength === void 0;\n  }\n};\nvar TextDocument2;\n(function(TextDocument3) {\n  function create(uri, languageId, version, content) {\n    return new FullTextDocument2(uri, languageId, version, content);\n  }\n  TextDocument3.create = create;\n  function update(document, changes, version) {\n    if (document instanceof FullTextDocument2) {\n      document.update(changes, version);\n      return document;\n    } else {\n      throw new Error(\"TextDocument.update: document must be created by TextDocument.create\");\n    }\n  }\n  TextDocument3.update = update;\n  function applyEdits(document, edits) {\n    let text = document.getText();\n    let sortedEdits = mergeSort(edits.map(getWellformedEdit), (a, b) => {\n      let diff = a.range.start.line - b.range.start.line;\n      if (diff === 0) {\n        return a.range.start.character - b.range.start.character;\n      }\n      return diff;\n    });\n    let lastModifiedOffset = 0;\n    const spans = [];\n    for (const e of sortedEdits) {\n      let startOffset = document.offsetAt(e.range.start);\n      if (startOffset < lastModifiedOffset) {\n        throw new Error(\"Overlapping edit\");\n      } else if (startOffset > lastModifiedOffset) {\n        spans.push(text.substring(lastModifiedOffset, startOffset));\n      }\n      if (e.newText.length) {\n        spans.push(e.newText);\n      }\n      lastModifiedOffset = document.offsetAt(e.range.end);\n    }\n    spans.push(text.substr(lastModifiedOffset));\n    return spans.join(\"\");\n  }\n  TextDocument3.applyEdits = applyEdits;\n})(TextDocument2 || (TextDocument2 = {}));\nfunction mergeSort(data, compare) {\n  if (data.length <= 1) {\n    return data;\n  }\n  const p = data.length / 2 | 0;\n  const left = data.slice(0, p);\n  const right = data.slice(p);\n  mergeSort(left, compare);\n  mergeSort(right, compare);\n  let leftIdx = 0;\n  let rightIdx = 0;\n  let i = 0;\n  while (leftIdx < left.length && rightIdx < right.length) {\n    let ret = compare(left[leftIdx], right[rightIdx]);\n    if (ret <= 0) {\n      data[i++] = left[leftIdx++];\n    } else {\n      data[i++] = right[rightIdx++];\n    }\n  }\n  while (leftIdx < left.length) {\n    data[i++] = left[leftIdx++];\n  }\n  while (rightIdx < right.length) {\n    data[i++] = right[rightIdx++];\n  }\n  return data;\n}\nfunction computeLineOffsets(text, isAtLineStart, textOffset = 0) {\n  const result = isAtLineStart ? [textOffset] : [];\n  for (let i = 0; i < text.length; i++) {\n    let ch = text.charCodeAt(i);\n    if (ch === 13 || ch === 10) {\n      if (ch === 13 && i + 1 < text.length && text.charCodeAt(i + 1) === 10) {\n        i++;\n      }\n      result.push(textOffset + i + 1);\n    }\n  }\n  return result;\n}\nfunction getWellformedRange(range) {\n  const start = range.start;\n  const end = range.end;\n  if (start.line > end.line || start.line === end.line && start.character > end.character) {\n    return { start: end, end: start };\n  }\n  return range;\n}\nfunction getWellformedEdit(textEdit) {\n  const range = getWellformedRange(textEdit.range);\n  if (range !== textEdit.range) {\n    return { newText: textEdit.newText, range };\n  }\n  return textEdit;\n}\n\n// node_modules/vscode-html-languageservice/lib/esm/htmlLanguageTypes.js\nvar TokenType;\n(function(TokenType2) {\n  TokenType2[TokenType2[\"StartCommentTag\"] = 0] = \"StartCommentTag\";\n  TokenType2[TokenType2[\"Comment\"] = 1] = \"Comment\";\n  TokenType2[TokenType2[\"EndCommentTag\"] = 2] = \"EndCommentTag\";\n  TokenType2[TokenType2[\"StartTagOpen\"] = 3] = \"StartTagOpen\";\n  TokenType2[TokenType2[\"StartTagClose\"] = 4] = \"StartTagClose\";\n  TokenType2[TokenType2[\"StartTagSelfClose\"] = 5] = \"StartTagSelfClose\";\n  TokenType2[TokenType2[\"StartTag\"] = 6] = \"StartTag\";\n  TokenType2[TokenType2[\"EndTagOpen\"] = 7] = \"EndTagOpen\";\n  TokenType2[TokenType2[\"EndTagClose\"] = 8] = \"EndTagClose\";\n  TokenType2[TokenType2[\"EndTag\"] = 9] = \"EndTag\";\n  TokenType2[TokenType2[\"DelimiterAssign\"] = 10] = \"DelimiterAssign\";\n  TokenType2[TokenType2[\"AttributeName\"] = 11] = \"AttributeName\";\n  TokenType2[TokenType2[\"AttributeValue\"] = 12] = \"AttributeValue\";\n  TokenType2[TokenType2[\"StartDoctypeTag\"] = 13] = \"StartDoctypeTag\";\n  TokenType2[TokenType2[\"Doctype\"] = 14] = \"Doctype\";\n  TokenType2[TokenType2[\"EndDoctypeTag\"] = 15] = \"EndDoctypeTag\";\n  TokenType2[TokenType2[\"Content\"] = 16] = \"Content\";\n  TokenType2[TokenType2[\"Whitespace\"] = 17] = \"Whitespace\";\n  TokenType2[TokenType2[\"Unknown\"] = 18] = \"Unknown\";\n  TokenType2[TokenType2[\"Script\"] = 19] = \"Script\";\n  TokenType2[TokenType2[\"Styles\"] = 20] = \"Styles\";\n  TokenType2[TokenType2[\"EOS\"] = 21] = \"EOS\";\n})(TokenType || (TokenType = {}));\nvar ScannerState;\n(function(ScannerState2) {\n  ScannerState2[ScannerState2[\"WithinContent\"] = 0] = \"WithinContent\";\n  ScannerState2[ScannerState2[\"AfterOpeningStartTag\"] = 1] = \"AfterOpeningStartTag\";\n  ScannerState2[ScannerState2[\"AfterOpeningEndTag\"] = 2] = \"AfterOpeningEndTag\";\n  ScannerState2[ScannerState2[\"WithinDoctype\"] = 3] = \"WithinDoctype\";\n  ScannerState2[ScannerState2[\"WithinTag\"] = 4] = \"WithinTag\";\n  ScannerState2[ScannerState2[\"WithinEndTag\"] = 5] = \"WithinEndTag\";\n  ScannerState2[ScannerState2[\"WithinComment\"] = 6] = \"WithinComment\";\n  ScannerState2[ScannerState2[\"WithinScriptContent\"] = 7] = \"WithinScriptContent\";\n  ScannerState2[ScannerState2[\"WithinStyleContent\"] = 8] = \"WithinStyleContent\";\n  ScannerState2[ScannerState2[\"AfterAttributeName\"] = 9] = \"AfterAttributeName\";\n  ScannerState2[ScannerState2[\"BeforeAttributeValue\"] = 10] = \"BeforeAttributeValue\";\n})(ScannerState || (ScannerState = {}));\nvar ClientCapabilities;\n(function(ClientCapabilities2) {\n  ClientCapabilities2.LATEST = {\n    textDocument: {\n      completion: {\n        completionItem: {\n          documentationFormat: [MarkupKind.Markdown, MarkupKind.PlainText]\n        }\n      },\n      hover: {\n        contentFormat: [MarkupKind.Markdown, MarkupKind.PlainText]\n      }\n    }\n  };\n})(ClientCapabilities || (ClientCapabilities = {}));\nvar FileType;\n(function(FileType2) {\n  FileType2[FileType2[\"Unknown\"] = 0] = \"Unknown\";\n  FileType2[FileType2[\"File\"] = 1] = \"File\";\n  FileType2[FileType2[\"Directory\"] = 2] = \"Directory\";\n  FileType2[FileType2[\"SymbolicLink\"] = 64] = \"SymbolicLink\";\n})(FileType || (FileType = {}));\n\n// node_modules/vscode-html-languageservice/lib/esm/parser/htmlScanner.js\nvar MultiLineStream = class {\n  constructor(source, position) {\n    this.source = source;\n    this.len = source.length;\n    this.position = position;\n  }\n  eos() {\n    return this.len <= this.position;\n  }\n  getSource() {\n    return this.source;\n  }\n  pos() {\n    return this.position;\n  }\n  goBackTo(pos) {\n    this.position = pos;\n  }\n  goBack(n) {\n    this.position -= n;\n  }\n  advance(n) {\n    this.position += n;\n  }\n  goToEnd() {\n    this.position = this.source.length;\n  }\n  nextChar() {\n    return this.source.charCodeAt(this.position++) || 0;\n  }\n  peekChar(n = 0) {\n    return this.source.charCodeAt(this.position + n) || 0;\n  }\n  advanceIfChar(ch) {\n    if (ch === this.source.charCodeAt(this.position)) {\n      this.position++;\n      return true;\n    }\n    return false;\n  }\n  advanceIfChars(ch) {\n    let i;\n    if (this.position + ch.length > this.source.length) {\n      return false;\n    }\n    for (i = 0; i < ch.length; i++) {\n      if (this.source.charCodeAt(this.position + i) !== ch[i]) {\n        return false;\n      }\n    }\n    this.advance(i);\n    return true;\n  }\n  advanceIfRegExp(regex) {\n    const str = this.source.substr(this.position);\n    const match = str.match(regex);\n    if (match) {\n      this.position = this.position + match.index + match[0].length;\n      return match[0];\n    }\n    return \"\";\n  }\n  advanceUntilRegExp(regex) {\n    const str = this.source.substr(this.position);\n    const match = str.match(regex);\n    if (match) {\n      this.position = this.position + match.index;\n      return match[0];\n    } else {\n      this.goToEnd();\n    }\n    return \"\";\n  }\n  advanceUntilChar(ch) {\n    while (this.position < this.source.length) {\n      if (this.source.charCodeAt(this.position) === ch) {\n        return true;\n      }\n      this.advance(1);\n    }\n    return false;\n  }\n  advanceUntilChars(ch) {\n    while (this.position + ch.length <= this.source.length) {\n      let i = 0;\n      for (; i < ch.length && this.source.charCodeAt(this.position + i) === ch[i]; i++) {\n      }\n      if (i === ch.length) {\n        return true;\n      }\n      this.advance(1);\n    }\n    this.goToEnd();\n    return false;\n  }\n  skipWhitespace() {\n    const n = this.advanceWhileChar((ch) => {\n      return ch === _WSP || ch === _TAB || ch === _NWL || ch === _LFD || ch === _CAR;\n    });\n    return n > 0;\n  }\n  advanceWhileChar(condition) {\n    const posNow = this.position;\n    while (this.position < this.len && condition(this.source.charCodeAt(this.position))) {\n      this.position++;\n    }\n    return this.position - posNow;\n  }\n};\nvar _BNG = \"!\".charCodeAt(0);\nvar _MIN = \"-\".charCodeAt(0);\nvar _LAN = \"<\".charCodeAt(0);\nvar _RAN = \">\".charCodeAt(0);\nvar _FSL = \"/\".charCodeAt(0);\nvar _EQS = \"=\".charCodeAt(0);\nvar _DQO = '\"'.charCodeAt(0);\nvar _SQO = \"'\".charCodeAt(0);\nvar _NWL = \"\\n\".charCodeAt(0);\nvar _CAR = \"\\r\".charCodeAt(0);\nvar _LFD = \"\\f\".charCodeAt(0);\nvar _WSP = \" \".charCodeAt(0);\nvar _TAB = \"\t\".charCodeAt(0);\nvar htmlScriptContents = {\n  \"text/x-handlebars-template\": true,\n  // Fix for https://github.com/microsoft/vscode/issues/77977\n  \"text/html\": true\n};\nfunction createScanner(input, initialOffset = 0, initialState = ScannerState.WithinContent, emitPseudoCloseTags = false) {\n  const stream = new MultiLineStream(input, initialOffset);\n  let state = initialState;\n  let tokenOffset = 0;\n  let tokenType = TokenType.Unknown;\n  let tokenError;\n  let hasSpaceAfterTag;\n  let lastTag;\n  let lastAttributeName;\n  let lastTypeValue;\n  function nextElementName() {\n    return stream.advanceIfRegExp(/^[_:\\w][_:\\w-.\\d]*/).toLowerCase();\n  }\n  function nextAttributeName() {\n    return stream.advanceIfRegExp(/^[^\\s\"'></=\\x00-\\x0F\\x7F\\x80-\\x9F]*/).toLowerCase();\n  }\n  function finishToken(offset, type, errorMessage) {\n    tokenType = type;\n    tokenOffset = offset;\n    tokenError = errorMessage;\n    return type;\n  }\n  function scan() {\n    const offset = stream.pos();\n    const oldState = state;\n    const token = internalScan();\n    if (token !== TokenType.EOS && offset === stream.pos() && !(emitPseudoCloseTags && (token === TokenType.StartTagClose || token === TokenType.EndTagClose))) {\n      console.warn(\"Scanner.scan has not advanced at offset \" + offset + \", state before: \" + oldState + \" after: \" + state);\n      stream.advance(1);\n      return finishToken(offset, TokenType.Unknown);\n    }\n    return token;\n  }\n  function internalScan() {\n    const offset = stream.pos();\n    if (stream.eos()) {\n      return finishToken(offset, TokenType.EOS);\n    }\n    let errorMessage;\n    switch (state) {\n      case ScannerState.WithinComment:\n        if (stream.advanceIfChars([_MIN, _MIN, _RAN])) {\n          state = ScannerState.WithinContent;\n          return finishToken(offset, TokenType.EndCommentTag);\n        }\n        stream.advanceUntilChars([_MIN, _MIN, _RAN]);\n        return finishToken(offset, TokenType.Comment);\n      case ScannerState.WithinDoctype:\n        if (stream.advanceIfChar(_RAN)) {\n          state = ScannerState.WithinContent;\n          return finishToken(offset, TokenType.EndDoctypeTag);\n        }\n        stream.advanceUntilChar(_RAN);\n        return finishToken(offset, TokenType.Doctype);\n      case ScannerState.WithinContent:\n        if (stream.advanceIfChar(_LAN)) {\n          if (!stream.eos() && stream.peekChar() === _BNG) {\n            if (stream.advanceIfChars([_BNG, _MIN, _MIN])) {\n              state = ScannerState.WithinComment;\n              return finishToken(offset, TokenType.StartCommentTag);\n            }\n            if (stream.advanceIfRegExp(/^!doctype/i)) {\n              state = ScannerState.WithinDoctype;\n              return finishToken(offset, TokenType.StartDoctypeTag);\n            }\n          }\n          if (stream.advanceIfChar(_FSL)) {\n            state = ScannerState.AfterOpeningEndTag;\n            return finishToken(offset, TokenType.EndTagOpen);\n          }\n          state = ScannerState.AfterOpeningStartTag;\n          return finishToken(offset, TokenType.StartTagOpen);\n        }\n        stream.advanceUntilChar(_LAN);\n        return finishToken(offset, TokenType.Content);\n      case ScannerState.AfterOpeningEndTag:\n        const tagName = nextElementName();\n        if (tagName.length > 0) {\n          state = ScannerState.WithinEndTag;\n          return finishToken(offset, TokenType.EndTag);\n        }\n        if (stream.skipWhitespace()) {\n          return finishToken(offset, TokenType.Whitespace, t(\"Tag name must directly follow the open bracket.\"));\n        }\n        state = ScannerState.WithinEndTag;\n        stream.advanceUntilChar(_RAN);\n        if (offset < stream.pos()) {\n          return finishToken(offset, TokenType.Unknown, t(\"End tag name expected.\"));\n        }\n        return internalScan();\n      case ScannerState.WithinEndTag:\n        if (stream.skipWhitespace()) {\n          return finishToken(offset, TokenType.Whitespace);\n        }\n        if (stream.advanceIfChar(_RAN)) {\n          state = ScannerState.WithinContent;\n          return finishToken(offset, TokenType.EndTagClose);\n        }\n        if (emitPseudoCloseTags && stream.peekChar() === _LAN) {\n          state = ScannerState.WithinContent;\n          return finishToken(offset, TokenType.EndTagClose, t(\"Closing bracket missing.\"));\n        }\n        errorMessage = t(\"Closing bracket expected.\");\n        break;\n      case ScannerState.AfterOpeningStartTag:\n        lastTag = nextElementName();\n        lastTypeValue = void 0;\n        lastAttributeName = void 0;\n        if (lastTag.length > 0) {\n          hasSpaceAfterTag = false;\n          state = ScannerState.WithinTag;\n          return finishToken(offset, TokenType.StartTag);\n        }\n        if (stream.skipWhitespace()) {\n          return finishToken(offset, TokenType.Whitespace, t(\"Tag name must directly follow the open bracket.\"));\n        }\n        state = ScannerState.WithinTag;\n        stream.advanceUntilChar(_RAN);\n        if (offset < stream.pos()) {\n          return finishToken(offset, TokenType.Unknown, t(\"Start tag name expected.\"));\n        }\n        return internalScan();\n      case ScannerState.WithinTag:\n        if (stream.skipWhitespace()) {\n          hasSpaceAfterTag = true;\n          return finishToken(offset, TokenType.Whitespace);\n        }\n        if (hasSpaceAfterTag) {\n          lastAttributeName = nextAttributeName();\n          if (lastAttributeName.length > 0) {\n            state = ScannerState.AfterAttributeName;\n            hasSpaceAfterTag = false;\n            return finishToken(offset, TokenType.AttributeName);\n          }\n        }\n        if (stream.advanceIfChars([_FSL, _RAN])) {\n          state = ScannerState.WithinContent;\n          return finishToken(offset, TokenType.StartTagSelfClose);\n        }\n        if (stream.advanceIfChar(_RAN)) {\n          if (lastTag === \"script\") {\n            if (lastTypeValue && htmlScriptContents[lastTypeValue]) {\n              state = ScannerState.WithinContent;\n            } else {\n              state = ScannerState.WithinScriptContent;\n            }\n          } else if (lastTag === \"style\") {\n            state = ScannerState.WithinStyleContent;\n          } else {\n            state = ScannerState.WithinContent;\n          }\n          return finishToken(offset, TokenType.StartTagClose);\n        }\n        if (emitPseudoCloseTags && stream.peekChar() === _LAN) {\n          state = ScannerState.WithinContent;\n          return finishToken(offset, TokenType.StartTagClose, t(\"Closing bracket missing.\"));\n        }\n        stream.advance(1);\n        return finishToken(offset, TokenType.Unknown, t(\"Unexpected character in tag.\"));\n      case ScannerState.AfterAttributeName:\n        if (stream.skipWhitespace()) {\n          hasSpaceAfterTag = true;\n          return finishToken(offset, TokenType.Whitespace);\n        }\n        if (stream.advanceIfChar(_EQS)) {\n          state = ScannerState.BeforeAttributeValue;\n          return finishToken(offset, TokenType.DelimiterAssign);\n        }\n        state = ScannerState.WithinTag;\n        return internalScan();\n      case ScannerState.BeforeAttributeValue:\n        if (stream.skipWhitespace()) {\n          return finishToken(offset, TokenType.Whitespace);\n        }\n        let attributeValue = stream.advanceIfRegExp(/^[^\\s\"'`=<>]+/);\n        if (attributeValue.length > 0) {\n          if (stream.peekChar() === _RAN && stream.peekChar(-1) === _FSL) {\n            stream.goBack(1);\n            attributeValue = attributeValue.substring(0, attributeValue.length - 1);\n          }\n          if (lastAttributeName === \"type\") {\n            lastTypeValue = attributeValue;\n          }\n          if (attributeValue.length > 0) {\n            state = ScannerState.WithinTag;\n            hasSpaceAfterTag = false;\n            return finishToken(offset, TokenType.AttributeValue);\n          }\n        }\n        const ch = stream.peekChar();\n        if (ch === _SQO || ch === _DQO) {\n          stream.advance(1);\n          if (stream.advanceUntilChar(ch)) {\n            stream.advance(1);\n          }\n          if (lastAttributeName === \"type\") {\n            lastTypeValue = stream.getSource().substring(offset + 1, stream.pos() - 1);\n          }\n          state = ScannerState.WithinTag;\n          hasSpaceAfterTag = false;\n          return finishToken(offset, TokenType.AttributeValue);\n        }\n        state = ScannerState.WithinTag;\n        hasSpaceAfterTag = false;\n        return internalScan();\n      case ScannerState.WithinScriptContent:\n        let sciptState = 1;\n        while (!stream.eos()) {\n          const match = stream.advanceIfRegExp(/<!--|-->|<\\/?script\\s*\\/?>?/i);\n          if (match.length === 0) {\n            stream.goToEnd();\n            return finishToken(offset, TokenType.Script);\n          } else if (match === \"<!--\") {\n            if (sciptState === 1) {\n              sciptState = 2;\n            }\n          } else if (match === \"-->\") {\n            sciptState = 1;\n          } else if (match[1] !== \"/\") {\n            if (sciptState === 2) {\n              sciptState = 3;\n            }\n          } else {\n            if (sciptState === 3) {\n              sciptState = 2;\n            } else {\n              stream.goBack(match.length);\n              break;\n            }\n          }\n        }\n        state = ScannerState.WithinContent;\n        if (offset < stream.pos()) {\n          return finishToken(offset, TokenType.Script);\n        }\n        return internalScan();\n      case ScannerState.WithinStyleContent:\n        stream.advanceUntilRegExp(/<\\/style/i);\n        state = ScannerState.WithinContent;\n        if (offset < stream.pos()) {\n          return finishToken(offset, TokenType.Styles);\n        }\n        return internalScan();\n    }\n    stream.advance(1);\n    state = ScannerState.WithinContent;\n    return finishToken(offset, TokenType.Unknown, errorMessage);\n  }\n  return {\n    scan,\n    getTokenType: () => tokenType,\n    getTokenOffset: () => tokenOffset,\n    getTokenLength: () => stream.pos() - tokenOffset,\n    getTokenEnd: () => stream.pos(),\n    getTokenText: () => stream.getSource().substring(tokenOffset, stream.pos()),\n    getScannerState: () => state,\n    getTokenError: () => tokenError\n  };\n}\n\n// node_modules/vscode-html-languageservice/lib/esm/utils/arrays.js\nfunction findFirst(array, p) {\n  let low = 0, high = array.length;\n  if (high === 0) {\n    return 0;\n  }\n  while (low < high) {\n    let mid = Math.floor((low + high) / 2);\n    if (p(array[mid])) {\n      high = mid;\n    } else {\n      low = mid + 1;\n    }\n  }\n  return low;\n}\nfunction binarySearch(array, key, comparator) {\n  let low = 0, high = array.length - 1;\n  while (low <= high) {\n    const mid = (low + high) / 2 | 0;\n    const comp = comparator(array[mid], key);\n    if (comp < 0) {\n      low = mid + 1;\n    } else if (comp > 0) {\n      high = mid - 1;\n    } else {\n      return mid;\n    }\n  }\n  return -(low + 1);\n}\n\n// node_modules/vscode-html-languageservice/lib/esm/parser/htmlParser.js\nvar Node = class {\n  get attributeNames() {\n    return this.attributes ? Object.keys(this.attributes) : [];\n  }\n  constructor(start, end, children, parent) {\n    this.start = start;\n    this.end = end;\n    this.children = children;\n    this.parent = parent;\n    this.closed = false;\n  }\n  isSameTag(tagInLowerCase) {\n    if (this.tag === void 0) {\n      return tagInLowerCase === void 0;\n    } else {\n      return tagInLowerCase !== void 0 && this.tag.length === tagInLowerCase.length && this.tag.toLowerCase() === tagInLowerCase;\n    }\n  }\n  get firstChild() {\n    return this.children[0];\n  }\n  get lastChild() {\n    return this.children.length ? this.children[this.children.length - 1] : void 0;\n  }\n  findNodeBefore(offset) {\n    const idx = findFirst(this.children, (c) => offset <= c.start) - 1;\n    if (idx >= 0) {\n      const child = this.children[idx];\n      if (offset > child.start) {\n        if (offset < child.end) {\n          return child.findNodeBefore(offset);\n        }\n        const lastChild = child.lastChild;\n        if (lastChild && lastChild.end === child.end) {\n          return child.findNodeBefore(offset);\n        }\n        return child;\n      }\n    }\n    return this;\n  }\n  findNodeAt(offset) {\n    const idx = findFirst(this.children, (c) => offset <= c.start) - 1;\n    if (idx >= 0) {\n      const child = this.children[idx];\n      if (offset > child.start && offset <= child.end) {\n        return child.findNodeAt(offset);\n      }\n    }\n    return this;\n  }\n};\nvar HTMLParser = class {\n  constructor(dataManager) {\n    this.dataManager = dataManager;\n  }\n  parseDocument(document) {\n    return this.parse(document.getText(), this.dataManager.getVoidElements(document.languageId));\n  }\n  parse(text, voidElements) {\n    const scanner = createScanner(text, void 0, void 0, true);\n    const htmlDocument = new Node(0, text.length, [], void 0);\n    let curr = htmlDocument;\n    let endTagStart = -1;\n    let endTagName = void 0;\n    let pendingAttribute = null;\n    let token = scanner.scan();\n    while (token !== TokenType.EOS) {\n      switch (token) {\n        case TokenType.StartTagOpen:\n          const child = new Node(scanner.getTokenOffset(), text.length, [], curr);\n          curr.children.push(child);\n          curr = child;\n          break;\n        case TokenType.StartTag:\n          curr.tag = scanner.getTokenText();\n          break;\n        case TokenType.StartTagClose:\n          if (curr.parent) {\n            curr.end = scanner.getTokenEnd();\n            if (scanner.getTokenLength()) {\n              curr.startTagEnd = scanner.getTokenEnd();\n              if (curr.tag && this.dataManager.isVoidElement(curr.tag, voidElements)) {\n                curr.closed = true;\n                curr = curr.parent;\n              }\n            } else {\n              curr = curr.parent;\n            }\n          }\n          break;\n        case TokenType.StartTagSelfClose:\n          if (curr.parent) {\n            curr.closed = true;\n            curr.end = scanner.getTokenEnd();\n            curr.startTagEnd = scanner.getTokenEnd();\n            curr = curr.parent;\n          }\n          break;\n        case TokenType.EndTagOpen:\n          endTagStart = scanner.getTokenOffset();\n          endTagName = void 0;\n          break;\n        case TokenType.EndTag:\n          endTagName = scanner.getTokenText().toLowerCase();\n          break;\n        case TokenType.EndTagClose:\n          let node = curr;\n          while (!node.isSameTag(endTagName) && node.parent) {\n            node = node.parent;\n          }\n          if (node.parent) {\n            while (curr !== node) {\n              curr.end = endTagStart;\n              curr.closed = false;\n              curr = curr.parent;\n            }\n            curr.closed = true;\n            curr.endTagStart = endTagStart;\n            curr.end = scanner.getTokenEnd();\n            curr = curr.parent;\n          }\n          break;\n        case TokenType.AttributeName: {\n          pendingAttribute = scanner.getTokenText();\n          let attributes = curr.attributes;\n          if (!attributes) {\n            curr.attributes = attributes = {};\n          }\n          attributes[pendingAttribute] = null;\n          break;\n        }\n        case TokenType.AttributeValue: {\n          const value = scanner.getTokenText();\n          const attributes = curr.attributes;\n          if (attributes && pendingAttribute) {\n            attributes[pendingAttribute] = value;\n            pendingAttribute = null;\n          }\n          break;\n        }\n      }\n      token = scanner.scan();\n    }\n    while (curr.parent) {\n      curr.end = text.length;\n      curr.closed = false;\n      curr = curr.parent;\n    }\n    return {\n      roots: htmlDocument.children,\n      findNodeBefore: htmlDocument.findNodeBefore.bind(htmlDocument),\n      findNodeAt: htmlDocument.findNodeAt.bind(htmlDocument)\n    };\n  }\n};\n\n// node_modules/vscode-html-languageservice/lib/esm/parser/htmlEntities.js\nvar entities = {\n  \"Aacute;\": \"\\xC1\",\n  \"Aacute\": \"\\xC1\",\n  \"aacute;\": \"\\xE1\",\n  \"aacute\": \"\\xE1\",\n  \"Abreve;\": \"\\u0102\",\n  \"abreve;\": \"\\u0103\",\n  \"ac;\": \"\\u223E\",\n  \"acd;\": \"\\u223F\",\n  \"acE;\": \"\\u223E\\u0333\",\n  \"Acirc;\": \"\\xC2\",\n  \"Acirc\": \"\\xC2\",\n  \"acirc;\": \"\\xE2\",\n  \"acirc\": \"\\xE2\",\n  \"acute;\": \"\\xB4\",\n  \"acute\": \"\\xB4\",\n  \"Acy;\": \"\\u0410\",\n  \"acy;\": \"\\u0430\",\n  \"AElig;\": \"\\xC6\",\n  \"AElig\": \"\\xC6\",\n  \"aelig;\": \"\\xE6\",\n  \"aelig\": \"\\xE6\",\n  \"af;\": \"\\u2061\",\n  \"Afr;\": \"\\u{1D504}\",\n  \"afr;\": \"\\u{1D51E}\",\n  \"Agrave;\": \"\\xC0\",\n  \"Agrave\": \"\\xC0\",\n  \"agrave;\": \"\\xE0\",\n  \"agrave\": \"\\xE0\",\n  \"alefsym;\": \"\\u2135\",\n  \"aleph;\": \"\\u2135\",\n  \"Alpha;\": \"\\u0391\",\n  \"alpha;\": \"\\u03B1\",\n  \"Amacr;\": \"\\u0100\",\n  \"amacr;\": \"\\u0101\",\n  \"amalg;\": \"\\u2A3F\",\n  \"AMP;\": \"&\",\n  \"AMP\": \"&\",\n  \"amp;\": \"&\",\n  \"amp\": \"&\",\n  \"And;\": \"\\u2A53\",\n  \"and;\": \"\\u2227\",\n  \"andand;\": \"\\u2A55\",\n  \"andd;\": \"\\u2A5C\",\n  \"andslope;\": \"\\u2A58\",\n  \"andv;\": \"\\u2A5A\",\n  \"ang;\": \"\\u2220\",\n  \"ange;\": \"\\u29A4\",\n  \"angle;\": \"\\u2220\",\n  \"angmsd;\": \"\\u2221\",\n  \"angmsdaa;\": \"\\u29A8\",\n  \"angmsdab;\": \"\\u29A9\",\n  \"angmsdac;\": \"\\u29AA\",\n  \"angmsdad;\": \"\\u29AB\",\n  \"angmsdae;\": \"\\u29AC\",\n  \"angmsdaf;\": \"\\u29AD\",\n  \"angmsdag;\": \"\\u29AE\",\n  \"angmsdah;\": \"\\u29AF\",\n  \"angrt;\": \"\\u221F\",\n  \"angrtvb;\": \"\\u22BE\",\n  \"angrtvbd;\": \"\\u299D\",\n  \"angsph;\": \"\\u2222\",\n  \"angst;\": \"\\xC5\",\n  \"angzarr;\": \"\\u237C\",\n  \"Aogon;\": \"\\u0104\",\n  \"aogon;\": \"\\u0105\",\n  \"Aopf;\": \"\\u{1D538}\",\n  \"aopf;\": \"\\u{1D552}\",\n  \"ap;\": \"\\u2248\",\n  \"apacir;\": \"\\u2A6F\",\n  \"apE;\": \"\\u2A70\",\n  \"ape;\": \"\\u224A\",\n  \"apid;\": \"\\u224B\",\n  \"apos;\": \"'\",\n  \"ApplyFunction;\": \"\\u2061\",\n  \"approx;\": \"\\u2248\",\n  \"approxeq;\": \"\\u224A\",\n  \"Aring;\": \"\\xC5\",\n  \"Aring\": \"\\xC5\",\n  \"aring;\": \"\\xE5\",\n  \"aring\": \"\\xE5\",\n  \"Ascr;\": \"\\u{1D49C}\",\n  \"ascr;\": \"\\u{1D4B6}\",\n  \"Assign;\": \"\\u2254\",\n  \"ast;\": \"*\",\n  \"asymp;\": \"\\u2248\",\n  \"asympeq;\": \"\\u224D\",\n  \"Atilde;\": \"\\xC3\",\n  \"Atilde\": \"\\xC3\",\n  \"atilde;\": \"\\xE3\",\n  \"atilde\": \"\\xE3\",\n  \"Auml;\": \"\\xC4\",\n  \"Auml\": \"\\xC4\",\n  \"auml;\": \"\\xE4\",\n  \"auml\": \"\\xE4\",\n  \"awconint;\": \"\\u2233\",\n  \"awint;\": \"\\u2A11\",\n  \"backcong;\": \"\\u224C\",\n  \"backepsilon;\": \"\\u03F6\",\n  \"backprime;\": \"\\u2035\",\n  \"backsim;\": \"\\u223D\",\n  \"backsimeq;\": \"\\u22CD\",\n  \"Backslash;\": \"\\u2216\",\n  \"Barv;\": \"\\u2AE7\",\n  \"barvee;\": \"\\u22BD\",\n  \"Barwed;\": \"\\u2306\",\n  \"barwed;\": \"\\u2305\",\n  \"barwedge;\": \"\\u2305\",\n  \"bbrk;\": \"\\u23B5\",\n  \"bbrktbrk;\": \"\\u23B6\",\n  \"bcong;\": \"\\u224C\",\n  \"Bcy;\": \"\\u0411\",\n  \"bcy;\": \"\\u0431\",\n  \"bdquo;\": \"\\u201E\",\n  \"becaus;\": \"\\u2235\",\n  \"Because;\": \"\\u2235\",\n  \"because;\": \"\\u2235\",\n  \"bemptyv;\": \"\\u29B0\",\n  \"bepsi;\": \"\\u03F6\",\n  \"bernou;\": \"\\u212C\",\n  \"Bernoullis;\": \"\\u212C\",\n  \"Beta;\": \"\\u0392\",\n  \"beta;\": \"\\u03B2\",\n  \"beth;\": \"\\u2136\",\n  \"between;\": \"\\u226C\",\n  \"Bfr;\": \"\\u{1D505}\",\n  \"bfr;\": \"\\u{1D51F}\",\n  \"bigcap;\": \"\\u22C2\",\n  \"bigcirc;\": \"\\u25EF\",\n  \"bigcup;\": \"\\u22C3\",\n  \"bigodot;\": \"\\u2A00\",\n  \"bigoplus;\": \"\\u2A01\",\n  \"bigotimes;\": \"\\u2A02\",\n  \"bigsqcup;\": \"\\u2A06\",\n  \"bigstar;\": \"\\u2605\",\n  \"bigtriangledown;\": \"\\u25BD\",\n  \"bigtriangleup;\": \"\\u25B3\",\n  \"biguplus;\": \"\\u2A04\",\n  \"bigvee;\": \"\\u22C1\",\n  \"bigwedge;\": \"\\u22C0\",\n  \"bkarow;\": \"\\u290D\",\n  \"blacklozenge;\": \"\\u29EB\",\n  \"blacksquare;\": \"\\u25AA\",\n  \"blacktriangle;\": \"\\u25B4\",\n  \"blacktriangledown;\": \"\\u25BE\",\n  \"blacktriangleleft;\": \"\\u25C2\",\n  \"blacktriangleright;\": \"\\u25B8\",\n  \"blank;\": \"\\u2423\",\n  \"blk12;\": \"\\u2592\",\n  \"blk14;\": \"\\u2591\",\n  \"blk34;\": \"\\u2593\",\n  \"block;\": \"\\u2588\",\n  \"bne;\": \"=\\u20E5\",\n  \"bnequiv;\": \"\\u2261\\u20E5\",\n  \"bNot;\": \"\\u2AED\",\n  \"bnot;\": \"\\u2310\",\n  \"Bopf;\": \"\\u{1D539}\",\n  \"bopf;\": \"\\u{1D553}\",\n  \"bot;\": \"\\u22A5\",\n  \"bottom;\": \"\\u22A5\",\n  \"bowtie;\": \"\\u22C8\",\n  \"boxbox;\": \"\\u29C9\",\n  \"boxDL;\": \"\\u2557\",\n  \"boxDl;\": \"\\u2556\",\n  \"boxdL;\": \"\\u2555\",\n  \"boxdl;\": \"\\u2510\",\n  \"boxDR;\": \"\\u2554\",\n  \"boxDr;\": \"\\u2553\",\n  \"boxdR;\": \"\\u2552\",\n  \"boxdr;\": \"\\u250C\",\n  \"boxH;\": \"\\u2550\",\n  \"boxh;\": \"\\u2500\",\n  \"boxHD;\": \"\\u2566\",\n  \"boxHd;\": \"\\u2564\",\n  \"boxhD;\": \"\\u2565\",\n  \"boxhd;\": \"\\u252C\",\n  \"boxHU;\": \"\\u2569\",\n  \"boxHu;\": \"\\u2567\",\n  \"boxhU;\": \"\\u2568\",\n  \"boxhu;\": \"\\u2534\",\n  \"boxminus;\": \"\\u229F\",\n  \"boxplus;\": \"\\u229E\",\n  \"boxtimes;\": \"\\u22A0\",\n  \"boxUL;\": \"\\u255D\",\n  \"boxUl;\": \"\\u255C\",\n  \"boxuL;\": \"\\u255B\",\n  \"boxul;\": \"\\u2518\",\n  \"boxUR;\": \"\\u255A\",\n  \"boxUr;\": \"\\u2559\",\n  \"boxuR;\": \"\\u2558\",\n  \"boxur;\": \"\\u2514\",\n  \"boxV;\": \"\\u2551\",\n  \"boxv;\": \"\\u2502\",\n  \"boxVH;\": \"\\u256C\",\n  \"boxVh;\": \"\\u256B\",\n  \"boxvH;\": \"\\u256A\",\n  \"boxvh;\": \"\\u253C\",\n  \"boxVL;\": \"\\u2563\",\n  \"boxVl;\": \"\\u2562\",\n  \"boxvL;\": \"\\u2561\",\n  \"boxvl;\": \"\\u2524\",\n  \"boxVR;\": \"\\u2560\",\n  \"boxVr;\": \"\\u255F\",\n  \"boxvR;\": \"\\u255E\",\n  \"boxvr;\": \"\\u251C\",\n  \"bprime;\": \"\\u2035\",\n  \"Breve;\": \"\\u02D8\",\n  \"breve;\": \"\\u02D8\",\n  \"brvbar;\": \"\\xA6\",\n  \"brvbar\": \"\\xA6\",\n  \"Bscr;\": \"\\u212C\",\n  \"bscr;\": \"\\u{1D4B7}\",\n  \"bsemi;\": \"\\u204F\",\n  \"bsim;\": \"\\u223D\",\n  \"bsime;\": \"\\u22CD\",\n  \"bsol;\": \"\\\\\",\n  \"bsolb;\": \"\\u29C5\",\n  \"bsolhsub;\": \"\\u27C8\",\n  \"bull;\": \"\\u2022\",\n  \"bullet;\": \"\\u2022\",\n  \"bump;\": \"\\u224E\",\n  \"bumpE;\": \"\\u2AAE\",\n  \"bumpe;\": \"\\u224F\",\n  \"Bumpeq;\": \"\\u224E\",\n  \"bumpeq;\": \"\\u224F\",\n  \"Cacute;\": \"\\u0106\",\n  \"cacute;\": \"\\u0107\",\n  \"Cap;\": \"\\u22D2\",\n  \"cap;\": \"\\u2229\",\n  \"capand;\": \"\\u2A44\",\n  \"capbrcup;\": \"\\u2A49\",\n  \"capcap;\": \"\\u2A4B\",\n  \"capcup;\": \"\\u2A47\",\n  \"capdot;\": \"\\u2A40\",\n  \"CapitalDifferentialD;\": \"\\u2145\",\n  \"caps;\": \"\\u2229\\uFE00\",\n  \"caret;\": \"\\u2041\",\n  \"caron;\": \"\\u02C7\",\n  \"Cayleys;\": \"\\u212D\",\n  \"ccaps;\": \"\\u2A4D\",\n  \"Ccaron;\": \"\\u010C\",\n  \"ccaron;\": \"\\u010D\",\n  \"Ccedil;\": \"\\xC7\",\n  \"Ccedil\": \"\\xC7\",\n  \"ccedil;\": \"\\xE7\",\n  \"ccedil\": \"\\xE7\",\n  \"Ccirc;\": \"\\u0108\",\n  \"ccirc;\": \"\\u0109\",\n  \"Cconint;\": \"\\u2230\",\n  \"ccups;\": \"\\u2A4C\",\n  \"ccupssm;\": \"\\u2A50\",\n  \"Cdot;\": \"\\u010A\",\n  \"cdot;\": \"\\u010B\",\n  \"cedil;\": \"\\xB8\",\n  \"cedil\": \"\\xB8\",\n  \"Cedilla;\": \"\\xB8\",\n  \"cemptyv;\": \"\\u29B2\",\n  \"cent;\": \"\\xA2\",\n  \"cent\": \"\\xA2\",\n  \"CenterDot;\": \"\\xB7\",\n  \"centerdot;\": \"\\xB7\",\n  \"Cfr;\": \"\\u212D\",\n  \"cfr;\": \"\\u{1D520}\",\n  \"CHcy;\": \"\\u0427\",\n  \"chcy;\": \"\\u0447\",\n  \"check;\": \"\\u2713\",\n  \"checkmark;\": \"\\u2713\",\n  \"Chi;\": \"\\u03A7\",\n  \"chi;\": \"\\u03C7\",\n  \"cir;\": \"\\u25CB\",\n  \"circ;\": \"\\u02C6\",\n  \"circeq;\": \"\\u2257\",\n  \"circlearrowleft;\": \"\\u21BA\",\n  \"circlearrowright;\": \"\\u21BB\",\n  \"circledast;\": \"\\u229B\",\n  \"circledcirc;\": \"\\u229A\",\n  \"circleddash;\": \"\\u229D\",\n  \"CircleDot;\": \"\\u2299\",\n  \"circledR;\": \"\\xAE\",\n  \"circledS;\": \"\\u24C8\",\n  \"CircleMinus;\": \"\\u2296\",\n  \"CirclePlus;\": \"\\u2295\",\n  \"CircleTimes;\": \"\\u2297\",\n  \"cirE;\": \"\\u29C3\",\n  \"cire;\": \"\\u2257\",\n  \"cirfnint;\": \"\\u2A10\",\n  \"cirmid;\": \"\\u2AEF\",\n  \"cirscir;\": \"\\u29C2\",\n  \"ClockwiseContourIntegral;\": \"\\u2232\",\n  \"CloseCurlyDoubleQuote;\": \"\\u201D\",\n  \"CloseCurlyQuote;\": \"\\u2019\",\n  \"clubs;\": \"\\u2663\",\n  \"clubsuit;\": \"\\u2663\",\n  \"Colon;\": \"\\u2237\",\n  \"colon;\": \":\",\n  \"Colone;\": \"\\u2A74\",\n  \"colone;\": \"\\u2254\",\n  \"coloneq;\": \"\\u2254\",\n  \"comma;\": \",\",\n  \"commat;\": \"@\",\n  \"comp;\": \"\\u2201\",\n  \"compfn;\": \"\\u2218\",\n  \"complement;\": \"\\u2201\",\n  \"complexes;\": \"\\u2102\",\n  \"cong;\": \"\\u2245\",\n  \"congdot;\": \"\\u2A6D\",\n  \"Congruent;\": \"\\u2261\",\n  \"Conint;\": \"\\u222F\",\n  \"conint;\": \"\\u222E\",\n  \"ContourIntegral;\": \"\\u222E\",\n  \"Copf;\": \"\\u2102\",\n  \"copf;\": \"\\u{1D554}\",\n  \"coprod;\": \"\\u2210\",\n  \"Coproduct;\": \"\\u2210\",\n  \"COPY;\": \"\\xA9\",\n  \"COPY\": \"\\xA9\",\n  \"copy;\": \"\\xA9\",\n  \"copy\": \"\\xA9\",\n  \"copysr;\": \"\\u2117\",\n  \"CounterClockwiseContourIntegral;\": \"\\u2233\",\n  \"crarr;\": \"\\u21B5\",\n  \"Cross;\": \"\\u2A2F\",\n  \"cross;\": \"\\u2717\",\n  \"Cscr;\": \"\\u{1D49E}\",\n  \"cscr;\": \"\\u{1D4B8}\",\n  \"csub;\": \"\\u2ACF\",\n  \"csube;\": \"\\u2AD1\",\n  \"csup;\": \"\\u2AD0\",\n  \"csupe;\": \"\\u2AD2\",\n  \"ctdot;\": \"\\u22EF\",\n  \"cudarrl;\": \"\\u2938\",\n  \"cudarrr;\": \"\\u2935\",\n  \"cuepr;\": \"\\u22DE\",\n  \"cuesc;\": \"\\u22DF\",\n  \"cularr;\": \"\\u21B6\",\n  \"cularrp;\": \"\\u293D\",\n  \"Cup;\": \"\\u22D3\",\n  \"cup;\": \"\\u222A\",\n  \"cupbrcap;\": \"\\u2A48\",\n  \"CupCap;\": \"\\u224D\",\n  \"cupcap;\": \"\\u2A46\",\n  \"cupcup;\": \"\\u2A4A\",\n  \"cupdot;\": \"\\u228D\",\n  \"cupor;\": \"\\u2A45\",\n  \"cups;\": \"\\u222A\\uFE00\",\n  \"curarr;\": \"\\u21B7\",\n  \"curarrm;\": \"\\u293C\",\n  \"curlyeqprec;\": \"\\u22DE\",\n  \"curlyeqsucc;\": \"\\u22DF\",\n  \"curlyvee;\": \"\\u22CE\",\n  \"curlywedge;\": \"\\u22CF\",\n  \"curren;\": \"\\xA4\",\n  \"curren\": \"\\xA4\",\n  \"curvearrowleft;\": \"\\u21B6\",\n  \"curvearrowright;\": \"\\u21B7\",\n  \"cuvee;\": \"\\u22CE\",\n  \"cuwed;\": \"\\u22CF\",\n  \"cwconint;\": \"\\u2232\",\n  \"cwint;\": \"\\u2231\",\n  \"cylcty;\": \"\\u232D\",\n  \"Dagger;\": \"\\u2021\",\n  \"dagger;\": \"\\u2020\",\n  \"daleth;\": \"\\u2138\",\n  \"Darr;\": \"\\u21A1\",\n  \"dArr;\": \"\\u21D3\",\n  \"darr;\": \"\\u2193\",\n  \"dash;\": \"\\u2010\",\n  \"Dashv;\": \"\\u2AE4\",\n  \"dashv;\": \"\\u22A3\",\n  \"dbkarow;\": \"\\u290F\",\n  \"dblac;\": \"\\u02DD\",\n  \"Dcaron;\": \"\\u010E\",\n  \"dcaron;\": \"\\u010F\",\n  \"Dcy;\": \"\\u0414\",\n  \"dcy;\": \"\\u0434\",\n  \"DD;\": \"\\u2145\",\n  \"dd;\": \"\\u2146\",\n  \"ddagger;\": \"\\u2021\",\n  \"ddarr;\": \"\\u21CA\",\n  \"DDotrahd;\": \"\\u2911\",\n  \"ddotseq;\": \"\\u2A77\",\n  \"deg;\": \"\\xB0\",\n  \"deg\": \"\\xB0\",\n  \"Del;\": \"\\u2207\",\n  \"Delta;\": \"\\u0394\",\n  \"delta;\": \"\\u03B4\",\n  \"demptyv;\": \"\\u29B1\",\n  \"dfisht;\": \"\\u297F\",\n  \"Dfr;\": \"\\u{1D507}\",\n  \"dfr;\": \"\\u{1D521}\",\n  \"dHar;\": \"\\u2965\",\n  \"dharl;\": \"\\u21C3\",\n  \"dharr;\": \"\\u21C2\",\n  \"DiacriticalAcute;\": \"\\xB4\",\n  \"DiacriticalDot;\": \"\\u02D9\",\n  \"DiacriticalDoubleAcute;\": \"\\u02DD\",\n  \"DiacriticalGrave;\": \"`\",\n  \"DiacriticalTilde;\": \"\\u02DC\",\n  \"diam;\": \"\\u22C4\",\n  \"Diamond;\": \"\\u22C4\",\n  \"diamond;\": \"\\u22C4\",\n  \"diamondsuit;\": \"\\u2666\",\n  \"diams;\": \"\\u2666\",\n  \"die;\": \"\\xA8\",\n  \"DifferentialD;\": \"\\u2146\",\n  \"digamma;\": \"\\u03DD\",\n  \"disin;\": \"\\u22F2\",\n  \"div;\": \"\\xF7\",\n  \"divide;\": \"\\xF7\",\n  \"divide\": \"\\xF7\",\n  \"divideontimes;\": \"\\u22C7\",\n  \"divonx;\": \"\\u22C7\",\n  \"DJcy;\": \"\\u0402\",\n  \"djcy;\": \"\\u0452\",\n  \"dlcorn;\": \"\\u231E\",\n  \"dlcrop;\": \"\\u230D\",\n  \"dollar;\": \"$\",\n  \"Dopf;\": \"\\u{1D53B}\",\n  \"dopf;\": \"\\u{1D555}\",\n  \"Dot;\": \"\\xA8\",\n  \"dot;\": \"\\u02D9\",\n  \"DotDot;\": \"\\u20DC\",\n  \"doteq;\": \"\\u2250\",\n  \"doteqdot;\": \"\\u2251\",\n  \"DotEqual;\": \"\\u2250\",\n  \"dotminus;\": \"\\u2238\",\n  \"dotplus;\": \"\\u2214\",\n  \"dotsquare;\": \"\\u22A1\",\n  \"doublebarwedge;\": \"\\u2306\",\n  \"DoubleContourIntegral;\": \"\\u222F\",\n  \"DoubleDot;\": \"\\xA8\",\n  \"DoubleDownArrow;\": \"\\u21D3\",\n  \"DoubleLeftArrow;\": \"\\u21D0\",\n  \"DoubleLeftRightArrow;\": \"\\u21D4\",\n  \"DoubleLeftTee;\": \"\\u2AE4\",\n  \"DoubleLongLeftArrow;\": \"\\u27F8\",\n  \"DoubleLongLeftRightArrow;\": \"\\u27FA\",\n  \"DoubleLongRightArrow;\": \"\\u27F9\",\n  \"DoubleRightArrow;\": \"\\u21D2\",\n  \"DoubleRightTee;\": \"\\u22A8\",\n  \"DoubleUpArrow;\": \"\\u21D1\",\n  \"DoubleUpDownArrow;\": \"\\u21D5\",\n  \"DoubleVerticalBar;\": \"\\u2225\",\n  \"DownArrow;\": \"\\u2193\",\n  \"Downarrow;\": \"\\u21D3\",\n  \"downarrow;\": \"\\u2193\",\n  \"DownArrowBar;\": \"\\u2913\",\n  \"DownArrowUpArrow;\": \"\\u21F5\",\n  \"DownBreve;\": \"\\u0311\",\n  \"downdownarrows;\": \"\\u21CA\",\n  \"downharpoonleft;\": \"\\u21C3\",\n  \"downharpoonright;\": \"\\u21C2\",\n  \"DownLeftRightVector;\": \"\\u2950\",\n  \"DownLeftTeeVector;\": \"\\u295E\",\n  \"DownLeftVector;\": \"\\u21BD\",\n  \"DownLeftVectorBar;\": \"\\u2956\",\n  \"DownRightTeeVector;\": \"\\u295F\",\n  \"DownRightVector;\": \"\\u21C1\",\n  \"DownRightVectorBar;\": \"\\u2957\",\n  \"DownTee;\": \"\\u22A4\",\n  \"DownTeeArrow;\": \"\\u21A7\",\n  \"drbkarow;\": \"\\u2910\",\n  \"drcorn;\": \"\\u231F\",\n  \"drcrop;\": \"\\u230C\",\n  \"Dscr;\": \"\\u{1D49F}\",\n  \"dscr;\": \"\\u{1D4B9}\",\n  \"DScy;\": \"\\u0405\",\n  \"dscy;\": \"\\u0455\",\n  \"dsol;\": \"\\u29F6\",\n  \"Dstrok;\": \"\\u0110\",\n  \"dstrok;\": \"\\u0111\",\n  \"dtdot;\": \"\\u22F1\",\n  \"dtri;\": \"\\u25BF\",\n  \"dtrif;\": \"\\u25BE\",\n  \"duarr;\": \"\\u21F5\",\n  \"duhar;\": \"\\u296F\",\n  \"dwangle;\": \"\\u29A6\",\n  \"DZcy;\": \"\\u040F\",\n  \"dzcy;\": \"\\u045F\",\n  \"dzigrarr;\": \"\\u27FF\",\n  \"Eacute;\": \"\\xC9\",\n  \"Eacute\": \"\\xC9\",\n  \"eacute;\": \"\\xE9\",\n  \"eacute\": \"\\xE9\",\n  \"easter;\": \"\\u2A6E\",\n  \"Ecaron;\": \"\\u011A\",\n  \"ecaron;\": \"\\u011B\",\n  \"ecir;\": \"\\u2256\",\n  \"Ecirc;\": \"\\xCA\",\n  \"Ecirc\": \"\\xCA\",\n  \"ecirc;\": \"\\xEA\",\n  \"ecirc\": \"\\xEA\",\n  \"ecolon;\": \"\\u2255\",\n  \"Ecy;\": \"\\u042D\",\n  \"ecy;\": \"\\u044D\",\n  \"eDDot;\": \"\\u2A77\",\n  \"Edot;\": \"\\u0116\",\n  \"eDot;\": \"\\u2251\",\n  \"edot;\": \"\\u0117\",\n  \"ee;\": \"\\u2147\",\n  \"efDot;\": \"\\u2252\",\n  \"Efr;\": \"\\u{1D508}\",\n  \"efr;\": \"\\u{1D522}\",\n  \"eg;\": \"\\u2A9A\",\n  \"Egrave;\": \"\\xC8\",\n  \"Egrave\": \"\\xC8\",\n  \"egrave;\": \"\\xE8\",\n  \"egrave\": \"\\xE8\",\n  \"egs;\": \"\\u2A96\",\n  \"egsdot;\": \"\\u2A98\",\n  \"el;\": \"\\u2A99\",\n  \"Element;\": \"\\u2208\",\n  \"elinters;\": \"\\u23E7\",\n  \"ell;\": \"\\u2113\",\n  \"els;\": \"\\u2A95\",\n  \"elsdot;\": \"\\u2A97\",\n  \"Emacr;\": \"\\u0112\",\n  \"emacr;\": \"\\u0113\",\n  \"empty;\": \"\\u2205\",\n  \"emptyset;\": \"\\u2205\",\n  \"EmptySmallSquare;\": \"\\u25FB\",\n  \"emptyv;\": \"\\u2205\",\n  \"EmptyVerySmallSquare;\": \"\\u25AB\",\n  \"emsp;\": \"\\u2003\",\n  \"emsp13;\": \"\\u2004\",\n  \"emsp14;\": \"\\u2005\",\n  \"ENG;\": \"\\u014A\",\n  \"eng;\": \"\\u014B\",\n  \"ensp;\": \"\\u2002\",\n  \"Eogon;\": \"\\u0118\",\n  \"eogon;\": \"\\u0119\",\n  \"Eopf;\": \"\\u{1D53C}\",\n  \"eopf;\": \"\\u{1D556}\",\n  \"epar;\": \"\\u22D5\",\n  \"eparsl;\": \"\\u29E3\",\n  \"eplus;\": \"\\u2A71\",\n  \"epsi;\": \"\\u03B5\",\n  \"Epsilon;\": \"\\u0395\",\n  \"epsilon;\": \"\\u03B5\",\n  \"epsiv;\": \"\\u03F5\",\n  \"eqcirc;\": \"\\u2256\",\n  \"eqcolon;\": \"\\u2255\",\n  \"eqsim;\": \"\\u2242\",\n  \"eqslantgtr;\": \"\\u2A96\",\n  \"eqslantless;\": \"\\u2A95\",\n  \"Equal;\": \"\\u2A75\",\n  \"equals;\": \"=\",\n  \"EqualTilde;\": \"\\u2242\",\n  \"equest;\": \"\\u225F\",\n  \"Equilibrium;\": \"\\u21CC\",\n  \"equiv;\": \"\\u2261\",\n  \"equivDD;\": \"\\u2A78\",\n  \"eqvparsl;\": \"\\u29E5\",\n  \"erarr;\": \"\\u2971\",\n  \"erDot;\": \"\\u2253\",\n  \"Escr;\": \"\\u2130\",\n  \"escr;\": \"\\u212F\",\n  \"esdot;\": \"\\u2250\",\n  \"Esim;\": \"\\u2A73\",\n  \"esim;\": \"\\u2242\",\n  \"Eta;\": \"\\u0397\",\n  \"eta;\": \"\\u03B7\",\n  \"ETH;\": \"\\xD0\",\n  \"ETH\": \"\\xD0\",\n  \"eth;\": \"\\xF0\",\n  \"eth\": \"\\xF0\",\n  \"Euml;\": \"\\xCB\",\n  \"Euml\": \"\\xCB\",\n  \"euml;\": \"\\xEB\",\n  \"euml\": \"\\xEB\",\n  \"euro;\": \"\\u20AC\",\n  \"excl;\": \"!\",\n  \"exist;\": \"\\u2203\",\n  \"Exists;\": \"\\u2203\",\n  \"expectation;\": \"\\u2130\",\n  \"ExponentialE;\": \"\\u2147\",\n  \"exponentiale;\": \"\\u2147\",\n  \"fallingdotseq;\": \"\\u2252\",\n  \"Fcy;\": \"\\u0424\",\n  \"fcy;\": \"\\u0444\",\n  \"female;\": \"\\u2640\",\n  \"ffilig;\": \"\\uFB03\",\n  \"fflig;\": \"\\uFB00\",\n  \"ffllig;\": \"\\uFB04\",\n  \"Ffr;\": \"\\u{1D509}\",\n  \"ffr;\": \"\\u{1D523}\",\n  \"filig;\": \"\\uFB01\",\n  \"FilledSmallSquare;\": \"\\u25FC\",\n  \"FilledVerySmallSquare;\": \"\\u25AA\",\n  \"fjlig;\": \"fj\",\n  \"flat;\": \"\\u266D\",\n  \"fllig;\": \"\\uFB02\",\n  \"fltns;\": \"\\u25B1\",\n  \"fnof;\": \"\\u0192\",\n  \"Fopf;\": \"\\u{1D53D}\",\n  \"fopf;\": \"\\u{1D557}\",\n  \"ForAll;\": \"\\u2200\",\n  \"forall;\": \"\\u2200\",\n  \"fork;\": \"\\u22D4\",\n  \"forkv;\": \"\\u2AD9\",\n  \"Fouriertrf;\": \"\\u2131\",\n  \"fpartint;\": \"\\u2A0D\",\n  \"frac12;\": \"\\xBD\",\n  \"frac12\": \"\\xBD\",\n  \"frac13;\": \"\\u2153\",\n  \"frac14;\": \"\\xBC\",\n  \"frac14\": \"\\xBC\",\n  \"frac15;\": \"\\u2155\",\n  \"frac16;\": \"\\u2159\",\n  \"frac18;\": \"\\u215B\",\n  \"frac23;\": \"\\u2154\",\n  \"frac25;\": \"\\u2156\",\n  \"frac34;\": \"\\xBE\",\n  \"frac34\": \"\\xBE\",\n  \"frac35;\": \"\\u2157\",\n  \"frac38;\": \"\\u215C\",\n  \"frac45;\": \"\\u2158\",\n  \"frac56;\": \"\\u215A\",\n  \"frac58;\": \"\\u215D\",\n  \"frac78;\": \"\\u215E\",\n  \"frasl;\": \"\\u2044\",\n  \"frown;\": \"\\u2322\",\n  \"Fscr;\": \"\\u2131\",\n  \"fscr;\": \"\\u{1D4BB}\",\n  \"gacute;\": \"\\u01F5\",\n  \"Gamma;\": \"\\u0393\",\n  \"gamma;\": \"\\u03B3\",\n  \"Gammad;\": \"\\u03DC\",\n  \"gammad;\": \"\\u03DD\",\n  \"gap;\": \"\\u2A86\",\n  \"Gbreve;\": \"\\u011E\",\n  \"gbreve;\": \"\\u011F\",\n  \"Gcedil;\": \"\\u0122\",\n  \"Gcirc;\": \"\\u011C\",\n  \"gcirc;\": \"\\u011D\",\n  \"Gcy;\": \"\\u0413\",\n  \"gcy;\": \"\\u0433\",\n  \"Gdot;\": \"\\u0120\",\n  \"gdot;\": \"\\u0121\",\n  \"gE;\": \"\\u2267\",\n  \"ge;\": \"\\u2265\",\n  \"gEl;\": \"\\u2A8C\",\n  \"gel;\": \"\\u22DB\",\n  \"geq;\": \"\\u2265\",\n  \"geqq;\": \"\\u2267\",\n  \"geqslant;\": \"\\u2A7E\",\n  \"ges;\": \"\\u2A7E\",\n  \"gescc;\": \"\\u2AA9\",\n  \"gesdot;\": \"\\u2A80\",\n  \"gesdoto;\": \"\\u2A82\",\n  \"gesdotol;\": \"\\u2A84\",\n  \"gesl;\": \"\\u22DB\\uFE00\",\n  \"gesles;\": \"\\u2A94\",\n  \"Gfr;\": \"\\u{1D50A}\",\n  \"gfr;\": \"\\u{1D524}\",\n  \"Gg;\": \"\\u22D9\",\n  \"gg;\": \"\\u226B\",\n  \"ggg;\": \"\\u22D9\",\n  \"gimel;\": \"\\u2137\",\n  \"GJcy;\": \"\\u0403\",\n  \"gjcy;\": \"\\u0453\",\n  \"gl;\": \"\\u2277\",\n  \"gla;\": \"\\u2AA5\",\n  \"glE;\": \"\\u2A92\",\n  \"glj;\": \"\\u2AA4\",\n  \"gnap;\": \"\\u2A8A\",\n  \"gnapprox;\": \"\\u2A8A\",\n  \"gnE;\": \"\\u2269\",\n  \"gne;\": \"\\u2A88\",\n  \"gneq;\": \"\\u2A88\",\n  \"gneqq;\": \"\\u2269\",\n  \"gnsim;\": \"\\u22E7\",\n  \"Gopf;\": \"\\u{1D53E}\",\n  \"gopf;\": \"\\u{1D558}\",\n  \"grave;\": \"`\",\n  \"GreaterEqual;\": \"\\u2265\",\n  \"GreaterEqualLess;\": \"\\u22DB\",\n  \"GreaterFullEqual;\": \"\\u2267\",\n  \"GreaterGreater;\": \"\\u2AA2\",\n  \"GreaterLess;\": \"\\u2277\",\n  \"GreaterSlantEqual;\": \"\\u2A7E\",\n  \"GreaterTilde;\": \"\\u2273\",\n  \"Gscr;\": \"\\u{1D4A2}\",\n  \"gscr;\": \"\\u210A\",\n  \"gsim;\": \"\\u2273\",\n  \"gsime;\": \"\\u2A8E\",\n  \"gsiml;\": \"\\u2A90\",\n  \"GT;\": \">\",\n  \"GT\": \">\",\n  \"Gt;\": \"\\u226B\",\n  \"gt;\": \">\",\n  \"gt\": \">\",\n  \"gtcc;\": \"\\u2AA7\",\n  \"gtcir;\": \"\\u2A7A\",\n  \"gtdot;\": \"\\u22D7\",\n  \"gtlPar;\": \"\\u2995\",\n  \"gtquest;\": \"\\u2A7C\",\n  \"gtrapprox;\": \"\\u2A86\",\n  \"gtrarr;\": \"\\u2978\",\n  \"gtrdot;\": \"\\u22D7\",\n  \"gtreqless;\": \"\\u22DB\",\n  \"gtreqqless;\": \"\\u2A8C\",\n  \"gtrless;\": \"\\u2277\",\n  \"gtrsim;\": \"\\u2273\",\n  \"gvertneqq;\": \"\\u2269\\uFE00\",\n  \"gvnE;\": \"\\u2269\\uFE00\",\n  \"Hacek;\": \"\\u02C7\",\n  \"hairsp;\": \"\\u200A\",\n  \"half;\": \"\\xBD\",\n  \"hamilt;\": \"\\u210B\",\n  \"HARDcy;\": \"\\u042A\",\n  \"hardcy;\": \"\\u044A\",\n  \"hArr;\": \"\\u21D4\",\n  \"harr;\": \"\\u2194\",\n  \"harrcir;\": \"\\u2948\",\n  \"harrw;\": \"\\u21AD\",\n  \"Hat;\": \"^\",\n  \"hbar;\": \"\\u210F\",\n  \"Hcirc;\": \"\\u0124\",\n  \"hcirc;\": \"\\u0125\",\n  \"hearts;\": \"\\u2665\",\n  \"heartsuit;\": \"\\u2665\",\n  \"hellip;\": \"\\u2026\",\n  \"hercon;\": \"\\u22B9\",\n  \"Hfr;\": \"\\u210C\",\n  \"hfr;\": \"\\u{1D525}\",\n  \"HilbertSpace;\": \"\\u210B\",\n  \"hksearow;\": \"\\u2925\",\n  \"hkswarow;\": \"\\u2926\",\n  \"hoarr;\": \"\\u21FF\",\n  \"homtht;\": \"\\u223B\",\n  \"hookleftarrow;\": \"\\u21A9\",\n  \"hookrightarrow;\": \"\\u21AA\",\n  \"Hopf;\": \"\\u210D\",\n  \"hopf;\": \"\\u{1D559}\",\n  \"horbar;\": \"\\u2015\",\n  \"HorizontalLine;\": \"\\u2500\",\n  \"Hscr;\": \"\\u210B\",\n  \"hscr;\": \"\\u{1D4BD}\",\n  \"hslash;\": \"\\u210F\",\n  \"Hstrok;\": \"\\u0126\",\n  \"hstrok;\": \"\\u0127\",\n  \"HumpDownHump;\": \"\\u224E\",\n  \"HumpEqual;\": \"\\u224F\",\n  \"hybull;\": \"\\u2043\",\n  \"hyphen;\": \"\\u2010\",\n  \"Iacute;\": \"\\xCD\",\n  \"Iacute\": \"\\xCD\",\n  \"iacute;\": \"\\xED\",\n  \"iacute\": \"\\xED\",\n  \"ic;\": \"\\u2063\",\n  \"Icirc;\": \"\\xCE\",\n  \"Icirc\": \"\\xCE\",\n  \"icirc;\": \"\\xEE\",\n  \"icirc\": \"\\xEE\",\n  \"Icy;\": \"\\u0418\",\n  \"icy;\": \"\\u0438\",\n  \"Idot;\": \"\\u0130\",\n  \"IEcy;\": \"\\u0415\",\n  \"iecy;\": \"\\u0435\",\n  \"iexcl;\": \"\\xA1\",\n  \"iexcl\": \"\\xA1\",\n  \"iff;\": \"\\u21D4\",\n  \"Ifr;\": \"\\u2111\",\n  \"ifr;\": \"\\u{1D526}\",\n  \"Igrave;\": \"\\xCC\",\n  \"Igrave\": \"\\xCC\",\n  \"igrave;\": \"\\xEC\",\n  \"igrave\": \"\\xEC\",\n  \"ii;\": \"\\u2148\",\n  \"iiiint;\": \"\\u2A0C\",\n  \"iiint;\": \"\\u222D\",\n  \"iinfin;\": \"\\u29DC\",\n  \"iiota;\": \"\\u2129\",\n  \"IJlig;\": \"\\u0132\",\n  \"ijlig;\": \"\\u0133\",\n  \"Im;\": \"\\u2111\",\n  \"Imacr;\": \"\\u012A\",\n  \"imacr;\": \"\\u012B\",\n  \"image;\": \"\\u2111\",\n  \"ImaginaryI;\": \"\\u2148\",\n  \"imagline;\": \"\\u2110\",\n  \"imagpart;\": \"\\u2111\",\n  \"imath;\": \"\\u0131\",\n  \"imof;\": \"\\u22B7\",\n  \"imped;\": \"\\u01B5\",\n  \"Implies;\": \"\\u21D2\",\n  \"in;\": \"\\u2208\",\n  \"incare;\": \"\\u2105\",\n  \"infin;\": \"\\u221E\",\n  \"infintie;\": \"\\u29DD\",\n  \"inodot;\": \"\\u0131\",\n  \"Int;\": \"\\u222C\",\n  \"int;\": \"\\u222B\",\n  \"intcal;\": \"\\u22BA\",\n  \"integers;\": \"\\u2124\",\n  \"Integral;\": \"\\u222B\",\n  \"intercal;\": \"\\u22BA\",\n  \"Intersection;\": \"\\u22C2\",\n  \"intlarhk;\": \"\\u2A17\",\n  \"intprod;\": \"\\u2A3C\",\n  \"InvisibleComma;\": \"\\u2063\",\n  \"InvisibleTimes;\": \"\\u2062\",\n  \"IOcy;\": \"\\u0401\",\n  \"iocy;\": \"\\u0451\",\n  \"Iogon;\": \"\\u012E\",\n  \"iogon;\": \"\\u012F\",\n  \"Iopf;\": \"\\u{1D540}\",\n  \"iopf;\": \"\\u{1D55A}\",\n  \"Iota;\": \"\\u0399\",\n  \"iota;\": \"\\u03B9\",\n  \"iprod;\": \"\\u2A3C\",\n  \"iquest;\": \"\\xBF\",\n  \"iquest\": \"\\xBF\",\n  \"Iscr;\": \"\\u2110\",\n  \"iscr;\": \"\\u{1D4BE}\",\n  \"isin;\": \"\\u2208\",\n  \"isindot;\": \"\\u22F5\",\n  \"isinE;\": \"\\u22F9\",\n  \"isins;\": \"\\u22F4\",\n  \"isinsv;\": \"\\u22F3\",\n  \"isinv;\": \"\\u2208\",\n  \"it;\": \"\\u2062\",\n  \"Itilde;\": \"\\u0128\",\n  \"itilde;\": \"\\u0129\",\n  \"Iukcy;\": \"\\u0406\",\n  \"iukcy;\": \"\\u0456\",\n  \"Iuml;\": \"\\xCF\",\n  \"Iuml\": \"\\xCF\",\n  \"iuml;\": \"\\xEF\",\n  \"iuml\": \"\\xEF\",\n  \"Jcirc;\": \"\\u0134\",\n  \"jcirc;\": \"\\u0135\",\n  \"Jcy;\": \"\\u0419\",\n  \"jcy;\": \"\\u0439\",\n  \"Jfr;\": \"\\u{1D50D}\",\n  \"jfr;\": \"\\u{1D527}\",\n  \"jmath;\": \"\\u0237\",\n  \"Jopf;\": \"\\u{1D541}\",\n  \"jopf;\": \"\\u{1D55B}\",\n  \"Jscr;\": \"\\u{1D4A5}\",\n  \"jscr;\": \"\\u{1D4BF}\",\n  \"Jsercy;\": \"\\u0408\",\n  \"jsercy;\": \"\\u0458\",\n  \"Jukcy;\": \"\\u0404\",\n  \"jukcy;\": \"\\u0454\",\n  \"Kappa;\": \"\\u039A\",\n  \"kappa;\": \"\\u03BA\",\n  \"kappav;\": \"\\u03F0\",\n  \"Kcedil;\": \"\\u0136\",\n  \"kcedil;\": \"\\u0137\",\n  \"Kcy;\": \"\\u041A\",\n  \"kcy;\": \"\\u043A\",\n  \"Kfr;\": \"\\u{1D50E}\",\n  \"kfr;\": \"\\u{1D528}\",\n  \"kgreen;\": \"\\u0138\",\n  \"KHcy;\": \"\\u0425\",\n  \"khcy;\": \"\\u0445\",\n  \"KJcy;\": \"\\u040C\",\n  \"kjcy;\": \"\\u045C\",\n  \"Kopf;\": \"\\u{1D542}\",\n  \"kopf;\": \"\\u{1D55C}\",\n  \"Kscr;\": \"\\u{1D4A6}\",\n  \"kscr;\": \"\\u{1D4C0}\",\n  \"lAarr;\": \"\\u21DA\",\n  \"Lacute;\": \"\\u0139\",\n  \"lacute;\": \"\\u013A\",\n  \"laemptyv;\": \"\\u29B4\",\n  \"lagran;\": \"\\u2112\",\n  \"Lambda;\": \"\\u039B\",\n  \"lambda;\": \"\\u03BB\",\n  \"Lang;\": \"\\u27EA\",\n  \"lang;\": \"\\u27E8\",\n  \"langd;\": \"\\u2991\",\n  \"langle;\": \"\\u27E8\",\n  \"lap;\": \"\\u2A85\",\n  \"Laplacetrf;\": \"\\u2112\",\n  \"laquo;\": \"\\xAB\",\n  \"laquo\": \"\\xAB\",\n  \"Larr;\": \"\\u219E\",\n  \"lArr;\": \"\\u21D0\",\n  \"larr;\": \"\\u2190\",\n  \"larrb;\": \"\\u21E4\",\n  \"larrbfs;\": \"\\u291F\",\n  \"larrfs;\": \"\\u291D\",\n  \"larrhk;\": \"\\u21A9\",\n  \"larrlp;\": \"\\u21AB\",\n  \"larrpl;\": \"\\u2939\",\n  \"larrsim;\": \"\\u2973\",\n  \"larrtl;\": \"\\u21A2\",\n  \"lat;\": \"\\u2AAB\",\n  \"lAtail;\": \"\\u291B\",\n  \"latail;\": \"\\u2919\",\n  \"late;\": \"\\u2AAD\",\n  \"lates;\": \"\\u2AAD\\uFE00\",\n  \"lBarr;\": \"\\u290E\",\n  \"lbarr;\": \"\\u290C\",\n  \"lbbrk;\": \"\\u2772\",\n  \"lbrace;\": \"{\",\n  \"lbrack;\": \"[\",\n  \"lbrke;\": \"\\u298B\",\n  \"lbrksld;\": \"\\u298F\",\n  \"lbrkslu;\": \"\\u298D\",\n  \"Lcaron;\": \"\\u013D\",\n  \"lcaron;\": \"\\u013E\",\n  \"Lcedil;\": \"\\u013B\",\n  \"lcedil;\": \"\\u013C\",\n  \"lceil;\": \"\\u2308\",\n  \"lcub;\": \"{\",\n  \"Lcy;\": \"\\u041B\",\n  \"lcy;\": \"\\u043B\",\n  \"ldca;\": \"\\u2936\",\n  \"ldquo;\": \"\\u201C\",\n  \"ldquor;\": \"\\u201E\",\n  \"ldrdhar;\": \"\\u2967\",\n  \"ldrushar;\": \"\\u294B\",\n  \"ldsh;\": \"\\u21B2\",\n  \"lE;\": \"\\u2266\",\n  \"le;\": \"\\u2264\",\n  \"LeftAngleBracket;\": \"\\u27E8\",\n  \"LeftArrow;\": \"\\u2190\",\n  \"Leftarrow;\": \"\\u21D0\",\n  \"leftarrow;\": \"\\u2190\",\n  \"LeftArrowBar;\": \"\\u21E4\",\n  \"LeftArrowRightArrow;\": \"\\u21C6\",\n  \"leftarrowtail;\": \"\\u21A2\",\n  \"LeftCeiling;\": \"\\u2308\",\n  \"LeftDoubleBracket;\": \"\\u27E6\",\n  \"LeftDownTeeVector;\": \"\\u2961\",\n  \"LeftDownVector;\": \"\\u21C3\",\n  \"LeftDownVectorBar;\": \"\\u2959\",\n  \"LeftFloor;\": \"\\u230A\",\n  \"leftharpoondown;\": \"\\u21BD\",\n  \"leftharpoonup;\": \"\\u21BC\",\n  \"leftleftarrows;\": \"\\u21C7\",\n  \"LeftRightArrow;\": \"\\u2194\",\n  \"Leftrightarrow;\": \"\\u21D4\",\n  \"leftrightarrow;\": \"\\u2194\",\n  \"leftrightarrows;\": \"\\u21C6\",\n  \"leftrightharpoons;\": \"\\u21CB\",\n  \"leftrightsquigarrow;\": \"\\u21AD\",\n  \"LeftRightVector;\": \"\\u294E\",\n  \"LeftTee;\": \"\\u22A3\",\n  \"LeftTeeArrow;\": \"\\u21A4\",\n  \"LeftTeeVector;\": \"\\u295A\",\n  \"leftthreetimes;\": \"\\u22CB\",\n  \"LeftTriangle;\": \"\\u22B2\",\n  \"LeftTriangleBar;\": \"\\u29CF\",\n  \"LeftTriangleEqual;\": \"\\u22B4\",\n  \"LeftUpDownVector;\": \"\\u2951\",\n  \"LeftUpTeeVector;\": \"\\u2960\",\n  \"LeftUpVector;\": \"\\u21BF\",\n  \"LeftUpVectorBar;\": \"\\u2958\",\n  \"LeftVector;\": \"\\u21BC\",\n  \"LeftVectorBar;\": \"\\u2952\",\n  \"lEg;\": \"\\u2A8B\",\n  \"leg;\": \"\\u22DA\",\n  \"leq;\": \"\\u2264\",\n  \"leqq;\": \"\\u2266\",\n  \"leqslant;\": \"\\u2A7D\",\n  \"les;\": \"\\u2A7D\",\n  \"lescc;\": \"\\u2AA8\",\n  \"lesdot;\": \"\\u2A7F\",\n  \"lesdoto;\": \"\\u2A81\",\n  \"lesdotor;\": \"\\u2A83\",\n  \"lesg;\": \"\\u22DA\\uFE00\",\n  \"lesges;\": \"\\u2A93\",\n  \"lessapprox;\": \"\\u2A85\",\n  \"lessdot;\": \"\\u22D6\",\n  \"lesseqgtr;\": \"\\u22DA\",\n  \"lesseqqgtr;\": \"\\u2A8B\",\n  \"LessEqualGreater;\": \"\\u22DA\",\n  \"LessFullEqual;\": \"\\u2266\",\n  \"LessGreater;\": \"\\u2276\",\n  \"lessgtr;\": \"\\u2276\",\n  \"LessLess;\": \"\\u2AA1\",\n  \"lesssim;\": \"\\u2272\",\n  \"LessSlantEqual;\": \"\\u2A7D\",\n  \"LessTilde;\": \"\\u2272\",\n  \"lfisht;\": \"\\u297C\",\n  \"lfloor;\": \"\\u230A\",\n  \"Lfr;\": \"\\u{1D50F}\",\n  \"lfr;\": \"\\u{1D529}\",\n  \"lg;\": \"\\u2276\",\n  \"lgE;\": \"\\u2A91\",\n  \"lHar;\": \"\\u2962\",\n  \"lhard;\": \"\\u21BD\",\n  \"lharu;\": \"\\u21BC\",\n  \"lharul;\": \"\\u296A\",\n  \"lhblk;\": \"\\u2584\",\n  \"LJcy;\": \"\\u0409\",\n  \"ljcy;\": \"\\u0459\",\n  \"Ll;\": \"\\u22D8\",\n  \"ll;\": \"\\u226A\",\n  \"llarr;\": \"\\u21C7\",\n  \"llcorner;\": \"\\u231E\",\n  \"Lleftarrow;\": \"\\u21DA\",\n  \"llhard;\": \"\\u296B\",\n  \"lltri;\": \"\\u25FA\",\n  \"Lmidot;\": \"\\u013F\",\n  \"lmidot;\": \"\\u0140\",\n  \"lmoust;\": \"\\u23B0\",\n  \"lmoustache;\": \"\\u23B0\",\n  \"lnap;\": \"\\u2A89\",\n  \"lnapprox;\": \"\\u2A89\",\n  \"lnE;\": \"\\u2268\",\n  \"lne;\": \"\\u2A87\",\n  \"lneq;\": \"\\u2A87\",\n  \"lneqq;\": \"\\u2268\",\n  \"lnsim;\": \"\\u22E6\",\n  \"loang;\": \"\\u27EC\",\n  \"loarr;\": \"\\u21FD\",\n  \"lobrk;\": \"\\u27E6\",\n  \"LongLeftArrow;\": \"\\u27F5\",\n  \"Longleftarrow;\": \"\\u27F8\",\n  \"longleftarrow;\": \"\\u27F5\",\n  \"LongLeftRightArrow;\": \"\\u27F7\",\n  \"Longleftrightarrow;\": \"\\u27FA\",\n  \"longleftrightarrow;\": \"\\u27F7\",\n  \"longmapsto;\": \"\\u27FC\",\n  \"LongRightArrow;\": \"\\u27F6\",\n  \"Longrightarrow;\": \"\\u27F9\",\n  \"longrightarrow;\": \"\\u27F6\",\n  \"looparrowleft;\": \"\\u21AB\",\n  \"looparrowright;\": \"\\u21AC\",\n  \"lopar;\": \"\\u2985\",\n  \"Lopf;\": \"\\u{1D543}\",\n  \"lopf;\": \"\\u{1D55D}\",\n  \"loplus;\": \"\\u2A2D\",\n  \"lotimes;\": \"\\u2A34\",\n  \"lowast;\": \"\\u2217\",\n  \"lowbar;\": \"_\",\n  \"LowerLeftArrow;\": \"\\u2199\",\n  \"LowerRightArrow;\": \"\\u2198\",\n  \"loz;\": \"\\u25CA\",\n  \"lozenge;\": \"\\u25CA\",\n  \"lozf;\": \"\\u29EB\",\n  \"lpar;\": \"(\",\n  \"lparlt;\": \"\\u2993\",\n  \"lrarr;\": \"\\u21C6\",\n  \"lrcorner;\": \"\\u231F\",\n  \"lrhar;\": \"\\u21CB\",\n  \"lrhard;\": \"\\u296D\",\n  \"lrm;\": \"\\u200E\",\n  \"lrtri;\": \"\\u22BF\",\n  \"lsaquo;\": \"\\u2039\",\n  \"Lscr;\": \"\\u2112\",\n  \"lscr;\": \"\\u{1D4C1}\",\n  \"Lsh;\": \"\\u21B0\",\n  \"lsh;\": \"\\u21B0\",\n  \"lsim;\": \"\\u2272\",\n  \"lsime;\": \"\\u2A8D\",\n  \"lsimg;\": \"\\u2A8F\",\n  \"lsqb;\": \"[\",\n  \"lsquo;\": \"\\u2018\",\n  \"lsquor;\": \"\\u201A\",\n  \"Lstrok;\": \"\\u0141\",\n  \"lstrok;\": \"\\u0142\",\n  \"LT;\": \"<\",\n  \"LT\": \"<\",\n  \"Lt;\": \"\\u226A\",\n  \"lt;\": \"<\",\n  \"lt\": \"<\",\n  \"ltcc;\": \"\\u2AA6\",\n  \"ltcir;\": \"\\u2A79\",\n  \"ltdot;\": \"\\u22D6\",\n  \"lthree;\": \"\\u22CB\",\n  \"ltimes;\": \"\\u22C9\",\n  \"ltlarr;\": \"\\u2976\",\n  \"ltquest;\": \"\\u2A7B\",\n  \"ltri;\": \"\\u25C3\",\n  \"ltrie;\": \"\\u22B4\",\n  \"ltrif;\": \"\\u25C2\",\n  \"ltrPar;\": \"\\u2996\",\n  \"lurdshar;\": \"\\u294A\",\n  \"luruhar;\": \"\\u2966\",\n  \"lvertneqq;\": \"\\u2268\\uFE00\",\n  \"lvnE;\": \"\\u2268\\uFE00\",\n  \"macr;\": \"\\xAF\",\n  \"macr\": \"\\xAF\",\n  \"male;\": \"\\u2642\",\n  \"malt;\": \"\\u2720\",\n  \"maltese;\": \"\\u2720\",\n  \"Map;\": \"\\u2905\",\n  \"map;\": \"\\u21A6\",\n  \"mapsto;\": \"\\u21A6\",\n  \"mapstodown;\": \"\\u21A7\",\n  \"mapstoleft;\": \"\\u21A4\",\n  \"mapstoup;\": \"\\u21A5\",\n  \"marker;\": \"\\u25AE\",\n  \"mcomma;\": \"\\u2A29\",\n  \"Mcy;\": \"\\u041C\",\n  \"mcy;\": \"\\u043C\",\n  \"mdash;\": \"\\u2014\",\n  \"mDDot;\": \"\\u223A\",\n  \"measuredangle;\": \"\\u2221\",\n  \"MediumSpace;\": \"\\u205F\",\n  \"Mellintrf;\": \"\\u2133\",\n  \"Mfr;\": \"\\u{1D510}\",\n  \"mfr;\": \"\\u{1D52A}\",\n  \"mho;\": \"\\u2127\",\n  \"micro;\": \"\\xB5\",\n  \"micro\": \"\\xB5\",\n  \"mid;\": \"\\u2223\",\n  \"midast;\": \"*\",\n  \"midcir;\": \"\\u2AF0\",\n  \"middot;\": \"\\xB7\",\n  \"middot\": \"\\xB7\",\n  \"minus;\": \"\\u2212\",\n  \"minusb;\": \"\\u229F\",\n  \"minusd;\": \"\\u2238\",\n  \"minusdu;\": \"\\u2A2A\",\n  \"MinusPlus;\": \"\\u2213\",\n  \"mlcp;\": \"\\u2ADB\",\n  \"mldr;\": \"\\u2026\",\n  \"mnplus;\": \"\\u2213\",\n  \"models;\": \"\\u22A7\",\n  \"Mopf;\": \"\\u{1D544}\",\n  \"mopf;\": \"\\u{1D55E}\",\n  \"mp;\": \"\\u2213\",\n  \"Mscr;\": \"\\u2133\",\n  \"mscr;\": \"\\u{1D4C2}\",\n  \"mstpos;\": \"\\u223E\",\n  \"Mu;\": \"\\u039C\",\n  \"mu;\": \"\\u03BC\",\n  \"multimap;\": \"\\u22B8\",\n  \"mumap;\": \"\\u22B8\",\n  \"nabla;\": \"\\u2207\",\n  \"Nacute;\": \"\\u0143\",\n  \"nacute;\": \"\\u0144\",\n  \"nang;\": \"\\u2220\\u20D2\",\n  \"nap;\": \"\\u2249\",\n  \"napE;\": \"\\u2A70\\u0338\",\n  \"napid;\": \"\\u224B\\u0338\",\n  \"napos;\": \"\\u0149\",\n  \"napprox;\": \"\\u2249\",\n  \"natur;\": \"\\u266E\",\n  \"natural;\": \"\\u266E\",\n  \"naturals;\": \"\\u2115\",\n  \"nbsp;\": \"\\xA0\",\n  \"nbsp\": \"\\xA0\",\n  \"nbump;\": \"\\u224E\\u0338\",\n  \"nbumpe;\": \"\\u224F\\u0338\",\n  \"ncap;\": \"\\u2A43\",\n  \"Ncaron;\": \"\\u0147\",\n  \"ncaron;\": \"\\u0148\",\n  \"Ncedil;\": \"\\u0145\",\n  \"ncedil;\": \"\\u0146\",\n  \"ncong;\": \"\\u2247\",\n  \"ncongdot;\": \"\\u2A6D\\u0338\",\n  \"ncup;\": \"\\u2A42\",\n  \"Ncy;\": \"\\u041D\",\n  \"ncy;\": \"\\u043D\",\n  \"ndash;\": \"\\u2013\",\n  \"ne;\": \"\\u2260\",\n  \"nearhk;\": \"\\u2924\",\n  \"neArr;\": \"\\u21D7\",\n  \"nearr;\": \"\\u2197\",\n  \"nearrow;\": \"\\u2197\",\n  \"nedot;\": \"\\u2250\\u0338\",\n  \"NegativeMediumSpace;\": \"\\u200B\",\n  \"NegativeThickSpace;\": \"\\u200B\",\n  \"NegativeThinSpace;\": \"\\u200B\",\n  \"NegativeVeryThinSpace;\": \"\\u200B\",\n  \"nequiv;\": \"\\u2262\",\n  \"nesear;\": \"\\u2928\",\n  \"nesim;\": \"\\u2242\\u0338\",\n  \"NestedGreaterGreater;\": \"\\u226B\",\n  \"NestedLessLess;\": \"\\u226A\",\n  \"NewLine;\": \"\\n\",\n  \"nexist;\": \"\\u2204\",\n  \"nexists;\": \"\\u2204\",\n  \"Nfr;\": \"\\u{1D511}\",\n  \"nfr;\": \"\\u{1D52B}\",\n  \"ngE;\": \"\\u2267\\u0338\",\n  \"nge;\": \"\\u2271\",\n  \"ngeq;\": \"\\u2271\",\n  \"ngeqq;\": \"\\u2267\\u0338\",\n  \"ngeqslant;\": \"\\u2A7E\\u0338\",\n  \"nges;\": \"\\u2A7E\\u0338\",\n  \"nGg;\": \"\\u22D9\\u0338\",\n  \"ngsim;\": \"\\u2275\",\n  \"nGt;\": \"\\u226B\\u20D2\",\n  \"ngt;\": \"\\u226F\",\n  \"ngtr;\": \"\\u226F\",\n  \"nGtv;\": \"\\u226B\\u0338\",\n  \"nhArr;\": \"\\u21CE\",\n  \"nharr;\": \"\\u21AE\",\n  \"nhpar;\": \"\\u2AF2\",\n  \"ni;\": \"\\u220B\",\n  \"nis;\": \"\\u22FC\",\n  \"nisd;\": \"\\u22FA\",\n  \"niv;\": \"\\u220B\",\n  \"NJcy;\": \"\\u040A\",\n  \"njcy;\": \"\\u045A\",\n  \"nlArr;\": \"\\u21CD\",\n  \"nlarr;\": \"\\u219A\",\n  \"nldr;\": \"\\u2025\",\n  \"nlE;\": \"\\u2266\\u0338\",\n  \"nle;\": \"\\u2270\",\n  \"nLeftarrow;\": \"\\u21CD\",\n  \"nleftarrow;\": \"\\u219A\",\n  \"nLeftrightarrow;\": \"\\u21CE\",\n  \"nleftrightarrow;\": \"\\u21AE\",\n  \"nleq;\": \"\\u2270\",\n  \"nleqq;\": \"\\u2266\\u0338\",\n  \"nleqslant;\": \"\\u2A7D\\u0338\",\n  \"nles;\": \"\\u2A7D\\u0338\",\n  \"nless;\": \"\\u226E\",\n  \"nLl;\": \"\\u22D8\\u0338\",\n  \"nlsim;\": \"\\u2274\",\n  \"nLt;\": \"\\u226A\\u20D2\",\n  \"nlt;\": \"\\u226E\",\n  \"nltri;\": \"\\u22EA\",\n  \"nltrie;\": \"\\u22EC\",\n  \"nLtv;\": \"\\u226A\\u0338\",\n  \"nmid;\": \"\\u2224\",\n  \"NoBreak;\": \"\\u2060\",\n  \"NonBreakingSpace;\": \"\\xA0\",\n  \"Nopf;\": \"\\u2115\",\n  \"nopf;\": \"\\u{1D55F}\",\n  \"Not;\": \"\\u2AEC\",\n  \"not;\": \"\\xAC\",\n  \"not\": \"\\xAC\",\n  \"NotCongruent;\": \"\\u2262\",\n  \"NotCupCap;\": \"\\u226D\",\n  \"NotDoubleVerticalBar;\": \"\\u2226\",\n  \"NotElement;\": \"\\u2209\",\n  \"NotEqual;\": \"\\u2260\",\n  \"NotEqualTilde;\": \"\\u2242\\u0338\",\n  \"NotExists;\": \"\\u2204\",\n  \"NotGreater;\": \"\\u226F\",\n  \"NotGreaterEqual;\": \"\\u2271\",\n  \"NotGreaterFullEqual;\": \"\\u2267\\u0338\",\n  \"NotGreaterGreater;\": \"\\u226B\\u0338\",\n  \"NotGreaterLess;\": \"\\u2279\",\n  \"NotGreaterSlantEqual;\": \"\\u2A7E\\u0338\",\n  \"NotGreaterTilde;\": \"\\u2275\",\n  \"NotHumpDownHump;\": \"\\u224E\\u0338\",\n  \"NotHumpEqual;\": \"\\u224F\\u0338\",\n  \"notin;\": \"\\u2209\",\n  \"notindot;\": \"\\u22F5\\u0338\",\n  \"notinE;\": \"\\u22F9\\u0338\",\n  \"notinva;\": \"\\u2209\",\n  \"notinvb;\": \"\\u22F7\",\n  \"notinvc;\": \"\\u22F6\",\n  \"NotLeftTriangle;\": \"\\u22EA\",\n  \"NotLeftTriangleBar;\": \"\\u29CF\\u0338\",\n  \"NotLeftTriangleEqual;\": \"\\u22EC\",\n  \"NotLess;\": \"\\u226E\",\n  \"NotLessEqual;\": \"\\u2270\",\n  \"NotLessGreater;\": \"\\u2278\",\n  \"NotLessLess;\": \"\\u226A\\u0338\",\n  \"NotLessSlantEqual;\": \"\\u2A7D\\u0338\",\n  \"NotLessTilde;\": \"\\u2274\",\n  \"NotNestedGreaterGreater;\": \"\\u2AA2\\u0338\",\n  \"NotNestedLessLess;\": \"\\u2AA1\\u0338\",\n  \"notni;\": \"\\u220C\",\n  \"notniva;\": \"\\u220C\",\n  \"notnivb;\": \"\\u22FE\",\n  \"notnivc;\": \"\\u22FD\",\n  \"NotPrecedes;\": \"\\u2280\",\n  \"NotPrecedesEqual;\": \"\\u2AAF\\u0338\",\n  \"NotPrecedesSlantEqual;\": \"\\u22E0\",\n  \"NotReverseElement;\": \"\\u220C\",\n  \"NotRightTriangle;\": \"\\u22EB\",\n  \"NotRightTriangleBar;\": \"\\u29D0\\u0338\",\n  \"NotRightTriangleEqual;\": \"\\u22ED\",\n  \"NotSquareSubset;\": \"\\u228F\\u0338\",\n  \"NotSquareSubsetEqual;\": \"\\u22E2\",\n  \"NotSquareSuperset;\": \"\\u2290\\u0338\",\n  \"NotSquareSupersetEqual;\": \"\\u22E3\",\n  \"NotSubset;\": \"\\u2282\\u20D2\",\n  \"NotSubsetEqual;\": \"\\u2288\",\n  \"NotSucceeds;\": \"\\u2281\",\n  \"NotSucceedsEqual;\": \"\\u2AB0\\u0338\",\n  \"NotSucceedsSlantEqual;\": \"\\u22E1\",\n  \"NotSucceedsTilde;\": \"\\u227F\\u0338\",\n  \"NotSuperset;\": \"\\u2283\\u20D2\",\n  \"NotSupersetEqual;\": \"\\u2289\",\n  \"NotTilde;\": \"\\u2241\",\n  \"NotTildeEqual;\": \"\\u2244\",\n  \"NotTildeFullEqual;\": \"\\u2247\",\n  \"NotTildeTilde;\": \"\\u2249\",\n  \"NotVerticalBar;\": \"\\u2224\",\n  \"npar;\": \"\\u2226\",\n  \"nparallel;\": \"\\u2226\",\n  \"nparsl;\": \"\\u2AFD\\u20E5\",\n  \"npart;\": \"\\u2202\\u0338\",\n  \"npolint;\": \"\\u2A14\",\n  \"npr;\": \"\\u2280\",\n  \"nprcue;\": \"\\u22E0\",\n  \"npre;\": \"\\u2AAF\\u0338\",\n  \"nprec;\": \"\\u2280\",\n  \"npreceq;\": \"\\u2AAF\\u0338\",\n  \"nrArr;\": \"\\u21CF\",\n  \"nrarr;\": \"\\u219B\",\n  \"nrarrc;\": \"\\u2933\\u0338\",\n  \"nrarrw;\": \"\\u219D\\u0338\",\n  \"nRightarrow;\": \"\\u21CF\",\n  \"nrightarrow;\": \"\\u219B\",\n  \"nrtri;\": \"\\u22EB\",\n  \"nrtrie;\": \"\\u22ED\",\n  \"nsc;\": \"\\u2281\",\n  \"nsccue;\": \"\\u22E1\",\n  \"nsce;\": \"\\u2AB0\\u0338\",\n  \"Nscr;\": \"\\u{1D4A9}\",\n  \"nscr;\": \"\\u{1D4C3}\",\n  \"nshortmid;\": \"\\u2224\",\n  \"nshortparallel;\": \"\\u2226\",\n  \"nsim;\": \"\\u2241\",\n  \"nsime;\": \"\\u2244\",\n  \"nsimeq;\": \"\\u2244\",\n  \"nsmid;\": \"\\u2224\",\n  \"nspar;\": \"\\u2226\",\n  \"nsqsube;\": \"\\u22E2\",\n  \"nsqsupe;\": \"\\u22E3\",\n  \"nsub;\": \"\\u2284\",\n  \"nsubE;\": \"\\u2AC5\\u0338\",\n  \"nsube;\": \"\\u2288\",\n  \"nsubset;\": \"\\u2282\\u20D2\",\n  \"nsubseteq;\": \"\\u2288\",\n  \"nsubseteqq;\": \"\\u2AC5\\u0338\",\n  \"nsucc;\": \"\\u2281\",\n  \"nsucceq;\": \"\\u2AB0\\u0338\",\n  \"nsup;\": \"\\u2285\",\n  \"nsupE;\": \"\\u2AC6\\u0338\",\n  \"nsupe;\": \"\\u2289\",\n  \"nsupset;\": \"\\u2283\\u20D2\",\n  \"nsupseteq;\": \"\\u2289\",\n  \"nsupseteqq;\": \"\\u2AC6\\u0338\",\n  \"ntgl;\": \"\\u2279\",\n  \"Ntilde;\": \"\\xD1\",\n  \"Ntilde\": \"\\xD1\",\n  \"ntilde;\": \"\\xF1\",\n  \"ntilde\": \"\\xF1\",\n  \"ntlg;\": \"\\u2278\",\n  \"ntriangleleft;\": \"\\u22EA\",\n  \"ntrianglelefteq;\": \"\\u22EC\",\n  \"ntriangleright;\": \"\\u22EB\",\n  \"ntrianglerighteq;\": \"\\u22ED\",\n  \"Nu;\": \"\\u039D\",\n  \"nu;\": \"\\u03BD\",\n  \"num;\": \"#\",\n  \"numero;\": \"\\u2116\",\n  \"numsp;\": \"\\u2007\",\n  \"nvap;\": \"\\u224D\\u20D2\",\n  \"nVDash;\": \"\\u22AF\",\n  \"nVdash;\": \"\\u22AE\",\n  \"nvDash;\": \"\\u22AD\",\n  \"nvdash;\": \"\\u22AC\",\n  \"nvge;\": \"\\u2265\\u20D2\",\n  \"nvgt;\": \">\\u20D2\",\n  \"nvHarr;\": \"\\u2904\",\n  \"nvinfin;\": \"\\u29DE\",\n  \"nvlArr;\": \"\\u2902\",\n  \"nvle;\": \"\\u2264\\u20D2\",\n  \"nvlt;\": \"<\\u20D2\",\n  \"nvltrie;\": \"\\u22B4\\u20D2\",\n  \"nvrArr;\": \"\\u2903\",\n  \"nvrtrie;\": \"\\u22B5\\u20D2\",\n  \"nvsim;\": \"\\u223C\\u20D2\",\n  \"nwarhk;\": \"\\u2923\",\n  \"nwArr;\": \"\\u21D6\",\n  \"nwarr;\": \"\\u2196\",\n  \"nwarrow;\": \"\\u2196\",\n  \"nwnear;\": \"\\u2927\",\n  \"Oacute;\": \"\\xD3\",\n  \"Oacute\": \"\\xD3\",\n  \"oacute;\": \"\\xF3\",\n  \"oacute\": \"\\xF3\",\n  \"oast;\": \"\\u229B\",\n  \"ocir;\": \"\\u229A\",\n  \"Ocirc;\": \"\\xD4\",\n  \"Ocirc\": \"\\xD4\",\n  \"ocirc;\": \"\\xF4\",\n  \"ocirc\": \"\\xF4\",\n  \"Ocy;\": \"\\u041E\",\n  \"ocy;\": \"\\u043E\",\n  \"odash;\": \"\\u229D\",\n  \"Odblac;\": \"\\u0150\",\n  \"odblac;\": \"\\u0151\",\n  \"odiv;\": \"\\u2A38\",\n  \"odot;\": \"\\u2299\",\n  \"odsold;\": \"\\u29BC\",\n  \"OElig;\": \"\\u0152\",\n  \"oelig;\": \"\\u0153\",\n  \"ofcir;\": \"\\u29BF\",\n  \"Ofr;\": \"\\u{1D512}\",\n  \"ofr;\": \"\\u{1D52C}\",\n  \"ogon;\": \"\\u02DB\",\n  \"Ograve;\": \"\\xD2\",\n  \"Ograve\": \"\\xD2\",\n  \"ograve;\": \"\\xF2\",\n  \"ograve\": \"\\xF2\",\n  \"ogt;\": \"\\u29C1\",\n  \"ohbar;\": \"\\u29B5\",\n  \"ohm;\": \"\\u03A9\",\n  \"oint;\": \"\\u222E\",\n  \"olarr;\": \"\\u21BA\",\n  \"olcir;\": \"\\u29BE\",\n  \"olcross;\": \"\\u29BB\",\n  \"oline;\": \"\\u203E\",\n  \"olt;\": \"\\u29C0\",\n  \"Omacr;\": \"\\u014C\",\n  \"omacr;\": \"\\u014D\",\n  \"Omega;\": \"\\u03A9\",\n  \"omega;\": \"\\u03C9\",\n  \"Omicron;\": \"\\u039F\",\n  \"omicron;\": \"\\u03BF\",\n  \"omid;\": \"\\u29B6\",\n  \"ominus;\": \"\\u2296\",\n  \"Oopf;\": \"\\u{1D546}\",\n  \"oopf;\": \"\\u{1D560}\",\n  \"opar;\": \"\\u29B7\",\n  \"OpenCurlyDoubleQuote;\": \"\\u201C\",\n  \"OpenCurlyQuote;\": \"\\u2018\",\n  \"operp;\": \"\\u29B9\",\n  \"oplus;\": \"\\u2295\",\n  \"Or;\": \"\\u2A54\",\n  \"or;\": \"\\u2228\",\n  \"orarr;\": \"\\u21BB\",\n  \"ord;\": \"\\u2A5D\",\n  \"order;\": \"\\u2134\",\n  \"orderof;\": \"\\u2134\",\n  \"ordf;\": \"\\xAA\",\n  \"ordf\": \"\\xAA\",\n  \"ordm;\": \"\\xBA\",\n  \"ordm\": \"\\xBA\",\n  \"origof;\": \"\\u22B6\",\n  \"oror;\": \"\\u2A56\",\n  \"orslope;\": \"\\u2A57\",\n  \"orv;\": \"\\u2A5B\",\n  \"oS;\": \"\\u24C8\",\n  \"Oscr;\": \"\\u{1D4AA}\",\n  \"oscr;\": \"\\u2134\",\n  \"Oslash;\": \"\\xD8\",\n  \"Oslash\": \"\\xD8\",\n  \"oslash;\": \"\\xF8\",\n  \"oslash\": \"\\xF8\",\n  \"osol;\": \"\\u2298\",\n  \"Otilde;\": \"\\xD5\",\n  \"Otilde\": \"\\xD5\",\n  \"otilde;\": \"\\xF5\",\n  \"otilde\": \"\\xF5\",\n  \"Otimes;\": \"\\u2A37\",\n  \"otimes;\": \"\\u2297\",\n  \"otimesas;\": \"\\u2A36\",\n  \"Ouml;\": \"\\xD6\",\n  \"Ouml\": \"\\xD6\",\n  \"ouml;\": \"\\xF6\",\n  \"ouml\": \"\\xF6\",\n  \"ovbar;\": \"\\u233D\",\n  \"OverBar;\": \"\\u203E\",\n  \"OverBrace;\": \"\\u23DE\",\n  \"OverBracket;\": \"\\u23B4\",\n  \"OverParenthesis;\": \"\\u23DC\",\n  \"par;\": \"\\u2225\",\n  \"para;\": \"\\xB6\",\n  \"para\": \"\\xB6\",\n  \"parallel;\": \"\\u2225\",\n  \"parsim;\": \"\\u2AF3\",\n  \"parsl;\": \"\\u2AFD\",\n  \"part;\": \"\\u2202\",\n  \"PartialD;\": \"\\u2202\",\n  \"Pcy;\": \"\\u041F\",\n  \"pcy;\": \"\\u043F\",\n  \"percnt;\": \"%\",\n  \"period;\": \".\",\n  \"permil;\": \"\\u2030\",\n  \"perp;\": \"\\u22A5\",\n  \"pertenk;\": \"\\u2031\",\n  \"Pfr;\": \"\\u{1D513}\",\n  \"pfr;\": \"\\u{1D52D}\",\n  \"Phi;\": \"\\u03A6\",\n  \"phi;\": \"\\u03C6\",\n  \"phiv;\": \"\\u03D5\",\n  \"phmmat;\": \"\\u2133\",\n  \"phone;\": \"\\u260E\",\n  \"Pi;\": \"\\u03A0\",\n  \"pi;\": \"\\u03C0\",\n  \"pitchfork;\": \"\\u22D4\",\n  \"piv;\": \"\\u03D6\",\n  \"planck;\": \"\\u210F\",\n  \"planckh;\": \"\\u210E\",\n  \"plankv;\": \"\\u210F\",\n  \"plus;\": \"+\",\n  \"plusacir;\": \"\\u2A23\",\n  \"plusb;\": \"\\u229E\",\n  \"pluscir;\": \"\\u2A22\",\n  \"plusdo;\": \"\\u2214\",\n  \"plusdu;\": \"\\u2A25\",\n  \"pluse;\": \"\\u2A72\",\n  \"PlusMinus;\": \"\\xB1\",\n  \"plusmn;\": \"\\xB1\",\n  \"plusmn\": \"\\xB1\",\n  \"plussim;\": \"\\u2A26\",\n  \"plustwo;\": \"\\u2A27\",\n  \"pm;\": \"\\xB1\",\n  \"Poincareplane;\": \"\\u210C\",\n  \"pointint;\": \"\\u2A15\",\n  \"Popf;\": \"\\u2119\",\n  \"popf;\": \"\\u{1D561}\",\n  \"pound;\": \"\\xA3\",\n  \"pound\": \"\\xA3\",\n  \"Pr;\": \"\\u2ABB\",\n  \"pr;\": \"\\u227A\",\n  \"prap;\": \"\\u2AB7\",\n  \"prcue;\": \"\\u227C\",\n  \"prE;\": \"\\u2AB3\",\n  \"pre;\": \"\\u2AAF\",\n  \"prec;\": \"\\u227A\",\n  \"precapprox;\": \"\\u2AB7\",\n  \"preccurlyeq;\": \"\\u227C\",\n  \"Precedes;\": \"\\u227A\",\n  \"PrecedesEqual;\": \"\\u2AAF\",\n  \"PrecedesSlantEqual;\": \"\\u227C\",\n  \"PrecedesTilde;\": \"\\u227E\",\n  \"preceq;\": \"\\u2AAF\",\n  \"precnapprox;\": \"\\u2AB9\",\n  \"precneqq;\": \"\\u2AB5\",\n  \"precnsim;\": \"\\u22E8\",\n  \"precsim;\": \"\\u227E\",\n  \"Prime;\": \"\\u2033\",\n  \"prime;\": \"\\u2032\",\n  \"primes;\": \"\\u2119\",\n  \"prnap;\": \"\\u2AB9\",\n  \"prnE;\": \"\\u2AB5\",\n  \"prnsim;\": \"\\u22E8\",\n  \"prod;\": \"\\u220F\",\n  \"Product;\": \"\\u220F\",\n  \"profalar;\": \"\\u232E\",\n  \"profline;\": \"\\u2312\",\n  \"profsurf;\": \"\\u2313\",\n  \"prop;\": \"\\u221D\",\n  \"Proportion;\": \"\\u2237\",\n  \"Proportional;\": \"\\u221D\",\n  \"propto;\": \"\\u221D\",\n  \"prsim;\": \"\\u227E\",\n  \"prurel;\": \"\\u22B0\",\n  \"Pscr;\": \"\\u{1D4AB}\",\n  \"pscr;\": \"\\u{1D4C5}\",\n  \"Psi;\": \"\\u03A8\",\n  \"psi;\": \"\\u03C8\",\n  \"puncsp;\": \"\\u2008\",\n  \"Qfr;\": \"\\u{1D514}\",\n  \"qfr;\": \"\\u{1D52E}\",\n  \"qint;\": \"\\u2A0C\",\n  \"Qopf;\": \"\\u211A\",\n  \"qopf;\": \"\\u{1D562}\",\n  \"qprime;\": \"\\u2057\",\n  \"Qscr;\": \"\\u{1D4AC}\",\n  \"qscr;\": \"\\u{1D4C6}\",\n  \"quaternions;\": \"\\u210D\",\n  \"quatint;\": \"\\u2A16\",\n  \"quest;\": \"?\",\n  \"questeq;\": \"\\u225F\",\n  \"QUOT;\": '\"',\n  \"QUOT\": '\"',\n  \"quot;\": '\"',\n  \"quot\": '\"',\n  \"rAarr;\": \"\\u21DB\",\n  \"race;\": \"\\u223D\\u0331\",\n  \"Racute;\": \"\\u0154\",\n  \"racute;\": \"\\u0155\",\n  \"radic;\": \"\\u221A\",\n  \"raemptyv;\": \"\\u29B3\",\n  \"Rang;\": \"\\u27EB\",\n  \"rang;\": \"\\u27E9\",\n  \"rangd;\": \"\\u2992\",\n  \"range;\": \"\\u29A5\",\n  \"rangle;\": \"\\u27E9\",\n  \"raquo;\": \"\\xBB\",\n  \"raquo\": \"\\xBB\",\n  \"Rarr;\": \"\\u21A0\",\n  \"rArr;\": \"\\u21D2\",\n  \"rarr;\": \"\\u2192\",\n  \"rarrap;\": \"\\u2975\",\n  \"rarrb;\": \"\\u21E5\",\n  \"rarrbfs;\": \"\\u2920\",\n  \"rarrc;\": \"\\u2933\",\n  \"rarrfs;\": \"\\u291E\",\n  \"rarrhk;\": \"\\u21AA\",\n  \"rarrlp;\": \"\\u21AC\",\n  \"rarrpl;\": \"\\u2945\",\n  \"rarrsim;\": \"\\u2974\",\n  \"Rarrtl;\": \"\\u2916\",\n  \"rarrtl;\": \"\\u21A3\",\n  \"rarrw;\": \"\\u219D\",\n  \"rAtail;\": \"\\u291C\",\n  \"ratail;\": \"\\u291A\",\n  \"ratio;\": \"\\u2236\",\n  \"rationals;\": \"\\u211A\",\n  \"RBarr;\": \"\\u2910\",\n  \"rBarr;\": \"\\u290F\",\n  \"rbarr;\": \"\\u290D\",\n  \"rbbrk;\": \"\\u2773\",\n  \"rbrace;\": \"}\",\n  \"rbrack;\": \"]\",\n  \"rbrke;\": \"\\u298C\",\n  \"rbrksld;\": \"\\u298E\",\n  \"rbrkslu;\": \"\\u2990\",\n  \"Rcaron;\": \"\\u0158\",\n  \"rcaron;\": \"\\u0159\",\n  \"Rcedil;\": \"\\u0156\",\n  \"rcedil;\": \"\\u0157\",\n  \"rceil;\": \"\\u2309\",\n  \"rcub;\": \"}\",\n  \"Rcy;\": \"\\u0420\",\n  \"rcy;\": \"\\u0440\",\n  \"rdca;\": \"\\u2937\",\n  \"rdldhar;\": \"\\u2969\",\n  \"rdquo;\": \"\\u201D\",\n  \"rdquor;\": \"\\u201D\",\n  \"rdsh;\": \"\\u21B3\",\n  \"Re;\": \"\\u211C\",\n  \"real;\": \"\\u211C\",\n  \"realine;\": \"\\u211B\",\n  \"realpart;\": \"\\u211C\",\n  \"reals;\": \"\\u211D\",\n  \"rect;\": \"\\u25AD\",\n  \"REG;\": \"\\xAE\",\n  \"REG\": \"\\xAE\",\n  \"reg;\": \"\\xAE\",\n  \"reg\": \"\\xAE\",\n  \"ReverseElement;\": \"\\u220B\",\n  \"ReverseEquilibrium;\": \"\\u21CB\",\n  \"ReverseUpEquilibrium;\": \"\\u296F\",\n  \"rfisht;\": \"\\u297D\",\n  \"rfloor;\": \"\\u230B\",\n  \"Rfr;\": \"\\u211C\",\n  \"rfr;\": \"\\u{1D52F}\",\n  \"rHar;\": \"\\u2964\",\n  \"rhard;\": \"\\u21C1\",\n  \"rharu;\": \"\\u21C0\",\n  \"rharul;\": \"\\u296C\",\n  \"Rho;\": \"\\u03A1\",\n  \"rho;\": \"\\u03C1\",\n  \"rhov;\": \"\\u03F1\",\n  \"RightAngleBracket;\": \"\\u27E9\",\n  \"RightArrow;\": \"\\u2192\",\n  \"Rightarrow;\": \"\\u21D2\",\n  \"rightarrow;\": \"\\u2192\",\n  \"RightArrowBar;\": \"\\u21E5\",\n  \"RightArrowLeftArrow;\": \"\\u21C4\",\n  \"rightarrowtail;\": \"\\u21A3\",\n  \"RightCeiling;\": \"\\u2309\",\n  \"RightDoubleBracket;\": \"\\u27E7\",\n  \"RightDownTeeVector;\": \"\\u295D\",\n  \"RightDownVector;\": \"\\u21C2\",\n  \"RightDownVectorBar;\": \"\\u2955\",\n  \"RightFloor;\": \"\\u230B\",\n  \"rightharpoondown;\": \"\\u21C1\",\n  \"rightharpoonup;\": \"\\u21C0\",\n  \"rightleftarrows;\": \"\\u21C4\",\n  \"rightleftharpoons;\": \"\\u21CC\",\n  \"rightrightarrows;\": \"\\u21C9\",\n  \"rightsquigarrow;\": \"\\u219D\",\n  \"RightTee;\": \"\\u22A2\",\n  \"RightTeeArrow;\": \"\\u21A6\",\n  \"RightTeeVector;\": \"\\u295B\",\n  \"rightthreetimes;\": \"\\u22CC\",\n  \"RightTriangle;\": \"\\u22B3\",\n  \"RightTriangleBar;\": \"\\u29D0\",\n  \"RightTriangleEqual;\": \"\\u22B5\",\n  \"RightUpDownVector;\": \"\\u294F\",\n  \"RightUpTeeVector;\": \"\\u295C\",\n  \"RightUpVector;\": \"\\u21BE\",\n  \"RightUpVectorBar;\": \"\\u2954\",\n  \"RightVector;\": \"\\u21C0\",\n  \"RightVectorBar;\": \"\\u2953\",\n  \"ring;\": \"\\u02DA\",\n  \"risingdotseq;\": \"\\u2253\",\n  \"rlarr;\": \"\\u21C4\",\n  \"rlhar;\": \"\\u21CC\",\n  \"rlm;\": \"\\u200F\",\n  \"rmoust;\": \"\\u23B1\",\n  \"rmoustache;\": \"\\u23B1\",\n  \"rnmid;\": \"\\u2AEE\",\n  \"roang;\": \"\\u27ED\",\n  \"roarr;\": \"\\u21FE\",\n  \"robrk;\": \"\\u27E7\",\n  \"ropar;\": \"\\u2986\",\n  \"Ropf;\": \"\\u211D\",\n  \"ropf;\": \"\\u{1D563}\",\n  \"roplus;\": \"\\u2A2E\",\n  \"rotimes;\": \"\\u2A35\",\n  \"RoundImplies;\": \"\\u2970\",\n  \"rpar;\": \")\",\n  \"rpargt;\": \"\\u2994\",\n  \"rppolint;\": \"\\u2A12\",\n  \"rrarr;\": \"\\u21C9\",\n  \"Rrightarrow;\": \"\\u21DB\",\n  \"rsaquo;\": \"\\u203A\",\n  \"Rscr;\": \"\\u211B\",\n  \"rscr;\": \"\\u{1D4C7}\",\n  \"Rsh;\": \"\\u21B1\",\n  \"rsh;\": \"\\u21B1\",\n  \"rsqb;\": \"]\",\n  \"rsquo;\": \"\\u2019\",\n  \"rsquor;\": \"\\u2019\",\n  \"rthree;\": \"\\u22CC\",\n  \"rtimes;\": \"\\u22CA\",\n  \"rtri;\": \"\\u25B9\",\n  \"rtrie;\": \"\\u22B5\",\n  \"rtrif;\": \"\\u25B8\",\n  \"rtriltri;\": \"\\u29CE\",\n  \"RuleDelayed;\": \"\\u29F4\",\n  \"ruluhar;\": \"\\u2968\",\n  \"rx;\": \"\\u211E\",\n  \"Sacute;\": \"\\u015A\",\n  \"sacute;\": \"\\u015B\",\n  \"sbquo;\": \"\\u201A\",\n  \"Sc;\": \"\\u2ABC\",\n  \"sc;\": \"\\u227B\",\n  \"scap;\": \"\\u2AB8\",\n  \"Scaron;\": \"\\u0160\",\n  \"scaron;\": \"\\u0161\",\n  \"sccue;\": \"\\u227D\",\n  \"scE;\": \"\\u2AB4\",\n  \"sce;\": \"\\u2AB0\",\n  \"Scedil;\": \"\\u015E\",\n  \"scedil;\": \"\\u015F\",\n  \"Scirc;\": \"\\u015C\",\n  \"scirc;\": \"\\u015D\",\n  \"scnap;\": \"\\u2ABA\",\n  \"scnE;\": \"\\u2AB6\",\n  \"scnsim;\": \"\\u22E9\",\n  \"scpolint;\": \"\\u2A13\",\n  \"scsim;\": \"\\u227F\",\n  \"Scy;\": \"\\u0421\",\n  \"scy;\": \"\\u0441\",\n  \"sdot;\": \"\\u22C5\",\n  \"sdotb;\": \"\\u22A1\",\n  \"sdote;\": \"\\u2A66\",\n  \"searhk;\": \"\\u2925\",\n  \"seArr;\": \"\\u21D8\",\n  \"searr;\": \"\\u2198\",\n  \"searrow;\": \"\\u2198\",\n  \"sect;\": \"\\xA7\",\n  \"sect\": \"\\xA7\",\n  \"semi;\": \";\",\n  \"seswar;\": \"\\u2929\",\n  \"setminus;\": \"\\u2216\",\n  \"setmn;\": \"\\u2216\",\n  \"sext;\": \"\\u2736\",\n  \"Sfr;\": \"\\u{1D516}\",\n  \"sfr;\": \"\\u{1D530}\",\n  \"sfrown;\": \"\\u2322\",\n  \"sharp;\": \"\\u266F\",\n  \"SHCHcy;\": \"\\u0429\",\n  \"shchcy;\": \"\\u0449\",\n  \"SHcy;\": \"\\u0428\",\n  \"shcy;\": \"\\u0448\",\n  \"ShortDownArrow;\": \"\\u2193\",\n  \"ShortLeftArrow;\": \"\\u2190\",\n  \"shortmid;\": \"\\u2223\",\n  \"shortparallel;\": \"\\u2225\",\n  \"ShortRightArrow;\": \"\\u2192\",\n  \"ShortUpArrow;\": \"\\u2191\",\n  \"shy;\": \"\\xAD\",\n  \"shy\": \"\\xAD\",\n  \"Sigma;\": \"\\u03A3\",\n  \"sigma;\": \"\\u03C3\",\n  \"sigmaf;\": \"\\u03C2\",\n  \"sigmav;\": \"\\u03C2\",\n  \"sim;\": \"\\u223C\",\n  \"simdot;\": \"\\u2A6A\",\n  \"sime;\": \"\\u2243\",\n  \"simeq;\": \"\\u2243\",\n  \"simg;\": \"\\u2A9E\",\n  \"simgE;\": \"\\u2AA0\",\n  \"siml;\": \"\\u2A9D\",\n  \"simlE;\": \"\\u2A9F\",\n  \"simne;\": \"\\u2246\",\n  \"simplus;\": \"\\u2A24\",\n  \"simrarr;\": \"\\u2972\",\n  \"slarr;\": \"\\u2190\",\n  \"SmallCircle;\": \"\\u2218\",\n  \"smallsetminus;\": \"\\u2216\",\n  \"smashp;\": \"\\u2A33\",\n  \"smeparsl;\": \"\\u29E4\",\n  \"smid;\": \"\\u2223\",\n  \"smile;\": \"\\u2323\",\n  \"smt;\": \"\\u2AAA\",\n  \"smte;\": \"\\u2AAC\",\n  \"smtes;\": \"\\u2AAC\\uFE00\",\n  \"SOFTcy;\": \"\\u042C\",\n  \"softcy;\": \"\\u044C\",\n  \"sol;\": \"/\",\n  \"solb;\": \"\\u29C4\",\n  \"solbar;\": \"\\u233F\",\n  \"Sopf;\": \"\\u{1D54A}\",\n  \"sopf;\": \"\\u{1D564}\",\n  \"spades;\": \"\\u2660\",\n  \"spadesuit;\": \"\\u2660\",\n  \"spar;\": \"\\u2225\",\n  \"sqcap;\": \"\\u2293\",\n  \"sqcaps;\": \"\\u2293\\uFE00\",\n  \"sqcup;\": \"\\u2294\",\n  \"sqcups;\": \"\\u2294\\uFE00\",\n  \"Sqrt;\": \"\\u221A\",\n  \"sqsub;\": \"\\u228F\",\n  \"sqsube;\": \"\\u2291\",\n  \"sqsubset;\": \"\\u228F\",\n  \"sqsubseteq;\": \"\\u2291\",\n  \"sqsup;\": \"\\u2290\",\n  \"sqsupe;\": \"\\u2292\",\n  \"sqsupset;\": \"\\u2290\",\n  \"sqsupseteq;\": \"\\u2292\",\n  \"squ;\": \"\\u25A1\",\n  \"Square;\": \"\\u25A1\",\n  \"square;\": \"\\u25A1\",\n  \"SquareIntersection;\": \"\\u2293\",\n  \"SquareSubset;\": \"\\u228F\",\n  \"SquareSubsetEqual;\": \"\\u2291\",\n  \"SquareSuperset;\": \"\\u2290\",\n  \"SquareSupersetEqual;\": \"\\u2292\",\n  \"SquareUnion;\": \"\\u2294\",\n  \"squarf;\": \"\\u25AA\",\n  \"squf;\": \"\\u25AA\",\n  \"srarr;\": \"\\u2192\",\n  \"Sscr;\": \"\\u{1D4AE}\",\n  \"sscr;\": \"\\u{1D4C8}\",\n  \"ssetmn;\": \"\\u2216\",\n  \"ssmile;\": \"\\u2323\",\n  \"sstarf;\": \"\\u22C6\",\n  \"Star;\": \"\\u22C6\",\n  \"star;\": \"\\u2606\",\n  \"starf;\": \"\\u2605\",\n  \"straightepsilon;\": \"\\u03F5\",\n  \"straightphi;\": \"\\u03D5\",\n  \"strns;\": \"\\xAF\",\n  \"Sub;\": \"\\u22D0\",\n  \"sub;\": \"\\u2282\",\n  \"subdot;\": \"\\u2ABD\",\n  \"subE;\": \"\\u2AC5\",\n  \"sube;\": \"\\u2286\",\n  \"subedot;\": \"\\u2AC3\",\n  \"submult;\": \"\\u2AC1\",\n  \"subnE;\": \"\\u2ACB\",\n  \"subne;\": \"\\u228A\",\n  \"subplus;\": \"\\u2ABF\",\n  \"subrarr;\": \"\\u2979\",\n  \"Subset;\": \"\\u22D0\",\n  \"subset;\": \"\\u2282\",\n  \"subseteq;\": \"\\u2286\",\n  \"subseteqq;\": \"\\u2AC5\",\n  \"SubsetEqual;\": \"\\u2286\",\n  \"subsetneq;\": \"\\u228A\",\n  \"subsetneqq;\": \"\\u2ACB\",\n  \"subsim;\": \"\\u2AC7\",\n  \"subsub;\": \"\\u2AD5\",\n  \"subsup;\": \"\\u2AD3\",\n  \"succ;\": \"\\u227B\",\n  \"succapprox;\": \"\\u2AB8\",\n  \"succcurlyeq;\": \"\\u227D\",\n  \"Succeeds;\": \"\\u227B\",\n  \"SucceedsEqual;\": \"\\u2AB0\",\n  \"SucceedsSlantEqual;\": \"\\u227D\",\n  \"SucceedsTilde;\": \"\\u227F\",\n  \"succeq;\": \"\\u2AB0\",\n  \"succnapprox;\": \"\\u2ABA\",\n  \"succneqq;\": \"\\u2AB6\",\n  \"succnsim;\": \"\\u22E9\",\n  \"succsim;\": \"\\u227F\",\n  \"SuchThat;\": \"\\u220B\",\n  \"Sum;\": \"\\u2211\",\n  \"sum;\": \"\\u2211\",\n  \"sung;\": \"\\u266A\",\n  \"Sup;\": \"\\u22D1\",\n  \"sup;\": \"\\u2283\",\n  \"sup1;\": \"\\xB9\",\n  \"sup1\": \"\\xB9\",\n  \"sup2;\": \"\\xB2\",\n  \"sup2\": \"\\xB2\",\n  \"sup3;\": \"\\xB3\",\n  \"sup3\": \"\\xB3\",\n  \"supdot;\": \"\\u2ABE\",\n  \"supdsub;\": \"\\u2AD8\",\n  \"supE;\": \"\\u2AC6\",\n  \"supe;\": \"\\u2287\",\n  \"supedot;\": \"\\u2AC4\",\n  \"Superset;\": \"\\u2283\",\n  \"SupersetEqual;\": \"\\u2287\",\n  \"suphsol;\": \"\\u27C9\",\n  \"suphsub;\": \"\\u2AD7\",\n  \"suplarr;\": \"\\u297B\",\n  \"supmult;\": \"\\u2AC2\",\n  \"supnE;\": \"\\u2ACC\",\n  \"supne;\": \"\\u228B\",\n  \"supplus;\": \"\\u2AC0\",\n  \"Supset;\": \"\\u22D1\",\n  \"supset;\": \"\\u2283\",\n  \"supseteq;\": \"\\u2287\",\n  \"supseteqq;\": \"\\u2AC6\",\n  \"supsetneq;\": \"\\u228B\",\n  \"supsetneqq;\": \"\\u2ACC\",\n  \"supsim;\": \"\\u2AC8\",\n  \"supsub;\": \"\\u2AD4\",\n  \"supsup;\": \"\\u2AD6\",\n  \"swarhk;\": \"\\u2926\",\n  \"swArr;\": \"\\u21D9\",\n  \"swarr;\": \"\\u2199\",\n  \"swarrow;\": \"\\u2199\",\n  \"swnwar;\": \"\\u292A\",\n  \"szlig;\": \"\\xDF\",\n  \"szlig\": \"\\xDF\",\n  \"Tab;\": \"\t\",\n  \"target;\": \"\\u2316\",\n  \"Tau;\": \"\\u03A4\",\n  \"tau;\": \"\\u03C4\",\n  \"tbrk;\": \"\\u23B4\",\n  \"Tcaron;\": \"\\u0164\",\n  \"tcaron;\": \"\\u0165\",\n  \"Tcedil;\": \"\\u0162\",\n  \"tcedil;\": \"\\u0163\",\n  \"Tcy;\": \"\\u0422\",\n  \"tcy;\": \"\\u0442\",\n  \"tdot;\": \"\\u20DB\",\n  \"telrec;\": \"\\u2315\",\n  \"Tfr;\": \"\\u{1D517}\",\n  \"tfr;\": \"\\u{1D531}\",\n  \"there4;\": \"\\u2234\",\n  \"Therefore;\": \"\\u2234\",\n  \"therefore;\": \"\\u2234\",\n  \"Theta;\": \"\\u0398\",\n  \"theta;\": \"\\u03B8\",\n  \"thetasym;\": \"\\u03D1\",\n  \"thetav;\": \"\\u03D1\",\n  \"thickapprox;\": \"\\u2248\",\n  \"thicksim;\": \"\\u223C\",\n  \"ThickSpace;\": \"\\u205F\\u200A\",\n  \"thinsp;\": \"\\u2009\",\n  \"ThinSpace;\": \"\\u2009\",\n  \"thkap;\": \"\\u2248\",\n  \"thksim;\": \"\\u223C\",\n  \"THORN;\": \"\\xDE\",\n  \"THORN\": \"\\xDE\",\n  \"thorn;\": \"\\xFE\",\n  \"thorn\": \"\\xFE\",\n  \"Tilde;\": \"\\u223C\",\n  \"tilde;\": \"\\u02DC\",\n  \"TildeEqual;\": \"\\u2243\",\n  \"TildeFullEqual;\": \"\\u2245\",\n  \"TildeTilde;\": \"\\u2248\",\n  \"times;\": \"\\xD7\",\n  \"times\": \"\\xD7\",\n  \"timesb;\": \"\\u22A0\",\n  \"timesbar;\": \"\\u2A31\",\n  \"timesd;\": \"\\u2A30\",\n  \"tint;\": \"\\u222D\",\n  \"toea;\": \"\\u2928\",\n  \"top;\": \"\\u22A4\",\n  \"topbot;\": \"\\u2336\",\n  \"topcir;\": \"\\u2AF1\",\n  \"Topf;\": \"\\u{1D54B}\",\n  \"topf;\": \"\\u{1D565}\",\n  \"topfork;\": \"\\u2ADA\",\n  \"tosa;\": \"\\u2929\",\n  \"tprime;\": \"\\u2034\",\n  \"TRADE;\": \"\\u2122\",\n  \"trade;\": \"\\u2122\",\n  \"triangle;\": \"\\u25B5\",\n  \"triangledown;\": \"\\u25BF\",\n  \"triangleleft;\": \"\\u25C3\",\n  \"trianglelefteq;\": \"\\u22B4\",\n  \"triangleq;\": \"\\u225C\",\n  \"triangleright;\": \"\\u25B9\",\n  \"trianglerighteq;\": \"\\u22B5\",\n  \"tridot;\": \"\\u25EC\",\n  \"trie;\": \"\\u225C\",\n  \"triminus;\": \"\\u2A3A\",\n  \"TripleDot;\": \"\\u20DB\",\n  \"triplus;\": \"\\u2A39\",\n  \"trisb;\": \"\\u29CD\",\n  \"tritime;\": \"\\u2A3B\",\n  \"trpezium;\": \"\\u23E2\",\n  \"Tscr;\": \"\\u{1D4AF}\",\n  \"tscr;\": \"\\u{1D4C9}\",\n  \"TScy;\": \"\\u0426\",\n  \"tscy;\": \"\\u0446\",\n  \"TSHcy;\": \"\\u040B\",\n  \"tshcy;\": \"\\u045B\",\n  \"Tstrok;\": \"\\u0166\",\n  \"tstrok;\": \"\\u0167\",\n  \"twixt;\": \"\\u226C\",\n  \"twoheadleftarrow;\": \"\\u219E\",\n  \"twoheadrightarrow;\": \"\\u21A0\",\n  \"Uacute;\": \"\\xDA\",\n  \"Uacute\": \"\\xDA\",\n  \"uacute;\": \"\\xFA\",\n  \"uacute\": \"\\xFA\",\n  \"Uarr;\": \"\\u219F\",\n  \"uArr;\": \"\\u21D1\",\n  \"uarr;\": \"\\u2191\",\n  \"Uarrocir;\": \"\\u2949\",\n  \"Ubrcy;\": \"\\u040E\",\n  \"ubrcy;\": \"\\u045E\",\n  \"Ubreve;\": \"\\u016C\",\n  \"ubreve;\": \"\\u016D\",\n  \"Ucirc;\": \"\\xDB\",\n  \"Ucirc\": \"\\xDB\",\n  \"ucirc;\": \"\\xFB\",\n  \"ucirc\": \"\\xFB\",\n  \"Ucy;\": \"\\u0423\",\n  \"ucy;\": \"\\u0443\",\n  \"udarr;\": \"\\u21C5\",\n  \"Udblac;\": \"\\u0170\",\n  \"udblac;\": \"\\u0171\",\n  \"udhar;\": \"\\u296E\",\n  \"ufisht;\": \"\\u297E\",\n  \"Ufr;\": \"\\u{1D518}\",\n  \"ufr;\": \"\\u{1D532}\",\n  \"Ugrave;\": \"\\xD9\",\n  \"Ugrave\": \"\\xD9\",\n  \"ugrave;\": \"\\xF9\",\n  \"ugrave\": \"\\xF9\",\n  \"uHar;\": \"\\u2963\",\n  \"uharl;\": \"\\u21BF\",\n  \"uharr;\": \"\\u21BE\",\n  \"uhblk;\": \"\\u2580\",\n  \"ulcorn;\": \"\\u231C\",\n  \"ulcorner;\": \"\\u231C\",\n  \"ulcrop;\": \"\\u230F\",\n  \"ultri;\": \"\\u25F8\",\n  \"Umacr;\": \"\\u016A\",\n  \"umacr;\": \"\\u016B\",\n  \"uml;\": \"\\xA8\",\n  \"uml\": \"\\xA8\",\n  \"UnderBar;\": \"_\",\n  \"UnderBrace;\": \"\\u23DF\",\n  \"UnderBracket;\": \"\\u23B5\",\n  \"UnderParenthesis;\": \"\\u23DD\",\n  \"Union;\": \"\\u22C3\",\n  \"UnionPlus;\": \"\\u228E\",\n  \"Uogon;\": \"\\u0172\",\n  \"uogon;\": \"\\u0173\",\n  \"Uopf;\": \"\\u{1D54C}\",\n  \"uopf;\": \"\\u{1D566}\",\n  \"UpArrow;\": \"\\u2191\",\n  \"Uparrow;\": \"\\u21D1\",\n  \"uparrow;\": \"\\u2191\",\n  \"UpArrowBar;\": \"\\u2912\",\n  \"UpArrowDownArrow;\": \"\\u21C5\",\n  \"UpDownArrow;\": \"\\u2195\",\n  \"Updownarrow;\": \"\\u21D5\",\n  \"updownarrow;\": \"\\u2195\",\n  \"UpEquilibrium;\": \"\\u296E\",\n  \"upharpoonleft;\": \"\\u21BF\",\n  \"upharpoonright;\": \"\\u21BE\",\n  \"uplus;\": \"\\u228E\",\n  \"UpperLeftArrow;\": \"\\u2196\",\n  \"UpperRightArrow;\": \"\\u2197\",\n  \"Upsi;\": \"\\u03D2\",\n  \"upsi;\": \"\\u03C5\",\n  \"upsih;\": \"\\u03D2\",\n  \"Upsilon;\": \"\\u03A5\",\n  \"upsilon;\": \"\\u03C5\",\n  \"UpTee;\": \"\\u22A5\",\n  \"UpTeeArrow;\": \"\\u21A5\",\n  \"upuparrows;\": \"\\u21C8\",\n  \"urcorn;\": \"\\u231D\",\n  \"urcorner;\": \"\\u231D\",\n  \"urcrop;\": \"\\u230E\",\n  \"Uring;\": \"\\u016E\",\n  \"uring;\": \"\\u016F\",\n  \"urtri;\": \"\\u25F9\",\n  \"Uscr;\": \"\\u{1D4B0}\",\n  \"uscr;\": \"\\u{1D4CA}\",\n  \"utdot;\": \"\\u22F0\",\n  \"Utilde;\": \"\\u0168\",\n  \"utilde;\": \"\\u0169\",\n  \"utri;\": \"\\u25B5\",\n  \"utrif;\": \"\\u25B4\",\n  \"uuarr;\": \"\\u21C8\",\n  \"Uuml;\": \"\\xDC\",\n  \"Uuml\": \"\\xDC\",\n  \"uuml;\": \"\\xFC\",\n  \"uuml\": \"\\xFC\",\n  \"uwangle;\": \"\\u29A7\",\n  \"vangrt;\": \"\\u299C\",\n  \"varepsilon;\": \"\\u03F5\",\n  \"varkappa;\": \"\\u03F0\",\n  \"varnothing;\": \"\\u2205\",\n  \"varphi;\": \"\\u03D5\",\n  \"varpi;\": \"\\u03D6\",\n  \"varpropto;\": \"\\u221D\",\n  \"vArr;\": \"\\u21D5\",\n  \"varr;\": \"\\u2195\",\n  \"varrho;\": \"\\u03F1\",\n  \"varsigma;\": \"\\u03C2\",\n  \"varsubsetneq;\": \"\\u228A\\uFE00\",\n  \"varsubsetneqq;\": \"\\u2ACB\\uFE00\",\n  \"varsupsetneq;\": \"\\u228B\\uFE00\",\n  \"varsupsetneqq;\": \"\\u2ACC\\uFE00\",\n  \"vartheta;\": \"\\u03D1\",\n  \"vartriangleleft;\": \"\\u22B2\",\n  \"vartriangleright;\": \"\\u22B3\",\n  \"Vbar;\": \"\\u2AEB\",\n  \"vBar;\": \"\\u2AE8\",\n  \"vBarv;\": \"\\u2AE9\",\n  \"Vcy;\": \"\\u0412\",\n  \"vcy;\": \"\\u0432\",\n  \"VDash;\": \"\\u22AB\",\n  \"Vdash;\": \"\\u22A9\",\n  \"vDash;\": \"\\u22A8\",\n  \"vdash;\": \"\\u22A2\",\n  \"Vdashl;\": \"\\u2AE6\",\n  \"Vee;\": \"\\u22C1\",\n  \"vee;\": \"\\u2228\",\n  \"veebar;\": \"\\u22BB\",\n  \"veeeq;\": \"\\u225A\",\n  \"vellip;\": \"\\u22EE\",\n  \"Verbar;\": \"\\u2016\",\n  \"verbar;\": \"|\",\n  \"Vert;\": \"\\u2016\",\n  \"vert;\": \"|\",\n  \"VerticalBar;\": \"\\u2223\",\n  \"VerticalLine;\": \"|\",\n  \"VerticalSeparator;\": \"\\u2758\",\n  \"VerticalTilde;\": \"\\u2240\",\n  \"VeryThinSpace;\": \"\\u200A\",\n  \"Vfr;\": \"\\u{1D519}\",\n  \"vfr;\": \"\\u{1D533}\",\n  \"vltri;\": \"\\u22B2\",\n  \"vnsub;\": \"\\u2282\\u20D2\",\n  \"vnsup;\": \"\\u2283\\u20D2\",\n  \"Vopf;\": \"\\u{1D54D}\",\n  \"vopf;\": \"\\u{1D567}\",\n  \"vprop;\": \"\\u221D\",\n  \"vrtri;\": \"\\u22B3\",\n  \"Vscr;\": \"\\u{1D4B1}\",\n  \"vscr;\": \"\\u{1D4CB}\",\n  \"vsubnE;\": \"\\u2ACB\\uFE00\",\n  \"vsubne;\": \"\\u228A\\uFE00\",\n  \"vsupnE;\": \"\\u2ACC\\uFE00\",\n  \"vsupne;\": \"\\u228B\\uFE00\",\n  \"Vvdash;\": \"\\u22AA\",\n  \"vzigzag;\": \"\\u299A\",\n  \"Wcirc;\": \"\\u0174\",\n  \"wcirc;\": \"\\u0175\",\n  \"wedbar;\": \"\\u2A5F\",\n  \"Wedge;\": \"\\u22C0\",\n  \"wedge;\": \"\\u2227\",\n  \"wedgeq;\": \"\\u2259\",\n  \"weierp;\": \"\\u2118\",\n  \"Wfr;\": \"\\u{1D51A}\",\n  \"wfr;\": \"\\u{1D534}\",\n  \"Wopf;\": \"\\u{1D54E}\",\n  \"wopf;\": \"\\u{1D568}\",\n  \"wp;\": \"\\u2118\",\n  \"wr;\": \"\\u2240\",\n  \"wreath;\": \"\\u2240\",\n  \"Wscr;\": \"\\u{1D4B2}\",\n  \"wscr;\": \"\\u{1D4CC}\",\n  \"xcap;\": \"\\u22C2\",\n  \"xcirc;\": \"\\u25EF\",\n  \"xcup;\": \"\\u22C3\",\n  \"xdtri;\": \"\\u25BD\",\n  \"Xfr;\": \"\\u{1D51B}\",\n  \"xfr;\": \"\\u{1D535}\",\n  \"xhArr;\": \"\\u27FA\",\n  \"xharr;\": \"\\u27F7\",\n  \"Xi;\": \"\\u039E\",\n  \"xi;\": \"\\u03BE\",\n  \"xlArr;\": \"\\u27F8\",\n  \"xlarr;\": \"\\u27F5\",\n  \"xmap;\": \"\\u27FC\",\n  \"xnis;\": \"\\u22FB\",\n  \"xodot;\": \"\\u2A00\",\n  \"Xopf;\": \"\\u{1D54F}\",\n  \"xopf;\": \"\\u{1D569}\",\n  \"xoplus;\": \"\\u2A01\",\n  \"xotime;\": \"\\u2A02\",\n  \"xrArr;\": \"\\u27F9\",\n  \"xrarr;\": \"\\u27F6\",\n  \"Xscr;\": \"\\u{1D4B3}\",\n  \"xscr;\": \"\\u{1D4CD}\",\n  \"xsqcup;\": \"\\u2A06\",\n  \"xuplus;\": \"\\u2A04\",\n  \"xutri;\": \"\\u25B3\",\n  \"xvee;\": \"\\u22C1\",\n  \"xwedge;\": \"\\u22C0\",\n  \"Yacute;\": \"\\xDD\",\n  \"Yacute\": \"\\xDD\",\n  \"yacute;\": \"\\xFD\",\n  \"yacute\": \"\\xFD\",\n  \"YAcy;\": \"\\u042F\",\n  \"yacy;\": \"\\u044F\",\n  \"Ycirc;\": \"\\u0176\",\n  \"ycirc;\": \"\\u0177\",\n  \"Ycy;\": \"\\u042B\",\n  \"ycy;\": \"\\u044B\",\n  \"yen;\": \"\\xA5\",\n  \"yen\": \"\\xA5\",\n  \"Yfr;\": \"\\u{1D51C}\",\n  \"yfr;\": \"\\u{1D536}\",\n  \"YIcy;\": \"\\u0407\",\n  \"yicy;\": \"\\u0457\",\n  \"Yopf;\": \"\\u{1D550}\",\n  \"yopf;\": \"\\u{1D56A}\",\n  \"Yscr;\": \"\\u{1D4B4}\",\n  \"yscr;\": \"\\u{1D4CE}\",\n  \"YUcy;\": \"\\u042E\",\n  \"yucy;\": \"\\u044E\",\n  \"Yuml;\": \"\\u0178\",\n  \"yuml;\": \"\\xFF\",\n  \"yuml\": \"\\xFF\",\n  \"Zacute;\": \"\\u0179\",\n  \"zacute;\": \"\\u017A\",\n  \"Zcaron;\": \"\\u017D\",\n  \"zcaron;\": \"\\u017E\",\n  \"Zcy;\": \"\\u0417\",\n  \"zcy;\": \"\\u0437\",\n  \"Zdot;\": \"\\u017B\",\n  \"zdot;\": \"\\u017C\",\n  \"zeetrf;\": \"\\u2128\",\n  \"ZeroWidthSpace;\": \"\\u200B\",\n  \"Zeta;\": \"\\u0396\",\n  \"zeta;\": \"\\u03B6\",\n  \"Zfr;\": \"\\u2128\",\n  \"zfr;\": \"\\u{1D537}\",\n  \"ZHcy;\": \"\\u0416\",\n  \"zhcy;\": \"\\u0436\",\n  \"zigrarr;\": \"\\u21DD\",\n  \"Zopf;\": \"\\u2124\",\n  \"zopf;\": \"\\u{1D56B}\",\n  \"Zscr;\": \"\\u{1D4B5}\",\n  \"zscr;\": \"\\u{1D4CF}\",\n  \"zwj;\": \"\\u200D\",\n  \"zwnj;\": \"\\u200C\"\n};\n\n// node_modules/vscode-html-languageservice/lib/esm/utils/strings.js\nfunction startsWith(haystack, needle) {\n  if (haystack.length < needle.length) {\n    return false;\n  }\n  for (let i = 0; i < needle.length; i++) {\n    if (haystack[i] !== needle[i]) {\n      return false;\n    }\n  }\n  return true;\n}\nfunction endsWith(haystack, needle) {\n  const diff = haystack.length - needle.length;\n  if (diff > 0) {\n    return haystack.lastIndexOf(needle) === diff;\n  } else if (diff === 0) {\n    return haystack === needle;\n  } else {\n    return false;\n  }\n}\nfunction repeat(value, count) {\n  let s = \"\";\n  while (count > 0) {\n    if ((count & 1) === 1) {\n      s += value;\n    }\n    value += value;\n    count = count >>> 1;\n  }\n  return s;\n}\nvar _a = \"a\".charCodeAt(0);\nvar _z = \"z\".charCodeAt(0);\nvar _A = \"A\".charCodeAt(0);\nvar _Z = \"Z\".charCodeAt(0);\nvar _0 = \"0\".charCodeAt(0);\nvar _9 = \"9\".charCodeAt(0);\nfunction isLetterOrDigit(text, index) {\n  const c = text.charCodeAt(index);\n  return _a <= c && c <= _z || _A <= c && c <= _Z || _0 <= c && c <= _9;\n}\n\n// node_modules/vscode-html-languageservice/lib/esm/utils/object.js\nfunction isDefined(obj) {\n  return typeof obj !== \"undefined\";\n}\n\n// node_modules/vscode-html-languageservice/lib/esm/utils/markup.js\nfunction normalizeMarkupContent(input) {\n  if (!input) {\n    return void 0;\n  }\n  if (typeof input === \"string\") {\n    return {\n      kind: \"markdown\",\n      value: input\n    };\n  }\n  return {\n    kind: \"markdown\",\n    value: input.value\n  };\n}\n\n// node_modules/vscode-html-languageservice/lib/esm/languageFacts/dataProvider.js\nvar HTMLDataProvider = class {\n  isApplicable() {\n    return true;\n  }\n  /**\n   * Currently, unversioned data uses the V1 implementation\n   * In the future when the provider handles multiple versions of HTML custom data,\n   * use the latest implementation for unversioned data\n   */\n  constructor(id, customData) {\n    this.id = id;\n    this._tags = [];\n    this._tagMap = {};\n    this._valueSetMap = {};\n    this._tags = customData.tags || [];\n    this._globalAttributes = customData.globalAttributes || [];\n    this._tags.forEach((t2) => {\n      this._tagMap[t2.name.toLowerCase()] = t2;\n    });\n    if (customData.valueSets) {\n      customData.valueSets.forEach((vs) => {\n        this._valueSetMap[vs.name] = vs.values;\n      });\n    }\n  }\n  getId() {\n    return this.id;\n  }\n  provideTags() {\n    return this._tags;\n  }\n  provideAttributes(tag) {\n    const attributes = [];\n    const processAttribute = (a) => {\n      attributes.push(a);\n    };\n    const tagEntry = this._tagMap[tag.toLowerCase()];\n    if (tagEntry) {\n      tagEntry.attributes.forEach(processAttribute);\n    }\n    this._globalAttributes.forEach(processAttribute);\n    return attributes;\n  }\n  provideValues(tag, attribute) {\n    const values = [];\n    attribute = attribute.toLowerCase();\n    const processAttributes = (attributes) => {\n      attributes.forEach((a) => {\n        if (a.name.toLowerCase() === attribute) {\n          if (a.values) {\n            a.values.forEach((v) => {\n              values.push(v);\n            });\n          }\n          if (a.valueSet) {\n            if (this._valueSetMap[a.valueSet]) {\n              this._valueSetMap[a.valueSet].forEach((v) => {\n                values.push(v);\n              });\n            }\n          }\n        }\n      });\n    };\n    const tagEntry = this._tagMap[tag.toLowerCase()];\n    if (tagEntry) {\n      processAttributes(tagEntry.attributes);\n    }\n    processAttributes(this._globalAttributes);\n    return values;\n  }\n};\nfunction generateDocumentation(item, settings = {}, doesSupportMarkdown) {\n  const result = {\n    kind: doesSupportMarkdown ? \"markdown\" : \"plaintext\",\n    value: \"\"\n  };\n  if (item.description && settings.documentation !== false) {\n    const normalizedDescription = normalizeMarkupContent(item.description);\n    if (normalizedDescription) {\n      result.value += normalizedDescription.value;\n    }\n  }\n  if (item.references && item.references.length > 0 && settings.references !== false) {\n    if (result.value.length) {\n      result.value += `\n\n`;\n    }\n    if (doesSupportMarkdown) {\n      result.value += item.references.map((r) => {\n        return `[${r.name}](${r.url})`;\n      }).join(\" | \");\n    } else {\n      result.value += item.references.map((r) => {\n        return `${r.name}: ${r.url}`;\n      }).join(\"\\n\");\n    }\n  }\n  if (result.value === \"\") {\n    return void 0;\n  }\n  return result;\n}\n\n// node_modules/vscode-html-languageservice/lib/esm/services/pathCompletion.js\nvar PathCompletionParticipant = class {\n  constructor(dataManager, readDirectory) {\n    this.dataManager = dataManager;\n    this.readDirectory = readDirectory;\n    this.atributeCompletions = [];\n  }\n  onHtmlAttributeValue(context) {\n    if (this.dataManager.isPathAttribute(context.tag, context.attribute)) {\n      this.atributeCompletions.push(context);\n    }\n  }\n  async computeCompletions(document, documentContext) {\n    const result = { items: [], isIncomplete: false };\n    for (const attributeCompletion of this.atributeCompletions) {\n      const fullValue = stripQuotes(document.getText(attributeCompletion.range));\n      if (isCompletablePath(fullValue)) {\n        if (fullValue === \".\" || fullValue === \"..\") {\n          result.isIncomplete = true;\n        } else {\n          const replaceRange = pathToReplaceRange(attributeCompletion.value, fullValue, attributeCompletion.range);\n          const suggestions = await this.providePathSuggestions(attributeCompletion.value, replaceRange, document, documentContext);\n          for (const item of suggestions) {\n            result.items.push(item);\n          }\n        }\n      }\n    }\n    return result;\n  }\n  async providePathSuggestions(valueBeforeCursor, replaceRange, document, documentContext) {\n    const valueBeforeLastSlash = valueBeforeCursor.substring(0, valueBeforeCursor.lastIndexOf(\"/\") + 1);\n    let parentDir = documentContext.resolveReference(valueBeforeLastSlash || \".\", document.uri);\n    if (parentDir) {\n      try {\n        const result = [];\n        const infos = await this.readDirectory(parentDir);\n        for (const [name, type] of infos) {\n          if (name.charCodeAt(0) !== CharCode_dot) {\n            result.push(createCompletionItem(name, type === FileType.Directory, replaceRange));\n          }\n        }\n        return result;\n      } catch (e) {\n      }\n    }\n    return [];\n  }\n};\nvar CharCode_dot = \".\".charCodeAt(0);\nfunction stripQuotes(fullValue) {\n  if (startsWith(fullValue, `'`) || startsWith(fullValue, `\"`)) {\n    return fullValue.slice(1, -1);\n  } else {\n    return fullValue;\n  }\n}\nfunction isCompletablePath(value) {\n  if (startsWith(value, \"http\") || startsWith(value, \"https\") || startsWith(value, \"//\")) {\n    return false;\n  }\n  return true;\n}\nfunction pathToReplaceRange(valueBeforeCursor, fullValue, range) {\n  let replaceRange;\n  const lastIndexOfSlash = valueBeforeCursor.lastIndexOf(\"/\");\n  if (lastIndexOfSlash === -1) {\n    replaceRange = shiftRange(range, 1, -1);\n  } else {\n    const valueAfterLastSlash = fullValue.slice(lastIndexOfSlash + 1);\n    const startPos = shiftPosition(range.end, -1 - valueAfterLastSlash.length);\n    const whitespaceIndex = valueAfterLastSlash.indexOf(\" \");\n    let endPos;\n    if (whitespaceIndex !== -1) {\n      endPos = shiftPosition(startPos, whitespaceIndex);\n    } else {\n      endPos = shiftPosition(range.end, -1);\n    }\n    replaceRange = Range.create(startPos, endPos);\n  }\n  return replaceRange;\n}\nfunction createCompletionItem(p, isDir, replaceRange) {\n  if (isDir) {\n    p = p + \"/\";\n    return {\n      label: p,\n      kind: CompletionItemKind.Folder,\n      textEdit: TextEdit.replace(replaceRange, p),\n      command: {\n        title: \"Suggest\",\n        command: \"editor.action.triggerSuggest\"\n      }\n    };\n  } else {\n    return {\n      label: p,\n      kind: CompletionItemKind.File,\n      textEdit: TextEdit.replace(replaceRange, p)\n    };\n  }\n}\nfunction shiftPosition(pos, offset) {\n  return Position.create(pos.line, pos.character + offset);\n}\nfunction shiftRange(range, startOffset, endOffset) {\n  const start = shiftPosition(range.start, startOffset);\n  const end = shiftPosition(range.end, endOffset);\n  return Range.create(start, end);\n}\n\n// node_modules/vscode-html-languageservice/lib/esm/services/htmlCompletion.js\nvar HTMLCompletion = class {\n  constructor(lsOptions, dataManager) {\n    this.lsOptions = lsOptions;\n    this.dataManager = dataManager;\n    this.completionParticipants = [];\n  }\n  setCompletionParticipants(registeredCompletionParticipants) {\n    this.completionParticipants = registeredCompletionParticipants || [];\n  }\n  async doComplete2(document, position, htmlDocument, documentContext, settings) {\n    if (!this.lsOptions.fileSystemProvider || !this.lsOptions.fileSystemProvider.readDirectory) {\n      return this.doComplete(document, position, htmlDocument, settings);\n    }\n    const participant = new PathCompletionParticipant(this.dataManager, this.lsOptions.fileSystemProvider.readDirectory);\n    const contributedParticipants = this.completionParticipants;\n    this.completionParticipants = [participant].concat(contributedParticipants);\n    const result = this.doComplete(document, position, htmlDocument, settings);\n    try {\n      const pathCompletionResult = await participant.computeCompletions(document, documentContext);\n      return {\n        isIncomplete: result.isIncomplete || pathCompletionResult.isIncomplete,\n        items: pathCompletionResult.items.concat(result.items)\n      };\n    } finally {\n      this.completionParticipants = contributedParticipants;\n    }\n  }\n  doComplete(document, position, htmlDocument, settings) {\n    const result = this._doComplete(document, position, htmlDocument, settings);\n    return this.convertCompletionList(result);\n  }\n  _doComplete(document, position, htmlDocument, settings) {\n    const result = {\n      isIncomplete: false,\n      items: []\n    };\n    const completionParticipants = this.completionParticipants;\n    const dataProviders = this.dataManager.getDataProviders().filter((p) => p.isApplicable(document.languageId) && (!settings || settings[p.getId()] !== false));\n    const voidElements = this.dataManager.getVoidElements(dataProviders);\n    const doesSupportMarkdown = this.doesSupportMarkdown();\n    const text = document.getText();\n    const offset = document.offsetAt(position);\n    const node = htmlDocument.findNodeBefore(offset);\n    if (!node) {\n      return result;\n    }\n    const scanner = createScanner(text, node.start);\n    let currentTag = \"\";\n    let currentAttributeName;\n    function getReplaceRange(replaceStart, replaceEnd = offset) {\n      if (replaceStart > offset) {\n        replaceStart = offset;\n      }\n      return { start: document.positionAt(replaceStart), end: document.positionAt(replaceEnd) };\n    }\n    function collectOpenTagSuggestions(afterOpenBracket, tagNameEnd) {\n      const range = getReplaceRange(afterOpenBracket, tagNameEnd);\n      dataProviders.forEach((provider) => {\n        provider.provideTags().forEach((tag) => {\n          result.items.push({\n            label: tag.name,\n            kind: CompletionItemKind.Property,\n            documentation: generateDocumentation(tag, void 0, doesSupportMarkdown),\n            textEdit: TextEdit.replace(range, tag.name),\n            insertTextFormat: InsertTextFormat.PlainText\n          });\n        });\n      });\n      return result;\n    }\n    function getLineIndent(offset2) {\n      let start = offset2;\n      while (start > 0) {\n        const ch = text.charAt(start - 1);\n        if (\"\\n\\r\".indexOf(ch) >= 0) {\n          return text.substring(start, offset2);\n        }\n        if (!isWhiteSpace(ch)) {\n          return null;\n        }\n        start--;\n      }\n      return text.substring(0, offset2);\n    }\n    function collectCloseTagSuggestions(afterOpenBracket, inOpenTag, tagNameEnd = offset) {\n      const range = getReplaceRange(afterOpenBracket, tagNameEnd);\n      const closeTag = isFollowedBy(text, tagNameEnd, ScannerState.WithinEndTag, TokenType.EndTagClose) ? \"\" : \">\";\n      let curr = node;\n      if (inOpenTag) {\n        curr = curr.parent;\n      }\n      while (curr) {\n        const tag = curr.tag;\n        if (tag && (!curr.closed || curr.endTagStart && curr.endTagStart > offset)) {\n          const item = {\n            label: \"/\" + tag,\n            kind: CompletionItemKind.Property,\n            filterText: \"/\" + tag,\n            textEdit: TextEdit.replace(range, \"/\" + tag + closeTag),\n            insertTextFormat: InsertTextFormat.PlainText\n          };\n          const startIndent = getLineIndent(curr.start);\n          const endIndent = getLineIndent(afterOpenBracket - 1);\n          if (startIndent !== null && endIndent !== null && startIndent !== endIndent) {\n            const insertText = startIndent + \"</\" + tag + closeTag;\n            item.textEdit = TextEdit.replace(getReplaceRange(afterOpenBracket - 1 - endIndent.length), insertText);\n            item.filterText = endIndent + \"</\" + tag;\n          }\n          result.items.push(item);\n          return result;\n        }\n        curr = curr.parent;\n      }\n      if (inOpenTag) {\n        return result;\n      }\n      dataProviders.forEach((provider) => {\n        provider.provideTags().forEach((tag) => {\n          result.items.push({\n            label: \"/\" + tag.name,\n            kind: CompletionItemKind.Property,\n            documentation: generateDocumentation(tag, void 0, doesSupportMarkdown),\n            filterText: \"/\" + tag.name + closeTag,\n            textEdit: TextEdit.replace(range, \"/\" + tag.name + closeTag),\n            insertTextFormat: InsertTextFormat.PlainText\n          });\n        });\n      });\n      return result;\n    }\n    const collectAutoCloseTagSuggestion = (tagCloseEnd, tag) => {\n      if (settings && settings.hideAutoCompleteProposals) {\n        return result;\n      }\n      if (!this.dataManager.isVoidElement(tag, voidElements)) {\n        const pos = document.positionAt(tagCloseEnd);\n        result.items.push({\n          label: \"</\" + tag + \">\",\n          kind: CompletionItemKind.Property,\n          filterText: \"</\" + tag + \">\",\n          textEdit: TextEdit.insert(pos, \"$0</\" + tag + \">\"),\n          insertTextFormat: InsertTextFormat.Snippet\n        });\n      }\n      return result;\n    };\n    function collectTagSuggestions(tagStart, tagEnd) {\n      collectOpenTagSuggestions(tagStart, tagEnd);\n      collectCloseTagSuggestions(tagStart, true, tagEnd);\n      return result;\n    }\n    function getExistingAttributes() {\n      const existingAttributes = /* @__PURE__ */ Object.create(null);\n      node.attributeNames.forEach((attribute) => {\n        existingAttributes[attribute] = true;\n      });\n      return existingAttributes;\n    }\n    function collectAttributeNameSuggestions(nameStart, nameEnd = offset) {\n      let replaceEnd = offset;\n      while (replaceEnd < nameEnd && text[replaceEnd] !== \"<\") {\n        replaceEnd++;\n      }\n      const currentAttribute = text.substring(nameStart, nameEnd);\n      const range = getReplaceRange(nameStart, replaceEnd);\n      let value = \"\";\n      if (!isFollowedBy(text, nameEnd, ScannerState.AfterAttributeName, TokenType.DelimiterAssign)) {\n        const defaultValue = settings?.attributeDefaultValue ?? \"doublequotes\";\n        if (defaultValue === \"empty\") {\n          value = \"=$1\";\n        } else if (defaultValue === \"singlequotes\") {\n          value = \"='$1'\";\n        } else {\n          value = '=\"$1\"';\n        }\n      }\n      const seenAttributes = getExistingAttributes();\n      seenAttributes[currentAttribute] = false;\n      dataProviders.forEach((provider) => {\n        provider.provideAttributes(currentTag).forEach((attr) => {\n          if (seenAttributes[attr.name]) {\n            return;\n          }\n          seenAttributes[attr.name] = true;\n          let codeSnippet = attr.name;\n          let command;\n          if (attr.valueSet !== \"v\" && value.length) {\n            codeSnippet = codeSnippet + value;\n            if (attr.valueSet || attr.name === \"style\") {\n              command = {\n                title: \"Suggest\",\n                command: \"editor.action.triggerSuggest\"\n              };\n            }\n          }\n          result.items.push({\n            label: attr.name,\n            kind: attr.valueSet === \"handler\" ? CompletionItemKind.Function : CompletionItemKind.Value,\n            documentation: generateDocumentation(attr, void 0, doesSupportMarkdown),\n            textEdit: TextEdit.replace(range, codeSnippet),\n            insertTextFormat: InsertTextFormat.Snippet,\n            command\n          });\n        });\n      });\n      collectDataAttributesSuggestions(range, seenAttributes);\n      return result;\n    }\n    function collectDataAttributesSuggestions(range, seenAttributes) {\n      const dataAttr = \"data-\";\n      const dataAttributes = {};\n      dataAttributes[dataAttr] = `${dataAttr}$1=\"$2\"`;\n      function addNodeDataAttributes(node2) {\n        node2.attributeNames.forEach((attr) => {\n          if (startsWith(attr, dataAttr) && !dataAttributes[attr] && !seenAttributes[attr]) {\n            dataAttributes[attr] = attr + '=\"$1\"';\n          }\n        });\n        node2.children.forEach((child) => addNodeDataAttributes(child));\n      }\n      if (htmlDocument) {\n        htmlDocument.roots.forEach((root) => addNodeDataAttributes(root));\n      }\n      Object.keys(dataAttributes).forEach((attr) => result.items.push({\n        label: attr,\n        kind: CompletionItemKind.Value,\n        textEdit: TextEdit.replace(range, dataAttributes[attr]),\n        insertTextFormat: InsertTextFormat.Snippet\n      }));\n    }\n    function collectAttributeValueSuggestions(valueStart, valueEnd = offset) {\n      let range;\n      let addQuotes;\n      let valuePrefix;\n      if (offset > valueStart && offset <= valueEnd && isQuote(text[valueStart])) {\n        const valueContentStart = valueStart + 1;\n        let valueContentEnd = valueEnd;\n        if (valueEnd > valueStart && text[valueEnd - 1] === text[valueStart]) {\n          valueContentEnd--;\n        }\n        const wsBefore = getWordStart(text, offset, valueContentStart);\n        const wsAfter = getWordEnd(text, offset, valueContentEnd);\n        range = getReplaceRange(wsBefore, wsAfter);\n        valuePrefix = offset >= valueContentStart && offset <= valueContentEnd ? text.substring(valueContentStart, offset) : \"\";\n        addQuotes = false;\n      } else {\n        range = getReplaceRange(valueStart, valueEnd);\n        valuePrefix = text.substring(valueStart, offset);\n        addQuotes = true;\n      }\n      if (completionParticipants.length > 0) {\n        const tag = currentTag.toLowerCase();\n        const attribute = currentAttributeName.toLowerCase();\n        const fullRange = getReplaceRange(valueStart, valueEnd);\n        for (const participant of completionParticipants) {\n          if (participant.onHtmlAttributeValue) {\n            participant.onHtmlAttributeValue({ document, position, tag, attribute, value: valuePrefix, range: fullRange });\n          }\n        }\n      }\n      dataProviders.forEach((provider) => {\n        provider.provideValues(currentTag, currentAttributeName).forEach((value) => {\n          const insertText = addQuotes ? '\"' + value.name + '\"' : value.name;\n          result.items.push({\n            label: value.name,\n            filterText: insertText,\n            kind: CompletionItemKind.Unit,\n            documentation: generateDocumentation(value, void 0, doesSupportMarkdown),\n            textEdit: TextEdit.replace(range, insertText),\n            insertTextFormat: InsertTextFormat.PlainText\n          });\n        });\n      });\n      collectCharacterEntityProposals();\n      return result;\n    }\n    function scanNextForEndPos(nextToken) {\n      if (offset === scanner.getTokenEnd()) {\n        token = scanner.scan();\n        if (token === nextToken && scanner.getTokenOffset() === offset) {\n          return scanner.getTokenEnd();\n        }\n      }\n      return offset;\n    }\n    function collectInsideContent() {\n      for (const participant of completionParticipants) {\n        if (participant.onHtmlContent) {\n          participant.onHtmlContent({ document, position });\n        }\n      }\n      return collectCharacterEntityProposals();\n    }\n    function collectCharacterEntityProposals() {\n      let k = offset - 1;\n      let characterStart = position.character;\n      while (k >= 0 && isLetterOrDigit(text, k)) {\n        k--;\n        characterStart--;\n      }\n      if (k >= 0 && text[k] === \"&\") {\n        const range = Range.create(Position.create(position.line, characterStart - 1), position);\n        for (const entity in entities) {\n          if (endsWith(entity, \";\")) {\n            const label = \"&\" + entity;\n            result.items.push({\n              label,\n              kind: CompletionItemKind.Keyword,\n              documentation: t(\"Character entity representing '{0}'\", entities[entity]),\n              textEdit: TextEdit.replace(range, label),\n              insertTextFormat: InsertTextFormat.PlainText\n            });\n          }\n        }\n      }\n      return result;\n    }\n    function suggestDoctype(replaceStart, replaceEnd) {\n      const range = getReplaceRange(replaceStart, replaceEnd);\n      result.items.push({\n        label: \"!DOCTYPE\",\n        kind: CompletionItemKind.Property,\n        documentation: \"A preamble for an HTML document.\",\n        textEdit: TextEdit.replace(range, \"!DOCTYPE html>\"),\n        insertTextFormat: InsertTextFormat.PlainText\n      });\n    }\n    let token = scanner.scan();\n    while (token !== TokenType.EOS && scanner.getTokenOffset() <= offset) {\n      switch (token) {\n        case TokenType.StartTagOpen:\n          if (scanner.getTokenEnd() === offset) {\n            const endPos = scanNextForEndPos(TokenType.StartTag);\n            if (position.line === 0) {\n              suggestDoctype(offset, endPos);\n            }\n            return collectTagSuggestions(offset, endPos);\n          }\n          break;\n        case TokenType.StartTag:\n          if (scanner.getTokenOffset() <= offset && offset <= scanner.getTokenEnd()) {\n            return collectOpenTagSuggestions(scanner.getTokenOffset(), scanner.getTokenEnd());\n          }\n          currentTag = scanner.getTokenText();\n          break;\n        case TokenType.AttributeName:\n          if (scanner.getTokenOffset() <= offset && offset <= scanner.getTokenEnd()) {\n            return collectAttributeNameSuggestions(scanner.getTokenOffset(), scanner.getTokenEnd());\n          }\n          currentAttributeName = scanner.getTokenText();\n          break;\n        case TokenType.DelimiterAssign:\n          if (scanner.getTokenEnd() === offset) {\n            const endPos = scanNextForEndPos(TokenType.AttributeValue);\n            return collectAttributeValueSuggestions(offset, endPos);\n          }\n          break;\n        case TokenType.AttributeValue:\n          if (scanner.getTokenOffset() <= offset && offset <= scanner.getTokenEnd()) {\n            return collectAttributeValueSuggestions(scanner.getTokenOffset(), scanner.getTokenEnd());\n          }\n          break;\n        case TokenType.Whitespace:\n          if (offset <= scanner.getTokenEnd()) {\n            switch (scanner.getScannerState()) {\n              case ScannerState.AfterOpeningStartTag:\n                const startPos = scanner.getTokenOffset();\n                const endTagPos = scanNextForEndPos(TokenType.StartTag);\n                return collectTagSuggestions(startPos, endTagPos);\n              case ScannerState.WithinTag:\n              case ScannerState.AfterAttributeName:\n                return collectAttributeNameSuggestions(scanner.getTokenEnd());\n              case ScannerState.BeforeAttributeValue:\n                return collectAttributeValueSuggestions(scanner.getTokenEnd());\n              case ScannerState.AfterOpeningEndTag:\n                return collectCloseTagSuggestions(scanner.getTokenOffset() - 1, false);\n              case ScannerState.WithinContent:\n                return collectInsideContent();\n            }\n          }\n          break;\n        case TokenType.EndTagOpen:\n          if (offset <= scanner.getTokenEnd()) {\n            const afterOpenBracket = scanner.getTokenOffset() + 1;\n            const endOffset = scanNextForEndPos(TokenType.EndTag);\n            return collectCloseTagSuggestions(afterOpenBracket, false, endOffset);\n          }\n          break;\n        case TokenType.EndTag:\n          if (offset <= scanner.getTokenEnd()) {\n            let start = scanner.getTokenOffset() - 1;\n            while (start >= 0) {\n              const ch = text.charAt(start);\n              if (ch === \"/\") {\n                return collectCloseTagSuggestions(start, false, scanner.getTokenEnd());\n              } else if (!isWhiteSpace(ch)) {\n                break;\n              }\n              start--;\n            }\n          }\n          break;\n        case TokenType.StartTagClose:\n          if (offset <= scanner.getTokenEnd()) {\n            if (currentTag) {\n              return collectAutoCloseTagSuggestion(scanner.getTokenEnd(), currentTag);\n            }\n          }\n          break;\n        case TokenType.Content:\n          if (offset <= scanner.getTokenEnd()) {\n            return collectInsideContent();\n          }\n          break;\n        default:\n          if (offset <= scanner.getTokenEnd()) {\n            return result;\n          }\n          break;\n      }\n      token = scanner.scan();\n    }\n    return result;\n  }\n  doQuoteComplete(document, position, htmlDocument, settings) {\n    const offset = document.offsetAt(position);\n    if (offset <= 0) {\n      return null;\n    }\n    const defaultValue = settings?.attributeDefaultValue ?? \"doublequotes\";\n    if (defaultValue === \"empty\") {\n      return null;\n    }\n    const char = document.getText().charAt(offset - 1);\n    if (char !== \"=\") {\n      return null;\n    }\n    const value = defaultValue === \"doublequotes\" ? '\"$1\"' : \"'$1'\";\n    const node = htmlDocument.findNodeBefore(offset);\n    if (node && node.attributes && node.start < offset && (!node.endTagStart || node.endTagStart > offset)) {\n      const scanner = createScanner(document.getText(), node.start);\n      let token = scanner.scan();\n      while (token !== TokenType.EOS && scanner.getTokenEnd() <= offset) {\n        if (token === TokenType.AttributeName && scanner.getTokenEnd() === offset - 1) {\n          token = scanner.scan();\n          if (token !== TokenType.DelimiterAssign) {\n            return null;\n          }\n          token = scanner.scan();\n          if (token === TokenType.Unknown || token === TokenType.AttributeValue) {\n            return null;\n          }\n          return value;\n        }\n        token = scanner.scan();\n      }\n    }\n    return null;\n  }\n  doTagComplete(document, position, htmlDocument) {\n    const offset = document.offsetAt(position);\n    if (offset <= 0) {\n      return null;\n    }\n    const char = document.getText().charAt(offset - 1);\n    if (char === \">\") {\n      const voidElements = this.dataManager.getVoidElements(document.languageId);\n      const node = htmlDocument.findNodeBefore(offset);\n      if (node && node.tag && !this.dataManager.isVoidElement(node.tag, voidElements) && node.start < offset && (!node.endTagStart || node.endTagStart > offset)) {\n        const scanner = createScanner(document.getText(), node.start);\n        let token = scanner.scan();\n        while (token !== TokenType.EOS && scanner.getTokenEnd() <= offset) {\n          if (token === TokenType.StartTagClose && scanner.getTokenEnd() === offset) {\n            return `$0</${node.tag}>`;\n          }\n          token = scanner.scan();\n        }\n      }\n    } else if (char === \"/\") {\n      let node = htmlDocument.findNodeBefore(offset);\n      while (node && node.closed && !(node.endTagStart && node.endTagStart > offset)) {\n        node = node.parent;\n      }\n      if (node && node.tag) {\n        const scanner = createScanner(document.getText(), node.start);\n        let token = scanner.scan();\n        while (token !== TokenType.EOS && scanner.getTokenEnd() <= offset) {\n          if (token === TokenType.EndTagOpen && scanner.getTokenEnd() === offset) {\n            if (document.getText().charAt(offset) !== \">\") {\n              return `${node.tag}>`;\n            } else {\n              return node.tag;\n            }\n          }\n          token = scanner.scan();\n        }\n      }\n    }\n    return null;\n  }\n  convertCompletionList(list) {\n    if (!this.doesSupportMarkdown()) {\n      list.items.forEach((item) => {\n        if (item.documentation && typeof item.documentation !== \"string\") {\n          item.documentation = {\n            kind: \"plaintext\",\n            value: item.documentation.value\n          };\n        }\n      });\n    }\n    return list;\n  }\n  doesSupportMarkdown() {\n    if (!isDefined(this.supportsMarkdown)) {\n      if (!isDefined(this.lsOptions.clientCapabilities)) {\n        this.supportsMarkdown = true;\n        return this.supportsMarkdown;\n      }\n      const documentationFormat = this.lsOptions.clientCapabilities.textDocument?.completion?.completionItem?.documentationFormat;\n      this.supportsMarkdown = Array.isArray(documentationFormat) && documentationFormat.indexOf(MarkupKind.Markdown) !== -1;\n    }\n    return this.supportsMarkdown;\n  }\n};\nfunction isQuote(s) {\n  return /^[\"']*$/.test(s);\n}\nfunction isWhiteSpace(s) {\n  return /^\\s*$/.test(s);\n}\nfunction isFollowedBy(s, offset, intialState, expectedToken) {\n  const scanner = createScanner(s, offset, intialState);\n  let token = scanner.scan();\n  while (token === TokenType.Whitespace) {\n    token = scanner.scan();\n  }\n  return token === expectedToken;\n}\nfunction getWordStart(s, offset, limit) {\n  while (offset > limit && !isWhiteSpace(s[offset - 1])) {\n    offset--;\n  }\n  return offset;\n}\nfunction getWordEnd(s, offset, limit) {\n  while (offset < limit && !isWhiteSpace(s[offset])) {\n    offset++;\n  }\n  return offset;\n}\n\n// node_modules/vscode-html-languageservice/lib/esm/services/htmlHover.js\nvar HTMLHover = class {\n  constructor(lsOptions, dataManager) {\n    this.lsOptions = lsOptions;\n    this.dataManager = dataManager;\n  }\n  doHover(document, position, htmlDocument, options) {\n    const convertContents = this.convertContents.bind(this);\n    const doesSupportMarkdown = this.doesSupportMarkdown();\n    const offset = document.offsetAt(position);\n    const node = htmlDocument.findNodeAt(offset);\n    const text = document.getText();\n    if (!node || !node.tag) {\n      return null;\n    }\n    const dataProviders = this.dataManager.getDataProviders().filter((p) => p.isApplicable(document.languageId));\n    function getTagHover(currTag, range, open) {\n      for (const provider of dataProviders) {\n        let hover = null;\n        provider.provideTags().forEach((tag) => {\n          if (tag.name.toLowerCase() === currTag.toLowerCase()) {\n            let markupContent = generateDocumentation(tag, options, doesSupportMarkdown);\n            if (!markupContent) {\n              markupContent = {\n                kind: doesSupportMarkdown ? \"markdown\" : \"plaintext\",\n                value: \"\"\n              };\n            }\n            hover = { contents: markupContent, range };\n          }\n        });\n        if (hover) {\n          hover.contents = convertContents(hover.contents);\n          return hover;\n        }\n      }\n      return null;\n    }\n    function getAttrHover(currTag, currAttr, range) {\n      for (const provider of dataProviders) {\n        let hover = null;\n        provider.provideAttributes(currTag).forEach((attr) => {\n          if (currAttr === attr.name && attr.description) {\n            const contentsDoc = generateDocumentation(attr, options, doesSupportMarkdown);\n            if (contentsDoc) {\n              hover = { contents: contentsDoc, range };\n            } else {\n              hover = null;\n            }\n          }\n        });\n        if (hover) {\n          hover.contents = convertContents(hover.contents);\n          return hover;\n        }\n      }\n      return null;\n    }\n    function getAttrValueHover(currTag, currAttr, currAttrValue, range) {\n      for (const provider of dataProviders) {\n        let hover = null;\n        provider.provideValues(currTag, currAttr).forEach((attrValue) => {\n          if (currAttrValue === attrValue.name && attrValue.description) {\n            const contentsDoc = generateDocumentation(attrValue, options, doesSupportMarkdown);\n            if (contentsDoc) {\n              hover = { contents: contentsDoc, range };\n            } else {\n              hover = null;\n            }\n          }\n        });\n        if (hover) {\n          hover.contents = convertContents(hover.contents);\n          return hover;\n        }\n      }\n      return null;\n    }\n    function getEntityHover(text2, range) {\n      let currEntity = filterEntity(text2);\n      for (const entity in entities) {\n        let hover = null;\n        const label = \"&\" + entity;\n        if (currEntity === label) {\n          let code = entities[entity].charCodeAt(0).toString(16).toUpperCase();\n          let hex = \"U+\";\n          if (code.length < 4) {\n            const zeroes = 4 - code.length;\n            let k = 0;\n            while (k < zeroes) {\n              hex += \"0\";\n              k += 1;\n            }\n          }\n          hex += code;\n          const contentsDoc = t(\"Character entity representing '{0}', unicode equivalent '{1}'\", entities[entity], hex);\n          if (contentsDoc) {\n            hover = { contents: contentsDoc, range };\n          } else {\n            hover = null;\n          }\n        }\n        if (hover) {\n          hover.contents = convertContents(hover.contents);\n          return hover;\n        }\n      }\n      return null;\n    }\n    function getTagNameRange2(tokenType, startOffset) {\n      const scanner = createScanner(document.getText(), startOffset);\n      let token = scanner.scan();\n      while (token !== TokenType.EOS && (scanner.getTokenEnd() < offset || scanner.getTokenEnd() === offset && token !== tokenType)) {\n        token = scanner.scan();\n      }\n      if (token === tokenType && offset <= scanner.getTokenEnd()) {\n        return { start: document.positionAt(scanner.getTokenOffset()), end: document.positionAt(scanner.getTokenEnd()) };\n      }\n      return null;\n    }\n    function getEntityRange() {\n      let k = offset - 1;\n      let characterStart = position.character;\n      while (k >= 0 && isLetterOrDigit(text, k)) {\n        k--;\n        characterStart--;\n      }\n      let n = k + 1;\n      let characterEnd = characterStart;\n      while (isLetterOrDigit(text, n)) {\n        n++;\n        characterEnd++;\n      }\n      if (k >= 0 && text[k] === \"&\") {\n        let range = null;\n        if (text[n] === \";\") {\n          range = Range.create(Position.create(position.line, characterStart), Position.create(position.line, characterEnd + 1));\n        } else {\n          range = Range.create(Position.create(position.line, characterStart), Position.create(position.line, characterEnd));\n        }\n        return range;\n      }\n      return null;\n    }\n    function filterEntity(text2) {\n      let k = offset - 1;\n      let newText = \"&\";\n      while (k >= 0 && isLetterOrDigit(text2, k)) {\n        k--;\n      }\n      k = k + 1;\n      while (isLetterOrDigit(text2, k)) {\n        newText += text2[k];\n        k += 1;\n      }\n      newText += \";\";\n      return newText;\n    }\n    if (node.endTagStart && offset >= node.endTagStart) {\n      const tagRange2 = getTagNameRange2(TokenType.EndTag, node.endTagStart);\n      if (tagRange2) {\n        return getTagHover(node.tag, tagRange2, false);\n      }\n      return null;\n    }\n    const tagRange = getTagNameRange2(TokenType.StartTag, node.start);\n    if (tagRange) {\n      return getTagHover(node.tag, tagRange, true);\n    }\n    const attrRange = getTagNameRange2(TokenType.AttributeName, node.start);\n    if (attrRange) {\n      const tag = node.tag;\n      const attr = document.getText(attrRange);\n      return getAttrHover(tag, attr, attrRange);\n    }\n    const entityRange = getEntityRange();\n    if (entityRange) {\n      return getEntityHover(text, entityRange);\n    }\n    function scanAttrAndAttrValue(nodeStart, attrValueStart) {\n      const scanner = createScanner(document.getText(), nodeStart);\n      let token = scanner.scan();\n      let prevAttr = void 0;\n      while (token !== TokenType.EOS && scanner.getTokenEnd() <= attrValueStart) {\n        token = scanner.scan();\n        if (token === TokenType.AttributeName) {\n          prevAttr = scanner.getTokenText();\n        }\n      }\n      return prevAttr;\n    }\n    const attrValueRange = getTagNameRange2(TokenType.AttributeValue, node.start);\n    if (attrValueRange) {\n      const tag = node.tag;\n      const attrValue = trimQuotes(document.getText(attrValueRange));\n      const matchAttr = scanAttrAndAttrValue(node.start, document.offsetAt(attrValueRange.start));\n      if (matchAttr) {\n        return getAttrValueHover(tag, matchAttr, attrValue, attrValueRange);\n      }\n    }\n    return null;\n  }\n  convertContents(contents) {\n    if (!this.doesSupportMarkdown()) {\n      if (typeof contents === \"string\") {\n        return contents;\n      } else if (\"kind\" in contents) {\n        return {\n          kind: \"plaintext\",\n          value: contents.value\n        };\n      } else if (Array.isArray(contents)) {\n        contents.map((c) => {\n          return typeof c === \"string\" ? c : c.value;\n        });\n      } else {\n        return contents.value;\n      }\n    }\n    return contents;\n  }\n  doesSupportMarkdown() {\n    if (!isDefined(this.supportsMarkdown)) {\n      if (!isDefined(this.lsOptions.clientCapabilities)) {\n        this.supportsMarkdown = true;\n        return this.supportsMarkdown;\n      }\n      const contentFormat = this.lsOptions.clientCapabilities?.textDocument?.hover?.contentFormat;\n      this.supportsMarkdown = Array.isArray(contentFormat) && contentFormat.indexOf(MarkupKind.Markdown) !== -1;\n    }\n    return this.supportsMarkdown;\n  }\n};\nfunction trimQuotes(s) {\n  if (s.length <= 1) {\n    return s.replace(/['\"]/, \"\");\n  }\n  if (s[0] === `'` || s[0] === `\"`) {\n    s = s.slice(1);\n  }\n  if (s[s.length - 1] === `'` || s[s.length - 1] === `\"`) {\n    s = s.slice(0, -1);\n  }\n  return s;\n}\n\n// node_modules/vscode-html-languageservice/lib/esm/beautify/beautify.js\nfunction js_beautify(js_source_text, options) {\n  return js_source_text;\n}\n\n// node_modules/vscode-html-languageservice/lib/esm/beautify/beautify-css.js\nvar legacy_beautify_css;\n(function() {\n  \"use strict\";\n  var __webpack_modules__ = [\n    ,\n    ,\n    /* 2 */\n    /***/\n    function(module) {\n      function OutputLine(parent) {\n        this.__parent = parent;\n        this.__character_count = 0;\n        this.__indent_count = -1;\n        this.__alignment_count = 0;\n        this.__wrap_point_index = 0;\n        this.__wrap_point_character_count = 0;\n        this.__wrap_point_indent_count = -1;\n        this.__wrap_point_alignment_count = 0;\n        this.__items = [];\n      }\n      OutputLine.prototype.clone_empty = function() {\n        var line = new OutputLine(this.__parent);\n        line.set_indent(this.__indent_count, this.__alignment_count);\n        return line;\n      };\n      OutputLine.prototype.item = function(index) {\n        if (index < 0) {\n          return this.__items[this.__items.length + index];\n        } else {\n          return this.__items[index];\n        }\n      };\n      OutputLine.prototype.has_match = function(pattern) {\n        for (var lastCheckedOutput = this.__items.length - 1; lastCheckedOutput >= 0; lastCheckedOutput--) {\n          if (this.__items[lastCheckedOutput].match(pattern)) {\n            return true;\n          }\n        }\n        return false;\n      };\n      OutputLine.prototype.set_indent = function(indent, alignment) {\n        if (this.is_empty()) {\n          this.__indent_count = indent || 0;\n          this.__alignment_count = alignment || 0;\n          this.__character_count = this.__parent.get_indent_size(this.__indent_count, this.__alignment_count);\n        }\n      };\n      OutputLine.prototype._set_wrap_point = function() {\n        if (this.__parent.wrap_line_length) {\n          this.__wrap_point_index = this.__items.length;\n          this.__wrap_point_character_count = this.__character_count;\n          this.__wrap_point_indent_count = this.__parent.next_line.__indent_count;\n          this.__wrap_point_alignment_count = this.__parent.next_line.__alignment_count;\n        }\n      };\n      OutputLine.prototype._should_wrap = function() {\n        return this.__wrap_point_index && this.__character_count > this.__parent.wrap_line_length && this.__wrap_point_character_count > this.__parent.next_line.__character_count;\n      };\n      OutputLine.prototype._allow_wrap = function() {\n        if (this._should_wrap()) {\n          this.__parent.add_new_line();\n          var next = this.__parent.current_line;\n          next.set_indent(this.__wrap_point_indent_count, this.__wrap_point_alignment_count);\n          next.__items = this.__items.slice(this.__wrap_point_index);\n          this.__items = this.__items.slice(0, this.__wrap_point_index);\n          next.__character_count += this.__character_count - this.__wrap_point_character_count;\n          this.__character_count = this.__wrap_point_character_count;\n          if (next.__items[0] === \" \") {\n            next.__items.splice(0, 1);\n            next.__character_count -= 1;\n          }\n          return true;\n        }\n        return false;\n      };\n      OutputLine.prototype.is_empty = function() {\n        return this.__items.length === 0;\n      };\n      OutputLine.prototype.last = function() {\n        if (!this.is_empty()) {\n          return this.__items[this.__items.length - 1];\n        } else {\n          return null;\n        }\n      };\n      OutputLine.prototype.push = function(item) {\n        this.__items.push(item);\n        var last_newline_index = item.lastIndexOf(\"\\n\");\n        if (last_newline_index !== -1) {\n          this.__character_count = item.length - last_newline_index;\n        } else {\n          this.__character_count += item.length;\n        }\n      };\n      OutputLine.prototype.pop = function() {\n        var item = null;\n        if (!this.is_empty()) {\n          item = this.__items.pop();\n          this.__character_count -= item.length;\n        }\n        return item;\n      };\n      OutputLine.prototype._remove_indent = function() {\n        if (this.__indent_count > 0) {\n          this.__indent_count -= 1;\n          this.__character_count -= this.__parent.indent_size;\n        }\n      };\n      OutputLine.prototype._remove_wrap_indent = function() {\n        if (this.__wrap_point_indent_count > 0) {\n          this.__wrap_point_indent_count -= 1;\n        }\n      };\n      OutputLine.prototype.trim = function() {\n        while (this.last() === \" \") {\n          this.__items.pop();\n          this.__character_count -= 1;\n        }\n      };\n      OutputLine.prototype.toString = function() {\n        var result = \"\";\n        if (this.is_empty()) {\n          if (this.__parent.indent_empty_lines) {\n            result = this.__parent.get_indent_string(this.__indent_count);\n          }\n        } else {\n          result = this.__parent.get_indent_string(this.__indent_count, this.__alignment_count);\n          result += this.__items.join(\"\");\n        }\n        return result;\n      };\n      function IndentStringCache(options, baseIndentString) {\n        this.__cache = [\"\"];\n        this.__indent_size = options.indent_size;\n        this.__indent_string = options.indent_char;\n        if (!options.indent_with_tabs) {\n          this.__indent_string = new Array(options.indent_size + 1).join(options.indent_char);\n        }\n        baseIndentString = baseIndentString || \"\";\n        if (options.indent_level > 0) {\n          baseIndentString = new Array(options.indent_level + 1).join(this.__indent_string);\n        }\n        this.__base_string = baseIndentString;\n        this.__base_string_length = baseIndentString.length;\n      }\n      IndentStringCache.prototype.get_indent_size = function(indent, column) {\n        var result = this.__base_string_length;\n        column = column || 0;\n        if (indent < 0) {\n          result = 0;\n        }\n        result += indent * this.__indent_size;\n        result += column;\n        return result;\n      };\n      IndentStringCache.prototype.get_indent_string = function(indent_level, column) {\n        var result = this.__base_string;\n        column = column || 0;\n        if (indent_level < 0) {\n          indent_level = 0;\n          result = \"\";\n        }\n        column += indent_level * this.__indent_size;\n        this.__ensure_cache(column);\n        result += this.__cache[column];\n        return result;\n      };\n      IndentStringCache.prototype.__ensure_cache = function(column) {\n        while (column >= this.__cache.length) {\n          this.__add_column();\n        }\n      };\n      IndentStringCache.prototype.__add_column = function() {\n        var column = this.__cache.length;\n        var indent = 0;\n        var result = \"\";\n        if (this.__indent_size && column >= this.__indent_size) {\n          indent = Math.floor(column / this.__indent_size);\n          column -= indent * this.__indent_size;\n          result = new Array(indent + 1).join(this.__indent_string);\n        }\n        if (column) {\n          result += new Array(column + 1).join(\" \");\n        }\n        this.__cache.push(result);\n      };\n      function Output(options, baseIndentString) {\n        this.__indent_cache = new IndentStringCache(options, baseIndentString);\n        this.raw = false;\n        this._end_with_newline = options.end_with_newline;\n        this.indent_size = options.indent_size;\n        this.wrap_line_length = options.wrap_line_length;\n        this.indent_empty_lines = options.indent_empty_lines;\n        this.__lines = [];\n        this.previous_line = null;\n        this.current_line = null;\n        this.next_line = new OutputLine(this);\n        this.space_before_token = false;\n        this.non_breaking_space = false;\n        this.previous_token_wrapped = false;\n        this.__add_outputline();\n      }\n      Output.prototype.__add_outputline = function() {\n        this.previous_line = this.current_line;\n        this.current_line = this.next_line.clone_empty();\n        this.__lines.push(this.current_line);\n      };\n      Output.prototype.get_line_number = function() {\n        return this.__lines.length;\n      };\n      Output.prototype.get_indent_string = function(indent, column) {\n        return this.__indent_cache.get_indent_string(indent, column);\n      };\n      Output.prototype.get_indent_size = function(indent, column) {\n        return this.__indent_cache.get_indent_size(indent, column);\n      };\n      Output.prototype.is_empty = function() {\n        return !this.previous_line && this.current_line.is_empty();\n      };\n      Output.prototype.add_new_line = function(force_newline) {\n        if (this.is_empty() || !force_newline && this.just_added_newline()) {\n          return false;\n        }\n        if (!this.raw) {\n          this.__add_outputline();\n        }\n        return true;\n      };\n      Output.prototype.get_code = function(eol) {\n        this.trim(true);\n        var last_item = this.current_line.pop();\n        if (last_item) {\n          if (last_item[last_item.length - 1] === \"\\n\") {\n            last_item = last_item.replace(/\\n+$/g, \"\");\n          }\n          this.current_line.push(last_item);\n        }\n        if (this._end_with_newline) {\n          this.__add_outputline();\n        }\n        var sweet_code = this.__lines.join(\"\\n\");\n        if (eol !== \"\\n\") {\n          sweet_code = sweet_code.replace(/[\\n]/g, eol);\n        }\n        return sweet_code;\n      };\n      Output.prototype.set_wrap_point = function() {\n        this.current_line._set_wrap_point();\n      };\n      Output.prototype.set_indent = function(indent, alignment) {\n        indent = indent || 0;\n        alignment = alignment || 0;\n        this.next_line.set_indent(indent, alignment);\n        if (this.__lines.length > 1) {\n          this.current_line.set_indent(indent, alignment);\n          return true;\n        }\n        this.current_line.set_indent();\n        return false;\n      };\n      Output.prototype.add_raw_token = function(token) {\n        for (var x = 0; x < token.newlines; x++) {\n          this.__add_outputline();\n        }\n        this.current_line.set_indent(-1);\n        this.current_line.push(token.whitespace_before);\n        this.current_line.push(token.text);\n        this.space_before_token = false;\n        this.non_breaking_space = false;\n        this.previous_token_wrapped = false;\n      };\n      Output.prototype.add_token = function(printable_token) {\n        this.__add_space_before_token();\n        this.current_line.push(printable_token);\n        this.space_before_token = false;\n        this.non_breaking_space = false;\n        this.previous_token_wrapped = this.current_line._allow_wrap();\n      };\n      Output.prototype.__add_space_before_token = function() {\n        if (this.space_before_token && !this.just_added_newline()) {\n          if (!this.non_breaking_space) {\n            this.set_wrap_point();\n          }\n          this.current_line.push(\" \");\n        }\n      };\n      Output.prototype.remove_indent = function(index) {\n        var output_length = this.__lines.length;\n        while (index < output_length) {\n          this.__lines[index]._remove_indent();\n          index++;\n        }\n        this.current_line._remove_wrap_indent();\n      };\n      Output.prototype.trim = function(eat_newlines) {\n        eat_newlines = eat_newlines === void 0 ? false : eat_newlines;\n        this.current_line.trim();\n        while (eat_newlines && this.__lines.length > 1 && this.current_line.is_empty()) {\n          this.__lines.pop();\n          this.current_line = this.__lines[this.__lines.length - 1];\n          this.current_line.trim();\n        }\n        this.previous_line = this.__lines.length > 1 ? this.__lines[this.__lines.length - 2] : null;\n      };\n      Output.prototype.just_added_newline = function() {\n        return this.current_line.is_empty();\n      };\n      Output.prototype.just_added_blankline = function() {\n        return this.is_empty() || this.current_line.is_empty() && this.previous_line.is_empty();\n      };\n      Output.prototype.ensure_empty_line_above = function(starts_with, ends_with) {\n        var index = this.__lines.length - 2;\n        while (index >= 0) {\n          var potentialEmptyLine = this.__lines[index];\n          if (potentialEmptyLine.is_empty()) {\n            break;\n          } else if (potentialEmptyLine.item(0).indexOf(starts_with) !== 0 && potentialEmptyLine.item(-1) !== ends_with) {\n            this.__lines.splice(index + 1, 0, new OutputLine(this));\n            this.previous_line = this.__lines[this.__lines.length - 2];\n            break;\n          }\n          index--;\n        }\n      };\n      module.exports.Output = Output;\n    },\n    ,\n    ,\n    ,\n    /* 6 */\n    /***/\n    function(module) {\n      function Options(options, merge_child_field) {\n        this.raw_options = _mergeOpts(options, merge_child_field);\n        this.disabled = this._get_boolean(\"disabled\");\n        this.eol = this._get_characters(\"eol\", \"auto\");\n        this.end_with_newline = this._get_boolean(\"end_with_newline\");\n        this.indent_size = this._get_number(\"indent_size\", 4);\n        this.indent_char = this._get_characters(\"indent_char\", \" \");\n        this.indent_level = this._get_number(\"indent_level\");\n        this.preserve_newlines = this._get_boolean(\"preserve_newlines\", true);\n        this.max_preserve_newlines = this._get_number(\"max_preserve_newlines\", 32786);\n        if (!this.preserve_newlines) {\n          this.max_preserve_newlines = 0;\n        }\n        this.indent_with_tabs = this._get_boolean(\"indent_with_tabs\", this.indent_char === \"\t\");\n        if (this.indent_with_tabs) {\n          this.indent_char = \"\t\";\n          if (this.indent_size === 1) {\n            this.indent_size = 4;\n          }\n        }\n        this.wrap_line_length = this._get_number(\"wrap_line_length\", this._get_number(\"max_char\"));\n        this.indent_empty_lines = this._get_boolean(\"indent_empty_lines\");\n        this.templating = this._get_selection_list(\"templating\", [\"auto\", \"none\", \"angular\", \"django\", \"erb\", \"handlebars\", \"php\", \"smarty\"], [\"auto\"]);\n      }\n      Options.prototype._get_array = function(name, default_value) {\n        var option_value = this.raw_options[name];\n        var result = default_value || [];\n        if (typeof option_value === \"object\") {\n          if (option_value !== null && typeof option_value.concat === \"function\") {\n            result = option_value.concat();\n          }\n        } else if (typeof option_value === \"string\") {\n          result = option_value.split(/[^a-zA-Z0-9_\\/\\-]+/);\n        }\n        return result;\n      };\n      Options.prototype._get_boolean = function(name, default_value) {\n        var option_value = this.raw_options[name];\n        var result = option_value === void 0 ? !!default_value : !!option_value;\n        return result;\n      };\n      Options.prototype._get_characters = function(name, default_value) {\n        var option_value = this.raw_options[name];\n        var result = default_value || \"\";\n        if (typeof option_value === \"string\") {\n          result = option_value.replace(/\\\\r/, \"\\r\").replace(/\\\\n/, \"\\n\").replace(/\\\\t/, \"\t\");\n        }\n        return result;\n      };\n      Options.prototype._get_number = function(name, default_value) {\n        var option_value = this.raw_options[name];\n        default_value = parseInt(default_value, 10);\n        if (isNaN(default_value)) {\n          default_value = 0;\n        }\n        var result = parseInt(option_value, 10);\n        if (isNaN(result)) {\n          result = default_value;\n        }\n        return result;\n      };\n      Options.prototype._get_selection = function(name, selection_list, default_value) {\n        var result = this._get_selection_list(name, selection_list, default_value);\n        if (result.length !== 1) {\n          throw new Error(\n            \"Invalid Option Value: The option '\" + name + \"' can only be one of the following values:\\n\" + selection_list + \"\\nYou passed in: '\" + this.raw_options[name] + \"'\"\n          );\n        }\n        return result[0];\n      };\n      Options.prototype._get_selection_list = function(name, selection_list, default_value) {\n        if (!selection_list || selection_list.length === 0) {\n          throw new Error(\"Selection list cannot be empty.\");\n        }\n        default_value = default_value || [selection_list[0]];\n        if (!this._is_valid_selection(default_value, selection_list)) {\n          throw new Error(\"Invalid Default Value!\");\n        }\n        var result = this._get_array(name, default_value);\n        if (!this._is_valid_selection(result, selection_list)) {\n          throw new Error(\n            \"Invalid Option Value: The option '\" + name + \"' can contain only the following values:\\n\" + selection_list + \"\\nYou passed in: '\" + this.raw_options[name] + \"'\"\n          );\n        }\n        return result;\n      };\n      Options.prototype._is_valid_selection = function(result, selection_list) {\n        return result.length && selection_list.length && !result.some(function(item) {\n          return selection_list.indexOf(item) === -1;\n        });\n      };\n      function _mergeOpts(allOptions, childFieldName) {\n        var finalOpts = {};\n        allOptions = _normalizeOpts(allOptions);\n        var name;\n        for (name in allOptions) {\n          if (name !== childFieldName) {\n            finalOpts[name] = allOptions[name];\n          }\n        }\n        if (childFieldName && allOptions[childFieldName]) {\n          for (name in allOptions[childFieldName]) {\n            finalOpts[name] = allOptions[childFieldName][name];\n          }\n        }\n        return finalOpts;\n      }\n      function _normalizeOpts(options) {\n        var convertedOpts = {};\n        var key;\n        for (key in options) {\n          var newKey = key.replace(/-/g, \"_\");\n          convertedOpts[newKey] = options[key];\n        }\n        return convertedOpts;\n      }\n      module.exports.Options = Options;\n      module.exports.normalizeOpts = _normalizeOpts;\n      module.exports.mergeOpts = _mergeOpts;\n    },\n    ,\n    /* 8 */\n    /***/\n    function(module) {\n      var regexp_has_sticky = RegExp.prototype.hasOwnProperty(\"sticky\");\n      function InputScanner(input_string) {\n        this.__input = input_string || \"\";\n        this.__input_length = this.__input.length;\n        this.__position = 0;\n      }\n      InputScanner.prototype.restart = function() {\n        this.__position = 0;\n      };\n      InputScanner.prototype.back = function() {\n        if (this.__position > 0) {\n          this.__position -= 1;\n        }\n      };\n      InputScanner.prototype.hasNext = function() {\n        return this.__position < this.__input_length;\n      };\n      InputScanner.prototype.next = function() {\n        var val = null;\n        if (this.hasNext()) {\n          val = this.__input.charAt(this.__position);\n          this.__position += 1;\n        }\n        return val;\n      };\n      InputScanner.prototype.peek = function(index) {\n        var val = null;\n        index = index || 0;\n        index += this.__position;\n        if (index >= 0 && index < this.__input_length) {\n          val = this.__input.charAt(index);\n        }\n        return val;\n      };\n      InputScanner.prototype.__match = function(pattern, index) {\n        pattern.lastIndex = index;\n        var pattern_match = pattern.exec(this.__input);\n        if (pattern_match && !(regexp_has_sticky && pattern.sticky)) {\n          if (pattern_match.index !== index) {\n            pattern_match = null;\n          }\n        }\n        return pattern_match;\n      };\n      InputScanner.prototype.test = function(pattern, index) {\n        index = index || 0;\n        index += this.__position;\n        if (index >= 0 && index < this.__input_length) {\n          return !!this.__match(pattern, index);\n        } else {\n          return false;\n        }\n      };\n      InputScanner.prototype.testChar = function(pattern, index) {\n        var val = this.peek(index);\n        pattern.lastIndex = 0;\n        return val !== null && pattern.test(val);\n      };\n      InputScanner.prototype.match = function(pattern) {\n        var pattern_match = this.__match(pattern, this.__position);\n        if (pattern_match) {\n          this.__position += pattern_match[0].length;\n        } else {\n          pattern_match = null;\n        }\n        return pattern_match;\n      };\n      InputScanner.prototype.read = function(starting_pattern, until_pattern, until_after) {\n        var val = \"\";\n        var match;\n        if (starting_pattern) {\n          match = this.match(starting_pattern);\n          if (match) {\n            val += match[0];\n          }\n        }\n        if (until_pattern && (match || !starting_pattern)) {\n          val += this.readUntil(until_pattern, until_after);\n        }\n        return val;\n      };\n      InputScanner.prototype.readUntil = function(pattern, until_after) {\n        var val = \"\";\n        var match_index = this.__position;\n        pattern.lastIndex = this.__position;\n        var pattern_match = pattern.exec(this.__input);\n        if (pattern_match) {\n          match_index = pattern_match.index;\n          if (until_after) {\n            match_index += pattern_match[0].length;\n          }\n        } else {\n          match_index = this.__input_length;\n        }\n        val = this.__input.substring(this.__position, match_index);\n        this.__position = match_index;\n        return val;\n      };\n      InputScanner.prototype.readUntilAfter = function(pattern) {\n        return this.readUntil(pattern, true);\n      };\n      InputScanner.prototype.get_regexp = function(pattern, match_from) {\n        var result = null;\n        var flags = \"g\";\n        if (match_from && regexp_has_sticky) {\n          flags = \"y\";\n        }\n        if (typeof pattern === \"string\" && pattern !== \"\") {\n          result = new RegExp(pattern, flags);\n        } else if (pattern) {\n          result = new RegExp(pattern.source, flags);\n        }\n        return result;\n      };\n      InputScanner.prototype.get_literal_regexp = function(literal_string) {\n        return RegExp(literal_string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\"));\n      };\n      InputScanner.prototype.peekUntilAfter = function(pattern) {\n        var start = this.__position;\n        var val = this.readUntilAfter(pattern);\n        this.__position = start;\n        return val;\n      };\n      InputScanner.prototype.lookBack = function(testVal) {\n        var start = this.__position - 1;\n        return start >= testVal.length && this.__input.substring(start - testVal.length, start).toLowerCase() === testVal;\n      };\n      module.exports.InputScanner = InputScanner;\n    },\n    ,\n    ,\n    ,\n    ,\n    /* 13 */\n    /***/\n    function(module) {\n      function Directives(start_block_pattern, end_block_pattern) {\n        start_block_pattern = typeof start_block_pattern === \"string\" ? start_block_pattern : start_block_pattern.source;\n        end_block_pattern = typeof end_block_pattern === \"string\" ? end_block_pattern : end_block_pattern.source;\n        this.__directives_block_pattern = new RegExp(start_block_pattern + / beautify( \\w+[:]\\w+)+ /.source + end_block_pattern, \"g\");\n        this.__directive_pattern = / (\\w+)[:](\\w+)/g;\n        this.__directives_end_ignore_pattern = new RegExp(start_block_pattern + /\\sbeautify\\signore:end\\s/.source + end_block_pattern, \"g\");\n      }\n      Directives.prototype.get_directives = function(text) {\n        if (!text.match(this.__directives_block_pattern)) {\n          return null;\n        }\n        var directives = {};\n        this.__directive_pattern.lastIndex = 0;\n        var directive_match = this.__directive_pattern.exec(text);\n        while (directive_match) {\n          directives[directive_match[1]] = directive_match[2];\n          directive_match = this.__directive_pattern.exec(text);\n        }\n        return directives;\n      };\n      Directives.prototype.readIgnored = function(input) {\n        return input.readUntilAfter(this.__directives_end_ignore_pattern);\n      };\n      module.exports.Directives = Directives;\n    },\n    ,\n    /* 15 */\n    /***/\n    function(module, __unused_webpack_exports, __webpack_require__2) {\n      var Beautifier = __webpack_require__2(16).Beautifier, Options = __webpack_require__2(17).Options;\n      function css_beautify2(source_text, options) {\n        var beautifier = new Beautifier(source_text, options);\n        return beautifier.beautify();\n      }\n      module.exports = css_beautify2;\n      module.exports.defaultOptions = function() {\n        return new Options();\n      };\n    },\n    /* 16 */\n    /***/\n    function(module, __unused_webpack_exports, __webpack_require__2) {\n      var Options = __webpack_require__2(17).Options;\n      var Output = __webpack_require__2(2).Output;\n      var InputScanner = __webpack_require__2(8).InputScanner;\n      var Directives = __webpack_require__2(13).Directives;\n      var directives_core = new Directives(/\\/\\*/, /\\*\\//);\n      var lineBreak = /\\r\\n|[\\r\\n]/;\n      var allLineBreaks = /\\r\\n|[\\r\\n]/g;\n      var whitespaceChar = /\\s/;\n      var whitespacePattern = /(?:\\s|\\n)+/g;\n      var block_comment_pattern = /\\/\\*(?:[\\s\\S]*?)((?:\\*\\/)|$)/g;\n      var comment_pattern = /\\/\\/(?:[^\\n\\r\\u2028\\u2029]*)/g;\n      function Beautifier(source_text, options) {\n        this._source_text = source_text || \"\";\n        this._options = new Options(options);\n        this._ch = null;\n        this._input = null;\n        this.NESTED_AT_RULE = {\n          \"page\": true,\n          \"font-face\": true,\n          \"keyframes\": true,\n          // also in CONDITIONAL_GROUP_RULE below\n          \"media\": true,\n          \"supports\": true,\n          \"document\": true\n        };\n        this.CONDITIONAL_GROUP_RULE = {\n          \"media\": true,\n          \"supports\": true,\n          \"document\": true\n        };\n        this.NON_SEMICOLON_NEWLINE_PROPERTY = [\n          \"grid-template-areas\",\n          \"grid-template\"\n        ];\n      }\n      Beautifier.prototype.eatString = function(endChars) {\n        var result = \"\";\n        this._ch = this._input.next();\n        while (this._ch) {\n          result += this._ch;\n          if (this._ch === \"\\\\\") {\n            result += this._input.next();\n          } else if (endChars.indexOf(this._ch) !== -1 || this._ch === \"\\n\") {\n            break;\n          }\n          this._ch = this._input.next();\n        }\n        return result;\n      };\n      Beautifier.prototype.eatWhitespace = function(allowAtLeastOneNewLine) {\n        var result = whitespaceChar.test(this._input.peek());\n        var newline_count = 0;\n        while (whitespaceChar.test(this._input.peek())) {\n          this._ch = this._input.next();\n          if (allowAtLeastOneNewLine && this._ch === \"\\n\") {\n            if (newline_count === 0 || newline_count < this._options.max_preserve_newlines) {\n              newline_count++;\n              this._output.add_new_line(true);\n            }\n          }\n        }\n        return result;\n      };\n      Beautifier.prototype.foundNestedPseudoClass = function() {\n        var openParen = 0;\n        var i = 1;\n        var ch = this._input.peek(i);\n        while (ch) {\n          if (ch === \"{\") {\n            return true;\n          } else if (ch === \"(\") {\n            openParen += 1;\n          } else if (ch === \")\") {\n            if (openParen === 0) {\n              return false;\n            }\n            openParen -= 1;\n          } else if (ch === \";\" || ch === \"}\") {\n            return false;\n          }\n          i++;\n          ch = this._input.peek(i);\n        }\n        return false;\n      };\n      Beautifier.prototype.print_string = function(output_string) {\n        this._output.set_indent(this._indentLevel);\n        this._output.non_breaking_space = true;\n        this._output.add_token(output_string);\n      };\n      Beautifier.prototype.preserveSingleSpace = function(isAfterSpace) {\n        if (isAfterSpace) {\n          this._output.space_before_token = true;\n        }\n      };\n      Beautifier.prototype.indent = function() {\n        this._indentLevel++;\n      };\n      Beautifier.prototype.outdent = function() {\n        if (this._indentLevel > 0) {\n          this._indentLevel--;\n        }\n      };\n      Beautifier.prototype.beautify = function() {\n        if (this._options.disabled) {\n          return this._source_text;\n        }\n        var source_text = this._source_text;\n        var eol = this._options.eol;\n        if (eol === \"auto\") {\n          eol = \"\\n\";\n          if (source_text && lineBreak.test(source_text || \"\")) {\n            eol = source_text.match(lineBreak)[0];\n          }\n        }\n        source_text = source_text.replace(allLineBreaks, \"\\n\");\n        var baseIndentString = source_text.match(/^[\\t ]*/)[0];\n        this._output = new Output(this._options, baseIndentString);\n        this._input = new InputScanner(source_text);\n        this._indentLevel = 0;\n        this._nestedLevel = 0;\n        this._ch = null;\n        var parenLevel = 0;\n        var insideRule = false;\n        var insidePropertyValue = false;\n        var enteringConditionalGroup = false;\n        var insideNonNestedAtRule = false;\n        var insideScssMap = false;\n        var topCharacter = this._ch;\n        var insideNonSemiColonValues = false;\n        var whitespace;\n        var isAfterSpace;\n        var previous_ch;\n        while (true) {\n          whitespace = this._input.read(whitespacePattern);\n          isAfterSpace = whitespace !== \"\";\n          previous_ch = topCharacter;\n          this._ch = this._input.next();\n          if (this._ch === \"\\\\\" && this._input.hasNext()) {\n            this._ch += this._input.next();\n          }\n          topCharacter = this._ch;\n          if (!this._ch) {\n            break;\n          } else if (this._ch === \"/\" && this._input.peek() === \"*\") {\n            this._output.add_new_line();\n            this._input.back();\n            var comment = this._input.read(block_comment_pattern);\n            var directives = directives_core.get_directives(comment);\n            if (directives && directives.ignore === \"start\") {\n              comment += directives_core.readIgnored(this._input);\n            }\n            this.print_string(comment);\n            this.eatWhitespace(true);\n            this._output.add_new_line();\n          } else if (this._ch === \"/\" && this._input.peek() === \"/\") {\n            this._output.space_before_token = true;\n            this._input.back();\n            this.print_string(this._input.read(comment_pattern));\n            this.eatWhitespace(true);\n          } else if (this._ch === \"$\") {\n            this.preserveSingleSpace(isAfterSpace);\n            this.print_string(this._ch);\n            var variable = this._input.peekUntilAfter(/[: ,;{}()[\\]\\/='\"]/g);\n            if (variable.match(/[ :]$/)) {\n              variable = this.eatString(\": \").replace(/\\s+$/, \"\");\n              this.print_string(variable);\n              this._output.space_before_token = true;\n            }\n            if (parenLevel === 0 && variable.indexOf(\":\") !== -1) {\n              insidePropertyValue = true;\n              this.indent();\n            }\n          } else if (this._ch === \"@\") {\n            this.preserveSingleSpace(isAfterSpace);\n            if (this._input.peek() === \"{\") {\n              this.print_string(this._ch + this.eatString(\"}\"));\n            } else {\n              this.print_string(this._ch);\n              var variableOrRule = this._input.peekUntilAfter(/[: ,;{}()[\\]\\/='\"]/g);\n              if (variableOrRule.match(/[ :]$/)) {\n                variableOrRule = this.eatString(\": \").replace(/\\s+$/, \"\");\n                this.print_string(variableOrRule);\n                this._output.space_before_token = true;\n              }\n              if (parenLevel === 0 && variableOrRule.indexOf(\":\") !== -1) {\n                insidePropertyValue = true;\n                this.indent();\n              } else if (variableOrRule in this.NESTED_AT_RULE) {\n                this._nestedLevel += 1;\n                if (variableOrRule in this.CONDITIONAL_GROUP_RULE) {\n                  enteringConditionalGroup = true;\n                }\n              } else if (parenLevel === 0 && !insidePropertyValue) {\n                insideNonNestedAtRule = true;\n              }\n            }\n          } else if (this._ch === \"#\" && this._input.peek() === \"{\") {\n            this.preserveSingleSpace(isAfterSpace);\n            this.print_string(this._ch + this.eatString(\"}\"));\n          } else if (this._ch === \"{\") {\n            if (insidePropertyValue) {\n              insidePropertyValue = false;\n              this.outdent();\n            }\n            insideNonNestedAtRule = false;\n            if (enteringConditionalGroup) {\n              enteringConditionalGroup = false;\n              insideRule = this._indentLevel >= this._nestedLevel;\n            } else {\n              insideRule = this._indentLevel >= this._nestedLevel - 1;\n            }\n            if (this._options.newline_between_rules && insideRule) {\n              if (this._output.previous_line && this._output.previous_line.item(-1) !== \"{\") {\n                this._output.ensure_empty_line_above(\"/\", \",\");\n              }\n            }\n            this._output.space_before_token = true;\n            if (this._options.brace_style === \"expand\") {\n              this._output.add_new_line();\n              this.print_string(this._ch);\n              this.indent();\n              this._output.set_indent(this._indentLevel);\n            } else {\n              if (previous_ch === \"(\") {\n                this._output.space_before_token = false;\n              } else if (previous_ch !== \",\") {\n                this.indent();\n              }\n              this.print_string(this._ch);\n            }\n            this.eatWhitespace(true);\n            this._output.add_new_line();\n          } else if (this._ch === \"}\") {\n            this.outdent();\n            this._output.add_new_line();\n            if (previous_ch === \"{\") {\n              this._output.trim(true);\n            }\n            if (insidePropertyValue) {\n              this.outdent();\n              insidePropertyValue = false;\n            }\n            this.print_string(this._ch);\n            insideRule = false;\n            if (this._nestedLevel) {\n              this._nestedLevel--;\n            }\n            this.eatWhitespace(true);\n            this._output.add_new_line();\n            if (this._options.newline_between_rules && !this._output.just_added_blankline()) {\n              if (this._input.peek() !== \"}\") {\n                this._output.add_new_line(true);\n              }\n            }\n            if (this._input.peek() === \")\") {\n              this._output.trim(true);\n              if (this._options.brace_style === \"expand\") {\n                this._output.add_new_line(true);\n              }\n            }\n          } else if (this._ch === \":\") {\n            for (var i = 0; i < this.NON_SEMICOLON_NEWLINE_PROPERTY.length; i++) {\n              if (this._input.lookBack(this.NON_SEMICOLON_NEWLINE_PROPERTY[i])) {\n                insideNonSemiColonValues = true;\n                break;\n              }\n            }\n            if ((insideRule || enteringConditionalGroup) && !(this._input.lookBack(\"&\") || this.foundNestedPseudoClass()) && !this._input.lookBack(\"(\") && !insideNonNestedAtRule && parenLevel === 0) {\n              this.print_string(\":\");\n              if (!insidePropertyValue) {\n                insidePropertyValue = true;\n                this._output.space_before_token = true;\n                this.eatWhitespace(true);\n                this.indent();\n              }\n            } else {\n              if (this._input.lookBack(\" \")) {\n                this._output.space_before_token = true;\n              }\n              if (this._input.peek() === \":\") {\n                this._ch = this._input.next();\n                this.print_string(\"::\");\n              } else {\n                this.print_string(\":\");\n              }\n            }\n          } else if (this._ch === '\"' || this._ch === \"'\") {\n            var preserveQuoteSpace = previous_ch === '\"' || previous_ch === \"'\";\n            this.preserveSingleSpace(preserveQuoteSpace || isAfterSpace);\n            this.print_string(this._ch + this.eatString(this._ch));\n            this.eatWhitespace(true);\n          } else if (this._ch === \";\") {\n            insideNonSemiColonValues = false;\n            if (parenLevel === 0) {\n              if (insidePropertyValue) {\n                this.outdent();\n                insidePropertyValue = false;\n              }\n              insideNonNestedAtRule = false;\n              this.print_string(this._ch);\n              this.eatWhitespace(true);\n              if (this._input.peek() !== \"/\") {\n                this._output.add_new_line();\n              }\n            } else {\n              this.print_string(this._ch);\n              this.eatWhitespace(true);\n              this._output.space_before_token = true;\n            }\n          } else if (this._ch === \"(\") {\n            if (this._input.lookBack(\"url\")) {\n              this.print_string(this._ch);\n              this.eatWhitespace();\n              parenLevel++;\n              this.indent();\n              this._ch = this._input.next();\n              if (this._ch === \")\" || this._ch === '\"' || this._ch === \"'\") {\n                this._input.back();\n              } else if (this._ch) {\n                this.print_string(this._ch + this.eatString(\")\"));\n                if (parenLevel) {\n                  parenLevel--;\n                  this.outdent();\n                }\n              }\n            } else {\n              var space_needed = false;\n              if (this._input.lookBack(\"with\")) {\n                space_needed = true;\n              }\n              this.preserveSingleSpace(isAfterSpace || space_needed);\n              this.print_string(this._ch);\n              if (insidePropertyValue && previous_ch === \"$\" && this._options.selector_separator_newline) {\n                this._output.add_new_line();\n                insideScssMap = true;\n              } else {\n                this.eatWhitespace();\n                parenLevel++;\n                this.indent();\n              }\n            }\n          } else if (this._ch === \")\") {\n            if (parenLevel) {\n              parenLevel--;\n              this.outdent();\n            }\n            if (insideScssMap && this._input.peek() === \";\" && this._options.selector_separator_newline) {\n              insideScssMap = false;\n              this.outdent();\n              this._output.add_new_line();\n            }\n            this.print_string(this._ch);\n          } else if (this._ch === \",\") {\n            this.print_string(this._ch);\n            this.eatWhitespace(true);\n            if (this._options.selector_separator_newline && (!insidePropertyValue || insideScssMap) && parenLevel === 0 && !insideNonNestedAtRule) {\n              this._output.add_new_line();\n            } else {\n              this._output.space_before_token = true;\n            }\n          } else if ((this._ch === \">\" || this._ch === \"+\" || this._ch === \"~\") && !insidePropertyValue && parenLevel === 0) {\n            if (this._options.space_around_combinator) {\n              this._output.space_before_token = true;\n              this.print_string(this._ch);\n              this._output.space_before_token = true;\n            } else {\n              this.print_string(this._ch);\n              this.eatWhitespace();\n              if (this._ch && whitespaceChar.test(this._ch)) {\n                this._ch = \"\";\n              }\n            }\n          } else if (this._ch === \"]\") {\n            this.print_string(this._ch);\n          } else if (this._ch === \"[\") {\n            this.preserveSingleSpace(isAfterSpace);\n            this.print_string(this._ch);\n          } else if (this._ch === \"=\") {\n            this.eatWhitespace();\n            this.print_string(\"=\");\n            if (whitespaceChar.test(this._ch)) {\n              this._ch = \"\";\n            }\n          } else if (this._ch === \"!\" && !this._input.lookBack(\"\\\\\")) {\n            this._output.space_before_token = true;\n            this.print_string(this._ch);\n          } else {\n            var preserveAfterSpace = previous_ch === '\"' || previous_ch === \"'\";\n            this.preserveSingleSpace(preserveAfterSpace || isAfterSpace);\n            this.print_string(this._ch);\n            if (!this._output.just_added_newline() && this._input.peek() === \"\\n\" && insideNonSemiColonValues) {\n              this._output.add_new_line();\n            }\n          }\n        }\n        var sweetCode = this._output.get_code(eol);\n        return sweetCode;\n      };\n      module.exports.Beautifier = Beautifier;\n    },\n    /* 17 */\n    /***/\n    function(module, __unused_webpack_exports, __webpack_require__2) {\n      var BaseOptions = __webpack_require__2(6).Options;\n      function Options(options) {\n        BaseOptions.call(this, options, \"css\");\n        this.selector_separator_newline = this._get_boolean(\"selector_separator_newline\", true);\n        this.newline_between_rules = this._get_boolean(\"newline_between_rules\", true);\n        var space_around_selector_separator = this._get_boolean(\"space_around_selector_separator\");\n        this.space_around_combinator = this._get_boolean(\"space_around_combinator\") || space_around_selector_separator;\n        var brace_style_split = this._get_selection_list(\"brace_style\", [\"collapse\", \"expand\", \"end-expand\", \"none\", \"preserve-inline\"]);\n        this.brace_style = \"collapse\";\n        for (var bs = 0; bs < brace_style_split.length; bs++) {\n          if (brace_style_split[bs] !== \"expand\") {\n            this.brace_style = \"collapse\";\n          } else {\n            this.brace_style = brace_style_split[bs];\n          }\n        }\n      }\n      Options.prototype = new BaseOptions();\n      module.exports.Options = Options;\n    }\n    /******/\n  ];\n  var __webpack_module_cache__ = {};\n  function __webpack_require__(moduleId) {\n    var cachedModule = __webpack_module_cache__[moduleId];\n    if (cachedModule !== void 0) {\n      return cachedModule.exports;\n    }\n    var module = __webpack_module_cache__[moduleId] = {\n      /******/\n      // no module.id needed\n      /******/\n      // no module.loaded needed\n      /******/\n      exports: {}\n      /******/\n    };\n    __webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n    return module.exports;\n  }\n  var __webpack_exports__ = __webpack_require__(15);\n  legacy_beautify_css = __webpack_exports__;\n})();\nvar css_beautify = legacy_beautify_css;\n\n// node_modules/vscode-html-languageservice/lib/esm/beautify/beautify-html.js\nvar legacy_beautify_html;\n(function() {\n  \"use strict\";\n  var __webpack_modules__ = [\n    ,\n    ,\n    /* 2 */\n    /***/\n    function(module) {\n      function OutputLine(parent) {\n        this.__parent = parent;\n        this.__character_count = 0;\n        this.__indent_count = -1;\n        this.__alignment_count = 0;\n        this.__wrap_point_index = 0;\n        this.__wrap_point_character_count = 0;\n        this.__wrap_point_indent_count = -1;\n        this.__wrap_point_alignment_count = 0;\n        this.__items = [];\n      }\n      OutputLine.prototype.clone_empty = function() {\n        var line = new OutputLine(this.__parent);\n        line.set_indent(this.__indent_count, this.__alignment_count);\n        return line;\n      };\n      OutputLine.prototype.item = function(index) {\n        if (index < 0) {\n          return this.__items[this.__items.length + index];\n        } else {\n          return this.__items[index];\n        }\n      };\n      OutputLine.prototype.has_match = function(pattern) {\n        for (var lastCheckedOutput = this.__items.length - 1; lastCheckedOutput >= 0; lastCheckedOutput--) {\n          if (this.__items[lastCheckedOutput].match(pattern)) {\n            return true;\n          }\n        }\n        return false;\n      };\n      OutputLine.prototype.set_indent = function(indent, alignment) {\n        if (this.is_empty()) {\n          this.__indent_count = indent || 0;\n          this.__alignment_count = alignment || 0;\n          this.__character_count = this.__parent.get_indent_size(this.__indent_count, this.__alignment_count);\n        }\n      };\n      OutputLine.prototype._set_wrap_point = function() {\n        if (this.__parent.wrap_line_length) {\n          this.__wrap_point_index = this.__items.length;\n          this.__wrap_point_character_count = this.__character_count;\n          this.__wrap_point_indent_count = this.__parent.next_line.__indent_count;\n          this.__wrap_point_alignment_count = this.__parent.next_line.__alignment_count;\n        }\n      };\n      OutputLine.prototype._should_wrap = function() {\n        return this.__wrap_point_index && this.__character_count > this.__parent.wrap_line_length && this.__wrap_point_character_count > this.__parent.next_line.__character_count;\n      };\n      OutputLine.prototype._allow_wrap = function() {\n        if (this._should_wrap()) {\n          this.__parent.add_new_line();\n          var next = this.__parent.current_line;\n          next.set_indent(this.__wrap_point_indent_count, this.__wrap_point_alignment_count);\n          next.__items = this.__items.slice(this.__wrap_point_index);\n          this.__items = this.__items.slice(0, this.__wrap_point_index);\n          next.__character_count += this.__character_count - this.__wrap_point_character_count;\n          this.__character_count = this.__wrap_point_character_count;\n          if (next.__items[0] === \" \") {\n            next.__items.splice(0, 1);\n            next.__character_count -= 1;\n          }\n          return true;\n        }\n        return false;\n      };\n      OutputLine.prototype.is_empty = function() {\n        return this.__items.length === 0;\n      };\n      OutputLine.prototype.last = function() {\n        if (!this.is_empty()) {\n          return this.__items[this.__items.length - 1];\n        } else {\n          return null;\n        }\n      };\n      OutputLine.prototype.push = function(item) {\n        this.__items.push(item);\n        var last_newline_index = item.lastIndexOf(\"\\n\");\n        if (last_newline_index !== -1) {\n          this.__character_count = item.length - last_newline_index;\n        } else {\n          this.__character_count += item.length;\n        }\n      };\n      OutputLine.prototype.pop = function() {\n        var item = null;\n        if (!this.is_empty()) {\n          item = this.__items.pop();\n          this.__character_count -= item.length;\n        }\n        return item;\n      };\n      OutputLine.prototype._remove_indent = function() {\n        if (this.__indent_count > 0) {\n          this.__indent_count -= 1;\n          this.__character_count -= this.__parent.indent_size;\n        }\n      };\n      OutputLine.prototype._remove_wrap_indent = function() {\n        if (this.__wrap_point_indent_count > 0) {\n          this.__wrap_point_indent_count -= 1;\n        }\n      };\n      OutputLine.prototype.trim = function() {\n        while (this.last() === \" \") {\n          this.__items.pop();\n          this.__character_count -= 1;\n        }\n      };\n      OutputLine.prototype.toString = function() {\n        var result = \"\";\n        if (this.is_empty()) {\n          if (this.__parent.indent_empty_lines) {\n            result = this.__parent.get_indent_string(this.__indent_count);\n          }\n        } else {\n          result = this.__parent.get_indent_string(this.__indent_count, this.__alignment_count);\n          result += this.__items.join(\"\");\n        }\n        return result;\n      };\n      function IndentStringCache(options, baseIndentString) {\n        this.__cache = [\"\"];\n        this.__indent_size = options.indent_size;\n        this.__indent_string = options.indent_char;\n        if (!options.indent_with_tabs) {\n          this.__indent_string = new Array(options.indent_size + 1).join(options.indent_char);\n        }\n        baseIndentString = baseIndentString || \"\";\n        if (options.indent_level > 0) {\n          baseIndentString = new Array(options.indent_level + 1).join(this.__indent_string);\n        }\n        this.__base_string = baseIndentString;\n        this.__base_string_length = baseIndentString.length;\n      }\n      IndentStringCache.prototype.get_indent_size = function(indent, column) {\n        var result = this.__base_string_length;\n        column = column || 0;\n        if (indent < 0) {\n          result = 0;\n        }\n        result += indent * this.__indent_size;\n        result += column;\n        return result;\n      };\n      IndentStringCache.prototype.get_indent_string = function(indent_level, column) {\n        var result = this.__base_string;\n        column = column || 0;\n        if (indent_level < 0) {\n          indent_level = 0;\n          result = \"\";\n        }\n        column += indent_level * this.__indent_size;\n        this.__ensure_cache(column);\n        result += this.__cache[column];\n        return result;\n      };\n      IndentStringCache.prototype.__ensure_cache = function(column) {\n        while (column >= this.__cache.length) {\n          this.__add_column();\n        }\n      };\n      IndentStringCache.prototype.__add_column = function() {\n        var column = this.__cache.length;\n        var indent = 0;\n        var result = \"\";\n        if (this.__indent_size && column >= this.__indent_size) {\n          indent = Math.floor(column / this.__indent_size);\n          column -= indent * this.__indent_size;\n          result = new Array(indent + 1).join(this.__indent_string);\n        }\n        if (column) {\n          result += new Array(column + 1).join(\" \");\n        }\n        this.__cache.push(result);\n      };\n      function Output(options, baseIndentString) {\n        this.__indent_cache = new IndentStringCache(options, baseIndentString);\n        this.raw = false;\n        this._end_with_newline = options.end_with_newline;\n        this.indent_size = options.indent_size;\n        this.wrap_line_length = options.wrap_line_length;\n        this.indent_empty_lines = options.indent_empty_lines;\n        this.__lines = [];\n        this.previous_line = null;\n        this.current_line = null;\n        this.next_line = new OutputLine(this);\n        this.space_before_token = false;\n        this.non_breaking_space = false;\n        this.previous_token_wrapped = false;\n        this.__add_outputline();\n      }\n      Output.prototype.__add_outputline = function() {\n        this.previous_line = this.current_line;\n        this.current_line = this.next_line.clone_empty();\n        this.__lines.push(this.current_line);\n      };\n      Output.prototype.get_line_number = function() {\n        return this.__lines.length;\n      };\n      Output.prototype.get_indent_string = function(indent, column) {\n        return this.__indent_cache.get_indent_string(indent, column);\n      };\n      Output.prototype.get_indent_size = function(indent, column) {\n        return this.__indent_cache.get_indent_size(indent, column);\n      };\n      Output.prototype.is_empty = function() {\n        return !this.previous_line && this.current_line.is_empty();\n      };\n      Output.prototype.add_new_line = function(force_newline) {\n        if (this.is_empty() || !force_newline && this.just_added_newline()) {\n          return false;\n        }\n        if (!this.raw) {\n          this.__add_outputline();\n        }\n        return true;\n      };\n      Output.prototype.get_code = function(eol) {\n        this.trim(true);\n        var last_item = this.current_line.pop();\n        if (last_item) {\n          if (last_item[last_item.length - 1] === \"\\n\") {\n            last_item = last_item.replace(/\\n+$/g, \"\");\n          }\n          this.current_line.push(last_item);\n        }\n        if (this._end_with_newline) {\n          this.__add_outputline();\n        }\n        var sweet_code = this.__lines.join(\"\\n\");\n        if (eol !== \"\\n\") {\n          sweet_code = sweet_code.replace(/[\\n]/g, eol);\n        }\n        return sweet_code;\n      };\n      Output.prototype.set_wrap_point = function() {\n        this.current_line._set_wrap_point();\n      };\n      Output.prototype.set_indent = function(indent, alignment) {\n        indent = indent || 0;\n        alignment = alignment || 0;\n        this.next_line.set_indent(indent, alignment);\n        if (this.__lines.length > 1) {\n          this.current_line.set_indent(indent, alignment);\n          return true;\n        }\n        this.current_line.set_indent();\n        return false;\n      };\n      Output.prototype.add_raw_token = function(token) {\n        for (var x = 0; x < token.newlines; x++) {\n          this.__add_outputline();\n        }\n        this.current_line.set_indent(-1);\n        this.current_line.push(token.whitespace_before);\n        this.current_line.push(token.text);\n        this.space_before_token = false;\n        this.non_breaking_space = false;\n        this.previous_token_wrapped = false;\n      };\n      Output.prototype.add_token = function(printable_token) {\n        this.__add_space_before_token();\n        this.current_line.push(printable_token);\n        this.space_before_token = false;\n        this.non_breaking_space = false;\n        this.previous_token_wrapped = this.current_line._allow_wrap();\n      };\n      Output.prototype.__add_space_before_token = function() {\n        if (this.space_before_token && !this.just_added_newline()) {\n          if (!this.non_breaking_space) {\n            this.set_wrap_point();\n          }\n          this.current_line.push(\" \");\n        }\n      };\n      Output.prototype.remove_indent = function(index) {\n        var output_length = this.__lines.length;\n        while (index < output_length) {\n          this.__lines[index]._remove_indent();\n          index++;\n        }\n        this.current_line._remove_wrap_indent();\n      };\n      Output.prototype.trim = function(eat_newlines) {\n        eat_newlines = eat_newlines === void 0 ? false : eat_newlines;\n        this.current_line.trim();\n        while (eat_newlines && this.__lines.length > 1 && this.current_line.is_empty()) {\n          this.__lines.pop();\n          this.current_line = this.__lines[this.__lines.length - 1];\n          this.current_line.trim();\n        }\n        this.previous_line = this.__lines.length > 1 ? this.__lines[this.__lines.length - 2] : null;\n      };\n      Output.prototype.just_added_newline = function() {\n        return this.current_line.is_empty();\n      };\n      Output.prototype.just_added_blankline = function() {\n        return this.is_empty() || this.current_line.is_empty() && this.previous_line.is_empty();\n      };\n      Output.prototype.ensure_empty_line_above = function(starts_with, ends_with) {\n        var index = this.__lines.length - 2;\n        while (index >= 0) {\n          var potentialEmptyLine = this.__lines[index];\n          if (potentialEmptyLine.is_empty()) {\n            break;\n          } else if (potentialEmptyLine.item(0).indexOf(starts_with) !== 0 && potentialEmptyLine.item(-1) !== ends_with) {\n            this.__lines.splice(index + 1, 0, new OutputLine(this));\n            this.previous_line = this.__lines[this.__lines.length - 2];\n            break;\n          }\n          index--;\n        }\n      };\n      module.exports.Output = Output;\n    },\n    /* 3 */\n    /***/\n    function(module) {\n      function Token(type, text, newlines, whitespace_before) {\n        this.type = type;\n        this.text = text;\n        this.comments_before = null;\n        this.newlines = newlines || 0;\n        this.whitespace_before = whitespace_before || \"\";\n        this.parent = null;\n        this.next = null;\n        this.previous = null;\n        this.opened = null;\n        this.closed = null;\n        this.directives = null;\n      }\n      module.exports.Token = Token;\n    },\n    ,\n    ,\n    /* 6 */\n    /***/\n    function(module) {\n      function Options(options, merge_child_field) {\n        this.raw_options = _mergeOpts(options, merge_child_field);\n        this.disabled = this._get_boolean(\"disabled\");\n        this.eol = this._get_characters(\"eol\", \"auto\");\n        this.end_with_newline = this._get_boolean(\"end_with_newline\");\n        this.indent_size = this._get_number(\"indent_size\", 4);\n        this.indent_char = this._get_characters(\"indent_char\", \" \");\n        this.indent_level = this._get_number(\"indent_level\");\n        this.preserve_newlines = this._get_boolean(\"preserve_newlines\", true);\n        this.max_preserve_newlines = this._get_number(\"max_preserve_newlines\", 32786);\n        if (!this.preserve_newlines) {\n          this.max_preserve_newlines = 0;\n        }\n        this.indent_with_tabs = this._get_boolean(\"indent_with_tabs\", this.indent_char === \"\t\");\n        if (this.indent_with_tabs) {\n          this.indent_char = \"\t\";\n          if (this.indent_size === 1) {\n            this.indent_size = 4;\n          }\n        }\n        this.wrap_line_length = this._get_number(\"wrap_line_length\", this._get_number(\"max_char\"));\n        this.indent_empty_lines = this._get_boolean(\"indent_empty_lines\");\n        this.templating = this._get_selection_list(\"templating\", [\"auto\", \"none\", \"angular\", \"django\", \"erb\", \"handlebars\", \"php\", \"smarty\"], [\"auto\"]);\n      }\n      Options.prototype._get_array = function(name, default_value) {\n        var option_value = this.raw_options[name];\n        var result = default_value || [];\n        if (typeof option_value === \"object\") {\n          if (option_value !== null && typeof option_value.concat === \"function\") {\n            result = option_value.concat();\n          }\n        } else if (typeof option_value === \"string\") {\n          result = option_value.split(/[^a-zA-Z0-9_\\/\\-]+/);\n        }\n        return result;\n      };\n      Options.prototype._get_boolean = function(name, default_value) {\n        var option_value = this.raw_options[name];\n        var result = option_value === void 0 ? !!default_value : !!option_value;\n        return result;\n      };\n      Options.prototype._get_characters = function(name, default_value) {\n        var option_value = this.raw_options[name];\n        var result = default_value || \"\";\n        if (typeof option_value === \"string\") {\n          result = option_value.replace(/\\\\r/, \"\\r\").replace(/\\\\n/, \"\\n\").replace(/\\\\t/, \"\t\");\n        }\n        return result;\n      };\n      Options.prototype._get_number = function(name, default_value) {\n        var option_value = this.raw_options[name];\n        default_value = parseInt(default_value, 10);\n        if (isNaN(default_value)) {\n          default_value = 0;\n        }\n        var result = parseInt(option_value, 10);\n        if (isNaN(result)) {\n          result = default_value;\n        }\n        return result;\n      };\n      Options.prototype._get_selection = function(name, selection_list, default_value) {\n        var result = this._get_selection_list(name, selection_list, default_value);\n        if (result.length !== 1) {\n          throw new Error(\n            \"Invalid Option Value: The option '\" + name + \"' can only be one of the following values:\\n\" + selection_list + \"\\nYou passed in: '\" + this.raw_options[name] + \"'\"\n          );\n        }\n        return result[0];\n      };\n      Options.prototype._get_selection_list = function(name, selection_list, default_value) {\n        if (!selection_list || selection_list.length === 0) {\n          throw new Error(\"Selection list cannot be empty.\");\n        }\n        default_value = default_value || [selection_list[0]];\n        if (!this._is_valid_selection(default_value, selection_list)) {\n          throw new Error(\"Invalid Default Value!\");\n        }\n        var result = this._get_array(name, default_value);\n        if (!this._is_valid_selection(result, selection_list)) {\n          throw new Error(\n            \"Invalid Option Value: The option '\" + name + \"' can contain only the following values:\\n\" + selection_list + \"\\nYou passed in: '\" + this.raw_options[name] + \"'\"\n          );\n        }\n        return result;\n      };\n      Options.prototype._is_valid_selection = function(result, selection_list) {\n        return result.length && selection_list.length && !result.some(function(item) {\n          return selection_list.indexOf(item) === -1;\n        });\n      };\n      function _mergeOpts(allOptions, childFieldName) {\n        var finalOpts = {};\n        allOptions = _normalizeOpts(allOptions);\n        var name;\n        for (name in allOptions) {\n          if (name !== childFieldName) {\n            finalOpts[name] = allOptions[name];\n          }\n        }\n        if (childFieldName && allOptions[childFieldName]) {\n          for (name in allOptions[childFieldName]) {\n            finalOpts[name] = allOptions[childFieldName][name];\n          }\n        }\n        return finalOpts;\n      }\n      function _normalizeOpts(options) {\n        var convertedOpts = {};\n        var key;\n        for (key in options) {\n          var newKey = key.replace(/-/g, \"_\");\n          convertedOpts[newKey] = options[key];\n        }\n        return convertedOpts;\n      }\n      module.exports.Options = Options;\n      module.exports.normalizeOpts = _normalizeOpts;\n      module.exports.mergeOpts = _mergeOpts;\n    },\n    ,\n    /* 8 */\n    /***/\n    function(module) {\n      var regexp_has_sticky = RegExp.prototype.hasOwnProperty(\"sticky\");\n      function InputScanner(input_string) {\n        this.__input = input_string || \"\";\n        this.__input_length = this.__input.length;\n        this.__position = 0;\n      }\n      InputScanner.prototype.restart = function() {\n        this.__position = 0;\n      };\n      InputScanner.prototype.back = function() {\n        if (this.__position > 0) {\n          this.__position -= 1;\n        }\n      };\n      InputScanner.prototype.hasNext = function() {\n        return this.__position < this.__input_length;\n      };\n      InputScanner.prototype.next = function() {\n        var val = null;\n        if (this.hasNext()) {\n          val = this.__input.charAt(this.__position);\n          this.__position += 1;\n        }\n        return val;\n      };\n      InputScanner.prototype.peek = function(index) {\n        var val = null;\n        index = index || 0;\n        index += this.__position;\n        if (index >= 0 && index < this.__input_length) {\n          val = this.__input.charAt(index);\n        }\n        return val;\n      };\n      InputScanner.prototype.__match = function(pattern, index) {\n        pattern.lastIndex = index;\n        var pattern_match = pattern.exec(this.__input);\n        if (pattern_match && !(regexp_has_sticky && pattern.sticky)) {\n          if (pattern_match.index !== index) {\n            pattern_match = null;\n          }\n        }\n        return pattern_match;\n      };\n      InputScanner.prototype.test = function(pattern, index) {\n        index = index || 0;\n        index += this.__position;\n        if (index >= 0 && index < this.__input_length) {\n          return !!this.__match(pattern, index);\n        } else {\n          return false;\n        }\n      };\n      InputScanner.prototype.testChar = function(pattern, index) {\n        var val = this.peek(index);\n        pattern.lastIndex = 0;\n        return val !== null && pattern.test(val);\n      };\n      InputScanner.prototype.match = function(pattern) {\n        var pattern_match = this.__match(pattern, this.__position);\n        if (pattern_match) {\n          this.__position += pattern_match[0].length;\n        } else {\n          pattern_match = null;\n        }\n        return pattern_match;\n      };\n      InputScanner.prototype.read = function(starting_pattern, until_pattern, until_after) {\n        var val = \"\";\n        var match;\n        if (starting_pattern) {\n          match = this.match(starting_pattern);\n          if (match) {\n            val += match[0];\n          }\n        }\n        if (until_pattern && (match || !starting_pattern)) {\n          val += this.readUntil(until_pattern, until_after);\n        }\n        return val;\n      };\n      InputScanner.prototype.readUntil = function(pattern, until_after) {\n        var val = \"\";\n        var match_index = this.__position;\n        pattern.lastIndex = this.__position;\n        var pattern_match = pattern.exec(this.__input);\n        if (pattern_match) {\n          match_index = pattern_match.index;\n          if (until_after) {\n            match_index += pattern_match[0].length;\n          }\n        } else {\n          match_index = this.__input_length;\n        }\n        val = this.__input.substring(this.__position, match_index);\n        this.__position = match_index;\n        return val;\n      };\n      InputScanner.prototype.readUntilAfter = function(pattern) {\n        return this.readUntil(pattern, true);\n      };\n      InputScanner.prototype.get_regexp = function(pattern, match_from) {\n        var result = null;\n        var flags = \"g\";\n        if (match_from && regexp_has_sticky) {\n          flags = \"y\";\n        }\n        if (typeof pattern === \"string\" && pattern !== \"\") {\n          result = new RegExp(pattern, flags);\n        } else if (pattern) {\n          result = new RegExp(pattern.source, flags);\n        }\n        return result;\n      };\n      InputScanner.prototype.get_literal_regexp = function(literal_string) {\n        return RegExp(literal_string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\"));\n      };\n      InputScanner.prototype.peekUntilAfter = function(pattern) {\n        var start = this.__position;\n        var val = this.readUntilAfter(pattern);\n        this.__position = start;\n        return val;\n      };\n      InputScanner.prototype.lookBack = function(testVal) {\n        var start = this.__position - 1;\n        return start >= testVal.length && this.__input.substring(start - testVal.length, start).toLowerCase() === testVal;\n      };\n      module.exports.InputScanner = InputScanner;\n    },\n    /* 9 */\n    /***/\n    function(module, __unused_webpack_exports, __webpack_require__2) {\n      var InputScanner = __webpack_require__2(8).InputScanner;\n      var Token = __webpack_require__2(3).Token;\n      var TokenStream = __webpack_require__2(10).TokenStream;\n      var WhitespacePattern = __webpack_require__2(11).WhitespacePattern;\n      var TOKEN = {\n        START: \"TK_START\",\n        RAW: \"TK_RAW\",\n        EOF: \"TK_EOF\"\n      };\n      var Tokenizer = function(input_string, options) {\n        this._input = new InputScanner(input_string);\n        this._options = options || {};\n        this.__tokens = null;\n        this._patterns = {};\n        this._patterns.whitespace = new WhitespacePattern(this._input);\n      };\n      Tokenizer.prototype.tokenize = function() {\n        this._input.restart();\n        this.__tokens = new TokenStream();\n        this._reset();\n        var current;\n        var previous = new Token(TOKEN.START, \"\");\n        var open_token = null;\n        var open_stack = [];\n        var comments = new TokenStream();\n        while (previous.type !== TOKEN.EOF) {\n          current = this._get_next_token(previous, open_token);\n          while (this._is_comment(current)) {\n            comments.add(current);\n            current = this._get_next_token(previous, open_token);\n          }\n          if (!comments.isEmpty()) {\n            current.comments_before = comments;\n            comments = new TokenStream();\n          }\n          current.parent = open_token;\n          if (this._is_opening(current)) {\n            open_stack.push(open_token);\n            open_token = current;\n          } else if (open_token && this._is_closing(current, open_token)) {\n            current.opened = open_token;\n            open_token.closed = current;\n            open_token = open_stack.pop();\n            current.parent = open_token;\n          }\n          current.previous = previous;\n          previous.next = current;\n          this.__tokens.add(current);\n          previous = current;\n        }\n        return this.__tokens;\n      };\n      Tokenizer.prototype._is_first_token = function() {\n        return this.__tokens.isEmpty();\n      };\n      Tokenizer.prototype._reset = function() {\n      };\n      Tokenizer.prototype._get_next_token = function(previous_token, open_token) {\n        this._readWhitespace();\n        var resulting_string = this._input.read(/.+/g);\n        if (resulting_string) {\n          return this._create_token(TOKEN.RAW, resulting_string);\n        } else {\n          return this._create_token(TOKEN.EOF, \"\");\n        }\n      };\n      Tokenizer.prototype._is_comment = function(current_token) {\n        return false;\n      };\n      Tokenizer.prototype._is_opening = function(current_token) {\n        return false;\n      };\n      Tokenizer.prototype._is_closing = function(current_token, open_token) {\n        return false;\n      };\n      Tokenizer.prototype._create_token = function(type, text) {\n        var token = new Token(\n          type,\n          text,\n          this._patterns.whitespace.newline_count,\n          this._patterns.whitespace.whitespace_before_token\n        );\n        return token;\n      };\n      Tokenizer.prototype._readWhitespace = function() {\n        return this._patterns.whitespace.read();\n      };\n      module.exports.Tokenizer = Tokenizer;\n      module.exports.TOKEN = TOKEN;\n    },\n    /* 10 */\n    /***/\n    function(module) {\n      function TokenStream(parent_token) {\n        this.__tokens = [];\n        this.__tokens_length = this.__tokens.length;\n        this.__position = 0;\n        this.__parent_token = parent_token;\n      }\n      TokenStream.prototype.restart = function() {\n        this.__position = 0;\n      };\n      TokenStream.prototype.isEmpty = function() {\n        return this.__tokens_length === 0;\n      };\n      TokenStream.prototype.hasNext = function() {\n        return this.__position < this.__tokens_length;\n      };\n      TokenStream.prototype.next = function() {\n        var val = null;\n        if (this.hasNext()) {\n          val = this.__tokens[this.__position];\n          this.__position += 1;\n        }\n        return val;\n      };\n      TokenStream.prototype.peek = function(index) {\n        var val = null;\n        index = index || 0;\n        index += this.__position;\n        if (index >= 0 && index < this.__tokens_length) {\n          val = this.__tokens[index];\n        }\n        return val;\n      };\n      TokenStream.prototype.add = function(token) {\n        if (this.__parent_token) {\n          token.parent = this.__parent_token;\n        }\n        this.__tokens.push(token);\n        this.__tokens_length += 1;\n      };\n      module.exports.TokenStream = TokenStream;\n    },\n    /* 11 */\n    /***/\n    function(module, __unused_webpack_exports, __webpack_require__2) {\n      var Pattern = __webpack_require__2(12).Pattern;\n      function WhitespacePattern(input_scanner, parent) {\n        Pattern.call(this, input_scanner, parent);\n        if (parent) {\n          this._line_regexp = this._input.get_regexp(parent._line_regexp);\n        } else {\n          this.__set_whitespace_patterns(\"\", \"\");\n        }\n        this.newline_count = 0;\n        this.whitespace_before_token = \"\";\n      }\n      WhitespacePattern.prototype = new Pattern();\n      WhitespacePattern.prototype.__set_whitespace_patterns = function(whitespace_chars, newline_chars) {\n        whitespace_chars += \"\\\\t \";\n        newline_chars += \"\\\\n\\\\r\";\n        this._match_pattern = this._input.get_regexp(\n          \"[\" + whitespace_chars + newline_chars + \"]+\",\n          true\n        );\n        this._newline_regexp = this._input.get_regexp(\n          \"\\\\r\\\\n|[\" + newline_chars + \"]\"\n        );\n      };\n      WhitespacePattern.prototype.read = function() {\n        this.newline_count = 0;\n        this.whitespace_before_token = \"\";\n        var resulting_string = this._input.read(this._match_pattern);\n        if (resulting_string === \" \") {\n          this.whitespace_before_token = \" \";\n        } else if (resulting_string) {\n          var matches = this.__split(this._newline_regexp, resulting_string);\n          this.newline_count = matches.length - 1;\n          this.whitespace_before_token = matches[this.newline_count];\n        }\n        return resulting_string;\n      };\n      WhitespacePattern.prototype.matching = function(whitespace_chars, newline_chars) {\n        var result = this._create();\n        result.__set_whitespace_patterns(whitespace_chars, newline_chars);\n        result._update();\n        return result;\n      };\n      WhitespacePattern.prototype._create = function() {\n        return new WhitespacePattern(this._input, this);\n      };\n      WhitespacePattern.prototype.__split = function(regexp, input_string) {\n        regexp.lastIndex = 0;\n        var start_index = 0;\n        var result = [];\n        var next_match = regexp.exec(input_string);\n        while (next_match) {\n          result.push(input_string.substring(start_index, next_match.index));\n          start_index = next_match.index + next_match[0].length;\n          next_match = regexp.exec(input_string);\n        }\n        if (start_index < input_string.length) {\n          result.push(input_string.substring(start_index, input_string.length));\n        } else {\n          result.push(\"\");\n        }\n        return result;\n      };\n      module.exports.WhitespacePattern = WhitespacePattern;\n    },\n    /* 12 */\n    /***/\n    function(module) {\n      function Pattern(input_scanner, parent) {\n        this._input = input_scanner;\n        this._starting_pattern = null;\n        this._match_pattern = null;\n        this._until_pattern = null;\n        this._until_after = false;\n        if (parent) {\n          this._starting_pattern = this._input.get_regexp(parent._starting_pattern, true);\n          this._match_pattern = this._input.get_regexp(parent._match_pattern, true);\n          this._until_pattern = this._input.get_regexp(parent._until_pattern);\n          this._until_after = parent._until_after;\n        }\n      }\n      Pattern.prototype.read = function() {\n        var result = this._input.read(this._starting_pattern);\n        if (!this._starting_pattern || result) {\n          result += this._input.read(this._match_pattern, this._until_pattern, this._until_after);\n        }\n        return result;\n      };\n      Pattern.prototype.read_match = function() {\n        return this._input.match(this._match_pattern);\n      };\n      Pattern.prototype.until_after = function(pattern) {\n        var result = this._create();\n        result._until_after = true;\n        result._until_pattern = this._input.get_regexp(pattern);\n        result._update();\n        return result;\n      };\n      Pattern.prototype.until = function(pattern) {\n        var result = this._create();\n        result._until_after = false;\n        result._until_pattern = this._input.get_regexp(pattern);\n        result._update();\n        return result;\n      };\n      Pattern.prototype.starting_with = function(pattern) {\n        var result = this._create();\n        result._starting_pattern = this._input.get_regexp(pattern, true);\n        result._update();\n        return result;\n      };\n      Pattern.prototype.matching = function(pattern) {\n        var result = this._create();\n        result._match_pattern = this._input.get_regexp(pattern, true);\n        result._update();\n        return result;\n      };\n      Pattern.prototype._create = function() {\n        return new Pattern(this._input, this);\n      };\n      Pattern.prototype._update = function() {\n      };\n      module.exports.Pattern = Pattern;\n    },\n    /* 13 */\n    /***/\n    function(module) {\n      function Directives(start_block_pattern, end_block_pattern) {\n        start_block_pattern = typeof start_block_pattern === \"string\" ? start_block_pattern : start_block_pattern.source;\n        end_block_pattern = typeof end_block_pattern === \"string\" ? end_block_pattern : end_block_pattern.source;\n        this.__directives_block_pattern = new RegExp(start_block_pattern + / beautify( \\w+[:]\\w+)+ /.source + end_block_pattern, \"g\");\n        this.__directive_pattern = / (\\w+)[:](\\w+)/g;\n        this.__directives_end_ignore_pattern = new RegExp(start_block_pattern + /\\sbeautify\\signore:end\\s/.source + end_block_pattern, \"g\");\n      }\n      Directives.prototype.get_directives = function(text) {\n        if (!text.match(this.__directives_block_pattern)) {\n          return null;\n        }\n        var directives = {};\n        this.__directive_pattern.lastIndex = 0;\n        var directive_match = this.__directive_pattern.exec(text);\n        while (directive_match) {\n          directives[directive_match[1]] = directive_match[2];\n          directive_match = this.__directive_pattern.exec(text);\n        }\n        return directives;\n      };\n      Directives.prototype.readIgnored = function(input) {\n        return input.readUntilAfter(this.__directives_end_ignore_pattern);\n      };\n      module.exports.Directives = Directives;\n    },\n    /* 14 */\n    /***/\n    function(module, __unused_webpack_exports, __webpack_require__2) {\n      var Pattern = __webpack_require__2(12).Pattern;\n      var template_names = {\n        django: false,\n        erb: false,\n        handlebars: false,\n        php: false,\n        smarty: false,\n        angular: false\n      };\n      function TemplatablePattern(input_scanner, parent) {\n        Pattern.call(this, input_scanner, parent);\n        this.__template_pattern = null;\n        this._disabled = Object.assign({}, template_names);\n        this._excluded = Object.assign({}, template_names);\n        if (parent) {\n          this.__template_pattern = this._input.get_regexp(parent.__template_pattern);\n          this._excluded = Object.assign(this._excluded, parent._excluded);\n          this._disabled = Object.assign(this._disabled, parent._disabled);\n        }\n        var pattern = new Pattern(input_scanner);\n        this.__patterns = {\n          handlebars_comment: pattern.starting_with(/{{!--/).until_after(/--}}/),\n          handlebars_unescaped: pattern.starting_with(/{{{/).until_after(/}}}/),\n          handlebars: pattern.starting_with(/{{/).until_after(/}}/),\n          php: pattern.starting_with(/<\\?(?:[= ]|php)/).until_after(/\\?>/),\n          erb: pattern.starting_with(/<%[^%]/).until_after(/[^%]%>/),\n          // django coflicts with handlebars a bit.\n          django: pattern.starting_with(/{%/).until_after(/%}/),\n          django_value: pattern.starting_with(/{{/).until_after(/}}/),\n          django_comment: pattern.starting_with(/{#/).until_after(/#}/),\n          smarty: pattern.starting_with(/{(?=[^}{\\s\\n])/).until_after(/[^\\s\\n]}/),\n          smarty_comment: pattern.starting_with(/{\\*/).until_after(/\\*}/),\n          smarty_literal: pattern.starting_with(/{literal}/).until_after(/{\\/literal}/)\n        };\n      }\n      TemplatablePattern.prototype = new Pattern();\n      TemplatablePattern.prototype._create = function() {\n        return new TemplatablePattern(this._input, this);\n      };\n      TemplatablePattern.prototype._update = function() {\n        this.__set_templated_pattern();\n      };\n      TemplatablePattern.prototype.disable = function(language) {\n        var result = this._create();\n        result._disabled[language] = true;\n        result._update();\n        return result;\n      };\n      TemplatablePattern.prototype.read_options = function(options) {\n        var result = this._create();\n        for (var language in template_names) {\n          result._disabled[language] = options.templating.indexOf(language) === -1;\n        }\n        result._update();\n        return result;\n      };\n      TemplatablePattern.prototype.exclude = function(language) {\n        var result = this._create();\n        result._excluded[language] = true;\n        result._update();\n        return result;\n      };\n      TemplatablePattern.prototype.read = function() {\n        var result = \"\";\n        if (this._match_pattern) {\n          result = this._input.read(this._starting_pattern);\n        } else {\n          result = this._input.read(this._starting_pattern, this.__template_pattern);\n        }\n        var next = this._read_template();\n        while (next) {\n          if (this._match_pattern) {\n            next += this._input.read(this._match_pattern);\n          } else {\n            next += this._input.readUntil(this.__template_pattern);\n          }\n          result += next;\n          next = this._read_template();\n        }\n        if (this._until_after) {\n          result += this._input.readUntilAfter(this._until_pattern);\n        }\n        return result;\n      };\n      TemplatablePattern.prototype.__set_templated_pattern = function() {\n        var items = [];\n        if (!this._disabled.php) {\n          items.push(this.__patterns.php._starting_pattern.source);\n        }\n        if (!this._disabled.handlebars) {\n          items.push(this.__patterns.handlebars._starting_pattern.source);\n        }\n        if (!this._disabled.erb) {\n          items.push(this.__patterns.erb._starting_pattern.source);\n        }\n        if (!this._disabled.django) {\n          items.push(this.__patterns.django._starting_pattern.source);\n          items.push(this.__patterns.django_value._starting_pattern.source);\n          items.push(this.__patterns.django_comment._starting_pattern.source);\n        }\n        if (!this._disabled.smarty) {\n          items.push(this.__patterns.smarty._starting_pattern.source);\n        }\n        if (this._until_pattern) {\n          items.push(this._until_pattern.source);\n        }\n        this.__template_pattern = this._input.get_regexp(\"(?:\" + items.join(\"|\") + \")\");\n      };\n      TemplatablePattern.prototype._read_template = function() {\n        var resulting_string = \"\";\n        var c = this._input.peek();\n        if (c === \"<\") {\n          var peek1 = this._input.peek(1);\n          if (!this._disabled.php && !this._excluded.php && peek1 === \"?\") {\n            resulting_string = resulting_string || this.__patterns.php.read();\n          }\n          if (!this._disabled.erb && !this._excluded.erb && peek1 === \"%\") {\n            resulting_string = resulting_string || this.__patterns.erb.read();\n          }\n        } else if (c === \"{\") {\n          if (!this._disabled.handlebars && !this._excluded.handlebars) {\n            resulting_string = resulting_string || this.__patterns.handlebars_comment.read();\n            resulting_string = resulting_string || this.__patterns.handlebars_unescaped.read();\n            resulting_string = resulting_string || this.__patterns.handlebars.read();\n          }\n          if (!this._disabled.django) {\n            if (!this._excluded.django && !this._excluded.handlebars) {\n              resulting_string = resulting_string || this.__patterns.django_value.read();\n            }\n            if (!this._excluded.django) {\n              resulting_string = resulting_string || this.__patterns.django_comment.read();\n              resulting_string = resulting_string || this.__patterns.django.read();\n            }\n          }\n          if (!this._disabled.smarty) {\n            if (this._disabled.django && this._disabled.handlebars) {\n              resulting_string = resulting_string || this.__patterns.smarty_comment.read();\n              resulting_string = resulting_string || this.__patterns.smarty_literal.read();\n              resulting_string = resulting_string || this.__patterns.smarty.read();\n            }\n          }\n        }\n        return resulting_string;\n      };\n      module.exports.TemplatablePattern = TemplatablePattern;\n    },\n    ,\n    ,\n    ,\n    /* 18 */\n    /***/\n    function(module, __unused_webpack_exports, __webpack_require__2) {\n      var Beautifier = __webpack_require__2(19).Beautifier, Options = __webpack_require__2(20).Options;\n      function style_html(html_source, options, js_beautify2, css_beautify2) {\n        var beautifier = new Beautifier(html_source, options, js_beautify2, css_beautify2);\n        return beautifier.beautify();\n      }\n      module.exports = style_html;\n      module.exports.defaultOptions = function() {\n        return new Options();\n      };\n    },\n    /* 19 */\n    /***/\n    function(module, __unused_webpack_exports, __webpack_require__2) {\n      var Options = __webpack_require__2(20).Options;\n      var Output = __webpack_require__2(2).Output;\n      var Tokenizer = __webpack_require__2(21).Tokenizer;\n      var TOKEN = __webpack_require__2(21).TOKEN;\n      var lineBreak = /\\r\\n|[\\r\\n]/;\n      var allLineBreaks = /\\r\\n|[\\r\\n]/g;\n      var Printer = function(options, base_indent_string) {\n        this.indent_level = 0;\n        this.alignment_size = 0;\n        this.max_preserve_newlines = options.max_preserve_newlines;\n        this.preserve_newlines = options.preserve_newlines;\n        this._output = new Output(options, base_indent_string);\n      };\n      Printer.prototype.current_line_has_match = function(pattern) {\n        return this._output.current_line.has_match(pattern);\n      };\n      Printer.prototype.set_space_before_token = function(value, non_breaking) {\n        this._output.space_before_token = value;\n        this._output.non_breaking_space = non_breaking;\n      };\n      Printer.prototype.set_wrap_point = function() {\n        this._output.set_indent(this.indent_level, this.alignment_size);\n        this._output.set_wrap_point();\n      };\n      Printer.prototype.add_raw_token = function(token) {\n        this._output.add_raw_token(token);\n      };\n      Printer.prototype.print_preserved_newlines = function(raw_token) {\n        var newlines = 0;\n        if (raw_token.type !== TOKEN.TEXT && raw_token.previous.type !== TOKEN.TEXT) {\n          newlines = raw_token.newlines ? 1 : 0;\n        }\n        if (this.preserve_newlines) {\n          newlines = raw_token.newlines < this.max_preserve_newlines + 1 ? raw_token.newlines : this.max_preserve_newlines + 1;\n        }\n        for (var n = 0; n < newlines; n++) {\n          this.print_newline(n > 0);\n        }\n        return newlines !== 0;\n      };\n      Printer.prototype.traverse_whitespace = function(raw_token) {\n        if (raw_token.whitespace_before || raw_token.newlines) {\n          if (!this.print_preserved_newlines(raw_token)) {\n            this._output.space_before_token = true;\n          }\n          return true;\n        }\n        return false;\n      };\n      Printer.prototype.previous_token_wrapped = function() {\n        return this._output.previous_token_wrapped;\n      };\n      Printer.prototype.print_newline = function(force) {\n        this._output.add_new_line(force);\n      };\n      Printer.prototype.print_token = function(token) {\n        if (token.text) {\n          this._output.set_indent(this.indent_level, this.alignment_size);\n          this._output.add_token(token.text);\n        }\n      };\n      Printer.prototype.indent = function() {\n        this.indent_level++;\n      };\n      Printer.prototype.deindent = function() {\n        if (this.indent_level > 0) {\n          this.indent_level--;\n          this._output.set_indent(this.indent_level, this.alignment_size);\n        }\n      };\n      Printer.prototype.get_full_indent = function(level) {\n        level = this.indent_level + (level || 0);\n        if (level < 1) {\n          return \"\";\n        }\n        return this._output.get_indent_string(level);\n      };\n      var get_type_attribute = function(start_token) {\n        var result = null;\n        var raw_token = start_token.next;\n        while (raw_token.type !== TOKEN.EOF && start_token.closed !== raw_token) {\n          if (raw_token.type === TOKEN.ATTRIBUTE && raw_token.text === \"type\") {\n            if (raw_token.next && raw_token.next.type === TOKEN.EQUALS && raw_token.next.next && raw_token.next.next.type === TOKEN.VALUE) {\n              result = raw_token.next.next.text;\n            }\n            break;\n          }\n          raw_token = raw_token.next;\n        }\n        return result;\n      };\n      var get_custom_beautifier_name = function(tag_check, raw_token) {\n        var typeAttribute = null;\n        var result = null;\n        if (!raw_token.closed) {\n          return null;\n        }\n        if (tag_check === \"script\") {\n          typeAttribute = \"text/javascript\";\n        } else if (tag_check === \"style\") {\n          typeAttribute = \"text/css\";\n        }\n        typeAttribute = get_type_attribute(raw_token) || typeAttribute;\n        if (typeAttribute.search(\"text/css\") > -1) {\n          result = \"css\";\n        } else if (typeAttribute.search(/module|((text|application|dojo)\\/(x-)?(javascript|ecmascript|jscript|livescript|(ld\\+)?json|method|aspect))/) > -1) {\n          result = \"javascript\";\n        } else if (typeAttribute.search(/(text|application|dojo)\\/(x-)?(html)/) > -1) {\n          result = \"html\";\n        } else if (typeAttribute.search(/test\\/null/) > -1) {\n          result = \"null\";\n        }\n        return result;\n      };\n      function in_array(what, arr) {\n        return arr.indexOf(what) !== -1;\n      }\n      function TagFrame(parent, parser_token, indent_level) {\n        this.parent = parent || null;\n        this.tag = parser_token ? parser_token.tag_name : \"\";\n        this.indent_level = indent_level || 0;\n        this.parser_token = parser_token || null;\n      }\n      function TagStack(printer) {\n        this._printer = printer;\n        this._current_frame = null;\n      }\n      TagStack.prototype.get_parser_token = function() {\n        return this._current_frame ? this._current_frame.parser_token : null;\n      };\n      TagStack.prototype.record_tag = function(parser_token) {\n        var new_frame = new TagFrame(this._current_frame, parser_token, this._printer.indent_level);\n        this._current_frame = new_frame;\n      };\n      TagStack.prototype._try_pop_frame = function(frame) {\n        var parser_token = null;\n        if (frame) {\n          parser_token = frame.parser_token;\n          this._printer.indent_level = frame.indent_level;\n          this._current_frame = frame.parent;\n        }\n        return parser_token;\n      };\n      TagStack.prototype._get_frame = function(tag_list, stop_list) {\n        var frame = this._current_frame;\n        while (frame) {\n          if (tag_list.indexOf(frame.tag) !== -1) {\n            break;\n          } else if (stop_list && stop_list.indexOf(frame.tag) !== -1) {\n            frame = null;\n            break;\n          }\n          frame = frame.parent;\n        }\n        return frame;\n      };\n      TagStack.prototype.try_pop = function(tag, stop_list) {\n        var frame = this._get_frame([tag], stop_list);\n        return this._try_pop_frame(frame);\n      };\n      TagStack.prototype.indent_to_tag = function(tag_list) {\n        var frame = this._get_frame(tag_list);\n        if (frame) {\n          this._printer.indent_level = frame.indent_level;\n        }\n      };\n      function Beautifier(source_text, options, js_beautify2, css_beautify2) {\n        this._source_text = source_text || \"\";\n        options = options || {};\n        this._js_beautify = js_beautify2;\n        this._css_beautify = css_beautify2;\n        this._tag_stack = null;\n        var optionHtml = new Options(options, \"html\");\n        this._options = optionHtml;\n        this._is_wrap_attributes_force = this._options.wrap_attributes.substr(0, \"force\".length) === \"force\";\n        this._is_wrap_attributes_force_expand_multiline = this._options.wrap_attributes === \"force-expand-multiline\";\n        this._is_wrap_attributes_force_aligned = this._options.wrap_attributes === \"force-aligned\";\n        this._is_wrap_attributes_aligned_multiple = this._options.wrap_attributes === \"aligned-multiple\";\n        this._is_wrap_attributes_preserve = this._options.wrap_attributes.substr(0, \"preserve\".length) === \"preserve\";\n        this._is_wrap_attributes_preserve_aligned = this._options.wrap_attributes === \"preserve-aligned\";\n      }\n      Beautifier.prototype.beautify = function() {\n        if (this._options.disabled) {\n          return this._source_text;\n        }\n        var source_text = this._source_text;\n        var eol = this._options.eol;\n        if (this._options.eol === \"auto\") {\n          eol = \"\\n\";\n          if (source_text && lineBreak.test(source_text)) {\n            eol = source_text.match(lineBreak)[0];\n          }\n        }\n        source_text = source_text.replace(allLineBreaks, \"\\n\");\n        var baseIndentString = source_text.match(/^[\\t ]*/)[0];\n        var last_token = {\n          text: \"\",\n          type: \"\"\n        };\n        var last_tag_token = new TagOpenParserToken();\n        var printer = new Printer(this._options, baseIndentString);\n        var tokens = new Tokenizer(source_text, this._options).tokenize();\n        this._tag_stack = new TagStack(printer);\n        var parser_token = null;\n        var raw_token = tokens.next();\n        while (raw_token.type !== TOKEN.EOF) {\n          if (raw_token.type === TOKEN.TAG_OPEN || raw_token.type === TOKEN.COMMENT) {\n            parser_token = this._handle_tag_open(printer, raw_token, last_tag_token, last_token, tokens);\n            last_tag_token = parser_token;\n          } else if (raw_token.type === TOKEN.ATTRIBUTE || raw_token.type === TOKEN.EQUALS || raw_token.type === TOKEN.VALUE || raw_token.type === TOKEN.TEXT && !last_tag_token.tag_complete) {\n            parser_token = this._handle_inside_tag(printer, raw_token, last_tag_token, last_token);\n          } else if (raw_token.type === TOKEN.TAG_CLOSE) {\n            parser_token = this._handle_tag_close(printer, raw_token, last_tag_token);\n          } else if (raw_token.type === TOKEN.TEXT) {\n            parser_token = this._handle_text(printer, raw_token, last_tag_token);\n          } else if (raw_token.type === TOKEN.CONTROL_FLOW_OPEN) {\n            parser_token = this._handle_control_flow_open(printer, raw_token);\n          } else if (raw_token.type === TOKEN.CONTROL_FLOW_CLOSE) {\n            parser_token = this._handle_control_flow_close(printer, raw_token);\n          } else {\n            printer.add_raw_token(raw_token);\n          }\n          last_token = parser_token;\n          raw_token = tokens.next();\n        }\n        var sweet_code = printer._output.get_code(eol);\n        return sweet_code;\n      };\n      Beautifier.prototype._handle_control_flow_open = function(printer, raw_token) {\n        var parser_token = {\n          text: raw_token.text,\n          type: raw_token.type\n        };\n        printer.set_space_before_token(raw_token.newlines || raw_token.whitespace_before !== \"\", true);\n        if (raw_token.newlines) {\n          printer.print_preserved_newlines(raw_token);\n        } else {\n          printer.set_space_before_token(raw_token.newlines || raw_token.whitespace_before !== \"\", true);\n        }\n        printer.print_token(raw_token);\n        printer.indent();\n        return parser_token;\n      };\n      Beautifier.prototype._handle_control_flow_close = function(printer, raw_token) {\n        var parser_token = {\n          text: raw_token.text,\n          type: raw_token.type\n        };\n        printer.deindent();\n        if (raw_token.newlines) {\n          printer.print_preserved_newlines(raw_token);\n        } else {\n          printer.set_space_before_token(raw_token.newlines || raw_token.whitespace_before !== \"\", true);\n        }\n        printer.print_token(raw_token);\n        return parser_token;\n      };\n      Beautifier.prototype._handle_tag_close = function(printer, raw_token, last_tag_token) {\n        var parser_token = {\n          text: raw_token.text,\n          type: raw_token.type\n        };\n        printer.alignment_size = 0;\n        last_tag_token.tag_complete = true;\n        printer.set_space_before_token(raw_token.newlines || raw_token.whitespace_before !== \"\", true);\n        if (last_tag_token.is_unformatted) {\n          printer.add_raw_token(raw_token);\n        } else {\n          if (last_tag_token.tag_start_char === \"<\") {\n            printer.set_space_before_token(raw_token.text[0] === \"/\", true);\n            if (this._is_wrap_attributes_force_expand_multiline && last_tag_token.has_wrapped_attrs) {\n              printer.print_newline(false);\n            }\n          }\n          printer.print_token(raw_token);\n        }\n        if (last_tag_token.indent_content && !(last_tag_token.is_unformatted || last_tag_token.is_content_unformatted)) {\n          printer.indent();\n          last_tag_token.indent_content = false;\n        }\n        if (!last_tag_token.is_inline_element && !(last_tag_token.is_unformatted || last_tag_token.is_content_unformatted)) {\n          printer.set_wrap_point();\n        }\n        return parser_token;\n      };\n      Beautifier.prototype._handle_inside_tag = function(printer, raw_token, last_tag_token, last_token) {\n        var wrapped = last_tag_token.has_wrapped_attrs;\n        var parser_token = {\n          text: raw_token.text,\n          type: raw_token.type\n        };\n        printer.set_space_before_token(raw_token.newlines || raw_token.whitespace_before !== \"\", true);\n        if (last_tag_token.is_unformatted) {\n          printer.add_raw_token(raw_token);\n        } else if (last_tag_token.tag_start_char === \"{\" && raw_token.type === TOKEN.TEXT) {\n          if (printer.print_preserved_newlines(raw_token)) {\n            raw_token.newlines = 0;\n            printer.add_raw_token(raw_token);\n          } else {\n            printer.print_token(raw_token);\n          }\n        } else {\n          if (raw_token.type === TOKEN.ATTRIBUTE) {\n            printer.set_space_before_token(true);\n          } else if (raw_token.type === TOKEN.EQUALS) {\n            printer.set_space_before_token(false);\n          } else if (raw_token.type === TOKEN.VALUE && raw_token.previous.type === TOKEN.EQUALS) {\n            printer.set_space_before_token(false);\n          }\n          if (raw_token.type === TOKEN.ATTRIBUTE && last_tag_token.tag_start_char === \"<\") {\n            if (this._is_wrap_attributes_preserve || this._is_wrap_attributes_preserve_aligned) {\n              printer.traverse_whitespace(raw_token);\n              wrapped = wrapped || raw_token.newlines !== 0;\n            }\n            if (this._is_wrap_attributes_force && last_tag_token.attr_count >= this._options.wrap_attributes_min_attrs && (last_token.type !== TOKEN.TAG_OPEN || // ie. second attribute and beyond\n            this._is_wrap_attributes_force_expand_multiline)) {\n              printer.print_newline(false);\n              wrapped = true;\n            }\n          }\n          printer.print_token(raw_token);\n          wrapped = wrapped || printer.previous_token_wrapped();\n          last_tag_token.has_wrapped_attrs = wrapped;\n        }\n        return parser_token;\n      };\n      Beautifier.prototype._handle_text = function(printer, raw_token, last_tag_token) {\n        var parser_token = {\n          text: raw_token.text,\n          type: \"TK_CONTENT\"\n        };\n        if (last_tag_token.custom_beautifier_name) {\n          this._print_custom_beatifier_text(printer, raw_token, last_tag_token);\n        } else if (last_tag_token.is_unformatted || last_tag_token.is_content_unformatted) {\n          printer.add_raw_token(raw_token);\n        } else {\n          printer.traverse_whitespace(raw_token);\n          printer.print_token(raw_token);\n        }\n        return parser_token;\n      };\n      Beautifier.prototype._print_custom_beatifier_text = function(printer, raw_token, last_tag_token) {\n        var local = this;\n        if (raw_token.text !== \"\") {\n          var text = raw_token.text, _beautifier, script_indent_level = 1, pre = \"\", post = \"\";\n          if (last_tag_token.custom_beautifier_name === \"javascript\" && typeof this._js_beautify === \"function\") {\n            _beautifier = this._js_beautify;\n          } else if (last_tag_token.custom_beautifier_name === \"css\" && typeof this._css_beautify === \"function\") {\n            _beautifier = this._css_beautify;\n          } else if (last_tag_token.custom_beautifier_name === \"html\") {\n            _beautifier = function(html_source, options) {\n              var beautifier = new Beautifier(html_source, options, local._js_beautify, local._css_beautify);\n              return beautifier.beautify();\n            };\n          }\n          if (this._options.indent_scripts === \"keep\") {\n            script_indent_level = 0;\n          } else if (this._options.indent_scripts === \"separate\") {\n            script_indent_level = -printer.indent_level;\n          }\n          var indentation = printer.get_full_indent(script_indent_level);\n          text = text.replace(/\\n[ \\t]*$/, \"\");\n          if (last_tag_token.custom_beautifier_name !== \"html\" && text[0] === \"<\" && text.match(/^(<!--|<!\\[CDATA\\[)/)) {\n            var matched = /^(<!--[^\\n]*|<!\\[CDATA\\[)(\\n?)([ \\t\\n]*)([\\s\\S]*)(-->|]]>)$/.exec(text);\n            if (!matched) {\n              printer.add_raw_token(raw_token);\n              return;\n            }\n            pre = indentation + matched[1] + \"\\n\";\n            text = matched[4];\n            if (matched[5]) {\n              post = indentation + matched[5];\n            }\n            text = text.replace(/\\n[ \\t]*$/, \"\");\n            if (matched[2] || matched[3].indexOf(\"\\n\") !== -1) {\n              matched = matched[3].match(/[ \\t]+$/);\n              if (matched) {\n                raw_token.whitespace_before = matched[0];\n              }\n            }\n          }\n          if (text) {\n            if (_beautifier) {\n              var Child_options = function() {\n                this.eol = \"\\n\";\n              };\n              Child_options.prototype = this._options.raw_options;\n              var child_options = new Child_options();\n              text = _beautifier(indentation + text, child_options);\n            } else {\n              var white = raw_token.whitespace_before;\n              if (white) {\n                text = text.replace(new RegExp(\"\\n(\" + white + \")?\", \"g\"), \"\\n\");\n              }\n              text = indentation + text.replace(/\\n/g, \"\\n\" + indentation);\n            }\n          }\n          if (pre) {\n            if (!text) {\n              text = pre + post;\n            } else {\n              text = pre + text + \"\\n\" + post;\n            }\n          }\n          printer.print_newline(false);\n          if (text) {\n            raw_token.text = text;\n            raw_token.whitespace_before = \"\";\n            raw_token.newlines = 0;\n            printer.add_raw_token(raw_token);\n            printer.print_newline(true);\n          }\n        }\n      };\n      Beautifier.prototype._handle_tag_open = function(printer, raw_token, last_tag_token, last_token, tokens) {\n        var parser_token = this._get_tag_open_token(raw_token);\n        if ((last_tag_token.is_unformatted || last_tag_token.is_content_unformatted) && !last_tag_token.is_empty_element && raw_token.type === TOKEN.TAG_OPEN && !parser_token.is_start_tag) {\n          printer.add_raw_token(raw_token);\n          parser_token.start_tag_token = this._tag_stack.try_pop(parser_token.tag_name);\n        } else {\n          printer.traverse_whitespace(raw_token);\n          this._set_tag_position(printer, raw_token, parser_token, last_tag_token, last_token);\n          if (!parser_token.is_inline_element) {\n            printer.set_wrap_point();\n          }\n          printer.print_token(raw_token);\n        }\n        if (parser_token.is_start_tag && this._is_wrap_attributes_force) {\n          var peek_index = 0;\n          var peek_token;\n          do {\n            peek_token = tokens.peek(peek_index);\n            if (peek_token.type === TOKEN.ATTRIBUTE) {\n              parser_token.attr_count += 1;\n            }\n            peek_index += 1;\n          } while (peek_token.type !== TOKEN.EOF && peek_token.type !== TOKEN.TAG_CLOSE);\n        }\n        if (this._is_wrap_attributes_force_aligned || this._is_wrap_attributes_aligned_multiple || this._is_wrap_attributes_preserve_aligned) {\n          parser_token.alignment_size = raw_token.text.length + 1;\n        }\n        if (!parser_token.tag_complete && !parser_token.is_unformatted) {\n          printer.alignment_size = parser_token.alignment_size;\n        }\n        return parser_token;\n      };\n      var TagOpenParserToken = function(parent, raw_token) {\n        this.parent = parent || null;\n        this.text = \"\";\n        this.type = \"TK_TAG_OPEN\";\n        this.tag_name = \"\";\n        this.is_inline_element = false;\n        this.is_unformatted = false;\n        this.is_content_unformatted = false;\n        this.is_empty_element = false;\n        this.is_start_tag = false;\n        this.is_end_tag = false;\n        this.indent_content = false;\n        this.multiline_content = false;\n        this.custom_beautifier_name = null;\n        this.start_tag_token = null;\n        this.attr_count = 0;\n        this.has_wrapped_attrs = false;\n        this.alignment_size = 0;\n        this.tag_complete = false;\n        this.tag_start_char = \"\";\n        this.tag_check = \"\";\n        if (!raw_token) {\n          this.tag_complete = true;\n        } else {\n          var tag_check_match;\n          this.tag_start_char = raw_token.text[0];\n          this.text = raw_token.text;\n          if (this.tag_start_char === \"<\") {\n            tag_check_match = raw_token.text.match(/^<([^\\s>]*)/);\n            this.tag_check = tag_check_match ? tag_check_match[1] : \"\";\n          } else {\n            tag_check_match = raw_token.text.match(/^{{~?(?:[\\^]|#\\*?)?([^\\s}]+)/);\n            this.tag_check = tag_check_match ? tag_check_match[1] : \"\";\n            if ((raw_token.text.startsWith(\"{{#>\") || raw_token.text.startsWith(\"{{~#>\")) && this.tag_check[0] === \">\") {\n              if (this.tag_check === \">\" && raw_token.next !== null) {\n                this.tag_check = raw_token.next.text.split(\" \")[0];\n              } else {\n                this.tag_check = raw_token.text.split(\">\")[1];\n              }\n            }\n          }\n          this.tag_check = this.tag_check.toLowerCase();\n          if (raw_token.type === TOKEN.COMMENT) {\n            this.tag_complete = true;\n          }\n          this.is_start_tag = this.tag_check.charAt(0) !== \"/\";\n          this.tag_name = !this.is_start_tag ? this.tag_check.substr(1) : this.tag_check;\n          this.is_end_tag = !this.is_start_tag || raw_token.closed && raw_token.closed.text === \"/>\";\n          var handlebar_starts = 2;\n          if (this.tag_start_char === \"{\" && this.text.length >= 3) {\n            if (this.text.charAt(2) === \"~\") {\n              handlebar_starts = 3;\n            }\n          }\n          this.is_end_tag = this.is_end_tag || this.tag_start_char === \"{\" && (this.text.length < 3 || /[^#\\^]/.test(this.text.charAt(handlebar_starts)));\n        }\n      };\n      Beautifier.prototype._get_tag_open_token = function(raw_token) {\n        var parser_token = new TagOpenParserToken(this._tag_stack.get_parser_token(), raw_token);\n        parser_token.alignment_size = this._options.wrap_attributes_indent_size;\n        parser_token.is_end_tag = parser_token.is_end_tag || in_array(parser_token.tag_check, this._options.void_elements);\n        parser_token.is_empty_element = parser_token.tag_complete || parser_token.is_start_tag && parser_token.is_end_tag;\n        parser_token.is_unformatted = !parser_token.tag_complete && in_array(parser_token.tag_check, this._options.unformatted);\n        parser_token.is_content_unformatted = !parser_token.is_empty_element && in_array(parser_token.tag_check, this._options.content_unformatted);\n        parser_token.is_inline_element = in_array(parser_token.tag_name, this._options.inline) || this._options.inline_custom_elements && parser_token.tag_name.includes(\"-\") || parser_token.tag_start_char === \"{\";\n        return parser_token;\n      };\n      Beautifier.prototype._set_tag_position = function(printer, raw_token, parser_token, last_tag_token, last_token) {\n        if (!parser_token.is_empty_element) {\n          if (parser_token.is_end_tag) {\n            parser_token.start_tag_token = this._tag_stack.try_pop(parser_token.tag_name);\n          } else {\n            if (this._do_optional_end_element(parser_token)) {\n              if (!parser_token.is_inline_element) {\n                printer.print_newline(false);\n              }\n            }\n            this._tag_stack.record_tag(parser_token);\n            if ((parser_token.tag_name === \"script\" || parser_token.tag_name === \"style\") && !(parser_token.is_unformatted || parser_token.is_content_unformatted)) {\n              parser_token.custom_beautifier_name = get_custom_beautifier_name(parser_token.tag_check, raw_token);\n            }\n          }\n        }\n        if (in_array(parser_token.tag_check, this._options.extra_liners)) {\n          printer.print_newline(false);\n          if (!printer._output.just_added_blankline()) {\n            printer.print_newline(true);\n          }\n        }\n        if (parser_token.is_empty_element) {\n          if (parser_token.tag_start_char === \"{\" && parser_token.tag_check === \"else\") {\n            this._tag_stack.indent_to_tag([\"if\", \"unless\", \"each\"]);\n            parser_token.indent_content = true;\n            var foundIfOnCurrentLine = printer.current_line_has_match(/{{#if/);\n            if (!foundIfOnCurrentLine) {\n              printer.print_newline(false);\n            }\n          }\n          if (parser_token.tag_name === \"!--\" && last_token.type === TOKEN.TAG_CLOSE && last_tag_token.is_end_tag && parser_token.text.indexOf(\"\\n\") === -1) {\n          } else {\n            if (!(parser_token.is_inline_element || parser_token.is_unformatted)) {\n              printer.print_newline(false);\n            }\n            this._calcluate_parent_multiline(printer, parser_token);\n          }\n        } else if (parser_token.is_end_tag) {\n          var do_end_expand = false;\n          do_end_expand = parser_token.start_tag_token && parser_token.start_tag_token.multiline_content;\n          do_end_expand = do_end_expand || !parser_token.is_inline_element && !(last_tag_token.is_inline_element || last_tag_token.is_unformatted) && !(last_token.type === TOKEN.TAG_CLOSE && parser_token.start_tag_token === last_tag_token) && last_token.type !== \"TK_CONTENT\";\n          if (parser_token.is_content_unformatted || parser_token.is_unformatted) {\n            do_end_expand = false;\n          }\n          if (do_end_expand) {\n            printer.print_newline(false);\n          }\n        } else {\n          parser_token.indent_content = !parser_token.custom_beautifier_name;\n          if (parser_token.tag_start_char === \"<\") {\n            if (parser_token.tag_name === \"html\") {\n              parser_token.indent_content = this._options.indent_inner_html;\n            } else if (parser_token.tag_name === \"head\") {\n              parser_token.indent_content = this._options.indent_head_inner_html;\n            } else if (parser_token.tag_name === \"body\") {\n              parser_token.indent_content = this._options.indent_body_inner_html;\n            }\n          }\n          if (!(parser_token.is_inline_element || parser_token.is_unformatted) && (last_token.type !== \"TK_CONTENT\" || parser_token.is_content_unformatted)) {\n            printer.print_newline(false);\n          }\n          this._calcluate_parent_multiline(printer, parser_token);\n        }\n      };\n      Beautifier.prototype._calcluate_parent_multiline = function(printer, parser_token) {\n        if (parser_token.parent && printer._output.just_added_newline() && !((parser_token.is_inline_element || parser_token.is_unformatted) && parser_token.parent.is_inline_element)) {\n          parser_token.parent.multiline_content = true;\n        }\n      };\n      var p_closers = [\"address\", \"article\", \"aside\", \"blockquote\", \"details\", \"div\", \"dl\", \"fieldset\", \"figcaption\", \"figure\", \"footer\", \"form\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"header\", \"hr\", \"main\", \"menu\", \"nav\", \"ol\", \"p\", \"pre\", \"section\", \"table\", \"ul\"];\n      var p_parent_excludes = [\"a\", \"audio\", \"del\", \"ins\", \"map\", \"noscript\", \"video\"];\n      Beautifier.prototype._do_optional_end_element = function(parser_token) {\n        var result = null;\n        if (parser_token.is_empty_element || !parser_token.is_start_tag || !parser_token.parent) {\n          return;\n        }\n        if (parser_token.tag_name === \"body\") {\n          result = result || this._tag_stack.try_pop(\"head\");\n        } else if (parser_token.tag_name === \"li\") {\n          result = result || this._tag_stack.try_pop(\"li\", [\"ol\", \"ul\", \"menu\"]);\n        } else if (parser_token.tag_name === \"dd\" || parser_token.tag_name === \"dt\") {\n          result = result || this._tag_stack.try_pop(\"dt\", [\"dl\"]);\n          result = result || this._tag_stack.try_pop(\"dd\", [\"dl\"]);\n        } else if (parser_token.parent.tag_name === \"p\" && p_closers.indexOf(parser_token.tag_name) !== -1) {\n          var p_parent = parser_token.parent.parent;\n          if (!p_parent || p_parent_excludes.indexOf(p_parent.tag_name) === -1) {\n            result = result || this._tag_stack.try_pop(\"p\");\n          }\n        } else if (parser_token.tag_name === \"rp\" || parser_token.tag_name === \"rt\") {\n          result = result || this._tag_stack.try_pop(\"rt\", [\"ruby\", \"rtc\"]);\n          result = result || this._tag_stack.try_pop(\"rp\", [\"ruby\", \"rtc\"]);\n        } else if (parser_token.tag_name === \"optgroup\") {\n          result = result || this._tag_stack.try_pop(\"optgroup\", [\"select\"]);\n        } else if (parser_token.tag_name === \"option\") {\n          result = result || this._tag_stack.try_pop(\"option\", [\"select\", \"datalist\", \"optgroup\"]);\n        } else if (parser_token.tag_name === \"colgroup\") {\n          result = result || this._tag_stack.try_pop(\"caption\", [\"table\"]);\n        } else if (parser_token.tag_name === \"thead\") {\n          result = result || this._tag_stack.try_pop(\"caption\", [\"table\"]);\n          result = result || this._tag_stack.try_pop(\"colgroup\", [\"table\"]);\n        } else if (parser_token.tag_name === \"tbody\" || parser_token.tag_name === \"tfoot\") {\n          result = result || this._tag_stack.try_pop(\"caption\", [\"table\"]);\n          result = result || this._tag_stack.try_pop(\"colgroup\", [\"table\"]);\n          result = result || this._tag_stack.try_pop(\"thead\", [\"table\"]);\n          result = result || this._tag_stack.try_pop(\"tbody\", [\"table\"]);\n        } else if (parser_token.tag_name === \"tr\") {\n          result = result || this._tag_stack.try_pop(\"caption\", [\"table\"]);\n          result = result || this._tag_stack.try_pop(\"colgroup\", [\"table\"]);\n          result = result || this._tag_stack.try_pop(\"tr\", [\"table\", \"thead\", \"tbody\", \"tfoot\"]);\n        } else if (parser_token.tag_name === \"th\" || parser_token.tag_name === \"td\") {\n          result = result || this._tag_stack.try_pop(\"td\", [\"table\", \"thead\", \"tbody\", \"tfoot\", \"tr\"]);\n          result = result || this._tag_stack.try_pop(\"th\", [\"table\", \"thead\", \"tbody\", \"tfoot\", \"tr\"]);\n        }\n        parser_token.parent = this._tag_stack.get_parser_token();\n        return result;\n      };\n      module.exports.Beautifier = Beautifier;\n    },\n    /* 20 */\n    /***/\n    function(module, __unused_webpack_exports, __webpack_require__2) {\n      var BaseOptions = __webpack_require__2(6).Options;\n      function Options(options) {\n        BaseOptions.call(this, options, \"html\");\n        if (this.templating.length === 1 && this.templating[0] === \"auto\") {\n          this.templating = [\"django\", \"erb\", \"handlebars\", \"php\"];\n        }\n        this.indent_inner_html = this._get_boolean(\"indent_inner_html\");\n        this.indent_body_inner_html = this._get_boolean(\"indent_body_inner_html\", true);\n        this.indent_head_inner_html = this._get_boolean(\"indent_head_inner_html\", true);\n        this.indent_handlebars = this._get_boolean(\"indent_handlebars\", true);\n        this.wrap_attributes = this._get_selection(\n          \"wrap_attributes\",\n          [\"auto\", \"force\", \"force-aligned\", \"force-expand-multiline\", \"aligned-multiple\", \"preserve\", \"preserve-aligned\"]\n        );\n        this.wrap_attributes_min_attrs = this._get_number(\"wrap_attributes_min_attrs\", 2);\n        this.wrap_attributes_indent_size = this._get_number(\"wrap_attributes_indent_size\", this.indent_size);\n        this.extra_liners = this._get_array(\"extra_liners\", [\"head\", \"body\", \"/html\"]);\n        this.inline = this._get_array(\"inline\", [\n          \"a\",\n          \"abbr\",\n          \"area\",\n          \"audio\",\n          \"b\",\n          \"bdi\",\n          \"bdo\",\n          \"br\",\n          \"button\",\n          \"canvas\",\n          \"cite\",\n          \"code\",\n          \"data\",\n          \"datalist\",\n          \"del\",\n          \"dfn\",\n          \"em\",\n          \"embed\",\n          \"i\",\n          \"iframe\",\n          \"img\",\n          \"input\",\n          \"ins\",\n          \"kbd\",\n          \"keygen\",\n          \"label\",\n          \"map\",\n          \"mark\",\n          \"math\",\n          \"meter\",\n          \"noscript\",\n          \"object\",\n          \"output\",\n          \"progress\",\n          \"q\",\n          \"ruby\",\n          \"s\",\n          \"samp\",\n          /* 'script', */\n          \"select\",\n          \"small\",\n          \"span\",\n          \"strong\",\n          \"sub\",\n          \"sup\",\n          \"svg\",\n          \"template\",\n          \"textarea\",\n          \"time\",\n          \"u\",\n          \"var\",\n          \"video\",\n          \"wbr\",\n          \"text\",\n          // obsolete inline tags\n          \"acronym\",\n          \"big\",\n          \"strike\",\n          \"tt\"\n        ]);\n        this.inline_custom_elements = this._get_boolean(\"inline_custom_elements\", true);\n        this.void_elements = this._get_array(\"void_elements\", [\n          // HTLM void elements - aka self-closing tags - aka singletons\n          // https://www.w3.org/html/wg/drafts/html/master/syntax.html#void-elements\n          \"area\",\n          \"base\",\n          \"br\",\n          \"col\",\n          \"embed\",\n          \"hr\",\n          \"img\",\n          \"input\",\n          \"keygen\",\n          \"link\",\n          \"menuitem\",\n          \"meta\",\n          \"param\",\n          \"source\",\n          \"track\",\n          \"wbr\",\n          // NOTE: Optional tags are too complex for a simple list\n          // they are hard coded in _do_optional_end_element\n          // Doctype and xml elements\n          \"!doctype\",\n          \"?xml\",\n          // obsolete tags\n          // basefont: https://www.computerhope.com/jargon/h/html-basefont-tag.htm\n          // isndex: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/isindex\n          \"basefont\",\n          \"isindex\"\n        ]);\n        this.unformatted = this._get_array(\"unformatted\", []);\n        this.content_unformatted = this._get_array(\"content_unformatted\", [\n          \"pre\",\n          \"textarea\"\n        ]);\n        this.unformatted_content_delimiter = this._get_characters(\"unformatted_content_delimiter\");\n        this.indent_scripts = this._get_selection(\"indent_scripts\", [\"normal\", \"keep\", \"separate\"]);\n      }\n      Options.prototype = new BaseOptions();\n      module.exports.Options = Options;\n    },\n    /* 21 */\n    /***/\n    function(module, __unused_webpack_exports, __webpack_require__2) {\n      var BaseTokenizer = __webpack_require__2(9).Tokenizer;\n      var BASETOKEN = __webpack_require__2(9).TOKEN;\n      var Directives = __webpack_require__2(13).Directives;\n      var TemplatablePattern = __webpack_require__2(14).TemplatablePattern;\n      var Pattern = __webpack_require__2(12).Pattern;\n      var TOKEN = {\n        TAG_OPEN: \"TK_TAG_OPEN\",\n        TAG_CLOSE: \"TK_TAG_CLOSE\",\n        CONTROL_FLOW_OPEN: \"TK_CONTROL_FLOW_OPEN\",\n        CONTROL_FLOW_CLOSE: \"TK_CONTROL_FLOW_CLOSE\",\n        ATTRIBUTE: \"TK_ATTRIBUTE\",\n        EQUALS: \"TK_EQUALS\",\n        VALUE: \"TK_VALUE\",\n        COMMENT: \"TK_COMMENT\",\n        TEXT: \"TK_TEXT\",\n        UNKNOWN: \"TK_UNKNOWN\",\n        START: BASETOKEN.START,\n        RAW: BASETOKEN.RAW,\n        EOF: BASETOKEN.EOF\n      };\n      var directives_core = new Directives(/<\\!--/, /-->/);\n      var Tokenizer = function(input_string, options) {\n        BaseTokenizer.call(this, input_string, options);\n        this._current_tag_name = \"\";\n        var templatable_reader = new TemplatablePattern(this._input).read_options(this._options);\n        var pattern_reader = new Pattern(this._input);\n        this.__patterns = {\n          word: templatable_reader.until(/[\\n\\r\\t <]/),\n          word_control_flow_close_excluded: templatable_reader.until(/[\\n\\r\\t <}]/),\n          single_quote: templatable_reader.until_after(/'/),\n          double_quote: templatable_reader.until_after(/\"/),\n          attribute: templatable_reader.until(/[\\n\\r\\t =>]|\\/>/),\n          element_name: templatable_reader.until(/[\\n\\r\\t >\\/]/),\n          angular_control_flow_start: pattern_reader.matching(/\\@[a-zA-Z]+[^({]*[({]/),\n          handlebars_comment: pattern_reader.starting_with(/{{!--/).until_after(/--}}/),\n          handlebars: pattern_reader.starting_with(/{{/).until_after(/}}/),\n          handlebars_open: pattern_reader.until(/[\\n\\r\\t }]/),\n          handlebars_raw_close: pattern_reader.until(/}}/),\n          comment: pattern_reader.starting_with(/<!--/).until_after(/-->/),\n          cdata: pattern_reader.starting_with(/<!\\[CDATA\\[/).until_after(/]]>/),\n          // https://en.wikipedia.org/wiki/Conditional_comment\n          conditional_comment: pattern_reader.starting_with(/<!\\[/).until_after(/]>/),\n          processing: pattern_reader.starting_with(/<\\?/).until_after(/\\?>/)\n        };\n        if (this._options.indent_handlebars) {\n          this.__patterns.word = this.__patterns.word.exclude(\"handlebars\");\n          this.__patterns.word_control_flow_close_excluded = this.__patterns.word_control_flow_close_excluded.exclude(\"handlebars\");\n        }\n        this._unformatted_content_delimiter = null;\n        if (this._options.unformatted_content_delimiter) {\n          var literal_regexp = this._input.get_literal_regexp(this._options.unformatted_content_delimiter);\n          this.__patterns.unformatted_content_delimiter = pattern_reader.matching(literal_regexp).until_after(literal_regexp);\n        }\n      };\n      Tokenizer.prototype = new BaseTokenizer();\n      Tokenizer.prototype._is_comment = function(current_token) {\n        return false;\n      };\n      Tokenizer.prototype._is_opening = function(current_token) {\n        return current_token.type === TOKEN.TAG_OPEN || current_token.type === TOKEN.CONTROL_FLOW_OPEN;\n      };\n      Tokenizer.prototype._is_closing = function(current_token, open_token) {\n        return current_token.type === TOKEN.TAG_CLOSE && (open_token && ((current_token.text === \">\" || current_token.text === \"/>\") && open_token.text[0] === \"<\" || current_token.text === \"}}\" && open_token.text[0] === \"{\" && open_token.text[1] === \"{\")) || current_token.type === TOKEN.CONTROL_FLOW_CLOSE && (current_token.text === \"}\" && open_token.text.endsWith(\"{\"));\n      };\n      Tokenizer.prototype._reset = function() {\n        this._current_tag_name = \"\";\n      };\n      Tokenizer.prototype._get_next_token = function(previous_token, open_token) {\n        var token = null;\n        this._readWhitespace();\n        var c = this._input.peek();\n        if (c === null) {\n          return this._create_token(TOKEN.EOF, \"\");\n        }\n        token = token || this._read_open_handlebars(c, open_token);\n        token = token || this._read_attribute(c, previous_token, open_token);\n        token = token || this._read_close(c, open_token);\n        token = token || this._read_control_flows(c, open_token);\n        token = token || this._read_raw_content(c, previous_token, open_token);\n        token = token || this._read_content_word(c, open_token);\n        token = token || this._read_comment_or_cdata(c);\n        token = token || this._read_processing(c);\n        token = token || this._read_open(c, open_token);\n        token = token || this._create_token(TOKEN.UNKNOWN, this._input.next());\n        return token;\n      };\n      Tokenizer.prototype._read_comment_or_cdata = function(c) {\n        var token = null;\n        var resulting_string = null;\n        var directives = null;\n        if (c === \"<\") {\n          var peek1 = this._input.peek(1);\n          if (peek1 === \"!\") {\n            resulting_string = this.__patterns.comment.read();\n            if (resulting_string) {\n              directives = directives_core.get_directives(resulting_string);\n              if (directives && directives.ignore === \"start\") {\n                resulting_string += directives_core.readIgnored(this._input);\n              }\n            } else {\n              resulting_string = this.__patterns.cdata.read();\n            }\n          }\n          if (resulting_string) {\n            token = this._create_token(TOKEN.COMMENT, resulting_string);\n            token.directives = directives;\n          }\n        }\n        return token;\n      };\n      Tokenizer.prototype._read_processing = function(c) {\n        var token = null;\n        var resulting_string = null;\n        var directives = null;\n        if (c === \"<\") {\n          var peek1 = this._input.peek(1);\n          if (peek1 === \"!\" || peek1 === \"?\") {\n            resulting_string = this.__patterns.conditional_comment.read();\n            resulting_string = resulting_string || this.__patterns.processing.read();\n          }\n          if (resulting_string) {\n            token = this._create_token(TOKEN.COMMENT, resulting_string);\n            token.directives = directives;\n          }\n        }\n        return token;\n      };\n      Tokenizer.prototype._read_open = function(c, open_token) {\n        var resulting_string = null;\n        var token = null;\n        if (!open_token || open_token.type === TOKEN.CONTROL_FLOW_OPEN) {\n          if (c === \"<\") {\n            resulting_string = this._input.next();\n            if (this._input.peek() === \"/\") {\n              resulting_string += this._input.next();\n            }\n            resulting_string += this.__patterns.element_name.read();\n            token = this._create_token(TOKEN.TAG_OPEN, resulting_string);\n          }\n        }\n        return token;\n      };\n      Tokenizer.prototype._read_open_handlebars = function(c, open_token) {\n        var resulting_string = null;\n        var token = null;\n        if (!open_token || open_token.type === TOKEN.CONTROL_FLOW_OPEN) {\n          if (this._options.indent_handlebars && c === \"{\" && this._input.peek(1) === \"{\") {\n            if (this._input.peek(2) === \"!\") {\n              resulting_string = this.__patterns.handlebars_comment.read();\n              resulting_string = resulting_string || this.__patterns.handlebars.read();\n              token = this._create_token(TOKEN.COMMENT, resulting_string);\n            } else {\n              resulting_string = this.__patterns.handlebars_open.read();\n              token = this._create_token(TOKEN.TAG_OPEN, resulting_string);\n            }\n          }\n        }\n        return token;\n      };\n      Tokenizer.prototype._read_control_flows = function(c, open_token) {\n        var resulting_string = \"\";\n        var token = null;\n        if (!this._options.templating.includes(\"angular\") || !this._options.indent_handlebars) {\n          return token;\n        }\n        if (c === \"@\") {\n          resulting_string = this.__patterns.angular_control_flow_start.read();\n          if (resulting_string === \"\") {\n            return token;\n          }\n          var opening_parentheses_count = resulting_string.endsWith(\"(\") ? 1 : 0;\n          var closing_parentheses_count = 0;\n          while (!(resulting_string.endsWith(\"{\") && opening_parentheses_count === closing_parentheses_count)) {\n            var next_char = this._input.next();\n            if (next_char === null) {\n              break;\n            } else if (next_char === \"(\") {\n              opening_parentheses_count++;\n            } else if (next_char === \")\") {\n              closing_parentheses_count++;\n            }\n            resulting_string += next_char;\n          }\n          token = this._create_token(TOKEN.CONTROL_FLOW_OPEN, resulting_string);\n        } else if (c === \"}\" && open_token && open_token.type === TOKEN.CONTROL_FLOW_OPEN) {\n          resulting_string = this._input.next();\n          token = this._create_token(TOKEN.CONTROL_FLOW_CLOSE, resulting_string);\n        }\n        return token;\n      };\n      Tokenizer.prototype._read_close = function(c, open_token) {\n        var resulting_string = null;\n        var token = null;\n        if (open_token && open_token.type === TOKEN.TAG_OPEN) {\n          if (open_token.text[0] === \"<\" && (c === \">\" || c === \"/\" && this._input.peek(1) === \">\")) {\n            resulting_string = this._input.next();\n            if (c === \"/\") {\n              resulting_string += this._input.next();\n            }\n            token = this._create_token(TOKEN.TAG_CLOSE, resulting_string);\n          } else if (open_token.text[0] === \"{\" && c === \"}\" && this._input.peek(1) === \"}\") {\n            this._input.next();\n            this._input.next();\n            token = this._create_token(TOKEN.TAG_CLOSE, \"}}\");\n          }\n        }\n        return token;\n      };\n      Tokenizer.prototype._read_attribute = function(c, previous_token, open_token) {\n        var token = null;\n        var resulting_string = \"\";\n        if (open_token && open_token.text[0] === \"<\") {\n          if (c === \"=\") {\n            token = this._create_token(TOKEN.EQUALS, this._input.next());\n          } else if (c === '\"' || c === \"'\") {\n            var content = this._input.next();\n            if (c === '\"') {\n              content += this.__patterns.double_quote.read();\n            } else {\n              content += this.__patterns.single_quote.read();\n            }\n            token = this._create_token(TOKEN.VALUE, content);\n          } else {\n            resulting_string = this.__patterns.attribute.read();\n            if (resulting_string) {\n              if (previous_token.type === TOKEN.EQUALS) {\n                token = this._create_token(TOKEN.VALUE, resulting_string);\n              } else {\n                token = this._create_token(TOKEN.ATTRIBUTE, resulting_string);\n              }\n            }\n          }\n        }\n        return token;\n      };\n      Tokenizer.prototype._is_content_unformatted = function(tag_name) {\n        return this._options.void_elements.indexOf(tag_name) === -1 && (this._options.content_unformatted.indexOf(tag_name) !== -1 || this._options.unformatted.indexOf(tag_name) !== -1);\n      };\n      Tokenizer.prototype._read_raw_content = function(c, previous_token, open_token) {\n        var resulting_string = \"\";\n        if (open_token && open_token.text[0] === \"{\") {\n          resulting_string = this.__patterns.handlebars_raw_close.read();\n        } else if (previous_token.type === TOKEN.TAG_CLOSE && previous_token.opened.text[0] === \"<\" && previous_token.text[0] !== \"/\") {\n          var tag_name = previous_token.opened.text.substr(1).toLowerCase();\n          if (tag_name === \"script\" || tag_name === \"style\") {\n            var token = this._read_comment_or_cdata(c);\n            if (token) {\n              token.type = TOKEN.TEXT;\n              return token;\n            }\n            resulting_string = this._input.readUntil(new RegExp(\"</\" + tag_name + \"[\\\\n\\\\r\\\\t ]*?>\", \"ig\"));\n          } else if (this._is_content_unformatted(tag_name)) {\n            resulting_string = this._input.readUntil(new RegExp(\"</\" + tag_name + \"[\\\\n\\\\r\\\\t ]*?>\", \"ig\"));\n          }\n        }\n        if (resulting_string) {\n          return this._create_token(TOKEN.TEXT, resulting_string);\n        }\n        return null;\n      };\n      Tokenizer.prototype._read_content_word = function(c, open_token) {\n        var resulting_string = \"\";\n        if (this._options.unformatted_content_delimiter) {\n          if (c === this._options.unformatted_content_delimiter[0]) {\n            resulting_string = this.__patterns.unformatted_content_delimiter.read();\n          }\n        }\n        if (!resulting_string) {\n          resulting_string = open_token && open_token.type === TOKEN.CONTROL_FLOW_OPEN ? this.__patterns.word_control_flow_close_excluded.read() : this.__patterns.word.read();\n        }\n        if (resulting_string) {\n          return this._create_token(TOKEN.TEXT, resulting_string);\n        }\n      };\n      module.exports.Tokenizer = Tokenizer;\n      module.exports.TOKEN = TOKEN;\n    }\n    /******/\n  ];\n  var __webpack_module_cache__ = {};\n  function __webpack_require__(moduleId) {\n    var cachedModule = __webpack_module_cache__[moduleId];\n    if (cachedModule !== void 0) {\n      return cachedModule.exports;\n    }\n    var module = __webpack_module_cache__[moduleId] = {\n      /******/\n      // no module.id needed\n      /******/\n      // no module.loaded needed\n      /******/\n      exports: {}\n      /******/\n    };\n    __webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n    return module.exports;\n  }\n  var __webpack_exports__ = __webpack_require__(18);\n  legacy_beautify_html = __webpack_exports__;\n})();\nfunction html_beautify(html_source, options) {\n  return legacy_beautify_html(html_source, options, js_beautify, css_beautify);\n}\n\n// node_modules/vscode-html-languageservice/lib/esm/services/htmlFormatter.js\nfunction format2(document, range, options) {\n  let value = document.getText();\n  let includesEnd = true;\n  let initialIndentLevel = 0;\n  const tabSize = options.tabSize || 4;\n  if (range) {\n    let startOffset = document.offsetAt(range.start);\n    let extendedStart = startOffset;\n    while (extendedStart > 0 && isWhitespace(value, extendedStart - 1)) {\n      extendedStart--;\n    }\n    if (extendedStart === 0 || isEOL(value, extendedStart - 1)) {\n      startOffset = extendedStart;\n    } else {\n      if (extendedStart < startOffset) {\n        startOffset = extendedStart + 1;\n      }\n    }\n    let endOffset = document.offsetAt(range.end);\n    let extendedEnd = endOffset;\n    while (extendedEnd < value.length && isWhitespace(value, extendedEnd)) {\n      extendedEnd++;\n    }\n    if (extendedEnd === value.length || isEOL(value, extendedEnd)) {\n      endOffset = extendedEnd;\n    }\n    range = Range.create(document.positionAt(startOffset), document.positionAt(endOffset));\n    const firstHalf = value.substring(0, startOffset);\n    if (new RegExp(/.*[<][^>]*$/).test(firstHalf)) {\n      value = value.substring(startOffset, endOffset);\n      return [{\n        range,\n        newText: value\n      }];\n    }\n    includesEnd = endOffset === value.length;\n    value = value.substring(startOffset, endOffset);\n    if (startOffset !== 0) {\n      const startOfLineOffset = document.offsetAt(Position.create(range.start.line, 0));\n      initialIndentLevel = computeIndentLevel(document.getText(), startOfLineOffset, options);\n    }\n  } else {\n    range = Range.create(Position.create(0, 0), document.positionAt(value.length));\n  }\n  const htmlOptions = {\n    indent_size: tabSize,\n    indent_char: options.insertSpaces ? \" \" : \"\t\",\n    indent_empty_lines: getFormatOption(options, \"indentEmptyLines\", false),\n    wrap_line_length: getFormatOption(options, \"wrapLineLength\", 120),\n    unformatted: getTagsFormatOption(options, \"unformatted\", void 0),\n    content_unformatted: getTagsFormatOption(options, \"contentUnformatted\", void 0),\n    indent_inner_html: getFormatOption(options, \"indentInnerHtml\", false),\n    preserve_newlines: getFormatOption(options, \"preserveNewLines\", true),\n    max_preserve_newlines: getFormatOption(options, \"maxPreserveNewLines\", 32786),\n    indent_handlebars: getFormatOption(options, \"indentHandlebars\", false),\n    end_with_newline: includesEnd && getFormatOption(options, \"endWithNewline\", false),\n    extra_liners: getTagsFormatOption(options, \"extraLiners\", void 0),\n    wrap_attributes: getFormatOption(options, \"wrapAttributes\", \"auto\"),\n    wrap_attributes_indent_size: getFormatOption(options, \"wrapAttributesIndentSize\", void 0),\n    eol: \"\\n\",\n    indent_scripts: getFormatOption(options, \"indentScripts\", \"normal\"),\n    templating: getTemplatingFormatOption(options, \"all\"),\n    unformatted_content_delimiter: getFormatOption(options, \"unformattedContentDelimiter\", \"\")\n  };\n  let result = html_beautify(trimLeft(value), htmlOptions);\n  if (initialIndentLevel > 0) {\n    const indent = options.insertSpaces ? repeat(\" \", tabSize * initialIndentLevel) : repeat(\"\t\", initialIndentLevel);\n    result = result.split(\"\\n\").join(\"\\n\" + indent);\n    if (range.start.character === 0) {\n      result = indent + result;\n    }\n  }\n  return [{\n    range,\n    newText: result\n  }];\n}\nfunction trimLeft(str) {\n  return str.replace(/^\\s+/, \"\");\n}\nfunction getFormatOption(options, key, dflt) {\n  if (options && options.hasOwnProperty(key)) {\n    const value = options[key];\n    if (value !== null) {\n      return value;\n    }\n  }\n  return dflt;\n}\nfunction getTagsFormatOption(options, key, dflt) {\n  const list = getFormatOption(options, key, null);\n  if (typeof list === \"string\") {\n    if (list.length > 0) {\n      return list.split(\",\").map((t2) => t2.trim().toLowerCase());\n    }\n    return [];\n  }\n  return dflt;\n}\nfunction getTemplatingFormatOption(options, dflt) {\n  const value = getFormatOption(options, \"templating\", dflt);\n  if (value === true) {\n    return [\"auto\"];\n  }\n  if (value === false || value === dflt || Array.isArray(value) === false) {\n    return [\"none\"];\n  }\n  return value;\n}\nfunction computeIndentLevel(content, offset, options) {\n  let i = offset;\n  let nChars = 0;\n  const tabSize = options.tabSize || 4;\n  while (i < content.length) {\n    const ch = content.charAt(i);\n    if (ch === \" \") {\n      nChars++;\n    } else if (ch === \"\t\") {\n      nChars += tabSize;\n    } else {\n      break;\n    }\n    i++;\n  }\n  return Math.floor(nChars / tabSize);\n}\nfunction isEOL(text, offset) {\n  return \"\\r\\n\".indexOf(text.charAt(offset)) !== -1;\n}\nfunction isWhitespace(text, offset) {\n  return \" \t\".indexOf(text.charAt(offset)) !== -1;\n}\n\n// node_modules/vscode-uri/lib/esm/index.mjs\nvar LIB;\n(() => {\n  \"use strict\";\n  var t2 = { 470: (t3) => {\n    function e2(t4) {\n      if (\"string\" != typeof t4)\n        throw new TypeError(\"Path must be a string. Received \" + JSON.stringify(t4));\n    }\n    function r2(t4, e3) {\n      for (var r3, n3 = \"\", i = 0, o = -1, s = 0, h = 0; h <= t4.length; ++h) {\n        if (h < t4.length)\n          r3 = t4.charCodeAt(h);\n        else {\n          if (47 === r3)\n            break;\n          r3 = 47;\n        }\n        if (47 === r3) {\n          if (o === h - 1 || 1 === s)\n            ;\n          else if (o !== h - 1 && 2 === s) {\n            if (n3.length < 2 || 2 !== i || 46 !== n3.charCodeAt(n3.length - 1) || 46 !== n3.charCodeAt(n3.length - 2)) {\n              if (n3.length > 2) {\n                var a = n3.lastIndexOf(\"/\");\n                if (a !== n3.length - 1) {\n                  -1 === a ? (n3 = \"\", i = 0) : i = (n3 = n3.slice(0, a)).length - 1 - n3.lastIndexOf(\"/\"), o = h, s = 0;\n                  continue;\n                }\n              } else if (2 === n3.length || 1 === n3.length) {\n                n3 = \"\", i = 0, o = h, s = 0;\n                continue;\n              }\n            }\n            e3 && (n3.length > 0 ? n3 += \"/..\" : n3 = \"..\", i = 2);\n          } else\n            n3.length > 0 ? n3 += \"/\" + t4.slice(o + 1, h) : n3 = t4.slice(o + 1, h), i = h - o - 1;\n          o = h, s = 0;\n        } else\n          46 === r3 && -1 !== s ? ++s : s = -1;\n      }\n      return n3;\n    }\n    var n2 = { resolve: function() {\n      for (var t4, n3 = \"\", i = false, o = arguments.length - 1; o >= -1 && !i; o--) {\n        var s;\n        o >= 0 ? s = arguments[o] : (void 0 === t4 && (t4 = process.cwd()), s = t4), e2(s), 0 !== s.length && (n3 = s + \"/\" + n3, i = 47 === s.charCodeAt(0));\n      }\n      return n3 = r2(n3, !i), i ? n3.length > 0 ? \"/\" + n3 : \"/\" : n3.length > 0 ? n3 : \".\";\n    }, normalize: function(t4) {\n      if (e2(t4), 0 === t4.length)\n        return \".\";\n      var n3 = 47 === t4.charCodeAt(0), i = 47 === t4.charCodeAt(t4.length - 1);\n      return 0 !== (t4 = r2(t4, !n3)).length || n3 || (t4 = \".\"), t4.length > 0 && i && (t4 += \"/\"), n3 ? \"/\" + t4 : t4;\n    }, isAbsolute: function(t4) {\n      return e2(t4), t4.length > 0 && 47 === t4.charCodeAt(0);\n    }, join: function() {\n      if (0 === arguments.length)\n        return \".\";\n      for (var t4, r3 = 0; r3 < arguments.length; ++r3) {\n        var i = arguments[r3];\n        e2(i), i.length > 0 && (void 0 === t4 ? t4 = i : t4 += \"/\" + i);\n      }\n      return void 0 === t4 ? \".\" : n2.normalize(t4);\n    }, relative: function(t4, r3) {\n      if (e2(t4), e2(r3), t4 === r3)\n        return \"\";\n      if ((t4 = n2.resolve(t4)) === (r3 = n2.resolve(r3)))\n        return \"\";\n      for (var i = 1; i < t4.length && 47 === t4.charCodeAt(i); ++i)\n        ;\n      for (var o = t4.length, s = o - i, h = 1; h < r3.length && 47 === r3.charCodeAt(h); ++h)\n        ;\n      for (var a = r3.length - h, c = s < a ? s : a, f = -1, u = 0; u <= c; ++u) {\n        if (u === c) {\n          if (a > c) {\n            if (47 === r3.charCodeAt(h + u))\n              return r3.slice(h + u + 1);\n            if (0 === u)\n              return r3.slice(h + u);\n          } else\n            s > c && (47 === t4.charCodeAt(i + u) ? f = u : 0 === u && (f = 0));\n          break;\n        }\n        var l = t4.charCodeAt(i + u);\n        if (l !== r3.charCodeAt(h + u))\n          break;\n        47 === l && (f = u);\n      }\n      var g = \"\";\n      for (u = i + f + 1; u <= o; ++u)\n        u !== o && 47 !== t4.charCodeAt(u) || (0 === g.length ? g += \"..\" : g += \"/..\");\n      return g.length > 0 ? g + r3.slice(h + f) : (h += f, 47 === r3.charCodeAt(h) && ++h, r3.slice(h));\n    }, _makeLong: function(t4) {\n      return t4;\n    }, dirname: function(t4) {\n      if (e2(t4), 0 === t4.length)\n        return \".\";\n      for (var r3 = t4.charCodeAt(0), n3 = 47 === r3, i = -1, o = true, s = t4.length - 1; s >= 1; --s)\n        if (47 === (r3 = t4.charCodeAt(s))) {\n          if (!o) {\n            i = s;\n            break;\n          }\n        } else\n          o = false;\n      return -1 === i ? n3 ? \"/\" : \".\" : n3 && 1 === i ? \"//\" : t4.slice(0, i);\n    }, basename: function(t4, r3) {\n      if (void 0 !== r3 && \"string\" != typeof r3)\n        throw new TypeError('\"ext\" argument must be a string');\n      e2(t4);\n      var n3, i = 0, o = -1, s = true;\n      if (void 0 !== r3 && r3.length > 0 && r3.length <= t4.length) {\n        if (r3.length === t4.length && r3 === t4)\n          return \"\";\n        var h = r3.length - 1, a = -1;\n        for (n3 = t4.length - 1; n3 >= 0; --n3) {\n          var c = t4.charCodeAt(n3);\n          if (47 === c) {\n            if (!s) {\n              i = n3 + 1;\n              break;\n            }\n          } else\n            -1 === a && (s = false, a = n3 + 1), h >= 0 && (c === r3.charCodeAt(h) ? -1 == --h && (o = n3) : (h = -1, o = a));\n        }\n        return i === o ? o = a : -1 === o && (o = t4.length), t4.slice(i, o);\n      }\n      for (n3 = t4.length - 1; n3 >= 0; --n3)\n        if (47 === t4.charCodeAt(n3)) {\n          if (!s) {\n            i = n3 + 1;\n            break;\n          }\n        } else\n          -1 === o && (s = false, o = n3 + 1);\n      return -1 === o ? \"\" : t4.slice(i, o);\n    }, extname: function(t4) {\n      e2(t4);\n      for (var r3 = -1, n3 = 0, i = -1, o = true, s = 0, h = t4.length - 1; h >= 0; --h) {\n        var a = t4.charCodeAt(h);\n        if (47 !== a)\n          -1 === i && (o = false, i = h + 1), 46 === a ? -1 === r3 ? r3 = h : 1 !== s && (s = 1) : -1 !== r3 && (s = -1);\n        else if (!o) {\n          n3 = h + 1;\n          break;\n        }\n      }\n      return -1 === r3 || -1 === i || 0 === s || 1 === s && r3 === i - 1 && r3 === n3 + 1 ? \"\" : t4.slice(r3, i);\n    }, format: function(t4) {\n      if (null === t4 || \"object\" != typeof t4)\n        throw new TypeError('The \"pathObject\" argument must be of type Object. Received type ' + typeof t4);\n      return function(t5, e3) {\n        var r3 = e3.dir || e3.root, n3 = e3.base || (e3.name || \"\") + (e3.ext || \"\");\n        return r3 ? r3 === e3.root ? r3 + n3 : r3 + \"/\" + n3 : n3;\n      }(0, t4);\n    }, parse: function(t4) {\n      e2(t4);\n      var r3 = { root: \"\", dir: \"\", base: \"\", ext: \"\", name: \"\" };\n      if (0 === t4.length)\n        return r3;\n      var n3, i = t4.charCodeAt(0), o = 47 === i;\n      o ? (r3.root = \"/\", n3 = 1) : n3 = 0;\n      for (var s = -1, h = 0, a = -1, c = true, f = t4.length - 1, u = 0; f >= n3; --f)\n        if (47 !== (i = t4.charCodeAt(f)))\n          -1 === a && (c = false, a = f + 1), 46 === i ? -1 === s ? s = f : 1 !== u && (u = 1) : -1 !== s && (u = -1);\n        else if (!c) {\n          h = f + 1;\n          break;\n        }\n      return -1 === s || -1 === a || 0 === u || 1 === u && s === a - 1 && s === h + 1 ? -1 !== a && (r3.base = r3.name = 0 === h && o ? t4.slice(1, a) : t4.slice(h, a)) : (0 === h && o ? (r3.name = t4.slice(1, s), r3.base = t4.slice(1, a)) : (r3.name = t4.slice(h, s), r3.base = t4.slice(h, a)), r3.ext = t4.slice(s, a)), h > 0 ? r3.dir = t4.slice(0, h - 1) : o && (r3.dir = \"/\"), r3;\n    }, sep: \"/\", delimiter: \":\", win32: null, posix: null };\n    n2.posix = n2, t3.exports = n2;\n  } }, e = {};\n  function r(n2) {\n    var i = e[n2];\n    if (void 0 !== i)\n      return i.exports;\n    var o = e[n2] = { exports: {} };\n    return t2[n2](o, o.exports, r), o.exports;\n  }\n  r.d = (t3, e2) => {\n    for (var n2 in e2)\n      r.o(e2, n2) && !r.o(t3, n2) && Object.defineProperty(t3, n2, { enumerable: true, get: e2[n2] });\n  }, r.o = (t3, e2) => Object.prototype.hasOwnProperty.call(t3, e2), r.r = (t3) => {\n    \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t3, Symbol.toStringTag, { value: \"Module\" }), Object.defineProperty(t3, \"__esModule\", { value: true });\n  };\n  var n = {};\n  (() => {\n    let t3;\n    if (r.r(n), r.d(n, { URI: () => f, Utils: () => P }), \"object\" == typeof process)\n      t3 = \"win32\" === process.platform;\n    else if (\"object\" == typeof navigator) {\n      let e3 = navigator.userAgent;\n      t3 = e3.indexOf(\"Windows\") >= 0;\n    }\n    const e2 = /^\\w[\\w\\d+.-]*$/, i = /^\\//, o = /^\\/\\//;\n    function s(t4, r2) {\n      if (!t4.scheme && r2)\n        throw new Error(`[UriError]: Scheme is missing: {scheme: \"\", authority: \"${t4.authority}\", path: \"${t4.path}\", query: \"${t4.query}\", fragment: \"${t4.fragment}\"}`);\n      if (t4.scheme && !e2.test(t4.scheme))\n        throw new Error(\"[UriError]: Scheme contains illegal characters.\");\n      if (t4.path) {\n        if (t4.authority) {\n          if (!i.test(t4.path))\n            throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash (\"/\") character');\n        } else if (o.test(t4.path))\n          throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")');\n      }\n    }\n    const h = \"\", a = \"/\", c = /^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/;\n    class f {\n      static isUri(t4) {\n        return t4 instanceof f || !!t4 && \"string\" == typeof t4.authority && \"string\" == typeof t4.fragment && \"string\" == typeof t4.path && \"string\" == typeof t4.query && \"string\" == typeof t4.scheme && \"string\" == typeof t4.fsPath && \"function\" == typeof t4.with && \"function\" == typeof t4.toString;\n      }\n      scheme;\n      authority;\n      path;\n      query;\n      fragment;\n      constructor(t4, e3, r2, n2, i2, o2 = false) {\n        \"object\" == typeof t4 ? (this.scheme = t4.scheme || h, this.authority = t4.authority || h, this.path = t4.path || h, this.query = t4.query || h, this.fragment = t4.fragment || h) : (this.scheme = /* @__PURE__ */ function(t5, e4) {\n          return t5 || e4 ? t5 : \"file\";\n        }(t4, o2), this.authority = e3 || h, this.path = function(t5, e4) {\n          switch (t5) {\n            case \"https\":\n            case \"http\":\n            case \"file\":\n              e4 ? e4[0] !== a && (e4 = a + e4) : e4 = a;\n          }\n          return e4;\n        }(this.scheme, r2 || h), this.query = n2 || h, this.fragment = i2 || h, s(this, o2));\n      }\n      get fsPath() {\n        return m(this, false);\n      }\n      with(t4) {\n        if (!t4)\n          return this;\n        let { scheme: e3, authority: r2, path: n2, query: i2, fragment: o2 } = t4;\n        return void 0 === e3 ? e3 = this.scheme : null === e3 && (e3 = h), void 0 === r2 ? r2 = this.authority : null === r2 && (r2 = h), void 0 === n2 ? n2 = this.path : null === n2 && (n2 = h), void 0 === i2 ? i2 = this.query : null === i2 && (i2 = h), void 0 === o2 ? o2 = this.fragment : null === o2 && (o2 = h), e3 === this.scheme && r2 === this.authority && n2 === this.path && i2 === this.query && o2 === this.fragment ? this : new l(e3, r2, n2, i2, o2);\n      }\n      static parse(t4, e3 = false) {\n        const r2 = c.exec(t4);\n        return r2 ? new l(r2[2] || h, C(r2[4] || h), C(r2[5] || h), C(r2[7] || h), C(r2[9] || h), e3) : new l(h, h, h, h, h);\n      }\n      static file(e3) {\n        let r2 = h;\n        if (t3 && (e3 = e3.replace(/\\\\/g, a)), e3[0] === a && e3[1] === a) {\n          const t4 = e3.indexOf(a, 2);\n          -1 === t4 ? (r2 = e3.substring(2), e3 = a) : (r2 = e3.substring(2, t4), e3 = e3.substring(t4) || a);\n        }\n        return new l(\"file\", r2, e3, h, h);\n      }\n      static from(t4) {\n        const e3 = new l(t4.scheme, t4.authority, t4.path, t4.query, t4.fragment);\n        return s(e3, true), e3;\n      }\n      toString(t4 = false) {\n        return y(this, t4);\n      }\n      toJSON() {\n        return this;\n      }\n      static revive(t4) {\n        if (t4) {\n          if (t4 instanceof f)\n            return t4;\n          {\n            const e3 = new l(t4);\n            return e3._formatted = t4.external, e3._fsPath = t4._sep === u ? t4.fsPath : null, e3;\n          }\n        }\n        return t4;\n      }\n    }\n    const u = t3 ? 1 : void 0;\n    class l extends f {\n      _formatted = null;\n      _fsPath = null;\n      get fsPath() {\n        return this._fsPath || (this._fsPath = m(this, false)), this._fsPath;\n      }\n      toString(t4 = false) {\n        return t4 ? y(this, true) : (this._formatted || (this._formatted = y(this, false)), this._formatted);\n      }\n      toJSON() {\n        const t4 = { $mid: 1 };\n        return this._fsPath && (t4.fsPath = this._fsPath, t4._sep = u), this._formatted && (t4.external = this._formatted), this.path && (t4.path = this.path), this.scheme && (t4.scheme = this.scheme), this.authority && (t4.authority = this.authority), this.query && (t4.query = this.query), this.fragment && (t4.fragment = this.fragment), t4;\n      }\n    }\n    const g = { 58: \"%3A\", 47: \"%2F\", 63: \"%3F\", 35: \"%23\", 91: \"%5B\", 93: \"%5D\", 64: \"%40\", 33: \"%21\", 36: \"%24\", 38: \"%26\", 39: \"%27\", 40: \"%28\", 41: \"%29\", 42: \"%2A\", 43: \"%2B\", 44: \"%2C\", 59: \"%3B\", 61: \"%3D\", 32: \"%20\" };\n    function d(t4, e3, r2) {\n      let n2, i2 = -1;\n      for (let o2 = 0; o2 < t4.length; o2++) {\n        const s2 = t4.charCodeAt(o2);\n        if (s2 >= 97 && s2 <= 122 || s2 >= 65 && s2 <= 90 || s2 >= 48 && s2 <= 57 || 45 === s2 || 46 === s2 || 95 === s2 || 126 === s2 || e3 && 47 === s2 || r2 && 91 === s2 || r2 && 93 === s2 || r2 && 58 === s2)\n          -1 !== i2 && (n2 += encodeURIComponent(t4.substring(i2, o2)), i2 = -1), void 0 !== n2 && (n2 += t4.charAt(o2));\n        else {\n          void 0 === n2 && (n2 = t4.substr(0, o2));\n          const e4 = g[s2];\n          void 0 !== e4 ? (-1 !== i2 && (n2 += encodeURIComponent(t4.substring(i2, o2)), i2 = -1), n2 += e4) : -1 === i2 && (i2 = o2);\n        }\n      }\n      return -1 !== i2 && (n2 += encodeURIComponent(t4.substring(i2))), void 0 !== n2 ? n2 : t4;\n    }\n    function p(t4) {\n      let e3;\n      for (let r2 = 0; r2 < t4.length; r2++) {\n        const n2 = t4.charCodeAt(r2);\n        35 === n2 || 63 === n2 ? (void 0 === e3 && (e3 = t4.substr(0, r2)), e3 += g[n2]) : void 0 !== e3 && (e3 += t4[r2]);\n      }\n      return void 0 !== e3 ? e3 : t4;\n    }\n    function m(e3, r2) {\n      let n2;\n      return n2 = e3.authority && e3.path.length > 1 && \"file\" === e3.scheme ? `//${e3.authority}${e3.path}` : 47 === e3.path.charCodeAt(0) && (e3.path.charCodeAt(1) >= 65 && e3.path.charCodeAt(1) <= 90 || e3.path.charCodeAt(1) >= 97 && e3.path.charCodeAt(1) <= 122) && 58 === e3.path.charCodeAt(2) ? r2 ? e3.path.substr(1) : e3.path[1].toLowerCase() + e3.path.substr(2) : e3.path, t3 && (n2 = n2.replace(/\\//g, \"\\\\\")), n2;\n    }\n    function y(t4, e3) {\n      const r2 = e3 ? p : d;\n      let n2 = \"\", { scheme: i2, authority: o2, path: s2, query: h2, fragment: c2 } = t4;\n      if (i2 && (n2 += i2, n2 += \":\"), (o2 || \"file\" === i2) && (n2 += a, n2 += a), o2) {\n        let t5 = o2.indexOf(\"@\");\n        if (-1 !== t5) {\n          const e4 = o2.substr(0, t5);\n          o2 = o2.substr(t5 + 1), t5 = e4.lastIndexOf(\":\"), -1 === t5 ? n2 += r2(e4, false, false) : (n2 += r2(e4.substr(0, t5), false, false), n2 += \":\", n2 += r2(e4.substr(t5 + 1), false, true)), n2 += \"@\";\n        }\n        o2 = o2.toLowerCase(), t5 = o2.lastIndexOf(\":\"), -1 === t5 ? n2 += r2(o2, false, true) : (n2 += r2(o2.substr(0, t5), false, true), n2 += o2.substr(t5));\n      }\n      if (s2) {\n        if (s2.length >= 3 && 47 === s2.charCodeAt(0) && 58 === s2.charCodeAt(2)) {\n          const t5 = s2.charCodeAt(1);\n          t5 >= 65 && t5 <= 90 && (s2 = `/${String.fromCharCode(t5 + 32)}:${s2.substr(3)}`);\n        } else if (s2.length >= 2 && 58 === s2.charCodeAt(1)) {\n          const t5 = s2.charCodeAt(0);\n          t5 >= 65 && t5 <= 90 && (s2 = `${String.fromCharCode(t5 + 32)}:${s2.substr(2)}`);\n        }\n        n2 += r2(s2, true, false);\n      }\n      return h2 && (n2 += \"?\", n2 += r2(h2, false, false)), c2 && (n2 += \"#\", n2 += e3 ? c2 : d(c2, false, false)), n2;\n    }\n    function v(t4) {\n      try {\n        return decodeURIComponent(t4);\n      } catch {\n        return t4.length > 3 ? t4.substr(0, 3) + v(t4.substr(3)) : t4;\n      }\n    }\n    const b = /(%[0-9A-Za-z][0-9A-Za-z])+/g;\n    function C(t4) {\n      return t4.match(b) ? t4.replace(b, (t5) => v(t5)) : t4;\n    }\n    var A = r(470);\n    const w = A.posix || A, x = \"/\";\n    var P;\n    !function(t4) {\n      t4.joinPath = function(t5, ...e3) {\n        return t5.with({ path: w.join(t5.path, ...e3) });\n      }, t4.resolvePath = function(t5, ...e3) {\n        let r2 = t5.path, n2 = false;\n        r2[0] !== x && (r2 = x + r2, n2 = true);\n        let i2 = w.resolve(r2, ...e3);\n        return n2 && i2[0] === x && !t5.authority && (i2 = i2.substring(1)), t5.with({ path: i2 });\n      }, t4.dirname = function(t5) {\n        if (0 === t5.path.length || t5.path === x)\n          return t5;\n        let e3 = w.dirname(t5.path);\n        return 1 === e3.length && 46 === e3.charCodeAt(0) && (e3 = \"\"), t5.with({ path: e3 });\n      }, t4.basename = function(t5) {\n        return w.basename(t5.path);\n      }, t4.extname = function(t5) {\n        return w.extname(t5.path);\n      };\n    }(P || (P = {}));\n  })(), LIB = n;\n})();\nvar { URI: URI2, Utils } = LIB;\n\n// node_modules/vscode-html-languageservice/lib/esm/services/htmlLinks.js\nfunction normalizeRef(url) {\n  const first = url[0];\n  const last = url[url.length - 1];\n  if (first === last && (first === \"'\" || first === '\"')) {\n    url = url.substring(1, url.length - 1);\n  }\n  return url;\n}\nfunction validateRef(url, languageId) {\n  if (!url.length) {\n    return false;\n  }\n  if (languageId === \"handlebars\" && /{{|}}/.test(url)) {\n    return false;\n  }\n  return /\\b(w[\\w\\d+.-]*:\\/\\/)?[^\\s()<>]+(?:\\([\\w\\d]+\\)|([^[:punct:]\\s]|\\/?))/.test(url);\n}\nfunction getWorkspaceUrl(documentUri, tokenContent, documentContext, base) {\n  if (/^\\s*javascript\\:/i.test(tokenContent) || /[\\n\\r]/.test(tokenContent)) {\n    return void 0;\n  }\n  tokenContent = tokenContent.replace(/^\\s*/g, \"\");\n  const match = tokenContent.match(/^(\\w[\\w\\d+.-]*):/);\n  if (match) {\n    const schema = match[1].toLowerCase();\n    if (schema === \"http\" || schema === \"https\" || schema === \"file\") {\n      return tokenContent;\n    }\n    return void 0;\n  }\n  if (/^\\#/i.test(tokenContent)) {\n    return documentUri + tokenContent;\n  }\n  if (/^\\/\\//i.test(tokenContent)) {\n    const pickedScheme = startsWith(documentUri, \"https://\") ? \"https\" : \"http\";\n    return pickedScheme + \":\" + tokenContent.replace(/^\\s*/g, \"\");\n  }\n  if (documentContext) {\n    return documentContext.resolveReference(tokenContent, base || documentUri);\n  }\n  return tokenContent;\n}\nfunction createLink(document, documentContext, attributeValue, startOffset, endOffset, base) {\n  const tokenContent = normalizeRef(attributeValue);\n  if (!validateRef(tokenContent, document.languageId)) {\n    return void 0;\n  }\n  if (tokenContent.length < attributeValue.length) {\n    startOffset++;\n    endOffset--;\n  }\n  const workspaceUrl = getWorkspaceUrl(document.uri, tokenContent, documentContext, base);\n  if (!workspaceUrl) {\n    return void 0;\n  }\n  const target = validateAndCleanURI(workspaceUrl, document);\n  return {\n    range: Range.create(document.positionAt(startOffset), document.positionAt(endOffset)),\n    target\n  };\n}\nvar _hash = \"#\".charCodeAt(0);\nfunction validateAndCleanURI(uriStr, document) {\n  try {\n    let uri = URI2.parse(uriStr);\n    if (uri.scheme === \"file\" && uri.query) {\n      uri = uri.with({ query: null });\n      uriStr = uri.toString(\n        /* skipEncodig*/\n        true\n      );\n    }\n    if (uri.scheme === \"file\" && uri.fragment && !(uriStr.startsWith(document.uri) && uriStr.charCodeAt(document.uri.length) === _hash)) {\n      return uri.with({ fragment: null }).toString(\n        /* skipEncodig*/\n        true\n      );\n    }\n    return uriStr;\n  } catch (e) {\n    return void 0;\n  }\n}\nvar HTMLDocumentLinks = class {\n  constructor(dataManager) {\n    this.dataManager = dataManager;\n  }\n  findDocumentLinks(document, documentContext) {\n    const newLinks = [];\n    const scanner = createScanner(document.getText(), 0);\n    let token = scanner.scan();\n    let lastAttributeName = void 0;\n    let lastTagName = void 0;\n    let afterBase = false;\n    let base = void 0;\n    const idLocations = {};\n    while (token !== TokenType.EOS) {\n      switch (token) {\n        case TokenType.StartTag:\n          lastTagName = scanner.getTokenText().toLowerCase();\n          if (!base) {\n            afterBase = lastTagName === \"base\";\n          }\n          break;\n        case TokenType.AttributeName:\n          lastAttributeName = scanner.getTokenText().toLowerCase();\n          break;\n        case TokenType.AttributeValue:\n          if (lastTagName && lastAttributeName && this.dataManager.isPathAttribute(lastTagName, lastAttributeName)) {\n            const attributeValue = scanner.getTokenText();\n            if (!afterBase) {\n              const link = createLink(document, documentContext, attributeValue, scanner.getTokenOffset(), scanner.getTokenEnd(), base);\n              if (link) {\n                newLinks.push(link);\n              }\n            }\n            if (afterBase && typeof base === \"undefined\") {\n              base = normalizeRef(attributeValue);\n              if (base && documentContext) {\n                base = documentContext.resolveReference(base, document.uri);\n              }\n            }\n            afterBase = false;\n            lastAttributeName = void 0;\n          } else if (lastAttributeName === \"id\") {\n            const id = normalizeRef(scanner.getTokenText());\n            idLocations[id] = scanner.getTokenOffset();\n          }\n          break;\n      }\n      token = scanner.scan();\n    }\n    for (const link of newLinks) {\n      const localWithHash = document.uri + \"#\";\n      if (link.target && startsWith(link.target, localWithHash)) {\n        const target = link.target.substring(localWithHash.length);\n        const offset = idLocations[target];\n        if (offset !== void 0) {\n          const pos = document.positionAt(offset);\n          link.target = `${localWithHash}${pos.line + 1},${pos.character + 1}`;\n        } else {\n          link.target = document.uri;\n        }\n      }\n    }\n    return newLinks;\n  }\n};\n\n// node_modules/vscode-html-languageservice/lib/esm/services/htmlHighlighting.js\nfunction findDocumentHighlights(document, position, htmlDocument) {\n  const offset = document.offsetAt(position);\n  const node = htmlDocument.findNodeAt(offset);\n  if (!node.tag) {\n    return [];\n  }\n  const result = [];\n  const startTagRange = getTagNameRange(TokenType.StartTag, document, node.start);\n  const endTagRange = typeof node.endTagStart === \"number\" && getTagNameRange(TokenType.EndTag, document, node.endTagStart);\n  if (startTagRange && covers(startTagRange, position) || endTagRange && covers(endTagRange, position)) {\n    if (startTagRange) {\n      result.push({ kind: DocumentHighlightKind.Read, range: startTagRange });\n    }\n    if (endTagRange) {\n      result.push({ kind: DocumentHighlightKind.Read, range: endTagRange });\n    }\n  }\n  return result;\n}\nfunction isBeforeOrEqual(pos1, pos2) {\n  return pos1.line < pos2.line || pos1.line === pos2.line && pos1.character <= pos2.character;\n}\nfunction covers(range, position) {\n  return isBeforeOrEqual(range.start, position) && isBeforeOrEqual(position, range.end);\n}\nfunction getTagNameRange(tokenType, document, startOffset) {\n  const scanner = createScanner(document.getText(), startOffset);\n  let token = scanner.scan();\n  while (token !== TokenType.EOS && token !== tokenType) {\n    token = scanner.scan();\n  }\n  if (token !== TokenType.EOS) {\n    return { start: document.positionAt(scanner.getTokenOffset()), end: document.positionAt(scanner.getTokenEnd()) };\n  }\n  return null;\n}\n\n// node_modules/vscode-html-languageservice/lib/esm/services/htmlSymbolsProvider.js\nfunction findDocumentSymbols(document, htmlDocument) {\n  const symbols = [];\n  const symbols2 = findDocumentSymbols2(document, htmlDocument);\n  for (const symbol of symbols2) {\n    walk(symbol, void 0);\n  }\n  return symbols;\n  function walk(node, parent) {\n    const symbol = SymbolInformation.create(node.name, node.kind, node.range, document.uri, parent?.name);\n    symbol.containerName ?? (symbol.containerName = \"\");\n    symbols.push(symbol);\n    if (node.children) {\n      for (const child of node.children) {\n        walk(child, node);\n      }\n    }\n  }\n}\nfunction findDocumentSymbols2(document, htmlDocument) {\n  const symbols = [];\n  htmlDocument.roots.forEach((node) => {\n    provideFileSymbolsInternal(document, node, symbols);\n  });\n  return symbols;\n}\nfunction provideFileSymbolsInternal(document, node, symbols) {\n  const name = nodeToName(node);\n  const range = Range.create(document.positionAt(node.start), document.positionAt(node.end));\n  const symbol = DocumentSymbol.create(name, void 0, SymbolKind.Field, range, range);\n  symbols.push(symbol);\n  node.children.forEach((child) => {\n    symbol.children ?? (symbol.children = []);\n    provideFileSymbolsInternal(document, child, symbol.children);\n  });\n}\nfunction nodeToName(node) {\n  let name = node.tag;\n  if (node.attributes) {\n    const id = node.attributes[\"id\"];\n    const classes = node.attributes[\"class\"];\n    if (id) {\n      name += `#${id.replace(/[\\\"\\']/g, \"\")}`;\n    }\n    if (classes) {\n      name += classes.replace(/[\\\"\\']/g, \"\").split(/\\s+/).map((className) => `.${className}`).join(\"\");\n    }\n  }\n  return name || \"?\";\n}\n\n// node_modules/vscode-html-languageservice/lib/esm/services/htmlRename.js\nfunction doRename(document, position, newName, htmlDocument) {\n  const offset = document.offsetAt(position);\n  const node = htmlDocument.findNodeAt(offset);\n  if (!node.tag) {\n    return null;\n  }\n  if (!isWithinTagRange(node, offset, node.tag)) {\n    return null;\n  }\n  const edits = [];\n  const startTagRange = {\n    start: document.positionAt(node.start + \"<\".length),\n    end: document.positionAt(node.start + \"<\".length + node.tag.length)\n  };\n  edits.push({\n    range: startTagRange,\n    newText: newName\n  });\n  if (node.endTagStart) {\n    const endTagRange = {\n      start: document.positionAt(node.endTagStart + \"</\".length),\n      end: document.positionAt(node.endTagStart + \"</\".length + node.tag.length)\n    };\n    edits.push({\n      range: endTagRange,\n      newText: newName\n    });\n  }\n  const changes = {\n    [document.uri.toString()]: edits\n  };\n  return {\n    changes\n  };\n}\nfunction isWithinTagRange(node, offset, nodeTag) {\n  if (node.endTagStart) {\n    if (node.endTagStart + \"</\".length <= offset && offset <= node.endTagStart + \"</\".length + nodeTag.length) {\n      return true;\n    }\n  }\n  return node.start + \"<\".length <= offset && offset <= node.start + \"<\".length + nodeTag.length;\n}\n\n// node_modules/vscode-html-languageservice/lib/esm/services/htmlMatchingTagPosition.js\nfunction findMatchingTagPosition(document, position, htmlDocument) {\n  const offset = document.offsetAt(position);\n  const node = htmlDocument.findNodeAt(offset);\n  if (!node.tag) {\n    return null;\n  }\n  if (!node.endTagStart) {\n    return null;\n  }\n  if (node.start + \"<\".length <= offset && offset <= node.start + \"<\".length + node.tag.length) {\n    const mirrorOffset = offset - \"<\".length - node.start + node.endTagStart + \"</\".length;\n    return document.positionAt(mirrorOffset);\n  }\n  if (node.endTagStart + \"</\".length <= offset && offset <= node.endTagStart + \"</\".length + node.tag.length) {\n    const mirrorOffset = offset - \"</\".length - node.endTagStart + node.start + \"<\".length;\n    return document.positionAt(mirrorOffset);\n  }\n  return null;\n}\n\n// node_modules/vscode-html-languageservice/lib/esm/services/htmlLinkedEditing.js\nfunction findLinkedEditingRanges(document, position, htmlDocument) {\n  const offset = document.offsetAt(position);\n  const node = htmlDocument.findNodeAt(offset);\n  const tagLength = node.tag ? node.tag.length : 0;\n  if (!node.endTagStart) {\n    return null;\n  }\n  if (\n    // Within open tag, compute close tag\n    node.start + \"<\".length <= offset && offset <= node.start + \"<\".length + tagLength || // Within closing tag, compute open tag\n    node.endTagStart + \"</\".length <= offset && offset <= node.endTagStart + \"</\".length + tagLength\n  ) {\n    return [\n      Range.create(document.positionAt(node.start + \"<\".length), document.positionAt(node.start + \"<\".length + tagLength)),\n      Range.create(document.positionAt(node.endTagStart + \"</\".length), document.positionAt(node.endTagStart + \"</\".length + tagLength))\n    ];\n  }\n  return null;\n}\n\n// node_modules/vscode-html-languageservice/lib/esm/services/htmlFolding.js\nvar HTMLFolding = class {\n  constructor(dataManager) {\n    this.dataManager = dataManager;\n  }\n  limitRanges(ranges, rangeLimit) {\n    ranges = ranges.sort((r1, r2) => {\n      let diff = r1.startLine - r2.startLine;\n      if (diff === 0) {\n        diff = r1.endLine - r2.endLine;\n      }\n      return diff;\n    });\n    let top = void 0;\n    const previous = [];\n    const nestingLevels = [];\n    const nestingLevelCounts = [];\n    const setNestingLevel = (index, level) => {\n      nestingLevels[index] = level;\n      if (level < 30) {\n        nestingLevelCounts[level] = (nestingLevelCounts[level] || 0) + 1;\n      }\n    };\n    for (let i = 0; i < ranges.length; i++) {\n      const entry = ranges[i];\n      if (!top) {\n        top = entry;\n        setNestingLevel(i, 0);\n      } else {\n        if (entry.startLine > top.startLine) {\n          if (entry.endLine <= top.endLine) {\n            previous.push(top);\n            top = entry;\n            setNestingLevel(i, previous.length);\n          } else if (entry.startLine > top.endLine) {\n            do {\n              top = previous.pop();\n            } while (top && entry.startLine > top.endLine);\n            if (top) {\n              previous.push(top);\n            }\n            top = entry;\n            setNestingLevel(i, previous.length);\n          }\n        }\n      }\n    }\n    let entries = 0;\n    let maxLevel = 0;\n    for (let i = 0; i < nestingLevelCounts.length; i++) {\n      const n = nestingLevelCounts[i];\n      if (n) {\n        if (n + entries > rangeLimit) {\n          maxLevel = i;\n          break;\n        }\n        entries += n;\n      }\n    }\n    const result = [];\n    for (let i = 0; i < ranges.length; i++) {\n      const level = nestingLevels[i];\n      if (typeof level === \"number\") {\n        if (level < maxLevel || level === maxLevel && entries++ < rangeLimit) {\n          result.push(ranges[i]);\n        }\n      }\n    }\n    return result;\n  }\n  getFoldingRanges(document, context) {\n    const voidElements = this.dataManager.getVoidElements(document.languageId);\n    const scanner = createScanner(document.getText());\n    let token = scanner.scan();\n    const ranges = [];\n    const stack = [];\n    let lastTagName = null;\n    let prevStart = -1;\n    function addRange(range) {\n      ranges.push(range);\n      prevStart = range.startLine;\n    }\n    while (token !== TokenType.EOS) {\n      switch (token) {\n        case TokenType.StartTag: {\n          const tagName = scanner.getTokenText();\n          const startLine = document.positionAt(scanner.getTokenOffset()).line;\n          stack.push({ startLine, tagName });\n          lastTagName = tagName;\n          break;\n        }\n        case TokenType.EndTag: {\n          lastTagName = scanner.getTokenText();\n          break;\n        }\n        case TokenType.StartTagClose:\n          if (!lastTagName || !this.dataManager.isVoidElement(lastTagName, voidElements)) {\n            break;\n          }\n        case TokenType.EndTagClose:\n        case TokenType.StartTagSelfClose: {\n          let i = stack.length - 1;\n          while (i >= 0 && stack[i].tagName !== lastTagName) {\n            i--;\n          }\n          if (i >= 0) {\n            const stackElement = stack[i];\n            stack.length = i;\n            const line = document.positionAt(scanner.getTokenOffset()).line;\n            const startLine = stackElement.startLine;\n            const endLine = line - 1;\n            if (endLine > startLine && prevStart !== startLine) {\n              addRange({ startLine, endLine });\n            }\n          }\n          break;\n        }\n        case TokenType.Comment: {\n          let startLine = document.positionAt(scanner.getTokenOffset()).line;\n          const text = scanner.getTokenText();\n          const m = text.match(/^\\s*#(region\\b)|(endregion\\b)/);\n          if (m) {\n            if (m[1]) {\n              stack.push({ startLine, tagName: \"\" });\n            } else {\n              let i = stack.length - 1;\n              while (i >= 0 && stack[i].tagName.length) {\n                i--;\n              }\n              if (i >= 0) {\n                const stackElement = stack[i];\n                stack.length = i;\n                const endLine = startLine;\n                startLine = stackElement.startLine;\n                if (endLine > startLine && prevStart !== startLine) {\n                  addRange({ startLine, endLine, kind: FoldingRangeKind.Region });\n                }\n              }\n            }\n          } else {\n            const endLine = document.positionAt(scanner.getTokenOffset() + scanner.getTokenLength()).line;\n            if (startLine < endLine) {\n              addRange({ startLine, endLine, kind: FoldingRangeKind.Comment });\n            }\n          }\n          break;\n        }\n      }\n      token = scanner.scan();\n    }\n    const rangeLimit = context && context.rangeLimit || Number.MAX_VALUE;\n    if (ranges.length > rangeLimit) {\n      return this.limitRanges(ranges, rangeLimit);\n    }\n    return ranges;\n  }\n};\n\n// node_modules/vscode-html-languageservice/lib/esm/services/htmlSelectionRange.js\nvar HTMLSelectionRange = class {\n  constructor(htmlParser) {\n    this.htmlParser = htmlParser;\n  }\n  getSelectionRanges(document, positions) {\n    const htmlDocument = this.htmlParser.parseDocument(document);\n    return positions.map((p) => this.getSelectionRange(p, document, htmlDocument));\n  }\n  getSelectionRange(position, document, htmlDocument) {\n    const applicableRanges = this.getApplicableRanges(document, position, htmlDocument);\n    let prev = void 0;\n    let current = void 0;\n    for (let index = applicableRanges.length - 1; index >= 0; index--) {\n      const range = applicableRanges[index];\n      if (!prev || range[0] !== prev[0] || range[1] !== prev[1]) {\n        current = SelectionRange.create(Range.create(document.positionAt(applicableRanges[index][0]), document.positionAt(applicableRanges[index][1])), current);\n      }\n      prev = range;\n    }\n    if (!current) {\n      current = SelectionRange.create(Range.create(position, position));\n    }\n    return current;\n  }\n  getApplicableRanges(document, position, htmlDoc) {\n    const currOffset = document.offsetAt(position);\n    const currNode = htmlDoc.findNodeAt(currOffset);\n    let result = this.getAllParentTagRanges(currNode);\n    if (currNode.startTagEnd && !currNode.endTagStart) {\n      if (currNode.startTagEnd !== currNode.end) {\n        return [[currNode.start, currNode.end]];\n      }\n      const closeRange = Range.create(document.positionAt(currNode.startTagEnd - 2), document.positionAt(currNode.startTagEnd));\n      const closeText = document.getText(closeRange);\n      if (closeText === \"/>\") {\n        result.unshift([currNode.start + 1, currNode.startTagEnd - 2]);\n      } else {\n        result.unshift([currNode.start + 1, currNode.startTagEnd - 1]);\n      }\n      const attributeLevelRanges = this.getAttributeLevelRanges(document, currNode, currOffset);\n      result = attributeLevelRanges.concat(result);\n      return result;\n    }\n    if (!currNode.startTagEnd || !currNode.endTagStart) {\n      return result;\n    }\n    result.unshift([currNode.start, currNode.end]);\n    if (currNode.start < currOffset && currOffset < currNode.startTagEnd) {\n      result.unshift([currNode.start + 1, currNode.startTagEnd - 1]);\n      const attributeLevelRanges = this.getAttributeLevelRanges(document, currNode, currOffset);\n      result = attributeLevelRanges.concat(result);\n      return result;\n    } else if (currNode.startTagEnd <= currOffset && currOffset <= currNode.endTagStart) {\n      result.unshift([currNode.startTagEnd, currNode.endTagStart]);\n      return result;\n    } else {\n      if (currOffset >= currNode.endTagStart + 2) {\n        result.unshift([currNode.endTagStart + 2, currNode.end - 1]);\n      }\n      return result;\n    }\n  }\n  getAllParentTagRanges(initialNode) {\n    let currNode = initialNode;\n    const result = [];\n    while (currNode.parent) {\n      currNode = currNode.parent;\n      this.getNodeRanges(currNode).forEach((r) => result.push(r));\n    }\n    return result;\n  }\n  getNodeRanges(n) {\n    if (n.startTagEnd && n.endTagStart && n.startTagEnd < n.endTagStart) {\n      return [\n        [n.startTagEnd, n.endTagStart],\n        [n.start, n.end]\n      ];\n    }\n    return [\n      [n.start, n.end]\n    ];\n  }\n  getAttributeLevelRanges(document, currNode, currOffset) {\n    const currNodeRange = Range.create(document.positionAt(currNode.start), document.positionAt(currNode.end));\n    const currNodeText = document.getText(currNodeRange);\n    const relativeOffset = currOffset - currNode.start;\n    const scanner = createScanner(currNodeText);\n    let token = scanner.scan();\n    const positionOffset = currNode.start;\n    const result = [];\n    let isInsideAttribute = false;\n    let attrStart = -1;\n    while (token !== TokenType.EOS) {\n      switch (token) {\n        case TokenType.AttributeName: {\n          if (relativeOffset < scanner.getTokenOffset()) {\n            isInsideAttribute = false;\n            break;\n          }\n          if (relativeOffset <= scanner.getTokenEnd()) {\n            result.unshift([scanner.getTokenOffset(), scanner.getTokenEnd()]);\n          }\n          isInsideAttribute = true;\n          attrStart = scanner.getTokenOffset();\n          break;\n        }\n        case TokenType.AttributeValue: {\n          if (!isInsideAttribute) {\n            break;\n          }\n          const valueText = scanner.getTokenText();\n          if (relativeOffset < scanner.getTokenOffset()) {\n            result.push([attrStart, scanner.getTokenEnd()]);\n            break;\n          }\n          if (relativeOffset >= scanner.getTokenOffset() && relativeOffset <= scanner.getTokenEnd()) {\n            result.unshift([scanner.getTokenOffset(), scanner.getTokenEnd()]);\n            if (valueText[0] === `\"` && valueText[valueText.length - 1] === `\"` || valueText[0] === `'` && valueText[valueText.length - 1] === `'`) {\n              if (relativeOffset >= scanner.getTokenOffset() + 1 && relativeOffset <= scanner.getTokenEnd() - 1) {\n                result.unshift([scanner.getTokenOffset() + 1, scanner.getTokenEnd() - 1]);\n              }\n            }\n            result.push([attrStart, scanner.getTokenEnd()]);\n          }\n          break;\n        }\n      }\n      token = scanner.scan();\n    }\n    return result.map((pair) => {\n      return [pair[0] + positionOffset, pair[1] + positionOffset];\n    });\n  }\n};\n\n// node_modules/vscode-html-languageservice/lib/esm/languageFacts/data/webCustomData.js\nvar htmlData = {\n  \"version\": 1.1,\n  \"tags\": [\n    {\n      \"name\": \"html\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The html element represents the root of an HTML document.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"manifest\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Specifies the URI of a resource manifest indicating resources that should be cached locally. See [Using the application cache](https://developer.mozilla.org/en-US/docs/Web/HTML/Using_the_application_cache) for details.\"\n          }\n        },\n        {\n          \"name\": \"version\",\n          \"description\": 'Specifies the version of the HTML [Document Type Definition](https://developer.mozilla.org/en-US/docs/Glossary/DTD \"Document Type Definition: In HTML, the doctype is the required \"<!DOCTYPE html>\" preamble found at the top of all documents. Its sole purpose is to prevent a browser from switching into so-called \\u201Cquirks mode\\u201D when rendering a document; that is, the \"<!DOCTYPE html>\" doctype ensures that the browser makes a best-effort attempt at following the relevant specifications, rather than using a different rendering mode that is incompatible with some specifications.\") that governs the current document. This attribute is not needed, because it is redundant with the version information in the document type declaration.'\n        },\n        {\n          \"name\": \"xmlns\",\n          \"description\": 'Specifies the XML Namespace of the document. Default value is `\"http://www.w3.org/1999/xhtml\"`. This is required in documents parsed with XML parsers, and optional in text/html documents.'\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/html\"\n        }\n      ]\n    },\n    {\n      \"name\": \"head\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The head element represents a collection of metadata for the Document.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"profile\",\n          \"description\": \"The URIs of one or more metadata profiles, separated by white space.\"\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/head\"\n        }\n      ]\n    },\n    {\n      \"name\": \"title\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The title element represents the document's title or name. Authors should use titles that identify their documents even when they are used out of context, for example in a user's history or bookmarks, or in search results. The document's title is often different from its first heading, since the first heading does not have to stand alone when taken out of context.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/title\"\n        }\n      ]\n    },\n    {\n      \"name\": \"base\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The base element allows authors to specify the document base URL for the purposes of resolving relative URLs, and the name of the default browsing context for the purposes of following hyperlinks. The element does not represent any content beyond this information.\"\n      },\n      \"void\": true,\n      \"attributes\": [\n        {\n          \"name\": \"href\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The base URL to be used throughout the document for relative URL addresses. If this attribute is specified, this element must come before any other elements with attributes whose values are URLs. Absolute and relative URLs are allowed.\"\n          }\n        },\n        {\n          \"name\": \"target\",\n          \"valueSet\": \"target\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"A name or keyword indicating the default location to display the result when hyperlinks or forms cause navigation, for elements that do not have an explicit target reference. It is a name of, or keyword for, a _browsing context_ (for example: tab, window, or inline frame). The following keywords have special meanings:\\n\\n*   `_self`: Load the result into the same browsing context as the current one. This value is the default if the attribute is not specified.\\n*   `_blank`: Load the result into a new unnamed browsing context.\\n*   `_parent`: Load the result into the parent browsing context of the current one. If there is no parent, this option behaves the same way as `_self`.\\n*   `_top`: Load the result into the top-level browsing context (that is, the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as `_self`.\\n\\nIf this attribute is specified, this element must come before any other elements with attributes whose values are URLs.\"\n          }\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/base\"\n        }\n      ]\n    },\n    {\n      \"name\": \"link\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The link element allows authors to link their document to other resources.\"\n      },\n      \"void\": true,\n      \"attributes\": [\n        {\n          \"name\": \"href\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'This attribute specifies the [URL](https://developer.mozilla.org/en-US/docs/Glossary/URL \"URL: Uniform Resource Locator (URL) is a text string specifying where a resource can be found on the Internet.\") of the linked resource. A URL can be absolute or relative.'\n          }\n        },\n        {\n          \"name\": \"crossorigin\",\n          \"valueSet\": \"xo\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'This enumerated attribute indicates whether [CORS](https://developer.mozilla.org/en-US/docs/Glossary/CORS \"CORS: CORS (Cross-Origin Resource Sharing) is a system, consisting of transmitting HTTP headers, that determines whether browsers block frontend JavaScript code from accessing responses for cross-origin requests.\") must be used when fetching the resource. [CORS-enabled images](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_Enabled_Image) can be reused in the [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas \"Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.\") element without being _tainted_. The allowed values are:\\n\\n`anonymous`\\n\\nA cross-origin request (i.e. with an [`Origin`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin \"The Origin request header indicates where a fetch originates from. It doesn\\'t include any path information, but only the server name. It is sent with CORS requests, as well as with POST requests. It is similar to the Referer header, but, unlike this header, it doesn\\'t disclose the whole path.\") HTTP header) is performed, but no credential is sent (i.e. no cookie, X.509 certificate, or HTTP Basic authentication). If the server does not give credentials to the origin site (by not setting the [`Access-Control-Allow-Origin`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin \"The Access-Control-Allow-Origin response header indicates whether the response can be shared with requesting code from the given origin.\") HTTP header) the image will be tainted and its usage restricted.\\n\\n`use-credentials`\\n\\nA cross-origin request (i.e. with an `Origin` HTTP header) is performed along with a credential sent (i.e. a cookie, certificate, and/or HTTP Basic authentication is performed). If the server does not give credentials to the origin site (through [`Access-Control-Allow-Credentials`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials \"The Access-Control-Allow-Credentials response header tells browsers whether to expose the response to frontend JavaScript code when the request\\'s credentials mode (Request.credentials) is \"include\".\") HTTP header), the resource will be _tainted_ and its usage restricted.\\n\\nIf the attribute is not present, the resource is fetched without a [CORS](https://developer.mozilla.org/en-US/docs/Glossary/CORS \"CORS: CORS (Cross-Origin Resource Sharing) is a system, consisting of transmitting HTTP headers, that determines whether browsers block frontend JavaScript code from accessing responses for cross-origin requests.\") request (i.e. without sending the `Origin` HTTP header), preventing its non-tainted usage. If invalid, it is handled as if the enumerated keyword **anonymous** was used. See [CORS settings attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) for additional information.'\n          }\n        },\n        {\n          \"name\": \"rel\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"This attribute names a relationship of the linked document to the current document. The attribute must be a space-separated list of the [link types values](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types).\"\n          }\n        },\n        {\n          \"name\": \"media\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"This attribute specifies the media that the linked resource applies to. Its value must be a media type / [media query](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_queries). This attribute is mainly useful when linking to external stylesheets \\u2014 it allows the user agent to pick the best adapted one for the device it runs on.\\n\\n**Notes:**\\n\\n*   In HTML 4, this can only be a simple white-space-separated list of media description literals, i.e., [media types and groups](https://developer.mozilla.org/en-US/docs/Web/CSS/@media), where defined and allowed as values for this attribute, such as `print`, `screen`, `aural`, `braille`. HTML5 extended this to any kind of [media queries](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_queries), which are a superset of the allowed values of HTML 4.\\n*   Browsers not supporting [CSS3 Media Queries](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_queries) won't necessarily recognize the adequate link; do not forget to set fallback links, the restricted set of media queries defined in HTML 4.\"\n          }\n        },\n        {\n          \"name\": \"hreflang\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"This attribute indicates the language of the linked resource. It is purely advisory. Allowed values are determined by [BCP47](https://www.ietf.org/rfc/bcp/bcp47.txt). Use this attribute only if the [`href`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-href) attribute is present.\"\n          }\n        },\n        {\n          \"name\": \"type\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'This attribute is used to define the type of the content linked to. The value of the attribute should be a MIME type such as **text/html**, **text/css**, and so on. The common use of this attribute is to define the type of stylesheet being referenced (such as **text/css**), but given that CSS is the only stylesheet language used on the web, not only is it possible to omit the `type` attribute, but is actually now recommended practice. It is also used on `rel=\"preload\"` link types, to make sure the browser only downloads file types that it supports.'\n          }\n        },\n        {\n          \"name\": \"sizes\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"This attribute defines the sizes of the icons for visual media contained in the resource. It must be present only if the [`rel`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link#attr-rel) contains a value of `icon` or a non-standard type such as Apple's `apple-touch-icon`. It may have the following values:\\n\\n*   `any`, meaning that the icon can be scaled to any size as it is in a vector format, like `image/svg+xml`.\\n*   a white-space separated list of sizes, each in the format `_<width in pixels>_x_<height in pixels>_` or `_<width in pixels>_X_<height in pixels>_`. Each of these sizes must be contained in the resource.\\n\\n**Note:** Most icon formats are only able to store one single icon; therefore most of the time the [`sizes`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-sizes) contains only one entry. MS's ICO format does, as well as Apple's ICNS. ICO is more ubiquitous; you should definitely use it.\"\n          }\n        },\n        {\n          \"name\": \"as\",\n          \"description\": 'This attribute is only used when `rel=\"preload\"` or `rel=\"prefetch\"` has been set on the `<link>` element. It specifies the type of content being loaded by the `<link>`, which is necessary for content prioritization, request matching, application of correct [content security policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP), and setting of correct [`Accept`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept \"The Accept request HTTP header advertises which content types, expressed as MIME types, the client is able to understand. Using content negotiation, the server then selects one of the proposals, uses it and informs the client of its choice with the Content-Type response header. Browsers set adequate values for this header depending on\\xA0the context where the request is done: when fetching a CSS stylesheet a different value is set for the request than when fetching an image,\\xA0video or a script.\") request header.'\n        },\n        {\n          \"name\": \"importance\",\n          \"description\": \"Indicates the relative importance of the resource. Priority hints are delegated using the values:\"\n        },\n        {\n          \"name\": \"importance\",\n          \"description\": '**`auto`**: Indicates\\xA0**no\\xA0preference**. The browser may use its own heuristics to decide the priority of the resource.\\n\\n**`high`**: Indicates to the\\xA0browser\\xA0that the resource is of\\xA0**high** priority.\\n\\n**`low`**:\\xA0Indicates to the\\xA0browser\\xA0that the resource is of\\xA0**low** priority.\\n\\n**Note:** The `importance` attribute may only be used for the `<link>` element if `rel=\"preload\"` or `rel=\"prefetch\"` is present.'\n        },\n        {\n          \"name\": \"integrity\",\n          \"description\": \"Contains inline metadata \\u2014 a base64-encoded cryptographic hash of the resource (file) you\\u2019re telling the browser to fetch. The browser can use this to verify that the fetched resource has been delivered free of unexpected manipulation. See [Subresource Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity).\"\n        },\n        {\n          \"name\": \"referrerpolicy\",\n          \"description\": 'A string indicating which referrer to use when fetching the resource:\\n\\n*   `no-referrer` means that the [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent.\\n*   `no-referrer-when-downgrade` means that no [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will be sent when navigating to an origin without TLS (HTTPS). This is a user agent\\u2019s default behavior, if no policy is otherwise specified.\\n*   `origin` means that the referrer will be the origin of the page, which is roughly the scheme, the host, and the port.\\n*   `origin-when-cross-origin` means that navigating to other origins will be limited to the scheme, the host, and the port, while navigating on the same origin will include the referrer\\'s path.\\n*   `unsafe-url` means that the referrer will include the origin and the path (but not the fragment, password, or username). This case is unsafe because it can leak origins and paths from TLS-protected resources to insecure origins.'\n        },\n        {\n          \"name\": \"title\",\n          \"description\": 'The `title` attribute has special semantics on the `<link>` element. When used on a `<link rel=\"stylesheet\">` it defines a [preferred or an alternate stylesheet](https://developer.mozilla.org/en-US/docs/Web/CSS/Alternative_style_sheets). Incorrectly using it may [cause the stylesheet to be ignored](https://developer.mozilla.org/en-US/docs/Correctly_Using_Titles_With_External_Stylesheets).'\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/link\"\n        }\n      ]\n    },\n    {\n      \"name\": \"meta\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The meta element represents various kinds of metadata that cannot be expressed using the title, base, link, style, and script elements.\"\n      },\n      \"void\": true,\n      \"attributes\": [\n        {\n          \"name\": \"name\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'This attribute defines the name of a piece of document-level metadata. It should not be set if one of the attributes [`itemprop`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-itemprop), [`http-equiv`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-http-equiv) or [`charset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-charset) is also set.\\n\\nThis metadata name is associated with the value contained by the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) attribute. The possible values for the name attribute are:\\n\\n*   `application-name` which defines the name of the application running in the web page.\\n    \\n    **Note:**\\n    \\n    *   Browsers may use this to identify the application. It is different from the [`<title>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/title \"The HTML Title element (<title>) defines the document\\'s title that is shown in a browser\\'s title bar or a page\\'s tab.\") element, which usually contain the application name, but may also contain information like the document name or a status.\\n    *   Simple web pages shouldn\\'t define an application-name.\\n    \\n*   `author` which defines the name of the document\\'s author.\\n*   `description` which contains a short and accurate summary of the content of the page. Several browsers, like Firefox and Opera, use this as the default description of bookmarked pages.\\n*   `generator` which contains the identifier of the software that generated the page.\\n*   `keywords` which contains words relevant to the page\\'s content separated by commas.\\n*   `referrer` which controls the [`Referer` HTTP header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer) attached to requests sent from the document:\\n    \\n    Values for the `content` attribute of `<meta name=\"referrer\">`\\n    \\n    `no-referrer`\\n    \\n    Do not send a HTTP `Referrer` header.\\n    \\n    `origin`\\n    \\n    Send the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) of the document.\\n    \\n    `no-referrer-when-downgrade`\\n    \\n    Send the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) as a referrer to URLs as secure as the current page, (https\\u2192https), but does not send a referrer to less secure URLs (https\\u2192http). This is the default behaviour.\\n    \\n    `origin-when-cross-origin`\\n    \\n    Send the full URL (stripped of parameters) for same-origin requests, but only send the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) for other cases.\\n    \\n    `same-origin`\\n    \\n    A referrer will be sent for [same-site origins](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy), but cross-origin requests will contain no referrer information.\\n    \\n    `strict-origin`\\n    \\n    Only send the origin of the document as the referrer to a-priori as-much-secure destination (HTTPS->HTTPS), but don\\'t send it to a less secure destination (HTTPS->HTTP).\\n    \\n    `strict-origin-when-cross-origin`\\n    \\n    Send a full URL when performing a same-origin request, only send the origin of the document to a-priori as-much-secure destination (HTTPS->HTTPS), and send no header to a less secure destination (HTTPS->HTTP).\\n    \\n    `unsafe-URL`\\n    \\n    Send the full URL (stripped of parameters) for same-origin or cross-origin requests.\\n    \\n    **Notes:**\\n    \\n    *   Some browsers support the deprecated values of `always`, `default`, and `never` for referrer.\\n    *   Dynamically inserting `<meta name=\"referrer\">` (with [`document.write`](https://developer.mozilla.org/en-US/docs/Web/API/Document/write) or [`appendChild`](https://developer.mozilla.org/en-US/docs/Web/API/Node/appendChild)) makes the referrer behaviour unpredictable.\\n    *   When several conflicting policies are defined, the no-referrer policy is applied.\\n    \\n\\nThis attribute may also have a value taken from the extended list defined on [WHATWG Wiki MetaExtensions page](https://wiki.whatwg.org/wiki/MetaExtensions). Although none have been formally accepted yet, a few commonly used names are:\\n\\n*   `creator` which defines the name of the creator of the document, such as an organization or institution. If there are more than one, several [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") elements should be used.\\n*   `googlebot`, a synonym of `robots`, is only followed by Googlebot (the indexing crawler for Google).\\n*   `publisher` which defines the name of the document\\'s publisher.\\n*   `robots` which defines the behaviour that cooperative crawlers, or \"robots\", should use with the page. It is a comma-separated list of the values below:\\n    \\n    Values for the content of `<meta name=\"robots\">`\\n    \\n    Value\\n    \\n    Description\\n    \\n    Used by\\n    \\n    `index`\\n    \\n    Allows the robot to index the page (default).\\n    \\n    All\\n    \\n    `noindex`\\n    \\n    Requests the robot to not index the page.\\n    \\n    All\\n    \\n    `follow`\\n    \\n    Allows the robot to follow the links on the page (default).\\n    \\n    All\\n    \\n    `nofollow`\\n    \\n    Requests the robot to not follow the links on the page.\\n    \\n    All\\n    \\n    `none`\\n    \\n    Equivalent to `noindex, nofollow`\\n    \\n    [Google](https://support.google.com/webmasters/answer/79812)\\n    \\n    `noodp`\\n    \\n    Prevents using the [Open Directory Project](https://www.dmoz.org/) description, if any, as the page description in search engine results.\\n    \\n    [Google](https://support.google.com/webmasters/answer/35624#nodmoz), [Yahoo](https://help.yahoo.com/kb/search-for-desktop/meta-tags-robotstxt-yahoo-search-sln2213.html#cont5), [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\\n    \\n    `noarchive`\\n    \\n    Requests the search engine not to cache the page content.\\n    \\n    [Google](https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag#valid-indexing--serving-directives), [Yahoo](https://help.yahoo.com/kb/search-for-desktop/SLN2213.html), [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\\n    \\n    `nosnippet`\\n    \\n    Prevents displaying any description of the page in search engine results.\\n    \\n    [Google](https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag#valid-indexing--serving-directives), [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\\n    \\n    `noimageindex`\\n    \\n    Requests this page not to appear as the referring page of an indexed image.\\n    \\n    [Google](https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag#valid-indexing--serving-directives)\\n    \\n    `nocache`\\n    \\n    Synonym of `noarchive`.\\n    \\n    [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\\n    \\n    **Notes:**\\n    \\n    *   Only cooperative robots follow these rules. Do not expect to prevent e-mail harvesters with them.\\n    *   The robot still needs to access the page in order to read these rules. To prevent bandwidth consumption, use a _[robots.txt](https://developer.mozilla.org/en-US/docs/Glossary/robots.txt \"robots.txt: Robots.txt is a file which is usually placed in the root of any website. It decides whether\\xA0crawlers are permitted or forbidden access to the web site.\")_ file.\\n    *   If you want to remove a page, `noindex` will work, but only after the robot visits the page again. Ensure that the `robots.txt` file is not preventing revisits.\\n    *   Some values are mutually exclusive, like `index` and `noindex`, or `follow` and `nofollow`. In these cases the robot\\'s behaviour is undefined and may vary between them.\\n    *   Some crawler robots, like Google, Yahoo and Bing, support the same values for the HTTP header `X-Robots-Tag`; this allows non-HTML documents like images to use these rules.\\n    \\n*   `slurp`, is a synonym of `robots`, but only for Slurp - the crawler for Yahoo Search.\\n*   `viewport`, which gives hints about the size of the initial size of the [viewport](https://developer.mozilla.org/en-US/docs/Glossary/viewport \"viewport: A viewport represents a polygonal (normally rectangular) area in computer graphics that is currently being viewed. In web browser terms, it refers to the part of the document you\\'re viewing which is currently visible in its window (or the screen, if the document is being viewed in full screen mode). Content outside the viewport is not visible onscreen until scrolled into view.\"). Used by mobile devices only.\\n    \\n    Values for the content of `<meta name=\"viewport\">`\\n    \\n    Value\\n    \\n    Possible subvalues\\n    \\n    Description\\n    \\n    `width`\\n    \\n    A positive integer number, or the text `device-width`\\n    \\n    Defines the pixel width of the viewport that you want the web site to be rendered at.\\n    \\n    `height`\\n    \\n    A positive integer, or the text `device-height`\\n    \\n    Defines the height of the viewport. Not used by any browser.\\n    \\n    `initial-scale`\\n    \\n    A positive number between `0.0` and `10.0`\\n    \\n    Defines the ratio between the device width (`device-width` in portrait mode or `device-height` in landscape mode) and the viewport size.\\n    \\n    `maximum-scale`\\n    \\n    A positive number between `0.0` and `10.0`\\n    \\n    Defines the maximum amount to zoom in. It must be greater or equal to the `minimum-scale` or the behaviour is undefined. Browser settings can ignore this rule and iOS10+ ignores it by default.\\n    \\n    `minimum-scale`\\n    \\n    A positive number between `0.0` and `10.0`\\n    \\n    Defines the minimum zoom level. It must be smaller or equal to the `maximum-scale` or the behaviour is undefined. Browser settings can ignore this rule and iOS10+ ignores it by default.\\n    \\n    `user-scalable`\\n    \\n    `yes` or `no`\\n    \\n    If set to `no`, the user is not able to zoom in the webpage. The default is `yes`. Browser settings can ignore this rule, and iOS10+ ignores it by default.\\n    \\n    Specification\\n    \\n    Status\\n    \\n    Comment\\n    \\n    [CSS Device Adaptation  \\n    The definition of \\'<meta name=\"viewport\">\\' in that specification.](https://drafts.csswg.org/css-device-adapt/#viewport-meta)\\n    \\n    Working Draft\\n    \\n    Non-normatively describes the Viewport META element\\n    \\n    See also: [`@viewport`](https://developer.mozilla.org/en-US/docs/Web/CSS/@viewport \"The @viewport CSS at-rule lets you configure the viewport through which the document is viewed. It\\'s primarily used for mobile devices, but is also used by desktop browsers that support features like \"snap to edge\" (such as Microsoft Edge).\")\\n    \\n    **Notes:**\\n    \\n    *   Though unstandardized, this declaration is respected by most mobile browsers due to de-facto dominance.\\n    *   The default values may vary between devices and browsers.\\n    *   To learn about this declaration in Firefox for Mobile, see [this article](https://developer.mozilla.org/en-US/docs/Mobile/Viewport_meta_tag \"Mobile/Viewport meta tag\").'\n          }\n        },\n        {\n          \"name\": \"http-equiv\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'Defines a pragma directive. The attribute is named `**http-equiv**(alent)` because all the allowed values are names of particular HTTP headers:\\n\\n*   `\"content-language\"`  \\n    Defines the default language of the page. It can be overridden by the [lang](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang) attribute on any element.\\n    \\n    **Warning:** Do not use this value, as it is obsolete. Prefer the `lang` attribute on the [`<html>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/html \"The HTML <html> element represents the root (top-level element) of an HTML document, so it is also referred to as the root element. All other elements must be descendants of this element.\") element.\\n    \\n*   `\"content-security-policy\"`  \\n    Allows page authors to define a [content policy](https://developer.mozilla.org/en-US/docs/Web/Security/CSP/CSP_policy_directives) for the current page. Content policies mostly specify allowed server origins and script endpoints which help guard against cross-site scripting attacks.\\n*   `\"content-type\"`  \\n    Defines the [MIME type](https://developer.mozilla.org/en-US/docs/Glossary/MIME_type) of the document, followed by its character encoding. It follows the same syntax as the HTTP `content-type` entity-header field, but as it is inside a HTML page, most values other than `text/html` are impossible. Therefore the valid syntax for its `content` is the string \\'`text/html`\\' followed by a character set with the following syntax: \\'`; charset=_IANAcharset_`\\', where `IANAcharset` is the _preferred MIME name_ for a character set as [defined by the IANA.](https://www.iana.org/assignments/character-sets)\\n    \\n    **Warning:** Do not use this value, as it is obsolete. Use the [`charset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-charset) attribute on the [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") element.\\n    \\n    **Note:** As [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") can\\'t change documents\\' types in XHTML or HTML5\\'s XHTML serialization, never set the MIME type to an XHTML MIME type with `<meta>`.\\n    \\n*   `\"refresh\"`  \\n    This instruction specifies:\\n    *   The number of seconds until the page should be reloaded - only if the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) attribute contains a positive integer.\\n    *   The number of seconds until the page should redirect to another - only if the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) attribute contains a positive integer followed by the string \\'`;url=`\\', and a valid URL.\\n*   `\"set-cookie\"`  \\n    Defines a [cookie](https://developer.mozilla.org/en-US/docs/cookie) for the page. Its content must follow the syntax defined in the [IETF HTTP Cookie Specification](https://tools.ietf.org/html/draft-ietf-httpstate-cookie-14).\\n    \\n    **Warning:** Do not use this instruction, as it is obsolete. Use the HTTP header [`Set-Cookie`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie) instead.'\n          }\n        },\n        {\n          \"name\": \"content\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"This attribute contains the value for the [`http-equiv`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-http-equiv) or [`name`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-name) attribute, depending on which is used.\"\n          }\n        },\n        {\n          \"name\": \"charset\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'This attribute declares the page\\'s character encoding. It must contain a [standard IANA MIME name for character encodings](https://www.iana.org/assignments/character-sets). Although the standard doesn\\'t request a specific encoding, it suggests:\\n\\n*   Authors are encouraged to use [`UTF-8`](https://developer.mozilla.org/en-US/docs/Glossary/UTF-8).\\n*   Authors should not use ASCII-incompatible encodings to avoid security risk: browsers not supporting them may interpret harmful content as HTML. This happens with the `JIS_C6226-1983`, `JIS_X0212-1990`, `HZ-GB-2312`, `JOHAB`, the ISO-2022 family and the EBCDIC family.\\n\\n**Note:** ASCII-incompatible encodings are those that don\\'t map the 8-bit code points `0x20` to `0x7E` to the `0x0020` to `0x007E` Unicode code points)\\n\\n*   Authors **must not** use `CESU-8`, `UTF-7`, `BOCU-1` and/or `SCSU` as [cross-site scripting](https://developer.mozilla.org/en-US/docs/Glossary/Cross-site_scripting) attacks with these encodings have been demonstrated.\\n*   Authors should not use `UTF-32` because not all HTML5 encoding algorithms can distinguish it from `UTF-16`.\\n\\n**Notes:**\\n\\n*   The declared character encoding must match the one the page was saved with to avoid garbled characters and security holes.\\n*   The [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") element declaring the encoding must be inside the [`<head>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/head \"The HTML <head> element provides general information (metadata) about the document, including its title and links to its\\xA0scripts and style sheets.\") element and **within the first 1024 bytes** of the HTML as some browsers only look at those bytes before choosing an encoding.\\n*   This [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") element is only one part of the [algorithm to determine a page\\'s character set](https://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#encoding-sniffing-algorithm \"Algorithm charset page\"). The [`Content-Type` header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type) and any [Byte-Order Marks](https://developer.mozilla.org/en-US/docs/Glossary/Byte-Order_Mark \"The definition of that term (Byte-Order Marks) has not been written yet; please consider contributing it!\") override this element.\\n*   It is strongly recommended to define the character encoding. If a page\\'s encoding is undefined, cross-scripting techniques are possible, such as the [`UTF-7` fallback cross-scripting technique](https://code.google.com/p/doctype-mirror/wiki/ArticleUtf7).\\n*   The [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta \"The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\") element with a `charset` attribute is a synonym for the pre-HTML5 `<meta http-equiv=\"Content-Type\" content=\"text/html; charset=_IANAcharset_\">`, where _`IANAcharset`_ contains the value of the equivalent [`charset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-charset) attribute. This syntax is still allowed, although no longer recommended.'\n          }\n        },\n        {\n          \"name\": \"scheme\",\n          \"description\": \"This attribute defines the scheme in which metadata is described. A scheme is a context leading to the correct interpretations of the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) value, like a format.\\n\\n**Warning:** Do not use this value, as it is obsolete. There is no replacement as there was no real usage for it.\"\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/meta\"\n        }\n      ]\n    },\n    {\n      \"name\": \"style\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The style element allows authors to embed style information in their documents. The style element is one of several inputs to the styling processing model. The element does not represent content for the user.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"media\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"This attribute defines which media the style should be applied to. Its value is a [media query](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Media_queries), which defaults to `all` if the attribute is missing.\"\n          }\n        },\n        {\n          \"name\": \"nonce\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"A cryptographic nonce (number used once) used to whitelist inline styles in a [style-src Content-Security-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src). The server must generate a unique nonce value each time it transmits a policy. It is critical to provide a nonce that cannot be guessed as bypassing a resource\\u2019s policy is otherwise trivial.\"\n          }\n        },\n        {\n          \"name\": \"type\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"This attribute defines the styling language as a MIME type (charset should not be specified). This attribute is optional and defaults to `text/css` if it is not specified \\u2014 there is very little reason to include this in modern web documents.\"\n          }\n        },\n        {\n          \"name\": \"scoped\",\n          \"valueSet\": \"v\"\n        },\n        {\n          \"name\": \"title\",\n          \"description\": \"This attribute specifies [alternative style sheet](https://developer.mozilla.org/en-US/docs/Web/CSS/Alternative_style_sheets) sets.\"\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/style\"\n        }\n      ]\n    },\n    {\n      \"name\": \"body\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The body element represents the content of the document.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"onafterprint\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Function to call after the user has printed the document.\"\n          }\n        },\n        {\n          \"name\": \"onbeforeprint\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Function to call when the user requests printing of the document.\"\n          }\n        },\n        {\n          \"name\": \"onbeforeunload\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Function to call when the document is about to be unloaded.\"\n          }\n        },\n        {\n          \"name\": \"onhashchange\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Function to call when the fragment identifier part (starting with the hash (`'#'`) character) of the document's current address has changed.\"\n          }\n        },\n        {\n          \"name\": \"onlanguagechange\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Function to call when the preferred languages changed.\"\n          }\n        },\n        {\n          \"name\": \"onmessage\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Function to call when the document has received a message.\"\n          }\n        },\n        {\n          \"name\": \"onoffline\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Function to call when network communication has failed.\"\n          }\n        },\n        {\n          \"name\": \"ononline\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Function to call when network communication has been restored.\"\n          }\n        },\n        {\n          \"name\": \"onpagehide\"\n        },\n        {\n          \"name\": \"onpageshow\"\n        },\n        {\n          \"name\": \"onpopstate\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Function to call when the user has navigated session history.\"\n          }\n        },\n        {\n          \"name\": \"onstorage\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Function to call when the storage area has changed.\"\n          }\n        },\n        {\n          \"name\": \"onunload\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Function to call when the document is going away.\"\n          }\n        },\n        {\n          \"name\": \"alink\",\n          \"description\": 'Color of text for hyperlinks when selected. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color \"The color CSS property sets the foreground color value of an element\\'s text and text decorations, and sets the currentcolor value.\") property in conjunction with the [`:active`](https://developer.mozilla.org/en-US/docs/Web/CSS/:active \"The :active CSS pseudo-class represents an element (such as a button) that is being activated by the user.\") pseudo-class instead._'\n        },\n        {\n          \"name\": \"background\",\n          \"description\": 'URI of a image to use as a background. _This method is non-conforming, use CSS [`background`](https://developer.mozilla.org/en-US/docs/Web/CSS/background \"The background shorthand CSS property sets all background style properties at once, such as color, image, origin and size, or repeat method.\") property on the element instead._'\n        },\n        {\n          \"name\": \"bgcolor\",\n          \"description\": 'Background color for the document. _This method is non-conforming, use CSS [`background-color`](https://developer.mozilla.org/en-US/docs/Web/CSS/background-color \"The background-color CSS property sets the background color of an element.\") property on the element instead._'\n        },\n        {\n          \"name\": \"bottommargin\",\n          \"description\": 'The margin of the bottom of the body. _This method is non-conforming, use CSS [`margin-bottom`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-bottom \"The margin-bottom CSS property sets the margin area on the bottom of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") property on the element instead._'\n        },\n        {\n          \"name\": \"leftmargin\",\n          \"description\": 'The margin of the left of the body. _This method is non-conforming, use CSS [`margin-left`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-left \"The margin-left CSS property sets the margin area on the left side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") property on the element instead._'\n        },\n        {\n          \"name\": \"link\",\n          \"description\": 'Color of text for unvisited hypertext links. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color \"The color CSS property sets the foreground color value of an element\\'s text and text decorations, and sets the currentcolor value.\") property in conjunction with the [`:link`](https://developer.mozilla.org/en-US/docs/Web/CSS/:link \"The :link CSS pseudo-class represents an element that has not yet been visited. It matches every unvisited <a>, <area>, or <link> element that has an href attribute.\") pseudo-class instead._'\n        },\n        {\n          \"name\": \"onblur\",\n          \"description\": \"Function to call when the document loses focus.\"\n        },\n        {\n          \"name\": \"onerror\",\n          \"description\": \"Function to call when the document fails to load properly.\"\n        },\n        {\n          \"name\": \"onfocus\",\n          \"description\": \"Function to call when the document receives focus.\"\n        },\n        {\n          \"name\": \"onload\",\n          \"description\": \"Function to call when the document has finished loading.\"\n        },\n        {\n          \"name\": \"onredo\",\n          \"description\": \"Function to call when the user has moved forward in undo transaction history.\"\n        },\n        {\n          \"name\": \"onresize\",\n          \"description\": \"Function to call when the document has been resized.\"\n        },\n        {\n          \"name\": \"onundo\",\n          \"description\": \"Function to call when the user has moved backward in undo transaction history.\"\n        },\n        {\n          \"name\": \"rightmargin\",\n          \"description\": 'The margin of the right of the body. _This method is non-conforming, use CSS [`margin-right`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-right \"The margin-right CSS property sets the margin area on the right side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") property on the element instead._'\n        },\n        {\n          \"name\": \"text\",\n          \"description\": 'Foreground color of text. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color \"The color CSS property sets the foreground color value of an element\\'s text and text decorations, and sets the currentcolor value.\") property on the element instead._'\n        },\n        {\n          \"name\": \"topmargin\",\n          \"description\": 'The margin of the top of the body. _This method is non-conforming, use CSS [`margin-top`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-top \"The margin-top CSS property sets the margin area on the top of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") property on the element instead._'\n        },\n        {\n          \"name\": \"vlink\",\n          \"description\": 'Color of text for visited hypertext links. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color \"The color CSS property sets the foreground color value of an element\\'s text and text decorations, and sets the currentcolor value.\") property in conjunction with the [`:visited`](https://developer.mozilla.org/en-US/docs/Web/CSS/:visited \"The :visited CSS pseudo-class represents links that the user has already visited. For privacy reasons, the styles that can be modified using this selector are very limited.\") pseudo-class instead._'\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/body\"\n        }\n      ]\n    },\n    {\n      \"name\": \"article\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The article element represents a complete, or self-contained, composition in a document, page, application, or site and that is, in principle, independently distributable or reusable, e.g. in syndication. This could be a forum post, a magazine or newspaper article, a blog entry, a user-submitted comment, an interactive widget or gadget, or any other independent item of content. Each article should be identified, typically by including a heading (h1\\u2013h6 element) as a child of the article element.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/article\"\n        }\n      ]\n    },\n    {\n      \"name\": \"section\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The section element represents a generic section of a document or application. A section, in this context, is a thematic grouping of content. Each section should be identified, typically by including a heading ( h1- h6 element) as a child of the section element.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/section\"\n        }\n      ]\n    },\n    {\n      \"name\": \"nav\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The nav element represents a section of a page that links to other pages or to parts within the page: a section with navigation links.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/nav\"\n        }\n      ]\n    },\n    {\n      \"name\": \"aside\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The aside element represents a section of a page that consists of content that is tangentially related to the content around the aside element, and which could be considered separate from that content. Such sections are often represented as sidebars in printed typography.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/aside\"\n        }\n      ]\n    },\n    {\n      \"name\": \"h1\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The h1 element represents a section heading.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements\"\n        }\n      ]\n    },\n    {\n      \"name\": \"h2\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The h2 element represents a section heading.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements\"\n        }\n      ]\n    },\n    {\n      \"name\": \"h3\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The h3 element represents a section heading.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements\"\n        }\n      ]\n    },\n    {\n      \"name\": \"h4\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The h4 element represents a section heading.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements\"\n        }\n      ]\n    },\n    {\n      \"name\": \"h5\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The h5 element represents a section heading.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements\"\n        }\n      ]\n    },\n    {\n      \"name\": \"h6\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The h6 element represents a section heading.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements\"\n        }\n      ]\n    },\n    {\n      \"name\": \"header\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The header element represents introductory content for its nearest ancestor sectioning content or sectioning root element. A header typically contains a group of introductory or navigational aids. When the nearest ancestor sectioning content or sectioning root element is the body element, then it applies to the whole page.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/header\"\n        }\n      ]\n    },\n    {\n      \"name\": \"footer\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The footer element represents a footer for its nearest ancestor sectioning content or sectioning root element. A footer typically contains information about its section such as who wrote it, links to related documents, copyright data, and the like.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/footer\"\n        }\n      ]\n    },\n    {\n      \"name\": \"address\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The address element represents the contact information for its nearest article or body element ancestor. If that is the body element, then the contact information applies to the document as a whole.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/address\"\n        }\n      ]\n    },\n    {\n      \"name\": \"p\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The p element represents a paragraph.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/p\"\n        }\n      ]\n    },\n    {\n      \"name\": \"hr\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The hr element represents a paragraph-level thematic break, e.g. a scene change in a story, or a transition to another topic within a section of a reference book.\"\n      },\n      \"void\": true,\n      \"attributes\": [\n        {\n          \"name\": \"align\",\n          \"description\": \"Sets the alignment of the rule on the page. If no value is specified, the default value is `left`.\"\n        },\n        {\n          \"name\": \"color\",\n          \"description\": \"Sets the color of the rule through color name or hexadecimal value.\"\n        },\n        {\n          \"name\": \"noshade\",\n          \"description\": \"Sets the rule to have no shading.\"\n        },\n        {\n          \"name\": \"size\",\n          \"description\": \"Sets the height, in pixels, of the rule.\"\n        },\n        {\n          \"name\": \"width\",\n          \"description\": \"Sets the length of the rule on the page through a pixel or percentage value.\"\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/hr\"\n        }\n      ]\n    },\n    {\n      \"name\": \"pre\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The pre element represents a block of preformatted text, in which structure is represented by typographic conventions rather than by elements.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"cols\",\n          \"description\": 'Contains the _preferred_ count of characters that a line should have. It was a non-standard synonym of [`width`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/pre#attr-width). To achieve such an effect, use CSS [`width`](https://developer.mozilla.org/en-US/docs/Web/CSS/width \"The width CSS property sets an element\\'s width. By default it sets the width of the content area, but if box-sizing is set to border-box, it sets the width of the border area.\") instead.'\n        },\n        {\n          \"name\": \"width\",\n          \"description\": 'Contains the _preferred_ count of characters that a line should have. Though technically still implemented, this attribute has no visual effect; to achieve such an effect, use CSS [`width`](https://developer.mozilla.org/en-US/docs/Web/CSS/width \"The width CSS property sets an element\\'s width. By default it sets the width of the content area, but if box-sizing is set to border-box, it sets the width of the border area.\") instead.'\n        },\n        {\n          \"name\": \"wrap\",\n          \"description\": 'Is a _hint_ indicating how the overflow must happen. In modern browser this hint is ignored and no visual effect results in its present; to achieve such an effect, use CSS [`white-space`](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space \"The white-space CSS property sets how white space inside an element is handled.\") instead.'\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/pre\"\n        }\n      ]\n    },\n    {\n      \"name\": \"blockquote\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The blockquote element represents content that is quoted from another source, optionally with a citation which must be within a footer or cite element, and optionally with in-line changes such as annotations and abbreviations.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"cite\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"A URL that designates a source document or message for the information quoted. This attribute is intended to point to information explaining the context or the reference for the quote.\"\n          }\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/blockquote\"\n        }\n      ]\n    },\n    {\n      \"name\": \"ol\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The ol element represents a list of items, where the items have been intentionally ordered, such that changing the order would change the meaning of the document.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"reversed\",\n          \"valueSet\": \"v\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"This Boolean attribute specifies that the items of the list are specified in reversed order.\"\n          }\n        },\n        {\n          \"name\": \"start\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'This integer attribute specifies the start value for numbering the individual list items. Although the ordering type of list elements might be Roman numerals, such as XXXI, or letters, the value of start is always represented as a number. To start numbering elements from the letter \"C\", use `<ol start=\"3\">`.\\n\\n**Note**: This attribute was deprecated in HTML4, but reintroduced in HTML5.'\n          }\n        },\n        {\n          \"name\": \"type\",\n          \"valueSet\": \"lt\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Indicates the numbering type:\\n\\n*   `'a'` indicates lowercase letters,\\n*   `'A'` indicates uppercase letters,\\n*   `'i'` indicates lowercase Roman numerals,\\n*   `'I'` indicates uppercase Roman numerals,\\n*   and `'1'` indicates numbers (default).\\n\\nThe type set is used for the entire list unless a different [`type`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/li#attr-type) attribute is used within an enclosed [`<li>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/li \\\"The HTML <li> element is used to represent an item in a list. It must be contained in a parent element: an ordered list (<ol>), an unordered list (<ul>), or a menu (<menu>). In menus and unordered lists, list items are usually displayed using bullet points. In ordered lists, they are usually displayed with an ascending counter on the left, such as a number or letter.\\\") element.\\n\\n**Note:** This attribute was deprecated in HTML4, but reintroduced in HTML5.\\n\\nUnless the value of the list number matters (e.g. in legal or technical documents where items are to be referenced by their number/letter), the CSS [`list-style-type`](https://developer.mozilla.org/en-US/docs/Web/CSS/list-style-type \\\"The list-style-type CSS property sets the marker (such as a disc, character, or custom counter style) of a list item element.\\\") property should be used instead.\"\n          }\n        },\n        {\n          \"name\": \"compact\",\n          \"description\": 'This Boolean attribute hints that the list should be rendered in a compact style. The interpretation of this attribute depends on the user agent and it doesn\\'t work in all browsers.\\n\\n**Warning:** Do not use this attribute, as it has been deprecated: the [`<ol>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol \"The HTML <ol> element represents an ordered list of items, typically rendered as a numbered list.\") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). To give an effect similar to the `compact` attribute, the [CSS](https://developer.mozilla.org/en-US/docs/CSS) property [`line-height`](https://developer.mozilla.org/en-US/docs/Web/CSS/line-height \"The line-height CSS property sets the amount of space used for lines, such as in text. On block-level elements, it specifies the minimum height of line boxes within the element. On non-replaced inline elements, it specifies the height that is used to calculate line box height.\") can be used with a value of `80%`.'\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/ol\"\n        }\n      ]\n    },\n    {\n      \"name\": \"ul\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The ul element represents a list of items, where the order of the items is not important \\u2014 that is, where changing the order would not materially change the meaning of the document.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"compact\",\n          \"description\": 'This Boolean attribute hints that the list should be rendered in a compact style. The interpretation of this attribute depends on the user agent and it doesn\\'t work in all browsers.\\n\\n**Usage note:\\xA0**Do not use this attribute, as it has been deprecated: the [`<ul>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ul \"The HTML <ul> element represents an unordered list of items, typically rendered as a bulleted list.\") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). To give a similar effect as the `compact` attribute, the [CSS](https://developer.mozilla.org/en-US/docs/CSS) property [line-height](https://developer.mozilla.org/en-US/docs/CSS/line-height) can be used with a value of `80%`.'\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/ul\"\n        }\n      ]\n    },\n    {\n      \"name\": \"li\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The li element represents a list item. If its parent element is an ol, ul, or menu element, then the element is an item of the parent element's list, as defined for those elements. Otherwise, the list item has no defined list-related relationship to any other li element.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"value\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'This integer attribute indicates the current ordinal value of the list item as defined by the [`<ol>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol \"The HTML <ol> element represents an ordered list of items, typically rendered as a numbered list.\") element. The only allowed value for this attribute is a number, even if the list is displayed with Roman numerals or letters. List items that follow this one continue numbering from the value set. The **value** attribute has no meaning for unordered lists ([`<ul>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ul \"The HTML <ul> element represents an unordered list of items, typically rendered as a bulleted list.\")) or for menus ([`<menu>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/menu \"The HTML <menu> element represents a group of commands that a user can perform or activate. This includes both list menus, which might appear across the top of a screen, as well as context menus, such as those that might appear underneath a button after it has been clicked.\")).\\n\\n**Note**: This attribute was deprecated in HTML4, but reintroduced in HTML5.\\n\\n**Note:** Prior to Gecko\\xA09.0, negative values were incorrectly converted to 0. Starting in Gecko\\xA09.0 all integer values are correctly parsed.'\n          }\n        },\n        {\n          \"name\": \"type\",\n          \"description\": 'This character attribute indicates the numbering type:\\n\\n*   `a`: lowercase letters\\n*   `A`: uppercase letters\\n*   `i`: lowercase Roman numerals\\n*   `I`: uppercase Roman numerals\\n*   `1`: numbers\\n\\nThis type overrides the one used by its parent [`<ol>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol \"The HTML <ol> element represents an ordered list of items, typically rendered as a numbered list.\") element, if any.\\n\\n**Usage note:** This attribute has been deprecated: use the CSS [`list-style-type`](https://developer.mozilla.org/en-US/docs/Web/CSS/list-style-type \"The list-style-type CSS property sets the marker (such as a disc, character, or custom counter style) of a list item element.\") property instead.'\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/li\"\n        }\n      ]\n    },\n    {\n      \"name\": \"dl\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The dl element represents an association list consisting of zero or more name-value groups (a description list). A name-value group consists of one or more names (dt elements) followed by one or more values (dd elements), ignoring any nodes other than dt and dd elements. Within a single dl element, there should not be more than one dt element for each name.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/dl\"\n        }\n      ]\n    },\n    {\n      \"name\": \"dt\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The dt element represents the term, or name, part of a term-description group in a description list (dl element).\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/dt\"\n        }\n      ]\n    },\n    {\n      \"name\": \"dd\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The dd element represents the description, definition, or value, part of a term-description group in a description list (dl element).\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"nowrap\",\n          \"description\": \"If the value of this attribute is set to `yes`, the definition text will not wrap. The default value is `no`.\"\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/dd\"\n        }\n      ]\n    },\n    {\n      \"name\": \"figure\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The figure element represents some flow content, optionally with a caption, that is self-contained (like a complete sentence) and is typically referenced as a single unit from the main flow of the document.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/figure\"\n        }\n      ]\n    },\n    {\n      \"name\": \"figcaption\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The figcaption element represents a caption or legend for the rest of the contents of the figcaption element's parent figure element, if any.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/figcaption\"\n        }\n      ]\n    },\n    {\n      \"name\": \"main\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The main element represents the main content of the body of a document or application. The main content area consists of content that is directly related to or expands upon the central topic of a document or central functionality of an application.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/main\"\n        }\n      ]\n    },\n    {\n      \"name\": \"div\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The div element has no special meaning at all. It represents its children. It can be used with the class, lang, and title attributes to mark up semantics common to a group of consecutive elements.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/div\"\n        }\n      ]\n    },\n    {\n      \"name\": \"a\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"If the a element has an href attribute, then it represents a hyperlink (a hypertext anchor) labeled by its contents.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"href\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'Contains a URL or a URL fragment that the hyperlink points to.\\nA URL fragment is a name preceded by a hash mark (`#`), which specifies an internal target location (an [`id`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-id) of an HTML element) within the current document. URLs are not restricted to Web (HTTP)-based documents, but can use any protocol supported by the browser. For example, [`file:`](https://en.wikipedia.org/wiki/File_URI_scheme), `ftp:`, and `mailto:` work in most browsers.\\n\\n**Note:** You can use `href=\"#top\"` or the empty fragment `href=\"#\"` to link to the top of the current page. [This behavior is specified by HTML5](https://www.w3.org/TR/html5/single-page.html#scroll-to-fragid).'\n          }\n        },\n        {\n          \"name\": \"target\",\n          \"valueSet\": \"target\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'Specifies where to display the linked URL. It is a name of, or keyword for, a _browsing context_: a tab, window, or `<iframe>`. The following keywords have special meanings:\\n\\n*   `_self`: Load the URL into the same browsing context as the current one. This is the default behavior.\\n*   `_blank`: Load the URL into a new browsing context. This is usually a tab, but users can configure browsers to use new windows instead.\\n*   `_parent`: Load the URL into the parent browsing context of the current one. If there is no parent, this behaves the same way as `_self`.\\n*   `_top`: Load the URL into the top-level browsing context (that is, the \"highest\" browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this behaves the same way as `_self`.\\n\\n**Note:** When using `target`, consider adding `rel=\"noreferrer\"` to avoid exploitation of the `window.opener` API.\\n\\n**Note:** Linking to another page using `target=\"_blank\"` will run the new page on the same process as your page. If the new page is executing expensive JS, your page\\'s performance may suffer. To avoid this use `rel=\"noopener\"`.'\n          }\n        },\n        {\n          \"name\": \"download\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"This attribute instructs browsers to download a URL instead of navigating to it, so the user will be prompted to save it as a local file. If the attribute has a value, it is used as the pre-filled file name in the Save prompt (the user can still change the file name if they want). There are no restrictions on allowed values, though `/` and `\\\\` are converted to underscores. Most file systems limit some punctuation in file names, and browsers will adjust the suggested name accordingly.\\n\\n**Notes:**\\n\\n*   This attribute only works for [same-origin URLs](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy).\\n*   Although HTTP(s) URLs need to be in the same-origin, [`blob:` URLs](https://developer.mozilla.org/en-US/docs/Web/API/URL.createObjectURL) and [`data:` URLs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs) are allowed so that content generated by JavaScript, such as pictures created in an image-editor Web app, can be downloaded.\\n*   If the HTTP header [`Content-Disposition:`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition) gives a different filename than this attribute, the HTTP header takes priority over this attribute.\\n*   If `Content-Disposition:` is set to `inline`, Firefox prioritizes `Content-Disposition`, like the filename case, while Chrome prioritizes the `download` attribute.\"\n          }\n        },\n        {\n          \"name\": \"ping\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'Contains a space-separated list of URLs to which, when the hyperlink is followed, [`POST`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST \"The HTTP POST method sends data to the server. The type of the body of the request is indicated by the Content-Type header.\") requests with the body `PING` will be sent by the browser (in the background). Typically used for tracking.'\n          }\n        },\n        {\n          \"name\": \"rel\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Specifies the relationship of the target object to the link object. The value is a space-separated list of [link types](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types).\"\n          }\n        },\n        {\n          \"name\": \"hreflang\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'This attribute indicates the human language of the linked resource. It is purely advisory, with no built-in functionality. Allowed values are determined by [BCP47](https://www.ietf.org/rfc/bcp/bcp47.txt \"Tags for Identifying Languages\").'\n          }\n        },\n        {\n          \"name\": \"type\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'Specifies the media type in the form of a [MIME type](https://developer.mozilla.org/en-US/docs/Glossary/MIME_type \"MIME type: A\\xA0MIME type\\xA0(now properly called \"media type\", but\\xA0also sometimes \"content type\") is a string sent along\\xA0with a file indicating the type of the file (describing the content format, for example, a sound file might be labeled\\xA0audio/ogg, or an image file\\xA0image/png).\") for the linked URL. It is purely advisory, with no built-in functionality.'\n          }\n        },\n        {\n          \"name\": \"referrerpolicy\",\n          \"description\": \"Indicates which [referrer](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer) to send when fetching the URL:\\n\\n*   `'no-referrer'` means the `Referer:` header will not be sent.\\n*   `'no-referrer-when-downgrade'` means no `Referer:` header will be sent when navigating to an origin without HTTPS. This is the default behavior.\\n*   `'origin'` means the referrer will be the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) of the page, not including information after the domain.\\n*   `'origin-when-cross-origin'` meaning that navigations to other origins will be limited to the scheme, the host and the port, while navigations on the same origin will include the referrer's path.\\n*   `'strict-origin-when-cross-origin'`\\n*   `'unsafe-url'` means the referrer will include the origin and path, but not the fragment, password, or username. This is unsafe because it can leak data from secure URLs to insecure ones.\"\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/a\"\n        }\n      ]\n    },\n    {\n      \"name\": \"em\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The em element represents stress emphasis of its contents.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/em\"\n        }\n      ]\n    },\n    {\n      \"name\": \"strong\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The strong element represents strong importance, seriousness, or urgency for its contents.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/strong\"\n        }\n      ]\n    },\n    {\n      \"name\": \"small\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The small element represents side comments such as small print.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/small\"\n        }\n      ]\n    },\n    {\n      \"name\": \"s\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The s element represents contents that are no longer accurate or no longer relevant.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/s\"\n        }\n      ]\n    },\n    {\n      \"name\": \"cite\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The cite element represents a reference to a creative work. It must include the title of the work or the name of the author(person, people or organization) or an URL reference, or a reference in abbreviated form as per the conventions used for the addition of citation metadata.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/cite\"\n        }\n      ]\n    },\n    {\n      \"name\": \"q\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The q element represents some phrasing content quoted from another source.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"cite\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The value of this attribute is a URL that designates a source document or message for the information quoted. This attribute is intended to point to information explaining the context or the reference for the quote.\"\n          }\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/q\"\n        }\n      ]\n    },\n    {\n      \"name\": \"dfn\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The dfn element represents the defining instance of a term. The paragraph, description list group, or section that is the nearest ancestor of the dfn element must also contain the definition(s) for the term given by the dfn element.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/dfn\"\n        }\n      ]\n    },\n    {\n      \"name\": \"abbr\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The abbr element represents an abbreviation or acronym, optionally with its expansion. The title attribute may be used to provide an expansion of the abbreviation. The attribute, if specified, must contain an expansion of the abbreviation, and nothing else.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/abbr\"\n        }\n      ]\n    },\n    {\n      \"name\": \"ruby\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The ruby element allows one or more spans of phrasing content to be marked with ruby annotations. Ruby annotations are short runs of text presented alongside base text, primarily used in East Asian typography as a guide for pronunciation or to include other annotations. In Japanese, this form of typography is also known as furigana. Ruby text can appear on either side, and sometimes both sides, of the base text, and it is possible to control its position using CSS. A more complete introduction to ruby can be found in the Use Cases & Exploratory Approaches for Ruby Markup document as well as in CSS Ruby Module Level 1. [RUBY-UC] [CSSRUBY]\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/ruby\"\n        }\n      ]\n    },\n    {\n      \"name\": \"rb\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The rb element marks the base text component of a ruby annotation. When it is the child of a ruby element, it doesn't represent anything itself, but its parent ruby element uses it as part of determining what it represents.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/rb\"\n        }\n      ]\n    },\n    {\n      \"name\": \"rt\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The rt element marks the ruby text component of a ruby annotation. When it is the child of a ruby element or of an rtc element that is itself the child of a ruby element, it doesn't represent anything itself, but its ancestor ruby element uses it as part of determining what it represents.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/rt\"\n        }\n      ]\n    },\n    {\n      \"name\": \"rp\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The rp element is used to provide fallback text to be shown by user agents that don't support ruby annotations. One widespread convention is to provide parentheses around the ruby text component of a ruby annotation.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/rp\"\n        }\n      ]\n    },\n    {\n      \"name\": \"time\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The time element represents its contents, along with a machine-readable form of those contents in the datetime attribute. The kind of content is limited to various kinds of dates, times, time-zone offsets, and durations, as described below.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"datetime\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"This attribute indicates the time and/or date of the element and must be in one of the formats described below.\"\n          }\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/time\"\n        }\n      ]\n    },\n    {\n      \"name\": \"code\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The code element represents a fragment of computer code. This could be an XML element name, a file name, a computer program, or any other string that a computer would recognize.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/code\"\n        }\n      ]\n    },\n    {\n      \"name\": \"var\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The var element represents a variable. This could be an actual variable in a mathematical expression or programming context, an identifier representing a constant, a symbol identifying a physical quantity, a function parameter, or just be a term used as a placeholder in prose.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/var\"\n        }\n      ]\n    },\n    {\n      \"name\": \"samp\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The samp element represents sample or quoted output from another program or computing system.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/samp\"\n        }\n      ]\n    },\n    {\n      \"name\": \"kbd\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The kbd element represents user input (typically keyboard input, although it may also be used to represent other input, such as voice commands).\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/kbd\"\n        }\n      ]\n    },\n    {\n      \"name\": \"sub\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The sub element represents a subscript.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/sub\"\n        }\n      ]\n    },\n    {\n      \"name\": \"sup\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The sup element represents a superscript.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/sup\"\n        }\n      ]\n    },\n    {\n      \"name\": \"i\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The i element represents a span of text in an alternate voice or mood, or otherwise offset from the normal prose in a manner indicating a different quality of text, such as a taxonomic designation, a technical term, an idiomatic phrase from another language, transliteration, a thought, or a ship name in Western texts.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/i\"\n        }\n      ]\n    },\n    {\n      \"name\": \"b\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The b element represents a span of text to which attention is being drawn for utilitarian purposes without conveying any extra importance and with no implication of an alternate voice or mood, such as key words in a document abstract, product names in a review, actionable words in interactive text-driven software, or an article lede.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/b\"\n        }\n      ]\n    },\n    {\n      \"name\": \"u\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The u element represents a span of text with an unarticulated, though explicitly rendered, non-textual annotation, such as labeling the text as being a proper name in Chinese text (a Chinese proper name mark), or labeling the text as being misspelt.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/u\"\n        }\n      ]\n    },\n    {\n      \"name\": \"mark\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The mark element represents a run of text in one document marked or highlighted for reference purposes, due to its relevance in another context. When used in a quotation or other block of text referred to from the prose, it indicates a highlight that was not originally present but which has been added to bring the reader's attention to a part of the text that might not have been considered important by the original author when the block was originally written, but which is now under previously unexpected scrutiny. When used in the main prose of a document, it indicates a part of the document that has been highlighted due to its likely relevance to the user's current activity.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/mark\"\n        }\n      ]\n    },\n    {\n      \"name\": \"bdi\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The bdi element represents a span of text that is to be isolated from its surroundings for the purposes of bidirectional text formatting. [BIDI]\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/bdi\"\n        }\n      ]\n    },\n    {\n      \"name\": \"bdo\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The bdo element represents explicit text directionality formatting control for its children. It allows authors to override the Unicode bidirectional algorithm by explicitly specifying a direction override. [BIDI]\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"dir\",\n          \"description\": \"The direction in which text should be rendered in this element's contents. Possible values are:\\n\\n*   `ltr`: Indicates that the text should go in a left-to-right direction.\\n*   `rtl`: Indicates that the text should go in a right-to-left direction.\"\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/bdo\"\n        }\n      ]\n    },\n    {\n      \"name\": \"span\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The span element doesn't mean anything on its own, but can be useful when used together with the global attributes, e.g. class, lang, or dir. It represents its children.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/span\"\n        }\n      ]\n    },\n    {\n      \"name\": \"br\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The br element represents a line break.\"\n      },\n      \"void\": true,\n      \"attributes\": [\n        {\n          \"name\": \"clear\",\n          \"description\": \"Indicates where to begin the next line after the break.\"\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/br\"\n        }\n      ]\n    },\n    {\n      \"name\": \"wbr\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The wbr element represents a line break opportunity.\"\n      },\n      \"void\": true,\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/wbr\"\n        }\n      ]\n    },\n    {\n      \"name\": \"ins\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The ins element represents an addition to the document.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"cite\",\n          \"description\": \"This attribute defines the URI of a resource that explains the change, such as a link to meeting minutes or a ticket in a troubleshooting system.\"\n        },\n        {\n          \"name\": \"datetime\",\n          \"description\": 'This attribute indicates the time and date of the change and must be a valid date with an optional time string. If the value cannot be parsed as a date with an optional time string, the element does not have an associated time stamp. For the format of the string without a time, see [Format of a valid date string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_date_string \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\"). The format of the string if it includes both date and time is covered in [Format of a valid local date and time string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_local_date_and_time_string \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\").'\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/ins\"\n        }\n      ]\n    },\n    {\n      \"name\": \"del\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The del element represents a removal from the document.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"cite\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"A URI for a resource that explains the change (for example, meeting minutes).\"\n          }\n        },\n        {\n          \"name\": \"datetime\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'This attribute indicates the time and date of the change and must be a valid date string with an optional time. If the value cannot be parsed as a date with an optional time string, the element does not have an associated time stamp. For the format of the string without a time, see [Format of a valid date string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_date_string \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\"). The format of the string if it includes both date and time is covered in [Format of a valid local date and time string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_local_date_and_time_string \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats \"Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.\").'\n          }\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/del\"\n        }\n      ]\n    },\n    {\n      \"name\": \"picture\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The picture element is a container which provides multiple sources to its contained img element to allow authors to declaratively control or give hints to the user agent about which image resource to use, based on the screen pixel density, viewport size, image format, and other factors. It represents its children.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/picture\"\n        }\n      ]\n    },\n    {\n      \"name\": \"img\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"An img element represents an image.\"\n      },\n      \"void\": true,\n      \"attributes\": [\n        {\n          \"name\": \"alt\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'This attribute defines an alternative text description of the image.\\n\\n**Note:** Browsers do not always display the image referenced by the element. This is the case for non-graphical browsers (including those used by people with visual impairments), if the user chooses not to display images, or if the browser cannot display the image because it is invalid or an [unsupported type](#Supported_image_formats). In these cases, the browser may replace the image with the text defined in this element\\'s `alt` attribute. You should, for these reasons and others, provide a useful value for `alt` whenever possible.\\n\\n**Note:** Omitting this attribute altogether indicates that the image is a key part of the content, and no textual equivalent is available. Setting this attribute to an empty string (`alt=\"\"`) indicates that this image is _not_ a key part of the content (decorative), and that non-visual browsers may omit it from rendering.'\n          }\n        },\n        {\n          \"name\": \"src\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The image URL. This attribute is mandatory for the `<img>` element. On browsers supporting `srcset`, `src` is treated like a candidate image with a pixel density descriptor `1x` unless an image with this pixel density descriptor is already defined in `srcset,` or unless `srcset` contains '`w`' descriptors.\"\n          }\n        },\n        {\n          \"name\": \"srcset\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"A list of one or more strings separated by commas indicating a set of possible image sources for the user agent to use. Each string is composed of:\\n\\n1.  a URL to an image,\\n2.  optionally, whitespace followed by one of:\\n    *   A width descriptor, or a positive integer directly followed by '`w`'. The width descriptor is divided by the source size given in the `sizes` attribute to calculate the effective pixel density.\\n    *   A pixel density descriptor, which is a positive floating point number directly followed by '`x`'.\\n\\nIf no descriptor is specified, the source is assigned the default descriptor: `1x`.\\n\\nIt is incorrect to mix width descriptors and pixel density descriptors in the same `srcset` attribute. Duplicate descriptors (for instance, two sources in the same `srcset` which are both described with '`2x`') are also invalid.\\n\\nThe user agent selects any one of the available sources at its discretion. This provides them with significant leeway to tailor their selection based on things like user preferences or bandwidth conditions. See our [Responsive images](https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images) tutorial for an example.\"\n          }\n        },\n        {\n          \"name\": \"crossorigin\",\n          \"valueSet\": \"xo\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'This enumerated attribute indicates if the fetching of the related image must be done using CORS or not. [CORS-enabled images](https://developer.mozilla.org/en-US/docs/CORS_Enabled_Image) can be reused in the [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas \"Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.\") element without being \"[tainted](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image#What_is_a_tainted_canvas).\" The allowed values are:\\n`anonymous`\\n\\nA cross-origin request (i.e., with `Origin:` HTTP header) is performed, but no credential is sent (i.e., no cookie, X.509 certificate, or HTTP Basic authentication). If the server does not give credentials to the origin site (by not setting the [`Access-Control-Allow-Origin`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin \"The Access-Control-Allow-Origin response header indicates whether the response can be shared with requesting code from the given origin.\") HTTP header), the image will be tainted and its usage restricted.\\n\\n`use-credentials`\\n\\nA cross-origin request (i.e., with the [`Origin`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin \"The Origin request header indicates where a fetch originates from. It doesn\\'t include any path information, but only the server name. It is sent with CORS requests, as well as with POST requests. It is similar to the Referer header, but, unlike this header, it doesn\\'t disclose the whole path.\") HTTP header) performed along with credentials sent (i.e., a cookie, certificate, or HTTP Basic authentication). If the server does not give credentials to the origin site (through the `Access-Control-Allow-Credentials` HTTP header), the image will be tainted and its usage restricted.\\n\\nIf the attribute is not present, the resource is fetched without a CORS request (i.e., without sending the `Origin` HTTP header), preventing its non-tainted usage in [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas \"Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.\") elements. If invalid, it is handled as if the `anonymous` value was used. See [CORS settings attributes](https://developer.mozilla.org/en-US/docs/HTML/CORS_settings_attributes) for additional information.'\n          }\n        },\n        {\n          \"name\": \"usemap\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'The partial URL (starting with \\'#\\') of an [image map](https://developer.mozilla.org/en-US/docs/HTML/Element/map) associated with the element.\\n\\n**Note:** You cannot use this attribute if the `<img>` element is a descendant of an [`<a>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a \"The HTML <a> element (or anchor element) creates a hyperlink to other web pages, files, locations within the same page, email addresses, or any other URL.\") or [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") element.'\n          }\n        },\n        {\n          \"name\": \"ismap\",\n          \"valueSet\": \"v\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'This Boolean attribute indicates that the image is part of a server-side map. If so, the precise coordinates of a click are sent to the server.\\n\\n**Note:** This attribute is allowed only if the `<img>` element is a descendant of an [`<a>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a \"The HTML <a> element (or anchor element) creates a hyperlink to other web pages, files, locations within the same page, email addresses, or any other URL.\") element with a valid [`href`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-href) attribute.'\n          }\n        },\n        {\n          \"name\": \"width\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The intrinsic width of the image in pixels.\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The intrinsic height of the image in pixels.\"\n          }\n        },\n        {\n          \"name\": \"decoding\",\n          \"valueSet\": \"decoding\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Provides an image decoding hint to the browser. The allowed values are:\\n`sync`\\n\\nDecode the image synchronously for atomic presentation with other content.\\n\\n`async`\\n\\nDecode the image asynchronously to reduce delay in presenting other content.\\n\\n`auto`\\n\\nDefault mode, which indicates no preference for the decoding mode. The browser decides what is best for the user.\"\n          }\n        },\n        {\n          \"name\": \"loading\",\n          \"valueSet\": \"loading\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Indicates how the browser should load the image.\"\n          }\n        },\n        {\n          \"name\": \"referrerpolicy\",\n          \"valueSet\": \"referrerpolicy\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"A string indicating which referrer to use when fetching the resource:\\n\\n*   `no-referrer:` The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \\\"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\\\") header will not be sent.\\n*   `no-referrer-when-downgrade:` No `Referer` header will be sent when navigating to an origin without TLS (HTTPS). This is a user agent\\u2019s default behavior if no policy is otherwise specified.\\n*   `origin:` The `Referer` header will include the page of origin's scheme, the host, and the port.\\n*   `origin-when-cross-origin:` Navigating to other origins will limit the included referral data to the scheme, the host and the port, while navigating from the same origin will include the referrer's full path.\\n*   `unsafe-url:` The `Referer` header will include the origin and the path, but not the fragment, password, or username. This case is unsafe because it can leak origins and paths from TLS-protected resources to insecure origins.\"\n          }\n        },\n        {\n          \"name\": \"sizes\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"A list of one or more strings separated by commas indicating a set of source sizes. Each source size consists of:\\n\\n1.  a media condition. This must be omitted for the last item.\\n2.  a source size value.\\n\\nSource size values specify the intended display size of the image. User agents use the current source size to select one of the sources supplied by the `srcset` attribute, when those sources are described using width ('`w`') descriptors. The selected source size affects the intrinsic size of the image (the image\\u2019s display size if no CSS styling is applied). If the `srcset` attribute is absent, or contains no values with a width (`w`) descriptor, then the `sizes` attribute has no effect.\"\n          }\n        },\n        {\n          \"name\": \"importance\",\n          \"description\": \"Indicates the relative importance of the resource. Priority hints are delegated using the values:\"\n        },\n        {\n          \"name\": \"importance\",\n          \"description\": \"`auto`: Indicates\\xA0**no\\xA0preference**. The browser may use its own heuristics to decide the priority of the image.\\n\\n`high`: Indicates to the\\xA0browser\\xA0that the image is of\\xA0**high** priority.\\n\\n`low`:\\xA0Indicates to the\\xA0browser\\xA0that the image is of\\xA0**low** priority.\"\n        },\n        {\n          \"name\": \"intrinsicsize\",\n          \"description\": \"This attribute tells the browser to ignore the actual intrinsic size of the image and pretend it\\u2019s the size specified in the attribute. Specifically, the image would raster at these dimensions and `naturalWidth`/`naturalHeight` on images would return the values specified in this attribute. [Explainer](https://github.com/ojanvafai/intrinsicsize-attribute), [examples](https://googlechrome.github.io/samples/intrinsic-size/index.html)\"\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/img\"\n        }\n      ]\n    },\n    {\n      \"name\": \"iframe\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The iframe element represents a nested browsing context.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"src\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'The URL of the page to embed. Use a value of `about:blank` to embed an empty page that conforms to the [same-origin policy](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy#Inherited_origins). Also note that programatically removing an `<iframe>`\\'s src attribute (e.g. via [`Element.removeAttribute()`](https://developer.mozilla.org/en-US/docs/Web/API/Element/removeAttribute \"The Element method removeAttribute() removes the attribute with the specified name from the element.\")) causes `about:blank` to be loaded in the frame in Firefox (from version 65), Chromium-based browsers, and Safari/iOS.'\n          }\n        },\n        {\n          \"name\": \"srcdoc\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Inline HTML to embed, overriding the `src` attribute. If a browser does not support the `srcdoc` attribute, it will fall back to the URL in the `src` attribute.\"\n          }\n        },\n        {\n          \"name\": \"name\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'A targetable name for the embedded browsing context. This can be used in the `target` attribute of the [`<a>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a \"The HTML <a> element (or anchor element) creates a hyperlink to other web pages, files, locations within the same page, email addresses, or any other URL.\"), [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\"), or [`<base>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base \"The HTML <base> element specifies the base URL to use for all relative URLs contained within a document. There can be only one <base> element in a document.\") elements; the `formtarget` attribute of the [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") or [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") elements; or the `windowName` parameter in the [`window.open()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/open \"The\\xA0Window interface\\'s open() method loads the specified resource into the browsing context (window, <iframe> or tab) with the specified name. If the name doesn\\'t exist, then a new window is opened and the specified resource is loaded into its browsing context.\") method.'\n          }\n        },\n        {\n          \"name\": \"sandbox\",\n          \"valueSet\": \"sb\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'Applies extra restrictions to the content in the frame. The value of the attribute can either be empty to apply all restrictions, or space-separated tokens to lift particular restrictions:\\n\\n*   `allow-forms`: Allows the resource to submit forms. If this keyword is not used, form submission is blocked.\\n*   `allow-modals`: Lets the resource [open modal windows](https://html.spec.whatwg.org/multipage/origin.html#sandboxed-modals-flag).\\n*   `allow-orientation-lock`: Lets the resource [lock the screen orientation](https://developer.mozilla.org/en-US/docs/Web/API/Screen/lockOrientation).\\n*   `allow-pointer-lock`: Lets the resource use the [Pointer Lock API](https://developer.mozilla.org/en-US/docs/WebAPI/Pointer_Lock).\\n*   `allow-popups`: Allows popups (such as `window.open()`, `target=\"_blank\"`, or `showModalDialog()`). If this keyword is not used, the popup will silently fail to open.\\n*   `allow-popups-to-escape-sandbox`: Lets the sandboxed document open new windows without those windows inheriting the sandboxing. For example, this can safely sandbox an advertisement without forcing the same restrictions upon the page the ad links to.\\n*   `allow-presentation`: Lets the resource start a [presentation session](https://developer.mozilla.org/en-US/docs/Web/API/PresentationRequest).\\n*   `allow-same-origin`: If this token is not used, the resource is treated as being from a special origin that always fails the [same-origin policy](https://developer.mozilla.org/en-US/docs/Glossary/same-origin_policy \"same-origin policy: The same-origin policy is a critical security mechanism that restricts how a document or script loaded from one origin can interact with a resource from another origin.\").\\n*   `allow-scripts`: Lets the resource run scripts (but not create popup windows).\\n*   `allow-storage-access-by-user-activation` : Lets the resource request access to the parent\\'s storage capabilities with the [Storage Access API](https://developer.mozilla.org/en-US/docs/Web/API/Storage_Access_API).\\n*   `allow-top-navigation`: Lets the resource navigate the top-level browsing context (the one named `_top`).\\n*   `allow-top-navigation-by-user-activation`: Lets the resource navigate the top-level browsing context, but only if initiated by a user gesture.\\n\\n**Notes about sandboxing:**\\n\\n*   When the embedded document has the same origin as the embedding page, it is **strongly discouraged** to use both `allow-scripts` and `allow-same-origin`, as that lets the embedded document remove the `sandbox` attribute \\u2014 making it no more secure than not using the `sandbox` attribute at all.\\n*   Sandboxing is useless if the attacker can display content outside a sandboxed `iframe` \\u2014 such as if the viewer opens the frame in a new tab. Such content should be also served from a _separate origin_ to limit potential damage.\\n*   The `sandbox` attribute is unsupported in Internet Explorer 9 and earlier.'\n          }\n        },\n        {\n          \"name\": \"seamless\",\n          \"valueSet\": \"v\"\n        },\n        {\n          \"name\": \"allowfullscreen\",\n          \"valueSet\": \"v\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'Set to `true` if the `<iframe>` can activate fullscreen mode by calling the [`requestFullscreen()`](https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullscreen \"The Element.requestFullscreen() method issues an asynchronous request to make the element be displayed in full-screen mode.\") method.\\nThis attribute is considered a legacy attribute and redefined as `allow=\"fullscreen\"`.'\n          }\n        },\n        {\n          \"name\": \"width\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The width of the frame in CSS pixels. Default is `300`.\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The height of the frame in CSS pixels. Default is `150`.\"\n          }\n        },\n        {\n          \"name\": \"allow\",\n          \"description\": \"Specifies a [feature policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Feature_Policy) for the `<iframe>`.\"\n        },\n        {\n          \"name\": \"allowpaymentrequest\",\n          \"description\": \"Set to `true` if a cross-origin `<iframe>` should be allowed to invoke the [Payment Request API](https://developer.mozilla.org/en-US/docs/Web/API/Payment_Request_API).\"\n        },\n        {\n          \"name\": \"allowpaymentrequest\",\n          \"description\": 'This attribute is considered a legacy attribute and redefined as `allow=\"payment\"`.'\n        },\n        {\n          \"name\": \"csp\",\n          \"description\": 'A [Content Security Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) enforced for the embedded resource. See [`HTMLIFrameElement.csp`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/csp \"The csp property of the HTMLIFrameElement interface specifies the Content Security Policy that an embedded document must agree to enforce upon itself.\") for details.'\n        },\n        {\n          \"name\": \"importance\",\n          \"description\": \"The download priority of the resource in the `<iframe>`'s `src` attribute. Allowed values:\\n\\n`auto` (default)\\n\\nNo preference. The browser uses its own heuristics to decide the priority of the resource.\\n\\n`high`\\n\\nThe resource should be downloaded before other lower-priority page resources.\\n\\n`low`\\n\\nThe resource should be downloaded after other higher-priority page resources.\"\n        },\n        {\n          \"name\": \"referrerpolicy\",\n          \"description\": 'Indicates which [referrer](https://developer.mozilla.org/en-US/docs/Web/API/Document/referrer) to send when fetching the frame\\'s resource:\\n\\n*   `no-referrer`: The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent.\\n*   `no-referrer-when-downgrade` (default): The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent to [origin](https://developer.mozilla.org/en-US/docs/Glossary/origin \"origin: Web content\\'s origin is defined by the scheme (protocol), host (domain), and port of the URL used to access it. Two objects have the same origin only when the scheme, host, and port all match.\")s without [TLS](https://developer.mozilla.org/en-US/docs/Glossary/TLS \"TLS: Transport Layer Security (TLS), previously known as Secure Sockets Layer (SSL), is a protocol used by applications to communicate securely across a network, preventing tampering with and eavesdropping on email, web browsing, messaging, and other protocols.\") ([HTTPS](https://developer.mozilla.org/en-US/docs/Glossary/HTTPS \"HTTPS: HTTPS (HTTP Secure) is an encrypted version of the HTTP protocol. It usually uses SSL or TLS to encrypt all communication between a client and a server. This secure connection allows clients to safely exchange sensitive data with a server, for example for banking activities or online shopping.\")).\\n*   `origin`: The sent referrer will be limited to the origin of the referring page: its [scheme](https://developer.mozilla.org/en-US/docs/Archive/Mozilla/URIScheme), [host](https://developer.mozilla.org/en-US/docs/Glossary/host \"host: A host is a device connected to the Internet (or a local network). Some hosts called servers offer additional services like serving webpages or storing files and emails.\"), and [port](https://developer.mozilla.org/en-US/docs/Glossary/port \"port: For a computer connected to a network with an IP address, a port is a communication endpoint. Ports are designated by numbers, and below 1024 each port is associated by default with a specific protocol.\").\\n*   `origin-when-cross-origin`: The referrer sent to other origins will be limited to the scheme, the host, and the port. Navigations on the same origin will still include the path.\\n*   `same-origin`: A referrer will be sent for [same origin](https://developer.mozilla.org/en-US/docs/Glossary/Same-origin_policy \"same origin: The same-origin policy is a critical security mechanism that restricts how a document or script loaded from one origin can interact with a resource from another origin.\"), but cross-origin requests will contain no referrer information.\\n*   `strict-origin`: Only send the origin of the document as the referrer when the protocol security level stays the same (HTTPS\\u2192HTTPS), but don\\'t send it to a less secure destination (HTTPS\\u2192HTTP).\\n*   `strict-origin-when-cross-origin`: Send a full URL when performing a same-origin request, only send the origin when the protocol security level stays the same (HTTPS\\u2192HTTPS), and send no header to a less secure destination (HTTPS\\u2192HTTP).\\n*   `unsafe-url`: The referrer will include the origin _and_ the path (but not the [fragment](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/hash), [password](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/password), or [username](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/username)). **This value is unsafe**, because it leaks origins and paths from TLS-protected resources to insecure origins.'\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/iframe\"\n        }\n      ]\n    },\n    {\n      \"name\": \"embed\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The embed element provides an integration point for an external (typically non-HTML) application or interactive content.\"\n      },\n      \"void\": true,\n      \"attributes\": [\n        {\n          \"name\": \"src\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The URL\\xA0of the resource being embedded.\"\n          }\n        },\n        {\n          \"name\": \"type\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The MIME\\xA0type to use to select the plug-in to instantiate.\"\n          }\n        },\n        {\n          \"name\": \"width\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The displayed width of the resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). This must be an absolute value; percentages are _not_ allowed.\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The displayed height of the resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). This must be an absolute value; percentages are _not_ allowed.\"\n          }\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/embed\"\n        }\n      ]\n    },\n    {\n      \"name\": \"object\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The object element can represent an external resource, which, depending on the type of the resource, will either be treated as an image, as a nested browsing context, or as an external resource to be processed by a plugin.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"data\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The address of the resource as a valid URL. At least one of **data** and **type** must be defined.\"\n          }\n        },\n        {\n          \"name\": \"type\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The [content type](https://developer.mozilla.org/en-US/docs/Glossary/Content_type) of the resource specified by **data**. At least one of **data** and **type** must be defined.\"\n          }\n        },\n        {\n          \"name\": \"typemustmatch\",\n          \"valueSet\": \"v\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"This Boolean attribute indicates if the **type** attribute and the actual [content type](https://developer.mozilla.org/en-US/docs/Glossary/Content_type) of the resource must match to be used.\"\n          }\n        },\n        {\n          \"name\": \"name\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The name of valid browsing context (HTML5), or the name of the control (HTML 4).\"\n          }\n        },\n        {\n          \"name\": \"usemap\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"A hash-name reference to a [`<map>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/map \\\"The HTML <map> element is used with <area> elements to define an image map (a clickable link area).\\\") element; that is a '#' followed by the value of a [`name`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/map#attr-name) of a map element.\"\n          }\n        },\n        {\n          \"name\": \"form\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'The form element, if any, that the object element is associated with (its _form owner_). The value of the attribute must be an ID of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element in the same document.'\n          }\n        },\n        {\n          \"name\": \"width\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The width of the display resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). -- (Absolute values only. [NO percentages](https://html.spec.whatwg.org/multipage/embedded-content.html#dimension-attributes))\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The height of the displayed resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). -- (Absolute values only. [NO percentages](https://html.spec.whatwg.org/multipage/embedded-content.html#dimension-attributes))\"\n          }\n        },\n        {\n          \"name\": \"archive\",\n          \"description\": \"A space-separated list of URIs for archives of resources for the object.\"\n        },\n        {\n          \"name\": \"border\",\n          \"description\": \"The width of a border around the control, in pixels.\"\n        },\n        {\n          \"name\": \"classid\",\n          \"description\": \"The URI of the object's implementation. It can be used together with, or in place of, the **data** attribute.\"\n        },\n        {\n          \"name\": \"codebase\",\n          \"description\": \"The base path used to resolve relative URIs specified by **classid**, **data**, or **archive**. If not specified, the default is the base URI of the current document.\"\n        },\n        {\n          \"name\": \"codetype\",\n          \"description\": \"The content type of the data specified by **classid**.\"\n        },\n        {\n          \"name\": \"declare\",\n          \"description\": \"The presence of this Boolean attribute makes this element a declaration only. The object must be instantiated by a subsequent `<object>` element. In HTML5, repeat the <object> element completely each that that the resource is reused.\"\n        },\n        {\n          \"name\": \"standby\",\n          \"description\": \"A message that the browser can show while loading the object's implementation and data.\"\n        },\n        {\n          \"name\": \"tabindex\",\n          \"description\": \"The position of the element in the tabbing navigation order for the current document.\"\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/object\"\n        }\n      ]\n    },\n    {\n      \"name\": \"param\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The param element defines parameters for plugins invoked by object elements. It does not represent anything on its own.\"\n      },\n      \"void\": true,\n      \"attributes\": [\n        {\n          \"name\": \"name\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Name of the parameter.\"\n          }\n        },\n        {\n          \"name\": \"value\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Specifies the value of the parameter.\"\n          }\n        },\n        {\n          \"name\": \"type\",\n          \"description\": 'Only used if the `valuetype` is set to \"ref\". Specifies the MIME type of values found at the URI specified by value.'\n        },\n        {\n          \"name\": \"valuetype\",\n          \"description\": 'Specifies the type of the `value` attribute. Possible values are:\\n\\n*   data: Default value. The value is passed to the object\\'s implementation as a string.\\n*   ref: The value is a URI to a resource where run-time values are stored.\\n*   object: An ID of another [`<object>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/object \"The HTML <object> element represents an external resource, which can be treated as an image, a nested browsing context, or a resource to be handled by a plugin.\") in the same document.'\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/param\"\n        }\n      ]\n    },\n    {\n      \"name\": \"video\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"A video element is used for playing videos or movies, and audio files with captions.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"src\"\n        },\n        {\n          \"name\": \"crossorigin\",\n          \"valueSet\": \"xo\"\n        },\n        {\n          \"name\": \"poster\"\n        },\n        {\n          \"name\": \"preload\",\n          \"valueSet\": \"pl\"\n        },\n        {\n          \"name\": \"autoplay\",\n          \"valueSet\": \"v\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'A Boolean attribute; if specified, the video automatically begins to play back as soon as it can do so without stopping to finish loading the data.\\n**Note**: Sites that automatically play audio (or video with an audio track) can be an unpleasant experience for users, so it should be avoided when possible. If you must offer autoplay functionality, you should make it opt-in (requiring a user to specifically enable it). However, this can be useful when creating media elements whose source will be set at a later time, under user control.\\n\\nTo disable video autoplay, `autoplay=\"false\"` will not work; the video will autoplay if the attribute is there in the `<video>` tag at all. To remove autoplay the attribute needs to be removed altogether.\\n\\nIn some browsers (e.g. Chrome 70.0) autoplay is not working if no `muted` attribute is present.'\n          }\n        },\n        {\n          \"name\": \"mediagroup\"\n        },\n        {\n          \"name\": \"loop\",\n          \"valueSet\": \"v\"\n        },\n        {\n          \"name\": \"muted\",\n          \"valueSet\": \"v\"\n        },\n        {\n          \"name\": \"controls\",\n          \"valueSet\": \"v\"\n        },\n        {\n          \"name\": \"width\"\n        },\n        {\n          \"name\": \"height\"\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/video\"\n        }\n      ]\n    },\n    {\n      \"name\": \"audio\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"An audio element represents a sound or audio stream.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"src\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'The URL of the audio to embed. This is subject to [HTTP access controls](https://developer.mozilla.org/en-US/docs/HTTP_access_control). This is optional; you may instead use the [`<source>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source \"The HTML <source> element specifies multiple media resources for the <picture>, the <audio> element, or the <video> element.\") element within the audio block to specify the audio to embed.'\n          }\n        },\n        {\n          \"name\": \"crossorigin\",\n          \"valueSet\": \"xo\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'This enumerated attribute indicates whether to use CORS to fetch the related image. [CORS-enabled resources](https://developer.mozilla.org/en-US/docs/CORS_Enabled_Image) can be reused in the [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas \"Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.\") element without being _tainted_. The allowed values are:\\n\\nanonymous\\n\\nSends a cross-origin request without a credential. In other words, it sends the `Origin:` HTTP header without a cookie, X.509 certificate, or performing HTTP Basic authentication. If the server does not give credentials to the origin site (by not setting the `Access-Control-Allow-Origin:` HTTP header), the image will be _tainted_, and its usage restricted.\\n\\nuse-credentials\\n\\nSends a cross-origin request with a credential. In other words, it sends the `Origin:` HTTP header with a cookie, a certificate, or performing HTTP Basic authentication. If the server does not give credentials to the origin site (through `Access-Control-Allow-Credentials:` HTTP header), the image will be _tainted_ and its usage restricted.\\n\\nWhen not present, the resource is fetched without a CORS request (i.e. without sending the `Origin:` HTTP header), preventing its non-tainted used in [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas \"Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.\") elements. If invalid, it is handled as if the enumerated keyword **anonymous** was used. See [CORS settings attributes](https://developer.mozilla.org/en-US/docs/HTML/CORS_settings_attributes) for additional information.'\n          }\n        },\n        {\n          \"name\": \"preload\",\n          \"valueSet\": \"pl\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"This enumerated attribute is intended to provide a hint to the browser about what the author thinks will lead to the best user experience. It may have one of the following values:\\n\\n*   `none`: Indicates that the audio should not be preloaded.\\n*   `metadata`: Indicates that only audio metadata (e.g. length) is fetched.\\n*   `auto`: Indicates that the whole audio file can be downloaded, even if the user is not expected to use it.\\n*   _empty string_: A synonym of the `auto` value.\\n\\nIf not set, `preload`'s default value is browser-defined (i.e. each browser may have its own default value). The spec advises it to be set to `metadata`.\\n\\n**Usage notes:**\\n\\n*   The `autoplay` attribute has precedence over\\xA0`preload`. If `autoplay` is specified, the browser would obviously need to start downloading the audio for playback.\\n*   The browser is not forced by the specification to follow the value of this attribute; it is a mere hint.\"\n          }\n        },\n        {\n          \"name\": \"autoplay\",\n          \"valueSet\": \"v\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"A Boolean attribute:\\xA0if specified, the audio will automatically begin playback as soon as it can do so, without waiting for the entire audio file to finish downloading.\\n\\n**Note**: Sites that automatically play audio (or videos with an audio track) can be an unpleasant experience for users, so should be avoided when possible. If you must offer autoplay functionality, you should make it opt-in (requiring a user to specifically enable it). However, this can be useful when creating media elements whose source will be set at a later time, under user control.\"\n          }\n        },\n        {\n          \"name\": \"mediagroup\"\n        },\n        {\n          \"name\": \"loop\",\n          \"valueSet\": \"v\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"A Boolean attribute:\\xA0if specified, the audio player will\\xA0automatically seek back to the start\\xA0upon reaching the end of the audio.\"\n          }\n        },\n        {\n          \"name\": \"muted\",\n          \"valueSet\": \"v\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"A Boolean attribute that indicates whether the audio will be initially silenced. Its default value is `false`.\"\n          }\n        },\n        {\n          \"name\": \"controls\",\n          \"valueSet\": \"v\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"If this attribute is present, the browser will offer controls to allow the user to control audio playback, including volume, seeking, and pause/resume playback.\"\n          }\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/audio\"\n        }\n      ]\n    },\n    {\n      \"name\": \"source\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The source element allows authors to specify multiple alternative media resources for media elements. It does not represent anything on its own.\"\n      },\n      \"void\": true,\n      \"attributes\": [\n        {\n          \"name\": \"src\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'Required for [`<audio>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio \"The HTML <audio> element is used to embed sound content in documents. It may contain one or more audio sources, represented using the src attribute or the <source> element:\\xA0the browser will choose the most suitable one. It can also be the destination for streamed media, using a MediaStream.\") and [`<video>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video \"The HTML Video element (<video>) embeds a media player which supports video playback into the document.\"), address of the media resource. The value of this attribute is ignored when the `<source>` element is placed inside a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture \"The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.\") element.'\n          }\n        },\n        {\n          \"name\": \"type\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The MIME-type of the resource, optionally with a `codecs` parameter. See [RFC 4281](https://tools.ietf.org/html/rfc4281) for information about how to specify codecs.\"\n          }\n        },\n        {\n          \"name\": \"sizes\",\n          \"description\": 'Is a list of source sizes that describes the final rendered width of the image represented by the source. Each source size consists of a comma-separated list of media condition-length pairs. This information is used by the browser to determine, before laying the page out, which image defined in [`srcset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source#attr-srcset) to use.  \\nThe `sizes` attribute has an effect only when the [`<source>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source \"The HTML <source> element specifies multiple media resources for the <picture>, the <audio> element, or the <video> element.\") element is the direct child of a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture \"The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.\") element.'\n        },\n        {\n          \"name\": \"srcset\",\n          \"description\": \"A list of one or more strings separated by commas indicating a set of possible images represented by the source for the browser to use. Each string is composed of:\\n\\n1.  one URL to an image,\\n2.  a width descriptor, that is a positive integer directly followed by `'w'`. The default value, if missing, is the infinity.\\n3.  a pixel density descriptor, that is a positive floating number directly followed by `'x'`. The default value, if missing, is `1x`.\\n\\nEach string in the list must have at least a width descriptor or a pixel density descriptor to be valid. Among the list, there must be only one string containing the same tuple of width descriptor and pixel density descriptor.  \\nThe browser chooses the most adequate image to display at a given point of time.  \\nThe `srcset` attribute has an effect only when the [`<source>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source \\\"The HTML <source> element specifies multiple media resources for the <picture>, the <audio> element, or the <video> element.\\\") element is the direct child of a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture \\\"The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.\\\") element.\"\n        },\n        {\n          \"name\": \"media\",\n          \"description\": '[Media query](https://developer.mozilla.org/en-US/docs/CSS/Media_queries) of the resource\\'s intended media; this should be used only in a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture \"The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.\") element.'\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/source\"\n        }\n      ]\n    },\n    {\n      \"name\": \"track\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The track element allows authors to specify explicit external timed text tracks for media elements. It does not represent anything on its own.\"\n      },\n      \"void\": true,\n      \"attributes\": [\n        {\n          \"name\": \"default\",\n          \"valueSet\": \"v\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"This attribute indicates that the track should be enabled unless the user's preferences indicate that another track is more appropriate. This may only be used on one `track` element per media element.\"\n          }\n        },\n        {\n          \"name\": \"kind\",\n          \"valueSet\": \"tk\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"How the text track is meant to be used. If omitted the default kind is `subtitles`. If the attribute is not present, it will use the `subtitles`. If the attribute contains an invalid value, it will use `metadata`. (Versions of Chrome earlier than 52 treated an invalid value as `subtitles`.)\\xA0The following keywords are allowed:\\n\\n*   `subtitles`\\n    *   Subtitles provide translation of content that cannot be understood by the viewer. For example dialogue or text that is not English in an English language film.\\n    *   Subtitles may contain additional content, usually extra background information. For example the text at the beginning of the Star Wars films, or the date, time, and location of a scene.\\n*   `captions`\\n    *   Closed captions provide a transcription and possibly a translation of audio.\\n    *   It may include important non-verbal information such as music cues or sound effects. It may indicate the cue's source (e.g. music, text, character).\\n    *   Suitable for users who are deaf or when the sound is muted.\\n*   `descriptions`\\n    *   Textual description of the video content.\\n    *   Suitable for users who are blind or where the video cannot be seen.\\n*   `chapters`\\n    *   Chapter titles are intended to be used when the user is navigating the media resource.\\n*   `metadata`\\n    *   Tracks used by scripts. Not visible to the user.\"\n          }\n        },\n        {\n          \"name\": \"label\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"A user-readable title of the text track which is used by the browser when listing available text tracks.\"\n          }\n        },\n        {\n          \"name\": \"src\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'Address of the track (`.vtt` file). Must be a valid URL. This attribute must be specified and its URL value must have the same origin as the document \\u2014 unless the [`<audio>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio \"The HTML <audio> element is used to embed sound content in documents. It may contain one or more audio sources, represented using the src attribute or the <source> element:\\xA0the browser will choose the most suitable one. It can also be the destination for streamed media, using a MediaStream.\") or [`<video>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video \"The HTML Video element (<video>) embeds a media player which supports video playback into the document.\") parent element of the `track` element has a [`crossorigin`](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) attribute.'\n          }\n        },\n        {\n          \"name\": \"srclang\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Language of the track text data. It must be a valid [BCP 47](https://r12a.github.io/app-subtags/) language tag. If the `kind` attribute is set to\\xA0`subtitles,` then `srclang` must be defined.\"\n          }\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/track\"\n        }\n      ]\n    },\n    {\n      \"name\": \"map\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The map element, in conjunction with an img element and any area element descendants, defines an image map. The element represents its children.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"name\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The name attribute gives the map a name so that it can be referenced. The attribute must be present and must have a non-empty value with no space characters. The value of the name attribute must not be a compatibility-caseless match for the value of the name attribute of another map element in the same document. If the id attribute is also specified, both attributes must have the same value.\"\n          }\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/map\"\n        }\n      ]\n    },\n    {\n      \"name\": \"area\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The area element represents either a hyperlink with some text and a corresponding area on an image map, or a dead area on an image map.\"\n      },\n      \"void\": true,\n      \"attributes\": [\n        {\n          \"name\": \"alt\"\n        },\n        {\n          \"name\": \"coords\"\n        },\n        {\n          \"name\": \"shape\",\n          \"valueSet\": \"sh\"\n        },\n        {\n          \"name\": \"href\"\n        },\n        {\n          \"name\": \"target\",\n          \"valueSet\": \"target\"\n        },\n        {\n          \"name\": \"download\"\n        },\n        {\n          \"name\": \"ping\"\n        },\n        {\n          \"name\": \"rel\"\n        },\n        {\n          \"name\": \"hreflang\"\n        },\n        {\n          \"name\": \"type\"\n        },\n        {\n          \"name\": \"accesskey\",\n          \"description\": \"Specifies a keyboard navigation accelerator for the element. Pressing ALT or a similar key in association with the specified character selects the form control correlated with that key sequence. Page designers are forewarned to avoid key sequences already bound to browsers. This attribute is global since HTML5.\"\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/area\"\n        }\n      ]\n    },\n    {\n      \"name\": \"table\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The table element represents data with more than one dimension, in the form of a table.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"border\"\n        },\n        {\n          \"name\": \"align\",\n          \"description\": 'This enumerated attribute indicates how the table must be aligned inside the containing document. It may have the following values:\\n\\n*   left: the table is displayed on the left side of the document;\\n*   center: the table is displayed in the center of the document;\\n*   right: the table is displayed on the right side of the document.\\n\\n**Usage Note**\\n\\n*   **Do not use this attribute**, as it has been deprecated. The [`<table>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/table \"The HTML <table> element represents tabular data \\u2014 that is, information presented in a two-dimensional table comprised of rows and columns of cells containing data.\") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). Set [`margin-left`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-left \"The margin-left CSS property sets the margin area on the left side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") and [`margin-right`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-right \"The margin-right CSS property sets the margin area on the right side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.\") to `auto` or [`margin`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin \"The margin CSS property sets the margin area on all four sides of an element. It is a shorthand for margin-top, margin-right, margin-bottom, and margin-left.\") to `0 auto` to achieve an effect that is similar to the align attribute.\\n*   Prior to Firefox 4, Firefox also supported the `middle`, `absmiddle`, and `abscenter` values as synonyms of `center`, in quirks mode only.'\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/table\"\n        }\n      ]\n    },\n    {\n      \"name\": \"caption\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The caption element represents the title of the table that is its parent, if it has a parent and that is a table element.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"align\",\n          \"description\": 'This enumerated attribute indicates how the caption must be aligned with respect to the table. It may have one of the following values:\\n\\n`left`\\n\\nThe caption is displayed to the left of the table.\\n\\n`top`\\n\\nThe caption is displayed above the table.\\n\\n`right`\\n\\nThe caption is displayed to the right of the table.\\n\\n`bottom`\\n\\nThe caption is displayed below the table.\\n\\n**Usage note:** Do not use this attribute, as it has been deprecated. The [`<caption>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/caption \"The HTML Table Caption element (<caption>) specifies the caption (or title) of a table, and if used is always the first child of a <table>.\") element should be styled using the [CSS](https://developer.mozilla.org/en-US/docs/CSS) properties [`caption-side`](https://developer.mozilla.org/en-US/docs/Web/CSS/caption-side \"The caption-side CSS property puts the content of a table\\'s <caption> on the specified side. The values are relative to the writing-mode of the table.\") and [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\").'\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/caption\"\n        }\n      ]\n    },\n    {\n      \"name\": \"colgroup\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The colgroup element represents a group of one or more columns in the table that is its parent, if it has a parent and that is a table element.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"span\"\n        },\n        {\n          \"name\": \"align\",\n          \"description\": 'This enumerated attribute specifies how horizontal alignment of each column cell content will be handled. Possible values are:\\n\\n*   `left`, aligning the content to the left of the cell\\n*   `center`, centering the content in the cell\\n*   `right`, aligning the content to the right of the cell\\n*   `justify`, inserting spaces into the textual content so that the content is justified in the cell\\n*   `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-charoff) attributes Unimplemented (see [bug\\xA02212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 \"character alignment not implemented (align=char, charoff=, text-align:<string>)\")).\\n\\nIf this attribute is not set, the `left` value is assumed. The descendant [`<col>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col \"The HTML <col> element defines a column within a table and is used for defining common semantics on all common cells. It is generally found within a <colgroup> element.\") elements may override this value using their own [`align`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-align) attribute.\\n\\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values:\\n    *   Do not try to set the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property on a selector giving a [`<colgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup \"The HTML <colgroup> element defines a group of columns within a table.\") element. Because [`<td>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td \"The HTML <td> element defines a cell of a table that contains data. It participates in the table model.\") elements are not descendant of the [`<colgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup \"The HTML <colgroup> element defines a group of columns within a table.\") element, they won\\'t inherit it.\\n    *   If the table doesn\\'t use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, use one `td:nth-child(an+b)` CSS selector per column, where a is the total number of the columns in the table and b is the ordinal position of this column in the table. Only after this selector the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property can be used.\\n    *   If the table does use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, the effect can be achieved by combining adequate CSS attribute selectors like `[colspan=n]`, though this is not trivial.\\n*   To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property Unimplemented.'\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/colgroup\"\n        }\n      ]\n    },\n    {\n      \"name\": \"col\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"If a col element has a parent and that is a colgroup element that itself has a parent that is a table element, then the col element represents one or more columns in the column group represented by that colgroup.\"\n      },\n      \"void\": true,\n      \"attributes\": [\n        {\n          \"name\": \"span\"\n        },\n        {\n          \"name\": \"align\",\n          \"description\": 'This enumerated attribute specifies how horizontal alignment of each column cell content will be handled. Possible values are:\\n\\n*   `left`, aligning the content to the left of the cell\\n*   `center`, centering the content in the cell\\n*   `right`, aligning the content to the right of the cell\\n*   `justify`, inserting spaces into the textual content so that the content is justified in the cell\\n*   `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-charoff) attributes Unimplemented (see [bug\\xA02212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 \"character alignment not implemented (align=char, charoff=, text-align:<string>)\")).\\n\\nIf this attribute is not set, its value is inherited from the [`align`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup#attr-align) of the [`<colgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup \"The HTML <colgroup> element defines a group of columns within a table.\") element this `<col>` element belongs too. If there are none, the `left` value is assumed.\\n\\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values:\\n    *   Do not try to set the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property on a selector giving a [`<col>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col \"The HTML <col> element defines a column within a table and is used for defining common semantics on all common cells. It is generally found within a <colgroup> element.\") element. Because [`<td>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td \"The HTML <td> element defines a cell of a table that contains data. It participates in the table model.\") elements are not descendant of the [`<col>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col \"The HTML <col> element defines a column within a table and is used for defining common semantics on all common cells. It is generally found within a <colgroup> element.\") element, they won\\'t inherit it.\\n    *   If the table doesn\\'t use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, use the `td:nth-child(an+b)` CSS selector. Set `a` to zero and `b` to the position of the column in the table, e.g. `td:nth-child(2) { text-align: right; }` to right-align the second column.\\n    *   If the table does use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, the effect can be achieved by combining adequate CSS attribute selectors like `[colspan=n]`, though this is not trivial.\\n*   To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property Unimplemented.'\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/col\"\n        }\n      ]\n    },\n    {\n      \"name\": \"tbody\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The tbody element represents a block of rows that consist of a body of data for the parent table element, if the tbody element has a parent and it is a table.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"align\",\n          \"description\": 'This enumerated attribute specifies how horizontal alignment of each cell content will be handled. Possible values are:\\n\\n*   `left`, aligning the content to the left of the cell\\n*   `center`, centering the content in the cell\\n*   `right`, aligning the content to the right of the cell\\n*   `justify`, inserting spaces into the textual content so that the content is justified in the cell\\n*   `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-charoff) attributes.\\n\\nIf this attribute is not set, the `left` value is assumed.\\n\\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values, use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property on it.\\n*   To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property Unimplemented.'\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/tbody\"\n        }\n      ]\n    },\n    {\n      \"name\": \"thead\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The thead element represents the block of rows that consist of the column labels (headers) for the parent table element, if the thead element has a parent and it is a table.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"align\",\n          \"description\": 'This enumerated attribute specifies how horizontal alignment of each cell content will be handled. Possible values are:\\n\\n*   `left`, aligning the content to the left of the cell\\n*   `center`, centering the content in the cell\\n*   `right`, aligning the content to the right of the cell\\n*   `justify`, inserting spaces into the textual content so that the content is justified in the cell\\n*   `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/thead#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/thead#attr-charoff) attributes Unimplemented (see [bug\\xA02212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 \"character alignment not implemented (align=char, charoff=, text-align:<string>)\")).\\n\\nIf this attribute is not set, the `left` value is assumed.\\n\\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values, use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property on it.\\n*   To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/thead#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property Unimplemented.'\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/thead\"\n        }\n      ]\n    },\n    {\n      \"name\": \"tfoot\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The tfoot element represents the block of rows that consist of the column summaries (footers) for the parent table element, if the tfoot element has a parent and it is a table.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"align\",\n          \"description\": 'This enumerated attribute specifies how horizontal alignment of each cell content will be handled. Possible values are:\\n\\n*   `left`, aligning the content to the left of the cell\\n*   `center`, centering the content in the cell\\n*   `right`, aligning the content to the right of the cell\\n*   `justify`, inserting spaces into the textual content so that the content is justified in the cell\\n*   `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-charoff) attributes Unimplemented (see [bug\\xA02212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 \"character alignment not implemented (align=char, charoff=, text-align:<string>)\")).\\n\\nIf this attribute is not set, the `left` value is assumed.\\n\\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values, use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property on it.\\n*   To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tfoot#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property Unimplemented.'\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/tfoot\"\n        }\n      ]\n    },\n    {\n      \"name\": \"tr\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The tr element represents a row of cells in a table.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"align\",\n          \"description\": 'A [`DOMString`](https://developer.mozilla.org/en-US/docs/Web/API/DOMString \"DOMString is a UTF-16 String. As JavaScript already uses such strings, DOMString is mapped directly to a String.\") which specifies how the cell\\'s context should be aligned horizontally within the cells in the row; this is shorthand for using `align` on every cell in the row individually. Possible values are:\\n\\n`left`\\n\\nAlign the content of each cell at its left edge.\\n\\n`center`\\n\\nCenter the contents of each cell between their left and right edges.\\n\\n`right`\\n\\nAlign the content of each cell at its right edge.\\n\\n`justify`\\n\\nWiden whitespaces within the text of each cell so that the text fills the full width of each cell (full justification).\\n\\n`char`\\n\\nAlign each cell in the row on a specific character (such that each row in the column that is configured this way will horizontally align its cells on that character). This uses the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tr#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tr#attr-charoff) to establish the alignment character (typically \".\" or \",\" when aligning numerical data) and the number of characters that should follow the alignment character. This alignment type was never widely supported.\\n\\nIf no value is expressly set for `align`, the parent node\\'s value is inherited.\\n\\nInstead of using the obsolete `align` attribute, you should instead use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property to establish `left`, `center`, `right`, or `justify` alignment for the row\\'s cells. To apply character-based alignment, set the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property to the alignment character (such as `\".\"` or `\",\"`).'\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/tr\"\n        }\n      ]\n    },\n    {\n      \"name\": \"td\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The td element represents a data cell in a table.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"colspan\"\n        },\n        {\n          \"name\": \"rowspan\"\n        },\n        {\n          \"name\": \"headers\"\n        },\n        {\n          \"name\": \"abbr\",\n          \"description\": \"This attribute contains a short abbreviated description of the cell's content. Some user-agents, such as speech readers, may present this description before the content itself.\\n\\n**Note:** Do not use this attribute as it is obsolete in the latest standard. Alternatively, you can put the abbreviated description inside the cell and place the long content in the **title** attribute.\"\n        },\n        {\n          \"name\": \"align\",\n          \"description\": 'This enumerated attribute specifies how the cell content\\'s horizontal alignment will be handled. Possible values are:\\n\\n*   `left`: The content is aligned to the left of the cell.\\n*   `center`: The content is centered in the cell.\\n*   `right`: The content is aligned to the right of the cell.\\n*   `justify` (with text only): The content is stretched out inside the cell so that it covers its entire width.\\n*   `char` (with text only): The content is aligned to a character inside the `<th>` element with minimal offset. This character is defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-charoff) attributes Unimplemented (see [bug\\xA02212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 \"character alignment not implemented (align=char, charoff=, text-align:<string>)\")).\\n\\nThe default value when this attribute is not specified is `left`.\\n\\n**Note:** Do not use this attribute as it is obsolete in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values, apply the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property to the element.\\n*   To achieve the same effect as the `char` value, give the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property the same value you would use for the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-char). Unimplemented in CSS3.'\n        },\n        {\n          \"name\": \"axis\",\n          \"description\": \"This attribute contains a list of space-separated strings. Each string is the `id` of a group of cells that this header applies to.\\n\\n**Note:** Do not use this attribute as it is obsolete in the latest standard.\"\n        },\n        {\n          \"name\": \"bgcolor\",\n          \"description\": 'This attribute defines the background color of each cell in a column. It consists of a 6-digit hexadecimal code as defined in [sRGB](https://www.w3.org/Graphics/Color/sRGB) and is prefixed by \\'#\\'. This attribute may be used with one of sixteen predefined color strings:\\n\\n\\xA0\\n\\n`black` = \"#000000\"\\n\\n\\xA0\\n\\n`green` = \"#008000\"\\n\\n\\xA0\\n\\n`silver` = \"#C0C0C0\"\\n\\n\\xA0\\n\\n`lime` = \"#00FF00\"\\n\\n\\xA0\\n\\n`gray` = \"#808080\"\\n\\n\\xA0\\n\\n`olive` = \"#808000\"\\n\\n\\xA0\\n\\n`white` = \"#FFFFFF\"\\n\\n\\xA0\\n\\n`yellow` = \"#FFFF00\"\\n\\n\\xA0\\n\\n`maroon` = \"#800000\"\\n\\n\\xA0\\n\\n`navy` = \"#000080\"\\n\\n\\xA0\\n\\n`red` = \"#FF0000\"\\n\\n\\xA0\\n\\n`blue` = \"#0000FF\"\\n\\n\\xA0\\n\\n`purple` = \"#800080\"\\n\\n\\xA0\\n\\n`teal` = \"#008080\"\\n\\n\\xA0\\n\\n`fuchsia` = \"#FF00FF\"\\n\\n\\xA0\\n\\n`aqua` = \"#00FFFF\"\\n\\n**Note:** Do not use this attribute, as it is non-standard and only implemented in some versions of Microsoft Internet Explorer: The [`<td>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td \"The HTML <td> element defines a cell of a table that contains data. It participates in the table model.\") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). To create a similar effect use the [`background-color`](https://developer.mozilla.org/en-US/docs/Web/CSS/background-color \"The background-color CSS property sets the background color of an element.\") property in [CSS](https://developer.mozilla.org/en-US/docs/CSS) instead.'\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/td\"\n        }\n      ]\n    },\n    {\n      \"name\": \"th\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The th element represents a header cell in a table.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"colspan\"\n        },\n        {\n          \"name\": \"rowspan\"\n        },\n        {\n          \"name\": \"headers\"\n        },\n        {\n          \"name\": \"scope\",\n          \"valueSet\": \"s\"\n        },\n        {\n          \"name\": \"sorted\"\n        },\n        {\n          \"name\": \"abbr\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"This attribute contains a short abbreviated description of the cell's content. Some user-agents, such as speech readers, may present this description before the content itself.\"\n          }\n        },\n        {\n          \"name\": \"align\",\n          \"description\": 'This enumerated attribute specifies how the cell content\\'s horizontal alignment will be handled. Possible values are:\\n\\n*   `left`: The content is aligned to the left of the cell.\\n*   `center`: The content is centered in the cell.\\n*   `right`: The content is aligned to the right of the cell.\\n*   `justify` (with text only): The content is stretched out inside the cell so that it covers its entire width.\\n*   `char` (with text only): The content is aligned to a character inside the `<th>` element with minimal offset. This character is defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-charoff) attributes.\\n\\nThe default value when this attribute is not specified is `left`.\\n\\n**Note:** Do not use this attribute as it is obsolete in the latest standard.\\n\\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values, apply the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property to the element.\\n*   To achieve the same effect as the `char` value, give the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align \"The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.\") property the same value you would use for the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-char). Unimplemented in CSS3.'\n        },\n        {\n          \"name\": \"axis\",\n          \"description\": \"This attribute contains a list of space-separated strings. Each string is the `id` of a group of cells that this header applies to.\\n\\n**Note:** Do not use this attribute as it is obsolete in the latest standard: use the [`scope`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-scope) attribute instead.\"\n        },\n        {\n          \"name\": \"bgcolor\",\n          \"description\": 'This attribute defines the background color of each cell in a column. It consists of a 6-digit hexadecimal code as defined in [sRGB](https://www.w3.org/Graphics/Color/sRGB) and is prefixed by \\'#\\'. This attribute may be used with one of sixteen predefined color strings:\\n\\n\\xA0\\n\\n`black` = \"#000000\"\\n\\n\\xA0\\n\\n`green` = \"#008000\"\\n\\n\\xA0\\n\\n`silver` = \"#C0C0C0\"\\n\\n\\xA0\\n\\n`lime` = \"#00FF00\"\\n\\n\\xA0\\n\\n`gray` = \"#808080\"\\n\\n\\xA0\\n\\n`olive` = \"#808000\"\\n\\n\\xA0\\n\\n`white` = \"#FFFFFF\"\\n\\n\\xA0\\n\\n`yellow` = \"#FFFF00\"\\n\\n\\xA0\\n\\n`maroon` = \"#800000\"\\n\\n\\xA0\\n\\n`navy` = \"#000080\"\\n\\n\\xA0\\n\\n`red` = \"#FF0000\"\\n\\n\\xA0\\n\\n`blue` = \"#0000FF\"\\n\\n\\xA0\\n\\n`purple` = \"#800080\"\\n\\n\\xA0\\n\\n`teal` = \"#008080\"\\n\\n\\xA0\\n\\n`fuchsia` = \"#FF00FF\"\\n\\n\\xA0\\n\\n`aqua` = \"#00FFFF\"\\n\\n**Note:** Do not use this attribute, as it is non-standard and only implemented in some versions of Microsoft Internet Explorer: The [`<th>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th \"The HTML <th> element defines a cell as header of a group of table cells. The exact nature of this group is defined by the scope and headers attributes.\") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/Web/CSS). To create a similar effect use the [`background-color`](https://developer.mozilla.org/en-US/docs/Web/CSS/background-color \"The background-color CSS property sets the background color of an element.\") property in [CSS](https://developer.mozilla.org/en-US/docs/Web/CSS) instead.'\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/th\"\n        }\n      ]\n    },\n    {\n      \"name\": \"form\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The form element represents a collection of form-associated elements, some of which can represent editable values that can be submitted to a server for processing.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"accept-charset\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'A space- or comma-delimited list of character encodings that the server accepts. The browser uses them in the order in which they are listed. The default value, the reserved string `\"UNKNOWN\"`, indicates the same encoding as that of the document containing the form element.  \\nIn previous versions of HTML, the different character encodings could be delimited by spaces or commas. In HTML5, only spaces are allowed as delimiters.'\n          }\n        },\n        {\n          \"name\": \"action\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'The URI of a program that processes the form information. This value can be overridden by a [`formaction`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formaction) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element.'\n          }\n        },\n        {\n          \"name\": \"autocomplete\",\n          \"valueSet\": \"o\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Indicates whether input elements can by default have their values automatically completed by the browser. This setting can be overridden by an `autocomplete` attribute on an element belonging to the form. Possible values are:\\n\\n*   `off`: The user must explicitly enter a value into each field for every use, or the document provides its own auto-completion method; the browser does not automatically complete entries.\\n*   `on`: The browser can automatically complete values based on values that the user has previously entered in the form.\\n\\nFor most modern browsers (including Firefox 38+, Google Chrome 34+, IE 11+) setting the autocomplete attribute will not prevent a browser's password manager from asking the user if they want to store login fields (username and password), if the user permits the storage the browser will autofill the login the next time the user visits the page. See [The autocomplete attribute and login fields](https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion#The_autocomplete_attribute_and_login_fields).\\n**Note:** If you set `autocomplete` to `off` in a form because the document provides its own auto-completion, then you should also set `autocomplete` to `off` for each of the form's `input` elements that the document can auto-complete. For details, see the note regarding Google Chrome in the [Browser Compatibility chart](#compatChart).\"\n          }\n        },\n        {\n          \"name\": \"enctype\",\n          \"valueSet\": \"et\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'When the value of the `method` attribute is `post`, enctype is the [MIME type](https://en.wikipedia.org/wiki/Mime_type) of content that is used to submit the form to the server. Possible values are:\\n\\n*   `application/x-www-form-urlencoded`: The default value if the attribute is not specified.\\n*   `multipart/form-data`: The value used for an [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element with the `type` attribute set to \"file\".\\n*   `text/plain`: (HTML5)\\n\\nThis value can be overridden by a [`formenctype`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formenctype) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element.'\n          }\n        },\n        {\n          \"name\": \"method\",\n          \"valueSet\": \"m\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'The [HTTP](https://developer.mozilla.org/en-US/docs/Web/HTTP) method that the browser uses to submit the form. Possible values are:\\n\\n*   `post`: Corresponds to the HTTP [POST method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5) ; form data are included in the body of the form and sent to the server.\\n*   `get`: Corresponds to the HTTP [GET method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3); form data are appended to the `action` attribute URI with a \\'?\\' as separator, and the resulting URI is sent to the server. Use this method when the form has no side-effects and contains only ASCII characters.\\n*   `dialog`: Use when the form is inside a\\xA0[`<dialog>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog \"The HTML <dialog> element represents a dialog box or other interactive component, such as an inspector or window.\") element to close the dialog when submitted.\\n\\nThis value can be overridden by a [`formmethod`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formmethod) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element.'\n          }\n        },\n        {\n          \"name\": \"name\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The name of the form. In HTML 4, its use is deprecated (`id` should be used instead). It must be unique among the forms in a document and not just an empty string in HTML 5.\"\n          }\n        },\n        {\n          \"name\": \"novalidate\",\n          \"valueSet\": \"v\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'This Boolean attribute indicates that the form is not to be validated when submitted. If this attribute is not specified (and therefore the form is validated), this default setting can be overridden by a [`formnovalidate`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formnovalidate) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element belonging to the form.'\n          }\n        },\n        {\n          \"name\": \"target\",\n          \"valueSet\": \"target\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'A name or keyword indicating where to display the response that is received after submitting the form. In HTML 4, this is the name/keyword for a frame. In HTML5, it is a name/keyword for a _browsing context_ (for example, tab, window, or inline frame). The following keywords have special meanings:\\n\\n*   `_self`: Load the response into the same HTML 4 frame (or HTML5 browsing context) as the current one. This value is the default if the attribute is not specified.\\n*   `_blank`: Load the response into a new unnamed HTML 4 window or HTML5 browsing context.\\n*   `_parent`: Load the response into the HTML 4 frameset parent of the current frame, or HTML5 parent browsing context of the current one. If there is no parent, this option behaves the same way as `_self`.\\n*   `_top`: HTML 4: Load the response into the full original window, and cancel all other frames. HTML5: Load the response into the top-level browsing context (i.e., the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as `_self`.\\n*   _iframename_: The response is displayed in a named [`<iframe>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe \"The HTML Inline Frame element (<iframe>) represents a nested browsing context, embedding another HTML page into the current one.\").\\n\\nHTML5: This value can be overridden by a [`formtarget`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formtarget) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element.'\n          }\n        },\n        {\n          \"name\": \"accept\",\n          \"description\": 'A comma-separated list of content types that the server accepts.\\n\\n**Usage note:** This attribute has been removed in HTML5 and should no longer be used. Instead, use the [`accept`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-accept) attribute of the specific [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element.'\n        },\n        {\n          \"name\": \"autocapitalize\",\n          \"description\": \"This is a nonstandard attribute used by iOS Safari Mobile which controls whether and how the text value for textual form control descendants should be automatically capitalized as it is entered/edited by the user. If the `autocapitalize` attribute is specified on an individual form control descendant, it trumps the form-wide `autocapitalize` setting. The non-deprecated values are available in iOS 5 and later. The default value is `sentences`. Possible values are:\\n\\n*   `none`: Completely disables automatic capitalization\\n*   `sentences`: Automatically capitalize the first letter of sentences.\\n*   `words`: Automatically capitalize the first letter of words.\\n*   `characters`: Automatically capitalize all characters.\\n*   `on`: Deprecated since iOS 5.\\n*   `off`: Deprecated since iOS 5.\"\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/form\"\n        }\n      ]\n    },\n    {\n      \"name\": \"label\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The label element represents a caption in a user interface. The caption can be associated with a specific form control, known as the label element's labeled control, either using the for attribute, or by putting the form control inside the label element itself.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"form\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'The [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element with which the label is associated (its _form owner_). If specified, the value of the attribute is the `id` of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element in the same document. This lets you place label elements anywhere within a document, not just as descendants of their form elements.'\n          }\n        },\n        {\n          \"name\": \"for\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The [`id`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-id) of a [labelable](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Form_labelable) form-related element in the same document as the `<label>` element. The first element in the document with an `id` matching the value of the `for` attribute is the _labeled control_ for this label element, if it is a labelable element. If it is\\xA0not labelable then the `for` attribute has no effect. If there are other elements which also match the `id` value, later in the document, they are not considered.\\n\\n**Note**: A `<label>` element can have both a `for` attribute and a contained control element, as long as the `for` attribute points to the contained control element.\"\n          }\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/label\"\n        }\n      ]\n    },\n    {\n      \"name\": \"input\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The input element represents a typed data field, usually with a form control to allow the user to edit the data.\"\n      },\n      \"void\": true,\n      \"attributes\": [\n        {\n          \"name\": \"accept\"\n        },\n        {\n          \"name\": \"alt\"\n        },\n        {\n          \"name\": \"autocomplete\",\n          \"valueSet\": \"inputautocomplete\"\n        },\n        {\n          \"name\": \"autofocus\",\n          \"valueSet\": \"v\"\n        },\n        {\n          \"name\": \"checked\",\n          \"valueSet\": \"v\"\n        },\n        {\n          \"name\": \"dirname\"\n        },\n        {\n          \"name\": \"disabled\",\n          \"valueSet\": \"v\"\n        },\n        {\n          \"name\": \"form\"\n        },\n        {\n          \"name\": \"formaction\"\n        },\n        {\n          \"name\": \"formenctype\",\n          \"valueSet\": \"et\"\n        },\n        {\n          \"name\": \"formmethod\",\n          \"valueSet\": \"fm\"\n        },\n        {\n          \"name\": \"formnovalidate\",\n          \"valueSet\": \"v\"\n        },\n        {\n          \"name\": \"formtarget\"\n        },\n        {\n          \"name\": \"height\"\n        },\n        {\n          \"name\": \"inputmode\",\n          \"valueSet\": \"im\"\n        },\n        {\n          \"name\": \"list\"\n        },\n        {\n          \"name\": \"max\"\n        },\n        {\n          \"name\": \"maxlength\"\n        },\n        {\n          \"name\": \"min\"\n        },\n        {\n          \"name\": \"minlength\"\n        },\n        {\n          \"name\": \"multiple\",\n          \"valueSet\": \"v\"\n        },\n        {\n          \"name\": \"name\"\n        },\n        {\n          \"name\": \"pattern\"\n        },\n        {\n          \"name\": \"placeholder\"\n        },\n        {\n          \"name\": \"readonly\",\n          \"valueSet\": \"v\"\n        },\n        {\n          \"name\": \"required\",\n          \"valueSet\": \"v\"\n        },\n        {\n          \"name\": \"size\"\n        },\n        {\n          \"name\": \"src\"\n        },\n        {\n          \"name\": \"step\"\n        },\n        {\n          \"name\": \"type\",\n          \"valueSet\": \"t\"\n        },\n        {\n          \"name\": \"value\"\n        },\n        {\n          \"name\": \"width\"\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/input\"\n        }\n      ]\n    },\n    {\n      \"name\": \"button\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The button element represents a button labeled by its contents.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"autofocus\",\n          \"valueSet\": \"v\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"This Boolean attribute lets you specify that the button should have input focus when the page loads, unless the user overrides it, for example by typing in a different control. Only one form-associated element in a document can have this attribute specified.\"\n          }\n        },\n        {\n          \"name\": \"disabled\",\n          \"valueSet\": \"v\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'This Boolean attribute indicates that the user cannot interact with the button. If this attribute is not specified, the button inherits its setting from the containing element, for example [`<fieldset>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset \"The HTML <fieldset> element is used to group several controls as well as labels (<label>) within a web form.\"); if there is no containing element with the **disabled** attribute set, then the button is enabled.\\n\\nFirefox will, unlike other browsers, by default, [persist the dynamic disabled state](https://stackoverflow.com/questions/5985839/bug-with-firefox-disabled-attribute-of-input-not-resetting-when-refreshing) of a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") across page loads. Use the [`autocomplete`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-autocomplete) attribute to control this feature.'\n          }\n        },\n        {\n          \"name\": \"form\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'The form element that the button is associated with (its _form owner_). The value of the attribute must be the **id** attribute of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element in the same document. If this attribute is not specified, the `<button>` element will be associated to an ancestor [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element, if one exists. This attribute enables you to associate `<button>` elements to [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") elements anywhere within a document, not just as descendants of [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") elements.'\n          }\n        },\n        {\n          \"name\": \"formaction\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The URI of a program that processes the information submitted by the button. If specified, it overrides the [`action`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-action) attribute of the button's form owner.\"\n          }\n        },\n        {\n          \"name\": \"formenctype\",\n          \"valueSet\": \"et\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'If the button is a submit button, this attribute specifies the type of content that is used to submit the form to the server. Possible values are:\\n\\n*   `application/x-www-form-urlencoded`: The default value if the attribute is not specified.\\n*   `multipart/form-data`: Use this value if you are using an [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") element with the [`type`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-type) attribute set to `file`.\\n*   `text/plain`\\n\\nIf this attribute is specified, it overrides the [`enctype`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-enctype) attribute of the button\\'s form owner.'\n          }\n        },\n        {\n          \"name\": \"formmethod\",\n          \"valueSet\": \"fm\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"If the button is a submit button, this attribute specifies the HTTP method that the browser uses to submit the form. Possible values are:\\n\\n*   `post`: The data from the form are included in the body of the form and sent to the server.\\n*   `get`: The data from the form are appended to the **form** attribute URI, with a '?' as a separator, and the resulting URI is sent to the server. Use this method when the form has no side-effects and contains only ASCII characters.\\n\\nIf specified, this attribute overrides the [`method`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-method) attribute of the button's form owner.\"\n          }\n        },\n        {\n          \"name\": \"formnovalidate\",\n          \"valueSet\": \"v\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"If the button is a submit button, this Boolean attribute specifies that the form is not to be validated when it is submitted. If this attribute is specified, it overrides the [`novalidate`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-novalidate) attribute of the button's form owner.\"\n          }\n        },\n        {\n          \"name\": \"formtarget\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"If the button is a submit button, this attribute is a name or keyword indicating where to display the response that is received after submitting the form. This is a name of, or keyword for, a _browsing context_ (for example, tab, window, or inline frame). If this attribute is specified, it overrides the [`target`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-target) attribute of the button's form owner. The following keywords have special meanings:\\n\\n*   `_self`: Load the response into the same browsing context as the current one. This value is the default if the attribute is not specified.\\n*   `_blank`: Load the response into a new unnamed browsing context.\\n*   `_parent`: Load the response into the parent browsing context of the current one. If there is no parent, this option behaves the same way as `_self`.\\n*   `_top`: Load the response into the top-level browsing context (that is, the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as `_self`.\"\n          }\n        },\n        {\n          \"name\": \"name\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The name of the button, which is submitted with the form data.\"\n          }\n        },\n        {\n          \"name\": \"type\",\n          \"valueSet\": \"bt\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The type of the button. Possible values are:\\n\\n*   `submit`: The button submits the form data to the server. This is the default if the attribute is not specified, or if the attribute is dynamically changed to an empty or invalid value.\\n*   `reset`: The button resets all the controls to their initial values.\\n*   `button`: The button has no default behavior. It can have client-side scripts associated with the element's events, which are triggered when the events occur.\"\n          }\n        },\n        {\n          \"name\": \"value\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The initial value of the button. It defines the value associated with the button which is submitted with the form data. This value is passed to the server in params when the form is submitted.\"\n          }\n        },\n        {\n          \"name\": \"autocomplete\",\n          \"description\": 'The use of this attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") is nonstandard and Firefox-specific. By default, unlike other browsers, [Firefox persists the dynamic disabled state](https://stackoverflow.com/questions/5985839/bug-with-firefox-disabled-attribute-of-input-not-resetting-when-refreshing) of a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button \"The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.\") across page loads. Setting the value of this attribute to `off` (i.e. `autocomplete=\"off\"`) disables this feature. See [bug\\xA0654072](https://bugzilla.mozilla.org/show_bug.cgi?id=654072 \"if disabled state is changed with javascript, the normal state doesn\\'t return after refreshing the page\").'\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/button\"\n        }\n      ]\n    },\n    {\n      \"name\": \"select\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The select element represents a control for selecting amongst a set of options.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"autocomplete\",\n          \"valueSet\": \"inputautocomplete\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'A [`DOMString`](https://developer.mozilla.org/en-US/docs/Web/API/DOMString \"DOMString is a UTF-16 String. As JavaScript already uses such strings, DOMString is mapped directly to a String.\") providing a hint for a [user agent\\'s](https://developer.mozilla.org/en-US/docs/Glossary/user_agent \"user agent\\'s: A user agent is a computer program representing a person, for example, a browser in a Web context.\") autocomplete feature. See [The HTML autocomplete attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) for a complete list of values and details on how to use autocomplete.'\n          }\n        },\n        {\n          \"name\": \"autofocus\",\n          \"valueSet\": \"v\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"This Boolean attribute lets you specify that a form control should have input focus when the page loads. Only one form element in a document can have the `autofocus` attribute.\"\n          }\n        },\n        {\n          \"name\": \"disabled\",\n          \"valueSet\": \"v\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"This Boolean attribute indicates that the user cannot interact with the control. If this attribute is not specified, the control inherits its setting from the containing element, for example `fieldset`; if there is no containing element with the `disabled` attribute set, then the control is enabled.\"\n          }\n        },\n        {\n          \"name\": \"form\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'This attribute lets you specify the form element to\\xA0which\\xA0the select element is associated\\xA0(that is, its \"form owner\"). If this attribute is specified, its value must be the same as the `id` of a form element in the same document. This enables you to place select elements anywhere within a document, not just as descendants of their form elements.'\n          }\n        },\n        {\n          \"name\": \"multiple\",\n          \"valueSet\": \"v\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"This Boolean attribute indicates that multiple options can be selected in the list. If it is not specified, then only one option can be selected at a time. When `multiple` is specified, most browsers will show a scrolling list box instead of a single line dropdown.\"\n          }\n        },\n        {\n          \"name\": \"name\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"This attribute is used to specify the name of the control.\"\n          }\n        },\n        {\n          \"name\": \"required\",\n          \"valueSet\": \"v\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"A Boolean attribute indicating that an option with a non-empty string value must be selected.\"\n          }\n        },\n        {\n          \"name\": \"size\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"If the control is presented as a scrolling list box (e.g. when `multiple` is specified), this attribute represents the number of rows in the list that should be visible at one time. Browsers are not required to present a select element as a scrolled list box. The default value is 0.\\n\\n**Note:** According to the HTML5 specification, the default value for size should be 1; however, in practice, this has been found to break some web sites, and no other browser currently does that, so Mozilla has opted to continue to return 0 for the time being with Firefox.\"\n          }\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/select\"\n        }\n      ]\n    },\n    {\n      \"name\": \"datalist\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The datalist element represents a set of option elements that represent predefined options for other controls. In the rendering, the datalist element represents nothing and it, along with its children, should be hidden.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/datalist\"\n        }\n      ]\n    },\n    {\n      \"name\": \"optgroup\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The optgroup element represents a group of option elements with a common label.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"disabled\",\n          \"valueSet\": \"v\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"If this Boolean attribute is set, none of the items in this option group is selectable. Often browsers grey out such control and it won't receive any browsing events, like mouse clicks or focus-related ones.\"\n          }\n        },\n        {\n          \"name\": \"label\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The name of the group of options, which the browser can use when labeling the options in the user interface. This attribute is mandatory if this element is used.\"\n          }\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/optgroup\"\n        }\n      ]\n    },\n    {\n      \"name\": \"option\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The option element represents an option in a select element or as part of a list of suggestions in a datalist element.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"disabled\",\n          \"valueSet\": \"v\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'If this Boolean attribute is set, this option is not checkable. Often browsers grey out such control and it won\\'t receive any browsing event, like mouse clicks or focus-related ones. If this attribute is not set, the element can still be disabled if one of its ancestors is a disabled [`<optgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/optgroup \"The HTML <optgroup> element creates a grouping of options within a <select> element.\") element.'\n          }\n        },\n        {\n          \"name\": \"label\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"This attribute is text for the label indicating the meaning of the option. If the `label` attribute isn't defined, its value is that of the element text content.\"\n          }\n        },\n        {\n          \"name\": \"selected\",\n          \"valueSet\": \"v\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'If present, this Boolean attribute indicates that the option is initially selected. If the `<option>` element is the descendant of a [`<select>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select \"The HTML <select> element represents a control that provides a menu of options\") element whose [`multiple`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select#attr-multiple) attribute is not set, only one single `<option>` of this [`<select>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select \"The HTML <select> element represents a control that provides a menu of options\") element may have the `selected` attribute.'\n          }\n        },\n        {\n          \"name\": \"value\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The content of this attribute represents the value to be submitted with the form, should this option be selected.\\xA0If this attribute is omitted, the value is taken from the text content of the option element.\"\n          }\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/option\"\n        }\n      ]\n    },\n    {\n      \"name\": \"textarea\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The textarea element represents a multiline plain text edit control for the element's raw value. The contents of the control represent the control's default value.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"autocomplete\",\n          \"valueSet\": \"inputautocomplete\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'This attribute indicates whether the value of the control can be automatically completed by the browser. Possible values are:\\n\\n*   `off`: The user must explicitly enter a value into this field for every use, or the document provides its own auto-completion method; the browser does not automatically complete the entry.\\n*   `on`: The browser can automatically complete the value based on values that the user has entered during previous uses.\\n\\nIf the `autocomplete` attribute is not specified on a `<textarea>` element, then the browser uses the `autocomplete` attribute value of the `<textarea>` element\\'s form owner. The form owner is either the [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element that this `<textarea>` element is a descendant of or the form element whose `id` is specified by the `form` attribute of the input element. For more information, see the [`autocomplete`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-autocomplete) attribute in [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\").'\n          }\n        },\n        {\n          \"name\": \"autofocus\",\n          \"valueSet\": \"v\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"This Boolean attribute lets you specify that a form control should have input focus when the page loads. Only one form-associated element in a document can have this attribute specified.\"\n          }\n        },\n        {\n          \"name\": \"cols\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The visible width of the text control, in average character widths. If it is specified, it must be a positive integer. If it is not specified, the default value is `20`.\"\n          }\n        },\n        {\n          \"name\": \"dirname\"\n        },\n        {\n          \"name\": \"disabled\",\n          \"valueSet\": \"v\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'This Boolean attribute indicates that the user cannot interact with the control. If this attribute is not specified, the control inherits its setting from the containing element, for example [`<fieldset>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset \"The HTML <fieldset> element is used to group several controls as well as labels (<label>) within a web form.\"); if there is no containing element when the `disabled` attribute is set, the control is enabled.'\n          }\n        },\n        {\n          \"name\": \"form\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'The form element that the `<textarea>` element is associated with (its \"form owner\"). The value of the attribute must be the `id` of a form element in the same document. If this attribute is not specified, the `<textarea>` element must be a descendant of a form element. This attribute enables you to place `<textarea>` elements anywhere within a document, not just as descendants of form elements.'\n          }\n        },\n        {\n          \"name\": \"inputmode\",\n          \"valueSet\": \"im\"\n        },\n        {\n          \"name\": \"maxlength\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The maximum number of characters (unicode code points) that the user can enter. If this value isn't specified, the user can enter an unlimited number of characters.\"\n          }\n        },\n        {\n          \"name\": \"minlength\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The minimum number of characters (unicode code points) required that the user should enter.\"\n          }\n        },\n        {\n          \"name\": \"name\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The name of the control.\"\n          }\n        },\n        {\n          \"name\": \"placeholder\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'A hint to the user of what can be entered in the control. Carriage returns or line-feeds within the placeholder text must be treated as line breaks when rendering the hint.\\n\\n**Note:** Placeholders should only be used to show an example of the type of data that should be entered into a form; they are _not_ a substitute for a proper [`<label>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label \"The HTML <label> element represents a caption for an item in a user interface.\") element tied to the input. See [Labels and placeholders](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Labels_and_placeholders \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") in [<input>: The Input (Form Input) element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") for a full explanation.'\n          }\n        },\n        {\n          \"name\": \"readonly\",\n          \"valueSet\": \"v\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"This Boolean attribute indicates that the user cannot modify the value of the control. Unlike the `disabled` attribute, the `readonly` attribute does not prevent the user from clicking or selecting in the control. The value of a read-only control is still submitted with the form.\"\n          }\n        },\n        {\n          \"name\": \"required\",\n          \"valueSet\": \"v\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"This attribute specifies that the user must fill in a value before submitting a form.\"\n          }\n        },\n        {\n          \"name\": \"rows\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The number of visible text lines for the control.\"\n          }\n        },\n        {\n          \"name\": \"wrap\",\n          \"valueSet\": \"w\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Indicates how the control wraps text. Possible values are:\\n\\n*   `hard`: The browser automatically inserts line breaks (CR+LF) so that each line has no more than the width of the control; the `cols` attribute must also be specified for this to take effect.\\n*   `soft`: The browser ensures that all line breaks in the value consist of a CR+LF pair, but does not insert any additional line breaks.\\n*   `off` : Like `soft` but changes appearance to `white-space: pre` so line segments exceeding `cols` are not wrapped and the `<textarea>` becomes horizontally scrollable.\\n\\nIf this attribute is not specified, `soft` is its default value.\"\n          }\n        },\n        {\n          \"name\": \"autocapitalize\",\n          \"description\": \"This is a non-standard attribute supported by WebKit on iOS (therefore nearly all browsers running on iOS, including Safari, Firefox, and Chrome), which controls whether and how the text value should be automatically capitalized as it is entered/edited by the user. The non-deprecated values are available in iOS 5 and later. Possible values are:\\n\\n*   `none`: Completely disables automatic capitalization.\\n*   `sentences`: Automatically capitalize the first letter of sentences.\\n*   `words`: Automatically capitalize the first letter of words.\\n*   `characters`: Automatically capitalize all characters.\\n*   `on`: Deprecated since iOS 5.\\n*   `off`: Deprecated since iOS 5.\"\n        },\n        {\n          \"name\": \"spellcheck\",\n          \"description\": \"Specifies whether the `<textarea>` is subject to spell checking by the underlying browser/OS. the value can be:\\n\\n*   `true`: Indicates that the element needs to have its spelling and grammar checked.\\n*   `default` : Indicates that the element is to act according to a default behavior, possibly based on the parent element's own `spellcheck` value.\\n*   `false` : Indicates that the element should not be spell checked.\"\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/textarea\"\n        }\n      ]\n    },\n    {\n      \"name\": \"output\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The output element represents the result of a calculation performed by the application, or the result of a user action.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"for\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"A space-separated list of other elements\\u2019 [`id`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id)s, indicating that those elements contributed input values to (or otherwise affected) the calculation.\"\n          }\n        },\n        {\n          \"name\": \"form\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'The [form element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form) that this element is associated with (its \"form owner\"). The value of the attribute must be an `id` of a form element in the same document. If this attribute is not specified, the output element must be a descendant of a form element. This attribute enables you to place output elements anywhere within a document, not just as descendants of their form elements.'\n          }\n        },\n        {\n          \"name\": \"name\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'The name of the element, exposed in the [`HTMLFormElement`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement \"The HTMLFormElement interface represents a <form> element in the DOM; it allows access to and in some cases modification of aspects of the form, as well as access to its component elements.\") API.'\n          }\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/output\"\n        }\n      ]\n    },\n    {\n      \"name\": \"progress\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The progress element represents the completion progress of a task. The progress is either indeterminate, indicating that progress is being made but that it is not clear how much more work remains to be done before the task is complete (e.g. because the task is waiting for a remote host to respond), or the progress is a number in the range zero to a maximum, giving the fraction of work that has so far been completed.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"value\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"This attribute specifies how much of the task that has been completed. It must be a valid floating point number between 0 and `max`, or between 0 and 1 if `max` is omitted. If there is no `value` attribute, the progress bar is indeterminate; this indicates that an activity is ongoing with no indication of how long it is expected to take.\"\n          }\n        },\n        {\n          \"name\": \"max\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"This attribute describes how much work the task indicated by the `progress` element requires. The `max` attribute, if present, must have a value greater than zero and be a valid floating point number. The default value is 1.\"\n          }\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/progress\"\n        }\n      ]\n    },\n    {\n      \"name\": \"meter\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The meter element represents a scalar measurement within a known range, or a fractional value; for example disk usage, the relevance of a query result, or the fraction of a voting population to have selected a particular candidate.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"value\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The current numeric value. This must be between the minimum and maximum values (`min` attribute and `max` attribute) if they are specified. If unspecified or malformed, the value is 0. If specified, but not within the range given by the `min` attribute and `max` attribute, the value is equal to the nearest end of the range.\\n\\n**Usage note:** Unless the `value` attribute is between `0` and `1` (inclusive), the `min` and `max` attributes should define the range so that the `value` attribute's value is within it.\"\n          }\n        },\n        {\n          \"name\": \"min\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The lower numeric bound of the measured range. This must be less than the maximum value (`max` attribute), if specified. If unspecified, the minimum value is 0.\"\n          }\n        },\n        {\n          \"name\": \"max\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The upper numeric bound of the measured range. This must be greater than the minimum value (`min` attribute), if specified. If unspecified, the maximum value is 1.\"\n          }\n        },\n        {\n          \"name\": \"low\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The upper numeric bound of the low end of the measured range. This must be greater than the minimum value (`min` attribute), and it also must be less than the high value and maximum value (`high` attribute and `max` attribute, respectively), if any are specified. If unspecified, or if less than the minimum value, the `low` value is equal to the minimum value.\"\n          }\n        },\n        {\n          \"name\": \"high\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The lower numeric bound of the high end of the measured range. This must be less than the maximum value (`max` attribute), and it also must be greater than the low value and minimum value (`low` attribute and **min** attribute, respectively), if any are specified. If unspecified, or if greater than the maximum value, the `high` value is equal to the maximum value.\"\n          }\n        },\n        {\n          \"name\": \"optimum\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"This attribute indicates the optimal numeric value. It must be within the range (as defined by the `min` attribute and `max` attribute). When used with the `low` attribute and `high` attribute, it gives an indication where along the range is considered preferable. For example, if it is between the `min` attribute and the `low` attribute, then the lower range is considered preferred.\"\n          }\n        },\n        {\n          \"name\": \"form\",\n          \"description\": \"This attribute associates the element with a `form` element that has ownership of the `meter` element. For example, a `meter` might be displaying a range corresponding to an `input` element of `type` _number_. This attribute is only used if the `meter` element is being used as a form-associated element; even then, it may be omitted if the element appears as a descendant of a `form` element.\"\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/meter\"\n        }\n      ]\n    },\n    {\n      \"name\": \"fieldset\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The fieldset element represents a set of form controls optionally grouped under a common name.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"disabled\",\n          \"valueSet\": \"v\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"If this Boolean attribute is set, all form controls that are descendants of the `<fieldset>`, are disabled, meaning they are not editable and won't be submitted along with the `<form>`. They won't receive any browsing events, like mouse clicks or focus-related events. By default browsers display such controls grayed out. Note that form elements inside the [`<legend>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/legend \\\"The HTML <legend> element represents a caption for the content of its parent <fieldset>.\\\") element won't be disabled.\"\n          }\n        },\n        {\n          \"name\": \"form\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'This attribute takes the value of the `id` attribute of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form \"The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.\") element you want the `<fieldset>` to be part of, even if it is not inside the form.'\n          }\n        },\n        {\n          \"name\": \"name\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'The name associated with the group.\\n\\n**Note**: The caption for the fieldset is given by the first [`<legend>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/legend \"The HTML <legend> element represents a caption for the content of its parent <fieldset>.\") element nested inside it.'\n          }\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/fieldset\"\n        }\n      ]\n    },\n    {\n      \"name\": \"legend\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The legend element represents a caption for the rest of the contents of the legend element's parent fieldset element, if any.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/legend\"\n        }\n      ]\n    },\n    {\n      \"name\": \"details\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The details element represents a disclosure widget from which the user can obtain additional information or controls.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"open\",\n          \"valueSet\": \"v\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"This Boolean attribute indicates whether or not the details \\u2014 that is, the contents of the `<details>` element \\u2014 are currently visible. The default, `false`, means the details are not visible.\"\n          }\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/details\"\n        }\n      ]\n    },\n    {\n      \"name\": \"summary\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The summary element represents a summary, caption, or legend for the rest of the contents of the summary element's parent details element, if any.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/summary\"\n        }\n      ]\n    },\n    {\n      \"name\": \"dialog\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The dialog element represents a part of an application that a user interacts with to perform a task, for example a dialog box, inspector, or window.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"open\",\n          \"description\": \"Indicates that the dialog is active and available for interaction. When the `open` attribute is not set, the dialog shouldn't be shown to the user.\"\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/dialog\"\n        }\n      ]\n    },\n    {\n      \"name\": \"script\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The script element allows authors to include dynamic script and data blocks in their documents. The element does not represent content for the user.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"src\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"This attribute specifies the URI of an external script; this can be used as an alternative to embedding a script directly within a document.\\n\\nIf a `script` element has a `src` attribute specified, it should not have a script embedded inside its tags.\"\n          }\n        },\n        {\n          \"name\": \"type\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'This attribute indicates the type of script represented. The value of this attribute will be in one of the following categories:\\n\\n*   **Omitted or a JavaScript MIME type:** For HTML5-compliant browsers this indicates the script is JavaScript. HTML5 specification urges authors to omit the attribute rather than provide a redundant MIME type. In earlier browsers, this identified the scripting language of the embedded or imported (via the `src` attribute) code. JavaScript MIME types are [listed in the specification](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types#JavaScript_types).\\n*   **`module`:** For HTML5-compliant browsers the code is treated as a JavaScript module. The processing of the script contents is not affected by the `charset` and `defer` attributes. For information on using `module`, see [ES6 in Depth: Modules](https://hacks.mozilla.org/2015/08/es6-in-depth-modules/). Code may behave differently when the `module` keyword is used.\\n*   **Any other value:** The embedded content is treated as a data block which won\\'t be processed by the browser. Developers must use a valid MIME type that is not a JavaScript MIME type to denote data blocks. The `src` attribute will be ignored.\\n\\n**Note:** in Firefox you could specify the version of JavaScript contained in a `<script>` element by including a non-standard `version` parameter inside the `type` attribute \\u2014 for example `type=\"text/javascript;version=1.8\"`. This has been removed in Firefox 59 (see [bug\\xA01428745](https://bugzilla.mozilla.org/show_bug.cgi?id=1428745 \"FIXED: Remove support for version parameter from script loader\")).'\n          }\n        },\n        {\n          \"name\": \"charset\"\n        },\n        {\n          \"name\": \"async\",\n          \"valueSet\": \"v\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'This is a Boolean attribute indicating that the browser should, if possible, load the script asynchronously.\\n\\nThis attribute must not be used if the `src` attribute is absent (i.e. for inline scripts). If it is included in this case it will have no effect.\\n\\nBrowsers usually assume the worst case scenario and load scripts synchronously, (i.e. `async=\"false\"`) during HTML parsing.\\n\\nDynamically inserted scripts (using [`document.createElement()`](https://developer.mozilla.org/en-US/docs/Web/API/Document/createElement \"In an HTML document, the document.createElement() method creates the HTML element specified by tagName, or an HTMLUnknownElement if tagName isn\\'t recognized.\")) load asynchronously by default, so to turn on synchronous loading (i.e. scripts load in the order they were inserted) set `async=\"false\"`.\\n\\nSee [Browser compatibility](#Browser_compatibility) for notes on browser support. See also [Async scripts for asm.js](https://developer.mozilla.org/en-US/docs/Games/Techniques/Async_scripts).'\n          }\n        },\n        {\n          \"name\": \"defer\",\n          \"valueSet\": \"v\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'This Boolean attribute is set to indicate to a browser that the script is meant to be executed after the document has been parsed, but before firing [`DOMContentLoaded`](https://developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoaded \"/en-US/docs/Web/Events/DOMContentLoaded\").\\n\\nScripts with the `defer` attribute will prevent the `DOMContentLoaded` event from firing until the script has loaded and finished evaluating.\\n\\nThis attribute must not be used if the `src` attribute is absent (i.e. for inline scripts), in this case it would have no effect.\\n\\nTo achieve a similar effect for dynamically inserted scripts use `async=\"false\"` instead. Scripts with the `defer` attribute will execute in the order in which they appear in the document.'\n          }\n        },\n        {\n          \"name\": \"crossorigin\",\n          \"valueSet\": \"xo\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": 'Normal `script` elements pass minimal information to the [`window.onerror`](https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror \"The onerror property of the GlobalEventHandlers mixin is an EventHandler that processes error events.\") for scripts which do not pass the standard [CORS](https://developer.mozilla.org/en-US/docs/Glossary/CORS \"CORS: CORS (Cross-Origin Resource Sharing) is a system, consisting of transmitting HTTP headers, that determines whether browsers block frontend JavaScript code from accessing responses for cross-origin requests.\") checks. To allow error logging for sites which use a separate domain for static media, use this attribute. See [CORS settings attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) for a more descriptive explanation of its valid arguments.'\n          }\n        },\n        {\n          \"name\": \"nonce\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"A cryptographic nonce (number used once) to list the allowed inline scripts in a [script-src Content-Security-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src). The server must generate a unique nonce value each time it transmits a policy. It is critical to provide a nonce that cannot be guessed as bypassing a resource's policy is otherwise trivial.\"\n          }\n        },\n        {\n          \"name\": \"integrity\",\n          \"description\": \"This attribute contains inline metadata that a user agent can use to verify that a fetched resource has been delivered free of unexpected manipulation. See [Subresource Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity).\"\n        },\n        {\n          \"name\": \"nomodule\",\n          \"description\": \"This Boolean attribute is set to indicate that the script should not be executed in browsers that support [ES2015 modules](https://hacks.mozilla.org/2015/08/es6-in-depth-modules/) \\u2014 in effect, this can be used to serve fallback scripts to older browsers that do not support modular JavaScript code.\"\n        },\n        {\n          \"name\": \"referrerpolicy\",\n          \"description\": 'Indicates which [referrer](https://developer.mozilla.org/en-US/docs/Web/API/Document/referrer) to send when fetching the script, or resources fetched by the script:\\n\\n*   `no-referrer`: The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent.\\n*   `no-referrer-when-downgrade` (default): The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent to [origin](https://developer.mozilla.org/en-US/docs/Glossary/origin \"origin: Web content\\'s origin is defined by the scheme (protocol), host (domain), and port of the URL used to access it. Two objects have the same origin only when the scheme, host, and port all match.\")s without [TLS](https://developer.mozilla.org/en-US/docs/Glossary/TLS \"TLS: Transport Layer Security (TLS), previously known as Secure Sockets Layer (SSL), is a protocol used by applications to communicate securely across a network, preventing tampering with and eavesdropping on email, web browsing, messaging, and other protocols.\") ([HTTPS](https://developer.mozilla.org/en-US/docs/Glossary/HTTPS \"HTTPS: HTTPS (HTTP Secure) is an encrypted version of the HTTP protocol. It usually uses SSL or TLS to encrypt all communication between a client and a server. This secure connection allows clients to safely exchange sensitive data with a server, for example for banking activities or online shopping.\")).\\n*   `origin`: The sent referrer will be limited to the origin of the referring page: its [scheme](https://developer.mozilla.org/en-US/docs/Archive/Mozilla/URIScheme), [host](https://developer.mozilla.org/en-US/docs/Glossary/host \"host: A host is a device connected to the Internet (or a local network). Some hosts called servers offer additional services like serving webpages or storing files and emails.\"), and [port](https://developer.mozilla.org/en-US/docs/Glossary/port \"port: For a computer connected to a network with an IP address, a port is a communication endpoint. Ports are designated by numbers, and below 1024 each port is associated by default with a specific protocol.\").\\n*   `origin-when-cross-origin`: The referrer sent to other origins will be limited to the scheme, the host, and the port. Navigations on the same origin will still include the path.\\n*   `same-origin`: A referrer will be sent for [same origin](https://developer.mozilla.org/en-US/docs/Glossary/Same-origin_policy \"same origin: The same-origin policy is a critical security mechanism that restricts how a document or script loaded from one origin can interact with a resource from another origin.\"), but cross-origin requests will contain no referrer information.\\n*   `strict-origin`: Only send the origin of the document as the referrer when the protocol security level stays the same (e.g. HTTPS\\u2192HTTPS), but don\\'t send it to a less secure destination (e.g. HTTPS\\u2192HTTP).\\n*   `strict-origin-when-cross-origin`: Send a full URL when performing a same-origin request, but only send the origin when the protocol security level stays the same (e.g.HTTPS\\u2192HTTPS), and send no header to a less secure destination (e.g. HTTPS\\u2192HTTP).\\n*   `unsafe-url`: The referrer will include the origin _and_ the path (but not the [fragment](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/hash), [password](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/password), or [username](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/username)). **This value is unsafe**, because it leaks origins and paths from TLS-protected resources to insecure origins.\\n\\n**Note**: An empty string value (`\"\"`) is both the default value, and a fallback value if `referrerpolicy` is not supported. If `referrerpolicy` is not explicitly specified on the `<script>` element, it will adopt a higher-level referrer policy, i.e. one set on the whole document or domain. If a higher-level policy is not available,\\xA0the empty string is treated as being equivalent to `no-referrer-when-downgrade`.'\n        },\n        {\n          \"name\": \"text\",\n          \"description\": \"Like the `textContent` attribute, this attribute sets the text content of the element. Unlike the `textContent` attribute, however, this attribute is evaluated as executable code after the node is inserted into the DOM.\"\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/script\"\n        }\n      ]\n    },\n    {\n      \"name\": \"noscript\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The noscript element represents nothing if scripting is enabled, and represents its children if scripting is disabled. It is used to present different markup to user agents that support scripting and those that don't support scripting, by affecting how the document is parsed.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/noscript\"\n        }\n      ]\n    },\n    {\n      \"name\": \"template\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The template element is used to declare fragments of HTML that can be cloned and inserted in the document by script.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/template\"\n        }\n      ]\n    },\n    {\n      \"name\": \"canvas\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The canvas element provides scripts with a resolution-dependent bitmap canvas, which can be used for rendering graphs, game graphics, art, or other visual images on the fly.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"width\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The width of the coordinate space in CSS pixels. Defaults to 300.\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The height of the coordinate space in CSS pixels. Defaults to 150.\"\n          }\n        },\n        {\n          \"name\": \"moz-opaque\",\n          \"description\": \"Lets the canvas know whether or not translucency will be a factor. If the canvas knows there's no translucency, painting performance can be optimized. This is only supported by Mozilla-based browsers; use the standardized [`canvas.getContext('2d', { alpha: false })`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/getContext \\\"The HTMLCanvasElement.getContext() method returns a drawing context on the canvas, or null if the context identifier is not supported.\\\") instead.\"\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/canvas\"\n        }\n      ]\n    },\n    {\n      \"name\": \"slot\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The slot element is a placeholder inside a web component that you can fill with your own markup, which lets you create separate DOM trees and present them together.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"name\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"The slot's name.\\nA **named slot** is a `<slot>` element with a `name` attribute.\"\n          }\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/slot\"\n        }\n      ]\n    },\n    {\n      \"name\": \"data\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The data element links a given piece of content with a machine-readable translation.\"\n      },\n      \"attributes\": [\n        {\n          \"name\": \"value\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"This attribute specifies the machine-readable translation of the content of the element.\"\n          }\n        }\n      ],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/data\"\n        }\n      ]\n    },\n    {\n      \"name\": \"hgroup\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The hgroup element represents a heading and related content. It groups a single h1\\u2013h6 element with one or more p.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/hgroup\"\n        }\n      ]\n    },\n    {\n      \"name\": \"menu\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The menu element represents an unordered list of interactive items.\"\n      },\n      \"attributes\": [],\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Element/menu\"\n        }\n      ]\n    }\n  ],\n  \"globalAttributes\": [\n    {\n      \"name\": \"accesskey\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Provides a hint for generating a keyboard shortcut for the current element. This attribute consists of a space-separated list of characters. The browser should use the first one that exists on the computer keyboard layout.\"\n      },\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/accesskey\"\n        }\n      ]\n    },\n    {\n      \"name\": \"autocapitalize\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Controls whether and how text input is automatically capitalized as it is entered/edited by the user. It can have the following values:\\n\\n*   `off` or `none`, no autocapitalization is applied (all letters default to lowercase)\\n*   `on` or `sentences`, the first letter of each sentence defaults to a capital letter; all other letters default to lowercase\\n*   `words`, the first letter of each word defaults to a capital letter; all other letters default to lowercase\\n*   `characters`, all letters should default to uppercase\"\n      },\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/autocapitalize\"\n        }\n      ]\n    },\n    {\n      \"name\": \"class\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": 'A space-separated list of the classes of the element. Classes allows CSS and JavaScript to select and access specific elements via the [class selectors](https://developer.mozilla.org/docs/Web/CSS/Class_selectors) or functions like the method [`Document.getElementsByClassName()`](https://developer.mozilla.org/docs/Web/API/Document/getElementsByClassName \"returns an array-like object of all child elements which have all of the given class names.\").'\n      },\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/class\"\n        }\n      ]\n    },\n    {\n      \"name\": \"contenteditable\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"An enumerated attribute indicating if the element should be editable by the user. If so, the browser modifies its widget to allow editing. The attribute must take one of the following values:\\n\\n*   `true` or the _empty string_, which indicates that the element must be editable;\\n*   `false`, which indicates that the element must not be editable.\"\n      },\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/contenteditable\"\n        }\n      ]\n    },\n    {\n      \"name\": \"contextmenu\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": 'The `[**id**](#attr-id)` of a [`<menu>`](https://developer.mozilla.org/docs/Web/HTML/Element/menu \"The HTML <menu> element represents a group of commands that a user can perform or activate. This includes both list menus, which might appear across the top of a screen, as well as context menus, such as those that might appear underneath a button after it has been clicked.\") to use as the contextual menu for this element.'\n      },\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/contextmenu\"\n        }\n      ]\n    },\n    {\n      \"name\": \"dir\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"An enumerated attribute indicating the directionality of the element's text. It can have the following values:\\n\\n*   `ltr`, which means _left to right_ and is to be used for languages that are written from the left to the right (like English);\\n*   `rtl`, which means _right to left_ and is to be used for languages that are written from the right to the left (like Arabic);\\n*   `auto`, which lets the user agent decide. It uses a basic algorithm as it parses the characters inside the element until it finds a character with a strong directionality, then it applies that directionality to the whole element.\"\n      },\n      \"valueSet\": \"d\",\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/dir\"\n        }\n      ]\n    },\n    {\n      \"name\": \"draggable\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"An enumerated attribute indicating whether the element can be dragged, using the [Drag and Drop API](https://developer.mozilla.org/docs/DragDrop/Drag_and_Drop). It can have the following values:\\n\\n*   `true`, which indicates that the element may be dragged\\n*   `false`, which indicates that the element may not be dragged.\"\n      },\n      \"valueSet\": \"b\",\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/draggable\"\n        }\n      ]\n    },\n    {\n      \"name\": \"dropzone\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"An enumerated attribute indicating what types of content can be dropped on an element, using the [Drag and Drop API](https://developer.mozilla.org/docs/DragDrop/Drag_and_Drop). It can have the following values:\\n\\n*   `copy`, which indicates that dropping will create a copy of the element that was dragged\\n*   `move`, which indicates that the element that was dragged will be moved to this new location.\\n*   `link`, will create a link to the dragged data.\"\n      }\n    },\n    {\n      \"name\": \"exportparts\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Used to transitively export shadow parts from a nested shadow tree into a containing light tree.\"\n      },\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/exportparts\"\n        }\n      ]\n    },\n    {\n      \"name\": \"hidden\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"A Boolean attribute indicates that the element is not yet, or is no longer, _relevant_. For example, it can be used to hide elements of the page that can't be used until the login process has been completed. The browser won't render such elements. This attribute must not be used to hide content that could legitimately be shown.\"\n      },\n      \"valueSet\": \"v\",\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/hidden\"\n        }\n      ]\n    },\n    {\n      \"name\": \"id\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Defines a unique identifier (ID) which must be unique in the whole document. Its purpose is to identify the element when linking (using a fragment identifier), scripting, or styling (with CSS).\"\n      },\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/id\"\n        }\n      ]\n    },\n    {\n      \"name\": \"inputmode\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": 'Provides a hint to browsers as to the type of virtual keyboard configuration to use when editing this element or its contents. Used primarily on [`<input>`](https://developer.mozilla.org/docs/Web/HTML/Element/input \"The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.\") elements, but is usable on any element while in `[contenteditable](https://developer.mozilla.org/docs/Web/HTML/Global_attributes#attr-contenteditable)` mode.'\n      },\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/inputmode\"\n        }\n      ]\n    },\n    {\n      \"name\": \"is\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Allows you to specify that a standard HTML element should behave like a registered custom built-in element (see [Using custom elements](https://developer.mozilla.org/docs/Web/Web_Components/Using_custom_elements) for more details).\"\n      },\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/is\"\n        }\n      ]\n    },\n    {\n      \"name\": \"itemid\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The unique, global identifier of an item.\"\n      },\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/itemid\"\n        }\n      ]\n    },\n    {\n      \"name\": \"itemprop\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Used to add properties to an item. Every HTML element may have an `itemprop` attribute specified, where an `itemprop` consists of a name and value pair.\"\n      },\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/itemprop\"\n        }\n      ]\n    },\n    {\n      \"name\": \"itemref\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Properties that are not descendants of an element with the `itemscope` attribute can be associated with the item using an `itemref`. It provides a list of element ids (not `itemid`s) with additional properties elsewhere in the document.\"\n      },\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/itemref\"\n        }\n      ]\n    },\n    {\n      \"name\": \"itemscope\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"`itemscope` (usually) works along with `[itemtype](https://developer.mozilla.org/docs/Web/HTML/Global_attributes#attr-itemtype)` to specify that the HTML contained in a block is about a particular item. `itemscope` creates the Item and defines the scope of the `itemtype` associated with it. `itemtype` is a valid URL of a vocabulary (such as [schema.org](https://schema.org/)) that describes the item and its properties context.\"\n      },\n      \"valueSet\": \"v\",\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/itemscope\"\n        }\n      ]\n    },\n    {\n      \"name\": \"itemtype\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Specifies the URL of the vocabulary that will be used to define `itemprop`s (item properties) in the data structure. `[itemscope](https://developer.mozilla.org/docs/Web/HTML/Global_attributes#attr-itemscope)` is used to set the scope of where in the data structure the vocabulary set by `itemtype` will be active.\"\n      },\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/itemtype\"\n        }\n      ]\n    },\n    {\n      \"name\": \"lang\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Helps define the language of an element: the language that non-editable elements are in, or the language that editable elements should be written in by the user. The attribute contains one \\u201Clanguage tag\\u201D (made of hyphen-separated \\u201Clanguage subtags\\u201D) in the format defined in [_Tags for Identifying Languages (BCP47)_](https://www.ietf.org/rfc/bcp/bcp47.txt). [**xml:lang**](#attr-xml:lang) has priority over it.\"\n      },\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/lang\"\n        }\n      ]\n    },\n    {\n      \"name\": \"part\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": 'A space-separated list of the part names of the element. Part names allows CSS to select and style specific elements in a shadow tree via the [`::part`](https://developer.mozilla.org/docs/Web/CSS/::part \"The ::part CSS pseudo-element represents any element within a shadow tree that has a matching part attribute.\") pseudo-element.'\n      },\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/part\"\n        }\n      ]\n    },\n    {\n      \"name\": \"role\",\n      \"valueSet\": \"roles\"\n    },\n    {\n      \"name\": \"slot\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Assigns a slot in a [shadow DOM](https://developer.mozilla.org/docs/Web/Web_Components/Shadow_DOM) shadow tree to an element: An element with a `slot` attribute is assigned to the slot created by the [`<slot>`](https://developer.mozilla.org/docs/Web/HTML/Element/slot \\\"The HTML <slot> element\\u2014part of the Web Components technology suite\\u2014is a placeholder inside a web component that you can fill with your own markup, which lets you create separate DOM trees and present them together.\\\") element whose `[name](https://developer.mozilla.org/docs/Web/HTML/Element/slot#attr-name)` attribute's value matches that `slot` attribute's value.\"\n      },\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/slot\"\n        }\n      ]\n    },\n    {\n      \"name\": \"spellcheck\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"An enumerated attribute defines whether the element may be checked for spelling errors. It may have the following values:\\n\\n*   `true`, which indicates that the element should be, if possible, checked for spelling errors;\\n*   `false`, which indicates that the element should not be checked for spelling errors.\"\n      },\n      \"valueSet\": \"b\",\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/spellcheck\"\n        }\n      ]\n    },\n    {\n      \"name\": \"style\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": 'Contains [CSS](https://developer.mozilla.org/docs/Web/CSS) styling declarations to be applied to the element. Note that it is recommended for styles to be defined in a separate file or files. This attribute and the [`<style>`](https://developer.mozilla.org/docs/Web/HTML/Element/style \"The HTML <style> element contains style information for a document, or part of a document.\") element have mainly the purpose of allowing for quick styling, for example for testing purposes.'\n      },\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/style\"\n        }\n      ]\n    },\n    {\n      \"name\": \"tabindex\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"An integer attribute indicating if the element can take input focus (is _focusable_), if it should participate to sequential keyboard navigation, and if so, at what position. It can take several values:\\n\\n*   a _negative value_ means that the element should be focusable, but should not be reachable via sequential keyboard navigation;\\n*   `0` means that the element should be focusable and reachable via sequential keyboard navigation, but its relative order is defined by the platform convention;\\n*   a _positive value_ means that the element should be focusable and reachable via sequential keyboard navigation; the order in which the elements are focused is the increasing value of the [**tabindex**](#attr-tabindex). If several elements share the same tabindex, their relative order follows their relative positions in the document.\"\n      },\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/tabindex\"\n        }\n      ]\n    },\n    {\n      \"name\": \"title\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Contains a text representing advisory information related to the element it belongs to. Such information can typically, but not necessarily, be presented to the user as a tooltip.\"\n      },\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/title\"\n        }\n      ]\n    },\n    {\n      \"name\": \"translate\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"An enumerated attribute that is used to specify whether an element's attribute values and the values of its [`Text`](https://developer.mozilla.org/docs/Web/API/Text \\\"The Text interface represents the textual content of Element or Attr. If an element has no markup within its content, it has a single child implementing Text that contains the element's text. However, if the element contains markup, it is parsed into information items and Text nodes that form its children.\\\") node children are to be translated when the page is localized, or whether to leave them unchanged. It can have the following values:\\n\\n*   empty string and `yes`, which indicates that the element will be translated.\\n*   `no`, which indicates that the element will not be translated.\"\n      },\n      \"valueSet\": \"y\",\n      \"references\": [\n        {\n          \"name\": \"MDN Reference\",\n          \"url\": \"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/translate\"\n        }\n      ]\n    },\n    {\n      \"name\": \"onabort\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The loading of a resource has been aborted.\"\n      }\n    },\n    {\n      \"name\": \"onblur\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"An element has lost focus (does not bubble).\"\n      }\n    },\n    {\n      \"name\": \"oncanplay\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The user agent can play the media, but estimates that not enough data has been loaded to play the media up to its end without having to stop for further buffering of content.\"\n      }\n    },\n    {\n      \"name\": \"oncanplaythrough\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The user agent can play the media up to its end without having to stop for further buffering of content.\"\n      }\n    },\n    {\n      \"name\": \"onchange\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The change event is fired for <input>, <select>, and <textarea> elements when a change to the element's value is committed by the user.\"\n      }\n    },\n    {\n      \"name\": \"onclick\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"A pointing device button has been pressed and released on an element.\"\n      }\n    },\n    {\n      \"name\": \"oncontextmenu\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The right button of the mouse is clicked (before the context menu is displayed).\"\n      }\n    },\n    {\n      \"name\": \"ondblclick\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"A pointing device button is clicked twice on an element.\"\n      }\n    },\n    {\n      \"name\": \"ondrag\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"An element or text selection is being dragged (every 350ms).\"\n      }\n    },\n    {\n      \"name\": \"ondragend\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"A drag operation is being ended (by releasing a mouse button or hitting the escape key).\"\n      }\n    },\n    {\n      \"name\": \"ondragenter\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"A dragged element or text selection enters a valid drop target.\"\n      }\n    },\n    {\n      \"name\": \"ondragleave\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"A dragged element or text selection leaves a valid drop target.\"\n      }\n    },\n    {\n      \"name\": \"ondragover\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"An element or text selection is being dragged over a valid drop target (every 350ms).\"\n      }\n    },\n    {\n      \"name\": \"ondragstart\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The user starts dragging an element or text selection.\"\n      }\n    },\n    {\n      \"name\": \"ondrop\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"An element is dropped on a valid drop target.\"\n      }\n    },\n    {\n      \"name\": \"ondurationchange\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The duration attribute has been updated.\"\n      }\n    },\n    {\n      \"name\": \"onemptied\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The media has become empty; for example, this event is sent if the media has already been loaded (or partially loaded), and the load() method is called to reload it.\"\n      }\n    },\n    {\n      \"name\": \"onended\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Playback has stopped because the end of the media was reached.\"\n      }\n    },\n    {\n      \"name\": \"onerror\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"A resource failed to load.\"\n      }\n    },\n    {\n      \"name\": \"onfocus\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"An element has received focus (does not bubble).\"\n      }\n    },\n    {\n      \"name\": \"onformchange\"\n    },\n    {\n      \"name\": \"onforminput\"\n    },\n    {\n      \"name\": \"oninput\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The value of an element changes or the content of an element with the attribute contenteditable is modified.\"\n      }\n    },\n    {\n      \"name\": \"oninvalid\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"A submittable element has been checked and doesn't satisfy its constraints.\"\n      }\n    },\n    {\n      \"name\": \"onkeydown\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"A key is pressed down.\"\n      }\n    },\n    {\n      \"name\": \"onkeypress\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"A key is pressed down and that key normally produces a character value (use input instead).\"\n      }\n    },\n    {\n      \"name\": \"onkeyup\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"A key is released.\"\n      }\n    },\n    {\n      \"name\": \"onload\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"A resource and its dependent resources have finished loading.\"\n      }\n    },\n    {\n      \"name\": \"onloadeddata\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The first frame of the media has finished loading.\"\n      }\n    },\n    {\n      \"name\": \"onloadedmetadata\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The metadata has been loaded.\"\n      }\n    },\n    {\n      \"name\": \"onloadstart\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Progress has begun.\"\n      }\n    },\n    {\n      \"name\": \"onmousedown\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"A pointing device button (usually a mouse) is pressed on an element.\"\n      }\n    },\n    {\n      \"name\": \"onmousemove\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"A pointing device is moved over an element.\"\n      }\n    },\n    {\n      \"name\": \"onmouseout\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"A pointing device is moved off the element that has the listener attached or off one of its children.\"\n      }\n    },\n    {\n      \"name\": \"onmouseover\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"A pointing device is moved onto the element that has the listener attached or onto one of its children.\"\n      }\n    },\n    {\n      \"name\": \"onmouseup\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"A pointing device button is released over an element.\"\n      }\n    },\n    {\n      \"name\": \"onmousewheel\"\n    },\n    {\n      \"name\": \"onmouseenter\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"A pointing device is moved onto the element that has the listener attached.\"\n      }\n    },\n    {\n      \"name\": \"onmouseleave\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"A pointing device is moved off the element that has the listener attached.\"\n      }\n    },\n    {\n      \"name\": \"onpause\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Playback has been paused.\"\n      }\n    },\n    {\n      \"name\": \"onplay\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Playback has begun.\"\n      }\n    },\n    {\n      \"name\": \"onplaying\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Playback is ready to start after having been paused or delayed due to lack of data.\"\n      }\n    },\n    {\n      \"name\": \"onprogress\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"In progress.\"\n      }\n    },\n    {\n      \"name\": \"onratechange\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The playback rate has changed.\"\n      }\n    },\n    {\n      \"name\": \"onreset\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"A form is reset.\"\n      }\n    },\n    {\n      \"name\": \"onresize\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The document view has been resized.\"\n      }\n    },\n    {\n      \"name\": \"onreadystatechange\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The readyState attribute of a document has changed.\"\n      }\n    },\n    {\n      \"name\": \"onscroll\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The document view or an element has been scrolled.\"\n      }\n    },\n    {\n      \"name\": \"onseeked\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"A seek operation completed.\"\n      }\n    },\n    {\n      \"name\": \"onseeking\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"A seek operation began.\"\n      }\n    },\n    {\n      \"name\": \"onselect\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Some text is being selected.\"\n      }\n    },\n    {\n      \"name\": \"onshow\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"A contextmenu event was fired on/bubbled to an element that has a contextmenu attribute\"\n      }\n    },\n    {\n      \"name\": \"onstalled\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The user agent is trying to fetch media data, but data is unexpectedly not forthcoming.\"\n      }\n    },\n    {\n      \"name\": \"onsubmit\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"A form is submitted.\"\n      }\n    },\n    {\n      \"name\": \"onsuspend\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Media data loading has been suspended.\"\n      }\n    },\n    {\n      \"name\": \"ontimeupdate\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The time indicated by the currentTime attribute has been updated.\"\n      }\n    },\n    {\n      \"name\": \"onvolumechange\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The volume has changed.\"\n      }\n    },\n    {\n      \"name\": \"onwaiting\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Playback has stopped because of a temporary lack of data.\"\n      }\n    },\n    {\n      \"name\": \"onpointercancel\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The pointer is unlikely to produce any more events.\"\n      }\n    },\n    {\n      \"name\": \"onpointerdown\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The pointer enters the active buttons state.\"\n      }\n    },\n    {\n      \"name\": \"onpointerenter\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Pointing device is moved inside the hit-testing boundary.\"\n      }\n    },\n    {\n      \"name\": \"onpointerleave\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Pointing device is moved out of the hit-testing boundary.\"\n      }\n    },\n    {\n      \"name\": \"onpointerlockchange\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The pointer was locked or released.\"\n      }\n    },\n    {\n      \"name\": \"onpointerlockerror\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"It was impossible to lock the pointer for technical reasons or because the permission was denied.\"\n      }\n    },\n    {\n      \"name\": \"onpointermove\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The pointer changed coordinates.\"\n      }\n    },\n    {\n      \"name\": \"onpointerout\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The pointing device moved out of hit-testing boundary or leaves detectable hover range.\"\n      }\n    },\n    {\n      \"name\": \"onpointerover\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The pointing device is moved into the hit-testing boundary.\"\n      }\n    },\n    {\n      \"name\": \"onpointerup\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"The pointer leaves the active buttons state.\"\n      }\n    },\n    {\n      \"name\": \"aria-activedescendant\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-activedescendant\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Identifies the currently active element when DOM focus is on a [`composite`](https://www.w3.org/TR/wai-aria-1.1/#composite) widget, [`textbox`](https://www.w3.org/TR/wai-aria-1.1/#textbox), [`group`](https://www.w3.org/TR/wai-aria-1.1/#group), or [`application`](https://www.w3.org/TR/wai-aria-1.1/#application).\"\n      }\n    },\n    {\n      \"name\": \"aria-atomic\",\n      \"valueSet\": \"b\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-atomic\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Indicates whether [assistive technologies](https://www.w3.org/TR/wai-aria-1.1/#dfn-assistive-technology) will present all, or only parts of, the changed region based on the change notifications defined by the [`aria-relevant`](https://www.w3.org/TR/wai-aria-1.1/#aria-relevant) attribute.\"\n      }\n    },\n    {\n      \"name\": \"aria-autocomplete\",\n      \"valueSet\": \"autocomplete\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-autocomplete\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Indicates whether inputting text could trigger display of one or more predictions of the user's intended value for an input and specifies how predictions would be presented if they are made.\"\n      }\n    },\n    {\n      \"name\": \"aria-busy\",\n      \"valueSet\": \"b\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-busy\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Indicates an element is being modified and that assistive technologies _MAY_ want to wait until the modifications are complete before exposing them to the user.\"\n      }\n    },\n    {\n      \"name\": \"aria-checked\",\n      \"valueSet\": \"tristate\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-checked\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": 'Indicates the current \"checked\" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) of checkboxes, radio buttons, and other [widgets](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget). See related [`aria-pressed`](https://www.w3.org/TR/wai-aria-1.1/#aria-pressed) and [`aria-selected`](https://www.w3.org/TR/wai-aria-1.1/#aria-selected).'\n      }\n    },\n    {\n      \"name\": \"aria-colcount\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-colcount\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Defines the total number of columns in a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-colindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-colindex).\"\n      }\n    },\n    {\n      \"name\": \"aria-colindex\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-colindex\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Defines an [element's](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) column index or position with respect to the total number of columns within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-colcount`](https://www.w3.org/TR/wai-aria-1.1/#aria-colcount) and [`aria-colspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-colspan).\"\n      }\n    },\n    {\n      \"name\": \"aria-colspan\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-colspan\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Defines the number of columns spanned by a cell or gridcell within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-colindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-colindex) and [`aria-rowspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowspan).\"\n      }\n    },\n    {\n      \"name\": \"aria-controls\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-controls\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) whose contents or presence are controlled by the current element. See related [`aria-owns`](https://www.w3.org/TR/wai-aria-1.1/#aria-owns).\"\n      }\n    },\n    {\n      \"name\": \"aria-current\",\n      \"valueSet\": \"current\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-current\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Indicates the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) that represents the current item within a container or set of related elements.\"\n      }\n    },\n    {\n      \"name\": \"aria-describedby\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-describedby\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) that describes the [object](https://www.w3.org/TR/wai-aria-1.1/#dfn-object). See related [`aria-labelledby`](https://www.w3.org/TR/wai-aria-1.1/#aria-labelledby).\"\n      }\n    },\n    {\n      \"name\": \"aria-disabled\",\n      \"valueSet\": \"b\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-disabled\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Indicates that the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is [perceivable](https://www.w3.org/TR/wai-aria-1.1/#dfn-perceivable) but disabled, so it is not editable or otherwise [operable](https://www.w3.org/TR/wai-aria-1.1/#dfn-operable). See related [`aria-hidden`](https://www.w3.org/TR/wai-aria-1.1/#aria-hidden) and [`aria-readonly`](https://www.w3.org/TR/wai-aria-1.1/#aria-readonly).\"\n      }\n    },\n    {\n      \"name\": \"aria-dropeffect\",\n      \"valueSet\": \"dropeffect\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-dropeffect\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"\\\\[Deprecated in ARIA 1.1\\\\] Indicates what functions can be performed when a dragged object is released on the drop target.\"\n      }\n    },\n    {\n      \"name\": \"aria-errormessage\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-errormessage\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) that provides an error message for the [object](https://www.w3.org/TR/wai-aria-1.1/#dfn-object). See related [`aria-invalid`](https://www.w3.org/TR/wai-aria-1.1/#aria-invalid) and [`aria-describedby`](https://www.w3.org/TR/wai-aria-1.1/#aria-describedby).\"\n      }\n    },\n    {\n      \"name\": \"aria-expanded\",\n      \"valueSet\": \"u\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-expanded\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed.\"\n      }\n    },\n    {\n      \"name\": \"aria-flowto\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-flowto\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Identifies the next [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) in an alternate reading order of content which, at the user's discretion, allows assistive technology to override the general default of reading in document source order.\"\n      }\n    },\n    {\n      \"name\": \"aria-grabbed\",\n      \"valueSet\": \"u\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-grabbed\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": `\\\\[Deprecated in ARIA 1.1\\\\] Indicates an element's \"grabbed\" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) in a drag-and-drop operation.`\n      }\n    },\n    {\n      \"name\": \"aria-haspopup\",\n      \"valueSet\": \"haspopup\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-haspopup\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element).\"\n      }\n    },\n    {\n      \"name\": \"aria-hidden\",\n      \"valueSet\": \"b\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-hidden\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Indicates whether the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is exposed to an accessibility API. See related [`aria-disabled`](https://www.w3.org/TR/wai-aria-1.1/#aria-disabled).\"\n      }\n    },\n    {\n      \"name\": \"aria-invalid\",\n      \"valueSet\": \"invalid\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-invalid\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Indicates the entered value does not conform to the format expected by the application. See related [`aria-errormessage`](https://www.w3.org/TR/wai-aria-1.1/#aria-errormessage).\"\n      }\n    },\n    {\n      \"name\": \"aria-label\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-label\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Defines a string value that labels the current element. See related [`aria-labelledby`](https://www.w3.org/TR/wai-aria-1.1/#aria-labelledby).\"\n      }\n    },\n    {\n      \"name\": \"aria-labelledby\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-labelledby\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) that labels the current element. See related [`aria-describedby`](https://www.w3.org/TR/wai-aria-1.1/#aria-describedby).\"\n      }\n    },\n    {\n      \"name\": \"aria-level\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-level\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Defines the hierarchical level of an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) within a structure.\"\n      }\n    },\n    {\n      \"name\": \"aria-live\",\n      \"valueSet\": \"live\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-live\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Indicates that an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) will be updated, and describes the types of updates the [user agents](https://www.w3.org/TR/wai-aria-1.1/#dfn-user-agent), [assistive technologies](https://www.w3.org/TR/wai-aria-1.1/#dfn-assistive-technology), and user can expect from the [live region](https://www.w3.org/TR/wai-aria-1.1/#dfn-live-region).\"\n      }\n    },\n    {\n      \"name\": \"aria-modal\",\n      \"valueSet\": \"b\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-modal\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Indicates whether an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is modal when displayed.\"\n      }\n    },\n    {\n      \"name\": \"aria-multiline\",\n      \"valueSet\": \"b\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-multiline\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Indicates whether a text box accepts multiple lines of input or only a single line.\"\n      }\n    },\n    {\n      \"name\": \"aria-multiselectable\",\n      \"valueSet\": \"b\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-multiselectable\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Indicates that the user may select more than one item from the current selectable descendants.\"\n      }\n    },\n    {\n      \"name\": \"aria-orientation\",\n      \"valueSet\": \"orientation\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-orientation\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous.\"\n      }\n    },\n    {\n      \"name\": \"aria-owns\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-owns\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Identifies an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) in order to define a visual, functional, or contextual parent/child [relationship](https://www.w3.org/TR/wai-aria-1.1/#dfn-relationship) between DOM elements where the DOM hierarchy cannot be used to represent the relationship. See related [`aria-controls`](https://www.w3.org/TR/wai-aria-1.1/#aria-controls).\"\n      }\n    },\n    {\n      \"name\": \"aria-placeholder\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-placeholder\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Defines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value. A hint could be a sample value or a brief description of the expected format.\"\n      }\n    },\n    {\n      \"name\": \"aria-posinset\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-posinset\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Defines an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element)'s number or position in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM. See related [`aria-setsize`](https://www.w3.org/TR/wai-aria-1.1/#aria-setsize).\"\n      }\n    },\n    {\n      \"name\": \"aria-pressed\",\n      \"valueSet\": \"tristate\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-pressed\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": 'Indicates the current \"pressed\" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) of toggle buttons. See related [`aria-checked`](https://www.w3.org/TR/wai-aria-1.1/#aria-checked) and [`aria-selected`](https://www.w3.org/TR/wai-aria-1.1/#aria-selected).'\n      }\n    },\n    {\n      \"name\": \"aria-readonly\",\n      \"valueSet\": \"b\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-readonly\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Indicates that the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is not editable, but is otherwise [operable](https://www.w3.org/TR/wai-aria-1.1/#dfn-operable). See related [`aria-disabled`](https://www.w3.org/TR/wai-aria-1.1/#aria-disabled).\"\n      }\n    },\n    {\n      \"name\": \"aria-relevant\",\n      \"valueSet\": \"relevant\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-relevant\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified. See related [`aria-atomic`](https://www.w3.org/TR/wai-aria-1.1/#aria-atomic).\"\n      }\n    },\n    {\n      \"name\": \"aria-required\",\n      \"valueSet\": \"b\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-required\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Indicates that user input is required on the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) before a form may be submitted.\"\n      }\n    },\n    {\n      \"name\": \"aria-roledescription\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-roledescription\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Defines a human-readable, author-localized description for the [role](https://www.w3.org/TR/wai-aria-1.1/#dfn-role) of an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element).\"\n      }\n    },\n    {\n      \"name\": \"aria-rowcount\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-rowcount\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Defines the total number of rows in a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-rowindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowindex).\"\n      }\n    },\n    {\n      \"name\": \"aria-rowindex\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-rowindex\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Defines an [element's](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) row index or position with respect to the total number of rows within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-rowcount`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowcount) and [`aria-rowspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowspan).\"\n      }\n    },\n    {\n      \"name\": \"aria-rowspan\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-rowspan\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Defines the number of rows spanned by a cell or gridcell within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-rowindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowindex) and [`aria-colspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-colspan).\"\n      }\n    },\n    {\n      \"name\": \"aria-selected\",\n      \"valueSet\": \"u\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-selected\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": 'Indicates the current \"selected\" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) of various [widgets](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget). See related [`aria-checked`](https://www.w3.org/TR/wai-aria-1.1/#aria-checked) and [`aria-pressed`](https://www.w3.org/TR/wai-aria-1.1/#aria-pressed).'\n      }\n    },\n    {\n      \"name\": \"aria-setsize\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-setsize\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Defines the number of items in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM. See related [`aria-posinset`](https://www.w3.org/TR/wai-aria-1.1/#aria-posinset).\"\n      }\n    },\n    {\n      \"name\": \"aria-sort\",\n      \"valueSet\": \"sort\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-sort\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Indicates if items in a table or grid are sorted in ascending or descending order.\"\n      }\n    },\n    {\n      \"name\": \"aria-valuemax\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-valuemax\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Defines the maximum allowed value for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget).\"\n      }\n    },\n    {\n      \"name\": \"aria-valuemin\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-valuemin\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Defines the minimum allowed value for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget).\"\n      }\n    },\n    {\n      \"name\": \"aria-valuenow\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-valuenow\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Defines the current value for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget). See related [`aria-valuetext`](https://www.w3.org/TR/wai-aria-1.1/#aria-valuetext).\"\n      }\n    },\n    {\n      \"name\": \"aria-valuetext\",\n      \"references\": [\n        {\n          \"name\": \"WAI-ARIA Reference\",\n          \"url\": \"https://www.w3.org/TR/wai-aria-1.1/#aria-valuetext\"\n        }\n      ],\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Defines the human readable text alternative of [`aria-valuenow`](https://www.w3.org/TR/wai-aria-1.1/#aria-valuenow) for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget).\"\n      }\n    },\n    {\n      \"name\": \"aria-details\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) that provides a detailed, extended description for the [object](https://www.w3.org/TR/wai-aria-1.1/#dfn-object). See related [`aria-describedby`](https://www.w3.org/TR/wai-aria-1.1/#aria-describedby).\"\n      }\n    },\n    {\n      \"name\": \"aria-keyshortcuts\",\n      \"description\": {\n        \"kind\": \"markdown\",\n        \"value\": \"Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element.\"\n      }\n    }\n  ],\n  \"valueSets\": [\n    {\n      \"name\": \"b\",\n      \"values\": [\n        {\n          \"name\": \"true\"\n        },\n        {\n          \"name\": \"false\"\n        }\n      ]\n    },\n    {\n      \"name\": \"u\",\n      \"values\": [\n        {\n          \"name\": \"true\"\n        },\n        {\n          \"name\": \"false\"\n        },\n        {\n          \"name\": \"undefined\"\n        }\n      ]\n    },\n    {\n      \"name\": \"o\",\n      \"values\": [\n        {\n          \"name\": \"on\"\n        },\n        {\n          \"name\": \"off\"\n        }\n      ]\n    },\n    {\n      \"name\": \"y\",\n      \"values\": [\n        {\n          \"name\": \"yes\"\n        },\n        {\n          \"name\": \"no\"\n        }\n      ]\n    },\n    {\n      \"name\": \"w\",\n      \"values\": [\n        {\n          \"name\": \"soft\"\n        },\n        {\n          \"name\": \"hard\"\n        }\n      ]\n    },\n    {\n      \"name\": \"d\",\n      \"values\": [\n        {\n          \"name\": \"ltr\"\n        },\n        {\n          \"name\": \"rtl\"\n        },\n        {\n          \"name\": \"auto\"\n        }\n      ]\n    },\n    {\n      \"name\": \"m\",\n      \"values\": [\n        {\n          \"name\": \"get\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Corresponds to the HTTP [GET method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3); form data are appended to the `action` attribute URI with a '?' as separator, and the resulting URI is sent to the server. Use this method when the form has no side-effects and contains only ASCII characters.\"\n          }\n        },\n        {\n          \"name\": \"post\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Corresponds to the HTTP [POST method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5); form data are included in the body of the form and sent to the server.\"\n          }\n        },\n        {\n          \"name\": \"dialog\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Use when the form is inside a [`<dialog>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog) element to close the dialog when submitted.\"\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"fm\",\n      \"values\": [\n        {\n          \"name\": \"get\"\n        },\n        {\n          \"name\": \"post\"\n        }\n      ]\n    },\n    {\n      \"name\": \"s\",\n      \"values\": [\n        {\n          \"name\": \"row\"\n        },\n        {\n          \"name\": \"col\"\n        },\n        {\n          \"name\": \"rowgroup\"\n        },\n        {\n          \"name\": \"colgroup\"\n        }\n      ]\n    },\n    {\n      \"name\": \"t\",\n      \"values\": [\n        {\n          \"name\": \"hidden\"\n        },\n        {\n          \"name\": \"text\"\n        },\n        {\n          \"name\": \"search\"\n        },\n        {\n          \"name\": \"tel\"\n        },\n        {\n          \"name\": \"url\"\n        },\n        {\n          \"name\": \"email\"\n        },\n        {\n          \"name\": \"password\"\n        },\n        {\n          \"name\": \"datetime\"\n        },\n        {\n          \"name\": \"date\"\n        },\n        {\n          \"name\": \"month\"\n        },\n        {\n          \"name\": \"week\"\n        },\n        {\n          \"name\": \"time\"\n        },\n        {\n          \"name\": \"datetime-local\"\n        },\n        {\n          \"name\": \"number\"\n        },\n        {\n          \"name\": \"range\"\n        },\n        {\n          \"name\": \"color\"\n        },\n        {\n          \"name\": \"checkbox\"\n        },\n        {\n          \"name\": \"radio\"\n        },\n        {\n          \"name\": \"file\"\n        },\n        {\n          \"name\": \"submit\"\n        },\n        {\n          \"name\": \"image\"\n        },\n        {\n          \"name\": \"reset\"\n        },\n        {\n          \"name\": \"button\"\n        }\n      ]\n    },\n    {\n      \"name\": \"im\",\n      \"values\": [\n        {\n          \"name\": \"verbatim\"\n        },\n        {\n          \"name\": \"latin\"\n        },\n        {\n          \"name\": \"latin-name\"\n        },\n        {\n          \"name\": \"latin-prose\"\n        },\n        {\n          \"name\": \"full-width-latin\"\n        },\n        {\n          \"name\": \"kana\"\n        },\n        {\n          \"name\": \"kana-name\"\n        },\n        {\n          \"name\": \"katakana\"\n        },\n        {\n          \"name\": \"numeric\"\n        },\n        {\n          \"name\": \"tel\"\n        },\n        {\n          \"name\": \"email\"\n        },\n        {\n          \"name\": \"url\"\n        }\n      ]\n    },\n    {\n      \"name\": \"bt\",\n      \"values\": [\n        {\n          \"name\": \"button\"\n        },\n        {\n          \"name\": \"submit\"\n        },\n        {\n          \"name\": \"reset\"\n        },\n        {\n          \"name\": \"menu\"\n        }\n      ]\n    },\n    {\n      \"name\": \"lt\",\n      \"values\": [\n        {\n          \"name\": \"1\"\n        },\n        {\n          \"name\": \"a\"\n        },\n        {\n          \"name\": \"A\"\n        },\n        {\n          \"name\": \"i\"\n        },\n        {\n          \"name\": \"I\"\n        }\n      ]\n    },\n    {\n      \"name\": \"mt\",\n      \"values\": [\n        {\n          \"name\": \"context\"\n        },\n        {\n          \"name\": \"toolbar\"\n        }\n      ]\n    },\n    {\n      \"name\": \"mit\",\n      \"values\": [\n        {\n          \"name\": \"command\"\n        },\n        {\n          \"name\": \"checkbox\"\n        },\n        {\n          \"name\": \"radio\"\n        }\n      ]\n    },\n    {\n      \"name\": \"et\",\n      \"values\": [\n        {\n          \"name\": \"application/x-www-form-urlencoded\"\n        },\n        {\n          \"name\": \"multipart/form-data\"\n        },\n        {\n          \"name\": \"text/plain\"\n        }\n      ]\n    },\n    {\n      \"name\": \"tk\",\n      \"values\": [\n        {\n          \"name\": \"subtitles\"\n        },\n        {\n          \"name\": \"captions\"\n        },\n        {\n          \"name\": \"descriptions\"\n        },\n        {\n          \"name\": \"chapters\"\n        },\n        {\n          \"name\": \"metadata\"\n        }\n      ]\n    },\n    {\n      \"name\": \"pl\",\n      \"values\": [\n        {\n          \"name\": \"none\"\n        },\n        {\n          \"name\": \"metadata\"\n        },\n        {\n          \"name\": \"auto\"\n        }\n      ]\n    },\n    {\n      \"name\": \"sh\",\n      \"values\": [\n        {\n          \"name\": \"circle\"\n        },\n        {\n          \"name\": \"default\"\n        },\n        {\n          \"name\": \"poly\"\n        },\n        {\n          \"name\": \"rect\"\n        }\n      ]\n    },\n    {\n      \"name\": \"xo\",\n      \"values\": [\n        {\n          \"name\": \"anonymous\"\n        },\n        {\n          \"name\": \"use-credentials\"\n        }\n      ]\n    },\n    {\n      \"name\": \"target\",\n      \"values\": [\n        {\n          \"name\": \"_self\"\n        },\n        {\n          \"name\": \"_blank\"\n        },\n        {\n          \"name\": \"_parent\"\n        },\n        {\n          \"name\": \"_top\"\n        }\n      ]\n    },\n    {\n      \"name\": \"sb\",\n      \"values\": [\n        {\n          \"name\": \"allow-forms\"\n        },\n        {\n          \"name\": \"allow-modals\"\n        },\n        {\n          \"name\": \"allow-pointer-lock\"\n        },\n        {\n          \"name\": \"allow-popups\"\n        },\n        {\n          \"name\": \"allow-popups-to-escape-sandbox\"\n        },\n        {\n          \"name\": \"allow-same-origin\"\n        },\n        {\n          \"name\": \"allow-scripts\"\n        },\n        {\n          \"name\": \"allow-top-navigation\"\n        }\n      ]\n    },\n    {\n      \"name\": \"tristate\",\n      \"values\": [\n        {\n          \"name\": \"true\"\n        },\n        {\n          \"name\": \"false\"\n        },\n        {\n          \"name\": \"mixed\"\n        },\n        {\n          \"name\": \"undefined\"\n        }\n      ]\n    },\n    {\n      \"name\": \"inputautocomplete\",\n      \"values\": [\n        {\n          \"name\": \"additional-name\"\n        },\n        {\n          \"name\": \"address-level1\"\n        },\n        {\n          \"name\": \"address-level2\"\n        },\n        {\n          \"name\": \"address-level3\"\n        },\n        {\n          \"name\": \"address-level4\"\n        },\n        {\n          \"name\": \"address-line1\"\n        },\n        {\n          \"name\": \"address-line2\"\n        },\n        {\n          \"name\": \"address-line3\"\n        },\n        {\n          \"name\": \"bday\"\n        },\n        {\n          \"name\": \"bday-year\"\n        },\n        {\n          \"name\": \"bday-day\"\n        },\n        {\n          \"name\": \"bday-month\"\n        },\n        {\n          \"name\": \"billing\"\n        },\n        {\n          \"name\": \"cc-additional-name\"\n        },\n        {\n          \"name\": \"cc-csc\"\n        },\n        {\n          \"name\": \"cc-exp\"\n        },\n        {\n          \"name\": \"cc-exp-month\"\n        },\n        {\n          \"name\": \"cc-exp-year\"\n        },\n        {\n          \"name\": \"cc-family-name\"\n        },\n        {\n          \"name\": \"cc-given-name\"\n        },\n        {\n          \"name\": \"cc-name\"\n        },\n        {\n          \"name\": \"cc-number\"\n        },\n        {\n          \"name\": \"cc-type\"\n        },\n        {\n          \"name\": \"country\"\n        },\n        {\n          \"name\": \"country-name\"\n        },\n        {\n          \"name\": \"current-password\"\n        },\n        {\n          \"name\": \"email\"\n        },\n        {\n          \"name\": \"family-name\"\n        },\n        {\n          \"name\": \"fax\"\n        },\n        {\n          \"name\": \"given-name\"\n        },\n        {\n          \"name\": \"home\"\n        },\n        {\n          \"name\": \"honorific-prefix\"\n        },\n        {\n          \"name\": \"honorific-suffix\"\n        },\n        {\n          \"name\": \"impp\"\n        },\n        {\n          \"name\": \"language\"\n        },\n        {\n          \"name\": \"mobile\"\n        },\n        {\n          \"name\": \"name\"\n        },\n        {\n          \"name\": \"new-password\"\n        },\n        {\n          \"name\": \"nickname\"\n        },\n        {\n          \"name\": \"off\"\n        },\n        {\n          \"name\": \"on\"\n        },\n        {\n          \"name\": \"organization\"\n        },\n        {\n          \"name\": \"organization-title\"\n        },\n        {\n          \"name\": \"pager\"\n        },\n        {\n          \"name\": \"photo\"\n        },\n        {\n          \"name\": \"postal-code\"\n        },\n        {\n          \"name\": \"sex\"\n        },\n        {\n          \"name\": \"shipping\"\n        },\n        {\n          \"name\": \"street-address\"\n        },\n        {\n          \"name\": \"tel-area-code\"\n        },\n        {\n          \"name\": \"tel\"\n        },\n        {\n          \"name\": \"tel-country-code\"\n        },\n        {\n          \"name\": \"tel-extension\"\n        },\n        {\n          \"name\": \"tel-local\"\n        },\n        {\n          \"name\": \"tel-local-prefix\"\n        },\n        {\n          \"name\": \"tel-local-suffix\"\n        },\n        {\n          \"name\": \"tel-national\"\n        },\n        {\n          \"name\": \"transaction-amount\"\n        },\n        {\n          \"name\": \"transaction-currency\"\n        },\n        {\n          \"name\": \"url\"\n        },\n        {\n          \"name\": \"username\"\n        },\n        {\n          \"name\": \"work\"\n        }\n      ]\n    },\n    {\n      \"name\": \"autocomplete\",\n      \"values\": [\n        {\n          \"name\": \"inline\"\n        },\n        {\n          \"name\": \"list\"\n        },\n        {\n          \"name\": \"both\"\n        },\n        {\n          \"name\": \"none\"\n        }\n      ]\n    },\n    {\n      \"name\": \"current\",\n      \"values\": [\n        {\n          \"name\": \"page\"\n        },\n        {\n          \"name\": \"step\"\n        },\n        {\n          \"name\": \"location\"\n        },\n        {\n          \"name\": \"date\"\n        },\n        {\n          \"name\": \"time\"\n        },\n        {\n          \"name\": \"true\"\n        },\n        {\n          \"name\": \"false\"\n        }\n      ]\n    },\n    {\n      \"name\": \"dropeffect\",\n      \"values\": [\n        {\n          \"name\": \"copy\"\n        },\n        {\n          \"name\": \"move\"\n        },\n        {\n          \"name\": \"link\"\n        },\n        {\n          \"name\": \"execute\"\n        },\n        {\n          \"name\": \"popup\"\n        },\n        {\n          \"name\": \"none\"\n        }\n      ]\n    },\n    {\n      \"name\": \"invalid\",\n      \"values\": [\n        {\n          \"name\": \"grammar\"\n        },\n        {\n          \"name\": \"false\"\n        },\n        {\n          \"name\": \"spelling\"\n        },\n        {\n          \"name\": \"true\"\n        }\n      ]\n    },\n    {\n      \"name\": \"live\",\n      \"values\": [\n        {\n          \"name\": \"off\"\n        },\n        {\n          \"name\": \"polite\"\n        },\n        {\n          \"name\": \"assertive\"\n        }\n      ]\n    },\n    {\n      \"name\": \"orientation\",\n      \"values\": [\n        {\n          \"name\": \"vertical\"\n        },\n        {\n          \"name\": \"horizontal\"\n        },\n        {\n          \"name\": \"undefined\"\n        }\n      ]\n    },\n    {\n      \"name\": \"relevant\",\n      \"values\": [\n        {\n          \"name\": \"additions\"\n        },\n        {\n          \"name\": \"removals\"\n        },\n        {\n          \"name\": \"text\"\n        },\n        {\n          \"name\": \"all\"\n        },\n        {\n          \"name\": \"additions text\"\n        }\n      ]\n    },\n    {\n      \"name\": \"sort\",\n      \"values\": [\n        {\n          \"name\": \"ascending\"\n        },\n        {\n          \"name\": \"descending\"\n        },\n        {\n          \"name\": \"none\"\n        },\n        {\n          \"name\": \"other\"\n        }\n      ]\n    },\n    {\n      \"name\": \"roles\",\n      \"values\": [\n        {\n          \"name\": \"alert\"\n        },\n        {\n          \"name\": \"alertdialog\"\n        },\n        {\n          \"name\": \"button\"\n        },\n        {\n          \"name\": \"checkbox\"\n        },\n        {\n          \"name\": \"dialog\"\n        },\n        {\n          \"name\": \"gridcell\"\n        },\n        {\n          \"name\": \"link\"\n        },\n        {\n          \"name\": \"log\"\n        },\n        {\n          \"name\": \"marquee\"\n        },\n        {\n          \"name\": \"menuitem\"\n        },\n        {\n          \"name\": \"menuitemcheckbox\"\n        },\n        {\n          \"name\": \"menuitemradio\"\n        },\n        {\n          \"name\": \"option\"\n        },\n        {\n          \"name\": \"progressbar\"\n        },\n        {\n          \"name\": \"radio\"\n        },\n        {\n          \"name\": \"scrollbar\"\n        },\n        {\n          \"name\": \"searchbox\"\n        },\n        {\n          \"name\": \"slider\"\n        },\n        {\n          \"name\": \"spinbutton\"\n        },\n        {\n          \"name\": \"status\"\n        },\n        {\n          \"name\": \"switch\"\n        },\n        {\n          \"name\": \"tab\"\n        },\n        {\n          \"name\": \"tabpanel\"\n        },\n        {\n          \"name\": \"textbox\"\n        },\n        {\n          \"name\": \"timer\"\n        },\n        {\n          \"name\": \"tooltip\"\n        },\n        {\n          \"name\": \"treeitem\"\n        },\n        {\n          \"name\": \"combobox\"\n        },\n        {\n          \"name\": \"grid\"\n        },\n        {\n          \"name\": \"listbox\"\n        },\n        {\n          \"name\": \"menu\"\n        },\n        {\n          \"name\": \"menubar\"\n        },\n        {\n          \"name\": \"radiogroup\"\n        },\n        {\n          \"name\": \"tablist\"\n        },\n        {\n          \"name\": \"tree\"\n        },\n        {\n          \"name\": \"treegrid\"\n        },\n        {\n          \"name\": \"application\"\n        },\n        {\n          \"name\": \"article\"\n        },\n        {\n          \"name\": \"cell\"\n        },\n        {\n          \"name\": \"columnheader\"\n        },\n        {\n          \"name\": \"definition\"\n        },\n        {\n          \"name\": \"directory\"\n        },\n        {\n          \"name\": \"document\"\n        },\n        {\n          \"name\": \"feed\"\n        },\n        {\n          \"name\": \"figure\"\n        },\n        {\n          \"name\": \"group\"\n        },\n        {\n          \"name\": \"heading\"\n        },\n        {\n          \"name\": \"img\"\n        },\n        {\n          \"name\": \"list\"\n        },\n        {\n          \"name\": \"listitem\"\n        },\n        {\n          \"name\": \"math\"\n        },\n        {\n          \"name\": \"none\"\n        },\n        {\n          \"name\": \"note\"\n        },\n        {\n          \"name\": \"presentation\"\n        },\n        {\n          \"name\": \"region\"\n        },\n        {\n          \"name\": \"row\"\n        },\n        {\n          \"name\": \"rowgroup\"\n        },\n        {\n          \"name\": \"rowheader\"\n        },\n        {\n          \"name\": \"separator\"\n        },\n        {\n          \"name\": \"table\"\n        },\n        {\n          \"name\": \"term\"\n        },\n        {\n          \"name\": \"text\"\n        },\n        {\n          \"name\": \"toolbar\"\n        },\n        {\n          \"name\": \"banner\"\n        },\n        {\n          \"name\": \"complementary\"\n        },\n        {\n          \"name\": \"contentinfo\"\n        },\n        {\n          \"name\": \"form\"\n        },\n        {\n          \"name\": \"main\"\n        },\n        {\n          \"name\": \"navigation\"\n        },\n        {\n          \"name\": \"region\"\n        },\n        {\n          \"name\": \"search\"\n        },\n        {\n          \"name\": \"doc-abstract\"\n        },\n        {\n          \"name\": \"doc-acknowledgments\"\n        },\n        {\n          \"name\": \"doc-afterword\"\n        },\n        {\n          \"name\": \"doc-appendix\"\n        },\n        {\n          \"name\": \"doc-backlink\"\n        },\n        {\n          \"name\": \"doc-biblioentry\"\n        },\n        {\n          \"name\": \"doc-bibliography\"\n        },\n        {\n          \"name\": \"doc-biblioref\"\n        },\n        {\n          \"name\": \"doc-chapter\"\n        },\n        {\n          \"name\": \"doc-colophon\"\n        },\n        {\n          \"name\": \"doc-conclusion\"\n        },\n        {\n          \"name\": \"doc-cover\"\n        },\n        {\n          \"name\": \"doc-credit\"\n        },\n        {\n          \"name\": \"doc-credits\"\n        },\n        {\n          \"name\": \"doc-dedication\"\n        },\n        {\n          \"name\": \"doc-endnote\"\n        },\n        {\n          \"name\": \"doc-endnotes\"\n        },\n        {\n          \"name\": \"doc-epigraph\"\n        },\n        {\n          \"name\": \"doc-epilogue\"\n        },\n        {\n          \"name\": \"doc-errata\"\n        },\n        {\n          \"name\": \"doc-example\"\n        },\n        {\n          \"name\": \"doc-footnote\"\n        },\n        {\n          \"name\": \"doc-foreword\"\n        },\n        {\n          \"name\": \"doc-glossary\"\n        },\n        {\n          \"name\": \"doc-glossref\"\n        },\n        {\n          \"name\": \"doc-index\"\n        },\n        {\n          \"name\": \"doc-introduction\"\n        },\n        {\n          \"name\": \"doc-noteref\"\n        },\n        {\n          \"name\": \"doc-notice\"\n        },\n        {\n          \"name\": \"doc-pagebreak\"\n        },\n        {\n          \"name\": \"doc-pagelist\"\n        },\n        {\n          \"name\": \"doc-part\"\n        },\n        {\n          \"name\": \"doc-preface\"\n        },\n        {\n          \"name\": \"doc-prologue\"\n        },\n        {\n          \"name\": \"doc-pullquote\"\n        },\n        {\n          \"name\": \"doc-qna\"\n        },\n        {\n          \"name\": \"doc-subtitle\"\n        },\n        {\n          \"name\": \"doc-tip\"\n        },\n        {\n          \"name\": \"doc-toc\"\n        }\n      ]\n    },\n    {\n      \"name\": \"metanames\",\n      \"values\": [\n        {\n          \"name\": \"application-name\"\n        },\n        {\n          \"name\": \"author\"\n        },\n        {\n          \"name\": \"description\"\n        },\n        {\n          \"name\": \"format-detection\"\n        },\n        {\n          \"name\": \"generator\"\n        },\n        {\n          \"name\": \"keywords\"\n        },\n        {\n          \"name\": \"publisher\"\n        },\n        {\n          \"name\": \"referrer\"\n        },\n        {\n          \"name\": \"robots\"\n        },\n        {\n          \"name\": \"theme-color\"\n        },\n        {\n          \"name\": \"viewport\"\n        }\n      ]\n    },\n    {\n      \"name\": \"haspopup\",\n      \"values\": [\n        {\n          \"name\": \"false\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"(default) Indicates the element does not have a popup.\"\n          }\n        },\n        {\n          \"name\": \"true\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Indicates the popup is a menu.\"\n          }\n        },\n        {\n          \"name\": \"menu\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Indicates the popup is a menu.\"\n          }\n        },\n        {\n          \"name\": \"listbox\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Indicates the popup is a listbox.\"\n          }\n        },\n        {\n          \"name\": \"tree\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Indicates the popup is a tree.\"\n          }\n        },\n        {\n          \"name\": \"grid\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Indicates the popup is a grid.\"\n          }\n        },\n        {\n          \"name\": \"dialog\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Indicates the popup is a dialog.\"\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"decoding\",\n      \"values\": [\n        {\n          \"name\": \"sync\"\n        },\n        {\n          \"name\": \"async\"\n        },\n        {\n          \"name\": \"auto\"\n        }\n      ]\n    },\n    {\n      \"name\": \"loading\",\n      \"values\": [\n        {\n          \"name\": \"eager\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Loads the image immediately, regardless of whether or not the image is currently within the visible viewport (this is the default value).\"\n          }\n        },\n        {\n          \"name\": \"lazy\",\n          \"description\": {\n            \"kind\": \"markdown\",\n            \"value\": \"Defers loading the image until it reaches a calculated distance from the viewport, as defined by the browser. The intent is to avoid the network and storage bandwidth needed to handle the image until it's reasonably certain that it will be needed. This generally improves the performance of the content in most typical use cases.\"\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"referrerpolicy\",\n      \"values\": [\n        {\n          \"name\": \"no-referrer\"\n        },\n        {\n          \"name\": \"no-referrer-when-downgrade\"\n        },\n        {\n          \"name\": \"origin\"\n        },\n        {\n          \"name\": \"origin-when-cross-origin\"\n        },\n        {\n          \"name\": \"same-origin\"\n        },\n        {\n          \"name\": \"strict-origin\"\n        },\n        {\n          \"name\": \"strict-origin-when-cross-origin\"\n        },\n        {\n          \"name\": \"unsafe-url\"\n        }\n      ]\n    }\n  ]\n};\n\n// node_modules/vscode-html-languageservice/lib/esm/languageFacts/dataManager.js\nvar HTMLDataManager = class {\n  constructor(options) {\n    this.dataProviders = [];\n    this.setDataProviders(options.useDefaultDataProvider !== false, options.customDataProviders || []);\n  }\n  setDataProviders(builtIn, providers) {\n    this.dataProviders = [];\n    if (builtIn) {\n      this.dataProviders.push(new HTMLDataProvider(\"html5\", htmlData));\n    }\n    this.dataProviders.push(...providers);\n  }\n  getDataProviders() {\n    return this.dataProviders;\n  }\n  isVoidElement(e, voidElements) {\n    return !!e && binarySearch(voidElements, e.toLowerCase(), (s1, s2) => s1.localeCompare(s2)) >= 0;\n  }\n  getVoidElements(languageOrProviders) {\n    const dataProviders = Array.isArray(languageOrProviders) ? languageOrProviders : this.getDataProviders().filter((p) => p.isApplicable(languageOrProviders));\n    const voidTags = [];\n    dataProviders.forEach((provider) => {\n      provider.provideTags().filter((tag) => tag.void).forEach((tag) => voidTags.push(tag.name));\n    });\n    return voidTags.sort();\n  }\n  isPathAttribute(tag, attr) {\n    if (attr === \"src\" || attr === \"href\") {\n      return true;\n    }\n    const a = PATH_TAG_AND_ATTR[tag];\n    if (a) {\n      if (typeof a === \"string\") {\n        return a === attr;\n      } else {\n        return a.indexOf(attr) !== -1;\n      }\n    }\n    return false;\n  }\n};\nvar PATH_TAG_AND_ATTR = {\n  // HTML 4\n  a: \"href\",\n  area: \"href\",\n  body: \"background\",\n  blockquote: \"cite\",\n  del: \"cite\",\n  form: \"action\",\n  frame: [\"src\", \"longdesc\"],\n  img: [\"src\", \"longdesc\"],\n  ins: \"cite\",\n  link: \"href\",\n  object: \"data\",\n  q: \"cite\",\n  script: \"src\",\n  // HTML 5\n  audio: \"src\",\n  button: \"formaction\",\n  command: \"icon\",\n  embed: \"src\",\n  html: \"manifest\",\n  input: [\"src\", \"formaction\"],\n  source: \"src\",\n  track: \"src\",\n  video: [\"src\", \"poster\"]\n};\n\n// node_modules/vscode-html-languageservice/lib/esm/htmlLanguageService.js\nvar defaultLanguageServiceOptions = {};\nfunction getLanguageService(options = defaultLanguageServiceOptions) {\n  const dataManager = new HTMLDataManager(options);\n  const htmlHover = new HTMLHover(options, dataManager);\n  const htmlCompletion = new HTMLCompletion(options, dataManager);\n  const htmlParser = new HTMLParser(dataManager);\n  const htmlSelectionRange = new HTMLSelectionRange(htmlParser);\n  const htmlFolding = new HTMLFolding(dataManager);\n  const htmlDocumentLinks = new HTMLDocumentLinks(dataManager);\n  return {\n    setDataProviders: dataManager.setDataProviders.bind(dataManager),\n    createScanner,\n    parseHTMLDocument: htmlParser.parseDocument.bind(htmlParser),\n    doComplete: htmlCompletion.doComplete.bind(htmlCompletion),\n    doComplete2: htmlCompletion.doComplete2.bind(htmlCompletion),\n    setCompletionParticipants: htmlCompletion.setCompletionParticipants.bind(htmlCompletion),\n    doHover: htmlHover.doHover.bind(htmlHover),\n    format: format2,\n    findDocumentHighlights,\n    findDocumentLinks: htmlDocumentLinks.findDocumentLinks.bind(htmlDocumentLinks),\n    findDocumentSymbols,\n    findDocumentSymbols2,\n    getFoldingRanges: htmlFolding.getFoldingRanges.bind(htmlFolding),\n    getSelectionRanges: htmlSelectionRange.getSelectionRanges.bind(htmlSelectionRange),\n    doQuoteComplete: htmlCompletion.doQuoteComplete.bind(htmlCompletion),\n    doTagComplete: htmlCompletion.doTagComplete.bind(htmlCompletion),\n    doRename,\n    findMatchingTagPosition,\n    findOnTypeRenameRanges: findLinkedEditingRanges,\n    findLinkedEditingRanges\n  };\n}\nfunction newHTMLDataProvider(id, customData) {\n  return new HTMLDataProvider(id, customData);\n}\n\n// src/language/html/htmlWorker.ts\nvar HTMLWorker = class {\n  constructor(ctx, createData) {\n    this._ctx = ctx;\n    this._languageSettings = createData.languageSettings;\n    this._languageId = createData.languageId;\n    const data = this._languageSettings.data;\n    const useDefaultDataProvider = data?.useDefaultDataProvider;\n    const customDataProviders = [];\n    if (data?.dataProviders) {\n      for (const id in data.dataProviders) {\n        customDataProviders.push(newHTMLDataProvider(id, data.dataProviders[id]));\n      }\n    }\n    this._languageService = getLanguageService({\n      useDefaultDataProvider,\n      customDataProviders\n    });\n  }\n  async doComplete(uri, position) {\n    let document = this._getTextDocument(uri);\n    if (!document) {\n      return null;\n    }\n    let htmlDocument = this._languageService.parseHTMLDocument(document);\n    return Promise.resolve(\n      this._languageService.doComplete(\n        document,\n        position,\n        htmlDocument,\n        this._languageSettings && this._languageSettings.suggest\n      )\n    );\n  }\n  async format(uri, range, options) {\n    let document = this._getTextDocument(uri);\n    if (!document) {\n      return [];\n    }\n    let formattingOptions = { ...this._languageSettings.format, ...options };\n    let textEdits = this._languageService.format(document, range, formattingOptions);\n    return Promise.resolve(textEdits);\n  }\n  async doHover(uri, position) {\n    let document = this._getTextDocument(uri);\n    if (!document) {\n      return null;\n    }\n    let htmlDocument = this._languageService.parseHTMLDocument(document);\n    let hover = this._languageService.doHover(document, position, htmlDocument);\n    return Promise.resolve(hover);\n  }\n  async findDocumentHighlights(uri, position) {\n    let document = this._getTextDocument(uri);\n    if (!document) {\n      return [];\n    }\n    let htmlDocument = this._languageService.parseHTMLDocument(document);\n    let highlights = this._languageService.findDocumentHighlights(document, position, htmlDocument);\n    return Promise.resolve(highlights);\n  }\n  async findDocumentLinks(uri) {\n    let document = this._getTextDocument(uri);\n    if (!document) {\n      return [];\n    }\n    let links = this._languageService.findDocumentLinks(\n      document,\n      null\n      /*TODO@aeschli*/\n    );\n    return Promise.resolve(links);\n  }\n  async findDocumentSymbols(uri) {\n    let document = this._getTextDocument(uri);\n    if (!document) {\n      return [];\n    }\n    let htmlDocument = this._languageService.parseHTMLDocument(document);\n    let symbols = this._languageService.findDocumentSymbols(document, htmlDocument);\n    return Promise.resolve(symbols);\n  }\n  async getFoldingRanges(uri, context) {\n    let document = this._getTextDocument(uri);\n    if (!document) {\n      return [];\n    }\n    let ranges = this._languageService.getFoldingRanges(document, context);\n    return Promise.resolve(ranges);\n  }\n  async getSelectionRanges(uri, positions) {\n    let document = this._getTextDocument(uri);\n    if (!document) {\n      return [];\n    }\n    let ranges = this._languageService.getSelectionRanges(document, positions);\n    return Promise.resolve(ranges);\n  }\n  async doRename(uri, position, newName) {\n    let document = this._getTextDocument(uri);\n    if (!document) {\n      return null;\n    }\n    let htmlDocument = this._languageService.parseHTMLDocument(document);\n    let renames = this._languageService.doRename(document, position, newName, htmlDocument);\n    return Promise.resolve(renames);\n  }\n  _getTextDocument(uri) {\n    let models = this._ctx.getMirrorModels();\n    for (let model of models) {\n      if (model.uri.toString() === uri) {\n        return TextDocument2.create(\n          uri,\n          this._languageId,\n          model.version,\n          model.getValue()\n        );\n      }\n    }\n    return null;\n  }\n};\n\n// src/language/html/html.worker.ts\nself.onmessage = () => {\n  worker.initialize((ctx, createData) => {\n    return new HTMLWorker(ctx, createData);\n  });\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/language/html/htmlMode.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\n\n// src/fillers/monaco-editor-core.ts\nvar monaco_editor_core_exports = {};\n__reExport(monaco_editor_core_exports, monaco_editor_core_star);\nimport * as monaco_editor_core_star from \"../../editor/editor.api.js\";\n\n// src/language/html/workerManager.ts\nvar STOP_WHEN_IDLE_FOR = 2 * 60 * 1e3;\nvar WorkerManager = class {\n  constructor(defaults) {\n    this._defaults = defaults;\n    this._worker = null;\n    this._client = null;\n    this._idleCheckInterval = window.setInterval(() => this._checkIfIdle(), 30 * 1e3);\n    this._lastUsedTime = 0;\n    this._configChangeListener = this._defaults.onDidChange(() => this._stopWorker());\n  }\n  _stopWorker() {\n    if (this._worker) {\n      this._worker.dispose();\n      this._worker = null;\n    }\n    this._client = null;\n  }\n  dispose() {\n    clearInterval(this._idleCheckInterval);\n    this._configChangeListener.dispose();\n    this._stopWorker();\n  }\n  _checkIfIdle() {\n    if (!this._worker) {\n      return;\n    }\n    let timePassedSinceLastUsed = Date.now() - this._lastUsedTime;\n    if (timePassedSinceLastUsed > STOP_WHEN_IDLE_FOR) {\n      this._stopWorker();\n    }\n  }\n  _getClient() {\n    this._lastUsedTime = Date.now();\n    if (!this._client) {\n      this._worker = monaco_editor_core_exports.editor.createWebWorker({\n        // module that exports the create() method and returns a `HTMLWorker` instance\n        moduleId: \"vs/language/html/htmlWorker\",\n        // passed in to the create() method\n        createData: {\n          languageSettings: this._defaults.options,\n          languageId: this._defaults.languageId\n        },\n        label: this._defaults.languageId\n      });\n      this._client = this._worker.getProxy();\n    }\n    return this._client;\n  }\n  getLanguageServiceWorker(...resources) {\n    let _client;\n    return this._getClient().then((client) => {\n      _client = client;\n    }).then((_) => {\n      if (this._worker) {\n        return this._worker.withSyncedResources(resources);\n      }\n    }).then((_) => _client);\n  }\n};\n\n// node_modules/vscode-languageserver-types/lib/esm/main.js\nvar DocumentUri;\n(function(DocumentUri2) {\n  function is(value) {\n    return typeof value === \"string\";\n  }\n  DocumentUri2.is = is;\n})(DocumentUri || (DocumentUri = {}));\nvar URI;\n(function(URI2) {\n  function is(value) {\n    return typeof value === \"string\";\n  }\n  URI2.is = is;\n})(URI || (URI = {}));\nvar integer;\n(function(integer2) {\n  integer2.MIN_VALUE = -2147483648;\n  integer2.MAX_VALUE = 2147483647;\n  function is(value) {\n    return typeof value === \"number\" && integer2.MIN_VALUE <= value && value <= integer2.MAX_VALUE;\n  }\n  integer2.is = is;\n})(integer || (integer = {}));\nvar uinteger;\n(function(uinteger2) {\n  uinteger2.MIN_VALUE = 0;\n  uinteger2.MAX_VALUE = 2147483647;\n  function is(value) {\n    return typeof value === \"number\" && uinteger2.MIN_VALUE <= value && value <= uinteger2.MAX_VALUE;\n  }\n  uinteger2.is = is;\n})(uinteger || (uinteger = {}));\nvar Position;\n(function(Position3) {\n  function create(line, character) {\n    if (line === Number.MAX_VALUE) {\n      line = uinteger.MAX_VALUE;\n    }\n    if (character === Number.MAX_VALUE) {\n      character = uinteger.MAX_VALUE;\n    }\n    return { line, character };\n  }\n  Position3.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.objectLiteral(candidate) && Is.uinteger(candidate.line) && Is.uinteger(candidate.character);\n  }\n  Position3.is = is;\n})(Position || (Position = {}));\nvar Range;\n(function(Range3) {\n  function create(one, two, three, four) {\n    if (Is.uinteger(one) && Is.uinteger(two) && Is.uinteger(three) && Is.uinteger(four)) {\n      return { start: Position.create(one, two), end: Position.create(three, four) };\n    } else if (Position.is(one) && Position.is(two)) {\n      return { start: one, end: two };\n    } else {\n      throw new Error(`Range#create called with invalid arguments[${one}, ${two}, ${three}, ${four}]`);\n    }\n  }\n  Range3.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.objectLiteral(candidate) && Position.is(candidate.start) && Position.is(candidate.end);\n  }\n  Range3.is = is;\n})(Range || (Range = {}));\nvar Location;\n(function(Location2) {\n  function create(uri, range) {\n    return { uri, range };\n  }\n  Location2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.objectLiteral(candidate) && Range.is(candidate.range) && (Is.string(candidate.uri) || Is.undefined(candidate.uri));\n  }\n  Location2.is = is;\n})(Location || (Location = {}));\nvar LocationLink;\n(function(LocationLink2) {\n  function create(targetUri, targetRange, targetSelectionRange, originSelectionRange) {\n    return { targetUri, targetRange, targetSelectionRange, originSelectionRange };\n  }\n  LocationLink2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.objectLiteral(candidate) && Range.is(candidate.targetRange) && Is.string(candidate.targetUri) && Range.is(candidate.targetSelectionRange) && (Range.is(candidate.originSelectionRange) || Is.undefined(candidate.originSelectionRange));\n  }\n  LocationLink2.is = is;\n})(LocationLink || (LocationLink = {}));\nvar Color;\n(function(Color2) {\n  function create(red, green, blue, alpha) {\n    return {\n      red,\n      green,\n      blue,\n      alpha\n    };\n  }\n  Color2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.numberRange(candidate.red, 0, 1) && Is.numberRange(candidate.green, 0, 1) && Is.numberRange(candidate.blue, 0, 1) && Is.numberRange(candidate.alpha, 0, 1);\n  }\n  Color2.is = is;\n})(Color || (Color = {}));\nvar ColorInformation;\n(function(ColorInformation2) {\n  function create(range, color) {\n    return {\n      range,\n      color\n    };\n  }\n  ColorInformation2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Range.is(candidate.range) && Color.is(candidate.color);\n  }\n  ColorInformation2.is = is;\n})(ColorInformation || (ColorInformation = {}));\nvar ColorPresentation;\n(function(ColorPresentation2) {\n  function create(label, textEdit, additionalTextEdits) {\n    return {\n      label,\n      textEdit,\n      additionalTextEdits\n    };\n  }\n  ColorPresentation2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.string(candidate.label) && (Is.undefined(candidate.textEdit) || TextEdit.is(candidate)) && (Is.undefined(candidate.additionalTextEdits) || Is.typedArray(candidate.additionalTextEdits, TextEdit.is));\n  }\n  ColorPresentation2.is = is;\n})(ColorPresentation || (ColorPresentation = {}));\nvar FoldingRangeKind;\n(function(FoldingRangeKind2) {\n  FoldingRangeKind2.Comment = \"comment\";\n  FoldingRangeKind2.Imports = \"imports\";\n  FoldingRangeKind2.Region = \"region\";\n})(FoldingRangeKind || (FoldingRangeKind = {}));\nvar FoldingRange;\n(function(FoldingRange2) {\n  function create(startLine, endLine, startCharacter, endCharacter, kind, collapsedText) {\n    const result = {\n      startLine,\n      endLine\n    };\n    if (Is.defined(startCharacter)) {\n      result.startCharacter = startCharacter;\n    }\n    if (Is.defined(endCharacter)) {\n      result.endCharacter = endCharacter;\n    }\n    if (Is.defined(kind)) {\n      result.kind = kind;\n    }\n    if (Is.defined(collapsedText)) {\n      result.collapsedText = collapsedText;\n    }\n    return result;\n  }\n  FoldingRange2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.uinteger(candidate.startLine) && Is.uinteger(candidate.startLine) && (Is.undefined(candidate.startCharacter) || Is.uinteger(candidate.startCharacter)) && (Is.undefined(candidate.endCharacter) || Is.uinteger(candidate.endCharacter)) && (Is.undefined(candidate.kind) || Is.string(candidate.kind));\n  }\n  FoldingRange2.is = is;\n})(FoldingRange || (FoldingRange = {}));\nvar DiagnosticRelatedInformation;\n(function(DiagnosticRelatedInformation2) {\n  function create(location, message) {\n    return {\n      location,\n      message\n    };\n  }\n  DiagnosticRelatedInformation2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Location.is(candidate.location) && Is.string(candidate.message);\n  }\n  DiagnosticRelatedInformation2.is = is;\n})(DiagnosticRelatedInformation || (DiagnosticRelatedInformation = {}));\nvar DiagnosticSeverity;\n(function(DiagnosticSeverity2) {\n  DiagnosticSeverity2.Error = 1;\n  DiagnosticSeverity2.Warning = 2;\n  DiagnosticSeverity2.Information = 3;\n  DiagnosticSeverity2.Hint = 4;\n})(DiagnosticSeverity || (DiagnosticSeverity = {}));\nvar DiagnosticTag;\n(function(DiagnosticTag2) {\n  DiagnosticTag2.Unnecessary = 1;\n  DiagnosticTag2.Deprecated = 2;\n})(DiagnosticTag || (DiagnosticTag = {}));\nvar CodeDescription;\n(function(CodeDescription2) {\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.string(candidate.href);\n  }\n  CodeDescription2.is = is;\n})(CodeDescription || (CodeDescription = {}));\nvar Diagnostic;\n(function(Diagnostic2) {\n  function create(range, message, severity, code, source, relatedInformation) {\n    let result = { range, message };\n    if (Is.defined(severity)) {\n      result.severity = severity;\n    }\n    if (Is.defined(code)) {\n      result.code = code;\n    }\n    if (Is.defined(source)) {\n      result.source = source;\n    }\n    if (Is.defined(relatedInformation)) {\n      result.relatedInformation = relatedInformation;\n    }\n    return result;\n  }\n  Diagnostic2.create = create;\n  function is(value) {\n    var _a;\n    let candidate = value;\n    return Is.defined(candidate) && Range.is(candidate.range) && Is.string(candidate.message) && (Is.number(candidate.severity) || Is.undefined(candidate.severity)) && (Is.integer(candidate.code) || Is.string(candidate.code) || Is.undefined(candidate.code)) && (Is.undefined(candidate.codeDescription) || Is.string((_a = candidate.codeDescription) === null || _a === void 0 ? void 0 : _a.href)) && (Is.string(candidate.source) || Is.undefined(candidate.source)) && (Is.undefined(candidate.relatedInformation) || Is.typedArray(candidate.relatedInformation, DiagnosticRelatedInformation.is));\n  }\n  Diagnostic2.is = is;\n})(Diagnostic || (Diagnostic = {}));\nvar Command;\n(function(Command2) {\n  function create(title, command, ...args) {\n    let result = { title, command };\n    if (Is.defined(args) && args.length > 0) {\n      result.arguments = args;\n    }\n    return result;\n  }\n  Command2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.title) && Is.string(candidate.command);\n  }\n  Command2.is = is;\n})(Command || (Command = {}));\nvar TextEdit;\n(function(TextEdit2) {\n  function replace(range, newText) {\n    return { range, newText };\n  }\n  TextEdit2.replace = replace;\n  function insert(position, newText) {\n    return { range: { start: position, end: position }, newText };\n  }\n  TextEdit2.insert = insert;\n  function del(range) {\n    return { range, newText: \"\" };\n  }\n  TextEdit2.del = del;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.string(candidate.newText) && Range.is(candidate.range);\n  }\n  TextEdit2.is = is;\n})(TextEdit || (TextEdit = {}));\nvar ChangeAnnotation;\n(function(ChangeAnnotation2) {\n  function create(label, needsConfirmation, description) {\n    const result = { label };\n    if (needsConfirmation !== void 0) {\n      result.needsConfirmation = needsConfirmation;\n    }\n    if (description !== void 0) {\n      result.description = description;\n    }\n    return result;\n  }\n  ChangeAnnotation2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.string(candidate.label) && (Is.boolean(candidate.needsConfirmation) || candidate.needsConfirmation === void 0) && (Is.string(candidate.description) || candidate.description === void 0);\n  }\n  ChangeAnnotation2.is = is;\n})(ChangeAnnotation || (ChangeAnnotation = {}));\nvar ChangeAnnotationIdentifier;\n(function(ChangeAnnotationIdentifier2) {\n  function is(value) {\n    const candidate = value;\n    return Is.string(candidate);\n  }\n  ChangeAnnotationIdentifier2.is = is;\n})(ChangeAnnotationIdentifier || (ChangeAnnotationIdentifier = {}));\nvar AnnotatedTextEdit;\n(function(AnnotatedTextEdit2) {\n  function replace(range, newText, annotation) {\n    return { range, newText, annotationId: annotation };\n  }\n  AnnotatedTextEdit2.replace = replace;\n  function insert(position, newText, annotation) {\n    return { range: { start: position, end: position }, newText, annotationId: annotation };\n  }\n  AnnotatedTextEdit2.insert = insert;\n  function del(range, annotation) {\n    return { range, newText: \"\", annotationId: annotation };\n  }\n  AnnotatedTextEdit2.del = del;\n  function is(value) {\n    const candidate = value;\n    return TextEdit.is(candidate) && (ChangeAnnotation.is(candidate.annotationId) || ChangeAnnotationIdentifier.is(candidate.annotationId));\n  }\n  AnnotatedTextEdit2.is = is;\n})(AnnotatedTextEdit || (AnnotatedTextEdit = {}));\nvar TextDocumentEdit;\n(function(TextDocumentEdit2) {\n  function create(textDocument, edits) {\n    return { textDocument, edits };\n  }\n  TextDocumentEdit2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && OptionalVersionedTextDocumentIdentifier.is(candidate.textDocument) && Array.isArray(candidate.edits);\n  }\n  TextDocumentEdit2.is = is;\n})(TextDocumentEdit || (TextDocumentEdit = {}));\nvar CreateFile;\n(function(CreateFile2) {\n  function create(uri, options, annotation) {\n    let result = {\n      kind: \"create\",\n      uri\n    };\n    if (options !== void 0 && (options.overwrite !== void 0 || options.ignoreIfExists !== void 0)) {\n      result.options = options;\n    }\n    if (annotation !== void 0) {\n      result.annotationId = annotation;\n    }\n    return result;\n  }\n  CreateFile2.create = create;\n  function is(value) {\n    let candidate = value;\n    return candidate && candidate.kind === \"create\" && Is.string(candidate.uri) && (candidate.options === void 0 || (candidate.options.overwrite === void 0 || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === void 0 || Is.boolean(candidate.options.ignoreIfExists))) && (candidate.annotationId === void 0 || ChangeAnnotationIdentifier.is(candidate.annotationId));\n  }\n  CreateFile2.is = is;\n})(CreateFile || (CreateFile = {}));\nvar RenameFile;\n(function(RenameFile2) {\n  function create(oldUri, newUri, options, annotation) {\n    let result = {\n      kind: \"rename\",\n      oldUri,\n      newUri\n    };\n    if (options !== void 0 && (options.overwrite !== void 0 || options.ignoreIfExists !== void 0)) {\n      result.options = options;\n    }\n    if (annotation !== void 0) {\n      result.annotationId = annotation;\n    }\n    return result;\n  }\n  RenameFile2.create = create;\n  function is(value) {\n    let candidate = value;\n    return candidate && candidate.kind === \"rename\" && Is.string(candidate.oldUri) && Is.string(candidate.newUri) && (candidate.options === void 0 || (candidate.options.overwrite === void 0 || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === void 0 || Is.boolean(candidate.options.ignoreIfExists))) && (candidate.annotationId === void 0 || ChangeAnnotationIdentifier.is(candidate.annotationId));\n  }\n  RenameFile2.is = is;\n})(RenameFile || (RenameFile = {}));\nvar DeleteFile;\n(function(DeleteFile2) {\n  function create(uri, options, annotation) {\n    let result = {\n      kind: \"delete\",\n      uri\n    };\n    if (options !== void 0 && (options.recursive !== void 0 || options.ignoreIfNotExists !== void 0)) {\n      result.options = options;\n    }\n    if (annotation !== void 0) {\n      result.annotationId = annotation;\n    }\n    return result;\n  }\n  DeleteFile2.create = create;\n  function is(value) {\n    let candidate = value;\n    return candidate && candidate.kind === \"delete\" && Is.string(candidate.uri) && (candidate.options === void 0 || (candidate.options.recursive === void 0 || Is.boolean(candidate.options.recursive)) && (candidate.options.ignoreIfNotExists === void 0 || Is.boolean(candidate.options.ignoreIfNotExists))) && (candidate.annotationId === void 0 || ChangeAnnotationIdentifier.is(candidate.annotationId));\n  }\n  DeleteFile2.is = is;\n})(DeleteFile || (DeleteFile = {}));\nvar WorkspaceEdit;\n(function(WorkspaceEdit2) {\n  function is(value) {\n    let candidate = value;\n    return candidate && (candidate.changes !== void 0 || candidate.documentChanges !== void 0) && (candidate.documentChanges === void 0 || candidate.documentChanges.every((change) => {\n      if (Is.string(change.kind)) {\n        return CreateFile.is(change) || RenameFile.is(change) || DeleteFile.is(change);\n      } else {\n        return TextDocumentEdit.is(change);\n      }\n    }));\n  }\n  WorkspaceEdit2.is = is;\n})(WorkspaceEdit || (WorkspaceEdit = {}));\nvar TextDocumentIdentifier;\n(function(TextDocumentIdentifier2) {\n  function create(uri) {\n    return { uri };\n  }\n  TextDocumentIdentifier2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.uri);\n  }\n  TextDocumentIdentifier2.is = is;\n})(TextDocumentIdentifier || (TextDocumentIdentifier = {}));\nvar VersionedTextDocumentIdentifier;\n(function(VersionedTextDocumentIdentifier2) {\n  function create(uri, version) {\n    return { uri, version };\n  }\n  VersionedTextDocumentIdentifier2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.uri) && Is.integer(candidate.version);\n  }\n  VersionedTextDocumentIdentifier2.is = is;\n})(VersionedTextDocumentIdentifier || (VersionedTextDocumentIdentifier = {}));\nvar OptionalVersionedTextDocumentIdentifier;\n(function(OptionalVersionedTextDocumentIdentifier2) {\n  function create(uri, version) {\n    return { uri, version };\n  }\n  OptionalVersionedTextDocumentIdentifier2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.uri) && (candidate.version === null || Is.integer(candidate.version));\n  }\n  OptionalVersionedTextDocumentIdentifier2.is = is;\n})(OptionalVersionedTextDocumentIdentifier || (OptionalVersionedTextDocumentIdentifier = {}));\nvar TextDocumentItem;\n(function(TextDocumentItem2) {\n  function create(uri, languageId, version, text) {\n    return { uri, languageId, version, text };\n  }\n  TextDocumentItem2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.uri) && Is.string(candidate.languageId) && Is.integer(candidate.version) && Is.string(candidate.text);\n  }\n  TextDocumentItem2.is = is;\n})(TextDocumentItem || (TextDocumentItem = {}));\nvar MarkupKind;\n(function(MarkupKind2) {\n  MarkupKind2.PlainText = \"plaintext\";\n  MarkupKind2.Markdown = \"markdown\";\n  function is(value) {\n    const candidate = value;\n    return candidate === MarkupKind2.PlainText || candidate === MarkupKind2.Markdown;\n  }\n  MarkupKind2.is = is;\n})(MarkupKind || (MarkupKind = {}));\nvar MarkupContent;\n(function(MarkupContent2) {\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(value) && MarkupKind.is(candidate.kind) && Is.string(candidate.value);\n  }\n  MarkupContent2.is = is;\n})(MarkupContent || (MarkupContent = {}));\nvar CompletionItemKind;\n(function(CompletionItemKind2) {\n  CompletionItemKind2.Text = 1;\n  CompletionItemKind2.Method = 2;\n  CompletionItemKind2.Function = 3;\n  CompletionItemKind2.Constructor = 4;\n  CompletionItemKind2.Field = 5;\n  CompletionItemKind2.Variable = 6;\n  CompletionItemKind2.Class = 7;\n  CompletionItemKind2.Interface = 8;\n  CompletionItemKind2.Module = 9;\n  CompletionItemKind2.Property = 10;\n  CompletionItemKind2.Unit = 11;\n  CompletionItemKind2.Value = 12;\n  CompletionItemKind2.Enum = 13;\n  CompletionItemKind2.Keyword = 14;\n  CompletionItemKind2.Snippet = 15;\n  CompletionItemKind2.Color = 16;\n  CompletionItemKind2.File = 17;\n  CompletionItemKind2.Reference = 18;\n  CompletionItemKind2.Folder = 19;\n  CompletionItemKind2.EnumMember = 20;\n  CompletionItemKind2.Constant = 21;\n  CompletionItemKind2.Struct = 22;\n  CompletionItemKind2.Event = 23;\n  CompletionItemKind2.Operator = 24;\n  CompletionItemKind2.TypeParameter = 25;\n})(CompletionItemKind || (CompletionItemKind = {}));\nvar InsertTextFormat;\n(function(InsertTextFormat2) {\n  InsertTextFormat2.PlainText = 1;\n  InsertTextFormat2.Snippet = 2;\n})(InsertTextFormat || (InsertTextFormat = {}));\nvar CompletionItemTag;\n(function(CompletionItemTag2) {\n  CompletionItemTag2.Deprecated = 1;\n})(CompletionItemTag || (CompletionItemTag = {}));\nvar InsertReplaceEdit;\n(function(InsertReplaceEdit2) {\n  function create(newText, insert, replace) {\n    return { newText, insert, replace };\n  }\n  InsertReplaceEdit2.create = create;\n  function is(value) {\n    const candidate = value;\n    return candidate && Is.string(candidate.newText) && Range.is(candidate.insert) && Range.is(candidate.replace);\n  }\n  InsertReplaceEdit2.is = is;\n})(InsertReplaceEdit || (InsertReplaceEdit = {}));\nvar InsertTextMode;\n(function(InsertTextMode2) {\n  InsertTextMode2.asIs = 1;\n  InsertTextMode2.adjustIndentation = 2;\n})(InsertTextMode || (InsertTextMode = {}));\nvar CompletionItemLabelDetails;\n(function(CompletionItemLabelDetails2) {\n  function is(value) {\n    const candidate = value;\n    return candidate && (Is.string(candidate.detail) || candidate.detail === void 0) && (Is.string(candidate.description) || candidate.description === void 0);\n  }\n  CompletionItemLabelDetails2.is = is;\n})(CompletionItemLabelDetails || (CompletionItemLabelDetails = {}));\nvar CompletionItem;\n(function(CompletionItem2) {\n  function create(label) {\n    return { label };\n  }\n  CompletionItem2.create = create;\n})(CompletionItem || (CompletionItem = {}));\nvar CompletionList;\n(function(CompletionList2) {\n  function create(items, isIncomplete) {\n    return { items: items ? items : [], isIncomplete: !!isIncomplete };\n  }\n  CompletionList2.create = create;\n})(CompletionList || (CompletionList = {}));\nvar MarkedString;\n(function(MarkedString2) {\n  function fromPlainText(plainText) {\n    return plainText.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g, \"\\\\$&\");\n  }\n  MarkedString2.fromPlainText = fromPlainText;\n  function is(value) {\n    const candidate = value;\n    return Is.string(candidate) || Is.objectLiteral(candidate) && Is.string(candidate.language) && Is.string(candidate.value);\n  }\n  MarkedString2.is = is;\n})(MarkedString || (MarkedString = {}));\nvar Hover;\n(function(Hover2) {\n  function is(value) {\n    let candidate = value;\n    return !!candidate && Is.objectLiteral(candidate) && (MarkupContent.is(candidate.contents) || MarkedString.is(candidate.contents) || Is.typedArray(candidate.contents, MarkedString.is)) && (value.range === void 0 || Range.is(value.range));\n  }\n  Hover2.is = is;\n})(Hover || (Hover = {}));\nvar ParameterInformation;\n(function(ParameterInformation2) {\n  function create(label, documentation) {\n    return documentation ? { label, documentation } : { label };\n  }\n  ParameterInformation2.create = create;\n})(ParameterInformation || (ParameterInformation = {}));\nvar SignatureInformation;\n(function(SignatureInformation2) {\n  function create(label, documentation, ...parameters) {\n    let result = { label };\n    if (Is.defined(documentation)) {\n      result.documentation = documentation;\n    }\n    if (Is.defined(parameters)) {\n      result.parameters = parameters;\n    } else {\n      result.parameters = [];\n    }\n    return result;\n  }\n  SignatureInformation2.create = create;\n})(SignatureInformation || (SignatureInformation = {}));\nvar DocumentHighlightKind;\n(function(DocumentHighlightKind2) {\n  DocumentHighlightKind2.Text = 1;\n  DocumentHighlightKind2.Read = 2;\n  DocumentHighlightKind2.Write = 3;\n})(DocumentHighlightKind || (DocumentHighlightKind = {}));\nvar DocumentHighlight;\n(function(DocumentHighlight2) {\n  function create(range, kind) {\n    let result = { range };\n    if (Is.number(kind)) {\n      result.kind = kind;\n    }\n    return result;\n  }\n  DocumentHighlight2.create = create;\n})(DocumentHighlight || (DocumentHighlight = {}));\nvar SymbolKind;\n(function(SymbolKind2) {\n  SymbolKind2.File = 1;\n  SymbolKind2.Module = 2;\n  SymbolKind2.Namespace = 3;\n  SymbolKind2.Package = 4;\n  SymbolKind2.Class = 5;\n  SymbolKind2.Method = 6;\n  SymbolKind2.Property = 7;\n  SymbolKind2.Field = 8;\n  SymbolKind2.Constructor = 9;\n  SymbolKind2.Enum = 10;\n  SymbolKind2.Interface = 11;\n  SymbolKind2.Function = 12;\n  SymbolKind2.Variable = 13;\n  SymbolKind2.Constant = 14;\n  SymbolKind2.String = 15;\n  SymbolKind2.Number = 16;\n  SymbolKind2.Boolean = 17;\n  SymbolKind2.Array = 18;\n  SymbolKind2.Object = 19;\n  SymbolKind2.Key = 20;\n  SymbolKind2.Null = 21;\n  SymbolKind2.EnumMember = 22;\n  SymbolKind2.Struct = 23;\n  SymbolKind2.Event = 24;\n  SymbolKind2.Operator = 25;\n  SymbolKind2.TypeParameter = 26;\n})(SymbolKind || (SymbolKind = {}));\nvar SymbolTag;\n(function(SymbolTag2) {\n  SymbolTag2.Deprecated = 1;\n})(SymbolTag || (SymbolTag = {}));\nvar SymbolInformation;\n(function(SymbolInformation2) {\n  function create(name, kind, range, uri, containerName) {\n    let result = {\n      name,\n      kind,\n      location: { uri, range }\n    };\n    if (containerName) {\n      result.containerName = containerName;\n    }\n    return result;\n  }\n  SymbolInformation2.create = create;\n})(SymbolInformation || (SymbolInformation = {}));\nvar WorkspaceSymbol;\n(function(WorkspaceSymbol2) {\n  function create(name, kind, uri, range) {\n    return range !== void 0 ? { name, kind, location: { uri, range } } : { name, kind, location: { uri } };\n  }\n  WorkspaceSymbol2.create = create;\n})(WorkspaceSymbol || (WorkspaceSymbol = {}));\nvar DocumentSymbol;\n(function(DocumentSymbol2) {\n  function create(name, detail, kind, range, selectionRange, children) {\n    let result = {\n      name,\n      detail,\n      kind,\n      range,\n      selectionRange\n    };\n    if (children !== void 0) {\n      result.children = children;\n    }\n    return result;\n  }\n  DocumentSymbol2.create = create;\n  function is(value) {\n    let candidate = value;\n    return candidate && Is.string(candidate.name) && Is.number(candidate.kind) && Range.is(candidate.range) && Range.is(candidate.selectionRange) && (candidate.detail === void 0 || Is.string(candidate.detail)) && (candidate.deprecated === void 0 || Is.boolean(candidate.deprecated)) && (candidate.children === void 0 || Array.isArray(candidate.children)) && (candidate.tags === void 0 || Array.isArray(candidate.tags));\n  }\n  DocumentSymbol2.is = is;\n})(DocumentSymbol || (DocumentSymbol = {}));\nvar CodeActionKind;\n(function(CodeActionKind2) {\n  CodeActionKind2.Empty = \"\";\n  CodeActionKind2.QuickFix = \"quickfix\";\n  CodeActionKind2.Refactor = \"refactor\";\n  CodeActionKind2.RefactorExtract = \"refactor.extract\";\n  CodeActionKind2.RefactorInline = \"refactor.inline\";\n  CodeActionKind2.RefactorRewrite = \"refactor.rewrite\";\n  CodeActionKind2.Source = \"source\";\n  CodeActionKind2.SourceOrganizeImports = \"source.organizeImports\";\n  CodeActionKind2.SourceFixAll = \"source.fixAll\";\n})(CodeActionKind || (CodeActionKind = {}));\nvar CodeActionTriggerKind;\n(function(CodeActionTriggerKind2) {\n  CodeActionTriggerKind2.Invoked = 1;\n  CodeActionTriggerKind2.Automatic = 2;\n})(CodeActionTriggerKind || (CodeActionTriggerKind = {}));\nvar CodeActionContext;\n(function(CodeActionContext2) {\n  function create(diagnostics, only, triggerKind) {\n    let result = { diagnostics };\n    if (only !== void 0 && only !== null) {\n      result.only = only;\n    }\n    if (triggerKind !== void 0 && triggerKind !== null) {\n      result.triggerKind = triggerKind;\n    }\n    return result;\n  }\n  CodeActionContext2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.typedArray(candidate.diagnostics, Diagnostic.is) && (candidate.only === void 0 || Is.typedArray(candidate.only, Is.string)) && (candidate.triggerKind === void 0 || candidate.triggerKind === CodeActionTriggerKind.Invoked || candidate.triggerKind === CodeActionTriggerKind.Automatic);\n  }\n  CodeActionContext2.is = is;\n})(CodeActionContext || (CodeActionContext = {}));\nvar CodeAction;\n(function(CodeAction2) {\n  function create(title, kindOrCommandOrEdit, kind) {\n    let result = { title };\n    let checkKind = true;\n    if (typeof kindOrCommandOrEdit === \"string\") {\n      checkKind = false;\n      result.kind = kindOrCommandOrEdit;\n    } else if (Command.is(kindOrCommandOrEdit)) {\n      result.command = kindOrCommandOrEdit;\n    } else {\n      result.edit = kindOrCommandOrEdit;\n    }\n    if (checkKind && kind !== void 0) {\n      result.kind = kind;\n    }\n    return result;\n  }\n  CodeAction2.create = create;\n  function is(value) {\n    let candidate = value;\n    return candidate && Is.string(candidate.title) && (candidate.diagnostics === void 0 || Is.typedArray(candidate.diagnostics, Diagnostic.is)) && (candidate.kind === void 0 || Is.string(candidate.kind)) && (candidate.edit !== void 0 || candidate.command !== void 0) && (candidate.command === void 0 || Command.is(candidate.command)) && (candidate.isPreferred === void 0 || Is.boolean(candidate.isPreferred)) && (candidate.edit === void 0 || WorkspaceEdit.is(candidate.edit));\n  }\n  CodeAction2.is = is;\n})(CodeAction || (CodeAction = {}));\nvar CodeLens;\n(function(CodeLens2) {\n  function create(range, data) {\n    let result = { range };\n    if (Is.defined(data)) {\n      result.data = data;\n    }\n    return result;\n  }\n  CodeLens2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.command) || Command.is(candidate.command));\n  }\n  CodeLens2.is = is;\n})(CodeLens || (CodeLens = {}));\nvar FormattingOptions;\n(function(FormattingOptions2) {\n  function create(tabSize, insertSpaces) {\n    return { tabSize, insertSpaces };\n  }\n  FormattingOptions2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.uinteger(candidate.tabSize) && Is.boolean(candidate.insertSpaces);\n  }\n  FormattingOptions2.is = is;\n})(FormattingOptions || (FormattingOptions = {}));\nvar DocumentLink;\n(function(DocumentLink2) {\n  function create(range, target, data) {\n    return { range, target, data };\n  }\n  DocumentLink2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.target) || Is.string(candidate.target));\n  }\n  DocumentLink2.is = is;\n})(DocumentLink || (DocumentLink = {}));\nvar SelectionRange;\n(function(SelectionRange2) {\n  function create(range, parent) {\n    return { range, parent };\n  }\n  SelectionRange2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.objectLiteral(candidate) && Range.is(candidate.range) && (candidate.parent === void 0 || SelectionRange2.is(candidate.parent));\n  }\n  SelectionRange2.is = is;\n})(SelectionRange || (SelectionRange = {}));\nvar SemanticTokenTypes;\n(function(SemanticTokenTypes2) {\n  SemanticTokenTypes2[\"namespace\"] = \"namespace\";\n  SemanticTokenTypes2[\"type\"] = \"type\";\n  SemanticTokenTypes2[\"class\"] = \"class\";\n  SemanticTokenTypes2[\"enum\"] = \"enum\";\n  SemanticTokenTypes2[\"interface\"] = \"interface\";\n  SemanticTokenTypes2[\"struct\"] = \"struct\";\n  SemanticTokenTypes2[\"typeParameter\"] = \"typeParameter\";\n  SemanticTokenTypes2[\"parameter\"] = \"parameter\";\n  SemanticTokenTypes2[\"variable\"] = \"variable\";\n  SemanticTokenTypes2[\"property\"] = \"property\";\n  SemanticTokenTypes2[\"enumMember\"] = \"enumMember\";\n  SemanticTokenTypes2[\"event\"] = \"event\";\n  SemanticTokenTypes2[\"function\"] = \"function\";\n  SemanticTokenTypes2[\"method\"] = \"method\";\n  SemanticTokenTypes2[\"macro\"] = \"macro\";\n  SemanticTokenTypes2[\"keyword\"] = \"keyword\";\n  SemanticTokenTypes2[\"modifier\"] = \"modifier\";\n  SemanticTokenTypes2[\"comment\"] = \"comment\";\n  SemanticTokenTypes2[\"string\"] = \"string\";\n  SemanticTokenTypes2[\"number\"] = \"number\";\n  SemanticTokenTypes2[\"regexp\"] = \"regexp\";\n  SemanticTokenTypes2[\"operator\"] = \"operator\";\n  SemanticTokenTypes2[\"decorator\"] = \"decorator\";\n})(SemanticTokenTypes || (SemanticTokenTypes = {}));\nvar SemanticTokenModifiers;\n(function(SemanticTokenModifiers2) {\n  SemanticTokenModifiers2[\"declaration\"] = \"declaration\";\n  SemanticTokenModifiers2[\"definition\"] = \"definition\";\n  SemanticTokenModifiers2[\"readonly\"] = \"readonly\";\n  SemanticTokenModifiers2[\"static\"] = \"static\";\n  SemanticTokenModifiers2[\"deprecated\"] = \"deprecated\";\n  SemanticTokenModifiers2[\"abstract\"] = \"abstract\";\n  SemanticTokenModifiers2[\"async\"] = \"async\";\n  SemanticTokenModifiers2[\"modification\"] = \"modification\";\n  SemanticTokenModifiers2[\"documentation\"] = \"documentation\";\n  SemanticTokenModifiers2[\"defaultLibrary\"] = \"defaultLibrary\";\n})(SemanticTokenModifiers || (SemanticTokenModifiers = {}));\nvar SemanticTokens;\n(function(SemanticTokens2) {\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && (candidate.resultId === void 0 || typeof candidate.resultId === \"string\") && Array.isArray(candidate.data) && (candidate.data.length === 0 || typeof candidate.data[0] === \"number\");\n  }\n  SemanticTokens2.is = is;\n})(SemanticTokens || (SemanticTokens = {}));\nvar InlineValueText;\n(function(InlineValueText2) {\n  function create(range, text) {\n    return { range, text };\n  }\n  InlineValueText2.create = create;\n  function is(value) {\n    const candidate = value;\n    return candidate !== void 0 && candidate !== null && Range.is(candidate.range) && Is.string(candidate.text);\n  }\n  InlineValueText2.is = is;\n})(InlineValueText || (InlineValueText = {}));\nvar InlineValueVariableLookup;\n(function(InlineValueVariableLookup2) {\n  function create(range, variableName, caseSensitiveLookup) {\n    return { range, variableName, caseSensitiveLookup };\n  }\n  InlineValueVariableLookup2.create = create;\n  function is(value) {\n    const candidate = value;\n    return candidate !== void 0 && candidate !== null && Range.is(candidate.range) && Is.boolean(candidate.caseSensitiveLookup) && (Is.string(candidate.variableName) || candidate.variableName === void 0);\n  }\n  InlineValueVariableLookup2.is = is;\n})(InlineValueVariableLookup || (InlineValueVariableLookup = {}));\nvar InlineValueEvaluatableExpression;\n(function(InlineValueEvaluatableExpression2) {\n  function create(range, expression) {\n    return { range, expression };\n  }\n  InlineValueEvaluatableExpression2.create = create;\n  function is(value) {\n    const candidate = value;\n    return candidate !== void 0 && candidate !== null && Range.is(candidate.range) && (Is.string(candidate.expression) || candidate.expression === void 0);\n  }\n  InlineValueEvaluatableExpression2.is = is;\n})(InlineValueEvaluatableExpression || (InlineValueEvaluatableExpression = {}));\nvar InlineValueContext;\n(function(InlineValueContext2) {\n  function create(frameId, stoppedLocation) {\n    return { frameId, stoppedLocation };\n  }\n  InlineValueContext2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.defined(candidate) && Range.is(value.stoppedLocation);\n  }\n  InlineValueContext2.is = is;\n})(InlineValueContext || (InlineValueContext = {}));\nvar InlayHintKind;\n(function(InlayHintKind2) {\n  InlayHintKind2.Type = 1;\n  InlayHintKind2.Parameter = 2;\n  function is(value) {\n    return value === 1 || value === 2;\n  }\n  InlayHintKind2.is = is;\n})(InlayHintKind || (InlayHintKind = {}));\nvar InlayHintLabelPart;\n(function(InlayHintLabelPart2) {\n  function create(value) {\n    return { value };\n  }\n  InlayHintLabelPart2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && (candidate.tooltip === void 0 || Is.string(candidate.tooltip) || MarkupContent.is(candidate.tooltip)) && (candidate.location === void 0 || Location.is(candidate.location)) && (candidate.command === void 0 || Command.is(candidate.command));\n  }\n  InlayHintLabelPart2.is = is;\n})(InlayHintLabelPart || (InlayHintLabelPart = {}));\nvar InlayHint;\n(function(InlayHint2) {\n  function create(position, label, kind) {\n    const result = { position, label };\n    if (kind !== void 0) {\n      result.kind = kind;\n    }\n    return result;\n  }\n  InlayHint2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Position.is(candidate.position) && (Is.string(candidate.label) || Is.typedArray(candidate.label, InlayHintLabelPart.is)) && (candidate.kind === void 0 || InlayHintKind.is(candidate.kind)) && candidate.textEdits === void 0 || Is.typedArray(candidate.textEdits, TextEdit.is) && (candidate.tooltip === void 0 || Is.string(candidate.tooltip) || MarkupContent.is(candidate.tooltip)) && (candidate.paddingLeft === void 0 || Is.boolean(candidate.paddingLeft)) && (candidate.paddingRight === void 0 || Is.boolean(candidate.paddingRight));\n  }\n  InlayHint2.is = is;\n})(InlayHint || (InlayHint = {}));\nvar StringValue;\n(function(StringValue2) {\n  function createSnippet(value) {\n    return { kind: \"snippet\", value };\n  }\n  StringValue2.createSnippet = createSnippet;\n})(StringValue || (StringValue = {}));\nvar InlineCompletionItem;\n(function(InlineCompletionItem2) {\n  function create(insertText, filterText, range, command) {\n    return { insertText, filterText, range, command };\n  }\n  InlineCompletionItem2.create = create;\n})(InlineCompletionItem || (InlineCompletionItem = {}));\nvar InlineCompletionList;\n(function(InlineCompletionList2) {\n  function create(items) {\n    return { items };\n  }\n  InlineCompletionList2.create = create;\n})(InlineCompletionList || (InlineCompletionList = {}));\nvar InlineCompletionTriggerKind;\n(function(InlineCompletionTriggerKind2) {\n  InlineCompletionTriggerKind2.Invoked = 0;\n  InlineCompletionTriggerKind2.Automatic = 1;\n})(InlineCompletionTriggerKind || (InlineCompletionTriggerKind = {}));\nvar SelectedCompletionInfo;\n(function(SelectedCompletionInfo2) {\n  function create(range, text) {\n    return { range, text };\n  }\n  SelectedCompletionInfo2.create = create;\n})(SelectedCompletionInfo || (SelectedCompletionInfo = {}));\nvar InlineCompletionContext;\n(function(InlineCompletionContext2) {\n  function create(triggerKind, selectedCompletionInfo) {\n    return { triggerKind, selectedCompletionInfo };\n  }\n  InlineCompletionContext2.create = create;\n})(InlineCompletionContext || (InlineCompletionContext = {}));\nvar WorkspaceFolder;\n(function(WorkspaceFolder2) {\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && URI.is(candidate.uri) && Is.string(candidate.name);\n  }\n  WorkspaceFolder2.is = is;\n})(WorkspaceFolder || (WorkspaceFolder = {}));\nvar TextDocument;\n(function(TextDocument2) {\n  function create(uri, languageId, version, content) {\n    return new FullTextDocument(uri, languageId, version, content);\n  }\n  TextDocument2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.uri) && (Is.undefined(candidate.languageId) || Is.string(candidate.languageId)) && Is.uinteger(candidate.lineCount) && Is.func(candidate.getText) && Is.func(candidate.positionAt) && Is.func(candidate.offsetAt) ? true : false;\n  }\n  TextDocument2.is = is;\n  function applyEdits(document, edits) {\n    let text = document.getText();\n    let sortedEdits = mergeSort(edits, (a, b) => {\n      let diff = a.range.start.line - b.range.start.line;\n      if (diff === 0) {\n        return a.range.start.character - b.range.start.character;\n      }\n      return diff;\n    });\n    let lastModifiedOffset = text.length;\n    for (let i = sortedEdits.length - 1; i >= 0; i--) {\n      let e = sortedEdits[i];\n      let startOffset = document.offsetAt(e.range.start);\n      let endOffset = document.offsetAt(e.range.end);\n      if (endOffset <= lastModifiedOffset) {\n        text = text.substring(0, startOffset) + e.newText + text.substring(endOffset, text.length);\n      } else {\n        throw new Error(\"Overlapping edit\");\n      }\n      lastModifiedOffset = startOffset;\n    }\n    return text;\n  }\n  TextDocument2.applyEdits = applyEdits;\n  function mergeSort(data, compare) {\n    if (data.length <= 1) {\n      return data;\n    }\n    const p = data.length / 2 | 0;\n    const left = data.slice(0, p);\n    const right = data.slice(p);\n    mergeSort(left, compare);\n    mergeSort(right, compare);\n    let leftIdx = 0;\n    let rightIdx = 0;\n    let i = 0;\n    while (leftIdx < left.length && rightIdx < right.length) {\n      let ret = compare(left[leftIdx], right[rightIdx]);\n      if (ret <= 0) {\n        data[i++] = left[leftIdx++];\n      } else {\n        data[i++] = right[rightIdx++];\n      }\n    }\n    while (leftIdx < left.length) {\n      data[i++] = left[leftIdx++];\n    }\n    while (rightIdx < right.length) {\n      data[i++] = right[rightIdx++];\n    }\n    return data;\n  }\n})(TextDocument || (TextDocument = {}));\nvar FullTextDocument = class {\n  constructor(uri, languageId, version, content) {\n    this._uri = uri;\n    this._languageId = languageId;\n    this._version = version;\n    this._content = content;\n    this._lineOffsets = void 0;\n  }\n  get uri() {\n    return this._uri;\n  }\n  get languageId() {\n    return this._languageId;\n  }\n  get version() {\n    return this._version;\n  }\n  getText(range) {\n    if (range) {\n      let start = this.offsetAt(range.start);\n      let end = this.offsetAt(range.end);\n      return this._content.substring(start, end);\n    }\n    return this._content;\n  }\n  update(event, version) {\n    this._content = event.text;\n    this._version = version;\n    this._lineOffsets = void 0;\n  }\n  getLineOffsets() {\n    if (this._lineOffsets === void 0) {\n      let lineOffsets = [];\n      let text = this._content;\n      let isLineStart = true;\n      for (let i = 0; i < text.length; i++) {\n        if (isLineStart) {\n          lineOffsets.push(i);\n          isLineStart = false;\n        }\n        let ch = text.charAt(i);\n        isLineStart = ch === \"\\r\" || ch === \"\\n\";\n        if (ch === \"\\r\" && i + 1 < text.length && text.charAt(i + 1) === \"\\n\") {\n          i++;\n        }\n      }\n      if (isLineStart && text.length > 0) {\n        lineOffsets.push(text.length);\n      }\n      this._lineOffsets = lineOffsets;\n    }\n    return this._lineOffsets;\n  }\n  positionAt(offset) {\n    offset = Math.max(Math.min(offset, this._content.length), 0);\n    let lineOffsets = this.getLineOffsets();\n    let low = 0, high = lineOffsets.length;\n    if (high === 0) {\n      return Position.create(0, offset);\n    }\n    while (low < high) {\n      let mid = Math.floor((low + high) / 2);\n      if (lineOffsets[mid] > offset) {\n        high = mid;\n      } else {\n        low = mid + 1;\n      }\n    }\n    let line = low - 1;\n    return Position.create(line, offset - lineOffsets[line]);\n  }\n  offsetAt(position) {\n    let lineOffsets = this.getLineOffsets();\n    if (position.line >= lineOffsets.length) {\n      return this._content.length;\n    } else if (position.line < 0) {\n      return 0;\n    }\n    let lineOffset = lineOffsets[position.line];\n    let nextLineOffset = position.line + 1 < lineOffsets.length ? lineOffsets[position.line + 1] : this._content.length;\n    return Math.max(Math.min(lineOffset + position.character, nextLineOffset), lineOffset);\n  }\n  get lineCount() {\n    return this.getLineOffsets().length;\n  }\n};\nvar Is;\n(function(Is2) {\n  const toString = Object.prototype.toString;\n  function defined(value) {\n    return typeof value !== \"undefined\";\n  }\n  Is2.defined = defined;\n  function undefined2(value) {\n    return typeof value === \"undefined\";\n  }\n  Is2.undefined = undefined2;\n  function boolean(value) {\n    return value === true || value === false;\n  }\n  Is2.boolean = boolean;\n  function string(value) {\n    return toString.call(value) === \"[object String]\";\n  }\n  Is2.string = string;\n  function number(value) {\n    return toString.call(value) === \"[object Number]\";\n  }\n  Is2.number = number;\n  function numberRange(value, min, max) {\n    return toString.call(value) === \"[object Number]\" && min <= value && value <= max;\n  }\n  Is2.numberRange = numberRange;\n  function integer2(value) {\n    return toString.call(value) === \"[object Number]\" && -2147483648 <= value && value <= 2147483647;\n  }\n  Is2.integer = integer2;\n  function uinteger2(value) {\n    return toString.call(value) === \"[object Number]\" && 0 <= value && value <= 2147483647;\n  }\n  Is2.uinteger = uinteger2;\n  function func(value) {\n    return toString.call(value) === \"[object Function]\";\n  }\n  Is2.func = func;\n  function objectLiteral(value) {\n    return value !== null && typeof value === \"object\";\n  }\n  Is2.objectLiteral = objectLiteral;\n  function typedArray(value, check) {\n    return Array.isArray(value) && value.every(check);\n  }\n  Is2.typedArray = typedArray;\n})(Is || (Is = {}));\n\n// src/language/common/lspLanguageFeatures.ts\nvar DiagnosticsAdapter = class {\n  constructor(_languageId, _worker, configChangeEvent) {\n    this._languageId = _languageId;\n    this._worker = _worker;\n    this._disposables = [];\n    this._listener = /* @__PURE__ */ Object.create(null);\n    const onModelAdd = (model) => {\n      let modeId = model.getLanguageId();\n      if (modeId !== this._languageId) {\n        return;\n      }\n      let handle;\n      this._listener[model.uri.toString()] = model.onDidChangeContent(() => {\n        window.clearTimeout(handle);\n        handle = window.setTimeout(() => this._doValidate(model.uri, modeId), 500);\n      });\n      this._doValidate(model.uri, modeId);\n    };\n    const onModelRemoved = (model) => {\n      monaco_editor_core_exports.editor.setModelMarkers(model, this._languageId, []);\n      let uriStr = model.uri.toString();\n      let listener = this._listener[uriStr];\n      if (listener) {\n        listener.dispose();\n        delete this._listener[uriStr];\n      }\n    };\n    this._disposables.push(monaco_editor_core_exports.editor.onDidCreateModel(onModelAdd));\n    this._disposables.push(monaco_editor_core_exports.editor.onWillDisposeModel(onModelRemoved));\n    this._disposables.push(\n      monaco_editor_core_exports.editor.onDidChangeModelLanguage((event) => {\n        onModelRemoved(event.model);\n        onModelAdd(event.model);\n      })\n    );\n    this._disposables.push(\n      configChangeEvent((_) => {\n        monaco_editor_core_exports.editor.getModels().forEach((model) => {\n          if (model.getLanguageId() === this._languageId) {\n            onModelRemoved(model);\n            onModelAdd(model);\n          }\n        });\n      })\n    );\n    this._disposables.push({\n      dispose: () => {\n        monaco_editor_core_exports.editor.getModels().forEach(onModelRemoved);\n        for (let key in this._listener) {\n          this._listener[key].dispose();\n        }\n      }\n    });\n    monaco_editor_core_exports.editor.getModels().forEach(onModelAdd);\n  }\n  dispose() {\n    this._disposables.forEach((d) => d && d.dispose());\n    this._disposables.length = 0;\n  }\n  _doValidate(resource, languageId) {\n    this._worker(resource).then((worker) => {\n      return worker.doValidation(resource.toString());\n    }).then((diagnostics) => {\n      const markers = diagnostics.map((d) => toDiagnostics(resource, d));\n      let model = monaco_editor_core_exports.editor.getModel(resource);\n      if (model && model.getLanguageId() === languageId) {\n        monaco_editor_core_exports.editor.setModelMarkers(model, languageId, markers);\n      }\n    }).then(void 0, (err) => {\n      console.error(err);\n    });\n  }\n};\nfunction toSeverity(lsSeverity) {\n  switch (lsSeverity) {\n    case DiagnosticSeverity.Error:\n      return monaco_editor_core_exports.MarkerSeverity.Error;\n    case DiagnosticSeverity.Warning:\n      return monaco_editor_core_exports.MarkerSeverity.Warning;\n    case DiagnosticSeverity.Information:\n      return monaco_editor_core_exports.MarkerSeverity.Info;\n    case DiagnosticSeverity.Hint:\n      return monaco_editor_core_exports.MarkerSeverity.Hint;\n    default:\n      return monaco_editor_core_exports.MarkerSeverity.Info;\n  }\n}\nfunction toDiagnostics(resource, diag) {\n  let code = typeof diag.code === \"number\" ? String(diag.code) : diag.code;\n  return {\n    severity: toSeverity(diag.severity),\n    startLineNumber: diag.range.start.line + 1,\n    startColumn: diag.range.start.character + 1,\n    endLineNumber: diag.range.end.line + 1,\n    endColumn: diag.range.end.character + 1,\n    message: diag.message,\n    code,\n    source: diag.source\n  };\n}\nvar CompletionAdapter = class {\n  constructor(_worker, _triggerCharacters) {\n    this._worker = _worker;\n    this._triggerCharacters = _triggerCharacters;\n  }\n  get triggerCharacters() {\n    return this._triggerCharacters;\n  }\n  provideCompletionItems(model, position, context, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker) => {\n      return worker.doComplete(resource.toString(), fromPosition(position));\n    }).then((info) => {\n      if (!info) {\n        return;\n      }\n      const wordInfo = model.getWordUntilPosition(position);\n      const wordRange = new monaco_editor_core_exports.Range(\n        position.lineNumber,\n        wordInfo.startColumn,\n        position.lineNumber,\n        wordInfo.endColumn\n      );\n      const items = info.items.map((entry) => {\n        const item = {\n          label: entry.label,\n          insertText: entry.insertText || entry.label,\n          sortText: entry.sortText,\n          filterText: entry.filterText,\n          documentation: entry.documentation,\n          detail: entry.detail,\n          command: toCommand(entry.command),\n          range: wordRange,\n          kind: toCompletionItemKind(entry.kind)\n        };\n        if (entry.textEdit) {\n          if (isInsertReplaceEdit(entry.textEdit)) {\n            item.range = {\n              insert: toRange(entry.textEdit.insert),\n              replace: toRange(entry.textEdit.replace)\n            };\n          } else {\n            item.range = toRange(entry.textEdit.range);\n          }\n          item.insertText = entry.textEdit.newText;\n        }\n        if (entry.additionalTextEdits) {\n          item.additionalTextEdits = entry.additionalTextEdits.map(toTextEdit);\n        }\n        if (entry.insertTextFormat === InsertTextFormat.Snippet) {\n          item.insertTextRules = monaco_editor_core_exports.languages.CompletionItemInsertTextRule.InsertAsSnippet;\n        }\n        return item;\n      });\n      return {\n        isIncomplete: info.isIncomplete,\n        suggestions: items\n      };\n    });\n  }\n};\nfunction fromPosition(position) {\n  if (!position) {\n    return void 0;\n  }\n  return { character: position.column - 1, line: position.lineNumber - 1 };\n}\nfunction fromRange(range) {\n  if (!range) {\n    return void 0;\n  }\n  return {\n    start: {\n      line: range.startLineNumber - 1,\n      character: range.startColumn - 1\n    },\n    end: { line: range.endLineNumber - 1, character: range.endColumn - 1 }\n  };\n}\nfunction toRange(range) {\n  if (!range) {\n    return void 0;\n  }\n  return new monaco_editor_core_exports.Range(\n    range.start.line + 1,\n    range.start.character + 1,\n    range.end.line + 1,\n    range.end.character + 1\n  );\n}\nfunction isInsertReplaceEdit(edit) {\n  return typeof edit.insert !== \"undefined\" && typeof edit.replace !== \"undefined\";\n}\nfunction toCompletionItemKind(kind) {\n  const mItemKind = monaco_editor_core_exports.languages.CompletionItemKind;\n  switch (kind) {\n    case CompletionItemKind.Text:\n      return mItemKind.Text;\n    case CompletionItemKind.Method:\n      return mItemKind.Method;\n    case CompletionItemKind.Function:\n      return mItemKind.Function;\n    case CompletionItemKind.Constructor:\n      return mItemKind.Constructor;\n    case CompletionItemKind.Field:\n      return mItemKind.Field;\n    case CompletionItemKind.Variable:\n      return mItemKind.Variable;\n    case CompletionItemKind.Class:\n      return mItemKind.Class;\n    case CompletionItemKind.Interface:\n      return mItemKind.Interface;\n    case CompletionItemKind.Module:\n      return mItemKind.Module;\n    case CompletionItemKind.Property:\n      return mItemKind.Property;\n    case CompletionItemKind.Unit:\n      return mItemKind.Unit;\n    case CompletionItemKind.Value:\n      return mItemKind.Value;\n    case CompletionItemKind.Enum:\n      return mItemKind.Enum;\n    case CompletionItemKind.Keyword:\n      return mItemKind.Keyword;\n    case CompletionItemKind.Snippet:\n      return mItemKind.Snippet;\n    case CompletionItemKind.Color:\n      return mItemKind.Color;\n    case CompletionItemKind.File:\n      return mItemKind.File;\n    case CompletionItemKind.Reference:\n      return mItemKind.Reference;\n  }\n  return mItemKind.Property;\n}\nfunction toTextEdit(textEdit) {\n  if (!textEdit) {\n    return void 0;\n  }\n  return {\n    range: toRange(textEdit.range),\n    text: textEdit.newText\n  };\n}\nfunction toCommand(c) {\n  return c && c.command === \"editor.action.triggerSuggest\" ? { id: c.command, title: c.title, arguments: c.arguments } : void 0;\n}\nvar HoverAdapter = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideHover(model, position, token) {\n    let resource = model.uri;\n    return this._worker(resource).then((worker) => {\n      return worker.doHover(resource.toString(), fromPosition(position));\n    }).then((info) => {\n      if (!info) {\n        return;\n      }\n      return {\n        range: toRange(info.range),\n        contents: toMarkedStringArray(info.contents)\n      };\n    });\n  }\n};\nfunction isMarkupContent(thing) {\n  return thing && typeof thing === \"object\" && typeof thing.kind === \"string\";\n}\nfunction toMarkdownString(entry) {\n  if (typeof entry === \"string\") {\n    return {\n      value: entry\n    };\n  }\n  if (isMarkupContent(entry)) {\n    if (entry.kind === \"plaintext\") {\n      return {\n        value: entry.value.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g, \"\\\\$&\")\n      };\n    }\n    return {\n      value: entry.value\n    };\n  }\n  return { value: \"```\" + entry.language + \"\\n\" + entry.value + \"\\n```\\n\" };\n}\nfunction toMarkedStringArray(contents) {\n  if (!contents) {\n    return void 0;\n  }\n  if (Array.isArray(contents)) {\n    return contents.map(toMarkdownString);\n  }\n  return [toMarkdownString(contents)];\n}\nvar DocumentHighlightAdapter = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideDocumentHighlights(model, position, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker) => worker.findDocumentHighlights(resource.toString(), fromPosition(position))).then((entries) => {\n      if (!entries) {\n        return;\n      }\n      return entries.map((entry) => {\n        return {\n          range: toRange(entry.range),\n          kind: toDocumentHighlightKind(entry.kind)\n        };\n      });\n    });\n  }\n};\nfunction toDocumentHighlightKind(kind) {\n  switch (kind) {\n    case DocumentHighlightKind.Read:\n      return monaco_editor_core_exports.languages.DocumentHighlightKind.Read;\n    case DocumentHighlightKind.Write:\n      return monaco_editor_core_exports.languages.DocumentHighlightKind.Write;\n    case DocumentHighlightKind.Text:\n      return monaco_editor_core_exports.languages.DocumentHighlightKind.Text;\n  }\n  return monaco_editor_core_exports.languages.DocumentHighlightKind.Text;\n}\nvar DefinitionAdapter = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideDefinition(model, position, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker) => {\n      return worker.findDefinition(resource.toString(), fromPosition(position));\n    }).then((definition) => {\n      if (!definition) {\n        return;\n      }\n      return [toLocation(definition)];\n    });\n  }\n};\nfunction toLocation(location) {\n  return {\n    uri: monaco_editor_core_exports.Uri.parse(location.uri),\n    range: toRange(location.range)\n  };\n}\nvar ReferenceAdapter = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideReferences(model, position, context, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker) => {\n      return worker.findReferences(resource.toString(), fromPosition(position));\n    }).then((entries) => {\n      if (!entries) {\n        return;\n      }\n      return entries.map(toLocation);\n    });\n  }\n};\nvar RenameAdapter = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideRenameEdits(model, position, newName, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker) => {\n      return worker.doRename(resource.toString(), fromPosition(position), newName);\n    }).then((edit) => {\n      return toWorkspaceEdit(edit);\n    });\n  }\n};\nfunction toWorkspaceEdit(edit) {\n  if (!edit || !edit.changes) {\n    return void 0;\n  }\n  let resourceEdits = [];\n  for (let uri in edit.changes) {\n    const _uri = monaco_editor_core_exports.Uri.parse(uri);\n    for (let e of edit.changes[uri]) {\n      resourceEdits.push({\n        resource: _uri,\n        versionId: void 0,\n        textEdit: {\n          range: toRange(e.range),\n          text: e.newText\n        }\n      });\n    }\n  }\n  return {\n    edits: resourceEdits\n  };\n}\nvar DocumentSymbolAdapter = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideDocumentSymbols(model, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker) => worker.findDocumentSymbols(resource.toString())).then((items) => {\n      if (!items) {\n        return;\n      }\n      return items.map((item) => {\n        if (isDocumentSymbol(item)) {\n          return toDocumentSymbol(item);\n        }\n        return {\n          name: item.name,\n          detail: \"\",\n          containerName: item.containerName,\n          kind: toSymbolKind(item.kind),\n          range: toRange(item.location.range),\n          selectionRange: toRange(item.location.range),\n          tags: []\n        };\n      });\n    });\n  }\n};\nfunction isDocumentSymbol(symbol) {\n  return \"children\" in symbol;\n}\nfunction toDocumentSymbol(symbol) {\n  return {\n    name: symbol.name,\n    detail: symbol.detail ?? \"\",\n    kind: toSymbolKind(symbol.kind),\n    range: toRange(symbol.range),\n    selectionRange: toRange(symbol.selectionRange),\n    tags: symbol.tags ?? [],\n    children: (symbol.children ?? []).map((item) => toDocumentSymbol(item))\n  };\n}\nfunction toSymbolKind(kind) {\n  let mKind = monaco_editor_core_exports.languages.SymbolKind;\n  switch (kind) {\n    case SymbolKind.File:\n      return mKind.File;\n    case SymbolKind.Module:\n      return mKind.Module;\n    case SymbolKind.Namespace:\n      return mKind.Namespace;\n    case SymbolKind.Package:\n      return mKind.Package;\n    case SymbolKind.Class:\n      return mKind.Class;\n    case SymbolKind.Method:\n      return mKind.Method;\n    case SymbolKind.Property:\n      return mKind.Property;\n    case SymbolKind.Field:\n      return mKind.Field;\n    case SymbolKind.Constructor:\n      return mKind.Constructor;\n    case SymbolKind.Enum:\n      return mKind.Enum;\n    case SymbolKind.Interface:\n      return mKind.Interface;\n    case SymbolKind.Function:\n      return mKind.Function;\n    case SymbolKind.Variable:\n      return mKind.Variable;\n    case SymbolKind.Constant:\n      return mKind.Constant;\n    case SymbolKind.String:\n      return mKind.String;\n    case SymbolKind.Number:\n      return mKind.Number;\n    case SymbolKind.Boolean:\n      return mKind.Boolean;\n    case SymbolKind.Array:\n      return mKind.Array;\n  }\n  return mKind.Function;\n}\nvar DocumentLinkAdapter = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideLinks(model, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker) => worker.findDocumentLinks(resource.toString())).then((items) => {\n      if (!items) {\n        return;\n      }\n      return {\n        links: items.map((item) => ({\n          range: toRange(item.range),\n          url: item.target\n        }))\n      };\n    });\n  }\n};\nvar DocumentFormattingEditProvider = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideDocumentFormattingEdits(model, options, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker) => {\n      return worker.format(resource.toString(), null, fromFormattingOptions(options)).then((edits) => {\n        if (!edits || edits.length === 0) {\n          return;\n        }\n        return edits.map(toTextEdit);\n      });\n    });\n  }\n};\nvar DocumentRangeFormattingEditProvider = class {\n  constructor(_worker) {\n    this._worker = _worker;\n    this.canFormatMultipleRanges = false;\n  }\n  provideDocumentRangeFormattingEdits(model, range, options, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker) => {\n      return worker.format(resource.toString(), fromRange(range), fromFormattingOptions(options)).then((edits) => {\n        if (!edits || edits.length === 0) {\n          return;\n        }\n        return edits.map(toTextEdit);\n      });\n    });\n  }\n};\nfunction fromFormattingOptions(options) {\n  return {\n    tabSize: options.tabSize,\n    insertSpaces: options.insertSpaces\n  };\n}\nvar DocumentColorAdapter = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideDocumentColors(model, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker) => worker.findDocumentColors(resource.toString())).then((infos) => {\n      if (!infos) {\n        return;\n      }\n      return infos.map((item) => ({\n        color: item.color,\n        range: toRange(item.range)\n      }));\n    });\n  }\n  provideColorPresentations(model, info, token) {\n    const resource = model.uri;\n    return this._worker(resource).then(\n      (worker) => worker.getColorPresentations(resource.toString(), info.color, fromRange(info.range))\n    ).then((presentations) => {\n      if (!presentations) {\n        return;\n      }\n      return presentations.map((presentation) => {\n        let item = {\n          label: presentation.label\n        };\n        if (presentation.textEdit) {\n          item.textEdit = toTextEdit(presentation.textEdit);\n        }\n        if (presentation.additionalTextEdits) {\n          item.additionalTextEdits = presentation.additionalTextEdits.map(toTextEdit);\n        }\n        return item;\n      });\n    });\n  }\n};\nvar FoldingRangeAdapter = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideFoldingRanges(model, context, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker) => worker.getFoldingRanges(resource.toString(), context)).then((ranges) => {\n      if (!ranges) {\n        return;\n      }\n      return ranges.map((range) => {\n        const result = {\n          start: range.startLine + 1,\n          end: range.endLine + 1\n        };\n        if (typeof range.kind !== \"undefined\") {\n          result.kind = toFoldingRangeKind(range.kind);\n        }\n        return result;\n      });\n    });\n  }\n};\nfunction toFoldingRangeKind(kind) {\n  switch (kind) {\n    case FoldingRangeKind.Comment:\n      return monaco_editor_core_exports.languages.FoldingRangeKind.Comment;\n    case FoldingRangeKind.Imports:\n      return monaco_editor_core_exports.languages.FoldingRangeKind.Imports;\n    case FoldingRangeKind.Region:\n      return monaco_editor_core_exports.languages.FoldingRangeKind.Region;\n  }\n  return void 0;\n}\nvar SelectionRangeAdapter = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideSelectionRanges(model, positions, token) {\n    const resource = model.uri;\n    return this._worker(resource).then(\n      (worker) => worker.getSelectionRanges(\n        resource.toString(),\n        positions.map(fromPosition)\n      )\n    ).then((selectionRanges) => {\n      if (!selectionRanges) {\n        return;\n      }\n      return selectionRanges.map((selectionRange) => {\n        const result = [];\n        while (selectionRange) {\n          result.push({ range: toRange(selectionRange.range) });\n          selectionRange = selectionRange.parent;\n        }\n        return result;\n      });\n    });\n  }\n};\n\n// src/language/html/htmlMode.ts\nvar HTMLCompletionAdapter = class extends CompletionAdapter {\n  constructor(worker) {\n    super(worker, [\".\", \":\", \"<\", '\"', \"=\", \"/\"]);\n  }\n};\nfunction setupMode1(defaults) {\n  const client = new WorkerManager(defaults);\n  const worker = (...uris) => {\n    return client.getLanguageServiceWorker(...uris);\n  };\n  let languageId = defaults.languageId;\n  monaco_editor_core_exports.languages.registerCompletionItemProvider(languageId, new HTMLCompletionAdapter(worker));\n  monaco_editor_core_exports.languages.registerHoverProvider(languageId, new HoverAdapter(worker));\n  monaco_editor_core_exports.languages.registerDocumentHighlightProvider(\n    languageId,\n    new DocumentHighlightAdapter(worker)\n  );\n  monaco_editor_core_exports.languages.registerLinkProvider(languageId, new DocumentLinkAdapter(worker));\n  monaco_editor_core_exports.languages.registerFoldingRangeProvider(\n    languageId,\n    new FoldingRangeAdapter(worker)\n  );\n  monaco_editor_core_exports.languages.registerDocumentSymbolProvider(\n    languageId,\n    new DocumentSymbolAdapter(worker)\n  );\n  monaco_editor_core_exports.languages.registerSelectionRangeProvider(\n    languageId,\n    new SelectionRangeAdapter(worker)\n  );\n  monaco_editor_core_exports.languages.registerRenameProvider(languageId, new RenameAdapter(worker));\n  if (languageId === \"html\") {\n    monaco_editor_core_exports.languages.registerDocumentFormattingEditProvider(\n      languageId,\n      new DocumentFormattingEditProvider(worker)\n    );\n    monaco_editor_core_exports.languages.registerDocumentRangeFormattingEditProvider(\n      languageId,\n      new DocumentRangeFormattingEditProvider(worker)\n    );\n  }\n}\nfunction setupMode(defaults) {\n  const disposables = [];\n  const providers = [];\n  const client = new WorkerManager(defaults);\n  disposables.push(client);\n  const worker = (...uris) => {\n    return client.getLanguageServiceWorker(...uris);\n  };\n  function registerProviders() {\n    const { languageId, modeConfiguration } = defaults;\n    disposeAll(providers);\n    if (modeConfiguration.completionItems) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerCompletionItemProvider(languageId, new HTMLCompletionAdapter(worker))\n      );\n    }\n    if (modeConfiguration.hovers) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerHoverProvider(languageId, new HoverAdapter(worker))\n      );\n    }\n    if (modeConfiguration.documentHighlights) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerDocumentHighlightProvider(\n          languageId,\n          new DocumentHighlightAdapter(worker)\n        )\n      );\n    }\n    if (modeConfiguration.links) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerLinkProvider(languageId, new DocumentLinkAdapter(worker))\n      );\n    }\n    if (modeConfiguration.documentSymbols) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerDocumentSymbolProvider(\n          languageId,\n          new DocumentSymbolAdapter(worker)\n        )\n      );\n    }\n    if (modeConfiguration.rename) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerRenameProvider(languageId, new RenameAdapter(worker))\n      );\n    }\n    if (modeConfiguration.foldingRanges) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerFoldingRangeProvider(\n          languageId,\n          new FoldingRangeAdapter(worker)\n        )\n      );\n    }\n    if (modeConfiguration.selectionRanges) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerSelectionRangeProvider(\n          languageId,\n          new SelectionRangeAdapter(worker)\n        )\n      );\n    }\n    if (modeConfiguration.documentFormattingEdits) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerDocumentFormattingEditProvider(\n          languageId,\n          new DocumentFormattingEditProvider(worker)\n        )\n      );\n    }\n    if (modeConfiguration.documentRangeFormattingEdits) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerDocumentRangeFormattingEditProvider(\n          languageId,\n          new DocumentRangeFormattingEditProvider(worker)\n        )\n      );\n    }\n  }\n  registerProviders();\n  disposables.push(asDisposable(providers));\n  return asDisposable(disposables);\n}\nfunction asDisposable(disposables) {\n  return { dispose: () => disposeAll(disposables) };\n}\nfunction disposeAll(disposables) {\n  while (disposables.length) {\n    disposables.pop().dispose();\n  }\n}\nexport {\n  CompletionAdapter,\n  DefinitionAdapter,\n  DiagnosticsAdapter,\n  DocumentColorAdapter,\n  DocumentFormattingEditProvider,\n  DocumentHighlightAdapter,\n  DocumentLinkAdapter,\n  DocumentRangeFormattingEditProvider,\n  DocumentSymbolAdapter,\n  FoldingRangeAdapter,\n  HoverAdapter,\n  ReferenceAdapter,\n  RenameAdapter,\n  SelectionRangeAdapter,\n  WorkerManager,\n  fromPosition,\n  fromRange,\n  setupMode,\n  setupMode1,\n  toRange,\n  toTextEdit\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/language/html/monaco.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/language/html/monaco.contribution.js",
    "content": "import '../../editor/editor.api.js';\n/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\n\n// src/fillers/monaco-editor-core.ts\nvar monaco_editor_core_exports = {};\n__reExport(monaco_editor_core_exports, monaco_editor_core_star);\nimport * as monaco_editor_core_star from \"../../editor/editor.api.js\";\n\n// src/language/html/monaco.contribution.ts\nvar LanguageServiceDefaultsImpl = class {\n  constructor(languageId, options, modeConfiguration) {\n    this._onDidChange = new monaco_editor_core_exports.Emitter();\n    this._languageId = languageId;\n    this.setOptions(options);\n    this.setModeConfiguration(modeConfiguration);\n  }\n  get onDidChange() {\n    return this._onDidChange.event;\n  }\n  get languageId() {\n    return this._languageId;\n  }\n  get options() {\n    return this._options;\n  }\n  get modeConfiguration() {\n    return this._modeConfiguration;\n  }\n  setOptions(options) {\n    this._options = options || /* @__PURE__ */ Object.create(null);\n    this._onDidChange.fire(this);\n  }\n  setModeConfiguration(modeConfiguration) {\n    this._modeConfiguration = modeConfiguration || /* @__PURE__ */ Object.create(null);\n    this._onDidChange.fire(this);\n  }\n};\nvar formatDefaults = {\n  tabSize: 4,\n  insertSpaces: false,\n  wrapLineLength: 120,\n  unformatted: 'default\": \"a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',\n  contentUnformatted: \"pre\",\n  indentInnerHtml: false,\n  preserveNewLines: true,\n  maxPreserveNewLines: void 0,\n  indentHandlebars: false,\n  endWithNewline: false,\n  extraLiners: \"head, body, /html\",\n  wrapAttributes: \"auto\"\n};\nvar optionsDefault = {\n  format: formatDefaults,\n  suggest: {},\n  data: { useDefaultDataProvider: true }\n};\nfunction getConfigurationDefault(languageId) {\n  return {\n    completionItems: true,\n    hovers: true,\n    documentSymbols: true,\n    links: true,\n    documentHighlights: true,\n    rename: true,\n    colors: true,\n    foldingRanges: true,\n    selectionRanges: true,\n    diagnostics: languageId === htmlLanguageId,\n    // turned off for Razor and Handlebar\n    documentFormattingEdits: languageId === htmlLanguageId,\n    // turned off for Razor and Handlebar\n    documentRangeFormattingEdits: languageId === htmlLanguageId\n    // turned off for Razor and Handlebar\n  };\n}\nvar htmlLanguageId = \"html\";\nvar handlebarsLanguageId = \"handlebars\";\nvar razorLanguageId = \"razor\";\nvar htmlLanguageService = registerHTMLLanguageService(\n  htmlLanguageId,\n  optionsDefault,\n  getConfigurationDefault(htmlLanguageId)\n);\nvar htmlDefaults = htmlLanguageService.defaults;\nvar handlebarLanguageService = registerHTMLLanguageService(\n  handlebarsLanguageId,\n  optionsDefault,\n  getConfigurationDefault(handlebarsLanguageId)\n);\nvar handlebarDefaults = handlebarLanguageService.defaults;\nvar razorLanguageService = registerHTMLLanguageService(\n  razorLanguageId,\n  optionsDefault,\n  getConfigurationDefault(razorLanguageId)\n);\nvar razorDefaults = razorLanguageService.defaults;\nmonaco_editor_core_exports.languages.html = {\n  htmlDefaults,\n  razorDefaults,\n  handlebarDefaults,\n  htmlLanguageService,\n  handlebarLanguageService,\n  razorLanguageService,\n  registerHTMLLanguageService\n};\nfunction getMode() {\n  if (false) {\n    return new Promise((resolve, reject) => {\n      __require([\"vs/language/html/htmlMode\"], resolve, reject);\n    });\n  } else {\n    return import(\"./htmlMode.js\");\n  }\n}\nfunction registerHTMLLanguageService(languageId, options = optionsDefault, modeConfiguration = getConfigurationDefault(languageId)) {\n  const defaults = new LanguageServiceDefaultsImpl(languageId, options, modeConfiguration);\n  let mode;\n  const onLanguageListener = monaco_editor_core_exports.languages.onLanguage(languageId, async () => {\n    mode = (await getMode()).setupMode(defaults);\n  });\n  return {\n    defaults,\n    dispose() {\n      onLanguageListener.dispose();\n      mode?.dispose();\n      mode = void 0;\n    }\n  };\n}\nexport {\n  handlebarDefaults,\n  handlebarLanguageService,\n  htmlDefaults,\n  htmlLanguageService,\n  razorDefaults,\n  razorLanguageService,\n  registerHTMLLanguageService\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/language/json/json.worker.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/language/json/json.worker.ts\nimport * as worker from \"../../editor/editor.worker.js\";\n\n// node_modules/jsonc-parser/lib/esm/impl/scanner.js\nfunction createScanner(text, ignoreTrivia = false) {\n  const len = text.length;\n  let pos = 0, value = \"\", tokenOffset = 0, token = 16, lineNumber = 0, lineStartOffset = 0, tokenLineStartOffset = 0, prevTokenLineStartOffset = 0, scanError = 0;\n  function scanHexDigits(count, exact) {\n    let digits = 0;\n    let value2 = 0;\n    while (digits < count || !exact) {\n      let ch = text.charCodeAt(pos);\n      if (ch >= 48 && ch <= 57) {\n        value2 = value2 * 16 + ch - 48;\n      } else if (ch >= 65 && ch <= 70) {\n        value2 = value2 * 16 + ch - 65 + 10;\n      } else if (ch >= 97 && ch <= 102) {\n        value2 = value2 * 16 + ch - 97 + 10;\n      } else {\n        break;\n      }\n      pos++;\n      digits++;\n    }\n    if (digits < count) {\n      value2 = -1;\n    }\n    return value2;\n  }\n  function setPosition(newPosition) {\n    pos = newPosition;\n    value = \"\";\n    tokenOffset = 0;\n    token = 16;\n    scanError = 0;\n  }\n  function scanNumber() {\n    let start = pos;\n    if (text.charCodeAt(pos) === 48) {\n      pos++;\n    } else {\n      pos++;\n      while (pos < text.length && isDigit(text.charCodeAt(pos))) {\n        pos++;\n      }\n    }\n    if (pos < text.length && text.charCodeAt(pos) === 46) {\n      pos++;\n      if (pos < text.length && isDigit(text.charCodeAt(pos))) {\n        pos++;\n        while (pos < text.length && isDigit(text.charCodeAt(pos))) {\n          pos++;\n        }\n      } else {\n        scanError = 3;\n        return text.substring(start, pos);\n      }\n    }\n    let end = pos;\n    if (pos < text.length && (text.charCodeAt(pos) === 69 || text.charCodeAt(pos) === 101)) {\n      pos++;\n      if (pos < text.length && text.charCodeAt(pos) === 43 || text.charCodeAt(pos) === 45) {\n        pos++;\n      }\n      if (pos < text.length && isDigit(text.charCodeAt(pos))) {\n        pos++;\n        while (pos < text.length && isDigit(text.charCodeAt(pos))) {\n          pos++;\n        }\n        end = pos;\n      } else {\n        scanError = 3;\n      }\n    }\n    return text.substring(start, end);\n  }\n  function scanString() {\n    let result = \"\", start = pos;\n    while (true) {\n      if (pos >= len) {\n        result += text.substring(start, pos);\n        scanError = 2;\n        break;\n      }\n      const ch = text.charCodeAt(pos);\n      if (ch === 34) {\n        result += text.substring(start, pos);\n        pos++;\n        break;\n      }\n      if (ch === 92) {\n        result += text.substring(start, pos);\n        pos++;\n        if (pos >= len) {\n          scanError = 2;\n          break;\n        }\n        const ch2 = text.charCodeAt(pos++);\n        switch (ch2) {\n          case 34:\n            result += '\"';\n            break;\n          case 92:\n            result += \"\\\\\";\n            break;\n          case 47:\n            result += \"/\";\n            break;\n          case 98:\n            result += \"\\b\";\n            break;\n          case 102:\n            result += \"\\f\";\n            break;\n          case 110:\n            result += \"\\n\";\n            break;\n          case 114:\n            result += \"\\r\";\n            break;\n          case 116:\n            result += \"\t\";\n            break;\n          case 117:\n            const ch3 = scanHexDigits(4, true);\n            if (ch3 >= 0) {\n              result += String.fromCharCode(ch3);\n            } else {\n              scanError = 4;\n            }\n            break;\n          default:\n            scanError = 5;\n        }\n        start = pos;\n        continue;\n      }\n      if (ch >= 0 && ch <= 31) {\n        if (isLineBreak(ch)) {\n          result += text.substring(start, pos);\n          scanError = 2;\n          break;\n        } else {\n          scanError = 6;\n        }\n      }\n      pos++;\n    }\n    return result;\n  }\n  function scanNext() {\n    value = \"\";\n    scanError = 0;\n    tokenOffset = pos;\n    lineStartOffset = lineNumber;\n    prevTokenLineStartOffset = tokenLineStartOffset;\n    if (pos >= len) {\n      tokenOffset = len;\n      return token = 17;\n    }\n    let code = text.charCodeAt(pos);\n    if (isWhiteSpace(code)) {\n      do {\n        pos++;\n        value += String.fromCharCode(code);\n        code = text.charCodeAt(pos);\n      } while (isWhiteSpace(code));\n      return token = 15;\n    }\n    if (isLineBreak(code)) {\n      pos++;\n      value += String.fromCharCode(code);\n      if (code === 13 && text.charCodeAt(pos) === 10) {\n        pos++;\n        value += \"\\n\";\n      }\n      lineNumber++;\n      tokenLineStartOffset = pos;\n      return token = 14;\n    }\n    switch (code) {\n      case 123:\n        pos++;\n        return token = 1;\n      case 125:\n        pos++;\n        return token = 2;\n      case 91:\n        pos++;\n        return token = 3;\n      case 93:\n        pos++;\n        return token = 4;\n      case 58:\n        pos++;\n        return token = 6;\n      case 44:\n        pos++;\n        return token = 5;\n      case 34:\n        pos++;\n        value = scanString();\n        return token = 10;\n      case 47:\n        const start = pos - 1;\n        if (text.charCodeAt(pos + 1) === 47) {\n          pos += 2;\n          while (pos < len) {\n            if (isLineBreak(text.charCodeAt(pos))) {\n              break;\n            }\n            pos++;\n          }\n          value = text.substring(start, pos);\n          return token = 12;\n        }\n        if (text.charCodeAt(pos + 1) === 42) {\n          pos += 2;\n          const safeLength = len - 1;\n          let commentClosed = false;\n          while (pos < safeLength) {\n            const ch = text.charCodeAt(pos);\n            if (ch === 42 && text.charCodeAt(pos + 1) === 47) {\n              pos += 2;\n              commentClosed = true;\n              break;\n            }\n            pos++;\n            if (isLineBreak(ch)) {\n              if (ch === 13 && text.charCodeAt(pos) === 10) {\n                pos++;\n              }\n              lineNumber++;\n              tokenLineStartOffset = pos;\n            }\n          }\n          if (!commentClosed) {\n            pos++;\n            scanError = 1;\n          }\n          value = text.substring(start, pos);\n          return token = 13;\n        }\n        value += String.fromCharCode(code);\n        pos++;\n        return token = 16;\n      case 45:\n        value += String.fromCharCode(code);\n        pos++;\n        if (pos === len || !isDigit(text.charCodeAt(pos))) {\n          return token = 16;\n        }\n      case 48:\n      case 49:\n      case 50:\n      case 51:\n      case 52:\n      case 53:\n      case 54:\n      case 55:\n      case 56:\n      case 57:\n        value += scanNumber();\n        return token = 11;\n      default:\n        while (pos < len && isUnknownContentCharacter(code)) {\n          pos++;\n          code = text.charCodeAt(pos);\n        }\n        if (tokenOffset !== pos) {\n          value = text.substring(tokenOffset, pos);\n          switch (value) {\n            case \"true\":\n              return token = 8;\n            case \"false\":\n              return token = 9;\n            case \"null\":\n              return token = 7;\n          }\n          return token = 16;\n        }\n        value += String.fromCharCode(code);\n        pos++;\n        return token = 16;\n    }\n  }\n  function isUnknownContentCharacter(code) {\n    if (isWhiteSpace(code) || isLineBreak(code)) {\n      return false;\n    }\n    switch (code) {\n      case 125:\n      case 93:\n      case 123:\n      case 91:\n      case 34:\n      case 58:\n      case 44:\n      case 47:\n        return false;\n    }\n    return true;\n  }\n  function scanNextNonTrivia() {\n    let result;\n    do {\n      result = scanNext();\n    } while (result >= 12 && result <= 15);\n    return result;\n  }\n  return {\n    setPosition,\n    getPosition: () => pos,\n    scan: ignoreTrivia ? scanNextNonTrivia : scanNext,\n    getToken: () => token,\n    getTokenValue: () => value,\n    getTokenOffset: () => tokenOffset,\n    getTokenLength: () => pos - tokenOffset,\n    getTokenStartLine: () => lineStartOffset,\n    getTokenStartCharacter: () => tokenOffset - prevTokenLineStartOffset,\n    getTokenError: () => scanError\n  };\n}\nfunction isWhiteSpace(ch) {\n  return ch === 32 || ch === 9;\n}\nfunction isLineBreak(ch) {\n  return ch === 10 || ch === 13;\n}\nfunction isDigit(ch) {\n  return ch >= 48 && ch <= 57;\n}\nvar CharacterCodes;\n(function(CharacterCodes2) {\n  CharacterCodes2[CharacterCodes2[\"lineFeed\"] = 10] = \"lineFeed\";\n  CharacterCodes2[CharacterCodes2[\"carriageReturn\"] = 13] = \"carriageReturn\";\n  CharacterCodes2[CharacterCodes2[\"space\"] = 32] = \"space\";\n  CharacterCodes2[CharacterCodes2[\"_0\"] = 48] = \"_0\";\n  CharacterCodes2[CharacterCodes2[\"_1\"] = 49] = \"_1\";\n  CharacterCodes2[CharacterCodes2[\"_2\"] = 50] = \"_2\";\n  CharacterCodes2[CharacterCodes2[\"_3\"] = 51] = \"_3\";\n  CharacterCodes2[CharacterCodes2[\"_4\"] = 52] = \"_4\";\n  CharacterCodes2[CharacterCodes2[\"_5\"] = 53] = \"_5\";\n  CharacterCodes2[CharacterCodes2[\"_6\"] = 54] = \"_6\";\n  CharacterCodes2[CharacterCodes2[\"_7\"] = 55] = \"_7\";\n  CharacterCodes2[CharacterCodes2[\"_8\"] = 56] = \"_8\";\n  CharacterCodes2[CharacterCodes2[\"_9\"] = 57] = \"_9\";\n  CharacterCodes2[CharacterCodes2[\"a\"] = 97] = \"a\";\n  CharacterCodes2[CharacterCodes2[\"b\"] = 98] = \"b\";\n  CharacterCodes2[CharacterCodes2[\"c\"] = 99] = \"c\";\n  CharacterCodes2[CharacterCodes2[\"d\"] = 100] = \"d\";\n  CharacterCodes2[CharacterCodes2[\"e\"] = 101] = \"e\";\n  CharacterCodes2[CharacterCodes2[\"f\"] = 102] = \"f\";\n  CharacterCodes2[CharacterCodes2[\"g\"] = 103] = \"g\";\n  CharacterCodes2[CharacterCodes2[\"h\"] = 104] = \"h\";\n  CharacterCodes2[CharacterCodes2[\"i\"] = 105] = \"i\";\n  CharacterCodes2[CharacterCodes2[\"j\"] = 106] = \"j\";\n  CharacterCodes2[CharacterCodes2[\"k\"] = 107] = \"k\";\n  CharacterCodes2[CharacterCodes2[\"l\"] = 108] = \"l\";\n  CharacterCodes2[CharacterCodes2[\"m\"] = 109] = \"m\";\n  CharacterCodes2[CharacterCodes2[\"n\"] = 110] = \"n\";\n  CharacterCodes2[CharacterCodes2[\"o\"] = 111] = \"o\";\n  CharacterCodes2[CharacterCodes2[\"p\"] = 112] = \"p\";\n  CharacterCodes2[CharacterCodes2[\"q\"] = 113] = \"q\";\n  CharacterCodes2[CharacterCodes2[\"r\"] = 114] = \"r\";\n  CharacterCodes2[CharacterCodes2[\"s\"] = 115] = \"s\";\n  CharacterCodes2[CharacterCodes2[\"t\"] = 116] = \"t\";\n  CharacterCodes2[CharacterCodes2[\"u\"] = 117] = \"u\";\n  CharacterCodes2[CharacterCodes2[\"v\"] = 118] = \"v\";\n  CharacterCodes2[CharacterCodes2[\"w\"] = 119] = \"w\";\n  CharacterCodes2[CharacterCodes2[\"x\"] = 120] = \"x\";\n  CharacterCodes2[CharacterCodes2[\"y\"] = 121] = \"y\";\n  CharacterCodes2[CharacterCodes2[\"z\"] = 122] = \"z\";\n  CharacterCodes2[CharacterCodes2[\"A\"] = 65] = \"A\";\n  CharacterCodes2[CharacterCodes2[\"B\"] = 66] = \"B\";\n  CharacterCodes2[CharacterCodes2[\"C\"] = 67] = \"C\";\n  CharacterCodes2[CharacterCodes2[\"D\"] = 68] = \"D\";\n  CharacterCodes2[CharacterCodes2[\"E\"] = 69] = \"E\";\n  CharacterCodes2[CharacterCodes2[\"F\"] = 70] = \"F\";\n  CharacterCodes2[CharacterCodes2[\"G\"] = 71] = \"G\";\n  CharacterCodes2[CharacterCodes2[\"H\"] = 72] = \"H\";\n  CharacterCodes2[CharacterCodes2[\"I\"] = 73] = \"I\";\n  CharacterCodes2[CharacterCodes2[\"J\"] = 74] = \"J\";\n  CharacterCodes2[CharacterCodes2[\"K\"] = 75] = \"K\";\n  CharacterCodes2[CharacterCodes2[\"L\"] = 76] = \"L\";\n  CharacterCodes2[CharacterCodes2[\"M\"] = 77] = \"M\";\n  CharacterCodes2[CharacterCodes2[\"N\"] = 78] = \"N\";\n  CharacterCodes2[CharacterCodes2[\"O\"] = 79] = \"O\";\n  CharacterCodes2[CharacterCodes2[\"P\"] = 80] = \"P\";\n  CharacterCodes2[CharacterCodes2[\"Q\"] = 81] = \"Q\";\n  CharacterCodes2[CharacterCodes2[\"R\"] = 82] = \"R\";\n  CharacterCodes2[CharacterCodes2[\"S\"] = 83] = \"S\";\n  CharacterCodes2[CharacterCodes2[\"T\"] = 84] = \"T\";\n  CharacterCodes2[CharacterCodes2[\"U\"] = 85] = \"U\";\n  CharacterCodes2[CharacterCodes2[\"V\"] = 86] = \"V\";\n  CharacterCodes2[CharacterCodes2[\"W\"] = 87] = \"W\";\n  CharacterCodes2[CharacterCodes2[\"X\"] = 88] = \"X\";\n  CharacterCodes2[CharacterCodes2[\"Y\"] = 89] = \"Y\";\n  CharacterCodes2[CharacterCodes2[\"Z\"] = 90] = \"Z\";\n  CharacterCodes2[CharacterCodes2[\"asterisk\"] = 42] = \"asterisk\";\n  CharacterCodes2[CharacterCodes2[\"backslash\"] = 92] = \"backslash\";\n  CharacterCodes2[CharacterCodes2[\"closeBrace\"] = 125] = \"closeBrace\";\n  CharacterCodes2[CharacterCodes2[\"closeBracket\"] = 93] = \"closeBracket\";\n  CharacterCodes2[CharacterCodes2[\"colon\"] = 58] = \"colon\";\n  CharacterCodes2[CharacterCodes2[\"comma\"] = 44] = \"comma\";\n  CharacterCodes2[CharacterCodes2[\"dot\"] = 46] = \"dot\";\n  CharacterCodes2[CharacterCodes2[\"doubleQuote\"] = 34] = \"doubleQuote\";\n  CharacterCodes2[CharacterCodes2[\"minus\"] = 45] = \"minus\";\n  CharacterCodes2[CharacterCodes2[\"openBrace\"] = 123] = \"openBrace\";\n  CharacterCodes2[CharacterCodes2[\"openBracket\"] = 91] = \"openBracket\";\n  CharacterCodes2[CharacterCodes2[\"plus\"] = 43] = \"plus\";\n  CharacterCodes2[CharacterCodes2[\"slash\"] = 47] = \"slash\";\n  CharacterCodes2[CharacterCodes2[\"formFeed\"] = 12] = \"formFeed\";\n  CharacterCodes2[CharacterCodes2[\"tab\"] = 9] = \"tab\";\n})(CharacterCodes || (CharacterCodes = {}));\n\n// node_modules/jsonc-parser/lib/esm/impl/string-intern.js\nvar cachedSpaces = new Array(20).fill(0).map((_, index) => {\n  return \" \".repeat(index);\n});\nvar maxCachedValues = 200;\nvar cachedBreakLinesWithSpaces = {\n  \" \": {\n    \"\\n\": new Array(maxCachedValues).fill(0).map((_, index) => {\n      return \"\\n\" + \" \".repeat(index);\n    }),\n    \"\\r\": new Array(maxCachedValues).fill(0).map((_, index) => {\n      return \"\\r\" + \" \".repeat(index);\n    }),\n    \"\\r\\n\": new Array(maxCachedValues).fill(0).map((_, index) => {\n      return \"\\r\\n\" + \" \".repeat(index);\n    })\n  },\n  \"\t\": {\n    \"\\n\": new Array(maxCachedValues).fill(0).map((_, index) => {\n      return \"\\n\" + \"\t\".repeat(index);\n    }),\n    \"\\r\": new Array(maxCachedValues).fill(0).map((_, index) => {\n      return \"\\r\" + \"\t\".repeat(index);\n    }),\n    \"\\r\\n\": new Array(maxCachedValues).fill(0).map((_, index) => {\n      return \"\\r\\n\" + \"\t\".repeat(index);\n    })\n  }\n};\nvar supportedEols = [\"\\n\", \"\\r\", \"\\r\\n\"];\n\n// node_modules/jsonc-parser/lib/esm/impl/format.js\nfunction format(documentText, range, options) {\n  let initialIndentLevel;\n  let formatText;\n  let formatTextStart;\n  let rangeStart;\n  let rangeEnd;\n  if (range) {\n    rangeStart = range.offset;\n    rangeEnd = rangeStart + range.length;\n    formatTextStart = rangeStart;\n    while (formatTextStart > 0 && !isEOL(documentText, formatTextStart - 1)) {\n      formatTextStart--;\n    }\n    let endOffset = rangeEnd;\n    while (endOffset < documentText.length && !isEOL(documentText, endOffset)) {\n      endOffset++;\n    }\n    formatText = documentText.substring(formatTextStart, endOffset);\n    initialIndentLevel = computeIndentLevel(formatText, options);\n  } else {\n    formatText = documentText;\n    initialIndentLevel = 0;\n    formatTextStart = 0;\n    rangeStart = 0;\n    rangeEnd = documentText.length;\n  }\n  const eol = getEOL(options, documentText);\n  const eolFastPathSupported = supportedEols.includes(eol);\n  let numberLineBreaks = 0;\n  let indentLevel = 0;\n  let indentValue;\n  if (options.insertSpaces) {\n    indentValue = cachedSpaces[options.tabSize || 4] ?? repeat(cachedSpaces[1], options.tabSize || 4);\n  } else {\n    indentValue = \"\t\";\n  }\n  const indentType = indentValue === \"\t\" ? \"\t\" : \" \";\n  let scanner = createScanner(formatText, false);\n  let hasError = false;\n  function newLinesAndIndent() {\n    if (numberLineBreaks > 1) {\n      return repeat(eol, numberLineBreaks) + repeat(indentValue, initialIndentLevel + indentLevel);\n    }\n    const amountOfSpaces = indentValue.length * (initialIndentLevel + indentLevel);\n    if (!eolFastPathSupported || amountOfSpaces > cachedBreakLinesWithSpaces[indentType][eol].length) {\n      return eol + repeat(indentValue, initialIndentLevel + indentLevel);\n    }\n    if (amountOfSpaces <= 0) {\n      return eol;\n    }\n    return cachedBreakLinesWithSpaces[indentType][eol][amountOfSpaces];\n  }\n  function scanNext() {\n    let token = scanner.scan();\n    numberLineBreaks = 0;\n    while (token === 15 || token === 14) {\n      if (token === 14 && options.keepLines) {\n        numberLineBreaks += 1;\n      } else if (token === 14) {\n        numberLineBreaks = 1;\n      }\n      token = scanner.scan();\n    }\n    hasError = token === 16 || scanner.getTokenError() !== 0;\n    return token;\n  }\n  const editOperations = [];\n  function addEdit(text, startOffset, endOffset) {\n    if (!hasError && (!range || startOffset < rangeEnd && endOffset > rangeStart) && documentText.substring(startOffset, endOffset) !== text) {\n      editOperations.push({ offset: startOffset, length: endOffset - startOffset, content: text });\n    }\n  }\n  let firstToken = scanNext();\n  if (options.keepLines && numberLineBreaks > 0) {\n    addEdit(repeat(eol, numberLineBreaks), 0, 0);\n  }\n  if (firstToken !== 17) {\n    let firstTokenStart = scanner.getTokenOffset() + formatTextStart;\n    let initialIndent = indentValue.length * initialIndentLevel < 20 && options.insertSpaces ? cachedSpaces[indentValue.length * initialIndentLevel] : repeat(indentValue, initialIndentLevel);\n    addEdit(initialIndent, formatTextStart, firstTokenStart);\n  }\n  while (firstToken !== 17) {\n    let firstTokenEnd = scanner.getTokenOffset() + scanner.getTokenLength() + formatTextStart;\n    let secondToken = scanNext();\n    let replaceContent = \"\";\n    let needsLineBreak = false;\n    while (numberLineBreaks === 0 && (secondToken === 12 || secondToken === 13)) {\n      let commentTokenStart = scanner.getTokenOffset() + formatTextStart;\n      addEdit(cachedSpaces[1], firstTokenEnd, commentTokenStart);\n      firstTokenEnd = scanner.getTokenOffset() + scanner.getTokenLength() + formatTextStart;\n      needsLineBreak = secondToken === 12;\n      replaceContent = needsLineBreak ? newLinesAndIndent() : \"\";\n      secondToken = scanNext();\n    }\n    if (secondToken === 2) {\n      if (firstToken !== 1) {\n        indentLevel--;\n      }\n      ;\n      if (options.keepLines && numberLineBreaks > 0 || !options.keepLines && firstToken !== 1) {\n        replaceContent = newLinesAndIndent();\n      } else if (options.keepLines) {\n        replaceContent = cachedSpaces[1];\n      }\n    } else if (secondToken === 4) {\n      if (firstToken !== 3) {\n        indentLevel--;\n      }\n      ;\n      if (options.keepLines && numberLineBreaks > 0 || !options.keepLines && firstToken !== 3) {\n        replaceContent = newLinesAndIndent();\n      } else if (options.keepLines) {\n        replaceContent = cachedSpaces[1];\n      }\n    } else {\n      switch (firstToken) {\n        case 3:\n        case 1:\n          indentLevel++;\n          if (options.keepLines && numberLineBreaks > 0 || !options.keepLines) {\n            replaceContent = newLinesAndIndent();\n          } else {\n            replaceContent = cachedSpaces[1];\n          }\n          break;\n        case 5:\n          if (options.keepLines && numberLineBreaks > 0 || !options.keepLines) {\n            replaceContent = newLinesAndIndent();\n          } else {\n            replaceContent = cachedSpaces[1];\n          }\n          break;\n        case 12:\n          replaceContent = newLinesAndIndent();\n          break;\n        case 13:\n          if (numberLineBreaks > 0) {\n            replaceContent = newLinesAndIndent();\n          } else if (!needsLineBreak) {\n            replaceContent = cachedSpaces[1];\n          }\n          break;\n        case 6:\n          if (options.keepLines && numberLineBreaks > 0) {\n            replaceContent = newLinesAndIndent();\n          } else if (!needsLineBreak) {\n            replaceContent = cachedSpaces[1];\n          }\n          break;\n        case 10:\n          if (options.keepLines && numberLineBreaks > 0) {\n            replaceContent = newLinesAndIndent();\n          } else if (secondToken === 6 && !needsLineBreak) {\n            replaceContent = \"\";\n          }\n          break;\n        case 7:\n        case 8:\n        case 9:\n        case 11:\n        case 2:\n        case 4:\n          if (options.keepLines && numberLineBreaks > 0) {\n            replaceContent = newLinesAndIndent();\n          } else {\n            if ((secondToken === 12 || secondToken === 13) && !needsLineBreak) {\n              replaceContent = cachedSpaces[1];\n            } else if (secondToken !== 5 && secondToken !== 17) {\n              hasError = true;\n            }\n          }\n          break;\n        case 16:\n          hasError = true;\n          break;\n      }\n      if (numberLineBreaks > 0 && (secondToken === 12 || secondToken === 13)) {\n        replaceContent = newLinesAndIndent();\n      }\n    }\n    if (secondToken === 17) {\n      if (options.keepLines && numberLineBreaks > 0) {\n        replaceContent = newLinesAndIndent();\n      } else {\n        replaceContent = options.insertFinalNewline ? eol : \"\";\n      }\n    }\n    const secondTokenStart = scanner.getTokenOffset() + formatTextStart;\n    addEdit(replaceContent, firstTokenEnd, secondTokenStart);\n    firstToken = secondToken;\n  }\n  return editOperations;\n}\nfunction repeat(s, count) {\n  let result = \"\";\n  for (let i = 0; i < count; i++) {\n    result += s;\n  }\n  return result;\n}\nfunction computeIndentLevel(content, options) {\n  let i = 0;\n  let nChars = 0;\n  const tabSize = options.tabSize || 4;\n  while (i < content.length) {\n    let ch = content.charAt(i);\n    if (ch === cachedSpaces[1]) {\n      nChars++;\n    } else if (ch === \"\t\") {\n      nChars += tabSize;\n    } else {\n      break;\n    }\n    i++;\n  }\n  return Math.floor(nChars / tabSize);\n}\nfunction getEOL(options, text) {\n  for (let i = 0; i < text.length; i++) {\n    const ch = text.charAt(i);\n    if (ch === \"\\r\") {\n      if (i + 1 < text.length && text.charAt(i + 1) === \"\\n\") {\n        return \"\\r\\n\";\n      }\n      return \"\\r\";\n    } else if (ch === \"\\n\") {\n      return \"\\n\";\n    }\n  }\n  return options && options.eol || \"\\n\";\n}\nfunction isEOL(text, offset) {\n  return \"\\r\\n\".indexOf(text.charAt(offset)) !== -1;\n}\n\n// node_modules/jsonc-parser/lib/esm/impl/parser.js\nvar ParseOptions;\n(function(ParseOptions2) {\n  ParseOptions2.DEFAULT = {\n    allowTrailingComma: false\n  };\n})(ParseOptions || (ParseOptions = {}));\nfunction parse(text, errors = [], options = ParseOptions.DEFAULT) {\n  let currentProperty = null;\n  let currentParent = [];\n  const previousParents = [];\n  function onValue(value) {\n    if (Array.isArray(currentParent)) {\n      currentParent.push(value);\n    } else if (currentProperty !== null) {\n      currentParent[currentProperty] = value;\n    }\n  }\n  const visitor = {\n    onObjectBegin: () => {\n      const object = {};\n      onValue(object);\n      previousParents.push(currentParent);\n      currentParent = object;\n      currentProperty = null;\n    },\n    onObjectProperty: (name) => {\n      currentProperty = name;\n    },\n    onObjectEnd: () => {\n      currentParent = previousParents.pop();\n    },\n    onArrayBegin: () => {\n      const array = [];\n      onValue(array);\n      previousParents.push(currentParent);\n      currentParent = array;\n      currentProperty = null;\n    },\n    onArrayEnd: () => {\n      currentParent = previousParents.pop();\n    },\n    onLiteralValue: onValue,\n    onError: (error, offset, length) => {\n      errors.push({ error, offset, length });\n    }\n  };\n  visit(text, visitor, options);\n  return currentParent[0];\n}\nfunction getNodePath(node) {\n  if (!node.parent || !node.parent.children) {\n    return [];\n  }\n  const path = getNodePath(node.parent);\n  if (node.parent.type === \"property\") {\n    const key = node.parent.children[0].value;\n    path.push(key);\n  } else if (node.parent.type === \"array\") {\n    const index = node.parent.children.indexOf(node);\n    if (index !== -1) {\n      path.push(index);\n    }\n  }\n  return path;\n}\nfunction getNodeValue(node) {\n  switch (node.type) {\n    case \"array\":\n      return node.children.map(getNodeValue);\n    case \"object\":\n      const obj = /* @__PURE__ */ Object.create(null);\n      for (let prop of node.children) {\n        const valueNode = prop.children[1];\n        if (valueNode) {\n          obj[prop.children[0].value] = getNodeValue(valueNode);\n        }\n      }\n      return obj;\n    case \"null\":\n    case \"string\":\n    case \"number\":\n    case \"boolean\":\n      return node.value;\n    default:\n      return void 0;\n  }\n}\nfunction contains(node, offset, includeRightBound = false) {\n  return offset >= node.offset && offset < node.offset + node.length || includeRightBound && offset === node.offset + node.length;\n}\nfunction findNodeAtOffset(node, offset, includeRightBound = false) {\n  if (contains(node, offset, includeRightBound)) {\n    const children = node.children;\n    if (Array.isArray(children)) {\n      for (let i = 0; i < children.length && children[i].offset <= offset; i++) {\n        const item = findNodeAtOffset(children[i], offset, includeRightBound);\n        if (item) {\n          return item;\n        }\n      }\n    }\n    return node;\n  }\n  return void 0;\n}\nfunction visit(text, visitor, options = ParseOptions.DEFAULT) {\n  const _scanner = createScanner(text, false);\n  const _jsonPath = [];\n  function toNoArgVisit(visitFunction) {\n    return visitFunction ? () => visitFunction(_scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter()) : () => true;\n  }\n  function toNoArgVisitWithPath(visitFunction) {\n    return visitFunction ? () => visitFunction(_scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter(), () => _jsonPath.slice()) : () => true;\n  }\n  function toOneArgVisit(visitFunction) {\n    return visitFunction ? (arg) => visitFunction(arg, _scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter()) : () => true;\n  }\n  function toOneArgVisitWithPath(visitFunction) {\n    return visitFunction ? (arg) => visitFunction(arg, _scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter(), () => _jsonPath.slice()) : () => true;\n  }\n  const onObjectBegin = toNoArgVisitWithPath(visitor.onObjectBegin), onObjectProperty = toOneArgVisitWithPath(visitor.onObjectProperty), onObjectEnd = toNoArgVisit(visitor.onObjectEnd), onArrayBegin = toNoArgVisitWithPath(visitor.onArrayBegin), onArrayEnd = toNoArgVisit(visitor.onArrayEnd), onLiteralValue = toOneArgVisitWithPath(visitor.onLiteralValue), onSeparator = toOneArgVisit(visitor.onSeparator), onComment = toNoArgVisit(visitor.onComment), onError = toOneArgVisit(visitor.onError);\n  const disallowComments = options && options.disallowComments;\n  const allowTrailingComma = options && options.allowTrailingComma;\n  function scanNext() {\n    while (true) {\n      const token = _scanner.scan();\n      switch (_scanner.getTokenError()) {\n        case 4:\n          handleError(\n            14\n            /* ParseErrorCode.InvalidUnicode */\n          );\n          break;\n        case 5:\n          handleError(\n            15\n            /* ParseErrorCode.InvalidEscapeCharacter */\n          );\n          break;\n        case 3:\n          handleError(\n            13\n            /* ParseErrorCode.UnexpectedEndOfNumber */\n          );\n          break;\n        case 1:\n          if (!disallowComments) {\n            handleError(\n              11\n              /* ParseErrorCode.UnexpectedEndOfComment */\n            );\n          }\n          break;\n        case 2:\n          handleError(\n            12\n            /* ParseErrorCode.UnexpectedEndOfString */\n          );\n          break;\n        case 6:\n          handleError(\n            16\n            /* ParseErrorCode.InvalidCharacter */\n          );\n          break;\n      }\n      switch (token) {\n        case 12:\n        case 13:\n          if (disallowComments) {\n            handleError(\n              10\n              /* ParseErrorCode.InvalidCommentToken */\n            );\n          } else {\n            onComment();\n          }\n          break;\n        case 16:\n          handleError(\n            1\n            /* ParseErrorCode.InvalidSymbol */\n          );\n          break;\n        case 15:\n        case 14:\n          break;\n        default:\n          return token;\n      }\n    }\n  }\n  function handleError(error, skipUntilAfter = [], skipUntil = []) {\n    onError(error);\n    if (skipUntilAfter.length + skipUntil.length > 0) {\n      let token = _scanner.getToken();\n      while (token !== 17) {\n        if (skipUntilAfter.indexOf(token) !== -1) {\n          scanNext();\n          break;\n        } else if (skipUntil.indexOf(token) !== -1) {\n          break;\n        }\n        token = scanNext();\n      }\n    }\n  }\n  function parseString(isValue) {\n    const value = _scanner.getTokenValue();\n    if (isValue) {\n      onLiteralValue(value);\n    } else {\n      onObjectProperty(value);\n      _jsonPath.push(value);\n    }\n    scanNext();\n    return true;\n  }\n  function parseLiteral() {\n    switch (_scanner.getToken()) {\n      case 11:\n        const tokenValue = _scanner.getTokenValue();\n        let value = Number(tokenValue);\n        if (isNaN(value)) {\n          handleError(\n            2\n            /* ParseErrorCode.InvalidNumberFormat */\n          );\n          value = 0;\n        }\n        onLiteralValue(value);\n        break;\n      case 7:\n        onLiteralValue(null);\n        break;\n      case 8:\n        onLiteralValue(true);\n        break;\n      case 9:\n        onLiteralValue(false);\n        break;\n      default:\n        return false;\n    }\n    scanNext();\n    return true;\n  }\n  function parseProperty() {\n    if (_scanner.getToken() !== 10) {\n      handleError(3, [], [\n        2,\n        5\n        /* SyntaxKind.CommaToken */\n      ]);\n      return false;\n    }\n    parseString(false);\n    if (_scanner.getToken() === 6) {\n      onSeparator(\":\");\n      scanNext();\n      if (!parseValue()) {\n        handleError(4, [], [\n          2,\n          5\n          /* SyntaxKind.CommaToken */\n        ]);\n      }\n    } else {\n      handleError(5, [], [\n        2,\n        5\n        /* SyntaxKind.CommaToken */\n      ]);\n    }\n    _jsonPath.pop();\n    return true;\n  }\n  function parseObject() {\n    onObjectBegin();\n    scanNext();\n    let needsComma = false;\n    while (_scanner.getToken() !== 2 && _scanner.getToken() !== 17) {\n      if (_scanner.getToken() === 5) {\n        if (!needsComma) {\n          handleError(4, [], []);\n        }\n        onSeparator(\",\");\n        scanNext();\n        if (_scanner.getToken() === 2 && allowTrailingComma) {\n          break;\n        }\n      } else if (needsComma) {\n        handleError(6, [], []);\n      }\n      if (!parseProperty()) {\n        handleError(4, [], [\n          2,\n          5\n          /* SyntaxKind.CommaToken */\n        ]);\n      }\n      needsComma = true;\n    }\n    onObjectEnd();\n    if (_scanner.getToken() !== 2) {\n      handleError(7, [\n        2\n        /* SyntaxKind.CloseBraceToken */\n      ], []);\n    } else {\n      scanNext();\n    }\n    return true;\n  }\n  function parseArray() {\n    onArrayBegin();\n    scanNext();\n    let isFirstElement = true;\n    let needsComma = false;\n    while (_scanner.getToken() !== 4 && _scanner.getToken() !== 17) {\n      if (_scanner.getToken() === 5) {\n        if (!needsComma) {\n          handleError(4, [], []);\n        }\n        onSeparator(\",\");\n        scanNext();\n        if (_scanner.getToken() === 4 && allowTrailingComma) {\n          break;\n        }\n      } else if (needsComma) {\n        handleError(6, [], []);\n      }\n      if (isFirstElement) {\n        _jsonPath.push(0);\n        isFirstElement = false;\n      } else {\n        _jsonPath[_jsonPath.length - 1]++;\n      }\n      if (!parseValue()) {\n        handleError(4, [], [\n          4,\n          5\n          /* SyntaxKind.CommaToken */\n        ]);\n      }\n      needsComma = true;\n    }\n    onArrayEnd();\n    if (!isFirstElement) {\n      _jsonPath.pop();\n    }\n    if (_scanner.getToken() !== 4) {\n      handleError(8, [\n        4\n        /* SyntaxKind.CloseBracketToken */\n      ], []);\n    } else {\n      scanNext();\n    }\n    return true;\n  }\n  function parseValue() {\n    switch (_scanner.getToken()) {\n      case 3:\n        return parseArray();\n      case 1:\n        return parseObject();\n      case 10:\n        return parseString(true);\n      default:\n        return parseLiteral();\n    }\n  }\n  scanNext();\n  if (_scanner.getToken() === 17) {\n    if (options.allowEmptyContent) {\n      return true;\n    }\n    handleError(4, [], []);\n    return false;\n  }\n  if (!parseValue()) {\n    handleError(4, [], []);\n    return false;\n  }\n  if (_scanner.getToken() !== 17) {\n    handleError(9, [], []);\n  }\n  return true;\n}\n\n// node_modules/jsonc-parser/lib/esm/main.js\nvar createScanner2 = createScanner;\nvar ScanError;\n(function(ScanError2) {\n  ScanError2[ScanError2[\"None\"] = 0] = \"None\";\n  ScanError2[ScanError2[\"UnexpectedEndOfComment\"] = 1] = \"UnexpectedEndOfComment\";\n  ScanError2[ScanError2[\"UnexpectedEndOfString\"] = 2] = \"UnexpectedEndOfString\";\n  ScanError2[ScanError2[\"UnexpectedEndOfNumber\"] = 3] = \"UnexpectedEndOfNumber\";\n  ScanError2[ScanError2[\"InvalidUnicode\"] = 4] = \"InvalidUnicode\";\n  ScanError2[ScanError2[\"InvalidEscapeCharacter\"] = 5] = \"InvalidEscapeCharacter\";\n  ScanError2[ScanError2[\"InvalidCharacter\"] = 6] = \"InvalidCharacter\";\n})(ScanError || (ScanError = {}));\nvar SyntaxKind;\n(function(SyntaxKind2) {\n  SyntaxKind2[SyntaxKind2[\"OpenBraceToken\"] = 1] = \"OpenBraceToken\";\n  SyntaxKind2[SyntaxKind2[\"CloseBraceToken\"] = 2] = \"CloseBraceToken\";\n  SyntaxKind2[SyntaxKind2[\"OpenBracketToken\"] = 3] = \"OpenBracketToken\";\n  SyntaxKind2[SyntaxKind2[\"CloseBracketToken\"] = 4] = \"CloseBracketToken\";\n  SyntaxKind2[SyntaxKind2[\"CommaToken\"] = 5] = \"CommaToken\";\n  SyntaxKind2[SyntaxKind2[\"ColonToken\"] = 6] = \"ColonToken\";\n  SyntaxKind2[SyntaxKind2[\"NullKeyword\"] = 7] = \"NullKeyword\";\n  SyntaxKind2[SyntaxKind2[\"TrueKeyword\"] = 8] = \"TrueKeyword\";\n  SyntaxKind2[SyntaxKind2[\"FalseKeyword\"] = 9] = \"FalseKeyword\";\n  SyntaxKind2[SyntaxKind2[\"StringLiteral\"] = 10] = \"StringLiteral\";\n  SyntaxKind2[SyntaxKind2[\"NumericLiteral\"] = 11] = \"NumericLiteral\";\n  SyntaxKind2[SyntaxKind2[\"LineCommentTrivia\"] = 12] = \"LineCommentTrivia\";\n  SyntaxKind2[SyntaxKind2[\"BlockCommentTrivia\"] = 13] = \"BlockCommentTrivia\";\n  SyntaxKind2[SyntaxKind2[\"LineBreakTrivia\"] = 14] = \"LineBreakTrivia\";\n  SyntaxKind2[SyntaxKind2[\"Trivia\"] = 15] = \"Trivia\";\n  SyntaxKind2[SyntaxKind2[\"Unknown\"] = 16] = \"Unknown\";\n  SyntaxKind2[SyntaxKind2[\"EOF\"] = 17] = \"EOF\";\n})(SyntaxKind || (SyntaxKind = {}));\nvar parse2 = parse;\nvar findNodeAtOffset2 = findNodeAtOffset;\nvar getNodePath2 = getNodePath;\nvar getNodeValue2 = getNodeValue;\nvar ParseErrorCode;\n(function(ParseErrorCode2) {\n  ParseErrorCode2[ParseErrorCode2[\"InvalidSymbol\"] = 1] = \"InvalidSymbol\";\n  ParseErrorCode2[ParseErrorCode2[\"InvalidNumberFormat\"] = 2] = \"InvalidNumberFormat\";\n  ParseErrorCode2[ParseErrorCode2[\"PropertyNameExpected\"] = 3] = \"PropertyNameExpected\";\n  ParseErrorCode2[ParseErrorCode2[\"ValueExpected\"] = 4] = \"ValueExpected\";\n  ParseErrorCode2[ParseErrorCode2[\"ColonExpected\"] = 5] = \"ColonExpected\";\n  ParseErrorCode2[ParseErrorCode2[\"CommaExpected\"] = 6] = \"CommaExpected\";\n  ParseErrorCode2[ParseErrorCode2[\"CloseBraceExpected\"] = 7] = \"CloseBraceExpected\";\n  ParseErrorCode2[ParseErrorCode2[\"CloseBracketExpected\"] = 8] = \"CloseBracketExpected\";\n  ParseErrorCode2[ParseErrorCode2[\"EndOfFileExpected\"] = 9] = \"EndOfFileExpected\";\n  ParseErrorCode2[ParseErrorCode2[\"InvalidCommentToken\"] = 10] = \"InvalidCommentToken\";\n  ParseErrorCode2[ParseErrorCode2[\"UnexpectedEndOfComment\"] = 11] = \"UnexpectedEndOfComment\";\n  ParseErrorCode2[ParseErrorCode2[\"UnexpectedEndOfString\"] = 12] = \"UnexpectedEndOfString\";\n  ParseErrorCode2[ParseErrorCode2[\"UnexpectedEndOfNumber\"] = 13] = \"UnexpectedEndOfNumber\";\n  ParseErrorCode2[ParseErrorCode2[\"InvalidUnicode\"] = 14] = \"InvalidUnicode\";\n  ParseErrorCode2[ParseErrorCode2[\"InvalidEscapeCharacter\"] = 15] = \"InvalidEscapeCharacter\";\n  ParseErrorCode2[ParseErrorCode2[\"InvalidCharacter\"] = 16] = \"InvalidCharacter\";\n})(ParseErrorCode || (ParseErrorCode = {}));\nfunction format2(documentText, range, options) {\n  return format(documentText, range, options);\n}\n\n// node_modules/vscode-json-languageservice/lib/esm/utils/objects.js\nfunction equals(one, other) {\n  if (one === other) {\n    return true;\n  }\n  if (one === null || one === void 0 || other === null || other === void 0) {\n    return false;\n  }\n  if (typeof one !== typeof other) {\n    return false;\n  }\n  if (typeof one !== \"object\") {\n    return false;\n  }\n  if (Array.isArray(one) !== Array.isArray(other)) {\n    return false;\n  }\n  let i, key;\n  if (Array.isArray(one)) {\n    if (one.length !== other.length) {\n      return false;\n    }\n    for (i = 0; i < one.length; i++) {\n      if (!equals(one[i], other[i])) {\n        return false;\n      }\n    }\n  } else {\n    const oneKeys = [];\n    for (key in one) {\n      oneKeys.push(key);\n    }\n    oneKeys.sort();\n    const otherKeys = [];\n    for (key in other) {\n      otherKeys.push(key);\n    }\n    otherKeys.sort();\n    if (!equals(oneKeys, otherKeys)) {\n      return false;\n    }\n    for (i = 0; i < oneKeys.length; i++) {\n      if (!equals(one[oneKeys[i]], other[oneKeys[i]])) {\n        return false;\n      }\n    }\n  }\n  return true;\n}\nfunction isNumber(val) {\n  return typeof val === \"number\";\n}\nfunction isDefined(val) {\n  return typeof val !== \"undefined\";\n}\nfunction isBoolean(val) {\n  return typeof val === \"boolean\";\n}\nfunction isString(val) {\n  return typeof val === \"string\";\n}\nfunction isObject(val) {\n  return typeof val === \"object\" && val !== null && !Array.isArray(val);\n}\n\n// node_modules/vscode-json-languageservice/lib/esm/utils/strings.js\nfunction startsWith(haystack, needle) {\n  if (haystack.length < needle.length) {\n    return false;\n  }\n  for (let i = 0; i < needle.length; i++) {\n    if (haystack[i] !== needle[i]) {\n      return false;\n    }\n  }\n  return true;\n}\nfunction endsWith(haystack, needle) {\n  const diff = haystack.length - needle.length;\n  if (diff > 0) {\n    return haystack.lastIndexOf(needle) === diff;\n  } else if (diff === 0) {\n    return haystack === needle;\n  } else {\n    return false;\n  }\n}\nfunction extendedRegExp(pattern) {\n  let flags = \"\";\n  if (startsWith(pattern, \"(?i)\")) {\n    pattern = pattern.substring(4);\n    flags = \"i\";\n  }\n  try {\n    return new RegExp(pattern, flags + \"u\");\n  } catch (e) {\n    try {\n      return new RegExp(pattern, flags);\n    } catch (e2) {\n      return void 0;\n    }\n  }\n}\nfunction stringLength(str) {\n  let count = 0;\n  for (let i = 0; i < str.length; i++) {\n    count++;\n    const code = str.charCodeAt(i);\n    if (55296 <= code && code <= 56319) {\n      i++;\n    }\n  }\n  return count;\n}\n\n// node_modules/vscode-languageserver-types/lib/esm/main.js\nvar DocumentUri;\n(function(DocumentUri2) {\n  function is(value) {\n    return typeof value === \"string\";\n  }\n  DocumentUri2.is = is;\n})(DocumentUri || (DocumentUri = {}));\nvar URI;\n(function(URI3) {\n  function is(value) {\n    return typeof value === \"string\";\n  }\n  URI3.is = is;\n})(URI || (URI = {}));\nvar integer;\n(function(integer2) {\n  integer2.MIN_VALUE = -2147483648;\n  integer2.MAX_VALUE = 2147483647;\n  function is(value) {\n    return typeof value === \"number\" && integer2.MIN_VALUE <= value && value <= integer2.MAX_VALUE;\n  }\n  integer2.is = is;\n})(integer || (integer = {}));\nvar uinteger;\n(function(uinteger2) {\n  uinteger2.MIN_VALUE = 0;\n  uinteger2.MAX_VALUE = 2147483647;\n  function is(value) {\n    return typeof value === \"number\" && uinteger2.MIN_VALUE <= value && value <= uinteger2.MAX_VALUE;\n  }\n  uinteger2.is = is;\n})(uinteger || (uinteger = {}));\nvar Position;\n(function(Position2) {\n  function create(line, character) {\n    if (line === Number.MAX_VALUE) {\n      line = uinteger.MAX_VALUE;\n    }\n    if (character === Number.MAX_VALUE) {\n      character = uinteger.MAX_VALUE;\n    }\n    return { line, character };\n  }\n  Position2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.objectLiteral(candidate) && Is.uinteger(candidate.line) && Is.uinteger(candidate.character);\n  }\n  Position2.is = is;\n})(Position || (Position = {}));\nvar Range;\n(function(Range2) {\n  function create(one, two, three, four) {\n    if (Is.uinteger(one) && Is.uinteger(two) && Is.uinteger(three) && Is.uinteger(four)) {\n      return { start: Position.create(one, two), end: Position.create(three, four) };\n    } else if (Position.is(one) && Position.is(two)) {\n      return { start: one, end: two };\n    } else {\n      throw new Error(`Range#create called with invalid arguments[${one}, ${two}, ${three}, ${four}]`);\n    }\n  }\n  Range2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.objectLiteral(candidate) && Position.is(candidate.start) && Position.is(candidate.end);\n  }\n  Range2.is = is;\n})(Range || (Range = {}));\nvar Location;\n(function(Location2) {\n  function create(uri, range) {\n    return { uri, range };\n  }\n  Location2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.objectLiteral(candidate) && Range.is(candidate.range) && (Is.string(candidate.uri) || Is.undefined(candidate.uri));\n  }\n  Location2.is = is;\n})(Location || (Location = {}));\nvar LocationLink;\n(function(LocationLink2) {\n  function create(targetUri, targetRange, targetSelectionRange, originSelectionRange) {\n    return { targetUri, targetRange, targetSelectionRange, originSelectionRange };\n  }\n  LocationLink2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.objectLiteral(candidate) && Range.is(candidate.targetRange) && Is.string(candidate.targetUri) && Range.is(candidate.targetSelectionRange) && (Range.is(candidate.originSelectionRange) || Is.undefined(candidate.originSelectionRange));\n  }\n  LocationLink2.is = is;\n})(LocationLink || (LocationLink = {}));\nvar Color;\n(function(Color2) {\n  function create(red, green, blue, alpha) {\n    return {\n      red,\n      green,\n      blue,\n      alpha\n    };\n  }\n  Color2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.numberRange(candidate.red, 0, 1) && Is.numberRange(candidate.green, 0, 1) && Is.numberRange(candidate.blue, 0, 1) && Is.numberRange(candidate.alpha, 0, 1);\n  }\n  Color2.is = is;\n})(Color || (Color = {}));\nvar ColorInformation;\n(function(ColorInformation2) {\n  function create(range, color) {\n    return {\n      range,\n      color\n    };\n  }\n  ColorInformation2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Range.is(candidate.range) && Color.is(candidate.color);\n  }\n  ColorInformation2.is = is;\n})(ColorInformation || (ColorInformation = {}));\nvar ColorPresentation;\n(function(ColorPresentation2) {\n  function create(label, textEdit, additionalTextEdits) {\n    return {\n      label,\n      textEdit,\n      additionalTextEdits\n    };\n  }\n  ColorPresentation2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.string(candidate.label) && (Is.undefined(candidate.textEdit) || TextEdit.is(candidate)) && (Is.undefined(candidate.additionalTextEdits) || Is.typedArray(candidate.additionalTextEdits, TextEdit.is));\n  }\n  ColorPresentation2.is = is;\n})(ColorPresentation || (ColorPresentation = {}));\nvar FoldingRangeKind;\n(function(FoldingRangeKind2) {\n  FoldingRangeKind2.Comment = \"comment\";\n  FoldingRangeKind2.Imports = \"imports\";\n  FoldingRangeKind2.Region = \"region\";\n})(FoldingRangeKind || (FoldingRangeKind = {}));\nvar FoldingRange;\n(function(FoldingRange2) {\n  function create(startLine, endLine, startCharacter, endCharacter, kind, collapsedText) {\n    const result = {\n      startLine,\n      endLine\n    };\n    if (Is.defined(startCharacter)) {\n      result.startCharacter = startCharacter;\n    }\n    if (Is.defined(endCharacter)) {\n      result.endCharacter = endCharacter;\n    }\n    if (Is.defined(kind)) {\n      result.kind = kind;\n    }\n    if (Is.defined(collapsedText)) {\n      result.collapsedText = collapsedText;\n    }\n    return result;\n  }\n  FoldingRange2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.uinteger(candidate.startLine) && Is.uinteger(candidate.startLine) && (Is.undefined(candidate.startCharacter) || Is.uinteger(candidate.startCharacter)) && (Is.undefined(candidate.endCharacter) || Is.uinteger(candidate.endCharacter)) && (Is.undefined(candidate.kind) || Is.string(candidate.kind));\n  }\n  FoldingRange2.is = is;\n})(FoldingRange || (FoldingRange = {}));\nvar DiagnosticRelatedInformation;\n(function(DiagnosticRelatedInformation2) {\n  function create(location, message) {\n    return {\n      location,\n      message\n    };\n  }\n  DiagnosticRelatedInformation2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Location.is(candidate.location) && Is.string(candidate.message);\n  }\n  DiagnosticRelatedInformation2.is = is;\n})(DiagnosticRelatedInformation || (DiagnosticRelatedInformation = {}));\nvar DiagnosticSeverity;\n(function(DiagnosticSeverity2) {\n  DiagnosticSeverity2.Error = 1;\n  DiagnosticSeverity2.Warning = 2;\n  DiagnosticSeverity2.Information = 3;\n  DiagnosticSeverity2.Hint = 4;\n})(DiagnosticSeverity || (DiagnosticSeverity = {}));\nvar DiagnosticTag;\n(function(DiagnosticTag2) {\n  DiagnosticTag2.Unnecessary = 1;\n  DiagnosticTag2.Deprecated = 2;\n})(DiagnosticTag || (DiagnosticTag = {}));\nvar CodeDescription;\n(function(CodeDescription2) {\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.string(candidate.href);\n  }\n  CodeDescription2.is = is;\n})(CodeDescription || (CodeDescription = {}));\nvar Diagnostic;\n(function(Diagnostic2) {\n  function create(range, message, severity, code, source, relatedInformation) {\n    let result = { range, message };\n    if (Is.defined(severity)) {\n      result.severity = severity;\n    }\n    if (Is.defined(code)) {\n      result.code = code;\n    }\n    if (Is.defined(source)) {\n      result.source = source;\n    }\n    if (Is.defined(relatedInformation)) {\n      result.relatedInformation = relatedInformation;\n    }\n    return result;\n  }\n  Diagnostic2.create = create;\n  function is(value) {\n    var _a;\n    let candidate = value;\n    return Is.defined(candidate) && Range.is(candidate.range) && Is.string(candidate.message) && (Is.number(candidate.severity) || Is.undefined(candidate.severity)) && (Is.integer(candidate.code) || Is.string(candidate.code) || Is.undefined(candidate.code)) && (Is.undefined(candidate.codeDescription) || Is.string((_a = candidate.codeDescription) === null || _a === void 0 ? void 0 : _a.href)) && (Is.string(candidate.source) || Is.undefined(candidate.source)) && (Is.undefined(candidate.relatedInformation) || Is.typedArray(candidate.relatedInformation, DiagnosticRelatedInformation.is));\n  }\n  Diagnostic2.is = is;\n})(Diagnostic || (Diagnostic = {}));\nvar Command;\n(function(Command2) {\n  function create(title, command, ...args) {\n    let result = { title, command };\n    if (Is.defined(args) && args.length > 0) {\n      result.arguments = args;\n    }\n    return result;\n  }\n  Command2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.title) && Is.string(candidate.command);\n  }\n  Command2.is = is;\n})(Command || (Command = {}));\nvar TextEdit;\n(function(TextEdit2) {\n  function replace(range, newText) {\n    return { range, newText };\n  }\n  TextEdit2.replace = replace;\n  function insert(position, newText) {\n    return { range: { start: position, end: position }, newText };\n  }\n  TextEdit2.insert = insert;\n  function del(range) {\n    return { range, newText: \"\" };\n  }\n  TextEdit2.del = del;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.string(candidate.newText) && Range.is(candidate.range);\n  }\n  TextEdit2.is = is;\n})(TextEdit || (TextEdit = {}));\nvar ChangeAnnotation;\n(function(ChangeAnnotation2) {\n  function create(label, needsConfirmation, description) {\n    const result = { label };\n    if (needsConfirmation !== void 0) {\n      result.needsConfirmation = needsConfirmation;\n    }\n    if (description !== void 0) {\n      result.description = description;\n    }\n    return result;\n  }\n  ChangeAnnotation2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.string(candidate.label) && (Is.boolean(candidate.needsConfirmation) || candidate.needsConfirmation === void 0) && (Is.string(candidate.description) || candidate.description === void 0);\n  }\n  ChangeAnnotation2.is = is;\n})(ChangeAnnotation || (ChangeAnnotation = {}));\nvar ChangeAnnotationIdentifier;\n(function(ChangeAnnotationIdentifier2) {\n  function is(value) {\n    const candidate = value;\n    return Is.string(candidate);\n  }\n  ChangeAnnotationIdentifier2.is = is;\n})(ChangeAnnotationIdentifier || (ChangeAnnotationIdentifier = {}));\nvar AnnotatedTextEdit;\n(function(AnnotatedTextEdit2) {\n  function replace(range, newText, annotation) {\n    return { range, newText, annotationId: annotation };\n  }\n  AnnotatedTextEdit2.replace = replace;\n  function insert(position, newText, annotation) {\n    return { range: { start: position, end: position }, newText, annotationId: annotation };\n  }\n  AnnotatedTextEdit2.insert = insert;\n  function del(range, annotation) {\n    return { range, newText: \"\", annotationId: annotation };\n  }\n  AnnotatedTextEdit2.del = del;\n  function is(value) {\n    const candidate = value;\n    return TextEdit.is(candidate) && (ChangeAnnotation.is(candidate.annotationId) || ChangeAnnotationIdentifier.is(candidate.annotationId));\n  }\n  AnnotatedTextEdit2.is = is;\n})(AnnotatedTextEdit || (AnnotatedTextEdit = {}));\nvar TextDocumentEdit;\n(function(TextDocumentEdit2) {\n  function create(textDocument, edits) {\n    return { textDocument, edits };\n  }\n  TextDocumentEdit2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && OptionalVersionedTextDocumentIdentifier.is(candidate.textDocument) && Array.isArray(candidate.edits);\n  }\n  TextDocumentEdit2.is = is;\n})(TextDocumentEdit || (TextDocumentEdit = {}));\nvar CreateFile;\n(function(CreateFile2) {\n  function create(uri, options, annotation) {\n    let result = {\n      kind: \"create\",\n      uri\n    };\n    if (options !== void 0 && (options.overwrite !== void 0 || options.ignoreIfExists !== void 0)) {\n      result.options = options;\n    }\n    if (annotation !== void 0) {\n      result.annotationId = annotation;\n    }\n    return result;\n  }\n  CreateFile2.create = create;\n  function is(value) {\n    let candidate = value;\n    return candidate && candidate.kind === \"create\" && Is.string(candidate.uri) && (candidate.options === void 0 || (candidate.options.overwrite === void 0 || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === void 0 || Is.boolean(candidate.options.ignoreIfExists))) && (candidate.annotationId === void 0 || ChangeAnnotationIdentifier.is(candidate.annotationId));\n  }\n  CreateFile2.is = is;\n})(CreateFile || (CreateFile = {}));\nvar RenameFile;\n(function(RenameFile2) {\n  function create(oldUri, newUri, options, annotation) {\n    let result = {\n      kind: \"rename\",\n      oldUri,\n      newUri\n    };\n    if (options !== void 0 && (options.overwrite !== void 0 || options.ignoreIfExists !== void 0)) {\n      result.options = options;\n    }\n    if (annotation !== void 0) {\n      result.annotationId = annotation;\n    }\n    return result;\n  }\n  RenameFile2.create = create;\n  function is(value) {\n    let candidate = value;\n    return candidate && candidate.kind === \"rename\" && Is.string(candidate.oldUri) && Is.string(candidate.newUri) && (candidate.options === void 0 || (candidate.options.overwrite === void 0 || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === void 0 || Is.boolean(candidate.options.ignoreIfExists))) && (candidate.annotationId === void 0 || ChangeAnnotationIdentifier.is(candidate.annotationId));\n  }\n  RenameFile2.is = is;\n})(RenameFile || (RenameFile = {}));\nvar DeleteFile;\n(function(DeleteFile2) {\n  function create(uri, options, annotation) {\n    let result = {\n      kind: \"delete\",\n      uri\n    };\n    if (options !== void 0 && (options.recursive !== void 0 || options.ignoreIfNotExists !== void 0)) {\n      result.options = options;\n    }\n    if (annotation !== void 0) {\n      result.annotationId = annotation;\n    }\n    return result;\n  }\n  DeleteFile2.create = create;\n  function is(value) {\n    let candidate = value;\n    return candidate && candidate.kind === \"delete\" && Is.string(candidate.uri) && (candidate.options === void 0 || (candidate.options.recursive === void 0 || Is.boolean(candidate.options.recursive)) && (candidate.options.ignoreIfNotExists === void 0 || Is.boolean(candidate.options.ignoreIfNotExists))) && (candidate.annotationId === void 0 || ChangeAnnotationIdentifier.is(candidate.annotationId));\n  }\n  DeleteFile2.is = is;\n})(DeleteFile || (DeleteFile = {}));\nvar WorkspaceEdit;\n(function(WorkspaceEdit2) {\n  function is(value) {\n    let candidate = value;\n    return candidate && (candidate.changes !== void 0 || candidate.documentChanges !== void 0) && (candidate.documentChanges === void 0 || candidate.documentChanges.every((change) => {\n      if (Is.string(change.kind)) {\n        return CreateFile.is(change) || RenameFile.is(change) || DeleteFile.is(change);\n      } else {\n        return TextDocumentEdit.is(change);\n      }\n    }));\n  }\n  WorkspaceEdit2.is = is;\n})(WorkspaceEdit || (WorkspaceEdit = {}));\nvar TextDocumentIdentifier;\n(function(TextDocumentIdentifier2) {\n  function create(uri) {\n    return { uri };\n  }\n  TextDocumentIdentifier2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.uri);\n  }\n  TextDocumentIdentifier2.is = is;\n})(TextDocumentIdentifier || (TextDocumentIdentifier = {}));\nvar VersionedTextDocumentIdentifier;\n(function(VersionedTextDocumentIdentifier2) {\n  function create(uri, version) {\n    return { uri, version };\n  }\n  VersionedTextDocumentIdentifier2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.uri) && Is.integer(candidate.version);\n  }\n  VersionedTextDocumentIdentifier2.is = is;\n})(VersionedTextDocumentIdentifier || (VersionedTextDocumentIdentifier = {}));\nvar OptionalVersionedTextDocumentIdentifier;\n(function(OptionalVersionedTextDocumentIdentifier2) {\n  function create(uri, version) {\n    return { uri, version };\n  }\n  OptionalVersionedTextDocumentIdentifier2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.uri) && (candidate.version === null || Is.integer(candidate.version));\n  }\n  OptionalVersionedTextDocumentIdentifier2.is = is;\n})(OptionalVersionedTextDocumentIdentifier || (OptionalVersionedTextDocumentIdentifier = {}));\nvar TextDocumentItem;\n(function(TextDocumentItem2) {\n  function create(uri, languageId, version, text) {\n    return { uri, languageId, version, text };\n  }\n  TextDocumentItem2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.uri) && Is.string(candidate.languageId) && Is.integer(candidate.version) && Is.string(candidate.text);\n  }\n  TextDocumentItem2.is = is;\n})(TextDocumentItem || (TextDocumentItem = {}));\nvar MarkupKind;\n(function(MarkupKind2) {\n  MarkupKind2.PlainText = \"plaintext\";\n  MarkupKind2.Markdown = \"markdown\";\n  function is(value) {\n    const candidate = value;\n    return candidate === MarkupKind2.PlainText || candidate === MarkupKind2.Markdown;\n  }\n  MarkupKind2.is = is;\n})(MarkupKind || (MarkupKind = {}));\nvar MarkupContent;\n(function(MarkupContent2) {\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(value) && MarkupKind.is(candidate.kind) && Is.string(candidate.value);\n  }\n  MarkupContent2.is = is;\n})(MarkupContent || (MarkupContent = {}));\nvar CompletionItemKind;\n(function(CompletionItemKind2) {\n  CompletionItemKind2.Text = 1;\n  CompletionItemKind2.Method = 2;\n  CompletionItemKind2.Function = 3;\n  CompletionItemKind2.Constructor = 4;\n  CompletionItemKind2.Field = 5;\n  CompletionItemKind2.Variable = 6;\n  CompletionItemKind2.Class = 7;\n  CompletionItemKind2.Interface = 8;\n  CompletionItemKind2.Module = 9;\n  CompletionItemKind2.Property = 10;\n  CompletionItemKind2.Unit = 11;\n  CompletionItemKind2.Value = 12;\n  CompletionItemKind2.Enum = 13;\n  CompletionItemKind2.Keyword = 14;\n  CompletionItemKind2.Snippet = 15;\n  CompletionItemKind2.Color = 16;\n  CompletionItemKind2.File = 17;\n  CompletionItemKind2.Reference = 18;\n  CompletionItemKind2.Folder = 19;\n  CompletionItemKind2.EnumMember = 20;\n  CompletionItemKind2.Constant = 21;\n  CompletionItemKind2.Struct = 22;\n  CompletionItemKind2.Event = 23;\n  CompletionItemKind2.Operator = 24;\n  CompletionItemKind2.TypeParameter = 25;\n})(CompletionItemKind || (CompletionItemKind = {}));\nvar InsertTextFormat;\n(function(InsertTextFormat2) {\n  InsertTextFormat2.PlainText = 1;\n  InsertTextFormat2.Snippet = 2;\n})(InsertTextFormat || (InsertTextFormat = {}));\nvar CompletionItemTag;\n(function(CompletionItemTag2) {\n  CompletionItemTag2.Deprecated = 1;\n})(CompletionItemTag || (CompletionItemTag = {}));\nvar InsertReplaceEdit;\n(function(InsertReplaceEdit2) {\n  function create(newText, insert, replace) {\n    return { newText, insert, replace };\n  }\n  InsertReplaceEdit2.create = create;\n  function is(value) {\n    const candidate = value;\n    return candidate && Is.string(candidate.newText) && Range.is(candidate.insert) && Range.is(candidate.replace);\n  }\n  InsertReplaceEdit2.is = is;\n})(InsertReplaceEdit || (InsertReplaceEdit = {}));\nvar InsertTextMode;\n(function(InsertTextMode2) {\n  InsertTextMode2.asIs = 1;\n  InsertTextMode2.adjustIndentation = 2;\n})(InsertTextMode || (InsertTextMode = {}));\nvar CompletionItemLabelDetails;\n(function(CompletionItemLabelDetails2) {\n  function is(value) {\n    const candidate = value;\n    return candidate && (Is.string(candidate.detail) || candidate.detail === void 0) && (Is.string(candidate.description) || candidate.description === void 0);\n  }\n  CompletionItemLabelDetails2.is = is;\n})(CompletionItemLabelDetails || (CompletionItemLabelDetails = {}));\nvar CompletionItem;\n(function(CompletionItem2) {\n  function create(label) {\n    return { label };\n  }\n  CompletionItem2.create = create;\n})(CompletionItem || (CompletionItem = {}));\nvar CompletionList;\n(function(CompletionList2) {\n  function create(items, isIncomplete) {\n    return { items: items ? items : [], isIncomplete: !!isIncomplete };\n  }\n  CompletionList2.create = create;\n})(CompletionList || (CompletionList = {}));\nvar MarkedString;\n(function(MarkedString2) {\n  function fromPlainText(plainText) {\n    return plainText.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g, \"\\\\$&\");\n  }\n  MarkedString2.fromPlainText = fromPlainText;\n  function is(value) {\n    const candidate = value;\n    return Is.string(candidate) || Is.objectLiteral(candidate) && Is.string(candidate.language) && Is.string(candidate.value);\n  }\n  MarkedString2.is = is;\n})(MarkedString || (MarkedString = {}));\nvar Hover;\n(function(Hover2) {\n  function is(value) {\n    let candidate = value;\n    return !!candidate && Is.objectLiteral(candidate) && (MarkupContent.is(candidate.contents) || MarkedString.is(candidate.contents) || Is.typedArray(candidate.contents, MarkedString.is)) && (value.range === void 0 || Range.is(value.range));\n  }\n  Hover2.is = is;\n})(Hover || (Hover = {}));\nvar ParameterInformation;\n(function(ParameterInformation2) {\n  function create(label, documentation) {\n    return documentation ? { label, documentation } : { label };\n  }\n  ParameterInformation2.create = create;\n})(ParameterInformation || (ParameterInformation = {}));\nvar SignatureInformation;\n(function(SignatureInformation2) {\n  function create(label, documentation, ...parameters) {\n    let result = { label };\n    if (Is.defined(documentation)) {\n      result.documentation = documentation;\n    }\n    if (Is.defined(parameters)) {\n      result.parameters = parameters;\n    } else {\n      result.parameters = [];\n    }\n    return result;\n  }\n  SignatureInformation2.create = create;\n})(SignatureInformation || (SignatureInformation = {}));\nvar DocumentHighlightKind;\n(function(DocumentHighlightKind2) {\n  DocumentHighlightKind2.Text = 1;\n  DocumentHighlightKind2.Read = 2;\n  DocumentHighlightKind2.Write = 3;\n})(DocumentHighlightKind || (DocumentHighlightKind = {}));\nvar DocumentHighlight;\n(function(DocumentHighlight2) {\n  function create(range, kind) {\n    let result = { range };\n    if (Is.number(kind)) {\n      result.kind = kind;\n    }\n    return result;\n  }\n  DocumentHighlight2.create = create;\n})(DocumentHighlight || (DocumentHighlight = {}));\nvar SymbolKind;\n(function(SymbolKind2) {\n  SymbolKind2.File = 1;\n  SymbolKind2.Module = 2;\n  SymbolKind2.Namespace = 3;\n  SymbolKind2.Package = 4;\n  SymbolKind2.Class = 5;\n  SymbolKind2.Method = 6;\n  SymbolKind2.Property = 7;\n  SymbolKind2.Field = 8;\n  SymbolKind2.Constructor = 9;\n  SymbolKind2.Enum = 10;\n  SymbolKind2.Interface = 11;\n  SymbolKind2.Function = 12;\n  SymbolKind2.Variable = 13;\n  SymbolKind2.Constant = 14;\n  SymbolKind2.String = 15;\n  SymbolKind2.Number = 16;\n  SymbolKind2.Boolean = 17;\n  SymbolKind2.Array = 18;\n  SymbolKind2.Object = 19;\n  SymbolKind2.Key = 20;\n  SymbolKind2.Null = 21;\n  SymbolKind2.EnumMember = 22;\n  SymbolKind2.Struct = 23;\n  SymbolKind2.Event = 24;\n  SymbolKind2.Operator = 25;\n  SymbolKind2.TypeParameter = 26;\n})(SymbolKind || (SymbolKind = {}));\nvar SymbolTag;\n(function(SymbolTag2) {\n  SymbolTag2.Deprecated = 1;\n})(SymbolTag || (SymbolTag = {}));\nvar SymbolInformation;\n(function(SymbolInformation2) {\n  function create(name, kind, range, uri, containerName) {\n    let result = {\n      name,\n      kind,\n      location: { uri, range }\n    };\n    if (containerName) {\n      result.containerName = containerName;\n    }\n    return result;\n  }\n  SymbolInformation2.create = create;\n})(SymbolInformation || (SymbolInformation = {}));\nvar WorkspaceSymbol;\n(function(WorkspaceSymbol2) {\n  function create(name, kind, uri, range) {\n    return range !== void 0 ? { name, kind, location: { uri, range } } : { name, kind, location: { uri } };\n  }\n  WorkspaceSymbol2.create = create;\n})(WorkspaceSymbol || (WorkspaceSymbol = {}));\nvar DocumentSymbol;\n(function(DocumentSymbol2) {\n  function create(name, detail, kind, range, selectionRange, children) {\n    let result = {\n      name,\n      detail,\n      kind,\n      range,\n      selectionRange\n    };\n    if (children !== void 0) {\n      result.children = children;\n    }\n    return result;\n  }\n  DocumentSymbol2.create = create;\n  function is(value) {\n    let candidate = value;\n    return candidate && Is.string(candidate.name) && Is.number(candidate.kind) && Range.is(candidate.range) && Range.is(candidate.selectionRange) && (candidate.detail === void 0 || Is.string(candidate.detail)) && (candidate.deprecated === void 0 || Is.boolean(candidate.deprecated)) && (candidate.children === void 0 || Array.isArray(candidate.children)) && (candidate.tags === void 0 || Array.isArray(candidate.tags));\n  }\n  DocumentSymbol2.is = is;\n})(DocumentSymbol || (DocumentSymbol = {}));\nvar CodeActionKind;\n(function(CodeActionKind2) {\n  CodeActionKind2.Empty = \"\";\n  CodeActionKind2.QuickFix = \"quickfix\";\n  CodeActionKind2.Refactor = \"refactor\";\n  CodeActionKind2.RefactorExtract = \"refactor.extract\";\n  CodeActionKind2.RefactorInline = \"refactor.inline\";\n  CodeActionKind2.RefactorRewrite = \"refactor.rewrite\";\n  CodeActionKind2.Source = \"source\";\n  CodeActionKind2.SourceOrganizeImports = \"source.organizeImports\";\n  CodeActionKind2.SourceFixAll = \"source.fixAll\";\n})(CodeActionKind || (CodeActionKind = {}));\nvar CodeActionTriggerKind;\n(function(CodeActionTriggerKind2) {\n  CodeActionTriggerKind2.Invoked = 1;\n  CodeActionTriggerKind2.Automatic = 2;\n})(CodeActionTriggerKind || (CodeActionTriggerKind = {}));\nvar CodeActionContext;\n(function(CodeActionContext2) {\n  function create(diagnostics, only, triggerKind) {\n    let result = { diagnostics };\n    if (only !== void 0 && only !== null) {\n      result.only = only;\n    }\n    if (triggerKind !== void 0 && triggerKind !== null) {\n      result.triggerKind = triggerKind;\n    }\n    return result;\n  }\n  CodeActionContext2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.typedArray(candidate.diagnostics, Diagnostic.is) && (candidate.only === void 0 || Is.typedArray(candidate.only, Is.string)) && (candidate.triggerKind === void 0 || candidate.triggerKind === CodeActionTriggerKind.Invoked || candidate.triggerKind === CodeActionTriggerKind.Automatic);\n  }\n  CodeActionContext2.is = is;\n})(CodeActionContext || (CodeActionContext = {}));\nvar CodeAction;\n(function(CodeAction2) {\n  function create(title, kindOrCommandOrEdit, kind) {\n    let result = { title };\n    let checkKind = true;\n    if (typeof kindOrCommandOrEdit === \"string\") {\n      checkKind = false;\n      result.kind = kindOrCommandOrEdit;\n    } else if (Command.is(kindOrCommandOrEdit)) {\n      result.command = kindOrCommandOrEdit;\n    } else {\n      result.edit = kindOrCommandOrEdit;\n    }\n    if (checkKind && kind !== void 0) {\n      result.kind = kind;\n    }\n    return result;\n  }\n  CodeAction2.create = create;\n  function is(value) {\n    let candidate = value;\n    return candidate && Is.string(candidate.title) && (candidate.diagnostics === void 0 || Is.typedArray(candidate.diagnostics, Diagnostic.is)) && (candidate.kind === void 0 || Is.string(candidate.kind)) && (candidate.edit !== void 0 || candidate.command !== void 0) && (candidate.command === void 0 || Command.is(candidate.command)) && (candidate.isPreferred === void 0 || Is.boolean(candidate.isPreferred)) && (candidate.edit === void 0 || WorkspaceEdit.is(candidate.edit));\n  }\n  CodeAction2.is = is;\n})(CodeAction || (CodeAction = {}));\nvar CodeLens;\n(function(CodeLens2) {\n  function create(range, data) {\n    let result = { range };\n    if (Is.defined(data)) {\n      result.data = data;\n    }\n    return result;\n  }\n  CodeLens2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.command) || Command.is(candidate.command));\n  }\n  CodeLens2.is = is;\n})(CodeLens || (CodeLens = {}));\nvar FormattingOptions;\n(function(FormattingOptions2) {\n  function create(tabSize, insertSpaces) {\n    return { tabSize, insertSpaces };\n  }\n  FormattingOptions2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.uinteger(candidate.tabSize) && Is.boolean(candidate.insertSpaces);\n  }\n  FormattingOptions2.is = is;\n})(FormattingOptions || (FormattingOptions = {}));\nvar DocumentLink;\n(function(DocumentLink2) {\n  function create(range, target, data) {\n    return { range, target, data };\n  }\n  DocumentLink2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.target) || Is.string(candidate.target));\n  }\n  DocumentLink2.is = is;\n})(DocumentLink || (DocumentLink = {}));\nvar SelectionRange;\n(function(SelectionRange2) {\n  function create(range, parent) {\n    return { range, parent };\n  }\n  SelectionRange2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.objectLiteral(candidate) && Range.is(candidate.range) && (candidate.parent === void 0 || SelectionRange2.is(candidate.parent));\n  }\n  SelectionRange2.is = is;\n})(SelectionRange || (SelectionRange = {}));\nvar SemanticTokenTypes;\n(function(SemanticTokenTypes2) {\n  SemanticTokenTypes2[\"namespace\"] = \"namespace\";\n  SemanticTokenTypes2[\"type\"] = \"type\";\n  SemanticTokenTypes2[\"class\"] = \"class\";\n  SemanticTokenTypes2[\"enum\"] = \"enum\";\n  SemanticTokenTypes2[\"interface\"] = \"interface\";\n  SemanticTokenTypes2[\"struct\"] = \"struct\";\n  SemanticTokenTypes2[\"typeParameter\"] = \"typeParameter\";\n  SemanticTokenTypes2[\"parameter\"] = \"parameter\";\n  SemanticTokenTypes2[\"variable\"] = \"variable\";\n  SemanticTokenTypes2[\"property\"] = \"property\";\n  SemanticTokenTypes2[\"enumMember\"] = \"enumMember\";\n  SemanticTokenTypes2[\"event\"] = \"event\";\n  SemanticTokenTypes2[\"function\"] = \"function\";\n  SemanticTokenTypes2[\"method\"] = \"method\";\n  SemanticTokenTypes2[\"macro\"] = \"macro\";\n  SemanticTokenTypes2[\"keyword\"] = \"keyword\";\n  SemanticTokenTypes2[\"modifier\"] = \"modifier\";\n  SemanticTokenTypes2[\"comment\"] = \"comment\";\n  SemanticTokenTypes2[\"string\"] = \"string\";\n  SemanticTokenTypes2[\"number\"] = \"number\";\n  SemanticTokenTypes2[\"regexp\"] = \"regexp\";\n  SemanticTokenTypes2[\"operator\"] = \"operator\";\n  SemanticTokenTypes2[\"decorator\"] = \"decorator\";\n})(SemanticTokenTypes || (SemanticTokenTypes = {}));\nvar SemanticTokenModifiers;\n(function(SemanticTokenModifiers2) {\n  SemanticTokenModifiers2[\"declaration\"] = \"declaration\";\n  SemanticTokenModifiers2[\"definition\"] = \"definition\";\n  SemanticTokenModifiers2[\"readonly\"] = \"readonly\";\n  SemanticTokenModifiers2[\"static\"] = \"static\";\n  SemanticTokenModifiers2[\"deprecated\"] = \"deprecated\";\n  SemanticTokenModifiers2[\"abstract\"] = \"abstract\";\n  SemanticTokenModifiers2[\"async\"] = \"async\";\n  SemanticTokenModifiers2[\"modification\"] = \"modification\";\n  SemanticTokenModifiers2[\"documentation\"] = \"documentation\";\n  SemanticTokenModifiers2[\"defaultLibrary\"] = \"defaultLibrary\";\n})(SemanticTokenModifiers || (SemanticTokenModifiers = {}));\nvar SemanticTokens;\n(function(SemanticTokens2) {\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && (candidate.resultId === void 0 || typeof candidate.resultId === \"string\") && Array.isArray(candidate.data) && (candidate.data.length === 0 || typeof candidate.data[0] === \"number\");\n  }\n  SemanticTokens2.is = is;\n})(SemanticTokens || (SemanticTokens = {}));\nvar InlineValueText;\n(function(InlineValueText2) {\n  function create(range, text) {\n    return { range, text };\n  }\n  InlineValueText2.create = create;\n  function is(value) {\n    const candidate = value;\n    return candidate !== void 0 && candidate !== null && Range.is(candidate.range) && Is.string(candidate.text);\n  }\n  InlineValueText2.is = is;\n})(InlineValueText || (InlineValueText = {}));\nvar InlineValueVariableLookup;\n(function(InlineValueVariableLookup2) {\n  function create(range, variableName, caseSensitiveLookup) {\n    return { range, variableName, caseSensitiveLookup };\n  }\n  InlineValueVariableLookup2.create = create;\n  function is(value) {\n    const candidate = value;\n    return candidate !== void 0 && candidate !== null && Range.is(candidate.range) && Is.boolean(candidate.caseSensitiveLookup) && (Is.string(candidate.variableName) || candidate.variableName === void 0);\n  }\n  InlineValueVariableLookup2.is = is;\n})(InlineValueVariableLookup || (InlineValueVariableLookup = {}));\nvar InlineValueEvaluatableExpression;\n(function(InlineValueEvaluatableExpression2) {\n  function create(range, expression) {\n    return { range, expression };\n  }\n  InlineValueEvaluatableExpression2.create = create;\n  function is(value) {\n    const candidate = value;\n    return candidate !== void 0 && candidate !== null && Range.is(candidate.range) && (Is.string(candidate.expression) || candidate.expression === void 0);\n  }\n  InlineValueEvaluatableExpression2.is = is;\n})(InlineValueEvaluatableExpression || (InlineValueEvaluatableExpression = {}));\nvar InlineValueContext;\n(function(InlineValueContext2) {\n  function create(frameId, stoppedLocation) {\n    return { frameId, stoppedLocation };\n  }\n  InlineValueContext2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.defined(candidate) && Range.is(value.stoppedLocation);\n  }\n  InlineValueContext2.is = is;\n})(InlineValueContext || (InlineValueContext = {}));\nvar InlayHintKind;\n(function(InlayHintKind2) {\n  InlayHintKind2.Type = 1;\n  InlayHintKind2.Parameter = 2;\n  function is(value) {\n    return value === 1 || value === 2;\n  }\n  InlayHintKind2.is = is;\n})(InlayHintKind || (InlayHintKind = {}));\nvar InlayHintLabelPart;\n(function(InlayHintLabelPart2) {\n  function create(value) {\n    return { value };\n  }\n  InlayHintLabelPart2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && (candidate.tooltip === void 0 || Is.string(candidate.tooltip) || MarkupContent.is(candidate.tooltip)) && (candidate.location === void 0 || Location.is(candidate.location)) && (candidate.command === void 0 || Command.is(candidate.command));\n  }\n  InlayHintLabelPart2.is = is;\n})(InlayHintLabelPart || (InlayHintLabelPart = {}));\nvar InlayHint;\n(function(InlayHint2) {\n  function create(position, label, kind) {\n    const result = { position, label };\n    if (kind !== void 0) {\n      result.kind = kind;\n    }\n    return result;\n  }\n  InlayHint2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Position.is(candidate.position) && (Is.string(candidate.label) || Is.typedArray(candidate.label, InlayHintLabelPart.is)) && (candidate.kind === void 0 || InlayHintKind.is(candidate.kind)) && candidate.textEdits === void 0 || Is.typedArray(candidate.textEdits, TextEdit.is) && (candidate.tooltip === void 0 || Is.string(candidate.tooltip) || MarkupContent.is(candidate.tooltip)) && (candidate.paddingLeft === void 0 || Is.boolean(candidate.paddingLeft)) && (candidate.paddingRight === void 0 || Is.boolean(candidate.paddingRight));\n  }\n  InlayHint2.is = is;\n})(InlayHint || (InlayHint = {}));\nvar StringValue;\n(function(StringValue2) {\n  function createSnippet(value) {\n    return { kind: \"snippet\", value };\n  }\n  StringValue2.createSnippet = createSnippet;\n})(StringValue || (StringValue = {}));\nvar InlineCompletionItem;\n(function(InlineCompletionItem2) {\n  function create(insertText, filterText, range, command) {\n    return { insertText, filterText, range, command };\n  }\n  InlineCompletionItem2.create = create;\n})(InlineCompletionItem || (InlineCompletionItem = {}));\nvar InlineCompletionList;\n(function(InlineCompletionList2) {\n  function create(items) {\n    return { items };\n  }\n  InlineCompletionList2.create = create;\n})(InlineCompletionList || (InlineCompletionList = {}));\nvar InlineCompletionTriggerKind;\n(function(InlineCompletionTriggerKind2) {\n  InlineCompletionTriggerKind2.Invoked = 0;\n  InlineCompletionTriggerKind2.Automatic = 1;\n})(InlineCompletionTriggerKind || (InlineCompletionTriggerKind = {}));\nvar SelectedCompletionInfo;\n(function(SelectedCompletionInfo2) {\n  function create(range, text) {\n    return { range, text };\n  }\n  SelectedCompletionInfo2.create = create;\n})(SelectedCompletionInfo || (SelectedCompletionInfo = {}));\nvar InlineCompletionContext;\n(function(InlineCompletionContext2) {\n  function create(triggerKind, selectedCompletionInfo) {\n    return { triggerKind, selectedCompletionInfo };\n  }\n  InlineCompletionContext2.create = create;\n})(InlineCompletionContext || (InlineCompletionContext = {}));\nvar WorkspaceFolder;\n(function(WorkspaceFolder2) {\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && URI.is(candidate.uri) && Is.string(candidate.name);\n  }\n  WorkspaceFolder2.is = is;\n})(WorkspaceFolder || (WorkspaceFolder = {}));\nvar TextDocument;\n(function(TextDocument3) {\n  function create(uri, languageId, version, content) {\n    return new FullTextDocument(uri, languageId, version, content);\n  }\n  TextDocument3.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.uri) && (Is.undefined(candidate.languageId) || Is.string(candidate.languageId)) && Is.uinteger(candidate.lineCount) && Is.func(candidate.getText) && Is.func(candidate.positionAt) && Is.func(candidate.offsetAt) ? true : false;\n  }\n  TextDocument3.is = is;\n  function applyEdits(document, edits) {\n    let text = document.getText();\n    let sortedEdits = mergeSort2(edits, (a2, b) => {\n      let diff = a2.range.start.line - b.range.start.line;\n      if (diff === 0) {\n        return a2.range.start.character - b.range.start.character;\n      }\n      return diff;\n    });\n    let lastModifiedOffset = text.length;\n    for (let i = sortedEdits.length - 1; i >= 0; i--) {\n      let e = sortedEdits[i];\n      let startOffset = document.offsetAt(e.range.start);\n      let endOffset = document.offsetAt(e.range.end);\n      if (endOffset <= lastModifiedOffset) {\n        text = text.substring(0, startOffset) + e.newText + text.substring(endOffset, text.length);\n      } else {\n        throw new Error(\"Overlapping edit\");\n      }\n      lastModifiedOffset = startOffset;\n    }\n    return text;\n  }\n  TextDocument3.applyEdits = applyEdits;\n  function mergeSort2(data, compare) {\n    if (data.length <= 1) {\n      return data;\n    }\n    const p = data.length / 2 | 0;\n    const left = data.slice(0, p);\n    const right = data.slice(p);\n    mergeSort2(left, compare);\n    mergeSort2(right, compare);\n    let leftIdx = 0;\n    let rightIdx = 0;\n    let i = 0;\n    while (leftIdx < left.length && rightIdx < right.length) {\n      let ret = compare(left[leftIdx], right[rightIdx]);\n      if (ret <= 0) {\n        data[i++] = left[leftIdx++];\n      } else {\n        data[i++] = right[rightIdx++];\n      }\n    }\n    while (leftIdx < left.length) {\n      data[i++] = left[leftIdx++];\n    }\n    while (rightIdx < right.length) {\n      data[i++] = right[rightIdx++];\n    }\n    return data;\n  }\n})(TextDocument || (TextDocument = {}));\nvar FullTextDocument = class {\n  constructor(uri, languageId, version, content) {\n    this._uri = uri;\n    this._languageId = languageId;\n    this._version = version;\n    this._content = content;\n    this._lineOffsets = void 0;\n  }\n  get uri() {\n    return this._uri;\n  }\n  get languageId() {\n    return this._languageId;\n  }\n  get version() {\n    return this._version;\n  }\n  getText(range) {\n    if (range) {\n      let start = this.offsetAt(range.start);\n      let end = this.offsetAt(range.end);\n      return this._content.substring(start, end);\n    }\n    return this._content;\n  }\n  update(event, version) {\n    this._content = event.text;\n    this._version = version;\n    this._lineOffsets = void 0;\n  }\n  getLineOffsets() {\n    if (this._lineOffsets === void 0) {\n      let lineOffsets = [];\n      let text = this._content;\n      let isLineStart = true;\n      for (let i = 0; i < text.length; i++) {\n        if (isLineStart) {\n          lineOffsets.push(i);\n          isLineStart = false;\n        }\n        let ch = text.charAt(i);\n        isLineStart = ch === \"\\r\" || ch === \"\\n\";\n        if (ch === \"\\r\" && i + 1 < text.length && text.charAt(i + 1) === \"\\n\") {\n          i++;\n        }\n      }\n      if (isLineStart && text.length > 0) {\n        lineOffsets.push(text.length);\n      }\n      this._lineOffsets = lineOffsets;\n    }\n    return this._lineOffsets;\n  }\n  positionAt(offset) {\n    offset = Math.max(Math.min(offset, this._content.length), 0);\n    let lineOffsets = this.getLineOffsets();\n    let low = 0, high = lineOffsets.length;\n    if (high === 0) {\n      return Position.create(0, offset);\n    }\n    while (low < high) {\n      let mid = Math.floor((low + high) / 2);\n      if (lineOffsets[mid] > offset) {\n        high = mid;\n      } else {\n        low = mid + 1;\n      }\n    }\n    let line = low - 1;\n    return Position.create(line, offset - lineOffsets[line]);\n  }\n  offsetAt(position) {\n    let lineOffsets = this.getLineOffsets();\n    if (position.line >= lineOffsets.length) {\n      return this._content.length;\n    } else if (position.line < 0) {\n      return 0;\n    }\n    let lineOffset = lineOffsets[position.line];\n    let nextLineOffset = position.line + 1 < lineOffsets.length ? lineOffsets[position.line + 1] : this._content.length;\n    return Math.max(Math.min(lineOffset + position.character, nextLineOffset), lineOffset);\n  }\n  get lineCount() {\n    return this.getLineOffsets().length;\n  }\n};\nvar Is;\n(function(Is2) {\n  const toString = Object.prototype.toString;\n  function defined(value) {\n    return typeof value !== \"undefined\";\n  }\n  Is2.defined = defined;\n  function undefined2(value) {\n    return typeof value === \"undefined\";\n  }\n  Is2.undefined = undefined2;\n  function boolean(value) {\n    return value === true || value === false;\n  }\n  Is2.boolean = boolean;\n  function string(value) {\n    return toString.call(value) === \"[object String]\";\n  }\n  Is2.string = string;\n  function number(value) {\n    return toString.call(value) === \"[object Number]\";\n  }\n  Is2.number = number;\n  function numberRange(value, min, max) {\n    return toString.call(value) === \"[object Number]\" && min <= value && value <= max;\n  }\n  Is2.numberRange = numberRange;\n  function integer2(value) {\n    return toString.call(value) === \"[object Number]\" && -2147483648 <= value && value <= 2147483647;\n  }\n  Is2.integer = integer2;\n  function uinteger2(value) {\n    return toString.call(value) === \"[object Number]\" && 0 <= value && value <= 2147483647;\n  }\n  Is2.uinteger = uinteger2;\n  function func(value) {\n    return toString.call(value) === \"[object Function]\";\n  }\n  Is2.func = func;\n  function objectLiteral(value) {\n    return value !== null && typeof value === \"object\";\n  }\n  Is2.objectLiteral = objectLiteral;\n  function typedArray(value, check) {\n    return Array.isArray(value) && value.every(check);\n  }\n  Is2.typedArray = typedArray;\n})(Is || (Is = {}));\n\n// node_modules/vscode-languageserver-textdocument/lib/esm/main.js\nvar FullTextDocument2 = class _FullTextDocument {\n  constructor(uri, languageId, version, content) {\n    this._uri = uri;\n    this._languageId = languageId;\n    this._version = version;\n    this._content = content;\n    this._lineOffsets = void 0;\n  }\n  get uri() {\n    return this._uri;\n  }\n  get languageId() {\n    return this._languageId;\n  }\n  get version() {\n    return this._version;\n  }\n  getText(range) {\n    if (range) {\n      const start = this.offsetAt(range.start);\n      const end = this.offsetAt(range.end);\n      return this._content.substring(start, end);\n    }\n    return this._content;\n  }\n  update(changes, version) {\n    for (let change of changes) {\n      if (_FullTextDocument.isIncremental(change)) {\n        const range = getWellformedRange(change.range);\n        const startOffset = this.offsetAt(range.start);\n        const endOffset = this.offsetAt(range.end);\n        this._content = this._content.substring(0, startOffset) + change.text + this._content.substring(endOffset, this._content.length);\n        const startLine = Math.max(range.start.line, 0);\n        const endLine = Math.max(range.end.line, 0);\n        let lineOffsets = this._lineOffsets;\n        const addedLineOffsets = computeLineOffsets(change.text, false, startOffset);\n        if (endLine - startLine === addedLineOffsets.length) {\n          for (let i = 0, len = addedLineOffsets.length; i < len; i++) {\n            lineOffsets[i + startLine + 1] = addedLineOffsets[i];\n          }\n        } else {\n          if (addedLineOffsets.length < 1e4) {\n            lineOffsets.splice(startLine + 1, endLine - startLine, ...addedLineOffsets);\n          } else {\n            this._lineOffsets = lineOffsets = lineOffsets.slice(0, startLine + 1).concat(addedLineOffsets, lineOffsets.slice(endLine + 1));\n          }\n        }\n        const diff = change.text.length - (endOffset - startOffset);\n        if (diff !== 0) {\n          for (let i = startLine + 1 + addedLineOffsets.length, len = lineOffsets.length; i < len; i++) {\n            lineOffsets[i] = lineOffsets[i] + diff;\n          }\n        }\n      } else if (_FullTextDocument.isFull(change)) {\n        this._content = change.text;\n        this._lineOffsets = void 0;\n      } else {\n        throw new Error(\"Unknown change event received\");\n      }\n    }\n    this._version = version;\n  }\n  getLineOffsets() {\n    if (this._lineOffsets === void 0) {\n      this._lineOffsets = computeLineOffsets(this._content, true);\n    }\n    return this._lineOffsets;\n  }\n  positionAt(offset) {\n    offset = Math.max(Math.min(offset, this._content.length), 0);\n    let lineOffsets = this.getLineOffsets();\n    let low = 0, high = lineOffsets.length;\n    if (high === 0) {\n      return { line: 0, character: offset };\n    }\n    while (low < high) {\n      let mid = Math.floor((low + high) / 2);\n      if (lineOffsets[mid] > offset) {\n        high = mid;\n      } else {\n        low = mid + 1;\n      }\n    }\n    let line = low - 1;\n    return { line, character: offset - lineOffsets[line] };\n  }\n  offsetAt(position) {\n    let lineOffsets = this.getLineOffsets();\n    if (position.line >= lineOffsets.length) {\n      return this._content.length;\n    } else if (position.line < 0) {\n      return 0;\n    }\n    let lineOffset = lineOffsets[position.line];\n    let nextLineOffset = position.line + 1 < lineOffsets.length ? lineOffsets[position.line + 1] : this._content.length;\n    return Math.max(Math.min(lineOffset + position.character, nextLineOffset), lineOffset);\n  }\n  get lineCount() {\n    return this.getLineOffsets().length;\n  }\n  static isIncremental(event) {\n    let candidate = event;\n    return candidate !== void 0 && candidate !== null && typeof candidate.text === \"string\" && candidate.range !== void 0 && (candidate.rangeLength === void 0 || typeof candidate.rangeLength === \"number\");\n  }\n  static isFull(event) {\n    let candidate = event;\n    return candidate !== void 0 && candidate !== null && typeof candidate.text === \"string\" && candidate.range === void 0 && candidate.rangeLength === void 0;\n  }\n};\nvar TextDocument2;\n(function(TextDocument3) {\n  function create(uri, languageId, version, content) {\n    return new FullTextDocument2(uri, languageId, version, content);\n  }\n  TextDocument3.create = create;\n  function update(document, changes, version) {\n    if (document instanceof FullTextDocument2) {\n      document.update(changes, version);\n      return document;\n    } else {\n      throw new Error(\"TextDocument.update: document must be created by TextDocument.create\");\n    }\n  }\n  TextDocument3.update = update;\n  function applyEdits(document, edits) {\n    let text = document.getText();\n    let sortedEdits = mergeSort(edits.map(getWellformedEdit), (a2, b) => {\n      let diff = a2.range.start.line - b.range.start.line;\n      if (diff === 0) {\n        return a2.range.start.character - b.range.start.character;\n      }\n      return diff;\n    });\n    let lastModifiedOffset = 0;\n    const spans = [];\n    for (const e of sortedEdits) {\n      let startOffset = document.offsetAt(e.range.start);\n      if (startOffset < lastModifiedOffset) {\n        throw new Error(\"Overlapping edit\");\n      } else if (startOffset > lastModifiedOffset) {\n        spans.push(text.substring(lastModifiedOffset, startOffset));\n      }\n      if (e.newText.length) {\n        spans.push(e.newText);\n      }\n      lastModifiedOffset = document.offsetAt(e.range.end);\n    }\n    spans.push(text.substr(lastModifiedOffset));\n    return spans.join(\"\");\n  }\n  TextDocument3.applyEdits = applyEdits;\n})(TextDocument2 || (TextDocument2 = {}));\nfunction mergeSort(data, compare) {\n  if (data.length <= 1) {\n    return data;\n  }\n  const p = data.length / 2 | 0;\n  const left = data.slice(0, p);\n  const right = data.slice(p);\n  mergeSort(left, compare);\n  mergeSort(right, compare);\n  let leftIdx = 0;\n  let rightIdx = 0;\n  let i = 0;\n  while (leftIdx < left.length && rightIdx < right.length) {\n    let ret = compare(left[leftIdx], right[rightIdx]);\n    if (ret <= 0) {\n      data[i++] = left[leftIdx++];\n    } else {\n      data[i++] = right[rightIdx++];\n    }\n  }\n  while (leftIdx < left.length) {\n    data[i++] = left[leftIdx++];\n  }\n  while (rightIdx < right.length) {\n    data[i++] = right[rightIdx++];\n  }\n  return data;\n}\nfunction computeLineOffsets(text, isAtLineStart, textOffset = 0) {\n  const result = isAtLineStart ? [textOffset] : [];\n  for (let i = 0; i < text.length; i++) {\n    let ch = text.charCodeAt(i);\n    if (ch === 13 || ch === 10) {\n      if (ch === 13 && i + 1 < text.length && text.charCodeAt(i + 1) === 10) {\n        i++;\n      }\n      result.push(textOffset + i + 1);\n    }\n  }\n  return result;\n}\nfunction getWellformedRange(range) {\n  const start = range.start;\n  const end = range.end;\n  if (start.line > end.line || start.line === end.line && start.character > end.character) {\n    return { start: end, end: start };\n  }\n  return range;\n}\nfunction getWellformedEdit(textEdit) {\n  const range = getWellformedRange(textEdit.range);\n  if (range !== textEdit.range) {\n    return { newText: textEdit.newText, range };\n  }\n  return textEdit;\n}\n\n// node_modules/vscode-json-languageservice/lib/esm/jsonLanguageTypes.js\nvar ErrorCode;\n(function(ErrorCode2) {\n  ErrorCode2[ErrorCode2[\"Undefined\"] = 0] = \"Undefined\";\n  ErrorCode2[ErrorCode2[\"EnumValueMismatch\"] = 1] = \"EnumValueMismatch\";\n  ErrorCode2[ErrorCode2[\"Deprecated\"] = 2] = \"Deprecated\";\n  ErrorCode2[ErrorCode2[\"UnexpectedEndOfComment\"] = 257] = \"UnexpectedEndOfComment\";\n  ErrorCode2[ErrorCode2[\"UnexpectedEndOfString\"] = 258] = \"UnexpectedEndOfString\";\n  ErrorCode2[ErrorCode2[\"UnexpectedEndOfNumber\"] = 259] = \"UnexpectedEndOfNumber\";\n  ErrorCode2[ErrorCode2[\"InvalidUnicode\"] = 260] = \"InvalidUnicode\";\n  ErrorCode2[ErrorCode2[\"InvalidEscapeCharacter\"] = 261] = \"InvalidEscapeCharacter\";\n  ErrorCode2[ErrorCode2[\"InvalidCharacter\"] = 262] = \"InvalidCharacter\";\n  ErrorCode2[ErrorCode2[\"PropertyExpected\"] = 513] = \"PropertyExpected\";\n  ErrorCode2[ErrorCode2[\"CommaExpected\"] = 514] = \"CommaExpected\";\n  ErrorCode2[ErrorCode2[\"ColonExpected\"] = 515] = \"ColonExpected\";\n  ErrorCode2[ErrorCode2[\"ValueExpected\"] = 516] = \"ValueExpected\";\n  ErrorCode2[ErrorCode2[\"CommaOrCloseBacketExpected\"] = 517] = \"CommaOrCloseBacketExpected\";\n  ErrorCode2[ErrorCode2[\"CommaOrCloseBraceExpected\"] = 518] = \"CommaOrCloseBraceExpected\";\n  ErrorCode2[ErrorCode2[\"TrailingComma\"] = 519] = \"TrailingComma\";\n  ErrorCode2[ErrorCode2[\"DuplicateKey\"] = 520] = \"DuplicateKey\";\n  ErrorCode2[ErrorCode2[\"CommentNotPermitted\"] = 521] = \"CommentNotPermitted\";\n  ErrorCode2[ErrorCode2[\"PropertyKeysMustBeDoublequoted\"] = 528] = \"PropertyKeysMustBeDoublequoted\";\n  ErrorCode2[ErrorCode2[\"SchemaResolveError\"] = 768] = \"SchemaResolveError\";\n  ErrorCode2[ErrorCode2[\"SchemaUnsupportedFeature\"] = 769] = \"SchemaUnsupportedFeature\";\n})(ErrorCode || (ErrorCode = {}));\nvar SchemaDraft;\n(function(SchemaDraft2) {\n  SchemaDraft2[SchemaDraft2[\"v3\"] = 3] = \"v3\";\n  SchemaDraft2[SchemaDraft2[\"v4\"] = 4] = \"v4\";\n  SchemaDraft2[SchemaDraft2[\"v6\"] = 6] = \"v6\";\n  SchemaDraft2[SchemaDraft2[\"v7\"] = 7] = \"v7\";\n  SchemaDraft2[SchemaDraft2[\"v2019_09\"] = 19] = \"v2019_09\";\n  SchemaDraft2[SchemaDraft2[\"v2020_12\"] = 20] = \"v2020_12\";\n})(SchemaDraft || (SchemaDraft = {}));\nvar ClientCapabilities;\n(function(ClientCapabilities2) {\n  ClientCapabilities2.LATEST = {\n    textDocument: {\n      completion: {\n        completionItem: {\n          documentationFormat: [MarkupKind.Markdown, MarkupKind.PlainText],\n          commitCharactersSupport: true,\n          labelDetailsSupport: true\n        }\n      }\n    }\n  };\n})(ClientCapabilities || (ClientCapabilities = {}));\n\n// node_modules/@vscode/l10n/dist/browser.js\nvar bundle;\nfunction t(...args) {\n  const firstArg = args[0];\n  let key;\n  let message;\n  let formatArgs;\n  if (typeof firstArg === \"string\") {\n    key = firstArg;\n    message = firstArg;\n    args.splice(0, 1);\n    formatArgs = !args || typeof args[0] !== \"object\" ? args : args[0];\n  } else if (firstArg instanceof Array) {\n    const replacements = args.slice(1);\n    if (firstArg.length !== replacements.length + 1) {\n      throw new Error(\"expected a string as the first argument to l10n.t\");\n    }\n    let str = firstArg[0];\n    for (let i = 1; i < firstArg.length; i++) {\n      str += `{${i - 1}}` + firstArg[i];\n    }\n    return t(str, ...replacements);\n  } else {\n    message = firstArg.message;\n    key = message;\n    if (firstArg.comment && firstArg.comment.length > 0) {\n      key += `/${Array.isArray(firstArg.comment) ? firstArg.comment.join(\"\") : firstArg.comment}`;\n    }\n    formatArgs = firstArg.args ?? {};\n  }\n  const messageFromBundle = bundle?.[key];\n  if (!messageFromBundle) {\n    return format3(message, formatArgs);\n  }\n  if (typeof messageFromBundle === \"string\") {\n    return format3(messageFromBundle, formatArgs);\n  }\n  if (messageFromBundle.comment) {\n    return format3(messageFromBundle.message, formatArgs);\n  }\n  return format3(message, formatArgs);\n}\nvar _format2Regexp = /{([^}]+)}/g;\nfunction format3(template, values) {\n  if (Object.keys(values).length === 0) {\n    return template;\n  }\n  return template.replace(_format2Regexp, (match, group) => values[group] ?? match);\n}\n\n// node_modules/vscode-json-languageservice/lib/esm/parser/jsonParser.js\nvar formats = {\n  \"color-hex\": { errorMessage: t(\"Invalid color format. Use #RGB, #RGBA, #RRGGBB or #RRGGBBAA.\"), pattern: /^#([0-9A-Fa-f]{3,4}|([0-9A-Fa-f]{2}){3,4})$/ },\n  \"date-time\": { errorMessage: t(\"String is not a RFC3339 date-time.\"), pattern: /^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$/i },\n  \"date\": { errorMessage: t(\"String is not a RFC3339 date.\"), pattern: /^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/i },\n  \"time\": { errorMessage: t(\"String is not a RFC3339 time.\"), pattern: /^([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$/i },\n  \"email\": { errorMessage: t(\"String is not an e-mail address.\"), pattern: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,}))$/ },\n  \"hostname\": { errorMessage: t(\"String is not a hostname.\"), pattern: /^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i },\n  \"ipv4\": { errorMessage: t(\"String is not an IPv4 address.\"), pattern: /^(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)$/ },\n  \"ipv6\": { errorMessage: t(\"String is not an IPv6 address.\"), pattern: /^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))$/i }\n};\nvar ASTNodeImpl = class {\n  constructor(parent, offset, length = 0) {\n    this.offset = offset;\n    this.length = length;\n    this.parent = parent;\n  }\n  get children() {\n    return [];\n  }\n  toString() {\n    return \"type: \" + this.type + \" (\" + this.offset + \"/\" + this.length + \")\" + (this.parent ? \" parent: {\" + this.parent.toString() + \"}\" : \"\");\n  }\n};\nvar NullASTNodeImpl = class extends ASTNodeImpl {\n  constructor(parent, offset) {\n    super(parent, offset);\n    this.type = \"null\";\n    this.value = null;\n  }\n};\nvar BooleanASTNodeImpl = class extends ASTNodeImpl {\n  constructor(parent, boolValue, offset) {\n    super(parent, offset);\n    this.type = \"boolean\";\n    this.value = boolValue;\n  }\n};\nvar ArrayASTNodeImpl = class extends ASTNodeImpl {\n  constructor(parent, offset) {\n    super(parent, offset);\n    this.type = \"array\";\n    this.items = [];\n  }\n  get children() {\n    return this.items;\n  }\n};\nvar NumberASTNodeImpl = class extends ASTNodeImpl {\n  constructor(parent, offset) {\n    super(parent, offset);\n    this.type = \"number\";\n    this.isInteger = true;\n    this.value = Number.NaN;\n  }\n};\nvar StringASTNodeImpl = class extends ASTNodeImpl {\n  constructor(parent, offset, length) {\n    super(parent, offset, length);\n    this.type = \"string\";\n    this.value = \"\";\n  }\n};\nvar PropertyASTNodeImpl = class extends ASTNodeImpl {\n  constructor(parent, offset, keyNode) {\n    super(parent, offset);\n    this.type = \"property\";\n    this.colonOffset = -1;\n    this.keyNode = keyNode;\n  }\n  get children() {\n    return this.valueNode ? [this.keyNode, this.valueNode] : [this.keyNode];\n  }\n};\nvar ObjectASTNodeImpl = class extends ASTNodeImpl {\n  constructor(parent, offset) {\n    super(parent, offset);\n    this.type = \"object\";\n    this.properties = [];\n  }\n  get children() {\n    return this.properties;\n  }\n};\nfunction asSchema(schema) {\n  if (isBoolean(schema)) {\n    return schema ? {} : { \"not\": {} };\n  }\n  return schema;\n}\nvar EnumMatch;\n(function(EnumMatch2) {\n  EnumMatch2[EnumMatch2[\"Key\"] = 0] = \"Key\";\n  EnumMatch2[EnumMatch2[\"Enum\"] = 1] = \"Enum\";\n})(EnumMatch || (EnumMatch = {}));\nvar schemaDraftFromId = {\n  \"http://json-schema.org/draft-03/schema#\": SchemaDraft.v3,\n  \"http://json-schema.org/draft-04/schema#\": SchemaDraft.v4,\n  \"http://json-schema.org/draft-06/schema#\": SchemaDraft.v6,\n  \"http://json-schema.org/draft-07/schema#\": SchemaDraft.v7,\n  \"https://json-schema.org/draft/2019-09/schema\": SchemaDraft.v2019_09,\n  \"https://json-schema.org/draft/2020-12/schema\": SchemaDraft.v2020_12\n};\nvar EvaluationContext = class {\n  constructor(schemaDraft) {\n    this.schemaDraft = schemaDraft;\n  }\n};\nvar SchemaCollector = class _SchemaCollector {\n  constructor(focusOffset = -1, exclude) {\n    this.focusOffset = focusOffset;\n    this.exclude = exclude;\n    this.schemas = [];\n  }\n  add(schema) {\n    this.schemas.push(schema);\n  }\n  merge(other) {\n    Array.prototype.push.apply(this.schemas, other.schemas);\n  }\n  include(node) {\n    return (this.focusOffset === -1 || contains2(node, this.focusOffset)) && node !== this.exclude;\n  }\n  newSub() {\n    return new _SchemaCollector(-1, this.exclude);\n  }\n};\nvar NoOpSchemaCollector = class {\n  constructor() {\n  }\n  get schemas() {\n    return [];\n  }\n  add(_schema) {\n  }\n  merge(_other) {\n  }\n  include(_node) {\n    return true;\n  }\n  newSub() {\n    return this;\n  }\n};\nNoOpSchemaCollector.instance = new NoOpSchemaCollector();\nvar ValidationResult = class {\n  constructor() {\n    this.problems = [];\n    this.propertiesMatches = 0;\n    this.processedProperties = /* @__PURE__ */ new Set();\n    this.propertiesValueMatches = 0;\n    this.primaryValueMatches = 0;\n    this.enumValueMatch = false;\n    this.enumValues = void 0;\n  }\n  hasProblems() {\n    return !!this.problems.length;\n  }\n  merge(validationResult) {\n    this.problems = this.problems.concat(validationResult.problems);\n    this.propertiesMatches += validationResult.propertiesMatches;\n    this.propertiesValueMatches += validationResult.propertiesValueMatches;\n    this.mergeProcessedProperties(validationResult);\n  }\n  mergeEnumValues(validationResult) {\n    if (!this.enumValueMatch && !validationResult.enumValueMatch && this.enumValues && validationResult.enumValues) {\n      this.enumValues = this.enumValues.concat(validationResult.enumValues);\n      for (const error of this.problems) {\n        if (error.code === ErrorCode.EnumValueMismatch) {\n          error.message = t(\"Value is not accepted. Valid values: {0}.\", this.enumValues.map((v) => JSON.stringify(v)).join(\", \"));\n        }\n      }\n    }\n  }\n  mergePropertyMatch(propertyValidationResult) {\n    this.problems = this.problems.concat(propertyValidationResult.problems);\n    this.propertiesMatches++;\n    if (propertyValidationResult.enumValueMatch || !propertyValidationResult.hasProblems() && propertyValidationResult.propertiesMatches) {\n      this.propertiesValueMatches++;\n    }\n    if (propertyValidationResult.enumValueMatch && propertyValidationResult.enumValues && propertyValidationResult.enumValues.length === 1) {\n      this.primaryValueMatches++;\n    }\n  }\n  mergeProcessedProperties(validationResult) {\n    validationResult.processedProperties.forEach((p) => this.processedProperties.add(p));\n  }\n  compare(other) {\n    const hasProblems = this.hasProblems();\n    if (hasProblems !== other.hasProblems()) {\n      return hasProblems ? -1 : 1;\n    }\n    if (this.enumValueMatch !== other.enumValueMatch) {\n      return other.enumValueMatch ? -1 : 1;\n    }\n    if (this.primaryValueMatches !== other.primaryValueMatches) {\n      return this.primaryValueMatches - other.primaryValueMatches;\n    }\n    if (this.propertiesValueMatches !== other.propertiesValueMatches) {\n      return this.propertiesValueMatches - other.propertiesValueMatches;\n    }\n    return this.propertiesMatches - other.propertiesMatches;\n  }\n};\nfunction newJSONDocument(root, diagnostics = []) {\n  return new JSONDocument(root, diagnostics, []);\n}\nfunction getNodeValue3(node) {\n  return getNodeValue2(node);\n}\nfunction getNodePath3(node) {\n  return getNodePath2(node);\n}\nfunction contains2(node, offset, includeRightBound = false) {\n  return offset >= node.offset && offset < node.offset + node.length || includeRightBound && offset === node.offset + node.length;\n}\nvar JSONDocument = class {\n  constructor(root, syntaxErrors = [], comments = []) {\n    this.root = root;\n    this.syntaxErrors = syntaxErrors;\n    this.comments = comments;\n  }\n  getNodeFromOffset(offset, includeRightBound = false) {\n    if (this.root) {\n      return findNodeAtOffset2(this.root, offset, includeRightBound);\n    }\n    return void 0;\n  }\n  visit(visitor) {\n    if (this.root) {\n      const doVisit = (node) => {\n        let ctn = visitor(node);\n        const children = node.children;\n        if (Array.isArray(children)) {\n          for (let i = 0; i < children.length && ctn; i++) {\n            ctn = doVisit(children[i]);\n          }\n        }\n        return ctn;\n      };\n      doVisit(this.root);\n    }\n  }\n  validate(textDocument, schema, severity = DiagnosticSeverity.Warning, schemaDraft) {\n    if (this.root && schema) {\n      const validationResult = new ValidationResult();\n      validate(this.root, schema, validationResult, NoOpSchemaCollector.instance, new EvaluationContext(schemaDraft ?? getSchemaDraft(schema)));\n      return validationResult.problems.map((p) => {\n        const range = Range.create(textDocument.positionAt(p.location.offset), textDocument.positionAt(p.location.offset + p.location.length));\n        return Diagnostic.create(range, p.message, p.severity ?? severity, p.code);\n      });\n    }\n    return void 0;\n  }\n  getMatchingSchemas(schema, focusOffset = -1, exclude) {\n    if (this.root && schema) {\n      const matchingSchemas = new SchemaCollector(focusOffset, exclude);\n      const schemaDraft = getSchemaDraft(schema);\n      const context = new EvaluationContext(schemaDraft);\n      validate(this.root, schema, new ValidationResult(), matchingSchemas, context);\n      return matchingSchemas.schemas;\n    }\n    return [];\n  }\n};\nfunction getSchemaDraft(schema, fallBack = SchemaDraft.v2020_12) {\n  let schemaId = schema.$schema;\n  if (schemaId) {\n    return schemaDraftFromId[schemaId] ?? fallBack;\n  }\n  return fallBack;\n}\nfunction validate(n, schema, validationResult, matchingSchemas, context) {\n  if (!n || !matchingSchemas.include(n)) {\n    return;\n  }\n  if (n.type === \"property\") {\n    return validate(n.valueNode, schema, validationResult, matchingSchemas, context);\n  }\n  const node = n;\n  _validateNode();\n  switch (node.type) {\n    case \"object\":\n      _validateObjectNode(node);\n      break;\n    case \"array\":\n      _validateArrayNode(node);\n      break;\n    case \"string\":\n      _validateStringNode(node);\n      break;\n    case \"number\":\n      _validateNumberNode(node);\n      break;\n  }\n  matchingSchemas.add({ node, schema });\n  function _validateNode() {\n    function matchesType(type) {\n      return node.type === type || type === \"integer\" && node.type === \"number\" && node.isInteger;\n    }\n    if (Array.isArray(schema.type)) {\n      if (!schema.type.some(matchesType)) {\n        validationResult.problems.push({\n          location: { offset: node.offset, length: node.length },\n          message: schema.errorMessage || t(\"Incorrect type. Expected one of {0}.\", schema.type.join(\", \"))\n        });\n      }\n    } else if (schema.type) {\n      if (!matchesType(schema.type)) {\n        validationResult.problems.push({\n          location: { offset: node.offset, length: node.length },\n          message: schema.errorMessage || t('Incorrect type. Expected \"{0}\".', schema.type)\n        });\n      }\n    }\n    if (Array.isArray(schema.allOf)) {\n      for (const subSchemaRef of schema.allOf) {\n        const subValidationResult = new ValidationResult();\n        const subMatchingSchemas = matchingSchemas.newSub();\n        validate(node, asSchema(subSchemaRef), subValidationResult, subMatchingSchemas, context);\n        validationResult.merge(subValidationResult);\n        matchingSchemas.merge(subMatchingSchemas);\n      }\n    }\n    const notSchema = asSchema(schema.not);\n    if (notSchema) {\n      const subValidationResult = new ValidationResult();\n      const subMatchingSchemas = matchingSchemas.newSub();\n      validate(node, notSchema, subValidationResult, subMatchingSchemas, context);\n      if (!subValidationResult.hasProblems()) {\n        validationResult.problems.push({\n          location: { offset: node.offset, length: node.length },\n          message: schema.errorMessage || t(\"Matches a schema that is not allowed.\")\n        });\n      }\n      for (const ms of subMatchingSchemas.schemas) {\n        ms.inverted = !ms.inverted;\n        matchingSchemas.add(ms);\n      }\n    }\n    const testAlternatives = (alternatives, maxOneMatch) => {\n      const matches = [];\n      let bestMatch = void 0;\n      for (const subSchemaRef of alternatives) {\n        const subSchema = asSchema(subSchemaRef);\n        const subValidationResult = new ValidationResult();\n        const subMatchingSchemas = matchingSchemas.newSub();\n        validate(node, subSchema, subValidationResult, subMatchingSchemas, context);\n        if (!subValidationResult.hasProblems()) {\n          matches.push(subSchema);\n        }\n        if (!bestMatch) {\n          bestMatch = { schema: subSchema, validationResult: subValidationResult, matchingSchemas: subMatchingSchemas };\n        } else {\n          if (!maxOneMatch && !subValidationResult.hasProblems() && !bestMatch.validationResult.hasProblems()) {\n            bestMatch.matchingSchemas.merge(subMatchingSchemas);\n            bestMatch.validationResult.propertiesMatches += subValidationResult.propertiesMatches;\n            bestMatch.validationResult.propertiesValueMatches += subValidationResult.propertiesValueMatches;\n            bestMatch.validationResult.mergeProcessedProperties(subValidationResult);\n          } else {\n            const compareResult = subValidationResult.compare(bestMatch.validationResult);\n            if (compareResult > 0) {\n              bestMatch = { schema: subSchema, validationResult: subValidationResult, matchingSchemas: subMatchingSchemas };\n            } else if (compareResult === 0) {\n              bestMatch.matchingSchemas.merge(subMatchingSchemas);\n              bestMatch.validationResult.mergeEnumValues(subValidationResult);\n            }\n          }\n        }\n      }\n      if (matches.length > 1 && maxOneMatch) {\n        validationResult.problems.push({\n          location: { offset: node.offset, length: 1 },\n          message: t(\"Matches multiple schemas when only one must validate.\")\n        });\n      }\n      if (bestMatch) {\n        validationResult.merge(bestMatch.validationResult);\n        matchingSchemas.merge(bestMatch.matchingSchemas);\n      }\n      return matches.length;\n    };\n    if (Array.isArray(schema.anyOf)) {\n      testAlternatives(schema.anyOf, false);\n    }\n    if (Array.isArray(schema.oneOf)) {\n      testAlternatives(schema.oneOf, true);\n    }\n    const testBranch = (schema2) => {\n      const subValidationResult = new ValidationResult();\n      const subMatchingSchemas = matchingSchemas.newSub();\n      validate(node, asSchema(schema2), subValidationResult, subMatchingSchemas, context);\n      validationResult.merge(subValidationResult);\n      matchingSchemas.merge(subMatchingSchemas);\n    };\n    const testCondition = (ifSchema2, thenSchema, elseSchema) => {\n      const subSchema = asSchema(ifSchema2);\n      const subValidationResult = new ValidationResult();\n      const subMatchingSchemas = matchingSchemas.newSub();\n      validate(node, subSchema, subValidationResult, subMatchingSchemas, context);\n      matchingSchemas.merge(subMatchingSchemas);\n      validationResult.mergeProcessedProperties(subValidationResult);\n      if (!subValidationResult.hasProblems()) {\n        if (thenSchema) {\n          testBranch(thenSchema);\n        }\n      } else if (elseSchema) {\n        testBranch(elseSchema);\n      }\n    };\n    const ifSchema = asSchema(schema.if);\n    if (ifSchema) {\n      testCondition(ifSchema, asSchema(schema.then), asSchema(schema.else));\n    }\n    if (Array.isArray(schema.enum)) {\n      const val = getNodeValue3(node);\n      let enumValueMatch = false;\n      for (const e of schema.enum) {\n        if (equals(val, e)) {\n          enumValueMatch = true;\n          break;\n        }\n      }\n      validationResult.enumValues = schema.enum;\n      validationResult.enumValueMatch = enumValueMatch;\n      if (!enumValueMatch) {\n        validationResult.problems.push({\n          location: { offset: node.offset, length: node.length },\n          code: ErrorCode.EnumValueMismatch,\n          message: schema.errorMessage || t(\"Value is not accepted. Valid values: {0}.\", schema.enum.map((v) => JSON.stringify(v)).join(\", \"))\n        });\n      }\n    }\n    if (isDefined(schema.const)) {\n      const val = getNodeValue3(node);\n      if (!equals(val, schema.const)) {\n        validationResult.problems.push({\n          location: { offset: node.offset, length: node.length },\n          code: ErrorCode.EnumValueMismatch,\n          message: schema.errorMessage || t(\"Value must be {0}.\", JSON.stringify(schema.const))\n        });\n        validationResult.enumValueMatch = false;\n      } else {\n        validationResult.enumValueMatch = true;\n      }\n      validationResult.enumValues = [schema.const];\n    }\n    let deprecationMessage = schema.deprecationMessage;\n    if (deprecationMessage || schema.deprecated) {\n      deprecationMessage = deprecationMessage || t(\"Value is deprecated\");\n      let targetNode = node.parent?.type === \"property\" ? node.parent : node;\n      validationResult.problems.push({\n        location: { offset: targetNode.offset, length: targetNode.length },\n        severity: DiagnosticSeverity.Warning,\n        message: deprecationMessage,\n        code: ErrorCode.Deprecated\n      });\n    }\n  }\n  function _validateNumberNode(node2) {\n    const val = node2.value;\n    function normalizeFloats(float) {\n      const parts = /^(-?\\d+)(?:\\.(\\d+))?(?:e([-+]\\d+))?$/.exec(float.toString());\n      return parts && {\n        value: Number(parts[1] + (parts[2] || \"\")),\n        multiplier: (parts[2]?.length || 0) - (parseInt(parts[3]) || 0)\n      };\n    }\n    ;\n    if (isNumber(schema.multipleOf)) {\n      let remainder = -1;\n      if (Number.isInteger(schema.multipleOf)) {\n        remainder = val % schema.multipleOf;\n      } else {\n        let normMultipleOf = normalizeFloats(schema.multipleOf);\n        let normValue = normalizeFloats(val);\n        if (normMultipleOf && normValue) {\n          const multiplier = 10 ** Math.abs(normValue.multiplier - normMultipleOf.multiplier);\n          if (normValue.multiplier < normMultipleOf.multiplier) {\n            normValue.value *= multiplier;\n          } else {\n            normMultipleOf.value *= multiplier;\n          }\n          remainder = normValue.value % normMultipleOf.value;\n        }\n      }\n      if (remainder !== 0) {\n        validationResult.problems.push({\n          location: { offset: node2.offset, length: node2.length },\n          message: t(\"Value is not divisible by {0}.\", schema.multipleOf)\n        });\n      }\n    }\n    function getExclusiveLimit(limit, exclusive) {\n      if (isNumber(exclusive)) {\n        return exclusive;\n      }\n      if (isBoolean(exclusive) && exclusive) {\n        return limit;\n      }\n      return void 0;\n    }\n    function getLimit(limit, exclusive) {\n      if (!isBoolean(exclusive) || !exclusive) {\n        return limit;\n      }\n      return void 0;\n    }\n    const exclusiveMinimum = getExclusiveLimit(schema.minimum, schema.exclusiveMinimum);\n    if (isNumber(exclusiveMinimum) && val <= exclusiveMinimum) {\n      validationResult.problems.push({\n        location: { offset: node2.offset, length: node2.length },\n        message: t(\"Value is below the exclusive minimum of {0}.\", exclusiveMinimum)\n      });\n    }\n    const exclusiveMaximum = getExclusiveLimit(schema.maximum, schema.exclusiveMaximum);\n    if (isNumber(exclusiveMaximum) && val >= exclusiveMaximum) {\n      validationResult.problems.push({\n        location: { offset: node2.offset, length: node2.length },\n        message: t(\"Value is above the exclusive maximum of {0}.\", exclusiveMaximum)\n      });\n    }\n    const minimum = getLimit(schema.minimum, schema.exclusiveMinimum);\n    if (isNumber(minimum) && val < minimum) {\n      validationResult.problems.push({\n        location: { offset: node2.offset, length: node2.length },\n        message: t(\"Value is below the minimum of {0}.\", minimum)\n      });\n    }\n    const maximum = getLimit(schema.maximum, schema.exclusiveMaximum);\n    if (isNumber(maximum) && val > maximum) {\n      validationResult.problems.push({\n        location: { offset: node2.offset, length: node2.length },\n        message: t(\"Value is above the maximum of {0}.\", maximum)\n      });\n    }\n  }\n  function _validateStringNode(node2) {\n    if (isNumber(schema.minLength) && stringLength(node2.value) < schema.minLength) {\n      validationResult.problems.push({\n        location: { offset: node2.offset, length: node2.length },\n        message: t(\"String is shorter than the minimum length of {0}.\", schema.minLength)\n      });\n    }\n    if (isNumber(schema.maxLength) && stringLength(node2.value) > schema.maxLength) {\n      validationResult.problems.push({\n        location: { offset: node2.offset, length: node2.length },\n        message: t(\"String is longer than the maximum length of {0}.\", schema.maxLength)\n      });\n    }\n    if (isString(schema.pattern)) {\n      const regex = extendedRegExp(schema.pattern);\n      if (!regex?.test(node2.value)) {\n        validationResult.problems.push({\n          location: { offset: node2.offset, length: node2.length },\n          message: schema.patternErrorMessage || schema.errorMessage || t('String does not match the pattern of \"{0}\".', schema.pattern)\n        });\n      }\n    }\n    if (schema.format) {\n      switch (schema.format) {\n        case \"uri\":\n        case \"uri-reference\":\n          {\n            let errorMessage;\n            if (!node2.value) {\n              errorMessage = t(\"URI expected.\");\n            } else {\n              const match = /^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/.exec(node2.value);\n              if (!match) {\n                errorMessage = t(\"URI is expected.\");\n              } else if (!match[2] && schema.format === \"uri\") {\n                errorMessage = t(\"URI with a scheme is expected.\");\n              }\n            }\n            if (errorMessage) {\n              validationResult.problems.push({\n                location: { offset: node2.offset, length: node2.length },\n                message: schema.patternErrorMessage || schema.errorMessage || t(\"String is not a URI: {0}\", errorMessage)\n              });\n            }\n          }\n          break;\n        case \"color-hex\":\n        case \"date-time\":\n        case \"date\":\n        case \"time\":\n        case \"email\":\n        case \"hostname\":\n        case \"ipv4\":\n        case \"ipv6\":\n          const format5 = formats[schema.format];\n          if (!node2.value || !format5.pattern.exec(node2.value)) {\n            validationResult.problems.push({\n              location: { offset: node2.offset, length: node2.length },\n              message: schema.patternErrorMessage || schema.errorMessage || format5.errorMessage\n            });\n          }\n        default:\n      }\n    }\n  }\n  function _validateArrayNode(node2) {\n    let prefixItemsSchemas;\n    let additionalItemSchema;\n    if (context.schemaDraft >= SchemaDraft.v2020_12) {\n      prefixItemsSchemas = schema.prefixItems;\n      additionalItemSchema = !Array.isArray(schema.items) ? schema.items : void 0;\n    } else {\n      prefixItemsSchemas = Array.isArray(schema.items) ? schema.items : void 0;\n      additionalItemSchema = !Array.isArray(schema.items) ? schema.items : schema.additionalItems;\n    }\n    let index = 0;\n    if (prefixItemsSchemas !== void 0) {\n      const max = Math.min(prefixItemsSchemas.length, node2.items.length);\n      for (; index < max; index++) {\n        const subSchemaRef = prefixItemsSchemas[index];\n        const subSchema = asSchema(subSchemaRef);\n        const itemValidationResult = new ValidationResult();\n        const item = node2.items[index];\n        if (item) {\n          validate(item, subSchema, itemValidationResult, matchingSchemas, context);\n          validationResult.mergePropertyMatch(itemValidationResult);\n        }\n        validationResult.processedProperties.add(String(index));\n      }\n    }\n    if (additionalItemSchema !== void 0 && index < node2.items.length) {\n      if (typeof additionalItemSchema === \"boolean\") {\n        if (additionalItemSchema === false) {\n          validationResult.problems.push({\n            location: { offset: node2.offset, length: node2.length },\n            message: t(\"Array has too many items according to schema. Expected {0} or fewer.\", index)\n          });\n        }\n        for (; index < node2.items.length; index++) {\n          validationResult.processedProperties.add(String(index));\n          validationResult.propertiesValueMatches++;\n        }\n      } else {\n        for (; index < node2.items.length; index++) {\n          const itemValidationResult = new ValidationResult();\n          validate(node2.items[index], additionalItemSchema, itemValidationResult, matchingSchemas, context);\n          validationResult.mergePropertyMatch(itemValidationResult);\n          validationResult.processedProperties.add(String(index));\n        }\n      }\n    }\n    const containsSchema = asSchema(schema.contains);\n    if (containsSchema) {\n      let containsCount = 0;\n      for (let index2 = 0; index2 < node2.items.length; index2++) {\n        const item = node2.items[index2];\n        const itemValidationResult = new ValidationResult();\n        validate(item, containsSchema, itemValidationResult, NoOpSchemaCollector.instance, context);\n        if (!itemValidationResult.hasProblems()) {\n          containsCount++;\n          if (context.schemaDraft >= SchemaDraft.v2020_12) {\n            validationResult.processedProperties.add(String(index2));\n          }\n        }\n      }\n      if (containsCount === 0 && !isNumber(schema.minContains)) {\n        validationResult.problems.push({\n          location: { offset: node2.offset, length: node2.length },\n          message: schema.errorMessage || t(\"Array does not contain required item.\")\n        });\n      }\n      if (isNumber(schema.minContains) && containsCount < schema.minContains) {\n        validationResult.problems.push({\n          location: { offset: node2.offset, length: node2.length },\n          message: schema.errorMessage || t(\"Array has too few items that match the contains contraint. Expected {0} or more.\", schema.minContains)\n        });\n      }\n      if (isNumber(schema.maxContains) && containsCount > schema.maxContains) {\n        validationResult.problems.push({\n          location: { offset: node2.offset, length: node2.length },\n          message: schema.errorMessage || t(\"Array has too many items that match the contains contraint. Expected {0} or less.\", schema.maxContains)\n        });\n      }\n    }\n    const unevaluatedItems = schema.unevaluatedItems;\n    if (unevaluatedItems !== void 0) {\n      for (let i = 0; i < node2.items.length; i++) {\n        if (!validationResult.processedProperties.has(String(i))) {\n          if (unevaluatedItems === false) {\n            validationResult.problems.push({\n              location: { offset: node2.offset, length: node2.length },\n              message: t(\"Item does not match any validation rule from the array.\")\n            });\n          } else {\n            const itemValidationResult = new ValidationResult();\n            validate(node2.items[i], schema.unevaluatedItems, itemValidationResult, matchingSchemas, context);\n            validationResult.mergePropertyMatch(itemValidationResult);\n          }\n        }\n        validationResult.processedProperties.add(String(i));\n        validationResult.propertiesValueMatches++;\n      }\n    }\n    if (isNumber(schema.minItems) && node2.items.length < schema.minItems) {\n      validationResult.problems.push({\n        location: { offset: node2.offset, length: node2.length },\n        message: t(\"Array has too few items. Expected {0} or more.\", schema.minItems)\n      });\n    }\n    if (isNumber(schema.maxItems) && node2.items.length > schema.maxItems) {\n      validationResult.problems.push({\n        location: { offset: node2.offset, length: node2.length },\n        message: t(\"Array has too many items. Expected {0} or fewer.\", schema.maxItems)\n      });\n    }\n    if (schema.uniqueItems === true) {\n      let hasDuplicates = function() {\n        for (let i = 0; i < values.length - 1; i++) {\n          const value = values[i];\n          for (let j = i + 1; j < values.length; j++) {\n            if (equals(value, values[j])) {\n              return true;\n            }\n          }\n        }\n        return false;\n      };\n      const values = getNodeValue3(node2);\n      if (hasDuplicates()) {\n        validationResult.problems.push({\n          location: { offset: node2.offset, length: node2.length },\n          message: t(\"Array has duplicate items.\")\n        });\n      }\n    }\n  }\n  function _validateObjectNode(node2) {\n    const seenKeys = /* @__PURE__ */ Object.create(null);\n    const unprocessedProperties = /* @__PURE__ */ new Set();\n    for (const propertyNode of node2.properties) {\n      const key = propertyNode.keyNode.value;\n      seenKeys[key] = propertyNode.valueNode;\n      unprocessedProperties.add(key);\n    }\n    if (Array.isArray(schema.required)) {\n      for (const propertyName of schema.required) {\n        if (!seenKeys[propertyName]) {\n          const keyNode = node2.parent && node2.parent.type === \"property\" && node2.parent.keyNode;\n          const location = keyNode ? { offset: keyNode.offset, length: keyNode.length } : { offset: node2.offset, length: 1 };\n          validationResult.problems.push({\n            location,\n            message: t('Missing property \"{0}\".', propertyName)\n          });\n        }\n      }\n    }\n    const propertyProcessed = (prop) => {\n      unprocessedProperties.delete(prop);\n      validationResult.processedProperties.add(prop);\n    };\n    if (schema.properties) {\n      for (const propertyName of Object.keys(schema.properties)) {\n        propertyProcessed(propertyName);\n        const propertySchema = schema.properties[propertyName];\n        const child = seenKeys[propertyName];\n        if (child) {\n          if (isBoolean(propertySchema)) {\n            if (!propertySchema) {\n              const propertyNode = child.parent;\n              validationResult.problems.push({\n                location: { offset: propertyNode.keyNode.offset, length: propertyNode.keyNode.length },\n                message: schema.errorMessage || t(\"Property {0} is not allowed.\", propertyName)\n              });\n            } else {\n              validationResult.propertiesMatches++;\n              validationResult.propertiesValueMatches++;\n            }\n          } else {\n            const propertyValidationResult = new ValidationResult();\n            validate(child, propertySchema, propertyValidationResult, matchingSchemas, context);\n            validationResult.mergePropertyMatch(propertyValidationResult);\n          }\n        }\n      }\n    }\n    if (schema.patternProperties) {\n      for (const propertyPattern of Object.keys(schema.patternProperties)) {\n        const regex = extendedRegExp(propertyPattern);\n        if (regex) {\n          const processed = [];\n          for (const propertyName of unprocessedProperties) {\n            if (regex.test(propertyName)) {\n              processed.push(propertyName);\n              const child = seenKeys[propertyName];\n              if (child) {\n                const propertySchema = schema.patternProperties[propertyPattern];\n                if (isBoolean(propertySchema)) {\n                  if (!propertySchema) {\n                    const propertyNode = child.parent;\n                    validationResult.problems.push({\n                      location: { offset: propertyNode.keyNode.offset, length: propertyNode.keyNode.length },\n                      message: schema.errorMessage || t(\"Property {0} is not allowed.\", propertyName)\n                    });\n                  } else {\n                    validationResult.propertiesMatches++;\n                    validationResult.propertiesValueMatches++;\n                  }\n                } else {\n                  const propertyValidationResult = new ValidationResult();\n                  validate(child, propertySchema, propertyValidationResult, matchingSchemas, context);\n                  validationResult.mergePropertyMatch(propertyValidationResult);\n                }\n              }\n            }\n          }\n          processed.forEach(propertyProcessed);\n        }\n      }\n    }\n    const additionalProperties = schema.additionalProperties;\n    if (additionalProperties !== void 0) {\n      for (const propertyName of unprocessedProperties) {\n        propertyProcessed(propertyName);\n        const child = seenKeys[propertyName];\n        if (child) {\n          if (additionalProperties === false) {\n            const propertyNode = child.parent;\n            validationResult.problems.push({\n              location: { offset: propertyNode.keyNode.offset, length: propertyNode.keyNode.length },\n              message: schema.errorMessage || t(\"Property {0} is not allowed.\", propertyName)\n            });\n          } else if (additionalProperties !== true) {\n            const propertyValidationResult = new ValidationResult();\n            validate(child, additionalProperties, propertyValidationResult, matchingSchemas, context);\n            validationResult.mergePropertyMatch(propertyValidationResult);\n          }\n        }\n      }\n    }\n    const unevaluatedProperties = schema.unevaluatedProperties;\n    if (unevaluatedProperties !== void 0) {\n      const processed = [];\n      for (const propertyName of unprocessedProperties) {\n        if (!validationResult.processedProperties.has(propertyName)) {\n          processed.push(propertyName);\n          const child = seenKeys[propertyName];\n          if (child) {\n            if (unevaluatedProperties === false) {\n              const propertyNode = child.parent;\n              validationResult.problems.push({\n                location: { offset: propertyNode.keyNode.offset, length: propertyNode.keyNode.length },\n                message: schema.errorMessage || t(\"Property {0} is not allowed.\", propertyName)\n              });\n            } else if (unevaluatedProperties !== true) {\n              const propertyValidationResult = new ValidationResult();\n              validate(child, unevaluatedProperties, propertyValidationResult, matchingSchemas, context);\n              validationResult.mergePropertyMatch(propertyValidationResult);\n            }\n          }\n        }\n      }\n      processed.forEach(propertyProcessed);\n    }\n    if (isNumber(schema.maxProperties)) {\n      if (node2.properties.length > schema.maxProperties) {\n        validationResult.problems.push({\n          location: { offset: node2.offset, length: node2.length },\n          message: t(\"Object has more properties than limit of {0}.\", schema.maxProperties)\n        });\n      }\n    }\n    if (isNumber(schema.minProperties)) {\n      if (node2.properties.length < schema.minProperties) {\n        validationResult.problems.push({\n          location: { offset: node2.offset, length: node2.length },\n          message: t(\"Object has fewer properties than the required number of {0}\", schema.minProperties)\n        });\n      }\n    }\n    if (schema.dependentRequired) {\n      for (const key in schema.dependentRequired) {\n        const prop = seenKeys[key];\n        const propertyDeps = schema.dependentRequired[key];\n        if (prop && Array.isArray(propertyDeps)) {\n          _validatePropertyDependencies(key, propertyDeps);\n        }\n      }\n    }\n    if (schema.dependentSchemas) {\n      for (const key in schema.dependentSchemas) {\n        const prop = seenKeys[key];\n        const propertyDeps = schema.dependentSchemas[key];\n        if (prop && isObject(propertyDeps)) {\n          _validatePropertyDependencies(key, propertyDeps);\n        }\n      }\n    }\n    if (schema.dependencies) {\n      for (const key in schema.dependencies) {\n        const prop = seenKeys[key];\n        if (prop) {\n          _validatePropertyDependencies(key, schema.dependencies[key]);\n        }\n      }\n    }\n    const propertyNames = asSchema(schema.propertyNames);\n    if (propertyNames) {\n      for (const f2 of node2.properties) {\n        const key = f2.keyNode;\n        if (key) {\n          validate(key, propertyNames, validationResult, NoOpSchemaCollector.instance, context);\n        }\n      }\n    }\n    function _validatePropertyDependencies(key, propertyDep) {\n      if (Array.isArray(propertyDep)) {\n        for (const requiredProp of propertyDep) {\n          if (!seenKeys[requiredProp]) {\n            validationResult.problems.push({\n              location: { offset: node2.offset, length: node2.length },\n              message: t(\"Object is missing property {0} required by property {1}.\", requiredProp, key)\n            });\n          } else {\n            validationResult.propertiesValueMatches++;\n          }\n        }\n      } else {\n        const propertySchema = asSchema(propertyDep);\n        if (propertySchema) {\n          const propertyValidationResult = new ValidationResult();\n          validate(node2, propertySchema, propertyValidationResult, matchingSchemas, context);\n          validationResult.mergePropertyMatch(propertyValidationResult);\n        }\n      }\n    }\n  }\n}\nfunction parse3(textDocument, config) {\n  const problems = [];\n  let lastProblemOffset = -1;\n  const text = textDocument.getText();\n  const scanner = createScanner2(text, false);\n  const commentRanges = config && config.collectComments ? [] : void 0;\n  function _scanNext() {\n    while (true) {\n      const token2 = scanner.scan();\n      _checkScanError();\n      switch (token2) {\n        case 12:\n        case 13:\n          if (Array.isArray(commentRanges)) {\n            commentRanges.push(Range.create(textDocument.positionAt(scanner.getTokenOffset()), textDocument.positionAt(scanner.getTokenOffset() + scanner.getTokenLength())));\n          }\n          break;\n        case 15:\n        case 14:\n          break;\n        default:\n          return token2;\n      }\n    }\n  }\n  function _accept(token2) {\n    if (scanner.getToken() === token2) {\n      _scanNext();\n      return true;\n    }\n    return false;\n  }\n  function _errorAtRange(message, code, startOffset, endOffset, severity = DiagnosticSeverity.Error) {\n    if (problems.length === 0 || startOffset !== lastProblemOffset) {\n      const range = Range.create(textDocument.positionAt(startOffset), textDocument.positionAt(endOffset));\n      problems.push(Diagnostic.create(range, message, severity, code, textDocument.languageId));\n      lastProblemOffset = startOffset;\n    }\n  }\n  function _error(message, code, node = void 0, skipUntilAfter = [], skipUntil = []) {\n    let start = scanner.getTokenOffset();\n    let end = scanner.getTokenOffset() + scanner.getTokenLength();\n    if (start === end && start > 0) {\n      start--;\n      while (start > 0 && /\\s/.test(text.charAt(start))) {\n        start--;\n      }\n      end = start + 1;\n    }\n    _errorAtRange(message, code, start, end);\n    if (node) {\n      _finalize(node, false);\n    }\n    if (skipUntilAfter.length + skipUntil.length > 0) {\n      let token2 = scanner.getToken();\n      while (token2 !== 17) {\n        if (skipUntilAfter.indexOf(token2) !== -1) {\n          _scanNext();\n          break;\n        } else if (skipUntil.indexOf(token2) !== -1) {\n          break;\n        }\n        token2 = _scanNext();\n      }\n    }\n    return node;\n  }\n  function _checkScanError() {\n    switch (scanner.getTokenError()) {\n      case 4:\n        _error(t(\"Invalid unicode sequence in string.\"), ErrorCode.InvalidUnicode);\n        return true;\n      case 5:\n        _error(t(\"Invalid escape character in string.\"), ErrorCode.InvalidEscapeCharacter);\n        return true;\n      case 3:\n        _error(t(\"Unexpected end of number.\"), ErrorCode.UnexpectedEndOfNumber);\n        return true;\n      case 1:\n        _error(t(\"Unexpected end of comment.\"), ErrorCode.UnexpectedEndOfComment);\n        return true;\n      case 2:\n        _error(t(\"Unexpected end of string.\"), ErrorCode.UnexpectedEndOfString);\n        return true;\n      case 6:\n        _error(t(\"Invalid characters in string. Control characters must be escaped.\"), ErrorCode.InvalidCharacter);\n        return true;\n    }\n    return false;\n  }\n  function _finalize(node, scanNext) {\n    node.length = scanner.getTokenOffset() + scanner.getTokenLength() - node.offset;\n    if (scanNext) {\n      _scanNext();\n    }\n    return node;\n  }\n  function _parseArray(parent) {\n    if (scanner.getToken() !== 3) {\n      return void 0;\n    }\n    const node = new ArrayASTNodeImpl(parent, scanner.getTokenOffset());\n    _scanNext();\n    const count = 0;\n    let needsComma = false;\n    while (scanner.getToken() !== 4 && scanner.getToken() !== 17) {\n      if (scanner.getToken() === 5) {\n        if (!needsComma) {\n          _error(t(\"Value expected\"), ErrorCode.ValueExpected);\n        }\n        const commaOffset = scanner.getTokenOffset();\n        _scanNext();\n        if (scanner.getToken() === 4) {\n          if (needsComma) {\n            _errorAtRange(t(\"Trailing comma\"), ErrorCode.TrailingComma, commaOffset, commaOffset + 1);\n          }\n          continue;\n        }\n      } else if (needsComma) {\n        _error(t(\"Expected comma\"), ErrorCode.CommaExpected);\n      }\n      const item = _parseValue(node);\n      if (!item) {\n        _error(t(\"Value expected\"), ErrorCode.ValueExpected, void 0, [], [\n          4,\n          5\n          /* Json.SyntaxKind.CommaToken */\n        ]);\n      } else {\n        node.items.push(item);\n      }\n      needsComma = true;\n    }\n    if (scanner.getToken() !== 4) {\n      return _error(t(\"Expected comma or closing bracket\"), ErrorCode.CommaOrCloseBacketExpected, node);\n    }\n    return _finalize(node, true);\n  }\n  const keyPlaceholder = new StringASTNodeImpl(void 0, 0, 0);\n  function _parseProperty(parent, keysSeen) {\n    const node = new PropertyASTNodeImpl(parent, scanner.getTokenOffset(), keyPlaceholder);\n    let key = _parseString(node);\n    if (!key) {\n      if (scanner.getToken() === 16) {\n        _error(t(\"Property keys must be doublequoted\"), ErrorCode.PropertyKeysMustBeDoublequoted);\n        const keyNode = new StringASTNodeImpl(node, scanner.getTokenOffset(), scanner.getTokenLength());\n        keyNode.value = scanner.getTokenValue();\n        key = keyNode;\n        _scanNext();\n      } else {\n        return void 0;\n      }\n    }\n    node.keyNode = key;\n    if (key.value !== \"//\") {\n      const seen = keysSeen[key.value];\n      if (seen) {\n        _errorAtRange(t(\"Duplicate object key\"), ErrorCode.DuplicateKey, node.keyNode.offset, node.keyNode.offset + node.keyNode.length, DiagnosticSeverity.Warning);\n        if (isObject(seen)) {\n          _errorAtRange(t(\"Duplicate object key\"), ErrorCode.DuplicateKey, seen.keyNode.offset, seen.keyNode.offset + seen.keyNode.length, DiagnosticSeverity.Warning);\n        }\n        keysSeen[key.value] = true;\n      } else {\n        keysSeen[key.value] = node;\n      }\n    }\n    if (scanner.getToken() === 6) {\n      node.colonOffset = scanner.getTokenOffset();\n      _scanNext();\n    } else {\n      _error(t(\"Colon expected\"), ErrorCode.ColonExpected);\n      if (scanner.getToken() === 10 && textDocument.positionAt(key.offset + key.length).line < textDocument.positionAt(scanner.getTokenOffset()).line) {\n        node.length = key.length;\n        return node;\n      }\n    }\n    const value = _parseValue(node);\n    if (!value) {\n      return _error(t(\"Value expected\"), ErrorCode.ValueExpected, node, [], [\n        2,\n        5\n        /* Json.SyntaxKind.CommaToken */\n      ]);\n    }\n    node.valueNode = value;\n    node.length = value.offset + value.length - node.offset;\n    return node;\n  }\n  function _parseObject(parent) {\n    if (scanner.getToken() !== 1) {\n      return void 0;\n    }\n    const node = new ObjectASTNodeImpl(parent, scanner.getTokenOffset());\n    const keysSeen = /* @__PURE__ */ Object.create(null);\n    _scanNext();\n    let needsComma = false;\n    while (scanner.getToken() !== 2 && scanner.getToken() !== 17) {\n      if (scanner.getToken() === 5) {\n        if (!needsComma) {\n          _error(t(\"Property expected\"), ErrorCode.PropertyExpected);\n        }\n        const commaOffset = scanner.getTokenOffset();\n        _scanNext();\n        if (scanner.getToken() === 2) {\n          if (needsComma) {\n            _errorAtRange(t(\"Trailing comma\"), ErrorCode.TrailingComma, commaOffset, commaOffset + 1);\n          }\n          continue;\n        }\n      } else if (needsComma) {\n        _error(t(\"Expected comma\"), ErrorCode.CommaExpected);\n      }\n      const property = _parseProperty(node, keysSeen);\n      if (!property) {\n        _error(t(\"Property expected\"), ErrorCode.PropertyExpected, void 0, [], [\n          2,\n          5\n          /* Json.SyntaxKind.CommaToken */\n        ]);\n      } else {\n        node.properties.push(property);\n      }\n      needsComma = true;\n    }\n    if (scanner.getToken() !== 2) {\n      return _error(t(\"Expected comma or closing brace\"), ErrorCode.CommaOrCloseBraceExpected, node);\n    }\n    return _finalize(node, true);\n  }\n  function _parseString(parent) {\n    if (scanner.getToken() !== 10) {\n      return void 0;\n    }\n    const node = new StringASTNodeImpl(parent, scanner.getTokenOffset());\n    node.value = scanner.getTokenValue();\n    return _finalize(node, true);\n  }\n  function _parseNumber(parent) {\n    if (scanner.getToken() !== 11) {\n      return void 0;\n    }\n    const node = new NumberASTNodeImpl(parent, scanner.getTokenOffset());\n    if (scanner.getTokenError() === 0) {\n      const tokenValue = scanner.getTokenValue();\n      try {\n        const numberValue = JSON.parse(tokenValue);\n        if (!isNumber(numberValue)) {\n          return _error(t(\"Invalid number format.\"), ErrorCode.Undefined, node);\n        }\n        node.value = numberValue;\n      } catch (e) {\n        return _error(t(\"Invalid number format.\"), ErrorCode.Undefined, node);\n      }\n      node.isInteger = tokenValue.indexOf(\".\") === -1;\n    }\n    return _finalize(node, true);\n  }\n  function _parseLiteral(parent) {\n    let node;\n    switch (scanner.getToken()) {\n      case 7:\n        return _finalize(new NullASTNodeImpl(parent, scanner.getTokenOffset()), true);\n      case 8:\n        return _finalize(new BooleanASTNodeImpl(parent, true, scanner.getTokenOffset()), true);\n      case 9:\n        return _finalize(new BooleanASTNodeImpl(parent, false, scanner.getTokenOffset()), true);\n      default:\n        return void 0;\n    }\n  }\n  function _parseValue(parent) {\n    return _parseArray(parent) || _parseObject(parent) || _parseString(parent) || _parseNumber(parent) || _parseLiteral(parent);\n  }\n  let _root = void 0;\n  const token = _scanNext();\n  if (token !== 17) {\n    _root = _parseValue(_root);\n    if (!_root) {\n      _error(t(\"Expected a JSON object, array or literal.\"), ErrorCode.Undefined);\n    } else if (scanner.getToken() !== 17) {\n      _error(t(\"End of file expected.\"), ErrorCode.Undefined);\n    }\n  }\n  return new JSONDocument(_root, problems, commentRanges);\n}\n\n// node_modules/vscode-json-languageservice/lib/esm/utils/json.js\nfunction stringifyObject(obj, indent, stringifyLiteral) {\n  if (obj !== null && typeof obj === \"object\") {\n    const newIndent = indent + \"\t\";\n    if (Array.isArray(obj)) {\n      if (obj.length === 0) {\n        return \"[]\";\n      }\n      let result = \"[\\n\";\n      for (let i = 0; i < obj.length; i++) {\n        result += newIndent + stringifyObject(obj[i], newIndent, stringifyLiteral);\n        if (i < obj.length - 1) {\n          result += \",\";\n        }\n        result += \"\\n\";\n      }\n      result += indent + \"]\";\n      return result;\n    } else {\n      const keys = Object.keys(obj);\n      if (keys.length === 0) {\n        return \"{}\";\n      }\n      let result = \"{\\n\";\n      for (let i = 0; i < keys.length; i++) {\n        const key = keys[i];\n        result += newIndent + JSON.stringify(key) + \": \" + stringifyObject(obj[key], newIndent, stringifyLiteral);\n        if (i < keys.length - 1) {\n          result += \",\";\n        }\n        result += \"\\n\";\n      }\n      result += indent + \"}\";\n      return result;\n    }\n  }\n  return stringifyLiteral(obj);\n}\n\n// node_modules/vscode-json-languageservice/lib/esm/services/jsonCompletion.js\nvar valueCommitCharacters = [\",\", \"}\", \"]\"];\nvar propertyCommitCharacters = [\":\"];\nvar JSONCompletion = class {\n  constructor(schemaService, contributions = [], promiseConstructor = Promise, clientCapabilities = {}) {\n    this.schemaService = schemaService;\n    this.contributions = contributions;\n    this.promiseConstructor = promiseConstructor;\n    this.clientCapabilities = clientCapabilities;\n  }\n  doResolve(item) {\n    for (let i = this.contributions.length - 1; i >= 0; i--) {\n      const resolveCompletion = this.contributions[i].resolveCompletion;\n      if (resolveCompletion) {\n        const resolver = resolveCompletion(item);\n        if (resolver) {\n          return resolver;\n        }\n      }\n    }\n    return this.promiseConstructor.resolve(item);\n  }\n  doComplete(document, position, doc) {\n    const result = {\n      items: [],\n      isIncomplete: false\n    };\n    const text = document.getText();\n    const offset = document.offsetAt(position);\n    let node = doc.getNodeFromOffset(offset, true);\n    if (this.isInComment(document, node ? node.offset : 0, offset)) {\n      return Promise.resolve(result);\n    }\n    if (node && offset === node.offset + node.length && offset > 0) {\n      const ch = text[offset - 1];\n      if (node.type === \"object\" && ch === \"}\" || node.type === \"array\" && ch === \"]\") {\n        node = node.parent;\n      }\n    }\n    const currentWord = this.getCurrentWord(document, offset);\n    let overwriteRange;\n    if (node && (node.type === \"string\" || node.type === \"number\" || node.type === \"boolean\" || node.type === \"null\")) {\n      overwriteRange = Range.create(document.positionAt(node.offset), document.positionAt(node.offset + node.length));\n    } else {\n      let overwriteStart = offset - currentWord.length;\n      if (overwriteStart > 0 && text[overwriteStart - 1] === '\"') {\n        overwriteStart--;\n      }\n      overwriteRange = Range.create(document.positionAt(overwriteStart), position);\n    }\n    const supportsCommitCharacters = false;\n    const proposed = /* @__PURE__ */ new Map();\n    const collector = {\n      add: (suggestion) => {\n        let label = suggestion.label;\n        const existing = proposed.get(label);\n        if (!existing) {\n          label = label.replace(/[\\n]/g, \"\\u21B5\");\n          if (label.length > 60) {\n            const shortendedLabel = label.substr(0, 57).trim() + \"...\";\n            if (!proposed.has(shortendedLabel)) {\n              label = shortendedLabel;\n            }\n          }\n          suggestion.textEdit = TextEdit.replace(overwriteRange, suggestion.insertText);\n          if (supportsCommitCharacters) {\n            suggestion.commitCharacters = suggestion.kind === CompletionItemKind.Property ? propertyCommitCharacters : valueCommitCharacters;\n          }\n          suggestion.label = label;\n          proposed.set(label, suggestion);\n          result.items.push(suggestion);\n        } else {\n          if (!existing.documentation) {\n            existing.documentation = suggestion.documentation;\n          }\n          if (!existing.detail) {\n            existing.detail = suggestion.detail;\n          }\n          if (!existing.labelDetails) {\n            existing.labelDetails = suggestion.labelDetails;\n          }\n        }\n      },\n      setAsIncomplete: () => {\n        result.isIncomplete = true;\n      },\n      error: (message) => {\n        console.error(message);\n      },\n      getNumberOfProposals: () => {\n        return result.items.length;\n      }\n    };\n    return this.schemaService.getSchemaForResource(document.uri, doc).then((schema) => {\n      const collectionPromises = [];\n      let addValue = true;\n      let currentKey = \"\";\n      let currentProperty = void 0;\n      if (node) {\n        if (node.type === \"string\") {\n          const parent = node.parent;\n          if (parent && parent.type === \"property\" && parent.keyNode === node) {\n            addValue = !parent.valueNode;\n            currentProperty = parent;\n            currentKey = text.substr(node.offset + 1, node.length - 2);\n            if (parent) {\n              node = parent.parent;\n            }\n          }\n        }\n      }\n      if (node && node.type === \"object\") {\n        if (node.offset === offset) {\n          return result;\n        }\n        const properties = node.properties;\n        properties.forEach((p) => {\n          if (!currentProperty || currentProperty !== p) {\n            proposed.set(p.keyNode.value, CompletionItem.create(\"__\"));\n          }\n        });\n        let separatorAfter = \"\";\n        if (addValue) {\n          separatorAfter = this.evaluateSeparatorAfter(document, document.offsetAt(overwriteRange.end));\n        }\n        if (schema) {\n          this.getPropertyCompletions(schema, doc, node, addValue, separatorAfter, collector);\n        } else {\n          this.getSchemaLessPropertyCompletions(doc, node, currentKey, collector);\n        }\n        const location = getNodePath3(node);\n        this.contributions.forEach((contribution) => {\n          const collectPromise = contribution.collectPropertyCompletions(document.uri, location, currentWord, addValue, separatorAfter === \"\", collector);\n          if (collectPromise) {\n            collectionPromises.push(collectPromise);\n          }\n        });\n        if (!schema && currentWord.length > 0 && text.charAt(offset - currentWord.length - 1) !== '\"') {\n          collector.add({\n            kind: CompletionItemKind.Property,\n            label: this.getLabelForValue(currentWord),\n            insertText: this.getInsertTextForProperty(currentWord, void 0, false, separatorAfter),\n            insertTextFormat: InsertTextFormat.Snippet,\n            documentation: \"\"\n          });\n          collector.setAsIncomplete();\n        }\n      }\n      const types = {};\n      if (schema) {\n        this.getValueCompletions(schema, doc, node, offset, document, collector, types);\n      } else {\n        this.getSchemaLessValueCompletions(doc, node, offset, document, collector);\n      }\n      if (this.contributions.length > 0) {\n        this.getContributedValueCompletions(doc, node, offset, document, collector, collectionPromises);\n      }\n      return this.promiseConstructor.all(collectionPromises).then(() => {\n        if (collector.getNumberOfProposals() === 0) {\n          let offsetForSeparator = offset;\n          if (node && (node.type === \"string\" || node.type === \"number\" || node.type === \"boolean\" || node.type === \"null\")) {\n            offsetForSeparator = node.offset + node.length;\n          }\n          const separatorAfter = this.evaluateSeparatorAfter(document, offsetForSeparator);\n          this.addFillerValueCompletions(types, separatorAfter, collector);\n        }\n        return result;\n      });\n    });\n  }\n  getPropertyCompletions(schema, doc, node, addValue, separatorAfter, collector) {\n    const matchingSchemas = doc.getMatchingSchemas(schema.schema, node.offset);\n    matchingSchemas.forEach((s) => {\n      if (s.node === node && !s.inverted) {\n        const schemaProperties = s.schema.properties;\n        if (schemaProperties) {\n          Object.keys(schemaProperties).forEach((key) => {\n            const propertySchema = schemaProperties[key];\n            if (typeof propertySchema === \"object\" && !propertySchema.deprecationMessage && !propertySchema.doNotSuggest) {\n              const proposal = {\n                kind: CompletionItemKind.Property,\n                label: key,\n                insertText: this.getInsertTextForProperty(key, propertySchema, addValue, separatorAfter),\n                insertTextFormat: InsertTextFormat.Snippet,\n                filterText: this.getFilterTextForValue(key),\n                documentation: this.fromMarkup(propertySchema.markdownDescription) || propertySchema.description || \"\"\n              };\n              if (propertySchema.suggestSortText !== void 0) {\n                proposal.sortText = propertySchema.suggestSortText;\n              }\n              if (proposal.insertText && endsWith(proposal.insertText, `$1${separatorAfter}`)) {\n                proposal.command = {\n                  title: \"Suggest\",\n                  command: \"editor.action.triggerSuggest\"\n                };\n              }\n              collector.add(proposal);\n            }\n          });\n        }\n        const schemaPropertyNames = s.schema.propertyNames;\n        if (typeof schemaPropertyNames === \"object\" && !schemaPropertyNames.deprecationMessage && !schemaPropertyNames.doNotSuggest) {\n          const propertyNameCompletionItem = (name, enumDescription = void 0) => {\n            const proposal = {\n              kind: CompletionItemKind.Property,\n              label: name,\n              insertText: this.getInsertTextForProperty(name, void 0, addValue, separatorAfter),\n              insertTextFormat: InsertTextFormat.Snippet,\n              filterText: this.getFilterTextForValue(name),\n              documentation: enumDescription || this.fromMarkup(schemaPropertyNames.markdownDescription) || schemaPropertyNames.description || \"\"\n            };\n            if (schemaPropertyNames.suggestSortText !== void 0) {\n              proposal.sortText = schemaPropertyNames.suggestSortText;\n            }\n            if (proposal.insertText && endsWith(proposal.insertText, `$1${separatorAfter}`)) {\n              proposal.command = {\n                title: \"Suggest\",\n                command: \"editor.action.triggerSuggest\"\n              };\n            }\n            collector.add(proposal);\n          };\n          if (schemaPropertyNames.enum) {\n            for (let i = 0; i < schemaPropertyNames.enum.length; i++) {\n              let enumDescription = void 0;\n              if (schemaPropertyNames.markdownEnumDescriptions && i < schemaPropertyNames.markdownEnumDescriptions.length) {\n                enumDescription = this.fromMarkup(schemaPropertyNames.markdownEnumDescriptions[i]);\n              } else if (schemaPropertyNames.enumDescriptions && i < schemaPropertyNames.enumDescriptions.length) {\n                enumDescription = schemaPropertyNames.enumDescriptions[i];\n              }\n              propertyNameCompletionItem(schemaPropertyNames.enum[i], enumDescription);\n            }\n          }\n          if (schemaPropertyNames.const) {\n            propertyNameCompletionItem(schemaPropertyNames.const);\n          }\n        }\n      }\n    });\n  }\n  getSchemaLessPropertyCompletions(doc, node, currentKey, collector) {\n    const collectCompletionsForSimilarObject = (obj) => {\n      obj.properties.forEach((p) => {\n        const key = p.keyNode.value;\n        collector.add({\n          kind: CompletionItemKind.Property,\n          label: key,\n          insertText: this.getInsertTextForValue(key, \"\"),\n          insertTextFormat: InsertTextFormat.Snippet,\n          filterText: this.getFilterTextForValue(key),\n          documentation: \"\"\n        });\n      });\n    };\n    if (node.parent) {\n      if (node.parent.type === \"property\") {\n        const parentKey = node.parent.keyNode.value;\n        doc.visit((n) => {\n          if (n.type === \"property\" && n !== node.parent && n.keyNode.value === parentKey && n.valueNode && n.valueNode.type === \"object\") {\n            collectCompletionsForSimilarObject(n.valueNode);\n          }\n          return true;\n        });\n      } else if (node.parent.type === \"array\") {\n        node.parent.items.forEach((n) => {\n          if (n.type === \"object\" && n !== node) {\n            collectCompletionsForSimilarObject(n);\n          }\n        });\n      }\n    } else if (node.type === \"object\") {\n      collector.add({\n        kind: CompletionItemKind.Property,\n        label: \"$schema\",\n        insertText: this.getInsertTextForProperty(\"$schema\", void 0, true, \"\"),\n        insertTextFormat: InsertTextFormat.Snippet,\n        documentation: \"\",\n        filterText: this.getFilterTextForValue(\"$schema\")\n      });\n    }\n  }\n  getSchemaLessValueCompletions(doc, node, offset, document, collector) {\n    let offsetForSeparator = offset;\n    if (node && (node.type === \"string\" || node.type === \"number\" || node.type === \"boolean\" || node.type === \"null\")) {\n      offsetForSeparator = node.offset + node.length;\n      node = node.parent;\n    }\n    if (!node) {\n      collector.add({\n        kind: this.getSuggestionKind(\"object\"),\n        label: \"Empty object\",\n        insertText: this.getInsertTextForValue({}, \"\"),\n        insertTextFormat: InsertTextFormat.Snippet,\n        documentation: \"\"\n      });\n      collector.add({\n        kind: this.getSuggestionKind(\"array\"),\n        label: \"Empty array\",\n        insertText: this.getInsertTextForValue([], \"\"),\n        insertTextFormat: InsertTextFormat.Snippet,\n        documentation: \"\"\n      });\n      return;\n    }\n    const separatorAfter = this.evaluateSeparatorAfter(document, offsetForSeparator);\n    const collectSuggestionsForValues = (value) => {\n      if (value.parent && !contains2(value.parent, offset, true)) {\n        collector.add({\n          kind: this.getSuggestionKind(value.type),\n          label: this.getLabelTextForMatchingNode(value, document),\n          insertText: this.getInsertTextForMatchingNode(value, document, separatorAfter),\n          insertTextFormat: InsertTextFormat.Snippet,\n          documentation: \"\"\n        });\n      }\n      if (value.type === \"boolean\") {\n        this.addBooleanValueCompletion(!value.value, separatorAfter, collector);\n      }\n    };\n    if (node.type === \"property\") {\n      if (offset > (node.colonOffset || 0)) {\n        const valueNode = node.valueNode;\n        if (valueNode && (offset > valueNode.offset + valueNode.length || valueNode.type === \"object\" || valueNode.type === \"array\")) {\n          return;\n        }\n        const parentKey = node.keyNode.value;\n        doc.visit((n) => {\n          if (n.type === \"property\" && n.keyNode.value === parentKey && n.valueNode) {\n            collectSuggestionsForValues(n.valueNode);\n          }\n          return true;\n        });\n        if (parentKey === \"$schema\" && node.parent && !node.parent.parent) {\n          this.addDollarSchemaCompletions(separatorAfter, collector);\n        }\n      }\n    }\n    if (node.type === \"array\") {\n      if (node.parent && node.parent.type === \"property\") {\n        const parentKey = node.parent.keyNode.value;\n        doc.visit((n) => {\n          if (n.type === \"property\" && n.keyNode.value === parentKey && n.valueNode && n.valueNode.type === \"array\") {\n            n.valueNode.items.forEach(collectSuggestionsForValues);\n          }\n          return true;\n        });\n      } else {\n        node.items.forEach(collectSuggestionsForValues);\n      }\n    }\n  }\n  getValueCompletions(schema, doc, node, offset, document, collector, types) {\n    let offsetForSeparator = offset;\n    let parentKey = void 0;\n    let valueNode = void 0;\n    if (node && (node.type === \"string\" || node.type === \"number\" || node.type === \"boolean\" || node.type === \"null\")) {\n      offsetForSeparator = node.offset + node.length;\n      valueNode = node;\n      node = node.parent;\n    }\n    if (!node) {\n      this.addSchemaValueCompletions(schema.schema, \"\", collector, types);\n      return;\n    }\n    if (node.type === \"property\" && offset > (node.colonOffset || 0)) {\n      const valueNode2 = node.valueNode;\n      if (valueNode2 && offset > valueNode2.offset + valueNode2.length) {\n        return;\n      }\n      parentKey = node.keyNode.value;\n      node = node.parent;\n    }\n    if (node && (parentKey !== void 0 || node.type === \"array\")) {\n      const separatorAfter = this.evaluateSeparatorAfter(document, offsetForSeparator);\n      const matchingSchemas = doc.getMatchingSchemas(schema.schema, node.offset, valueNode);\n      for (const s of matchingSchemas) {\n        if (s.node === node && !s.inverted && s.schema) {\n          if (node.type === \"array\" && s.schema.items) {\n            let c = collector;\n            if (s.schema.uniqueItems) {\n              const existingValues = /* @__PURE__ */ new Set();\n              node.children.forEach((n) => {\n                if (n.type !== \"array\" && n.type !== \"object\") {\n                  existingValues.add(this.getLabelForValue(getNodeValue3(n)));\n                }\n              });\n              c = {\n                ...collector,\n                add(suggestion) {\n                  if (!existingValues.has(suggestion.label)) {\n                    collector.add(suggestion);\n                  }\n                }\n              };\n            }\n            if (Array.isArray(s.schema.items)) {\n              const index = this.findItemAtOffset(node, document, offset);\n              if (index < s.schema.items.length) {\n                this.addSchemaValueCompletions(s.schema.items[index], separatorAfter, c, types);\n              }\n            } else {\n              this.addSchemaValueCompletions(s.schema.items, separatorAfter, c, types);\n            }\n          }\n          if (parentKey !== void 0) {\n            let propertyMatched = false;\n            if (s.schema.properties) {\n              const propertySchema = s.schema.properties[parentKey];\n              if (propertySchema) {\n                propertyMatched = true;\n                this.addSchemaValueCompletions(propertySchema, separatorAfter, collector, types);\n              }\n            }\n            if (s.schema.patternProperties && !propertyMatched) {\n              for (const pattern of Object.keys(s.schema.patternProperties)) {\n                const regex = extendedRegExp(pattern);\n                if (regex?.test(parentKey)) {\n                  propertyMatched = true;\n                  const propertySchema = s.schema.patternProperties[pattern];\n                  this.addSchemaValueCompletions(propertySchema, separatorAfter, collector, types);\n                }\n              }\n            }\n            if (s.schema.additionalProperties && !propertyMatched) {\n              const propertySchema = s.schema.additionalProperties;\n              this.addSchemaValueCompletions(propertySchema, separatorAfter, collector, types);\n            }\n          }\n        }\n      }\n      if (parentKey === \"$schema\" && !node.parent) {\n        this.addDollarSchemaCompletions(separatorAfter, collector);\n      }\n      if (types[\"boolean\"]) {\n        this.addBooleanValueCompletion(true, separatorAfter, collector);\n        this.addBooleanValueCompletion(false, separatorAfter, collector);\n      }\n      if (types[\"null\"]) {\n        this.addNullValueCompletion(separatorAfter, collector);\n      }\n    }\n  }\n  getContributedValueCompletions(doc, node, offset, document, collector, collectionPromises) {\n    if (!node) {\n      this.contributions.forEach((contribution) => {\n        const collectPromise = contribution.collectDefaultCompletions(document.uri, collector);\n        if (collectPromise) {\n          collectionPromises.push(collectPromise);\n        }\n      });\n    } else {\n      if (node.type === \"string\" || node.type === \"number\" || node.type === \"boolean\" || node.type === \"null\") {\n        node = node.parent;\n      }\n      if (node && node.type === \"property\" && offset > (node.colonOffset || 0)) {\n        const parentKey = node.keyNode.value;\n        const valueNode = node.valueNode;\n        if ((!valueNode || offset <= valueNode.offset + valueNode.length) && node.parent) {\n          const location = getNodePath3(node.parent);\n          this.contributions.forEach((contribution) => {\n            const collectPromise = contribution.collectValueCompletions(document.uri, location, parentKey, collector);\n            if (collectPromise) {\n              collectionPromises.push(collectPromise);\n            }\n          });\n        }\n      }\n    }\n  }\n  addSchemaValueCompletions(schema, separatorAfter, collector, types) {\n    if (typeof schema === \"object\") {\n      this.addEnumValueCompletions(schema, separatorAfter, collector);\n      this.addDefaultValueCompletions(schema, separatorAfter, collector);\n      this.collectTypes(schema, types);\n      if (Array.isArray(schema.allOf)) {\n        schema.allOf.forEach((s) => this.addSchemaValueCompletions(s, separatorAfter, collector, types));\n      }\n      if (Array.isArray(schema.anyOf)) {\n        schema.anyOf.forEach((s) => this.addSchemaValueCompletions(s, separatorAfter, collector, types));\n      }\n      if (Array.isArray(schema.oneOf)) {\n        schema.oneOf.forEach((s) => this.addSchemaValueCompletions(s, separatorAfter, collector, types));\n      }\n    }\n  }\n  addDefaultValueCompletions(schema, separatorAfter, collector, arrayDepth = 0) {\n    let hasProposals = false;\n    if (isDefined(schema.default)) {\n      let type = schema.type;\n      let value = schema.default;\n      for (let i = arrayDepth; i > 0; i--) {\n        value = [value];\n        type = \"array\";\n      }\n      const completionItem = {\n        kind: this.getSuggestionKind(type),\n        label: this.getLabelForValue(value),\n        insertText: this.getInsertTextForValue(value, separatorAfter),\n        insertTextFormat: InsertTextFormat.Snippet\n      };\n      if (this.doesSupportsLabelDetails()) {\n        completionItem.labelDetails = { description: t(\"Default value\") };\n      } else {\n        completionItem.detail = t(\"Default value\");\n      }\n      collector.add(completionItem);\n      hasProposals = true;\n    }\n    if (Array.isArray(schema.examples)) {\n      schema.examples.forEach((example) => {\n        let type = schema.type;\n        let value = example;\n        for (let i = arrayDepth; i > 0; i--) {\n          value = [value];\n          type = \"array\";\n        }\n        collector.add({\n          kind: this.getSuggestionKind(type),\n          label: this.getLabelForValue(value),\n          insertText: this.getInsertTextForValue(value, separatorAfter),\n          insertTextFormat: InsertTextFormat.Snippet\n        });\n        hasProposals = true;\n      });\n    }\n    if (Array.isArray(schema.defaultSnippets)) {\n      schema.defaultSnippets.forEach((s) => {\n        let type = schema.type;\n        let value = s.body;\n        let label = s.label;\n        let insertText;\n        let filterText;\n        if (isDefined(value)) {\n          let type2 = schema.type;\n          for (let i = arrayDepth; i > 0; i--) {\n            value = [value];\n            type2 = \"array\";\n          }\n          insertText = this.getInsertTextForSnippetValue(value, separatorAfter);\n          filterText = this.getFilterTextForSnippetValue(value);\n          label = label || this.getLabelForSnippetValue(value);\n        } else if (typeof s.bodyText === \"string\") {\n          let prefix = \"\", suffix = \"\", indent = \"\";\n          for (let i = arrayDepth; i > 0; i--) {\n            prefix = prefix + indent + \"[\\n\";\n            suffix = suffix + \"\\n\" + indent + \"]\";\n            indent += \"\t\";\n            type = \"array\";\n          }\n          insertText = prefix + indent + s.bodyText.split(\"\\n\").join(\"\\n\" + indent) + suffix + separatorAfter;\n          label = label || insertText, filterText = insertText.replace(/[\\n]/g, \"\");\n        } else {\n          return;\n        }\n        collector.add({\n          kind: this.getSuggestionKind(type),\n          label,\n          documentation: this.fromMarkup(s.markdownDescription) || s.description,\n          insertText,\n          insertTextFormat: InsertTextFormat.Snippet,\n          filterText\n        });\n        hasProposals = true;\n      });\n    }\n    if (!hasProposals && typeof schema.items === \"object\" && !Array.isArray(schema.items) && arrayDepth < 5) {\n      this.addDefaultValueCompletions(schema.items, separatorAfter, collector, arrayDepth + 1);\n    }\n  }\n  addEnumValueCompletions(schema, separatorAfter, collector) {\n    if (isDefined(schema.const)) {\n      collector.add({\n        kind: this.getSuggestionKind(schema.type),\n        label: this.getLabelForValue(schema.const),\n        insertText: this.getInsertTextForValue(schema.const, separatorAfter),\n        insertTextFormat: InsertTextFormat.Snippet,\n        documentation: this.fromMarkup(schema.markdownDescription) || schema.description\n      });\n    }\n    if (Array.isArray(schema.enum)) {\n      for (let i = 0, length = schema.enum.length; i < length; i++) {\n        const enm = schema.enum[i];\n        let documentation = this.fromMarkup(schema.markdownDescription) || schema.description;\n        if (schema.markdownEnumDescriptions && i < schema.markdownEnumDescriptions.length && this.doesSupportMarkdown()) {\n          documentation = this.fromMarkup(schema.markdownEnumDescriptions[i]);\n        } else if (schema.enumDescriptions && i < schema.enumDescriptions.length) {\n          documentation = schema.enumDescriptions[i];\n        }\n        collector.add({\n          kind: this.getSuggestionKind(schema.type),\n          label: this.getLabelForValue(enm),\n          insertText: this.getInsertTextForValue(enm, separatorAfter),\n          insertTextFormat: InsertTextFormat.Snippet,\n          documentation\n        });\n      }\n    }\n  }\n  collectTypes(schema, types) {\n    if (Array.isArray(schema.enum) || isDefined(schema.const)) {\n      return;\n    }\n    const type = schema.type;\n    if (Array.isArray(type)) {\n      type.forEach((t2) => types[t2] = true);\n    } else if (type) {\n      types[type] = true;\n    }\n  }\n  addFillerValueCompletions(types, separatorAfter, collector) {\n    if (types[\"object\"]) {\n      collector.add({\n        kind: this.getSuggestionKind(\"object\"),\n        label: \"{}\",\n        insertText: this.getInsertTextForGuessedValue({}, separatorAfter),\n        insertTextFormat: InsertTextFormat.Snippet,\n        detail: t(\"New object\"),\n        documentation: \"\"\n      });\n    }\n    if (types[\"array\"]) {\n      collector.add({\n        kind: this.getSuggestionKind(\"array\"),\n        label: \"[]\",\n        insertText: this.getInsertTextForGuessedValue([], separatorAfter),\n        insertTextFormat: InsertTextFormat.Snippet,\n        detail: t(\"New array\"),\n        documentation: \"\"\n      });\n    }\n  }\n  addBooleanValueCompletion(value, separatorAfter, collector) {\n    collector.add({\n      kind: this.getSuggestionKind(\"boolean\"),\n      label: value ? \"true\" : \"false\",\n      insertText: this.getInsertTextForValue(value, separatorAfter),\n      insertTextFormat: InsertTextFormat.Snippet,\n      documentation: \"\"\n    });\n  }\n  addNullValueCompletion(separatorAfter, collector) {\n    collector.add({\n      kind: this.getSuggestionKind(\"null\"),\n      label: \"null\",\n      insertText: \"null\" + separatorAfter,\n      insertTextFormat: InsertTextFormat.Snippet,\n      documentation: \"\"\n    });\n  }\n  addDollarSchemaCompletions(separatorAfter, collector) {\n    const schemaIds = this.schemaService.getRegisteredSchemaIds((schema) => schema === \"http\" || schema === \"https\");\n    schemaIds.forEach((schemaId) => {\n      if (schemaId.startsWith(\"http://json-schema.org/draft-\")) {\n        schemaId = schemaId + \"#\";\n      }\n      collector.add({\n        kind: CompletionItemKind.Module,\n        label: this.getLabelForValue(schemaId),\n        filterText: this.getFilterTextForValue(schemaId),\n        insertText: this.getInsertTextForValue(schemaId, separatorAfter),\n        insertTextFormat: InsertTextFormat.Snippet,\n        documentation: \"\"\n      });\n    });\n  }\n  getLabelForValue(value) {\n    return JSON.stringify(value);\n  }\n  getValueFromLabel(value) {\n    return JSON.parse(value);\n  }\n  getFilterTextForValue(value) {\n    return JSON.stringify(value);\n  }\n  getFilterTextForSnippetValue(value) {\n    return JSON.stringify(value).replace(/\\$\\{\\d+:([^}]+)\\}|\\$\\d+/g, \"$1\");\n  }\n  getLabelForSnippetValue(value) {\n    const label = JSON.stringify(value);\n    return label.replace(/\\$\\{\\d+:([^}]+)\\}|\\$\\d+/g, \"$1\");\n  }\n  getInsertTextForPlainText(text) {\n    return text.replace(/[\\\\\\$\\}]/g, \"\\\\$&\");\n  }\n  getInsertTextForValue(value, separatorAfter) {\n    const text = JSON.stringify(value, null, \"\t\");\n    if (text === \"{}\") {\n      return \"{$1}\" + separatorAfter;\n    } else if (text === \"[]\") {\n      return \"[$1]\" + separatorAfter;\n    }\n    return this.getInsertTextForPlainText(text + separatorAfter);\n  }\n  getInsertTextForSnippetValue(value, separatorAfter) {\n    const replacer = (value2) => {\n      if (typeof value2 === \"string\") {\n        if (value2[0] === \"^\") {\n          return value2.substr(1);\n        }\n      }\n      return JSON.stringify(value2);\n    };\n    return stringifyObject(value, \"\", replacer) + separatorAfter;\n  }\n  getInsertTextForGuessedValue(value, separatorAfter) {\n    switch (typeof value) {\n      case \"object\":\n        if (value === null) {\n          return \"${1:null}\" + separatorAfter;\n        }\n        return this.getInsertTextForValue(value, separatorAfter);\n      case \"string\":\n        let snippetValue = JSON.stringify(value);\n        snippetValue = snippetValue.substr(1, snippetValue.length - 2);\n        snippetValue = this.getInsertTextForPlainText(snippetValue);\n        return '\"${1:' + snippetValue + '}\"' + separatorAfter;\n      case \"number\":\n      case \"boolean\":\n        return \"${1:\" + JSON.stringify(value) + \"}\" + separatorAfter;\n    }\n    return this.getInsertTextForValue(value, separatorAfter);\n  }\n  getSuggestionKind(type) {\n    if (Array.isArray(type)) {\n      const array = type;\n      type = array.length > 0 ? array[0] : void 0;\n    }\n    if (!type) {\n      return CompletionItemKind.Value;\n    }\n    switch (type) {\n      case \"string\":\n        return CompletionItemKind.Value;\n      case \"object\":\n        return CompletionItemKind.Module;\n      case \"property\":\n        return CompletionItemKind.Property;\n      default:\n        return CompletionItemKind.Value;\n    }\n  }\n  getLabelTextForMatchingNode(node, document) {\n    switch (node.type) {\n      case \"array\":\n        return \"[]\";\n      case \"object\":\n        return \"{}\";\n      default:\n        const content = document.getText().substr(node.offset, node.length);\n        return content;\n    }\n  }\n  getInsertTextForMatchingNode(node, document, separatorAfter) {\n    switch (node.type) {\n      case \"array\":\n        return this.getInsertTextForValue([], separatorAfter);\n      case \"object\":\n        return this.getInsertTextForValue({}, separatorAfter);\n      default:\n        const content = document.getText().substr(node.offset, node.length) + separatorAfter;\n        return this.getInsertTextForPlainText(content);\n    }\n  }\n  getInsertTextForProperty(key, propertySchema, addValue, separatorAfter) {\n    const propertyText = this.getInsertTextForValue(key, \"\");\n    if (!addValue) {\n      return propertyText;\n    }\n    const resultText = propertyText + \": \";\n    let value;\n    let nValueProposals = 0;\n    if (propertySchema) {\n      if (Array.isArray(propertySchema.defaultSnippets)) {\n        if (propertySchema.defaultSnippets.length === 1) {\n          const body = propertySchema.defaultSnippets[0].body;\n          if (isDefined(body)) {\n            value = this.getInsertTextForSnippetValue(body, \"\");\n          }\n        }\n        nValueProposals += propertySchema.defaultSnippets.length;\n      }\n      if (propertySchema.enum) {\n        if (!value && propertySchema.enum.length === 1) {\n          value = this.getInsertTextForGuessedValue(propertySchema.enum[0], \"\");\n        }\n        nValueProposals += propertySchema.enum.length;\n      }\n      if (isDefined(propertySchema.const)) {\n        if (!value) {\n          value = this.getInsertTextForGuessedValue(propertySchema.const, \"\");\n        }\n        nValueProposals++;\n      }\n      if (isDefined(propertySchema.default)) {\n        if (!value) {\n          value = this.getInsertTextForGuessedValue(propertySchema.default, \"\");\n        }\n        nValueProposals++;\n      }\n      if (Array.isArray(propertySchema.examples) && propertySchema.examples.length) {\n        if (!value) {\n          value = this.getInsertTextForGuessedValue(propertySchema.examples[0], \"\");\n        }\n        nValueProposals += propertySchema.examples.length;\n      }\n      if (nValueProposals === 0) {\n        let type = Array.isArray(propertySchema.type) ? propertySchema.type[0] : propertySchema.type;\n        if (!type) {\n          if (propertySchema.properties) {\n            type = \"object\";\n          } else if (propertySchema.items) {\n            type = \"array\";\n          }\n        }\n        switch (type) {\n          case \"boolean\":\n            value = \"$1\";\n            break;\n          case \"string\":\n            value = '\"$1\"';\n            break;\n          case \"object\":\n            value = \"{$1}\";\n            break;\n          case \"array\":\n            value = \"[$1]\";\n            break;\n          case \"number\":\n          case \"integer\":\n            value = \"${1:0}\";\n            break;\n          case \"null\":\n            value = \"${1:null}\";\n            break;\n          default:\n            return propertyText;\n        }\n      }\n    }\n    if (!value || nValueProposals > 1) {\n      value = \"$1\";\n    }\n    return resultText + value + separatorAfter;\n  }\n  getCurrentWord(document, offset) {\n    let i = offset - 1;\n    const text = document.getText();\n    while (i >= 0 && ' \t\\n\\r\\v\":{[,]}'.indexOf(text.charAt(i)) === -1) {\n      i--;\n    }\n    return text.substring(i + 1, offset);\n  }\n  evaluateSeparatorAfter(document, offset) {\n    const scanner = createScanner2(document.getText(), true);\n    scanner.setPosition(offset);\n    const token = scanner.scan();\n    switch (token) {\n      case 5:\n      case 2:\n      case 4:\n      case 17:\n        return \"\";\n      default:\n        return \",\";\n    }\n  }\n  findItemAtOffset(node, document, offset) {\n    const scanner = createScanner2(document.getText(), true);\n    const children = node.items;\n    for (let i = children.length - 1; i >= 0; i--) {\n      const child = children[i];\n      if (offset > child.offset + child.length) {\n        scanner.setPosition(child.offset + child.length);\n        const token = scanner.scan();\n        if (token === 5 && offset >= scanner.getTokenOffset() + scanner.getTokenLength()) {\n          return i + 1;\n        }\n        return i;\n      } else if (offset >= child.offset) {\n        return i;\n      }\n    }\n    return 0;\n  }\n  isInComment(document, start, offset) {\n    const scanner = createScanner2(document.getText(), false);\n    scanner.setPosition(start);\n    let token = scanner.scan();\n    while (token !== 17 && scanner.getTokenOffset() + scanner.getTokenLength() < offset) {\n      token = scanner.scan();\n    }\n    return (token === 12 || token === 13) && scanner.getTokenOffset() <= offset;\n  }\n  fromMarkup(markupString) {\n    if (markupString && this.doesSupportMarkdown()) {\n      return {\n        kind: MarkupKind.Markdown,\n        value: markupString\n      };\n    }\n    return void 0;\n  }\n  doesSupportMarkdown() {\n    if (!isDefined(this.supportsMarkdown)) {\n      const documentationFormat = this.clientCapabilities.textDocument?.completion?.completionItem?.documentationFormat;\n      this.supportsMarkdown = Array.isArray(documentationFormat) && documentationFormat.indexOf(MarkupKind.Markdown) !== -1;\n    }\n    return this.supportsMarkdown;\n  }\n  doesSupportsCommitCharacters() {\n    if (!isDefined(this.supportsCommitCharacters)) {\n      this.labelDetailsSupport = this.clientCapabilities.textDocument?.completion?.completionItem?.commitCharactersSupport;\n    }\n    return this.supportsCommitCharacters;\n  }\n  doesSupportsLabelDetails() {\n    if (!isDefined(this.labelDetailsSupport)) {\n      this.labelDetailsSupport = this.clientCapabilities.textDocument?.completion?.completionItem?.labelDetailsSupport;\n    }\n    return this.labelDetailsSupport;\n  }\n};\n\n// node_modules/vscode-json-languageservice/lib/esm/services/jsonHover.js\nvar JSONHover = class {\n  constructor(schemaService, contributions = [], promiseConstructor) {\n    this.schemaService = schemaService;\n    this.contributions = contributions;\n    this.promise = promiseConstructor || Promise;\n  }\n  doHover(document, position, doc) {\n    const offset = document.offsetAt(position);\n    let node = doc.getNodeFromOffset(offset);\n    if (!node || (node.type === \"object\" || node.type === \"array\") && offset > node.offset + 1 && offset < node.offset + node.length - 1) {\n      return this.promise.resolve(null);\n    }\n    const hoverRangeNode = node;\n    if (node.type === \"string\") {\n      const parent = node.parent;\n      if (parent && parent.type === \"property\" && parent.keyNode === node) {\n        node = parent.valueNode;\n        if (!node) {\n          return this.promise.resolve(null);\n        }\n      }\n    }\n    const hoverRange = Range.create(document.positionAt(hoverRangeNode.offset), document.positionAt(hoverRangeNode.offset + hoverRangeNode.length));\n    const createHover = (contents) => {\n      const result = {\n        contents,\n        range: hoverRange\n      };\n      return result;\n    };\n    const location = getNodePath3(node);\n    for (let i = this.contributions.length - 1; i >= 0; i--) {\n      const contribution = this.contributions[i];\n      const promise = contribution.getInfoContribution(document.uri, location);\n      if (promise) {\n        return promise.then((htmlContent) => createHover(htmlContent));\n      }\n    }\n    return this.schemaService.getSchemaForResource(document.uri, doc).then((schema) => {\n      if (schema && node) {\n        const matchingSchemas = doc.getMatchingSchemas(schema.schema, node.offset);\n        let title = void 0;\n        let markdownDescription = void 0;\n        let markdownEnumValueDescription = void 0, enumValue = void 0;\n        matchingSchemas.every((s) => {\n          if (s.node === node && !s.inverted && s.schema) {\n            title = title || s.schema.title;\n            markdownDescription = markdownDescription || s.schema.markdownDescription || toMarkdown(s.schema.description);\n            if (s.schema.enum) {\n              const idx = s.schema.enum.indexOf(getNodeValue3(node));\n              if (s.schema.markdownEnumDescriptions) {\n                markdownEnumValueDescription = s.schema.markdownEnumDescriptions[idx];\n              } else if (s.schema.enumDescriptions) {\n                markdownEnumValueDescription = toMarkdown(s.schema.enumDescriptions[idx]);\n              }\n              if (markdownEnumValueDescription) {\n                enumValue = s.schema.enum[idx];\n                if (typeof enumValue !== \"string\") {\n                  enumValue = JSON.stringify(enumValue);\n                }\n              }\n            }\n          }\n          return true;\n        });\n        let result = \"\";\n        if (title) {\n          result = toMarkdown(title);\n        }\n        if (markdownDescription) {\n          if (result.length > 0) {\n            result += \"\\n\\n\";\n          }\n          result += markdownDescription;\n        }\n        if (markdownEnumValueDescription) {\n          if (result.length > 0) {\n            result += \"\\n\\n\";\n          }\n          result += `\\`${toMarkdownCodeBlock(enumValue)}\\`: ${markdownEnumValueDescription}`;\n        }\n        return createHover([result]);\n      }\n      return null;\n    });\n  }\n};\nfunction toMarkdown(plain) {\n  if (plain) {\n    const res = plain.replace(/([^\\n\\r])(\\r?\\n)([^\\n\\r])/gm, \"$1\\n\\n$3\");\n    return res.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g, \"\\\\$&\");\n  }\n  return void 0;\n}\nfunction toMarkdownCodeBlock(content) {\n  if (content.indexOf(\"`\") !== -1) {\n    return \"`` \" + content + \" ``\";\n  }\n  return content;\n}\n\n// node_modules/vscode-json-languageservice/lib/esm/services/jsonValidation.js\nvar JSONValidation = class {\n  constructor(jsonSchemaService, promiseConstructor) {\n    this.jsonSchemaService = jsonSchemaService;\n    this.promise = promiseConstructor;\n    this.validationEnabled = true;\n  }\n  configure(raw) {\n    if (raw) {\n      this.validationEnabled = raw.validate !== false;\n      this.commentSeverity = raw.allowComments ? void 0 : DiagnosticSeverity.Error;\n    }\n  }\n  doValidation(textDocument, jsonDocument, documentSettings, schema) {\n    if (!this.validationEnabled) {\n      return this.promise.resolve([]);\n    }\n    const diagnostics = [];\n    const added = {};\n    const addProblem = (problem) => {\n      const signature = problem.range.start.line + \" \" + problem.range.start.character + \" \" + problem.message;\n      if (!added[signature]) {\n        added[signature] = true;\n        diagnostics.push(problem);\n      }\n    };\n    const getDiagnostics = (schema2) => {\n      let trailingCommaSeverity = documentSettings?.trailingCommas ? toDiagnosticSeverity(documentSettings.trailingCommas) : DiagnosticSeverity.Error;\n      let commentSeverity = documentSettings?.comments ? toDiagnosticSeverity(documentSettings.comments) : this.commentSeverity;\n      let schemaValidation = documentSettings?.schemaValidation ? toDiagnosticSeverity(documentSettings.schemaValidation) : DiagnosticSeverity.Warning;\n      let schemaRequest = documentSettings?.schemaRequest ? toDiagnosticSeverity(documentSettings.schemaRequest) : DiagnosticSeverity.Warning;\n      if (schema2) {\n        const addSchemaProblem = (errorMessage, errorCode) => {\n          if (jsonDocument.root && schemaRequest) {\n            const astRoot = jsonDocument.root;\n            const property = astRoot.type === \"object\" ? astRoot.properties[0] : void 0;\n            if (property && property.keyNode.value === \"$schema\") {\n              const node = property.valueNode || property;\n              const range = Range.create(textDocument.positionAt(node.offset), textDocument.positionAt(node.offset + node.length));\n              addProblem(Diagnostic.create(range, errorMessage, schemaRequest, errorCode));\n            } else {\n              const range = Range.create(textDocument.positionAt(astRoot.offset), textDocument.positionAt(astRoot.offset + 1));\n              addProblem(Diagnostic.create(range, errorMessage, schemaRequest, errorCode));\n            }\n          }\n        };\n        if (schema2.errors.length) {\n          addSchemaProblem(schema2.errors[0], ErrorCode.SchemaResolveError);\n        } else if (schemaValidation) {\n          for (const warning of schema2.warnings) {\n            addSchemaProblem(warning, ErrorCode.SchemaUnsupportedFeature);\n          }\n          const semanticErrors = jsonDocument.validate(textDocument, schema2.schema, schemaValidation, documentSettings?.schemaDraft);\n          if (semanticErrors) {\n            semanticErrors.forEach(addProblem);\n          }\n        }\n        if (schemaAllowsComments(schema2.schema)) {\n          commentSeverity = void 0;\n        }\n        if (schemaAllowsTrailingCommas(schema2.schema)) {\n          trailingCommaSeverity = void 0;\n        }\n      }\n      for (const p of jsonDocument.syntaxErrors) {\n        if (p.code === ErrorCode.TrailingComma) {\n          if (typeof trailingCommaSeverity !== \"number\") {\n            continue;\n          }\n          p.severity = trailingCommaSeverity;\n        }\n        addProblem(p);\n      }\n      if (typeof commentSeverity === \"number\") {\n        const message = t(\"Comments are not permitted in JSON.\");\n        jsonDocument.comments.forEach((c) => {\n          addProblem(Diagnostic.create(c, message, commentSeverity, ErrorCode.CommentNotPermitted));\n        });\n      }\n      return diagnostics;\n    };\n    if (schema) {\n      const uri = schema.id || \"schemaservice://untitled/\" + idCounter++;\n      const handle = this.jsonSchemaService.registerExternalSchema({ uri, schema });\n      return handle.getResolvedSchema().then((resolvedSchema) => {\n        return getDiagnostics(resolvedSchema);\n      });\n    }\n    return this.jsonSchemaService.getSchemaForResource(textDocument.uri, jsonDocument).then((schema2) => {\n      return getDiagnostics(schema2);\n    });\n  }\n  getLanguageStatus(textDocument, jsonDocument) {\n    return { schemas: this.jsonSchemaService.getSchemaURIsForResource(textDocument.uri, jsonDocument) };\n  }\n};\nvar idCounter = 0;\nfunction schemaAllowsComments(schemaRef) {\n  if (schemaRef && typeof schemaRef === \"object\") {\n    if (isBoolean(schemaRef.allowComments)) {\n      return schemaRef.allowComments;\n    }\n    if (schemaRef.allOf) {\n      for (const schema of schemaRef.allOf) {\n        const allow = schemaAllowsComments(schema);\n        if (isBoolean(allow)) {\n          return allow;\n        }\n      }\n    }\n  }\n  return void 0;\n}\nfunction schemaAllowsTrailingCommas(schemaRef) {\n  if (schemaRef && typeof schemaRef === \"object\") {\n    if (isBoolean(schemaRef.allowTrailingCommas)) {\n      return schemaRef.allowTrailingCommas;\n    }\n    const deprSchemaRef = schemaRef;\n    if (isBoolean(deprSchemaRef[\"allowsTrailingCommas\"])) {\n      return deprSchemaRef[\"allowsTrailingCommas\"];\n    }\n    if (schemaRef.allOf) {\n      for (const schema of schemaRef.allOf) {\n        const allow = schemaAllowsTrailingCommas(schema);\n        if (isBoolean(allow)) {\n          return allow;\n        }\n      }\n    }\n  }\n  return void 0;\n}\nfunction toDiagnosticSeverity(severityLevel) {\n  switch (severityLevel) {\n    case \"error\":\n      return DiagnosticSeverity.Error;\n    case \"warning\":\n      return DiagnosticSeverity.Warning;\n    case \"ignore\":\n      return void 0;\n  }\n  return void 0;\n}\n\n// node_modules/vscode-json-languageservice/lib/esm/utils/colors.js\nvar Digit0 = 48;\nvar Digit9 = 57;\nvar A = 65;\nvar a = 97;\nvar f = 102;\nfunction hexDigit(charCode) {\n  if (charCode < Digit0) {\n    return 0;\n  }\n  if (charCode <= Digit9) {\n    return charCode - Digit0;\n  }\n  if (charCode < a) {\n    charCode += a - A;\n  }\n  if (charCode >= a && charCode <= f) {\n    return charCode - a + 10;\n  }\n  return 0;\n}\nfunction colorFromHex(text) {\n  if (text[0] !== \"#\") {\n    return void 0;\n  }\n  switch (text.length) {\n    case 4:\n      return {\n        red: hexDigit(text.charCodeAt(1)) * 17 / 255,\n        green: hexDigit(text.charCodeAt(2)) * 17 / 255,\n        blue: hexDigit(text.charCodeAt(3)) * 17 / 255,\n        alpha: 1\n      };\n    case 5:\n      return {\n        red: hexDigit(text.charCodeAt(1)) * 17 / 255,\n        green: hexDigit(text.charCodeAt(2)) * 17 / 255,\n        blue: hexDigit(text.charCodeAt(3)) * 17 / 255,\n        alpha: hexDigit(text.charCodeAt(4)) * 17 / 255\n      };\n    case 7:\n      return {\n        red: (hexDigit(text.charCodeAt(1)) * 16 + hexDigit(text.charCodeAt(2))) / 255,\n        green: (hexDigit(text.charCodeAt(3)) * 16 + hexDigit(text.charCodeAt(4))) / 255,\n        blue: (hexDigit(text.charCodeAt(5)) * 16 + hexDigit(text.charCodeAt(6))) / 255,\n        alpha: 1\n      };\n    case 9:\n      return {\n        red: (hexDigit(text.charCodeAt(1)) * 16 + hexDigit(text.charCodeAt(2))) / 255,\n        green: (hexDigit(text.charCodeAt(3)) * 16 + hexDigit(text.charCodeAt(4))) / 255,\n        blue: (hexDigit(text.charCodeAt(5)) * 16 + hexDigit(text.charCodeAt(6))) / 255,\n        alpha: (hexDigit(text.charCodeAt(7)) * 16 + hexDigit(text.charCodeAt(8))) / 255\n      };\n  }\n  return void 0;\n}\n\n// node_modules/vscode-json-languageservice/lib/esm/services/jsonDocumentSymbols.js\nvar JSONDocumentSymbols = class {\n  constructor(schemaService) {\n    this.schemaService = schemaService;\n  }\n  findDocumentSymbols(document, doc, context = { resultLimit: Number.MAX_VALUE }) {\n    const root = doc.root;\n    if (!root) {\n      return [];\n    }\n    let limit = context.resultLimit || Number.MAX_VALUE;\n    const resourceString = document.uri;\n    if (resourceString === \"vscode://defaultsettings/keybindings.json\" || endsWith(resourceString.toLowerCase(), \"/user/keybindings.json\")) {\n      if (root.type === \"array\") {\n        const result2 = [];\n        for (const item of root.items) {\n          if (item.type === \"object\") {\n            for (const property of item.properties) {\n              if (property.keyNode.value === \"key\" && property.valueNode) {\n                const location = Location.create(document.uri, getRange(document, item));\n                result2.push({ name: getName(property.valueNode), kind: SymbolKind.Function, location });\n                limit--;\n                if (limit <= 0) {\n                  if (context && context.onResultLimitExceeded) {\n                    context.onResultLimitExceeded(resourceString);\n                  }\n                  return result2;\n                }\n              }\n            }\n          }\n        }\n        return result2;\n      }\n    }\n    const toVisit = [\n      { node: root, containerName: \"\" }\n    ];\n    let nextToVisit = 0;\n    let limitExceeded = false;\n    const result = [];\n    const collectOutlineEntries = (node, containerName) => {\n      if (node.type === \"array\") {\n        node.items.forEach((node2) => {\n          if (node2) {\n            toVisit.push({ node: node2, containerName });\n          }\n        });\n      } else if (node.type === \"object\") {\n        node.properties.forEach((property) => {\n          const valueNode = property.valueNode;\n          if (valueNode) {\n            if (limit > 0) {\n              limit--;\n              const location = Location.create(document.uri, getRange(document, property));\n              const childContainerName = containerName ? containerName + \".\" + property.keyNode.value : property.keyNode.value;\n              result.push({ name: this.getKeyLabel(property), kind: this.getSymbolKind(valueNode.type), location, containerName });\n              toVisit.push({ node: valueNode, containerName: childContainerName });\n            } else {\n              limitExceeded = true;\n            }\n          }\n        });\n      }\n    };\n    while (nextToVisit < toVisit.length) {\n      const next = toVisit[nextToVisit++];\n      collectOutlineEntries(next.node, next.containerName);\n    }\n    if (limitExceeded && context && context.onResultLimitExceeded) {\n      context.onResultLimitExceeded(resourceString);\n    }\n    return result;\n  }\n  findDocumentSymbols2(document, doc, context = { resultLimit: Number.MAX_VALUE }) {\n    const root = doc.root;\n    if (!root) {\n      return [];\n    }\n    let limit = context.resultLimit || Number.MAX_VALUE;\n    const resourceString = document.uri;\n    if (resourceString === \"vscode://defaultsettings/keybindings.json\" || endsWith(resourceString.toLowerCase(), \"/user/keybindings.json\")) {\n      if (root.type === \"array\") {\n        const result2 = [];\n        for (const item of root.items) {\n          if (item.type === \"object\") {\n            for (const property of item.properties) {\n              if (property.keyNode.value === \"key\" && property.valueNode) {\n                const range = getRange(document, item);\n                const selectionRange = getRange(document, property.keyNode);\n                result2.push({ name: getName(property.valueNode), kind: SymbolKind.Function, range, selectionRange });\n                limit--;\n                if (limit <= 0) {\n                  if (context && context.onResultLimitExceeded) {\n                    context.onResultLimitExceeded(resourceString);\n                  }\n                  return result2;\n                }\n              }\n            }\n          }\n        }\n        return result2;\n      }\n    }\n    const result = [];\n    const toVisit = [\n      { node: root, result }\n    ];\n    let nextToVisit = 0;\n    let limitExceeded = false;\n    const collectOutlineEntries = (node, result2) => {\n      if (node.type === \"array\") {\n        node.items.forEach((node2, index) => {\n          if (node2) {\n            if (limit > 0) {\n              limit--;\n              const range = getRange(document, node2);\n              const selectionRange = range;\n              const name = String(index);\n              const symbol = { name, kind: this.getSymbolKind(node2.type), range, selectionRange, children: [] };\n              result2.push(symbol);\n              toVisit.push({ result: symbol.children, node: node2 });\n            } else {\n              limitExceeded = true;\n            }\n          }\n        });\n      } else if (node.type === \"object\") {\n        node.properties.forEach((property) => {\n          const valueNode = property.valueNode;\n          if (valueNode) {\n            if (limit > 0) {\n              limit--;\n              const range = getRange(document, property);\n              const selectionRange = getRange(document, property.keyNode);\n              const children = [];\n              const symbol = { name: this.getKeyLabel(property), kind: this.getSymbolKind(valueNode.type), range, selectionRange, children, detail: this.getDetail(valueNode) };\n              result2.push(symbol);\n              toVisit.push({ result: children, node: valueNode });\n            } else {\n              limitExceeded = true;\n            }\n          }\n        });\n      }\n    };\n    while (nextToVisit < toVisit.length) {\n      const next = toVisit[nextToVisit++];\n      collectOutlineEntries(next.node, next.result);\n    }\n    if (limitExceeded && context && context.onResultLimitExceeded) {\n      context.onResultLimitExceeded(resourceString);\n    }\n    return result;\n  }\n  getSymbolKind(nodeType) {\n    switch (nodeType) {\n      case \"object\":\n        return SymbolKind.Module;\n      case \"string\":\n        return SymbolKind.String;\n      case \"number\":\n        return SymbolKind.Number;\n      case \"array\":\n        return SymbolKind.Array;\n      case \"boolean\":\n        return SymbolKind.Boolean;\n      default:\n        return SymbolKind.Variable;\n    }\n  }\n  getKeyLabel(property) {\n    let name = property.keyNode.value;\n    if (name) {\n      name = name.replace(/[\\n]/g, \"\\u21B5\");\n    }\n    if (name && name.trim()) {\n      return name;\n    }\n    return `\"${name}\"`;\n  }\n  getDetail(node) {\n    if (!node) {\n      return void 0;\n    }\n    if (node.type === \"boolean\" || node.type === \"number\" || node.type === \"null\" || node.type === \"string\") {\n      return String(node.value);\n    } else {\n      if (node.type === \"array\") {\n        return node.children.length ? void 0 : \"[]\";\n      } else if (node.type === \"object\") {\n        return node.children.length ? void 0 : \"{}\";\n      }\n    }\n    return void 0;\n  }\n  findDocumentColors(document, doc, context) {\n    return this.schemaService.getSchemaForResource(document.uri, doc).then((schema) => {\n      const result = [];\n      if (schema) {\n        let limit = context && typeof context.resultLimit === \"number\" ? context.resultLimit : Number.MAX_VALUE;\n        const matchingSchemas = doc.getMatchingSchemas(schema.schema);\n        const visitedNode = {};\n        for (const s of matchingSchemas) {\n          if (!s.inverted && s.schema && (s.schema.format === \"color\" || s.schema.format === \"color-hex\") && s.node && s.node.type === \"string\") {\n            const nodeId = String(s.node.offset);\n            if (!visitedNode[nodeId]) {\n              const color = colorFromHex(getNodeValue3(s.node));\n              if (color) {\n                const range = getRange(document, s.node);\n                result.push({ color, range });\n              }\n              visitedNode[nodeId] = true;\n              limit--;\n              if (limit <= 0) {\n                if (context && context.onResultLimitExceeded) {\n                  context.onResultLimitExceeded(document.uri);\n                }\n                return result;\n              }\n            }\n          }\n        }\n      }\n      return result;\n    });\n  }\n  getColorPresentations(document, doc, color, range) {\n    const result = [];\n    const red256 = Math.round(color.red * 255), green256 = Math.round(color.green * 255), blue256 = Math.round(color.blue * 255);\n    function toTwoDigitHex(n) {\n      const r = n.toString(16);\n      return r.length !== 2 ? \"0\" + r : r;\n    }\n    let label;\n    if (color.alpha === 1) {\n      label = `#${toTwoDigitHex(red256)}${toTwoDigitHex(green256)}${toTwoDigitHex(blue256)}`;\n    } else {\n      label = `#${toTwoDigitHex(red256)}${toTwoDigitHex(green256)}${toTwoDigitHex(blue256)}${toTwoDigitHex(Math.round(color.alpha * 255))}`;\n    }\n    result.push({ label, textEdit: TextEdit.replace(range, JSON.stringify(label)) });\n    return result;\n  }\n};\nfunction getRange(document, node) {\n  return Range.create(document.positionAt(node.offset), document.positionAt(node.offset + node.length));\n}\nfunction getName(node) {\n  return getNodeValue3(node) || t(\"<empty>\");\n}\n\n// node_modules/vscode-json-languageservice/lib/esm/services/configuration.js\nvar schemaContributions = {\n  schemaAssociations: [],\n  schemas: {\n    // bundle the schema-schema to include (localized) descriptions\n    \"http://json-schema.org/draft-04/schema#\": {\n      \"$schema\": \"http://json-schema.org/draft-04/schema#\",\n      \"definitions\": {\n        \"schemaArray\": {\n          \"type\": \"array\",\n          \"minItems\": 1,\n          \"items\": {\n            \"$ref\": \"#\"\n          }\n        },\n        \"positiveInteger\": {\n          \"type\": \"integer\",\n          \"minimum\": 0\n        },\n        \"positiveIntegerDefault0\": {\n          \"allOf\": [\n            {\n              \"$ref\": \"#/definitions/positiveInteger\"\n            },\n            {\n              \"default\": 0\n            }\n          ]\n        },\n        \"simpleTypes\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"array\",\n            \"boolean\",\n            \"integer\",\n            \"null\",\n            \"number\",\n            \"object\",\n            \"string\"\n          ]\n        },\n        \"stringArray\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"minItems\": 1,\n          \"uniqueItems\": true\n        }\n      },\n      \"type\": \"object\",\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"format\": \"uri\"\n        },\n        \"$schema\": {\n          \"type\": \"string\",\n          \"format\": \"uri\"\n        },\n        \"title\": {\n          \"type\": \"string\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"default\": {},\n        \"multipleOf\": {\n          \"type\": \"number\",\n          \"minimum\": 0,\n          \"exclusiveMinimum\": true\n        },\n        \"maximum\": {\n          \"type\": \"number\"\n        },\n        \"exclusiveMaximum\": {\n          \"type\": \"boolean\",\n          \"default\": false\n        },\n        \"minimum\": {\n          \"type\": \"number\"\n        },\n        \"exclusiveMinimum\": {\n          \"type\": \"boolean\",\n          \"default\": false\n        },\n        \"maxLength\": {\n          \"allOf\": [\n            {\n              \"$ref\": \"#/definitions/positiveInteger\"\n            }\n          ]\n        },\n        \"minLength\": {\n          \"allOf\": [\n            {\n              \"$ref\": \"#/definitions/positiveIntegerDefault0\"\n            }\n          ]\n        },\n        \"pattern\": {\n          \"type\": \"string\",\n          \"format\": \"regex\"\n        },\n        \"additionalItems\": {\n          \"anyOf\": [\n            {\n              \"type\": \"boolean\"\n            },\n            {\n              \"$ref\": \"#\"\n            }\n          ],\n          \"default\": {}\n        },\n        \"items\": {\n          \"anyOf\": [\n            {\n              \"$ref\": \"#\"\n            },\n            {\n              \"$ref\": \"#/definitions/schemaArray\"\n            }\n          ],\n          \"default\": {}\n        },\n        \"maxItems\": {\n          \"allOf\": [\n            {\n              \"$ref\": \"#/definitions/positiveInteger\"\n            }\n          ]\n        },\n        \"minItems\": {\n          \"allOf\": [\n            {\n              \"$ref\": \"#/definitions/positiveIntegerDefault0\"\n            }\n          ]\n        },\n        \"uniqueItems\": {\n          \"type\": \"boolean\",\n          \"default\": false\n        },\n        \"maxProperties\": {\n          \"allOf\": [\n            {\n              \"$ref\": \"#/definitions/positiveInteger\"\n            }\n          ]\n        },\n        \"minProperties\": {\n          \"allOf\": [\n            {\n              \"$ref\": \"#/definitions/positiveIntegerDefault0\"\n            }\n          ]\n        },\n        \"required\": {\n          \"allOf\": [\n            {\n              \"$ref\": \"#/definitions/stringArray\"\n            }\n          ]\n        },\n        \"additionalProperties\": {\n          \"anyOf\": [\n            {\n              \"type\": \"boolean\"\n            },\n            {\n              \"$ref\": \"#\"\n            }\n          ],\n          \"default\": {}\n        },\n        \"definitions\": {\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#\"\n          },\n          \"default\": {}\n        },\n        \"properties\": {\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#\"\n          },\n          \"default\": {}\n        },\n        \"patternProperties\": {\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#\"\n          },\n          \"default\": {}\n        },\n        \"dependencies\": {\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"anyOf\": [\n              {\n                \"$ref\": \"#\"\n              },\n              {\n                \"$ref\": \"#/definitions/stringArray\"\n              }\n            ]\n          }\n        },\n        \"enum\": {\n          \"type\": \"array\",\n          \"minItems\": 1,\n          \"uniqueItems\": true\n        },\n        \"type\": {\n          \"anyOf\": [\n            {\n              \"$ref\": \"#/definitions/simpleTypes\"\n            },\n            {\n              \"type\": \"array\",\n              \"items\": {\n                \"$ref\": \"#/definitions/simpleTypes\"\n              },\n              \"minItems\": 1,\n              \"uniqueItems\": true\n            }\n          ]\n        },\n        \"format\": {\n          \"anyOf\": [\n            {\n              \"type\": \"string\",\n              \"enum\": [\n                \"date-time\",\n                \"uri\",\n                \"email\",\n                \"hostname\",\n                \"ipv4\",\n                \"ipv6\",\n                \"regex\"\n              ]\n            },\n            {\n              \"type\": \"string\"\n            }\n          ]\n        },\n        \"allOf\": {\n          \"allOf\": [\n            {\n              \"$ref\": \"#/definitions/schemaArray\"\n            }\n          ]\n        },\n        \"anyOf\": {\n          \"allOf\": [\n            {\n              \"$ref\": \"#/definitions/schemaArray\"\n            }\n          ]\n        },\n        \"oneOf\": {\n          \"allOf\": [\n            {\n              \"$ref\": \"#/definitions/schemaArray\"\n            }\n          ]\n        },\n        \"not\": {\n          \"allOf\": [\n            {\n              \"$ref\": \"#\"\n            }\n          ]\n        }\n      },\n      \"dependencies\": {\n        \"exclusiveMaximum\": [\n          \"maximum\"\n        ],\n        \"exclusiveMinimum\": [\n          \"minimum\"\n        ]\n      },\n      \"default\": {}\n    },\n    \"http://json-schema.org/draft-07/schema#\": {\n      \"definitions\": {\n        \"schemaArray\": {\n          \"type\": \"array\",\n          \"minItems\": 1,\n          \"items\": { \"$ref\": \"#\" }\n        },\n        \"nonNegativeInteger\": {\n          \"type\": \"integer\",\n          \"minimum\": 0\n        },\n        \"nonNegativeIntegerDefault0\": {\n          \"allOf\": [\n            { \"$ref\": \"#/definitions/nonNegativeInteger\" },\n            { \"default\": 0 }\n          ]\n        },\n        \"simpleTypes\": {\n          \"enum\": [\n            \"array\",\n            \"boolean\",\n            \"integer\",\n            \"null\",\n            \"number\",\n            \"object\",\n            \"string\"\n          ]\n        },\n        \"stringArray\": {\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" },\n          \"uniqueItems\": true,\n          \"default\": []\n        }\n      },\n      \"type\": [\"object\", \"boolean\"],\n      \"properties\": {\n        \"$id\": {\n          \"type\": \"string\",\n          \"format\": \"uri-reference\"\n        },\n        \"$schema\": {\n          \"type\": \"string\",\n          \"format\": \"uri\"\n        },\n        \"$ref\": {\n          \"type\": \"string\",\n          \"format\": \"uri-reference\"\n        },\n        \"$comment\": {\n          \"type\": \"string\"\n        },\n        \"title\": {\n          \"type\": \"string\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"default\": true,\n        \"readOnly\": {\n          \"type\": \"boolean\",\n          \"default\": false\n        },\n        \"examples\": {\n          \"type\": \"array\",\n          \"items\": true\n        },\n        \"multipleOf\": {\n          \"type\": \"number\",\n          \"exclusiveMinimum\": 0\n        },\n        \"maximum\": {\n          \"type\": \"number\"\n        },\n        \"exclusiveMaximum\": {\n          \"type\": \"number\"\n        },\n        \"minimum\": {\n          \"type\": \"number\"\n        },\n        \"exclusiveMinimum\": {\n          \"type\": \"number\"\n        },\n        \"maxLength\": { \"$ref\": \"#/definitions/nonNegativeInteger\" },\n        \"minLength\": { \"$ref\": \"#/definitions/nonNegativeIntegerDefault0\" },\n        \"pattern\": {\n          \"type\": \"string\",\n          \"format\": \"regex\"\n        },\n        \"additionalItems\": { \"$ref\": \"#\" },\n        \"items\": {\n          \"anyOf\": [\n            { \"$ref\": \"#\" },\n            { \"$ref\": \"#/definitions/schemaArray\" }\n          ],\n          \"default\": true\n        },\n        \"maxItems\": { \"$ref\": \"#/definitions/nonNegativeInteger\" },\n        \"minItems\": { \"$ref\": \"#/definitions/nonNegativeIntegerDefault0\" },\n        \"uniqueItems\": {\n          \"type\": \"boolean\",\n          \"default\": false\n        },\n        \"contains\": { \"$ref\": \"#\" },\n        \"maxProperties\": { \"$ref\": \"#/definitions/nonNegativeInteger\" },\n        \"minProperties\": { \"$ref\": \"#/definitions/nonNegativeIntegerDefault0\" },\n        \"required\": { \"$ref\": \"#/definitions/stringArray\" },\n        \"additionalProperties\": { \"$ref\": \"#\" },\n        \"definitions\": {\n          \"type\": \"object\",\n          \"additionalProperties\": { \"$ref\": \"#\" },\n          \"default\": {}\n        },\n        \"properties\": {\n          \"type\": \"object\",\n          \"additionalProperties\": { \"$ref\": \"#\" },\n          \"default\": {}\n        },\n        \"patternProperties\": {\n          \"type\": \"object\",\n          \"additionalProperties\": { \"$ref\": \"#\" },\n          \"propertyNames\": { \"format\": \"regex\" },\n          \"default\": {}\n        },\n        \"dependencies\": {\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"anyOf\": [\n              { \"$ref\": \"#\" },\n              { \"$ref\": \"#/definitions/stringArray\" }\n            ]\n          }\n        },\n        \"propertyNames\": { \"$ref\": \"#\" },\n        \"const\": true,\n        \"enum\": {\n          \"type\": \"array\",\n          \"items\": true,\n          \"minItems\": 1,\n          \"uniqueItems\": true\n        },\n        \"type\": {\n          \"anyOf\": [\n            { \"$ref\": \"#/definitions/simpleTypes\" },\n            {\n              \"type\": \"array\",\n              \"items\": { \"$ref\": \"#/definitions/simpleTypes\" },\n              \"minItems\": 1,\n              \"uniqueItems\": true\n            }\n          ]\n        },\n        \"format\": { \"type\": \"string\" },\n        \"contentMediaType\": { \"type\": \"string\" },\n        \"contentEncoding\": { \"type\": \"string\" },\n        \"if\": { \"$ref\": \"#\" },\n        \"then\": { \"$ref\": \"#\" },\n        \"else\": { \"$ref\": \"#\" },\n        \"allOf\": { \"$ref\": \"#/definitions/schemaArray\" },\n        \"anyOf\": { \"$ref\": \"#/definitions/schemaArray\" },\n        \"oneOf\": { \"$ref\": \"#/definitions/schemaArray\" },\n        \"not\": { \"$ref\": \"#\" }\n      },\n      \"default\": true\n    }\n  }\n};\nvar descriptions = {\n  id: t(\"A unique identifier for the schema.\"),\n  $schema: t(\"The schema to verify this document against.\"),\n  title: t(\"A descriptive title of the element.\"),\n  description: t(\"A long description of the element. Used in hover menus and suggestions.\"),\n  default: t(\"A default value. Used by suggestions.\"),\n  multipleOf: t(\"A number that should cleanly divide the current value (i.e. have no remainder).\"),\n  maximum: t(\"The maximum numerical value, inclusive by default.\"),\n  exclusiveMaximum: t(\"Makes the maximum property exclusive.\"),\n  minimum: t(\"The minimum numerical value, inclusive by default.\"),\n  exclusiveMinimum: t(\"Makes the minimum property exclusive.\"),\n  maxLength: t(\"The maximum length of a string.\"),\n  minLength: t(\"The minimum length of a string.\"),\n  pattern: t(\"A regular expression to match the string against. It is not implicitly anchored.\"),\n  additionalItems: t(\"For arrays, only when items is set as an array. If it is a schema, then this schema validates items after the ones specified by the items array. If it is false, then additional items will cause validation to fail.\"),\n  items: t(\"For arrays. Can either be a schema to validate every element against or an array of schemas to validate each item against in order (the first schema will validate the first element, the second schema will validate the second element, and so on.\"),\n  maxItems: t(\"The maximum number of items that can be inside an array. Inclusive.\"),\n  minItems: t(\"The minimum number of items that can be inside an array. Inclusive.\"),\n  uniqueItems: t(\"If all of the items in the array must be unique. Defaults to false.\"),\n  maxProperties: t(\"The maximum number of properties an object can have. Inclusive.\"),\n  minProperties: t(\"The minimum number of properties an object can have. Inclusive.\"),\n  required: t(\"An array of strings that lists the names of all properties required on this object.\"),\n  additionalProperties: t(\"Either a schema or a boolean. If a schema, then used to validate all properties not matched by 'properties' or 'patternProperties'. If false, then any properties not matched by either will cause this schema to fail.\"),\n  definitions: t(\"Not used for validation. Place subschemas here that you wish to reference inline with $ref.\"),\n  properties: t(\"A map of property names to schemas for each property.\"),\n  patternProperties: t(\"A map of regular expressions on property names to schemas for matching properties.\"),\n  dependencies: t(\"A map of property names to either an array of property names or a schema. An array of property names means the property named in the key depends on the properties in the array being present in the object in order to be valid. If the value is a schema, then the schema is only applied to the object if the property in the key exists on the object.\"),\n  enum: t(\"The set of literal values that are valid.\"),\n  type: t(\"Either a string of one of the basic schema types (number, integer, null, array, object, boolean, string) or an array of strings specifying a subset of those types.\"),\n  format: t(\"Describes the format expected for the value.\"),\n  allOf: t(\"An array of schemas, all of which must match.\"),\n  anyOf: t(\"An array of schemas, where at least one must match.\"),\n  oneOf: t(\"An array of schemas, exactly one of which must match.\"),\n  not: t(\"A schema which must not match.\"),\n  $id: t(\"A unique identifier for the schema.\"),\n  $ref: t(\"Reference a definition hosted on any location.\"),\n  $comment: t(\"Comments from schema authors to readers or maintainers of the schema.\"),\n  readOnly: t(\"Indicates that the value of the instance is managed exclusively by the owning authority.\"),\n  examples: t(\"Sample JSON values associated with a particular schema, for the purpose of illustrating usage.\"),\n  contains: t('An array instance is valid against \"contains\" if at least one of its elements is valid against the given schema.'),\n  propertyNames: t(\"If the instance is an object, this keyword validates if every property name in the instance validates against the provided schema.\"),\n  const: t(\"An instance validates successfully against this keyword if its value is equal to the value of the keyword.\"),\n  contentMediaType: t(\"Describes the media type of a string property.\"),\n  contentEncoding: t(\"Describes the content encoding of a string property.\"),\n  if: t('The validation outcome of the \"if\" subschema controls which of the \"then\" or \"else\" keywords are evaluated.'),\n  then: t('The \"if\" subschema is used for validation when the \"if\" subschema succeeds.'),\n  else: t('The \"else\" subschema is used for validation when the \"if\" subschema fails.')\n};\nfor (const schemaName in schemaContributions.schemas) {\n  const schema = schemaContributions.schemas[schemaName];\n  for (const property in schema.properties) {\n    let propertyObject = schema.properties[property];\n    if (typeof propertyObject === \"boolean\") {\n      propertyObject = schema.properties[property] = {};\n    }\n    const description = descriptions[property];\n    if (description) {\n      propertyObject[\"description\"] = description;\n    }\n  }\n}\n\n// node_modules/vscode-uri/lib/esm/index.mjs\nvar LIB;\n(() => {\n  \"use strict\";\n  var t2 = { 470: (t3) => {\n    function e2(t4) {\n      if (\"string\" != typeof t4)\n        throw new TypeError(\"Path must be a string. Received \" + JSON.stringify(t4));\n    }\n    function r2(t4, e3) {\n      for (var r3, n3 = \"\", i = 0, o = -1, s = 0, h = 0; h <= t4.length; ++h) {\n        if (h < t4.length)\n          r3 = t4.charCodeAt(h);\n        else {\n          if (47 === r3)\n            break;\n          r3 = 47;\n        }\n        if (47 === r3) {\n          if (o === h - 1 || 1 === s)\n            ;\n          else if (o !== h - 1 && 2 === s) {\n            if (n3.length < 2 || 2 !== i || 46 !== n3.charCodeAt(n3.length - 1) || 46 !== n3.charCodeAt(n3.length - 2)) {\n              if (n3.length > 2) {\n                var a2 = n3.lastIndexOf(\"/\");\n                if (a2 !== n3.length - 1) {\n                  -1 === a2 ? (n3 = \"\", i = 0) : i = (n3 = n3.slice(0, a2)).length - 1 - n3.lastIndexOf(\"/\"), o = h, s = 0;\n                  continue;\n                }\n              } else if (2 === n3.length || 1 === n3.length) {\n                n3 = \"\", i = 0, o = h, s = 0;\n                continue;\n              }\n            }\n            e3 && (n3.length > 0 ? n3 += \"/..\" : n3 = \"..\", i = 2);\n          } else\n            n3.length > 0 ? n3 += \"/\" + t4.slice(o + 1, h) : n3 = t4.slice(o + 1, h), i = h - o - 1;\n          o = h, s = 0;\n        } else\n          46 === r3 && -1 !== s ? ++s : s = -1;\n      }\n      return n3;\n    }\n    var n2 = { resolve: function() {\n      for (var t4, n3 = \"\", i = false, o = arguments.length - 1; o >= -1 && !i; o--) {\n        var s;\n        o >= 0 ? s = arguments[o] : (void 0 === t4 && (t4 = process.cwd()), s = t4), e2(s), 0 !== s.length && (n3 = s + \"/\" + n3, i = 47 === s.charCodeAt(0));\n      }\n      return n3 = r2(n3, !i), i ? n3.length > 0 ? \"/\" + n3 : \"/\" : n3.length > 0 ? n3 : \".\";\n    }, normalize: function(t4) {\n      if (e2(t4), 0 === t4.length)\n        return \".\";\n      var n3 = 47 === t4.charCodeAt(0), i = 47 === t4.charCodeAt(t4.length - 1);\n      return 0 !== (t4 = r2(t4, !n3)).length || n3 || (t4 = \".\"), t4.length > 0 && i && (t4 += \"/\"), n3 ? \"/\" + t4 : t4;\n    }, isAbsolute: function(t4) {\n      return e2(t4), t4.length > 0 && 47 === t4.charCodeAt(0);\n    }, join: function() {\n      if (0 === arguments.length)\n        return \".\";\n      for (var t4, r3 = 0; r3 < arguments.length; ++r3) {\n        var i = arguments[r3];\n        e2(i), i.length > 0 && (void 0 === t4 ? t4 = i : t4 += \"/\" + i);\n      }\n      return void 0 === t4 ? \".\" : n2.normalize(t4);\n    }, relative: function(t4, r3) {\n      if (e2(t4), e2(r3), t4 === r3)\n        return \"\";\n      if ((t4 = n2.resolve(t4)) === (r3 = n2.resolve(r3)))\n        return \"\";\n      for (var i = 1; i < t4.length && 47 === t4.charCodeAt(i); ++i)\n        ;\n      for (var o = t4.length, s = o - i, h = 1; h < r3.length && 47 === r3.charCodeAt(h); ++h)\n        ;\n      for (var a2 = r3.length - h, c = s < a2 ? s : a2, f2 = -1, u = 0; u <= c; ++u) {\n        if (u === c) {\n          if (a2 > c) {\n            if (47 === r3.charCodeAt(h + u))\n              return r3.slice(h + u + 1);\n            if (0 === u)\n              return r3.slice(h + u);\n          } else\n            s > c && (47 === t4.charCodeAt(i + u) ? f2 = u : 0 === u && (f2 = 0));\n          break;\n        }\n        var l = t4.charCodeAt(i + u);\n        if (l !== r3.charCodeAt(h + u))\n          break;\n        47 === l && (f2 = u);\n      }\n      var g = \"\";\n      for (u = i + f2 + 1; u <= o; ++u)\n        u !== o && 47 !== t4.charCodeAt(u) || (0 === g.length ? g += \"..\" : g += \"/..\");\n      return g.length > 0 ? g + r3.slice(h + f2) : (h += f2, 47 === r3.charCodeAt(h) && ++h, r3.slice(h));\n    }, _makeLong: function(t4) {\n      return t4;\n    }, dirname: function(t4) {\n      if (e2(t4), 0 === t4.length)\n        return \".\";\n      for (var r3 = t4.charCodeAt(0), n3 = 47 === r3, i = -1, o = true, s = t4.length - 1; s >= 1; --s)\n        if (47 === (r3 = t4.charCodeAt(s))) {\n          if (!o) {\n            i = s;\n            break;\n          }\n        } else\n          o = false;\n      return -1 === i ? n3 ? \"/\" : \".\" : n3 && 1 === i ? \"//\" : t4.slice(0, i);\n    }, basename: function(t4, r3) {\n      if (void 0 !== r3 && \"string\" != typeof r3)\n        throw new TypeError('\"ext\" argument must be a string');\n      e2(t4);\n      var n3, i = 0, o = -1, s = true;\n      if (void 0 !== r3 && r3.length > 0 && r3.length <= t4.length) {\n        if (r3.length === t4.length && r3 === t4)\n          return \"\";\n        var h = r3.length - 1, a2 = -1;\n        for (n3 = t4.length - 1; n3 >= 0; --n3) {\n          var c = t4.charCodeAt(n3);\n          if (47 === c) {\n            if (!s) {\n              i = n3 + 1;\n              break;\n            }\n          } else\n            -1 === a2 && (s = false, a2 = n3 + 1), h >= 0 && (c === r3.charCodeAt(h) ? -1 == --h && (o = n3) : (h = -1, o = a2));\n        }\n        return i === o ? o = a2 : -1 === o && (o = t4.length), t4.slice(i, o);\n      }\n      for (n3 = t4.length - 1; n3 >= 0; --n3)\n        if (47 === t4.charCodeAt(n3)) {\n          if (!s) {\n            i = n3 + 1;\n            break;\n          }\n        } else\n          -1 === o && (s = false, o = n3 + 1);\n      return -1 === o ? \"\" : t4.slice(i, o);\n    }, extname: function(t4) {\n      e2(t4);\n      for (var r3 = -1, n3 = 0, i = -1, o = true, s = 0, h = t4.length - 1; h >= 0; --h) {\n        var a2 = t4.charCodeAt(h);\n        if (47 !== a2)\n          -1 === i && (o = false, i = h + 1), 46 === a2 ? -1 === r3 ? r3 = h : 1 !== s && (s = 1) : -1 !== r3 && (s = -1);\n        else if (!o) {\n          n3 = h + 1;\n          break;\n        }\n      }\n      return -1 === r3 || -1 === i || 0 === s || 1 === s && r3 === i - 1 && r3 === n3 + 1 ? \"\" : t4.slice(r3, i);\n    }, format: function(t4) {\n      if (null === t4 || \"object\" != typeof t4)\n        throw new TypeError('The \"pathObject\" argument must be of type Object. Received type ' + typeof t4);\n      return function(t5, e3) {\n        var r3 = e3.dir || e3.root, n3 = e3.base || (e3.name || \"\") + (e3.ext || \"\");\n        return r3 ? r3 === e3.root ? r3 + n3 : r3 + \"/\" + n3 : n3;\n      }(0, t4);\n    }, parse: function(t4) {\n      e2(t4);\n      var r3 = { root: \"\", dir: \"\", base: \"\", ext: \"\", name: \"\" };\n      if (0 === t4.length)\n        return r3;\n      var n3, i = t4.charCodeAt(0), o = 47 === i;\n      o ? (r3.root = \"/\", n3 = 1) : n3 = 0;\n      for (var s = -1, h = 0, a2 = -1, c = true, f2 = t4.length - 1, u = 0; f2 >= n3; --f2)\n        if (47 !== (i = t4.charCodeAt(f2)))\n          -1 === a2 && (c = false, a2 = f2 + 1), 46 === i ? -1 === s ? s = f2 : 1 !== u && (u = 1) : -1 !== s && (u = -1);\n        else if (!c) {\n          h = f2 + 1;\n          break;\n        }\n      return -1 === s || -1 === a2 || 0 === u || 1 === u && s === a2 - 1 && s === h + 1 ? -1 !== a2 && (r3.base = r3.name = 0 === h && o ? t4.slice(1, a2) : t4.slice(h, a2)) : (0 === h && o ? (r3.name = t4.slice(1, s), r3.base = t4.slice(1, a2)) : (r3.name = t4.slice(h, s), r3.base = t4.slice(h, a2)), r3.ext = t4.slice(s, a2)), h > 0 ? r3.dir = t4.slice(0, h - 1) : o && (r3.dir = \"/\"), r3;\n    }, sep: \"/\", delimiter: \":\", win32: null, posix: null };\n    n2.posix = n2, t3.exports = n2;\n  } }, e = {};\n  function r(n2) {\n    var i = e[n2];\n    if (void 0 !== i)\n      return i.exports;\n    var o = e[n2] = { exports: {} };\n    return t2[n2](o, o.exports, r), o.exports;\n  }\n  r.d = (t3, e2) => {\n    for (var n2 in e2)\n      r.o(e2, n2) && !r.o(t3, n2) && Object.defineProperty(t3, n2, { enumerable: true, get: e2[n2] });\n  }, r.o = (t3, e2) => Object.prototype.hasOwnProperty.call(t3, e2), r.r = (t3) => {\n    \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t3, Symbol.toStringTag, { value: \"Module\" }), Object.defineProperty(t3, \"__esModule\", { value: true });\n  };\n  var n = {};\n  (() => {\n    let t3;\n    if (r.r(n), r.d(n, { URI: () => f2, Utils: () => P }), \"object\" == typeof process)\n      t3 = \"win32\" === process.platform;\n    else if (\"object\" == typeof navigator) {\n      let e3 = navigator.userAgent;\n      t3 = e3.indexOf(\"Windows\") >= 0;\n    }\n    const e2 = /^\\w[\\w\\d+.-]*$/, i = /^\\//, o = /^\\/\\//;\n    function s(t4, r2) {\n      if (!t4.scheme && r2)\n        throw new Error(`[UriError]: Scheme is missing: {scheme: \"\", authority: \"${t4.authority}\", path: \"${t4.path}\", query: \"${t4.query}\", fragment: \"${t4.fragment}\"}`);\n      if (t4.scheme && !e2.test(t4.scheme))\n        throw new Error(\"[UriError]: Scheme contains illegal characters.\");\n      if (t4.path) {\n        if (t4.authority) {\n          if (!i.test(t4.path))\n            throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash (\"/\") character');\n        } else if (o.test(t4.path))\n          throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")');\n      }\n    }\n    const h = \"\", a2 = \"/\", c = /^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/;\n    class f2 {\n      static isUri(t4) {\n        return t4 instanceof f2 || !!t4 && \"string\" == typeof t4.authority && \"string\" == typeof t4.fragment && \"string\" == typeof t4.path && \"string\" == typeof t4.query && \"string\" == typeof t4.scheme && \"string\" == typeof t4.fsPath && \"function\" == typeof t4.with && \"function\" == typeof t4.toString;\n      }\n      scheme;\n      authority;\n      path;\n      query;\n      fragment;\n      constructor(t4, e3, r2, n2, i2, o2 = false) {\n        \"object\" == typeof t4 ? (this.scheme = t4.scheme || h, this.authority = t4.authority || h, this.path = t4.path || h, this.query = t4.query || h, this.fragment = t4.fragment || h) : (this.scheme = /* @__PURE__ */ function(t5, e4) {\n          return t5 || e4 ? t5 : \"file\";\n        }(t4, o2), this.authority = e3 || h, this.path = function(t5, e4) {\n          switch (t5) {\n            case \"https\":\n            case \"http\":\n            case \"file\":\n              e4 ? e4[0] !== a2 && (e4 = a2 + e4) : e4 = a2;\n          }\n          return e4;\n        }(this.scheme, r2 || h), this.query = n2 || h, this.fragment = i2 || h, s(this, o2));\n      }\n      get fsPath() {\n        return m(this, false);\n      }\n      with(t4) {\n        if (!t4)\n          return this;\n        let { scheme: e3, authority: r2, path: n2, query: i2, fragment: o2 } = t4;\n        return void 0 === e3 ? e3 = this.scheme : null === e3 && (e3 = h), void 0 === r2 ? r2 = this.authority : null === r2 && (r2 = h), void 0 === n2 ? n2 = this.path : null === n2 && (n2 = h), void 0 === i2 ? i2 = this.query : null === i2 && (i2 = h), void 0 === o2 ? o2 = this.fragment : null === o2 && (o2 = h), e3 === this.scheme && r2 === this.authority && n2 === this.path && i2 === this.query && o2 === this.fragment ? this : new l(e3, r2, n2, i2, o2);\n      }\n      static parse(t4, e3 = false) {\n        const r2 = c.exec(t4);\n        return r2 ? new l(r2[2] || h, C(r2[4] || h), C(r2[5] || h), C(r2[7] || h), C(r2[9] || h), e3) : new l(h, h, h, h, h);\n      }\n      static file(e3) {\n        let r2 = h;\n        if (t3 && (e3 = e3.replace(/\\\\/g, a2)), e3[0] === a2 && e3[1] === a2) {\n          const t4 = e3.indexOf(a2, 2);\n          -1 === t4 ? (r2 = e3.substring(2), e3 = a2) : (r2 = e3.substring(2, t4), e3 = e3.substring(t4) || a2);\n        }\n        return new l(\"file\", r2, e3, h, h);\n      }\n      static from(t4) {\n        const e3 = new l(t4.scheme, t4.authority, t4.path, t4.query, t4.fragment);\n        return s(e3, true), e3;\n      }\n      toString(t4 = false) {\n        return y(this, t4);\n      }\n      toJSON() {\n        return this;\n      }\n      static revive(t4) {\n        if (t4) {\n          if (t4 instanceof f2)\n            return t4;\n          {\n            const e3 = new l(t4);\n            return e3._formatted = t4.external, e3._fsPath = t4._sep === u ? t4.fsPath : null, e3;\n          }\n        }\n        return t4;\n      }\n    }\n    const u = t3 ? 1 : void 0;\n    class l extends f2 {\n      _formatted = null;\n      _fsPath = null;\n      get fsPath() {\n        return this._fsPath || (this._fsPath = m(this, false)), this._fsPath;\n      }\n      toString(t4 = false) {\n        return t4 ? y(this, true) : (this._formatted || (this._formatted = y(this, false)), this._formatted);\n      }\n      toJSON() {\n        const t4 = { $mid: 1 };\n        return this._fsPath && (t4.fsPath = this._fsPath, t4._sep = u), this._formatted && (t4.external = this._formatted), this.path && (t4.path = this.path), this.scheme && (t4.scheme = this.scheme), this.authority && (t4.authority = this.authority), this.query && (t4.query = this.query), this.fragment && (t4.fragment = this.fragment), t4;\n      }\n    }\n    const g = { 58: \"%3A\", 47: \"%2F\", 63: \"%3F\", 35: \"%23\", 91: \"%5B\", 93: \"%5D\", 64: \"%40\", 33: \"%21\", 36: \"%24\", 38: \"%26\", 39: \"%27\", 40: \"%28\", 41: \"%29\", 42: \"%2A\", 43: \"%2B\", 44: \"%2C\", 59: \"%3B\", 61: \"%3D\", 32: \"%20\" };\n    function d(t4, e3, r2) {\n      let n2, i2 = -1;\n      for (let o2 = 0; o2 < t4.length; o2++) {\n        const s2 = t4.charCodeAt(o2);\n        if (s2 >= 97 && s2 <= 122 || s2 >= 65 && s2 <= 90 || s2 >= 48 && s2 <= 57 || 45 === s2 || 46 === s2 || 95 === s2 || 126 === s2 || e3 && 47 === s2 || r2 && 91 === s2 || r2 && 93 === s2 || r2 && 58 === s2)\n          -1 !== i2 && (n2 += encodeURIComponent(t4.substring(i2, o2)), i2 = -1), void 0 !== n2 && (n2 += t4.charAt(o2));\n        else {\n          void 0 === n2 && (n2 = t4.substr(0, o2));\n          const e4 = g[s2];\n          void 0 !== e4 ? (-1 !== i2 && (n2 += encodeURIComponent(t4.substring(i2, o2)), i2 = -1), n2 += e4) : -1 === i2 && (i2 = o2);\n        }\n      }\n      return -1 !== i2 && (n2 += encodeURIComponent(t4.substring(i2))), void 0 !== n2 ? n2 : t4;\n    }\n    function p(t4) {\n      let e3;\n      for (let r2 = 0; r2 < t4.length; r2++) {\n        const n2 = t4.charCodeAt(r2);\n        35 === n2 || 63 === n2 ? (void 0 === e3 && (e3 = t4.substr(0, r2)), e3 += g[n2]) : void 0 !== e3 && (e3 += t4[r2]);\n      }\n      return void 0 !== e3 ? e3 : t4;\n    }\n    function m(e3, r2) {\n      let n2;\n      return n2 = e3.authority && e3.path.length > 1 && \"file\" === e3.scheme ? `//${e3.authority}${e3.path}` : 47 === e3.path.charCodeAt(0) && (e3.path.charCodeAt(1) >= 65 && e3.path.charCodeAt(1) <= 90 || e3.path.charCodeAt(1) >= 97 && e3.path.charCodeAt(1) <= 122) && 58 === e3.path.charCodeAt(2) ? r2 ? e3.path.substr(1) : e3.path[1].toLowerCase() + e3.path.substr(2) : e3.path, t3 && (n2 = n2.replace(/\\//g, \"\\\\\")), n2;\n    }\n    function y(t4, e3) {\n      const r2 = e3 ? p : d;\n      let n2 = \"\", { scheme: i2, authority: o2, path: s2, query: h2, fragment: c2 } = t4;\n      if (i2 && (n2 += i2, n2 += \":\"), (o2 || \"file\" === i2) && (n2 += a2, n2 += a2), o2) {\n        let t5 = o2.indexOf(\"@\");\n        if (-1 !== t5) {\n          const e4 = o2.substr(0, t5);\n          o2 = o2.substr(t5 + 1), t5 = e4.lastIndexOf(\":\"), -1 === t5 ? n2 += r2(e4, false, false) : (n2 += r2(e4.substr(0, t5), false, false), n2 += \":\", n2 += r2(e4.substr(t5 + 1), false, true)), n2 += \"@\";\n        }\n        o2 = o2.toLowerCase(), t5 = o2.lastIndexOf(\":\"), -1 === t5 ? n2 += r2(o2, false, true) : (n2 += r2(o2.substr(0, t5), false, true), n2 += o2.substr(t5));\n      }\n      if (s2) {\n        if (s2.length >= 3 && 47 === s2.charCodeAt(0) && 58 === s2.charCodeAt(2)) {\n          const t5 = s2.charCodeAt(1);\n          t5 >= 65 && t5 <= 90 && (s2 = `/${String.fromCharCode(t5 + 32)}:${s2.substr(3)}`);\n        } else if (s2.length >= 2 && 58 === s2.charCodeAt(1)) {\n          const t5 = s2.charCodeAt(0);\n          t5 >= 65 && t5 <= 90 && (s2 = `${String.fromCharCode(t5 + 32)}:${s2.substr(2)}`);\n        }\n        n2 += r2(s2, true, false);\n      }\n      return h2 && (n2 += \"?\", n2 += r2(h2, false, false)), c2 && (n2 += \"#\", n2 += e3 ? c2 : d(c2, false, false)), n2;\n    }\n    function v(t4) {\n      try {\n        return decodeURIComponent(t4);\n      } catch {\n        return t4.length > 3 ? t4.substr(0, 3) + v(t4.substr(3)) : t4;\n      }\n    }\n    const b = /(%[0-9A-Za-z][0-9A-Za-z])+/g;\n    function C(t4) {\n      return t4.match(b) ? t4.replace(b, (t5) => v(t5)) : t4;\n    }\n    var A2 = r(470);\n    const w = A2.posix || A2, x = \"/\";\n    var P;\n    !function(t4) {\n      t4.joinPath = function(t5, ...e3) {\n        return t5.with({ path: w.join(t5.path, ...e3) });\n      }, t4.resolvePath = function(t5, ...e3) {\n        let r2 = t5.path, n2 = false;\n        r2[0] !== x && (r2 = x + r2, n2 = true);\n        let i2 = w.resolve(r2, ...e3);\n        return n2 && i2[0] === x && !t5.authority && (i2 = i2.substring(1)), t5.with({ path: i2 });\n      }, t4.dirname = function(t5) {\n        if (0 === t5.path.length || t5.path === x)\n          return t5;\n        let e3 = w.dirname(t5.path);\n        return 1 === e3.length && 46 === e3.charCodeAt(0) && (e3 = \"\"), t5.with({ path: e3 });\n      }, t4.basename = function(t5) {\n        return w.basename(t5.path);\n      }, t4.extname = function(t5) {\n        return w.extname(t5.path);\n      };\n    }(P || (P = {}));\n  })(), LIB = n;\n})();\nvar { URI: URI2, Utils } = LIB;\n\n// node_modules/vscode-json-languageservice/lib/esm/utils/glob.js\nfunction createRegex(glob, opts) {\n  if (typeof glob !== \"string\") {\n    throw new TypeError(\"Expected a string\");\n  }\n  const str = String(glob);\n  let reStr = \"\";\n  const extended = opts ? !!opts.extended : false;\n  const globstar = opts ? !!opts.globstar : false;\n  let inGroup = false;\n  const flags = opts && typeof opts.flags === \"string\" ? opts.flags : \"\";\n  let c;\n  for (let i = 0, len = str.length; i < len; i++) {\n    c = str[i];\n    switch (c) {\n      case \"/\":\n      case \"$\":\n      case \"^\":\n      case \"+\":\n      case \".\":\n      case \"(\":\n      case \")\":\n      case \"=\":\n      case \"!\":\n      case \"|\":\n        reStr += \"\\\\\" + c;\n        break;\n      case \"?\":\n        if (extended) {\n          reStr += \".\";\n          break;\n        }\n      case \"[\":\n      case \"]\":\n        if (extended) {\n          reStr += c;\n          break;\n        }\n      case \"{\":\n        if (extended) {\n          inGroup = true;\n          reStr += \"(\";\n          break;\n        }\n      case \"}\":\n        if (extended) {\n          inGroup = false;\n          reStr += \")\";\n          break;\n        }\n      case \",\":\n        if (inGroup) {\n          reStr += \"|\";\n          break;\n        }\n        reStr += \"\\\\\" + c;\n        break;\n      case \"*\":\n        const prevChar = str[i - 1];\n        let starCount = 1;\n        while (str[i + 1] === \"*\") {\n          starCount++;\n          i++;\n        }\n        const nextChar = str[i + 1];\n        if (!globstar) {\n          reStr += \".*\";\n        } else {\n          const isGlobstar = starCount > 1 && (prevChar === \"/\" || prevChar === void 0 || prevChar === \"{\" || prevChar === \",\") && (nextChar === \"/\" || nextChar === void 0 || nextChar === \",\" || nextChar === \"}\");\n          if (isGlobstar) {\n            if (nextChar === \"/\") {\n              i++;\n            } else if (prevChar === \"/\" && reStr.endsWith(\"\\\\/\")) {\n              reStr = reStr.substr(0, reStr.length - 2);\n            }\n            reStr += \"((?:[^/]*(?:/|$))*)\";\n          } else {\n            reStr += \"([^/]*)\";\n          }\n        }\n        break;\n      default:\n        reStr += c;\n    }\n  }\n  if (!flags || !~flags.indexOf(\"g\")) {\n    reStr = \"^\" + reStr + \"$\";\n  }\n  return new RegExp(reStr, flags);\n}\n\n// node_modules/vscode-json-languageservice/lib/esm/services/jsonSchemaService.js\nvar BANG = \"!\";\nvar PATH_SEP = \"/\";\nvar FilePatternAssociation = class {\n  constructor(pattern, folderUri, uris) {\n    this.folderUri = folderUri;\n    this.uris = uris;\n    this.globWrappers = [];\n    try {\n      for (let patternString of pattern) {\n        const include = patternString[0] !== BANG;\n        if (!include) {\n          patternString = patternString.substring(1);\n        }\n        if (patternString.length > 0) {\n          if (patternString[0] === PATH_SEP) {\n            patternString = patternString.substring(1);\n          }\n          this.globWrappers.push({\n            regexp: createRegex(\"**/\" + patternString, { extended: true, globstar: true }),\n            include\n          });\n        }\n      }\n      ;\n      if (folderUri) {\n        folderUri = normalizeResourceForMatching(folderUri);\n        if (!folderUri.endsWith(\"/\")) {\n          folderUri = folderUri + \"/\";\n        }\n        this.folderUri = folderUri;\n      }\n    } catch (e) {\n      this.globWrappers.length = 0;\n      this.uris = [];\n    }\n  }\n  matchesPattern(fileName) {\n    if (this.folderUri && !fileName.startsWith(this.folderUri)) {\n      return false;\n    }\n    let match = false;\n    for (const { regexp, include } of this.globWrappers) {\n      if (regexp.test(fileName)) {\n        match = include;\n      }\n    }\n    return match;\n  }\n  getURIs() {\n    return this.uris;\n  }\n};\nvar SchemaHandle = class {\n  constructor(service, uri, unresolvedSchemaContent) {\n    this.service = service;\n    this.uri = uri;\n    this.dependencies = /* @__PURE__ */ new Set();\n    this.anchors = void 0;\n    if (unresolvedSchemaContent) {\n      this.unresolvedSchema = this.service.promise.resolve(new UnresolvedSchema(unresolvedSchemaContent));\n    }\n  }\n  getUnresolvedSchema() {\n    if (!this.unresolvedSchema) {\n      this.unresolvedSchema = this.service.loadSchema(this.uri);\n    }\n    return this.unresolvedSchema;\n  }\n  getResolvedSchema() {\n    if (!this.resolvedSchema) {\n      this.resolvedSchema = this.getUnresolvedSchema().then((unresolved) => {\n        return this.service.resolveSchemaContent(unresolved, this);\n      });\n    }\n    return this.resolvedSchema;\n  }\n  clearSchema() {\n    const hasChanges = !!this.unresolvedSchema;\n    this.resolvedSchema = void 0;\n    this.unresolvedSchema = void 0;\n    this.dependencies.clear();\n    this.anchors = void 0;\n    return hasChanges;\n  }\n};\nvar UnresolvedSchema = class {\n  constructor(schema, errors = []) {\n    this.schema = schema;\n    this.errors = errors;\n  }\n};\nvar ResolvedSchema = class {\n  constructor(schema, errors = [], warnings = [], schemaDraft) {\n    this.schema = schema;\n    this.errors = errors;\n    this.warnings = warnings;\n    this.schemaDraft = schemaDraft;\n  }\n  getSection(path) {\n    const schemaRef = this.getSectionRecursive(path, this.schema);\n    if (schemaRef) {\n      return asSchema(schemaRef);\n    }\n    return void 0;\n  }\n  getSectionRecursive(path, schema) {\n    if (!schema || typeof schema === \"boolean\" || path.length === 0) {\n      return schema;\n    }\n    const next = path.shift();\n    if (schema.properties && typeof schema.properties[next]) {\n      return this.getSectionRecursive(path, schema.properties[next]);\n    } else if (schema.patternProperties) {\n      for (const pattern of Object.keys(schema.patternProperties)) {\n        const regex = extendedRegExp(pattern);\n        if (regex?.test(next)) {\n          return this.getSectionRecursive(path, schema.patternProperties[pattern]);\n        }\n      }\n    } else if (typeof schema.additionalProperties === \"object\") {\n      return this.getSectionRecursive(path, schema.additionalProperties);\n    } else if (next.match(\"[0-9]+\")) {\n      if (Array.isArray(schema.items)) {\n        const index = parseInt(next, 10);\n        if (!isNaN(index) && schema.items[index]) {\n          return this.getSectionRecursive(path, schema.items[index]);\n        }\n      } else if (schema.items) {\n        return this.getSectionRecursive(path, schema.items);\n      }\n    }\n    return void 0;\n  }\n};\nvar JSONSchemaService = class {\n  constructor(requestService, contextService, promiseConstructor) {\n    this.contextService = contextService;\n    this.requestService = requestService;\n    this.promiseConstructor = promiseConstructor || Promise;\n    this.callOnDispose = [];\n    this.contributionSchemas = {};\n    this.contributionAssociations = [];\n    this.schemasById = {};\n    this.filePatternAssociations = [];\n    this.registeredSchemasIds = {};\n  }\n  getRegisteredSchemaIds(filter) {\n    return Object.keys(this.registeredSchemasIds).filter((id) => {\n      const scheme = URI2.parse(id).scheme;\n      return scheme !== \"schemaservice\" && (!filter || filter(scheme));\n    });\n  }\n  get promise() {\n    return this.promiseConstructor;\n  }\n  dispose() {\n    while (this.callOnDispose.length > 0) {\n      this.callOnDispose.pop()();\n    }\n  }\n  onResourceChange(uri) {\n    this.cachedSchemaForResource = void 0;\n    let hasChanges = false;\n    uri = normalizeId(uri);\n    const toWalk = [uri];\n    const all = Object.keys(this.schemasById).map((key) => this.schemasById[key]);\n    while (toWalk.length) {\n      const curr = toWalk.pop();\n      for (let i = 0; i < all.length; i++) {\n        const handle = all[i];\n        if (handle && (handle.uri === curr || handle.dependencies.has(curr))) {\n          if (handle.uri !== curr) {\n            toWalk.push(handle.uri);\n          }\n          if (handle.clearSchema()) {\n            hasChanges = true;\n          }\n          all[i] = void 0;\n        }\n      }\n    }\n    return hasChanges;\n  }\n  setSchemaContributions(schemaContributions2) {\n    if (schemaContributions2.schemas) {\n      const schemas = schemaContributions2.schemas;\n      for (const id in schemas) {\n        const normalizedId = normalizeId(id);\n        this.contributionSchemas[normalizedId] = this.addSchemaHandle(normalizedId, schemas[id]);\n      }\n    }\n    if (Array.isArray(schemaContributions2.schemaAssociations)) {\n      const schemaAssociations = schemaContributions2.schemaAssociations;\n      for (let schemaAssociation of schemaAssociations) {\n        const uris = schemaAssociation.uris.map(normalizeId);\n        const association = this.addFilePatternAssociation(schemaAssociation.pattern, schemaAssociation.folderUri, uris);\n        this.contributionAssociations.push(association);\n      }\n    }\n  }\n  addSchemaHandle(id, unresolvedSchemaContent) {\n    const schemaHandle = new SchemaHandle(this, id, unresolvedSchemaContent);\n    this.schemasById[id] = schemaHandle;\n    return schemaHandle;\n  }\n  getOrAddSchemaHandle(id, unresolvedSchemaContent) {\n    return this.schemasById[id] || this.addSchemaHandle(id, unresolvedSchemaContent);\n  }\n  addFilePatternAssociation(pattern, folderUri, uris) {\n    const fpa = new FilePatternAssociation(pattern, folderUri, uris);\n    this.filePatternAssociations.push(fpa);\n    return fpa;\n  }\n  registerExternalSchema(config) {\n    const id = normalizeId(config.uri);\n    this.registeredSchemasIds[id] = true;\n    this.cachedSchemaForResource = void 0;\n    if (config.fileMatch && config.fileMatch.length) {\n      this.addFilePatternAssociation(config.fileMatch, config.folderUri, [id]);\n    }\n    return config.schema ? this.addSchemaHandle(id, config.schema) : this.getOrAddSchemaHandle(id);\n  }\n  clearExternalSchemas() {\n    this.schemasById = {};\n    this.filePatternAssociations = [];\n    this.registeredSchemasIds = {};\n    this.cachedSchemaForResource = void 0;\n    for (const id in this.contributionSchemas) {\n      this.schemasById[id] = this.contributionSchemas[id];\n      this.registeredSchemasIds[id] = true;\n    }\n    for (const contributionAssociation of this.contributionAssociations) {\n      this.filePatternAssociations.push(contributionAssociation);\n    }\n  }\n  getResolvedSchema(schemaId) {\n    const id = normalizeId(schemaId);\n    const schemaHandle = this.schemasById[id];\n    if (schemaHandle) {\n      return schemaHandle.getResolvedSchema();\n    }\n    return this.promise.resolve(void 0);\n  }\n  loadSchema(url) {\n    if (!this.requestService) {\n      const errorMessage = t(\"Unable to load schema from '{0}'. No schema request service available\", toDisplayString(url));\n      return this.promise.resolve(new UnresolvedSchema({}, [errorMessage]));\n    }\n    if (url.startsWith(\"http://json-schema.org/\")) {\n      url = \"https\" + url.substring(4);\n    }\n    return this.requestService(url).then((content) => {\n      if (!content) {\n        const errorMessage = t(\"Unable to load schema from '{0}': No content.\", toDisplayString(url));\n        return new UnresolvedSchema({}, [errorMessage]);\n      }\n      const errors = [];\n      if (content.charCodeAt(0) === 65279) {\n        errors.push(t(\"Problem reading content from '{0}': UTF-8 with BOM detected, only UTF 8 is allowed.\", toDisplayString(url)));\n        content = content.trimStart();\n      }\n      let schemaContent = {};\n      const jsonErrors = [];\n      schemaContent = parse2(content, jsonErrors);\n      if (jsonErrors.length) {\n        errors.push(t(\"Unable to parse content from '{0}': Parse error at offset {1}.\", toDisplayString(url), jsonErrors[0].offset));\n      }\n      return new UnresolvedSchema(schemaContent, errors);\n    }, (error) => {\n      let errorMessage = error.toString();\n      const errorSplit = error.toString().split(\"Error: \");\n      if (errorSplit.length > 1) {\n        errorMessage = errorSplit[1];\n      }\n      if (endsWith(errorMessage, \".\")) {\n        errorMessage = errorMessage.substr(0, errorMessage.length - 1);\n      }\n      return new UnresolvedSchema({}, [t(\"Unable to load schema from '{0}': {1}.\", toDisplayString(url), errorMessage)]);\n    });\n  }\n  resolveSchemaContent(schemaToResolve, handle) {\n    const resolveErrors = schemaToResolve.errors.slice(0);\n    const schema = schemaToResolve.schema;\n    let schemaDraft = schema.$schema ? normalizeId(schema.$schema) : void 0;\n    if (schemaDraft === \"http://json-schema.org/draft-03/schema\") {\n      return this.promise.resolve(new ResolvedSchema({}, [t(\"Draft-03 schemas are not supported.\")], [], schemaDraft));\n    }\n    let usesUnsupportedFeatures = /* @__PURE__ */ new Set();\n    const contextService = this.contextService;\n    const findSectionByJSONPointer = (schema2, path) => {\n      path = decodeURIComponent(path);\n      let current = schema2;\n      if (path[0] === \"/\") {\n        path = path.substring(1);\n      }\n      path.split(\"/\").some((part) => {\n        part = part.replace(/~1/g, \"/\").replace(/~0/g, \"~\");\n        current = current[part];\n        return !current;\n      });\n      return current;\n    };\n    const findSchemaById = (schema2, handle2, id) => {\n      if (!handle2.anchors) {\n        handle2.anchors = collectAnchors(schema2);\n      }\n      return handle2.anchors.get(id);\n    };\n    const merge = (target, section) => {\n      for (const key in section) {\n        if (section.hasOwnProperty(key) && key !== \"id\" && key !== \"$id\") {\n          target[key] = section[key];\n        }\n      }\n    };\n    const mergeRef = (target, sourceRoot, sourceHandle, refSegment) => {\n      let section;\n      if (refSegment === void 0 || refSegment.length === 0) {\n        section = sourceRoot;\n      } else if (refSegment.charAt(0) === \"/\") {\n        section = findSectionByJSONPointer(sourceRoot, refSegment);\n      } else {\n        section = findSchemaById(sourceRoot, sourceHandle, refSegment);\n      }\n      if (section) {\n        merge(target, section);\n      } else {\n        resolveErrors.push(t(\"$ref '{0}' in '{1}' can not be resolved.\", refSegment || \"\", sourceHandle.uri));\n      }\n    };\n    const resolveExternalLink = (node, uri, refSegment, parentHandle) => {\n      if (contextService && !/^[A-Za-z][A-Za-z0-9+\\-.+]*:\\/\\/.*/.test(uri)) {\n        uri = contextService.resolveRelativePath(uri, parentHandle.uri);\n      }\n      uri = normalizeId(uri);\n      const referencedHandle = this.getOrAddSchemaHandle(uri);\n      return referencedHandle.getUnresolvedSchema().then((unresolvedSchema) => {\n        parentHandle.dependencies.add(uri);\n        if (unresolvedSchema.errors.length) {\n          const loc = refSegment ? uri + \"#\" + refSegment : uri;\n          resolveErrors.push(t(\"Problems loading reference '{0}': {1}\", loc, unresolvedSchema.errors[0]));\n        }\n        mergeRef(node, unresolvedSchema.schema, referencedHandle, refSegment);\n        return resolveRefs(node, unresolvedSchema.schema, referencedHandle);\n      });\n    };\n    const resolveRefs = (node, parentSchema, parentHandle) => {\n      const openPromises = [];\n      this.traverseNodes(node, (next) => {\n        const seenRefs = /* @__PURE__ */ new Set();\n        while (next.$ref) {\n          const ref = next.$ref;\n          const segments = ref.split(\"#\", 2);\n          delete next.$ref;\n          if (segments[0].length > 0) {\n            openPromises.push(resolveExternalLink(next, segments[0], segments[1], parentHandle));\n            return;\n          } else {\n            if (!seenRefs.has(ref)) {\n              const id = segments[1];\n              mergeRef(next, parentSchema, parentHandle, id);\n              seenRefs.add(ref);\n            }\n          }\n        }\n        if (next.$recursiveRef) {\n          usesUnsupportedFeatures.add(\"$recursiveRef\");\n        }\n        if (next.$dynamicRef) {\n          usesUnsupportedFeatures.add(\"$dynamicRef\");\n        }\n      });\n      return this.promise.all(openPromises);\n    };\n    const collectAnchors = (root) => {\n      const result = /* @__PURE__ */ new Map();\n      this.traverseNodes(root, (next) => {\n        const id = next.$id || next.id;\n        const anchor = isString(id) && id.charAt(0) === \"#\" ? id.substring(1) : next.$anchor;\n        if (anchor) {\n          if (result.has(anchor)) {\n            resolveErrors.push(t(\"Duplicate anchor declaration: '{0}'\", anchor));\n          } else {\n            result.set(anchor, next);\n          }\n        }\n        if (next.$recursiveAnchor) {\n          usesUnsupportedFeatures.add(\"$recursiveAnchor\");\n        }\n        if (next.$dynamicAnchor) {\n          usesUnsupportedFeatures.add(\"$dynamicAnchor\");\n        }\n      });\n      return result;\n    };\n    return resolveRefs(schema, schema, handle).then((_) => {\n      let resolveWarnings = [];\n      if (usesUnsupportedFeatures.size) {\n        resolveWarnings.push(t(\"The schema uses meta-schema features ({0}) that are not yet supported by the validator.\", Array.from(usesUnsupportedFeatures.keys()).join(\", \")));\n      }\n      return new ResolvedSchema(schema, resolveErrors, resolveWarnings, schemaDraft);\n    });\n  }\n  traverseNodes(root, handle) {\n    if (!root || typeof root !== \"object\") {\n      return Promise.resolve(null);\n    }\n    const seen = /* @__PURE__ */ new Set();\n    const collectEntries = (...entries) => {\n      for (const entry of entries) {\n        if (isObject(entry)) {\n          toWalk.push(entry);\n        }\n      }\n    };\n    const collectMapEntries = (...maps) => {\n      for (const map of maps) {\n        if (isObject(map)) {\n          for (const k in map) {\n            const key = k;\n            const entry = map[key];\n            if (isObject(entry)) {\n              toWalk.push(entry);\n            }\n          }\n        }\n      }\n    };\n    const collectArrayEntries = (...arrays) => {\n      for (const array of arrays) {\n        if (Array.isArray(array)) {\n          for (const entry of array) {\n            if (isObject(entry)) {\n              toWalk.push(entry);\n            }\n          }\n        }\n      }\n    };\n    const collectEntryOrArrayEntries = (items) => {\n      if (Array.isArray(items)) {\n        for (const entry of items) {\n          if (isObject(entry)) {\n            toWalk.push(entry);\n          }\n        }\n      } else if (isObject(items)) {\n        toWalk.push(items);\n      }\n    };\n    const toWalk = [root];\n    let next = toWalk.pop();\n    while (next) {\n      if (!seen.has(next)) {\n        seen.add(next);\n        handle(next);\n        collectEntries(next.additionalItems, next.additionalProperties, next.not, next.contains, next.propertyNames, next.if, next.then, next.else, next.unevaluatedItems, next.unevaluatedProperties);\n        collectMapEntries(next.definitions, next.$defs, next.properties, next.patternProperties, next.dependencies, next.dependentSchemas);\n        collectArrayEntries(next.anyOf, next.allOf, next.oneOf, next.prefixItems);\n        collectEntryOrArrayEntries(next.items);\n      }\n      next = toWalk.pop();\n    }\n  }\n  getSchemaFromProperty(resource, document) {\n    if (document.root?.type === \"object\") {\n      for (const p of document.root.properties) {\n        if (p.keyNode.value === \"$schema\" && p.valueNode?.type === \"string\") {\n          let schemaId = p.valueNode.value;\n          if (this.contextService && !/^\\w[\\w\\d+.-]*:/.test(schemaId)) {\n            schemaId = this.contextService.resolveRelativePath(schemaId, resource);\n          }\n          return schemaId;\n        }\n      }\n    }\n    return void 0;\n  }\n  getAssociatedSchemas(resource) {\n    const seen = /* @__PURE__ */ Object.create(null);\n    const schemas = [];\n    const normalizedResource = normalizeResourceForMatching(resource);\n    for (const entry of this.filePatternAssociations) {\n      if (entry.matchesPattern(normalizedResource)) {\n        for (const schemaId of entry.getURIs()) {\n          if (!seen[schemaId]) {\n            schemas.push(schemaId);\n            seen[schemaId] = true;\n          }\n        }\n      }\n    }\n    return schemas;\n  }\n  getSchemaURIsForResource(resource, document) {\n    let schemeId = document && this.getSchemaFromProperty(resource, document);\n    if (schemeId) {\n      return [schemeId];\n    }\n    return this.getAssociatedSchemas(resource);\n  }\n  getSchemaForResource(resource, document) {\n    if (document) {\n      let schemeId = this.getSchemaFromProperty(resource, document);\n      if (schemeId) {\n        const id = normalizeId(schemeId);\n        return this.getOrAddSchemaHandle(id).getResolvedSchema();\n      }\n    }\n    if (this.cachedSchemaForResource && this.cachedSchemaForResource.resource === resource) {\n      return this.cachedSchemaForResource.resolvedSchema;\n    }\n    const schemas = this.getAssociatedSchemas(resource);\n    const resolvedSchema = schemas.length > 0 ? this.createCombinedSchema(resource, schemas).getResolvedSchema() : this.promise.resolve(void 0);\n    this.cachedSchemaForResource = { resource, resolvedSchema };\n    return resolvedSchema;\n  }\n  createCombinedSchema(resource, schemaIds) {\n    if (schemaIds.length === 1) {\n      return this.getOrAddSchemaHandle(schemaIds[0]);\n    } else {\n      const combinedSchemaId = \"schemaservice://combinedSchema/\" + encodeURIComponent(resource);\n      const combinedSchema = {\n        allOf: schemaIds.map((schemaId) => ({ $ref: schemaId }))\n      };\n      return this.addSchemaHandle(combinedSchemaId, combinedSchema);\n    }\n  }\n  getMatchingSchemas(document, jsonDocument, schema) {\n    if (schema) {\n      const id = schema.id || \"schemaservice://untitled/matchingSchemas/\" + idCounter2++;\n      const handle = this.addSchemaHandle(id, schema);\n      return handle.getResolvedSchema().then((resolvedSchema) => {\n        return jsonDocument.getMatchingSchemas(resolvedSchema.schema).filter((s) => !s.inverted);\n      });\n    }\n    return this.getSchemaForResource(document.uri, jsonDocument).then((schema2) => {\n      if (schema2) {\n        return jsonDocument.getMatchingSchemas(schema2.schema).filter((s) => !s.inverted);\n      }\n      return [];\n    });\n  }\n};\nvar idCounter2 = 0;\nfunction normalizeId(id) {\n  try {\n    return URI2.parse(id).toString(true);\n  } catch (e) {\n    return id;\n  }\n}\nfunction normalizeResourceForMatching(resource) {\n  try {\n    return URI2.parse(resource).with({ fragment: null, query: null }).toString(true);\n  } catch (e) {\n    return resource;\n  }\n}\nfunction toDisplayString(url) {\n  try {\n    const uri = URI2.parse(url);\n    if (uri.scheme === \"file\") {\n      return uri.fsPath;\n    }\n  } catch (e) {\n  }\n  return url;\n}\n\n// node_modules/vscode-json-languageservice/lib/esm/services/jsonFolding.js\nfunction getFoldingRanges(document, context) {\n  const ranges = [];\n  const nestingLevels = [];\n  const stack = [];\n  let prevStart = -1;\n  const scanner = createScanner2(document.getText(), false);\n  let token = scanner.scan();\n  function addRange(range) {\n    ranges.push(range);\n    nestingLevels.push(stack.length);\n  }\n  while (token !== 17) {\n    switch (token) {\n      case 1:\n      case 3: {\n        const startLine = document.positionAt(scanner.getTokenOffset()).line;\n        const range = { startLine, endLine: startLine, kind: token === 1 ? \"object\" : \"array\" };\n        stack.push(range);\n        break;\n      }\n      case 2:\n      case 4: {\n        const kind = token === 2 ? \"object\" : \"array\";\n        if (stack.length > 0 && stack[stack.length - 1].kind === kind) {\n          const range = stack.pop();\n          const line = document.positionAt(scanner.getTokenOffset()).line;\n          if (range && line > range.startLine + 1 && prevStart !== range.startLine) {\n            range.endLine = line - 1;\n            addRange(range);\n            prevStart = range.startLine;\n          }\n        }\n        break;\n      }\n      case 13: {\n        const startLine = document.positionAt(scanner.getTokenOffset()).line;\n        const endLine = document.positionAt(scanner.getTokenOffset() + scanner.getTokenLength()).line;\n        if (scanner.getTokenError() === 1 && startLine + 1 < document.lineCount) {\n          scanner.setPosition(document.offsetAt(Position.create(startLine + 1, 0)));\n        } else {\n          if (startLine < endLine) {\n            addRange({ startLine, endLine, kind: FoldingRangeKind.Comment });\n            prevStart = startLine;\n          }\n        }\n        break;\n      }\n      case 12: {\n        const text = document.getText().substr(scanner.getTokenOffset(), scanner.getTokenLength());\n        const m = text.match(/^\\/\\/\\s*#(region\\b)|(endregion\\b)/);\n        if (m) {\n          const line = document.positionAt(scanner.getTokenOffset()).line;\n          if (m[1]) {\n            const range = { startLine: line, endLine: line, kind: FoldingRangeKind.Region };\n            stack.push(range);\n          } else {\n            let i = stack.length - 1;\n            while (i >= 0 && stack[i].kind !== FoldingRangeKind.Region) {\n              i--;\n            }\n            if (i >= 0) {\n              const range = stack[i];\n              stack.length = i;\n              if (line > range.startLine && prevStart !== range.startLine) {\n                range.endLine = line;\n                addRange(range);\n                prevStart = range.startLine;\n              }\n            }\n          }\n        }\n        break;\n      }\n    }\n    token = scanner.scan();\n  }\n  const rangeLimit = context && context.rangeLimit;\n  if (typeof rangeLimit !== \"number\" || ranges.length <= rangeLimit) {\n    return ranges;\n  }\n  if (context && context.onRangeLimitExceeded) {\n    context.onRangeLimitExceeded(document.uri);\n  }\n  const counts = [];\n  for (let level of nestingLevels) {\n    if (level < 30) {\n      counts[level] = (counts[level] || 0) + 1;\n    }\n  }\n  let entries = 0;\n  let maxLevel = 0;\n  for (let i = 0; i < counts.length; i++) {\n    const n = counts[i];\n    if (n) {\n      if (n + entries > rangeLimit) {\n        maxLevel = i;\n        break;\n      }\n      entries += n;\n    }\n  }\n  const result = [];\n  for (let i = 0; i < ranges.length; i++) {\n    const level = nestingLevels[i];\n    if (typeof level === \"number\") {\n      if (level < maxLevel || level === maxLevel && entries++ < rangeLimit) {\n        result.push(ranges[i]);\n      }\n    }\n  }\n  return result;\n}\n\n// node_modules/vscode-json-languageservice/lib/esm/services/jsonSelectionRanges.js\nfunction getSelectionRanges(document, positions, doc) {\n  function getSelectionRange(position) {\n    let offset = document.offsetAt(position);\n    let node = doc.getNodeFromOffset(offset, true);\n    const result = [];\n    while (node) {\n      switch (node.type) {\n        case \"string\":\n        case \"object\":\n        case \"array\":\n          const cStart = node.offset + 1, cEnd = node.offset + node.length - 1;\n          if (cStart < cEnd && offset >= cStart && offset <= cEnd) {\n            result.push(newRange(cStart, cEnd));\n          }\n          result.push(newRange(node.offset, node.offset + node.length));\n          break;\n        case \"number\":\n        case \"boolean\":\n        case \"null\":\n        case \"property\":\n          result.push(newRange(node.offset, node.offset + node.length));\n          break;\n      }\n      if (node.type === \"property\" || node.parent && node.parent.type === \"array\") {\n        const afterCommaOffset = getOffsetAfterNextToken(\n          node.offset + node.length,\n          5\n          /* SyntaxKind.CommaToken */\n        );\n        if (afterCommaOffset !== -1) {\n          result.push(newRange(node.offset, afterCommaOffset));\n        }\n      }\n      node = node.parent;\n    }\n    let current = void 0;\n    for (let index = result.length - 1; index >= 0; index--) {\n      current = SelectionRange.create(result[index], current);\n    }\n    if (!current) {\n      current = SelectionRange.create(Range.create(position, position));\n    }\n    return current;\n  }\n  function newRange(start, end) {\n    return Range.create(document.positionAt(start), document.positionAt(end));\n  }\n  const scanner = createScanner2(document.getText(), true);\n  function getOffsetAfterNextToken(offset, expectedToken) {\n    scanner.setPosition(offset);\n    let token = scanner.scan();\n    if (token === expectedToken) {\n      return scanner.getTokenOffset() + scanner.getTokenLength();\n    }\n    return -1;\n  }\n  return positions.map(getSelectionRange);\n}\n\n// node_modules/vscode-json-languageservice/lib/esm/utils/format.js\nfunction format4(documentToFormat, formattingOptions, formattingRange) {\n  let range = void 0;\n  if (formattingRange) {\n    const offset = documentToFormat.offsetAt(formattingRange.start);\n    const length = documentToFormat.offsetAt(formattingRange.end) - offset;\n    range = { offset, length };\n  }\n  const options = {\n    tabSize: formattingOptions ? formattingOptions.tabSize : 4,\n    insertSpaces: formattingOptions?.insertSpaces === true,\n    insertFinalNewline: formattingOptions?.insertFinalNewline === true,\n    eol: \"\\n\",\n    keepLines: formattingOptions?.keepLines === true\n  };\n  return format2(documentToFormat.getText(), range, options).map((edit) => {\n    return TextEdit.replace(Range.create(documentToFormat.positionAt(edit.offset), documentToFormat.positionAt(edit.offset + edit.length)), edit.content);\n  });\n}\n\n// node_modules/vscode-json-languageservice/lib/esm/utils/propertyTree.js\nvar Container;\n(function(Container2) {\n  Container2[Container2[\"Object\"] = 0] = \"Object\";\n  Container2[Container2[\"Array\"] = 1] = \"Array\";\n})(Container || (Container = {}));\nvar PropertyTree = class {\n  constructor(propertyName, beginningLineNumber) {\n    this.propertyName = propertyName ?? \"\";\n    this.beginningLineNumber = beginningLineNumber;\n    this.childrenProperties = [];\n    this.lastProperty = false;\n    this.noKeyName = false;\n  }\n  addChildProperty(childProperty) {\n    childProperty.parent = this;\n    if (this.childrenProperties.length > 0) {\n      let insertionIndex = 0;\n      if (childProperty.noKeyName) {\n        insertionIndex = this.childrenProperties.length;\n      } else {\n        insertionIndex = binarySearchOnPropertyArray(this.childrenProperties, childProperty, compareProperties);\n      }\n      if (insertionIndex < 0) {\n        insertionIndex = insertionIndex * -1 - 1;\n      }\n      this.childrenProperties.splice(insertionIndex, 0, childProperty);\n    } else {\n      this.childrenProperties.push(childProperty);\n    }\n    return childProperty;\n  }\n};\nfunction compareProperties(propertyTree1, propertyTree2) {\n  const propertyName1 = propertyTree1.propertyName.toLowerCase();\n  const propertyName2 = propertyTree2.propertyName.toLowerCase();\n  if (propertyName1 < propertyName2) {\n    return -1;\n  } else if (propertyName1 > propertyName2) {\n    return 1;\n  }\n  return 0;\n}\nfunction binarySearchOnPropertyArray(propertyTreeArray, propertyTree, compare_fn) {\n  const propertyName = propertyTree.propertyName.toLowerCase();\n  const firstPropertyInArrayName = propertyTreeArray[0].propertyName.toLowerCase();\n  const lastPropertyInArrayName = propertyTreeArray[propertyTreeArray.length - 1].propertyName.toLowerCase();\n  if (propertyName < firstPropertyInArrayName) {\n    return 0;\n  }\n  if (propertyName > lastPropertyInArrayName) {\n    return propertyTreeArray.length;\n  }\n  let m = 0;\n  let n = propertyTreeArray.length - 1;\n  while (m <= n) {\n    let k = n + m >> 1;\n    let cmp = compare_fn(propertyTree, propertyTreeArray[k]);\n    if (cmp > 0) {\n      m = k + 1;\n    } else if (cmp < 0) {\n      n = k - 1;\n    } else {\n      return k;\n    }\n  }\n  return -m - 1;\n}\n\n// node_modules/vscode-json-languageservice/lib/esm/utils/sort.js\nfunction sort(documentToSort, formattingOptions) {\n  const options = {\n    ...formattingOptions,\n    keepLines: false\n    // keepLines must be false so that the properties are on separate lines for the sorting\n  };\n  const formattedJsonString = TextDocument2.applyEdits(documentToSort, format4(documentToSort, options, void 0));\n  const formattedJsonDocument = TextDocument2.create(\"test://test.json\", \"json\", 0, formattedJsonString);\n  const jsonPropertyTree = findJsoncPropertyTree(formattedJsonDocument);\n  const sortedJsonDocument = sortJsoncDocument(formattedJsonDocument, jsonPropertyTree);\n  const edits = format4(sortedJsonDocument, options, void 0);\n  const sortedAndFormattedJsonDocument = TextDocument2.applyEdits(sortedJsonDocument, edits);\n  return [TextEdit.replace(Range.create(Position.create(0, 0), documentToSort.positionAt(documentToSort.getText().length)), sortedAndFormattedJsonDocument)];\n}\nfunction findJsoncPropertyTree(formattedDocument) {\n  const formattedString = formattedDocument.getText();\n  const scanner = createScanner2(formattedString, false);\n  let rootTree = new PropertyTree();\n  let currentTree = rootTree;\n  let currentProperty = rootTree;\n  let lastProperty = rootTree;\n  let token = void 0;\n  let lastTokenLine = 0;\n  let numberOfCharactersOnPreviousLines = 0;\n  let lastNonTriviaNonCommentToken = void 0;\n  let secondToLastNonTriviaNonCommentToken = void 0;\n  let lineOfLastNonTriviaNonCommentToken = -1;\n  let endIndexOfLastNonTriviaNonCommentToken = -1;\n  let beginningLineNumber = 0;\n  let endLineNumber = 0;\n  let currentContainerStack = [];\n  let updateLastPropertyEndLineNumber = false;\n  let updateBeginningLineNumber = false;\n  while ((token = scanner.scan()) !== 17) {\n    if (updateLastPropertyEndLineNumber === true && token !== 14 && token !== 15 && token !== 12 && token !== 13 && currentProperty.endLineNumber === void 0) {\n      let endLineNumber2 = scanner.getTokenStartLine();\n      if (secondToLastNonTriviaNonCommentToken === 2 || secondToLastNonTriviaNonCommentToken === 4) {\n        lastProperty.endLineNumber = endLineNumber2 - 1;\n      } else {\n        currentProperty.endLineNumber = endLineNumber2 - 1;\n      }\n      beginningLineNumber = endLineNumber2;\n      updateLastPropertyEndLineNumber = false;\n    }\n    if (updateBeginningLineNumber === true && token !== 14 && token !== 15 && token !== 12 && token !== 13) {\n      beginningLineNumber = scanner.getTokenStartLine();\n      updateBeginningLineNumber = false;\n    }\n    if (scanner.getTokenStartLine() !== lastTokenLine) {\n      for (let i = lastTokenLine; i < scanner.getTokenStartLine(); i++) {\n        const lengthOfLine = formattedDocument.getText(Range.create(Position.create(i, 0), Position.create(i + 1, 0))).length;\n        numberOfCharactersOnPreviousLines = numberOfCharactersOnPreviousLines + lengthOfLine;\n      }\n      lastTokenLine = scanner.getTokenStartLine();\n    }\n    switch (token) {\n      case 10: {\n        if (lastNonTriviaNonCommentToken === void 0 || lastNonTriviaNonCommentToken === 1 || lastNonTriviaNonCommentToken === 5 && currentContainerStack[currentContainerStack.length - 1] === Container.Object) {\n          const childProperty = new PropertyTree(scanner.getTokenValue(), beginningLineNumber);\n          lastProperty = currentProperty;\n          currentProperty = currentTree.addChildProperty(childProperty);\n        }\n        break;\n      }\n      case 3: {\n        if (rootTree.beginningLineNumber === void 0) {\n          rootTree.beginningLineNumber = scanner.getTokenStartLine();\n        }\n        if (currentContainerStack[currentContainerStack.length - 1] === Container.Object) {\n          currentTree = currentProperty;\n        } else if (currentContainerStack[currentContainerStack.length - 1] === Container.Array) {\n          const childProperty = new PropertyTree(scanner.getTokenValue(), beginningLineNumber);\n          childProperty.noKeyName = true;\n          lastProperty = currentProperty;\n          currentProperty = currentTree.addChildProperty(childProperty);\n          currentTree = currentProperty;\n        }\n        currentContainerStack.push(Container.Array);\n        currentProperty.type = Container.Array;\n        beginningLineNumber = scanner.getTokenStartLine();\n        beginningLineNumber++;\n        break;\n      }\n      case 1: {\n        if (rootTree.beginningLineNumber === void 0) {\n          rootTree.beginningLineNumber = scanner.getTokenStartLine();\n        } else if (currentContainerStack[currentContainerStack.length - 1] === Container.Array) {\n          const childProperty = new PropertyTree(scanner.getTokenValue(), beginningLineNumber);\n          childProperty.noKeyName = true;\n          lastProperty = currentProperty;\n          currentProperty = currentTree.addChildProperty(childProperty);\n        }\n        currentProperty.type = Container.Object;\n        currentContainerStack.push(Container.Object);\n        currentTree = currentProperty;\n        beginningLineNumber = scanner.getTokenStartLine();\n        beginningLineNumber++;\n        break;\n      }\n      case 4: {\n        endLineNumber = scanner.getTokenStartLine();\n        currentContainerStack.pop();\n        if (currentProperty.endLineNumber === void 0 && (lastNonTriviaNonCommentToken === 2 || lastNonTriviaNonCommentToken === 4)) {\n          currentProperty.endLineNumber = endLineNumber - 1;\n          currentProperty.lastProperty = true;\n          currentProperty.lineWhereToAddComma = lineOfLastNonTriviaNonCommentToken;\n          currentProperty.indexWhereToAddComa = endIndexOfLastNonTriviaNonCommentToken;\n          lastProperty = currentProperty;\n          currentProperty = currentProperty ? currentProperty.parent : void 0;\n          currentTree = currentProperty;\n        }\n        rootTree.endLineNumber = endLineNumber;\n        beginningLineNumber = endLineNumber + 1;\n        break;\n      }\n      case 2: {\n        endLineNumber = scanner.getTokenStartLine();\n        currentContainerStack.pop();\n        if (lastNonTriviaNonCommentToken !== 1) {\n          if (currentProperty.endLineNumber === void 0) {\n            currentProperty.endLineNumber = endLineNumber - 1;\n            currentProperty.lastProperty = true;\n            currentProperty.lineWhereToAddComma = lineOfLastNonTriviaNonCommentToken;\n            currentProperty.indexWhereToAddComa = endIndexOfLastNonTriviaNonCommentToken;\n          }\n          lastProperty = currentProperty;\n          currentProperty = currentProperty ? currentProperty.parent : void 0;\n          currentTree = currentProperty;\n        }\n        rootTree.endLineNumber = scanner.getTokenStartLine();\n        beginningLineNumber = endLineNumber + 1;\n        break;\n      }\n      case 5: {\n        endLineNumber = scanner.getTokenStartLine();\n        if (currentProperty.endLineNumber === void 0 && (currentContainerStack[currentContainerStack.length - 1] === Container.Object || currentContainerStack[currentContainerStack.length - 1] === Container.Array && (lastNonTriviaNonCommentToken === 2 || lastNonTriviaNonCommentToken === 4))) {\n          currentProperty.endLineNumber = endLineNumber;\n          currentProperty.commaIndex = scanner.getTokenOffset() - numberOfCharactersOnPreviousLines;\n          currentProperty.commaLine = endLineNumber;\n        }\n        if (lastNonTriviaNonCommentToken === 2 || lastNonTriviaNonCommentToken === 4) {\n          lastProperty = currentProperty;\n          currentProperty = currentProperty ? currentProperty.parent : void 0;\n          currentTree = currentProperty;\n        }\n        beginningLineNumber = endLineNumber + 1;\n        break;\n      }\n      case 13: {\n        if (lastNonTriviaNonCommentToken === 5 && lineOfLastNonTriviaNonCommentToken === scanner.getTokenStartLine() && (currentContainerStack[currentContainerStack.length - 1] === Container.Array && (secondToLastNonTriviaNonCommentToken === 2 || secondToLastNonTriviaNonCommentToken === 4) || currentContainerStack[currentContainerStack.length - 1] === Container.Object)) {\n          if (currentContainerStack[currentContainerStack.length - 1] === Container.Array && (secondToLastNonTriviaNonCommentToken === 2 || secondToLastNonTriviaNonCommentToken === 4) || currentContainerStack[currentContainerStack.length - 1] === Container.Object) {\n            currentProperty.endLineNumber = void 0;\n            updateLastPropertyEndLineNumber = true;\n          }\n        }\n        if ((lastNonTriviaNonCommentToken === 1 || lastNonTriviaNonCommentToken === 3) && lineOfLastNonTriviaNonCommentToken === scanner.getTokenStartLine()) {\n          updateBeginningLineNumber = true;\n        }\n        break;\n      }\n    }\n    if (token !== 14 && token !== 13 && token !== 12 && token !== 15) {\n      secondToLastNonTriviaNonCommentToken = lastNonTriviaNonCommentToken;\n      lastNonTriviaNonCommentToken = token;\n      lineOfLastNonTriviaNonCommentToken = scanner.getTokenStartLine();\n      endIndexOfLastNonTriviaNonCommentToken = scanner.getTokenOffset() + scanner.getTokenLength() - numberOfCharactersOnPreviousLines;\n    }\n  }\n  return rootTree;\n}\nfunction sortJsoncDocument(jsonDocument, propertyTree) {\n  if (propertyTree.childrenProperties.length === 0) {\n    return jsonDocument;\n  }\n  const sortedJsonDocument = TextDocument2.create(\"test://test.json\", \"json\", 0, jsonDocument.getText());\n  const queueToSort = [];\n  updateSortingQueue(queueToSort, propertyTree, propertyTree.beginningLineNumber);\n  while (queueToSort.length > 0) {\n    const dataToSort = queueToSort.shift();\n    const propertyTreeArray = dataToSort.propertyTreeArray;\n    let beginningLineNumber = dataToSort.beginningLineNumber;\n    for (let i = 0; i < propertyTreeArray.length; i++) {\n      const propertyTree2 = propertyTreeArray[i];\n      const range = Range.create(Position.create(propertyTree2.beginningLineNumber, 0), Position.create(propertyTree2.endLineNumber + 1, 0));\n      const jsonContentToReplace = jsonDocument.getText(range);\n      const jsonDocumentToReplace = TextDocument2.create(\"test://test.json\", \"json\", 0, jsonContentToReplace);\n      if (propertyTree2.lastProperty === true && i !== propertyTreeArray.length - 1) {\n        const lineWhereToAddComma = propertyTree2.lineWhereToAddComma - propertyTree2.beginningLineNumber;\n        const indexWhereToAddComma = propertyTree2.indexWhereToAddComa;\n        const edit2 = {\n          range: Range.create(Position.create(lineWhereToAddComma, indexWhereToAddComma), Position.create(lineWhereToAddComma, indexWhereToAddComma)),\n          text: \",\"\n        };\n        TextDocument2.update(jsonDocumentToReplace, [edit2], 1);\n      } else if (propertyTree2.lastProperty === false && i === propertyTreeArray.length - 1) {\n        const commaIndex = propertyTree2.commaIndex;\n        const commaLine = propertyTree2.commaLine;\n        const lineWhereToRemoveComma = commaLine - propertyTree2.beginningLineNumber;\n        const edit2 = {\n          range: Range.create(Position.create(lineWhereToRemoveComma, commaIndex), Position.create(lineWhereToRemoveComma, commaIndex + 1)),\n          text: \"\"\n        };\n        TextDocument2.update(jsonDocumentToReplace, [edit2], 1);\n      }\n      const length = propertyTree2.endLineNumber - propertyTree2.beginningLineNumber + 1;\n      const edit = {\n        range: Range.create(Position.create(beginningLineNumber, 0), Position.create(beginningLineNumber + length, 0)),\n        text: jsonDocumentToReplace.getText()\n      };\n      TextDocument2.update(sortedJsonDocument, [edit], 1);\n      updateSortingQueue(queueToSort, propertyTree2, beginningLineNumber);\n      beginningLineNumber = beginningLineNumber + length;\n    }\n  }\n  return sortedJsonDocument;\n}\nfunction updateSortingQueue(queue, propertyTree, beginningLineNumber) {\n  if (propertyTree.childrenProperties.length === 0) {\n    return;\n  }\n  if (propertyTree.type === Container.Object) {\n    let minimumBeginningLineNumber = Infinity;\n    for (const childProperty of propertyTree.childrenProperties) {\n      if (childProperty.beginningLineNumber < minimumBeginningLineNumber) {\n        minimumBeginningLineNumber = childProperty.beginningLineNumber;\n      }\n    }\n    const diff = minimumBeginningLineNumber - propertyTree.beginningLineNumber;\n    beginningLineNumber = beginningLineNumber + diff;\n    queue.push(new SortingRange(beginningLineNumber, propertyTree.childrenProperties));\n  } else if (propertyTree.type === Container.Array) {\n    updateSortingQueueForArrayProperties(queue, propertyTree, beginningLineNumber);\n  }\n}\nfunction updateSortingQueueForArrayProperties(queue, propertyTree, beginningLineNumber) {\n  for (const subObject of propertyTree.childrenProperties) {\n    if (subObject.type === Container.Object) {\n      let minimumBeginningLineNumber = Infinity;\n      for (const childProperty of subObject.childrenProperties) {\n        if (childProperty.beginningLineNumber < minimumBeginningLineNumber) {\n          minimumBeginningLineNumber = childProperty.beginningLineNumber;\n        }\n      }\n      const diff = minimumBeginningLineNumber - subObject.beginningLineNumber;\n      queue.push(new SortingRange(beginningLineNumber + subObject.beginningLineNumber - propertyTree.beginningLineNumber + diff, subObject.childrenProperties));\n    }\n    if (subObject.type === Container.Array) {\n      updateSortingQueueForArrayProperties(queue, subObject, beginningLineNumber + subObject.beginningLineNumber - propertyTree.beginningLineNumber);\n    }\n  }\n}\nvar SortingRange = class {\n  constructor(beginningLineNumber, propertyTreeArray) {\n    this.beginningLineNumber = beginningLineNumber;\n    this.propertyTreeArray = propertyTreeArray;\n  }\n};\n\n// node_modules/vscode-json-languageservice/lib/esm/services/jsonLinks.js\nfunction findLinks(document, doc) {\n  const links = [];\n  doc.visit((node) => {\n    if (node.type === \"property\" && node.keyNode.value === \"$ref\" && node.valueNode?.type === \"string\") {\n      const path = node.valueNode.value;\n      const targetNode = findTargetNode(doc, path);\n      if (targetNode) {\n        const targetPos = document.positionAt(targetNode.offset);\n        links.push({\n          target: `${document.uri}#${targetPos.line + 1},${targetPos.character + 1}`,\n          range: createRange(document, node.valueNode)\n        });\n      }\n    }\n    return true;\n  });\n  return Promise.resolve(links);\n}\nfunction createRange(document, node) {\n  return Range.create(document.positionAt(node.offset + 1), document.positionAt(node.offset + node.length - 1));\n}\nfunction findTargetNode(doc, path) {\n  const tokens = parseJSONPointer(path);\n  if (!tokens) {\n    return null;\n  }\n  return findNode(tokens, doc.root);\n}\nfunction findNode(pointer, node) {\n  if (!node) {\n    return null;\n  }\n  if (pointer.length === 0) {\n    return node;\n  }\n  const token = pointer.shift();\n  if (node && node.type === \"object\") {\n    const propertyNode = node.properties.find((propertyNode2) => propertyNode2.keyNode.value === token);\n    if (!propertyNode) {\n      return null;\n    }\n    return findNode(pointer, propertyNode.valueNode);\n  } else if (node && node.type === \"array\") {\n    if (token.match(/^(0|[1-9][0-9]*)$/)) {\n      const index = Number.parseInt(token);\n      const arrayItem = node.items[index];\n      if (!arrayItem) {\n        return null;\n      }\n      return findNode(pointer, arrayItem);\n    }\n  }\n  return null;\n}\nfunction parseJSONPointer(path) {\n  if (path === \"#\") {\n    return [];\n  }\n  if (path[0] !== \"#\" || path[1] !== \"/\") {\n    return null;\n  }\n  return path.substring(2).split(/\\//).map(unescape);\n}\nfunction unescape(str) {\n  return str.replace(/~1/g, \"/\").replace(/~0/g, \"~\");\n}\n\n// node_modules/vscode-json-languageservice/lib/esm/jsonLanguageService.js\nfunction getLanguageService(params) {\n  const promise = params.promiseConstructor || Promise;\n  const jsonSchemaService = new JSONSchemaService(params.schemaRequestService, params.workspaceContext, promise);\n  jsonSchemaService.setSchemaContributions(schemaContributions);\n  const jsonCompletion = new JSONCompletion(jsonSchemaService, params.contributions, promise, params.clientCapabilities);\n  const jsonHover = new JSONHover(jsonSchemaService, params.contributions, promise);\n  const jsonDocumentSymbols = new JSONDocumentSymbols(jsonSchemaService);\n  const jsonValidation = new JSONValidation(jsonSchemaService, promise);\n  return {\n    configure: (settings) => {\n      jsonSchemaService.clearExternalSchemas();\n      settings.schemas?.forEach(jsonSchemaService.registerExternalSchema.bind(jsonSchemaService));\n      jsonValidation.configure(settings);\n    },\n    resetSchema: (uri) => jsonSchemaService.onResourceChange(uri),\n    doValidation: jsonValidation.doValidation.bind(jsonValidation),\n    getLanguageStatus: jsonValidation.getLanguageStatus.bind(jsonValidation),\n    parseJSONDocument: (document) => parse3(document, { collectComments: true }),\n    newJSONDocument: (root, diagnostics) => newJSONDocument(root, diagnostics),\n    getMatchingSchemas: jsonSchemaService.getMatchingSchemas.bind(jsonSchemaService),\n    doResolve: jsonCompletion.doResolve.bind(jsonCompletion),\n    doComplete: jsonCompletion.doComplete.bind(jsonCompletion),\n    findDocumentSymbols: jsonDocumentSymbols.findDocumentSymbols.bind(jsonDocumentSymbols),\n    findDocumentSymbols2: jsonDocumentSymbols.findDocumentSymbols2.bind(jsonDocumentSymbols),\n    findDocumentColors: jsonDocumentSymbols.findDocumentColors.bind(jsonDocumentSymbols),\n    getColorPresentations: jsonDocumentSymbols.getColorPresentations.bind(jsonDocumentSymbols),\n    doHover: jsonHover.doHover.bind(jsonHover),\n    getFoldingRanges,\n    getSelectionRanges,\n    findDefinition: () => Promise.resolve([]),\n    findLinks,\n    format: (document, range, options) => format4(document, options, range),\n    sort: (document, options) => sort(document, options)\n  };\n}\n\n// src/language/json/jsonWorker.ts\nvar defaultSchemaRequestService;\nif (typeof fetch !== \"undefined\") {\n  defaultSchemaRequestService = function(url) {\n    return fetch(url).then((response) => response.text());\n  };\n}\nvar JSONWorker = class {\n  constructor(ctx, createData) {\n    this._ctx = ctx;\n    this._languageSettings = createData.languageSettings;\n    this._languageId = createData.languageId;\n    this._languageService = getLanguageService({\n      workspaceContext: {\n        resolveRelativePath: (relativePath, resource) => {\n          const base = resource.substr(0, resource.lastIndexOf(\"/\") + 1);\n          return resolvePath(base, relativePath);\n        }\n      },\n      schemaRequestService: createData.enableSchemaRequest ? defaultSchemaRequestService : void 0,\n      clientCapabilities: ClientCapabilities.LATEST\n    });\n    this._languageService.configure(this._languageSettings);\n  }\n  async doValidation(uri) {\n    let document = this._getTextDocument(uri);\n    if (document) {\n      let jsonDocument = this._languageService.parseJSONDocument(document);\n      return this._languageService.doValidation(document, jsonDocument, this._languageSettings);\n    }\n    return Promise.resolve([]);\n  }\n  async doComplete(uri, position) {\n    let document = this._getTextDocument(uri);\n    if (!document) {\n      return null;\n    }\n    let jsonDocument = this._languageService.parseJSONDocument(document);\n    return this._languageService.doComplete(document, position, jsonDocument);\n  }\n  async doResolve(item) {\n    return this._languageService.doResolve(item);\n  }\n  async doHover(uri, position) {\n    let document = this._getTextDocument(uri);\n    if (!document) {\n      return null;\n    }\n    let jsonDocument = this._languageService.parseJSONDocument(document);\n    return this._languageService.doHover(document, position, jsonDocument);\n  }\n  async format(uri, range, options) {\n    let document = this._getTextDocument(uri);\n    if (!document) {\n      return [];\n    }\n    let textEdits = this._languageService.format(document, range, options);\n    return Promise.resolve(textEdits);\n  }\n  async resetSchema(uri) {\n    return Promise.resolve(this._languageService.resetSchema(uri));\n  }\n  async findDocumentSymbols(uri) {\n    let document = this._getTextDocument(uri);\n    if (!document) {\n      return [];\n    }\n    let jsonDocument = this._languageService.parseJSONDocument(document);\n    let symbols = this._languageService.findDocumentSymbols2(document, jsonDocument);\n    return Promise.resolve(symbols);\n  }\n  async findDocumentColors(uri) {\n    let document = this._getTextDocument(uri);\n    if (!document) {\n      return [];\n    }\n    let jsonDocument = this._languageService.parseJSONDocument(document);\n    let colorSymbols = this._languageService.findDocumentColors(document, jsonDocument);\n    return Promise.resolve(colorSymbols);\n  }\n  async getColorPresentations(uri, color, range) {\n    let document = this._getTextDocument(uri);\n    if (!document) {\n      return [];\n    }\n    let jsonDocument = this._languageService.parseJSONDocument(document);\n    let colorPresentations = this._languageService.getColorPresentations(\n      document,\n      jsonDocument,\n      color,\n      range\n    );\n    return Promise.resolve(colorPresentations);\n  }\n  async getFoldingRanges(uri, context) {\n    let document = this._getTextDocument(uri);\n    if (!document) {\n      return [];\n    }\n    let ranges = this._languageService.getFoldingRanges(document, context);\n    return Promise.resolve(ranges);\n  }\n  async getSelectionRanges(uri, positions) {\n    let document = this._getTextDocument(uri);\n    if (!document) {\n      return [];\n    }\n    let jsonDocument = this._languageService.parseJSONDocument(document);\n    let ranges = this._languageService.getSelectionRanges(document, positions, jsonDocument);\n    return Promise.resolve(ranges);\n  }\n  async parseJSONDocument(uri) {\n    let document = this._getTextDocument(uri);\n    if (!document) {\n      return null;\n    }\n    let jsonDocument = this._languageService.parseJSONDocument(document);\n    return Promise.resolve(jsonDocument);\n  }\n  async getMatchingSchemas(uri) {\n    let document = this._getTextDocument(uri);\n    if (!document) {\n      return [];\n    }\n    let jsonDocument = this._languageService.parseJSONDocument(document);\n    return Promise.resolve(this._languageService.getMatchingSchemas(document, jsonDocument));\n  }\n  _getTextDocument(uri) {\n    let models = this._ctx.getMirrorModels();\n    for (let model of models) {\n      if (model.uri.toString() === uri) {\n        return TextDocument2.create(\n          uri,\n          this._languageId,\n          model.version,\n          model.getValue()\n        );\n      }\n    }\n    return null;\n  }\n};\nvar Slash = \"/\".charCodeAt(0);\nvar Dot = \".\".charCodeAt(0);\nfunction isAbsolutePath(path) {\n  return path.charCodeAt(0) === Slash;\n}\nfunction resolvePath(uriString, path) {\n  if (isAbsolutePath(path)) {\n    const uri = URI2.parse(uriString);\n    const parts = path.split(\"/\");\n    return uri.with({ path: normalizePath(parts) }).toString();\n  }\n  return joinPath(uriString, path);\n}\nfunction normalizePath(parts) {\n  const newParts = [];\n  for (const part of parts) {\n    if (part.length === 0 || part.length === 1 && part.charCodeAt(0) === Dot) {\n    } else if (part.length === 2 && part.charCodeAt(0) === Dot && part.charCodeAt(1) === Dot) {\n      newParts.pop();\n    } else {\n      newParts.push(part);\n    }\n  }\n  if (parts.length > 1 && parts[parts.length - 1].length === 0) {\n    newParts.push(\"\");\n  }\n  let res = newParts.join(\"/\");\n  if (parts[0].length === 0) {\n    res = \"/\" + res;\n  }\n  return res;\n}\nfunction joinPath(uriString, ...paths) {\n  const uri = URI2.parse(uriString);\n  const parts = uri.path.split(\"/\");\n  for (let path of paths) {\n    parts.push(...path.split(\"/\"));\n  }\n  return uri.with({ path: normalizePath(parts) }).toString();\n}\n\n// src/language/json/json.worker.ts\nself.onmessage = () => {\n  worker.initialize((ctx, createData) => {\n    return new JSONWorker(ctx, createData);\n  });\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/language/json/jsonMode.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\n\n// src/fillers/monaco-editor-core.ts\nvar monaco_editor_core_exports = {};\n__reExport(monaco_editor_core_exports, monaco_editor_core_star);\nimport * as monaco_editor_core_star from \"../../editor/editor.api.js\";\n\n// src/language/json/workerManager.ts\nvar STOP_WHEN_IDLE_FOR = 2 * 60 * 1e3;\nvar WorkerManager = class {\n  constructor(defaults) {\n    this._defaults = defaults;\n    this._worker = null;\n    this._client = null;\n    this._idleCheckInterval = window.setInterval(() => this._checkIfIdle(), 30 * 1e3);\n    this._lastUsedTime = 0;\n    this._configChangeListener = this._defaults.onDidChange(() => this._stopWorker());\n  }\n  _stopWorker() {\n    if (this._worker) {\n      this._worker.dispose();\n      this._worker = null;\n    }\n    this._client = null;\n  }\n  dispose() {\n    clearInterval(this._idleCheckInterval);\n    this._configChangeListener.dispose();\n    this._stopWorker();\n  }\n  _checkIfIdle() {\n    if (!this._worker) {\n      return;\n    }\n    let timePassedSinceLastUsed = Date.now() - this._lastUsedTime;\n    if (timePassedSinceLastUsed > STOP_WHEN_IDLE_FOR) {\n      this._stopWorker();\n    }\n  }\n  _getClient() {\n    this._lastUsedTime = Date.now();\n    if (!this._client) {\n      this._worker = monaco_editor_core_exports.editor.createWebWorker({\n        // module that exports the create() method and returns a `JSONWorker` instance\n        moduleId: \"vs/language/json/jsonWorker\",\n        label: this._defaults.languageId,\n        // passed in to the create() method\n        createData: {\n          languageSettings: this._defaults.diagnosticsOptions,\n          languageId: this._defaults.languageId,\n          enableSchemaRequest: this._defaults.diagnosticsOptions.enableSchemaRequest\n        }\n      });\n      this._client = this._worker.getProxy();\n    }\n    return this._client;\n  }\n  getLanguageServiceWorker(...resources) {\n    let _client;\n    return this._getClient().then((client) => {\n      _client = client;\n    }).then((_) => {\n      if (this._worker) {\n        return this._worker.withSyncedResources(resources);\n      }\n    }).then((_) => _client);\n  }\n};\n\n// node_modules/vscode-languageserver-types/lib/esm/main.js\nvar DocumentUri;\n(function(DocumentUri2) {\n  function is(value) {\n    return typeof value === \"string\";\n  }\n  DocumentUri2.is = is;\n})(DocumentUri || (DocumentUri = {}));\nvar URI;\n(function(URI2) {\n  function is(value) {\n    return typeof value === \"string\";\n  }\n  URI2.is = is;\n})(URI || (URI = {}));\nvar integer;\n(function(integer2) {\n  integer2.MIN_VALUE = -2147483648;\n  integer2.MAX_VALUE = 2147483647;\n  function is(value) {\n    return typeof value === \"number\" && integer2.MIN_VALUE <= value && value <= integer2.MAX_VALUE;\n  }\n  integer2.is = is;\n})(integer || (integer = {}));\nvar uinteger;\n(function(uinteger2) {\n  uinteger2.MIN_VALUE = 0;\n  uinteger2.MAX_VALUE = 2147483647;\n  function is(value) {\n    return typeof value === \"number\" && uinteger2.MIN_VALUE <= value && value <= uinteger2.MAX_VALUE;\n  }\n  uinteger2.is = is;\n})(uinteger || (uinteger = {}));\nvar Position;\n(function(Position3) {\n  function create(line, character) {\n    if (line === Number.MAX_VALUE) {\n      line = uinteger.MAX_VALUE;\n    }\n    if (character === Number.MAX_VALUE) {\n      character = uinteger.MAX_VALUE;\n    }\n    return { line, character };\n  }\n  Position3.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.objectLiteral(candidate) && Is.uinteger(candidate.line) && Is.uinteger(candidate.character);\n  }\n  Position3.is = is;\n})(Position || (Position = {}));\nvar Range;\n(function(Range3) {\n  function create(one, two, three, four) {\n    if (Is.uinteger(one) && Is.uinteger(two) && Is.uinteger(three) && Is.uinteger(four)) {\n      return { start: Position.create(one, two), end: Position.create(three, four) };\n    } else if (Position.is(one) && Position.is(two)) {\n      return { start: one, end: two };\n    } else {\n      throw new Error(`Range#create called with invalid arguments[${one}, ${two}, ${three}, ${four}]`);\n    }\n  }\n  Range3.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.objectLiteral(candidate) && Position.is(candidate.start) && Position.is(candidate.end);\n  }\n  Range3.is = is;\n})(Range || (Range = {}));\nvar Location;\n(function(Location2) {\n  function create(uri, range) {\n    return { uri, range };\n  }\n  Location2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.objectLiteral(candidate) && Range.is(candidate.range) && (Is.string(candidate.uri) || Is.undefined(candidate.uri));\n  }\n  Location2.is = is;\n})(Location || (Location = {}));\nvar LocationLink;\n(function(LocationLink2) {\n  function create(targetUri, targetRange, targetSelectionRange, originSelectionRange) {\n    return { targetUri, targetRange, targetSelectionRange, originSelectionRange };\n  }\n  LocationLink2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.objectLiteral(candidate) && Range.is(candidate.targetRange) && Is.string(candidate.targetUri) && Range.is(candidate.targetSelectionRange) && (Range.is(candidate.originSelectionRange) || Is.undefined(candidate.originSelectionRange));\n  }\n  LocationLink2.is = is;\n})(LocationLink || (LocationLink = {}));\nvar Color;\n(function(Color2) {\n  function create(red, green, blue, alpha) {\n    return {\n      red,\n      green,\n      blue,\n      alpha\n    };\n  }\n  Color2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.numberRange(candidate.red, 0, 1) && Is.numberRange(candidate.green, 0, 1) && Is.numberRange(candidate.blue, 0, 1) && Is.numberRange(candidate.alpha, 0, 1);\n  }\n  Color2.is = is;\n})(Color || (Color = {}));\nvar ColorInformation;\n(function(ColorInformation2) {\n  function create(range, color) {\n    return {\n      range,\n      color\n    };\n  }\n  ColorInformation2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Range.is(candidate.range) && Color.is(candidate.color);\n  }\n  ColorInformation2.is = is;\n})(ColorInformation || (ColorInformation = {}));\nvar ColorPresentation;\n(function(ColorPresentation2) {\n  function create(label, textEdit, additionalTextEdits) {\n    return {\n      label,\n      textEdit,\n      additionalTextEdits\n    };\n  }\n  ColorPresentation2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.string(candidate.label) && (Is.undefined(candidate.textEdit) || TextEdit.is(candidate)) && (Is.undefined(candidate.additionalTextEdits) || Is.typedArray(candidate.additionalTextEdits, TextEdit.is));\n  }\n  ColorPresentation2.is = is;\n})(ColorPresentation || (ColorPresentation = {}));\nvar FoldingRangeKind;\n(function(FoldingRangeKind2) {\n  FoldingRangeKind2.Comment = \"comment\";\n  FoldingRangeKind2.Imports = \"imports\";\n  FoldingRangeKind2.Region = \"region\";\n})(FoldingRangeKind || (FoldingRangeKind = {}));\nvar FoldingRange;\n(function(FoldingRange2) {\n  function create(startLine, endLine, startCharacter, endCharacter, kind, collapsedText) {\n    const result = {\n      startLine,\n      endLine\n    };\n    if (Is.defined(startCharacter)) {\n      result.startCharacter = startCharacter;\n    }\n    if (Is.defined(endCharacter)) {\n      result.endCharacter = endCharacter;\n    }\n    if (Is.defined(kind)) {\n      result.kind = kind;\n    }\n    if (Is.defined(collapsedText)) {\n      result.collapsedText = collapsedText;\n    }\n    return result;\n  }\n  FoldingRange2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.uinteger(candidate.startLine) && Is.uinteger(candidate.startLine) && (Is.undefined(candidate.startCharacter) || Is.uinteger(candidate.startCharacter)) && (Is.undefined(candidate.endCharacter) || Is.uinteger(candidate.endCharacter)) && (Is.undefined(candidate.kind) || Is.string(candidate.kind));\n  }\n  FoldingRange2.is = is;\n})(FoldingRange || (FoldingRange = {}));\nvar DiagnosticRelatedInformation;\n(function(DiagnosticRelatedInformation2) {\n  function create(location, message) {\n    return {\n      location,\n      message\n    };\n  }\n  DiagnosticRelatedInformation2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Location.is(candidate.location) && Is.string(candidate.message);\n  }\n  DiagnosticRelatedInformation2.is = is;\n})(DiagnosticRelatedInformation || (DiagnosticRelatedInformation = {}));\nvar DiagnosticSeverity;\n(function(DiagnosticSeverity2) {\n  DiagnosticSeverity2.Error = 1;\n  DiagnosticSeverity2.Warning = 2;\n  DiagnosticSeverity2.Information = 3;\n  DiagnosticSeverity2.Hint = 4;\n})(DiagnosticSeverity || (DiagnosticSeverity = {}));\nvar DiagnosticTag;\n(function(DiagnosticTag2) {\n  DiagnosticTag2.Unnecessary = 1;\n  DiagnosticTag2.Deprecated = 2;\n})(DiagnosticTag || (DiagnosticTag = {}));\nvar CodeDescription;\n(function(CodeDescription2) {\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.string(candidate.href);\n  }\n  CodeDescription2.is = is;\n})(CodeDescription || (CodeDescription = {}));\nvar Diagnostic;\n(function(Diagnostic2) {\n  function create(range, message, severity, code, source, relatedInformation) {\n    let result = { range, message };\n    if (Is.defined(severity)) {\n      result.severity = severity;\n    }\n    if (Is.defined(code)) {\n      result.code = code;\n    }\n    if (Is.defined(source)) {\n      result.source = source;\n    }\n    if (Is.defined(relatedInformation)) {\n      result.relatedInformation = relatedInformation;\n    }\n    return result;\n  }\n  Diagnostic2.create = create;\n  function is(value) {\n    var _a;\n    let candidate = value;\n    return Is.defined(candidate) && Range.is(candidate.range) && Is.string(candidate.message) && (Is.number(candidate.severity) || Is.undefined(candidate.severity)) && (Is.integer(candidate.code) || Is.string(candidate.code) || Is.undefined(candidate.code)) && (Is.undefined(candidate.codeDescription) || Is.string((_a = candidate.codeDescription) === null || _a === void 0 ? void 0 : _a.href)) && (Is.string(candidate.source) || Is.undefined(candidate.source)) && (Is.undefined(candidate.relatedInformation) || Is.typedArray(candidate.relatedInformation, DiagnosticRelatedInformation.is));\n  }\n  Diagnostic2.is = is;\n})(Diagnostic || (Diagnostic = {}));\nvar Command;\n(function(Command2) {\n  function create(title, command, ...args) {\n    let result = { title, command };\n    if (Is.defined(args) && args.length > 0) {\n      result.arguments = args;\n    }\n    return result;\n  }\n  Command2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.title) && Is.string(candidate.command);\n  }\n  Command2.is = is;\n})(Command || (Command = {}));\nvar TextEdit;\n(function(TextEdit2) {\n  function replace(range, newText) {\n    return { range, newText };\n  }\n  TextEdit2.replace = replace;\n  function insert(position, newText) {\n    return { range: { start: position, end: position }, newText };\n  }\n  TextEdit2.insert = insert;\n  function del(range) {\n    return { range, newText: \"\" };\n  }\n  TextEdit2.del = del;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.string(candidate.newText) && Range.is(candidate.range);\n  }\n  TextEdit2.is = is;\n})(TextEdit || (TextEdit = {}));\nvar ChangeAnnotation;\n(function(ChangeAnnotation2) {\n  function create(label, needsConfirmation, description) {\n    const result = { label };\n    if (needsConfirmation !== void 0) {\n      result.needsConfirmation = needsConfirmation;\n    }\n    if (description !== void 0) {\n      result.description = description;\n    }\n    return result;\n  }\n  ChangeAnnotation2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Is.string(candidate.label) && (Is.boolean(candidate.needsConfirmation) || candidate.needsConfirmation === void 0) && (Is.string(candidate.description) || candidate.description === void 0);\n  }\n  ChangeAnnotation2.is = is;\n})(ChangeAnnotation || (ChangeAnnotation = {}));\nvar ChangeAnnotationIdentifier;\n(function(ChangeAnnotationIdentifier2) {\n  function is(value) {\n    const candidate = value;\n    return Is.string(candidate);\n  }\n  ChangeAnnotationIdentifier2.is = is;\n})(ChangeAnnotationIdentifier || (ChangeAnnotationIdentifier = {}));\nvar AnnotatedTextEdit;\n(function(AnnotatedTextEdit2) {\n  function replace(range, newText, annotation) {\n    return { range, newText, annotationId: annotation };\n  }\n  AnnotatedTextEdit2.replace = replace;\n  function insert(position, newText, annotation) {\n    return { range: { start: position, end: position }, newText, annotationId: annotation };\n  }\n  AnnotatedTextEdit2.insert = insert;\n  function del(range, annotation) {\n    return { range, newText: \"\", annotationId: annotation };\n  }\n  AnnotatedTextEdit2.del = del;\n  function is(value) {\n    const candidate = value;\n    return TextEdit.is(candidate) && (ChangeAnnotation.is(candidate.annotationId) || ChangeAnnotationIdentifier.is(candidate.annotationId));\n  }\n  AnnotatedTextEdit2.is = is;\n})(AnnotatedTextEdit || (AnnotatedTextEdit = {}));\nvar TextDocumentEdit;\n(function(TextDocumentEdit2) {\n  function create(textDocument, edits) {\n    return { textDocument, edits };\n  }\n  TextDocumentEdit2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && OptionalVersionedTextDocumentIdentifier.is(candidate.textDocument) && Array.isArray(candidate.edits);\n  }\n  TextDocumentEdit2.is = is;\n})(TextDocumentEdit || (TextDocumentEdit = {}));\nvar CreateFile;\n(function(CreateFile2) {\n  function create(uri, options, annotation) {\n    let result = {\n      kind: \"create\",\n      uri\n    };\n    if (options !== void 0 && (options.overwrite !== void 0 || options.ignoreIfExists !== void 0)) {\n      result.options = options;\n    }\n    if (annotation !== void 0) {\n      result.annotationId = annotation;\n    }\n    return result;\n  }\n  CreateFile2.create = create;\n  function is(value) {\n    let candidate = value;\n    return candidate && candidate.kind === \"create\" && Is.string(candidate.uri) && (candidate.options === void 0 || (candidate.options.overwrite === void 0 || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === void 0 || Is.boolean(candidate.options.ignoreIfExists))) && (candidate.annotationId === void 0 || ChangeAnnotationIdentifier.is(candidate.annotationId));\n  }\n  CreateFile2.is = is;\n})(CreateFile || (CreateFile = {}));\nvar RenameFile;\n(function(RenameFile2) {\n  function create(oldUri, newUri, options, annotation) {\n    let result = {\n      kind: \"rename\",\n      oldUri,\n      newUri\n    };\n    if (options !== void 0 && (options.overwrite !== void 0 || options.ignoreIfExists !== void 0)) {\n      result.options = options;\n    }\n    if (annotation !== void 0) {\n      result.annotationId = annotation;\n    }\n    return result;\n  }\n  RenameFile2.create = create;\n  function is(value) {\n    let candidate = value;\n    return candidate && candidate.kind === \"rename\" && Is.string(candidate.oldUri) && Is.string(candidate.newUri) && (candidate.options === void 0 || (candidate.options.overwrite === void 0 || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === void 0 || Is.boolean(candidate.options.ignoreIfExists))) && (candidate.annotationId === void 0 || ChangeAnnotationIdentifier.is(candidate.annotationId));\n  }\n  RenameFile2.is = is;\n})(RenameFile || (RenameFile = {}));\nvar DeleteFile;\n(function(DeleteFile2) {\n  function create(uri, options, annotation) {\n    let result = {\n      kind: \"delete\",\n      uri\n    };\n    if (options !== void 0 && (options.recursive !== void 0 || options.ignoreIfNotExists !== void 0)) {\n      result.options = options;\n    }\n    if (annotation !== void 0) {\n      result.annotationId = annotation;\n    }\n    return result;\n  }\n  DeleteFile2.create = create;\n  function is(value) {\n    let candidate = value;\n    return candidate && candidate.kind === \"delete\" && Is.string(candidate.uri) && (candidate.options === void 0 || (candidate.options.recursive === void 0 || Is.boolean(candidate.options.recursive)) && (candidate.options.ignoreIfNotExists === void 0 || Is.boolean(candidate.options.ignoreIfNotExists))) && (candidate.annotationId === void 0 || ChangeAnnotationIdentifier.is(candidate.annotationId));\n  }\n  DeleteFile2.is = is;\n})(DeleteFile || (DeleteFile = {}));\nvar WorkspaceEdit;\n(function(WorkspaceEdit2) {\n  function is(value) {\n    let candidate = value;\n    return candidate && (candidate.changes !== void 0 || candidate.documentChanges !== void 0) && (candidate.documentChanges === void 0 || candidate.documentChanges.every((change) => {\n      if (Is.string(change.kind)) {\n        return CreateFile.is(change) || RenameFile.is(change) || DeleteFile.is(change);\n      } else {\n        return TextDocumentEdit.is(change);\n      }\n    }));\n  }\n  WorkspaceEdit2.is = is;\n})(WorkspaceEdit || (WorkspaceEdit = {}));\nvar TextDocumentIdentifier;\n(function(TextDocumentIdentifier2) {\n  function create(uri) {\n    return { uri };\n  }\n  TextDocumentIdentifier2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.uri);\n  }\n  TextDocumentIdentifier2.is = is;\n})(TextDocumentIdentifier || (TextDocumentIdentifier = {}));\nvar VersionedTextDocumentIdentifier;\n(function(VersionedTextDocumentIdentifier2) {\n  function create(uri, version) {\n    return { uri, version };\n  }\n  VersionedTextDocumentIdentifier2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.uri) && Is.integer(candidate.version);\n  }\n  VersionedTextDocumentIdentifier2.is = is;\n})(VersionedTextDocumentIdentifier || (VersionedTextDocumentIdentifier = {}));\nvar OptionalVersionedTextDocumentIdentifier;\n(function(OptionalVersionedTextDocumentIdentifier2) {\n  function create(uri, version) {\n    return { uri, version };\n  }\n  OptionalVersionedTextDocumentIdentifier2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.uri) && (candidate.version === null || Is.integer(candidate.version));\n  }\n  OptionalVersionedTextDocumentIdentifier2.is = is;\n})(OptionalVersionedTextDocumentIdentifier || (OptionalVersionedTextDocumentIdentifier = {}));\nvar TextDocumentItem;\n(function(TextDocumentItem2) {\n  function create(uri, languageId, version, text) {\n    return { uri, languageId, version, text };\n  }\n  TextDocumentItem2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.uri) && Is.string(candidate.languageId) && Is.integer(candidate.version) && Is.string(candidate.text);\n  }\n  TextDocumentItem2.is = is;\n})(TextDocumentItem || (TextDocumentItem = {}));\nvar MarkupKind;\n(function(MarkupKind2) {\n  MarkupKind2.PlainText = \"plaintext\";\n  MarkupKind2.Markdown = \"markdown\";\n  function is(value) {\n    const candidate = value;\n    return candidate === MarkupKind2.PlainText || candidate === MarkupKind2.Markdown;\n  }\n  MarkupKind2.is = is;\n})(MarkupKind || (MarkupKind = {}));\nvar MarkupContent;\n(function(MarkupContent2) {\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(value) && MarkupKind.is(candidate.kind) && Is.string(candidate.value);\n  }\n  MarkupContent2.is = is;\n})(MarkupContent || (MarkupContent = {}));\nvar CompletionItemKind;\n(function(CompletionItemKind2) {\n  CompletionItemKind2.Text = 1;\n  CompletionItemKind2.Method = 2;\n  CompletionItemKind2.Function = 3;\n  CompletionItemKind2.Constructor = 4;\n  CompletionItemKind2.Field = 5;\n  CompletionItemKind2.Variable = 6;\n  CompletionItemKind2.Class = 7;\n  CompletionItemKind2.Interface = 8;\n  CompletionItemKind2.Module = 9;\n  CompletionItemKind2.Property = 10;\n  CompletionItemKind2.Unit = 11;\n  CompletionItemKind2.Value = 12;\n  CompletionItemKind2.Enum = 13;\n  CompletionItemKind2.Keyword = 14;\n  CompletionItemKind2.Snippet = 15;\n  CompletionItemKind2.Color = 16;\n  CompletionItemKind2.File = 17;\n  CompletionItemKind2.Reference = 18;\n  CompletionItemKind2.Folder = 19;\n  CompletionItemKind2.EnumMember = 20;\n  CompletionItemKind2.Constant = 21;\n  CompletionItemKind2.Struct = 22;\n  CompletionItemKind2.Event = 23;\n  CompletionItemKind2.Operator = 24;\n  CompletionItemKind2.TypeParameter = 25;\n})(CompletionItemKind || (CompletionItemKind = {}));\nvar InsertTextFormat;\n(function(InsertTextFormat2) {\n  InsertTextFormat2.PlainText = 1;\n  InsertTextFormat2.Snippet = 2;\n})(InsertTextFormat || (InsertTextFormat = {}));\nvar CompletionItemTag;\n(function(CompletionItemTag2) {\n  CompletionItemTag2.Deprecated = 1;\n})(CompletionItemTag || (CompletionItemTag = {}));\nvar InsertReplaceEdit;\n(function(InsertReplaceEdit2) {\n  function create(newText, insert, replace) {\n    return { newText, insert, replace };\n  }\n  InsertReplaceEdit2.create = create;\n  function is(value) {\n    const candidate = value;\n    return candidate && Is.string(candidate.newText) && Range.is(candidate.insert) && Range.is(candidate.replace);\n  }\n  InsertReplaceEdit2.is = is;\n})(InsertReplaceEdit || (InsertReplaceEdit = {}));\nvar InsertTextMode;\n(function(InsertTextMode2) {\n  InsertTextMode2.asIs = 1;\n  InsertTextMode2.adjustIndentation = 2;\n})(InsertTextMode || (InsertTextMode = {}));\nvar CompletionItemLabelDetails;\n(function(CompletionItemLabelDetails2) {\n  function is(value) {\n    const candidate = value;\n    return candidate && (Is.string(candidate.detail) || candidate.detail === void 0) && (Is.string(candidate.description) || candidate.description === void 0);\n  }\n  CompletionItemLabelDetails2.is = is;\n})(CompletionItemLabelDetails || (CompletionItemLabelDetails = {}));\nvar CompletionItem;\n(function(CompletionItem2) {\n  function create(label) {\n    return { label };\n  }\n  CompletionItem2.create = create;\n})(CompletionItem || (CompletionItem = {}));\nvar CompletionList;\n(function(CompletionList2) {\n  function create(items, isIncomplete) {\n    return { items: items ? items : [], isIncomplete: !!isIncomplete };\n  }\n  CompletionList2.create = create;\n})(CompletionList || (CompletionList = {}));\nvar MarkedString;\n(function(MarkedString2) {\n  function fromPlainText(plainText) {\n    return plainText.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g, \"\\\\$&\");\n  }\n  MarkedString2.fromPlainText = fromPlainText;\n  function is(value) {\n    const candidate = value;\n    return Is.string(candidate) || Is.objectLiteral(candidate) && Is.string(candidate.language) && Is.string(candidate.value);\n  }\n  MarkedString2.is = is;\n})(MarkedString || (MarkedString = {}));\nvar Hover;\n(function(Hover2) {\n  function is(value) {\n    let candidate = value;\n    return !!candidate && Is.objectLiteral(candidate) && (MarkupContent.is(candidate.contents) || MarkedString.is(candidate.contents) || Is.typedArray(candidate.contents, MarkedString.is)) && (value.range === void 0 || Range.is(value.range));\n  }\n  Hover2.is = is;\n})(Hover || (Hover = {}));\nvar ParameterInformation;\n(function(ParameterInformation2) {\n  function create(label, documentation) {\n    return documentation ? { label, documentation } : { label };\n  }\n  ParameterInformation2.create = create;\n})(ParameterInformation || (ParameterInformation = {}));\nvar SignatureInformation;\n(function(SignatureInformation2) {\n  function create(label, documentation, ...parameters) {\n    let result = { label };\n    if (Is.defined(documentation)) {\n      result.documentation = documentation;\n    }\n    if (Is.defined(parameters)) {\n      result.parameters = parameters;\n    } else {\n      result.parameters = [];\n    }\n    return result;\n  }\n  SignatureInformation2.create = create;\n})(SignatureInformation || (SignatureInformation = {}));\nvar DocumentHighlightKind;\n(function(DocumentHighlightKind2) {\n  DocumentHighlightKind2.Text = 1;\n  DocumentHighlightKind2.Read = 2;\n  DocumentHighlightKind2.Write = 3;\n})(DocumentHighlightKind || (DocumentHighlightKind = {}));\nvar DocumentHighlight;\n(function(DocumentHighlight2) {\n  function create(range, kind) {\n    let result = { range };\n    if (Is.number(kind)) {\n      result.kind = kind;\n    }\n    return result;\n  }\n  DocumentHighlight2.create = create;\n})(DocumentHighlight || (DocumentHighlight = {}));\nvar SymbolKind;\n(function(SymbolKind2) {\n  SymbolKind2.File = 1;\n  SymbolKind2.Module = 2;\n  SymbolKind2.Namespace = 3;\n  SymbolKind2.Package = 4;\n  SymbolKind2.Class = 5;\n  SymbolKind2.Method = 6;\n  SymbolKind2.Property = 7;\n  SymbolKind2.Field = 8;\n  SymbolKind2.Constructor = 9;\n  SymbolKind2.Enum = 10;\n  SymbolKind2.Interface = 11;\n  SymbolKind2.Function = 12;\n  SymbolKind2.Variable = 13;\n  SymbolKind2.Constant = 14;\n  SymbolKind2.String = 15;\n  SymbolKind2.Number = 16;\n  SymbolKind2.Boolean = 17;\n  SymbolKind2.Array = 18;\n  SymbolKind2.Object = 19;\n  SymbolKind2.Key = 20;\n  SymbolKind2.Null = 21;\n  SymbolKind2.EnumMember = 22;\n  SymbolKind2.Struct = 23;\n  SymbolKind2.Event = 24;\n  SymbolKind2.Operator = 25;\n  SymbolKind2.TypeParameter = 26;\n})(SymbolKind || (SymbolKind = {}));\nvar SymbolTag;\n(function(SymbolTag2) {\n  SymbolTag2.Deprecated = 1;\n})(SymbolTag || (SymbolTag = {}));\nvar SymbolInformation;\n(function(SymbolInformation2) {\n  function create(name, kind, range, uri, containerName) {\n    let result = {\n      name,\n      kind,\n      location: { uri, range }\n    };\n    if (containerName) {\n      result.containerName = containerName;\n    }\n    return result;\n  }\n  SymbolInformation2.create = create;\n})(SymbolInformation || (SymbolInformation = {}));\nvar WorkspaceSymbol;\n(function(WorkspaceSymbol2) {\n  function create(name, kind, uri, range) {\n    return range !== void 0 ? { name, kind, location: { uri, range } } : { name, kind, location: { uri } };\n  }\n  WorkspaceSymbol2.create = create;\n})(WorkspaceSymbol || (WorkspaceSymbol = {}));\nvar DocumentSymbol;\n(function(DocumentSymbol2) {\n  function create(name, detail, kind, range, selectionRange, children) {\n    let result = {\n      name,\n      detail,\n      kind,\n      range,\n      selectionRange\n    };\n    if (children !== void 0) {\n      result.children = children;\n    }\n    return result;\n  }\n  DocumentSymbol2.create = create;\n  function is(value) {\n    let candidate = value;\n    return candidate && Is.string(candidate.name) && Is.number(candidate.kind) && Range.is(candidate.range) && Range.is(candidate.selectionRange) && (candidate.detail === void 0 || Is.string(candidate.detail)) && (candidate.deprecated === void 0 || Is.boolean(candidate.deprecated)) && (candidate.children === void 0 || Array.isArray(candidate.children)) && (candidate.tags === void 0 || Array.isArray(candidate.tags));\n  }\n  DocumentSymbol2.is = is;\n})(DocumentSymbol || (DocumentSymbol = {}));\nvar CodeActionKind;\n(function(CodeActionKind2) {\n  CodeActionKind2.Empty = \"\";\n  CodeActionKind2.QuickFix = \"quickfix\";\n  CodeActionKind2.Refactor = \"refactor\";\n  CodeActionKind2.RefactorExtract = \"refactor.extract\";\n  CodeActionKind2.RefactorInline = \"refactor.inline\";\n  CodeActionKind2.RefactorRewrite = \"refactor.rewrite\";\n  CodeActionKind2.Source = \"source\";\n  CodeActionKind2.SourceOrganizeImports = \"source.organizeImports\";\n  CodeActionKind2.SourceFixAll = \"source.fixAll\";\n})(CodeActionKind || (CodeActionKind = {}));\nvar CodeActionTriggerKind;\n(function(CodeActionTriggerKind2) {\n  CodeActionTriggerKind2.Invoked = 1;\n  CodeActionTriggerKind2.Automatic = 2;\n})(CodeActionTriggerKind || (CodeActionTriggerKind = {}));\nvar CodeActionContext;\n(function(CodeActionContext2) {\n  function create(diagnostics, only, triggerKind) {\n    let result = { diagnostics };\n    if (only !== void 0 && only !== null) {\n      result.only = only;\n    }\n    if (triggerKind !== void 0 && triggerKind !== null) {\n      result.triggerKind = triggerKind;\n    }\n    return result;\n  }\n  CodeActionContext2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.typedArray(candidate.diagnostics, Diagnostic.is) && (candidate.only === void 0 || Is.typedArray(candidate.only, Is.string)) && (candidate.triggerKind === void 0 || candidate.triggerKind === CodeActionTriggerKind.Invoked || candidate.triggerKind === CodeActionTriggerKind.Automatic);\n  }\n  CodeActionContext2.is = is;\n})(CodeActionContext || (CodeActionContext = {}));\nvar CodeAction;\n(function(CodeAction2) {\n  function create(title, kindOrCommandOrEdit, kind) {\n    let result = { title };\n    let checkKind = true;\n    if (typeof kindOrCommandOrEdit === \"string\") {\n      checkKind = false;\n      result.kind = kindOrCommandOrEdit;\n    } else if (Command.is(kindOrCommandOrEdit)) {\n      result.command = kindOrCommandOrEdit;\n    } else {\n      result.edit = kindOrCommandOrEdit;\n    }\n    if (checkKind && kind !== void 0) {\n      result.kind = kind;\n    }\n    return result;\n  }\n  CodeAction2.create = create;\n  function is(value) {\n    let candidate = value;\n    return candidate && Is.string(candidate.title) && (candidate.diagnostics === void 0 || Is.typedArray(candidate.diagnostics, Diagnostic.is)) && (candidate.kind === void 0 || Is.string(candidate.kind)) && (candidate.edit !== void 0 || candidate.command !== void 0) && (candidate.command === void 0 || Command.is(candidate.command)) && (candidate.isPreferred === void 0 || Is.boolean(candidate.isPreferred)) && (candidate.edit === void 0 || WorkspaceEdit.is(candidate.edit));\n  }\n  CodeAction2.is = is;\n})(CodeAction || (CodeAction = {}));\nvar CodeLens;\n(function(CodeLens2) {\n  function create(range, data) {\n    let result = { range };\n    if (Is.defined(data)) {\n      result.data = data;\n    }\n    return result;\n  }\n  CodeLens2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.command) || Command.is(candidate.command));\n  }\n  CodeLens2.is = is;\n})(CodeLens || (CodeLens = {}));\nvar FormattingOptions;\n(function(FormattingOptions2) {\n  function create(tabSize, insertSpaces) {\n    return { tabSize, insertSpaces };\n  }\n  FormattingOptions2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.uinteger(candidate.tabSize) && Is.boolean(candidate.insertSpaces);\n  }\n  FormattingOptions2.is = is;\n})(FormattingOptions || (FormattingOptions = {}));\nvar DocumentLink;\n(function(DocumentLink2) {\n  function create(range, target, data) {\n    return { range, target, data };\n  }\n  DocumentLink2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.target) || Is.string(candidate.target));\n  }\n  DocumentLink2.is = is;\n})(DocumentLink || (DocumentLink = {}));\nvar SelectionRange;\n(function(SelectionRange2) {\n  function create(range, parent) {\n    return { range, parent };\n  }\n  SelectionRange2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.objectLiteral(candidate) && Range.is(candidate.range) && (candidate.parent === void 0 || SelectionRange2.is(candidate.parent));\n  }\n  SelectionRange2.is = is;\n})(SelectionRange || (SelectionRange = {}));\nvar SemanticTokenTypes;\n(function(SemanticTokenTypes2) {\n  SemanticTokenTypes2[\"namespace\"] = \"namespace\";\n  SemanticTokenTypes2[\"type\"] = \"type\";\n  SemanticTokenTypes2[\"class\"] = \"class\";\n  SemanticTokenTypes2[\"enum\"] = \"enum\";\n  SemanticTokenTypes2[\"interface\"] = \"interface\";\n  SemanticTokenTypes2[\"struct\"] = \"struct\";\n  SemanticTokenTypes2[\"typeParameter\"] = \"typeParameter\";\n  SemanticTokenTypes2[\"parameter\"] = \"parameter\";\n  SemanticTokenTypes2[\"variable\"] = \"variable\";\n  SemanticTokenTypes2[\"property\"] = \"property\";\n  SemanticTokenTypes2[\"enumMember\"] = \"enumMember\";\n  SemanticTokenTypes2[\"event\"] = \"event\";\n  SemanticTokenTypes2[\"function\"] = \"function\";\n  SemanticTokenTypes2[\"method\"] = \"method\";\n  SemanticTokenTypes2[\"macro\"] = \"macro\";\n  SemanticTokenTypes2[\"keyword\"] = \"keyword\";\n  SemanticTokenTypes2[\"modifier\"] = \"modifier\";\n  SemanticTokenTypes2[\"comment\"] = \"comment\";\n  SemanticTokenTypes2[\"string\"] = \"string\";\n  SemanticTokenTypes2[\"number\"] = \"number\";\n  SemanticTokenTypes2[\"regexp\"] = \"regexp\";\n  SemanticTokenTypes2[\"operator\"] = \"operator\";\n  SemanticTokenTypes2[\"decorator\"] = \"decorator\";\n})(SemanticTokenTypes || (SemanticTokenTypes = {}));\nvar SemanticTokenModifiers;\n(function(SemanticTokenModifiers2) {\n  SemanticTokenModifiers2[\"declaration\"] = \"declaration\";\n  SemanticTokenModifiers2[\"definition\"] = \"definition\";\n  SemanticTokenModifiers2[\"readonly\"] = \"readonly\";\n  SemanticTokenModifiers2[\"static\"] = \"static\";\n  SemanticTokenModifiers2[\"deprecated\"] = \"deprecated\";\n  SemanticTokenModifiers2[\"abstract\"] = \"abstract\";\n  SemanticTokenModifiers2[\"async\"] = \"async\";\n  SemanticTokenModifiers2[\"modification\"] = \"modification\";\n  SemanticTokenModifiers2[\"documentation\"] = \"documentation\";\n  SemanticTokenModifiers2[\"defaultLibrary\"] = \"defaultLibrary\";\n})(SemanticTokenModifiers || (SemanticTokenModifiers = {}));\nvar SemanticTokens;\n(function(SemanticTokens2) {\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && (candidate.resultId === void 0 || typeof candidate.resultId === \"string\") && Array.isArray(candidate.data) && (candidate.data.length === 0 || typeof candidate.data[0] === \"number\");\n  }\n  SemanticTokens2.is = is;\n})(SemanticTokens || (SemanticTokens = {}));\nvar InlineValueText;\n(function(InlineValueText2) {\n  function create(range, text) {\n    return { range, text };\n  }\n  InlineValueText2.create = create;\n  function is(value) {\n    const candidate = value;\n    return candidate !== void 0 && candidate !== null && Range.is(candidate.range) && Is.string(candidate.text);\n  }\n  InlineValueText2.is = is;\n})(InlineValueText || (InlineValueText = {}));\nvar InlineValueVariableLookup;\n(function(InlineValueVariableLookup2) {\n  function create(range, variableName, caseSensitiveLookup) {\n    return { range, variableName, caseSensitiveLookup };\n  }\n  InlineValueVariableLookup2.create = create;\n  function is(value) {\n    const candidate = value;\n    return candidate !== void 0 && candidate !== null && Range.is(candidate.range) && Is.boolean(candidate.caseSensitiveLookup) && (Is.string(candidate.variableName) || candidate.variableName === void 0);\n  }\n  InlineValueVariableLookup2.is = is;\n})(InlineValueVariableLookup || (InlineValueVariableLookup = {}));\nvar InlineValueEvaluatableExpression;\n(function(InlineValueEvaluatableExpression2) {\n  function create(range, expression) {\n    return { range, expression };\n  }\n  InlineValueEvaluatableExpression2.create = create;\n  function is(value) {\n    const candidate = value;\n    return candidate !== void 0 && candidate !== null && Range.is(candidate.range) && (Is.string(candidate.expression) || candidate.expression === void 0);\n  }\n  InlineValueEvaluatableExpression2.is = is;\n})(InlineValueEvaluatableExpression || (InlineValueEvaluatableExpression = {}));\nvar InlineValueContext;\n(function(InlineValueContext2) {\n  function create(frameId, stoppedLocation) {\n    return { frameId, stoppedLocation };\n  }\n  InlineValueContext2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.defined(candidate) && Range.is(value.stoppedLocation);\n  }\n  InlineValueContext2.is = is;\n})(InlineValueContext || (InlineValueContext = {}));\nvar InlayHintKind;\n(function(InlayHintKind2) {\n  InlayHintKind2.Type = 1;\n  InlayHintKind2.Parameter = 2;\n  function is(value) {\n    return value === 1 || value === 2;\n  }\n  InlayHintKind2.is = is;\n})(InlayHintKind || (InlayHintKind = {}));\nvar InlayHintLabelPart;\n(function(InlayHintLabelPart2) {\n  function create(value) {\n    return { value };\n  }\n  InlayHintLabelPart2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && (candidate.tooltip === void 0 || Is.string(candidate.tooltip) || MarkupContent.is(candidate.tooltip)) && (candidate.location === void 0 || Location.is(candidate.location)) && (candidate.command === void 0 || Command.is(candidate.command));\n  }\n  InlayHintLabelPart2.is = is;\n})(InlayHintLabelPart || (InlayHintLabelPart = {}));\nvar InlayHint;\n(function(InlayHint2) {\n  function create(position, label, kind) {\n    const result = { position, label };\n    if (kind !== void 0) {\n      result.kind = kind;\n    }\n    return result;\n  }\n  InlayHint2.create = create;\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && Position.is(candidate.position) && (Is.string(candidate.label) || Is.typedArray(candidate.label, InlayHintLabelPart.is)) && (candidate.kind === void 0 || InlayHintKind.is(candidate.kind)) && candidate.textEdits === void 0 || Is.typedArray(candidate.textEdits, TextEdit.is) && (candidate.tooltip === void 0 || Is.string(candidate.tooltip) || MarkupContent.is(candidate.tooltip)) && (candidate.paddingLeft === void 0 || Is.boolean(candidate.paddingLeft)) && (candidate.paddingRight === void 0 || Is.boolean(candidate.paddingRight));\n  }\n  InlayHint2.is = is;\n})(InlayHint || (InlayHint = {}));\nvar StringValue;\n(function(StringValue2) {\n  function createSnippet(value) {\n    return { kind: \"snippet\", value };\n  }\n  StringValue2.createSnippet = createSnippet;\n})(StringValue || (StringValue = {}));\nvar InlineCompletionItem;\n(function(InlineCompletionItem2) {\n  function create(insertText, filterText, range, command) {\n    return { insertText, filterText, range, command };\n  }\n  InlineCompletionItem2.create = create;\n})(InlineCompletionItem || (InlineCompletionItem = {}));\nvar InlineCompletionList;\n(function(InlineCompletionList2) {\n  function create(items) {\n    return { items };\n  }\n  InlineCompletionList2.create = create;\n})(InlineCompletionList || (InlineCompletionList = {}));\nvar InlineCompletionTriggerKind;\n(function(InlineCompletionTriggerKind2) {\n  InlineCompletionTriggerKind2.Invoked = 0;\n  InlineCompletionTriggerKind2.Automatic = 1;\n})(InlineCompletionTriggerKind || (InlineCompletionTriggerKind = {}));\nvar SelectedCompletionInfo;\n(function(SelectedCompletionInfo2) {\n  function create(range, text) {\n    return { range, text };\n  }\n  SelectedCompletionInfo2.create = create;\n})(SelectedCompletionInfo || (SelectedCompletionInfo = {}));\nvar InlineCompletionContext;\n(function(InlineCompletionContext2) {\n  function create(triggerKind, selectedCompletionInfo) {\n    return { triggerKind, selectedCompletionInfo };\n  }\n  InlineCompletionContext2.create = create;\n})(InlineCompletionContext || (InlineCompletionContext = {}));\nvar WorkspaceFolder;\n(function(WorkspaceFolder2) {\n  function is(value) {\n    const candidate = value;\n    return Is.objectLiteral(candidate) && URI.is(candidate.uri) && Is.string(candidate.name);\n  }\n  WorkspaceFolder2.is = is;\n})(WorkspaceFolder || (WorkspaceFolder = {}));\nvar TextDocument;\n(function(TextDocument2) {\n  function create(uri, languageId, version, content) {\n    return new FullTextDocument(uri, languageId, version, content);\n  }\n  TextDocument2.create = create;\n  function is(value) {\n    let candidate = value;\n    return Is.defined(candidate) && Is.string(candidate.uri) && (Is.undefined(candidate.languageId) || Is.string(candidate.languageId)) && Is.uinteger(candidate.lineCount) && Is.func(candidate.getText) && Is.func(candidate.positionAt) && Is.func(candidate.offsetAt) ? true : false;\n  }\n  TextDocument2.is = is;\n  function applyEdits(document, edits) {\n    let text = document.getText();\n    let sortedEdits = mergeSort(edits, (a, b) => {\n      let diff = a.range.start.line - b.range.start.line;\n      if (diff === 0) {\n        return a.range.start.character - b.range.start.character;\n      }\n      return diff;\n    });\n    let lastModifiedOffset = text.length;\n    for (let i = sortedEdits.length - 1; i >= 0; i--) {\n      let e = sortedEdits[i];\n      let startOffset = document.offsetAt(e.range.start);\n      let endOffset = document.offsetAt(e.range.end);\n      if (endOffset <= lastModifiedOffset) {\n        text = text.substring(0, startOffset) + e.newText + text.substring(endOffset, text.length);\n      } else {\n        throw new Error(\"Overlapping edit\");\n      }\n      lastModifiedOffset = startOffset;\n    }\n    return text;\n  }\n  TextDocument2.applyEdits = applyEdits;\n  function mergeSort(data, compare) {\n    if (data.length <= 1) {\n      return data;\n    }\n    const p = data.length / 2 | 0;\n    const left = data.slice(0, p);\n    const right = data.slice(p);\n    mergeSort(left, compare);\n    mergeSort(right, compare);\n    let leftIdx = 0;\n    let rightIdx = 0;\n    let i = 0;\n    while (leftIdx < left.length && rightIdx < right.length) {\n      let ret = compare(left[leftIdx], right[rightIdx]);\n      if (ret <= 0) {\n        data[i++] = left[leftIdx++];\n      } else {\n        data[i++] = right[rightIdx++];\n      }\n    }\n    while (leftIdx < left.length) {\n      data[i++] = left[leftIdx++];\n    }\n    while (rightIdx < right.length) {\n      data[i++] = right[rightIdx++];\n    }\n    return data;\n  }\n})(TextDocument || (TextDocument = {}));\nvar FullTextDocument = class {\n  constructor(uri, languageId, version, content) {\n    this._uri = uri;\n    this._languageId = languageId;\n    this._version = version;\n    this._content = content;\n    this._lineOffsets = void 0;\n  }\n  get uri() {\n    return this._uri;\n  }\n  get languageId() {\n    return this._languageId;\n  }\n  get version() {\n    return this._version;\n  }\n  getText(range) {\n    if (range) {\n      let start = this.offsetAt(range.start);\n      let end = this.offsetAt(range.end);\n      return this._content.substring(start, end);\n    }\n    return this._content;\n  }\n  update(event, version) {\n    this._content = event.text;\n    this._version = version;\n    this._lineOffsets = void 0;\n  }\n  getLineOffsets() {\n    if (this._lineOffsets === void 0) {\n      let lineOffsets = [];\n      let text = this._content;\n      let isLineStart = true;\n      for (let i = 0; i < text.length; i++) {\n        if (isLineStart) {\n          lineOffsets.push(i);\n          isLineStart = false;\n        }\n        let ch = text.charAt(i);\n        isLineStart = ch === \"\\r\" || ch === \"\\n\";\n        if (ch === \"\\r\" && i + 1 < text.length && text.charAt(i + 1) === \"\\n\") {\n          i++;\n        }\n      }\n      if (isLineStart && text.length > 0) {\n        lineOffsets.push(text.length);\n      }\n      this._lineOffsets = lineOffsets;\n    }\n    return this._lineOffsets;\n  }\n  positionAt(offset) {\n    offset = Math.max(Math.min(offset, this._content.length), 0);\n    let lineOffsets = this.getLineOffsets();\n    let low = 0, high = lineOffsets.length;\n    if (high === 0) {\n      return Position.create(0, offset);\n    }\n    while (low < high) {\n      let mid = Math.floor((low + high) / 2);\n      if (lineOffsets[mid] > offset) {\n        high = mid;\n      } else {\n        low = mid + 1;\n      }\n    }\n    let line = low - 1;\n    return Position.create(line, offset - lineOffsets[line]);\n  }\n  offsetAt(position) {\n    let lineOffsets = this.getLineOffsets();\n    if (position.line >= lineOffsets.length) {\n      return this._content.length;\n    } else if (position.line < 0) {\n      return 0;\n    }\n    let lineOffset = lineOffsets[position.line];\n    let nextLineOffset = position.line + 1 < lineOffsets.length ? lineOffsets[position.line + 1] : this._content.length;\n    return Math.max(Math.min(lineOffset + position.character, nextLineOffset), lineOffset);\n  }\n  get lineCount() {\n    return this.getLineOffsets().length;\n  }\n};\nvar Is;\n(function(Is2) {\n  const toString = Object.prototype.toString;\n  function defined(value) {\n    return typeof value !== \"undefined\";\n  }\n  Is2.defined = defined;\n  function undefined2(value) {\n    return typeof value === \"undefined\";\n  }\n  Is2.undefined = undefined2;\n  function boolean(value) {\n    return value === true || value === false;\n  }\n  Is2.boolean = boolean;\n  function string(value) {\n    return toString.call(value) === \"[object String]\";\n  }\n  Is2.string = string;\n  function number(value) {\n    return toString.call(value) === \"[object Number]\";\n  }\n  Is2.number = number;\n  function numberRange(value, min, max) {\n    return toString.call(value) === \"[object Number]\" && min <= value && value <= max;\n  }\n  Is2.numberRange = numberRange;\n  function integer2(value) {\n    return toString.call(value) === \"[object Number]\" && -2147483648 <= value && value <= 2147483647;\n  }\n  Is2.integer = integer2;\n  function uinteger2(value) {\n    return toString.call(value) === \"[object Number]\" && 0 <= value && value <= 2147483647;\n  }\n  Is2.uinteger = uinteger2;\n  function func(value) {\n    return toString.call(value) === \"[object Function]\";\n  }\n  Is2.func = func;\n  function objectLiteral(value) {\n    return value !== null && typeof value === \"object\";\n  }\n  Is2.objectLiteral = objectLiteral;\n  function typedArray(value, check) {\n    return Array.isArray(value) && value.every(check);\n  }\n  Is2.typedArray = typedArray;\n})(Is || (Is = {}));\n\n// src/language/common/lspLanguageFeatures.ts\nvar DiagnosticsAdapter = class {\n  constructor(_languageId, _worker, configChangeEvent) {\n    this._languageId = _languageId;\n    this._worker = _worker;\n    this._disposables = [];\n    this._listener = /* @__PURE__ */ Object.create(null);\n    const onModelAdd = (model) => {\n      let modeId = model.getLanguageId();\n      if (modeId !== this._languageId) {\n        return;\n      }\n      let handle;\n      this._listener[model.uri.toString()] = model.onDidChangeContent(() => {\n        window.clearTimeout(handle);\n        handle = window.setTimeout(() => this._doValidate(model.uri, modeId), 500);\n      });\n      this._doValidate(model.uri, modeId);\n    };\n    const onModelRemoved = (model) => {\n      monaco_editor_core_exports.editor.setModelMarkers(model, this._languageId, []);\n      let uriStr = model.uri.toString();\n      let listener = this._listener[uriStr];\n      if (listener) {\n        listener.dispose();\n        delete this._listener[uriStr];\n      }\n    };\n    this._disposables.push(monaco_editor_core_exports.editor.onDidCreateModel(onModelAdd));\n    this._disposables.push(monaco_editor_core_exports.editor.onWillDisposeModel(onModelRemoved));\n    this._disposables.push(\n      monaco_editor_core_exports.editor.onDidChangeModelLanguage((event) => {\n        onModelRemoved(event.model);\n        onModelAdd(event.model);\n      })\n    );\n    this._disposables.push(\n      configChangeEvent((_) => {\n        monaco_editor_core_exports.editor.getModels().forEach((model) => {\n          if (model.getLanguageId() === this._languageId) {\n            onModelRemoved(model);\n            onModelAdd(model);\n          }\n        });\n      })\n    );\n    this._disposables.push({\n      dispose: () => {\n        monaco_editor_core_exports.editor.getModels().forEach(onModelRemoved);\n        for (let key in this._listener) {\n          this._listener[key].dispose();\n        }\n      }\n    });\n    monaco_editor_core_exports.editor.getModels().forEach(onModelAdd);\n  }\n  dispose() {\n    this._disposables.forEach((d) => d && d.dispose());\n    this._disposables.length = 0;\n  }\n  _doValidate(resource, languageId) {\n    this._worker(resource).then((worker2) => {\n      return worker2.doValidation(resource.toString());\n    }).then((diagnostics) => {\n      const markers = diagnostics.map((d) => toDiagnostics(resource, d));\n      let model = monaco_editor_core_exports.editor.getModel(resource);\n      if (model && model.getLanguageId() === languageId) {\n        monaco_editor_core_exports.editor.setModelMarkers(model, languageId, markers);\n      }\n    }).then(void 0, (err) => {\n      console.error(err);\n    });\n  }\n};\nfunction toSeverity(lsSeverity) {\n  switch (lsSeverity) {\n    case DiagnosticSeverity.Error:\n      return monaco_editor_core_exports.MarkerSeverity.Error;\n    case DiagnosticSeverity.Warning:\n      return monaco_editor_core_exports.MarkerSeverity.Warning;\n    case DiagnosticSeverity.Information:\n      return monaco_editor_core_exports.MarkerSeverity.Info;\n    case DiagnosticSeverity.Hint:\n      return monaco_editor_core_exports.MarkerSeverity.Hint;\n    default:\n      return monaco_editor_core_exports.MarkerSeverity.Info;\n  }\n}\nfunction toDiagnostics(resource, diag) {\n  let code = typeof diag.code === \"number\" ? String(diag.code) : diag.code;\n  return {\n    severity: toSeverity(diag.severity),\n    startLineNumber: diag.range.start.line + 1,\n    startColumn: diag.range.start.character + 1,\n    endLineNumber: diag.range.end.line + 1,\n    endColumn: diag.range.end.character + 1,\n    message: diag.message,\n    code,\n    source: diag.source\n  };\n}\nvar CompletionAdapter = class {\n  constructor(_worker, _triggerCharacters) {\n    this._worker = _worker;\n    this._triggerCharacters = _triggerCharacters;\n  }\n  get triggerCharacters() {\n    return this._triggerCharacters;\n  }\n  provideCompletionItems(model, position, context, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker2) => {\n      return worker2.doComplete(resource.toString(), fromPosition(position));\n    }).then((info) => {\n      if (!info) {\n        return;\n      }\n      const wordInfo = model.getWordUntilPosition(position);\n      const wordRange = new monaco_editor_core_exports.Range(\n        position.lineNumber,\n        wordInfo.startColumn,\n        position.lineNumber,\n        wordInfo.endColumn\n      );\n      const items = info.items.map((entry) => {\n        const item = {\n          label: entry.label,\n          insertText: entry.insertText || entry.label,\n          sortText: entry.sortText,\n          filterText: entry.filterText,\n          documentation: entry.documentation,\n          detail: entry.detail,\n          command: toCommand(entry.command),\n          range: wordRange,\n          kind: toCompletionItemKind(entry.kind)\n        };\n        if (entry.textEdit) {\n          if (isInsertReplaceEdit(entry.textEdit)) {\n            item.range = {\n              insert: toRange(entry.textEdit.insert),\n              replace: toRange(entry.textEdit.replace)\n            };\n          } else {\n            item.range = toRange(entry.textEdit.range);\n          }\n          item.insertText = entry.textEdit.newText;\n        }\n        if (entry.additionalTextEdits) {\n          item.additionalTextEdits = entry.additionalTextEdits.map(toTextEdit);\n        }\n        if (entry.insertTextFormat === InsertTextFormat.Snippet) {\n          item.insertTextRules = monaco_editor_core_exports.languages.CompletionItemInsertTextRule.InsertAsSnippet;\n        }\n        return item;\n      });\n      return {\n        isIncomplete: info.isIncomplete,\n        suggestions: items\n      };\n    });\n  }\n};\nfunction fromPosition(position) {\n  if (!position) {\n    return void 0;\n  }\n  return { character: position.column - 1, line: position.lineNumber - 1 };\n}\nfunction fromRange(range) {\n  if (!range) {\n    return void 0;\n  }\n  return {\n    start: {\n      line: range.startLineNumber - 1,\n      character: range.startColumn - 1\n    },\n    end: { line: range.endLineNumber - 1, character: range.endColumn - 1 }\n  };\n}\nfunction toRange(range) {\n  if (!range) {\n    return void 0;\n  }\n  return new monaco_editor_core_exports.Range(\n    range.start.line + 1,\n    range.start.character + 1,\n    range.end.line + 1,\n    range.end.character + 1\n  );\n}\nfunction isInsertReplaceEdit(edit) {\n  return typeof edit.insert !== \"undefined\" && typeof edit.replace !== \"undefined\";\n}\nfunction toCompletionItemKind(kind) {\n  const mItemKind = monaco_editor_core_exports.languages.CompletionItemKind;\n  switch (kind) {\n    case CompletionItemKind.Text:\n      return mItemKind.Text;\n    case CompletionItemKind.Method:\n      return mItemKind.Method;\n    case CompletionItemKind.Function:\n      return mItemKind.Function;\n    case CompletionItemKind.Constructor:\n      return mItemKind.Constructor;\n    case CompletionItemKind.Field:\n      return mItemKind.Field;\n    case CompletionItemKind.Variable:\n      return mItemKind.Variable;\n    case CompletionItemKind.Class:\n      return mItemKind.Class;\n    case CompletionItemKind.Interface:\n      return mItemKind.Interface;\n    case CompletionItemKind.Module:\n      return mItemKind.Module;\n    case CompletionItemKind.Property:\n      return mItemKind.Property;\n    case CompletionItemKind.Unit:\n      return mItemKind.Unit;\n    case CompletionItemKind.Value:\n      return mItemKind.Value;\n    case CompletionItemKind.Enum:\n      return mItemKind.Enum;\n    case CompletionItemKind.Keyword:\n      return mItemKind.Keyword;\n    case CompletionItemKind.Snippet:\n      return mItemKind.Snippet;\n    case CompletionItemKind.Color:\n      return mItemKind.Color;\n    case CompletionItemKind.File:\n      return mItemKind.File;\n    case CompletionItemKind.Reference:\n      return mItemKind.Reference;\n  }\n  return mItemKind.Property;\n}\nfunction toTextEdit(textEdit) {\n  if (!textEdit) {\n    return void 0;\n  }\n  return {\n    range: toRange(textEdit.range),\n    text: textEdit.newText\n  };\n}\nfunction toCommand(c) {\n  return c && c.command === \"editor.action.triggerSuggest\" ? { id: c.command, title: c.title, arguments: c.arguments } : void 0;\n}\nvar HoverAdapter = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideHover(model, position, token) {\n    let resource = model.uri;\n    return this._worker(resource).then((worker2) => {\n      return worker2.doHover(resource.toString(), fromPosition(position));\n    }).then((info) => {\n      if (!info) {\n        return;\n      }\n      return {\n        range: toRange(info.range),\n        contents: toMarkedStringArray(info.contents)\n      };\n    });\n  }\n};\nfunction isMarkupContent(thing) {\n  return thing && typeof thing === \"object\" && typeof thing.kind === \"string\";\n}\nfunction toMarkdownString(entry) {\n  if (typeof entry === \"string\") {\n    return {\n      value: entry\n    };\n  }\n  if (isMarkupContent(entry)) {\n    if (entry.kind === \"plaintext\") {\n      return {\n        value: entry.value.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g, \"\\\\$&\")\n      };\n    }\n    return {\n      value: entry.value\n    };\n  }\n  return { value: \"```\" + entry.language + \"\\n\" + entry.value + \"\\n```\\n\" };\n}\nfunction toMarkedStringArray(contents) {\n  if (!contents) {\n    return void 0;\n  }\n  if (Array.isArray(contents)) {\n    return contents.map(toMarkdownString);\n  }\n  return [toMarkdownString(contents)];\n}\nvar DocumentHighlightAdapter = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideDocumentHighlights(model, position, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker2) => worker2.findDocumentHighlights(resource.toString(), fromPosition(position))).then((entries) => {\n      if (!entries) {\n        return;\n      }\n      return entries.map((entry) => {\n        return {\n          range: toRange(entry.range),\n          kind: toDocumentHighlightKind(entry.kind)\n        };\n      });\n    });\n  }\n};\nfunction toDocumentHighlightKind(kind) {\n  switch (kind) {\n    case DocumentHighlightKind.Read:\n      return monaco_editor_core_exports.languages.DocumentHighlightKind.Read;\n    case DocumentHighlightKind.Write:\n      return monaco_editor_core_exports.languages.DocumentHighlightKind.Write;\n    case DocumentHighlightKind.Text:\n      return monaco_editor_core_exports.languages.DocumentHighlightKind.Text;\n  }\n  return monaco_editor_core_exports.languages.DocumentHighlightKind.Text;\n}\nvar DefinitionAdapter = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideDefinition(model, position, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker2) => {\n      return worker2.findDefinition(resource.toString(), fromPosition(position));\n    }).then((definition) => {\n      if (!definition) {\n        return;\n      }\n      return [toLocation(definition)];\n    });\n  }\n};\nfunction toLocation(location) {\n  return {\n    uri: monaco_editor_core_exports.Uri.parse(location.uri),\n    range: toRange(location.range)\n  };\n}\nvar ReferenceAdapter = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideReferences(model, position, context, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker2) => {\n      return worker2.findReferences(resource.toString(), fromPosition(position));\n    }).then((entries) => {\n      if (!entries) {\n        return;\n      }\n      return entries.map(toLocation);\n    });\n  }\n};\nvar RenameAdapter = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideRenameEdits(model, position, newName, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker2) => {\n      return worker2.doRename(resource.toString(), fromPosition(position), newName);\n    }).then((edit) => {\n      return toWorkspaceEdit(edit);\n    });\n  }\n};\nfunction toWorkspaceEdit(edit) {\n  if (!edit || !edit.changes) {\n    return void 0;\n  }\n  let resourceEdits = [];\n  for (let uri in edit.changes) {\n    const _uri = monaco_editor_core_exports.Uri.parse(uri);\n    for (let e of edit.changes[uri]) {\n      resourceEdits.push({\n        resource: _uri,\n        versionId: void 0,\n        textEdit: {\n          range: toRange(e.range),\n          text: e.newText\n        }\n      });\n    }\n  }\n  return {\n    edits: resourceEdits\n  };\n}\nvar DocumentSymbolAdapter = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideDocumentSymbols(model, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker2) => worker2.findDocumentSymbols(resource.toString())).then((items) => {\n      if (!items) {\n        return;\n      }\n      return items.map((item) => {\n        if (isDocumentSymbol(item)) {\n          return toDocumentSymbol(item);\n        }\n        return {\n          name: item.name,\n          detail: \"\",\n          containerName: item.containerName,\n          kind: toSymbolKind(item.kind),\n          range: toRange(item.location.range),\n          selectionRange: toRange(item.location.range),\n          tags: []\n        };\n      });\n    });\n  }\n};\nfunction isDocumentSymbol(symbol) {\n  return \"children\" in symbol;\n}\nfunction toDocumentSymbol(symbol) {\n  return {\n    name: symbol.name,\n    detail: symbol.detail ?? \"\",\n    kind: toSymbolKind(symbol.kind),\n    range: toRange(symbol.range),\n    selectionRange: toRange(symbol.selectionRange),\n    tags: symbol.tags ?? [],\n    children: (symbol.children ?? []).map((item) => toDocumentSymbol(item))\n  };\n}\nfunction toSymbolKind(kind) {\n  let mKind = monaco_editor_core_exports.languages.SymbolKind;\n  switch (kind) {\n    case SymbolKind.File:\n      return mKind.File;\n    case SymbolKind.Module:\n      return mKind.Module;\n    case SymbolKind.Namespace:\n      return mKind.Namespace;\n    case SymbolKind.Package:\n      return mKind.Package;\n    case SymbolKind.Class:\n      return mKind.Class;\n    case SymbolKind.Method:\n      return mKind.Method;\n    case SymbolKind.Property:\n      return mKind.Property;\n    case SymbolKind.Field:\n      return mKind.Field;\n    case SymbolKind.Constructor:\n      return mKind.Constructor;\n    case SymbolKind.Enum:\n      return mKind.Enum;\n    case SymbolKind.Interface:\n      return mKind.Interface;\n    case SymbolKind.Function:\n      return mKind.Function;\n    case SymbolKind.Variable:\n      return mKind.Variable;\n    case SymbolKind.Constant:\n      return mKind.Constant;\n    case SymbolKind.String:\n      return mKind.String;\n    case SymbolKind.Number:\n      return mKind.Number;\n    case SymbolKind.Boolean:\n      return mKind.Boolean;\n    case SymbolKind.Array:\n      return mKind.Array;\n  }\n  return mKind.Function;\n}\nvar DocumentLinkAdapter = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideLinks(model, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker2) => worker2.findDocumentLinks(resource.toString())).then((items) => {\n      if (!items) {\n        return;\n      }\n      return {\n        links: items.map((item) => ({\n          range: toRange(item.range),\n          url: item.target\n        }))\n      };\n    });\n  }\n};\nvar DocumentFormattingEditProvider = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideDocumentFormattingEdits(model, options, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker2) => {\n      return worker2.format(resource.toString(), null, fromFormattingOptions(options)).then((edits) => {\n        if (!edits || edits.length === 0) {\n          return;\n        }\n        return edits.map(toTextEdit);\n      });\n    });\n  }\n};\nvar DocumentRangeFormattingEditProvider = class {\n  constructor(_worker) {\n    this._worker = _worker;\n    this.canFormatMultipleRanges = false;\n  }\n  provideDocumentRangeFormattingEdits(model, range, options, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker2) => {\n      return worker2.format(resource.toString(), fromRange(range), fromFormattingOptions(options)).then((edits) => {\n        if (!edits || edits.length === 0) {\n          return;\n        }\n        return edits.map(toTextEdit);\n      });\n    });\n  }\n};\nfunction fromFormattingOptions(options) {\n  return {\n    tabSize: options.tabSize,\n    insertSpaces: options.insertSpaces\n  };\n}\nvar DocumentColorAdapter = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideDocumentColors(model, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker2) => worker2.findDocumentColors(resource.toString())).then((infos) => {\n      if (!infos) {\n        return;\n      }\n      return infos.map((item) => ({\n        color: item.color,\n        range: toRange(item.range)\n      }));\n    });\n  }\n  provideColorPresentations(model, info, token) {\n    const resource = model.uri;\n    return this._worker(resource).then(\n      (worker2) => worker2.getColorPresentations(resource.toString(), info.color, fromRange(info.range))\n    ).then((presentations) => {\n      if (!presentations) {\n        return;\n      }\n      return presentations.map((presentation) => {\n        let item = {\n          label: presentation.label\n        };\n        if (presentation.textEdit) {\n          item.textEdit = toTextEdit(presentation.textEdit);\n        }\n        if (presentation.additionalTextEdits) {\n          item.additionalTextEdits = presentation.additionalTextEdits.map(toTextEdit);\n        }\n        return item;\n      });\n    });\n  }\n};\nvar FoldingRangeAdapter = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideFoldingRanges(model, context, token) {\n    const resource = model.uri;\n    return this._worker(resource).then((worker2) => worker2.getFoldingRanges(resource.toString(), context)).then((ranges) => {\n      if (!ranges) {\n        return;\n      }\n      return ranges.map((range) => {\n        const result = {\n          start: range.startLine + 1,\n          end: range.endLine + 1\n        };\n        if (typeof range.kind !== \"undefined\") {\n          result.kind = toFoldingRangeKind(range.kind);\n        }\n        return result;\n      });\n    });\n  }\n};\nfunction toFoldingRangeKind(kind) {\n  switch (kind) {\n    case FoldingRangeKind.Comment:\n      return monaco_editor_core_exports.languages.FoldingRangeKind.Comment;\n    case FoldingRangeKind.Imports:\n      return monaco_editor_core_exports.languages.FoldingRangeKind.Imports;\n    case FoldingRangeKind.Region:\n      return monaco_editor_core_exports.languages.FoldingRangeKind.Region;\n  }\n  return void 0;\n}\nvar SelectionRangeAdapter = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  provideSelectionRanges(model, positions, token) {\n    const resource = model.uri;\n    return this._worker(resource).then(\n      (worker2) => worker2.getSelectionRanges(\n        resource.toString(),\n        positions.map(fromPosition)\n      )\n    ).then((selectionRanges) => {\n      if (!selectionRanges) {\n        return;\n      }\n      return selectionRanges.map((selectionRange) => {\n        const result = [];\n        while (selectionRange) {\n          result.push({ range: toRange(selectionRange.range) });\n          selectionRange = selectionRange.parent;\n        }\n        return result;\n      });\n    });\n  }\n};\n\n// node_modules/jsonc-parser/lib/esm/impl/scanner.js\nfunction createScanner(text, ignoreTrivia = false) {\n  const len = text.length;\n  let pos = 0, value = \"\", tokenOffset = 0, token = 16, lineNumber = 0, lineStartOffset = 0, tokenLineStartOffset = 0, prevTokenLineStartOffset = 0, scanError = 0;\n  function scanHexDigits(count, exact) {\n    let digits = 0;\n    let value2 = 0;\n    while (digits < count || !exact) {\n      let ch = text.charCodeAt(pos);\n      if (ch >= 48 && ch <= 57) {\n        value2 = value2 * 16 + ch - 48;\n      } else if (ch >= 65 && ch <= 70) {\n        value2 = value2 * 16 + ch - 65 + 10;\n      } else if (ch >= 97 && ch <= 102) {\n        value2 = value2 * 16 + ch - 97 + 10;\n      } else {\n        break;\n      }\n      pos++;\n      digits++;\n    }\n    if (digits < count) {\n      value2 = -1;\n    }\n    return value2;\n  }\n  function setPosition(newPosition) {\n    pos = newPosition;\n    value = \"\";\n    tokenOffset = 0;\n    token = 16;\n    scanError = 0;\n  }\n  function scanNumber() {\n    let start = pos;\n    if (text.charCodeAt(pos) === 48) {\n      pos++;\n    } else {\n      pos++;\n      while (pos < text.length && isDigit(text.charCodeAt(pos))) {\n        pos++;\n      }\n    }\n    if (pos < text.length && text.charCodeAt(pos) === 46) {\n      pos++;\n      if (pos < text.length && isDigit(text.charCodeAt(pos))) {\n        pos++;\n        while (pos < text.length && isDigit(text.charCodeAt(pos))) {\n          pos++;\n        }\n      } else {\n        scanError = 3;\n        return text.substring(start, pos);\n      }\n    }\n    let end = pos;\n    if (pos < text.length && (text.charCodeAt(pos) === 69 || text.charCodeAt(pos) === 101)) {\n      pos++;\n      if (pos < text.length && text.charCodeAt(pos) === 43 || text.charCodeAt(pos) === 45) {\n        pos++;\n      }\n      if (pos < text.length && isDigit(text.charCodeAt(pos))) {\n        pos++;\n        while (pos < text.length && isDigit(text.charCodeAt(pos))) {\n          pos++;\n        }\n        end = pos;\n      } else {\n        scanError = 3;\n      }\n    }\n    return text.substring(start, end);\n  }\n  function scanString() {\n    let result = \"\", start = pos;\n    while (true) {\n      if (pos >= len) {\n        result += text.substring(start, pos);\n        scanError = 2;\n        break;\n      }\n      const ch = text.charCodeAt(pos);\n      if (ch === 34) {\n        result += text.substring(start, pos);\n        pos++;\n        break;\n      }\n      if (ch === 92) {\n        result += text.substring(start, pos);\n        pos++;\n        if (pos >= len) {\n          scanError = 2;\n          break;\n        }\n        const ch2 = text.charCodeAt(pos++);\n        switch (ch2) {\n          case 34:\n            result += '\"';\n            break;\n          case 92:\n            result += \"\\\\\";\n            break;\n          case 47:\n            result += \"/\";\n            break;\n          case 98:\n            result += \"\\b\";\n            break;\n          case 102:\n            result += \"\\f\";\n            break;\n          case 110:\n            result += \"\\n\";\n            break;\n          case 114:\n            result += \"\\r\";\n            break;\n          case 116:\n            result += \"\t\";\n            break;\n          case 117:\n            const ch3 = scanHexDigits(4, true);\n            if (ch3 >= 0) {\n              result += String.fromCharCode(ch3);\n            } else {\n              scanError = 4;\n            }\n            break;\n          default:\n            scanError = 5;\n        }\n        start = pos;\n        continue;\n      }\n      if (ch >= 0 && ch <= 31) {\n        if (isLineBreak(ch)) {\n          result += text.substring(start, pos);\n          scanError = 2;\n          break;\n        } else {\n          scanError = 6;\n        }\n      }\n      pos++;\n    }\n    return result;\n  }\n  function scanNext() {\n    value = \"\";\n    scanError = 0;\n    tokenOffset = pos;\n    lineStartOffset = lineNumber;\n    prevTokenLineStartOffset = tokenLineStartOffset;\n    if (pos >= len) {\n      tokenOffset = len;\n      return token = 17;\n    }\n    let code = text.charCodeAt(pos);\n    if (isWhiteSpace(code)) {\n      do {\n        pos++;\n        value += String.fromCharCode(code);\n        code = text.charCodeAt(pos);\n      } while (isWhiteSpace(code));\n      return token = 15;\n    }\n    if (isLineBreak(code)) {\n      pos++;\n      value += String.fromCharCode(code);\n      if (code === 13 && text.charCodeAt(pos) === 10) {\n        pos++;\n        value += \"\\n\";\n      }\n      lineNumber++;\n      tokenLineStartOffset = pos;\n      return token = 14;\n    }\n    switch (code) {\n      case 123:\n        pos++;\n        return token = 1;\n      case 125:\n        pos++;\n        return token = 2;\n      case 91:\n        pos++;\n        return token = 3;\n      case 93:\n        pos++;\n        return token = 4;\n      case 58:\n        pos++;\n        return token = 6;\n      case 44:\n        pos++;\n        return token = 5;\n      case 34:\n        pos++;\n        value = scanString();\n        return token = 10;\n      case 47:\n        const start = pos - 1;\n        if (text.charCodeAt(pos + 1) === 47) {\n          pos += 2;\n          while (pos < len) {\n            if (isLineBreak(text.charCodeAt(pos))) {\n              break;\n            }\n            pos++;\n          }\n          value = text.substring(start, pos);\n          return token = 12;\n        }\n        if (text.charCodeAt(pos + 1) === 42) {\n          pos += 2;\n          const safeLength = len - 1;\n          let commentClosed = false;\n          while (pos < safeLength) {\n            const ch = text.charCodeAt(pos);\n            if (ch === 42 && text.charCodeAt(pos + 1) === 47) {\n              pos += 2;\n              commentClosed = true;\n              break;\n            }\n            pos++;\n            if (isLineBreak(ch)) {\n              if (ch === 13 && text.charCodeAt(pos) === 10) {\n                pos++;\n              }\n              lineNumber++;\n              tokenLineStartOffset = pos;\n            }\n          }\n          if (!commentClosed) {\n            pos++;\n            scanError = 1;\n          }\n          value = text.substring(start, pos);\n          return token = 13;\n        }\n        value += String.fromCharCode(code);\n        pos++;\n        return token = 16;\n      case 45:\n        value += String.fromCharCode(code);\n        pos++;\n        if (pos === len || !isDigit(text.charCodeAt(pos))) {\n          return token = 16;\n        }\n      case 48:\n      case 49:\n      case 50:\n      case 51:\n      case 52:\n      case 53:\n      case 54:\n      case 55:\n      case 56:\n      case 57:\n        value += scanNumber();\n        return token = 11;\n      default:\n        while (pos < len && isUnknownContentCharacter(code)) {\n          pos++;\n          code = text.charCodeAt(pos);\n        }\n        if (tokenOffset !== pos) {\n          value = text.substring(tokenOffset, pos);\n          switch (value) {\n            case \"true\":\n              return token = 8;\n            case \"false\":\n              return token = 9;\n            case \"null\":\n              return token = 7;\n          }\n          return token = 16;\n        }\n        value += String.fromCharCode(code);\n        pos++;\n        return token = 16;\n    }\n  }\n  function isUnknownContentCharacter(code) {\n    if (isWhiteSpace(code) || isLineBreak(code)) {\n      return false;\n    }\n    switch (code) {\n      case 125:\n      case 93:\n      case 123:\n      case 91:\n      case 34:\n      case 58:\n      case 44:\n      case 47:\n        return false;\n    }\n    return true;\n  }\n  function scanNextNonTrivia() {\n    let result;\n    do {\n      result = scanNext();\n    } while (result >= 12 && result <= 15);\n    return result;\n  }\n  return {\n    setPosition,\n    getPosition: () => pos,\n    scan: ignoreTrivia ? scanNextNonTrivia : scanNext,\n    getToken: () => token,\n    getTokenValue: () => value,\n    getTokenOffset: () => tokenOffset,\n    getTokenLength: () => pos - tokenOffset,\n    getTokenStartLine: () => lineStartOffset,\n    getTokenStartCharacter: () => tokenOffset - prevTokenLineStartOffset,\n    getTokenError: () => scanError\n  };\n}\nfunction isWhiteSpace(ch) {\n  return ch === 32 || ch === 9;\n}\nfunction isLineBreak(ch) {\n  return ch === 10 || ch === 13;\n}\nfunction isDigit(ch) {\n  return ch >= 48 && ch <= 57;\n}\nvar CharacterCodes;\n(function(CharacterCodes2) {\n  CharacterCodes2[CharacterCodes2[\"lineFeed\"] = 10] = \"lineFeed\";\n  CharacterCodes2[CharacterCodes2[\"carriageReturn\"] = 13] = \"carriageReturn\";\n  CharacterCodes2[CharacterCodes2[\"space\"] = 32] = \"space\";\n  CharacterCodes2[CharacterCodes2[\"_0\"] = 48] = \"_0\";\n  CharacterCodes2[CharacterCodes2[\"_1\"] = 49] = \"_1\";\n  CharacterCodes2[CharacterCodes2[\"_2\"] = 50] = \"_2\";\n  CharacterCodes2[CharacterCodes2[\"_3\"] = 51] = \"_3\";\n  CharacterCodes2[CharacterCodes2[\"_4\"] = 52] = \"_4\";\n  CharacterCodes2[CharacterCodes2[\"_5\"] = 53] = \"_5\";\n  CharacterCodes2[CharacterCodes2[\"_6\"] = 54] = \"_6\";\n  CharacterCodes2[CharacterCodes2[\"_7\"] = 55] = \"_7\";\n  CharacterCodes2[CharacterCodes2[\"_8\"] = 56] = \"_8\";\n  CharacterCodes2[CharacterCodes2[\"_9\"] = 57] = \"_9\";\n  CharacterCodes2[CharacterCodes2[\"a\"] = 97] = \"a\";\n  CharacterCodes2[CharacterCodes2[\"b\"] = 98] = \"b\";\n  CharacterCodes2[CharacterCodes2[\"c\"] = 99] = \"c\";\n  CharacterCodes2[CharacterCodes2[\"d\"] = 100] = \"d\";\n  CharacterCodes2[CharacterCodes2[\"e\"] = 101] = \"e\";\n  CharacterCodes2[CharacterCodes2[\"f\"] = 102] = \"f\";\n  CharacterCodes2[CharacterCodes2[\"g\"] = 103] = \"g\";\n  CharacterCodes2[CharacterCodes2[\"h\"] = 104] = \"h\";\n  CharacterCodes2[CharacterCodes2[\"i\"] = 105] = \"i\";\n  CharacterCodes2[CharacterCodes2[\"j\"] = 106] = \"j\";\n  CharacterCodes2[CharacterCodes2[\"k\"] = 107] = \"k\";\n  CharacterCodes2[CharacterCodes2[\"l\"] = 108] = \"l\";\n  CharacterCodes2[CharacterCodes2[\"m\"] = 109] = \"m\";\n  CharacterCodes2[CharacterCodes2[\"n\"] = 110] = \"n\";\n  CharacterCodes2[CharacterCodes2[\"o\"] = 111] = \"o\";\n  CharacterCodes2[CharacterCodes2[\"p\"] = 112] = \"p\";\n  CharacterCodes2[CharacterCodes2[\"q\"] = 113] = \"q\";\n  CharacterCodes2[CharacterCodes2[\"r\"] = 114] = \"r\";\n  CharacterCodes2[CharacterCodes2[\"s\"] = 115] = \"s\";\n  CharacterCodes2[CharacterCodes2[\"t\"] = 116] = \"t\";\n  CharacterCodes2[CharacterCodes2[\"u\"] = 117] = \"u\";\n  CharacterCodes2[CharacterCodes2[\"v\"] = 118] = \"v\";\n  CharacterCodes2[CharacterCodes2[\"w\"] = 119] = \"w\";\n  CharacterCodes2[CharacterCodes2[\"x\"] = 120] = \"x\";\n  CharacterCodes2[CharacterCodes2[\"y\"] = 121] = \"y\";\n  CharacterCodes2[CharacterCodes2[\"z\"] = 122] = \"z\";\n  CharacterCodes2[CharacterCodes2[\"A\"] = 65] = \"A\";\n  CharacterCodes2[CharacterCodes2[\"B\"] = 66] = \"B\";\n  CharacterCodes2[CharacterCodes2[\"C\"] = 67] = \"C\";\n  CharacterCodes2[CharacterCodes2[\"D\"] = 68] = \"D\";\n  CharacterCodes2[CharacterCodes2[\"E\"] = 69] = \"E\";\n  CharacterCodes2[CharacterCodes2[\"F\"] = 70] = \"F\";\n  CharacterCodes2[CharacterCodes2[\"G\"] = 71] = \"G\";\n  CharacterCodes2[CharacterCodes2[\"H\"] = 72] = \"H\";\n  CharacterCodes2[CharacterCodes2[\"I\"] = 73] = \"I\";\n  CharacterCodes2[CharacterCodes2[\"J\"] = 74] = \"J\";\n  CharacterCodes2[CharacterCodes2[\"K\"] = 75] = \"K\";\n  CharacterCodes2[CharacterCodes2[\"L\"] = 76] = \"L\";\n  CharacterCodes2[CharacterCodes2[\"M\"] = 77] = \"M\";\n  CharacterCodes2[CharacterCodes2[\"N\"] = 78] = \"N\";\n  CharacterCodes2[CharacterCodes2[\"O\"] = 79] = \"O\";\n  CharacterCodes2[CharacterCodes2[\"P\"] = 80] = \"P\";\n  CharacterCodes2[CharacterCodes2[\"Q\"] = 81] = \"Q\";\n  CharacterCodes2[CharacterCodes2[\"R\"] = 82] = \"R\";\n  CharacterCodes2[CharacterCodes2[\"S\"] = 83] = \"S\";\n  CharacterCodes2[CharacterCodes2[\"T\"] = 84] = \"T\";\n  CharacterCodes2[CharacterCodes2[\"U\"] = 85] = \"U\";\n  CharacterCodes2[CharacterCodes2[\"V\"] = 86] = \"V\";\n  CharacterCodes2[CharacterCodes2[\"W\"] = 87] = \"W\";\n  CharacterCodes2[CharacterCodes2[\"X\"] = 88] = \"X\";\n  CharacterCodes2[CharacterCodes2[\"Y\"] = 89] = \"Y\";\n  CharacterCodes2[CharacterCodes2[\"Z\"] = 90] = \"Z\";\n  CharacterCodes2[CharacterCodes2[\"asterisk\"] = 42] = \"asterisk\";\n  CharacterCodes2[CharacterCodes2[\"backslash\"] = 92] = \"backslash\";\n  CharacterCodes2[CharacterCodes2[\"closeBrace\"] = 125] = \"closeBrace\";\n  CharacterCodes2[CharacterCodes2[\"closeBracket\"] = 93] = \"closeBracket\";\n  CharacterCodes2[CharacterCodes2[\"colon\"] = 58] = \"colon\";\n  CharacterCodes2[CharacterCodes2[\"comma\"] = 44] = \"comma\";\n  CharacterCodes2[CharacterCodes2[\"dot\"] = 46] = \"dot\";\n  CharacterCodes2[CharacterCodes2[\"doubleQuote\"] = 34] = \"doubleQuote\";\n  CharacterCodes2[CharacterCodes2[\"minus\"] = 45] = \"minus\";\n  CharacterCodes2[CharacterCodes2[\"openBrace\"] = 123] = \"openBrace\";\n  CharacterCodes2[CharacterCodes2[\"openBracket\"] = 91] = \"openBracket\";\n  CharacterCodes2[CharacterCodes2[\"plus\"] = 43] = \"plus\";\n  CharacterCodes2[CharacterCodes2[\"slash\"] = 47] = \"slash\";\n  CharacterCodes2[CharacterCodes2[\"formFeed\"] = 12] = \"formFeed\";\n  CharacterCodes2[CharacterCodes2[\"tab\"] = 9] = \"tab\";\n})(CharacterCodes || (CharacterCodes = {}));\n\n// node_modules/jsonc-parser/lib/esm/impl/string-intern.js\nvar cachedSpaces = new Array(20).fill(0).map((_, index) => {\n  return \" \".repeat(index);\n});\nvar maxCachedValues = 200;\nvar cachedBreakLinesWithSpaces = {\n  \" \": {\n    \"\\n\": new Array(maxCachedValues).fill(0).map((_, index) => {\n      return \"\\n\" + \" \".repeat(index);\n    }),\n    \"\\r\": new Array(maxCachedValues).fill(0).map((_, index) => {\n      return \"\\r\" + \" \".repeat(index);\n    }),\n    \"\\r\\n\": new Array(maxCachedValues).fill(0).map((_, index) => {\n      return \"\\r\\n\" + \" \".repeat(index);\n    })\n  },\n  \"\t\": {\n    \"\\n\": new Array(maxCachedValues).fill(0).map((_, index) => {\n      return \"\\n\" + \"\t\".repeat(index);\n    }),\n    \"\\r\": new Array(maxCachedValues).fill(0).map((_, index) => {\n      return \"\\r\" + \"\t\".repeat(index);\n    }),\n    \"\\r\\n\": new Array(maxCachedValues).fill(0).map((_, index) => {\n      return \"\\r\\n\" + \"\t\".repeat(index);\n    })\n  }\n};\n\n// node_modules/jsonc-parser/lib/esm/impl/parser.js\nvar ParseOptions;\n(function(ParseOptions2) {\n  ParseOptions2.DEFAULT = {\n    allowTrailingComma: false\n  };\n})(ParseOptions || (ParseOptions = {}));\n\n// node_modules/jsonc-parser/lib/esm/main.js\nvar createScanner2 = createScanner;\nvar ScanError;\n(function(ScanError2) {\n  ScanError2[ScanError2[\"None\"] = 0] = \"None\";\n  ScanError2[ScanError2[\"UnexpectedEndOfComment\"] = 1] = \"UnexpectedEndOfComment\";\n  ScanError2[ScanError2[\"UnexpectedEndOfString\"] = 2] = \"UnexpectedEndOfString\";\n  ScanError2[ScanError2[\"UnexpectedEndOfNumber\"] = 3] = \"UnexpectedEndOfNumber\";\n  ScanError2[ScanError2[\"InvalidUnicode\"] = 4] = \"InvalidUnicode\";\n  ScanError2[ScanError2[\"InvalidEscapeCharacter\"] = 5] = \"InvalidEscapeCharacter\";\n  ScanError2[ScanError2[\"InvalidCharacter\"] = 6] = \"InvalidCharacter\";\n})(ScanError || (ScanError = {}));\nvar SyntaxKind;\n(function(SyntaxKind2) {\n  SyntaxKind2[SyntaxKind2[\"OpenBraceToken\"] = 1] = \"OpenBraceToken\";\n  SyntaxKind2[SyntaxKind2[\"CloseBraceToken\"] = 2] = \"CloseBraceToken\";\n  SyntaxKind2[SyntaxKind2[\"OpenBracketToken\"] = 3] = \"OpenBracketToken\";\n  SyntaxKind2[SyntaxKind2[\"CloseBracketToken\"] = 4] = \"CloseBracketToken\";\n  SyntaxKind2[SyntaxKind2[\"CommaToken\"] = 5] = \"CommaToken\";\n  SyntaxKind2[SyntaxKind2[\"ColonToken\"] = 6] = \"ColonToken\";\n  SyntaxKind2[SyntaxKind2[\"NullKeyword\"] = 7] = \"NullKeyword\";\n  SyntaxKind2[SyntaxKind2[\"TrueKeyword\"] = 8] = \"TrueKeyword\";\n  SyntaxKind2[SyntaxKind2[\"FalseKeyword\"] = 9] = \"FalseKeyword\";\n  SyntaxKind2[SyntaxKind2[\"StringLiteral\"] = 10] = \"StringLiteral\";\n  SyntaxKind2[SyntaxKind2[\"NumericLiteral\"] = 11] = \"NumericLiteral\";\n  SyntaxKind2[SyntaxKind2[\"LineCommentTrivia\"] = 12] = \"LineCommentTrivia\";\n  SyntaxKind2[SyntaxKind2[\"BlockCommentTrivia\"] = 13] = \"BlockCommentTrivia\";\n  SyntaxKind2[SyntaxKind2[\"LineBreakTrivia\"] = 14] = \"LineBreakTrivia\";\n  SyntaxKind2[SyntaxKind2[\"Trivia\"] = 15] = \"Trivia\";\n  SyntaxKind2[SyntaxKind2[\"Unknown\"] = 16] = \"Unknown\";\n  SyntaxKind2[SyntaxKind2[\"EOF\"] = 17] = \"EOF\";\n})(SyntaxKind || (SyntaxKind = {}));\nvar ParseErrorCode;\n(function(ParseErrorCode2) {\n  ParseErrorCode2[ParseErrorCode2[\"InvalidSymbol\"] = 1] = \"InvalidSymbol\";\n  ParseErrorCode2[ParseErrorCode2[\"InvalidNumberFormat\"] = 2] = \"InvalidNumberFormat\";\n  ParseErrorCode2[ParseErrorCode2[\"PropertyNameExpected\"] = 3] = \"PropertyNameExpected\";\n  ParseErrorCode2[ParseErrorCode2[\"ValueExpected\"] = 4] = \"ValueExpected\";\n  ParseErrorCode2[ParseErrorCode2[\"ColonExpected\"] = 5] = \"ColonExpected\";\n  ParseErrorCode2[ParseErrorCode2[\"CommaExpected\"] = 6] = \"CommaExpected\";\n  ParseErrorCode2[ParseErrorCode2[\"CloseBraceExpected\"] = 7] = \"CloseBraceExpected\";\n  ParseErrorCode2[ParseErrorCode2[\"CloseBracketExpected\"] = 8] = \"CloseBracketExpected\";\n  ParseErrorCode2[ParseErrorCode2[\"EndOfFileExpected\"] = 9] = \"EndOfFileExpected\";\n  ParseErrorCode2[ParseErrorCode2[\"InvalidCommentToken\"] = 10] = \"InvalidCommentToken\";\n  ParseErrorCode2[ParseErrorCode2[\"UnexpectedEndOfComment\"] = 11] = \"UnexpectedEndOfComment\";\n  ParseErrorCode2[ParseErrorCode2[\"UnexpectedEndOfString\"] = 12] = \"UnexpectedEndOfString\";\n  ParseErrorCode2[ParseErrorCode2[\"UnexpectedEndOfNumber\"] = 13] = \"UnexpectedEndOfNumber\";\n  ParseErrorCode2[ParseErrorCode2[\"InvalidUnicode\"] = 14] = \"InvalidUnicode\";\n  ParseErrorCode2[ParseErrorCode2[\"InvalidEscapeCharacter\"] = 15] = \"InvalidEscapeCharacter\";\n  ParseErrorCode2[ParseErrorCode2[\"InvalidCharacter\"] = 16] = \"InvalidCharacter\";\n})(ParseErrorCode || (ParseErrorCode = {}));\n\n// src/language/json/tokenization.ts\nfunction createTokenizationSupport(supportComments) {\n  return {\n    getInitialState: () => new JSONState(null, null, false, null),\n    tokenize: (line, state) => tokenize(supportComments, line, state)\n  };\n}\nvar TOKEN_DELIM_OBJECT = \"delimiter.bracket.json\";\nvar TOKEN_DELIM_ARRAY = \"delimiter.array.json\";\nvar TOKEN_DELIM_COLON = \"delimiter.colon.json\";\nvar TOKEN_DELIM_COMMA = \"delimiter.comma.json\";\nvar TOKEN_VALUE_BOOLEAN = \"keyword.json\";\nvar TOKEN_VALUE_NULL = \"keyword.json\";\nvar TOKEN_VALUE_STRING = \"string.value.json\";\nvar TOKEN_VALUE_NUMBER = \"number.json\";\nvar TOKEN_PROPERTY_NAME = \"string.key.json\";\nvar TOKEN_COMMENT_BLOCK = \"comment.block.json\";\nvar TOKEN_COMMENT_LINE = \"comment.line.json\";\nvar ParentsStack = class _ParentsStack {\n  constructor(parent, type) {\n    this.parent = parent;\n    this.type = type;\n  }\n  static pop(parents) {\n    if (parents) {\n      return parents.parent;\n    }\n    return null;\n  }\n  static push(parents, type) {\n    return new _ParentsStack(parents, type);\n  }\n  static equals(a, b) {\n    if (!a && !b) {\n      return true;\n    }\n    if (!a || !b) {\n      return false;\n    }\n    while (a && b) {\n      if (a === b) {\n        return true;\n      }\n      if (a.type !== b.type) {\n        return false;\n      }\n      a = a.parent;\n      b = b.parent;\n    }\n    return true;\n  }\n};\nvar JSONState = class _JSONState {\n  constructor(state, scanError, lastWasColon, parents) {\n    this._state = state;\n    this.scanError = scanError;\n    this.lastWasColon = lastWasColon;\n    this.parents = parents;\n  }\n  clone() {\n    return new _JSONState(this._state, this.scanError, this.lastWasColon, this.parents);\n  }\n  equals(other) {\n    if (other === this) {\n      return true;\n    }\n    if (!other || !(other instanceof _JSONState)) {\n      return false;\n    }\n    return this.scanError === other.scanError && this.lastWasColon === other.lastWasColon && ParentsStack.equals(this.parents, other.parents);\n  }\n  getStateData() {\n    return this._state;\n  }\n  setStateData(state) {\n    this._state = state;\n  }\n};\nfunction tokenize(comments, line, state, offsetDelta = 0) {\n  let numberOfInsertedCharacters = 0;\n  let adjustOffset = false;\n  switch (state.scanError) {\n    case 2 /* UnexpectedEndOfString */:\n      line = '\"' + line;\n      numberOfInsertedCharacters = 1;\n      break;\n    case 1 /* UnexpectedEndOfComment */:\n      line = \"/*\" + line;\n      numberOfInsertedCharacters = 2;\n      break;\n  }\n  const scanner = createScanner2(line);\n  let lastWasColon = state.lastWasColon;\n  let parents = state.parents;\n  const ret = {\n    tokens: [],\n    endState: state.clone()\n  };\n  while (true) {\n    let offset = offsetDelta + scanner.getPosition();\n    let type = \"\";\n    const kind = scanner.scan();\n    if (kind === 17 /* EOF */) {\n      break;\n    }\n    if (offset === offsetDelta + scanner.getPosition()) {\n      throw new Error(\n        \"Scanner did not advance, next 3 characters are: \" + line.substr(scanner.getPosition(), 3)\n      );\n    }\n    if (adjustOffset) {\n      offset -= numberOfInsertedCharacters;\n    }\n    adjustOffset = numberOfInsertedCharacters > 0;\n    switch (kind) {\n      case 1 /* OpenBraceToken */:\n        parents = ParentsStack.push(parents, 0 /* Object */);\n        type = TOKEN_DELIM_OBJECT;\n        lastWasColon = false;\n        break;\n      case 2 /* CloseBraceToken */:\n        parents = ParentsStack.pop(parents);\n        type = TOKEN_DELIM_OBJECT;\n        lastWasColon = false;\n        break;\n      case 3 /* OpenBracketToken */:\n        parents = ParentsStack.push(parents, 1 /* Array */);\n        type = TOKEN_DELIM_ARRAY;\n        lastWasColon = false;\n        break;\n      case 4 /* CloseBracketToken */:\n        parents = ParentsStack.pop(parents);\n        type = TOKEN_DELIM_ARRAY;\n        lastWasColon = false;\n        break;\n      case 6 /* ColonToken */:\n        type = TOKEN_DELIM_COLON;\n        lastWasColon = true;\n        break;\n      case 5 /* CommaToken */:\n        type = TOKEN_DELIM_COMMA;\n        lastWasColon = false;\n        break;\n      case 8 /* TrueKeyword */:\n      case 9 /* FalseKeyword */:\n        type = TOKEN_VALUE_BOOLEAN;\n        lastWasColon = false;\n        break;\n      case 7 /* NullKeyword */:\n        type = TOKEN_VALUE_NULL;\n        lastWasColon = false;\n        break;\n      case 10 /* StringLiteral */:\n        const currentParent = parents ? parents.type : 0 /* Object */;\n        const inArray = currentParent === 1 /* Array */;\n        type = lastWasColon || inArray ? TOKEN_VALUE_STRING : TOKEN_PROPERTY_NAME;\n        lastWasColon = false;\n        break;\n      case 11 /* NumericLiteral */:\n        type = TOKEN_VALUE_NUMBER;\n        lastWasColon = false;\n        break;\n    }\n    if (comments) {\n      switch (kind) {\n        case 12 /* LineCommentTrivia */:\n          type = TOKEN_COMMENT_LINE;\n          break;\n        case 13 /* BlockCommentTrivia */:\n          type = TOKEN_COMMENT_BLOCK;\n          break;\n      }\n    }\n    ret.endState = new JSONState(\n      state.getStateData(),\n      scanner.getTokenError(),\n      lastWasColon,\n      parents\n    );\n    ret.tokens.push({\n      startIndex: offset,\n      scopes: type\n    });\n  }\n  return ret;\n}\n\n// src/language/json/jsonMode.ts\nvar worker;\nfunction getWorker() {\n  return new Promise((resolve, reject) => {\n    if (!worker) {\n      return reject(\"JSON not registered!\");\n    }\n    resolve(worker);\n  });\n}\nvar JSONDiagnosticsAdapter = class extends DiagnosticsAdapter {\n  constructor(languageId, worker2, defaults) {\n    super(languageId, worker2, defaults.onDidChange);\n    this._disposables.push(\n      monaco_editor_core_exports.editor.onWillDisposeModel((model) => {\n        this._resetSchema(model.uri);\n      })\n    );\n    this._disposables.push(\n      monaco_editor_core_exports.editor.onDidChangeModelLanguage((event) => {\n        this._resetSchema(event.model.uri);\n      })\n    );\n  }\n  _resetSchema(resource) {\n    this._worker().then((worker2) => {\n      worker2.resetSchema(resource.toString());\n    });\n  }\n};\nfunction setupMode(defaults) {\n  const disposables = [];\n  const providers = [];\n  const client = new WorkerManager(defaults);\n  disposables.push(client);\n  worker = (...uris) => {\n    return client.getLanguageServiceWorker(...uris);\n  };\n  function registerProviders() {\n    const { languageId, modeConfiguration: modeConfiguration2 } = defaults;\n    disposeAll(providers);\n    if (modeConfiguration2.documentFormattingEdits) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerDocumentFormattingEditProvider(\n          languageId,\n          new DocumentFormattingEditProvider(worker)\n        )\n      );\n    }\n    if (modeConfiguration2.documentRangeFormattingEdits) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerDocumentRangeFormattingEditProvider(\n          languageId,\n          new DocumentRangeFormattingEditProvider(worker)\n        )\n      );\n    }\n    if (modeConfiguration2.completionItems) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerCompletionItemProvider(\n          languageId,\n          new CompletionAdapter(worker, [\" \", \":\", '\"'])\n        )\n      );\n    }\n    if (modeConfiguration2.hovers) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerHoverProvider(languageId, new HoverAdapter(worker))\n      );\n    }\n    if (modeConfiguration2.documentSymbols) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerDocumentSymbolProvider(\n          languageId,\n          new DocumentSymbolAdapter(worker)\n        )\n      );\n    }\n    if (modeConfiguration2.tokens) {\n      providers.push(monaco_editor_core_exports.languages.setTokensProvider(languageId, createTokenizationSupport(true)));\n    }\n    if (modeConfiguration2.colors) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerColorProvider(\n          languageId,\n          new DocumentColorAdapter(worker)\n        )\n      );\n    }\n    if (modeConfiguration2.foldingRanges) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerFoldingRangeProvider(\n          languageId,\n          new FoldingRangeAdapter(worker)\n        )\n      );\n    }\n    if (modeConfiguration2.diagnostics) {\n      providers.push(new JSONDiagnosticsAdapter(languageId, worker, defaults));\n    }\n    if (modeConfiguration2.selectionRanges) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerSelectionRangeProvider(\n          languageId,\n          new SelectionRangeAdapter(worker)\n        )\n      );\n    }\n  }\n  registerProviders();\n  disposables.push(monaco_editor_core_exports.languages.setLanguageConfiguration(defaults.languageId, richEditConfiguration));\n  let modeConfiguration = defaults.modeConfiguration;\n  defaults.onDidChange((newDefaults) => {\n    if (newDefaults.modeConfiguration !== modeConfiguration) {\n      modeConfiguration = newDefaults.modeConfiguration;\n      registerProviders();\n    }\n  });\n  disposables.push(asDisposable(providers));\n  return asDisposable(disposables);\n}\nfunction asDisposable(disposables) {\n  return { dispose: () => disposeAll(disposables) };\n}\nfunction disposeAll(disposables) {\n  while (disposables.length) {\n    disposables.pop().dispose();\n  }\n}\nvar richEditConfiguration = {\n  wordPattern: /(-?\\d*\\.\\d\\w*)|([^\\[\\{\\]\\}\\:\\\"\\,\\s]+)/g,\n  comments: {\n    lineComment: \"//\",\n    blockComment: [\"/*\", \"*/\"]\n  },\n  brackets: [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"]\n  ],\n  autoClosingPairs: [\n    { open: \"{\", close: \"}\", notIn: [\"string\"] },\n    { open: \"[\", close: \"]\", notIn: [\"string\"] },\n    { open: '\"', close: '\"', notIn: [\"string\"] }\n  ]\n};\nexport {\n  CompletionAdapter,\n  DefinitionAdapter,\n  DiagnosticsAdapter,\n  DocumentColorAdapter,\n  DocumentFormattingEditProvider,\n  DocumentHighlightAdapter,\n  DocumentLinkAdapter,\n  DocumentRangeFormattingEditProvider,\n  DocumentSymbolAdapter,\n  FoldingRangeAdapter,\n  HoverAdapter,\n  ReferenceAdapter,\n  RenameAdapter,\n  SelectionRangeAdapter,\n  WorkerManager,\n  fromPosition,\n  fromRange,\n  getWorker,\n  setupMode,\n  toRange,\n  toTextEdit\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/language/json/monaco.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/language/json/monaco.contribution.js",
    "content": "import '../../editor/editor.api.js';\n/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\n\n// src/fillers/monaco-editor-core.ts\nvar monaco_editor_core_exports = {};\n__reExport(monaco_editor_core_exports, monaco_editor_core_star);\nimport * as monaco_editor_core_star from \"../../editor/editor.api.js\";\n\n// src/language/json/monaco.contribution.ts\nvar LanguageServiceDefaultsImpl = class {\n  constructor(languageId, diagnosticsOptions, modeConfiguration) {\n    this._onDidChange = new monaco_editor_core_exports.Emitter();\n    this._languageId = languageId;\n    this.setDiagnosticsOptions(diagnosticsOptions);\n    this.setModeConfiguration(modeConfiguration);\n  }\n  get onDidChange() {\n    return this._onDidChange.event;\n  }\n  get languageId() {\n    return this._languageId;\n  }\n  get modeConfiguration() {\n    return this._modeConfiguration;\n  }\n  get diagnosticsOptions() {\n    return this._diagnosticsOptions;\n  }\n  setDiagnosticsOptions(options) {\n    this._diagnosticsOptions = options || /* @__PURE__ */ Object.create(null);\n    this._onDidChange.fire(this);\n  }\n  setModeConfiguration(modeConfiguration) {\n    this._modeConfiguration = modeConfiguration || /* @__PURE__ */ Object.create(null);\n    this._onDidChange.fire(this);\n  }\n};\nvar diagnosticDefault = {\n  validate: true,\n  allowComments: true,\n  schemas: [],\n  enableSchemaRequest: false,\n  schemaRequest: \"warning\",\n  schemaValidation: \"warning\",\n  comments: \"error\",\n  trailingCommas: \"error\"\n};\nvar modeConfigurationDefault = {\n  documentFormattingEdits: true,\n  documentRangeFormattingEdits: true,\n  completionItems: true,\n  hovers: true,\n  documentSymbols: true,\n  tokens: true,\n  colors: true,\n  foldingRanges: true,\n  diagnostics: true,\n  selectionRanges: true\n};\nvar jsonDefaults = new LanguageServiceDefaultsImpl(\n  \"json\",\n  diagnosticDefault,\n  modeConfigurationDefault\n);\nvar getWorker = () => getMode().then((mode) => mode.getWorker());\nmonaco_editor_core_exports.languages.json = { jsonDefaults, getWorker };\nfunction getMode() {\n  if (false) {\n    return new Promise((resolve, reject) => {\n      __require([\"vs/language/json/jsonMode\"], resolve, reject);\n    });\n  } else {\n    return import(\"./jsonMode.js\");\n  }\n}\nmonaco_editor_core_exports.languages.register({\n  id: \"json\",\n  extensions: [\".json\", \".bowerrc\", \".jshintrc\", \".jscsrc\", \".eslintrc\", \".babelrc\", \".har\"],\n  aliases: [\"JSON\", \"json\"],\n  mimetypes: [\"application/json\"]\n});\nmonaco_editor_core_exports.languages.onLanguage(\"json\", () => {\n  getMode().then((mode) => mode.setupMode(jsonDefaults));\n});\nexport {\n  getWorker,\n  jsonDefaults\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/language/typescript/monaco.contribution.d.ts",
    "content": "export {}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/language/typescript/monaco.contribution.js",
    "content": "import '../../editor/editor.api.js';\n/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\n\n// src/language/typescript/lib/typescriptServicesMetadata.ts\nvar typescriptVersion = \"5.4.5\";\n\n// src/fillers/monaco-editor-core.ts\nvar monaco_editor_core_exports = {};\n__reExport(monaco_editor_core_exports, monaco_editor_core_star);\nimport * as monaco_editor_core_star from \"../../editor/editor.api.js\";\n\n// src/language/typescript/monaco.contribution.ts\nvar ModuleKind = /* @__PURE__ */ ((ModuleKind2) => {\n  ModuleKind2[ModuleKind2[\"None\"] = 0] = \"None\";\n  ModuleKind2[ModuleKind2[\"CommonJS\"] = 1] = \"CommonJS\";\n  ModuleKind2[ModuleKind2[\"AMD\"] = 2] = \"AMD\";\n  ModuleKind2[ModuleKind2[\"UMD\"] = 3] = \"UMD\";\n  ModuleKind2[ModuleKind2[\"System\"] = 4] = \"System\";\n  ModuleKind2[ModuleKind2[\"ES2015\"] = 5] = \"ES2015\";\n  ModuleKind2[ModuleKind2[\"ESNext\"] = 99] = \"ESNext\";\n  return ModuleKind2;\n})(ModuleKind || {});\nvar JsxEmit = /* @__PURE__ */ ((JsxEmit2) => {\n  JsxEmit2[JsxEmit2[\"None\"] = 0] = \"None\";\n  JsxEmit2[JsxEmit2[\"Preserve\"] = 1] = \"Preserve\";\n  JsxEmit2[JsxEmit2[\"React\"] = 2] = \"React\";\n  JsxEmit2[JsxEmit2[\"ReactNative\"] = 3] = \"ReactNative\";\n  JsxEmit2[JsxEmit2[\"ReactJSX\"] = 4] = \"ReactJSX\";\n  JsxEmit2[JsxEmit2[\"ReactJSXDev\"] = 5] = \"ReactJSXDev\";\n  return JsxEmit2;\n})(JsxEmit || {});\nvar NewLineKind = /* @__PURE__ */ ((NewLineKind2) => {\n  NewLineKind2[NewLineKind2[\"CarriageReturnLineFeed\"] = 0] = \"CarriageReturnLineFeed\";\n  NewLineKind2[NewLineKind2[\"LineFeed\"] = 1] = \"LineFeed\";\n  return NewLineKind2;\n})(NewLineKind || {});\nvar ScriptTarget = /* @__PURE__ */ ((ScriptTarget2) => {\n  ScriptTarget2[ScriptTarget2[\"ES3\"] = 0] = \"ES3\";\n  ScriptTarget2[ScriptTarget2[\"ES5\"] = 1] = \"ES5\";\n  ScriptTarget2[ScriptTarget2[\"ES2015\"] = 2] = \"ES2015\";\n  ScriptTarget2[ScriptTarget2[\"ES2016\"] = 3] = \"ES2016\";\n  ScriptTarget2[ScriptTarget2[\"ES2017\"] = 4] = \"ES2017\";\n  ScriptTarget2[ScriptTarget2[\"ES2018\"] = 5] = \"ES2018\";\n  ScriptTarget2[ScriptTarget2[\"ES2019\"] = 6] = \"ES2019\";\n  ScriptTarget2[ScriptTarget2[\"ES2020\"] = 7] = \"ES2020\";\n  ScriptTarget2[ScriptTarget2[\"ESNext\"] = 99] = \"ESNext\";\n  ScriptTarget2[ScriptTarget2[\"JSON\"] = 100] = \"JSON\";\n  ScriptTarget2[ScriptTarget2[\"Latest\"] = 99 /* ESNext */] = \"Latest\";\n  return ScriptTarget2;\n})(ScriptTarget || {});\nvar ModuleResolutionKind = /* @__PURE__ */ ((ModuleResolutionKind2) => {\n  ModuleResolutionKind2[ModuleResolutionKind2[\"Classic\"] = 1] = \"Classic\";\n  ModuleResolutionKind2[ModuleResolutionKind2[\"NodeJs\"] = 2] = \"NodeJs\";\n  return ModuleResolutionKind2;\n})(ModuleResolutionKind || {});\nvar LanguageServiceDefaultsImpl = class {\n  constructor(compilerOptions, diagnosticsOptions, workerOptions, inlayHintsOptions, modeConfiguration) {\n    this._onDidChange = new monaco_editor_core_exports.Emitter();\n    this._onDidExtraLibsChange = new monaco_editor_core_exports.Emitter();\n    this._extraLibs = /* @__PURE__ */ Object.create(null);\n    this._removedExtraLibs = /* @__PURE__ */ Object.create(null);\n    this._eagerModelSync = false;\n    this.setCompilerOptions(compilerOptions);\n    this.setDiagnosticsOptions(diagnosticsOptions);\n    this.setWorkerOptions(workerOptions);\n    this.setInlayHintsOptions(inlayHintsOptions);\n    this.setModeConfiguration(modeConfiguration);\n    this._onDidExtraLibsChangeTimeout = -1;\n  }\n  get onDidChange() {\n    return this._onDidChange.event;\n  }\n  get onDidExtraLibsChange() {\n    return this._onDidExtraLibsChange.event;\n  }\n  get modeConfiguration() {\n    return this._modeConfiguration;\n  }\n  get workerOptions() {\n    return this._workerOptions;\n  }\n  get inlayHintsOptions() {\n    return this._inlayHintsOptions;\n  }\n  getExtraLibs() {\n    return this._extraLibs;\n  }\n  addExtraLib(content, _filePath) {\n    let filePath;\n    if (typeof _filePath === \"undefined\") {\n      filePath = `ts:extralib-${Math.random().toString(36).substring(2, 15)}`;\n    } else {\n      filePath = _filePath;\n    }\n    if (this._extraLibs[filePath] && this._extraLibs[filePath].content === content) {\n      return {\n        dispose: () => {\n        }\n      };\n    }\n    let myVersion = 1;\n    if (this._removedExtraLibs[filePath]) {\n      myVersion = this._removedExtraLibs[filePath] + 1;\n    }\n    if (this._extraLibs[filePath]) {\n      myVersion = this._extraLibs[filePath].version + 1;\n    }\n    this._extraLibs[filePath] = {\n      content,\n      version: myVersion\n    };\n    this._fireOnDidExtraLibsChangeSoon();\n    return {\n      dispose: () => {\n        let extraLib = this._extraLibs[filePath];\n        if (!extraLib) {\n          return;\n        }\n        if (extraLib.version !== myVersion) {\n          return;\n        }\n        delete this._extraLibs[filePath];\n        this._removedExtraLibs[filePath] = myVersion;\n        this._fireOnDidExtraLibsChangeSoon();\n      }\n    };\n  }\n  setExtraLibs(libs) {\n    for (const filePath in this._extraLibs) {\n      this._removedExtraLibs[filePath] = this._extraLibs[filePath].version;\n    }\n    this._extraLibs = /* @__PURE__ */ Object.create(null);\n    if (libs && libs.length > 0) {\n      for (const lib of libs) {\n        const filePath = lib.filePath || `ts:extralib-${Math.random().toString(36).substring(2, 15)}`;\n        const content = lib.content;\n        let myVersion = 1;\n        if (this._removedExtraLibs[filePath]) {\n          myVersion = this._removedExtraLibs[filePath] + 1;\n        }\n        this._extraLibs[filePath] = {\n          content,\n          version: myVersion\n        };\n      }\n    }\n    this._fireOnDidExtraLibsChangeSoon();\n  }\n  _fireOnDidExtraLibsChangeSoon() {\n    if (this._onDidExtraLibsChangeTimeout !== -1) {\n      return;\n    }\n    this._onDidExtraLibsChangeTimeout = window.setTimeout(() => {\n      this._onDidExtraLibsChangeTimeout = -1;\n      this._onDidExtraLibsChange.fire(void 0);\n    }, 0);\n  }\n  getCompilerOptions() {\n    return this._compilerOptions;\n  }\n  setCompilerOptions(options) {\n    this._compilerOptions = options || /* @__PURE__ */ Object.create(null);\n    this._onDidChange.fire(void 0);\n  }\n  getDiagnosticsOptions() {\n    return this._diagnosticsOptions;\n  }\n  setDiagnosticsOptions(options) {\n    this._diagnosticsOptions = options || /* @__PURE__ */ Object.create(null);\n    this._onDidChange.fire(void 0);\n  }\n  setWorkerOptions(options) {\n    this._workerOptions = options || /* @__PURE__ */ Object.create(null);\n    this._onDidChange.fire(void 0);\n  }\n  setInlayHintsOptions(options) {\n    this._inlayHintsOptions = options || /* @__PURE__ */ Object.create(null);\n    this._onDidChange.fire(void 0);\n  }\n  setMaximumWorkerIdleTime(value) {\n  }\n  setEagerModelSync(value) {\n    this._eagerModelSync = value;\n  }\n  getEagerModelSync() {\n    return this._eagerModelSync;\n  }\n  setModeConfiguration(modeConfiguration) {\n    this._modeConfiguration = modeConfiguration || /* @__PURE__ */ Object.create(null);\n    this._onDidChange.fire(void 0);\n  }\n};\nvar typescriptVersion2 = typescriptVersion;\nvar modeConfigurationDefault = {\n  completionItems: true,\n  hovers: true,\n  documentSymbols: true,\n  definitions: true,\n  references: true,\n  documentHighlights: true,\n  rename: true,\n  diagnostics: true,\n  documentRangeFormattingEdits: true,\n  signatureHelp: true,\n  onTypeFormattingEdits: true,\n  codeActions: true,\n  inlayHints: true\n};\nvar typescriptDefaults = new LanguageServiceDefaultsImpl(\n  { allowNonTsExtensions: true, target: 99 /* Latest */ },\n  { noSemanticValidation: false, noSyntaxValidation: false, onlyVisible: false },\n  {},\n  {},\n  modeConfigurationDefault\n);\nvar javascriptDefaults = new LanguageServiceDefaultsImpl(\n  { allowNonTsExtensions: true, allowJs: true, target: 99 /* Latest */ },\n  { noSemanticValidation: true, noSyntaxValidation: false, onlyVisible: false },\n  {},\n  {},\n  modeConfigurationDefault\n);\nvar getTypeScriptWorker = () => {\n  return getMode().then((mode) => mode.getTypeScriptWorker());\n};\nvar getJavaScriptWorker = () => {\n  return getMode().then((mode) => mode.getJavaScriptWorker());\n};\nmonaco_editor_core_exports.languages.typescript = {\n  ModuleKind,\n  JsxEmit,\n  NewLineKind,\n  ScriptTarget,\n  ModuleResolutionKind,\n  typescriptVersion: typescriptVersion2,\n  typescriptDefaults,\n  javascriptDefaults,\n  getTypeScriptWorker,\n  getJavaScriptWorker\n};\nfunction getMode() {\n  if (false) {\n    return new Promise((resolve, reject) => {\n      __require([\"vs/language/typescript/tsMode\"], resolve, reject);\n    });\n  } else {\n    return import(\"./tsMode.js\");\n  }\n}\nmonaco_editor_core_exports.languages.onLanguage(\"typescript\", () => {\n  return getMode().then((mode) => mode.setupTypeScript(typescriptDefaults));\n});\nmonaco_editor_core_exports.languages.onLanguage(\"javascript\", () => {\n  return getMode().then((mode) => mode.setupJavaScript(javascriptDefaults));\n});\nexport {\n  JsxEmit,\n  ModuleKind,\n  ModuleResolutionKind,\n  NewLineKind,\n  ScriptTarget,\n  getJavaScriptWorker,\n  getTypeScriptWorker,\n  javascriptDefaults,\n  typescriptDefaults,\n  typescriptVersion2 as typescriptVersion\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/language/typescript/tsMode.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\n\n// src/fillers/monaco-editor-core.ts\nvar monaco_editor_core_exports = {};\n__reExport(monaco_editor_core_exports, monaco_editor_core_star);\nimport * as monaco_editor_core_star from \"../../editor/editor.api.js\";\n\n// src/language/typescript/workerManager.ts\nvar WorkerManager = class {\n  constructor(_modeId, _defaults) {\n    this._modeId = _modeId;\n    this._defaults = _defaults;\n    this._worker = null;\n    this._client = null;\n    this._configChangeListener = this._defaults.onDidChange(() => this._stopWorker());\n    this._updateExtraLibsToken = 0;\n    this._extraLibsChangeListener = this._defaults.onDidExtraLibsChange(\n      () => this._updateExtraLibs()\n    );\n  }\n  dispose() {\n    this._configChangeListener.dispose();\n    this._extraLibsChangeListener.dispose();\n    this._stopWorker();\n  }\n  _stopWorker() {\n    if (this._worker) {\n      this._worker.dispose();\n      this._worker = null;\n    }\n    this._client = null;\n  }\n  async _updateExtraLibs() {\n    if (!this._worker) {\n      return;\n    }\n    const myToken = ++this._updateExtraLibsToken;\n    const proxy = await this._worker.getProxy();\n    if (this._updateExtraLibsToken !== myToken) {\n      return;\n    }\n    proxy.updateExtraLibs(this._defaults.getExtraLibs());\n  }\n  _getClient() {\n    if (!this._client) {\n      this._client = (async () => {\n        this._worker = monaco_editor_core_exports.editor.createWebWorker({\n          // module that exports the create() method and returns a `TypeScriptWorker` instance\n          moduleId: \"vs/language/typescript/tsWorker\",\n          label: this._modeId,\n          keepIdleModels: true,\n          // passed in to the create() method\n          createData: {\n            compilerOptions: this._defaults.getCompilerOptions(),\n            extraLibs: this._defaults.getExtraLibs(),\n            customWorkerPath: this._defaults.workerOptions.customWorkerPath,\n            inlayHintsOptions: this._defaults.inlayHintsOptions\n          }\n        });\n        if (this._defaults.getEagerModelSync()) {\n          return await this._worker.withSyncedResources(\n            monaco_editor_core_exports.editor.getModels().filter((model) => model.getLanguageId() === this._modeId).map((model) => model.uri)\n          );\n        }\n        return await this._worker.getProxy();\n      })();\n    }\n    return this._client;\n  }\n  async getLanguageServiceWorker(...resources) {\n    const client = await this._getClient();\n    if (this._worker) {\n      await this._worker.withSyncedResources(resources);\n    }\n    return client;\n  }\n};\n\n// src/language/typescript/languageFeatures.ts\nimport {\n  typescriptDefaults\n} from \"./monaco.contribution.js\";\n\n// src/language/typescript/lib/lib.index.ts\nvar libFileSet = {};\nlibFileSet[\"lib.d.ts\"] = true;\nlibFileSet[\"lib.decorators.d.ts\"] = true;\nlibFileSet[\"lib.decorators.legacy.d.ts\"] = true;\nlibFileSet[\"lib.dom.asynciterable.d.ts\"] = true;\nlibFileSet[\"lib.dom.d.ts\"] = true;\nlibFileSet[\"lib.dom.iterable.d.ts\"] = true;\nlibFileSet[\"lib.es2015.collection.d.ts\"] = true;\nlibFileSet[\"lib.es2015.core.d.ts\"] = true;\nlibFileSet[\"lib.es2015.d.ts\"] = true;\nlibFileSet[\"lib.es2015.generator.d.ts\"] = true;\nlibFileSet[\"lib.es2015.iterable.d.ts\"] = true;\nlibFileSet[\"lib.es2015.promise.d.ts\"] = true;\nlibFileSet[\"lib.es2015.proxy.d.ts\"] = true;\nlibFileSet[\"lib.es2015.reflect.d.ts\"] = true;\nlibFileSet[\"lib.es2015.symbol.d.ts\"] = true;\nlibFileSet[\"lib.es2015.symbol.wellknown.d.ts\"] = true;\nlibFileSet[\"lib.es2016.array.include.d.ts\"] = true;\nlibFileSet[\"lib.es2016.d.ts\"] = true;\nlibFileSet[\"lib.es2016.full.d.ts\"] = true;\nlibFileSet[\"lib.es2016.intl.d.ts\"] = true;\nlibFileSet[\"lib.es2017.d.ts\"] = true;\nlibFileSet[\"lib.es2017.date.d.ts\"] = true;\nlibFileSet[\"lib.es2017.full.d.ts\"] = true;\nlibFileSet[\"lib.es2017.intl.d.ts\"] = true;\nlibFileSet[\"lib.es2017.object.d.ts\"] = true;\nlibFileSet[\"lib.es2017.sharedmemory.d.ts\"] = true;\nlibFileSet[\"lib.es2017.string.d.ts\"] = true;\nlibFileSet[\"lib.es2017.typedarrays.d.ts\"] = true;\nlibFileSet[\"lib.es2018.asyncgenerator.d.ts\"] = true;\nlibFileSet[\"lib.es2018.asynciterable.d.ts\"] = true;\nlibFileSet[\"lib.es2018.d.ts\"] = true;\nlibFileSet[\"lib.es2018.full.d.ts\"] = true;\nlibFileSet[\"lib.es2018.intl.d.ts\"] = true;\nlibFileSet[\"lib.es2018.promise.d.ts\"] = true;\nlibFileSet[\"lib.es2018.regexp.d.ts\"] = true;\nlibFileSet[\"lib.es2019.array.d.ts\"] = true;\nlibFileSet[\"lib.es2019.d.ts\"] = true;\nlibFileSet[\"lib.es2019.full.d.ts\"] = true;\nlibFileSet[\"lib.es2019.intl.d.ts\"] = true;\nlibFileSet[\"lib.es2019.object.d.ts\"] = true;\nlibFileSet[\"lib.es2019.string.d.ts\"] = true;\nlibFileSet[\"lib.es2019.symbol.d.ts\"] = true;\nlibFileSet[\"lib.es2020.bigint.d.ts\"] = true;\nlibFileSet[\"lib.es2020.d.ts\"] = true;\nlibFileSet[\"lib.es2020.date.d.ts\"] = true;\nlibFileSet[\"lib.es2020.full.d.ts\"] = true;\nlibFileSet[\"lib.es2020.intl.d.ts\"] = true;\nlibFileSet[\"lib.es2020.number.d.ts\"] = true;\nlibFileSet[\"lib.es2020.promise.d.ts\"] = true;\nlibFileSet[\"lib.es2020.sharedmemory.d.ts\"] = true;\nlibFileSet[\"lib.es2020.string.d.ts\"] = true;\nlibFileSet[\"lib.es2020.symbol.wellknown.d.ts\"] = true;\nlibFileSet[\"lib.es2021.d.ts\"] = true;\nlibFileSet[\"lib.es2021.full.d.ts\"] = true;\nlibFileSet[\"lib.es2021.intl.d.ts\"] = true;\nlibFileSet[\"lib.es2021.promise.d.ts\"] = true;\nlibFileSet[\"lib.es2021.string.d.ts\"] = true;\nlibFileSet[\"lib.es2021.weakref.d.ts\"] = true;\nlibFileSet[\"lib.es2022.array.d.ts\"] = true;\nlibFileSet[\"lib.es2022.d.ts\"] = true;\nlibFileSet[\"lib.es2022.error.d.ts\"] = true;\nlibFileSet[\"lib.es2022.full.d.ts\"] = true;\nlibFileSet[\"lib.es2022.intl.d.ts\"] = true;\nlibFileSet[\"lib.es2022.object.d.ts\"] = true;\nlibFileSet[\"lib.es2022.regexp.d.ts\"] = true;\nlibFileSet[\"lib.es2022.sharedmemory.d.ts\"] = true;\nlibFileSet[\"lib.es2022.string.d.ts\"] = true;\nlibFileSet[\"lib.es2023.array.d.ts\"] = true;\nlibFileSet[\"lib.es2023.collection.d.ts\"] = true;\nlibFileSet[\"lib.es2023.d.ts\"] = true;\nlibFileSet[\"lib.es2023.full.d.ts\"] = true;\nlibFileSet[\"lib.es5.d.ts\"] = true;\nlibFileSet[\"lib.es6.d.ts\"] = true;\nlibFileSet[\"lib.esnext.collection.d.ts\"] = true;\nlibFileSet[\"lib.esnext.d.ts\"] = true;\nlibFileSet[\"lib.esnext.decorators.d.ts\"] = true;\nlibFileSet[\"lib.esnext.disposable.d.ts\"] = true;\nlibFileSet[\"lib.esnext.full.d.ts\"] = true;\nlibFileSet[\"lib.esnext.intl.d.ts\"] = true;\nlibFileSet[\"lib.esnext.object.d.ts\"] = true;\nlibFileSet[\"lib.esnext.promise.d.ts\"] = true;\nlibFileSet[\"lib.scripthost.d.ts\"] = true;\nlibFileSet[\"lib.webworker.asynciterable.d.ts\"] = true;\nlibFileSet[\"lib.webworker.d.ts\"] = true;\nlibFileSet[\"lib.webworker.importscripts.d.ts\"] = true;\nlibFileSet[\"lib.webworker.iterable.d.ts\"] = true;\n\n// src/language/typescript/languageFeatures.ts\nfunction flattenDiagnosticMessageText(diag, newLine, indent = 0) {\n  if (typeof diag === \"string\") {\n    return diag;\n  } else if (diag === void 0) {\n    return \"\";\n  }\n  let result = \"\";\n  if (indent) {\n    result += newLine;\n    for (let i = 0; i < indent; i++) {\n      result += \"  \";\n    }\n  }\n  result += diag.messageText;\n  indent++;\n  if (diag.next) {\n    for (const kid of diag.next) {\n      result += flattenDiagnosticMessageText(kid, newLine, indent);\n    }\n  }\n  return result;\n}\nfunction displayPartsToString(displayParts) {\n  if (displayParts) {\n    return displayParts.map((displayPart) => displayPart.text).join(\"\");\n  }\n  return \"\";\n}\nvar Adapter = class {\n  constructor(_worker) {\n    this._worker = _worker;\n  }\n  // protected _positionToOffset(model: editor.ITextModel, position: monaco.IPosition): number {\n  // \treturn model.getOffsetAt(position);\n  // }\n  // protected _offsetToPosition(model: editor.ITextModel, offset: number): monaco.IPosition {\n  // \treturn model.getPositionAt(offset);\n  // }\n  _textSpanToRange(model, span) {\n    let p1 = model.getPositionAt(span.start);\n    let p2 = model.getPositionAt(span.start + span.length);\n    let { lineNumber: startLineNumber, column: startColumn } = p1;\n    let { lineNumber: endLineNumber, column: endColumn } = p2;\n    return { startLineNumber, startColumn, endLineNumber, endColumn };\n  }\n};\nvar LibFiles = class {\n  constructor(_worker) {\n    this._worker = _worker;\n    this._libFiles = {};\n    this._hasFetchedLibFiles = false;\n    this._fetchLibFilesPromise = null;\n  }\n  isLibFile(uri) {\n    if (!uri) {\n      return false;\n    }\n    if (uri.path.indexOf(\"/lib.\") === 0) {\n      return !!libFileSet[uri.path.slice(1)];\n    }\n    return false;\n  }\n  getOrCreateModel(fileName) {\n    const uri = monaco_editor_core_exports.Uri.parse(fileName);\n    const model = monaco_editor_core_exports.editor.getModel(uri);\n    if (model) {\n      return model;\n    }\n    if (this.isLibFile(uri) && this._hasFetchedLibFiles) {\n      return monaco_editor_core_exports.editor.createModel(this._libFiles[uri.path.slice(1)], \"typescript\", uri);\n    }\n    const matchedLibFile = typescriptDefaults.getExtraLibs()[fileName];\n    if (matchedLibFile) {\n      return monaco_editor_core_exports.editor.createModel(matchedLibFile.content, \"typescript\", uri);\n    }\n    return null;\n  }\n  _containsLibFile(uris) {\n    for (let uri of uris) {\n      if (this.isLibFile(uri)) {\n        return true;\n      }\n    }\n    return false;\n  }\n  async fetchLibFilesIfNecessary(uris) {\n    if (!this._containsLibFile(uris)) {\n      return;\n    }\n    await this._fetchLibFiles();\n  }\n  _fetchLibFiles() {\n    if (!this._fetchLibFilesPromise) {\n      this._fetchLibFilesPromise = this._worker().then((w) => w.getLibFiles()).then((libFiles) => {\n        this._hasFetchedLibFiles = true;\n        this._libFiles = libFiles;\n      });\n    }\n    return this._fetchLibFilesPromise;\n  }\n};\nvar DiagnosticsAdapter = class extends Adapter {\n  constructor(_libFiles, _defaults, _selector, worker) {\n    super(worker);\n    this._libFiles = _libFiles;\n    this._defaults = _defaults;\n    this._selector = _selector;\n    this._disposables = [];\n    this._listener = /* @__PURE__ */ Object.create(null);\n    const onModelAdd = (model) => {\n      if (model.getLanguageId() !== _selector) {\n        return;\n      }\n      const maybeValidate = () => {\n        const { onlyVisible } = this._defaults.getDiagnosticsOptions();\n        if (onlyVisible) {\n          if (model.isAttachedToEditor()) {\n            this._doValidate(model);\n          }\n        } else {\n          this._doValidate(model);\n        }\n      };\n      let handle;\n      const changeSubscription = model.onDidChangeContent(() => {\n        clearTimeout(handle);\n        handle = window.setTimeout(maybeValidate, 500);\n      });\n      const visibleSubscription = model.onDidChangeAttached(() => {\n        const { onlyVisible } = this._defaults.getDiagnosticsOptions();\n        if (onlyVisible) {\n          if (model.isAttachedToEditor()) {\n            maybeValidate();\n          } else {\n            monaco_editor_core_exports.editor.setModelMarkers(model, this._selector, []);\n          }\n        }\n      });\n      this._listener[model.uri.toString()] = {\n        dispose() {\n          changeSubscription.dispose();\n          visibleSubscription.dispose();\n          clearTimeout(handle);\n        }\n      };\n      maybeValidate();\n    };\n    const onModelRemoved = (model) => {\n      monaco_editor_core_exports.editor.setModelMarkers(model, this._selector, []);\n      const key = model.uri.toString();\n      if (this._listener[key]) {\n        this._listener[key].dispose();\n        delete this._listener[key];\n      }\n    };\n    this._disposables.push(\n      monaco_editor_core_exports.editor.onDidCreateModel((model) => onModelAdd(model))\n    );\n    this._disposables.push(monaco_editor_core_exports.editor.onWillDisposeModel(onModelRemoved));\n    this._disposables.push(\n      monaco_editor_core_exports.editor.onDidChangeModelLanguage((event) => {\n        onModelRemoved(event.model);\n        onModelAdd(event.model);\n      })\n    );\n    this._disposables.push({\n      dispose() {\n        for (const model of monaco_editor_core_exports.editor.getModels()) {\n          onModelRemoved(model);\n        }\n      }\n    });\n    const recomputeDiagostics = () => {\n      for (const model of monaco_editor_core_exports.editor.getModels()) {\n        onModelRemoved(model);\n        onModelAdd(model);\n      }\n    };\n    this._disposables.push(this._defaults.onDidChange(recomputeDiagostics));\n    this._disposables.push(this._defaults.onDidExtraLibsChange(recomputeDiagostics));\n    monaco_editor_core_exports.editor.getModels().forEach((model) => onModelAdd(model));\n  }\n  dispose() {\n    this._disposables.forEach((d) => d && d.dispose());\n    this._disposables = [];\n  }\n  async _doValidate(model) {\n    const worker = await this._worker(model.uri);\n    if (model.isDisposed()) {\n      return;\n    }\n    const promises = [];\n    const { noSyntaxValidation, noSemanticValidation, noSuggestionDiagnostics } = this._defaults.getDiagnosticsOptions();\n    if (!noSyntaxValidation) {\n      promises.push(worker.getSyntacticDiagnostics(model.uri.toString()));\n    }\n    if (!noSemanticValidation) {\n      promises.push(worker.getSemanticDiagnostics(model.uri.toString()));\n    }\n    if (!noSuggestionDiagnostics) {\n      promises.push(worker.getSuggestionDiagnostics(model.uri.toString()));\n    }\n    const allDiagnostics = await Promise.all(promises);\n    if (!allDiagnostics || model.isDisposed()) {\n      return;\n    }\n    const diagnostics = allDiagnostics.reduce((p, c) => c.concat(p), []).filter(\n      (d) => (this._defaults.getDiagnosticsOptions().diagnosticCodesToIgnore || []).indexOf(d.code) === -1\n    );\n    const relatedUris = diagnostics.map((d) => d.relatedInformation || []).reduce((p, c) => c.concat(p), []).map(\n      (relatedInformation) => relatedInformation.file ? monaco_editor_core_exports.Uri.parse(relatedInformation.file.fileName) : null\n    );\n    await this._libFiles.fetchLibFilesIfNecessary(relatedUris);\n    if (model.isDisposed()) {\n      return;\n    }\n    monaco_editor_core_exports.editor.setModelMarkers(\n      model,\n      this._selector,\n      diagnostics.map((d) => this._convertDiagnostics(model, d))\n    );\n  }\n  _convertDiagnostics(model, diag) {\n    const diagStart = diag.start || 0;\n    const diagLength = diag.length || 1;\n    const { lineNumber: startLineNumber, column: startColumn } = model.getPositionAt(diagStart);\n    const { lineNumber: endLineNumber, column: endColumn } = model.getPositionAt(\n      diagStart + diagLength\n    );\n    const tags = [];\n    if (diag.reportsUnnecessary) {\n      tags.push(monaco_editor_core_exports.MarkerTag.Unnecessary);\n    }\n    if (diag.reportsDeprecated) {\n      tags.push(monaco_editor_core_exports.MarkerTag.Deprecated);\n    }\n    return {\n      severity: this._tsDiagnosticCategoryToMarkerSeverity(diag.category),\n      startLineNumber,\n      startColumn,\n      endLineNumber,\n      endColumn,\n      message: flattenDiagnosticMessageText(diag.messageText, \"\\n\"),\n      code: diag.code.toString(),\n      tags,\n      relatedInformation: this._convertRelatedInformation(model, diag.relatedInformation)\n    };\n  }\n  _convertRelatedInformation(model, relatedInformation) {\n    if (!relatedInformation) {\n      return [];\n    }\n    const result = [];\n    relatedInformation.forEach((info) => {\n      let relatedResource = model;\n      if (info.file) {\n        relatedResource = this._libFiles.getOrCreateModel(info.file.fileName);\n      }\n      if (!relatedResource) {\n        return;\n      }\n      const infoStart = info.start || 0;\n      const infoLength = info.length || 1;\n      const { lineNumber: startLineNumber, column: startColumn } = relatedResource.getPositionAt(infoStart);\n      const { lineNumber: endLineNumber, column: endColumn } = relatedResource.getPositionAt(\n        infoStart + infoLength\n      );\n      result.push({\n        resource: relatedResource.uri,\n        startLineNumber,\n        startColumn,\n        endLineNumber,\n        endColumn,\n        message: flattenDiagnosticMessageText(info.messageText, \"\\n\")\n      });\n    });\n    return result;\n  }\n  _tsDiagnosticCategoryToMarkerSeverity(category) {\n    switch (category) {\n      case 1 /* Error */:\n        return monaco_editor_core_exports.MarkerSeverity.Error;\n      case 3 /* Message */:\n        return monaco_editor_core_exports.MarkerSeverity.Info;\n      case 0 /* Warning */:\n        return monaco_editor_core_exports.MarkerSeverity.Warning;\n      case 2 /* Suggestion */:\n        return monaco_editor_core_exports.MarkerSeverity.Hint;\n    }\n    return monaco_editor_core_exports.MarkerSeverity.Info;\n  }\n};\nvar SuggestAdapter = class _SuggestAdapter extends Adapter {\n  get triggerCharacters() {\n    return [\".\"];\n  }\n  async provideCompletionItems(model, position, _context, token) {\n    const wordInfo = model.getWordUntilPosition(position);\n    const wordRange = new monaco_editor_core_exports.Range(\n      position.lineNumber,\n      wordInfo.startColumn,\n      position.lineNumber,\n      wordInfo.endColumn\n    );\n    const resource = model.uri;\n    const offset = model.getOffsetAt(position);\n    const worker = await this._worker(resource);\n    if (model.isDisposed()) {\n      return;\n    }\n    const info = await worker.getCompletionsAtPosition(resource.toString(), offset);\n    if (!info || model.isDisposed()) {\n      return;\n    }\n    const suggestions = info.entries.map((entry) => {\n      let range = wordRange;\n      if (entry.replacementSpan) {\n        const p1 = model.getPositionAt(entry.replacementSpan.start);\n        const p2 = model.getPositionAt(entry.replacementSpan.start + entry.replacementSpan.length);\n        range = new monaco_editor_core_exports.Range(p1.lineNumber, p1.column, p2.lineNumber, p2.column);\n      }\n      const tags = [];\n      if (entry.kindModifiers !== void 0 && entry.kindModifiers.indexOf(\"deprecated\") !== -1) {\n        tags.push(monaco_editor_core_exports.languages.CompletionItemTag.Deprecated);\n      }\n      return {\n        uri: resource,\n        position,\n        offset,\n        range,\n        label: entry.name,\n        insertText: entry.name,\n        sortText: entry.sortText,\n        kind: _SuggestAdapter.convertKind(entry.kind),\n        tags\n      };\n    });\n    return {\n      suggestions\n    };\n  }\n  async resolveCompletionItem(item, token) {\n    const myItem = item;\n    const resource = myItem.uri;\n    const position = myItem.position;\n    const offset = myItem.offset;\n    const worker = await this._worker(resource);\n    const details = await worker.getCompletionEntryDetails(\n      resource.toString(),\n      offset,\n      myItem.label\n    );\n    if (!details) {\n      return myItem;\n    }\n    return {\n      uri: resource,\n      position,\n      label: details.name,\n      kind: _SuggestAdapter.convertKind(details.kind),\n      detail: displayPartsToString(details.displayParts),\n      documentation: {\n        value: _SuggestAdapter.createDocumentationString(details)\n      }\n    };\n  }\n  static convertKind(kind) {\n    switch (kind) {\n      case Kind.primitiveType:\n      case Kind.keyword:\n        return monaco_editor_core_exports.languages.CompletionItemKind.Keyword;\n      case Kind.variable:\n      case Kind.localVariable:\n        return monaco_editor_core_exports.languages.CompletionItemKind.Variable;\n      case Kind.memberVariable:\n      case Kind.memberGetAccessor:\n      case Kind.memberSetAccessor:\n        return monaco_editor_core_exports.languages.CompletionItemKind.Field;\n      case Kind.function:\n      case Kind.memberFunction:\n      case Kind.constructSignature:\n      case Kind.callSignature:\n      case Kind.indexSignature:\n        return monaco_editor_core_exports.languages.CompletionItemKind.Function;\n      case Kind.enum:\n        return monaco_editor_core_exports.languages.CompletionItemKind.Enum;\n      case Kind.module:\n        return monaco_editor_core_exports.languages.CompletionItemKind.Module;\n      case Kind.class:\n        return monaco_editor_core_exports.languages.CompletionItemKind.Class;\n      case Kind.interface:\n        return monaco_editor_core_exports.languages.CompletionItemKind.Interface;\n      case Kind.warning:\n        return monaco_editor_core_exports.languages.CompletionItemKind.File;\n    }\n    return monaco_editor_core_exports.languages.CompletionItemKind.Property;\n  }\n  static createDocumentationString(details) {\n    let documentationString = displayPartsToString(details.documentation);\n    if (details.tags) {\n      for (const tag of details.tags) {\n        documentationString += `\n\n${tagToString(tag)}`;\n      }\n    }\n    return documentationString;\n  }\n};\nfunction tagToString(tag) {\n  let tagLabel = `*@${tag.name}*`;\n  if (tag.name === \"param\" && tag.text) {\n    const [paramName, ...rest] = tag.text;\n    tagLabel += `\\`${paramName.text}\\``;\n    if (rest.length > 0)\n      tagLabel += ` \\u2014 ${rest.map((r) => r.text).join(\" \")}`;\n  } else if (Array.isArray(tag.text)) {\n    tagLabel += ` \\u2014 ${tag.text.map((r) => r.text).join(\" \")}`;\n  } else if (tag.text) {\n    tagLabel += ` \\u2014 ${tag.text}`;\n  }\n  return tagLabel;\n}\nvar SignatureHelpAdapter = class _SignatureHelpAdapter extends Adapter {\n  constructor() {\n    super(...arguments);\n    this.signatureHelpTriggerCharacters = [\"(\", \",\"];\n  }\n  static _toSignatureHelpTriggerReason(context) {\n    switch (context.triggerKind) {\n      case monaco_editor_core_exports.languages.SignatureHelpTriggerKind.TriggerCharacter:\n        if (context.triggerCharacter) {\n          if (context.isRetrigger) {\n            return { kind: \"retrigger\", triggerCharacter: context.triggerCharacter };\n          } else {\n            return { kind: \"characterTyped\", triggerCharacter: context.triggerCharacter };\n          }\n        } else {\n          return { kind: \"invoked\" };\n        }\n      case monaco_editor_core_exports.languages.SignatureHelpTriggerKind.ContentChange:\n        return context.isRetrigger ? { kind: \"retrigger\" } : { kind: \"invoked\" };\n      case monaco_editor_core_exports.languages.SignatureHelpTriggerKind.Invoke:\n      default:\n        return { kind: \"invoked\" };\n    }\n  }\n  async provideSignatureHelp(model, position, token, context) {\n    const resource = model.uri;\n    const offset = model.getOffsetAt(position);\n    const worker = await this._worker(resource);\n    if (model.isDisposed()) {\n      return;\n    }\n    const info = await worker.getSignatureHelpItems(resource.toString(), offset, {\n      triggerReason: _SignatureHelpAdapter._toSignatureHelpTriggerReason(context)\n    });\n    if (!info || model.isDisposed()) {\n      return;\n    }\n    const ret = {\n      activeSignature: info.selectedItemIndex,\n      activeParameter: info.argumentIndex,\n      signatures: []\n    };\n    info.items.forEach((item) => {\n      const signature = {\n        label: \"\",\n        parameters: []\n      };\n      signature.documentation = {\n        value: displayPartsToString(item.documentation)\n      };\n      signature.label += displayPartsToString(item.prefixDisplayParts);\n      item.parameters.forEach((p, i, a) => {\n        const label = displayPartsToString(p.displayParts);\n        const parameter = {\n          label,\n          documentation: {\n            value: displayPartsToString(p.documentation)\n          }\n        };\n        signature.label += label;\n        signature.parameters.push(parameter);\n        if (i < a.length - 1) {\n          signature.label += displayPartsToString(item.separatorDisplayParts);\n        }\n      });\n      signature.label += displayPartsToString(item.suffixDisplayParts);\n      ret.signatures.push(signature);\n    });\n    return {\n      value: ret,\n      dispose() {\n      }\n    };\n  }\n};\nvar QuickInfoAdapter = class extends Adapter {\n  async provideHover(model, position, token) {\n    const resource = model.uri;\n    const offset = model.getOffsetAt(position);\n    const worker = await this._worker(resource);\n    if (model.isDisposed()) {\n      return;\n    }\n    const info = await worker.getQuickInfoAtPosition(resource.toString(), offset);\n    if (!info || model.isDisposed()) {\n      return;\n    }\n    const documentation = displayPartsToString(info.documentation);\n    const tags = info.tags ? info.tags.map((tag) => tagToString(tag)).join(\"  \\n\\n\") : \"\";\n    const contents = displayPartsToString(info.displayParts);\n    return {\n      range: this._textSpanToRange(model, info.textSpan),\n      contents: [\n        {\n          value: \"```typescript\\n\" + contents + \"\\n```\\n\"\n        },\n        {\n          value: documentation + (tags ? \"\\n\\n\" + tags : \"\")\n        }\n      ]\n    };\n  }\n};\nvar DocumentHighlightAdapter = class extends Adapter {\n  async provideDocumentHighlights(model, position, token) {\n    const resource = model.uri;\n    const offset = model.getOffsetAt(position);\n    const worker = await this._worker(resource);\n    if (model.isDisposed()) {\n      return;\n    }\n    const entries = await worker.getDocumentHighlights(resource.toString(), offset, [\n      resource.toString()\n    ]);\n    if (!entries || model.isDisposed()) {\n      return;\n    }\n    return entries.flatMap((entry) => {\n      return entry.highlightSpans.map((highlightSpans) => {\n        return {\n          range: this._textSpanToRange(model, highlightSpans.textSpan),\n          kind: highlightSpans.kind === \"writtenReference\" ? monaco_editor_core_exports.languages.DocumentHighlightKind.Write : monaco_editor_core_exports.languages.DocumentHighlightKind.Text\n        };\n      });\n    });\n  }\n};\nvar DefinitionAdapter = class extends Adapter {\n  constructor(_libFiles, worker) {\n    super(worker);\n    this._libFiles = _libFiles;\n  }\n  async provideDefinition(model, position, token) {\n    const resource = model.uri;\n    const offset = model.getOffsetAt(position);\n    const worker = await this._worker(resource);\n    if (model.isDisposed()) {\n      return;\n    }\n    const entries = await worker.getDefinitionAtPosition(resource.toString(), offset);\n    if (!entries || model.isDisposed()) {\n      return;\n    }\n    await this._libFiles.fetchLibFilesIfNecessary(\n      entries.map((entry) => monaco_editor_core_exports.Uri.parse(entry.fileName))\n    );\n    if (model.isDisposed()) {\n      return;\n    }\n    const result = [];\n    for (let entry of entries) {\n      const refModel = this._libFiles.getOrCreateModel(entry.fileName);\n      if (refModel) {\n        result.push({\n          uri: refModel.uri,\n          range: this._textSpanToRange(refModel, entry.textSpan)\n        });\n      }\n    }\n    return result;\n  }\n};\nvar ReferenceAdapter = class extends Adapter {\n  constructor(_libFiles, worker) {\n    super(worker);\n    this._libFiles = _libFiles;\n  }\n  async provideReferences(model, position, context, token) {\n    const resource = model.uri;\n    const offset = model.getOffsetAt(position);\n    const worker = await this._worker(resource);\n    if (model.isDisposed()) {\n      return;\n    }\n    const entries = await worker.getReferencesAtPosition(resource.toString(), offset);\n    if (!entries || model.isDisposed()) {\n      return;\n    }\n    await this._libFiles.fetchLibFilesIfNecessary(\n      entries.map((entry) => monaco_editor_core_exports.Uri.parse(entry.fileName))\n    );\n    if (model.isDisposed()) {\n      return;\n    }\n    const result = [];\n    for (let entry of entries) {\n      const refModel = this._libFiles.getOrCreateModel(entry.fileName);\n      if (refModel) {\n        result.push({\n          uri: refModel.uri,\n          range: this._textSpanToRange(refModel, entry.textSpan)\n        });\n      }\n    }\n    return result;\n  }\n};\nvar OutlineAdapter = class extends Adapter {\n  async provideDocumentSymbols(model, token) {\n    const resource = model.uri;\n    const worker = await this._worker(resource);\n    if (model.isDisposed()) {\n      return;\n    }\n    const root = await worker.getNavigationTree(resource.toString());\n    if (!root || model.isDisposed()) {\n      return;\n    }\n    const convert = (item, containerLabel) => {\n      const result2 = {\n        name: item.text,\n        detail: \"\",\n        kind: outlineTypeTable[item.kind] || monaco_editor_core_exports.languages.SymbolKind.Variable,\n        range: this._textSpanToRange(model, item.spans[0]),\n        selectionRange: this._textSpanToRange(model, item.spans[0]),\n        tags: [],\n        children: item.childItems?.map((child) => convert(child, item.text)),\n        containerName: containerLabel\n      };\n      return result2;\n    };\n    const result = root.childItems ? root.childItems.map((item) => convert(item)) : [];\n    return result;\n  }\n};\nvar Kind = class {\n  static {\n    this.unknown = \"\";\n  }\n  static {\n    this.keyword = \"keyword\";\n  }\n  static {\n    this.script = \"script\";\n  }\n  static {\n    this.module = \"module\";\n  }\n  static {\n    this.class = \"class\";\n  }\n  static {\n    this.interface = \"interface\";\n  }\n  static {\n    this.type = \"type\";\n  }\n  static {\n    this.enum = \"enum\";\n  }\n  static {\n    this.variable = \"var\";\n  }\n  static {\n    this.localVariable = \"local var\";\n  }\n  static {\n    this.function = \"function\";\n  }\n  static {\n    this.localFunction = \"local function\";\n  }\n  static {\n    this.memberFunction = \"method\";\n  }\n  static {\n    this.memberGetAccessor = \"getter\";\n  }\n  static {\n    this.memberSetAccessor = \"setter\";\n  }\n  static {\n    this.memberVariable = \"property\";\n  }\n  static {\n    this.constructorImplementation = \"constructor\";\n  }\n  static {\n    this.callSignature = \"call\";\n  }\n  static {\n    this.indexSignature = \"index\";\n  }\n  static {\n    this.constructSignature = \"construct\";\n  }\n  static {\n    this.parameter = \"parameter\";\n  }\n  static {\n    this.typeParameter = \"type parameter\";\n  }\n  static {\n    this.primitiveType = \"primitive type\";\n  }\n  static {\n    this.label = \"label\";\n  }\n  static {\n    this.alias = \"alias\";\n  }\n  static {\n    this.const = \"const\";\n  }\n  static {\n    this.let = \"let\";\n  }\n  static {\n    this.warning = \"warning\";\n  }\n};\nvar outlineTypeTable = /* @__PURE__ */ Object.create(null);\noutlineTypeTable[Kind.module] = monaco_editor_core_exports.languages.SymbolKind.Module;\noutlineTypeTable[Kind.class] = monaco_editor_core_exports.languages.SymbolKind.Class;\noutlineTypeTable[Kind.enum] = monaco_editor_core_exports.languages.SymbolKind.Enum;\noutlineTypeTable[Kind.interface] = monaco_editor_core_exports.languages.SymbolKind.Interface;\noutlineTypeTable[Kind.memberFunction] = monaco_editor_core_exports.languages.SymbolKind.Method;\noutlineTypeTable[Kind.memberVariable] = monaco_editor_core_exports.languages.SymbolKind.Property;\noutlineTypeTable[Kind.memberGetAccessor] = monaco_editor_core_exports.languages.SymbolKind.Property;\noutlineTypeTable[Kind.memberSetAccessor] = monaco_editor_core_exports.languages.SymbolKind.Property;\noutlineTypeTable[Kind.variable] = monaco_editor_core_exports.languages.SymbolKind.Variable;\noutlineTypeTable[Kind.const] = monaco_editor_core_exports.languages.SymbolKind.Variable;\noutlineTypeTable[Kind.localVariable] = monaco_editor_core_exports.languages.SymbolKind.Variable;\noutlineTypeTable[Kind.variable] = monaco_editor_core_exports.languages.SymbolKind.Variable;\noutlineTypeTable[Kind.function] = monaco_editor_core_exports.languages.SymbolKind.Function;\noutlineTypeTable[Kind.localFunction] = monaco_editor_core_exports.languages.SymbolKind.Function;\nvar FormatHelper = class extends Adapter {\n  static _convertOptions(options) {\n    return {\n      ConvertTabsToSpaces: options.insertSpaces,\n      TabSize: options.tabSize,\n      IndentSize: options.tabSize,\n      IndentStyle: 2 /* Smart */,\n      NewLineCharacter: \"\\n\",\n      InsertSpaceAfterCommaDelimiter: true,\n      InsertSpaceAfterSemicolonInForStatements: true,\n      InsertSpaceBeforeAndAfterBinaryOperators: true,\n      InsertSpaceAfterKeywordsInControlFlowStatements: true,\n      InsertSpaceAfterFunctionKeywordForAnonymousFunctions: true,\n      InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: false,\n      InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets: false,\n      InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces: false,\n      PlaceOpenBraceOnNewLineForControlBlocks: false,\n      PlaceOpenBraceOnNewLineForFunctions: false\n    };\n  }\n  _convertTextChanges(model, change) {\n    return {\n      text: change.newText,\n      range: this._textSpanToRange(model, change.span)\n    };\n  }\n};\nvar FormatAdapter = class extends FormatHelper {\n  constructor() {\n    super(...arguments);\n    this.canFormatMultipleRanges = false;\n  }\n  async provideDocumentRangeFormattingEdits(model, range, options, token) {\n    const resource = model.uri;\n    const startOffset = model.getOffsetAt({\n      lineNumber: range.startLineNumber,\n      column: range.startColumn\n    });\n    const endOffset = model.getOffsetAt({\n      lineNumber: range.endLineNumber,\n      column: range.endColumn\n    });\n    const worker = await this._worker(resource);\n    if (model.isDisposed()) {\n      return;\n    }\n    const edits = await worker.getFormattingEditsForRange(\n      resource.toString(),\n      startOffset,\n      endOffset,\n      FormatHelper._convertOptions(options)\n    );\n    if (!edits || model.isDisposed()) {\n      return;\n    }\n    return edits.map((edit) => this._convertTextChanges(model, edit));\n  }\n};\nvar FormatOnTypeAdapter = class extends FormatHelper {\n  get autoFormatTriggerCharacters() {\n    return [\";\", \"}\", \"\\n\"];\n  }\n  async provideOnTypeFormattingEdits(model, position, ch, options, token) {\n    const resource = model.uri;\n    const offset = model.getOffsetAt(position);\n    const worker = await this._worker(resource);\n    if (model.isDisposed()) {\n      return;\n    }\n    const edits = await worker.getFormattingEditsAfterKeystroke(\n      resource.toString(),\n      offset,\n      ch,\n      FormatHelper._convertOptions(options)\n    );\n    if (!edits || model.isDisposed()) {\n      return;\n    }\n    return edits.map((edit) => this._convertTextChanges(model, edit));\n  }\n};\nvar CodeActionAdaptor = class extends FormatHelper {\n  async provideCodeActions(model, range, context, token) {\n    const resource = model.uri;\n    const start = model.getOffsetAt({\n      lineNumber: range.startLineNumber,\n      column: range.startColumn\n    });\n    const end = model.getOffsetAt({\n      lineNumber: range.endLineNumber,\n      column: range.endColumn\n    });\n    const formatOptions = FormatHelper._convertOptions(model.getOptions());\n    const errorCodes = context.markers.filter((m) => m.code).map((m) => m.code).map(Number);\n    const worker = await this._worker(resource);\n    if (model.isDisposed()) {\n      return;\n    }\n    const codeFixes = await worker.getCodeFixesAtPosition(\n      resource.toString(),\n      start,\n      end,\n      errorCodes,\n      formatOptions\n    );\n    if (!codeFixes || model.isDisposed()) {\n      return { actions: [], dispose: () => {\n      } };\n    }\n    const actions = codeFixes.filter((fix) => {\n      return fix.changes.filter((change) => change.isNewFile).length === 0;\n    }).map((fix) => {\n      return this._tsCodeFixActionToMonacoCodeAction(model, context, fix);\n    });\n    return {\n      actions,\n      dispose: () => {\n      }\n    };\n  }\n  _tsCodeFixActionToMonacoCodeAction(model, context, codeFix) {\n    const edits = [];\n    for (const change of codeFix.changes) {\n      for (const textChange of change.textChanges) {\n        edits.push({\n          resource: model.uri,\n          versionId: void 0,\n          textEdit: {\n            range: this._textSpanToRange(model, textChange.span),\n            text: textChange.newText\n          }\n        });\n      }\n    }\n    const action = {\n      title: codeFix.description,\n      edit: { edits },\n      diagnostics: context.markers,\n      kind: \"quickfix\"\n    };\n    return action;\n  }\n};\nvar RenameAdapter = class extends Adapter {\n  constructor(_libFiles, worker) {\n    super(worker);\n    this._libFiles = _libFiles;\n  }\n  async provideRenameEdits(model, position, newName, token) {\n    const resource = model.uri;\n    const fileName = resource.toString();\n    const offset = model.getOffsetAt(position);\n    const worker = await this._worker(resource);\n    if (model.isDisposed()) {\n      return;\n    }\n    const renameInfo = await worker.getRenameInfo(fileName, offset, {\n      allowRenameOfImportPath: false\n    });\n    if (renameInfo.canRename === false) {\n      return {\n        edits: [],\n        rejectReason: renameInfo.localizedErrorMessage\n      };\n    }\n    if (renameInfo.fileToRename !== void 0) {\n      throw new Error(\"Renaming files is not supported.\");\n    }\n    const renameLocations = await worker.findRenameLocations(\n      fileName,\n      offset,\n      /*strings*/\n      false,\n      /*comments*/\n      false,\n      /*prefixAndSuffix*/\n      false\n    );\n    if (!renameLocations || model.isDisposed()) {\n      return;\n    }\n    const edits = [];\n    for (const renameLocation of renameLocations) {\n      const model2 = this._libFiles.getOrCreateModel(renameLocation.fileName);\n      if (model2) {\n        edits.push({\n          resource: model2.uri,\n          versionId: void 0,\n          textEdit: {\n            range: this._textSpanToRange(model2, renameLocation.textSpan),\n            text: newName\n          }\n        });\n      } else {\n        throw new Error(`Unknown file ${renameLocation.fileName}.`);\n      }\n    }\n    return { edits };\n  }\n};\nvar InlayHintsAdapter = class extends Adapter {\n  async provideInlayHints(model, range, token) {\n    const resource = model.uri;\n    const fileName = resource.toString();\n    const start = model.getOffsetAt({\n      lineNumber: range.startLineNumber,\n      column: range.startColumn\n    });\n    const end = model.getOffsetAt({\n      lineNumber: range.endLineNumber,\n      column: range.endColumn\n    });\n    const worker = await this._worker(resource);\n    if (model.isDisposed()) {\n      return null;\n    }\n    const tsHints = await worker.provideInlayHints(fileName, start, end);\n    const hints = tsHints.map((hint) => {\n      return {\n        ...hint,\n        label: hint.text,\n        position: model.getPositionAt(hint.position),\n        kind: this._convertHintKind(hint.kind)\n      };\n    });\n    return { hints, dispose: () => {\n    } };\n  }\n  _convertHintKind(kind) {\n    switch (kind) {\n      case \"Parameter\":\n        return monaco_editor_core_exports.languages.InlayHintKind.Parameter;\n      case \"Type\":\n        return monaco_editor_core_exports.languages.InlayHintKind.Type;\n      default:\n        return monaco_editor_core_exports.languages.InlayHintKind.Type;\n    }\n  }\n};\n\n// src/language/typescript/tsMode.ts\nvar javaScriptWorker;\nvar typeScriptWorker;\nfunction setupTypeScript(defaults) {\n  typeScriptWorker = setupMode(defaults, \"typescript\");\n}\nfunction setupJavaScript(defaults) {\n  javaScriptWorker = setupMode(defaults, \"javascript\");\n}\nfunction getJavaScriptWorker() {\n  return new Promise((resolve, reject) => {\n    if (!javaScriptWorker) {\n      return reject(\"JavaScript not registered!\");\n    }\n    resolve(javaScriptWorker);\n  });\n}\nfunction getTypeScriptWorker() {\n  return new Promise((resolve, reject) => {\n    if (!typeScriptWorker) {\n      return reject(\"TypeScript not registered!\");\n    }\n    resolve(typeScriptWorker);\n  });\n}\nfunction setupMode(defaults, modeId) {\n  const disposables = [];\n  const providers = [];\n  const client = new WorkerManager(modeId, defaults);\n  disposables.push(client);\n  const worker = (...uris) => {\n    return client.getLanguageServiceWorker(...uris);\n  };\n  const libFiles = new LibFiles(worker);\n  function registerProviders() {\n    const { modeConfiguration } = defaults;\n    disposeAll(providers);\n    if (modeConfiguration.completionItems) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerCompletionItemProvider(\n          modeId,\n          new SuggestAdapter(worker)\n        )\n      );\n    }\n    if (modeConfiguration.signatureHelp) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerSignatureHelpProvider(\n          modeId,\n          new SignatureHelpAdapter(worker)\n        )\n      );\n    }\n    if (modeConfiguration.hovers) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerHoverProvider(modeId, new QuickInfoAdapter(worker))\n      );\n    }\n    if (modeConfiguration.documentHighlights) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerDocumentHighlightProvider(\n          modeId,\n          new DocumentHighlightAdapter(worker)\n        )\n      );\n    }\n    if (modeConfiguration.definitions) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerDefinitionProvider(\n          modeId,\n          new DefinitionAdapter(libFiles, worker)\n        )\n      );\n    }\n    if (modeConfiguration.references) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerReferenceProvider(\n          modeId,\n          new ReferenceAdapter(libFiles, worker)\n        )\n      );\n    }\n    if (modeConfiguration.documentSymbols) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerDocumentSymbolProvider(\n          modeId,\n          new OutlineAdapter(worker)\n        )\n      );\n    }\n    if (modeConfiguration.rename) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerRenameProvider(\n          modeId,\n          new RenameAdapter(libFiles, worker)\n        )\n      );\n    }\n    if (modeConfiguration.documentRangeFormattingEdits) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerDocumentRangeFormattingEditProvider(\n          modeId,\n          new FormatAdapter(worker)\n        )\n      );\n    }\n    if (modeConfiguration.onTypeFormattingEdits) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerOnTypeFormattingEditProvider(\n          modeId,\n          new FormatOnTypeAdapter(worker)\n        )\n      );\n    }\n    if (modeConfiguration.codeActions) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerCodeActionProvider(modeId, new CodeActionAdaptor(worker))\n      );\n    }\n    if (modeConfiguration.inlayHints) {\n      providers.push(\n        monaco_editor_core_exports.languages.registerInlayHintsProvider(modeId, new InlayHintsAdapter(worker))\n      );\n    }\n    if (modeConfiguration.diagnostics) {\n      providers.push(new DiagnosticsAdapter(libFiles, defaults, modeId, worker));\n    }\n  }\n  registerProviders();\n  disposables.push(asDisposable(providers));\n  return worker;\n}\nfunction asDisposable(disposables) {\n  return { dispose: () => disposeAll(disposables) };\n}\nfunction disposeAll(disposables) {\n  while (disposables.length) {\n    disposables.pop().dispose();\n  }\n}\nexport {\n  Adapter,\n  CodeActionAdaptor,\n  DefinitionAdapter,\n  DiagnosticsAdapter,\n  DocumentHighlightAdapter,\n  FormatAdapter,\n  FormatHelper,\n  FormatOnTypeAdapter,\n  InlayHintsAdapter,\n  Kind,\n  LibFiles,\n  OutlineAdapter,\n  QuickInfoAdapter,\n  ReferenceAdapter,\n  RenameAdapter,\n  SignatureHelpAdapter,\n  SuggestAdapter,\n  WorkerManager,\n  flattenDiagnosticMessageText,\n  getJavaScriptWorker,\n  getTypeScriptWorker,\n  setupJavaScript,\n  setupTypeScript\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/nls.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nlet isPseudo = (typeof document !== 'undefined' && document.location && document.location.hash.indexOf('pseudo=true') >= 0);\nconst DEFAULT_TAG = 'i-default';\nfunction _format(message, args) {\n    let result;\n    if (args.length === 0) {\n        result = message;\n    }\n    else {\n        result = message.replace(/\\{(\\d+)\\}/g, (match, rest) => {\n            const index = rest[0];\n            const arg = args[index];\n            let result = match;\n            if (typeof arg === 'string') {\n                result = arg;\n            }\n            else if (typeof arg === 'number' || typeof arg === 'boolean' || arg === void 0 || arg === null) {\n                result = String(arg);\n            }\n            return result;\n        });\n    }\n    if (isPseudo) {\n        // FF3B and FF3D is the Unicode zenkaku representation for [ and ]\n        result = '\\uFF3B' + result.replace(/[aouei]/g, '$&$&') + '\\uFF3D';\n    }\n    return result;\n}\nfunction findLanguageForModule(config, name) {\n    let result = config[name];\n    if (result) {\n        return result;\n    }\n    result = config['*'];\n    if (result) {\n        return result;\n    }\n    return null;\n}\nfunction endWithSlash(path) {\n    if (path.charAt(path.length - 1) === '/') {\n        return path;\n    }\n    return path + '/';\n}\nasync function getMessagesFromTranslationsService(translationServiceUrl, language, name) {\n    const url = endWithSlash(translationServiceUrl) + endWithSlash(language) + 'vscode/' + endWithSlash(name);\n    const res = await fetch(url);\n    if (res.ok) {\n        const messages = await res.json();\n        return messages;\n    }\n    throw new Error(`${res.status} - ${res.statusText}`);\n}\nfunction createScopedLocalize(scope) {\n    return function (idx, defaultValue) {\n        const restArgs = Array.prototype.slice.call(arguments, 2);\n        return _format(scope[idx], restArgs);\n    };\n}\nfunction createScopedLocalize2(scope) {\n    return (idx, defaultValue, ...args) => ({\n        value: _format(scope[idx], args),\n        original: _format(defaultValue, args)\n    });\n}\n/**\n * @skipMangle\n */\nexport function localize(data, message, ...args) {\n    return _format(message, args);\n}\n/**\n * @skipMangle\n */\nexport function localize2(data, message, ...args) {\n    const original = _format(message, args);\n    return {\n        value: original,\n        original\n    };\n}\n/**\n * @skipMangle\n */\nexport function getConfiguredDefaultLocale(_) {\n    // This returns undefined because this implementation isn't used and is overwritten by the loader\n    // when loaded.\n    return undefined;\n}\n/**\n * @skipMangle\n */\nexport function setPseudoTranslation(value) {\n    isPseudo = value;\n}\n/**\n * Invoked in a built product at run-time\n * @skipMangle\n */\nexport function create(key, data) {\n    var _a;\n    return {\n        localize: createScopedLocalize(data[key]),\n        localize2: createScopedLocalize2(data[key]),\n        getConfiguredDefaultLocale: (_a = data.getConfiguredDefaultLocale) !== null && _a !== void 0 ? _a : ((_) => undefined)\n    };\n}\n/**\n * Invoked by the loader at run-time\n * @skipMangle\n */\nexport function load(name, req, load, config) {\n    var _a;\n    const pluginConfig = (_a = config['vs/nls']) !== null && _a !== void 0 ? _a : {};\n    if (!name || name.length === 0) {\n        // TODO: We need to give back the mangled names here\n        return load({\n            localize: localize,\n            localize2: localize2,\n            getConfiguredDefaultLocale: () => { var _a; return (_a = pluginConfig.availableLanguages) === null || _a === void 0 ? void 0 : _a['*']; }\n        });\n    }\n    const language = pluginConfig.availableLanguages ? findLanguageForModule(pluginConfig.availableLanguages, name) : null;\n    const useDefaultLanguage = language === null || language === DEFAULT_TAG;\n    let suffix = '.nls';\n    if (!useDefaultLanguage) {\n        suffix = suffix + '.' + language;\n    }\n    const messagesLoaded = (messages) => {\n        if (Array.isArray(messages)) {\n            messages.localize = createScopedLocalize(messages);\n            messages.localize2 = createScopedLocalize2(messages);\n        }\n        else {\n            messages.localize = createScopedLocalize(messages[name]);\n            messages.localize2 = createScopedLocalize2(messages[name]);\n        }\n        messages.getConfiguredDefaultLocale = () => { var _a; return (_a = pluginConfig.availableLanguages) === null || _a === void 0 ? void 0 : _a['*']; };\n        load(messages);\n    };\n    if (typeof pluginConfig.loadBundle === 'function') {\n        pluginConfig.loadBundle(name, language, (err, messages) => {\n            // We have an error. Load the English default strings to not fail\n            if (err) {\n                req([name + '.nls'], messagesLoaded);\n            }\n            else {\n                messagesLoaded(messages);\n            }\n        });\n    }\n    else if (pluginConfig.translationServiceUrl && !useDefaultLanguage) {\n        (async () => {\n            var _a;\n            try {\n                const messages = await getMessagesFromTranslationsService(pluginConfig.translationServiceUrl, language, name);\n                return messagesLoaded(messages);\n            }\n            catch (err) {\n                // Language is already as generic as it gets, so require default messages\n                if (!language.includes('-')) {\n                    console.error(err);\n                    return req([name + '.nls'], messagesLoaded);\n                }\n                try {\n                    // Since there is a dash, the language configured is a specific sub-language of the same generic language.\n                    // Since we were unable to load the specific language, try to load the generic language. Ex. we failed to find a\n                    // Swiss German (de-CH), so try to load the generic German (de) messages instead.\n                    const genericLanguage = language.split('-')[0];\n                    const messages = await getMessagesFromTranslationsService(pluginConfig.translationServiceUrl, genericLanguage, name);\n                    // We got some messages, so we configure the configuration to use the generic language for this session.\n                    (_a = pluginConfig.availableLanguages) !== null && _a !== void 0 ? _a : (pluginConfig.availableLanguages = {});\n                    pluginConfig.availableLanguages['*'] = genericLanguage;\n                    return messagesLoaded(messages);\n                }\n                catch (err) {\n                    console.error(err);\n                    return req([name + '.nls'], messagesLoaded);\n                }\n            }\n        })();\n    }\n    else {\n        req([name + suffix], messagesLoaded, (err) => {\n            if (suffix === '.nls') {\n                console.error('Failed trying to load default language strings', err);\n                return;\n            }\n            console.error(`Failed to load message bundle for language ${language}. Falling back to the default language:`, err);\n            req([name + '.nls'], messagesLoaded);\n        });\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/accessibility/browser/accessibilityService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { addDisposableListener } from '../../../base/browser/dom.js';\nimport { mainWindow } from '../../../base/browser/window.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { CONTEXT_ACCESSIBILITY_MODE_ENABLED } from '../common/accessibility.js';\nimport { IConfigurationService } from '../../configuration/common/configuration.js';\nimport { IContextKeyService } from '../../contextkey/common/contextkey.js';\nimport { ILayoutService } from '../../layout/browser/layoutService.js';\nlet AccessibilityService = class AccessibilityService extends Disposable {\n    constructor(_contextKeyService, _layoutService, _configurationService) {\n        super();\n        this._contextKeyService = _contextKeyService;\n        this._layoutService = _layoutService;\n        this._configurationService = _configurationService;\n        this._accessibilitySupport = 0 /* AccessibilitySupport.Unknown */;\n        this._onDidChangeScreenReaderOptimized = new Emitter();\n        this._onDidChangeReducedMotion = new Emitter();\n        this._accessibilityModeEnabledContext = CONTEXT_ACCESSIBILITY_MODE_ENABLED.bindTo(this._contextKeyService);\n        const updateContextKey = () => this._accessibilityModeEnabledContext.set(this.isScreenReaderOptimized());\n        this._register(this._configurationService.onDidChangeConfiguration(e => {\n            if (e.affectsConfiguration('editor.accessibilitySupport')) {\n                updateContextKey();\n                this._onDidChangeScreenReaderOptimized.fire();\n            }\n            if (e.affectsConfiguration('workbench.reduceMotion')) {\n                this._configMotionReduced = this._configurationService.getValue('workbench.reduceMotion');\n                this._onDidChangeReducedMotion.fire();\n            }\n        }));\n        updateContextKey();\n        this._register(this.onDidChangeScreenReaderOptimized(() => updateContextKey()));\n        const reduceMotionMatcher = mainWindow.matchMedia(`(prefers-reduced-motion: reduce)`);\n        this._systemMotionReduced = reduceMotionMatcher.matches;\n        this._configMotionReduced = this._configurationService.getValue('workbench.reduceMotion');\n        this.initReducedMotionListeners(reduceMotionMatcher);\n    }\n    initReducedMotionListeners(reduceMotionMatcher) {\n        this._register(addDisposableListener(reduceMotionMatcher, 'change', () => {\n            this._systemMotionReduced = reduceMotionMatcher.matches;\n            if (this._configMotionReduced === 'auto') {\n                this._onDidChangeReducedMotion.fire();\n            }\n        }));\n        const updateRootClasses = () => {\n            const reduce = this.isMotionReduced();\n            this._layoutService.mainContainer.classList.toggle('reduce-motion', reduce);\n            this._layoutService.mainContainer.classList.toggle('enable-motion', !reduce);\n        };\n        updateRootClasses();\n        this._register(this.onDidChangeReducedMotion(() => updateRootClasses()));\n    }\n    get onDidChangeScreenReaderOptimized() {\n        return this._onDidChangeScreenReaderOptimized.event;\n    }\n    isScreenReaderOptimized() {\n        const config = this._configurationService.getValue('editor.accessibilitySupport');\n        return config === 'on' || (config === 'auto' && this._accessibilitySupport === 2 /* AccessibilitySupport.Enabled */);\n    }\n    get onDidChangeReducedMotion() {\n        return this._onDidChangeReducedMotion.event;\n    }\n    isMotionReduced() {\n        const config = this._configMotionReduced;\n        return config === 'on' || (config === 'auto' && this._systemMotionReduced);\n    }\n    getAccessibilitySupport() {\n        return this._accessibilitySupport;\n    }\n};\nAccessibilityService = __decorate([\n    __param(0, IContextKeyService),\n    __param(1, ILayoutService),\n    __param(2, IConfigurationService)\n], AccessibilityService);\nexport { AccessibilityService };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/accessibility/browser/accessibleView.js",
    "content": "export {};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/accessibility/browser/accessibleViewRegistry.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport const AccessibleViewRegistry = new class AccessibleViewRegistry {\n    constructor() {\n        this._implementations = [];\n    }\n    register(implementation) {\n        this._implementations.push(implementation);\n        return {\n            dispose: () => {\n                const idx = this._implementations.indexOf(implementation);\n                if (idx !== -1) {\n                    this._implementations.splice(idx, 1);\n                }\n                implementation.dispose();\n            }\n        };\n    }\n    getImplementations() {\n        return this._implementations;\n    }\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/accessibility/common/accessibility.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { RawContextKey } from '../../contextkey/common/contextkey.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const IAccessibilityService = createDecorator('accessibilityService');\nexport const CONTEXT_ACCESSIBILITY_MODE_ENABLED = new RawContextKey('accessibilityModeEnabled', false);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js",
    "content": "import { localize } from '../../../nls.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const IAccessibilitySignalService = createDecorator('accessibilitySignalService');\n/** Make sure you understand the doc comments of the method you want to call when using this token! */\nexport const AcknowledgeDocCommentsToken = Symbol('AcknowledgeDocCommentsToken');\n/**\n * Corresponds to the audio files in ./media.\n*/\nexport class Sound {\n    static register(options) {\n        const sound = new Sound(options.fileName);\n        return sound;\n    }\n    constructor(fileName) {\n        this.fileName = fileName;\n    }\n}\nSound.error = Sound.register({ fileName: 'error.mp3' });\nSound.warning = Sound.register({ fileName: 'warning.mp3' });\nSound.success = Sound.register({ fileName: 'success.mp3' });\nSound.foldedArea = Sound.register({ fileName: 'foldedAreas.mp3' });\nSound.break = Sound.register({ fileName: 'break.mp3' });\nSound.quickFixes = Sound.register({ fileName: 'quickFixes.mp3' });\nSound.taskCompleted = Sound.register({ fileName: 'taskCompleted.mp3' });\nSound.taskFailed = Sound.register({ fileName: 'taskFailed.mp3' });\nSound.terminalBell = Sound.register({ fileName: 'terminalBell.mp3' });\nSound.diffLineInserted = Sound.register({ fileName: 'diffLineInserted.mp3' });\nSound.diffLineDeleted = Sound.register({ fileName: 'diffLineDeleted.mp3' });\nSound.diffLineModified = Sound.register({ fileName: 'diffLineModified.mp3' });\nSound.chatRequestSent = Sound.register({ fileName: 'chatRequestSent.mp3' });\nSound.chatResponseReceived1 = Sound.register({ fileName: 'chatResponseReceived1.mp3' });\nSound.chatResponseReceived2 = Sound.register({ fileName: 'chatResponseReceived2.mp3' });\nSound.chatResponseReceived3 = Sound.register({ fileName: 'chatResponseReceived3.mp3' });\nSound.chatResponseReceived4 = Sound.register({ fileName: 'chatResponseReceived4.mp3' });\nSound.clear = Sound.register({ fileName: 'clear.mp3' });\nSound.save = Sound.register({ fileName: 'save.mp3' });\nSound.format = Sound.register({ fileName: 'format.mp3' });\nSound.voiceRecordingStarted = Sound.register({ fileName: 'voiceRecordingStarted.mp3' });\nSound.voiceRecordingStopped = Sound.register({ fileName: 'voiceRecordingStopped.mp3' });\nSound.progress = Sound.register({ fileName: 'progress.mp3' });\nexport class SoundSource {\n    constructor(randomOneOf) {\n        this.randomOneOf = randomOneOf;\n    }\n}\nexport class AccessibilitySignal {\n    constructor(sound, name, legacySoundSettingsKey, settingsKey, legacyAnnouncementSettingsKey, announcementMessage, delaySettingsKey) {\n        this.sound = sound;\n        this.name = name;\n        this.legacySoundSettingsKey = legacySoundSettingsKey;\n        this.settingsKey = settingsKey;\n        this.legacyAnnouncementSettingsKey = legacyAnnouncementSettingsKey;\n        this.announcementMessage = announcementMessage;\n        this.delaySettingsKey = delaySettingsKey;\n    }\n    static register(options) {\n        const soundSource = new SoundSource('randomOneOf' in options.sound ? options.sound.randomOneOf : [options.sound]);\n        const signal = new AccessibilitySignal(soundSource, options.name, options.legacySoundSettingsKey, options.settingsKey, options.legacyAnnouncementSettingsKey, options.announcementMessage, options.delaySettingsKey);\n        AccessibilitySignal._signals.add(signal);\n        return signal;\n    }\n}\nAccessibilitySignal._signals = new Set();\nAccessibilitySignal.errorAtPosition = AccessibilitySignal.register({\n    name: localize('accessibilitySignals.positionHasError.name', 'Error at Position'),\n    sound: Sound.error,\n    announcementMessage: localize('accessibility.signals.positionHasError', 'Error'),\n    settingsKey: 'accessibility.signals.positionHasError',\n    delaySettingsKey: 'accessibility.signalOptions.delays.errorAtPosition'\n});\nAccessibilitySignal.warningAtPosition = AccessibilitySignal.register({\n    name: localize('accessibilitySignals.positionHasWarning.name', 'Warning at Position'),\n    sound: Sound.warning,\n    announcementMessage: localize('accessibility.signals.positionHasWarning', 'Warning'),\n    settingsKey: 'accessibility.signals.positionHasWarning',\n    delaySettingsKey: 'accessibility.signalOptions.delays.warningAtPosition'\n});\nAccessibilitySignal.errorOnLine = AccessibilitySignal.register({\n    name: localize('accessibilitySignals.lineHasError.name', 'Error on Line'),\n    sound: Sound.error,\n    legacySoundSettingsKey: 'audioCues.lineHasError',\n    legacyAnnouncementSettingsKey: 'accessibility.alert.error',\n    announcementMessage: localize('accessibility.signals.lineHasError', 'Error on Line'),\n    settingsKey: 'accessibility.signals.lineHasError',\n});\nAccessibilitySignal.warningOnLine = AccessibilitySignal.register({\n    name: localize('accessibilitySignals.lineHasWarning.name', 'Warning on Line'),\n    sound: Sound.warning,\n    legacySoundSettingsKey: 'audioCues.lineHasWarning',\n    legacyAnnouncementSettingsKey: 'accessibility.alert.warning',\n    announcementMessage: localize('accessibility.signals.lineHasWarning', 'Warning on Line'),\n    settingsKey: 'accessibility.signals.lineHasWarning',\n});\nAccessibilitySignal.foldedArea = AccessibilitySignal.register({\n    name: localize('accessibilitySignals.lineHasFoldedArea.name', 'Folded Area on Line'),\n    sound: Sound.foldedArea,\n    legacySoundSettingsKey: 'audioCues.lineHasFoldedArea',\n    legacyAnnouncementSettingsKey: 'accessibility.alert.foldedArea',\n    announcementMessage: localize('accessibility.signals.lineHasFoldedArea', 'Folded'),\n    settingsKey: 'accessibility.signals.lineHasFoldedArea',\n});\nAccessibilitySignal.break = AccessibilitySignal.register({\n    name: localize('accessibilitySignals.lineHasBreakpoint.name', 'Breakpoint on Line'),\n    sound: Sound.break,\n    legacySoundSettingsKey: 'audioCues.lineHasBreakpoint',\n    legacyAnnouncementSettingsKey: 'accessibility.alert.breakpoint',\n    announcementMessage: localize('accessibility.signals.lineHasBreakpoint', 'Breakpoint'),\n    settingsKey: 'accessibility.signals.lineHasBreakpoint',\n});\nAccessibilitySignal.inlineSuggestion = AccessibilitySignal.register({\n    name: localize('accessibilitySignals.lineHasInlineSuggestion.name', 'Inline Suggestion on Line'),\n    sound: Sound.quickFixes,\n    legacySoundSettingsKey: 'audioCues.lineHasInlineSuggestion',\n    settingsKey: 'accessibility.signals.lineHasInlineSuggestion',\n});\nAccessibilitySignal.terminalQuickFix = AccessibilitySignal.register({\n    name: localize('accessibilitySignals.terminalQuickFix.name', 'Terminal Quick Fix'),\n    sound: Sound.quickFixes,\n    legacySoundSettingsKey: 'audioCues.terminalQuickFix',\n    legacyAnnouncementSettingsKey: 'accessibility.alert.terminalQuickFix',\n    announcementMessage: localize('accessibility.signals.terminalQuickFix', 'Quick Fix'),\n    settingsKey: 'accessibility.signals.terminalQuickFix',\n});\nAccessibilitySignal.onDebugBreak = AccessibilitySignal.register({\n    name: localize('accessibilitySignals.onDebugBreak.name', 'Debugger Stopped on Breakpoint'),\n    sound: Sound.break,\n    legacySoundSettingsKey: 'audioCues.onDebugBreak',\n    legacyAnnouncementSettingsKey: 'accessibility.alert.onDebugBreak',\n    announcementMessage: localize('accessibility.signals.onDebugBreak', 'Breakpoint'),\n    settingsKey: 'accessibility.signals.onDebugBreak',\n});\nAccessibilitySignal.noInlayHints = AccessibilitySignal.register({\n    name: localize('accessibilitySignals.noInlayHints', 'No Inlay Hints on Line'),\n    sound: Sound.error,\n    legacySoundSettingsKey: 'audioCues.noInlayHints',\n    legacyAnnouncementSettingsKey: 'accessibility.alert.noInlayHints',\n    announcementMessage: localize('accessibility.signals.noInlayHints', 'No Inlay Hints'),\n    settingsKey: 'accessibility.signals.noInlayHints',\n});\nAccessibilitySignal.taskCompleted = AccessibilitySignal.register({\n    name: localize('accessibilitySignals.taskCompleted', 'Task Completed'),\n    sound: Sound.taskCompleted,\n    legacySoundSettingsKey: 'audioCues.taskCompleted',\n    legacyAnnouncementSettingsKey: 'accessibility.alert.taskCompleted',\n    announcementMessage: localize('accessibility.signals.taskCompleted', 'Task Completed'),\n    settingsKey: 'accessibility.signals.taskCompleted',\n});\nAccessibilitySignal.taskFailed = AccessibilitySignal.register({\n    name: localize('accessibilitySignals.taskFailed', 'Task Failed'),\n    sound: Sound.taskFailed,\n    legacySoundSettingsKey: 'audioCues.taskFailed',\n    legacyAnnouncementSettingsKey: 'accessibility.alert.taskFailed',\n    announcementMessage: localize('accessibility.signals.taskFailed', 'Task Failed'),\n    settingsKey: 'accessibility.signals.taskFailed',\n});\nAccessibilitySignal.terminalCommandFailed = AccessibilitySignal.register({\n    name: localize('accessibilitySignals.terminalCommandFailed', 'Terminal Command Failed'),\n    sound: Sound.error,\n    legacySoundSettingsKey: 'audioCues.terminalCommandFailed',\n    legacyAnnouncementSettingsKey: 'accessibility.alert.terminalCommandFailed',\n    announcementMessage: localize('accessibility.signals.terminalCommandFailed', 'Command Failed'),\n    settingsKey: 'accessibility.signals.terminalCommandFailed',\n});\nAccessibilitySignal.terminalCommandSucceeded = AccessibilitySignal.register({\n    name: localize('accessibilitySignals.terminalCommandSucceeded', 'Terminal Command Succeeded'),\n    sound: Sound.success,\n    announcementMessage: localize('accessibility.signals.terminalCommandSucceeded', 'Command Succeeded'),\n    settingsKey: 'accessibility.signals.terminalCommandSucceeded',\n});\nAccessibilitySignal.terminalBell = AccessibilitySignal.register({\n    name: localize('accessibilitySignals.terminalBell', 'Terminal Bell'),\n    sound: Sound.terminalBell,\n    legacySoundSettingsKey: 'audioCues.terminalBell',\n    legacyAnnouncementSettingsKey: 'accessibility.alert.terminalBell',\n    announcementMessage: localize('accessibility.signals.terminalBell', 'Terminal Bell'),\n    settingsKey: 'accessibility.signals.terminalBell',\n});\nAccessibilitySignal.notebookCellCompleted = AccessibilitySignal.register({\n    name: localize('accessibilitySignals.notebookCellCompleted', 'Notebook Cell Completed'),\n    sound: Sound.taskCompleted,\n    legacySoundSettingsKey: 'audioCues.notebookCellCompleted',\n    legacyAnnouncementSettingsKey: 'accessibility.alert.notebookCellCompleted',\n    announcementMessage: localize('accessibility.signals.notebookCellCompleted', 'Notebook Cell Completed'),\n    settingsKey: 'accessibility.signals.notebookCellCompleted',\n});\nAccessibilitySignal.notebookCellFailed = AccessibilitySignal.register({\n    name: localize('accessibilitySignals.notebookCellFailed', 'Notebook Cell Failed'),\n    sound: Sound.taskFailed,\n    legacySoundSettingsKey: 'audioCues.notebookCellFailed',\n    legacyAnnouncementSettingsKey: 'accessibility.alert.notebookCellFailed',\n    announcementMessage: localize('accessibility.signals.notebookCellFailed', 'Notebook Cell Failed'),\n    settingsKey: 'accessibility.signals.notebookCellFailed',\n});\nAccessibilitySignal.diffLineInserted = AccessibilitySignal.register({\n    name: localize('accessibilitySignals.diffLineInserted', 'Diff Line Inserted'),\n    sound: Sound.diffLineInserted,\n    legacySoundSettingsKey: 'audioCues.diffLineInserted',\n    settingsKey: 'accessibility.signals.diffLineInserted',\n});\nAccessibilitySignal.diffLineDeleted = AccessibilitySignal.register({\n    name: localize('accessibilitySignals.diffLineDeleted', 'Diff Line Deleted'),\n    sound: Sound.diffLineDeleted,\n    legacySoundSettingsKey: 'audioCues.diffLineDeleted',\n    settingsKey: 'accessibility.signals.diffLineDeleted',\n});\nAccessibilitySignal.diffLineModified = AccessibilitySignal.register({\n    name: localize('accessibilitySignals.diffLineModified', 'Diff Line Modified'),\n    sound: Sound.diffLineModified,\n    legacySoundSettingsKey: 'audioCues.diffLineModified',\n    settingsKey: 'accessibility.signals.diffLineModified',\n});\nAccessibilitySignal.chatRequestSent = AccessibilitySignal.register({\n    name: localize('accessibilitySignals.chatRequestSent', 'Chat Request Sent'),\n    sound: Sound.chatRequestSent,\n    legacySoundSettingsKey: 'audioCues.chatRequestSent',\n    legacyAnnouncementSettingsKey: 'accessibility.alert.chatRequestSent',\n    announcementMessage: localize('accessibility.signals.chatRequestSent', 'Chat Request Sent'),\n    settingsKey: 'accessibility.signals.chatRequestSent',\n});\nAccessibilitySignal.chatResponseReceived = AccessibilitySignal.register({\n    name: localize('accessibilitySignals.chatResponseReceived', 'Chat Response Received'),\n    legacySoundSettingsKey: 'audioCues.chatResponseReceived',\n    sound: {\n        randomOneOf: [\n            Sound.chatResponseReceived1,\n            Sound.chatResponseReceived2,\n            Sound.chatResponseReceived3,\n            Sound.chatResponseReceived4\n        ]\n    },\n    settingsKey: 'accessibility.signals.chatResponseReceived'\n});\nAccessibilitySignal.progress = AccessibilitySignal.register({\n    name: localize('accessibilitySignals.progress', 'Progress'),\n    sound: Sound.progress,\n    legacySoundSettingsKey: 'audioCues.chatResponsePending',\n    legacyAnnouncementSettingsKey: 'accessibility.alert.progress',\n    announcementMessage: localize('accessibility.signals.progress', 'Progress'),\n    settingsKey: 'accessibility.signals.progress'\n});\nAccessibilitySignal.clear = AccessibilitySignal.register({\n    name: localize('accessibilitySignals.clear', 'Clear'),\n    sound: Sound.clear,\n    legacySoundSettingsKey: 'audioCues.clear',\n    legacyAnnouncementSettingsKey: 'accessibility.alert.clear',\n    announcementMessage: localize('accessibility.signals.clear', 'Clear'),\n    settingsKey: 'accessibility.signals.clear'\n});\nAccessibilitySignal.save = AccessibilitySignal.register({\n    name: localize('accessibilitySignals.save', 'Save'),\n    sound: Sound.save,\n    legacySoundSettingsKey: 'audioCues.save',\n    legacyAnnouncementSettingsKey: 'accessibility.alert.save',\n    announcementMessage: localize('accessibility.signals.save', 'Save'),\n    settingsKey: 'accessibility.signals.save'\n});\nAccessibilitySignal.format = AccessibilitySignal.register({\n    name: localize('accessibilitySignals.format', 'Format'),\n    sound: Sound.format,\n    legacySoundSettingsKey: 'audioCues.format',\n    legacyAnnouncementSettingsKey: 'accessibility.alert.format',\n    announcementMessage: localize('accessibility.signals.format', 'Format'),\n    settingsKey: 'accessibility.signals.format'\n});\nAccessibilitySignal.voiceRecordingStarted = AccessibilitySignal.register({\n    name: localize('accessibilitySignals.voiceRecordingStarted', 'Voice Recording Started'),\n    sound: Sound.voiceRecordingStarted,\n    legacySoundSettingsKey: 'audioCues.voiceRecordingStarted',\n    settingsKey: 'accessibility.signals.voiceRecordingStarted'\n});\nAccessibilitySignal.voiceRecordingStopped = AccessibilitySignal.register({\n    name: localize('accessibilitySignals.voiceRecordingStopped', 'Voice Recording Stopped'),\n    sound: Sound.voiceRecordingStopped,\n    legacySoundSettingsKey: 'audioCues.voiceRecordingStopped',\n    settingsKey: 'accessibility.signals.voiceRecordingStopped'\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/action/common/action.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport function isLocalizedString(thing) {\n    return thing\n        && typeof thing === 'object'\n        && typeof thing.original === 'string'\n        && typeof thing.value === 'string';\n}\nexport function isICommandActionToggleInfo(thing) {\n    return thing ? thing.condition !== undefined : false;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/action/common/actionCommonCategories.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { localize2 } from '../../../nls.js';\nexport const Categories = Object.freeze({\n    View: localize2('view', 'View'),\n    Help: localize2('help', 'Help'),\n    Test: localize2('test', 'Test'),\n    File: localize2('file', 'File'),\n    Preferences: localize2('preferences', 'Preferences'),\n    Developer: localize2({ key: 'developer', comment: ['A developer on Code itself or someone diagnosing issues in Code'] }, \"Developer\"),\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/actionWidget/browser/actionList.js",
    "content": "var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\n/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../../base/browser/dom.js';\nimport { KeybindingLabel } from '../../../base/browser/ui/keybindingLabel/keybindingLabel.js';\nimport { List } from '../../../base/browser/ui/list/listWidget.js';\nimport { CancellationTokenSource } from '../../../base/common/cancellation.js';\nimport { Codicon } from '../../../base/common/codicons.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { OS } from '../../../base/common/platform.js';\nimport { ThemeIcon } from '../../../base/common/themables.js';\nimport './actionWidget.css';\nimport { localize } from '../../../nls.js';\nimport { IContextViewService } from '../../contextview/browser/contextView.js';\nimport { IKeybindingService } from '../../keybinding/common/keybinding.js';\nimport { defaultListStyles } from '../../theme/browser/defaultStyles.js';\nimport { asCssVariable } from '../../theme/common/colorRegistry.js';\nexport const acceptSelectedActionCommand = 'acceptSelectedCodeAction';\nexport const previewSelectedActionCommand = 'previewSelectedCodeAction';\nclass HeaderRenderer {\n    get templateId() { return \"header\" /* ActionListItemKind.Header */; }\n    renderTemplate(container) {\n        container.classList.add('group-header');\n        const text = document.createElement('span');\n        container.append(text);\n        return { container, text };\n    }\n    renderElement(element, _index, templateData) {\n        var _a, _b;\n        templateData.text.textContent = (_b = (_a = element.group) === null || _a === void 0 ? void 0 : _a.title) !== null && _b !== void 0 ? _b : '';\n    }\n    disposeTemplate(_templateData) {\n        // noop\n    }\n}\nlet ActionItemRenderer = class ActionItemRenderer {\n    get templateId() { return \"action\" /* ActionListItemKind.Action */; }\n    constructor(_supportsPreview, _keybindingService) {\n        this._supportsPreview = _supportsPreview;\n        this._keybindingService = _keybindingService;\n    }\n    renderTemplate(container) {\n        container.classList.add(this.templateId);\n        const icon = document.createElement('div');\n        icon.className = 'icon';\n        container.append(icon);\n        const text = document.createElement('span');\n        text.className = 'title';\n        container.append(text);\n        const keybinding = new KeybindingLabel(container, OS);\n        return { container, icon, text, keybinding };\n    }\n    renderElement(element, _index, data) {\n        var _a, _b, _c;\n        if ((_a = element.group) === null || _a === void 0 ? void 0 : _a.icon) {\n            data.icon.className = ThemeIcon.asClassName(element.group.icon);\n            if (element.group.icon.color) {\n                data.icon.style.color = asCssVariable(element.group.icon.color.id);\n            }\n        }\n        else {\n            data.icon.className = ThemeIcon.asClassName(Codicon.lightBulb);\n            data.icon.style.color = 'var(--vscode-editorLightBulb-foreground)';\n        }\n        if (!element.item || !element.label) {\n            return;\n        }\n        data.text.textContent = stripNewlines(element.label);\n        data.keybinding.set(element.keybinding);\n        dom.setVisibility(!!element.keybinding, data.keybinding.element);\n        const actionTitle = (_b = this._keybindingService.lookupKeybinding(acceptSelectedActionCommand)) === null || _b === void 0 ? void 0 : _b.getLabel();\n        const previewTitle = (_c = this._keybindingService.lookupKeybinding(previewSelectedActionCommand)) === null || _c === void 0 ? void 0 : _c.getLabel();\n        data.container.classList.toggle('option-disabled', element.disabled);\n        if (element.disabled) {\n            data.container.title = element.label;\n        }\n        else if (actionTitle && previewTitle) {\n            if (this._supportsPreview && element.canPreview) {\n                data.container.title = localize({ key: 'label-preview', comment: ['placeholders are keybindings, e.g \"F2 to Apply, Shift+F2 to Preview\"'] }, \"{0} to Apply, {1} to Preview\", actionTitle, previewTitle);\n            }\n            else {\n                data.container.title = localize({ key: 'label', comment: ['placeholder is a keybinding, e.g \"F2 to Apply\"'] }, \"{0} to Apply\", actionTitle);\n            }\n        }\n        else {\n            data.container.title = '';\n        }\n    }\n    disposeTemplate(_templateData) {\n        _templateData.keybinding.dispose();\n    }\n};\nActionItemRenderer = __decorate([\n    __param(1, IKeybindingService)\n], ActionItemRenderer);\nclass AcceptSelectedEvent extends UIEvent {\n    constructor() { super('acceptSelectedAction'); }\n}\nclass PreviewSelectedEvent extends UIEvent {\n    constructor() { super('previewSelectedAction'); }\n}\nfunction getKeyboardNavigationLabel(item) {\n    // Filter out header vs. action\n    if (item.kind === 'action') {\n        return item.label;\n    }\n    return undefined;\n}\nlet ActionList = class ActionList extends Disposable {\n    constructor(user, preview, items, _delegate, _contextViewService, _keybindingService) {\n        super();\n        this._delegate = _delegate;\n        this._contextViewService = _contextViewService;\n        this._keybindingService = _keybindingService;\n        this._actionLineHeight = 24;\n        this._headerLineHeight = 26;\n        this.cts = this._register(new CancellationTokenSource());\n        this.domNode = document.createElement('div');\n        this.domNode.classList.add('actionList');\n        const virtualDelegate = {\n            getHeight: element => element.kind === \"header\" /* ActionListItemKind.Header */ ? this._headerLineHeight : this._actionLineHeight,\n            getTemplateId: element => element.kind\n        };\n        this._list = this._register(new List(user, this.domNode, virtualDelegate, [\n            new ActionItemRenderer(preview, this._keybindingService),\n            new HeaderRenderer(),\n        ], {\n            keyboardSupport: false,\n            typeNavigationEnabled: true,\n            keyboardNavigationLabelProvider: { getKeyboardNavigationLabel },\n            accessibilityProvider: {\n                getAriaLabel: element => {\n                    if (element.kind === \"action\" /* ActionListItemKind.Action */) {\n                        let label = element.label ? stripNewlines(element === null || element === void 0 ? void 0 : element.label) : '';\n                        if (element.disabled) {\n                            label = localize({ key: 'customQuickFixWidget.labels', comment: [`Action widget labels for accessibility.`] }, \"{0}, Disabled Reason: {1}\", label, element.disabled);\n                        }\n                        return label;\n                    }\n                    return null;\n                },\n                getWidgetAriaLabel: () => localize({ key: 'customQuickFixWidget', comment: [`An action widget option`] }, \"Action Widget\"),\n                getRole: (e) => e.kind === \"action\" /* ActionListItemKind.Action */ ? 'option' : 'separator',\n                getWidgetRole: () => 'listbox',\n            },\n        }));\n        this._list.style(defaultListStyles);\n        this._register(this._list.onMouseClick(e => this.onListClick(e)));\n        this._register(this._list.onMouseOver(e => this.onListHover(e)));\n        this._register(this._list.onDidChangeFocus(() => this.onFocus()));\n        this._register(this._list.onDidChangeSelection(e => this.onListSelection(e)));\n        this._allMenuItems = items;\n        this._list.splice(0, this._list.length, this._allMenuItems);\n        if (this._list.length) {\n            this.focusNext();\n        }\n    }\n    focusCondition(element) {\n        return !element.disabled && element.kind === \"action\" /* ActionListItemKind.Action */;\n    }\n    hide(didCancel) {\n        this._delegate.onHide(didCancel);\n        this.cts.cancel();\n        this._contextViewService.hideContextView();\n    }\n    layout(minWidth) {\n        // Updating list height, depending on how many separators and headers there are.\n        const numHeaders = this._allMenuItems.filter(item => item.kind === 'header').length;\n        const itemsHeight = this._allMenuItems.length * this._actionLineHeight;\n        const heightWithHeaders = itemsHeight + numHeaders * this._headerLineHeight - numHeaders * this._actionLineHeight;\n        this._list.layout(heightWithHeaders);\n        let maxWidth = minWidth;\n        if (this._allMenuItems.length >= 50) {\n            maxWidth = 380;\n        }\n        else {\n            // For finding width dynamically (not using resize observer)\n            const itemWidths = this._allMenuItems.map((_, index) => {\n                const element = this.domNode.ownerDocument.getElementById(this._list.getElementID(index));\n                if (element) {\n                    element.style.width = 'auto';\n                    const width = element.getBoundingClientRect().width;\n                    element.style.width = '';\n                    return width;\n                }\n                return 0;\n            });\n            // resize observer - can be used in the future since list widget supports dynamic height but not width\n            maxWidth = Math.max(...itemWidths, minWidth);\n        }\n        const maxVhPrecentage = 0.7;\n        const height = Math.min(heightWithHeaders, this.domNode.ownerDocument.body.clientHeight * maxVhPrecentage);\n        this._list.layout(height, maxWidth);\n        this.domNode.style.height = `${height}px`;\n        this._list.domFocus();\n        return maxWidth;\n    }\n    focusPrevious() {\n        this._list.focusPrevious(1, true, undefined, this.focusCondition);\n    }\n    focusNext() {\n        this._list.focusNext(1, true, undefined, this.focusCondition);\n    }\n    acceptSelected(preview) {\n        const focused = this._list.getFocus();\n        if (focused.length === 0) {\n            return;\n        }\n        const focusIndex = focused[0];\n        const element = this._list.element(focusIndex);\n        if (!this.focusCondition(element)) {\n            return;\n        }\n        const event = preview ? new PreviewSelectedEvent() : new AcceptSelectedEvent();\n        this._list.setSelection([focusIndex], event);\n    }\n    onListSelection(e) {\n        if (!e.elements.length) {\n            return;\n        }\n        const element = e.elements[0];\n        if (element.item && this.focusCondition(element)) {\n            this._delegate.onSelect(element.item, e.browserEvent instanceof PreviewSelectedEvent);\n        }\n        else {\n            this._list.setSelection([]);\n        }\n    }\n    onFocus() {\n        var _a, _b;\n        const focused = this._list.getFocus();\n        if (focused.length === 0) {\n            return;\n        }\n        const focusIndex = focused[0];\n        const element = this._list.element(focusIndex);\n        (_b = (_a = this._delegate).onFocus) === null || _b === void 0 ? void 0 : _b.call(_a, element.item);\n    }\n    async onListHover(e) {\n        const element = e.element;\n        if (element && element.item && this.focusCondition(element)) {\n            if (this._delegate.onHover && !element.disabled && element.kind === \"action\" /* ActionListItemKind.Action */) {\n                const result = await this._delegate.onHover(element.item, this.cts.token);\n                element.canPreview = result ? result.canPreview : undefined;\n            }\n            if (e.index) {\n                this._list.splice(e.index, 1, [element]);\n            }\n        }\n        this._list.setFocus(typeof e.index === 'number' ? [e.index] : []);\n    }\n    onListClick(e) {\n        if (e.element && this.focusCondition(e.element)) {\n            this._list.setFocus([]);\n        }\n    }\n};\nActionList = __decorate([\n    __param(4, IContextViewService),\n    __param(5, IKeybindingService)\n], ActionList);\nexport { ActionList };\nfunction stripNewlines(str) {\n    return str.replace(/\\r\\n|\\r|\\n/g, ' ');\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/actionWidget/browser/actionWidget.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.action-widget {\n\tfont-size: 13px;\n\tborder-radius: 0;\n\tmin-width: 160px;\n\tmax-width: 80vw;\n\tz-index: 40;\n\tdisplay: block;\n\twidth: 100%;\n\tborder: 1px solid var(--vscode-editorWidget-border) !important;\n\tborder-radius: 2px;\n\tbackground-color: var(--vscode-editorWidget-background);\n\tcolor: var(--vscode-editorWidget-foreground);\n}\n\n.context-view-block {\n\tposition: fixed;\n\tcursor: initial;\n\tleft: 0;\n\ttop: 0;\n\twidth: 100%;\n\theight: 100%;\n\tz-index: -1;\n}\n\n.context-view-pointerBlock {\n\tposition: fixed;\n\tcursor: initial;\n\tleft: 0;\n\ttop: 0;\n\twidth: 100%;\n\theight: 100%;\n\tz-index: 2;\n}\n\n.action-widget .monaco-list {\n\tuser-select: none;\n\t-webkit-user-select: none;\n\tborder: none !important;\n\tborder-width: 0 !important;\n}\n\n.action-widget .monaco-list:focus:before {\n\toutline: 0 !important;\n}\n\n.action-widget .monaco-list .monaco-scrollable-element {\n\toverflow: visible;\n}\n\n/** Styles for each row in the list element **/\n.action-widget .monaco-list .monaco-list-row {\n\tpadding: 0 10px;\n\twhite-space: nowrap;\n\tcursor: pointer;\n\ttouch-action: none;\n\twidth: 100%;\n}\n\n.action-widget .monaco-list .monaco-list-row.action.focused:not(.option-disabled) {\n\tbackground-color: var(--vscode-quickInputList-focusBackground) !important;\n\tcolor: var(--vscode-quickInputList-focusForeground);\n\toutline: 1px solid var(--vscode-menu-selectionBorder, transparent);\n\toutline-offset: -1px;\n}\n\n.action-widget .monaco-list-row.group-header {\n\tcolor: var(--vscode-descriptionForeground) !important;\n\tfont-weight: 600;\n}\n\n.action-widget .monaco-list .group-header,\n.action-widget .monaco-list .option-disabled,\n.action-widget .monaco-list .option-disabled:before,\n.action-widget .monaco-list .option-disabled .focused,\n.action-widget .monaco-list .option-disabled .focused:before {\n\tcursor: default !important;\n\t-webkit-touch-callout: none;\n\t-webkit-user-select: none;\n\tuser-select: none;\n\tbackground-color: transparent !important;\n\toutline: 0 solid !important;\n}\n\n.action-widget .monaco-list-row.action {\n\tdisplay: flex;\n\tgap: 6px;\n\talign-items: center;\n}\n\n.action-widget .monaco-list-row.action.option-disabled,\n.action-widget .monaco-list:focus .monaco-list-row.focused.action.option-disabled,\n.action-widget .monaco-list-row.action.option-disabled .codicon,\n.action-widget .monaco-list:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused).option-disabled {\n\tcolor: var(--vscode-disabledForeground);\n}\n\n\n.action-widget .monaco-list-row.action:not(.option-disabled) .codicon {\n\tcolor: inherit;\n}\n\n.action-widget .monaco-list-row.action .title {\n\tflex: 1;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n}\n\n.action-widget .monaco-list-row.action .monaco-keybinding > .monaco-keybinding-key {\n\t\tbackground-color: var(--vscode-keybindingLabel-background);\n\t\tcolor: var(--vscode-keybindingLabel-foreground);\n\t\tborder-style: solid;\n\t\tborder-width: 1px;\n\t\tborder-radius: 3px;\n\t\tborder-color: var(--vscode-keybindingLabel-border);\n\t\tborder-bottom-color: var(--vscode-keybindingLabel-bottomBorder);\n\t\tbox-shadow: inset 0 -1px 0 var(--vscode-widget-shadow);\n}\n\n/* Action bar */\n\n.action-widget .action-widget-action-bar {\n\tbackground-color: var(--vscode-editorHoverWidget-statusBarBackground);\n\tborder-top: 1px solid var(--vscode-editorHoverWidget-border);\n}\n\n.action-widget .action-widget-action-bar::before {\n\tdisplay: block;\n\tcontent: \"\";\n\twidth: 100%;\n}\n\n.action-widget .action-widget-action-bar .actions-container {\n\tpadding: 0 8px;\n}\n\n.action-widget-action-bar .action-label {\n\tcolor: var(--vscode-textLink-activeForeground);\n\tfont-size: 12px;\n\tline-height: 22px;\n\tpadding: 0;\n\tpointer-events: all;\n}\n\n.action-widget-action-bar .action-item {\n\tmargin-right: 16px;\n\tpointer-events: none;\n}\n\n.action-widget-action-bar .action-label:hover {\n\tbackground-color: transparent !important;\n}\n\n.monaco-action-bar .actions-container.highlight-toggled .action-label.checked {\n\t/* The important gives this rule precedence over the hover rule. */\n\tbackground: var(--vscode-actionBar-toggledBackground) !important;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/actionWidget/browser/actionWidget.js",
    "content": "var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\n/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../../base/browser/dom.js';\nimport { ActionBar } from '../../../base/browser/ui/actionbar/actionbar.js';\nimport { Disposable, DisposableStore, MutableDisposable } from '../../../base/common/lifecycle.js';\nimport './actionWidget.css';\nimport { localize, localize2 } from '../../../nls.js';\nimport { acceptSelectedActionCommand, ActionList, previewSelectedActionCommand } from './actionList.js';\nimport { Action2, registerAction2 } from '../../actions/common/actions.js';\nimport { IContextKeyService, RawContextKey } from '../../contextkey/common/contextkey.js';\nimport { IContextViewService } from '../../contextview/browser/contextView.js';\nimport { registerSingleton } from '../../instantiation/common/extensions.js';\nimport { createDecorator, IInstantiationService } from '../../instantiation/common/instantiation.js';\nimport { inputActiveOptionBackground, registerColor } from '../../theme/common/colorRegistry.js';\nregisterColor('actionBar.toggledBackground', { dark: inputActiveOptionBackground, light: inputActiveOptionBackground, hcDark: inputActiveOptionBackground, hcLight: inputActiveOptionBackground, }, localize('actionBar.toggledBackground', 'Background color for toggled action items in action bar.'));\nconst ActionWidgetContextKeys = {\n    Visible: new RawContextKey('codeActionMenuVisible', false, localize('codeActionMenuVisible', \"Whether the action widget list is visible\"))\n};\nexport const IActionWidgetService = createDecorator('actionWidgetService');\nlet ActionWidgetService = class ActionWidgetService extends Disposable {\n    get isVisible() {\n        return ActionWidgetContextKeys.Visible.getValue(this._contextKeyService) || false;\n    }\n    constructor(_contextViewService, _contextKeyService, _instantiationService) {\n        super();\n        this._contextViewService = _contextViewService;\n        this._contextKeyService = _contextKeyService;\n        this._instantiationService = _instantiationService;\n        this._list = this._register(new MutableDisposable());\n    }\n    show(user, supportsPreview, items, delegate, anchor, container, actionBarActions) {\n        const visibleContext = ActionWidgetContextKeys.Visible.bindTo(this._contextKeyService);\n        const list = this._instantiationService.createInstance(ActionList, user, supportsPreview, items, delegate);\n        this._contextViewService.showContextView({\n            getAnchor: () => anchor,\n            render: (container) => {\n                visibleContext.set(true);\n                return this._renderWidget(container, list, actionBarActions !== null && actionBarActions !== void 0 ? actionBarActions : []);\n            },\n            onHide: (didCancel) => {\n                visibleContext.reset();\n                this._onWidgetClosed(didCancel);\n            },\n        }, container, false);\n    }\n    acceptSelected(preview) {\n        var _a;\n        (_a = this._list.value) === null || _a === void 0 ? void 0 : _a.acceptSelected(preview);\n    }\n    focusPrevious() {\n        var _a, _b;\n        (_b = (_a = this._list) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.focusPrevious();\n    }\n    focusNext() {\n        var _a, _b;\n        (_b = (_a = this._list) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.focusNext();\n    }\n    hide(didCancel) {\n        var _a;\n        (_a = this._list.value) === null || _a === void 0 ? void 0 : _a.hide(didCancel);\n        this._list.clear();\n    }\n    _renderWidget(element, list, actionBarActions) {\n        var _a;\n        const widget = document.createElement('div');\n        widget.classList.add('action-widget');\n        element.appendChild(widget);\n        this._list.value = list;\n        if (this._list.value) {\n            widget.appendChild(this._list.value.domNode);\n        }\n        else {\n            throw new Error('List has no value');\n        }\n        const renderDisposables = new DisposableStore();\n        // Invisible div to block mouse interaction in the rest of the UI\n        const menuBlock = document.createElement('div');\n        const block = element.appendChild(menuBlock);\n        block.classList.add('context-view-block');\n        renderDisposables.add(dom.addDisposableListener(block, dom.EventType.MOUSE_DOWN, e => e.stopPropagation()));\n        // Invisible div to block mouse interaction with the menu\n        const pointerBlockDiv = document.createElement('div');\n        const pointerBlock = element.appendChild(pointerBlockDiv);\n        pointerBlock.classList.add('context-view-pointerBlock');\n        // Removes block on click INSIDE widget or ANY mouse movement\n        renderDisposables.add(dom.addDisposableListener(pointerBlock, dom.EventType.POINTER_MOVE, () => pointerBlock.remove()));\n        renderDisposables.add(dom.addDisposableListener(pointerBlock, dom.EventType.MOUSE_DOWN, () => pointerBlock.remove()));\n        // Action bar\n        let actionBarWidth = 0;\n        if (actionBarActions.length) {\n            const actionBar = this._createActionBar('.action-widget-action-bar', actionBarActions);\n            if (actionBar) {\n                widget.appendChild(actionBar.getContainer().parentElement);\n                renderDisposables.add(actionBar);\n                actionBarWidth = actionBar.getContainer().offsetWidth;\n            }\n        }\n        const width = (_a = this._list.value) === null || _a === void 0 ? void 0 : _a.layout(actionBarWidth);\n        widget.style.width = `${width}px`;\n        const focusTracker = renderDisposables.add(dom.trackFocus(element));\n        renderDisposables.add(focusTracker.onDidBlur(() => this.hide(true)));\n        return renderDisposables;\n    }\n    _createActionBar(className, actions) {\n        if (!actions.length) {\n            return undefined;\n        }\n        const container = dom.$(className);\n        const actionBar = new ActionBar(container);\n        actionBar.push(actions, { icon: false, label: true });\n        return actionBar;\n    }\n    _onWidgetClosed(didCancel) {\n        var _a;\n        (_a = this._list.value) === null || _a === void 0 ? void 0 : _a.hide(didCancel);\n    }\n};\nActionWidgetService = __decorate([\n    __param(0, IContextViewService),\n    __param(1, IContextKeyService),\n    __param(2, IInstantiationService)\n], ActionWidgetService);\nregisterSingleton(IActionWidgetService, ActionWidgetService, 1 /* InstantiationType.Delayed */);\nconst weight = 100 /* KeybindingWeight.EditorContrib */ + 1000;\nregisterAction2(class extends Action2 {\n    constructor() {\n        super({\n            id: 'hideCodeActionWidget',\n            title: localize2('hideCodeActionWidget.title', \"Hide action widget\"),\n            precondition: ActionWidgetContextKeys.Visible,\n            keybinding: {\n                weight,\n                primary: 9 /* KeyCode.Escape */,\n                secondary: [1024 /* KeyMod.Shift */ | 9 /* KeyCode.Escape */]\n            },\n        });\n    }\n    run(accessor) {\n        accessor.get(IActionWidgetService).hide(true);\n    }\n});\nregisterAction2(class extends Action2 {\n    constructor() {\n        super({\n            id: 'selectPrevCodeAction',\n            title: localize2('selectPrevCodeAction.title', \"Select previous action\"),\n            precondition: ActionWidgetContextKeys.Visible,\n            keybinding: {\n                weight,\n                primary: 16 /* KeyCode.UpArrow */,\n                secondary: [2048 /* KeyMod.CtrlCmd */ | 16 /* KeyCode.UpArrow */],\n                mac: { primary: 16 /* KeyCode.UpArrow */, secondary: [2048 /* KeyMod.CtrlCmd */ | 16 /* KeyCode.UpArrow */, 256 /* KeyMod.WinCtrl */ | 46 /* KeyCode.KeyP */] },\n            }\n        });\n    }\n    run(accessor) {\n        const widgetService = accessor.get(IActionWidgetService);\n        if (widgetService instanceof ActionWidgetService) {\n            widgetService.focusPrevious();\n        }\n    }\n});\nregisterAction2(class extends Action2 {\n    constructor() {\n        super({\n            id: 'selectNextCodeAction',\n            title: localize2('selectNextCodeAction.title', \"Select next action\"),\n            precondition: ActionWidgetContextKeys.Visible,\n            keybinding: {\n                weight,\n                primary: 18 /* KeyCode.DownArrow */,\n                secondary: [2048 /* KeyMod.CtrlCmd */ | 18 /* KeyCode.DownArrow */],\n                mac: { primary: 18 /* KeyCode.DownArrow */, secondary: [2048 /* KeyMod.CtrlCmd */ | 18 /* KeyCode.DownArrow */, 256 /* KeyMod.WinCtrl */ | 44 /* KeyCode.KeyN */] }\n            }\n        });\n    }\n    run(accessor) {\n        const widgetService = accessor.get(IActionWidgetService);\n        if (widgetService instanceof ActionWidgetService) {\n            widgetService.focusNext();\n        }\n    }\n});\nregisterAction2(class extends Action2 {\n    constructor() {\n        super({\n            id: acceptSelectedActionCommand,\n            title: localize2('acceptSelected.title', \"Accept selected action\"),\n            precondition: ActionWidgetContextKeys.Visible,\n            keybinding: {\n                weight,\n                primary: 3 /* KeyCode.Enter */,\n                secondary: [2048 /* KeyMod.CtrlCmd */ | 89 /* KeyCode.Period */],\n            }\n        });\n    }\n    run(accessor) {\n        const widgetService = accessor.get(IActionWidgetService);\n        if (widgetService instanceof ActionWidgetService) {\n            widgetService.acceptSelected();\n        }\n    }\n});\nregisterAction2(class extends Action2 {\n    constructor() {\n        super({\n            id: previewSelectedActionCommand,\n            title: localize2('previewSelected.title', \"Preview selected action\"),\n            precondition: ActionWidgetContextKeys.Visible,\n            keybinding: {\n                weight,\n                primary: 2048 /* KeyMod.CtrlCmd */ | 3 /* KeyCode.Enter */,\n            }\n        });\n    }\n    run(accessor) {\n        const widgetService = accessor.get(IActionWidgetService);\n        if (widgetService instanceof ActionWidgetService) {\n            widgetService.acceptSelected(true);\n        }\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/actionWidget/common/actionWidget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport {};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/actions/browser/menuEntryActionViewItem.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-action-bar .action-item.menu-entry .action-label.icon {\n\twidth: 16px;\n\theight: 16px;\n\tbackground-repeat: no-repeat;\n\tbackground-position: 50%;\n\tbackground-size: 16px;\n}\n\n.monaco-dropdown-with-default {\n\tdisplay: flex !important;\n\tflex-direction: row;\n\tborder-radius: 5px;\n}\n\n.monaco-dropdown-with-default > .action-container > .action-label {\n\tmargin-right: 0;\n}\n\n.monaco-dropdown-with-default > .action-container.menu-entry > .action-label.icon {\n\twidth: 16px;\n\theight: 16px;\n\tbackground-repeat: no-repeat;\n\tbackground-position: 50%;\n\tbackground-size: 16px;\n}\n\n.monaco-dropdown-with-default:hover {\n\tbackground-color: var(--vscode-toolbar-hoverBackground);\n}\n\n.monaco-dropdown-with-default > .dropdown-action-container > .monaco-dropdown > .dropdown-label .codicon[class*='codicon-'] {\n\tfont-size: 12px;\n\tpadding-left: 0px;\n\tpadding-right: 0px;\n\tline-height: 16px;\n\tmargin-left: -3px;\n}\n\n.monaco-dropdown-with-default > .dropdown-action-container > .monaco-dropdown > .dropdown-label > .action-label {\n\tdisplay: block;\n\tbackground-size: 16px;\n\tbackground-position: center center;\n\tbackground-repeat: no-repeat;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/actions/browser/menuEntryActionViewItem.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { $, addDisposableListener, append, asCSSUrl, EventType, ModifierKeyEmitter, prepend } from '../../../base/browser/dom.js';\nimport { StandardKeyboardEvent } from '../../../base/browser/keyboardEvent.js';\nimport { ActionViewItem, BaseActionViewItem, SelectActionViewItem } from '../../../base/browser/ui/actionbar/actionViewItems.js';\nimport { DropdownMenuActionViewItem } from '../../../base/browser/ui/dropdown/dropdownActionViewItem.js';\nimport { ActionRunner, Separator, SubmenuAction } from '../../../base/common/actions.js';\nimport { UILabelProvider } from '../../../base/common/keybindingLabels.js';\nimport { combinedDisposable, MutableDisposable, toDisposable } from '../../../base/common/lifecycle.js';\nimport { isLinux, isWindows, OS } from '../../../base/common/platform.js';\nimport './menuEntryActionViewItem.css';\nimport { localize } from '../../../nls.js';\nimport { IMenuService, MenuItemAction, SubmenuItemAction } from '../common/actions.js';\nimport { isICommandActionToggleInfo } from '../../action/common/action.js';\nimport { IContextKeyService } from '../../contextkey/common/contextkey.js';\nimport { IContextMenuService, IContextViewService } from '../../contextview/browser/contextView.js';\nimport { IInstantiationService } from '../../instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../keybinding/common/keybinding.js';\nimport { INotificationService } from '../../notification/common/notification.js';\nimport { IStorageService } from '../../storage/common/storage.js';\nimport { IThemeService } from '../../theme/common/themeService.js';\nimport { ThemeIcon } from '../../../base/common/themables.js';\nimport { isDark } from '../../theme/common/theme.js';\nimport { assertType } from '../../../base/common/types.js';\nimport { asCssVariable, selectBorder } from '../../theme/common/colorRegistry.js';\nimport { defaultSelectBoxStyles } from '../../theme/browser/defaultStyles.js';\nimport { IAccessibilityService } from '../../accessibility/common/accessibility.js';\nexport function createAndFillInContextMenuActions(menu, options, target, primaryGroup) {\n    const groups = menu.getActions(options);\n    const modifierKeyEmitter = ModifierKeyEmitter.getInstance();\n    const useAlternativeActions = modifierKeyEmitter.keyStatus.altKey || ((isWindows || isLinux) && modifierKeyEmitter.keyStatus.shiftKey);\n    fillInActions(groups, target, useAlternativeActions, primaryGroup ? actionGroup => actionGroup === primaryGroup : actionGroup => actionGroup === 'navigation');\n}\nexport function createAndFillInActionBarActions(menu, options, target, primaryGroup, shouldInlineSubmenu, useSeparatorsInPrimaryActions) {\n    const groups = menu.getActions(options);\n    const isPrimaryAction = typeof primaryGroup === 'string' ? (actionGroup) => actionGroup === primaryGroup : primaryGroup;\n    // Action bars handle alternative actions on their own so the alternative actions should be ignored\n    fillInActions(groups, target, false, isPrimaryAction, shouldInlineSubmenu, useSeparatorsInPrimaryActions);\n}\nfunction fillInActions(groups, target, useAlternativeActions, isPrimaryAction = actionGroup => actionGroup === 'navigation', shouldInlineSubmenu = () => false, useSeparatorsInPrimaryActions = false) {\n    let primaryBucket;\n    let secondaryBucket;\n    if (Array.isArray(target)) {\n        primaryBucket = target;\n        secondaryBucket = target;\n    }\n    else {\n        primaryBucket = target.primary;\n        secondaryBucket = target.secondary;\n    }\n    const submenuInfo = new Set();\n    for (const [group, actions] of groups) {\n        let target;\n        if (isPrimaryAction(group)) {\n            target = primaryBucket;\n            if (target.length > 0 && useSeparatorsInPrimaryActions) {\n                target.push(new Separator());\n            }\n        }\n        else {\n            target = secondaryBucket;\n            if (target.length > 0) {\n                target.push(new Separator());\n            }\n        }\n        for (let action of actions) {\n            if (useAlternativeActions) {\n                action = action instanceof MenuItemAction && action.alt ? action.alt : action;\n            }\n            const newLen = target.push(action);\n            // keep submenu info for later inlining\n            if (action instanceof SubmenuAction) {\n                submenuInfo.add({ group, action, index: newLen - 1 });\n            }\n        }\n    }\n    // ask the outside if submenu should be inlined or not. only ask when\n    // there would be enough space\n    for (const { group, action, index } of submenuInfo) {\n        const target = isPrimaryAction(group) ? primaryBucket : secondaryBucket;\n        // inlining submenus with length 0 or 1 is easy,\n        // larger submenus need to be checked with the overall limit\n        const submenuActions = action.actions;\n        if (shouldInlineSubmenu(action, group, target.length)) {\n            target.splice(index, 1, ...submenuActions);\n        }\n    }\n}\nlet MenuEntryActionViewItem = class MenuEntryActionViewItem extends ActionViewItem {\n    constructor(action, options, _keybindingService, _notificationService, _contextKeyService, _themeService, _contextMenuService, _accessibilityService) {\n        super(undefined, action, { icon: !!(action.class || action.item.icon), label: !action.class && !action.item.icon, draggable: options === null || options === void 0 ? void 0 : options.draggable, keybinding: options === null || options === void 0 ? void 0 : options.keybinding, hoverDelegate: options === null || options === void 0 ? void 0 : options.hoverDelegate });\n        this._keybindingService = _keybindingService;\n        this._notificationService = _notificationService;\n        this._contextKeyService = _contextKeyService;\n        this._themeService = _themeService;\n        this._contextMenuService = _contextMenuService;\n        this._accessibilityService = _accessibilityService;\n        this._wantsAltCommand = false;\n        this._itemClassDispose = this._register(new MutableDisposable());\n        this._altKey = ModifierKeyEmitter.getInstance();\n    }\n    get _menuItemAction() {\n        return this._action;\n    }\n    get _commandAction() {\n        return this._wantsAltCommand && this._menuItemAction.alt || this._menuItemAction;\n    }\n    async onClick(event) {\n        event.preventDefault();\n        event.stopPropagation();\n        try {\n            await this.actionRunner.run(this._commandAction, this._context);\n        }\n        catch (err) {\n            this._notificationService.error(err);\n        }\n    }\n    render(container) {\n        super.render(container);\n        container.classList.add('menu-entry');\n        if (this.options.icon) {\n            this._updateItemClass(this._menuItemAction.item);\n        }\n        if (this._menuItemAction.alt) {\n            let isMouseOver = false;\n            const updateAltState = () => {\n                var _a;\n                const wantsAltCommand = !!((_a = this._menuItemAction.alt) === null || _a === void 0 ? void 0 : _a.enabled) &&\n                    (!this._accessibilityService.isMotionReduced() || isMouseOver) && (this._altKey.keyStatus.altKey ||\n                    (this._altKey.keyStatus.shiftKey && isMouseOver));\n                if (wantsAltCommand !== this._wantsAltCommand) {\n                    this._wantsAltCommand = wantsAltCommand;\n                    this.updateLabel();\n                    this.updateTooltip();\n                    this.updateClass();\n                }\n            };\n            this._register(this._altKey.event(updateAltState));\n            this._register(addDisposableListener(container, 'mouseleave', _ => {\n                isMouseOver = false;\n                updateAltState();\n            }));\n            this._register(addDisposableListener(container, 'mouseenter', _ => {\n                isMouseOver = true;\n                updateAltState();\n            }));\n            updateAltState();\n        }\n    }\n    updateLabel() {\n        if (this.options.label && this.label) {\n            this.label.textContent = this._commandAction.label;\n        }\n    }\n    getTooltip() {\n        var _a;\n        const keybinding = this._keybindingService.lookupKeybinding(this._commandAction.id, this._contextKeyService);\n        const keybindingLabel = keybinding && keybinding.getLabel();\n        const tooltip = this._commandAction.tooltip || this._commandAction.label;\n        let title = keybindingLabel\n            ? localize('titleAndKb', \"{0} ({1})\", tooltip, keybindingLabel)\n            : tooltip;\n        if (!this._wantsAltCommand && ((_a = this._menuItemAction.alt) === null || _a === void 0 ? void 0 : _a.enabled)) {\n            const altTooltip = this._menuItemAction.alt.tooltip || this._menuItemAction.alt.label;\n            const altKeybinding = this._keybindingService.lookupKeybinding(this._menuItemAction.alt.id, this._contextKeyService);\n            const altKeybindingLabel = altKeybinding && altKeybinding.getLabel();\n            const altTitleSection = altKeybindingLabel\n                ? localize('titleAndKb', \"{0} ({1})\", altTooltip, altKeybindingLabel)\n                : altTooltip;\n            title = localize('titleAndKbAndAlt', \"{0}\\n[{1}] {2}\", title, UILabelProvider.modifierLabels[OS].altKey, altTitleSection);\n        }\n        return title;\n    }\n    updateClass() {\n        if (this.options.icon) {\n            if (this._commandAction !== this._menuItemAction) {\n                if (this._menuItemAction.alt) {\n                    this._updateItemClass(this._menuItemAction.alt.item);\n                }\n            }\n            else {\n                this._updateItemClass(this._menuItemAction.item);\n            }\n        }\n    }\n    _updateItemClass(item) {\n        this._itemClassDispose.value = undefined;\n        const { element, label } = this;\n        if (!element || !label) {\n            return;\n        }\n        const icon = this._commandAction.checked && isICommandActionToggleInfo(item.toggled) && item.toggled.icon ? item.toggled.icon : item.icon;\n        if (!icon) {\n            return;\n        }\n        if (ThemeIcon.isThemeIcon(icon)) {\n            // theme icons\n            const iconClasses = ThemeIcon.asClassNameArray(icon);\n            label.classList.add(...iconClasses);\n            this._itemClassDispose.value = toDisposable(() => {\n                label.classList.remove(...iconClasses);\n            });\n        }\n        else {\n            // icon path/url\n            label.style.backgroundImage = (isDark(this._themeService.getColorTheme().type)\n                ? asCSSUrl(icon.dark)\n                : asCSSUrl(icon.light));\n            label.classList.add('icon');\n            this._itemClassDispose.value = combinedDisposable(toDisposable(() => {\n                label.style.backgroundImage = '';\n                label.classList.remove('icon');\n            }), this._themeService.onDidColorThemeChange(() => {\n                // refresh when the theme changes in case we go between dark <-> light\n                this.updateClass();\n            }));\n        }\n    }\n};\nMenuEntryActionViewItem = __decorate([\n    __param(2, IKeybindingService),\n    __param(3, INotificationService),\n    __param(4, IContextKeyService),\n    __param(5, IThemeService),\n    __param(6, IContextMenuService),\n    __param(7, IAccessibilityService)\n], MenuEntryActionViewItem);\nexport { MenuEntryActionViewItem };\nlet SubmenuEntryActionViewItem = class SubmenuEntryActionViewItem extends DropdownMenuActionViewItem {\n    constructor(action, options, _keybindingService, _contextMenuService, _themeService) {\n        var _a, _b, _c;\n        const dropdownOptions = {\n            ...options,\n            menuAsChild: (_a = options === null || options === void 0 ? void 0 : options.menuAsChild) !== null && _a !== void 0 ? _a : false,\n            classNames: (_b = options === null || options === void 0 ? void 0 : options.classNames) !== null && _b !== void 0 ? _b : (ThemeIcon.isThemeIcon(action.item.icon) ? ThemeIcon.asClassName(action.item.icon) : undefined),\n            keybindingProvider: (_c = options === null || options === void 0 ? void 0 : options.keybindingProvider) !== null && _c !== void 0 ? _c : (action => _keybindingService.lookupKeybinding(action.id))\n        };\n        super(action, { getActions: () => action.actions }, _contextMenuService, dropdownOptions);\n        this._keybindingService = _keybindingService;\n        this._contextMenuService = _contextMenuService;\n        this._themeService = _themeService;\n    }\n    render(container) {\n        super.render(container);\n        assertType(this.element);\n        container.classList.add('menu-entry');\n        const action = this._action;\n        const { icon } = action.item;\n        if (icon && !ThemeIcon.isThemeIcon(icon)) {\n            this.element.classList.add('icon');\n            const setBackgroundImage = () => {\n                if (this.element) {\n                    this.element.style.backgroundImage = (isDark(this._themeService.getColorTheme().type)\n                        ? asCSSUrl(icon.dark)\n                        : asCSSUrl(icon.light));\n                }\n            };\n            setBackgroundImage();\n            this._register(this._themeService.onDidColorThemeChange(() => {\n                // refresh when the theme changes in case we go between dark <-> light\n                setBackgroundImage();\n            }));\n        }\n    }\n};\nSubmenuEntryActionViewItem = __decorate([\n    __param(2, IKeybindingService),\n    __param(3, IContextMenuService),\n    __param(4, IThemeService)\n], SubmenuEntryActionViewItem);\nexport { SubmenuEntryActionViewItem };\nlet DropdownWithDefaultActionViewItem = class DropdownWithDefaultActionViewItem extends BaseActionViewItem {\n    constructor(submenuAction, options, _keybindingService, _notificationService, _contextMenuService, _menuService, _instaService, _storageService) {\n        var _a, _b, _c;\n        super(null, submenuAction);\n        this._keybindingService = _keybindingService;\n        this._notificationService = _notificationService;\n        this._contextMenuService = _contextMenuService;\n        this._menuService = _menuService;\n        this._instaService = _instaService;\n        this._storageService = _storageService;\n        this._container = null;\n        this._options = options;\n        this._storageKey = `${submenuAction.item.submenu.id}_lastActionId`;\n        // determine default action\n        let defaultAction;\n        const defaultActionId = (options === null || options === void 0 ? void 0 : options.persistLastActionId) ? _storageService.get(this._storageKey, 1 /* StorageScope.WORKSPACE */) : undefined;\n        if (defaultActionId) {\n            defaultAction = submenuAction.actions.find(a => defaultActionId === a.id);\n        }\n        if (!defaultAction) {\n            defaultAction = submenuAction.actions[0];\n        }\n        this._defaultAction = this._instaService.createInstance(MenuEntryActionViewItem, defaultAction, { keybinding: this._getDefaultActionKeybindingLabel(defaultAction) });\n        const dropdownOptions = {\n            keybindingProvider: action => this._keybindingService.lookupKeybinding(action.id),\n            ...options,\n            menuAsChild: (_a = options === null || options === void 0 ? void 0 : options.menuAsChild) !== null && _a !== void 0 ? _a : true,\n            classNames: (_b = options === null || options === void 0 ? void 0 : options.classNames) !== null && _b !== void 0 ? _b : ['codicon', 'codicon-chevron-down'],\n            actionRunner: (_c = options === null || options === void 0 ? void 0 : options.actionRunner) !== null && _c !== void 0 ? _c : new ActionRunner(),\n        };\n        this._dropdown = new DropdownMenuActionViewItem(submenuAction, submenuAction.actions, this._contextMenuService, dropdownOptions);\n        this._register(this._dropdown.actionRunner.onDidRun((e) => {\n            if (e.action instanceof MenuItemAction) {\n                this.update(e.action);\n            }\n        }));\n    }\n    update(lastAction) {\n        var _a;\n        if ((_a = this._options) === null || _a === void 0 ? void 0 : _a.persistLastActionId) {\n            this._storageService.store(this._storageKey, lastAction.id, 1 /* StorageScope.WORKSPACE */, 1 /* StorageTarget.MACHINE */);\n        }\n        this._defaultAction.dispose();\n        this._defaultAction = this._instaService.createInstance(MenuEntryActionViewItem, lastAction, { keybinding: this._getDefaultActionKeybindingLabel(lastAction) });\n        this._defaultAction.actionRunner = new class extends ActionRunner {\n            async runAction(action, context) {\n                await action.run(undefined);\n            }\n        }();\n        if (this._container) {\n            this._defaultAction.render(prepend(this._container, $('.action-container')));\n        }\n    }\n    _getDefaultActionKeybindingLabel(defaultAction) {\n        var _a;\n        let defaultActionKeybinding;\n        if ((_a = this._options) === null || _a === void 0 ? void 0 : _a.renderKeybindingWithDefaultActionLabel) {\n            const kb = this._keybindingService.lookupKeybinding(defaultAction.id);\n            if (kb) {\n                defaultActionKeybinding = `(${kb.getLabel()})`;\n            }\n        }\n        return defaultActionKeybinding;\n    }\n    setActionContext(newContext) {\n        super.setActionContext(newContext);\n        this._defaultAction.setActionContext(newContext);\n        this._dropdown.setActionContext(newContext);\n    }\n    render(container) {\n        this._container = container;\n        super.render(this._container);\n        this._container.classList.add('monaco-dropdown-with-default');\n        const primaryContainer = $('.action-container');\n        this._defaultAction.render(append(this._container, primaryContainer));\n        this._register(addDisposableListener(primaryContainer, EventType.KEY_DOWN, (e) => {\n            const event = new StandardKeyboardEvent(e);\n            if (event.equals(17 /* KeyCode.RightArrow */)) {\n                this._defaultAction.element.tabIndex = -1;\n                this._dropdown.focus();\n                event.stopPropagation();\n            }\n        }));\n        const dropdownContainer = $('.dropdown-action-container');\n        this._dropdown.render(append(this._container, dropdownContainer));\n        this._register(addDisposableListener(dropdownContainer, EventType.KEY_DOWN, (e) => {\n            var _a;\n            const event = new StandardKeyboardEvent(e);\n            if (event.equals(15 /* KeyCode.LeftArrow */)) {\n                this._defaultAction.element.tabIndex = 0;\n                this._dropdown.setFocusable(false);\n                (_a = this._defaultAction.element) === null || _a === void 0 ? void 0 : _a.focus();\n                event.stopPropagation();\n            }\n        }));\n    }\n    focus(fromRight) {\n        if (fromRight) {\n            this._dropdown.focus();\n        }\n        else {\n            this._defaultAction.element.tabIndex = 0;\n            this._defaultAction.element.focus();\n        }\n    }\n    blur() {\n        this._defaultAction.element.tabIndex = -1;\n        this._dropdown.blur();\n        this._container.blur();\n    }\n    setFocusable(focusable) {\n        if (focusable) {\n            this._defaultAction.element.tabIndex = 0;\n        }\n        else {\n            this._defaultAction.element.tabIndex = -1;\n            this._dropdown.setFocusable(false);\n        }\n    }\n    dispose() {\n        this._defaultAction.dispose();\n        this._dropdown.dispose();\n        super.dispose();\n    }\n};\nDropdownWithDefaultActionViewItem = __decorate([\n    __param(2, IKeybindingService),\n    __param(3, INotificationService),\n    __param(4, IContextMenuService),\n    __param(5, IMenuService),\n    __param(6, IInstantiationService),\n    __param(7, IStorageService)\n], DropdownWithDefaultActionViewItem);\nexport { DropdownWithDefaultActionViewItem };\nlet SubmenuEntrySelectActionViewItem = class SubmenuEntrySelectActionViewItem extends SelectActionViewItem {\n    constructor(action, contextViewService) {\n        super(null, action, action.actions.map(a => ({\n            text: a.id === Separator.ID ? '\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500' : a.label,\n            isDisabled: !a.enabled,\n        })), 0, contextViewService, defaultSelectBoxStyles, { ariaLabel: action.tooltip, optionsAsChildren: true });\n        this.select(Math.max(0, action.actions.findIndex(a => a.checked)));\n    }\n    render(container) {\n        super.render(container);\n        container.style.borderColor = asCssVariable(selectBorder);\n    }\n    runAction(option, index) {\n        const action = this.action.actions[index];\n        if (action) {\n            this.actionRunner.run(action);\n        }\n    }\n};\nSubmenuEntrySelectActionViewItem = __decorate([\n    __param(1, IContextViewService)\n], SubmenuEntrySelectActionViewItem);\n/**\n * Creates action view items for menu actions or submenu actions.\n */\nexport function createActionViewItem(instaService, action, options) {\n    if (action instanceof MenuItemAction) {\n        return instaService.createInstance(MenuEntryActionViewItem, action, options);\n    }\n    else if (action instanceof SubmenuItemAction) {\n        if (action.item.isSelection) {\n            return instaService.createInstance(SubmenuEntrySelectActionViewItem, action);\n        }\n        else {\n            if (action.item.rememberDefaultAction) {\n                return instaService.createInstance(DropdownWithDefaultActionViewItem, action, { ...options, persistLastActionId: true });\n            }\n            else {\n                return instaService.createInstance(SubmenuEntryActionViewItem, action, options);\n            }\n        }\n    }\n    else {\n        return undefined;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/actions/browser/toolbar.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { addDisposableListener, getWindow } from '../../../base/browser/dom.js';\nimport { StandardMouseEvent } from '../../../base/browser/mouseEvent.js';\nimport { ToggleMenuAction, ToolBar } from '../../../base/browser/ui/toolbar/toolbar.js';\nimport { Separator, toAction } from '../../../base/common/actions.js';\nimport { coalesceInPlace } from '../../../base/common/arrays.js';\nimport { intersection } from '../../../base/common/collections.js';\nimport { BugIndicatingError } from '../../../base/common/errors.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { Iterable } from '../../../base/common/iterator.js';\nimport { DisposableStore } from '../../../base/common/lifecycle.js';\nimport { localize } from '../../../nls.js';\nimport { createAndFillInActionBarActions } from './menuEntryActionViewItem.js';\nimport { IMenuService, MenuItemAction, SubmenuItemAction } from '../common/actions.js';\nimport { createConfigureKeybindingAction } from '../common/menuService.js';\nimport { ICommandService } from '../../commands/common/commands.js';\nimport { IContextKeyService } from '../../contextkey/common/contextkey.js';\nimport { IContextMenuService } from '../../contextview/browser/contextView.js';\nimport { IKeybindingService } from '../../keybinding/common/keybinding.js';\nimport { ITelemetryService } from '../../telemetry/common/telemetry.js';\n/**\n * The `WorkbenchToolBar` does\n * - support hiding of menu items\n * - lookup keybindings for each actions automatically\n * - send `workbenchActionExecuted`-events for each action\n *\n * See {@link MenuWorkbenchToolBar} for a toolbar that is backed by a menu.\n */\nlet WorkbenchToolBar = class WorkbenchToolBar extends ToolBar {\n    constructor(container, _options, _menuService, _contextKeyService, _contextMenuService, _keybindingService, _commandService, telemetryService) {\n        super(container, _contextMenuService, {\n            // defaults\n            getKeyBinding: (action) => { var _a; return (_a = _keybindingService.lookupKeybinding(action.id)) !== null && _a !== void 0 ? _a : undefined; },\n            // options (override defaults)\n            ..._options,\n            // mandatory (overide options)\n            allowContextMenu: true,\n            skipTelemetry: typeof (_options === null || _options === void 0 ? void 0 : _options.telemetrySource) === 'string',\n        });\n        this._options = _options;\n        this._menuService = _menuService;\n        this._contextKeyService = _contextKeyService;\n        this._contextMenuService = _contextMenuService;\n        this._keybindingService = _keybindingService;\n        this._commandService = _commandService;\n        this._sessionDisposables = this._store.add(new DisposableStore());\n        // telemetry logic\n        const telemetrySource = _options === null || _options === void 0 ? void 0 : _options.telemetrySource;\n        if (telemetrySource) {\n            this._store.add(this.actionBar.onDidRun(e => telemetryService.publicLog2('workbenchActionExecuted', { id: e.action.id, from: telemetrySource })));\n        }\n    }\n    setActions(_primary, _secondary = [], menuIds) {\n        var _a, _b, _c;\n        this._sessionDisposables.clear();\n        const primary = _primary.slice(); // for hiding and overflow we set some items to undefined\n        const secondary = _secondary.slice();\n        const toggleActions = [];\n        let toggleActionsCheckedCount = 0;\n        const extraSecondary = [];\n        let someAreHidden = false;\n        // unless disabled, move all hidden items to secondary group or ignore them\n        if (((_a = this._options) === null || _a === void 0 ? void 0 : _a.hiddenItemStrategy) !== -1 /* HiddenItemStrategy.NoHide */) {\n            for (let i = 0; i < primary.length; i++) {\n                const action = primary[i];\n                if (!(action instanceof MenuItemAction) && !(action instanceof SubmenuItemAction)) {\n                    // console.warn(`Action ${action.id}/${action.label} is not a MenuItemAction`);\n                    continue;\n                }\n                if (!action.hideActions) {\n                    continue;\n                }\n                // collect all toggle actions\n                toggleActions.push(action.hideActions.toggle);\n                if (action.hideActions.toggle.checked) {\n                    toggleActionsCheckedCount++;\n                }\n                // hidden items move into overflow or ignore\n                if (action.hideActions.isHidden) {\n                    someAreHidden = true;\n                    primary[i] = undefined;\n                    if (((_b = this._options) === null || _b === void 0 ? void 0 : _b.hiddenItemStrategy) !== 0 /* HiddenItemStrategy.Ignore */) {\n                        extraSecondary[i] = action;\n                    }\n                }\n            }\n        }\n        // count for max\n        if (((_c = this._options) === null || _c === void 0 ? void 0 : _c.overflowBehavior) !== undefined) {\n            const exemptedIds = intersection(new Set(this._options.overflowBehavior.exempted), Iterable.map(primary, a => a === null || a === void 0 ? void 0 : a.id));\n            const maxItems = this._options.overflowBehavior.maxItems - exemptedIds.size;\n            let count = 0;\n            for (let i = 0; i < primary.length; i++) {\n                const action = primary[i];\n                if (!action) {\n                    continue;\n                }\n                count++;\n                if (exemptedIds.has(action.id)) {\n                    continue;\n                }\n                if (count >= maxItems) {\n                    primary[i] = undefined;\n                    extraSecondary[i] = action;\n                }\n            }\n        }\n        // coalesce turns Array<IAction|undefined> into IAction[]\n        coalesceInPlace(primary);\n        coalesceInPlace(extraSecondary);\n        super.setActions(primary, Separator.join(extraSecondary, secondary));\n        // add context menu for toggle and configure keybinding actions\n        if (toggleActions.length > 0 || primary.length > 0) {\n            this._sessionDisposables.add(addDisposableListener(this.getElement(), 'contextmenu', e => {\n                var _a, _b, _c, _d, _e;\n                const event = new StandardMouseEvent(getWindow(this.getElement()), e);\n                const action = this.getItemAction(event.target);\n                if (!(action)) {\n                    return;\n                }\n                event.preventDefault();\n                event.stopPropagation();\n                const primaryActions = [];\n                // -- Configure Keybinding Action --\n                if (action instanceof MenuItemAction && action.menuKeybinding) {\n                    primaryActions.push(action.menuKeybinding);\n                }\n                else if (!(action instanceof SubmenuItemAction || action instanceof ToggleMenuAction)) {\n                    primaryActions.push(createConfigureKeybindingAction(action.id, undefined, this._commandService, this._keybindingService));\n                }\n                // -- Hide Actions --\n                if (toggleActions.length > 0) {\n                    let noHide = false;\n                    // last item cannot be hidden when using ignore strategy\n                    if (toggleActionsCheckedCount === 1 && ((_a = this._options) === null || _a === void 0 ? void 0 : _a.hiddenItemStrategy) === 0 /* HiddenItemStrategy.Ignore */) {\n                        noHide = true;\n                        for (let i = 0; i < toggleActions.length; i++) {\n                            if (toggleActions[i].checked) {\n                                toggleActions[i] = toAction({\n                                    id: action.id,\n                                    label: action.label,\n                                    checked: true,\n                                    enabled: false,\n                                    run() { }\n                                });\n                                break; // there is only one\n                            }\n                        }\n                    }\n                    // add \"hide foo\" actions\n                    if (!noHide && (action instanceof MenuItemAction || action instanceof SubmenuItemAction)) {\n                        if (!action.hideActions) {\n                            // no context menu for MenuItemAction instances that support no hiding\n                            // those are fake actions and need to be cleaned up\n                            return;\n                        }\n                        primaryActions.push(action.hideActions.hide);\n                    }\n                    else {\n                        primaryActions.push(toAction({\n                            id: 'label',\n                            label: localize('hide', \"Hide\"),\n                            enabled: false,\n                            run() { }\n                        }));\n                    }\n                }\n                const actions = Separator.join(primaryActions, toggleActions);\n                // add \"Reset Menu\" action\n                if (((_b = this._options) === null || _b === void 0 ? void 0 : _b.resetMenu) && !menuIds) {\n                    menuIds = [this._options.resetMenu];\n                }\n                if (someAreHidden && menuIds) {\n                    actions.push(new Separator());\n                    actions.push(toAction({\n                        id: 'resetThisMenu',\n                        label: localize('resetThisMenu', \"Reset Menu\"),\n                        run: () => this._menuService.resetHiddenStates(menuIds)\n                    }));\n                }\n                if (actions.length === 0) {\n                    return;\n                }\n                this._contextMenuService.showContextMenu({\n                    getAnchor: () => event,\n                    getActions: () => actions,\n                    // add context menu actions (iff appicable)\n                    menuId: (_c = this._options) === null || _c === void 0 ? void 0 : _c.contextMenu,\n                    menuActionOptions: { renderShortTitle: true, ...(_d = this._options) === null || _d === void 0 ? void 0 : _d.menuOptions },\n                    skipTelemetry: typeof ((_e = this._options) === null || _e === void 0 ? void 0 : _e.telemetrySource) === 'string',\n                    contextKeyService: this._contextKeyService,\n                });\n            }));\n        }\n    }\n};\nWorkbenchToolBar = __decorate([\n    __param(2, IMenuService),\n    __param(3, IContextKeyService),\n    __param(4, IContextMenuService),\n    __param(5, IKeybindingService),\n    __param(6, ICommandService),\n    __param(7, ITelemetryService)\n], WorkbenchToolBar);\nexport { WorkbenchToolBar };\n/**\n * A {@link WorkbenchToolBar workbench toolbar} that is purely driven from a {@link MenuId menu}-identifier.\n *\n * *Note* that Manual updates via `setActions` are NOT supported.\n */\nlet MenuWorkbenchToolBar = class MenuWorkbenchToolBar extends WorkbenchToolBar {\n    constructor(container, menuId, options, menuService, contextKeyService, contextMenuService, keybindingService, commandService, telemetryService) {\n        super(container, { resetMenu: menuId, ...options }, menuService, contextKeyService, contextMenuService, keybindingService, commandService, telemetryService);\n        this._onDidChangeMenuItems = this._store.add(new Emitter());\n        this.onDidChangeMenuItems = this._onDidChangeMenuItems.event;\n        // update logic\n        const menu = this._store.add(menuService.createMenu(menuId, contextKeyService, { emitEventsForSubmenuChanges: true }));\n        const updateToolbar = () => {\n            var _a, _b, _c;\n            const primary = [];\n            const secondary = [];\n            createAndFillInActionBarActions(menu, options === null || options === void 0 ? void 0 : options.menuOptions, { primary, secondary }, (_a = options === null || options === void 0 ? void 0 : options.toolbarOptions) === null || _a === void 0 ? void 0 : _a.primaryGroup, (_b = options === null || options === void 0 ? void 0 : options.toolbarOptions) === null || _b === void 0 ? void 0 : _b.shouldInlineSubmenu, (_c = options === null || options === void 0 ? void 0 : options.toolbarOptions) === null || _c === void 0 ? void 0 : _c.useSeparatorsInPrimaryActions);\n            container.classList.toggle('has-no-actions', primary.length === 0 && secondary.length === 0);\n            super.setActions(primary, secondary);\n        };\n        this._store.add(menu.onDidChange(() => {\n            updateToolbar();\n            this._onDidChangeMenuItems.fire(this);\n        }));\n        updateToolbar();\n    }\n    /**\n     * @deprecated The WorkbenchToolBar does not support this method because it works with menus.\n     */\n    setActions() {\n        throw new BugIndicatingError('This toolbar is populated from a menu.');\n    }\n};\nMenuWorkbenchToolBar = __decorate([\n    __param(3, IMenuService),\n    __param(4, IContextKeyService),\n    __param(5, IContextMenuService),\n    __param(6, IKeybindingService),\n    __param(7, ICommandService),\n    __param(8, ITelemetryService)\n], MenuWorkbenchToolBar);\nexport { MenuWorkbenchToolBar };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/actions/common/actions.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar MenuItemAction_1;\nimport { SubmenuAction } from '../../../base/common/actions.js';\nimport { ThemeIcon } from '../../../base/common/themables.js';\nimport { MicrotaskEmitter } from '../../../base/common/event.js';\nimport { DisposableStore, dispose, toDisposable } from '../../../base/common/lifecycle.js';\nimport { LinkedList } from '../../../base/common/linkedList.js';\nimport { CommandsRegistry, ICommandService } from '../../commands/common/commands.js';\nimport { ContextKeyExpr, IContextKeyService } from '../../contextkey/common/contextkey.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nimport { KeybindingsRegistry } from '../../keybinding/common/keybindingsRegistry.js';\nexport function isIMenuItem(item) {\n    return item.command !== undefined;\n}\nexport function isISubmenuItem(item) {\n    return item.submenu !== undefined;\n}\nexport class MenuId {\n    /**\n     * Create a new `MenuId` with the unique identifier. Will throw if a menu\n     * with the identifier already exists, use `MenuId.for(ident)` or a unique\n     * identifier\n     */\n    constructor(identifier) {\n        if (MenuId._instances.has(identifier)) {\n            throw new TypeError(`MenuId with identifier '${identifier}' already exists. Use MenuId.for(ident) or a unique identifier`);\n        }\n        MenuId._instances.set(identifier, this);\n        this.id = identifier;\n    }\n}\nMenuId._instances = new Map();\nMenuId.CommandPalette = new MenuId('CommandPalette');\nMenuId.DebugBreakpointsContext = new MenuId('DebugBreakpointsContext');\nMenuId.DebugCallStackContext = new MenuId('DebugCallStackContext');\nMenuId.DebugConsoleContext = new MenuId('DebugConsoleContext');\nMenuId.DebugVariablesContext = new MenuId('DebugVariablesContext');\nMenuId.NotebookVariablesContext = new MenuId('NotebookVariablesContext');\nMenuId.DebugHoverContext = new MenuId('DebugHoverContext');\nMenuId.DebugWatchContext = new MenuId('DebugWatchContext');\nMenuId.DebugToolBar = new MenuId('DebugToolBar');\nMenuId.DebugToolBarStop = new MenuId('DebugToolBarStop');\nMenuId.EditorContext = new MenuId('EditorContext');\nMenuId.SimpleEditorContext = new MenuId('SimpleEditorContext');\nMenuId.EditorContent = new MenuId('EditorContent');\nMenuId.EditorLineNumberContext = new MenuId('EditorLineNumberContext');\nMenuId.EditorContextCopy = new MenuId('EditorContextCopy');\nMenuId.EditorContextPeek = new MenuId('EditorContextPeek');\nMenuId.EditorContextShare = new MenuId('EditorContextShare');\nMenuId.EditorTitle = new MenuId('EditorTitle');\nMenuId.EditorTitleRun = new MenuId('EditorTitleRun');\nMenuId.EditorTitleContext = new MenuId('EditorTitleContext');\nMenuId.EditorTitleContextShare = new MenuId('EditorTitleContextShare');\nMenuId.EmptyEditorGroup = new MenuId('EmptyEditorGroup');\nMenuId.EmptyEditorGroupContext = new MenuId('EmptyEditorGroupContext');\nMenuId.EditorTabsBarContext = new MenuId('EditorTabsBarContext');\nMenuId.EditorTabsBarShowTabsSubmenu = new MenuId('EditorTabsBarShowTabsSubmenu');\nMenuId.EditorTabsBarShowTabsZenModeSubmenu = new MenuId('EditorTabsBarShowTabsZenModeSubmenu');\nMenuId.EditorActionsPositionSubmenu = new MenuId('EditorActionsPositionSubmenu');\nMenuId.ExplorerContext = new MenuId('ExplorerContext');\nMenuId.ExplorerContextShare = new MenuId('ExplorerContextShare');\nMenuId.ExtensionContext = new MenuId('ExtensionContext');\nMenuId.GlobalActivity = new MenuId('GlobalActivity');\nMenuId.CommandCenter = new MenuId('CommandCenter');\nMenuId.CommandCenterCenter = new MenuId('CommandCenterCenter');\nMenuId.LayoutControlMenuSubmenu = new MenuId('LayoutControlMenuSubmenu');\nMenuId.LayoutControlMenu = new MenuId('LayoutControlMenu');\nMenuId.MenubarMainMenu = new MenuId('MenubarMainMenu');\nMenuId.MenubarAppearanceMenu = new MenuId('MenubarAppearanceMenu');\nMenuId.MenubarDebugMenu = new MenuId('MenubarDebugMenu');\nMenuId.MenubarEditMenu = new MenuId('MenubarEditMenu');\nMenuId.MenubarCopy = new MenuId('MenubarCopy');\nMenuId.MenubarFileMenu = new MenuId('MenubarFileMenu');\nMenuId.MenubarGoMenu = new MenuId('MenubarGoMenu');\nMenuId.MenubarHelpMenu = new MenuId('MenubarHelpMenu');\nMenuId.MenubarLayoutMenu = new MenuId('MenubarLayoutMenu');\nMenuId.MenubarNewBreakpointMenu = new MenuId('MenubarNewBreakpointMenu');\nMenuId.PanelAlignmentMenu = new MenuId('PanelAlignmentMenu');\nMenuId.PanelPositionMenu = new MenuId('PanelPositionMenu');\nMenuId.ActivityBarPositionMenu = new MenuId('ActivityBarPositionMenu');\nMenuId.MenubarPreferencesMenu = new MenuId('MenubarPreferencesMenu');\nMenuId.MenubarRecentMenu = new MenuId('MenubarRecentMenu');\nMenuId.MenubarSelectionMenu = new MenuId('MenubarSelectionMenu');\nMenuId.MenubarShare = new MenuId('MenubarShare');\nMenuId.MenubarSwitchEditorMenu = new MenuId('MenubarSwitchEditorMenu');\nMenuId.MenubarSwitchGroupMenu = new MenuId('MenubarSwitchGroupMenu');\nMenuId.MenubarTerminalMenu = new MenuId('MenubarTerminalMenu');\nMenuId.MenubarViewMenu = new MenuId('MenubarViewMenu');\nMenuId.MenubarHomeMenu = new MenuId('MenubarHomeMenu');\nMenuId.OpenEditorsContext = new MenuId('OpenEditorsContext');\nMenuId.OpenEditorsContextShare = new MenuId('OpenEditorsContextShare');\nMenuId.ProblemsPanelContext = new MenuId('ProblemsPanelContext');\nMenuId.SCMInputBox = new MenuId('SCMInputBox');\nMenuId.SCMChangesSeparator = new MenuId('SCMChangesSeparator');\nMenuId.SCMIncomingChanges = new MenuId('SCMIncomingChanges');\nMenuId.SCMIncomingChangesContext = new MenuId('SCMIncomingChangesContext');\nMenuId.SCMIncomingChangesSetting = new MenuId('SCMIncomingChangesSetting');\nMenuId.SCMOutgoingChanges = new MenuId('SCMOutgoingChanges');\nMenuId.SCMOutgoingChangesContext = new MenuId('SCMOutgoingChangesContext');\nMenuId.SCMOutgoingChangesSetting = new MenuId('SCMOutgoingChangesSetting');\nMenuId.SCMIncomingChangesAllChangesContext = new MenuId('SCMIncomingChangesAllChangesContext');\nMenuId.SCMIncomingChangesHistoryItemContext = new MenuId('SCMIncomingChangesHistoryItemContext');\nMenuId.SCMOutgoingChangesAllChangesContext = new MenuId('SCMOutgoingChangesAllChangesContext');\nMenuId.SCMOutgoingChangesHistoryItemContext = new MenuId('SCMOutgoingChangesHistoryItemContext');\nMenuId.SCMChangeContext = new MenuId('SCMChangeContext');\nMenuId.SCMResourceContext = new MenuId('SCMResourceContext');\nMenuId.SCMResourceContextShare = new MenuId('SCMResourceContextShare');\nMenuId.SCMResourceFolderContext = new MenuId('SCMResourceFolderContext');\nMenuId.SCMResourceGroupContext = new MenuId('SCMResourceGroupContext');\nMenuId.SCMSourceControl = new MenuId('SCMSourceControl');\nMenuId.SCMSourceControlInline = new MenuId('SCMSourceControlInline');\nMenuId.SCMSourceControlTitle = new MenuId('SCMSourceControlTitle');\nMenuId.SCMTitle = new MenuId('SCMTitle');\nMenuId.SearchContext = new MenuId('SearchContext');\nMenuId.SearchActionMenu = new MenuId('SearchActionContext');\nMenuId.StatusBarWindowIndicatorMenu = new MenuId('StatusBarWindowIndicatorMenu');\nMenuId.StatusBarRemoteIndicatorMenu = new MenuId('StatusBarRemoteIndicatorMenu');\nMenuId.StickyScrollContext = new MenuId('StickyScrollContext');\nMenuId.TestItem = new MenuId('TestItem');\nMenuId.TestItemGutter = new MenuId('TestItemGutter');\nMenuId.TestMessageContext = new MenuId('TestMessageContext');\nMenuId.TestMessageContent = new MenuId('TestMessageContent');\nMenuId.TestPeekElement = new MenuId('TestPeekElement');\nMenuId.TestPeekTitle = new MenuId('TestPeekTitle');\nMenuId.TouchBarContext = new MenuId('TouchBarContext');\nMenuId.TitleBarContext = new MenuId('TitleBarContext');\nMenuId.TitleBarTitleContext = new MenuId('TitleBarTitleContext');\nMenuId.TunnelContext = new MenuId('TunnelContext');\nMenuId.TunnelPrivacy = new MenuId('TunnelPrivacy');\nMenuId.TunnelProtocol = new MenuId('TunnelProtocol');\nMenuId.TunnelPortInline = new MenuId('TunnelInline');\nMenuId.TunnelTitle = new MenuId('TunnelTitle');\nMenuId.TunnelLocalAddressInline = new MenuId('TunnelLocalAddressInline');\nMenuId.TunnelOriginInline = new MenuId('TunnelOriginInline');\nMenuId.ViewItemContext = new MenuId('ViewItemContext');\nMenuId.ViewContainerTitle = new MenuId('ViewContainerTitle');\nMenuId.ViewContainerTitleContext = new MenuId('ViewContainerTitleContext');\nMenuId.ViewTitle = new MenuId('ViewTitle');\nMenuId.ViewTitleContext = new MenuId('ViewTitleContext');\nMenuId.CommentEditorActions = new MenuId('CommentEditorActions');\nMenuId.CommentThreadTitle = new MenuId('CommentThreadTitle');\nMenuId.CommentThreadActions = new MenuId('CommentThreadActions');\nMenuId.CommentThreadAdditionalActions = new MenuId('CommentThreadAdditionalActions');\nMenuId.CommentThreadTitleContext = new MenuId('CommentThreadTitleContext');\nMenuId.CommentThreadCommentContext = new MenuId('CommentThreadCommentContext');\nMenuId.CommentTitle = new MenuId('CommentTitle');\nMenuId.CommentActions = new MenuId('CommentActions');\nMenuId.CommentsViewThreadActions = new MenuId('CommentsViewThreadActions');\nMenuId.InteractiveToolbar = new MenuId('InteractiveToolbar');\nMenuId.InteractiveCellTitle = new MenuId('InteractiveCellTitle');\nMenuId.InteractiveCellDelete = new MenuId('InteractiveCellDelete');\nMenuId.InteractiveCellExecute = new MenuId('InteractiveCellExecute');\nMenuId.InteractiveInputExecute = new MenuId('InteractiveInputExecute');\nMenuId.IssueReporter = new MenuId('IssueReporter');\nMenuId.NotebookToolbar = new MenuId('NotebookToolbar');\nMenuId.NotebookStickyScrollContext = new MenuId('NotebookStickyScrollContext');\nMenuId.NotebookCellTitle = new MenuId('NotebookCellTitle');\nMenuId.NotebookCellDelete = new MenuId('NotebookCellDelete');\nMenuId.NotebookCellInsert = new MenuId('NotebookCellInsert');\nMenuId.NotebookCellBetween = new MenuId('NotebookCellBetween');\nMenuId.NotebookCellListTop = new MenuId('NotebookCellTop');\nMenuId.NotebookCellExecute = new MenuId('NotebookCellExecute');\nMenuId.NotebookCellExecuteGoTo = new MenuId('NotebookCellExecuteGoTo');\nMenuId.NotebookCellExecutePrimary = new MenuId('NotebookCellExecutePrimary');\nMenuId.NotebookDiffCellInputTitle = new MenuId('NotebookDiffCellInputTitle');\nMenuId.NotebookDiffCellMetadataTitle = new MenuId('NotebookDiffCellMetadataTitle');\nMenuId.NotebookDiffCellOutputsTitle = new MenuId('NotebookDiffCellOutputsTitle');\nMenuId.NotebookOutputToolbar = new MenuId('NotebookOutputToolbar');\nMenuId.NotebookOutlineFilter = new MenuId('NotebookOutlineFilter');\nMenuId.NotebookOutlineActionMenu = new MenuId('NotebookOutlineActionMenu');\nMenuId.NotebookEditorLayoutConfigure = new MenuId('NotebookEditorLayoutConfigure');\nMenuId.NotebookKernelSource = new MenuId('NotebookKernelSource');\nMenuId.BulkEditTitle = new MenuId('BulkEditTitle');\nMenuId.BulkEditContext = new MenuId('BulkEditContext');\nMenuId.TimelineItemContext = new MenuId('TimelineItemContext');\nMenuId.TimelineTitle = new MenuId('TimelineTitle');\nMenuId.TimelineTitleContext = new MenuId('TimelineTitleContext');\nMenuId.TimelineFilterSubMenu = new MenuId('TimelineFilterSubMenu');\nMenuId.AccountsContext = new MenuId('AccountsContext');\nMenuId.SidebarTitle = new MenuId('SidebarTitle');\nMenuId.PanelTitle = new MenuId('PanelTitle');\nMenuId.AuxiliaryBarTitle = new MenuId('AuxiliaryBarTitle');\nMenuId.AuxiliaryBarHeader = new MenuId('AuxiliaryBarHeader');\nMenuId.TerminalInstanceContext = new MenuId('TerminalInstanceContext');\nMenuId.TerminalEditorInstanceContext = new MenuId('TerminalEditorInstanceContext');\nMenuId.TerminalNewDropdownContext = new MenuId('TerminalNewDropdownContext');\nMenuId.TerminalTabContext = new MenuId('TerminalTabContext');\nMenuId.TerminalTabEmptyAreaContext = new MenuId('TerminalTabEmptyAreaContext');\nMenuId.TerminalStickyScrollContext = new MenuId('TerminalStickyScrollContext');\nMenuId.WebviewContext = new MenuId('WebviewContext');\nMenuId.InlineCompletionsActions = new MenuId('InlineCompletionsActions');\nMenuId.InlineEditActions = new MenuId('InlineEditActions');\nMenuId.NewFile = new MenuId('NewFile');\nMenuId.MergeInput1Toolbar = new MenuId('MergeToolbar1Toolbar');\nMenuId.MergeInput2Toolbar = new MenuId('MergeToolbar2Toolbar');\nMenuId.MergeBaseToolbar = new MenuId('MergeBaseToolbar');\nMenuId.MergeInputResultToolbar = new MenuId('MergeToolbarResultToolbar');\nMenuId.InlineSuggestionToolbar = new MenuId('InlineSuggestionToolbar');\nMenuId.InlineEditToolbar = new MenuId('InlineEditToolbar');\nMenuId.ChatContext = new MenuId('ChatContext');\nMenuId.ChatCodeBlock = new MenuId('ChatCodeblock');\nMenuId.ChatCompareBlock = new MenuId('ChatCompareBlock');\nMenuId.ChatMessageTitle = new MenuId('ChatMessageTitle');\nMenuId.ChatExecute = new MenuId('ChatExecute');\nMenuId.ChatExecuteSecondary = new MenuId('ChatExecuteSecondary');\nMenuId.ChatInputSide = new MenuId('ChatInputSide');\nMenuId.AccessibleView = new MenuId('AccessibleView');\nMenuId.MultiDiffEditorFileToolbar = new MenuId('MultiDiffEditorFileToolbar');\nMenuId.DiffEditorHunkToolbar = new MenuId('DiffEditorHunkToolbar');\nMenuId.DiffEditorSelectionToolbar = new MenuId('DiffEditorSelectionToolbar');\nexport const IMenuService = createDecorator('menuService');\nclass MenuRegistryChangeEvent {\n    static for(id) {\n        let value = this._all.get(id);\n        if (!value) {\n            value = new MenuRegistryChangeEvent(id);\n            this._all.set(id, value);\n        }\n        return value;\n    }\n    static merge(events) {\n        const ids = new Set();\n        for (const item of events) {\n            if (item instanceof MenuRegistryChangeEvent) {\n                ids.add(item.id);\n            }\n        }\n        return ids;\n    }\n    constructor(id) {\n        this.id = id;\n        this.has = candidate => candidate === id;\n    }\n}\nMenuRegistryChangeEvent._all = new Map();\nexport const MenuRegistry = new class {\n    constructor() {\n        this._commands = new Map();\n        this._menuItems = new Map();\n        this._onDidChangeMenu = new MicrotaskEmitter({\n            merge: MenuRegistryChangeEvent.merge\n        });\n        this.onDidChangeMenu = this._onDidChangeMenu.event;\n    }\n    addCommand(command) {\n        this._commands.set(command.id, command);\n        this._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(MenuId.CommandPalette));\n        return toDisposable(() => {\n            if (this._commands.delete(command.id)) {\n                this._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(MenuId.CommandPalette));\n            }\n        });\n    }\n    getCommand(id) {\n        return this._commands.get(id);\n    }\n    getCommands() {\n        const map = new Map();\n        this._commands.forEach((value, key) => map.set(key, value));\n        return map;\n    }\n    appendMenuItem(id, item) {\n        let list = this._menuItems.get(id);\n        if (!list) {\n            list = new LinkedList();\n            this._menuItems.set(id, list);\n        }\n        const rm = list.push(item);\n        this._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(id));\n        return toDisposable(() => {\n            rm();\n            this._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(id));\n        });\n    }\n    appendMenuItems(items) {\n        const result = new DisposableStore();\n        for (const { id, item } of items) {\n            result.add(this.appendMenuItem(id, item));\n        }\n        return result;\n    }\n    getMenuItems(id) {\n        let result;\n        if (this._menuItems.has(id)) {\n            result = [...this._menuItems.get(id)];\n        }\n        else {\n            result = [];\n        }\n        if (id === MenuId.CommandPalette) {\n            // CommandPalette is special because it shows\n            // all commands by default\n            this._appendImplicitItems(result);\n        }\n        return result;\n    }\n    _appendImplicitItems(result) {\n        const set = new Set();\n        for (const item of result) {\n            if (isIMenuItem(item)) {\n                set.add(item.command.id);\n                if (item.alt) {\n                    set.add(item.alt.id);\n                }\n            }\n        }\n        this._commands.forEach((command, id) => {\n            if (!set.has(id)) {\n                result.push({ command });\n            }\n        });\n    }\n};\nexport class SubmenuItemAction extends SubmenuAction {\n    constructor(item, hideActions, actions) {\n        super(`submenuitem.${item.submenu.id}`, typeof item.title === 'string' ? item.title : item.title.value, actions, 'submenu');\n        this.item = item;\n        this.hideActions = hideActions;\n    }\n}\n// implements IAction, does NOT extend Action, so that no one\n// subscribes to events of Action or modified properties\nlet MenuItemAction = MenuItemAction_1 = class MenuItemAction {\n    static label(action, options) {\n        return (options === null || options === void 0 ? void 0 : options.renderShortTitle) && action.shortTitle\n            ? (typeof action.shortTitle === 'string' ? action.shortTitle : action.shortTitle.value)\n            : (typeof action.title === 'string' ? action.title : action.title.value);\n    }\n    constructor(item, alt, options, hideActions, menuKeybinding, contextKeyService, _commandService) {\n        var _a, _b;\n        this.hideActions = hideActions;\n        this.menuKeybinding = menuKeybinding;\n        this._commandService = _commandService;\n        this.id = item.id;\n        this.label = MenuItemAction_1.label(item, options);\n        this.tooltip = (_b = (typeof item.tooltip === 'string' ? item.tooltip : (_a = item.tooltip) === null || _a === void 0 ? void 0 : _a.value)) !== null && _b !== void 0 ? _b : '';\n        this.enabled = !item.precondition || contextKeyService.contextMatchesRules(item.precondition);\n        this.checked = undefined;\n        let icon;\n        if (item.toggled) {\n            const toggled = (item.toggled.condition ? item.toggled : { condition: item.toggled });\n            this.checked = contextKeyService.contextMatchesRules(toggled.condition);\n            if (this.checked && toggled.tooltip) {\n                this.tooltip = typeof toggled.tooltip === 'string' ? toggled.tooltip : toggled.tooltip.value;\n            }\n            if (this.checked && ThemeIcon.isThemeIcon(toggled.icon)) {\n                icon = toggled.icon;\n            }\n            if (this.checked && toggled.title) {\n                this.label = typeof toggled.title === 'string' ? toggled.title : toggled.title.value;\n            }\n        }\n        if (!icon) {\n            icon = ThemeIcon.isThemeIcon(item.icon) ? item.icon : undefined;\n        }\n        this.item = item;\n        this.alt = alt ? new MenuItemAction_1(alt, undefined, options, hideActions, undefined, contextKeyService, _commandService) : undefined;\n        this._options = options;\n        this.class = icon && ThemeIcon.asClassName(icon);\n    }\n    run(...args) {\n        var _a, _b;\n        let runArgs = [];\n        if ((_a = this._options) === null || _a === void 0 ? void 0 : _a.arg) {\n            runArgs = [...runArgs, this._options.arg];\n        }\n        if ((_b = this._options) === null || _b === void 0 ? void 0 : _b.shouldForwardArgs) {\n            runArgs = [...runArgs, ...args];\n        }\n        return this._commandService.executeCommand(this.id, ...runArgs);\n    }\n};\nMenuItemAction = MenuItemAction_1 = __decorate([\n    __param(5, IContextKeyService),\n    __param(6, ICommandService)\n], MenuItemAction);\nexport { MenuItemAction };\nexport class Action2 {\n    constructor(desc) {\n        this.desc = desc;\n    }\n}\nexport function registerAction2(ctor) {\n    const disposables = []; // not using `DisposableStore` to reduce startup perf cost\n    const action = new ctor();\n    const { f1, menu, keybinding, ...command } = action.desc;\n    if (CommandsRegistry.getCommand(command.id)) {\n        throw new Error(`Cannot register two commands with the same id: ${command.id}`);\n    }\n    // command\n    disposables.push(CommandsRegistry.registerCommand({\n        id: command.id,\n        handler: (accessor, ...args) => action.run(accessor, ...args),\n        metadata: command.metadata,\n    }));\n    // menu\n    if (Array.isArray(menu)) {\n        for (const item of menu) {\n            disposables.push(MenuRegistry.appendMenuItem(item.id, { command: { ...command, precondition: item.precondition === null ? undefined : command.precondition }, ...item }));\n        }\n    }\n    else if (menu) {\n        disposables.push(MenuRegistry.appendMenuItem(menu.id, { command: { ...command, precondition: menu.precondition === null ? undefined : command.precondition }, ...menu }));\n    }\n    if (f1) {\n        disposables.push(MenuRegistry.appendMenuItem(MenuId.CommandPalette, { command, when: command.precondition }));\n        disposables.push(MenuRegistry.addCommand(command));\n    }\n    // keybinding\n    if (Array.isArray(keybinding)) {\n        for (const item of keybinding) {\n            disposables.push(KeybindingsRegistry.registerKeybindingRule({\n                ...item,\n                id: command.id,\n                when: command.precondition ? ContextKeyExpr.and(command.precondition, item.when) : item.when\n            }));\n        }\n    }\n    else if (keybinding) {\n        disposables.push(KeybindingsRegistry.registerKeybindingRule({\n            ...keybinding,\n            id: command.id,\n            when: command.precondition ? ContextKeyExpr.and(command.precondition, keybinding.when) : keybinding.when\n        }));\n    }\n    return {\n        dispose() {\n            dispose(disposables);\n        }\n    };\n}\n//#endregion\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/actions/common/menuService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar PersistedMenuHideState_1, MenuInfo_1;\nimport { RunOnceScheduler } from '../../../base/common/async.js';\nimport { DebounceEmitter, Emitter } from '../../../base/common/event.js';\nimport { DisposableStore } from '../../../base/common/lifecycle.js';\nimport { isIMenuItem, isISubmenuItem, MenuItemAction, MenuRegistry, SubmenuItemAction } from './actions.js';\nimport { ICommandService } from '../../commands/common/commands.js';\nimport { IContextKeyService } from '../../contextkey/common/contextkey.js';\nimport { Separator, toAction } from '../../../base/common/actions.js';\nimport { IStorageService } from '../../storage/common/storage.js';\nimport { removeFastWithoutKeepingOrder } from '../../../base/common/arrays.js';\nimport { localize } from '../../../nls.js';\nimport { IKeybindingService } from '../../keybinding/common/keybinding.js';\nlet MenuService = class MenuService {\n    constructor(_commandService, _keybindingService, storageService) {\n        this._commandService = _commandService;\n        this._keybindingService = _keybindingService;\n        this._hiddenStates = new PersistedMenuHideState(storageService);\n    }\n    createMenu(id, contextKeyService, options) {\n        return new MenuImpl(id, this._hiddenStates, { emitEventsForSubmenuChanges: false, eventDebounceDelay: 50, ...options }, this._commandService, this._keybindingService, contextKeyService);\n    }\n    resetHiddenStates(ids) {\n        this._hiddenStates.reset(ids);\n    }\n};\nMenuService = __decorate([\n    __param(0, ICommandService),\n    __param(1, IKeybindingService),\n    __param(2, IStorageService)\n], MenuService);\nexport { MenuService };\nlet PersistedMenuHideState = PersistedMenuHideState_1 = class PersistedMenuHideState {\n    constructor(_storageService) {\n        this._storageService = _storageService;\n        this._disposables = new DisposableStore();\n        this._onDidChange = new Emitter();\n        this.onDidChange = this._onDidChange.event;\n        this._ignoreChangeEvent = false;\n        this._hiddenByDefaultCache = new Map();\n        try {\n            const raw = _storageService.get(PersistedMenuHideState_1._key, 0 /* StorageScope.PROFILE */, '{}');\n            this._data = JSON.parse(raw);\n        }\n        catch (err) {\n            this._data = Object.create(null);\n        }\n        this._disposables.add(_storageService.onDidChangeValue(0 /* StorageScope.PROFILE */, PersistedMenuHideState_1._key, this._disposables)(() => {\n            if (!this._ignoreChangeEvent) {\n                try {\n                    const raw = _storageService.get(PersistedMenuHideState_1._key, 0 /* StorageScope.PROFILE */, '{}');\n                    this._data = JSON.parse(raw);\n                }\n                catch (err) {\n                    console.log('FAILED to read storage after UPDATE', err);\n                }\n            }\n            this._onDidChange.fire();\n        }));\n    }\n    dispose() {\n        this._onDidChange.dispose();\n        this._disposables.dispose();\n    }\n    _isHiddenByDefault(menu, commandId) {\n        var _a;\n        return (_a = this._hiddenByDefaultCache.get(`${menu.id}/${commandId}`)) !== null && _a !== void 0 ? _a : false;\n    }\n    setDefaultState(menu, commandId, hidden) {\n        this._hiddenByDefaultCache.set(`${menu.id}/${commandId}`, hidden);\n    }\n    isHidden(menu, commandId) {\n        var _a, _b;\n        const hiddenByDefault = this._isHiddenByDefault(menu, commandId);\n        const state = (_b = (_a = this._data[menu.id]) === null || _a === void 0 ? void 0 : _a.includes(commandId)) !== null && _b !== void 0 ? _b : false;\n        return hiddenByDefault ? !state : state;\n    }\n    updateHidden(menu, commandId, hidden) {\n        const hiddenByDefault = this._isHiddenByDefault(menu, commandId);\n        if (hiddenByDefault) {\n            hidden = !hidden;\n        }\n        const entries = this._data[menu.id];\n        if (!hidden) {\n            // remove and cleanup\n            if (entries) {\n                const idx = entries.indexOf(commandId);\n                if (idx >= 0) {\n                    removeFastWithoutKeepingOrder(entries, idx);\n                }\n                if (entries.length === 0) {\n                    delete this._data[menu.id];\n                }\n            }\n        }\n        else {\n            // add unless already added\n            if (!entries) {\n                this._data[menu.id] = [commandId];\n            }\n            else {\n                const idx = entries.indexOf(commandId);\n                if (idx < 0) {\n                    entries.push(commandId);\n                }\n            }\n        }\n        this._persist();\n    }\n    reset(menus) {\n        if (menus === undefined) {\n            // reset all\n            this._data = Object.create(null);\n            this._persist();\n        }\n        else {\n            // reset only for a specific menu\n            for (const { id } of menus) {\n                if (this._data[id]) {\n                    delete this._data[id];\n                }\n            }\n            this._persist();\n        }\n    }\n    _persist() {\n        try {\n            this._ignoreChangeEvent = true;\n            const raw = JSON.stringify(this._data);\n            this._storageService.store(PersistedMenuHideState_1._key, raw, 0 /* StorageScope.PROFILE */, 0 /* StorageTarget.USER */);\n        }\n        finally {\n            this._ignoreChangeEvent = false;\n        }\n    }\n};\nPersistedMenuHideState._key = 'menu.hiddenCommands';\nPersistedMenuHideState = PersistedMenuHideState_1 = __decorate([\n    __param(0, IStorageService)\n], PersistedMenuHideState);\nlet MenuInfo = MenuInfo_1 = class MenuInfo {\n    constructor(_id, _hiddenStates, _collectContextKeysForSubmenus, _commandService, _keybindingService, _contextKeyService) {\n        this._id = _id;\n        this._hiddenStates = _hiddenStates;\n        this._collectContextKeysForSubmenus = _collectContextKeysForSubmenus;\n        this._commandService = _commandService;\n        this._keybindingService = _keybindingService;\n        this._contextKeyService = _contextKeyService;\n        this._menuGroups = [];\n        this._structureContextKeys = new Set();\n        this._preconditionContextKeys = new Set();\n        this._toggledContextKeys = new Set();\n        this.refresh();\n    }\n    get structureContextKeys() {\n        return this._structureContextKeys;\n    }\n    get preconditionContextKeys() {\n        return this._preconditionContextKeys;\n    }\n    get toggledContextKeys() {\n        return this._toggledContextKeys;\n    }\n    refresh() {\n        // reset\n        this._menuGroups.length = 0;\n        this._structureContextKeys.clear();\n        this._preconditionContextKeys.clear();\n        this._toggledContextKeys.clear();\n        const menuItems = MenuRegistry.getMenuItems(this._id);\n        let group;\n        menuItems.sort(MenuInfo_1._compareMenuItems);\n        for (const item of menuItems) {\n            // group by groupId\n            const groupName = item.group || '';\n            if (!group || group[0] !== groupName) {\n                group = [groupName, []];\n                this._menuGroups.push(group);\n            }\n            group[1].push(item);\n            // keep keys for eventing\n            this._collectContextKeys(item);\n        }\n    }\n    _collectContextKeys(item) {\n        MenuInfo_1._fillInKbExprKeys(item.when, this._structureContextKeys);\n        if (isIMenuItem(item)) {\n            // keep precondition keys for event if applicable\n            if (item.command.precondition) {\n                MenuInfo_1._fillInKbExprKeys(item.command.precondition, this._preconditionContextKeys);\n            }\n            // keep toggled keys for event if applicable\n            if (item.command.toggled) {\n                const toggledExpression = item.command.toggled.condition || item.command.toggled;\n                MenuInfo_1._fillInKbExprKeys(toggledExpression, this._toggledContextKeys);\n            }\n        }\n        else if (this._collectContextKeysForSubmenus) {\n            // recursively collect context keys from submenus so that this\n            // menu fires events when context key changes affect submenus\n            MenuRegistry.getMenuItems(item.submenu).forEach(this._collectContextKeys, this);\n        }\n    }\n    createActionGroups(options) {\n        const result = [];\n        for (const group of this._menuGroups) {\n            const [id, items] = group;\n            let activeActions;\n            for (const item of items) {\n                if (this._contextKeyService.contextMatchesRules(item.when)) {\n                    const isMenuItem = isIMenuItem(item);\n                    if (isMenuItem) {\n                        this._hiddenStates.setDefaultState(this._id, item.command.id, !!item.isHiddenByDefault);\n                    }\n                    const menuHide = createMenuHide(this._id, isMenuItem ? item.command : item, this._hiddenStates);\n                    if (isMenuItem) {\n                        // MenuItemAction\n                        const menuKeybinding = createConfigureKeybindingAction(item.command.id, item.when, this._commandService, this._keybindingService);\n                        (activeActions !== null && activeActions !== void 0 ? activeActions : (activeActions = [])).push(new MenuItemAction(item.command, item.alt, options, menuHide, menuKeybinding, this._contextKeyService, this._commandService));\n                    }\n                    else {\n                        // SubmenuItemAction\n                        const groups = new MenuInfo_1(item.submenu, this._hiddenStates, this._collectContextKeysForSubmenus, this._commandService, this._keybindingService, this._contextKeyService).createActionGroups(options);\n                        const submenuActions = Separator.join(...groups.map(g => g[1]));\n                        if (submenuActions.length > 0) {\n                            (activeActions !== null && activeActions !== void 0 ? activeActions : (activeActions = [])).push(new SubmenuItemAction(item, menuHide, submenuActions));\n                        }\n                    }\n                }\n            }\n            if (activeActions && activeActions.length > 0) {\n                result.push([id, activeActions]);\n            }\n        }\n        return result;\n    }\n    static _fillInKbExprKeys(exp, set) {\n        if (exp) {\n            for (const key of exp.keys()) {\n                set.add(key);\n            }\n        }\n    }\n    static _compareMenuItems(a, b) {\n        const aGroup = a.group;\n        const bGroup = b.group;\n        if (aGroup !== bGroup) {\n            // Falsy groups come last\n            if (!aGroup) {\n                return 1;\n            }\n            else if (!bGroup) {\n                return -1;\n            }\n            // 'navigation' group comes first\n            if (aGroup === 'navigation') {\n                return -1;\n            }\n            else if (bGroup === 'navigation') {\n                return 1;\n            }\n            // lexical sort for groups\n            const value = aGroup.localeCompare(bGroup);\n            if (value !== 0) {\n                return value;\n            }\n        }\n        // sort on priority - default is 0\n        const aPrio = a.order || 0;\n        const bPrio = b.order || 0;\n        if (aPrio < bPrio) {\n            return -1;\n        }\n        else if (aPrio > bPrio) {\n            return 1;\n        }\n        // sort on titles\n        return MenuInfo_1._compareTitles(isIMenuItem(a) ? a.command.title : a.title, isIMenuItem(b) ? b.command.title : b.title);\n    }\n    static _compareTitles(a, b) {\n        const aStr = typeof a === 'string' ? a : a.original;\n        const bStr = typeof b === 'string' ? b : b.original;\n        return aStr.localeCompare(bStr);\n    }\n};\nMenuInfo = MenuInfo_1 = __decorate([\n    __param(3, ICommandService),\n    __param(4, IKeybindingService),\n    __param(5, IContextKeyService)\n], MenuInfo);\nlet MenuImpl = class MenuImpl {\n    constructor(id, hiddenStates, options, commandService, keybindingService, contextKeyService) {\n        this._disposables = new DisposableStore();\n        this._menuInfo = new MenuInfo(id, hiddenStates, options.emitEventsForSubmenuChanges, commandService, keybindingService, contextKeyService);\n        // Rebuild this menu whenever the menu registry reports an event for this MenuId.\n        // This usually happen while code and extensions are loaded and affects the over\n        // structure of the menu\n        const rebuildMenuSoon = new RunOnceScheduler(() => {\n            this._menuInfo.refresh();\n            this._onDidChange.fire({ menu: this, isStructuralChange: true, isEnablementChange: true, isToggleChange: true });\n        }, options.eventDebounceDelay);\n        this._disposables.add(rebuildMenuSoon);\n        this._disposables.add(MenuRegistry.onDidChangeMenu(e => {\n            if (e.has(id)) {\n                rebuildMenuSoon.schedule();\n            }\n        }));\n        // When context keys or storage state changes we need to check if the menu also has changed. However,\n        // we only do that when someone listens on this menu because (1) these events are\n        // firing often and (2) menu are often leaked\n        const lazyListener = this._disposables.add(new DisposableStore());\n        const merge = (events) => {\n            let isStructuralChange = false;\n            let isEnablementChange = false;\n            let isToggleChange = false;\n            for (const item of events) {\n                isStructuralChange = isStructuralChange || item.isStructuralChange;\n                isEnablementChange = isEnablementChange || item.isEnablementChange;\n                isToggleChange = isToggleChange || item.isToggleChange;\n                if (isStructuralChange && isEnablementChange && isToggleChange) {\n                    // everything is TRUE, no need to continue iterating\n                    break;\n                }\n            }\n            return { menu: this, isStructuralChange, isEnablementChange, isToggleChange };\n        };\n        const startLazyListener = () => {\n            lazyListener.add(contextKeyService.onDidChangeContext(e => {\n                const isStructuralChange = e.affectsSome(this._menuInfo.structureContextKeys);\n                const isEnablementChange = e.affectsSome(this._menuInfo.preconditionContextKeys);\n                const isToggleChange = e.affectsSome(this._menuInfo.toggledContextKeys);\n                if (isStructuralChange || isEnablementChange || isToggleChange) {\n                    this._onDidChange.fire({ menu: this, isStructuralChange, isEnablementChange, isToggleChange });\n                }\n            }));\n            lazyListener.add(hiddenStates.onDidChange(e => {\n                this._onDidChange.fire({ menu: this, isStructuralChange: true, isEnablementChange: false, isToggleChange: false });\n            }));\n        };\n        this._onDidChange = new DebounceEmitter({\n            // start/stop context key listener\n            onWillAddFirstListener: startLazyListener,\n            onDidRemoveLastListener: lazyListener.clear.bind(lazyListener),\n            delay: options.eventDebounceDelay,\n            merge\n        });\n        this.onDidChange = this._onDidChange.event;\n    }\n    getActions(options) {\n        return this._menuInfo.createActionGroups(options);\n    }\n    dispose() {\n        this._disposables.dispose();\n        this._onDidChange.dispose();\n    }\n};\nMenuImpl = __decorate([\n    __param(3, ICommandService),\n    __param(4, IKeybindingService),\n    __param(5, IContextKeyService)\n], MenuImpl);\nfunction createMenuHide(menu, command, states) {\n    const id = isISubmenuItem(command) ? command.submenu.id : command.id;\n    const title = typeof command.title === 'string' ? command.title : command.title.value;\n    const hide = toAction({\n        id: `hide/${menu.id}/${id}`,\n        label: localize('hide.label', 'Hide \\'{0}\\'', title),\n        run() { states.updateHidden(menu, id, true); }\n    });\n    const toggle = toAction({\n        id: `toggle/${menu.id}/${id}`,\n        label: title,\n        get checked() { return !states.isHidden(menu, id); },\n        run() { states.updateHidden(menu, id, !!this.checked); }\n    });\n    return {\n        hide,\n        toggle,\n        get isHidden() { return !toggle.checked; },\n    };\n}\nexport function createConfigureKeybindingAction(commandId, when = undefined, commandService, keybindingService) {\n    return toAction({\n        id: `configureKeybinding/${commandId}`,\n        label: localize('configure keybinding', \"Configure Keybinding\"),\n        run() {\n            // Only set the when clause when there is no keybinding\n            // It is possible that the action and the keybinding have different when clauses\n            const hasKeybinding = !!keybindingService.lookupKeybinding(commandId); // This may only be called inside the `run()` method as it can be expensive on startup. #210529\n            const whenValue = !hasKeybinding && when ? when.serialize() : undefined;\n            commandService.executeCommand('workbench.action.openGlobalKeybindings', `@command:${commandId}` + (whenValue ? ` +when:${whenValue}` : ''));\n        }\n    });\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/clipboard/browser/clipboardService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar BrowserClipboardService_1;\nimport { isSafari, isWebkitWebView } from '../../../base/browser/browser.js';\nimport { $, addDisposableListener, getActiveDocument, getActiveWindow, isHTMLElement, onDidRegisterWindow } from '../../../base/browser/dom.js';\nimport { mainWindow } from '../../../base/browser/window.js';\nimport { DeferredPromise } from '../../../base/common/async.js';\nimport { Event } from '../../../base/common/event.js';\nimport { hash } from '../../../base/common/hash.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { ILayoutService } from '../../layout/browser/layoutService.js';\nimport { ILogService } from '../../log/common/log.js';\nlet BrowserClipboardService = BrowserClipboardService_1 = class BrowserClipboardService extends Disposable {\n    constructor(layoutService, logService) {\n        super();\n        this.layoutService = layoutService;\n        this.logService = logService;\n        this.mapTextToType = new Map(); // unsupported in web (only in-memory)\n        this.findText = ''; // unsupported in web (only in-memory)\n        this.resources = []; // unsupported in web (only in-memory)\n        this.resourcesStateHash = undefined;\n        if (isSafari || isWebkitWebView) {\n            this.installWebKitWriteTextWorkaround();\n        }\n        // Keep track of copy operations to reset our set of\n        // copied resources: since we keep resources in memory\n        // and not in the clipboard, we have to invalidate\n        // that state when the user copies other data.\n        this._register(Event.runAndSubscribe(onDidRegisterWindow, ({ window, disposables }) => {\n            disposables.add(addDisposableListener(window.document, 'copy', () => this.clearResources()));\n        }, { window: mainWindow, disposables: this._store }));\n    }\n    // In Safari, it has the following note:\n    //\n    // \"The request to write to the clipboard must be triggered during a user gesture.\n    // A call to clipboard.write or clipboard.writeText outside the scope of a user\n    // gesture(such as \"click\" or \"touch\" event handlers) will result in the immediate\n    // rejection of the promise returned by the API call.\"\n    // From: https://webkit.org/blog/10855/async-clipboard-api/\n    //\n    // Since extensions run in a web worker, and handle gestures in an asynchronous way,\n    // they are not classified by Safari as \"in response to a user gesture\" and will reject.\n    //\n    // This function sets up some handlers to work around that behavior.\n    installWebKitWriteTextWorkaround() {\n        const handler = () => {\n            const currentWritePromise = new DeferredPromise();\n            // Cancel the previous promise since we just created a new one in response to this new event\n            if (this.webKitPendingClipboardWritePromise && !this.webKitPendingClipboardWritePromise.isSettled) {\n                this.webKitPendingClipboardWritePromise.cancel();\n            }\n            this.webKitPendingClipboardWritePromise = currentWritePromise;\n            // The ctor of ClipboardItem allows you to pass in a promise that will resolve to a string.\n            // This allows us to pass in a Promise that will either be cancelled by another event or\n            // resolved with the contents of the first call to this.writeText.\n            // see https://developer.mozilla.org/en-US/docs/Web/API/ClipboardItem/ClipboardItem#parameters\n            getActiveWindow().navigator.clipboard.write([new ClipboardItem({\n                    'text/plain': currentWritePromise.p,\n                })]).catch(async (err) => {\n                if (!(err instanceof Error) || err.name !== 'NotAllowedError' || !currentWritePromise.isRejected) {\n                    this.logService.error(err);\n                }\n            });\n        };\n        this._register(Event.runAndSubscribe(this.layoutService.onDidAddContainer, ({ container, disposables }) => {\n            disposables.add(addDisposableListener(container, 'click', handler));\n            disposables.add(addDisposableListener(container, 'keydown', handler));\n        }, { container: this.layoutService.mainContainer, disposables: this._store }));\n    }\n    async writeText(text, type) {\n        // Clear resources given we are writing text\n        this.writeResources([]);\n        // With type: only in-memory is supported\n        if (type) {\n            this.mapTextToType.set(type, text);\n            return;\n        }\n        if (this.webKitPendingClipboardWritePromise) {\n            // For Safari, we complete this Promise which allows the call to `navigator.clipboard.write()`\n            // above to resolve and successfully copy to the clipboard. If we let this continue, Safari\n            // would throw an error because this call stack doesn't appear to originate from a user gesture.\n            return this.webKitPendingClipboardWritePromise.complete(text);\n        }\n        // Guard access to navigator.clipboard with try/catch\n        // as we have seen DOMExceptions in certain browsers\n        // due to security policies.\n        try {\n            return await getActiveWindow().navigator.clipboard.writeText(text);\n        }\n        catch (error) {\n            console.error(error);\n        }\n        // Fallback to textarea and execCommand solution\n        this.fallbackWriteText(text);\n    }\n    fallbackWriteText(text) {\n        const activeDocument = getActiveDocument();\n        const activeElement = activeDocument.activeElement;\n        const textArea = activeDocument.body.appendChild($('textarea', { 'aria-hidden': true }));\n        textArea.style.height = '1px';\n        textArea.style.width = '1px';\n        textArea.style.position = 'absolute';\n        textArea.value = text;\n        textArea.focus();\n        textArea.select();\n        activeDocument.execCommand('copy');\n        if (isHTMLElement(activeElement)) {\n            activeElement.focus();\n        }\n        activeDocument.body.removeChild(textArea);\n    }\n    async readText(type) {\n        // With type: only in-memory is supported\n        if (type) {\n            return this.mapTextToType.get(type) || '';\n        }\n        // Guard access to navigator.clipboard with try/catch\n        // as we have seen DOMExceptions in certain browsers\n        // due to security policies.\n        try {\n            return await getActiveWindow().navigator.clipboard.readText();\n        }\n        catch (error) {\n            console.error(error);\n        }\n        return '';\n    }\n    async readFindText() {\n        return this.findText;\n    }\n    async writeFindText(text) {\n        this.findText = text;\n    }\n    async writeResources(resources) {\n        if (resources.length === 0) {\n            this.clearResources();\n        }\n        else {\n            this.resources = resources;\n            this.resourcesStateHash = await this.computeResourcesStateHash();\n        }\n    }\n    async readResources() {\n        const resourcesStateHash = await this.computeResourcesStateHash();\n        if (this.resourcesStateHash !== resourcesStateHash) {\n            this.clearResources(); // state mismatch, resources no longer valid\n        }\n        return this.resources;\n    }\n    async computeResourcesStateHash() {\n        if (this.resources.length === 0) {\n            return undefined; // no resources, no hash needed\n        }\n        // Resources clipboard is managed in-memory only and thus\n        // fails to invalidate when clipboard data is changing.\n        // As such, we compute the hash of the current clipboard\n        // and use that to later validate the resources clipboard.\n        const clipboardText = await this.readText();\n        return hash(clipboardText.substring(0, BrowserClipboardService_1.MAX_RESOURCE_STATE_SOURCE_LENGTH));\n    }\n    clearResources() {\n        this.resources = [];\n        this.resourcesStateHash = undefined;\n    }\n};\nBrowserClipboardService.MAX_RESOURCE_STATE_SOURCE_LENGTH = 1000;\nBrowserClipboardService = BrowserClipboardService_1 = __decorate([\n    __param(0, ILayoutService),\n    __param(1, ILogService)\n], BrowserClipboardService);\nexport { BrowserClipboardService };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/clipboard/common/clipboardService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const IClipboardService = createDecorator('clipboardService');\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/commands/common/commands.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../../base/common/event.js';\nimport { Iterable } from '../../../base/common/iterator.js';\nimport { toDisposable } from '../../../base/common/lifecycle.js';\nimport { LinkedList } from '../../../base/common/linkedList.js';\nimport { validateConstraints } from '../../../base/common/types.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const ICommandService = createDecorator('commandService');\nexport const CommandsRegistry = new class {\n    constructor() {\n        this._commands = new Map();\n        this._onDidRegisterCommand = new Emitter();\n        this.onDidRegisterCommand = this._onDidRegisterCommand.event;\n    }\n    registerCommand(idOrCommand, handler) {\n        if (!idOrCommand) {\n            throw new Error(`invalid command`);\n        }\n        if (typeof idOrCommand === 'string') {\n            if (!handler) {\n                throw new Error(`invalid command`);\n            }\n            return this.registerCommand({ id: idOrCommand, handler });\n        }\n        // add argument validation if rich command metadata is provided\n        if (idOrCommand.metadata && Array.isArray(idOrCommand.metadata.args)) {\n            const constraints = [];\n            for (const arg of idOrCommand.metadata.args) {\n                constraints.push(arg.constraint);\n            }\n            const actualHandler = idOrCommand.handler;\n            idOrCommand.handler = function (accessor, ...args) {\n                validateConstraints(args, constraints);\n                return actualHandler(accessor, ...args);\n            };\n        }\n        // find a place to store the command\n        const { id } = idOrCommand;\n        let commands = this._commands.get(id);\n        if (!commands) {\n            commands = new LinkedList();\n            this._commands.set(id, commands);\n        }\n        const removeFn = commands.unshift(idOrCommand);\n        const ret = toDisposable(() => {\n            removeFn();\n            const command = this._commands.get(id);\n            if (command === null || command === void 0 ? void 0 : command.isEmpty()) {\n                this._commands.delete(id);\n            }\n        });\n        // tell the world about this command\n        this._onDidRegisterCommand.fire(id);\n        return ret;\n    }\n    registerCommandAlias(oldId, newId) {\n        return CommandsRegistry.registerCommand(oldId, (accessor, ...args) => accessor.get(ICommandService).executeCommand(newId, ...args));\n    }\n    getCommand(id) {\n        const list = this._commands.get(id);\n        if (!list || list.isEmpty()) {\n            return undefined;\n        }\n        return Iterable.first(list);\n    }\n    getCommands() {\n        const result = new Map();\n        for (const key of this._commands.keys()) {\n            const command = this.getCommand(key);\n            if (command) {\n                result.set(key, command);\n            }\n        }\n        return result;\n    }\n};\nCommandsRegistry.registerCommand('noop', () => { });\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/configuration/common/configuration.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const IConfigurationService = createDecorator('configurationService');\nexport function toValuesTree(properties, conflictReporter) {\n    const root = Object.create(null);\n    for (const key in properties) {\n        addToValueTree(root, key, properties[key], conflictReporter);\n    }\n    return root;\n}\nexport function addToValueTree(settingsTreeRoot, key, value, conflictReporter) {\n    const segments = key.split('.');\n    const last = segments.pop();\n    let curr = settingsTreeRoot;\n    for (let i = 0; i < segments.length; i++) {\n        const s = segments[i];\n        let obj = curr[s];\n        switch (typeof obj) {\n            case 'undefined':\n                obj = curr[s] = Object.create(null);\n                break;\n            case 'object':\n                if (obj === null) {\n                    conflictReporter(`Ignoring ${key} as ${segments.slice(0, i + 1).join('.')} is null`);\n                    return;\n                }\n                break;\n            default:\n                conflictReporter(`Ignoring ${key} as ${segments.slice(0, i + 1).join('.')} is ${JSON.stringify(obj)}`);\n                return;\n        }\n        curr = obj;\n    }\n    if (typeof curr === 'object' && curr !== null) {\n        try {\n            curr[last] = value; // workaround https://github.com/microsoft/vscode/issues/13606\n        }\n        catch (e) {\n            conflictReporter(`Ignoring ${key} as ${segments.join('.')} is ${JSON.stringify(curr)}`);\n        }\n    }\n    else {\n        conflictReporter(`Ignoring ${key} as ${segments.join('.')} is ${JSON.stringify(curr)}`);\n    }\n}\nexport function removeFromValueTree(valueTree, key) {\n    const segments = key.split('.');\n    doRemoveFromValueTree(valueTree, segments);\n}\nfunction doRemoveFromValueTree(valueTree, segments) {\n    const first = segments.shift();\n    if (segments.length === 0) {\n        // Reached last segment\n        delete valueTree[first];\n        return;\n    }\n    if (Object.keys(valueTree).indexOf(first) !== -1) {\n        const value = valueTree[first];\n        if (typeof value === 'object' && !Array.isArray(value)) {\n            doRemoveFromValueTree(value, segments);\n            if (Object.keys(value).length === 0) {\n                delete valueTree[first];\n            }\n        }\n    }\n}\n/**\n * A helper function to get the configuration value with a specific settings path (e.g. config.some.setting)\n */\nexport function getConfigurationValue(config, settingPath, defaultValue) {\n    function accessSetting(config, path) {\n        let current = config;\n        for (const component of path) {\n            if (typeof current !== 'object' || current === null) {\n                return undefined;\n            }\n            current = current[component];\n        }\n        return current;\n    }\n    const path = settingPath.split('.');\n    const result = accessSetting(config, path);\n    return typeof result === 'undefined' ? defaultValue : result;\n}\nexport function getLanguageTagSettingPlainKey(settingKey) {\n    return settingKey.replace(/[\\[\\]]/g, '');\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/configuration/common/configurationModels.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as arrays from '../../../base/common/arrays.js';\nimport { ResourceMap } from '../../../base/common/map.js';\nimport * as objects from '../../../base/common/objects.js';\nimport * as types from '../../../base/common/types.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { addToValueTree, getConfigurationValue, removeFromValueTree, toValuesTree } from './configuration.js';\nimport { Extensions, overrideIdentifiersFromKey, OVERRIDE_PROPERTY_REGEX } from './configurationRegistry.js';\nimport { Registry } from '../../registry/common/platform.js';\nfunction freeze(data) {\n    return Object.isFrozen(data) ? data : objects.deepFreeze(data);\n}\nexport class ConfigurationModel {\n    static createEmptyModel(logService) {\n        return new ConfigurationModel({}, [], [], undefined, logService);\n    }\n    constructor(_contents, _keys, _overrides, raw, logService) {\n        this._contents = _contents;\n        this._keys = _keys;\n        this._overrides = _overrides;\n        this.raw = raw;\n        this.logService = logService;\n        this.overrideConfigurations = new Map();\n    }\n    get rawConfiguration() {\n        var _a;\n        if (!this._rawConfiguration) {\n            if ((_a = this.raw) === null || _a === void 0 ? void 0 : _a.length) {\n                const rawConfigurationModels = this.raw.map(raw => {\n                    if (raw instanceof ConfigurationModel) {\n                        return raw;\n                    }\n                    const parser = new ConfigurationModelParser('', this.logService);\n                    parser.parseRaw(raw);\n                    return parser.configurationModel;\n                });\n                this._rawConfiguration = rawConfigurationModels.reduce((previous, current) => current === previous ? current : previous.merge(current), rawConfigurationModels[0]);\n            }\n            else {\n                // raw is same as current\n                this._rawConfiguration = this;\n            }\n        }\n        return this._rawConfiguration;\n    }\n    get contents() {\n        return this._contents;\n    }\n    get overrides() {\n        return this._overrides;\n    }\n    get keys() {\n        return this._keys;\n    }\n    isEmpty() {\n        return this._keys.length === 0 && Object.keys(this._contents).length === 0 && this._overrides.length === 0;\n    }\n    getValue(section) {\n        return section ? getConfigurationValue(this.contents, section) : this.contents;\n    }\n    inspect(section, overrideIdentifier) {\n        const that = this;\n        return {\n            get value() {\n                return freeze(that.rawConfiguration.getValue(section));\n            },\n            get override() {\n                return overrideIdentifier ? freeze(that.rawConfiguration.getOverrideValue(section, overrideIdentifier)) : undefined;\n            },\n            get merged() {\n                return freeze(overrideIdentifier ? that.rawConfiguration.override(overrideIdentifier).getValue(section) : that.rawConfiguration.getValue(section));\n            },\n            get overrides() {\n                const overrides = [];\n                for (const { contents, identifiers, keys } of that.rawConfiguration.overrides) {\n                    const value = new ConfigurationModel(contents, keys, [], undefined, that.logService).getValue(section);\n                    if (value !== undefined) {\n                        overrides.push({ identifiers, value });\n                    }\n                }\n                return overrides.length ? freeze(overrides) : undefined;\n            }\n        };\n    }\n    getOverrideValue(section, overrideIdentifier) {\n        const overrideContents = this.getContentsForOverrideIdentifer(overrideIdentifier);\n        return overrideContents\n            ? section ? getConfigurationValue(overrideContents, section) : overrideContents\n            : undefined;\n    }\n    override(identifier) {\n        let overrideConfigurationModel = this.overrideConfigurations.get(identifier);\n        if (!overrideConfigurationModel) {\n            overrideConfigurationModel = this.createOverrideConfigurationModel(identifier);\n            this.overrideConfigurations.set(identifier, overrideConfigurationModel);\n        }\n        return overrideConfigurationModel;\n    }\n    merge(...others) {\n        var _a, _b;\n        const contents = objects.deepClone(this.contents);\n        const overrides = objects.deepClone(this.overrides);\n        const keys = [...this.keys];\n        const raws = ((_a = this.raw) === null || _a === void 0 ? void 0 : _a.length) ? [...this.raw] : [this];\n        for (const other of others) {\n            raws.push(...(((_b = other.raw) === null || _b === void 0 ? void 0 : _b.length) ? other.raw : [other]));\n            if (other.isEmpty()) {\n                continue;\n            }\n            this.mergeContents(contents, other.contents);\n            for (const otherOverride of other.overrides) {\n                const [override] = overrides.filter(o => arrays.equals(o.identifiers, otherOverride.identifiers));\n                if (override) {\n                    this.mergeContents(override.contents, otherOverride.contents);\n                    override.keys.push(...otherOverride.keys);\n                    override.keys = arrays.distinct(override.keys);\n                }\n                else {\n                    overrides.push(objects.deepClone(otherOverride));\n                }\n            }\n            for (const key of other.keys) {\n                if (keys.indexOf(key) === -1) {\n                    keys.push(key);\n                }\n            }\n        }\n        return new ConfigurationModel(contents, keys, overrides, raws.every(raw => raw instanceof ConfigurationModel) ? undefined : raws, this.logService);\n    }\n    createOverrideConfigurationModel(identifier) {\n        const overrideContents = this.getContentsForOverrideIdentifer(identifier);\n        if (!overrideContents || typeof overrideContents !== 'object' || !Object.keys(overrideContents).length) {\n            // If there are no valid overrides, return self\n            return this;\n        }\n        const contents = {};\n        for (const key of arrays.distinct([...Object.keys(this.contents), ...Object.keys(overrideContents)])) {\n            let contentsForKey = this.contents[key];\n            const overrideContentsForKey = overrideContents[key];\n            // If there are override contents for the key, clone and merge otherwise use base contents\n            if (overrideContentsForKey) {\n                // Clone and merge only if base contents and override contents are of type object otherwise just override\n                if (typeof contentsForKey === 'object' && typeof overrideContentsForKey === 'object') {\n                    contentsForKey = objects.deepClone(contentsForKey);\n                    this.mergeContents(contentsForKey, overrideContentsForKey);\n                }\n                else {\n                    contentsForKey = overrideContentsForKey;\n                }\n            }\n            contents[key] = contentsForKey;\n        }\n        return new ConfigurationModel(contents, this.keys, this.overrides, undefined, this.logService);\n    }\n    mergeContents(source, target) {\n        for (const key of Object.keys(target)) {\n            if (key in source) {\n                if (types.isObject(source[key]) && types.isObject(target[key])) {\n                    this.mergeContents(source[key], target[key]);\n                    continue;\n                }\n            }\n            source[key] = objects.deepClone(target[key]);\n        }\n    }\n    getContentsForOverrideIdentifer(identifier) {\n        let contentsForIdentifierOnly = null;\n        let contents = null;\n        const mergeContents = (contentsToMerge) => {\n            if (contentsToMerge) {\n                if (contents) {\n                    this.mergeContents(contents, contentsToMerge);\n                }\n                else {\n                    contents = objects.deepClone(contentsToMerge);\n                }\n            }\n        };\n        for (const override of this.overrides) {\n            if (override.identifiers.length === 1 && override.identifiers[0] === identifier) {\n                contentsForIdentifierOnly = override.contents;\n            }\n            else if (override.identifiers.includes(identifier)) {\n                mergeContents(override.contents);\n            }\n        }\n        // Merge contents of the identifier only at the end to take precedence.\n        mergeContents(contentsForIdentifierOnly);\n        return contents;\n    }\n    toJSON() {\n        return {\n            contents: this.contents,\n            overrides: this.overrides,\n            keys: this.keys\n        };\n    }\n    // Update methods\n    addValue(key, value) {\n        this.updateValue(key, value, true);\n    }\n    setValue(key, value) {\n        this.updateValue(key, value, false);\n    }\n    removeValue(key) {\n        const index = this.keys.indexOf(key);\n        if (index === -1) {\n            return;\n        }\n        this.keys.splice(index, 1);\n        removeFromValueTree(this.contents, key);\n        if (OVERRIDE_PROPERTY_REGEX.test(key)) {\n            this.overrides.splice(this.overrides.findIndex(o => arrays.equals(o.identifiers, overrideIdentifiersFromKey(key))), 1);\n        }\n    }\n    updateValue(key, value, add) {\n        addToValueTree(this.contents, key, value, e => this.logService.error(e));\n        add = add || this.keys.indexOf(key) === -1;\n        if (add) {\n            this.keys.push(key);\n        }\n        if (OVERRIDE_PROPERTY_REGEX.test(key)) {\n            this.overrides.push({\n                identifiers: overrideIdentifiersFromKey(key),\n                keys: Object.keys(this.contents[key]),\n                contents: toValuesTree(this.contents[key], message => this.logService.error(message)),\n            });\n        }\n    }\n}\nexport class ConfigurationModelParser {\n    constructor(_name, logService) {\n        this._name = _name;\n        this.logService = logService;\n        this._raw = null;\n        this._configurationModel = null;\n        this._restrictedConfigurations = [];\n    }\n    get configurationModel() {\n        return this._configurationModel || ConfigurationModel.createEmptyModel(this.logService);\n    }\n    parseRaw(raw, options) {\n        this._raw = raw;\n        const { contents, keys, overrides, restricted, hasExcludedProperties } = this.doParseRaw(raw, options);\n        this._configurationModel = new ConfigurationModel(contents, keys, overrides, hasExcludedProperties ? [raw] : undefined /* raw has not changed */, this.logService);\n        this._restrictedConfigurations = restricted || [];\n    }\n    doParseRaw(raw, options) {\n        const configurationProperties = Registry.as(Extensions.Configuration).getConfigurationProperties();\n        const filtered = this.filter(raw, configurationProperties, true, options);\n        raw = filtered.raw;\n        const contents = toValuesTree(raw, message => this.logService.error(`Conflict in settings file ${this._name}: ${message}`));\n        const keys = Object.keys(raw);\n        const overrides = this.toOverrides(raw, message => this.logService.error(`Conflict in settings file ${this._name}: ${message}`));\n        return { contents, keys, overrides, restricted: filtered.restricted, hasExcludedProperties: filtered.hasExcludedProperties };\n    }\n    filter(properties, configurationProperties, filterOverriddenProperties, options) {\n        var _a, _b, _c;\n        let hasExcludedProperties = false;\n        if (!(options === null || options === void 0 ? void 0 : options.scopes) && !(options === null || options === void 0 ? void 0 : options.skipRestricted) && !((_a = options === null || options === void 0 ? void 0 : options.exclude) === null || _a === void 0 ? void 0 : _a.length)) {\n            return { raw: properties, restricted: [], hasExcludedProperties };\n        }\n        const raw = {};\n        const restricted = [];\n        for (const key in properties) {\n            if (OVERRIDE_PROPERTY_REGEX.test(key) && filterOverriddenProperties) {\n                const result = this.filter(properties[key], configurationProperties, false, options);\n                raw[key] = result.raw;\n                hasExcludedProperties = hasExcludedProperties || result.hasExcludedProperties;\n                restricted.push(...result.restricted);\n            }\n            else {\n                const propertySchema = configurationProperties[key];\n                const scope = propertySchema ? typeof propertySchema.scope !== 'undefined' ? propertySchema.scope : 3 /* ConfigurationScope.WINDOW */ : undefined;\n                if (propertySchema === null || propertySchema === void 0 ? void 0 : propertySchema.restricted) {\n                    restricted.push(key);\n                }\n                if (!((_b = options.exclude) === null || _b === void 0 ? void 0 : _b.includes(key)) /* Check exclude */\n                    && (((_c = options.include) === null || _c === void 0 ? void 0 : _c.includes(key) /* Check include */)\n                        || ((scope === undefined || options.scopes === undefined || options.scopes.includes(scope)) /* Check scopes */\n                            && !(options.skipRestricted && (propertySchema === null || propertySchema === void 0 ? void 0 : propertySchema.restricted))))) /* Check restricted */ {\n                    raw[key] = properties[key];\n                }\n                else {\n                    hasExcludedProperties = true;\n                }\n            }\n        }\n        return { raw, restricted, hasExcludedProperties };\n    }\n    toOverrides(raw, conflictReporter) {\n        const overrides = [];\n        for (const key of Object.keys(raw)) {\n            if (OVERRIDE_PROPERTY_REGEX.test(key)) {\n                const overrideRaw = {};\n                for (const keyInOverrideRaw in raw[key]) {\n                    overrideRaw[keyInOverrideRaw] = raw[key][keyInOverrideRaw];\n                }\n                overrides.push({\n                    identifiers: overrideIdentifiersFromKey(key),\n                    keys: Object.keys(overrideRaw),\n                    contents: toValuesTree(overrideRaw, conflictReporter)\n                });\n            }\n        }\n        return overrides;\n    }\n}\nclass ConfigurationInspectValue {\n    constructor(key, overrides, _value, overrideIdentifiers, defaultConfiguration, policyConfiguration, applicationConfiguration, userConfiguration, localUserConfiguration, remoteUserConfiguration, workspaceConfiguration, folderConfigurationModel, memoryConfigurationModel) {\n        this.key = key;\n        this.overrides = overrides;\n        this._value = _value;\n        this.overrideIdentifiers = overrideIdentifiers;\n        this.defaultConfiguration = defaultConfiguration;\n        this.policyConfiguration = policyConfiguration;\n        this.applicationConfiguration = applicationConfiguration;\n        this.userConfiguration = userConfiguration;\n        this.localUserConfiguration = localUserConfiguration;\n        this.remoteUserConfiguration = remoteUserConfiguration;\n        this.workspaceConfiguration = workspaceConfiguration;\n        this.folderConfigurationModel = folderConfigurationModel;\n        this.memoryConfigurationModel = memoryConfigurationModel;\n    }\n    toInspectValue(inspectValue) {\n        return (inspectValue === null || inspectValue === void 0 ? void 0 : inspectValue.value) !== undefined || (inspectValue === null || inspectValue === void 0 ? void 0 : inspectValue.override) !== undefined || (inspectValue === null || inspectValue === void 0 ? void 0 : inspectValue.overrides) !== undefined ? inspectValue : undefined;\n    }\n    get userInspectValue() {\n        if (!this._userInspectValue) {\n            this._userInspectValue = this.userConfiguration.inspect(this.key, this.overrides.overrideIdentifier);\n        }\n        return this._userInspectValue;\n    }\n    get user() {\n        return this.toInspectValue(this.userInspectValue);\n    }\n}\nexport class Configuration {\n    constructor(_defaultConfiguration, _policyConfiguration, _applicationConfiguration, _localUserConfiguration, _remoteUserConfiguration, _workspaceConfiguration, _folderConfigurations, _memoryConfiguration, _memoryConfigurationByResource, logService) {\n        this._defaultConfiguration = _defaultConfiguration;\n        this._policyConfiguration = _policyConfiguration;\n        this._applicationConfiguration = _applicationConfiguration;\n        this._localUserConfiguration = _localUserConfiguration;\n        this._remoteUserConfiguration = _remoteUserConfiguration;\n        this._workspaceConfiguration = _workspaceConfiguration;\n        this._folderConfigurations = _folderConfigurations;\n        this._memoryConfiguration = _memoryConfiguration;\n        this._memoryConfigurationByResource = _memoryConfigurationByResource;\n        this.logService = logService;\n        this._workspaceConsolidatedConfiguration = null;\n        this._foldersConsolidatedConfigurations = new ResourceMap();\n        this._userConfiguration = null;\n    }\n    getValue(section, overrides, workspace) {\n        const consolidateConfigurationModel = this.getConsolidatedConfigurationModel(section, overrides, workspace);\n        return consolidateConfigurationModel.getValue(section);\n    }\n    updateValue(key, value, overrides = {}) {\n        let memoryConfiguration;\n        if (overrides.resource) {\n            memoryConfiguration = this._memoryConfigurationByResource.get(overrides.resource);\n            if (!memoryConfiguration) {\n                memoryConfiguration = ConfigurationModel.createEmptyModel(this.logService);\n                this._memoryConfigurationByResource.set(overrides.resource, memoryConfiguration);\n            }\n        }\n        else {\n            memoryConfiguration = this._memoryConfiguration;\n        }\n        if (value === undefined) {\n            memoryConfiguration.removeValue(key);\n        }\n        else {\n            memoryConfiguration.setValue(key, value);\n        }\n        if (!overrides.resource) {\n            this._workspaceConsolidatedConfiguration = null;\n        }\n    }\n    inspect(key, overrides, workspace) {\n        const consolidateConfigurationModel = this.getConsolidatedConfigurationModel(key, overrides, workspace);\n        const folderConfigurationModel = this.getFolderConfigurationModelForResource(overrides.resource, workspace);\n        const memoryConfigurationModel = overrides.resource ? this._memoryConfigurationByResource.get(overrides.resource) || this._memoryConfiguration : this._memoryConfiguration;\n        const overrideIdentifiers = new Set();\n        for (const override of consolidateConfigurationModel.overrides) {\n            for (const overrideIdentifier of override.identifiers) {\n                if (consolidateConfigurationModel.getOverrideValue(key, overrideIdentifier) !== undefined) {\n                    overrideIdentifiers.add(overrideIdentifier);\n                }\n            }\n        }\n        return new ConfigurationInspectValue(key, overrides, consolidateConfigurationModel.getValue(key), overrideIdentifiers.size ? [...overrideIdentifiers] : undefined, this._defaultConfiguration, this._policyConfiguration.isEmpty() ? undefined : this._policyConfiguration, this.applicationConfiguration.isEmpty() ? undefined : this.applicationConfiguration, this.userConfiguration, this.localUserConfiguration, this.remoteUserConfiguration, workspace ? this._workspaceConfiguration : undefined, folderConfigurationModel ? folderConfigurationModel : undefined, memoryConfigurationModel);\n    }\n    get applicationConfiguration() {\n        return this._applicationConfiguration;\n    }\n    get userConfiguration() {\n        if (!this._userConfiguration) {\n            this._userConfiguration = this._remoteUserConfiguration.isEmpty() ? this._localUserConfiguration : this._localUserConfiguration.merge(this._remoteUserConfiguration);\n        }\n        return this._userConfiguration;\n    }\n    get localUserConfiguration() {\n        return this._localUserConfiguration;\n    }\n    get remoteUserConfiguration() {\n        return this._remoteUserConfiguration;\n    }\n    getConsolidatedConfigurationModel(section, overrides, workspace) {\n        let configurationModel = this.getConsolidatedConfigurationModelForResource(overrides, workspace);\n        if (overrides.overrideIdentifier) {\n            configurationModel = configurationModel.override(overrides.overrideIdentifier);\n        }\n        if (!this._policyConfiguration.isEmpty() && this._policyConfiguration.getValue(section) !== undefined) {\n            configurationModel = configurationModel.merge(this._policyConfiguration);\n        }\n        return configurationModel;\n    }\n    getConsolidatedConfigurationModelForResource({ resource }, workspace) {\n        let consolidateConfiguration = this.getWorkspaceConsolidatedConfiguration();\n        if (workspace && resource) {\n            const root = workspace.getFolder(resource);\n            if (root) {\n                consolidateConfiguration = this.getFolderConsolidatedConfiguration(root.uri) || consolidateConfiguration;\n            }\n            const memoryConfigurationForResource = this._memoryConfigurationByResource.get(resource);\n            if (memoryConfigurationForResource) {\n                consolidateConfiguration = consolidateConfiguration.merge(memoryConfigurationForResource);\n            }\n        }\n        return consolidateConfiguration;\n    }\n    getWorkspaceConsolidatedConfiguration() {\n        if (!this._workspaceConsolidatedConfiguration) {\n            this._workspaceConsolidatedConfiguration = this._defaultConfiguration.merge(this.applicationConfiguration, this.userConfiguration, this._workspaceConfiguration, this._memoryConfiguration);\n        }\n        return this._workspaceConsolidatedConfiguration;\n    }\n    getFolderConsolidatedConfiguration(folder) {\n        let folderConsolidatedConfiguration = this._foldersConsolidatedConfigurations.get(folder);\n        if (!folderConsolidatedConfiguration) {\n            const workspaceConsolidateConfiguration = this.getWorkspaceConsolidatedConfiguration();\n            const folderConfiguration = this._folderConfigurations.get(folder);\n            if (folderConfiguration) {\n                folderConsolidatedConfiguration = workspaceConsolidateConfiguration.merge(folderConfiguration);\n                this._foldersConsolidatedConfigurations.set(folder, folderConsolidatedConfiguration);\n            }\n            else {\n                folderConsolidatedConfiguration = workspaceConsolidateConfiguration;\n            }\n        }\n        return folderConsolidatedConfiguration;\n    }\n    getFolderConfigurationModelForResource(resource, workspace) {\n        if (workspace && resource) {\n            const root = workspace.getFolder(resource);\n            if (root) {\n                return this._folderConfigurations.get(root.uri);\n            }\n        }\n        return undefined;\n    }\n    toData() {\n        return {\n            defaults: {\n                contents: this._defaultConfiguration.contents,\n                overrides: this._defaultConfiguration.overrides,\n                keys: this._defaultConfiguration.keys\n            },\n            policy: {\n                contents: this._policyConfiguration.contents,\n                overrides: this._policyConfiguration.overrides,\n                keys: this._policyConfiguration.keys\n            },\n            application: {\n                contents: this.applicationConfiguration.contents,\n                overrides: this.applicationConfiguration.overrides,\n                keys: this.applicationConfiguration.keys\n            },\n            user: {\n                contents: this.userConfiguration.contents,\n                overrides: this.userConfiguration.overrides,\n                keys: this.userConfiguration.keys\n            },\n            workspace: {\n                contents: this._workspaceConfiguration.contents,\n                overrides: this._workspaceConfiguration.overrides,\n                keys: this._workspaceConfiguration.keys\n            },\n            folders: [...this._folderConfigurations.keys()].reduce((result, folder) => {\n                const { contents, overrides, keys } = this._folderConfigurations.get(folder);\n                result.push([folder, { contents, overrides, keys }]);\n                return result;\n            }, [])\n        };\n    }\n    static parse(data, logService) {\n        const defaultConfiguration = this.parseConfigurationModel(data.defaults, logService);\n        const policyConfiguration = this.parseConfigurationModel(data.policy, logService);\n        const applicationConfiguration = this.parseConfigurationModel(data.application, logService);\n        const userConfiguration = this.parseConfigurationModel(data.user, logService);\n        const workspaceConfiguration = this.parseConfigurationModel(data.workspace, logService);\n        const folders = data.folders.reduce((result, value) => {\n            result.set(URI.revive(value[0]), this.parseConfigurationModel(value[1], logService));\n            return result;\n        }, new ResourceMap());\n        return new Configuration(defaultConfiguration, policyConfiguration, applicationConfiguration, userConfiguration, ConfigurationModel.createEmptyModel(logService), workspaceConfiguration, folders, ConfigurationModel.createEmptyModel(logService), new ResourceMap(), logService);\n    }\n    static parseConfigurationModel(model, logService) {\n        return new ConfigurationModel(model.contents, model.keys, model.overrides, undefined, logService);\n    }\n}\nexport class ConfigurationChangeEvent {\n    constructor(change, previous, currentConfiguraiton, currentWorkspace, logService) {\n        this.change = change;\n        this.previous = previous;\n        this.currentConfiguraiton = currentConfiguraiton;\n        this.currentWorkspace = currentWorkspace;\n        this.logService = logService;\n        this._marker = '\\n';\n        this._markerCode1 = this._marker.charCodeAt(0);\n        this._markerCode2 = '.'.charCodeAt(0);\n        this.affectedKeys = new Set();\n        this._previousConfiguration = undefined;\n        for (const key of change.keys) {\n            this.affectedKeys.add(key);\n        }\n        for (const [, keys] of change.overrides) {\n            for (const key of keys) {\n                this.affectedKeys.add(key);\n            }\n        }\n        // Example: '\\nfoo.bar\\nabc.def\\n'\n        this._affectsConfigStr = this._marker;\n        for (const key of this.affectedKeys) {\n            this._affectsConfigStr += key + this._marker;\n        }\n    }\n    get previousConfiguration() {\n        if (!this._previousConfiguration && this.previous) {\n            this._previousConfiguration = Configuration.parse(this.previous.data, this.logService);\n        }\n        return this._previousConfiguration;\n    }\n    affectsConfiguration(section, overrides) {\n        var _a;\n        // we have one large string with all keys that have changed. we pad (marker) the section\n        // and check that either find it padded or before a segment character\n        const needle = this._marker + section;\n        const idx = this._affectsConfigStr.indexOf(needle);\n        if (idx < 0) {\n            // NOT: (marker + section)\n            return false;\n        }\n        const pos = idx + needle.length;\n        if (pos >= this._affectsConfigStr.length) {\n            return false;\n        }\n        const code = this._affectsConfigStr.charCodeAt(pos);\n        if (code !== this._markerCode1 && code !== this._markerCode2) {\n            // NOT: section + (marker | segment)\n            return false;\n        }\n        if (overrides) {\n            const value1 = this.previousConfiguration ? this.previousConfiguration.getValue(section, overrides, (_a = this.previous) === null || _a === void 0 ? void 0 : _a.workspace) : undefined;\n            const value2 = this.currentConfiguraiton.getValue(section, overrides, this.currentWorkspace);\n            return !objects.equals(value1, value2);\n        }\n        return true;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/configuration/common/configurationRegistry.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { distinct } from '../../../base/common/arrays.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport * as types from '../../../base/common/types.js';\nimport * as nls from '../../../nls.js';\nimport { getLanguageTagSettingPlainKey } from './configuration.js';\nimport { Extensions as JSONExtensions } from '../../jsonschemas/common/jsonContributionRegistry.js';\nimport { Registry } from '../../registry/common/platform.js';\nexport const Extensions = {\n    Configuration: 'base.contributions.configuration'\n};\nexport const allSettings = { properties: {}, patternProperties: {} };\nexport const applicationSettings = { properties: {}, patternProperties: {} };\nexport const machineSettings = { properties: {}, patternProperties: {} };\nexport const machineOverridableSettings = { properties: {}, patternProperties: {} };\nexport const windowSettings = { properties: {}, patternProperties: {} };\nexport const resourceSettings = { properties: {}, patternProperties: {} };\nexport const resourceLanguageSettingsSchemaId = 'vscode://schemas/settings/resourceLanguage';\nconst contributionRegistry = Registry.as(JSONExtensions.JSONContribution);\nclass ConfigurationRegistry {\n    constructor() {\n        this.overrideIdentifiers = new Set();\n        this._onDidSchemaChange = new Emitter();\n        this._onDidUpdateConfiguration = new Emitter();\n        this.configurationDefaultsOverrides = new Map();\n        this.defaultLanguageConfigurationOverridesNode = {\n            id: 'defaultOverrides',\n            title: nls.localize('defaultLanguageConfigurationOverrides.title', \"Default Language Configuration Overrides\"),\n            properties: {}\n        };\n        this.configurationContributors = [this.defaultLanguageConfigurationOverridesNode];\n        this.resourceLanguageSettingsSchema = {\n            properties: {},\n            patternProperties: {},\n            additionalProperties: true,\n            allowTrailingCommas: true,\n            allowComments: true\n        };\n        this.configurationProperties = {};\n        this.policyConfigurations = new Map();\n        this.excludedConfigurationProperties = {};\n        contributionRegistry.registerSchema(resourceLanguageSettingsSchemaId, this.resourceLanguageSettingsSchema);\n        this.registerOverridePropertyPatternKey();\n    }\n    registerConfiguration(configuration, validate = true) {\n        this.registerConfigurations([configuration], validate);\n    }\n    registerConfigurations(configurations, validate = true) {\n        const properties = new Set();\n        this.doRegisterConfigurations(configurations, validate, properties);\n        contributionRegistry.registerSchema(resourceLanguageSettingsSchemaId, this.resourceLanguageSettingsSchema);\n        this._onDidSchemaChange.fire();\n        this._onDidUpdateConfiguration.fire({ properties });\n    }\n    registerDefaultConfigurations(configurationDefaults) {\n        const properties = new Set();\n        this.doRegisterDefaultConfigurations(configurationDefaults, properties);\n        this._onDidSchemaChange.fire();\n        this._onDidUpdateConfiguration.fire({ properties, defaultsOverrides: true });\n    }\n    doRegisterDefaultConfigurations(configurationDefaults, bucket) {\n        var _a;\n        const overrideIdentifiers = [];\n        for (const { overrides, source } of configurationDefaults) {\n            for (const key in overrides) {\n                bucket.add(key);\n                if (OVERRIDE_PROPERTY_REGEX.test(key)) {\n                    const configurationDefaultOverride = this.configurationDefaultsOverrides.get(key);\n                    const valuesSources = (_a = configurationDefaultOverride === null || configurationDefaultOverride === void 0 ? void 0 : configurationDefaultOverride.valuesSources) !== null && _a !== void 0 ? _a : new Map();\n                    if (source) {\n                        for (const configuration of Object.keys(overrides[key])) {\n                            valuesSources.set(configuration, source);\n                        }\n                    }\n                    const defaultValue = { ...((configurationDefaultOverride === null || configurationDefaultOverride === void 0 ? void 0 : configurationDefaultOverride.value) || {}), ...overrides[key] };\n                    this.configurationDefaultsOverrides.set(key, { source, value: defaultValue, valuesSources });\n                    const plainKey = getLanguageTagSettingPlainKey(key);\n                    const property = {\n                        type: 'object',\n                        default: defaultValue,\n                        description: nls.localize('defaultLanguageConfiguration.description', \"Configure settings to be overridden for the {0} language.\", plainKey),\n                        $ref: resourceLanguageSettingsSchemaId,\n                        defaultDefaultValue: defaultValue,\n                        source: types.isString(source) ? undefined : source,\n                        defaultValueSource: source\n                    };\n                    overrideIdentifiers.push(...overrideIdentifiersFromKey(key));\n                    this.configurationProperties[key] = property;\n                    this.defaultLanguageConfigurationOverridesNode.properties[key] = property;\n                }\n                else {\n                    this.configurationDefaultsOverrides.set(key, { value: overrides[key], source });\n                    const property = this.configurationProperties[key];\n                    if (property) {\n                        this.updatePropertyDefaultValue(key, property);\n                        this.updateSchema(key, property);\n                    }\n                }\n            }\n        }\n        this.doRegisterOverrideIdentifiers(overrideIdentifiers);\n    }\n    registerOverrideIdentifiers(overrideIdentifiers) {\n        this.doRegisterOverrideIdentifiers(overrideIdentifiers);\n        this._onDidSchemaChange.fire();\n    }\n    doRegisterOverrideIdentifiers(overrideIdentifiers) {\n        for (const overrideIdentifier of overrideIdentifiers) {\n            this.overrideIdentifiers.add(overrideIdentifier);\n        }\n        this.updateOverridePropertyPatternKey();\n    }\n    doRegisterConfigurations(configurations, validate, bucket) {\n        configurations.forEach(configuration => {\n            this.validateAndRegisterProperties(configuration, validate, configuration.extensionInfo, configuration.restrictedProperties, undefined, bucket);\n            this.configurationContributors.push(configuration);\n            this.registerJSONConfiguration(configuration);\n        });\n    }\n    validateAndRegisterProperties(configuration, validate = true, extensionInfo, restrictedProperties, scope = 3 /* ConfigurationScope.WINDOW */, bucket) {\n        var _a;\n        scope = types.isUndefinedOrNull(configuration.scope) ? scope : configuration.scope;\n        const properties = configuration.properties;\n        if (properties) {\n            for (const key in properties) {\n                const property = properties[key];\n                if (validate && validateProperty(key, property)) {\n                    delete properties[key];\n                    continue;\n                }\n                property.source = extensionInfo;\n                // update default value\n                property.defaultDefaultValue = properties[key].default;\n                this.updatePropertyDefaultValue(key, property);\n                // update scope\n                if (OVERRIDE_PROPERTY_REGEX.test(key)) {\n                    property.scope = undefined; // No scope for overridable properties `[${identifier}]`\n                }\n                else {\n                    property.scope = types.isUndefinedOrNull(property.scope) ? scope : property.scope;\n                    property.restricted = types.isUndefinedOrNull(property.restricted) ? !!(restrictedProperties === null || restrictedProperties === void 0 ? void 0 : restrictedProperties.includes(key)) : property.restricted;\n                }\n                // Add to properties maps\n                // Property is included by default if 'included' is unspecified\n                if (properties[key].hasOwnProperty('included') && !properties[key].included) {\n                    this.excludedConfigurationProperties[key] = properties[key];\n                    delete properties[key];\n                    continue;\n                }\n                else {\n                    this.configurationProperties[key] = properties[key];\n                    if ((_a = properties[key].policy) === null || _a === void 0 ? void 0 : _a.name) {\n                        this.policyConfigurations.set(properties[key].policy.name, key);\n                    }\n                }\n                if (!properties[key].deprecationMessage && properties[key].markdownDeprecationMessage) {\n                    // If not set, default deprecationMessage to the markdown source\n                    properties[key].deprecationMessage = properties[key].markdownDeprecationMessage;\n                }\n                bucket.add(key);\n            }\n        }\n        const subNodes = configuration.allOf;\n        if (subNodes) {\n            for (const node of subNodes) {\n                this.validateAndRegisterProperties(node, validate, extensionInfo, restrictedProperties, scope, bucket);\n            }\n        }\n    }\n    getConfigurationProperties() {\n        return this.configurationProperties;\n    }\n    getPolicyConfigurations() {\n        return this.policyConfigurations;\n    }\n    registerJSONConfiguration(configuration) {\n        const register = (configuration) => {\n            const properties = configuration.properties;\n            if (properties) {\n                for (const key in properties) {\n                    this.updateSchema(key, properties[key]);\n                }\n            }\n            const subNodes = configuration.allOf;\n            subNodes === null || subNodes === void 0 ? void 0 : subNodes.forEach(register);\n        };\n        register(configuration);\n    }\n    updateSchema(key, property) {\n        allSettings.properties[key] = property;\n        switch (property.scope) {\n            case 1 /* ConfigurationScope.APPLICATION */:\n                applicationSettings.properties[key] = property;\n                break;\n            case 2 /* ConfigurationScope.MACHINE */:\n                machineSettings.properties[key] = property;\n                break;\n            case 6 /* ConfigurationScope.MACHINE_OVERRIDABLE */:\n                machineOverridableSettings.properties[key] = property;\n                break;\n            case 3 /* ConfigurationScope.WINDOW */:\n                windowSettings.properties[key] = property;\n                break;\n            case 4 /* ConfigurationScope.RESOURCE */:\n                resourceSettings.properties[key] = property;\n                break;\n            case 5 /* ConfigurationScope.LANGUAGE_OVERRIDABLE */:\n                resourceSettings.properties[key] = property;\n                this.resourceLanguageSettingsSchema.properties[key] = property;\n                break;\n        }\n    }\n    updateOverridePropertyPatternKey() {\n        for (const overrideIdentifier of this.overrideIdentifiers.values()) {\n            const overrideIdentifierProperty = `[${overrideIdentifier}]`;\n            const resourceLanguagePropertiesSchema = {\n                type: 'object',\n                description: nls.localize('overrideSettings.defaultDescription', \"Configure editor settings to be overridden for a language.\"),\n                errorMessage: nls.localize('overrideSettings.errorMessage', \"This setting does not support per-language configuration.\"),\n                $ref: resourceLanguageSettingsSchemaId,\n            };\n            this.updatePropertyDefaultValue(overrideIdentifierProperty, resourceLanguagePropertiesSchema);\n            allSettings.properties[overrideIdentifierProperty] = resourceLanguagePropertiesSchema;\n            applicationSettings.properties[overrideIdentifierProperty] = resourceLanguagePropertiesSchema;\n            machineSettings.properties[overrideIdentifierProperty] = resourceLanguagePropertiesSchema;\n            machineOverridableSettings.properties[overrideIdentifierProperty] = resourceLanguagePropertiesSchema;\n            windowSettings.properties[overrideIdentifierProperty] = resourceLanguagePropertiesSchema;\n            resourceSettings.properties[overrideIdentifierProperty] = resourceLanguagePropertiesSchema;\n        }\n    }\n    registerOverridePropertyPatternKey() {\n        const resourceLanguagePropertiesSchema = {\n            type: 'object',\n            description: nls.localize('overrideSettings.defaultDescription', \"Configure editor settings to be overridden for a language.\"),\n            errorMessage: nls.localize('overrideSettings.errorMessage', \"This setting does not support per-language configuration.\"),\n            $ref: resourceLanguageSettingsSchemaId,\n        };\n        allSettings.patternProperties[OVERRIDE_PROPERTY_PATTERN] = resourceLanguagePropertiesSchema;\n        applicationSettings.patternProperties[OVERRIDE_PROPERTY_PATTERN] = resourceLanguagePropertiesSchema;\n        machineSettings.patternProperties[OVERRIDE_PROPERTY_PATTERN] = resourceLanguagePropertiesSchema;\n        machineOverridableSettings.patternProperties[OVERRIDE_PROPERTY_PATTERN] = resourceLanguagePropertiesSchema;\n        windowSettings.patternProperties[OVERRIDE_PROPERTY_PATTERN] = resourceLanguagePropertiesSchema;\n        resourceSettings.patternProperties[OVERRIDE_PROPERTY_PATTERN] = resourceLanguagePropertiesSchema;\n        this._onDidSchemaChange.fire();\n    }\n    updatePropertyDefaultValue(key, property) {\n        const configurationdefaultOverride = this.configurationDefaultsOverrides.get(key);\n        let defaultValue = configurationdefaultOverride === null || configurationdefaultOverride === void 0 ? void 0 : configurationdefaultOverride.value;\n        let defaultSource = configurationdefaultOverride === null || configurationdefaultOverride === void 0 ? void 0 : configurationdefaultOverride.source;\n        if (types.isUndefined(defaultValue)) {\n            defaultValue = property.defaultDefaultValue;\n            defaultSource = undefined;\n        }\n        if (types.isUndefined(defaultValue)) {\n            defaultValue = getDefaultValue(property.type);\n        }\n        property.default = defaultValue;\n        property.defaultValueSource = defaultSource;\n    }\n}\nconst OVERRIDE_IDENTIFIER_PATTERN = `\\\\[([^\\\\]]+)\\\\]`;\nconst OVERRIDE_IDENTIFIER_REGEX = new RegExp(OVERRIDE_IDENTIFIER_PATTERN, 'g');\nexport const OVERRIDE_PROPERTY_PATTERN = `^(${OVERRIDE_IDENTIFIER_PATTERN})+$`;\nexport const OVERRIDE_PROPERTY_REGEX = new RegExp(OVERRIDE_PROPERTY_PATTERN);\nexport function overrideIdentifiersFromKey(key) {\n    const identifiers = [];\n    if (OVERRIDE_PROPERTY_REGEX.test(key)) {\n        let matches = OVERRIDE_IDENTIFIER_REGEX.exec(key);\n        while (matches === null || matches === void 0 ? void 0 : matches.length) {\n            const identifier = matches[1].trim();\n            if (identifier) {\n                identifiers.push(identifier);\n            }\n            matches = OVERRIDE_IDENTIFIER_REGEX.exec(key);\n        }\n    }\n    return distinct(identifiers);\n}\nexport function getDefaultValue(type) {\n    const t = Array.isArray(type) ? type[0] : type;\n    switch (t) {\n        case 'boolean':\n            return false;\n        case 'integer':\n        case 'number':\n            return 0;\n        case 'string':\n            return '';\n        case 'array':\n            return [];\n        case 'object':\n            return {};\n        default:\n            return null;\n    }\n}\nconst configurationRegistry = new ConfigurationRegistry();\nRegistry.add(Extensions.Configuration, configurationRegistry);\nexport function validateProperty(property, schema) {\n    var _a, _b, _c, _d;\n    if (!property.trim()) {\n        return nls.localize('config.property.empty', \"Cannot register an empty property\");\n    }\n    if (OVERRIDE_PROPERTY_REGEX.test(property)) {\n        return nls.localize('config.property.languageDefault', \"Cannot register '{0}'. This matches property pattern '\\\\\\\\[.*\\\\\\\\]$' for describing language specific editor settings. Use 'configurationDefaults' contribution.\", property);\n    }\n    if (configurationRegistry.getConfigurationProperties()[property] !== undefined) {\n        return nls.localize('config.property.duplicate', \"Cannot register '{0}'. This property is already registered.\", property);\n    }\n    if (((_a = schema.policy) === null || _a === void 0 ? void 0 : _a.name) && configurationRegistry.getPolicyConfigurations().get((_b = schema.policy) === null || _b === void 0 ? void 0 : _b.name) !== undefined) {\n        return nls.localize('config.policy.duplicate', \"Cannot register '{0}'. The associated policy {1} is already registered with {2}.\", property, (_c = schema.policy) === null || _c === void 0 ? void 0 : _c.name, configurationRegistry.getPolicyConfigurations().get((_d = schema.policy) === null || _d === void 0 ? void 0 : _d.name));\n    }\n    return null;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/configuration/common/configurations.js",
    "content": "import { Disposable } from '../../../base/common/lifecycle.js';\nimport { ConfigurationModel } from './configurationModels.js';\nimport { Extensions } from './configurationRegistry.js';\nimport { Registry } from '../../registry/common/platform.js';\nexport class DefaultConfiguration extends Disposable {\n    get configurationModel() {\n        return this._configurationModel;\n    }\n    constructor(logService) {\n        super();\n        this.logService = logService;\n        this._configurationModel = ConfigurationModel.createEmptyModel(this.logService);\n    }\n    reload() {\n        this.resetConfigurationModel();\n        return this.configurationModel;\n    }\n    getConfigurationDefaultOverrides() {\n        return {};\n    }\n    resetConfigurationModel() {\n        this._configurationModel = ConfigurationModel.createEmptyModel(this.logService);\n        const properties = Registry.as(Extensions.Configuration).getConfigurationProperties();\n        this.updateConfigurationModel(Object.keys(properties), properties);\n    }\n    updateConfigurationModel(properties, configurationProperties) {\n        const configurationDefaultsOverrides = this.getConfigurationDefaultOverrides();\n        for (const key of properties) {\n            const defaultOverrideValue = configurationDefaultsOverrides[key];\n            const propertySchema = configurationProperties[key];\n            if (defaultOverrideValue !== undefined) {\n                this._configurationModel.addValue(key, defaultOverrideValue);\n            }\n            else if (propertySchema) {\n                this._configurationModel.addValue(key, propertySchema.default);\n            }\n            else {\n                this._configurationModel.removeValue(key);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/contextkey/browser/contextKeyService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { PauseableEmitter } from '../../../base/common/event.js';\nimport { Iterable } from '../../../base/common/iterator.js';\nimport { Disposable, MutableDisposable } from '../../../base/common/lifecycle.js';\nimport { cloneAndChange } from '../../../base/common/objects.js';\nimport { TernarySearchTree } from '../../../base/common/ternarySearchTree.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { localize } from '../../../nls.js';\nimport { CommandsRegistry } from '../../commands/common/commands.js';\nimport { IConfigurationService } from '../../configuration/common/configuration.js';\nimport { IContextKeyService, RawContextKey } from '../common/contextkey.js';\nconst KEYBINDING_CONTEXT_ATTR = 'data-keybinding-context';\nexport class Context {\n    constructor(id, parent) {\n        this._id = id;\n        this._parent = parent;\n        this._value = Object.create(null);\n        this._value['_contextId'] = id;\n    }\n    get value() {\n        return { ...this._value };\n    }\n    setValue(key, value) {\n        // console.log('SET ' + key + ' = ' + value + ' ON ' + this._id);\n        if (this._value[key] !== value) {\n            this._value[key] = value;\n            return true;\n        }\n        return false;\n    }\n    removeValue(key) {\n        // console.log('REMOVE ' + key + ' FROM ' + this._id);\n        if (key in this._value) {\n            delete this._value[key];\n            return true;\n        }\n        return false;\n    }\n    getValue(key) {\n        const ret = this._value[key];\n        if (typeof ret === 'undefined' && this._parent) {\n            return this._parent.getValue(key);\n        }\n        return ret;\n    }\n}\nclass NullContext extends Context {\n    constructor() {\n        super(-1, null);\n    }\n    setValue(key, value) {\n        return false;\n    }\n    removeValue(key) {\n        return false;\n    }\n    getValue(key) {\n        return undefined;\n    }\n}\nNullContext.INSTANCE = new NullContext();\nclass ConfigAwareContextValuesContainer extends Context {\n    constructor(id, _configurationService, emitter) {\n        super(id, null);\n        this._configurationService = _configurationService;\n        this._values = TernarySearchTree.forConfigKeys();\n        this._listener = this._configurationService.onDidChangeConfiguration(event => {\n            if (event.source === 7 /* ConfigurationTarget.DEFAULT */) {\n                // new setting, reset everything\n                const allKeys = Array.from(this._values, ([k]) => k);\n                this._values.clear();\n                emitter.fire(new ArrayContextKeyChangeEvent(allKeys));\n            }\n            else {\n                const changedKeys = [];\n                for (const configKey of event.affectedKeys) {\n                    const contextKey = `config.${configKey}`;\n                    const cachedItems = this._values.findSuperstr(contextKey);\n                    if (cachedItems !== undefined) {\n                        changedKeys.push(...Iterable.map(cachedItems, ([key]) => key));\n                        this._values.deleteSuperstr(contextKey);\n                    }\n                    if (this._values.has(contextKey)) {\n                        changedKeys.push(contextKey);\n                        this._values.delete(contextKey);\n                    }\n                }\n                emitter.fire(new ArrayContextKeyChangeEvent(changedKeys));\n            }\n        });\n    }\n    dispose() {\n        this._listener.dispose();\n    }\n    getValue(key) {\n        if (key.indexOf(ConfigAwareContextValuesContainer._keyPrefix) !== 0) {\n            return super.getValue(key);\n        }\n        if (this._values.has(key)) {\n            return this._values.get(key);\n        }\n        const configKey = key.substr(ConfigAwareContextValuesContainer._keyPrefix.length);\n        const configValue = this._configurationService.getValue(configKey);\n        let value = undefined;\n        switch (typeof configValue) {\n            case 'number':\n            case 'boolean':\n            case 'string':\n                value = configValue;\n                break;\n            default:\n                if (Array.isArray(configValue)) {\n                    value = JSON.stringify(configValue);\n                }\n                else {\n                    value = configValue;\n                }\n        }\n        this._values.set(key, value);\n        return value;\n    }\n    setValue(key, value) {\n        return super.setValue(key, value);\n    }\n    removeValue(key) {\n        return super.removeValue(key);\n    }\n}\nConfigAwareContextValuesContainer._keyPrefix = 'config.';\nclass ContextKey {\n    constructor(service, key, defaultValue) {\n        this._service = service;\n        this._key = key;\n        this._defaultValue = defaultValue;\n        this.reset();\n    }\n    set(value) {\n        this._service.setContext(this._key, value);\n    }\n    reset() {\n        if (typeof this._defaultValue === 'undefined') {\n            this._service.removeContext(this._key);\n        }\n        else {\n            this._service.setContext(this._key, this._defaultValue);\n        }\n    }\n    get() {\n        return this._service.getContextKeyValue(this._key);\n    }\n}\nclass SimpleContextKeyChangeEvent {\n    constructor(key) {\n        this.key = key;\n    }\n    affectsSome(keys) {\n        return keys.has(this.key);\n    }\n    allKeysContainedIn(keys) {\n        return this.affectsSome(keys);\n    }\n}\nclass ArrayContextKeyChangeEvent {\n    constructor(keys) {\n        this.keys = keys;\n    }\n    affectsSome(keys) {\n        for (const key of this.keys) {\n            if (keys.has(key)) {\n                return true;\n            }\n        }\n        return false;\n    }\n    allKeysContainedIn(keys) {\n        return this.keys.every(key => keys.has(key));\n    }\n}\nclass CompositeContextKeyChangeEvent {\n    constructor(events) {\n        this.events = events;\n    }\n    affectsSome(keys) {\n        for (const e of this.events) {\n            if (e.affectsSome(keys)) {\n                return true;\n            }\n        }\n        return false;\n    }\n    allKeysContainedIn(keys) {\n        return this.events.every(evt => evt.allKeysContainedIn(keys));\n    }\n}\nfunction allEventKeysInContext(event, context) {\n    return event.allKeysContainedIn(new Set(Object.keys(context)));\n}\nexport class AbstractContextKeyService extends Disposable {\n    constructor(myContextId) {\n        super();\n        this._onDidChangeContext = this._register(new PauseableEmitter({ merge: input => new CompositeContextKeyChangeEvent(input) }));\n        this.onDidChangeContext = this._onDidChangeContext.event;\n        this._isDisposed = false;\n        this._myContextId = myContextId;\n    }\n    createKey(key, defaultValue) {\n        if (this._isDisposed) {\n            throw new Error(`AbstractContextKeyService has been disposed`);\n        }\n        return new ContextKey(this, key, defaultValue);\n    }\n    bufferChangeEvents(callback) {\n        this._onDidChangeContext.pause();\n        try {\n            callback();\n        }\n        finally {\n            this._onDidChangeContext.resume();\n        }\n    }\n    createScoped(domNode) {\n        if (this._isDisposed) {\n            throw new Error(`AbstractContextKeyService has been disposed`);\n        }\n        return new ScopedContextKeyService(this, domNode);\n    }\n    contextMatchesRules(rules) {\n        if (this._isDisposed) {\n            throw new Error(`AbstractContextKeyService has been disposed`);\n        }\n        const context = this.getContextValuesContainer(this._myContextId);\n        const result = (rules ? rules.evaluate(context) : true);\n        // console.group(rules.serialize() + ' -> ' + result);\n        // rules.keys().forEach(key => { console.log(key, ctx[key]); });\n        // console.groupEnd();\n        return result;\n    }\n    getContextKeyValue(key) {\n        if (this._isDisposed) {\n            return undefined;\n        }\n        return this.getContextValuesContainer(this._myContextId).getValue(key);\n    }\n    setContext(key, value) {\n        if (this._isDisposed) {\n            return;\n        }\n        const myContext = this.getContextValuesContainer(this._myContextId);\n        if (!myContext) {\n            return;\n        }\n        if (myContext.setValue(key, value)) {\n            this._onDidChangeContext.fire(new SimpleContextKeyChangeEvent(key));\n        }\n    }\n    removeContext(key) {\n        if (this._isDisposed) {\n            return;\n        }\n        if (this.getContextValuesContainer(this._myContextId).removeValue(key)) {\n            this._onDidChangeContext.fire(new SimpleContextKeyChangeEvent(key));\n        }\n    }\n    getContext(target) {\n        if (this._isDisposed) {\n            return NullContext.INSTANCE;\n        }\n        return this.getContextValuesContainer(findContextAttr(target));\n    }\n    dispose() {\n        super.dispose();\n        this._isDisposed = true;\n    }\n}\nlet ContextKeyService = class ContextKeyService extends AbstractContextKeyService {\n    constructor(configurationService) {\n        super(0);\n        this._contexts = new Map();\n        this._lastContextId = 0;\n        const myContext = this._register(new ConfigAwareContextValuesContainer(this._myContextId, configurationService, this._onDidChangeContext));\n        this._contexts.set(this._myContextId, myContext);\n        // Uncomment this to see the contexts continuously logged\n        // let lastLoggedValue: string | null = null;\n        // setInterval(() => {\n        // \tlet values = Object.keys(this._contexts).map((key) => this._contexts[key]);\n        // \tlet logValue = values.map(v => JSON.stringify(v._value, null, '\\t')).join('\\n');\n        // \tif (lastLoggedValue !== logValue) {\n        // \t\tlastLoggedValue = logValue;\n        // \t\tconsole.log(lastLoggedValue);\n        // \t}\n        // }, 2000);\n    }\n    getContextValuesContainer(contextId) {\n        if (this._isDisposed) {\n            return NullContext.INSTANCE;\n        }\n        return this._contexts.get(contextId) || NullContext.INSTANCE;\n    }\n    createChildContext(parentContextId = this._myContextId) {\n        if (this._isDisposed) {\n            throw new Error(`ContextKeyService has been disposed`);\n        }\n        const id = (++this._lastContextId);\n        this._contexts.set(id, new Context(id, this.getContextValuesContainer(parentContextId)));\n        return id;\n    }\n    disposeContext(contextId) {\n        if (!this._isDisposed) {\n            this._contexts.delete(contextId);\n        }\n    }\n};\nContextKeyService = __decorate([\n    __param(0, IConfigurationService)\n], ContextKeyService);\nexport { ContextKeyService };\nclass ScopedContextKeyService extends AbstractContextKeyService {\n    constructor(parent, domNode) {\n        super(parent.createChildContext());\n        this._parentChangeListener = this._register(new MutableDisposable());\n        this._parent = parent;\n        this._updateParentChangeListener();\n        this._domNode = domNode;\n        if (this._domNode.hasAttribute(KEYBINDING_CONTEXT_ATTR)) {\n            let extraInfo = '';\n            if (this._domNode.classList) {\n                extraInfo = Array.from(this._domNode.classList.values()).join(', ');\n            }\n            console.error(`Element already has context attribute${extraInfo ? ': ' + extraInfo : ''}`);\n        }\n        this._domNode.setAttribute(KEYBINDING_CONTEXT_ATTR, String(this._myContextId));\n    }\n    _updateParentChangeListener() {\n        // Forward parent events to this listener. Parent will change.\n        this._parentChangeListener.value = this._parent.onDidChangeContext(e => {\n            const thisContainer = this._parent.getContextValuesContainer(this._myContextId);\n            const thisContextValues = thisContainer.value;\n            if (!allEventKeysInContext(e, thisContextValues)) {\n                this._onDidChangeContext.fire(e);\n            }\n        });\n    }\n    dispose() {\n        if (this._isDisposed) {\n            return;\n        }\n        this._parent.disposeContext(this._myContextId);\n        this._domNode.removeAttribute(KEYBINDING_CONTEXT_ATTR);\n        super.dispose();\n    }\n    getContextValuesContainer(contextId) {\n        if (this._isDisposed) {\n            return NullContext.INSTANCE;\n        }\n        return this._parent.getContextValuesContainer(contextId);\n    }\n    createChildContext(parentContextId = this._myContextId) {\n        if (this._isDisposed) {\n            throw new Error(`ScopedContextKeyService has been disposed`);\n        }\n        return this._parent.createChildContext(parentContextId);\n    }\n    disposeContext(contextId) {\n        if (this._isDisposed) {\n            return;\n        }\n        this._parent.disposeContext(contextId);\n    }\n}\nfunction findContextAttr(domNode) {\n    while (domNode) {\n        if (domNode.hasAttribute(KEYBINDING_CONTEXT_ATTR)) {\n            const attr = domNode.getAttribute(KEYBINDING_CONTEXT_ATTR);\n            if (attr) {\n                return parseInt(attr, 10);\n            }\n            return NaN;\n        }\n        domNode = domNode.parentElement;\n    }\n    return 0;\n}\nexport function setContext(accessor, contextKey, contextValue) {\n    const contextKeyService = accessor.get(IContextKeyService);\n    contextKeyService.createKey(String(contextKey), stringifyURIs(contextValue));\n}\nfunction stringifyURIs(contextValue) {\n    return cloneAndChange(contextValue, (obj) => {\n        if (typeof obj === 'object' && obj.$mid === 1 /* MarshalledId.Uri */) {\n            return URI.revive(obj).toString();\n        }\n        if (obj instanceof URI) {\n            return obj.toString();\n        }\n        return undefined;\n    });\n}\nCommandsRegistry.registerCommand('_setContext', setContext);\nCommandsRegistry.registerCommand({\n    id: 'getContextKeyInfo',\n    handler() {\n        return [...RawContextKey.all()].sort((a, b) => a.key.localeCompare(b.key));\n    },\n    metadata: {\n        description: localize('getContextKeyInfo', \"A command that returns information about context keys\"),\n        args: []\n    }\n});\nCommandsRegistry.registerCommand('_generateContextKeyInfo', function () {\n    const result = [];\n    const seen = new Set();\n    for (const info of RawContextKey.all()) {\n        if (!seen.has(info.key)) {\n            seen.add(info.key);\n            result.push(info);\n        }\n    }\n    result.sort((a, b) => a.key.localeCompare(b.key));\n    console.log(JSON.stringify(result, undefined, 2));\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/contextkey/common/contextkey.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { isChrome, isEdge, isFirefox, isLinux, isMacintosh, isSafari, isWeb, isWindows } from '../../../base/common/platform.js';\nimport { isFalsyOrWhitespace } from '../../../base/common/strings.js';\nimport { Scanner } from './scanner.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nimport { localize } from '../../../nls.js';\nconst CONSTANT_VALUES = new Map();\nCONSTANT_VALUES.set('false', false);\nCONSTANT_VALUES.set('true', true);\nCONSTANT_VALUES.set('isMac', isMacintosh);\nCONSTANT_VALUES.set('isLinux', isLinux);\nCONSTANT_VALUES.set('isWindows', isWindows);\nCONSTANT_VALUES.set('isWeb', isWeb);\nCONSTANT_VALUES.set('isMacNative', isMacintosh && !isWeb);\nCONSTANT_VALUES.set('isEdge', isEdge);\nCONSTANT_VALUES.set('isFirefox', isFirefox);\nCONSTANT_VALUES.set('isChrome', isChrome);\nCONSTANT_VALUES.set('isSafari', isSafari);\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst defaultConfig = {\n    regexParsingWithErrorRecovery: true\n};\nconst errorEmptyString = localize('contextkey.parser.error.emptyString', \"Empty context key expression\");\nconst hintEmptyString = localize('contextkey.parser.error.emptyString.hint', \"Did you forget to write an expression? You can also put 'false' or 'true' to always evaluate to false or true, respectively.\");\nconst errorNoInAfterNot = localize('contextkey.parser.error.noInAfterNot', \"'in' after 'not'.\");\nconst errorClosingParenthesis = localize('contextkey.parser.error.closingParenthesis', \"closing parenthesis ')'\");\nconst errorUnexpectedToken = localize('contextkey.parser.error.unexpectedToken', \"Unexpected token\");\nconst hintUnexpectedToken = localize('contextkey.parser.error.unexpectedToken.hint', \"Did you forget to put && or || before the token?\");\nconst errorUnexpectedEOF = localize('contextkey.parser.error.unexpectedEOF', \"Unexpected end of expression\");\nconst hintUnexpectedEOF = localize('contextkey.parser.error.unexpectedEOF.hint', \"Did you forget to put a context key?\");\n/**\n * A parser for context key expressions.\n *\n * Example:\n * ```ts\n * const parser = new Parser();\n * const expr = parser.parse('foo == \"bar\" && baz == true');\n *\n * if (expr === undefined) {\n * \t// there were lexing or parsing errors\n * \t// process lexing errors with `parser.lexingErrors`\n *  // process parsing errors with `parser.parsingErrors`\n * } else {\n * \t// expr is a valid expression\n * }\n * ```\n */\nexport class Parser {\n    constructor(_config = defaultConfig) {\n        this._config = _config;\n        // lifetime note: `_scanner` lives as long as the parser does, i.e., is not reset between calls to `parse`\n        this._scanner = new Scanner();\n        // lifetime note: `_tokens`, `_current`, and `_parsingErrors` must be reset between calls to `parse`\n        this._tokens = [];\n        this._current = 0; // invariant: 0 <= this._current < this._tokens.length ; any incrementation of this value must first call `_isAtEnd`\n        this._parsingErrors = [];\n        this._flagsGYRe = /g|y/g;\n    }\n    /**\n     * Parse a context key expression.\n     *\n     * @param input the expression to parse\n     * @returns the parsed expression or `undefined` if there's an error - call `lexingErrors` and `parsingErrors` to see the errors\n     */\n    parse(input) {\n        if (input === '') {\n            this._parsingErrors.push({ message: errorEmptyString, offset: 0, lexeme: '', additionalInfo: hintEmptyString });\n            return undefined;\n        }\n        this._tokens = this._scanner.reset(input).scan();\n        // @ulugbekna: we do not stop parsing if there are lexing errors to be able to reconstruct regexes with unescaped slashes; TODO@ulugbekna: make this respect config option for recovery\n        this._current = 0;\n        this._parsingErrors = [];\n        try {\n            const expr = this._expr();\n            if (!this._isAtEnd()) {\n                const peek = this._peek();\n                const additionalInfo = peek.type === 17 /* TokenType.Str */ ? hintUnexpectedToken : undefined;\n                this._parsingErrors.push({ message: errorUnexpectedToken, offset: peek.offset, lexeme: Scanner.getLexeme(peek), additionalInfo });\n                throw Parser._parseError;\n            }\n            return expr;\n        }\n        catch (e) {\n            if (!(e === Parser._parseError)) {\n                throw e;\n            }\n            return undefined;\n        }\n    }\n    _expr() {\n        return this._or();\n    }\n    _or() {\n        const expr = [this._and()];\n        while (this._matchOne(16 /* TokenType.Or */)) {\n            const right = this._and();\n            expr.push(right);\n        }\n        return expr.length === 1 ? expr[0] : ContextKeyExpr.or(...expr);\n    }\n    _and() {\n        const expr = [this._term()];\n        while (this._matchOne(15 /* TokenType.And */)) {\n            const right = this._term();\n            expr.push(right);\n        }\n        return expr.length === 1 ? expr[0] : ContextKeyExpr.and(...expr);\n    }\n    _term() {\n        if (this._matchOne(2 /* TokenType.Neg */)) {\n            const peek = this._peek();\n            switch (peek.type) {\n                case 11 /* TokenType.True */:\n                    this._advance();\n                    return ContextKeyFalseExpr.INSTANCE;\n                case 12 /* TokenType.False */:\n                    this._advance();\n                    return ContextKeyTrueExpr.INSTANCE;\n                case 0 /* TokenType.LParen */: {\n                    this._advance();\n                    const expr = this._expr();\n                    this._consume(1 /* TokenType.RParen */, errorClosingParenthesis);\n                    return expr === null || expr === void 0 ? void 0 : expr.negate();\n                }\n                case 17 /* TokenType.Str */:\n                    this._advance();\n                    return ContextKeyNotExpr.create(peek.lexeme);\n                default:\n                    throw this._errExpectedButGot(`KEY | true | false | '(' expression ')'`, peek);\n            }\n        }\n        return this._primary();\n    }\n    _primary() {\n        const peek = this._peek();\n        switch (peek.type) {\n            case 11 /* TokenType.True */:\n                this._advance();\n                return ContextKeyExpr.true();\n            case 12 /* TokenType.False */:\n                this._advance();\n                return ContextKeyExpr.false();\n            case 0 /* TokenType.LParen */: {\n                this._advance();\n                const expr = this._expr();\n                this._consume(1 /* TokenType.RParen */, errorClosingParenthesis);\n                return expr;\n            }\n            case 17 /* TokenType.Str */: {\n                // KEY\n                const key = peek.lexeme;\n                this._advance();\n                // =~ regex\n                if (this._matchOne(9 /* TokenType.RegexOp */)) {\n                    // @ulugbekna: we need to reconstruct the regex from the tokens because some extensions use unescaped slashes in regexes\n                    const expr = this._peek();\n                    if (!this._config.regexParsingWithErrorRecovery) {\n                        this._advance();\n                        if (expr.type !== 10 /* TokenType.RegexStr */) {\n                            throw this._errExpectedButGot(`REGEX`, expr);\n                        }\n                        const regexLexeme = expr.lexeme;\n                        const closingSlashIndex = regexLexeme.lastIndexOf('/');\n                        const flags = closingSlashIndex === regexLexeme.length - 1 ? undefined : this._removeFlagsGY(regexLexeme.substring(closingSlashIndex + 1));\n                        let regexp;\n                        try {\n                            regexp = new RegExp(regexLexeme.substring(1, closingSlashIndex), flags);\n                        }\n                        catch (e) {\n                            throw this._errExpectedButGot(`REGEX`, expr);\n                        }\n                        return ContextKeyRegexExpr.create(key, regexp);\n                    }\n                    switch (expr.type) {\n                        case 10 /* TokenType.RegexStr */:\n                        case 19 /* TokenType.Error */: { // also handle an ErrorToken in case of smth such as /(/file)/\n                            const lexemeReconstruction = [expr.lexeme]; // /REGEX/ or /REGEX/FLAGS\n                            this._advance();\n                            let followingToken = this._peek();\n                            let parenBalance = 0;\n                            for (let i = 0; i < expr.lexeme.length; i++) {\n                                if (expr.lexeme.charCodeAt(i) === 40 /* CharCode.OpenParen */) {\n                                    parenBalance++;\n                                }\n                                else if (expr.lexeme.charCodeAt(i) === 41 /* CharCode.CloseParen */) {\n                                    parenBalance--;\n                                }\n                            }\n                            while (!this._isAtEnd() && followingToken.type !== 15 /* TokenType.And */ && followingToken.type !== 16 /* TokenType.Or */) {\n                                switch (followingToken.type) {\n                                    case 0 /* TokenType.LParen */:\n                                        parenBalance++;\n                                        break;\n                                    case 1 /* TokenType.RParen */:\n                                        parenBalance--;\n                                        break;\n                                    case 10 /* TokenType.RegexStr */:\n                                    case 18 /* TokenType.QuotedStr */:\n                                        for (let i = 0; i < followingToken.lexeme.length; i++) {\n                                            if (followingToken.lexeme.charCodeAt(i) === 40 /* CharCode.OpenParen */) {\n                                                parenBalance++;\n                                            }\n                                            else if (expr.lexeme.charCodeAt(i) === 41 /* CharCode.CloseParen */) {\n                                                parenBalance--;\n                                            }\n                                        }\n                                }\n                                if (parenBalance < 0) {\n                                    break;\n                                }\n                                lexemeReconstruction.push(Scanner.getLexeme(followingToken));\n                                this._advance();\n                                followingToken = this._peek();\n                            }\n                            const regexLexeme = lexemeReconstruction.join('');\n                            const closingSlashIndex = regexLexeme.lastIndexOf('/');\n                            const flags = closingSlashIndex === regexLexeme.length - 1 ? undefined : this._removeFlagsGY(regexLexeme.substring(closingSlashIndex + 1));\n                            let regexp;\n                            try {\n                                regexp = new RegExp(regexLexeme.substring(1, closingSlashIndex), flags);\n                            }\n                            catch (e) {\n                                throw this._errExpectedButGot(`REGEX`, expr);\n                            }\n                            return ContextKeyExpr.regex(key, regexp);\n                        }\n                        case 18 /* TokenType.QuotedStr */: {\n                            const serializedValue = expr.lexeme;\n                            this._advance();\n                            // replicate old regex parsing behavior\n                            let regex = null;\n                            if (!isFalsyOrWhitespace(serializedValue)) {\n                                const start = serializedValue.indexOf('/');\n                                const end = serializedValue.lastIndexOf('/');\n                                if (start !== end && start >= 0) {\n                                    const value = serializedValue.slice(start + 1, end);\n                                    const caseIgnoreFlag = serializedValue[end + 1] === 'i' ? 'i' : '';\n                                    try {\n                                        regex = new RegExp(value, caseIgnoreFlag);\n                                    }\n                                    catch (_e) {\n                                        throw this._errExpectedButGot(`REGEX`, expr);\n                                    }\n                                }\n                            }\n                            if (regex === null) {\n                                throw this._errExpectedButGot('REGEX', expr);\n                            }\n                            return ContextKeyRegexExpr.create(key, regex);\n                        }\n                        default:\n                            throw this._errExpectedButGot('REGEX', this._peek());\n                    }\n                }\n                // [ 'not' 'in' value ]\n                if (this._matchOne(14 /* TokenType.Not */)) {\n                    this._consume(13 /* TokenType.In */, errorNoInAfterNot);\n                    const right = this._value();\n                    return ContextKeyExpr.notIn(key, right);\n                }\n                // [ ('==' | '!=' | '<' | '<=' | '>' | '>=' | 'in') value ]\n                const maybeOp = this._peek().type;\n                switch (maybeOp) {\n                    case 3 /* TokenType.Eq */: {\n                        this._advance();\n                        const right = this._value();\n                        if (this._previous().type === 18 /* TokenType.QuotedStr */) { // to preserve old parser behavior: \"foo == 'true'\" is preserved as \"foo == 'true'\", but \"foo == true\" is optimized as \"foo\"\n                            return ContextKeyExpr.equals(key, right);\n                        }\n                        switch (right) {\n                            case 'true':\n                                return ContextKeyExpr.has(key);\n                            case 'false':\n                                return ContextKeyExpr.not(key);\n                            default:\n                                return ContextKeyExpr.equals(key, right);\n                        }\n                    }\n                    case 4 /* TokenType.NotEq */: {\n                        this._advance();\n                        const right = this._value();\n                        if (this._previous().type === 18 /* TokenType.QuotedStr */) { // same as above with \"foo != 'true'\"\n                            return ContextKeyExpr.notEquals(key, right);\n                        }\n                        switch (right) {\n                            case 'true':\n                                return ContextKeyExpr.not(key);\n                            case 'false':\n                                return ContextKeyExpr.has(key);\n                            default:\n                                return ContextKeyExpr.notEquals(key, right);\n                        }\n                    }\n                    // TODO: ContextKeyExpr.smaller(key, right) accepts only `number` as `right` AND during eval of this node, we just eval to `false` if `right` is not a number\n                    // consequently, package.json linter should _warn_ the user if they're passing undesired things to ops\n                    case 5 /* TokenType.Lt */:\n                        this._advance();\n                        return ContextKeySmallerExpr.create(key, this._value());\n                    case 6 /* TokenType.LtEq */:\n                        this._advance();\n                        return ContextKeySmallerEqualsExpr.create(key, this._value());\n                    case 7 /* TokenType.Gt */:\n                        this._advance();\n                        return ContextKeyGreaterExpr.create(key, this._value());\n                    case 8 /* TokenType.GtEq */:\n                        this._advance();\n                        return ContextKeyGreaterEqualsExpr.create(key, this._value());\n                    case 13 /* TokenType.In */:\n                        this._advance();\n                        return ContextKeyExpr.in(key, this._value());\n                    default:\n                        return ContextKeyExpr.has(key);\n                }\n            }\n            case 20 /* TokenType.EOF */:\n                this._parsingErrors.push({ message: errorUnexpectedEOF, offset: peek.offset, lexeme: '', additionalInfo: hintUnexpectedEOF });\n                throw Parser._parseError;\n            default:\n                throw this._errExpectedButGot(`true | false | KEY \\n\\t| KEY '=~' REGEX \\n\\t| KEY ('==' | '!=' | '<' | '<=' | '>' | '>=' | 'in' | 'not' 'in') value`, this._peek());\n        }\n    }\n    _value() {\n        const token = this._peek();\n        switch (token.type) {\n            case 17 /* TokenType.Str */:\n            case 18 /* TokenType.QuotedStr */:\n                this._advance();\n                return token.lexeme;\n            case 11 /* TokenType.True */:\n                this._advance();\n                return 'true';\n            case 12 /* TokenType.False */:\n                this._advance();\n                return 'false';\n            case 13 /* TokenType.In */: // we support `in` as a value, e.g., \"when\": \"languageId == in\" - exists in existing extensions\n                this._advance();\n                return 'in';\n            default:\n                // this allows \"when\": \"foo == \" which's used by existing extensions\n                // we do not call `_advance` on purpose - we don't want to eat unintended tokens\n                return '';\n        }\n    }\n    _removeFlagsGY(flags) {\n        return flags.replaceAll(this._flagsGYRe, '');\n    }\n    // careful: this can throw if current token is the initial one (ie index = 0)\n    _previous() {\n        return this._tokens[this._current - 1];\n    }\n    _matchOne(token) {\n        if (this._check(token)) {\n            this._advance();\n            return true;\n        }\n        return false;\n    }\n    _advance() {\n        if (!this._isAtEnd()) {\n            this._current++;\n        }\n        return this._previous();\n    }\n    _consume(type, message) {\n        if (this._check(type)) {\n            return this._advance();\n        }\n        throw this._errExpectedButGot(message, this._peek());\n    }\n    _errExpectedButGot(expected, got, additionalInfo) {\n        const message = localize('contextkey.parser.error.expectedButGot', \"Expected: {0}\\nReceived: '{1}'.\", expected, Scanner.getLexeme(got));\n        const offset = got.offset;\n        const lexeme = Scanner.getLexeme(got);\n        this._parsingErrors.push({ message, offset, lexeme, additionalInfo });\n        return Parser._parseError;\n    }\n    _check(type) {\n        return this._peek().type === type;\n    }\n    _peek() {\n        return this._tokens[this._current];\n    }\n    _isAtEnd() {\n        return this._peek().type === 20 /* TokenType.EOF */;\n    }\n}\n// Note: this doesn't produce an exact syntax tree but a normalized one\n// ContextKeyExpression's that we use as AST nodes do not expose constructors that do not normalize\nParser._parseError = new Error();\nexport class ContextKeyExpr {\n    static false() {\n        return ContextKeyFalseExpr.INSTANCE;\n    }\n    static true() {\n        return ContextKeyTrueExpr.INSTANCE;\n    }\n    static has(key) {\n        return ContextKeyDefinedExpr.create(key);\n    }\n    static equals(key, value) {\n        return ContextKeyEqualsExpr.create(key, value);\n    }\n    static notEquals(key, value) {\n        return ContextKeyNotEqualsExpr.create(key, value);\n    }\n    static regex(key, value) {\n        return ContextKeyRegexExpr.create(key, value);\n    }\n    static in(key, value) {\n        return ContextKeyInExpr.create(key, value);\n    }\n    static notIn(key, value) {\n        return ContextKeyNotInExpr.create(key, value);\n    }\n    static not(key) {\n        return ContextKeyNotExpr.create(key);\n    }\n    static and(...expr) {\n        return ContextKeyAndExpr.create(expr, null, true);\n    }\n    static or(...expr) {\n        return ContextKeyOrExpr.create(expr, null, true);\n    }\n    static deserialize(serialized) {\n        if (serialized === undefined || serialized === null) { // an empty string needs to be handled by the parser to get a corresponding parsing error reported\n            return undefined;\n        }\n        const expr = this._parser.parse(serialized);\n        return expr;\n    }\n}\nContextKeyExpr._parser = new Parser({ regexParsingWithErrorRecovery: false });\nexport function expressionsAreEqualWithConstantSubstitution(a, b) {\n    const aExpr = a ? a.substituteConstants() : undefined;\n    const bExpr = b ? b.substituteConstants() : undefined;\n    if (!aExpr && !bExpr) {\n        return true;\n    }\n    if (!aExpr || !bExpr) {\n        return false;\n    }\n    return aExpr.equals(bExpr);\n}\nfunction cmp(a, b) {\n    return a.cmp(b);\n}\nexport class ContextKeyFalseExpr {\n    constructor() {\n        this.type = 0 /* ContextKeyExprType.False */;\n    }\n    cmp(other) {\n        return this.type - other.type;\n    }\n    equals(other) {\n        return (other.type === this.type);\n    }\n    substituteConstants() {\n        return this;\n    }\n    evaluate(context) {\n        return false;\n    }\n    serialize() {\n        return 'false';\n    }\n    keys() {\n        return [];\n    }\n    negate() {\n        return ContextKeyTrueExpr.INSTANCE;\n    }\n}\nContextKeyFalseExpr.INSTANCE = new ContextKeyFalseExpr();\nexport class ContextKeyTrueExpr {\n    constructor() {\n        this.type = 1 /* ContextKeyExprType.True */;\n    }\n    cmp(other) {\n        return this.type - other.type;\n    }\n    equals(other) {\n        return (other.type === this.type);\n    }\n    substituteConstants() {\n        return this;\n    }\n    evaluate(context) {\n        return true;\n    }\n    serialize() {\n        return 'true';\n    }\n    keys() {\n        return [];\n    }\n    negate() {\n        return ContextKeyFalseExpr.INSTANCE;\n    }\n}\nContextKeyTrueExpr.INSTANCE = new ContextKeyTrueExpr();\nexport class ContextKeyDefinedExpr {\n    static create(key, negated = null) {\n        const constantValue = CONSTANT_VALUES.get(key);\n        if (typeof constantValue === 'boolean') {\n            return constantValue ? ContextKeyTrueExpr.INSTANCE : ContextKeyFalseExpr.INSTANCE;\n        }\n        return new ContextKeyDefinedExpr(key, negated);\n    }\n    constructor(key, negated) {\n        this.key = key;\n        this.negated = negated;\n        this.type = 2 /* ContextKeyExprType.Defined */;\n    }\n    cmp(other) {\n        if (other.type !== this.type) {\n            return this.type - other.type;\n        }\n        return cmp1(this.key, other.key);\n    }\n    equals(other) {\n        if (other.type === this.type) {\n            return (this.key === other.key);\n        }\n        return false;\n    }\n    substituteConstants() {\n        const constantValue = CONSTANT_VALUES.get(this.key);\n        if (typeof constantValue === 'boolean') {\n            return constantValue ? ContextKeyTrueExpr.INSTANCE : ContextKeyFalseExpr.INSTANCE;\n        }\n        return this;\n    }\n    evaluate(context) {\n        return (!!context.getValue(this.key));\n    }\n    serialize() {\n        return this.key;\n    }\n    keys() {\n        return [this.key];\n    }\n    negate() {\n        if (!this.negated) {\n            this.negated = ContextKeyNotExpr.create(this.key, this);\n        }\n        return this.negated;\n    }\n}\nexport class ContextKeyEqualsExpr {\n    static create(key, value, negated = null) {\n        if (typeof value === 'boolean') {\n            return (value ? ContextKeyDefinedExpr.create(key, negated) : ContextKeyNotExpr.create(key, negated));\n        }\n        const constantValue = CONSTANT_VALUES.get(key);\n        if (typeof constantValue === 'boolean') {\n            const trueValue = constantValue ? 'true' : 'false';\n            return (value === trueValue ? ContextKeyTrueExpr.INSTANCE : ContextKeyFalseExpr.INSTANCE);\n        }\n        return new ContextKeyEqualsExpr(key, value, negated);\n    }\n    constructor(key, value, negated) {\n        this.key = key;\n        this.value = value;\n        this.negated = negated;\n        this.type = 4 /* ContextKeyExprType.Equals */;\n    }\n    cmp(other) {\n        if (other.type !== this.type) {\n            return this.type - other.type;\n        }\n        return cmp2(this.key, this.value, other.key, other.value);\n    }\n    equals(other) {\n        if (other.type === this.type) {\n            return (this.key === other.key && this.value === other.value);\n        }\n        return false;\n    }\n    substituteConstants() {\n        const constantValue = CONSTANT_VALUES.get(this.key);\n        if (typeof constantValue === 'boolean') {\n            const trueValue = constantValue ? 'true' : 'false';\n            return (this.value === trueValue ? ContextKeyTrueExpr.INSTANCE : ContextKeyFalseExpr.INSTANCE);\n        }\n        return this;\n    }\n    evaluate(context) {\n        // Intentional ==\n        // eslint-disable-next-line eqeqeq\n        return (context.getValue(this.key) == this.value);\n    }\n    serialize() {\n        return `${this.key} == '${this.value}'`;\n    }\n    keys() {\n        return [this.key];\n    }\n    negate() {\n        if (!this.negated) {\n            this.negated = ContextKeyNotEqualsExpr.create(this.key, this.value, this);\n        }\n        return this.negated;\n    }\n}\nexport class ContextKeyInExpr {\n    static create(key, valueKey) {\n        return new ContextKeyInExpr(key, valueKey);\n    }\n    constructor(key, valueKey) {\n        this.key = key;\n        this.valueKey = valueKey;\n        this.type = 10 /* ContextKeyExprType.In */;\n        this.negated = null;\n    }\n    cmp(other) {\n        if (other.type !== this.type) {\n            return this.type - other.type;\n        }\n        return cmp2(this.key, this.valueKey, other.key, other.valueKey);\n    }\n    equals(other) {\n        if (other.type === this.type) {\n            return (this.key === other.key && this.valueKey === other.valueKey);\n        }\n        return false;\n    }\n    substituteConstants() {\n        return this;\n    }\n    evaluate(context) {\n        const source = context.getValue(this.valueKey);\n        const item = context.getValue(this.key);\n        if (Array.isArray(source)) {\n            return source.includes(item);\n        }\n        if (typeof item === 'string' && typeof source === 'object' && source !== null) {\n            return hasOwnProperty.call(source, item);\n        }\n        return false;\n    }\n    serialize() {\n        return `${this.key} in '${this.valueKey}'`;\n    }\n    keys() {\n        return [this.key, this.valueKey];\n    }\n    negate() {\n        if (!this.negated) {\n            this.negated = ContextKeyNotInExpr.create(this.key, this.valueKey);\n        }\n        return this.negated;\n    }\n}\nexport class ContextKeyNotInExpr {\n    static create(key, valueKey) {\n        return new ContextKeyNotInExpr(key, valueKey);\n    }\n    constructor(key, valueKey) {\n        this.key = key;\n        this.valueKey = valueKey;\n        this.type = 11 /* ContextKeyExprType.NotIn */;\n        this._negated = ContextKeyInExpr.create(key, valueKey);\n    }\n    cmp(other) {\n        if (other.type !== this.type) {\n            return this.type - other.type;\n        }\n        return this._negated.cmp(other._negated);\n    }\n    equals(other) {\n        if (other.type === this.type) {\n            return this._negated.equals(other._negated);\n        }\n        return false;\n    }\n    substituteConstants() {\n        return this;\n    }\n    evaluate(context) {\n        return !this._negated.evaluate(context);\n    }\n    serialize() {\n        return `${this.key} not in '${this.valueKey}'`;\n    }\n    keys() {\n        return this._negated.keys();\n    }\n    negate() {\n        return this._negated;\n    }\n}\nexport class ContextKeyNotEqualsExpr {\n    static create(key, value, negated = null) {\n        if (typeof value === 'boolean') {\n            if (value) {\n                return ContextKeyNotExpr.create(key, negated);\n            }\n            return ContextKeyDefinedExpr.create(key, negated);\n        }\n        const constantValue = CONSTANT_VALUES.get(key);\n        if (typeof constantValue === 'boolean') {\n            const falseValue = constantValue ? 'true' : 'false';\n            return (value === falseValue ? ContextKeyFalseExpr.INSTANCE : ContextKeyTrueExpr.INSTANCE);\n        }\n        return new ContextKeyNotEqualsExpr(key, value, negated);\n    }\n    constructor(key, value, negated) {\n        this.key = key;\n        this.value = value;\n        this.negated = negated;\n        this.type = 5 /* ContextKeyExprType.NotEquals */;\n    }\n    cmp(other) {\n        if (other.type !== this.type) {\n            return this.type - other.type;\n        }\n        return cmp2(this.key, this.value, other.key, other.value);\n    }\n    equals(other) {\n        if (other.type === this.type) {\n            return (this.key === other.key && this.value === other.value);\n        }\n        return false;\n    }\n    substituteConstants() {\n        const constantValue = CONSTANT_VALUES.get(this.key);\n        if (typeof constantValue === 'boolean') {\n            const falseValue = constantValue ? 'true' : 'false';\n            return (this.value === falseValue ? ContextKeyFalseExpr.INSTANCE : ContextKeyTrueExpr.INSTANCE);\n        }\n        return this;\n    }\n    evaluate(context) {\n        // Intentional !=\n        // eslint-disable-next-line eqeqeq\n        return (context.getValue(this.key) != this.value);\n    }\n    serialize() {\n        return `${this.key} != '${this.value}'`;\n    }\n    keys() {\n        return [this.key];\n    }\n    negate() {\n        if (!this.negated) {\n            this.negated = ContextKeyEqualsExpr.create(this.key, this.value, this);\n        }\n        return this.negated;\n    }\n}\nexport class ContextKeyNotExpr {\n    static create(key, negated = null) {\n        const constantValue = CONSTANT_VALUES.get(key);\n        if (typeof constantValue === 'boolean') {\n            return (constantValue ? ContextKeyFalseExpr.INSTANCE : ContextKeyTrueExpr.INSTANCE);\n        }\n        return new ContextKeyNotExpr(key, negated);\n    }\n    constructor(key, negated) {\n        this.key = key;\n        this.negated = negated;\n        this.type = 3 /* ContextKeyExprType.Not */;\n    }\n    cmp(other) {\n        if (other.type !== this.type) {\n            return this.type - other.type;\n        }\n        return cmp1(this.key, other.key);\n    }\n    equals(other) {\n        if (other.type === this.type) {\n            return (this.key === other.key);\n        }\n        return false;\n    }\n    substituteConstants() {\n        const constantValue = CONSTANT_VALUES.get(this.key);\n        if (typeof constantValue === 'boolean') {\n            return (constantValue ? ContextKeyFalseExpr.INSTANCE : ContextKeyTrueExpr.INSTANCE);\n        }\n        return this;\n    }\n    evaluate(context) {\n        return (!context.getValue(this.key));\n    }\n    serialize() {\n        return `!${this.key}`;\n    }\n    keys() {\n        return [this.key];\n    }\n    negate() {\n        if (!this.negated) {\n            this.negated = ContextKeyDefinedExpr.create(this.key, this);\n        }\n        return this.negated;\n    }\n}\nfunction withFloatOrStr(value, callback) {\n    if (typeof value === 'string') {\n        const n = parseFloat(value);\n        if (!isNaN(n)) {\n            value = n;\n        }\n    }\n    if (typeof value === 'string' || typeof value === 'number') {\n        return callback(value);\n    }\n    return ContextKeyFalseExpr.INSTANCE;\n}\nexport class ContextKeyGreaterExpr {\n    static create(key, _value, negated = null) {\n        return withFloatOrStr(_value, (value) => new ContextKeyGreaterExpr(key, value, negated));\n    }\n    constructor(key, value, negated) {\n        this.key = key;\n        this.value = value;\n        this.negated = negated;\n        this.type = 12 /* ContextKeyExprType.Greater */;\n    }\n    cmp(other) {\n        if (other.type !== this.type) {\n            return this.type - other.type;\n        }\n        return cmp2(this.key, this.value, other.key, other.value);\n    }\n    equals(other) {\n        if (other.type === this.type) {\n            return (this.key === other.key && this.value === other.value);\n        }\n        return false;\n    }\n    substituteConstants() {\n        return this;\n    }\n    evaluate(context) {\n        if (typeof this.value === 'string') {\n            return false;\n        }\n        return (parseFloat(context.getValue(this.key)) > this.value);\n    }\n    serialize() {\n        return `${this.key} > ${this.value}`;\n    }\n    keys() {\n        return [this.key];\n    }\n    negate() {\n        if (!this.negated) {\n            this.negated = ContextKeySmallerEqualsExpr.create(this.key, this.value, this);\n        }\n        return this.negated;\n    }\n}\nexport class ContextKeyGreaterEqualsExpr {\n    static create(key, _value, negated = null) {\n        return withFloatOrStr(_value, (value) => new ContextKeyGreaterEqualsExpr(key, value, negated));\n    }\n    constructor(key, value, negated) {\n        this.key = key;\n        this.value = value;\n        this.negated = negated;\n        this.type = 13 /* ContextKeyExprType.GreaterEquals */;\n    }\n    cmp(other) {\n        if (other.type !== this.type) {\n            return this.type - other.type;\n        }\n        return cmp2(this.key, this.value, other.key, other.value);\n    }\n    equals(other) {\n        if (other.type === this.type) {\n            return (this.key === other.key && this.value === other.value);\n        }\n        return false;\n    }\n    substituteConstants() {\n        return this;\n    }\n    evaluate(context) {\n        if (typeof this.value === 'string') {\n            return false;\n        }\n        return (parseFloat(context.getValue(this.key)) >= this.value);\n    }\n    serialize() {\n        return `${this.key} >= ${this.value}`;\n    }\n    keys() {\n        return [this.key];\n    }\n    negate() {\n        if (!this.negated) {\n            this.negated = ContextKeySmallerExpr.create(this.key, this.value, this);\n        }\n        return this.negated;\n    }\n}\nexport class ContextKeySmallerExpr {\n    static create(key, _value, negated = null) {\n        return withFloatOrStr(_value, (value) => new ContextKeySmallerExpr(key, value, negated));\n    }\n    constructor(key, value, negated) {\n        this.key = key;\n        this.value = value;\n        this.negated = negated;\n        this.type = 14 /* ContextKeyExprType.Smaller */;\n    }\n    cmp(other) {\n        if (other.type !== this.type) {\n            return this.type - other.type;\n        }\n        return cmp2(this.key, this.value, other.key, other.value);\n    }\n    equals(other) {\n        if (other.type === this.type) {\n            return (this.key === other.key && this.value === other.value);\n        }\n        return false;\n    }\n    substituteConstants() {\n        return this;\n    }\n    evaluate(context) {\n        if (typeof this.value === 'string') {\n            return false;\n        }\n        return (parseFloat(context.getValue(this.key)) < this.value);\n    }\n    serialize() {\n        return `${this.key} < ${this.value}`;\n    }\n    keys() {\n        return [this.key];\n    }\n    negate() {\n        if (!this.negated) {\n            this.negated = ContextKeyGreaterEqualsExpr.create(this.key, this.value, this);\n        }\n        return this.negated;\n    }\n}\nexport class ContextKeySmallerEqualsExpr {\n    static create(key, _value, negated = null) {\n        return withFloatOrStr(_value, (value) => new ContextKeySmallerEqualsExpr(key, value, negated));\n    }\n    constructor(key, value, negated) {\n        this.key = key;\n        this.value = value;\n        this.negated = negated;\n        this.type = 15 /* ContextKeyExprType.SmallerEquals */;\n    }\n    cmp(other) {\n        if (other.type !== this.type) {\n            return this.type - other.type;\n        }\n        return cmp2(this.key, this.value, other.key, other.value);\n    }\n    equals(other) {\n        if (other.type === this.type) {\n            return (this.key === other.key && this.value === other.value);\n        }\n        return false;\n    }\n    substituteConstants() {\n        return this;\n    }\n    evaluate(context) {\n        if (typeof this.value === 'string') {\n            return false;\n        }\n        return (parseFloat(context.getValue(this.key)) <= this.value);\n    }\n    serialize() {\n        return `${this.key} <= ${this.value}`;\n    }\n    keys() {\n        return [this.key];\n    }\n    negate() {\n        if (!this.negated) {\n            this.negated = ContextKeyGreaterExpr.create(this.key, this.value, this);\n        }\n        return this.negated;\n    }\n}\nexport class ContextKeyRegexExpr {\n    static create(key, regexp) {\n        return new ContextKeyRegexExpr(key, regexp);\n    }\n    constructor(key, regexp) {\n        this.key = key;\n        this.regexp = regexp;\n        this.type = 7 /* ContextKeyExprType.Regex */;\n        this.negated = null;\n        //\n    }\n    cmp(other) {\n        if (other.type !== this.type) {\n            return this.type - other.type;\n        }\n        if (this.key < other.key) {\n            return -1;\n        }\n        if (this.key > other.key) {\n            return 1;\n        }\n        const thisSource = this.regexp ? this.regexp.source : '';\n        const otherSource = other.regexp ? other.regexp.source : '';\n        if (thisSource < otherSource) {\n            return -1;\n        }\n        if (thisSource > otherSource) {\n            return 1;\n        }\n        return 0;\n    }\n    equals(other) {\n        if (other.type === this.type) {\n            const thisSource = this.regexp ? this.regexp.source : '';\n            const otherSource = other.regexp ? other.regexp.source : '';\n            return (this.key === other.key && thisSource === otherSource);\n        }\n        return false;\n    }\n    substituteConstants() {\n        return this;\n    }\n    evaluate(context) {\n        const value = context.getValue(this.key);\n        return this.regexp ? this.regexp.test(value) : false;\n    }\n    serialize() {\n        const value = this.regexp\n            ? `/${this.regexp.source}/${this.regexp.flags}`\n            : '/invalid/';\n        return `${this.key} =~ ${value}`;\n    }\n    keys() {\n        return [this.key];\n    }\n    negate() {\n        if (!this.negated) {\n            this.negated = ContextKeyNotRegexExpr.create(this);\n        }\n        return this.negated;\n    }\n}\nexport class ContextKeyNotRegexExpr {\n    static create(actual) {\n        return new ContextKeyNotRegexExpr(actual);\n    }\n    constructor(_actual) {\n        this._actual = _actual;\n        this.type = 8 /* ContextKeyExprType.NotRegex */;\n        //\n    }\n    cmp(other) {\n        if (other.type !== this.type) {\n            return this.type - other.type;\n        }\n        return this._actual.cmp(other._actual);\n    }\n    equals(other) {\n        if (other.type === this.type) {\n            return this._actual.equals(other._actual);\n        }\n        return false;\n    }\n    substituteConstants() {\n        return this;\n    }\n    evaluate(context) {\n        return !this._actual.evaluate(context);\n    }\n    serialize() {\n        return `!(${this._actual.serialize()})`;\n    }\n    keys() {\n        return this._actual.keys();\n    }\n    negate() {\n        return this._actual;\n    }\n}\n/**\n * @returns the same instance if nothing changed.\n */\nfunction eliminateConstantsInArray(arr) {\n    // Allocate array only if there is a difference\n    let newArr = null;\n    for (let i = 0, len = arr.length; i < len; i++) {\n        const newExpr = arr[i].substituteConstants();\n        if (arr[i] !== newExpr) {\n            // something has changed!\n            // allocate array on first difference\n            if (newArr === null) {\n                newArr = [];\n                for (let j = 0; j < i; j++) {\n                    newArr[j] = arr[j];\n                }\n            }\n        }\n        if (newArr !== null) {\n            newArr[i] = newExpr;\n        }\n    }\n    if (newArr === null) {\n        return arr;\n    }\n    return newArr;\n}\nexport class ContextKeyAndExpr {\n    static create(_expr, negated, extraRedundantCheck) {\n        return ContextKeyAndExpr._normalizeArr(_expr, negated, extraRedundantCheck);\n    }\n    constructor(expr, negated) {\n        this.expr = expr;\n        this.negated = negated;\n        this.type = 6 /* ContextKeyExprType.And */;\n    }\n    cmp(other) {\n        if (other.type !== this.type) {\n            return this.type - other.type;\n        }\n        if (this.expr.length < other.expr.length) {\n            return -1;\n        }\n        if (this.expr.length > other.expr.length) {\n            return 1;\n        }\n        for (let i = 0, len = this.expr.length; i < len; i++) {\n            const r = cmp(this.expr[i], other.expr[i]);\n            if (r !== 0) {\n                return r;\n            }\n        }\n        return 0;\n    }\n    equals(other) {\n        if (other.type === this.type) {\n            if (this.expr.length !== other.expr.length) {\n                return false;\n            }\n            for (let i = 0, len = this.expr.length; i < len; i++) {\n                if (!this.expr[i].equals(other.expr[i])) {\n                    return false;\n                }\n            }\n            return true;\n        }\n        return false;\n    }\n    substituteConstants() {\n        const exprArr = eliminateConstantsInArray(this.expr);\n        if (exprArr === this.expr) {\n            // no change\n            return this;\n        }\n        return ContextKeyAndExpr.create(exprArr, this.negated, false);\n    }\n    evaluate(context) {\n        for (let i = 0, len = this.expr.length; i < len; i++) {\n            if (!this.expr[i].evaluate(context)) {\n                return false;\n            }\n        }\n        return true;\n    }\n    static _normalizeArr(arr, negated, extraRedundantCheck) {\n        const expr = [];\n        let hasTrue = false;\n        for (const e of arr) {\n            if (!e) {\n                continue;\n            }\n            if (e.type === 1 /* ContextKeyExprType.True */) {\n                // anything && true ==> anything\n                hasTrue = true;\n                continue;\n            }\n            if (e.type === 0 /* ContextKeyExprType.False */) {\n                // anything && false ==> false\n                return ContextKeyFalseExpr.INSTANCE;\n            }\n            if (e.type === 6 /* ContextKeyExprType.And */) {\n                expr.push(...e.expr);\n                continue;\n            }\n            expr.push(e);\n        }\n        if (expr.length === 0 && hasTrue) {\n            return ContextKeyTrueExpr.INSTANCE;\n        }\n        if (expr.length === 0) {\n            return undefined;\n        }\n        if (expr.length === 1) {\n            return expr[0];\n        }\n        expr.sort(cmp);\n        // eliminate duplicate terms\n        for (let i = 1; i < expr.length; i++) {\n            if (expr[i - 1].equals(expr[i])) {\n                expr.splice(i, 1);\n                i--;\n            }\n        }\n        if (expr.length === 1) {\n            return expr[0];\n        }\n        // We must distribute any OR expression because we don't support parens\n        // OR extensions will be at the end (due to sorting rules)\n        while (expr.length > 1) {\n            const lastElement = expr[expr.length - 1];\n            if (lastElement.type !== 9 /* ContextKeyExprType.Or */) {\n                break;\n            }\n            // pop the last element\n            expr.pop();\n            // pop the second to last element\n            const secondToLastElement = expr.pop();\n            const isFinished = (expr.length === 0);\n            // distribute `lastElement` over `secondToLastElement`\n            const resultElement = ContextKeyOrExpr.create(lastElement.expr.map(el => ContextKeyAndExpr.create([el, secondToLastElement], null, extraRedundantCheck)), null, isFinished);\n            if (resultElement) {\n                expr.push(resultElement);\n                expr.sort(cmp);\n            }\n        }\n        if (expr.length === 1) {\n            return expr[0];\n        }\n        // resolve false AND expressions\n        if (extraRedundantCheck) {\n            for (let i = 0; i < expr.length; i++) {\n                for (let j = i + 1; j < expr.length; j++) {\n                    if (expr[i].negate().equals(expr[j])) {\n                        // A && !A case\n                        return ContextKeyFalseExpr.INSTANCE;\n                    }\n                }\n            }\n            if (expr.length === 1) {\n                return expr[0];\n            }\n        }\n        return new ContextKeyAndExpr(expr, negated);\n    }\n    serialize() {\n        return this.expr.map(e => e.serialize()).join(' && ');\n    }\n    keys() {\n        const result = [];\n        for (const expr of this.expr) {\n            result.push(...expr.keys());\n        }\n        return result;\n    }\n    negate() {\n        if (!this.negated) {\n            const result = [];\n            for (const expr of this.expr) {\n                result.push(expr.negate());\n            }\n            this.negated = ContextKeyOrExpr.create(result, this, true);\n        }\n        return this.negated;\n    }\n}\nexport class ContextKeyOrExpr {\n    static create(_expr, negated, extraRedundantCheck) {\n        return ContextKeyOrExpr._normalizeArr(_expr, negated, extraRedundantCheck);\n    }\n    constructor(expr, negated) {\n        this.expr = expr;\n        this.negated = negated;\n        this.type = 9 /* ContextKeyExprType.Or */;\n    }\n    cmp(other) {\n        if (other.type !== this.type) {\n            return this.type - other.type;\n        }\n        if (this.expr.length < other.expr.length) {\n            return -1;\n        }\n        if (this.expr.length > other.expr.length) {\n            return 1;\n        }\n        for (let i = 0, len = this.expr.length; i < len; i++) {\n            const r = cmp(this.expr[i], other.expr[i]);\n            if (r !== 0) {\n                return r;\n            }\n        }\n        return 0;\n    }\n    equals(other) {\n        if (other.type === this.type) {\n            if (this.expr.length !== other.expr.length) {\n                return false;\n            }\n            for (let i = 0, len = this.expr.length; i < len; i++) {\n                if (!this.expr[i].equals(other.expr[i])) {\n                    return false;\n                }\n            }\n            return true;\n        }\n        return false;\n    }\n    substituteConstants() {\n        const exprArr = eliminateConstantsInArray(this.expr);\n        if (exprArr === this.expr) {\n            // no change\n            return this;\n        }\n        return ContextKeyOrExpr.create(exprArr, this.negated, false);\n    }\n    evaluate(context) {\n        for (let i = 0, len = this.expr.length; i < len; i++) {\n            if (this.expr[i].evaluate(context)) {\n                return true;\n            }\n        }\n        return false;\n    }\n    static _normalizeArr(arr, negated, extraRedundantCheck) {\n        let expr = [];\n        let hasFalse = false;\n        if (arr) {\n            for (let i = 0, len = arr.length; i < len; i++) {\n                const e = arr[i];\n                if (!e) {\n                    continue;\n                }\n                if (e.type === 0 /* ContextKeyExprType.False */) {\n                    // anything || false ==> anything\n                    hasFalse = true;\n                    continue;\n                }\n                if (e.type === 1 /* ContextKeyExprType.True */) {\n                    // anything || true ==> true\n                    return ContextKeyTrueExpr.INSTANCE;\n                }\n                if (e.type === 9 /* ContextKeyExprType.Or */) {\n                    expr = expr.concat(e.expr);\n                    continue;\n                }\n                expr.push(e);\n            }\n            if (expr.length === 0 && hasFalse) {\n                return ContextKeyFalseExpr.INSTANCE;\n            }\n            expr.sort(cmp);\n        }\n        if (expr.length === 0) {\n            return undefined;\n        }\n        if (expr.length === 1) {\n            return expr[0];\n        }\n        // eliminate duplicate terms\n        for (let i = 1; i < expr.length; i++) {\n            if (expr[i - 1].equals(expr[i])) {\n                expr.splice(i, 1);\n                i--;\n            }\n        }\n        if (expr.length === 1) {\n            return expr[0];\n        }\n        // resolve true OR expressions\n        if (extraRedundantCheck) {\n            for (let i = 0; i < expr.length; i++) {\n                for (let j = i + 1; j < expr.length; j++) {\n                    if (expr[i].negate().equals(expr[j])) {\n                        // A || !A case\n                        return ContextKeyTrueExpr.INSTANCE;\n                    }\n                }\n            }\n            if (expr.length === 1) {\n                return expr[0];\n            }\n        }\n        return new ContextKeyOrExpr(expr, negated);\n    }\n    serialize() {\n        return this.expr.map(e => e.serialize()).join(' || ');\n    }\n    keys() {\n        const result = [];\n        for (const expr of this.expr) {\n            result.push(...expr.keys());\n        }\n        return result;\n    }\n    negate() {\n        if (!this.negated) {\n            const result = [];\n            for (const expr of this.expr) {\n                result.push(expr.negate());\n            }\n            // We don't support parens, so here we distribute the AND over the OR terminals\n            // We always take the first 2 AND pairs and distribute them\n            while (result.length > 1) {\n                const LEFT = result.shift();\n                const RIGHT = result.shift();\n                const all = [];\n                for (const left of getTerminals(LEFT)) {\n                    for (const right of getTerminals(RIGHT)) {\n                        all.push(ContextKeyAndExpr.create([left, right], null, false));\n                    }\n                }\n                result.unshift(ContextKeyOrExpr.create(all, null, false));\n            }\n            this.negated = ContextKeyOrExpr.create(result, this, true);\n        }\n        return this.negated;\n    }\n}\nexport class RawContextKey extends ContextKeyDefinedExpr {\n    static all() {\n        return RawContextKey._info.values();\n    }\n    constructor(key, defaultValue, metaOrHide) {\n        super(key, null);\n        this._defaultValue = defaultValue;\n        // collect all context keys into a central place\n        if (typeof metaOrHide === 'object') {\n            RawContextKey._info.push({ ...metaOrHide, key });\n        }\n        else if (metaOrHide !== true) {\n            RawContextKey._info.push({ key, description: metaOrHide, type: defaultValue !== null && defaultValue !== undefined ? typeof defaultValue : undefined });\n        }\n    }\n    bindTo(target) {\n        return target.createKey(this.key, this._defaultValue);\n    }\n    getValue(target) {\n        return target.getContextKeyValue(this.key);\n    }\n    toNegated() {\n        return this.negate();\n    }\n    isEqualTo(value) {\n        return ContextKeyEqualsExpr.create(this.key, value);\n    }\n}\nRawContextKey._info = [];\nexport const IContextKeyService = createDecorator('contextKeyService');\nfunction cmp1(key1, key2) {\n    if (key1 < key2) {\n        return -1;\n    }\n    if (key1 > key2) {\n        return 1;\n    }\n    return 0;\n}\nfunction cmp2(key1, value1, key2, value2) {\n    if (key1 < key2) {\n        return -1;\n    }\n    if (key1 > key2) {\n        return 1;\n    }\n    if (value1 < value2) {\n        return -1;\n    }\n    if (value1 > value2) {\n        return 1;\n    }\n    return 0;\n}\n/**\n * Returns true if it is provable `p` implies `q`.\n */\nexport function implies(p, q) {\n    if (p.type === 0 /* ContextKeyExprType.False */ || q.type === 1 /* ContextKeyExprType.True */) {\n        // false implies anything\n        // anything implies true\n        return true;\n    }\n    if (p.type === 9 /* ContextKeyExprType.Or */) {\n        if (q.type === 9 /* ContextKeyExprType.Or */) {\n            // `a || b || c` can only imply something like `a || b || c || d`\n            return allElementsIncluded(p.expr, q.expr);\n        }\n        return false;\n    }\n    if (q.type === 9 /* ContextKeyExprType.Or */) {\n        for (const element of q.expr) {\n            if (implies(p, element)) {\n                return true;\n            }\n        }\n        return false;\n    }\n    if (p.type === 6 /* ContextKeyExprType.And */) {\n        if (q.type === 6 /* ContextKeyExprType.And */) {\n            // `a && b && c` implies `a && c`\n            return allElementsIncluded(q.expr, p.expr);\n        }\n        for (const element of p.expr) {\n            if (implies(element, q)) {\n                return true;\n            }\n        }\n        return false;\n    }\n    return p.equals(q);\n}\n/**\n * Returns true if all elements in `p` are also present in `q`.\n * The two arrays are assumed to be sorted\n */\nfunction allElementsIncluded(p, q) {\n    let pIndex = 0;\n    let qIndex = 0;\n    while (pIndex < p.length && qIndex < q.length) {\n        const cmp = p[pIndex].cmp(q[qIndex]);\n        if (cmp < 0) {\n            // an element from `p` is missing from `q`\n            return false;\n        }\n        else if (cmp === 0) {\n            pIndex++;\n            qIndex++;\n        }\n        else {\n            qIndex++;\n        }\n    }\n    return (pIndex === p.length);\n}\nfunction getTerminals(node) {\n    if (node.type === 9 /* ContextKeyExprType.Or */) {\n        return node.expr;\n    }\n    return [node];\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/contextkey/common/contextkeys.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { isIOS, isLinux, isMacintosh, isMobile, isWeb, isWindows } from '../../../base/common/platform.js';\nimport { localize } from '../../../nls.js';\nimport { RawContextKey } from './contextkey.js';\nexport const IsMacContext = new RawContextKey('isMac', isMacintosh, localize('isMac', \"Whether the operating system is macOS\"));\nexport const IsLinuxContext = new RawContextKey('isLinux', isLinux, localize('isLinux', \"Whether the operating system is Linux\"));\nexport const IsWindowsContext = new RawContextKey('isWindows', isWindows, localize('isWindows', \"Whether the operating system is Windows\"));\nexport const IsWebContext = new RawContextKey('isWeb', isWeb, localize('isWeb', \"Whether the platform is a web browser\"));\nexport const IsMacNativeContext = new RawContextKey('isMacNative', isMacintosh && !isWeb, localize('isMacNative', \"Whether the operating system is macOS on a non-browser platform\"));\nexport const IsIOSContext = new RawContextKey('isIOS', isIOS, localize('isIOS', \"Whether the operating system is iOS\"));\nexport const IsMobileContext = new RawContextKey('isMobile', isMobile, localize('isMobile', \"Whether the platform is a mobile web browser\"));\nexport const IsDevelopmentContext = new RawContextKey('isDevelopment', false, true);\nexport const ProductQualityContext = new RawContextKey('productQualityType', '', localize('productQualityType', \"Quality type of VS Code\"));\nexport const InputFocusedContextKey = 'inputFocus';\nexport const InputFocusedContext = new RawContextKey(InputFocusedContextKey, false, localize('inputFocus', \"Whether keyboard focus is inside an input box\"));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/contextkey/common/scanner.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { illegalState } from '../../../base/common/errors.js';\nimport { localize } from '../../../nls.js';\nfunction hintDidYouMean(...meant) {\n    switch (meant.length) {\n        case 1:\n            return localize('contextkey.scanner.hint.didYouMean1', \"Did you mean {0}?\", meant[0]);\n        case 2:\n            return localize('contextkey.scanner.hint.didYouMean2', \"Did you mean {0} or {1}?\", meant[0], meant[1]);\n        case 3:\n            return localize('contextkey.scanner.hint.didYouMean3', \"Did you mean {0}, {1} or {2}?\", meant[0], meant[1], meant[2]);\n        default: // we just don't expect that many\n            return undefined;\n    }\n}\nconst hintDidYouForgetToOpenOrCloseQuote = localize('contextkey.scanner.hint.didYouForgetToOpenOrCloseQuote', \"Did you forget to open or close the quote?\");\nconst hintDidYouForgetToEscapeSlash = localize('contextkey.scanner.hint.didYouForgetToEscapeSlash', \"Did you forget to escape the '/' (slash) character? Put two backslashes before it to escape, e.g., '\\\\\\\\/\\'.\");\n/**\n * A simple scanner for context keys.\n *\n * Example:\n *\n * ```ts\n * const scanner = new Scanner().reset('resourceFileName =~ /docker/ && !config.docker.enabled');\n * const tokens = [...scanner];\n * if (scanner.errorTokens.length > 0) {\n *     scanner.errorTokens.forEach(err => console.error(`Unexpected token at ${err.offset}: ${err.lexeme}\\nHint: ${err.additional}`));\n * } else {\n *     // process tokens\n * }\n * ```\n */\nexport class Scanner {\n    constructor() {\n        this._input = '';\n        this._start = 0;\n        this._current = 0;\n        this._tokens = [];\n        this._errors = [];\n        // u - unicode, y - sticky // TODO@ulugbekna: we accept double quotes as part of the string rather than as a delimiter (to preserve old parser's behavior)\n        this.stringRe = /[a-zA-Z0-9_<>\\-\\./\\\\:\\*\\?\\+\\[\\]\\^,#@;\"%\\$\\p{L}-]+/uy;\n    }\n    static getLexeme(token) {\n        switch (token.type) {\n            case 0 /* TokenType.LParen */:\n                return '(';\n            case 1 /* TokenType.RParen */:\n                return ')';\n            case 2 /* TokenType.Neg */:\n                return '!';\n            case 3 /* TokenType.Eq */:\n                return token.isTripleEq ? '===' : '==';\n            case 4 /* TokenType.NotEq */:\n                return token.isTripleEq ? '!==' : '!=';\n            case 5 /* TokenType.Lt */:\n                return '<';\n            case 6 /* TokenType.LtEq */:\n                return '<=';\n            case 7 /* TokenType.Gt */:\n                return '>=';\n            case 8 /* TokenType.GtEq */:\n                return '>=';\n            case 9 /* TokenType.RegexOp */:\n                return '=~';\n            case 10 /* TokenType.RegexStr */:\n                return token.lexeme;\n            case 11 /* TokenType.True */:\n                return 'true';\n            case 12 /* TokenType.False */:\n                return 'false';\n            case 13 /* TokenType.In */:\n                return 'in';\n            case 14 /* TokenType.Not */:\n                return 'not';\n            case 15 /* TokenType.And */:\n                return '&&';\n            case 16 /* TokenType.Or */:\n                return '||';\n            case 17 /* TokenType.Str */:\n                return token.lexeme;\n            case 18 /* TokenType.QuotedStr */:\n                return token.lexeme;\n            case 19 /* TokenType.Error */:\n                return token.lexeme;\n            case 20 /* TokenType.EOF */:\n                return 'EOF';\n            default:\n                throw illegalState(`unhandled token type: ${JSON.stringify(token)}; have you forgotten to add a case?`);\n        }\n    }\n    reset(value) {\n        this._input = value;\n        this._start = 0;\n        this._current = 0;\n        this._tokens = [];\n        this._errors = [];\n        return this;\n    }\n    scan() {\n        while (!this._isAtEnd()) {\n            this._start = this._current;\n            const ch = this._advance();\n            switch (ch) {\n                case 40 /* CharCode.OpenParen */:\n                    this._addToken(0 /* TokenType.LParen */);\n                    break;\n                case 41 /* CharCode.CloseParen */:\n                    this._addToken(1 /* TokenType.RParen */);\n                    break;\n                case 33 /* CharCode.ExclamationMark */:\n                    if (this._match(61 /* CharCode.Equals */)) {\n                        const isTripleEq = this._match(61 /* CharCode.Equals */); // eat last `=` if `!==`\n                        this._tokens.push({ type: 4 /* TokenType.NotEq */, offset: this._start, isTripleEq });\n                    }\n                    else {\n                        this._addToken(2 /* TokenType.Neg */);\n                    }\n                    break;\n                case 39 /* CharCode.SingleQuote */:\n                    this._quotedString();\n                    break;\n                case 47 /* CharCode.Slash */:\n                    this._regex();\n                    break;\n                case 61 /* CharCode.Equals */:\n                    if (this._match(61 /* CharCode.Equals */)) { // support `==`\n                        const isTripleEq = this._match(61 /* CharCode.Equals */); // eat last `=` if `===`\n                        this._tokens.push({ type: 3 /* TokenType.Eq */, offset: this._start, isTripleEq });\n                    }\n                    else if (this._match(126 /* CharCode.Tilde */)) {\n                        this._addToken(9 /* TokenType.RegexOp */);\n                    }\n                    else {\n                        this._error(hintDidYouMean('==', '=~'));\n                    }\n                    break;\n                case 60 /* CharCode.LessThan */:\n                    this._addToken(this._match(61 /* CharCode.Equals */) ? 6 /* TokenType.LtEq */ : 5 /* TokenType.Lt */);\n                    break;\n                case 62 /* CharCode.GreaterThan */:\n                    this._addToken(this._match(61 /* CharCode.Equals */) ? 8 /* TokenType.GtEq */ : 7 /* TokenType.Gt */);\n                    break;\n                case 38 /* CharCode.Ampersand */:\n                    if (this._match(38 /* CharCode.Ampersand */)) {\n                        this._addToken(15 /* TokenType.And */);\n                    }\n                    else {\n                        this._error(hintDidYouMean('&&'));\n                    }\n                    break;\n                case 124 /* CharCode.Pipe */:\n                    if (this._match(124 /* CharCode.Pipe */)) {\n                        this._addToken(16 /* TokenType.Or */);\n                    }\n                    else {\n                        this._error(hintDidYouMean('||'));\n                    }\n                    break;\n                // TODO@ulugbekna: 1) rewrite using a regex 2) reconsider what characters are considered whitespace, including unicode, nbsp, etc.\n                case 32 /* CharCode.Space */:\n                case 13 /* CharCode.CarriageReturn */:\n                case 9 /* CharCode.Tab */:\n                case 10 /* CharCode.LineFeed */:\n                case 160 /* CharCode.NoBreakSpace */: // &nbsp\n                    break;\n                default:\n                    this._string();\n            }\n        }\n        this._start = this._current;\n        this._addToken(20 /* TokenType.EOF */);\n        return Array.from(this._tokens);\n    }\n    _match(expected) {\n        if (this._isAtEnd()) {\n            return false;\n        }\n        if (this._input.charCodeAt(this._current) !== expected) {\n            return false;\n        }\n        this._current++;\n        return true;\n    }\n    _advance() {\n        return this._input.charCodeAt(this._current++);\n    }\n    _peek() {\n        return this._isAtEnd() ? 0 /* CharCode.Null */ : this._input.charCodeAt(this._current);\n    }\n    _addToken(type) {\n        this._tokens.push({ type, offset: this._start });\n    }\n    _error(additional) {\n        const offset = this._start;\n        const lexeme = this._input.substring(this._start, this._current);\n        const errToken = { type: 19 /* TokenType.Error */, offset: this._start, lexeme };\n        this._errors.push({ offset, lexeme, additionalInfo: additional });\n        this._tokens.push(errToken);\n    }\n    _string() {\n        this.stringRe.lastIndex = this._start;\n        const match = this.stringRe.exec(this._input);\n        if (match) {\n            this._current = this._start + match[0].length;\n            const lexeme = this._input.substring(this._start, this._current);\n            const keyword = Scanner._keywords.get(lexeme);\n            if (keyword) {\n                this._addToken(keyword);\n            }\n            else {\n                this._tokens.push({ type: 17 /* TokenType.Str */, lexeme, offset: this._start });\n            }\n        }\n    }\n    // captures the lexeme without the leading and trailing '\n    _quotedString() {\n        while (this._peek() !== 39 /* CharCode.SingleQuote */ && !this._isAtEnd()) { // TODO@ulugbekna: add support for escaping ' ?\n            this._advance();\n        }\n        if (this._isAtEnd()) {\n            this._error(hintDidYouForgetToOpenOrCloseQuote);\n            return;\n        }\n        // consume the closing '\n        this._advance();\n        this._tokens.push({ type: 18 /* TokenType.QuotedStr */, lexeme: this._input.substring(this._start + 1, this._current - 1), offset: this._start + 1 });\n    }\n    /*\n     * Lexing a regex expression: /.../[igsmyu]*\n     * Based on https://github.com/microsoft/TypeScript/blob/9247ef115e617805983740ba795d7a8164babf89/src/compiler/scanner.ts#L2129-L2181\n     *\n     * Note that we want slashes within a regex to be escaped, e.g., /file:\\\\/\\\\/\\\\// should match `file:///`\n     */\n    _regex() {\n        let p = this._current;\n        let inEscape = false;\n        let inCharacterClass = false;\n        while (true) {\n            if (p >= this._input.length) {\n                this._current = p;\n                this._error(hintDidYouForgetToEscapeSlash);\n                return;\n            }\n            const ch = this._input.charCodeAt(p);\n            if (inEscape) { // parsing an escape character\n                inEscape = false;\n            }\n            else if (ch === 47 /* CharCode.Slash */ && !inCharacterClass) { // end of regex\n                p++;\n                break;\n            }\n            else if (ch === 91 /* CharCode.OpenSquareBracket */) {\n                inCharacterClass = true;\n            }\n            else if (ch === 92 /* CharCode.Backslash */) {\n                inEscape = true;\n            }\n            else if (ch === 93 /* CharCode.CloseSquareBracket */) {\n                inCharacterClass = false;\n            }\n            p++;\n        }\n        // Consume flags // TODO@ulugbekna: use regex instead\n        while (p < this._input.length && Scanner._regexFlags.has(this._input.charCodeAt(p))) {\n            p++;\n        }\n        this._current = p;\n        const lexeme = this._input.substring(this._start, this._current);\n        this._tokens.push({ type: 10 /* TokenType.RegexStr */, lexeme, offset: this._start });\n    }\n    _isAtEnd() {\n        return this._current >= this._input.length;\n    }\n}\nScanner._regexFlags = new Set(['i', 'g', 's', 'm', 'y', 'u'].map(ch => ch.charCodeAt(0)));\nScanner._keywords = new Map([\n    ['not', 14 /* TokenType.Not */],\n    ['in', 13 /* TokenType.In */],\n    ['false', 12 /* TokenType.False */],\n    ['true', 11 /* TokenType.True */],\n]);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/contextview/browser/contextMenuHandler.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { $, addDisposableListener, EventType, getActiveElement, getWindow, isAncestor, isHTMLElement } from '../../../base/browser/dom.js';\nimport { StandardMouseEvent } from '../../../base/browser/mouseEvent.js';\nimport { Menu } from '../../../base/browser/ui/menu/menu.js';\nimport { ActionRunner } from '../../../base/common/actions.js';\nimport { isCancellationError } from '../../../base/common/errors.js';\nimport { combinedDisposable, DisposableStore } from '../../../base/common/lifecycle.js';\nimport { defaultMenuStyles } from '../../theme/browser/defaultStyles.js';\nexport class ContextMenuHandler {\n    constructor(contextViewService, telemetryService, notificationService, keybindingService) {\n        this.contextViewService = contextViewService;\n        this.telemetryService = telemetryService;\n        this.notificationService = notificationService;\n        this.keybindingService = keybindingService;\n        this.focusToReturn = null;\n        this.lastContainer = null;\n        this.block = null;\n        this.blockDisposable = null;\n        this.options = { blockMouse: true };\n    }\n    configure(options) {\n        this.options = options;\n    }\n    showContextMenu(delegate) {\n        const actions = delegate.getActions();\n        if (!actions.length) {\n            return; // Don't render an empty context menu\n        }\n        this.focusToReturn = getActiveElement();\n        let menu;\n        const shadowRootElement = isHTMLElement(delegate.domForShadowRoot) ? delegate.domForShadowRoot : undefined;\n        this.contextViewService.showContextView({\n            getAnchor: () => delegate.getAnchor(),\n            canRelayout: false,\n            anchorAlignment: delegate.anchorAlignment,\n            anchorAxisAlignment: delegate.anchorAxisAlignment,\n            render: (container) => {\n                var _a;\n                this.lastContainer = container;\n                const className = delegate.getMenuClassName ? delegate.getMenuClassName() : '';\n                if (className) {\n                    container.className += ' ' + className;\n                }\n                // Render invisible div to block mouse interaction in the rest of the UI\n                if (this.options.blockMouse) {\n                    this.block = container.appendChild($('.context-view-block'));\n                    this.block.style.position = 'fixed';\n                    this.block.style.cursor = 'initial';\n                    this.block.style.left = '0';\n                    this.block.style.top = '0';\n                    this.block.style.width = '100%';\n                    this.block.style.height = '100%';\n                    this.block.style.zIndex = '-1';\n                    (_a = this.blockDisposable) === null || _a === void 0 ? void 0 : _a.dispose();\n                    this.blockDisposable = addDisposableListener(this.block, EventType.MOUSE_DOWN, e => e.stopPropagation());\n                }\n                const menuDisposables = new DisposableStore();\n                const actionRunner = delegate.actionRunner || new ActionRunner();\n                actionRunner.onWillRun(evt => this.onActionRun(evt, !delegate.skipTelemetry), this, menuDisposables);\n                actionRunner.onDidRun(this.onDidActionRun, this, menuDisposables);\n                menu = new Menu(container, actions, {\n                    actionViewItemProvider: delegate.getActionViewItem,\n                    context: delegate.getActionsContext ? delegate.getActionsContext() : null,\n                    actionRunner,\n                    getKeyBinding: delegate.getKeyBinding ? delegate.getKeyBinding : action => this.keybindingService.lookupKeybinding(action.id)\n                }, defaultMenuStyles);\n                menu.onDidCancel(() => this.contextViewService.hideContextView(true), null, menuDisposables);\n                menu.onDidBlur(() => this.contextViewService.hideContextView(true), null, menuDisposables);\n                const targetWindow = getWindow(container);\n                menuDisposables.add(addDisposableListener(targetWindow, EventType.BLUR, () => this.contextViewService.hideContextView(true)));\n                menuDisposables.add(addDisposableListener(targetWindow, EventType.MOUSE_DOWN, (e) => {\n                    if (e.defaultPrevented) {\n                        return;\n                    }\n                    const event = new StandardMouseEvent(targetWindow, e);\n                    let element = event.target;\n                    // Don't do anything as we are likely creating a context menu\n                    if (event.rightButton) {\n                        return;\n                    }\n                    while (element) {\n                        if (element === container) {\n                            return;\n                        }\n                        element = element.parentElement;\n                    }\n                    this.contextViewService.hideContextView(true);\n                }));\n                return combinedDisposable(menuDisposables, menu);\n            },\n            focus: () => {\n                menu === null || menu === void 0 ? void 0 : menu.focus(!!delegate.autoSelectFirstItem);\n            },\n            onHide: (didCancel) => {\n                var _a, _b, _c;\n                (_a = delegate.onHide) === null || _a === void 0 ? void 0 : _a.call(delegate, !!didCancel);\n                if (this.block) {\n                    this.block.remove();\n                    this.block = null;\n                }\n                (_b = this.blockDisposable) === null || _b === void 0 ? void 0 : _b.dispose();\n                this.blockDisposable = null;\n                if (!!this.lastContainer && (getActiveElement() === this.lastContainer || isAncestor(getActiveElement(), this.lastContainer))) {\n                    (_c = this.focusToReturn) === null || _c === void 0 ? void 0 : _c.focus();\n                }\n                this.lastContainer = null;\n            }\n        }, shadowRootElement, !!shadowRootElement);\n    }\n    onActionRun(e, logTelemetry) {\n        if (logTelemetry) {\n            this.telemetryService.publicLog2('workbenchActionExecuted', { id: e.action.id, from: 'contextMenu' });\n        }\n        this.contextViewService.hideContextView(false);\n    }\n    onDidActionRun(e) {\n        if (e.error && !isCancellationError(e.error)) {\n            this.notificationService.error(e.error);\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/contextview/browser/contextMenuService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { ModifierKeyEmitter } from '../../../base/browser/dom.js';\nimport { Separator } from '../../../base/common/actions.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { createAndFillInContextMenuActions } from '../../actions/browser/menuEntryActionViewItem.js';\nimport { IMenuService, MenuId } from '../../actions/common/actions.js';\nimport { IContextKeyService } from '../../contextkey/common/contextkey.js';\nimport { IKeybindingService } from '../../keybinding/common/keybinding.js';\nimport { INotificationService } from '../../notification/common/notification.js';\nimport { ITelemetryService } from '../../telemetry/common/telemetry.js';\nimport { ContextMenuHandler } from './contextMenuHandler.js';\nimport { IContextViewService } from './contextView.js';\nlet ContextMenuService = class ContextMenuService extends Disposable {\n    get contextMenuHandler() {\n        if (!this._contextMenuHandler) {\n            this._contextMenuHandler = new ContextMenuHandler(this.contextViewService, this.telemetryService, this.notificationService, this.keybindingService);\n        }\n        return this._contextMenuHandler;\n    }\n    constructor(telemetryService, notificationService, contextViewService, keybindingService, menuService, contextKeyService) {\n        super();\n        this.telemetryService = telemetryService;\n        this.notificationService = notificationService;\n        this.contextViewService = contextViewService;\n        this.keybindingService = keybindingService;\n        this.menuService = menuService;\n        this.contextKeyService = contextKeyService;\n        this._contextMenuHandler = undefined;\n        this._onDidShowContextMenu = this._store.add(new Emitter());\n        this.onDidShowContextMenu = this._onDidShowContextMenu.event;\n        this._onDidHideContextMenu = this._store.add(new Emitter());\n    }\n    configure(options) {\n        this.contextMenuHandler.configure(options);\n    }\n    // ContextMenu\n    showContextMenu(delegate) {\n        delegate = ContextMenuMenuDelegate.transform(delegate, this.menuService, this.contextKeyService);\n        this.contextMenuHandler.showContextMenu({\n            ...delegate,\n            onHide: (didCancel) => {\n                var _a;\n                (_a = delegate.onHide) === null || _a === void 0 ? void 0 : _a.call(delegate, didCancel);\n                this._onDidHideContextMenu.fire();\n            }\n        });\n        ModifierKeyEmitter.getInstance().resetKeyStatus();\n        this._onDidShowContextMenu.fire();\n    }\n};\nContextMenuService = __decorate([\n    __param(0, ITelemetryService),\n    __param(1, INotificationService),\n    __param(2, IContextViewService),\n    __param(3, IKeybindingService),\n    __param(4, IMenuService),\n    __param(5, IContextKeyService)\n], ContextMenuService);\nexport { ContextMenuService };\nexport var ContextMenuMenuDelegate;\n(function (ContextMenuMenuDelegate) {\n    function is(thing) {\n        return thing && thing.menuId instanceof MenuId;\n    }\n    function transform(delegate, menuService, globalContextKeyService) {\n        if (!is(delegate)) {\n            return delegate;\n        }\n        const { menuId, menuActionOptions, contextKeyService } = delegate;\n        return {\n            ...delegate,\n            getActions: () => {\n                const target = [];\n                if (menuId) {\n                    const menu = menuService.createMenu(menuId, contextKeyService !== null && contextKeyService !== void 0 ? contextKeyService : globalContextKeyService);\n                    createAndFillInContextMenuActions(menu, menuActionOptions, target);\n                    menu.dispose();\n                }\n                if (!delegate.getActions) {\n                    return target;\n                }\n                else {\n                    return Separator.join(delegate.getActions(), target);\n                }\n            }\n        };\n    }\n    ContextMenuMenuDelegate.transform = transform;\n})(ContextMenuMenuDelegate || (ContextMenuMenuDelegate = {}));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/contextview/browser/contextView.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const IContextViewService = createDecorator('contextViewService');\nexport const IContextMenuService = createDecorator('contextMenuService');\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/contextview/browser/contextViewService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { ContextView } from '../../../base/browser/ui/contextview/contextview.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { ILayoutService } from '../../layout/browser/layoutService.js';\nimport { getWindow } from '../../../base/browser/dom.js';\nlet ContextViewHandler = class ContextViewHandler extends Disposable {\n    constructor(layoutService) {\n        super();\n        this.layoutService = layoutService;\n        this.contextView = this._register(new ContextView(this.layoutService.mainContainer, 1 /* ContextViewDOMPosition.ABSOLUTE */));\n        this.layout();\n        this._register(layoutService.onDidLayoutContainer(() => this.layout()));\n    }\n    // ContextView\n    showContextView(delegate, container, shadowRoot) {\n        let domPosition;\n        if (container) {\n            if (container === this.layoutService.getContainer(getWindow(container))) {\n                domPosition = 1 /* ContextViewDOMPosition.ABSOLUTE */;\n            }\n            else if (shadowRoot) {\n                domPosition = 3 /* ContextViewDOMPosition.FIXED_SHADOW */;\n            }\n            else {\n                domPosition = 2 /* ContextViewDOMPosition.FIXED */;\n            }\n        }\n        else {\n            domPosition = 1 /* ContextViewDOMPosition.ABSOLUTE */;\n        }\n        this.contextView.setContainer(container !== null && container !== void 0 ? container : this.layoutService.activeContainer, domPosition);\n        this.contextView.show(delegate);\n        const openContextView = {\n            close: () => {\n                if (this.openContextView === openContextView) {\n                    this.hideContextView();\n                }\n            }\n        };\n        this.openContextView = openContextView;\n        return openContextView;\n    }\n    layout() {\n        this.contextView.layout();\n    }\n    hideContextView(data) {\n        this.contextView.hide(data);\n        this.openContextView = undefined;\n    }\n};\nContextViewHandler = __decorate([\n    __param(0, ILayoutService)\n], ContextViewHandler);\nexport { ContextViewHandler };\nexport class ContextViewService extends ContextViewHandler {\n    getContextViewElement() {\n        return this.contextView.getViewElement();\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/dialogs/common/dialogs.js",
    "content": "import { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const IDialogService = createDecorator('dialogService');\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/dnd/browser/dnd.js",
    "content": "import { Registry } from '../../registry/common/platform.js';\n//#region Editor / Resources DND\nexport const CodeDataTransfers = {\n    EDITORS: 'CodeEditors',\n    FILES: 'CodeFiles'\n};\nclass DragAndDropContributionRegistry {\n}\nexport const Extensions = {\n    DragAndDropContribution: 'workbench.contributions.dragAndDrop'\n};\nRegistry.add(Extensions.DragAndDropContribution, new DragAndDropContributionRegistry());\n//#endregion\n//#region DND Utilities\n/**\n * A singleton to store transfer data during drag & drop operations that are only valid within the application.\n */\nexport class LocalSelectionTransfer {\n    constructor() {\n        // protect against external instantiation\n    }\n    static getInstance() {\n        return LocalSelectionTransfer.INSTANCE;\n    }\n    hasData(proto) {\n        return proto && proto === this.proto;\n    }\n    getData(proto) {\n        if (this.hasData(proto)) {\n            return this.data;\n        }\n        return undefined;\n    }\n}\nLocalSelectionTransfer.INSTANCE = new LocalSelectionTransfer();\n//#endregion\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/editor/common/editor.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport var EditorOpenSource;\n(function (EditorOpenSource) {\n    /**\n     * Default: the editor is opening via a programmatic call\n     * to the editor service API.\n     */\n    EditorOpenSource[EditorOpenSource[\"API\"] = 0] = \"API\";\n    /**\n     * Indicates that a user action triggered the opening, e.g.\n     * via mouse or keyboard use.\n     */\n    EditorOpenSource[EditorOpenSource[\"USER\"] = 1] = \"USER\";\n})(EditorOpenSource || (EditorOpenSource = {}));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/environment/common/environment.js",
    "content": "import { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const IEnvironmentService = createDecorator('environmentService');\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/extensions/common/extensions.js",
    "content": "/**\n * **!Do not construct directly!**\n *\n * **!Only static methods because it gets serialized!**\n *\n * This represents the \"canonical\" version for an extension identifier. Extension ids\n * have to be case-insensitive (due to the marketplace), but we must ensure case\n * preservation because the extension API is already public at this time.\n *\n * For example, given an extension with the publisher `\"Hello\"` and the name `\"World\"`,\n * its canonical extension identifier is `\"Hello.World\"`. This extension could be\n * referenced in some other extension's dependencies using the string `\"hello.world\"`.\n *\n * To make matters more complicated, an extension can optionally have an UUID. When two\n * extensions have the same UUID, they are considered equal even if their identifier is different.\n */\nexport class ExtensionIdentifier {\n    constructor(value) {\n        this.value = value;\n        this._lower = value.toLowerCase();\n    }\n    /**\n     * Gives the value by which to index (for equality).\n     */\n    static toKey(id) {\n        if (typeof id === 'string') {\n            return id.toLowerCase();\n        }\n        return id._lower;\n    }\n}\nexport class ExtensionIdentifierSet {\n    constructor(iterable) {\n        this._set = new Set();\n        if (iterable) {\n            for (const value of iterable) {\n                this.add(value);\n            }\n        }\n    }\n    add(id) {\n        this._set.add(ExtensionIdentifier.toKey(id));\n    }\n    has(id) {\n        return this._set.has(ExtensionIdentifier.toKey(id));\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/files/common/files.js",
    "content": "//#endregion\n//#region Utilities\nexport var FileKind;\n(function (FileKind) {\n    FileKind[FileKind[\"FILE\"] = 0] = \"FILE\";\n    FileKind[FileKind[\"FOLDER\"] = 1] = \"FOLDER\";\n    FileKind[FileKind[\"ROOT_FOLDER\"] = 2] = \"ROOT_FOLDER\";\n})(FileKind || (FileKind = {}));\n//#endregion\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/history/browser/contextScopedHistoryWidget.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { FindInput } from '../../../base/browser/ui/findinput/findInput.js';\nimport { ReplaceInput } from '../../../base/browser/ui/findinput/replaceInput.js';\nimport { ContextKeyExpr, IContextKeyService, RawContextKey } from '../../contextkey/common/contextkey.js';\nimport { KeybindingsRegistry } from '../../keybinding/common/keybindingsRegistry.js';\nimport { localize } from '../../../nls.js';\nimport { DisposableStore, toDisposable } from '../../../base/common/lifecycle.js';\nimport { isActiveElement } from '../../../base/browser/dom.js';\nexport const historyNavigationVisible = new RawContextKey('suggestWidgetVisible', false, localize('suggestWidgetVisible', \"Whether suggestion are visible\"));\nconst HistoryNavigationWidgetFocusContext = 'historyNavigationWidgetFocus';\nconst HistoryNavigationForwardsEnablementContext = 'historyNavigationForwardsEnabled';\nconst HistoryNavigationBackwardsEnablementContext = 'historyNavigationBackwardsEnabled';\nlet lastFocusedWidget = undefined;\nconst widgets = [];\nexport function registerAndCreateHistoryNavigationContext(scopedContextKeyService, widget) {\n    if (widgets.includes(widget)) {\n        throw new Error('Cannot register the same widget multiple times');\n    }\n    widgets.push(widget);\n    const disposableStore = new DisposableStore();\n    const historyNavigationWidgetFocus = new RawContextKey(HistoryNavigationWidgetFocusContext, false).bindTo(scopedContextKeyService);\n    const historyNavigationForwardsEnablement = new RawContextKey(HistoryNavigationForwardsEnablementContext, true).bindTo(scopedContextKeyService);\n    const historyNavigationBackwardsEnablement = new RawContextKey(HistoryNavigationBackwardsEnablementContext, true).bindTo(scopedContextKeyService);\n    const onDidFocus = () => {\n        historyNavigationWidgetFocus.set(true);\n        lastFocusedWidget = widget;\n    };\n    const onDidBlur = () => {\n        historyNavigationWidgetFocus.set(false);\n        if (lastFocusedWidget === widget) {\n            lastFocusedWidget = undefined;\n        }\n    };\n    // Check for currently being focused\n    if (isActiveElement(widget.element)) {\n        onDidFocus();\n    }\n    disposableStore.add(widget.onDidFocus(() => onDidFocus()));\n    disposableStore.add(widget.onDidBlur(() => onDidBlur()));\n    disposableStore.add(toDisposable(() => {\n        widgets.splice(widgets.indexOf(widget), 1);\n        onDidBlur();\n    }));\n    return {\n        historyNavigationForwardsEnablement,\n        historyNavigationBackwardsEnablement,\n        dispose() {\n            disposableStore.dispose();\n        }\n    };\n}\nlet ContextScopedFindInput = class ContextScopedFindInput extends FindInput {\n    constructor(container, contextViewProvider, options, contextKeyService) {\n        super(container, contextViewProvider, options);\n        const scopedContextKeyService = this._register(contextKeyService.createScoped(this.inputBox.element));\n        this._register(registerAndCreateHistoryNavigationContext(scopedContextKeyService, this.inputBox));\n    }\n};\nContextScopedFindInput = __decorate([\n    __param(3, IContextKeyService)\n], ContextScopedFindInput);\nexport { ContextScopedFindInput };\nlet ContextScopedReplaceInput = class ContextScopedReplaceInput extends ReplaceInput {\n    constructor(container, contextViewProvider, options, contextKeyService, showReplaceOptions = false) {\n        super(container, contextViewProvider, showReplaceOptions, options);\n        const scopedContextKeyService = this._register(contextKeyService.createScoped(this.inputBox.element));\n        this._register(registerAndCreateHistoryNavigationContext(scopedContextKeyService, this.inputBox));\n    }\n};\nContextScopedReplaceInput = __decorate([\n    __param(3, IContextKeyService)\n], ContextScopedReplaceInput);\nexport { ContextScopedReplaceInput };\nKeybindingsRegistry.registerCommandAndKeybindingRule({\n    id: 'history.showPrevious',\n    weight: 200 /* KeybindingWeight.WorkbenchContrib */,\n    when: ContextKeyExpr.and(ContextKeyExpr.has(HistoryNavigationWidgetFocusContext), ContextKeyExpr.equals(HistoryNavigationBackwardsEnablementContext, true), ContextKeyExpr.not('isComposing'), historyNavigationVisible.isEqualTo(false)),\n    primary: 16 /* KeyCode.UpArrow */,\n    secondary: [512 /* KeyMod.Alt */ | 16 /* KeyCode.UpArrow */],\n    handler: (accessor) => {\n        lastFocusedWidget === null || lastFocusedWidget === void 0 ? void 0 : lastFocusedWidget.showPreviousValue();\n    }\n});\nKeybindingsRegistry.registerCommandAndKeybindingRule({\n    id: 'history.showNext',\n    weight: 200 /* KeybindingWeight.WorkbenchContrib */,\n    when: ContextKeyExpr.and(ContextKeyExpr.has(HistoryNavigationWidgetFocusContext), ContextKeyExpr.equals(HistoryNavigationForwardsEnablementContext, true), ContextKeyExpr.not('isComposing'), historyNavigationVisible.isEqualTo(false)),\n    primary: 18 /* KeyCode.DownArrow */,\n    secondary: [512 /* KeyMod.Alt */ | 18 /* KeyCode.DownArrow */],\n    handler: (accessor) => {\n        lastFocusedWidget === null || lastFocusedWidget === void 0 ? void 0 : lastFocusedWidget.showNextValue();\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/history/browser/historyWidgetKeybindingHint.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport function showHistoryKeybindingHint(keybindingService) {\n    var _a, _b;\n    return ((_a = keybindingService.lookupKeybinding('history.showPrevious')) === null || _a === void 0 ? void 0 : _a.getElectronAccelerator()) === 'Up' && ((_b = keybindingService.lookupKeybinding('history.showNext')) === null || _b === void 0 ? void 0 : _b.getElectronAccelerator()) === 'Down';\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/hover/browser/hover.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nimport { Disposable, DisposableStore } from '../../../base/common/lifecycle.js';\nimport { IConfigurationService } from '../../configuration/common/configuration.js';\nimport { addStandardDisposableListener, isHTMLElement } from '../../../base/browser/dom.js';\nexport const IHoverService = createDecorator('hoverService');\nlet WorkbenchHoverDelegate = class WorkbenchHoverDelegate extends Disposable {\n    get delay() {\n        if (this.isInstantlyHovering()) {\n            return 0; // show instantly when a hover was recently shown\n        }\n        return this._delay;\n    }\n    constructor(placement, instantHover, overrideOptions = {}, configurationService, hoverService) {\n        super();\n        this.placement = placement;\n        this.instantHover = instantHover;\n        this.overrideOptions = overrideOptions;\n        this.configurationService = configurationService;\n        this.hoverService = hoverService;\n        this.lastHoverHideTime = 0;\n        this.timeLimit = 200;\n        this.hoverDisposables = this._register(new DisposableStore());\n        this._delay = this.configurationService.getValue('workbench.hover.delay');\n        this._register(this.configurationService.onDidChangeConfiguration(e => {\n            if (e.affectsConfiguration('workbench.hover.delay')) {\n                this._delay = this.configurationService.getValue('workbench.hover.delay');\n            }\n        }));\n    }\n    showHover(options, focus) {\n        const overrideOptions = typeof this.overrideOptions === 'function' ? this.overrideOptions(options, focus) : this.overrideOptions;\n        // close hover on escape\n        this.hoverDisposables.clear();\n        const targets = isHTMLElement(options.target) ? [options.target] : options.target.targetElements;\n        for (const target of targets) {\n            this.hoverDisposables.add(addStandardDisposableListener(target, 'keydown', (e) => {\n                if (e.equals(9 /* KeyCode.Escape */)) {\n                    this.hoverService.hideHover();\n                }\n            }));\n        }\n        const id = isHTMLElement(options.content) ? undefined : options.content.toString();\n        return this.hoverService.showHover({\n            ...options,\n            ...overrideOptions,\n            persistence: {\n                hideOnKeyDown: true,\n                ...overrideOptions.persistence\n            },\n            id,\n            appearance: {\n                ...options.appearance,\n                compact: true,\n                skipFadeInAnimation: this.isInstantlyHovering(),\n                ...overrideOptions.appearance\n            }\n        }, focus);\n    }\n    isInstantlyHovering() {\n        return this.instantHover && Date.now() - this.lastHoverHideTime < this.timeLimit;\n    }\n    onDidHideHover() {\n        this.hoverDisposables.clear();\n        if (this.instantHover) {\n            this.lastHoverHideTime = Date.now();\n        }\n    }\n};\nWorkbenchHoverDelegate = __decorate([\n    __param(3, IConfigurationService),\n    __param(4, IHoverService)\n], WorkbenchHoverDelegate);\nexport { WorkbenchHoverDelegate };\n// TODO@benibenj remove this, only temp fix for contextviews\nexport const nativeHoverDelegate = {\n    showHover: function () {\n        throw new Error('Native hover function not implemented.');\n    },\n    delay: 0,\n    showNativeHover: true\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/instantiation/common/descriptors.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class SyncDescriptor {\n    constructor(ctor, staticArguments = [], supportsDelayedInstantiation = false) {\n        this.ctor = ctor;\n        this.staticArguments = staticArguments;\n        this.supportsDelayedInstantiation = supportsDelayedInstantiation;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/instantiation/common/extensions.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { SyncDescriptor } from './descriptors.js';\nconst _registry = [];\nexport function registerSingleton(id, ctorOrDescriptor, supportsDelayedInstantiation) {\n    if (!(ctorOrDescriptor instanceof SyncDescriptor)) {\n        ctorOrDescriptor = new SyncDescriptor(ctorOrDescriptor, [], Boolean(supportsDelayedInstantiation));\n    }\n    _registry.push([id, ctorOrDescriptor]);\n}\nexport function getSingletonServiceDescriptors() {\n    return _registry;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/instantiation/common/graph.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class Node {\n    constructor(key, data) {\n        this.key = key;\n        this.data = data;\n        this.incoming = new Map();\n        this.outgoing = new Map();\n    }\n}\nexport class Graph {\n    constructor(_hashFn) {\n        this._hashFn = _hashFn;\n        this._nodes = new Map();\n        // empty\n    }\n    roots() {\n        const ret = [];\n        for (const node of this._nodes.values()) {\n            if (node.outgoing.size === 0) {\n                ret.push(node);\n            }\n        }\n        return ret;\n    }\n    insertEdge(from, to) {\n        const fromNode = this.lookupOrInsertNode(from);\n        const toNode = this.lookupOrInsertNode(to);\n        fromNode.outgoing.set(toNode.key, toNode);\n        toNode.incoming.set(fromNode.key, fromNode);\n    }\n    removeNode(data) {\n        const key = this._hashFn(data);\n        this._nodes.delete(key);\n        for (const node of this._nodes.values()) {\n            node.outgoing.delete(key);\n            node.incoming.delete(key);\n        }\n    }\n    lookupOrInsertNode(data) {\n        const key = this._hashFn(data);\n        let node = this._nodes.get(key);\n        if (!node) {\n            node = new Node(key, data);\n            this._nodes.set(key, node);\n        }\n        return node;\n    }\n    isEmpty() {\n        return this._nodes.size === 0;\n    }\n    toString() {\n        const data = [];\n        for (const [key, value] of this._nodes) {\n            data.push(`${key}\\n\\t(-> incoming)[${[...value.incoming.keys()].join(', ')}]\\n\\t(outgoing ->)[${[...value.outgoing.keys()].join(',')}]\\n`);\n        }\n        return data.join('\\n');\n    }\n    /**\n     * This is brute force and slow and **only** be used\n     * to trouble shoot.\n     */\n    findCycleSlow() {\n        for (const [id, node] of this._nodes) {\n            const seen = new Set([id]);\n            const res = this._findCycle(node, seen);\n            if (res) {\n                return res;\n            }\n        }\n        return undefined;\n    }\n    _findCycle(node, seen) {\n        for (const [id, outgoing] of node.outgoing) {\n            if (seen.has(id)) {\n                return [...seen, id].join(' -> ');\n            }\n            seen.add(id);\n            const value = this._findCycle(outgoing, seen);\n            if (value) {\n                return value;\n            }\n            seen.delete(id);\n        }\n        return undefined;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/instantiation/common/instantiation.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n// ------ internal util\nexport var _util;\n(function (_util) {\n    _util.serviceIds = new Map();\n    _util.DI_TARGET = '$di$target';\n    _util.DI_DEPENDENCIES = '$di$dependencies';\n    function getServiceDependencies(ctor) {\n        return ctor[_util.DI_DEPENDENCIES] || [];\n    }\n    _util.getServiceDependencies = getServiceDependencies;\n})(_util || (_util = {}));\nexport const IInstantiationService = createDecorator('instantiationService');\nfunction storeServiceDependency(id, target, index) {\n    if (target[_util.DI_TARGET] === target) {\n        target[_util.DI_DEPENDENCIES].push({ id, index });\n    }\n    else {\n        target[_util.DI_DEPENDENCIES] = [{ id, index }];\n        target[_util.DI_TARGET] = target;\n    }\n}\n/**\n * The *only* valid way to create a {{ServiceIdentifier}}.\n */\nexport function createDecorator(serviceId) {\n    if (_util.serviceIds.has(serviceId)) {\n        return _util.serviceIds.get(serviceId);\n    }\n    const id = function (target, key, index) {\n        if (arguments.length !== 3) {\n            throw new Error('@IServiceName-decorator can only be used to decorate a parameter');\n        }\n        storeServiceDependency(id, target, index);\n    };\n    id.toString = () => serviceId;\n    _util.serviceIds.set(serviceId, id);\n    return id;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/instantiation/common/instantiationService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { GlobalIdleValue } from '../../../base/common/async.js';\nimport { illegalState } from '../../../base/common/errors.js';\nimport { dispose, isDisposable, toDisposable } from '../../../base/common/lifecycle.js';\nimport { SyncDescriptor } from './descriptors.js';\nimport { Graph } from './graph.js';\nimport { IInstantiationService, _util } from './instantiation.js';\nimport { ServiceCollection } from './serviceCollection.js';\nimport { LinkedList } from '../../../base/common/linkedList.js';\n// TRACING\nconst _enableAllTracing = false;\nclass CyclicDependencyError extends Error {\n    constructor(graph) {\n        var _a;\n        super('cyclic dependency between services');\n        this.message = (_a = graph.findCycleSlow()) !== null && _a !== void 0 ? _a : `UNABLE to detect cycle, dumping graph: \\n${graph.toString()}`;\n    }\n}\nexport class InstantiationService {\n    constructor(_services = new ServiceCollection(), _strict = false, _parent, _enableTracing = _enableAllTracing) {\n        var _a;\n        this._services = _services;\n        this._strict = _strict;\n        this._parent = _parent;\n        this._enableTracing = _enableTracing;\n        this._isDisposed = false;\n        this._servicesToMaybeDispose = new Set();\n        this._children = new Set();\n        this._activeInstantiations = new Set();\n        this._services.set(IInstantiationService, this);\n        this._globalGraph = _enableTracing ? (_a = _parent === null || _parent === void 0 ? void 0 : _parent._globalGraph) !== null && _a !== void 0 ? _a : new Graph(e => e) : undefined;\n    }\n    dispose() {\n        if (!this._isDisposed) {\n            this._isDisposed = true;\n            // dispose all child services\n            dispose(this._children);\n            this._children.clear();\n            // dispose all services created by this service\n            for (const candidate of this._servicesToMaybeDispose) {\n                if (isDisposable(candidate)) {\n                    candidate.dispose();\n                }\n            }\n            this._servicesToMaybeDispose.clear();\n        }\n    }\n    _throwIfDisposed() {\n        if (this._isDisposed) {\n            throw new Error('InstantiationService has been disposed');\n        }\n    }\n    createChild(services, store) {\n        this._throwIfDisposed();\n        const that = this;\n        const result = new class extends InstantiationService {\n            dispose() {\n                that._children.delete(result);\n                super.dispose();\n            }\n        }(services, this._strict, this, this._enableTracing);\n        this._children.add(result);\n        store === null || store === void 0 ? void 0 : store.add(result);\n        return result;\n    }\n    invokeFunction(fn, ...args) {\n        this._throwIfDisposed();\n        const _trace = Trace.traceInvocation(this._enableTracing, fn);\n        let _done = false;\n        try {\n            const accessor = {\n                get: (id) => {\n                    if (_done) {\n                        throw illegalState('service accessor is only valid during the invocation of its target method');\n                    }\n                    const result = this._getOrCreateServiceInstance(id, _trace);\n                    if (!result) {\n                        throw new Error(`[invokeFunction] unknown service '${id}'`);\n                    }\n                    return result;\n                }\n            };\n            return fn(accessor, ...args);\n        }\n        finally {\n            _done = true;\n            _trace.stop();\n        }\n    }\n    createInstance(ctorOrDescriptor, ...rest) {\n        this._throwIfDisposed();\n        let _trace;\n        let result;\n        if (ctorOrDescriptor instanceof SyncDescriptor) {\n            _trace = Trace.traceCreation(this._enableTracing, ctorOrDescriptor.ctor);\n            result = this._createInstance(ctorOrDescriptor.ctor, ctorOrDescriptor.staticArguments.concat(rest), _trace);\n        }\n        else {\n            _trace = Trace.traceCreation(this._enableTracing, ctorOrDescriptor);\n            result = this._createInstance(ctorOrDescriptor, rest, _trace);\n        }\n        _trace.stop();\n        return result;\n    }\n    _createInstance(ctor, args = [], _trace) {\n        // arguments defined by service decorators\n        const serviceDependencies = _util.getServiceDependencies(ctor).sort((a, b) => a.index - b.index);\n        const serviceArgs = [];\n        for (const dependency of serviceDependencies) {\n            const service = this._getOrCreateServiceInstance(dependency.id, _trace);\n            if (!service) {\n                this._throwIfStrict(`[createInstance] ${ctor.name} depends on UNKNOWN service ${dependency.id}.`, false);\n            }\n            serviceArgs.push(service);\n        }\n        const firstServiceArgPos = serviceDependencies.length > 0 ? serviceDependencies[0].index : args.length;\n        // check for argument mismatches, adjust static args if needed\n        if (args.length !== firstServiceArgPos) {\n            console.trace(`[createInstance] First service dependency of ${ctor.name} at position ${firstServiceArgPos + 1} conflicts with ${args.length} static arguments`);\n            const delta = firstServiceArgPos - args.length;\n            if (delta > 0) {\n                args = args.concat(new Array(delta));\n            }\n            else {\n                args = args.slice(0, firstServiceArgPos);\n            }\n        }\n        // now create the instance\n        return Reflect.construct(ctor, args.concat(serviceArgs));\n    }\n    _setCreatedServiceInstance(id, instance) {\n        if (this._services.get(id) instanceof SyncDescriptor) {\n            this._services.set(id, instance);\n        }\n        else if (this._parent) {\n            this._parent._setCreatedServiceInstance(id, instance);\n        }\n        else {\n            throw new Error('illegalState - setting UNKNOWN service instance');\n        }\n    }\n    _getServiceInstanceOrDescriptor(id) {\n        const instanceOrDesc = this._services.get(id);\n        if (!instanceOrDesc && this._parent) {\n            return this._parent._getServiceInstanceOrDescriptor(id);\n        }\n        else {\n            return instanceOrDesc;\n        }\n    }\n    _getOrCreateServiceInstance(id, _trace) {\n        if (this._globalGraph && this._globalGraphImplicitDependency) {\n            this._globalGraph.insertEdge(this._globalGraphImplicitDependency, String(id));\n        }\n        const thing = this._getServiceInstanceOrDescriptor(id);\n        if (thing instanceof SyncDescriptor) {\n            return this._safeCreateAndCacheServiceInstance(id, thing, _trace.branch(id, true));\n        }\n        else {\n            _trace.branch(id, false);\n            return thing;\n        }\n    }\n    _safeCreateAndCacheServiceInstance(id, desc, _trace) {\n        if (this._activeInstantiations.has(id)) {\n            throw new Error(`illegal state - RECURSIVELY instantiating service '${id}'`);\n        }\n        this._activeInstantiations.add(id);\n        try {\n            return this._createAndCacheServiceInstance(id, desc, _trace);\n        }\n        finally {\n            this._activeInstantiations.delete(id);\n        }\n    }\n    _createAndCacheServiceInstance(id, desc, _trace) {\n        var _a;\n        const graph = new Graph(data => data.id.toString());\n        let cycleCount = 0;\n        const stack = [{ id, desc, _trace }];\n        while (stack.length) {\n            const item = stack.pop();\n            graph.lookupOrInsertNode(item);\n            // a weak but working heuristic for cycle checks\n            if (cycleCount++ > 1000) {\n                throw new CyclicDependencyError(graph);\n            }\n            // check all dependencies for existence and if they need to be created first\n            for (const dependency of _util.getServiceDependencies(item.desc.ctor)) {\n                const instanceOrDesc = this._getServiceInstanceOrDescriptor(dependency.id);\n                if (!instanceOrDesc) {\n                    this._throwIfStrict(`[createInstance] ${id} depends on ${dependency.id} which is NOT registered.`, true);\n                }\n                // take note of all service dependencies\n                (_a = this._globalGraph) === null || _a === void 0 ? void 0 : _a.insertEdge(String(item.id), String(dependency.id));\n                if (instanceOrDesc instanceof SyncDescriptor) {\n                    const d = { id: dependency.id, desc: instanceOrDesc, _trace: item._trace.branch(dependency.id, true) };\n                    graph.insertEdge(item, d);\n                    stack.push(d);\n                }\n            }\n        }\n        while (true) {\n            const roots = graph.roots();\n            // if there is no more roots but still\n            // nodes in the graph we have a cycle\n            if (roots.length === 0) {\n                if (!graph.isEmpty()) {\n                    throw new CyclicDependencyError(graph);\n                }\n                break;\n            }\n            for (const { data } of roots) {\n                // Repeat the check for this still being a service sync descriptor. That's because\n                // instantiating a dependency might have side-effect and recursively trigger instantiation\n                // so that some dependencies are now fullfilled already.\n                const instanceOrDesc = this._getServiceInstanceOrDescriptor(data.id);\n                if (instanceOrDesc instanceof SyncDescriptor) {\n                    // create instance and overwrite the service collections\n                    const instance = this._createServiceInstanceWithOwner(data.id, data.desc.ctor, data.desc.staticArguments, data.desc.supportsDelayedInstantiation, data._trace);\n                    this._setCreatedServiceInstance(data.id, instance);\n                }\n                graph.removeNode(data);\n            }\n        }\n        return this._getServiceInstanceOrDescriptor(id);\n    }\n    _createServiceInstanceWithOwner(id, ctor, args = [], supportsDelayedInstantiation, _trace) {\n        if (this._services.get(id) instanceof SyncDescriptor) {\n            return this._createServiceInstance(id, ctor, args, supportsDelayedInstantiation, _trace, this._servicesToMaybeDispose);\n        }\n        else if (this._parent) {\n            return this._parent._createServiceInstanceWithOwner(id, ctor, args, supportsDelayedInstantiation, _trace);\n        }\n        else {\n            throw new Error(`illegalState - creating UNKNOWN service instance ${ctor.name}`);\n        }\n    }\n    _createServiceInstance(id, ctor, args = [], supportsDelayedInstantiation, _trace, disposeBucket) {\n        if (!supportsDelayedInstantiation) {\n            // eager instantiation\n            const result = this._createInstance(ctor, args, _trace);\n            disposeBucket.add(result);\n            return result;\n        }\n        else {\n            const child = new InstantiationService(undefined, this._strict, this, this._enableTracing);\n            child._globalGraphImplicitDependency = String(id);\n            // Return a proxy object that's backed by an idle value. That\n            // strategy is to instantiate services in our idle time or when actually\n            // needed but not when injected into a consumer\n            // return \"empty events\" when the service isn't instantiated yet\n            const earlyListeners = new Map();\n            const idle = new GlobalIdleValue(() => {\n                const result = child._createInstance(ctor, args, _trace);\n                // early listeners that we kept are now being subscribed to\n                // the real service\n                for (const [key, values] of earlyListeners) {\n                    const candidate = result[key];\n                    if (typeof candidate === 'function') {\n                        for (const value of values) {\n                            value.disposable = candidate.apply(result, value.listener);\n                        }\n                    }\n                }\n                earlyListeners.clear();\n                disposeBucket.add(result);\n                return result;\n            });\n            return new Proxy(Object.create(null), {\n                get(target, key) {\n                    if (!idle.isInitialized) {\n                        // looks like an event\n                        if (typeof key === 'string' && (key.startsWith('onDid') || key.startsWith('onWill'))) {\n                            let list = earlyListeners.get(key);\n                            if (!list) {\n                                list = new LinkedList();\n                                earlyListeners.set(key, list);\n                            }\n                            const event = (callback, thisArg, disposables) => {\n                                if (idle.isInitialized) {\n                                    return idle.value[key](callback, thisArg, disposables);\n                                }\n                                else {\n                                    const entry = { listener: [callback, thisArg, disposables], disposable: undefined };\n                                    const rm = list.push(entry);\n                                    const result = toDisposable(() => {\n                                        var _a;\n                                        rm();\n                                        (_a = entry.disposable) === null || _a === void 0 ? void 0 : _a.dispose();\n                                    });\n                                    return result;\n                                }\n                            };\n                            return event;\n                        }\n                    }\n                    // value already exists\n                    if (key in target) {\n                        return target[key];\n                    }\n                    // create value\n                    const obj = idle.value;\n                    let prop = obj[key];\n                    if (typeof prop !== 'function') {\n                        return prop;\n                    }\n                    prop = prop.bind(obj);\n                    target[key] = prop;\n                    return prop;\n                },\n                set(_target, p, value) {\n                    idle.value[p] = value;\n                    return true;\n                },\n                getPrototypeOf(_target) {\n                    return ctor.prototype;\n                }\n            });\n        }\n    }\n    _throwIfStrict(msg, printWarning) {\n        if (printWarning) {\n            console.warn(msg);\n        }\n        if (this._strict) {\n            throw new Error(msg);\n        }\n    }\n}\nexport class Trace {\n    static traceInvocation(_enableTracing, ctor) {\n        return !_enableTracing ? Trace._None : new Trace(2 /* TraceType.Invocation */, ctor.name || new Error().stack.split('\\n').slice(3, 4).join('\\n'));\n    }\n    static traceCreation(_enableTracing, ctor) {\n        return !_enableTracing ? Trace._None : new Trace(1 /* TraceType.Creation */, ctor.name);\n    }\n    constructor(type, name) {\n        this.type = type;\n        this.name = name;\n        this._start = Date.now();\n        this._dep = [];\n    }\n    branch(id, first) {\n        const child = new Trace(3 /* TraceType.Branch */, id.toString());\n        this._dep.push([id, first, child]);\n        return child;\n    }\n    stop() {\n        const dur = Date.now() - this._start;\n        Trace._totals += dur;\n        let causedCreation = false;\n        function printChild(n, trace) {\n            const res = [];\n            const prefix = new Array(n + 1).join('\\t');\n            for (const [id, first, child] of trace._dep) {\n                if (first && child) {\n                    causedCreation = true;\n                    res.push(`${prefix}CREATES -> ${id}`);\n                    const nested = printChild(n + 1, child);\n                    if (nested) {\n                        res.push(nested);\n                    }\n                }\n                else {\n                    res.push(`${prefix}uses -> ${id}`);\n                }\n            }\n            return res.join('\\n');\n        }\n        const lines = [\n            `${this.type === 1 /* TraceType.Creation */ ? 'CREATE' : 'CALL'} ${this.name}`,\n            `${printChild(1, this)}`,\n            `DONE, took ${dur.toFixed(2)}ms (grand total ${Trace._totals.toFixed(2)}ms)`\n        ];\n        if (dur > 2 || causedCreation) {\n            Trace.all.add(lines.join('\\n'));\n        }\n    }\n}\nTrace.all = new Set();\nTrace._None = new class extends Trace {\n    constructor() { super(0 /* TraceType.None */, null); }\n    stop() { }\n    branch() { return this; }\n};\nTrace._totals = 0;\n//#endregion\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/instantiation/common/serviceCollection.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class ServiceCollection {\n    constructor(...entries) {\n        this._entries = new Map();\n        for (const [id, service] of entries) {\n            this.set(id, service);\n        }\n    }\n    set(id, instanceOrDescriptor) {\n        const result = this._entries.get(id);\n        this._entries.set(id, instanceOrDescriptor);\n        return result;\n    }\n    get(id) {\n        return this._entries.get(id);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/jsonschemas/common/jsonContributionRegistry.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../../base/common/event.js';\nimport * as platform from '../../registry/common/platform.js';\nexport const Extensions = {\n    JSONContribution: 'base.contributions.json'\n};\nfunction normalizeId(id) {\n    if (id.length > 0 && id.charAt(id.length - 1) === '#') {\n        return id.substring(0, id.length - 1);\n    }\n    return id;\n}\nclass JSONContributionRegistry {\n    constructor() {\n        this._onDidChangeSchema = new Emitter();\n        this.schemasById = {};\n    }\n    registerSchema(uri, unresolvedSchemaContent) {\n        this.schemasById[normalizeId(uri)] = unresolvedSchemaContent;\n        this._onDidChangeSchema.fire(uri);\n    }\n    notifySchemaChanged(uri) {\n        this._onDidChangeSchema.fire(uri);\n    }\n}\nconst jsonContributionRegistry = new JSONContributionRegistry();\nplatform.Registry.add(Extensions.JSONContribution, jsonContributionRegistry);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/keybinding/common/abstractKeybindingService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { IntervalTimer, TimeoutTimer } from '../../../base/common/async.js';\nimport { illegalState } from '../../../base/common/errors.js';\nimport { Emitter, Event } from '../../../base/common/event.js';\nimport { IME } from '../../../base/common/ime.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport * as nls from '../../../nls.js';\nimport { NoMatchingKb } from './keybindingResolver.js';\nconst HIGH_FREQ_COMMANDS = /^(cursor|delete|undo|redo|tab|editor\\.action\\.clipboard)/;\nexport class AbstractKeybindingService extends Disposable {\n    get onDidUpdateKeybindings() {\n        return this._onDidUpdateKeybindings ? this._onDidUpdateKeybindings.event : Event.None; // Sinon stubbing walks properties on prototype\n    }\n    get inChordMode() {\n        return this._currentChords.length > 0;\n    }\n    constructor(_contextKeyService, _commandService, _telemetryService, _notificationService, _logService) {\n        super();\n        this._contextKeyService = _contextKeyService;\n        this._commandService = _commandService;\n        this._telemetryService = _telemetryService;\n        this._notificationService = _notificationService;\n        this._logService = _logService;\n        this._onDidUpdateKeybindings = this._register(new Emitter());\n        this._currentChords = [];\n        this._currentChordChecker = new IntervalTimer();\n        this._currentChordStatusMessage = null;\n        this._ignoreSingleModifiers = KeybindingModifierSet.EMPTY;\n        this._currentSingleModifier = null;\n        this._currentSingleModifierClearTimeout = new TimeoutTimer();\n        this._currentlyDispatchingCommandId = null;\n        this._logging = false;\n    }\n    dispose() {\n        super.dispose();\n    }\n    _log(str) {\n        if (this._logging) {\n            this._logService.info(`[KeybindingService]: ${str}`);\n        }\n    }\n    getKeybindings() {\n        return this._getResolver().getKeybindings();\n    }\n    lookupKeybinding(commandId, context) {\n        const result = this._getResolver().lookupPrimaryKeybinding(commandId, context || this._contextKeyService);\n        if (!result) {\n            return undefined;\n        }\n        return result.resolvedKeybinding;\n    }\n    dispatchEvent(e, target) {\n        return this._dispatch(e, target);\n    }\n    // TODO@ulugbekna: update namings to align with `_doDispatch`\n    // TODO@ulugbekna: this fn doesn't seem to take into account single-modifier keybindings, eg `shift shift`\n    softDispatch(e, target) {\n        this._log(`/ Soft dispatching keyboard event`);\n        const keybinding = this.resolveKeyboardEvent(e);\n        if (keybinding.hasMultipleChords()) {\n            console.warn('keyboard event should not be mapped to multiple chords');\n            return NoMatchingKb;\n        }\n        const [firstChord,] = keybinding.getDispatchChords();\n        if (firstChord === null) {\n            // cannot be dispatched, probably only modifier keys\n            this._log(`\\\\ Keyboard event cannot be dispatched`);\n            return NoMatchingKb;\n        }\n        const contextValue = this._contextKeyService.getContext(target);\n        const currentChords = this._currentChords.map((({ keypress }) => keypress));\n        return this._getResolver().resolve(contextValue, currentChords, firstChord);\n    }\n    _scheduleLeaveChordMode() {\n        const chordLastInteractedTime = Date.now();\n        this._currentChordChecker.cancelAndSet(() => {\n            if (!this._documentHasFocus()) {\n                // Focus has been lost => leave chord mode\n                this._leaveChordMode();\n                return;\n            }\n            if (Date.now() - chordLastInteractedTime > 5000) {\n                // 5 seconds elapsed => leave chord mode\n                this._leaveChordMode();\n            }\n        }, 500);\n    }\n    _expectAnotherChord(firstChord, keypressLabel) {\n        this._currentChords.push({ keypress: firstChord, label: keypressLabel });\n        switch (this._currentChords.length) {\n            case 0:\n                throw illegalState('impossible');\n            case 1:\n                // TODO@ulugbekna: revise this message and the one below (at least, fix terminology)\n                this._currentChordStatusMessage = this._notificationService.status(nls.localize('first.chord', \"({0}) was pressed. Waiting for second key of chord...\", keypressLabel));\n                break;\n            default: {\n                const fullKeypressLabel = this._currentChords.map(({ label }) => label).join(', ');\n                this._currentChordStatusMessage = this._notificationService.status(nls.localize('next.chord', \"({0}) was pressed. Waiting for next key of chord...\", fullKeypressLabel));\n            }\n        }\n        this._scheduleLeaveChordMode();\n        if (IME.enabled) {\n            IME.disable();\n        }\n    }\n    _leaveChordMode() {\n        if (this._currentChordStatusMessage) {\n            this._currentChordStatusMessage.dispose();\n            this._currentChordStatusMessage = null;\n        }\n        this._currentChordChecker.cancel();\n        this._currentChords = [];\n        IME.enable();\n    }\n    _dispatch(e, target) {\n        return this._doDispatch(this.resolveKeyboardEvent(e), target, /*isSingleModiferChord*/ false);\n    }\n    _singleModifierDispatch(e, target) {\n        const keybinding = this.resolveKeyboardEvent(e);\n        const [singleModifier,] = keybinding.getSingleModifierDispatchChords();\n        if (singleModifier) {\n            if (this._ignoreSingleModifiers.has(singleModifier)) {\n                this._log(`+ Ignoring single modifier ${singleModifier} due to it being pressed together with other keys.`);\n                this._ignoreSingleModifiers = KeybindingModifierSet.EMPTY;\n                this._currentSingleModifierClearTimeout.cancel();\n                this._currentSingleModifier = null;\n                return false;\n            }\n            this._ignoreSingleModifiers = KeybindingModifierSet.EMPTY;\n            if (this._currentSingleModifier === null) {\n                // we have a valid `singleModifier`, store it for the next keyup, but clear it in 300ms\n                this._log(`+ Storing single modifier for possible chord ${singleModifier}.`);\n                this._currentSingleModifier = singleModifier;\n                this._currentSingleModifierClearTimeout.cancelAndSet(() => {\n                    this._log(`+ Clearing single modifier due to 300ms elapsed.`);\n                    this._currentSingleModifier = null;\n                }, 300);\n                return false;\n            }\n            if (singleModifier === this._currentSingleModifier) {\n                // bingo!\n                this._log(`/ Dispatching single modifier chord ${singleModifier} ${singleModifier}`);\n                this._currentSingleModifierClearTimeout.cancel();\n                this._currentSingleModifier = null;\n                return this._doDispatch(keybinding, target, /*isSingleModiferChord*/ true);\n            }\n            this._log(`+ Clearing single modifier due to modifier mismatch: ${this._currentSingleModifier} ${singleModifier}`);\n            this._currentSingleModifierClearTimeout.cancel();\n            this._currentSingleModifier = null;\n            return false;\n        }\n        // When pressing a modifier and holding it pressed with any other modifier or key combination,\n        // the pressed modifiers should no longer be considered for single modifier dispatch.\n        const [firstChord,] = keybinding.getChords();\n        this._ignoreSingleModifiers = new KeybindingModifierSet(firstChord);\n        if (this._currentSingleModifier !== null) {\n            this._log(`+ Clearing single modifier due to other key up.`);\n        }\n        this._currentSingleModifierClearTimeout.cancel();\n        this._currentSingleModifier = null;\n        return false;\n    }\n    _doDispatch(userKeypress, target, isSingleModiferChord = false) {\n        var _a;\n        let shouldPreventDefault = false;\n        if (userKeypress.hasMultipleChords()) { // warn - because user can press a single chord at a time\n            console.warn('Unexpected keyboard event mapped to multiple chords');\n            return false;\n        }\n        let userPressedChord = null;\n        let currentChords = null;\n        if (isSingleModiferChord) {\n            // The keybinding is the second keypress of a single modifier chord, e.g. \"shift shift\".\n            // A single modifier can only occur when the same modifier is pressed in short sequence,\n            // hence we disregard `_currentChord` and use the same modifier instead.\n            const [dispatchKeyname,] = userKeypress.getSingleModifierDispatchChords();\n            userPressedChord = dispatchKeyname;\n            currentChords = dispatchKeyname ? [dispatchKeyname] : []; // TODO@ulugbekna: in the `else` case we assign an empty array - make sure `resolve` can handle an empty array well\n        }\n        else {\n            [userPressedChord,] = userKeypress.getDispatchChords();\n            currentChords = this._currentChords.map(({ keypress }) => keypress);\n        }\n        if (userPressedChord === null) {\n            this._log(`\\\\ Keyboard event cannot be dispatched in keydown phase.`);\n            // cannot be dispatched, probably only modifier keys\n            return shouldPreventDefault;\n        }\n        const contextValue = this._contextKeyService.getContext(target);\n        const keypressLabel = userKeypress.getLabel();\n        const resolveResult = this._getResolver().resolve(contextValue, currentChords, userPressedChord);\n        switch (resolveResult.kind) {\n            case 0 /* ResultKind.NoMatchingKb */: {\n                this._logService.trace('KeybindingService#dispatch', keypressLabel, `[ No matching keybinding ]`);\n                if (this.inChordMode) {\n                    const currentChordsLabel = this._currentChords.map(({ label }) => label).join(', ');\n                    this._log(`+ Leaving multi-chord mode: Nothing bound to \"${currentChordsLabel}, ${keypressLabel}\".`);\n                    this._notificationService.status(nls.localize('missing.chord', \"The key combination ({0}, {1}) is not a command.\", currentChordsLabel, keypressLabel), { hideAfter: 10 * 1000 /* 10s */ });\n                    this._leaveChordMode();\n                    shouldPreventDefault = true;\n                }\n                return shouldPreventDefault;\n            }\n            case 1 /* ResultKind.MoreChordsNeeded */: {\n                this._logService.trace('KeybindingService#dispatch', keypressLabel, `[ Several keybindings match - more chords needed ]`);\n                shouldPreventDefault = true;\n                this._expectAnotherChord(userPressedChord, keypressLabel);\n                this._log(this._currentChords.length === 1 ? `+ Entering multi-chord mode...` : `+ Continuing multi-chord mode...`);\n                return shouldPreventDefault;\n            }\n            case 2 /* ResultKind.KbFound */: {\n                this._logService.trace('KeybindingService#dispatch', keypressLabel, `[ Will dispatch command ${resolveResult.commandId} ]`);\n                if (resolveResult.commandId === null || resolveResult.commandId === '') {\n                    if (this.inChordMode) {\n                        const currentChordsLabel = this._currentChords.map(({ label }) => label).join(', ');\n                        this._log(`+ Leaving chord mode: Nothing bound to \"${currentChordsLabel}, ${keypressLabel}\".`);\n                        this._notificationService.status(nls.localize('missing.chord', \"The key combination ({0}, {1}) is not a command.\", currentChordsLabel, keypressLabel), { hideAfter: 10 * 1000 /* 10s */ });\n                        this._leaveChordMode();\n                        shouldPreventDefault = true;\n                    }\n                }\n                else {\n                    if (this.inChordMode) {\n                        this._leaveChordMode();\n                    }\n                    if (!resolveResult.isBubble) {\n                        shouldPreventDefault = true;\n                    }\n                    this._log(`+ Invoking command ${resolveResult.commandId}.`);\n                    this._currentlyDispatchingCommandId = resolveResult.commandId;\n                    try {\n                        if (typeof resolveResult.commandArgs === 'undefined') {\n                            this._commandService.executeCommand(resolveResult.commandId).then(undefined, err => this._notificationService.warn(err));\n                        }\n                        else {\n                            this._commandService.executeCommand(resolveResult.commandId, resolveResult.commandArgs).then(undefined, err => this._notificationService.warn(err));\n                        }\n                    }\n                    finally {\n                        this._currentlyDispatchingCommandId = null;\n                    }\n                    if (!HIGH_FREQ_COMMANDS.test(resolveResult.commandId)) {\n                        this._telemetryService.publicLog2('workbenchActionExecuted', { id: resolveResult.commandId, from: 'keybinding', detail: (_a = userKeypress.getUserSettingsLabel()) !== null && _a !== void 0 ? _a : undefined });\n                    }\n                }\n                return shouldPreventDefault;\n            }\n        }\n    }\n    mightProducePrintableCharacter(event) {\n        if (event.ctrlKey || event.metaKey) {\n            // ignore ctrl/cmd-combination but not shift/alt-combinatios\n            return false;\n        }\n        // weak check for certain ranges. this is properly implemented in a subclass\n        // with access to the KeyboardMapperFactory.\n        if ((event.keyCode >= 31 /* KeyCode.KeyA */ && event.keyCode <= 56 /* KeyCode.KeyZ */)\n            || (event.keyCode >= 21 /* KeyCode.Digit0 */ && event.keyCode <= 30 /* KeyCode.Digit9 */)) {\n            return true;\n        }\n        return false;\n    }\n}\nclass KeybindingModifierSet {\n    constructor(source) {\n        this._ctrlKey = source ? source.ctrlKey : false;\n        this._shiftKey = source ? source.shiftKey : false;\n        this._altKey = source ? source.altKey : false;\n        this._metaKey = source ? source.metaKey : false;\n    }\n    has(modifier) {\n        switch (modifier) {\n            case 'ctrl': return this._ctrlKey;\n            case 'shift': return this._shiftKey;\n            case 'alt': return this._altKey;\n            case 'meta': return this._metaKey;\n        }\n    }\n}\nKeybindingModifierSet.EMPTY = new KeybindingModifierSet(null);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/keybinding/common/baseResolvedKeybinding.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { illegalArgument } from '../../../base/common/errors.js';\nimport { AriaLabelProvider, ElectronAcceleratorLabelProvider, UILabelProvider, UserSettingsLabelProvider } from '../../../base/common/keybindingLabels.js';\nimport { ResolvedKeybinding, ResolvedChord } from '../../../base/common/keybindings.js';\nexport class BaseResolvedKeybinding extends ResolvedKeybinding {\n    constructor(os, chords) {\n        super();\n        if (chords.length === 0) {\n            throw illegalArgument(`chords`);\n        }\n        this._os = os;\n        this._chords = chords;\n    }\n    getLabel() {\n        return UILabelProvider.toLabel(this._os, this._chords, (keybinding) => this._getLabel(keybinding));\n    }\n    getAriaLabel() {\n        return AriaLabelProvider.toLabel(this._os, this._chords, (keybinding) => this._getAriaLabel(keybinding));\n    }\n    getElectronAccelerator() {\n        if (this._chords.length > 1) {\n            // [Electron Accelerators] Electron cannot handle chords\n            return null;\n        }\n        if (this._chords[0].isDuplicateModifierCase()) {\n            // [Electron Accelerators] Electron cannot handle modifier only keybindings\n            // e.g. \"shift shift\"\n            return null;\n        }\n        return ElectronAcceleratorLabelProvider.toLabel(this._os, this._chords, (keybinding) => this._getElectronAccelerator(keybinding));\n    }\n    getUserSettingsLabel() {\n        return UserSettingsLabelProvider.toLabel(this._os, this._chords, (keybinding) => this._getUserSettingsLabel(keybinding));\n    }\n    hasMultipleChords() {\n        return (this._chords.length > 1);\n    }\n    getChords() {\n        return this._chords.map((keybinding) => this._getChord(keybinding));\n    }\n    _getChord(keybinding) {\n        return new ResolvedChord(keybinding.ctrlKey, keybinding.shiftKey, keybinding.altKey, keybinding.metaKey, this._getLabel(keybinding), this._getAriaLabel(keybinding));\n    }\n    getDispatchChords() {\n        return this._chords.map((keybinding) => this._getChordDispatch(keybinding));\n    }\n    getSingleModifierDispatchChords() {\n        return this._chords.map((keybinding) => this._getSingleModifierChordDispatch(keybinding));\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/keybinding/common/keybinding.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const IKeybindingService = createDecorator('keybindingService');\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/keybinding/common/keybindingResolver.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { implies, expressionsAreEqualWithConstantSubstitution } from '../../contextkey/common/contextkey.js';\n// util definitions to make working with the above types easier within this module:\nexport const NoMatchingKb = { kind: 0 /* ResultKind.NoMatchingKb */ };\nconst MoreChordsNeeded = { kind: 1 /* ResultKind.MoreChordsNeeded */ };\nfunction KbFound(commandId, commandArgs, isBubble) {\n    return { kind: 2 /* ResultKind.KbFound */, commandId, commandArgs, isBubble };\n}\n//#endregion\n/**\n * Stores mappings from keybindings to commands and from commands to keybindings.\n * Given a sequence of chords, `resolve`s which keybinding it matches\n */\nexport class KeybindingResolver {\n    constructor(\n    /** built-in and extension-provided keybindings */\n    defaultKeybindings, \n    /** user's keybindings */\n    overrides, log) {\n        var _a;\n        this._log = log;\n        this._defaultKeybindings = defaultKeybindings;\n        this._defaultBoundCommands = new Map();\n        for (const defaultKeybinding of defaultKeybindings) {\n            const command = defaultKeybinding.command;\n            if (command && command.charAt(0) !== '-') {\n                this._defaultBoundCommands.set(command, true);\n            }\n        }\n        this._map = new Map();\n        this._lookupMap = new Map();\n        this._keybindings = KeybindingResolver.handleRemovals([].concat(defaultKeybindings).concat(overrides));\n        for (let i = 0, len = this._keybindings.length; i < len; i++) {\n            const k = this._keybindings[i];\n            if (k.chords.length === 0) {\n                // unbound\n                continue;\n            }\n            // substitute with constants that are registered after startup - https://github.com/microsoft/vscode/issues/174218#issuecomment-1437972127\n            const when = (_a = k.when) === null || _a === void 0 ? void 0 : _a.substituteConstants();\n            if (when && when.type === 0 /* ContextKeyExprType.False */) {\n                // when condition is false\n                continue;\n            }\n            this._addKeyPress(k.chords[0], k);\n        }\n    }\n    static _isTargetedForRemoval(defaultKb, keypress, when) {\n        if (keypress) {\n            for (let i = 0; i < keypress.length; i++) {\n                if (keypress[i] !== defaultKb.chords[i]) {\n                    return false;\n                }\n            }\n        }\n        // `true` means always, as does `undefined`\n        // so we will treat `true` === `undefined`\n        if (when && when.type !== 1 /* ContextKeyExprType.True */) {\n            if (!defaultKb.when) {\n                return false;\n            }\n            if (!expressionsAreEqualWithConstantSubstitution(when, defaultKb.when)) {\n                return false;\n            }\n        }\n        return true;\n    }\n    /**\n     * Looks for rules containing \"-commandId\" and removes them.\n     */\n    static handleRemovals(rules) {\n        // Do a first pass and construct a hash-map for removals\n        const removals = new Map();\n        for (let i = 0, len = rules.length; i < len; i++) {\n            const rule = rules[i];\n            if (rule.command && rule.command.charAt(0) === '-') {\n                const command = rule.command.substring(1);\n                if (!removals.has(command)) {\n                    removals.set(command, [rule]);\n                }\n                else {\n                    removals.get(command).push(rule);\n                }\n            }\n        }\n        if (removals.size === 0) {\n            // There are no removals\n            return rules;\n        }\n        // Do a second pass and keep only non-removed keybindings\n        const result = [];\n        for (let i = 0, len = rules.length; i < len; i++) {\n            const rule = rules[i];\n            if (!rule.command || rule.command.length === 0) {\n                result.push(rule);\n                continue;\n            }\n            if (rule.command.charAt(0) === '-') {\n                continue;\n            }\n            const commandRemovals = removals.get(rule.command);\n            if (!commandRemovals || !rule.isDefault) {\n                result.push(rule);\n                continue;\n            }\n            let isRemoved = false;\n            for (const commandRemoval of commandRemovals) {\n                const when = commandRemoval.when;\n                if (this._isTargetedForRemoval(rule, commandRemoval.chords, when)) {\n                    isRemoved = true;\n                    break;\n                }\n            }\n            if (!isRemoved) {\n                result.push(rule);\n                continue;\n            }\n        }\n        return result;\n    }\n    _addKeyPress(keypress, item) {\n        const conflicts = this._map.get(keypress);\n        if (typeof conflicts === 'undefined') {\n            // There is no conflict so far\n            this._map.set(keypress, [item]);\n            this._addToLookupMap(item);\n            return;\n        }\n        for (let i = conflicts.length - 1; i >= 0; i--) {\n            const conflict = conflicts[i];\n            if (conflict.command === item.command) {\n                continue;\n            }\n            // Test if the shorter keybinding is a prefix of the longer one.\n            // If the shorter keybinding is a prefix, it effectively will shadow the longer one and is considered a conflict.\n            let isShorterKbPrefix = true;\n            for (let i = 1; i < conflict.chords.length && i < item.chords.length; i++) {\n                if (conflict.chords[i] !== item.chords[i]) {\n                    // The ith step does not conflict\n                    isShorterKbPrefix = false;\n                    break;\n                }\n            }\n            if (!isShorterKbPrefix) {\n                continue;\n            }\n            if (KeybindingResolver.whenIsEntirelyIncluded(conflict.when, item.when)) {\n                // `item` completely overwrites `conflict`\n                // Remove conflict from the lookupMap\n                this._removeFromLookupMap(conflict);\n            }\n        }\n        conflicts.push(item);\n        this._addToLookupMap(item);\n    }\n    _addToLookupMap(item) {\n        if (!item.command) {\n            return;\n        }\n        let arr = this._lookupMap.get(item.command);\n        if (typeof arr === 'undefined') {\n            arr = [item];\n            this._lookupMap.set(item.command, arr);\n        }\n        else {\n            arr.push(item);\n        }\n    }\n    _removeFromLookupMap(item) {\n        if (!item.command) {\n            return;\n        }\n        const arr = this._lookupMap.get(item.command);\n        if (typeof arr === 'undefined') {\n            return;\n        }\n        for (let i = 0, len = arr.length; i < len; i++) {\n            if (arr[i] === item) {\n                arr.splice(i, 1);\n                return;\n            }\n        }\n    }\n    /**\n     * Returns true if it is provable `a` implies `b`.\n     */\n    static whenIsEntirelyIncluded(a, b) {\n        if (!b || b.type === 1 /* ContextKeyExprType.True */) {\n            return true;\n        }\n        if (!a || a.type === 1 /* ContextKeyExprType.True */) {\n            return false;\n        }\n        return implies(a, b);\n    }\n    getKeybindings() {\n        return this._keybindings;\n    }\n    lookupPrimaryKeybinding(commandId, context) {\n        const items = this._lookupMap.get(commandId);\n        if (typeof items === 'undefined' || items.length === 0) {\n            return null;\n        }\n        if (items.length === 1) {\n            return items[0];\n        }\n        for (let i = items.length - 1; i >= 0; i--) {\n            const item = items[i];\n            if (context.contextMatchesRules(item.when)) {\n                return item;\n            }\n        }\n        return items[items.length - 1];\n    }\n    /**\n     * Looks up a keybinding trigged as a result of pressing a sequence of chords - `[...currentChords, keypress]`\n     *\n     * Example: resolving 3 chords pressed sequentially - `cmd+k cmd+p cmd+i`:\n     * \t`currentChords = [ 'cmd+k' , 'cmd+p' ]` and `keypress = `cmd+i` - last pressed chord\n     */\n    resolve(context, currentChords, keypress) {\n        const pressedChords = [...currentChords, keypress];\n        this._log(`| Resolving ${pressedChords}`);\n        const kbCandidates = this._map.get(pressedChords[0]);\n        if (kbCandidates === undefined) {\n            // No bindings with such 0-th chord\n            this._log(`\\\\ No keybinding entries.`);\n            return NoMatchingKb;\n        }\n        let lookupMap = null;\n        if (pressedChords.length < 2) {\n            lookupMap = kbCandidates;\n        }\n        else {\n            // Fetch all chord bindings for `currentChords`\n            lookupMap = [];\n            for (let i = 0, len = kbCandidates.length; i < len; i++) {\n                const candidate = kbCandidates[i];\n                if (pressedChords.length > candidate.chords.length) { // # of pressed chords can't be less than # of chords in a keybinding to invoke\n                    continue;\n                }\n                let prefixMatches = true;\n                for (let i = 1; i < pressedChords.length; i++) {\n                    if (candidate.chords[i] !== pressedChords[i]) {\n                        prefixMatches = false;\n                        break;\n                    }\n                }\n                if (prefixMatches) {\n                    lookupMap.push(candidate);\n                }\n            }\n        }\n        // check there's a keybinding with a matching when clause\n        const result = this._findCommand(context, lookupMap);\n        if (!result) {\n            this._log(`\\\\ From ${lookupMap.length} keybinding entries, no when clauses matched the context.`);\n            return NoMatchingKb;\n        }\n        // check we got all chords necessary to be sure a particular keybinding needs to be invoked\n        if (pressedChords.length < result.chords.length) {\n            // The chord sequence is not complete\n            this._log(`\\\\ From ${lookupMap.length} keybinding entries, awaiting ${result.chords.length - pressedChords.length} more chord(s), when: ${printWhenExplanation(result.when)}, source: ${printSourceExplanation(result)}.`);\n            return MoreChordsNeeded;\n        }\n        this._log(`\\\\ From ${lookupMap.length} keybinding entries, matched ${result.command}, when: ${printWhenExplanation(result.when)}, source: ${printSourceExplanation(result)}.`);\n        return KbFound(result.command, result.commandArgs, result.bubble);\n    }\n    _findCommand(context, matches) {\n        for (let i = matches.length - 1; i >= 0; i--) {\n            const k = matches[i];\n            if (!KeybindingResolver._contextMatchesRules(context, k.when)) {\n                continue;\n            }\n            return k;\n        }\n        return null;\n    }\n    static _contextMatchesRules(context, rules) {\n        if (!rules) {\n            return true;\n        }\n        return rules.evaluate(context);\n    }\n}\nfunction printWhenExplanation(when) {\n    if (!when) {\n        return `no when condition`;\n    }\n    return `${when.serialize()}`;\n}\nfunction printSourceExplanation(kb) {\n    return (kb.extensionId\n        ? (kb.isBuiltinExtension ? `built-in extension ${kb.extensionId}` : `user extension ${kb.extensionId}`)\n        : (kb.isDefault ? `built-in` : `user`));\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/keybinding/common/keybindingsRegistry.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { decodeKeybinding } from '../../../base/common/keybindings.js';\nimport { OS } from '../../../base/common/platform.js';\nimport { CommandsRegistry } from '../../commands/common/commands.js';\nimport { Registry } from '../../registry/common/platform.js';\nimport { combinedDisposable, DisposableStore, toDisposable } from '../../../base/common/lifecycle.js';\nimport { LinkedList } from '../../../base/common/linkedList.js';\n/**\n * Stores all built-in and extension-provided keybindings (but not ones that user defines themselves)\n */\nclass KeybindingsRegistryImpl {\n    constructor() {\n        this._coreKeybindings = new LinkedList();\n        this._extensionKeybindings = [];\n        this._cachedMergedKeybindings = null;\n    }\n    /**\n     * Take current platform into account and reduce to primary & secondary.\n     */\n    static bindToCurrentPlatform(kb) {\n        if (OS === 1 /* OperatingSystem.Windows */) {\n            if (kb && kb.win) {\n                return kb.win;\n            }\n        }\n        else if (OS === 2 /* OperatingSystem.Macintosh */) {\n            if (kb && kb.mac) {\n                return kb.mac;\n            }\n        }\n        else {\n            if (kb && kb.linux) {\n                return kb.linux;\n            }\n        }\n        return kb;\n    }\n    registerKeybindingRule(rule) {\n        const actualKb = KeybindingsRegistryImpl.bindToCurrentPlatform(rule);\n        const result = new DisposableStore();\n        if (actualKb && actualKb.primary) {\n            const kk = decodeKeybinding(actualKb.primary, OS);\n            if (kk) {\n                result.add(this._registerDefaultKeybinding(kk, rule.id, rule.args, rule.weight, 0, rule.when));\n            }\n        }\n        if (actualKb && Array.isArray(actualKb.secondary)) {\n            for (let i = 0, len = actualKb.secondary.length; i < len; i++) {\n                const k = actualKb.secondary[i];\n                const kk = decodeKeybinding(k, OS);\n                if (kk) {\n                    result.add(this._registerDefaultKeybinding(kk, rule.id, rule.args, rule.weight, -i - 1, rule.when));\n                }\n            }\n        }\n        return result;\n    }\n    registerCommandAndKeybindingRule(desc) {\n        return combinedDisposable(this.registerKeybindingRule(desc), CommandsRegistry.registerCommand(desc));\n    }\n    _registerDefaultKeybinding(keybinding, commandId, commandArgs, weight1, weight2, when) {\n        const remove = this._coreKeybindings.push({\n            keybinding: keybinding,\n            command: commandId,\n            commandArgs: commandArgs,\n            when: when,\n            weight1: weight1,\n            weight2: weight2,\n            extensionId: null,\n            isBuiltinExtension: false\n        });\n        this._cachedMergedKeybindings = null;\n        return toDisposable(() => {\n            remove();\n            this._cachedMergedKeybindings = null;\n        });\n    }\n    getDefaultKeybindings() {\n        if (!this._cachedMergedKeybindings) {\n            this._cachedMergedKeybindings = Array.from(this._coreKeybindings).concat(this._extensionKeybindings);\n            this._cachedMergedKeybindings.sort(sorter);\n        }\n        return this._cachedMergedKeybindings.slice(0);\n    }\n}\nexport const KeybindingsRegistry = new KeybindingsRegistryImpl();\n// Define extension point ids\nexport const Extensions = {\n    EditorModes: 'platform.keybindingsRegistry'\n};\nRegistry.add(Extensions.EditorModes, KeybindingsRegistry);\nfunction sorter(a, b) {\n    if (a.weight1 !== b.weight1) {\n        return a.weight1 - b.weight1;\n    }\n    if (a.command && b.command) {\n        if (a.command < b.command) {\n            return -1;\n        }\n        if (a.command > b.command) {\n            return 1;\n        }\n    }\n    return a.weight2 - b.weight2;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/keybinding/common/resolvedKeybindingItem.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class ResolvedKeybindingItem {\n    constructor(resolvedKeybinding, command, commandArgs, when, isDefault, extensionId, isBuiltinExtension) {\n        this._resolvedKeybindingItemBrand = undefined;\n        this.resolvedKeybinding = resolvedKeybinding;\n        this.chords = resolvedKeybinding ? toEmptyArrayIfContainsNull(resolvedKeybinding.getDispatchChords()) : [];\n        if (resolvedKeybinding && this.chords.length === 0) {\n            // handle possible single modifier chord keybindings\n            this.chords = toEmptyArrayIfContainsNull(resolvedKeybinding.getSingleModifierDispatchChords());\n        }\n        this.bubble = (command ? command.charCodeAt(0) === 94 /* CharCode.Caret */ : false);\n        this.command = this.bubble ? command.substr(1) : command;\n        this.commandArgs = commandArgs;\n        this.when = when;\n        this.isDefault = isDefault;\n        this.extensionId = extensionId;\n        this.isBuiltinExtension = isBuiltinExtension;\n    }\n}\nexport function toEmptyArrayIfContainsNull(arr) {\n    const result = [];\n    for (let i = 0, len = arr.length; i < len; i++) {\n        const element = arr[i];\n        if (!element) {\n            return [];\n        }\n        result.push(element);\n    }\n    return result;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/keybinding/common/usLayoutResolvedKeybinding.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { KeyCodeUtils, IMMUTABLE_CODE_TO_KEY_CODE } from '../../../base/common/keyCodes.js';\nimport { KeyCodeChord } from '../../../base/common/keybindings.js';\nimport { BaseResolvedKeybinding } from './baseResolvedKeybinding.js';\nimport { toEmptyArrayIfContainsNull } from './resolvedKeybindingItem.js';\n/**\n * Do not instantiate. Use KeybindingService to get a ResolvedKeybinding seeded with information about the current kb layout.\n */\nexport class USLayoutResolvedKeybinding extends BaseResolvedKeybinding {\n    constructor(chords, os) {\n        super(os, chords);\n    }\n    _keyCodeToUILabel(keyCode) {\n        if (this._os === 2 /* OperatingSystem.Macintosh */) {\n            switch (keyCode) {\n                case 15 /* KeyCode.LeftArrow */:\n                    return '←';\n                case 16 /* KeyCode.UpArrow */:\n                    return '↑';\n                case 17 /* KeyCode.RightArrow */:\n                    return '→';\n                case 18 /* KeyCode.DownArrow */:\n                    return '↓';\n            }\n        }\n        return KeyCodeUtils.toString(keyCode);\n    }\n    _getLabel(chord) {\n        if (chord.isDuplicateModifierCase()) {\n            return '';\n        }\n        return this._keyCodeToUILabel(chord.keyCode);\n    }\n    _getAriaLabel(chord) {\n        if (chord.isDuplicateModifierCase()) {\n            return '';\n        }\n        return KeyCodeUtils.toString(chord.keyCode);\n    }\n    _getElectronAccelerator(chord) {\n        return KeyCodeUtils.toElectronAccelerator(chord.keyCode);\n    }\n    _getUserSettingsLabel(chord) {\n        if (chord.isDuplicateModifierCase()) {\n            return '';\n        }\n        const result = KeyCodeUtils.toUserSettingsUS(chord.keyCode);\n        return (result ? result.toLowerCase() : result);\n    }\n    _getChordDispatch(chord) {\n        return USLayoutResolvedKeybinding.getDispatchStr(chord);\n    }\n    static getDispatchStr(chord) {\n        if (chord.isModifierKey()) {\n            return null;\n        }\n        let result = '';\n        if (chord.ctrlKey) {\n            result += 'ctrl+';\n        }\n        if (chord.shiftKey) {\n            result += 'shift+';\n        }\n        if (chord.altKey) {\n            result += 'alt+';\n        }\n        if (chord.metaKey) {\n            result += 'meta+';\n        }\n        result += KeyCodeUtils.toString(chord.keyCode);\n        return result;\n    }\n    _getSingleModifierChordDispatch(keybinding) {\n        if (keybinding.keyCode === 5 /* KeyCode.Ctrl */ && !keybinding.shiftKey && !keybinding.altKey && !keybinding.metaKey) {\n            return 'ctrl';\n        }\n        if (keybinding.keyCode === 4 /* KeyCode.Shift */ && !keybinding.ctrlKey && !keybinding.altKey && !keybinding.metaKey) {\n            return 'shift';\n        }\n        if (keybinding.keyCode === 6 /* KeyCode.Alt */ && !keybinding.ctrlKey && !keybinding.shiftKey && !keybinding.metaKey) {\n            return 'alt';\n        }\n        if (keybinding.keyCode === 57 /* KeyCode.Meta */ && !keybinding.ctrlKey && !keybinding.shiftKey && !keybinding.altKey) {\n            return 'meta';\n        }\n        return null;\n    }\n    /**\n     * *NOTE*: Check return value for `KeyCode.Unknown`.\n     */\n    static _scanCodeToKeyCode(scanCode) {\n        const immutableKeyCode = IMMUTABLE_CODE_TO_KEY_CODE[scanCode];\n        if (immutableKeyCode !== -1 /* KeyCode.DependsOnKbLayout */) {\n            return immutableKeyCode;\n        }\n        switch (scanCode) {\n            case 10 /* ScanCode.KeyA */: return 31 /* KeyCode.KeyA */;\n            case 11 /* ScanCode.KeyB */: return 32 /* KeyCode.KeyB */;\n            case 12 /* ScanCode.KeyC */: return 33 /* KeyCode.KeyC */;\n            case 13 /* ScanCode.KeyD */: return 34 /* KeyCode.KeyD */;\n            case 14 /* ScanCode.KeyE */: return 35 /* KeyCode.KeyE */;\n            case 15 /* ScanCode.KeyF */: return 36 /* KeyCode.KeyF */;\n            case 16 /* ScanCode.KeyG */: return 37 /* KeyCode.KeyG */;\n            case 17 /* ScanCode.KeyH */: return 38 /* KeyCode.KeyH */;\n            case 18 /* ScanCode.KeyI */: return 39 /* KeyCode.KeyI */;\n            case 19 /* ScanCode.KeyJ */: return 40 /* KeyCode.KeyJ */;\n            case 20 /* ScanCode.KeyK */: return 41 /* KeyCode.KeyK */;\n            case 21 /* ScanCode.KeyL */: return 42 /* KeyCode.KeyL */;\n            case 22 /* ScanCode.KeyM */: return 43 /* KeyCode.KeyM */;\n            case 23 /* ScanCode.KeyN */: return 44 /* KeyCode.KeyN */;\n            case 24 /* ScanCode.KeyO */: return 45 /* KeyCode.KeyO */;\n            case 25 /* ScanCode.KeyP */: return 46 /* KeyCode.KeyP */;\n            case 26 /* ScanCode.KeyQ */: return 47 /* KeyCode.KeyQ */;\n            case 27 /* ScanCode.KeyR */: return 48 /* KeyCode.KeyR */;\n            case 28 /* ScanCode.KeyS */: return 49 /* KeyCode.KeyS */;\n            case 29 /* ScanCode.KeyT */: return 50 /* KeyCode.KeyT */;\n            case 30 /* ScanCode.KeyU */: return 51 /* KeyCode.KeyU */;\n            case 31 /* ScanCode.KeyV */: return 52 /* KeyCode.KeyV */;\n            case 32 /* ScanCode.KeyW */: return 53 /* KeyCode.KeyW */;\n            case 33 /* ScanCode.KeyX */: return 54 /* KeyCode.KeyX */;\n            case 34 /* ScanCode.KeyY */: return 55 /* KeyCode.KeyY */;\n            case 35 /* ScanCode.KeyZ */: return 56 /* KeyCode.KeyZ */;\n            case 36 /* ScanCode.Digit1 */: return 22 /* KeyCode.Digit1 */;\n            case 37 /* ScanCode.Digit2 */: return 23 /* KeyCode.Digit2 */;\n            case 38 /* ScanCode.Digit3 */: return 24 /* KeyCode.Digit3 */;\n            case 39 /* ScanCode.Digit4 */: return 25 /* KeyCode.Digit4 */;\n            case 40 /* ScanCode.Digit5 */: return 26 /* KeyCode.Digit5 */;\n            case 41 /* ScanCode.Digit6 */: return 27 /* KeyCode.Digit6 */;\n            case 42 /* ScanCode.Digit7 */: return 28 /* KeyCode.Digit7 */;\n            case 43 /* ScanCode.Digit8 */: return 29 /* KeyCode.Digit8 */;\n            case 44 /* ScanCode.Digit9 */: return 30 /* KeyCode.Digit9 */;\n            case 45 /* ScanCode.Digit0 */: return 21 /* KeyCode.Digit0 */;\n            case 51 /* ScanCode.Minus */: return 88 /* KeyCode.Minus */;\n            case 52 /* ScanCode.Equal */: return 86 /* KeyCode.Equal */;\n            case 53 /* ScanCode.BracketLeft */: return 92 /* KeyCode.BracketLeft */;\n            case 54 /* ScanCode.BracketRight */: return 94 /* KeyCode.BracketRight */;\n            case 55 /* ScanCode.Backslash */: return 93 /* KeyCode.Backslash */;\n            case 56 /* ScanCode.IntlHash */: return 0 /* KeyCode.Unknown */; // missing\n            case 57 /* ScanCode.Semicolon */: return 85 /* KeyCode.Semicolon */;\n            case 58 /* ScanCode.Quote */: return 95 /* KeyCode.Quote */;\n            case 59 /* ScanCode.Backquote */: return 91 /* KeyCode.Backquote */;\n            case 60 /* ScanCode.Comma */: return 87 /* KeyCode.Comma */;\n            case 61 /* ScanCode.Period */: return 89 /* KeyCode.Period */;\n            case 62 /* ScanCode.Slash */: return 90 /* KeyCode.Slash */;\n            case 106 /* ScanCode.IntlBackslash */: return 97 /* KeyCode.IntlBackslash */;\n        }\n        return 0 /* KeyCode.Unknown */;\n    }\n    static _toKeyCodeChord(chord) {\n        if (!chord) {\n            return null;\n        }\n        if (chord instanceof KeyCodeChord) {\n            return chord;\n        }\n        const keyCode = this._scanCodeToKeyCode(chord.scanCode);\n        if (keyCode === 0 /* KeyCode.Unknown */) {\n            return null;\n        }\n        return new KeyCodeChord(chord.ctrlKey, chord.shiftKey, chord.altKey, chord.metaKey, keyCode);\n    }\n    static resolveKeybinding(keybinding, os) {\n        const chords = toEmptyArrayIfContainsNull(keybinding.chords.map(chord => this._toKeyCodeChord(chord)));\n        if (chords.length > 0) {\n            return [new USLayoutResolvedKeybinding(chords, os)];\n        }\n        return [];\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/label/common/label.js",
    "content": "import { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const ILabelService = createDecorator('labelService');\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/layout/browser/layoutService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const ILayoutService = createDecorator('layoutService');\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/list/browser/listService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { createStyleSheet, isActiveElement, isKeyboardEvent } from '../../../base/browser/dom.js';\nimport { PagedList } from '../../../base/browser/ui/list/listPaging.js';\nimport { DefaultStyleController, isSelectionRangeChangeEvent, isSelectionSingleChangeEvent, List, TypeNavigationMode } from '../../../base/browser/ui/list/listWidget.js';\nimport { Table } from '../../../base/browser/ui/table/tableWidget.js';\nimport { TreeFindMode, TreeFindMatchType } from '../../../base/browser/ui/tree/abstractTree.js';\nimport { AsyncDataTree, CompressibleAsyncDataTree } from '../../../base/browser/ui/tree/asyncDataTree.js';\nimport { DataTree } from '../../../base/browser/ui/tree/dataTree.js';\nimport { CompressibleObjectTree, ObjectTree } from '../../../base/browser/ui/tree/objectTree.js';\nimport { Emitter, Event } from '../../../base/common/event.js';\nimport { combinedDisposable, Disposable, DisposableStore, dispose, toDisposable } from '../../../base/common/lifecycle.js';\nimport { localize } from '../../../nls.js';\nimport { IConfigurationService } from '../../configuration/common/configuration.js';\nimport { Extensions as ConfigurationExtensions } from '../../configuration/common/configurationRegistry.js';\nimport { ContextKeyExpr, IContextKeyService, RawContextKey } from '../../contextkey/common/contextkey.js';\nimport { InputFocusedContextKey } from '../../contextkey/common/contextkeys.js';\nimport { IContextViewService } from '../../contextview/browser/contextView.js';\nimport { createDecorator, IInstantiationService } from '../../instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../keybinding/common/keybinding.js';\nimport { Registry } from '../../registry/common/platform.js';\nimport { defaultFindWidgetStyles, defaultListStyles, getListStyles } from '../../theme/browser/defaultStyles.js';\nexport const IListService = createDecorator('listService');\nexport class ListService {\n    get lastFocusedList() {\n        return this._lastFocusedWidget;\n    }\n    constructor() {\n        this.disposables = new DisposableStore();\n        this.lists = [];\n        this._lastFocusedWidget = undefined;\n        this._hasCreatedStyleController = false;\n    }\n    setLastFocusedList(widget) {\n        var _a, _b;\n        if (widget === this._lastFocusedWidget) {\n            return;\n        }\n        (_a = this._lastFocusedWidget) === null || _a === void 0 ? void 0 : _a.getHTMLElement().classList.remove('last-focused');\n        this._lastFocusedWidget = widget;\n        (_b = this._lastFocusedWidget) === null || _b === void 0 ? void 0 : _b.getHTMLElement().classList.add('last-focused');\n    }\n    register(widget, extraContextKeys) {\n        if (!this._hasCreatedStyleController) {\n            this._hasCreatedStyleController = true;\n            // create a shared default tree style sheet for performance reasons\n            const styleController = new DefaultStyleController(createStyleSheet(), '');\n            styleController.style(defaultListStyles);\n        }\n        if (this.lists.some(l => l.widget === widget)) {\n            throw new Error('Cannot register the same widget multiple times');\n        }\n        // Keep in our lists list\n        const registeredList = { widget, extraContextKeys };\n        this.lists.push(registeredList);\n        // Check for currently being focused\n        if (isActiveElement(widget.getHTMLElement())) {\n            this.setLastFocusedList(widget);\n        }\n        return combinedDisposable(widget.onDidFocus(() => this.setLastFocusedList(widget)), toDisposable(() => this.lists.splice(this.lists.indexOf(registeredList), 1)), widget.onDidDispose(() => {\n            this.lists = this.lists.filter(l => l !== registeredList);\n            if (this._lastFocusedWidget === widget) {\n                this.setLastFocusedList(undefined);\n            }\n        }));\n    }\n    dispose() {\n        this.disposables.dispose();\n    }\n}\nexport const RawWorkbenchListScrollAtBoundaryContextKey = new RawContextKey('listScrollAtBoundary', 'none');\nexport const WorkbenchListScrollAtTopContextKey = ContextKeyExpr.or(RawWorkbenchListScrollAtBoundaryContextKey.isEqualTo('top'), RawWorkbenchListScrollAtBoundaryContextKey.isEqualTo('both'));\nexport const WorkbenchListScrollAtBottomContextKey = ContextKeyExpr.or(RawWorkbenchListScrollAtBoundaryContextKey.isEqualTo('bottom'), RawWorkbenchListScrollAtBoundaryContextKey.isEqualTo('both'));\nexport const RawWorkbenchListFocusContextKey = new RawContextKey('listFocus', true);\nexport const WorkbenchTreeStickyScrollFocused = new RawContextKey('treestickyScrollFocused', false);\nexport const WorkbenchListSupportsMultiSelectContextKey = new RawContextKey('listSupportsMultiselect', true);\nexport const WorkbenchListFocusContextKey = ContextKeyExpr.and(RawWorkbenchListFocusContextKey, ContextKeyExpr.not(InputFocusedContextKey), WorkbenchTreeStickyScrollFocused.negate());\nexport const WorkbenchListHasSelectionOrFocus = new RawContextKey('listHasSelectionOrFocus', false);\nexport const WorkbenchListDoubleSelection = new RawContextKey('listDoubleSelection', false);\nexport const WorkbenchListMultiSelection = new RawContextKey('listMultiSelection', false);\nexport const WorkbenchListSelectionNavigation = new RawContextKey('listSelectionNavigation', false);\nexport const WorkbenchListSupportsFind = new RawContextKey('listSupportsFind', true);\nexport const WorkbenchTreeElementCanCollapse = new RawContextKey('treeElementCanCollapse', false);\nexport const WorkbenchTreeElementHasParent = new RawContextKey('treeElementHasParent', false);\nexport const WorkbenchTreeElementCanExpand = new RawContextKey('treeElementCanExpand', false);\nexport const WorkbenchTreeElementHasChild = new RawContextKey('treeElementHasChild', false);\nexport const WorkbenchTreeFindOpen = new RawContextKey('treeFindOpen', false);\nconst WorkbenchListTypeNavigationModeKey = 'listTypeNavigationMode';\n/**\n * @deprecated in favor of WorkbenchListTypeNavigationModeKey\n */\nconst WorkbenchListAutomaticKeyboardNavigationLegacyKey = 'listAutomaticKeyboardNavigation';\nfunction createScopedContextKeyService(contextKeyService, widget) {\n    const result = contextKeyService.createScoped(widget.getHTMLElement());\n    RawWorkbenchListFocusContextKey.bindTo(result);\n    return result;\n}\nfunction createScrollObserver(contextKeyService, widget) {\n    const listScrollAt = RawWorkbenchListScrollAtBoundaryContextKey.bindTo(contextKeyService);\n    const update = () => {\n        const atTop = widget.scrollTop === 0;\n        // We need a threshold `1` since scrollHeight is rounded.\n        // https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#determine_if_an_element_has_been_totally_scrolled\n        const atBottom = widget.scrollHeight - widget.renderHeight - widget.scrollTop < 1;\n        if (atTop && atBottom) {\n            listScrollAt.set('both');\n        }\n        else if (atTop) {\n            listScrollAt.set('top');\n        }\n        else if (atBottom) {\n            listScrollAt.set('bottom');\n        }\n        else {\n            listScrollAt.set('none');\n        }\n    };\n    update();\n    return widget.onDidScroll(update);\n}\nconst multiSelectModifierSettingKey = 'workbench.list.multiSelectModifier';\nconst openModeSettingKey = 'workbench.list.openMode';\nconst horizontalScrollingKey = 'workbench.list.horizontalScrolling';\nconst defaultFindModeSettingKey = 'workbench.list.defaultFindMode';\nconst typeNavigationModeSettingKey = 'workbench.list.typeNavigationMode';\n/** @deprecated in favor of `workbench.list.defaultFindMode` and `workbench.list.typeNavigationMode` */\nconst keyboardNavigationSettingKey = 'workbench.list.keyboardNavigation';\nconst scrollByPageKey = 'workbench.list.scrollByPage';\nconst defaultFindMatchTypeSettingKey = 'workbench.list.defaultFindMatchType';\nconst treeIndentKey = 'workbench.tree.indent';\nconst treeRenderIndentGuidesKey = 'workbench.tree.renderIndentGuides';\nconst listSmoothScrolling = 'workbench.list.smoothScrolling';\nconst mouseWheelScrollSensitivityKey = 'workbench.list.mouseWheelScrollSensitivity';\nconst fastScrollSensitivityKey = 'workbench.list.fastScrollSensitivity';\nconst treeExpandMode = 'workbench.tree.expandMode';\nconst treeStickyScroll = 'workbench.tree.enableStickyScroll';\nconst treeStickyScrollMaxElements = 'workbench.tree.stickyScrollMaxItemCount';\nfunction useAltAsMultipleSelectionModifier(configurationService) {\n    return configurationService.getValue(multiSelectModifierSettingKey) === 'alt';\n}\nclass MultipleSelectionController extends Disposable {\n    constructor(configurationService) {\n        super();\n        this.configurationService = configurationService;\n        this.useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n        this.registerListeners();\n    }\n    registerListeners() {\n        this._register(this.configurationService.onDidChangeConfiguration(e => {\n            if (e.affectsConfiguration(multiSelectModifierSettingKey)) {\n                this.useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(this.configurationService);\n            }\n        }));\n    }\n    isSelectionSingleChangeEvent(event) {\n        if (this.useAltAsMultipleSelectionModifier) {\n            return event.browserEvent.altKey;\n        }\n        return isSelectionSingleChangeEvent(event);\n    }\n    isSelectionRangeChangeEvent(event) {\n        return isSelectionRangeChangeEvent(event);\n    }\n}\nfunction toWorkbenchListOptions(accessor, options) {\n    var _a;\n    const configurationService = accessor.get(IConfigurationService);\n    const keybindingService = accessor.get(IKeybindingService);\n    const disposables = new DisposableStore();\n    const result = {\n        ...options,\n        keyboardNavigationDelegate: { mightProducePrintableCharacter(e) { return keybindingService.mightProducePrintableCharacter(e); } },\n        smoothScrolling: Boolean(configurationService.getValue(listSmoothScrolling)),\n        mouseWheelScrollSensitivity: configurationService.getValue(mouseWheelScrollSensitivityKey),\n        fastScrollSensitivity: configurationService.getValue(fastScrollSensitivityKey),\n        multipleSelectionController: (_a = options.multipleSelectionController) !== null && _a !== void 0 ? _a : disposables.add(new MultipleSelectionController(configurationService)),\n        keyboardNavigationEventFilter: createKeyboardNavigationEventFilter(keybindingService),\n        scrollByPage: Boolean(configurationService.getValue(scrollByPageKey))\n    };\n    return [result, disposables];\n}\nlet WorkbenchList = class WorkbenchList extends List {\n    constructor(user, container, delegate, renderers, options, contextKeyService, listService, configurationService, instantiationService) {\n        const horizontalScrolling = typeof options.horizontalScrolling !== 'undefined' ? options.horizontalScrolling : Boolean(configurationService.getValue(horizontalScrollingKey));\n        const [workbenchListOptions, workbenchListOptionsDisposable] = instantiationService.invokeFunction(toWorkbenchListOptions, options);\n        super(user, container, delegate, renderers, {\n            keyboardSupport: false,\n            ...workbenchListOptions,\n            horizontalScrolling,\n        });\n        this.disposables.add(workbenchListOptionsDisposable);\n        this.contextKeyService = createScopedContextKeyService(contextKeyService, this);\n        this.disposables.add(createScrollObserver(this.contextKeyService, this));\n        this.listSupportsMultiSelect = WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService);\n        this.listSupportsMultiSelect.set(options.multipleSelectionSupport !== false);\n        const listSelectionNavigation = WorkbenchListSelectionNavigation.bindTo(this.contextKeyService);\n        listSelectionNavigation.set(Boolean(options.selectionNavigation));\n        this.listHasSelectionOrFocus = WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService);\n        this.listDoubleSelection = WorkbenchListDoubleSelection.bindTo(this.contextKeyService);\n        this.listMultiSelection = WorkbenchListMultiSelection.bindTo(this.contextKeyService);\n        this.horizontalScrolling = options.horizontalScrolling;\n        this._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n        this.disposables.add(this.contextKeyService);\n        this.disposables.add(listService.register(this));\n        this.updateStyles(options.overrideStyles);\n        this.disposables.add(this.onDidChangeSelection(() => {\n            const selection = this.getSelection();\n            const focus = this.getFocus();\n            this.contextKeyService.bufferChangeEvents(() => {\n                this.listHasSelectionOrFocus.set(selection.length > 0 || focus.length > 0);\n                this.listMultiSelection.set(selection.length > 1);\n                this.listDoubleSelection.set(selection.length === 2);\n            });\n        }));\n        this.disposables.add(this.onDidChangeFocus(() => {\n            const selection = this.getSelection();\n            const focus = this.getFocus();\n            this.listHasSelectionOrFocus.set(selection.length > 0 || focus.length > 0);\n        }));\n        this.disposables.add(configurationService.onDidChangeConfiguration(e => {\n            if (e.affectsConfiguration(multiSelectModifierSettingKey)) {\n                this._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n            }\n            let options = {};\n            if (e.affectsConfiguration(horizontalScrollingKey) && this.horizontalScrolling === undefined) {\n                const horizontalScrolling = Boolean(configurationService.getValue(horizontalScrollingKey));\n                options = { ...options, horizontalScrolling };\n            }\n            if (e.affectsConfiguration(scrollByPageKey)) {\n                const scrollByPage = Boolean(configurationService.getValue(scrollByPageKey));\n                options = { ...options, scrollByPage };\n            }\n            if (e.affectsConfiguration(listSmoothScrolling)) {\n                const smoothScrolling = Boolean(configurationService.getValue(listSmoothScrolling));\n                options = { ...options, smoothScrolling };\n            }\n            if (e.affectsConfiguration(mouseWheelScrollSensitivityKey)) {\n                const mouseWheelScrollSensitivity = configurationService.getValue(mouseWheelScrollSensitivityKey);\n                options = { ...options, mouseWheelScrollSensitivity };\n            }\n            if (e.affectsConfiguration(fastScrollSensitivityKey)) {\n                const fastScrollSensitivity = configurationService.getValue(fastScrollSensitivityKey);\n                options = { ...options, fastScrollSensitivity };\n            }\n            if (Object.keys(options).length > 0) {\n                this.updateOptions(options);\n            }\n        }));\n        this.navigator = new ListResourceNavigator(this, { configurationService, ...options });\n        this.disposables.add(this.navigator);\n    }\n    updateOptions(options) {\n        super.updateOptions(options);\n        if (options.overrideStyles !== undefined) {\n            this.updateStyles(options.overrideStyles);\n        }\n        if (options.multipleSelectionSupport !== undefined) {\n            this.listSupportsMultiSelect.set(!!options.multipleSelectionSupport);\n        }\n    }\n    updateStyles(styles) {\n        this.style(styles ? getListStyles(styles) : defaultListStyles);\n    }\n};\nWorkbenchList = __decorate([\n    __param(5, IContextKeyService),\n    __param(6, IListService),\n    __param(7, IConfigurationService),\n    __param(8, IInstantiationService)\n], WorkbenchList);\nexport { WorkbenchList };\nlet WorkbenchPagedList = class WorkbenchPagedList extends PagedList {\n    constructor(user, container, delegate, renderers, options, contextKeyService, listService, configurationService, instantiationService) {\n        const horizontalScrolling = typeof options.horizontalScrolling !== 'undefined' ? options.horizontalScrolling : Boolean(configurationService.getValue(horizontalScrollingKey));\n        const [workbenchListOptions, workbenchListOptionsDisposable] = instantiationService.invokeFunction(toWorkbenchListOptions, options);\n        super(user, container, delegate, renderers, {\n            keyboardSupport: false,\n            ...workbenchListOptions,\n            horizontalScrolling,\n        });\n        this.disposables = new DisposableStore();\n        this.disposables.add(workbenchListOptionsDisposable);\n        this.contextKeyService = createScopedContextKeyService(contextKeyService, this);\n        this.disposables.add(createScrollObserver(this.contextKeyService, this.widget));\n        this.horizontalScrolling = options.horizontalScrolling;\n        this.listSupportsMultiSelect = WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService);\n        this.listSupportsMultiSelect.set(options.multipleSelectionSupport !== false);\n        const listSelectionNavigation = WorkbenchListSelectionNavigation.bindTo(this.contextKeyService);\n        listSelectionNavigation.set(Boolean(options.selectionNavigation));\n        this._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n        this.disposables.add(this.contextKeyService);\n        this.disposables.add(listService.register(this));\n        this.updateStyles(options.overrideStyles);\n        this.disposables.add(configurationService.onDidChangeConfiguration(e => {\n            if (e.affectsConfiguration(multiSelectModifierSettingKey)) {\n                this._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n            }\n            let options = {};\n            if (e.affectsConfiguration(horizontalScrollingKey) && this.horizontalScrolling === undefined) {\n                const horizontalScrolling = Boolean(configurationService.getValue(horizontalScrollingKey));\n                options = { ...options, horizontalScrolling };\n            }\n            if (e.affectsConfiguration(scrollByPageKey)) {\n                const scrollByPage = Boolean(configurationService.getValue(scrollByPageKey));\n                options = { ...options, scrollByPage };\n            }\n            if (e.affectsConfiguration(listSmoothScrolling)) {\n                const smoothScrolling = Boolean(configurationService.getValue(listSmoothScrolling));\n                options = { ...options, smoothScrolling };\n            }\n            if (e.affectsConfiguration(mouseWheelScrollSensitivityKey)) {\n                const mouseWheelScrollSensitivity = configurationService.getValue(mouseWheelScrollSensitivityKey);\n                options = { ...options, mouseWheelScrollSensitivity };\n            }\n            if (e.affectsConfiguration(fastScrollSensitivityKey)) {\n                const fastScrollSensitivity = configurationService.getValue(fastScrollSensitivityKey);\n                options = { ...options, fastScrollSensitivity };\n            }\n            if (Object.keys(options).length > 0) {\n                this.updateOptions(options);\n            }\n        }));\n        this.navigator = new ListResourceNavigator(this, { configurationService, ...options });\n        this.disposables.add(this.navigator);\n    }\n    updateOptions(options) {\n        super.updateOptions(options);\n        if (options.overrideStyles !== undefined) {\n            this.updateStyles(options.overrideStyles);\n        }\n        if (options.multipleSelectionSupport !== undefined) {\n            this.listSupportsMultiSelect.set(!!options.multipleSelectionSupport);\n        }\n    }\n    updateStyles(styles) {\n        this.style(styles ? getListStyles(styles) : defaultListStyles);\n    }\n    dispose() {\n        this.disposables.dispose();\n        super.dispose();\n    }\n};\nWorkbenchPagedList = __decorate([\n    __param(5, IContextKeyService),\n    __param(6, IListService),\n    __param(7, IConfigurationService),\n    __param(8, IInstantiationService)\n], WorkbenchPagedList);\nexport { WorkbenchPagedList };\nlet WorkbenchTable = class WorkbenchTable extends Table {\n    constructor(user, container, delegate, columns, renderers, options, contextKeyService, listService, configurationService, instantiationService) {\n        const horizontalScrolling = typeof options.horizontalScrolling !== 'undefined' ? options.horizontalScrolling : Boolean(configurationService.getValue(horizontalScrollingKey));\n        const [workbenchListOptions, workbenchListOptionsDisposable] = instantiationService.invokeFunction(toWorkbenchListOptions, options);\n        super(user, container, delegate, columns, renderers, {\n            keyboardSupport: false,\n            ...workbenchListOptions,\n            horizontalScrolling,\n        });\n        this.disposables.add(workbenchListOptionsDisposable);\n        this.contextKeyService = createScopedContextKeyService(contextKeyService, this);\n        this.disposables.add(createScrollObserver(this.contextKeyService, this));\n        this.listSupportsMultiSelect = WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService);\n        this.listSupportsMultiSelect.set(options.multipleSelectionSupport !== false);\n        const listSelectionNavigation = WorkbenchListSelectionNavigation.bindTo(this.contextKeyService);\n        listSelectionNavigation.set(Boolean(options.selectionNavigation));\n        this.listHasSelectionOrFocus = WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService);\n        this.listDoubleSelection = WorkbenchListDoubleSelection.bindTo(this.contextKeyService);\n        this.listMultiSelection = WorkbenchListMultiSelection.bindTo(this.contextKeyService);\n        this.horizontalScrolling = options.horizontalScrolling;\n        this._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n        this.disposables.add(this.contextKeyService);\n        this.disposables.add(listService.register(this));\n        this.updateStyles(options.overrideStyles);\n        this.disposables.add(this.onDidChangeSelection(() => {\n            const selection = this.getSelection();\n            const focus = this.getFocus();\n            this.contextKeyService.bufferChangeEvents(() => {\n                this.listHasSelectionOrFocus.set(selection.length > 0 || focus.length > 0);\n                this.listMultiSelection.set(selection.length > 1);\n                this.listDoubleSelection.set(selection.length === 2);\n            });\n        }));\n        this.disposables.add(this.onDidChangeFocus(() => {\n            const selection = this.getSelection();\n            const focus = this.getFocus();\n            this.listHasSelectionOrFocus.set(selection.length > 0 || focus.length > 0);\n        }));\n        this.disposables.add(configurationService.onDidChangeConfiguration(e => {\n            if (e.affectsConfiguration(multiSelectModifierSettingKey)) {\n                this._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n            }\n            let options = {};\n            if (e.affectsConfiguration(horizontalScrollingKey) && this.horizontalScrolling === undefined) {\n                const horizontalScrolling = Boolean(configurationService.getValue(horizontalScrollingKey));\n                options = { ...options, horizontalScrolling };\n            }\n            if (e.affectsConfiguration(scrollByPageKey)) {\n                const scrollByPage = Boolean(configurationService.getValue(scrollByPageKey));\n                options = { ...options, scrollByPage };\n            }\n            if (e.affectsConfiguration(listSmoothScrolling)) {\n                const smoothScrolling = Boolean(configurationService.getValue(listSmoothScrolling));\n                options = { ...options, smoothScrolling };\n            }\n            if (e.affectsConfiguration(mouseWheelScrollSensitivityKey)) {\n                const mouseWheelScrollSensitivity = configurationService.getValue(mouseWheelScrollSensitivityKey);\n                options = { ...options, mouseWheelScrollSensitivity };\n            }\n            if (e.affectsConfiguration(fastScrollSensitivityKey)) {\n                const fastScrollSensitivity = configurationService.getValue(fastScrollSensitivityKey);\n                options = { ...options, fastScrollSensitivity };\n            }\n            if (Object.keys(options).length > 0) {\n                this.updateOptions(options);\n            }\n        }));\n        this.navigator = new TableResourceNavigator(this, { configurationService, ...options });\n        this.disposables.add(this.navigator);\n    }\n    updateOptions(options) {\n        super.updateOptions(options);\n        if (options.overrideStyles !== undefined) {\n            this.updateStyles(options.overrideStyles);\n        }\n        if (options.multipleSelectionSupport !== undefined) {\n            this.listSupportsMultiSelect.set(!!options.multipleSelectionSupport);\n        }\n    }\n    updateStyles(styles) {\n        this.style(styles ? getListStyles(styles) : defaultListStyles);\n    }\n    dispose() {\n        this.disposables.dispose();\n        super.dispose();\n    }\n};\nWorkbenchTable = __decorate([\n    __param(6, IContextKeyService),\n    __param(7, IListService),\n    __param(8, IConfigurationService),\n    __param(9, IInstantiationService)\n], WorkbenchTable);\nexport { WorkbenchTable };\nclass ResourceNavigator extends Disposable {\n    constructor(widget, options) {\n        var _a;\n        super();\n        this.widget = widget;\n        this._onDidOpen = this._register(new Emitter());\n        this.onDidOpen = this._onDidOpen.event;\n        this._register(Event.filter(this.widget.onDidChangeSelection, e => isKeyboardEvent(e.browserEvent))(e => this.onSelectionFromKeyboard(e)));\n        this._register(this.widget.onPointer((e) => this.onPointer(e.element, e.browserEvent)));\n        this._register(this.widget.onMouseDblClick((e) => this.onMouseDblClick(e.element, e.browserEvent)));\n        if (typeof (options === null || options === void 0 ? void 0 : options.openOnSingleClick) !== 'boolean' && (options === null || options === void 0 ? void 0 : options.configurationService)) {\n            this.openOnSingleClick = (options === null || options === void 0 ? void 0 : options.configurationService.getValue(openModeSettingKey)) !== 'doubleClick';\n            this._register(options === null || options === void 0 ? void 0 : options.configurationService.onDidChangeConfiguration(e => {\n                if (e.affectsConfiguration(openModeSettingKey)) {\n                    this.openOnSingleClick = (options === null || options === void 0 ? void 0 : options.configurationService.getValue(openModeSettingKey)) !== 'doubleClick';\n                }\n            }));\n        }\n        else {\n            this.openOnSingleClick = (_a = options === null || options === void 0 ? void 0 : options.openOnSingleClick) !== null && _a !== void 0 ? _a : true;\n        }\n    }\n    onSelectionFromKeyboard(event) {\n        if (event.elements.length !== 1) {\n            return;\n        }\n        const selectionKeyboardEvent = event.browserEvent;\n        const preserveFocus = typeof selectionKeyboardEvent.preserveFocus === 'boolean' ? selectionKeyboardEvent.preserveFocus : true;\n        const pinned = typeof selectionKeyboardEvent.pinned === 'boolean' ? selectionKeyboardEvent.pinned : !preserveFocus;\n        const sideBySide = false;\n        this._open(this.getSelectedElement(), preserveFocus, pinned, sideBySide, event.browserEvent);\n    }\n    onPointer(element, browserEvent) {\n        if (!this.openOnSingleClick) {\n            return;\n        }\n        const isDoubleClick = browserEvent.detail === 2;\n        if (isDoubleClick) {\n            return;\n        }\n        const isMiddleClick = browserEvent.button === 1;\n        const preserveFocus = true;\n        const pinned = isMiddleClick;\n        const sideBySide = browserEvent.ctrlKey || browserEvent.metaKey || browserEvent.altKey;\n        this._open(element, preserveFocus, pinned, sideBySide, browserEvent);\n    }\n    onMouseDblClick(element, browserEvent) {\n        if (!browserEvent) {\n            return;\n        }\n        // copied from AbstractTree\n        const target = browserEvent.target;\n        const onTwistie = target.classList.contains('monaco-tl-twistie')\n            || (target.classList.contains('monaco-icon-label') && target.classList.contains('folder-icon') && browserEvent.offsetX < 16);\n        if (onTwistie) {\n            return;\n        }\n        const preserveFocus = false;\n        const pinned = true;\n        const sideBySide = (browserEvent.ctrlKey || browserEvent.metaKey || browserEvent.altKey);\n        this._open(element, preserveFocus, pinned, sideBySide, browserEvent);\n    }\n    _open(element, preserveFocus, pinned, sideBySide, browserEvent) {\n        if (!element) {\n            return;\n        }\n        this._onDidOpen.fire({\n            editorOptions: {\n                preserveFocus,\n                pinned,\n                revealIfVisible: true\n            },\n            sideBySide,\n            element,\n            browserEvent\n        });\n    }\n}\nclass ListResourceNavigator extends ResourceNavigator {\n    constructor(widget, options) {\n        super(widget, options);\n        this.widget = widget;\n    }\n    getSelectedElement() {\n        return this.widget.getSelectedElements()[0];\n    }\n}\nclass TableResourceNavigator extends ResourceNavigator {\n    constructor(widget, options) {\n        super(widget, options);\n    }\n    getSelectedElement() {\n        return this.widget.getSelectedElements()[0];\n    }\n}\nclass TreeResourceNavigator extends ResourceNavigator {\n    constructor(widget, options) {\n        super(widget, options);\n    }\n    getSelectedElement() {\n        var _a;\n        return (_a = this.widget.getSelection()[0]) !== null && _a !== void 0 ? _a : undefined;\n    }\n}\nfunction createKeyboardNavigationEventFilter(keybindingService) {\n    let inMultiChord = false;\n    return event => {\n        if (event.toKeyCodeChord().isModifierKey()) {\n            return false;\n        }\n        if (inMultiChord) {\n            inMultiChord = false;\n            return false;\n        }\n        const result = keybindingService.softDispatch(event, event.target);\n        if (result.kind === 1 /* ResultKind.MoreChordsNeeded */) {\n            inMultiChord = true;\n            return false;\n        }\n        inMultiChord = false;\n        return result.kind === 0 /* ResultKind.NoMatchingKb */;\n    };\n}\nlet WorkbenchObjectTree = class WorkbenchObjectTree extends ObjectTree {\n    constructor(user, container, delegate, renderers, options, instantiationService, contextKeyService, listService, configurationService) {\n        const { options: treeOptions, getTypeNavigationMode, disposable } = instantiationService.invokeFunction(workbenchTreeDataPreamble, options);\n        super(user, container, delegate, renderers, treeOptions);\n        this.disposables.add(disposable);\n        this.internals = new WorkbenchTreeInternals(this, options, getTypeNavigationMode, options.overrideStyles, contextKeyService, listService, configurationService);\n        this.disposables.add(this.internals);\n    }\n    updateOptions(options) {\n        super.updateOptions(options);\n        this.internals.updateOptions(options);\n    }\n};\nWorkbenchObjectTree = __decorate([\n    __param(5, IInstantiationService),\n    __param(6, IContextKeyService),\n    __param(7, IListService),\n    __param(8, IConfigurationService)\n], WorkbenchObjectTree);\nexport { WorkbenchObjectTree };\nlet WorkbenchCompressibleObjectTree = class WorkbenchCompressibleObjectTree extends CompressibleObjectTree {\n    constructor(user, container, delegate, renderers, options, instantiationService, contextKeyService, listService, configurationService) {\n        const { options: treeOptions, getTypeNavigationMode, disposable } = instantiationService.invokeFunction(workbenchTreeDataPreamble, options);\n        super(user, container, delegate, renderers, treeOptions);\n        this.disposables.add(disposable);\n        this.internals = new WorkbenchTreeInternals(this, options, getTypeNavigationMode, options.overrideStyles, contextKeyService, listService, configurationService);\n        this.disposables.add(this.internals);\n    }\n    updateOptions(options = {}) {\n        super.updateOptions(options);\n        if (options.overrideStyles) {\n            this.internals.updateStyleOverrides(options.overrideStyles);\n        }\n        this.internals.updateOptions(options);\n    }\n};\nWorkbenchCompressibleObjectTree = __decorate([\n    __param(5, IInstantiationService),\n    __param(6, IContextKeyService),\n    __param(7, IListService),\n    __param(8, IConfigurationService)\n], WorkbenchCompressibleObjectTree);\nexport { WorkbenchCompressibleObjectTree };\nlet WorkbenchDataTree = class WorkbenchDataTree extends DataTree {\n    constructor(user, container, delegate, renderers, dataSource, options, instantiationService, contextKeyService, listService, configurationService) {\n        const { options: treeOptions, getTypeNavigationMode, disposable } = instantiationService.invokeFunction(workbenchTreeDataPreamble, options);\n        super(user, container, delegate, renderers, dataSource, treeOptions);\n        this.disposables.add(disposable);\n        this.internals = new WorkbenchTreeInternals(this, options, getTypeNavigationMode, options.overrideStyles, contextKeyService, listService, configurationService);\n        this.disposables.add(this.internals);\n    }\n    updateOptions(options = {}) {\n        super.updateOptions(options);\n        if (options.overrideStyles !== undefined) {\n            this.internals.updateStyleOverrides(options.overrideStyles);\n        }\n        this.internals.updateOptions(options);\n    }\n};\nWorkbenchDataTree = __decorate([\n    __param(6, IInstantiationService),\n    __param(7, IContextKeyService),\n    __param(8, IListService),\n    __param(9, IConfigurationService)\n], WorkbenchDataTree);\nexport { WorkbenchDataTree };\nlet WorkbenchAsyncDataTree = class WorkbenchAsyncDataTree extends AsyncDataTree {\n    get onDidOpen() { return this.internals.onDidOpen; }\n    constructor(user, container, delegate, renderers, dataSource, options, instantiationService, contextKeyService, listService, configurationService) {\n        const { options: treeOptions, getTypeNavigationMode, disposable } = instantiationService.invokeFunction(workbenchTreeDataPreamble, options);\n        super(user, container, delegate, renderers, dataSource, treeOptions);\n        this.disposables.add(disposable);\n        this.internals = new WorkbenchTreeInternals(this, options, getTypeNavigationMode, options.overrideStyles, contextKeyService, listService, configurationService);\n        this.disposables.add(this.internals);\n    }\n    updateOptions(options = {}) {\n        super.updateOptions(options);\n        if (options.overrideStyles) {\n            this.internals.updateStyleOverrides(options.overrideStyles);\n        }\n        this.internals.updateOptions(options);\n    }\n};\nWorkbenchAsyncDataTree = __decorate([\n    __param(6, IInstantiationService),\n    __param(7, IContextKeyService),\n    __param(8, IListService),\n    __param(9, IConfigurationService)\n], WorkbenchAsyncDataTree);\nexport { WorkbenchAsyncDataTree };\nlet WorkbenchCompressibleAsyncDataTree = class WorkbenchCompressibleAsyncDataTree extends CompressibleAsyncDataTree {\n    constructor(user, container, virtualDelegate, compressionDelegate, renderers, dataSource, options, instantiationService, contextKeyService, listService, configurationService) {\n        const { options: treeOptions, getTypeNavigationMode, disposable } = instantiationService.invokeFunction(workbenchTreeDataPreamble, options);\n        super(user, container, virtualDelegate, compressionDelegate, renderers, dataSource, treeOptions);\n        this.disposables.add(disposable);\n        this.internals = new WorkbenchTreeInternals(this, options, getTypeNavigationMode, options.overrideStyles, contextKeyService, listService, configurationService);\n        this.disposables.add(this.internals);\n    }\n    updateOptions(options) {\n        super.updateOptions(options);\n        this.internals.updateOptions(options);\n    }\n};\nWorkbenchCompressibleAsyncDataTree = __decorate([\n    __param(7, IInstantiationService),\n    __param(8, IContextKeyService),\n    __param(9, IListService),\n    __param(10, IConfigurationService)\n], WorkbenchCompressibleAsyncDataTree);\nexport { WorkbenchCompressibleAsyncDataTree };\nfunction getDefaultTreeFindMode(configurationService) {\n    const value = configurationService.getValue(defaultFindModeSettingKey);\n    if (value === 'highlight') {\n        return TreeFindMode.Highlight;\n    }\n    else if (value === 'filter') {\n        return TreeFindMode.Filter;\n    }\n    const deprecatedValue = configurationService.getValue(keyboardNavigationSettingKey);\n    if (deprecatedValue === 'simple' || deprecatedValue === 'highlight') {\n        return TreeFindMode.Highlight;\n    }\n    else if (deprecatedValue === 'filter') {\n        return TreeFindMode.Filter;\n    }\n    return undefined;\n}\nfunction getDefaultTreeFindMatchType(configurationService) {\n    const value = configurationService.getValue(defaultFindMatchTypeSettingKey);\n    if (value === 'fuzzy') {\n        return TreeFindMatchType.Fuzzy;\n    }\n    else if (value === 'contiguous') {\n        return TreeFindMatchType.Contiguous;\n    }\n    return undefined;\n}\nfunction workbenchTreeDataPreamble(accessor, options) {\n    var _a;\n    const configurationService = accessor.get(IConfigurationService);\n    const contextViewService = accessor.get(IContextViewService);\n    const contextKeyService = accessor.get(IContextKeyService);\n    const instantiationService = accessor.get(IInstantiationService);\n    const getTypeNavigationMode = () => {\n        // give priority to the context key value to specify a value\n        const modeString = contextKeyService.getContextKeyValue(WorkbenchListTypeNavigationModeKey);\n        if (modeString === 'automatic') {\n            return TypeNavigationMode.Automatic;\n        }\n        else if (modeString === 'trigger') {\n            return TypeNavigationMode.Trigger;\n        }\n        // also check the deprecated context key to set the mode to 'trigger'\n        const modeBoolean = contextKeyService.getContextKeyValue(WorkbenchListAutomaticKeyboardNavigationLegacyKey);\n        if (modeBoolean === false) {\n            return TypeNavigationMode.Trigger;\n        }\n        // finally, check the setting\n        const configString = configurationService.getValue(typeNavigationModeSettingKey);\n        if (configString === 'automatic') {\n            return TypeNavigationMode.Automatic;\n        }\n        else if (configString === 'trigger') {\n            return TypeNavigationMode.Trigger;\n        }\n        return undefined;\n    };\n    const horizontalScrolling = options.horizontalScrolling !== undefined ? options.horizontalScrolling : Boolean(configurationService.getValue(horizontalScrollingKey));\n    const [workbenchListOptions, disposable] = instantiationService.invokeFunction(toWorkbenchListOptions, options);\n    const paddingBottom = options.paddingBottom;\n    const renderIndentGuides = options.renderIndentGuides !== undefined ? options.renderIndentGuides : configurationService.getValue(treeRenderIndentGuidesKey);\n    return {\n        getTypeNavigationMode,\n        disposable,\n        options: {\n            // ...options, // TODO@Joao why is this not splatted here?\n            keyboardSupport: false,\n            ...workbenchListOptions,\n            indent: typeof configurationService.getValue(treeIndentKey) === 'number' ? configurationService.getValue(treeIndentKey) : undefined,\n            renderIndentGuides,\n            smoothScrolling: Boolean(configurationService.getValue(listSmoothScrolling)),\n            defaultFindMode: getDefaultTreeFindMode(configurationService),\n            defaultFindMatchType: getDefaultTreeFindMatchType(configurationService),\n            horizontalScrolling,\n            scrollByPage: Boolean(configurationService.getValue(scrollByPageKey)),\n            paddingBottom: paddingBottom,\n            hideTwistiesOfChildlessElements: options.hideTwistiesOfChildlessElements,\n            expandOnlyOnTwistieClick: (_a = options.expandOnlyOnTwistieClick) !== null && _a !== void 0 ? _a : (configurationService.getValue(treeExpandMode) === 'doubleClick'),\n            contextViewProvider: contextViewService,\n            findWidgetStyles: defaultFindWidgetStyles,\n            enableStickyScroll: Boolean(configurationService.getValue(treeStickyScroll)),\n            stickyScrollMaxItemCount: Number(configurationService.getValue(treeStickyScrollMaxElements)),\n        }\n    };\n}\nlet WorkbenchTreeInternals = class WorkbenchTreeInternals {\n    get onDidOpen() { return this.navigator.onDidOpen; }\n    constructor(tree, options, getTypeNavigationMode, overrideStyles, contextKeyService, listService, configurationService) {\n        var _a;\n        this.tree = tree;\n        this.disposables = [];\n        this.contextKeyService = createScopedContextKeyService(contextKeyService, tree);\n        this.disposables.push(createScrollObserver(this.contextKeyService, tree));\n        this.listSupportsMultiSelect = WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService);\n        this.listSupportsMultiSelect.set(options.multipleSelectionSupport !== false);\n        const listSelectionNavigation = WorkbenchListSelectionNavigation.bindTo(this.contextKeyService);\n        listSelectionNavigation.set(Boolean(options.selectionNavigation));\n        this.listSupportFindWidget = WorkbenchListSupportsFind.bindTo(this.contextKeyService);\n        this.listSupportFindWidget.set((_a = options.findWidgetEnabled) !== null && _a !== void 0 ? _a : true);\n        this.hasSelectionOrFocus = WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService);\n        this.hasDoubleSelection = WorkbenchListDoubleSelection.bindTo(this.contextKeyService);\n        this.hasMultiSelection = WorkbenchListMultiSelection.bindTo(this.contextKeyService);\n        this.treeElementCanCollapse = WorkbenchTreeElementCanCollapse.bindTo(this.contextKeyService);\n        this.treeElementHasParent = WorkbenchTreeElementHasParent.bindTo(this.contextKeyService);\n        this.treeElementCanExpand = WorkbenchTreeElementCanExpand.bindTo(this.contextKeyService);\n        this.treeElementHasChild = WorkbenchTreeElementHasChild.bindTo(this.contextKeyService);\n        this.treeFindOpen = WorkbenchTreeFindOpen.bindTo(this.contextKeyService);\n        this.treeStickyScrollFocused = WorkbenchTreeStickyScrollFocused.bindTo(this.contextKeyService);\n        this._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n        this.updateStyleOverrides(overrideStyles);\n        const updateCollapseContextKeys = () => {\n            const focus = tree.getFocus()[0];\n            if (!focus) {\n                return;\n            }\n            const node = tree.getNode(focus);\n            this.treeElementCanCollapse.set(node.collapsible && !node.collapsed);\n            this.treeElementHasParent.set(!!tree.getParentElement(focus));\n            this.treeElementCanExpand.set(node.collapsible && node.collapsed);\n            this.treeElementHasChild.set(!!tree.getFirstElementChild(focus));\n        };\n        const interestingContextKeys = new Set();\n        interestingContextKeys.add(WorkbenchListTypeNavigationModeKey);\n        interestingContextKeys.add(WorkbenchListAutomaticKeyboardNavigationLegacyKey);\n        this.disposables.push(this.contextKeyService, listService.register(tree), tree.onDidChangeSelection(() => {\n            const selection = tree.getSelection();\n            const focus = tree.getFocus();\n            this.contextKeyService.bufferChangeEvents(() => {\n                this.hasSelectionOrFocus.set(selection.length > 0 || focus.length > 0);\n                this.hasMultiSelection.set(selection.length > 1);\n                this.hasDoubleSelection.set(selection.length === 2);\n            });\n        }), tree.onDidChangeFocus(() => {\n            const selection = tree.getSelection();\n            const focus = tree.getFocus();\n            this.hasSelectionOrFocus.set(selection.length > 0 || focus.length > 0);\n            updateCollapseContextKeys();\n        }), tree.onDidChangeCollapseState(updateCollapseContextKeys), tree.onDidChangeModel(updateCollapseContextKeys), tree.onDidChangeFindOpenState(enabled => this.treeFindOpen.set(enabled)), tree.onDidChangeStickyScrollFocused(focused => this.treeStickyScrollFocused.set(focused)), configurationService.onDidChangeConfiguration(e => {\n            let newOptions = {};\n            if (e.affectsConfiguration(multiSelectModifierSettingKey)) {\n                this._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n            }\n            if (e.affectsConfiguration(treeIndentKey)) {\n                const indent = configurationService.getValue(treeIndentKey);\n                newOptions = { ...newOptions, indent };\n            }\n            if (e.affectsConfiguration(treeRenderIndentGuidesKey) && options.renderIndentGuides === undefined) {\n                const renderIndentGuides = configurationService.getValue(treeRenderIndentGuidesKey);\n                newOptions = { ...newOptions, renderIndentGuides };\n            }\n            if (e.affectsConfiguration(listSmoothScrolling)) {\n                const smoothScrolling = Boolean(configurationService.getValue(listSmoothScrolling));\n                newOptions = { ...newOptions, smoothScrolling };\n            }\n            if (e.affectsConfiguration(defaultFindModeSettingKey) || e.affectsConfiguration(keyboardNavigationSettingKey)) {\n                const defaultFindMode = getDefaultTreeFindMode(configurationService);\n                newOptions = { ...newOptions, defaultFindMode };\n            }\n            if (e.affectsConfiguration(typeNavigationModeSettingKey) || e.affectsConfiguration(keyboardNavigationSettingKey)) {\n                const typeNavigationMode = getTypeNavigationMode();\n                newOptions = { ...newOptions, typeNavigationMode };\n            }\n            if (e.affectsConfiguration(defaultFindMatchTypeSettingKey)) {\n                const defaultFindMatchType = getDefaultTreeFindMatchType(configurationService);\n                newOptions = { ...newOptions, defaultFindMatchType };\n            }\n            if (e.affectsConfiguration(horizontalScrollingKey) && options.horizontalScrolling === undefined) {\n                const horizontalScrolling = Boolean(configurationService.getValue(horizontalScrollingKey));\n                newOptions = { ...newOptions, horizontalScrolling };\n            }\n            if (e.affectsConfiguration(scrollByPageKey)) {\n                const scrollByPage = Boolean(configurationService.getValue(scrollByPageKey));\n                newOptions = { ...newOptions, scrollByPage };\n            }\n            if (e.affectsConfiguration(treeExpandMode) && options.expandOnlyOnTwistieClick === undefined) {\n                newOptions = { ...newOptions, expandOnlyOnTwistieClick: configurationService.getValue(treeExpandMode) === 'doubleClick' };\n            }\n            if (e.affectsConfiguration(treeStickyScroll)) {\n                const enableStickyScroll = configurationService.getValue(treeStickyScroll);\n                newOptions = { ...newOptions, enableStickyScroll };\n            }\n            if (e.affectsConfiguration(treeStickyScrollMaxElements)) {\n                const stickyScrollMaxItemCount = Math.max(1, configurationService.getValue(treeStickyScrollMaxElements));\n                newOptions = { ...newOptions, stickyScrollMaxItemCount };\n            }\n            if (e.affectsConfiguration(mouseWheelScrollSensitivityKey)) {\n                const mouseWheelScrollSensitivity = configurationService.getValue(mouseWheelScrollSensitivityKey);\n                newOptions = { ...newOptions, mouseWheelScrollSensitivity };\n            }\n            if (e.affectsConfiguration(fastScrollSensitivityKey)) {\n                const fastScrollSensitivity = configurationService.getValue(fastScrollSensitivityKey);\n                newOptions = { ...newOptions, fastScrollSensitivity };\n            }\n            if (Object.keys(newOptions).length > 0) {\n                tree.updateOptions(newOptions);\n            }\n        }), this.contextKeyService.onDidChangeContext(e => {\n            if (e.affectsSome(interestingContextKeys)) {\n                tree.updateOptions({ typeNavigationMode: getTypeNavigationMode() });\n            }\n        }));\n        this.navigator = new TreeResourceNavigator(tree, { configurationService, ...options });\n        this.disposables.push(this.navigator);\n    }\n    updateOptions(options) {\n        if (options.multipleSelectionSupport !== undefined) {\n            this.listSupportsMultiSelect.set(!!options.multipleSelectionSupport);\n        }\n    }\n    updateStyleOverrides(overrideStyles) {\n        this.tree.style(overrideStyles ? getListStyles(overrideStyles) : defaultListStyles);\n    }\n    dispose() {\n        this.disposables = dispose(this.disposables);\n    }\n};\nWorkbenchTreeInternals = __decorate([\n    __param(4, IContextKeyService),\n    __param(5, IListService),\n    __param(6, IConfigurationService)\n], WorkbenchTreeInternals);\nconst configurationRegistry = Registry.as(ConfigurationExtensions.Configuration);\nconfigurationRegistry.registerConfiguration({\n    id: 'workbench',\n    order: 7,\n    title: localize('workbenchConfigurationTitle', \"Workbench\"),\n    type: 'object',\n    properties: {\n        [multiSelectModifierSettingKey]: {\n            type: 'string',\n            enum: ['ctrlCmd', 'alt'],\n            markdownEnumDescriptions: [\n                localize('multiSelectModifier.ctrlCmd', \"Maps to `Control` on Windows and Linux and to `Command` on macOS.\"),\n                localize('multiSelectModifier.alt', \"Maps to `Alt` on Windows and Linux and to `Option` on macOS.\")\n            ],\n            default: 'ctrlCmd',\n            description: localize({\n                key: 'multiSelectModifier',\n                comment: [\n                    '- `ctrlCmd` refers to a value the setting can take and should not be localized.',\n                    '- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized.'\n                ]\n            }, \"The modifier to be used to add an item in trees and lists to a multi-selection with the mouse (for example in the explorer, open editors and scm view). The 'Open to Side' mouse gestures - if supported - will adapt such that they do not conflict with the multiselect modifier.\")\n        },\n        [openModeSettingKey]: {\n            type: 'string',\n            enum: ['singleClick', 'doubleClick'],\n            default: 'singleClick',\n            description: localize({\n                key: 'openModeModifier',\n                comment: ['`singleClick` and `doubleClick` refers to a value the setting can take and should not be localized.']\n            }, \"Controls how to open items in trees and lists using the mouse (if supported). Note that some trees and lists might choose to ignore this setting if it is not applicable.\")\n        },\n        [horizontalScrollingKey]: {\n            type: 'boolean',\n            default: false,\n            description: localize('horizontalScrolling setting', \"Controls whether lists and trees support horizontal scrolling in the workbench. Warning: turning on this setting has a performance implication.\")\n        },\n        [scrollByPageKey]: {\n            type: 'boolean',\n            default: false,\n            description: localize('list.scrollByPage', \"Controls whether clicks in the scrollbar scroll page by page.\")\n        },\n        [treeIndentKey]: {\n            type: 'number',\n            default: 8,\n            minimum: 4,\n            maximum: 40,\n            description: localize('tree indent setting', \"Controls tree indentation in pixels.\")\n        },\n        [treeRenderIndentGuidesKey]: {\n            type: 'string',\n            enum: ['none', 'onHover', 'always'],\n            default: 'onHover',\n            description: localize('render tree indent guides', \"Controls whether the tree should render indent guides.\")\n        },\n        [listSmoothScrolling]: {\n            type: 'boolean',\n            default: false,\n            description: localize('list smoothScrolling setting', \"Controls whether lists and trees have smooth scrolling.\"),\n        },\n        [mouseWheelScrollSensitivityKey]: {\n            type: 'number',\n            default: 1,\n            markdownDescription: localize('Mouse Wheel Scroll Sensitivity', \"A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.\")\n        },\n        [fastScrollSensitivityKey]: {\n            type: 'number',\n            default: 5,\n            markdownDescription: localize('Fast Scroll Sensitivity', \"Scrolling speed multiplier when pressing `Alt`.\")\n        },\n        [defaultFindModeSettingKey]: {\n            type: 'string',\n            enum: ['highlight', 'filter'],\n            enumDescriptions: [\n                localize('defaultFindModeSettingKey.highlight', \"Highlight elements when searching. Further up and down navigation will traverse only the highlighted elements.\"),\n                localize('defaultFindModeSettingKey.filter', \"Filter elements when searching.\")\n            ],\n            default: 'highlight',\n            description: localize('defaultFindModeSettingKey', \"Controls the default find mode for lists and trees in the workbench.\")\n        },\n        [keyboardNavigationSettingKey]: {\n            type: 'string',\n            enum: ['simple', 'highlight', 'filter'],\n            enumDescriptions: [\n                localize('keyboardNavigationSettingKey.simple', \"Simple keyboard navigation focuses elements which match the keyboard input. Matching is done only on prefixes.\"),\n                localize('keyboardNavigationSettingKey.highlight', \"Highlight keyboard navigation highlights elements which match the keyboard input. Further up and down navigation will traverse only the highlighted elements.\"),\n                localize('keyboardNavigationSettingKey.filter', \"Filter keyboard navigation will filter out and hide all the elements which do not match the keyboard input.\")\n            ],\n            default: 'highlight',\n            description: localize('keyboardNavigationSettingKey', \"Controls the keyboard navigation style for lists and trees in the workbench. Can be simple, highlight and filter.\"),\n            deprecated: true,\n            deprecationMessage: localize('keyboardNavigationSettingKeyDeprecated', \"Please use 'workbench.list.defaultFindMode' and\t'workbench.list.typeNavigationMode' instead.\")\n        },\n        [defaultFindMatchTypeSettingKey]: {\n            type: 'string',\n            enum: ['fuzzy', 'contiguous'],\n            enumDescriptions: [\n                localize('defaultFindMatchTypeSettingKey.fuzzy', \"Use fuzzy matching when searching.\"),\n                localize('defaultFindMatchTypeSettingKey.contiguous', \"Use contiguous matching when searching.\")\n            ],\n            default: 'fuzzy',\n            description: localize('defaultFindMatchTypeSettingKey', \"Controls the type of matching used when searching lists and trees in the workbench.\")\n        },\n        [treeExpandMode]: {\n            type: 'string',\n            enum: ['singleClick', 'doubleClick'],\n            default: 'singleClick',\n            description: localize('expand mode', \"Controls how tree folders are expanded when clicking the folder names. Note that some trees and lists might choose to ignore this setting if it is not applicable.\"),\n        },\n        [treeStickyScroll]: {\n            type: 'boolean',\n            default: true,\n            description: localize('sticky scroll', \"Controls whether sticky scrolling is enabled in trees.\"),\n        },\n        [treeStickyScrollMaxElements]: {\n            type: 'number',\n            minimum: 1,\n            default: 7,\n            markdownDescription: localize('sticky scroll maximum items', \"Controls the number of sticky elements displayed in the tree when `#workbench.tree.enableStickyScroll#` is enabled.\"),\n        },\n        [typeNavigationModeSettingKey]: {\n            type: 'string',\n            enum: ['automatic', 'trigger'],\n            default: 'automatic',\n            markdownDescription: localize('typeNavigationMode2', \"Controls how type navigation works in lists and trees in the workbench. When set to `trigger`, type navigation begins once the `list.triggerTypeNavigation` command is run.\"),\n        }\n    }\n});\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/log/common/log.js",
    "content": "import { Emitter } from '../../../base/common/event.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { RawContextKey } from '../../contextkey/common/contextkey.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const ILogService = createDecorator('logService');\nexport var LogLevel;\n(function (LogLevel) {\n    LogLevel[LogLevel[\"Off\"] = 0] = \"Off\";\n    LogLevel[LogLevel[\"Trace\"] = 1] = \"Trace\";\n    LogLevel[LogLevel[\"Debug\"] = 2] = \"Debug\";\n    LogLevel[LogLevel[\"Info\"] = 3] = \"Info\";\n    LogLevel[LogLevel[\"Warning\"] = 4] = \"Warning\";\n    LogLevel[LogLevel[\"Error\"] = 5] = \"Error\";\n})(LogLevel || (LogLevel = {}));\nexport const DEFAULT_LOG_LEVEL = LogLevel.Info;\nexport class AbstractLogger extends Disposable {\n    constructor() {\n        super(...arguments);\n        this.level = DEFAULT_LOG_LEVEL;\n        this._onDidChangeLogLevel = this._register(new Emitter());\n        this.onDidChangeLogLevel = this._onDidChangeLogLevel.event;\n    }\n    setLevel(level) {\n        if (this.level !== level) {\n            this.level = level;\n            this._onDidChangeLogLevel.fire(this.level);\n        }\n    }\n    getLevel() {\n        return this.level;\n    }\n    checkLogLevel(level) {\n        return this.level !== LogLevel.Off && this.level <= level;\n    }\n}\nexport class ConsoleLogger extends AbstractLogger {\n    constructor(logLevel = DEFAULT_LOG_LEVEL, useColors = true) {\n        super();\n        this.useColors = useColors;\n        this.setLevel(logLevel);\n    }\n    trace(message, ...args) {\n        if (this.checkLogLevel(LogLevel.Trace)) {\n            if (this.useColors) {\n                console.log('%cTRACE', 'color: #888', message, ...args);\n            }\n            else {\n                console.log(message, ...args);\n            }\n        }\n    }\n    debug(message, ...args) {\n        if (this.checkLogLevel(LogLevel.Debug)) {\n            if (this.useColors) {\n                console.log('%cDEBUG', 'background: #eee; color: #888', message, ...args);\n            }\n            else {\n                console.log(message, ...args);\n            }\n        }\n    }\n    info(message, ...args) {\n        if (this.checkLogLevel(LogLevel.Info)) {\n            if (this.useColors) {\n                console.log('%c INFO', 'color: #33f', message, ...args);\n            }\n            else {\n                console.log(message, ...args);\n            }\n        }\n    }\n    warn(message, ...args) {\n        if (this.checkLogLevel(LogLevel.Warning)) {\n            if (this.useColors) {\n                console.log('%c WARN', 'color: #993', message, ...args);\n            }\n            else {\n                console.log(message, ...args);\n            }\n        }\n    }\n    error(message, ...args) {\n        if (this.checkLogLevel(LogLevel.Error)) {\n            if (this.useColors) {\n                console.log('%c  ERR', 'color: #f33', message, ...args);\n            }\n            else {\n                console.error(message, ...args);\n            }\n        }\n    }\n}\nexport class MultiplexLogger extends AbstractLogger {\n    constructor(loggers) {\n        super();\n        this.loggers = loggers;\n        if (loggers.length) {\n            this.setLevel(loggers[0].getLevel());\n        }\n    }\n    setLevel(level) {\n        for (const logger of this.loggers) {\n            logger.setLevel(level);\n        }\n        super.setLevel(level);\n    }\n    trace(message, ...args) {\n        for (const logger of this.loggers) {\n            logger.trace(message, ...args);\n        }\n    }\n    debug(message, ...args) {\n        for (const logger of this.loggers) {\n            logger.debug(message, ...args);\n        }\n    }\n    info(message, ...args) {\n        for (const logger of this.loggers) {\n            logger.info(message, ...args);\n        }\n    }\n    warn(message, ...args) {\n        for (const logger of this.loggers) {\n            logger.warn(message, ...args);\n        }\n    }\n    error(message, ...args) {\n        for (const logger of this.loggers) {\n            logger.error(message, ...args);\n        }\n    }\n    dispose() {\n        for (const logger of this.loggers) {\n            logger.dispose();\n        }\n        super.dispose();\n    }\n}\nexport function LogLevelToString(logLevel) {\n    switch (logLevel) {\n        case LogLevel.Trace: return 'trace';\n        case LogLevel.Debug: return 'debug';\n        case LogLevel.Info: return 'info';\n        case LogLevel.Warning: return 'warn';\n        case LogLevel.Error: return 'error';\n        case LogLevel.Off: return 'off';\n    }\n}\n// Contexts\nexport const CONTEXT_LOG_LEVEL = new RawContextKey('logLevel', LogLevelToString(LogLevel.Info));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/log/common/logService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { MultiplexLogger } from './log.js';\nexport class LogService extends Disposable {\n    constructor(primaryLogger, otherLoggers = []) {\n        super();\n        this.logger = new MultiplexLogger([primaryLogger, ...otherLoggers]);\n        this._register(primaryLogger.onDidChangeLogLevel(level => this.setLevel(level)));\n    }\n    get onDidChangeLogLevel() {\n        return this.logger.onDidChangeLogLevel;\n    }\n    setLevel(level) {\n        this.logger.setLevel(level);\n    }\n    getLevel() {\n        return this.logger.getLevel();\n    }\n    trace(message, ...args) {\n        this.logger.trace(message, ...args);\n    }\n    debug(message, ...args) {\n        this.logger.debug(message, ...args);\n    }\n    info(message, ...args) {\n        this.logger.info(message, ...args);\n    }\n    warn(message, ...args) {\n        this.logger.warn(message, ...args);\n    }\n    error(message, ...args) {\n        this.logger.error(message, ...args);\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/markers/common/markerService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { isFalsyOrEmpty, isNonEmptyArray } from '../../../base/common/arrays.js';\nimport { DebounceEmitter } from '../../../base/common/event.js';\nimport { Iterable } from '../../../base/common/iterator.js';\nimport { ResourceMap } from '../../../base/common/map.js';\nimport { Schemas } from '../../../base/common/network.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { MarkerSeverity } from './markers.js';\nexport const unsupportedSchemas = new Set([\n    Schemas.inMemory,\n    Schemas.vscodeSourceControl,\n    Schemas.walkThrough,\n    Schemas.walkThroughSnippet,\n    Schemas.vscodeChatCodeBlock,\n    Schemas.vscodeCopilotBackingChatCodeBlock,\n]);\nclass DoubleResourceMap {\n    constructor() {\n        this._byResource = new ResourceMap();\n        this._byOwner = new Map();\n    }\n    set(resource, owner, value) {\n        let ownerMap = this._byResource.get(resource);\n        if (!ownerMap) {\n            ownerMap = new Map();\n            this._byResource.set(resource, ownerMap);\n        }\n        ownerMap.set(owner, value);\n        let resourceMap = this._byOwner.get(owner);\n        if (!resourceMap) {\n            resourceMap = new ResourceMap();\n            this._byOwner.set(owner, resourceMap);\n        }\n        resourceMap.set(resource, value);\n    }\n    get(resource, owner) {\n        const ownerMap = this._byResource.get(resource);\n        return ownerMap === null || ownerMap === void 0 ? void 0 : ownerMap.get(owner);\n    }\n    delete(resource, owner) {\n        let removedA = false;\n        let removedB = false;\n        const ownerMap = this._byResource.get(resource);\n        if (ownerMap) {\n            removedA = ownerMap.delete(owner);\n        }\n        const resourceMap = this._byOwner.get(owner);\n        if (resourceMap) {\n            removedB = resourceMap.delete(resource);\n        }\n        if (removedA !== removedB) {\n            throw new Error('illegal state');\n        }\n        return removedA && removedB;\n    }\n    values(key) {\n        var _a, _b, _c, _d;\n        if (typeof key === 'string') {\n            return (_b = (_a = this._byOwner.get(key)) === null || _a === void 0 ? void 0 : _a.values()) !== null && _b !== void 0 ? _b : Iterable.empty();\n        }\n        if (URI.isUri(key)) {\n            return (_d = (_c = this._byResource.get(key)) === null || _c === void 0 ? void 0 : _c.values()) !== null && _d !== void 0 ? _d : Iterable.empty();\n        }\n        return Iterable.map(Iterable.concat(...this._byOwner.values()), map => map[1]);\n    }\n}\nclass MarkerStats {\n    constructor(service) {\n        this.errors = 0;\n        this.infos = 0;\n        this.warnings = 0;\n        this.unknowns = 0;\n        this._data = new ResourceMap();\n        this._service = service;\n        this._subscription = service.onMarkerChanged(this._update, this);\n    }\n    dispose() {\n        this._subscription.dispose();\n    }\n    _update(resources) {\n        for (const resource of resources) {\n            const oldStats = this._data.get(resource);\n            if (oldStats) {\n                this._substract(oldStats);\n            }\n            const newStats = this._resourceStats(resource);\n            this._add(newStats);\n            this._data.set(resource, newStats);\n        }\n    }\n    _resourceStats(resource) {\n        const result = { errors: 0, warnings: 0, infos: 0, unknowns: 0 };\n        // TODO this is a hack\n        if (unsupportedSchemas.has(resource.scheme)) {\n            return result;\n        }\n        for (const { severity } of this._service.read({ resource })) {\n            if (severity === MarkerSeverity.Error) {\n                result.errors += 1;\n            }\n            else if (severity === MarkerSeverity.Warning) {\n                result.warnings += 1;\n            }\n            else if (severity === MarkerSeverity.Info) {\n                result.infos += 1;\n            }\n            else {\n                result.unknowns += 1;\n            }\n        }\n        return result;\n    }\n    _substract(op) {\n        this.errors -= op.errors;\n        this.warnings -= op.warnings;\n        this.infos -= op.infos;\n        this.unknowns -= op.unknowns;\n    }\n    _add(op) {\n        this.errors += op.errors;\n        this.warnings += op.warnings;\n        this.infos += op.infos;\n        this.unknowns += op.unknowns;\n    }\n}\nexport class MarkerService {\n    constructor() {\n        this._onMarkerChanged = new DebounceEmitter({\n            delay: 0,\n            merge: MarkerService._merge\n        });\n        this.onMarkerChanged = this._onMarkerChanged.event;\n        this._data = new DoubleResourceMap();\n        this._stats = new MarkerStats(this);\n    }\n    dispose() {\n        this._stats.dispose();\n        this._onMarkerChanged.dispose();\n    }\n    remove(owner, resources) {\n        for (const resource of resources || []) {\n            this.changeOne(owner, resource, []);\n        }\n    }\n    changeOne(owner, resource, markerData) {\n        if (isFalsyOrEmpty(markerData)) {\n            // remove marker for this (owner,resource)-tuple\n            const removed = this._data.delete(resource, owner);\n            if (removed) {\n                this._onMarkerChanged.fire([resource]);\n            }\n        }\n        else {\n            // insert marker for this (owner,resource)-tuple\n            const markers = [];\n            for (const data of markerData) {\n                const marker = MarkerService._toMarker(owner, resource, data);\n                if (marker) {\n                    markers.push(marker);\n                }\n            }\n            this._data.set(resource, owner, markers);\n            this._onMarkerChanged.fire([resource]);\n        }\n    }\n    static _toMarker(owner, resource, data) {\n        let { code, severity, message, source, startLineNumber, startColumn, endLineNumber, endColumn, relatedInformation, tags, } = data;\n        if (!message) {\n            return undefined;\n        }\n        // santize data\n        startLineNumber = startLineNumber > 0 ? startLineNumber : 1;\n        startColumn = startColumn > 0 ? startColumn : 1;\n        endLineNumber = endLineNumber >= startLineNumber ? endLineNumber : startLineNumber;\n        endColumn = endColumn > 0 ? endColumn : startColumn;\n        return {\n            resource,\n            owner,\n            code,\n            severity,\n            message,\n            source,\n            startLineNumber,\n            startColumn,\n            endLineNumber,\n            endColumn,\n            relatedInformation,\n            tags,\n        };\n    }\n    changeAll(owner, data) {\n        const changes = [];\n        // remove old marker\n        const existing = this._data.values(owner);\n        if (existing) {\n            for (const data of existing) {\n                const first = Iterable.first(data);\n                if (first) {\n                    changes.push(first.resource);\n                    this._data.delete(first.resource, owner);\n                }\n            }\n        }\n        // add new markers\n        if (isNonEmptyArray(data)) {\n            // group by resource\n            const groups = new ResourceMap();\n            for (const { resource, marker: markerData } of data) {\n                const marker = MarkerService._toMarker(owner, resource, markerData);\n                if (!marker) {\n                    // filter bad markers\n                    continue;\n                }\n                const array = groups.get(resource);\n                if (!array) {\n                    groups.set(resource, [marker]);\n                    changes.push(resource);\n                }\n                else {\n                    array.push(marker);\n                }\n            }\n            // insert all\n            for (const [resource, value] of groups) {\n                this._data.set(resource, owner, value);\n            }\n        }\n        if (changes.length > 0) {\n            this._onMarkerChanged.fire(changes);\n        }\n    }\n    read(filter = Object.create(null)) {\n        let { owner, resource, severities, take } = filter;\n        if (!take || take < 0) {\n            take = -1;\n        }\n        if (owner && resource) {\n            // exactly one owner AND resource\n            const data = this._data.get(resource, owner);\n            if (!data) {\n                return [];\n            }\n            else {\n                const result = [];\n                for (const marker of data) {\n                    if (MarkerService._accept(marker, severities)) {\n                        const newLen = result.push(marker);\n                        if (take > 0 && newLen === take) {\n                            break;\n                        }\n                    }\n                }\n                return result;\n            }\n        }\n        else if (!owner && !resource) {\n            // all\n            const result = [];\n            for (const markers of this._data.values()) {\n                for (const data of markers) {\n                    if (MarkerService._accept(data, severities)) {\n                        const newLen = result.push(data);\n                        if (take > 0 && newLen === take) {\n                            return result;\n                        }\n                    }\n                }\n            }\n            return result;\n        }\n        else {\n            // of one resource OR owner\n            const iterable = this._data.values(resource !== null && resource !== void 0 ? resource : owner);\n            const result = [];\n            for (const markers of iterable) {\n                for (const data of markers) {\n                    if (MarkerService._accept(data, severities)) {\n                        const newLen = result.push(data);\n                        if (take > 0 && newLen === take) {\n                            return result;\n                        }\n                    }\n                }\n            }\n            return result;\n        }\n    }\n    static _accept(marker, severities) {\n        return severities === undefined || (severities & marker.severity) === marker.severity;\n    }\n    // --- event debounce logic\n    static _merge(all) {\n        const set = new ResourceMap();\n        for (const array of all) {\n            for (const item of array) {\n                set.set(item, true);\n            }\n        }\n        return Array.from(set.keys());\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/markers/common/markers.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport Severity from '../../../base/common/severity.js';\nimport { localize } from '../../../nls.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport var MarkerSeverity;\n(function (MarkerSeverity) {\n    MarkerSeverity[MarkerSeverity[\"Hint\"] = 1] = \"Hint\";\n    MarkerSeverity[MarkerSeverity[\"Info\"] = 2] = \"Info\";\n    MarkerSeverity[MarkerSeverity[\"Warning\"] = 4] = \"Warning\";\n    MarkerSeverity[MarkerSeverity[\"Error\"] = 8] = \"Error\";\n})(MarkerSeverity || (MarkerSeverity = {}));\n(function (MarkerSeverity) {\n    function compare(a, b) {\n        return b - a;\n    }\n    MarkerSeverity.compare = compare;\n    const _displayStrings = Object.create(null);\n    _displayStrings[MarkerSeverity.Error] = localize('sev.error', \"Error\");\n    _displayStrings[MarkerSeverity.Warning] = localize('sev.warning', \"Warning\");\n    _displayStrings[MarkerSeverity.Info] = localize('sev.info', \"Info\");\n    function toString(a) {\n        return _displayStrings[a] || '';\n    }\n    MarkerSeverity.toString = toString;\n    function fromSeverity(severity) {\n        switch (severity) {\n            case Severity.Error: return MarkerSeverity.Error;\n            case Severity.Warning: return MarkerSeverity.Warning;\n            case Severity.Info: return MarkerSeverity.Info;\n            case Severity.Ignore: return MarkerSeverity.Hint;\n        }\n    }\n    MarkerSeverity.fromSeverity = fromSeverity;\n    function toSeverity(severity) {\n        switch (severity) {\n            case MarkerSeverity.Error: return Severity.Error;\n            case MarkerSeverity.Warning: return Severity.Warning;\n            case MarkerSeverity.Info: return Severity.Info;\n            case MarkerSeverity.Hint: return Severity.Ignore;\n        }\n    }\n    MarkerSeverity.toSeverity = toSeverity;\n})(MarkerSeverity || (MarkerSeverity = {}));\nexport var IMarkerData;\n(function (IMarkerData) {\n    const emptyString = '';\n    function makeKey(markerData) {\n        return makeKeyOptionalMessage(markerData, true);\n    }\n    IMarkerData.makeKey = makeKey;\n    function makeKeyOptionalMessage(markerData, useMessage) {\n        const result = [emptyString];\n        if (markerData.source) {\n            result.push(markerData.source.replace('¦', '\\\\¦'));\n        }\n        else {\n            result.push(emptyString);\n        }\n        if (markerData.code) {\n            if (typeof markerData.code === 'string') {\n                result.push(markerData.code.replace('¦', '\\\\¦'));\n            }\n            else {\n                result.push(markerData.code.value.replace('¦', '\\\\¦'));\n            }\n        }\n        else {\n            result.push(emptyString);\n        }\n        if (markerData.severity !== undefined && markerData.severity !== null) {\n            result.push(MarkerSeverity.toString(markerData.severity));\n        }\n        else {\n            result.push(emptyString);\n        }\n        // Modifed to not include the message as part of the marker key to work around\n        // https://github.com/microsoft/vscode/issues/77475\n        if (markerData.message && useMessage) {\n            result.push(markerData.message.replace('¦', '\\\\¦'));\n        }\n        else {\n            result.push(emptyString);\n        }\n        if (markerData.startLineNumber !== undefined && markerData.startLineNumber !== null) {\n            result.push(markerData.startLineNumber.toString());\n        }\n        else {\n            result.push(emptyString);\n        }\n        if (markerData.startColumn !== undefined && markerData.startColumn !== null) {\n            result.push(markerData.startColumn.toString());\n        }\n        else {\n            result.push(emptyString);\n        }\n        if (markerData.endLineNumber !== undefined && markerData.endLineNumber !== null) {\n            result.push(markerData.endLineNumber.toString());\n        }\n        else {\n            result.push(emptyString);\n        }\n        if (markerData.endColumn !== undefined && markerData.endColumn !== null) {\n            result.push(markerData.endColumn.toString());\n        }\n        else {\n            result.push(emptyString);\n        }\n        result.push(emptyString);\n        return result.join('¦');\n    }\n    IMarkerData.makeKeyOptionalMessage = makeKeyOptionalMessage;\n})(IMarkerData || (IMarkerData = {}));\nexport const IMarkerService = createDecorator('markerService');\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/notification/common/notification.js",
    "content": "import BaseSeverity from '../../../base/common/severity.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport var Severity = BaseSeverity;\nexport const INotificationService = createDecorator('notificationService');\nexport class NoOpNotification {\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/observable/common/platformObservableUtils.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { autorunOpts } from '../../../base/common/observable.js';\n/** Update the configuration key with a value derived from observables. */\nexport function bindContextKey(key, service, computeValue) {\n    const boundKey = key.bindTo(service);\n    return autorunOpts({ debugName: () => `Set Context Key \"${key.key}\"` }, reader => {\n        boundKey.set(computeValue(reader));\n    });\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/opener/browser/link.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-link {\n\tcolor: var(--vscode-textLink-foreground);\n}\n\n.monaco-link:hover {\n\tcolor: var(--vscode-textLink-activeForeground);\n}\n\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/opener/browser/link.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { $, append, EventHelper } from '../../../base/browser/dom.js';\nimport { DomEmitter } from '../../../base/browser/event.js';\nimport { StandardKeyboardEvent } from '../../../base/browser/keyboardEvent.js';\nimport { EventType as TouchEventType, Gesture } from '../../../base/browser/touch.js';\nimport { Event } from '../../../base/common/event.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { IOpenerService } from '../common/opener.js';\nimport './link.css';\nimport { getDefaultHoverDelegate } from '../../../base/browser/ui/hover/hoverDelegateFactory.js';\nimport { IHoverService } from '../../hover/browser/hover.js';\nlet Link = class Link extends Disposable {\n    get enabled() {\n        return this._enabled;\n    }\n    set enabled(enabled) {\n        if (enabled) {\n            this.el.setAttribute('aria-disabled', 'false');\n            this.el.tabIndex = 0;\n            this.el.style.pointerEvents = 'auto';\n            this.el.style.opacity = '1';\n            this.el.style.cursor = 'pointer';\n            this._enabled = false;\n        }\n        else {\n            this.el.setAttribute('aria-disabled', 'true');\n            this.el.tabIndex = -1;\n            this.el.style.pointerEvents = 'none';\n            this.el.style.opacity = '0.4';\n            this.el.style.cursor = 'default';\n            this._enabled = true;\n        }\n        this._enabled = enabled;\n    }\n    constructor(container, _link, options = {}, _hoverService, openerService) {\n        var _a, _b;\n        super();\n        this._link = _link;\n        this._hoverService = _hoverService;\n        this._enabled = true;\n        this.el = append(container, $('a.monaco-link', {\n            tabIndex: (_a = _link.tabIndex) !== null && _a !== void 0 ? _a : 0,\n            href: _link.href,\n        }, _link.label));\n        this.hoverDelegate = (_b = options.hoverDelegate) !== null && _b !== void 0 ? _b : getDefaultHoverDelegate('mouse');\n        this.setTooltip(_link.title);\n        this.el.setAttribute('role', 'button');\n        const onClickEmitter = this._register(new DomEmitter(this.el, 'click'));\n        const onKeyPress = this._register(new DomEmitter(this.el, 'keypress'));\n        const onEnterPress = Event.chain(onKeyPress.event, $ => $.map(e => new StandardKeyboardEvent(e))\n            .filter(e => e.keyCode === 3 /* KeyCode.Enter */));\n        const onTap = this._register(new DomEmitter(this.el, TouchEventType.Tap)).event;\n        this._register(Gesture.addTarget(this.el));\n        const onOpen = Event.any(onClickEmitter.event, onEnterPress, onTap);\n        this._register(onOpen(e => {\n            if (!this.enabled) {\n                return;\n            }\n            EventHelper.stop(e, true);\n            if (options === null || options === void 0 ? void 0 : options.opener) {\n                options.opener(this._link.href);\n            }\n            else {\n                openerService.open(this._link.href, { allowCommands: true });\n            }\n        }));\n        this.enabled = true;\n    }\n    setTooltip(title) {\n        if (this.hoverDelegate.showNativeHover) {\n            this.el.title = title !== null && title !== void 0 ? title : '';\n        }\n        else if (!this.hover && title) {\n            this.hover = this._register(this._hoverService.setupUpdatableHover(this.hoverDelegate, this.el, title));\n        }\n        else if (this.hover) {\n            this.hover.update(title);\n        }\n    }\n};\nLink = __decorate([\n    __param(3, IHoverService),\n    __param(4, IOpenerService)\n], Link);\nexport { Link };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/opener/common/opener.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const IOpenerService = createDecorator('openerService');\n/**\n * file:///some/file.js#73\n * file:///some/file.js#L73\n * file:///some/file.js#73,84\n * file:///some/file.js#L73,84\n * file:///some/file.js#73-83\n * file:///some/file.js#L73-L83\n * file:///some/file.js#73,84-83,52\n * file:///some/file.js#L73,84-L83,52\n */\nexport function extractSelection(uri) {\n    let selection = undefined;\n    const match = /^L?(\\d+)(?:,(\\d+))?(-L?(\\d+)(?:,(\\d+))?)?/.exec(uri.fragment);\n    if (match) {\n        selection = {\n            startLineNumber: parseInt(match[1]),\n            startColumn: match[2] ? parseInt(match[2]) : 1,\n            endLineNumber: match[4] ? parseInt(match[4]) : undefined,\n            endColumn: match[4] ? (match[5] ? parseInt(match[5]) : 1) : undefined\n        };\n        uri = uri.with({ fragment: '' });\n    }\n    return { selection, uri };\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/policy/common/policy.js",
    "content": "export {};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/progress/common/progress.js",
    "content": "import { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const IProgressService = createDecorator('progressService');\nexport const emptyProgressRunner = Object.freeze({\n    total() { },\n    worked() { },\n    done() { }\n});\nexport class Progress {\n    constructor(callback) {\n        this.callback = callback;\n    }\n    report(item) {\n        this._value = item;\n        this.callback(this._value);\n    }\n}\nProgress.None = Object.freeze({ report() { } });\nexport const IEditorProgressService = createDecorator('editorProgressService');\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/quickinput/browser/commandsQuickAccess.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar AbstractCommandsQuickAccessProvider_1, CommandsHistory_1;\nimport { toErrorMessage } from '../../../base/common/errorMessage.js';\nimport { isCancellationError } from '../../../base/common/errors.js';\nimport { matchesContiguousSubString, matchesPrefix, matchesWords, or } from '../../../base/common/filters.js';\nimport { createSingleCallFunction } from '../../../base/common/functional.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { LRUCache } from '../../../base/common/map.js';\nimport { TfIdfCalculator, normalizeTfIdfScores } from '../../../base/common/tfIdf.js';\nimport { localize } from '../../../nls.js';\nimport { ICommandService } from '../../commands/common/commands.js';\nimport { IConfigurationService } from '../../configuration/common/configuration.js';\nimport { IDialogService } from '../../dialogs/common/dialogs.js';\nimport { IInstantiationService } from '../../instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../keybinding/common/keybinding.js';\nimport { ILogService } from '../../log/common/log.js';\nimport { PickerQuickAccessProvider } from './pickerQuickAccess.js';\nimport { IStorageService, WillSaveStateReason } from '../../storage/common/storage.js';\nimport { ITelemetryService } from '../../telemetry/common/telemetry.js';\nlet AbstractCommandsQuickAccessProvider = AbstractCommandsQuickAccessProvider_1 = class AbstractCommandsQuickAccessProvider extends PickerQuickAccessProvider {\n    constructor(options, instantiationService, keybindingService, commandService, telemetryService, dialogService) {\n        super(AbstractCommandsQuickAccessProvider_1.PREFIX, options);\n        this.instantiationService = instantiationService;\n        this.keybindingService = keybindingService;\n        this.commandService = commandService;\n        this.telemetryService = telemetryService;\n        this.dialogService = dialogService;\n        this.commandsHistory = this._register(this.instantiationService.createInstance(CommandsHistory));\n        this.options = options;\n    }\n    async _getPicks(filter, _disposables, token, runOptions) {\n        var _a, _b, _c, _d;\n        // Ask subclass for all command picks\n        const allCommandPicks = await this.getCommandPicks(token);\n        if (token.isCancellationRequested) {\n            return [];\n        }\n        const runTfidf = createSingleCallFunction(() => {\n            const tfidf = new TfIdfCalculator();\n            tfidf.updateDocuments(allCommandPicks.map(commandPick => ({\n                key: commandPick.commandId,\n                textChunks: [this.getTfIdfChunk(commandPick)]\n            })));\n            const result = tfidf.calculateScores(filter, token);\n            return normalizeTfIdfScores(result)\n                .filter(score => score.score > AbstractCommandsQuickAccessProvider_1.TFIDF_THRESHOLD)\n                .slice(0, AbstractCommandsQuickAccessProvider_1.TFIDF_MAX_RESULTS);\n        });\n        // Filter\n        const filteredCommandPicks = [];\n        for (const commandPick of allCommandPicks) {\n            const labelHighlights = (_a = AbstractCommandsQuickAccessProvider_1.WORD_FILTER(filter, commandPick.label)) !== null && _a !== void 0 ? _a : undefined;\n            const aliasHighlights = commandPick.commandAlias ? (_b = AbstractCommandsQuickAccessProvider_1.WORD_FILTER(filter, commandPick.commandAlias)) !== null && _b !== void 0 ? _b : undefined : undefined;\n            // Add if matching in label or alias\n            if (labelHighlights || aliasHighlights) {\n                commandPick.highlights = {\n                    label: labelHighlights,\n                    detail: this.options.showAlias ? aliasHighlights : undefined\n                };\n                filteredCommandPicks.push(commandPick);\n            }\n            // Also add if we have a 100% command ID match\n            else if (filter === commandPick.commandId) {\n                filteredCommandPicks.push(commandPick);\n            }\n            // Handle tf-idf scoring for the rest if there's a filter\n            else if (filter.length >= 3) {\n                const tfidf = runTfidf();\n                if (token.isCancellationRequested) {\n                    return [];\n                }\n                // Add if we have a tf-idf score\n                const tfidfScore = tfidf.find(score => score.key === commandPick.commandId);\n                if (tfidfScore) {\n                    commandPick.tfIdfScore = tfidfScore.score;\n                    filteredCommandPicks.push(commandPick);\n                }\n            }\n        }\n        // Add description to commands that have duplicate labels\n        const mapLabelToCommand = new Map();\n        for (const commandPick of filteredCommandPicks) {\n            const existingCommandForLabel = mapLabelToCommand.get(commandPick.label);\n            if (existingCommandForLabel) {\n                commandPick.description = commandPick.commandId;\n                existingCommandForLabel.description = existingCommandForLabel.commandId;\n            }\n            else {\n                mapLabelToCommand.set(commandPick.label, commandPick);\n            }\n        }\n        // Sort by MRU order and fallback to name otherwise\n        filteredCommandPicks.sort((commandPickA, commandPickB) => {\n            // If a result came from tf-idf, we want to put that towards the bottom\n            if (commandPickA.tfIdfScore && commandPickB.tfIdfScore) {\n                if (commandPickA.tfIdfScore === commandPickB.tfIdfScore) {\n                    return commandPickA.label.localeCompare(commandPickB.label); // prefer lexicographically smaller command\n                }\n                return commandPickB.tfIdfScore - commandPickA.tfIdfScore; // prefer higher tf-idf score\n            }\n            else if (commandPickA.tfIdfScore) {\n                return 1; // first command has a score but other doesn't so other wins\n            }\n            else if (commandPickB.tfIdfScore) {\n                return -1; // other command has a score but first doesn't so first wins\n            }\n            const commandACounter = this.commandsHistory.peek(commandPickA.commandId);\n            const commandBCounter = this.commandsHistory.peek(commandPickB.commandId);\n            if (commandACounter && commandBCounter) {\n                return commandACounter > commandBCounter ? -1 : 1; // use more recently used command before older\n            }\n            if (commandACounter) {\n                return -1; // first command was used, so it wins over the non used one\n            }\n            if (commandBCounter) {\n                return 1; // other command was used so it wins over the command\n            }\n            if (this.options.suggestedCommandIds) {\n                const commandASuggestion = this.options.suggestedCommandIds.has(commandPickA.commandId);\n                const commandBSuggestion = this.options.suggestedCommandIds.has(commandPickB.commandId);\n                if (commandASuggestion && commandBSuggestion) {\n                    return 0; // honor the order of the array\n                }\n                if (commandASuggestion) {\n                    return -1; // first command was suggested, so it wins over the non suggested one\n                }\n                if (commandBSuggestion) {\n                    return 1; // other command was suggested so it wins over the command\n                }\n            }\n            // both commands were never used, so we sort by name\n            return commandPickA.label.localeCompare(commandPickB.label);\n        });\n        const commandPicks = [];\n        let addOtherSeparator = false;\n        let addSuggestedSeparator = true;\n        let addCommonlyUsedSeparator = !!this.options.suggestedCommandIds;\n        for (let i = 0; i < filteredCommandPicks.length; i++) {\n            const commandPick = filteredCommandPicks[i];\n            // Separator: recently used\n            if (i === 0 && this.commandsHistory.peek(commandPick.commandId)) {\n                commandPicks.push({ type: 'separator', label: localize('recentlyUsed', \"recently used\") });\n                addOtherSeparator = true;\n            }\n            if (addSuggestedSeparator && commandPick.tfIdfScore !== undefined) {\n                commandPicks.push({ type: 'separator', label: localize('suggested', \"similar commands\") });\n                addSuggestedSeparator = false;\n            }\n            // Separator: commonly used\n            if (addCommonlyUsedSeparator && commandPick.tfIdfScore === undefined && !this.commandsHistory.peek(commandPick.commandId) && ((_c = this.options.suggestedCommandIds) === null || _c === void 0 ? void 0 : _c.has(commandPick.commandId))) {\n                commandPicks.push({ type: 'separator', label: localize('commonlyUsed', \"commonly used\") });\n                addOtherSeparator = true;\n                addCommonlyUsedSeparator = false;\n            }\n            // Separator: other commands\n            if (addOtherSeparator && commandPick.tfIdfScore === undefined && !this.commandsHistory.peek(commandPick.commandId) && !((_d = this.options.suggestedCommandIds) === null || _d === void 0 ? void 0 : _d.has(commandPick.commandId))) {\n                commandPicks.push({ type: 'separator', label: localize('morecCommands', \"other commands\") });\n                addOtherSeparator = false;\n            }\n            // Command\n            commandPicks.push(this.toCommandPick(commandPick, runOptions));\n        }\n        if (!this.hasAdditionalCommandPicks(filter, token)) {\n            return commandPicks;\n        }\n        return {\n            picks: commandPicks,\n            additionalPicks: (async () => {\n                var _a;\n                const additionalCommandPicks = await this.getAdditionalCommandPicks(allCommandPicks, filteredCommandPicks, filter, token);\n                if (token.isCancellationRequested) {\n                    return [];\n                }\n                const commandPicks = additionalCommandPicks.map(commandPick => this.toCommandPick(commandPick, runOptions));\n                // Basically, if we haven't already added a separator, we add one before the additional picks so long\n                // as one hasn't been added to the start of the array.\n                if (addSuggestedSeparator && ((_a = commandPicks[0]) === null || _a === void 0 ? void 0 : _a.type) !== 'separator') {\n                    commandPicks.unshift({ type: 'separator', label: localize('suggested', \"similar commands\") });\n                }\n                return commandPicks;\n            })()\n        };\n    }\n    toCommandPick(commandPick, runOptions) {\n        if (commandPick.type === 'separator') {\n            return commandPick;\n        }\n        const keybinding = this.keybindingService.lookupKeybinding(commandPick.commandId);\n        const ariaLabel = keybinding ?\n            localize('commandPickAriaLabelWithKeybinding', \"{0}, {1}\", commandPick.label, keybinding.getAriaLabel()) :\n            commandPick.label;\n        return {\n            ...commandPick,\n            ariaLabel,\n            detail: this.options.showAlias && commandPick.commandAlias !== commandPick.label ? commandPick.commandAlias : undefined,\n            keybinding,\n            accept: async () => {\n                var _a, _b;\n                // Add to history\n                this.commandsHistory.push(commandPick.commandId);\n                // Telementry\n                this.telemetryService.publicLog2('workbenchActionExecuted', {\n                    id: commandPick.commandId,\n                    from: (_a = runOptions === null || runOptions === void 0 ? void 0 : runOptions.from) !== null && _a !== void 0 ? _a : 'quick open'\n                });\n                // Run\n                try {\n                    ((_b = commandPick.args) === null || _b === void 0 ? void 0 : _b.length)\n                        ? await this.commandService.executeCommand(commandPick.commandId, ...commandPick.args)\n                        : await this.commandService.executeCommand(commandPick.commandId);\n                }\n                catch (error) {\n                    if (!isCancellationError(error)) {\n                        this.dialogService.error(localize('canNotRun', \"Command '{0}' resulted in an error\", commandPick.label), toErrorMessage(error));\n                    }\n                }\n            }\n        };\n    }\n    // TF-IDF string to be indexed\n    getTfIdfChunk({ label, commandAlias, commandDescription }) {\n        let chunk = label;\n        if (commandAlias && commandAlias !== label) {\n            chunk += ` - ${commandAlias}`;\n        }\n        if (commandDescription && commandDescription.value !== label) {\n            // If the original is the same as the value, don't add it\n            chunk += ` - ${commandDescription.value === commandDescription.original ? commandDescription.value : `${commandDescription.value} (${commandDescription.original})`}`;\n        }\n        return chunk;\n    }\n};\nAbstractCommandsQuickAccessProvider.PREFIX = '>';\nAbstractCommandsQuickAccessProvider.TFIDF_THRESHOLD = 0.5;\nAbstractCommandsQuickAccessProvider.TFIDF_MAX_RESULTS = 5;\nAbstractCommandsQuickAccessProvider.WORD_FILTER = or(matchesPrefix, matchesWords, matchesContiguousSubString);\nAbstractCommandsQuickAccessProvider = AbstractCommandsQuickAccessProvider_1 = __decorate([\n    __param(1, IInstantiationService),\n    __param(2, IKeybindingService),\n    __param(3, ICommandService),\n    __param(4, ITelemetryService),\n    __param(5, IDialogService)\n], AbstractCommandsQuickAccessProvider);\nexport { AbstractCommandsQuickAccessProvider };\nlet CommandsHistory = CommandsHistory_1 = class CommandsHistory extends Disposable {\n    constructor(storageService, configurationService, logService) {\n        super();\n        this.storageService = storageService;\n        this.configurationService = configurationService;\n        this.logService = logService;\n        this.configuredCommandsHistoryLength = 0;\n        this.updateConfiguration();\n        this.load();\n        this.registerListeners();\n    }\n    registerListeners() {\n        this._register(this.configurationService.onDidChangeConfiguration(e => this.updateConfiguration(e)));\n        this._register(this.storageService.onWillSaveState(e => {\n            if (e.reason === WillSaveStateReason.SHUTDOWN) {\n                // Commands history is very dynamic and so we limit impact\n                // on storage to only save on shutdown. This helps reduce\n                // the overhead of syncing this data across machines.\n                this.saveState();\n            }\n        }));\n    }\n    updateConfiguration(e) {\n        if (e && !e.affectsConfiguration('workbench.commandPalette.history')) {\n            return;\n        }\n        this.configuredCommandsHistoryLength = CommandsHistory_1.getConfiguredCommandHistoryLength(this.configurationService);\n        if (CommandsHistory_1.cache && CommandsHistory_1.cache.limit !== this.configuredCommandsHistoryLength) {\n            CommandsHistory_1.cache.limit = this.configuredCommandsHistoryLength;\n            CommandsHistory_1.hasChanges = true;\n        }\n    }\n    load() {\n        const raw = this.storageService.get(CommandsHistory_1.PREF_KEY_CACHE, 0 /* StorageScope.PROFILE */);\n        let serializedCache;\n        if (raw) {\n            try {\n                serializedCache = JSON.parse(raw);\n            }\n            catch (error) {\n                this.logService.error(`[CommandsHistory] invalid data: ${error}`);\n            }\n        }\n        const cache = CommandsHistory_1.cache = new LRUCache(this.configuredCommandsHistoryLength, 1);\n        if (serializedCache) {\n            let entries;\n            if (serializedCache.usesLRU) {\n                entries = serializedCache.entries;\n            }\n            else {\n                entries = serializedCache.entries.sort((a, b) => a.value - b.value);\n            }\n            entries.forEach(entry => cache.set(entry.key, entry.value));\n        }\n        CommandsHistory_1.counter = this.storageService.getNumber(CommandsHistory_1.PREF_KEY_COUNTER, 0 /* StorageScope.PROFILE */, CommandsHistory_1.counter);\n    }\n    push(commandId) {\n        if (!CommandsHistory_1.cache) {\n            return;\n        }\n        CommandsHistory_1.cache.set(commandId, CommandsHistory_1.counter++); // set counter to command\n        CommandsHistory_1.hasChanges = true;\n    }\n    peek(commandId) {\n        var _a;\n        return (_a = CommandsHistory_1.cache) === null || _a === void 0 ? void 0 : _a.peek(commandId);\n    }\n    saveState() {\n        if (!CommandsHistory_1.cache) {\n            return;\n        }\n        if (!CommandsHistory_1.hasChanges) {\n            return;\n        }\n        const serializedCache = { usesLRU: true, entries: [] };\n        CommandsHistory_1.cache.forEach((value, key) => serializedCache.entries.push({ key, value }));\n        this.storageService.store(CommandsHistory_1.PREF_KEY_CACHE, JSON.stringify(serializedCache), 0 /* StorageScope.PROFILE */, 0 /* StorageTarget.USER */);\n        this.storageService.store(CommandsHistory_1.PREF_KEY_COUNTER, CommandsHistory_1.counter, 0 /* StorageScope.PROFILE */, 0 /* StorageTarget.USER */);\n        CommandsHistory_1.hasChanges = false;\n    }\n    static getConfiguredCommandHistoryLength(configurationService) {\n        var _a, _b;\n        const config = configurationService.getValue();\n        const configuredCommandHistoryLength = (_b = (_a = config.workbench) === null || _a === void 0 ? void 0 : _a.commandPalette) === null || _b === void 0 ? void 0 : _b.history;\n        if (typeof configuredCommandHistoryLength === 'number') {\n            return configuredCommandHistoryLength;\n        }\n        return CommandsHistory_1.DEFAULT_COMMANDS_HISTORY_LENGTH;\n    }\n};\nCommandsHistory.DEFAULT_COMMANDS_HISTORY_LENGTH = 50;\nCommandsHistory.PREF_KEY_CACHE = 'commandPalette.mru.cache';\nCommandsHistory.PREF_KEY_COUNTER = 'commandPalette.mru.counter';\nCommandsHistory.counter = 1;\nCommandsHistory.hasChanges = false;\nCommandsHistory = CommandsHistory_1 = __decorate([\n    __param(0, IStorageService),\n    __param(1, IConfigurationService),\n    __param(2, ILogService)\n], CommandsHistory);\nexport { CommandsHistory };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/quickinput/browser/helpQuickAccess.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar HelpQuickAccessProvider_1;\nimport { localize } from '../../../nls.js';\nimport { Registry } from '../../registry/common/platform.js';\nimport { DisposableStore } from '../../../base/common/lifecycle.js';\nimport { IKeybindingService } from '../../keybinding/common/keybinding.js';\nimport { Extensions } from '../common/quickAccess.js';\nimport { IQuickInputService } from '../common/quickInput.js';\nlet HelpQuickAccessProvider = HelpQuickAccessProvider_1 = class HelpQuickAccessProvider {\n    constructor(quickInputService, keybindingService) {\n        this.quickInputService = quickInputService;\n        this.keybindingService = keybindingService;\n        this.registry = Registry.as(Extensions.Quickaccess);\n    }\n    provide(picker) {\n        const disposables = new DisposableStore();\n        // Open a picker with the selected value if picked\n        disposables.add(picker.onDidAccept(() => {\n            const [item] = picker.selectedItems;\n            if (item) {\n                this.quickInputService.quickAccess.show(item.prefix, { preserveValue: true });\n            }\n        }));\n        // Also open a picker when we detect the user typed the exact\n        // name of a provider (e.g. `?term` for terminals)\n        disposables.add(picker.onDidChangeValue(value => {\n            const providerDescriptor = this.registry.getQuickAccessProvider(value.substr(HelpQuickAccessProvider_1.PREFIX.length));\n            if (providerDescriptor && providerDescriptor.prefix && providerDescriptor.prefix !== HelpQuickAccessProvider_1.PREFIX) {\n                this.quickInputService.quickAccess.show(providerDescriptor.prefix, { preserveValue: true });\n            }\n        }));\n        // Fill in all providers\n        picker.items = this.getQuickAccessProviders().filter(p => p.prefix !== HelpQuickAccessProvider_1.PREFIX);\n        return disposables;\n    }\n    getQuickAccessProviders() {\n        const providers = this.registry\n            .getQuickAccessProviders()\n            .sort((providerA, providerB) => providerA.prefix.localeCompare(providerB.prefix))\n            .flatMap(provider => this.createPicks(provider));\n        return providers;\n    }\n    createPicks(provider) {\n        return provider.helpEntries.map(helpEntry => {\n            const prefix = helpEntry.prefix || provider.prefix;\n            const label = prefix || '\\u2026' /* ... */;\n            return {\n                prefix,\n                label,\n                keybinding: helpEntry.commandId ? this.keybindingService.lookupKeybinding(helpEntry.commandId) : undefined,\n                ariaLabel: localize('helpPickAriaLabel', \"{0}, {1}\", label, helpEntry.description),\n                description: helpEntry.description\n            };\n        });\n    }\n};\nHelpQuickAccessProvider.PREFIX = '?';\nHelpQuickAccessProvider = HelpQuickAccessProvider_1 = __decorate([\n    __param(0, IQuickInputService),\n    __param(1, IKeybindingService)\n], HelpQuickAccessProvider);\nexport { HelpQuickAccessProvider };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/quickinput/browser/media/quickInput.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.quick-input-widget {\n\tposition: absolute;\n\twidth: 600px;\n\tz-index: 2550;\n\tleft: 50%;\n\tmargin-left: -300px;\n\t-webkit-app-region: no-drag;\n\tborder-radius: 6px;\n}\n\n.quick-input-titlebar {\n\tdisplay: flex;\n\talign-items: center;\n\tborder-radius: inherit;\n}\n\n.quick-input-left-action-bar {\n\tdisplay: flex;\n\tmargin-left: 4px;\n\tflex: 1;\n}\n\n.quick-input-title {\n\tpadding: 3px 0px;\n\ttext-align: center;\n\ttext-overflow: ellipsis;\n\toverflow: hidden;\n}\n\n.quick-input-right-action-bar {\n\tdisplay: flex;\n\tmargin-right: 4px;\n\tflex: 1;\n}\n\n.quick-input-right-action-bar > .actions-container {\n\tjustify-content: flex-end;\n}\n\n.quick-input-titlebar .monaco-action-bar .action-label.codicon {\n\tbackground-position: center;\n\tbackground-repeat: no-repeat;\n\tpadding: 2px;\n}\n\n.quick-input-description {\n\tmargin: 6px 6px 6px 11px;\n}\n\n.quick-input-header .quick-input-description {\n\tmargin: 4px 2px;\n\tflex: 1;\n}\n\n.quick-input-header {\n\tdisplay: flex;\n\tpadding: 8px 6px 2px 6px;\n}\n\n.quick-input-widget.hidden-input .quick-input-header {\n\t/* reduce margins and paddings when input box hidden */\n\tpadding: 0;\n\tmargin-bottom: 0;\n}\n\n.quick-input-and-message {\n\tdisplay: flex;\n\tflex-direction: column;\n\tflex-grow: 1;\n\tmin-width: 0;\n\tposition: relative;\n}\n\n.quick-input-check-all {\n\talign-self: center;\n\tmargin: 0;\n}\n\n.quick-input-filter {\n\tflex-grow: 1;\n\tdisplay: flex;\n\tposition: relative;\n}\n\n.quick-input-box {\n\tflex-grow: 1;\n}\n\n.quick-input-widget.show-checkboxes .quick-input-box,\n.quick-input-widget.show-checkboxes .quick-input-message {\n\tmargin-left: 5px;\n}\n\n.quick-input-visible-count {\n\tposition: absolute;\n\tleft: -10000px;\n}\n\n.quick-input-count {\n\talign-self: center;\n\tposition: absolute;\n\tright: 4px;\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.quick-input-count .monaco-count-badge {\n\tvertical-align: middle;\n\tpadding: 2px 4px;\n\tborder-radius: 2px;\n\tmin-height: auto;\n\tline-height: normal;\n}\n\n.quick-input-action {\n\tmargin-left: 6px;\n}\n\n.quick-input-action .monaco-text-button {\n\tfont-size: 11px;\n\tpadding: 0 6px;\n\tdisplay: flex;\n\theight: 25px;\n\talign-items: center;\n}\n\n.quick-input-message {\n\tmargin-top: -1px;\n\tpadding: 5px;\n\toverflow-wrap: break-word;\n}\n\n.quick-input-message > .codicon {\n\tmargin: 0 0.2em;\n\tvertical-align: text-bottom;\n}\n\n/* Links in descriptions & validations */\n.quick-input-message a {\n\tcolor: inherit;\n}\n\n.quick-input-progress.monaco-progress-container {\n\tposition: relative;\n}\n\n.quick-input-list {\n\tline-height: 22px;\n}\n\n.quick-input-widget.hidden-input .quick-input-list {\n\tmargin-top: 4px; /* reduce margins when input box hidden */\n\tpadding-bottom: 4px;\n}\n\n.quick-input-list .monaco-list {\n\toverflow: hidden;\n\tmax-height: calc(20 * 22px);\n\tpadding-bottom: 5px;\n}\n\n.quick-input-list .monaco-scrollable-element {\n\tpadding: 0px 5px;\n}\n\n.quick-input-list .quick-input-list-entry {\n\tbox-sizing: border-box;\n\toverflow: hidden;\n\tdisplay: flex;\n\theight: 100%;\n\tpadding: 0 6px;\n}\n\n.quick-input-list .quick-input-list-entry.quick-input-list-separator-border {\n\tborder-top-width: 1px;\n\tborder-top-style: solid;\n}\n\n.quick-input-list .monaco-list-row {\n\tborder-radius: 3px;\n}\n\n.quick-input-list .monaco-list-row[data-index=\"0\"] .quick-input-list-entry.quick-input-list-separator-border {\n\tborder-top-style: none;\n}\n\n.quick-input-list .quick-input-list-label {\n\toverflow: hidden;\n\tdisplay: flex;\n\theight: 100%;\n\tflex: 1;\n}\n\n.quick-input-list .quick-input-list-checkbox {\n\talign-self: center;\n\tmargin: 0;\n}\n\n.quick-input-list .quick-input-list-icon {\n\tbackground-size: 16px;\n\tbackground-position: left center;\n\tbackground-repeat: no-repeat;\n\tpadding-right: 6px;\n\twidth: 16px;\n\theight: 22px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.quick-input-list .quick-input-list-rows {\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\tdisplay: flex;\n\tflex-direction: column;\n\theight: 100%;\n\tflex: 1;\n\tmargin-left: 5px;\n}\n\n.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-rows {\n\tmargin-left: 10px;\n}\n\n.quick-input-widget .quick-input-list .quick-input-list-checkbox {\n\tdisplay: none;\n}\n.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-checkbox {\n\tdisplay: inline;\n}\n\n.quick-input-list .quick-input-list-rows > .quick-input-list-row {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.quick-input-list .quick-input-list-rows > .quick-input-list-row .monaco-icon-label,\n.quick-input-list .quick-input-list-rows > .quick-input-list-row .monaco-icon-label .monaco-icon-label-container > .monaco-icon-name-container {\n\tflex: 1; /* make sure the icon label grows within the row */\n}\n\n.quick-input-list .quick-input-list-rows > .quick-input-list-row .codicon[class*='codicon-'] {\n\tvertical-align: text-bottom;\n}\n\n.quick-input-list .quick-input-list-rows .monaco-highlighted-label > span {\n\topacity: 1;\n}\n\n.quick-input-list .quick-input-list-entry .quick-input-list-entry-keybinding {\n\tmargin-right: 8px; /* separate from the separator label or scrollbar if any */\n}\n\n.quick-input-list .quick-input-list-label-meta {\n\topacity: 0.7;\n\tline-height: normal;\n\ttext-overflow: ellipsis;\n\toverflow: hidden;\n}\n\n/* preserve list-like styling instead of tree-like styling */\n.quick-input-list .monaco-list .monaco-list-row .monaco-highlighted-label .highlight {\n\tfont-weight: bold;\n\tbackground-color: unset;\n\tcolor: var(--vscode-list-highlightForeground) !important;\n}\n\n/* preserve list-like styling instead of tree-like styling */\n.quick-input-list .monaco-list .monaco-list-row.focused .monaco-highlighted-label .highlight {\n\tcolor: var(--vscode-list-focusHighlightForeground) !important;\n}\n\n.quick-input-list .quick-input-list-entry .quick-input-list-separator {\n\tmargin-right: 4px; /* separate from keybindings or actions */\n}\n\n.quick-input-list .quick-input-list-entry-action-bar {\n\tdisplay: flex;\n\tflex: 0;\n\toverflow: visible;\n}\n\n.quick-input-list .quick-input-list-entry-action-bar .action-label {\n\t/*\n\t * By default, actions in the quick input action bar are hidden\n\t * until hovered over them or selected.\n\t */\n\tdisplay: none;\n}\n\n.quick-input-list .quick-input-list-entry-action-bar .action-label.codicon {\n\tmargin-right: 4px;\n\tpadding: 0px 2px 2px 2px;\n}\n\n.quick-input-list .quick-input-list-entry-action-bar {\n\tmargin-top: 1px;\n}\n\n.quick-input-list .quick-input-list-entry-action-bar {\n\tmargin-right: 4px; /* separate from scrollbar */\n}\n\n.quick-input-list .quick-input-list-entry .quick-input-list-entry-action-bar .action-label.always-visible,\n.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .action-label,\n.quick-input-list .quick-input-list-entry.focus-inside .quick-input-list-entry-action-bar .action-label,\n.quick-input-list .monaco-list-row.focused .quick-input-list-entry-action-bar .action-label,\n.quick-input-list .monaco-list-row.passive-focused .quick-input-list-entry-action-bar .action-label {\n\tdisplay: flex;\n}\n\n/* focused items in quick pick */\n.quick-input-list .monaco-list-row.focused .monaco-keybinding-key,\n.quick-input-list .monaco-list-row.focused .quick-input-list-entry .quick-input-list-separator {\n\tcolor: inherit\n}\n.quick-input-list .monaco-list-row.focused .monaco-keybinding-key {\n\tbackground: none;\n}\n\n.quick-input-list .quick-input-list-separator-as-item {\n\tpadding: 4px 6px;\n\tfont-size: 12px;\n}\n\n/* Quick input separators as full-row item */\n.quick-input-list .quick-input-list-separator-as-item .label-name {\n\tfont-weight: 600;\n}\n\n.quick-input-list .quick-input-list-separator-as-item .label-description {\n\t/* Override default description opacity so we don't have a contrast ratio issue. */\n\topacity: 1 !important;\n}\n\n/* Hide border when the item becomes the sticky one */\n.quick-input-list .monaco-tree-sticky-row .quick-input-list-entry.quick-input-list-separator-as-item.quick-input-list-separator-border {\n\tborder-top-style: none;\n}\n\n/* Give sticky row the same padding as the scrollable list */\n.quick-input-list .monaco-tree-sticky-row {\n\tpadding: 0 5px;\n}\n\n/* Hide the twistie containers so that there isn't blank indent */\n.quick-input-list .monaco-tl-twistie {\n\tdisplay: none !important;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/quickinput/browser/pickerQuickAccess.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { timeout } from '../../../base/common/async.js';\nimport { CancellationTokenSource } from '../../../base/common/cancellation.js';\nimport { Disposable, DisposableStore, MutableDisposable } from '../../../base/common/lifecycle.js';\nimport { isFunction } from '../../../base/common/types.js';\nexport var TriggerAction;\n(function (TriggerAction) {\n    /**\n     * Do nothing after the button was clicked.\n     */\n    TriggerAction[TriggerAction[\"NO_ACTION\"] = 0] = \"NO_ACTION\";\n    /**\n     * Close the picker.\n     */\n    TriggerAction[TriggerAction[\"CLOSE_PICKER\"] = 1] = \"CLOSE_PICKER\";\n    /**\n     * Update the results of the picker.\n     */\n    TriggerAction[TriggerAction[\"REFRESH_PICKER\"] = 2] = \"REFRESH_PICKER\";\n    /**\n     * Remove the item from the picker.\n     */\n    TriggerAction[TriggerAction[\"REMOVE_ITEM\"] = 3] = \"REMOVE_ITEM\";\n})(TriggerAction || (TriggerAction = {}));\nfunction isPicksWithActive(obj) {\n    const candidate = obj;\n    return Array.isArray(candidate.items);\n}\nfunction isFastAndSlowPicks(obj) {\n    const candidate = obj;\n    return !!candidate.picks && candidate.additionalPicks instanceof Promise;\n}\nexport class PickerQuickAccessProvider extends Disposable {\n    constructor(prefix, options) {\n        super();\n        this.prefix = prefix;\n        this.options = options;\n    }\n    provide(picker, token, runOptions) {\n        var _a;\n        const disposables = new DisposableStore();\n        // Apply options if any\n        picker.canAcceptInBackground = !!((_a = this.options) === null || _a === void 0 ? void 0 : _a.canAcceptInBackground);\n        // Disable filtering & sorting, we control the results\n        picker.matchOnLabel = picker.matchOnDescription = picker.matchOnDetail = picker.sortByLabel = false;\n        // Set initial picks and update on type\n        let picksCts = undefined;\n        const picksDisposable = disposables.add(new MutableDisposable());\n        const updatePickerItems = async () => {\n            var _a;\n            const picksDisposables = picksDisposable.value = new DisposableStore();\n            // Cancel any previous ask for picks and busy\n            picksCts === null || picksCts === void 0 ? void 0 : picksCts.dispose(true);\n            picker.busy = false;\n            // Create new cancellation source for this run\n            picksCts = new CancellationTokenSource(token);\n            // Collect picks and support both long running and short or combined\n            const picksToken = picksCts.token;\n            let picksFilter = picker.value.substring(this.prefix.length);\n            if (!((_a = this.options) === null || _a === void 0 ? void 0 : _a.shouldSkipTrimPickFilter)) {\n                picksFilter = picksFilter.trim();\n            }\n            const providedPicks = this._getPicks(picksFilter, picksDisposables, picksToken, runOptions);\n            const applyPicks = (picks, skipEmpty) => {\n                var _a;\n                let items;\n                let activeItem = undefined;\n                if (isPicksWithActive(picks)) {\n                    items = picks.items;\n                    activeItem = picks.active;\n                }\n                else {\n                    items = picks;\n                }\n                if (items.length === 0) {\n                    if (skipEmpty) {\n                        return false;\n                    }\n                    // We show the no results pick if we have no input to prevent completely empty pickers #172613\n                    if ((picksFilter.length > 0 || picker.hideInput) && ((_a = this.options) === null || _a === void 0 ? void 0 : _a.noResultsPick)) {\n                        if (isFunction(this.options.noResultsPick)) {\n                            items = [this.options.noResultsPick(picksFilter)];\n                        }\n                        else {\n                            items = [this.options.noResultsPick];\n                        }\n                    }\n                }\n                picker.items = items;\n                if (activeItem) {\n                    picker.activeItems = [activeItem];\n                }\n                return true;\n            };\n            const applyFastAndSlowPicks = async (fastAndSlowPicks) => {\n                let fastPicksApplied = false;\n                let slowPicksApplied = false;\n                await Promise.all([\n                    // Fast Picks: if `mergeDelay` is configured, in order to reduce\n                    // amount of flicker, we race against the slow picks over some delay\n                    // and then set the fast picks.\n                    // If the slow picks are faster, we reduce the flicker by only\n                    // setting the items once.\n                    (async () => {\n                        if (typeof fastAndSlowPicks.mergeDelay === 'number') {\n                            await timeout(fastAndSlowPicks.mergeDelay);\n                            if (picksToken.isCancellationRequested) {\n                                return;\n                            }\n                        }\n                        if (!slowPicksApplied) {\n                            fastPicksApplied = applyPicks(fastAndSlowPicks.picks, true /* skip over empty to reduce flicker */);\n                        }\n                    })(),\n                    // Slow Picks: we await the slow picks and then set them at\n                    // once together with the fast picks, but only if we actually\n                    // have additional results.\n                    (async () => {\n                        picker.busy = true;\n                        try {\n                            const awaitedAdditionalPicks = await fastAndSlowPicks.additionalPicks;\n                            if (picksToken.isCancellationRequested) {\n                                return;\n                            }\n                            let picks;\n                            let activePick = undefined;\n                            if (isPicksWithActive(fastAndSlowPicks.picks)) {\n                                picks = fastAndSlowPicks.picks.items;\n                                activePick = fastAndSlowPicks.picks.active;\n                            }\n                            else {\n                                picks = fastAndSlowPicks.picks;\n                            }\n                            let additionalPicks;\n                            let additionalActivePick = undefined;\n                            if (isPicksWithActive(awaitedAdditionalPicks)) {\n                                additionalPicks = awaitedAdditionalPicks.items;\n                                additionalActivePick = awaitedAdditionalPicks.active;\n                            }\n                            else {\n                                additionalPicks = awaitedAdditionalPicks;\n                            }\n                            if (additionalPicks.length > 0 || !fastPicksApplied) {\n                                // If we do not have any activePick or additionalActivePick\n                                // we try to preserve the currently active pick from the\n                                // fast results. This fixes an issue where the user might\n                                // have made a pick active before the additional results\n                                // kick in.\n                                // See https://github.com/microsoft/vscode/issues/102480\n                                let fallbackActivePick = undefined;\n                                if (!activePick && !additionalActivePick) {\n                                    const fallbackActivePickCandidate = picker.activeItems[0];\n                                    if (fallbackActivePickCandidate && picks.indexOf(fallbackActivePickCandidate) !== -1) {\n                                        fallbackActivePick = fallbackActivePickCandidate;\n                                    }\n                                }\n                                applyPicks({\n                                    items: [...picks, ...additionalPicks],\n                                    active: activePick || additionalActivePick || fallbackActivePick\n                                });\n                            }\n                        }\n                        finally {\n                            if (!picksToken.isCancellationRequested) {\n                                picker.busy = false;\n                            }\n                            slowPicksApplied = true;\n                        }\n                    })()\n                ]);\n            };\n            // No Picks\n            if (providedPicks === null) {\n                // Ignore\n            }\n            // Fast and Slow Picks\n            else if (isFastAndSlowPicks(providedPicks)) {\n                await applyFastAndSlowPicks(providedPicks);\n            }\n            // Fast Picks\n            else if (!(providedPicks instanceof Promise)) {\n                applyPicks(providedPicks);\n            }\n            // Slow Picks\n            else {\n                picker.busy = true;\n                try {\n                    const awaitedPicks = await providedPicks;\n                    if (picksToken.isCancellationRequested) {\n                        return;\n                    }\n                    if (isFastAndSlowPicks(awaitedPicks)) {\n                        await applyFastAndSlowPicks(awaitedPicks);\n                    }\n                    else {\n                        applyPicks(awaitedPicks);\n                    }\n                }\n                finally {\n                    if (!picksToken.isCancellationRequested) {\n                        picker.busy = false;\n                    }\n                }\n            }\n        };\n        disposables.add(picker.onDidChangeValue(() => updatePickerItems()));\n        updatePickerItems();\n        // Accept the pick on accept and hide picker\n        disposables.add(picker.onDidAccept(event => {\n            var _a;\n            if (runOptions === null || runOptions === void 0 ? void 0 : runOptions.handleAccept) {\n                if (!event.inBackground) {\n                    picker.hide(); // hide picker unless we accept in background\n                }\n                (_a = runOptions.handleAccept) === null || _a === void 0 ? void 0 : _a.call(runOptions, picker.activeItems[0]);\n                return;\n            }\n            const [item] = picker.selectedItems;\n            if (typeof (item === null || item === void 0 ? void 0 : item.accept) === 'function') {\n                if (!event.inBackground) {\n                    picker.hide(); // hide picker unless we accept in background\n                }\n                item.accept(picker.keyMods, event);\n            }\n        }));\n        const buttonTrigger = async (button, item) => {\n            var _a, _b;\n            if (typeof item.trigger !== 'function') {\n                return;\n            }\n            const buttonIndex = (_b = (_a = item.buttons) === null || _a === void 0 ? void 0 : _a.indexOf(button)) !== null && _b !== void 0 ? _b : -1;\n            if (buttonIndex >= 0) {\n                const result = item.trigger(buttonIndex, picker.keyMods);\n                const action = (typeof result === 'number') ? result : await result;\n                if (token.isCancellationRequested) {\n                    return;\n                }\n                switch (action) {\n                    case TriggerAction.NO_ACTION:\n                        break;\n                    case TriggerAction.CLOSE_PICKER:\n                        picker.hide();\n                        break;\n                    case TriggerAction.REFRESH_PICKER:\n                        updatePickerItems();\n                        break;\n                    case TriggerAction.REMOVE_ITEM: {\n                        const index = picker.items.indexOf(item);\n                        if (index !== -1) {\n                            const items = picker.items.slice();\n                            const removed = items.splice(index, 1);\n                            const activeItems = picker.activeItems.filter(activeItem => activeItem !== removed[0]);\n                            const keepScrollPositionBefore = picker.keepScrollPosition;\n                            picker.keepScrollPosition = true;\n                            picker.items = items;\n                            if (activeItems) {\n                                picker.activeItems = activeItems;\n                            }\n                            picker.keepScrollPosition = keepScrollPositionBefore;\n                        }\n                        break;\n                    }\n                }\n            }\n        };\n        // Trigger the pick with button index if button triggered\n        disposables.add(picker.onDidTriggerItemButton(({ button, item }) => buttonTrigger(button, item)));\n        disposables.add(picker.onDidTriggerSeparatorButton(({ button, separator }) => buttonTrigger(button, separator)));\n        return disposables;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/quickinput/browser/quickAccess.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { DeferredPromise } from '../../../base/common/async.js';\nimport { CancellationTokenSource } from '../../../base/common/cancellation.js';\nimport { Event } from '../../../base/common/event.js';\nimport { Disposable, DisposableStore, toDisposable } from '../../../base/common/lifecycle.js';\nimport { IInstantiationService } from '../../instantiation/common/instantiation.js';\nimport { DefaultQuickAccessFilterValue, Extensions } from '../common/quickAccess.js';\nimport { IQuickInputService, ItemActivation } from '../common/quickInput.js';\nimport { Registry } from '../../registry/common/platform.js';\nlet QuickAccessController = class QuickAccessController extends Disposable {\n    constructor(quickInputService, instantiationService) {\n        super();\n        this.quickInputService = quickInputService;\n        this.instantiationService = instantiationService;\n        this.registry = Registry.as(Extensions.Quickaccess);\n        this.mapProviderToDescriptor = new Map();\n        this.lastAcceptedPickerValues = new Map();\n        this.visibleQuickAccess = undefined;\n    }\n    show(value = '', options) {\n        this.doShowOrPick(value, false, options);\n    }\n    doShowOrPick(value, pick, options) {\n        var _a, _b, _c, _d;\n        // Find provider for the value to show\n        const [provider, descriptor] = this.getOrInstantiateProvider(value, options === null || options === void 0 ? void 0 : options.enabledProviderPrefixes);\n        // Return early if quick access is already showing on that same prefix\n        const visibleQuickAccess = this.visibleQuickAccess;\n        const visibleDescriptor = visibleQuickAccess === null || visibleQuickAccess === void 0 ? void 0 : visibleQuickAccess.descriptor;\n        if (visibleQuickAccess && descriptor && visibleDescriptor === descriptor) {\n            // Apply value only if it is more specific than the prefix\n            // from the provider and we are not instructed to preserve\n            if (value !== descriptor.prefix && !(options === null || options === void 0 ? void 0 : options.preserveValue)) {\n                visibleQuickAccess.picker.value = value;\n            }\n            // Always adjust selection\n            this.adjustValueSelection(visibleQuickAccess.picker, descriptor, options);\n            return;\n        }\n        // Rewrite the filter value based on certain rules unless disabled\n        if (descriptor && !(options === null || options === void 0 ? void 0 : options.preserveValue)) {\n            let newValue = undefined;\n            // If we have a visible provider with a value, take it's filter value but\n            // rewrite to new provider prefix in case they differ\n            if (visibleQuickAccess && visibleDescriptor && visibleDescriptor !== descriptor) {\n                const newValueCandidateWithoutPrefix = visibleQuickAccess.value.substr(visibleDescriptor.prefix.length);\n                if (newValueCandidateWithoutPrefix) {\n                    newValue = `${descriptor.prefix}${newValueCandidateWithoutPrefix}`;\n                }\n            }\n            // Otherwise, take a default value as instructed\n            if (!newValue) {\n                const defaultFilterValue = provider === null || provider === void 0 ? void 0 : provider.defaultFilterValue;\n                if (defaultFilterValue === DefaultQuickAccessFilterValue.LAST) {\n                    newValue = this.lastAcceptedPickerValues.get(descriptor);\n                }\n                else if (typeof defaultFilterValue === 'string') {\n                    newValue = `${descriptor.prefix}${defaultFilterValue}`;\n                }\n            }\n            if (typeof newValue === 'string') {\n                value = newValue;\n            }\n        }\n        // Store the existing selection if there was one.\n        const visibleSelection = (_a = visibleQuickAccess === null || visibleQuickAccess === void 0 ? void 0 : visibleQuickAccess.picker) === null || _a === void 0 ? void 0 : _a.valueSelection;\n        const visibleValue = (_b = visibleQuickAccess === null || visibleQuickAccess === void 0 ? void 0 : visibleQuickAccess.picker) === null || _b === void 0 ? void 0 : _b.value;\n        // Create a picker for the provider to use with the initial value\n        // and adjust the filtering to exclude the prefix from filtering\n        const disposables = new DisposableStore();\n        const picker = disposables.add(this.quickInputService.createQuickPick());\n        picker.value = value;\n        this.adjustValueSelection(picker, descriptor, options);\n        picker.placeholder = (_c = options === null || options === void 0 ? void 0 : options.placeholder) !== null && _c !== void 0 ? _c : descriptor === null || descriptor === void 0 ? void 0 : descriptor.placeholder;\n        picker.quickNavigate = options === null || options === void 0 ? void 0 : options.quickNavigateConfiguration;\n        picker.hideInput = !!picker.quickNavigate && !visibleQuickAccess; // only hide input if there was no picker opened already\n        if (typeof (options === null || options === void 0 ? void 0 : options.itemActivation) === 'number' || (options === null || options === void 0 ? void 0 : options.quickNavigateConfiguration)) {\n            picker.itemActivation = (_d = options === null || options === void 0 ? void 0 : options.itemActivation) !== null && _d !== void 0 ? _d : ItemActivation.SECOND /* quick nav is always second */;\n        }\n        picker.contextKey = descriptor === null || descriptor === void 0 ? void 0 : descriptor.contextKey;\n        picker.filterValue = (value) => value.substring(descriptor ? descriptor.prefix.length : 0);\n        // Pick mode: setup a promise that can be resolved\n        // with the selected items and prevent execution\n        let pickPromise = undefined;\n        if (pick) {\n            pickPromise = new DeferredPromise();\n            disposables.add(Event.once(picker.onWillAccept)(e => {\n                e.veto();\n                picker.hide();\n            }));\n        }\n        // Register listeners\n        disposables.add(this.registerPickerListeners(picker, provider, descriptor, value, options));\n        // Ask provider to fill the picker as needed if we have one\n        // and pass over a cancellation token that will indicate when\n        // the picker is hiding without a pick being made.\n        const cts = disposables.add(new CancellationTokenSource());\n        if (provider) {\n            disposables.add(provider.provide(picker, cts.token, options === null || options === void 0 ? void 0 : options.providerOptions));\n        }\n        // Finally, trigger disposal and cancellation when the picker\n        // hides depending on items selected or not.\n        Event.once(picker.onDidHide)(() => {\n            if (picker.selectedItems.length === 0) {\n                cts.cancel();\n            }\n            // Start to dispose once picker hides\n            disposables.dispose();\n            // Resolve pick promise with selected items\n            pickPromise === null || pickPromise === void 0 ? void 0 : pickPromise.complete(picker.selectedItems.slice(0));\n        });\n        // Finally, show the picker. This is important because a provider\n        // may not call this and then our disposables would leak that rely\n        // on the onDidHide event.\n        picker.show();\n        // If the previous picker had a selection and the value is unchanged, we should set that in the new picker.\n        if (visibleSelection && visibleValue === value) {\n            picker.valueSelection = visibleSelection;\n        }\n        // Pick mode: return with promise\n        if (pick) {\n            return pickPromise === null || pickPromise === void 0 ? void 0 : pickPromise.p;\n        }\n    }\n    adjustValueSelection(picker, descriptor, options) {\n        var _a;\n        let valueSelection;\n        // Preserve: just always put the cursor at the end\n        if (options === null || options === void 0 ? void 0 : options.preserveValue) {\n            valueSelection = [picker.value.length, picker.value.length];\n        }\n        // Otherwise: select the value up until the prefix\n        else {\n            valueSelection = [(_a = descriptor === null || descriptor === void 0 ? void 0 : descriptor.prefix.length) !== null && _a !== void 0 ? _a : 0, picker.value.length];\n        }\n        picker.valueSelection = valueSelection;\n    }\n    registerPickerListeners(picker, provider, descriptor, value, options) {\n        const disposables = new DisposableStore();\n        // Remember as last visible picker and clean up once picker get's disposed\n        const visibleQuickAccess = this.visibleQuickAccess = { picker, descriptor, value };\n        disposables.add(toDisposable(() => {\n            if (visibleQuickAccess === this.visibleQuickAccess) {\n                this.visibleQuickAccess = undefined;\n            }\n        }));\n        // Whenever the value changes, check if the provider has\n        // changed and if so - re-create the picker from the beginning\n        disposables.add(picker.onDidChangeValue(value => {\n            const [providerForValue] = this.getOrInstantiateProvider(value, options === null || options === void 0 ? void 0 : options.enabledProviderPrefixes);\n            if (providerForValue !== provider) {\n                this.show(value, {\n                    enabledProviderPrefixes: options === null || options === void 0 ? void 0 : options.enabledProviderPrefixes,\n                    // do not rewrite value from user typing!\n                    preserveValue: true,\n                    // persist the value of the providerOptions from the original showing\n                    providerOptions: options === null || options === void 0 ? void 0 : options.providerOptions\n                });\n            }\n            else {\n                visibleQuickAccess.value = value; // remember the value in our visible one\n            }\n        }));\n        // Remember picker input for future use when accepting\n        if (descriptor) {\n            disposables.add(picker.onDidAccept(() => {\n                this.lastAcceptedPickerValues.set(descriptor, picker.value);\n            }));\n        }\n        return disposables;\n    }\n    getOrInstantiateProvider(value, enabledProviderPrefixes) {\n        const providerDescriptor = this.registry.getQuickAccessProvider(value);\n        if (!providerDescriptor || enabledProviderPrefixes && !(enabledProviderPrefixes === null || enabledProviderPrefixes === void 0 ? void 0 : enabledProviderPrefixes.includes(providerDescriptor.prefix))) {\n            return [undefined, undefined];\n        }\n        let provider = this.mapProviderToDescriptor.get(providerDescriptor);\n        if (!provider) {\n            provider = this.instantiationService.createInstance(providerDescriptor.ctor);\n            this.mapProviderToDescriptor.set(providerDescriptor, provider);\n        }\n        return [provider, providerDescriptor];\n    }\n};\nQuickAccessController = __decorate([\n    __param(0, IQuickInputService),\n    __param(1, IInstantiationService)\n], QuickAccessController);\nexport { QuickAccessController };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/quickinput/browser/quickInput.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport * as dom from '../../../base/browser/dom.js';\nimport { StandardKeyboardEvent } from '../../../base/browser/keyboardEvent.js';\nimport { Toggle } from '../../../base/browser/ui/toggle/toggle.js';\nimport { equals } from '../../../base/common/arrays.js';\nimport { TimeoutTimer } from '../../../base/common/async.js';\nimport { Codicon } from '../../../base/common/codicons.js';\nimport { Emitter, EventBufferer } from '../../../base/common/event.js';\nimport { Disposable, DisposableStore } from '../../../base/common/lifecycle.js';\nimport { isIOS } from '../../../base/common/platform.js';\nimport Severity from '../../../base/common/severity.js';\nimport { ThemeIcon } from '../../../base/common/themables.js';\nimport './media/quickInput.css';\nimport { localize } from '../../../nls.js';\nimport { ItemActivation, NO_KEY_MODS, QuickInputHideReason } from '../common/quickInput.js';\nimport { quickInputButtonToAction, renderQuickInputDescription } from './quickInputUtils.js';\nimport { IConfigurationService } from '../../configuration/common/configuration.js';\nimport { IHoverService, WorkbenchHoverDelegate } from '../../hover/browser/hover.js';\nimport { QuickPickFocus } from '../common/quickInput.js';\nimport { ContextKeyExpr, RawContextKey } from '../../contextkey/common/contextkey.js';\nexport const inQuickInputContextKeyValue = 'inQuickInput';\nexport const InQuickInputContextKey = new RawContextKey(inQuickInputContextKeyValue, false, localize('inQuickInput', \"Whether keyboard focus is inside the quick input control\"));\nexport const inQuickInputContext = ContextKeyExpr.has(inQuickInputContextKeyValue);\nexport const quickInputTypeContextKeyValue = 'quickInputType';\nexport const QuickInputTypeContextKey = new RawContextKey(quickInputTypeContextKeyValue, undefined, localize('quickInputType', \"The type of the currently visible quick input\"));\nexport const endOfQuickInputBoxContextKeyValue = 'cursorAtEndOfQuickInputBox';\nexport const EndOfQuickInputBoxContextKey = new RawContextKey(endOfQuickInputBoxContextKeyValue, false, localize('cursorAtEndOfQuickInputBox', \"Whether the cursor in the quick input is at the end of the input box\"));\nexport const endOfQuickInputBoxContext = ContextKeyExpr.has(endOfQuickInputBoxContextKeyValue);\nexport const backButton = {\n    iconClass: ThemeIcon.asClassName(Codicon.quickInputBack),\n    tooltip: localize('quickInput.back', \"Back\"),\n    handle: -1 // TODO\n};\nclass QuickInput extends Disposable {\n    constructor(ui) {\n        super();\n        this.ui = ui;\n        this._widgetUpdated = false;\n        this.visible = false;\n        this._enabled = true;\n        this._busy = false;\n        this._ignoreFocusOut = false;\n        this._buttons = [];\n        this.buttonsUpdated = false;\n        this._toggles = [];\n        this.togglesUpdated = false;\n        this.noValidationMessage = QuickInput.noPromptMessage;\n        this._severity = Severity.Ignore;\n        this.onDidTriggerButtonEmitter = this._register(new Emitter());\n        this.onDidHideEmitter = this._register(new Emitter());\n        this.onWillHideEmitter = this._register(new Emitter());\n        this.onDisposeEmitter = this._register(new Emitter());\n        this.visibleDisposables = this._register(new DisposableStore());\n        this.onDidHide = this.onDidHideEmitter.event;\n    }\n    get title() {\n        return this._title;\n    }\n    set title(title) {\n        this._title = title;\n        this.update();\n    }\n    get description() {\n        return this._description;\n    }\n    set description(description) {\n        this._description = description;\n        this.update();\n    }\n    get step() {\n        return this._steps;\n    }\n    set step(step) {\n        this._steps = step;\n        this.update();\n    }\n    get totalSteps() {\n        return this._totalSteps;\n    }\n    set totalSteps(totalSteps) {\n        this._totalSteps = totalSteps;\n        this.update();\n    }\n    get enabled() {\n        return this._enabled;\n    }\n    set enabled(enabled) {\n        this._enabled = enabled;\n        this.update();\n    }\n    get contextKey() {\n        return this._contextKey;\n    }\n    set contextKey(contextKey) {\n        this._contextKey = contextKey;\n        this.update();\n    }\n    get busy() {\n        return this._busy;\n    }\n    set busy(busy) {\n        this._busy = busy;\n        this.update();\n    }\n    get ignoreFocusOut() {\n        return this._ignoreFocusOut;\n    }\n    set ignoreFocusOut(ignoreFocusOut) {\n        const shouldUpdate = this._ignoreFocusOut !== ignoreFocusOut && !isIOS;\n        this._ignoreFocusOut = ignoreFocusOut && !isIOS;\n        if (shouldUpdate) {\n            this.update();\n        }\n    }\n    get buttons() {\n        return this._buttons;\n    }\n    set buttons(buttons) {\n        this._buttons = buttons;\n        this.buttonsUpdated = true;\n        this.update();\n    }\n    get toggles() {\n        return this._toggles;\n    }\n    set toggles(toggles) {\n        this._toggles = toggles !== null && toggles !== void 0 ? toggles : [];\n        this.togglesUpdated = true;\n        this.update();\n    }\n    get validationMessage() {\n        return this._validationMessage;\n    }\n    set validationMessage(validationMessage) {\n        this._validationMessage = validationMessage;\n        this.update();\n    }\n    get severity() {\n        return this._severity;\n    }\n    set severity(severity) {\n        this._severity = severity;\n        this.update();\n    }\n    show() {\n        if (this.visible) {\n            return;\n        }\n        this.visibleDisposables.add(this.ui.onDidTriggerButton(button => {\n            if (this.buttons.indexOf(button) !== -1) {\n                this.onDidTriggerButtonEmitter.fire(button);\n            }\n        }));\n        this.ui.show(this);\n        // update properties in the controller that get reset in the ui.show() call\n        this.visible = true;\n        // This ensures the message/prompt gets rendered\n        this._lastValidationMessage = undefined;\n        // This ensures the input box has the right severity applied\n        this._lastSeverity = undefined;\n        if (this.buttons.length) {\n            // if there are buttons, the ui.show() clears them out of the UI so we should\n            // rerender them.\n            this.buttonsUpdated = true;\n        }\n        if (this.toggles.length) {\n            // if there are toggles, the ui.show() clears them out of the UI so we should\n            // rerender them.\n            this.togglesUpdated = true;\n        }\n        this.update();\n    }\n    hide() {\n        if (!this.visible) {\n            return;\n        }\n        this.ui.hide();\n    }\n    didHide(reason = QuickInputHideReason.Other) {\n        this.visible = false;\n        this.visibleDisposables.clear();\n        this.onDidHideEmitter.fire({ reason });\n    }\n    willHide(reason = QuickInputHideReason.Other) {\n        this.onWillHideEmitter.fire({ reason });\n    }\n    update() {\n        var _a, _b;\n        if (!this.visible) {\n            return;\n        }\n        const title = this.getTitle();\n        if (title && this.ui.title.textContent !== title) {\n            this.ui.title.textContent = title;\n        }\n        else if (!title && this.ui.title.innerHTML !== '&nbsp;') {\n            this.ui.title.innerText = '\\u00a0';\n        }\n        const description = this.getDescription();\n        if (this.ui.description1.textContent !== description) {\n            this.ui.description1.textContent = description;\n        }\n        if (this.ui.description2.textContent !== description) {\n            this.ui.description2.textContent = description;\n        }\n        if (this._widgetUpdated) {\n            this._widgetUpdated = false;\n            if (this._widget) {\n                dom.reset(this.ui.widget, this._widget);\n            }\n            else {\n                dom.reset(this.ui.widget);\n            }\n        }\n        if (this.busy && !this.busyDelay) {\n            this.busyDelay = new TimeoutTimer();\n            this.busyDelay.setIfNotSet(() => {\n                if (this.visible) {\n                    this.ui.progressBar.infinite();\n                }\n            }, 800);\n        }\n        if (!this.busy && this.busyDelay) {\n            this.ui.progressBar.stop();\n            this.busyDelay.cancel();\n            this.busyDelay = undefined;\n        }\n        if (this.buttonsUpdated) {\n            this.buttonsUpdated = false;\n            this.ui.leftActionBar.clear();\n            const leftButtons = this.buttons\n                .filter(button => button === backButton)\n                .map((button, index) => quickInputButtonToAction(button, `id-${index}`, async () => this.onDidTriggerButtonEmitter.fire(button)));\n            this.ui.leftActionBar.push(leftButtons, { icon: true, label: false });\n            this.ui.rightActionBar.clear();\n            const rightButtons = this.buttons\n                .filter(button => button !== backButton)\n                .map((button, index) => quickInputButtonToAction(button, `id-${index}`, async () => this.onDidTriggerButtonEmitter.fire(button)));\n            this.ui.rightActionBar.push(rightButtons, { icon: true, label: false });\n        }\n        if (this.togglesUpdated) {\n            this.togglesUpdated = false;\n            // HACK: Filter out toggles here that are not concrete Toggle objects. This is to workaround\n            // a layering issue as quick input's interface is in common but Toggle is in browser and\n            // it requires a HTMLElement on its interface\n            const concreteToggles = (_b = (_a = this.toggles) === null || _a === void 0 ? void 0 : _a.filter(opts => opts instanceof Toggle)) !== null && _b !== void 0 ? _b : [];\n            this.ui.inputBox.toggles = concreteToggles;\n        }\n        this.ui.ignoreFocusOut = this.ignoreFocusOut;\n        this.ui.setEnabled(this.enabled);\n        this.ui.setContextKey(this.contextKey);\n        const validationMessage = this.validationMessage || this.noValidationMessage;\n        if (this._lastValidationMessage !== validationMessage) {\n            this._lastValidationMessage = validationMessage;\n            dom.reset(this.ui.message);\n            renderQuickInputDescription(validationMessage, this.ui.message, {\n                callback: (content) => {\n                    this.ui.linkOpenerDelegate(content);\n                },\n                disposables: this.visibleDisposables,\n            });\n        }\n        if (this._lastSeverity !== this.severity) {\n            this._lastSeverity = this.severity;\n            this.showMessageDecoration(this.severity);\n        }\n    }\n    getTitle() {\n        if (this.title && this.step) {\n            return `${this.title} (${this.getSteps()})`;\n        }\n        if (this.title) {\n            return this.title;\n        }\n        if (this.step) {\n            return this.getSteps();\n        }\n        return '';\n    }\n    getDescription() {\n        return this.description || '';\n    }\n    getSteps() {\n        if (this.step && this.totalSteps) {\n            return localize('quickInput.steps', \"{0}/{1}\", this.step, this.totalSteps);\n        }\n        if (this.step) {\n            return String(this.step);\n        }\n        return '';\n    }\n    showMessageDecoration(severity) {\n        this.ui.inputBox.showDecoration(severity);\n        if (severity !== Severity.Ignore) {\n            const styles = this.ui.inputBox.stylesForType(severity);\n            this.ui.message.style.color = styles.foreground ? `${styles.foreground}` : '';\n            this.ui.message.style.backgroundColor = styles.background ? `${styles.background}` : '';\n            this.ui.message.style.border = styles.border ? `1px solid ${styles.border}` : '';\n            this.ui.message.style.marginBottom = '-2px';\n        }\n        else {\n            this.ui.message.style.color = '';\n            this.ui.message.style.backgroundColor = '';\n            this.ui.message.style.border = '';\n            this.ui.message.style.marginBottom = '';\n        }\n    }\n    dispose() {\n        this.hide();\n        this.onDisposeEmitter.fire();\n        super.dispose();\n    }\n}\nQuickInput.noPromptMessage = localize('inputModeEntry', \"Press 'Enter' to confirm your input or 'Escape' to cancel\");\nexport class QuickPick extends QuickInput {\n    constructor() {\n        super(...arguments);\n        this._value = '';\n        this.onDidChangeValueEmitter = this._register(new Emitter());\n        this.onWillAcceptEmitter = this._register(new Emitter());\n        this.onDidAcceptEmitter = this._register(new Emitter());\n        this.onDidCustomEmitter = this._register(new Emitter());\n        this._items = [];\n        this.itemsUpdated = false;\n        this._canSelectMany = false;\n        this._canAcceptInBackground = false;\n        this._matchOnDescription = false;\n        this._matchOnDetail = false;\n        this._matchOnLabel = true;\n        this._matchOnLabelMode = 'fuzzy';\n        this._sortByLabel = true;\n        this._keepScrollPosition = false;\n        this._itemActivation = ItemActivation.FIRST;\n        this._activeItems = [];\n        this.activeItemsUpdated = false;\n        this.activeItemsToConfirm = [];\n        this.onDidChangeActiveEmitter = this._register(new Emitter());\n        this._selectedItems = [];\n        this.selectedItemsUpdated = false;\n        this.selectedItemsToConfirm = [];\n        this.onDidChangeSelectionEmitter = this._register(new Emitter());\n        this.onDidTriggerItemButtonEmitter = this._register(new Emitter());\n        this.onDidTriggerSeparatorButtonEmitter = this._register(new Emitter());\n        this.valueSelectionUpdated = true;\n        this._ok = 'default';\n        this._customButton = false;\n        this._focusEventBufferer = new EventBufferer();\n        this.type = \"quickPick\" /* QuickInputType.QuickPick */;\n        this.filterValue = (value) => value;\n        this.onDidChangeValue = this.onDidChangeValueEmitter.event;\n        this.onWillAccept = this.onWillAcceptEmitter.event;\n        this.onDidAccept = this.onDidAcceptEmitter.event;\n        this.onDidChangeActive = this.onDidChangeActiveEmitter.event;\n        this.onDidChangeSelection = this.onDidChangeSelectionEmitter.event;\n        this.onDidTriggerItemButton = this.onDidTriggerItemButtonEmitter.event;\n        this.onDidTriggerSeparatorButton = this.onDidTriggerSeparatorButtonEmitter.event;\n    }\n    get quickNavigate() {\n        return this._quickNavigate;\n    }\n    set quickNavigate(quickNavigate) {\n        this._quickNavigate = quickNavigate;\n        this.update();\n    }\n    get value() {\n        return this._value;\n    }\n    set value(value) {\n        this.doSetValue(value);\n    }\n    doSetValue(value, skipUpdate) {\n        if (this._value !== value) {\n            this._value = value;\n            if (!skipUpdate) {\n                this.update();\n            }\n            if (this.visible) {\n                const didFilter = this.ui.list.filter(this.filterValue(this._value));\n                if (didFilter) {\n                    this.trySelectFirst();\n                }\n            }\n            this.onDidChangeValueEmitter.fire(this._value);\n        }\n    }\n    set ariaLabel(ariaLabel) {\n        this._ariaLabel = ariaLabel;\n        this.update();\n    }\n    get ariaLabel() {\n        return this._ariaLabel;\n    }\n    get placeholder() {\n        return this._placeholder;\n    }\n    set placeholder(placeholder) {\n        this._placeholder = placeholder;\n        this.update();\n    }\n    get items() {\n        return this._items;\n    }\n    get scrollTop() {\n        return this.ui.list.scrollTop;\n    }\n    set scrollTop(scrollTop) {\n        this.ui.list.scrollTop = scrollTop;\n    }\n    set items(items) {\n        this._items = items;\n        this.itemsUpdated = true;\n        this.update();\n    }\n    get canSelectMany() {\n        return this._canSelectMany;\n    }\n    set canSelectMany(canSelectMany) {\n        this._canSelectMany = canSelectMany;\n        this.update();\n    }\n    get canAcceptInBackground() {\n        return this._canAcceptInBackground;\n    }\n    set canAcceptInBackground(canAcceptInBackground) {\n        this._canAcceptInBackground = canAcceptInBackground;\n    }\n    get matchOnDescription() {\n        return this._matchOnDescription;\n    }\n    set matchOnDescription(matchOnDescription) {\n        this._matchOnDescription = matchOnDescription;\n        this.update();\n    }\n    get matchOnDetail() {\n        return this._matchOnDetail;\n    }\n    set matchOnDetail(matchOnDetail) {\n        this._matchOnDetail = matchOnDetail;\n        this.update();\n    }\n    get matchOnLabel() {\n        return this._matchOnLabel;\n    }\n    set matchOnLabel(matchOnLabel) {\n        this._matchOnLabel = matchOnLabel;\n        this.update();\n    }\n    get matchOnLabelMode() {\n        return this._matchOnLabelMode;\n    }\n    set matchOnLabelMode(matchOnLabelMode) {\n        this._matchOnLabelMode = matchOnLabelMode;\n        this.update();\n    }\n    get sortByLabel() {\n        return this._sortByLabel;\n    }\n    set sortByLabel(sortByLabel) {\n        this._sortByLabel = sortByLabel;\n        this.update();\n    }\n    get keepScrollPosition() {\n        return this._keepScrollPosition;\n    }\n    set keepScrollPosition(keepScrollPosition) {\n        this._keepScrollPosition = keepScrollPosition;\n    }\n    get itemActivation() {\n        return this._itemActivation;\n    }\n    set itemActivation(itemActivation) {\n        this._itemActivation = itemActivation;\n    }\n    get activeItems() {\n        return this._activeItems;\n    }\n    set activeItems(activeItems) {\n        this._activeItems = activeItems;\n        this.activeItemsUpdated = true;\n        this.update();\n    }\n    get selectedItems() {\n        return this._selectedItems;\n    }\n    set selectedItems(selectedItems) {\n        this._selectedItems = selectedItems;\n        this.selectedItemsUpdated = true;\n        this.update();\n    }\n    get keyMods() {\n        if (this._quickNavigate) {\n            // Disable keyMods when quick navigate is enabled\n            // because in this model the interaction is purely\n            // keyboard driven and Ctrl/Alt are typically\n            // pressed and hold during this interaction.\n            return NO_KEY_MODS;\n        }\n        return this.ui.keyMods;\n    }\n    get valueSelection() {\n        const selection = this.ui.inputBox.getSelection();\n        if (!selection) {\n            return undefined;\n        }\n        return [selection.start, selection.end];\n    }\n    set valueSelection(valueSelection) {\n        this._valueSelection = valueSelection;\n        this.valueSelectionUpdated = true;\n        this.update();\n    }\n    get customButton() {\n        return this._customButton;\n    }\n    set customButton(showCustomButton) {\n        this._customButton = showCustomButton;\n        this.update();\n    }\n    get customLabel() {\n        return this._customButtonLabel;\n    }\n    set customLabel(label) {\n        this._customButtonLabel = label;\n        this.update();\n    }\n    get customHover() {\n        return this._customButtonHover;\n    }\n    set customHover(hover) {\n        this._customButtonHover = hover;\n        this.update();\n    }\n    get ok() {\n        return this._ok;\n    }\n    set ok(showOkButton) {\n        this._ok = showOkButton;\n        this.update();\n    }\n    get hideInput() {\n        return !!this._hideInput;\n    }\n    set hideInput(hideInput) {\n        this._hideInput = hideInput;\n        this.update();\n    }\n    trySelectFirst() {\n        if (!this.canSelectMany) {\n            this.ui.list.focus(QuickPickFocus.First);\n        }\n    }\n    show() {\n        if (!this.visible) {\n            this.visibleDisposables.add(this.ui.inputBox.onDidChange(value => {\n                this.doSetValue(value, true /* skip update since this originates from the UI */);\n            }));\n            this.visibleDisposables.add(this.ui.onDidAccept(() => {\n                if (this.canSelectMany) {\n                    // if there are no checked elements, it means that an onDidChangeSelection never fired to overwrite\n                    // `_selectedItems`. In that case, we should emit one with an empty array to ensure that\n                    // `.selectedItems` is up to date.\n                    if (!this.ui.list.getCheckedElements().length) {\n                        this._selectedItems = [];\n                        this.onDidChangeSelectionEmitter.fire(this.selectedItems);\n                    }\n                }\n                else if (this.activeItems[0]) {\n                    // For single-select, we set `selectedItems` to the item that was accepted.\n                    this._selectedItems = [this.activeItems[0]];\n                    this.onDidChangeSelectionEmitter.fire(this.selectedItems);\n                }\n                this.handleAccept(false);\n            }));\n            this.visibleDisposables.add(this.ui.onDidCustom(() => {\n                this.onDidCustomEmitter.fire();\n            }));\n            this.visibleDisposables.add(this._focusEventBufferer.wrapEvent(this.ui.list.onDidChangeFocus, \n            // Only fire the last event\n            (_, e) => e)(focusedItems => {\n                if (this.activeItemsUpdated) {\n                    return; // Expect another event.\n                }\n                if (this.activeItemsToConfirm !== this._activeItems && equals(focusedItems, this._activeItems, (a, b) => a === b)) {\n                    return;\n                }\n                this._activeItems = focusedItems;\n                this.onDidChangeActiveEmitter.fire(focusedItems);\n            }));\n            this.visibleDisposables.add(this.ui.list.onDidChangeSelection(({ items: selectedItems, event }) => {\n                if (this.canSelectMany) {\n                    if (selectedItems.length) {\n                        this.ui.list.setSelectedElements([]);\n                    }\n                    return;\n                }\n                if (this.selectedItemsToConfirm !== this._selectedItems && equals(selectedItems, this._selectedItems, (a, b) => a === b)) {\n                    return;\n                }\n                this._selectedItems = selectedItems;\n                this.onDidChangeSelectionEmitter.fire(selectedItems);\n                if (selectedItems.length) {\n                    this.handleAccept(dom.isMouseEvent(event) && event.button === 1 /* mouse middle click */);\n                }\n            }));\n            this.visibleDisposables.add(this.ui.list.onChangedCheckedElements(checkedItems => {\n                if (!this.canSelectMany) {\n                    return;\n                }\n                if (this.selectedItemsToConfirm !== this._selectedItems && equals(checkedItems, this._selectedItems, (a, b) => a === b)) {\n                    return;\n                }\n                this._selectedItems = checkedItems;\n                this.onDidChangeSelectionEmitter.fire(checkedItems);\n            }));\n            this.visibleDisposables.add(this.ui.list.onButtonTriggered(event => this.onDidTriggerItemButtonEmitter.fire(event)));\n            this.visibleDisposables.add(this.ui.list.onSeparatorButtonTriggered(event => this.onDidTriggerSeparatorButtonEmitter.fire(event)));\n            this.visibleDisposables.add(this.registerQuickNavigation());\n            this.valueSelectionUpdated = true;\n        }\n        super.show(); // TODO: Why have show() bubble up while update() trickles down?\n    }\n    handleAccept(inBackground) {\n        // Figure out veto via `onWillAccept` event\n        let veto = false;\n        this.onWillAcceptEmitter.fire({ veto: () => veto = true });\n        // Continue with `onDidAccept` if no veto\n        if (!veto) {\n            this.onDidAcceptEmitter.fire({ inBackground });\n        }\n    }\n    registerQuickNavigation() {\n        return dom.addDisposableListener(this.ui.container, dom.EventType.KEY_UP, e => {\n            if (this.canSelectMany || !this._quickNavigate) {\n                return;\n            }\n            const keyboardEvent = new StandardKeyboardEvent(e);\n            const keyCode = keyboardEvent.keyCode;\n            // Select element when keys are pressed that signal it\n            const quickNavKeys = this._quickNavigate.keybindings;\n            const wasTriggerKeyPressed = quickNavKeys.some(k => {\n                const chords = k.getChords();\n                if (chords.length > 1) {\n                    return false;\n                }\n                if (chords[0].shiftKey && keyCode === 4 /* KeyCode.Shift */) {\n                    if (keyboardEvent.ctrlKey || keyboardEvent.altKey || keyboardEvent.metaKey) {\n                        return false; // this is an optimistic check for the shift key being used to navigate back in quick input\n                    }\n                    return true;\n                }\n                if (chords[0].altKey && keyCode === 6 /* KeyCode.Alt */) {\n                    return true;\n                }\n                if (chords[0].ctrlKey && keyCode === 5 /* KeyCode.Ctrl */) {\n                    return true;\n                }\n                if (chords[0].metaKey && keyCode === 57 /* KeyCode.Meta */) {\n                    return true;\n                }\n                return false;\n            });\n            if (wasTriggerKeyPressed) {\n                if (this.activeItems[0]) {\n                    this._selectedItems = [this.activeItems[0]];\n                    this.onDidChangeSelectionEmitter.fire(this.selectedItems);\n                    this.handleAccept(false);\n                }\n                // Unset quick navigate after press. It is only valid once\n                // and should not result in any behaviour change afterwards\n                // if the picker remains open because there was no active item\n                this._quickNavigate = undefined;\n            }\n        });\n    }\n    update() {\n        if (!this.visible) {\n            return;\n        }\n        // store the scrollTop before it is reset\n        const scrollTopBefore = this.keepScrollPosition ? this.scrollTop : 0;\n        const hasDescription = !!this.description;\n        const visibilities = {\n            title: !!this.title || !!this.step || !!this.buttons.length,\n            description: hasDescription,\n            checkAll: this.canSelectMany && !this._hideCheckAll,\n            checkBox: this.canSelectMany,\n            inputBox: !this._hideInput,\n            progressBar: !this._hideInput || hasDescription,\n            visibleCount: true,\n            count: this.canSelectMany && !this._hideCountBadge,\n            ok: this.ok === 'default' ? this.canSelectMany : this.ok,\n            list: true,\n            message: !!this.validationMessage,\n            customButton: this.customButton\n        };\n        this.ui.setVisibilities(visibilities);\n        super.update();\n        if (this.ui.inputBox.value !== this.value) {\n            this.ui.inputBox.value = this.value;\n        }\n        if (this.valueSelectionUpdated) {\n            this.valueSelectionUpdated = false;\n            this.ui.inputBox.select(this._valueSelection && { start: this._valueSelection[0], end: this._valueSelection[1] });\n        }\n        if (this.ui.inputBox.placeholder !== (this.placeholder || '')) {\n            this.ui.inputBox.placeholder = (this.placeholder || '');\n        }\n        let ariaLabel = this.ariaLabel;\n        // Only set aria label to the input box placeholder if we actually have an input box.\n        if (!ariaLabel && visibilities.inputBox) {\n            ariaLabel = this.placeholder || QuickPick.DEFAULT_ARIA_LABEL;\n            // If we have a title, include it in the aria label.\n            if (this.title) {\n                ariaLabel += ` - ${this.title}`;\n            }\n        }\n        if (this.ui.list.ariaLabel !== ariaLabel) {\n            this.ui.list.ariaLabel = ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : null;\n        }\n        this.ui.list.matchOnDescription = this.matchOnDescription;\n        this.ui.list.matchOnDetail = this.matchOnDetail;\n        this.ui.list.matchOnLabel = this.matchOnLabel;\n        this.ui.list.matchOnLabelMode = this.matchOnLabelMode;\n        this.ui.list.sortByLabel = this.sortByLabel;\n        if (this.itemsUpdated) {\n            this.itemsUpdated = false;\n            this._focusEventBufferer.bufferEvents(() => {\n                this.ui.list.setElements(this.items);\n                // We want focus to exist in the list if there are items so that space can be used to toggle\n                this.ui.list.shouldLoop = !this.canSelectMany;\n                this.ui.list.filter(this.filterValue(this.ui.inputBox.value));\n                this.ui.checkAll.checked = this.ui.list.getAllVisibleChecked();\n                this.ui.visibleCount.setCount(this.ui.list.getVisibleCount());\n                this.ui.count.setCount(this.ui.list.getCheckedCount());\n                switch (this._itemActivation) {\n                    case ItemActivation.NONE:\n                        this._itemActivation = ItemActivation.FIRST; // only valid once, then unset\n                        break;\n                    case ItemActivation.SECOND:\n                        this.ui.list.focus(QuickPickFocus.Second);\n                        this._itemActivation = ItemActivation.FIRST; // only valid once, then unset\n                        break;\n                    case ItemActivation.LAST:\n                        this.ui.list.focus(QuickPickFocus.Last);\n                        this._itemActivation = ItemActivation.FIRST; // only valid once, then unset\n                        break;\n                    default:\n                        this.trySelectFirst();\n                        break;\n                }\n            });\n        }\n        if (this.ui.container.classList.contains('show-checkboxes') !== !!this.canSelectMany) {\n            if (this.canSelectMany) {\n                this.ui.list.clearFocus();\n            }\n            else {\n                this.trySelectFirst();\n            }\n        }\n        if (this.activeItemsUpdated) {\n            this.activeItemsUpdated = false;\n            this.activeItemsToConfirm = this._activeItems;\n            this.ui.list.setFocusedElements(this.activeItems);\n            if (this.activeItemsToConfirm === this._activeItems) {\n                this.activeItemsToConfirm = null;\n            }\n        }\n        if (this.selectedItemsUpdated) {\n            this.selectedItemsUpdated = false;\n            this.selectedItemsToConfirm = this._selectedItems;\n            if (this.canSelectMany) {\n                this.ui.list.setCheckedElements(this.selectedItems);\n            }\n            else {\n                this.ui.list.setSelectedElements(this.selectedItems);\n            }\n            if (this.selectedItemsToConfirm === this._selectedItems) {\n                this.selectedItemsToConfirm = null;\n            }\n        }\n        this.ui.customButton.label = this.customLabel || '';\n        this.ui.customButton.element.title = this.customHover || '';\n        if (!visibilities.inputBox) {\n            // we need to move focus into the tree to detect keybindings\n            // properly when the input box is not visible (quick nav)\n            this.ui.list.domFocus();\n            // Focus the first element in the list if multiselect is enabled\n            if (this.canSelectMany) {\n                this.ui.list.focus(QuickPickFocus.First);\n            }\n        }\n        // Set the scroll position to what it was before updating the items\n        if (this.keepScrollPosition) {\n            this.scrollTop = scrollTopBefore;\n        }\n    }\n    focus(focus) {\n        this.ui.list.focus(focus);\n        // To allow things like space to check/uncheck items\n        if (this.canSelectMany) {\n            this.ui.list.domFocus();\n        }\n    }\n    accept(inBackground) {\n        if (inBackground && !this._canAcceptInBackground) {\n            return; // needs to be enabled\n        }\n        if (this.activeItems[0]) {\n            this._selectedItems = [this.activeItems[0]];\n            this.onDidChangeSelectionEmitter.fire(this.selectedItems);\n            this.handleAccept(inBackground !== null && inBackground !== void 0 ? inBackground : false);\n        }\n    }\n}\nQuickPick.DEFAULT_ARIA_LABEL = localize('quickInputBox.ariaLabel', \"Type to narrow down results.\");\nexport class InputBox extends QuickInput {\n    constructor() {\n        super(...arguments);\n        this._value = '';\n        this.valueSelectionUpdated = true;\n        this._password = false;\n        this.onDidValueChangeEmitter = this._register(new Emitter());\n        this.onDidAcceptEmitter = this._register(new Emitter());\n        this.type = \"inputBox\" /* QuickInputType.InputBox */;\n        this.onDidChangeValue = this.onDidValueChangeEmitter.event;\n        this.onDidAccept = this.onDidAcceptEmitter.event;\n    }\n    get value() {\n        return this._value;\n    }\n    set value(value) {\n        this._value = value || '';\n        this.update();\n    }\n    get placeholder() {\n        return this._placeholder;\n    }\n    set placeholder(placeholder) {\n        this._placeholder = placeholder;\n        this.update();\n    }\n    get password() {\n        return this._password;\n    }\n    set password(password) {\n        this._password = password;\n        this.update();\n    }\n    show() {\n        if (!this.visible) {\n            this.visibleDisposables.add(this.ui.inputBox.onDidChange(value => {\n                if (value === this.value) {\n                    return;\n                }\n                this._value = value;\n                this.onDidValueChangeEmitter.fire(value);\n            }));\n            this.visibleDisposables.add(this.ui.onDidAccept(() => this.onDidAcceptEmitter.fire()));\n            this.valueSelectionUpdated = true;\n        }\n        super.show();\n    }\n    update() {\n        if (!this.visible) {\n            return;\n        }\n        this.ui.container.classList.remove('hidden-input');\n        const visibilities = {\n            title: !!this.title || !!this.step || !!this.buttons.length,\n            description: !!this.description || !!this.step,\n            inputBox: true,\n            message: true,\n            progressBar: true\n        };\n        this.ui.setVisibilities(visibilities);\n        super.update();\n        if (this.ui.inputBox.value !== this.value) {\n            this.ui.inputBox.value = this.value;\n        }\n        if (this.valueSelectionUpdated) {\n            this.valueSelectionUpdated = false;\n            this.ui.inputBox.select(this._valueSelection && { start: this._valueSelection[0], end: this._valueSelection[1] });\n        }\n        if (this.ui.inputBox.placeholder !== (this.placeholder || '')) {\n            this.ui.inputBox.placeholder = (this.placeholder || '');\n        }\n        if (this.ui.inputBox.password !== this.password) {\n            this.ui.inputBox.password = this.password;\n        }\n    }\n}\nlet QuickInputHoverDelegate = class QuickInputHoverDelegate extends WorkbenchHoverDelegate {\n    constructor(configurationService, hoverService) {\n        super('element', false, (options) => this.getOverrideOptions(options), configurationService, hoverService);\n    }\n    getOverrideOptions(options) {\n        var _a;\n        // Only show the hover hint if the content is of a decent size\n        const showHoverHint = (dom.isHTMLElement(options.content)\n            ? (_a = options.content.textContent) !== null && _a !== void 0 ? _a : ''\n            : typeof options.content === 'string'\n                ? options.content\n                : options.content.value).includes('\\n');\n        return {\n            persistence: {\n                hideOnKeyDown: false,\n            },\n            appearance: {\n                showHoverHint,\n                skipFadeInAnimation: true,\n            },\n        };\n    }\n};\nQuickInputHoverDelegate = __decorate([\n    __param(0, IConfigurationService),\n    __param(1, IHoverService)\n], QuickInputHoverDelegate);\nexport { QuickInputHoverDelegate };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/quickinput/browser/quickInputActions.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { isMacintosh } from '../../../base/common/platform.js';\nimport { localize } from '../../../nls.js';\nimport { ContextKeyExpr } from '../../contextkey/common/contextkey.js';\nimport { InputFocusedContext } from '../../contextkey/common/contextkeys.js';\nimport { KeybindingsRegistry } from '../../keybinding/common/keybindingsRegistry.js';\nimport { endOfQuickInputBoxContext, inQuickInputContext, quickInputTypeContextKeyValue } from './quickInput.js';\nimport { IQuickInputService, QuickPickFocus } from '../common/quickInput.js';\nconst defaultCommandAndKeybindingRule = {\n    weight: 200 /* KeybindingWeight.WorkbenchContrib */,\n    when: ContextKeyExpr.and(ContextKeyExpr.equals(quickInputTypeContextKeyValue, \"quickPick\" /* QuickInputType.QuickPick */), inQuickInputContext),\n    metadata: { description: localize('quickPick', \"Used while in the context of the quick pick. If you change one keybinding for this command, you should change all of the other keybindings (modifier variants) of this command as well.\") }\n};\nfunction registerQuickPickCommandAndKeybindingRule(rule, options = {}) {\n    var _a;\n    KeybindingsRegistry.registerCommandAndKeybindingRule({\n        ...defaultCommandAndKeybindingRule,\n        ...rule,\n        secondary: getSecondary(rule.primary, (_a = rule.secondary) !== null && _a !== void 0 ? _a : [], options)\n    });\n}\nconst ctrlKeyMod = isMacintosh ? 256 /* KeyMod.WinCtrl */ : 2048 /* KeyMod.CtrlCmd */;\n// This function will generate all the combinations of keybindings for the given primary keybinding\nfunction getSecondary(primary, secondary, options = {}) {\n    if (options.withAltMod) {\n        secondary.push(512 /* KeyMod.Alt */ + primary);\n    }\n    if (options.withCtrlMod) {\n        secondary.push(ctrlKeyMod + primary);\n        if (options.withAltMod) {\n            secondary.push(512 /* KeyMod.Alt */ + ctrlKeyMod + primary);\n        }\n    }\n    if (options.withCmdMod && isMacintosh) {\n        secondary.push(2048 /* KeyMod.CtrlCmd */ + primary);\n        if (options.withCtrlMod) {\n            secondary.push(2048 /* KeyMod.CtrlCmd */ + 256 /* KeyMod.WinCtrl */ + primary);\n        }\n        if (options.withAltMod) {\n            secondary.push(2048 /* KeyMod.CtrlCmd */ + 512 /* KeyMod.Alt */ + primary);\n            if (options.withCtrlMod) {\n                secondary.push(2048 /* KeyMod.CtrlCmd */ + 512 /* KeyMod.Alt */ + 256 /* KeyMod.WinCtrl */ + primary);\n            }\n        }\n    }\n    return secondary;\n}\n//#region Navigation\nfunction focusHandler(focus, focusOnQuickNatigate) {\n    return accessor => {\n        // Assuming this is a quick pick due to above when clause\n        const currentQuickPick = accessor.get(IQuickInputService).currentQuickInput;\n        if (!currentQuickPick) {\n            return;\n        }\n        if (focusOnQuickNatigate && currentQuickPick.quickNavigate) {\n            return currentQuickPick.focus(focusOnQuickNatigate);\n        }\n        return currentQuickPick.focus(focus);\n    };\n}\nregisterQuickPickCommandAndKeybindingRule({ id: 'quickInput.pageNext', primary: 12 /* KeyCode.PageDown */, handler: focusHandler(QuickPickFocus.NextPage) }, { withAltMod: true, withCtrlMod: true, withCmdMod: true });\nregisterQuickPickCommandAndKeybindingRule({ id: 'quickInput.pagePrevious', primary: 11 /* KeyCode.PageUp */, handler: focusHandler(QuickPickFocus.PreviousPage) }, { withAltMod: true, withCtrlMod: true, withCmdMod: true });\nregisterQuickPickCommandAndKeybindingRule({ id: 'quickInput.first', primary: ctrlKeyMod + 14 /* KeyCode.Home */, handler: focusHandler(QuickPickFocus.First) }, { withAltMod: true, withCmdMod: true });\nregisterQuickPickCommandAndKeybindingRule({ id: 'quickInput.last', primary: ctrlKeyMod + 13 /* KeyCode.End */, handler: focusHandler(QuickPickFocus.Last) }, { withAltMod: true, withCmdMod: true });\nregisterQuickPickCommandAndKeybindingRule({ id: 'quickInput.next', primary: 18 /* KeyCode.DownArrow */, handler: focusHandler(QuickPickFocus.Next) }, { withCtrlMod: true });\nregisterQuickPickCommandAndKeybindingRule({ id: 'quickInput.previous', primary: 16 /* KeyCode.UpArrow */, handler: focusHandler(QuickPickFocus.Previous) }, { withCtrlMod: true });\n// The next & previous separator commands are interesting because if we are in quick access mode, we are already holding a modifier key down.\n// In this case, we want that modifier key+up/down to navigate to the next/previous item, not the next/previous separator.\n// To handle this, we have a separate command for navigating to the next/previous separator when we are not in quick access mode.\n// If, however, we are in quick access mode, and you hold down an additional modifier key, we will navigate to the next/previous separator.\nconst nextSeparatorFallbackDesc = localize('quickInput.nextSeparatorWithQuickAccessFallback', \"If we're in quick access mode, this will navigate to the next item. If we are not in quick access mode, this will navigate to the next separator.\");\nconst prevSeparatorFallbackDesc = localize('quickInput.previousSeparatorWithQuickAccessFallback', \"If we're in quick access mode, this will navigate to the previous item. If we are not in quick access mode, this will navigate to the previous separator.\");\nif (isMacintosh) {\n    registerQuickPickCommandAndKeybindingRule({\n        id: 'quickInput.nextSeparatorWithQuickAccessFallback',\n        primary: 2048 /* KeyMod.CtrlCmd */ + 18 /* KeyCode.DownArrow */,\n        handler: focusHandler(QuickPickFocus.NextSeparator, QuickPickFocus.Next),\n        metadata: { description: nextSeparatorFallbackDesc }\n    });\n    registerQuickPickCommandAndKeybindingRule({\n        id: 'quickInput.nextSeparator',\n        primary: 2048 /* KeyMod.CtrlCmd */ + 512 /* KeyMod.Alt */ + 18 /* KeyCode.DownArrow */,\n        // Since macOS has the cmd key as the primary modifier, we need to add this additional\n        // keybinding to capture cmd+ctrl+upArrow\n        secondary: [2048 /* KeyMod.CtrlCmd */ + 256 /* KeyMod.WinCtrl */ + 18 /* KeyCode.DownArrow */],\n        handler: focusHandler(QuickPickFocus.NextSeparator)\n    }, { withCtrlMod: true });\n    registerQuickPickCommandAndKeybindingRule({\n        id: 'quickInput.previousSeparatorWithQuickAccessFallback',\n        primary: 2048 /* KeyMod.CtrlCmd */ + 16 /* KeyCode.UpArrow */,\n        handler: focusHandler(QuickPickFocus.PreviousSeparator, QuickPickFocus.Previous),\n        metadata: { description: prevSeparatorFallbackDesc }\n    });\n    registerQuickPickCommandAndKeybindingRule({\n        id: 'quickInput.previousSeparator',\n        primary: 2048 /* KeyMod.CtrlCmd */ + 512 /* KeyMod.Alt */ + 16 /* KeyCode.UpArrow */,\n        // Since macOS has the cmd key as the primary modifier, we need to add this additional\n        // keybinding to capture cmd+ctrl+upArrow\n        secondary: [2048 /* KeyMod.CtrlCmd */ + 256 /* KeyMod.WinCtrl */ + 16 /* KeyCode.UpArrow */],\n        handler: focusHandler(QuickPickFocus.PreviousSeparator)\n    }, { withCtrlMod: true });\n}\nelse {\n    registerQuickPickCommandAndKeybindingRule({\n        id: 'quickInput.nextSeparatorWithQuickAccessFallback',\n        primary: 512 /* KeyMod.Alt */ + 18 /* KeyCode.DownArrow */,\n        handler: focusHandler(QuickPickFocus.NextSeparator, QuickPickFocus.Next),\n        metadata: { description: nextSeparatorFallbackDesc }\n    });\n    registerQuickPickCommandAndKeybindingRule({\n        id: 'quickInput.nextSeparator',\n        primary: 2048 /* KeyMod.CtrlCmd */ + 512 /* KeyMod.Alt */ + 18 /* KeyCode.DownArrow */,\n        handler: focusHandler(QuickPickFocus.NextSeparator)\n    });\n    registerQuickPickCommandAndKeybindingRule({\n        id: 'quickInput.previousSeparatorWithQuickAccessFallback',\n        primary: 512 /* KeyMod.Alt */ + 16 /* KeyCode.UpArrow */,\n        handler: focusHandler(QuickPickFocus.PreviousSeparator, QuickPickFocus.Previous),\n        metadata: { description: prevSeparatorFallbackDesc }\n    });\n    registerQuickPickCommandAndKeybindingRule({\n        id: 'quickInput.previousSeparator',\n        primary: 2048 /* KeyMod.CtrlCmd */ + 512 /* KeyMod.Alt */ + 16 /* KeyCode.UpArrow */,\n        handler: focusHandler(QuickPickFocus.PreviousSeparator)\n    });\n}\n//#endregion\n//#region Accept\nregisterQuickPickCommandAndKeybindingRule({\n    id: 'quickInput.acceptInBackground',\n    // If we are in the quick pick but the input box is not focused or our cursor is at the end of the input box\n    when: ContextKeyExpr.and(defaultCommandAndKeybindingRule.when, ContextKeyExpr.or(InputFocusedContext.negate(), endOfQuickInputBoxContext)),\n    primary: 17 /* KeyCode.RightArrow */,\n    // Need a little extra weight to ensure this keybinding is preferred over the default cmd+alt+right arrow keybinding\n    // https://github.com/microsoft/vscode/blob/1451e4fbbbf074a4355cc537c35b547b80ce1c52/src/vs/workbench/browser/parts/editor/editorActions.ts#L1178-L1195\n    weight: 200 /* KeybindingWeight.WorkbenchContrib */ + 50,\n    handler: (accessor) => {\n        const currentQuickPick = accessor.get(IQuickInputService).currentQuickInput;\n        currentQuickPick === null || currentQuickPick === void 0 ? void 0 : currentQuickPick.accept(true);\n    },\n}, { withAltMod: true, withCtrlMod: true, withCmdMod: true });\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/quickinput/browser/quickInputBox.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../../base/browser/dom.js';\nimport { FindInput } from '../../../base/browser/ui/findinput/findInput.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport Severity from '../../../base/common/severity.js';\nimport './media/quickInput.css';\nconst $ = dom.$;\nexport class QuickInputBox extends Disposable {\n    constructor(parent, inputBoxStyles, toggleStyles) {\n        super();\n        this.parent = parent;\n        this.onKeyDown = (handler) => {\n            return dom.addStandardDisposableListener(this.findInput.inputBox.inputElement, dom.EventType.KEY_DOWN, handler);\n        };\n        this.onDidChange = (handler) => {\n            return this.findInput.onDidChange(handler);\n        };\n        this.container = dom.append(this.parent, $('.quick-input-box'));\n        this.findInput = this._register(new FindInput(this.container, undefined, { label: '', inputBoxStyles, toggleStyles }));\n        const input = this.findInput.inputBox.inputElement;\n        input.role = 'combobox';\n        input.ariaHasPopup = 'menu';\n        input.ariaAutoComplete = 'list';\n        input.ariaExpanded = 'true';\n    }\n    get value() {\n        return this.findInput.getValue();\n    }\n    set value(value) {\n        this.findInput.setValue(value);\n    }\n    select(range = null) {\n        this.findInput.inputBox.select(range);\n    }\n    getSelection() {\n        return this.findInput.inputBox.getSelection();\n    }\n    isSelectionAtEnd() {\n        return this.findInput.inputBox.isSelectionAtEnd();\n    }\n    get placeholder() {\n        return this.findInput.inputBox.inputElement.getAttribute('placeholder') || '';\n    }\n    set placeholder(placeholder) {\n        this.findInput.inputBox.setPlaceHolder(placeholder);\n    }\n    get password() {\n        return this.findInput.inputBox.inputElement.type === 'password';\n    }\n    set password(password) {\n        this.findInput.inputBox.inputElement.type = password ? 'password' : 'text';\n    }\n    set enabled(enabled) {\n        // We can't disable the input box because it is still used for\n        // navigating the list. Instead, we disable the list and the OK\n        // so that nothing can be selected.\n        // TODO: should this be what we do for all find inputs? Or maybe some _other_ API\n        // on findInput to change it to readonly?\n        this.findInput.inputBox.inputElement.toggleAttribute('readonly', !enabled);\n        // TODO: styles of the quick pick need to be moved to the CSS instead of being in line\n        // so things like this can be done in CSS\n        // this.findInput.inputBox.inputElement.classList.toggle('disabled', !enabled);\n    }\n    set toggles(toggles) {\n        this.findInput.setAdditionalToggles(toggles);\n    }\n    setAttribute(name, value) {\n        this.findInput.inputBox.inputElement.setAttribute(name, value);\n    }\n    showDecoration(decoration) {\n        if (decoration === Severity.Ignore) {\n            this.findInput.clearMessage();\n        }\n        else {\n            this.findInput.showMessage({ type: decoration === Severity.Info ? 1 /* MessageType.INFO */ : decoration === Severity.Warning ? 2 /* MessageType.WARNING */ : 3 /* MessageType.ERROR */, content: '' });\n        }\n    }\n    stylesForType(decoration) {\n        return this.findInput.inputBox.stylesForType(decoration === Severity.Info ? 1 /* MessageType.INFO */ : decoration === Severity.Warning ? 2 /* MessageType.WARNING */ : 3 /* MessageType.ERROR */);\n    }\n    setFocus() {\n        this.findInput.focus();\n    }\n    layout() {\n        this.findInput.inputBox.layout();\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/quickinput/browser/quickInputController.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar QuickInputController_1;\nimport * as dom from '../../../base/browser/dom.js';\nimport { ActionBar } from '../../../base/browser/ui/actionbar/actionbar.js';\nimport { Button } from '../../../base/browser/ui/button/button.js';\nimport { CountBadge } from '../../../base/browser/ui/countBadge/countBadge.js';\nimport { ProgressBar } from '../../../base/browser/ui/progressbar/progressbar.js';\nimport { CancellationToken } from '../../../base/common/cancellation.js';\nimport { Emitter, Event } from '../../../base/common/event.js';\nimport { Disposable, dispose } from '../../../base/common/lifecycle.js';\nimport Severity from '../../../base/common/severity.js';\nimport { localize } from '../../../nls.js';\nimport { QuickInputHideReason } from '../common/quickInput.js';\nimport { QuickInputBox } from './quickInputBox.js';\nimport { QuickPick, backButton, InputBox, InQuickInputContextKey, QuickInputTypeContextKey, EndOfQuickInputBoxContextKey } from './quickInput.js';\nimport { ILayoutService } from '../../layout/browser/layoutService.js';\nimport { mainWindow } from '../../../base/browser/window.js';\nimport { IInstantiationService } from '../../instantiation/common/instantiation.js';\nimport { QuickInputTree } from './quickInputTree.js';\nimport { IContextKeyService } from '../../contextkey/common/contextkey.js';\nimport './quickInputActions.js';\nconst $ = dom.$;\nlet QuickInputController = QuickInputController_1 = class QuickInputController extends Disposable {\n    get currentQuickInput() { var _a; return (_a = this.controller) !== null && _a !== void 0 ? _a : undefined; }\n    get container() { return this._container; }\n    constructor(options, layoutService, instantiationService, contextKeyService) {\n        super();\n        this.options = options;\n        this.layoutService = layoutService;\n        this.instantiationService = instantiationService;\n        this.contextKeyService = contextKeyService;\n        this.enabled = true;\n        this.onDidAcceptEmitter = this._register(new Emitter());\n        this.onDidCustomEmitter = this._register(new Emitter());\n        this.onDidTriggerButtonEmitter = this._register(new Emitter());\n        this.keyMods = { ctrlCmd: false, alt: false };\n        this.controller = null;\n        this.onShowEmitter = this._register(new Emitter());\n        this.onShow = this.onShowEmitter.event;\n        this.onHideEmitter = this._register(new Emitter());\n        this.onHide = this.onHideEmitter.event;\n        this.inQuickInputContext = InQuickInputContextKey.bindTo(this.contextKeyService);\n        this.quickInputTypeContext = QuickInputTypeContextKey.bindTo(this.contextKeyService);\n        this.endOfQuickInputBoxContext = EndOfQuickInputBoxContextKey.bindTo(this.contextKeyService);\n        this.idPrefix = options.idPrefix;\n        this._container = options.container;\n        this.styles = options.styles;\n        this._register(Event.runAndSubscribe(dom.onDidRegisterWindow, ({ window, disposables }) => this.registerKeyModsListeners(window, disposables), { window: mainWindow, disposables: this._store }));\n        this._register(dom.onWillUnregisterWindow(window => {\n            if (this.ui && dom.getWindow(this.ui.container) === window) {\n                // The window this quick input is contained in is about to\n                // close, so we have to make sure to reparent it back to an\n                // existing parent to not loose functionality.\n                // (https://github.com/microsoft/vscode/issues/195870)\n                this.reparentUI(this.layoutService.mainContainer);\n                this.layout(this.layoutService.mainContainerDimension, this.layoutService.mainContainerOffset.quickPickTop);\n            }\n        }));\n    }\n    registerKeyModsListeners(window, disposables) {\n        const listener = (e) => {\n            this.keyMods.ctrlCmd = e.ctrlKey || e.metaKey;\n            this.keyMods.alt = e.altKey;\n        };\n        for (const event of [dom.EventType.KEY_DOWN, dom.EventType.KEY_UP, dom.EventType.MOUSE_DOWN]) {\n            disposables.add(dom.addDisposableListener(window, event, listener, true));\n        }\n    }\n    getUI(showInActiveContainer) {\n        if (this.ui) {\n            // In order to support aux windows, re-parent the controller\n            // if the original event is from a different document\n            if (showInActiveContainer) {\n                if (dom.getWindow(this._container) !== dom.getWindow(this.layoutService.activeContainer)) {\n                    this.reparentUI(this.layoutService.activeContainer);\n                    this.layout(this.layoutService.activeContainerDimension, this.layoutService.activeContainerOffset.quickPickTop);\n                }\n            }\n            return this.ui;\n        }\n        const container = dom.append(this._container, $('.quick-input-widget.show-file-icons'));\n        container.tabIndex = -1;\n        container.style.display = 'none';\n        const styleSheet = dom.createStyleSheet(container);\n        const titleBar = dom.append(container, $('.quick-input-titlebar'));\n        const leftActionBar = this._register(new ActionBar(titleBar, { hoverDelegate: this.options.hoverDelegate }));\n        leftActionBar.domNode.classList.add('quick-input-left-action-bar');\n        const title = dom.append(titleBar, $('.quick-input-title'));\n        const rightActionBar = this._register(new ActionBar(titleBar, { hoverDelegate: this.options.hoverDelegate }));\n        rightActionBar.domNode.classList.add('quick-input-right-action-bar');\n        const headerContainer = dom.append(container, $('.quick-input-header'));\n        const checkAll = dom.append(headerContainer, $('input.quick-input-check-all'));\n        checkAll.type = 'checkbox';\n        checkAll.setAttribute('aria-label', localize('quickInput.checkAll', \"Toggle all checkboxes\"));\n        this._register(dom.addStandardDisposableListener(checkAll, dom.EventType.CHANGE, e => {\n            const checked = checkAll.checked;\n            list.setAllVisibleChecked(checked);\n        }));\n        this._register(dom.addDisposableListener(checkAll, dom.EventType.CLICK, e => {\n            if (e.x || e.y) { // Avoid 'click' triggered by 'space'...\n                inputBox.setFocus();\n            }\n        }));\n        const description2 = dom.append(headerContainer, $('.quick-input-description'));\n        const inputContainer = dom.append(headerContainer, $('.quick-input-and-message'));\n        const filterContainer = dom.append(inputContainer, $('.quick-input-filter'));\n        const inputBox = this._register(new QuickInputBox(filterContainer, this.styles.inputBox, this.styles.toggle));\n        inputBox.setAttribute('aria-describedby', `${this.idPrefix}message`);\n        const visibleCountContainer = dom.append(filterContainer, $('.quick-input-visible-count'));\n        visibleCountContainer.setAttribute('aria-live', 'polite');\n        visibleCountContainer.setAttribute('aria-atomic', 'true');\n        const visibleCount = new CountBadge(visibleCountContainer, { countFormat: localize({ key: 'quickInput.visibleCount', comment: ['This tells the user how many items are shown in a list of items to select from. The items can be anything. Currently not visible, but read by screen readers.'] }, \"{0} Results\") }, this.styles.countBadge);\n        const countContainer = dom.append(filterContainer, $('.quick-input-count'));\n        countContainer.setAttribute('aria-live', 'polite');\n        const count = new CountBadge(countContainer, { countFormat: localize({ key: 'quickInput.countSelected', comment: ['This tells the user how many items are selected in a list of items to select from. The items can be anything.'] }, \"{0} Selected\") }, this.styles.countBadge);\n        const okContainer = dom.append(headerContainer, $('.quick-input-action'));\n        const ok = this._register(new Button(okContainer, this.styles.button));\n        ok.label = localize('ok', \"OK\");\n        this._register(ok.onDidClick(e => {\n            this.onDidAcceptEmitter.fire();\n        }));\n        const customButtonContainer = dom.append(headerContainer, $('.quick-input-action'));\n        const customButton = this._register(new Button(customButtonContainer, { ...this.styles.button, supportIcons: true }));\n        customButton.label = localize('custom', \"Custom\");\n        this._register(customButton.onDidClick(e => {\n            this.onDidCustomEmitter.fire();\n        }));\n        const message = dom.append(inputContainer, $(`#${this.idPrefix}message.quick-input-message`));\n        const progressBar = this._register(new ProgressBar(container, this.styles.progressBar));\n        progressBar.getContainer().classList.add('quick-input-progress');\n        const widget = dom.append(container, $('.quick-input-html-widget'));\n        widget.tabIndex = -1;\n        const description1 = dom.append(container, $('.quick-input-description'));\n        const listId = this.idPrefix + 'list';\n        const list = this._register(this.instantiationService.createInstance(QuickInputTree, container, this.options.hoverDelegate, this.options.linkOpenerDelegate, listId));\n        inputBox.setAttribute('aria-controls', listId);\n        this._register(list.onDidChangeFocus(() => {\n            var _a;\n            inputBox.setAttribute('aria-activedescendant', (_a = list.getActiveDescendant()) !== null && _a !== void 0 ? _a : '');\n        }));\n        this._register(list.onChangedAllVisibleChecked(checked => {\n            checkAll.checked = checked;\n        }));\n        this._register(list.onChangedVisibleCount(c => {\n            visibleCount.setCount(c);\n        }));\n        this._register(list.onChangedCheckedCount(c => {\n            count.setCount(c);\n        }));\n        this._register(list.onLeave(() => {\n            // Defer to avoid the input field reacting to the triggering key.\n            // TODO@TylerLeonhardt https://github.com/microsoft/vscode/issues/203675\n            setTimeout(() => {\n                if (!this.controller) {\n                    return;\n                }\n                inputBox.setFocus();\n                if (this.controller instanceof QuickPick && this.controller.canSelectMany) {\n                    list.clearFocus();\n                }\n            }, 0);\n        }));\n        const focusTracker = dom.trackFocus(container);\n        this._register(focusTracker);\n        this._register(dom.addDisposableListener(container, dom.EventType.FOCUS, e => {\n            const ui = this.getUI();\n            if (dom.isAncestor(e.relatedTarget, ui.inputContainer)) {\n                const value = ui.inputBox.isSelectionAtEnd();\n                if (this.endOfQuickInputBoxContext.get() !== value) {\n                    this.endOfQuickInputBoxContext.set(value);\n                }\n            }\n            // Ignore focus events within container\n            if (dom.isAncestor(e.relatedTarget, ui.container)) {\n                return;\n            }\n            this.inQuickInputContext.set(true);\n            this.previousFocusElement = dom.isHTMLElement(e.relatedTarget) ? e.relatedTarget : undefined;\n        }, true));\n        this._register(focusTracker.onDidBlur(() => {\n            if (!this.getUI().ignoreFocusOut && !this.options.ignoreFocusOut()) {\n                this.hide(QuickInputHideReason.Blur);\n            }\n            this.inQuickInputContext.set(false);\n            this.endOfQuickInputBoxContext.set(false);\n            this.previousFocusElement = undefined;\n        }));\n        this._register(inputBox.onKeyDown(_ => {\n            const value = this.getUI().inputBox.isSelectionAtEnd();\n            if (this.endOfQuickInputBoxContext.get() !== value) {\n                this.endOfQuickInputBoxContext.set(value);\n            }\n        }));\n        this._register(dom.addDisposableListener(container, dom.EventType.FOCUS, (e) => {\n            inputBox.setFocus();\n        }));\n        // TODO: Turn into commands instead of handling KEY_DOWN\n        // Keybindings for the quickinput widget as a whole\n        this._register(dom.addStandardDisposableListener(container, dom.EventType.KEY_DOWN, (event) => {\n            if (dom.isAncestor(event.target, widget)) {\n                return; // Ignore event if target is inside widget to allow the widget to handle the event.\n            }\n            switch (event.keyCode) {\n                case 3 /* KeyCode.Enter */:\n                    dom.EventHelper.stop(event, true);\n                    if (this.enabled) {\n                        this.onDidAcceptEmitter.fire();\n                    }\n                    break;\n                case 9 /* KeyCode.Escape */:\n                    dom.EventHelper.stop(event, true);\n                    this.hide(QuickInputHideReason.Gesture);\n                    break;\n                case 2 /* KeyCode.Tab */:\n                    if (!event.altKey && !event.ctrlKey && !event.metaKey) {\n                        // detect only visible actions\n                        const selectors = [\n                            '.quick-input-list .monaco-action-bar .always-visible',\n                            '.quick-input-list-entry:hover .monaco-action-bar',\n                            '.monaco-list-row.focused .monaco-action-bar'\n                        ];\n                        if (container.classList.contains('show-checkboxes')) {\n                            selectors.push('input');\n                        }\n                        else {\n                            selectors.push('input[type=text]');\n                        }\n                        if (this.getUI().list.isDisplayed()) {\n                            selectors.push('.monaco-list');\n                        }\n                        // focus links if there are any\n                        if (this.getUI().message) {\n                            selectors.push('.quick-input-message a');\n                        }\n                        if (this.getUI().widget) {\n                            if (dom.isAncestor(event.target, this.getUI().widget)) {\n                                // let the widget control tab\n                                break;\n                            }\n                            selectors.push('.quick-input-html-widget');\n                        }\n                        const stops = container.querySelectorAll(selectors.join(', '));\n                        if (event.shiftKey && event.target === stops[0]) {\n                            // Clear the focus from the list in order to allow\n                            // screen readers to read operations in the input box.\n                            dom.EventHelper.stop(event, true);\n                            list.clearFocus();\n                        }\n                        else if (!event.shiftKey && dom.isAncestor(event.target, stops[stops.length - 1])) {\n                            dom.EventHelper.stop(event, true);\n                            stops[0].focus();\n                        }\n                    }\n                    break;\n                case 10 /* KeyCode.Space */:\n                    if (event.ctrlKey) {\n                        dom.EventHelper.stop(event, true);\n                        this.getUI().list.toggleHover();\n                    }\n                    break;\n            }\n        }));\n        this.ui = {\n            container,\n            styleSheet,\n            leftActionBar,\n            titleBar,\n            title,\n            description1,\n            description2,\n            widget,\n            rightActionBar,\n            checkAll,\n            inputContainer,\n            filterContainer,\n            inputBox,\n            visibleCountContainer,\n            visibleCount,\n            countContainer,\n            count,\n            okContainer,\n            ok,\n            message,\n            customButtonContainer,\n            customButton,\n            list,\n            progressBar,\n            onDidAccept: this.onDidAcceptEmitter.event,\n            onDidCustom: this.onDidCustomEmitter.event,\n            onDidTriggerButton: this.onDidTriggerButtonEmitter.event,\n            ignoreFocusOut: false,\n            keyMods: this.keyMods,\n            show: controller => this.show(controller),\n            hide: () => this.hide(),\n            setVisibilities: visibilities => this.setVisibilities(visibilities),\n            setEnabled: enabled => this.setEnabled(enabled),\n            setContextKey: contextKey => this.options.setContextKey(contextKey),\n            linkOpenerDelegate: content => this.options.linkOpenerDelegate(content)\n        };\n        this.updateStyles();\n        return this.ui;\n    }\n    reparentUI(container) {\n        if (this.ui) {\n            this._container = container;\n            dom.append(this._container, this.ui.container);\n        }\n    }\n    pick(picks, options = {}, token = CancellationToken.None) {\n        return new Promise((doResolve, reject) => {\n            let resolve = (result) => {\n                var _a;\n                resolve = doResolve;\n                (_a = options.onKeyMods) === null || _a === void 0 ? void 0 : _a.call(options, input.keyMods);\n                doResolve(result);\n            };\n            if (token.isCancellationRequested) {\n                resolve(undefined);\n                return;\n            }\n            const input = this.createQuickPick();\n            let activeItem;\n            const disposables = [\n                input,\n                input.onDidAccept(() => {\n                    if (input.canSelectMany) {\n                        resolve(input.selectedItems.slice());\n                        input.hide();\n                    }\n                    else {\n                        const result = input.activeItems[0];\n                        if (result) {\n                            resolve(result);\n                            input.hide();\n                        }\n                    }\n                }),\n                input.onDidChangeActive(items => {\n                    const focused = items[0];\n                    if (focused && options.onDidFocus) {\n                        options.onDidFocus(focused);\n                    }\n                }),\n                input.onDidChangeSelection(items => {\n                    if (!input.canSelectMany) {\n                        const result = items[0];\n                        if (result) {\n                            resolve(result);\n                            input.hide();\n                        }\n                    }\n                }),\n                input.onDidTriggerItemButton(event => options.onDidTriggerItemButton && options.onDidTriggerItemButton({\n                    ...event,\n                    removeItem: () => {\n                        const index = input.items.indexOf(event.item);\n                        if (index !== -1) {\n                            const items = input.items.slice();\n                            const removed = items.splice(index, 1);\n                            const activeItems = input.activeItems.filter(activeItem => activeItem !== removed[0]);\n                            const keepScrollPositionBefore = input.keepScrollPosition;\n                            input.keepScrollPosition = true;\n                            input.items = items;\n                            if (activeItems) {\n                                input.activeItems = activeItems;\n                            }\n                            input.keepScrollPosition = keepScrollPositionBefore;\n                        }\n                    }\n                })),\n                input.onDidTriggerSeparatorButton(event => { var _a; return (_a = options.onDidTriggerSeparatorButton) === null || _a === void 0 ? void 0 : _a.call(options, event); }),\n                input.onDidChangeValue(value => {\n                    if (activeItem && !value && (input.activeItems.length !== 1 || input.activeItems[0] !== activeItem)) {\n                        input.activeItems = [activeItem];\n                    }\n                }),\n                token.onCancellationRequested(() => {\n                    input.hide();\n                }),\n                input.onDidHide(() => {\n                    dispose(disposables);\n                    resolve(undefined);\n                }),\n            ];\n            input.title = options.title;\n            input.canSelectMany = !!options.canPickMany;\n            input.placeholder = options.placeHolder;\n            input.ignoreFocusOut = !!options.ignoreFocusLost;\n            input.matchOnDescription = !!options.matchOnDescription;\n            input.matchOnDetail = !!options.matchOnDetail;\n            input.matchOnLabel = (options.matchOnLabel === undefined) || options.matchOnLabel; // default to true\n            input.quickNavigate = options.quickNavigate;\n            input.hideInput = !!options.hideInput;\n            input.contextKey = options.contextKey;\n            input.busy = true;\n            Promise.all([picks, options.activeItem])\n                .then(([items, _activeItem]) => {\n                activeItem = _activeItem;\n                input.busy = false;\n                input.items = items;\n                if (input.canSelectMany) {\n                    input.selectedItems = items.filter(item => item.type !== 'separator' && item.picked);\n                }\n                if (activeItem) {\n                    input.activeItems = [activeItem];\n                }\n            });\n            input.show();\n            Promise.resolve(picks).then(undefined, err => {\n                reject(err);\n                input.hide();\n            });\n        });\n    }\n    createQuickPick() {\n        const ui = this.getUI(true);\n        return new QuickPick(ui);\n    }\n    createInputBox() {\n        const ui = this.getUI(true);\n        return new InputBox(ui);\n    }\n    show(controller) {\n        const ui = this.getUI(true);\n        this.onShowEmitter.fire();\n        const oldController = this.controller;\n        this.controller = controller;\n        oldController === null || oldController === void 0 ? void 0 : oldController.didHide();\n        this.setEnabled(true);\n        ui.leftActionBar.clear();\n        ui.title.textContent = '';\n        ui.description1.textContent = '';\n        ui.description2.textContent = '';\n        dom.reset(ui.widget);\n        ui.rightActionBar.clear();\n        ui.checkAll.checked = false;\n        // ui.inputBox.value = ''; Avoid triggering an event.\n        ui.inputBox.placeholder = '';\n        ui.inputBox.password = false;\n        ui.inputBox.showDecoration(Severity.Ignore);\n        ui.visibleCount.setCount(0);\n        ui.count.setCount(0);\n        dom.reset(ui.message);\n        ui.progressBar.stop();\n        ui.list.setElements([]);\n        ui.list.matchOnDescription = false;\n        ui.list.matchOnDetail = false;\n        ui.list.matchOnLabel = true;\n        ui.list.sortByLabel = true;\n        ui.ignoreFocusOut = false;\n        ui.inputBox.toggles = undefined;\n        const backKeybindingLabel = this.options.backKeybindingLabel();\n        backButton.tooltip = backKeybindingLabel ? localize('quickInput.backWithKeybinding', \"Back ({0})\", backKeybindingLabel) : localize('quickInput.back', \"Back\");\n        ui.container.style.display = '';\n        this.updateLayout();\n        ui.inputBox.setFocus();\n        this.quickInputTypeContext.set(controller.type);\n    }\n    isVisible() {\n        return !!this.ui && this.ui.container.style.display !== 'none';\n    }\n    setVisibilities(visibilities) {\n        const ui = this.getUI();\n        ui.title.style.display = visibilities.title ? '' : 'none';\n        ui.description1.style.display = visibilities.description && (visibilities.inputBox || visibilities.checkAll) ? '' : 'none';\n        ui.description2.style.display = visibilities.description && !(visibilities.inputBox || visibilities.checkAll) ? '' : 'none';\n        ui.checkAll.style.display = visibilities.checkAll ? '' : 'none';\n        ui.inputContainer.style.display = visibilities.inputBox ? '' : 'none';\n        ui.filterContainer.style.display = visibilities.inputBox ? '' : 'none';\n        ui.visibleCountContainer.style.display = visibilities.visibleCount ? '' : 'none';\n        ui.countContainer.style.display = visibilities.count ? '' : 'none';\n        ui.okContainer.style.display = visibilities.ok ? '' : 'none';\n        ui.customButtonContainer.style.display = visibilities.customButton ? '' : 'none';\n        ui.message.style.display = visibilities.message ? '' : 'none';\n        ui.progressBar.getContainer().style.display = visibilities.progressBar ? '' : 'none';\n        ui.list.display(!!visibilities.list);\n        ui.container.classList.toggle('show-checkboxes', !!visibilities.checkBox);\n        ui.container.classList.toggle('hidden-input', !visibilities.inputBox && !visibilities.description);\n        this.updateLayout(); // TODO\n    }\n    setEnabled(enabled) {\n        if (enabled !== this.enabled) {\n            this.enabled = enabled;\n            for (const item of this.getUI().leftActionBar.viewItems) {\n                item.action.enabled = enabled;\n            }\n            for (const item of this.getUI().rightActionBar.viewItems) {\n                item.action.enabled = enabled;\n            }\n            this.getUI().checkAll.disabled = !enabled;\n            this.getUI().inputBox.enabled = enabled;\n            this.getUI().ok.enabled = enabled;\n            this.getUI().list.enabled = enabled;\n        }\n    }\n    hide(reason) {\n        var _a, _b;\n        const controller = this.controller;\n        if (!controller) {\n            return;\n        }\n        controller.willHide(reason);\n        const container = (_a = this.ui) === null || _a === void 0 ? void 0 : _a.container;\n        const focusChanged = container && !dom.isAncestorOfActiveElement(container);\n        this.controller = null;\n        this.onHideEmitter.fire();\n        if (container) {\n            container.style.display = 'none';\n        }\n        if (!focusChanged) {\n            let currentElement = this.previousFocusElement;\n            while (currentElement && !currentElement.offsetParent) {\n                currentElement = (_b = currentElement.parentElement) !== null && _b !== void 0 ? _b : undefined;\n            }\n            if (currentElement === null || currentElement === void 0 ? void 0 : currentElement.offsetParent) {\n                currentElement.focus();\n                this.previousFocusElement = undefined;\n            }\n            else {\n                this.options.returnFocus();\n            }\n        }\n        controller.didHide(reason);\n    }\n    layout(dimension, titleBarOffset) {\n        this.dimension = dimension;\n        this.titleBarOffset = titleBarOffset;\n        this.updateLayout();\n    }\n    updateLayout() {\n        if (this.ui && this.isVisible()) {\n            this.ui.container.style.top = `${this.titleBarOffset}px`;\n            const style = this.ui.container.style;\n            const width = Math.min(this.dimension.width * 0.62 /* golden cut */, QuickInputController_1.MAX_WIDTH);\n            style.width = width + 'px';\n            style.marginLeft = '-' + (width / 2) + 'px';\n            this.ui.inputBox.layout();\n            this.ui.list.layout(this.dimension && this.dimension.height * 0.4);\n        }\n    }\n    applyStyles(styles) {\n        this.styles = styles;\n        this.updateStyles();\n    }\n    updateStyles() {\n        if (this.ui) {\n            const { quickInputTitleBackground, quickInputBackground, quickInputForeground, widgetBorder, widgetShadow, } = this.styles.widget;\n            this.ui.titleBar.style.backgroundColor = quickInputTitleBackground !== null && quickInputTitleBackground !== void 0 ? quickInputTitleBackground : '';\n            this.ui.container.style.backgroundColor = quickInputBackground !== null && quickInputBackground !== void 0 ? quickInputBackground : '';\n            this.ui.container.style.color = quickInputForeground !== null && quickInputForeground !== void 0 ? quickInputForeground : '';\n            this.ui.container.style.border = widgetBorder ? `1px solid ${widgetBorder}` : '';\n            this.ui.container.style.boxShadow = widgetShadow ? `0 0 8px 2px ${widgetShadow}` : '';\n            this.ui.list.style(this.styles.list);\n            const content = [];\n            if (this.styles.pickerGroup.pickerGroupBorder) {\n                content.push(`.quick-input-list .quick-input-list-entry { border-top-color:  ${this.styles.pickerGroup.pickerGroupBorder}; }`);\n            }\n            if (this.styles.pickerGroup.pickerGroupForeground) {\n                content.push(`.quick-input-list .quick-input-list-separator { color:  ${this.styles.pickerGroup.pickerGroupForeground}; }`);\n            }\n            if (this.styles.pickerGroup.pickerGroupForeground) {\n                content.push(`.quick-input-list .quick-input-list-separator-as-item { color: var(--vscode-descriptionForeground); }`);\n            }\n            if (this.styles.keybindingLabel.keybindingLabelBackground ||\n                this.styles.keybindingLabel.keybindingLabelBorder ||\n                this.styles.keybindingLabel.keybindingLabelBottomBorder ||\n                this.styles.keybindingLabel.keybindingLabelShadow ||\n                this.styles.keybindingLabel.keybindingLabelForeground) {\n                content.push('.quick-input-list .monaco-keybinding > .monaco-keybinding-key {');\n                if (this.styles.keybindingLabel.keybindingLabelBackground) {\n                    content.push(`background-color: ${this.styles.keybindingLabel.keybindingLabelBackground};`);\n                }\n                if (this.styles.keybindingLabel.keybindingLabelBorder) {\n                    // Order matters here. `border-color` must come before `border-bottom-color`.\n                    content.push(`border-color: ${this.styles.keybindingLabel.keybindingLabelBorder};`);\n                }\n                if (this.styles.keybindingLabel.keybindingLabelBottomBorder) {\n                    content.push(`border-bottom-color: ${this.styles.keybindingLabel.keybindingLabelBottomBorder};`);\n                }\n                if (this.styles.keybindingLabel.keybindingLabelShadow) {\n                    content.push(`box-shadow: inset 0 -1px 0 ${this.styles.keybindingLabel.keybindingLabelShadow};`);\n                }\n                if (this.styles.keybindingLabel.keybindingLabelForeground) {\n                    content.push(`color: ${this.styles.keybindingLabel.keybindingLabelForeground};`);\n                }\n                content.push('}');\n            }\n            const newStyles = content.join('\\n');\n            if (newStyles !== this.ui.styleSheet.textContent) {\n                this.ui.styleSheet.textContent = newStyles;\n            }\n        }\n    }\n};\nQuickInputController.MAX_WIDTH = 600; // Max total width of quick input widget\nQuickInputController = QuickInputController_1 = __decorate([\n    __param(1, ILayoutService),\n    __param(2, IInstantiationService),\n    __param(3, IContextKeyService)\n], QuickInputController);\nexport { QuickInputController };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/quickinput/browser/quickInputService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { CancellationToken } from '../../../base/common/cancellation.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { IContextKeyService, RawContextKey } from '../../contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../instantiation/common/instantiation.js';\nimport { ILayoutService } from '../../layout/browser/layoutService.js';\nimport { IOpenerService } from '../../opener/common/opener.js';\nimport { QuickAccessController } from './quickAccess.js';\nimport { defaultButtonStyles, defaultCountBadgeStyles, defaultInputBoxStyles, defaultKeybindingLabelStyles, defaultProgressBarStyles, defaultToggleStyles, getListStyles } from '../../theme/browser/defaultStyles.js';\nimport { activeContrastBorder, asCssVariable, pickerGroupBorder, pickerGroupForeground, quickInputBackground, quickInputForeground, quickInputListFocusBackground, quickInputListFocusForeground, quickInputListFocusIconForeground, quickInputTitleBackground, widgetBorder, widgetShadow } from '../../theme/common/colorRegistry.js';\nimport { IThemeService, Themable } from '../../theme/common/themeService.js';\nimport { QuickInputHoverDelegate } from './quickInput.js';\nimport { QuickInputController } from './quickInputController.js';\nimport { IConfigurationService } from '../../configuration/common/configuration.js';\nimport { getWindow } from '../../../base/browser/dom.js';\nlet QuickInputService = class QuickInputService extends Themable {\n    get controller() {\n        if (!this._controller) {\n            this._controller = this._register(this.createController());\n        }\n        return this._controller;\n    }\n    get hasController() { return !!this._controller; }\n    get currentQuickInput() { return this.controller.currentQuickInput; }\n    get quickAccess() {\n        if (!this._quickAccess) {\n            this._quickAccess = this._register(this.instantiationService.createInstance(QuickAccessController));\n        }\n        return this._quickAccess;\n    }\n    constructor(instantiationService, contextKeyService, themeService, layoutService, configurationService) {\n        super(themeService);\n        this.instantiationService = instantiationService;\n        this.contextKeyService = contextKeyService;\n        this.layoutService = layoutService;\n        this.configurationService = configurationService;\n        this._onShow = this._register(new Emitter());\n        this._onHide = this._register(new Emitter());\n        this.contexts = new Map();\n    }\n    createController(host = this.layoutService, options) {\n        const defaultOptions = {\n            idPrefix: 'quickInput_',\n            container: host.activeContainer,\n            ignoreFocusOut: () => false,\n            backKeybindingLabel: () => undefined,\n            setContextKey: (id) => this.setContextKey(id),\n            linkOpenerDelegate: (content) => {\n                // HACK: https://github.com/microsoft/vscode/issues/173691\n                this.instantiationService.invokeFunction(accessor => {\n                    const openerService = accessor.get(IOpenerService);\n                    openerService.open(content, { allowCommands: true, fromUserGesture: true });\n                });\n            },\n            returnFocus: () => host.focus(),\n            styles: this.computeStyles(),\n            hoverDelegate: this._register(this.instantiationService.createInstance(QuickInputHoverDelegate))\n        };\n        const controller = this._register(this.instantiationService.createInstance(QuickInputController, {\n            ...defaultOptions,\n            ...options\n        }));\n        controller.layout(host.activeContainerDimension, host.activeContainerOffset.quickPickTop);\n        // Layout changes\n        this._register(host.onDidLayoutActiveContainer(dimension => {\n            if (getWindow(host.activeContainer) === getWindow(controller.container)) {\n                controller.layout(dimension, host.activeContainerOffset.quickPickTop);\n            }\n        }));\n        this._register(host.onDidChangeActiveContainer(() => {\n            if (controller.isVisible()) {\n                return;\n            }\n            controller.layout(host.activeContainerDimension, host.activeContainerOffset.quickPickTop);\n        }));\n        // Context keys\n        this._register(controller.onShow(() => {\n            this.resetContextKeys();\n            this._onShow.fire();\n        }));\n        this._register(controller.onHide(() => {\n            this.resetContextKeys();\n            this._onHide.fire();\n        }));\n        return controller;\n    }\n    setContextKey(id) {\n        let key;\n        if (id) {\n            key = this.contexts.get(id);\n            if (!key) {\n                key = new RawContextKey(id, false)\n                    .bindTo(this.contextKeyService);\n                this.contexts.set(id, key);\n            }\n        }\n        if (key && key.get()) {\n            return; // already active context\n        }\n        this.resetContextKeys();\n        key === null || key === void 0 ? void 0 : key.set(true);\n    }\n    resetContextKeys() {\n        this.contexts.forEach(context => {\n            if (context.get()) {\n                context.reset();\n            }\n        });\n    }\n    pick(picks, options = {}, token = CancellationToken.None) {\n        return this.controller.pick(picks, options, token);\n    }\n    createQuickPick() {\n        return this.controller.createQuickPick();\n    }\n    createInputBox() {\n        return this.controller.createInputBox();\n    }\n    updateStyles() {\n        if (this.hasController) {\n            this.controller.applyStyles(this.computeStyles());\n        }\n    }\n    computeStyles() {\n        return {\n            widget: {\n                quickInputBackground: asCssVariable(quickInputBackground),\n                quickInputForeground: asCssVariable(quickInputForeground),\n                quickInputTitleBackground: asCssVariable(quickInputTitleBackground),\n                widgetBorder: asCssVariable(widgetBorder),\n                widgetShadow: asCssVariable(widgetShadow),\n            },\n            inputBox: defaultInputBoxStyles,\n            toggle: defaultToggleStyles,\n            countBadge: defaultCountBadgeStyles,\n            button: defaultButtonStyles,\n            progressBar: defaultProgressBarStyles,\n            keybindingLabel: defaultKeybindingLabelStyles,\n            list: getListStyles({\n                listBackground: quickInputBackground,\n                listFocusBackground: quickInputListFocusBackground,\n                listFocusForeground: quickInputListFocusForeground,\n                // Look like focused when inactive.\n                listInactiveFocusForeground: quickInputListFocusForeground,\n                listInactiveSelectionIconForeground: quickInputListFocusIconForeground,\n                listInactiveFocusBackground: quickInputListFocusBackground,\n                listFocusOutline: activeContrastBorder,\n                listInactiveFocusOutline: activeContrastBorder,\n            }),\n            pickerGroup: {\n                pickerGroupBorder: asCssVariable(pickerGroupBorder),\n                pickerGroupForeground: asCssVariable(pickerGroupForeground),\n            }\n        };\n    }\n};\nQuickInputService = __decorate([\n    __param(0, IInstantiationService),\n    __param(1, IContextKeyService),\n    __param(2, IThemeService),\n    __param(3, ILayoutService),\n    __param(4, IConfigurationService)\n], QuickInputService);\nexport { QuickInputService };\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/quickinput/browser/quickInputTree.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar QuickPickItemElementRenderer_1;\nimport * as dom from '../../../base/browser/dom.js';\nimport { Emitter, Event } from '../../../base/common/event.js';\nimport { localize } from '../../../nls.js';\nimport { IInstantiationService } from '../../instantiation/common/instantiation.js';\nimport { WorkbenchObjectTree } from '../../list/browser/listService.js';\nimport { IThemeService } from '../../theme/common/themeService.js';\nimport { Disposable, DisposableStore } from '../../../base/common/lifecycle.js';\nimport { StandardKeyboardEvent } from '../../../base/browser/keyboardEvent.js';\nimport { OS } from '../../../base/common/platform.js';\nimport { memoize } from '../../../base/common/decorators.js';\nimport { IconLabel } from '../../../base/browser/ui/iconLabel/iconLabel.js';\nimport { KeybindingLabel } from '../../../base/browser/ui/keybindingLabel/keybindingLabel.js';\nimport { ActionBar } from '../../../base/browser/ui/actionbar/actionbar.js';\nimport { isDark } from '../../theme/common/theme.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { quickInputButtonToAction } from './quickInputUtils.js';\nimport { Lazy } from '../../../base/common/lazy.js';\nimport { getCodiconAriaLabel, matchesFuzzyIconAware, parseLabelWithIcons } from '../../../base/common/iconLabels.js';\nimport { compareAnything } from '../../../base/common/comparers.js';\nimport { ltrim } from '../../../base/common/strings.js';\nimport { RenderIndentGuides } from '../../../base/browser/ui/tree/abstractTree.js';\nimport { ThrottledDelayer } from '../../../base/common/async.js';\nimport { isCancellationError } from '../../../base/common/errors.js';\nimport { QuickPickFocus } from '../common/quickInput.js';\nimport { IAccessibilityService } from '../../accessibility/common/accessibility.js';\nconst $ = dom.$;\nclass BaseQuickPickItemElement {\n    constructor(index, hasCheckbox, mainItem) {\n        this.index = index;\n        this.hasCheckbox = hasCheckbox;\n        this._hidden = false;\n        this._init = new Lazy(() => {\n            var _a;\n            const saneLabel = (_a = mainItem.label) !== null && _a !== void 0 ? _a : '';\n            const saneSortLabel = parseLabelWithIcons(saneLabel).text.trim();\n            const saneAriaLabel = mainItem.ariaLabel || [saneLabel, this.saneDescription, this.saneDetail]\n                .map(s => getCodiconAriaLabel(s))\n                .filter(s => !!s)\n                .join(', ');\n            return {\n                saneLabel,\n                saneSortLabel,\n                saneAriaLabel\n            };\n        });\n        this._saneDescription = mainItem.description;\n        this._saneTooltip = mainItem.tooltip;\n    }\n    // #region Lazy Getters\n    get saneLabel() {\n        return this._init.value.saneLabel;\n    }\n    get saneSortLabel() {\n        return this._init.value.saneSortLabel;\n    }\n    get saneAriaLabel() {\n        return this._init.value.saneAriaLabel;\n    }\n    get element() {\n        return this._element;\n    }\n    set element(value) {\n        this._element = value;\n    }\n    get hidden() {\n        return this._hidden;\n    }\n    set hidden(value) {\n        this._hidden = value;\n    }\n    get saneDescription() {\n        return this._saneDescription;\n    }\n    set saneDescription(value) {\n        this._saneDescription = value;\n    }\n    get saneDetail() {\n        return this._saneDetail;\n    }\n    set saneDetail(value) {\n        this._saneDetail = value;\n    }\n    get saneTooltip() {\n        return this._saneTooltip;\n    }\n    set saneTooltip(value) {\n        this._saneTooltip = value;\n    }\n    get labelHighlights() {\n        return this._labelHighlights;\n    }\n    set labelHighlights(value) {\n        this._labelHighlights = value;\n    }\n    get descriptionHighlights() {\n        return this._descriptionHighlights;\n    }\n    set descriptionHighlights(value) {\n        this._descriptionHighlights = value;\n    }\n    get detailHighlights() {\n        return this._detailHighlights;\n    }\n    set detailHighlights(value) {\n        this._detailHighlights = value;\n    }\n}\nclass QuickPickItemElement extends BaseQuickPickItemElement {\n    constructor(index, hasCheckbox, fireButtonTriggered, _onChecked, item, _separator) {\n        var _a, _b, _c;\n        super(index, hasCheckbox, item);\n        this.fireButtonTriggered = fireButtonTriggered;\n        this._onChecked = _onChecked;\n        this.item = item;\n        this._separator = _separator;\n        this._checked = false;\n        this.onChecked = hasCheckbox\n            ? Event.map(Event.filter(this._onChecked.event, e => e.element === this), e => e.checked)\n            : Event.None;\n        this._saneDetail = item.detail;\n        this._labelHighlights = (_a = item.highlights) === null || _a === void 0 ? void 0 : _a.label;\n        this._descriptionHighlights = (_b = item.highlights) === null || _b === void 0 ? void 0 : _b.description;\n        this._detailHighlights = (_c = item.highlights) === null || _c === void 0 ? void 0 : _c.detail;\n    }\n    get separator() {\n        return this._separator;\n    }\n    set separator(value) {\n        this._separator = value;\n    }\n    get checked() {\n        return this._checked;\n    }\n    set checked(value) {\n        if (value !== this._checked) {\n            this._checked = value;\n            this._onChecked.fire({ element: this, checked: value });\n        }\n    }\n    get checkboxDisabled() {\n        return !!this.item.disabled;\n    }\n}\nvar QuickPickSeparatorFocusReason;\n(function (QuickPickSeparatorFocusReason) {\n    /**\n     * No item is hovered or active\n     */\n    QuickPickSeparatorFocusReason[QuickPickSeparatorFocusReason[\"NONE\"] = 0] = \"NONE\";\n    /**\n     * Some item within this section is hovered\n     */\n    QuickPickSeparatorFocusReason[QuickPickSeparatorFocusReason[\"MOUSE_HOVER\"] = 1] = \"MOUSE_HOVER\";\n    /**\n     * Some item within this section is active\n     */\n    QuickPickSeparatorFocusReason[QuickPickSeparatorFocusReason[\"ACTIVE_ITEM\"] = 2] = \"ACTIVE_ITEM\";\n})(QuickPickSeparatorFocusReason || (QuickPickSeparatorFocusReason = {}));\nclass QuickPickSeparatorElement extends BaseQuickPickItemElement {\n    constructor(index, fireSeparatorButtonTriggered, separator) {\n        super(index, false, separator);\n        this.fireSeparatorButtonTriggered = fireSeparatorButtonTriggered;\n        this.separator = separator;\n        this.children = new Array();\n        /**\n         * If this item is >0, it means that there is some item in the list that is either:\n         * * hovered over\n         * * active\n         */\n        this.focusInsideSeparator = QuickPickSeparatorFocusReason.NONE;\n    }\n}\nclass QuickInputItemDelegate {\n    getHeight(element) {\n        if (element instanceof QuickPickSeparatorElement) {\n            return 30;\n        }\n        return element.saneDetail ? 44 : 22;\n    }\n    getTemplateId(element) {\n        if (element instanceof QuickPickItemElement) {\n            return QuickPickItemElementRenderer.ID;\n        }\n        else {\n            return QuickPickSeparatorElementRenderer.ID;\n        }\n    }\n}\nclass QuickInputAccessibilityProvider {\n    getWidgetAriaLabel() {\n        return localize('quickInput', \"Quick Input\");\n    }\n    getAriaLabel(element) {\n        var _a;\n        return ((_a = element.separator) === null || _a === void 0 ? void 0 : _a.label)\n            ? `${element.saneAriaLabel}, ${element.separator.label}`\n            : element.saneAriaLabel;\n    }\n    getWidgetRole() {\n        return 'listbox';\n    }\n    getRole(element) {\n        return element.hasCheckbox ? 'checkbox' : 'option';\n    }\n    isChecked(element) {\n        if (!element.hasCheckbox || !(element instanceof QuickPickItemElement)) {\n            return undefined;\n        }\n        return {\n            get value() { return element.checked; },\n            onDidChange: e => element.onChecked(() => e()),\n        };\n    }\n}\nclass BaseQuickInputListRenderer {\n    constructor(hoverDelegate) {\n        this.hoverDelegate = hoverDelegate;\n    }\n    // TODO: only do the common stuff here and have a subclass handle their specific stuff\n    renderTemplate(container) {\n        const data = Object.create(null);\n        data.toDisposeElement = new DisposableStore();\n        data.toDisposeTemplate = new DisposableStore();\n        data.entry = dom.append(container, $('.quick-input-list-entry'));\n        // Checkbox\n        const label = dom.append(data.entry, $('label.quick-input-list-label'));\n        data.toDisposeTemplate.add(dom.addStandardDisposableListener(label, dom.EventType.CLICK, e => {\n            if (!data.checkbox.offsetParent) { // If checkbox not visible:\n                e.preventDefault(); // Prevent toggle of checkbox when it is immediately shown afterwards. #91740\n            }\n        }));\n        data.checkbox = dom.append(label, $('input.quick-input-list-checkbox'));\n        data.checkbox.type = 'checkbox';\n        // Rows\n        const rows = dom.append(label, $('.quick-input-list-rows'));\n        const row1 = dom.append(rows, $('.quick-input-list-row'));\n        const row2 = dom.append(rows, $('.quick-input-list-row'));\n        // Label\n        data.label = new IconLabel(row1, { supportHighlights: true, supportDescriptionHighlights: true, supportIcons: true, hoverDelegate: this.hoverDelegate });\n        data.toDisposeTemplate.add(data.label);\n        data.icon = dom.prepend(data.label.element, $('.quick-input-list-icon'));\n        // Keybinding\n        const keybindingContainer = dom.append(row1, $('.quick-input-list-entry-keybinding'));\n        data.keybinding = new KeybindingLabel(keybindingContainer, OS);\n        data.toDisposeTemplate.add(data.keybinding);\n        // Detail\n        const detailContainer = dom.append(row2, $('.quick-input-list-label-meta'));\n        data.detail = new IconLabel(detailContainer, { supportHighlights: true, supportIcons: true, hoverDelegate: this.hoverDelegate });\n        data.toDisposeTemplate.add(data.detail);\n        // Separator\n        data.separator = dom.append(data.entry, $('.quick-input-list-separator'));\n        // Actions\n        data.actionBar = new ActionBar(data.entry, this.hoverDelegate ? { hoverDelegate: this.hoverDelegate } : undefined);\n        data.actionBar.domNode.classList.add('quick-input-list-entry-action-bar');\n        data.toDisposeTemplate.add(data.actionBar);\n        return data;\n    }\n    disposeTemplate(data) {\n        data.toDisposeElement.dispose();\n        data.toDisposeTemplate.dispose();\n    }\n    disposeElement(_element, _index, data) {\n        data.toDisposeElement.clear();\n        data.actionBar.clear();\n    }\n}\nlet QuickPickItemElementRenderer = QuickPickItemElementRenderer_1 = class QuickPickItemElementRenderer extends BaseQuickInputListRenderer {\n    constructor(hoverDelegate, themeService) {\n        super(hoverDelegate);\n        this.themeService = themeService;\n        // Follow what we do in the separator renderer\n        this._itemsWithSeparatorsFrequency = new Map();\n    }\n    get templateId() {\n        return QuickPickItemElementRenderer_1.ID;\n    }\n    renderTemplate(container) {\n        const data = super.renderTemplate(container);\n        data.toDisposeTemplate.add(dom.addStandardDisposableListener(data.checkbox, dom.EventType.CHANGE, e => {\n            data.element.checked = data.checkbox.checked;\n        }));\n        return data;\n    }\n    renderElement(node, index, data) {\n        var _a, _b, _c;\n        const element = node.element;\n        data.element = element;\n        element.element = (_a = data.entry) !== null && _a !== void 0 ? _a : undefined;\n        const mainItem = element.item;\n        data.checkbox.checked = element.checked;\n        data.toDisposeElement.add(element.onChecked(checked => data.checkbox.checked = checked));\n        data.checkbox.disabled = element.checkboxDisabled;\n        const { labelHighlights, descriptionHighlights, detailHighlights } = element;\n        // Icon\n        if (mainItem.iconPath) {\n            const icon = isDark(this.themeService.getColorTheme().type) ? mainItem.iconPath.dark : ((_b = mainItem.iconPath.light) !== null && _b !== void 0 ? _b : mainItem.iconPath.dark);\n            const iconUrl = URI.revive(icon);\n            data.icon.className = 'quick-input-list-icon';\n            data.icon.style.backgroundImage = dom.asCSSUrl(iconUrl);\n        }\n        else {\n            data.icon.style.backgroundImage = '';\n            data.icon.className = mainItem.iconClass ? `quick-input-list-icon ${mainItem.iconClass}` : '';\n        }\n        // Label\n        let descriptionTitle;\n        // if we have a tooltip, that will be the hover,\n        // with the saneDescription as fallback if it\n        // is defined\n        if (!element.saneTooltip && element.saneDescription) {\n            descriptionTitle = {\n                markdown: {\n                    value: element.saneDescription,\n                    supportThemeIcons: true\n                },\n                markdownNotSupportedFallback: element.saneDescription\n            };\n        }\n        const options = {\n            matches: labelHighlights || [],\n            // If we have a tooltip, we want that to be shown and not any other hover\n            descriptionTitle,\n            descriptionMatches: descriptionHighlights || [],\n            labelEscapeNewLines: true\n        };\n        options.extraClasses = mainItem.iconClasses;\n        options.italic = mainItem.italic;\n        options.strikethrough = mainItem.strikethrough;\n        data.entry.classList.remove('quick-input-list-separator-as-item');\n        data.label.setLabel(element.saneLabel, element.saneDescription, options);\n        // Keybinding\n        data.keybinding.set(mainItem.keybinding);\n        // Detail\n        if (element.saneDetail) {\n            let title;\n            // If we have a tooltip, we want that to be shown and not any other hover\n            if (!element.saneTooltip) {\n                title = {\n                    markdown: {\n                        value: element.saneDetail,\n                        supportThemeIcons: true\n                    },\n                    markdownNotSupportedFallback: element.saneDetail\n                };\n            }\n            data.detail.element.style.display = '';\n            data.detail.setLabel(element.saneDetail, undefined, {\n                matches: detailHighlights,\n                title,\n                labelEscapeNewLines: true\n            });\n        }\n        else {\n            data.detail.element.style.display = 'none';\n        }\n        // Separator\n        if ((_c = element.separator) === null || _c === void 0 ? void 0 : _c.label) {\n            data.separator.textContent = element.separator.label;\n            data.separator.style.display = '';\n            this.addItemWithSeparator(element);\n        }\n        else {\n            data.separator.style.display = 'none';\n        }\n        data.entry.classList.toggle('quick-input-list-separator-border', !!element.separator);\n        // Actions\n        const buttons = mainItem.buttons;\n        if (buttons && buttons.length) {\n            data.actionBar.push(buttons.map((button, index) => quickInputButtonToAction(button, `id-${index}`, () => element.fireButtonTriggered({ button, item: element.item }))), { icon: true, label: false });\n            data.entry.classList.add('has-actions');\n        }\n        else {\n            data.entry.classList.remove('has-actions');\n        }\n    }\n    disposeElement(element, _index, data) {\n        this.removeItemWithSeparator(element.element);\n        super.disposeElement(element, _index, data);\n    }\n    isItemWithSeparatorVisible(item) {\n        return this._itemsWithSeparatorsFrequency.has(item);\n    }\n    addItemWithSeparator(item) {\n        this._itemsWithSeparatorsFrequency.set(item, (this._itemsWithSeparatorsFrequency.get(item) || 0) + 1);\n    }\n    removeItemWithSeparator(item) {\n        const frequency = this._itemsWithSeparatorsFrequency.get(item) || 0;\n        if (frequency > 1) {\n            this._itemsWithSeparatorsFrequency.set(item, frequency - 1);\n        }\n        else {\n            this._itemsWithSeparatorsFrequency.delete(item);\n        }\n    }\n};\nQuickPickItemElementRenderer.ID = 'quickpickitem';\nQuickPickItemElementRenderer = QuickPickItemElementRenderer_1 = __decorate([\n    __param(1, IThemeService)\n], QuickPickItemElementRenderer);\nclass QuickPickSeparatorElementRenderer extends BaseQuickInputListRenderer {\n    constructor() {\n        super(...arguments);\n        // This is a frequency map because sticky scroll re-uses the same renderer to render a second\n        // instance of the same separator.\n        this._visibleSeparatorsFrequency = new Map();\n    }\n    get templateId() {\n        return QuickPickSeparatorElementRenderer.ID;\n    }\n    get visibleSeparators() {\n        return [...this._visibleSeparatorsFrequency.keys()];\n    }\n    isSeparatorVisible(separator) {\n        return this._visibleSeparatorsFrequency.has(separator);\n    }\n    renderElement(node, index, data) {\n        var _a;\n        const element = node.element;\n        data.element = element;\n        element.element = (_a = data.entry) !== null && _a !== void 0 ? _a : undefined;\n        element.element.classList.toggle('focus-inside', !!element.focusInsideSeparator);\n        const mainItem = element.separator;\n        const { labelHighlights, descriptionHighlights, detailHighlights } = element;\n        // Icon\n        data.icon.style.backgroundImage = '';\n        data.icon.className = '';\n        // Label\n        let descriptionTitle;\n        // if we have a tooltip, that will be the hover,\n        // with the saneDescription as fallback if it\n        // is defined\n        if (!element.saneTooltip && element.saneDescription) {\n            descriptionTitle = {\n                markdown: {\n                    value: element.saneDescription,\n                    supportThemeIcons: true\n                },\n                markdownNotSupportedFallback: element.saneDescription\n            };\n        }\n        const options = {\n            matches: labelHighlights || [],\n            // If we have a tooltip, we want that to be shown and not any other hover\n            descriptionTitle,\n            descriptionMatches: descriptionHighlights || [],\n            labelEscapeNewLines: true\n        };\n        data.entry.classList.add('quick-input-list-separator-as-item');\n        data.label.setLabel(element.saneLabel, element.saneDescription, options);\n        // Detail\n        if (element.saneDetail) {\n            let title;\n            // If we have a tooltip, we want that to be shown and not any other hover\n            if (!element.saneTooltip) {\n                title = {\n                    markdown: {\n                        value: element.saneDetail,\n                        supportThemeIcons: true\n                    },\n                    markdownNotSupportedFallback: element.saneDetail\n                };\n            }\n            data.detail.element.style.display = '';\n            data.detail.setLabel(element.saneDetail, undefined, {\n                matches: detailHighlights,\n                title,\n                labelEscapeNewLines: true\n            });\n        }\n        else {\n            data.detail.element.style.display = 'none';\n        }\n        // Separator\n        data.separator.style.display = 'none';\n        data.entry.classList.add('quick-input-list-separator-border');\n        // Actions\n        const buttons = mainItem.buttons;\n        if (buttons && buttons.length) {\n            data.actionBar.push(buttons.map((button, index) => quickInputButtonToAction(button, `id-${index}`, () => element.fireSeparatorButtonTriggered({ button, separator: element.separator }))), { icon: true, label: false });\n            data.entry.classList.add('has-actions');\n        }\n        else {\n            data.entry.classList.remove('has-actions');\n        }\n        this.addSeparator(element);\n    }\n    disposeElement(element, _index, data) {\n        var _a;\n        this.removeSeparator(element.element);\n        if (!this.isSeparatorVisible(element.element)) {\n            (_a = element.element.element) === null || _a === void 0 ? void 0 : _a.classList.remove('focus-inside');\n        }\n        super.disposeElement(element, _index, data);\n    }\n    addSeparator(separator) {\n        this._visibleSeparatorsFrequency.set(separator, (this._visibleSeparatorsFrequency.get(separator) || 0) + 1);\n    }\n    removeSeparator(separator) {\n        const frequency = this._visibleSeparatorsFrequency.get(separator) || 0;\n        if (frequency > 1) {\n            this._visibleSeparatorsFrequency.set(separator, frequency - 1);\n        }\n        else {\n            this._visibleSeparatorsFrequency.delete(separator);\n        }\n    }\n}\nQuickPickSeparatorElementRenderer.ID = 'quickpickseparator';\nlet QuickInputTree = class QuickInputTree extends Disposable {\n    constructor(parent, hoverDelegate, linkOpenerDelegate, id, instantiationService, accessibilityService) {\n        super();\n        this.parent = parent;\n        this.hoverDelegate = hoverDelegate;\n        this.linkOpenerDelegate = linkOpenerDelegate;\n        this.accessibilityService = accessibilityService;\n        this._onKeyDown = new Emitter();\n        this._onLeave = new Emitter();\n        /**\n         * Event that is fired when the tree would no longer have focus.\n        */\n        this.onLeave = this._onLeave.event;\n        this._onChangedAllVisibleChecked = new Emitter();\n        this.onChangedAllVisibleChecked = this._onChangedAllVisibleChecked.event;\n        this._onChangedCheckedCount = new Emitter();\n        this.onChangedCheckedCount = this._onChangedCheckedCount.event;\n        this._onChangedVisibleCount = new Emitter();\n        this.onChangedVisibleCount = this._onChangedVisibleCount.event;\n        this._onChangedCheckedElements = new Emitter();\n        this.onChangedCheckedElements = this._onChangedCheckedElements.event;\n        this._onButtonTriggered = new Emitter();\n        this.onButtonTriggered = this._onButtonTriggered.event;\n        this._onSeparatorButtonTriggered = new Emitter();\n        this.onSeparatorButtonTriggered = this._onSeparatorButtonTriggered.event;\n        this._elementChecked = new Emitter();\n        this._inputElements = new Array();\n        this._elementTree = new Array();\n        this._itemElements = new Array();\n        // Elements that apply to the current set of elements\n        this._elementDisposable = this._register(new DisposableStore());\n        // This is used to prevent setting the checked state of a single element from firing the checked events\n        // so that we can batch them together. This can probably be improved by handling events differently,\n        // but this works for now. An observable would probably be ideal for this.\n        this._shouldFireCheckedEvents = true;\n        this._matchOnDescription = false;\n        this._matchOnDetail = false;\n        this._matchOnLabel = true;\n        this._matchOnLabelMode = 'fuzzy';\n        this._sortByLabel = true;\n        this._shouldLoop = true;\n        this._container = dom.append(this.parent, $('.quick-input-list'));\n        this._separatorRenderer = new QuickPickSeparatorElementRenderer(hoverDelegate);\n        this._itemRenderer = instantiationService.createInstance(QuickPickItemElementRenderer, hoverDelegate);\n        this._tree = this._register(instantiationService.createInstance((WorkbenchObjectTree), 'QuickInput', this._container, new QuickInputItemDelegate(), [this._itemRenderer, this._separatorRenderer], {\n            accessibilityProvider: new QuickInputAccessibilityProvider(),\n            setRowLineHeight: false,\n            multipleSelectionSupport: false,\n            hideTwistiesOfChildlessElements: true,\n            renderIndentGuides: RenderIndentGuides.None,\n            findWidgetEnabled: false,\n            indent: 0,\n            horizontalScrolling: false,\n            allowNonCollapsibleParents: true,\n            alwaysConsumeMouseWheel: true\n        }));\n        this._tree.getHTMLElement().id = id;\n        this._registerListeners();\n    }\n    //#region public getters/setters\n    get onDidChangeFocus() {\n        return Event.map(this._tree.onDidChangeFocus, e => e.elements.filter((e) => e instanceof QuickPickItemElement).map(e => e.item));\n    }\n    get onDidChangeSelection() {\n        return Event.map(this._tree.onDidChangeSelection, e => ({\n            items: e.elements.filter((e) => e instanceof QuickPickItemElement).map(e => e.item),\n            event: e.browserEvent\n        }));\n    }\n    get scrollTop() {\n        return this._tree.scrollTop;\n    }\n    set scrollTop(scrollTop) {\n        this._tree.scrollTop = scrollTop;\n    }\n    get ariaLabel() {\n        return this._tree.ariaLabel;\n    }\n    set ariaLabel(label) {\n        this._tree.ariaLabel = label !== null && label !== void 0 ? label : '';\n    }\n    set enabled(value) {\n        this._tree.getHTMLElement().style.pointerEvents = value ? '' : 'none';\n    }\n    get matchOnDescription() {\n        return this._matchOnDescription;\n    }\n    set matchOnDescription(value) {\n        this._matchOnDescription = value;\n    }\n    get matchOnDetail() {\n        return this._matchOnDetail;\n    }\n    set matchOnDetail(value) {\n        this._matchOnDetail = value;\n    }\n    get matchOnLabel() {\n        return this._matchOnLabel;\n    }\n    set matchOnLabel(value) {\n        this._matchOnLabel = value;\n    }\n    get matchOnLabelMode() {\n        return this._matchOnLabelMode;\n    }\n    set matchOnLabelMode(value) {\n        this._matchOnLabelMode = value;\n    }\n    get sortByLabel() {\n        return this._sortByLabel;\n    }\n    set sortByLabel(value) {\n        this._sortByLabel = value;\n    }\n    get shouldLoop() {\n        return this._shouldLoop;\n    }\n    set shouldLoop(value) {\n        this._shouldLoop = value;\n    }\n    //#endregion\n    //#region register listeners\n    _registerListeners() {\n        this._registerOnKeyDown();\n        this._registerOnContainerClick();\n        this._registerOnMouseMiddleClick();\n        this._registerOnElementChecked();\n        this._registerOnContextMenu();\n        this._registerHoverListeners();\n        this._registerSelectionChangeListener();\n        this._registerSeparatorActionShowingListeners();\n    }\n    _registerOnKeyDown() {\n        // TODO: Should this be added at a higher level?\n        this._register(this._tree.onKeyDown(e => {\n            const event = new StandardKeyboardEvent(e);\n            switch (event.keyCode) {\n                case 10 /* KeyCode.Space */:\n                    this.toggleCheckbox();\n                    break;\n            }\n            this._onKeyDown.fire(event);\n        }));\n    }\n    _registerOnContainerClick() {\n        this._register(dom.addDisposableListener(this._container, dom.EventType.CLICK, e => {\n            if (e.x || e.y) { // Avoid 'click' triggered by 'space' on checkbox.\n                this._onLeave.fire();\n            }\n        }));\n    }\n    _registerOnMouseMiddleClick() {\n        this._register(dom.addDisposableListener(this._container, dom.EventType.AUXCLICK, e => {\n            if (e.button === 1) {\n                this._onLeave.fire();\n            }\n        }));\n    }\n    _registerOnElementChecked() {\n        this._register(this._elementChecked.event(_ => this._fireCheckedEvents()));\n    }\n    _registerOnContextMenu() {\n        this._register(this._tree.onContextMenu(e => {\n            if (e.element) {\n                e.browserEvent.preventDefault();\n                // we want to treat a context menu event as\n                // a gesture to open the item at the index\n                // since we do not have any context menu\n                // this enables for example macOS to Ctrl-\n                // click on an item to open it.\n                this._tree.setSelection([e.element]);\n            }\n        }));\n    }\n    _registerHoverListeners() {\n        const delayer = this._register(new ThrottledDelayer(this.hoverDelegate.delay));\n        this._register(this._tree.onMouseOver(async (e) => {\n            var _a;\n            // If we hover over an anchor element, we don't want to show the hover because\n            // the anchor may have a tooltip that we want to show instead.\n            if (dom.isHTMLAnchorElement(e.browserEvent.target)) {\n                delayer.cancel();\n                return;\n            }\n            if (\n            // anchors are an exception as called out above so we skip them here\n            !(dom.isHTMLAnchorElement(e.browserEvent.relatedTarget)) &&\n                // check if the mouse is still over the same element\n                dom.isAncestor(e.browserEvent.relatedTarget, (_a = e.element) === null || _a === void 0 ? void 0 : _a.element)) {\n                return;\n            }\n            try {\n                await delayer.trigger(async () => {\n                    if (e.element instanceof QuickPickItemElement) {\n                        this.showHover(e.element);\n                    }\n                });\n            }\n            catch (e) {\n                // Ignore cancellation errors due to mouse out\n                if (!isCancellationError(e)) {\n                    throw e;\n                }\n            }\n        }));\n        this._register(this._tree.onMouseOut(e => {\n            var _a;\n            // onMouseOut triggers every time a new element has been moused over\n            // even if it's on the same list item. We only want one event, so we\n            // check if the mouse is still over the same element.\n            if (dom.isAncestor(e.browserEvent.relatedTarget, (_a = e.element) === null || _a === void 0 ? void 0 : _a.element)) {\n                return;\n            }\n            delayer.cancel();\n        }));\n    }\n    /**\n     * Register's focus change and mouse events so that we can track when items inside of a\n     * separator's section are focused or hovered so that we can display the separator's actions\n     */\n    _registerSeparatorActionShowingListeners() {\n        this._register(this._tree.onDidChangeFocus(e => {\n            const parent = e.elements[0]\n                ? this._tree.getParentElement(e.elements[0])\n                // treat null as focus lost and when we have no separators\n                : null;\n            for (const separator of this._separatorRenderer.visibleSeparators) {\n                const value = separator === parent;\n                // get bitness of ACTIVE_ITEM and check if it changed\n                const currentActive = !!(separator.focusInsideSeparator & QuickPickSeparatorFocusReason.ACTIVE_ITEM);\n                if (currentActive !== value) {\n                    if (value) {\n                        separator.focusInsideSeparator |= QuickPickSeparatorFocusReason.ACTIVE_ITEM;\n                    }\n                    else {\n                        separator.focusInsideSeparator &= ~QuickPickSeparatorFocusReason.ACTIVE_ITEM;\n                    }\n                    this._tree.rerender(separator);\n                }\n            }\n        }));\n        this._register(this._tree.onMouseOver(e => {\n            const parent = e.element\n                ? this._tree.getParentElement(e.element)\n                : null;\n            for (const separator of this._separatorRenderer.visibleSeparators) {\n                if (separator !== parent) {\n                    continue;\n                }\n                const currentMouse = !!(separator.focusInsideSeparator & QuickPickSeparatorFocusReason.MOUSE_HOVER);\n                if (!currentMouse) {\n                    separator.focusInsideSeparator |= QuickPickSeparatorFocusReason.MOUSE_HOVER;\n                    this._tree.rerender(separator);\n                }\n            }\n        }));\n        this._register(this._tree.onMouseOut(e => {\n            const parent = e.element\n                ? this._tree.getParentElement(e.element)\n                : null;\n            for (const separator of this._separatorRenderer.visibleSeparators) {\n                if (separator !== parent) {\n                    continue;\n                }\n                const currentMouse = !!(separator.focusInsideSeparator & QuickPickSeparatorFocusReason.MOUSE_HOVER);\n                if (currentMouse) {\n                    separator.focusInsideSeparator &= ~QuickPickSeparatorFocusReason.MOUSE_HOVER;\n                    this._tree.rerender(separator);\n                }\n            }\n        }));\n    }\n    _registerSelectionChangeListener() {\n        // When the user selects a separator, the separator will move to the top and focus will be\n        // set to the first element after the separator.\n        this._register(this._tree.onDidChangeSelection(e => {\n            const elementsWithoutSeparators = e.elements.filter((e) => e instanceof QuickPickItemElement);\n            if (elementsWithoutSeparators.length !== e.elements.length) {\n                if (e.elements.length === 1 && e.elements[0] instanceof QuickPickSeparatorElement) {\n                    this._tree.setFocus([e.elements[0].children[0]]);\n                    this._tree.reveal(e.elements[0], 0);\n                }\n                this._tree.setSelection(elementsWithoutSeparators);\n            }\n        }));\n    }\n    //#endregion\n    //#region public methods\n    getAllVisibleChecked() {\n        return this._allVisibleChecked(this._itemElements, false);\n    }\n    getCheckedCount() {\n        return this._itemElements.filter(element => element.checked).length;\n    }\n    getVisibleCount() {\n        return this._itemElements.filter(e => !e.hidden).length;\n    }\n    setAllVisibleChecked(checked) {\n        try {\n            this._shouldFireCheckedEvents = false;\n            this._itemElements.forEach(element => {\n                if (!element.hidden && !element.checkboxDisabled) {\n                    // Would fire an event if we didn't have the flag set\n                    element.checked = checked;\n                }\n            });\n        }\n        finally {\n            this._shouldFireCheckedEvents = true;\n            this._fireCheckedEvents();\n        }\n    }\n    setElements(inputElements) {\n        this._elementDisposable.clear();\n        this._inputElements = inputElements;\n        const hasCheckbox = this.parent.classList.contains('show-checkboxes');\n        let currentSeparatorElement;\n        this._itemElements = new Array();\n        this._elementTree = inputElements.reduce((result, item, index) => {\n            let element;\n            if (item.type === 'separator') {\n                if (!item.buttons) {\n                    // This separator will be rendered as a part of the list item\n                    return result;\n                }\n                currentSeparatorElement = new QuickPickSeparatorElement(index, (event) => this.fireSeparatorButtonTriggered(event), item);\n                element = currentSeparatorElement;\n            }\n            else {\n                const previous = index > 0 ? inputElements[index - 1] : undefined;\n                let separator;\n                if (previous && previous.type === 'separator' && !previous.buttons) {\n                    // Found an inline separator so we clear out the current separator element\n                    currentSeparatorElement = undefined;\n                    separator = previous;\n                }\n                const qpi = new QuickPickItemElement(index, hasCheckbox, (event) => this.fireButtonTriggered(event), this._elementChecked, item, separator);\n                this._itemElements.push(qpi);\n                if (currentSeparatorElement) {\n                    currentSeparatorElement.children.push(qpi);\n                    return result;\n                }\n                element = qpi;\n            }\n            result.push(element);\n            return result;\n        }, new Array());\n        const elements = new Array();\n        let visibleCount = 0;\n        for (const element of this._elementTree) {\n            if (element instanceof QuickPickSeparatorElement) {\n                elements.push({\n                    element,\n                    collapsible: false,\n                    collapsed: false,\n                    children: element.children.map(e => ({\n                        element: e,\n                        collapsible: false,\n                        collapsed: false,\n                    })),\n                });\n                visibleCount += element.children.length + 1; // +1 for the separator itself;\n            }\n            else {\n                elements.push({\n                    element,\n                    collapsible: false,\n                    collapsed: false,\n                });\n                visibleCount++;\n            }\n        }\n        this._tree.setChildren(null, elements);\n        this._onChangedVisibleCount.fire(visibleCount);\n        // Accessibility hack, unfortunately on next tick\n        // https://github.com/microsoft/vscode/issues/211976\n        if (this.accessibilityService.isScreenReaderOptimized()) {\n            setTimeout(() => {\n                const focusedElement = this._tree.getHTMLElement().querySelector(`.monaco-list-row.focused`);\n                const parent = focusedElement === null || focusedElement === void 0 ? void 0 : focusedElement.parentNode;\n                if (focusedElement && parent) {\n                    const nextSibling = focusedElement.nextSibling;\n                    parent.removeChild(focusedElement);\n                    parent.insertBefore(focusedElement, nextSibling);\n                }\n            }, 0);\n        }\n    }\n    setFocusedElements(items) {\n        const elements = items.map(item => this._itemElements.find(e => e.item === item))\n            .filter((e) => !!e);\n        this._tree.setFocus(elements);\n        if (items.length > 0) {\n            const focused = this._tree.getFocus()[0];\n            if (focused) {\n                this._tree.reveal(focused);\n            }\n        }\n    }\n    getActiveDescendant() {\n        return this._tree.getHTMLElement().getAttribute('aria-activedescendant');\n    }\n    setSelectedElements(items) {\n        const elements = items.map(item => this._itemElements.find(e => e.item === item))\n            .filter((e) => !!e);\n        this._tree.setSelection(elements);\n    }\n    getCheckedElements() {\n        return this._itemElements.filter(e => e.checked)\n            .map(e => e.item);\n    }\n    setCheckedElements(items) {\n        try {\n            this._shouldFireCheckedEvents = false;\n            const checked = new Set();\n            for (const item of items) {\n                checked.add(item);\n            }\n            for (const element of this._itemElements) {\n                // Would fire an event if we didn't have the flag set\n                element.checked = checked.has(element.item);\n            }\n        }\n        finally {\n            this._shouldFireCheckedEvents = true;\n            this._fireCheckedEvents();\n        }\n    }\n    focus(what) {\n        var _a;\n        if (!this._itemElements.length) {\n            return;\n        }\n        if (what === QuickPickFocus.Second && this._itemElements.length < 2) {\n            what = QuickPickFocus.First;\n        }\n        switch (what) {\n            case QuickPickFocus.First:\n                this._tree.scrollTop = 0;\n                this._tree.focusFirst(undefined, (e) => e.element instanceof QuickPickItemElement);\n                break;\n            case QuickPickFocus.Second:\n                this._tree.scrollTop = 0;\n                this._tree.setFocus([this._itemElements[1]]);\n                break;\n            case QuickPickFocus.Last:\n                this._tree.scrollTop = this._tree.scrollHeight;\n                this._tree.setFocus([this._itemElements[this._itemElements.length - 1]]);\n                break;\n            case QuickPickFocus.Next: {\n                const prevFocus = this._tree.getFocus();\n                this._tree.focusNext(undefined, this._shouldLoop, undefined, (e) => {\n                    if (!(e.element instanceof QuickPickItemElement)) {\n                        return false;\n                    }\n                    this._tree.reveal(e.element);\n                    return true;\n                });\n                const currentFocus = this._tree.getFocus();\n                if (prevFocus.length && prevFocus[0] === currentFocus[0] && prevFocus[0] === this._itemElements[this._itemElements.length - 1]) {\n                    this._onLeave.fire();\n                }\n                break;\n            }\n            case QuickPickFocus.Previous: {\n                const prevFocus = this._tree.getFocus();\n                this._tree.focusPrevious(undefined, this._shouldLoop, undefined, (e) => {\n                    if (!(e.element instanceof QuickPickItemElement)) {\n                        return false;\n                    }\n                    const parent = this._tree.getParentElement(e.element);\n                    if (parent === null || parent.children[0] !== e.element) {\n                        this._tree.reveal(e.element);\n                    }\n                    else {\n                        // Only if we are the first child of a separator do we reveal the separator\n                        this._tree.reveal(parent);\n                    }\n                    return true;\n                });\n                const currentFocus = this._tree.getFocus();\n                if (prevFocus.length && prevFocus[0] === currentFocus[0] && prevFocus[0] === this._itemElements[0]) {\n                    this._onLeave.fire();\n                }\n                break;\n            }\n            case QuickPickFocus.NextPage:\n                this._tree.focusNextPage(undefined, (e) => {\n                    if (!(e.element instanceof QuickPickItemElement)) {\n                        return false;\n                    }\n                    this._tree.reveal(e.element);\n                    return true;\n                });\n                break;\n            case QuickPickFocus.PreviousPage:\n                this._tree.focusPreviousPage(undefined, (e) => {\n                    if (!(e.element instanceof QuickPickItemElement)) {\n                        return false;\n                    }\n                    const parent = this._tree.getParentElement(e.element);\n                    if (parent === null || parent.children[0] !== e.element) {\n                        this._tree.reveal(e.element);\n                    }\n                    else {\n                        this._tree.reveal(parent);\n                    }\n                    return true;\n                });\n                break;\n            case QuickPickFocus.NextSeparator: {\n                let foundSeparatorAsItem = false;\n                const before = this._tree.getFocus()[0];\n                this._tree.focusNext(undefined, true, undefined, (e) => {\n                    if (foundSeparatorAsItem) {\n                        // This should be the index right after the separator so it\n                        // is the item we want to focus.\n                        return true;\n                    }\n                    if (e.element instanceof QuickPickSeparatorElement) {\n                        foundSeparatorAsItem = true;\n                        // If the separator is visible, then we should just reveal its first child so it's not as jarring.\n                        if (this._separatorRenderer.isSeparatorVisible(e.element)) {\n                            this._tree.reveal(e.element.children[0]);\n                        }\n                        else {\n                            // If the separator is not visible, then we should\n                            // push it up to the top of the list.\n                            this._tree.reveal(e.element, 0);\n                        }\n                    }\n                    else if (e.element instanceof QuickPickItemElement) {\n                        if (e.element.separator) {\n                            if (this._itemRenderer.isItemWithSeparatorVisible(e.element)) {\n                                this._tree.reveal(e.element);\n                            }\n                            else {\n                                this._tree.reveal(e.element, 0);\n                            }\n                            return true;\n                        }\n                        else if (e.element === this._elementTree[0]) {\n                            // We should stop at the first item in the list if it's a regular item.\n                            this._tree.reveal(e.element, 0);\n                            return true;\n                        }\n                    }\n                    return false;\n                });\n                const after = this._tree.getFocus()[0];\n                if (before === after) {\n                    // If we didn't move, then we should just move to the end\n                    // of the list.\n                    this._tree.scrollTop = this._tree.scrollHeight;\n                    this._tree.setFocus([this._itemElements[this._itemElements.length - 1]]);\n                }\n                break;\n            }\n            case QuickPickFocus.PreviousSeparator: {\n                let focusElement;\n                // If we are already sitting on an inline separator, then we\n                // have already found the _current_ separator and need to\n                // move to the previous one.\n                let foundSeparator = !!((_a = this._tree.getFocus()[0]) === null || _a === void 0 ? void 0 : _a.separator);\n                this._tree.focusPrevious(undefined, true, undefined, (e) => {\n                    if (e.element instanceof QuickPickSeparatorElement) {\n                        if (foundSeparator) {\n                            if (!focusElement) {\n                                if (this._separatorRenderer.isSeparatorVisible(e.element)) {\n                                    this._tree.reveal(e.element);\n                                }\n                                else {\n                                    this._tree.reveal(e.element, 0);\n                                }\n                                focusElement = e.element.children[0];\n                            }\n                        }\n                        else {\n                            foundSeparator = true;\n                        }\n                    }\n                    else if (e.element instanceof QuickPickItemElement) {\n                        if (!focusElement) {\n                            if (e.element.separator) {\n                                if (this._itemRenderer.isItemWithSeparatorVisible(e.element)) {\n                                    this._tree.reveal(e.element);\n                                }\n                                else {\n                                    this._tree.reveal(e.element, 0);\n                                }\n                                focusElement = e.element;\n                            }\n                            else if (e.element === this._elementTree[0]) {\n                                // We should stop at the first item in the list if it's a regular item.\n                                this._tree.reveal(e.element, 0);\n                                return true;\n                            }\n                        }\n                    }\n                    return false;\n                });\n                if (focusElement) {\n                    this._tree.setFocus([focusElement]);\n                }\n                break;\n            }\n        }\n    }\n    clearFocus() {\n        this._tree.setFocus([]);\n    }\n    domFocus() {\n        this._tree.domFocus();\n    }\n    layout(maxHeight) {\n        this._tree.getHTMLElement().style.maxHeight = maxHeight ? `${\n        // Make sure height aligns with list item heights\n        Math.floor(maxHeight / 44) * 44\n            // Add some extra height so that it's clear there's more to scroll\n            + 6}px` : '';\n        this._tree.layout();\n    }\n    filter(query) {\n        if (!(this._sortByLabel || this._matchOnLabel || this._matchOnDescription || this._matchOnDetail)) {\n            this._tree.layout();\n            return false;\n        }\n        const queryWithWhitespace = query;\n        query = query.trim();\n        // Reset filtering\n        if (!query || !(this.matchOnLabel || this.matchOnDescription || this.matchOnDetail)) {\n            this._itemElements.forEach(element => {\n                element.labelHighlights = undefined;\n                element.descriptionHighlights = undefined;\n                element.detailHighlights = undefined;\n                element.hidden = false;\n                const previous = element.index && this._inputElements[element.index - 1];\n                if (element.item) {\n                    element.separator = previous && previous.type === 'separator' && !previous.buttons ? previous : undefined;\n                }\n            });\n        }\n        // Filter by value (since we support icons in labels, use $(..) aware fuzzy matching)\n        else {\n            let currentSeparator;\n            this._elementTree.forEach(element => {\n                var _a, _b, _c, _d;\n                let labelHighlights;\n                if (this.matchOnLabelMode === 'fuzzy') {\n                    labelHighlights = this.matchOnLabel ? (_a = matchesFuzzyIconAware(query, parseLabelWithIcons(element.saneLabel))) !== null && _a !== void 0 ? _a : undefined : undefined;\n                }\n                else {\n                    labelHighlights = this.matchOnLabel ? (_b = matchesContiguousIconAware(queryWithWhitespace, parseLabelWithIcons(element.saneLabel))) !== null && _b !== void 0 ? _b : undefined : undefined;\n                }\n                const descriptionHighlights = this.matchOnDescription ? (_c = matchesFuzzyIconAware(query, parseLabelWithIcons(element.saneDescription || ''))) !== null && _c !== void 0 ? _c : undefined : undefined;\n                const detailHighlights = this.matchOnDetail ? (_d = matchesFuzzyIconAware(query, parseLabelWithIcons(element.saneDetail || ''))) !== null && _d !== void 0 ? _d : undefined : undefined;\n                if (labelHighlights || descriptionHighlights || detailHighlights) {\n                    element.labelHighlights = labelHighlights;\n                    element.descriptionHighlights = descriptionHighlights;\n                    element.detailHighlights = detailHighlights;\n                    element.hidden = false;\n                }\n                else {\n                    element.labelHighlights = undefined;\n                    element.descriptionHighlights = undefined;\n                    element.detailHighlights = undefined;\n                    element.hidden = element.item ? !element.item.alwaysShow : true;\n                }\n                // Ensure separators are filtered out first before deciding if we need to bring them back\n                if (element.item) {\n                    element.separator = undefined;\n                }\n                else if (element.separator) {\n                    element.hidden = true;\n                }\n                // we can show the separator unless the list gets sorted by match\n                if (!this.sortByLabel) {\n                    const previous = element.index && this._inputElements[element.index - 1];\n                    currentSeparator = previous && previous.type === 'separator' ? previous : currentSeparator;\n                    if (currentSeparator && !element.hidden) {\n                        element.separator = currentSeparator;\n                        currentSeparator = undefined;\n                    }\n                }\n            });\n        }\n        const shownElements = this._elementTree.filter(element => !element.hidden);\n        // Sort by value\n        if (this.sortByLabel && query) {\n            const normalizedSearchValue = query.toLowerCase();\n            shownElements.sort((a, b) => {\n                return compareEntries(a, b, normalizedSearchValue);\n            });\n        }\n        let currentSeparator;\n        const finalElements = shownElements.reduce((result, element, index) => {\n            if (element instanceof QuickPickItemElement) {\n                if (currentSeparator) {\n                    currentSeparator.children.push(element);\n                }\n                else {\n                    result.push(element);\n                }\n            }\n            else if (element instanceof QuickPickSeparatorElement) {\n                element.children = [];\n                currentSeparator = element;\n                result.push(element);\n            }\n            return result;\n        }, new Array());\n        const elements = new Array();\n        for (const element of finalElements) {\n            if (element instanceof QuickPickSeparatorElement) {\n                elements.push({\n                    element,\n                    collapsible: false,\n                    collapsed: false,\n                    children: element.children.map(e => ({\n                        element: e,\n                        collapsible: false,\n                        collapsed: false,\n                    })),\n                });\n            }\n            else {\n                elements.push({\n                    element,\n                    collapsible: false,\n                    collapsed: false,\n                });\n            }\n        }\n        this._tree.setChildren(null, elements);\n        this._tree.layout();\n        this._onChangedAllVisibleChecked.fire(this.getAllVisibleChecked());\n        this._onChangedVisibleCount.fire(shownElements.length);\n        return true;\n    }\n    toggleCheckbox() {\n        try {\n            this._shouldFireCheckedEvents = false;\n            const elements = this._tree.getFocus().filter((e) => e instanceof QuickPickItemElement);\n            const allChecked = this._allVisibleChecked(elements);\n            for (const element of elements) {\n                if (!element.checkboxDisabled) {\n                    // Would fire an event if we didn't have the flag set\n                    element.checked = !allChecked;\n                }\n            }\n        }\n        finally {\n            this._shouldFireCheckedEvents = true;\n            this._fireCheckedEvents();\n        }\n    }\n    display(display) {\n        this._container.style.display = display ? '' : 'none';\n    }\n    isDisplayed() {\n        return this._container.style.display !== 'none';\n    }\n    style(styles) {\n        this._tree.style(styles);\n    }\n    toggleHover() {\n        const focused = this._tree.getFocus()[0];\n        if (!(focused === null || focused === void 0 ? void 0 : focused.saneTooltip) || !(focused instanceof QuickPickItemElement)) {\n            return;\n        }\n        // if there's a hover already, hide it (toggle off)\n        if (this._lastHover && !this._lastHover.isDisposed) {\n            this._lastHover.dispose();\n            return;\n        }\n        // If there is no hover, show it (toggle on)\n        this.showHover(focused);\n        const store = new DisposableStore();\n        store.add(this._tree.onDidChangeFocus(e => {\n            if (e.elements[0] instanceof QuickPickItemElement) {\n                this.showHover(e.elements[0]);\n            }\n        }));\n        if (this._lastHover) {\n            store.add(this._lastHover);\n        }\n        this._elementDisposable.add(store);\n    }\n    //#endregion\n    //#region private methods\n    _allVisibleChecked(elements, whenNoneVisible = true) {\n        for (let i = 0, n = elements.length; i < n; i++) {\n            const element = elements[i];\n            if (!element.hidden) {\n                if (!element.checked) {\n                    return false;\n                }\n                else {\n                    whenNoneVisible = true;\n                }\n            }\n        }\n        return whenNoneVisible;\n    }\n    _fireCheckedEvents() {\n        if (!this._shouldFireCheckedEvents) {\n            return;\n        }\n        this._onChangedAllVisibleChecked.fire(this.getAllVisibleChecked());\n        this._onChangedCheckedCount.fire(this.getCheckedCount());\n        this._onChangedCheckedElements.fire(this.getCheckedElements());\n    }\n    fireButtonTriggered(event) {\n        this._onButtonTriggered.fire(event);\n    }\n    fireSeparatorButtonTriggered(event) {\n        this._onSeparatorButtonTriggered.fire(event);\n    }\n    /**\n     * Disposes of the hover and shows a new one for the given index if it has a tooltip.\n     * @param element The element to show the hover for\n     */\n    showHover(element) {\n        var _a, _b, _c;\n        if (this._lastHover && !this._lastHover.isDisposed) {\n            (_b = (_a = this.hoverDelegate).onDidHideHover) === null || _b === void 0 ? void 0 : _b.call(_a);\n            (_c = this._lastHover) === null || _c === void 0 ? void 0 : _c.dispose();\n        }\n        if (!element.element || !element.saneTooltip) {\n            return;\n        }\n        this._lastHover = this.hoverDelegate.showHover({\n            content: element.saneTooltip,\n            target: element.element,\n            linkHandler: (url) => {\n                this.linkOpenerDelegate(url);\n            },\n            appearance: {\n                showPointer: true,\n            },\n            container: this._container,\n            position: {\n                hoverPosition: 1 /* HoverPosition.RIGHT */\n            }\n        }, false);\n    }\n};\n__decorate([\n    memoize\n], QuickInputTree.prototype, \"onDidChangeFocus\", null);\n__decorate([\n    memoize\n], QuickInputTree.prototype, \"onDidChangeSelection\", null);\nQuickInputTree = __decorate([\n    __param(4, IInstantiationService),\n    __param(5, IAccessibilityService)\n], QuickInputTree);\nexport { QuickInputTree };\nfunction matchesContiguousIconAware(query, target) {\n    const { text, iconOffsets } = target;\n    // Return early if there are no icon markers in the word to match against\n    if (!iconOffsets || iconOffsets.length === 0) {\n        return matchesContiguous(query, text);\n    }\n    // Trim the word to match against because it could have leading\n    // whitespace now if the word started with an icon\n    const wordToMatchAgainstWithoutIconsTrimmed = ltrim(text, ' ');\n    const leadingWhitespaceOffset = text.length - wordToMatchAgainstWithoutIconsTrimmed.length;\n    // match on value without icon\n    const matches = matchesContiguous(query, wordToMatchAgainstWithoutIconsTrimmed);\n    // Map matches back to offsets with icon and trimming\n    if (matches) {\n        for (const match of matches) {\n            const iconOffset = iconOffsets[match.start + leadingWhitespaceOffset] /* icon offsets at index */ + leadingWhitespaceOffset /* overall leading whitespace offset */;\n            match.start += iconOffset;\n            match.end += iconOffset;\n        }\n    }\n    return matches;\n}\nfunction matchesContiguous(word, wordToMatchAgainst) {\n    const matchIndex = wordToMatchAgainst.toLowerCase().indexOf(word.toLowerCase());\n    if (matchIndex !== -1) {\n        return [{ start: matchIndex, end: matchIndex + word.length }];\n    }\n    return null;\n}\nfunction compareEntries(elementA, elementB, lookFor) {\n    const labelHighlightsA = elementA.labelHighlights || [];\n    const labelHighlightsB = elementB.labelHighlights || [];\n    if (labelHighlightsA.length && !labelHighlightsB.length) {\n        return -1;\n    }\n    if (!labelHighlightsA.length && labelHighlightsB.length) {\n        return 1;\n    }\n    if (labelHighlightsA.length === 0 && labelHighlightsB.length === 0) {\n        return 0;\n    }\n    return compareAnything(elementA.saneSortLabel, elementB.saneSortLabel, lookFor);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/quickinput/browser/quickInputUtils.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../../base/browser/dom.js';\nimport { DomEmitter } from '../../../base/browser/event.js';\nimport { Event } from '../../../base/common/event.js';\nimport { StandardKeyboardEvent } from '../../../base/browser/keyboardEvent.js';\nimport { Gesture, EventType as GestureEventType } from '../../../base/browser/touch.js';\nimport { renderLabelWithIcons } from '../../../base/browser/ui/iconLabel/iconLabels.js';\nimport { IdGenerator } from '../../../base/common/idGenerator.js';\nimport { parseLinkedText } from '../../../base/common/linkedText.js';\nimport './media/quickInput.css';\nimport { localize } from '../../../nls.js';\nconst iconPathToClass = {};\nconst iconClassGenerator = new IdGenerator('quick-input-button-icon-');\nfunction getIconClass(iconPath) {\n    if (!iconPath) {\n        return undefined;\n    }\n    let iconClass;\n    const key = iconPath.dark.toString();\n    if (iconPathToClass[key]) {\n        iconClass = iconPathToClass[key];\n    }\n    else {\n        iconClass = iconClassGenerator.nextId();\n        dom.createCSSRule(`.${iconClass}, .hc-light .${iconClass}`, `background-image: ${dom.asCSSUrl(iconPath.light || iconPath.dark)}`);\n        dom.createCSSRule(`.vs-dark .${iconClass}, .hc-black .${iconClass}`, `background-image: ${dom.asCSSUrl(iconPath.dark)}`);\n        iconPathToClass[key] = iconClass;\n    }\n    return iconClass;\n}\nexport function quickInputButtonToAction(button, id, run) {\n    let cssClasses = button.iconClass || getIconClass(button.iconPath);\n    if (button.alwaysVisible) {\n        cssClasses = cssClasses ? `${cssClasses} always-visible` : 'always-visible';\n    }\n    return {\n        id,\n        label: '',\n        tooltip: button.tooltip || '',\n        class: cssClasses,\n        enabled: true,\n        run\n    };\n}\nexport function renderQuickInputDescription(description, container, actionHandler) {\n    dom.reset(container);\n    const parsed = parseLinkedText(description);\n    let tabIndex = 0;\n    for (const node of parsed.nodes) {\n        if (typeof node === 'string') {\n            container.append(...renderLabelWithIcons(node));\n        }\n        else {\n            let title = node.title;\n            if (!title && node.href.startsWith('command:')) {\n                title = localize('executeCommand', \"Click to execute command '{0}'\", node.href.substring('command:'.length));\n            }\n            else if (!title) {\n                title = node.href;\n            }\n            const anchor = dom.$('a', { href: node.href, title, tabIndex: tabIndex++ }, node.label);\n            anchor.style.textDecoration = 'underline';\n            const handleOpen = (e) => {\n                if (dom.isEventLike(e)) {\n                    dom.EventHelper.stop(e, true);\n                }\n                actionHandler.callback(node.href);\n            };\n            const onClick = actionHandler.disposables.add(new DomEmitter(anchor, dom.EventType.CLICK)).event;\n            const onKeydown = actionHandler.disposables.add(new DomEmitter(anchor, dom.EventType.KEY_DOWN)).event;\n            const onSpaceOrEnter = Event.chain(onKeydown, $ => $.filter(e => {\n                const event = new StandardKeyboardEvent(e);\n                return event.equals(10 /* KeyCode.Space */) || event.equals(3 /* KeyCode.Enter */);\n            }));\n            actionHandler.disposables.add(Gesture.addTarget(anchor));\n            const onTap = actionHandler.disposables.add(new DomEmitter(anchor, GestureEventType.Tap)).event;\n            Event.any(onClick, onTap, onSpaceOrEnter)(handleOpen, null, actionHandler.disposables);\n            container.appendChild(anchor);\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/quickinput/common/quickAccess.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { coalesce } from '../../../base/common/arrays.js';\nimport { toDisposable } from '../../../base/common/lifecycle.js';\nimport { Registry } from '../../registry/common/platform.js';\nexport var DefaultQuickAccessFilterValue;\n(function (DefaultQuickAccessFilterValue) {\n    /**\n     * Keep the value as it is given to quick access.\n     */\n    DefaultQuickAccessFilterValue[DefaultQuickAccessFilterValue[\"PRESERVE\"] = 0] = \"PRESERVE\";\n    /**\n     * Use the value that was used last time something was accepted from the picker.\n     */\n    DefaultQuickAccessFilterValue[DefaultQuickAccessFilterValue[\"LAST\"] = 1] = \"LAST\";\n})(DefaultQuickAccessFilterValue || (DefaultQuickAccessFilterValue = {}));\nexport const Extensions = {\n    Quickaccess: 'workbench.contributions.quickaccess'\n};\nexport class QuickAccessRegistry {\n    constructor() {\n        this.providers = [];\n        this.defaultProvider = undefined;\n    }\n    registerQuickAccessProvider(provider) {\n        // Extract the default provider when no prefix is present\n        if (provider.prefix.length === 0) {\n            this.defaultProvider = provider;\n        }\n        else {\n            this.providers.push(provider);\n        }\n        // sort the providers by decreasing prefix length, such that longer\n        // prefixes take priority: 'ext' vs 'ext install' - the latter should win\n        this.providers.sort((providerA, providerB) => providerB.prefix.length - providerA.prefix.length);\n        return toDisposable(() => {\n            this.providers.splice(this.providers.indexOf(provider), 1);\n            if (this.defaultProvider === provider) {\n                this.defaultProvider = undefined;\n            }\n        });\n    }\n    getQuickAccessProviders() {\n        return coalesce([this.defaultProvider, ...this.providers]);\n    }\n    getQuickAccessProvider(prefix) {\n        const result = prefix ? (this.providers.find(provider => prefix.startsWith(provider.prefix)) || undefined) : undefined;\n        return result || this.defaultProvider;\n    }\n}\nRegistry.add(Extensions.Quickaccess, new QuickAccessRegistry());\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/quickinput/common/quickInput.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const NO_KEY_MODS = { ctrlCmd: false, alt: false };\nexport var QuickInputHideReason;\n(function (QuickInputHideReason) {\n    /**\n     * Focus moved away from the quick input.\n     */\n    QuickInputHideReason[QuickInputHideReason[\"Blur\"] = 1] = \"Blur\";\n    /**\n     * An explicit user gesture, e.g. pressing Escape key.\n     */\n    QuickInputHideReason[QuickInputHideReason[\"Gesture\"] = 2] = \"Gesture\";\n    /**\n     * Anything else.\n     */\n    QuickInputHideReason[QuickInputHideReason[\"Other\"] = 3] = \"Other\";\n})(QuickInputHideReason || (QuickInputHideReason = {}));\n/**\n * Represents the activation behavior for items in a quick input. This means which item will be\n * \"active\" (aka focused).\n */\nexport var ItemActivation;\n(function (ItemActivation) {\n    /**\n     * No item will be active.\n     */\n    ItemActivation[ItemActivation[\"NONE\"] = 0] = \"NONE\";\n    /**\n     * First item will be active.\n     */\n    ItemActivation[ItemActivation[\"FIRST\"] = 1] = \"FIRST\";\n    /**\n     * Second item will be active.\n     */\n    ItemActivation[ItemActivation[\"SECOND\"] = 2] = \"SECOND\";\n    /**\n     * Last item will be active.\n     */\n    ItemActivation[ItemActivation[\"LAST\"] = 3] = \"LAST\";\n})(ItemActivation || (ItemActivation = {}));\n/**\n * Represents the focus options for a quick pick.\n */\nexport var QuickPickFocus;\n(function (QuickPickFocus) {\n    /**\n     * Focus the first item in the list.\n     */\n    QuickPickFocus[QuickPickFocus[\"First\"] = 1] = \"First\";\n    /**\n     * Focus the second item in the list.\n     */\n    QuickPickFocus[QuickPickFocus[\"Second\"] = 2] = \"Second\";\n    /**\n     * Focus the last item in the list.\n     */\n    QuickPickFocus[QuickPickFocus[\"Last\"] = 3] = \"Last\";\n    /**\n     * Focus the next item in the list.\n     */\n    QuickPickFocus[QuickPickFocus[\"Next\"] = 4] = \"Next\";\n    /**\n     * Focus the previous item in the list.\n     */\n    QuickPickFocus[QuickPickFocus[\"Previous\"] = 5] = \"Previous\";\n    /**\n     * Focus the next page in the list.\n     */\n    QuickPickFocus[QuickPickFocus[\"NextPage\"] = 6] = \"NextPage\";\n    /**\n     * Focus the previous page in the list.\n     */\n    QuickPickFocus[QuickPickFocus[\"PreviousPage\"] = 7] = \"PreviousPage\";\n    /**\n     * Focus the first item under the next separator.\n     */\n    QuickPickFocus[QuickPickFocus[\"NextSeparator\"] = 8] = \"NextSeparator\";\n    /**\n     * Focus the first item under the current separator.\n     */\n    QuickPickFocus[QuickPickFocus[\"PreviousSeparator\"] = 9] = \"PreviousSeparator\";\n})(QuickPickFocus || (QuickPickFocus = {}));\nexport class QuickPickItemScorerAccessor {\n    constructor(options) {\n        this.options = options;\n    }\n}\nexport const quickPickItemScorerAccessor = new QuickPickItemScorerAccessor();\n//#endregion\nexport const IQuickInputService = createDecorator('quickInputService');\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/registry/common/platform.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as Assert from '../../../base/common/assert.js';\nimport * as Types from '../../../base/common/types.js';\nclass RegistryImpl {\n    constructor() {\n        this.data = new Map();\n    }\n    add(id, data) {\n        Assert.ok(Types.isString(id));\n        Assert.ok(Types.isObject(data));\n        Assert.ok(!this.data.has(id), 'There is already an extension with this id');\n        this.data.set(id, data);\n    }\n    as(id) {\n        return this.data.get(id) || null;\n    }\n}\nexport const Registry = new RegistryImpl();\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/severityIcon/browser/media/severityIcon.css",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .zone-widget .codicon.codicon-error,\n.markers-panel .marker-icon.error, .markers-panel .marker-icon .codicon.codicon-error,\n.text-search-provider-messages .providerMessage .codicon.codicon-error,\n.extensions-viewlet > .extensions .codicon.codicon-error,\n.extension-editor .codicon.codicon-error,\n.preferences-editor .codicon.codicon-error {\n\tcolor: var(--vscode-problemsErrorIcon-foreground);\n}\n\n.monaco-editor .zone-widget .codicon.codicon-warning,\n.markers-panel .marker-icon.warning, .markers-panel .marker-icon .codicon.codicon-warning,\n.text-search-provider-messages .providerMessage .codicon.codicon-warning,\n.extensions-viewlet > .extensions .codicon.codicon-warning,\n.extension-editor .codicon.codicon-warning,\n.preferences-editor .codicon.codicon-warning {\n\tcolor: var(--vscode-problemsWarningIcon-foreground);\n}\n\n.monaco-editor .zone-widget .codicon.codicon-info,\n.markers-panel .marker-icon.info, .markers-panel .marker-icon .codicon.codicon-info,\n.text-search-provider-messages .providerMessage .codicon.codicon-info,\n.extensions-viewlet > .extensions .codicon.codicon-info,\n.extension-editor .codicon.codicon-info,\n.preferences-editor .codicon.codicon-info {\n\tcolor: var(--vscode-problemsInfoIcon-foreground);\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/severityIcon/browser/severityIcon.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './media/severityIcon.css';\nimport { Codicon } from '../../../base/common/codicons.js';\nimport { ThemeIcon } from '../../../base/common/themables.js';\nimport Severity from '../../../base/common/severity.js';\nexport var SeverityIcon;\n(function (SeverityIcon) {\n    function className(severity) {\n        switch (severity) {\n            case Severity.Ignore:\n                return 'severity-ignore ' + ThemeIcon.asClassName(Codicon.info);\n            case Severity.Info:\n                return ThemeIcon.asClassName(Codicon.info);\n            case Severity.Warning:\n                return ThemeIcon.asClassName(Codicon.warning);\n            case Severity.Error:\n                return ThemeIcon.asClassName(Codicon.error);\n            default:\n                return '';\n        }\n    }\n    SeverityIcon.className = className;\n})(SeverityIcon || (SeverityIcon = {}));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/storage/common/storage.js",
    "content": "import { Emitter, Event, PauseableEmitter } from '../../../base/common/event.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { isUndefinedOrNull } from '../../../base/common/types.js';\nimport { InMemoryStorageDatabase, Storage, StorageHint } from '../../../base/parts/storage/common/storage.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const TARGET_KEY = '__$__targetStorageMarker';\nexport const IStorageService = createDecorator('storageService');\nexport var WillSaveStateReason;\n(function (WillSaveStateReason) {\n    /**\n     * No specific reason to save state.\n     */\n    WillSaveStateReason[WillSaveStateReason[\"NONE\"] = 0] = \"NONE\";\n    /**\n     * A hint that the workbench is about to shutdown.\n     */\n    WillSaveStateReason[WillSaveStateReason[\"SHUTDOWN\"] = 1] = \"SHUTDOWN\";\n})(WillSaveStateReason || (WillSaveStateReason = {}));\nexport function loadKeyTargets(storage) {\n    const keysRaw = storage.get(TARGET_KEY);\n    if (keysRaw) {\n        try {\n            return JSON.parse(keysRaw);\n        }\n        catch (error) {\n            // Fail gracefully\n        }\n    }\n    return Object.create(null);\n}\nexport class AbstractStorageService extends Disposable {\n    constructor(options = { flushInterval: AbstractStorageService.DEFAULT_FLUSH_INTERVAL }) {\n        super();\n        this.options = options;\n        this._onDidChangeValue = this._register(new PauseableEmitter());\n        this._onDidChangeTarget = this._register(new PauseableEmitter());\n        this._onWillSaveState = this._register(new Emitter());\n        this.onWillSaveState = this._onWillSaveState.event;\n        this._workspaceKeyTargets = undefined;\n        this._profileKeyTargets = undefined;\n        this._applicationKeyTargets = undefined;\n    }\n    onDidChangeValue(scope, key, disposable) {\n        return Event.filter(this._onDidChangeValue.event, e => e.scope === scope && (key === undefined || e.key === key), disposable);\n    }\n    emitDidChangeValue(scope, event) {\n        const { key, external } = event;\n        // Specially handle `TARGET_KEY`\n        if (key === TARGET_KEY) {\n            // Clear our cached version which is now out of date\n            switch (scope) {\n                case -1 /* StorageScope.APPLICATION */:\n                    this._applicationKeyTargets = undefined;\n                    break;\n                case 0 /* StorageScope.PROFILE */:\n                    this._profileKeyTargets = undefined;\n                    break;\n                case 1 /* StorageScope.WORKSPACE */:\n                    this._workspaceKeyTargets = undefined;\n                    break;\n            }\n            // Emit as `didChangeTarget` event\n            this._onDidChangeTarget.fire({ scope });\n        }\n        // Emit any other key to outside\n        else {\n            this._onDidChangeValue.fire({ scope, key, target: this.getKeyTargets(scope)[key], external });\n        }\n    }\n    get(key, scope, fallbackValue) {\n        var _a;\n        return (_a = this.getStorage(scope)) === null || _a === void 0 ? void 0 : _a.get(key, fallbackValue);\n    }\n    getBoolean(key, scope, fallbackValue) {\n        var _a;\n        return (_a = this.getStorage(scope)) === null || _a === void 0 ? void 0 : _a.getBoolean(key, fallbackValue);\n    }\n    getNumber(key, scope, fallbackValue) {\n        var _a;\n        return (_a = this.getStorage(scope)) === null || _a === void 0 ? void 0 : _a.getNumber(key, fallbackValue);\n    }\n    store(key, value, scope, target, external = false) {\n        // We remove the key for undefined/null values\n        if (isUndefinedOrNull(value)) {\n            this.remove(key, scope, external);\n            return;\n        }\n        // Update our datastructures but send events only after\n        this.withPausedEmitters(() => {\n            var _a;\n            // Update key-target map\n            this.updateKeyTarget(key, scope, target);\n            // Store actual value\n            (_a = this.getStorage(scope)) === null || _a === void 0 ? void 0 : _a.set(key, value, external);\n        });\n    }\n    remove(key, scope, external = false) {\n        // Update our datastructures but send events only after\n        this.withPausedEmitters(() => {\n            var _a;\n            // Update key-target map\n            this.updateKeyTarget(key, scope, undefined);\n            // Remove actual key\n            (_a = this.getStorage(scope)) === null || _a === void 0 ? void 0 : _a.delete(key, external);\n        });\n    }\n    withPausedEmitters(fn) {\n        // Pause emitters\n        this._onDidChangeValue.pause();\n        this._onDidChangeTarget.pause();\n        try {\n            fn();\n        }\n        finally {\n            // Resume emitters\n            this._onDidChangeValue.resume();\n            this._onDidChangeTarget.resume();\n        }\n    }\n    updateKeyTarget(key, scope, target, external = false) {\n        var _a, _b;\n        // Add\n        const keyTargets = this.getKeyTargets(scope);\n        if (typeof target === 'number') {\n            if (keyTargets[key] !== target) {\n                keyTargets[key] = target;\n                (_a = this.getStorage(scope)) === null || _a === void 0 ? void 0 : _a.set(TARGET_KEY, JSON.stringify(keyTargets), external);\n            }\n        }\n        // Remove\n        else {\n            if (typeof keyTargets[key] === 'number') {\n                delete keyTargets[key];\n                (_b = this.getStorage(scope)) === null || _b === void 0 ? void 0 : _b.set(TARGET_KEY, JSON.stringify(keyTargets), external);\n            }\n        }\n    }\n    get workspaceKeyTargets() {\n        if (!this._workspaceKeyTargets) {\n            this._workspaceKeyTargets = this.loadKeyTargets(1 /* StorageScope.WORKSPACE */);\n        }\n        return this._workspaceKeyTargets;\n    }\n    get profileKeyTargets() {\n        if (!this._profileKeyTargets) {\n            this._profileKeyTargets = this.loadKeyTargets(0 /* StorageScope.PROFILE */);\n        }\n        return this._profileKeyTargets;\n    }\n    get applicationKeyTargets() {\n        if (!this._applicationKeyTargets) {\n            this._applicationKeyTargets = this.loadKeyTargets(-1 /* StorageScope.APPLICATION */);\n        }\n        return this._applicationKeyTargets;\n    }\n    getKeyTargets(scope) {\n        switch (scope) {\n            case -1 /* StorageScope.APPLICATION */:\n                return this.applicationKeyTargets;\n            case 0 /* StorageScope.PROFILE */:\n                return this.profileKeyTargets;\n            default:\n                return this.workspaceKeyTargets;\n        }\n    }\n    loadKeyTargets(scope) {\n        const storage = this.getStorage(scope);\n        return storage ? loadKeyTargets(storage) : Object.create(null);\n    }\n}\nAbstractStorageService.DEFAULT_FLUSH_INTERVAL = 60 * 1000; // every minute\nexport class InMemoryStorageService extends AbstractStorageService {\n    constructor() {\n        super();\n        this.applicationStorage = this._register(new Storage(new InMemoryStorageDatabase(), { hint: StorageHint.STORAGE_IN_MEMORY }));\n        this.profileStorage = this._register(new Storage(new InMemoryStorageDatabase(), { hint: StorageHint.STORAGE_IN_MEMORY }));\n        this.workspaceStorage = this._register(new Storage(new InMemoryStorageDatabase(), { hint: StorageHint.STORAGE_IN_MEMORY }));\n        this._register(this.workspaceStorage.onDidChangeStorage(e => this.emitDidChangeValue(1 /* StorageScope.WORKSPACE */, e)));\n        this._register(this.profileStorage.onDidChangeStorage(e => this.emitDidChangeValue(0 /* StorageScope.PROFILE */, e)));\n        this._register(this.applicationStorage.onDidChangeStorage(e => this.emitDidChangeValue(-1 /* StorageScope.APPLICATION */, e)));\n    }\n    getStorage(scope) {\n        switch (scope) {\n            case -1 /* StorageScope.APPLICATION */:\n                return this.applicationStorage;\n            case 0 /* StorageScope.PROFILE */:\n                return this.profileStorage;\n            default:\n                return this.workspaceStorage;\n        }\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/telemetry/common/gdprTypings.js",
    "content": "export {};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/telemetry/common/telemetry.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const ITelemetryService = createDecorator('telemetryService');\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/theme/browser/defaultStyles.js",
    "content": "import { keybindingLabelBackground, keybindingLabelBorder, keybindingLabelBottomBorder, keybindingLabelForeground, asCssVariable, widgetShadow, buttonForeground, buttonSeparator, buttonBackground, buttonHoverBackground, buttonSecondaryForeground, buttonSecondaryBackground, buttonSecondaryHoverBackground, buttonBorder, progressBarBackground, inputActiveOptionBorder, inputActiveOptionForeground, inputActiveOptionBackground, editorWidgetBackground, editorWidgetForeground, contrastBorder, checkboxBorder, checkboxBackground, checkboxForeground, problemsErrorIconForeground, problemsWarningIconForeground, problemsInfoIconForeground, inputBackground, inputForeground, inputBorder, textLinkForeground, inputValidationInfoBorder, inputValidationInfoBackground, inputValidationInfoForeground, inputValidationWarningBorder, inputValidationWarningBackground, inputValidationWarningForeground, inputValidationErrorBorder, inputValidationErrorBackground, inputValidationErrorForeground, listFilterWidgetBackground, listFilterWidgetNoMatchesOutline, listFilterWidgetOutline, listFilterWidgetShadow, badgeBackground, badgeForeground, breadcrumbsBackground, breadcrumbsForeground, breadcrumbsFocusForeground, breadcrumbsActiveSelectionForeground, activeContrastBorder, listActiveSelectionBackground, listActiveSelectionForeground, listActiveSelectionIconForeground, listDropOverBackground, listFocusAndSelectionOutline, listFocusBackground, listFocusForeground, listFocusOutline, listHoverBackground, listHoverForeground, listInactiveFocusBackground, listInactiveFocusOutline, listInactiveSelectionBackground, listInactiveSelectionForeground, listInactiveSelectionIconForeground, tableColumnsBorder, tableOddRowsBackgroundColor, treeIndentGuidesStroke, asCssVariableWithDefault, editorWidgetBorder, focusBorder, pickerGroupForeground, quickInputListFocusBackground, quickInputListFocusForeground, quickInputListFocusIconForeground, selectBackground, selectBorder, selectForeground, selectListBackground, treeInactiveIndentGuidesStroke, menuBorder, menuForeground, menuBackground, menuSelectionForeground, menuSelectionBackground, menuSelectionBorder, menuSeparatorBackground, scrollbarShadow, scrollbarSliderActiveBackground, scrollbarSliderBackground, scrollbarSliderHoverBackground, listDropBetweenBackground } from '../common/colorRegistry.js';\nimport { Color } from '../../../base/common/color.js';\nfunction overrideStyles(override, styles) {\n    const result = { ...styles };\n    for (const key in override) {\n        const val = override[key];\n        result[key] = val !== undefined ? asCssVariable(val) : undefined;\n    }\n    return result;\n}\nexport const defaultKeybindingLabelStyles = {\n    keybindingLabelBackground: asCssVariable(keybindingLabelBackground),\n    keybindingLabelForeground: asCssVariable(keybindingLabelForeground),\n    keybindingLabelBorder: asCssVariable(keybindingLabelBorder),\n    keybindingLabelBottomBorder: asCssVariable(keybindingLabelBottomBorder),\n    keybindingLabelShadow: asCssVariable(widgetShadow)\n};\nexport const defaultButtonStyles = {\n    buttonForeground: asCssVariable(buttonForeground),\n    buttonSeparator: asCssVariable(buttonSeparator),\n    buttonBackground: asCssVariable(buttonBackground),\n    buttonHoverBackground: asCssVariable(buttonHoverBackground),\n    buttonSecondaryForeground: asCssVariable(buttonSecondaryForeground),\n    buttonSecondaryBackground: asCssVariable(buttonSecondaryBackground),\n    buttonSecondaryHoverBackground: asCssVariable(buttonSecondaryHoverBackground),\n    buttonBorder: asCssVariable(buttonBorder),\n};\nexport const defaultProgressBarStyles = {\n    progressBarBackground: asCssVariable(progressBarBackground)\n};\nexport const defaultToggleStyles = {\n    inputActiveOptionBorder: asCssVariable(inputActiveOptionBorder),\n    inputActiveOptionForeground: asCssVariable(inputActiveOptionForeground),\n    inputActiveOptionBackground: asCssVariable(inputActiveOptionBackground)\n};\nexport const defaultCheckboxStyles = {\n    checkboxBackground: asCssVariable(checkboxBackground),\n    checkboxBorder: asCssVariable(checkboxBorder),\n    checkboxForeground: asCssVariable(checkboxForeground)\n};\nexport const defaultDialogStyles = {\n    dialogBackground: asCssVariable(editorWidgetBackground),\n    dialogForeground: asCssVariable(editorWidgetForeground),\n    dialogShadow: asCssVariable(widgetShadow),\n    dialogBorder: asCssVariable(contrastBorder),\n    errorIconForeground: asCssVariable(problemsErrorIconForeground),\n    warningIconForeground: asCssVariable(problemsWarningIconForeground),\n    infoIconForeground: asCssVariable(problemsInfoIconForeground),\n    textLinkForeground: asCssVariable(textLinkForeground)\n};\nexport const defaultInputBoxStyles = {\n    inputBackground: asCssVariable(inputBackground),\n    inputForeground: asCssVariable(inputForeground),\n    inputBorder: asCssVariable(inputBorder),\n    inputValidationInfoBorder: asCssVariable(inputValidationInfoBorder),\n    inputValidationInfoBackground: asCssVariable(inputValidationInfoBackground),\n    inputValidationInfoForeground: asCssVariable(inputValidationInfoForeground),\n    inputValidationWarningBorder: asCssVariable(inputValidationWarningBorder),\n    inputValidationWarningBackground: asCssVariable(inputValidationWarningBackground),\n    inputValidationWarningForeground: asCssVariable(inputValidationWarningForeground),\n    inputValidationErrorBorder: asCssVariable(inputValidationErrorBorder),\n    inputValidationErrorBackground: asCssVariable(inputValidationErrorBackground),\n    inputValidationErrorForeground: asCssVariable(inputValidationErrorForeground)\n};\nexport const defaultFindWidgetStyles = {\n    listFilterWidgetBackground: asCssVariable(listFilterWidgetBackground),\n    listFilterWidgetOutline: asCssVariable(listFilterWidgetOutline),\n    listFilterWidgetNoMatchesOutline: asCssVariable(listFilterWidgetNoMatchesOutline),\n    listFilterWidgetShadow: asCssVariable(listFilterWidgetShadow),\n    inputBoxStyles: defaultInputBoxStyles,\n    toggleStyles: defaultToggleStyles\n};\nexport const defaultCountBadgeStyles = {\n    badgeBackground: asCssVariable(badgeBackground),\n    badgeForeground: asCssVariable(badgeForeground),\n    badgeBorder: asCssVariable(contrastBorder)\n};\nexport const defaultBreadcrumbsWidgetStyles = {\n    breadcrumbsBackground: asCssVariable(breadcrumbsBackground),\n    breadcrumbsForeground: asCssVariable(breadcrumbsForeground),\n    breadcrumbsHoverForeground: asCssVariable(breadcrumbsFocusForeground),\n    breadcrumbsFocusForeground: asCssVariable(breadcrumbsFocusForeground),\n    breadcrumbsFocusAndSelectionForeground: asCssVariable(breadcrumbsActiveSelectionForeground)\n};\nexport const defaultListStyles = {\n    listBackground: undefined,\n    listInactiveFocusForeground: undefined,\n    listFocusBackground: asCssVariable(listFocusBackground),\n    listFocusForeground: asCssVariable(listFocusForeground),\n    listFocusOutline: asCssVariable(listFocusOutline),\n    listActiveSelectionBackground: asCssVariable(listActiveSelectionBackground),\n    listActiveSelectionForeground: asCssVariable(listActiveSelectionForeground),\n    listActiveSelectionIconForeground: asCssVariable(listActiveSelectionIconForeground),\n    listFocusAndSelectionOutline: asCssVariable(listFocusAndSelectionOutline),\n    listFocusAndSelectionBackground: asCssVariable(listActiveSelectionBackground),\n    listFocusAndSelectionForeground: asCssVariable(listActiveSelectionForeground),\n    listInactiveSelectionBackground: asCssVariable(listInactiveSelectionBackground),\n    listInactiveSelectionIconForeground: asCssVariable(listInactiveSelectionIconForeground),\n    listInactiveSelectionForeground: asCssVariable(listInactiveSelectionForeground),\n    listInactiveFocusBackground: asCssVariable(listInactiveFocusBackground),\n    listInactiveFocusOutline: asCssVariable(listInactiveFocusOutline),\n    listHoverBackground: asCssVariable(listHoverBackground),\n    listHoverForeground: asCssVariable(listHoverForeground),\n    listDropOverBackground: asCssVariable(listDropOverBackground),\n    listDropBetweenBackground: asCssVariable(listDropBetweenBackground),\n    listSelectionOutline: asCssVariable(activeContrastBorder),\n    listHoverOutline: asCssVariable(activeContrastBorder),\n    treeIndentGuidesStroke: asCssVariable(treeIndentGuidesStroke),\n    treeInactiveIndentGuidesStroke: asCssVariable(treeInactiveIndentGuidesStroke),\n    treeStickyScrollBackground: undefined,\n    treeStickyScrollBorder: undefined,\n    treeStickyScrollShadow: undefined,\n    tableColumnsBorder: asCssVariable(tableColumnsBorder),\n    tableOddRowsBackgroundColor: asCssVariable(tableOddRowsBackgroundColor),\n};\nexport function getListStyles(override) {\n    return overrideStyles(override, defaultListStyles);\n}\nexport const defaultSelectBoxStyles = {\n    selectBackground: asCssVariable(selectBackground),\n    selectListBackground: asCssVariable(selectListBackground),\n    selectForeground: asCssVariable(selectForeground),\n    decoratorRightForeground: asCssVariable(pickerGroupForeground),\n    selectBorder: asCssVariable(selectBorder),\n    focusBorder: asCssVariable(focusBorder),\n    listFocusBackground: asCssVariable(quickInputListFocusBackground),\n    listInactiveSelectionIconForeground: asCssVariable(quickInputListFocusIconForeground),\n    listFocusForeground: asCssVariable(quickInputListFocusForeground),\n    listFocusOutline: asCssVariableWithDefault(activeContrastBorder, Color.transparent.toString()),\n    listHoverBackground: asCssVariable(listHoverBackground),\n    listHoverForeground: asCssVariable(listHoverForeground),\n    listHoverOutline: asCssVariable(activeContrastBorder),\n    selectListBorder: asCssVariable(editorWidgetBorder),\n    listBackground: undefined,\n    listActiveSelectionBackground: undefined,\n    listActiveSelectionForeground: undefined,\n    listActiveSelectionIconForeground: undefined,\n    listFocusAndSelectionBackground: undefined,\n    listDropOverBackground: undefined,\n    listDropBetweenBackground: undefined,\n    listInactiveSelectionBackground: undefined,\n    listInactiveSelectionForeground: undefined,\n    listInactiveFocusBackground: undefined,\n    listInactiveFocusOutline: undefined,\n    listSelectionOutline: undefined,\n    listFocusAndSelectionForeground: undefined,\n    listFocusAndSelectionOutline: undefined,\n    listInactiveFocusForeground: undefined,\n    tableColumnsBorder: undefined,\n    tableOddRowsBackgroundColor: undefined,\n    treeIndentGuidesStroke: undefined,\n    treeInactiveIndentGuidesStroke: undefined,\n    treeStickyScrollBackground: undefined,\n    treeStickyScrollBorder: undefined,\n    treeStickyScrollShadow: undefined\n};\nexport const defaultMenuStyles = {\n    shadowColor: asCssVariable(widgetShadow),\n    borderColor: asCssVariable(menuBorder),\n    foregroundColor: asCssVariable(menuForeground),\n    backgroundColor: asCssVariable(menuBackground),\n    selectionForegroundColor: asCssVariable(menuSelectionForeground),\n    selectionBackgroundColor: asCssVariable(menuSelectionBackground),\n    selectionBorderColor: asCssVariable(menuSelectionBorder),\n    separatorColor: asCssVariable(menuSeparatorBackground),\n    scrollbarShadow: asCssVariable(scrollbarShadow),\n    scrollbarSliderBackground: asCssVariable(scrollbarSliderBackground),\n    scrollbarSliderHoverBackground: asCssVariable(scrollbarSliderHoverBackground),\n    scrollbarSliderActiveBackground: asCssVariable(scrollbarSliderActiveBackground)\n};\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/theme/browser/iconsStyleSheet.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { asCSSPropertyValue, asCSSUrl } from '../../../base/browser/dom.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { DisposableStore } from '../../../base/common/lifecycle.js';\nimport { ThemeIcon } from '../../../base/common/themables.js';\nimport { getIconRegistry } from '../common/iconRegistry.js';\nexport function getIconsStyleSheet(themeService) {\n    const disposable = new DisposableStore();\n    const onDidChangeEmmiter = disposable.add(new Emitter());\n    const iconRegistry = getIconRegistry();\n    disposable.add(iconRegistry.onDidChange(() => onDidChangeEmmiter.fire()));\n    if (themeService) {\n        disposable.add(themeService.onDidProductIconThemeChange(() => onDidChangeEmmiter.fire()));\n    }\n    return {\n        dispose: () => disposable.dispose(),\n        onDidChange: onDidChangeEmmiter.event,\n        getCSS() {\n            const productIconTheme = themeService ? themeService.getProductIconTheme() : new UnthemedProductIconTheme();\n            const usedFontIds = {};\n            const rules = [];\n            const rootAttribs = [];\n            for (const contribution of iconRegistry.getIcons()) {\n                const definition = productIconTheme.getIcon(contribution);\n                if (!definition) {\n                    continue;\n                }\n                const fontContribution = definition.font;\n                const fontFamilyVar = `--vscode-icon-${contribution.id}-font-family`;\n                const contentVar = `--vscode-icon-${contribution.id}-content`;\n                if (fontContribution) {\n                    usedFontIds[fontContribution.id] = fontContribution.definition;\n                    rootAttribs.push(`${fontFamilyVar}: ${asCSSPropertyValue(fontContribution.id)};`, `${contentVar}: '${definition.fontCharacter}';`);\n                    rules.push(`.codicon-${contribution.id}:before { content: '${definition.fontCharacter}'; font-family: ${asCSSPropertyValue(fontContribution.id)}; }`);\n                }\n                else {\n                    rootAttribs.push(`${contentVar}: '${definition.fontCharacter}'; ${fontFamilyVar}: 'codicon';`);\n                    rules.push(`.codicon-${contribution.id}:before { content: '${definition.fontCharacter}'; }`);\n                }\n            }\n            for (const id in usedFontIds) {\n                const definition = usedFontIds[id];\n                const fontWeight = definition.weight ? `font-weight: ${definition.weight};` : '';\n                const fontStyle = definition.style ? `font-style: ${definition.style};` : '';\n                const src = definition.src.map(l => `${asCSSUrl(l.location)} format('${l.format}')`).join(', ');\n                rules.push(`@font-face { src: ${src}; font-family: ${asCSSPropertyValue(id)};${fontWeight}${fontStyle} font-display: block; }`);\n            }\n            rules.push(`:root { ${rootAttribs.join(' ')} }`);\n            return rules.join('\\n');\n        }\n    };\n}\nexport class UnthemedProductIconTheme {\n    getIcon(contribution) {\n        const iconRegistry = getIconRegistry();\n        let definition = contribution.defaults;\n        while (ThemeIcon.isThemeIcon(definition)) {\n            const c = iconRegistry.getIcon(definition.id);\n            if (!c) {\n                return undefined;\n            }\n            definition = c.defaults;\n        }\n        return definition;\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/theme/common/colorRegistry.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport * from './colorUtils.js';\n// Make sure all color files are exported\nexport * from './colors/baseColors.js';\nexport * from './colors/chartsColors.js';\nexport * from './colors/editorColors.js';\nexport * from './colors/inputColors.js';\nexport * from './colors/listColors.js';\nexport * from './colors/menuColors.js';\nexport * from './colors/minimapColors.js';\nexport * from './colors/miscColors.js';\nexport * from './colors/quickpickColors.js';\nexport * from './colors/searchColors.js';\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/theme/common/colorUtils.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { assertNever } from '../../../base/common/assert.js';\nimport { RunOnceScheduler } from '../../../base/common/async.js';\nimport { Color } from '../../../base/common/color.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { Extensions as JSONExtensions } from '../../jsonschemas/common/jsonContributionRegistry.js';\nimport * as platform from '../../registry/common/platform.js';\n/**\n * Returns the css variable name for the given color identifier. Dots (`.`) are replaced with hyphens (`-`) and\n * everything is prefixed with `--vscode-`.\n *\n * @sample `editorSuggestWidget.background` is `--vscode-editorSuggestWidget-background`.\n */\nexport function asCssVariableName(colorIdent) {\n    return `--vscode-${colorIdent.replace(/\\./g, '-')}`;\n}\nexport function asCssVariable(color) {\n    return `var(${asCssVariableName(color)})`;\n}\nexport function asCssVariableWithDefault(color, defaultCssValue) {\n    return `var(${asCssVariableName(color)}, ${defaultCssValue})`;\n}\n// color registry\nexport const Extensions = {\n    ColorContribution: 'base.contributions.colors'\n};\nclass ColorRegistry {\n    constructor() {\n        this._onDidChangeSchema = new Emitter();\n        this.onDidChangeSchema = this._onDidChangeSchema.event;\n        this.colorSchema = { type: 'object', properties: {} };\n        this.colorReferenceSchema = { type: 'string', enum: [], enumDescriptions: [] };\n        this.colorsById = {};\n    }\n    registerColor(id, defaults, description, needsTransparency = false, deprecationMessage) {\n        const colorContribution = { id, description, defaults, needsTransparency, deprecationMessage };\n        this.colorsById[id] = colorContribution;\n        const propertySchema = { type: 'string', description, format: 'color-hex', defaultSnippets: [{ body: '${1:#ff0000}' }] };\n        if (deprecationMessage) {\n            propertySchema.deprecationMessage = deprecationMessage;\n        }\n        if (needsTransparency) {\n            propertySchema.pattern = '^#(?:(?<rgba>[0-9a-fA-f]{3}[0-9a-eA-E])|(?:[0-9a-fA-F]{6}(?:(?![fF]{2})(?:[0-9a-fA-F]{2}))))?$';\n            propertySchema.patternErrorMessage = 'This color must be transparent or it will obscure content';\n        }\n        this.colorSchema.properties[id] = propertySchema;\n        this.colorReferenceSchema.enum.push(id);\n        this.colorReferenceSchema.enumDescriptions.push(description);\n        this._onDidChangeSchema.fire();\n        return id;\n    }\n    getColors() {\n        return Object.keys(this.colorsById).map(id => this.colorsById[id]);\n    }\n    resolveDefaultColor(id, theme) {\n        const colorDesc = this.colorsById[id];\n        if (colorDesc && colorDesc.defaults) {\n            const colorValue = colorDesc.defaults[theme.type];\n            return resolveColorValue(colorValue, theme);\n        }\n        return undefined;\n    }\n    getColorSchema() {\n        return this.colorSchema;\n    }\n    toString() {\n        const sorter = (a, b) => {\n            const cat1 = a.indexOf('.') === -1 ? 0 : 1;\n            const cat2 = b.indexOf('.') === -1 ? 0 : 1;\n            if (cat1 !== cat2) {\n                return cat1 - cat2;\n            }\n            return a.localeCompare(b);\n        };\n        return Object.keys(this.colorsById).sort(sorter).map(k => `- \\`${k}\\`: ${this.colorsById[k].description}`).join('\\n');\n    }\n}\nconst colorRegistry = new ColorRegistry();\nplatform.Registry.add(Extensions.ColorContribution, colorRegistry);\nexport function registerColor(id, defaults, description, needsTransparency, deprecationMessage) {\n    return colorRegistry.registerColor(id, defaults, description, needsTransparency, deprecationMessage);\n}\n// ----- color functions\nexport function executeTransform(transform, theme) {\n    var _a, _b, _c, _d;\n    switch (transform.op) {\n        case 0 /* ColorTransformType.Darken */:\n            return (_a = resolveColorValue(transform.value, theme)) === null || _a === void 0 ? void 0 : _a.darken(transform.factor);\n        case 1 /* ColorTransformType.Lighten */:\n            return (_b = resolveColorValue(transform.value, theme)) === null || _b === void 0 ? void 0 : _b.lighten(transform.factor);\n        case 2 /* ColorTransformType.Transparent */:\n            return (_c = resolveColorValue(transform.value, theme)) === null || _c === void 0 ? void 0 : _c.transparent(transform.factor);\n        case 3 /* ColorTransformType.Opaque */: {\n            const backgroundColor = resolveColorValue(transform.background, theme);\n            if (!backgroundColor) {\n                return resolveColorValue(transform.value, theme);\n            }\n            return (_d = resolveColorValue(transform.value, theme)) === null || _d === void 0 ? void 0 : _d.makeOpaque(backgroundColor);\n        }\n        case 4 /* ColorTransformType.OneOf */:\n            for (const candidate of transform.values) {\n                const color = resolveColorValue(candidate, theme);\n                if (color) {\n                    return color;\n                }\n            }\n            return undefined;\n        case 6 /* ColorTransformType.IfDefinedThenElse */:\n            return resolveColorValue(theme.defines(transform.if) ? transform.then : transform.else, theme);\n        case 5 /* ColorTransformType.LessProminent */: {\n            const from = resolveColorValue(transform.value, theme);\n            if (!from) {\n                return undefined;\n            }\n            const backgroundColor = resolveColorValue(transform.background, theme);\n            if (!backgroundColor) {\n                return from.transparent(transform.factor * transform.transparency);\n            }\n            return from.isDarkerThan(backgroundColor)\n                ? Color.getLighterColor(from, backgroundColor, transform.factor).transparent(transform.transparency)\n                : Color.getDarkerColor(from, backgroundColor, transform.factor).transparent(transform.transparency);\n        }\n        default:\n            throw assertNever(transform);\n    }\n}\nexport function darken(colorValue, factor) {\n    return { op: 0 /* ColorTransformType.Darken */, value: colorValue, factor };\n}\nexport function lighten(colorValue, factor) {\n    return { op: 1 /* ColorTransformType.Lighten */, value: colorValue, factor };\n}\nexport function transparent(colorValue, factor) {\n    return { op: 2 /* ColorTransformType.Transparent */, value: colorValue, factor };\n}\nexport function oneOf(...colorValues) {\n    return { op: 4 /* ColorTransformType.OneOf */, values: colorValues };\n}\nexport function ifDefinedThenElse(ifArg, thenArg, elseArg) {\n    return { op: 6 /* ColorTransformType.IfDefinedThenElse */, if: ifArg, then: thenArg, else: elseArg };\n}\nexport function lessProminent(colorValue, backgroundColorValue, factor, transparency) {\n    return { op: 5 /* ColorTransformType.LessProminent */, value: colorValue, background: backgroundColorValue, factor, transparency };\n}\n// ----- implementation\n/**\n * @param colorValue Resolve a color value in the context of a theme\n */\nexport function resolveColorValue(colorValue, theme) {\n    if (colorValue === null) {\n        return undefined;\n    }\n    else if (typeof colorValue === 'string') {\n        if (colorValue[0] === '#') {\n            return Color.fromHex(colorValue);\n        }\n        return theme.getColor(colorValue);\n    }\n    else if (colorValue instanceof Color) {\n        return colorValue;\n    }\n    else if (typeof colorValue === 'object') {\n        return executeTransform(colorValue, theme);\n    }\n    return undefined;\n}\nexport const workbenchColorsSchemaId = 'vscode://schemas/workbench-colors';\nconst schemaRegistry = platform.Registry.as(JSONExtensions.JSONContribution);\nschemaRegistry.registerSchema(workbenchColorsSchemaId, colorRegistry.getColorSchema());\nconst delayer = new RunOnceScheduler(() => schemaRegistry.notifySchemaChanged(workbenchColorsSchemaId), 200);\ncolorRegistry.onDidChangeSchema(() => {\n    if (!delayer.isScheduled()) {\n        delayer.schedule();\n    }\n});\n// setTimeout(_ => console.log(colorRegistry.toString()), 5000);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/theme/common/colors/baseColors.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../../nls.js';\n// Import the effects we need\nimport { Color } from '../../../../base/common/color.js';\nimport { registerColor, transparent } from '../colorUtils.js';\nexport const foreground = registerColor('foreground', { dark: '#CCCCCC', light: '#616161', hcDark: '#FFFFFF', hcLight: '#292929' }, nls.localize('foreground', \"Overall foreground color. This color is only used if not overridden by a component.\"));\nexport const disabledForeground = registerColor('disabledForeground', { dark: '#CCCCCC80', light: '#61616180', hcDark: '#A5A5A5', hcLight: '#7F7F7F' }, nls.localize('disabledForeground', \"Overall foreground for disabled elements. This color is only used if not overridden by a component.\"));\nexport const errorForeground = registerColor('errorForeground', { dark: '#F48771', light: '#A1260D', hcDark: '#F48771', hcLight: '#B5200D' }, nls.localize('errorForeground', \"Overall foreground color for error messages. This color is only used if not overridden by a component.\"));\nexport const descriptionForeground = registerColor('descriptionForeground', { light: '#717171', dark: transparent(foreground, 0.7), hcDark: transparent(foreground, 0.7), hcLight: transparent(foreground, 0.7) }, nls.localize('descriptionForeground', \"Foreground color for description text providing additional information, for example for a label.\"));\nexport const iconForeground = registerColor('icon.foreground', { dark: '#C5C5C5', light: '#424242', hcDark: '#FFFFFF', hcLight: '#292929' }, nls.localize('iconForeground', \"The default color for icons in the workbench.\"));\nexport const focusBorder = registerColor('focusBorder', { dark: '#007FD4', light: '#0090F1', hcDark: '#F38518', hcLight: '#006BBD' }, nls.localize('focusBorder', \"Overall border color for focused elements. This color is only used if not overridden by a component.\"));\nexport const contrastBorder = registerColor('contrastBorder', { light: null, dark: null, hcDark: '#6FC3DF', hcLight: '#0F4A85' }, nls.localize('contrastBorder', \"An extra border around elements to separate them from others for greater contrast.\"));\nexport const activeContrastBorder = registerColor('contrastActiveBorder', { light: null, dark: null, hcDark: focusBorder, hcLight: focusBorder }, nls.localize('activeContrastBorder', \"An extra border around active elements to separate them from others for greater contrast.\"));\nexport const selectionBackground = registerColor('selection.background', { light: null, dark: null, hcDark: null, hcLight: null }, nls.localize('selectionBackground', \"The background color of text selections in the workbench (e.g. for input fields or text areas). Note that this does not apply to selections within the editor.\"));\n// ------ text link\nexport const textLinkForeground = registerColor('textLink.foreground', { light: '#006AB1', dark: '#3794FF', hcDark: '#21A6FF', hcLight: '#0F4A85' }, nls.localize('textLinkForeground', \"Foreground color for links in text.\"));\nexport const textLinkActiveForeground = registerColor('textLink.activeForeground', { light: '#006AB1', dark: '#3794FF', hcDark: '#21A6FF', hcLight: '#0F4A85' }, nls.localize('textLinkActiveForeground', \"Foreground color for links in text when clicked on and on mouse hover.\"));\nexport const textSeparatorForeground = registerColor('textSeparator.foreground', { light: '#0000002e', dark: '#ffffff2e', hcDark: Color.black, hcLight: '#292929' }, nls.localize('textSeparatorForeground', \"Color for text separators.\"));\n// ------ text preformat\nexport const textPreformatForeground = registerColor('textPreformat.foreground', { light: '#A31515', dark: '#D7BA7D', hcDark: '#000000', hcLight: '#FFFFFF' }, nls.localize('textPreformatForeground', \"Foreground color for preformatted text segments.\"));\nexport const textPreformatBackground = registerColor('textPreformat.background', { light: '#0000001A', dark: '#FFFFFF1A', hcDark: '#FFFFFF', hcLight: '#09345f' }, nls.localize('textPreformatBackground', \"Background color for preformatted text segments.\"));\n// ------ text block quote\nexport const textBlockQuoteBackground = registerColor('textBlockQuote.background', { light: '#f2f2f2', dark: '#222222', hcDark: null, hcLight: '#F2F2F2' }, nls.localize('textBlockQuoteBackground', \"Background color for block quotes in text.\"));\nexport const textBlockQuoteBorder = registerColor('textBlockQuote.border', { light: '#007acc80', dark: '#007acc80', hcDark: Color.white, hcLight: '#292929' }, nls.localize('textBlockQuoteBorder', \"Border color for block quotes in text.\"));\n// ------ text code block\nexport const textCodeBlockBackground = registerColor('textCodeBlock.background', { light: '#dcdcdc66', dark: '#0a0a0a66', hcDark: Color.black, hcLight: '#F2F2F2' }, nls.localize('textCodeBlockBackground', \"Background color for code blocks in text.\"));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/theme/common/colors/chartsColors.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../../nls.js';\nimport { registerColor, transparent } from '../colorUtils.js';\nimport { foreground } from './baseColors.js';\nimport { editorErrorForeground, editorInfoForeground, editorWarningForeground } from './editorColors.js';\nimport { minimapFindMatch } from './minimapColors.js';\nexport const chartsForeground = registerColor('charts.foreground', { dark: foreground, light: foreground, hcDark: foreground, hcLight: foreground }, nls.localize('chartsForeground', \"The foreground color used in charts.\"));\nexport const chartsLines = registerColor('charts.lines', { dark: transparent(foreground, .5), light: transparent(foreground, .5), hcDark: transparent(foreground, .5), hcLight: transparent(foreground, .5) }, nls.localize('chartsLines', \"The color used for horizontal lines in charts.\"));\nexport const chartsRed = registerColor('charts.red', { dark: editorErrorForeground, light: editorErrorForeground, hcDark: editorErrorForeground, hcLight: editorErrorForeground }, nls.localize('chartsRed', \"The red color used in chart visualizations.\"));\nexport const chartsBlue = registerColor('charts.blue', { dark: editorInfoForeground, light: editorInfoForeground, hcDark: editorInfoForeground, hcLight: editorInfoForeground }, nls.localize('chartsBlue', \"The blue color used in chart visualizations.\"));\nexport const chartsYellow = registerColor('charts.yellow', { dark: editorWarningForeground, light: editorWarningForeground, hcDark: editorWarningForeground, hcLight: editorWarningForeground }, nls.localize('chartsYellow', \"The yellow color used in chart visualizations.\"));\nexport const chartsOrange = registerColor('charts.orange', { dark: minimapFindMatch, light: minimapFindMatch, hcDark: minimapFindMatch, hcLight: minimapFindMatch }, nls.localize('chartsOrange', \"The orange color used in chart visualizations.\"));\nexport const chartsGreen = registerColor('charts.green', { dark: '#89D185', light: '#388A34', hcDark: '#89D185', hcLight: '#374e06' }, nls.localize('chartsGreen', \"The green color used in chart visualizations.\"));\nexport const chartsPurple = registerColor('charts.purple', { dark: '#B180D7', light: '#652D90', hcDark: '#B180D7', hcLight: '#652D90' }, nls.localize('chartsPurple', \"The purple color used in chart visualizations.\"));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/theme/common/colors/editorColors.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../../nls.js';\n// Import the effects we need\nimport { Color, RGBA } from '../../../../base/common/color.js';\nimport { registerColor, transparent, lessProminent, darken, lighten } from '../colorUtils.js';\n// Import the colors we need\nimport { foreground, contrastBorder, activeContrastBorder } from './baseColors.js';\nimport { scrollbarShadow, badgeBackground } from './miscColors.js';\n// ----- editor\nexport const editorBackground = registerColor('editor.background', { light: '#ffffff', dark: '#1E1E1E', hcDark: Color.black, hcLight: Color.white }, nls.localize('editorBackground', \"Editor background color.\"));\nexport const editorForeground = registerColor('editor.foreground', { light: '#333333', dark: '#BBBBBB', hcDark: Color.white, hcLight: foreground }, nls.localize('editorForeground', \"Editor default foreground color.\"));\nexport const editorStickyScrollBackground = registerColor('editorStickyScroll.background', { light: editorBackground, dark: editorBackground, hcDark: editorBackground, hcLight: editorBackground }, nls.localize('editorStickyScrollBackground', \"Background color of sticky scroll in the editor\"));\nexport const editorStickyScrollHoverBackground = registerColor('editorStickyScrollHover.background', { dark: '#2A2D2E', light: '#F0F0F0', hcDark: null, hcLight: Color.fromHex('#0F4A85').transparent(0.1) }, nls.localize('editorStickyScrollHoverBackground', \"Background color of sticky scroll on hover in the editor\"));\nexport const editorStickyScrollBorder = registerColor('editorStickyScroll.border', { dark: null, light: null, hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('editorStickyScrollBorder', \"Border color of sticky scroll in the editor\"));\nexport const editorStickyScrollShadow = registerColor('editorStickyScroll.shadow', { dark: scrollbarShadow, light: scrollbarShadow, hcDark: scrollbarShadow, hcLight: scrollbarShadow }, nls.localize('editorStickyScrollShadow', \" Shadow color of sticky scroll in the editor\"));\nexport const editorWidgetBackground = registerColor('editorWidget.background', { dark: '#252526', light: '#F3F3F3', hcDark: '#0C141F', hcLight: Color.white }, nls.localize('editorWidgetBackground', 'Background color of editor widgets, such as find/replace.'));\nexport const editorWidgetForeground = registerColor('editorWidget.foreground', { dark: foreground, light: foreground, hcDark: foreground, hcLight: foreground }, nls.localize('editorWidgetForeground', 'Foreground color of editor widgets, such as find/replace.'));\nexport const editorWidgetBorder = registerColor('editorWidget.border', { dark: '#454545', light: '#C8C8C8', hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('editorWidgetBorder', 'Border color of editor widgets. The color is only used if the widget chooses to have a border and if the color is not overridden by a widget.'));\nexport const editorWidgetResizeBorder = registerColor('editorWidget.resizeBorder', { light: null, dark: null, hcDark: null, hcLight: null }, nls.localize('editorWidgetResizeBorder', \"Border color of the resize bar of editor widgets. The color is only used if the widget chooses to have a resize border and if the color is not overridden by a widget.\"));\nexport const editorErrorBackground = registerColor('editorError.background', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('editorError.background', 'Background color of error text in the editor. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const editorErrorForeground = registerColor('editorError.foreground', { dark: '#F14C4C', light: '#E51400', hcDark: '#F48771', hcLight: '#B5200D' }, nls.localize('editorError.foreground', 'Foreground color of error squigglies in the editor.'));\nexport const editorErrorBorder = registerColor('editorError.border', { dark: null, light: null, hcDark: Color.fromHex('#E47777').transparent(0.8), hcLight: '#B5200D' }, nls.localize('errorBorder', 'If set, color of double underlines for errors in the editor.'));\nexport const editorWarningBackground = registerColor('editorWarning.background', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('editorWarning.background', 'Background color of warning text in the editor. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const editorWarningForeground = registerColor('editorWarning.foreground', { dark: '#CCA700', light: '#BF8803', hcDark: '#FFD370', hcLight: '#895503' }, nls.localize('editorWarning.foreground', 'Foreground color of warning squigglies in the editor.'));\nexport const editorWarningBorder = registerColor('editorWarning.border', { dark: null, light: null, hcDark: Color.fromHex('#FFCC00').transparent(0.8), hcLight: Color.fromHex('#FFCC00').transparent(0.8) }, nls.localize('warningBorder', 'If set, color of double underlines for warnings in the editor.'));\nexport const editorInfoBackground = registerColor('editorInfo.background', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('editorInfo.background', 'Background color of info text in the editor. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const editorInfoForeground = registerColor('editorInfo.foreground', { dark: '#3794FF', light: '#1a85ff', hcDark: '#3794FF', hcLight: '#1a85ff' }, nls.localize('editorInfo.foreground', 'Foreground color of info squigglies in the editor.'));\nexport const editorInfoBorder = registerColor('editorInfo.border', { dark: null, light: null, hcDark: Color.fromHex('#3794FF').transparent(0.8), hcLight: '#292929' }, nls.localize('infoBorder', 'If set, color of double underlines for infos in the editor.'));\nexport const editorHintForeground = registerColor('editorHint.foreground', { dark: Color.fromHex('#eeeeee').transparent(0.7), light: '#6c6c6c', hcDark: null, hcLight: null }, nls.localize('editorHint.foreground', 'Foreground color of hint squigglies in the editor.'));\nexport const editorHintBorder = registerColor('editorHint.border', { dark: null, light: null, hcDark: Color.fromHex('#eeeeee').transparent(0.8), hcLight: '#292929' }, nls.localize('hintBorder', 'If set, color of double underlines for hints in the editor.'));\nexport const editorActiveLinkForeground = registerColor('editorLink.activeForeground', { dark: '#4E94CE', light: Color.blue, hcDark: Color.cyan, hcLight: '#292929' }, nls.localize('activeLinkForeground', 'Color of active links.'));\n// ----- editor selection\nexport const editorSelectionBackground = registerColor('editor.selectionBackground', { light: '#ADD6FF', dark: '#264F78', hcDark: '#f3f518', hcLight: '#0F4A85' }, nls.localize('editorSelectionBackground', \"Color of the editor selection.\"));\nexport const editorSelectionForeground = registerColor('editor.selectionForeground', { light: null, dark: null, hcDark: '#000000', hcLight: Color.white }, nls.localize('editorSelectionForeground', \"Color of the selected text for high contrast.\"));\nexport const editorInactiveSelection = registerColor('editor.inactiveSelectionBackground', { light: transparent(editorSelectionBackground, 0.5), dark: transparent(editorSelectionBackground, 0.5), hcDark: transparent(editorSelectionBackground, 0.7), hcLight: transparent(editorSelectionBackground, 0.5) }, nls.localize('editorInactiveSelection', \"Color of the selection in an inactive editor. The color must not be opaque so as not to hide underlying decorations.\"), true);\nexport const editorSelectionHighlight = registerColor('editor.selectionHighlightBackground', { light: lessProminent(editorSelectionBackground, editorBackground, 0.3, 0.6), dark: lessProminent(editorSelectionBackground, editorBackground, 0.3, 0.6), hcDark: null, hcLight: null }, nls.localize('editorSelectionHighlight', 'Color for regions with the same content as the selection. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const editorSelectionHighlightBorder = registerColor('editor.selectionHighlightBorder', { light: null, dark: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize('editorSelectionHighlightBorder', \"Border color for regions with the same content as the selection.\"));\n// ----- editor find\nexport const editorFindMatch = registerColor('editor.findMatchBackground', { light: '#A8AC94', dark: '#515C6A', hcDark: null, hcLight: null }, nls.localize('editorFindMatch', \"Color of the current search match.\"));\nexport const editorFindMatchForeground = registerColor('editor.findMatchForeground', { light: null, dark: null, hcDark: null, hcLight: null }, nls.localize('editorFindMatchForeground', \"Text color of the current search match.\"));\nexport const editorFindMatchHighlight = registerColor('editor.findMatchHighlightBackground', { light: '#EA5C0055', dark: '#EA5C0055', hcDark: null, hcLight: null }, nls.localize('findMatchHighlight', \"Color of the other search matches. The color must not be opaque so as not to hide underlying decorations.\"), true);\nexport const editorFindMatchHighlightForeground = registerColor('editor.findMatchHighlightForeground', { light: null, dark: null, hcDark: null, hcLight: null }, nls.localize('findMatchHighlightForeground', \"Foreground color of the other search matches.\"), true);\nexport const editorFindRangeHighlight = registerColor('editor.findRangeHighlightBackground', { dark: '#3a3d4166', light: '#b4b4b44d', hcDark: null, hcLight: null }, nls.localize('findRangeHighlight', \"Color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations.\"), true);\nexport const editorFindMatchBorder = registerColor('editor.findMatchBorder', { light: null, dark: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize('editorFindMatchBorder', \"Border color of the current search match.\"));\nexport const editorFindMatchHighlightBorder = registerColor('editor.findMatchHighlightBorder', { light: null, dark: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize('findMatchHighlightBorder', \"Border color of the other search matches.\"));\nexport const editorFindRangeHighlightBorder = registerColor('editor.findRangeHighlightBorder', { dark: null, light: null, hcDark: transparent(activeContrastBorder, 0.4), hcLight: transparent(activeContrastBorder, 0.4) }, nls.localize('findRangeHighlightBorder', \"Border color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations.\"), true);\n// ----- editor hover\nexport const editorHoverHighlight = registerColor('editor.hoverHighlightBackground', { light: '#ADD6FF26', dark: '#264f7840', hcDark: '#ADD6FF26', hcLight: null }, nls.localize('hoverHighlight', 'Highlight below the word for which a hover is shown. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const editorHoverBackground = registerColor('editorHoverWidget.background', { light: editorWidgetBackground, dark: editorWidgetBackground, hcDark: editorWidgetBackground, hcLight: editorWidgetBackground }, nls.localize('hoverBackground', 'Background color of the editor hover.'));\nexport const editorHoverForeground = registerColor('editorHoverWidget.foreground', { light: editorWidgetForeground, dark: editorWidgetForeground, hcDark: editorWidgetForeground, hcLight: editorWidgetForeground }, nls.localize('hoverForeground', 'Foreground color of the editor hover.'));\nexport const editorHoverBorder = registerColor('editorHoverWidget.border', { light: editorWidgetBorder, dark: editorWidgetBorder, hcDark: editorWidgetBorder, hcLight: editorWidgetBorder }, nls.localize('hoverBorder', 'Border color of the editor hover.'));\nexport const editorHoverStatusBarBackground = registerColor('editorHoverWidget.statusBarBackground', { dark: lighten(editorHoverBackground, 0.2), light: darken(editorHoverBackground, 0.05), hcDark: editorWidgetBackground, hcLight: editorWidgetBackground }, nls.localize('statusBarBackground', \"Background color of the editor hover status bar.\"));\n// ----- editor inlay hint\nexport const editorInlayHintForeground = registerColor('editorInlayHint.foreground', { dark: '#969696', light: '#969696', hcDark: Color.white, hcLight: Color.black }, nls.localize('editorInlayHintForeground', 'Foreground color of inline hints'));\nexport const editorInlayHintBackground = registerColor('editorInlayHint.background', { dark: transparent(badgeBackground, .10), light: transparent(badgeBackground, .10), hcDark: transparent(Color.white, .10), hcLight: transparent(badgeBackground, .10) }, nls.localize('editorInlayHintBackground', 'Background color of inline hints'));\nexport const editorInlayHintTypeForeground = registerColor('editorInlayHint.typeForeground', { dark: editorInlayHintForeground, light: editorInlayHintForeground, hcDark: editorInlayHintForeground, hcLight: editorInlayHintForeground }, nls.localize('editorInlayHintForegroundTypes', 'Foreground color of inline hints for types'));\nexport const editorInlayHintTypeBackground = registerColor('editorInlayHint.typeBackground', { dark: editorInlayHintBackground, light: editorInlayHintBackground, hcDark: editorInlayHintBackground, hcLight: editorInlayHintBackground }, nls.localize('editorInlayHintBackgroundTypes', 'Background color of inline hints for types'));\nexport const editorInlayHintParameterForeground = registerColor('editorInlayHint.parameterForeground', { dark: editorInlayHintForeground, light: editorInlayHintForeground, hcDark: editorInlayHintForeground, hcLight: editorInlayHintForeground }, nls.localize('editorInlayHintForegroundParameter', 'Foreground color of inline hints for parameters'));\nexport const editorInlayHintParameterBackground = registerColor('editorInlayHint.parameterBackground', { dark: editorInlayHintBackground, light: editorInlayHintBackground, hcDark: editorInlayHintBackground, hcLight: editorInlayHintBackground }, nls.localize('editorInlayHintBackgroundParameter', 'Background color of inline hints for parameters'));\n// ----- editor lightbulb\nexport const editorLightBulbForeground = registerColor('editorLightBulb.foreground', { dark: '#FFCC00', light: '#DDB100', hcDark: '#FFCC00', hcLight: '#007ACC' }, nls.localize('editorLightBulbForeground', \"The color used for the lightbulb actions icon.\"));\nexport const editorLightBulbAutoFixForeground = registerColor('editorLightBulbAutoFix.foreground', { dark: '#75BEFF', light: '#007ACC', hcDark: '#75BEFF', hcLight: '#007ACC' }, nls.localize('editorLightBulbAutoFixForeground', \"The color used for the lightbulb auto fix actions icon.\"));\nexport const editorLightBulbAiForeground = registerColor('editorLightBulbAi.foreground', { dark: editorLightBulbForeground, light: editorLightBulbForeground, hcDark: editorLightBulbForeground, hcLight: editorLightBulbForeground }, nls.localize('editorLightBulbAiForeground', \"The color used for the lightbulb AI icon.\"));\n// ----- editor snippet\nexport const snippetTabstopHighlightBackground = registerColor('editor.snippetTabstopHighlightBackground', { dark: new Color(new RGBA(124, 124, 124, 0.3)), light: new Color(new RGBA(10, 50, 100, 0.2)), hcDark: new Color(new RGBA(124, 124, 124, 0.3)), hcLight: new Color(new RGBA(10, 50, 100, 0.2)) }, nls.localize('snippetTabstopHighlightBackground', \"Highlight background color of a snippet tabstop.\"));\nexport const snippetTabstopHighlightBorder = registerColor('editor.snippetTabstopHighlightBorder', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('snippetTabstopHighlightBorder', \"Highlight border color of a snippet tabstop.\"));\nexport const snippetFinalTabstopHighlightBackground = registerColor('editor.snippetFinalTabstopHighlightBackground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('snippetFinalTabstopHighlightBackground', \"Highlight background color of the final tabstop of a snippet.\"));\nexport const snippetFinalTabstopHighlightBorder = registerColor('editor.snippetFinalTabstopHighlightBorder', { dark: '#525252', light: new Color(new RGBA(10, 50, 100, 0.5)), hcDark: '#525252', hcLight: '#292929' }, nls.localize('snippetFinalTabstopHighlightBorder', \"Highlight border color of the final tabstop of a snippet.\"));\n// ----- diff editor\nexport const defaultInsertColor = new Color(new RGBA(155, 185, 85, .2));\nexport const defaultRemoveColor = new Color(new RGBA(255, 0, 0, .2));\nexport const diffInserted = registerColor('diffEditor.insertedTextBackground', { dark: '#9ccc2c33', light: '#9ccc2c40', hcDark: null, hcLight: null }, nls.localize('diffEditorInserted', 'Background color for text that got inserted. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const diffRemoved = registerColor('diffEditor.removedTextBackground', { dark: '#ff000033', light: '#ff000033', hcDark: null, hcLight: null }, nls.localize('diffEditorRemoved', 'Background color for text that got removed. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const diffInsertedLine = registerColor('diffEditor.insertedLineBackground', { dark: defaultInsertColor, light: defaultInsertColor, hcDark: null, hcLight: null }, nls.localize('diffEditorInsertedLines', 'Background color for lines that got inserted. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const diffRemovedLine = registerColor('diffEditor.removedLineBackground', { dark: defaultRemoveColor, light: defaultRemoveColor, hcDark: null, hcLight: null }, nls.localize('diffEditorRemovedLines', 'Background color for lines that got removed. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const diffInsertedLineGutter = registerColor('diffEditorGutter.insertedLineBackground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('diffEditorInsertedLineGutter', 'Background color for the margin where lines got inserted.'));\nexport const diffRemovedLineGutter = registerColor('diffEditorGutter.removedLineBackground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('diffEditorRemovedLineGutter', 'Background color for the margin where lines got removed.'));\nexport const diffOverviewRulerInserted = registerColor('diffEditorOverview.insertedForeground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('diffEditorOverviewInserted', 'Diff overview ruler foreground for inserted content.'));\nexport const diffOverviewRulerRemoved = registerColor('diffEditorOverview.removedForeground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('diffEditorOverviewRemoved', 'Diff overview ruler foreground for removed content.'));\nexport const diffInsertedOutline = registerColor('diffEditor.insertedTextBorder', { dark: null, light: null, hcDark: '#33ff2eff', hcLight: '#374E06' }, nls.localize('diffEditorInsertedOutline', 'Outline color for the text that got inserted.'));\nexport const diffRemovedOutline = registerColor('diffEditor.removedTextBorder', { dark: null, light: null, hcDark: '#FF008F', hcLight: '#AD0707' }, nls.localize('diffEditorRemovedOutline', 'Outline color for text that got removed.'));\nexport const diffBorder = registerColor('diffEditor.border', { dark: null, light: null, hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('diffEditorBorder', 'Border color between the two text editors.'));\nexport const diffDiagonalFill = registerColor('diffEditor.diagonalFill', { dark: '#cccccc33', light: '#22222233', hcDark: null, hcLight: null }, nls.localize('diffDiagonalFill', \"Color of the diff editor's diagonal fill. The diagonal fill is used in side-by-side diff views.\"));\nexport const diffUnchangedRegionBackground = registerColor('diffEditor.unchangedRegionBackground', { dark: 'sideBar.background', light: 'sideBar.background', hcDark: 'sideBar.background', hcLight: 'sideBar.background' }, nls.localize('diffEditor.unchangedRegionBackground', \"The background color of unchanged blocks in the diff editor.\"));\nexport const diffUnchangedRegionForeground = registerColor('diffEditor.unchangedRegionForeground', { dark: 'foreground', light: 'foreground', hcDark: 'foreground', hcLight: 'foreground' }, nls.localize('diffEditor.unchangedRegionForeground', \"The foreground color of unchanged blocks in the diff editor.\"));\nexport const diffUnchangedTextBackground = registerColor('diffEditor.unchangedCodeBackground', { dark: '#74747429', light: '#b8b8b829', hcDark: null, hcLight: null }, nls.localize('diffEditor.unchangedCodeBackground', \"The background color of unchanged code in the diff editor.\"));\n// ----- widget\nexport const widgetShadow = registerColor('widget.shadow', { dark: transparent(Color.black, .36), light: transparent(Color.black, .16), hcDark: null, hcLight: null }, nls.localize('widgetShadow', 'Shadow color of widgets such as find/replace inside the editor.'));\nexport const widgetBorder = registerColor('widget.border', { dark: null, light: null, hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('widgetBorder', 'Border color of widgets such as find/replace inside the editor.'));\n// ----- toolbar\nexport const toolbarHoverBackground = registerColor('toolbar.hoverBackground', { dark: '#5a5d5e50', light: '#b8b8b850', hcDark: null, hcLight: null }, nls.localize('toolbarHoverBackground', \"Toolbar background when hovering over actions using the mouse\"));\nexport const toolbarHoverOutline = registerColor('toolbar.hoverOutline', { dark: null, light: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize('toolbarHoverOutline', \"Toolbar outline when hovering over actions using the mouse\"));\nexport const toolbarActiveBackground = registerColor('toolbar.activeBackground', { dark: lighten(toolbarHoverBackground, 0.1), light: darken(toolbarHoverBackground, 0.1), hcDark: null, hcLight: null }, nls.localize('toolbarActiveBackground', \"Toolbar background when holding the mouse over actions\"));\n// ----- breadcumbs\nexport const breadcrumbsForeground = registerColor('breadcrumb.foreground', { light: transparent(foreground, 0.8), dark: transparent(foreground, 0.8), hcDark: transparent(foreground, 0.8), hcLight: transparent(foreground, 0.8) }, nls.localize('breadcrumbsFocusForeground', \"Color of focused breadcrumb items.\"));\nexport const breadcrumbsBackground = registerColor('breadcrumb.background', { light: editorBackground, dark: editorBackground, hcDark: editorBackground, hcLight: editorBackground }, nls.localize('breadcrumbsBackground', \"Background color of breadcrumb items.\"));\nexport const breadcrumbsFocusForeground = registerColor('breadcrumb.focusForeground', { light: darken(foreground, 0.2), dark: lighten(foreground, 0.1), hcDark: lighten(foreground, 0.1), hcLight: lighten(foreground, 0.1) }, nls.localize('breadcrumbsFocusForeground', \"Color of focused breadcrumb items.\"));\nexport const breadcrumbsActiveSelectionForeground = registerColor('breadcrumb.activeSelectionForeground', { light: darken(foreground, 0.2), dark: lighten(foreground, 0.1), hcDark: lighten(foreground, 0.1), hcLight: lighten(foreground, 0.1) }, nls.localize('breadcrumbsSelectedForeground', \"Color of selected breadcrumb items.\"));\nexport const breadcrumbsPickerBackground = registerColor('breadcrumbPicker.background', { light: editorWidgetBackground, dark: editorWidgetBackground, hcDark: editorWidgetBackground, hcLight: editorWidgetBackground }, nls.localize('breadcrumbsSelectedBackground', \"Background color of breadcrumb item picker.\"));\n// ----- merge\nconst headerTransparency = 0.5;\nconst currentBaseColor = Color.fromHex('#40C8AE').transparent(headerTransparency);\nconst incomingBaseColor = Color.fromHex('#40A6FF').transparent(headerTransparency);\nconst commonBaseColor = Color.fromHex('#606060').transparent(0.4);\nconst contentTransparency = 0.4;\nconst rulerTransparency = 1;\nexport const mergeCurrentHeaderBackground = registerColor('merge.currentHeaderBackground', { dark: currentBaseColor, light: currentBaseColor, hcDark: null, hcLight: null }, nls.localize('mergeCurrentHeaderBackground', 'Current header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const mergeCurrentContentBackground = registerColor('merge.currentContentBackground', { dark: transparent(mergeCurrentHeaderBackground, contentTransparency), light: transparent(mergeCurrentHeaderBackground, contentTransparency), hcDark: transparent(mergeCurrentHeaderBackground, contentTransparency), hcLight: transparent(mergeCurrentHeaderBackground, contentTransparency) }, nls.localize('mergeCurrentContentBackground', 'Current content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const mergeIncomingHeaderBackground = registerColor('merge.incomingHeaderBackground', { dark: incomingBaseColor, light: incomingBaseColor, hcDark: null, hcLight: null }, nls.localize('mergeIncomingHeaderBackground', 'Incoming header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const mergeIncomingContentBackground = registerColor('merge.incomingContentBackground', { dark: transparent(mergeIncomingHeaderBackground, contentTransparency), light: transparent(mergeIncomingHeaderBackground, contentTransparency), hcDark: transparent(mergeIncomingHeaderBackground, contentTransparency), hcLight: transparent(mergeIncomingHeaderBackground, contentTransparency) }, nls.localize('mergeIncomingContentBackground', 'Incoming content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const mergeCommonHeaderBackground = registerColor('merge.commonHeaderBackground', { dark: commonBaseColor, light: commonBaseColor, hcDark: null, hcLight: null }, nls.localize('mergeCommonHeaderBackground', 'Common ancestor header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const mergeCommonContentBackground = registerColor('merge.commonContentBackground', { dark: transparent(mergeCommonHeaderBackground, contentTransparency), light: transparent(mergeCommonHeaderBackground, contentTransparency), hcDark: transparent(mergeCommonHeaderBackground, contentTransparency), hcLight: transparent(mergeCommonHeaderBackground, contentTransparency) }, nls.localize('mergeCommonContentBackground', 'Common ancestor content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const mergeBorder = registerColor('merge.border', { dark: null, light: null, hcDark: '#C3DF6F', hcLight: '#007ACC' }, nls.localize('mergeBorder', 'Border color on headers and the splitter in inline merge-conflicts.'));\nexport const overviewRulerCurrentContentForeground = registerColor('editorOverviewRuler.currentContentForeground', { dark: transparent(mergeCurrentHeaderBackground, rulerTransparency), light: transparent(mergeCurrentHeaderBackground, rulerTransparency), hcDark: mergeBorder, hcLight: mergeBorder }, nls.localize('overviewRulerCurrentContentForeground', 'Current overview ruler foreground for inline merge-conflicts.'));\nexport const overviewRulerIncomingContentForeground = registerColor('editorOverviewRuler.incomingContentForeground', { dark: transparent(mergeIncomingHeaderBackground, rulerTransparency), light: transparent(mergeIncomingHeaderBackground, rulerTransparency), hcDark: mergeBorder, hcLight: mergeBorder }, nls.localize('overviewRulerIncomingContentForeground', 'Incoming overview ruler foreground for inline merge-conflicts.'));\nexport const overviewRulerCommonContentForeground = registerColor('editorOverviewRuler.commonContentForeground', { dark: transparent(mergeCommonHeaderBackground, rulerTransparency), light: transparent(mergeCommonHeaderBackground, rulerTransparency), hcDark: mergeBorder, hcLight: mergeBorder }, nls.localize('overviewRulerCommonContentForeground', 'Common ancestor overview ruler foreground for inline merge-conflicts.'));\nexport const overviewRulerFindMatchForeground = registerColor('editorOverviewRuler.findMatchForeground', { dark: '#d186167e', light: '#d186167e', hcDark: '#AB5A00', hcLight: '' }, nls.localize('overviewRulerFindMatchForeground', 'Overview ruler marker color for find matches. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const overviewRulerSelectionHighlightForeground = registerColor('editorOverviewRuler.selectionHighlightForeground', { dark: '#A0A0A0CC', light: '#A0A0A0CC', hcDark: '#A0A0A0CC', hcLight: '#A0A0A0CC' }, nls.localize('overviewRulerSelectionHighlightForeground', 'Overview ruler marker color for selection highlights. The color must not be opaque so as not to hide underlying decorations.'), true);\n// ----- problems\nexport const problemsErrorIconForeground = registerColor('problemsErrorIcon.foreground', { dark: editorErrorForeground, light: editorErrorForeground, hcDark: editorErrorForeground, hcLight: editorErrorForeground }, nls.localize('problemsErrorIconForeground', \"The color used for the problems error icon.\"));\nexport const problemsWarningIconForeground = registerColor('problemsWarningIcon.foreground', { dark: editorWarningForeground, light: editorWarningForeground, hcDark: editorWarningForeground, hcLight: editorWarningForeground }, nls.localize('problemsWarningIconForeground', \"The color used for the problems warning icon.\"));\nexport const problemsInfoIconForeground = registerColor('problemsInfoIcon.foreground', { dark: editorInfoForeground, light: editorInfoForeground, hcDark: editorInfoForeground, hcLight: editorInfoForeground }, nls.localize('problemsInfoIconForeground', \"The color used for the problems info icon.\"));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/theme/common/colors/inputColors.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../../nls.js';\n// Import the effects we need\nimport { Color, RGBA } from '../../../../base/common/color.js';\nimport { registerColor, transparent, lighten, darken } from '../colorUtils.js';\n// Import the colors we need\nimport { foreground, contrastBorder, focusBorder, iconForeground } from './baseColors.js';\nimport { editorWidgetBackground } from './editorColors.js';\n// ----- input\nexport const inputBackground = registerColor('input.background', { dark: '#3C3C3C', light: Color.white, hcDark: Color.black, hcLight: Color.white }, nls.localize('inputBoxBackground', \"Input box background.\"));\nexport const inputForeground = registerColor('input.foreground', { dark: foreground, light: foreground, hcDark: foreground, hcLight: foreground }, nls.localize('inputBoxForeground', \"Input box foreground.\"));\nexport const inputBorder = registerColor('input.border', { dark: null, light: null, hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('inputBoxBorder', \"Input box border.\"));\nexport const inputActiveOptionBorder = registerColor('inputOption.activeBorder', { dark: '#007ACC', light: '#007ACC', hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('inputBoxActiveOptionBorder', \"Border color of activated options in input fields.\"));\nexport const inputActiveOptionHoverBackground = registerColor('inputOption.hoverBackground', { dark: '#5a5d5e80', light: '#b8b8b850', hcDark: null, hcLight: null }, nls.localize('inputOption.hoverBackground', \"Background color of activated options in input fields.\"));\nexport const inputActiveOptionBackground = registerColor('inputOption.activeBackground', { dark: transparent(focusBorder, 0.4), light: transparent(focusBorder, 0.2), hcDark: Color.transparent, hcLight: Color.transparent }, nls.localize('inputOption.activeBackground', \"Background hover color of options in input fields.\"));\nexport const inputActiveOptionForeground = registerColor('inputOption.activeForeground', { dark: Color.white, light: Color.black, hcDark: foreground, hcLight: foreground }, nls.localize('inputOption.activeForeground', \"Foreground color of activated options in input fields.\"));\nexport const inputPlaceholderForeground = registerColor('input.placeholderForeground', { light: transparent(foreground, 0.5), dark: transparent(foreground, 0.5), hcDark: transparent(foreground, 0.7), hcLight: transparent(foreground, 0.7) }, nls.localize('inputPlaceholderForeground', \"Input box foreground color for placeholder text.\"));\n// ----- input validation\nexport const inputValidationInfoBackground = registerColor('inputValidation.infoBackground', { dark: '#063B49', light: '#D6ECF2', hcDark: Color.black, hcLight: Color.white }, nls.localize('inputValidationInfoBackground', \"Input validation background color for information severity.\"));\nexport const inputValidationInfoForeground = registerColor('inputValidation.infoForeground', { dark: null, light: null, hcDark: null, hcLight: foreground }, nls.localize('inputValidationInfoForeground', \"Input validation foreground color for information severity.\"));\nexport const inputValidationInfoBorder = registerColor('inputValidation.infoBorder', { dark: '#007acc', light: '#007acc', hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('inputValidationInfoBorder', \"Input validation border color for information severity.\"));\nexport const inputValidationWarningBackground = registerColor('inputValidation.warningBackground', { dark: '#352A05', light: '#F6F5D2', hcDark: Color.black, hcLight: Color.white }, nls.localize('inputValidationWarningBackground', \"Input validation background color for warning severity.\"));\nexport const inputValidationWarningForeground = registerColor('inputValidation.warningForeground', { dark: null, light: null, hcDark: null, hcLight: foreground }, nls.localize('inputValidationWarningForeground', \"Input validation foreground color for warning severity.\"));\nexport const inputValidationWarningBorder = registerColor('inputValidation.warningBorder', { dark: '#B89500', light: '#B89500', hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('inputValidationWarningBorder', \"Input validation border color for warning severity.\"));\nexport const inputValidationErrorBackground = registerColor('inputValidation.errorBackground', { dark: '#5A1D1D', light: '#F2DEDE', hcDark: Color.black, hcLight: Color.white }, nls.localize('inputValidationErrorBackground', \"Input validation background color for error severity.\"));\nexport const inputValidationErrorForeground = registerColor('inputValidation.errorForeground', { dark: null, light: null, hcDark: null, hcLight: foreground }, nls.localize('inputValidationErrorForeground', \"Input validation foreground color for error severity.\"));\nexport const inputValidationErrorBorder = registerColor('inputValidation.errorBorder', { dark: '#BE1100', light: '#BE1100', hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('inputValidationErrorBorder', \"Input validation border color for error severity.\"));\n// ----- select\nexport const selectBackground = registerColor('dropdown.background', { dark: '#3C3C3C', light: Color.white, hcDark: Color.black, hcLight: Color.white }, nls.localize('dropdownBackground', \"Dropdown background.\"));\nexport const selectListBackground = registerColor('dropdown.listBackground', { dark: null, light: null, hcDark: Color.black, hcLight: Color.white }, nls.localize('dropdownListBackground', \"Dropdown list background.\"));\nexport const selectForeground = registerColor('dropdown.foreground', { dark: '#F0F0F0', light: foreground, hcDark: Color.white, hcLight: foreground }, nls.localize('dropdownForeground', \"Dropdown foreground.\"));\nexport const selectBorder = registerColor('dropdown.border', { dark: selectBackground, light: '#CECECE', hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('dropdownBorder', \"Dropdown border.\"));\n// ------ button\nexport const buttonForeground = registerColor('button.foreground', { dark: Color.white, light: Color.white, hcDark: Color.white, hcLight: Color.white }, nls.localize('buttonForeground', \"Button foreground color.\"));\nexport const buttonSeparator = registerColor('button.separator', { dark: transparent(buttonForeground, .4), light: transparent(buttonForeground, .4), hcDark: transparent(buttonForeground, .4), hcLight: transparent(buttonForeground, .4) }, nls.localize('buttonSeparator', \"Button separator color.\"));\nexport const buttonBackground = registerColor('button.background', { dark: '#0E639C', light: '#007ACC', hcDark: null, hcLight: '#0F4A85' }, nls.localize('buttonBackground', \"Button background color.\"));\nexport const buttonHoverBackground = registerColor('button.hoverBackground', { dark: lighten(buttonBackground, 0.2), light: darken(buttonBackground, 0.2), hcDark: buttonBackground, hcLight: buttonBackground }, nls.localize('buttonHoverBackground', \"Button background color when hovering.\"));\nexport const buttonBorder = registerColor('button.border', { dark: contrastBorder, light: contrastBorder, hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('buttonBorder', \"Button border color.\"));\nexport const buttonSecondaryForeground = registerColor('button.secondaryForeground', { dark: Color.white, light: Color.white, hcDark: Color.white, hcLight: foreground }, nls.localize('buttonSecondaryForeground', \"Secondary button foreground color.\"));\nexport const buttonSecondaryBackground = registerColor('button.secondaryBackground', { dark: '#3A3D41', light: '#5F6A79', hcDark: null, hcLight: Color.white }, nls.localize('buttonSecondaryBackground', \"Secondary button background color.\"));\nexport const buttonSecondaryHoverBackground = registerColor('button.secondaryHoverBackground', { dark: lighten(buttonSecondaryBackground, 0.2), light: darken(buttonSecondaryBackground, 0.2), hcDark: null, hcLight: null }, nls.localize('buttonSecondaryHoverBackground', \"Secondary button background color when hovering.\"));\n// ------ checkbox\nexport const checkboxBackground = registerColor('checkbox.background', { dark: selectBackground, light: selectBackground, hcDark: selectBackground, hcLight: selectBackground }, nls.localize('checkbox.background', \"Background color of checkbox widget.\"));\nexport const checkboxSelectBackground = registerColor('checkbox.selectBackground', { dark: editorWidgetBackground, light: editorWidgetBackground, hcDark: editorWidgetBackground, hcLight: editorWidgetBackground }, nls.localize('checkbox.select.background', \"Background color of checkbox widget when the element it's in is selected.\"));\nexport const checkboxForeground = registerColor('checkbox.foreground', { dark: selectForeground, light: selectForeground, hcDark: selectForeground, hcLight: selectForeground }, nls.localize('checkbox.foreground', \"Foreground color of checkbox widget.\"));\nexport const checkboxBorder = registerColor('checkbox.border', { dark: selectBorder, light: selectBorder, hcDark: selectBorder, hcLight: selectBorder }, nls.localize('checkbox.border', \"Border color of checkbox widget.\"));\nexport const checkboxSelectBorder = registerColor('checkbox.selectBorder', { dark: iconForeground, light: iconForeground, hcDark: iconForeground, hcLight: iconForeground }, nls.localize('checkbox.select.border', \"Border color of checkbox widget when the element it's in is selected.\"));\n// ------ keybinding label\nexport const keybindingLabelBackground = registerColor('keybindingLabel.background', { dark: new Color(new RGBA(128, 128, 128, 0.17)), light: new Color(new RGBA(221, 221, 221, 0.4)), hcDark: Color.transparent, hcLight: Color.transparent }, nls.localize('keybindingLabelBackground', \"Keybinding label background color. The keybinding label is used to represent a keyboard shortcut.\"));\nexport const keybindingLabelForeground = registerColor('keybindingLabel.foreground', { dark: Color.fromHex('#CCCCCC'), light: Color.fromHex('#555555'), hcDark: Color.white, hcLight: foreground }, nls.localize('keybindingLabelForeground', \"Keybinding label foreground color. The keybinding label is used to represent a keyboard shortcut.\"));\nexport const keybindingLabelBorder = registerColor('keybindingLabel.border', { dark: new Color(new RGBA(51, 51, 51, 0.6)), light: new Color(new RGBA(204, 204, 204, 0.4)), hcDark: new Color(new RGBA(111, 195, 223)), hcLight: contrastBorder }, nls.localize('keybindingLabelBorder', \"Keybinding label border color. The keybinding label is used to represent a keyboard shortcut.\"));\nexport const keybindingLabelBottomBorder = registerColor('keybindingLabel.bottomBorder', { dark: new Color(new RGBA(68, 68, 68, 0.6)), light: new Color(new RGBA(187, 187, 187, 0.4)), hcDark: new Color(new RGBA(111, 195, 223)), hcLight: foreground }, nls.localize('keybindingLabelBottomBorder', \"Keybinding label border bottom color. The keybinding label is used to represent a keyboard shortcut.\"));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/theme/common/colors/listColors.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../../nls.js';\n// Import the effects we need\nimport { Color } from '../../../../base/common/color.js';\nimport { registerColor, darken, lighten, transparent, ifDefinedThenElse } from '../colorUtils.js';\n// Import the colors we need\nimport { foreground, contrastBorder, activeContrastBorder, focusBorder, iconForeground } from './baseColors.js';\nimport { editorWidgetBackground, editorFindMatchHighlightBorder, editorFindMatchHighlight, widgetShadow } from './editorColors.js';\nexport const listFocusBackground = registerColor('list.focusBackground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('listFocusBackground', \"List/Tree background color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listFocusForeground = registerColor('list.focusForeground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('listFocusForeground', \"List/Tree foreground color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listFocusOutline = registerColor('list.focusOutline', { dark: focusBorder, light: focusBorder, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize('listFocusOutline', \"List/Tree outline color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listFocusAndSelectionOutline = registerColor('list.focusAndSelectionOutline', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('listFocusAndSelectionOutline', \"List/Tree outline color for the focused item when the list/tree is active and selected. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listActiveSelectionBackground = registerColor('list.activeSelectionBackground', { dark: '#04395E', light: '#0060C0', hcDark: null, hcLight: Color.fromHex('#0F4A85').transparent(0.1) }, nls.localize('listActiveSelectionBackground', \"List/Tree background color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listActiveSelectionForeground = registerColor('list.activeSelectionForeground', { dark: Color.white, light: Color.white, hcDark: null, hcLight: null }, nls.localize('listActiveSelectionForeground', \"List/Tree foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listActiveSelectionIconForeground = registerColor('list.activeSelectionIconForeground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('listActiveSelectionIconForeground', \"List/Tree icon foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listInactiveSelectionBackground = registerColor('list.inactiveSelectionBackground', { dark: '#37373D', light: '#E4E6F1', hcDark: null, hcLight: Color.fromHex('#0F4A85').transparent(0.1) }, nls.localize('listInactiveSelectionBackground', \"List/Tree background color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listInactiveSelectionForeground = registerColor('list.inactiveSelectionForeground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('listInactiveSelectionForeground', \"List/Tree foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listInactiveSelectionIconForeground = registerColor('list.inactiveSelectionIconForeground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('listInactiveSelectionIconForeground', \"List/Tree icon foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listInactiveFocusBackground = registerColor('list.inactiveFocusBackground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('listInactiveFocusBackground', \"List/Tree background color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listInactiveFocusOutline = registerColor('list.inactiveFocusOutline', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('listInactiveFocusOutline', \"List/Tree outline color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listHoverBackground = registerColor('list.hoverBackground', { dark: '#2A2D2E', light: '#F0F0F0', hcDark: Color.white.transparent(0.1), hcLight: Color.fromHex('#0F4A85').transparent(0.1) }, nls.localize('listHoverBackground', \"List/Tree background when hovering over items using the mouse.\"));\nexport const listHoverForeground = registerColor('list.hoverForeground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('listHoverForeground', \"List/Tree foreground when hovering over items using the mouse.\"));\nexport const listDropOverBackground = registerColor('list.dropBackground', { dark: '#062F4A', light: '#D6EBFF', hcDark: null, hcLight: null }, nls.localize('listDropBackground', \"List/Tree drag and drop background when moving items over other items when using the mouse.\"));\nexport const listDropBetweenBackground = registerColor('list.dropBetweenBackground', { dark: iconForeground, light: iconForeground, hcDark: null, hcLight: null }, nls.localize('listDropBetweenBackground', \"List/Tree drag and drop border color when moving items between items when using the mouse.\"));\nexport const listHighlightForeground = registerColor('list.highlightForeground', { dark: '#2AAAFF', light: '#0066BF', hcDark: focusBorder, hcLight: focusBorder }, nls.localize('highlight', 'List/Tree foreground color of the match highlights when searching inside the list/tree.'));\nexport const listFocusHighlightForeground = registerColor('list.focusHighlightForeground', { dark: listHighlightForeground, light: ifDefinedThenElse(listActiveSelectionBackground, listHighlightForeground, '#BBE7FF'), hcDark: listHighlightForeground, hcLight: listHighlightForeground }, nls.localize('listFocusHighlightForeground', 'List/Tree foreground color of the match highlights on actively focused items when searching inside the list/tree.'));\nexport const listInvalidItemForeground = registerColor('list.invalidItemForeground', { dark: '#B89500', light: '#B89500', hcDark: '#B89500', hcLight: '#B5200D' }, nls.localize('invalidItemForeground', 'List/Tree foreground color for invalid items, for example an unresolved root in explorer.'));\nexport const listErrorForeground = registerColor('list.errorForeground', { dark: '#F88070', light: '#B01011', hcDark: null, hcLight: null }, nls.localize('listErrorForeground', 'Foreground color of list items containing errors.'));\nexport const listWarningForeground = registerColor('list.warningForeground', { dark: '#CCA700', light: '#855F00', hcDark: null, hcLight: null }, nls.localize('listWarningForeground', 'Foreground color of list items containing warnings.'));\nexport const listFilterWidgetBackground = registerColor('listFilterWidget.background', { light: darken(editorWidgetBackground, 0), dark: lighten(editorWidgetBackground, 0), hcDark: editorWidgetBackground, hcLight: editorWidgetBackground }, nls.localize('listFilterWidgetBackground', 'Background color of the type filter widget in lists and trees.'));\nexport const listFilterWidgetOutline = registerColor('listFilterWidget.outline', { dark: Color.transparent, light: Color.transparent, hcDark: '#f38518', hcLight: '#007ACC' }, nls.localize('listFilterWidgetOutline', 'Outline color of the type filter widget in lists and trees.'));\nexport const listFilterWidgetNoMatchesOutline = registerColor('listFilterWidget.noMatchesOutline', { dark: '#BE1100', light: '#BE1100', hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('listFilterWidgetNoMatchesOutline', 'Outline color of the type filter widget in lists and trees, when there are no matches.'));\nexport const listFilterWidgetShadow = registerColor('listFilterWidget.shadow', { dark: widgetShadow, light: widgetShadow, hcDark: widgetShadow, hcLight: widgetShadow }, nls.localize('listFilterWidgetShadow', 'Shadow color of the type filter widget in lists and trees.'));\nexport const listFilterMatchHighlight = registerColor('list.filterMatchBackground', { dark: editorFindMatchHighlight, light: editorFindMatchHighlight, hcDark: null, hcLight: null }, nls.localize('listFilterMatchHighlight', 'Background color of the filtered match.'));\nexport const listFilterMatchHighlightBorder = registerColor('list.filterMatchBorder', { dark: editorFindMatchHighlightBorder, light: editorFindMatchHighlightBorder, hcDark: contrastBorder, hcLight: activeContrastBorder }, nls.localize('listFilterMatchHighlightBorder', 'Border color of the filtered match.'));\nexport const listDeemphasizedForeground = registerColor('list.deemphasizedForeground', { dark: '#8C8C8C', light: '#8E8E90', hcDark: '#A7A8A9', hcLight: '#666666' }, nls.localize('listDeemphasizedForeground', \"List/Tree foreground color for items that are deemphasized.\"));\n// ------ tree\nexport const treeIndentGuidesStroke = registerColor('tree.indentGuidesStroke', { dark: '#585858', light: '#a9a9a9', hcDark: '#a9a9a9', hcLight: '#a5a5a5' }, nls.localize('treeIndentGuidesStroke', \"Tree stroke color for the indentation guides.\"));\nexport const treeInactiveIndentGuidesStroke = registerColor('tree.inactiveIndentGuidesStroke', { dark: transparent(treeIndentGuidesStroke, 0.4), light: transparent(treeIndentGuidesStroke, 0.4), hcDark: transparent(treeIndentGuidesStroke, 0.4), hcLight: transparent(treeIndentGuidesStroke, 0.4) }, nls.localize('treeInactiveIndentGuidesStroke', \"Tree stroke color for the indentation guides that are not active.\"));\n// ------ table\nexport const tableColumnsBorder = registerColor('tree.tableColumnsBorder', { dark: '#CCCCCC20', light: '#61616120', hcDark: null, hcLight: null }, nls.localize('tableColumnsBorder', \"Table border color between columns.\"));\nexport const tableOddRowsBackgroundColor = registerColor('tree.tableOddRowsBackground', { dark: transparent(foreground, 0.04), light: transparent(foreground, 0.04), hcDark: null, hcLight: null }, nls.localize('tableOddRowsBackgroundColor', \"Background color for odd table rows.\"));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/theme/common/colors/menuColors.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../../nls.js';\n// Import the effects we need\nimport { registerColor } from '../colorUtils.js';\n// Import the colors we need\nimport { contrastBorder, activeContrastBorder } from './baseColors.js';\nimport { selectForeground, selectBackground } from './inputColors.js';\nimport { listActiveSelectionBackground, listActiveSelectionForeground } from './listColors.js';\nexport const menuBorder = registerColor('menu.border', { dark: null, light: null, hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('menuBorder', \"Border color of menus.\"));\nexport const menuForeground = registerColor('menu.foreground', { dark: selectForeground, light: selectForeground, hcDark: selectForeground, hcLight: selectForeground }, nls.localize('menuForeground', \"Foreground color of menu items.\"));\nexport const menuBackground = registerColor('menu.background', { dark: selectBackground, light: selectBackground, hcDark: selectBackground, hcLight: selectBackground }, nls.localize('menuBackground', \"Background color of menu items.\"));\nexport const menuSelectionForeground = registerColor('menu.selectionForeground', { dark: listActiveSelectionForeground, light: listActiveSelectionForeground, hcDark: listActiveSelectionForeground, hcLight: listActiveSelectionForeground }, nls.localize('menuSelectionForeground', \"Foreground color of the selected menu item in menus.\"));\nexport const menuSelectionBackground = registerColor('menu.selectionBackground', { dark: listActiveSelectionBackground, light: listActiveSelectionBackground, hcDark: listActiveSelectionBackground, hcLight: listActiveSelectionBackground }, nls.localize('menuSelectionBackground', \"Background color of the selected menu item in menus.\"));\nexport const menuSelectionBorder = registerColor('menu.selectionBorder', { dark: null, light: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize('menuSelectionBorder', \"Border color of the selected menu item in menus.\"));\nexport const menuSeparatorBackground = registerColor('menu.separatorBackground', { dark: '#606060', light: '#D4D4D4', hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('menuSeparatorBackground', \"Color of a separator menu item in menus.\"));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/theme/common/colors/minimapColors.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../../nls.js';\n// Import the effects we need\nimport { Color, RGBA } from '../../../../base/common/color.js';\nimport { registerColor, transparent } from '../colorUtils.js';\n// Import the colors we need\nimport { editorInfoForeground, editorWarningForeground, editorWarningBorder, editorInfoBorder } from './editorColors.js';\nimport { scrollbarSliderBackground, scrollbarSliderHoverBackground, scrollbarSliderActiveBackground } from './miscColors.js';\nexport const minimapFindMatch = registerColor('minimap.findMatchHighlight', { light: '#d18616', dark: '#d18616', hcDark: '#AB5A00', hcLight: '#0F4A85' }, nls.localize('minimapFindMatchHighlight', 'Minimap marker color for find matches.'), true);\nexport const minimapSelectionOccurrenceHighlight = registerColor('minimap.selectionOccurrenceHighlight', { light: '#c9c9c9', dark: '#676767', hcDark: '#ffffff', hcLight: '#0F4A85' }, nls.localize('minimapSelectionOccurrenceHighlight', 'Minimap marker color for repeating editor selections.'), true);\nexport const minimapSelection = registerColor('minimap.selectionHighlight', { light: '#ADD6FF', dark: '#264F78', hcDark: '#ffffff', hcLight: '#0F4A85' }, nls.localize('minimapSelectionHighlight', 'Minimap marker color for the editor selection.'), true);\nexport const minimapInfo = registerColor('minimap.infoHighlight', { dark: editorInfoForeground, light: editorInfoForeground, hcDark: editorInfoBorder, hcLight: editorInfoBorder }, nls.localize('minimapInfo', 'Minimap marker color for infos.'));\nexport const minimapWarning = registerColor('minimap.warningHighlight', { dark: editorWarningForeground, light: editorWarningForeground, hcDark: editorWarningBorder, hcLight: editorWarningBorder }, nls.localize('overviewRuleWarning', 'Minimap marker color for warnings.'));\nexport const minimapError = registerColor('minimap.errorHighlight', { dark: new Color(new RGBA(255, 18, 18, 0.7)), light: new Color(new RGBA(255, 18, 18, 0.7)), hcDark: new Color(new RGBA(255, 50, 50, 1)), hcLight: '#B5200D' }, nls.localize('minimapError', 'Minimap marker color for errors.'));\nexport const minimapBackground = registerColor('minimap.background', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('minimapBackground', \"Minimap background color.\"));\nexport const minimapForegroundOpacity = registerColor('minimap.foregroundOpacity', { dark: Color.fromHex('#000f'), light: Color.fromHex('#000f'), hcDark: Color.fromHex('#000f'), hcLight: Color.fromHex('#000f') }, nls.localize('minimapForegroundOpacity', 'Opacity of foreground elements rendered in the minimap. For example, \"#000000c0\" will render the elements with 75% opacity.'));\nexport const minimapSliderBackground = registerColor('minimapSlider.background', { light: transparent(scrollbarSliderBackground, 0.5), dark: transparent(scrollbarSliderBackground, 0.5), hcDark: transparent(scrollbarSliderBackground, 0.5), hcLight: transparent(scrollbarSliderBackground, 0.5) }, nls.localize('minimapSliderBackground', \"Minimap slider background color.\"));\nexport const minimapSliderHoverBackground = registerColor('minimapSlider.hoverBackground', { light: transparent(scrollbarSliderHoverBackground, 0.5), dark: transparent(scrollbarSliderHoverBackground, 0.5), hcDark: transparent(scrollbarSliderHoverBackground, 0.5), hcLight: transparent(scrollbarSliderHoverBackground, 0.5) }, nls.localize('minimapSliderHoverBackground', \"Minimap slider background color when hovering.\"));\nexport const minimapSliderActiveBackground = registerColor('minimapSlider.activeBackground', { light: transparent(scrollbarSliderActiveBackground, 0.5), dark: transparent(scrollbarSliderActiveBackground, 0.5), hcDark: transparent(scrollbarSliderActiveBackground, 0.5), hcLight: transparent(scrollbarSliderActiveBackground, 0.5) }, nls.localize('minimapSliderActiveBackground', \"Minimap slider background color when clicked on.\"));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/theme/common/colors/miscColors.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../../nls.js';\n// Import the effects we need\nimport { Color } from '../../../../base/common/color.js';\nimport { registerColor, transparent } from '../colorUtils.js';\n// Import the colors we need\nimport { contrastBorder, focusBorder } from './baseColors.js';\n// ----- sash\nexport const sashHoverBorder = registerColor('sash.hoverBorder', { dark: focusBorder, light: focusBorder, hcDark: focusBorder, hcLight: focusBorder }, nls.localize('sashActiveBorder', \"Border color of active sashes.\"));\n// ----- badge\nexport const badgeBackground = registerColor('badge.background', { dark: '#4D4D4D', light: '#C4C4C4', hcDark: Color.black, hcLight: '#0F4A85' }, nls.localize('badgeBackground', \"Badge background color. Badges are small information labels, e.g. for search results count.\"));\nexport const badgeForeground = registerColor('badge.foreground', { dark: Color.white, light: '#333', hcDark: Color.white, hcLight: Color.white }, nls.localize('badgeForeground', \"Badge foreground color. Badges are small information labels, e.g. for search results count.\"));\n// ----- scrollbar\nexport const scrollbarShadow = registerColor('scrollbar.shadow', { dark: '#000000', light: '#DDDDDD', hcDark: null, hcLight: null }, nls.localize('scrollbarShadow', \"Scrollbar shadow to indicate that the view is scrolled.\"));\nexport const scrollbarSliderBackground = registerColor('scrollbarSlider.background', { dark: Color.fromHex('#797979').transparent(0.4), light: Color.fromHex('#646464').transparent(0.4), hcDark: transparent(contrastBorder, 0.6), hcLight: transparent(contrastBorder, 0.4) }, nls.localize('scrollbarSliderBackground', \"Scrollbar slider background color.\"));\nexport const scrollbarSliderHoverBackground = registerColor('scrollbarSlider.hoverBackground', { dark: Color.fromHex('#646464').transparent(0.7), light: Color.fromHex('#646464').transparent(0.7), hcDark: transparent(contrastBorder, 0.8), hcLight: transparent(contrastBorder, 0.8) }, nls.localize('scrollbarSliderHoverBackground', \"Scrollbar slider background color when hovering.\"));\nexport const scrollbarSliderActiveBackground = registerColor('scrollbarSlider.activeBackground', { dark: Color.fromHex('#BFBFBF').transparent(0.4), light: Color.fromHex('#000000').transparent(0.6), hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('scrollbarSliderActiveBackground', \"Scrollbar slider background color when clicked on.\"));\n// ----- progress bar\nexport const progressBarBackground = registerColor('progressBar.background', { dark: Color.fromHex('#0E70C0'), light: Color.fromHex('#0E70C0'), hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('progressBarBackground', \"Background color of the progress bar that can show for long running operations.\"));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/theme/common/colors/quickpickColors.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../../nls.js';\n// Import the effects we need\nimport { Color, RGBA } from '../../../../base/common/color.js';\nimport { registerColor, oneOf } from '../colorUtils.js';\n// Import the colors we need\nimport { editorWidgetBackground, editorWidgetForeground } from './editorColors.js';\nimport { listActiveSelectionBackground, listActiveSelectionForeground, listActiveSelectionIconForeground } from './listColors.js';\nexport const quickInputBackground = registerColor('quickInput.background', { dark: editorWidgetBackground, light: editorWidgetBackground, hcDark: editorWidgetBackground, hcLight: editorWidgetBackground }, nls.localize('pickerBackground', \"Quick picker background color. The quick picker widget is the container for pickers like the command palette.\"));\nexport const quickInputForeground = registerColor('quickInput.foreground', { dark: editorWidgetForeground, light: editorWidgetForeground, hcDark: editorWidgetForeground, hcLight: editorWidgetForeground }, nls.localize('pickerForeground', \"Quick picker foreground color. The quick picker widget is the container for pickers like the command palette.\"));\nexport const quickInputTitleBackground = registerColor('quickInputTitle.background', { dark: new Color(new RGBA(255, 255, 255, 0.105)), light: new Color(new RGBA(0, 0, 0, 0.06)), hcDark: '#000000', hcLight: Color.white }, nls.localize('pickerTitleBackground', \"Quick picker title background color. The quick picker widget is the container for pickers like the command palette.\"));\nexport const pickerGroupForeground = registerColor('pickerGroup.foreground', { dark: '#3794FF', light: '#0066BF', hcDark: Color.white, hcLight: '#0F4A85' }, nls.localize('pickerGroupForeground', \"Quick picker color for grouping labels.\"));\nexport const pickerGroupBorder = registerColor('pickerGroup.border', { dark: '#3F3F46', light: '#CCCEDB', hcDark: Color.white, hcLight: '#0F4A85' }, nls.localize('pickerGroupBorder', \"Quick picker color for grouping borders.\"));\nexport const _deprecatedQuickInputListFocusBackground = registerColor('quickInput.list.focusBackground', { dark: null, light: null, hcDark: null, hcLight: null }, '', undefined, nls.localize('quickInput.list.focusBackground deprecation', \"Please use quickInputList.focusBackground instead\"));\nexport const quickInputListFocusForeground = registerColor('quickInputList.focusForeground', { dark: listActiveSelectionForeground, light: listActiveSelectionForeground, hcDark: listActiveSelectionForeground, hcLight: listActiveSelectionForeground }, nls.localize('quickInput.listFocusForeground', \"Quick picker foreground color for the focused item.\"));\nexport const quickInputListFocusIconForeground = registerColor('quickInputList.focusIconForeground', { dark: listActiveSelectionIconForeground, light: listActiveSelectionIconForeground, hcDark: listActiveSelectionIconForeground, hcLight: listActiveSelectionIconForeground }, nls.localize('quickInput.listFocusIconForeground', \"Quick picker icon foreground color for the focused item.\"));\nexport const quickInputListFocusBackground = registerColor('quickInputList.focusBackground', { dark: oneOf(_deprecatedQuickInputListFocusBackground, listActiveSelectionBackground), light: oneOf(_deprecatedQuickInputListFocusBackground, listActiveSelectionBackground), hcDark: null, hcLight: null }, nls.localize('quickInput.listFocusBackground', \"Quick picker background color for the focused item.\"));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/theme/common/colors/searchColors.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../../nls.js';\n// Import the effects we need\nimport { registerColor, transparent } from '../colorUtils.js';\n// Import the colors we need\nimport { foreground } from './baseColors.js';\nimport { editorFindMatchHighlight, editorFindMatchHighlightBorder } from './editorColors.js';\nexport const searchResultsInfoForeground = registerColor('search.resultsInfoForeground', { light: foreground, dark: transparent(foreground, 0.65), hcDark: foreground, hcLight: foreground }, nls.localize('search.resultsInfoForeground', \"Color of the text in the search viewlet's completion message.\"));\n// ----- search editor (Distinct from normal editor find match to allow for better differentiation)\nexport const searchEditorFindMatch = registerColor('searchEditor.findMatchBackground', { light: transparent(editorFindMatchHighlight, 0.66), dark: transparent(editorFindMatchHighlight, 0.66), hcDark: editorFindMatchHighlight, hcLight: editorFindMatchHighlight }, nls.localize('searchEditor.queryMatch', \"Color of the Search Editor query matches.\"));\nexport const searchEditorFindMatchBorder = registerColor('searchEditor.findMatchBorder', { light: transparent(editorFindMatchHighlightBorder, 0.66), dark: transparent(editorFindMatchHighlightBorder, 0.66), hcDark: editorFindMatchHighlightBorder, hcLight: editorFindMatchHighlightBorder }, nls.localize('searchEditor.editorFindMatchBorder', \"Border color of the Search Editor query matches.\"));\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/theme/common/iconRegistry.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { RunOnceScheduler } from '../../../base/common/async.js';\nimport { Codicon } from '../../../base/common/codicons.js';\nimport { getCodiconFontCharacters } from '../../../base/common/codiconsUtil.js';\nimport { ThemeIcon } from '../../../base/common/themables.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { isString } from '../../../base/common/types.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { localize } from '../../../nls.js';\nimport { Extensions as JSONExtensions } from '../../jsonschemas/common/jsonContributionRegistry.js';\nimport * as platform from '../../registry/common/platform.js';\n//  ------ API types\n// icon registry\nexport const Extensions = {\n    IconContribution: 'base.contributions.icons'\n};\nexport var IconContribution;\n(function (IconContribution) {\n    function getDefinition(contribution, registry) {\n        let definition = contribution.defaults;\n        while (ThemeIcon.isThemeIcon(definition)) {\n            const c = iconRegistry.getIcon(definition.id);\n            if (!c) {\n                return undefined;\n            }\n            definition = c.defaults;\n        }\n        return definition;\n    }\n    IconContribution.getDefinition = getDefinition;\n})(IconContribution || (IconContribution = {}));\nexport var IconFontDefinition;\n(function (IconFontDefinition) {\n    function toJSONObject(iconFont) {\n        return {\n            weight: iconFont.weight,\n            style: iconFont.style,\n            src: iconFont.src.map(s => ({ format: s.format, location: s.location.toString() }))\n        };\n    }\n    IconFontDefinition.toJSONObject = toJSONObject;\n    function fromJSONObject(json) {\n        const stringOrUndef = (s) => isString(s) ? s : undefined;\n        if (json && Array.isArray(json.src) && json.src.every((s) => isString(s.format) && isString(s.location))) {\n            return {\n                weight: stringOrUndef(json.weight),\n                style: stringOrUndef(json.style),\n                src: json.src.map((s) => ({ format: s.format, location: URI.parse(s.location) }))\n            };\n        }\n        return undefined;\n    }\n    IconFontDefinition.fromJSONObject = fromJSONObject;\n})(IconFontDefinition || (IconFontDefinition = {}));\nclass IconRegistry {\n    constructor() {\n        this._onDidChange = new Emitter();\n        this.onDidChange = this._onDidChange.event;\n        this.iconSchema = {\n            definitions: {\n                icons: {\n                    type: 'object',\n                    properties: {\n                        fontId: { type: 'string', description: localize('iconDefinition.fontId', 'The id of the font to use. If not set, the font that is defined first is used.') },\n                        fontCharacter: { type: 'string', description: localize('iconDefinition.fontCharacter', 'The font character associated with the icon definition.') }\n                    },\n                    additionalProperties: false,\n                    defaultSnippets: [{ body: { fontCharacter: '\\\\\\\\e030' } }]\n                }\n            },\n            type: 'object',\n            properties: {}\n        };\n        this.iconReferenceSchema = { type: 'string', pattern: `^${ThemeIcon.iconNameExpression}$`, enum: [], enumDescriptions: [] };\n        this.iconsById = {};\n        this.iconFontsById = {};\n    }\n    registerIcon(id, defaults, description, deprecationMessage) {\n        const existing = this.iconsById[id];\n        if (existing) {\n            if (description && !existing.description) {\n                existing.description = description;\n                this.iconSchema.properties[id].markdownDescription = `${description} $(${id})`;\n                const enumIndex = this.iconReferenceSchema.enum.indexOf(id);\n                if (enumIndex !== -1) {\n                    this.iconReferenceSchema.enumDescriptions[enumIndex] = description;\n                }\n                this._onDidChange.fire();\n            }\n            return existing;\n        }\n        const iconContribution = { id, description, defaults, deprecationMessage };\n        this.iconsById[id] = iconContribution;\n        const propertySchema = { $ref: '#/definitions/icons' };\n        if (deprecationMessage) {\n            propertySchema.deprecationMessage = deprecationMessage;\n        }\n        if (description) {\n            propertySchema.markdownDescription = `${description}: $(${id})`;\n        }\n        this.iconSchema.properties[id] = propertySchema;\n        this.iconReferenceSchema.enum.push(id);\n        this.iconReferenceSchema.enumDescriptions.push(description || '');\n        this._onDidChange.fire();\n        return { id };\n    }\n    getIcons() {\n        return Object.keys(this.iconsById).map(id => this.iconsById[id]);\n    }\n    getIcon(id) {\n        return this.iconsById[id];\n    }\n    getIconSchema() {\n        return this.iconSchema;\n    }\n    toString() {\n        const sorter = (i1, i2) => {\n            return i1.id.localeCompare(i2.id);\n        };\n        const classNames = (i) => {\n            while (ThemeIcon.isThemeIcon(i.defaults)) {\n                i = this.iconsById[i.defaults.id];\n            }\n            return `codicon codicon-${i ? i.id : ''}`;\n        };\n        const reference = [];\n        reference.push(`| preview     | identifier                        | default codicon ID                | description`);\n        reference.push(`| ----------- | --------------------------------- | --------------------------------- | --------------------------------- |`);\n        const contributions = Object.keys(this.iconsById).map(key => this.iconsById[key]);\n        for (const i of contributions.filter(i => !!i.description).sort(sorter)) {\n            reference.push(`|<i class=\"${classNames(i)}\"></i>|${i.id}|${ThemeIcon.isThemeIcon(i.defaults) ? i.defaults.id : i.id}|${i.description || ''}|`);\n        }\n        reference.push(`| preview     | identifier                        `);\n        reference.push(`| ----------- | --------------------------------- |`);\n        for (const i of contributions.filter(i => !ThemeIcon.isThemeIcon(i.defaults)).sort(sorter)) {\n            reference.push(`|<i class=\"${classNames(i)}\"></i>|${i.id}|`);\n        }\n        return reference.join('\\n');\n    }\n}\nconst iconRegistry = new IconRegistry();\nplatform.Registry.add(Extensions.IconContribution, iconRegistry);\nexport function registerIcon(id, defaults, description, deprecationMessage) {\n    return iconRegistry.registerIcon(id, defaults, description, deprecationMessage);\n}\nexport function getIconRegistry() {\n    return iconRegistry;\n}\nfunction initialize() {\n    const codiconFontCharacters = getCodiconFontCharacters();\n    for (const icon in codiconFontCharacters) {\n        const fontCharacter = '\\\\' + codiconFontCharacters[icon].toString(16);\n        iconRegistry.registerIcon(icon, { fontCharacter });\n    }\n}\ninitialize();\nexport const iconsSchemaId = 'vscode://schemas/icons';\nconst schemaRegistry = platform.Registry.as(JSONExtensions.JSONContribution);\nschemaRegistry.registerSchema(iconsSchemaId, iconRegistry.getIconSchema());\nconst delayer = new RunOnceScheduler(() => schemaRegistry.notifySchemaChanged(iconsSchemaId), 200);\niconRegistry.onDidChange(() => {\n    if (!delayer.isScheduled()) {\n        delayer.schedule();\n    }\n});\n//setTimeout(_ => console.log(iconRegistry.toString()), 5000);\n// common icons\nexport const widgetClose = registerIcon('widget-close', Codicon.close, localize('widgetClose', 'Icon for the close action in widgets.'));\nexport const gotoPreviousLocation = registerIcon('goto-previous-location', Codicon.arrowUp, localize('previousChangeIcon', 'Icon for goto previous editor location.'));\nexport const gotoNextLocation = registerIcon('goto-next-location', Codicon.arrowDown, localize('nextChangeIcon', 'Icon for goto next editor location.'));\nexport const syncing = ThemeIcon.modify(Codicon.sync, 'spin');\nexport const spinningLoading = ThemeIcon.modify(Codicon.loading, 'spin');\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/theme/common/theme.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * Color scheme used by the OS and by color themes.\n */\nexport var ColorScheme;\n(function (ColorScheme) {\n    ColorScheme[\"DARK\"] = \"dark\";\n    ColorScheme[\"LIGHT\"] = \"light\";\n    ColorScheme[\"HIGH_CONTRAST_DARK\"] = \"hcDark\";\n    ColorScheme[\"HIGH_CONTRAST_LIGHT\"] = \"hcLight\";\n})(ColorScheme || (ColorScheme = {}));\nexport function isHighContrast(scheme) {\n    return scheme === ColorScheme.HIGH_CONTRAST_DARK || scheme === ColorScheme.HIGH_CONTRAST_LIGHT;\n}\nexport function isDark(scheme) {\n    return scheme === ColorScheme.DARK || scheme === ColorScheme.HIGH_CONTRAST_DARK;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/theme/common/themeService.js",
    "content": "import { Emitter } from '../../../base/common/event.js';\nimport { Disposable, toDisposable } from '../../../base/common/lifecycle.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nimport * as platform from '../../registry/common/platform.js';\nimport { ColorScheme } from './theme.js';\nexport const IThemeService = createDecorator('themeService');\nexport function themeColorFromId(id) {\n    return { id };\n}\nexport function getThemeTypeSelector(type) {\n    switch (type) {\n        case ColorScheme.DARK: return 'vs-dark';\n        case ColorScheme.HIGH_CONTRAST_DARK: return 'hc-black';\n        case ColorScheme.HIGH_CONTRAST_LIGHT: return 'hc-light';\n        default: return 'vs';\n    }\n}\n// static theming participant\nexport const Extensions = {\n    ThemingContribution: 'base.contributions.theming'\n};\nclass ThemingRegistry {\n    constructor() {\n        this.themingParticipants = [];\n        this.themingParticipants = [];\n        this.onThemingParticipantAddedEmitter = new Emitter();\n    }\n    onColorThemeChange(participant) {\n        this.themingParticipants.push(participant);\n        this.onThemingParticipantAddedEmitter.fire(participant);\n        return toDisposable(() => {\n            const idx = this.themingParticipants.indexOf(participant);\n            this.themingParticipants.splice(idx, 1);\n        });\n    }\n    getThemingParticipants() {\n        return this.themingParticipants;\n    }\n}\nconst themingRegistry = new ThemingRegistry();\nplatform.Registry.add(Extensions.ThemingContribution, themingRegistry);\nexport function registerThemingParticipant(participant) {\n    return themingRegistry.onColorThemeChange(participant);\n}\n/**\n * Utility base class for all themable components.\n */\nexport class Themable extends Disposable {\n    constructor(themeService) {\n        super();\n        this.themeService = themeService;\n        this.theme = themeService.getColorTheme();\n        // Hook up to theme changes\n        this._register(this.themeService.onDidColorThemeChange(theme => this.onThemeChange(theme)));\n    }\n    onThemeChange(theme) {\n        this.theme = theme;\n        this.updateStyles();\n    }\n    updateStyles() {\n        // Subclasses to override\n    }\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/undoRedo/common/undoRedo.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const IUndoRedoService = createDecorator('undoRedoService');\nexport class ResourceEditStackSnapshot {\n    constructor(resource, elements) {\n        this.resource = resource;\n        this.elements = elements;\n    }\n}\nexport class UndoRedoGroup {\n    constructor() {\n        this.id = UndoRedoGroup._ID++;\n        this.order = 1;\n    }\n    nextOrder() {\n        if (this.id === 0) {\n            return 0;\n        }\n        return this.order++;\n    }\n}\nUndoRedoGroup._ID = 0;\nUndoRedoGroup.None = new UndoRedoGroup();\nexport class UndoRedoSource {\n    constructor() {\n        this.id = UndoRedoSource._ID++;\n        this.order = 1;\n    }\n    nextOrder() {\n        if (this.id === 0) {\n            return 0;\n        }\n        return this.order++;\n    }\n}\nUndoRedoSource._ID = 0;\nUndoRedoSource.None = new UndoRedoSource();\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/undoRedo/common/undoRedoService.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n    return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { onUnexpectedError } from '../../../base/common/errors.js';\nimport { Disposable, isDisposable } from '../../../base/common/lifecycle.js';\nimport { Schemas } from '../../../base/common/network.js';\nimport Severity from '../../../base/common/severity.js';\nimport * as nls from '../../../nls.js';\nimport { IDialogService } from '../../dialogs/common/dialogs.js';\nimport { registerSingleton } from '../../instantiation/common/extensions.js';\nimport { INotificationService } from '../../notification/common/notification.js';\nimport { IUndoRedoService, ResourceEditStackSnapshot, UndoRedoGroup, UndoRedoSource } from './undoRedo.js';\nconst DEBUG = false;\nfunction getResourceLabel(resource) {\n    return resource.scheme === Schemas.file ? resource.fsPath : resource.path;\n}\nlet stackElementCounter = 0;\nclass ResourceStackElement {\n    constructor(actual, resourceLabel, strResource, groupId, groupOrder, sourceId, sourceOrder) {\n        this.id = (++stackElementCounter);\n        this.type = 0 /* UndoRedoElementType.Resource */;\n        this.actual = actual;\n        this.label = actual.label;\n        this.confirmBeforeUndo = actual.confirmBeforeUndo || false;\n        this.resourceLabel = resourceLabel;\n        this.strResource = strResource;\n        this.resourceLabels = [this.resourceLabel];\n        this.strResources = [this.strResource];\n        this.groupId = groupId;\n        this.groupOrder = groupOrder;\n        this.sourceId = sourceId;\n        this.sourceOrder = sourceOrder;\n        this.isValid = true;\n    }\n    setValid(isValid) {\n        this.isValid = isValid;\n    }\n    toString() {\n        return `[id:${this.id}] [group:${this.groupId}] [${this.isValid ? '  VALID' : 'INVALID'}] ${this.actual.constructor.name} - ${this.actual}`;\n    }\n}\nclass ResourceReasonPair {\n    constructor(resourceLabel, reason) {\n        this.resourceLabel = resourceLabel;\n        this.reason = reason;\n    }\n}\nclass RemovedResources {\n    constructor() {\n        this.elements = new Map();\n    }\n    createMessage() {\n        const externalRemoval = [];\n        const noParallelUniverses = [];\n        for (const [, element] of this.elements) {\n            const dest = (element.reason === 0 /* RemovedResourceReason.ExternalRemoval */\n                ? externalRemoval\n                : noParallelUniverses);\n            dest.push(element.resourceLabel);\n        }\n        const messages = [];\n        if (externalRemoval.length > 0) {\n            messages.push(nls.localize({ key: 'externalRemoval', comment: ['{0} is a list of filenames'] }, \"The following files have been closed and modified on disk: {0}.\", externalRemoval.join(', ')));\n        }\n        if (noParallelUniverses.length > 0) {\n            messages.push(nls.localize({ key: 'noParallelUniverses', comment: ['{0} is a list of filenames'] }, \"The following files have been modified in an incompatible way: {0}.\", noParallelUniverses.join(', ')));\n        }\n        return messages.join('\\n');\n    }\n    get size() {\n        return this.elements.size;\n    }\n    has(strResource) {\n        return this.elements.has(strResource);\n    }\n    set(strResource, value) {\n        this.elements.set(strResource, value);\n    }\n    delete(strResource) {\n        return this.elements.delete(strResource);\n    }\n}\nclass WorkspaceStackElement {\n    constructor(actual, resourceLabels, strResources, groupId, groupOrder, sourceId, sourceOrder) {\n        this.id = (++stackElementCounter);\n        this.type = 1 /* UndoRedoElementType.Workspace */;\n        this.actual = actual;\n        this.label = actual.label;\n        this.confirmBeforeUndo = actual.confirmBeforeUndo || false;\n        this.resourceLabels = resourceLabels;\n        this.strResources = strResources;\n        this.groupId = groupId;\n        this.groupOrder = groupOrder;\n        this.sourceId = sourceId;\n        this.sourceOrder = sourceOrder;\n        this.removedResources = null;\n        this.invalidatedResources = null;\n    }\n    canSplit() {\n        return (typeof this.actual.split === 'function');\n    }\n    removeResource(resourceLabel, strResource, reason) {\n        if (!this.removedResources) {\n            this.removedResources = new RemovedResources();\n        }\n        if (!this.removedResources.has(strResource)) {\n            this.removedResources.set(strResource, new ResourceReasonPair(resourceLabel, reason));\n        }\n    }\n    setValid(resourceLabel, strResource, isValid) {\n        if (isValid) {\n            if (this.invalidatedResources) {\n                this.invalidatedResources.delete(strResource);\n                if (this.invalidatedResources.size === 0) {\n                    this.invalidatedResources = null;\n                }\n            }\n        }\n        else {\n            if (!this.invalidatedResources) {\n                this.invalidatedResources = new RemovedResources();\n            }\n            if (!this.invalidatedResources.has(strResource)) {\n                this.invalidatedResources.set(strResource, new ResourceReasonPair(resourceLabel, 0 /* RemovedResourceReason.ExternalRemoval */));\n            }\n        }\n    }\n    toString() {\n        return `[id:${this.id}] [group:${this.groupId}] [${this.invalidatedResources ? 'INVALID' : '  VALID'}] ${this.actual.constructor.name} - ${this.actual}`;\n    }\n}\nclass ResourceEditStack {\n    constructor(resourceLabel, strResource) {\n        this.resourceLabel = resourceLabel;\n        this.strResource = strResource;\n        this._past = [];\n        this._future = [];\n        this.locked = false;\n        this.versionId = 1;\n    }\n    dispose() {\n        for (const element of this._past) {\n            if (element.type === 1 /* UndoRedoElementType.Workspace */) {\n                element.removeResource(this.resourceLabel, this.strResource, 0 /* RemovedResourceReason.ExternalRemoval */);\n            }\n        }\n        for (const element of this._future) {\n            if (element.type === 1 /* UndoRedoElementType.Workspace */) {\n                element.removeResource(this.resourceLabel, this.strResource, 0 /* RemovedResourceReason.ExternalRemoval */);\n            }\n        }\n        this.versionId++;\n    }\n    toString() {\n        const result = [];\n        result.push(`* ${this.strResource}:`);\n        for (let i = 0; i < this._past.length; i++) {\n            result.push(`   * [UNDO] ${this._past[i]}`);\n        }\n        for (let i = this._future.length - 1; i >= 0; i--) {\n            result.push(`   * [REDO] ${this._future[i]}`);\n        }\n        return result.join('\\n');\n    }\n    flushAllElements() {\n        this._past = [];\n        this._future = [];\n        this.versionId++;\n    }\n    _setElementValidFlag(element, isValid) {\n        if (element.type === 1 /* UndoRedoElementType.Workspace */) {\n            element.setValid(this.resourceLabel, this.strResource, isValid);\n        }\n        else {\n            element.setValid(isValid);\n        }\n    }\n    setElementsValidFlag(isValid, filter) {\n        for (const element of this._past) {\n            if (filter(element.actual)) {\n                this._setElementValidFlag(element, isValid);\n            }\n        }\n        for (const element of this._future) {\n            if (filter(element.actual)) {\n                this._setElementValidFlag(element, isValid);\n            }\n        }\n    }\n    pushElement(element) {\n        // remove the future\n        for (const futureElement of this._future) {\n            if (futureElement.type === 1 /* UndoRedoElementType.Workspace */) {\n                futureElement.removeResource(this.resourceLabel, this.strResource, 1 /* RemovedResourceReason.NoParallelUniverses */);\n            }\n        }\n        this._future = [];\n        this._past.push(element);\n        this.versionId++;\n    }\n    createSnapshot(resource) {\n        const elements = [];\n        for (let i = 0, len = this._past.length; i < len; i++) {\n            elements.push(this._past[i].id);\n        }\n        for (let i = this._future.length - 1; i >= 0; i--) {\n            elements.push(this._future[i].id);\n        }\n        return new ResourceEditStackSnapshot(resource, elements);\n    }\n    restoreSnapshot(snapshot) {\n        const snapshotLength = snapshot.elements.length;\n        let isOK = true;\n        let snapshotIndex = 0;\n        let removePastAfter = -1;\n        for (let i = 0, len = this._past.length; i < len; i++, snapshotIndex++) {\n            const element = this._past[i];\n            if (isOK && (snapshotIndex >= snapshotLength || element.id !== snapshot.elements[snapshotIndex])) {\n                isOK = false;\n                removePastAfter = 0;\n            }\n            if (!isOK && element.type === 1 /* UndoRedoElementType.Workspace */) {\n                element.removeResource(this.resourceLabel, this.strResource, 0 /* RemovedResourceReason.ExternalRemoval */);\n            }\n        }\n        let removeFutureBefore = -1;\n        for (let i = this._future.length - 1; i >= 0; i--, snapshotIndex++) {\n            const element = this._future[i];\n            if (isOK && (snapshotIndex >= snapshotLength || element.id !== snapshot.elements[snapshotIndex])) {\n                isOK = false;\n                removeFutureBefore = i;\n            }\n            if (!isOK && element.type === 1 /* UndoRedoElementType.Workspace */) {\n                element.removeResource(this.resourceLabel, this.strResource, 0 /* RemovedResourceReason.ExternalRemoval */);\n            }\n        }\n        if (removePastAfter !== -1) {\n            this._past = this._past.slice(0, removePastAfter);\n        }\n        if (removeFutureBefore !== -1) {\n            this._future = this._future.slice(removeFutureBefore + 1);\n        }\n        this.versionId++;\n    }\n    getElements() {\n        const past = [];\n        const future = [];\n        for (const element of this._past) {\n            past.push(element.actual);\n        }\n        for (const element of this._future) {\n            future.push(element.actual);\n        }\n        return { past, future };\n    }\n    getClosestPastElement() {\n        if (this._past.length === 0) {\n            return null;\n        }\n        return this._past[this._past.length - 1];\n    }\n    getSecondClosestPastElement() {\n        if (this._past.length < 2) {\n            return null;\n        }\n        return this._past[this._past.length - 2];\n    }\n    getClosestFutureElement() {\n        if (this._future.length === 0) {\n            return null;\n        }\n        return this._future[this._future.length - 1];\n    }\n    hasPastElements() {\n        return (this._past.length > 0);\n    }\n    hasFutureElements() {\n        return (this._future.length > 0);\n    }\n    splitPastWorkspaceElement(toRemove, individualMap) {\n        for (let j = this._past.length - 1; j >= 0; j--) {\n            if (this._past[j] === toRemove) {\n                if (individualMap.has(this.strResource)) {\n                    // gets replaced\n                    this._past[j] = individualMap.get(this.strResource);\n                }\n                else {\n                    // gets deleted\n                    this._past.splice(j, 1);\n                }\n                break;\n            }\n        }\n        this.versionId++;\n    }\n    splitFutureWorkspaceElement(toRemove, individualMap) {\n        for (let j = this._future.length - 1; j >= 0; j--) {\n            if (this._future[j] === toRemove) {\n                if (individualMap.has(this.strResource)) {\n                    // gets replaced\n                    this._future[j] = individualMap.get(this.strResource);\n                }\n                else {\n                    // gets deleted\n                    this._future.splice(j, 1);\n                }\n                break;\n            }\n        }\n        this.versionId++;\n    }\n    moveBackward(element) {\n        this._past.pop();\n        this._future.push(element);\n        this.versionId++;\n    }\n    moveForward(element) {\n        this._future.pop();\n        this._past.push(element);\n        this.versionId++;\n    }\n}\nclass EditStackSnapshot {\n    constructor(editStacks) {\n        this.editStacks = editStacks;\n        this._versionIds = [];\n        for (let i = 0, len = this.editStacks.length; i < len; i++) {\n            this._versionIds[i] = this.editStacks[i].versionId;\n        }\n    }\n    isValid() {\n        for (let i = 0, len = this.editStacks.length; i < len; i++) {\n            if (this._versionIds[i] !== this.editStacks[i].versionId) {\n                return false;\n            }\n        }\n        return true;\n    }\n}\nconst missingEditStack = new ResourceEditStack('', '');\nmissingEditStack.locked = true;\nlet UndoRedoService = class UndoRedoService {\n    constructor(_dialogService, _notificationService) {\n        this._dialogService = _dialogService;\n        this._notificationService = _notificationService;\n        this._editStacks = new Map();\n        this._uriComparisonKeyComputers = [];\n    }\n    getUriComparisonKey(resource) {\n        for (const uriComparisonKeyComputer of this._uriComparisonKeyComputers) {\n            if (uriComparisonKeyComputer[0] === resource.scheme) {\n                return uriComparisonKeyComputer[1].getComparisonKey(resource);\n            }\n        }\n        return resource.toString();\n    }\n    _print(label) {\n        console.log(`------------------------------------`);\n        console.log(`AFTER ${label}: `);\n        const str = [];\n        for (const element of this._editStacks) {\n            str.push(element[1].toString());\n        }\n        console.log(str.join('\\n'));\n    }\n    pushElement(element, group = UndoRedoGroup.None, source = UndoRedoSource.None) {\n        if (element.type === 0 /* UndoRedoElementType.Resource */) {\n            const resourceLabel = getResourceLabel(element.resource);\n            const strResource = this.getUriComparisonKey(element.resource);\n            this._pushElement(new ResourceStackElement(element, resourceLabel, strResource, group.id, group.nextOrder(), source.id, source.nextOrder()));\n        }\n        else {\n            const seen = new Set();\n            const resourceLabels = [];\n            const strResources = [];\n            for (const resource of element.resources) {\n                const resourceLabel = getResourceLabel(resource);\n                const strResource = this.getUriComparisonKey(resource);\n                if (seen.has(strResource)) {\n                    continue;\n                }\n                seen.add(strResource);\n                resourceLabels.push(resourceLabel);\n                strResources.push(strResource);\n            }\n            if (resourceLabels.length === 1) {\n                this._pushElement(new ResourceStackElement(element, resourceLabels[0], strResources[0], group.id, group.nextOrder(), source.id, source.nextOrder()));\n            }\n            else {\n                this._pushElement(new WorkspaceStackElement(element, resourceLabels, strResources, group.id, group.nextOrder(), source.id, source.nextOrder()));\n            }\n        }\n        if (DEBUG) {\n            this._print('pushElement');\n        }\n    }\n    _pushElement(element) {\n        for (let i = 0, len = element.strResources.length; i < len; i++) {\n            const resourceLabel = element.resourceLabels[i];\n            const strResource = element.strResources[i];\n            let editStack;\n            if (this._editStacks.has(strResource)) {\n                editStack = this._editStacks.get(strResource);\n            }\n            else {\n                editStack = new ResourceEditStack(resourceLabel, strResource);\n                this._editStacks.set(strResource, editStack);\n            }\n            editStack.pushElement(element);\n        }\n    }\n    getLastElement(resource) {\n        const strResource = this.getUriComparisonKey(resource);\n        if (this._editStacks.has(strResource)) {\n            const editStack = this._editStacks.get(strResource);\n            if (editStack.hasFutureElements()) {\n                return null;\n            }\n            const closestPastElement = editStack.getClosestPastElement();\n            return closestPastElement ? closestPastElement.actual : null;\n        }\n        return null;\n    }\n    _splitPastWorkspaceElement(toRemove, ignoreResources) {\n        const individualArr = toRemove.actual.split();\n        const individualMap = new Map();\n        for (const _element of individualArr) {\n            const resourceLabel = getResourceLabel(_element.resource);\n            const strResource = this.getUriComparisonKey(_element.resource);\n            const element = new ResourceStackElement(_element, resourceLabel, strResource, 0, 0, 0, 0);\n            individualMap.set(element.strResource, element);\n        }\n        for (const strResource of toRemove.strResources) {\n            if (ignoreResources && ignoreResources.has(strResource)) {\n                continue;\n            }\n            const editStack = this._editStacks.get(strResource);\n            editStack.splitPastWorkspaceElement(toRemove, individualMap);\n        }\n    }\n    _splitFutureWorkspaceElement(toRemove, ignoreResources) {\n        const individualArr = toRemove.actual.split();\n        const individualMap = new Map();\n        for (const _element of individualArr) {\n            const resourceLabel = getResourceLabel(_element.resource);\n            const strResource = this.getUriComparisonKey(_element.resource);\n            const element = new ResourceStackElement(_element, resourceLabel, strResource, 0, 0, 0, 0);\n            individualMap.set(element.strResource, element);\n        }\n        for (const strResource of toRemove.strResources) {\n            if (ignoreResources && ignoreResources.has(strResource)) {\n                continue;\n            }\n            const editStack = this._editStacks.get(strResource);\n            editStack.splitFutureWorkspaceElement(toRemove, individualMap);\n        }\n    }\n    removeElements(resource) {\n        const strResource = typeof resource === 'string' ? resource : this.getUriComparisonKey(resource);\n        if (this._editStacks.has(strResource)) {\n            const editStack = this._editStacks.get(strResource);\n            editStack.dispose();\n            this._editStacks.delete(strResource);\n        }\n        if (DEBUG) {\n            this._print('removeElements');\n        }\n    }\n    setElementsValidFlag(resource, isValid, filter) {\n        const strResource = this.getUriComparisonKey(resource);\n        if (this._editStacks.has(strResource)) {\n            const editStack = this._editStacks.get(strResource);\n            editStack.setElementsValidFlag(isValid, filter);\n        }\n        if (DEBUG) {\n            this._print('setElementsValidFlag');\n        }\n    }\n    createSnapshot(resource) {\n        const strResource = this.getUriComparisonKey(resource);\n        if (this._editStacks.has(strResource)) {\n            const editStack = this._editStacks.get(strResource);\n            return editStack.createSnapshot(resource);\n        }\n        return new ResourceEditStackSnapshot(resource, []);\n    }\n    restoreSnapshot(snapshot) {\n        const strResource = this.getUriComparisonKey(snapshot.resource);\n        if (this._editStacks.has(strResource)) {\n            const editStack = this._editStacks.get(strResource);\n            editStack.restoreSnapshot(snapshot);\n            if (!editStack.hasPastElements() && !editStack.hasFutureElements()) {\n                // the edit stack is now empty, just remove it entirely\n                editStack.dispose();\n                this._editStacks.delete(strResource);\n            }\n        }\n        if (DEBUG) {\n            this._print('restoreSnapshot');\n        }\n    }\n    getElements(resource) {\n        const strResource = this.getUriComparisonKey(resource);\n        if (this._editStacks.has(strResource)) {\n            const editStack = this._editStacks.get(strResource);\n            return editStack.getElements();\n        }\n        return { past: [], future: [] };\n    }\n    _findClosestUndoElementWithSource(sourceId) {\n        if (!sourceId) {\n            return [null, null];\n        }\n        // find an element with the sourceId and with the highest sourceOrder ready to be undone\n        let matchedElement = null;\n        let matchedStrResource = null;\n        for (const [strResource, editStack] of this._editStacks) {\n            const candidate = editStack.getClosestPastElement();\n            if (!candidate) {\n                continue;\n            }\n            if (candidate.sourceId === sourceId) {\n                if (!matchedElement || candidate.sourceOrder > matchedElement.sourceOrder) {\n                    matchedElement = candidate;\n                    matchedStrResource = strResource;\n                }\n            }\n        }\n        return [matchedElement, matchedStrResource];\n    }\n    canUndo(resourceOrSource) {\n        if (resourceOrSource instanceof UndoRedoSource) {\n            const [, matchedStrResource] = this._findClosestUndoElementWithSource(resourceOrSource.id);\n            return matchedStrResource ? true : false;\n        }\n        const strResource = this.getUriComparisonKey(resourceOrSource);\n        if (this._editStacks.has(strResource)) {\n            const editStack = this._editStacks.get(strResource);\n            return editStack.hasPastElements();\n        }\n        return false;\n    }\n    _onError(err, element) {\n        onUnexpectedError(err);\n        // An error occurred while undoing or redoing => drop the undo/redo stack for all affected resources\n        for (const strResource of element.strResources) {\n            this.removeElements(strResource);\n        }\n        this._notificationService.error(err);\n    }\n    _acquireLocks(editStackSnapshot) {\n        // first, check if all locks can be acquired\n        for (const editStack of editStackSnapshot.editStacks) {\n            if (editStack.locked) {\n                throw new Error('Cannot acquire edit stack lock');\n            }\n        }\n        // can acquire all locks\n        for (const editStack of editStackSnapshot.editStacks) {\n            editStack.locked = true;\n        }\n        return () => {\n            // release all locks\n            for (const editStack of editStackSnapshot.editStacks) {\n                editStack.locked = false;\n            }\n        };\n    }\n    _safeInvokeWithLocks(element, invoke, editStackSnapshot, cleanup, continuation) {\n        const releaseLocks = this._acquireLocks(editStackSnapshot);\n        let result;\n        try {\n            result = invoke();\n        }\n        catch (err) {\n            releaseLocks();\n            cleanup.dispose();\n            return this._onError(err, element);\n        }\n        if (result) {\n            // result is Promise<void>\n            return result.then(() => {\n                releaseLocks();\n                cleanup.dispose();\n                return continuation();\n            }, (err) => {\n                releaseLocks();\n                cleanup.dispose();\n                return this._onError(err, element);\n            });\n        }\n        else {\n            // result is void\n            releaseLocks();\n            cleanup.dispose();\n            return continuation();\n        }\n    }\n    async _invokeWorkspacePrepare(element) {\n        if (typeof element.actual.prepareUndoRedo === 'undefined') {\n            return Disposable.None;\n        }\n        const result = element.actual.prepareUndoRedo();\n        if (typeof result === 'undefined') {\n            return Disposable.None;\n        }\n        return result;\n    }\n    _invokeResourcePrepare(element, callback) {\n        if (element.actual.type !== 1 /* UndoRedoElementType.Workspace */ || typeof element.actual.prepareUndoRedo === 'undefined') {\n            // no preparation needed\n            return callback(Disposable.None);\n        }\n        const r = element.actual.prepareUndoRedo();\n        if (!r) {\n            // nothing to clean up\n            return callback(Disposable.None);\n        }\n        if (isDisposable(r)) {\n            return callback(r);\n        }\n        return r.then((disposable) => {\n            return callback(disposable);\n        });\n    }\n    _getAffectedEditStacks(element) {\n        const affectedEditStacks = [];\n        for (const strResource of element.strResources) {\n            affectedEditStacks.push(this._editStacks.get(strResource) || missingEditStack);\n        }\n        return new EditStackSnapshot(affectedEditStacks);\n    }\n    _tryToSplitAndUndo(strResource, element, ignoreResources, message) {\n        if (element.canSplit()) {\n            this._splitPastWorkspaceElement(element, ignoreResources);\n            this._notificationService.warn(message);\n            return new WorkspaceVerificationError(this._undo(strResource, 0, true));\n        }\n        else {\n            // Cannot safely split this workspace element => flush all undo/redo stacks\n            for (const strResource of element.strResources) {\n                this.removeElements(strResource);\n            }\n            this._notificationService.warn(message);\n            return new WorkspaceVerificationError();\n        }\n    }\n    _checkWorkspaceUndo(strResource, element, editStackSnapshot, checkInvalidatedResources) {\n        if (element.removedResources) {\n            return this._tryToSplitAndUndo(strResource, element, element.removedResources, nls.localize({ key: 'cannotWorkspaceUndo', comment: ['{0} is a label for an operation. {1} is another message.'] }, \"Could not undo '{0}' across all files. {1}\", element.label, element.removedResources.createMessage()));\n        }\n        if (checkInvalidatedResources && element.invalidatedResources) {\n            return this._tryToSplitAndUndo(strResource, element, element.invalidatedResources, nls.localize({ key: 'cannotWorkspaceUndo', comment: ['{0} is a label for an operation. {1} is another message.'] }, \"Could not undo '{0}' across all files. {1}\", element.label, element.invalidatedResources.createMessage()));\n        }\n        // this must be the last past element in all the impacted resources!\n        const cannotUndoDueToResources = [];\n        for (const editStack of editStackSnapshot.editStacks) {\n            if (editStack.getClosestPastElement() !== element) {\n                cannotUndoDueToResources.push(editStack.resourceLabel);\n            }\n        }\n        if (cannotUndoDueToResources.length > 0) {\n            return this._tryToSplitAndUndo(strResource, element, null, nls.localize({ key: 'cannotWorkspaceUndoDueToChanges', comment: ['{0} is a label for an operation. {1} is a list of filenames.'] }, \"Could not undo '{0}' across all files because changes were made to {1}\", element.label, cannotUndoDueToResources.join(', ')));\n        }\n        const cannotLockDueToResources = [];\n        for (const editStack of editStackSnapshot.editStacks) {\n            if (editStack.locked) {\n                cannotLockDueToResources.push(editStack.resourceLabel);\n            }\n        }\n        if (cannotLockDueToResources.length > 0) {\n            return this._tryToSplitAndUndo(strResource, element, null, nls.localize({ key: 'cannotWorkspaceUndoDueToInProgressUndoRedo', comment: ['{0} is a label for an operation. {1} is a list of filenames.'] }, \"Could not undo '{0}' across all files because there is already an undo or redo operation running on {1}\", element.label, cannotLockDueToResources.join(', ')));\n        }\n        // check if new stack elements were added in the meantime...\n        if (!editStackSnapshot.isValid()) {\n            return this._tryToSplitAndUndo(strResource, element, null, nls.localize({ key: 'cannotWorkspaceUndoDueToInMeantimeUndoRedo', comment: ['{0} is a label for an operation. {1} is a list of filenames.'] }, \"Could not undo '{0}' across all files because an undo or redo operation occurred in the meantime\", element.label));\n        }\n        return null;\n    }\n    _workspaceUndo(strResource, element, undoConfirmed) {\n        const affectedEditStacks = this._getAffectedEditStacks(element);\n        const verificationError = this._checkWorkspaceUndo(strResource, element, affectedEditStacks, /*invalidated resources will be checked after the prepare call*/ false);\n        if (verificationError) {\n            return verificationError.returnValue;\n        }\n        return this._confirmAndExecuteWorkspaceUndo(strResource, element, affectedEditStacks, undoConfirmed);\n    }\n    _isPartOfUndoGroup(element) {\n        if (!element.groupId) {\n            return false;\n        }\n        // check that there is at least another element with the same groupId ready to be undone\n        for (const [, editStack] of this._editStacks) {\n            const pastElement = editStack.getClosestPastElement();\n            if (!pastElement) {\n                continue;\n            }\n            if (pastElement === element) {\n                const secondPastElement = editStack.getSecondClosestPastElement();\n                if (secondPastElement && secondPastElement.groupId === element.groupId) {\n                    // there is another element with the same group id in the same stack!\n                    return true;\n                }\n            }\n            if (pastElement.groupId === element.groupId) {\n                // there is another element with the same group id in another stack!\n                return true;\n            }\n        }\n        return false;\n    }\n    async _confirmAndExecuteWorkspaceUndo(strResource, element, editStackSnapshot, undoConfirmed) {\n        if (element.canSplit() && !this._isPartOfUndoGroup(element)) {\n            // this element can be split\n            let UndoChoice;\n            (function (UndoChoice) {\n                UndoChoice[UndoChoice[\"All\"] = 0] = \"All\";\n                UndoChoice[UndoChoice[\"This\"] = 1] = \"This\";\n                UndoChoice[UndoChoice[\"Cancel\"] = 2] = \"Cancel\";\n            })(UndoChoice || (UndoChoice = {}));\n            const { result } = await this._dialogService.prompt({\n                type: Severity.Info,\n                message: nls.localize('confirmWorkspace', \"Would you like to undo '{0}' across all files?\", element.label),\n                buttons: [\n                    {\n                        label: nls.localize({ key: 'ok', comment: ['{0} denotes a number that is > 1, && denotes a mnemonic'] }, \"&&Undo in {0} Files\", editStackSnapshot.editStacks.length),\n                        run: () => UndoChoice.All\n                    },\n                    {\n                        label: nls.localize({ key: 'nok', comment: ['&& denotes a mnemonic'] }, \"Undo this &&File\"),\n                        run: () => UndoChoice.This\n                    }\n                ],\n                cancelButton: {\n                    run: () => UndoChoice.Cancel\n                }\n            });\n            if (result === UndoChoice.Cancel) {\n                // choice: cancel\n                return;\n            }\n            if (result === UndoChoice.This) {\n                // choice: undo this file\n                this._splitPastWorkspaceElement(element, null);\n                return this._undo(strResource, 0, true);\n            }\n            // choice: undo in all files\n            // At this point, it is possible that the element has been made invalid in the meantime (due to the confirmation await)\n            const verificationError1 = this._checkWorkspaceUndo(strResource, element, editStackSnapshot, /*invalidated resources will be checked after the prepare call*/ false);\n            if (verificationError1) {\n                return verificationError1.returnValue;\n            }\n            undoConfirmed = true;\n        }\n        // prepare\n        let cleanup;\n        try {\n            cleanup = await this._invokeWorkspacePrepare(element);\n        }\n        catch (err) {\n            return this._onError(err, element);\n        }\n        // At this point, it is possible that the element has been made invalid in the meantime (due to the prepare await)\n        const verificationError2 = this._checkWorkspaceUndo(strResource, element, editStackSnapshot, /*now also check that there are no more invalidated resources*/ true);\n        if (verificationError2) {\n            cleanup.dispose();\n            return verificationError2.returnValue;\n        }\n        for (const editStack of editStackSnapshot.editStacks) {\n            editStack.moveBackward(element);\n        }\n        return this._safeInvokeWithLocks(element, () => element.actual.undo(), editStackSnapshot, cleanup, () => this._continueUndoInGroup(element.groupId, undoConfirmed));\n    }\n    _resourceUndo(editStack, element, undoConfirmed) {\n        if (!element.isValid) {\n            // invalid element => immediately flush edit stack!\n            editStack.flushAllElements();\n            return;\n        }\n        if (editStack.locked) {\n            const message = nls.localize({ key: 'cannotResourceUndoDueToInProgressUndoRedo', comment: ['{0} is a label for an operation.'] }, \"Could not undo '{0}' because there is already an undo or redo operation running.\", element.label);\n            this._notificationService.warn(message);\n            return;\n        }\n        return this._invokeResourcePrepare(element, (cleanup) => {\n            editStack.moveBackward(element);\n            return this._safeInvokeWithLocks(element, () => element.actual.undo(), new EditStackSnapshot([editStack]), cleanup, () => this._continueUndoInGroup(element.groupId, undoConfirmed));\n        });\n    }\n    _findClosestUndoElementInGroup(groupId) {\n        if (!groupId) {\n            return [null, null];\n        }\n        // find another element with the same groupId and with the highest groupOrder ready to be undone\n        let matchedElement = null;\n        let matchedStrResource = null;\n        for (const [strResource, editStack] of this._editStacks) {\n            const candidate = editStack.getClosestPastElement();\n            if (!candidate) {\n                continue;\n            }\n            if (candidate.groupId === groupId) {\n                if (!matchedElement || candidate.groupOrder > matchedElement.groupOrder) {\n                    matchedElement = candidate;\n                    matchedStrResource = strResource;\n                }\n            }\n        }\n        return [matchedElement, matchedStrResource];\n    }\n    _continueUndoInGroup(groupId, undoConfirmed) {\n        if (!groupId) {\n            return;\n        }\n        const [, matchedStrResource] = this._findClosestUndoElementInGroup(groupId);\n        if (matchedStrResource) {\n            return this._undo(matchedStrResource, 0, undoConfirmed);\n        }\n    }\n    undo(resourceOrSource) {\n        if (resourceOrSource instanceof UndoRedoSource) {\n            const [, matchedStrResource] = this._findClosestUndoElementWithSource(resourceOrSource.id);\n            return matchedStrResource ? this._undo(matchedStrResource, resourceOrSource.id, false) : undefined;\n        }\n        if (typeof resourceOrSource === 'string') {\n            return this._undo(resourceOrSource, 0, false);\n        }\n        return this._undo(this.getUriComparisonKey(resourceOrSource), 0, false);\n    }\n    _undo(strResource, sourceId = 0, undoConfirmed) {\n        if (!this._editStacks.has(strResource)) {\n            return;\n        }\n        const editStack = this._editStacks.get(strResource);\n        const element = editStack.getClosestPastElement();\n        if (!element) {\n            return;\n        }\n        if (element.groupId) {\n            // this element is a part of a group, we need to make sure undoing in a group is in order\n            const [matchedElement, matchedStrResource] = this._findClosestUndoElementInGroup(element.groupId);\n            if (element !== matchedElement && matchedStrResource) {\n                // there is an element in the same group that should be undone before this one\n                return this._undo(matchedStrResource, sourceId, undoConfirmed);\n            }\n        }\n        const shouldPromptForConfirmation = (element.sourceId !== sourceId || element.confirmBeforeUndo);\n        if (shouldPromptForConfirmation && !undoConfirmed) {\n            // Hit a different source or the element asks for prompt before undo, prompt for confirmation\n            return this._confirmAndContinueUndo(strResource, sourceId, element);\n        }\n        try {\n            if (element.type === 1 /* UndoRedoElementType.Workspace */) {\n                return this._workspaceUndo(strResource, element, undoConfirmed);\n            }\n            else {\n                return this._resourceUndo(editStack, element, undoConfirmed);\n            }\n        }\n        finally {\n            if (DEBUG) {\n                this._print('undo');\n            }\n        }\n    }\n    async _confirmAndContinueUndo(strResource, sourceId, element) {\n        const result = await this._dialogService.confirm({\n            message: nls.localize('confirmDifferentSource', \"Would you like to undo '{0}'?\", element.label),\n            primaryButton: nls.localize({ key: 'confirmDifferentSource.yes', comment: ['&& denotes a mnemonic'] }, \"&&Yes\"),\n            cancelButton: nls.localize('confirmDifferentSource.no', \"No\")\n        });\n        if (!result.confirmed) {\n            return;\n        }\n        return this._undo(strResource, sourceId, true);\n    }\n    _findClosestRedoElementWithSource(sourceId) {\n        if (!sourceId) {\n            return [null, null];\n        }\n        // find an element with sourceId and with the lowest sourceOrder ready to be redone\n        let matchedElement = null;\n        let matchedStrResource = null;\n        for (const [strResource, editStack] of this._editStacks) {\n            const candidate = editStack.getClosestFutureElement();\n            if (!candidate) {\n                continue;\n            }\n            if (candidate.sourceId === sourceId) {\n                if (!matchedElement || candidate.sourceOrder < matchedElement.sourceOrder) {\n                    matchedElement = candidate;\n                    matchedStrResource = strResource;\n                }\n            }\n        }\n        return [matchedElement, matchedStrResource];\n    }\n    canRedo(resourceOrSource) {\n        if (resourceOrSource instanceof UndoRedoSource) {\n            const [, matchedStrResource] = this._findClosestRedoElementWithSource(resourceOrSource.id);\n            return matchedStrResource ? true : false;\n        }\n        const strResource = this.getUriComparisonKey(resourceOrSource);\n        if (this._editStacks.has(strResource)) {\n            const editStack = this._editStacks.get(strResource);\n            return editStack.hasFutureElements();\n        }\n        return false;\n    }\n    _tryToSplitAndRedo(strResource, element, ignoreResources, message) {\n        if (element.canSplit()) {\n            this._splitFutureWorkspaceElement(element, ignoreResources);\n            this._notificationService.warn(message);\n            return new WorkspaceVerificationError(this._redo(strResource));\n        }\n        else {\n            // Cannot safely split this workspace element => flush all undo/redo stacks\n            for (const strResource of element.strResources) {\n                this.removeElements(strResource);\n            }\n            this._notificationService.warn(message);\n            return new WorkspaceVerificationError();\n        }\n    }\n    _checkWorkspaceRedo(strResource, element, editStackSnapshot, checkInvalidatedResources) {\n        if (element.removedResources) {\n            return this._tryToSplitAndRedo(strResource, element, element.removedResources, nls.localize({ key: 'cannotWorkspaceRedo', comment: ['{0} is a label for an operation. {1} is another message.'] }, \"Could not redo '{0}' across all files. {1}\", element.label, element.removedResources.createMessage()));\n        }\n        if (checkInvalidatedResources && element.invalidatedResources) {\n            return this._tryToSplitAndRedo(strResource, element, element.invalidatedResources, nls.localize({ key: 'cannotWorkspaceRedo', comment: ['{0} is a label for an operation. {1} is another message.'] }, \"Could not redo '{0}' across all files. {1}\", element.label, element.invalidatedResources.createMessage()));\n        }\n        // this must be the last future element in all the impacted resources!\n        const cannotRedoDueToResources = [];\n        for (const editStack of editStackSnapshot.editStacks) {\n            if (editStack.getClosestFutureElement() !== element) {\n                cannotRedoDueToResources.push(editStack.resourceLabel);\n            }\n        }\n        if (cannotRedoDueToResources.length > 0) {\n            return this._tryToSplitAndRedo(strResource, element, null, nls.localize({ key: 'cannotWorkspaceRedoDueToChanges', comment: ['{0} is a label for an operation. {1} is a list of filenames.'] }, \"Could not redo '{0}' across all files because changes were made to {1}\", element.label, cannotRedoDueToResources.join(', ')));\n        }\n        const cannotLockDueToResources = [];\n        for (const editStack of editStackSnapshot.editStacks) {\n            if (editStack.locked) {\n                cannotLockDueToResources.push(editStack.resourceLabel);\n            }\n        }\n        if (cannotLockDueToResources.length > 0) {\n            return this._tryToSplitAndRedo(strResource, element, null, nls.localize({ key: 'cannotWorkspaceRedoDueToInProgressUndoRedo', comment: ['{0} is a label for an operation. {1} is a list of filenames.'] }, \"Could not redo '{0}' across all files because there is already an undo or redo operation running on {1}\", element.label, cannotLockDueToResources.join(', ')));\n        }\n        // check if new stack elements were added in the meantime...\n        if (!editStackSnapshot.isValid()) {\n            return this._tryToSplitAndRedo(strResource, element, null, nls.localize({ key: 'cannotWorkspaceRedoDueToInMeantimeUndoRedo', comment: ['{0} is a label for an operation. {1} is a list of filenames.'] }, \"Could not redo '{0}' across all files because an undo or redo operation occurred in the meantime\", element.label));\n        }\n        return null;\n    }\n    _workspaceRedo(strResource, element) {\n        const affectedEditStacks = this._getAffectedEditStacks(element);\n        const verificationError = this._checkWorkspaceRedo(strResource, element, affectedEditStacks, /*invalidated resources will be checked after the prepare call*/ false);\n        if (verificationError) {\n            return verificationError.returnValue;\n        }\n        return this._executeWorkspaceRedo(strResource, element, affectedEditStacks);\n    }\n    async _executeWorkspaceRedo(strResource, element, editStackSnapshot) {\n        // prepare\n        let cleanup;\n        try {\n            cleanup = await this._invokeWorkspacePrepare(element);\n        }\n        catch (err) {\n            return this._onError(err, element);\n        }\n        // At this point, it is possible that the element has been made invalid in the meantime (due to the prepare await)\n        const verificationError = this._checkWorkspaceRedo(strResource, element, editStackSnapshot, /*now also check that there are no more invalidated resources*/ true);\n        if (verificationError) {\n            cleanup.dispose();\n            return verificationError.returnValue;\n        }\n        for (const editStack of editStackSnapshot.editStacks) {\n            editStack.moveForward(element);\n        }\n        return this._safeInvokeWithLocks(element, () => element.actual.redo(), editStackSnapshot, cleanup, () => this._continueRedoInGroup(element.groupId));\n    }\n    _resourceRedo(editStack, element) {\n        if (!element.isValid) {\n            // invalid element => immediately flush edit stack!\n            editStack.flushAllElements();\n            return;\n        }\n        if (editStack.locked) {\n            const message = nls.localize({ key: 'cannotResourceRedoDueToInProgressUndoRedo', comment: ['{0} is a label for an operation.'] }, \"Could not redo '{0}' because there is already an undo or redo operation running.\", element.label);\n            this._notificationService.warn(message);\n            return;\n        }\n        return this._invokeResourcePrepare(element, (cleanup) => {\n            editStack.moveForward(element);\n            return this._safeInvokeWithLocks(element, () => element.actual.redo(), new EditStackSnapshot([editStack]), cleanup, () => this._continueRedoInGroup(element.groupId));\n        });\n    }\n    _findClosestRedoElementInGroup(groupId) {\n        if (!groupId) {\n            return [null, null];\n        }\n        // find another element with the same groupId and with the lowest groupOrder ready to be redone\n        let matchedElement = null;\n        let matchedStrResource = null;\n        for (const [strResource, editStack] of this._editStacks) {\n            const candidate = editStack.getClosestFutureElement();\n            if (!candidate) {\n                continue;\n            }\n            if (candidate.groupId === groupId) {\n                if (!matchedElement || candidate.groupOrder < matchedElement.groupOrder) {\n                    matchedElement = candidate;\n                    matchedStrResource = strResource;\n                }\n            }\n        }\n        return [matchedElement, matchedStrResource];\n    }\n    _continueRedoInGroup(groupId) {\n        if (!groupId) {\n            return;\n        }\n        const [, matchedStrResource] = this._findClosestRedoElementInGroup(groupId);\n        if (matchedStrResource) {\n            return this._redo(matchedStrResource);\n        }\n    }\n    redo(resourceOrSource) {\n        if (resourceOrSource instanceof UndoRedoSource) {\n            const [, matchedStrResource] = this._findClosestRedoElementWithSource(resourceOrSource.id);\n            return matchedStrResource ? this._redo(matchedStrResource) : undefined;\n        }\n        if (typeof resourceOrSource === 'string') {\n            return this._redo(resourceOrSource);\n        }\n        return this._redo(this.getUriComparisonKey(resourceOrSource));\n    }\n    _redo(strResource) {\n        if (!this._editStacks.has(strResource)) {\n            return;\n        }\n        const editStack = this._editStacks.get(strResource);\n        const element = editStack.getClosestFutureElement();\n        if (!element) {\n            return;\n        }\n        if (element.groupId) {\n            // this element is a part of a group, we need to make sure redoing in a group is in order\n            const [matchedElement, matchedStrResource] = this._findClosestRedoElementInGroup(element.groupId);\n            if (element !== matchedElement && matchedStrResource) {\n                // there is an element in the same group that should be redone before this one\n                return this._redo(matchedStrResource);\n            }\n        }\n        try {\n            if (element.type === 1 /* UndoRedoElementType.Workspace */) {\n                return this._workspaceRedo(strResource, element);\n            }\n            else {\n                return this._resourceRedo(editStack, element);\n            }\n        }\n        finally {\n            if (DEBUG) {\n                this._print('redo');\n            }\n        }\n    }\n};\nUndoRedoService = __decorate([\n    __param(0, IDialogService),\n    __param(1, INotificationService)\n], UndoRedoService);\nexport { UndoRedoService };\nclass WorkspaceVerificationError {\n    constructor(returnValue) {\n        this.returnValue = returnValue;\n    }\n}\nregisterSingleton(IUndoRedoService, UndoRedoService, 1 /* InstantiationType.Delayed */);\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/workspace/common/workspace.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { localize } from '../../../nls.js';\nimport { basename } from '../../../base/common/path.js';\nimport { TernarySearchTree } from '../../../base/common/ternarySearchTree.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const IWorkspaceContextService = createDecorator('contextService');\nexport function isSingleFolderWorkspaceIdentifier(obj) {\n    const singleFolderIdentifier = obj;\n    return typeof (singleFolderIdentifier === null || singleFolderIdentifier === void 0 ? void 0 : singleFolderIdentifier.id) === 'string' && URI.isUri(singleFolderIdentifier.uri);\n}\nexport function isEmptyWorkspaceIdentifier(obj) {\n    const emptyWorkspaceIdentifier = obj;\n    return typeof (emptyWorkspaceIdentifier === null || emptyWorkspaceIdentifier === void 0 ? void 0 : emptyWorkspaceIdentifier.id) === 'string'\n        && !isSingleFolderWorkspaceIdentifier(obj)\n        && !isWorkspaceIdentifier(obj);\n}\nexport const EXTENSION_DEVELOPMENT_EMPTY_WINDOW_WORKSPACE = { id: 'ext-dev' };\nexport const UNKNOWN_EMPTY_WINDOW_WORKSPACE = { id: 'empty-window' };\nexport function toWorkspaceIdentifier(arg0, isExtensionDevelopment) {\n    // Empty workspace\n    if (typeof arg0 === 'string' || typeof arg0 === 'undefined') {\n        // With a backupPath, the basename is the empty workspace identifier\n        if (typeof arg0 === 'string') {\n            return {\n                id: basename(arg0)\n            };\n        }\n        // Extension development empty windows have backups disabled\n        // so we return a constant workspace identifier for extension\n        // authors to allow to restore their workspace state even then.\n        if (isExtensionDevelopment) {\n            return EXTENSION_DEVELOPMENT_EMPTY_WINDOW_WORKSPACE;\n        }\n        return UNKNOWN_EMPTY_WINDOW_WORKSPACE;\n    }\n    // Multi root\n    const workspace = arg0;\n    if (workspace.configuration) {\n        return {\n            id: workspace.id,\n            configPath: workspace.configuration\n        };\n    }\n    // Single folder\n    if (workspace.folders.length === 1) {\n        return {\n            id: workspace.id,\n            uri: workspace.folders[0].uri\n        };\n    }\n    // Empty window\n    return {\n        id: workspace.id\n    };\n}\nexport function isWorkspaceIdentifier(obj) {\n    const workspaceIdentifier = obj;\n    return typeof (workspaceIdentifier === null || workspaceIdentifier === void 0 ? void 0 : workspaceIdentifier.id) === 'string' && URI.isUri(workspaceIdentifier.configPath);\n}\nexport class Workspace {\n    constructor(_id, folders, _transient, _configuration, _ignorePathCasing) {\n        this._id = _id;\n        this._transient = _transient;\n        this._configuration = _configuration;\n        this._ignorePathCasing = _ignorePathCasing;\n        this._foldersMap = TernarySearchTree.forUris(this._ignorePathCasing, () => true);\n        this.folders = folders;\n    }\n    get folders() {\n        return this._folders;\n    }\n    set folders(folders) {\n        this._folders = folders;\n        this.updateFoldersMap();\n    }\n    get id() {\n        return this._id;\n    }\n    get transient() {\n        return this._transient;\n    }\n    get configuration() {\n        return this._configuration;\n    }\n    set configuration(configuration) {\n        this._configuration = configuration;\n    }\n    getFolder(resource) {\n        if (!resource) {\n            return null;\n        }\n        return this._foldersMap.findSubstr(resource) || null;\n    }\n    updateFoldersMap() {\n        this._foldersMap = TernarySearchTree.forUris(this._ignorePathCasing, () => true);\n        for (const folder of this.folders) {\n            this._foldersMap.set(folder.uri, folder);\n        }\n    }\n    toJSON() {\n        return { id: this.id, folders: this.folders, transient: this.transient, configuration: this.configuration };\n    }\n}\nexport class WorkspaceFolder {\n    constructor(data, \n    /**\n     * Provides access to the original metadata for this workspace\n     * folder. This can be different from the metadata provided in\n     * this class:\n     * - raw paths can be relative\n     * - raw paths are not normalized\n     */\n    raw) {\n        this.raw = raw;\n        this.uri = data.uri;\n        this.index = data.index;\n        this.name = data.name;\n    }\n    toJSON() {\n        return { uri: this.uri, name: this.name, index: this.index };\n    }\n}\nexport const WORKSPACE_EXTENSION = 'code-workspace';\nexport const WORKSPACE_FILTER = [{ name: localize('codeWorkspace', \"Code Workspace\"), extensions: [WORKSPACE_EXTENSION] }];\nexport const STANDALONE_EDITOR_WORKSPACE_ID = '4064f6ec-cb38-4ad0-af64-ee6467e63c82';\nexport function isStandaloneEditorWorkspace(workspace) {\n    return workspace.id === STANDALONE_EDITOR_WORKSPACE_ID;\n}\n"
  },
  {
    "path": "jesse/static/_nuxt/nuxt-monaco-editor/vs/platform/workspace/common/workspaceTrust.js",
    "content": "/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const IWorkspaceTrustManagementService = createDecorator('workspaceTrustManagementService');\n"
  },
  {
    "path": "jesse/static/_nuxt/nyqBNV6O.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Vyper\",\"name\":\"vyper\",\"patterns\":[{\"include\":\"#statement\"},{\"include\":\"#expression\"},{\"include\":\"#reserved-names-vyper\"}],\"repository\":{\"annotated-parameter\":{\"begin\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"variable.parameter.function.language.python\"},\"2\":{\"name\":\"punctuation.separator.annotation.python\"}},\"end\":\"(,)|(?=\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.parameters.python\"}},\"patterns\":[{\"include\":\"#expression\"},{\"match\":\"=(?!=)\",\"name\":\"keyword.operator.assignment.python\"}]},\"assignment-operator\":{\"match\":\"<<=|>>=|//=|\\\\\\\\*\\\\\\\\*=|\\\\\\\\+=|-=|/=|@=|\\\\\\\\*=|%=|~=|\\\\\\\\^=|&=|\\\\\\\\|=|=(?!=)\",\"name\":\"keyword.operator.assignment.python\"},\"backticks\":{\"begin\":\"\\\\\\\\\\`\",\"end\":\"(?:\\\\\\\\\\`|(?<!\\\\\\\\\\\\\\\\)(\\\\\\\\n))\",\"name\":\"invalid.deprecated.backtick.python\",\"patterns\":[{\"include\":\"#expression\"}]},\"builtin-callables\":{\"patterns\":[{\"include\":\"#illegal-names\"},{\"include\":\"#illegal-object-name\"},{\"include\":\"#builtin-exceptions\"},{\"include\":\"#builtin-functions\"},{\"include\":\"#builtin-types\"}]},\"builtin-exceptions\":{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b((Arithmetic|Assertion|Attribute|Buffer|BlockingIO|BrokenPipe|ChildProcess|(Connection(Aborted|Refused|Reset)?)|EOF|Environment|FileExists|FileNotFound|FloatingPoint|IO|Import|Indentation|Index|Interrupted|IsADirectory|NotADirectory|Permission|ProcessLookup|Timeout|Key|Lookup|Memory|Name|NotImplemented|OS|Overflow|Reference|Runtime|Recursion|Syntax|System|Tab|Type|UnboundLocal|Unicode(Encode|Decode|Translate)?|Value|Windows|ZeroDivision|ModuleNotFound)Error|((Pending)?Deprecation|Runtime|Syntax|User|Future|Import|Unicode|Bytes|Resource)?Warning|SystemExit|Stop(Async)?Iteration|KeyboardInterrupt|GeneratorExit|(Base)?Exception)\\\\\\\\b\",\"name\":\"support.type.exception.python\"},\"builtin-functions\":{\"patterns\":[{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(__import__|abs|aiter|all|any|anext|ascii|bin|breakpoint|callable|chr|compile|copyright|credits|delattr|dir|divmod|enumerate|eval|exec|exit|filter|format|getattr|globals|hasattr|hash|help|hex|id|input|isinstance|issubclass|iter|len|license|locals|map|max|memoryview|min|next|oct|open|ord|pow|print|quit|range|reload|repr|reversed|round|setattr|sorted|sum|vars|zip)\\\\\\\\b\",\"name\":\"support.function.builtin.python\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(file|reduce|intern|raw_input|unicode|cmp|basestring|execfile|long|xrange)\\\\\\\\b\",\"name\":\"variable.legacy.builtin.python\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(abi_encode|abi_decode|_abi_encode|_abi_decode|floor|ceil|convert|slice|len|concat|sha256|method_id|keccak256|ecrecover|ecadd|ecmul|extract32|as_wei_value|raw_call|blockhash|blobhash|bitwise_and|bitwise_or|bitwise_xor|bitwise_not|uint256_addmod|uint256_mulmod|unsafe_add|unsafe_sub|unsafe_mul|unsafe_div|pow_mod256|uint2str|isqrt|sqrt|shift|create_minimal_proxy_to|create_forwarder_to|create_copy_of|create_from_blueprint|min|max|empty|abs|min_value|max_value|epsilon)\\\\\\\\b\",\"name\":\"support.function.builtin.vyper\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(send|print|breakpoint|selfdestruct|raw_call|raw_log|raw_revert|create_minimal_proxy_to|create_forwarder_to|create_copy_of|create_from_blueprint)\\\\\\\\b\",\"name\":\"support.function.builtin.lowlevel.vyper\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(struct|enum|flag|event|interface|HashMap|DynArray|Bytes|String)\\\\\\\\b\",\"name\":\"support.type.reference.vyper\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(nonreentrant|internal|view|pure|private|immutable|constant)\\\\\\\\b\",\"name\":\"support.function.builtin.modifiers.safe.vyper\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(deploy|nonpayable|payable|external|modifying)\\\\\\\\b\",\"name\":\"support.function.builtin.modifiers.unsafe.vyper\"}]},\"builtin-possible-callables\":{\"patterns\":[{\"include\":\"#builtin-callables\"},{\"include\":\"#magic-names\"}]},\"builtin-types\":{\"patterns\":[{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(bool|bytearray|bytes|classmethod|complex|dict|float|frozenset|int|list|object|property|set|slice|staticmethod|str|tuple|type|super)\\\\\\\\b\",\"name\":\"support.type.python\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(uint248|HashMap|bytes22|int88|bytes24|bytes11|int24|bytes28|bytes19|uint136|decimal|uint40|uint168|uint120|int112|bytes4|uint192|String|int104|bytes29|int120|uint232|bytes8|bool|bytes14|int56|uint32|int232|uint48|bytes17|bytes12|uint24|int160|int72|int256|uint56|uint80|uint104|uint144|uint200|bytes20|uint160|bytes18|bytes16|uint8|int40|Bytes|uint72|bytes2|bytes23|int48|bytes6|bytes13|int192|bytes15|uint96|address|uint64|uint88|bytes7|int64|bytes32|bytes30|int176|int248|uint128|int8|int136|int216|bytes31|int144|bytes1|int168|bytes5|uint216|int200|bytes25|uint112|int128|bytes10|uint16|DynArray|int16|int32|int208|int184|bytes9|int224|bytes3|int80|uint152|bytes21|int96|uint256|uint176|uint240|bytes27|bytes26|int240|uint224|uint184|uint208|int152)\\\\\\\\b\",\"name\":\"support.type.basetype.vyper\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(max_int128|min_int128|nonlocal|babbage|_default_|___init___|await|indexed|____init____|true|constant|with|from|nonpayable|finally|enum|zero_wei|del|for|____default____|if|none|or|global|def|not|class|twei|struct|mwei|empty_bytes32|nonreentrant|transient|false|assert|event|pass|finney|init|lovelace|min_decimal|shannon|public|external|internal|flagunreachable|_init_|return|in|and|raise|try|gwei|break|zero_address|pwei|range|wei|while|ada|yield|as|immutable|continue|async|lambda|default|is|szabo|kwei|import|max_uint256|elif|___default___|else|except|max_decimal|interface|payable|ether)\\\\\\\\b\",\"name\":\"support.type.keywords.vyper\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(ZERO_ADDRESS|EMPTY_BYTES32|MAX_INT128|MIN_INT128|MAX_DECIMAL|MIN_DECIMAL|MIN_UINT256|MAX_UINT256|super)\\\\\\\\b\",\"name\":\"support.type.constant.vyper\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(implements|uses|initializes|exports)\\\\\\\\b\",\"name\":\"entity.other.inherited-class.modules.vyper\"}]},\"call-wrapper-inheritance\":{\"begin\":\"\\\\\\\\b(?=([[:alpha:]_]\\\\\\\\w*)\\\\\\\\s*(\\\\\\\\())\",\"comment\":\"same as a function call, but in inheritance context\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.python\"}},\"name\":\"meta.function-call.python\",\"patterns\":[{\"include\":\"#inheritance-name\"},{\"include\":\"#function-arguments\"}]},\"class-declaration\":{\"patterns\":[{\"begin\":\"\\\\\\\\s*(class)\\\\\\\\s+(?=[[:alpha:]_]\\\\\\\\w*\\\\\\\\s*(:|\\\\\\\\())\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.python\"}},\"end\":\"(:)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.class.begin.python\"}},\"name\":\"meta.class.python\",\"patterns\":[{\"include\":\"#class-name\"},{\"include\":\"#class-inheritance\"}]}]},\"class-inheritance\":{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.inheritance.begin.python\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.inheritance.end.python\"}},\"name\":\"meta.class.inheritance.python\",\"patterns\":[{\"match\":\"(\\\\\\\\*\\\\\\\\*|\\\\\\\\*)\",\"name\":\"keyword.operator.unpacking.arguments.python\"},{\"match\":\",\",\"name\":\"punctuation.separator.inheritance.python\"},{\"match\":\"=(?!=)\",\"name\":\"keyword.operator.assignment.python\"},{\"match\":\"\\\\\\\\bmetaclass\\\\\\\\b\",\"name\":\"support.type.metaclass.python\"},{\"include\":\"#illegal-names\"},{\"include\":\"#class-kwarg\"},{\"include\":\"#call-wrapper-inheritance\"},{\"include\":\"#expression-base\"},{\"include\":\"#member-access-class\"},{\"include\":\"#inheritance-identifier\"}]},\"class-kwarg\":{\"captures\":{\"1\":{\"name\":\"entity.other.inherited-class.python variable.parameter.class.python\"},\"2\":{\"name\":\"keyword.operator.assignment.python\"}},\"match\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\s*(=)(?!=)\"},\"class-name\":{\"patterns\":[{\"include\":\"#illegal-object-name\"},{\"include\":\"#builtin-possible-callables\"},{\"match\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\b\",\"name\":\"entity.name.type.class.python\"}]},\"codetags\":{\"captures\":{\"1\":{\"name\":\"keyword.codetag.notation.python\"}},\"match\":\"(?:\\\\\\\\b(NOTE|XXX|HACK|FIXME|BUG|TODO)\\\\\\\\b)\"},\"comments\":{\"patterns\":[{\"begin\":\"(?:\\\\\\\\#\\\\\\\\s*(type:)\\\\\\\\s*+(?!$|\\\\\\\\#))\",\"beginCaptures\":{\"0\":{\"name\":\"meta.typehint.comment.python\"},\"1\":{\"name\":\"comment.typehint.directive.notation.python\"}},\"contentName\":\"meta.typehint.comment.python\",\"end\":\"(?:$|(?=\\\\\\\\#))\",\"name\":\"comment.line.number-sign.python\",\"patterns\":[{\"match\":\"\\\\\\\\Gignore(?=\\\\\\\\s*(?:$|\\\\\\\\#))\",\"name\":\"comment.typehint.ignore.notation.python\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(bool|bytes|float|int|object|str|List|Dict|Iterable|Sequence|Set|FrozenSet|Callable|Union|Tuple|Any|None)\\\\\\\\b\",\"name\":\"comment.typehint.type.notation.python\"},{\"match\":\"([\\\\\\\\[\\\\\\\\]\\\\\\\\(\\\\\\\\),\\\\\\\\.\\\\\\\\=\\\\\\\\*]|(->))\",\"name\":\"comment.typehint.punctuation.notation.python\"},{\"match\":\"([[:alpha:]_]\\\\\\\\w*)\",\"name\":\"comment.typehint.variable.notation.python\"}]},{\"include\":\"#comments-base\"}]},\"comments-base\":{\"begin\":\"(\\\\\\\\#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.python\"}},\"end\":\"($)\",\"name\":\"comment.line.number-sign.python\",\"patterns\":[{\"include\":\"#codetags\"}]},\"comments-string-double-three\":{\"begin\":\"(\\\\\\\\#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.python\"}},\"end\":\"($|(?=\\\\\"\\\\\"\\\\\"))\",\"name\":\"comment.line.number-sign.python\",\"patterns\":[{\"include\":\"#codetags\"}]},\"comments-string-single-three\":{\"begin\":\"(\\\\\\\\#)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.python\"}},\"end\":\"($|(?='''))\",\"name\":\"comment.line.number-sign.python\",\"patterns\":[{\"include\":\"#codetags\"}]},\"curly-braces\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.dict.begin.python\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.dict.end.python\"}},\"patterns\":[{\"match\":\":\",\"name\":\"punctuation.separator.dict.python\"},{\"include\":\"#expression\"}]},\"decorator\":{\"begin\":\"^\\\\\\\\s*((@))\\\\\\\\s*(?=[[:alpha:]_]\\\\\\\\w*)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.decorator.python\"},\"2\":{\"name\":\"punctuation.definition.decorator.python\"}},\"end\":\"(\\\\\\\\))(?:(.*?)(?=\\\\\\\\s*(?:\\\\\\\\#|$)))|(?=\\\\\\\\n|\\\\\\\\#)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.python\"},\"2\":{\"name\":\"invalid.illegal.decorator.python\"}},\"name\":\"meta.function.decorator.python\",\"patterns\":[{\"include\":\"#decorator-name\"},{\"include\":\"#function-arguments\"}]},\"decorator-name\":{\"patterns\":[{\"include\":\"#builtin-callables\"},{\"include\":\"#illegal-object-name\"},{\"captures\":{\"2\":{\"name\":\"punctuation.separator.period.python\"}},\"match\":\"([[:alpha:]_]\\\\\\\\w*)|(\\\\\\\\.)\",\"name\":\"entity.name.function.decorator.python\"},{\"include\":\"#line-continuation\"},{\"captures\":{\"1\":{\"name\":\"invalid.illegal.decorator.python\"}},\"match\":\"\\\\\\\\s*([^([:alpha:]\\\\\\\\s_\\\\\\\\.#\\\\\\\\\\\\\\\\].*?)(?=\\\\\\\\#|$)\",\"name\":\"invalid.illegal.decorator.python\"}]},\"docstring\":{\"patterns\":[{\"begin\":\"(\\\\\\\\'\\\\\\\\'\\\\\\\\'|\\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\1)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"}},\"name\":\"string.quoted.docstring.multi.python\",\"patterns\":[{\"include\":\"#docstring-prompt\"},{\"include\":\"#codetags\"},{\"include\":\"#docstring-guts-unicode\"}]},{\"begin\":\"([rR])(\\\\\\\\'\\\\\\\\'\\\\\\\\'|\\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.python\"},\"2\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\2)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"}},\"name\":\"string.quoted.docstring.raw.multi.python\",\"patterns\":[{\"include\":\"#string-consume-escape\"},{\"include\":\"#docstring-prompt\"},{\"include\":\"#codetags\"}]},{\"begin\":\"(\\\\\\\\'|\\\\\\\\\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\1)|(\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.quoted.docstring.single.python\",\"patterns\":[{\"include\":\"#codetags\"},{\"include\":\"#docstring-guts-unicode\"}]},{\"begin\":\"([rR])(\\\\\\\\'|\\\\\\\\\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.python\"},\"2\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\2)|(\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.quoted.docstring.raw.single.python\",\"patterns\":[{\"include\":\"#string-consume-escape\"},{\"include\":\"#codetags\"}]}]},\"docstring-guts-unicode\":{\"patterns\":[{\"include\":\"#escape-sequence-unicode\"},{\"include\":\"#escape-sequence\"},{\"include\":\"#string-line-continuation\"}]},\"docstring-prompt\":{\"captures\":{\"1\":{\"name\":\"keyword.control.flow.python\"}},\"match\":\"(?:(?:^|\\\\\\\\G)\\\\\\\\s*((?:>>>|\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s)(?=\\\\\\\\s*\\\\\\\\S))\"},\"docstring-statement\":{\"begin\":\"^(?=\\\\\\\\s*[rR]?(\\\\\\\\'\\\\\\\\'\\\\\\\\'|\\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"|\\\\\\\\'|\\\\\\\\\\\\\"))\",\"comment\":\"the string either terminates correctly or by the beginning of a new line (this is for single line docstrings that aren't terminated) AND it's not followed by another docstring\",\"end\":\"((?<=\\\\\\\\1)|^)(?!\\\\\\\\s*[rR]?(\\\\\\\\'\\\\\\\\'\\\\\\\\'|\\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"|\\\\\\\\'|\\\\\\\\\\\\\"))\",\"patterns\":[{\"include\":\"#docstring\"}]},\"double-one-regexp-character-set\":{\"patterns\":[{\"match\":\"\\\\\\\\[\\\\\\\\^?\\\\\\\\](?!.*?\\\\\\\\])\"},{\"begin\":\"(\\\\\\\\[)(\\\\\\\\^)?(\\\\\\\\])?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.character.set.begin.regexp constant.other.set.regexp\"},\"2\":{\"name\":\"keyword.operator.negation.regexp\"},\"3\":{\"name\":\"constant.character.set.regexp\"}},\"end\":\"(\\\\\\\\]|(?=\\\\\"))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.character.set.end.regexp constant.other.set.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.character.set.regexp\",\"patterns\":[{\"include\":\"#regexp-charecter-set-escapes\"},{\"match\":\"[^\\\\\\\\n]\",\"name\":\"constant.character.set.regexp\"}]}]},\"double-one-regexp-comments\":{\"begin\":\"\\\\\\\\(\\\\\\\\?#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.comment.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.comment.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"comment.regexp\",\"patterns\":[{\"include\":\"#codetags\"}]},\"double-one-regexp-conditional\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?\\\\\\\\((\\\\\\\\w+(?:\\\\\\\\s+[[:alnum:]]+)?|\\\\\\\\d+)\\\\\\\\)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.conditional.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.conditional.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-one-regexp-expression\"}]},\"double-one-regexp-expression\":{\"patterns\":[{\"include\":\"#regexp-base-expression\"},{\"include\":\"#double-one-regexp-character-set\"},{\"include\":\"#double-one-regexp-comments\"},{\"include\":\"#regexp-flags\"},{\"include\":\"#double-one-regexp-named-group\"},{\"include\":\"#regexp-backreference\"},{\"include\":\"#double-one-regexp-lookahead\"},{\"include\":\"#double-one-regexp-lookahead-negative\"},{\"include\":\"#double-one-regexp-lookbehind\"},{\"include\":\"#double-one-regexp-lookbehind-negative\"},{\"include\":\"#double-one-regexp-conditional\"},{\"include\":\"#double-one-regexp-parentheses-non-capturing\"},{\"include\":\"#double-one-regexp-parentheses\"}]},\"double-one-regexp-lookahead\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookahead.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookahead.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-one-regexp-expression\"}]},\"double-one-regexp-lookahead-negative\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?!\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookahead.negative.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookahead.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-one-regexp-expression\"}]},\"double-one-regexp-lookbehind\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?<=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookbehind.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookbehind.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-one-regexp-expression\"}]},\"double-one-regexp-lookbehind-negative\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?<!\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookbehind.negative.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookbehind.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-one-regexp-expression\"}]},\"double-one-regexp-named-group\":{\"begin\":\"(\\\\\\\\()(\\\\\\\\?P<\\\\\\\\w+(?:\\\\\\\\s+[[:alnum:]]+)?>)\",\"beginCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp\"},\"2\":{\"name\":\"entity.name.tag.named.group.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.named.regexp\",\"patterns\":[{\"include\":\"#double-one-regexp-expression\"}]},\"double-one-regexp-parentheses\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-one-regexp-expression\"}]},\"double-one-regexp-parentheses-non-capturing\":{\"begin\":\"\\\\\\\\(\\\\\\\\?:\",\"beginCaptures\":{\"0\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-one-regexp-expression\"}]},\"double-three-regexp-character-set\":{\"patterns\":[{\"match\":\"\\\\\\\\[\\\\\\\\^?\\\\\\\\](?!.*?\\\\\\\\])\"},{\"begin\":\"(\\\\\\\\[)(\\\\\\\\^)?(\\\\\\\\])?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.character.set.begin.regexp constant.other.set.regexp\"},\"2\":{\"name\":\"keyword.operator.negation.regexp\"},\"3\":{\"name\":\"constant.character.set.regexp\"}},\"end\":\"(\\\\\\\\]|(?=\\\\\"\\\\\"\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.character.set.end.regexp constant.other.set.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.character.set.regexp\",\"patterns\":[{\"include\":\"#regexp-charecter-set-escapes\"},{\"match\":\"[^\\\\\\\\n]\",\"name\":\"constant.character.set.regexp\"}]}]},\"double-three-regexp-comments\":{\"begin\":\"\\\\\\\\(\\\\\\\\?#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.comment.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"\\\\\"\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.comment.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"comment.regexp\",\"patterns\":[{\"include\":\"#codetags\"}]},\"double-three-regexp-conditional\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?\\\\\\\\((\\\\\\\\w+(?:\\\\\\\\s+[[:alnum:]]+)?|\\\\\\\\d+)\\\\\\\\)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.conditional.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.conditional.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"\\\\\"\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-three-regexp-expression\"},{\"include\":\"#comments-string-double-three\"}]},\"double-three-regexp-expression\":{\"patterns\":[{\"include\":\"#regexp-base-expression\"},{\"include\":\"#double-three-regexp-character-set\"},{\"include\":\"#double-three-regexp-comments\"},{\"include\":\"#regexp-flags\"},{\"include\":\"#double-three-regexp-named-group\"},{\"include\":\"#regexp-backreference\"},{\"include\":\"#double-three-regexp-lookahead\"},{\"include\":\"#double-three-regexp-lookahead-negative\"},{\"include\":\"#double-three-regexp-lookbehind\"},{\"include\":\"#double-three-regexp-lookbehind-negative\"},{\"include\":\"#double-three-regexp-conditional\"},{\"include\":\"#double-three-regexp-parentheses-non-capturing\"},{\"include\":\"#double-three-regexp-parentheses\"},{\"include\":\"#comments-string-double-three\"}]},\"double-three-regexp-lookahead\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookahead.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookahead.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"\\\\\"\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-three-regexp-expression\"},{\"include\":\"#comments-string-double-three\"}]},\"double-three-regexp-lookahead-negative\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?!\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookahead.negative.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookahead.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"\\\\\"\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-three-regexp-expression\"},{\"include\":\"#comments-string-double-three\"}]},\"double-three-regexp-lookbehind\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?<=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookbehind.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookbehind.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"\\\\\"\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-three-regexp-expression\"},{\"include\":\"#comments-string-double-three\"}]},\"double-three-regexp-lookbehind-negative\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?<!\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookbehind.negative.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookbehind.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"\\\\\"\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-three-regexp-expression\"},{\"include\":\"#comments-string-double-three\"}]},\"double-three-regexp-named-group\":{\"begin\":\"(\\\\\\\\()(\\\\\\\\?P<\\\\\\\\w+(?:\\\\\\\\s+[[:alnum:]]+)?>)\",\"beginCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp\"},\"2\":{\"name\":\"entity.name.tag.named.group.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"\\\\\"\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.named.regexp\",\"patterns\":[{\"include\":\"#double-three-regexp-expression\"},{\"include\":\"#comments-string-double-three\"}]},\"double-three-regexp-parentheses\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"\\\\\"\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-three-regexp-expression\"},{\"include\":\"#comments-string-double-three\"}]},\"double-three-regexp-parentheses-non-capturing\":{\"begin\":\"\\\\\\\\(\\\\\\\\?:\",\"beginCaptures\":{\"0\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\"\\\\\"\\\\\"))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#double-three-regexp-expression\"},{\"include\":\"#comments-string-double-three\"}]},\"ellipsis\":{\"match\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"name\":\"constant.other.ellipsis.python\"},\"escape-sequence\":{\"match\":\"\\\\\\\\\\\\\\\\(x[0-9A-Fa-f]{2}|[0-7]{1,3}|[\\\\\\\\\\\\\\\\\\\\\"'abfnrtv])\",\"name\":\"constant.character.escape.python\"},\"escape-sequence-unicode\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8}|N\\\\\\\\{[\\\\\\\\w\\\\\\\\s]+?\\\\\\\\})\",\"name\":\"constant.character.escape.python\"}]},\"expression\":{\"comment\":\"All valid Python expressions\",\"patterns\":[{\"include\":\"#expression-base\"},{\"include\":\"#member-access\"},{\"comment\":\"Tokenize identifiers to help linters\",\"match\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\b\"}]},\"expression-bare\":{\"comment\":\"valid Python expressions w/o comments and line continuation\",\"patterns\":[{\"include\":\"#backticks\"},{\"include\":\"#illegal-anno\"},{\"include\":\"#literal\"},{\"include\":\"#regexp\"},{\"include\":\"#string\"},{\"include\":\"#lambda\"},{\"include\":\"#generator\"},{\"include\":\"#illegal-operator\"},{\"include\":\"#operator\"},{\"include\":\"#curly-braces\"},{\"include\":\"#item-access\"},{\"include\":\"#list\"},{\"include\":\"#odd-function-call\"},{\"include\":\"#round-braces\"},{\"include\":\"#function-call\"},{\"include\":\"#builtin-functions\"},{\"include\":\"#builtin-types\"},{\"include\":\"#builtin-exceptions\"},{\"include\":\"#magic-names\"},{\"include\":\"#special-names\"},{\"include\":\"#illegal-names\"},{\"include\":\"#special-variables\"},{\"include\":\"#ellipsis\"},{\"include\":\"#punctuation\"},{\"include\":\"#line-continuation\"},{\"include\":\"#special-variables-types\"}]},\"expression-base\":{\"comment\":\"valid Python expressions with comments and line continuation\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#expression-bare\"},{\"include\":\"#line-continuation\"}]},\"f-expression\":{\"comment\":\"All valid Python expressions, except comments and line continuation\",\"patterns\":[{\"include\":\"#expression-bare\"},{\"include\":\"#member-access\"},{\"comment\":\"Tokenize identifiers to help linters\",\"match\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\b\"}]},\"fregexp-base-expression\":{\"patterns\":[{\"include\":\"#fregexp-quantifier\"},{\"include\":\"#fstring-formatting-braces\"},{\"match\":\"\\\\\\\\{.*?\\\\\\\\}\"},{\"include\":\"#regexp-base-common\"}]},\"fregexp-quantifier\":{\"match\":\"\\\\\\\\{\\\\\\\\{(\\\\\\\\d+|\\\\\\\\d+,(\\\\\\\\d+)?|,\\\\\\\\d+)\\\\\\\\}\\\\\\\\}\",\"name\":\"keyword.operator.quantifier.regexp\"},\"fstring-fnorm-quoted-multi-line\":{\"begin\":\"(\\\\\\\\b[fF])([bBuU])?('''|\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"string.interpolated.python string.quoted.multi.python storage.type.string.python\"},\"2\":{\"name\":\"invalid.illegal.prefix.python\"},\"3\":{\"name\":\"punctuation.definition.string.begin.python string.interpolated.python string.quoted.multi.python\"}},\"end\":\"(\\\\\\\\3)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.fstring.python\",\"patterns\":[{\"include\":\"#fstring-guts\"},{\"include\":\"#fstring-illegal-multi-brace\"},{\"include\":\"#fstring-multi-brace\"},{\"include\":\"#fstring-multi-core\"}]},\"fstring-fnorm-quoted-single-line\":{\"begin\":\"(\\\\\\\\b[fF])([bBuU])?((['\\\\\"]))\",\"beginCaptures\":{\"1\":{\"name\":\"string.interpolated.python string.quoted.single.python storage.type.string.python\"},\"2\":{\"name\":\"invalid.illegal.prefix.python\"},\"3\":{\"name\":\"punctuation.definition.string.begin.python string.interpolated.python string.quoted.single.python\"}},\"end\":\"(\\\\\\\\3)|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.fstring.python\",\"patterns\":[{\"include\":\"#fstring-guts\"},{\"include\":\"#fstring-illegal-single-brace\"},{\"include\":\"#fstring-single-brace\"},{\"include\":\"#fstring-single-core\"}]},\"fstring-formatting\":{\"patterns\":[{\"include\":\"#fstring-formatting-braces\"},{\"include\":\"#fstring-formatting-singe-brace\"}]},\"fstring-formatting-braces\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"},\"2\":{\"name\":\"invalid.illegal.brace.python\"},\"3\":{\"name\":\"constant.character.format.placeholder.other.python\"}},\"comment\":\"empty braces are illegal\",\"match\":\"({)(\\\\\\\\s*?)(})\"},{\"match\":\"({{|}})\",\"name\":\"constant.character.escape.python\"}]},\"fstring-formatting-singe-brace\":{\"match\":\"(}(?!}))\",\"name\":\"invalid.illegal.brace.python\"},\"fstring-guts\":{\"patterns\":[{\"include\":\"#escape-sequence-unicode\"},{\"include\":\"#escape-sequence\"},{\"include\":\"#string-line-continuation\"},{\"include\":\"#fstring-formatting\"}]},\"fstring-illegal-multi-brace\":{\"patterns\":[{\"include\":\"#impossible\"}]},\"fstring-illegal-single-brace\":{\"begin\":\"(\\\\\\\\{)(?=[^\\\\\\\\n}]*$\\\\\\\\n?)\",\"beginCaptures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"}},\"comment\":\"it is illegal to have a multiline brace inside a single-line string\",\"end\":\"(\\\\\\\\})|(?=\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"}},\"patterns\":[{\"include\":\"#fstring-terminator-single\"},{\"include\":\"#f-expression\"}]},\"fstring-multi-brace\":{\"begin\":\"(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"}},\"comment\":\"value interpolation using { ... }\",\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"}},\"patterns\":[{\"include\":\"#fstring-terminator-multi\"},{\"include\":\"#f-expression\"}]},\"fstring-multi-core\":{\"match\":\"(.+?)(($\\\\\\\\n?)|(?=[\\\\\\\\\\\\\\\\\\\\\\\\}\\\\\\\\{]|'''|\\\\\"\\\\\"\\\\\"))|\\\\\\\\n\",\"name\":\"string.interpolated.python string.quoted.multi.python\"},\"fstring-normf-quoted-multi-line\":{\"begin\":\"(\\\\\\\\b[bBuU])([fF])('''|\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"invalid.illegal.prefix.python\"},\"2\":{\"name\":\"string.interpolated.python string.quoted.multi.python storage.type.string.python\"},\"3\":{\"name\":\"punctuation.definition.string.begin.python string.quoted.multi.python\"}},\"end\":\"(\\\\\\\\3)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.fstring.python\",\"patterns\":[{\"include\":\"#fstring-guts\"},{\"include\":\"#fstring-illegal-multi-brace\"},{\"include\":\"#fstring-multi-brace\"},{\"include\":\"#fstring-multi-core\"}]},\"fstring-normf-quoted-single-line\":{\"begin\":\"(\\\\\\\\b[bBuU])([fF])((['\\\\\"]))\",\"beginCaptures\":{\"1\":{\"name\":\"invalid.illegal.prefix.python\"},\"2\":{\"name\":\"string.interpolated.python string.quoted.single.python storage.type.string.python\"},\"3\":{\"name\":\"punctuation.definition.string.begin.python string.quoted.single.python\"}},\"end\":\"(\\\\\\\\3)|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.fstring.python\",\"patterns\":[{\"include\":\"#fstring-guts\"},{\"include\":\"#fstring-illegal-single-brace\"},{\"include\":\"#fstring-single-brace\"},{\"include\":\"#fstring-single-core\"}]},\"fstring-raw-guts\":{\"patterns\":[{\"include\":\"#string-consume-escape\"},{\"include\":\"#fstring-formatting\"}]},\"fstring-raw-multi-core\":{\"match\":\"(.+?)(($\\\\\\\\n?)|(?=[\\\\\\\\\\\\\\\\\\\\\\\\}\\\\\\\\{]|'''|\\\\\"\\\\\"\\\\\"))|\\\\\\\\n\",\"name\":\"string.interpolated.python string.quoted.raw.multi.python\"},\"fstring-raw-quoted-multi-line\":{\"begin\":\"(\\\\\\\\b(?:[rR][fF]|[fF][rR]))('''|\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"string.interpolated.python string.quoted.raw.multi.python storage.type.string.python\"},\"2\":{\"name\":\"punctuation.definition.string.begin.python string.quoted.raw.multi.python\"}},\"end\":\"(\\\\\\\\2)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.multi.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.fstring.python\",\"patterns\":[{\"include\":\"#fstring-raw-guts\"},{\"include\":\"#fstring-illegal-multi-brace\"},{\"include\":\"#fstring-multi-brace\"},{\"include\":\"#fstring-raw-multi-core\"}]},\"fstring-raw-quoted-single-line\":{\"begin\":\"(\\\\\\\\b(?:[rR][fF]|[fF][rR]))((['\\\\\"]))\",\"beginCaptures\":{\"1\":{\"name\":\"string.interpolated.python string.quoted.raw.single.python storage.type.string.python\"},\"2\":{\"name\":\"punctuation.definition.string.begin.python string.quoted.raw.single.python\"}},\"end\":\"(\\\\\\\\2)|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.single.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.fstring.python\",\"patterns\":[{\"include\":\"#fstring-raw-guts\"},{\"include\":\"#fstring-illegal-single-brace\"},{\"include\":\"#fstring-single-brace\"},{\"include\":\"#fstring-raw-single-core\"}]},\"fstring-raw-single-core\":{\"match\":\"(.+?)(($\\\\\\\\n?)|(?=[\\\\\\\\\\\\\\\\\\\\\\\\}\\\\\\\\{]|(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)))|\\\\\\\\n\",\"name\":\"string.interpolated.python string.quoted.raw.single.python\"},\"fstring-single-brace\":{\"begin\":\"(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"}},\"comment\":\"value interpolation using { ... }\",\"end\":\"(\\\\\\\\})|(?=\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"}},\"patterns\":[{\"include\":\"#fstring-terminator-single\"},{\"include\":\"#f-expression\"}]},\"fstring-single-core\":{\"match\":\"(.+?)(($\\\\\\\\n?)|(?=[\\\\\\\\\\\\\\\\\\\\\\\\}\\\\\\\\{]|(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)))|\\\\\\\\n\",\"name\":\"string.interpolated.python string.quoted.single.python\"},\"fstring-terminator-multi\":{\"patterns\":[{\"match\":\"(=(![rsa])?)(?=})\",\"name\":\"storage.type.format.python\"},{\"match\":\"(=?![rsa])(?=})\",\"name\":\"storage.type.format.python\"},{\"captures\":{\"1\":{\"name\":\"storage.type.format.python\"},\"2\":{\"name\":\"storage.type.format.python\"}},\"match\":\"((?:=?)(?:![rsa])?)(:\\\\\\\\w?[<>=^]?[-+ ]?\\\\\\\\#?\\\\\\\\d*,?(\\\\\\\\.\\\\\\\\d+)?[bcdeEfFgGnosxX%]?)(?=})\"},{\"include\":\"#fstring-terminator-multi-tail\"}]},\"fstring-terminator-multi-tail\":{\"begin\":\"((?:=?)(?:![rsa])?)(:)(?=.*?{)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.format.python\"},\"2\":{\"name\":\"storage.type.format.python\"}},\"end\":\"(?=})\",\"patterns\":[{\"include\":\"#fstring-illegal-multi-brace\"},{\"include\":\"#fstring-multi-brace\"},{\"match\":\"([bcdeEfFgGnosxX%])(?=})\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\\\\\.\\\\\\\\d+)\",\"name\":\"storage.type.format.python\"},{\"match\":\"(,)\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\\\\\d+)\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\\\\\#)\",\"name\":\"storage.type.format.python\"},{\"match\":\"([-+ ])\",\"name\":\"storage.type.format.python\"},{\"match\":\"([<>=^])\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\\\\\w)\",\"name\":\"storage.type.format.python\"}]},\"fstring-terminator-single\":{\"patterns\":[{\"match\":\"(=(![rsa])?)(?=})\",\"name\":\"storage.type.format.python\"},{\"match\":\"(=?![rsa])(?=})\",\"name\":\"storage.type.format.python\"},{\"captures\":{\"1\":{\"name\":\"storage.type.format.python\"},\"2\":{\"name\":\"storage.type.format.python\"}},\"match\":\"((?:=?)(?:![rsa])?)(:\\\\\\\\w?[<>=^]?[-+ ]?\\\\\\\\#?\\\\\\\\d*,?(\\\\\\\\.\\\\\\\\d+)?[bcdeEfFgGnosxX%]?)(?=})\"},{\"include\":\"#fstring-terminator-single-tail\"}]},\"fstring-terminator-single-tail\":{\"begin\":\"((?:=?)(?:![rsa])?)(:)(?=.*?{)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.format.python\"},\"2\":{\"name\":\"storage.type.format.python\"}},\"end\":\"(?=})|(?=\\\\\\\\n)\",\"patterns\":[{\"include\":\"#fstring-illegal-single-brace\"},{\"include\":\"#fstring-single-brace\"},{\"match\":\"([bcdeEfFgGnosxX%])(?=})\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\\\\\.\\\\\\\\d+)\",\"name\":\"storage.type.format.python\"},{\"match\":\"(,)\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\\\\\d+)\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\\\\\#)\",\"name\":\"storage.type.format.python\"},{\"match\":\"([-+ ])\",\"name\":\"storage.type.format.python\"},{\"match\":\"([<>=^])\",\"name\":\"storage.type.format.python\"},{\"match\":\"(\\\\\\\\w)\",\"name\":\"storage.type.format.python\"}]},\"function-arguments\":{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.python\"}},\"contentName\":\"meta.function-call.arguments.python\",\"end\":\"(?=\\\\\\\\))(?!\\\\\\\\)\\\\\\\\s*\\\\\\\\()\",\"patterns\":[{\"match\":\"(,)\",\"name\":\"punctuation.separator.arguments.python\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.unpacking.arguments.python\"}},\"match\":\"(?:(?<=[,(])|^)\\\\\\\\s*(\\\\\\\\*{1,2})\"},{\"include\":\"#lambda-incomplete\"},{\"include\":\"#illegal-names\"},{\"captures\":{\"1\":{\"name\":\"variable.parameter.function-call.python\"},\"2\":{\"name\":\"keyword.operator.assignment.python\"}},\"match\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\s*(=)(?!=)\"},{\"match\":\"=(?!=)\",\"name\":\"keyword.operator.assignment.python\"},{\"include\":\"#expression\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.python\"},\"2\":{\"name\":\"punctuation.definition.arguments.begin.python\"}},\"match\":\"\\\\\\\\s*(\\\\\\\\))\\\\\\\\s*(\\\\\\\\()\"}]},\"function-call\":{\"begin\":\"\\\\\\\\b(?=([[:alpha:]_]\\\\\\\\w*)\\\\\\\\s*(\\\\\\\\())\",\"comment\":\"Regular function call of the type \\\\\"name(args)\\\\\"\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.python\"}},\"name\":\"meta.function-call.python\",\"patterns\":[{\"include\":\"#special-variables\"},{\"include\":\"#function-name\"},{\"include\":\"#function-arguments\"}]},\"function-declaration\":{\"begin\":\"\\\\\\\\s*(?:\\\\\\\\b(async)\\\\\\\\s+)?\\\\\\\\b(def)\\\\\\\\s+(?=[[:alpha:]_][[:word:]]*\\\\\\\\s*\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.async.python\"},\"2\":{\"name\":\"storage.type.function.python\"}},\"end\":\"(:|(?=[#'\\\\\"\\\\\\\\n]))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.function.begin.python\"}},\"name\":\"meta.function.python\",\"patterns\":[{\"include\":\"#function-def-name\"},{\"include\":\"#parameters\"},{\"include\":\"#line-continuation\"},{\"include\":\"#return-annotation\"}]},\"function-def-name\":{\"patterns\":[{\"match\":\"\\\\\\\\b(__default__)\\\\\\\\b\",\"name\":\"entity.name.function.fallback.vyper\"},{\"match\":\"\\\\\\\\b(__init__)\\\\\\\\b\",\"name\":\"entity.name.function.constructor.vyper\"},{\"include\":\"#illegal-object-name\"},{\"include\":\"#builtin-possible-callables\"},{\"match\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\b\",\"name\":\"entity.name.function.python\"}]},\"function-name\":{\"patterns\":[{\"include\":\"#builtin-possible-callables\"},{\"comment\":\"Some color schemas support meta.function-call.generic scope\",\"match\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\b\",\"name\":\"meta.function-call.generic.python\"}]},\"generator\":{\"begin\":\"\\\\\\\\bfor\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.flow.python\"}},\"comment\":\"Match \\\\\"for ... in\\\\\" construct used in generators and for loops to\\\\ncorrectly identify the \\\\\"in\\\\\" as a control flow keyword.\\\\n\",\"end\":\"\\\\\\\\bin\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.flow.python\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"illegal-anno\":{\"match\":\"->\",\"name\":\"invalid.illegal.annotation.python\"},\"illegal-names\":{\"captures\":{\"1\":{\"name\":\"keyword.control.flow.python\"},\"2\":{\"name\":\"keyword.control.import.python\"}},\"match\":\"\\\\\\\\b(?:(and|assert|async|await|break|class|continue|def|del|elif|else|except|finally|for|from|global|if|in|is|(?<=\\\\\\\\.)lambda|lambda(?=\\\\\\\\s*[\\\\\\\\.=])|nonlocal|not|or|pass|raise|return|try|while|with|yield)|(as|import))\\\\\\\\b\"},\"illegal-object-name\":{\"comment\":\"It's illegal to name class or function \\\\\"True\\\\\"\",\"match\":\"\\\\\\\\b(True|False|None)\\\\\\\\b\",\"name\":\"keyword.illegal.name.python\"},\"illegal-operator\":{\"patterns\":[{\"match\":\"&&|\\\\\\\\|\\\\\\\\||--|\\\\\\\\+\\\\\\\\+\",\"name\":\"invalid.illegal.operator.python\"},{\"match\":\"[?$]\",\"name\":\"invalid.illegal.operator.python\"},{\"comment\":\"We don't want \\`!\\` to flash when we're typing \\`!=\\`\",\"match\":\"!\\\\\\\\b\",\"name\":\"invalid.illegal.operator.python\"}]},\"import\":{\"comment\":\"Import statements used to correctly mark \\`from\\`, \\`import\\`, and \\`as\\`\\\\n\",\"patterns\":[{\"begin\":\"\\\\\\\\b(?<!\\\\\\\\.)(from)\\\\\\\\b(?=.+import)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.import.python\"}},\"end\":\"$|(?=import)\",\"patterns\":[{\"match\":\"\\\\\\\\.+\",\"name\":\"punctuation.separator.period.python\"},{\"include\":\"#expression\"}]},{\"begin\":\"\\\\\\\\b(?<!\\\\\\\\.)(import)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.import.python\"}},\"end\":\"$\",\"patterns\":[{\"match\":\"\\\\\\\\b(?<!\\\\\\\\.)as\\\\\\\\b\",\"name\":\"keyword.control.import.python\"},{\"include\":\"#expression\"}]}]},\"impossible\":{\"comment\":\"This is a special rule that should be used where no match is desired. It is not a good idea to match something like '1{0}' because in some cases that can result in infinite loops in token generation. So the rule instead matches and impossible expression to allow a match to fail and move to the next token.\",\"match\":\"$.^\"},\"inheritance-identifier\":{\"captures\":{\"1\":{\"name\":\"entity.other.inherited-class.python\"}},\"match\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\b\"},\"inheritance-name\":{\"patterns\":[{\"include\":\"#lambda-incomplete\"},{\"include\":\"#builtin-possible-callables\"},{\"include\":\"#inheritance-identifier\"}]},\"item-access\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(?=[[:alpha:]_]\\\\\\\\w*\\\\\\\\s*\\\\\\\\[)\",\"end\":\"(\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.python\"}},\"name\":\"meta.item-access.python\",\"patterns\":[{\"include\":\"#item-name\"},{\"include\":\"#item-index\"},{\"include\":\"#expression\"}]}]},\"item-index\":{\"begin\":\"(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.python\"}},\"contentName\":\"meta.item-access.arguments.python\",\"end\":\"(?=\\\\\\\\])\",\"patterns\":[{\"match\":\":\",\"name\":\"punctuation.separator.slice.python\"},{\"include\":\"#expression\"}]},\"item-name\":{\"patterns\":[{\"include\":\"#special-variables\"},{\"include\":\"#builtin-functions\"},{\"include\":\"#special-names\"},{\"match\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\b\",\"name\":\"meta.indexed-name.python\"},{\"include\":\"#special-variables-types\"}]},\"lambda\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.flow.python\"}},\"match\":\"((?<=\\\\\\\\.)lambda|lambda(?=\\\\\\\\s*[\\\\\\\\.=]))\"},{\"captures\":{\"1\":{\"name\":\"storage.type.function.lambda.python\"}},\"match\":\"\\\\\\\\b(lambda)\\\\\\\\s*?(?=[,\\\\\\\\n]|$)\"},{\"begin\":\"\\\\\\\\b(lambda)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.lambda.python\"}},\"contentName\":\"meta.function.lambda.parameters.python\",\"end\":\"(:)|(\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.function.lambda.begin.python\"}},\"name\":\"meta.lambda-function.python\",\"patterns\":[{\"match\":\"/\",\"name\":\"keyword.operator.positional.parameter.python\"},{\"match\":\"(\\\\\\\\*\\\\\\\\*|\\\\\\\\*)\",\"name\":\"keyword.operator.unpacking.parameter.python\"},{\"include\":\"#lambda-nested-incomplete\"},{\"include\":\"#illegal-names\"},{\"captures\":{\"1\":{\"name\":\"variable.parameter.function.language.python\"},\"2\":{\"name\":\"punctuation.separator.parameters.python\"}},\"match\":\"([[:alpha:]_]\\\\\\\\w*)\\\\\\\\s*(?:(,)|(?=:|$))\"},{\"include\":\"#comments\"},{\"include\":\"#backticks\"},{\"include\":\"#illegal-anno\"},{\"include\":\"#lambda-parameter-with-default\"},{\"include\":\"#line-continuation\"},{\"include\":\"#illegal-operator\"}]}]},\"lambda-incomplete\":{\"match\":\"\\\\\\\\blambda(?=\\\\\\\\s*[,)])\",\"name\":\"storage.type.function.lambda.python\"},\"lambda-nested-incomplete\":{\"match\":\"\\\\\\\\blambda(?=\\\\\\\\s*[:,)])\",\"name\":\"storage.type.function.lambda.python\"},\"lambda-parameter-with-default\":{\"begin\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\s*(=)\",\"beginCaptures\":{\"1\":{\"name\":\"variable.parameter.function.language.python\"},\"2\":{\"name\":\"keyword.operator.python\"}},\"end\":\"(,)|(?=:|$)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.parameters.python\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"line-continuation\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.continuation.line.python\"},\"2\":{\"name\":\"invalid.illegal.line.continuation.python\"}},\"match\":\"(\\\\\\\\\\\\\\\\)\\\\\\\\s*(\\\\\\\\S.*$\\\\\\\\n?)\"},{\"begin\":\"(\\\\\\\\\\\\\\\\)\\\\\\\\s*$\\\\\\\\n?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.continuation.line.python\"}},\"end\":\"(?=^\\\\\\\\s*$)|(?!(\\\\\\\\s*[rR]?(\\\\\\\\'\\\\\\\\'\\\\\\\\'|\\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"|\\\\\\\\'|\\\\\\\\\\\\\"))|(\\\\\\\\G$))\",\"patterns\":[{\"include\":\"#regexp\"},{\"include\":\"#string\"}]}]},\"list\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.list.begin.python\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.list.end.python\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"literal\":{\"patterns\":[{\"match\":\"\\\\\\\\b(True|False|None|NotImplemented|Ellipsis)\\\\\\\\b\",\"name\":\"constant.language.python\"},{\"include\":\"#number\"}]},\"loose-default\":{\"begin\":\"(=)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.python\"}},\"end\":\"(,)|(?=\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.parameters.python\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"magic-function-names\":{\"captures\":{\"1\":{\"name\":\"support.function.magic.python\"}},\"comment\":\"these methods have magic interpretation by python and are generally called\\\\nindirectly through syntactic constructs\\\\n\",\"match\":\"\\\\\\\\b(__(?:abs|add|aenter|aexit|aiter|and|anext|await|bool|call|ceil|class_getitem|cmp|coerce|complex|contains|copy|deepcopy|del|delattr|delete|delitem|delslice|dir|div|divmod|enter|eq|exit|float|floor|floordiv|format|ge|get|getattr|getattribute|getinitargs|getitem|getnewargs|getslice|getstate|gt|hash|hex|iadd|iand|idiv|ifloordiv||ilshift|imod|imul|index|init|instancecheck|int|invert|ior|ipow|irshift|isub|iter|itruediv|ixor|le|len|long|lshift|lt|missing|mod|mul|ne|neg|new|next|nonzero|oct|or|pos|pow|radd|rand|rdiv|rdivmod|reduce|reduce_ex|repr|reversed|rfloordiv||rlshift|rmod|rmul|ror|round|rpow|rrshift|rshift|rsub|rtruediv|rxor|set|setattr|setitem|set_name|setslice|setstate|sizeof|str|sub|subclasscheck|truediv|trunc|unicode|xor|matmul|rmatmul|imatmul|init_subclass|set_name|fspath|bytes|prepare|length_hint)__)\\\\\\\\b\"},\"magic-names\":{\"patterns\":[{\"include\":\"#magic-function-names\"},{\"include\":\"#magic-variable-names\"}]},\"magic-variable-names\":{\"captures\":{\"1\":{\"name\":\"support.variable.magic.python\"}},\"comment\":\"magic variables which a class/module may have.\",\"match\":\"\\\\\\\\b(__(?:all|annotations|bases|builtins|class|closure|code|debug|defaults|dict|doc|file|func|globals|kwdefaults|match_args|members|metaclass|methods|module|mro|mro_entries|name|qualname|post_init|self|signature|slots|subclasses|version|weakref|wrapped|classcell|spec|path|package|future|traceback)__)\\\\\\\\b\"},\"member-access\":{\"begin\":\"(\\\\\\\\.)\\\\\\\\s*(?!\\\\\\\\.)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.period.python\"}},\"end\":\"(?<=\\\\\\\\S)(?=\\\\\\\\W)|(^|(?<=\\\\\\\\s))(?=[^\\\\\\\\\\\\\\\\\\\\\\\\w\\\\\\\\s])|$\",\"name\":\"meta.member.access.python\",\"patterns\":[{\"include\":\"#function-call\"},{\"include\":\"#member-access-base\"},{\"include\":\"#member-access-attribute\"}]},\"member-access-attribute\":{\"comment\":\"Highlight attribute access in otherwise non-specialized cases.\",\"match\":\"\\\\\\\\b([[:alpha:]_]\\\\\\\\w*)\\\\\\\\b\",\"name\":\"meta.attribute.python\"},\"member-access-base\":{\"patterns\":[{\"include\":\"#magic-names\"},{\"include\":\"#illegal-names\"},{\"include\":\"#illegal-object-name\"},{\"include\":\"#special-names\"},{\"include\":\"#line-continuation\"},{\"include\":\"#item-access\"},{\"include\":\"#special-variables-types\"}]},\"member-access-class\":{\"begin\":\"(\\\\\\\\.)\\\\\\\\s*(?!\\\\\\\\.)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.period.python\"}},\"end\":\"(?<=\\\\\\\\S)(?=\\\\\\\\W)|$\",\"name\":\"meta.member.access.python\",\"patterns\":[{\"include\":\"#call-wrapper-inheritance\"},{\"include\":\"#member-access-base\"},{\"include\":\"#inheritance-identifier\"}]},\"number\":{\"name\":\"constant.numeric.python\",\"patterns\":[{\"include\":\"#number-float\"},{\"include\":\"#number-dec\"},{\"include\":\"#number-hex\"},{\"include\":\"#number-oct\"},{\"include\":\"#number-bin\"},{\"include\":\"#number-long\"},{\"match\":\"\\\\\\\\b[0-9]+\\\\\\\\w+\",\"name\":\"invalid.illegal.name.python\"}]},\"number-bin\":{\"captures\":{\"1\":{\"name\":\"storage.type.number.python\"}},\"match\":\"(?<![\\\\\\\\w\\\\\\\\.])(0[bB])(_?[01])+\\\\\\\\b\",\"name\":\"constant.numeric.bin.python\"},\"number-dec\":{\"captures\":{\"1\":{\"name\":\"storage.type.imaginary.number.python\"},\"2\":{\"name\":\"invalid.illegal.dec.python\"}},\"match\":\"(?<![\\\\\\\\w\\\\\\\\.])(?:[1-9](?:_?[0-9])*|0+|[0-9](?:_?[0-9])*([jJ])|0([0-9]+)(?![eE\\\\\\\\.]))\\\\\\\\b\",\"name\":\"constant.numeric.dec.python\"},\"number-float\":{\"captures\":{\"1\":{\"name\":\"storage.type.imaginary.number.python\"}},\"match\":\"(?<!\\\\\\\\w)(?:(?:\\\\\\\\.[0-9](?:_?[0-9])*|[0-9](?:_?[0-9])*\\\\\\\\.[0-9](?:_?[0-9])*|[0-9](?:_?[0-9])*\\\\\\\\.)(?:[eE][+-]?[0-9](?:_?[0-9])*)?|[0-9](?:_?[0-9])*(?:[eE][+-]?[0-9](?:_?[0-9])*))([jJ])?\\\\\\\\b\",\"name\":\"constant.numeric.float.python\"},\"number-hex\":{\"captures\":{\"1\":{\"name\":\"storage.type.number.python\"}},\"match\":\"(?<![\\\\\\\\w\\\\\\\\.])(0[xX])(_?[0-9a-fA-F])+\\\\\\\\b\",\"name\":\"constant.numeric.hex.python\"},\"number-long\":{\"captures\":{\"2\":{\"name\":\"storage.type.number.python\"}},\"comment\":\"this is to support python2 syntax for long ints\",\"match\":\"(?<![\\\\\\\\w\\\\\\\\.])([1-9][0-9]*|0)([lL])\\\\\\\\b\",\"name\":\"constant.numeric.bin.python\"},\"number-oct\":{\"captures\":{\"1\":{\"name\":\"storage.type.number.python\"}},\"match\":\"(?<![\\\\\\\\w\\\\\\\\.])(0[oO])(_?[0-7])+\\\\\\\\b\",\"name\":\"constant.numeric.oct.python\"},\"odd-function-call\":{\"begin\":\"(?<=\\\\\\\\]|\\\\\\\\))\\\\\\\\s*(?=\\\\\\\\()\",\"comment\":\"A bit obscured function call where there may have been an\\\\narbitrary number of other operations to get the function.\\\\nE.g. \\\\\"arr[idx](args)\\\\\"\\\\n\",\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.python\"}},\"patterns\":[{\"include\":\"#function-arguments\"}]},\"operator\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.logical.python\"},\"2\":{\"name\":\"keyword.control.flow.python\"},\"3\":{\"name\":\"keyword.operator.bitwise.python\"},\"4\":{\"name\":\"keyword.operator.arithmetic.python\"},\"5\":{\"name\":\"keyword.operator.comparison.python\"},\"6\":{\"name\":\"keyword.operator.assignment.python\"}},\"match\":\"\\\\\\\\b(?<!\\\\\\\\.)(?:(and|or|not|in|is)|(for|if|else|await|(?:yield(?:\\\\\\\\s+from)?)))(?!\\\\\\\\s*:)\\\\\\\\b|(<<|>>|&|\\\\\\\\||\\\\\\\\^|~)|(\\\\\\\\*\\\\\\\\*|\\\\\\\\*|\\\\\\\\+|-|%|//|/|@)|(!=|==|>=|<=|<|>)|(:=)\"},\"parameter-special\":{\"captures\":{\"1\":{\"name\":\"variable.parameter.function.language.python\"},\"2\":{\"name\":\"variable.parameter.function.language.special.self.python\"},\"3\":{\"name\":\"variable.parameter.function.language.special.cls.python\"},\"4\":{\"name\":\"punctuation.separator.parameters.python\"}},\"match\":\"\\\\\\\\b((self)|(cls))\\\\\\\\b\\\\\\\\s*(?:(,)|(?=\\\\\\\\)))\"},\"parameters\":{\"begin\":\"(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.begin.python\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.python\"}},\"name\":\"meta.function.parameters.python\",\"patterns\":[{\"match\":\"/\",\"name\":\"keyword.operator.positional.parameter.python\"},{\"match\":\"(\\\\\\\\*\\\\\\\\*|\\\\\\\\*)\",\"name\":\"keyword.operator.unpacking.parameter.python\"},{\"include\":\"#lambda-incomplete\"},{\"include\":\"#illegal-names\"},{\"include\":\"#illegal-object-name\"},{\"include\":\"#parameter-special\"},{\"captures\":{\"1\":{\"name\":\"variable.parameter.function.language.python\"},\"2\":{\"name\":\"punctuation.separator.parameters.python\"}},\"match\":\"([[:alpha:]_]\\\\\\\\w*)\\\\\\\\s*(?:(,)|(?=[)#\\\\\\\\n=]))\"},{\"include\":\"#comments\"},{\"include\":\"#loose-default\"},{\"include\":\"#annotated-parameter\"}]},\"punctuation\":{\"patterns\":[{\"match\":\":\",\"name\":\"punctuation.separator.colon.python\"},{\"match\":\",\",\"name\":\"punctuation.separator.element.python\"}]},\"regexp\":{\"patterns\":[{\"include\":\"#regexp-single-three-line\"},{\"include\":\"#regexp-double-three-line\"},{\"include\":\"#regexp-single-one-line\"},{\"include\":\"#regexp-double-one-line\"}]},\"regexp-backreference\":{\"captures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.begin.regexp\"},\"2\":{\"name\":\"entity.name.tag.named.backreference.regexp\"},\"3\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.end.regexp\"}},\"match\":\"(\\\\\\\\()(\\\\\\\\?P=\\\\\\\\w+(?:\\\\\\\\s+[[:alnum:]]+)?)(\\\\\\\\))\",\"name\":\"meta.backreference.named.regexp\"},\"regexp-backreference-number\":{\"captures\":{\"1\":{\"name\":\"entity.name.tag.backreference.regexp\"}},\"match\":\"(\\\\\\\\\\\\\\\\[1-9]\\\\\\\\d?)\",\"name\":\"meta.backreference.regexp\"},\"regexp-base-common\":{\"patterns\":[{\"match\":\"\\\\\\\\.\",\"name\":\"support.other.match.any.regexp\"},{\"match\":\"\\\\\\\\^\",\"name\":\"support.other.match.begin.regexp\"},{\"match\":\"\\\\\\\\$\",\"name\":\"support.other.match.end.regexp\"},{\"match\":\"[+*?]\\\\\\\\??\",\"name\":\"keyword.operator.quantifier.regexp\"},{\"match\":\"\\\\\\\\|\",\"name\":\"keyword.operator.disjunction.regexp\"},{\"include\":\"#regexp-escape-sequence\"}]},\"regexp-base-expression\":{\"patterns\":[{\"include\":\"#regexp-quantifier\"},{\"include\":\"#regexp-base-common\"}]},\"regexp-charecter-set-escapes\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[abfnrtv\\\\\\\\\\\\\\\\]\",\"name\":\"constant.character.escape.regexp\"},{\"include\":\"#regexp-escape-special\"},{\"match\":\"\\\\\\\\\\\\\\\\([0-7]{1,3})\",\"name\":\"constant.character.escape.regexp\"},{\"include\":\"#regexp-escape-character\"},{\"include\":\"#regexp-escape-unicode\"},{\"include\":\"#regexp-escape-catchall\"}]},\"regexp-double-one-line\":{\"begin\":\"\\\\\\\\b(([uU]r)|([bB]r)|(r[bB]?))(\\\\\")\",\"beginCaptures\":{\"2\":{\"name\":\"invalid.deprecated.prefix.python\"},\"3\":{\"name\":\"storage.type.string.python\"},\"4\":{\"name\":\"storage.type.string.python\"},\"5\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\")|(?<!\\\\\\\\\\\\\\\\)(\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.regexp.quoted.single.python\",\"patterns\":[{\"include\":\"#double-one-regexp-expression\"}]},\"regexp-double-three-line\":{\"begin\":\"\\\\\\\\b(([uU]r)|([bB]r)|(r[bB]?))(\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"2\":{\"name\":\"invalid.deprecated.prefix.python\"},\"3\":{\"name\":\"storage.type.string.python\"},\"4\":{\"name\":\"storage.type.string.python\"},\"5\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\"\\\\\"\\\\\")\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.regexp.quoted.multi.python\",\"patterns\":[{\"include\":\"#double-three-regexp-expression\"}]},\"regexp-escape-catchall\":{\"match\":\"\\\\\\\\\\\\\\\\(.|\\\\\\\\n)\",\"name\":\"constant.character.escape.regexp\"},\"regexp-escape-character\":{\"match\":\"\\\\\\\\\\\\\\\\(x[0-9A-Fa-f]{2}|0[0-7]{1,2}|[0-7]{3})\",\"name\":\"constant.character.escape.regexp\"},\"regexp-escape-sequence\":{\"patterns\":[{\"include\":\"#regexp-escape-special\"},{\"include\":\"#regexp-escape-character\"},{\"include\":\"#regexp-escape-unicode\"},{\"include\":\"#regexp-backreference-number\"},{\"include\":\"#regexp-escape-catchall\"}]},\"regexp-escape-special\":{\"match\":\"\\\\\\\\\\\\\\\\([AbBdDsSwWZ])\",\"name\":\"support.other.escape.special.regexp\"},\"regexp-escape-unicode\":{\"match\":\"\\\\\\\\\\\\\\\\(u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})\",\"name\":\"constant.character.unicode.regexp\"},\"regexp-flags\":{\"match\":\"\\\\\\\\(\\\\\\\\?[aiLmsux]+\\\\\\\\)\",\"name\":\"storage.modifier.flag.regexp\"},\"regexp-quantifier\":{\"match\":\"\\\\\\\\{(\\\\\\\\d+|\\\\\\\\d+,(\\\\\\\\d+)?|,\\\\\\\\d+)\\\\\\\\}\",\"name\":\"keyword.operator.quantifier.regexp\"},\"regexp-single-one-line\":{\"begin\":\"\\\\\\\\b(([uU]r)|([bB]r)|(r[bB]?))(\\\\\\\\')\",\"beginCaptures\":{\"2\":{\"name\":\"invalid.deprecated.prefix.python\"},\"3\":{\"name\":\"storage.type.string.python\"},\"4\":{\"name\":\"storage.type.string.python\"},\"5\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\')|(?<!\\\\\\\\\\\\\\\\)(\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.regexp.quoted.single.python\",\"patterns\":[{\"include\":\"#single-one-regexp-expression\"}]},\"regexp-single-three-line\":{\"begin\":\"\\\\\\\\b(([uU]r)|([bB]r)|(r[bB]?))(\\\\\\\\'\\\\\\\\'\\\\\\\\')\",\"beginCaptures\":{\"2\":{\"name\":\"invalid.deprecated.prefix.python\"},\"3\":{\"name\":\"storage.type.string.python\"},\"4\":{\"name\":\"storage.type.string.python\"},\"5\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\'\\\\\\\\'\\\\\\\\')\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.regexp.quoted.multi.python\",\"patterns\":[{\"include\":\"#single-three-regexp-expression\"}]},\"reserved-names-vyper\":{\"match\":\"\\\\\\\\b(max_int128|min_int128|nonlocal|babbage|_default_|___init___|await|indexed|____init____|true|constant|with|from|nonpayable|finally|enum|zero_wei|del|for|____default____|if|none|or|global|def|not|class|twei|struct|mwei|empty_bytes32|nonreentrant|transient|false|assert|event|pass|finney|init|lovelace|min_decimal|shannon|public|external|internal|flagunreachable|_init_|return|in|and|raise|try|gwei|break|zero_address|pwei|range|wei|while|ada|yield|as|immutable|continue|async|lambda|default|is|szabo|kwei|import|max_uint256|elif|___default___|else|except|max_decimal|interface|payable|ether)\\\\\\\\b\",\"name\":\"name.reserved.vyper\"},\"return-annotation\":{\"begin\":\"(->)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.annotation.result.python\"}},\"end\":\"(?=:)\",\"patterns\":[{\"include\":\"#expression\"}]},\"round-braces\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.begin.python\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.parenthesis.end.python\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"semicolon\":{\"patterns\":[{\"match\":\"\\\\\\\\;$\",\"name\":\"invalid.deprecated.semicolon.python\"}]},\"single-one-regexp-character-set\":{\"patterns\":[{\"match\":\"\\\\\\\\[\\\\\\\\^?\\\\\\\\](?!.*?\\\\\\\\])\"},{\"begin\":\"(\\\\\\\\[)(\\\\\\\\^)?(\\\\\\\\])?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.character.set.begin.regexp constant.other.set.regexp\"},\"2\":{\"name\":\"keyword.operator.negation.regexp\"},\"3\":{\"name\":\"constant.character.set.regexp\"}},\"end\":\"(\\\\\\\\]|(?=\\\\\\\\'))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.character.set.end.regexp constant.other.set.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.character.set.regexp\",\"patterns\":[{\"include\":\"#regexp-charecter-set-escapes\"},{\"match\":\"[^\\\\\\\\n]\",\"name\":\"constant.character.set.regexp\"}]}]},\"single-one-regexp-comments\":{\"begin\":\"\\\\\\\\(\\\\\\\\?#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.comment.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.comment.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"comment.regexp\",\"patterns\":[{\"include\":\"#codetags\"}]},\"single-one-regexp-conditional\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?\\\\\\\\((\\\\\\\\w+(?:\\\\\\\\s+[[:alnum:]]+)?|\\\\\\\\d+)\\\\\\\\)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.conditional.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.conditional.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-one-regexp-expression\"}]},\"single-one-regexp-expression\":{\"patterns\":[{\"include\":\"#regexp-base-expression\"},{\"include\":\"#single-one-regexp-character-set\"},{\"include\":\"#single-one-regexp-comments\"},{\"include\":\"#regexp-flags\"},{\"include\":\"#single-one-regexp-named-group\"},{\"include\":\"#regexp-backreference\"},{\"include\":\"#single-one-regexp-lookahead\"},{\"include\":\"#single-one-regexp-lookahead-negative\"},{\"include\":\"#single-one-regexp-lookbehind\"},{\"include\":\"#single-one-regexp-lookbehind-negative\"},{\"include\":\"#single-one-regexp-conditional\"},{\"include\":\"#single-one-regexp-parentheses-non-capturing\"},{\"include\":\"#single-one-regexp-parentheses\"}]},\"single-one-regexp-lookahead\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookahead.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookahead.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-one-regexp-expression\"}]},\"single-one-regexp-lookahead-negative\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?!\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookahead.negative.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookahead.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-one-regexp-expression\"}]},\"single-one-regexp-lookbehind\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?<=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookbehind.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookbehind.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-one-regexp-expression\"}]},\"single-one-regexp-lookbehind-negative\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?<!\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookbehind.negative.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookbehind.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-one-regexp-expression\"}]},\"single-one-regexp-named-group\":{\"begin\":\"(\\\\\\\\()(\\\\\\\\?P<\\\\\\\\w+(?:\\\\\\\\s+[[:alnum:]]+)?>)\",\"beginCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp\"},\"2\":{\"name\":\"entity.name.tag.named.group.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.named.regexp\",\"patterns\":[{\"include\":\"#single-one-regexp-expression\"}]},\"single-one-regexp-parentheses\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-one-regexp-expression\"}]},\"single-one-regexp-parentheses-non-capturing\":{\"begin\":\"\\\\\\\\(\\\\\\\\?:\",\"beginCaptures\":{\"0\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'))|((?=(?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-one-regexp-expression\"}]},\"single-three-regexp-character-set\":{\"patterns\":[{\"match\":\"\\\\\\\\[\\\\\\\\^?\\\\\\\\](?!.*?\\\\\\\\])\"},{\"begin\":\"(\\\\\\\\[)(\\\\\\\\^)?(\\\\\\\\])?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.character.set.begin.regexp constant.other.set.regexp\"},\"2\":{\"name\":\"keyword.operator.negation.regexp\"},\"3\":{\"name\":\"constant.character.set.regexp\"}},\"end\":\"(\\\\\\\\]|(?=\\\\\\\\'\\\\\\\\'\\\\\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.character.set.end.regexp constant.other.set.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.character.set.regexp\",\"patterns\":[{\"include\":\"#regexp-charecter-set-escapes\"},{\"match\":\"[^\\\\\\\\n]\",\"name\":\"constant.character.set.regexp\"}]}]},\"single-three-regexp-comments\":{\"begin\":\"\\\\\\\\(\\\\\\\\?#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.comment.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'\\\\\\\\'\\\\\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.comment.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"comment.regexp\",\"patterns\":[{\"include\":\"#codetags\"}]},\"single-three-regexp-conditional\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?\\\\\\\\((\\\\\\\\w+(?:\\\\\\\\s+[[:alnum:]]+)?|\\\\\\\\d+)\\\\\\\\)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.conditional.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.conditional.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'\\\\\\\\'\\\\\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-three-regexp-expression\"},{\"include\":\"#comments-string-single-three\"}]},\"single-three-regexp-expression\":{\"patterns\":[{\"include\":\"#regexp-base-expression\"},{\"include\":\"#single-three-regexp-character-set\"},{\"include\":\"#single-three-regexp-comments\"},{\"include\":\"#regexp-flags\"},{\"include\":\"#single-three-regexp-named-group\"},{\"include\":\"#regexp-backreference\"},{\"include\":\"#single-three-regexp-lookahead\"},{\"include\":\"#single-three-regexp-lookahead-negative\"},{\"include\":\"#single-three-regexp-lookbehind\"},{\"include\":\"#single-three-regexp-lookbehind-negative\"},{\"include\":\"#single-three-regexp-conditional\"},{\"include\":\"#single-three-regexp-parentheses-non-capturing\"},{\"include\":\"#single-three-regexp-parentheses\"},{\"include\":\"#comments-string-single-three\"}]},\"single-three-regexp-lookahead\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookahead.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookahead.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'\\\\\\\\'\\\\\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-three-regexp-expression\"},{\"include\":\"#comments-string-single-three\"}]},\"single-three-regexp-lookahead-negative\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?!\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookahead.negative.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookahead.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'\\\\\\\\'\\\\\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-three-regexp-expression\"},{\"include\":\"#comments-string-single-three\"}]},\"single-three-regexp-lookbehind\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?<=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookbehind.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookbehind.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'\\\\\\\\'\\\\\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-three-regexp-expression\"},{\"include\":\"#comments-string-single-three\"}]},\"single-three-regexp-lookbehind-negative\":{\"begin\":\"(\\\\\\\\()\\\\\\\\?<!\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.lookbehind.negative.regexp\"},\"1\":{\"name\":\"punctuation.parenthesis.lookbehind.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'\\\\\\\\'\\\\\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-three-regexp-expression\"},{\"include\":\"#comments-string-single-three\"}]},\"single-three-regexp-named-group\":{\"begin\":\"(\\\\\\\\()(\\\\\\\\?P<\\\\\\\\w+(?:\\\\\\\\s+[[:alnum:]]+)?>)\",\"beginCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp\"},\"2\":{\"name\":\"entity.name.tag.named.group.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'\\\\\\\\'\\\\\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"meta.named.regexp\",\"patterns\":[{\"include\":\"#single-three-regexp-expression\"},{\"include\":\"#comments-string-single-three\"}]},\"single-three-regexp-parentheses\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'\\\\\\\\'\\\\\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-three-regexp-expression\"},{\"include\":\"#comments-string-single-three\"}]},\"single-three-regexp-parentheses-non-capturing\":{\"begin\":\"\\\\\\\\(\\\\\\\\?:\",\"beginCaptures\":{\"0\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp\"}},\"end\":\"(\\\\\\\\)|(?=\\\\\\\\'\\\\\\\\'\\\\\\\\'))\",\"endCaptures\":{\"1\":{\"name\":\"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"patterns\":[{\"include\":\"#single-three-regexp-expression\"},{\"include\":\"#comments-string-single-three\"}]},\"special-names\":{\"match\":\"\\\\\\\\b(_*[[:upper:]][_\\\\\\\\d]*[[:upper:]])[[:upper:]\\\\\\\\d]*(_\\\\\\\\w*)?\\\\\\\\b\",\"name\":\"constant.other.caps.python\"},\"special-variables\":{\"captures\":{\"1\":{\"name\":\"variable.language.special.self.python\"},\"2\":{\"name\":\"variable.language.special.cls.python\"}},\"match\":\"\\\\\\\\b(?<!\\\\\\\\.)(?:(self)|(cls))\\\\\\\\b\"},\"special-variables-types\":{\"patterns\":[{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(log)\\\\\\\\b\",\"name\":\"variable.language.special.log.vyper\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(msg)\\\\\\\\b\",\"name\":\"variable.language.special.msg.vyper\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(block)\\\\\\\\b\",\"name\":\"variable.language.special.block.vyper\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(tx)\\\\\\\\b\",\"name\":\"variable.language.special.tx.vyper\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(chain)\\\\\\\\b\",\"name\":\"variable.language.special.chain.vyper\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(extcall)\\\\\\\\b\",\"name\":\"variable.language.special.extcall.vyper\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(staticcall)\\\\\\\\b\",\"name\":\"variable.language.special.staticcall.vyper\"},{\"match\":\"\\\\\\\\b(__interface__)\\\\\\\\b\",\"name\":\"variable.language.special.__interface__.vyper\"}]},\"statement\":{\"patterns\":[{\"include\":\"#import\"},{\"include\":\"#class-declaration\"},{\"include\":\"#function-declaration\"},{\"include\":\"#generator\"},{\"include\":\"#statement-keyword\"},{\"include\":\"#assignment-operator\"},{\"include\":\"#decorator\"},{\"include\":\"#docstring-statement\"},{\"include\":\"#semicolon\"}]},\"statement-keyword\":{\"patterns\":[{\"match\":\"\\\\\\\\b((async\\\\\\\\s+)?\\\\\\\\s*def)\\\\\\\\b\",\"name\":\"storage.type.function.python\"},{\"comment\":\"if \\`as\\` is eventually followed by \\`:\\` or line continuation\\\\nit's probably control flow like:\\\\n    with foo as bar, \\\\\\\\\\\\n         Foo as Bar:\\\\n      try:\\\\n        do_stuff()\\\\n      except Exception as e:\\\\n        pass\\\\n\",\"match\":\"\\\\\\\\b(?<!\\\\\\\\.)as\\\\\\\\b(?=.*[:\\\\\\\\\\\\\\\\])\",\"name\":\"keyword.control.flow.python\"},{\"comment\":\"other legal use of \\`as\\` is in an import\",\"match\":\"\\\\\\\\b(?<!\\\\\\\\.)as\\\\\\\\b\",\"name\":\"keyword.control.import.python\"},{\"match\":\"\\\\\\\\b(?<!\\\\\\\\.)(async|continue|del|assert|break|finally|for|from|elif|else|if|except|pass|raise|return|try|while|with)\\\\\\\\b\",\"name\":\"keyword.control.flow.python\"},{\"match\":\"\\\\\\\\b(?<!\\\\\\\\.)(global|nonlocal)\\\\\\\\b\",\"name\":\"storage.modifier.declaration.python\"},{\"match\":\"\\\\\\\\b(?<!\\\\\\\\.)(class)\\\\\\\\b\",\"name\":\"storage.type.class.python\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.flow.python\"}},\"match\":\"^\\\\\\\\s*(case|match)(?=\\\\\\\\s*([-+\\\\\\\\w\\\\\\\\d(\\\\\\\\[{'\\\\\":#]|$))\\\\\\\\b\"}]},\"string\":{\"patterns\":[{\"include\":\"#string-quoted-multi-line\"},{\"include\":\"#string-quoted-single-line\"},{\"include\":\"#string-bin-quoted-multi-line\"},{\"include\":\"#string-bin-quoted-single-line\"},{\"include\":\"#string-raw-quoted-multi-line\"},{\"include\":\"#string-raw-quoted-single-line\"},{\"include\":\"#string-raw-bin-quoted-multi-line\"},{\"include\":\"#string-raw-bin-quoted-single-line\"},{\"include\":\"#fstring-fnorm-quoted-multi-line\"},{\"include\":\"#fstring-fnorm-quoted-single-line\"},{\"include\":\"#fstring-normf-quoted-multi-line\"},{\"include\":\"#fstring-normf-quoted-single-line\"},{\"include\":\"#fstring-raw-quoted-multi-line\"},{\"include\":\"#fstring-raw-quoted-single-line\"}]},\"string-bin-quoted-multi-line\":{\"begin\":\"(\\\\\\\\b[bB])('''|\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.python\"},\"2\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\2)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.quoted.binary.multi.python\",\"patterns\":[{\"include\":\"#string-entity\"}]},\"string-bin-quoted-single-line\":{\"begin\":\"(\\\\\\\\b[bB])((['\\\\\"]))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.python\"},\"2\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\2)|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.quoted.binary.single.python\",\"patterns\":[{\"include\":\"#string-entity\"}]},\"string-brace-formatting\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"},\"3\":{\"name\":\"storage.type.format.python\"},\"4\":{\"name\":\"storage.type.format.python\"}},\"match\":\"({{|}}|(?:{\\\\\\\\w*(\\\\\\\\.[[:alpha:]_]\\\\\\\\w*|\\\\\\\\[[^\\\\\\\\]'\\\\\"]+\\\\\\\\])*(![rsa])?(:\\\\\\\\w?[<>=^]?[-+ ]?\\\\\\\\#?\\\\\\\\d*,?(\\\\\\\\.\\\\\\\\d+)?[bcdeEfFgGnosxX%]?)?}))\",\"name\":\"meta.format.brace.python\"},{\"captures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"},\"3\":{\"name\":\"storage.type.format.python\"},\"4\":{\"name\":\"storage.type.format.python\"}},\"match\":\"({\\\\\\\\w*(\\\\\\\\.[[:alpha:]_]\\\\\\\\w*|\\\\\\\\[[^\\\\\\\\]'\\\\\"]+\\\\\\\\])*(![rsa])?(:)[^'\\\\\"{}\\\\\\\\n]*(?:\\\\\\\\{[^'\\\\\"}\\\\\\\\n]*?\\\\\\\\}[^'\\\\\"{}\\\\\\\\n]*)*})\",\"name\":\"meta.format.brace.python\"}]},\"string-consume-escape\":{\"match\":\"\\\\\\\\\\\\\\\\['\\\\\"\\\\\\\\n\\\\\\\\\\\\\\\\]\"},\"string-entity\":{\"patterns\":[{\"include\":\"#escape-sequence\"},{\"include\":\"#string-line-continuation\"},{\"include\":\"#string-formatting\"}]},\"string-formatting\":{\"captures\":{\"1\":{\"name\":\"constant.character.format.placeholder.other.python\"}},\"match\":\"(%(\\\\\\\\([\\\\\\\\w\\\\\\\\s]*\\\\\\\\))?[-+#0 ]*(\\\\\\\\d+|\\\\\\\\*)?(\\\\\\\\.(\\\\\\\\d+|\\\\\\\\*))?([hlL])?[diouxXeEfFgGcrsab%])\",\"name\":\"meta.format.percent.python\"},\"string-line-continuation\":{\"match\":\"\\\\\\\\\\\\\\\\$\",\"name\":\"constant.language.python\"},\"string-multi-bad-brace1-formatting-raw\":{\"begin\":\"(?=\\\\\\\\{%(.*?(?!'''|\\\\\"\\\\\"\\\\\"))%\\\\\\\\})\",\"comment\":\"template using {% ... %}\",\"end\":\"(?='''|\\\\\"\\\\\"\\\\\")\",\"patterns\":[{\"include\":\"#string-consume-escape\"}]},\"string-multi-bad-brace1-formatting-unicode\":{\"begin\":\"(?=\\\\\\\\{%(.*?(?!'''|\\\\\"\\\\\"\\\\\"))%\\\\\\\\})\",\"comment\":\"template using {% ... %}\",\"end\":\"(?='''|\\\\\"\\\\\"\\\\\")\",\"patterns\":[{\"include\":\"#escape-sequence-unicode\"},{\"include\":\"#escape-sequence\"},{\"include\":\"#string-line-continuation\"}]},\"string-multi-bad-brace2-formatting-raw\":{\"begin\":\"(?!\\\\\\\\{\\\\\\\\{)(?=\\\\\\\\{(\\\\\\\\w*?(?!'''|\\\\\"\\\\\"\\\\\")[^!:\\\\\\\\.\\\\\\\\[}\\\\\\\\w]).*?(?!'''|\\\\\"\\\\\"\\\\\")\\\\\\\\})\",\"comment\":\"odd format or format-like syntax\",\"end\":\"(?='''|\\\\\"\\\\\"\\\\\")\",\"patterns\":[{\"include\":\"#string-consume-escape\"},{\"include\":\"#string-formatting\"}]},\"string-multi-bad-brace2-formatting-unicode\":{\"begin\":\"(?!\\\\\\\\{\\\\\\\\{)(?=\\\\\\\\{(\\\\\\\\w*?(?!'''|\\\\\"\\\\\"\\\\\")[^!:\\\\\\\\.\\\\\\\\[}\\\\\\\\w]).*?(?!'''|\\\\\"\\\\\"\\\\\")\\\\\\\\})\",\"comment\":\"odd format or format-like syntax\",\"end\":\"(?='''|\\\\\"\\\\\"\\\\\")\",\"patterns\":[{\"include\":\"#escape-sequence-unicode\"},{\"include\":\"#string-entity\"}]},\"string-quoted-multi-line\":{\"begin\":\"(?:\\\\\\\\b([rR])(?=[uU]))?([uU])?('''|\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"invalid.illegal.prefix.python\"},\"2\":{\"name\":\"storage.type.string.python\"},\"3\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\3)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.quoted.multi.python\",\"patterns\":[{\"include\":\"#string-multi-bad-brace1-formatting-unicode\"},{\"include\":\"#string-multi-bad-brace2-formatting-unicode\"},{\"include\":\"#string-unicode-guts\"}]},\"string-quoted-single-line\":{\"begin\":\"(?:\\\\\\\\b([rR])(?=[uU]))?([uU])?((['\\\\\"]))\",\"beginCaptures\":{\"1\":{\"name\":\"invalid.illegal.prefix.python\"},\"2\":{\"name\":\"storage.type.string.python\"},\"3\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\3)|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.quoted.single.python\",\"patterns\":[{\"include\":\"#string-single-bad-brace1-formatting-unicode\"},{\"include\":\"#string-single-bad-brace2-formatting-unicode\"},{\"include\":\"#string-unicode-guts\"}]},\"string-raw-bin-guts\":{\"patterns\":[{\"include\":\"#string-consume-escape\"},{\"include\":\"#string-formatting\"}]},\"string-raw-bin-quoted-multi-line\":{\"begin\":\"(\\\\\\\\b(?:R[bB]|[bB]R))('''|\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.python\"},\"2\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\2)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.quoted.raw.binary.multi.python\",\"patterns\":[{\"include\":\"#string-raw-bin-guts\"}]},\"string-raw-bin-quoted-single-line\":{\"begin\":\"(\\\\\\\\b(?:R[bB]|[bB]R))((['\\\\\"]))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.string.python\"},\"2\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\2)|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.quoted.raw.binary.single.python\",\"patterns\":[{\"include\":\"#string-raw-bin-guts\"}]},\"string-raw-guts\":{\"patterns\":[{\"include\":\"#string-consume-escape\"},{\"include\":\"#string-formatting\"},{\"include\":\"#string-brace-formatting\"}]},\"string-raw-quoted-multi-line\":{\"begin\":\"\\\\\\\\b(([uU]R)|(R))('''|\\\\\"\\\\\"\\\\\")\",\"beginCaptures\":{\"2\":{\"name\":\"invalid.deprecated.prefix.python\"},\"3\":{\"name\":\"storage.type.string.python\"},\"4\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\4)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.quoted.raw.multi.python\",\"patterns\":[{\"include\":\"#string-multi-bad-brace1-formatting-raw\"},{\"include\":\"#string-multi-bad-brace2-formatting-raw\"},{\"include\":\"#string-raw-guts\"}]},\"string-raw-quoted-single-line\":{\"begin\":\"\\\\\\\\b(([uU]R)|(R))((['\\\\\"]))\",\"beginCaptures\":{\"2\":{\"name\":\"invalid.deprecated.prefix.python\"},\"3\":{\"name\":\"storage.type.string.python\"},\"4\":{\"name\":\"punctuation.definition.string.begin.python\"}},\"end\":\"(\\\\\\\\4)|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.python\"},\"2\":{\"name\":\"invalid.illegal.newline.python\"}},\"name\":\"string.quoted.raw.single.python\",\"patterns\":[{\"include\":\"#string-single-bad-brace1-formatting-raw\"},{\"include\":\"#string-single-bad-brace2-formatting-raw\"},{\"include\":\"#string-raw-guts\"}]},\"string-single-bad-brace1-formatting-raw\":{\"begin\":\"(?=\\\\\\\\{%(.*?(?!(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)))%\\\\\\\\})\",\"comment\":\"template using {% ... %}\",\"end\":\"(?=(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"patterns\":[{\"include\":\"#string-consume-escape\"}]},\"string-single-bad-brace1-formatting-unicode\":{\"begin\":\"(?=\\\\\\\\{%(.*?(?!(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n)))%\\\\\\\\})\",\"comment\":\"template using {% ... %}\",\"end\":\"(?=(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"patterns\":[{\"include\":\"#escape-sequence-unicode\"},{\"include\":\"#escape-sequence\"},{\"include\":\"#string-line-continuation\"}]},\"string-single-bad-brace2-formatting-raw\":{\"begin\":\"(?!\\\\\\\\{\\\\\\\\{)(?=\\\\\\\\{(\\\\\\\\w*?(?!(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))[^!:\\\\\\\\.\\\\\\\\[}\\\\\\\\w]).*?(?!(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\\\\\\\\})\",\"comment\":\"odd format or format-like syntax\",\"end\":\"(?=(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"patterns\":[{\"include\":\"#string-consume-escape\"},{\"include\":\"#string-formatting\"}]},\"string-single-bad-brace2-formatting-unicode\":{\"begin\":\"(?!\\\\\\\\{\\\\\\\\{)(?=\\\\\\\\{(\\\\\\\\w*?(?!(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))[^!:\\\\\\\\.\\\\\\\\[}\\\\\\\\w]).*?(?!(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\\\\\\\\})\",\"comment\":\"odd format or format-like syntax\",\"end\":\"(?=(['\\\\\"])|((?<!\\\\\\\\\\\\\\\\)\\\\\\\\n))\",\"patterns\":[{\"include\":\"#escape-sequence-unicode\"},{\"include\":\"#string-entity\"}]},\"string-unicode-guts\":{\"patterns\":[{\"include\":\"#escape-sequence-unicode\"},{\"include\":\"#string-entity\"},{\"include\":\"#string-brace-formatting\"}]}},\"scopeName\":\"source.vyper\",\"aliases\":[\"vy\"]}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/oQwgk5qA.js",
    "content": "import{Q as r,R as t}from\"./CU_MfyYc.js\";const s={};function n(e,o){return t(e.$slots,\"default\")}const c=r(s,[[\"render\",n]]);export{c as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/qXRMwz9A.js",
    "content": "import{_ as Ve}from\"./DnWQm4Tq.js\";import{d as ie,a as ce,c as C,r as w,w as q,B as de,o as Me,n as ue,C as i,g as n,a4 as Te,a6 as je,P as Le,W as qe,aM as Ee,i as e,f as k,F as N,L as Re,_ as Oe,j as t,e as D,E as _,x as H,t as Ne,H as Q,N as De,M as Ue,G as u,J as X,O as P,z as ze,l as Be,p as Ie,q as Fe,s as Y,I as We,h as He,Q as Pe}from\"./CU_MfyYc.js\";import{_ as Ae}from\"./D-1_drer.js\";import{_ as Ge}from\"./DP9I38t9.js\";import{s as Je,T as Ke,l as Qe,d as Xe}from\"./9VOnL4Iz.js\";import{_ as Ye}from\"./CvhZxjKo.js\";import{_ as Ze}from\"./DMFWKIsW.js\";import{_ as es}from\"./RFJ54-KY.js\";import{_ as ss}from\"./C4bX54si.js\";import{_ as ts}from\"./BfYIQCg8.js\";import{_ as as}from\"./DK27pemE.js\";import{u as os}from\"./Cwg39VG_.js\";import{r as ls,a as rs}from\"./CViTd9PT.js\";import\"./D35nYK_C.js\";import\"./DZb6Dd70.js\";const ns=ie({__name:\"MonteCarloEquityCurve\",props:{data:{}},setup(Z){const U=ce(),E=C(()=>U.value),g=w();let c=null,h=[];const a=Z;q(E,v=>{L(v)}),de(async()=>{await T()});async function T(){const v={...Je,width:g.value.clientWidth,rightPriceScale:{visible:!0}};c=Ke(g.value,v);const m=a.data.filter(p=>p.name===\"Original\"),y=[...a.data.filter(p=>p.name!==\"Original\"),...m];for(let p=0;p<y.length;p++){const $=y[p],z=$.name===\"Original\",R=\"rgb(251, 191, 36)\",B=\"rgba(99, 102, 241, 0.15)\",A=z?{lineWidth:2,color:R,priceLineVisible:!0,lastValueVisible:!0}:{lineWidth:2,color:B,priceLineVisible:!1,lastValueVisible:!1},b=c.addLineSeries(A),I=($.data||[]).map(O=>({time:O.time,value:O.value}));b.setData(I),b.applyOptions({color:z?R:B}),h.push(b)}c.timeScale().fitContent(),L(E.value)}Me(()=>{if(h&&h.length>0)for(const v of h)try{v.setData([])}catch{}j()});function j(){if(c!==null){try{c.remove()}catch(v){console.error(\"Error removing chart:\",v)}c=null}h=[]}function L(v){c===null||h===null||c.applyOptions(v===\"light\"?Qe.chart:Xe.chart)}return q(()=>a.data,async()=>{j(),await ue(),await T()},{deep:!0}),(v,m)=>(n(),i(\"div\",{ref_key:\"chartContainer\",ref:g,class:\"rounded overflow-hidden border-2 border-gray-100 dark:border-gray-600\"},null,512))}}),is=Ie(as),cs={key:0,class:\"mb-8\"},ds={key:1,class:\"mb-8\"},us={key:2},vs={key:0,class:\"mb-8\"},_s={key:0,class:\"mb-8\"},fs={class:\"flex justify-between items-center mb-2\"},gs={class:\"text-sm text-gray-600 dark:text-gray-400\"},ms={key:0,class:\"text-sm text-gray-500 dark:text-gray-400\"},ys={class:\"mb-8\"},hs={key:0},ps={key:1,class:\"border-2 border-gray-100 dark:border-gray-600 rounded overflow-hidden p-4\"},ws={class:\"space-y-2\"},bs={key:1,class:\"mb-4\"},xs={class:\"border border-gray-200 bg-white dark:border-gray-700 dark:bg-gray-700 rounded-lg overflow-hidden\"},ks={class:\"w-[25%] text-sm font-medium italic\"},Cs={class:\"w-[18%] text-sm\"},Ss={class:\"w-[19%] text-sm\"},$s={class:\"w-[19%] text-sm\"},Vs={class:\"w-[19%] text-sm\"},Ms={key:2,class:\"mb-4\"},Ts={class:\"border border-gray-200 bg-white dark:border-gray-700 dark:bg-gray-700 rounded-lg overflow-hidden\"},js={class:\"flex justify-between font-semibold p-4 bg-gray-100 dark:bg-gray-900 text-sm\"},Ls={class:\"w-[25%]\"},qs={class:\"w-[18%]\"},Es={class:\"w-[19%]\"},Rs={class:\"w-[19%]\"},Os={class:\"w-[19%]\"},Ns={class:\"w-[25%]\"},Ds={class:\"w-[18%]\"},Us={class:\"w-[19%]\"},zs={class:\"w-[19%]\"},Bs={class:\"w-[19%]\"},Is={key:1,class:\"mb-8\"},Fs={key:0,class:\"mb-8\"},Ws={class:\"flex justify-between items-center mb-2\"},Hs={class:\"text-sm text-gray-600 dark:text-gray-400\"},Ps={key:0,class:\"text-sm text-gray-500 dark:text-gray-400\"},As={class:\"mb-8\"},Gs={key:0},Js={key:1,class:\"border-2 border-gray-100 dark:border-gray-600 rounded overflow-hidden p-4\"},Ks={class:\"space-y-2\"},Qs={key:1,class:\"mb-4\"},Xs={class:\"border border-gray-200 bg-white dark:border-gray-700 dark:bg-gray-700 rounded-lg overflow-hidden\"},Ys={class:\"w-[25%] text-sm font-medium italic\"},Zs={class:\"w-[18%] text-sm\"},et={class:\"w-[19%] text-sm\"},st={class:\"w-[19%] text-sm\"},tt={class:\"w-[19%] text-sm\"},at={key:2,class:\"mb-4\"},ot={class:\"border border-gray-200 bg-white dark:border-gray-700 dark:bg-gray-700 rounded-lg overflow-hidden\"},lt={class:\"flex justify-between font-semibold p-4 bg-gray-100 dark:bg-gray-900 text-sm\"},rt={class:\"w-[25%]\"},nt={class:\"w-[18%]\"},it={class:\"w-[19%]\"},ct={class:\"w-[19%]\"},dt={class:\"w-[19%]\"},ut={class:\"w-[25%]\"},vt={class:\"w-[18%]\"},_t={class:\"w-[19%]\"},ft={class:\"w-[19%]\"},gt={class:\"w-[19%]\"},mt={key:0,class:\"flex flex-col items-center justify-center select-none\"},yt={class:\"mb-8 w-full\"},ht={class:\"flex flex-col gap-4 mt-4\"},pt={key:1},wt={class:\"mb-8 w-full\"},bt={class:\"flex flex-col gap-4 mt-4\"},xt={key:2,class:\"mt-8 w-full\"},kt={key:3,class:\"mt-8 w-full bg-white dark:bg-gray-800 border dark:border-gray-700 rounded-lg overflow-hidden select-none\"},Ct={class:\"px-6 py-4 border-b dark:border-gray-700 bg-gray-100 dark:bg-gray-700/50 flex justify-between items-center\"},St={class:\"text-xs font-bold text-gray-900 dark:text-gray-100 uppercase tracking-wider\"},$t={class:\"px-6 py-4\"},Vt={key:0,class:\"text-sm text-gray-600 dark:text-gray-300 whitespace-pre-wrap\"},Mt={key:1,class:\"text-sm text-gray-400 dark:text-gray-500 italic text-center py-2\"},Tt={class:\"flex items-center justify-between\"},jt={key:0,class:\"flex flex-col space-y-4\"},Lt={class:\"flex flex-col\"},qt={class:\"flex items-center justify-between mb-2\"},Et={class:\"flex gap-2\"},Rt={class:\"border border-gray-200 dark:border-gray-800 rounded\",style:{height:\"500px\"}},Ot={class:\"p-4 space-y-3\"},Nt={key:1,class:\"flex flex-col space-y-4\"},Dt={class:\"flex flex-col\"},Ut={class:\"flex items-center justify-between mb-2\"},zt={class:\"flex gap-2\"},Bt={key:2,class:\"text-center py-8 text-gray-500 dark:text-gray-400\"},It=ie({__name:\"[id]\",setup(Z){os({title:\"Monte Carlo Session - Jesse\"});const U=Te(),E=je(),g=C(()=>E.params.id),c=Le(),h=C(()=>c.form),a=C(()=>c.results),T=w(!1),j=w(!1),L=w(!1),v=w(!1),m=w(null),S=w(),y=w(\"\"),p=w(!1),$=w(!1),z=ce(),R=C(()=>z.value===\"light\"?\"vs-light\":\"vs-dark\"),B=C(()=>E.query.status?E.query.status:null),A=C(()=>({automaticLayout:!0,minimap:{enabled:!1},fontSize:14,lineHeight:21,readOnly:!0})),b=w(!1),I=C(()=>{const l=[];return a.value.trades.original_equity_curve&&a.value.trades.original_equity_curve.data&&l.push({name:\"Original\",color:\"#f97316\",data:a.value.trades.original_equity_curve.data}),a.value.trades.scenario_equity_curves.forEach((s,d)=>{s&&s.data&&l.push({name:`Scenario ${d+1}`,color:\"#6366f1\",data:s.data})}),l}),O=C(()=>{const l=[];return a.value.candles.original_equity_curve&&a.value.candles.original_equity_curve.data&&l.push({name:\"Original\",color:\"#f97316\",data:a.value.candles.original_equity_curve.data}),a.value.candles.scenario_equity_curves.forEach((s,d)=>{s&&s.data&&l.push({name:`Scenario ${d+1}`,color:\"#6366f1\",data:s.data})}),l});de(()=>{const l=()=>{var d;(d=c.clearCurrentSession)==null||d.call(c)},s=()=>{document.hidden&&(y.value=\"\",m.value=null)};window.addEventListener(\"beforeunload\",l),document.addEventListener(\"visibilitychange\",s),qe(()=>{var d,F;if(window.removeEventListener(\"beforeunload\",l),document.removeEventListener(\"visibilitychange\",s),(d=S.value)!=null&&d.$editor)try{S.value.$editor.dispose()}catch(W){console.error(\"Error disposing editor:\",W)}S.value=void 0,y.value=\"\",m.value=null,a.value.infoLogs=\"\",a.value.trades.original_equity_curve=null,a.value.trades.scenario_equity_curves=[],a.value.candles.original_equity_curve=null,a.value.candles.scenario_equity_curves=[],c.clearCurrentSession&&c.clearCurrentSession(),(F=c.clearCurrentSession)==null||F.call(c)}),setTimeout(async()=>{c.clearCurrentSession(),B.value?U.replace(`/monte-carlo/${g.value}`):(await c.loadSession(g.value),c.results.status===\"terminated\"||c.results.status===\"stopped\"?b.value=!0:b.value=!1),await G()},100)}),Ee(()=>{var l;return(l=c.clearCurrentSession)==null||l.call(c),y.value=\"\",m.value=null,!0});async function G(){if(g.value)try{const l=await c.getSessionData(g.value);l&&(m.value=l)}catch(l){console.error(\"Error fetching session data:\",l)}}q(()=>c.results.status,l=>{l===\"terminated\"||l===\"stopped\"?b.value=!0:b.value=!1}),q(R,l=>{var s,d;(d=(s=S.value)==null?void 0:s.$editor)==null||d.updateOptions({theme:l})}),q(v,async l=>{if(l){if(p.value=!0,await ue(),g.value&&y.value===\"\"){const s=await c.getStrategyCode(g.value);s&&(y.value=Object.values(s)[0])}setTimeout(()=>{var s;(s=S.value)!=null&&s.$editor&&S.value.$editor.updateOptions({theme:R.value})},50)}p.value=!1}),q($,async l=>{if(l&&g.value&&!a.value.infoLogs.length){const s=await c.getSessionLogs(g.value);s&&(a.value.infoLogs=s)}}),q(L,async l=>{l&&await G()});function ve(){X.copyToClipboard(a.value.infoLogs),Y(\"success\",\"Info logs copied successfully\"),j.value=!0,setTimeout(()=>{j.value=!1},3e3)}async function _e(){await c.terminate()}async function fe(){await c.resume()}function ee(){c.newSession(),We(\"/monte-carlo/\")}const ge=l=>{const s=[];return l.forEach(d=>{s.push([{value:d.symbol,style:\"\"},{value:d.timeframe,style:\"\"},{value:d.strategy,style:\"\"}])}),s},me=l=>[[\"Start Date\",l.start_date],[\"Finish Date\",l.finish_date]];function se(l){return{total_return:\"Return\",max_drawdown:\"Max Drawdown\",sharpe_ratio:\"Sharpe Ratio\",calmar_ratio:\"Calmar Ratio\",net_profit_percentage:\"Net Profit\",win_rate:\"Win Rate\",total:\"Total Trades\",annual_return:\"Annual Return\"}[l]||l.replace(/_/g,\" \").replace(/\\b\\w/g,d=>d.toUpperCase())}function V(l,s){return s==null?\"N/A\":l===\"total_return\"||l===\"net_profit_percentage\"||l===\"annual_return\"?`${s.toFixed(1)}%`:l===\"max_drawdown\"?`${s.toFixed(1)}%`:l===\"win_rate\"?`${(s*100).toFixed(1)}%`:l===\"sharpe_ratio\"||l===\"calmar_ratio\"?s.toFixed(2):l===\"total\"?Math.round(s).toString():s.toFixed(2)}async function ye(){try{await navigator.clipboard.writeText(y.value),Y(\"success\",\"Strategy code copied to clipboard\")}catch(l){He(l)}}function he(){var s;const l=(s=h.value.routes[0])==null?void 0:s.strategy;l?J(`/strategies/${l}`):Y(\"error\",\"No strategy selected\")}async function pe(){await G()}function J(l){U.push(l)}return(l,s)=>{var re,ne;const d=Ve,F=Re,W=Ae,K=De,te=Ge,ae=ns,o=Ye,f=Ne,oe=Ue,le=Ze,we=es,be=ss,xe=ts,ke=is,Ce=Be,Se=ze,$e=Oe;return n(),i(N,null,[e(F,{modelValue:$.value,\"onUpdate:modelValue\":s[0]||(s[0]=r=>$.value=r),title:\"Logs\"},{default:k(()=>[e(d,{logs:a.value.infoLogs},null,8,[\"logs\"])]),buttons:k(()=>[t(\"button\",{class:\"ml-2 p-2 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-full text-gray-400 hover:text-gray-500 dark:hover:text-gray-300 focus:outline-none\",onClick:ve},[j.value?(n(),D(H(ls),{key:0,class:\"h-6 w-6\",\"aria-hidden\":\"true\"})):_(\"\",!0),!j.value&&a.value.infoLogs.length!=0?(n(),D(H(rs),{key:1,class:\"h-6 w-6\",\"aria-hidden\":\"true\"})):_(\"\",!0)])]),_:1},8,[\"modelValue\"]),e(be,null,{left:k(()=>[a.value.trades.exception.error&&a.value.executing?(n(),i(\"div\",cs,[e(W,{modelValue:T.value,\"onUpdate:modelValue\":s[1]||(s[1]=r=>T.value=r),title:\"Trades Simulation Error\",content:a.value.trades.exception.traceback||a.value.trades.exception.error,mode:\"monte-carlo\"},null,8,[\"modelValue\",\"content\"])])):_(\"\",!0),a.value.candles.exception.error&&a.value.executing?(n(),i(\"div\",ds,[e(W,{modelValue:T.value,\"onUpdate:modelValue\":s[2]||(s[2]=r=>T.value=r),title:\"Candles Simulation Error\",content:a.value.candles.exception.traceback||a.value.candles.exception.error,mode:\"monte-carlo\"},null,8,[\"modelValue\",\"content\"])])):_(\"\",!0),(a.value.executing||a.value.showResults)&&!(a.value.candles.exception.error||a.value.trades.exception.error)?(n(),i(\"div\",us,[h.value.run_trades?(n(),i(\"div\",vs,[e(K,{title:\"🔀 Monte Carlo Trades\",class:\"mb-4\"}),a.value.trades.progressbar.total>0&&a.value.trades.progressbar.current<a.value.trades.progressbar.total?(n(),i(\"div\",_s,[t(\"div\",fs,[t(\"p\",gs,\" Running Trades Simulation... (\"+u(a.value.trades.progressbar.current)+\"/\"+u(a.value.trades.progressbar.total)+\") \",1),a.value.trades.progressbar.estimated_remaining_seconds>0?(n(),i(\"p\",ms,u(H(X).remainingTimeText(a.value.trades.progressbar.estimated_remaining_seconds)),1)):_(\"\",!0)]),e(te,{value:a.value.trades.progressbar.current,max:a.value.trades.progressbar.total,size:\"lg\",color:\"primary\"},null,8,[\"value\",\"max\"])])):_(\"\",!0),t(\"div\",ys,[I.value.length?(n(),i(\"div\",hs,[e(ae,{data:I.value},null,8,[\"data\"])])):(n(),i(\"div\",ps,[t(\"div\",ws,[e(o,{class:\"h-8 w-3/4\"}),e(o,{class:\"h-8 w-full\"}),e(o,{class:\"h-8 w-5/6\"}),e(o,{class:\"h-8 w-full\"}),e(o,{class:\"h-8 w-4/5\"}),e(o,{class:\"h-8 w-full\"}),e(o,{class:\"h-8 w-3/4\"}),e(o,{class:\"h-8 w-full\"}),e(o,{class:\"h-8 w-5/6\"}),e(o,{class:\"h-8 w-full\"}),e(o,{class:\"h-8 w-4/5\"}),e(o,{class:\"h-8 w-full\"})])]))]),a.value.trades.summary_metrics.length?(n(),i(\"div\",bs,[t(\"div\",xs,[s[18]||(s[18]=t(\"div\",{class:\"flex justify-between font-semibold p-4 bg-gray-100 dark:bg-gray-900 text-sm\"},[t(\"div\",{class:\"w-[25%]\"},\"Metric\"),t(\"div\",{class:\"w-[18%]\"},\"Original\"),t(\"div\",{class:\"w-[19%]\"},\"Worst 5%\"),t(\"div\",{class:\"w-[19%]\"},\"Median\"),t(\"div\",{class:\"w-[19%]\"},\"Best 5%\")],-1)),(n(!0),i(N,null,P(a.value.trades.summary_metrics,(r,M)=>(n(),i(\"div\",{key:M,class:Q([\"flex justify-between border-t border-gray-200 dark:border-gray-700 p-4\",{\"bg-gray-50 dark:bg-gray-800\":M%2===0}])},[t(\"div\",ks,u(se(r.metric)),1),t(\"div\",Cs,u(V(r.metric,r.original)),1),t(\"div\",Ss,u(V(r.metric,r.worst_5)),1),t(\"div\",$s,u(V(r.metric,r.median)),1),t(\"div\",Vs,u(V(r.metric,r.best_5)),1)],2))),128))])])):(n(),i(\"div\",Ms,[t(\"div\",Ts,[t(\"div\",js,[t(\"div\",Ls,[e(o,{class:\"h-4 w-20\"})]),t(\"div\",qs,[e(o,{class:\"h-4 w-16\"})]),t(\"div\",Es,[e(o,{class:\"h-4 w-16\"})]),t(\"div\",Rs,[e(o,{class:\"h-4 w-16\"})]),t(\"div\",Os,[e(o,{class:\"h-4 w-16\"})])]),(n(),i(N,null,P(4,r=>t(\"div\",{key:r,class:\"flex justify-between border-t border-gray-200 dark:border-gray-700 p-4\"},[t(\"div\",Ns,[e(o,{class:\"h-4 w-24\"})]),t(\"div\",Ds,[e(o,{class:\"h-4 w-16\"})]),t(\"div\",Us,[e(o,{class:\"h-4 w-16\"})]),t(\"div\",zs,[e(o,{class:\"h-4 w-16\"})]),t(\"div\",Bs,[e(o,{class:\"h-4 w-16\"})])])),64))])]))])):_(\"\",!0),h.value.run_candles?(n(),i(\"div\",Is,[e(K,{title:\"📈 Monte Carlo Candles\",class:\"mb-4\"}),a.value.candles.progressbar.total>0&&a.value.candles.progressbar.current<a.value.candles.progressbar.total?(n(),i(\"div\",Fs,[t(\"div\",Ws,[t(\"p\",Hs,\" Running Candles Simulation... (\"+u(a.value.candles.progressbar.current)+\"/\"+u(a.value.candles.progressbar.total)+\") \",1),a.value.candles.progressbar.estimated_remaining_seconds>0?(n(),i(\"p\",Ps,u(H(X).remainingTimeText(a.value.candles.progressbar.estimated_remaining_seconds)),1)):_(\"\",!0)]),e(te,{value:a.value.candles.progressbar.current,max:a.value.candles.progressbar.total,size:\"lg\",color:\"primary\"},null,8,[\"value\",\"max\"])])):_(\"\",!0),t(\"div\",As,[O.value.length?(n(),i(\"div\",Gs,[e(ae,{data:O.value},null,8,[\"data\"])])):(n(),i(\"div\",Js,[t(\"div\",Ks,[e(o,{class:\"h-8 w-3/4\"}),e(o,{class:\"h-8 w-full\"}),e(o,{class:\"h-8 w-5/6\"}),e(o,{class:\"h-8 w-full\"}),e(o,{class:\"h-8 w-4/5\"}),e(o,{class:\"h-8 w-full\"}),e(o,{class:\"h-8 w-3/4\"}),e(o,{class:\"h-8 w-full\"}),e(o,{class:\"h-8 w-5/6\"}),e(o,{class:\"h-8 w-full\"}),e(o,{class:\"h-8 w-4/5\"}),e(o,{class:\"h-8 w-full\"})])]))]),a.value.candles.summary_metrics.length?(n(),i(\"div\",Qs,[t(\"div\",Xs,[s[19]||(s[19]=t(\"div\",{class:\"flex justify-between font-semibold p-4 bg-gray-100 dark:bg-gray-900 text-sm\"},[t(\"div\",{class:\"w-[25%]\"},\"Metric\"),t(\"div\",{class:\"w-[18%]\"},\"Original\"),t(\"div\",{class:\"w-[19%]\"},\"Worst 5%\"),t(\"div\",{class:\"w-[19%]\"},\"Median\"),t(\"div\",{class:\"w-[19%]\"},\"Best 5%\")],-1)),(n(!0),i(N,null,P(a.value.candles.summary_metrics,(r,M)=>(n(),i(\"div\",{key:M,class:Q([\"flex justify-between border-t border-gray-200 dark:border-gray-700 p-4\",{\"bg-gray-50 dark:bg-gray-800\":M%2===0}])},[t(\"div\",Ys,u(se(r.metric)),1),t(\"div\",Zs,u(V(r.metric,r.original)),1),t(\"div\",et,u(V(r.metric,r.worst_5)),1),t(\"div\",st,u(V(r.metric,r.median)),1),t(\"div\",tt,u(V(r.metric,r.best_5)),1)],2))),128))])])):(n(),i(\"div\",at,[t(\"div\",ot,[t(\"div\",lt,[t(\"div\",rt,[e(o,{class:\"h-4 w-20\"})]),t(\"div\",nt,[e(o,{class:\"h-4 w-16\"})]),t(\"div\",it,[e(o,{class:\"h-4 w-16\"})]),t(\"div\",ct,[e(o,{class:\"h-4 w-16\"})]),t(\"div\",dt,[e(o,{class:\"h-4 w-16\"})])]),(n(),i(N,null,P(4,r=>t(\"div\",{key:r,class:\"flex justify-between border-t border-gray-200 dark:border-gray-700 p-4\"},[t(\"div\",ut,[e(o,{class:\"h-4 w-24\"})]),t(\"div\",vt,[e(o,{class:\"h-4 w-16\"})]),t(\"div\",_t,[e(o,{class:\"h-4 w-16\"})]),t(\"div\",ft,[e(o,{class:\"h-4 w-16\"})]),t(\"div\",gt,[e(o,{class:\"h-4 w-16\"})])])),64))])]))])):_(\"\",!0)])):_(\"\",!0)]),right:k(()=>{var r,M;return[a.value.executing&&!a.value.showResults?(n(),i(\"div\",mt,[t(\"div\",yt,[a.value.trades.exception.error||a.value.candles.exception.error?(n(),D(f,{key:0,class:\"w-full flex justify-center mt-4\",icon:\"i-heroicons-arrow-uturn-left\",variant:\"soft\",color:\"green\",label:\"New Session\",trailing:!1,onClick:s[3]||(s[3]=x=>ee())})):a.value.showResults?_(\"\",!0):(n(),D(f,{key:1,color:\"gray\",ui:{color:{gray:{soft:\"text-rose-500 dark:text-rose-400\"}}},class:\"w-full flex justify-center mt-4\",icon:\"i-heroicons-pause\",variant:\"soft\",label:\"Terminate\",disabled:a.value.trades.progressbar.current===0&&a.value.candles.progressbar.current===0,trailing:!1,onClick:s[4]||(s[4]=x=>_e())},null,8,[\"disabled\"])),t(\"div\",ht,[e(f,{class:\"w-full flex justify-center\",color:\"gray\",variant:\"soft\",label:\"Logs\",icon:\"i-heroicons-document-text\",trailing:!1,onClick:s[5]||(s[5]=x=>$.value=!0)}),e(f,{class:\"w-full flex justify-center\",color:\"gray\",variant:\"soft\",label:\"History\",icon:\"i-heroicons-clock\",trailing:!1,onClick:s[6]||(s[6]=x=>J(\"/monte-carlo/history\"))}),e(f,{class:\"w-full flex justify-center\",color:\"gray\",variant:\"soft\",label:\"View Strategy\",icon:\"i-heroicons-code-bracket\",trailing:!1,onClick:s[7]||(s[7]=x=>v.value=!0)})])])])):_(\"\",!0),a.value.showResults?(n(),i(\"div\",pt,[t(\"div\",wt,[b.value?(n(),D(f,{key:0,class:\"w-full flex justify-center\",icon:\"i-heroicons-play\",variant:\"solid\",color:\"primary\",label:\"Resume\",trailing:!1,onClick:s[8]||(s[8]=x=>fe())})):_(\"\",!0),e(f,{class:Q([\"w-full flex justify-center\",{\"mt-4\":b.value}]),icon:\"i-heroicons-arrow-uturn-left\",variant:\"soft\",color:\"green\",label:\"New Session\",trailing:!1,onClick:s[9]||(s[9]=x=>ee())},null,8,[\"class\"]),t(\"div\",bt,[e(f,{class:\"w-full flex justify-center\",color:\"gray\",variant:\"soft\",label:\"Logs\",icon:\"i-heroicons-document-text\",trailing:!1,onClick:s[10]||(s[10]=x=>$.value=!0)}),e(f,{class:\"w-full flex justify-center\",color:\"gray\",variant:\"soft\",label:\"History\",icon:\"i-heroicons-clock\",trailing:!1,onClick:s[11]||(s[11]=x=>J(\"/monte-carlo/history\"))}),e(f,{class:\"w-full flex justify-center\",color:\"gray\",variant:\"soft\",label:\"View Strategy\",icon:\"i-heroicons-code-bracket\",trailing:!1,onClick:s[12]||(s[12]=x=>v.value=!0)})])])])):_(\"\",!0),(a.value.executing||a.value.showResults)&&a.value.generalInfo.length?(n(),i(\"div\",xt,[e(K,{title:\"Info\",class:\"mb-4\"}),e(oe,{data:a.value.generalInfo},null,8,[\"data\"]),e(le,{class:\"mt-8 mb-4\",size:\"lg\",label:\"Duration\"}),e(oe,{data:me(h.value)},null,8,[\"data\"]),e(le,{class:\"mt-8 mb-4\",size:\"lg\",label:\"Routes\"}),e(we,{data:ge(h.value.routes),\"header-items\":[\"Symbol\",\"Timeframe\",\"Strategy\"],header:\"\"},null,8,[\"data\"])])):_(\"\",!0),a.value.executing||a.value.showResults?(n(),i(\"div\",kt,[t(\"div\",Ct,[t(\"h3\",St,u(((r=m.value)==null?void 0:r.title)||\"Session Notes\"),1),e(f,{variant:\"link\",color:\"gray\",icon:\"i-heroicons-pencil-square\",size:\"xs\",onClick:s[13]||(s[13]=x=>L.value=!0)})]),t(\"div\",$t,[(M=m.value)!=null&&M.description?(n(),i(\"div\",Vt,u(m.value.description),1)):(n(),i(\"div\",Mt,\" No notes yet. Click the edit button to add notes. \"))])])):_(\"\",!0)]}),_:1}),e(xe,{modelValue:L.value,\"onUpdate:modelValue\":s[14]||(s[14]=r=>L.value=r),\"session-id\":g.value,\"initial-title\":(re=m.value)==null?void 0:re.title,\"initial-description\":(ne=m.value)==null?void 0:ne.description,onSaved:pe},null,8,[\"modelValue\",\"session-id\",\"initial-title\",\"initial-description\"]),e($e,{modelValue:v.value,\"onUpdate:modelValue\":s[17]||(s[17]=r=>v.value=r),ui:{width:\"sm:max-w-5xl\"}},{default:k(()=>[e(Se,null,{header:k(()=>[t(\"div\",Tt,[s[20]||(s[20]=t(\"h3\",{class:\"text-lg font-semibold\"},\"Strategy Code Snapshot\",-1)),e(f,{color:\"gray\",variant:\"ghost\",icon:\"i-heroicons-x-mark\",size:\"sm\",onClick:s[15]||(s[15]=r=>v.value=!1)})])]),default:k(()=>[p.value?(n(),i(\"div\",jt,[t(\"div\",Lt,[t(\"div\",qt,[e(o,{class:\"h-4 w-20\"}),t(\"div\",Et,[e(o,{class:\"h-8 w-16\"}),e(o,{class:\"h-8 w-32\"})])]),t(\"div\",Rt,[t(\"div\",Ot,[e(o,{class:\"h-4 w-full\"}),e(o,{class:\"h-4 w-5/6\"}),e(o,{class:\"h-4 w-4/5\"}),e(o,{class:\"h-4 w-full\"}),e(o,{class:\"h-4 w-3/4\"}),e(o,{class:\"h-4 w-full\"}),e(o,{class:\"h-4 w-2/3\"}),e(o,{class:\"h-4 w-5/6\"}),e(o,{class:\"h-4 w-full\"}),e(o,{class:\"h-4 w-4/5\"}),e(o,{class:\"h-4 w-1/2\"}),e(o,{class:\"h-4 w-3/4\"}),e(o,{class:\"h-4 w-full\"}),e(o,{class:\"h-4 w-5/6\"}),e(o,{class:\"h-4 w-2/3\"})])])])])):y.value&&y.value.length>0?(n(),i(\"div\",Nt,[t(\"div\",Dt,[t(\"div\",Ut,[s[21]||(s[21]=t(\"label\",{class:\"block text-sm font-medium\"},null,-1)),t(\"div\",zt,[e(f,{icon:\"i-heroicons-clipboard-document\",label:\"Copy\",variant:\"soft\",color:\"gray\",size:\"sm\",onClick:ye}),e(f,{icon:\"i-heroicons-pencil-square\",label:\"Go to Strategy Editor\",variant:\"soft\",color:\"primary\",size:\"sm\",onClick:he})])]),e(Ce,null,{default:k(()=>[e(ke,{ref_key:\"codeEditorRef\",ref:S,modelValue:y.value,\"onUpdate:modelValue\":s[16]||(s[16]=r=>y.value=r),lang:\"python\",options:A.value,class:\"border border-gray-200 dark:border-gray-800 rounded\",style:{height:\"500px\"}},{default:k(()=>s[22]||(s[22]=[Fe(\" Loading editor... \")])),_:1},8,[\"modelValue\",\"options\"])]),_:1})])])):(n(),i(\"div\",Bt,\" No strategy code snapshot available for this session. \"))]),_:1})]),_:1},8,[\"modelValue\"])],64)}}}),aa=Pe(It,[[\"__scopeId\",\"data-v-310af101\"]]);export{aa as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/qmhIZ77x.js",
    "content": "import e from\"./CwjWoCRV.js\";const t=Object.freeze(JSON.parse('{\"displayName\":\"TeX\",\"name\":\"tex\",\"patterns\":[{\"begin\":\"(?<=^\\\\\\\\s*)((\\\\\\\\\\\\\\\\)iffalse)(?!\\\\\\\\s*[{}]\\\\\\\\s*\\\\\\\\\\\\\\\\fi)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.tex\"},\"2\":{\"name\":\"punctuation.definition.keyword.tex\"}},\"contentName\":\"comment.line.percentage.tex\",\"end\":\"((\\\\\\\\\\\\\\\\)(?:else|fi))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.tex\"},\"2\":{\"name\":\"punctuation.definition.keyword.tex\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#braces\"},{\"include\":\"#conditionals\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.keyword.tex\"}},\"match\":\"(\\\\\\\\\\\\\\\\)(backmatter|csname|else|endcsname|fi|frontmatter|mainmatter|unless|if(case|cat|csname|defined|dim|eof|false|fontchar|hbox|hmode|inner|mmode|num|odd|true|vbox|vmode|void|x)?)(?![a-zA-Z@])\",\"name\":\"keyword.control.tex\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.catcode.tex\"},\"2\":{\"name\":\"punctuation.definition.keyword.tex\"},\"3\":{\"name\":\"punctuation.separator.key-value.tex\"},\"4\":{\"name\":\"constant.numeric.category.tex\"}},\"match\":\"((\\\\\\\\\\\\\\\\)catcode)`(?:\\\\\\\\\\\\\\\\)?.(=)(\\\\\\\\d+)\",\"name\":\"meta.catcode.tex\"},{\"include\":\"#comment\"},{\"match\":\"[\\\\\\\\[\\\\\\\\]]\",\"name\":\"punctuation.definition.brackets.tex\"},{\"begin\":\"(\\\\\\\\$\\\\\\\\$|\\\\\\\\$)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.tex\"}},\"end\":\"(\\\\\\\\1)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.tex\"}},\"name\":\"meta.math.block.tex support.class.math.block.tex\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\$\",\"name\":\"constant.character.escape.tex\"},{\"include\":\"#math\"},{\"include\":\"$self\"}]},{\"match\":\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\"name\":\"keyword.control.newline.tex\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.function.tex\"}},\"match\":\"(\\\\\\\\\\\\\\\\)_*[\\\\\\\\p{Alphabetic}@]+(?:_[\\\\\\\\p{Alphabetic}@]+)*:[NncVvoxefTFpwD]*\",\"name\":\"support.class.general.latex3.tex\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.function.tex\"}},\"match\":\"(\\\\\\\\.)[\\\\\\\\p{Alphabetic}@]+(?:_[\\\\\\\\p{Alphabetic}@]+)*:[NncVvoxefTFpwD]*\",\"name\":\"support.class.general.latex3.tex\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.function.tex\"}},\"match\":\"(\\\\\\\\\\\\\\\\)(?:[,;]|(?:[\\\\\\\\p{Alphabetic}@]+))\",\"name\":\"support.function.general.tex\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.keyword.tex\"}},\"match\":\"(\\\\\\\\\\\\\\\\)[^a-zA-Z@]\",\"name\":\"constant.character.escape.tex\"}],\"repository\":{\"braces\":{\"begin\":\"(?<!\\\\\\\\\\\\\\\\)\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.group.begin.tex\"}},\"end\":\"(?<!\\\\\\\\\\\\\\\\)\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.group.end.tex\"}},\"name\":\"meta.group.braces.tex\",\"patterns\":[{\"include\":\"#braces\"}]},\"comment\":{\"begin\":\"(^[ \\\\\\\\t]+)?(?=%)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.tex\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"%:?\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.tex\"}},\"end\":\"$\\\\\\\\n?\",\"name\":\"comment.line.percentage.tex\"},{\"begin\":\"^(%!TEX) (\\\\\\\\S*) =\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.tex\"}},\"end\":\"$\\\\\\\\n?\",\"name\":\"comment.line.percentage.directive.tex\"}]},\"conditionals\":{\"begin\":\"(?<=^\\\\\\\\s*)\\\\\\\\\\\\\\\\if[a-z]*\",\"end\":\"(?<=^\\\\\\\\s*)\\\\\\\\\\\\\\\\fi\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#conditionals\"}]},\"math\":{\"patterns\":[{\"begin\":\"((\\\\\\\\\\\\\\\\)(?:text|mbox))(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"constant.other.math.tex\"},\"2\":{\"name\":\"punctuation.definition.function.tex\"},\"3\":{\"name\":\"punctuation.definition.arguments.begin.tex meta.text.normal.tex\"}},\"contentName\":\"meta.text.normal.tex\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.arguments.end.tex meta.text.normal.tex\"}},\"patterns\":[{\"include\":\"#math\"},{\"include\":\"$self\"}]},{\"match\":\"\\\\\\\\\\\\\\\\{|\\\\\\\\\\\\\\\\}\",\"name\":\"punctuation.math.bracket.pair.tex\"},{\"match\":\"\\\\\\\\\\\\\\\\(left|right|((big|bigg|Big|Bigg)[lr]?))([\\\\\\\\(\\\\\\\\[\\\\\\\\<\\\\\\\\>\\\\\\\\]\\\\\\\\)\\\\\\\\.\\\\\\\\|]|\\\\\\\\\\\\\\\\[{}|]|\\\\\\\\\\\\\\\\[lr]?[Vv]ert|\\\\\\\\\\\\\\\\[lr]angle)\",\"name\":\"punctuation.math.bracket.pair.big.tex\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.constant.math.tex\"}},\"match\":\"(\\\\\\\\\\\\\\\\)(s(s(earrow|warrow|lash)|h(ort(downarrow|uparrow|parallel|leftarrow|rightarrow|mid)|arp)|tar|i(gma|m(eq)?)|u(cc(sim|n(sim|approx)|curlyeq|eq|approx)?|pset(neq(q)?|plus(eq)?|eq(q)?)?|rd|m|bset(neq(q)?|plus(eq)?|eq(q)?)?)|p(hericalangle|adesuit)|e(tminus|arrow)|q(su(pset(eq)?|bset(eq)?)|c(up|ap)|uare)|warrow|m(ile|all(s(etminus|mile)|frown)))|h(slash|ook(leftarrow|rightarrow)|eartsuit|bar)|R(sh|ightarrow|e|bag)|Gam(e|ma)|n(s(hort(parallel|mid)|im|u(cc(eq)?|pseteq(q)?|bseteq))|Rightarrow|n(earrow|warrow)|cong|triangle(left(eq(slant)?)?|right(eq(slant)?)?)|i(plus)?|u|p(lus|arallel|rec(eq)?)|e(q|arrow|g|xists)|v(dash|Dash)|warrow|le(ss|q(slant|q)?|ft(arrow|rightarrow))|a(tural|bla)|VDash|rightarrow|g(tr|eq(slant|q)?)|mid|Left(arrow|rightarrow))|c(hi|irc(eq|le(d(circ|S|dash|ast)|arrow(left|right)))?|o(ng|prod|lon|mplement)|dot(s|p)?|u(p|r(vearrow(left|right)|ly(eq(succ|prec)|vee(downarrow|uparrow)?|wedge(downarrow|uparrow)?)))|enterdot|lubsuit|ap)|Xi|Maps(to(char)?|from(char)?)|B(ox|umpeq|bbk)|t(h(ick(sim|approx)|e(ta|refore))|imes|op|wohead(leftarrow|rightarrow)|a(u|lloblong)|riangle(down|q|left(eq(slant)?)?|right(eq(slant)?)?)?)|i(n(t(er(cal|leave))?|plus|fty)?|ota|math)|S(igma|u(pset|bset))|zeta|o(slash|times|int|dot|plus|vee|wedge|lessthan|greaterthan|m(inus|ega)|b(slash|long|ar))|d(i(v(ideontimes)?|a(g(down|up)|mond(suit)?)|gamma)|o(t(plus|eq(dot)?)|ublebarwedge|wn(harpoon(left|right)|downarrows|arrow))|d(ots|agger)|elta|a(sh(v|leftarrow|rightarrow)|leth|gger))|Y(down|up|left|right)|C(up|ap)|u(n(lhd|rhd)|p(silon|harpoon(left|right)|downarrow|uparrows|lus|arrow)|lcorner|rcorner)|jmath|Theta|Im|p(si|hi|i(tchfork)?|erp|ar(tial|allel)|r(ime|o(d|pto)|ec(sim|n(sim|approx)|curlyeq|eq|approx)?)|m)|e(t(h|a)|psilon|q(slant(less|gtr)|circ|uiv)|ll|xists|mptyset)|Omega|D(iamond|ownarrow|elta)|v(d(ots|ash)|ee(bar)?|Dash|ar(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|curly(vee|wedge)|t(heta|imes|riangle(left|right)?)|o(slash|circle|times|dot|plus|vee|wedge|lessthan|ast|greaterthan|minus|b(slash|ar))|p(hi|i|ropto)|epsilon|kappa|rho|bigcirc))|kappa|Up(silon|downarrow|arrow)|Join|f(orall|lat|a(t(s(emi|lash)|bslash)|llingdotseq)|rown)|P(si|hi|i)|w(p|edge|r)|l(hd|n(sim|eq(q)?|approx)|ceil|times|ightning|o(ng(left(arrow|rightarrow)|rightarrow|maps(to|from))|zenge|oparrow(left|right))|dot(s|p)|e(ss(sim|dot|eq(qgtr|gtr)|approx|gtr)|q(slant|q)?|ft(slice|harpoon(down|up)|threetimes|leftarrows|arrow(t(ail|riangle))?|right(squigarrow|harpoons|arrow(s|triangle|eq)?))|adsto)|vertneqq|floor|l(c(orner|eil)|floor|l|bracket)?|a(ngle|mbda)|rcorner|bag)|a(s(ymp|t)|ngle|pprox(eq)?|l(pha|eph)|rrownot|malg)|V(dash|vdash)|r(h(o|d)|ceil|times|i(singdotseq|ght(s(quigarrow|lice)|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(t(ail|riangle))?|rightarrows))|floor|angle|r(ceil|parenthesis|floor|bracket)|bag)|g(n(sim|eq(q)?|approx)|tr(sim|dot|eq(qless|less)|less|approx)|imel|eq(slant|q)?|vertneqq|amma|g(g)?)|Finv|xi|m(ho|i(nuso|d)|o(o|dels)|u(ltimap)?|p|e(asuredangle|rge)|aps(to|from(char)?))|b(i(n(dnasrepma|ampersand)|g(s(tar|qc(up|ap))|nplus|c(irc|u(p|rly(vee|wedge))|ap)|triangle(down|up)|interleave|o(times|dot|plus)|uplus|parallel|vee|wedge|box))|o(t|wtie|x(slash|circle|times|dot|plus|empty|ast|minus|b(slash|ox|ar)))|u(llet|mpeq)|e(cause|t(h|ween|a))|lack(square|triangle(down|left|right)?|lozenge)|a(ck(s(im(eq)?|lash)|prime|epsilon)|r(o|wedge))|bslash)|L(sh|ong(left(arrow|rightarrow)|rightarrow|maps(to|from))|eft(arrow|rightarrow)|leftarrow|ambda|bag)|Arrownot)(?![a-zA-Z@])\",\"name\":\"constant.character.math.tex\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.constant.math.tex\"}},\"match\":\"(\\\\\\\\\\\\\\\\)(sum|prod|coprod|int|oint|bigcap|bigcup|bigsqcup|bigvee|bigwedge|bigodot|bigotimes|bogoplus|biguplus)\\\\\\\\b\",\"name\":\"constant.character.math.tex\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.constant.math.tex\"}},\"match\":\"(\\\\\\\\\\\\\\\\)(arccos|arcsin|arctan|arg|cos|cosh|cot|coth|csc|deg|det|dim|exp|gcd|hom|inf|ker|lg|lim|liminf|limsup|ln|log|max|min|pr|sec|sin|sinh|sup|tan|tanh)\\\\\\\\b\",\"name\":\"constant.other.math.tex\"},{\"begin\":\"((\\\\\\\\\\\\\\\\)Sexpr(\\\\\\\\{))\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.sexpr.math.tex\"},\"2\":{\"name\":\"punctuation.definition.function.math.tex\"},\"3\":{\"name\":\"punctuation.section.embedded.begin.math.tex\"}},\"contentName\":\"support.function.sexpr.math.tex\",\"end\":\"(((\\\\\\\\})))\",\"endCaptures\":{\"1\":{\"name\":\"support.function.sexpr.math.tex\"},\"2\":{\"name\":\"punctuation.section.embedded.end.math.tex\"},\"3\":{\"name\":\"source.r\"}},\"name\":\"meta.embedded.line.r\",\"patterns\":[{\"begin\":\"\\\\\\\\G(?!\\\\\\\\})\",\"end\":\"(?=\\\\\\\\})\",\"name\":\"source.r\",\"patterns\":[{\"include\":\"source.r\"}]}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.constant.math.tex\"}},\"match\":\"(\\\\\\\\\\\\\\\\)(?!begin\\\\\\\\{|verb)([A-Za-z]+)\",\"name\":\"constant.other.general.math.tex\"},{\"match\":\"(?<!\\\\\\\\\\\\\\\\)\\\\\\\\{\",\"name\":\"punctuation.math.begin.bracket.curly.tex\"},{\"match\":\"(?<!\\\\\\\\\\\\\\\\)\\\\\\\\}\",\"name\":\"punctuation.math.end.bracket.curly.tex\"},{\"match\":\"(?<!\\\\\\\\\\\\\\\\)\\\\\\\\(\",\"name\":\"punctuation.math.begin.bracket.round.tex\"},{\"match\":\"(?<!\\\\\\\\\\\\\\\\)\\\\\\\\)\",\"name\":\"punctuation.math.end.bracket.round.tex\"},{\"match\":\"(([0-9]*[\\\\\\\\.][0-9]+)|[0-9]+)\",\"name\":\"constant.numeric.math.tex\"},{\"match\":\"[\\\\\\\\+\\\\\\\\*/_\\\\\\\\^-]\",\"name\":\"punctuation.math.operator.tex\"}]}},\"scopeName\":\"text.tex\",\"embeddedLangs\":[\"r\"]}')),n=[...e,t];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/qpfuy3xp.js",
    "content": "import e from\"./BMYPR7BL.js\";import\"./ySlJ1b_l.js\";import\"./BPhBrDlE.js\";const n=Object.freeze(JSON.parse(`{\"displayName\":\"Closure Templates\",\"fileTypes\":[\"soy\"],\"injections\":{\"meta.tag\":{\"patterns\":[{\"include\":\"#body\"}]}},\"name\":\"soy\",\"patterns\":[{\"include\":\"#alias\"},{\"include\":\"#delpackage\"},{\"include\":\"#namespace\"},{\"include\":\"#template\"},{\"include\":\"#comment\"}],\"repository\":{\"alias\":{\"captures\":{\"1\":{\"name\":\"storage.type.soy\"},\"2\":{\"name\":\"entity.name.type.soy\"},\"3\":{\"name\":\"storage.type.soy\"},\"4\":{\"name\":\"entity.name.type.soy\"}},\"match\":\"{(alias)\\\\\\\\s+([\\\\\\\\w\\\\\\\\.]+)(?:\\\\\\\\s+(as)\\\\\\\\s+(\\\\\\\\w+))?}\"},\"attribute\":{\"captures\":{\"1\":{\"name\":\"storage.other.attribute.soy\"},\"2\":{\"name\":\"string.double.quoted.soy\"}},\"match\":\"(\\\\\\\\w+)=(\\\\\"(?:\\\\\\\\\\\\\\\\?.)*?\\\\\")\"},\"body\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#let\"},{\"include\":\"#call\"},{\"include\":\"#css\"},{\"include\":\"#xid\"},{\"include\":\"#condition\"},{\"include\":\"#condition-control\"},{\"include\":\"#for\"},{\"include\":\"#literal\"},{\"include\":\"#msg\"},{\"include\":\"#special-character\"},{\"include\":\"#print\"},{\"include\":\"text.html.basic\"}]},\"boolean\":{\"match\":\"true|false\",\"name\":\"language.constant.boolean.soy\"},\"call\":{\"patterns\":[{\"begin\":\"{((?:del)?call)\\\\\\\\s+([\\\\\\\\w\\\\\\\\.]+)(?=[^/]*?})\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.soy\"},\"2\":{\"name\":\"entity.name.function.soy\"}},\"end\":\"{/(\\\\\\\\1)}\",\"endCaptures\":{\"1\":{\"name\":\"storage.type.function.soy\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#variant\"},{\"include\":\"#attribute\"},{\"include\":\"#param\"}]},{\"begin\":\"{((?:del)?call)(\\\\\\\\s+[\\\\\\\\w\\\\\\\\.]+)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.soy\"},\"2\":{\"name\":\"entity.name.function.soy\"}},\"end\":\"/}\",\"patterns\":[{\"include\":\"#variant\"},{\"include\":\"#attribute\"}]}]},\"comment\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.documentation.soy\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.parameter.soy\"},\"2\":{\"name\":\"variable.parameter.soy\"}},\"match\":\"(@param\\\\\\\\??)\\\\\\\\s+(\\\\\\\\S+)\"}]},{\"match\":\"^\\\\\\\\s*(\\\\\\\\/\\\\\\\\/.*)$\",\"name\":\"comment.line.double-slash.soy\"}]},\"condition\":{\"begin\":\"{/?(if|elseif|switch|case)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.soy\"}},\"end\":\"}\",\"patterns\":[{\"include\":\"#attribute\"},{\"include\":\"#expression\"}]},\"condition-control\":{\"captures\":{\"1\":{\"name\":\"keyword.control.soy\"}},\"match\":\"{(else|ifempty|default)}\"},\"css\":{\"begin\":\"{(css)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.soy\"}},\"end\":\"}\",\"patterns\":[{\"include\":\"#expression\"}]},\"delpackage\":{\"captures\":{\"1\":{\"name\":\"storage.type.soy\"},\"2\":{\"name\":\"entity.name.type.soy\"}},\"match\":\"{(delpackage)\\\\\\\\s+([\\\\\\\\w\\\\\\\\.]+)}\"},\"expression\":{\"patterns\":[{\"include\":\"#boolean\"},{\"include\":\"#number\"},{\"include\":\"#function\"},{\"include\":\"#null\"},{\"include\":\"#string\"},{\"include\":\"#variable-ref\"},{\"include\":\"#operator\"}]},\"for\":{\"begin\":\"{/?(foreach|for)(?=\\\\\\\\s|})\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.soy\"}},\"end\":\"}\",\"patterns\":[{\"match\":\"in\",\"name\":\"keyword.control.soy\"},{\"include\":\"#expression\"},{\"include\":\"#body\"}]},\"function\":{\"begin\":\"(\\\\\\\\w+)\\\\\\\\(\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.soy\"}},\"end\":\"\\\\\\\\)\",\"patterns\":[{\"include\":\"#expression\"}]},\"let\":{\"patterns\":[{\"begin\":\"{(let)\\\\\\\\s+(\\\\\\\\$\\\\\\\\w+\\\\\\\\s*:)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.soy\"},\"2\":{\"name\":\"variable.soy\"}},\"end\":\"/}\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#expression\"}]},{\"begin\":\"{(let)\\\\\\\\s+(\\\\\\\\$\\\\\\\\w+)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.soy\"},\"2\":{\"name\":\"variable.soy\"}},\"end\":\"{/(\\\\\\\\1)}\",\"endCaptures\":{\"1\":{\"name\":\"storage.type.soy\"}},\"patterns\":[{\"include\":\"#attribute\"},{\"include\":\"#body\"}]}]},\"literal\":{\"begin\":\"{(literal)}\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.soy\"}},\"end\":\"{/(\\\\\\\\1)}\",\"endCaptures\":{\"1\":{\"name\":\"keyword.other.soy\"}},\"name\":\"meta.literal\"},\"msg\":{\"captures\":{\"1\":{\"name\":\"keyword.other.soy\"}},\"end\":\"}\",\"match\":\"{/?(msg|fallbackmsg)\",\"patterns\":[{\"include\":\"#attribute\"}]},\"namespace\":{\"captures\":{\"1\":{\"name\":\"storage.type.soy\"},\"2\":{\"name\":\"entity.name.type.soy\"}},\"match\":\"{(namespace)\\\\\\\\s+([\\\\\\\\w\\\\\\\\.]+)}\"},\"null\":{\"match\":\"null\",\"name\":\"language.constant.null.soy\"},\"number\":{\"match\":\"-?\\\\\\\\.?\\\\\\\\d+|\\\\\\\\d[\\\\\\\\.\\\\\\\\d]*\",\"name\":\"language.constant.numeric\"},\"operator\":{\"match\":\"-|not|\\\\\\\\*|\\\\\\\\/|%|\\\\\\\\+|<=|>=|<|>|==|!=|and|or|\\\\\\\\?:|\\\\\\\\?|:\",\"name\":\"keyword.operator.soy\"},\"param\":{\"patterns\":[{\"begin\":\"{(param)\\\\\\\\s+(\\\\\\\\w+\\\\\\\\s*\\\\\\\\:)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.soy\"},\"2\":{\"name\":\"variable.parameter.soy\"}},\"end\":\"/}\",\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\"{(param)\\\\\\\\s+(\\\\\\\\w+)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.soy\"},\"2\":{\"name\":\"variable.parameter.soy\"}},\"end\":\"{/(\\\\\\\\1)}\",\"endCaptures\":{\"1\":{\"name\":\"storage.type.soy\"}},\"patterns\":[{\"include\":\"#attribute\"},{\"include\":\"#body\"}]}]},\"print\":{\"begin\":\"{(print)?\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.soy\"}},\"end\":\"}\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"support.function.soy\"}},\"match\":\"\\\\\\\\|\\\\\\\\s*(changeNewlineToBr|truncate|bidiSpanWrap|bidiUnicodeWrap)\"},{\"include\":\"#expression\"}]},\"special-character\":{\"captures\":{\"1\":{\"name\":\"language.support.constant\"}},\"match\":\"{(sp|nil|\\\\\\\\\\\\\\\\r|\\\\\\\\\\\\\\\\n|\\\\\\\\\\\\\\\\t|lb|rb)}\"},\"string\":{\"begin\":\"'\",\"end\":\"'\",\"name\":\"string.quoted.single.soy\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\(?:[\\\\\\\\\\\\\\\\'\\\\\"nrtbf]|u[0-9a-fA-F]{4})\",\"name\":\"constant.character.escape.soy\"}]},\"template\":{\"begin\":\"{(template|deltemplate)\\\\\\\\s([\\\\\\\\w\\\\\\\\.]+)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.soy\"},\"2\":{\"name\":\"entity.name.function.soy\"}},\"end\":\"{(/\\\\\\\\1)}\",\"endCaptures\":{\"1\":{\"name\":\"storage.type.soy\"}},\"patterns\":[{\"begin\":\"{(@param)(\\\\\\\\??)\\\\\\\\s+(\\\\\\\\S+\\\\\\\\s*:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.parameter.soy\"},\"2\":{\"name\":\"storage.modifier.keyword.operator.soy\"},\"3\":{\"name\":\"variable.parameter.soy\"}},\"end\":\"}\",\"name\":\"meta.parameter.soy\",\"patterns\":[{\"include\":\"#type\"}]},{\"include\":\"#variant\"},{\"include\":\"#body\"},{\"include\":\"#attribute\"}]},\"type\":{\"patterns\":[{\"match\":\"any|null|\\\\\\\\?|string|bool|int|float|number|html|uri|js|css|attributes\",\"name\":\"support.type.soy\"},{\"begin\":\"(list|map)(<)\",\"beginCaptures\":{\"1\":{\"name\":\"support.type.soy\"},\"2\":{\"name\":\"support.type.punctuation.soy\"}},\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"support.type.modifier.soy\"}},\"patterns\":[{\"include\":\"#type\"}]}]},\"variable-ref\":{\"match\":\"\\\\\\\\$[\\\\\\\\a-zA-Z_][\\\\\\\\w\\\\\\\\.]*\",\"name\":\"variable.other.soy\"},\"variant\":{\"begin\":\"(variant)=(\\\\\")\",\"beginCaptures\":{\"1\":{\"name\":\"storage.other.attribute.soy\"},\"2\":{\"name\":\"string.double.quoted.soy\"}},\"contentName\":\"string.double.quoted.soy\",\"end\":\"(\\\\\")\",\"endCaptures\":{\"1\":{\"name\":\"string.double.quoted.soy\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"xid\":{\"begin\":\"{(xid)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.soy\"}},\"end\":\"}\",\"patterns\":[{\"include\":\"#expression\"}]}},\"scopeName\":\"text.html.soy\",\"embeddedLangs\":[\"html\"],\"aliases\":[\"closure-templates\"]}`)),r=[...e,n];export{r as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/rKxcFsZi.js",
    "content": "import{d as N,r as g,c as v,C as k,i as o,f as r,x as B,D as K,g as m,j as l,e as w,t as F,v as q,G as b,a5 as H,a0 as J,B as O,E as P,k as Q,aa as W,ad as E,ae as L,s as y}from\"./CU_MfyYc.js\";import{_ as X}from\"./DZb6Dd70.js\";import{_ as Y}from\"./BuljS_lV.js\";import\"./DP9I38t9.js\";const Z={class:\"bg-white dark:bg-gray-800/50 border border-gray-200 dark:border-gray-700 rounded-lg overflow-hidden shadow-sm\"},ee={class:\"flex flex-col items-center justify-center py-12 gap-4\"},ae={key:0},te={class:\"flex flex-col items-center gap-2\"},se={key:1},ne={class:\"text-sm text-gray-900 dark:text-gray-100 font-medium\"},oe={class:\"text-sm text-gray-700 dark:text-gray-300\"},le={class:\"text-sm text-gray-500 dark:text-gray-400\"},ie={class:\"text-sm text-gray-500 dark:text-gray-400\"},re={class:\"flex items-center justify-end gap-1\"},ce=N({__name:\"CandlesTable\",props:{candles:{},loading:{type:Boolean}},emits:[\"refresh\",\"update\",\"delete\"],setup($){const d=$,x=g({column:\"exchange\",direction:\"asc\"}),p=[{key:\"exchange\",label:\"Exchange\",sortable:!0},{key:\"symbol\",label:\"Symbol\",sortable:!0},{key:\"start_date\",label:\"Start Date\"},{key:\"end_date\",label:\"End Date\"},{key:\"actions\",label:\"\",class:\"w-24 text-right\"}],f=v(()=>d.candles);return(c,s)=>{const i=F,n=q,C=Y;return m(),k(\"div\",Z,[o(C,{sort:B(x),\"onUpdate:sort\":s[1]||(s[1]=a=>K(x)?x.value=a:null),rows:B(f),columns:p,loading:c.loading,\"loading-state\":{icon:\"i-heroicons-arrow-path-20-solid\",label:\"Loading candles...\"},progress:{color:\"primary\",animation:\"carousel\"},class:\"w-full\",ui:{td:{base:\"whitespace-nowrap\"},th:{base:\"whitespace-nowrap\"}}},{\"empty-state\":r(()=>[l(\"div\",ee,[c.candles.length===0?(m(),k(\"div\",ae,[s[3]||(s[3]=l(\"span\",{class:\"text-gray-500 dark:text-gray-400 mb-4 block\"},\" Click the button below to fetch existing candles from the database \",-1)),l(\"div\",te,[o(i,{icon:\"i-heroicons-arrow-path\",label:\"Fetch Candles\",onClick:s[0]||(s[0]=a=>c.$emit(\"refresh\"))}),s[2]||(s[2]=l(\"p\",{class:\"text-sm text-gray-500 dark:text-gray-400 mt-2\"},\" Note: This process might take a few minutes depending on the database size \",-1))])])):(m(),k(\"div\",se,s[4]||(s[4]=[l(\"span\",{class:\"text-gray-500 dark:text-gray-400\"},\" No candles found matching your filters \",-1)])))])]),\"exchange-data\":r(({row:a})=>[l(\"span\",ne,b(a.exchange),1)]),\"symbol-data\":r(({row:a})=>[l(\"span\",oe,b(a.symbol),1)]),\"start_date-data\":r(({row:a})=>[l(\"span\",le,b(a.start_date),1)]),\"end_date-data\":r(({row:a})=>[l(\"span\",ie,b(a.end_date),1)]),\"actions-data\":r(({row:a})=>[l(\"div\",re,[a.isSupported?(m(),w(i,{key:1,color:\"teal\",variant:\"ghost\",icon:\"i-heroicons-arrow-path\",size:\"xs\",label:\"Update\",loading:a.isUpdating,onClick:_=>c.$emit(\"update\",a)},null,8,[\"loading\",\"onClick\"])):(m(),w(n,{key:0,text:\"This exchange doesn't support backtesting\"},{default:r(()=>[o(i,{color:\"teal\",variant:\"ghost\",icon:\"i-heroicons-arrow-path\",size:\"xs\",label:\"Update\",loading:a.isUpdating,disabled:!a.isSupported,onClick:_=>c.$emit(\"update\",a)},null,8,[\"loading\",\"disabled\",\"onClick\"])]),_:2},1024)),o(n,{text:\"Delete\"},{default:r(()=>[o(i,{color:\"red\",variant:\"ghost\",icon:\"i-heroicons-trash\",size:\"xs\",label:\"Delete\",loading:a.isDeleting,onClick:_=>c.$emit(\"delete\",a)},null,8,[\"loading\",\"onClick\"])]),_:2},1024)])]),_:1},8,[\"sort\",\"rows\",\"loading\"])])}}}),de={class:\"container mx-auto px-4 pt-16 pb-6 max-w-7xl\"},ue={class:\"flex justify-between items-center mb-6\"},ge={class:\"flex gap-4 mb-6\"},ye=N({__name:\"manage\",setup($){const d=H(),x=J(),p=g(!1),f=g(!1),c=g(new Set),s=g(!1),i=g(null),n=g({exchange:\"\",symbol:\"\"}),C=v(()=>{let e=d.existingCandles;return n.value.exchange&&(e=e.filter(t=>t.exchange.toLowerCase().includes(n.value.exchange.toLowerCase()))),n.value.symbol&&(e=e.filter(t=>t.symbol.toLowerCase().includes(n.value.symbol.toLowerCase()))),e}),a=v(()=>C.value.map(e=>({...e,isSupported:I(e.exchange),isUpdating:d.isSymbolUpdating(e.exchange,e.symbol),isDeleting:c.value.has(D(e))}))),_=v(()=>p.value||f.value),D=e=>`${e.exchange}-${e.symbol}`;async function U(){y(\"success\",\"Fetching latest candle details. This process might take from a few seconds up to a few minutes depending on the database size.\"),f.value=!0;try{await d.fetchExistingCandles()}finally{f.value=!1,y(\"success\",\"Candles information updated successfully\")}}function R(e){i.value=e,s.value=!0}async function z(){if(!i.value)return;const e=i.value,t=D(e);c.value.add(t);try{await d.deleteCandles(e.exchange,e.symbol),y(\"success\",\"Candles deleted successfully\")}catch{y(\"error\",\"Failed to delete candles\")}finally{c.value.delete(t),s.value=!1,i.value=null}}async function j(e){try{await d.updateCandles(e.exchange,e.symbol,e.start_date),y(\"success\",`Started updating candles for ${e.symbol} on ${e.exchange}`)}catch{y(\"error\",\"Failed to start candle update\")}}const I=e=>x.backtestingExchangeNames.includes(e);return O(async()=>{if(!d.existingCandles.length){p.value=!0;try{await d.fetchExistingCandles()}finally{p.value=!1}}}),(e,t)=>{var V,T;const h=F,S=Q,M=X,A=ce,G=W;return m(),k(\"div\",de,[l(\"div\",ue,[o(h,{icon:\"i-heroicons-arrow-left\",variant:\"outline\",to:\"/candles\",label:\"Back\"}),o(h,{icon:\"i-heroicons-arrow-path\",loading:f.value,label:\"Refresh\",onClick:U},null,8,[\"loading\"])]),l(\"div\",ge,[o(S,{modelValue:n.value.exchange,\"onUpdate:modelValue\":t[1]||(t[1]=u=>n.value.exchange=u),class:\"w-64\",icon:\"i-heroicons-magnifying-glass\",placeholder:\"Filter by Exchange\",ui:{icon:{trailing:{pointer:\"\"}}}},{trailing:r(()=>[E(o(h,{color:\"gray\",variant:\"link\",icon:\"i-heroicons-x-mark-20-solid\",padded:!1,onClick:t[0]||(t[0]=u=>n.value.exchange=\"\")},null,512),[[L,n.value.exchange!==\"\"]])]),_:1},8,[\"modelValue\"]),o(S,{modelValue:n.value.symbol,\"onUpdate:modelValue\":t[3]||(t[3]=u=>n.value.symbol=u),icon:\"i-heroicons-magnifying-glass\",placeholder:\"Filter by Symbol\",class:\"w-64\",ui:{icon:{trailing:{pointer:\"\"}}}},{trailing:r(()=>[E(o(h,{color:\"gray\",variant:\"link\",icon:\"i-heroicons-x-mark-20-solid\",padded:!1,onClick:t[2]||(t[2]=u=>n.value.symbol=\"\")},null,512),[[L,n.value.symbol!==\"\"]])]),_:1},8,[\"modelValue\"])]),p.value?(m(),w(M,{key:0,icon:\"i-heroicons-information-circle\",color:\"gray\",title:\"Loading candles...\",description:\"This process might take from a few seconds up to a few minutes.\",class:\"mb-6\"})):P(\"\",!0),o(A,{candles:a.value,loading:_.value,onRefresh:U,onUpdate:j,onDelete:R},null,8,[\"candles\",\"loading\"]),o(G,{modelValue:s.value,\"onUpdate:modelValue\":t[4]||(t[4]=u=>s.value=u),title:\"Delete Candles\",description:`Are you sure you want to delete all candles for \"${(V=i.value)==null?void 0:V.symbol}\" on \"${(T=i.value)==null?void 0:T.exchange}\"?`,type:\"info\"},{default:r(()=>[o(h,{variant:\"solid\",color:\"red\",block:\"\",class:\"sm:w-auto\",label:\"Delete\",onClick:z})]),_:1},8,[\"modelValue\",\"description\"])])}}});export{ye as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/rUbGlJbN.js",
    "content": "import{C as r,j as e,g as t,d as x,r as h,w,K as M,a8 as C,s as j,E as f,ad as A,br as B,x as a,D as $,q as v,F as b,O as k,G as p,ah as V,bv as z,i as D,H as N,e as q,bw as L}from\"./CU_MfyYc.js\";import{u as S}from\"./Cwg39VG_.js\";function H(u,o){return t(),r(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[e(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M4.26 10.147a60.438 60.438 0 0 0-.491 6.347A48.62 48.62 0 0 1 12 20.904a48.62 48.62 0 0 1 8.232-4.41 60.46 60.46 0 0 0-.491-6.347m-15.482 0a50.636 50.636 0 0 0-2.658-.813A59.906 59.906 0 0 1 12 3.493a59.903 59.903 0 0 1 10.399 5.84c-.896.248-1.783.52-2.658.814m-15.482 0A50.717 50.717 0 0 1 12 13.489a50.702 50.702 0 0 1 7.74-3.342M6.75 15a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm0 0v-3.675A55.378 55.378 0 0 1 12 8.443m-7.007 11.55A5.981 5.981 0 0 0 6.75 15.75v-1.5\"})])}function Z(u,o){return t(),r(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[e(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5\"})])}function J(u,o){return t(),r(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[e(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M3.375 19.5h17.25m-17.25 0a1.125 1.125 0 0 1-1.125-1.125M3.375 19.5h1.5C5.496 19.5 6 18.996 6 18.375m-3.75 0V5.625m0 12.75v-1.5c0-.621.504-1.125 1.125-1.125m18.375 2.625V5.625m0 12.75c0 .621-.504 1.125-1.125 1.125m1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125m0 3.75h-1.5A1.125 1.125 0 0 1 18 18.375M20.625 4.5H3.375m17.25 0c.621 0 1.125.504 1.125 1.125M20.625 4.5h-1.5C18.504 4.5 18 5.004 18 5.625m3.75 0v1.5c0 .621-.504 1.125-1.125 1.125M3.375 4.5c-.621 0-1.125.504-1.125 1.125M3.375 4.5h1.5C5.496 4.5 6 5.004 6 5.625m-3.75 0v1.5c0 .621.504 1.125 1.125 1.125m0 0h1.5m-1.5 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125m1.5-3.75C5.496 8.25 6 7.746 6 7.125v-1.5M4.875 8.25C5.496 8.25 6 8.754 6 9.375v1.5m0-5.25v5.25m0-5.25C6 5.004 6.504 4.5 7.125 4.5h9.75c.621 0 1.125.504 1.125 1.125m1.125 2.625h1.5m-1.5 0A1.125 1.125 0 0 1 18 7.125v-1.5m1.125 2.625c-.621 0-1.125.504-1.125 1.125v1.5m2.625-2.625c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125M18 5.625v5.25M7.125 12h9.75m-9.75 0A1.125 1.125 0 0 1 6 10.875M7.125 12C6.504 12 6 12.504 6 13.125m0-2.25C6 11.496 5.496 12 4.875 12M18 10.875c0 .621-.504 1.125-1.125 1.125M18 10.875c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125m-12 5.25v-5.25m0 5.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125m-12 0v-1.5c0-.621-.504-1.125-1.125-1.125M18 18.375v-5.25m0 5.25v-1.5c0-.621.504-1.125 1.125-1.125M18 13.125v1.5c0 .621.504 1.125 1.125 1.125M18 13.125c0-.621.504-1.125 1.125-1.125M6 13.125v1.5c0 .621-.504 1.125-1.125 1.125M6 13.125C6 12.504 5.496 12 4.875 12m-1.5 0h1.5m-1.5 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125M19.125 12h1.5m0 0c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h1.5m14.25 0h1.5\"})])}function R(u,o){return t(),r(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[e(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M12 7.5h1.5m-1.5 3h1.5m-7.5 3h7.5m-7.5 3h7.5m3-9h3.375c.621 0 1.125.504 1.125 1.125V18a2.25 2.25 0 0 1-2.25 2.25M16.5 7.5V18a2.25 2.25 0 0 0 2.25 2.25M16.5 7.5V4.875c0-.621-.504-1.125-1.125-1.125H4.125C3.504 3.75 3 4.254 3 4.875V18a2.25 2.25 0 0 0 2.25 2.25h13.5M6 7.5h3v3H6v-3Z\"})])}function E(u,o){return t(),r(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",viewBox:\"0 0 24 24\",\"stroke-width\":\"1.5\",stroke:\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\"},[e(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",d:\"M18 18.72a9.094 9.094 0 0 0 3.741-.479 3 3 0 0 0-4.682-2.72m.94 3.198.001.031c0 .225-.012.447-.037.666A11.944 11.944 0 0 1 12 21c-2.17 0-4.207-.576-5.963-1.584A6.062 6.062 0 0 1 6 18.719m12 0a5.971 5.971 0 0 0-.941-3.197m0 0A5.995 5.995 0 0 0 12 12.75a5.995 5.995 0 0 0-5.058 2.772m0 0a3 3 0 0 0-4.681 2.72 8.986 8.986 0 0 0 3.74.477m.94-3.197a5.971 5.971 0 0 0-.94 3.197M15 6.75a3 3 0 1 1-6 0 3 3 0 0 1 6 0Zm6 3a2.25 2.25 0 1 1-4.5 0 2.25 2.25 0 0 1 4.5 0Zm-13.5 0a2.25 2.25 0 1 1-4.5 0 2.25 2.25 0 0 1 4.5 0Z\"})])}const T=\"\"+new URL(\"search-by-algolia-light-background.B_nenvU-.svg\",import.meta.url).href,U={class:\"w-full flex justify-center\"},F={class:\"mb-4 mt-8 px-2 w-full md:w-2/3\"},G={class:\"relative\"},K={key:0,class:\"relative\"},O={key:0,class:\"w-full absolute bg-white p-2 mt-2 border border-gray-300 rounded shadow-md z-50\"},P={key:1,class:\"w-full absolute bg-white p-2 mt-2 border border-gray-300 rounded shadow-md z-50\"},I={key:2,class:\"w-full absolute bg-white px-2 py-2 mt-2 rounded shadow-lg border border-gray-300 max-h-64 overflow-y-auto z-50\"},W=[\"href\"],Q={class:\"px-2 py-4 rounded text-gray-600 hover:bg-indigo-500 hover:text-white\"},X={key:3,class:\"w-full absolute bg-white p-2 mt-2 border border-gray-300 rounded shadow-md z-50\"},Y=x({__name:\"HelpSearch\",setup(u){const o=h(!1),m=h(!1),n=h(!1),c=h([]),d=h(!1),l=h(\"\");w(l,M.debounce(()=>{d.value=!1},1e3)),w(d,g=>{!g&&l.value?y(l.value):c.value&&l.value.length===0&&(c.value=[],o.value=!1)});const y=async g=>{n.value=!1,m.value=!0;const{data:s,error:i}=await C(\"/system/help-search\",{query:g},!0);if(i.value&&i.value.statusCode!==200){j(\"error\",i.value.message),o.value=!0,m.value=!1,n.value=!0;return}const _=s.value;o.value=!0,c.value=_,m.value=!1};return(g,s)=>(t(),r(\"div\",U,[e(\"div\",F,[e(\"div\",G,[s[2]||(s[2]=e(\"div\",{class:\"absolute left-2 inset-y-0 pl-3 flex items-center\"},[e(\"svg\",{class:\"fill-current h-6 w-6 text-gray-400\",xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 20 20\"},[e(\"path\",{d:\"M12.9 14.32a8 8 0 1 1 1.41-1.41l5.35 5.33-1.42 1.42-5.33-5.34zM8 14A6 6 0 1 0 8 2a6 6 0 0 0 0 12z\"})])],-1)),A(e(\"input\",{\"onUpdate:modelValue\":s[0]||(s[0]=i=>$(l)?l.value=i:null),class:\"w-full pl-14 pr-4 py-4 rounded-full outline-none border-2 border-gray-200 focus:border-indigo-600 focus:ring-0 dark:bg-gray-800 dark:border-gray-900\",type:\"search\",placeholder:\"Search...\",onInput:s[1]||(s[1]=i=>d.value=!0)},null,544),[[B,a(l)]])]),a(l)?(t(),r(\"div\",K,[a(m)?(t(),r(\"div\",O,s[3]||(s[3]=[e(\"div\",{class:\"py-4 px-4 text-gray-600\"},\" Searching ... \",-1)]))):a(n)&&a(o)?(t(),r(\"div\",P,s[4]||(s[4]=[e(\"div\",{class:\"py-4 px-4 text-gray-600 flex items-center text-sm md:text-base\"},[e(\"span\",{class:\"mr-4 text-red-500\"},[e(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",class:\"h-6 w-6\",fill:\"none\",viewBox:\"0 0 24 24\",stroke:\"currentColor\"},[e(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",\"stroke-width\":\"2\",d:\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z\"})])]),v(\" Something went wrong \")],-1)]))):a(c).length!=0&&a(o)?(t(),r(\"div\",I,[(t(!0),r(b,null,k(a(c),i=>(t(),r(\"div\",{key:i.id},[e(\"a\",{href:\"https://jesse.trade/help/faq/\"+i.slug,target:\"_blank\"},[e(\"div\",Q,p(i.title),1)],8,W)]))),128)),s[5]||(s[5]=e(\"div\",{class:\"flex justify-end p-2\"},[e(\"img\",{src:T,alt:\"search by Algolia\"})],-1))])):a(c).length===0&&a(o)?(t(),r(\"div\",X,s[6]||(s[6]=[e(\"div\",{class:\"py-4 px-4 text-gray-600 flex items-center text-sm md:text-base\"},[e(\"span\",{class:\"mr-4 text-yellow-300\"},[e(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",class:\"h-6 w-6\",fill:\"none\",viewBox:\"0 0 24 24\",stroke:\"currentColor\"},[e(\"path\",{\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",\"stroke-width\":\"2\",d:\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z\"})])]),v(\" No items were found for the entered phrase. \")],-1)]))):f(\"\",!0)])):f(\"\",!0)])]))}}),e1={class:\"container select-none\"},t1={role:\"list\",class:\"border-gray-200 py-6 grid grid-cols-1 gap-6 sm:grid-cols-2\"},s1={class:\"relative -m-2 p-2 flex items-center space-x-4 rounded-xl hover:bg-gray-50 dark:hover:bg-gray-800 focus-within:ring-2 focus-within:ring-indigo-500\"},r1={class:\"text-sm font-medium text-gray-900 dark:text-gray-100\"},o1=[\"href\"],a1={class:\"mt-1 text-sm text-gray-600 dark:text-gray-400\"},i1=x({__name:\"index\",setup(u){S({title:\"Dashboard - Jesse\"});const o=V([{title:\"Documentation\",description:\"Our friendly documentation is the best place to find information about Jesse\",icon:H,background:\"bg-pink-500\",url:\"https://docs.jesse.trade/\"},{title:\"Tutorials\",description:\"Learn by watching the creator of Jesse writing strategies step-by-step\",icon:J,background:\"bg-yellow-500\",url:\"https://jesse.trade/youtube\"},{title:\"Discord\",description:\"Join our friendly Discord community filled with awesome quants\",icon:E,background:\"bg-green-500\",url:\"https://jesse.trade/discord\"},{title:\"Github\",description:\"Curios to see the source code?\",icon:z,background:\"bg-blue-500\",url:\"https://github.com/jesse-ai/jesse\"},{title:\"News\",description:\"Keep up with our latest developments\",icon:R,background:\"bg-indigo-500\",url:\"https://jesse.trade/blog\"},{title:\"Roadmap\",description:\"Wanna know what’s coming next and when?\",icon:Z,background:\"bg-purple-500\",url:\"https://jesse.trade/roadmap\"}]);return(m,n)=>{const c=Y;return t(),r(\"div\",e1,[n[2]||(n[2]=e(\"div\",{class:\"text-center mt-16\"},[e(\"h3\",null,[v(\" Need help? Check out the \"),e(\"a\",{href:\"http://docs.jesse.trade\",class:\"text-indigo-600 dark:text-indigo-400 hover:underline\",target:\"_blank\"},\" docs \"),v(\" or search the help center: \")])],-1)),D(c),e(\"div\",null,[e(\"ul\",t1,[(t(!0),r(b,null,k(a(o),(d,l)=>(t(),r(\"li\",{key:l,class:\"flow-root\"},[e(\"div\",s1,[e(\"div\",{class:N([d.background,\"flex-shrink-0 flex items-center justify-center h-16 w-16 rounded-lg\"])},[(t(),q(L(d.icon),{class:\"h-6 w-6 text-white\",\"aria-hidden\":\"true\"}))],2),e(\"div\",null,[e(\"h3\",r1,[e(\"a\",{href:d.url,target:\"_blank\",class:\"focus:outline-none\"},[n[0]||(n[0]=e(\"span\",{class:\"absolute inset-0\",\"aria-hidden\":\"true\"},null,-1)),v(\" \"+p(d.title),1),n[1]||(n[1]=e(\"span\",{\"aria-hidden\":\"true\"},\" →\",-1))],8,o1)]),e(\"p\",a1,p(d.description),1)])])]))),128))])])])}}});export{i1 as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/s0YP2YF7.js",
    "content": "import{T as k,l as v,d as C,s as m}from\"./9VOnL4Iz.js\";import{d as w,a as b,c as x,r as T,w as f,B as S,o as B,C as l,j as o,F as g,O as D,n as M,g as i,X as O,G as W}from\"./CU_MfyYc.js\";const q={class:\"mt-2\"},E={class:\"ml-2\"},j=w({__name:\"EquityCurve\",props:{data:{}},setup(y){const _=b(),c=x(()=>_.value),s=T();let t=null,a=[];const u=y;f(()=>u.data,async e=>{if(t!==null){if(a.length!==e.length){h(),await M(),await d();return}for(let n=0;n<e.length;n++)a[n].applyOptions({lineWidth:2,color:e[n].color}),a[n].setData(e[n].data);t.timeScale().fitContent()}},{deep:!0}),f(c,e=>{p(e)}),S(async()=>{await d()});async function d(){m.width=s.value.clientWidth,t=k(s.value,m);for(const e of u.data){const n=t.addLineSeries({lineWidth:2,color:e.color});n.setData(e.data),a.push(n)}t.timeScale().fitContent(),p(c.value)}B(()=>{h()});function h(){t!==null&&(t.remove(),t=null),a&&(a=[])}function p(e){t===null||a===null||t.applyOptions(e===\"light\"?v.chart:C.chart)}return(e,n)=>(i(),l(g,null,[o(\"div\",{ref_key:\"chartContainer\",ref:s,class:\"rounded overflow-hidden border-2 border-gray-100 dark:border-gray-800\"},null,512),o(\"div\",q,[(i(!0),l(g,null,D(e.data,r=>(i(),l(\"span\",{key:r.name,class:\"text-xs mr-2 rounded bg-stone-50 dark:bg-stone-800 p-1\"},[o(\"span\",{class:\"inline-block\",style:O({backgroundColor:r.color,width:\"25px\",height:\"10px\"})},null,4),o(\"span\",E,W(r.name),1)]))),128))])],64))}});export{j as _};\n"
  },
  {
    "path": "jesse/static/_nuxt/sacFqUAJ.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"CodeQL\",\"fileTypes\":[\"ql\",\"qll\"],\"name\":\"codeql\",\"patterns\":[{\"include\":\"#module-member\"}],\"repository\":{\"abstract\":{\"match\":\"\\\\\\\\b(?:abstract)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"storage.modifier.abstract.ql\"},\"additional\":{\"match\":\"\\\\\\\\b(?:additional)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"storage.modifier.additional.ql\"},\"and\":{\"match\":\"\\\\\\\\b(?:and)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.other.and.ql\"},\"annotation\":{\"patterns\":[{\"include\":\"#bindingset-annotation\"},{\"include\":\"#language-annotation\"},{\"include\":\"#pragma-annotation\"},{\"include\":\"#annotation-keyword\"}]},\"annotation-keyword\":{\"patterns\":[{\"include\":\"#abstract\"},{\"include\":\"#additional\"},{\"include\":\"#bindingset\"},{\"include\":\"#cached\"},{\"include\":\"#default\"},{\"include\":\"#deprecated\"},{\"include\":\"#external\"},{\"include\":\"#final\"},{\"include\":\"#language\"},{\"include\":\"#library\"},{\"include\":\"#override\"},{\"include\":\"#pragma\"},{\"include\":\"#private\"},{\"include\":\"#query\"},{\"include\":\"#signature\"},{\"include\":\"#transient\"}]},\"any\":{\"match\":\"\\\\\\\\b(?:any)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.quantifier.any.ql\"},\"arithmetic-operator\":{\"match\":\"\\\\\\\\+|-|\\\\\\\\*|/|%\",\"name\":\"keyword.operator.arithmetic.ql\"},\"as\":{\"match\":\"\\\\\\\\b(?:as)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.other.as.ql\"},\"asc\":{\"match\":\"\\\\\\\\b(?:asc)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.order.asc.ql\"},\"at-lower-id\":{\"match\":\"@[a-z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_])))\"},\"avg\":{\"match\":\"\\\\\\\\b(?:avg)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.aggregate.avg.ql\"},\"bindingset\":{\"match\":\"\\\\\\\\b(?:bindingset)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"storage.modifier.bindingset.ql\"},\"bindingset-annotation\":{\"begin\":\"((?:\\\\\\\\b(?:bindingset)(?:(?!(?:[0-9A-Za-z_])))))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#bindingset\"}]}},\"end\":\"(?!(?:\\\\\\\\s|$|(?://|/\\\\\\\\*))|\\\\\\\\[)|(?<=\\\\\\\\])\",\"name\":\"meta.block.bindingset-annotation.ql\",\"patterns\":[{\"include\":\"#bindingset-annotation-body\"},{\"include\":\"#non-context-sensitive\"}]},\"bindingset-annotation-body\":{\"begin\":\"((?:\\\\\\\\[))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#open-bracket\"}]}},\"end\":\"((?:\\\\\\\\]))\",\"endCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#close-bracket\"}]}},\"name\":\"meta.block.bindingset-annotation-body.ql\",\"patterns\":[{\"include\":\"#non-context-sensitive\"},{\"match\":\"(?:\\\\\\\\b[A-Za-z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_]))))\",\"name\":\"variable.parameter.ql\"}]},\"boolean\":{\"match\":\"\\\\\\\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.type.boolean.ql\"},\"by\":{\"match\":\"\\\\\\\\b(?:by)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.order.by.ql\"},\"cached\":{\"match\":\"\\\\\\\\b(?:cached)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"storage.modifier.cached.ql\"},\"class\":{\"match\":\"\\\\\\\\b(?:class)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.other.class.ql\"},\"class-body\":{\"begin\":\"((?:\\\\\\\\{))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#open-brace\"}]}},\"end\":\"((?:\\\\\\\\}))\",\"endCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#close-brace\"}]}},\"name\":\"meta.block.class-body.ql\",\"patterns\":[{\"include\":\"#class-member\"}]},\"class-declaration\":{\"begin\":\"((?:\\\\\\\\b(?:class)(?:(?!(?:[0-9A-Za-z_])))))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#class\"}]}},\"end\":\"(?<=\\\\\\\\}|;)\",\"name\":\"meta.block.class-declaration.ql\",\"patterns\":[{\"include\":\"#class-body\"},{\"include\":\"#extends-clause\"},{\"include\":\"#non-context-sensitive\"},{\"match\":\"(?:\\\\\\\\b[A-Z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_]))))\",\"name\":\"entity.name.type.class.ql\"}]},\"class-member\":{\"patterns\":[{\"include\":\"#predicate-or-field-declaration\"},{\"include\":\"#annotation\"},{\"include\":\"#non-context-sensitive\"}]},\"close-angle\":{\"match\":\">\",\"name\":\"punctuation.anglebracket.close.ql\"},\"close-brace\":{\"match\":\"\\\\\\\\}\",\"name\":\"punctuation.curlybrace.close.ql\"},\"close-bracket\":{\"match\":\"\\\\\\\\]\",\"name\":\"punctuation.squarebracket.close.ql\"},\"close-paren\":{\"match\":\"\\\\\\\\)\",\"name\":\"punctuation.parenthesis.close.ql\"},\"comma\":{\"match\":\",\",\"name\":\"punctuation.separator.comma.ql\"},\"comment\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\\\\\\\\*\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.documentation.ql\",\"patterns\":[{\"begin\":\"(?<=/\\\\\\\\*\\\\\\\\*)([^*]|\\\\\\\\*(?!/))*$\",\"patterns\":[{\"match\":\"\\\\\\\\G\\\\\\\\s*(@\\\\\\\\S+)\",\"name\":\"keyword.tag.ql\"}],\"while\":\"(^|\\\\\\\\G)\\\\\\\\s*([^*]|\\\\\\\\*(?!/))(?=([^*]|[*](?!/))*$)\"}]},{\"begin\":\"/\\\\\\\\*\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.ql\"},{\"match\":\"//.*$\",\"name\":\"comment.line.double-slash.ql\"}]},\"comment-start\":{\"match\":\"//|/\\\\\\\\*\"},\"comparison-operator\":{\"match\":\"=|\\\\\\\\!\\\\\\\\=\",\"name\":\"keyword.operator.comparison.ql\"},\"concat\":{\"match\":\"\\\\\\\\b(?:concat)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.aggregate.concat.ql\"},\"count\":{\"match\":\"\\\\\\\\b(?:count)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.aggregate.count.ql\"},\"date\":{\"match\":\"\\\\\\\\b(?:date)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.type.date.ql\"},\"default\":{\"match\":\"\\\\\\\\b(?:default)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"storage.modifier.default.ql\"},\"deprecated\":{\"match\":\"\\\\\\\\b(?:deprecated)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"storage.modifier.deprecated.ql\"},\"desc\":{\"match\":\"\\\\\\\\b(?:desc)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.order.desc.ql\"},\"dont-care\":{\"match\":\"\\\\\\\\b(?:_)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"variable.language.dont-care.ql\"},\"dot\":{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.accessor.ql\"},\"dotdot\":{\"match\":\"\\\\\\\\.\\\\\\\\.\",\"name\":\"punctuation.operator.range.ql\"},\"else\":{\"match\":\"\\\\\\\\b(?:else)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.other.else.ql\"},\"end-of-as-clause\":{\"match\":\"(?:(?<=(?:[0-9A-Za-z_]))(?!(?:[0-9A-Za-z_]))(?<!(?<!(?:[0-9A-Za-z_]))as))|(?=\\\\\\\\s*(?!(?://|/\\\\\\\\*)|(?:\\\\\\\\b[A-Za-z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_])))))\\\\\\\\S)|(?=\\\\\\\\s*(?:(?:(?:\\\\\\\\b(?:_)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:and)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:any)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:as)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:asc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:avg)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:by)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:class)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:concat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:count)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:desc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:else)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:exists)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:extends)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:false)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:forall)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:forex)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:if)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:implies)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:import)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:in)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:max)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:min)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:module)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:none)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:not)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:or)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:order)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:rank)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:result)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:sum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:super)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:then)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:this)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:true)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:unique)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:where)(?:(?!(?:[0-9A-Za-z_])))))))\"},\"end-of-id\":{\"match\":\"(?!(?:[0-9A-Za-z_]))\"},\"exists\":{\"match\":\"\\\\\\\\b(?:exists)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.quantifier.exists.ql\"},\"expr-as-clause\":{\"begin\":\"((?:\\\\\\\\b(?:as)(?:(?!(?:[0-9A-Za-z_])))))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#as\"}]}},\"end\":\"(?:(?:(?<=(?:[0-9A-Za-z_]))(?!(?:[0-9A-Za-z_]))(?<!(?<!(?:[0-9A-Za-z_]))as))|(?=\\\\\\\\s*(?!(?://|/\\\\\\\\*)|(?:\\\\\\\\b[A-Za-z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_])))))\\\\\\\\S)|(?=\\\\\\\\s*(?:(?:(?:\\\\\\\\b(?:_)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:and)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:any)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:as)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:asc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:avg)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:by)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:class)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:concat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:count)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:desc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:else)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:exists)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:extends)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:false)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:forall)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:forex)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:if)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:implies)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:import)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:in)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:max)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:min)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:module)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:none)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:not)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:or)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:order)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:rank)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:result)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:sum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:super)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:then)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:this)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:true)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:unique)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))))))\",\"name\":\"meta.block.expr-as-clause.ql\",\"patterns\":[{\"include\":\"#non-context-sensitive\"},{\"match\":\"(?:\\\\\\\\b[A-Za-z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_]))))\",\"name\":\"variable.other.ql\"}]},\"extends\":{\"match\":\"\\\\\\\\b(?:extends)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.other.extends.ql\"},\"extends-clause\":{\"begin\":\"((?:\\\\\\\\b(?:extends)(?:(?!(?:[0-9A-Za-z_])))))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#extends\"}]}},\"end\":\"(?=\\\\\\\\{)\",\"name\":\"meta.block.extends-clause.ql\",\"patterns\":[{\"include\":\"#non-context-sensitive\"},{\"match\":\"(?:\\\\\\\\b[A-Za-z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_]))))\",\"name\":\"entity.name.type.ql\"}]},\"external\":{\"match\":\"\\\\\\\\b(?:external)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"storage.modifier.external.ql\"},\"false\":{\"match\":\"\\\\\\\\b(?:false)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"constant.language.boolean.false.ql\"},\"final\":{\"match\":\"\\\\\\\\b(?:final)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"storage.modifier.final.ql\"},\"float\":{\"match\":\"\\\\\\\\b(?:float)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.type.float.ql\"},\"float-literal\":{\"match\":\"-?[0-9]+\\\\\\\\.[0-9]+(?![0-9])\",\"name\":\"constant.numeric.decimal.ql\"},\"forall\":{\"match\":\"\\\\\\\\b(?:forall)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.quantifier.forall.ql\"},\"forex\":{\"match\":\"\\\\\\\\b(?:forex)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.quantifier.forex.ql\"},\"from\":{\"match\":\"\\\\\\\\b(?:from)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.other.from.ql\"},\"from-section\":{\"begin\":\"((?:\\\\\\\\b(?:from)(?:(?!(?:[0-9A-Za-z_])))))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#from\"}]}},\"end\":\"(?=(?:\\\\\\\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:where)(?:(?!(?:[0-9A-Za-z_])))))\",\"name\":\"meta.block.from-section.ql\",\"patterns\":[{\"include\":\"#non-context-sensitive\"},{\"match\":\"(?:\\\\\\\\b[A-Z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_]))))(?=\\\\\\\\s*(?:,|(?:\\\\\\\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|$))\",\"name\":\"variable.parameter.ql\"},{\"include\":\"#module-qualifier\"},{\"match\":\"(?:\\\\\\\\b[A-Z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_]))))\",\"name\":\"entity.name.type.ql\"},{\"match\":\"(?:\\\\\\\\b[a-z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_]))))\",\"name\":\"variable.parameter.ql\"}]},\"id-character\":{\"match\":\"[0-9A-Za-z_]\"},\"if\":{\"match\":\"\\\\\\\\b(?:if)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.other.if.ql\"},\"implements\":{\"match\":\"\\\\\\\\b(?:implements)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.other.implements.ql\"},\"implements-clause\":{\"begin\":\"((?:\\\\\\\\b(?:implements)(?:(?!(?:[0-9A-Za-z_])))))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#implements\"}]}},\"end\":\"(?=\\\\\\\\{)\",\"name\":\"meta.block.implements-clause.ql\",\"patterns\":[{\"include\":\"#non-context-sensitive\"},{\"match\":\"(?:\\\\\\\\b[A-Za-z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_]))))\",\"name\":\"entity.name.type.ql\"}]},\"implies\":{\"match\":\"\\\\\\\\b(?:implies)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.other.implies.ql\"},\"import\":{\"match\":\"\\\\\\\\b(?:import)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.other.import.ql\"},\"import-as-clause\":{\"begin\":\"((?:\\\\\\\\b(?:as)(?:(?!(?:[0-9A-Za-z_])))))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#as\"}]}},\"end\":\"(?:(?:(?<=(?:[0-9A-Za-z_]))(?!(?:[0-9A-Za-z_]))(?<!(?<!(?:[0-9A-Za-z_]))as))|(?=\\\\\\\\s*(?!(?://|/\\\\\\\\*)|(?:\\\\\\\\b[A-Za-z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_])))))\\\\\\\\S)|(?=\\\\\\\\s*(?:(?:(?:\\\\\\\\b(?:_)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:and)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:any)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:as)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:asc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:avg)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:by)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:class)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:concat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:count)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:desc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:else)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:exists)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:extends)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:false)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:forall)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:forex)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:if)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:implies)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:import)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:in)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:max)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:min)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:module)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:none)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:not)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:or)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:order)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:rank)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:result)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:sum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:super)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:then)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:this)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:true)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:unique)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))))))\",\"name\":\"meta.block.import-as-clause.ql\",\"patterns\":[{\"include\":\"#non-context-sensitive\"},{\"match\":\"(?:\\\\\\\\b[A-Za-z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_]))))\",\"name\":\"entity.name.type.namespace.ql\"}]},\"import-directive\":{\"begin\":\"((?:\\\\\\\\b(?:import)(?:(?!(?:[0-9A-Za-z_])))))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#import\"}]}},\"end\":\"(?<!\\\\\\\\bimport)(?<=(?:\\\\\\\\>)|[A-Za-z0-9_])(?!\\\\\\\\s*(\\\\\\\\.|\\\\\\\\:\\\\\\\\:|\\\\\\\\,|(?:<)))\",\"name\":\"meta.block.import-directive.ql\",\"patterns\":[{\"include\":\"#instantiation-args\"},{\"include\":\"#non-context-sensitive\"},{\"match\":\"(?:\\\\\\\\b[A-Za-z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_]))))\",\"name\":\"entity.name.type.namespace.ql\"}]},\"in\":{\"match\":\"\\\\\\\\b(?:in)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.other.in.ql\"},\"instanceof\":{\"match\":\"\\\\\\\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.other.instanceof.ql\"},\"instantiation-args\":{\"begin\":\"((?:<))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#open-angle\"}]}},\"end\":\"((?:>))\",\"endCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#close-angle\"}]}},\"name\":\"meta.type.parameters.ql\",\"patterns\":[{\"include\":\"#instantiation-args\"},{\"include\":\"#non-context-sensitive\"},{\"match\":\"(?:\\\\\\\\b[A-Za-z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_]))))\",\"name\":\"entity.name.type.namespace.ql\"}]},\"int\":{\"match\":\"\\\\\\\\b(?:int)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.type.int.ql\"},\"int-literal\":{\"match\":\"-?[0-9]+(?![0-9])\",\"name\":\"constant.numeric.decimal.ql\"},\"keyword\":{\"patterns\":[{\"include\":\"#dont-care\"},{\"include\":\"#and\"},{\"include\":\"#any\"},{\"include\":\"#as\"},{\"include\":\"#asc\"},{\"include\":\"#avg\"},{\"include\":\"#boolean\"},{\"include\":\"#by\"},{\"include\":\"#class\"},{\"include\":\"#concat\"},{\"include\":\"#count\"},{\"include\":\"#date\"},{\"include\":\"#desc\"},{\"include\":\"#else\"},{\"include\":\"#exists\"},{\"include\":\"#extends\"},{\"include\":\"#false\"},{\"include\":\"#float\"},{\"include\":\"#forall\"},{\"include\":\"#forex\"},{\"include\":\"#from\"},{\"include\":\"#if\"},{\"include\":\"#implies\"},{\"include\":\"#import\"},{\"include\":\"#in\"},{\"include\":\"#instanceof\"},{\"include\":\"#int\"},{\"include\":\"#max\"},{\"include\":\"#min\"},{\"include\":\"#module\"},{\"include\":\"#newtype\"},{\"include\":\"#none\"},{\"include\":\"#not\"},{\"include\":\"#or\"},{\"include\":\"#order\"},{\"include\":\"#predicate\"},{\"include\":\"#rank\"},{\"include\":\"#result\"},{\"include\":\"#select\"},{\"include\":\"#strictconcat\"},{\"include\":\"#strictcount\"},{\"include\":\"#strictsum\"},{\"include\":\"#string\"},{\"include\":\"#sum\"},{\"include\":\"#super\"},{\"include\":\"#then\"},{\"include\":\"#this\"},{\"include\":\"#true\"},{\"include\":\"#unique\"},{\"include\":\"#where\"}]},\"language\":{\"match\":\"\\\\\\\\b(?:language)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"storage.modifier.language.ql\"},\"language-annotation\":{\"begin\":\"((?:\\\\\\\\b(?:language)(?:(?!(?:[0-9A-Za-z_])))))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#language\"}]}},\"end\":\"(?!(?:\\\\\\\\s|$|(?://|/\\\\\\\\*))|\\\\\\\\[)|(?<=\\\\\\\\])\",\"name\":\"meta.block.language-annotation.ql\",\"patterns\":[{\"include\":\"#language-annotation-body\"},{\"include\":\"#non-context-sensitive\"}]},\"language-annotation-body\":{\"begin\":\"((?:\\\\\\\\[))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#open-bracket\"}]}},\"end\":\"((?:\\\\\\\\]))\",\"endCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#close-bracket\"}]}},\"name\":\"meta.block.language-annotation-body.ql\",\"patterns\":[{\"include\":\"#non-context-sensitive\"},{\"match\":\"\\\\\\\\b(?:monotonicAggregates)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"storage.modifier.ql\"}]},\"library\":{\"match\":\"\\\\\\\\b(?:library)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"storage.modifier.library.ql\"},\"literal\":{\"patterns\":[{\"include\":\"#float-literal\"},{\"include\":\"#int-literal\"},{\"include\":\"#string-literal\"}]},\"lower-id\":{\"match\":\"\\\\\\\\b[a-z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_])))\"},\"max\":{\"match\":\"\\\\\\\\b(?:max)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.aggregate.max.ql\"},\"min\":{\"match\":\"\\\\\\\\b(?:min)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.aggregate.min.ql\"},\"module\":{\"match\":\"\\\\\\\\b(?:module)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.other.module.ql\"},\"module-body\":{\"begin\":\"((?:\\\\\\\\{))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#open-brace\"}]}},\"end\":\"((?:\\\\\\\\}))\",\"endCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#close-brace\"}]}},\"name\":\"meta.block.module-body.ql\",\"patterns\":[{\"include\":\"#module-member\"}]},\"module-declaration\":{\"begin\":\"((?:\\\\\\\\b(?:module)(?:(?!(?:[0-9A-Za-z_])))))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#module\"}]}},\"end\":\"(?<=\\\\\\\\}|;)\",\"name\":\"meta.block.module-declaration.ql\",\"patterns\":[{\"include\":\"#module-body\"},{\"include\":\"#implements-clause\"},{\"include\":\"#non-context-sensitive\"},{\"match\":\"(?:\\\\\\\\b[A-Za-z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_]))))\",\"name\":\"entity.name.type.namespace.ql\"}]},\"module-member\":{\"patterns\":[{\"include\":\"#import-directive\"},{\"include\":\"#import-as-clause\"},{\"include\":\"#module-declaration\"},{\"include\":\"#newtype-declaration\"},{\"include\":\"#newtype-branch-name-with-prefix\"},{\"include\":\"#predicate-parameter-list\"},{\"include\":\"#predicate-body\"},{\"include\":\"#class-declaration\"},{\"include\":\"#select-clause\"},{\"include\":\"#predicate-or-field-declaration\"},{\"include\":\"#non-context-sensitive\"},{\"include\":\"#annotation\"}]},\"module-qualifier\":{\"match\":\"(?:\\\\\\\\b[A-Za-z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_]))))(?=\\\\\\\\s*\\\\\\\\:\\\\\\\\:)\",\"name\":\"entity.name.type.namespace.ql\"},\"newtype\":{\"match\":\"\\\\\\\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.other.newtype.ql\"},\"newtype-branch-name-with-prefix\":{\"begin\":\"\\\\\\\\=|(?:\\\\\\\\b(?:or)(?:(?!(?:[0-9A-Za-z_]))))\",\"beginCaptures\":{\"0\":{\"patterns\":[{\"include\":\"#or\"},{\"include\":\"#comparison-operator\"}]}},\"end\":\"(?:\\\\\\\\b[A-Z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_]))))\",\"endCaptures\":{\"0\":{\"name\":\"entity.name.type.ql\"}},\"name\":\"meta.block.newtype-branch-name-with-prefix.ql\",\"patterns\":[{\"include\":\"#non-context-sensitive\"}]},\"newtype-declaration\":{\"begin\":\"((?:\\\\\\\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_])))))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#newtype\"}]}},\"end\":\"(?:\\\\\\\\b[A-Z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_]))))\",\"endCaptures\":{\"0\":{\"name\":\"entity.name.type.ql\"}},\"name\":\"meta.block.newtype-declaration.ql\",\"patterns\":[{\"include\":\"#non-context-sensitive\"}]},\"non-context-sensitive\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#literal\"},{\"include\":\"#operator-or-punctuation\"},{\"include\":\"#keyword\"}]},\"none\":{\"match\":\"\\\\\\\\b(?:none)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.quantifier.none.ql\"},\"not\":{\"match\":\"\\\\\\\\b(?:not)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.other.not.ql\"},\"open-angle\":{\"match\":\"<\",\"name\":\"punctuation.anglebracket.open.ql\"},\"open-brace\":{\"match\":\"\\\\\\\\{\",\"name\":\"punctuation.curlybrace.open.ql\"},\"open-bracket\":{\"match\":\"\\\\\\\\[\",\"name\":\"punctuation.squarebracket.open.ql\"},\"open-paren\":{\"match\":\"\\\\\\\\(\",\"name\":\"punctuation.parenthesis.open.ql\"},\"operator-or-punctuation\":{\"patterns\":[{\"include\":\"#relational-operator\"},{\"include\":\"#comparison-operator\"},{\"include\":\"#arithmetic-operator\"},{\"include\":\"#comma\"},{\"include\":\"#semicolon\"},{\"include\":\"#dot\"},{\"include\":\"#dotdot\"},{\"include\":\"#pipe\"},{\"include\":\"#open-paren\"},{\"include\":\"#close-paren\"},{\"include\":\"#open-brace\"},{\"include\":\"#close-brace\"},{\"include\":\"#open-bracket\"},{\"include\":\"#close-bracket\"},{\"include\":\"#open-angle\"},{\"include\":\"#close-angle\"}]},\"or\":{\"match\":\"\\\\\\\\b(?:or)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.other.or.ql\"},\"order\":{\"match\":\"\\\\\\\\b(?:order)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.order.order.ql\"},\"override\":{\"match\":\"\\\\\\\\b(?:override)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"storage.modifier.override.ql\"},\"pipe\":{\"match\":\"\\\\\\\\|\",\"name\":\"punctuation.separator.pipe.ql\"},\"pragma\":{\"match\":\"\\\\\\\\b(?:pragma)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"storage.modifier.pragma.ql\"},\"pragma-annotation\":{\"begin\":\"((?:\\\\\\\\b(?:pragma)(?:(?!(?:[0-9A-Za-z_])))))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#pragma\"}]}},\"end\":\"(?!(?:\\\\\\\\s|$|(?://|/\\\\\\\\*))|\\\\\\\\[)|(?<=\\\\\\\\])\",\"name\":\"meta.block.pragma-annotation.ql\",\"patterns\":[{\"include\":\"#pragma-annotation-body\"},{\"include\":\"#non-context-sensitive\"}]},\"pragma-annotation-body\":{\"begin\":\"((?:\\\\\\\\[))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#open-bracket\"}]}},\"end\":\"((?:\\\\\\\\]))\",\"endCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#close-bracket\"}]}},\"name\":\"meta.block.pragma-annotation-body.ql\",\"patterns\":[{\"match\":\"\\\\\\\\b(?:inline|noinline|nomagic|noopt)\\\\\\\\b\",\"name\":\"storage.modifier.ql\"}]},\"predicate\":{\"match\":\"\\\\\\\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.other.predicate.ql\"},\"predicate-body\":{\"begin\":\"((?:\\\\\\\\{))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#open-brace\"}]}},\"end\":\"((?:\\\\\\\\}))\",\"endCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#close-brace\"}]}},\"name\":\"meta.block.predicate-body.ql\",\"patterns\":[{\"include\":\"#predicate-body-contents\"}]},\"predicate-body-contents\":{\"patterns\":[{\"include\":\"#expr-as-clause\"},{\"include\":\"#non-context-sensitive\"},{\"include\":\"#module-qualifier\"},{\"match\":\"(?:\\\\\\\\b[a-z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_]))))\\\\\\\\s*(?:\\\\\\\\*|\\\\\\\\+)?\\\\\\\\s*(?=\\\\\\\\()\",\"name\":\"entity.name.function.ql\"},{\"match\":\"(?:\\\\\\\\b[a-z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_]))))\",\"name\":\"variable.other.ql\"},{\"match\":\"(?:\\\\\\\\b[A-Z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_]))))\",\"name\":\"entity.name.type.ql\"}]},\"predicate-or-field-declaration\":{\"begin\":\"(?:(?=(?:\\\\\\\\b[A-Za-z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_])))))(?!(?:(?:(?:\\\\\\\\b(?:_)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:and)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:any)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:as)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:asc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:avg)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:by)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:class)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:concat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:count)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:desc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:else)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:exists)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:extends)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:false)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:forall)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:forex)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:if)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:implies)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:import)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:in)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:max)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:min)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:module)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:none)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:not)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:or)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:order)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:rank)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:result)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:sum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:super)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:then)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:this)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:true)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:unique)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))))|(?:(?:(?:\\\\\\\\b(?:abstract)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:additional)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:bindingset)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:cached)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:default)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:deprecated)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:external)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:final)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:language)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:library)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:override)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:pragma)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:private)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:query)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:signature)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:transient)(?:(?!(?:[0-9A-Za-z_]))))))))|(?=(?:(?:(?:\\\\\\\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:string)(?:(?!(?:[0-9A-Za-z_])))))))|(?=(?:@[a-z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_])))))\",\"end\":\"(?<=\\\\\\\\}|;)\",\"name\":\"meta.block.predicate-or-field-declaration.ql\",\"patterns\":[{\"include\":\"#predicate-parameter-list\"},{\"include\":\"#predicate-body\"},{\"include\":\"#non-context-sensitive\"},{\"include\":\"#module-qualifier\"},{\"match\":\"(?:\\\\\\\\b[a-z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_]))))(?=\\\\\\\\s*;)\",\"name\":\"variable.field.ql\"},{\"match\":\"(?:\\\\\\\\b[a-z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_]))))\",\"name\":\"entity.name.function.ql\"},{\"match\":\"(?:\\\\\\\\b[A-Z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_]))))\",\"name\":\"entity.name.type.ql\"}]},\"predicate-parameter-list\":{\"begin\":\"((?:\\\\\\\\())\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#open-paren\"}]}},\"end\":\"((?:\\\\\\\\)))\",\"endCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#close-paren\"}]}},\"name\":\"meta.block.predicate-parameter-list.ql\",\"patterns\":[{\"include\":\"#non-context-sensitive\"},{\"match\":\"(?:\\\\\\\\b[A-Z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_]))))(?=\\\\\\\\s*(?:,|\\\\\\\\)))\",\"name\":\"variable.parameter.ql\"},{\"include\":\"#module-qualifier\"},{\"match\":\"(?:\\\\\\\\b[A-Z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_]))))\",\"name\":\"entity.name.type.ql\"},{\"match\":\"(?:\\\\\\\\b[a-z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_]))))\",\"name\":\"variable.parameter.ql\"}]},\"predicate-start-keyword\":{\"patterns\":[{\"include\":\"#boolean\"},{\"include\":\"#date\"},{\"include\":\"#float\"},{\"include\":\"#int\"},{\"include\":\"#predicate\"},{\"include\":\"#string\"}]},\"private\":{\"match\":\"\\\\\\\\b(?:private)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"storage.modifier.private.ql\"},\"query\":{\"match\":\"\\\\\\\\b(?:query)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"storage.modifier.query.ql\"},\"rank\":{\"match\":\"\\\\\\\\b(?:rank)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.aggregate.rank.ql\"},\"relational-operator\":{\"match\":\"<=|<|>=|>\",\"name\":\"keyword.operator.relational.ql\"},\"result\":{\"match\":\"\\\\\\\\b(?:result)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"variable.language.result.ql\"},\"select\":{\"match\":\"\\\\\\\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.query.select.ql\"},\"select-as-clause\":{\"begin\":\"((?:\\\\\\\\b(?:as)(?:(?!(?:[0-9A-Za-z_])))))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#as\"}]}},\"end\":\"(?<=(?:[0-9A-Za-z_])(?:(?!(?:[0-9A-Za-z_]))))\",\"match\":\"meta.block.select-as-clause.ql\",\"patterns\":[{\"include\":\"#non-context-sensitive\"},{\"match\":\"(?:\\\\\\\\b[A-Za-z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_]))))\",\"name\":\"variable.other.ql\"}]},\"select-clause\":{\"begin\":\"(?=(?:\\\\\\\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))\",\"end\":\"(?!(?:\\\\\\\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\\\\\\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))\",\"name\":\"meta.block.select-clause.ql\",\"patterns\":[{\"include\":\"#from-section\"},{\"include\":\"#where-section\"},{\"include\":\"#select-section\"}]},\"select-section\":{\"begin\":\"((?:\\\\\\\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#select\"}]}},\"end\":\"(?=\\\\\\\\n)\",\"name\":\"meta.block.select-section.ql\",\"patterns\":[{\"include\":\"#predicate-body-contents\"},{\"include\":\"#select-as-clause\"}]},\"semicolon\":{\"match\":\";\",\"name\":\"punctuation.separator.statement.ql\"},\"signature\":{\"match\":\"\\\\\\\\b(?:signature)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"storage.modifier.signature.ql\"},\"simple-id\":{\"match\":\"\\\\\\\\b[A-Za-z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_])))\"},\"strictconcat\":{\"match\":\"\\\\\\\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.aggregate.strictconcat.ql\"},\"strictcount\":{\"match\":\"\\\\\\\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.aggregate.strictcount.ql\"},\"strictsum\":{\"match\":\"\\\\\\\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.aggregate.strictsum.ql\"},\"string\":{\"match\":\"\\\\\\\\b(?:string)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.type.string.ql\"},\"string-escape\":{\"match\":\"\\\\\\\\\\\\\\\\[\\\\\"\\\\\\\\\\\\\\\\nrt]\",\"name\":\"constant.character.escape.ql\"},\"string-literal\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.ql\"}},\"end\":\"(\\\\\")|((?:[^\\\\\\\\\\\\\\\\\\\\\\\\n])$)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.ql\"},\"2\":{\"name\":\"invalid.illegal.newline.ql\"}},\"name\":\"string.quoted.double.ql\",\"patterns\":[{\"include\":\"#string-escape\"}]},\"sum\":{\"match\":\"\\\\\\\\b(?:sum)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.aggregate.sum.ql\"},\"super\":{\"match\":\"\\\\\\\\b(?:super)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"variable.language.super.ql\"},\"then\":{\"match\":\"\\\\\\\\b(?:then)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.other.then.ql\"},\"this\":{\"match\":\"\\\\\\\\b(?:this)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"variable.language.this.ql\"},\"transient\":{\"match\":\"\\\\\\\\b(?:transient)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"storage.modifier.transient.ql\"},\"true\":{\"match\":\"\\\\\\\\b(?:true)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"constant.language.boolean.true.ql\"},\"unique\":{\"match\":\"\\\\\\\\b(?:unique)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.aggregate.unique.ql\"},\"upper-id\":{\"match\":\"\\\\\\\\b[A-Z][0-9A-Za-z_]*(?:(?!(?:[0-9A-Za-z_])))\"},\"where\":{\"match\":\"\\\\\\\\b(?:where)(?:(?!(?:[0-9A-Za-z_])))\",\"name\":\"keyword.query.where.ql\"},\"where-section\":{\"begin\":\"((?:\\\\\\\\b(?:where)(?:(?!(?:[0-9A-Za-z_])))))\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#where\"}]}},\"end\":\"(?=(?:\\\\\\\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))\",\"name\":\"meta.block.where-section.ql\",\"patterns\":[{\"include\":\"#predicate-body-contents\"}]},\"whitespace-or-comment-start\":{\"match\":\"\\\\\\\\s|$|(?://|/\\\\\\\\*)\"}},\"scopeName\":\"source.ql\",\"aliases\":[\"ql\"]}')),a=[e];export{a as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/sdHcTMYB.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"MDX\",\"fileTypes\":[\"mdx\"],\"name\":\"mdx\",\"patterns\":[{\"include\":\"#markdown-frontmatter\"},{\"include\":\"#markdown-sections\"}],\"repository\":{\"commonmark-attention\":{\"patterns\":[{\"match\":\"(?<=\\\\\\\\S)\\\\\\\\*{3,}|\\\\\\\\*{3,}(?=\\\\\\\\S)\",\"name\":\"string.other.strong.emphasis.asterisk.mdx\"},{\"match\":\"(?<=[\\\\\\\\p{L}\\\\\\\\p{N}])_{3,}(?![\\\\\\\\p{L}\\\\\\\\p{N}])|(?<=\\\\\\\\p{P})_{3,}|(?<![\\\\\\\\p{L}\\\\\\\\p{N}]|\\\\\\\\p{P})_{3,}(?!\\\\\\\\s)\",\"name\":\"string.other.strong.emphasis.underscore.mdx\"},{\"match\":\"(?<=\\\\\\\\S)\\\\\\\\*{2}|\\\\\\\\*{2}(?=\\\\\\\\S)\",\"name\":\"string.other.strong.asterisk.mdx\"},{\"match\":\"(?<=[\\\\\\\\p{L}\\\\\\\\p{N}])_{2}(?![\\\\\\\\p{L}\\\\\\\\p{N}])|(?<=\\\\\\\\p{P})_{2}|(?<![\\\\\\\\p{L}\\\\\\\\p{N}]|\\\\\\\\p{P})_{2}(?!\\\\\\\\s)\",\"name\":\"string.other.strong.underscore.mdx\"},{\"match\":\"(?<=\\\\\\\\S)\\\\\\\\*|\\\\\\\\*(?=\\\\\\\\S)\",\"name\":\"string.other.emphasis.asterisk.mdx\"},{\"match\":\"(?<=[\\\\\\\\p{L}\\\\\\\\p{N}])_(?![\\\\\\\\p{L}\\\\\\\\p{N}])|(?<=\\\\\\\\p{P})_|(?<![\\\\\\\\p{L}\\\\\\\\p{N}]|\\\\\\\\p{P})_(?!\\\\\\\\s)\",\"name\":\"string.other.emphasis.underscore.mdx\"}]},\"commonmark-block-quote\":{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(>)[ ]?\",\"beginCaptures\":{\"0\":{\"name\":\"markup.quote.mdx\"},\"1\":{\"name\":\"punctuation.definition.quote.begin.mdx\"}},\"name\":\"markup.quote.mdx\",\"patterns\":[{\"include\":\"#markdown-sections\"}],\"while\":\"(>)[ ]?\",\"whileCaptures\":{\"0\":{\"name\":\"markup.quote.mdx\"},\"1\":{\"name\":\"punctuation.definition.quote.begin.mdx\"}}},\"commonmark-character-escape\":{\"match\":\"\\\\\\\\\\\\\\\\(?:[!\\\\\"#$%&\\'()*+,\\\\\\\\-.\\\\\\\\/:;<=>?@\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\\\\]^_`{|}~])\",\"name\":\"constant.language.character-escape.mdx\"},\"commonmark-character-reference\":{\"patterns\":[{\"include\":\"#whatwg-html-data-character-reference-named-terminated\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.character-reference.begin.html\"},\"2\":{\"name\":\"punctuation.definition.character-reference.numeric.html\"},\"3\":{\"name\":\"punctuation.definition.character-reference.numeric.hexadecimal.html\"},\"4\":{\"name\":\"constant.numeric.integer.hexadecimal.html\"},\"5\":{\"name\":\"punctuation.definition.character-reference.end.html\"}},\"match\":\"(&)(#)([Xx])([0-9A-Fa-f]{1,6})(;)\",\"name\":\"constant.language.character-reference.numeric.hexadecimal.html\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.character-reference.begin.html\"},\"2\":{\"name\":\"punctuation.definition.character-reference.numeric.html\"},\"3\":{\"name\":\"constant.numeric.integer.decimal.html\"},\"4\":{\"name\":\"punctuation.definition.character-reference.end.html\"}},\"match\":\"(&)(#)([0-9]{1,7})(;)\",\"name\":\"constant.language.character-reference.numeric.decimal.html\"}]},\"commonmark-code-fenced\":{\"patterns\":[{\"include\":\"#commonmark-code-fenced-apib\"},{\"include\":\"#commonmark-code-fenced-asciidoc\"},{\"include\":\"#commonmark-code-fenced-c\"},{\"include\":\"#commonmark-code-fenced-clojure\"},{\"include\":\"#commonmark-code-fenced-coffee\"},{\"include\":\"#commonmark-code-fenced-console\"},{\"include\":\"#commonmark-code-fenced-cpp\"},{\"include\":\"#commonmark-code-fenced-cs\"},{\"include\":\"#commonmark-code-fenced-css\"},{\"include\":\"#commonmark-code-fenced-diff\"},{\"include\":\"#commonmark-code-fenced-dockerfile\"},{\"include\":\"#commonmark-code-fenced-elixir\"},{\"include\":\"#commonmark-code-fenced-elm\"},{\"include\":\"#commonmark-code-fenced-erlang\"},{\"include\":\"#commonmark-code-fenced-gitconfig\"},{\"include\":\"#commonmark-code-fenced-go\"},{\"include\":\"#commonmark-code-fenced-graphql\"},{\"include\":\"#commonmark-code-fenced-haskell\"},{\"include\":\"#commonmark-code-fenced-html\"},{\"include\":\"#commonmark-code-fenced-ini\"},{\"include\":\"#commonmark-code-fenced-java\"},{\"include\":\"#commonmark-code-fenced-js\"},{\"include\":\"#commonmark-code-fenced-json\"},{\"include\":\"#commonmark-code-fenced-julia\"},{\"include\":\"#commonmark-code-fenced-kotlin\"},{\"include\":\"#commonmark-code-fenced-less\"},{\"include\":\"#commonmark-code-fenced-less\"},{\"include\":\"#commonmark-code-fenced-lua\"},{\"include\":\"#commonmark-code-fenced-makefile\"},{\"include\":\"#commonmark-code-fenced-md\"},{\"include\":\"#commonmark-code-fenced-mdx\"},{\"include\":\"#commonmark-code-fenced-objc\"},{\"include\":\"#commonmark-code-fenced-perl\"},{\"include\":\"#commonmark-code-fenced-php\"},{\"include\":\"#commonmark-code-fenced-php\"},{\"include\":\"#commonmark-code-fenced-python\"},{\"include\":\"#commonmark-code-fenced-r\"},{\"include\":\"#commonmark-code-fenced-raku\"},{\"include\":\"#commonmark-code-fenced-ruby\"},{\"include\":\"#commonmark-code-fenced-rust\"},{\"include\":\"#commonmark-code-fenced-scala\"},{\"include\":\"#commonmark-code-fenced-scss\"},{\"include\":\"#commonmark-code-fenced-shell\"},{\"include\":\"#commonmark-code-fenced-shell-session\"},{\"include\":\"#commonmark-code-fenced-sql\"},{\"include\":\"#commonmark-code-fenced-svg\"},{\"include\":\"#commonmark-code-fenced-swift\"},{\"include\":\"#commonmark-code-fenced-toml\"},{\"include\":\"#commonmark-code-fenced-ts\"},{\"include\":\"#commonmark-code-fenced-tsx\"},{\"include\":\"#commonmark-code-fenced-vbnet\"},{\"include\":\"#commonmark-code-fenced-xml\"},{\"include\":\"#commonmark-code-fenced-yaml\"},{\"include\":\"#commonmark-code-fenced-unknown\"}]},\"commonmark-code-fenced-apib\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:api\\\\\\\\x2dblueprint|(?:.*\\\\\\\\.)?apib))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.apib.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.apib\",\"patterns\":[{\"include\":\"text.html.markdown.source.gfm.apib\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:api\\\\\\\\x2dblueprint|(?:.*\\\\\\\\.)?apib))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.apib.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.apib\",\"patterns\":[{\"include\":\"text.html.markdown.source.gfm.apib\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-asciidoc\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:(?:.*\\\\\\\\.)?(?:adoc|asciidoc)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.asciidoc.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.asciidoc\",\"patterns\":[{\"include\":\"text.html.asciidoc\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:(?:.*\\\\\\\\.)?(?:adoc|asciidoc)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.asciidoc.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.asciidoc\",\"patterns\":[{\"include\":\"text.html.asciidoc\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-c\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:dtrace|dtrace\\\\\\\\x2dscript|oncrpc|rpc|rpcgen|unified\\\\\\\\x2dparallel\\\\\\\\x2dc|x\\\\\\\\x2dbitmap|x\\\\\\\\x2dpixmap|xdr|(?:.*\\\\\\\\.)?(?:c|cats|h|idc|opencl|upc|xbm|xpm|xs)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.c.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.c\",\"patterns\":[{\"include\":\"source.c\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:dtrace|dtrace\\\\\\\\x2dscript|oncrpc|rpc|rpcgen|unified\\\\\\\\x2dparallel\\\\\\\\x2dc|x\\\\\\\\x2dbitmap|x\\\\\\\\x2dpixmap|xdr|(?:.*\\\\\\\\.)?(?:c|cats|h|idc|opencl|upc|xbm|xpm|xs)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.c.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.c\",\"patterns\":[{\"include\":\"source.c\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-clojure\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:clojure|rouge|(?:.*\\\\\\\\.)?(?:boot|cl2|clj|cljc|cljs|cljs\\\\\\\\.hl|cljscm|cljx|edn|hic|rg|wisp)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.clojure.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.clojure\",\"patterns\":[{\"include\":\"source.clojure\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:clojure|rouge|(?:.*\\\\\\\\.)?(?:boot|cl2|clj|cljc|cljs|cljs\\\\\\\\.hl|cljscm|cljx|edn|hic|rg|wisp)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.clojure.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.clojure\",\"patterns\":[{\"include\":\"source.clojure\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-coffee\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:coffee\\\\\\\\x2dscript|coffeescript|(?:.*\\\\\\\\.)?(?:_coffee|cjsx|coffee|cson|em|emberscript|iced)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.coffee.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.coffee\",\"patterns\":[{\"include\":\"source.coffee\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:coffee\\\\\\\\x2dscript|coffeescript|(?:.*\\\\\\\\.)?(?:_coffee|cjsx|coffee|cson|em|emberscript|iced)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.coffee.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.coffee\",\"patterns\":[{\"include\":\"source.coffee\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-console\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:pycon|python\\\\\\\\x2dconsole))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.console.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.console\",\"patterns\":[{\"include\":\"text.python.console\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:pycon|python\\\\\\\\x2dconsole))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.console.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.console\",\"patterns\":[{\"include\":\"text.python.console\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-cpp\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:ags|ags\\\\\\\\x2dscript|asymptote|c\\\\\\\\+\\\\\\\\+|edje\\\\\\\\x2ddata\\\\\\\\x2dcollection|game\\\\\\\\x2dmaker\\\\\\\\x2dlanguage|swig|(?:.*\\\\\\\\.)?(?:asc|ash|asy|c\\\\\\\\+\\\\\\\\+|cc|cp|cpp|cppm|cxx|edc|gml|h\\\\\\\\+\\\\\\\\+|hh|hpp|hxx|inl|ino|ipp|ixx|metal|re|tcc|tpp|txx)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.cpp.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.cpp\",\"patterns\":[{\"include\":\"source.c++\"},{\"include\":\"source.cpp\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:ags|ags\\\\\\\\x2dscript|asymptote|c\\\\\\\\+\\\\\\\\+|edje\\\\\\\\x2ddata\\\\\\\\x2dcollection|game\\\\\\\\x2dmaker\\\\\\\\x2dlanguage|swig|(?:.*\\\\\\\\.)?(?:asc|ash|asy|c\\\\\\\\+\\\\\\\\+|cc|cp|cpp|cppm|cxx|edc|gml|h\\\\\\\\+\\\\\\\\+|hh|hpp|hxx|inl|ino|ipp|ixx|metal|re|tcc|tpp|txx)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.cpp.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.cpp\",\"patterns\":[{\"include\":\"source.c++\"},{\"include\":\"source.cpp\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-cs\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:beef|c#|cakescript|csharp|(?:.*\\\\\\\\.)?(?:bf|cake|cs|cs\\\\\\\\.pp|csx|eq|linq|uno)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.cs.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.cs\",\"patterns\":[{\"include\":\"source.cs\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:beef|c#|cakescript|csharp|(?:.*\\\\\\\\.)?(?:bf|cake|cs|cs\\\\\\\\.pp|csx|eq|linq|uno)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.cs.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.cs\",\"patterns\":[{\"include\":\"source.cs\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-css\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:(?:.*\\\\\\\\.)?css))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.css.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.css\",\"patterns\":[{\"include\":\"source.css\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:(?:.*\\\\\\\\.)?css))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.css.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.css\",\"patterns\":[{\"include\":\"source.css\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-diff\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:udiff|(?:.*\\\\\\\\.)?(?:diff|patch)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.diff.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.diff\",\"patterns\":[{\"include\":\"source.diff\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:udiff|(?:.*\\\\\\\\.)?(?:diff|patch)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.diff.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.diff\",\"patterns\":[{\"include\":\"source.diff\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-dockerfile\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:containerfile|(?:.*\\\\\\\\.)?dockerfile))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.dockerfile.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.dockerfile\",\"patterns\":[{\"include\":\"source.dockerfile\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:containerfile|(?:.*\\\\\\\\.)?dockerfile))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.dockerfile.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.dockerfile\",\"patterns\":[{\"include\":\"source.dockerfile\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-elixir\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:elixir|(?:.*\\\\\\\\.)?(?:ex|exs)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.elixir.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.elixir\",\"patterns\":[{\"include\":\"source.elixir\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:elixir|(?:.*\\\\\\\\.)?(?:ex|exs)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.elixir.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.elixir\",\"patterns\":[{\"include\":\"source.elixir\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-elm\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:(?:.*\\\\\\\\.)?elm))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.elm.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.elm\",\"patterns\":[{\"include\":\"source.elm\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:(?:.*\\\\\\\\.)?elm))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.elm.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.elm\",\"patterns\":[{\"include\":\"source.elm\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-erlang\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:erlang|(?:.*\\\\\\\\.)?(?:app|app\\\\\\\\.src|erl|es|escript|hrl|xrl|yrl)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.erlang.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.erlang\",\"patterns\":[{\"include\":\"source.erlang\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:erlang|(?:.*\\\\\\\\.)?(?:app|app\\\\\\\\.src|erl|es|escript|hrl|xrl|yrl)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.erlang.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.erlang\",\"patterns\":[{\"include\":\"source.erlang\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-gitconfig\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:git\\\\\\\\x2dconfig|gitmodules|(?:.*\\\\\\\\.)?gitconfig))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.gitconfig.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.gitconfig\",\"patterns\":[{\"include\":\"source.gitconfig\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:git\\\\\\\\x2dconfig|gitmodules|(?:.*\\\\\\\\.)?gitconfig))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.gitconfig.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.gitconfig\",\"patterns\":[{\"include\":\"source.gitconfig\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-go\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:golang|(?:.*\\\\\\\\.)?go))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.go.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.go\",\"patterns\":[{\"include\":\"source.go\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:golang|(?:.*\\\\\\\\.)?go))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.go.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.go\",\"patterns\":[{\"include\":\"source.go\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-graphql\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:(?:.*\\\\\\\\.)?(?:gql|graphql|graphqls)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.graphql.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.graphql\",\"patterns\":[{\"include\":\"source.graphql\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:(?:.*\\\\\\\\.)?(?:gql|graphql|graphqls)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.graphql.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.graphql\",\"patterns\":[{\"include\":\"source.graphql\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-haskell\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:c2hs|c2hs\\\\\\\\x2dhaskell|frege|haskell|(?:.*\\\\\\\\.)?(?:chs|dhall|hs|hs\\\\\\\\x2dboot|hsc)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.haskell.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.haskell\",\"patterns\":[{\"include\":\"source.haskell\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:c2hs|c2hs\\\\\\\\x2dhaskell|frege|haskell|(?:.*\\\\\\\\.)?(?:chs|dhall|hs|hs\\\\\\\\x2dboot|hsc)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.haskell.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.haskell\",\"patterns\":[{\"include\":\"source.haskell\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-html\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:html|(?:.*\\\\\\\\.)?(?:hta|htm|html\\\\\\\\.hl|kit|mtml|xht|xhtml)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.html.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.html\",\"patterns\":[{\"include\":\"text.html.basic\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:html|(?:.*\\\\\\\\.)?(?:hta|htm|html\\\\\\\\.hl|kit|mtml|xht|xhtml)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.html.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.html\",\"patterns\":[{\"include\":\"text.html.basic\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-ini\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:altium|altium\\\\\\\\x2ddesigner|dosini|(?:.*\\\\\\\\.)?(?:cnf|dof|ini|lektorproject|outjob|pcbdoc|prefs|prjpcb|properties|schdoc|url)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.ini.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.ini\",\"patterns\":[{\"include\":\"source.ini\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:altium|altium\\\\\\\\x2ddesigner|dosini|(?:.*\\\\\\\\.)?(?:cnf|dof|ini|lektorproject|outjob|pcbdoc|prefs|prjpcb|properties|schdoc|url)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.ini.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.ini\",\"patterns\":[{\"include\":\"source.ini\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-java\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:chuck|unrealscript|(?:.*\\\\\\\\.)?(?:ck|jav|java|jsh|uc)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.java.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.java\",\"patterns\":[{\"include\":\"source.java\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:chuck|unrealscript|(?:.*\\\\\\\\.)?(?:ck|jav|java|jsh|uc)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.java.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.java\",\"patterns\":[{\"include\":\"source.java\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-js\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:cycript|javascript\\\\\\\\+erb|json\\\\\\\\x2dwith\\\\\\\\x2dcomments|node|qt\\\\\\\\x2dscript|(?:.*\\\\\\\\.)?(?:_js|bones|cjs|code\\\\\\\\x2dsnippets|code\\\\\\\\x2dworkspace|cy|es6|jake|javascript|js|js\\\\\\\\.erb|jsb|jscad|jsfl|jslib|jsm|json5|jsonc|jsonld|jspre|jss|jsx|mjs|njs|pac|sjs|ssjs|sublime\\\\\\\\x2dbuild|sublime\\\\\\\\x2dcolor\\\\\\\\x2dscheme|sublime\\\\\\\\x2dcommands|sublime\\\\\\\\x2dcompletions|sublime\\\\\\\\x2dkeymap|sublime\\\\\\\\x2dmacro|sublime\\\\\\\\x2dmenu|sublime\\\\\\\\x2dmousemap|sublime\\\\\\\\x2dproject|sublime\\\\\\\\x2dsettings|sublime\\\\\\\\x2dtheme|sublime\\\\\\\\x2dworkspace|sublime_metrics|sublime_session|xsjs|xsjslib)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.js.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.js\",\"patterns\":[{\"include\":\"source.js\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:cycript|javascript\\\\\\\\+erb|json\\\\\\\\x2dwith\\\\\\\\x2dcomments|node|qt\\\\\\\\x2dscript|(?:.*\\\\\\\\.)?(?:_js|bones|cjs|code\\\\\\\\x2dsnippets|code\\\\\\\\x2dworkspace|cy|es6|jake|javascript|js|js\\\\\\\\.erb|jsb|jscad|jsfl|jslib|jsm|json5|jsonc|jsonld|jspre|jss|jsx|mjs|njs|pac|sjs|ssjs|sublime\\\\\\\\x2dbuild|sublime\\\\\\\\x2dcolor\\\\\\\\x2dscheme|sublime\\\\\\\\x2dcommands|sublime\\\\\\\\x2dcompletions|sublime\\\\\\\\x2dkeymap|sublime\\\\\\\\x2dmacro|sublime\\\\\\\\x2dmenu|sublime\\\\\\\\x2dmousemap|sublime\\\\\\\\x2dproject|sublime\\\\\\\\x2dsettings|sublime\\\\\\\\x2dtheme|sublime\\\\\\\\x2dworkspace|sublime_metrics|sublime_session|xsjs|xsjslib)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.js.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.js\",\"patterns\":[{\"include\":\"source.js\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-json\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:ecere\\\\\\\\x2dprojects|ipython\\\\\\\\x2dnotebook|jupyter\\\\\\\\x2dnotebook|max|max/msp|maxmsp|oasv2\\\\\\\\x2djson|oasv3\\\\\\\\x2djson|(?:.*\\\\\\\\.)?(?:4dform|4dproject|avsc|epj|geojson|gltf|har|ice|ipynb|json|json|json|json\\\\\\\\x2dtmlanguage|jsonl|maxhelp|maxpat|maxproj|mcmeta|mxt|pat|sarif|tfstate|tfstate\\\\\\\\.backup|topojson|webapp|webmanifest|yy|yyp)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.json.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.json\",\"patterns\":[{\"include\":\"source.json\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:ecere\\\\\\\\x2dprojects|ipython\\\\\\\\x2dnotebook|jupyter\\\\\\\\x2dnotebook|max|max/msp|maxmsp|oasv2\\\\\\\\x2djson|oasv3\\\\\\\\x2djson|(?:.*\\\\\\\\.)?(?:4dform|4dproject|avsc|epj|geojson|gltf|har|ice|ipynb|json|json|json|json\\\\\\\\x2dtmlanguage|jsonl|maxhelp|maxpat|maxproj|mcmeta|mxt|pat|sarif|tfstate|tfstate\\\\\\\\.backup|topojson|webapp|webmanifest|yy|yyp)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.json.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.json\",\"patterns\":[{\"include\":\"source.json\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-julia\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:julia|(?:.*\\\\\\\\.)?jl))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.julia.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.julia\",\"patterns\":[{\"include\":\"source.julia\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:julia|(?:.*\\\\\\\\.)?jl))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.julia.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.julia\",\"patterns\":[{\"include\":\"source.julia\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-kotlin\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:gradle\\\\\\\\x2dkotlin\\\\\\\\x2ddsl|kotlin|(?:.*\\\\\\\\.)?(?:gradle\\\\\\\\.kts|kt|ktm|kts)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.kotlin.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.kotlin\",\"patterns\":[{\"include\":\"source.kotlin\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:gradle\\\\\\\\x2dkotlin\\\\\\\\x2ddsl|kotlin|(?:.*\\\\\\\\.)?(?:gradle\\\\\\\\.kts|kt|ktm|kts)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.kotlin.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.kotlin\",\"patterns\":[{\"include\":\"source.kotlin\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-less\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:less\\\\\\\\x2dcss|(?:.*\\\\\\\\.)?less))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.less.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.less\",\"patterns\":[{\"include\":\"source.css.less\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:less\\\\\\\\x2dcss|(?:.*\\\\\\\\.)?less))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.less.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.less\",\"patterns\":[{\"include\":\"source.css.less\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-lua\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:(?:.*\\\\\\\\.)?(?:fcgi|lua|nse|p8|pd_lua|rbxs|rockspec|wlua)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.lua.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.lua\",\"patterns\":[{\"include\":\"source.lua\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:(?:.*\\\\\\\\.)?(?:fcgi|lua|nse|p8|pd_lua|rbxs|rockspec|wlua)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.lua.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.lua\",\"patterns\":[{\"include\":\"source.lua\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-makefile\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:bsdmake|mf|(?:.*\\\\\\\\.)?(?:mak|make|makefile|mk|mkfile)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.makefile.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.makefile\",\"patterns\":[{\"include\":\"source.makefile\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:bsdmake|mf|(?:.*\\\\\\\\.)?(?:mak|make|makefile|mk|mkfile)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.makefile.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.makefile\",\"patterns\":[{\"include\":\"source.makefile\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-md\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:md|pandoc|rmarkdown|(?:.*\\\\\\\\.)?(?:livemd|markdown|mdown|mdwn|mkd|mkdn|mkdown|qmd|rmd|ronn|scd|workbook)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.md.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.md\",\"patterns\":[{\"include\":\"text.md\"},{\"include\":\"source.gfm\"},{\"include\":\"text.html.markdown\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:md|pandoc|rmarkdown|(?:.*\\\\\\\\.)?(?:livemd|markdown|mdown|mdwn|mkd|mkdn|mkdown|qmd|rmd|ronn|scd|workbook)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.md.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.md\",\"patterns\":[{\"include\":\"text.md\"},{\"include\":\"source.gfm\"},{\"include\":\"text.html.markdown\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-mdx\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:(?:.*\\\\\\\\.)?mdx))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.mdx.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.mdx\",\"patterns\":[{\"include\":\"source.mdx\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:(?:.*\\\\\\\\.)?mdx))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.mdx.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.mdx\",\"patterns\":[{\"include\":\"source.mdx\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-objc\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:obj\\\\\\\\x2dc|objc|objective\\\\\\\\x2dc|objectivec))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.objc.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.objc\",\"patterns\":[{\"include\":\"source.objc\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:obj\\\\\\\\x2dc|objc|objective\\\\\\\\x2dc|objectivec))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.objc.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.objc\",\"patterns\":[{\"include\":\"source.objc\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-perl\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:cperl|(?:.*\\\\\\\\.)?(?:cgi|perl|ph|pl|plx|pm|psgi|t)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.perl.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.perl\",\"patterns\":[{\"include\":\"source.perl\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:cperl|(?:.*\\\\\\\\.)?(?:cgi|perl|ph|pl|plx|pm|psgi|t)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.perl.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.perl\",\"patterns\":[{\"include\":\"source.perl\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-php\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:html\\\\\\\\+php|inc|php|(?:.*\\\\\\\\.)?(?:aw|ctp|php3|php4|php5|phps|phpt|phtml)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.php.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.php\",\"patterns\":[{\"include\":\"text.html.php\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:html\\\\\\\\+php|inc|php|(?:.*\\\\\\\\.)?(?:aw|ctp|php3|php4|php5|phps|phpt|phtml)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.php.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.php\",\"patterns\":[{\"include\":\"text.html.php\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-python\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:bazel|easybuild|python|python3|rusthon|snakemake|starlark|xonsh|(?:.*\\\\\\\\.)?(?:bzl|eb|gyp|gypi|lmi|py|py3|pyde|pyi|pyp|pyt|pyw|rpy|sage|sagews|smk|snakefile|spec|tac|wsgi|xpy|xsh)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.python.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.python\",\"patterns\":[{\"include\":\"source.python\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:bazel|easybuild|python|python3|rusthon|snakemake|starlark|xonsh|(?:.*\\\\\\\\.)?(?:bzl|eb|gyp|gypi|lmi|py|py3|pyde|pyi|pyp|pyt|pyw|rpy|sage|sagews|smk|snakefile|spec|tac|wsgi|xpy|xsh)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.python.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.python\",\"patterns\":[{\"include\":\"source.python\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-r\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:rscript|splus|(?:.*\\\\\\\\.)?(?:r|rd|rsx)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.r.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.r\",\"patterns\":[{\"include\":\"source.r\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:rscript|splus|(?:.*\\\\\\\\.)?(?:r|rd|rsx)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.r.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.r\",\"patterns\":[{\"include\":\"source.r\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-raku\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:perl\\\\\\\\x2d6|perl6|pod\\\\\\\\x2d6|(?:.*\\\\\\\\.)?(?:6pl|6pm|nqp|p6|p6l|p6m|pl6|pm6|pod|pod6|raku|rakumod)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.raku.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.raku\",\"patterns\":[{\"include\":\"source.raku\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:perl\\\\\\\\x2d6|perl6|pod\\\\\\\\x2d6|(?:.*\\\\\\\\.)?(?:6pl|6pm|nqp|p6|p6l|p6m|pl6|pm6|pod|pod6|raku|rakumod)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.raku.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.raku\",\"patterns\":[{\"include\":\"source.raku\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-ruby\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:jruby|macruby|(?:.*\\\\\\\\.)?(?:builder|druby|duby|eye|gemspec|god|jbuilder|mirah|mspec|pluginspec|podspec|prawn|rabl|rake|rb|rbi|rbuild|rbw|rbx|ru|ruby|thor|watchr)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.ruby.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.ruby\",\"patterns\":[{\"include\":\"source.ruby\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:jruby|macruby|(?:.*\\\\\\\\.)?(?:builder|druby|duby|eye|gemspec|god|jbuilder|mirah|mspec|pluginspec|podspec|prawn|rabl|rake|rb|rbi|rbuild|rbw|rbx|ru|ruby|thor|watchr)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.ruby.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.ruby\",\"patterns\":[{\"include\":\"source.ruby\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-rust\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:rust|(?:.*\\\\\\\\.)?(?:rs|rs\\\\\\\\.in)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.rust.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.rust\",\"patterns\":[{\"include\":\"source.rust\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:rust|(?:.*\\\\\\\\.)?(?:rs|rs\\\\\\\\.in)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.rust.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.rust\",\"patterns\":[{\"include\":\"source.rust\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-scala\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:(?:.*\\\\\\\\.)?(?:kojo|sbt|sc|scala)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.scala.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.scala\",\"patterns\":[{\"include\":\"source.scala\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:(?:.*\\\\\\\\.)?(?:kojo|sbt|sc|scala)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.scala.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.scala\",\"patterns\":[{\"include\":\"source.scala\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-scss\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:(?:.*\\\\\\\\.)?scss))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.scss.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.scss\",\"patterns\":[{\"include\":\"source.css.scss\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:(?:.*\\\\\\\\.)?scss))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.scss.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.scss\",\"patterns\":[{\"include\":\"source.css.scss\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-shell\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:abuild|alpine\\\\\\\\x2dabuild|apkbuild|envrc|gentoo\\\\\\\\x2debuild|gentoo\\\\\\\\x2declass|openrc|openrc\\\\\\\\x2drunscript|shell|shell\\\\\\\\x2dscript|(?:.*\\\\\\\\.)?(?:bash|bats|command|csh|ebuild|eclass|ksh|sh|sh\\\\\\\\.in|tcsh|tmux|tool|zsh|zsh\\\\\\\\x2dtheme)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.shell.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.shell\",\"patterns\":[{\"include\":\"source.shell\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:abuild|alpine\\\\\\\\x2dabuild|apkbuild|envrc|gentoo\\\\\\\\x2debuild|gentoo\\\\\\\\x2declass|openrc|openrc\\\\\\\\x2drunscript|shell|shell\\\\\\\\x2dscript|(?:.*\\\\\\\\.)?(?:bash|bats|command|csh|ebuild|eclass|ksh|sh|sh\\\\\\\\.in|tcsh|tmux|tool|zsh|zsh\\\\\\\\x2dtheme)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.shell.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.shell\",\"patterns\":[{\"include\":\"source.shell\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-shell-session\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:bash\\\\\\\\x2dsession|console|shellsession|(?:.*\\\\\\\\.)?sh\\\\\\\\x2dsession))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.shell-session.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.shell-session\",\"patterns\":[{\"include\":\"text.shell-session\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:bash\\\\\\\\x2dsession|console|shellsession|(?:.*\\\\\\\\.)?sh\\\\\\\\x2dsession))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.shell-session.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.shell-session\",\"patterns\":[{\"include\":\"text.shell-session\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-sql\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:plpgsql|sqlpl|(?:.*\\\\\\\\.)?(?:cql|db2|ddl|mysql|pgsql|prc|sql|sql|sql|tab|udf|viw)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.sql.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.sql\",\"patterns\":[{\"include\":\"source.sql\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:plpgsql|sqlpl|(?:.*\\\\\\\\.)?(?:cql|db2|ddl|mysql|pgsql|prc|sql|sql|sql|tab|udf|viw)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.sql.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.sql\",\"patterns\":[{\"include\":\"source.sql\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-svg\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:(?:.*\\\\\\\\.)?svg))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.svg.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.svg\",\"patterns\":[{\"include\":\"text.xml.svg\"},{\"include\":\"text.xml\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:(?:.*\\\\\\\\.)?svg))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.svg.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.svg\",\"patterns\":[{\"include\":\"text.xml.svg\"},{\"include\":\"text.xml\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-swift\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:(?:.*\\\\\\\\.)?swift))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.swift.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.swift\",\"patterns\":[{\"include\":\"source.swift\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:(?:.*\\\\\\\\.)?swift))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.swift.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.swift\",\"patterns\":[{\"include\":\"source.swift\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-toml\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:(?:.*\\\\\\\\.)?toml))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.toml.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.toml\",\"patterns\":[{\"include\":\"source.toml\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:(?:.*\\\\\\\\.)?toml))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.toml.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.toml\",\"patterns\":[{\"include\":\"source.toml\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-ts\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:typescript|(?:.*\\\\\\\\.)?(?:cts|mts|ts)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.ts.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.ts\",\"patterns\":[{\"include\":\"source.ts\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:typescript|(?:.*\\\\\\\\.)?(?:cts|mts|ts)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.ts.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.ts\",\"patterns\":[{\"include\":\"source.ts\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-tsx\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:(?:.*\\\\\\\\.)?tsx))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.tsx.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.tsx\",\"patterns\":[{\"include\":\"source.tsx\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:(?:.*\\\\\\\\.)?tsx))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.tsx.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.tsx\",\"patterns\":[{\"include\":\"source.tsx\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-unknown\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?:[^\\\\\\\\t\\\\\\\\n\\\\\\\\r` ])+)(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)?(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"contentName\":\"markup.raw.code.fenced.mdx\",\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.other.mdx\"},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?:[^\\\\\\\\t\\\\\\\\n\\\\\\\\r ])+)(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)?(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"contentName\":\"markup.raw.code.fenced.mdx\",\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.other.mdx\"}]},\"commonmark-code-fenced-vbnet\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:fb|freebasic|realbasic|vb\\\\\\\\x2d\\\\\\\\.net|vb\\\\\\\\.net|vbnet|vbscript|visual\\\\\\\\x2dbasic|visual\\\\\\\\x2dbasic\\\\\\\\x2d\\\\\\\\.net|(?:.*\\\\\\\\.)?(?:bi|rbbas|rbfrm|rbmnu|rbres|rbtbar|rbuistate|vb|vbhtml|vbs)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.vbnet.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.vbnet\",\"patterns\":[{\"include\":\"source.vbnet\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:fb|freebasic|realbasic|vb\\\\\\\\x2d\\\\\\\\.net|vb\\\\\\\\.net|vbnet|vbscript|visual\\\\\\\\x2dbasic|visual\\\\\\\\x2dbasic\\\\\\\\x2d\\\\\\\\.net|(?:.*\\\\\\\\.)?(?:bi|rbbas|rbfrm|rbmnu|rbres|rbtbar|rbuistate|vb|vbhtml|vbs)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.vbnet.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.vbnet\",\"patterns\":[{\"include\":\"source.vbnet\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-xml\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:collada|eagle|labview|web\\\\\\\\x2dontology\\\\\\\\x2dlanguage|xpages|(?:.*\\\\\\\\.)?(?:adml|admx|ant|axaml|axml|brd|builds|ccproj|ccxml|clixml|cproject|cscfg|csdef|csproj|ct|dae|depproj|dita|ditamap|ditaval|dll\\\\\\\\.config|dotsettings|filters|fsproj|fxml|glade|gmx|grxml|hzp|iml|ivy|jelly|jsproj|kml|launch|lvclass|lvlib|lvproj|mdpolicy|mjml|mxml|natvis|ndproj|nproj|nuspec|odd|osm|owl|pkgproj|proj|props|ps1xml|psc1|pt|qhelp|rdf|resx|rss|sch|sch|scxml|sfproj|shproj|srdf|storyboard|sublime\\\\\\\\x2dsnippet|targets|tml|ui|urdf|ux|vbproj|vcxproj|vsixmanifest|vssettings|vstemplate|vxml|wixproj|wsdl|wsf|wxi|wxl|wxs|x3d|xacro|xaml|xib|xlf|xliff|xmi|xml|xml\\\\\\\\.dist|xmp|xpl|xproc|xproj|xsd|xsp\\\\\\\\x2dconfig|xsp\\\\\\\\.metadata|xspec|xul|zcml)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.xml.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.xml\",\"patterns\":[{\"include\":\"text.xml\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:collada|eagle|labview|web\\\\\\\\x2dontology\\\\\\\\x2dlanguage|xpages|(?:.*\\\\\\\\.)?(?:adml|admx|ant|axaml|axml|brd|builds|ccproj|ccxml|clixml|cproject|cscfg|csdef|csproj|ct|dae|depproj|dita|ditamap|ditaval|dll\\\\\\\\.config|dotsettings|filters|fsproj|fxml|glade|gmx|grxml|hzp|iml|ivy|jelly|jsproj|kml|launch|lvclass|lvlib|lvproj|mdpolicy|mjml|mxml|natvis|ndproj|nproj|nuspec|odd|osm|owl|pkgproj|proj|props|ps1xml|psc1|pt|qhelp|rdf|resx|rss|sch|sch|scxml|sfproj|shproj|srdf|storyboard|sublime\\\\\\\\x2dsnippet|targets|tml|ui|urdf|ux|vbproj|vcxproj|vsixmanifest|vssettings|vstemplate|vxml|wixproj|wsdl|wsf|wxi|wxl|wxs|x3d|xacro|xaml|xib|xlf|xliff|xmi|xml|xml\\\\\\\\.dist|xmp|xpl|xproc|xproj|xsd|xsp\\\\\\\\x2dconfig|xsp\\\\\\\\.metadata|xspec|xul|zcml)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.xml.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.xml\",\"patterns\":[{\"include\":\"text.xml\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-fenced-yaml\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(`{3,})(?:[\\\\\\\\t ]*((?i:jar\\\\\\\\x2dmanifest|kaitai\\\\\\\\x2dstruct|oasv2\\\\\\\\x2dyaml|oasv3\\\\\\\\x2dyaml|unity3d\\\\\\\\x2dasset|yaml|yml|(?:.*\\\\\\\\.)?(?:anim|asset|ksy|lkml|lookml|mat|meta|mir|prefab|raml|reek|rviz|sublime\\\\\\\\x2dsyntax|syntax|unity|yaml\\\\\\\\x2dtmlanguage|yaml\\\\\\\\.sed|yml\\\\\\\\.mysql)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r`])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.yaml.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.yaml\",\"patterns\":[{\"include\":\"source.yaml\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(~{3,})(?:[\\\\\\\\t ]*((?i:jar\\\\\\\\x2dmanifest|kaitai\\\\\\\\x2dstruct|oasv2\\\\\\\\x2dyaml|oasv3\\\\\\\\x2dyaml|unity3d\\\\\\\\x2dasset|yaml|yml|(?:.*\\\\\\\\.)?(?:anim|asset|ksy|lkml|lookml|mat|meta|mir|prefab|raml|reek|rviz|sublime\\\\\\\\x2dsyntax|syntax|unity|yaml\\\\\\\\x2dtmlanguage|yaml\\\\\\\\.sed|yml\\\\\\\\.mysql)))(?:[\\\\\\\\t ]+((?:[^\\\\\\\\n\\\\\\\\r])+))?)(?:[\\\\\\\\t ]*$)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.code.fenced.mdx\"},\"2\":{\"name\":\"entity.name.function.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"end\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.code.fenced.mdx\"}},\"name\":\"markup.code.yaml.mdx\",\"patterns\":[{\"begin\":\"(^|\\\\\\\\G)(\\\\\\\\s*)(.*)\",\"contentName\":\"meta.embedded.yaml\",\"patterns\":[{\"include\":\"source.yaml\"}],\"while\":\"(^|\\\\\\\\G)(?![\\\\\\\\t ]*([`~]{3,})[\\\\\\\\t ]*$)\"}]}]},\"commonmark-code-text\":{\"captures\":{\"1\":{\"name\":\"string.other.begin.code.mdx\"},\"2\":{\"name\":\"markup.raw.code.mdx markup.inline.raw.code.mdx\"},\"3\":{\"name\":\"string.other.end.code.mdx\"}},\"match\":\"(?<!`)(`+)(?!`)(.+?)(?<!`)(\\\\\\\\1)(?!`)\",\"name\":\"markup.code.other.mdx\"},\"commonmark-definition\":{\"captures\":{\"1\":{\"name\":\"string.other.begin.mdx\"},\"2\":{\"name\":\"entity.name.identifier.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"3\":{\"name\":\"string.other.end.mdx\"},\"4\":{\"name\":\"punctuation.separator.key-value.mdx\"},\"5\":{\"name\":\"string.other.begin.destination.mdx\"},\"6\":{\"name\":\"string.other.link.destination.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"7\":{\"name\":\"string.other.end.destination.mdx\"},\"8\":{\"name\":\"string.other.link.destination.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"9\":{\"name\":\"string.other.begin.mdx\"},\"10\":{\"name\":\"string.quoted.double.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"11\":{\"name\":\"string.other.end.mdx\"},\"12\":{\"name\":\"string.other.begin.mdx\"},\"13\":{\"name\":\"string.quoted.single.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"14\":{\"name\":\"string.other.end.mdx\"},\"15\":{\"name\":\"string.other.begin.mdx\"},\"16\":{\"name\":\"string.quoted.paren.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"17\":{\"name\":\"string.other.end.mdx\"}},\"match\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\[)((?:[^\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\\\\]]|\\\\\\\\\\\\\\\\[\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\\\\]]?)+?)(\\\\\\\\])(:)[ \\\\\\\\t]*(?:(<)((?:[^\\\\\\\\n<\\\\\\\\\\\\\\\\>]|\\\\\\\\\\\\\\\\[<\\\\\\\\\\\\\\\\>]?)*)(>)|(\\\\\\\\g<destination_raw>))(?:[\\\\\\\\t ]+(?:(\\\\\")((?:[^\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\[\\\\\"\\\\\\\\\\\\\\\\]?)*)(\\\\\")|(\\')((?:[^\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\[\\'\\\\\\\\\\\\\\\\]?)*)(\\')|(\\\\\\\\()((?:[^\\\\\\\\)\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\[\\\\\\\\)\\\\\\\\\\\\\\\\]?)*)(\\\\\\\\))))?$(?<destination_raw>(?!\\\\\\\\<)(?:(?:[^\\\\\\\\p{Cc}\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\(\\\\\\\\)]|\\\\\\\\\\\\\\\\[\\\\\\\\(\\\\\\\\)\\\\\\\\\\\\\\\\]?)|\\\\\\\\(\\\\\\\\g<destination_raw>*\\\\\\\\))+){0}\",\"name\":\"meta.link.reference.def.mdx\"},\"commonmark-hard-break-escape\":{\"match\":\"\\\\\\\\\\\\\\\\$\",\"name\":\"constant.language.character-escape.line-ending.mdx\"},\"commonmark-hard-break-trailing\":{\"match\":\"( ){2,}$\",\"name\":\"carriage-return constant.language.character-escape.line-ending.mdx\"},\"commonmark-heading-atx\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.heading.mdx\"},\"2\":{\"name\":\"entity.name.section.mdx\",\"patterns\":[{\"include\":\"#markdown-text\"}]},\"3\":{\"name\":\"punctuation.definition.heading.mdx\"}},\"match\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(#{1}(?!#))(?:[ \\\\\\\\t]+([^\\\\\\\\r\\\\\\\\n]+?)(?:[ \\\\\\\\t]+(#+?))?)?[ \\\\\\\\t]*$\",\"name\":\"markup.heading.atx.1.mdx\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.heading.mdx\"},\"2\":{\"name\":\"entity.name.section.mdx\",\"patterns\":[{\"include\":\"#markdown-text\"}]},\"3\":{\"name\":\"punctuation.definition.heading.mdx\"}},\"match\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(#{2}(?!#))(?:[ \\\\\\\\t]+([^\\\\\\\\r\\\\\\\\n]+?)(?:[ \\\\\\\\t]+(#+?))?)?[ \\\\\\\\t]*$\",\"name\":\"markup.heading.atx.2.mdx\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.heading.mdx\"},\"2\":{\"name\":\"entity.name.section.mdx\",\"patterns\":[{\"include\":\"#markdown-text\"}]},\"3\":{\"name\":\"punctuation.definition.heading.mdx\"}},\"match\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(#{3}(?!#))(?:[ \\\\\\\\t]+([^\\\\\\\\r\\\\\\\\n]+?)(?:[ \\\\\\\\t]+(#+?))?)?[ \\\\\\\\t]*$\",\"name\":\"markup.heading.atx.3.mdx\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.heading.mdx\"},\"2\":{\"name\":\"entity.name.section.mdx\",\"patterns\":[{\"include\":\"#markdown-text\"}]},\"3\":{\"name\":\"punctuation.definition.heading.mdx\"}},\"match\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(#{4}(?!#))(?:[ \\\\\\\\t]+([^\\\\\\\\r\\\\\\\\n]+?)(?:[ \\\\\\\\t]+(#+?))?)?[ \\\\\\\\t]*$\",\"name\":\"markup.heading.atx.4.mdx\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.heading.mdx\"},\"2\":{\"name\":\"entity.name.section.mdx\",\"patterns\":[{\"include\":\"#markdown-text\"}]},\"3\":{\"name\":\"punctuation.definition.heading.mdx\"}},\"match\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(#{5}(?!#))(?:[ \\\\\\\\t]+([^\\\\\\\\r\\\\\\\\n]+?)(?:[ \\\\\\\\t]+(#+?))?)?[ \\\\\\\\t]*$\",\"name\":\"markup.heading.atx.5.mdx\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.heading.mdx\"},\"2\":{\"name\":\"entity.name.section.mdx\",\"patterns\":[{\"include\":\"#markdown-text\"}]},\"3\":{\"name\":\"punctuation.definition.heading.mdx\"}},\"match\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(#{6}(?!#))(?:[ \\\\\\\\t]+([^\\\\\\\\r\\\\\\\\n]+?)(?:[ \\\\\\\\t]+(#+?))?)?[ \\\\\\\\t]*$\",\"name\":\"markup.heading.atx.6.mdx\"}]},\"commonmark-heading-setext\":{\"patterns\":[{\"match\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(={1,})[ \\\\\\\\t]*$\",\"name\":\"markup.heading.setext.1.mdx\"},{\"match\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(-{1,})[ \\\\\\\\t]*$\",\"name\":\"markup.heading.setext.2.mdx\"}]},\"commonmark-label-end\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"string.other.end.mdx\"},\"2\":{\"name\":\"string.other.begin.mdx\"},\"3\":{\"name\":\"string.other.begin.destination.mdx\"},\"4\":{\"name\":\"string.other.link.destination.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"5\":{\"name\":\"string.other.end.destination.mdx\"},\"6\":{\"name\":\"string.other.link.destination.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"7\":{\"name\":\"string.other.begin.mdx\"},\"8\":{\"name\":\"string.quoted.double.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"9\":{\"name\":\"string.other.end.mdx\"},\"10\":{\"name\":\"string.other.begin.mdx\"},\"11\":{\"name\":\"string.quoted.single.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"12\":{\"name\":\"string.other.end.mdx\"},\"13\":{\"name\":\"string.other.begin.mdx\"},\"14\":{\"name\":\"string.quoted.paren.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"15\":{\"name\":\"string.other.end.mdx\"},\"16\":{\"name\":\"string.other.end.mdx\"}},\"match\":\"(\\\\\\\\])(\\\\\\\\()[\\\\\\\\t ]*(?:(?:(<)((?:[^\\\\\\\\n<\\\\\\\\\\\\\\\\>]|\\\\\\\\\\\\\\\\[<\\\\\\\\\\\\\\\\>]?)*)(>)|(\\\\\\\\g<destination_raw>))(?:[\\\\\\\\t ]+(?:(\\\\\")((?:[^\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\[\\\\\"\\\\\\\\\\\\\\\\]?)*)(\\\\\")|(\\')((?:[^\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\[\\'\\\\\\\\\\\\\\\\]?)*)(\\')|(\\\\\\\\()((?:[^\\\\\\\\)\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\[\\\\\\\\)\\\\\\\\\\\\\\\\]?)*)(\\\\\\\\))))?)?[\\\\\\\\t ]*(\\\\\\\\))(?<destination_raw>(?!\\\\\\\\<)(?:(?:[^\\\\\\\\p{Cc}\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\(\\\\\\\\)]|\\\\\\\\\\\\\\\\[\\\\\\\\(\\\\\\\\)\\\\\\\\\\\\\\\\]?)|\\\\\\\\(\\\\\\\\g<destination_raw>*\\\\\\\\))+){0}\"},{\"captures\":{\"1\":{\"name\":\"string.other.end.mdx\"},\"2\":{\"name\":\"string.other.begin.mdx\"},\"3\":{\"name\":\"entity.name.identifier.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"4\":{\"name\":\"string.other.end.mdx\"}},\"match\":\"(\\\\\\\\])(\\\\\\\\[)((?:[^\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\\\\]]|\\\\\\\\\\\\\\\\[\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\\\\]]?)+?)(\\\\\\\\])\"},{\"captures\":{\"1\":{\"name\":\"string.other.end.mdx\"}},\"match\":\"(\\\\\\\\])\"}]},\"commonmark-label-start\":{\"patterns\":[{\"match\":\"\\\\\\\\!\\\\\\\\[(?!\\\\\\\\^)\",\"name\":\"string.other.begin.image.mdx\"},{\"match\":\"\\\\\\\\[\",\"name\":\"string.other.begin.link.mdx\"}]},\"commonmark-list-item\":{\"patterns\":[{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*((?:[*+-]))(?:[ ]{4}(?![ ])|\\\\\\\\t)(\\\\\\\\[[\\\\\\\\t Xx]\\\\\\\\](?=[\\\\\\\\t\\\\\\\\n\\\\\\\\r ]+(?:$|[^\\\\\\\\t\\\\\\\\n\\\\\\\\r ])))?\",\"beginCaptures\":{\"1\":{\"name\":\"variable.unordered.list.mdx\"},\"2\":{\"name\":\"keyword.other.tasklist.mdx\"}},\"patterns\":[{\"include\":\"#markdown-sections\"}],\"while\":\"^(?=[\\\\\\\\t ]*$)|(?:^|\\\\\\\\G)(?:[ ]{4}|\\\\\\\\t)[ ]{1}\"},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*((?:[*+-]))(?:[ ]{3}(?![ ]))(\\\\\\\\[[\\\\\\\\t Xx]\\\\\\\\](?=[\\\\\\\\t\\\\\\\\n\\\\\\\\r ]+(?:$|[^\\\\\\\\t\\\\\\\\n\\\\\\\\r ])))?\",\"beginCaptures\":{\"1\":{\"name\":\"variable.unordered.list.mdx\"},\"2\":{\"name\":\"keyword.other.tasklist.mdx\"}},\"patterns\":[{\"include\":\"#markdown-sections\"}],\"while\":\"^(?=[\\\\\\\\t ]*$)|(?:^|\\\\\\\\G)(?:[ ]{4}|\\\\\\\\t)\"},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*((?:[*+-]))(?:[ ]{2}(?![ ]))(\\\\\\\\[[\\\\\\\\t Xx]\\\\\\\\](?=[\\\\\\\\t\\\\\\\\n\\\\\\\\r ]+(?:$|[^\\\\\\\\t\\\\\\\\n\\\\\\\\r ])))?\",\"beginCaptures\":{\"1\":{\"name\":\"variable.unordered.list.mdx\"},\"2\":{\"name\":\"keyword.other.tasklist.mdx\"}},\"patterns\":[{\"include\":\"#markdown-sections\"}],\"while\":\"^(?=[\\\\\\\\t ]*$)|(?:^|\\\\\\\\G)[ ]{3}\"},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*((?:[*+-]))(?:[ ]{1}|(?=\\\\\\\\n))(\\\\\\\\[[\\\\\\\\t Xx]\\\\\\\\](?=[\\\\\\\\t\\\\\\\\n\\\\\\\\r ]+(?:$|[^\\\\\\\\t\\\\\\\\n\\\\\\\\r ])))?\",\"beginCaptures\":{\"1\":{\"name\":\"variable.unordered.list.mdx\"},\"2\":{\"name\":\"keyword.other.tasklist.mdx\"}},\"patterns\":[{\"include\":\"#markdown-sections\"}],\"while\":\"^(?=[\\\\\\\\t ]*$)|(?:^|\\\\\\\\G)[ ]{2}\"},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*([0-9]{9})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{4}(?![ ])|\\\\\\\\t(?![\\\\\\\\t ]))(\\\\\\\\[[\\\\\\\\t Xx]\\\\\\\\](?=[\\\\\\\\t\\\\\\\\n\\\\\\\\r ]+(?:$|[^\\\\\\\\t\\\\\\\\n\\\\\\\\r ])))?\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.number.mdx\"},\"2\":{\"name\":\"variable.ordered.list.mdx\"},\"3\":{\"name\":\"keyword.other.tasklist.mdx\"}},\"patterns\":[{\"include\":\"#markdown-sections\"}],\"while\":\"^(?=[\\\\\\\\t ]*$)|(?:^|\\\\\\\\G)(?:[ ]{4}|\\\\\\\\t){3}[ ]{2}\"},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(?:([0-9]{9})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{3}(?![ ]))|([0-9]{8})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{4}(?![ ])))(\\\\\\\\[[\\\\\\\\t Xx]\\\\\\\\](?=[\\\\\\\\t\\\\\\\\n\\\\\\\\r ]+(?:$|[^\\\\\\\\t\\\\\\\\n\\\\\\\\r ])))?\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.number.mdx\"},\"2\":{\"name\":\"variable.ordered.list.mdx\"},\"3\":{\"name\":\"string.other.number.mdx\"},\"4\":{\"name\":\"variable.ordered.list.mdx\"},\"5\":{\"name\":\"keyword.other.tasklist.mdx\"}},\"patterns\":[{\"include\":\"#markdown-sections\"}],\"while\":\"^(?=[\\\\\\\\t ]*$)|(?:^|\\\\\\\\G)(?:[ ]{4}|\\\\\\\\t){3}[ ]{1}\"},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(?:([0-9]{9})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{2}(?![ ]))|([0-9]{8})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{3}(?![ ]))|([0-9]{7})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{4}(?![ ])))(\\\\\\\\[[\\\\\\\\t Xx]\\\\\\\\](?=[\\\\\\\\t\\\\\\\\n\\\\\\\\r ]+(?:$|[^\\\\\\\\t\\\\\\\\n\\\\\\\\r ])))?\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.number.mdx\"},\"2\":{\"name\":\"variable.ordered.list.mdx\"},\"3\":{\"name\":\"string.other.number.mdx\"},\"4\":{\"name\":\"variable.ordered.list.mdx\"},\"5\":{\"name\":\"string.other.number.mdx\"},\"6\":{\"name\":\"variable.ordered.list.mdx\"},\"7\":{\"name\":\"keyword.other.tasklist.mdx\"}},\"patterns\":[{\"include\":\"#markdown-sections\"}],\"while\":\"^(?=[\\\\\\\\t ]*$)|(?:^|\\\\\\\\G)(?:[ ]{4}|\\\\\\\\t){3}\"},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(?:([0-9]{9})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{1}|(?=[ \\\\\\\\t]*\\\\\\\\n))|([0-9]{8})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{2}(?![ ]))|([0-9]{7})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{3}(?![ ]))|([0-9]{6})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{4}(?![ ])))(\\\\\\\\[[\\\\\\\\t Xx]\\\\\\\\](?=[\\\\\\\\t\\\\\\\\n\\\\\\\\r ]+(?:$|[^\\\\\\\\t\\\\\\\\n\\\\\\\\r ])))?\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.number.mdx\"},\"2\":{\"name\":\"variable.ordered.list.mdx\"},\"3\":{\"name\":\"string.other.number.mdx\"},\"4\":{\"name\":\"variable.ordered.list.mdx\"},\"5\":{\"name\":\"string.other.number.mdx\"},\"6\":{\"name\":\"variable.ordered.list.mdx\"},\"7\":{\"name\":\"string.other.number.mdx\"},\"8\":{\"name\":\"variable.ordered.list.mdx\"},\"9\":{\"name\":\"keyword.other.tasklist.mdx\"}},\"patterns\":[{\"include\":\"#markdown-sections\"}],\"while\":\"^(?=[\\\\\\\\t ]*$)|(?:^|\\\\\\\\G)(?:[ ]{4}|\\\\\\\\t){2}[ ]{3}\"},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(?:([0-9]{8})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{1}|(?=[ \\\\\\\\t]*\\\\\\\\n))|([0-9]{7})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{2}(?![ ]))|([0-9]{6})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{3}(?![ ]))|([0-9]{5})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{4}(?![ ])))(\\\\\\\\[[\\\\\\\\t Xx]\\\\\\\\](?=[\\\\\\\\t\\\\\\\\n\\\\\\\\r ]+(?:$|[^\\\\\\\\t\\\\\\\\n\\\\\\\\r ])))?\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.number.mdx\"},\"2\":{\"name\":\"variable.ordered.list.mdx\"},\"3\":{\"name\":\"string.other.number.mdx\"},\"4\":{\"name\":\"variable.ordered.list.mdx\"},\"5\":{\"name\":\"string.other.number.mdx\"},\"6\":{\"name\":\"variable.ordered.list.mdx\"},\"7\":{\"name\":\"string.other.number.mdx\"},\"8\":{\"name\":\"variable.ordered.list.mdx\"},\"9\":{\"name\":\"keyword.other.tasklist.mdx\"}},\"patterns\":[{\"include\":\"#markdown-sections\"}],\"while\":\"^(?=[\\\\\\\\t ]*$)|(?:^|\\\\\\\\G)(?:[ ]{4}|\\\\\\\\t){2}[ ]{2}\"},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(?:([0-9]{7})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{1}|(?=[ \\\\\\\\t]*\\\\\\\\n))|([0-9]{6})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{2}(?![ ]))|([0-9]{5})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{3}(?![ ]))|([0-9]{4})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{4}(?![ ])))(\\\\\\\\[[\\\\\\\\t Xx]\\\\\\\\](?=[\\\\\\\\t\\\\\\\\n\\\\\\\\r ]+(?:$|[^\\\\\\\\t\\\\\\\\n\\\\\\\\r ])))?\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.number.mdx\"},\"2\":{\"name\":\"variable.ordered.list.mdx\"},\"3\":{\"name\":\"string.other.number.mdx\"},\"4\":{\"name\":\"variable.ordered.list.mdx\"},\"5\":{\"name\":\"string.other.number.mdx\"},\"6\":{\"name\":\"variable.ordered.list.mdx\"},\"7\":{\"name\":\"string.other.number.mdx\"},\"8\":{\"name\":\"variable.ordered.list.mdx\"},\"9\":{\"name\":\"keyword.other.tasklist.mdx\"}},\"patterns\":[{\"include\":\"#markdown-sections\"}],\"while\":\"^(?=[\\\\\\\\t ]*$)|(?:^|\\\\\\\\G)(?:[ ]{4}|\\\\\\\\t){2}[ ]{1}\"},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(?:([0-9]{6})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{1}|(?=[ \\\\\\\\t]*\\\\\\\\n))|([0-9]{5})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{2}(?![ ]))|([0-9]{4})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{3}(?![ ]))|([0-9]{3})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{4}(?![ ])))(\\\\\\\\[[\\\\\\\\t Xx]\\\\\\\\](?=[\\\\\\\\t\\\\\\\\n\\\\\\\\r ]+(?:$|[^\\\\\\\\t\\\\\\\\n\\\\\\\\r ])))?\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.number.mdx\"},\"2\":{\"name\":\"variable.ordered.list.mdx\"},\"3\":{\"name\":\"string.other.number.mdx\"},\"4\":{\"name\":\"variable.ordered.list.mdx\"},\"5\":{\"name\":\"string.other.number.mdx\"},\"6\":{\"name\":\"variable.ordered.list.mdx\"},\"7\":{\"name\":\"string.other.number.mdx\"},\"8\":{\"name\":\"variable.ordered.list.mdx\"},\"9\":{\"name\":\"keyword.other.tasklist.mdx\"}},\"patterns\":[{\"include\":\"#markdown-sections\"}],\"while\":\"^(?=[\\\\\\\\t ]*$)|(?:^|\\\\\\\\G)(?:[ ]{4}|\\\\\\\\t){2}\"},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(?:([0-9]{5})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{1}|(?=[ \\\\\\\\t]*\\\\\\\\n))|([0-9]{4})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{2}(?![ ]))|([0-9]{3})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{3}(?![ ]))|([0-9]{2})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{4}(?![ ])))(\\\\\\\\[[\\\\\\\\t Xx]\\\\\\\\](?=[\\\\\\\\t\\\\\\\\n\\\\\\\\r ]+(?:$|[^\\\\\\\\t\\\\\\\\n\\\\\\\\r ])))?\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.number.mdx\"},\"2\":{\"name\":\"variable.ordered.list.mdx\"},\"3\":{\"name\":\"string.other.number.mdx\"},\"4\":{\"name\":\"variable.ordered.list.mdx\"},\"5\":{\"name\":\"string.other.number.mdx\"},\"6\":{\"name\":\"variable.ordered.list.mdx\"},\"7\":{\"name\":\"string.other.number.mdx\"},\"8\":{\"name\":\"variable.ordered.list.mdx\"},\"9\":{\"name\":\"keyword.other.tasklist.mdx\"}},\"patterns\":[{\"include\":\"#markdown-sections\"}],\"while\":\"^(?=[\\\\\\\\t ]*$)|(?:^|\\\\\\\\G)(?:[ ]{4}|\\\\\\\\t)[ ]{3}\"},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(?:([0-9]{4})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{1}|(?=[ \\\\\\\\t]*\\\\\\\\n))|([0-9]{3})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{2}(?![ ]))|([0-9]{2})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{3}(?![ ]))|([0-9]{1})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{4}(?![ ])))(\\\\\\\\[[\\\\\\\\t Xx]\\\\\\\\](?=[\\\\\\\\t\\\\\\\\n\\\\\\\\r ]+(?:$|[^\\\\\\\\t\\\\\\\\n\\\\\\\\r ])))?\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.number.mdx\"},\"2\":{\"name\":\"variable.ordered.list.mdx\"},\"3\":{\"name\":\"string.other.number.mdx\"},\"4\":{\"name\":\"variable.ordered.list.mdx\"},\"5\":{\"name\":\"string.other.number.mdx\"},\"6\":{\"name\":\"variable.ordered.list.mdx\"},\"7\":{\"name\":\"string.other.number.mdx\"},\"8\":{\"name\":\"variable.ordered.list.mdx\"},\"9\":{\"name\":\"keyword.other.tasklist.mdx\"}},\"patterns\":[{\"include\":\"#markdown-sections\"}],\"while\":\"^(?=[\\\\\\\\t ]*$)|(?:^|\\\\\\\\G)(?:[ ]{4}|\\\\\\\\t)[ ]{2}\"},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(?:([0-9]{3})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{1}|(?=[ \\\\\\\\t]*\\\\\\\\n))|([0-9]{2})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{2}(?![ ]))|([0-9]{1})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{3}(?![ ])))(\\\\\\\\[[\\\\\\\\t Xx]\\\\\\\\](?=[\\\\\\\\t\\\\\\\\n\\\\\\\\r ]+(?:$|[^\\\\\\\\t\\\\\\\\n\\\\\\\\r ])))?\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.number.mdx\"},\"2\":{\"name\":\"variable.ordered.list.mdx\"},\"3\":{\"name\":\"string.other.number.mdx\"},\"4\":{\"name\":\"variable.ordered.list.mdx\"},\"5\":{\"name\":\"string.other.number.mdx\"},\"6\":{\"name\":\"variable.ordered.list.mdx\"},\"7\":{\"name\":\"keyword.other.tasklist.mdx\"}},\"patterns\":[{\"include\":\"#markdown-sections\"}],\"while\":\"^(?=[\\\\\\\\t ]*$)|(?:^|\\\\\\\\G)(?:[ ]{4}|\\\\\\\\t)[ ]{1}\"},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(?:([0-9]{2})((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{1}|(?=[ \\\\\\\\t]*\\\\\\\\n))|([0-9])((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{2}(?![ ])))(\\\\\\\\[[\\\\\\\\t Xx]\\\\\\\\](?=[\\\\\\\\t\\\\\\\\n\\\\\\\\r ]+(?:$|[^\\\\\\\\t\\\\\\\\n\\\\\\\\r ])))?\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.number.mdx\"},\"2\":{\"name\":\"variable.ordered.list.mdx\"},\"3\":{\"name\":\"string.other.number.mdx\"},\"4\":{\"name\":\"variable.ordered.list.mdx\"},\"5\":{\"name\":\"keyword.other.tasklist.mdx\"}},\"patterns\":[{\"include\":\"#markdown-sections\"}],\"while\":\"^(?=[\\\\\\\\t ]*$)|(?:^|\\\\\\\\G)(?:[ ]{4}|\\\\\\\\t)\"},{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*([0-9])((?:\\\\\\\\.|\\\\\\\\)))(?:[ ]{1}|(?=[ \\\\\\\\t]*\\\\\\\\n))(\\\\\\\\[[\\\\\\\\t Xx]\\\\\\\\](?=[\\\\\\\\t\\\\\\\\n\\\\\\\\r ]+(?:$|[^\\\\\\\\t\\\\\\\\n\\\\\\\\r ])))?\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.number.mdx\"},\"2\":{\"name\":\"variable.ordered.list.mdx\"},\"3\":{\"name\":\"keyword.other.tasklist.mdx\"}},\"patterns\":[{\"include\":\"#markdown-sections\"}],\"while\":\"^(?=[\\\\\\\\t ]*$)|(?:^|\\\\\\\\G)[ ]{3}\"}]},\"commonmark-paragraph\":{\"begin\":\"(?![\\\\\\\\t ]*$)\",\"name\":\"meta.paragraph.mdx\",\"patterns\":[{\"include\":\"#markdown-text\"}],\"while\":\"(?:^|\\\\\\\\G)(?:[ ]{4}|\\\\\\\\t)\"},\"commonmark-thematic-break\":{\"match\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*([-*_])[ \\\\\\\\t]*(?:\\\\\\\\1[ \\\\\\\\t]*){2,}$\",\"name\":\"meta.separator.mdx\"},\"extension-gfm-autolink-literal\":{\"patterns\":[{\"match\":\"(?<=^|[\\\\\\\\t\\\\\\\\n\\\\\\\\r \\\\\\\\(\\\\\\\\*\\\\\\\\_\\\\\\\\[\\\\\\\\]~])(?=(?i:www)\\\\\\\\.[^\\\\\\\\n\\\\\\\\r])(?:(?:[\\\\\\\\p{L}\\\\\\\\p{N}]|-|[\\\\\\\\._](?!(?:[!\\\\\"\\'\\\\\\\\)\\\\\\\\*,\\\\\\\\.:;<\\\\\\\\?_~]*(?:[\\\\\\\\s<]|\\\\\\\\][\\\\\\\\t\\\\\\\\n \\\\\\\\(\\\\\\\\[]))))+\\\\\\\\g<path>?)?(?<path>(?:(?:[^\\\\\\\\t\\\\\\\\n\\\\\\\\r !\\\\\"&\\'\\\\\\\\(\\\\\\\\)\\\\\\\\*,\\\\\\\\.:;<\\\\\\\\?\\\\\\\\]_~]|&(?![A-Za-z]*;(?:[!\\\\\"\\'\\\\\\\\)\\\\\\\\*,\\\\\\\\.:;<\\\\\\\\?_~]*(?:[\\\\\\\\s<]|\\\\\\\\][\\\\\\\\t\\\\\\\\n \\\\\\\\(\\\\\\\\[])))|[!\\\\\"\\'\\\\\\\\)\\\\\\\\*,\\\\\\\\.:;\\\\\\\\?_~](?!(?:[!\\\\\"\\'\\\\\\\\)\\\\\\\\*,\\\\\\\\.:;<\\\\\\\\?_~]*(?:[\\\\\\\\s<]|\\\\\\\\][\\\\\\\\t\\\\\\\\n \\\\\\\\(\\\\\\\\[]))))|\\\\\\\\(\\\\\\\\g<path>*\\\\\\\\))+){0}\",\"name\":\"string.other.link.autolink.literal.www.mdx\"},{\"match\":\"(?<=^|[^A-Za-z])(?i:https?://)(?=[\\\\\\\\p{L}\\\\\\\\p{N}])(?:(?:[\\\\\\\\p{L}\\\\\\\\p{N}]|-|[\\\\\\\\._](?!(?:[!\\\\\"\\'\\\\\\\\)\\\\\\\\*,\\\\\\\\.:;<\\\\\\\\?_~]*(?:[\\\\\\\\s<]|\\\\\\\\][\\\\\\\\t\\\\\\\\n \\\\\\\\(\\\\\\\\[]))))+\\\\\\\\g<path>?)?(?<path>(?:(?:[^\\\\\\\\t\\\\\\\\n\\\\\\\\r !\\\\\"&\\'\\\\\\\\(\\\\\\\\)\\\\\\\\*,\\\\\\\\.:;<\\\\\\\\?\\\\\\\\]_~]|&(?![A-Za-z]*;(?:[!\\\\\"\\'\\\\\\\\)\\\\\\\\*,\\\\\\\\.:;<\\\\\\\\?_~]*(?:[\\\\\\\\s<]|\\\\\\\\][\\\\\\\\t\\\\\\\\n \\\\\\\\(\\\\\\\\[])))|[!\\\\\"\\'\\\\\\\\)\\\\\\\\*,\\\\\\\\.:;\\\\\\\\?_~](?!(?:[!\\\\\"\\'\\\\\\\\)\\\\\\\\*,\\\\\\\\.:;<\\\\\\\\?_~]*(?:[\\\\\\\\s<]|\\\\\\\\][\\\\\\\\t\\\\\\\\n \\\\\\\\(\\\\\\\\[]))))|\\\\\\\\(\\\\\\\\g<path>*\\\\\\\\))+){0}\",\"name\":\"string.other.link.autolink.literal.http.mdx\"},{\"match\":\"(?<=^|[^A-Za-z/])(?i:mailto:|xmpp:)?(?:[0-9A-Za-z+\\\\\\\\-\\\\\\\\._])+@(?:(?:[0-9A-Za-z]|[-_](?!(?:[!\\\\\"\\'\\\\\\\\)\\\\\\\\*,\\\\\\\\.:;<\\\\\\\\?_~]*(?:[\\\\\\\\s<]|\\\\\\\\][\\\\\\\\t\\\\\\\\n \\\\\\\\(\\\\\\\\[]))))+(?:\\\\\\\\.(?!(?:[!\\\\\"\\'\\\\\\\\)\\\\\\\\*,\\\\\\\\.:;<\\\\\\\\?_~]*(?:[\\\\\\\\s<]|\\\\\\\\][\\\\\\\\t\\\\\\\\n \\\\\\\\(\\\\\\\\[])))))+(?:[A-Za-z]|[-_](?!(?:[!\\\\\"\\'\\\\\\\\)\\\\\\\\*,\\\\\\\\.:;<\\\\\\\\?_~]*(?:[\\\\\\\\s<]|\\\\\\\\][\\\\\\\\t\\\\\\\\n \\\\\\\\(\\\\\\\\[]))))+\",\"name\":\"string.other.link.autolink.literal.email.mdx\"}]},\"extension-gfm-footnote-call\":{\"captures\":{\"1\":{\"name\":\"string.other.begin.link.mdx\"},\"2\":{\"name\":\"string.other.begin.footnote.mdx\"},\"3\":{\"name\":\"entity.name.identifier.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"4\":{\"name\":\"string.other.end.footnote.mdx\"}},\"match\":\"(\\\\\\\\[)(\\\\\\\\^)((?:[^\\\\\\\\t\\\\\\\\n\\\\\\\\r \\\\\\\\[\\\\\\\\\\\\\\\\\\\\\\\\]]|\\\\\\\\\\\\\\\\[\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\\\\]]?)+)(\\\\\\\\])\"},\"extension-gfm-footnote-definition\":{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\[)(\\\\\\\\^)((?:[^\\\\\\\\t\\\\\\\\n\\\\\\\\r \\\\\\\\[\\\\\\\\\\\\\\\\\\\\\\\\]]|\\\\\\\\\\\\\\\\[\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\\\\]]?)+)(\\\\\\\\])(:)[\\\\\\\\t ]*\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.link.mdx\"},\"2\":{\"name\":\"string.other.begin.footnote.mdx\"},\"3\":{\"name\":\"entity.name.identifier.mdx\",\"patterns\":[{\"include\":\"#markdown-string\"}]},\"4\":{\"name\":\"string.other.end.footnote.mdx\"}},\"patterns\":[{\"include\":\"#markdown-sections\"}],\"while\":\"^(?=[\\\\\\\\t ]*$)|(?:^|\\\\\\\\G)(?:[ ]{4}|\\\\\\\\t)\"},\"extension-gfm-strikethrough\":{\"match\":\"(?<=\\\\\\\\S)(?<!~)~{1,2}(?!~)|(?<!~)~{1,2}(?=\\\\\\\\S)(?!~)\",\"name\":\"string.other.strikethrough.mdx\"},\"extension-gfm-table\":{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(?=\\\\\\\\|[^\\\\\\\\n\\\\\\\\r]+\\\\\\\\|[ \\\\\\\\t]*$)\",\"end\":\"^(?=[\\\\\\\\t ]*$)|$\",\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#markdown-text\"}]}},\"match\":\"(?<=\\\\\\\\||(?:^|\\\\\\\\G))[\\\\\\\\t ]*((?:[^\\\\\\\\n\\\\\\\\r\\\\\\\\\\\\\\\\\\\\\\\\|]|\\\\\\\\\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\\\\|]?)+?)[\\\\\\\\t ]*(?=\\\\\\\\||$)\"},{\"match\":\"(?:\\\\\\\\|)\",\"name\":\"markup.list.table-delimiter.mdx\"}]},\"extension-github-gemoji\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.gemoji.begin.mdx\"},\"2\":{\"name\":\"keyword.control.gemoji.mdx\"},\"3\":{\"name\":\"punctuation.definition.gemoji.end.mdx\"}},\"match\":\"(:)((?:(?:(?:hand_with_index_finger_and_thumb_cros|mailbox_clo|fist_rai|confu)s|r(?:aised_hand_with_fingers_splay|e(?:gister|l(?:iev|ax)))|disappointed_reliev|confound|(?:a(?:ston|ngu)i|flu)sh|unamus|hush)e|(?:chart_with_(?:down|up)wards_tre|large_orange_diamo|small_(?:orang|blu)e_diamo|large_blue_diamo|parasol_on_grou|loud_sou|rewi)n|(?:rightwards_pushing_h|hourglass_flowing_s|leftwards_(?:pushing_)?h|(?:raised_back_of|palm_(?:down|up)|call_me)_h|(?:(?:(?:clippert|ascensi)on|norfolk)_is|christmas_is|desert_is|bouvet_is|new_zea|thai|eng|fin|ire)l|rightwards_h|pinching_h|writing_h|s(?:w(?:itzer|azi)|cot)l|magic_w|ok_h|icel)an|s(?:un_behind_(?:large|small|rain)_clou|hallow_pan_of_foo|tar_of_davi|leeping_be|kateboar|a(?:tisfie|uropo)|hiel|oun|qui)|(?:ear_with_hearing_a|pouring_liqu)i|(?:identification_c|(?:arrow_(?:back|for)|fast_for)w|credit_c|woman_be|biohaz|man_be|l(?:eop|iz))ar|m(?:usical_key|ortar_)boar|(?:drop_of_bl|canned_f)oo|c(?:apital_abc|upi)|person_bal|(?:black_bi|(?:cust|plac)a)r|(?:clip|key)boar|mermai|pea_po|worrie|po(?:la|u)n|threa|dv)d|(?:(?:(?:face_with_open_eyes_and_hand_over|face_with_diagonal|open|no)_mou|h(?:and_over_mou|yacin)|mammo)t|running_shirt_with_sas|(?:(?:fishing_pole_and_|blow)fi|(?:tropical_f|petri_d)i|(?:paint|tooth)bru|banglade|jellyfi)s|(?:camera_fl|wavy_d)as|triump|menora|pouc|blus|watc|das|has)h|(?:s(?:o(?:(?:uth_georgia_south_sandwich|lomon)_island|ck)|miling_face_with_three_heart|t_kitts_nevi|weat_drop|agittariu|c(?:orpiu|issor)|ymbol|hort)|twisted_rightwards_arrow|(?:northern_mariana|heard_mcdonald|(?:british_virgi|us_virgi|pitcair|cayma)n|turks_caicos|us_outlying|(?:falk|a)land|marshall|c(?:anary|ocos)|faroe)_island|(?:face_holding_back_tea|(?:c(?:ard_index_divid|rossed_fing)|pinched_fing)e|night_with_sta)r|(?:two_(?:wo)?men_holding|people_holding|heart|open)_hand|(?:sunrise_over_mountai|(?:congratul|united_n)atio|jea)n|(?:caribbean_)?netherland|(?:f(?:lower_playing_car|ace_in_clou)|crossed_swor|prayer_bea)d|(?:money_with_win|nest_with_eg|crossed_fla|hotsprin)g|revolving_heart|(?:high_brightne|(?:expression|wire)le|(?:tumbler|wine)_gla|milk_gla|compa|dre)s|performing_art|earth_america|orthodox_cros|l(?:ow_brightnes|a(?:tin_cros|o)|ung)|no_pedestrian|c(?:ontrol_kno|lu)b|b(?:ookmark_tab|rick|ean)|nesting_doll|cook_island|(?:fleur_de_l|tenn)i|(?:o(?:ncoming_b|phiuch|ctop)|hi(?:ppopotam|bisc)|trolleyb|m(?:(?:rs|x)_cla|auriti|inib)|belar|cact|abac|(?:cyp|tau)r)u|medal_sport|(?:chopstic|firewor)k|rhinocero|(?:p(?:aw_prin|eanu)|footprin)t|two_heart|princes|(?:hondur|baham)a|barbado|aquariu|c(?:ustom|hain)|maraca|comoro|flag|wale|hug|vh)s|(?:(?:diamond_shape_with_a_dot_ins|playground_sl)id|(?:(?:first_quarter|last_quarter|full|new)_moon_with|(?:zipper|money)_mouth|dotted_line|upside_down|c(?:rying_c|owboy_h)at|(?:disguis|nauseat)ed|neutral|monocle|panda|tired|woozy|clown|nerd|zany|fox)_fac|s(?:t(?:uck_out_tongue_winking_ey|eam_locomotiv)|(?:lightly_(?:frown|smil)|neez|h(?:ush|ak))ing_fac|(?:tudio_micropho|(?:hinto_shr|lot_mach)i|ierra_leo|axopho)n|mall_airplan|un_with_fac|a(?:luting_fac|tellit|k)|haved_ic|y(?:nagogu|ring)|n(?:owfl)?ak|urinam|pong)|(?:black_(?:medium_)?small|white_(?:(?:medium_)?small|large)|(?:black|white)_medium|black_large|orange|purple|yellow|b(?:rown|lue)|red)_squar|(?:(?:perso|woma)n_with_|man_with_)?probing_can|(?:p(?:ut_litter_in_its_pl|outing_f)|frowning_f|cold_f|wind_f|hot_f)ac|(?:arrows_c(?:ounterc)?lockwi|computer_mou|derelict_hou|carousel_hor|c(?:ity_sunri|hee)|heartpul|briefca|racehor|pig_no|lacros)s|(?:(?:face_with_head_band|ideograph_advant|adhesive_band|under|pack)a|currency_exchan|l(?:eft_l)?ugga|woman_jud|name_bad|man_jud|jud)g|face_with_peeking_ey|(?:(?:e(?:uropean_post_off|ar_of_r)|post_off)i|information_sour|ambulan)c|artificial_satellit|(?:busts?_in_silhouet|(?:vulcan_sal|parach)u|m(?:usical_no|ayot)|ro(?:ller_ska|set)|timor_les|ice_ska)t|(?:(?:incoming|red)_envelo|s(?:ao_tome_princi|tethosco)|(?:micro|tele)sco|citysca)p|(?:(?:(?:convenience|department)_st|musical_sc)o|f(?:light_depar|ramed_pic)tu|love_you_gestu|heart_on_fi|japanese_og|cote_divoi|perseve|singapo)r|b(?:ullettrain_sid|eliz|on)|(?:(?:female_|male_)?dete|radioa)ctiv|(?:christmas|deciduous|evergreen|tanabata|palm)_tre|(?:vibration_mo|cape_ver)d|(?:fortune_cook|neckt|self)i|(?:fork_and_)?knif|athletic_sho|(?:p(?:lead|arty)|drool|curs|melt|yawn|ly)ing_fac|vomiting_fac|(?:(?:c(?:urling_st|ycl)|meat_on_b|repeat_|headst)o|(?:fire_eng|tanger|ukra)i|rice_sce|(?:micro|i)pho|champag|pho)n|(?:cricket|video)_gam|(?:boxing_glo|oli)v|(?:d(?:ragon|izzy)|monkey)_fac|(?:m(?:artin|ozamb)iq|fond)u|wind_chim|test_tub|flat_sho|m(?:a(?:ns_sho|t)|icrob|oos|ut)|(?:handsh|fish_c|moon_c|cupc)ak|nail_car|zimbabw|ho(?:neybe|l)|ice_cub|airplan|pensiv|c(?:a(?:n(?:dl|o)|k)|o(?:ffe|oki))|tongu|purs|f(?:lut|iv)|d(?:at|ov)|n(?:iu|os)|kit|rag|ax)e|(?:(?:british_indian_ocean_territo|(?:plate_with_cutl|batt)e|medal_milita|low_batte|hunga|wea)r|family_(?:woman_(?:woman_(?:girl|boy)|girl|boy)|man_(?:woman_(?:girl|boy)|man_(?:girl|boy)|girl|boy))_bo|person_feeding_bab|woman_feeding_bab|s(?:u(?:spension_railwa|nn)|t(?:atue_of_libert|_barthelem|rawberr))|(?:m(?:ountain_cable|ilky_)|aerial_tram)wa|articulated_lorr|man_feeding_bab|mountain_railwa|partly_sunn|(?:vatican_c|infin)it|(?:outbox_tr|inbox_tr|birthd|motorw|paragu|urugu|norw|x_r)a|butterfl|ring_buo|t(?:urke|roph)|angr|fogg)y|(?:(?:perso|woma)n_in_motorized_wheelchai|(?:(?:notebook_with_decorative_c|four_leaf_cl)ov|(?:index_pointing_at_the_vie|white_flo)w|(?:face_with_thermome|non\\\\\\\\-potable_wa|woman_firefigh|desktop_compu|m(?:an_firefigh|otor_scoo)|(?:ro(?:ller_coa|o)|oy)s|potable_wa|kick_scoo|thermome|firefigh|helicop|ot)t|(?:woman_factory_wor|(?:woman_office|woman_health|health)_wor|man_(?:factory|office|health)_wor|(?:factory|office)_wor|rice_crac|black_jo|firecrac)k|telephone_receiv|(?:palms_up_toget|f(?:ire_extinguis|eat)|teac)h|(?:(?:open_)?file_fol|level_sli)d|police_offic|f(?:lying_sauc|arm)|woman_teach|roll_of_pap|(?:m(?:iddle_f|an_s)in|woman_sin|hambur|plun|dag)g|do_not_litt|wilted_flow|woman_farm|man_(?:teach|farm)|(?:bell_pe|hot_pe|fli)pp|l(?:o(?:udspeak|ve_lett|bst)|edg|add)|tokyo_tow|c(?:ucumb|lapp|anc)|b(?:e(?:ginn|av)|adg)|print|hamst)e|(?:perso|woma)n_in_manual_wheelchai|m(?:an(?:_in_motorized|(?:_in_man)?ual)|otorized)_wheelchai|(?:person_(?:white|curly|red)_|wheelc)hai|triangular_rule|(?:film_project|e(?:l_salv|cu)ad|elevat|tract|anch)o|s(?:traight_rul|pace_invad|crewdriv|nowboard|unflow|peak|wimm|ing|occ|how|urf|ki)e|r(?:ed_ca|unne|azo)|d(?:o(?:lla|o)|ee)|barbe)r|(?:(?:cloud_with_(?:lightning_and_)?ra|japanese_gobl|round_pushp|liechtenste|mandar|pengu|dolph|bahra|pushp|viol)i|(?:couple(?:_with_heart_wo|kiss_)man|construction_worker|(?:mountain_bik|bow|row)ing|lotus_position|(?:w(?:eight_lift|alk)|climb)ing|white_haired|curly_haired|raising_hand|super(?:villain|hero)|red_haired|basketball|s(?:(?:wimm|urf)ing|assy)|haircut|no_good|(?:vampir|massag)e|b(?:iking|ald)|zombie|fairy|mage|elf|ng)_(?:wo)?ma|(?:(?:couple_with_heart_man|isle_of)_m|(?:couplekiss_woman_|(?:b(?:ouncing_ball|lond_haired)|tipping_hand|pregnant|kneeling|deaf)_|frowning_|s(?:tanding|auna)_|po(?:uting_|lice)|running_|blonde_|o(?:lder|k)_)wom|(?:perso|woma)n_with_turb|(?:b(?:ouncing_ball|lond_haired)|tipping_hand|pregnant|kneeling|deaf)_m|f(?:olding_hand_f|rowning_m)|man_with_turb|(?:turkmen|afghan|pak)ist|s(?:tanding_m|(?:outh_s)?ud|auna_m)|po(?:uting_|lice)m|running_m|azerbaij|k(?:yrgyz|azakh)st|tajikist|uzbekist|o(?:lder_m|k_m|ce)|(?:orang|bh)ut|taiw|jord)a|s(?:mall_red_triangle_dow|(?:valbard_jan_may|int_maart|ev)e|afety_pi|top_sig|t_marti|(?:corpi|po|o)o|wede)|(?:heavy_(?:d(?:ivision|ollar)|equals|minus|plus)|no_entry|female|male)_sig|(?:arrow_(?:heading|double)_d|p(?:erson_with_cr|oint_d)|arrow_up_d|thumbsd)ow|(?:house_with_gard|l(?:ock_with_ink_p|eafy_gre)|dancing_(?:wo)?m|fountain_p|keycap_t|chick|ali|yem|od)e|(?:izakaya|jack_o)_lanter|(?:funeral_u|(?:po(?:stal_h|pc)|capric)o|unico)r|chess_paw|b(?:a(?:llo|c)o|eni|rai)|l(?:anter|io)|c(?:o(?:ff)?i|row)|melo|rame|oma|yar)n|(?:s(?:t(?:uck_out_tongue_closed_ey|_vincent_grenadin)|kull_and_crossbon|unglass|pad)|(?:french_souther|palestinia)n_territori|(?:face_with_spiral|kissing_smiling)_ey|united_arab_emirat|kissing_closed_ey|(?:clinking_|dark_sun|eye)glass|(?:no_mobile_|head)phon|womans_cloth|b(?:allet_sho|lueberri)|philippin|(?:no_bicyc|seychel)l|roll_ey|(?:cher|a)ri|p(?:ancak|isc)|maldiv|leav)es|(?:f(?:amily_(?:woman_(?:woman_)?|man_(?:woman_|man_)?)girl_gir|earfu)|(?:woman_playing_hand|m(?:an_playing_hand|irror_)|c(?:onfetti|rystal)_|volley|track|base|8)bal|(?:(?:m(?:ailbox_with_(?:no_)?m|onor)|cockt|e\\\\\\\\-m)a|(?:person|bride|woman)_with_ve|man_with_ve|light_ra|braz|ema)i|(?:transgender|baby)_symbo|passport_contro|(?:arrow_(?:down|up)_sm|rice_b|footb)al|(?:dromedary_cam|ferris_whe|love_hot|high_he|pretz|falaf|isra)e|page_with_cur|me(?:dical_symbo|ta)|(?:n(?:ewspaper_ro|o_be)|bellhop_be)l|rugby_footbal|s(?:chool_satche|(?:peak|ee)_no_evi|oftbal|crol|anda|nai|hel)|(?:peace|atom)_symbo|hear_no_evi|cora|hote|bage|labe|rof|ow)l|(?:(?:negative_squared_cross|heavy_exclamation|part_alternation)_mar|(?:eight_spoked_)?asteris|(?:ballot_box_with_che|(?:(?:mantelpiece|alarm|timer)_c|un)lo|(?:ha(?:(?:mmer_and|ir)_p|tch(?:ing|ed)_ch)|baby_ch|joyst)i|railway_tra|lipsti|peaco)c|heavy_check_mar|white_check_mar|tr(?:opical_drin|uc)|national_par|pickup_truc|diving_mas|floppy_dis|s(?:tar_struc|hamroc|kun|har)|chipmun|denmar|duc|hoo|lin)k|(?:leftwards_arrow_with_h|arrow_right_h|(?:o(?:range|pen)|closed|blue)_b)ook|(?:woman_playing_water_pol|m(?:an(?:_(?:playing_water_pol|with_gua_pi_ma|in_tuxed)|g)|ontenegr|o(?:roc|na)c|e(?:xic|tr|m))|(?:perso|woma)n_in_tuxed|(?:trinidad_toba|vir)g|water_buffal|b(?:urkina_fas|a(?:mbo|nj)|ent)|puerto_ric|water_pol|flaming|kangaro|(?:mosqu|burr)it|(?:avoc|torn)ad|curaca|lesoth|potat|ko(?:sov|k)|tomat|d(?:ang|od)|yo_y|hoch|t(?:ac|og)|zer)o|(?:c(?:entral_african|zech)|dominican)_republic|(?:eight_pointed_black_s|six_pointed_s|qa)tar|(?:business_suit_levitat|(?:classical_buil|breast_fee)d|(?:woman_cartwhee|m(?:an_(?:cartwhee|jugg)|en_wrest)|women_wrest|woman_jugg|face_exha|cartwhee|wrest|dump)l|c(?:hildren_cross|amp)|woman_facepalm|woman_shrugg|man_(?:facepalm|shrugg)|people_hugg|(?:person_fe|woman_da|man_da)nc|fist_oncom|horse_rac|(?:no_smo|thin)k|laugh|s(?:eedl|mok)|park|w(?:arn|edd))ing|f(?:a(?:mily(?:_(?:woman_(?:woman_(?:girl|boy)|girl|boy)|man_(?:woman_(?:girl|boy)|man_(?:girl|boy)|girl|boy)))?|ctory)|o(?:u(?:ntain|r)|ot|g)|r(?:owning)?|i(?:re|s[ht])|ly|u)|(?:(?:(?:information_desk|handball|bearded)_|(?:frowning|ok)_|juggling_|mer)pers|(?:previous_track|p(?:lay_or_p)?ause|black_square|white_square|next_track|r(?:ecord|adio)|eject)_butt|(?:wa[nx]ing_(?:crescent|gibbous)_m|bowl_with_sp|crescent_m|racc)o|(?:b(?:ouncing_ball|lond_haired)|tipping_hand|pregnant|kneeling|deaf)_pers|s(?:t(?:_pierre_miquel|op_butt|ati)|tanding_pers|peech_ballo|auna_pers)|r(?:eminder_r)?ibb|thought_ballo|watermel|badmint|c(?:amero|ray)|le(?:ban|m)|oni|bis)on|(?:heavy_heart_exclama|building_construc|heart_decora|exclama)tion|(?:(?:triangular_flag_on_po|(?:(?:woman_)?technolog|m(?:ountain_bicycl|an_technolog)|bicycl)i|(?:wo)?man_scienti|(?:wo)?man_arti|s(?:afety_ve|cienti)|empty_ne)s|(?:vertical_)?traffic_ligh|(?:rescue_worker_helm|military_helm|nazar_amul|city_suns|wastebask|dropl|t(?:rump|oil)|bouqu|buck|magn|secr)e|one_piece_swimsui|(?:(?:arrow_(?:low|upp)er|point)_r|bridge_at_n|copyr|mag_r)igh|(?:bullettrain_fro|(?:potted_pl|croiss|e(?:ggpl|leph))a)n|s(?:t(?:ar_and_cresc|ud)en|cream_ca|mi(?:ley?|rk)_ca|(?:peed|ail)boa|hir)|(?:arrow_(?:low|upp)er|point)_lef|woman_astronau|r(?:o(?:tating_ligh|cke)|eceip)|heart_eyes_ca|man_astronau|(?:woman_stud|circus_t|man_stud|trid)en|(?:ringed_pla|file_cabi)ne|nut_and_bol|(?:older_)?adul|k(?:i(?:ssing_ca|wi_frui)|uwai|no)|(?:pouting_c|c(?:ut_of_m|old_sw)e|womans_h|montserr|(?:(?:motor_|row)b|lab_c)o|heartbe|toph)a|(?:woman_pil|honey_p|man_pil|[cp]arr|teap|rob)o|hiking_boo|arrow_lef|fist_righ|flashligh|f(?:ist_lef|ee)|black_ca|astronau|(?:c(?:hest|oco)|dough)nu|innocen|joy_ca|artis|(?:acce|egy)p|co(?:me|a)|pilo)t|(?:heavy_multiplication_|t\\\\\\\\-re)x|(?:s(?:miling_face_with_te|piral_calend)|oncoming_police_c|chocolate_b|ra(?:ilway|cing)_c|police_c|polar_be|teddy_be|madagasc|blue_c|calend|myanm)ar|c(?:l(?:o(?:ud(?:_with_lightning)?|ck(?:1[0-2]?|[2-9]))|ap)?|o(?:uple(?:_with_heart|kiss)?|nstruction|mputer|ok|p|w)|a(?:r(?:d_index)?|mera)|r(?:icket|y)|h(?:art|ild))|(?:m(?:artial_arts_unifo|echanical_a)r|(?:cherry_)?blosso|b(?:aggage_clai|roo)|ice_?crea|facepal|mushroo|restroo|vietna|dru|yu)m|(?:woman_with_headscar|m(?:obile_phone_of|aple_lea)|fallen_lea|wol)f|(?:(?:closed_lock_with|old)_|field_hoc|ice_hoc|han|don)key|g(?:lobe_with_meridians|r(?:e(?:y_(?:exclama|ques)tion|e(?:n(?:_(?:square|circle|salad|apple|heart|book)|land)|ce)|y_heart|nada)|i(?:mac|nn)ing|apes)|u(?:inea_bissau|ernsey|am|n)|(?:(?:olfing|enie)_(?:wo)?|uards(?:wo)?)man|(?:inger_roo|oal_ne|hos)t|(?:uadeloup|ame_di|iraff|oos)e|ift_heart|i(?:braltar|rl)|(?:uatemal|(?:eorg|amb)i|orill|uyan|han)a|uide_dog|(?:oggl|lov)es|arlic|emini|uitar|abon|oat|ear|b)|construction_worker|(?:(?:envelope_with|bow_and)_ar|left_right_ar|raised_eyeb)row|(?:(?:oncoming_automob|crocod)i|right_anger_bubb|l(?:eft_speech_bubb|otion_bott|ady_beet)|congo_brazzavil|eye_speech_bubb|(?:large_blue|orange|purple|yellow|brown)_circ|(?:(?:european|japanese)_cas|baby_bot)t|b(?:alance_sca|eet)|s(?:ewing_need|weat_smi)|(?:black|white|red)_circ|(?:motor|re)cyc|pood|turt|tama|waff|musc|eag)le|first_quarter_moon|s(?:m(?:all_red_triangle|i(?:ley?|rk))|t(?:uck_out_tongue|ar)|hopping|leeping|p(?:arkle|ider)|unrise|nowman|chool|cream|k(?:ull|i)|weat|ix|a)|(?:(?:b(?:osnia_herzegovi|ana)|wallis_futu|(?:french_gui|botsw)a|argenti|st_hele)n|(?:(?:equatorial|papua_new)_guin|north_kor|eritr)e|t(?:ristan_da_cunh|ad)|(?:(?:(?:french_poly|indo)ne|tuni)s|(?:new_caledo|ma(?:urita|cedo)|lithua|(?:tanz|alb|rom)a|arme|esto)n|diego_garc|s(?:audi_arab|t_luc|lov(?:ak|en)|omal|erb)|e(?:arth_as|thiop)|m(?:icrone|alay)s|(?:austra|mongo)l|c(?:ambod|roat)|(?:bulga|alge)r|(?:colom|nami|zam)b|boliv|l(?:iber|atv))i|(?:wheel_of_dhar|cine|pana)m|(?:(?:(?:closed|beach|open)_)?umbrel|ceuta_melil|venezue|ang(?:uil|o)|koa)l|c(?:ongo_kinshas|anad|ub)|(?:western_saha|a(?:mpho|ndor)|zeb)r|american_samo|video_camer|m(?:o(?:vie_camer|ldov)|alt|eg)|(?:earth_af|costa_)ric|s(?:outh_afric|ri_lank|a(?:mo|nt))|bubble_te|(?:antarct|jama)ic|ni(?:caragu|geri|nj)|austri|pi(?:nat|zz)|arub|k(?:eny|aab)|indi|u7a7|l(?:lam|ib[ry])|dn)a|l(?:ast_quarter_moon|o(?:tus|ck)|ips|eo)|(?:hammer_and_wren|c(?:ockroa|hur)|facepun|wren|crut|pun)ch|s(?:nowman_with_snow|ignal_strength|weet_potato|miling_imp|p(?:ider_web|arkle[rs])|w(?:im_brief|an)|a(?:n(?:_marino|dwich)|lt)|topwatch|t(?:a(?:dium|r[2s])|ew)|l(?:e(?:epy|d)|oth)|hrimp|yria|carf|(?:hee|oa)p|ea[lt]|h(?:oe|i[pt])|o[bs])|(?:s(?:tuffed_flatbre|p(?:iral_notep|eaking_he))|(?:exploding_h|baguette_br|flatbr)e)ad|(?:arrow_(?:heading|double)_u|(?:p(?:lace_of_wor|assenger_)sh|film_str|tul)i|page_facing_u|biting_li|(?:billed_c|world_m)a|mouse_tra|(?:curly_lo|busst)o|thumbsu|lo(?:llip)?o|clam|im)p|(?:anatomical|light_blue|sparkling|kissing|mending|orange|purple|yellow|broken|b(?:rown|l(?:ack|ue))|pink)_heart|(?:(?:transgender|black)_fla|mechanical_le|(?:checkered|pirate)_fla|electric_plu|rainbow_fla|poultry_le|service_do|white_fla|luxembour|fried_eg|moneyba|h(?:edgeh|otd)o|shru)g|(?:cloud_with|mountain)_snow|(?:(?:antigua_barb|berm)u|(?:kh|ug)an|rwan)da|(?:3r|2n)d_place_medal|1(?:st_place_medal|234|00)|lotus_position|(?:w(?:eight_lift|alk)|climb)ing|(?:(?:cup_with_str|auto_ricksh)a|carpentry_sa|windo|jigsa)w|(?:(?:couch_and|diya)_la|f(?:ried_shri|uelpu))mp|(?:woman_mechan|man_mechan|alemb)ic|(?:european_un|accord|collis|reun)ion|(?:flight_arriv|hospit|portug|seneg|nep)al|card_file_box|(?:(?:oncoming_)?tax|m(?:o(?:unt_fuj|ya)|alaw)|s(?:paghett|ush|ar)|b(?:r(?:occol|une)|urund)|(?:djibou|kiriba)t|hait|fij)i|(?:shopping_c|white_he|bar_ch)art|d(?:isappointed|ominica|e(?:sert)?)|raising_hand|super(?:villain|hero)|b(?:e(?:verage_box|ers|d)|u(?:bbles|lb|g)|i(?:k(?:ini|e)|rd)|o(?:o(?:ks|t)|a[rt]|y)|read|a[cn]k)|ra(?:ised_hands|bbit2|t)|(?:hindu_tem|ap)ple|thong_sandal|a(?:r(?:row_(?:right|down|up)|t)|bc?|nt)?|r(?:a(?:i(?:sed_hand|nbow)|bbit|dio|m)|u(?:nning)?|epeat|i(?:ng|ce)|o(?:ck|se))|takeout_box|(?:flying_|mini)disc|(?:(?:interrob|yin_y)a|b(?:o(?:omera|wli)|angba)|(?:ping_p|hong_k)o|calli|mahjo)ng|b(?:a(?:llot_box|sket|th?|by)|o(?:o(?:k(?:mark)?|m)|w)|u(?:tter|s)|e(?:ll|er?|ar))?|heart_eyes|basketball|(?:paperclip|dancer|ticket)s|point_up_2|(?:wo)?man_cook|n(?:ew(?:spaper)?|o(?:tebook|_entry)|iger)|t(?:e(?:lephone|a)|o(?:oth|p)|r(?:oll)?|wo)|h(?:o(?:u(?:rglass|se)|rse)|a(?:mmer|nd)|eart)|paperclip|full_moon|(?:b(?:lack_ni|athtu|om)|her)b|(?:long|oil)_drum|pineapple|(?:clock(?:1[0-2]?|[2-9])3|u6e8)0|p(?:o(?:int_up|ut)|r(?:ince|ay)|i(?:ck|g)|en)|e(?:nvelope|ight|u(?:ro)?|gg|ar|ye|s)|m(?:o(?:u(?:ntain|se)|nkey|on)|echanic|a(?:ilbox|g|n)|irror)?|new_moon|d(?:iamonds|olls|art)|question|k(?:iss(?:ing)?|ey)|haircut|no_good|(?:vampir|massag)e|g(?:olf(?:ing)?|u(?:inea|ard)|e(?:nie|m)|ift|rin)|h(?:a(?:ndbag|msa)|ouses|earts|ut)|postbox|toolbox|(?:pencil|t(?:rain|iger)|whale|cat|dog)2|belgium|(?:volca|kimo)no|(?:vanuat|tuval|pala|naur|maca)u|tokelau|o(?:range|ne?|m|k)?|office|dancer|ticket|dragon|pencil|zombie|w(?:o(?:mens|rm|od)|ave|in[gk]|c)|m(?:o(?:sque|use2)|e(?:rman|ns)|a(?:li|sk))|jersey|tshirt|w(?:heel|oman)|dizzy|j(?:apan|oy)|t(?:rain|iger)|whale|fairy|a(?:nge[lr]|bcd|tm)|c(?:h(?:a(?:ir|d)|ile)|a(?:ndy|mel)|urry|rab|o(?:rn|ol|w2)|[dn])|p(?:ager|e(?:a(?:ch|r)|ru)|i(?:g2|ll|e)|oop)|n(?:otes|ine)|t(?:onga|hree|ent|ram|[mv])|f(?:erry|r(?:ies|ee|og)|ax)|u(?:7(?:533|981|121)|5(?:5b6|408|272)|6(?:307|70[89]))|mage|e(?:yes|nd)|i(?:ra[nq]|t)|cat|dog|elf|z(?:zz|ap)|yen|j(?:ar|p)|leg|id|u[kps]|ng|o[2x]|vs|kr|[\\\\\\\\+\\\\\\\\x2D]1|x|v)(:)\",\"name\":\"string.emoji.mdx\"},\"extension-github-mention\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.mention.begin.mdx\"},\"2\":{\"name\":\"string.other.link.mention.mdx\"}},\"match\":\"(?<![0-9A-Za-z_`])(@)((?:[0-9A-Za-z][0-9A-Za-z-]{0,38})(?:\\\\\\\\/(?:[0-9A-Za-z][0-9A-Za-z-]{0,38}))?)(?![0-9A-Za-z_`])\",\"name\":\"string.mention.mdx\"},\"extension-github-reference\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.reference.begin.mdx\"},\"2\":{\"name\":\"string.other.link.reference.security-advisory.mdx\"},\"3\":{\"name\":\"punctuation.definition.reference.begin.mdx\"},\"4\":{\"name\":\"string.other.link.reference.issue-or-pr.mdx\"}},\"match\":\"(?<![0-9A-Za-z_])(?:((?i:ghsa-|cve-))([A-Za-z0-9]+)|((?i:gh-|#))([0-9]+))(?![0-9A-Za-z_])\",\"name\":\"string.reference.mdx\"},{\"captures\":{\"1\":{\"name\":\"string.other.link.reference.user.mdx\"},\"2\":{\"name\":\"punctuation.definition.reference.begin.mdx\"},\"3\":{\"name\":\"string.other.link.reference.issue-or-pr.mdx\"}},\"match\":\"(?<![^\\\\\\\\t\\\\\\\\n\\\\\\\\r \\\\\\\\(@\\\\\\\\[\\\\\\\\{])((?:[0-9A-Za-z][0-9A-Za-z-]{0,38})(?:\\\\\\\\/(?:(?:\\\\\\\\.git[0-9A-Za-z_-]|\\\\\\\\.(?!git)|[0-9A-Za-z_-])+))?)(#)([0-9]+)(?![0-9A-Za-z_])\",\"name\":\"string.reference.mdx\"}]},\"extension-math-flow\":{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\${2,})([^\\\\\\\\n\\\\\\\\r\\\\\\\\$]*)$\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.math.flow.mdx\"},\"2\":{\"patterns\":[{\"include\":\"#markdown-string\"}]}},\"contentName\":\"markup.raw.math.flow.mdx\",\"end\":\"(\\\\\\\\1)(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.end.math.flow.mdx\"}},\"name\":\"markup.code.other.mdx\"},\"extension-math-text\":{\"captures\":{\"1\":{\"name\":\"string.other.begin.math.mdx\"},\"2\":{\"name\":\"markup.raw.math.mdx markup.inline.raw.math.mdx\"},\"3\":{\"name\":\"string.other.end.math.mdx\"}},\"match\":\"(?<!\\\\\\\\$)(\\\\\\\\${2,})(?!\\\\\\\\$)(.+?)(?<!\\\\\\\\$)(\\\\\\\\1)(?!\\\\\\\\$)\"},\"extension-mdx-esm\":{\"begin\":\"(?:^|\\\\\\\\G)(?=(?i:export|import)[ ])\",\"end\":\"^(?=[\\\\\\\\t ]*$)|$\",\"name\":\"meta.embedded.tsx\",\"patterns\":[{\"include\":\"source.tsx#statements\"}]},\"extension-mdx-expression-flow\":{\"begin\":\"(?:^|\\\\\\\\G)[\\\\\\\\t ]*(\\\\\\\\{)(?!.*\\\\\\\\}[\\\\\\\\t ]*.)\",\"beginCaptures\":{\"1\":{\"name\":\"string.other.begin.expression.mdx.js\"}},\"contentName\":\"meta.embedded.tsx\",\"end\":\"(\\\\\\\\})(?:[\\\\\\\\t ]*$)\",\"endCaptures\":{\"1\":{\"name\":\"string.other.begin.expression.mdx.js\"}},\"patterns\":[{\"include\":\"source.tsx#expression\"}]},\"extension-mdx-expression-text\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"string.other.begin.expression.mdx.js\"}},\"contentName\":\"meta.embedded.tsx\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"string.other.begin.expression.mdx.js\"}},\"patterns\":[{\"include\":\"source.tsx#expression\"}]},\"extension-mdx-jsx-flow\":{\"begin\":\"(?<=^|\\\\\\\\G|\\\\\\\\>)[\\\\\\\\t ]*(<)(?=(?![\\\\\\\\t\\\\\\\\n\\\\\\\\r ]))(?:\\\\\\\\s*(/))?(?:\\\\\\\\s*(?:(?:((?:[_$[:alpha:]][-_$[:alnum:]]*))\\\\\\\\s*(:)\\\\\\\\s*((?:[_$[:alpha:]][-_$[:alnum:]]*)))|((?:(?:[_$[:alpha:]][_$[:alnum:]]*)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*(?:[_$[:alpha:]][-_$[:alnum:]]*))+))|((?:[_$[:upper:]][_$[:alnum:]]*))|((?:[_$[:alpha:]][-_$[:alnum:]]*)))(?=[\\\\\\\\s\\\\\\\\/\\\\\\\\>\\\\\\\\{]))?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.jsx\"},\"2\":{\"name\":\"punctuation.definition.tag.closing.jsx\"},\"3\":{\"name\":\"entity.name.tag.namespace.jsx\"},\"4\":{\"name\":\"punctuation.separator.namespace.jsx\"},\"5\":{\"name\":\"entity.name.tag.local.jsx\"},\"6\":{\"name\":\"support.class.component.jsx\"},\"7\":{\"name\":\"support.class.component.jsx\"},\"8\":{\"name\":\"entity.name.tag.jsx\"}},\"end\":\"(?:(\\\\\\\\/)\\\\\\\\s*)?(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.self-closing.jsx\"},\"2\":{\"name\":\"punctuation.definition.tag.end.jsx\"}},\"patterns\":[{\"include\":\"source.tsx#jsx-tag-attribute-name\"},{\"include\":\"source.tsx#jsx-tag-attribute-assignment\"},{\"include\":\"source.tsx#jsx-string-double-quoted\"},{\"include\":\"source.tsx#jsx-string-single-quoted\"},{\"include\":\"source.tsx#jsx-evaluated-code\"},{\"include\":\"source.tsx#jsx-tag-attributes-illegal\"}]},\"extension-mdx-jsx-text\":{\"begin\":\"(<)(?=(?![\\\\\\\\t\\\\\\\\n\\\\\\\\r ]))(?:\\\\\\\\s*(/))?(?:\\\\\\\\s*(?:(?:((?:[_$[:alpha:]][-_$[:alnum:]]*))\\\\\\\\s*(:)\\\\\\\\s*((?:[_$[:alpha:]][-_$[:alnum:]]*)))|((?:(?:[_$[:alpha:]][_$[:alnum:]]*)(?:\\\\\\\\s*\\\\\\\\.\\\\\\\\s*(?:[_$[:alpha:]][-_$[:alnum:]]*))+))|((?:[_$[:upper:]][_$[:alnum:]]*))|((?:[_$[:alpha:]][-_$[:alnum:]]*)))(?=[\\\\\\\\s\\\\\\\\/\\\\\\\\>\\\\\\\\{]))?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.jsx\"},\"2\":{\"name\":\"punctuation.definition.tag.closing.jsx\"},\"3\":{\"name\":\"entity.name.tag.namespace.jsx\"},\"4\":{\"name\":\"punctuation.separator.namespace.jsx\"},\"5\":{\"name\":\"entity.name.tag.local.jsx\"},\"6\":{\"name\":\"support.class.component.jsx\"},\"7\":{\"name\":\"support.class.component.jsx\"},\"8\":{\"name\":\"entity.name.tag.jsx\"}},\"end\":\"(?:(\\\\\\\\/)\\\\\\\\s*)?(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.self-closing.jsx\"},\"2\":{\"name\":\"punctuation.definition.tag.end.jsx\"}},\"patterns\":[{\"include\":\"source.tsx#jsx-tag-attribute-name\"},{\"include\":\"source.tsx#jsx-tag-attribute-assignment\"},{\"include\":\"source.tsx#jsx-string-double-quoted\"},{\"include\":\"source.tsx#jsx-string-single-quoted\"},{\"include\":\"source.tsx#jsx-evaluated-code\"},{\"include\":\"source.tsx#jsx-tag-attributes-illegal\"}]},\"extension-toml\":{\"begin\":\"\\\\\\\\A\\\\\\\\+{3}$\",\"beginCaptures\":{\"0\":{\"name\":\"string.other.begin.toml\"}},\"contentName\":\"meta.embedded.toml\",\"end\":\"^\\\\\\\\+{3}$\",\"endCaptures\":{\"0\":{\"name\":\"string.other.end.toml\"}},\"patterns\":[{\"include\":\"source.toml\"}]},\"extension-yaml\":{\"begin\":\"\\\\\\\\A-{3}$\",\"beginCaptures\":{\"0\":{\"name\":\"string.other.begin.yaml\"}},\"contentName\":\"meta.embedded.yaml\",\"end\":\"^-{3}$\",\"endCaptures\":{\"0\":{\"name\":\"string.other.end.yaml\"}},\"patterns\":[{\"include\":\"source.yaml\"}]},\"markdown-frontmatter\":{\"patterns\":[{\"include\":\"#extension-toml\"},{\"include\":\"#extension-yaml\"}]},\"markdown-sections\":{\"patterns\":[{\"include\":\"#commonmark-block-quote\"},{\"include\":\"#commonmark-code-fenced\"},{\"include\":\"#extension-gfm-footnote-definition\"},{\"include\":\"#commonmark-definition\"},{\"include\":\"#commonmark-heading-atx\"},{\"include\":\"#commonmark-thematic-break\"},{\"include\":\"#commonmark-heading-setext\"},{\"include\":\"#commonmark-list-item\"},{\"include\":\"#extension-gfm-table\"},{\"include\":\"#extension-math-flow\"},{\"include\":\"#extension-mdx-esm\"},{\"include\":\"#extension-mdx-expression-flow\"},{\"include\":\"#extension-mdx-jsx-flow\"},{\"include\":\"#commonmark-paragraph\"}]},\"markdown-string\":{\"patterns\":[{\"include\":\"#commonmark-character-escape\"},{\"include\":\"#commonmark-character-reference\"}]},\"markdown-text\":{\"patterns\":[{\"include\":\"#commonmark-attention\"},{\"include\":\"#commonmark-character-escape\"},{\"include\":\"#commonmark-character-reference\"},{\"include\":\"#commonmark-code-text\"},{\"include\":\"#commonmark-hard-break-trailing\"},{\"include\":\"#commonmark-hard-break-escape\"},{\"include\":\"#commonmark-label-end\"},{\"include\":\"#extension-gfm-footnote-call\"},{\"include\":\"#commonmark-label-start\"},{\"include\":\"#extension-gfm-autolink-literal\"},{\"include\":\"#extension-gfm-strikethrough\"},{\"include\":\"#extension-github-gemoji\"},{\"include\":\"#extension-github-mention\"},{\"include\":\"#extension-github-reference\"},{\"include\":\"#extension-math-text\"},{\"include\":\"#extension-mdx-expression-text\"},{\"include\":\"#extension-mdx-jsx-text\"}]},\"whatwg-html-data-character-reference-named-terminated\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.character-reference.begin.html\"},\"2\":{\"name\":\"keyword.control.character-reference.html\"},\"3\":{\"name\":\"punctuation.definition.character-reference.end.html\"}},\"match\":\"(&)((?:C(?:(?:o(?:unterClockwiseCo)?|lockwiseCo)ntourIntegra|cedi)|(?:(?:Not(?:S(?:quareSu(?:per|b)set|u(?:cceeds|(?:per|b)set))|Precedes|Greater|Tilde|Less)|Not(?:Righ|Lef)tTriangle|(?:Not(?:(?:Succeed|Precede|Les)s|Greater)|(?:Precede|Succeed)s|Less)Slant|SquareSu(?:per|b)set|(?:Not(?:Greater|Tilde)|Tilde|Less)Full|RightTriangle|LeftTriangle|Greater(?:Slant|Full)|Precedes|Succeeds|Superset|NotHump|Subset|Tilde|Hump)Equ|int(?:er)?c|DotEqu)a|DoubleContourIntegra|(?:n(?:short)?parall|shortparall|p(?:arall|rur))e|(?:rightarrowta|l(?:eftarrowta|ced|ata|Ata)|sced|rata|perm|rced|rAta|ced)i|Proportiona|smepars|e(?:qvpars|pars|xc|um)|Integra|suphso|rarr[pt]|n(?:pars|tg)|l(?:arr[pt]|cei)|Rarrt|(?:hybu|fora)l|ForAl|[GKLNR-Tcknt]cedi|rcei|iexc|gime|fras|[uy]um|oso|dso|ium|Ium)l|D(?:o(?:uble(?:(?:L(?:ong(?:Left)?R|eftR)ight|L(?:ongL)?eft|UpDown|Right|Up)Arrow|Do(?:wnArrow|t))|wn(?:ArrowUpA|TeeA|a)rrow)|iacriticalDot|strok|ashv|cy)|(?:(?:(?:N(?:(?:otN)?estedGreater|ot(?:Greater|Less))|Less(?:Equal)?)Great|GreaterGreat|l[lr]corn|mark|east)e|Not(?:Double)?VerticalBa|(?:Not(?:Righ|Lef)tTriangleB|(?:(?:Righ|Lef)tDown|Right(?:Up)?|Left(?:Up)?)VectorB|RightTriangleB|Left(?:Triangle|Arrow)B|RightArrowB|V(?:er(?:ticalB|b)|b)|UpArrowB|l(?:ur(?:ds|u)h|dr(?:us|d)h|trP|owb|H)|profal|r(?:ulu|dld)h|b(?:igst|rvb)|(?:wed|ve[er])b|s(?:wn|es)w|n(?:wne|ese|sp|hp)|gtlP|d(?:oll|uh|H)|(?:hor|ov)b|u(?:dh|H)|r(?:lh|H)|ohb|hb|St)a|D(?:o(?:wn(?:(?:Left(?:Right|Tee)|RightTee)Vecto|(?:(?:Righ|Lef)tVector|Arrow)Ba)|ubleVerticalBa)|a(?:gge|r)|sc|f)|(?:(?:(?:Righ|Lef)tDown|(?:Righ|Lef)tUp)Tee|(?:Righ|Lef)tUpDown)Vecto|VerticalSeparato|(?:Left(?:Right|Tee)|RightTee)Vecto|less(?:eqq?)?gt|e(?:qslantgt|sc)|(?:RightF|LeftF|[lr]f)loo|u(?:[lr]corne|ar)|timesba|(?:plusa|cirs|apa)ci|U(?:arroci|f)|(?:dzigr|s(?:u(?:pl|br)|imr|[lr])|zigr|angz|nvH|l(?:tl|B)|r[Br])ar|UnderBa|(?:plus|harr|top|mid|of)ci|O(?:verBa|sc|f)|dd?agge|s(?:olba|sc)|g(?:t(?:rar|ci)|sc|f)|c(?:opys|u(?:po|ep)|sc|f)|(?:n(?:(?:v[lr]|w|r)A|l[Aa]|h[Aa]|eA)|x[hlr][Aa]|u(?:ua|da|A)|s[ew]A|rla|o[lr]a|rba|rAa|l[Ablr]a|h(?:oa|A)|era|d(?:ua|A)|cra|vA)r|o(?:lci|sc|ro|pa)|ropa|roar|l(?:o(?:pa|ar)|sc|Ar)|i(?:ma|s)c|ltci|dd?ar|a(?:ma|s)c|R(?:Bar|sc|f)|I(?:mac|f)|(?:u(?:ma|s)|oma|ema|Oma|Ema|[wyz]s|qs|ks|fs|Zs|Ys|Xs|Ws|Vs|Us|Ss|Qs|Ns|Ms|Ks|Is|Gs|Fs|Cs|Bs)c|Umac|x(?:sc|f)|v(?:sc|f)|rsc|n(?:ld|f)|m(?:sc|ld|ac|f)|rAr|h(?:sc|f)|b(?:sc|f)|psc|P(?:sc|f)|L(?:sc|ar|f)|jsc|J(?:sc|f)|E(?:sc|f)|[HT]sc|[yz]f|wf|tf|qf|pf|kf|jf|Zf|Yf|Xf|Wf|Vf|Tf|Sf|Qf|Nf|Mf|Kf|Hf|Gf|Ff|Cf|Bf)r|(?:Diacritical(?:Double)?A|[EINOSYZaisz]a)cute|(?:(?:N(?:egative(?:VeryThin|Thi(?:ck|n))|onBreaking)|NegativeMedium|ZeroWidth|VeryThin|Medium|Thi(?:ck|n))Spac|Filled(?:Very)?SmallSquar|Empty(?:Very)?SmallSquar|(?:N(?:ot(?:Succeeds|Greater|Tilde|Less)T|t)|DiacriticalT|VerticalT|PrecedesT|SucceedsT|NotEqualT|GreaterT|TildeT|EqualT|LessT|at|Ut|It)ild|(?:(?:DiacriticalG|[EIOUaiu]g)ra|(?:u|U)?bre|(?:o|e)?gra)v|(?:doublebar|curly|big|x)wedg|H(?:orizontalLin|ilbertSpac)|Double(?:Righ|Lef)tTe|(?:(?:measured|uw)ang|exponentia|dwang|ssmi|fema)l|(?:Poincarepla|reali|pho|oli)n|(?:black)?lozeng|(?:VerticalL|(?:prof|imag)l)in|SmallCircl|(?:black|dot)squar|rmoustach|l(?:moustach|angl)|(?:b(?:ack)?pr|(?:tri|xo)t|[qt]pr)im|[Tt]herefor|(?:DownB|[Gag]b)rev|(?:infint|nv[lr]tr)i|b(?:arwedg|owti)|an(?:dslop|gl)|(?:cu(?:rly)?v|rthr|lthr|b(?:ig|ar)v|xv)e|n(?:s(?:qsu[bp]|ccu)|prcu)|orslop|NewLin|maltes|Becaus|rangl|incar|(?:otil|Otil|t(?:ra|il))d|[inu]tild|s(?:mil|imn)|(?:sc|pr)cu|Wedg|Prim|Brev)e|(?:CloseCurly(?:Double)?Quo|OpenCurly(?:Double)?Quo|[ry]?acu)te|(?:Reverse(?:Up)?|Up)Equilibrium|C(?:apitalDifferentialD|(?:oproduc|(?:ircleD|enterD|d)o)t|on(?:grue|i)nt|conint|upCap|o(?:lone|pf)|OPY|hi)|(?:(?:(?:left)?rightsquig|(?:longleftr|twoheadr|nleftr|nLeftr|longr|hookr|nR|Rr)ight|(?:twohead|hook)left|longleft|updown|Updown|nright|Right|nleft|nLeft|down|up|Up)a|L(?:(?:ong(?:left)?righ|(?:ong)?lef)ta|eft(?:(?:right)?a|RightA|TeeA))|RightTeeA|LongLeftA|UpTeeA)rrow|(?:(?:RightArrow|Short|Upper|Lower)Left|(?:L(?:eftArrow|o(?:wer|ng))|LongLeft|Short|Upper)Right|ShortUp)Arrow|(?:b(?:lacktriangle(?:righ|lef)|ulle|no)|RightDoubleBracke|RightAngleBracke|Left(?:Doub|Ang)leBracke|(?:vartriangle|downharpoon|c(?:ircl|urv)earrow|upharpoon|looparrow)righ|(?:vartriangle|downharpoon|c(?:ircl|urv)earrow|upharpoon|looparrow|mapsto)lef|(?:UnderBrack|OverBrack|emptys|targ|Sups)e|diamondsui|c(?:ircledas|lubsui|are)|(?:spade|heart)sui|(?:(?:c(?:enter|t)|lmi|ino)d|(?:Triple|mD)D|n(?:otin|e)d|(?:ncong|doteq|su[bp]e|e[gl]s)d|l(?:ess|t)d|isind|c(?:ong|up|ap)?d|b(?:igod|N)|t(?:(?:ri)?d|opb)|s(?:ub|im)d|midd|g(?:tr?)?d|Lmid|DotD|(?:xo|ut|z)d|e(?:s?d|rD|fD|DD)|dtd|Zd|Id|Gd|Ed)o|realpar|i(?:magpar|iin)|S(?:uchTha|qr)|su[bp]mul|(?:(?:lt|i)que|gtque|(?:mid|low)a|e(?:que|xi))s|Produc|s(?:updo|e[cx])|r(?:parg|ec)|lparl|vangr|hamil|(?:homt|[lr]fis|ufis|dfis)h|phmma|t(?:wix|in)|quo|o(?:do|as)|fla|eDo)t|(?:(?:Square)?Intersecti|(?:straight|back|var)epsil|SquareUni|expectati|upsil|epsil|Upsil|eq?col|Epsil|(?:omic|Omic|rca|lca|eca|Sca|[NRTt]ca|Lca|Eca|[Zdz]ca|Dca)r|scar|ncar|herc|ccar|Ccar|iog|Iog)on|Not(?:S(?:quareSu(?:per|b)set|u(?:cceeds|(?:per|b)set))|Precedes|Greater|Tilde|Less)?|(?:(?:(?:Not(?:Reverse)?|Reverse)E|comp|E)leme|NotCongrue|(?:n[gl]|l)eqsla|geqsla|q(?:uat)?i|perc|iiii|coni|cwi|awi|oi)nt|(?:(?:rightleftharpo|leftrightharpo|quaterni)on|(?:(?:N(?:ot(?:NestedLess|Greater|Less)|estedLess)L|(?:eqslant|gtr(?:eqq?)?)l|LessL)e|Greater(?:Equal)?Le|cro)s|(?:rightright|leftleft|upup)arrow|rightleftarrow|(?:(?:(?:righ|lef)tthree|divideon|b(?:igo|ox)|[lr]o)t|InvisibleT)ime|downdownarrow|(?:(?:smallset|tri|dot|box)m|PlusM)inu|(?:RoundImpli|complex|Impli|Otim)e|C(?:ircle(?:Time|Minu|Plu)|ayley|ros)|(?:rationa|mode)l|NotExist|(?:(?:UnionP|MinusP|(?:b(?:ig[ou]|ox)|tri|s(?:u[bp]|im)|dot|xu|mn)p)l|(?:xo|u)pl|o(?:min|pl)|ropl|lopl|epl)u|otimesa|integer|e(?:linter|qual)|setminu|rarrbf|larrb?f|olcros|rarrf|mstpo|lesge|gesle|Exist|[lr]time|strn|napo|fltn|ccap|apo)s|(?:b(?:(?:lack|ig)triangledow|etwee)|(?:righ|lef)tharpoondow|(?:triangle|mapsto)dow|(?:nv|i)infi|ssetm|plusm|lagra|d(?:[lr]cor|isi)|c(?:ompf|aro)|s?frow|(?:hyph|curr)e|kgree|thor|ogo|ye)n|Not(?:Righ|Lef)tTriangle|(?:Up(?:Arrow)?|Short)DownArrow|(?:(?:n(?:triangle(?:righ|lef)t|succ|prec)|(?:trianglerigh|trianglelef|sqsu[bp]se|ques)t|backsim)e|lvertneq|gvertneq|(?:suc|pre)cneq|a(?:pprox|symp)e|(?:succ|prec|vee)e|circe)q|(?:UnderParenthes|OverParenthes|xn)is|(?:(?:Righ|Lef)tDown|Right(?:Up)?|Left(?:Up)?)Vector|D(?:o(?:wn(?:RightVector|LeftVector|Arrow|Tee)|t)|el|D)|l(?:eftrightarrows|br(?:k(?:sl[du]|e)|ac[ek])|tri[ef]|s(?:im[eg]|qb|h)|hard|a(?:tes|ngd|p)|o[pz]f|rm|gE|fr|eg|cy)|(?:NotHumpDownHum|(?:righ|lef)tharpoonu|big(?:(?:triangle|sqc)u|c[au])|HumpDownHum|m(?:apstou|lc)|(?:capbr|xsq)cu|smash|rarr[al]|(?:weie|sha)r|larrl|velli|(?:thin|punc)s|h(?:elli|airs)|(?:u[lr]c|vp)ro|d[lr]cro|c(?:upc[au]|apc[au])|thka|scna|prn?a|oper|n(?:ums|va|cu|bs)|ens|xc[au]|Ma)p|l(?:eftrightarrow|e(?:ftarrow|s(?:dot)?)?|moust|a(?:rrb?|te?|ng)|t(?:ri)?|sim|par|oz|l|g)|n(?:triangle(?:righ|lef)t|succ|prec)|SquareSu(?:per|b)set|(?:I(?:nvisibleComm|ot)|(?:varthe|iio)t|varkapp|(?:vars|S)igm|(?:diga|mco)mm|Cedill|lambd|Lambd|delt|Thet|omeg|Omeg|Kapp|Delt|nabl|zet|to[es]|rdc|ldc|iot|Zet|Bet|Et)a|b(?:lacktriangle|arwed|u(?:mpe?|ll)|sol|o(?:x[HVhv]|t)|brk|ne)|(?:trianglerigh|trianglelef|sqsu[bp]se|ques)t|RightT(?:riangl|e)e|(?:(?:varsu[bp]setn|su(?:psetn?|bsetn?))eq|nsu[bp]seteq|colone|(?:wedg|sim)e|nsime|lneq|gneq)q|DifferentialD|(?:(?:fall|ris)ingdots|(?:suc|pre)ccurly|ddots)eq|A(?:pplyFunction|ssign|(?:tild|grav|brev)e|acute|o(?:gon|pf)|lpha|(?:mac|sc|f)r|c(?:irc|y)|ring|Elig|uml|nd|MP)|(?:varsu[bp]setn|su(?:psetn?|bsetn?))eq|L(?:eft(?:T(?:riangl|e)e|Arrow)|l)|G(?:reaterEqual|amma)|E(?:xponentialE|quilibrium|sim|cy|TH|NG)|(?:(?:RightCeil|LeftCeil|varnoth|ar|Ur)in|(?:b(?:ack)?co|uri)n|vzigza|roan|loan|ffli|amal|sun|rin|n(?:tl|an)|Ran|Lan)g|(?:thick|succn?|precn?|less|g(?:tr|n)|ln|n)approx|(?:s(?:traightph|em)|(?:rtril|xu|u[lr]|xd|v[lr])tr|varph|l[lr]tr|b(?:sem|eps)|Ph)i|(?:circledd|osl|n(?:v[Dd]|V[Dd]|d)|hsl|V(?:vd|D)|Osl|v[Dd]|md)ash|(?:(?:RuleDelay|imp|cuw)e|(?:n(?:s(?:hort)?)?|short|rn)mi|D(?:Dotrah|iamon)|(?:i(?:nt)?pr|peri)o|odsol|llhar|c(?:opro|irmi)|(?:capa|anda|pou)n|Barwe|napi|api)d|(?:cu(?:rlyeq(?:suc|pre)|es)|telre|[ou]dbla|Udbla|Odbla|radi|lesc|gesc|dbla)c|(?:circled|big|eq|[is]|c|x|a|S|[hw]|W|H|G|E|C)circ|rightarrow|R(?:ightArrow|arr|e)|Pr(?:oportion)?|(?:longmapst|varpropt|p(?:lustw|ropt)|varrh|numer|(?:rsa|lsa|sb)qu|m(?:icr|h)|[lr]aqu|bdqu|eur)o|UnderBrace|ImaginaryI|B(?:ernoullis|a(?:ckslash|rv)|umpeq|cy)|(?:(?:Laplace|Mellin|zee)tr|Fo(?:uriertr|p)|(?:profsu|ssta)r|ordero|origo|[ps]op|nop|mop|i(?:op|mo)|h(?:op|al)|f(?:op|no)|dop|bop|Rop|Pop|Nop|Lop|Iop|Hop|Dop|[GJKMOQSTV-Zgjkoqvwyz]op|Bop)f|nsu[bp]seteq|t(?:ri(?:angleq|e)|imesd|he(?:tav|re4)|au)|O(?:verBrace|r)|(?:(?:pitchfo|checkma|t(?:opfo|b)|rob|rbb|l[bo]b)r|intlarh|b(?:brktbr|l(?:oc|an))|perten|NoBrea|rarrh|s[ew]arh|n[ew]arh|l(?:arrh|hbl)|uhbl|Hace)k|(?:NotCupC|(?:mu(?:lti)?|x)m|cupbrc)ap|t(?:riangle|imes|heta|opf?)|Precedes|Succeeds|Superset|NotEqual|(?:n(?:atural|exist|les)|s(?:qc[au]p|mte)|prime)s|c(?:ir(?:cled[RS]|[Ee])|u(?:rarrm|larrp|darr[lr]|ps)|o(?:mmat|pf)|aps|hi)|b(?:sol(?:hsu)?b|ump(?:eq|E)|ox(?:box|[Vv][HLRhlr]|[Hh][DUdu]|[DUdu][LRlr])|e(?:rnou|t[ah])|lk(?:34|1[24])|cy)|(?:l(?:esdot|squ|dqu)o|rsquo|rdquo|ngt)r|a(?:n(?:g(?:msda[a-h]|st|e)|d[dv])|st|p[Ee]|mp|fr|c[Edy])|(?:g(?:esdoto|E)|[lr]haru)l|(?:angrtvb|lrhar|nis)d|(?:(?:th(?:ic)?k|succn?|p(?:r(?:ecn?|n)?|lus)|rarr|l(?:ess|arr)|su[bp]|par|scn|g(?:tr|n)|ne|sc|n[glv]|ln|eq?)si|thetasy|ccupss|alefsy|botto)m|trpezium|(?:hks[ew]|dr?bk|bk)arow|(?:(?:[lr]a|d|c)empty|b(?:nequi|empty)|plank|nequi|odi)v|(?:(?:sc|rp|n)pol|point|fpart)int|(?:c(?:irf|wco)|awco)nint|PartialD|n(?:s(?:u[bp](?:set)?|c)|rarr|ot(?:ni|in)?|warr|e(?:arr)?|a(?:tur|p)|vlt|p(?:re?|ar)|um?|l[et]|ge|i)|n(?:atural|exist|les)|d(?:i(?:am(?:ond)?|v(?:ide)?)|tri|ash|ot|d)|backsim|l(?:esdot|squ|dqu)o|g(?:esdoto|E)|U(?:p(?:Arrow|si)|nion|arr)|angrtvb|p(?:l(?:anckh|us(?:d[ou]|[be]))|ar(?:sl|t)|r(?:od|nE|E)|erp|iv|m)|n(?:ot(?:niv[a-c]|in(?:v[a-c]|E))|rarr[cw]|s(?:u[bp][Ee]|c[er])|part|v(?:le|g[et])|g(?:es|E)|c(?:ap|y)|apE|lE|iv|Ll|Gg)|m(?:inus(?:du|b)|ale|cy|p)|rbr(?:k(?:sl[du]|e)|ac[ek])|(?:suphsu|tris|rcu|lcu)b|supdsub|(?:s[ew]a|n[ew]a)rrow|(?:b(?:ecaus|sim)|n(?:[lr]tri|bump)|csu[bp])e|equivDD|u(?:rcorn|lcorn|psi)|timesb|s(?:u(?:p(?:set)?|b(?:set)?)|q(?:su[bp]|u)|i(?:gma|m)|olb?|dot|mt|fr|ce?)|p(?:l(?:anck|us)|r(?:op|ec?)?|ara?|i)|o(?:times|r(?:d(?:er)?)?)|m(?:i(?:nusd?|d)|a(?:p(?:sto)?|lt)|u)|rmoust|g(?:e(?:s(?:dot|l)?|q)?|sim|n(?:ap|e)|t|l|g)|(?:spade|heart)s|c(?:u(?:rarr|larr|p)|o(?:m(?:ma|p)|lon|py|ng)|lubs|heck|cups|irc?|ent|ap)|colone|a(?:p(?:prox)?|n(?:g(?:msd|rt)?|d)|symp|f|c)|S(?:quare|u[bp]|c)|Subset|b(?:ecaus|sim)|vsu[bp]n[Ee]|s(?:u(?:psu[bp]|b(?:su[bp]|n[Ee]|E)|pn[Ee]|p[1-3E]|m)|q(?:u(?:ar[ef]|f)|su[bp]e)|igma[fv]|etmn|dot[be]|par|mid|hc?y|c[Ey])|f(?:rac(?:78|5[68]|45|3[458]|2[35]|1[2-68])|fr)|e(?:m(?:sp1[34]|ptyv)|psiv|c(?:irc|y)|t[ah]|ng|ll|fr|e)|(?:kappa|isins|vBar|fork|rho|phi|n[GL]t)v|divonx|V(?:dashl|ee)|gammad|G(?:ammad|cy|[Tgt])|[Ldhlt]strok|[HT]strok|(?:c(?:ylct|hc)|(?:s(?:oft|hch)|hard|S(?:OFT|HCH)|jser|J(?:ser|uk)|HARD|tsh|TSH|juk|iuk|I(?:uk|[EO])|zh|yi|nj|lj|k[hj]|gj|dj|ZH|Y[AIU]|NJ|LJ|K[HJ]|GJ|D[JSZ])c|ubrc|Ubrc|(?:yu|i[eo]|dz|v|p|f)c|TSc|SHc|CHc|Vc|Pc|Mc|Fc)y|(?:(?:wre|jm)at|dalet|a(?:ngs|le)p|imat|[lr]ds)h|[CLRUceglnou]acute|ff?llig|(?:f(?:fi|[ij])|sz|oe|ij|ae|OE|IJ)lig|r(?:a(?:tio|rr|ng)|tri|par|eal)|s[ew]arr|s(?:qc[au]p|mte)|prime|rarrb|i(?:n(?:fin|t)?|sin|t|i|c)|e(?:quiv|m(?:pty|sp)|p(?:si|ar)|cir|l|g)|kappa|isins|ncong|doteq|(?:wedg|sim)e|nsime|rsquo|rdquo|[lr]haru|V(?:dash|ert)|Tilde|lrhar|gamma|Equal|UpTee|n(?:[lr]tri|bump)|C(?:olon|up|ap)|v(?:arpi|ert)|u(?:psih|ml)|vnsu[bp]|r(?:tri[ef]|e(?:als|g)|a(?:rr[cw]|ng[de]|ce)|sh|lm|x)|rhard|sim[gl]E|i(?:sin[Ev]|mage|f[fr]|cy)|harrw|(?:n[gl]|l)eqq|g(?:sim[el]|tcc|e(?:qq|l)|nE|l[Eaj]|gg|ap)|ocirc|starf|utrif|d(?:trif|i(?:ams|e)|ashv|sc[ry]|fr|eg)|[du]har[lr]|T(?:HORN|a[bu])|(?:TRAD|[gl]vn)E|odash|[EUaeu]o(?:gon|pf)|alpha|[IJOUYgjuy]c(?:irc|y)|v(?:arr|ee)|succ|sim[gl]|harr|ln(?:ap|e)|lesg|(?:n[gl]|l)eq|ocir|star|utri|vBar|fork|su[bp]e|nsim|lneq|gneq|csu[bp]|zwn?j|yacy|x(?:opf|i)|scnE|o(?:r(?:d[fm]|v)|mid|lt|hm|gt|fr|cy|S)|scap|rsqb|ropf|ltcc|tsc[ry]|QUOT|[EOUYao]uml|rho|phi|n[GL]t|e[gl]s|ngt|I(?:nt|m)|nis|rfr|rcy|lnE|lEg|ufr|S(?:um|cy)|R(?:sh|ho)|psi|Ps?i|[NRTt]cy|L(?:sh|cy|[Tt])|kcy|Kcy|Hat|REG|[Zdz]cy|wr|lE|wp|Xi|Nu|Mu)(;)\",\"name\":\"constant.language.character-reference.named.html\"}},\"scopeName\":\"source.mdx\",\"embeddedLangs\":[],\"embeddedLangsLazy\":[\"tsx\",\"toml\",\"yaml\",\"c\",\"clojure\",\"coffee\",\"cpp\",\"csharp\",\"css\",\"diff\",\"docker\",\"elixir\",\"elm\",\"erlang\",\"go\",\"graphql\",\"haskell\",\"html\",\"ini\",\"java\",\"javascript\",\"json\",\"julia\",\"kotlin\",\"less\",\"lua\",\"make\",\"markdown\",\"objective-c\",\"perl\",\"python\",\"r\",\"ruby\",\"rust\",\"scala\",\"scss\",\"shellscript\",\"shellsession\",\"sql\",\"xml\",\"swift\",\"typescript\"]}')),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/shcSOmrb.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Nix\",\"fileTypes\":[\"nix\"],\"name\":\"nix\",\"patterns\":[{\"include\":\"#expression\"}],\"repository\":{\"attribute-bind\":{\"patterns\":[{\"include\":\"#attribute-name\"},{\"include\":\"#attribute-bind-from-equals\"}]},\"attribute-bind-from-equals\":{\"begin\":\"\\\\\\\\=\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.bind.nix\"}},\"end\":\"\\\\\\\\;\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.bind.nix\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"attribute-inherit\":{\"begin\":\"\\\\\\\\binherit\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.inherit.nix\"}},\"end\":\"\\\\\\\\;\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.inherit.nix\"}},\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.function.arguments.nix\"}},\"end\":\"(?=\\\\\\\\;)\",\"patterns\":[{\"begin\":\"\\\\\\\\)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.function.arguments.nix\"}},\"end\":\"(?=\\\\\\\\;)\",\"patterns\":[{\"include\":\"#bad-reserved\"},{\"include\":\"#attribute-name-single\"},{\"include\":\"#others\"}]},{\"include\":\"#expression\"}]},{\"begin\":\"(?=[a-zA-Z\\\\\\\\_])\",\"end\":\"(?=\\\\\\\\;)\",\"patterns\":[{\"include\":\"#bad-reserved\"},{\"include\":\"#attribute-name-single\"},{\"include\":\"#others\"}]},{\"include\":\"#others\"}]},\"attribute-name\":{\"patterns\":[{\"match\":\"\\\\\\\\b[a-zA-Z\\\\\\\\_][a-zA-Z0-9\\\\\\\\_\\\\\\\\'\\\\\\\\-]*\",\"name\":\"entity.other.attribute-name.multipart.nix\"},{\"match\":\"\\\\\\\\.\"},{\"include\":\"#string-quoted\"},{\"include\":\"#interpolation\"}]},\"attribute-name-single\":{\"match\":\"\\\\\\\\b[a-zA-Z\\\\\\\\_][a-zA-Z0-9\\\\\\\\_\\\\\\\\'\\\\\\\\-]*\",\"name\":\"entity.other.attribute-name.single.nix\"},\"attrset-contents\":{\"patterns\":[{\"include\":\"#attribute-inherit\"},{\"include\":\"#bad-reserved\"},{\"include\":\"#attribute-bind\"},{\"include\":\"#others\"}]},\"attrset-definition\":{\"begin\":\"(?=\\\\\\\\{)\",\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"begin\":\"(\\\\\\\\{)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.attrset.nix\"}},\"end\":\"(\\\\\\\\})\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.attrset.nix\"}},\"patterns\":[{\"include\":\"#attrset-contents\"}]},{\"begin\":\"(?<=\\\\\\\\})\",\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#expression-cont\"}]}]},\"attrset-definition-brace-opened\":{\"patterns\":[{\"begin\":\"(?<=\\\\\\\\})\",\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#expression-cont\"}]},{\"begin\":\"(?=.?)\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.attrset.nix\"}},\"patterns\":[{\"include\":\"#attrset-contents\"}]}]},\"attrset-for-sure\":{\"patterns\":[{\"begin\":\"(?=\\\\\\\\brec\\\\\\\\b)\",\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"begin\":\"\\\\\\\\brec\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.nix\"}},\"end\":\"(?=\\\\\\\\{)\",\"patterns\":[{\"include\":\"#others\"}]},{\"include\":\"#attrset-definition\"},{\"include\":\"#others\"}]},{\"begin\":\"(?=\\\\\\\\{\\\\\\\\s*(\\\\\\\\}|[^,?]*(=|;)))\",\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#attrset-definition\"},{\"include\":\"#others\"}]}]},\"attrset-or-function\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.attrset-or-function.nix\"}},\"end\":\"(?=([\\\\\\\\])};]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"begin\":\"(?=(\\\\\\\\s*\\\\\\\\}|\\\\\\\\\\\\\"|\\\\\\\\binherit\\\\\\\\b|\\\\\\\\$\\\\\\\\{|\\\\\\\\b[a-zA-Z\\\\\\\\_][a-zA-Z0-9\\\\\\\\_\\\\\\\\'\\\\\\\\-]*(\\\\\\\\s*\\\\\\\\.|\\\\\\\\s*=[^=])))\",\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#attrset-definition-brace-opened\"}]},{\"begin\":\"(?=(\\\\\\\\.\\\\\\\\.\\\\\\\\.|\\\\\\\\b[a-zA-Z\\\\\\\\_][a-zA-Z0-9\\\\\\\\_\\\\\\\\'\\\\\\\\-]*\\\\\\\\s*[,?]))\",\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#function-definition-brace-opened\"}]},{\"include\":\"#bad-reserved\"},{\"begin\":\"\\\\\\\\b[a-zA-Z\\\\\\\\_][a-zA-Z0-9\\\\\\\\_\\\\\\\\'\\\\\\\\-]*\",\"beginCaptures\":{\"0\":{\"name\":\"variable.parameter.function.maybe.nix\"}},\"end\":\"(?=([\\\\\\\\])};]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"begin\":\"(?=\\\\\\\\.)\",\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#attrset-definition-brace-opened\"}]},{\"begin\":\"\\\\\\\\s*(\\\\\\\\,)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.nix\"}},\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#function-definition-brace-opened\"}]},{\"begin\":\"(?=\\\\\\\\=)\",\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#attribute-bind-from-equals\"},{\"include\":\"#attrset-definition-brace-opened\"}]},{\"begin\":\"(?=\\\\\\\\?)\",\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#function-parameter-default\"},{\"begin\":\"\\\\\\\\,\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.nix\"}},\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#function-definition-brace-opened\"}]}]},{\"include\":\"#others\"}]},{\"include\":\"#others\"}]},\"bad-reserved\":{\"match\":\"(?<![\\\\\\\\w'-])(if|then|else|assert|with|let|in|rec|inherit)(?![\\\\\\\\w'-])\",\"name\":\"invalid.illegal.reserved.nix\"},\"comment\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*([^*]|\\\\\\\\*[^\\\\\\\\/])*\",\"end\":\"\\\\\\\\*\\\\\\\\/\",\"name\":\"comment.block.nix\",\"patterns\":[{\"include\":\"#comment-remark\"}]},{\"begin\":\"\\\\\\\\#\",\"end\":\"$\",\"name\":\"comment.line.number-sign.nix\",\"patterns\":[{\"include\":\"#comment-remark\"}]}]},\"comment-remark\":{\"captures\":{\"1\":{\"name\":\"markup.bold.comment.nix\"}},\"match\":\"(TODO|FIXME|BUG|\\\\\\\\!\\\\\\\\!\\\\\\\\!):?\"},\"constants\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(builtins|true|false|null)\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"constant.language.nix\"}},\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#expression-cont\"}]},{\"begin\":\"\\\\\\\\b(scopedImport|import|isNull|abort|throw|baseNameOf|dirOf|removeAttrs|map|toString|derivationStrict|derivation)\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"support.function.nix\"}},\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#expression-cont\"}]},{\"begin\":\"\\\\\\\\b[0-9]+\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"constant.numeric.nix\"}},\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#expression-cont\"}]}]},\"expression\":{\"patterns\":[{\"include\":\"#parens-and-cont\"},{\"include\":\"#list-and-cont\"},{\"include\":\"#string\"},{\"include\":\"#interpolation\"},{\"include\":\"#with-assert\"},{\"include\":\"#function-for-sure\"},{\"include\":\"#attrset-for-sure\"},{\"include\":\"#attrset-or-function\"},{\"include\":\"#let\"},{\"include\":\"#if\"},{\"include\":\"#operator-unary\"},{\"include\":\"#constants\"},{\"include\":\"#bad-reserved\"},{\"include\":\"#parameter-name-and-cont\"},{\"include\":\"#others\"}]},\"expression-cont\":{\"begin\":\"(?=.?)\",\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#parens\"},{\"include\":\"#list\"},{\"include\":\"#string\"},{\"include\":\"#interpolation\"},{\"include\":\"#function-for-sure\"},{\"include\":\"#attrset-for-sure\"},{\"include\":\"#attrset-or-function\"},{\"match\":\"(\\\\\\\\bor\\\\\\\\b|\\\\\\\\.|==|!=|!|\\\\\\\\<\\\\\\\\=|\\\\\\\\<|\\\\\\\\>\\\\\\\\=|\\\\\\\\>|&&|\\\\\\\\|\\\\\\\\||-\\\\\\\\>|//|\\\\\\\\?|\\\\\\\\+\\\\\\\\+|-|\\\\\\\\*|/(?=([^*]|$))|\\\\\\\\+)\",\"name\":\"keyword.operator.nix\"},{\"include\":\"#constants\"},{\"include\":\"#bad-reserved\"},{\"include\":\"#parameter-name\"},{\"include\":\"#others\"}]},\"function-body\":{\"begin\":\"(@\\\\\\\\s*([a-zA-Z\\\\\\\\_][a-zA-Z0-9\\\\\\\\_\\\\\\\\'\\\\\\\\-]*)\\\\\\\\s*)?(\\\\\\\\:)\",\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#expression\"}]},\"function-body-from-colon\":{\"begin\":\"(\\\\\\\\:)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.function.nix\"}},\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#expression\"}]},\"function-contents\":{\"patterns\":[{\"include\":\"#bad-reserved\"},{\"include\":\"#function-parameter\"},{\"include\":\"#others\"}]},\"function-definition\":{\"begin\":\"(?=.?)\",\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#function-body-from-colon\"},{\"begin\":\"(?=.?)\",\"end\":\"(?=\\\\\\\\:)\",\"patterns\":[{\"begin\":\"(\\\\\\\\b[a-zA-Z\\\\\\\\_][a-zA-Z0-9\\\\\\\\_\\\\\\\\'\\\\\\\\-]*)\",\"beginCaptures\":{\"0\":{\"name\":\"variable.parameter.function.4.nix\"}},\"end\":\"(?=\\\\\\\\:)\",\"patterns\":[{\"begin\":\"\\\\\\\\@\",\"end\":\"(?=\\\\\\\\:)\",\"patterns\":[{\"include\":\"#function-header-until-colon-no-arg\"},{\"include\":\"#others\"}]},{\"include\":\"#others\"}]},{\"begin\":\"(?=\\\\\\\\{)\",\"end\":\"(?=\\\\\\\\:)\",\"patterns\":[{\"include\":\"#function-header-until-colon-with-arg\"}]}]},{\"include\":\"#others\"}]},\"function-definition-brace-opened\":{\"begin\":\"(?=.?)\",\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#function-body-from-colon\"},{\"begin\":\"(?=.?)\",\"end\":\"(?=\\\\\\\\:)\",\"patterns\":[{\"include\":\"#function-header-close-brace-with-arg\"},{\"begin\":\"(?=.?)\",\"end\":\"(?=\\\\\\\\})\",\"patterns\":[{\"include\":\"#function-contents\"}]}]},{\"include\":\"#others\"}]},\"function-for-sure\":{\"patterns\":[{\"begin\":\"(?=(\\\\\\\\b[a-zA-Z\\\\\\\\_][a-zA-Z0-9\\\\\\\\_\\\\\\\\'\\\\\\\\-]*\\\\\\\\s*[:@]|\\\\\\\\{[^}]*\\\\\\\\}\\\\\\\\s*:|\\\\\\\\{[^#}\\\\\"'/=]*[,\\\\\\\\?]))\",\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#function-definition\"}]}]},\"function-header-close-brace-no-arg\":{\"begin\":\"\\\\\\\\}\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.entity.function.nix\"}},\"end\":\"(?=\\\\\\\\:)\",\"patterns\":[{\"include\":\"#others\"}]},\"function-header-close-brace-with-arg\":{\"begin\":\"\\\\\\\\}\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.entity.function.nix\"}},\"end\":\"(?=\\\\\\\\:)\",\"patterns\":[{\"include\":\"#function-header-terminal-arg\"},{\"include\":\"#others\"}]},\"function-header-open-brace\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.entity.function.2.nix\"}},\"end\":\"(?=\\\\\\\\})\",\"patterns\":[{\"include\":\"#function-contents\"}]},\"function-header-terminal-arg\":{\"begin\":\"(?=@)\",\"end\":\"(?=\\\\\\\\:)\",\"patterns\":[{\"begin\":\"\\\\\\\\@\",\"end\":\"(?=\\\\\\\\:)\",\"patterns\":[{\"begin\":\"(\\\\\\\\b[a-zA-Z\\\\\\\\_][a-zA-Z0-9\\\\\\\\_\\\\\\\\'\\\\\\\\-]*)\",\"end\":\"(?=\\\\\\\\:)\",\"name\":\"variable.parameter.function.3.nix\"},{\"include\":\"#others\"}]},{\"include\":\"#others\"}]},\"function-header-until-colon-no-arg\":{\"begin\":\"(?=\\\\\\\\{)\",\"end\":\"(?=\\\\\\\\:)\",\"patterns\":[{\"include\":\"#function-header-open-brace\"},{\"include\":\"#function-header-close-brace-no-arg\"}]},\"function-header-until-colon-with-arg\":{\"begin\":\"(?=\\\\\\\\{)\",\"end\":\"(?=\\\\\\\\:)\",\"patterns\":[{\"include\":\"#function-header-open-brace\"},{\"include\":\"#function-header-close-brace-with-arg\"}]},\"function-parameter\":{\"patterns\":[{\"begin\":\"(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\",\"end\":\"(,|(?=\\\\\\\\}))\",\"name\":\"keyword.operator.nix\",\"patterns\":[{\"include\":\"#others\"}]},{\"begin\":\"\\\\\\\\b[a-zA-Z\\\\\\\\_][a-zA-Z0-9\\\\\\\\_\\\\\\\\'\\\\\\\\-]*\",\"beginCaptures\":{\"0\":{\"name\":\"variable.parameter.function.1.nix\"}},\"end\":\"(,|(?=\\\\\\\\}))\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.nix\"}},\"patterns\":[{\"include\":\"#whitespace\"},{\"include\":\"#comment\"},{\"include\":\"#function-parameter-default\"},{\"include\":\"#expression\"}]},{\"include\":\"#others\"}]},\"function-parameter-default\":{\"begin\":\"\\\\\\\\?\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.nix\"}},\"end\":\"(?=[,}])\",\"patterns\":[{\"include\":\"#expression\"}]},\"if\":{\"begin\":\"(?=\\\\\\\\bif\\\\\\\\b)\",\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"begin\":\"\\\\\\\\bif\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.nix\"}},\"end\":\"\\\\\\\\bth(?=en\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"keyword.other.nix\"}},\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\"(?<=th)en\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.nix\"}},\"end\":\"\\\\\\\\bel(?=se\\\\\\\\b)\",\"endCaptures\":{\"0\":{\"name\":\"keyword.other.nix\"}},\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\"(?<=el)se\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.nix\"}},\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"endCaptures\":{\"0\":{\"name\":\"keyword.other.nix\"}},\"patterns\":[{\"include\":\"#expression\"}]}]},\"illegal\":{\"match\":\".\",\"name\":\"invalid.illegal\"},\"interpolation\":{\"begin\":\"\\\\\\\\$\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.nix\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.nix\"}},\"name\":\"meta.embedded\",\"patterns\":[{\"include\":\"#expression\"}]},\"let\":{\"begin\":\"(?=\\\\\\\\blet\\\\\\\\b)\",\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"begin\":\"\\\\\\\\blet\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.nix\"}},\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(in|else|then)\\\\\\\\b))\",\"patterns\":[{\"begin\":\"(?=\\\\\\\\{)\",\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"#attrset-contents\"}]},{\"begin\":\"(^|(?<=\\\\\\\\}))\",\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#expression-cont\"}]},{\"include\":\"#others\"}]},{\"include\":\"#attrset-contents\"},{\"include\":\"#others\"}]},{\"begin\":\"\\\\\\\\bin\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.nix\"}},\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#expression\"}]}]},\"list\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.list.nix\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.list.nix\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"list-and-cont\":{\"begin\":\"(?=\\\\\\\\[)\",\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#list\"},{\"include\":\"#expression-cont\"}]},\"operator-unary\":{\"match\":\"(!|-)\",\"name\":\"keyword.operator.unary.nix\"},\"others\":{\"patterns\":[{\"include\":\"#whitespace\"},{\"include\":\"#comment\"},{\"include\":\"#illegal\"}]},\"parameter-name\":{\"captures\":{\"0\":{\"name\":\"variable.parameter.name.nix\"}},\"match\":\"\\\\\\\\b[a-zA-Z\\\\\\\\_][a-zA-Z0-9\\\\\\\\_\\\\\\\\'\\\\\\\\-]*\"},\"parameter-name-and-cont\":{\"begin\":\"\\\\\\\\b[a-zA-Z\\\\\\\\_][a-zA-Z0-9\\\\\\\\_\\\\\\\\'\\\\\\\\-]*\",\"beginCaptures\":{\"0\":{\"name\":\"variable.parameter.name.nix\"}},\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#expression-cont\"}]},\"parens\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.expression.nix\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.expression.nix\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"parens-and-cont\":{\"begin\":\"(?=\\\\\\\\()\",\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#parens\"},{\"include\":\"#expression-cont\"}]},\"string\":{\"patterns\":[{\"begin\":\"(?=\\\\\\\\'\\\\\\\\')\",\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"begin\":\"\\\\\\\\'\\\\\\\\'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.other.start.nix\"}},\"end\":\"\\\\\\\\'\\\\\\\\'(?!\\\\\\\\$|\\\\\\\\'|\\\\\\\\\\\\\\\\.)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.other.end.nix\"}},\"name\":\"string.quoted.other.nix\",\"patterns\":[{\"match\":\"\\\\\\\\'\\\\\\\\'(\\\\\\\\$|\\\\\\\\'|\\\\\\\\\\\\\\\\.)\",\"name\":\"constant.character.escape.nix\"},{\"include\":\"#interpolation\"}]},{\"include\":\"#expression-cont\"}]},{\"begin\":\"(?=\\\\\\\\\\\\\")\",\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#string-quoted\"},{\"include\":\"#expression-cont\"}]},{\"begin\":\"(~?[a-zA-Z0-9\\\\\\\\.\\\\\\\\_\\\\\\\\-\\\\\\\\+]*(\\\\\\\\/[a-zA-Z0-9\\\\\\\\.\\\\\\\\_\\\\\\\\-\\\\\\\\+]+)+)\",\"beginCaptures\":{\"0\":{\"name\":\"string.unquoted.path.nix\"}},\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#expression-cont\"}]},{\"begin\":\"(\\\\\\\\<[a-zA-Z0-9\\\\\\\\.\\\\\\\\_\\\\\\\\-\\\\\\\\+]+(\\\\\\\\/[a-zA-Z0-9\\\\\\\\.\\\\\\\\_\\\\\\\\-\\\\\\\\+]+)*\\\\\\\\>)\",\"beginCaptures\":{\"0\":{\"name\":\"string.unquoted.spath.nix\"}},\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#expression-cont\"}]},{\"begin\":\"([a-zA-Z][a-zA-Z0-9\\\\\\\\+\\\\\\\\-\\\\\\\\.]*\\\\\\\\:[a-zA-Z0-9\\\\\\\\%\\\\\\\\/\\\\\\\\?\\\\\\\\:\\\\\\\\@\\\\\\\\&\\\\\\\\=\\\\\\\\+\\\\\\\\$\\\\\\\\,\\\\\\\\-\\\\\\\\_\\\\\\\\.\\\\\\\\!\\\\\\\\~\\\\\\\\*\\\\\\\\']+)\",\"beginCaptures\":{\"0\":{\"name\":\"string.unquoted.url.nix\"}},\"end\":\"(?=([\\\\\\\\])};,]|\\\\\\\\b(else|then)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#expression-cont\"}]}]},\"string-quoted\":{\"begin\":\"\\\\\\\\\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.double.start.nix\"}},\"end\":\"\\\\\\\\\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.double.end.nix\"}},\"name\":\"string.quoted.double.nix\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.nix\"},{\"include\":\"#interpolation\"}]},\"whitespace\":{\"match\":\"\\\\\\\\s+\"},\"with-assert\":{\"begin\":\"(?<![\\\\\\\\w'-])(with|assert)(?![\\\\\\\\w'-])\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.other.nix\"}},\"end\":\"\\\\\\\\;\",\"patterns\":[{\"include\":\"#expression\"}]}},\"scopeName\":\"source.nix\"}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/ul-Lp4lw.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\"//\",blockComment:[\"(*\",\"*)\"]},brackets:[[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"],[\"<\",\">\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"},{open:\"'\",close:\"'\"},{open:'\"',close:'\"'},{open:\"(*\",close:\"*)\"}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:\"<\",close:\">\"},{open:\"'\",close:\"'\"},{open:'\"',close:'\"'},{open:\"(*\",close:\"*)\"}]},o={defaultToken:\"\",tokenPostfix:\".cameligo\",ignoreCase:!0,brackets:[{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"},{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"<\",close:\">\",token:\"delimiter.angle\"}],keywords:[\"abs\",\"assert\",\"block\",\"Bytes\",\"case\",\"Crypto\",\"Current\",\"else\",\"failwith\",\"false\",\"for\",\"fun\",\"if\",\"in\",\"let\",\"let%entry\",\"let%init\",\"List\",\"list\",\"Map\",\"map\",\"match\",\"match%nat\",\"mod\",\"not\",\"operation\",\"Operation\",\"of\",\"record\",\"Set\",\"set\",\"sender\",\"skip\",\"source\",\"String\",\"then\",\"to\",\"true\",\"type\",\"with\"],typeKeywords:[\"int\",\"unit\",\"string\",\"tz\",\"nat\",\"bool\"],operators:[\"=\",\">\",\"<\",\"<=\",\">=\",\"<>\",\":\",\":=\",\"and\",\"mod\",\"or\",\"+\",\"-\",\"*\",\"/\",\"@\",\"&\",\"^\",\"%\",\"->\",\"<-\",\"&&\",\"||\"],symbols:/[=><:@\\^&|+\\-*\\/\\^%]+/,tokenizer:{root:[[/[a-zA-Z_][\\w]*/,{cases:{\"@keywords\":{token:\"keyword.$0\"},\"@default\":\"identifier\"}}],{include:\"@whitespace\"},[/[{}()\\[\\]]/,\"@brackets\"],[/[<>](?!@symbols)/,\"@brackets\"],[/@symbols/,{cases:{\"@operators\":\"delimiter\",\"@default\":\"\"}}],[/\\d*\\.\\d+([eE][\\-+]?\\d+)?/,\"number.float\"],[/\\$[0-9a-fA-F]{1,16}/,\"number.hex\"],[/\\d+/,\"number\"],[/[;,.]/,\"delimiter\"],[/'([^'\\\\]|\\\\.)*$/,\"string.invalid\"],[/'/,\"string\",\"@string\"],[/'[^\\\\']'/,\"string\"],[/'/,\"string.invalid\"],[/\\#\\d+/,\"string\"]],comment:[[/[^\\(\\*]+/,\"comment\"],[/\\*\\)/,\"comment\",\"@pop\"],[/\\(\\*/,\"comment\"]],string:[[/[^\\\\']+/,\"string\"],[/\\\\./,\"string.escape.invalid\"],[/'/,{token:\"string.quote\",bracket:\"@close\",next:\"@pop\"}]],whitespace:[[/[ \\t\\r\\n]+/,\"white\"],[/\\(\\*/,\"comment\",\"@comment\"],[/\\/\\/.*$/,\"comment\"]]}};export{e as conf,o as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/w-ucz2PV.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Fish\",\"fileTypes\":[\"fish\"],\"firstLineMatch\":\"^#!.*\\\\\\\\bfish\\\\\\\\b\",\"foldingStartMarker\":\"^\\\\\\\\s*(function|while|if|switch|for|begin)\\\\\\\\s.*$\",\"foldingStopMarker\":\"^\\\\\\\\s*end\\\\\\\\s*$\",\"name\":\"fish\",\"patterns\":[{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.fish\"}},\"comment\":\"Double quoted string\",\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.fish\"}},\"name\":\"string.quoted.double.fish\",\"patterns\":[{\"include\":\"#variable\"},{\"comment\":\"https://fishshell.com/docs/current/#quotes\",\"match\":\"\\\\\\\\\\\\\\\\(\\\\\\\\\\\\\"|\\\\\\\\$|$|\\\\\\\\\\\\\\\\)\",\"name\":\"constant.character.escape.fish\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.fish\"}},\"comment\":\"Single quoted string\",\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.fish\"}},\"name\":\"string.quoted.single.fish\",\"patterns\":[{\"comment\":\"https://fishshell.com/docs/current/#quotes\",\"match\":\"\\\\\\\\\\\\\\\\('|\\`|\\\\\\\\\\\\\\\\)\",\"name\":\"constant.character.escape.fish\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.fish\"}},\"comment\":\"line comment\",\"match\":\"(?<!\\\\\\\\$)(#)(?!\\\\\\\\{).*$\\\\\\\\n?\",\"name\":\"comment.line.number-sign.fish\"},{\"captures\":{\"2\":{\"name\":\"keyword.control.fish\"},\"4\":{\"name\":\"support.function.command.fish\"}},\"comment\":\"name of command, either a function or a binary\",\"match\":\"(^\\\\\\\\s*|&&\\\\\\\\s*|\\\\\\\\|\\\\\\\\s*|\\\\\\\\(\\\\\\\\s*|[;]\\\\\\\\s*|\\\\\\\\b(if|while)\\\\\\\\b\\\\\\\\s+)(?!(?<!\\\\\\\\.)\\\\\\\\b(function|while|if|else|switch|case|for|in|begin|end|continue|break|return|source|exit|wait|and|or|not)\\\\\\\\b(?![?!]))([a-zA-Z_\\\\\\\\-0-9\\\\\\\\[\\\\\\\\].]+)\"},{\"comment\":\"keywords that affect control flow\",\"match\":\"(?<!\\\\\\\\.)\\\\\\\\b(function|while|if|else|switch|case|for|in|begin|end|continue|break|return|source|exit|wait|and|or|not)\\\\\\\\b(?![?!])\",\"name\":\"keyword.control.fish\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\bfunction\\\\\\\\b(?![?!])\",\"name\":\"storage.type.fish\"},{\"match\":\"\\\\\\\\|\",\"name\":\"keyword.operator.pipe.fish\"},{\"comment\":\"IO Redirection\",\"match\":\"(?:<|#StandardInput(>|\\\\\\\\^|>>|\\\\\\\\^\\\\\\\\^)(&[012\\\\\\\\-])?|[012](<|>|>>)(&[012\\\\\\\\-])?)\",\"name\":\"keyword.operator.redirect.fish\"},{\"match\":\"&\",\"name\":\"keyword.operator.background.fish\"},{\"match\":\"\\\\\\\\*\\\\\\\\*|\\\\\\\\*|\\\\\\\\?\",\"name\":\"keyword.operator.glob.fish\"},{\"captures\":{\"1\":{\"name\":\"source.option.fish\"}},\"comment\":\"command short/long options\",\"match\":\"\\\\\\\\s(-{1,2}[a-zA-Z_\\\\\\\\-0-9]+|-\\\\\\\\w)\\\\\\\\b\"},{\"include\":\"#variable\"},{\"include\":\"#escape\"}],\"repository\":{\"escape\":{\"patterns\":[{\"comment\":\"single character character escape sequences\",\"match\":\"\\\\\\\\\\\\\\\\[abefnrtv $*?~#(){}\\\\\\\\[\\\\\\\\]<>^&|;\\\\\"']\",\"name\":\"constant.character.escape.single.fish\"},{\"comment\":\"escapes the ascii character with the specified value (hexadecimal)\",\"match\":\"\\\\\\\\\\\\\\\\x[0-9a-fA-F]{1,2}\",\"name\":\"constant.character.escape.hex-ascii.fish\"},{\"comment\":\"escapes a byte of data with the specified value (hexadecimal). If you are using mutibyte encoding, this can be used to enter invalid strings. Only use this if you know what are doing.\",\"match\":\"\\\\\\\\\\\\\\\\X[0-9a-fA-F]{1,2}\",\"name\":\"constant.character.escape.hex-byte.fish\"},{\"comment\":\"escapes the ascii character with the specified value (octal)\",\"match\":\"\\\\\\\\\\\\\\\\[0-7]{1,3}\",\"name\":\"constant.character.escape.octal.fish\"},{\"comment\":\"escapes the 16-bit unicode character with the specified value (hexadecimal)\",\"match\":\"\\\\\\\\\\\\\\\\u[0-9a-fA-F]{1,4}\",\"name\":\"constant.character.escape.unicode-16-bit.fish\"},{\"comment\":\"escapes the 32-bit unicode character with the specified value (hexadecimal)\",\"match\":\"\\\\\\\\\\\\\\\\U[0-9a-fA-F]{1,8}\",\"name\":\"constant.character.escape.unicode-32-bit.fish\"},{\"comment\":\"escapes the control sequence generated by pressing the control key and the specified letter\",\"match\":\"\\\\\\\\\\\\\\\\c[a-zA-Z]\",\"name\":\"constant.character.escape.control.fish\"}]},\"variable\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.fish\"}},\"comment\":\"Built-in variables visible by pressing $ TAB TAB in a new shell\",\"match\":\"(\\\\\\\\$)(argv|CMD_DURATION|COLUMNS|fish_bind_mode|fish_color_autosuggestion|fish_color_cancel|fish_color_command|fish_color_comment|fish_color_cwd|fish_color_cwd_root|fish_color_end|fish_color_error|fish_color_escape|fish_color_hg_added|fish_color_hg_clean|fish_color_hg_copied|fish_color_hg_deleted|fish_color_hg_dirty|fish_color_hg_modified|fish_color_hg_renamed|fish_color_hg_unmerged|fish_color_hg_untracked|fish_color_history_current|fish_color_host|fish_color_host_remote|fish_color_match|fish_color_normal|fish_color_operator|fish_color_param|fish_color_quote|fish_color_redirection|fish_color_search_match|fish_color_selection|fish_color_status|fish_color_user|fish_color_valid_path|fish_complete_path|fish_function_path|fish_greeting|fish_key_bindings|fish_pager_color_completion|fish_pager_color_description|fish_pager_color_prefix|fish_pager_color_progress|fish_pid|fish_prompt_hg_status_added|fish_prompt_hg_status_copied|fish_prompt_hg_status_deleted|fish_prompt_hg_status_modified|fish_prompt_hg_status_order|fish_prompt_hg_status_unmerged|fish_prompt_hg_status_untracked|FISH_VERSION|history|hostname|IFS|LINES|pipestatus|status|umask|version)\\\\\\\\b\",\"name\":\"variable.language.fish\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.fish\"}},\"match\":\"(\\\\\\\\$)[a-zA-Z_][a-zA-Z0-9_]*\",\"name\":\"variable.other.normal.fish\"}]}},\"scopeName\":\"source.fish\"}`)),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/w8dY5SsB.js",
    "content": "const n=Object.freeze(JSON.parse(`{\"displayName\":\"JSON5\",\"fileTypes\":[\"json5\"],\"name\":\"json5\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#value\"}],\"repository\":{\"array\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.array.begin.json5\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.array.end.json5\"}},\"name\":\"meta.structure.array.json5\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#value\"},{\"match\":\",\",\"name\":\"punctuation.separator.array.json5\"},{\"match\":\"[^\\\\\\\\s\\\\\\\\]]\",\"name\":\"invalid.illegal.expected-array-separator.json5\"}]},\"comments\":{\"patterns\":[{\"match\":\"/{2}.*\",\"name\":\"comment.single.json5\"},{\"begin\":\"/\\\\\\\\*\\\\\\\\*(?!/)\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.json5\"}},\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.documentation.json5\"},{\"begin\":\"/\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.json5\"}},\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.json5\"}]},\"constant\":{\"match\":\"\\\\\\\\b(?:true|false|null|Infinity|NaN)\\\\\\\\b\",\"name\":\"constant.language.json5\"},\"infinity\":{\"match\":\"(-)*\\\\\\\\b(?:Infinity|NaN)\\\\\\\\b\",\"name\":\"constant.language.json5\"},\"key\":{\"name\":\"string.key.json5\",\"patterns\":[{\"include\":\"#stringSingle\"},{\"include\":\"#stringDouble\"},{\"match\":\"[a-zA-Z0-9_-]\",\"name\":\"string.key.json5\"}]},\"number\":{\"patterns\":[{\"comment\":\"handles hexadecimal numbers\",\"match\":\"(0x)[0-9a-fA-f]*\",\"name\":\"constant.hex.numeric.json5\"},{\"comment\":\"handles integer and decimal numbers\",\"match\":\"[+-.]?(?=[1-9]|0(?!\\\\\\\\d))\\\\\\\\d+(\\\\\\\\.\\\\\\\\d+)?([eE][+-]?\\\\\\\\d+)?\",\"name\":\"constant.dec.numeric.json5\"}]},\"object\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.dictionary.begin.json5\"}},\"comment\":\"a json5 object\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.dictionary.end.json5\"}},\"name\":\"meta.structure.dictionary.json5\",\"patterns\":[{\"include\":\"#comments\"},{\"comment\":\"the json5 object key\",\"include\":\"#key\"},{\"begin\":\":\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.dictionary.key-value.json5\"}},\"end\":\"(,)|(?=\\\\\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.dictionary.pair.json5\"}},\"name\":\"meta.structure.dictionary.value.json5\",\"patterns\":[{\"comment\":\"the json5 object value\",\"include\":\"#value\"},{\"match\":\"[^\\\\\\\\s,]\",\"name\":\"invalid.illegal.expected-dictionary-separator.json5\"}]},{\"match\":\"[^\\\\\\\\s\\\\\\\\}]\",\"name\":\"invalid.illegal.expected-dictionary-separator.json5\"}]},\"stringDouble\":{\"begin\":\"[\\\\\"]\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.json5\"}},\"end\":\"[\\\\\"]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.json5\"}},\"name\":\"string.quoted.json5\",\"patterns\":[{\"match\":\"(?:\\\\\\\\\\\\\\\\(?:[\\\\\"\\\\\\\\\\\\\\\\/bfnrt]|u[0-9a-fA-F]{4}))\",\"name\":\"constant.character.escape.json5\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"invalid.illegal.unrecognized-string-escape.json5\"}]},\"stringSingle\":{\"begin\":\"[']\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.json5\"}},\"end\":\"[']\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.json5\"}},\"name\":\"string.quoted.json5\",\"patterns\":[{\"match\":\"(?:\\\\\\\\\\\\\\\\(?:[\\\\\"\\\\\\\\\\\\\\\\/bfnrt]|u[0-9a-fA-F]{4}))\",\"name\":\"constant.character.escape.json5\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"invalid.illegal.unrecognized-string-escape.json5\"}]},\"value\":{\"comment\":\"the 'value' diagram at http://json.org\",\"patterns\":[{\"include\":\"#constant\"},{\"include\":\"#infinity\"},{\"include\":\"#number\"},{\"include\":\"#stringSingle\"},{\"include\":\"#stringDouble\"},{\"include\":\"#array\"},{\"include\":\"#object\"}]}},\"scopeName\":\"source.json5\"}`)),e=[n];export{e as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/wI6OXr6j.js",
    "content": "import e from\"./Dj6nwHGl.js\";import s from\"./BPhBrDlE.js\";import t from\"./ySlJ1b_l.js\";import n from\"./COyJrUc7.js\";import i from\"./BMYPR7BL.js\";import c from\"./COK4E0Yg.js\";import l from\"./cPjAOO0u.js\";import\"./C3t2pwGQ.js\";import\"./xI-RfyKK.js\";const m=Object.freeze(JSON.parse('{\"fileTypes\":[\"js\",\"jsx\",\"ts\",\"tsx\",\"html\",\"vue\",\"svelte\",\"php\",\"res\"],\"injectTo\":[\"source.ts\",\"source.js\"],\"injectionSelector\":\"L:source.js -comment -string, L:source.js -comment -string, L:source.jsx -comment -string,  L:source.js.jsx -comment -string, L:source.ts -comment -string, L:source.tsx -comment -string, L:source.rescript -comment -string, L:source.vue -comment -string, L:source.svelte -comment -string, L:source.php -comment -string, L:source.rescript -comment -string\",\"injections\":{\"L:source\":{\"patterns\":[{\"match\":\"<\",\"name\":\"invalid.illegal.bad-angle-bracket.html\"}]}},\"name\":\"es-tag-css\",\"patterns\":[{\"begin\":\"(?i)(\\\\\\\\s?\\\\\\\\/\\\\\\\\*\\\\\\\\s?(css|inline-css)\\\\\\\\s?\\\\\\\\*\\\\\\\\/\\\\\\\\s?)(`)\",\"beginCaptures\":{\"1\":{\"name\":\"comment.block\"}},\"end\":\"(`)\",\"patterns\":[{\"include\":\"source.ts#template-substitution-element\"},{\"include\":\"source.css\"},{\"include\":\"inline.es6-htmlx#template\"}]},{\"begin\":\"(?i)(\\\\\\\\s*(css|inline-css))(`)\",\"beginCaptures\":{\"1\":{\"name\":\"comment.block\"}},\"end\":\"(`)\",\"patterns\":[{\"include\":\"source.ts#template-substitution-element\"},{\"include\":\"source.css\"},{\"include\":\"inline.es6-htmlx#template\"},{\"include\":\"string.quoted.other.template.js\"}]},{\"begin\":\"(?i)(?<=\\\\\\\\s|\\\\\\\\,|\\\\\\\\=|\\\\\\\\:|\\\\\\\\(|\\\\\\\\$\\\\\\\\()\\\\\\\\s{0,}(((\\\\\\\\/\\\\\\\\*)|(\\\\\\\\/\\\\\\\\/))\\\\\\\\s?(css|inline-css)[ ]{0,1000}\\\\\\\\*?\\\\\\\\/?)[ ]{0,1000}$\",\"beginCaptures\":{\"1\":{\"name\":\"comment.line\"}},\"end\":\"(`).*\",\"patterns\":[{\"begin\":\"(\\\\\\\\G)\",\"end\":\"(`)\"},{\"include\":\"source.ts#template-substitution-element\"},{\"include\":\"source.css\"}]},{\"begin\":\"(\\\\\\\\${)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag\"}},\"end\":\"(})\",\"endCaptures\":{\"1\":{\"name\":\"entity.name.tag\"}},\"patterns\":[{\"include\":\"source.ts#template-substitution-element\"},{\"include\":\"source.js\"}]}],\"scopeName\":\"inline.es6-css\",\"embeddedLangs\":[\"typescript\",\"css\",\"javascript\"]}')),r=[...e,...s,...t,m],a=Object.freeze(JSON.parse('{\"fileTypes\":[\"js\",\"jsx\",\"ts\",\"tsx\",\"html\",\"vue\",\"svelte\",\"php\",\"res\"],\"injectTo\":[\"source.ts\",\"source.js\"],\"injectionSelector\":\"L:source.js -comment -string, L:source.js -comment -string, L:source.jsx -comment -string,  L:source.js.jsx -comment -string, L:source.ts -comment -string, L:source.tsx -comment -string, L:source.rescript -comment -string\",\"injections\":{\"L:source\":{\"patterns\":[{\"match\":\"<\",\"name\":\"invalid.illegal.bad-angle-bracket.html\"}]}},\"name\":\"es-tag-glsl\",\"patterns\":[{\"begin\":\"(?i)(\\\\\\\\s?\\\\\\\\/\\\\\\\\*\\\\\\\\s?(glsl|inline-glsl)\\\\\\\\s?\\\\\\\\*\\\\\\\\/\\\\\\\\s?)(`)\",\"beginCaptures\":{\"1\":{\"name\":\"comment.block\"}},\"end\":\"(`)\",\"patterns\":[{\"include\":\"source.ts#template-substitution-element\"},{\"include\":\"source.glsl\"},{\"include\":\"inline.es6-htmlx#template\"}]},{\"begin\":\"(?i)(\\\\\\\\s*(glsl|inline-glsl))(`)\",\"beginCaptures\":{\"1\":{\"name\":\"comment.block\"}},\"end\":\"(`)\",\"patterns\":[{\"include\":\"source.ts#template-substitution-element\"},{\"include\":\"source.glsl\"},{\"include\":\"inline.es6-htmlx#template\"},{\"include\":\"string.quoted.other.template.js\"}]},{\"begin\":\"(?i)(?<=\\\\\\\\s|\\\\\\\\,|\\\\\\\\=|\\\\\\\\:|\\\\\\\\(|\\\\\\\\$\\\\\\\\()\\\\\\\\s{0,}(((\\\\\\\\/\\\\\\\\*)|(\\\\\\\\/\\\\\\\\/))\\\\\\\\s?(glsl|inline-glsl)[ ]{0,1000}\\\\\\\\*?\\\\\\\\/?)[ ]{0,1000}$\",\"beginCaptures\":{\"1\":{\"name\":\"comment.line\"}},\"end\":\"(`).*\",\"patterns\":[{\"begin\":\"(\\\\\\\\G)\",\"end\":\"(`)\"},{\"include\":\"source.ts#template-substitution-element\"},{\"include\":\"source.glsl\"}]},{\"begin\":\"(\\\\\\\\${)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag\"}},\"end\":\"(})\",\"endCaptures\":{\"1\":{\"name\":\"entity.name.tag\"}},\"patterns\":[{\"include\":\"source.ts#template-substitution-element\"},{\"include\":\"source.js\"}]}],\"scopeName\":\"inline.es6-glsl\",\"embeddedLangs\":[\"typescript\",\"glsl\",\"javascript\"]}')),o=[...e,...n,...t,a],u=Object.freeze(JSON.parse('{\"fileTypes\":[\"js\",\"jsx\",\"ts\",\"tsx\",\"html\",\"vue\",\"svelte\",\"php\",\"res\"],\"injectTo\":[\"source.ts\",\"source.js\"],\"injectionSelector\":\"L:source.js -comment -string, L:source.js -comment -string, L:source.jsx -comment -string,  L:source.js.jsx -comment -string, L:source.ts -comment -string, L:source.tsx -comment -string, L:source.rescript -comment -string\",\"injections\":{\"L:source\":{\"patterns\":[{\"match\":\"<\",\"name\":\"invalid.illegal.bad-angle-bracket.html\"}]}},\"name\":\"es-tag-html\",\"patterns\":[{\"begin\":\"(?i)(\\\\\\\\s?\\\\\\\\/\\\\\\\\*\\\\\\\\s?(html|template|inline-html|inline-template)\\\\\\\\s?\\\\\\\\*\\\\\\\\/\\\\\\\\s?)(`)\",\"beginCaptures\":{\"1\":{\"name\":\"comment.block\"}},\"end\":\"(`)\",\"patterns\":[{\"include\":\"source.ts#template-substitution-element\"},{\"include\":\"text.html.basic\"},{\"include\":\"inline.es6-htmlx#template\"}]},{\"begin\":\"(?i)(\\\\\\\\s*(html|template|inline-html|inline-template))(`)\",\"beginCaptures\":{\"1\":{\"name\":\"comment.block\"}},\"end\":\"(`)\",\"patterns\":[{\"include\":\"source.ts#template-substitution-element\"},{\"include\":\"text.html.basic\"},{\"include\":\"inline.es6-htmlx#template\"},{\"include\":\"string.quoted.other.template.js\"}]},{\"begin\":\"(?i)(?<=\\\\\\\\s|\\\\\\\\,|\\\\\\\\=|\\\\\\\\:|\\\\\\\\(|\\\\\\\\$\\\\\\\\()\\\\\\\\s{0,}(((\\\\\\\\/\\\\\\\\*)|(\\\\\\\\/\\\\\\\\/))\\\\\\\\s?(html|template|inline-html|inline-template)[ ]{0,1000}\\\\\\\\*?\\\\\\\\/?)[ ]{0,1000}$\",\"beginCaptures\":{\"1\":{\"name\":\"comment.line\"}},\"end\":\"(`).*\",\"patterns\":[{\"begin\":\"(\\\\\\\\G)\",\"end\":\"(`)\"},{\"include\":\"source.ts#template-substitution-element\"},{\"include\":\"text.html.basic\"}]},{\"begin\":\"(\\\\\\\\${)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag\"}},\"end\":\"(})\",\"endCaptures\":{\"1\":{\"name\":\"entity.name.tag\"}},\"patterns\":[{\"include\":\"source.ts#template-substitution-element\"},{\"include\":\"source.js\"}]},{\"begin\":\"(\\\\\\\\$\\\\\\\\(`)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag\"}},\"end\":\"(`\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"entity.name.tag\"}},\"patterns\":[{\"include\":\"source.ts#template-substitution-element\"},{\"include\":\"source.js\"}]}],\"scopeName\":\"inline.es6-html\",\"embeddedLangs\":[\"typescript\",\"html\",\"javascript\"]}')),g=[...e,...i,...t,u],p=Object.freeze(JSON.parse('{\"fileTypes\":[\"js\",\"jsx\",\"ts\",\"tsx\",\"html\",\"vue\",\"svelte\",\"php\",\"res\"],\"injectTo\":[\"source.ts\",\"source.js\"],\"injectionSelector\":\"L:source.js -comment -string, L:source.jsx -comment -string,  L:source.js.jsx -comment -string, L:source.ts -comment -string, L:source.tsx -comment -string, L:source.rescript -comment -string\",\"injections\":{\"L:source\":{\"patterns\":[{\"match\":\"<\",\"name\":\"invalid.illegal.bad-angle-bracket.html\"}]}},\"name\":\"es-tag-sql\",\"patterns\":[{\"begin\":\"(?i)\\\\\\\\b(\\\\\\\\w+\\\\\\\\.sql)\\\\\\\\s*(`)\",\"beginCaptures\":{\"1\":{\"name\":\"variable.parameter\"}},\"end\":\"(`)\",\"patterns\":[{\"include\":\"source.ts#template-substitution-element\"},{\"include\":\"source.ts#string-character-escape\"},{\"include\":\"source.sql\"},{\"include\":\"source.plpgsql.postgres\"},{\"match\":\".\"}]},{\"begin\":\"(?i)(\\\\\\\\s?\\\\\\\\/?\\\\\\\\*?\\\\\\\\s?(sql|inline-sql)\\\\\\\\s?\\\\\\\\*?\\\\\\\\/?\\\\\\\\s?)(`)\",\"beginCaptures\":{\"1\":{\"name\":\"comment.block\"}},\"end\":\"(`)\",\"patterns\":[{\"include\":\"source.ts#template-substitution-element\"},{\"include\":\"source.ts#string-character-escape\"},{\"include\":\"source.sql\"},{\"include\":\"source.plpgsql.postgres\"},{\"match\":\".\"}]},{\"begin\":\"(?i)(?<=\\\\\\\\s|\\\\\\\\,|\\\\\\\\=|\\\\\\\\:|\\\\\\\\(|\\\\\\\\$\\\\\\\\()\\\\\\\\s{0,}(((\\\\\\\\/\\\\\\\\*)|(\\\\\\\\/\\\\\\\\/))\\\\\\\\s?(sql|inline-sql)[ ]{0,1000}\\\\\\\\*?\\\\\\\\/?)[ ]{0,1000}$\",\"beginCaptures\":{\"1\":{\"name\":\"comment.line\"}},\"end\":\"(`)\",\"patterns\":[{\"begin\":\"(\\\\\\\\G)\",\"end\":\"(`)\"},{\"include\":\"source.ts#template-substitution-element\"},{\"include\":\"source.ts#string-character-escape\"},{\"include\":\"source.sql\"},{\"include\":\"source.plpgsql.postgres\"},{\"match\":\".\"}]}],\"scopeName\":\"inline.es6-sql\",\"embeddedLangs\":[\"typescript\",\"sql\"]}')),d=[...e,...c,p],b=Object.freeze(JSON.parse('{\"fileTypes\":[\"js\",\"jsx\",\"ts\",\"tsx\",\"html\",\"vue\",\"svelte\",\"php\",\"res\"],\"injectTo\":[\"source.ts\",\"source.js\"],\"injectionSelector\":\"L:source.js -comment -string, L:source.js -comment -string, L:source.jsx -comment -string,  L:source.js.jsx -comment -string, L:source.ts -comment -string, L:source.tsx -comment -string, L:source.rescript -comment -string\",\"injections\":{\"L:source\":{\"patterns\":[{\"match\":\"<\",\"name\":\"invalid.illegal.bad-angle-bracket.html\"}]}},\"name\":\"es-tag-xml\",\"patterns\":[{\"begin\":\"(?i)(\\\\\\\\s?\\\\\\\\/\\\\\\\\*\\\\\\\\s?(xml|svg|inline-svg|inline-xml)\\\\\\\\s?\\\\\\\\*\\\\\\\\/\\\\\\\\s?)(`)\",\"beginCaptures\":{\"1\":{\"name\":\"comment.block\"}},\"end\":\"(`)\",\"patterns\":[{\"include\":\"text.xml\"}]},{\"begin\":\"(?i)(\\\\\\\\s*(xml|inline-xml))(`)\",\"beginCaptures\":{\"1\":{\"name\":\"comment.block\"}},\"end\":\"(`)\",\"patterns\":[{\"include\":\"text.xml\"}]},{\"begin\":\"(?i)(?<=\\\\\\\\s|\\\\\\\\,|\\\\\\\\=|\\\\\\\\:|\\\\\\\\(|\\\\\\\\$\\\\\\\\()\\\\\\\\s{0,}(((\\\\\\\\/\\\\\\\\*)|(\\\\\\\\/\\\\\\\\/))\\\\\\\\s?(xml|svg|inline-svg|inline-xml)[ ]{0,1000}\\\\\\\\*?\\\\\\\\/?)[ ]{0,1000}$\",\"beginCaptures\":{\"1\":{\"name\":\"comment.line\"}},\"end\":\"(`).*\",\"patterns\":[{\"begin\":\"(\\\\\\\\G)\",\"end\":\"(`)\"},{\"include\":\"text.xml\"}]}],\"scopeName\":\"inline.es6-xml\",\"embeddedLangs\":[\"xml\"]}')),j=[...l,b],x=Object.freeze(JSON.parse('{\"displayName\":\"TypeScript with Tags\",\"name\":\"ts-tags\",\"patterns\":[{\"include\":\"source.ts\"}],\"scopeName\":\"source.ts.tags\",\"embeddedLangs\":[\"typescript\",\"es-tag-css\",\"es-tag-glsl\",\"es-tag-html\",\"es-tag-sql\",\"es-tag-xml\"],\"aliases\":[\"lit\"]}')),N=[...e,...r,...o,...g,...d,...j,x];export{N as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/wLBHnxd4.js",
    "content": "import{d as $,m as k,u as B,r as m,a as O,c as b,w as p,n as L,o as S,b as j,s as z,h as I,e as K,f as s,_ as R,g as q,i as n,j as o,k as A,l as H,p as W,q as F,t as G,v as J,x as P,y as Q,z as X}from\"./CU_MfyYc.js\";import{_ as Y}from\"./DK27pemE.js\";const Z=W(Y),ee={class:\"flex items-center justify-between\"},te={class:\"space-y-4\"},oe={class:\"flex justify-end gap-3\"},le=$({__name:\"BacktestNotesModal\",props:k({sessionId:{},initialTitle:{},initialDescription:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:k([\"saved\"],[\"update:modelValue\"]),setup(y,{emit:h}){const a=y,V=h,i=B(y,\"modelValue\"),r=m(a.initialTitle||\"\"),d=m(a.initialDescription||\"\"),v=m(!1),u=m(),C=O(),g=b(()=>C.value===\"light\"?\"vs-light\":\"vs-dark\"),T={automaticLayout:!0,minimap:{enabled:!1},fontSize:15,lineHeight:21,wordWrap:\"on\"},x=b(()=>r.value!==(a.initialTitle||\"\")||d.value!==(a.initialDescription||\"\"));p(g,t=>{var e,c;(c=(e=u.value)==null?void 0:e.$editor)==null||c.updateOptions({theme:t})}),p(()=>a.initialTitle,t=>{r.value=t||\"\"}),p(()=>a.initialDescription,t=>{d.value=t||\"\"}),p(i,async t=>{t?(await L(),setTimeout(()=>{var e;(e=u.value)!=null&&e.$editor&&(u.value.$editor.updateOptions({theme:g.value}),u.value.$editor.addCommand(2051,()=>{_()}))},100),window.addEventListener(\"keydown\",f)):window.removeEventListener(\"keydown\",f)}),S(()=>{window.removeEventListener(\"keydown\",f)});function f(t){(t.metaKey||t.ctrlKey)&&t.key===\"Enter\"&&(t.preventDefault(),_())}async function _(){if(x.value){v.value=!0;try{await j().updateSessionNotes(a.sessionId,r.value,d.value),z(\"success\",\"Notes saved successfully\"),V(\"saved\",{title:r.value,description:d.value}),i.value=!1}catch(t){I(t)}finally{v.value=!1}}}return(t,e)=>{const c=J,D=A,E=Z,N=H,w=G,U=X,M=R;return q(),K(M,{modelValue:i.value,\"onUpdate:modelValue\":e[4]||(e[4]=l=>i.value=l),ui:{width:\"sm:max-w-3xl\"}},{default:s(()=>[n(U,null,{header:s(()=>[o(\"div\",ee,[e[5]||(e[5]=o(\"h3\",{class:\"text-lg font-semibold\"},\"Add Title & Notes\",-1)),n(c,{text:\"Close\",popper:{arrow:!0,offsetDistance:10}},{default:s(()=>[o(\"button\",{class:\"p-2 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-full text-gray-400 hover:text-gray-700 dark:hover:text-gray-200 focus:outline-none transition-all duration-300\",onClick:e[0]||(e[0]=l=>i.value=!1)},[n(P(Q),{class:\"h-5 w-5\",\"aria-hidden\":\"true\"})])]),_:1})])]),footer:s(()=>[o(\"div\",oe,[n(w,{color:\"gray\",variant:\"ghost\",label:\"Cancel\",onClick:e[3]||(e[3]=l=>i.value=!1)}),n(w,{color:\"primary\",label:\"Save\",icon:\"i-heroicons-check\",disabled:!x.value,loading:v.value,onClick:_},null,8,[\"disabled\",\"loading\"])])]),default:s(()=>[o(\"div\",te,[o(\"div\",null,[e[6]||(e[6]=o(\"label\",{class:\"block text-sm font-medium mb-2\"},\"Title\",-1)),n(D,{modelValue:r.value,\"onUpdate:modelValue\":e[1]||(e[1]=l=>r.value=l),placeholder:\"Enter a title for this backtest\",maxlength:\"255\",size:\"lg\"},null,8,[\"modelValue\"])]),o(\"div\",null,[e[8]||(e[8]=o(\"label\",{class:\"block text-sm font-medium mb-2\"},\"Description\",-1)),n(N,null,{default:s(()=>[n(E,{ref_key:\"descriptionEditorRef\",ref:u,modelValue:d.value,\"onUpdate:modelValue\":e[2]||(e[2]=l=>d.value=l),lang:\"markdown\",options:T,class:\"border border-gray-200 dark:border-gray-800 rounded\",style:{height:\"400px\"}},{default:s(()=>e[7]||(e[7]=[F(\" Loading editor... \")])),_:1},8,[\"modelValue\"])]),_:1})])])]),_:1})]),_:1},8,[\"modelValue\"])}}});export{le as _};\n"
  },
  {
    "path": "jesse/static/_nuxt/xI-RfyKK.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Java\",\"name\":\"java\",\"patterns\":[{\"begin\":\"\\\\\\\\b(package)\\\\\\\\b\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.package.java\"}},\"contentName\":\"storage.modifier.package.java\",\"end\":\"\\\\\\\\s*(;)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.java\"}},\"name\":\"meta.package.java\",\"patterns\":[{\"include\":\"#comments\"},{\"match\":\"(?<=\\\\\\\\.)\\\\\\\\s*\\\\\\\\.|\\\\\\\\.(?=\\\\\\\\s*;)\",\"name\":\"invalid.illegal.character_not_allowed_here.java\"},{\"match\":\"(?<!_)_(?=\\\\\\\\s*(\\\\\\\\.|;))|\\\\\\\\b\\\\\\\\d+|-+\",\"name\":\"invalid.illegal.character_not_allowed_here.java\"},{\"match\":\"[A-Z]+\",\"name\":\"invalid.deprecated.package_name_not_lowercase.java\"},{\"match\":\"\\\\\\\\b(?<!\\\\\\\\$)(abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|native|new|non-sealed|package|permits|private|protected|public|return|sealed|short|static|strictfp|super|switch|syncronized|this|throw|throws|transient|try|void|volatile|while|yield|true|false|null)\\\\\\\\b\",\"name\":\"invalid.illegal.character_not_allowed_here.java\"},{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.separator.java\"}]},{\"begin\":\"\\\\\\\\b(import)\\\\\\\\b\\\\\\\\s*\\\\\\\\b(static)?\\\\\\\\b\\\\\\\\s\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.import.java\"},\"2\":{\"name\":\"storage.modifier.java\"}},\"contentName\":\"storage.modifier.import.java\",\"end\":\"\\\\\\\\s*(;)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.java\"}},\"name\":\"meta.import.java\",\"patterns\":[{\"include\":\"#comments\"},{\"match\":\"(?<=\\\\\\\\.)\\\\\\\\s*\\\\\\\\.|\\\\\\\\.(?=\\\\\\\\s*;)\",\"name\":\"invalid.illegal.character_not_allowed_here.java\"},{\"match\":\"(?<!\\\\\\\\.)\\\\\\\\s*\\\\\\\\*\",\"name\":\"invalid.illegal.character_not_allowed_here.java\"},{\"match\":\"(?<!_)_(?=\\\\\\\\s*(\\\\\\\\.|;))|\\\\\\\\b\\\\\\\\d+|-+\",\"name\":\"invalid.illegal.character_not_allowed_here.java\"},{\"match\":\"\\\\\\\\b(?<!\\\\\\\\$)(abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|native|new|non-sealed|package|permits|private|protected|public|return|sealed|short|static|strictfp|super|switch|syncronized|this|throw|throws|transient|try|void|volatile|while|yield|true|false|null)\\\\\\\\b\",\"name\":\"invalid.illegal.character_not_allowed_here.java\"},{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.separator.java\"},{\"match\":\"\\\\\\\\*\",\"name\":\"variable.language.wildcard.java\"}]},{\"include\":\"#comments-javadoc\"},{\"include\":\"#code\"},{\"include\":\"#module\"}],\"repository\":{\"all-types\":{\"patterns\":[{\"include\":\"#primitive-arrays\"},{\"include\":\"#primitive-types\"},{\"include\":\"#object-types\"}]},\"annotations\":{\"patterns\":[{\"begin\":\"((@)\\\\\\\\s*([^\\\\\\\\s(]+))(\\\\\\\\()\",\"beginCaptures\":{\"2\":{\"name\":\"punctuation.definition.annotation.java\"},\"3\":{\"name\":\"storage.type.annotation.java\"},\"4\":{\"name\":\"punctuation.definition.annotation-arguments.begin.bracket.round.java\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.annotation-arguments.end.bracket.round.java\"}},\"name\":\"meta.declaration.annotation.java\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.other.key.java\"},\"2\":{\"name\":\"keyword.operator.assignment.java\"}},\"match\":\"(\\\\\\\\w*)\\\\\\\\s*(=)\"},{\"include\":\"#code\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.annotation.java\"},\"2\":{\"name\":\"storage.modifier.java\"},\"3\":{\"name\":\"storage.type.annotation.java\"},\"5\":{\"name\":\"punctuation.definition.annotation.java\"},\"6\":{\"name\":\"storage.type.annotation.java\"}},\"match\":\"(@)(interface)\\\\\\\\s+(\\\\\\\\w*)|((@)\\\\\\\\s*(\\\\\\\\w+))\",\"name\":\"meta.declaration.annotation.java\"}]},\"anonymous-block-and-instance-initializer\":{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.java\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.java\"}},\"patterns\":[{\"include\":\"#code\"}]},\"anonymous-classes-and-new\":{\"begin\":\"\\\\\\\\bnew\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.new.java\"}},\"end\":\"(?=;|\\\\\\\\)|\\\\\\\\]|\\\\\\\\.|,|\\\\\\\\?|:|}|\\\\\\\\+|\\\\\\\\-|\\\\\\\\*|\\\\\\\\/(?!\\\\\\\\/|\\\\\\\\*)|%|!|&|\\\\\\\\||\\\\\\\\^|=)\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#function-call\"},{\"include\":\"#all-types\"},{\"begin\":\"(?<=\\\\\\\\))\",\"end\":\"(?=;|\\\\\\\\)|\\\\\\\\]|\\\\\\\\.|,|\\\\\\\\?|:|}|\\\\\\\\+|\\\\\\\\-|\\\\\\\\*|\\\\\\\\/(?!\\\\\\\\/|\\\\\\\\*)|%|!|&|\\\\\\\\||\\\\\\\\^|=)\",\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.inner-class.begin.bracket.curly.java\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.inner-class.end.bracket.curly.java\"}},\"name\":\"meta.inner-class.java\",\"patterns\":[{\"include\":\"#class-body\"}]}]},{\"begin\":\"(?<=\\\\\\\\])\",\"end\":\"(?=;|\\\\\\\\)|\\\\\\\\]|\\\\\\\\.|,|\\\\\\\\?|:|}|\\\\\\\\+|\\\\\\\\-|\\\\\\\\*|\\\\\\\\/(?!\\\\\\\\/|\\\\\\\\*)|%|!|&|\\\\\\\\||\\\\\\\\^|=)\",\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.array-initializer.begin.bracket.curly.java\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.array-initializer.end.bracket.curly.java\"}},\"name\":\"meta.array-initializer.java\",\"patterns\":[{\"include\":\"#code\"}]}]},{\"include\":\"#parens\"}]},\"assertions\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(assert)\\\\\\\\s\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.assert.java\"}},\"end\":\"$\",\"name\":\"meta.declaration.assertion.java\",\"patterns\":[{\"match\":\":\",\"name\":\"keyword.operator.assert.expression-separator.java\"},{\"include\":\"#code\"}]}]},\"class\":{\"begin\":\"(?=\\\\\\\\w?[\\\\\\\\w\\\\\\\\s-]*\\\\\\\\b(?:class|(?<!@)interface|enum)\\\\\\\\s+[\\\\\\\\w$]+)\",\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.class.end.bracket.curly.java\"}},\"name\":\"meta.class.java\",\"patterns\":[{\"include\":\"#storage-modifiers\"},{\"include\":\"#generics\"},{\"include\":\"#comments\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.java\"},\"2\":{\"name\":\"entity.name.type.class.java\"}},\"match\":\"(class|(?<!@)interface|enum)\\\\\\\\s+([\\\\\\\\w$]+)\",\"name\":\"meta.class.identifier.java\"},{\"begin\":\"extends\",\"beginCaptures\":{\"0\":{\"name\":\"storage.modifier.extends.java\"}},\"end\":\"(?={|implements|permits)\",\"name\":\"meta.definition.class.inherited.classes.java\",\"patterns\":[{\"include\":\"#object-types-inherited\"},{\"include\":\"#comments\"}]},{\"begin\":\"(implements)\\\\\\\\s\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.implements.java\"}},\"end\":\"(?=\\\\\\\\s*extends|permits|\\\\\\\\{)\",\"name\":\"meta.definition.class.implemented.interfaces.java\",\"patterns\":[{\"include\":\"#object-types-inherited\"},{\"include\":\"#comments\"}]},{\"begin\":\"(permits)\\\\\\\\s\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.permits.java\"}},\"end\":\"(?=\\\\\\\\s*extends|implements|\\\\\\\\{)\",\"name\":\"meta.definition.class.permits.classes.java\",\"patterns\":[{\"include\":\"#object-types-inherited\"},{\"include\":\"#comments\"}]},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.class.begin.bracket.curly.java\"}},\"contentName\":\"meta.class.body.java\",\"end\":\"(?=})\",\"patterns\":[{\"include\":\"#class-body\"}]}]},\"class-body\":{\"patterns\":[{\"include\":\"#comments-javadoc\"},{\"include\":\"#comments\"},{\"include\":\"#enums\"},{\"include\":\"#class\"},{\"include\":\"#generics\"},{\"include\":\"#static-initializer\"},{\"include\":\"#class-fields-and-methods\"},{\"include\":\"#annotations\"},{\"include\":\"#storage-modifiers\"},{\"include\":\"#member-variables\"},{\"include\":\"#code\"}]},\"class-fields-and-methods\":{\"patterns\":[{\"begin\":\"(?=\\\\\\\\=)\",\"end\":\"(?=;)\",\"patterns\":[{\"include\":\"#code\"}]},{\"include\":\"#methods\"}]},\"code\":{\"patterns\":[{\"include\":\"#annotations\"},{\"include\":\"#comments\"},{\"include\":\"#enums\"},{\"include\":\"#class\"},{\"include\":\"#record\"},{\"include\":\"#anonymous-block-and-instance-initializer\"},{\"include\":\"#try-catch-finally\"},{\"include\":\"#assertions\"},{\"include\":\"#parens\"},{\"include\":\"#constants-and-special-vars\"},{\"include\":\"#numbers\"},{\"include\":\"#anonymous-classes-and-new\"},{\"include\":\"#lambda-expression\"},{\"include\":\"#keywords\"},{\"include\":\"#storage-modifiers\"},{\"include\":\"#method-call\"},{\"include\":\"#function-call\"},{\"include\":\"#variables\"},{\"include\":\"#variables-local\"},{\"include\":\"#objects\"},{\"include\":\"#properties\"},{\"include\":\"#strings\"},{\"include\":\"#all-types\"},{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.java\"},{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.separator.period.java\"},{\"match\":\";\",\"name\":\"punctuation.terminator.java\"}]},\"comments\":{\"patterns\":[{\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.java\"}},\"match\":\"/\\\\\\\\*\\\\\\\\*/\",\"name\":\"comment.block.empty.java\"},{\"include\":\"#comments-inline\"}]},\"comments-inline\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\",\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.java\"}},\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.java\"},{\"begin\":\"(^[ \\\\\\\\t]+)?(?=//)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.java\"}},\"end\":\"(?!\\\\\\\\G)\",\"patterns\":[{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.java\"}},\"end\":\"\\\\\\\\n\",\"name\":\"comment.line.double-slash.java\"}]}]},\"comments-javadoc\":{\"patterns\":[{\"begin\":\"^\\\\\\\\s*(/\\\\\\\\*\\\\\\\\*)(?!/)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.java\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.java\"}},\"name\":\"comment.block.javadoc.java\",\"patterns\":[{\"match\":\"@(author|deprecated|return|see|serial|since|version)\\\\\\\\b\",\"name\":\"keyword.other.documentation.javadoc.java\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.documentation.javadoc.java\"},\"2\":{\"name\":\"variable.parameter.java\"}},\"match\":\"(@param)\\\\\\\\s+(\\\\\\\\S+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.documentation.javadoc.java\"},\"2\":{\"name\":\"entity.name.type.class.java\"}},\"match\":\"(@(?:exception|throws))\\\\\\\\s+(\\\\\\\\S+)\"},{\"captures\":{\"1\":{\"name\":\"keyword.other.documentation.javadoc.java\"},\"2\":{\"name\":\"entity.name.type.class.java\"},\"3\":{\"name\":\"variable.parameter.java\"}},\"match\":\"{(@link)\\\\\\\\s+(\\\\\\\\S+)?#([\\\\\\\\w$]+\\\\\\\\s*\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\)).*?}\"}]}]},\"constants-and-special-vars\":{\"patterns\":[{\"match\":\"\\\\\\\\b(true|false|null)\\\\\\\\b\",\"name\":\"constant.language.java\"},{\"match\":\"\\\\\\\\bthis\\\\\\\\b\",\"name\":\"variable.language.this.java\"},{\"match\":\"\\\\\\\\bsuper\\\\\\\\b\",\"name\":\"variable.language.java\"}]},\"enums\":{\"begin\":\"^\\\\\\\\s*([\\\\\\\\w\\\\\\\\s]*)(enum)\\\\\\\\s+(\\\\\\\\w+)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#storage-modifiers\"}]},\"2\":{\"name\":\"storage.modifier.java\"},\"3\":{\"name\":\"entity.name.type.enum.java\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.enum.end.bracket.curly.java\"}},\"name\":\"meta.enum.java\",\"patterns\":[{\"begin\":\"\\\\\\\\b(extends)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.extends.java\"}},\"end\":\"(?={|\\\\\\\\bimplements\\\\\\\\b)\",\"name\":\"meta.definition.class.inherited.classes.java\",\"patterns\":[{\"include\":\"#object-types-inherited\"},{\"include\":\"#comments\"}]},{\"begin\":\"\\\\\\\\b(implements)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.implements.java\"}},\"end\":\"(?={|\\\\\\\\bextends\\\\\\\\b)\",\"name\":\"meta.definition.class.implemented.interfaces.java\",\"patterns\":[{\"include\":\"#object-types-inherited\"},{\"include\":\"#comments\"}]},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.enum.begin.bracket.curly.java\"}},\"end\":\"(?=})\",\"patterns\":[{\"begin\":\"(?<={)\",\"end\":\"(?=;|})\",\"patterns\":[{\"include\":\"#comments-javadoc\"},{\"include\":\"#comments\"},{\"begin\":\"\\\\\\\\b(\\\\\\\\w+)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"constant.other.enum.java\"}},\"end\":\"(,)|(?=;|})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.delimiter.java\"}},\"patterns\":[{\"include\":\"#comments-javadoc\"},{\"include\":\"#comments\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.bracket.round.java\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.bracket.round.java\"}},\"patterns\":[{\"include\":\"#code\"}]},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.bracket.curly.java\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.bracket.curly.java\"}},\"patterns\":[{\"include\":\"#class-body\"}]}]}]},{\"include\":\"#class-body\"}]}]},\"function-call\":{\"begin\":\"([A-Za-z_$][\\\\\\\\w$]*)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.java\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.bracket.round.java\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.bracket.round.java\"}},\"name\":\"meta.function-call.java\",\"patterns\":[{\"include\":\"#code\"}]},\"generics\":{\"begin\":\"<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.bracket.angle.java\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.bracket.angle.java\"}},\"patterns\":[{\"match\":\"\\\\\\\\b(extends|super)\\\\\\\\b\",\"name\":\"storage.modifier.$1.java\"},{\"captures\":{\"1\":{\"name\":\"storage.type.java\"}},\"match\":\"(?<!\\\\\\\\.)([a-zA-Z$_][a-zA-Z0-9$_]*)(?=\\\\\\\\s*<)\"},{\"include\":\"#primitive-arrays\"},{\"match\":\"[a-zA-Z$_][a-zA-Z0-9$_]*\",\"name\":\"storage.type.generic.java\"},{\"match\":\"\\\\\\\\?\",\"name\":\"storage.type.generic.wildcard.java\"},{\"match\":\"&\",\"name\":\"punctuation.separator.types.java\"},{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.java\"},{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.separator.period.java\"},{\"include\":\"#parens\"},{\"include\":\"#generics\"},{\"include\":\"#comments\"}]},\"keywords\":{\"patterns\":[{\"match\":\"\\\\\\\\bthrow\\\\\\\\b\",\"name\":\"keyword.control.throw.java\"},{\"match\":\"\\\\\\\\?|:\",\"name\":\"keyword.control.ternary.java\"},{\"match\":\"\\\\\\\\b(return|yield|break|case|continue|default|do|while|for|switch|if|else)\\\\\\\\b\",\"name\":\"keyword.control.java\"},{\"match\":\"\\\\\\\\b(instanceof)\\\\\\\\b\",\"name\":\"keyword.operator.instanceof.java\"},{\"match\":\"(<<|>>>?|~|\\\\\\\\^)\",\"name\":\"keyword.operator.bitwise.java\"},{\"match\":\"((&|\\\\\\\\^|\\\\\\\\||<<|>>>?)=)\",\"name\":\"keyword.operator.assignment.bitwise.java\"},{\"match\":\"(===?|!=|<=|>=|<>|<|>)\",\"name\":\"keyword.operator.comparison.java\"},{\"match\":\"([+*/%-]=)\",\"name\":\"keyword.operator.assignment.arithmetic.java\"},{\"match\":\"(=)\",\"name\":\"keyword.operator.assignment.java\"},{\"match\":\"(\\\\\\\\-\\\\\\\\-|\\\\\\\\+\\\\\\\\+)\",\"name\":\"keyword.operator.increment-decrement.java\"},{\"match\":\"(\\\\\\\\-|\\\\\\\\+|\\\\\\\\*|\\\\\\\\/|%)\",\"name\":\"keyword.operator.arithmetic.java\"},{\"match\":\"(!|&&|\\\\\\\\|\\\\\\\\|)\",\"name\":\"keyword.operator.logical.java\"},{\"match\":\"(\\\\\\\\||&)\",\"name\":\"keyword.operator.bitwise.java\"},{\"match\":\"\\\\\\\\b(const|goto)\\\\\\\\b\",\"name\":\"keyword.reserved.java\"}]},\"lambda-expression\":{\"patterns\":[{\"match\":\"->\",\"name\":\"storage.type.function.arrow.java\"}]},\"member-variables\":{\"begin\":\"(?=private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final)\",\"end\":\"(?=\\\\\\\\=|;)\",\"patterns\":[{\"include\":\"#storage-modifiers\"},{\"include\":\"#variables\"},{\"include\":\"#primitive-arrays\"},{\"include\":\"#object-types\"}]},\"method-call\":{\"begin\":\"(\\\\\\\\.)\\\\\\\\s*([A-Za-z_$][\\\\\\\\w$]*)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.period.java\"},\"2\":{\"name\":\"entity.name.function.java\"},\"3\":{\"name\":\"punctuation.definition.parameters.begin.bracket.round.java\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.bracket.round.java\"}},\"name\":\"meta.method-call.java\",\"patterns\":[{\"include\":\"#code\"}]},\"methods\":{\"begin\":\"(?!new)(?=[\\\\\\\\w<].*\\\\\\\\s+)(?=([^=/]|/(?!/))+\\\\\\\\()\",\"end\":\"(})|(?=;)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.method.end.bracket.curly.java\"}},\"name\":\"meta.method.java\",\"patterns\":[{\"include\":\"#storage-modifiers\"},{\"begin\":\"(\\\\\\\\w+)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.java\"},\"2\":{\"name\":\"punctuation.definition.parameters.begin.bracket.round.java\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.bracket.round.java\"}},\"name\":\"meta.method.identifier.java\",\"patterns\":[{\"include\":\"#parameters\"},{\"include\":\"#parens\"},{\"include\":\"#comments\"}]},{\"include\":\"#generics\"},{\"begin\":\"(?=\\\\\\\\w.*\\\\\\\\s+\\\\\\\\w+\\\\\\\\s*\\\\\\\\()\",\"end\":\"(?=\\\\\\\\s+\\\\\\\\w+\\\\\\\\s*\\\\\\\\()\",\"name\":\"meta.method.return-type.java\",\"patterns\":[{\"include\":\"#all-types\"},{\"include\":\"#parens\"},{\"include\":\"#comments\"}]},{\"include\":\"#throws\"},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.method.begin.bracket.curly.java\"}},\"contentName\":\"meta.method.body.java\",\"end\":\"(?=})\",\"patterns\":[{\"include\":\"#code\"}]},{\"include\":\"#comments\"}]},\"module\":{\"begin\":\"((open)\\\\\\\\s)?(module)\\\\\\\\s+(\\\\\\\\w+)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.java\"},\"3\":{\"name\":\"storage.modifier.java\"},\"4\":{\"name\":\"entity.name.type.module.java\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.module.end.bracket.curly.java\"}},\"name\":\"meta.module.java\",\"patterns\":[{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.module.begin.bracket.curly.java\"}},\"contentName\":\"meta.module.body.java\",\"end\":\"(?=})\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#comments-javadoc\"},{\"match\":\"\\\\\\\\b(requires|transitive|exports|opens|to|uses|provides|with)\\\\\\\\b\",\"name\":\"keyword.module.java\"}]}]},\"numbers\":{\"patterns\":[{\"match\":\"\\\\\\\\b(?<!\\\\\\\\$)0(x|X)((?<!\\\\\\\\.)[0-9a-fA-F]([0-9a-fA-F_]*[0-9a-fA-F])?[Ll]?(?!\\\\\\\\.)|([0-9a-fA-F]([0-9a-fA-F_]*[0-9a-fA-F])?\\\\\\\\.?|([0-9a-fA-F]([0-9a-fA-F_]*[0-9a-fA-F])?)?\\\\\\\\.[0-9a-fA-F]([0-9a-fA-F_]*[0-9a-fA-F])?)[Pp][+-]?[0-9]([0-9_]*[0-9])?[FfDd]?)\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.numeric.hex.java\"},{\"match\":\"\\\\\\\\b(?<!\\\\\\\\$)0(b|B)[01]([01_]*[01])?[Ll]?\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.numeric.binary.java\"},{\"match\":\"\\\\\\\\b(?<!\\\\\\\\$)0[0-7]([0-7_]*[0-7])?[Ll]?\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.numeric.octal.java\"},{\"match\":\"(?<!\\\\\\\\$)(\\\\\\\\b[0-9]([0-9_]*[0-9])?\\\\\\\\.\\\\\\\\B(?!\\\\\\\\.)|\\\\\\\\b[0-9]([0-9_]*[0-9])?\\\\\\\\.([Ee][+-]?[0-9]([0-9_]*[0-9])?)[FfDd]?\\\\\\\\b|\\\\\\\\b[0-9]([0-9_]*[0-9])?\\\\\\\\.([Ee][+-]?[0-9]([0-9_]*[0-9])?)?[FfDd]\\\\\\\\b|\\\\\\\\b[0-9]([0-9_]*[0-9])?\\\\\\\\.([0-9]([0-9_]*[0-9])?)([Ee][+-]?[0-9]([0-9_]*[0-9])?)?[FfDd]?\\\\\\\\b|(?<!\\\\\\\\.)\\\\\\\\B\\\\\\\\.[0-9]([0-9_]*[0-9])?([Ee][+-]?[0-9]([0-9_]*[0-9])?)?[FfDd]?\\\\\\\\b|\\\\\\\\b[0-9]([0-9_]*[0-9])?([Ee][+-]?[0-9]([0-9_]*[0-9])?)[FfDd]?\\\\\\\\b|\\\\\\\\b[0-9]([0-9_]*[0-9])?([Ee][+-]?[0-9]([0-9_]*[0-9])?)?[FfDd]\\\\\\\\b|\\\\\\\\b(0|[1-9]([0-9_]*[0-9])?)(?!\\\\\\\\.)[Ll]?\\\\\\\\b)(?!\\\\\\\\$)\",\"name\":\"constant.numeric.decimal.java\"}]},\"object-types\":{\"patterns\":[{\"include\":\"#generics\"},{\"begin\":\"\\\\\\\\b((?:[A-Za-z_]\\\\\\\\w*\\\\\\\\s*\\\\\\\\.\\\\\\\\s*)*)([A-Z_]\\\\\\\\w*)\\\\\\\\s*(?=\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"match\":\"[A-Za-z_]\\\\\\\\w*\",\"name\":\"storage.type.java\"},{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.separator.period.java\"}]},\"2\":{\"name\":\"storage.type.object.array.java\"}},\"end\":\"(?!\\\\\\\\s*\\\\\\\\[)\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#parens\"}]},{\"captures\":{\"1\":{\"patterns\":[{\"match\":\"[A-Za-z_]\\\\\\\\w*\",\"name\":\"storage.type.java\"},{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.separator.period.java\"}]}},\"match\":\"\\\\\\\\b((?:[A-Za-z_]\\\\\\\\w*\\\\\\\\s*\\\\\\\\.\\\\\\\\s*)*[A-Z_]\\\\\\\\w*)\\\\\\\\s*(?=<)\"},{\"captures\":{\"1\":{\"patterns\":[{\"match\":\"[A-Za-z_]\\\\\\\\w*\",\"name\":\"storage.type.java\"},{\"match\":\"\\\\\\\\.\",\"name\":\"punctuation.separator.period.java\"}]}},\"match\":\"\\\\\\\\b((?:[A-Za-z_]\\\\\\\\w*\\\\\\\\s*\\\\\\\\.\\\\\\\\s*)*[A-Z_]\\\\\\\\w*)\\\\\\\\b((?=\\\\\\\\s*[A-Za-z$_\\\\\\\\n])|(?=\\\\\\\\s*\\\\\\\\.\\\\\\\\.\\\\\\\\.))\"}]},\"object-types-inherited\":{\"patterns\":[{\"include\":\"#generics\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.period.java\"}},\"match\":\"\\\\\\\\b(?:[A-Z]\\\\\\\\w*\\\\\\\\s*(\\\\\\\\.)\\\\\\\\s*)*[A-Z]\\\\\\\\w*\\\\\\\\b\",\"name\":\"entity.other.inherited-class.java\"},{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.java\"}]},\"objects\":{\"match\":\"(?<![\\\\\\\\w$])[a-zA-Z_$][\\\\\\\\w$]*(?=\\\\\\\\s*\\\\\\\\.\\\\\\\\s*[\\\\\\\\w$]+)\",\"name\":\"variable.other.object.java\"},\"parameters\":{\"patterns\":[{\"match\":\"\\\\\\\\bfinal\\\\\\\\b\",\"name\":\"storage.modifier.java\"},{\"include\":\"#annotations\"},{\"include\":\"#all-types\"},{\"include\":\"#strings\"},{\"match\":\"\\\\\\\\w+\",\"name\":\"variable.parameter.java\"},{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.java\"},{\"match\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"name\":\"punctuation.definition.parameters.varargs.java\"}]},\"parens\":{\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.bracket.round.java\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.bracket.round.java\"}},\"patterns\":[{\"include\":\"#code\"}]},{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.bracket.square.java\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.bracket.square.java\"}},\"patterns\":[{\"include\":\"#code\"}]},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.bracket.curly.java\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.bracket.curly.java\"}},\"patterns\":[{\"include\":\"#code\"}]}]},\"primitive-arrays\":{\"patterns\":[{\"begin\":\"\\\\\\\\b(void|boolean|byte|char|short|int|float|long|double)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.primitive.array.java\"}},\"end\":\"(?!\\\\\\\\s*\\\\\\\\[)\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#parens\"}]}]},\"primitive-types\":{\"match\":\"\\\\\\\\b(void|boolean|byte|char|short|int|float|long|double)\\\\\\\\b\",\"name\":\"storage.type.primitive.java\"},\"properties\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.period.java\"},\"2\":{\"name\":\"keyword.control.new.java\"}},\"match\":\"(\\\\\\\\.)\\\\\\\\s*(new)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.period.java\"},\"2\":{\"name\":\"variable.other.object.property.java\"}},\"match\":\"(\\\\\\\\.)\\\\\\\\s*([a-zA-Z_$][\\\\\\\\w$]*)(?=\\\\\\\\s*\\\\\\\\.\\\\\\\\s*[a-zA-Z_$][\\\\\\\\w$]*)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.period.java\"},\"2\":{\"name\":\"variable.other.object.property.java\"}},\"match\":\"(\\\\\\\\.)\\\\\\\\s*([a-zA-Z_$][\\\\\\\\w$]*)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.separator.period.java\"},\"2\":{\"name\":\"invalid.illegal.identifier.java\"}},\"match\":\"(\\\\\\\\.)\\\\\\\\s*([0-9][\\\\\\\\w$]*)\"}]},\"record\":{\"begin\":\"(?=\\\\\\\\w?[\\\\\\\\w\\\\\\\\s]*\\\\\\\\b(?:record)\\\\\\\\s+[\\\\\\\\w$]+)\",\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.class.end.bracket.curly.java\"}},\"name\":\"meta.record.java\",\"patterns\":[{\"include\":\"#storage-modifiers\"},{\"include\":\"#generics\"},{\"include\":\"#comments\"},{\"begin\":\"(record)\\\\\\\\s+([\\\\\\\\w$]+)(<[\\\\\\\\w$]+>)?(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.java\"},\"2\":{\"name\":\"entity.name.type.record.java\"},\"3\":{\"patterns\":[{\"include\":\"#generics\"}]},\"4\":{\"name\":\"punctuation.definition.parameters.begin.bracket.round.java\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.bracket.round.java\"}},\"name\":\"meta.record.identifier.java\",\"patterns\":[{\"include\":\"#code\"}]},{\"begin\":\"(implements)\\\\\\\\s\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.implements.java\"}},\"end\":\"(?=\\\\\\\\s*\\\\\\\\{)\",\"name\":\"meta.definition.class.implemented.interfaces.java\",\"patterns\":[{\"include\":\"#object-types-inherited\"},{\"include\":\"#comments\"}]},{\"include\":\"#record-body\"}]},\"record-body\":{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.class.begin.bracket.curly.java\"}},\"end\":\"(?=})\",\"name\":\"meta.record.body.java\",\"patterns\":[{\"include\":\"#record-constructor\"},{\"include\":\"#class-body\"}]},\"record-constructor\":{\"begin\":\"(?!new)(?=[\\\\\\\\w<].*\\\\\\\\s+)(?=([^\\\\\\\\(=/]|/(?!/))+(?={))\",\"end\":\"(})|(?=;)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.method.end.bracket.curly.java\"}},\"name\":\"meta.method.java\",\"patterns\":[{\"include\":\"#storage-modifiers\"},{\"begin\":\"(\\\\\\\\w+)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.java\"}},\"end\":\"(?=\\\\\\\\s*{)\",\"name\":\"meta.method.identifier.java\",\"patterns\":[{\"include\":\"#comments\"}]},{\"include\":\"#comments\"},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.method.begin.bracket.curly.java\"}},\"contentName\":\"meta.method.body.java\",\"end\":\"(?=})\",\"patterns\":[{\"include\":\"#code\"}]}]},\"static-initializer\":{\"patterns\":[{\"include\":\"#anonymous-block-and-instance-initializer\"},{\"match\":\"static\",\"name\":\"storage.modifier.java\"}]},\"storage-modifiers\":{\"match\":\"\\\\\\\\b(public|private|protected|static|final|native|synchronized|abstract|threadsafe|transient|volatile|default|strictfp|sealed|non-sealed)\\\\\\\\b\",\"name\":\"storage.modifier.java\"},\"strings\":{\"patterns\":[{\"begin\":\"\\\\\"\\\\\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.java\"}},\"end\":\"\\\\\"\\\\\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.java\"}},\"name\":\"string.quoted.triple.java\",\"patterns\":[{\"match\":\"(\\\\\\\\\\\\\\\\\\\\\"\\\\\"\\\\\")(?!\\\\\")|(\\\\\\\\\\\\\\\\.)\",\"name\":\"constant.character.escape.java\"}]},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.java\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.java\"}},\"name\":\"string.quoted.double.java\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.java\"}]},{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.java\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.java\"}},\"name\":\"string.quoted.single.java\",\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.java\"}]}]},\"throws\":{\"begin\":\"throws\",\"beginCaptures\":{\"0\":{\"name\":\"storage.modifier.java\"}},\"end\":\"(?={|;)\",\"name\":\"meta.throwables.java\",\"patterns\":[{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.java\"},{\"match\":\"[a-zA-Z$_][\\\\\\\\.a-zA-Z0-9$_]*\",\"name\":\"storage.type.java\"},{\"include\":\"#comments\"}]},\"try-catch-finally\":{\"patterns\":[{\"begin\":\"\\\\\\\\btry\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.try.java\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.try.end.bracket.curly.java\"}},\"name\":\"meta.try.java\",\"patterns\":[{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.try.resources.begin.bracket.round.java\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.try.resources.end.bracket.round.java\"}},\"name\":\"meta.try.resources.java\",\"patterns\":[{\"include\":\"#code\"}]},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.try.begin.bracket.curly.java\"}},\"contentName\":\"meta.try.body.java\",\"end\":\"(?=})\",\"patterns\":[{\"include\":\"#code\"}]}]},{\"begin\":\"\\\\\\\\b(catch)\\\\\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.catch.java\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.catch.end.bracket.curly.java\"}},\"name\":\"meta.catch.java\",\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.begin.bracket.round.java\"}},\"contentName\":\"meta.catch.parameters.java\",\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.bracket.round.java\"}},\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#storage-modifiers\"},{\"begin\":\"[a-zA-Z$_][\\\\\\\\.a-zA-Z0-9$_]*\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.java\"}},\"end\":\"(\\\\\\\\|)|(?=\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.catch.separator.java\"}},\"patterns\":[{\"include\":\"#comments\"},{\"captures\":{\"0\":{\"name\":\"variable.parameter.java\"}},\"match\":\"\\\\\\\\w+\"}]}]},{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.catch.begin.bracket.curly.java\"}},\"contentName\":\"meta.catch.body.java\",\"end\":\"(?=})\",\"patterns\":[{\"include\":\"#code\"}]}]},{\"begin\":\"\\\\\\\\bfinally\\\\\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.finally.java\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.finally.end.bracket.curly.java\"}},\"name\":\"meta.finally.java\",\"patterns\":[{\"begin\":\"{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.finally.begin.bracket.curly.java\"}},\"contentName\":\"meta.finally.body.java\",\"end\":\"(?=})\",\"patterns\":[{\"include\":\"#code\"}]}]}]},\"variables\":{\"begin\":\"(?=\\\\\\\\b((void|boolean|byte|char|short|int|float|long|double)|(?>(\\\\\\\\w+\\\\\\\\.)*[A-Z_]+\\\\\\\\w*))\\\\\\\\b\\\\\\\\s*(<[\\\\\\\\w<>,\\\\\\\\.?\\\\\\\\s\\\\\\\\[\\\\\\\\]]*>)?\\\\\\\\s*((\\\\\\\\[\\\\\\\\])*)?\\\\\\\\s+[A-Za-z_$][\\\\\\\\w$]*([\\\\\\\\w\\\\\\\\[\\\\\\\\],$][\\\\\\\\w\\\\\\\\[\\\\\\\\],\\\\\\\\s]*)?\\\\\\\\s*(=|:|;))\",\"end\":\"(?=\\\\\\\\=|:|;)\",\"name\":\"meta.definition.variable.java\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.other.definition.java\"}},\"match\":\"([A-Za-z$_][\\\\\\\\w$]*)(?=\\\\\\\\s*(\\\\\\\\[\\\\\\\\])*\\\\\\\\s*(;|:|=|,))\"},{\"include\":\"#all-types\"},{\"include\":\"#code\"}]},\"variables-local\":{\"begin\":\"(?=\\\\\\\\b(var)\\\\\\\\b\\\\\\\\s+[A-Za-z_$][\\\\\\\\w$]*\\\\\\\\s*(=|:|;))\",\"end\":\"(?=\\\\\\\\=|:|;)\",\"name\":\"meta.definition.variable.local.java\",\"patterns\":[{\"match\":\"\\\\\\\\bvar\\\\\\\\b\",\"name\":\"storage.type.local.java\"},{\"captures\":{\"1\":{\"name\":\"variable.other.definition.java\"}},\"match\":\"([A-Za-z$_][\\\\\\\\w$]*)(?=\\\\\\\\s*(\\\\\\\\[\\\\\\\\])*\\\\\\\\s*(=|:|;))\"},{\"include\":\"#code\"}]}},\"scopeName\":\"source.java\"}`)),a=[e];export{a as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/xW4inM5L.js",
    "content": "const e=Object.freeze(JSON.parse('{\"displayName\":\"BibTeX\",\"name\":\"bibtex\",\"patterns\":[{\"captures\":{\"0\":{\"name\":\"punctuation.definition.comment.bibtex\"}},\"match\":\"@(?i:comment)(?=[\\\\\\\\s{(])\",\"name\":\"comment.block.at-sign.bibtex\"},{\"begin\":\"((@)(?i:preamble))\\\\\\\\s*(\\\\\\\\{)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.preamble.bibtex\"},\"2\":{\"name\":\"punctuation.definition.keyword.bibtex\"},\"3\":{\"name\":\"punctuation.section.preamble.begin.bibtex\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.preamble.end.bibtex\"}},\"name\":\"meta.preamble.braces.bibtex\",\"patterns\":[{\"include\":\"#field_value\"}]},{\"begin\":\"((@)(?i:preamble))\\\\\\\\s*(\\\\\\\\()\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.preamble.bibtex\"},\"2\":{\"name\":\"punctuation.definition.keyword.bibtex\"},\"3\":{\"name\":\"punctuation.section.preamble.begin.bibtex\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.preamble.end.bibtex\"}},\"name\":\"meta.preamble.parenthesis.bibtex\",\"patterns\":[{\"include\":\"#field_value\"}]},{\"begin\":\"((@)(?i:string))\\\\\\\\s*(\\\\\\\\{)\\\\\\\\s*([a-zA-Z!$&*+\\\\\\\\-./:;<>?@\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\\\\\\\-./:;<>?@\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\\\\]^_`|~]*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.string-constant.bibtex\"},\"2\":{\"name\":\"punctuation.definition.keyword.bibtex\"},\"3\":{\"name\":\"punctuation.section.string-constant.begin.bibtex\"},\"4\":{\"name\":\"variable.other.bibtex\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.string-constant.end.bibtex\"}},\"name\":\"meta.string-constant.braces.bibtex\",\"patterns\":[{\"include\":\"#field_value\"}]},{\"begin\":\"((@)(?i:string))\\\\\\\\s*(\\\\\\\\()\\\\\\\\s*([a-zA-Z!$&*+\\\\\\\\-./:;<>?@\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\\\\\\\-./:;<>?@\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\\\\]^_`|~]*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.string-constant.bibtex\"},\"2\":{\"name\":\"punctuation.definition.keyword.bibtex\"},\"3\":{\"name\":\"punctuation.section.string-constant.begin.bibtex\"},\"4\":{\"name\":\"variable.other.bibtex\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.string-constant.end.bibtex\"}},\"name\":\"meta.string-constant.parenthesis.bibtex\",\"patterns\":[{\"include\":\"#field_value\"}]},{\"begin\":\"((@)[a-zA-Z!$&*+\\\\\\\\-./:;<>?@\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\\\\\\\-./:;<>?@\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\\\\]^_`|~]*)\\\\\\\\s*(\\\\\\\\{)\\\\\\\\s*([^\\\\\\\\s,}]*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.entry-type.bibtex\"},\"2\":{\"name\":\"punctuation.definition.keyword.bibtex\"},\"3\":{\"name\":\"punctuation.section.entry.begin.bibtex\"},\"4\":{\"name\":\"entity.name.type.entry-key.bibtex\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.entry.end.bibtex\"}},\"name\":\"meta.entry.braces.bibtex\",\"patterns\":[{\"begin\":\"([a-zA-Z!$&*+\\\\\\\\-./:;<>?@\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\\\\\\\-./:;<>?@\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\\\\]^_`|~]*)\\\\\\\\s*(\\\\\\\\=)\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.key.bibtex\"},\"2\":{\"name\":\"punctuation.separator.key-value.bibtex\"}},\"end\":\"(?=[,}])\",\"name\":\"meta.key-assignment.bibtex\",\"patterns\":[{\"include\":\"#field_value\"}]}]},{\"begin\":\"((@)[a-zA-Z!$&*+\\\\\\\\-./:;<>?@\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\\\\\\\-./:;<>?@\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\\\\]^_`|~]*)\\\\\\\\s*(\\\\\\\\()\\\\\\\\s*([^\\\\\\\\s,]*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.entry-type.bibtex\"},\"2\":{\"name\":\"punctuation.definition.keyword.bibtex\"},\"3\":{\"name\":\"punctuation.section.entry.begin.bibtex\"},\"4\":{\"name\":\"entity.name.type.entry-key.bibtex\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.entry.end.bibtex\"}},\"name\":\"meta.entry.parenthesis.bibtex\",\"patterns\":[{\"begin\":\"([a-zA-Z!$&*+\\\\\\\\-./:;<>?@\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\\\\\\\-./:;<>?@\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\\\\]^_`|~]*)\\\\\\\\s*(\\\\\\\\=)\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.key.bibtex\"},\"2\":{\"name\":\"punctuation.separator.key-value.bibtex\"}},\"end\":\"(?=[,)])\",\"name\":\"meta.key-assignment.bibtex\",\"patterns\":[{\"include\":\"#field_value\"}]}]},{\"begin\":\"[^@\\\\\\\\n]\",\"end\":\"(?=@)\",\"name\":\"comment.block.bibtex\"}],\"repository\":{\"field_value\":{\"patterns\":[{\"include\":\"#string_content\"},{\"include\":\"#integer\"},{\"include\":\"#string_var\"},{\"match\":\"#\",\"name\":\"keyword.operator.bibtex\"}]},\"integer\":{\"captures\":{\"1\":{\"name\":\"constant.numeric.bibtex\"}},\"match\":\"\\\\\\\\s*(\\\\\\\\d+)\\\\\\\\s*\"},\"nested_braces\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.begin.bibtex\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.end.bibtex\"}},\"patterns\":[{\"include\":\"#nested_braces\"}]},\"string_content\":{\"patterns\":[{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.bibtex\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.bibtex\"}},\"patterns\":[{\"include\":\"#nested_braces\"}]},{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.bibtex\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.bibtex\"}},\"patterns\":[{\"include\":\"#nested_braces\"}]}]},\"string_var\":{\"captures\":{\"0\":{\"name\":\"support.variable.bibtex\"}},\"match\":\"[a-zA-Z!$&*+\\\\\\\\-./:;<>?@\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\\\\\\\-./:;<>?@\\\\\\\\[\\\\\\\\\\\\\\\\\\\\\\\\]^_`|~]*\"}},\"scopeName\":\"text.bibtex\"}')),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/ySlJ1b_l.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"JavaScript\",\"name\":\"javascript\",\"patterns\":[{\"include\":\"#directives\"},{\"include\":\"#statements\"},{\"include\":\"#shebang\"}],\"repository\":{\"access-modifier\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.modifier.js\"},\"after-operator-block-as-object-literal\":{\"begin\":\"(?<!\\\\\\\\+\\\\\\\\+|--)(?<=[:=(,\\\\\\\\[?+!>]|^await|[^\\\\\\\\._$[:alnum:]]await|^return|[^\\\\\\\\._$[:alnum:]]return|^yield|[^\\\\\\\\._$[:alnum:]]yield|^throw|[^\\\\\\\\._$[:alnum:]]throw|^in|[^\\\\\\\\._$[:alnum:]]in|^of|[^\\\\\\\\._$[:alnum:]]of|^typeof|[^\\\\\\\\._$[:alnum:]]typeof|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\*)\\\\\\\\s*(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.block.js\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js\"}},\"name\":\"meta.objectliteral.js\",\"patterns\":[{\"include\":\"#object-member\"}]},\"array-binding-pattern\":{\"begin\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.js\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.array.js\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.array.js\"}},\"patterns\":[{\"include\":\"#binding-element\"},{\"include\":\"#punctuation-comma\"}]},\"array-binding-pattern-const\":{\"begin\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.js\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.array.js\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.array.js\"}},\"patterns\":[{\"include\":\"#binding-element-const\"},{\"include\":\"#punctuation-comma\"}]},\"array-literal\":{\"begin\":\"\\\\\\\\s*(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.brace.square.js\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.square.js\"}},\"name\":\"meta.array.literal.js\",\"patterns\":[{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"}]},\"arrow-function\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.modifier.async.js\"},\"2\":{\"name\":\"variable.parameter.js\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(\\\\\\\\basync)\\\\\\\\s+)?([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?==>)\",\"name\":\"meta.arrow.js\"},{\"begin\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(\\\\\\\\basync))?((?<![})!\\\\\\\\]])\\\\\\\\s*(?=((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.js\"}},\"end\":\"(?==>|\\\\\\\\{|(^\\\\\\\\s*(export|function|class|interface|let|var|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|const|import|enum|namespace|module|type|abstract|declare)\\\\\\\\s+))\",\"name\":\"meta.arrow.js\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-parameters\"},{\"include\":\"#function-parameters\"},{\"include\":\"#arrow-return-type\"},{\"include\":\"#possibly-arrow-return-type\"}]},{\"begin\":\"=>\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.function.arrow.js\"}},\"end\":\"((?<=\\\\\\\\}|\\\\\\\\S)(?<!=>)|((?!\\\\\\\\{)(?=\\\\\\\\S)))(?!\\\\\\\\/[\\\\\\\\/\\\\\\\\*])\",\"name\":\"meta.arrow.js\",\"patterns\":[{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#decl-block\"},{\"include\":\"#expression\"}]}]},\"arrow-return-type\":{\"begin\":\"(?<=\\\\\\\\))\\\\\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.js\"}},\"end\":\"(?==>|\\\\\\\\{|(^\\\\\\\\s*(export|function|class|interface|let|var|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|const|import|enum|namespace|module|type|abstract|declare)\\\\\\\\s+))\",\"name\":\"meta.return.type.arrow.js\",\"patterns\":[{\"include\":\"#arrow-return-type-body\"}]},\"arrow-return-type-body\":{\"patterns\":[{\"begin\":\"(?<=[:])(?=\\\\\\\\s*\\\\\\\\{)\",\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#type-object\"}]},{\"include\":\"#type-predicate-operator\"},{\"include\":\"#type\"}]},\"async-modifier\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(async)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.modifier.async.js\"},\"binding-element\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#regex\"},{\"include\":\"#object-binding-pattern\"},{\"include\":\"#array-binding-pattern\"},{\"include\":\"#destructuring-variable-rest\"},{\"include\":\"#variable-initializer\"}]},\"binding-element-const\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#regex\"},{\"include\":\"#object-binding-pattern-const\"},{\"include\":\"#array-binding-pattern-const\"},{\"include\":\"#destructuring-variable-rest-const\"},{\"include\":\"#variable-initializer\"}]},\"boolean-literal\":{\"patterns\":[{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))true(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.boolean.true.js\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))false(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.boolean.false.js\"}]},\"brackets\":{\"patterns\":[{\"begin\":\"{\",\"end\":\"}|(?=\\\\\\\\*/)\",\"patterns\":[{\"include\":\"#brackets\"}]},{\"begin\":\"\\\\\\\\[\",\"end\":\"\\\\\\\\]|(?=\\\\\\\\*/)\",\"patterns\":[{\"include\":\"#brackets\"}]}]},\"cast\":{\"patterns\":[{\"include\":\"#jsx\"}]},\"class-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(?:(abstract)\\\\\\\\s+)?\\\\\\\\b(class)\\\\\\\\b(?=\\\\\\\\s+|/[/*])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js\"},\"2\":{\"name\":\"storage.modifier.js\"},\"3\":{\"name\":\"storage.modifier.js\"},\"4\":{\"name\":\"storage.type.class.js\"}},\"end\":\"(?<=\\\\\\\\})\",\"name\":\"meta.class.js\",\"patterns\":[{\"include\":\"#class-declaration-or-expression-patterns\"}]},\"class-declaration-or-expression-patterns\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#class-or-interface-heritage\"},{\"captures\":{\"0\":{\"name\":\"entity.name.type.class.js\"}},\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\"},{\"include\":\"#type-parameters\"},{\"include\":\"#class-or-interface-body\"}]},\"class-expression\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(abstract)\\\\\\\\s+)?(class)\\\\\\\\b(?=\\\\\\\\s+|[<{]|\\\\\\\\/[\\\\\\\\/*])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.js\"},\"2\":{\"name\":\"storage.type.class.js\"}},\"end\":\"(?<=\\\\\\\\})\",\"name\":\"meta.class.js\",\"patterns\":[{\"include\":\"#class-declaration-or-expression-patterns\"}]},\"class-or-interface-body\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#decorator\"},{\"begin\":\"(?<=:)\\\\\\\\s*\",\"end\":\"(?=\\\\\\\\s|[;),}\\\\\\\\]:\\\\\\\\-\\\\\\\\+]|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#expression\"}]},{\"include\":\"#method-declaration\"},{\"include\":\"#indexer-declaration\"},{\"include\":\"#field-declaration\"},{\"include\":\"#string\"},{\"include\":\"#type-annotation\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#access-modifier\"},{\"include\":\"#property-accessor\"},{\"include\":\"#async-modifier\"},{\"include\":\"#after-operator-block-as-object-literal\"},{\"include\":\"#decl-block\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-comma\"},{\"include\":\"#punctuation-semicolon\"}]},\"class-or-interface-heritage\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:\\\\\\\\b(extends|implements)\\\\\\\\b)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.js\"}},\"end\":\"(?=\\\\\\\\{)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#class-or-interface-heritage\"},{\"include\":\"#type-parameters\"},{\"include\":\"#expressionWithoutIdentifiers\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.module.js\"},\"2\":{\"name\":\"punctuation.accessor.js\"},\"3\":{\"name\":\"punctuation.accessor.optional.js\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))(?=\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*)*\\\\\\\\s*)\"},{\"captures\":{\"1\":{\"name\":\"entity.other.inherited-class.js\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\"},{\"include\":\"#expressionPunctuations\"}]},\"comment\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\\\\\\\\*(?!/)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.js\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.js\"}},\"name\":\"comment.block.documentation.js\",\"patterns\":[{\"include\":\"#docblock\"}]},{\"begin\":\"(/\\\\\\\\*)(?:\\\\\\\\s*((@)internal)(?=\\\\\\\\s|(\\\\\\\\*/)))?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.js\"},\"2\":{\"name\":\"storage.type.internaldeclaration.js\"},\"3\":{\"name\":\"punctuation.decorator.internaldeclaration.js\"}},\"end\":\"\\\\\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.js\"}},\"name\":\"comment.block.js\"},{\"begin\":\"(^[ \\\\\\\\t]+)?((//)(?:\\\\\\\\s*((@)internal)(?=\\\\\\\\s|$))?)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.js\"},\"2\":{\"name\":\"comment.line.double-slash.js\"},\"3\":{\"name\":\"punctuation.definition.comment.js\"},\"4\":{\"name\":\"storage.type.internaldeclaration.js\"},\"5\":{\"name\":\"punctuation.decorator.internaldeclaration.js\"}},\"contentName\":\"comment.line.double-slash.js\",\"end\":\"(?=$)\"}]},\"control-statement\":{\"patterns\":[{\"include\":\"#switch-statement\"},{\"include\":\"#for-loop\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(catch|finally|throw|try)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.trycatch.js\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.loop.js\"},\"2\":{\"name\":\"entity.name.label.js\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(break|continue|goto)\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(break|continue|do|goto|while)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.loop.js\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(return)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.flow.js\"}},\"end\":\"(?=[;}]|$|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#expression\"}]},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(case|default|switch)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.switch.js\"},{\"include\":\"#if-statement\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.conditional.js\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(with)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.with.js\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(package)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.js\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(debugger)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.other.debugger.js\"}]},\"decl-block\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js\"}},\"name\":\"meta.block.js\",\"patterns\":[{\"include\":\"#statements\"}]},\"declaration\":{\"patterns\":[{\"include\":\"#decorator\"},{\"include\":\"#var-expr\"},{\"include\":\"#function-declaration\"},{\"include\":\"#class-declaration\"},{\"include\":\"#interface-declaration\"},{\"include\":\"#enum-declaration\"},{\"include\":\"#namespace-declaration\"},{\"include\":\"#type-alias-declaration\"},{\"include\":\"#import-equals-declaration\"},{\"include\":\"#import-declaration\"},{\"include\":\"#export-declaration\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(declare|export)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.modifier.js\"}]},\"decorator\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))\\\\\\\\@\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.decorator.js\"}},\"end\":\"(?=\\\\\\\\s)\",\"name\":\"meta.decorator.js\",\"patterns\":[{\"include\":\"#expression\"}]},\"destructuring-const\":{\"patterns\":[{\"begin\":\"(?<!=|:|^of|[^\\\\\\\\._$[:alnum:]]of|^in|[^\\\\\\\\._$[:alnum:]]in)\\\\\\\\s*(?=\\\\\\\\{)\",\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+))\",\"name\":\"meta.object-binding-pattern-variable.js\",\"patterns\":[{\"include\":\"#object-binding-pattern-const\"},{\"include\":\"#type-annotation\"},{\"include\":\"#comment\"}]},{\"begin\":\"(?<!=|:|^of|[^\\\\\\\\._$[:alnum:]]of|^in|[^\\\\\\\\._$[:alnum:]]in)\\\\\\\\s*(?=\\\\\\\\[)\",\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+))\",\"name\":\"meta.array-binding-pattern-variable.js\",\"patterns\":[{\"include\":\"#array-binding-pattern-const\"},{\"include\":\"#type-annotation\"},{\"include\":\"#comment\"}]}]},\"destructuring-parameter\":{\"patterns\":[{\"begin\":\"(?<!=|:)\\\\\\\\s*(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.js\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.object.js\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.object.js\"}},\"name\":\"meta.parameter.object-binding-pattern.js\",\"patterns\":[{\"include\":\"#parameter-object-binding-element\"}]},{\"begin\":\"(?<!=|:)\\\\\\\\s*(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.js\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.array.js\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.array.js\"}},\"name\":\"meta.paramter.array-binding-pattern.js\",\"patterns\":[{\"include\":\"#parameter-binding-element\"},{\"include\":\"#punctuation-comma\"}]}]},\"destructuring-parameter-rest\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.rest.js\"},\"2\":{\"name\":\"variable.parameter.js\"}},\"match\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\"},\"destructuring-variable\":{\"patterns\":[{\"begin\":\"(?<!=|:|^of|[^\\\\\\\\._$[:alnum:]]of|^in|[^\\\\\\\\._$[:alnum:]]in)\\\\\\\\s*(?=\\\\\\\\{)\",\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+))\",\"name\":\"meta.object-binding-pattern-variable.js\",\"patterns\":[{\"include\":\"#object-binding-pattern\"},{\"include\":\"#type-annotation\"},{\"include\":\"#comment\"}]},{\"begin\":\"(?<!=|:|^of|[^\\\\\\\\._$[:alnum:]]of|^in|[^\\\\\\\\._$[:alnum:]]in)\\\\\\\\s*(?=\\\\\\\\[)\",\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+))\",\"name\":\"meta.array-binding-pattern-variable.js\",\"patterns\":[{\"include\":\"#array-binding-pattern\"},{\"include\":\"#type-annotation\"},{\"include\":\"#comment\"}]}]},\"destructuring-variable-rest\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.rest.js\"},\"2\":{\"name\":\"meta.definition.variable.js variable.other.readwrite.js\"}},\"match\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\"},\"destructuring-variable-rest-const\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.rest.js\"},\"2\":{\"name\":\"meta.definition.variable.js variable.other.constant.js\"}},\"match\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\"},\"directives\":{\"begin\":\"^(///)\\\\\\\\s*(?=<(reference|amd-dependency|amd-module)(\\\\\\\\s+(path|types|no-default-lib|lib|name|resolution-mode)\\\\\\\\s*=\\\\\\\\s*((\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)))+\\\\\\\\s*/>\\\\\\\\s*$)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.js\"}},\"end\":\"(?=$)\",\"name\":\"comment.line.triple-slash.directive.js\",\"patterns\":[{\"begin\":\"(<)(reference|amd-dependency|amd-module)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.directive.js\"},\"2\":{\"name\":\"entity.name.tag.directive.js\"}},\"end\":\"/>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.tag.directive.js\"}},\"name\":\"meta.tag.js\",\"patterns\":[{\"match\":\"path|types|no-default-lib|lib|name|resolution-mode\",\"name\":\"entity.other.attribute-name.directive.js\"},{\"match\":\"=\",\"name\":\"keyword.operator.assignment.js\"},{\"include\":\"#string\"}]}]},\"docblock\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"constant.language.access-type.jsdoc\"}},\"match\":\"((@)(?:access|api))\\\\\\\\s+(private|protected|public)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"entity.name.type.instance.jsdoc\"},\"4\":{\"name\":\"punctuation.definition.bracket.angle.begin.jsdoc\"},\"5\":{\"name\":\"constant.other.email.link.underline.jsdoc\"},\"6\":{\"name\":\"punctuation.definition.bracket.angle.end.jsdoc\"}},\"match\":\"((@)author)\\\\\\\\s+([^@\\\\\\\\s<>*/](?:[^@<>*/]|\\\\\\\\*[^/])*)(?:\\\\\\\\s*(<)([^>\\\\\\\\s]+)(>))?\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"entity.name.type.instance.jsdoc\"},\"4\":{\"name\":\"keyword.operator.control.jsdoc\"},\"5\":{\"name\":\"entity.name.type.instance.jsdoc\"}},\"match\":\"((@)borrows)\\\\\\\\s+((?:[^@\\\\\\\\s*/]|\\\\\\\\*[^/])+)\\\\\\\\s+(as)\\\\\\\\s+((?:[^@\\\\\\\\s*/]|\\\\\\\\*[^/])+)\"},{\"begin\":\"((@)example)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"end\":\"(?=@|\\\\\\\\*/)\",\"name\":\"meta.example.jsdoc\",\"patterns\":[{\"match\":\"^\\\\\\\\s\\\\\\\\*\\\\\\\\s+\"},{\"begin\":\"\\\\\\\\G(<)caption(>)\",\"beginCaptures\":{\"0\":{\"name\":\"entity.name.tag.inline.jsdoc\"},\"1\":{\"name\":\"punctuation.definition.bracket.angle.begin.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.bracket.angle.end.jsdoc\"}},\"contentName\":\"constant.other.description.jsdoc\",\"end\":\"(</)caption(>)|(?=\\\\\\\\*/)\",\"endCaptures\":{\"0\":{\"name\":\"entity.name.tag.inline.jsdoc\"},\"1\":{\"name\":\"punctuation.definition.bracket.angle.begin.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.bracket.angle.end.jsdoc\"}}},{\"captures\":{\"0\":{\"name\":\"source.embedded.js\"}},\"match\":\"[^\\\\\\\\s@*](?:[^*]|\\\\\\\\*[^/])*\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"constant.language.symbol-type.jsdoc\"}},\"match\":\"((@)kind)\\\\\\\\s+(class|constant|event|external|file|function|member|mixin|module|namespace|typedef)\\\\\\\\b\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"variable.other.link.underline.jsdoc\"},\"4\":{\"name\":\"entity.name.type.instance.jsdoc\"}},\"match\":\"((@)see)\\\\\\\\s+(?:((?=https?://)(?:[^\\\\\\\\s*]|\\\\\\\\*[^/])+)|((?!https?://|(?:\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])?{@(?:link|linkcode|linkplain|tutorial)\\\\\\\\b)(?:[^@\\\\\\\\s*/]|\\\\\\\\*[^/])+))\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"variable.other.jsdoc\"}},\"match\":\"((@)template)\\\\\\\\s+([A-Za-z_$][\\\\\\\\w$.\\\\\\\\[\\\\\\\\]]*(?:\\\\\\\\s*,\\\\\\\\s*[A-Za-z_$][\\\\\\\\w$.\\\\\\\\[\\\\\\\\]]*)*)\"},{\"begin\":\"((@)template)\\\\\\\\s+(?={)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"end\":\"(?=\\\\\\\\s|\\\\\\\\*/|[^{}\\\\\\\\[\\\\\\\\]A-Za-z_$])\",\"patterns\":[{\"include\":\"#jsdoctype\"},{\"match\":\"([A-Za-z_$][\\\\\\\\w$.\\\\\\\\[\\\\\\\\]]*)\",\"name\":\"variable.other.jsdoc\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"variable.other.jsdoc\"}},\"match\":\"((@)(?:arg|argument|const|constant|member|namespace|param|var))\\\\\\\\s+([A-Za-z_$][\\\\\\\\w$.\\\\\\\\[\\\\\\\\]]*)\"},{\"begin\":\"((@)typedef)\\\\\\\\s+(?={)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"end\":\"(?=\\\\\\\\s|\\\\\\\\*/|[^{}\\\\\\\\[\\\\\\\\]A-Za-z_$])\",\"patterns\":[{\"include\":\"#jsdoctype\"},{\"match\":\"(?:[^@\\\\\\\\s*/]|\\\\\\\\*[^/])+\",\"name\":\"entity.name.type.instance.jsdoc\"}]},{\"begin\":\"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\\\\\\\s+(?={)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"end\":\"(?=\\\\\\\\s|\\\\\\\\*/|[^{}\\\\\\\\[\\\\\\\\]A-Za-z_$])\",\"patterns\":[{\"include\":\"#jsdoctype\"},{\"match\":\"([A-Za-z_$][\\\\\\\\w$.\\\\\\\\[\\\\\\\\]]*)\",\"name\":\"variable.other.jsdoc\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.optional-value.begin.bracket.square.jsdoc\"},\"2\":{\"name\":\"keyword.operator.assignment.jsdoc\"},\"3\":{\"name\":\"source.embedded.js\"},\"4\":{\"name\":\"punctuation.definition.optional-value.end.bracket.square.jsdoc\"},\"5\":{\"name\":\"invalid.illegal.syntax.jsdoc\"}},\"match\":\"(\\\\\\\\[)\\\\\\\\s*[\\\\\\\\w$]+(?:(?:\\\\\\\\[\\\\\\\\])?\\\\\\\\.[\\\\\\\\w$]+)*(?:\\\\\\\\s*(=)\\\\\\\\s*((?>\\\\\"(?:(?:\\\\\\\\*(?!/))|(?:\\\\\\\\\\\\\\\\(?!\\\\\"))|[^*\\\\\\\\\\\\\\\\])*?\\\\\"|'(?:(?:\\\\\\\\*(?!/))|(?:\\\\\\\\\\\\\\\\(?!'))|[^*\\\\\\\\\\\\\\\\])*?'|\\\\\\\\[(?:(?:\\\\\\\\*(?!/))|[^*])*?\\\\\\\\]|(?:(?:\\\\\\\\*(?!/))|\\\\\\\\s(?!\\\\\\\\s*\\\\\\\\])|\\\\\\\\[.*?(?:\\\\\\\\]|(?=\\\\\\\\*/))|[^*\\\\\\\\s\\\\\\\\[\\\\\\\\]])*)*))?\\\\\\\\s*(?:(\\\\\\\\])((?:[^*\\\\\\\\s]|\\\\\\\\*[^\\\\\\\\s/])+)?|(?=\\\\\\\\*/))\",\"name\":\"variable.other.jsdoc\"}]},{\"begin\":\"((@)(?:define|enum|exception|export|extends|lends|implements|modifies|namespace|private|protected|returns?|satisfies|suppress|this|throws|type|yields?))\\\\\\\\s+(?={)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"end\":\"(?=\\\\\\\\s|\\\\\\\\*/|[^{}\\\\\\\\[\\\\\\\\]A-Za-z_$])\",\"patterns\":[{\"include\":\"#jsdoctype\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"entity.name.type.instance.jsdoc\"}},\"match\":\"((@)(?:alias|augments|callback|constructs|emits|event|fires|exports?|extends|external|function|func|host|lends|listens|interface|memberof!?|method|module|mixes|mixin|name|requires|see|this|typedef|uses))\\\\\\\\s+((?:[^{}@\\\\\\\\s*]|\\\\\\\\*[^/])+)\"},{\"begin\":\"((@)(?:default(?:value)?|license|version))\\\\\\\\s+(([''\\\\\"]))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"variable.other.jsdoc\"},\"4\":{\"name\":\"punctuation.definition.string.begin.jsdoc\"}},\"contentName\":\"variable.other.jsdoc\",\"end\":\"(\\\\\\\\3)|(?=$|\\\\\\\\*/)\",\"endCaptures\":{\"0\":{\"name\":\"variable.other.jsdoc\"},\"1\":{\"name\":\"punctuation.definition.string.end.jsdoc\"}}},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"},\"3\":{\"name\":\"variable.other.jsdoc\"}},\"match\":\"((@)(?:default(?:value)?|license|tutorial|variation|version))\\\\\\\\s+([^\\\\\\\\s*]+)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"match\":\"(@)(?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles|callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright|default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception|exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func|function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc|inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method|mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects|override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected|public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary|suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation|version|virtual|writeOnce|yields?)\\\\\\\\b\",\"name\":\"storage.type.class.jsdoc\"},{\"include\":\"#inline-tags\"},{\"captures\":{\"1\":{\"name\":\"storage.type.class.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.block.tag.jsdoc\"}},\"match\":\"((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\\\\\\\s+)\"}]},\"enum-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?(?:\\\\\\\\b(const)\\\\\\\\s+)?\\\\\\\\b(enum)\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js\"},\"2\":{\"name\":\"storage.modifier.js\"},\"3\":{\"name\":\"storage.modifier.js\"},\"4\":{\"name\":\"storage.type.enum.js\"},\"5\":{\"name\":\"entity.name.type.enum.js\"}},\"end\":\"(?<=\\\\\\\\})\",\"name\":\"meta.enum.declaration.js\",\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js\"}},\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"beginCaptures\":{\"0\":{\"name\":\"variable.other.enummember.js\"}},\"end\":\"(?=,|\\\\\\\\}|$)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#variable-initializer\"}]},{\"begin\":\"(?=((\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\])))\",\"end\":\"(?=,|\\\\\\\\}|$)\",\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#array-literal\"},{\"include\":\"#comment\"},{\"include\":\"#variable-initializer\"}]},{\"include\":\"#punctuation-comma\"}]}]},\"export-declaration\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.export.js\"},\"2\":{\"name\":\"keyword.control.as.js\"},\"3\":{\"name\":\"storage.type.namespace.js\"},\"4\":{\"name\":\"entity.name.type.module.js\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(export)\\\\\\\\s+(as)\\\\\\\\s+(namespace)\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(export)(?:\\\\\\\\s+(type))?(?:(?:\\\\\\\\s*(=))|(?:\\\\\\\\s+(default)(?=\\\\\\\\s+)))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js\"},\"2\":{\"name\":\"keyword.control.type.js\"},\"3\":{\"name\":\"keyword.operator.assignment.js\"},\"4\":{\"name\":\"keyword.control.default.js\"}},\"end\":\"(?=$|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"name\":\"meta.export.default.js\",\"patterns\":[{\"include\":\"#interface-declaration\"},{\"include\":\"#expression\"}]},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(export)(?:\\\\\\\\s+(type))?\\\\\\\\b(?!(\\\\\\\\$)|(\\\\\\\\s*:))((?=\\\\\\\\s*[\\\\\\\\{*])|((?=\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*(\\\\\\\\s|,))(?!\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b)))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js\"},\"2\":{\"name\":\"keyword.control.type.js\"}},\"end\":\"(?=$|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"name\":\"meta.export.js\",\"patterns\":[{\"include\":\"#import-export-declaration\"}]}]},\"expression\":{\"patterns\":[{\"include\":\"#expressionWithoutIdentifiers\"},{\"include\":\"#identifiers\"},{\"include\":\"#expressionPunctuations\"}]},\"expression-inside-possibly-arrow-parens\":{\"patterns\":[{\"include\":\"#expressionWithoutIdentifiers\"},{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#decorator\"},{\"include\":\"#destructuring-parameter\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.js\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(override|public|protected|private|readonly)\\\\\\\\s+(?=(override|public|protected|private|readonly)\\\\\\\\s+)\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.js\"},\"2\":{\"name\":\"keyword.operator.rest.js\"},\"3\":{\"name\":\"entity.name.function.js variable.language.this.js\"},\"4\":{\"name\":\"entity.name.function.js\"},\"5\":{\"name\":\"keyword.operator.optional.js\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(override|public|private|protected|readonly)\\\\\\\\s+)?(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*(\\\\\\\\??)(?=\\\\\\\\s*(=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))))|(:\\\\\\\\s*((<)|([(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>)))))))|(:\\\\\\\\s*(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Function(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(:\\\\\\\\s*((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))))|(:\\\\\\\\s*(=>|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>))))))\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.js\"},\"2\":{\"name\":\"keyword.operator.rest.js\"},\"3\":{\"name\":\"variable.parameter.js variable.language.this.js\"},\"4\":{\"name\":\"variable.parameter.js\"},\"5\":{\"name\":\"keyword.operator.optional.js\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(override|public|private|protected|readonly)\\\\\\\\s+)?(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*(\\\\\\\\??)(?=\\\\\\\\s*[:,]|$)\"},{\"include\":\"#type-annotation\"},{\"include\":\"#variable-initializer\"},{\"match\":\",\",\"name\":\"punctuation.separator.parameter.js\"},{\"include\":\"#identifiers\"},{\"include\":\"#expressionPunctuations\"}]},\"expression-operators\":{\"patterns\":[{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(await)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.control.flow.js\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(yield)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))(?=\\\\\\\\s*\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*\\\\\\\\*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.flow.js\"}},\"end\":\"\\\\\\\\*\",\"endCaptures\":{\"0\":{\"name\":\"keyword.generator.asterisk.js\"}},\"patterns\":[{\"include\":\"#comment\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.control.flow.js\"},\"2\":{\"name\":\"keyword.generator.asterisk.js\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(yield)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))(?:\\\\\\\\s*(\\\\\\\\*))?\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))delete(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.expression.delete.js\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))in(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))(?!\\\\\\\\()\",\"name\":\"keyword.operator.expression.in.js\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))of(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))(?!\\\\\\\\()\",\"name\":\"keyword.operator.expression.of.js\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))instanceof(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.expression.instanceof.js\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))new(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.new.js\"},{\"include\":\"#typeof-operator\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))void(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.expression.void.js\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.as.js\"},\"2\":{\"name\":\"storage.modifier.js\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(as)\\\\\\\\s+(const)(?=\\\\\\\\s*($|[;,:})\\\\\\\\]]))\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(as)|(satisfies))\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.as.js\"},\"2\":{\"name\":\"keyword.control.satisfies.js\"}},\"end\":\"(?=^|[;),}\\\\\\\\]:?\\\\\\\\-\\\\\\\\+\\\\\\\\>]|\\\\\\\\|\\\\\\\\||\\\\\\\\&\\\\\\\\&|\\\\\\\\!\\\\\\\\=\\\\\\\\=|$|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(as|satisfies)\\\\\\\\s+)|(\\\\\\\\s+\\\\\\\\<))\",\"patterns\":[{\"include\":\"#type\"}]},{\"match\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"name\":\"keyword.operator.spread.js\"},{\"match\":\"\\\\\\\\*=|(?<!\\\\\\\\()/=|%=|\\\\\\\\+=|\\\\\\\\-=\",\"name\":\"keyword.operator.assignment.compound.js\"},{\"match\":\"\\\\\\\\&=|\\\\\\\\^=|<<=|>>=|>>>=|\\\\\\\\|=\",\"name\":\"keyword.operator.assignment.compound.bitwise.js\"},{\"match\":\"<<|>>>|>>\",\"name\":\"keyword.operator.bitwise.shift.js\"},{\"match\":\"===|!==|==|!=\",\"name\":\"keyword.operator.comparison.js\"},{\"match\":\"<=|>=|<>|<|>\",\"name\":\"keyword.operator.relational.js\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.logical.js\"},\"2\":{\"name\":\"keyword.operator.assignment.compound.js\"},\"3\":{\"name\":\"keyword.operator.arithmetic.js\"}},\"match\":\"(?<=[_$[:alnum:]])(\\\\\\\\!)\\\\\\\\s*(?:(/=)|(?:(/)(?![/*])))\"},{\"match\":\"\\\\\\\\!|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\?\\\\\\\\?\",\"name\":\"keyword.operator.logical.js\"},{\"match\":\"\\\\\\\\&|~|\\\\\\\\^|\\\\\\\\|\",\"name\":\"keyword.operator.bitwise.js\"},{\"match\":\"\\\\\\\\=\",\"name\":\"keyword.operator.assignment.js\"},{\"match\":\"--\",\"name\":\"keyword.operator.decrement.js\"},{\"match\":\"\\\\\\\\+\\\\\\\\+\",\"name\":\"keyword.operator.increment.js\"},{\"match\":\"%|\\\\\\\\*|/|-|\\\\\\\\+\",\"name\":\"keyword.operator.arithmetic.js\"},{\"begin\":\"(?<=[_$[:alnum:])\\\\\\\\]])\\\\\\\\s*(?=(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)+(?:(/=)|(?:(/)(?![/*]))))\",\"end\":\"(?:(/=)|(?:(/)(?!\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/)))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.compound.js\"},\"2\":{\"name\":\"keyword.operator.arithmetic.js\"}},\"patterns\":[{\"include\":\"#comment\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.operator.assignment.compound.js\"},\"2\":{\"name\":\"keyword.operator.arithmetic.js\"}},\"match\":\"(?<=[_$[:alnum:])\\\\\\\\]])\\\\\\\\s*(?:(/=)|(?:(/)(?![/*])))\"}]},\"expressionPunctuations\":{\"patterns\":[{\"include\":\"#punctuation-comma\"},{\"include\":\"#punctuation-accessor\"}]},\"expressionWithoutIdentifiers\":{\"patterns\":[{\"include\":\"#jsx\"},{\"include\":\"#string\"},{\"include\":\"#regex\"},{\"include\":\"#comment\"},{\"include\":\"#function-expression\"},{\"include\":\"#class-expression\"},{\"include\":\"#arrow-function\"},{\"include\":\"#paren-expression-possibly-arrow\"},{\"include\":\"#cast\"},{\"include\":\"#ternary-expression\"},{\"include\":\"#new-expr\"},{\"include\":\"#instanceof-expr\"},{\"include\":\"#object-literal\"},{\"include\":\"#expression-operators\"},{\"include\":\"#function-call\"},{\"include\":\"#literal\"},{\"include\":\"#support-objects\"},{\"include\":\"#paren-expression\"}]},\"field-declaration\":{\"begin\":\"(?<!\\\\\\\\()(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(readonly)\\\\\\\\s+)?(?=\\\\\\\\s*((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(?:(?:(\\\\\\\\?)|(\\\\\\\\!))\\\\\\\\s*)?(=|:|;|,|\\\\\\\\}|$))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.js\"}},\"end\":\"(?=\\\\\\\\}|;|,|$|(^(?!\\\\\\\\s*((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(?:(?:(\\\\\\\\?)|(\\\\\\\\!))\\\\\\\\s*)?(=|:|;|,|$))))|(?<=\\\\\\\\})\",\"name\":\"meta.field.declaration.js\",\"patterns\":[{\"include\":\"#variable-initializer\"},{\"include\":\"#type-annotation\"},{\"include\":\"#string\"},{\"include\":\"#array-literal\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#comment\"},{\"captures\":{\"1\":{\"name\":\"meta.definition.property.js entity.name.function.js\"},\"2\":{\"name\":\"keyword.operator.optional.js\"},\"3\":{\"name\":\"keyword.operator.definiteassignment.js\"}},\"match\":\"(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)(?:(\\\\\\\\?)|(\\\\\\\\!))?(?=\\\\\\\\s*\\\\\\\\s*(=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))))|(:\\\\\\\\s*((<)|([(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>)))))))|(:\\\\\\\\s*(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Function(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(:\\\\\\\\s*((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))))|(:\\\\\\\\s*(=>|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>))))))\"},{\"match\":\"\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"meta.definition.property.js variable.object.property.js\"},{\"match\":\"\\\\\\\\?\",\"name\":\"keyword.operator.optional.js\"},{\"match\":\"\\\\\\\\!\",\"name\":\"keyword.operator.definiteassignment.js\"}]},\"for-loop\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))for(?=((\\\\\\\\s+|(\\\\\\\\s*\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*))await)?\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)?(\\\\\\\\())\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.loop.js\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"include\":\"#comment\"},{\"match\":\"await\",\"name\":\"keyword.control.loop.js\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.js\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.js\"}},\"patterns\":[{\"include\":\"#var-expr\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-semicolon\"}]}]},\"function-body\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-parameters\"},{\"include\":\"#function-parameters\"},{\"include\":\"#return-type\"},{\"include\":\"#type-function-return-type\"},{\"include\":\"#decl-block\"},{\"match\":\"\\\\\\\\*\",\"name\":\"keyword.generator.asterisk.js\"}]},\"function-call\":{\"patterns\":[{\"begin\":\"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\\\\\\\)]))\\\\\\\\s*(?:(\\\\\\\\?\\\\\\\\.\\\\\\\\s*)|(\\\\\\\\!))?((<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))(([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>)*(?<!=)\\\\\\\\>))*(?<!=)\\\\\\\\>)*(?<!=)>\\\\\\\\s*)?\\\\\\\\())\",\"end\":\"(?<=\\\\\\\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\\\\\\\)]))\\\\\\\\s*(?:(\\\\\\\\?\\\\\\\\.\\\\\\\\s*)|(\\\\\\\\!))?((<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))(([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>)*(?<!=)\\\\\\\\>))*(?<!=)\\\\\\\\>)*(?<!=)>\\\\\\\\s*)?\\\\\\\\())\",\"patterns\":[{\"begin\":\"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))\",\"end\":\"(?=\\\\\\\\s*(?:(\\\\\\\\?\\\\\\\\.\\\\\\\\s*)|(\\\\\\\\!))?((<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))(([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>)*(?<!=)\\\\\\\\>))*(?<!=)\\\\\\\\>)*(?<!=)>\\\\\\\\s*)?\\\\\\\\())\",\"name\":\"meta.function-call.js\",\"patterns\":[{\"include\":\"#function-call-target\"}]},{\"include\":\"#comment\"},{\"include\":\"#function-call-optionals\"},{\"include\":\"#type-arguments\"},{\"include\":\"#paren-expression\"}]},{\"begin\":\"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\\\\\\\)]))(<\\\\\\\\s*[\\\\\\\\{\\\\\\\\[\\\\\\\\(]\\\\\\\\s*$))\",\"end\":\"(?<=\\\\\\\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\\\\\\\)]))(<\\\\\\\\s*[\\\\\\\\{\\\\\\\\[\\\\\\\\(]\\\\\\\\s*$))\",\"patterns\":[{\"begin\":\"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))\",\"end\":\"(?=(<\\\\\\\\s*[\\\\\\\\{\\\\\\\\[\\\\\\\\(]\\\\\\\\s*$))\",\"name\":\"meta.function-call.js\",\"patterns\":[{\"include\":\"#function-call-target\"}]},{\"include\":\"#comment\"},{\"include\":\"#function-call-optionals\"},{\"include\":\"#type-arguments\"}]}]},\"function-call-optionals\":{\"patterns\":[{\"match\":\"\\\\\\\\?\\\\\\\\.\",\"name\":\"meta.function-call.js punctuation.accessor.optional.js\"},{\"match\":\"\\\\\\\\!\",\"name\":\"meta.function-call.js keyword.operator.definiteassignment.js\"}]},\"function-call-target\":{\"patterns\":[{\"include\":\"#support-function-call-identifiers\"},{\"match\":\"(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)\",\"name\":\"entity.name.function.js\"}]},\"function-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?(?:(async)\\\\\\\\s+)?(function\\\\\\\\b)(?:\\\\\\\\s*(\\\\\\\\*))?(?:(?:\\\\\\\\s+|(?<=\\\\\\\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js\"},\"2\":{\"name\":\"storage.modifier.js\"},\"3\":{\"name\":\"storage.modifier.async.js\"},\"4\":{\"name\":\"storage.type.function.js\"},\"5\":{\"name\":\"keyword.generator.asterisk.js\"},\"6\":{\"name\":\"meta.definition.function.js entity.name.function.js\"}},\"end\":\"(?=;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))|(?<=\\\\\\\\})\",\"name\":\"meta.function.js\",\"patterns\":[{\"include\":\"#function-name\"},{\"include\":\"#function-body\"}]},\"function-expression\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(async)\\\\\\\\s+)?(function\\\\\\\\b)(?:\\\\\\\\s*(\\\\\\\\*))?(?:(?:\\\\\\\\s+|(?<=\\\\\\\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.js\"},\"2\":{\"name\":\"storage.type.function.js\"},\"3\":{\"name\":\"keyword.generator.asterisk.js\"},\"4\":{\"name\":\"meta.definition.function.js entity.name.function.js\"}},\"end\":\"(?=;)|(?<=\\\\\\\\})\",\"name\":\"meta.function.expression.js\",\"patterns\":[{\"include\":\"#function-name\"},{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#function-body\"}]},\"function-name\":{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"meta.definition.function.js entity.name.function.js\"},\"function-parameters\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.begin.js\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.js\"}},\"name\":\"meta.parameters.js\",\"patterns\":[{\"include\":\"#function-parameters-body\"}]},\"function-parameters-body\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#decorator\"},{\"include\":\"#destructuring-parameter\"},{\"include\":\"#parameter-name\"},{\"include\":\"#parameter-type-annotation\"},{\"include\":\"#variable-initializer\"},{\"match\":\",\",\"name\":\"punctuation.separator.parameter.js\"}]},\"identifiers\":{\"patterns\":[{\"include\":\"#object-identifiers\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.js\"},\"2\":{\"name\":\"punctuation.accessor.optional.js\"},\"3\":{\"name\":\"entity.name.function.js\"}},\"match\":\"(?:(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\\\\\\\s*=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))))\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.js\"},\"2\":{\"name\":\"punctuation.accessor.optional.js\"},\"3\":{\"name\":\"variable.other.constant.property.js\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(\\\\\\\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.js\"},\"2\":{\"name\":\"punctuation.accessor.optional.js\"},\"3\":{\"name\":\"variable.other.property.js\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)\"},{\"match\":\"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])\",\"name\":\"variable.other.constant.js\"},{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"variable.other.readwrite.js\"}]},\"if-statement\":{\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?=\\\\\\\\bif\\\\\\\\s*(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))\\\\\\\\s*(?!\\\\\\\\{))\",\"end\":\"(?=;|$|\\\\\\\\})\",\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(if)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.conditional.js\"},\"2\":{\"name\":\"meta.brace.round.js\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.js\"}},\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\"(?<=\\\\\\\\))\\\\\\\\s*\\\\\\\\/(?![\\\\\\\\/*])(?=(?:[^\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\\\[]|\\\\\\\\\\\\\\\\.|\\\\\\\\[([^\\\\\\\\]\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\])+\\\\\\\\/([dgimsuvy]+|(?![\\\\\\\\/\\\\\\\\*])|(?=\\\\\\\\/\\\\\\\\*))(?!\\\\\\\\s*[a-zA-Z0-9_$]))\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.js\"}},\"end\":\"(/)([dgimsuvy]*)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.js\"},\"2\":{\"name\":\"keyword.other.js\"}},\"name\":\"string.regexp.js\",\"patterns\":[{\"include\":\"#regexp\"}]},{\"include\":\"#statements\"}]}]},\"import-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(import)(?:\\\\\\\\s+(type)(?!\\\\\\\\s+from))?(?!\\\\\\\\s*[:\\\\\\\\(])(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js\"},\"2\":{\"name\":\"storage.modifier.js\"},\"3\":{\"name\":\"keyword.control.import.js\"},\"4\":{\"name\":\"keyword.control.type.js\"}},\"end\":\"(?<!^import|[^\\\\\\\\._$[:alnum:]]import)(?=;|$|^)\",\"name\":\"meta.import.js\",\"patterns\":[{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"begin\":\"(?<=^import|[^\\\\\\\\._$[:alnum:]]import)(?!\\\\\\\\s*[\\\\\"'])\",\"end\":\"\\\\\\\\bfrom\\\\\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.from.js\"}},\"patterns\":[{\"include\":\"#import-export-declaration\"}]},{\"include\":\"#import-export-declaration\"}]},\"import-equals-declaration\":{\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(import)(?:\\\\\\\\s+(type))?\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(=)\\\\\\\\s*(require)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js\"},\"2\":{\"name\":\"storage.modifier.js\"},\"3\":{\"name\":\"keyword.control.import.js\"},\"4\":{\"name\":\"keyword.control.type.js\"},\"5\":{\"name\":\"variable.other.readwrite.alias.js\"},\"6\":{\"name\":\"keyword.operator.assignment.js\"},\"7\":{\"name\":\"keyword.control.require.js\"},\"8\":{\"name\":\"meta.brace.round.js\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.js\"}},\"name\":\"meta.import-equals.external.js\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"}]},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(import)(?:\\\\\\\\s+(type))?\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(=)\\\\\\\\s*(?!require\\\\\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js\"},\"2\":{\"name\":\"storage.modifier.js\"},\"3\":{\"name\":\"keyword.control.import.js\"},\"4\":{\"name\":\"keyword.control.type.js\"},\"5\":{\"name\":\"variable.other.readwrite.alias.js\"},\"6\":{\"name\":\"keyword.operator.assignment.js\"}},\"end\":\"(?=;|$|^)\",\"name\":\"meta.import-equals.internal.js\",\"patterns\":[{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#comment\"},{\"captures\":{\"1\":{\"name\":\"entity.name.type.module.js\"},\"2\":{\"name\":\"punctuation.accessor.js\"},\"3\":{\"name\":\"punctuation.accessor.optional.js\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\"},{\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"name\":\"variable.other.readwrite.js\"}]}]},\"import-export-assert-clause\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(with)|(assert))\\\\\\\\s*(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.with.js\"},\"2\":{\"name\":\"keyword.control.assert.js\"},\"3\":{\"name\":\"punctuation.definition.block.js\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js\"}},\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"match\":\"(?:[_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?=(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*:)\",\"name\":\"meta.object-literal.key.js\"},{\"match\":\":\",\"name\":\"punctuation.separator.key-value.js\"}]},\"import-export-block\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js\"}},\"name\":\"meta.block.js\",\"patterns\":[{\"include\":\"#import-export-clause\"}]},\"import-export-clause\":{\"patterns\":[{\"include\":\"#comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.type.js\"},\"2\":{\"name\":\"keyword.control.default.js\"},\"3\":{\"name\":\"constant.language.import-export-all.js\"},\"4\":{\"name\":\"variable.other.readwrite.js\"},\"5\":{\"name\":\"string.quoted.alias.js\"},\"12\":{\"name\":\"keyword.control.as.js\"},\"13\":{\"name\":\"keyword.control.default.js\"},\"14\":{\"name\":\"variable.other.readwrite.alias.js\"},\"15\":{\"name\":\"string.quoted.alias.js\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(?:(\\\\\\\\btype)\\\\\\\\s+)?(?:(\\\\\\\\bdefault)|(\\\\\\\\*)|(\\\\\\\\b[_$[:alpha:]][_$[:alnum:]]*)|((\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))))\\\\\\\\s+(as)\\\\\\\\s+(?:(default(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|([_$[:alpha:]][_$[:alnum:]]*)|((\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)))\"},{\"include\":\"#punctuation-comma\"},{\"match\":\"\\\\\\\\*\",\"name\":\"constant.language.import-export-all.js\"},{\"match\":\"\\\\\\\\b(default)\\\\\\\\b\",\"name\":\"keyword.control.default.js\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.type.js\"},\"2\":{\"name\":\"variable.other.readwrite.alias.js\"},\"3\":{\"name\":\"string.quoted.alias.js\"}},\"match\":\"(?:(\\\\\\\\btype)\\\\\\\\s+)?(?:([_$[:alpha:]][_$[:alnum:]]*)|((\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)))\"}]},\"import-export-declaration\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#import-export-block\"},{\"match\":\"\\\\\\\\bfrom\\\\\\\\b\",\"name\":\"keyword.control.from.js\"},{\"include\":\"#import-export-assert-clause\"},{\"include\":\"#import-export-clause\"}]},\"indexer-declaration\":{\"begin\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(readonly)\\\\\\\\s*)?\\\\\\\\s*(\\\\\\\\[)\\\\\\\\s*([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?=:)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.js\"},\"2\":{\"name\":\"meta.brace.square.js\"},\"3\":{\"name\":\"variable.parameter.js\"}},\"end\":\"(\\\\\\\\])\\\\\\\\s*(\\\\\\\\?\\\\\\\\s*)?|$\",\"endCaptures\":{\"1\":{\"name\":\"meta.brace.square.js\"},\"2\":{\"name\":\"keyword.operator.optional.js\"}},\"name\":\"meta.indexer.declaration.js\",\"patterns\":[{\"include\":\"#type-annotation\"}]},\"indexer-mapped-type-declaration\":{\"begin\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))([+-])?(readonly)\\\\\\\\s*)?\\\\\\\\s*(\\\\\\\\[)\\\\\\\\s*([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s+(in)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.modifier.js\"},\"2\":{\"name\":\"storage.modifier.js\"},\"3\":{\"name\":\"meta.brace.square.js\"},\"4\":{\"name\":\"entity.name.type.js\"},\"5\":{\"name\":\"keyword.operator.expression.in.js\"}},\"end\":\"(\\\\\\\\])([+-])?\\\\\\\\s*(\\\\\\\\?\\\\\\\\s*)?|$\",\"endCaptures\":{\"1\":{\"name\":\"meta.brace.square.js\"},\"2\":{\"name\":\"keyword.operator.type.modifier.js\"},\"3\":{\"name\":\"keyword.operator.optional.js\"}},\"name\":\"meta.indexer.mappedtype.declaration.js\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.as.js\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(as)\\\\\\\\s+\"},{\"include\":\"#type\"}]},\"inline-tags\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.bracket.square.begin.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.bracket.square.end.jsdoc\"}},\"match\":\"(\\\\\\\\[)[^\\\\\\\\]]+(\\\\\\\\])(?={@(?:link|linkcode|linkplain|tutorial))\",\"name\":\"constant.other.description.jsdoc\"},{\"begin\":\"({)((@)(?:link(?:code|plain)?|tutorial))\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.bracket.curly.begin.jsdoc\"},\"2\":{\"name\":\"storage.type.class.jsdoc\"},\"3\":{\"name\":\"punctuation.definition.inline.tag.jsdoc\"}},\"end\":\"}|(?=\\\\\\\\*/)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.bracket.curly.end.jsdoc\"}},\"name\":\"entity.name.type.instance.jsdoc\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.other.link.underline.jsdoc\"},\"2\":{\"name\":\"punctuation.separator.pipe.jsdoc\"}},\"match\":\"\\\\\\\\G((?=https?://)(?:[^|}\\\\\\\\s*]|\\\\\\\\*[/])+)(\\\\\\\\|)?\"},{\"captures\":{\"1\":{\"name\":\"variable.other.description.jsdoc\"},\"2\":{\"name\":\"punctuation.separator.pipe.jsdoc\"}},\"match\":\"\\\\\\\\G((?:[^{}@\\\\\\\\s|*]|\\\\\\\\*[^/])+)(\\\\\\\\|)?\"}]}]},\"instanceof-expr\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(instanceof)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.expression.instanceof.js\"}},\"end\":\"(?<=\\\\\\\\))|(?=[;),}\\\\\\\\]:?\\\\\\\\-\\\\\\\\+\\\\\\\\>]|\\\\\\\\|\\\\\\\\||\\\\\\\\&\\\\\\\\&|\\\\\\\\!\\\\\\\\=\\\\\\\\=|$|(===|!==|==|!=)|(([\\\\\\\\&\\\\\\\\~\\\\\\\\^\\\\\\\\|]\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+instanceof(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))function((\\\\\\\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\s*[\\\\\\\\(]))))\",\"patterns\":[{\"include\":\"#type\"}]},\"interface-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(?:(abstract)\\\\\\\\s+)?\\\\\\\\b(interface)\\\\\\\\b(?=\\\\\\\\s+|/[/*])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js\"},\"2\":{\"name\":\"storage.modifier.js\"},\"3\":{\"name\":\"storage.modifier.js\"},\"4\":{\"name\":\"storage.type.interface.js\"}},\"end\":\"(?<=\\\\\\\\})\",\"name\":\"meta.interface.js\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#class-or-interface-heritage\"},{\"captures\":{\"0\":{\"name\":\"entity.name.type.interface.js\"}},\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\"},{\"include\":\"#type-parameters\"},{\"include\":\"#class-or-interface-body\"}]},\"jsdoctype\":{\"patterns\":[{\"begin\":\"\\\\\\\\G({)\",\"beginCaptures\":{\"0\":{\"name\":\"entity.name.type.instance.jsdoc\"},\"1\":{\"name\":\"punctuation.definition.bracket.curly.begin.jsdoc\"}},\"contentName\":\"entity.name.type.instance.jsdoc\",\"end\":\"((}))\\\\\\\\s*|(?=\\\\\\\\*/)\",\"endCaptures\":{\"1\":{\"name\":\"entity.name.type.instance.jsdoc\"},\"2\":{\"name\":\"punctuation.definition.bracket.curly.end.jsdoc\"}},\"patterns\":[{\"include\":\"#brackets\"}]}]},\"jsx\":{\"patterns\":[{\"include\":\"#jsx-tag-without-attributes-in-expression\"},{\"include\":\"#jsx-tag-in-expression\"}]},\"jsx-children\":{\"patterns\":[{\"include\":\"#jsx-tag-without-attributes\"},{\"include\":\"#jsx-tag\"},{\"include\":\"#jsx-evaluated-code\"},{\"include\":\"#jsx-entities\"}]},\"jsx-entities\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.entity.js\"},\"3\":{\"name\":\"punctuation.definition.entity.js\"}},\"match\":\"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)\",\"name\":\"constant.character.entity.js\"}]},\"jsx-evaluated-code\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.begin.js\"}},\"contentName\":\"meta.embedded.expression.js\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.embedded.end.js\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"jsx-string-double-quoted\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.js\"}},\"end\":\"\\\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.js\"}},\"name\":\"string.quoted.double.js\",\"patterns\":[{\"include\":\"#jsx-entities\"}]},\"jsx-string-single-quoted\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.js\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.js\"}},\"name\":\"string.quoted.single.js\",\"patterns\":[{\"include\":\"#jsx-entities\"}]},\"jsx-tag\":{\"begin\":\"(?=(<)\\\\\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\\\\\\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\\\\\\\.|-))(?=((<\\\\\\\\s*)|(\\\\\\\\s+))(?!\\\\\\\\?)|\\\\\\\\/?>))\",\"end\":\"(/>)|(?:(</)\\\\\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\\\\\\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\\\\\\\.|-))?\\\\\\\\s*(>))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.js\"},\"2\":{\"name\":\"punctuation.definition.tag.begin.js\"},\"3\":{\"name\":\"entity.name.tag.namespace.js\"},\"4\":{\"name\":\"punctuation.separator.namespace.js\"},\"5\":{\"name\":\"entity.name.tag.js\"},\"6\":{\"name\":\"support.class.component.js\"},\"7\":{\"name\":\"punctuation.definition.tag.end.js\"}},\"name\":\"meta.tag.js\",\"patterns\":[{\"begin\":\"(<)\\\\\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\\\\\\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\\\\\\\.|-))(?=((<\\\\\\\\s*)|(\\\\\\\\s+))(?!\\\\\\\\?)|\\\\\\\\/?>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.js\"},\"2\":{\"name\":\"entity.name.tag.namespace.js\"},\"3\":{\"name\":\"punctuation.separator.namespace.js\"},\"4\":{\"name\":\"entity.name.tag.js\"},\"5\":{\"name\":\"support.class.component.js\"}},\"end\":\"(?=[/]?>)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-arguments\"},{\"include\":\"#jsx-tag-attributes\"}]},{\"begin\":\"(>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.end.js\"}},\"contentName\":\"meta.jsx.children.js\",\"end\":\"(?=</)\",\"patterns\":[{\"include\":\"#jsx-children\"}]}]},\"jsx-tag-attribute-assignment\":{\"match\":\"=(?=\\\\\\\\s*(?:'|\\\\\"|{|/\\\\\\\\*|//|\\\\\\\\n))\",\"name\":\"keyword.operator.assignment.js\"},\"jsx-tag-attribute-name\":{\"captures\":{\"1\":{\"name\":\"entity.other.attribute-name.namespace.js\"},\"2\":{\"name\":\"punctuation.separator.namespace.js\"},\"3\":{\"name\":\"entity.other.attribute-name.js\"}},\"match\":\"\\\\\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(:))?([_$[:alpha:]][-_$[:alnum:]]*)(?=\\\\\\\\s|=|/?>|/\\\\\\\\*|//)\"},\"jsx-tag-attributes\":{\"begin\":\"\\\\\\\\s+\",\"end\":\"(?=[/]?>)\",\"name\":\"meta.tag.attributes.js\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#jsx-tag-attribute-name\"},{\"include\":\"#jsx-tag-attribute-assignment\"},{\"include\":\"#jsx-string-double-quoted\"},{\"include\":\"#jsx-string-single-quoted\"},{\"include\":\"#jsx-evaluated-code\"},{\"include\":\"#jsx-tag-attributes-illegal\"}]},\"jsx-tag-attributes-illegal\":{\"match\":\"\\\\\\\\S+\",\"name\":\"invalid.illegal.attribute.js\"},\"jsx-tag-in-expression\":{\"begin\":\"(?<!\\\\\\\\+\\\\\\\\+|--)(?<=[({\\\\\\\\[,?=>:*]|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\?|\\\\\\\\*\\\\\\\\/|^await|[^\\\\\\\\._$[:alnum:]]await|^return|[^\\\\\\\\._$[:alnum:]]return|^default|[^\\\\\\\\._$[:alnum:]]default|^yield|[^\\\\\\\\._$[:alnum:]]yield|^)\\\\\\\\s*(?!<\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*((\\\\\\\\s+extends\\\\\\\\s+[^=>])|,))(?=(<)\\\\\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\\\\\\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\\\\\\\.|-))(?=((<\\\\\\\\s*)|(\\\\\\\\s+))(?!\\\\\\\\?)|\\\\\\\\/?>))\",\"end\":\"(?!(<)\\\\\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\\\\\\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\\\\\\\.|-))(?=((<\\\\\\\\s*)|(\\\\\\\\s+))(?!\\\\\\\\?)|\\\\\\\\/?>))\",\"patterns\":[{\"include\":\"#jsx-tag\"}]},\"jsx-tag-without-attributes\":{\"begin\":\"(<)\\\\\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\\\\\\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\\\\\\\.|-))?\\\\\\\\s*(>)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.js\"},\"2\":{\"name\":\"entity.name.tag.namespace.js\"},\"3\":{\"name\":\"punctuation.separator.namespace.js\"},\"4\":{\"name\":\"entity.name.tag.js\"},\"5\":{\"name\":\"support.class.component.js\"},\"6\":{\"name\":\"punctuation.definition.tag.end.js\"}},\"contentName\":\"meta.jsx.children.js\",\"end\":\"(</)\\\\\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\\\\\\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\\\\\\\.|-))?\\\\\\\\s*(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.tag.begin.js\"},\"2\":{\"name\":\"entity.name.tag.namespace.js\"},\"3\":{\"name\":\"punctuation.separator.namespace.js\"},\"4\":{\"name\":\"entity.name.tag.js\"},\"5\":{\"name\":\"support.class.component.js\"},\"6\":{\"name\":\"punctuation.definition.tag.end.js\"}},\"name\":\"meta.tag.without-attributes.js\",\"patterns\":[{\"include\":\"#jsx-children\"}]},\"jsx-tag-without-attributes-in-expression\":{\"begin\":\"(?<!\\\\\\\\+\\\\\\\\+|--)(?<=[({\\\\\\\\[,?=>:*]|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\?|\\\\\\\\*\\\\\\\\/|^await|[^\\\\\\\\._$[:alnum:]]await|^return|[^\\\\\\\\._$[:alnum:]]return|^default|[^\\\\\\\\._$[:alnum:]]default|^yield|[^\\\\\\\\._$[:alnum:]]yield|^)\\\\\\\\s*(?=(<)\\\\\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\\\\\\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\\\\\\\.|-))?\\\\\\\\s*(>))\",\"end\":\"(?!(<)\\\\\\\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\\\\\\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\\\\\\\.|-))?\\\\\\\\s*(>))\",\"patterns\":[{\"include\":\"#jsx-tag-without-attributes\"}]},\"label\":{\"patterns\":[{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(:)(?=\\\\\\\\s*\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.label.js\"},\"2\":{\"name\":\"punctuation.separator.label.js\"}},\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#decl-block\"}]},{\"captures\":{\"1\":{\"name\":\"entity.name.label.js\"},\"2\":{\"name\":\"punctuation.separator.label.js\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(:)\"}]},\"literal\":{\"patterns\":[{\"include\":\"#numeric-literal\"},{\"include\":\"#boolean-literal\"},{\"include\":\"#null-literal\"},{\"include\":\"#undefined-literal\"},{\"include\":\"#numericConstant-literal\"},{\"include\":\"#array-literal\"},{\"include\":\"#this-literal\"},{\"include\":\"#super-literal\"}]},\"method-declaration\":{\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:\\\\\\\\b(override)\\\\\\\\s+)?(?:\\\\\\\\b(public|private|protected)\\\\\\\\s+)?(?:\\\\\\\\b(abstract)\\\\\\\\s+)?(?:\\\\\\\\b(async)\\\\\\\\s+)?\\\\\\\\s*\\\\\\\\b(constructor)\\\\\\\\b(?!:)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.js\"},\"2\":{\"name\":\"storage.modifier.js\"},\"3\":{\"name\":\"storage.modifier.js\"},\"4\":{\"name\":\"storage.modifier.async.js\"},\"5\":{\"name\":\"storage.type.js\"}},\"end\":\"(?=\\\\\\\\}|;|,|$)|(?<=\\\\\\\\})\",\"name\":\"meta.method.declaration.js\",\"patterns\":[{\"include\":\"#method-declaration-name\"},{\"include\":\"#function-body\"}]},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:\\\\\\\\b(override)\\\\\\\\s+)?(?:\\\\\\\\b(public|private|protected)\\\\\\\\s+)?(?:\\\\\\\\b(abstract)\\\\\\\\s+)?(?:\\\\\\\\b(async)\\\\\\\\s+)?(?:(?:\\\\\\\\s*\\\\\\\\b(new)\\\\\\\\b(?!:)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(?:(\\\\\\\\*)\\\\\\\\s*)?)(?=\\\\\\\\s*((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*))?[\\\\\\\\(])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.js\"},\"2\":{\"name\":\"storage.modifier.js\"},\"3\":{\"name\":\"storage.modifier.js\"},\"4\":{\"name\":\"storage.modifier.async.js\"},\"5\":{\"name\":\"keyword.operator.new.js\"},\"6\":{\"name\":\"keyword.generator.asterisk.js\"}},\"end\":\"(?=\\\\\\\\}|;|,|$)|(?<=\\\\\\\\})\",\"name\":\"meta.method.declaration.js\",\"patterns\":[{\"include\":\"#method-declaration-name\"},{\"include\":\"#function-body\"}]},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:\\\\\\\\b(override)\\\\\\\\s+)?(?:\\\\\\\\b(public|private|protected)\\\\\\\\s+)?(?:\\\\\\\\b(abstract)\\\\\\\\s+)?(?:\\\\\\\\b(async)\\\\\\\\s+)?(?:\\\\\\\\b(get|set)\\\\\\\\s+)?(?:(\\\\\\\\*)\\\\\\\\s*)?(?=\\\\\\\\s*(((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(\\\\\\\\??))\\\\\\\\s*((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*))?[\\\\\\\\(])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.js\"},\"2\":{\"name\":\"storage.modifier.js\"},\"3\":{\"name\":\"storage.modifier.js\"},\"4\":{\"name\":\"storage.modifier.async.js\"},\"5\":{\"name\":\"storage.type.property.js\"},\"6\":{\"name\":\"keyword.generator.asterisk.js\"}},\"end\":\"(?=\\\\\\\\}|;|,|$)|(?<=\\\\\\\\})\",\"name\":\"meta.method.declaration.js\",\"patterns\":[{\"include\":\"#method-declaration-name\"},{\"include\":\"#function-body\"}]}]},\"method-declaration-name\":{\"begin\":\"(?=((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(\\\\\\\\??)\\\\\\\\s*[\\\\\\\\(\\\\\\\\<])\",\"end\":\"(?=\\\\\\\\(|\\\\\\\\<)\",\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#array-literal\"},{\"include\":\"#numeric-literal\"},{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"meta.definition.method.js entity.name.function.js\"},{\"match\":\"\\\\\\\\?\",\"name\":\"keyword.operator.optional.js\"}]},\"namespace-declaration\":{\"begin\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(namespace|module)\\\\\\\\s+(?=[_$[:alpha:]\\\\\"'\\`]))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js\"},\"2\":{\"name\":\"storage.modifier.js\"},\"3\":{\"name\":\"storage.type.namespace.js\"}},\"end\":\"(?<=\\\\\\\\})|(?=;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"name\":\"meta.namespace.declaration.js\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"name\":\"entity.name.type.module.js\"},{\"include\":\"#punctuation-accessor\"},{\"include\":\"#decl-block\"}]},\"new-expr\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(new)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.new.js\"}},\"end\":\"(?<=\\\\\\\\))|(?=[;),}\\\\\\\\]:?\\\\\\\\-\\\\\\\\+\\\\\\\\>]|\\\\\\\\|\\\\\\\\||\\\\\\\\&\\\\\\\\&|\\\\\\\\!\\\\\\\\=\\\\\\\\=|$|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))new(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))function((\\\\\\\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\s*[\\\\\\\\(]))))\",\"name\":\"new.expr.js\",\"patterns\":[{\"include\":\"#expression\"}]},\"null-literal\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))null(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.null.js\"},\"numeric-literal\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.numeric.bigint.js\"}},\"match\":\"\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.numeric.hex.js\"},{\"captures\":{\"1\":{\"name\":\"storage.type.numeric.bigint.js\"}},\"match\":\"\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.numeric.binary.js\"},{\"captures\":{\"1\":{\"name\":\"storage.type.numeric.bigint.js\"}},\"match\":\"\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"constant.numeric.octal.js\"},{\"captures\":{\"0\":{\"name\":\"constant.numeric.decimal.js\"},\"1\":{\"name\":\"meta.delimiter.decimal.period.js\"},\"2\":{\"name\":\"storage.type.numeric.bigint.js\"},\"3\":{\"name\":\"meta.delimiter.decimal.period.js\"},\"4\":{\"name\":\"storage.type.numeric.bigint.js\"},\"5\":{\"name\":\"meta.delimiter.decimal.period.js\"},\"6\":{\"name\":\"storage.type.numeric.bigint.js\"},\"7\":{\"name\":\"storage.type.numeric.bigint.js\"},\"8\":{\"name\":\"meta.delimiter.decimal.period.js\"},\"9\":{\"name\":\"storage.type.numeric.bigint.js\"},\"10\":{\"name\":\"meta.delimiter.decimal.period.js\"},\"11\":{\"name\":\"storage.type.numeric.bigint.js\"},\"12\":{\"name\":\"meta.delimiter.decimal.period.js\"},\"13\":{\"name\":\"storage.type.numeric.bigint.js\"},\"14\":{\"name\":\"storage.type.numeric.bigint.js\"}},\"match\":\"(?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$)\"}]},\"numericConstant-literal\":{\"patterns\":[{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))NaN(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.nan.js\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Infinity(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.infinity.js\"}]},\"object-binding-element\":{\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?=((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(:))\",\"end\":\"(?=,|\\\\\\\\})\",\"patterns\":[{\"include\":\"#object-binding-element-propertyName\"},{\"include\":\"#binding-element\"}]},{\"include\":\"#object-binding-pattern\"},{\"include\":\"#destructuring-variable-rest\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#punctuation-comma\"}]},\"object-binding-element-const\":{\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?=((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(:))\",\"end\":\"(?=,|\\\\\\\\})\",\"patterns\":[{\"include\":\"#object-binding-element-propertyName\"},{\"include\":\"#binding-element-const\"}]},{\"include\":\"#object-binding-pattern-const\"},{\"include\":\"#destructuring-variable-rest-const\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#punctuation-comma\"}]},\"object-binding-element-propertyName\":{\"begin\":\"(?=((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(:))\",\"end\":\"(:)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.destructuring.js\"}},\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#array-literal\"},{\"include\":\"#numeric-literal\"},{\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"name\":\"variable.object.property.js\"}]},\"object-binding-pattern\":{\"begin\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.js\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.object.js\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.object.js\"}},\"patterns\":[{\"include\":\"#object-binding-element\"}]},\"object-binding-pattern-const\":{\"begin\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.js\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.object.js\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.object.js\"}},\"patterns\":[{\"include\":\"#object-binding-element-const\"}]},\"object-identifiers\":{\"patterns\":[{\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)(?=\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*prototype\\\\\\\\b(?!\\\\\\\\$))\",\"name\":\"support.class.js\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.js\"},\"2\":{\"name\":\"punctuation.accessor.optional.js\"},\"3\":{\"name\":\"variable.other.constant.object.property.js\"},\"4\":{\"name\":\"variable.other.object.property.js\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(?:(\\\\\\\\#?[[:upper:]][_$[:digit:][:upper:]]*)|(\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*))(?=\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)\"},{\"captures\":{\"1\":{\"name\":\"variable.other.constant.object.js\"},\"2\":{\"name\":\"variable.other.object.js\"}},\"match\":\"(?:([[:upper:]][_$[:digit:][:upper:]]*)|([_$[:alpha:]][_$[:alnum:]]*))(?=\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*\\\\\\\\#?[_$[:alpha:]][_$[:alnum:]]*)\"}]},\"object-literal\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js\"}},\"name\":\"meta.objectliteral.js\",\"patterns\":[{\"include\":\"#object-member\"}]},\"object-literal-method-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:\\\\\\\\b(async)\\\\\\\\s+)?(?:\\\\\\\\b(get|set)\\\\\\\\s+)?(?:(\\\\\\\\*)\\\\\\\\s*)?(?=\\\\\\\\s*(((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(\\\\\\\\??))\\\\\\\\s*((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*))?[\\\\\\\\(])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.js\"},\"2\":{\"name\":\"storage.type.property.js\"},\"3\":{\"name\":\"keyword.generator.asterisk.js\"}},\"end\":\"(?=\\\\\\\\}|;|,)|(?<=\\\\\\\\})\",\"name\":\"meta.method.declaration.js\",\"patterns\":[{\"include\":\"#method-declaration-name\"},{\"include\":\"#function-body\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:\\\\\\\\b(async)\\\\\\\\s+)?(?:\\\\\\\\b(get|set)\\\\\\\\s+)?(?:(\\\\\\\\*)\\\\\\\\s*)?(?=\\\\\\\\s*(((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(\\\\\\\\??))\\\\\\\\s*((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*))?[\\\\\\\\(])\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.js\"},\"2\":{\"name\":\"storage.type.property.js\"},\"3\":{\"name\":\"keyword.generator.asterisk.js\"}},\"end\":\"(?=\\\\\\\\(|\\\\\\\\<)\",\"patterns\":[{\"include\":\"#method-declaration-name\"}]}]},\"object-member\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#object-literal-method-declaration\"},{\"begin\":\"(?=\\\\\\\\[)\",\"end\":\"(?=:)|((?<=[\\\\\\\\]])(?=\\\\\\\\s*[\\\\\\\\(\\\\\\\\<]))\",\"name\":\"meta.object.member.js meta.object-literal.key.js\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#array-literal\"}]},{\"begin\":\"(?=[\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`])\",\"end\":\"(?=:)|((?<=[\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`])(?=((\\\\\\\\s*[\\\\\\\\(\\\\\\\\<,}])|(\\\\\\\\s+(as|satisifies)\\\\\\\\s+))))\",\"name\":\"meta.object.member.js meta.object-literal.key.js\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"}]},{\"begin\":\"(?=(\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$)))\",\"end\":\"(?=:)|(?=\\\\\\\\s*([\\\\\\\\(\\\\\\\\<,}])|(\\\\\\\\s+as|satisifies\\\\\\\\s+))\",\"name\":\"meta.object.member.js meta.object-literal.key.js\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#numeric-literal\"}]},{\"begin\":\"(?<=[\\\\\\\\]\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`])(?=\\\\\\\\s*[\\\\\\\\(\\\\\\\\<])\",\"end\":\"(?=\\\\\\\\}|;|,)|(?<=\\\\\\\\})\",\"name\":\"meta.method.declaration.js\",\"patterns\":[{\"include\":\"#function-body\"}]},{\"captures\":{\"0\":{\"name\":\"meta.object-literal.key.js\"},\"1\":{\"name\":\"constant.numeric.decimal.js\"}},\"match\":\"(?![_$[:alpha:]])([[:digit:]]+)\\\\\\\\s*(?=(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*:)\",\"name\":\"meta.object.member.js\"},{\"captures\":{\"0\":{\"name\":\"meta.object-literal.key.js\"},\"1\":{\"name\":\"entity.name.function.js\"}},\"match\":\"(?:([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?=(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*:(\\\\\\\\s*\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/)*\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>))))))\",\"name\":\"meta.object.member.js\"},{\"captures\":{\"0\":{\"name\":\"meta.object-literal.key.js\"}},\"match\":\"(?:[_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?=(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*:)\",\"name\":\"meta.object.member.js\"},{\"begin\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.spread.js\"}},\"end\":\"(?=,|\\\\\\\\})\",\"name\":\"meta.object.member.js\",\"patterns\":[{\"include\":\"#expression\"}]},{\"captures\":{\"1\":{\"name\":\"variable.other.readwrite.js\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?=,|\\\\\\\\}|$|\\\\\\\\/\\\\\\\\/|\\\\\\\\/\\\\\\\\*)\",\"name\":\"meta.object.member.js\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.as.js\"},\"2\":{\"name\":\"storage.modifier.js\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(as)\\\\\\\\s+(const)(?=\\\\\\\\s*([,}]|$))\",\"name\":\"meta.object.member.js\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(as)|(satisfies))\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.as.js\"},\"2\":{\"name\":\"keyword.control.satisfies.js\"}},\"end\":\"(?=[;),}\\\\\\\\]:?\\\\\\\\-\\\\\\\\+\\\\\\\\>]|\\\\\\\\|\\\\\\\\||\\\\\\\\&\\\\\\\\&|\\\\\\\\!\\\\\\\\=\\\\\\\\=|$|^|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(as|satisifies)\\\\\\\\s+))\",\"name\":\"meta.object.member.js\",\"patterns\":[{\"include\":\"#type\"}]},{\"begin\":\"(?=[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=)\",\"end\":\"(?=,|\\\\\\\\}|$|\\\\\\\\/\\\\\\\\/|\\\\\\\\/\\\\\\\\*)\",\"name\":\"meta.object.member.js\",\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\":\",\"beginCaptures\":{\"0\":{\"name\":\"meta.object-literal.key.js punctuation.separator.key-value.js\"}},\"end\":\"(?=,|\\\\\\\\})\",\"name\":\"meta.object.member.js\",\"patterns\":[{\"begin\":\"(?<=:)\\\\\\\\s*(async)?(?=\\\\\\\\s*(<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)\\\\\\\\(\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.js\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"include\":\"#type-parameters\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.js\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.js\"}},\"patterns\":[{\"include\":\"#expression-inside-possibly-arrow-parens\"}]}]},{\"begin\":\"(?<=:)\\\\\\\\s*(async)?\\\\\\\\s*(\\\\\\\\()(?=\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.js\"},\"2\":{\"name\":\"meta.brace.round.js\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.js\"}},\"patterns\":[{\"include\":\"#expression-inside-possibly-arrow-parens\"}]},{\"begin\":\"(?<=:)\\\\\\\\s*(async)?\\\\\\\\s*(?=\\\\\\\\<\\\\\\\\s*$)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.js\"}},\"end\":\"(?<=\\\\\\\\>)\",\"patterns\":[{\"include\":\"#type-parameters\"}]},{\"begin\":\"(?<=\\\\\\\\>)\\\\\\\\s*(\\\\\\\\()(?=\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))\",\"beginCaptures\":{\"1\":{\"name\":\"meta.brace.round.js\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.js\"}},\"patterns\":[{\"include\":\"#expression-inside-possibly-arrow-parens\"}]},{\"include\":\"#possibly-arrow-return-type\"},{\"include\":\"#expression\"}]},{\"include\":\"#punctuation-comma\"},{\"include\":\"#decl-block\"}]},\"parameter-array-binding-pattern\":{\"begin\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\[)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.js\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.array.js\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.array.js\"}},\"patterns\":[{\"include\":\"#parameter-binding-element\"},{\"include\":\"#punctuation-comma\"}]},\"parameter-binding-element\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#regex\"},{\"include\":\"#parameter-object-binding-pattern\"},{\"include\":\"#parameter-array-binding-pattern\"},{\"include\":\"#destructuring-parameter-rest\"},{\"include\":\"#variable-initializer\"}]},\"parameter-name\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.modifier.js\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(override|public|protected|private|readonly)\\\\\\\\s+(?=(override|public|protected|private|readonly)\\\\\\\\s+)\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.js\"},\"2\":{\"name\":\"keyword.operator.rest.js\"},\"3\":{\"name\":\"entity.name.function.js variable.language.this.js\"},\"4\":{\"name\":\"entity.name.function.js\"},\"5\":{\"name\":\"keyword.operator.optional.js\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(override|public|private|protected|readonly)\\\\\\\\s+)?(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*(\\\\\\\\??)(?=\\\\\\\\s*(=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))))|(:\\\\\\\\s*((<)|([(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>)))))))|(:\\\\\\\\s*(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Function(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(:\\\\\\\\s*((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))))|(:\\\\\\\\s*(=>|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>))))))\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.js\"},\"2\":{\"name\":\"keyword.operator.rest.js\"},\"3\":{\"name\":\"variable.parameter.js variable.language.this.js\"},\"4\":{\"name\":\"variable.parameter.js\"},\"5\":{\"name\":\"keyword.operator.optional.js\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(override|public|private|protected|readonly)\\\\\\\\s+)?(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*(\\\\\\\\??)\"}]},\"parameter-object-binding-element\":{\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?=((\\\\\\\\b(?<!\\\\\\\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:b|B)[01][01_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|(\\\\\\\\b(?<!\\\\\\\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\\\\\\\b(?!\\\\\\\\$))|((?<!\\\\\\\\$)(?:(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(\\\\\\\\.)(n)?\\\\\\\\B)|(?:\\\\\\\\B(\\\\\\\\.)[0-9][0-9_]*(n)?\\\\\\\\b)|(?:\\\\\\\\b[0-9][0-9_]*(n)?\\\\\\\\b(?!\\\\\\\\.)))(?!\\\\\\\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`)|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])+\\\\\\\\]))\\\\\\\\s*(:))\",\"end\":\"(?=,|\\\\\\\\})\",\"patterns\":[{\"include\":\"#object-binding-element-propertyName\"},{\"include\":\"#parameter-binding-element\"},{\"include\":\"#paren-expression\"}]},{\"include\":\"#parameter-object-binding-pattern\"},{\"include\":\"#destructuring-parameter-rest\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#punctuation-comma\"}]},\"parameter-object-binding-pattern\":{\"begin\":\"(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.rest.js\"},\"2\":{\"name\":\"punctuation.definition.binding-pattern.object.js\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.binding-pattern.object.js\"}},\"patterns\":[{\"include\":\"#parameter-object-binding-element\"}]},\"parameter-type-annotation\":{\"patterns\":[{\"begin\":\"(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.js\"}},\"end\":\"(?=[,)])|(?==[^>])\",\"name\":\"meta.type.annotation.js\",\"patterns\":[{\"include\":\"#type\"}]}]},\"paren-expression\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.js\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.js\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"paren-expression-possibly-arrow\":{\"patterns\":[{\"begin\":\"(?<=[(=,])\\\\\\\\s*(async)?(?=\\\\\\\\s*((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*))?\\\\\\\\(\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.js\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"include\":\"#paren-expression-possibly-arrow-with-typeparameters\"}]},{\"begin\":\"(?<=[(=,]|=>|^return|[^\\\\\\\\._$[:alnum:]]return)\\\\\\\\s*(async)?(?=\\\\\\\\s*((((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*))?\\\\\\\\()|(<)|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)))\\\\\\\\s*$)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.async.js\"}},\"end\":\"(?<=\\\\\\\\))\",\"patterns\":[{\"include\":\"#paren-expression-possibly-arrow-with-typeparameters\"}]},{\"include\":\"#possibly-arrow-return-type\"}]},\"paren-expression-possibly-arrow-with-typeparameters\":{\"patterns\":[{\"include\":\"#type-parameters\"},{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.js\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.js\"}},\"patterns\":[{\"include\":\"#expression-inside-possibly-arrow-parens\"}]}]},\"possibly-arrow-return-type\":{\"begin\":\"(?<=\\\\\\\\)|^)\\\\\\\\s*(:)(?=\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*=>)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.arrow.js meta.return.type.arrow.js keyword.operator.type.annotation.js\"}},\"contentName\":\"meta.arrow.js meta.return.type.arrow.js\",\"end\":\"(?==>|\\\\\\\\{|(^\\\\\\\\s*(export|function|class|interface|let|var|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|const|import|enum|namespace|module|type|abstract|declare)\\\\\\\\s+))\",\"patterns\":[{\"include\":\"#arrow-return-type-body\"}]},\"property-accessor\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(accessor|get|set)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.type.property.js\"},\"punctuation-accessor\":{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.js\"},\"2\":{\"name\":\"punctuation.accessor.optional.js\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\"},\"punctuation-comma\":{\"match\":\",\",\"name\":\"punctuation.separator.comma.js\"},\"punctuation-semicolon\":{\"match\":\";\",\"name\":\"punctuation.terminator.statement.js\"},\"qstring-double\":{\"begin\":\"\\\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.js\"}},\"end\":\"(\\\\\")|((?:[^\\\\\\\\\\\\\\\\\\\\\\\\n])$)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.js\"},\"2\":{\"name\":\"invalid.illegal.newline.js\"}},\"name\":\"string.quoted.double.js\",\"patterns\":[{\"include\":\"#string-character-escape\"}]},\"qstring-single\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.js\"}},\"end\":\"(\\\\\\\\')|((?:[^\\\\\\\\\\\\\\\\\\\\\\\\n])$)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.js\"},\"2\":{\"name\":\"invalid.illegal.newline.js\"}},\"name\":\"string.quoted.single.js\",\"patterns\":[{\"include\":\"#string-character-escape\"}]},\"regex\":{\"patterns\":[{\"begin\":\"(?<!\\\\\\\\+\\\\\\\\+|--|})(?<=[=(:,\\\\\\\\[?+!]|^return|[^\\\\\\\\._$[:alnum:]]return|^case|[^\\\\\\\\._$[:alnum:]]case|=>|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\*\\\\\\\\/)\\\\\\\\s*(\\\\\\\\/)(?![\\\\\\\\/*])(?=(?:[^\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\\\[\\\\\\\\()]|\\\\\\\\\\\\\\\\.|\\\\\\\\[([^\\\\\\\\]\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)+\\\\\\\\]|\\\\\\\\(([^\\\\\\\\)\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)+\\\\\\\\))+\\\\\\\\/([dgimsuvy]+|(?![\\\\\\\\/\\\\\\\\*])|(?=\\\\\\\\/\\\\\\\\*))(?!\\\\\\\\s*[a-zA-Z0-9_$]))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.js\"}},\"end\":\"(/)([dgimsuvy]*)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.js\"},\"2\":{\"name\":\"keyword.other.js\"}},\"name\":\"string.regexp.js\",\"patterns\":[{\"include\":\"#regexp\"}]},{\"begin\":\"((?<![_$[:alnum:])\\\\\\\\]]|\\\\\\\\+\\\\\\\\+|--|}|\\\\\\\\*\\\\\\\\/)|((?<=^return|[^\\\\\\\\._$[:alnum:]]return|^case|[^\\\\\\\\._$[:alnum:]]case))\\\\\\\\s*)\\\\\\\\/(?![\\\\\\\\/*])(?=(?:[^\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\\\[]|\\\\\\\\\\\\\\\\.|\\\\\\\\[([^\\\\\\\\]\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\])+\\\\\\\\/([dgimsuvy]+|(?![\\\\\\\\/\\\\\\\\*])|(?=\\\\\\\\/\\\\\\\\*))(?!\\\\\\\\s*[a-zA-Z0-9_$]))\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.js\"}},\"end\":\"(/)([dgimsuvy]*)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.js\"},\"2\":{\"name\":\"keyword.other.js\"}},\"name\":\"string.regexp.js\",\"patterns\":[{\"include\":\"#regexp\"}]}]},\"regex-character-class\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[wWsSdDtrnvf]|\\\\\\\\.\",\"name\":\"constant.other.character-class.regexp\"},{\"match\":\"\\\\\\\\\\\\\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})\",\"name\":\"constant.character.numeric.regexp\"},{\"match\":\"\\\\\\\\\\\\\\\\c[A-Z]\",\"name\":\"constant.character.control.regexp\"},{\"match\":\"\\\\\\\\\\\\\\\\.\",\"name\":\"constant.character.escape.backslash.regexp\"}]},\"regexp\":{\"patterns\":[{\"match\":\"\\\\\\\\\\\\\\\\[bB]|\\\\\\\\^|\\\\\\\\$\",\"name\":\"keyword.control.anchor.regexp\"},{\"captures\":{\"0\":{\"name\":\"keyword.other.back-reference.regexp\"},\"1\":{\"name\":\"variable.other.regexp\"}},\"match\":\"\\\\\\\\\\\\\\\\[1-9]\\\\\\\\d*|\\\\\\\\\\\\\\\\k<([a-zA-Z_$][\\\\\\\\w$]*)>\"},{\"match\":\"[?+*]|\\\\\\\\{(\\\\\\\\d+,\\\\\\\\d+|\\\\\\\\d+,|,\\\\\\\\d+|\\\\\\\\d+)\\\\\\\\}\\\\\\\\??\",\"name\":\"keyword.operator.quantifier.regexp\"},{\"match\":\"\\\\\\\\|\",\"name\":\"keyword.operator.or.regexp\"},{\"begin\":\"(\\\\\\\\()((\\\\\\\\?=)|(\\\\\\\\?!)|(\\\\\\\\?<=)|(\\\\\\\\?<!))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.group.regexp\"},\"2\":{\"name\":\"punctuation.definition.group.assertion.regexp\"},\"3\":{\"name\":\"meta.assertion.look-ahead.regexp\"},\"4\":{\"name\":\"meta.assertion.negative-look-ahead.regexp\"},\"5\":{\"name\":\"meta.assertion.look-behind.regexp\"},\"6\":{\"name\":\"meta.assertion.negative-look-behind.regexp\"}},\"end\":\"(\\\\\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.group.regexp\"}},\"name\":\"meta.group.assertion.regexp\",\"patterns\":[{\"include\":\"#regexp\"}]},{\"begin\":\"\\\\\\\\((?:(\\\\\\\\?:)|(?:\\\\\\\\?<([a-zA-Z_$][\\\\\\\\w$]*)>))?\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.regexp\"},\"1\":{\"name\":\"punctuation.definition.group.no-capture.regexp\"},\"2\":{\"name\":\"variable.other.regexp\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.regexp\"}},\"name\":\"meta.group.regexp\",\"patterns\":[{\"include\":\"#regexp\"}]},{\"begin\":\"(\\\\\\\\[)(\\\\\\\\^)?\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.character-class.regexp\"},\"2\":{\"name\":\"keyword.operator.negation.regexp\"}},\"end\":\"(\\\\\\\\])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.character-class.regexp\"}},\"name\":\"constant.other.character-class.set.regexp\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.character.numeric.regexp\"},\"2\":{\"name\":\"constant.character.control.regexp\"},\"3\":{\"name\":\"constant.character.escape.backslash.regexp\"},\"4\":{\"name\":\"constant.character.numeric.regexp\"},\"5\":{\"name\":\"constant.character.control.regexp\"},\"6\":{\"name\":\"constant.character.escape.backslash.regexp\"}},\"match\":\"(?:.|(\\\\\\\\\\\\\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\\\\\\\\\\\\\c[A-Z])|(\\\\\\\\\\\\\\\\.))\\\\\\\\-(?:[^\\\\\\\\]\\\\\\\\\\\\\\\\]|(\\\\\\\\\\\\\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\\\\\\\\\\\\\c[A-Z])|(\\\\\\\\\\\\\\\\.))\",\"name\":\"constant.other.character-class.range.regexp\"},{\"include\":\"#regex-character-class\"}]},{\"include\":\"#regex-character-class\"}]},\"return-type\":{\"patterns\":[{\"begin\":\"(?<=\\\\\\\\))\\\\\\\\s*(:)(?=\\\\\\\\s*\\\\\\\\S)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.js\"}},\"end\":\"(?<![:|&])(?=$|^|[{};,]|//)\",\"name\":\"meta.return.type.js\",\"patterns\":[{\"include\":\"#return-type-core\"}]},{\"begin\":\"(?<=\\\\\\\\))\\\\\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.js\"}},\"end\":\"(?<![:|&])((?=[{};,]|//|^\\\\\\\\s*$)|((?<=\\\\\\\\S)(?=\\\\\\\\s*$)))\",\"name\":\"meta.return.type.js\",\"patterns\":[{\"include\":\"#return-type-core\"}]}]},\"return-type-core\":{\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?<=[:|&])(?=\\\\\\\\s*\\\\\\\\{)\",\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#type-object\"}]},{\"include\":\"#type-predicate-operator\"},{\"include\":\"#type\"}]},\"shebang\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.js\"}},\"match\":\"\\\\\\\\A(#!).*(?=$)\",\"name\":\"comment.line.shebang.js\"},\"single-line-comment-consuming-line-ending\":{\"begin\":\"(^[ \\\\\\\\t]+)?((//)(?:\\\\\\\\s*((@)internal)(?=\\\\\\\\s|$))?)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.js\"},\"2\":{\"name\":\"comment.line.double-slash.js\"},\"3\":{\"name\":\"punctuation.definition.comment.js\"},\"4\":{\"name\":\"storage.type.internaldeclaration.js\"},\"5\":{\"name\":\"punctuation.decorator.internaldeclaration.js\"}},\"contentName\":\"comment.line.double-slash.js\",\"end\":\"(?=^)\"},\"statements\":{\"patterns\":[{\"include\":\"#declaration\"},{\"include\":\"#control-statement\"},{\"include\":\"#after-operator-block-as-object-literal\"},{\"include\":\"#decl-block\"},{\"include\":\"#label\"},{\"include\":\"#expression\"},{\"include\":\"#punctuation-semicolon\"},{\"include\":\"#string\"},{\"include\":\"#comment\"}]},\"string\":{\"patterns\":[{\"include\":\"#qstring-single\"},{\"include\":\"#qstring-double\"},{\"include\":\"#template\"}]},\"string-character-escape\":{\"match\":\"\\\\\\\\\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\\\\\\\{[0-9A-Fa-f]+\\\\\\\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)\",\"name\":\"constant.character.escape.js\"},\"super-literal\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))super\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"variable.language.super.js\"},\"support-function-call-identifiers\":{\"patterns\":[{\"include\":\"#literal\"},{\"include\":\"#support-objects\"},{\"include\":\"#object-identifiers\"},{\"include\":\"#punctuation-accessor\"},{\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))import(?=\\\\\\\\s*[\\\\\\\\(]\\\\\\\\s*[\\\\\\\\\\\\\"\\\\\\\\'\\\\\\\\\\`]))\",\"name\":\"keyword.operator.expression.import.js\"}]},\"support-objects\":{\"patterns\":[{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(arguments)\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"variable.language.arguments.js\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(Promise)\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"support.class.promise.js\"},{\"captures\":{\"1\":{\"name\":\"keyword.control.import.js\"},\"2\":{\"name\":\"punctuation.accessor.js\"},\"3\":{\"name\":\"punctuation.accessor.optional.js\"},\"4\":{\"name\":\"support.variable.property.importmeta.js\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(import)\\\\\\\\s*(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(meta)\\\\\\\\b(?!\\\\\\\\$)\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.new.js\"},\"2\":{\"name\":\"punctuation.accessor.js\"},\"3\":{\"name\":\"punctuation.accessor.optional.js\"},\"4\":{\"name\":\"support.variable.property.target.js\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(new)\\\\\\\\s*(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(target)\\\\\\\\b(?!\\\\\\\\$)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.accessor.js\"},\"2\":{\"name\":\"punctuation.accessor.optional.js\"},\"3\":{\"name\":\"support.variable.property.js\"},\"4\":{\"name\":\"support.constant.js\"}},\"match\":\"(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(?:(?:(constructor|length|prototype|__proto__)\\\\\\\\b(?!\\\\\\\\$|\\\\\\\\s*(<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\())|(?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\\\\\\\b(?!\\\\\\\\$)))\"},{\"captures\":{\"1\":{\"name\":\"support.type.object.module.js\"},\"2\":{\"name\":\"support.type.object.module.js\"},\"3\":{\"name\":\"punctuation.accessor.js\"},\"4\":{\"name\":\"punctuation.accessor.optional.js\"},\"5\":{\"name\":\"support.type.object.module.js\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(exports)|(module)(?:(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))(exports|id|filename|loaded|parent|children))?)\\\\\\\\b(?!\\\\\\\\$)\"}]},\"switch-statement\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?=\\\\\\\\bswitch\\\\\\\\s*\\\\\\\\()\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js\"}},\"name\":\"switch-statement.expr.js\",\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(switch)\\\\\\\\s*(\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.switch.js\"},\"2\":{\"name\":\"meta.brace.round.js\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.js\"}},\"name\":\"switch-expression.expr.js\",\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js\"}},\"end\":\"(?=\\\\\\\\})\",\"name\":\"switch-block.expr.js\",\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(case|default(?=:))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.switch.js\"}},\"end\":\"(?=:)\",\"name\":\"case-clause.expr.js\",\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\"(:)\\\\\\\\s*(\\\\\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"case-clause.expr.js punctuation.definition.section.case-statement.js\"},\"2\":{\"name\":\"meta.block.js punctuation.definition.block.js\"}},\"contentName\":\"meta.block.js\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"meta.block.js punctuation.definition.block.js\"}},\"patterns\":[{\"include\":\"#statements\"}]},{\"captures\":{\"0\":{\"name\":\"case-clause.expr.js punctuation.definition.section.case-statement.js\"}},\"match\":\"(:)\"},{\"include\":\"#statements\"}]}]},\"template\":{\"patterns\":[{\"include\":\"#template-call\"},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)?(\\`)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.tagged-template.js\"},\"2\":{\"name\":\"string.template.js punctuation.definition.string.template.begin.js\"}},\"contentName\":\"string.template.js\",\"end\":\"\\`\",\"endCaptures\":{\"0\":{\"name\":\"string.template.js punctuation.definition.string.template.end.js\"}},\"patterns\":[{\"include\":\"#template-substitution-element\"},{\"include\":\"#string-character-escape\"}]}]},\"template-call\":{\"patterns\":[{\"begin\":\"(?=(([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*)*|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))(([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>)*(?<!=)\\\\\\\\>))*(?<!=)\\\\\\\\>)*(?<!=)>\\\\\\\\s*)?\\`)\",\"end\":\"(?=\\`)\",\"patterns\":[{\"begin\":\"(?=(([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*\\\\\\\\??\\\\\\\\.\\\\\\\\s*)*|(\\\\\\\\??\\\\\\\\.\\\\\\\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))\",\"end\":\"(?=(<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))(([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>)*(?<!=)\\\\\\\\>))*(?<!=)\\\\\\\\>)*(?<!=)>\\\\\\\\s*)?\\`)\",\"patterns\":[{\"include\":\"#support-function-call-identifiers\"},{\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"name\":\"entity.name.function.tagged-template.js\"}]},{\"include\":\"#type-arguments\"}]},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)?\\\\\\\\s*(?=(<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))(([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>|\\\\\\\\<\\\\\\\\s*(((keyof|infer|typeof|readonly)\\\\\\\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))(?=\\\\\\\\s*([\\\\\\\\<\\\\\\\\>\\\\\\\\,\\\\\\\\.\\\\\\\\[]|=>|&(?!&)|\\\\\\\\|(?!\\\\\\\\|)))))([^<>\\\\\\\\(]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(?<==)\\\\\\\\>)*(?<!=)\\\\\\\\>))*(?<!=)\\\\\\\\>)*(?<!=)>\\\\\\\\s*)\\`)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.tagged-template.js\"}},\"end\":\"(?=\\`)\",\"patterns\":[{\"include\":\"#type-arguments\"}]}]},\"template-substitution-element\":{\"begin\":\"\\\\\\\\$\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.begin.js\"}},\"contentName\":\"meta.embedded.line.js\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.end.js\"}},\"name\":\"meta.template.expression.js\",\"patterns\":[{\"include\":\"#expression\"}]},\"template-type\":{\"patterns\":[{\"include\":\"#template-call\"},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)?(\\`)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.tagged-template.js\"},\"2\":{\"name\":\"string.template.js punctuation.definition.string.template.begin.js\"}},\"contentName\":\"string.template.js\",\"end\":\"\\`\",\"endCaptures\":{\"0\":{\"name\":\"string.template.js punctuation.definition.string.template.end.js\"}},\"patterns\":[{\"include\":\"#template-type-substitution-element\"},{\"include\":\"#string-character-escape\"}]}]},\"template-type-substitution-element\":{\"begin\":\"\\\\\\\\$\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.begin.js\"}},\"contentName\":\"meta.embedded.line.js\",\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.template-expression.end.js\"}},\"name\":\"meta.template.expression.js\",\"patterns\":[{\"include\":\"#type\"}]},\"ternary-expression\":{\"begin\":\"(?!\\\\\\\\?\\\\\\\\.\\\\\\\\s*[^[:digit:]])(\\\\\\\\?)(?!\\\\\\\\?)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.ternary.js\"}},\"end\":\"\\\\\\\\s*(:)\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.ternary.js\"}},\"patterns\":[{\"include\":\"#expression\"}]},\"this-literal\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))this\\\\\\\\b(?!\\\\\\\\$)\",\"name\":\"variable.language.this.js\"},\"type\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-string\"},{\"include\":\"#numeric-literal\"},{\"include\":\"#type-primitive\"},{\"include\":\"#type-builtin-literals\"},{\"include\":\"#type-parameters\"},{\"include\":\"#type-tuple\"},{\"include\":\"#type-object\"},{\"include\":\"#type-operators\"},{\"include\":\"#type-conditional\"},{\"include\":\"#type-fn-type-parameters\"},{\"include\":\"#type-paren-or-function-parameters\"},{\"include\":\"#type-function-return-type\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.js\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*\"},{\"include\":\"#type-name\"}]},\"type-alias-declaration\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(type)\\\\\\\\b\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js\"},\"2\":{\"name\":\"storage.modifier.js\"},\"3\":{\"name\":\"storage.type.type.js\"},\"4\":{\"name\":\"entity.name.type.alias.js\"}},\"end\":\"(?=\\\\\\\\}|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"name\":\"meta.type.declaration.js\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-parameters\"},{\"begin\":\"(=)\\\\\\\\s*(intrinsic)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.js\"},\"2\":{\"name\":\"keyword.control.intrinsic.js\"}},\"end\":\"(?=\\\\\\\\}|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#type\"}]},{\"begin\":\"(=)\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.js\"}},\"end\":\"(?=\\\\\\\\}|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#type\"}]}]},\"type-annotation\":{\"patterns\":[{\"begin\":\"(:)(?=\\\\\\\\s*\\\\\\\\S)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.js\"}},\"end\":\"(?<![:|&])(?!\\\\\\\\s*[|&]\\\\\\\\s+)((?=^|[,);\\\\\\\\}\\\\\\\\]]|//)|(?==[^>])|((?<=[\\\\\\\\}>\\\\\\\\]\\\\\\\\)]|[_$[:alpha:]])\\\\\\\\s*(?=\\\\\\\\{)))\",\"name\":\"meta.type.annotation.js\",\"patterns\":[{\"include\":\"#type\"}]},{\"begin\":\"(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.type.annotation.js\"}},\"end\":\"(?<![:|&])((?=[,);\\\\\\\\}\\\\\\\\]]|\\\\\\\\/\\\\\\\\/)|(?==[^>])|(?=^\\\\\\\\s*$)|((?<=[\\\\\\\\}>\\\\\\\\]\\\\\\\\)]|[_$[:alpha:]])\\\\\\\\s*(?=\\\\\\\\{)))\",\"name\":\"meta.type.annotation.js\",\"patterns\":[{\"include\":\"#type\"}]}]},\"type-arguments\":{\"begin\":\"\\\\\\\\<\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.begin.js\"}},\"end\":\"\\\\\\\\>\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.typeparameters.end.js\"}},\"name\":\"meta.type.parameters.js\",\"patterns\":[{\"include\":\"#type-arguments-body\"}]},\"type-arguments-body\":{\"patterns\":[{\"captures\":{\"0\":{\"name\":\"keyword.operator.type.js\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(_)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\"},{\"include\":\"#type\"},{\"include\":\"#punctuation-comma\"}]},\"type-builtin-literals\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"support.type.builtin.js\"},\"type-conditional\":{\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(extends)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.js\"}},\"end\":\"(?<=:)\",\"patterns\":[{\"begin\":\"\\\\\\\\?\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.ternary.js\"}},\"end\":\":\",\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.ternary.js\"}},\"patterns\":[{\"include\":\"#type\"}]},{\"include\":\"#type\"}]}]},\"type-fn-type-parameters\":{\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(abstract)\\\\\\\\s+)?(new)\\\\\\\\b(?=\\\\\\\\s*\\\\\\\\<)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.type.constructor.js storage.modifier.js\"},\"2\":{\"name\":\"meta.type.constructor.js keyword.control.new.js\"}},\"end\":\"(?<=>)\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#type-parameters\"}]},{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(abstract)\\\\\\\\s+)?(new)\\\\\\\\b\\\\\\\\s*(?=\\\\\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.js\"},\"2\":{\"name\":\"keyword.control.new.js\"}},\"end\":\"(?<=\\\\\\\\))\",\"name\":\"meta.type.constructor.js\",\"patterns\":[{\"include\":\"#function-parameters\"}]},{\"begin\":\"((?=[(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>))))))\",\"end\":\"(?<=\\\\\\\\))\",\"name\":\"meta.type.function.js\",\"patterns\":[{\"include\":\"#function-parameters\"}]}]},\"type-function-return-type\":{\"patterns\":[{\"begin\":\"(=>)(?=\\\\\\\\s*\\\\\\\\S)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.arrow.js\"}},\"end\":\"(?<!=>)(?<![|&])(?=[,\\\\\\\\]\\\\\\\\)\\\\\\\\{\\\\\\\\}=;>:\\\\\\\\?]|//|$)\",\"name\":\"meta.type.function.return.js\",\"patterns\":[{\"include\":\"#type-function-return-type-core\"}]},{\"begin\":\"=>\",\"beginCaptures\":{\"0\":{\"name\":\"storage.type.function.arrow.js\"}},\"end\":\"(?<!=>)(?<![|&])((?=[,\\\\\\\\]\\\\\\\\)\\\\\\\\{\\\\\\\\}=;:\\\\\\\\?>]|//|^\\\\\\\\s*$)|((?<=\\\\\\\\S)(?=\\\\\\\\s*$)))\",\"name\":\"meta.type.function.return.js\",\"patterns\":[{\"include\":\"#type-function-return-type-core\"}]}]},\"type-function-return-type-core\":{\"patterns\":[{\"include\":\"#comment\"},{\"begin\":\"(?<==>)(?=\\\\\\\\s*\\\\\\\\{)\",\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#type-object\"}]},{\"include\":\"#type-predicate-operator\"},{\"include\":\"#type\"}]},\"type-infer\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.expression.infer.js\"},\"2\":{\"name\":\"entity.name.type.js\"},\"3\":{\"name\":\"keyword.operator.expression.extends.js\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(infer)\\\\\\\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))(?:\\\\\\\\s+(extends)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))?\",\"name\":\"meta.type.infer.js\"}]},\"type-name\":{\"patterns\":[{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\\\\\\\\s*(<)\",\"captures\":{\"1\":{\"name\":\"entity.name.type.module.js\"},\"2\":{\"name\":\"punctuation.accessor.js\"},\"3\":{\"name\":\"punctuation.accessor.optional.js\"},\"4\":{\"name\":\"meta.type.parameters.js punctuation.definition.typeparameters.begin.js\"}},\"contentName\":\"meta.type.parameters.js\",\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"meta.type.parameters.js punctuation.definition.typeparameters.end.js\"}},\"patterns\":[{\"include\":\"#type-arguments-body\"}]},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(<)\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.type.js\"},\"2\":{\"name\":\"meta.type.parameters.js punctuation.definition.typeparameters.begin.js\"}},\"contentName\":\"meta.type.parameters.js\",\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"meta.type.parameters.js punctuation.definition.typeparameters.end.js\"}},\"patterns\":[{\"include\":\"#type-arguments-body\"}]},{\"captures\":{\"1\":{\"name\":\"entity.name.type.module.js\"},\"2\":{\"name\":\"punctuation.accessor.js\"},\"3\":{\"name\":\"punctuation.accessor.optional.js\"}},\"match\":\"([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(?:(\\\\\\\\.)|(\\\\\\\\?\\\\\\\\.(?!\\\\\\\\s*[[:digit:]])))\"},{\"match\":\"[_$[:alpha:]][_$[:alnum:]]*\",\"name\":\"entity.name.type.js\"}]},\"type-object\":{\"begin\":\"\\\\\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js\"}},\"end\":\"\\\\\\\\}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.js\"}},\"name\":\"meta.object.type.js\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#method-declaration\"},{\"include\":\"#indexer-declaration\"},{\"include\":\"#indexer-mapped-type-declaration\"},{\"include\":\"#field-declaration\"},{\"include\":\"#type-annotation\"},{\"begin\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.spread.js\"}},\"end\":\"(?=\\\\\\\\}|;|,|$)|(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#type\"}]},{\"include\":\"#punctuation-comma\"},{\"include\":\"#punctuation-semicolon\"},{\"include\":\"#type\"}]},\"type-operators\":{\"patterns\":[{\"include\":\"#typeof-operator\"},{\"include\":\"#type-infer\"},{\"begin\":\"([&|])(?=\\\\\\\\s*\\\\\\\\{)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.type.js\"}},\"end\":\"(?<=\\\\\\\\})\",\"patterns\":[{\"include\":\"#type-object\"}]},{\"begin\":\"[&|]\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.type.js\"}},\"end\":\"(?=\\\\\\\\S)\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))keyof(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.expression.keyof.js\"},{\"match\":\"(\\\\\\\\?|\\\\\\\\:)\",\"name\":\"keyword.operator.ternary.js\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))import(?=\\\\\\\\s*\\\\\\\\()\",\"name\":\"keyword.operator.expression.import.js\"}]},\"type-parameters\":{\"begin\":\"(<)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.typeparameters.begin.js\"}},\"end\":\"(>)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.typeparameters.end.js\"}},\"name\":\"meta.type.parameters.js\",\"patterns\":[{\"include\":\"#comment\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"storage.modifier.js\"},{\"include\":\"#type\"},{\"include\":\"#punctuation-comma\"},{\"match\":\"(=)(?!>)\",\"name\":\"keyword.operator.assignment.js\"}]},\"type-paren-or-function-parameters\":{\"begin\":\"\\\\\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.round.js\"}},\"end\":\"\\\\\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.round.js\"}},\"name\":\"meta.type.paren.cover.js\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.modifier.js\"},\"2\":{\"name\":\"keyword.operator.rest.js\"},\"3\":{\"name\":\"entity.name.function.js variable.language.this.js\"},\"4\":{\"name\":\"entity.name.function.js\"},\"5\":{\"name\":\"keyword.operator.optional.js\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(public|private|protected|readonly)\\\\\\\\s+)?(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\\\\\\\s*(\\\\\\\\??)(?=\\\\\\\\s*(:\\\\\\\\s*((<)|([(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>)))))))|(:\\\\\\\\s*(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Function(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(:\\\\\\\\s*((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))))\"},{\"captures\":{\"1\":{\"name\":\"storage.modifier.js\"},\"2\":{\"name\":\"keyword.operator.rest.js\"},\"3\":{\"name\":\"variable.parameter.js variable.language.this.js\"},\"4\":{\"name\":\"variable.parameter.js\"},\"5\":{\"name\":\"keyword.operator.optional.js\"}},\"match\":\"(?:(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(public|private|protected|readonly)\\\\\\\\s+)?(?:(\\\\\\\\.\\\\\\\\.\\\\\\\\.)\\\\\\\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\\\\\\\s*(\\\\\\\\??)(?=:)\"},{\"include\":\"#type-annotation\"},{\"match\":\",\",\"name\":\"punctuation.separator.parameter.js\"},{\"include\":\"#type\"}]},\"type-predicate-operator\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.operator.type.asserts.js\"},\"2\":{\"name\":\"variable.parameter.js variable.language.this.js\"},\"3\":{\"name\":\"variable.parameter.js\"},\"4\":{\"name\":\"keyword.operator.expression.is.js\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(asserts)\\\\\\\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\\\\\\\s(is)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.type.asserts.js\"},\"2\":{\"name\":\"variable.parameter.js variable.language.this.js\"},\"3\":{\"name\":\"variable.parameter.js\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(asserts)\\\\\\\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))asserts(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.type.asserts.js\"},{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))is(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"keyword.operator.expression.is.js\"}]},\"type-primitive\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"support.type.primitive.js\"},\"type-string\":{\"patterns\":[{\"include\":\"#qstring-single\"},{\"include\":\"#qstring-double\"},{\"include\":\"#template-type\"}]},\"type-tuple\":{\"begin\":\"\\\\\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"meta.brace.square.js\"}},\"end\":\"\\\\\\\\]\",\"endCaptures\":{\"0\":{\"name\":\"meta.brace.square.js\"}},\"name\":\"meta.type.tuple.js\",\"patterns\":[{\"match\":\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\",\"name\":\"keyword.operator.rest.js\"},{\"captures\":{\"1\":{\"name\":\"entity.name.label.js\"},\"2\":{\"name\":\"keyword.operator.optional.js\"},\"3\":{\"name\":\"punctuation.separator.label.js\"}},\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))([_$[:alpha:]][_$[:alnum:]]*)\\\\\\\\s*(\\\\\\\\?)?\\\\\\\\s*(:)\"},{\"include\":\"#type\"},{\"include\":\"#punctuation-comma\"}]},\"typeof-operator\":{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))typeof(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.expression.typeof.js\"}},\"end\":\"(?=[,);}\\\\\\\\]=>:&|{\\\\\\\\?]|(extends\\\\\\\\s+)|$|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))\",\"patterns\":[{\"include\":\"#type-arguments\"},{\"include\":\"#expression\"}]},\"undefined-literal\":{\"match\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))undefined(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\",\"name\":\"constant.language.undefined.js\"},\"var-expr\":{\"patterns\":[{\"begin\":\"(?=(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(var|let)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))\",\"end\":\"(?!(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(var|let)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))|((?<!^let|[^\\\\\\\\._$[:alnum:]]let|^var|[^\\\\\\\\._$[:alnum:]]var)(?=\\\\\\\\s*$)))\",\"name\":\"meta.var.expr.js\",\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(var|let)(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js\"},\"2\":{\"name\":\"storage.modifier.js\"},\"3\":{\"name\":\"storage.type.js\"}},\"end\":\"(?=\\\\\\\\S)\"},{\"include\":\"#destructuring-variable\"},{\"include\":\"#var-single-variable\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#comment\"},{\"begin\":\"(,)\\\\\\\\s*(?=$|\\\\\\\\/\\\\\\\\/)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.comma.js\"}},\"end\":\"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|^\\\\\\\\s*$))|((?<=\\\\\\\\S)(?=\\\\\\\\s*$)))\",\"patterns\":[{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#comment\"},{\"include\":\"#destructuring-variable\"},{\"include\":\"#var-single-variable\"},{\"include\":\"#punctuation-comma\"}]},{\"include\":\"#punctuation-comma\"}]},{\"begin\":\"(?=(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(const(?!\\\\\\\\s+enum\\\\\\\\b))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js\"},\"2\":{\"name\":\"storage.modifier.js\"},\"3\":{\"name\":\"storage.type.js\"}},\"end\":\"(?!(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(const(?!\\\\\\\\s+enum\\\\\\\\b))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))|((?<!^const|[^\\\\\\\\._$[:alnum:]]const)(?=\\\\\\\\s*$)))\",\"name\":\"meta.var.expr.js\",\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b(const(?!\\\\\\\\s+enum\\\\\\\\b))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js\"},\"2\":{\"name\":\"storage.modifier.js\"},\"3\":{\"name\":\"storage.type.js\"}},\"end\":\"(?=\\\\\\\\S)\"},{\"include\":\"#destructuring-const\"},{\"include\":\"#var-single-const\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#comment\"},{\"begin\":\"(,)\\\\\\\\s*(?=$|\\\\\\\\/\\\\\\\\/)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.comma.js\"}},\"end\":\"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|^\\\\\\\\s*$))|((?<=\\\\\\\\S)(?=\\\\\\\\s*$)))\",\"patterns\":[{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#comment\"},{\"include\":\"#destructuring-const\"},{\"include\":\"#var-single-const\"},{\"include\":\"#punctuation-comma\"}]},{\"include\":\"#punctuation-comma\"}]},{\"begin\":\"(?=(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b((?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js\"},\"2\":{\"name\":\"storage.modifier.js\"},\"3\":{\"name\":\"storage.type.js\"}},\"end\":\"(?!(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b((?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))((?=;|}|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b))|((?<!^using|[^\\\\\\\\._$[:alnum:]]using|^await\\\\\\\\s+using|[^\\\\\\\\._$[:alnum:]]await\\\\\\\\s+using)(?=\\\\\\\\s*$)))\",\"name\":\"meta.var.expr.js\",\"patterns\":[{\"begin\":\"(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(?:(\\\\\\\\bexport)\\\\\\\\s+)?(?:(\\\\\\\\bdeclare)\\\\\\\\s+)?\\\\\\\\b((?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b))(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.))\\\\\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.export.js\"},\"2\":{\"name\":\"storage.modifier.js\"},\"3\":{\"name\":\"storage.type.js\"}},\"end\":\"(?=\\\\\\\\S)\"},{\"include\":\"#var-single-const\"},{\"include\":\"#variable-initializer\"},{\"include\":\"#comment\"},{\"begin\":\"(,)\\\\\\\\s*((?!\\\\\\\\S)|(?=\\\\\\\\/\\\\\\\\/))\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.comma.js\"}},\"end\":\"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|^\\\\\\\\s*$))|((?<=\\\\\\\\S)(?=\\\\\\\\s*$)))\",\"patterns\":[{\"include\":\"#single-line-comment-consuming-line-ending\"},{\"include\":\"#comment\"},{\"include\":\"#var-single-const\"},{\"include\":\"#punctuation-comma\"}]},{\"include\":\"#punctuation-comma\"}]}]},\"var-single-const\":{\"patterns\":[{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)(?=\\\\\\\\s*(=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))))|(:\\\\\\\\s*((<)|([(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>)))))))|(:\\\\\\\\s*(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Function(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(:\\\\\\\\s*((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))))|(:\\\\\\\\s*(=>|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>))))))\",\"beginCaptures\":{\"1\":{\"name\":\"meta.definition.variable.js variable.other.constant.js entity.name.function.js\"}},\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|(;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b)))\",\"name\":\"meta.var-single-variable.expr.js\",\"patterns\":[{\"include\":\"#var-single-variable-type-annotation\"}]},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)\",\"beginCaptures\":{\"1\":{\"name\":\"meta.definition.variable.js variable.other.constant.js\"}},\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|(;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b)))\",\"name\":\"meta.var-single-variable.expr.js\",\"patterns\":[{\"include\":\"#var-single-variable-type-annotation\"}]}]},\"var-single-variable\":{\"patterns\":[{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\!)?(?=\\\\\\\\s*(=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>)))))|(:\\\\\\\\s*((<)|([(]\\\\\\\\s*(([)])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.)|([_$[:alnum:]]+\\\\\\\\s*(([:,?=])|([)]\\\\\\\\s*=>)))))))|(:\\\\\\\\s*(?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))Function(?![_$[:alnum:]])(?:(?=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?!\\\\\\\\.)))|(:\\\\\\\\s*((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))))))|(:\\\\\\\\s*(=>|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(<[^<>]*>)|[^<>(),=])+=\\\\\\\\s*(((async\\\\\\\\s+)?((function\\\\\\\\s*[(<*])|(function\\\\\\\\s+)|([_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*=>)))|((async\\\\\\\\s*)?(((<\\\\\\\\s*$)|([\\\\\\\\(]\\\\\\\\s*((([\\\\\\\\{\\\\\\\\[]\\\\\\\\s*)?$)|((\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\{?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*)))|((\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])\\\\\\\\s*((:\\\\\\\\s*\\\\\\\\[?$)|((\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+\\\\\\\\s*)?=\\\\\\\\s*))))))|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?[(]\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([)]\\\\\\\\s*:)|((\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s*:)))|([<]\\\\\\\\s*[_$[:alpha:]][_$[:alnum:]]*\\\\\\\\s+extends\\\\\\\\s*[^=>])|((<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<]|\\\\\\\\<\\\\\\\\s*(((const\\\\\\\\s+)?[_$[:alpha:]])|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\]))([^=<>]|=[^<])*\\\\\\\\>)*\\\\\\\\>)*>\\\\\\\\s*)?\\\\\\\\(\\\\\\\\s*(\\\\\\\\/\\\\\\\\*([^\\\\\\\\*]|(\\\\\\\\*[^\\\\\\\\/]))*\\\\\\\\*\\\\\\\\/\\\\\\\\s*)*(([_$[:alpha:]]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|(\\\\\\\\{([^\\\\\\\\{\\\\\\\\}]|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]*\\\\\\\\})*\\\\\\\\}))*\\\\\\\\})|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|(\\\\\\\\[([^\\\\\\\\[\\\\\\\\]]|\\\\\\\\[[^\\\\\\\\[\\\\\\\\]]*\\\\\\\\])*\\\\\\\\]))*\\\\\\\\])|(\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\\\\\\s*[_$[:alpha:]]))([^()\\\\\\\\'\\\\\\\\\\\\\"\\\\\\\\\\`]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|(\\\\\\\\(([^\\\\\\\\(\\\\\\\\)]|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]*\\\\\\\\))*\\\\\\\\)))*\\\\\\\\))|(\\\\\\\\'([^\\\\\\\\'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\')|(\\\\\\\\\\\\\"([^\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\\\\")|(\\\\\\\\\\`([^\\\\\\\\\\`\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\\\\\\`))*)?\\\\\\\\)(\\\\\\\\s*:\\\\\\\\s*([^<>\\\\\\\\(\\\\\\\\)\\\\\\\\{\\\\\\\\}]|\\\\\\\\<([^<>]|\\\\\\\\<([^<>]|\\\\\\\\<[^<>]+\\\\\\\\>)+\\\\\\\\>)+\\\\\\\\>|\\\\\\\\([^\\\\\\\\(\\\\\\\\)]+\\\\\\\\)|\\\\\\\\{[^\\\\\\\\{\\\\\\\\}]+\\\\\\\\})+)?\\\\\\\\s*=>))))))\",\"beginCaptures\":{\"1\":{\"name\":\"meta.definition.variable.js entity.name.function.js\"},\"2\":{\"name\":\"keyword.operator.definiteassignment.js\"}},\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|(;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b)))\",\"name\":\"meta.var-single-variable.expr.js\",\"patterns\":[{\"include\":\"#var-single-variable-type-annotation\"}]},{\"begin\":\"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])(\\\\\\\\!)?\",\"beginCaptures\":{\"1\":{\"name\":\"meta.definition.variable.js variable.other.constant.js\"},\"2\":{\"name\":\"keyword.operator.definiteassignment.js\"}},\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|(;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b)))\",\"name\":\"meta.var-single-variable.expr.js\",\"patterns\":[{\"include\":\"#var-single-variable-type-annotation\"}]},{\"begin\":\"([_$[:alpha:]][_$[:alnum:]]*)(\\\\\\\\!)?\",\"beginCaptures\":{\"1\":{\"name\":\"meta.definition.variable.js variable.other.readwrite.js\"},\"2\":{\"name\":\"keyword.operator.definiteassignment.js\"}},\"end\":\"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+)|(;|^\\\\\\\\s*$|(?:^\\\\\\\\s*(?:abstract|async|(?:\\\\\\\\bawait\\\\\\\\s+(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)\\\\\\\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\\\\\\\busing(?=\\\\\\\\s+(?!in\\\\\\\\b|of\\\\\\\\b(?!\\\\\\\\s*(?:of\\\\\\\\b|=)))[_$[:alpha:]])\\\\\\\\b)|var|while)\\\\\\\\b)))\",\"name\":\"meta.var-single-variable.expr.js\",\"patterns\":[{\"include\":\"#var-single-variable-type-annotation\"}]}]},\"var-single-variable-type-annotation\":{\"patterns\":[{\"include\":\"#type-annotation\"},{\"include\":\"#string\"},{\"include\":\"#comment\"}]},\"variable-initializer\":{\"patterns\":[{\"begin\":\"(?<!=|!)(=)(?!=)(?=\\\\\\\\s*\\\\\\\\S)(?!\\\\\\\\s*.*=>\\\\\\\\s*$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.js\"}},\"end\":\"(?=$|^|[,);}\\\\\\\\]]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+))\",\"patterns\":[{\"include\":\"#expression\"}]},{\"begin\":\"(?<!=|!)(=)(?!=)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.assignment.js\"}},\"end\":\"(?=[,);}\\\\\\\\]]|((?<![_$[:alnum:]])(?:(?<=\\\\\\\\.\\\\\\\\.\\\\\\\\.)|(?<!\\\\\\\\.))(of|in)\\\\\\\\s+))|(?=^\\\\\\\\s*$)|(?<![\\\\\\\\|\\\\\\\\&\\\\\\\\+\\\\\\\\-\\\\\\\\*\\\\\\\\/])(?<=\\\\\\\\S)(?<!=)(?=\\\\\\\\s*$)\",\"patterns\":[{\"include\":\"#expression\"}]}]}},\"scopeName\":\"source.js\",\"aliases\":[\"js\"]}`)),n=[e];export{n as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/yf5bffbF.js",
    "content": "/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/var e={comments:{lineComment:\";\",blockComment:[\"#|\",\"|#\"]},brackets:[[\"(\",\")\"],[\"{\",\"}\"],[\"[\",\"]\"]],autoClosingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'}],surroundingPairs:[{open:\"{\",close:\"}\"},{open:\"[\",close:\"]\"},{open:\"(\",close:\")\"},{open:'\"',close:'\"'}]},o={defaultToken:\"\",ignoreCase:!0,tokenPostfix:\".scheme\",brackets:[{open:\"(\",close:\")\",token:\"delimiter.parenthesis\"},{open:\"{\",close:\"}\",token:\"delimiter.curly\"},{open:\"[\",close:\"]\",token:\"delimiter.square\"}],keywords:[\"case\",\"do\",\"let\",\"loop\",\"if\",\"else\",\"when\",\"cons\",\"car\",\"cdr\",\"cond\",\"lambda\",\"lambda*\",\"syntax-rules\",\"format\",\"set!\",\"quote\",\"eval\",\"append\",\"list\",\"list?\",\"member?\",\"load\"],constants:[\"#t\",\"#f\"],operators:[\"eq?\",\"eqv?\",\"equal?\",\"and\",\"or\",\"not\",\"null?\"],tokenizer:{root:[[/#[xXoObB][0-9a-fA-F]+/,\"number.hex\"],[/[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?/,\"number.float\"],[/(?:\\b(?:(define|define-syntax|define-macro))\\b)(\\s+)((?:\\w|\\-|\\!|\\?)*)/,[\"keyword\",\"white\",\"variable\"]],{include:\"@whitespace\"},{include:\"@strings\"},[/[a-zA-Z_#][a-zA-Z0-9_\\-\\?\\!\\*]*/,{cases:{\"@keywords\":\"keyword\",\"@constants\":\"constant\",\"@operators\":\"operators\",\"@default\":\"identifier\"}}]],comment:[[/[^\\|#]+/,\"comment\"],[/#\\|/,\"comment\",\"@push\"],[/\\|#/,\"comment\",\"@pop\"],[/[\\|#]/,\"comment\"]],whitespace:[[/[ \\t\\r\\n]+/,\"white\"],[/#\\|/,\"comment\",\"@comment\"],[/;.*$/,\"comment\"]],strings:[[/\"$/,\"string\",\"@popall\"],[/\"(?=.)/,\"string\",\"@multiLineString\"]],multiLineString:[[/[^\\\\\"]+$/,\"string\",\"@popall\"],[/[^\\\\\"]+/,\"string\"],[/\\\\./,\"string.escape\"],[/\"/,\"string\",\"@popall\"],[/\\\\$/,\"string\"]]}};export{e as conf,o as language};\n"
  },
  {
    "path": "jesse/static/_nuxt/zIqOaAtZ.js",
    "content": "import{_ as re}from\"./Dr_JbmT0.js\";import{d as de,a6 as ie,a4 as ue,a0 as ce,A as _e,c as y,r as p,B as pe,w as $,a7 as me,h as j,C as g,j as t,i as a,x as o,E as I,f as n,F as ye,O as ge,D as v,ab as ve,t as he,g as h,k as fe,a9 as xe,G as m,J as M,H as R}from\"./CU_MfyYc.js\";import{_ as be}from\"./CvhZxjKo.js\";import{_ as ke}from\"./Cw4FHd9N.js\";import{_ as we}from\"./BuljS_lV.js\";import{_ as Ve}from\"./Bt5ljtES.js\";import{_ as Te}from\"./Bk9BmIv8.js\";import{u as qe}from\"./Cwg39VG_.js\";import\"./C6794tGI.js\";import\"./DP9I38t9.js\";import\"./RFJ54-KY.js\";import\"./D35nYK_C.js\";const Se={class:\"w-full\"},Ce={class:\"container mx-auto px-4 pt-16 pb-6 max-w-7xl\"},Ue={class:\"mb-8\"},Oe={class:\"bg-white dark:bg-gray-800/50 border border-gray-200 dark:border-gray-700 rounded-2xl p-6 shadow-sm\"},De={class:\"space-y-6\"},Fe={class:\"grid grid-cols-1 lg:grid-cols-12 gap-5\"},Me={class:\"lg:col-span-6\"},Re={class:\"lg:col-span-3\"},ze={class:\"lg:col-span-3\"},Ee={class:\"pt-6 border-t border-gray-100 dark:border-gray-700/50\"},Le={class:\"flex flex-col sm:flex-row gap-5 sm:items-end\"},Ae={class:\"w-full sm:flex-1 grid grid-cols-1 sm:grid-cols-3 gap-5\"},Ne={class:\"flex justify-end pt-2 sm:pt-0\"},He={key:0,class:\"space-y-4\"},Be={class:\"bg-white dark:bg-gray-800 shadow rounded-lg overflow-hidden\"},$e={class:\"divide-y divide-gray-200 dark:divide-gray-700\"},je={class:\"hidden md:grid md:grid-cols-9 gap-4 items-center\"},Ie={class:\"col-span-1\"},Pe={class:\"col-span-1\"},Ge={class:\"col-span-1\"},Je={class:\"col-span-1\"},Qe={class:\"col-span-1\"},Ye={class:\"col-span-1\"},Ke={class:\"col-span-1\"},We={class:\"col-span-1\"},Xe={class:\"col-span-1\"},Ze={key:1,class:\"space-y-4\"},el={class:\"bg-white dark:bg-gray-800/50 border border-gray-200 dark:border-gray-700 rounded-lg overflow-hidden shadow-sm\"},ll={class:\"text-sm font-medium\"},tl={class:\"text-sm text-gray-700 dark:text-gray-300\"},sl={class:\"text-sm text-gray-700 dark:text-gray-300\"},al={class:\"text-sm text-gray-700 dark:text-gray-300\"},ol={key:0,class:\"flex flex-col\"},nl={key:1,class:\"text-gray-400\"},rl={class:\"text-sm text-gray-500 dark:text-gray-400\"},dl={class:\"text-sm text-gray-700 dark:text-gray-300\"},il={key:0,class:\"flex justify-center\"},ul={key:2,class:\"bg-white dark:bg-gray-800 shadow rounded-lg p-12 text-center\"},P=50,Vl=de({__name:\"trades-history\",setup(cl){qe({title:\"Trades History - Jesse\"});const r=ie(),k=ue(),z=ce(),V=_e(),G=y(()=>V.tabs),f=p([]),q=p(!1),O=p(!1),D=p(!0),T=p(0),S=p(!1),E=p(null),C=p(!1),L=p(null),x=y({get:()=>r.query.id||\"\",set:s=>{const e={...r.query};s?e.id=s:delete e.id,k.push({query:e})}}),d=y({get:()=>r.query.status||\"all\",set:s=>{const e={...r.query};s===\"all\"?delete e.status:e.status=s,k.push({query:e})}}),b=y({get:()=>r.query.symbol||\"\",set:s=>{const e={...r.query};s?e.symbol=s:delete e.symbol,k.push({query:e})}}),i=y({get:()=>r.query.dateRange||\"all_time\",set:s=>{const e={...r.query};s===\"all_time\"?delete e.dateRange:e.dateRange=s,k.push({query:e})}}),u=y({get:()=>r.query.exchange||\"all\",set:s=>{const e={...r.query};s===\"all\"?delete e.exchange:e.exchange=s,k.push({query:e})}}),c=y({get:()=>r.query.type||\"all\",set:s=>{const e={...r.query};s===\"all\"?delete e.type:e.type=s,k.push({query:e})}}),J=[{label:\"All Statuses\",value:\"all\"},{label:\"Open\",value:\"open\"},{label:\"Closed\",value:\"closed\"}],Q=[{label:\"All Time\",value:\"all_time\"},{label:\"Last 7 Days\",value:\"7_days\"},{label:\"Last 30 Days\",value:\"30_days\"},{label:\"Last 90 Days\",value:\"90_days\"}],Y=y(()=>{const s=[{label:\"All Exchanges\",value:\"all\",disabled:!1}];for(const e of z.liveTradingExchangeNames)z.planLimits.exchanges.includes(e)?s.push({label:e,value:e,disabled:!1}):s.push({label:`${e} (Upgrade required)`,value:e,disabled:!0});return s}),K=[{label:\"All Types\",value:\"all\"},{label:\"Long\",value:\"long\"},{label:\"Short\",value:\"short\"}],W=[{key:\"symbol\",label:\"Symbol\"},{key:\"type\",label:\"Type\"},{key:\"entry_price\",label:\"Entry\"},{key:\"exit_price\",label:\"Exit\"},{key:\"qty\",label:\"QTY\"},{key:\"pnl\",label:\"PNL\"},{key:\"opened_at\",label:\"Opened\"},{key:\"status\",label:\"Status\"},{key:\"exchange\",label:\"Exchange\"}];pe(()=>{setTimeout(()=>{F()},20)});const X=me(()=>{T.value=0,F()},300);$(x,()=>{X()}),$([d,b,i,u,c],()=>{T.value=0,F()});async function F(){q.value=!0;try{const s=await V.fetchTradesHistory({limit:P,offset:0,id_search:x.value||null,status_filter:d.value===\"all\"?null:d.value,symbol_filter:b.value||null,date_filter:i.value===\"all_time\"?null:i.value,exchange_filter:u.value===\"all\"?null:u.value,type_filter:c.value===\"all\"?null:c.value});f.value=s.trades||[],T.value=f.value.length,D.value=s.hasMore}catch(s){j(s)}finally{q.value=!1}}async function Z(){O.value=!0;try{const s=await V.fetchTradesHistory({limit:P,offset:T.value,id_search:x.value||null,status_filter:d.value===\"all\"?null:d.value,symbol_filter:b.value||null,date_filter:i.value===\"all_time\"?null:i.value,exchange_filter:u.value===\"all\"?null:u.value,type_filter:c.value===\"all\"?null:c.value});f.value=[...f.value,...s.trades||[]],T.value+=(s.trades||[]).length,D.value=s.hasMore}catch(s){j(s)}finally{O.value=!1}}function ee(s){E.value=s.id,S.value=!0}function le(s){L.value=s,C.value=!0}function te(){x.value=\"\",d.value=\"all\",b.value=\"\",i.value=\"all_time\",u.value=\"all\",c.value=\"all\"}function A(s){const e=Number(s);return e===0||isNaN(e)?\"text-gray-900 dark:text-gray-100\":e>0?\"text-green-600 dark:text-green-400\":\"text-red-600 dark:text-red-400\"}return(s,e)=>{const N=re,H=fe,w=ve,U=xe,B=he,_=be,se=ke,ae=we,oe=Ve,ne=Te;return h(),g(\"div\",null,[t(\"div\",Se,[a(N,{\"current-tab\":null,tabs:o(G),onClose:o(V).closeTab,onCancel:o(V).cancel},null,8,[\"tabs\",\"onClose\",\"onCancel\"])]),t(\"div\",Ce,[t(\"div\",Ue,[e[8]||(e[8]=t(\"h1\",{class:\"text-2xl md:text-3xl font-bold text-gray-900 dark:text-white mb-6\"},\" Trades History \",-1)),t(\"div\",Oe,[t(\"div\",De,[t(\"div\",Fe,[t(\"div\",Me,[a(w,{label:\"Search Session\",size:\"md\"},{default:n(()=>[a(H,{modelValue:o(x),\"onUpdate:modelValue\":e[0]||(e[0]=l=>v(x)?x.value=l:null),placeholder:\"Enter Session ID...\",icon:\"i-heroicons-magnifying-glass\",variant:\"outline\"},null,8,[\"modelValue\"])]),_:1})]),t(\"div\",Re,[a(w,{label:\"Status\",size:\"md\"},{default:n(()=>[a(U,{modelValue:o(d),\"onUpdate:modelValue\":e[1]||(e[1]=l=>v(d)?d.value=l:null),options:J},null,8,[\"modelValue\"])]),_:1})]),t(\"div\",ze,[a(w,{label:\"Timeframe\",size:\"md\"},{default:n(()=>[a(U,{modelValue:o(i),\"onUpdate:modelValue\":e[2]||(e[2]=l=>v(i)?i.value=l:null),options:Q},null,8,[\"modelValue\"])]),_:1})])]),t(\"div\",Ee,[t(\"div\",Le,[t(\"div\",Ae,[a(w,{label:\"Symbol\",size:\"sm\"},{default:n(()=>[a(H,{modelValue:o(b),\"onUpdate:modelValue\":e[3]||(e[3]=l=>v(b)?b.value=l:null),placeholder:\"BTC-USDT...\",icon:\"i-heroicons-currency-dollar\"},null,8,[\"modelValue\"])]),_:1}),a(w,{label:\"Exchange\",size:\"sm\"},{default:n(()=>[a(U,{modelValue:o(u),\"onUpdate:modelValue\":e[4]||(e[4]=l=>v(u)?u.value=l:null),options:o(Y)},null,8,[\"modelValue\",\"options\"])]),_:1}),a(w,{label:\"Type\",size:\"sm\"},{default:n(()=>[a(U,{modelValue:o(c),\"onUpdate:modelValue\":e[5]||(e[5]=l=>v(c)?c.value=l:null),options:K},null,8,[\"modelValue\"])]),_:1})]),t(\"div\",Ne,[a(B,{label:\"Reset All\",color:\"gray\",variant:\"soft\",icon:\"i-heroicons-arrow-path\",size:\"sm\",class:\"w-full sm:w-auto justify-center\",onClick:te})])])])])])]),o(q)?(h(),g(\"div\",He,[t(\"div\",Be,[t(\"div\",$e,[(h(),g(ye,null,ge(5,l=>t(\"div\",{key:l,class:\"p-4\"},[t(\"div\",je,[t(\"div\",Ie,[a(_,{class:\"h-4 w-full\"})]),t(\"div\",Pe,[a(_,{class:\"h-4 w-full\"})]),t(\"div\",Ge,[a(_,{class:\"h-4 w-full\"})]),t(\"div\",Je,[a(_,{class:\"h-4 w-full\"})]),t(\"div\",Qe,[a(_,{class:\"h-4 w-full\"})]),t(\"div\",Ye,[a(_,{class:\"h-4 w-full\"})]),t(\"div\",Ke,[a(_,{class:\"h-4 w-full\"})]),t(\"div\",We,[a(_,{class:\"h-4 w-full\"})]),t(\"div\",Xe,[a(_,{class:\"h-4 w-full\"})])])])),64))])])])):o(f).length?(h(),g(\"div\",Ze,[t(\"div\",el,[a(ae,{rows:o(f),columns:W,class:\"w-full\",ui:{td:{base:\"whitespace-nowrap\"},th:{base:\"whitespace-nowrap\"}},onSelect:ee},{\"symbol-data\":n(({row:l})=>[t(\"span\",ll,m(l.symbol),1)]),\"type-data\":n(({row:l})=>[t(\"span\",{class:R([\"text-sm font-medium\",l.type===\"long\"?\"text-green-600 dark:text-green-400\":\"text-red-600 dark:text-red-400\"])},m(l.type),3)]),\"entry_price-data\":n(({row:l})=>[t(\"span\",tl,m(o(M).roundPrice(l.entry_price)),1)]),\"exit_price-data\":n(({row:l})=>[t(\"span\",sl,m(l.exit_price?o(M).roundPrice(l.exit_price):\"-\"),1)]),\"qty-data\":n(({row:l})=>[t(\"span\",al,m(l.qty),1)]),\"pnl-data\":n(({row:l})=>[l.pnl!==null&&l.pnl!==void 0?(h(),g(\"div\",ol,[t(\"span\",{class:R([\"text-sm font-bold\",A(l.pnl)])},m(Math.round(l.pnl*100)/100),3),t(\"span\",{class:R([\"text-xs\",A(l.pnl)])},\" (\"+m(Math.round(l.pnl_percentage*100)/100)+\"%) \",3)])):(h(),g(\"span\",nl,\"-\"))]),\"opened_at-data\":n(({row:l})=>[t(\"span\",rl,m(o(M).timestampToReadableDateTime(l.opened_at)),1)]),\"status-data\":n(({row:l})=>[a(se,{color:l.status===\"open\"?\"blue\":\"gray\",label:l.status,variant:\"soft\",size:\"xs\"},null,8,[\"color\",\"label\"])]),\"exchange-data\":n(({row:l})=>[t(\"span\",dl,m(l.exchange),1)]),_:1},8,[\"rows\"])]),o(D)?(h(),g(\"div\",il,[a(B,{label:\"Load More\",variant:\"soft\",color:\"gray\",loading:o(O),onClick:Z},null,8,[\"loading\"])])):I(\"\",!0)])):!o(q)&&o(f).length===0?(h(),g(\"div\",ul,e[9]||(e[9]=[t(\"div\",{class:\"text-gray-400 dark:text-gray-500\"},[t(\"i\",{class:\"i-heroicons-chart-bar h-12 w-12 mx-auto mb-4\"}),t(\"p\",{class:\"text-lg\"},\"No trades found\"),t(\"p\",{class:\"text-sm mt-2\"},\"Adjust your filters to see items in your trade history\")],-1)]))):I(\"\",!0),a(oe,{modelValue:o(S),\"onUpdate:modelValue\":e[6]||(e[6]=l=>v(S)?S.value=l:null),\"trade-id\":o(E),onOrderClick:le},null,8,[\"modelValue\",\"trade-id\"]),a(ne,{modelValue:o(C),\"onUpdate:modelValue\":e[7]||(e[7]=l=>v(C)?C.value=l:null),\"order-id\":o(L)},null,8,[\"modelValue\",\"order-id\"])])])}}});export{Vl as default};\n"
  },
  {
    "path": "jesse/static/_nuxt/zocC4JxJ.js",
    "content": "const e=Object.freeze(JSON.parse(`{\"displayName\":\"Protocol Buffer 3\",\"fileTypes\":[\"proto\"],\"name\":\"proto\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#syntax\"},{\"include\":\"#package\"},{\"include\":\"#import\"},{\"include\":\"#optionStmt\"},{\"include\":\"#message\"},{\"include\":\"#enum\"},{\"include\":\"#service\"}],\"repository\":{\"comments\":{\"patterns\":[{\"begin\":\"/\\\\\\\\*\",\"end\":\"\\\\\\\\*/\",\"name\":\"comment.block.proto\"},{\"begin\":\"//\",\"end\":\"$\\\\\\\\n?\",\"name\":\"comment.line.double-slash.proto\"}]},\"constants\":{\"match\":\"\\\\\\\\b(true|false|max|[A-Z_]+)\\\\\\\\b\",\"name\":\"constant.language.proto\"},\"enum\":{\"begin\":\"(enum)(\\\\\\\\s+)([A-Za-z][A-Za-z0-9_]*)(\\\\\\\\s*)(\\\\\\\\{)?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.proto\"},\"3\":{\"name\":\"entity.name.class.proto\"}},\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"#reserved\"},{\"include\":\"#optionStmt\"},{\"include\":\"#comments\"},{\"begin\":\"([A-Za-z][A-Za-z0-9_]*)\\\\\\\\s*(=)\\\\\\\\s*(0[xX][0-9a-fA-F]+|[0-9]+)\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.proto\"},\"2\":{\"name\":\"keyword.operator.assignment.proto\"},\"3\":{\"name\":\"constant.numeric.proto\"}},\"end\":\"(;)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.proto\"}},\"patterns\":[{\"include\":\"#fieldOptions\"}]}]},\"field\":{\"begin\":\"\\\\\\\\s*(optional|repeated|required)?\\\\\\\\s*\\\\\\\\b([\\\\\\\\w.]+)\\\\\\\\s+(\\\\\\\\w+)\\\\\\\\s*(=)\\\\\\\\s*(0[xX][0-9a-fA-F]+|[0-9]+)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.proto\"},\"2\":{\"name\":\"storage.type.proto\"},\"3\":{\"name\":\"variable.other.proto\"},\"4\":{\"name\":\"keyword.operator.assignment.proto\"},\"5\":{\"name\":\"constant.numeric.proto\"}},\"end\":\"(;)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.proto\"}},\"patterns\":[{\"include\":\"#fieldOptions\"}]},\"fieldOptions\":{\"begin\":\"\\\\\\\\[\",\"end\":\"\\\\\\\\]\",\"patterns\":[{\"include\":\"#constants\"},{\"include\":\"#number\"},{\"include\":\"#string\"},{\"include\":\"#subMsgOption\"},{\"include\":\"#optionName\"}]},\"ident\":{\"match\":\"[A-Za-z][A-Za-z0-9_]*\",\"name\":\"entity.name.class.proto\"},\"import\":{\"captures\":{\"1\":{\"name\":\"keyword.other.proto\"},\"2\":{\"name\":\"keyword.other.proto\"},\"3\":{\"name\":\"string.quoted.double.proto.import\"},\"4\":{\"name\":\"punctuation.terminator.proto\"}},\"match\":\"\\\\\\\\s*(import)\\\\\\\\s+(weak|public)?\\\\\\\\s*(\\\\\"[^\\\\\"]+\\\\\")\\\\\\\\s*(;)\"},\"kv\":{\"begin\":\"(\\\\\\\\w+)\\\\\\\\s*(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.proto\"},\"2\":{\"name\":\"punctuation.separator.key-value.proto\"}},\"end\":\"(;)|,|(?=[}/_a-zA-Z])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.proto\"}},\"patterns\":[{\"include\":\"#constants\"},{\"include\":\"#number\"},{\"include\":\"#string\"},{\"include\":\"#subMsgOption\"}]},\"mapfield\":{\"begin\":\"\\\\\\\\s*(map)\\\\\\\\s*(<)\\\\\\\\s*([\\\\\\\\w.]+)\\\\\\\\s*,\\\\\\\\s*([\\\\\\\\w.]+)\\\\\\\\s*(>)\\\\\\\\s+(\\\\\\\\w+)\\\\\\\\s*(=)\\\\\\\\s*(\\\\\\\\d+)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.proto\"},\"2\":{\"name\":\"punctuation.definition.typeparameters.begin.proto\"},\"3\":{\"name\":\"storage.type.proto\"},\"4\":{\"name\":\"storage.type.proto\"},\"5\":{\"name\":\"punctuation.definition.typeparameters.end.proto\"},\"6\":{\"name\":\"variable.other.proto\"},\"7\":{\"name\":\"keyword.operator.assignment.proto\"},\"8\":{\"name\":\"constant.numeric.proto\"}},\"end\":\"(;)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.proto\"}},\"patterns\":[{\"include\":\"#fieldOptions\"}]},\"message\":{\"begin\":\"(message|extend)(\\\\\\\\s+)([A-Za-z_][A-Za-z0-9_.]*)(\\\\\\\\s*)(\\\\\\\\{)?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.proto\"},\"3\":{\"name\":\"entity.name.class.message.proto\"}},\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"#reserved\"},{\"include\":\"$self\"},{\"include\":\"#enum\"},{\"include\":\"#optionStmt\"},{\"include\":\"#comments\"},{\"include\":\"#oneof\"},{\"include\":\"#field\"},{\"include\":\"#mapfield\"}]},\"method\":{\"begin\":\"(rpc)\\\\\\\\s+([A-Za-z][A-Za-z0-9_]*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.proto\"},\"2\":{\"name\":\"entity.name.function\"}},\"end\":\"\\\\\\\\}|(;)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.proto\"}},\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#optionStmt\"},{\"include\":\"#rpcKeywords\"},{\"include\":\"#ident\"}]},\"number\":{\"match\":\"\\\\\\\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\\\\\\\.?[0-9]*)|(\\\\\\\\.[0-9]+))((e|E)(\\\\\\\\+|-)?[0-9]+)?)\\\\\\\\b\",\"name\":\"constant.numeric.proto\"},\"oneof\":{\"begin\":\"(oneof)\\\\\\\\s+([A-Za-z][A-Za-z0-9_]*)\\\\\\\\s*\\\\\\\\{?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.proto\"},\"2\":{\"name\":\"variable.other.proto\"}},\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"#optionStmt\"},{\"include\":\"#comments\"},{\"include\":\"#field\"}]},\"optionName\":{\"captures\":{\"1\":{\"name\":\"support.other.proto\"},\"2\":{\"name\":\"support.other.proto\"},\"3\":{\"name\":\"support.other.proto\"}},\"match\":\"(\\\\\\\\w+|\\\\\\\\(\\\\\\\\w+(\\\\\\\\.\\\\\\\\w+)*\\\\\\\\))(\\\\\\\\.\\\\\\\\w+)*\"},\"optionStmt\":{\"begin\":\"(option)\\\\\\\\s+(\\\\\\\\w+|\\\\\\\\(\\\\\\\\w+(\\\\\\\\.\\\\\\\\w+)*\\\\\\\\))(\\\\\\\\.\\\\\\\\w+)*\\\\\\\\s*(=)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.proto\"},\"2\":{\"name\":\"support.other.proto\"},\"3\":{\"name\":\"support.other.proto\"},\"4\":{\"name\":\"support.other.proto\"},\"5\":{\"name\":\"keyword.operator.assignment.proto\"}},\"end\":\"(;)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.proto\"}},\"patterns\":[{\"include\":\"#constants\"},{\"include\":\"#number\"},{\"include\":\"#string\"},{\"include\":\"#subMsgOption\"}]},\"package\":{\"captures\":{\"1\":{\"name\":\"keyword.other.proto\"},\"2\":{\"name\":\"string.unquoted.proto.package\"},\"3\":{\"name\":\"punctuation.terminator.proto\"}},\"match\":\"\\\\\\\\s*(package)\\\\\\\\s+([\\\\\\\\w.]+)\\\\\\\\s*(;)\"},\"reserved\":{\"begin\":\"(reserved)\\\\\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.proto\"}},\"end\":\"(;)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.proto\"}},\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.numeric.proto\"},\"3\":{\"name\":\"keyword.other.proto\"},\"4\":{\"name\":\"constant.numeric.proto\"}},\"match\":\"(\\\\\\\\d+)(\\\\\\\\s+(to)\\\\\\\\s+(\\\\\\\\d+))?\"},{\"include\":\"#string\"}]},\"rpcKeywords\":{\"match\":\"\\\\\\\\b(stream|returns)\\\\\\\\b\",\"name\":\"keyword.other.proto\"},\"service\":{\"begin\":\"(service)\\\\\\\\s+([A-Za-z][A-Za-z0-9_.]*)\\\\\\\\s*\\\\\\\\{?\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.proto\"},\"2\":{\"name\":\"entity.name.class.message.proto\"}},\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#optionStmt\"},{\"include\":\"#method\"}]},\"storagetypes\":{\"match\":\"\\\\\\\\b(double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes)\\\\\\\\b\",\"name\":\"storage.type.proto\"},\"string\":{\"match\":\"('([^']|\\\\\\\\')*')|(\\\\\"([^\\\\\"]|\\\\\\\\\\\\\")*\\\\\")\",\"name\":\"string.quoted.double.proto\"},\"subMsgOption\":{\"begin\":\"\\\\\\\\{\",\"end\":\"\\\\\\\\}\",\"patterns\":[{\"include\":\"#kv\"},{\"include\":\"#comments\"}]},\"syntax\":{\"captures\":{\"1\":{\"name\":\"keyword.other.proto\"},\"2\":{\"name\":\"keyword.operator.assignment.proto\"},\"3\":{\"name\":\"string.quoted.double.proto.syntax\"},\"4\":{\"name\":\"punctuation.terminator.proto\"}},\"match\":\"\\\\\\\\s*(syntax)\\\\\\\\s*(=)\\\\\\\\s*(\\\\\"proto[23]\\\\\")\\\\\\\\s*(;)\"}},\"scopeName\":\"source.proto\",\"aliases\":[\"protobuf\"]}`)),t=[e];export{t as default};\n"
  },
  {
    "path": "jesse/static/index.html",
    "content": "<!DOCTYPE html><html  data-capo=\"\"><head><meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<link rel=\"stylesheet\" href=\"/_nuxt/entry.Co9uk6v2.css\">\n<link rel=\"modulepreload\" as=\"script\" crossorigin href=\"/_nuxt/CU_MfyYc.js\">\n<link rel=\"prefetch\" as=\"image\" type=\"image/png\" href=\"/_nuxt/logo-light.CS4l4ePq.png\">\n<link rel=\"prefetch\" as=\"image\" type=\"image/svg+xml\" href=\"/_nuxt/logo-dark.tKoQPl1k.svg\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CvlXmOiu.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/oQwgk5qA.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DRC6TkPh.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BuapDI9Y.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BypH-vXm.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BY6pwuIY.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/gRuQeaLk.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/ul-Lp4lw.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DeYg-96x.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CfnpWUYo.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/C9L3yaDO.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DWGz5Zuj.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DrRCxMg5.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BfLuTCmN.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DoFvH58O.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DIovg4uR.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/D2PfwrvU.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/C_scCXcs.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BRk-K-rg.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DLs3tTet.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/D0UiDa5C.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/D4aGjE-s.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CyVeKkvQ.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BygKL3ZF.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BPUjjr-i.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/D_OY6ada.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/Cq2jzwMq.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BTpWsGps.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/3TATJI7h.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DXXGBMMv.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DmDlXweU.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DDpSJMW6.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DVYH6Lj_.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CuFlys0T.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/m09vb5r-.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/D2Z7JJdl.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DrqOgyji.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/B2Cf9XSq.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BXYnMxBe.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CoJj_PRq.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/Ckkbw-AO.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/B5uW3Zvf.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/B8ssZoUh.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CrrKwR0a.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BWBTHuhh.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BGLI1Hdo.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DDrv2Hr-.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DLPipH_Q.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CTNlIIiR.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/2oJWbEOo.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DOk3G3cc.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/Dgyr3wWZ.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/B_i9asfM.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CV9EbfTh.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CCBS_C5_.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/B2nSH5Xk.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BLuZWbUW.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CzF1MCbP.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/D94h4QjT.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/C75U4IDy.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/Bc5xkKR1.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DmdQbaLT.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DB0RB20n.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/UMmp-gVE.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DVG02705.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DvSxYeG4.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/yf5bffbF.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/Bzb7OGdO.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/FNqbgIOG.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DyKutqhl.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/B4VqtPa2.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/B7alP455.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/D7lU1fdU.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/VuadG5SK.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BYtUz8ZP.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DOAuugfS.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CXKOl_mN.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/D9yiNO04.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BupSXVCO.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/ZlaFEk-P.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/B-lZjTdr.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DcXBrGfk.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/Cc6zh8Uk.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/B-k8r3hf.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CZogWebk.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/BjtZpFsH.js\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/3cNudfSz.js\">\n<link rel=\"prefetch\" as=\"style\" crossorigin href=\"/_nuxt/error-404.DZraUJun.css\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/DQ5Sj-RJ.js\">\n<link rel=\"prefetch\" as=\"style\" crossorigin href=\"/_nuxt/error-500.XmAVHPl_.css\">\n<link rel=\"prefetch\" as=\"script\" crossorigin href=\"/_nuxt/CfBo882q.js\">\n<script type=\"module\" src=\"/_nuxt/CU_MfyYc.js\" crossorigin></script><script>\"use strict\";(()=>{const a=window,e=document.documentElement,m=[\"dark\",\"light\"],c=window&&window.localStorage&&window.localStorage.getItem&&window.localStorage.getItem(\"nuxt-color-mode\")||\"system\";let n=c===\"system\"?d():c;const l=e.getAttribute(\"data-color-mode-forced\");l&&(n=l),i(n),a[\"__NUXT_COLOR_MODE__\"]={preference:c,value:n,getColorScheme:d,addColorScheme:i,removeColorScheme:f};function i(o){const t=\"\"+o+\"\",s=\"\";e.classList?e.classList.add(t):e.className+=\" \"+t,s&&e.setAttribute(\"data-\"+s,o)}function f(o){const t=\"\"+o+\"\",s=\"\";e.classList?e.classList.remove(t):e.className=e.className.replace(new RegExp(t,\"g\"),\"\"),s&&e.removeAttribute(\"data-\"+s)}function r(o){return a.matchMedia(\"(prefers-color-scheme\"+o+\")\")}function d(){if(a.matchMedia&&r(\"\").media!==\"not all\"){for(const o of m)if(r(\":\"+o).matches)return o}return\"light\"}})();\n</script></head><body><div id=\"__nuxt\"></div><div id=\"teleports\"></div><script type=\"application/json\" data-nuxt-data=\"nuxt-app\" data-ssr=\"false\" id=\"__NUXT_DATA__\">[{\"prerenderedAt\":1,\"serverRendered\":2},1771769758395,false]</script>\n<script>window.__NUXT__={};window.__NUXT__.config={public:{appEnv:\"production\",apiBaseUrl:\"/\",appName:\"Jesse\",appUrl:\"/\",wsUrl:\"/\",persistedState:{storage:\"cookies\",debug:false,cookieOptions:{}}},app:{baseURL:\"/\",buildId:\"eb84b0d5-3375-45f1-aa74-a62921fd30aa\",buildAssetsDir:\"/_nuxt/\",cdnURL:\"\"}}</script></body></html>"
  },
  {
    "path": "jesse/static/robots.txt",
    "content": "User-agent: *\nDisallow: /\n"
  },
  {
    "path": "jesse/store/__init__.py",
    "content": "from .state_app import AppState\nfrom .state_candles import CandlesState\nfrom .state_closed_trades import ClosedTrades\nfrom .state_exchanges import ExchangesState\nfrom .state_logs import LogsState\nfrom .state_orderbook import OrderbookState\nfrom .state_orders import OrdersState\nfrom .state_positions import PositionsState\nfrom .state_tickers import TickersState\nfrom .state_trades import TradesState\n\n\nclass StoreClass:\n    app = AppState()\n    orders = OrdersState() # requires initialization\n    closed_trades = ClosedTrades()\n    logs = LogsState()\n    exchanges = ExchangesState() # requires initialization\n    candles = CandlesState()\n    positions = PositionsState() # requires initialization\n    tickers = TickersState()\n    trades = TradesState()\n    orderbooks = OrderbookState()\n\n    def __init__(self) -> None:\n        # used in self.shared_vars property of Strategy class\n        self.vars = {}\n\n    def reset(self) -> None:\n        self.app = AppState()\n        self.orders = OrdersState()\n        self.closed_trades = ClosedTrades()\n        self.logs = LogsState()\n        self.exchanges = ExchangesState()\n        self.candles = CandlesState()\n        self.positions = PositionsState()\n        self.tickers = TickersState()\n        self.trades = TradesState()\n        self.orderbooks = OrderbookState()\n\n\nstore = StoreClass()\n"
  },
  {
    "path": "jesse/store/state_app.py",
    "content": "import arrow\nfrom jesse.models.ExchangeApiKeys import ExchangeApiKeys\nfrom jesse.models.NotificationApiKeys import NotificationApiKeys\n\n\nclass AppState:\n    def __init__(self):\n        self.time = arrow.utcnow().int_timestamp * 1000\n        self.starting_time = None\n        self.ending_time = None\n        self.daily_balance = []\n\n        # used as placeholders for detecting open trades metrics\n        self.total_open_trades = 0\n        self.total_open_pl = 0\n        self.total_liquidations = 0\n\n        self.session_id = ''\n        self.session_info = {}\n\n        # live only\n        self.exchange_api_key = None\n        self.notifications_api_key = None\n\n    def set_session_id(self, session_id) -> None:\n        self.session_id = session_id\n\n    def set_exchange_api_key(self, exchange_api_key_id: str) -> None:\n        if self.exchange_api_key is not None:\n            raise ValueError('exchange_api_key has already been set')\n\n        self.exchange_api_key = ExchangeApiKeys.get_or_none(ExchangeApiKeys.id == exchange_api_key_id)\n\n    def set_notifications_api_key(self, notifications_api_key_id: str) -> None:\n        if self.notifications_api_key is not None:\n            raise ValueError('notifications_api_key has already been set')\n\n        if notifications_api_key_id == '':\n            return\n\n        self.notifications_api_key = NotificationApiKeys.get_or_none(NotificationApiKeys.id == notifications_api_key_id)\n"
  },
  {
    "path": "jesse/store/state_candles.py",
    "content": "import numpy as np\nfrom jesse.routes import router\nimport jesse.helpers as jh\nfrom jesse.config import config\nfrom jesse.enums import timeframes\nfrom jesse.exceptions import RouteNotFound\nfrom jesse.libs import DynamicNumpyArray\n\n\nclass CandlesState:\n    def __init__(self) -> None:\n        self.storage = {}\n        self.are_all_initiated = False\n        self.initiated_pairs = {}\n\n    def mark_all_as_initiated(self) -> None:\n        for k in self.initiated_pairs:\n            self.initiated_pairs[k] = True\n        self.are_all_initiated = True\n\n    def get_storage(self, exchange: str, symbol: str, timeframe: str) -> DynamicNumpyArray:\n        key = jh.key(exchange, symbol, timeframe)\n\n        try:\n            return self.storage[key]\n        except KeyError:\n            raise RouteNotFound(symbol, timeframe)\n\n    def init_storage(self, bucket_size: int = 1000) -> None:\n        for r in router.all_formatted_routes:\n            exchange, symbol = r['exchange'], r['symbol']\n\n            # initiate the '1m' timeframes\n            key = jh.key(exchange, symbol, timeframes.MINUTE_1)\n            self.storage[key] = DynamicNumpyArray((bucket_size, 6))\n\n            for timeframe in config['app']['considering_timeframes']:\n                key = jh.key(exchange, symbol, timeframe)\n                # ex: 1440 / 60 + 1 (reserve one for forming candle)\n                total_bigger_timeframe = int((bucket_size / jh.timeframe_to_one_minutes(timeframe)) + 1)\n                self.storage[key] = DynamicNumpyArray((total_bigger_timeframe, 6))\n\n\n    def forming_estimation(self, exchange: str, symbol: str, timeframe: str) -> tuple:\n        long_key = jh.key(exchange, symbol, timeframe)\n        short_key = jh.key(exchange, symbol, '1m')\n        required_1m_to_complete_count = jh.timeframe_to_one_minutes(timeframe)\n        current_1m_count = len(self.get_storage(exchange, symbol, '1m'))\n        dif = current_1m_count % required_1m_to_complete_count\n        return dif, long_key, short_key\n"
  },
  {
    "path": "jesse/store/state_closed_trades.py",
    "content": "from jesse.models import ClosedTrade\nimport jesse.helpers as jh\n\n\nclass ClosedTrades:\n    def __init__(self) -> None:\n        self.trades = []\n        self.tempt_trades = {}\n\n    def _get_current_trade(self, exchange: str, symbol: str) -> ClosedTrade:\n        key = jh.key(exchange, symbol)\n        # if already exists, return it\n        if key in self.tempt_trades:\n            t: ClosedTrade = self.tempt_trades[key]\n            # set the trade.id if not generated already\n            if not t.id:\n                t.id = jh.generate_unique_id()\n            return t\n        # else, create a new trade, store it, and return it\n        t = ClosedTrade()\n        t.id = jh.generate_unique_id()\n        self.tempt_trades[key] = t\n        return t\n\n    def _reset_current_trade(self, exchange: str, symbol: str) -> None:\n        key = jh.key(exchange, symbol)\n        self.tempt_trades[key] = ClosedTrade()\n\n    @property\n    def count(self) -> int:\n        return len(self.trades)\n"
  },
  {
    "path": "jesse/store/state_exchanges.py",
    "content": "from jesse.models import Exchange\nfrom jesse.routes import router\n\n\nclass ExchangesState:\n    def __init__(self) -> None:\n        self.storage = {}\n\n    def get_exchange(self, name: str) -> Exchange:\n        if name is None:\n            raise ValueError(f\"name cannot be None. name: {name}\")\n\n        return self.storage.get(name, None)\n\n    @property\n    def trading_exchange(self) -> Exchange:\n        return self.storage.get(router.routes[0].exchange, None)\n"
  },
  {
    "path": "jesse/store/state_logs.py",
    "content": "class LogsState:\n    def __init__(self) -> None:\n        self.errors = []\n        self.info = []\n"
  },
  {
    "path": "jesse/store/state_orderbook.py",
    "content": "import numpy as np\n\nimport jesse.helpers as jh\nfrom jesse.libs import DynamicNumpyArray\nfrom jesse.routes import router\n\n\nclass OrderbookState:\n    def __init__(self) -> None:\n        self.storage = {}\n        self.temp_storage = {}\n\n    def init_storage(self) -> None:\n        for ar in router.all_formatted_routes:\n            exchange, symbol = ar['exchange'], ar['symbol']\n            key = jh.key(exchange, symbol)\n            self.temp_storage[key] = {\n                'last_updated_timestamp': None,\n                'asks': [],\n                'bids': []\n            }\n            self.storage[key] = DynamicNumpyArray((60, 2, 50, 2), drop_at=60)\n\n    def format_orderbook(self, exchange: str, symbol: str) -> np.ndarray:\n        key = jh.key(exchange, symbol)\n\n        # trim prices\n        asks = _trim_orderbook_list(self.temp_storage[key]['asks'], ascending=True)\n        bids = _trim_orderbook_list(self.temp_storage[key]['bids'], ascending=False)\n\n        # fill empty values with NaN\n        asks = _fix_array_len(np.array(asks), 50)\n        bids = _fix_array_len(np.array(bids), 50)\n\n        return np.array([\n            asks, bids\n        ])\n\n    def add_orderbook(self, exchange: str, symbol: str, asks: list, bids: list) -> None:\n        key = jh.key(exchange, symbol)\n        self.temp_storage[key]['asks'] = asks\n        self.temp_storage[key]['bids'] = bids\n\n        # generate new numpy formatted orderbook if it is\n        # either the first time, or that it has passed\n        # 1000 milliseconds since the last time\n        if self.temp_storage[key]['last_updated_timestamp'] is None or jh.now_to_timestamp() - self.temp_storage[key][\n            'last_updated_timestamp'] >= 1000:\n            self.temp_storage[key]['last_updated_timestamp'] = jh.now_to_timestamp()\n\n            formatted_orderbook = self.format_orderbook(exchange, symbol)\n\n            self.storage[key].append(formatted_orderbook)\n\n    def get_current_orderbook(self, exchange: str, symbol: str) -> np.ndarray:\n        key = jh.key(exchange, symbol)\n        return self.storage[key][-1]\n\n    def get_current_asks(self, exchange: str, symbol: str) -> np.ndarray:\n        key = jh.key(exchange, symbol)\n        return self.storage[key][-1][0]\n\n    def get_best_ask(self, exchange: str, symbol: str) -> np.ndarray:\n        key = jh.key(exchange, symbol)\n        return self.storage[key][-1][0][0]\n\n    def get_current_bids(self, exchange: str, symbol: str) -> np.ndarray:\n        key = jh.key(exchange, symbol)\n        return self.storage[key][-1][1]\n\n    def get_best_bid(self, exchange: str, symbol: str) -> np.ndarray:\n        key = jh.key(exchange, symbol)\n        return self.storage[key][-1][1][0]\n\n    def get_orderbooks(self, exchange: str, symbol: str) -> np.ndarray:\n        key = jh.key(exchange, symbol)\n        return self.storage[key][:]\n\n\ndef _trim_orderbook_list(arr: list, ascending: bool, limit_len: int = 50) -> list:\n    \"\"\"trims prices up to 4 digits precision\"\"\"\n    first_price = arr[0][0]\n    if first_price < 0.1:\n        unit = 1e-5\n    elif first_price < 1:\n        unit = 1e-4\n    elif first_price < 10:\n        unit = 1e-3\n    elif first_price < 100:\n        unit = 1e-2\n    elif first_price < 1000:\n        unit = 1e-1\n    elif first_price < 10000:\n        unit = 1\n    else:\n        unit = 10\n\n    trimmed_price = jh.orderbook_trim_price(first_price, ascending, unit)\n    temp_qty = 0\n    trimmed_arr = []\n    for a in arr:\n        if len(trimmed_arr) == limit_len:\n            break\n\n        if (ascending and a[0] > trimmed_price) or (not ascending and a[0] < trimmed_price):\n            # add previous record\n            trimmed_arr.append([\n                trimmed_price, temp_qty\n            ])\n            # update temp values\n            temp_qty = a[1]\n            trimmed_price = jh.orderbook_trim_price(a[0], ascending, unit)\n        else:\n            temp_qty += a[1]\n\n    return trimmed_arr\n\n\ndef _fix_array_len(arr: np.ndarray, target_len: int) -> np.ndarray:\n    \"\"\"make sure bids and asks have the same length\"\"\"\n    missing_len = target_len - len(arr)\n\n    if missing_len < 0:\n        raise ValueError(f\"len cannot be smaller than array's length. {target_len} sent, while array has {len(arr)} items\")\n\n    if not missing_len:\n        return arr\n\n    return np.array([*arr, *np.full((missing_len, *arr.shape[1:]), np.nan)])\n"
  },
  {
    "path": "jesse/store/state_orders.py",
    "content": "from typing import List\n\nimport fnc\n\nfrom jesse.models.Order import Order\nimport jesse.helpers as jh\n\n\nclass OrdersState:\n    def __init__(self) -> None:\n        # used in simulation only\n        self.to_execute = []\n\n        self.storage = {}\n        self.active_storage = {}\n\n    def reset(self) -> None:\n        \"\"\"\n        used for testing\n        \"\"\"\n        for key in self.storage:\n            self.storage[key].clear()\n            self.active_storage[key].clear()\n\n    def reset_trade_orders(self, exchange: str, symbol: str) -> None:\n        \"\"\"\n        used after each completed trade\n        \"\"\"\n        key = f'{exchange}-{symbol}'\n        self.storage[key] = []\n        self.active_storage[key] = []\n\n    def add_order(self, order: Order) -> None:\n        \"\"\"Add order to in-memory state only\"\"\"\n        key = f'{order.exchange}-{order.symbol}'\n\n        if jh.is_live():\n            # Check if order with same id already exists\n            existing_order = fnc.find(lambda o: o.id == order.id, self.storage.get(key, []))\n            if existing_order:\n                return\n\n            # Check if order with same exchange_id already exists (if exchange_id is set)\n            if hasattr(order, 'exchange_id') and order.exchange_id:\n                existing_exchange_order = fnc.find(lambda o: o.exchange_id == order.exchange_id, self.storage.get(key, []))\n                if existing_exchange_order:\n                    return\n\n        self.storage[key].append(order)\n        self.active_storage[key].append(order)\n\n    def remove_order(self, order: Order) -> None:\n        key = f'{order.exchange}-{order.symbol}'\n        self.storage[key] = [\n            o for o in self.storage[key] if o.id != order.id\n        ]\n        self.active_storage[key] = [\n            o for o in self.active_storage[key] if o.id != order.id\n        ]\n\n    # # # # # # # # # # # # # # # # #\n    # getters\n    # # # # # # # # # # # # # # # # #\n    def get_orders(self, exchange, symbol) -> List[Order]:\n        key = f'{exchange}-{symbol}'\n        return self.storage.get(key, [])\n\n    def get_active_orders(self, exchange, symbol) -> List[Order]:\n        key = f'{exchange}-{symbol}'\n        return self.active_storage.get(key, [])\n\n    def get_all_orders(self, exchange: str) -> List[Order]:\n        return [\n            o\n            for key in self.storage\n            for o in self.storage[key]\n            if o.exchange == exchange\n        ]\n\n    def count_all_active_orders(self) -> int:\n        c = 0\n        for key in self.active_storage:\n            if len(self.active_storage[key]) == 0:\n                continue\n\n            for o in self.active_storage[key]:\n                if o.is_active:\n                    c += 1\n        return c\n\n    def count_active_orders(self, exchange: str, symbol: str) -> int:\n        orders = self.get_active_orders(exchange, symbol)\n\n        return sum(bool(o.is_active) for o in orders)\n\n    def count(self, exchange: str, symbol: str) -> int:\n        return len(self.get_orders(exchange, symbol))\n\n    def get_order_by_id(self, exchange: str, symbol: str, id: str, use_exchange_id: bool = False) -> Order:\n        key = f'{exchange}-{symbol}'\n\n        if use_exchange_id:\n            return fnc.find(lambda o: o.exchange_id == id, self.storage[key])\n\n        # make sure id (client_id) is not and empty string\n        if id == '':\n            return None\n\n        return fnc.find(lambda o: id in str(o.id), reversed(self.storage[key]))\n"
  },
  {
    "path": "jesse/store/state_positions.py",
    "content": "from jesse.models import Position\n\nclass PositionsState:\n    def __init__(self) -> None:\n        self.storage = {}\n\n    def count_open_positions(self) -> int:\n        c = 0\n        for key in self.storage:\n            p = self.storage[key]\n            if p.is_open:\n                c += 1\n        return c\n\n    def get_position(self, exchange: str, symbol: str) -> Position:\n        return self.storage.get(f'{exchange}-{symbol}', None)\n    "
  },
  {
    "path": "jesse/store/state_tickers.py",
    "content": "from typing import List\n\nimport numpy as np\n\nimport jesse.helpers as jh\nfrom jesse.libs import DynamicNumpyArray\nfrom jesse.models import Ticker\nfrom jesse.routes import router\n\n\nclass TickersState:\n    def __init__(self) -> None:\n        self.storage = {}\n\n    def init_storage(self) -> None:\n        for ar in router.all_formatted_routes:\n            exchange, symbol = ar['exchange'], ar['symbol']\n            key = jh.key(exchange, symbol)\n            self.storage[key] = DynamicNumpyArray((60, 5), drop_at=120)\n\n    def add_ticker(self, ticker: np.ndarray, exchange: str, symbol: str) -> None:\n        key = jh.key(exchange, symbol)\n\n        # only process once per second\n        if len(self.storage[key][:]) == 0 or jh.now_to_timestamp() - self.storage[key][-1][0] >= 1000:\n            self.storage[key].append(ticker)\n\n    def get_tickers(self, exchange: str, symbol: str) -> List[Ticker]:\n        key = jh.key(exchange, symbol)\n        return self.storage[key][:]\n\n    def get_current_ticker(self, exchange: str, symbol: str) -> Ticker:\n        key = jh.key(exchange, symbol)\n        return self.storage[key][-1]\n\n    def get_past_ticker(self, exchange: str, symbol: str, number_of_tickers_ago: int) -> Ticker:\n        if number_of_tickers_ago > 120:\n            raise ValueError('Max accepted value for number_of_tickers_ago is 120')\n\n        number_of_tickers_ago = abs(number_of_tickers_ago)\n        key = jh.key(exchange, symbol)\n        return self.storage[key][-1 - number_of_tickers_ago]\n"
  },
  {
    "path": "jesse/store/state_trades.py",
    "content": "from typing import List\nimport numpy as np\nimport jesse.helpers as jh\nfrom jesse.libs import DynamicNumpyArray\nfrom jesse.models.Trade import Trade\nfrom jesse.routes import router\n\n\nclass TradesState:\n    def __init__(self) -> None:\n        self.storage = {}\n        self.temp_storage = {}\n\n    def init_storage(self) -> None:\n        for ar in router.all_formatted_routes:\n            exchange, symbol = ar['exchange'], ar['symbol']\n            key = jh.key(exchange, symbol)\n            self.storage[key] = DynamicNumpyArray((60, 6), drop_at=120)\n            self.temp_storage[key] = DynamicNumpyArray((100, 4))\n\n    def add_trade(self, trade: np.ndarray, exchange: str, symbol: str) -> None:\n        key = jh.key(exchange, symbol)\n        if (\n            len(self.temp_storage[key])\n            and trade[0] - self.temp_storage[key][0][0] >= 1000\n        ):\n            arr = self.temp_storage[key]\n            buy_arr = np.array(list(filter(lambda x: x[3] == 1, arr)))\n            sell_arr = np.array(list(filter(lambda x: x[3] == 0, arr)))\n\n            generated = np.array([\n                # timestamp\n                arr[0][0],\n                # price (weighted average)\n                (arr[:][:, 1] * arr[:][:, 2]).sum() / arr[:][:, 2].sum(),\n                # buy_qty\n                0 if not len(buy_arr) else buy_arr[:, 2].sum(),\n                # sell_qty\n                0 if not len(sell_arr) else sell_arr[:, 2].sum(),\n                # buy_count\n                len(buy_arr),\n                # sell_count\n                len(sell_arr)\n            ])\n\n            self.storage[key].append(generated)\n\n            self.temp_storage[key].flush()\n        self.temp_storage[key].append(trade)\n\n    def get_trades(self, exchange: str, symbol: str) -> List[Trade]:\n        key = jh.key(exchange, symbol)\n        return self.storage[key][:]\n\n    def get_current_trade(self, exchange: str, symbol: str) -> Trade:\n        key = jh.key(exchange, symbol)\n        return self.storage[key][-1]\n\n    def get_past_trade(self, exchange: str, symbol: str, number_of_trades_ago: int) -> Trade:\n        if number_of_trades_ago > 120:\n            raise ValueError('Max accepted value for number_of_trades_ago is 120')\n\n        number_of_trades_ago = abs(number_of_trades_ago)\n        key = jh.key(exchange, symbol)\n        return self.storage[key][-1 - number_of_trades_ago]\n"
  },
  {
    "path": "jesse/strategies/CanAddClosedTradeToStore/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\n\n\nclass CanAddClosedTradeToStore(Strategy):\n    def should_long(self):\n        return self.price == 10\n\n    def should_cancel_entry(self):\n        return False\n\n    def go_long(self):\n        self.buy = 1, self.price\n        self.take_profit = 1, 15\n"
  },
  {
    "path": "jesse/strategies/Strategy.py",
    "content": "from abc import ABC, abstractmethod\nfrom time import sleep\nfrom typing import List, Dict, Union, Optional\nimport os\nimport joblib\nimport csv\nimport numpy as np\nimport sys\nimport jesse.helpers as jh\nimport jesse.services.logger as logger\nfrom jesse import exceptions\nfrom jesse.enums import sides, order_submitted_via, order_types\nfrom jesse.models import ClosedTrade, Order, Route, FuturesExchange, SpotExchange, Position\nfrom jesse.candle_pipelines import BaseCandlesPipeline\nfrom jesse.services import metrics\nfrom jesse.services.broker import Broker\nfrom jesse.services import order_service, candle_service\nfrom jesse.repositories import order_repository\nfrom jesse.store import store\nfrom jesse.services.cache import cached\nfrom jesse.services import notifier\nfrom jesse.services.color import generate_unique_hex_color\nfrom jesse.research.ml import load_ml_model as _load_ml_model\n\n\nclass Strategy(ABC):\n    \"\"\"\n    The parent strategy class which every strategy must extend. It is the heart of the framework!\n    \"\"\"\n\n    def __init__(self) -> None:\n        self.id = jh.generate_unique_id()\n        self.name = None\n        self.symbol = None\n        self.exchange = None\n        self.timeframe = None\n        self.hp = None\n\n        self.index = 0\n        self.last_trade_index = 0\n        self.vars = {}\n\n        self.increased_count = 0\n        self.reduced_count = 0\n\n        # Variables used for accepting orders from user. Each variable also has a\n        # similar one   starting with _ which is used as a temp placeholder to\n        # later compare with the current one to detect if user has submitted\n        # any new orders. If so, we cancel old ones and submit the new ones.\n        self.buy = None\n        self._buy = None\n        self.sell = None\n        self._sell = None\n        self.stop_loss = None\n        self._stop_loss = None\n        self.take_profit = None\n        self._take_profit = None\n\n        self.trade: ClosedTrade | None = None\n        self.trades_count = 0\n\n        # chart variables\n        self._executed_orders = []\n        self._add_line_to_candle_chart_values = {}\n        self._add_extra_line_chart_values = {}\n        self._add_horizontal_line_to_candle_chart_values = {}\n        self._add_horizontal_line_to_extra_chart_values = {}\n\n        # Variables used for ML calculations\n        self._ml_data_points = []  # Stores complete data points with features and labels\n        self._current_ml_point = None  # Tracks the currently open data point\n        self._ml_model = None  # Cached loaded model (populated by load_ml_model())\n        self._ml_scaler = None  # Cached loaded scaler (populated by load_ml_model())\n        self._ml_feature_importance = None  # Cached feature importance (populated by load_ml_model())\n\n        self._is_executing = False\n        self._is_initiated = False\n        self._is_handling_updated_order = False\n\n        self.position: Position | None = None\n        self.broker = None\n\n        self._cached_methods = {}\n        self._cached_metrics = {}\n        self._current_route_index = None\n\n        # Add cached price\n        self._cached_price = None\n\n    def candles_pipeline(self) -> Optional[BaseCandlesPipeline]:\n        return None\n\n    def record_features(self, features_dict: dict) -> None:\n        \"\"\"\n        Record multiple features (inputs) for ML training at once.\n        These will be the independent variables used to predict outcomes.\n\n        Args:\n            features_dict: Dictionary of {feature_name: value} pairs\n                          (e.g., {'rsi_value': 50, 'macd_crossover': True})\n        \"\"\"\n        # If we don't have an open data point, create one\n        if self._current_ml_point is None:\n            current_time = int(self.current_candle[0] / 1000)\n            self._current_ml_point = {\n                'time': current_time,\n                'features': {},\n                'label': None  # Will be set later when trade completes\n            }\n\n        # Add all features to this data point at once\n        self._current_ml_point['features'].update(features_dict)\n\n    def record_label(self, name: str, value) -> None:\n        \"\"\"\n        Record a label (output) for ML training.\n        These are the target variables that the model should predict.\n\n        Args:\n            name: Descriptive name of the label (e.g., 'trade_profit', 'win_loss')\n            value: The actual outcome value\n        \"\"\"\n        # Set the label for the current open data point\n        if self._current_ml_point is not None:\n            self._current_ml_point['label'] = {\n                'name': name,\n                'value': value \n            }\n\n            # Move this completed data point to our storage and clear the current point\n            self._ml_data_points.append(self._current_ml_point)\n            self._current_ml_point = None\n        else:\n            jh.debug(f\"record_label('{name}') called with no open data point — did you forget to call record_features() first?\")\n\n    def export_ml_data(self, directory: str | None = None) -> bool:\n        \"\"\"\n        Export all recorded features and labels to CSV files.\n        Returns True if export was successful, False otherwise.\n\n        Args:\n            directory: Optional output directory. Defaults to strategy location.\n        \"\"\"\n        try:\n            # Determine output directory\n            if directory is None:\n                try:\n                    module = sys.modules[self.__class__.__module__]\n                    directory = os.path.dirname(os.path.abspath(module.__file__))\n                except Exception as e:\n                    jh.debug(f\"Could not determine strategy path, using cwd: {e}\")\n                    directory = os.getcwd()\n\n            # Create ml_data subdirectory\n            try:\n                ml_dir = os.path.join(directory, \"ml_data\")\n                os.makedirs(ml_dir, exist_ok=True)\n            except Exception as e:\n                jh.debug(f\"Failed to create ml_data directory: {e}\")\n                return False\n\n            # Export data points\n            if self._ml_data_points:\n                try:\n                    data_path = os.path.join(ml_dir, f\"{self.name}_data.csv\")\n                    with open(data_path, 'w', newline='') as f:\n                        writer = csv.writer(f)\n\n                        # Write header: time, label_name, label_value, feature1, feature2, ...\n                        headers = ['time', 'label_name', 'label_value']\n                        # Get all unique feature names across all data points\n                        all_features = set()\n                        for point in self._ml_data_points:\n                            all_features.update(point['features'].keys())\n                        headers.extend(sorted(all_features))\n\n                        writer.writerow(headers)\n\n                        # Write data rows\n                        for point in self._ml_data_points:\n                            if point['label'] is None:\n                                continue  # Skip points without labels\n\n                            row = [\n                                point['time'],\n                                point['label']['name'],\n                                str(point['label']['value'])\n                            ]\n\n                            # Add all feature values (in consistent order)\n                            for feature_name in sorted(all_features):\n                                row.append(str(point['features'].get(feature_name, '')))\n\n                            writer.writerow(row)\n\n                except Exception as e:\n                    jh.debug(f\"Failed to export ML data: {e}\")\n                    return False\n\n            return True\n\n        except Exception as e:\n            jh.debug(f\"Unexpected error during ML data export: {e}\")\n            return False\n\n    def load_ml_model(self) -> None:\n        \"\"\"\n        Load the model, scaler, and (if present) feature importance from the\n        strategy's own directory and cache them on the instance.\n\n        After this call:\n            ``self._ml_model``              – fitted estimator\n            ``self._ml_scaler``             – fitted StandardScaler\n            ``self._ml_feature_importance`` – feature importance dict (or None)\n\n        The method is idempotent: if the model is already loaded it returns\n        immediately, so it is safe to call on every bar inside an inference\n        method without any extra guard in the strategy.\n        \"\"\"\n        if self._ml_model is not None:\n            return\n\n        try:\n            module = sys.modules[self.__class__.__module__]\n            strategy_dir = os.path.dirname(os.path.abspath(module.__file__))\n        except Exception as e:\n            raise FileNotFoundError(\n                f\"Could not determine strategy directory from module '{self.__class__.__module__}': {e}\"\n            )\n\n        artefacts = _load_ml_model(strategy_dir)\n        self._ml_model              = artefacts[\"model\"]\n        self._ml_scaler             = artefacts[\"scaler\"]\n        self._ml_feature_importance = artefacts.get(\"feature_importance\")\n\n    def get_ml_prediction(self) -> dict:\n        \"\"\"\n        Get ML prediction using the most recently recorded features.\n\n        Returns:\n            Dictionary containing:\n            - 'prediction': bool (True/False prediction)\n            - 'probability': float (0-1 probability of positive class)\n\n        Raises:\n            ValueError: If no features have been recorded or model not trained\n            FileNotFoundError: If model files are missing (with detailed path info)\n        \"\"\"\n        # Check if we have features to predict with\n        if self._current_ml_point is None or not self._current_ml_point['features']:\n            raise ValueError(\"No features recorded for prediction. Call record_features() first.\")\n\n        # Resolve strategy directory reliably via the module registry\n        try:\n            module = sys.modules[self.__class__.__module__]\n            strategy_dir = os.path.dirname(os.path.abspath(module.__file__))\n        except Exception as e:\n            raise FileNotFoundError(\n                f\"Could not determine strategy directory from module '{self.__class__.__module__}': {e}\"\n            )\n\n        # Load model and scaler once and cache them for the lifetime of this strategy instance\n        if self._ml_model is None or self._ml_scaler is None:\n            model_path = os.path.join(strategy_dir, \"svm_model.pkl\")\n            scaler_path = os.path.join(strategy_dir, \"scaler.pkl\")\n\n            # Check what files actually exist (for helpful error messages)\n            existing_files = [f for f in os.listdir(strategy_dir) if not f.startswith('.')]\n            jh.debug(f\"[ML] Loading model from: {strategy_dir}\")\n\n            if not os.path.exists(model_path):\n                raise FileNotFoundError(\n                    f\"Model file NOT FOUND at: {model_path}\\n\"\n                    f\"Current directory: {os.getcwd()}\\n\"\n                    f\"Files in strategy dir ({strategy_dir}): {existing_files}\"\n                )\n            if not os.path.exists(scaler_path):\n                raise FileNotFoundError(\n                    f\"Scaler file NOT FOUND at: {scaler_path}\\n\"\n                    f\"Current directory: {os.getcwd()}\\n\"\n                    f\"Files in strategy dir ({strategy_dir}): {existing_files}\"\n                )\n\n            try:\n                self._ml_model = joblib.load(model_path)\n                self._ml_scaler = joblib.load(scaler_path)\n                jh.debug(\"[ML] Model and scaler loaded and cached successfully\")\n            except Exception as e:\n                raise FileNotFoundError(\n                    f\"Failed to load model files from {strategy_dir}\\n\"\n                    f\"Error: {str(e)}\\n\"\n                    f\"Files in directory ({strategy_dir}): {existing_files}\"\n                )\n\n        svm_model = self._ml_model\n        scaler = self._ml_scaler\n\n        # Get current features\n        current_features = self._current_ml_point['features']\n\n        # Create feature array from current features\n        # We'll use the same order as when training (alphabetical)\n        sorted_features = sorted(current_features.keys())\n        feature_array = np.array([\n            current_features[feature] for feature in sorted_features\n        ]).reshape(1, -1)\n\n        # Scale and predict\n        try:\n            feature_array_scaled = scaler.transform(feature_array)\n            prediction = svm_model.predict(feature_array_scaled)[0]\n            probabilities = svm_model.predict_proba(feature_array_scaled)[0]\n\n            return {\n                'prediction': bool(prediction),\n                'probability': float(probabilities[1])\n            }\n        except Exception as e:\n            raise ValueError(f\"Prediction failed: {e}. Check feature consistency with training data.\")\n\n    def add_line_to_candle_chart(self, title: str, value: float, color=None) -> None:\n        # validate value's type\n        if not isinstance(value, (int, float)):\n            raise ValueError(f\"Invalid value type: {type(value)}. The value must be either int or float; you're passing {value}\")\n\n        if title not in self._add_line_to_candle_chart_values:\n            self._add_line_to_candle_chart_values[title] = {\n                'data': [],\n                'color': color if color is not None else generate_unique_hex_color(),\n            }\n        self._add_line_to_candle_chart_values[title]['data'].append({\n            'time': int(self.current_candle[0] / 1000),\n            'value': value,\n            'color': color if color is not None else (self._add_line_to_candle_chart_values[title]['color'])\n        })\n\n    def add_horizontal_line_to_candle_chart(self, title: str, value: float, color=None, line_width=1.5, line_style='solid') -> None:\n        # validate value's type\n        if not isinstance(value, (int, float)):\n            raise ValueError(f\"Invalid value type: {type(value)}. The value must be either int or float; you're passing {value}\")\n\n        if line_style == 'solid':\n            lineStyle = 0\n        elif line_style == 'dotted':\n            lineStyle = 1\n        else:\n            raise ValueError(f\"Invalid line_style: {line_style}\")\n\n        if title in self._add_horizontal_line_to_candle_chart_values:\n            self._add_horizontal_line_to_candle_chart_values[title].update({\n                'price': value,\n                'color': color if color is not None else self._add_horizontal_line_to_candle_chart_values[title]['color'],\n                'lineWidth': line_width,\n                'lineStyle': lineStyle,\n            })\n        else:\n            self._add_horizontal_line_to_candle_chart_values[title] = {\n                'title': title,\n                'price': value,\n                'color': color if color is not None else generate_unique_hex_color(),\n                'lineWidth': line_width,\n                'lineStyle': lineStyle,\n            }\n\n    def add_horizontal_line_to_extra_chart(self, chart_name: str, title: str, value: float, color=None, line_width=1.5, line_style='solid') -> None:\n        # validate value's type\n        if not isinstance(value, (int, float)):\n            raise ValueError(f\"Invalid value type: {type(value)}. The value must be either int or float; you're passing {value}\")\n\n        if line_style == 'solid':\n            lineStyle = 0\n        elif line_style == 'dotted':\n            lineStyle = 1\n        else:\n            raise ValueError(f\"Invalid line_style: {line_style}\")\n\n        if chart_name not in self._add_horizontal_line_to_extra_chart_values:\n            self._add_horizontal_line_to_extra_chart_values[chart_name] = {}\n\n        self._add_horizontal_line_to_extra_chart_values[chart_name][title] = {\n            'price': value,\n            'color': color if color is not None else generate_unique_hex_color(),\n            'lineWidth': line_width,\n            'lineStyle': lineStyle,\n            'title': title\n        }\n\n    def add_extra_line_chart(self, chart_name: str, title: str, value: float, color=None) -> None:\n        # validate value's type\n        if not isinstance(value, (int, float)):\n            raise ValueError(f\"Invalid value type: {type(value)}. The value must be either int or float; you're passing {value}\")\n\n        if chart_name not in self._add_extra_line_chart_values:\n            self._add_extra_line_chart_values[chart_name] = {}\n\n        if title not in self._add_extra_line_chart_values[chart_name]:\n            self._add_extra_line_chart_values[chart_name][title] = {\n                'data': [],\n                'color': color if color is not None else generate_unique_hex_color(),\n            }\n\n        self._add_extra_line_chart_values[chart_name][title]['data'].append({\n            'time': int(self.current_candle[0] / 1000),\n            'value': value,\n            'color': color if color is not None else (self._add_extra_line_chart_values[chart_name][title]['color'])\n        })\n\n    def _init_objects(self) -> None:\n        \"\"\"\n        This method gets called after right creating the Strategy object. It\n        is just a workaround as a part of not being able to set them inside\n        self.__init__() for the purpose of removing __init__() methods from strategies.\n        \"\"\"\n        self.position = store.positions.get_position(self.exchange, self.symbol)\n        self.broker = Broker(self.position, self.exchange, self.symbol, self.timeframe)\n\n        if self.hp is None and len(self.hyperparameters()) > 0:\n            self.hp = {}\n            for dna in self.hyperparameters():\n                self.hp[dna['name']] = dna['default']\n\n    @property\n    def _price_precision(self) -> int:\n        \"\"\"\n        used when live trading because few exchanges require numbers to have a specific precision\n        \"\"\"\n        return store.exchanges.get_exchange(self.exchange).vars['precisions'][self.symbol]['price_precision']\n\n    @property\n    def _qty_precision(self) -> int:\n        \"\"\"\n        used when live trading because few exchanges require numbers to have a specific precision\n        \"\"\"\n        return store.exchanges.get_exchange(self.exchange).vars['precisions'][self.symbol]['qty_precision']\n\n    def _broadcast(self, msg: str) -> None:\n        \"\"\"Broadcasts the event to all OTHER strategies\n\n        Arguments:\n            msg {str} -- [the message to broadcast]\n        \"\"\"\n        from jesse.routes import router\n\n        for r in router.routes:\n            # skip self\n            if r.strategy.id == self.id:\n                continue\n\n            if msg == 'route-open-position':\n                r.strategy.on_route_open_position(self)\n            elif msg == 'route-close-position':\n                r.strategy.on_route_close_position(self)\n            elif msg == 'route-increased-position':\n                r.strategy.on_route_increased_position(self)\n            elif msg == 'route-reduced-position':\n                r.strategy.on_route_reduced_position(self)\n            elif msg == 'route-canceled':\n                r.strategy.on_route_canceled(self)\n\n            r.strategy._detect_and_handle_entry_and_exit_modifications()\n\n    def _handle_executed_order_for_chart(self, order: Order):\n        position_type = ''\n        if self.position.is_long:\n            position_type = 'LONG'\n        elif self.position.is_short:\n            position_type = 'SHORT'\n        elif self.position.is_close and self.position.previous_qty > 0:\n            position_type = 'LONG'\n        elif self.position.is_close and self.position.previous_qty < 0:\n            position_type = 'SHORT'\n\n        self._executed_orders.append({\n            'time': int(self.current_candle[0] / 1000),\n            'position': 'aboveBar' if order.side == sides.SELL else 'belowBar',\n            'color': '#e91e63' if order.side == sides.SELL else '#2196F3',\n            'shape': 'arrowDown' if order.side == sides.SELL else 'arrowUp',\n            'text': f'{order.side.upper()} • {position_type}',\n            'order_id': order.id,\n        })\n\n    def _on_updated_position(self, order: Order) -> None:\n        \"\"\"\n        Handles the after-effect of the executed order to execute strategy\n        events. Note that it assumes that the position has already\n        been affected by the executed order.\n        \"\"\"\n        # in live-mode, sometimes order-update effects and new execution has overlaps, so:\n        self._is_handling_updated_order = True\n\n        self._handle_executed_order_for_chart(order)\n\n        # this is the last executed order, and had its effect on\n        # the position. We need to know what its effect was:\n        before_qty = self.position.previous_qty\n        after_qty = self.position.qty\n\n        # if opening position\n        if abs(before_qty) <= abs(self.position._min_qty) < abs(after_qty):\n            effect = 'opening_position'\n        # if closing position\n        elif abs(before_qty) > abs(self.position._min_qty) >= abs(after_qty):\n            effect = 'closing_position'\n        # if increasing position size\n        elif abs(after_qty) > abs(before_qty):\n            effect = 'increased_position'\n        # if reducing position size\n        else:  # abs(after_qty) < abs(before_qty):\n            effect = 'reduced_position'\n\n        # call the relevant strategy event handler:\n        if effect == 'opening_position':\n            txt = f\"OPENED {self.position.type} position for {self.symbol}: qty: {after_qty}, entry_price: {self.position.entry_price}\"\n            if jh.is_debuggable('position_opened'):\n                logger.info(txt)\n            if jh.is_live() and jh.get_config('env.notifications.events.updated_position'):\n                notifier.notify(txt)\n            self._on_open_position(order)\n        elif effect == 'closing_position':\n            txt = f\"CLOSED Position for {self.symbol}\"\n            if jh.is_debuggable('position_closed'):\n                logger.info(txt)\n            if jh.is_live() and jh.get_config('env.notifications.events.updated_position'):\n                notifier.notify(txt)\n            self._on_close_position(order)\n        elif effect == 'increased_position':\n            txt = f\"INCREASED Position size to {after_qty}\"\n            if jh.is_debuggable('position_increased'):\n                logger.info(txt)\n            if jh.is_live() and jh.get_config('env.notifications.events.updated_position'):\n                notifier.notify(txt)\n            self._on_increased_position(order)\n        else:  # if effect == 'reduced_position':\n            txt = f\"REDUCED Position size to {after_qty}\"\n            if jh.is_debuggable('position_reduced'):\n                logger.info(txt)\n            if jh.is_live() and jh.get_config('env.notifications.events.updated_position'):\n                notifier.notify(txt)\n            self._on_reduced_position(order)\n\n        self._is_handling_updated_order = False\n\n    def filters(self) -> list:\n        return []\n\n    def hyperparameters(self) -> list:\n        return []\n\n    def dna(self) -> str:\n        return ''\n\n    def _execute_long(self) -> None:\n        self.go_long()\n\n        # validation\n        if self.buy is None:\n            raise exceptions.InvalidStrategy('You forgot to set self.buy. example (qty, price)')\n        elif type(self.buy) not in [tuple, list]:\n            raise exceptions.InvalidStrategy(\n                f'self.buy must be either a list or a tuple. example: (qty, price). You set: {type(self.buy)}')\n\n        self._prepare_buy()\n\n        if self.take_profit is not None:\n            if self.exchange_type == 'spot':\n                raise exceptions.InvalidStrategy(\n                    \"Setting self.take_profit in the go_long() method is not supported for spot trading (it's only supported in futures trading). \"\n                    \"Try setting it in self.on_open_position() instead.\"\n                )\n\n            # validate\n            self._validate_take_profit()\n\n            self._prepare_take_profit()\n\n        if self.stop_loss is not None:\n            if self.exchange_type == 'spot':\n                raise exceptions.InvalidStrategy(\n                    \"Setting self.stop_loss in the go_long() method is not supported for spot trading (it's only supported in futures trading). \"\n                    \"Try setting it in self.on_open_position() instead.\"\n                )\n\n            # validate\n            self._validate_stop_loss()\n\n            self._prepare_stop_loss()\n\n        # filters\n        if not self._execute_filters():\n            return\n\n        self._submit_buy_orders()\n\n    def _submit_buy_orders(self) -> None:\n        if jh.is_livetrading():\n            price_to_compare = jh.round_price_for_live_mode(\n                self.price,\n                store.exchanges.get_exchange(self.exchange).vars['precisions'][self.symbol]['price_precision']\n            )\n        else:\n            price_to_compare = self.price\n\n        for o in self._buy:\n            # MARKET order\n            if jh.is_price_near(o[1], price_to_compare):\n                self.broker.buy_at_market(o[0])\n            # STOP order\n            elif o[1] > price_to_compare:\n                self.broker.start_profit_at(sides.BUY, o[0], o[1])\n            # LIMIT order\n            elif o[1] < price_to_compare:\n                self.broker.buy_at(o[0], o[1])\n            else:\n                raise ValueError(f'Invalid order price: o[1]:{o[1]}, self.price:{self.price}')\n\n    def _submit_sell_orders(self) -> None:\n        if jh.is_livetrading():\n            price_to_compare = jh.round_price_for_live_mode(\n                self.price,\n                store.exchanges.get_exchange(self.exchange).vars['precisions'][self.symbol]['price_precision']\n            )\n        else:\n            price_to_compare = self.price\n\n        for o in self._sell:\n            # MARKET order\n            if jh.is_price_near(o[1], price_to_compare):\n                self.broker.sell_at_market(o[0])\n            # STOP order\n            elif o[1] < price_to_compare:\n                self.broker.start_profit_at(sides.SELL, o[0], o[1])\n            # LIMIT order\n            elif o[1] > price_to_compare:\n                self.broker.sell_at(o[0], o[1])\n            else:\n                raise ValueError(f'Invalid order price: o[1]:{o[1]}, self.price:{self.price}')\n\n    def _execute_short(self) -> None:\n        self.go_short()\n\n        # validation\n        if self.sell is None:\n            raise exceptions.InvalidStrategy('You forgot to set self.sell. example (qty, price)')\n        elif type(self.sell) not in [tuple, list]:\n            raise exceptions.InvalidStrategy(\n                f'self.sell must be either a list or a tuple. example: (qty, price). You set {type(self.sell)}'\n            )\n\n        self._prepare_sell()\n\n        if self.take_profit is not None:\n            self._validate_take_profit()\n            self._prepare_take_profit()\n\n        if self.stop_loss is not None:\n            self._validate_stop_loss()\n            self._prepare_stop_loss()\n\n        # filters\n        if not self._execute_filters():\n            return\n\n        self._submit_sell_orders()\n\n    def _prepare_buy(self, make_copies: bool = True) -> None:\n        try:\n            self.buy = self._get_formatted_order(self.buy)\n        except ValueError:\n            raise exceptions.InvalidShape(\n                'The format of self.buy is invalid. \\n'\n                f'It must be either (qty, price) or [(qty, price), (qty, price)] for multiple points; but {self.buy} was given'\n            )\n\n        if make_copies:\n            self._buy = self.buy.copy()\n\n    def _prepare_sell(self, make_copies: bool = True) -> None:\n        try:\n            self.sell = self._get_formatted_order(self.sell)\n        except ValueError:\n            raise exceptions.InvalidShape(\n                'The format of self.sell is invalid. \\n'\n                f'It must be either (qty, price) or [(qty, price), (qty, price)] for multiple points; but {self.sell} was given'\n            )\n\n        if make_copies:\n            self._sell = self.sell.copy()\n\n    def _prepare_stop_loss(self, make_copies: bool = True) -> None:\n        try:\n            self.stop_loss = self._get_formatted_order(self.stop_loss)\n        except ValueError:\n            raise exceptions.InvalidShape(\n                'The format of self.stop_loss is invalid. \\n'\n                f'It must be either (qty, price) or [(qty, price), (qty, price)] for multiple points; but {self.stop_loss} was given'\n            )\n\n        if make_copies:\n            self._stop_loss = self.stop_loss.copy()\n\n    def _prepare_take_profit(self, make_copies: bool = True) -> None:\n        try:\n            self.take_profit = self._get_formatted_order(self.take_profit)\n        except ValueError:\n            raise exceptions.InvalidShape(\n                'The format of self.take_profit is invalid. \\n'\n                f'It must be either (qty, price) or [(qty, price), (qty, price)] for multiple points; but {self.take_profit} was given'\n            )\n\n        if make_copies:\n            self._take_profit = self.take_profit.copy()\n\n    def _validate_stop_loss(self) -> None:\n        if self.stop_loss is None:\n            raise exceptions.InvalidStrategy('You forgot to set self.stop_loss. example (qty, price)')\n        elif type(self.stop_loss) not in [tuple, list, np.ndarray]:\n            raise exceptions.InvalidStrategy(\n                f'self.stop_loss must be either a list or a tuple. example: (qty, price). You set {type(self.stop_loss)}')\n\n    def _validate_take_profit(self) -> None:\n        if self.take_profit is None:\n            raise exceptions.InvalidStrategy('You forgot to set self.take_profit. example (qty, price)')\n        elif type(self.take_profit) not in [tuple, list, np.ndarray]:\n            raise exceptions.InvalidStrategy(\n                f'self.take_profit must be either a list or a tuple. example: (qty, price). You set {type(self.take_profit)}')\n\n    def _execute_filters(self) -> bool:\n        for f in self.filters():\n            try:\n                passed = f()\n            except TypeError:\n                raise exceptions.InvalidStrategy(\n                    \"Invalid filter format. You need to pass filter methods WITHOUT calling them \"\n                    \"(no parentheses must be present at the end)\"\n                    \"\\n\\n\"\n                    \"\\u274C \" + \"Incorrect Example:\\n\"\n                                \"return [\\n\"\n                                \"    self.filter_1()\\n\"\n                                \"]\\n\\n\"\n                                \"\\u2705 \" + \"Correct Example:\\n\"\n                                            \"return [\\n\"\n                                            \"    self.filter_1\\n\"\n                                            \"]\\n\"\n                )\n\n            if not passed:\n                logger.info(f.__name__)\n                self._reset()\n                return False\n\n        return True\n\n    @abstractmethod\n    def go_long(self) -> None:\n        pass\n\n    def go_short(self) -> None:\n        pass\n\n    def _execute_cancel(self) -> None:\n        \"\"\"\n        cancels everything so that the strategy can keep looking for new trades.\n        \"\"\"\n        # validation\n        if self.position.is_open:\n            raise Exception('cannot cancel orders when position is still open. there must be a bug somewhere.')\n\n        logger.info(f'cancel all remaining orders of {self.symbol} to prepare for a fresh start...')\n\n        self.broker.cancel_all_orders()\n\n        self._reset()\n\n        self._broadcast('route-canceled')\n\n        self.on_cancel()\n\n        if not jh.is_unit_testing() and not jh.is_live():\n            store.orders.storage[f'{self.exchange}-{self.symbol}'].clear()\n\n    def _reset(self) -> None:\n        self.buy = None\n        self._buy = None\n        self.sell = None\n        self._sell = None\n        self.stop_loss = None\n        self._stop_loss = None\n        self.take_profit = None\n        self._take_profit = None\n\n        store.orders.reset_trade_orders(self.exchange, self.symbol)\n\n        self.increased_count = 0\n        self.reduced_count = 0\n\n    def on_cancel(self) -> None:\n        \"\"\"\n        what should happen after all active orders have been cancelled\n        \"\"\"\n        pass\n\n    @abstractmethod\n    def should_long(self) -> bool:\n        pass\n\n    def should_short(self) -> bool:\n        return False\n\n    def should_cancel_entry(self) -> bool:\n        \"\"\"\n        Whether to cancel the active  entry orders or not. By default, it will cancel the\n        entry orders when a new candle is formed and the position is still not open.\n        \"\"\"\n        return True\n\n    def before(self) -> None:\n        \"\"\"\n        Get's executed BEFORE executing the strategy's logic\n        \"\"\"\n        pass\n\n    def after(self) -> None:\n        \"\"\"\n        Get's executed AFTER executing the strategy's logic\n        \"\"\"\n        pass\n\n    def _update_position(self) -> None:\n        self._wait_until_executing_orders_are_fully_handled()\n\n        # after _wait_until_executing_orders_are_fully_handled, the position might have closed, so:\n        if self.position.is_close:\n            return\n\n        self.update_position()\n\n        self._detect_and_handle_entry_and_exit_modifications()\n\n    def _detect_and_handle_entry_and_exit_modifications(self) -> None:\n        if self.position.is_close:\n            return\n\n        try:\n            # if self.buy has been modified\n            if self.is_long:\n                # prepare format\n                self._prepare_buy(make_copies=False)\n\n                # if entry has been modified\n                if not np.array_equal(self.buy, self._buy):\n                    self._buy = self.buy.copy()\n\n                    # cancel orders\n                    for o in self.entry_orders:\n                        if o.is_active or o.is_queued:\n                            self.broker.cancel_order(o.id)\n\n                    self._submit_buy_orders()\n\n            # if self.sell has been modified\n            elif self.is_short:\n                # prepare format\n                self._prepare_sell(make_copies=False)\n\n                # if entry has been modified\n                if not np.array_equal(self.sell, self._sell):\n                    self._sell = self.sell.copy()\n\n                    # cancel orders\n                    for o in self.entry_orders:\n                        if o.is_active or o.is_queued:\n                            self.broker.cancel_order(o.id)\n\n                    self._submit_sell_orders()\n\n            # if self.stop_loss has been modified\n            if self.position.is_open and self.stop_loss is not None:\n                self._validate_stop_loss()\n                self._prepare_stop_loss(False)\n\n                # if stop_loss has been modified\n                if not np.array_equal(self.stop_loss, self._stop_loss):\n                    # prepare format\n                    self._stop_loss = self.stop_loss.copy()\n\n                    # if there's only one order in self._stop_loss, then it could be a liquidation order, store its price\n                    if len(self._stop_loss) == 1:\n                        temp_current_price = self.price\n                    else:\n                        temp_current_price = None\n\n                    # CANCEL previous orders\n                    for o in self.active_exit_orders:\n                        if o.is_stop_loss and (o.is_active or o.is_queued):\n                            self.broker.cancel_order(o.id)\n\n                    # SUBMIT new orders\n                    for o in self._stop_loss:\n                        # sometimes while submitting orders, the position gets closed (in live mode). Hence, check again\n                        # to see if the position is still open. If it's closed, no further submitting is required.\n                        if self.position.is_close:\n                            logger.info(\n                                \"Position got closed while submitting stop-loss orders. Hence, skipping further submissions\"\n                            )\n                            break\n\n                        # see if we need to override the stop-loss price to be the current price to ensure a MARKET order\n                        if temp_current_price == o[1]:\n                            order_price = self.price\n                        else:\n                            order_price = o[1]\n\n                        submitted_order: Order = self.broker.reduce_position_at(o[0], order_price, self.price)\n                        if submitted_order:\n                            submitted_order.submitted_via = order_submitted_via.STOP_LOSS\n\n                        # if self.take_profit has been modified\n\n            # if self.take_profit has been modified\n            if self.position.is_open and self.take_profit is not None:\n                self._validate_take_profit()\n                self._prepare_take_profit(False)\n\n                # if _take_profit has been modified\n                if not np.array_equal(self.take_profit, self._take_profit):\n                    self._take_profit = self.take_profit.copy()\n\n                    # if there's only one order in self._stop_loss, then it could be a liquidation order, store its price\n                    if len(self._take_profit) == 1:\n                        temp_current_price = self.price\n                    else:\n                        temp_current_price = None\n\n                    # CANCEL previous orders\n                    for o in self.active_exit_orders:\n                        if o.is_take_profit and (o.is_active or o.is_queued):\n                            self.broker.cancel_order(o.id)\n\n                    # SUBMIT new orders\n                    for o in self._take_profit:\n                        # sometimes while submitting orders, the position gets closed (in live mode). Hence, check again\n                        # to see if the position is still open. If it's closed, no further submitting is required.\n                        if self.position.is_close:\n                            logger.info(\n                                \"Position got closed while submitting take-profit orders. Hence, skipping further submissions\"\n                            )\n                            break\n\n                        # see if we need to override the take-profit price to be the current price to ensure a MARKET order\n                        if temp_current_price == o[1]:\n                            order_price = self.price\n                        else:\n                            order_price = o[1]\n\n                        submitted_order: Order = self.broker.reduce_position_at(o[0], order_price, self.price)\n                        if submitted_order:\n                            submitted_order.submitted_via = order_submitted_via.TAKE_PROFIT\n    \n        except TypeError:\n            raise exceptions.InvalidStrategy(\n                'Something odd is going on within your strategy causing a TypeError exception. '\n                'Try running it with the debug mode enabled in a backtest to see what was going on near the end, and fix it.'\n            )\n        except:\n            raise\n\n        # validations: stop-loss and take-profit should not be the same\n        if (\n                self.position.is_open\n                and (self.stop_loss is not None and self.take_profit is not None)\n                and np.array_equal(self.stop_loss, self.take_profit)\n                and len(self.stop_loss) > 0\n        ):\n            raise exceptions.InvalidStrategy(\n                'stop-loss and take-profit should not be exactly the same. Just use either one of them and it will do.')\n\n    def update_position(self) -> None:\n        pass\n\n    def _wait_until_executing_orders_are_fully_handled(self):\n        if self._is_handling_updated_order:\n            logger.info(\n                \"Stopped strategy execution at this time because we're still handling the result \"\n                \"of an executed order. Trying again in 3 seconds...\"\n            )\n            sleep(3)\n\n    def _check(self) -> None:\n        \"\"\"\n        Based on the newly updated info, check if we should take action or not\n        \"\"\"\n        if not self._is_initiated:\n            self._is_initiated = True\n\n        self._wait_until_executing_orders_are_fully_handled()\n\n        if jh.is_live() and jh.is_debuggable('strategy_execution'):\n            logger.info(f'Executing  {self.name}-{self.exchange}-{self.symbol}-{self.timeframe}')\n\n        # should cancel entry?\n        if len(self.entry_orders) and self.is_close and self.should_cancel_entry():\n            self._execute_cancel()\n\n            # make sure order cancellation response is received via WS\n            if jh.is_live():\n                # sleep a little until cancel is received via WS\n                sleep(0.1)\n                # just in case, sleep some more if necessary\n                for _ in range(20):\n                    if store.orders.count_active_orders(self.exchange, self.symbol) == 0:\n                        break\n\n                    logger.info('sleeping 0.2 more seconds until cancellation is over...')\n                    sleep(0.2)\n\n                # If it's still not cancelled, something is wrong. Handle cancellation failure\n                if store.orders.count_active_orders(self.exchange, self.symbol) != 0:\n                    raise exceptions.ExchangeNotResponding(\n                        'The exchange did not respond as expected for order cancellation'\n                    )\n\n        # update position\n        if self.position.is_open:\n            self._update_position()\n\n            # sleep for 1 second if a MARKET order has been submitted but not executed yet (live trading only)\n            if jh.is_livetrading():\n                waiting_counter = 0\n                waiting_seconds = 1\n                while self._have_any_pending_market_exit_orders():\n                    if jh.is_debugging():\n                        logger.info(f'Waiting {waiting_seconds} second for pending market exit orders to be handled...')\n                    waiting_counter += 1\n                    if waiting_counter > 22:\n                        raise exceptions.ExchangeNotResponding(\n                            'The exchange did not respond as expected for order execution'\n                        )\n                    else:\n                        sleep(1)\n\n        self._simulate_market_order_execution()\n\n        # should_long and should_short\n        if self.position.is_close and self.entry_orders == []:\n            self._reset()\n\n            should_short = self.should_short()\n            # validate that should_short is not True if the exchange_type is spot\n            if self.exchange_type == 'spot' and should_short:\n                raise exceptions.InvalidStrategy(\n                    'should_short cannot be True if the exchange type is \"spot\".'\n                )\n\n            should_long = self.should_long()\n\n            # should_short and should_long cannot be True at the same time\n            if should_short and should_long:\n                raise exceptions.ConflictingRules(\n                    'should_short and should_long should not be true at the same time.'\n                )\n\n            if should_long:\n                self._execute_long()\n            elif should_short:\n                self._execute_short()\n\n    def _have_any_pending_market_exit_orders(self) -> bool:\n        return any(o.is_active and o.type == order_types.MARKET for o in self.exit_orders)\n\n    @staticmethod\n    def _simulate_market_order_execution() -> None:\n        \"\"\"\n        Simulate market order execution in backtest mode\n        \"\"\"\n        if jh.is_backtesting() or jh.is_unit_testing() or jh.is_paper_trading():\n            if not store.orders.to_execute:\n                return\n\n            for o in store.orders.to_execute:\n                order_service.execute_order(o)\n                \n                # Update order in database for paper trading\n                if jh.is_paper_trading():\n                    order_repository.store_or_update(o)\n\n            store.orders.to_execute = []\n\n    def _on_open_position(self, order: Order) -> None:\n        self.increased_count = 1\n\n        self._broadcast('route-open-position')\n\n        if self.stop_loss is not None:\n            for o in self._stop_loss:\n                # validation: make sure stop-loss will exit with profit, if not, close the position\n                if self.is_long and o[1] >= self.position.entry_price:\n                    submitted_order: Order = self.broker.sell_at_market(o[0])\n                    logger.info(\n                        'The stop-loss is above entry-price for long position, so it will be replaced with a market order instead')\n                elif self.is_short and o[1] <= self.position.entry_price:\n                    submitted_order: Order = self.broker.buy_at_market(o[0])\n                    logger.info(\n                        'The stop-loss is below entry-price for a short position, so it will be replaced with a market order instead')\n                else:\n                    submitted_order: Order = self.broker.reduce_position_at(o[0], o[1], self.price)\n\n                if submitted_order:\n                    submitted_order.submitted_via = order_submitted_via.STOP_LOSS\n\n        if self.take_profit is not None:\n            for o in self._take_profit:\n                # validation: make sure take-profit will exit with profit, if not, close the position\n                if self.is_long and o[1] <= self.position.entry_price:\n                    submitted_order: Order = self.broker.sell_at_market(o[0])\n                    logger.info(\n                        'The take-profit is below entry-price for long position, so it will be replaced with a market order instead')\n                elif self.is_short and o[1] >= self.position.entry_price:\n                    submitted_order: Order = self.broker.buy_at_market(o[0])\n                    logger.info(\n                        'The take-profit is above entry-price for a short position, so it will be replaced with a market order instead')\n                else:\n                    submitted_order: Order = self.broker.reduce_position_at(o[0], o[1], self.price)\n\n                if submitted_order:\n                    submitted_order.submitted_via = order_submitted_via.TAKE_PROFIT\n\n        self.on_open_position(order)\n        self._detect_and_handle_entry_and_exit_modifications()\n\n    def on_open_position(self, order) -> None:\n        \"\"\"\n        What should happen after the open position order has been executed\n        \"\"\"\n        pass\n\n    def on_close_position(self, order: Order, closed_trade: ClosedTrade) -> None:\n        \"\"\"\n        What should happen after the close position order has been executed. The closed_trade is trade that has been closed.\n\n        Arguments:\n            order: Order -- the order that has been executed\n            closed_trade: ClosedTrade -- the trade that has been closed\n        \"\"\"\n        pass\n\n    def _on_close_position(self, order: Order) -> None:\n        self.last_trade_index = self.index\n        \n        # get the last closed trade\n        closed_trade = store.closed_trades.trades[-1]\n\n        self._broadcast('route-close-position')\n        self._execute_cancel()\n\n        # call the on_close_position event\n        self.on_close_position(order, closed_trade)\n\n        self._detect_and_handle_entry_and_exit_modifications()\n\n    def _on_increased_position(self, order: Order) -> None:\n        self.increased_count += 1\n\n        self._broadcast('route-increased-position')\n\n        self.on_increased_position(order)\n\n        self._detect_and_handle_entry_and_exit_modifications()\n\n    def on_increased_position(self, order) -> None:\n        \"\"\"\n        What should happen after the order (if any) increasing the\n        size of the position is executed. Overwrite it if needed.\n        And leave it be if your strategy doesn't require it\n        \"\"\"\n        pass\n\n    def _on_reduced_position(self, order: Order) -> None:\n        \"\"\"\n        prepares for on_reduced_position() is implemented by user\n        \"\"\"\n        self.reduced_count += 1\n\n        self._broadcast('route-reduced-position')\n\n        self.on_reduced_position(order)\n\n        self._detect_and_handle_entry_and_exit_modifications()\n\n    def on_reduced_position(self, order) -> None:\n        \"\"\"\n        What should happen after the order (if any) reducing the size of the position is executed.\n        \"\"\"\n        pass\n\n    def on_route_open_position(self, strategy) -> None:\n        \"\"\"used when trading multiple routes that related\n\n        Arguments:\n            strategy {Strategy} -- the strategy that has fired (and not listening to) the event\n        \"\"\"\n        pass\n\n    def on_route_close_position(self, strategy) -> None:\n        \"\"\"used when trading multiple routes that related\n\n        Arguments:\n            strategy {Strategy} -- the strategy that has fired (and not listening to) the event\n        \"\"\"\n        pass\n\n    def on_route_increased_position(self, strategy) -> None:\n        \"\"\"used when trading multiple routes that related\n\n        Arguments:\n            strategy {Strategy} -- the strategy that has fired (and not listening to) the event\n        \"\"\"\n        pass\n\n    def on_route_reduced_position(self, strategy) -> None:\n        \"\"\"used when trading multiple routes that related\n\n        Arguments:\n            strategy {Strategy} -- the strategy that has fired (and not listening to) the event\n        \"\"\"\n        pass\n\n    def on_route_canceled(self, strategy) -> None:\n        \"\"\"used when trading multiple routes that related\n\n        Arguments:\n            strategy {Strategy} -- the strategy that has fired (and not listening to) the event\n        \"\"\"\n        pass\n\n    def _execute(self) -> None:\n        \"\"\"\n        Handles the execution permission for the strategy.\n        \"\"\"\n        # make sure we don't execute this strategy more than once at the same time.\n        if self._is_executing:\n            return\n\n        self._is_executing = True\n        \n        # Cache the current price at the start of execution\n        self._cached_price = self.close\n        \n        self.before()\n        self._check()\n        self.after()\n        self._clear_cached_methods()\n\n        # Clear the cached price\n        self._cached_price = None\n        self._is_executing = False\n        self.index += 1\n\n    def _terminate(self) -> None:\n        \"\"\"\n        Optional for executing code after completion of a backTest.\n        This block will not execute in live use as a live\n        Jesse is never ending.\n        \"\"\"\n        if not jh.should_execute_silently() or jh.is_debugging():\n            logger.info(f\"Terminating {self.symbol}...\")\n\n        self.before_terminate()\n\n        self._detect_and_handle_entry_and_exit_modifications()\n\n        # fake execution of market orders in backtest simulation\n        if not jh.is_live():\n            if store.orders.to_execute:\n                for o in store.orders.to_execute:\n                    order_service.execute_order(o)\n                store.orders.to_execute = []\n\n        if jh.is_live():\n            self.terminate()\n            return\n\n        if self.position.is_open:\n            store.app.total_open_trades += 1\n            store.app.total_open_pl += self.position.pnl\n            logger.info(\n                f\"Closed open {self.exchange}-{self.symbol} position at {self.position.current_price} with PNL: {round(self.position.pnl, 4)}({round(self.position.pnl_percentage, 2)}%) because we reached the end of the backtest session.\"\n            )\n            # first cancel all active orders so the balances would go back to the original state\n            if self.exchange_type == 'spot':\n                self.broker.cancel_all_orders()\n            # fake a closing (market) order so that the calculations would be correct\n            self.broker.reduce_position_at(self.position.qty, self.position.current_price, self.price)\n            self.terminate()\n            return\n\n        if len(self.entry_orders):\n            self._execute_cancel()\n            logger.info('Canceled open-position orders because we reached the end of the backtest session.')\n\n        self.terminate()\n\n    def before_terminate(self):\n        pass\n\n    def terminate(self):\n        pass\n\n    def watch_list(self) -> list:\n        \"\"\"\n        returns an array containing an array of key-value items that should\n        be logged when backTested, and monitored while liveTraded\n\n        Returns:\n            [array[{\"key\": v, \"value\": v}]] -- an array of dictionary objects\n        \"\"\"\n        return []\n\n    def _clear_cached_methods(self) -> None:\n        for m in self._cached_methods.values():\n            m.cache_clear()\n\n    @property\n    def current_candle(self) -> np.ndarray:\n        \"\"\"\n        Returns current trading candle\n\n        :return: np.ndarray\n        \"\"\"\n        return candle_service.get_current_candle(self.exchange, self.symbol, self.timeframe).copy()\n\n    @property\n    def open(self) -> float:\n        \"\"\"\n        Returns the opening price of the current candle for this strategy.\n        Just as a helper to use when writing super simple strategies.\n        Returns:\n            [float] -- the current trading candle's OPEN price\n        \"\"\"\n        return self.current_candle[1]\n\n    @property\n    def close(self) -> float:\n        \"\"\"\n        Returns the closing price of the current candle for this strategy.\n        Just as a helper to use when writing super simple strategies.\n        Returns:\n            [float] -- the current trading candle's CLOSE price\n        \"\"\"\n        return self.current_candle[2]\n\n    @property\n    def price(self) -> float:\n        \"\"\"\n        Same as self.close, except in livetrade, this is rounded as the exchanges require it.\n        During strategy execution cycles, returns cached price to ensure consistency.\n\n        Returns:\n            [float] -- the current trading candle's current(close) price\n        \"\"\"\n        # Return cached price if we're executing\n        if self._is_executing and self._cached_price is not None:\n            return self._cached_price\n            \n        return self.close\n\n    @property\n    def high(self) -> float:\n        \"\"\"\n        Returns the highest price of the current candle for this strategy.\n        Just as a helper to use when writing super simple strategies.\n        Returns:\n            [float] -- the current trading candle's HIGH price\n        \"\"\"\n        return self.current_candle[3]\n\n    @property\n    def low(self) -> float:\n        \"\"\"\n        Returns the lowest price of the current candle for this strategy.\n        Just as a helper to use when writing super simple strategies.\n        Returns:\n            [float] -- the current trading candle's LOW price\n        \"\"\"\n        return self.current_candle[4]\n    \n    @property\n    def volume(self) -> float:\n        \"\"\"\n        Returns the volume of the current candle for this strategy.\n        Just as a helper to use when writing super simple strategies.\n        Returns:\n           [float] -- the volume of the current candle\n        \"\"\"\n        return self.current_candle[5]\n\n    @property\n    def candles(self) -> np.ndarray:\n        \"\"\"\n        Returns candles for current trading route\n\n        :return: np.ndarray\n        \"\"\"\n        return candle_service.get_candles(self.exchange, self.symbol, self.timeframe)\n\n    def get_candles(self, exchange: str, symbol: str, timeframe: str) -> np.ndarray:\n        \"\"\"\n        Get candles by passing exchange, symbol, and timeframe\n\n        :param exchange: str\n        :param symbol: str\n        :param timeframe: str\n\n        :return: np.ndarray\n        \"\"\"\n        return candle_service.get_candles(exchange, symbol, timeframe)\n\n    @property\n    def metrics(self) -> dict:\n        \"\"\"\n        Returns all the metrics of the strategy.\n        \"\"\"\n        if self.trades_count not in self._cached_metrics:\n            self._cached_metrics[self.trades_count] = metrics.trades(\n                store.closed_trades.trades, store.app.daily_balance, final=False\n            )\n        return self._cached_metrics[self.trades_count]\n\n    @property\n    def time(self) -> int:\n        \"\"\"returns the current time\"\"\"\n        return store.app.time\n\n    @property\n    def balance(self) -> float:\n        \"\"\"the current capital in the trading exchange\"\"\"\n        return self.position.exchange.wallet_balance\n\n    @property\n    def capital(self) -> float:\n        raise NotImplementedError('The alias \"self.capital\" has been removed. Please use \"self.balance\" instead.')\n\n    @property\n    def available_margin(self) -> float:\n        \"\"\"Current available margin considering leverage\"\"\"\n        return self.position.exchange.available_margin\n\n    @property\n    def leveraged_available_margin(self) -> float:\n        \"\"\"Current available margin considering leverage\"\"\"\n        return self.leverage * self.available_margin\n\n    @property\n    def fee_rate(self) -> float:\n        return store.exchanges.get_exchange(self.exchange).fee_rate\n\n    @property\n    def is_long(self) -> bool:\n        return self.position.type == 'long'\n\n    @property\n    def is_short(self) -> bool:\n        return self.position.type == 'short'\n\n    @property\n    def is_open(self) -> bool:\n        return self.position.is_open\n\n    @property\n    def is_close(self) -> bool:\n        return self.position.is_close\n\n    @property\n    def average_stop_loss(self) -> float:\n        if self._stop_loss is None:\n            raise exceptions.InvalidStrategy('You cannot access self.average_stop_loss before setting self.stop_loss')\n\n        arr = self._stop_loss\n        return (np.abs(arr[:, 0] * arr[:, 1])).sum() / np.abs(arr[:, 0]).sum()\n\n    @property\n    def average_take_profit(self) -> float:\n        if self._take_profit is None:\n            raise exceptions.InvalidStrategy(\n                'You cannot access self.average_take_profit before setting self.take_profit')\n\n        arr = self._take_profit\n        return (np.abs(arr[:, 0] * arr[:, 1])).sum() / np.abs(arr[:, 0]).sum()\n\n    def _get_formatted_order(self, var, round_for_live_mode=True) -> Union[list, np.ndarray]:\n        if type(var) is np.ndarray:\n            return var\n\n        # just to make sure we also support None\n        if var is None or var == []:\n            return []\n\n        # create a copy in the placeholders variables so we can detect future modifications\n        # also, make it list of orders even if there's only one, to make it easier to loop\n        if type(var[0]) not in [list, tuple]:\n            var = [var]\n\n        # create numpy array from list\n        arr = np.array(var, dtype=float)\n\n        # validate that the price (second column) is not less or equal to zero\n        if arr[:, 1].min() <= 0:\n            raise exceptions.InvalidStrategy(f'Order price must be greater than zero: \\nSubmitted order: {var}\\nCurrent price: {self.price}\\nCurrent time: {jh.timestamp_to_time(self.time)}')\n\n        if jh.is_livetrading() and round_for_live_mode:\n            # in livetrade mode, we'll need them rounded\n            current_exchange = store.exchanges.get_exchange(self.exchange)\n\n            # skip rounding if the exchange doesn't have values for 'precisions'\n            if 'precisions' not in current_exchange.vars:\n                return arr\n\n            price_precision = current_exchange.vars['precisions'][self.symbol]['price_precision']\n            qty_precision = current_exchange.vars['precisions'][self.symbol]['qty_precision']\n\n            prices = jh.round_price_for_live_mode(arr[:, 1], price_precision)\n            qtys = jh.round_qty_for_live_mode(arr[:, 0], qty_precision)\n\n            arr[:, 0] = qtys\n            arr[:, 1] = prices\n\n        return arr\n\n    @property\n    def average_entry_price(self) -> float:\n        if self.is_long:\n            arr = self._buy\n        elif self.is_short:\n            arr = self._sell\n        elif self.has_long_entry_orders:\n            arr = self._get_formatted_order(self.buy)\n        elif self.has_short_entry_orders:\n            arr = self._get_formatted_order(self.sell)\n        else:\n            return None\n\n        # if type of arr is not np.ndarray, then it's not ready yet. Return None\n        if type(arr) is not np.ndarray:\n            arr = None\n\n        if arr is None and self.position.is_open:\n            return self.position.entry_price\n        elif arr is None:\n            return None\n\n        return (np.abs(arr[:, 0] * arr[:, 1])).sum() / np.abs(arr[:, 0]).sum()\n\n    @property\n    def has_long_entry_orders(self) -> bool:\n        # if no order has been submitted yet, but self.buy is not None, then we are calling\n        # this property inside a filter.\n        if self.entry_orders == [] and self.buy is not None:\n            return True\n\n        return self.entry_orders != [] and self.entry_orders[0].side == 'buy'\n\n    @property\n    def has_short_entry_orders(self) -> bool:\n        # if no order has been submitted yet, but self.sell is not None, then we are calling\n        # this property inside a filter.\n        if self.entry_orders == [] and self.sell is not None:\n            return True\n        return self.entry_orders != [] and self.entry_orders[0].side == 'sell'\n\n    def liquidate(self) -> None:\n        \"\"\"\n        closes open position with a MARKET order\n        \"\"\"\n        if self.position.is_close:\n            return\n\n        if self.position.pnl > 0:\n            self.take_profit = self.position.qty, self.price\n        else:\n            self.stop_loss = self.position.qty, self.price\n\n    @property\n    def shared_vars(self) -> dict:\n        return store.vars\n\n    @property\n    def routes(self) -> List[Route]:\n        from jesse.routes import router\n        return router.routes\n    \n    @property\n    def data_routes(self) -> List[Route]:\n        from jesse.routes import router\n        return router.data_routes\n\n    @property\n    def current_route_index(self) -> int:\n        if self._current_route_index is None:\n            for i, r in enumerate(self.routes):\n                if r.exchange == self.exchange and r.symbol == self.symbol and r.timeframe == self.timeframe:\n                    self._current_route_index = i\n                    break\n            else:\n                self._current_route_index = -1\n        return self._current_route_index\n\n    @property\n    def leverage(self) -> int:\n        if type(self.position.exchange) is SpotExchange:\n            return 1\n        elif type(self.position.exchange) is FuturesExchange:\n            return self.position.exchange.futures_leverage\n        else:\n            raise ValueError(f'exchange type not supported: \"{self.position.exchange}\"')\n\n    @property\n    def mark_price(self) -> float:\n        return self.position.mark_price\n\n    @property\n    def funding_rate(self) -> float:\n        return self.position.funding_rate\n\n    @property\n    def next_funding_timestamp(self) -> int:\n        return self.position.next_funding_timestamp\n\n    @property\n    def liquidation_price(self) -> float:\n        return self.position.liquidation_price\n\n    @staticmethod\n    def log(msg: str, log_type: str = 'info', send_notification: bool = False, webhook: str = None) -> None:\n        msg = str(msg)\n\n        if log_type == 'info':\n            logger.info(msg, send_notification=jh.is_live() and send_notification, webhook=webhook)\n        elif log_type == 'error':\n            logger.error(msg, send_notification=jh.is_live() and send_notification)\n        else:\n            raise ValueError(f'log_type should be either \"info\" or \"error\". You passed {log_type}')\n\n    @property\n    def all_positions(self) -> Dict[str, Position]:\n        positions_dict = {}\n        for r in self.routes:\n            positions_dict[r.symbol] = r.strategy.position\n        return positions_dict\n\n    @property\n    def portfolio_value(self) -> float:\n        total_position_values = 0\n\n        # in spot mode, self.balance does not include open order's value, so:\n        if self.is_spot_trading:\n            # Add value of active entry orders\n            entry_orders_value = 0\n            for o in self.entry_orders:\n                if o.is_active:\n                    entry_orders_value += o.value\n\n            # Add value of all positions\n            positions_value = 0\n            for key, p in self.all_positions.items():\n                positions_value += p.value\n\n            total_position_values = entry_orders_value + positions_value\n\n        # in futures mode, it's simpler:\n        elif self.is_futures_trading:\n            for key, p in self.all_positions.items():\n                total_position_values += p.pnl\n\n        return (total_position_values * self.leverage) + self.balance\n\n    @property\n    def trades(self) -> List[ClosedTrade]:\n        \"\"\"\n        Returns all the closed trades for this strategy.\n        \"\"\"\n        return store.closed_trades.trades\n\n    @property\n    def orders(self) -> List[Order]:\n        \"\"\"\n        Returns all the orders submitted by for this strategy.\n        \"\"\"\n        return store.orders.get_orders(self.exchange, self.symbol)\n\n    @property\n    def entry_orders(self):\n        \"\"\"\n        Returns all the entry orders for this position.\n        \"\"\"\n        return order_service.get_entry_orders(self.exchange, self.symbol)\n\n    @property\n    def exit_orders(self):\n        \"\"\"\n        Returns all the exit orders for this position.\n        \"\"\"\n        return order_service.get_exit_orders(self.exchange, self.symbol)\n\n    @property\n    def active_exit_orders(self):\n        \"\"\"\n        Returns all the exit orders for this position.\n        \"\"\"\n        return order_service.get_active_exit_orders(self.exchange, self.symbol)\n\n    @property\n    def exchange_type(self):\n        return store.exchanges.get_exchange(self.exchange).type\n\n    @property\n    def is_spot_trading(self) -> bool:\n        return self.exchange_type == 'spot'\n\n    @property\n    def is_futures_trading(self) -> bool:\n        return self.exchange_type == 'futures'\n\n    @property\n    def daily_balances(self):\n        return store.app.daily_balance\n\n    @property\n    def is_backtesting(self) -> bool:\n        return jh.is_backtesting()\n\n    @property\n    def is_livetrading(self) -> bool:\n        return jh.is_livetrading()\n\n    @property\n    def is_papertrading(self) -> bool:\n        return jh.is_paper_trading()\n\n    @property\n    def is_live(self) -> bool:\n        return jh.is_live()\n\n    @property\n    def min_qty(self) -> float:\n        if not jh.is_live():\n            raise ValueError('self.min_qty is only available in live modes')\n\n        try:\n            return store.exchanges.get_exchange(self.exchange).vars['precisions'][self.symbol]['min_qty']\n        except KeyError:\n            return None\n"
  },
  {
    "path": "jesse/strategies/Test01/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_should_buy_and_execute_buy\nclass Test01(Strategy):\n    def should_long(self) -> bool:\n        return self.index == 0\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        qty = 1\n        self.buy = qty, self.price\n        self.stop_loss = qty, self.price - 10\n        self.take_profit = qty, self.price + 10\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def filters(self):\n        return []\n"
  },
  {
    "path": "jesse/strategies/Test02/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_should_sell_and_execute_sell\nclass Test02(Strategy):\n    def should_long(self):\n        return False\n\n    def should_short(self):\n        # sell on market at first candle, and sell on the third candle\n        return len(self.candles) == 1\n\n    def go_long(self):\n        pass\n\n    def go_short(self):\n        qty = 1\n        self.sell = qty, self.price\n        self.stop_loss = qty, self.price + 10\n        self.take_profit = qty, self.price - 10\n\n    def should_cancel_entry(self):\n        return False\n\n    def filters(self):\n        return []\n"
  },
  {
    "path": "jesse/strategies/Test04/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_conflicting_orders\nclass Test04(Strategy):\n    def should_long(self):\n        return self.index == 0\n\n    def should_short(self):\n        return False\n\n    def go_long(self):\n        # print(self.open, self.close, self.high, self.low)\n        # 0.5, 1.0, 1.0, 0.5\n\n        qty = 2\n        # current_price: 1\n        # entry: 1.1\n        entry = 1.1\n        # stop_loss: 1.0\n        # take_profit: 1.2\n        self.buy = [\n            (1, round(entry, 2)),\n            (1, round(entry + 0.01, 2)),\n            # (1, round(entry + 0.015, 2))\n        ]\n        # this one should not get executed at all\n        self.stop_loss = qty, entry - 0.1\n        self.take_profit = [\n            (1, round(entry + 0.1, 2)),\n            (1, round(entry + 0.2, 2))\n        ]\n\n        # the candle when the open_position order gets hit:\n        # 1, 2, 2, 1\n\n        # what SHOULD happen in the next candle:\n        # the current price should be 1.1 instead of 2. hence a candle open-close = 1-1.1\n        # loop:\n        # then we create a temp candle open-close = 1.1-(next_order_price else 2)\n        # next (increasing) order will get executed next, then take_profit\n        # when this is all over, we then add(update) the candle we had in the first place which is 1, 2, 2, 1\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def filters(self):\n        return []\n"
  },
  {
    "path": "jesse/strategies/Test05/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\n\n\n# test_is_smart_enough_to_open_positions_via_market_orders\nclass Test05(Strategy):\n    def update(self):\n        pass\n\n    def should_long(self):\n        return self.time == 1547201100000 + 60_000\n\n    def should_short(self):\n        return self.time == 1547203560000 + 60_000\n\n    def go_long(self):\n        qty = 10.204\n        self.buy = qty, self.price\n        self.stop_loss = qty, 128.35\n        self.take_profit = qty, 131.29\n\n    def go_short(self):\n        qty = 10\n        self.sell = qty, self.price\n        self.stop_loss = qty, 129.52\n        self.take_profit = qty, 126.58\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/Test06/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_is_smart_enough_to_open_positions_via_stop_orders\nclass Test06(Strategy):\n    def should_long(self):\n        \"\"\"A failing trade that gets closed with the stopLoss order.\"\"\"\n        return self.time == 1547200740000 + 60_000\n\n    def should_short(self):\n        \"\"\"\n        A winning trade that is closed with the takeProfit order.\n        notice that in this trade is very short-lived. In fact, it's\n        opened and closed inside the very same 5m candle.\n        Notice that this is even done via a STOP order\n        thanks to Jesse's ability to trade on forming-candles.\n        \"\"\"\n        return self.time == 1547203500000 + 60_000\n\n    def go_long(self):\n        qty = 10.204\n        self.buy = qty, 129.33\n        self.stop_loss = qty, 128.35\n        self.take_profit = qty, 131.29\n\n    def go_short(self):\n        qty = 10\n        self.sell = qty, 128.05\n        self.stop_loss = qty, 129.52\n        self.take_profit = qty, 126.58\n\n    def should_cancel_entry(self):\n        return False\n\n    def filters(self):\n        return []\n"
  },
  {
    "path": "jesse/strategies/Test07/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_updating_stop_loss_and_take_profit_after_opening_the_position\nclass Test07(Strategy):\n    def should_long(self):\n        return self.time == 1547201100000 + 60_000\n\n    def go_long(self):\n        qty = 10.204\n\n        self.buy = qty, self.price\n        self.stop_loss = qty, 128.35\n        self.take_profit = qty, 131.29\n\n    def should_short(self):\n        return self.time == 1547203560000 + 60_000\n\n    def go_short(self):\n        qty = 10\n\n        self.sell = qty, self.price\n        self.stop_loss = qty, 129.52\n        self.take_profit = qty, 126.58\n\n    def should_cancel_entry(self):\n        return False\n\n    def filters(self):\n        return []\n\n    def update_position(self):\n        # early take-profit for short trade\n        if self.time == 1547203680000 + 60_000:\n            self.take_profit = self.position.qty, 127.66\n\n        # early stop-loss for long trade\n        if self.time == 1547201700000 + 60_000:\n            self.stop_loss = self.position.qty, 128.98\n"
  },
  {
    "path": "jesse/strategies/Test08/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_stats_for_a_strategy_without_losing_trades\nclass Test08(Strategy):\n    def should_long(self):\n        return False\n\n    def should_short(self):\n        \"\"\"\n        A winning trade that is closed with the takeProfit order.\n        notice that in this trade is very short-lived. In fact, it's\n        opened and closed inside the very same 5m candle.\n        Notice that this is even done via a STOP order\n        thanks to Jesse's ability to trade on forming-candles.\n        \"\"\"\n        return self.time == 1547203500000 + 60_000\n\n    def go_long(self):\n        qty = 10.2041\n\n        self.buy = qty, 129.33\n        self.stop_loss = 128.35\n        self.take_profit = 131.29\n\n    def go_short(self):\n        qty = 10\n\n        self.sell = qty, 128.05\n        self.stop_loss = qty, 129.52\n        self.take_profit = qty, 126.58\n\n    def should_cancel_entry(self):\n        return False\n\n    def filters(self):\n        return []\n"
  },
  {
    "path": "jesse/strategies/Test09/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_stats_for_a_strategy_without_any_trades\nclass Test09(Strategy):\n    def should_long(self):\n        return False\n\n    def should_short(self):\n        return False\n\n    def go_long(self):\n        pass\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def filters(self):\n        return []\n"
  },
  {
    "path": "jesse/strategies/Test10/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_taking_profit_at_multiple_points\nclass Test10(Strategy):\n    def should_long(self):\n        return self.price < 7\n\n    def should_short(self):\n        return False\n\n    def go_long(self):\n        qty = 1.5\n        self.buy = qty, 7\n        self.stop_loss = qty, 5\n        self.take_profit = [\n            (0.5, 11),\n            (0.5, 13),\n            (0.5, 15)\n        ]\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def filters(self):\n        return []\n"
  },
  {
    "path": "jesse/strategies/Test11/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_stop_loss_at_multiple_points\nclass Test11(Strategy):\n    def should_long(self):\n        return False\n\n    def should_short(self):\n        return self.index == 0\n\n    def go_long(self):\n        pass\n\n    def go_short(self):\n        qty = 1.5\n        self.sell = qty, 3\n        self.stop_loss = [\n            (0.5, 6),\n            (0.5, 5),\n            (0.5, 4)\n        ]\n        self.take_profit = qty, 1\n\n    def should_cancel_entry(self):\n        return False\n\n    def filters(self):\n        return []\n"
  },
  {
    "path": "jesse/strategies/Test12/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_modifying_take_profit_after_opening_position\nclass Test12(Strategy):\n    def should_long(self):\n        return self.price < 7\n\n    def should_short(self):\n        return False\n\n    def go_long(self):\n        qty = 1.5\n        self.buy = qty, 7\n        self.stop_loss = qty, 5\n        self.take_profit = [\n            (0.5, 11),\n            (0.5, 13),\n            (0.5, 15)\n        ]\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def filters(self):\n        return []\n\n    def update_position(self):\n        if self.price == 10:\n            self.take_profit = self.position.qty, 16\n"
  },
  {
    "path": "jesse/strategies/Test13/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_modifying_take_profit_after_part_of_position_is_already_reduced_with_profit\nclass Test13(Strategy):\n    def should_long(self):\n        return self.price < 7\n\n    def should_short(self):\n        return False\n\n    def go_long(self):\n        qty = 1.5\n        self.buy = qty, 7\n        self.stop_loss = qty, 5\n        self.take_profit = [\n            (0.5, 11),\n            (0.5, 13),\n            (0.5, 15)\n        ]\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def filters(self):\n        return []\n\n    def update_position(self):\n        if self.reduced_count > 0:\n            self.take_profit = self.position.qty, 16\n"
  },
  {
    "path": "jesse/strategies/Test14/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_modifying_stop_loss_after_part_of_position_is_already_reduced_with_stop_loss\nclass Test14(Strategy):\n    def should_long(self):\n        return self.price < 7\n\n    def should_short(self):\n        return False\n\n    def go_long(self):\n        qty = 1.5\n        self.buy = qty, 7\n        self.stop_loss = [\n            (0.5, 6),\n            (0.5, 5),\n            (0.5, 4)\n        ]\n        self.take_profit = qty, 13\n\n    def update_position(self):\n        if self.reduced_count > 0:\n            self.stop_loss = self.position.qty, 4\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def filters(self):\n        return []\n"
  },
  {
    "path": "jesse/strategies/Test15/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_opening_position_in_multiple_points\nclass Test15(Strategy):\n    def should_long(self):\n        return self.price < 7\n\n    def should_short(self):\n        return False\n\n    def go_long(self):\n        self.buy = [\n            (.5, 7),\n            (.5, 9),\n            (.5, 11),\n        ]\n        self.stop_loss = 1.5, 5\n        self.take_profit = 1.5, 15\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def filters(self):\n        return []\n"
  },
  {
    "path": "jesse/strategies/Test16/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_increasing_position_size_after_opening\nclass Test16(Strategy):\n    def should_long(self):\n        return self.price < 7\n\n    def go_long(self):\n        qty = 1\n\n        self.buy = qty, 7\n        self.stop_loss = qty, 5\n        self.take_profit = qty, 15\n\n    def update_position(self):\n        # buy 1 more at current price\n        if self.price == 10:\n            self.buy = 1, 10\n            self.take_profit = 2, 15\n            self.stop_loss = 2, 5\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def filters(self):\n        return []\n\n    def should_short(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/Test17/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_reducing_position_size_after_opening\nclass Test17(Strategy):\n    def should_long(self):\n        return self.price < 7\n\n    def go_long(self):\n        qty = 2\n\n        self.buy = qty, 7\n        self.stop_loss = qty, 5\n        self.take_profit = qty, 15\n\n    def update_position(self):\n        # reduce the size of position for 1 at current price\n        if self.price == 10:\n            # should work even without resetting take_profit and stop_loss\n            self.take_profit = [\n                (1, self.price),\n                (1, 15)\n            ]\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def filters(self):\n        return []\n\n    def should_short(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/Test18/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_on_reduced_position\nclass Test18(Strategy):\n    def should_long(self):\n        return self.price < 7\n\n    def go_long(self):\n        qty = 2\n\n        self.buy = qty, 7\n        self.stop_loss = qty, 5\n        self.take_profit = [\n            (1, 15),\n            (1, 13)\n        ]\n\n    def on_reduced_position(self, order):\n        self.take_profit = abs(self.position.qty), self.price\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def filters(self):\n        return []\n\n    def should_short(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/Test19/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\nclass Test19(Strategy):\n    def should_long(self) -> bool:\n        return False\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        # qty = 1\n        # self.buy = qty, self.price\n        # self.take_profit = qty, self.price + .1\n        # self.stop_loss = qty, self.price - .1\n        pass\n\n    def go_short(self):\n        # qty = 1\n        # self.buy = qty, self.price\n        # self.take_profit = qty, self.price + .1\n        # self.stop_loss = qty, self.price - .1\n        pass\n\n    def should_cancel_entry(self) -> bool:\n        return False\n"
  },
  {
    "path": "jesse/strategies/Test20/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_conflicting_orders_2\nclass Test20(Strategy):\n    def should_long(self):\n        return self.index == 1\n\n    def should_short(self):\n        return False\n\n    def go_long(self):\n        # self.price: 2\n        qty = 1\n\n        self.buy = qty, self.price + .5\n        self.stop_loss = qty, self.price + .4\n        self.take_profit = qty, self.price + .6\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def filters(self):\n        return []\n"
  },
  {
    "path": "jesse/strategies/Test21/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_on_route_open_position part 1 - BTC-USD\nclass Test21(Strategy):\n    def should_long(self):\n        # buy on market at first candle, close when on_route_open_position event is fired\n        return self.index == 0\n\n    def should_short(self):\n        return False\n\n    def go_long(self):\n        qty = 1\n        self.buy = qty, self.price\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def on_route_open_position(self, strategy):\n        self.take_profit = 1, self.price\n"
  },
  {
    "path": "jesse/strategies/Test22/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_on_route_open_position part 2 - ETH-USD\nclass Test22(Strategy):\n    def should_long(self):\n        return self.price == 10\n\n    def should_short(self):\n        return False\n\n    def go_long(self):\n        self.buy = 1, self.price\n        self.take_profit = 1, 20\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/Test23/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_on_route_close_position part 1 - BTC-USD\nclass Test23(Strategy):\n    def should_long(self):\n        # buy on market at first candle, close when on_route_take_profit event is fired\n        return self.index == 0\n\n    def should_short(self):\n        return False\n\n    def go_long(self):\n        qty = 1\n        self.buy = qty, self.price\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def on_route_close_position(self, strategy) -> None:\n        self.take_profit = 1, self.price\n"
  },
  {
    "path": "jesse/strategies/Test24/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_on_route_close_position part 2 - ETH-USD\nclass Test24(Strategy):\n    def should_long(self):\n        return self.price == 10\n\n    def should_short(self):\n        return False\n\n    def go_long(self):\n        self.buy = 1, self.price\n        self.take_profit = 1, 20\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/Test25/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_on_route_close_position part 1 - BTC-USD\nclass Test25(Strategy):\n    def should_long(self):\n        # buy on market at first candle, close when on_route_stop_loss event is fired\n        return self.index == 0\n\n    def should_short(self):\n        return False\n\n    def go_long(self):\n        qty = 1\n        self.buy = qty, self.price\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def on_route_close_position(self, strategy):\n        self.take_profit = 1, self.price\n"
  },
  {
    "path": "jesse/strategies/Test26/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_on_route_close_position part 2 - ETH-USD\nclass Test26(Strategy):\n    def should_long(self):\n        return False\n\n    def should_short(self):\n        return self.price == 10\n\n    def go_long(self):\n        pass\n\n    def go_short(self):\n        self.sell = 1, self.price\n        self.stop_loss = 1, 20\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/Test27/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_on_route_canceled part 1 - BTC-USD\nclass Test27(Strategy):\n    def should_long(self):\n        # buy on market at first candle, close when on_route_stop_loss event is fired\n        return self.index == 0\n\n    def should_short(self):\n        return False\n\n    def go_long(self):\n        qty = 1\n        self.buy = qty, self.price\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def on_route_canceled(self, strategy):\n        self.take_profit = 1, self.price\n"
  },
  {
    "path": "jesse/strategies/Test28/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_on_route_canceled part 2 - ETH-USD\nclass Test28(Strategy):\n    def should_long(self):\n        return self.price == 10\n\n    def should_short(self):\n        return False\n\n    def go_long(self):\n        # because we know the price is going up, this order will never get filled\n        self.buy = 1, self.price - 9\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return self.price == 20\n"
  },
  {
    "path": "jesse/strategies/Test29/__init__.py",
    "content": "from jesse.strategies import Strategy\nfrom jesse.models.Order import Order\nfrom jesse.models.ClosedTrade import ClosedTrade\n\n\n# test_on_route_increased_position_and_on_route_reduced_position_and_strategy_vars part 1 - BTC-USD\nclass Test29(Strategy):\n    def __init__(self) -> None:\n        super().__init__()\n\n        self.vars['should_short'] = False\n        self.vars['should_long'] = False\n\n    def should_long(self):\n        return self.vars['should_long']\n\n    def should_short(self):\n        return self.vars['should_short']\n\n    def go_long(self):\n        self.buy = 1, self.price\n        self.take_profit = 1, self.price + 10\n\n    def go_short(self):\n        self.sell = 1, self.price\n        self.stop_loss = 1, self.price + 10\n\n    def on_route_increased_position(self, strategy):\n        # setting it to True means we'll open a position on NEXT candle\n        self.vars['should_long'] = True\n\n    def on_route_reduced_position(self, strategy):\n        # setting it to True means we'll open a position on NEXT candle\n        self.vars['should_short'] = True\n\n    def should_cancel_entry(self):\n        return False\n\n    def on_close_position(self, order: Order, closed_trade: ClosedTrade):\n        self.vars['should_long'] = False\n        self.vars['should_short'] = False\n"
  },
  {
    "path": "jesse/strategies/Test30/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_on_route_increased_position_and_on_route_reduced_position_and_strategy_vars part 2 - ETH-USD\nclass Test30(Strategy):\n    def update_position(self):\n        # increase position size\n        if self.price == 20:\n            self.buy = 1, self.price\n\n        elif self.price == 50:\n            self.take_profit = 1, self.price\n\n        # close position with take_profit\n        if self.price == 70:\n            self.take_profit = self.position.qty, self.price\n\n    def should_long(self):\n        return self.price == 10\n\n    def should_short(self):\n        return False\n\n    def go_long(self):\n        self.buy = 1, self.price\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/Test31/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_liquidate\nclass Test31(Strategy):\n    def update_position(self):\n        # for long trade (first)\n        if self.index == 10:\n            self.liquidate()\n\n        # for short trade (second)\n        if self.index == 40:\n            self.liquidate()\n\n    def should_long(self):\n        return self.index == 0\n\n    def should_short(self):\n        return self.index == 20\n\n    def go_long(self):\n        self.buy = 1, self.price\n\n    def go_short(self):\n        self.sell = 1, self.price\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/Test32/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_shared_vars [part 1]\nclass Test32(Strategy):\n    def __init__(self) -> None:\n        super().__init__()\n\n        self.shared_vars['buy-eth'] = False\n\n    def before(self):\n        if self.index == 10:\n            self.shared_vars['buy-eth'] = True\n\n    def should_long(self):\n        return False\n\n    def should_short(self):\n        return False\n\n    def go_long(self):\n        pass\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/Test33/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_shared_vars [part 2]\nclass Test33(Strategy):\n    def should_long(self):\n        return self.trades_count == 0 and self.shared_vars['buy-eth'] is True\n\n    def should_short(self):\n        return False\n\n    def go_long(self):\n        self.buy = 1, self.price\n        self.take_profit = 1, self.price + 10\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/Test34/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_can_handle_multiple_entry_orders_too_close_to_each_other\nclass Test34(Strategy):\n    def should_long(self):\n        return self.index == 0\n\n    def should_short(self):\n        return False\n\n    def go_long(self):\n        entry = 1\n        self.buy = [\n            (1, entry + 0.1),\n            (1, entry + 0.2),\n            (1, entry + 0.3),\n            (1, entry + 0.4),\n        ]\n        self.stop_loss = 4, 0.4\n        self.take_profit = 4, 3\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def filters(self):\n        return []\n"
  },
  {
    "path": "jesse/strategies/Test35/__init__.py",
    "content": "# from jesse.strategies import Strategy\n#\n#\n# # test_can_handle_not_correctly_sorted_multiple_orders\n# class Test35(Strategy):\n#     def should_long(self):\n#         return self.index == 0\n#\n#     def should_short(self):\n#         return False\n#\n#     def go_long(self):\n#         entry = 1\n#         # like previous test, but entries are not sorted\n#         self.buy = [\n#             (1, entry + 0.1),\n#             (1, entry + 0.3),\n#             (1, entry + 0.2),\n#             (1, entry + 0.4),\n#         ]\n#         self.stop_loss = 4, 0.4\n#         self.take_profit = 4, 3\n#\n#     def go_short(self):\n#         pass\n#\n#     def should_cancel(self):\n#         return False\n#\n#     def filters(self):\n#         return []\n"
  },
  {
    "path": "jesse/strategies/Test36/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_average_take_profit_and_average_stop_loss\nclass Test36(Strategy):\n    def should_long(self):\n        # filter_1 will pass 0, but not 8\n        return self.index in [0, 8]\n\n    def should_short(self):\n        return self.index == 10\n\n    def go_long(self):\n        entry = self.price\n        self.buy = 2, entry\n        self.take_profit = [\n            (1, 3),\n            (1, 4),\n        ]\n\n    def go_short(self):\n        entry = self.price\n        self.sell = 2, entry\n        self.stop_loss = [\n            (1, 13),\n            (1, 14),\n        ]\n\n    def should_cancel_entry(self):\n        return True\n\n    def filters(self):\n        return [\n            self.filter_1\n        ]\n\n    def filter_1(self):\n        if self.index == 0 and self.average_take_profit == 3.5:\n            return True\n\n        if self.index == 10 and self.average_stop_loss == 13.5:\n            return True\n\n        return False\n"
  },
  {
    "path": "jesse/strategies/Test37/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_filters\nclass Test37(Strategy):\n    def before(self):\n        \"\"\"used it to do assertions\"\"\"\n        if self.index in [3, 11]:\n            assert self.take_profit is None\n            assert self.stop_loss is None\n\n    def should_long(self) -> bool:\n        return self.index == 0\n\n    def should_short(self) -> bool:\n        return self.index == 10\n\n    def go_long(self):\n        qty = 1\n        self.buy = qty, self.price\n        self.stop_loss = qty, self.price - .10\n\n    def go_short(self):\n        qty = 1\n        self.sell = qty, self.price\n        self.take_profit = qty, self.price + .10\n\n    def should_cancel_entry(self):\n        return False\n\n    def filters(self):\n        return [\n            self.filter_1\n        ]\n\n    def filter_1(self):\n        if self.index == 0:\n            return False\n\n        if self.index == 10:\n            return False\n\n        return True\n"
  },
  {
    "path": "jesse/strategies/Test38/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_average_take_profit_exception\nclass Test38(Strategy):\n    def should_long(self) -> bool:\n        return self.index == 0\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        qty = 1\n        self.buy = qty, 2\n        self.stop_loss = qty, 1\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def filters(self):\n        return [self.filter_1]\n\n    def filter_1(self):\n        # trying to access average_take_profit without setting it first\n        return self.average_take_profit > 1\n"
  },
  {
    "path": "jesse/strategies/Test39/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_average_stop_loss_exception\nclass Test39(Strategy):\n    def should_long(self) -> bool:\n        return self.index == 0\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        qty = 1\n        self.buy = qty, 2\n        self.take_profit = qty, 10\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def filters(self):\n        return [self.filter_1]\n\n    def filter_1(self):\n        # trying to access average_take_profit without setting it first\n        return self.average_stop_loss > 1\n"
  },
  {
    "path": "jesse/strategies/Test40/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_open_pl_and_total_open_trades\nclass Test40(Strategy):\n    def should_long(self) -> bool:\n        return self.index == 0\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        qty = 1\n        self.buy = qty, 2\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/Test41/__init__.py",
    "content": "from jesse.services import logger\nfrom jesse.strategies import Strategy\n\n\n# test_end\nclass Test41(Strategy):\n    def should_long(self) -> bool:\n        return self.index == 0\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        qty = 1\n        self.buy = qty, 2\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def before_terminate(self):\n        # log, so we can check this block was executed in the first place\n        logger.info('executed terminate successfully')\n\n        # assert open position\n        assert self.position.is_open\n        assert self.position.pnl == 97\n\n        # close it manually\n        self.liquidate()\n"
  },
  {
    "path": "jesse/strategies/Test44/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_inputs_get_rounded_behind_the_scene\nclass Test44(Strategy):\n    def should_long(self) -> bool:\n        return self.index == 2\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        self.buy = 1.54, 5.1234\n        self.take_profit = 1.54, 10.1234\n        self.stop_loss = 1.54, 1.1234\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/Test45/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_can_close_a_long_position_and_go_short_at_the_same_candle\nclass Test45(Strategy):\n    def should_long(self) -> bool:\n        return self.index == 10\n\n    def should_short(self) -> bool:\n        return self.index == 11\n\n    def go_long(self):\n        qty = 1\n        self.buy = qty, self.price\n\n    def go_short(self):\n        qty = 1\n        self.sell = qty, self.price\n        assert self.index == 11\n\n    def should_cancel_entry(self):\n        return False\n\n    def update_position(self):\n        if self.index == 11:\n            self.liquidate()\n"
  },
  {
    "path": "jesse/strategies/Test46/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_validation_for_equal_stop_loss_and_take_profit\nclass Test46(Strategy):\n    def should_long(self) -> bool:\n        return self.index == 0\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        self.buy = 1, 2\n\n    def update_position(self):\n        if self.index == 5:\n            self.stop_loss = 1, 3\n            self.take_profit = 1, 3\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/Test47/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_filter_readable_exception\nclass Test47(Strategy):\n    def should_long(self) -> bool:\n        return True\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        qty = 1\n        self.buy = qty, self.price\n        self.stop_loss = qty, self.price - .10\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def filters(self):\n        return [\n            self.filter_1()\n        ]\n\n    def filter_1(self):\n        if self.index == 0:\n            return False\n\n        if self.index == 10:\n            return False\n\n        return True\n"
  },
  {
    "path": "jesse/strategies/Test48/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_fee_rate_property\nclass Test48(Strategy):\n    def should_long(self) -> bool:\n        # default fee for unit tests is set to 0, so:\n        assert self.fee_rate == 0\n        return False\n\n    def should_short(self) -> bool:\n        # default fee for unit tests is set to 0, so:\n        assert self.fee_rate == 0\n        return False\n\n    def go_long(self):\n        pass\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestAddHorizontalLineToCandleChart/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\nclass TestAddHorizontalLineToCandleChart(Strategy):\n    def should_long(self):\n        return False\n\n    def go_long(self):\n        pass\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def should_short(self):\n        return False\n\n    def after(self) -> None:\n        self.add_horizontal_line_to_candle_chart('test', [1, 2], 'green')\n"
  },
  {
    "path": "jesse/strategies/TestAddHorizontalLineToExtraChart/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\nclass TestAddHorizontalLineToExtraChart(Strategy):\n    def should_long(self):\n        return False\n\n    def go_long(self):\n        pass\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def should_short(self):\n        return False\n\n    def after(self) -> None:\n        self.add_horizontal_line_to_extra_chart('test', 'title', [1, 2], 'green')\n"
  },
  {
    "path": "jesse/strategies/TestAddLineToCandleChart/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\nclass TestAddLineToCandleChart(Strategy):\n    def should_long(self):\n        return False\n\n    def go_long(self):\n        pass\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def should_short(self):\n        return False\n\n    def after(self) -> None:\n        self.add_line_to_candle_chart('test', [1, 2], 'green')\n"
  },
  {
    "path": "jesse/strategies/TestAddLineToExtraChart/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\nclass TestAddLineToExtraChart(Strategy):\n    def should_long(self):\n        return False\n\n    def go_long(self):\n        pass\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def should_short(self):\n        return False\n\n    def after(self) -> None:\n        self.add_extra_line_chart('test', 'title', [1, 2], 'green')\n"
  },
  {
    "path": "jesse/strategies/TestAfterMethod/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_after\nclass TestAfterMethod(Strategy):\n    def should_long(self) -> bool:\n        return False\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        pass\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def before(self):\n        if self.index == 1:\n            assert self.vars['counter'] == 100\n\n    def after(self):\n        if self.index == 0:\n            self.vars['counter'] = 100\n"
  },
  {
    "path": "jesse/strategies/TestAverageEntryPriceProperty/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\n\n\nclass TestAverageEntryPriceProperty(Strategy):\n    def should_long(self):\n        return self.price in [1, 5, 10]\n\n    def update_position(self) -> None:\n        if self.price in [3, 7]:\n            self.liquidate()\n\n    def go_long(self):\n        if self.price == 1:\n            self.buy = [\n                (1, 2),\n                (1, 3),\n            ]\n\n        if self.price == 5:\n            self.buy = [\n                (1, 5),\n                (1, 7),\n            ]\n\n        if self.price == 10:\n            self.buy = [\n                (1, 12),\n                (1, 13),\n            ]\n\n    def before(self) -> None:\n        # when both orders have been filled\n        if self.price == 3:\n            assert self.average_entry_price == 2.5\n\n        # when only one order has been filled\n        if self.price == 6:\n            assert self.average_entry_price == 6\n\n        # when no orders have been filled\n        if self.price == 11:\n            assert self.average_entry_price == 12.5\n\n    def should_cancel_entry(self):\n        return False\n\n    def should_short(self):\n        return False\n\n    def go_short(self):\n        pass\n"
  },
  {
    "path": "jesse/strategies/TestBalanceAndFeeReductionWorksCorrectlyInSpotModeInBothBuyAndSellOrders/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestBalanceAndFeeReductionWorksCorrectlyInSpotModeInBothBuyAndSellOrders(Strategy):\n    def before(self) -> None:\n        if self.index == 0:\n            assert self.balance == 10_000\n            assert self.position.exchange.assets['BTC'] == self.position.qty == 0\n\n        # one index after opening the position\n        elif self.price == 11:\n            assert self.balance == 9966\n            assert self.position.exchange.assets['BTC'] == self.position.qty == 0.999\n\n        # after increasing the position\n        elif self.price == 13:\n            assert self.balance == 9966\n            assert self.position.exchange.assets['BTC'] == self.position.qty == 2.997\n\n        # after reducing the position\n        elif self.price == 16:\n            assert self.balance == 9966 + 14.970015\n            assert self.position.exchange.assets['BTC'] == self.position.qty == 1.998\n\n        # after closing the position\n        elif self.price == 18:\n            assert self.balance == 9966 + 14.970015 + 33.932034\n            assert self.position.exchange.assets['BTC'] == self.position.qty == 0\n\n    def should_long(self):\n        return self.price == 10\n\n    def go_long(self):\n        self.buy = [\n            (1, 10),\n            (2, 12)\n        ]\n\n    def on_open_position(self, order) -> None:\n        assert order.qty == 1\n        assert self.position.qty == 0.999 == self.position.exchange.assets['BTC']\n        assert self.balance == 9966\n        self.vars['called_on_open_position'] = True\n\n    def on_increased_position(self, order) -> None:\n        assert order.qty == 2\n        assert self.position.qty == 2.997 == self.position.exchange.assets['BTC']\n        assert self.balance == 9966\n        self.vars['called_on_increased_position'] = True\n\n        # submit reduce and closing orders\n        self.take_profit = [\n            (0.999, 15),\n            (1.998, 17),\n        ]\n\n    def on_reduced_position(self, order) -> None:\n        assert order.qty == -0.999\n        assert self.position.qty == 1.998 == self.position.exchange.assets['BTC']\n        assert self.balance == 9966 + 14.970015\n        self.vars['called_on_reduced_position'] = True\n\n    def on_close_position(self, order, closed_trade) -> None:\n        assert order.qty == -1.998\n        assert self.balance == 9966 + 14.970015 + 33.932034\n        self.vars['called_on_close_position'] = True\n\n        # just in case assert the amounts in the exchange\n        assert self.position.exchange.assets['USDT'] == self.balance\n        assert self.position.exchange.assets['BTC'] == self.position.qty == 0\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestBalancesAreHandledCorrectlyForCancellingOrdersInSpot/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestBalancesAreHandledCorrectlyForCancellingOrdersInSpot(Strategy):\n    def should_long(self):\n        return self.price in [10, 40]\n\n    def go_long(self):\n        if self.price == 10:\n            assert self.balance == 10_000\n            # submit a LIMIT order that is not supposed to get executed\n            self.buy = 2, self.price - 2\n        if self.price == 40:\n            # submit a MARKET order that is supposed to get executed immediately\n            self.buy = 1, self.price\n\n    def on_open_position(self, order) -> None:\n        if self.price == 40:\n            assert self.balance == 10_000 - 40\n            assert self.position.qty == 1\n\n            # submit stop-loss order\n            self.stop_loss = self.position.qty, 30\n            # submit take-profit order\n            self.take_profit = self.position.qty, 80\n\n    def before(self) -> None:\n        if self.price == 12:\n            assert self.average_entry_price == 8\n\n        elif self.price == 41:\n            assert self.position.qty == 1\n            assert self.average_take_profit == 80\n            assert self.average_stop_loss == 30\n\n    def on_close_position(self, order, closed_trade) -> None:\n        assert order.is_take_profit is True\n        assert self.price == 80\n        assert self.position.qty == 0\n        assert self.balance == 10_000 + 40\n\n    def should_cancel_entry(self):\n        return self.price == 12\n"
  },
  {
    "path": "jesse/strategies/TestBeforeMethod/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_before\nclass TestBeforeMethod(Strategy):\n    def should_long(self) -> bool:\n        if self.index == 0:\n            assert self.vars['counter'] == 10\n\n        elif self.index == 2:\n            assert self.vars['counter'] == 100\n\n        return False\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        pass\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def before(self):\n        if self.index == 0:\n            self.vars['counter'] = 10\n\n        elif self.index == 2:\n            self.vars['counter'] = 100\n"
  },
  {
    "path": "jesse/strategies/TestBeforeTerminate/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestBeforeTerminate(Strategy):\n    def __init__(self):\n        super().__init__()\n        self.__before_terminate_called = False\n\n    def should_long(self) -> bool:\n        return self.price == 10\n\n    def go_long(self) -> None:\n        self.buy = 1, self.price\n\n    def should_cancel_entry(self):\n        return False\n\n    def before_terminate(self):\n        self.__before_terminate_called = True\n\n    def terminate(self):\n        assert self.__before_terminate_called is True\n"
  },
  {
    "path": "jesse/strategies/TestCanCancelEntryOrdersAfterOpenPositionLong1/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\n\n\nclass TestCanCancelEntryOrdersAfterOpenPositionLong1(Strategy):\n    def before(self) -> None:\n        if self.price == 12:\n            assert self.orders[0].type == 'MARKET'\n            assert self.orders[0].status == 'EXECUTED'\n            assert self.orders[0].price == 10\n\n            assert self.orders[1].type == 'LIMIT'\n            assert self.orders[1].status == 'ACTIVE'\n            assert self.orders[1].price == 9\n\n            assert self.orders[2].type == 'LIMIT'\n            assert self.orders[2].status == 'ACTIVE'\n            assert self.orders[2].price == 8\n\n        if self.price == 15:\n            assert self.orders[0].type == 'MARKET'\n            assert self.orders[0].status == 'EXECUTED'\n            assert self.orders[0].price == 10\n\n            assert self.orders[1].type == 'LIMIT'\n            assert self.orders[1].status == 'CANCELED'\n            assert self.orders[2].type == 'LIMIT'\n            assert self.orders[2].status == 'CANCELED'\n\n    def should_long(self) -> bool:\n        return self.price == 10\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        self.buy = [\n            (1, 10),\n            (1, 9),\n            (1, 8),\n        ]\n\n    def update_position(self) -> None:\n        if self.price == 13:\n            self.buy = []\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestCanCancelEntryOrdersAfterOpenPositionLong2/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\nclass TestCanCancelEntryOrdersAfterOpenPositionLong2(Strategy):\n    def before(self) -> None:\n        if self.price == 12:\n            assert self.orders[0].type == 'MARKET'\n            assert self.orders[0].status == 'EXECUTED'\n            assert self.orders[0].price == 10\n\n            assert self.orders[1].type == 'LIMIT'\n            assert self.orders[1].status == 'ACTIVE'\n            assert self.orders[1].price == 9\n\n            assert self.orders[2].type == 'LIMIT'\n            assert self.orders[2].status == 'ACTIVE'\n            assert self.orders[2].price == 8\n\n        if self.price == 15:\n            assert self.orders[0].type == 'MARKET'\n            assert self.orders[0].status == 'EXECUTED'\n            assert self.orders[0].price == 10\n\n            assert self.orders[1].type == 'LIMIT'\n            assert self.orders[1].status == 'CANCELED'\n            assert self.orders[2].type == 'LIMIT'\n            assert self.orders[2].status == 'CANCELED'\n\n    def should_long(self) -> bool:\n        return self.price == 10\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        self.buy = [\n            (1, 10),\n            (1, 9),\n            (1, 8),\n        ]\n\n    def update_position(self) -> None:\n        if self.price == 13:\n            self.buy = None\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestCanCancelEntryOrdersAfterOpenPositionShort1/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\nclass TestCanCancelEntryOrdersAfterOpenPositionShort1(Strategy):\n    def before(self) -> None:\n        if self.price == 12:\n            assert self.orders[0].type == 'MARKET'\n            assert self.orders[0].status == 'EXECUTED'\n            assert self.orders[0].price == 10\n\n            assert self.orders[1].type == 'STOP'\n            assert self.orders[1].status == 'ACTIVE'\n            assert self.orders[1].price == 9\n\n            assert self.orders[2].type == 'STOP'\n            assert self.orders[2].status == 'ACTIVE'\n            assert self.orders[2].price == 8\n\n        if self.price == 15:\n            assert self.orders[0].type == 'MARKET'\n            assert self.orders[0].status == 'EXECUTED'\n            assert self.orders[0].price == 10\n\n            assert self.orders[1].type == 'STOP'\n            assert self.orders[1].status == 'CANCELED'\n            assert self.orders[2].type == 'STOP'\n            assert self.orders[2].status == 'CANCELED'\n\n    def should_long(self) -> bool:\n        return False\n\n    def should_short(self) -> bool:\n        return self.price == 10\n\n    def go_long(self):\n        pass\n\n    def update_position(self) -> None:\n        if self.price == 13:\n            self.sell = []\n\n    def go_short(self):\n        self.sell = [\n            (1, 10),\n            (1, 9),\n            (1, 8),\n        ]\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestCanCancelEntryOrdersAfterOpenPositionShort2/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\nclass TestCanCancelEntryOrdersAfterOpenPositionShort2(Strategy):\n    def before(self) -> None:\n        if self.price == 12:\n            assert self.orders[0].type == 'MARKET'\n            assert self.orders[0].status == 'EXECUTED'\n            assert self.orders[0].price == 10\n\n            assert self.orders[1].type == 'STOP'\n            assert self.orders[1].status == 'ACTIVE'\n            assert self.orders[1].price == 9\n\n            assert self.orders[2].type == 'STOP'\n            assert self.orders[2].status == 'ACTIVE'\n            assert self.orders[2].price == 8\n\n        if self.price == 15:\n            assert self.orders[0].type == 'MARKET'\n            assert self.orders[0].status == 'EXECUTED'\n            assert self.orders[0].price == 10\n\n            assert self.orders[1].type == 'STOP'\n            assert self.orders[1].status == 'CANCELED'\n            assert self.orders[2].type == 'STOP'\n            assert self.orders[2].status == 'CANCELED'\n\n    def should_long(self) -> bool:\n        return False\n\n    def should_short(self) -> bool:\n        return self.price == 10\n\n    def go_long(self):\n        pass\n\n    def update_position(self) -> None:\n        if self.price == 13:\n            self.sell = None\n\n    def go_short(self):\n        self.sell = [\n            (1, 10),\n            (1, 9),\n            (1, 8),\n        ]\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestCanOpenANewPositionImmediatelyAfterClosingViaUpdatePosition/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestCanOpenANewPositionImmediatelyAfterClosingViaUpdatePosition(Strategy):\n    def before(self) -> None:\n        if self.price == 21:\n            assert self.position.entry_price == 20\n\n    def should_long(self) -> bool:\n        return self.price in [10, 20]\n\n    def go_long(self) -> None:\n        self.buy = 1, self.price\n\n    def update_position(self) -> None:\n        if self.price == 20:\n            self.liquidate()\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestCanRunWithoutShorting/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\nclass TestCanRunWithoutShorting(Strategy):\n    def should_long(self):\n        return False\n\n    def should_cancel_entry(self):\n        return False\n\n    def go_long(self):\n        pass\n"
  },
  {
    "path": "jesse/strategies/TestCanSubmitStopLossOrderWithSizeEqualToCurrentPositionQty/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestCanSubmitStopLossOrderWithSizeEqualToCurrentPositionQty(Strategy):\n    def should_long(self):\n        return self.price == 10\n\n    def go_long(self):\n        self.buy = 1, self.price\n\n    def on_open_position(self, order) -> None:\n        self.stop_loss = self.position.qty, 8\n\n    def on_close_position(self, order, closed_trade) -> None:\n        assert order.is_stop_loss is True\n        assert order.price == 8\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestCanSubmitStopLossOrderWithSizeLessThanCurrentPositionQty/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestCanSubmitStopLossOrderWithSizeLessThanCurrentPositionQty(Strategy):\n    def should_long(self):\n        return self.price == 10\n\n    def go_long(self):\n        self.buy = 1, self.price\n\n    def on_open_position(self, order) -> None:\n        self.stop_loss = [\n            (0.5, 8),\n            (0.5, 5),\n        ]\n\n    def on_reduced_position(self, order) -> None:\n        assert order.is_stop_loss is True\n        assert order.qty == 0.5\n        assert order.price == 8\n\n    def on_close_position(self, order, closed_trade) -> None:\n        assert order.is_stop_loss is True\n        assert order.price == 5\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestCanSubmitTakeProfitAndStopLossAtSameTimeInSpot/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestCanSubmitTakeProfitAndStopLossAtSameTimeInSpot(Strategy):\n    def should_long(self):\n        return self.price in [10, 20]\n\n    def go_long(self):\n        if self.price == 10:\n            self.buy = 1, self.price\n        elif self.price == 20:\n            self.buy = 2, self.price\n\n    def on_open_position(self, order) -> None:\n        if self.price == 10:\n            self.take_profit = self.position.qty, 15\n            self.stop_loss = self.position.qty, 8\n        elif self.price == 20:\n            self.take_profit = self.position.qty, 30\n            self.stop_loss = self.position.qty, 15\n\n    def on_close_position(self, order, closed_trade) -> None:\n        last_trade = self.trades[-1]\n\n        if self.trades_count == 1:\n            assert last_trade.exit_price == 15\n            assert last_trade.entry_price == 10\n            assert last_trade.qty == 1\n            assert last_trade.type == \"long\"\n        elif self.trades_count == 2:\n            assert last_trade.exit_price == 30\n            assert last_trade.entry_price == 20\n            assert last_trade.qty == 2\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestCanSubmitTakeProfitOrderWithSizeEqualToCurrentPositionQty/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestCanSubmitTakeProfitOrderWithSizeEqualToCurrentPositionQty(Strategy):\n    def should_long(self):\n        return self.price == 10\n\n    def go_long(self):\n        self.buy = 1, self.price\n\n    def on_open_position(self, order) -> None:\n        self.take_profit = self.position.qty, 15\n\n    def on_close_position(self, order, closed_trade) -> None:\n        assert order.is_take_profit is True\n        assert order.price == 15\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestCanSubmitTakeProfitOrderWithSizeLessThanCurrentPositionQty/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestCanSubmitTakeProfitOrderWithSizeLessThanCurrentPositionQty(Strategy):\n    def should_long(self):\n        return self.price == 10\n\n    def go_long(self):\n        self.buy = 1, self.price\n\n    def on_open_position(self, order) -> None:\n        self.take_profit = [\n            (0.5, 15),\n            (0.5, 20),\n        ]\n\n    def on_increased_position(self, order) -> None:\n        assert order.qty == 0.5\n        assert order.price == 15\n        assert order.is_take_profit is True\n\n    def on_close_position(self, order, closed_trade) -> None:\n        assert abs(order.qty) == 0.5\n        assert order.price == 20\n        assert order.is_take_profit is True\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestCannotSetStopLossOrderInGoLong/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestCannotSetStopLossOrderInGoLong(Strategy):\n    def should_long(self) -> bool:\n        return self.price == 10\n\n    def go_long(self) -> None:\n        self.buy = 1, self.price\n        self.stop_loss = 1, self.price - 1\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestCannotSetTakeProfitOrderInGoLong/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestCannotSetTakeProfitOrderInGoLong(Strategy):\n    def should_long(self) -> bool:\n        return self.price == 10\n\n    def go_long(self) -> None:\n        self.buy = 1, self.price\n        self.take_profit = 1, self.price + 1\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestCannotSpendMoreThanAvailableBalance/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestCannotSpendMoreThanAvailableBalance(Strategy):\n    def should_long(self):\n        return self.index == 0\n\n    def go_long(self):\n        # try to spend 110% of available balance\n        qty = utils.size_to_qty(self.balance*1.1, self.price)\n        self.buy = qty, self.price\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestCannotSubmitStopLossOrderWithSizeMoreThanCurrentPositionQty/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestCannotSubmitStopLossOrderWithSizeMoreThanCurrentPositionQty(Strategy):\n    def should_long(self):\n        return self.price == 10\n\n    def go_long(self):\n        self.buy = 1, self.price\n\n    def on_open_position(self, order) -> None:\n        self.stop_loss = self.position.qty*1.01, self.price*0.99\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestCannotSubmitTakeProfitOrderWithSizeMoreThanCurrentPositionQty/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestCannotSubmitTakeProfitOrderWithSizeMoreThanCurrentPositionQty(Strategy):\n    def should_long(self):\n        return self.price == 10\n\n    def go_long(self):\n        self.buy = 1, self.price\n\n    def on_open_position(self, order) -> None:\n        self.take_profit = self.position.qty*1.01, self.price*1.01\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestCapitalPropertyRaisesNotImplementedError/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestCapitalPropertyRaisesNotImplementedError(Strategy):\n    def should_long(self) -> bool:\n        self.capital\n        return False\n\n    def go_long(self) -> None:\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestClosedTradeAfterExitingTrade/__init__.py",
    "content": "import jesse.helpers as jh\nfrom jesse.strategies import Strategy\n\n\nclass TestClosedTradeAfterExitingTrade(Strategy):\n    def should_long(self) -> bool:\n        return self.price == 10\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        self.buy = 10, self.price\n        self.take_profit = 10, 12\n        self.stop_loss = 10, 5\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def on_close_position(self, order, closed_trade):\n        assert self.trades_count == 1\n\n        trade = self.trades[0]\n\n        assert jh.is_valid_uuid(trade.id) is True\n        assert trade.strategy_name == 'TestClosedTradeAfterExitingTrade'\n        assert trade.symbol == 'BTC-USDT'\n        assert trade.exchange == 'Sandbox'\n        assert trade.type == 'long'\n        assert trade.timeframe == '1m'\n        assert trade.entry_price == 10\n        assert trade.exit_price == 12\n        assert trade.qty == 10\n        assert trade.opened_at == 1609459800000.0\n        assert trade.closed_at == 1609459920000.0\n        assert trade.leverage == 2\n\n        # assert all orders have their trade_id set\n        orders = trade.orders\n        assert len(orders) == 2\n        for o in orders:\n            if not o.is_canceled:\n                assert o.trade_id == trade.id\n"
  },
  {
    "path": "jesse/strategies/TestCurrentRouteIndex1/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\nclass TestCurrentRouteIndex1(Strategy):\n    def before(self) -> None:\n        if self.index == 0 or self.index == 10:\n            assert self.current_route_index == 0\n\n    def should_long(self):\n        return False\n\n    def go_long(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestCurrentRouteIndex2/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\nclass TestCurrentRouteIndex2(Strategy):\n    def before(self) -> None:\n        if self.index == 0 or self.index == 10:\n            assert self.current_route_index == 1\n\n    def should_long(self):\n        return False\n\n    def go_long(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestDailyBalanceStoresPortfolioValue/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestDailyBalanceStoresPortfolioValue(Strategy):\n    def before(self) -> None:\n        if self.index == 0:\n            assert self.balance == 10_000\n\n        if self.price == 11:\n            assert self.portfolio_value == 10_000\n            if self.is_spot_trading:\n                assert self.balance == 10_000 - (50 * 9)\n\n    def should_long(self) -> bool:\n        return self.price == 10\n\n    def go_long(self) -> None:\n        # submit an entry buy order that is not supposed to be filled\n        self.buy = 50, 9\n\n    def should_cancel_entry(self):\n        return False\n\n    def before_terminate(self):\n        # assert that all the items (daily balances) in store.app.daily_balance remain 10_000\n        for item in self.daily_balances:\n            assert item == 10_000\n"
  },
  {
    "path": "jesse/strategies/TestDailyBalancesProperty/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestDailyBalancesProperty(Strategy):\n    def should_long(self) -> bool:\n        return False\n\n    def go_long(self) -> None:\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def before_terminate(self):\n        assert len(self.daily_balances) == 10\n        for d in self.daily_balances:\n            assert d == 10_000\n"
  },
  {
    "path": "jesse/strategies/TestDataRoutes1/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\n\n\nclass TestDataRoutes1(Strategy):\n    def before(self) -> None:\n        if self.index == 0 or self.index == 10:\n            assert self.data_routes[0].symbol == 'BTC-USDT'\n            assert self.data_routes[0].timeframe == '5m'\n            assert self.data_routes[0].strategy == None\n            assert self.data_routes[1].symbol == 'ETH-USDT'\n            assert self.data_routes[1].timeframe == '15m'\n            assert self.data_routes[1].strategy == None\n\n    def should_long(self):\n        return False\n\n    def go_long(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestDataRoutes2/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\nclass TestDataRoutes2(Strategy):\n    def before(self) -> None:\n        if self.index == 0 or self.index == 10:\n            assert self.data_routes[0].symbol == 'BTC-USDT'\n            assert self.data_routes[0].timeframe == '5m'\n            assert self.data_routes[0].strategy == None\n            assert self.data_routes[1].symbol == 'ETH-USDT'\n            assert self.data_routes[1].timeframe == '15m'\n            assert self.data_routes[1].strategy == None\n\n    def should_long(self):\n        return False\n\n    def go_long(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestDefaultHyperparameters/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\nclass TestDefaultHyperparameters(Strategy):\n    def before(self):\n        if self.index == 0:\n            assert self.hp == {'profit_target': 5, 'qty_w': 70}\n\n    def hyperparameters(self):\n        return [\n            {'name': 'qty_w', 'type': int, 'min': 10, 'max': 95, 'default': 70},\n            {'name': 'profit_target', 'type': int, 'min': 1, 'max': 40, 'default': 5},\n        ]\n\n    def should_long(self) -> bool:\n        return False\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        pass\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestDnaMethod/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\nclass TestDnaMethod(Strategy):\n    def before(self):\n        if self.index == 0:\n            assert self.hp == {'profit_target': 7, 'qty_w': 86}\n\n    def hyperparameters(self):\n        return [\n            {'name': 'qty_w', 'type': int, 'min': 10, 'max': 95, 'default': 70},\n            {'name': 'profit_target', 'type': int, 'min': 1, 'max': 40, 'default': 5},\n        ]\n\n    def dna(self):\n        return \"o4\"\n\n    def should_long(self) -> bool:\n        return False\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        pass\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestEmptyStrategy/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\nclass TestEmptyStrategy(Strategy):\n    def should_long(self):\n        return False\n\n    def should_short(self):\n        return False\n\n    def should_cancel_entry(self):\n        return False\n\n    def go_long(self):\n        pass\n\n    def go_short(self):\n        pass\n"
  },
  {
    "path": "jesse/strategies/TestEntryOrdersAndExitOrdersProperties/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\n\n\nclass TestEntryOrdersAndExitOrdersProperties(Strategy):\n    def should_long(self):\n        return self.price in [10, 25, 30]\n\n    def go_long(self):\n        if self.price == 10:\n            self.buy = [\n                (1, 10),\n                (2, 9),\n                (3, 8),\n            ]\n            self.stop_loss = 1, 5\n        elif self.price == 25:\n            self.buy = 1, 28\n        elif self.price == 30:\n            self.buy = [\n                # stop\n                (1, 31),\n                # market\n                (1, 30),\n                # limit\n                (1, 29),\n            ]\n            self.take_profit = [\n                (1, 35),\n                (1, 36),\n                (1, 37),\n            ]\n            self.stop_loss = 3, 25\n\n    def should_cancel_entry(self):\n        # cancel second position entry attempt\n        if self.price == 27:\n            return True\n\n        return False\n\n    def update_position(self) -> None:\n        if self.price == 20:\n            self.liquidate()\n\n    def before(self) -> None:\n        if self.price == 11:\n            # entry orders\n            assert len(self.entry_orders) == 3\n            assert self.entry_orders[0].price == 10\n            assert self.entry_orders[0].qty == 1\n            assert self.entry_orders[0].is_executed\n            assert self.entry_orders[1].price == 9\n            assert self.entry_orders[1].qty == 2\n            assert self.entry_orders[1].is_active\n            assert self.entry_orders[2].price == 8\n            assert self.entry_orders[2].qty == 3\n            assert self.entry_orders[2].is_active\n            # exit orders\n            assert len(self.exit_orders) == 1\n            assert self.exit_orders[0].price == 5\n            assert self.exit_orders[0].qty == -1\n            assert self.exit_orders[0].is_active\n            assert self.exit_orders[0].type == 'STOP'\n\n        if self.price == 21:\n            # entry orders\n            assert len(self.entry_orders) == 0\n            # exit orders\n            assert len(self.exit_orders) == 0\n\n        # after entry orders are submitted for the SECOND time\n        if self.price == 26:\n            # entry orders\n            assert len(self.entry_orders) == 1\n            assert self.entry_orders[0].price == 28\n            assert self.entry_orders[0].qty == 1\n            assert self.entry_orders[0].is_active\n            assert self.entry_orders[0].type == 'STOP'\n            # exit orders\n            assert len(self.exit_orders) == 0\n\n        if self.price == 28:\n            assert len(self.entry_orders) == 0\n            assert len(self.exit_orders) == 0\n\n        # TODO: test for a third time while exit orders are also submitted\n        if self.price == 31:\n            # entry orders\n            assert len(self.entry_orders) == 3\n            assert self.entry_orders[0].price == 31\n            assert self.entry_orders[0].qty == 1\n            assert self.entry_orders[0].is_executed\n            assert self.entry_orders[1].price == 30\n            assert self.entry_orders[1].qty == 1\n            assert self.entry_orders[1].is_executed\n            assert self.entry_orders[2].price == 29\n            assert self.entry_orders[2].qty == 1\n            assert self.entry_orders[2].is_active\n\n            # exit orders\n            assert len(self.exit_orders) == 4\n\n            assert self.exit_orders[0].price == 25\n            assert self.exit_orders[0].qty == -3\n            assert self.exit_orders[0].is_active\n            assert self.exit_orders[0].type == 'STOP'\n\n            assert self.exit_orders[1].price == 35\n            assert self.exit_orders[1].qty == -1\n            assert self.exit_orders[1].is_active\n            assert self.exit_orders[1].type == 'LIMIT'\n\n            assert self.exit_orders[2].price == 36\n            assert self.exit_orders[2].qty == -1\n            assert self.exit_orders[2].is_active\n            assert self.exit_orders[2].type == 'LIMIT'\n\n            assert self.exit_orders[3].price == 37\n            assert self.exit_orders[3].qty == -1\n            assert self.exit_orders[3].is_active\n            assert self.exit_orders[3].type == 'LIMIT'\n            \n"
  },
  {
    "path": "jesse/strategies/TestExchangeTypeProperty1/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\nclass TestExchangeTypeProperty1(Strategy):\n    def before(self) -> None:\n        if self.index == 0:\n            assert self.exchange_type == \"spot\"\n\n    def should_long(self):\n        return False\n\n    def go_long(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestExchangeTypeProperty2/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\nclass TestExchangeTypeProperty2(Strategy):\n    def before(self) -> None:\n        if self.index == 0:\n            assert self.exchange_type == \"futures\"\n\n    def should_long(self):\n        return False\n\n    def go_long(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestFuturesExchangeAvailableMargin/__init__.py",
    "content": "from jesse import utils\nfrom jesse.strategies import Strategy\n\n\nclass TestFuturesExchangeAvailableMargin(Strategy):\n    def before(self):\n        if self.index == 0:\n            assert self.position.exchange.wallet_balance == 10000 == self.balance\n            assert self.position.exchange.available_margin == 10000 == self.available_margin\n\n        if self.price == 11:\n            # wallet balance should have stayed the same while we haven't spent from it yet\n            assert self.position.exchange.wallet_balance == 10000 == self.balance\n            # Adjusting available_margin calculation\n            assert round(self.position.exchange.available_margin) == 10000 - (2000 / 2) == round(self.available_margin)\n\n        if self.price == 12:\n            # wallet balance should have stayed the same, no fee in this test\n            assert self.position.exchange.wallet_balance == 10000 == self.balance\n            # available_margin should have stayed the same, not include reduce only orders\n            assert round(self.position.exchange.available_margin) == 10000 - (2000 / 2) == round(self.available_margin)\n\n        if self.price == 13:\n            # wallet balance should have stayed the same, no fee in this test\n            assert self.position.exchange.wallet_balance == 10000 == self.balance\n            # Adjusting available_margin calculation considering unrealized profit and leverage\n            # The leverage is applied to the PNL to reflect its impact on the available margin\n            expected_margin = 10000 - (2000 / 2) + (self.position.pnl)\n            assert round(self.position.exchange.available_margin) == round(expected_margin) == round(\n                self.available_margin)\n\n        if self.price == 21:\n            # wallet balance now equals to 10_000 + profit from previous trade\n            previous_trade = self.trades[0]\n            assert self.position.exchange.wallet_balance == previous_trade.pnl + 10000\n            # available_margin should equal to wallet_balance after position is closed\n            assert self.available_margin == self.position.exchange.wallet_balance\n            assert self.balance == self.position.exchange.wallet_balance\n            assert self.balance == self.available_margin\n\n    def should_long(self) -> bool:\n        return self.price == 10\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        qty = utils.size_to_qty(2000, 12)\n        self.buy = qty, 12\n        self.take_profit = qty, 20\n        self.stop_loss = qty, 10\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestHasLongAndShortEntryOrdersPropertiesInFilters/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\n\n\nclass TestHasLongAndShortEntryOrdersPropertiesInFilters(Strategy):\n    def should_long(self):\n        return self.price == 10\n\n    def go_long(self):\n        self.buy = [\n            (1, 9),\n            (1, 8),\n        ]\n\n    def should_short(self) -> bool:\n        return self.price == 20\n\n    def go_short(self):\n        self.sell = [\n            (1, 20),\n            (1, 21),\n        ]\n\n    def filters(self) -> list:\n        return [self.filter1]\n\n    def filter1(self):\n        if self.price == 10:\n            assert self.has_long_entry_orders is True\n            assert self.has_short_entry_orders is False\n            assert self.average_entry_price == 8.5\n            return self.average_entry_price == 8.5\n\n        if self.price == 20:\n            assert self.has_long_entry_orders is False\n            assert self.has_short_entry_orders is True\n            assert self.average_entry_price == 20.5\n            return self.average_entry_price == 20.5\n\n    def should_cancel_entry(self):\n        return self.price in [15, 25]\n"
  },
  {
    "path": "jesse/strategies/TestHasLongEntryOrdersProperty/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\n\n\nclass TestHasLongEntryOrdersProperty(Strategy):\n    def should_long(self):\n        return self.price in [10, 20]\n\n    def go_long(self):\n        if self.price == 10:\n            self.buy = [\n                (1, 9),\n                (1, 8),\n            ]\n\n        if self.price == 20:\n            self.buy = [\n                (1, 20),\n                (1, 19),\n            ]\n\n    def before(self) -> None:\n        if self.price < 10:\n            assert self.has_long_entry_orders is False\n            assert self.has_short_entry_orders is False\n\n        # when no orders have been filled\n        if self.price == 11:\n            assert self.has_long_entry_orders is True\n            assert self.has_short_entry_orders is False\n        # when entries are cancelled\n        if self.price == 16:\n            assert self.has_long_entry_orders is False\n            assert self.has_short_entry_orders is False\n\n        # when one order is filled and one is still active\n        elif self.price == 21:\n            assert self.has_long_entry_orders is True\n            assert self.has_short_entry_orders is False\n        # after the trade is closed\n        elif self.price == 26:\n            assert self.has_long_entry_orders is False\n            assert self.has_short_entry_orders is False\n\n    def should_cancel_entry(self):\n        return self.price == 15\n\n    def update_position(self) -> None:\n        if self.price == 25:\n            self.liquidate()\n\n"
  },
  {
    "path": "jesse/strategies/TestHasShortEntryOrdersProperty/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\n\n\nclass TestHasShortEntryOrdersProperty(Strategy):\n    def should_long(self):\n        return False\n\n    def go_long(self):\n        pass\n\n    def should_short(self) -> bool:\n        return self.price in [10, 20]\n\n    def go_short(self):\n        if self.price == 10:\n            self.sell = [\n                (1, 9),\n                (1, 8),\n            ]\n\n        if self.price == 20:\n            self.sell = [\n                (1, 20),\n                (1, 19),\n            ]\n\n    def before(self) -> None:\n        if self.price < 10:\n            assert self.has_short_entry_orders is False\n            assert self.has_long_entry_orders is False\n\n        # when no orders have been filled\n        if self.price == 11:\n            assert self.has_short_entry_orders is True\n            assert self.has_long_entry_orders is False\n        # when entries are cancelled\n        if self.price == 16:\n            assert self.has_short_entry_orders is False\n            assert self.has_long_entry_orders is False\n\n        # when one order is filled and one is still active\n        elif self.price == 21:\n            assert self.has_short_entry_orders is True\n            assert self.has_long_entry_orders is False\n        # after the trade is closed\n        elif self.price == 26:\n            assert self.has_short_entry_orders is False\n            assert self.has_long_entry_orders is False\n\n    def should_cancel_entry(self):\n        return self.price == 15\n\n    def update_position(self) -> None:\n        if self.price == 25:\n            self.liquidate()\n\n"
  },
  {
    "path": "jesse/strategies/TestIncreasedAndReducedCount/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_increaed_and_reduced_count\nclass TestIncreasedAndReducedCount(Strategy):\n    def should_long(self) -> bool:\n        return self.index == 0\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        qty = 1\n        self.buy = qty, self.price\n\n    def update_position(self):\n        if self.position.qty == 1 and self.index == 1:\n            assert self.reduced_count == 0\n\n            assert self.increased_count == 1\n            # now increase position\n            self.buy = 1, self.price\n\n        elif self.position.qty == 2:\n            assert self.increased_count == 2\n\n            # reduce it by one\n            self.take_profit = 0.5, self.price\n        elif self.position.qty == 1.5:\n            assert self.reduced_count == 1\n            self.take_profit = 0.5, self.price\n        else:\n            assert self.reduced_count == 2\n\n            # close trade\n            self.liquidate()\n\n    def before(self):\n        if self.trades_count == 1:\n            assert self.increased_count == 0\n            assert self.reduced_count == 0\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestIncreasingShortPosition/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\nclass TestIncreasingShortPosition(Strategy):\n    def before(self) -> None:\n        # make sure The trade is closed\n        if self.price == 70:\n            last_trade = self.trades[-1]\n            assert last_trade.qty == 2\n            assert last_trade.entry_price == (90 + 88) / 2\n            assert last_trade.exit_price == 80\n            assert last_trade.type == 'short'\n            assert self.trades_count == 1\n\n    def should_short(self):\n        return self.price == 90\n\n    def go_short(self):\n        self.sell = 1, 90\n\n    def update_position(self):\n        # buy 1 more at current price\n        if self.price == 88:\n            self.sell = 1, 88\n            self.take_profit = 2, 80\n\n    def should_long(self):\n        return False\n\n    def go_long(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def filters(self):\n        return []\n"
  },
  {
    "path": "jesse/strategies/TestInsufficientMargin1/__init__.py",
    "content": "from jesse import utils\nfrom jesse.strategies import Strategy\n\n\n# test_negative_balance_validation_for_futures_market\nclass TestInsufficientMargin1(Strategy):\n    def should_long(self) -> bool:\n        return self.index == 0\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        qty = utils.size_to_qty(10_001, self.price)\n        self.buy = qty, self.price\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestInsufficientMargin2/__init__.py",
    "content": "from jesse import utils\nfrom jesse.strategies import Strategy\n\n\n# test_negative_balance_validation_for_futures_market\nclass TestInsufficientMargin2(Strategy):\n    def should_long(self) -> bool:\n        return self.index == 0\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        qty = utils.size_to_qty(10_001, self.price * .99)\n        self.buy = qty, self.price * .99\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestInsufficientMargin3/__init__.py",
    "content": "from jesse import utils\nfrom jesse.strategies import Strategy\n\n\n# test_negative_balance_validation_for_futures_market\nclass TestInsufficientMargin3(Strategy):\n    def should_long(self) -> bool:\n        return False\n\n    def should_short(self) -> bool:\n        return self.index == 0\n\n    def go_long(self):\n        pass\n\n    def go_short(self):\n        qty = utils.size_to_qty(10_001, self.price * .99)\n        self.sell = qty, self.price * .99\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestLeverageProperty1/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_leverage_property\nclass TestLeverageProperty1(Strategy):\n    def should_long(self) -> bool:\n        if self.index == 0:\n            assert self.leverage == 1\n\n        return False\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        pass\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestLeverageProperty2/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\n# test_leverage_property\nclass TestLeverageProperty2(Strategy):\n    def should_long(self) -> bool:\n        if self.index == 0:\n            assert self.leverage == 2\n\n        return False\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        pass\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestLiquidationInCrossModeForShortTrade/__init__.py",
    "content": "import numpy as np\n\nfrom jesse.strategies import Strategy\n\n\nclass TestLiquidationInCrossModeForShortTrade(Strategy):\n    def on_open_position(self, order):\n        # print(self.position.liquidation_price)\n        # assert self.position.liquidation_price == 22.09\n        assert np.isnan(self.position.liquidation_price)\n\n    def before(self):\n        if self.index == 0:\n            assert self.balance == 10000\n            assert self.leverage == 10\n            assert self.available_margin == 10 * 10000\n            assert self.position.mode == 'cross'\n\n        # # the liquidation price is at $14.94 so at $15:\n        # if self.price == 15:\n        #     # assert that we are liquidated by this point\n        #     print(self.balance)\n        #     print(self.available_margin)\n        #     assert self.is_close\n        #     assert self.balance == 0\n        #     assert self.available_margin == 0\n\n    def should_long(self) -> bool:\n        return False\n\n    def should_short(self) -> bool:\n        return self.price == 20\n\n    def go_long(self):\n        pass\n\n    def go_short(self):\n        qty = self.available_margin / self.price\n        print('qty', qty)\n        self.sell = qty, self.price\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestLiquidationInIsolatedModeForLongTrade/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\nclass TestLiquidationInIsolatedModeForLongTrade(Strategy):\n    def on_open_position(self, order):\n        assert round(self.position.liquidation_price, 2) == 40.32\n\n    def before(self):\n        if self.price == 40:\n            # assert that we are liquidated by this point\n            assert self.is_close\n            assert self.balance == 0\n            assert self.available_margin == 0\n\n    def should_long(self) -> bool:\n        if self.index == 0:\n            assert self.balance == 10000\n            assert self.leverage == 2\n            assert self.leveraged_available_margin == 20000\n            assert self.available_margin == 10000\n            assert self.position.mode == 'isolated'\n\n        return self.price == 80\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        # go all in\n        self.buy = 250, self.price\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestLiquidationInIsolatedModeForShortTrade/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\nclass TestLiquidationInIsolatedModeForShortTrade(Strategy):\n    def on_open_position(self, order):\n        assert round(self.position.liquidation_price, 2) == 14.96\n        assert round(self.position.bankruptcy_price, 2) == 15\n\n    def before(self):\n        if self.index == 0:\n            assert self.balance == 10000\n            assert self.leverage == 2\n            assert self.available_margin == 10000\n            assert self.leveraged_available_margin == 20000\n\n        # the liquidation price is at $14.94 so at $15:\n        if self.price == 15:\n            # assert that we are liquidated by this point\n            assert self.is_close\n            assert self.balance == 0\n            assert self.available_margin == 0\n\n    def should_long(self) -> bool:\n        return False\n\n    def should_short(self) -> bool:\n        return self.price == 10\n\n    def go_long(self):\n        pass\n\n    def go_short(self):\n        # utils.size_to_qty(self.available_margin, self.price) == 2000\n        self.sell = 2000, self.price\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestLogMethodInStrategyClass/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\nclass TestLogMethodInStrategyClass(Strategy):\n    def before(self):\n        if self.index == 10:\n            self.log('test info log')\n\n        if self.index == 11:\n            self.log('test error log', log_type='error')\n\n    def should_long(self) -> bool:\n        return False\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        pass\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestMarkPrice/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\nclass TestMarkPrice(Strategy):\n    def before(self):\n        if self.index < 10:\n            assert self.price == self.mark_price\n            assert self.funding_rate == 0\n            assert self.next_funding_timestamp is None\n\n    def should_long(self) -> bool:\n        return False\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        pass\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestMarketOrderForLowPriceDifference/__init__.py",
    "content": "from jesse.strategies import Strategy\n\nclass TestMarketOrderForLowPriceDifference(Strategy):\n    def on_open_position(self, order):\n        assert order.type == 'MARKET'\n\n    def on_close_position(self, order, closed_trade) -> None:\n        assert order.type == 'MARKET'\n\n    def should_long(self) -> bool:\n        return self.index == 0\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        # current-price: 1\n        self.buy = 1, 1.0001\n\n    def update_position(self) -> None:\n        # submit a take-profit order that has a low difference with the current price\n        self.take_profit = self.position.qty, self.price + 0.0001\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestMetrics1/__init__.py",
    "content": "import numpy as np\n\nfrom jesse.strategies import Strategy\n\n\nclass TestMetrics1(Strategy):\n    def should_long(self) -> bool:\n        return self.price == 10\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        self.buy = 10, 10\n        # sell it for $50 profit\n        self.take_profit = 10, 15\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def on_close_position(self, order, closed_trade):\n        assert self.metrics['total'] == 1\n        assert self.metrics['starting_balance'] == 10000\n        assert self.metrics['finishing_balance'] == 10050\n        assert self.metrics['win_rate'] == 1\n        assert self.metrics['ratio_avg_win_loss'] is np.nan\n        assert self.metrics['longs_count'] == 1\n        assert self.metrics['shorts_count'] == 0\n        assert self.metrics['longs_percentage'] == 100\n        assert self.metrics['shorts_percentage'] == 0\n        assert self.metrics['fee'] == 0\n        assert self.metrics['net_profit'] == 50\n        assert self.metrics['net_profit_percentage'] == 0.5\n        assert self.metrics['average_win'] == 50\n        assert self.metrics['average_loss'] is np.nan\n        assert self.metrics['expectancy'] == 50\n        assert self.metrics['expectancy_percentage'] == 0.5\n        assert self.metrics['expected_net_profit_every_100_trades'] == 50\n        assert self.metrics['average_holding_period'] == 300\n        assert self.metrics['average_losing_holding_period'] is np.nan\n        assert self.metrics['average_winning_holding_period'] == 300\n        assert self.metrics['gross_loss'] == 0\n        assert self.metrics['gross_profit'] == 50\n        assert self.metrics['open_pl'] == 0\n"
  },
  {
    "path": "jesse/strategies/TestMultipleEntryOrdersUpdateEntryLongPositions/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\nclass TestMultipleEntryOrdersUpdateEntryLongPositions(Strategy):\n    def before(self) -> None:\n        if self.price == 12:\n            assert self.orders[0].type == 'MARKET'\n            assert self.orders[0].status == 'EXECUTED'\n\n            assert self.orders[1].type == 'LIMIT'\n            assert self.orders[1].status == 'ACTIVE'\n\n        if self.price == 15:\n            assert self.orders[0].type == 'MARKET'\n            assert self.orders[0].status == 'EXECUTED'\n            assert self.orders[0].price == 10\n\n            assert self.orders[1].type == 'LIMIT'\n            assert self.orders[1].status == 'CANCELED'\n            assert self.orders[2].type == 'LIMIT'\n            assert self.orders[2].status == 'CANCELED'\n\n            assert self.orders[3].type == 'MARKET'\n            assert self.orders[3].status == 'EXECUTED'\n            assert self.orders[3].price == 13\n\n            assert self.orders[4].type == 'LIMIT'\n            assert self.orders[4].status == 'ACTIVE'\n            assert self.orders[4].price == 10\n\n    def should_long(self) -> bool:\n        return self.price == 10\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        self.buy = [\n            (1, 10),\n            (1, 9),\n            (1, 8),\n        ]\n\n    def update_position(self) -> None:\n        if self.price == 13:\n            self.buy = [\n                (1, 13),\n                (1, 10),\n            ]\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestMultipleEntryOrdersUpdateEntryShortPositions/__init__.py",
    "content": "from jesse.strategies import Strategy\nfrom pprint import pprint\nimport jesse.helpers as jh\n\n\nclass TestMultipleEntryOrdersUpdateEntryShortPositions(Strategy):\n    def before(self) -> None:\n        if self.price == 12:\n            assert self.orders[0].type == 'MARKET'\n            assert self.orders[0].status == 'EXECUTED'\n            assert self.orders[0].price == 10\n\n            assert self.orders[1].type == 'LIMIT'\n            assert self.orders[1].status == 'ACTIVE'\n            assert self.orders[1].price == 20\n\n        if self.price == 15:\n            assert self.orders[0].type == 'MARKET'\n            assert self.orders[0].status == 'EXECUTED'\n            assert self.orders[0].price == 10\n\n            assert self.orders[1].type == 'LIMIT'\n            assert self.orders[1].status == 'CANCELED'\n            assert self.orders[1].price == 20\n            assert self.orders[2].type == 'LIMIT'\n            assert self.orders[2].status == 'CANCELED'\n            assert self.orders[2].price == 21\n\n            assert self.orders[3].type == 'MARKET'\n            assert self.orders[3].status == 'EXECUTED'\n            assert self.orders[3].price == 13\n\n            assert self.orders[4].type == 'LIMIT'\n            assert self.orders[4].status == 'ACTIVE'\n            assert self.orders[4].price == 22\n\n    def should_long(self) -> bool:\n        return False\n\n    def should_short(self) -> bool:\n        return self.price == 10\n\n    def go_long(self):\n        pass\n\n    def update_position(self) -> None:\n        if self.price == 13:\n            self.sell = [\n                (1, 13),\n                (1, 22),\n            ]\n\n    def go_short(self):\n        self.sell = [\n            (1, 10),\n            (1, 20),\n            (1, 21),\n        ]\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestOnCancelMethod/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestOnCancelMethod(Strategy):\n    def should_long(self):\n        return self.price == 10\n\n    def go_long(self):\n        if self.price == 10:\n            # submit a LIMIT order that is not supposed to get executed\n            self.buy = 1, self.price - 2\n\n    def should_cancel_entry(self):\n        return self.price == 12\n\n    def on_cancel(self) -> None:\n        assert self.price == 12\n"
  },
  {
    "path": "jesse/strategies/TestOnClosePosition/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestOnClosePosition(Strategy):\n    def should_long(self):\n        return self.price == 10\n\n    def go_long(self):\n        if self.price == 10:\n            self.buy = 1, self.price\n    \n    def on_open_position(self, order):\n        self.take_profit = 1, 12 # close the position at 12\n\n    def on_close_position(self, order, closed_trade) -> None:\n        assert closed_trade.exit_price == 12\n        assert closed_trade.entry_price == 10\n        assert closed_trade.qty == 1\n        assert closed_trade.type == \"long\"\n        assert closed_trade.timeframe == self.timeframe\n        assert closed_trade.exchange == self.exchange\n        assert closed_trade.symbol == self.symbol\n"
  },
  {
    "path": "jesse/strategies/TestOnRouteOpenPosition/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestOnRouteOpenPosition(Strategy):\n    def before(self) -> None:\n        if self.index == 0:\n            assert self.symbol == 'BTC-USDT'\n\n        if self.price == 20:\n            assert self.is_open\n\n        if self.price == 21:\n            assert self.is_close\n\n    def should_long(self) -> bool:\n        return self.price == 10\n\n    def go_long(self) -> None:\n        self.buy = 1, self.price\n\n    def should_cancel_entry(self):\n        return False\n\n    def on_route_open_position(self, strategy) -> None:\n        if self.is_open and strategy.symbol == 'ETH-USDT':\n            self.liquidate()\n"
  },
  {
    "path": "jesse/strategies/TestOnRouteOpenPosition2/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestOnRouteOpenPosition2(Strategy):\n    def before(self) -> None:\n        if self.index == 0:\n            assert self.symbol == 'ETH-USDT'\n\n    def should_long(self) -> bool:\n        return self.price == 20\n\n    def go_long(self) -> None:\n        self.buy = 1, self.price\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestOrderIsStopLossProperty/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\n\n\nclass TestOrderIsStopLossProperty(Strategy):\n    def should_long(self):\n        return False\n\n    def should_short(self):\n        return self.index == 0\n\n    def should_cancel_entry(self):\n        return False\n\n    def go_long(self):\n        pass\n\n    def go_short(self):\n        self.sell = 1, self.price\n        self.stop_loss = 1, self.price + 5\n\n    def on_close_position(self, order, closed_trade) -> None:\n        assert order.is_stop_loss == True\n"
  },
  {
    "path": "jesse/strategies/TestOrderIsTakeProfitProperty/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\n\n\nclass TestOrderIsTakeProfitProperty(Strategy):\n    def should_long(self):\n        return self.index == 0\n\n    def should_cancel_entry(self):\n        return False\n\n    def go_long(self):\n        self.buy = 1, self.price\n        self.take_profit = 1, self.price + 5\n\n    def on_close_position(self, order, closed_trade) -> None:\n        assert order.is_take_profit == True\n"
  },
  {
    "path": "jesse/strategies/TestOrderPriceCannotBeGreaterThanZero/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestOrderPriceCannotBeGreaterThanZero(Strategy):\n    def should_long(self) -> bool:\n        return self.price == 10\n\n    def go_long(self) -> None:\n        self.buy = 1, 0\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestOrderValueProperty/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestOrderValueProperty(Strategy):\n    def before(self) -> None:\n        if self.price == 11:\n            # get entry order\n            entry_order = self.entry_orders[0]\n            assert entry_order.value == 16\n\n    def should_long(self) -> bool:\n        return False\n\n    def go_long(self) -> None:\n        pass\n\n    def should_short(self) -> bool:\n        return self.price == 10\n\n    def go_short(self) -> None:\n        self.sell = 2, 8\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestOrdersAreSortedBeforeExecution/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\nclass TestOrdersAreSortedBeforeExecution(Strategy):\n    def should_long(self):\n        return self.price == 10\n\n    def go_long(self):\n        self.buy = [\n            (1, 10.2),\n            (1, 10.3),\n            (1, 10.1)\n        ]\n\n    def on_open_position(self, order) -> None:\n        # the order with the lowest price should be executed first\n        assert order.price == 10.1\n\n    def update_position(self):\n        if self.price == 20:\n            self.liquidate()\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestPortfolioValue/__init__.py",
    "content": "from jesse.strategies import Strategy\nfrom jesse import utils\n\nclass TestPortfolioValue(Strategy):\n    def before(self):\n        if self.index == 0:\n            # starting capital\n            assert self.leverage == 2\n            assert self.portfolio_value == 10_000\n\n        if self.index == 10:\n            assert round(self.portfolio_value) == round(\n                ((self.all_positions['ETH-USDT'].pnl + self.all_positions['BTC-USDT'].pnl) * self.leverage) + self.balance\n            )\n\n    def should_long(self) -> bool:\n        return self.index == 0 and self.symbol == 'ETH-USDT'\n\n    def should_short(self) -> bool:\n        return self.index == 0 and self.symbol == 'BTC-USDT'\n\n    def go_long(self):\n        qty = utils.size_to_qty(100, self.price)\n        self.buy = qty, self.price\n\n    def go_short(self):\n        qty = utils.size_to_qty(10, self.price)\n        self.sell = qty, self.price\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestPortfolioValueIncludesPositionValueAndOpenOrdersValue/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestPortfolioValueIncludesPositionValueAndOpenOrdersValue(Strategy):\n    def before(self) -> None:\n        if self.price == 20:\n            # portfolio value should be the current balance, plus the value\n            # or the open order plus the value of the current open position\n            assert self.portfolio_value == (10_000 - 10 - 8) + 8 + 20\n\n    def should_long(self) -> bool:\n        return self.price == 10\n\n    def go_long(self) -> None:\n        self.buy = [\n            # executed order\n            (1, 10),\n            # left open order\n            (1, 8),\n        ]\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestPositionExchangeTypeProperty1/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestPositionExchangeTypeProperty1(Strategy):\n    def before(self) -> None:\n        if self.index == 0:\n            assert self.exchange_type == 'futures'\n\n    def should_long(self):\n        return False\n\n    def go_long(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestPositionExchangeTypeProperty2/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestPositionExchangeTypeProperty2(Strategy):\n    def before(self) -> None:\n        if self.index == 0:\n            assert self.exchange_type == 'spot'\n\n    def should_long(self):\n        return False\n\n    def go_long(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestPositionOpenIncreaseReduceCloseEventsInSpot/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestPositionOpenIncreaseReduceCloseEventsInSpot(Strategy):\n    def before(self) -> None:\n        if self.index == 0:\n            self.vars['called_on_open_position'] = False\n            self.vars['called_on_increased_position'] = False\n            self.vars['called_on_reduced_position'] = False\n            self.vars['called_on_close_position'] = False\n\n    def before_terminate(self):\n        assert self.vars['called_on_open_position'] is True\n        assert self.vars['called_on_increased_position'] is True\n        assert self.vars['called_on_reduced_position'] is True\n        assert self.vars['called_on_close_position'] is True\n\n    def should_long(self):\n        return self.price == 10\n\n    def go_long(self):\n        self.buy = [\n            (1, 10),\n            (2, 12)\n        ]\n\n    def on_open_position(self, order) -> None:\n        assert order.qty == 1\n        assert self.position.qty == 0.999\n        self.vars['called_on_open_position'] = True\n\n    def on_increased_position(self, order) -> None:\n        assert order.qty == 2\n        assert self.position.qty == 2.997\n        self.vars['called_on_increased_position'] = True\n\n        # submit reduce and closing orders\n        self.take_profit = [\n            (0.999, 15),\n            (1.998, 17),\n        ]\n\n    def on_reduced_position(self, order) -> None:\n        assert order.qty == -0.999\n        assert self.position.qty == 1.998\n        self.vars['called_on_reduced_position'] = True\n\n    def on_close_position(self, order, closed_trade) -> None:\n        assert order.qty == -1.998\n        assert self.position.qty == 0\n        self.vars['called_on_close_position'] = True\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestPositionTotalCostProperty/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestPositionTotalCostProperty(Strategy):\n    def before(self) -> None:\n        if self.price == 20:\n            if self.exchange_type == 'futures':\n                assert self.position.entry_price * self.position.qty == 100\n                assert self.leverage == 2\n                assert self.position.total_cost == 50\n            elif self.exchange_type == 'spot':\n                assert self.position.entry_price * self.position.qty == 100\n                assert self.leverage == 1\n                assert self.position.total_cost == 100\n\n    def should_long(self) -> bool:\n        return self.price == 10\n\n    def go_long(self) -> None:\n        self.buy = 10, self.price\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestPositionWithLeverage1/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\nclass TestPositionWithLeverage1(Strategy):\n    def should_long(self) -> bool:\n        return self.index == 0\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        # price is at $1\n        self.buy = 10, self.price\n\n    def update_position(self):\n        if self.price == 3:\n            assert self.position.pnl == 20\n            assert self.position.roi == 200\n            assert self.position.total_cost == 10\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestPositionWithLeverage2/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\nclass TestPositionWithLeverage2(Strategy):\n    def should_long(self) -> bool:\n        return self.price == 10\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        # price is at $1\n        self.buy = 10, self.price\n\n    def update_position(self):\n        if self.price == 12:\n            assert self.position.exchange.futures_leverage == 2\n            assert self.position.pnl == 20\n            assert self.position.total_cost == 50\n            assert self.position.roi == 40\n            assert self.position.pnl_percentage == self.position.roi\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestPositions/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\nclass TestPositions(Strategy):\n    def before(self):\n        if self.index == 0:\n            assert self.all_positions[self.symbol] == self.position\n\n    def should_long(self) -> bool:\n        return False\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        pass\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestProperBalanceHanldingInSpotAfterOrderCancellation/__init__.py",
    "content": "from jesse.strategies import Strategy\nfrom jesse import utils\nfrom jesse.store import store\n\n\nclass TestProperBalanceHanldingInSpotAfterOrderCancellation(Strategy):\n    def before(self) -> None:\n        # after the first trade\n        if self.price == 89:\n            assert self.balance == 9900\n            e = store.exchanges.get_exchange(self.exchange)\n            assert e.assets['USDT'] == 9900\n            assert e.assets['BTC'] == 0\n        \n    def should_long(self):\n        return self.price == 100\n\n    def go_long(self):\n        entry = self.price\n        qty = utils.size_to_qty(1000, entry)\n        self.buy = qty, entry\n\n    def on_open_position(self, order):\n        self.take_profit = self.position.qty, 110\n        self.stop_loss = self.position.qty, 90\n    "
  },
  {
    "path": "jesse/strategies/TestReduceOnlyMarketOrders/__init__.py",
    "content": "from jesse import utils\nfrom jesse.strategies import Strategy\n\n\nclass TestReduceOnlyMarketOrders(Strategy):\n    def should_long(self) -> bool:\n        return self.price == 10\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        entry = self.price\n        qty = utils.size_to_qty(self.balance, entry, fee_rate=self.fee_rate)\n        self.buy = qty, entry\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n    def update_position(self):\n        if self.price == 20:\n            self.liquidate()\n"
  },
  {
    "path": "jesse/strategies/TestShortInSpot/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\nclass TestShortInSpot(Strategy):\n    def should_short(self) -> bool:\n        return True\n\n    def go_short(self) -> None:\n        self.sell = 1, self.price\n\n    def should_long(self):\n        return False\n\n    def go_long(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n\n\n"
  },
  {
    "path": "jesse/strategies/TestStopLossPriceIsReplacedWithMarketOrderForBetterPriceLongPosition/__init__.py",
    "content": "from jesse.strategies import Strategy\nfrom jesse.enums import order_types\n\n\nclass TestStopLossPriceIsReplacedWithMarketOrderForBetterPriceLongPosition(Strategy):\n    def before(self) -> None:\n        if self.price == 15:\n            last_trade = self.trades[-1]\n            # it should have closed on the market price at the time being 10 instead of 12\n            assert last_trade.exit_price == 10\n\n            # the order type should be market\n            assert self.trades[-1].orders[0].type == order_types.MARKET\n            assert self.trades[-1].orders[1].type == order_types.MARKET\n\n    def should_long(self) -> bool:\n        return self.price == 10\n\n    def go_long(self):\n        self.buy = 1, 10\n        self.stop_loss = 1, 12\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestStopLossPriceIsReplacedWithMarketOrderForBetterPriceShortPosition/__init__.py",
    "content": "from jesse.strategies import Strategy\nfrom jesse.enums import order_types\n\n\nclass TestStopLossPriceIsReplacedWithMarketOrderForBetterPriceShortPosition(Strategy):\n    def before(self) -> None:\n        if self.price == 15:\n            last_trade = self.trades[-1]\n            # it should have closed on the market price at the time being 10 instead of 8\n            assert last_trade.exit_price == 10\n\n            # the order type should be market\n            assert self.trades[-1].orders[0].type == order_types.MARKET\n            assert self.trades[-1].orders[1].type == order_types.MARKET\n\n    def should_long(self) -> bool:\n        return False\n\n    def go_long(self):\n        pass\n\n    def should_short(self) -> bool:\n        return self.price == 10\n\n    def go_short(self):\n        self.sell = 1, 10\n        self.stop_loss = 1, 8\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestStopOrderShouldConsiderExecutedTakeProfitOrdersInSpot/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestStopOrderShouldConsiderExecutedTakeProfitOrdersInSpot(Strategy):\n    def should_long(self):\n        return self.price == 10\n\n    def go_long(self):\n        self.buy = 2, self.price\n\n    def on_open_position(self, order) -> None:\n        self.take_profit = [\n            (1, 15),\n            (1, 20),\n        ]\n\n    def on_reduced_position(self, order) -> None:\n        assert self.position.qty == 1\n        self.stop_loss = 1, self.price - 1\n\n    def on_close_position(self, order, closed_trade) -> None:\n        last_trade = self.trades[-1]\n\n        if self.trades_count == 1:\n            assert last_trade.exit_price == 17.5\n            assert last_trade.entry_price == 10\n            assert last_trade.qty == 2\n            assert last_trade.type == \"long\"\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestStrategyVariablesAreResetBeforeOpeningNewPosition/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestStrategyVariablesAreResetBeforeOpeningNewPosition(Strategy):\n    def should_long(self) -> bool:\n        return self.price in [10, 20]\n\n    def go_long(self) -> None:\n        self.buy = 1, self.price\n\n    def update_position(self) -> None:\n        if self.price == 11:\n            self.liquidate()\n\n    def on_close_position(self, order, closed_trade) -> None:\n        self.take_profit = 1, self.price - 1\n        self.stop_loss = 1, self.price - 1\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestTakeProfitPriceIsReplacedWithMarketOrderWhenMoreConvenientLongPosition/__init__.py",
    "content": "from jesse.strategies import Strategy\nfrom jesse.enums import order_types\n\n\nclass TestTakeProfitPriceIsReplacedWithMarketOrderWhenMoreConvenientLongPosition(Strategy):\n    def before(self) -> None:\n        if self.price == 15:\n            last_trade = self.trades[-1]\n            # it should have closed on the market price at the time being 10 instead of 8\n            assert last_trade.exit_price == 10\n\n            # the order type should be market\n            assert self.trades[-1].orders[0].type == order_types.MARKET\n            assert self.trades[-1].orders[1].type == order_types.MARKET\n\n    def should_long(self) -> bool:\n        return self.price == 10\n\n    def go_long(self):\n        self.buy = 1, 10\n        self.take_profit = 1, 8\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestTakeProfitPriceIsReplacedWithMarketOrderWhenMoreConvenientShortPosition/__init__.py",
    "content": "from jesse.strategies import Strategy\nfrom jesse.enums import order_types\n\n\nclass TestTakeProfitPriceIsReplacedWithMarketOrderWhenMoreConvenientShortPosition(Strategy):\n    def before(self) -> None:\n        if self.price == 15:\n            last_trade = self.trades[-1]\n            # it should have closed on the market price at the time being 10 instead of 12\n            assert last_trade.exit_price == 10\n\n            # the order type should be market\n            assert self.trades[-1].orders[0].type == order_types.MARKET\n            assert self.trades[-1].orders[1].type == order_types.MARKET\n\n    def should_long(self) -> bool:\n        return False\n\n    def go_long(self):\n        pass\n\n    def should_short(self) -> bool:\n        return self.price == 10\n\n    def go_short(self):\n        self.sell = 1, 10\n        self.take_profit = 1, 12\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestTerminate/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestTerminate(Strategy):\n    def __init__(self):\n        super().__init__()\n        self.__before_terminate_called = False\n\n    def should_long(self) -> bool:\n        return self.price == 10\n\n    def go_long(self) -> None:\n        self.buy = 1, self.price\n\n    def should_cancel_entry(self):\n        return False\n\n    def before_terminate(self):\n        self.__before_terminate_called = True\n\n    def terminate(self):\n        assert self.__before_terminate_called is True\n\n        # change a value in store so we can assert the change in the original unit test\n        from jesse.store import store\n        store.app.starting_time = 1\n"
  },
  {
    "path": "jesse/strategies/TestUsageOfShouldCancelRaisesNotImplementedError/__init__.py",
    "content": "from jesse.strategies import Strategy\nimport jesse.helpers as jh\nfrom jesse import utils\n\n\nclass TestUsageOfShouldCancelRaisesNotImplementedError(Strategy):\n    def should_long(self) -> bool:\n        return self.price == 10\n\n    def go_long(self) -> None:\n        self.buy = 1, self.price - 5\n\n    def should_cancel(self) -> bool:\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestVanillaStrategy/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\nclass TestVanillaStrategy(Strategy):\n    def should_long(self):\n        return False\n\n    def go_long(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestWalletBalance/__init__.py",
    "content": "from jesse import utils\nfrom jesse.strategies import Strategy\nimport jesse.helpers as jh\n\n\nclass TestWalletBalance(Strategy):\n    def before(self):\n        if self.index == 0:\n            assert self.position.exchange.wallet_balance == 10000 == self.balance\n            assert self.position.exchange.available_margin == 10000 == self.available_margin\n            assert self.leveraged_available_margin == 20000\n\n        if self.price == 11:\n            # wallet balance should have stayed the same while we haven't spent from it yet\n            assert self.position.exchange.wallet_balance == 10000 == self.balance\n            # Adjusted available_margin calculation\n            assert round(self.position.exchange.available_margin) == 10000 - (4000 / 2) == round(self.available_margin)\n            assert round(self.leveraged_available_margin) == 20000 - 4000\n\n        if self.price == 12:\n            # wallet balance should have changed because of fees, but we have fee=0 in this test, so:\n            assert self.position.exchange.wallet_balance == 10000 == self.balance\n            # Adjusted available_margin calculation\n            assert round(self.position.exchange.available_margin) == 10000 - (4000 / 2) == round(self.available_margin)\n\n        if self.price == 21:\n            # wallet balance must now equal to 10_000 + the profit we made from previous trade\n            previous_trade = self.trades[0]\n            assert self.position.exchange.wallet_balance == previous_trade.pnl + 10000\n            # now that position is closed, available_margin should equal to wallet_balance\n            assert self.position.exchange.available_margin == previous_trade.pnl + 10000 == self.available_margin\n            assert self.balance == self.position.exchange.wallet_balance\n            assert self.balance == self.available_margin\n\n    def should_long(self) -> bool:\n        return self.price == 10\n\n    def should_short(self) -> bool:\n        return False\n\n    def go_long(self):\n        qty1 = utils.size_to_qty(2000, self.price + 2)\n        qty2 = utils.size_to_qty(2000, self.price + 4)\n        self.buy = [\n            (qty1, self.price + 2),\n            (qty2, self.price + 4),\n        ]\n\n    def update_position(self):\n        if self.price == 20:\n            self.liquidate()\n\n    def go_short(self):\n        pass\n\n    def should_cancel_entry(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/TestWithoutCancelMethod/__init__.py",
    "content": "from jesse.strategies import Strategy\n\n\nclass TestWithoutCancelMethod(Strategy):\n    def should_long(self):\n        return False\n\n    def go_long(self):\n        pass\n\n    def go_short(self):\n        pass\n\n    def should_short(self):\n        return False\n"
  },
  {
    "path": "jesse/strategies/__init__.py",
    "content": "from .Strategy import cached, Strategy\n"
  },
  {
    "path": "jesse/testing_utils.py",
    "content": "import jesse.helpers as jh\nfrom jesse.config import reset_config\nfrom jesse.enums import exchanges\nfrom jesse.factories import candles_from_close_prices\nfrom jesse.modes import backtest_mode\nfrom jesse.config import config\n\n\ndef get_btc_and_eth_candles():\n    candles = {\n        jh.key(exchanges.SANDBOX, 'BTC-USDT'): {\n            'exchange': exchanges.SANDBOX,\n            'symbol': 'BTC-USDT',\n            'candles': candles_from_close_prices(range(101, 200)),\n        }\n    }\n\n    candles[jh.key(exchanges.SANDBOX, 'ETH-USDT')] = {\n        'exchange': exchanges.SANDBOX,\n        'symbol': 'ETH-USDT',\n        'candles': candles_from_close_prices(range(1, 100))\n    }\n    return candles\n\n\ndef get_btc_candles(candles_count=100):\n    return {\n        jh.key(exchanges.SANDBOX, 'BTC-USDT'): {\n            'exchange': exchanges.SANDBOX,\n            'symbol': 'BTC-USDT',\n            'candles': candles_from_close_prices(range(1, candles_count)),\n        }\n    }\n\n\ndef get_downtrend_candles(candles_count=100):\n    return {\n        jh.key(exchanges.SANDBOX, 'BTC-USDT'): {\n            'exchange': exchanges.SANDBOX,\n            'symbol': 'BTC-USDT',\n            'candles': candles_from_close_prices(range(candles_count, 10, -1)),\n        }\n    }\n\n\ndef set_up(is_futures_trading=True, leverage=1, leverage_mode='cross', fee=0):\n    reset_config()\n\n    config['env']['exchanges'][exchanges.SANDBOX]['balance'] = 10_000\n\n    config['env']['exchanges']['Sandbox']['fee'] = fee\n\n    if is_futures_trading:\n        # used only in futures trading\n        config['env']['exchanges'][exchanges.SANDBOX]['type'] = 'futures'\n        config['env']['exchanges'][exchanges.SANDBOX]['futures_leverage_mode'] = leverage_mode\n        config['env']['exchanges'][exchanges.SANDBOX]['futures_leverage'] = leverage\n    else:\n        config['env']['exchanges'][exchanges.SANDBOX]['type'] = 'spot'\n\n\ndef single_route_backtest(\n        strategy_name: str, is_futures_trading=True,\n        leverage=1, leverage_mode='cross', trend='up', fee=0,\n        candles_count=100, timeframe='1m'\n):\n    \"\"\"\n    used to simplify simple tests\n    \"\"\"\n    set_up(\n        is_futures_trading=is_futures_trading,\n        leverage=leverage,\n        leverage_mode=leverage_mode,\n        fee=fee\n    )\n\n    routes = [{'symbol': 'BTC-USDT', 'timeframe': timeframe, 'strategy': strategy_name}]\n\n    if trend == 'up':\n        candles = get_btc_candles(candles_count)\n    elif trend == 'down':\n        candles = get_downtrend_candles(candles_count)\n    else:\n        raise ValueError\n\n    # dates are fake. just to pass required parameters\n    backtest_mode.run('000', False, {}, exchanges.SANDBOX, routes, [], '2019-04-01', '2019-04-02', candles)\n\n\ndef two_routes_backtest(\n        strategy_name1: str, strategy_name2: str, is_futures_trading=True, leverage=1, leverage_mode='cross', trend='up'\n):\n    \"\"\"\n    used to simplify simple tests\n    \"\"\"\n    set_up(\n        is_futures_trading=is_futures_trading,\n        leverage=leverage,\n        leverage_mode=leverage_mode\n    )\n\n    routes = [\n        {'symbol': 'BTC-USDT', 'timeframe': '1m', 'strategy': strategy_name1},\n        {'symbol': 'ETH-USDT', 'timeframe': '1m', 'strategy': strategy_name2},\n    ]\n\n    # dates are fake. just to pass required parameters\n    backtest_mode.run('000', False, {}, exchanges.SANDBOX, routes, [], '2019-04-01', '2019-04-02', get_btc_and_eth_candles())\n\n\ndef two_data_routes_backtest(\n        strategy_name1: str, strategy_name2: str, is_futures_trading=True, leverage=1, leverage_mode='cross', trend='up'\n):\n    \"\"\"\n    used to simplify simple tests\n    \"\"\"\n    set_up(\n        is_futures_trading=is_futures_trading,\n        leverage=leverage,\n        leverage_mode=leverage_mode\n    )\n\n    routes = [\n        {'symbol': 'BTC-USDT', 'timeframe': '1m', 'strategy': strategy_name1},\n        {'symbol': 'ETH-USDT', 'timeframe': '5m', 'strategy': strategy_name2},\n    ]\n\n    data_routes = [\n        {'symbol': 'BTC-USDT', 'timeframe': '5m'},\n        {'symbol': 'ETH-USDT', 'timeframe': '15m'},\n    ]\n\n    # dates are fake. just to pass required parameters\n    backtest_mode.run('000', False, {}, exchanges.SANDBOX, routes, data_routes, '2019-04-01', '2019-04-02', get_btc_and_eth_candles())\n"
  },
  {
    "path": "jesse/utils.py",
    "content": "import math\nfrom decimal import Decimal\nfrom typing import Union\n\nimport numpy as np\nimport pandas as pd\n\nimport jesse.helpers as jh\nfrom jesse.enums import timeframes\nimport statsmodels.api as sm\n\nimport jesse_rust\n\n\ndef anchor_timeframe(timeframe: str) -> str:\n    \"\"\"\n    Returns the anchor timeframe. Useful for writing\n    dynamic strategies using multiple timeframes.\n\n    :param timeframe: str\n    :return: str\n    \"\"\"\n\n    dic = {\n        timeframes.MINUTE_1: timeframes.MINUTE_5,\n        timeframes.MINUTE_3: timeframes.MINUTE_15,\n        timeframes.MINUTE_5: timeframes.MINUTE_30,\n        timeframes.MINUTE_15: timeframes.HOUR_2,\n        timeframes.MINUTE_30: timeframes.HOUR_3,\n        timeframes.MINUTE_45: timeframes.HOUR_3,\n        timeframes.HOUR_1: timeframes.HOUR_4,\n        timeframes.HOUR_2: timeframes.HOUR_6,\n        timeframes.HOUR_3: timeframes.DAY_1,\n        timeframes.HOUR_4: timeframes.DAY_1,\n        timeframes.HOUR_6: timeframes.DAY_1,\n        timeframes.HOUR_8: timeframes.DAY_1,\n        timeframes.HOUR_12: timeframes.DAY_1,\n    }\n\n    return dic[timeframe]\n\n\ndef crossed(series1: np.ndarray, series2: Union[float, int, np.ndarray], direction: str = None,\n            sequential: bool = False) -> bool:\n    \"\"\"\n    Helper for detection of crosses\n\n    :param series1: np.ndarray\n    :param series2: float, int, np.array\n    :param direction: str - default: None - above or below\n    :param sequential: bool - default: False\n\n    :return: bool\n    \"\"\"\n\n    if sequential:\n        series1_shifted = jh.np_shift(series1, 1, np.nan)\n\n        if type(series2) is np.ndarray:\n            series2_shifted = jh.np_shift(series2, 1, np.nan)\n        else:\n            series2_shifted = series2\n\n        if direction is None or direction == \"above\":\n            cross_above = np.logical_and(series1 > series2, series1_shifted <= series2_shifted)\n\n        if direction is None or direction == \"below\":\n            cross_below = np.logical_and(series1 < series2, series1_shifted >= series2_shifted)\n\n        if direction is None:\n            return np.logical_or(cross_above, cross_below)\n\n    else:\n        if type(series2) is not np.ndarray:\n            series2 = np.array([series2, series2])\n\n        if direction is None or direction == \"above\":\n            cross_above = series1[-2] <= series2[-2] and series1[-1] > series2[-1]\n        if direction is None or direction == \"below\":\n            cross_below = series1[-2] >= series2[-2] and series1[-1] < series2[-1]\n\n        if direction is None:\n            return cross_above or cross_below\n\n    if direction == \"above\":\n        return cross_above\n    else:\n        return cross_below\n\n\ndef estimate_risk(entry_price: float, stop_price: float) -> float:\n    \"\"\"\n    estimates the risk per share\n\n    :param entry_price: float\n    :param stop_price: float\n    :return: float\n    \"\"\"\n    if math.isnan(entry_price) or math.isnan(stop_price):\n        raise TypeError()\n\n    return abs(entry_price - stop_price)\n\n\ndef limit_stop_loss(entry_price: float, stop_price: float, trade_type: str, max_allowed_risk_percentage: int) -> float:\n    \"\"\"\n    Limits the stop-loss price according to the max allowed risk percentage.\n    (How many percent you're OK with the price going against your position)\n\n    :param entry_price:\n    :param stop_price:\n    :param trade_type:\n    :param max_allowed_risk_percentage:\n    :return: float\n    \"\"\"\n    risk = abs(entry_price - stop_price)\n    max_allowed_risk = entry_price * (max_allowed_risk_percentage / 100)\n    risk = min(risk, max_allowed_risk)\n    return (entry_price - risk) if trade_type == 'long' else (entry_price + risk)\n\n\ndef numpy_candles_to_dataframe(candles: np.ndarray, name_date: str = \"date\", name_open: str = \"open\",\n                               name_high: str = \"high\",\n                               name_low: str = \"low\", name_close: str = \"close\",\n                               name_volume: str = \"volume\") -> pd.DataFrame:\n    columns = [name_date, name_open, name_close, name_high, name_low, name_volume]\n    df = pd.DataFrame(data=candles, index=pd.to_datetime(candles[:, 0], unit=\"ms\"), columns=columns)\n    df[name_date] = pd.to_datetime(df.index, unit=\"ms\")\n    return df\n\n\ndef qty_to_size(qty: float, price: float) -> float:\n    \"\"\"\n    converts quantity to position-size\n    example: requesting 2 shares at the price of %50 would return $100\n\n    :param qty: float\n    :param price: float\n    :return: float\n    \"\"\"\n    if math.isnan(qty) or math.isnan(price):\n        raise TypeError()\n\n    return qty * price\n\n\ndef risk_to_qty(capital: float, risk_per_capital: float, entry_price: float, stop_loss_price: float, precision: int = 8,\n                fee_rate: float = 0) -> float:\n    \"\"\"\n    a risk management tool to quickly get the qty based on risk percentage\n\n    :param capital:\n    :param risk_per_capital:\n    :param entry_price:\n    :param stop_loss_price:\n    :param precision:\n    :param fee_rate:\n    :return: float\n    \"\"\"\n    risk_per_qty = abs(entry_price - stop_loss_price)\n    size = risk_to_size(capital, risk_per_capital, risk_per_qty, entry_price)\n\n    if fee_rate != 0:\n        size = size * (1 - fee_rate * 3)\n\n    return size_to_qty(size, entry_price, precision=precision, fee_rate=fee_rate)\n\n\ndef risk_to_size(capital_size: float, risk_percentage: float, risk_per_qty: float, entry_price: float) -> float:\n    \"\"\"\n    calculates the size of the position based on the amount of risk percentage you're willing to take\n    example: round(risk_to_size(10000, 1, 0.7, 8.6)) == 1229\n\n    :param capital_size:\n    :param risk_percentage:\n    :param risk_per_qty:\n    :param entry_price:\n    :return: float\n    \"\"\"\n    if risk_per_qty == 0:\n        raise ValueError('risk cannot be zero')\n\n    risk_percentage /= 100\n    temp_size = ((risk_percentage * capital_size) / risk_per_qty) * entry_price\n    return min(temp_size, capital_size)\n\n\ndef size_to_qty(position_size: float, entry_price: float, precision: int = 3, fee_rate: float = 0) -> float:\n    \"\"\"\n    converts position-size to quantity\n    example: requesting $100 at the entry_price of $50 would return 2\n    :param position_size: float\n    :param entry_price: float\n    :param precision: int\n    :param fee_rate:\n    :return: float\n    \"\"\"\n    # make sure entry_price is not None\n    if entry_price is None:\n        raise TypeError(f\"entry_price is None\")\n\n    if math.isnan(position_size) or math.isnan(entry_price):\n        raise TypeError(f\"position_size: {position_size}, entry_price: {entry_price}\")\n\n    if fee_rate != 0:\n        position_size *= 1 - fee_rate * 3\n\n    return jh.floor_with_precision(position_size / entry_price, precision)\n\n\ndef subtract_floats(float1: float, float2: float) -> float:\n    \"\"\"\n    Subtracts two floats without the rounding issue in Python\n\n    :param float1: float\n    :param float2: float\n\n    :return: float\n    \"\"\"\n    return jesse_rust.subtract_floats(float1, float2)\n\n\ndef sum_floats(float1: float, float2: float) -> float:\n    \"\"\"\n    Sums two floats without the rounding issue in Python\n\n    :param float1: float\n    :param float2: float\n\n    :return: float\n    \"\"\"\n    return jesse_rust.sum_floats(float1, float2)\n\n\ndef strictly_increasing(series: np.ndarray, lookback: int) -> bool:\n    a = series[-lookback:]\n    diff = np.diff(a)\n    return np.all(diff > 0)\n\n\ndef strictly_decreasing(series: np.ndarray, lookback: int) -> bool:\n    a = series[-lookback:]\n    diff = np.diff(a)\n    return np.all(diff < 0)\n\n\ndef streaks(series: np.ndarray, use_diff=True) -> np.ndarray:\n    if use_diff:\n        series = np.diff(series)\n    pos = np.clip(series, 0, 1).astype(bool).cumsum()\n    neg = np.clip(series, -1, 0).astype(bool).cumsum()\n    streak = np.where(series >= 0, pos - np.maximum.accumulate(np.where(series <= 0, pos, 0)),\n                      -neg + np.maximum.accumulate(np.where(series >= 0, neg, 0)))\n\n    return np.concatenate(\n        (np.full((series.shape[0] - streak.shape[0]), np.nan), streak)\n    )\n\n\ndef signal_line(series: np.ndarray, period: int = 10, matype: int = 0) -> np.ndarray:\n    from jesse.indicators.ma import ma\n    return ma(series, period=period, matype=matype, sequential=True)\n\n\ndef kelly_criterion(win_rate: float, ratio_avg_win_loss: float) -> float:\n    return win_rate - ((1 - win_rate) / ratio_avg_win_loss)\n\n\ndef prices_to_returns(price_series: np.ndarray) -> np.ndarray:\n    \"\"\"\n    converts a series of asset prices to returns.\n    \"\"\"\n    pct = np.diff(price_series) / price_series[:-1] * 100\n    return jh.same_length(price_series, pct)\n\n\ndef z_score(series: np.ndarray) -> np.ndarray:\n    \"\"\"\n    A Z-score is a numerical measurement that describes a value's relationship to the mean of a group of values. Z-score is measured in terms of standard deviations from the mean\n    \"\"\"\n    return (series - np.mean(series)) / np.std(series)\n\n\ndef are_cointegrated(price_returns_1: np.ndarray, price_returns_2: np.ndarray, cutoff=0.05) -> bool:\n    \"\"\"\n    Uses unit-root test on residuals to test for cointegrated relationship\n    See Hamilton (1994) 19.2 for more details\n    H_0 is that there is no cointegration i.e. that the residuals have are unit root series (non-stationary)\n    We must observe significant p-value to convince ourselves that the series are cointegrated\n    \"\"\"\n    from statsmodels.tsa.stattools import coint\n\n    p_value = coint(price_returns_1, price_returns_2)[1]\n    return p_value < cutoff\n\n\ndef dd(msg: str) -> None:\n    \"\"\"\n    The dd function dumps the given variables and ends execution of the script. \n    Used for debugging. \n\n    :param msg: str\n    \"\"\"\n    print(msg)\n    jh.terminate_app()\n\n\ndef combinations_without_repeat(a: np.ndarray, n: int = 2) -> np.ndarray:\n    \"\"\"\n    Creates an array containing all combinations of the passed arrays individual values without repetitions. Useful for the optimization mode.\n    \"\"\"\n    from itertools import permutations\n    if n <= 1:\n        raise ValueError(\"n must be >= 2\")\n    return np.array(list(permutations(a, n)))\n\n\ndef calculate_alpha_beta(returns1: np.ndarray, returns2: np.ndarray) -> tuple:\n    # Add a constant to the independent variable (returns2)\n    X = sm.add_constant(returns2)  # Independent variable\n    model = sm.OLS(returns1, X).fit()  # Fit the model\n    alpha = model.params[0]  # Intercept (alpha)\n    beta = model.params[1]  # Slope (beta)\n    return alpha, beta\n\n\ndef timeframe_to_one_minutes(timeframe: str) -> int:\n    \"\"\"\n    Converts a given timeframe to its equivalent in minutes.\n\n    :param timeframe: str - The timeframe to convert. Supported timeframes include:\n        - '1m', '3m', '5m', '15m', '30m', '45m', '1h', '2h', '3h', '4h', '6h', '8h', '12h', \n          '1d', '3d', '1w', '1M'.\n    :return: int - The equivalent number of minutes for the given timeframe.\n\n    :raises InvalidTimeframe: If the provided timeframe is not supported.\n    \"\"\"\n    from jesse.enums import timeframes\n    from jesse.exceptions import InvalidTimeframe\n\n    dic = {\n        timeframes.MINUTE_1: 1,\n        timeframes.MINUTE_3: 3,\n        timeframes.MINUTE_5: 5,\n        timeframes.MINUTE_15: 15,\n        timeframes.MINUTE_30: 30,\n        timeframes.MINUTE_45: 45,\n        timeframes.HOUR_1: 60,\n        timeframes.HOUR_2: 60 * 2,\n        timeframes.HOUR_3: 60 * 3,\n        timeframes.HOUR_4: 60 * 4,\n        timeframes.HOUR_6: 60 * 6,\n        timeframes.HOUR_8: 60 * 8,\n        timeframes.HOUR_12: 60 * 12,\n        timeframes.DAY_1: 60 * 24,\n        timeframes.DAY_3: 60 * 24 * 3,\n        timeframes.WEEK_1: 60 * 24 * 7,\n        timeframes.MONTH_1: 60 * 24 * 30,\n    }\n\n    try:\n        return dic[timeframe]\n    except KeyError:\n        all_timeframes = [timeframe for timeframe in jh.class_iter(timeframes)]\n        raise InvalidTimeframe(\n            f'Timeframe \"{timeframe}\" is invalid. Supported timeframes are {\", \".join(all_timeframes)}.'\n        )\n"
  },
  {
    "path": "jesse/version.py",
    "content": "__version__ = \"1.13.8\""
  },
  {
    "path": "requirements.txt",
    "content": "arrow~=1.2.1\nblinker~=1.4\nclick~=8.0.3\nnumpy~=1.26.4\npandas~=2.2.3\npeewee~=3.14.8\npsycopg2-binary~=2.9.9\npydash~=6.0.0\nfnc~=0.5.3\npytest~=6.2.5\nrequests~=2.32.0\nscipy~=1.15.0\nstatsmodels~=0.14.4\ntabulate~=0.8.9\ntimeloop~=1.0.2\nwebsocket-client~=1.8.0\nwsaccel~=0.6.6\nsimplejson~=3.16.0\naioredis~=1.3.1\nredis~=4.1.4\nfastapi~=0.111.1\nuvicorn~=0.29.0\nwebsockets>=10.0.0\npython-dotenv~=0.19.2\naiofiles~=0.7.0\nnumba~=0.61.0rc2\nPyJWT~=2.8.0\ncryptography~=42.0.5\necdsa>=0.16.0\noptuna~=4.2.0\nray; python_version not in \"3.13\"\neth-account~=0.13.5\nmsgpack~=1.1.0\nstarkbank-ecdsa~=1.1.0\njesse-rust==1.0.1\njoblib~=1.5.3\nscikit-learn~=1.8.0\n"
  },
  {
    "path": "setup.py",
    "content": "from setuptools import setup, find_packages\n\n# also change in version.py\nVERSION = \"1.13.8\"\nDESCRIPTION = \"A trading framework for cryptocurrencies\"\nwith open(\"requirements.txt\", \"r\", encoding=\"utf-8\") as f:\n    REQUIRED_PACKAGES = f.read().splitlines()\n\nwith open(\"README.md\", \"r\", encoding=\"utf-8\") as f:\n    LONG_DESCRIPTION = f.read()\n\nsetup(\n    name='jesse',\n    version=VERSION,\n    author=\"Saleh Mir\",\n    author_email=\"saleh@jesse.trade\",\n    packages=find_packages(),\n    description=DESCRIPTION,\n    long_description=LONG_DESCRIPTION,\n    long_description_content_type=\"text/markdown\",\n    url=\"https://jesse.trade\",\n    project_urls={\n        'Documentation': 'https://docs.jesse.trade',\n        'Say Thanks!': 'https://jesse.trade/discord',\n        'Source': 'https://github.com/jesse-ai/jesse',\n        'Tracker': 'https://github.com/jesse-ai/jesse/issues',\n    },\n    install_requires=REQUIRED_PACKAGES,\n    entry_points='''\n        [console_scripts]\n        jesse=jesse.__init__:cli\n    ''',\n    classifiers=[\n        \"Programming Language :: Python :: 3\",\n        \"License :: OSI Approved :: MIT License\",\n        \"Operating System :: OS Independent\",\n    ],\n    python_requires='>=3.10',\n    include_package_data=True,\n    package_data={\n        '': ['*.dll', '*.dylib', '*.so', '*.json'],\n    },\n)\n"
  },
  {
    "path": "tests/__init__.py",
    "content": ""
  },
  {
    "path": "tests/data/__init__.py",
    "content": "from .test_candles_0 import test_candles_0\nfrom .test_candles_1 import test_candles_1\n"
  },
  {
    "path": "tests/data/test_candles_0.py",
    "content": "import numpy as np\n\ntest_candles_0 = np.array((\n    [1553817600000, 4092.56783507, 4092.56783507, 4092.56783507, 4092.56783507, 0.067335],\n    [1553817660000, 4092.56783507, 4092.5, 4092.56783507, 4092.5, 9.0847059],\n    [1553817720000, 4092.50930141, 4092.6, 4092.6, 4092.50930141, 16.27815035],\n    [1553817780000, 4092.6, 4094, 4094, 4092.6, 38.77994494],\n    [1553817840000, 4093.96914722, 4093.9, 4094, 4093.9, 53.554932879999996],\n    [1553817900000, 4093.96914722, 4093.96914722, 4093.96914722, 4093.96914722, 0.025],\n    [1553817960000, 4093.96914722, 4093.9, 4093.96914722, 4093.9, 1.004],\n    [1553818080000, 4093.96914722, 4093.9, 4093.96914722, 4093.9, 1.22377842],\n    [1553818140000, 4093.9, 4093.9, 4093.9, 4093.9, 0.38780000000000003],\n    [1553818200000, 4093.9, 4093.9, 4093.9, 4093.9, 0.03476801],\n    [1553818320000, 4093.9822767, 4093.9822767, 4093.9822767, 4093.9822767, 0.16575421],\n    [1553818380000, 4093.9, 4093.9, 4093.9, 4093.9, 0.13670157],\n    [1553818440000, 4093.9, 4093.99740744, 4093.99741704, 4093.9, 0.24191299],\n    [1553818500000, 4093.9, 4093.99740744, 4093.99740744, 4093.9, 0.03],\n    [1553818560000, 4093.9, 4093.9, 4093.99740744, 4093.9, 1.01670157],\n    [1553818620000, 4093.9822767, 4093.9822767, 4093.9822767, 4093.9822767, 0.004],\n    [1553818680000, 4093.99740744, 4093.99740744, 4093.99740744, 4093.99740744, 0.005],\n    [1553818740000, 4093.9822767, 4096.4, 4096.46807794, 4093.9822767, 3.44758364],\n    [1553818800000, 4096.5803711, 4097, 4097, 4096.5, 0.54524204],\n    [1553818860000, 4097, 4097.6, 4097.6, 4097, 4.94339855],\n    [1553818920000, 4097.6, 4097.7, 4097.8, 4097.6, 1.55095402],\n    [1553818980000, 4097.6, 4097.6, 4097.6, 4097.6, 0.42627359],\n    [1553819040000, 4097.6, 4095, 4097.6, 4095, 7.15621117],\n    [1553819100000, 4095.06583375, 4095, 4095.1, 4095, 1.09250841],\n    [1553819160000, 4095, 4095, 4095.06583375, 4095, 0.24951037],\n    [1553819220000, 4095, 4095, 4095.06583375, 4095, 0.22131235],\n    [1553819280000, 4095.06583375, 4095.166422, 4095.17817816, 4095.06583375, 0.20456374],\n    [1553819340000, 4095.17817816, 4095.166422, 4095.17817816, 4095.166422, 0.22283282],\n    [1553819400000, 4095.17817816, 4098.6, 4098.7, 4095.17817816, 6.11349743],\n    [1553819460000, 4098.6, 4098.6, 4098.7, 4098.6, 0.34804435],\n    [1553819520000, 4098.6, 4098.6, 4098.7, 4098.6, 0.58665605],\n    [1553819580000, 4098.6, 4102.9, 4103, 4098.6, 21.05608916],\n    [1553819640000, 4102.9, 4102.9, 4102.97603147, 4102.9, 1.81707692],\n    [1553819700000, 4102.9, 4102.9, 4102.97603147, 4102.9, 0.3012859],\n    [1553819760000, 4102.9, 4102.9, 4102.9, 4102.9, 0.21040645],\n    [1553819820000, 4102.9, 4102.9, 4105.4, 4102.9, 5.79745401],\n    [1553819880000, 4102.9, 4102.97603147, 4102.97603147, 4102.9, 2.13127602],\n    [1553819940000, 4102.9, 4105.1, 4105.1, 4102.9, 4.40095901],\n    [1553820000000, 4105, 4105.2, 4105.2, 4103.1, 0.70362802],\n    [1553820060000, 4103.7, 4105.3, 4105.4, 4103.7, 0.45828735],\n    [1553820120000, 4105.4, 4108, 4108.7, 4105.4, 18.62569858],\n    [1553820180000, 4108, 4108, 4108.1, 4108, 10.34223487],\n    [1553820240000, 4108.1, 4108, 4108.1, 4108, 0.41144367],\n    [1553820300000, 4108, 4108.2, 4109, 4108, 9.91395155],\n    [1553820360000, 4108.1, 4108.1, 4108.1, 4108, 1.7501390300000002],\n    [1553820420000, 4108.1, 4108, 4108.1, 4108, 0.31286823999999996],\n    [1553820480000, 4108, 4109, 4109, 4108, 1.52384392],\n    [1553820540000, 4109, 4108.6, 4109, 4108.2, 0.43317828],\n    [1553820600000, 4108.4, 4108, 4108.4, 4108, 4.182989989999999],\n    [1553820660000, 4108, 4108, 4108.1, 4108, 1.14093587],\n    [1553820720000, 4108, 4096.0667968, 4108.1, 4094.5313024, 12.76677672],\n    [1553820780000, 4096.1, 4100.2, 4102, 4096.1, 1.32445194],\n    [1553820840000, 4100.2, 4099.2, 4100.2, 4099.2, 0.11595142],\n    [1553820900000, 4098.5, 4098.5, 4100, 4098.5, 1.29900322],\n    [1553820960000, 4098.4, 4098.3, 4098.4, 4098.2, 0.16888198],\n    [1553821020000, 4098.5, 4097.9, 4098.5, 4097.9, 0.021768],\n    [1553821080000, 4096.8, 4097.060352, 4097.6, 4096.8, 0.30041031],\n    [1553821140000, 4097.060352, 4095.0318695, 4097.060352, 4095, 0.39474212],\n    [1553821200000, 4095.0318695, 4094.80725034, 4095.0318695, 4094.8, 0.45222840000000003],\n    [1553821260000, 4094.80725034, 4094, 4094.9, 4094, 0.22458129],\n    [1553821320000, 4094.03151005, 4087.6, 4094.03151005, 4087.5, 6.00399173],\n    [1553821380000, 4087.6, 4089.6, 4089.6, 4087.6, 0.8858526],\n    [1553821440000, 4089.6, 4091.6857053, 4092.74952644, 4089.6, 2.97654891],\n    [1553821500000, 4091.6857053, 4095.1, 4095.2, 4091.62637893, 1.40501962],\n    [1553821560000, 4095, 4093.1, 4095.2037666, 4092.9, 0.28654459],\n    [1553821620000, 4091.2, 4093.1290125, 4093.1290125, 4091.2, 0.01],\n    [1553821680000, 4094.65887721, 4094.65887721, 4094.6625264, 4094.65887721, 0.12862746],\n    [1553821740000, 4094.6625264, 4094.65887721, 4094.6625264, 4094.65887721, 0.01447174],\n    [1553821800000, 4094.6625264, 4094.6, 4094.6625264, 4094.6, 0.03111776],\n    [1553821860000, 4094.6, 4091.4, 4094.6, 4091.32256227, 0.18191689],\n    [1553821920000, 4091.32256227, 4089.5371062, 4091.32256227, 4089.5371062, 0.26729316000000003],\n    [1553821980000, 4089.6, 4091.4, 4092, 4089.6, 1.00915705],\n    [1553822040000, 4091.4, 4092.5, 4093.2, 4091.32256227, 0.28019088],\n    [1553822100000, 4092.5150559, 4090.9, 4092.5150559, 4090.9, 8.35685714],\n    [1553822160000, 4091, 4091, 4091, 4091, 0.50535078],\n    [1553822220000, 4091, 4091, 4091, 4091, 0.03118678],\n    [1553822280000, 4091, 4091, 4091, 4091, 0.477],\n    [1553822340000, 4090.98566153, 4090.98566153, 4091, 4090.9, 16.00683512],\n    [1553822400000, 4091, 4090.98566153, 4091, 4090.98566153, 0.5432163999999999],\n    [1553822460000, 4091, 4093.6, 4093.6, 4091, 0.87649011],\n    [1553822520000, 4093.8, 4094.48817825, 4097.7, 4093.8, 16.0634906],\n    [1553822580000, 4094.48817825, 4093.4, 4094.48817825, 4092.01701782, 20.094465],\n    [1553822640000, 4093.36492351, 4093.25259803, 4093.36492351, 4092.01701782, 0.515],\n    [1553822700000, 4093.25259803, 4093.2787506, 4093.2787506, 4093.25259803, 0.0692],\n    [1553822760000, 4093.25259803, 4093.2787506, 4093.2787506, 4093.25259803, 0.25806756999999997],\n    [1553822820000, 4093.3, 4093.25259803, 4093.3, 4093.25259803, 0.064],\n    [1553822880000, 4093.3, 4093.25259803, 4093.3, 4093.25259803, 0.35425158],\n    [1553822940000, 4093.3, 4093.3, 4093.3, 4093.3, 2.2],\n    [1553823000000, 4093.25259803, 4093.2787506, 4093.3, 4093.25259803, 5.08287041],\n    [1553823060000, 4093.3, 4093.29482674, 4093.3, 4093.20461639, 0.11312477],\n    [1553823180000, 4093.3, 4093.3, 4093.3, 4093.3, 0.055],\n    [1553823240000, 4093.3, 4093.3, 4093.3, 4093.3, 0.10698998000000001],\n    [1553823300000, 4093.3, 4093.20403208, 4093.3, 4093.20403208, 0.10208033000000001],\n    [1553823420000, 4093.3, 4093.3, 4093.3, 4093.3, 0.57449074],\n    [1553823540000, 4093.2969, 4093.2969, 4093.2969, 4093.2969, 0.005],\n    [1553823600000, 4093.2066896, 4093.20403208, 4093.2969, 4093.2, 5.94985467],\n    [1553823660000, 4093.2969, 4093.237575, 4093.2969, 4093.23689944, 0.35448264],\n    [1553823720000, 4093.237575, 4093.23690074, 4093.237575, 4093.23690074, 0.05660213],\n    [1553823780000, 4093.23690074, 4093.2, 4093.23690074, 4093.2, 6.9256581],\n    [1553823840000, 4093.23690074, 4093.237575, 4093.237575, 4093.2, 1.2826383099999998],\n    [1553823900000, 4093.237575, 4093.237575, 4093.237575, 4093.237575, 0.048],\n    [1553823960000, 4093.23690074, 4088.9, 4093.23690074, 4088.9, 8.07989208],\n    [1553824020000, 4088.997, 4088.9, 4089.087225, 4088.9, 1.01278994],\n    [1553824080000, 4088.85694522, 4088.45565, 4088.85694522, 4088.40771771, 0.86011309],\n    [1553824140000, 4088.40771901, 4088.5, 4088.5, 4088.40771771, 1.05639469],\n    [1553824200000, 4088.40771901, 4088.40771771, 4088.45565, 4088.40771771, 0.2397033],\n    [1553824260000, 4088.45565, 4087.5, 4088.45565, 4087.5, 2.4893553699999997],\n    [1553824320000, 4087.5, 4085.4, 4087.55108456, 4082.3, 54.16200592],\n    [1553824380000, 4085.4, 4085.4, 4085.4, 4085.30559622, 3.56088622],\n    [1553824440000, 4085.4, 4085.4, 4085.4, 4085.30559622, 0.055],\n    [1553824500000, 4085.4, 4085.4, 4085.4, 4085.3, 40.071196920000006],\n    [1553824560000, 4085.4, 4086.8, 4086.98970274, 4085.30559622, 32.36895655],\n    [1553824620000, 4087, 4086.9, 4087, 4086.9, 0.14987459],\n    [1553824680000, 4086.9, 4086.9, 4086.9, 4086.87742897, 0.09665088],\n    [1553824740000, 4087.6, 4087.7, 4087.7, 4087.55107158, 2.1778665200000002],\n    [1553824800000, 4087.7, 4087.7, 4087.7, 4087.7, 0.21373842999999998],\n    [1553824860000, 4087.7, 4090, 4090, 4087.7, 7.02701618],\n    [1553824920000, 4090, 4091.52660682, 4091.6, 4090, 0.21645873999999998],\n    [1553824980000, 4091.6, 4093.54755734, 4093.6, 4091.52660682, 2.49872873],\n    [1553825040000, 4093.54755734, 4098.0385585, 4098.1, 4093.54755734, 17.14999401],\n    [1553825100000, 4098.1, 4098.1, 4098.1, 4098.0385585, 0.02755293],\n    [1553825160000, 4098.1, 4098.1, 4098.1, 4098.1, 0.0348312],\n    [1553825220000, 4098.1, 4098, 4098.1, 4098, 2.35818583],\n    [1553825280000, 4098.1, 4098, 4098.1, 4098, 0.12202952],\n    [1553825340000, 4098, 4098, 4098, 4098, 2.13451536],\n    [1553825400000, 4098.0385585, 4098.0385585, 4098.0385585, 4098.0385585, 3.52890392],\n    [1553825460000, 4098, 4098, 4098, 4098, 0.11329359],\n    [1553825520000, 4098, 4098, 4098, 4098, 0.12515161],\n    [1553825640000, 4098, 4098, 4098, 4098, 2.20230738],\n    [1553825700000, 4098, 4098, 4098.1, 4098, 0.01075947],\n    [1553825760000, 4098, 4097.5, 4098.1, 4097.5, 27.14033624],\n    [1553825820000, 4097.5, 4097.5, 4097.5, 4097.5, 0.00986618],\n    [1553825880000, 4097.55276464, 4097.5, 4097.55276464, 4097.5, 0.04803949],\n    [1553825940000, 4097.5, 4097.5, 4097.5, 4097.5, 0.35152598],\n    [1553826000000, 4097.5, 4097.5, 4097.55276464, 4097.5, 2.2519095],\n    [1553826060000, 4097.5, 4097.5, 4097.6, 4097.5, 4.28670341],\n    [1553826120000, 4097.5, 4097, 4097.5, 4097, 0.91135908],\n    [1553826180000, 4097, 4097, 4097.06318408, 4097, 0.05918537],\n    [1553826240000, 4097, 4097, 4097.06318408, 4097, 0.09751983],\n    [1553826300000, 4097.06318408, 4097, 4097.06318408, 4097, 0.06707332],\n    [1553826360000, 4097, 4097.06318408, 4097.06318408, 4097, 0.13864337],\n    [1553826420000, 4097, 4097.1, 4097.1, 4097, 1.6351240200000001],\n    [1553826480000, 4097, 4097, 4097.06318408, 4097, 0.30469568],\n    [1553826540000, 4097.06318408, 4097, 4097.06318408, 4097, 0.0499637],\n    [1553826600000, 4097, 4097, 4097, 4097, 0.03901445],\n    [1553826660000, 4097.06318408, 4097, 4097.1, 4097, 1.98977026],\n    [1553826720000, 4097.08769981, 4097.08769981, 4097.1, 4097, 2.14636907],\n    [1553826780000, 4097, 4097.08769981, 4097.08769981, 4097, 0.21319358],\n    [1553826840000, 4097, 4097, 4097.08769981, 4097, 0.18287286],\n    [1553826900000, 4097, 4097.08769981, 4097.08769981, 4097, 0.31392662],\n    [1553826960000, 4097, 4097.08769981, 4097.08769981, 4097, 0.08258909],\n    [1553827020000, 4097, 4097, 4097, 4097, 0.01106164],\n    [1553827080000, 4097, 4097, 4097, 4097, 0.01124589],\n    [1553827140000, 4097.0688247, 4097.0688247, 4097.0688247, 4097.0688247, 0.00914832],\n    [1553827200000, 4097, 4097.0688247, 4097.0688247, 4097, 0.10419333],\n    [1553827260000, 4097, 4097, 4097, 4097, 0.40919667],\n    [1553827380000, 4097, 4097, 4097, 4097, 0.00681417],\n    [1553827440000, 4097, 4097.05923963, 4097.05923963, 4097, 0.0333952],\n    [1553827500000, 4097, 4097, 4097.05923963, 4097, 0.46085233999999997],\n    [1553827560000, 4097.05923963, 4097.05923963, 4097.05923963, 4097, 0.11420333],\n    [1553827620000, 4097.05923963, 4096.9, 4097.05923963, 4096.9, 22.46668609],\n    [1553827680000, 4096.9, 4096.94695452, 4096.94695452, 4096.9, 0.02610232],\n    [1553827740000, 4097, 4097, 4097, 4096.9, 1.49401715],\n    [1553827800000, 4097, 4097, 4097, 4096.9, 2.1497642100000003],\n    [1553827860000, 4097, 4096.9, 4097, 4096.9, 0.01727121],\n    [1553827920000, 4096.96997782, 4096.96997782, 4096.96997782, 4096.96997782, 0.1],\n    [1553827980000, 4096.96997782, 4097, 4097.08225492, 4096.9, 8.505400869999999],\n    [1553828040000, 4097, 4097, 4097.08226356, 4097, 0.56422285],\n    [1553828100000, 4097.08226356, 4097.1, 4097.1, 4097.08226356, 0.4],\n    [1553828160000, 4097.1, 4097.1, 4097.1, 4097.08226356, 2.62001434],\n    [1553828220000, 4097.1, 4097.1, 4097.1, 4097.08226356, 0.28446387],\n    [1553828280000, 4097.1, 4098.6, 4098.6, 4097.1, 10.51497227],\n    [1553828340000, 4098.65426399, 4101.3, 4101.3, 4098.65426399, 2.8305209000000002],\n    [1553828400000, 4101.3, 4101.3, 4101.3, 4101.2812983, 8.8213744],\n    [1553828460000, 4101.94788058, 4104.9056016, 4105, 4101.94788058, 15.00172644],\n    [1553828520000, 4104.9056016, 4104.9, 4105, 4104.9, 0.5444683],\n    [1553828580000, 4104.98005031, 4104.9, 4105, 4104.9, 1.26546194],\n    [1553828640000, 4104.9, 4104.9, 4105.3, 4104.9, 4.84504675],\n    [1553828700000, 4104.3, 4104.30623749, 4104.30623749, 4104.3, 0.47147624],\n    [1553828760000, 4104.3, 4104.3, 4104.30623749, 4104.3, 4.79648594],\n    [1553828820000, 4104.3, 4101.7, 4104.3, 4101.4, 2.5902761],\n    [1553828880000, 4102.7, 4101.8, 4102.8, 4101.8, 0.44826763999999997],\n    [1553828940000, 4101.8, 4102.1, 4102.7, 4101.8, 0.32081119],\n    [1553829000000, 4102.2, 4102.6, 4102.7, 4102.2, 2.24168006],\n    [1553829120000, 4102.6, 4102.6, 4102.6, 4102.6, 0.012542909999999999],\n    [1553829180000, 4102.7, 4102.7, 4102.7, 4102.6, 0.03394837],\n    [1553829240000, 4102.7, 4102.7, 4102.7, 4102.7, 0.3171968],\n    [1553829300000, 4102.7, 4102.7, 4102.7, 4102.7, 1.31652502],\n    [1553829360000, 4102.6, 4102.7, 4102.7, 4102.6, 0.3060344],\n    [1553829420000, 4102.7, 4102.5, 4102.7, 4102.5, 0.35426698],\n    [1553829480000, 4102.6, 4102.6, 4102.6, 4102.5, 0.31351728],\n    [1553829540000, 4102.6, 4101.9, 4102.6, 4101.8, 1.19418395],\n    [1553829600000, 4102, 4102.3, 4102.5, 4102, 0.66233277],\n    [1553829660000, 4102.4, 4102.4, 4102.4, 4102.4, 0.03720161],\n    [1553829720000, 4102.3, 4101.5, 4102.3, 4101.4, 0.6372858],\n    [1553829780000, 4101.5, 4101.8, 4101.8, 4101.5, 0.25963878],\n    [1553829840000, 4102, 4102, 4102.5, 4102, 1.65715879],\n    [1553829900000, 4102.1, 4101.6, 4102.1, 4101.6, 0.10400064],\n    [1553829960000, 4101.6, 4101.5, 4102, 4101.5, 0.26440949],\n    [1553830020000, 4101.8, 4101.4, 4101.8, 4101.3, 1.01699999],\n    [1553830080000, 4101.3, 4101.3, 4101.4, 4101.3, 0.46128396000000005],\n    [1553830140000, 4101.3, 4101.4, 4102.5, 4101.3, 2.55106179],\n    [1553830200000, 4101.5, 4101.5, 4101.5, 4101.5, 0.13351479],\n    [1553830260000, 4101.7, 4101.7, 4101.7, 4101.7, 1.18266392],\n    [1553830320000, 4101.6, 4102.2, 4102.4, 4101.6, 3.9161446499999997],\n    [1553830380000, 4102.2, 4102, 4102.3, 4102, 5.81535547],\n    [1553830440000, 4101.7, 4101.1, 4101.7, 4101.1, 9.68091001],\n    [1553830500000, 4100.9, 4102.2799972, 4102.3, 4100.7, 3.82497979],\n    [1553830560000, 4102.2799972, 4102.2, 4102.3, 4102.2, 2.71545351],\n    [1553830620000, 4102.2, 4102.2, 4102.3, 4102.2, 0.06892148],\n    [1553830680000, 4102.2, 4102.2, 4102.2, 4102.2, 0.06866683],\n    [1553830740000, 4102.2, 4102.3, 4102.3, 4102.2, 4.06525162],\n    [1553830800000, 4102.4, 4102.5, 4102.5, 4102.4, 0.73805159],\n    [1553830860000, 4102.5, 4104.3, 4104.3, 4102.5, 11.93867767],\n    [1553830920000, 4104.3, 4106.9, 4106.9, 4104.3, 3.9894100100000003],\n    [1553830980000, 4107, 4106.9, 4107, 4106.9, 0.42356222],\n    [1553831040000, 4106.99148787, 4106.9, 4107, 4106.9, 1.38252748],\n    [1553831100000, 4106.9, 4108.4, 4108.9000455, 4106.9, 29.02579128],\n    [1553831160000, 4108.4, 4107.1, 4108.4, 4107.1, 3.23081593],\n    [1553831220000, 4108.1, 4108.2, 4108.2, 4108.1, 0.48278395],\n    [1553831280000, 4108.1, 4102.8, 4108.7, 4102.8, 9.73050206],\n    [1553831340000, 4103.2565684, 4104, 4104, 4103.2565684, 0.99504723],\n    [1553831400000, 4104, 4104.18478547, 4106.0933431, 4104, 10.82397568],\n    [1553831460000, 4104.18478547, 4104.2, 4104.2, 4104.18478547, 0.26928523],\n    [1553831520000, 4104.9229732, 4104.9229732, 4104.9229732, 4104.9229732, 0.00461875],\n    [1553831580000, 4106.8, 4107, 4108.7, 4104.7, 15.26142905],\n    [1553831640000, 4107, 4107.1, 4107.1, 4107, 0.11764451000000001],\n    [1553831700000, 4107.1, 4107.1, 4107.1, 4107, 1.0476561599999998],\n    [1553831760000, 4107, 4106.2, 4107, 4106.2, 1.03686037],\n    [1553831820000, 4106.2, 4108.1, 4108.1, 4104.8, 8.45364052],\n    [1553831880000, 4105.9, 4105.27616527, 4105.9, 4105.2, 0.85062385],\n    [1553831940000, 4106.0964273, 4106, 4106.1, 4106, 1.62633122],\n    [1553832000000, 4106.1, 4107.2, 4108.1, 4106.1, 0.25468270000000004],\n    [1553832060000, 4107.9, 4108.7, 4108.7, 4107.9, 0.06893337],\n    [1553832120000, 4108.6, 4109.3, 4109.9, 4108.6, 11.51636751],\n    [1553832180000, 4108.7, 4109.2, 4109.8, 4108.7, 1.53499424],\n    [1553832240000, 4108.8, 4109, 4109.8, 4108.8, 1.1719432],\n    [1553832300000, 4109, 4108.7, 4109, 4108.6, 0.12807804],\n    [1553832360000, 4108.6, 4108.6, 4108.7, 4108.6, 1.4589413199999999],\n    [1553832420000, 4108.6, 4108.6, 4108.6, 4108.6, 0.00692979],\n    [1553832480000, 4108.6, 4108.6, 4108.7, 4108.6, 0.06889195000000001],\n    [1553832540000, 4108.7, 4108.7, 4108.7, 4108.6, 0.13561412],\n    [1553832600000, 4108.6, 4109, 4109, 4108.6, 5.26492367],\n    [1553832660000, 4109, 4109.9, 4109.9, 4109, 5.18934681],\n    [1553832720000, 4109.8, 4115.1, 4118, 4109.8, 89.52017637],\n    [1553832780000, 4114.5, 4114.9, 4114.9, 4114.3, 2.10834146],\n    [1553832840000, 4115.5704297, 4114.2, 4118.2, 4114.2, 11.4598999],\n    [1553832900000, 4114.27864165, 4112.4, 4114.3, 4112.4, 4.18977196],\n    [1553833020000, 4110.9641556, 4111.4, 4112.8, 4110.9641556, 7.09741924],\n    [1553833080000, 4111.6, 4111, 4111.6, 4110.9, 0.08192873],\n    [1553833140000, 4112, 4112, 4112, 4111.9576657, 0.08982217],\n    [1553833200000, 4111.9576657, 4114.27864165, 4114.3, 4111.9576657, 0.62365558],\n    [1553833260000, 4114.27864165, 4114.3, 4114.3, 4114.2, 0.60299909],\n    [1553833320000, 4114.2, 4114.3, 4114.3, 4114.2, 1.32615294],\n    [1553833380000, 4114.3, 4117.1, 4117.1, 4114.2, 16.97654086],\n    [1553833440000, 4117.1, 4115.6, 4117.1, 4115.4, 0.12962333],\n    [1553833500000, 4115.6, 4117.2, 4117.2, 4115.5, 5.41434112],\n    [1553833560000, 4116.8, 4116, 4117.2, 4116, 2.09956089],\n    [1553833620000, 4116.1, 4116.10181263, 4116.10181263, 4116, 1.01263097],\n    [1553833680000, 4116.1, 4118.6, 4119.8, 4116.1, 21.29300368],\n    [1553833740000, 4118.6, 4118.2, 4118.6, 4117.2, 0.69255885],\n    [1553833800000, 4118.2, 4117.8, 4118.2, 4117.5, 4.1958474],\n    [1553833860000, 4118.4, 4118.3, 4118.4, 4118.3, 0.13390723],\n    [1553833920000, 4118.340534, 4119.4, 4119.5, 4118.340534, 2.48639173],\n    [1553833980000, 4119.5, 4123.2, 4123.2, 4119.5, 39.9680212],\n    [1553834040000, 4123.2, 4125, 4125, 4123.2, 31.12629956],\n    [1553834100000, 4124.9, 4122, 4125, 4122, 20.09404293],\n    [1553834160000, 4122, 4123.1, 4123.1, 4122, 0.3867505],\n    [1553834220000, 4123.1, 4124.3, 4124.4, 4123.1, 0.50047976],\n    [1553834280000, 4124.3, 4123.21756, 4124.3, 4123.2, 5.81137208],\n    [1553834340000, 4123.21756, 4123.4, 4123.4, 4123.2, 2.32942486],\n    [1553834400000, 4123.3, 4123.6, 4123.6, 4123.3, 0.5258983],\n    [1553834460000, 4123.5, 4123.9, 4124, 4123.3, 1.35892871],\n    [1553834520000, 4123.9, 4123.5, 4123.9, 4123.5, 0.36444154],\n    [1553834580000, 4123.5, 4123.2, 4123.5, 4123.2, 0.39686375],\n    [1553834640000, 4123.2, 4118.8, 4123.2, 4118.8, 23.28805095],\n    [1553834700000, 4118.8, 4118, 4118.8, 4118, 7.4677714],\n    [1553834760000, 4118, 4110.3, 4118, 4110.2, 70.25550789],\n    [1553834820000, 4112.2, 4112.1, 4113.4, 4110.4, 3.2833616],\n    [1553834880000, 4112.1, 4110.4, 4112.2, 4110.4, 4.43753344],\n    [1553834940000, 4110.2, 4106, 4110.2, 4104.54341369, 11.07996577],\n    [1553835000000, 4106, 4108.2, 4108.2, 4106, 0.33449892],\n    [1553835060000, 4108.13689647, 4108.9, 4108.9, 4108.1, 3.25310472],\n    [1553835120000, 4108.88144118, 4104.6, 4109, 4104.6, 22.53478082],\n    [1553835180000, 4104.6142235, 4101.9, 4104.7, 4101.9, 28.87767941],\n    [1553835240000, 4102, 4101.920697, 4102, 4101.91913866, 5.41663749],\n    [1553835300000, 4101.920697, 4102, 4102, 4101.920697, 0.25978953],\n    [1553835360000, 4104.6142235, 4104, 4104.6142235, 4104, 0.15831451000000002],\n    [1553835420000, 4104.1650427, 4102.9, 4104.1650427, 4102, 0.5338972200000001],\n    [1553835480000, 4102, 4102.1, 4102.1, 4102, 1.61815774],\n    [1553835540000, 4102.81750027, 4102, 4102.81750027, 4102, 1.05059998],\n    [1553835600000, 4103.184799, 4098.8, 4103.184799, 4098.8, 11.5428707],\n    [1553835660000, 4097.5, 4097.4, 4097.5, 4097.4, 1.10319613],\n    [1553835720000, 4097.4965139, 4100, 4100.0242167, 4097.4965139, 1.60274125],\n    [1553835780000, 4099.5, 4096.9, 4099.5, 4096.9, 2.3370204],\n    [1553835840000, 4096.9, 4095.2, 4096.9, 4092.5, 2.27131878],\n    [1553835900000, 4096.2, 4099.2, 4099.2, 4095.8, 2.19628099],\n    [1553835960000, 4099.4825661, 4099.4, 4099.4825661, 4099.4, 0.03758637],\n    [1553836020000, 4099.4, 4099.4, 4099.4, 4099.4, 0.01273491],\n    [1553836140000, 4099.5, 4099.36494341, 4099.5, 4099.36494341, 0.08931909],\n    [1553836200000, 4097.90501562, 4096.4, 4097.90501562, 4095.1, 1.43116984],\n    [1553836260000, 4096.4, 4096.4, 4096.4, 4096.4, 2.06888388],\n    [1553836320000, 4096.4, 4096.39637607, 4096.4, 4096.39636605, 0.09717740999999999],\n    [1553836380000, 4096.39637607, 4096.39636605, 4096.39637607, 4096.39636605, 0.20976063],\n    [1553836440000, 4096.39637607, 4096.39637607, 4096.39637607, 4096.39637607, 0.10067357],\n    [1553836500000, 4096.39637607, 4096.39637607, 4096.4, 4096.39637607, 0.2456005],\n    [1553836560000, 4096.39637607, 4096.39637607, 4096.39637607, 4096.39637607, 0.03687754],\n    [1553836620000, 4096.4, 4096.3, 4096.4, 4096.3, 0.71604222],\n    [1553836680000, 4096, 4096.1, 4096.1, 4096, 0.62624595],\n    [1553836740000, 4096, 4096, 4096.0611192, 4096, 0.57631206],\n    [1553836800000, 4096, 4093, 4096, 4093, 2.80530519],\n    [1553836860000, 4092.9, 4093.42604773, 4093.42604773, 4091.7, 1.8894111199999999],\n    [1553836920000, 4093.42604773, 4092.9, 4093.42604773, 4092.9, 1.300813],\n    [1553836980000, 4092.97677611, 4092.1, 4092.97677611, 4092.1, 8.42904921],\n    [1553837040000, 4092.07823287, 4092, 4092.07823287, 4092, 5.09560988],\n    [1553837100000, 4092.07823287, 4092, 4092.07823287, 4092, 0.28369588],\n    [1553837160000, 4092, 4092, 4092, 4092, 2.01898485],\n    [1553837220000, 4092.07823287, 4092, 4092.07823287, 4092, 0.13732726],\n    [1553837280000, 4092, 4092, 4092.07823287, 4092, 0.13613728],\n    [1553837340000, 4092, 4091.96591496, 4092.07823287, 4091.96591496, 0.3330479],\n    [1553837400000, 4091.96591496, 4091.96591496, 4091.96591496, 4091.96591496, 0.06529626],\n    [1553837460000, 4091.96591496, 4091.84865642, 4092, 4091.84865642, 3.5010615],\n    [1553837520000, 4091.84865642, 4091.84866652, 4091.9, 4091.84865642, 0.3524605],\n    [1553837580000, 4091.9, 4091.9, 4091.9, 4091.9, 0.25907569],\n    [1553837640000, 4091.9, 4091.9, 4091.9, 4091.84866652, 0.83275204],\n    [1553837700000, 4091.9, 4094.4, 4094.4, 4091.84865642, 2.67983549],\n    [1553837760000, 4094.4, 4095.8, 4095.8, 4094.4, 0.7863720399999999],\n    [1553837820000, 4095.8, 4095.8, 4095.8, 4095.8, 0.0106],\n    [1553837880000, 4095.8, 4095.7, 4095.8, 4095.7, 1.64313402],\n    [1553837940000, 4095.8, 4095.8, 4095.8, 4095.8, 0.35700803999999997],\n    [1553838060000, 4095.8, 4098, 4098.1, 4095.7, 2.9175477400000003],\n    [1553838120000, 4098, 4097.8, 4098, 4097.8, 0.67285406],\n    [1553838360000, 4097.69578521, 4097.69578521, 4097.69578521, 4097.69578521,\n     0.13000714000000002],\n    [1553838480000, 4097.69578521, 4097.69578521, 4097.69578521, 4097.69578521,\n     0.20770429999999998],\n    [1553838540000, 4097.69578521, 4097.6, 4097.69578521, 4097.6, 0.51183385],\n    [1553838600000, 4097.6, 4097.2, 4097.6, 4097.2, 0.5122676],\n    [1553838660000, 4094.7, 4094.7, 4094.7, 4094.7, 0.485],\n    [1553838720000, 4094.8, 4096.1, 4096.1, 4094.8, 0.32597577],\n    [1553838780000, 4094.8, 4094.8, 4094.8, 4094.8, 0.01],\n    [1553838840000, 4094.8, 4094.8, 4094.8, 4094.8, 0.02187],\n    [1553838900000, 4094.75085822, 4094.7, 4094.75085822, 4094.7, 0.44060635],\n    [1553838960000, 4094.75085822, 4094.8, 4094.8, 4094.7, 0.17411215],\n    [1553839020000, 4094.8, 4094.8, 4094.8, 4094.8, 1],\n    [1553839080000, 4094.75085822, 4094.75085822, 4094.75085822, 4094.75085822, 0.02448608],\n    [1553839140000, 4094.7, 4094.7, 4094.8, 4094.6, 4.2804],\n    [1553839200000, 4094.7, 4094.7, 4094.7, 4094.6, 2.12480104],\n    [1553839260000, 4094.7, 4094.2, 4094.7, 4094.2, 1.7667049099999999],\n    [1553839320000, 4093.8, 4088, 4093.8, 4087.9, 12.92862914],\n    [1553839380000, 4088, 4088, 4088, 4087.9, 0.49885247000000005],\n    [1553839440000, 4088, 4087.9, 4088, 4087.9, 5.31887032],\n    [1553839500000, 4087.9, 4087.9, 4087.9, 4087.9, 0.05908],\n    [1553839560000, 4087.9, 4087.9, 4087.9, 4087.9, 0.00915085],\n    [1553839620000, 4088, 4088, 4088, 4087.9, 1.1272343900000001],\n    [1553839680000, 4088, 4088, 4088, 4088, 2.9756],\n    [1553839740000, 4088, 4089.6, 4089.7, 4087.9, 1.39111351],\n    [1553839800000, 4089.6, 4089.85365062, 4089.85365062, 4089.6, 0.73019984],\n    [1553839860000, 4089.85365062, 4089.2, 4089.9, 4089.2, 4.20550082],\n    [1553839980000, 4089.8, 4089.8, 4089.8, 4089.8, 0.54794156],\n    [1553840040000, 4089.8, 4089.8, 4089.9, 4089.8, 0.595],\n    [1553840100000, 4091.4, 4091.9, 4091.9, 4091.4, 0.15282165],\n    [1553840160000, 4092.4, 4094.2635273, 4094.2635273, 4092.4, 7.3383082],\n    [1553840220000, 4094.2, 4094.2, 4094.2, 4094.2, 0.027228910000000002],\n    [1553840340000, 4094.2, 4094.2, 4094.2, 4094.2, 0.00455996],\n    [1553840400000, 4094.2, 4094.2, 4094.2, 4094.2, 0.01728272],\n    [1553840460000, 4094.2, 4094.2, 4094.2, 4094.2, 0.19119125],\n    [1553840520000, 4093.9, 4094.3, 4094.3, 4093.9, 0.07022453],\n    [1553840580000, 4094.2, 4094.2, 4094.2, 4094.2, 0.30414063],\n    [1553840640000, 4094.3, 4094.2, 4094.3, 4094.2, 0.014064259999999999],\n    [1553840760000, 4094.2, 4094.2, 4094.2, 4094.2, 0.00870807],\n    [1553840820000, 4094.2, 4094.2, 4094.2, 4094.2, 0.01092546],\n    [1553840880000, 4094.2, 4094.2, 4094.2, 4094.2, 0.06848996],\n    [1553840940000, 4094.22995951, 4095.1, 4095.1, 4094.22995951, 10.73785507],\n    [1553841000000, 4095.047081, 4095.047081, 4095.1, 4095.047081, 0.026015999999999997],\n    [1553841060000, 4095.1, 4095.6, 4095.6, 4095.1, 0.32394784],\n    [1553841120000, 4095.5049645, 4095.5049645, 4095.5049645, 4095.5049645, 0.017144359999999997],\n    [1553841180000, 4095.5049645, 4095.5049645, 4095.5049645, 4095.5049645, 0.01862249],\n    [1553841240000, 4095.6, 4095.6, 4095.6, 4095.5049645, 0.22519066],\n    [1553841300000, 4095.5, 4095.6, 4095.6, 4095.5, 1.1394514999999998],\n    [1553841360000, 4095.6, 4095.6, 4095.6, 4095.5049645, 0.60670759],\n    [1553841420000, 4095.5049645, 4095.5049645, 4095.5049645, 4095.5049645, 0.04121522],\n    [1553841480000, 4095.5, 4095.6, 4095.6, 4095.5, 0.04616786],\n    [1553841540000, 4095.5, 4095.5, 4095.5, 4095.5, 2.0044580499999998],\n    [1553841660000, 4095.5, 4095.5, 4095.5, 4095.5, 0.01],\n    [1553841720000, 4095.6, 4095.6, 4095.6, 4095.5, 0.94862885],\n    [1553841780000, 4095.5, 4095.5, 4095.5, 4095.5, 0.16574923],\n    [1553841900000, 4095.5, 4095.5, 4095.5, 4095.5, 0.01726477],\n    [1553841960000, 4095.5, 4095.5, 4095.5, 4095.5, 0.0264],\n    [1553842080000, 4095.5665844, 4095.5, 4095.5665844, 4095.5, 0.46716484999999996],\n    [1553842140000, 4095.5665844, 4095.5665844, 4095.5665844, 4095.5665844, 0.065],\n    [1553842260000, 4095.6, 4095.6, 4095.6, 4095.6, 0.50398524],\n    [1553842380000, 4095.5761846, 4095.6, 4095.6, 4095.5761846, 0.13615805],\n    [1553842500000, 4095.5761846, 4096.36253342, 4096.36253342, 4095.5761846, 0.49222766],\n    [1553842560000, 4096.36253342, 4098.4, 4098.4, 4096.36253342, 9.41108865],\n    [1553842740000, 4097.3, 4097.37357389, 4097.37357389, 4097.3, 0.010159660000000001],\n    [1553842800000, 4097.3, 4097.3, 4097.3, 4097.3, 0.005],\n    [1553842860000, 4097.3, 4097.4, 4097.4, 4097.3, 0.16693446],\n    [1553842920000, 4098.3, 4098.3, 4098.3, 4098.3, 0.12301909],\n    [1553842980000, 4098.35789673, 4099.8, 4099.8, 4098.35789673, 1.0252119],\n    [1553843040000, 4099.8, 4105.54878678, 4105.54878678, 4099.8, 5.40453402],\n    [1553843100000, 4104.4, 4105.2, 4105.2, 4104.4, 0.23271981],\n    [1553843160000, 4105.21171381, 4105.8, 4105.8, 4105.21171381, 0.50991575],\n    [1553843220000, 4107.90829758, 4110, 4110, 4107.6, 3.72019251],\n    [1553843280000, 4109.9, 4108.3, 4109.9, 4108.3, 3.08830932],\n    [1553843340000, 4108.58244352, 4105.8507831, 4108.58244352, 4105.8507831, 0.35500442],\n    [1553843460000, 4105.9, 4105.836282, 4105.9, 4105.836282, 1.11790438],\n    [1553843520000, 4105.836282, 4108.6, 4108.6, 4105.836282, 1.19984074],\n    [1553843580000, 4108.6, 4108.6, 4108.6, 4108.6, 0.37553684],\n    [1553843640000, 4108.5, 4108.6, 4108.6, 4108.5, 0.63951172],\n    [1553843700000, 4108.6, 4108.5, 4108.6, 4108.5, 1.02445979],\n    [1553843760000, 4108.5, 4108.5, 4108.6, 4108.5, 0.43246249000000003],\n    [1553843820000, 4108.6, 4108.64559699, 4108.64559699, 4108.5, 0.34894105],\n    [1553843880000, 4108.64559699, 4108.64559699, 4108.64559699, 4108.6, 0.47149657],\n    [1553843940000, 4108.64559699, 4108.9, 4109, 4108.64559699, 1.9078410399999999],\n    [1553844000000, 4108.9, 4109, 4109, 4108.9, 8.38657309],\n    [1553844060000, 4109.2, 4109.2, 4109.2, 4109.1491064, 9.744925649999999],\n    [1553844120000, 4109.2, 4109.6, 4109.6, 4109.2, 8.09515267],\n    [1553844180000, 4109.6, 4109.5, 4109.6, 4109.5, 11.25166462],\n    [1553844240000, 4109.5, 4109.1, 4109.5, 4109.1, 1.66444996],\n    [1553844300000, 4109.1, 4108.7, 4109.1491064, 4108.1, 12.84717303],\n    [1553844360000, 4108.8, 4108.83636477, 4108.83636477, 4108.8, 0.23586395],\n    [1553844420000, 4109.1491064, 4109.2, 4109.2, 4109.1, 4.1689168500000005],\n    [1553844480000, 4109.2, 4109.2, 4109.2, 4109.2, 0.9053609300000001],\n    [1553844540000, 4109.2, 4109.2, 4109.2, 4109.2, 3.80051373],\n    [1553844600000, 4109.2, 4109.28582317, 4109.28582317, 4109.17345857, 2.95767048],\n    [1553844660000, 4109.28582317, 4110, 4110, 4109.28582317, 13.68895127],\n    [1553844720000, 4110, 4110.35087169, 4110.35087169, 4110, 30.40599234],\n    [1553844780000, 4110.4632224, 4114.28314627, 4114.28314627, 4110.4632224, 28.56465137],\n    [1553844840000, 4115, 4120.0416029, 4120.0416029, 4115, 37.8346008],\n    [1553844900000, 4120.1, 4120, 4122.1, 4120, 16.72112748],\n    [1553844960000, 4120, 4120, 4120.1, 4120, 6.5426265500000005],\n    [1553845020000, 4120.01303309, 4120, 4120.01303309, 4120, 6.20408426],\n    [1553845080000, 4120, 4120, 4120.1, 4120, 2.26534433],\n    [1553845140000, 4120, 4120, 4120.01303309, 4120, 0.65180365],\n    [1553845200000, 4120, 4120.1, 4120.1, 4120, 5.64003588],\n    [1553845260000, 4120, 4120, 4120, 4120, 0.07995041],\n    [1553845320000, 4120.09596174, 4120, 4120.09596174, 4120, 0.08204],\n    [1553845380000, 4120, 4120, 4120, 4120, 0.18203552],\n    [1553845440000, 4120, 4120, 4120, 4120, 0.16121092],\n    [1553845500000, 4120, 4120, 4120.1, 4120, 4.09840254],\n    [1553845560000, 4120.09596174, 4120.1, 4120.1, 4120, 4.18232157],\n    [1553845620000, 4120.09596174, 4120.6, 4120.6, 4120, 11.26509736],\n    [1553845680000, 4120.6, 4120.6, 4120.6, 4120.6, 2.44639778],\n    [1553845740000, 4120.5, 4120.5, 4120.6, 4120.5, 0.70276718],\n    [1553845800000, 4120.6, 4120.5, 4120.6, 4120.5, 1.17907647],\n    [1553845860000, 4120.5, 4121, 4121, 4120.5, 10.66908221],\n    [1553845920000, 4121, 4121.06453791, 4121.06453791, 4121, 0.079],\n    [1553845980000, 4121.06453791, 4121, 4121.06453791, 4121, 0.63305988],\n    [1553846040000, 4121, 4121.06453791, 4121.06453791, 4121, 0.12863226],\n    [1553846100000, 4121, 4124.9, 4125, 4121, 40.15526132],\n    [1553846160000, 4124.9, 4124.7, 4128.9, 4123.8, 38.15857193],\n    [1553846220000, 4123.2, 4124, 4124, 4123.2, 1.6003133999999999],\n    [1553846280000, 4124, 4124, 4124, 4124, 0.81621504],\n    [1553846340000, 4124, 4120, 4124, 4120, 4.07450907],\n    [1553846400000, 4120.6, 4120, 4120.6, 4120, 0.63931106],\n    [1553846460000, 4120.05375738, 4120, 4120.05375738, 4120, 0.5624],\n    [1553846520000, 4120, 4120.1, 4120.1, 4120, 0.89278104],\n    [1553846580000, 4120, 4115.5, 4120.1, 4115.4, 40.10793476],\n    [1553846640000, 4115, 4109.4, 4115, 4102.7, 49.10930767],\n    [1553846700000, 4109.2, 4105.9, 4109.2, 4105.7, 7.69310437],\n    [1553846760000, 4105.9, 4105.9, 4105.9, 4105.8, 3.68380229],\n    [1553846820000, 4105.9, 4108.24590666, 4113, 4105.9, 16.3803668],\n    [1553846880000, 4108.24590666, 4108.3, 4109.1, 4108.2, 1.31687634],\n    [1553846940000, 4108.3, 4108.3, 4108.3, 4108.3, 3.93278462],\n    [1553847000000, 4108.3, 4106.6, 4108.3, 4106.6, 3.92254656],\n    [1553847060000, 4106.6, 4103.7, 4106.6, 4103.7, 4.94600626],\n    [1553847120000, 4103.8, 4103.8, 4103.8, 4103.7, 0.04374114],\n    [1553847180000, 4103.77623289, 4103.77623289, 4103.8, 4103.7, 0.43702221],\n    [1553847240000, 4103.8, 4109.61518996, 4109.61518996, 4103.8, 25.0063],\n    [1553847300000, 4107.9, 4109.50290233, 4109.61518996, 4107.8349774, 0.23387338000000002],\n    [1553847360000, 4109.6, 4109.7, 4109.7, 4109.6, 2.17986791],\n    [1553847420000, 4109.8, 4109.8, 4109.8, 4109.8, 0.01],\n    [1553847480000, 4109.7274776, 4109.7274776, 4109.7274776, 4109.7274776, 0.00489613],\n    [1553847540000, 4109.8, 4109.8, 4109.8, 4109.7274776, 0.08752757],\n    [1553847600000, 4111.8, 4111.9, 4111.9, 4111.8, 1.158],\n    [1553847660000, 4111.8, 4113.7, 4114.1, 4111.8, 1.79086801],\n    [1553847720000, 4113.50382543, 4114.4, 4114.4, 4113.50382543, 0.06467117],\n    [1553847780000, 4114.8, 4114.8, 4114.8, 4114.73853883, 0.87887063],\n    [1553847840000, 4115.18752553, 4112.482878, 4115.18752553, 4112.3, 0.87372757],\n    [1553847900000, 4112, 4112.1, 4112.1, 4112, 0.13287836],\n    [1553847960000, 4111.7609148, 4111.7609148, 4111.7609148, 4111.7609148, 0.010091409999999999],\n    [1553848020000, 4111.7609148, 4111.7, 4111.7609148, 4111.7, 2.7352053599999997],\n    [1553848080000, 4111, 4111, 4111.1, 4110.9, 0.23597269],\n    [1553848140000, 4111, 4111.4, 4111.5, 4111, 1.97974015],\n    [1553848200000, 4111.4, 4111.6, 4111.7, 4111.4, 4.37669494],\n    [1553848260000, 4111.7, 4111.6, 4111.7, 4111.6, 0.08465419],\n    [1553848320000, 4111.7, 4113.7, 4113.7, 4111.6, 0.14728119],\n    [1553848380000, 4113.7, 4114.4, 4114.5, 4113.7, 5.42294741],\n    [1553848440000, 4114.4, 4113.9, 4114.5, 4113.8, 6.45637806],\n    [1553848500000, 4113.8, 4113.8, 4113.8, 4113.8, 0.09622417],\n    [1553848560000, 4113.8, 4113.83739812, 4113.83739812, 4113.8, 0.29333875],\n    [1553848620000, 4113.83739812, 4113.8, 4113.83739812, 4113.8, 0.84882418],\n    [1553848680000, 4113.83739812, 4113.8, 4113.83739812, 4113.8, 0.32233077],\n    [1553848740000, 4113.8, 4111.6, 4113.83739812, 4111.6, 1.60183382],\n    [1553848800000, 4111.6, 4111.6, 4111.6, 4111.6, 0.050454490000000005],\n    [1553848860000, 4111.6, 4110, 4111.7, 4110, 4.21377125],\n    [1553848920000, 4109.9757636, 4109.9, 4109.9757636, 4109.9, 0.11610978],\n    [1553848980000, 4109.9, 4109.9, 4109.9, 4109.9, 0.24708658],\n    [1553849040000, 4109.9, 4109.99820799, 4109.99820799, 4109.9, 0.15825267],\n    [1553849160000, 4110, 4111.6, 4111.68254145, 4110, 0.13788018],\n    [1553849220000, 4112.1, 4112.1, 4113.14229711, 4112.01940814, 6.99256732],\n    [1553849280000, 4112.13169704, 4112.13169704, 4112.13169704, 4112.1, 1.3052745],\n    [1553849340000, 4112.13169704, 4112.13169704, 4112.13169704, 4112.1, 0.04131293],\n    [1553849400000, 4112.140998, 4112.2, 4112.2, 4112.1, 1.30296087],\n    [1553849460000, 4112.2, 4113.1, 4113.5, 4112.2, 3.68303735],\n    [1553849520000, 4112.7, 4112.8, 4112.8, 4112.7, 0.22913814],\n    [1553849580000, 4113.1, 4113.2, 4113.2, 4113.1, 0.48252483999999995],\n    [1553849640000, 4113.6, 4113.2, 4113.6, 4113.2, 0.04153019],\n    [1553849700000, 4113.2, 4113.2, 4113.3, 4113.2, 0.06893985],\n    [1553849760000, 4113.3, 4113.2, 4113.3, 4113.2, 0.19212839],\n    [1553849820000, 4113.2, 4113.2, 4113.2, 4113.2, 0.013822899999999999],\n    [1553849880000, 4113.2, 4113.2, 4113.2, 4113.2, 0.01878011],\n    [1553849940000, 4113.2, 4113.2, 4113.2, 4113.2, 0.13676629],\n    [1553850000000, 4113.2, 4113.2, 4113.2, 4113.2, 2.4035841000000002],\n    [1553850060000, 4113.2, 4113.3, 4113.3, 4113.2, 0.03572785],\n    [1553850120000, 4113.2, 4113.2, 4113.3, 4113.2, 0.08743001],\n    [1553850180000, 4113.2, 4113.2, 4113.2, 4113.2, 0.01100016],\n    [1553850240000, 4113.2, 4113.2, 4113.2, 4113.2, 0.00912661],\n    [1553850300000, 4113.3, 4113.4, 4113.4, 4113.2, 3.87530029],\n    [1553850360000, 4113.4, 4113.4, 4113.4, 4113.3, 3.62039397],\n    [1553850420000, 4113.4, 4115.9, 4115.9, 4113.3533324, 8.38482738],\n    [1553850480000, 4115.9, 4118.9, 4118.9, 4115.9, 1.66513398],\n    [1553850540000, 4118.84444, 4118.9, 4118.9, 4118.8, 1.18617287],\n    [1553850600000, 4118.8, 4118.9, 4118.9, 4118.8, 3.07618525],\n    [1553850660000, 4118.9, 4120, 4120, 4118.9, 1.76164543],\n    [1553850720000, 4120, 4120.1, 4120.1, 4119.9, 16.87291054],\n    [1553850780000, 4120.1, 4127.8, 4127.9, 4120.09023669, 22.28265381],\n    [1553850840000, 4127.8, 4139.8, 4139.8, 4127.8, 109.80854929],\n    [1553850900000, 4139.8, 4166.3, 4197.2, 4139.8, 1190.41594144],\n    [1553850960000, 4166.4, 4157.9, 4166.5, 4157.9, 85.03184748],\n    [1553851020000, 4158, 4157.2733786, 4158, 4155.6, 38.66649863],\n    [1553851080000, 4157.3, 4165.4, 4168, 4157.2, 16.89204235],\n    [1553851140000, 4165.3, 4160, 4166.45149511, 4159.94071305, 23.8328058],\n    [1553851200000, 4160, 4157.4, 4160, 4157.4, 39.231428720000004],\n    [1553851260000, 4157.4, 4155, 4157.47110607, 4151, 42.79203166],\n    [1553851320000, 4155.4, 4156.7, 4156.9, 4155.30034656, 13.3106855],\n    [1553851380000, 4156.7, 4155.2, 4156.8, 4155.2, 12.63666216],\n    [1553851440000, 4155.2, 4150.6, 4155.3, 4150.6, 18.88240976],\n    [1553851500000, 4150.6, 4145, 4150.6976905, 4145, 8.19162966],\n    [1553851560000, 4144.5, 4142.5, 4144.5, 4142, 6.13984783],\n    [1553851620000, 4142, 4139.3, 4142, 4136.4, 52.7692922],\n    [1553851680000, 4139.4, 4141.530584, 4142.1, 4139.4, 3.39345638],\n    [1553851740000, 4141.4, 4141, 4141.5, 4141, 2.01199781],\n    [1553851800000, 4141.2, 4142.5, 4142.7, 4141.1, 0.39094572],\n    [1553851860000, 4142.5, 4143.8, 4143.88521517, 4142.4, 10.55500805],\n    [1553851920000, 4143.8504434, 4143.8, 4143.9, 4143.8, 14.32464755],\n    [1553851980000, 4143.8, 4144.2, 4144.2, 4143.8, 14.67211513],\n    [1553852040000, 4145, 4151, 4151.1, 4144.9336378, 5.7877426],\n    [1553852100000, 4151.1, 4151.8, 4153.4, 4151.1, 12.51841235],\n    [1553852160000, 4151.9, 4151.7, 4151.9, 4151.7, 5.20335961],\n    [1553852220000, 4151.8, 4148.9, 4151.8, 4148.9, 14.18685721],\n    [1553852280000, 4149.8, 4149.4, 4149.8, 4148.5, 1.81808913],\n    [1553852340000, 4149.6, 4149.72325949, 4149.8, 4149.5, 12.64397047],\n    [1553852400000, 4149.72325949, 4149.8, 4149.8, 4149.72325949, 11.48041027],\n    [1553852460000, 4149.8, 4156, 4158, 4149.72325949, 39.88668563],\n    [1553852520000, 4156, 4153.8, 4156.1, 4153.8, 26.497938819999998],\n    [1553852580000, 4154.5, 4153.73486707, 4154.8, 4153.7, 8.18834447],\n    [1553852640000, 4153.73486707, 4153.7, 4153.73486707, 4153.7, 4.831296],\n    [1553852700000, 4153.7, 4150.5, 4153.7, 4150.5, 9.02533944],\n    [1553852760000, 4150.5, 4148.6, 4150.5, 4148.6, 2.18031293],\n    [1553852820000, 4148.5, 4150, 4151, 4148.5, 23.63194622],\n    [1553852880000, 4150, 4150, 4150.2, 4150, 2.88036144],\n    [1553852940000, 4150.1, 4150.48205029, 4150.48205029, 4150.1, 6.97859103],\n    [1553853000000, 4150.48205029, 4150.3, 4150.7, 4150.3, 3.1586184],\n    [1553853060000, 4150.3, 4150.4, 4150.4, 4150.3, 0.69333619],\n    [1553853120000, 4150.4, 4150.3, 4150.4, 4150.3, 4.70170422],\n    [1553853180000, 4150.4, 4150.5, 4150.6, 4150.4, 16.44443972],\n    [1553853240000, 4150.6, 4151.05766234, 4151.1, 4150.6, 13.21530486],\n    [1553853300000, 4151.1, 4156.7, 4156.73712048, 4151.05766234, 35.48586278],\n    [1553853360000, 4156.7, 4156.3, 4156.7, 4155.4, 0.33550472],\n    [1553853420000, 4156.3, 4156.6, 4156.7, 4156.3, 5.60605473],\n    [1553853480000, 4156.6, 4156.7, 4156.8, 4156.6, 14.92754865],\n    [1553853540000, 4156.7, 4156.7, 4156.8, 4156.7, 5.59663058],\n    [1553853600000, 4156.8, 4156.7, 4156.8, 4156.7, 1.50744849],\n    [1553853660000, 4156.7, 4156.75282949, 4156.8, 4156.7, 1.30380726],\n    [1553853720000, 4156.8, 4156.75282949, 4156.8, 4156.75282949, 0.26518637],\n    [1553853780000, 4156.7, 4156.75282949, 4156.8, 4156.7, 19.77345981],\n    [1553853840000, 4156.8, 4157.9, 4157.9, 4156.8, 1.14305683],\n    [1553853900000, 4157.9, 4157.9, 4158, 4157.9, 1.4664614999999999],\n    [1553853960000, 4157.9, 4157.98622076, 4158, 4157.9, 12.10401088],\n    [1553854020000, 4158, 4165.6, 4169.9, 4157.98622076, 75.62094145],\n    [1553854080000, 4165.7, 4165.2, 4168.4, 4165.1, 17.4492213],\n    [1553854140000, 4165.1369802, 4169.87162753, 4169.87162753, 4165.1369802, 17.07648183],\n    [1553854200000, 4169.9, 4168.30185683, 4173.1, 4168.2, 13.7580449],\n    [1553854260000, 4168.4, 4168, 4168.5, 4168, 1.5401362],\n    [1553854320000, 4168, 4165.1, 4168, 4165.1, 2.47861408],\n    [1553854380000, 4165.1, 4165.1, 4165.2, 4165.1, 17.53510194],\n    [1553854440000, 4165.1, 4165.1, 4165.2, 4165.1, 2.54196406],\n    [1553854500000, 4165.2, 4165.1, 4165.2, 4165.1, 4.72658167],\n    [1553854560000, 4165.1, 4165.1, 4165.2, 4165.1, 1.25583009],\n    [1553854620000, 4165.1, 4165.1, 4165.2, 4165.1, 2.42318407],\n    [1553854680000, 4165.2, 4165.9, 4165.9, 4165.1, 20.73888036],\n    [1553854740000, 4166.9, 4167.7, 4168.1, 4166.9, 1.39705131],\n    [1553854800000, 4167.7, 4166.7, 4167.7, 4166.7, 12.4751344],\n    [1553854860000, 4165.3590183, 4165.2, 4165.9, 4165.1, 6.65545247],\n    [1553854920000, 4165.1, 4165.1, 4166, 4165.1, 10.978422590000001],\n    [1553854980000, 4165.9, 4165.8, 4165.9, 4165.6, 1.44553998],\n    [1553855040000, 4165.9, 4166, 4166, 4165.9, 12.81],\n    [1553855100000, 4165.9, 4165.99854749, 4166, 4165.9, 0.20951759],\n    [1553855160000, 4165.9, 4166, 4166, 4165.9, 2.80824795],\n    [1553855220000, 4166, 4165.9, 4166, 4165.9, 9.12257825],\n    [1553855280000, 4165.9, 4167.6, 4167.6, 4165.9, 34.05544391],\n    [1553855340000, 4167.6, 4168, 4168.1, 4167.6, 23.88180561],\n    [1553855400000, 4168.1, 4168.1, 4168.1, 4168, 12.45960047],\n    [1553855460000, 4168.1, 4168.5, 4168.5, 4168.1, 14.32781141],\n    [1553855520000, 4168.46095187, 4171, 4171, 4168.46095187, 25.85382963],\n    [1553855580000, 4172.977002, 4173.970181, 4174, 4172.977002, 6.331106950000001],\n    [1553855640000, 4174, 4178.8, 4178.8, 4173.9, 12.976710970000001],\n    [1553855700000, 4178.7, 4178.7, 4178.8, 4178.7, 1.3889936299999999],\n    [1553855760000, 4178.7, 4176, 4178.8, 4175.6, 25.09618564],\n    [1553855820000, 4176, 4169.3, 4176, 4169.3, 10.82965331],\n    [1553855880000, 4169.6, 4169.1, 4169.6, 4168.4, 2.71157836],\n    [1553855940000, 4169.1, 4172.8, 4172.8, 4169.1, 13.1098573],\n    [1553856000000, 4173.4, 4172.3, 4173.4, 4172.3, 4.42174182],\n    [1553856060000, 4172.3, 4168.4, 4172.3, 4168, 38.434071],\n    [1553856120000, 4168.4, 4168, 4168.5, 4168, 3.5795124400000002],\n    [1553856180000, 4168.1, 4169.6, 4170.8, 4160.6, 127.37337605],\n    [1553856240000, 4169.9, 4170.1, 4171.1, 4167.15494126, 17.659268],\n    [1553856300000, 4168.8, 4169.3, 4169.8, 4168.1, 9.75167975],\n    [1553856360000, 4169, 4169.2, 4169.54513822, 4168.2, 52.56803993],\n    [1553856420000, 4168.1, 4168.1, 4169.5, 4168.1, 1.21235966],\n    [1553856480000, 4168.1, 4166.8, 4168.2, 4166.5, 2.76545342],\n    [1553856540000, 4167.4, 4167.1, 4168.2, 4167.1, 1.36687013],\n    [1553856600000, 4167.2, 4164.8, 4169, 4160.34901403, 106.05833722],\n    [1553856660000, 4165.1, 4165.2, 4166.1, 4165.1, 3.35659362],\n    [1553856720000, 4165.2, 4165.6, 4167.3, 4164.1, 41.00202968],\n    [1553856780000, 4165.81811243, 4163.1, 4167, 4163.1, 42.91093127],\n    [1553856840000, 4163.2, 4163.2, 4163.2, 4163.1, 0.48490655],\n    [1553856900000, 4163.1, 4162.1, 4163.1, 4161.5, 0.10141263],\n    [1553856960000, 4162.2, 4165.9, 4166, 4162.1, 40.3774545],\n    [1553857020000, 4165.6, 4165.6, 4165.6, 4165.6, 45.61763263],\n    [1553857080000, 4165.59107608, 4165.5, 4165.59107608, 4164.8, 5.09424628],\n    [1553857140000, 4165.5, 4165.6, 4165.6, 4165, 34.63313569],\n    [1553857260000, 4165.503615, 4168, 4168, 4165.503615, 1.02525732],\n    [1553857320000, 4167.9, 4167.9, 4168.30338605, 4167.9, 1.2257663],\n    [1553857380000, 4167.9, 4166.5, 4167.9, 4166.5, 0.50847245],\n    [1553857440000, 4167.9, 4166.5, 4168.30338605, 4166.5, 2.21253518],\n    [1553857500000, 4168.3, 4166.3, 4171.8, 4166.3, 27.14873203],\n    [1553857560000, 4166.3, 4165.7, 4166.3, 4164.5997259, 4.91437272],\n    [1553857620000, 4166.61990525, 4165.1, 4166.61990525, 4165.1, 0.24688631],\n    [1553857680000, 4166.05874432, 4164.4, 4166.39544088, 4164.1, 1.90767732],\n    [1553857740000, 4165.7, 4164.1, 4165.7, 4164.1, 2.85126045],\n    [1553857800000, 4161.9, 4162.69177874, 4162.9, 4161.5, 0.67507039],\n    [1553857860000, 4162.6, 4162.7, 4162.9, 4161.8, 2.78010123],\n    [1553857920000, 4162.7, 4162.8, 4162.8, 4161.6, 1.02807856],\n    [1553857980000, 4162.8, 4162.8, 4162.8, 4162.8, 0.28818926],\n    [1553858040000, 4162.8, 4162.8, 4162.8, 4162.8, 0.37952957],\n    [1553858100000, 4162.8, 4162.8, 4162.9, 4162.79226148, 0.33618227],\n    [1553858160000, 4162.8, 4162.7, 4162.8, 4162.3, 2.52036682],\n    [1553858220000, 4162.8, 4162.8, 4162.8, 4162.7, 0.65392745],\n    [1553858280000, 4162.7, 4162.7, 4162.8, 4162.7, 0.58646878],\n    [1553858340000, 4162.8, 4162.7, 4162.8, 4162.7, 1.15879791],\n    [1553858400000, 4162.8, 4162.9, 4162.9, 4162.8, 1.73323596],\n    [1553858460000, 4162.90456298, 4162.96910826, 4163, 4162.9, 0.56222394],\n    [1553858520000, 4163, 4167.12533754, 4167.2, 4163, 10.82196381],\n    [1553858580000, 4167.2, 4167.1, 4167.2, 4167.1, 0.88265413],\n    [1553858640000, 4167.1887132, 4172.4, 4172.4, 4167.1, 31.474931390000002],\n    [1553858700000, 4172.4, 4172.3, 4172.4, 4172.3, 1.77864753],\n    [1553858760000, 4172.3, 4171.5, 4172.3, 4170.5, 0.6159185899999999],\n    [1553858820000, 4171.4, 4169.7, 4171.4, 4169, 0.18125219],\n    [1553858880000, 4168.7, 4169.6, 4169.7, 4168.6, 1.69550504],\n    [1553858940000, 4169.7, 4170, 4170, 4169.7, 5.4154],\n    [1553859000000, 4170.7, 4171.5, 4171.5, 4170.4, 1.69635548],\n    [1553859060000, 4171, 4171.5, 4171.5, 4171, 0.78726922],\n    [1553859120000, 4171.5, 4171.5, 4171.5, 4171.41668568, 3.15808442],\n    [1553859180000, 4171.5, 4172.4, 4172.4, 4171.4, 5.86999681],\n    [1553859240000, 4172.4, 4177, 4177, 4172.4, 32.11741938],\n    [1553859300000, 4177, 4177, 4177, 4177, 1.59202587],\n    [1553859360000, 4176.9, 4177, 4177, 4176.9, 5.9761879],\n    [1553859420000, 4177, 4178.1, 4178.1, 4176.92017027, 4.59984403],\n    [1553859480000, 4178.1, 4182.8, 4183, 4178.1, 31.7892968],\n    [1553859540000, 4183, 4184.8, 4185.4, 4183, 18.749673389999998],\n    [1553859600000, 4184.7, 4178.8619946, 4184.7, 4176.9, 10.31832954],\n    [1553859660000, 4177.6, 4177.6, 4180, 4177.6, 22.84308898],\n    [1553859720000, 4177.6, 4178.9, 4179, 4177.6, 14.54525328],\n    [1553859780000, 4178.9, 4179, 4179, 4178.9, 7.16904786],\n    [1553859840000, 4179, 4178.9, 4179, 4178.9, 3.50806302],\n    [1553859900000, 4178.9, 4178.9, 4179, 4174.8, 20.83319006],\n    [1553859960000, 4179, 4178.9, 4179, 4178.9, 1.62249818],\n    [1553860020000, 4178.9, 4180, 4180, 4178.9, 8.93041355],\n    [1553860080000, 4179.8274051, 4182.1, 4183, 4179, 26.03401969],\n    [1553860140000, 4183.4, 4182.6, 4184.2, 4182.6, 2.22724672],\n    [1553860200000, 4182.5, 4182.1, 4182.5, 4182.1, 11.8345027],\n    [1553860260000, 4182.1, 4182.2, 4182.2, 4182.1, 0.21972664],\n    [1553860320000, 4182.2, 4184.7, 4184.8, 4182.2, 0.10500659999999999],\n    [1553860380000, 4184.7, 4184, 4184.7, 4183.2, 5.19298143],\n    [1553860440000, 4184.1, 4184.6, 4184.8, 4184, 15.53264579],\n    [1553860500000, 4184.8, 4187.3, 4188.2, 4184.8, 9.49366044],\n    [1553860560000, 4187.2, 4187.1, 4187.2, 4186.2, 0.90867058],\n    [1553860620000, 4187.1, 4186.9, 4187.1, 4186, 1.7735095699999999],\n    [1553860680000, 4186.99234492, 4187, 4188, 4186.99234492, 1.51616815],\n    [1553860740000, 4187.3, 4187.3, 4187.3, 4187.3, 0.049999999999999996],\n    [1553860800000, 4187.3, 4183.6, 4187.3, 4180, 48.35079652],\n    [1553860860000, 4183.6, 4178.9, 4183.6, 4178.9, 5.78715548],\n    [1553860920000, 4178.9, 4172.5, 4178.9, 4172.5, 7.86637722],\n    [1553860980000, 4172.5, 4167.9, 4175, 4167.9, 6.35321255],\n    [1553861040000, 4169.3, 4158.1, 4171.90729275, 4156, 50.2479062],\n    [1553861100000, 4158.9, 4160, 4160, 4158.6, 4.49906686],\n    [1553861160000, 4161.8, 4155.2, 4162.6, 4155.2, 12.76250486],\n    [1553861220000, 4155.9, 4155.4782526, 4155.9, 4155, 33.10018301],\n    [1553861280000, 4155.73623891, 4162.7, 4162.9, 4155.7, 10.38876835],\n    [1553861340000, 4163, 4168, 4168.1, 4163, 1.2228177],\n    [1553861400000, 4167.9, 4167.9, 4168, 4167.9, 0.7264200599999999],\n    [1553861460000, 4167.9, 4167.9, 4168, 4167.9, 7.96197932],\n    [1553861520000, 4168, 4167.8, 4168, 4167.8, 0.61892156],\n    [1553861580000, 4167.8, 4161.2, 4167.8, 4159.9, 3.58065803],\n    [1553861640000, 4162.63321848, 4162.686303, 4162.686303, 4162.3, 0.46900503],\n    [1553861700000, 4162.686303, 4163.1, 4163.1, 4160.7, 0.23985441],\n    [1553861760000, 4163, 4163.08241947, 4163.1, 4163, 1.13939463],\n    [1553861820000, 4163.08241947, 4163.1, 4163.1, 4163, 3.0140000000000002],\n    [1553861880000, 4163.1, 4164.4, 4164.4, 4163.1, 5.09883151],\n    [1553861940000, 4165, 4165.10382389, 4166.4, 4164.1, 3.1655775299999998],\n    [1553862000000, 4165.1, 4164.7, 4165.1, 4164.1, 3.49847274],\n    [1553862060000, 4164.1, 4164.8694432, 4164.9, 4164.1, 1.63750163],\n    [1553862120000, 4164.9, 4164.8, 4164.9, 4164.8, 0.74374772],\n    [1553862180000, 4164.9, 4164.9, 4164.9, 4164.81782635, 0.25249979],\n    [1553862240000, 4164.9, 4167.96320461, 4167.96320461, 4164.9, 3.93764623],\n    [1553862300000, 4167.85086968, 4165.7, 4167.85086968, 4165.5, 3.0394802],\n    [1553862360000, 4165.60417092, 4165.7, 4165.7, 4165.60417092, 0.2791],\n    [1553862420000, 4165.60417092, 4165.9, 4165.9, 4165.60417092, 0.16660682],\n    [1553862480000, 4165.82884079, 4165.8, 4165.9, 4165.8, 0.26491851],\n    [1553862540000, 4165.82884079, 4164, 4165.82884079, 4164, 2.09199266],\n    [1553862600000, 4163.1, 4163.2, 4163.2, 4163.1, 2.64091401],\n    [1553862660000, 4163.13280228, 4160.2, 4163.13280228, 4160.1, 6.64218901],\n    [1553862720000, 4160.02514626, 4155, 4160.02514626, 4155, 43.917139399999996],\n    [1553862780000, 4157.3, 4158.1, 4158.11553813, 4157.10456912, 0.28659924999999997],\n    [1553862840000, 4158.2, 4160.02514626, 4160.0961225, 4158.2, 1.20460312],\n    [1553862900000, 4160.02514626, 4160.1, 4160.1, 4160.02514626, 1.035],\n    [1553862960000, 4160.02514626, 4160.1, 4160.1, 4160.02514626, 0.72129097],\n    [1553863020000, 4160.6991256, 4161.9, 4161.9, 4160.6991256, 5.87248986],\n    [1553863080000, 4162.3, 4162.3, 4162.3, 4162.2, 0.107461],\n    [1553863140000, 4162.3, 4163.7, 4163.7, 4162.2, 10.17290386],\n    [1553863200000, 4163.6, 4163.5, 4163.6, 4163.5, 0.05144853],\n    [1553863260000, 4163.5, 4162.2, 4163.5, 4162.2, 1.85511878],\n    [1553863320000, 4162.3, 4162.23749695, 4162.3, 4162.23749695, 0.01174264],\n    [1553863380000, 4162.23749695, 4158, 4162.3, 4158, 10.03200474],\n    [1553863440000, 4158.6, 4160.2, 4160.3, 4158.6, 0.51909295],\n    [1553863500000, 4159.87776078, 4155, 4159.9, 4155, 15.31678338],\n    [1553863560000, 4156, 4159, 4159.8, 4155.9, 27.16205891],\n    [1553863620000, 4159.6, 4159.7, 4159.7, 4159.5, 0.19276419],\n    [1553863680000, 4159.7, 4159.7, 4159.8, 4159.7, 1.12066924],\n    [1553863740000, 4159.8, 4159.9, 4159.9, 4159.7, 6.3323161500000005],\n    [1553863800000, 4159.9, 4159.8, 4159.9, 4159.8, 1.4009287799999999],\n    [1553863860000, 4159.9, 4159.9, 4159.9, 4159.8, 2.49943012],\n    [1553863920000, 4159.9, 4159.81026768, 4159.9, 4159.81026768, 0.18213571],\n    [1553863980000, 4159.9, 4162.1, 4162.1, 4159.8, 7.2240367],\n    [1553864040000, 4162.17066811, 4162.17066811, 4162.17066811, 4162.1, 0.1609704],\n    [1553864100000, 4162.1, 4163, 4163, 4162.1, 1.31618462],\n    [1553864160000, 4163, 4162.8450667, 4163, 4162.8450667, 0.91153625],\n    [1553864220000, 4162.9, 4162.9, 4162.9, 4162.8450667, 0.18230151],\n    [1553864280000, 4163, 4163.1, 4163.1, 4162.9, 1.4021363400000002],\n    [1553864340000, 4163.1, 4165.76746577, 4165.76746577, 4163.1, 9.23589144],\n    [1553864400000, 4166.4, 4166.4, 4166.4, 4166.4, 0.025],\n    [1553864460000, 4166.32946559, 4166.4, 4166.4, 4166.3, 1.40699006],\n    [1553864520000, 4166.4, 4166.347164, 4166.4, 4166.3, 1.11351733],\n    [1553864580000, 4166.347164, 4166.3671436, 4166.3671436, 4166.3, 0.022608450000000002],\n    [1553864640000, 4166.4, 4166.3671436, 4166.4, 4166.3671436, 1.66386213],\n    [1553864700000, 4166.4, 4166.4, 4166.4, 4166.3671436, 0.74989587],\n    [1553864760000, 4166.3671436, 4166.3671436, 4166.3671436, 4166.3671436, 0.02963575],\n    [1553864820000, 4166.3671436, 4166.4, 4166.4, 4166.3671436, 0.25299967],\n    [1553864880000, 4166.4, 4166.3671436, 4166.4, 4166.3671436, 4.93230528],\n    [1553864940000, 4166.4, 4160.2, 4166.4, 4160.029594, 49.80764851],\n    [1553865000000, 4160.2, 4160.18958947, 4160.2, 4160.18958947, 1.45955961],\n    [1553865060000, 4160.2, 4160.8, 4160.9, 4160.2, 0.41305970000000003],\n    [1553865120000, 4160.9, 4160.8, 4160.9, 4160.8, 0.13244744],\n    [1553865180000, 4160.9, 4160.9, 4160.9, 4160.8, 0.33768625],\n    [1553865240000, 4160.9, 4160.9, 4160.9, 4160.8, 0.17832241000000001],\n    [1553865300000, 4160.8, 4163.9, 4163.9, 4160.8, 5.29258362],\n    [1553865360000, 4163.9, 4165.8, 4166.1, 4163.9, 0.36448967],\n    [1553865420000, 4165.8, 4166.4, 4166.4, 4165.8, 1.08778076],\n    [1553865480000, 4166.4, 4166.4, 4166.4, 4166.3, 7.035409980000001],\n    [1553865540000, 4166.4, 4166.7, 4166.7, 4166.4, 5.18766919],\n    [1553865600000, 4167.19088748, 4167.6, 4167.8, 4167.19088748, 13.04235174],\n    [1553865660000, 4167.8, 4167.7, 4167.8, 4167.7, 5.00781249],\n    [1553865720000, 4167.8, 4167.7, 4167.8, 4167.61220019, 7.04689321],\n    [1553865780000, 4167.6651225, 4167.8, 4167.8, 4167.61220019, 1.29298664],\n    [1553865840000, 4167.8, 4167.8, 4167.8, 4167.7, 0.44791989],\n    [1553865900000, 4167.8, 4167.8, 4167.8, 4167.7, 0.39635096],\n    [1553865960000, 4167.7, 4167.8, 4167.8, 4167.7, 1.5299904100000001],\n    [1553866020000, 4167.7, 4167.7, 4167.8, 4167.61220019, 7.9083957],\n    [1553866080000, 4167.7, 4167.72455008, 4167.8, 4167.7, 12.85653465],\n    [1553866140000, 4167.72455008, 4167.8, 4167.8, 4167.72455008, 0.73309333],\n    [1553866200000, 4167.7, 4167.7, 4167.7, 4167.7, 1.10670197],\n    [1553866260000, 4167.7, 4167.7, 4167.8, 4167.7, 1.96821198],\n    [1553866320000, 4167.8, 4167.8, 4167.8, 4167.7, 0.90255041],\n    [1553866380000, 4167.8, 4167.7476744, 4167.8, 4167.7, 3.84837455],\n    [1553866440000, 4167.7476744, 4167.7476744, 4167.8, 4167.7476744, 0.36390923],\n    [1553866500000, 4167.8, 4167.7, 4167.8, 4167.7, 2.02060086],\n    [1553866560000, 4167.7476744, 4170.1, 4170.10620471, 4167.7, 28.22477304],\n    [1553866620000, 4170.1, 4170.2, 4170.3, 4170.1, 5.14093882],\n    [1553866680000, 4170.3, 4170.2, 4170.3, 4170.2, 0.61372831],\n    [1553866740000, 4170.3, 4170.3, 4170.3, 4170.2, 3.08597626],\n    [1553866800000, 4170.3, 4170.21851568, 4170.3, 4170.21851568, 0.19341846],\n    [1553866860000, 4170.3, 4171.7, 4171.9, 4170.21851568, 4.90192213],\n    [1553866920000, 4171.7, 4171.7, 4171.7, 4171.7, 0.19584326],\n    [1553866980000, 4171.7, 4171.7, 4171.7, 4171.7, 1.40979229],\n    [1553867040000, 4171.61855838, 4170.2, 4171.7, 4170.1, 7.32987649],\n    [1553867100000, 4170.2, 4170.1, 4170.2, 4170.1, 2.54807191],\n    [1553867160000, 4170.1, 4170.1, 4170.1582616, 4170.1, 0.42282512],\n    [1553867220000, 4170.1, 4170.1, 4170.1, 4170.1, 0.58252927],\n    [1553867280000, 4170.1, 4170.1, 4170.1, 4170.1, 0.23062575],\n    [1553867340000, 4170.1, 4170.1, 4170.1582616, 4170.1, 0.32500266],\n    [1553867400000, 4170.1, 4170.1, 4170.1582616, 4170.1, 0.31345674],\n    [1553867460000, 4170.1582616, 4170.1, 4170.2, 4170.1, 1.66945748],\n    [1553867520000, 4170.10235025, 4170.1, 4170.10235025, 4170.1, 0.06402003],\n    [1553867580000, 4170.1, 4170.1, 4170.2, 4170.1, 1.20212625],\n    [1553867640000, 4170.1, 4170.1, 4170.1, 4170.1, 0.00613689],\n    [1553867700000, 4170.2, 4170.1, 4170.2, 4170.1, 0.27452908],\n    [1553867760000, 4170.2, 4170.1, 4170.2, 4170.1, 0.06622206],\n    [1553867880000, 4170.10235025, 4170.1, 4170.10235025, 4170.1, 0.45207657],\n    [1553867940000, 4170.1, 4170.1, 4170.2, 4170.1, 1.12633864],\n    [1553868000000, 4170.1, 4170.1, 4170.2, 4170.1, 0.1808284],\n    [1553868060000, 4170.1, 4170.1, 4170.12145154, 4170.1, 0.60130688],\n    [1553868120000, 4170.12145154, 4170.12145154, 4170.12145154, 4170.1, 0.16754077],\n    [1553868180000, 4170.1, 4170.1, 4170.1, 4170.1, 0.27950309],\n    [1553868240000, 4170.1, 4168.32384011, 4170.1, 4168.32384011, 4.81729327],\n    [1553868300000, 4168.32384011, 4167.4, 4168.32384011, 4167.4, 6.16459453],\n    [1553868360000, 4167.3, 4166, 4167.3, 4166, 10.68804203],\n    [1553868420000, 4166, 4166.07682583, 4166.07682583, 4166, 0.14317052],\n    [1553868480000, 4166, 4166, 4166, 4166, 0.00582788],\n    [1553868540000, 4166.07682583, 4166.07682583, 4166.07682583, 4166.07682583, 0.172],\n    [1553868600000, 4166, 4161, 4166, 4161, 1.65242169],\n    [1553868660000, 4160.3, 4159.8, 4160.3, 4159.7, 0.6960641200000001],\n    [1553868720000, 4159.8683708, 4159.8, 4159.8683708, 4159.8, 1.0155],\n    [1553868780000, 4159.8, 4159.9, 4159.9, 4159.8, 1.34584562],\n    [1553868840000, 4159.9, 4159.9, 4159.9, 4159.8, 0.27563484],\n    [1553868900000, 4159.9, 4159.9, 4159.9, 4159.8, 0.1551952],\n    [1553868960000, 4159.8, 4159.8, 4159.9, 4159.8, 1.38292218],\n    [1553869020000, 4159.8, 4159.8, 4159.9, 4159.8, 0.8458805500000001],\n    [1553869080000, 4159.9, 4159.8, 4159.9, 4159.8, 0.035],\n    [1553869140000, 4159.8, 4156.5, 4159.8, 4155.5, 28.22154152],\n    [1553869200000, 4156.5, 4156.5, 4156.5, 4156.5, 0.07210534],\n    [1553869260000, 4156.5, 4157.3, 4157.5, 4156.5, 0.84427086],\n    [1553869320000, 4158.10108654, 4159, 4159.3, 4158.1, 7.54665504],\n    [1553869380000, 4159.2, 4159.2, 4159.2, 4159.2, 0.0465],\n    [1553869440000, 4159.2, 4159.9, 4160, 4159.2, 5.15863231],\n    [1553869500000, 4160, 4160, 4160, 4160, 0.025],\n    [1553869560000, 4159.9, 4159.9, 4159.9, 4159.9, 0.20772194],\n    [1553869620000, 4159.9, 4159.9, 4159.9, 4159.9, 0.05067489],\n    [1553869680000, 4159.9, 4159.9, 4159.9, 4159.9, 1.40855697],\n    [1553869740000, 4159.9, 4159.9, 4159.9, 4159.89845564, 0.86847715],\n    [1553869800000, 4159.89845564, 4155.7, 4159.89845564, 4155.7, 3.4959363900000002],\n    [1553869860000, 4155.85437516, 4156.3751535, 4156.3751535, 4155.1, 2.3548430700000003],\n    [1553869920000, 4156.3360457, 4156.1, 4156.3360457, 4156, 10.65361313],\n    [1553869980000, 4155.99887234, 4156.3, 4156.3, 4155.99887234, 0.32740796],\n    [1553870040000, 4156.22365458, 4156.3, 4156.3, 4156.22365458, 0.12465204],\n    [1553870100000, 4156.22365458, 4156.3, 4156.3, 4156.22365458, 0.12201011],\n    [1553870160000, 4156.3, 4156.4, 4156.4, 4156.3, 11.04985084],\n    [1553870220000, 4156.44843682, 4156.3, 4156.44843682, 4156.11126346, 4.54567335],\n    [1553870280000, 4156.22365458, 4156.22365458, 4156.22365458, 4156.22365458, 0.0448829],\n    [1553870340000, 4156.3, 4156.3360457, 4156.4, 4156.3, 0.90821172],\n    [1553870400000, 4156.3360457, 4155.9, 4156.4, 4155.9, 5.92117699],\n    [1553870460000, 4156, 4156.5, 4156.5, 4156, 30.20019096],\n    [1553870520000, 4156.9372216, 4157.1, 4157.1, 4156.9, 6.62547635],\n    [1553870580000, 4157.16196343, 4157.16196343, 4157.16196343, 4157.16196343, 0.66048256],\n    [1553870640000, 4157.2, 4157.16196343, 4157.2, 4157.16196343, 0.6064158900000001],\n    [1553870700000, 4157.16196343, 4157.16196343, 4157.2, 4157.16196343, 0.19602743],\n    [1553870760000, 4157.16196343, 4157.16196343, 4157.16196343, 4157.16196343, 5.42671975],\n    [1553870820000, 4157.16196343, 4157.16196343, 4157.16196343, 4157.16196343, 0.11402584],\n    [1553870880000, 4157.16196343, 4157.2, 4157.2, 4157.16196343, 6.36026113],\n    [1553870940000, 4157.2, 4157.2, 4157.2, 4157.16196343, 0.13064165],\n    [1553871060000, 4157.16196343, 4157.15199892, 4157.2, 4157.1, 4.75359673],\n    [1553871120000, 4157.2, 4157.5, 4157.5, 4157.15199892, 0.93449468],\n    [1553871180000, 4157.4, 4157.15199851, 4157.5, 4157.1, 3.22599386],\n    [1553871240000, 4157.2, 4157, 4157.2, 4157, 8.02813812],\n    [1553871300000, 4155.9, 4155.01891666, 4155.9, 4155.01891666, 0.14728856],\n    [1553871360000, 4155.01891666, 4155, 4155.1, 4155, 56.81328995],\n    [1553871420000, 4155.1, 4155, 4155.1, 4155, 0.06999999999999999],\n    [1553871480000, 4155, 4155, 4155.1, 4155, 0.42216180000000003],\n    [1553871540000, 4155.01891666, 4155.01891666, 4155.4, 4155, 2.36973228],\n    [1553871600000, 4155.01891666, 4155.01891666, 4155.3, 4155, 0.20308615],\n    [1553871660000, 4155.01891666, 4155, 4155.4300661, 4155, 12.09733077],\n    [1553871720000, 4155.4, 4155.5, 4155.5423386, 4155.4, 32.37722036],\n    [1553871780000, 4155.5423386, 4155.5, 4155.6, 4155.5, 0.45756784],\n    [1553871840000, 4155.6, 4155.5423386, 4155.6, 4155.5423386, 1.0699999999999998],\n    [1553871900000, 4155.5423386, 4155.5423386, 4155.5423386, 4155.5423386, 0.0056539599999999995],\n    [1553871960000, 4155.6, 4155.6, 4155.6, 4155.6, 0.01001884],\n    [1553872020000, 4155.6, 4156.3282399, 4156.3282399, 4155.5423386, 8.71348496],\n    [1553872080000, 4156.3282399, 4156.3, 4156.3282399, 4156.3, 0.43163219],\n    [1553872140000, 4156.3282399, 4156.4, 4156.4, 4156.3, 0.43749802000000004],\n    [1553872200000, 4156.9604478, 4156.9, 4156.9604478, 4156.9, 0.90202356],\n    [1553872260000, 4156.99231618, 4156.99231618, 4156.99231618, 4156.99231618, 0.00488409],\n    [1553872320000, 4157, 4157.7778501, 4157.7778501, 4157, 0.23440344000000002],\n    [1553872380000, 4157.7778501, 4158.5, 4158.5, 4157.7778501, 1.02073261],\n    [1553872440000, 4158.4511856, 4159.57338169, 4159.57338169, 4158.4, 7.7934757900000005],\n    [1553872500000, 4159.6, 4159.91005503, 4160, 4159.6, 0.22],\n    [1553872560000, 4160, 4161.70558663, 4161.70558663, 4160, 2.22719677],\n    [1553872620000, 4161.70558663, 4161.7, 4161.70558663, 4161.7, 0.35224828],\n    [1553872680000, 4161.8, 4163.4, 4163.9, 4161.8, 0.77026078],\n    [1553872740000, 4163.2, 4162.9, 4163.2, 4162.5, 0.13566648],\n    [1553872800000, 4162.9, 4162.9, 4162.9, 4162.9, 0.02272956],\n    [1553872860000, 4163, 4163.9, 4163.9, 4163, 5.08907842],\n    [1553872920000, 4163.93405804, 4165.50625061, 4165.6, 4163.93405804, 1.92184176],\n    [1553872980000, 4165.50625061, 4165.5, 4165.6, 4165.5, 0.36081541],\n    [1553873040000, 4165.6, 4166, 4166, 4165.6, 2.51296657],\n    [1553873100000, 4166, 4166, 4166, 4165.9, 0.73160659],\n    [1553873160000, 4165.95544655, 4166, 4166, 4165.95544655, 0.12492355999999999],\n    [1553873220000, 4166, 4165.95544655, 4166, 4165.95544655, 0.1003832],\n    [1553873280000, 4165.9, 4166, 4166, 4165.9, 0.05038573],\n    [1553873340000, 4165.9, 4166, 4166, 4165.9, 0.23410835000000002],\n    [1553873400000, 4166, 4166, 4166, 4166, 0.25762964],\n    [1553873460000, 4165.9, 4165.97444338, 4166, 4165.9, 0.67541547],\n    [1553873520000, 4165.9, 4165.9, 4165.97444338, 4165.9, 0.055596929999999996],\n    [1553873580000, 4165.9, 4165.9236601, 4165.97444338, 4165.9, 1.9985989899999999],\n    [1553873640000, 4165.9, 4165.9, 4165.9236601, 4165.9, 3.5863495899999998],\n    [1553873700000, 4165.9, 4165.9, 4165.9, 4165.9, 0.24906506],\n    [1553873760000, 4165.9, 4165.9, 4165.9, 4165.9, 0.0999],\n    [1553873820000, 4165.9236601, 4165.9, 4165.97444338, 4165.9, 0.73343035],\n    [1553873880000, 4165.9, 4165.9, 4165.9, 4165.9, 0.19354193],\n    [1553873940000, 4165.97444338, 4165.9, 4165.97444338, 4165.9, 0.25089654],\n    [1553874000000, 4165.9, 4165.9, 4165.9, 4165.9, 0.6164114700000001],\n    [1553874060000, 4165.9, 4165.9, 4165.98377762, 4165.9, 0.53996999],\n    [1553874120000, 4165.9, 4165.9, 4165.9, 4165.9, 0.02812224],\n    [1553874240000, 4165.9, 4165.87152024, 4165.98377762, 4165.87152024, 1.7506235600000002],\n    [1553874300000, 4165.8, 4163.40185779, 4165.8, 4163.40185779, 1.9374751700000001],\n    [1553874360000, 4163.40185779, 4163.5, 4163.5, 4163.40185779, 0.01],\n    [1553874420000, 4163.4, 4165.2, 4165.2, 4163.4, 0.50103328],\n    [1553874480000, 4165.2, 4165.3, 4165.3, 4165.2, 0.90087716],\n    [1553874600000, 4165.3, 4165.31023332, 4165.31023332, 4165.3, 0.01596479],\n    [1553874660000, 4166, 4165.952142, 4166, 4165.952142, 0.31],\n    [1553874720000, 4165.952142, 4165.9, 4166, 4165.9, 0.08236607],\n    [1553874780000, 4166, 4166.04884186, 4166.04884186, 4166, 0.725],\n    [1553874840000, 4166.04883612, 4165.5, 4166.04884186, 4165.2, 11.02399262],\n    [1553874900000, 4165.26251364, 4165.26251364, 4165.26251364, 4165.2, 0.08078744],\n    [1553874960000, 4165.2, 4163.9, 4165.26251364, 4163.9, 2.11420444],\n    [1553875020000, 4163.7, 4163.6, 4163.7, 4163.6, 0.97469474],\n    [1553875080000, 4163.6, 4163.6, 4163.6, 4163.6, 0.51109681],\n    [1553875140000, 4163.6, 4163.6, 4163.6, 4163.6, 0.21217614],\n    [1553875200000, 4163.6, 4163.6, 4163.7, 4163.6, 3.9274467],\n    [1553875260000, 4162.9, 4161.4, 4162.9, 4161.4, 2.55687763],\n    [1553875320000, 4161.4, 4160, 4161.4, 4160, 17.03591502],\n    [1553875380000, 4160.1151005, 4160.1, 4160.2, 4160, 0.37031504000000004],\n    [1553875440000, 4160, 4160, 4160, 4160, 1.49577355],\n    [1553875500000, 4160, 4160, 4160, 4160, 0.12264895],\n    [1553875560000, 4160, 4160.58475726, 4160.6, 4160, 10.41541144],\n    [1553875620000, 4160.58475726, 4160, 4160.58475726, 4160, 2.6902906599999996],\n    [1553875680000, 4160.0233506, 4158.00228662, 4160.0233506, 4158.00228662, 22.31283336],\n    [1553875740000, 4159.6, 4157.6, 4160.1, 4155, 38.12307966],\n    [1553875800000, 4155.6, 4155.6, 4155.6, 4155.6, 0.005],\n    [1553875860000, 4156, 4156, 4156, 4156, 0.037490949999999995],\n    [1553875920000, 4156.2, 4156.5, 4156.5, 4156.1, 1.16370004],\n    [1553875980000, 4156.5, 4156.5, 4156.5, 4156.5, 0.57343549],\n    [1553876040000, 4156.5, 4156.5, 4156.5, 4156.5, 0.0461333],\n    [1553876100000, 4156.5, 4156.4, 4156.5, 4156.4, 1.25450706],\n    [1553876160000, 4156.4, 4157.6, 4157.6, 4156.4, 15],\n    [1553876220000, 4157.7, 4157.7, 4157.7827724, 4156.5, 1.18322678],\n    [1553876280000, 4157.8, 4159, 4159, 4157.8, 0.24596302],\n    [1553876340000, 4159, 4157.8622316, 4159, 4157.8622316, 1.09217883],\n    [1553876400000, 4158.2, 4158.2, 4158.2, 4158.19906425, 0.65219542],\n    [1553876460000, 4158.4, 4158.3, 4158.4, 4158.3, 0.23246323],\n    [1553876520000, 4158.3, 4158.25689011, 4158.3, 4158.25689011, 0.17750821],\n    [1553876580000, 4158.25689011, 4157.4, 4158.2949168, 4156.2, 0.34845843],\n    [1553876640000, 4157.80787066, 4158.1, 4158.2, 4157.80787066, 0.52443],\n    [1553876700000, 4157.4, 4158.36914497, 4158.5, 4157.4, 2.71542904],\n    [1553876760000, 4158.4, 4158.4, 4158.4, 4158.4, 1.25537237],\n    [1553876820000, 4158.4, 4158.4, 4158.4, 4158.4, 4.2700000000000005],\n    [1553876880000, 4158.36914497, 4158.4, 4158.4, 4158.36914497, 0.01384985],\n    [1553876940000, 4158.36914497, 4158.4, 4158.4, 4158.36914497, 0.015433680000000002],\n    [1553877000000, 4158.36914497, 4158.3, 4158.4, 4158.3, 0.76553163],\n    [1553877060000, 4158.3, 4158.34693459, 4158.34693459, 4158.3, 0.15440693],\n    [1553877120000, 4158.34693459, 4158.3, 4158.34693459, 4158.3, 5.1197488],\n    [1553877180000, 4158.34693459, 4158.34693459, 4158.34693459, 4158.34693459, 0.00607039],\n    [1553877300000, 4158.34693459, 4158.6, 4158.6, 4158.3, 2.65339297],\n    [1553877360000, 4158.90813016, 4158.90813016, 4159, 4158.9, 0.28215548],\n    [1553877480000, 4159, 4158.90813016, 4159, 4158.90813016, 0.18925240000000002],\n    [1553877540000, 4159, 4158.90813016, 4159, 4158.90813016, 0.04323148],\n    [1553877660000, 4159, 4161.80298672, 4162.47642992, 4159, 33.11236344],\n    [1553877720000, 4161.80298672, 4161.8, 4161.9, 4161.8, 0.22482518],\n    [1553877780000, 4161.8, 4161.8, 4161.8, 4161.8, 0.16641493000000002],\n    [1553877840000, 4161.9, 4161.8, 4161.9, 4161.8, 2.1348001599999997],\n    [1553877900000, 4161.8, 4161.8, 4161.9, 4161.8, 0.49478237999999997],\n    [1553877960000, 4161.8, 4161.9, 4161.9, 4161.8, 0.28287188],\n    [1553878020000, 4161.9, 4161.9, 4167.7, 4161.8, 25.84094523],\n    [1553878080000, 4161.8220826, 4161.8220826, 4161.8220826, 4161.8220826, 0.085],\n    [1553878140000, 4161.8220826, 4161.8220826, 4161.8220826, 4161.8220826, 0.08384208],\n    [1553878200000, 4161.8220826, 4161.8220826, 4161.9, 4161.8220826, 0.10040827],\n    [1553878260000, 4161.9, 4161.8, 4161.9, 4161.8, 0.53055787],\n    [1553878320000, 4161.8, 4161.8, 4161.8, 4161.8, 0.0041076],\n    [1553878380000, 4161.8, 4161.8, 4161.9, 4161.8, 0.3673926],\n    [1553878440000, 4161.8, 4161.9, 4161.9, 4161.8, 0.19305614],\n    [1553878500000, 4161.9, 4161.9, 4161.9, 4161.8, 1.04177514],\n    [1553878560000, 4161.8, 4161.8, 4161.9, 4161.8, 4.24555884],\n    [1553878620000, 4161.8, 4161.8, 4161.8, 4161.8, 0.00835534],\n    [1553878680000, 4161.9, 4162.33626963, 4162.4, 4161.9, 0.20453544],\n    [1553878740000, 4162.33626963, 4162.4, 4162.4, 4162.33626963, 0.16095343],\n    [1553878800000, 4162.33626963, 4162.4, 4162.4, 4162.33626963, 0.34363639],\n    [1553878860000, 4162.4, 4164.9, 4164.9, 4162.4, 0.74077005],\n    [1553878920000, 4165, 4169.2, 4169.5, 4165, 29.133100600000002],\n    [1553878980000, 4169.2, 4169.2, 4171.5, 4169.2, 10.95275766],\n    [1553879040000, 4169.2, 4169.2, 4169.2, 4169.2, 0.00745605],\n    [1553879100000, 4169.2, 4169, 4169.2, 4169, 7.11225593],\n    [1553879160000, 4169, 4166.5, 4169, 4166.5, 1.0734369400000001],\n    [1553879220000, 4166.45149511, 4166.45149511, 4166.45149511, 4166.45149511, 0.0054056],\n    [1553879280000, 4166.5, 4165.44120134, 4166.5, 4165.44120134, 0.06271972],\n    [1553879340000, 4165.44120134, 4165.5, 4165.5, 4165.44120134, 0.22095055],\n    [1553879400000, 4165.5, 4166.4, 4166.5, 4165.44120134, 4.63124327],\n    [1553879460000, 4166, 4165.4, 4166, 4165.4, 1.08312514],\n    [1553879580000, 4165.44186007, 4165.4, 4165.44186007, 4165.4, 0.63744354],\n    [1553879640000, 4165.4, 4165.4, 4165.4, 4165.4, 0.27396558],\n    [1553879700000, 4165.4, 4165.5, 4165.5, 4165.4, 0.26932754999999997],\n    [1553879760000, 4165.4, 4165.5, 4165.5, 4165.4, 0.07539046],\n    [1553879820000, 4165.4, 4165.4, 4165.4, 4165.4, 0.07109515999999999],\n    [1553879940000, 4165.4, 4165.55405448, 4165.55405448, 4165.4, 1.5084629999999999],\n    [1553880000000, 4165.5, 4165.5, 4165.5, 4165.5, 0.01046],\n    [1553880060000, 4165.5, 4165.5, 4165.5, 4165.5, 5.95013413],\n    [1553880120000, 4165.5, 4166.5, 4166.5, 4165.5, 15.71939733],\n    [1553880180000, 4166.5, 4167.3, 4169, 4166.48438226, 5.32743704],\n    [1553880240000, 4167, 4167.4, 4169.9, 4167, 11.31768127],\n    [1553880300000, 4167.4, 4170, 4170, 4167.4, 4.47859236],\n    [1553880360000, 4170, 4170.1, 4170.1, 4170, 6.86706352],\n    [1553880420000, 4170, 4170, 4170, 4170, 0.201733],\n    [1553880480000, 4170, 4170, 4170, 4170, 0.24299721],\n    [1553880540000, 4170, 4170, 4170, 4170, 11.98615687],\n    [1553880600000, 4170, 4167.60621435, 4170, 4166.7, 4.46727503],\n    [1553880660000, 4167.6, 4168.89206396, 4169, 4167.6, 4.10900074],\n    [1553880720000, 4168.3, 4168.4, 4168.55544674, 4168.3, 1.11147186],\n    [1553880780000, 4168.4, 4168.4, 4168.5, 4168.4, 0.12414794],\n    [1553880840000, 4168.5, 4168.5, 4169.8, 4168.5, 1.63240718],\n    [1553880900000, 4168.5, 4168.7, 4169.5, 4168.5, 3.29208937],\n    [1553880960000, 4168.66765248, 4169.1, 4169.9, 4168.66765248, 15.86518301],\n    [1553881020000, 4169.1, 4169.4, 4170, 4169.1, 3.88161804],\n    [1553881080000, 4168.4, 4167.65780082, 4168.4, 4167.20897786, 6.11308637],\n    [1553881140000, 4168.1, 4167.5, 4168.1, 4167.5, 5.82254481],\n    [1553881200000, 4167.5, 4167.5, 4167.8, 4167.5, 2.0296329],\n    [1553881260000, 4167.4, 4167.8, 4169.3, 4167.4, 2.1895865],\n    [1553881320000, 4167.8, 4167.8, 4167.8, 4167.8, 0.11470632],\n    [1553881380000, 4167.75600691, 4167.7, 4167.8, 4167.7, 0.7634997],\n    [1553881440000, 4167.7, 4167.7, 4167.7, 4167.7, 0.54383766],\n    [1553881500000, 4167.7, 4167.3, 4167.7, 4167.3, 0.95979138],\n    [1553881560000, 4167.3, 4167.3, 4167.3, 4167.3, 0.12438549],\n    [1553881620000, 4167.4, 4169.2, 4169.2, 4167.4, 4.14550165],\n    [1553881680000, 4168.7, 4168.6, 4168.7, 4167.4, 6.2547071],\n    [1553881740000, 4167.8682153, 4167.8, 4167.8682153, 4167.8, 0.2421805],\n    [1553881800000, 4167.4, 4168.3, 4168.3, 4167.30717338, 3.04989867],\n    [1553881860000, 4168.20484045, 4167.9, 4168.6, 4167.9, 1.17830538],\n    [1553881920000, 4167.98510395, 4167.9, 4167.98510395, 4167.9, 0.05303839],\n    [1553881980000, 4167.7, 4168.5461465, 4168.6, 4167.7, 2.12587673],\n    [1553882040000, 4168.5461465, 4168.5461465, 4168.6, 4168.5461465, 1.9758293200000001],\n    [1553882100000, 4168.5461465, 4168.6, 4168.6, 4168.5461465, 3.03176386],\n    [1553882160000, 4168.6, 4168.5461465, 4168.6, 4168.5461465, 0.12892201],\n    [1553882220000, 4168.6, 4167.7, 4168.6, 4167.7, 1.11889441],\n    [1553882280000, 4167.7, 4167.6, 4167.7, 4167.1, 0.73330942],\n    [1553882340000, 4167.6, 4167.6, 4167.7, 4167.6, 3.70254457],\n    [1553882400000, 4167.6, 4167.6, 4167.7, 4167.6, 0.21562278000000001],\n    [1553882460000, 4167.6, 4166.4, 4167.6, 4166.3, 0.92384997],\n    [1553882520000, 4166.4, 4167.2, 4167.6, 4166.4, 0.96764432],\n    [1553882580000, 4167.1, 4167.4, 4167.6, 4167.1, 3.33501403],\n    [1553882640000, 4167.1, 4167.2, 4167.2, 4167.1, 0.14278753],\n    [1553882700000, 4167.1, 4167.1, 4167.1, 4167.1, 0.25919937],\n    [1553882760000, 4167.1, 4167.7, 4167.9, 4167.1, 0.17123586000000002],\n    [1553882820000, 4167.66722908, 4167.9, 4168, 4167.1, 1.53250441],\n    [1553882880000, 4167.8, 4167.6, 4167.9, 4166.5, 0.8493569400000001],\n    [1553882940000, 4167.4, 4167.3, 4167.4, 4167.3, 0.48480464],\n    [1553883000000, 4167.2, 4166.8, 4167.4, 4166.8, 1.18254676],\n    [1553883060000, 4167.1, 4167, 4167.9, 4166.6, 2.58384032],\n    [1553883120000, 4166.8, 4166.8, 4166.8, 4166.8, 0.05529904],\n    [1553883180000, 4166.9, 4165.1, 4166.9, 4164, 11.862452189999999],\n    [1553883240000, 4165.1, 4165.1, 4165.2, 4165.08593251, 0.67835102],\n    [1553883300000, 4165.1, 4165.9, 4165.9, 4165.1, 6.6871192399999995],\n    [1553883360000, 4165.9, 4165.8, 4165.9, 4165.8, 1.99659033],\n    [1553883420000, 4165.8, 4165.7593861, 4165.8, 4165.7593861, 0.17112116],\n    [1553883480000, 4165.7593861, 4165.2, 4165.7593861, 4165, 13.04208794],\n    [1553883540000, 4165.4, 4165.4, 4165.4226593, 4165.4, 8.3876],\n    [1553883600000, 4165.4226593, 4165.5, 4165.5, 4165.2, 1.08888033],\n    [1553883660000, 4165.6, 4165.80624888, 4166.3, 4165, 9.62642881],\n    [1553883720000, 4165.80624888, 4165.9, 4165.9, 4165.8, 1.14846931],\n    [1553883780000, 4165.9, 4165.8, 4165.9, 4165.8, 0.30095302],\n    [1553883840000, 4165.9, 4165.8, 4165.9, 4165.8, 0.29420496],\n    [1553883900000, 4165.8, 4165, 4165.80623943, 4165, 1.49110927],\n    [1553883960000, 4165.1, 4165.3, 4165.9, 4165, 1.9055105700000001],\n    [1553884020000, 4165.4, 4165.8, 4165.9, 4165.4, 2.96904795],\n    [1553884080000, 4165.9, 4165.9, 4165.9, 4165.80623943, 0.06597253],\n    [1553884140000, 4165.9, 4165.80623943, 4165.9, 4165.80623943, 0.57472474],\n    [1553884200000, 4165.80623943, 4165.9, 4165.9, 4165.80623943, 0.04042614],\n    [1553884260000, 4165.9, 4170, 4172.5, 4165.80623943, 23.5360903],\n    [1553884320000, 4169.9, 4169.9107128, 4169.93920133, 4169.9, 1.21568885],\n    [1553884380000, 4169.9107128, 4172.4, 4172.4, 4169.9107128, 3.40727371],\n    [1553884440000, 4172.4, 4172.4, 4172.4, 4172.3, 0.18744343],\n    [1553884500000, 4172.3, 4172.3, 4172.4, 4172.3, 0.43441242],\n    [1553884560000, 4172.4, 4175.5, 4176.4, 4172.4, 38.14280658],\n    [1553884620000, 4175.2, 4174.5, 4175.2, 4174.4, 0.15749247],\n    [1553884680000, 4174.4, 4174.4, 4174.5, 4174.4, 0.05199715],\n    [1553884740000, 4174.5, 4174.5, 4174.5, 4174.5, 0.04732695],\n    [1553884800000, 4174.5, 4175.2, 4175.2, 4174.5, 1.25950932],\n    [1553884860000, 4175.2, 4175.2, 4175.2, 4175.1432872, 2.41519267],\n    [1553884920000, 4175.1687984, 4175.2, 4175.2, 4175.1, 0.43252749],\n    [1553884980000, 4175.2, 4176.1, 4177.5, 4175.2, 3.85862885],\n    [1553885040000, 4176.2, 4176.7, 4176.9, 4176.2, 1.04141875],\n    [1553885100000, 4176.8, 4176.8, 4176.8, 4176.8, 0.35588754],\n    [1553885160000, 4176.8, 4176.8, 4176.8, 4176.7, 0.10508886],\n    [1553885220000, 4176.8, 4177.8, 4177.8, 4176.7, 1.3148],\n    [1553885280000, 4177.4, 4178.6, 4178.6, 4177.4, 23.090533269999998],\n    [1553885340000, 4178.4, 4179.3, 4179.9, 4178.4, 8.01504744],\n    [1553885400000, 4179.2, 4179.2, 4179.2, 4179.2, 0.03544048],\n    [1553885460000, 4179.3, 4180, 4180, 4179.1, 0.10620500000000001],\n    [1553885520000, 4179.768576, 4179.7, 4179.768576, 4179.7, 0.19371769],\n    [1553885580000, 4179.8, 4179.8, 4179.8, 4179.8, 7.67563745],\n    [1553885640000, 4179.768576, 4176.1, 4179.768576, 4176.1, 2.80686646],\n    [1553885700000, 4176.1, 4176.8, 4177, 4176.1, 3.8693416099999998],\n    [1553885760000, 4177, 4177.5, 4178.6, 4177, 4.81231079],\n    [1553885820000, 4177.9, 4179.3, 4179.3, 4177.88398092, 0.06920591000000001],\n    [1553885940000, 4179.2, 4177.8, 4179.2, 4177.8, 1.24492906],\n    [1553886000000, 4178.7, 4179.7, 4180, 4178.7, 13.4208],\n    [1553886060000, 4179.7, 4178.8, 4179.7, 4178.8, 0.09798807],\n    [1553886120000, 4179.3, 4179.3, 4179.354444, 4179.3, 6.206706280000001],\n    [1553886180000, 4179.3, 4176.2, 4179.3, 4176.1, 17.21447442],\n    [1553886240000, 4176.1, 4176.1, 4176.1, 4176.1, 12.633168210000001],\n    [1553886300000, 4176.1, 4176.1, 4176.1, 4176.1, 3.7125],\n    [1553886360000, 4176.14336493, 4176.1, 4176.2, 4176.1, 1.03674475],\n    [1553886420000, 4176.1, 4176.2, 4176.2, 4176.1, 1.00068422],\n    [1553886480000, 4176.2, 4176.1, 4176.2, 4176.1, 0.89271548],\n    [1553886540000, 4176.2, 4176.2, 4176.2, 4176.1, 1.8468652099999998],\n    [1553886600000, 4176.1, 4176.1, 4176.2, 4176.1, 6.25158239],\n    [1553886660000, 4176.2, 4176.1, 4176.2, 4176.1, 4.64669997],\n    [1553886720000, 4176.1, 4176.1, 4176.1, 4176.1, 0.67176697],\n    [1553886780000, 4176.1, 4176.1, 4176.1, 4176.1, 0.995],\n    [1553886840000, 4176.2, 4176.1, 4176.2, 4176.1, 0.57820685],\n    [1553886900000, 4176.1, 4176.1, 4176.1, 4176.1, 0.004],\n    [1553886960000, 4176.1, 4176.1, 4176.1, 4176.1, 0.19022602],\n    [1553887080000, 4176.1, 4176.1, 4176.2, 4176.1, 0.88963432],\n    [1553887140000, 4176.1, 4176.18416002, 4176.18416002, 4176.1, 0.13706736],\n    [1553887200000, 4176.18416002, 4176.1, 4176.18416002, 4176.1, 10.60910184],\n    [1553887260000, 4176.18416002, 4176.1, 4176.2, 4176.1, 30.89077974],\n    [1553887320000, 4176.2, 4176.2, 4176.2, 4176.2, 0.17739249],\n    [1553887380000, 4176.2, 4176.2, 4176.2, 4176.1, 0.40692266],\n    [1553887440000, 4176.1, 4176.2, 4176.2, 4176.1, 0.291381],\n    [1553887500000, 4176.2, 4176.1, 4176.2, 4176.1, 1.47919052],\n    [1553887560000, 4176.1, 4176.1, 4176.2, 4176.1, 1.79413484],\n    [1553887620000, 4176.2, 4176.1, 4176.2, 4176.1, 5.16877464],\n    [1553887740000, 4176.1, 4176.1, 4176.1, 4176.1, 0.1249],\n    [1553887800000, 4176.2, 4176.2, 4176.2, 4176.2, 0.03362466],\n    [1553887860000, 4176.2, 4176.1, 4176.2, 4176.1, 0.98358955],\n    [1553887920000, 4176.2, 4176.2, 4176.2, 4176.2, 0.01523764],\n    [1553887980000, 4176.2, 4176.2, 4176.2, 4176.2, 0.33425152999999996],\n    [1553888040000, 4176.1, 4175.2, 4176.1, 4175.2, 3.2854583699999997],\n    [1553888100000, 4175.3, 4175.2, 4175.3, 4175.2, 0.35756997],\n    [1553888160000, 4175.2, 4174.8, 4175.5, 4174.7, 1.9691042],\n    [1553888220000, 4174.7, 4172.6, 4174.8, 4172.6, 5.0102962600000005],\n    [1553888280000, 4174, 4173.3, 4174, 4172.7, 2.75304771],\n    [1553888340000, 4172.98547155, 4172.1, 4172.98547155, 4172.1, 0.19009486],\n    [1553888400000, 4172.87330357, 4171.4, 4172.87330357, 4171.4, 0.52998924],\n    [1553888460000, 4172.4, 4172.96775786, 4172.96775786, 4172.4, 0.11739372000000001],\n    [1553888520000, 4173.7, 4173, 4175.4, 4173, 1.43537416],\n    [1553888580000, 4173.30432, 4174.3, 4174.3, 4173.30432, 0.16261566],\n    [1553888640000, 4174.426176, 4174.5, 4174.5, 4174.426176, 0.025],\n    [1553888760000, 4174.5, 4172.6, 4174.5, 4172.4068352, 3.16716692],\n    [1553888820000, 4172.7, 4175, 4175, 4172.6, 0.53937323],\n    [1553888880000, 4174.5383616, 4174.5383616, 4174.5383616, 4174.5383616, 0.01022632],\n    [1553888940000, 4174.5383616, 4173.0799488, 4174.5383616, 4173.0799488, 0.09916240000000001],\n    [1553889000000, 4173.0799488, 4175.0992896, 4175.0992896, 4173.0799488, 2.14535988],\n    [1553889060000, 4174.7, 4174.7539961, 4174.7539961, 4174.7, 0.09536579],\n    [1553889180000, 4174.7539961, 4174.8, 4174.8, 4174.7, 0.30857955000000004],\n    [1553889240000, 4174.7539961, 4172.1, 4174.7539961, 4171.9, 4.71253123],\n    [1553889300000, 4172.06133026, 4172, 4172.1, 4171.94913585, 1.14338466],\n    [1553889360000, 4171.94913585, 4171.94913585, 4172, 4171.9, 0.24018295],\n    [1553889420000, 4172, 4166.4538004, 4172, 4165.7, 4.62690422],\n    [1553889480000, 4166.4, 4166.45160976, 4166.45160976, 4166.4, 0.10672046],\n    [1553889540000, 4166.45160976, 4162.3, 4166.45160976, 4162.3, 5.6824325],\n    [1553889600000, 4162.3, 4162.3, 4162.4, 4162.3, 0.26954728],\n    [1553889660000, 4162.3, 4162.33861104, 4162.4, 4162.3, 0.28064789],\n    [1553889720000, 4162.33861104, 4162.3, 4162.33861104, 4162.3, 3.5290704],\n    [1553889780000, 4162.3, 4161.8, 4162.33861104, 4161.8, 10.38847266],\n    [1553889840000, 4161.8, 4161.8, 4161.9, 4161.8, 7.68637037],\n    [1553889900000, 4161.8, 4161.88991395, 4161.88991395, 4161.8, 2.35349035],\n    [1553889960000, 4161.88991395, 4161.8, 4161.88991395, 4161.8, 5],\n    [1553890020000, 4161.88991395, 4161.88991395, 4161.9, 4161.8, 0.47054931],\n    [1553890080000, 4161.88991395, 4161.8, 4161.9, 4161.8, 0.22914008],\n    [1553890140000, 4161.8812312, 4161.8, 4161.88991395, 4161.8, 0.5406615300000001],\n    [1553890200000, 4161.8, 4161.8, 4161.8, 4161.8, 0.04739078],\n    [1553890260000, 4161.8, 4161.9, 4161.9, 4161.8, 0.1613436],\n    [1553890320000, 4161.80575093, 4161.8, 4161.9, 4161.8, 0.18054782],\n    [1553890380000, 4161.9, 4161.9, 4161.9, 4161.80575093, 1.09403707],\n    [1553890440000, 4161.80575093, 4161.8, 4161.9, 4161.8, 8.7891493],\n    [1553890500000, 4161.8, 4161.8, 4161.80575093, 4161.8, 4.22946052],\n    [1553890560000, 4161.8, 4161.8, 4161.9, 4161.8, 3.80928492],\n    [1553890620000, 4161.8, 4159.6, 4161.8, 4159.1, 22.64657211],\n    [1553890680000, 4160.5, 4160.8, 4160.9, 4160.5, 0.88655117],\n    [1553890740000, 4160.8, 4160.8, 4160.8, 4160.8, 0.3],\n    [1553890800000, 4160.8, 4160.9, 4160.9, 4160.8, 0.05551729],\n    [1553890860000, 4160.9, 4161, 4161, 4160.9, 0.31734086],\n    [1553890920000, 4161, 4160.9, 4161, 4160.9, 1.1140589],\n    [1553890980000, 4161, 4160.9, 4161, 4160.9, 0.85671088],\n    [1553891040000, 4160.9, 4160.9, 4160.9, 4160.9, 1.67186877],\n    [1553891100000, 4160.8, 4160.8, 4160.8, 4160.8, 0.005],\n    [1553891220000, 4160.9, 4160.97370856, 4160.97370856, 4160.9, 2.4567360799999998],\n    [1553891280000, 4160.9, 4160.9, 4160.9, 4160.9, 0.78857483],\n    [1553891340000, 4160.97370856, 4161, 4161, 4160.97370856, 0.76899999],\n    [1553891400000, 4160.97370856, 4160.9, 4160.97370856, 4160.9, 0.75832219],\n    [1553891460000, 4160.9, 4160.91270375, 4161, 4160.9, 0.7042722],\n    [1553891520000, 4160.91270375, 4160.9, 4160.91270375, 4160.9, 1],\n    [1553891580000, 4160.91270375, 4159.5, 4161, 4158.8, 10.15126984],\n    [1553891640000, 4159.45434821, 4159.45434821, 4159.45434821, 4159.1, 0.6208662699999999],\n    [1553891700000, 4159.5, 4159.45434821, 4159.5, 4159.45434821, 0.02170315],\n    [1553891760000, 4159.45434821, 4159.45434821, 4159.45434821, 4159.45434821, 0.005],\n    [1553891820000, 4159.5, 4159.4, 4159.5, 4159.4, 0.09071295],\n    [1553891880000, 4159.5, 4159.5, 4159.5, 4159.4, 0.13086897],\n    [1553891940000, 4159.5, 4159.45434821, 4159.5, 4159.45434821, 0.0463048],\n    [1553892000000, 4159.4, 4159.4, 4159.4, 4159.4, 0.005],\n    [1553892180000, 4159.4, 4159.4, 4159.5, 4159.4, 5.926282],\n    [1553892300000, 4159.4, 4159.4, 4159.5, 4159.4, 0.18182125000000002],\n    [1553892360000, 4159.5, 4159.4, 4159.5, 4159.4, 1.08898682],\n    [1553892420000, 4159.4, 4159.4, 4159.5, 4159.4, 0.16999999999999998],\n    [1553892480000, 4159.4, 4159.5, 4159.5, 4159.4, 0.33940305],\n    [1553892540000, 4159.45979476, 4159.4, 4159.45979476, 4159.4, 0.58225063],\n    [1553892600000, 4159.4, 4159.4, 4159.4, 4159.4, 42.96333907],\n    [1553892660000, 4159.4, 4159.4, 4159.5, 4159.4, 0.86082713],\n    [1553892720000, 4159.4, 4159.4, 4159.5, 4159.4, 0.97124168],\n    [1553892780000, 4159.4, 4159.4, 4159.5, 4159.4, 7.8197962400000005],\n    [1553892840000, 4159.4, 4159.4, 4159.5, 4159.4, 9.20085261],\n    [1553892900000, 4159.4, 4159.4, 4159.4, 4159.4, 0.94484103],\n    [1553892960000, 4159.4, 4159.4, 4159.4, 4159.4, 0.26138335],\n    [1553893020000, 4159.4, 4159.4, 4159.4, 4159.4, 3.97807822],\n    [1553893080000, 4159.4, 4159.4, 4159.5, 4159.4, 0.22202755000000002],\n    [1553893140000, 4159.4, 4159.4, 4159.4, 4159.4, 0.9836613200000001],\n    [1553893200000, 4159.4, 4159.4, 4159.4, 4159.4, 0.2851241],\n    [1553893260000, 4159.5, 4159.4, 4159.8, 4159.4, 8.46582888],\n    [1553893320000, 4159.4, 4159.5, 4159.5, 4159.4, 2.63787464],\n    [1553893380000, 4159.4, 4159.4, 4159.5, 4159.4, 0.13605481],\n    [1553893440000, 4159.4, 4159.5, 4159.5, 4159.4, 0.30239783],\n    [1553893500000, 4159.5, 4159.4, 4159.5, 4159.4, 1.04],\n    [1553893560000, 4159.4, 4159.5, 4159.5, 4159.4, 1.3398117699999998],\n    [1553893680000, 4159.4, 4159.4, 4159.4, 4159.4, 0.09144182000000001],\n    [1553893740000, 4159.4, 4159.4, 4159.4, 4159.4, 0.43771125],\n    [1553893800000, 4159.4, 4159.4, 4159.4, 4159.4, 0.35468971],\n    [1553893860000, 4159.4, 4159.4, 4159.4, 4159.4, 0.11897659999999999],\n    [1553893920000, 4159.4, 4159.4, 4159.4, 4159.4, 0.32563557],\n    [1553893980000, 4159.5, 4159.4, 4159.5, 4159.4, 0.12192209],\n    [1553894040000, 4159.4, 4159.5, 4159.6, 4159.4, 6.74901772],\n    [1553894100000, 4159.6, 4159.6, 4159.6, 4159.6, 0.26510338],\n    [1553894160000, 4159.7, 4160.9, 4161, 4159.7, 2.04440083],\n    [1553894220000, 4161, 4161, 4161, 4161, 0.055],\n    [1553894280000, 4160.9, 4161, 4161, 4160.9, 0.11746300000000001],\n    [1553894340000, 4160.9, 4161, 4161, 4160.9, 0.03151872],\n    [1553894400000, 4160.9, 4160.9, 4160.9, 4160.9, 0.12321694],\n    [1553894460000, 4160.9, 4160.9, 4161, 4160.9, 2.76829746],\n    [1553894520000, 4161, 4161, 4161, 4160.91410581, 0.06077616],\n    [1553894580000, 4160.9, 4160.9, 4161, 4160.9, 1.16313248],\n    [1553894640000, 4161, 4160.9, 4161, 4160.9, 0.054280999999999996],\n    [1553894700000, 4161, 4160.9, 4161, 4160.9, 0.00992492],\n    [1553894760000, 4160.9, 4160.9, 4160.9, 4160.9, 0.06808998],\n    [1553894820000, 4160.9, 4160.80186103, 4160.9, 4160.80186103, 1.025],\n    [1553894880000, 4160.80186103, 4160.9, 4160.9, 4160.80186103, 0.13571665],\n    [1553894940000, 4160.9, 4159.7, 4160.9, 4159.7, 0.55427339],\n    [1553895000000, 4159.7, 4159.7, 4159.7, 4159.7, 0.47855779],\n    [1553895060000, 4159.7, 4159.7, 4159.7, 4159.7, 0.19904522],\n    [1553895120000, 4159.8, 4159.7, 4159.8, 4159.7, 1.37564207],\n    [1553895180000, 4159.7, 4159.78797864, 4159.78797864, 4159.7, 0.42477584],\n    [1553895240000, 4159.7, 4159.7, 4159.7, 4159.7, 0.08210953],\n    [1553895300000, 4159.7, 4159.7, 4159.78797864, 4159.7, 1.55579943],\n    [1553895360000, 4159.78797864, 4159.7, 4159.78797864, 4159.7, 0.64343575],\n    [1553895420000, 4159.7, 4159.6, 4159.7, 4159.5, 4.35197279],\n    [1553895480000, 4159.6, 4159.6, 4159.6, 4159.6, 0.060069],\n    [1553895540000, 4159.6, 4159.6, 4159.6, 4159.6, 0.005],\n    [1553895600000, 4159.7, 4159.7, 4159.78797864, 4159.7, 3.352],\n    [1553895660000, 4159.7, 4159.7, 4159.7, 4159.7, 1.97917532],\n    [1553895720000, 4159.7, 4159.7, 4159.7, 4159.7, 0.020318950000000002],\n    [1553895780000, 4159.8, 4160.16173415, 4160.16173415, 4159.8, 0.33509743999999997],\n    [1553895840000, 4160.16173415, 4161, 4161, 4160.16173415, 1.43820697],\n    [1553895900000, 4163, 4166.8, 4166.8, 4163, 6.0703977],\n    [1553895960000, 4165.7, 4166.4, 4167.4, 4164.9, 1.14023239],\n    [1553896020000, 4167, 4168.21563235, 4168.21563235, 4165.88983376, 3.77627294],\n    [1553896080000, 4166.22677991, 4166.1, 4166.3, 4166.1, 0.367343],\n    [1553896140000, 4166.1, 4166.1, 4166.1, 4166.1, 0.42587564],\n    [1553896200000, 4166.11446453, 4166.22677991, 4167.9, 4166.11446453, 0.64737611],\n    [1553896260000, 4166.5, 4166.3, 4166.5, 4165.2, 0.33785018],\n    [1553896320000, 4166.5, 4166.3, 4166.5, 4166.22677991, 0.37938099],\n    [1553896380000, 4166.1, 4166.1, 4166.1, 4166.1, 0.23347813],\n    [1553896440000, 4166.11446453, 4165.9, 4166.2, 4165.88983376, 0.5189045],\n    [1553896500000, 4165.88983376, 4165.88983376, 4165.88983376, 4165.88983376, 0.01],\n    [1553896560000, 4165.5, 4164.87899532, 4165.5, 4164.6, 1.40687765],\n    [1553896620000, 4165.1561646, 4165.2, 4165.3, 4165.1561646, 0.23587594],\n    [1553896680000, 4165.2463644, 4166.4, 4166.5, 4165.2463644, 0.41113077],\n    [1553896740000, 4166.5, 4166.5, 4166.5, 4166.5, 0.03735334],\n    [1553896860000, 4166.33909529, 4166.33908014, 4166.4, 4166.33908014, 0.66277758],\n    [1553896920000, 4165.7, 4165.9, 4165.9, 4165.5, 0.73499999],\n    [1553896980000, 4166.4, 4166.4, 4166.4, 4166.4, 0.4165931],\n    [1553897040000, 4166.4, 4166.33909529, 4166.4, 4166.33909529, 0.0503752],\n    [1553897100000, 4166.4, 4166, 4166.4, 4166, 0.048303120000000005],\n    [1553897160000, 4165.4, 4165.4, 4165.4, 4165.4, 0.1475],\n    [1553897220000, 4165.4, 4165.4, 4165.4, 4165.4, 0.05947432],\n    [1553897280000, 4165.44057223, 4165.44057223, 4165.44057223, 4165.44057223, 0.0345],\n    [1553897340000, 4165.4, 4165.4, 4165.4, 4165.4, 0.05],\n    [1553897400000, 4165.55288762, 4165.5, 4165.55288762, 4165.5, 0.01755435],\n    [1553897460000, 4165.5, 4165.5, 4165.5, 4165.5, 0.08259796],\n    [1553897580000, 4165.5, 4165.55287247, 4165.55287247, 4165.5, 0.065],\n    [1553897640000, 4165.55287247, 4166.7, 4169, 4165.55287247, 20.70532614],\n    [1553897700000, 4166.7, 4166.78835682, 4166.78835682, 4166.7, 1.86171605],\n    [1553897760000, 4166.78835682, 4166.5, 4166.8, 4166.3, 0.79336913],\n    [1553897820000, 4166, 4166, 4166, 4166, 0.01],\n    [1553897880000, 4166, 4166, 4166, 4166, 1.36801867],\n    [1553898000000, 4166.00214914, 4166.00214914, 4166.00214914, 4166.00214914, 0.025],\n    [1553898120000, 4166, 4166, 4166, 4166, 0.05491277],\n    [1553898180000, 4166.00213399, 4166.00213399, 4166.00213399, 4166.00213399, 0.025],\n    [1553898240000, 4166, 4166, 4166, 4166, 0.03564246],\n    [1553898300000, 4166, 4166, 4166, 4166, 0.5778099],\n    [1553898480000, 4166, 4165.6, 4166, 4165.5, 1.9476952600000002],\n    [1553898540000, 4165.665203, 4165.665203, 4165.665203, 4165.665203, 0.005],\n    [1553898600000, 4165.6, 4165.6, 4165.6, 4165.6, 0.98126117],\n    [1553898660000, 4165.665203, 4165.665203, 4165.665203, 4165.665203, 0.7349999899999999],\n    [1553898720000, 4165.66518785, 4165.66518785, 4165.66518785, 4165.6, 0.07280209],\n    [1553898780000, 4165.6, 4165.8, 4168, 4165.6, 2.09229691],\n    [1553898840000, 4165.8, 4165.8, 4165.8, 4165.8, 0.04244657],\n    [1553899020000, 4165.88983376, 4165.88983376, 4165.88983376, 4165.88983376,\n     0.20227129000000002],\n    [1553899140000, 4165.8, 4165.88983376, 4165.88983376, 4165.8, 0.26824677],\n    [1553899200000, 4165.88983376, 4165.88983376, 4165.88983376, 4165.88983376, 0.11474033],\n    [1553899260000, 4165.88981861, 4165.88981861, 4165.88981861, 4165.88981861, 0.2711891],\n    [1553899320000, 4165.88981861, 4165.8, 4165.88981861, 4165.8, 0.035],\n    [1553899380000, 4165.88981861, 4168.4, 4168.4, 4165.88981861, 0.85450148],\n    [1553899440000, 4168.4, 4169, 4169, 4168.36077217, 0.50463059],\n    [1553899500000, 4169, 4168.9, 4169, 4168.9, 0.33135088],\n    [1553899560000, 4169, 4169, 4169, 4169, 0.308],\n    [1553899620000, 4169, 4168.9263268, 4169, 4168.9263268, 0.94982451],\n    [1553899680000, 4169, 4169.1, 4169.1, 4169, 8.43005956],\n    [1553899740000, 4169.25929522, 4172, 4172, 4169.25929522, 191.80686061999998],\n    [1553899800000, 4172, 4172, 4172, 4170.7, 112.97912333000001],\n    [1553899860000, 4172.06717977, 4172.5, 4173.7, 4172.06717977, 11.21325362],\n    [1553899920000, 4172.5, 4171.4, 4172.5, 4170.1, 85.84866618],\n    [1553900040000, 4171.50560286, 4172.62875668, 4172.62875668, 4171.50560286, 6.84294739],\n    [1553900100000, 4172.1, 4172.3, 4172.8, 4172.1, 0.96632824],\n    [1553900160000, 4172.29181054, 4171.8, 4173.5, 4171.8, 242.15489788],\n    [1553900220000, 4169.9, 4169.10671, 4169.9, 4169.1, 0.09],\n    [1553900280000, 4169.1, 4169.1, 4169.1, 4169.1, 0.02122984],\n    [1553900340000, 4169.1, 4169.1, 4169.1, 4169.1, 0.40297568],\n    [1553900400000, 4169.2, 4169.2, 4169.2, 4169.1, 1.14001812],\n    [1553900460000, 4169.1, 4169.1, 4169.1, 4169.1, 0.21273669],\n    [1553900520000, 4169.2, 4169.1, 4169.2, 4169.1, 4.1373604],\n    [1553900580000, 4167.8, 4167.8, 4167.8, 4167.8, 0.11738035],\n    [1553900640000, 4167.8, 4167.8, 4167.8, 4167.8, 1.7042136700000001],\n    [1553900700000, 4167.8, 4167.8, 4167.8, 4167.8, 0.00974557],\n    [1553900760000, 4167.9, 4167.8, 4167.9, 4167.8, 2.05],\n    [1553900820000, 4167.8, 4167.8, 4167.9, 4167.8, 0.33326776],\n    [1553900880000, 4167.8, 4167.8, 4170.9, 4167.8, 1.82754764],\n    [1553900940000, 4167.8, 4167.8, 4167.8, 4167.8, 0.5651487900000001],\n    [1553901000000, 4167.8, 4173, 4173, 4167.8, 11.14599636],\n    [1553901060000, 4173.1, 4173.1, 4173.1, 4173.1, 0.19214387],\n    [1553901120000, 4173.1, 4173.41496436, 4173.41496436, 4173.1, 0.83669829],\n    [1553901180000, 4173.41496436, 4173.4, 4173.5, 4173.4, 0.32114836],\n    [1553901240000, 4173.4, 4173.3, 4173.4, 4173.3, 0.91176399],\n    [1553901300000, 4173.3, 4174.2, 4174.4, 4173.3, 10.073398169999999],\n    [1553901360000, 4174.2, 4174.3, 4174.3, 4174.2, 0.01],\n    [1553901420000, 4174.3, 4174.4, 4174.4, 4174.3, 0.98553861],\n    [1553901480000, 4174.4, 4174.4, 4174.4, 4174.4, 0.005],\n    [1553901540000, 4174.4, 4174.42580279, 4174.42580279, 4174.4, 2.69174419],\n    [1553901600000, 4174.4, 4174.4, 4174.4, 4174.3, 14.34485093],\n    [1553901660000, 4174.4, 4174.3, 4174.4, 4174.3, 6.6884395],\n    [1553901720000, 4174.4, 4174.4, 4174.4, 4174.3, 1.0382280799999999],\n    [1553901780000, 4174.3, 4175, 4175, 4174.3, 6.50993218],\n    [1553901840000, 4174.9, 4177, 4177, 4174.9, 13.02688235],\n    [1553901900000, 4176.9, 4179.6, 4179.7, 4176.9, 8.334043],\n    [1553901960000, 4179.7, 4179, 4179.7, 4179, 8.78969808],\n    [1553902020000, 4179, 4177.1, 4179, 4177, 5.6868456300000005],\n    [1553902080000, 4177.1, 4177.1, 4177.2, 4177.1, 2.18246886],\n    [1553902140000, 4177.1, 4177, 4177.1, 4177, 5.07583974],\n    [1553902200000, 4177, 4177, 4177, 4177, 5.720699720000001],\n    [1553902260000, 4177, 4177, 4177.1, 4177, 4.3857747400000004],\n    [1553902320000, 4177, 4176.1, 4177, 4175.5, 11.66491793],\n    [1553902380000, 4176.2, 4176, 4176.2, 4176, 27.59220221],\n    [1553902440000, 4176, 4175.2, 4176.1, 4174.9, 1.86840511],\n    [1553902500000, 4175.2, 4174.9, 4176, 4174.9, 4.509129339999999],\n    [1553902560000, 4174.9, 4175, 4175, 4174.9, 75.65025344],\n    [1553902620000, 4175.9, 4174.3, 4176.2, 4174.3, 4.24153762],\n    [1553902680000, 4174.3, 4175, 4175, 4174.3, 1.35812335],\n    [1553902740000, 4174.9, 4174.9, 4175, 4174.9, 23.51794295],\n    [1553902800000, 4174.9, 4175, 4175, 4174.9, 64.07889898],\n    [1553902860000, 4174.9, 4175, 4175, 4174.9, 13.05022364],\n    [1553902920000, 4175, 4175.1, 4175.3, 4174.9, 3.75700126],\n    [1553902980000, 4175.1, 4173.9, 4175.1, 4173.2, 52.278465080000004],\n    [1553903040000, 4173.9, 4173.9, 4173.9, 4173.8, 9.76110977],\n    [1553903100000, 4173.9, 4173.9, 4173.9, 4173.8, 21.66654026],\n    [1553903160000, 4173.9, 4175.8, 4175.8, 4173.86422588, 14.81502945],\n    [1553903220000, 4175.8, 4178.2, 4178.2, 4175.8, 9.74735203],\n    [1553903280000, 4178.2, 4179.1, 4179.1, 4178.1, 1.11193192],\n    [1553903340000, 4179.1, 4179, 4179.6, 4179, 22.05142132],\n    [1553903400000, 4179.1, 4179.1, 4179.1, 4179, 0.28276650000000003],\n    [1553903460000, 4179.6, 4179.7, 4179.7, 4179.6, 0.42521135],\n    [1553903520000, 4179.6, 4179.6, 4179.7, 4179.6, 0.6252659899999999],\n    [1553903580000, 4179.6, 4179.6, 4179.7, 4179.6, 1.6394751300000001],\n    [1553903640000, 4179.6, 4179.1, 4179.7, 4179, 20.593646],\n    [1553903700000, 4179, 4179.1, 4179.1, 4179, 6.16193176],\n    [1553903760000, 4179.1, 4179, 4179.1, 4179, 0.95317444],\n    [1553903820000, 4179, 4179.1, 4179.1, 4179, 0.49090113],\n    [1553903880000, 4179, 4179, 4179.1, 4179, 1.11492283],\n    [1553903940000, 4179, 4179, 4179.1, 4179, 1.56856648],\n))\n"
  },
  {
    "path": "tests/data/test_candles_1.py",
    "content": "import numpy as np\n\n# sample prices include 55 1m candles from ETH traded on\n# Bitfinex in \"11 Jan 2019 09:55 - 11 Jan 2019 10:50\"\n# which we'll use to trade 5m timeFrame.\n\ntest_candles_1 = np.array((\n    [1547200500000, 129.18, 129.07, 129.3, 129, 995.73470363],\n    [1547200560000, 129.16, 129, 129.16, 129, 397.08000688],\n    [1547200620000, 129, 128.351349, 129, 128.01, 1529.85683123],\n    [1547200680000, 128.37, 128.28, 128.38, 128.15, 76.08383937],\n    [1547200740000, 128.28, 128.47, 128.54, 128.19, 152.72129061],\n    [1547200800000, 128.41, 128.23, 128.42, 128.1540242, 242.4357966],\n    [1547200860000, 128.22, 128.49, 128.65, 128, 1026.66635674],\n    [1547200920000, 128.60332364, 128.92, 128.98, 128.60332364, 97.85943137],\n    [1547200980000, 128.92, 128.76, 128.92, 128.72, 174.44159382],\n    [1547201040000, 128.9, 128.94199146, 128.94199146, 128.85, 42.406359359999996],\n    [1547201100000, 128.95, 129.23, 129.48, 128.95, 717.23884661],\n    [1547201160000, 129.23, 128.97, 129.47888152, 128.97, 524.871953],\n    [1547201280000, 129, 129.1, 129.11, 129, 231.37314489],\n    [1547201340000, 129.12, 129.12, 129.12, 129.12, 69.04657446],\n    [1547201400000, 129.11, 129, 129.12, 128.99, 321.26372949],\n    [1547201460000, 129.1, 129.05, 129.1, 129.05, 40.84221219],\n    [1547201520000, 129.05, 129.06, 129.06, 129.05, 51.18617373],\n    [1547201580000, 129.07, 129.16, 129.24, 129.07, 31.97303053],\n    [1547201640000, 129.16496225, 129.05, 129.16496225, 129.05, 104.95909983],\n    [1547201700000, 129.05, 128.98, 129.05, 128.81, 163.3905841],\n    [1547201760000, 128.93449573, 128.93449573, 128.93449573, 128.93449573, 0.5923],\n    [1547201820000, 128.93449573, 128.79, 128.93449573, 128.79, 5.7732625],\n    [1547201880000, 128.85, 128.78469249, 128.86, 128.78469249, 5.47314449],\n    [1547201940000, 128.78914465, 128.62, 128.78914465, 128.60476506, 13.21424873],\n    [1547202000000, 128.65, 128.75, 128.75, 128.64, 35.56651768],\n    [1547202060000, 128.73, 128.71, 128.75, 128.68, 14.18953518],\n    [1547202120000, 128.72, 128.66, 128.73, 128.59, 92.18008856],\n    [1547202180000, 128.65, 128.72, 128.72, 128.65, 7.185833789999999],\n    [1547202240000, 128.7, 128.64, 128.7, 128.59, 98.72785073],\n    [1547202300000, 128.64366766, 128.68, 128.68, 128.60476542, 82.83660585],\n    [1547202360000, 128.68, 128.74, 128.74, 128.67, 23.13698287],\n    [1547202420000, 128.75, 128.79, 128.79, 128.75, 46.66824899],\n    [1547202480000, 128.79, 128.79, 128.79, 128.79, 16.93538835],\n    [1547202540000, 128.79, 128.78, 128.79, 128.78, 28.64897521],\n    [1547202600000, 128.78564996, 128.78, 128.78564996, 128.78, 42.321026],\n    [1547202660000, 128.73, 128.64, 128.73, 128.56, 309.31651503],\n    [1547202720000, 128.68, 128.68394851, 128.68394851, 128.68, 3.2],\n    [1547202780000, 128.68, 128.48, 128.68, 128.48, 97.9225829],\n    [1547202840000, 128.47, 128.52, 128.63, 128.1, 813.38966987],\n    [1547202900000, 128.46, 128.26, 128.46, 128.26, 3.4785361100000003],\n    [1547202960000, 128.24, 128.25, 128.4, 128.14, 301.49258232],\n    [1547203020000, 128.25, 128.25, 128.32, 128.25, 102.66831957000001],\n    [1547203080000, 128.25, 128.25, 128.26, 128.25, 19.89293002],\n    [1547203140000, 128.26, 128.26, 128.26, 128.26, 32.18597838],\n    [1547203200000, 128.26, 128.26, 128.26, 128.26, 8.44626201],\n    [1547203260000, 128.25, 128.41, 128.52, 128.25, 424.91735066],\n    [1547203320000, 128.41, 128.53, 128.72, 128.41, 523.7952],\n    [1547203380000, 128.41, 128.31, 128.59, 128.24, 444.56519667],\n    [1547203440000, 128.36, 128.33, 128.59, 128.1, 701.1408973599999],\n    [1547203500000, 128.32, 128.35, 128.59, 128.32, 673.58573653],\n    [1547203560000, 128.35, 128.01, 128.35, 127.98, 1114.94022845],\n    [1547203620000, 128.01, 127.92, 128.13, 127.76, 199.28697284999998],\n    [1547203680000, 127.92580039, 127.66, 127.92580039, 127.66, 115.98534792],\n    [1547203740000, 127.6, 125.97, 127.6, 125.42, 9682.05137871],\n    [1547203800000, 125.98, 125.43015725, 125.99, 124.43, 10479.30765808]\n))\n"
  },
  {
    "path": "tests/data/test_candles_indicators.py",
    "content": "test_candles_2 = [(1575547200000, 146.51, 147.03, 149.02, 146.51, 64788.46651),\n                  (1575561600000, 147.02, 147.6, 147.97, 146.3, 35810.46053),\n                  (1575576000000, 147.6, 148.1, 148.6, 147.37, 25217.5757),\n                  (1575590400000, 148.11, 147.26, 148.37, 146.91, 27447.3323),\n                  (1575604800000, 147.28, 147.73, 147.89, 147.01, 22167.14581),\n                  (1575619200000, 147.76, 146.49, 147.87, 145.74, 53909.23186),\n                  (1575633600000, 146.43, 147.21, 147.73, 146.14, 36314.09307),\n                  (1575648000000, 147.23, 148.11, 149.77, 146.81, 59085.27809),\n                  (1575662400000, 148.1, 148.45, 148.88, 147.75, 21751.60468),\n                  (1575676800000, 148.46, 148.39, 148.93, 148.05, 20244.20985),\n                  (1575691200000, 148.37, 148.48, 149.49, 148.37, 24431.94446),\n                  (1575705600000, 148.47, 147.92, 148.72, 147.14, 41084.33963),\n                  (1575720000000, 147.94, 148.28, 148.55, 147.46, 25786.69449),\n                  (1575734400000, 148.25, 147.86, 148.42, 147.31, 14739.56495),\n                  (1575748800000, 147.86, 147.14, 147.86, 146.85, 14184.9325),\n                  (1575763200000, 147.16, 146.69, 147.63, 146.11, 28000.18677),\n                  (1575777600000, 146.69, 147.01, 147.28, 146.36, 13086.18636),\n                  (1575792000000, 147.0, 148.14, 148.75, 146.89, 46831.93248),\n                  (1575806400000, 148.16, 150.68, 151.5, 147.8, 49532.17518),\n                  (1575820800000, 150.68, 150.42, 151.62, 149.89, 45154.25859),\n                  (1575835200000, 150.42, 150.44, 151.4, 150.12, 22696.86322),\n                  (1575849600000, 150.44, 150.31, 151.09, 149.42, 34574.3664),\n                  (1575864000000, 150.3, 149.31, 150.96, 149.1, 36952.47141),\n                  (1575878400000, 149.31, 149.12, 149.7, 148.79, 35235.53353),\n                  (1575892800000, 149.14, 148.02, 151.19, 147.0, 74728.4613),\n                  (1575907200000, 148.03, 147.33, 148.33, 147.0, 31595.38308),\n                  (1575921600000, 147.34, 147.38, 147.83, 146.56, 30689.77677),\n                  (1575936000000, 147.4, 147.23, 148.57, 146.18, 41719.21009),\n                  (1575950400000, 147.23, 147.27, 147.48, 146.8, 28132.93679),\n                  (1575964800000, 147.26, 147.23, 147.46, 146.67, 29370.52324),\n                  (1575979200000, 147.23, 145.14, 147.41, 144.99, 52728.39563),\n                  (1575993600000, 145.15, 144.97, 145.69, 144.39, 30935.46894),\n                  (1576008000000, 144.91, 145.56, 145.92, 143.81, 20329.31468),\n                  (1576022400000, 145.53, 145.49, 146.34, 144.98, 14376.76464),\n                  (1576036800000, 145.52, 145.67, 145.81, 144.84, 16870.60197),\n                  (1576051200000, 145.67, 145.61, 146.17, 145.3, 22984.67664),\n                  (1576065600000, 145.57, 142.8, 146.21, 142.12, 59688.9744),\n                  (1576080000000, 142.81, 142.79, 143.58, 142.19, 30949.7625),\n                  (1576094400000, 142.78, 143.39, 143.45, 142.45, 12972.32469),\n                  (1576108800000, 143.41, 142.08, 144.11, 139.24, 71279.57845),\n                  (1576123200000, 142.06, 141.99, 142.71, 141.64, 24942.66734),\n                  (1576137600000, 141.95, 144.15, 144.45, 141.12, 63141.897),\n                  (1576152000000, 144.13, 143.85, 144.79, 141.85, 43196.63322),\n                  (1576166400000, 143.85, 145.06, 145.66, 143.44, 33563.00003),\n                  (1576180800000, 145.05, 144.87, 145.85, 144.5, 25491.52833),\n                  (1576195200000, 144.87, 144.6, 145.28, 144.22, 22039.34145),\n                  (1576209600000, 144.6, 144.45, 145.05, 144.26, 17657.59388),\n                  (1576224000000, 144.47, 144.44, 146.0, 142.8, 47793.14329),\n                  (1576238400000, 144.41, 144.59, 144.78, 143.83, 28573.15224),\n                  (1576252800000, 144.58, 144.48, 145.25, 144.35, 30260.69457),\n                  (1576267200000, 144.48, 144.8, 144.82, 143.94, 14371.26013),\n                  (1576281600000, 144.8, 144.58, 145.07, 144.28, 11535.79899),\n                  (1576296000000, 144.58, 143.96, 144.78, 143.62, 14900.82559),\n                  (1576310400000, 143.97, 143.22, 144.0, 142.3, 30718.28981),\n                  (1576324800000, 143.23, 141.7, 143.26, 141.19, 29105.57297),\n                  (1576339200000, 141.75, 142.16, 142.65, 141.18, 29982.61731),\n                  (1576353600000, 142.14, 141.79, 142.4, 141.64, 9989.48734),\n                  (1576368000000, 141.79, 141.02, 141.97, 139.92, 31283.91884),\n                  (1576382400000, 141.01, 143.25, 144.12, 140.57, 40269.10224),\n                  (1576396800000, 143.28, 142.75, 143.97, 142.27, 27656.69354),\n                  (1576411200000, 142.75, 143.14, 143.44, 142.01, 25739.84698),\n                  (1576425600000, 143.14, 142.85, 143.28, 142.39, 13911.23403),\n                  (1576440000000, 142.85, 142.46, 143.17, 142.02, 12328.86314),\n                  (1576454400000, 142.46, 141.39, 142.72, 141.04, 18427.64349),\n                  (1576468800000, 141.4, 141.27, 141.99, 140.86, 25536.78779),\n                  (1576483200000, 141.28, 141.1, 141.58, 140.3, 33342.06145),\n                  (1576497600000, 141.12, 140.97, 142.29, 140.7, 43879.82606),\n                  (1576512000000, 140.96, 131.79, 141.29, 127.93, 249885.64851),\n                  (1576526400000, 131.76, 132.73, 132.98, 130.95, 99946.89212),\n                  (1576540800000, 132.72, 131.97, 132.98, 130.8, 37233.03463),\n                  (1576555200000, 131.98, 131.05, 132.2, 130.82, 52397.11426),\n                  (1576569600000, 131.05, 132.23, 132.32, 130.8, 43057.15502),\n                  (1576584000000, 132.27, 127.23, 132.45, 126.49, 155655.16124),\n                  (1576598400000, 127.23, 122.85, 128.54, 122.5, 166841.55954),\n                  (1576612800000, 122.83, 121.88, 123.33, 119.11, 108073.33532),\n                  (1576627200000, 121.88, 123.9, 125.78, 121.33, 76793.22382),\n                  (1576641600000, 123.89, 121.69, 124.48, 120.67, 77164.25529),\n                  (1576656000000, 121.68, 121.67, 123.98, 121.33, 86415.70582),\n                  (1576670400000, 121.68, 127.32, 128.69, 116.26, 339740.14364),\n                  (1576684800000, 127.37, 128.74, 129.4, 125.67, 123825.57511),\n                  (1576699200000, 128.7, 132.78, 134.87, 128.26, 181022.00966),\n                  (1576713600000, 132.8, 129.02, 134.0, 126.5, 123082.11205),\n                  (1576728000000, 129.02, 127.45, 129.03, 127.24, 49214.91773),\n                  (1576742400000, 127.46, 126.05, 128.47, 125.69, 77885.23575),\n                  (1576756800000, 126.07, 127.35, 127.91, 125.86, 69892.35849),\n                  (1576771200000, 127.33, 127.5, 128.69, 126.43, 49467.413),\n                  (1576785600000, 127.52, 128.1, 128.39, 126.01, 51132.78018),\n                  (1576800000000, 128.1, 126.88, 128.6, 126.25, 39549.05608),\n                  (1576814400000, 126.88, 127.18, 127.37, 125.84, 29147.74479),\n                  (1576828800000, 127.18, 127.37, 127.5, 126.5, 34610.98361),\n                  (1576843200000, 127.39, 127.41, 129.39, 126.72, 60275.69681),\n                  (1576857600000, 127.41, 128.03, 128.5, 126.98, 31664.60109),\n                  (1576872000000, 128.03, 128.19, 128.6, 127.74, 18649.38492),\n                  (1576886400000, 128.19, 127.31, 128.4, 126.97, 26395.16905),\n                  (1576900800000, 127.31, 127.02, 127.8, 126.84, 24673.7469),\n                  (1576915200000, 127.03, 127.39, 127.87, 126.5, 29467.89196),\n                  (1576929600000, 127.4, 127.34, 127.8, 126.64, 28235.03061),\n                  (1576944000000, 127.33, 127.01, 127.53, 126.77, 11844.541),\n                  (1576958400000, 127.03, 126.99, 127.59, 126.77, 14579.73689),\n                  (1576972800000, 127.0, 127.14, 127.45, 126.82, 12937.49508),\n                  (1576987200000, 127.15, 129.27, 129.4, 126.87, 29219.81714),\n                  (1577001600000, 129.3, 129.05, 130.99, 128.56, 53002.751),\n                  (1577016000000, 129.03, 129.53, 130.0, 129.02, 22740.64493),\n                  (1577030400000, 129.57, 131.94, 132.5, 129.31, 84940.66311),\n                  (1577044800000, 131.94, 132.09, 133.07, 131.19, 50299.35287),\n                  (1577059200000, 132.12, 133.87, 135.1, 132.1, 86402.71507),\n                  (1577073600000, 133.85, 131.67, 133.99, 130.87, 60396.00282),\n                  (1577088000000, 131.67, 132.97, 133.52, 131.47, 47626.43829),\n                  (1577102400000, 132.97, 133.26, 133.92, 132.44, 51211.55359),\n                  (1577116800000, 133.22, 129.08, 134.42, 128.16, 120922.67301),\n                  (1577131200000, 129.06, 127.8, 129.14, 126.0, 55041.37377),\n                  (1577145600000, 127.8, 127.67, 128.53, 127.29, 36234.04195),\n                  (1577160000000, 127.68, 127.15, 128.37, 126.61, 33770.72865),\n                  (1577174400000, 127.17, 128.62, 129.04, 126.7, 33720.76499),\n                  (1577188800000, 128.62, 127.88, 129.69, 127.08, 40009.23138),\n                  (1577203200000, 127.88, 127.8, 128.52, 126.8, 39639.60512),\n                  (1577217600000, 127.84, 127.75, 128.44, 127.3, 17262.72889),\n                  (1577232000000, 127.7, 125.74, 127.84, 125.11, 43232.3271),\n                  (1577246400000, 125.72, 125.66, 126.45, 123.07, 42223.86157),\n                  (1577260800000, 125.67, 124.38, 126.12, 124.08, 33182.93001),\n                  (1577275200000, 124.38, 124.42, 125.56, 123.35, 44404.7648),\n                  (1577289600000, 124.42, 125.43, 125.82, 123.41, 40741.51645),\n                  (1577304000000, 125.44, 125.09, 125.97, 124.91, 21219.09097),\n                  (1577318400000, 125.09, 124.52, 125.43, 124.32, 17019.466),\n                  (1577332800000, 124.52, 124.96, 125.08, 124.37, 19861.16426),\n                  (1577347200000, 124.96, 125.14, 126.08, 124.91, 24661.11897),\n                  (1577361600000, 125.15, 126.18, 126.69, 124.99, 29940.72332),\n                  (1577376000000, 126.18, 128.97, 132.26, 125.55, 119777.37179),\n                  (1577390400000, 128.92, 125.58, 129.59, 124.33, 63726.67663),\n                  (1577404800000, 125.58, 126.45, 126.63, 125.12, 24291.22232),\n                  (1577419200000, 126.47, 124.99, 126.54, 124.47, 37397.85854),\n                  (1577433600000, 124.99, 123.66, 125.37, 121.91, 56238.67029),\n                  (1577448000000, 123.66, 126.11, 126.6, 122.97, 65440.82683),\n                  (1577462400000, 126.09, 125.35, 127.1, 124.56, 40119.50122),\n                  (1577476800000, 125.35, 126.29, 126.76, 125.14, 16524.29531),\n                  (1577491200000, 126.28, 127.08, 128.31, 125.84, 33053.03344),\n                  (1577505600000, 127.08, 127.26, 128.59, 126.69, 36952.72514),\n                  (1577520000000, 127.25, 127.34, 128.0, 126.6, 24806.14657),\n                  (1577534400000, 127.31, 127.42, 128.49, 126.96, 22563.64807),\n                  (1577548800000, 127.44, 129.04, 129.68, 126.84, 57033.85921),\n                  (1577563200000, 129.04, 128.11, 129.27, 127.9, 22484.11034),\n                  (1577577600000, 128.11, 127.94, 128.16, 127.52, 16121.34435),\n                  (1577592000000, 127.97, 128.43, 128.87, 127.61, 19191.9311),\n                  (1577606400000, 128.43, 129.39, 129.42, 127.99, 24854.72658),\n                  (1577620800000, 129.38, 131.99, 132.44, 128.97, 79602.10923),\n                  (1577635200000, 131.98, 134.85, 134.95, 131.86, 68122.10168),\n                  (1577649600000, 134.85, 134.36, 138.07, 132.87, 108455.05372),\n                  (1577664000000, 134.36, 134.0, 134.66, 133.14, 44829.29349),\n                  (1577678400000, 134.0, 135.59, 136.24, 133.99, 49636.89),\n                  (1577692800000, 135.62, 133.11, 135.62, 132.45, 80861.58595),\n                  (1577707200000, 133.1, 130.63, 133.7, 130.3, 79506.02749),\n                  (1577721600000, 130.64, 131.32, 131.99, 130.35, 34803.76383),\n                  (1577736000000, 131.31, 131.59, 132.69, 131.05, 30709.6588),\n                  (1577750400000, 131.61, 131.26, 131.96, 130.76, 25129.15648),\n                  (1577764800000, 131.25, 132.2, 133.07, 131.07, 44162.78572),\n                  (1577779200000, 132.17, 131.92, 132.23, 131.22, 32555.05368),\n                  (1577793600000, 131.96, 129.73, 133.68, 128.9, 93106.70137),\n                  (1577808000000, 129.71, 128.49, 130.51, 128.42, 51027.12357),\n                  (1577822400000, 128.47, 129.16, 129.46, 128.17, 18953.16336),\n                  (1577836800000, 129.16, 130.2, 130.98, 128.68, 31685.73908),\n                  (1577851200000, 130.21, 130.24, 130.75, 130.11, 15457.58966),\n                  (1577865600000, 130.24, 130.74, 131.87, 129.87, 27822.94195),\n                  (1577880000000, 130.74, 132.08, 132.4, 130.7, 24010.28657),\n                  (1577894400000, 132.08, 131.86, 133.05, 131.57, 20158.22421),\n                  (1577908800000, 131.86, 130.77, 132.37, 129.74, 25635.7405),\n                  (1577923200000, 130.72, 129.1, 130.78, 128.77, 38485.79425),\n                  (1577937600000, 129.09, 129.26, 129.99, 128.69, 27580.21466),\n                  (1577952000000, 129.23, 129.53, 130.28, 129.21, 25341.92023),\n                  (1577966400000, 129.52, 129.59, 130.01, 128.9, 23157.01214),\n                  (1577980800000, 129.58, 127.62, 129.78, 126.38, 85534.55202),\n                  (1577995200000, 127.63, 127.19, 127.87, 126.79, 13657.56476),\n                  (1578009600000, 127.19, 126.89, 127.6, 125.88, 40142.23049),\n                  (1578024000000, 126.89, 128.86, 130.15, 126.83, 87499.1273),\n                  (1578038400000, 128.86, 132.46, 133.26, 128.8, 118287.73343),\n                  (1578052800000, 132.49, 132.53, 133.95, 130.93, 57993.70937),\n                  (1578067200000, 132.52, 133.49, 134.9, 131.94, 70186.34496),\n                  (1578081600000, 133.48, 134.35, 135.14, 132.16, 38946.0434),\n                  (1578096000000, 134.37, 133.34, 134.81, 132.79, 29800.56324),\n                  (1578110400000, 133.34, 133.91, 134.31, 133.0, 24369.40889),\n                  (1578124800000, 133.9, 133.77, 134.18, 133.07, 23918.50927),\n                  (1578139200000, 133.76, 133.26, 133.79, 132.5, 29237.72486),\n                  (1578153600000, 133.26, 133.72, 135.85, 132.8, 59872.55619),\n                  (1578168000000, 133.71, 134.2, 134.54, 133.44, 17077.40857),\n                  (1578182400000, 134.2, 136.16, 136.2, 134.19, 48831.80763),\n                  (1578196800000, 136.17, 136.02, 137.24, 135.62, 37286.06571),\n                  (1578211200000, 136.04, 135.07, 136.24, 134.7, 33422.08707),\n                  (1578225600000, 135.06, 137.26, 137.96, 135.06, 42242.22893),\n                  (1578240000000, 137.24, 137.97, 138.19, 136.64, 45304.34466),\n                  (1578254400000, 137.97, 135.37, 138.06, 134.21, 47033.91943),\n                  (1578268800000, 135.37, 139.49, 139.67, 134.86, 81445.25944),\n                  (1578283200000, 139.49, 138.87, 140.0, 138.54, 31894.33568),\n                  (1578297600000, 138.87, 141.54, 143.06, 138.81, 87065.38988),\n                  (1578312000000, 141.54, 140.2, 143.22, 139.08, 101925.464),\n                  (1578326400000, 140.19, 141.35, 141.86, 140.0, 35540.05181),\n                  (1578340800000, 141.35, 144.15, 144.41, 141.26, 70149.77294),\n                  (1578355200000, 144.14, 143.5, 145.31, 143.16, 84551.69867),\n                  (1578369600000, 143.5, 142.87, 143.62, 142.15, 42983.64715),\n                  (1578384000000, 142.87, 142.62, 143.78, 142.45, 45824.82864),\n                  (1578398400000, 142.62, 139.48, 142.66, 139.0, 85723.91095),\n                  (1578412800000, 139.48, 143.19, 144.3, 138.76, 120461.92484),\n                  (1578427200000, 143.19, 142.8, 145.0, 141.31, 68216.16256),\n                  (1578441600000, 142.8, 144.48, 147.77, 142.71, 159159.79692),\n                  (1578456000000, 144.54, 143.56, 145.25, 142.68, 63852.27131),\n                  (1578470400000, 143.53, 143.5, 144.5, 142.97, 41296.85943),\n                  (1578484800000, 143.52, 141.42, 143.69, 140.39, 108153.28432),\n                  (1578499200000, 141.42, 137.84, 141.91, 137.71, 135381.27344),\n                  (1578513600000, 137.89, 140.72, 141.5, 137.03, 62622.09222),\n                  (1578528000000, 140.76, 139.94, 141.5, 139.43, 48045.14801),\n                  (1578542400000, 139.96, 139.93, 140.39, 138.69, 46062.9573),\n                  (1578556800000, 139.91, 138.6, 140.06, 137.68, 48690.51982)]\ntest_candles_3 = [\n                     [1562403600000, 11367, 11428.0901185, 11483.12465568, 11348, 949.187820525575],\n                     [1562392800000, 11362, 11367, 11572, 11362, 2602.319174584725],\n                     [1562382000000, 11386, 11362, 11594, 11312, 1627.19074266771],\n                     [1562371200000, 10999, 11387, 11470, 10961, 1795.5368670586531],\n                     [1562360400000, 11045.665774, 11003, 11150, 10812, 1155.226305633247],\n                     [1562349600000, 11318, 11049, 11370, 10844, 3076.221143920273],\n                     [1562338800000, 11380.61791296, 11318, 11422, 11088, 3132.940817302712],\n                     [1562328000000, 11210.88913869, 11378, 11452, 11134, 1402.346380682886],\n                     [1562317200000, 10890, 11211.90281202, 11360, 10878.04998678, 2123.007002004992],\n                     [1562306400000, 11134, 10890, 11179, 10776, 2934.637299635331],\n                     [1562295600000, 11138, 11134, 11228, 11035, 879.731617869718],\n                     [1562284800000, 11162, 11140, 11287, 11005, 1662.046461967896],\n                     [1562274000000, 11724, 11162.485686, 11777, 11055, 4665.600390221373],\n                     [1562263200000, 11879, 11727, 11901.68526329, 11556.06910848, 2158.87692601947],\n                     [1562252400000, 11865, 11882, 11913, 11670, 1761.642530028719],\n                     [1562241600000, 11739, 11867, 11922, 11707, 2675.749337933877],\n                     [1562230800000, 11785, 11738.34523642, 11793, 11503, 2934.697713493269],\n                     [1562220000000, 11715, 11784, 11840, 11650, 1796.940914627471],\n                     [1562209200000, 11926, 11716, 11975, 11626, 2475.633257158448],\n                     [1562198400000, 11983, 11929, 12065, 11808, 1374.065373346361],\n                     [1562187600000, 11388, 11982, 12025, 11310, 4986.530224261145],\n                     [1562176800000, 11177.94687509, 11388, 11444, 11038, 2312.592579871229],\n                     [1562166000000, 11396, 11182, 11504, 11142, 2947.056459916652],\n                     [1562155200000, 11209, 11396, 11480, 11185, 2724.614426194524],\n                     [1562144400000, 11051, 11208.60805936, 11421, 10955, 3279.178714307271],\n                     [1562133600000, 11485, 11051, 11530, 11041, 2878.3674633145],\n                     [1562122800000, 11183, 11484, 11584, 11133, 2805.465961388848],\n                     [1562112000000, 10884, 11183, 11444, 10876, 6155.973009578175],\n                     [1562101200000, 10731, 10885, 10910, 10629, 2399.67811891601],\n                     [1562090400000, 10811.0857314, 10728, 10965, 10644, 3056.976753452222],\n                     [1562079600000, 10605, 10811.0857314, 10844, 10452, 3177.016404268226],\n                     [1562068800000, 10045, 10605, 10605, 9928.2, 4931.867502158344],\n                     [1562058000000, 10250, 10045, 10368, 9728.2, 5282.205613672848],\n                     [1562047200000, 9848.6, 10243, 10346, 9780, 3402.005324544364],\n                     [1562036400000, 10311.92910432, 9851.5, 10411.96178573, 9826, 5039.036651505015],\n                     [1562025600000, 10641, 10312, 10719, 10263, 1536.676599497583],\n                     [1562014800000, 10556, 10640, 10698, 10484, 1881.612569983604],\n                     [1562004000000, 10321, 10554, 10606, 10088, 4099.740865732814],\n                     [1561993200000, 10305, 10320, 10480, 10116, 5698.555514342408],\n                     [1561982400000, 11035, 10302, 11055, 10261, 5044.550821597401],\n                     [1561971600000, 11172, 11040, 11199, 10910, 1122.066687633526],\n                     [1561960800000, 11071, 11172, 11174, 10860, 1389.406095660739],\n                     [1561950000000, 11032, 11071, 11231, 10922, 3458.473010033214],\n                     [1561939200000, 10800, 11031, 11123, 10641, 2208.872931607196],\n                     [1561928400000, 11432, 10809, 11449, 10668, 3717.914802542028],\n                     [1561917600000, 11311, 11433, 11439, 11144, 1371.07210653592],\n                     [1561906800000, 11207, 11311, 11362, 10889, 3418.135997086051],\n                     [1561896000000, 11553.46497792, 11208, 11644, 10952, 4618.768214991034],\n                     [1561885200000, 11819, 11551, 11889, 11465, 2192.841006421591],\n                     [1561874400000, 12002, 11821.678385, 12065.99053392, 11681, 1376.733073195771],\n                     [1561863600000, 12086, 11998, 12234, 11845, 1388.678700323559],\n                     [1561852800000, 11921, 12086, 12193, 11920, 1021.00061902761],\n                     [1561842000000, 12167, 11920, 12244, 11832, 1555.229559949087],\n                     [1561831200000, 11970, 12167.35669944, 12240, 11879, 1889.611285188074],\n                     [1561820400000, 11932.94490518, 11966.90225976, 12061, 11618, 2782.00671722113],\n                     [1561809600000, 11958, 11927, 12153, 11836, 2354.204197751113],\n                     [1561798800000, 11655, 11958, 11968, 11530, 1930.626217898409],\n                     [1561788000000, 11539.90685687, 11654, 11869, 11437, 1938.160942307221],\n                     [1561777200000, 11730, 11540, 11750, 11354, 3180.630174157826],\n                     [1561766400000, 12337, 11733, 12338, 11500, 4798.501928555458],\n                     [1561755600000, 12187, 12338, 12417, 12104, 2454.205967845282],\n                     [1561744800000, 11828.792346, 12189, 12365, 11800, 4008.128746618601],\n                     [1561734000000, 11733, 11832, 11995, 11719, 2174.565868111403],\n                     [1561723200000, 12084, 11733, 12094, 11538, 3594.303750767086],\n                     [1561712400000, 11722, 12084, 12109, 11715, 5426.956784137011],\n                     [1561701600000, 11180, 11722, 11788, 11180, 5979.645314652809],\n                     [1561690800000, 10997, 11177, 11222, 10799, 3335.330536474817],\n                     [1561680000000, 11198, 10997, 11547, 10945, 5010.385664773864],\n                     [1561669200000, 10771, 11198.92190146, 11366, 10473, 5211.596864582482],\n                     [1561658400000, 10949.05774318, 10772, 11167, 10388, 5740.532094807657],\n                     [1561647600000, 12013, 10949, 12027, 10613, 11548.154195473157],\n                     [1561636800000, 12102, 12019, 12175, 11451, 4631.592827058909],\n                     [1561626000000, 11890, 12102.87100374, 12103, 11380, 9537.517856377506],\n                     [1561615200000, 12756.7531119, 11890, 12756.7531119, 11821, 5089.644855215774],\n                     [1561604400000, 12689, 12754, 12950, 12500, 1365.37108541033],\n                     [1561593600000, 12876, 12689, 13242, 12371, 4481.67762153678],\n                     [1561582800000, 12707, 12876, 12926, 11780.2238064, 9805.892114889686],\n                     [1561572000000, 13301, 12702, 13764, 11790, 15408.758981463869],\n                     [1561561200000, 12582, 13302, 13407, 12582, 11996.31317262203],\n                     [1561550400000, 12582, 12582, 12582, 12580, 1.36058072],\n                     [1561539600000, 12581, 12580, 12581, 12580, 0.80370406],\n                     [1561528800000, 12418, 12581, 12715, 12404.9597155, 3855.9725915],\n                     [1561518000000, 11870, 12419, 12945, 11869.03529664, 11419.59967116],\n                     [1561507200000, 11737, 11870, 11927, 11684.45046273, 2753.01239345],\n                     [1561496400000, 11388, 11737, 11780, 11384, 4061.2716635],\n                     [1561485600000, 11338.73316715, 11388, 11421, 11308, 937.04175629],\n                     [1561474800000, 11264, 11338, 11459, 11215, 2480.17296628],\n                     [1561464000000, 11397, 11264, 11425.57954146, 10802, 4063.85413597],\n                     [1561453200000, 11317, 11397, 11519, 11295, 4679.85815858],\n                     [1561442400000, 11341, 11317, 11436, 11264, 1636.85934972],\n                     [1561431600000, 11164, 11339, 11400, 11120, 2121.2542239],\n                     [1561420800000, 11069.648093, 11164.46124039, 11242, 11028, 1873.45368216],\n                     [1561410000000, 10891, 11069, 11092, 10891, 816.660775],\n                     [1561399200000, 11067, 10891, 11130, 10839, 1760.29687724],\n                     [1561388400000, 10978.94247125, 11066.38649036, 11136, 10885, 2269.20484174],\n                     [1561377600000, 10934, 10982, 10983, 10825, 755.86890052],\n                     [1561366800000, 10920, 10934, 11038, 10808, 3633.31921097],\n                     [1561356000000, 10812, 10920, 10921, 10709.8498405, 1017.03283496],\n                     [1561345200000, 10685.08433341, 10811, 10855, 10654, 592.68598133],\n                     [1561334400000, 10909, 10686, 10922, 10560, 3557.55508325],\n                     [1561323600000, 11129, 10913, 11369, 10801, 5744.1450223],\n                     [1561312800000, 10828, 11129, 11206, 10806, 5190.61662198],\n                     [1561302000000, 10812, 10828, 10849, 10748, 1163.10489544],\n                     [1561291200000, 10666, 10811, 10846, 10666, 1459.49269526],\n                     [1561280400000, 10741, 10666, 10760, 10572, 1099.0750571],\n                     [1561269600000, 10830.22332219, 10741, 10868, 10695, 1062.72755374],\n                     [1561258800000, 10776, 10829.53958878, 10835, 10687, 932.4111739],\n                     [1561248000000, 10744, 10776, 10985, 10717.97708673, 1938.36662885],\n                     [1561237200000, 10697, 10744, 10825, 10425, 2590.64896627],\n                     [1561226400000, 10766, 10697, 10860, 10528, 2478.60211768],\n                     [1561215600000, 10788.85745064, 10766, 11049, 10627, 3837.45316833],\n                     [1561204800000, 10860, 10786.92020597, 11232, 10346, 10394.15266449],\n                     [1561194000000, 10829, 10860, 10976, 10763, 3504.56267901],\n                     [1561183200000, 10751, 10828, 10850, 10664, 2035.86377172],\n                     [1561172400000, 10740.8821561, 10751, 10949, 10556, 4459.03550151],\n                     [1561161600000, 10223, 10740, 10875, 10080, 7377.14422711],\n                     [1561150800000, 9941.3, 10213.03996049, 10250, 9886.27746896, 7587.67626093],\n                     [1561140000000, 9904.5, 9940, 9944, 9843.2, 1513.74972379],\n                     [1561129200000, 9818.8, 9907, 9925, 9775.3, 1587.7923682],\n                     [1561118400000, 9845, 9818.8, 9923.5, 9660.5, 3730.63417439],\n                     [1561107600000, 9756.7, 9845, 9860, 9708.12118198, 2218.43443365],\n                     [1561096800000, 9766.9, 9750, 9781.6, 9680, 778.51291972],\n                     [1561086000000, 9723.2, 9766.80351865, 9804.5, 9673.2, 1389.92996709],\n                     [1561075200000, 9557.2, 9723.5, 9820, 9557.2, 3490.89492746],\n                     [1561064400000, 9578.2, 9557.1, 9620.9, 9482.1, 1425.82545351],\n                     [1561053600000, 9381.2, 9578.1, 9624, 9364.79784915, 2992.51373414],\n                     [1561042800000, 9397.2, 9380.1, 9460, 9328.8, 1991.43603554],\n                     [1561032000000, 9306.1, 9397.2, 9397.2, 9277.7, 1565.41241252],\n                     [1561021200000, 9251.03297724, 9306, 9320, 9241, 424.61562829],\n                     [1561010400000, 9313.77797214, 9251.1, 9368.2, 9243, 711.79869448],\n                     [1560999600000, 9359.92643422, 9313.77797214, 9386, 9301.5, 850.75570931],\n                     [1560988800000, 9305.9, 9359.8, 9377, 9277, 630.51277987],\n                     [1560978000000, 9194, 9305.9, 9340, 9166, 1215.31819077],\n                     [1560967200000, 9163.72150371, 9194.1, 9211, 9125, 1079.49671253],\n                     [1560956400000, 9088.5, 9163.8, 9188, 9080, 520.01256448],\n                     [1560945600000, 9154.55635464, 9095, 9174.96776079, 9066, 677.80058403],\n                     [1560934800000, 9180.92657032, 9154.5, 9181, 9094, 664.86374889],\n                     [1560924000000, 9191.1, 9181, 9222, 9145, 296.56341885],\n                     [1560913200000, 9169.2, 9191.1, 9235.1, 9151, 401.95367036],\n                     [1560902400000, 9094.4, 9169.2, 9198, 9062, 909.52485898],\n                     [1560891600000, 9144, 9095, 9144.2, 8945, 1424.38018754],\n                     [1560880800000, 9059.9, 9144.1, 9163.6, 9033, 858.8857043],\n                     [1560870000000, 9118, 9059.8, 9148.5, 8956.2, 1946.365783],\n                     [1560859200000, 9184.96141999, 9118, 9207, 9101.8, 1628.20982084],\n                     [1560848400000, 9191.8, 9185, 9272, 9167.2, 1012.45731322],\n                     [1560837600000, 9178.11207467, 9192.2, 9217.4, 9051.9, 1187.3371656],\n                     [1560826800000, 9249.96459174, 9174.9, 9303, 9136, 1391.50418386],\n                     [1560816000000, 9352.5, 9249.99999985, 9376.8, 9233.22676528, 1149.47762475],\n                     [1560805200000, 9300, 9354.3, 9490, 9236.8, 2590.43675137],\n                     [1560794400000, 9270.4, 9300, 9384.5, 9200, 1539.59105223],\n                     [1560783600000, 9409, 9270.5, 9409.1, 9114.2, 2433.89261473],\n                     [1560772800000, 9306, 9409.1, 9420, 9250, 2992.58789282],\n                     [1560762000000, 9198.51503524, 9306, 9340, 9141.3, 1743.24550735],\n                     [1560751200000, 9170.91639425, 9198.5, 9217.2, 9105.9, 624.20235164],\n                     [1560740400000, 9090.6, 9171, 9247.7, 9088.8, 834.82482338],\n                     [1560729600000, 8985.9, 9090.6, 9190.6, 8985.9, 1409.68433006],\n                     [1560718800000, 8968.1, 8985.9, 9096, 8965.8, 1171.35041199],\n                     [1560708000000, 9081.3, 8968.1, 9123.93822375, 8865.6, 2702.6185425099998],\n                     [1560697200000, 9264.7, 9090.8, 9284.4, 9016.5, 1840.75628239],\n                     [1560686400000, 9155.1, 9267.2, 9318, 9072.6, 2123.6529948],\n                     [1560675600000, 9056.3, 9155.1, 9158, 9000, 1976.85179773],\n                     [1560664800000, 9324, 9056.2, 9395.5, 8978.8, 5481.51973889],\n                     [1560654000000, 8970, 9324, 9324, 8969.4, 3317.000399],\n                     [1560643200000, 8856, 8970, 9024, 8801, 2296.12739949],\n                     [1560632400000, 8791.85956037, 8856, 8888, 8756, 1497.52034601],\n                     [1560621600000, 8827.0328421, 8791.9, 8876.2, 8771.9, 1152.45980532],\n                     [1560610800000, 8699.9, 8827.1, 8930, 8699.9, 2889.86977815],\n                     [1560600000000, 8672.9, 8699.5, 8723.7, 8624.3, 476.80153639],\n                     [1560589200000, 8692, 8672.8, 8693.5, 8636.1, 576.16452951],\n                     [1560578400000, 8694.1, 8692, 8750, 8643.4, 1454.10797745],\n                     [1560567600000, 8653.30155281, 8694.1, 8699, 8625.7, 540.4370727],\n                     [1560556800000, 8689.1, 8653.30155281, 8710.6, 8607.2, 812.5869513600001],\n                     [1560546000000, 8444.9725485, 8689.1, 8719.9, 8444.9, 3707.56642858],\n                     [1560535200000, 8392.4, 8445, 8454.2, 8390, 598.84352295],\n                     [1560524400000, 8386.8, 8392.4, 8445, 8346.9, 833.000298],\n                     [1560513600000, 8281.4, 8386.76330554, 8442, 8269.8, 2791.87545873],\n                     [1560502800000, 8310, 8281.4, 8319.9, 8249.8, 1519.14556518],\n                     [1560492000000, 8222.7, 8310.1, 8320, 8193.6, 1182.0908753],\n                     [1560481200000, 8196.4, 8223.1, 8248, 8191, 245.54856271],\n                     [1560470400000, 8227.4, 8196.6, 8291.97310833, 8161.7, 1835.56781182],\n                     [1560459600000, 8267.5, 8227.4, 8333, 8206.2, 1856.33025219],\n                     [1560448800000, 8187.96113717, 8268, 8295, 8187, 1126.19476719],\n                     [1560438000000, 8164.7, 8188, 8275, 8155.6, 2232.7477056],\n                     [1560427200000, 8120.9, 8164.7250355, 8200, 8026, 1485.6557036],\n                     [1560416400000, 8133.7, 8120.87855842, 8133.7, 8069, 786.06589641],\n                     [1560405600000, 8130.62706042, 8130.6, 8149.1, 8079.6, 477.29551352],\n                     [1560394800000, 8101.9323913, 8130.62706042, 8158.8, 8064.2, 293.90887269],\n                     [1560384000000, 8174.1, 8101.9323913, 8200, 8101.9, 631.41798492],\n                     [1560373200000, 8111.9, 8174, 8179.5, 8111.8222381, 457.5459119],\n                     [1560362400000, 8159.2, 8111.8222381, 8172.1, 8096.63820494, 645.98352463],\n                     [1560351600000, 8014.9, 8159.1, 8250, 8014.9, 3615.05538556],\n                     [1560340800000, 8004.8, 8014.8, 8055, 7937, 951.15843756],\n                     [1560330000000, 7978.32360342, 8004.8671627, 8073, 7923, 740.92508199],\n                     [1560319200000, 7963.9, 7978.4, 8017.3, 7946.3, 314.25929619],\n                     [1560308400000, 8024, 7963, 8078.3, 7940.2300023, 501.09089631],\n                     [1560297600000, 7905.4, 8024.1, 8100, 7821, 1918.92599417],\n                     [1560286800000, 7915.3, 7905.5, 7941, 7886.1, 982.50484591],\n                     [1560276000000, 7879.9, 7915.2, 7981.5, 7853.6, 1163.50969652],\n                     [1560265200000, 7788.1, 7879.8, 7923.94256037, 7711, 1033.92700732],\n                     [1560254400000, 7782.5, 7788.1, 7828.2, 7756.3, 507.47645519],\n                     [1560243600000, 7951.7, 7782.6, 7967.7, 7727.9, 1742.41389609],\n                     [1560232800000, 7946.9, 7951.7, 7957.2, 7904.6, 366.98591641],\n                     [1560222000000, 7944.9, 7948.4, 7965, 7927.1, 167.50711012],\n                     [1560211200000, 8018.7544992, 7944.7, 8049, 7935.1, 562.52124086],\n                     [1560200400000, 7937.3, 8018.8, 8020, 7911, 497.37497684],\n                     [1560189600000, 7926.38149584, 7937.3, 8014.2, 7891.8, 756.32725154],\n                     [1560178800000, 7945.6, 7926.38149584, 7988, 7880.3, 656.58111288],\n                     [1560168000000, 7936.8, 7943.1, 8048.1, 7911.1, 2100.90132574],\n                     [1560157200000, 7718.23604074, 7936.8, 8011.4, 7620.8, 2674.76442242],\n                     [1560146400000, 7622, 7718.2, 7759.4, 7621.91433221, 1100.97891402],\n                     [1560135600000, 7634.4, 7622, 7683, 7611.3, 512.4123752],\n                     [1560124800000, 7633.3, 7637.6, 7658.8, 7513.2, 604.50335295],\n                     [1560114000000, 7703.5, 7633.3, 7731.5, 7497.9, 1935.0888536],\n                     [1560103200000, 7658.8, 7702.96451141, 7755, 7647, 411.01216958],\n                     [1560092400000, 7791, 7658.9, 7804.4, 7585.3, 1434.55980053],\n                     [1560081600000, 7879.1, 7790.5, 7879.1, 7711, 1888.2430485],\n                     [1560070800000, 7913.7, 7876, 7922.8, 7864.4, 462.81107155],\n                     [1560060000000, 7895, 7919.3, 7936.5, 7855.2, 358.52812728],\n                     [1560049200000, 7867, 7895.06813426, 7897.1, 7852.31058026, 122.78821057],\n                     [1560038400000, 7924, 7867, 7963.3, 7851.5, 217.10814235],\n                     [1560027600000, 7874.9, 7924, 7965.6, 7869.1, 664.22710901],\n                     [1560016800000, 7844.3, 7874.9, 7875, 7805.5, 563.6421692],\n                     [1560006000000, 7923.64882471, 7844.4, 7949.9, 7800.1, 1431.84203804],\n                     [1559995200000, 7991.81143985, 7923.7, 8000.9, 7892.7, 304.72467173],\n                     [1559984400000, 7968.22649532, 7991.81143985, 8028.9, 7948, 301.51657233],\n                     [1559973600000, 7938.5, 7968.3, 7987.7, 7870, 582.49233564],\n                     [1559962800000, 7968.9908947, 7938.5, 7998.7, 7924.8, 569.70297154],\n                     [1559952000000, 7999.9, 7968.1, 8068, 7939.5, 354.16460158],\n                     [1559941200000, 7888, 7999.4, 8049, 7850.2, 1453.82053472],\n                     [1559930400000, 8087.9, 7885.6, 8115.1, 7850, 2936.70349915],\n                     [1559919600000, 7933.55635661, 8088, 8150, 7933.55635661, 3143.30054701],\n                     [1559908800000, 7919.9, 7933.6, 7982, 7919.9, 1194.29105416],\n                     [1559898000000, 7983, 7920, 8010.2, 7914.4, 687.63815065],\n                     [1559887200000, 7813.9, 7983.1, 8018, 7813.9, 2328.80942122],\n                     [1559876400000, 7800, 7813.9, 7858.3, 7784, 926.41530374],\n                     [1559865600000, 7815.3, 7800, 7849, 7762.9, 785.9373188],\n                     [1559854800000, 7690.7, 7824.7, 7835.9, 7685, 927.15460743],\n                     [1559844000000, 7645.2, 7691.1, 7721.4, 7455, 2619.91332007],\n                     [1559833200000, 7693.9, 7645, 7729, 7637, 664.7189812]][::-1]\ntest_candles_4 = [\n                     [1565179200000, 228.11, 229.43, 231.44, 227.46, 10322.25893937],\n                     [1565168400000, 225.76781857, 228.11, 228.71, 224.73, 3035.48841445],\n                     [1565157600000, 226.94, 225.77, 226.98, 223.6, 3389.75886626],\n                     [1565146800000, 226.95626536, 226.79683795, 228.27, 226, 7979.4369320900005],\n                     [1565136000000, 225.88, 226.95, 227.27119816, 224.16, 2312.6180611199998],\n                     [1565125200000, 226.31, 226, 226.88, 223.05, 11641.25526211],\n                     [1565114400000, 228.8728035, 226.33, 230.43, 225.32, 6320.29506564],\n                     [1565103600000, 229.7, 228.88014121, 231.01, 228, 12491.66546292],\n                     [1565092800000, 230.12, 229.69, 231.25, 226.37664349, 11103.2635549],\n                     [1565082000000, 233.7, 230.32, 240, 229, 51055.09061465],\n                     [1565071200000, 229.83, 233.7, 235.52, 229.83, 6926.25517105],\n                     [1565060400000, 229.34, 229.82, 229.86, 228.21, 1965.77343218],\n                     [1565049600000, 233.6241024, 229.29, 233.6241024, 227.55, 17849.67343265],\n                     [1565038800000, 232, 233.6241024, 234.33, 231.48, 25918.92151777],\n                     [1565028000000, 233.4, 232.01, 234.32, 232, 8137.2018969],\n                     [1565017200000, 231.22, 233.6, 236.40770564, 230, 15353.53933485],\n                     [1565006400000, 233.9485083, 231.22, 234.45, 231.12932616, 24378.54403795],\n                     [1564995600000, 229.02805257, 233.94, 237.31, 229, 33177.98838694],\n                     [1564984800000, 228.10137793, 229, 229.91, 227.88361968, 7732.42263232],\n                     [1564974000000, 229.7, 228.1, 230.63, 227.87, 7344.93145441],\n                     [1564963200000, 222.45, 229.7, 230.97, 222.18, 31848.51188661],\n                     [1564952400000, 221.51, 222.41, 223.65, 220.05, 3668.53080276],\n                     [1564941600000, 220.33, 221.25, 222, 220.33, 2802.10216727],\n                     [1564930800000, 221.1, 220.29, 222.2, 220.07, 5464.00060367],\n                     [1564920000000, 218.93, 221.02, 221.35, 218.5109722, 2539.70043487],\n                     [1564909200000, 218.88, 218.71, 219.68, 218.11, 3145.34024919],\n                     [1564898400000, 218.67, 218.78, 219.37, 218.15, 3586.21927404],\n                     [1564887600000, 221.21, 218.68, 221.21, 217.22, 8412.86000856],\n                     [1564876800000, 222, 221.28, 223.75, 220.43, 4195.90553272],\n                     [1564866000000, 222.23, 222, 222.23569766, 221.01, 3600.20327142],\n                     [1564855200000, 222.36, 222.22345929, 223.3, 221.38, 2353.44748391],\n                     [1564844400000, 223, 222.53, 223.13, 218.63, 5743.78222514],\n                     [1564833600000, 223.02, 222.97, 223.58, 221.38, 4064.23126339],\n                     [1564822800000, 222.14, 223.02, 223.29, 221.78, 4707.39515783],\n                     [1564812000000, 222.38, 222.21, 223.44770833, 222.16, 4831.21587734],\n                     [1564801200000, 223.43, 222.27, 223.44, 221.83, 3867.32595816],\n                     [1564790400000, 217.6, 223.42, 225.69, 216.66, 16654.88550454],\n                     [1564779600000, 215.61, 217.56, 217.84, 215.1, 3813.88361253],\n                     [1564768800000, 217.11, 215.7, 217.89, 215, 3358.08704586],\n                     [1564758000000, 220.68, 217.11, 221.02, 215.41, 14189.08796732],\n                     [1564747200000, 219.24, 220.53, 220.53, 219.21, 2590.28453111],\n                     [1564736400000, 220.2104331, 219.23, 220.6, 219.07, 4711.39259375],\n                     [1564725600000, 216.91, 220.19, 222.85, 216.58, 18122.08682302],\n                     [1564714800000, 216.81, 216.76, 216.81, 216.07, 1696.07721529],\n                     [1564704000000, 217.56, 216.8, 217.96, 215.86, 3755.29492247],\n                     [1564693200000, 217.73, 217.56, 218, 217, 9111.14113877],\n                     [1564682400000, 215.02, 217.7, 218, 215.01, 6872.98464323],\n                     [1564671600000, 213.24, 215.01, 215.02, 212.96, 2885.58848423],\n                     [1564660800000, 212.7, 213.16, 214.5, 212.69, 4552.52833643],\n                     [1564650000000, 213.05, 212.86, 213.06, 212.51, 403.72987271],\n                     [1564639200000, 213.19, 213.1, 213.99222342, 212.16, 2626.10821298],\n                     [1564628400000, 214.6, 213.23, 214.74700737, 212.65, 4067.98313124],\n                     [1564617600000, 218.74, 214.53, 219.5, 210.85, 12822.38183013],\n                     [1564606800000, 215.5, 218.76, 219.29, 215.39, 4664.28028602],\n                     [1564596000000, 216.18, 215.5, 216.81, 215.04, 7332.14867606],\n                     [1564585200000, 216, 216.18, 218, 215.27, 12283.10796038],\n                     [1564574400000, 212.93, 216, 217.9, 212.92, 16284.19218667],\n                     [1564563600000, 212.43, 212.84, 213.58, 212.12, 3029.14967648],\n                     [1564552800000, 212.17032214, 212.42, 213.63, 211.83, 5010.92706586],\n                     [1564542000000, 211.81, 212.17631899, 213.85, 211.14, 4702.9380906999995],\n                     [1564531200000, 209.74, 211.8, 213.19, 209.7, 5434.55605823],\n                     [1564520400000, 209.26, 209.74, 211.42, 208.75492244, 2254.81053419],\n                     [1564509600000, 211.47, 209.3, 212.15, 208.57, 4988.54280463],\n                     [1564498800000, 209.55, 211.53, 215, 209.55, 15435.86508095],\n                     [1564488000000, 209.08, 209.57, 209.84, 208.62, 3985.19929923],\n                     [1564477200000, 207.71, 209.07, 209.97, 207.43, 3810.14064464],\n                     [1564466400000, 206.91, 207.79, 208.43, 206.91, 2400.02215843],\n                     [1564455600000, 206.06346609, 206.9, 207, 205.65, 1591.67453426],\n                     [1564444800000, 210.81, 206.1, 211.5, 203.47, 12711.94135003],\n                     [1564434000000, 211.4, 210.8, 212.25, 209.51, 3222.4245254400003],\n                     [1564423200000, 209.89, 211.4, 211.65, 208.79, 2614.10608547],\n                     [1564412400000, 208.69, 209.66, 212.83561865, 206.53870248, 8437.55407753],\n                     [1564401600000, 208.21, 208.74, 211.1, 208.05, 5227.3477039],\n                     [1564390800000, 211.09, 208.17, 211.39, 206.09, 6469.25421181],\n                     [1564380000000, 211.57, 211.08, 212.72, 210.6, 3530.481525],\n                     [1564369200000, 212.95, 211.51, 213.65, 211.5, 3527.21238012],\n                     [1564358400000, 211.22, 212.91, 215.04, 208.59, 9615.34601837],\n                     [1564347600000, 207.82, 210.92, 213.35, 197.7, 42734.01200806],\n                     [1564336800000, 208.34, 207.94, 208.66, 207.13, 3229.49617843],\n                     [1564326000000, 207.72, 208.33, 208.98, 207.11, 2092.64750609],\n                     [1564315200000, 209.53, 207.66, 209.63, 207.65, 2516.79491707],\n                     [1564304400000, 209.34, 209.55, 210.4, 207.5, 3591.40670103],\n                     [1564293600000, 209.61, 209.22, 210.91, 208.05743273, 3232.71897281],\n                     [1564282800000, 206.64347518, 209.61, 211.5, 206.6, 5167.41227065],\n                     [1564272000000, 207.2, 206.64, 207.75644952, 205.91, 4470.38548005],\n                     [1564261200000, 207.91, 207.07, 208.93, 205.51, 11678.23606194],\n                     [1564250400000, 208, 207.9, 208.81, 206.61, 4875.03091641],\n                     [1564239600000, 205.4, 207.93, 208.79, 203.45350433, 7878.30714644],\n                     [1564228800000, 207.2, 205.41, 207.3, 202.2, 19141.07994698],\n                     [1564218000000, 220.62, 207.16, 220.79, 204.84, 40220.06569079],\n                     [1564207200000, 220.7, 220.68, 222.63, 220.16364569, 8191.64408537],\n                     [1564196400000, 222.95, 220.69, 223.51, 220.53, 6410.46496391],\n                     [1564185600000, 219.02, 222.94, 223.62, 218.97, 13342.81096167],\n                     [1564174800000, 218.4, 219.06, 220.13, 216.58739794, 6980.16956594],\n                     [1564164000000, 218.94, 218.33337043, 220.47, 218.23, 5848.09239214],\n                     [1564153200000, 215.84, 218.94, 220, 215.35, 9079.66525272],\n                     [1564142400000, 217.3, 215.6, 217.8, 214.3, 5215.67990319],\n                     [1564131600000, 217.51, 217.3311981, 218.52262305, 216.03, 3908.56086204],\n                     [1564120800000, 215.48, 217.51, 217.51, 213.4, 4678.95798484],\n                     [1564110000000, 214.91, 215.52, 215.75, 213.69, 2535.76852517],\n                     [1564099200000, 219.4, 214.92, 219.46, 212.91, 14296.70630542],\n                     [1564088400000, 218.59, 219.44, 220.93252729, 217.85, 9145.88174974],\n                     [1564077600000, 221.83, 218.59, 221.97, 216.42, 8403.66535171],\n                     [1564066800000, 221.02660518, 221.76, 223.49, 219.99, 6371.65522011],\n                     [1564056000000, 222.92, 221.02660518, 224.85, 219.01, 15283.32106785],\n                     [1564045200000, 222.06, 222.92, 223.81249165, 221.72, 5168.67983889],\n                     [1564034400000, 221.49, 222.04, 223, 220.56, 5303.84248466],\n                     [1564023600000, 222.83656608, 221.64, 224.75, 220.5, 6404.11273894],\n                     [1564012800000, 216.65, 222.83656608, 225.66, 215.61277248, 19210.09796771],\n                     [1564002000000, 215.46, 216.7, 218.60724655, 214.59, 12435.06421859],\n                     [1563991200000, 211.01, 215.55, 215.9, 209.45, 5930.20846216],\n                     [1563980400000, 213.90360871, 211.06, 216.62, 208.12, 23475.73420527],\n                     [1563969600000, 207.34, 213.9, 214.74, 206.77, 12189.90782715],\n                     [1563958800000, 207.6, 207.27, 208.5, 205.33, 5772.69169448],\n                     [1563948000000, 205.51, 207.59, 208, 205.2, 7850.4644635800005],\n                     [1563937200000, 205.09339657, 205.62, 206.42, 202.57, 14596.64893239],\n                     [1563926400000, 212.21194507, 205.17, 212.37, 201.11, 47243.31767006],\n                     [1563915600000, 217.8, 212.34, 218.04, 211.291006, 7370.40020806],\n                     [1563904800000, 212.2, 217.79, 219.39, 212.2, 15782.91016566],\n                     [1563894000000, 211.61, 212.22, 214.07, 208.89, 14045.42964417],\n                     [1563883200000, 212.51, 211.73, 213.61, 208.5, 12448.67052024],\n                     [1563872400000, 210.19, 212.5, 213.37280895, 208.74, 12555.78058274],\n                     [1563861600000, 214.41, 210.12, 214.91, 210.01, 16784.955647],\n                     [1563850800000, 216.88, 214.39, 217.19968785, 213.08, 3157.6267927],\n                     [1563840000000, 217.28, 216.97, 217.38, 214.16, 5617.4365711],\n                     [1563829200000, 217.95, 217.38, 218, 214.77, 7304.61571543],\n                     [1563818400000, 216.00886792, 217.92, 218, 211.78, 14653.85812925],\n                     [1563807600000, 215.3, 216.15, 217.01, 212.69, 16243.83746482],\n                     [1563796800000, 223.17, 215.45, 223.19, 213.82, 19098.85996516],\n                     [1563786000000, 223.64404338, 223.2, 223.82, 218.84, 11018.32576438],\n                     [1563775200000, 224.79, 223.46, 225.86, 223.35, 7457.0146748],\n                     [1563764400000, 226.46, 224.83, 226.6, 222.7, 7966.60892072],\n                     [1563753600000, 225.18, 226.45317464, 228, 223.45, 6500.0427603299995],\n                     [1563742800000, 222.96244026, 225.04, 226.75, 222.54, 10298.64184802],\n                     [1563732000000, 218.93, 223.35, 223.35, 218.1, 8135.78825446],\n                     [1563721200000, 220.93, 218.93, 223.34, 216.45, 16600.16375585],\n                     [1563710400000, 225.38, 221.06, 225.38, 219.83740098, 15386.80727177],\n                     [1563699600000, 226.91657446, 225.45, 228.41, 224.06, 6172.9830535],\n                     [1563688800000, 224.73, 226.91657446, 226.98397542, 223.65, 9355.04309913],\n                     [1563678000000, 225.17, 224.82, 227.65, 222.15, 10279.29556131],\n                     [1563667200000, 228.3, 225.17, 229.51, 224.74, 7326.17417592],\n                     [1563656400000, 231.54312527, 228.44, 234.5, 225.12, 13725.66839812],\n                     [1563645600000, 232.19, 231.46, 232.98197322, 230.87, 6830.84037353],\n                     [1563634800000, 226.4, 232.2, 235.27, 226.02, 29149.44741807],\n                     [1563624000000, 225.2203172, 226.37, 227.78, 223.53, 6918.90278765],\n                     [1563613200000, 225.4, 225.12165375, 227.45, 222.83, 6993.61763228],\n                     [1563602400000, 227.11, 225.36, 228.25, 224.41, 4925.20554605],\n                     [1563591600000, 225.46, 226.95, 228.8, 225.45, 11638.4980632],\n                     [1563580800000, 221.15, 225.41, 226.17, 219.72713873, 7592.83757802],\n                     [1563570000000, 220.28, 221.16, 222.38, 219.15, 2393.20937313],\n                     [1563559200000, 217.99, 220.15, 220.34465133, 217.52, 2910.32317752],\n                     [1563548400000, 217.27, 218.06, 219.84, 216.2, 4265.85243754],\n                     [1563537600000, 216.61, 217.24, 222.78, 213.19, 20344.05007518],\n                     [1563526800000, 218.39, 216.54, 219.91, 215.74, 8098.86527391],\n                     [1563516000000, 221.77, 218.43, 226.34, 215.16, 27293.05958227],\n                     [1563505200000, 223.36, 221.77, 224.09, 219.31, 3838.48393014],\n                     [1563494400000, 225.82, 223.38, 226.17673805, 221.01, 10856.2218048],\n                     [1563483600000, 224.41, 225.74, 229.1, 222.53, 11776.64379901],\n                     [1563472800000, 223.99, 224.21, 225.62, 222.34073256, 12752.71612122],\n                     [1563462000000, 223.91, 223.9, 226.49, 220.91013134, 29634.69744199],\n                     [1563451200000, 215.15, 223.97, 225, 205.61175816, 58604.84339027],\n                     [1563440400000, 213.32, 215.3, 218.16, 212.64, 10519.37807425],\n                     [1563429600000, 217.56, 213.24, 221.82, 213.1, 17902.83043735],\n                     [1563418800000, 213.13, 217.54, 219.02, 210, 13866.38201998],\n                     [1563408000000, 211.12544722, 213.13, 214.31, 206.61617064, 13902.56658422],\n                     [1563397200000, 212.53, 211.06, 217.56, 209.39, 14091.281509],\n                     [1563386400000, 215.77, 212.355192, 217.38, 209, 20321.39697236],\n                     [1563375600000, 212.48, 215.45, 219.46880776, 210.0378214, 44834.25210745],\n                     [1563364800000, 196.17, 212.47, 213.24, 193.84, 40427.72981698],\n                     [1563354000000, 203.46, 195.96, 204.22, 191.6, 33073.97219254],\n                     [1563343200000, 201.71, 203.48, 205.39, 199.54, 17310.78027006],\n                     [1563332400000, 196.56, 201.72, 201.99, 196.36, 17871.23370058],\n                     [1563321600000, 198.67, 196.56, 203.22, 194, 20270.35948423],\n                     [1563310800000, 202.35, 198.57, 206.57, 195.27365329, 23308.43857435],\n                     [1563300000000, 198.75, 202.36, 207.62, 196.77178276, 42378.80752385],\n                     [1563289200000, 216.5, 198.74, 222.25, 191, 175840.39332963],\n                     [1563278400000, 223.46, 216.5, 224.0424498, 211.75488018, 37271.36832732],\n                     [1563267600000, 227.5, 223.56534195, 228.58, 220.6, 11478.73492196],\n                     [1563256800000, 227.84, 227.51, 228.47, 222.23, 12400.01309093],\n                     [1563246000000, 227.92, 228.01, 229.42, 224.64722863, 6972.53635691],\n                     [1563235200000, 227.59, 227.9, 233.79, 226.57, 6183.36293921],\n                     [1563224400000, 230.85, 227.71011669, 234.32, 226.85, 48290.70606951],\n                     [1563213600000, 226.52, 230.44, 234.77, 223, 31775.57770792],\n                     [1563202800000, 229.67, 226.54, 233.79, 226.54, 21675.97054827],\n                     [1563192000000, 226.75, 229.66, 231.24, 220.25, 21267.02070597],\n                     [1563181200000, 223.6, 226.75, 228.64, 221.59, 14245.31042772],\n                     [1563170400000, 221.5, 223.69, 227.81, 218.05, 19558.58216315],\n                     [1563159600000, 217.83, 221.49, 225.24, 216.6, 27216.23625298],\n                     [1563148800000, 225.99, 217.85, 227, 202.81, 106939.24423858],\n                     [1563138000000, 237.12, 226.19, 240.05, 222.58, 24981.26949572],\n                     [1563127200000, 237.95, 237.13, 238.69898908, 231.88, 27265.66187528],\n                     [1563116400000, 237.38, 237.97, 239.5, 229.2, 31962.47785729],\n                     [1563105600000, 242.54, 237.53, 243.14, 235.05, 29636.81485101],\n                     [1563094800000, 263.46176624, 242.59, 264.52, 237.59079378, 82296.18938389],\n                     [1563084000000, 265.56, 263.46, 267.06248187, 263.46, 12819.5155758],\n                     [1563073200000, 267.63, 265.54, 268.11, 264.36, 4685.45521277],\n                     [1563062400000, 268.07, 267.63, 268.59, 266.32, 3190.8440675],\n                     [1563051600000, 264.05, 268.07, 268.86, 260.69, 14989.90412692],\n                     [1563040800000, 268.38, 264.05, 268.38, 262, 12988.11332321],\n                     [1563030000000, 268.3, 268.38, 271.23, 267.45, 1981.71758301],\n                     [1563019200000, 266.28, 268.52, 271.28, 265.3, 5767.13063469],\n                     [1563008400000, 270.23, 266.29, 271.29, 264.43, 10068.46614986],\n                     [1562997600000, 271.49, 270.19, 271.53, 268.21, 6337.04827588],\n                     [1562986800000, 273.12, 271.46, 273.12, 270.27, 3233.64101227],\n                     [1562976000000, 274.87, 273.2, 274.97, 272.69, 2723.08914799],\n                     [1562965200000, 276.53080785, 274.73, 276.73, 273.68, 3479.37740223],\n                     [1562954400000, 273.93, 276.25069102, 277.8, 272.11, 3435.91809673],\n                     [1562943600000, 272.17, 273.89, 274.97, 269.69, 6645.46995735],\n                     [1562932800000, 275.9, 272.37, 276.12, 270.58, 4572.66794096],\n                     [1562922000000, 274.44928271, 276.01, 279.02, 274.44928271, 6967.58305748],\n                     [1562911200000, 269.76, 274.44, 276, 269.4, 5652.575413],\n                     [1562900400000, 271.63, 270, 271.73013242, 266.5, 5318.93862001],\n                     [1562889600000, 268.54, 271.49, 274.31, 266.28, 5975.80857901],\n                     [1562878800000, 266.48, 268.38, 269.98, 264.61, 12116.52745171],\n                     [1562868000000, 273.13, 266.71, 274.07, 263.15, 16719.84487342],\n                     [1562857200000, 271.78, 273.16, 275.75, 266, 14666.27939577],\n                     [1562846400000, 272.75, 271.75, 273.98, 270.8, 1268.848163578779],\n                     [1562835600000, 270.76, 273, 273.43, 267.16722571, 12306.863138998015],\n                     [1562824800000, 269.69857208, 270.23, 273.7, 268.45, 19084.285135426464],\n                     [1562814000000, 286.4, 269.7, 286.91, 261.1, 53586.351247172],\n                     [1562803200000, 288.72, 286.4, 288.72, 281, 17810.28209137133],\n                     [1562792400000, 287.2289761, 288.7123753, 289.98, 283.44, 10880.603371637902],\n                     [1562781600000, 287.88, 287.8, 289.9, 283, 15062.732135015005],\n                     [1562770800000, 292.42, 287.88, 292.42, 278.86, 49262.53112857156],\n                     [1562760000000, 308.24, 292.56, 310.79, 292.42358636, 29142.793120411243],\n                     [1562749200000, 310, 308.26, 311.13055179, 307.69, 8081.112151232711],\n                     [1562738400000, 311.1, 310.01, 311.24, 307, 10661.93451852414],\n                     [1562727600000, 313.87744005, 311.01, 314.95, 309.57, 7483.366878514675],\n                     [1562716800000, 307.84, 313.84, 316.5, 306.83576651, 15293.823985539126],\n                     [1562706000000, 304.32, 307.86, 309.5, 303.6, 9604.960605212886],\n                     [1562695200000, 310.16, 304.49, 311.18, 302.69, 16405.788719151435],\n                     [1562684400000, 308.61, 310.15, 311.39, 307.2, 10815.26491171646],\n                     [1562673600000, 311.23, 308.61, 312.95, 308.1, 3944.682631296568],\n                     [1562662800000, 313.12, 311.36, 315.01, 309.2, 14672.3076291173],\n                     [1562652000000, 315.44, 313.11, 318, 308.12, 18231.82508306494],\n                     [1562641200000, 316.2, 315.45, 317.08, 313.81, 9469.181090588943],\n                     [1562630400000, 313.44, 316.2, 318.3, 311, 12055.018792816256],\n                     [1562619600000, 310.71, 313.39, 315.27, 310.7, 26763.224030041896],\n                     [1562608800000, 307.98, 310.72, 313.14, 306.13, 18996.362915640915]][::-1]\n# doji\ntest_candles_5 = [\n                     [1565413200000, 211.81, 211.99, 212.81, 211.7, 1275.89863985],\n                     [1565409600000, 212.29, 211.76, 212.45, 211.63, 1081.49696172],\n                     [1565406000000, 211.17, 212.14, 212.91, 211.16333215, 1122.9070402],\n                     [1565402400000, 213.65, 211.21, 213.95, 210.97, 2870.02141534],\n                     [1565398800000, 213.78741824, 213.55, 214.28, 212.66, 973.71674692],\n                     [1565395200000, 210.82, 213.79, 215, 210.82, 3950.54271707],\n                     [1565391600000, 209.4155261, 210.8, 211.26, 209.4, 695.4391732],\n                     [1565388000000, 210.99584209, 209.35874828, 211.46899059, 209.28, 1250.44447392],\n                     [1565384400000, 210.05, 210.95, 211.24, 209.6, 2561.14560264],\n                     [1565380800000, 210, 210.06, 211.1, 209.84, 2011.3443666],\n                     [1565377200000, 208.2, 210, 210.20664306, 208.10852371, 1446.95450718]\n                 ][:: -1]\n# inverted hammer\ntest_candles_6 = [\n                     [1563602400000, 227.11, 227, 227.37714801, 226.28, 1354.10433166],\n                     [1563598800000, 227.97, 226.95, 228.12, 225.75, 1605.50303734],\n                     [1563595200000, 226.99, 227.92, 228.58, 226.28, 3492.67607223],\n                     [1563591600000, 225.46, 226.9, 228.8, 225.45, 6540.31895363],\n                     [1563588000000, 220.9, 225.41, 226.17, 220.9, 3304.9263300000002],\n                     [1563584400000, 221.23, 220.9, 221.88, 219.72713873, 1777.71401012],\n                     [1563580800000, 221.15, 221.29, 223.64762777, 220.62, 2510.1972379],\n                     [1563577200000, 220.1548475, 221.16, 221.5918987, 220.11, 884.84261139],\n                     [1563573600000, 221.2, 219.89, 222.38, 219.15, 1106.29919985],\n                     [1563570000000, 220.28, 221.14, 221.14, 219.5, 402.06756189],\n                     [1563566400000, 218.89, 220.15, 220.34465133, 218.51, 1216.34121373],\n                     [1563562800000, 217.99, 218.56, 218.91, 217.76, 955.76097576],\n                     [1563559200000, 217.99, 217.95, 218.65, 217.52, 738.2209880300001],\n                     [1563555600000, 218.41, 218.06, 219.64, 218.06, 993.95399958],\n                     [1563552000000, 218.68, 218.48, 219.84, 216.2, 1408.27212962],\n                     [1563548400000, 217.27, 218.7, 219.33, 217.13, 1863.62630834],\n                     [1563544800000, 216.02, 217.24, 218.81, 215.58, 2697.92415199],\n                     [1563541200000, 219.34, 216.36, 219.38, 213.19, 7936.79125483],\n                     [1563537600000, 216.61, 219.2, 222.78, 214.8, 9709.33466836],\n                     [1563534000000, 218.17, 216.54, 219.45, 215.74, 2144.59491105],\n                     [1563530400000, 217.7, 218.29, 219, 216.44, 1869.26514074],\n                     [1563526800000, 218.39, 217.85, 219.91, 216.13, 4085.00522212],\n                     [1563523200000, 224.65, 218.43, 226.34, 215.16, 12543.59694206],\n                     [1563519600000, 220.89, 224.63, 225.54, 220.5, 13130.5667715],\n                     [1563516000000, 221.77, 220.87, 222.43, 220.06, 1618.89586871],\n                     [1563512400000, 221.49, 221.77, 222.51, 219.31, 2115.67682667],\n                     [1563508800000, 222.45, 221.5, 223.31, 221.28, 994.15286398],\n                     [1563505200000, 223.36, 222.45, 224.09, 221.36, 728.65423949],\n                     [1563501600000, 222.6, 223.38, 224.1, 221.01, 2778.93627859],\n                     [1563498000000, 225, 222.71, 226.03, 221.53, 2505.57425105],\n                     [1563494400000, 225.82, 224.9, 226.17673805, 223.46, 5571.71127516],\n                     [1563490800000, 223.61, 225.74, 229.1, 223.61, 7744.58137343],\n                     [1563487200000, 224.01, 223.61, 224.28, 222.53, 1531.27654409],\n                     [1563483600000, 224.41, 224.03, 225.73, 223.58, 2500.78588149],\n                     [1563480000000, 223.28, 224.21, 225.62, 223.28, 2813.50421847],\n                     [1563476400000, 222.84, 223.3, 225.08, 222.34073256, 4161.77625996],\n                     [1563472800000, 223.99, 222.84, 225.26, 222.5, 5777.43564279],\n                     [1563469200000, 223.69, 223.9, 226.06, 223, 3701.0898429100002],\n                     [1563465600000, 224.07, 223.58, 226.49, 220.95, 10365.05452214],\n                     [1563462000000, 223.91, 224.12, 224.8, 220.91013134, 15568.55307694],\n                     [1563458400000, 208.24781644, 223.97, 225, 205.61175816, 34916.6862513],\n                     [1563454800000, 208.88, 208.07958522, 211.16, 206.62, 6415.48749266],\n                     [1563451200000, 215.15, 209.09, 215.33, 207.71, 17272.66964631],\n                     [1563447600000, 216.28, 215.3, 217.18, 213.89, 4387.75932178],\n                     [1563444000000, 214.43, 216.02, 218.16, 214.07, 2643.71315714],\n                     [1563440400000, 213.32, 214.43, 216.07, 212.64, 3487.90559533],\n                     [1563436800000, 215.83, 213.24, 216.84, 213.1, 3836.32805392],\n                     [1563433200000, 219.07, 216.02, 219.17, 215.33187154, 5185.44340326],\n                     [1563429600000, 217.56, 219.03, 221.82, 216.13, 8881.05898017],\n                     [1563426000000, 218.36, 217.54, 218.8304796, 216.16, 3523.42450088],\n                     [1563422400000, 212.17, 217.92, 219.02, 211.00270983, 6332.92496199],\n                     [1563418800000, 213.13, 212.06, 213.52, 210, 4010.0325571099997],\n                     [1563415200000, 212.7, 213.13, 213.53, 210.9, 2475.13115958],\n                     [1563411600000, 208.53, 212.77, 214.31, 208.53, 5739.5236321],\n                     [1563408000000, 211.12544722, 208.75515447, 211.24, 206.61617064, 5687.91179254],\n                     [1563404400000, 211.18, 211.06, 211.97, 209.39, 3903.5852541],\n                     [1563400800000, 213.83, 211.21, 215.78, 210.65, 5217.93338459],\n                     [1563397200000, 212.53, 214.03, 217.56, 211.75, 4969.76287031],\n                     [1563393600000, 211.56, 212.355192, 213.91, 209, 7392.36780664],\n                     [1563390000000, 215.58, 211.34, 216.11, 210.49, 6398.55009345],\n                     [1563386400000, 215.77, 215.65, 217.38, 213.12, 6530.47907227],\n                     [1563382800000, 213.8, 215.45, 219.46880776, 210.39573393, 10537.076849089999],\n                     [1563379200000, 212.72, 213.72, 218.81674136, 211.92, 20028.29613262],\n                     [1563375600000, 212.48, 212.72, 215.29999439, 210.0378214, 14268.87912574],\n                     [1563372000000, 204.04, 212.47, 213.24, 204.04, 17403.12827052],\n                     [1563368400000, 202.48, 204.04, 204.04, 200.79510684, 5207.83373986],\n                     [1563364800000, 196.17, 202.52, 203.72, 193.84, 17816.7678066],\n                     [1563361200000, 199.28, 195.96, 200.72914914, 191.6, 21424.63231793],\n                     [1563357600000, 201.95, 199.37, 201.95, 197.25, 8888.63532104],\n                     [1563354000000, 203.46, 202.1, 204.22, 201.38, 2760.70455357],\n                     [1563350400000, 203.62, 203.48, 205.39, 202.17, 7129.79299749],\n                     [1563346800000, 201.74853968, 203.77, 204.12, 199.54, 5792.44449367],\n                     [1563343200000, 201.71, 201.88, 203.04198656, 200.64, 4388.5427789],\n                     [1563339600000, 198.02, 201.72, 201.99, 197.99, 2681.91174694],\n                     [1563336000000, 197.7, 198.08, 200.05, 196.36, 5522.50915903],\n                     [1563332400000, 196.56, 197.64, 199.32, 196.56, 9666.81279461],\n                     [1563328800000, 199.48, 196.56, 199.56, 194, 14392.55764177],\n                     [1563325200000, 199.65, 199.65, 200.66, 198.7, 1970.29401251],\n                     [1563321600000, 198.67, 199.66, 203.22, 198.63, 3907.50782995],\n                     [1563318000000, 200.1, 198.57, 200.62, 195.27365329, 7863.71696862],\n                     [1563314400000, 203.89557716, 199.87599598, 204.32, 198.33, 5300.03287853],\n                     [1563310800000, 202.35, 204.15, 206.57, 198.17, 10144.6887272],\n                     [1563307200000, 203.88, 202.36, 207.62, 202.13, 8640.11964383],\n                     [1563303600000, 197.7245928, 203.87722992, 204.07, 197.51, 9538.5236756],\n                     [1563300000000, 198.75, 197.69, 201.98, 196.77178276, 24200.16420442],\n                     [1563296400000, 205.71, 198.74, 205.71, 191, 127843.9837017],\n                     [1563292800000, 220, 205.55, 220, 205.2, 41450.56297812],\n                     [1563289200000, 216.5, 220, 222.25, 216.10500471, 6545.84664981],\n                     [1563285600000, 214.74, 216.5, 218.05, 214.57, 6264.41270439],\n                     [1563282000000, 218.67, 214.87, 219.18, 211.75488018, 22447.35672087],\n                     [1563278400000, 223.46, 218.32, 224.0424498, 216, 8559.598902060001],\n                     [1563274800000, 224.22, 223.56534195, 225.9, 220.6, 4469.71039747],\n                     [1563271200000, 224.81, 224.22, 225.8, 223.22, 2094.04191476],\n                     [1563267600000, 227.5, 224.71, 228.58, 224.41, 4914.98260973],\n                     [1563264000000, 225.51, 227.51, 228.1, 223.28, 5868.17264851],\n                     [1563260400000, 227, 225.55, 227.3, 222.23, 5361.33693828],\n                     [1563256800000, 227.84, 226.92, 228.47, 226.59, 1170.50350414],\n                     [1563253200000, 227.47, 228.01, 228.75, 226.28, 1223.39088588],\n                     [1563249600000, 226.76, 227.71, 228.58, 224.64722863, 3378.12977919],\n                     [1563246000000, 227.92, 226.89, 229.42, 225.32, 2371.01569184],\n                     [1563242400000, 231.2, 227.9, 231.2, 226.57, 2437.58695594],\n                     [1563238800000, 231.92, 231.14, 233.79, 229.92, 1297.25666676],\n                     [1563235200000, 227.59, 231.8020434, 231.98, 227.38, 2448.51931651],\n                     [1563231600000, 232.81, 227.71011669, 234.26, 227.13, 37754.22695209],\n                     [1563228000000, 227.1, 232.91, 234.32, 227.1, 8523.70477522],\n                     [1563224400000, 230.85, 227.37, 232, 226.85, 2012.7743422],\n                     [1563220800000, 232.35, 230.44, 233.85, 229.44, 6087.20612457],\n                     [1563217200000, 234.33, 232.35953226, 234.33, 230.25, 3122.14189255],\n                     [1563213600000, 226.52, 234.32, 234.77, 223, 22566.2296908],\n                     [1563210000000, 232.83, 226.54, 232.94, 226.54, 2442.7887045],\n                     [1563206400000, 229.7, 232.71, 233.79, 226.99, 12688.02910296],\n                     [1563202800000, 229.67, 229.82532, 230.97, 226.71, 6545.15274081],\n                     [1563199200000, 226.17, 229.66, 231.24, 225.97, 12829.9598567],\n                     [1563195600000, 220.44, 226.14, 226.65, 220.25, 3877.69399646],\n                     [1563192000000, 226.75, 220.74, 227.02, 220.37, 4559.36685281],\n                     [1563188400000, 225.67, 226.75, 228.64, 225.39, 2984.32722891],\n                     [1563184800000, 226.44, 225.69, 228.37, 224.60208759, 4642.15254938],\n                     [1563181200000, 223.6, 226.44, 227.53, 221.59, 6618.83064943],\n                     [1563177600000, 226.86, 223.69, 227, 222.76, 7608.41857896],\n                     [1563174000000, 221.3, 226.85, 227.81, 221.3, 7276.39953278],\n                     [1563170400000, 221.5, 221.12, 222.35, 218.05, 4673.76405141],\n                     [1563166800000, 220.76560613, 221.49, 222.07, 218.1, 10053.02025771],\n                     [1563163200000, 222.3, 220.41, 224.51, 220.41, 6226.92714434],\n                     [1563159600000, 217.83, 222.32, 225.24, 216.6, 10936.28885093],\n                     [1563156000000, 216.06, 217.85, 217.97, 213.13, 6981.10848735],\n                     [1563152400000, 211.32, 216.09, 218.75, 211.2, 12228.24412955],\n                     [1563148800000, 225.99, 211.32, 227, 202.81, 87729.89162168],\n                     [1563145200000, 236.06, 226.19, 236.07, 222.58, 21776.9816644],\n                     [1563141600000, 239.7, 236.22, 240.05, 235.93, 1190.23330269],\n                     [1563138000000, 237.12, 239.7, 239.72, 236, 2014.05452863],\n                     [1563134400000, 235.11, 237.13, 238.69898908, 233.03, 4881.68623203],\n                     [1563130800000, 235.04604075, 235.22806228, 235.4, 232.29, 9648.95393923],\n                     [1563127200000, 237.95, 234.86, 238.2, 231.88, 12735.02170402],\n                     [1563123600000, 237.69, 237.97, 239.5, 236.9, 5156.44663803],\n                     [1563120000000, 233.89, 237.7, 238.75266075, 232.16150157, 10058.33179271],\n                     [1563116400000, 237.38, 233.9, 238.1, 229.2, 16747.69942655],\n                     [1563112800000, 238, 237.53, 239.35164531, 235.27685427, 5234.81743577],\n                     [1563109200000, 238.40053185, 238.38, 242.09, 235.05, 9355.15365776],\n                     [1563105600000, 242.54, 238.2985998, 243.14, 235.34457933, 15046.84375748],\n                     [1563102000000, 243.35, 242.59, 245.7855259, 239.11, 17940.08331454],\n                     [1563098400000, 240.43524625, 243.41, 245.94, 239.14, 24226.76220061],\n                     [1563094800000, 263.46176624, 240.55, 264.52, 237.59079378, 40129.34386874],\n                     [1563091200000, 264.71, 263.46, 266.42, 263.46, 7938.85503038],\n                     [1563087600000, 265.92, 264.75, 265.92, 264.37, 4299.96684613],\n                     [1563084000000, 265.56, 265.89, 267.06248187, 265.56, 580.69369929],\n                     [1563080400000, 264.74, 265.54, 266.21, 264.74, 2103.93545121],\n                     [1563076800000, 266.8, 264.68, 267.15, 264.36, 1308.21431536],\n                     [1563073200000, 267.63, 267.4, 268.11, 266.81, 1273.3054462],\n                     [1563069600000, 267.92, 267.63, 268.3, 267.32, 1174.1093523],\n                     [1563066000000, 266.7, 267.71, 268.5, 266.32, 955.60947874],\n                     [1563062400000, 268.07, 267.16, 268.59, 266.6, 1061.12523646],\n                     [1563058800000, 265.82, 268.07, 268.86, 265.82, 1065.19226083],\n                     [1563055200000, 262.44, 265.72, 268, 262.37, 6014.05762993],\n                     [1563051600000, 264.05, 262.45, 264.05, 260.69, 7910.65423616],\n                     [1563048000000, 266.45, 264.05, 266.56, 262, 5877.43229383],\n                     [1563044400000, 265.45, 266.52, 267.2, 264.01, 5239.78444011],\n                     [1563040800000, 268.38, 265.42, 268.38, 264.82, 1870.89658927],\n                     [1563037200000, 268.19, 268.38, 269.7492705, 267.45, 598.34469654],\n                     [1563033600000, 269.80534675, 268.32, 271.23, 267.67, 658.94602031],\n                     [1563030000000, 268.3, 269.78, 270.32, 267.62, 724.42686616],\n                     [1563026400000, 268.96, 268.52, 270.31, 267.66, 869.52669645],\n                     [1563022800000, 266.8, 268.96, 271.28, 266.42, 2992.45024997],\n                     [1563019200000, 266.28, 266.84, 267.8, 265.3, 1905.15368827],\n                     [1563015600000, 267.65, 266.29, 268.31539546, 264.43, 4200.87555791],\n                     [1563012000000, 270.43, 267.66, 270.54, 266.62, 4846.7472035],\n                     [1563008400000, 270.23, 270.64, 271.29, 270.1, 1020.84338845],\n                     [1563004800000, 268.42, 270.19, 271.14856042, 268.42, 1466.78152435],\n                     [1563001200000, 269.86, 268.43, 271.27, 268.21, 1861.96934603],\n                     [1562997600000, 271.49, 269.87, 271.53, 268.98, 3008.2974055],\n                     [1562994000000, 271.54, 271.46, 272.1400404, 270.91, 732.86711976],\n                     [1562990400000, 271.43, 271.49, 272.49177408, 270.27, 1034.35059105],\n                     [1562986800000, 273.12, 271.56, 273.12, 270.75, 1466.42330146],\n                     [1562983200000, 273.59, 273.2, 273.79, 273.04, 981.50556581],\n                     [1562979600000, 274.15, 273.87, 274.15, 272.69, 968.36797967],\n                     [1562976000000, 274.87, 274.16, 274.97, 273.82, 773.2156025099999],\n                     [1562972400000, 273.79, 274.73, 276.07, 273.79, 692.96761051],\n                     [1562968800000, 275.03, 273.79, 275.34, 273.68, 857.72151909],\n                     [1562965200000, 276.53080785, 275.02, 276.73, 274.65, 1928.68827263],\n                     [1562961600000, 273.85, 276.25069102, 277.8, 273.85, 2351.88721604],\n                     [1562958000000, 273.63, 273.85, 274.03, 272.11, 392.36163836000003],\n                     [1562954400000, 273.93, 273.62, 275.02, 272.56, 691.66924233],\n                     [1562950800000, 272.5, 273.89, 274.43, 272.33, 1114.11657856],\n                     [1562947200000, 271.2, 272.5, 274.97, 269.8, 2120.56304791],\n                     [1562943600000, 272.17, 271.2, 272.52, 269.69, 3410.79033088],\n                     [1562940000000, 274.25, 272.37, 275.11563446, 270.58, 1844.26650686],\n                     [1562936400000, 275, 274.7, 276, 274.11, 1262.88202947],\n                     [1562932800000, 275.9, 275, 276.12, 272.34, 1465.51940463],\n                     [1562929200000, 275.82, 276.01, 276.65, 275.13, 1402.96095779],\n                     [1562925600000, 277.16, 275.77, 279.02, 275.1, 3649.63438567],\n                     [1562922000000, 274.44928271, 277.15, 277.57, 274.44928271, 1914.9877140199999],\n                     [1562918400000, 272.86, 274.44, 276, 272.17101267, 1743.45790487],\n                     [1562914800000, 271, 272.82, 274, 271, 2508.26415298],\n                     [1562911200000, 269.76, 270.99886245, 271, 269.4, 1400.85335515],\n                     [1562907600000, 270.36, 270, 271.19, 268.69, 1456.38051068],\n                     [1562904000000, 267.91, 270.45, 270.5, 266.65, 2753.8319505],\n                     [1562900400000, 271.63, 267.81, 271.73013242, 266.5, 1108.72615883],\n                     [1562896800000, 270.66, 271.49, 271.67, 270.04, 563.86397965],\n                     [1562893200000, 272.1, 270.56, 272.3, 269.72, 1037.58987099],\n                     [1562889600000, 268.54, 272.12, 274.31, 266.28, 4374.35472837],\n                     [1562886000000, 267.206918, 268.38, 268.87, 265.36, 1591.00960977],\n                     [1562882400000, 269.5, 267.2, 269.79, 267.2, 2402.70295938],\n                     [1562878800000, 266.48, 269.5, 269.98, 264.61, 8122.81488256],\n                     [1562875200000, 272.95, 266.71, 273.43, 263.15, 13866.05079188],\n                     [1562871600000, 272.98, 273, 273.98, 271.56, 1646.30402394],\n                     [1562868000000, 273.13, 273, 274.07, 272.26, 1207.4900576],\n                     [1562864400000, 272.7, 273.16, 274.06, 272.03, 856.88133369],\n                     [1562860800000, 268.35, 272.71, 275.75, 266, 5432.9617073],\n                     [1562857200000, 271.78, 268.54, 273.2, 266.33, 8376.43635478],\n                     [1562853600000, 273.29, 271.75, 273.98, 270.8, 1092.00857411],\n                     [1562850000000, 273.42518799, 273.29, 273.57, 273.29, 29.119999999999997],\n                     [1562846400000, 272.75, 273.55, 273.7, 272.74, 147.719589468779],\n                     [1562842800000, 270.32, 273, 273.43, 269.49, 4350.097363109913],\n                     [1562839200000, 272, 270.32, 272.13, 267.16722571, 4429.895435283791],\n                     [1562835600000, 270.76, 271.95, 272.58, 269.87, 3526.870340604311],\n                     [1562832000000, 273.39, 270.23, 273.65, 269.25, 4355.892994257641],\n                     [1562828400000, 273, 273.39, 273.7, 269.76, 5435.388910786666],\n                     [1562824800000, 269.69857208, 272.99, 273, 268.45, 9293.003230382157],\n                     [1562821200000, 268.9, 269.7, 271.19, 265.1231495, 6885.257989332237],\n                     [1562817600000, 282.52, 268.69, 283.16, 261.1, 42679.606731794964],\n                     [1562814000000, 286.4, 282.67, 286.91, 281.14464827, 4021.486526044806],\n                     [1562810400000, 285.28, 286.4, 286.4, 284.7, 1664.31045633],\n                     [1562806800000, 284.69, 285.27, 286.8, 283.05, 1918.449225612223],\n                     [1562803200000, 288.72, 284.32, 288.72, 281, 14227.522409429108],\n                     [1562799600000, 289.02, 288.7123753, 289.29, 287.53, 1905.131484584028],\n                     [1562796000000, 288.2, 289.25, 289.83, 285.94101743, 4688.233106279797],\n                     [1562792400000, 287.2289761, 288.15, 289.98, 283.44, 4287.238780774077],\n                     [1562788800000, 287.53732932, 287.8, 288.4, 283, 8434.842426938938],\n                     [1562785200000, 285.14, 287.53, 289.9, 284.04, 4582.884122169536],\n                     [1562781600000, 287.88, 285.19, 287.88, 285.19, 2045.005585906531],\n                     [1562778000000, 285.27, 287.88, 288, 283, 6724.105337907423],\n                     [1562774400000, 287.95, 285.29, 290.26, 282.45, 9445.387495208968],\n                     [1562770800000, 292.42, 287.89, 292.42, 278.86, 33093.03829545517],\n                     [1562767200000, 308.58, 292.56, 309.42837354, 292.42358636, 23760.322484528253],\n                     [1562763600000, 309.2, 308.64, 310.79, 308.53, 2053.708602726572],\n                     [1562760000000, 308.24, 309.1, 309.29, 307, 3328.76203315642],\n                     [1562756400000, 309.37, 308.26, 311.13055179, 307.69, 4266.791341042448],\n                     [1562752800000, 308.69, 309.19123583, 310.06, 308.47, 1434.759175320263],\n                     [1562749200000, 310, 308.69314505, 310.75, 308.09, 2379.56163487],\n                     [1562745600000, 307.38, 310.01, 310.01, 307.3, 5571.63076276],\n                     [1562742000000, 309.08, 307.36, 309.35, 307, 2651.983805569236],\n                     [1562738400000, 311.1, 309.08, 311.24, 308.71, 2438.319950194904],\n                     [1562734800000, 310.89, 311.01, 311.93, 309.92, 1679.397261035737],\n                     [1562731200000, 311, 310.89, 312.11, 309.57, 1518.773729830795],\n                     [1562727600000, 313.87744005, 311.01, 314.95, 310.92, 4285.195887648143],\n                     [1562724000000, 311.09, 313.84, 316.5, 311.09, 8238.439359985881],\n                     [1562720400000, 312.37, 311.09, 312.63, 311.02, 2025.500169317997],\n                     [1562716800000, 307.84, 312.14, 312.99, 306.83576651, 5029.884456235246],\n                     [1562713200000, 307.99, 307.86, 309.5, 307.74, 4979.490265305564],\n                     [1562709600000, 307.3, 307.98, 308.4, 306.31, 1537.726808036944],\n                     [1562706000000, 304.32, 307.31, 308.85, 303.6, 3087.743531870378],\n                     [1562702400000, 307.47, 304.49, 307.47443755, 302.69, 8826.03019463428],\n                     [1562698800000, 309.85, 307.47, 310.27, 303.87, 6024.642643890162],\n                     [1562695200000, 310.16, 309.95, 311.18, 309.43, 1555.115880626991],\n                     [1562691600000, 309.73, 310.15, 310.82, 309.3, 1060.835790230649],\n                     [1562688000000, 309.2, 309.73, 311.39, 309.15, 3512.422936729986],\n                     [1562684400000, 308.61, 309.25, 310.04, 307.2, 6242.006184755826],\n                     [1562680800000, 311.42837933, 308.61, 312.91, 308.1, 1490.053976155575],\n                     [1562677200000, 312.45, 311.42, 312.95, 309.96, 1510.358829083802],\n                     [1562673600000, 311.23, 312.15, 312.45, 311, 944.269826057191],\n                     [1562670000000, 311.03, 311.36, 312.38, 310.52, 2771.864422217986],\n                     [1562666400000, 314.21, 311.13, 314.33, 309.2, 8377.293054594798],\n                     [1562662800000, 313.12, 314.37, 315.01, 312.23, 3523.150152304516],\n                     [1562659200000, 311.77, 313.11, 313.63, 311.52, 2207.501554149047],\n                     [1562655600000, 317.04, 311.64, 317.64, 308.12, 12835.127990831676],\n                     [1562652000000, 315.44, 317.15, 318, 315.17, 3189.195538084219],\n                     [1562648400000, 315.77, 315.45, 316, 314.67, 2623.545609008255],\n                     [1562644800000, 315.11, 315.58, 316.27, 313.99, 3967.657216876321],\n                     [1562641200000, 316.2, 315.11, 317.08, 313.81, 2877.978264704368],\n                     [1562637600000, 314.07, 316.2, 318.3, 313.97, 4705.735242022388],\n                     [1562634000000, 311.24, 313.61, 314.04, 311.05, 2272.139619402471],\n                     [1562630400000, 313.44, 311.14, 313.45, 311, 5077.143931391396],\n                     [1562626800000, 313.86, 313.39, 315.22, 312.75, 7440.887001256283],\n                     [1562623200000, 312.26, 313.9, 315.27, 311.15, 15903.89506614883],\n                     [1562619600000, 310.71, 312.26, 312.4, 310.7, 3418.441962636784],\n                     [1562616000000, 310.41, 310.72, 313.14, 308.17, 6321.345249032818],\n                     [1562612400000, 306.75, 310.34, 311.49, 306.5, 9476.429378268744],\n                     [1562608800000, 307.98, 306.86424496, 308.04, 306.13, 3198.588288339354],\n                     [1562605200000, 308.4, 307.95, 309.38, 306.86, 3140.925262098901],\n                     [1562601600000, 309.1, 308.68, 310.44, 306.07, 4902.757898499353],\n                     [1562598000000, 309.05, 309.03, 310, 307.27, 2075.43897934913],\n                     [1562594400000, 308.89, 308.9, 309.72, 307.88, 1697.932856982219],\n                     [1562590800000, 306.80865745, 308.87, 309.76859433, 305.88, 3096.126254119655],\n                     [1562587200000, 308.04, 306.8, 308.65, 305.41, 4784.691250024502],\n                     [1562583600000, 309.69, 308.07, 309.69, 307.55, 3495.216317482407],\n                     [1562580000000, 310.4, 309.69, 310.93, 308.9, 4818.125473502093],\n                     [1562576400000, 310.25, 310.56, 312.53, 308.93, 11586.306329998713],\n                     [1562572800000, 308.73, 310.10790143, 310.25, 304.96, 6713.926560244871],\n                     [1562569200000, 305.53, 308.79291566, 310.25, 305.3, 2741.828531506003],\n                     [1562565600000, 305.23, 305.52, 305.73, 304.22, 1894.358993215844],\n                     [1562562000000, 305.98, 305.18, 305.98, 304.8, 1749.85131836],\n                     [1562558400000, 305.45, 305.98, 307.07, 305.33914098, 2639.120567093529],\n                     [1562554800000, 305.24, 305.51, 305.71, 303.87, 1057.494395242086],\n                     [1562551200000, 306.07, 305.08, 306.57, 304.98, 1146.38343246666],\n                     [1562547600000, 303.05, 306.13, 306.42, 302.8914127, 6306.38447504831],\n                     [1562544000000, 306.57, 303.04, 308.84170999, 302.54, 4721.12789480746],\n                     [1562540400000, 306.04, 306.54, 307.35502248, 305.5, 1067.835063383022],\n                     [1562536800000, 308.35, 306.31, 311, 304.7, 13673.18352032881],\n                     [1562533200000, 307, 308.16, 308.91, 306.49, 2941.86582170654],\n                     [1562529600000, 307.8, 307, 310.5, 305.53, 7662.342096172919],\n                     [1562526000000, 306.49538508, 307.8, 309.67, 305.11, 8616.637374768594],\n                     [1562522400000, 307.72, 306.49, 311, 305.25, 8827.038212224172],\n                     [1562518800000, 292.84, 307.7, 309.25, 292.8, 29297.561814110984],\n                     [1562515200000, 292.12, 292.76, 292.83, 290.70194636, 1819.168848554204],\n                     [1562511600000, 293.40327744, 292.15, 294.83, 290.72, 6648.869447326808],\n                     [1562508000000, 294.35, 293.40327744, 295.48, 293.40327744, 1065.935168519027],\n                     [1562504400000, 294.71245496, 294.35, 295.75, 294.13162268, 1540.194182712207],\n                     [1562500800000, 294.1, 294.71, 296.43, 293.82, 5246.088882291099],\n                     [1562497200000, 288.96, 294.17, 295.26, 288.6, 7202.535912994613],\n                     [1562493600000, 288.48, 288.97, 289.45920249, 288.13, 838.114483477825],\n                     [1562490000000, 288.17, 288.52, 289.08, 287.53, 1184.948148550061],\n                     [1562486400000, 288.72896052, 288.07, 288.72896052, 287.06, 2509.3587293022742],\n                     [1562482800000, 288.52, 288.65, 289.36, 288.05, 542.096866791271],\n                     [1562479200000, 288.9, 288.41, 289.16227984, 288.07, 480.550277505631],\n                     [1562475600000, 290, 288.91, 290.26, 288.31, 801.347458793652],\n                     [1562472000000, 288.29, 290, 290.20409012, 287.1, 1410.60203717],\n                     [1562468400000, 288.17, 288.28, 288.97, 286.77, 1175.191820008901],\n                     [1562464800000, 289.19, 288.12, 289.19, 287.15, 471.86966851],\n                     [1562461200000, 288.67, 289.27, 289.27, 287.81, 293.552434691153],\n                     [1562457600000, 288.61, 288.67364316, 289.23, 284.43, 3718.567536787268],\n                     [1562454000000, 287.9, 288.61, 288.79, 287.06, 1067.084013766703],\n                     [1562450400000, 288.53, 287.9, 289.13, 285.68, 2284.956483378572],\n                     [1562446800000, 293.1, 288.74, 293.11, 286.2, 7985.216836761654],\n                     [1562443200000, 293.15, 293.1, 294.5, 292.57, 2504.259535682406],\n                     [1562439600000, 293.20966668, 293.36, 293.8273772, 291.2, 1607.57042195],\n                     [1562436000000, 295.35, 293.37, 295.45, 293.16, 1912.579850616127],\n                     [1562432400000, 295.4, 295.01, 296, 294.37, 1856.778164505526],\n                     [1562428800000, 297.04, 295.58, 298.46, 295.05357868, 2731.352327521428],\n                     [1562425200000, 295.92, 296.97, 298.87, 295.71, 8431.926980094615],\n                     [1562421600000, 289.98, 295.91099776, 296.11, 289.44, 3353.321286088616],\n                     [1562418000000, 291.2, 289.97, 291.2, 289.48, 2170.08622002123],\n                     [1562414400000, 291.65, 291.24, 292, 289.34, 7419.539710627652],\n                     [1562410800000, 291.2, 291.43, 291.7, 290.91, 1634.089795559867],\n                     [1562407200000, 291.61, 291.2, 292.06491935, 290.69, 1250.69550421],\n                     [1562403600000, 291.45, 291.61, 292.14, 290.2, 994.351219206948],\n                     [1562400000000, 293.69, 291.47, 295.02, 290.71, 2705.795384536361],\n                     [1562396400000, 292.3, 293.65, 293.93, 291.79, 2536.443027858002],\n                     [1562392800000, 292.77, 292.28, 294, 291.81782551, 2499.352283691533],\n                     [1562389200000, 293.3663992, 292.84, 294.86, 292.42, 5379.338087118942],\n                     [1562385600000, 294.02, 293.48, 295.01, 293.22, 4061.178200193957],\n                     [1562382000000, 292.7, 294.01, 294.04, 291.97, 624.698914792956],\n                     [1562378400000, 292.5, 292.7, 293.873197, 291.71, 269.808436258754],\n                     [1562374800000, 294.38, 292.5, 294.5, 291.54, 669.137261408786],\n                     [1562371200000, 288.01, 294.35, 294.73, 287.19043177, 3797.344533337384],\n                     [1562367600000, 288.44, 287.95, 289.36935018, 286.53, 508.43556896],\n                     [1562364000000, 288.94, 288.39, 290.25, 287.2, 1482.63164497],\n                     [1562360400000, 287.12, 289.09, 289.65967864, 287.11, 303.1515221],\n                     [1562356800000, 290.5, 287.14, 290.69, 285.44, 2604.052203779635],\n                     [1562353200000, 291.73, 290.5, 293.17, 290.11, 2095.951424334533],\n                     [1562349600000, 292, 291.8, 292.66, 290.65, 1116.00646606002],\n                     [1562346000000, 289.53, 292, 292.23, 288.61, 1889.726037959811],\n                     [1562342400000, 289.84, 289.73, 291.67, 288, 1334.6396874221],\n                     [1562338800000, 292.17, 289.86, 292.66, 287.55, 4350.823336440464],\n                     [1562335200000, 292.27, 292.07, 294.37, 291.03, 2072.396702199285],\n                     [1562331600000, 292, 292.3, 294, 292, 1250.95577689293],\n                     [1562328000000, 293.90895052, 292, 294.07, 291.31, 924.076135295769],\n                     [1562324400000, 294.05, 293.9, 294.6364036, 292.93, 1474.640759023059],\n                     [1562320800000, 290.54, 294.05, 295.27981785, 290.54, 2318.463007437298],\n                     [1562317200000, 285.23, 290.55, 293.66, 285.09, 7339.3052633891575],\n                     [1562313600000, 285.84, 285.44, 286.11, 283.33, 1656.517043869724],\n                     [1562310000000, 285.09, 285.83, 285.91, 283.62, 2247.662468226648],\n                     [1562306400000, 286.96, 285.14, 288.21, 284.37, 2720.031010737149],\n                     [1562302800000, 286.54710859, 286.96, 287.5, 286.1, 912.812622206888],\n                     [1562299200000, 285.89, 286.53, 286.54466995, 284.67575976, 455.04148099891097],\n                     [1562295600000, 284.55, 285.89, 286.51, 283.97, 645.348900826725],\n                     [1562292000000, 286.39101283, 284.42141091, 287, 284.42141091, 2076.021365526775],\n                     [1562288400000, 284.44061321, 286.39, 286.97, 282.97576328, 5804.788938862283],\n                     [1562284800000, 283.19, 284.63, 285.26587168, 281.25, 6256.370816017917],\n                     [1562281200000, 293.29, 283.19, 293.29, 280.25, 16377.409411154193],\n                     [1562277600000, 292.13571784, 293.29, 293.5, 292.06, 1534.8949945699999],\n                     [1562274000000, 292.72, 292.33, 293.28, 291.93, 1815.418630077157],\n                     [1562270400000, 294.85, 292.72, 294.85618273, 290.26, 5234.447749719316],\n                     [1562266800000, 294.46119033, 294.86, 294.9916087, 293.44, 536.489455314865],\n                     [1562263200000, 295.69534597, 294.6, 295.7, 294.03168804, 1253.422531605359],\n                     [1562259600000, 295.26394653, 295.69534597, 296.82, 295.2, 1771.946629164279],\n                     [1562256000000, 294.12, 295.12, 295.99, 292.98, 2456.761117287422],\n                     [1562252400000, 295.94, 294.1, 296.38, 294.1, 1472.175134890017],\n                     [1562248800000, 296.11, 295.9, 297.06678214, 294.75449937, 1079.397855417646],\n                     [1562245200000, 294.88, 296.06, 296.7, 294.88, 2043.731597803166],\n                     [1562241600000, 294.38, 294.76, 295.84, 294.13, 3403.428918912735],\n                     [1562238000000, 293.97623048, 294.36, 295.54, 292.6, 4776.616618130325],\n                     [1562234400000, 294.36, 293.84, 295.15, 291.85, 4345.65909118065],\n                     [1562230800000, 296.5, 294.29, 296.70506963, 293.97, 6287.811689638424],\n                     [1562227200000, 295.25, 296.52621167, 296.52621167, 294.27, 2027.720703198558],\n                     [1562223600000, 296.6, 295.33260675, 298.72, 295.33260675, 1841.062865236167],\n                     [1562220000000, 295.25, 296.59945698, 296.78, 295.22, 1713.616699976313],\n                     [1562216400000, 294.15, 295.21, 295.21, 293.88, 1481.679627925961],\n                     [1562212800000, 298.23, 294.21, 298.8, 292.34, 6302.928896565222],\n                     [1562209200000, 298.98, 298.14, 299.5, 296.64, 3471.619020927389],\n                     [1562205600000, 300.08, 298.98, 300.58, 298.86, 2337.578552373277],\n                     [1562202000000, 299.65, 300.07, 301.87, 299.3, 4787.890037830652],\n                     [1562198400000, 302.21901172, 299.64, 303.5, 299.01, 2283.8200593159722],\n                     [1562194800000, 300.56, 302.22, 303.40039444, 298.84, 6903.701603482515],\n                     [1562191200000, 295.02, 300.56, 302.5, 294.45, 10358.812733250203],\n                     [1562187600000, 294.03, 294.8, 295.43, 292.99, 815.166807523792],\n                     [1562184000000, 293.18, 294.03, 294.82, 292.29, 2722.748775037397],\n                     [1562180400000, 292.19, 293.02157821, 294.01, 291.60422283, 2016.180535833639],\n                     [1562176800000, 292.01, 292.17, 292.51, 290.14, 2798.315346315081],\n                     [1562173200000, 289.82, 292.05, 292.5, 289.78, 3256.475799249486],\n                     [1562169600000, 295.22, 289.83, 295.23, 289.83, 4633.125421719817],\n                     [1562166000000, 294.85, 295.3, 296.1, 293.75, 5128.432523696609],\n                     [1562162400000, 293.76, 294.9, 295.77789864, 292.24375238, 3402.3838107427678],\n                     [1562158800000, 295.33, 293.76, 296.11, 293.06, 3592.119337521333],\n                     [1562155200000, 292.42, 295.26, 295.34, 292.4, 1539.151026631249],\n                     [1562151600000, 294.97, 292.42, 295.23, 292.01, 3035.263751159769],\n                     [1562148000000, 294.59, 294.84, 296.2, 294.15482647, 2393.08693802853],\n                     [1562144400000, 291.96, 294.53, 294.9, 291.3, 3058.429872680864],\n                     [1562140800000, 294.82, 291.97, 295.71936269, 291.41, 7777.047083653257],\n                     [1562137200000, 297.98, 294.99, 298.13, 294.77, 3879.164247657985],\n                     [1562133600000, 298.88, 298.01, 299, 296.4, 1905.419723373114],\n                     [1562130000000, 297.47, 298.83, 301.75, 296.86829756, 15517.202153051325],\n                     [1562126400000, 295.909059, 297.68, 298, 295.909059, 4672.094582265891],\n                     [1562122800000, 293.79, 295.83, 297.17, 292.8, 6727.846224577526],\n                     [1562119200000, 297.01, 293.83, 297.37, 293.83, 5562.255507966701],\n                     [1562115600000, 296.08426276, 297.03877083, 298.86, 295.14, 8689.836974404941],\n                     [1562112000000, 292.71336822, 296.08, 296.12, 292.71336822, 9791.992199128887],\n                     [1562108400000, 292.92, 292.93594278, 295.07, 290.31, 8204.260699380968],\n                     [1562104800000, 289.2, 292.91, 294.24, 288.72, 2874.387442211366],\n                     [1562101200000, 289.24, 289.2, 291.48, 286.55, 6074.786001840982],\n                     [1562097600000, 290.03, 289.24990237, 291.71, 289.24, 2996.274698720906],\n                     [1562094000000, 289.62, 290.03, 292.82, 288.53, 5139.476471784382],\n                     [1562090400000, 292.2, 289.61, 292.49270942, 286.86, 3612.602373276965],\n                     [1562086800000, 288.96, 292.15, 292.5, 288.58646844, 3683.910742053373],\n                     [1562083200000, 291.51, 288.87, 291.68, 286, 2293.264293835396],\n                     [1562079600000, 288.49, 291.78, 291.97, 286.72, 3158.949024633446],\n                     [1562076000000, 280.54, 288.43, 288.49, 280.53388884, 6643.733596030642],\n                     [1562072400000, 283.23, 280.53, 284.7, 279.5424026, 3788.119476784923],\n                     [1562068800000, 277.39, 283.22883141, 286, 276.52, 10690.176330464707],\n                     [1562065200000, 280.56, 277.39, 282.74, 273.95, 12576.920863204203],\n                     [1562061600000, 282.71, 280.22, 284.54, 278.44, 3531.041957319029],\n                     [1562058000000, 284.07, 282.7, 286.56, 281.78, 2857.612177088166],\n                     [1562054400000, 278.46, 283.95250067, 284.88, 276.76, 4168.077814438706],\n                     [1562050800000, 277.22, 278.87, 279.5, 277.17, 2115.062277665163],\n                     [1562047200000, 276.71, 277.26, 281.62, 272.65, 10673.258827023461],\n                     [1562043600000, 280.02022806, 276.72, 281, 276, 14754.55885075738],\n                     [1562040000000, 289.52, 279.98, 290.39, 276.89, 19589.646887363895],\n                     [1562036400000, 288.11915505, 289.36, 289.56, 287.12, 2594.236725234793],\n                     [1562032800000, 288.36, 288.12, 290.27, 288.03737519, 2113.392561646159],\n                     [1562029200000, 291.56, 288.54, 293.62, 287.67, 4280.869320562249],\n                     [1562025600000, 295.58, 291.57, 299.03, 291.5, 9724.069906459914],\n                     [1562022000000, 291.46, 295.5, 297.63, 291.14563128, 3326.014683487564],\n                     [1562018400000, 293.23, 291.48, 293.27, 290.31, 2825.932836906471],\n                     [1562014800000, 290.82, 293.16, 294.84, 290.82, 3624.675055477975],\n                     [1562011200000, 284.1958989, 290.71, 292.60889172, 284.19, 9283.234425758577],\n                     [1562007600000, 287.16412032, 284.19, 287.16412032, 281, 9898.438534180406],\n                     [1562004000000, 284.74, 287.13646584, 287.73730521, 283.37, 4609.520316230599],\n                     [1562000400000, 285.35, 284.63, 287.32, 282.62, 4262.964841343437],\n                     [1561996800000, 286.42, 285.34, 289.7, 284.35, 6026.798068132093],\n                     [1561993200000, 283.07, 286.53, 288.97, 281.5, 19890.7333485207],\n                     [1561989600000, 287.19, 283, 290.73, 282.11, 10775.289206436404],\n                     [1561986000000, 290.53, 287.27, 291.36, 287.27, 5988.2673219081835],\n                     [1561982400000, 295.99, 290.14, 297, 285.94, 14393.420665222136],\n                     [1561978800000, 296.71, 295.99, 296.99, 294.27, 3022.437726040742],\n                     [1561975200000, 298.88, 296.44, 299.89, 295, 2914.369670844062],\n                     [1561971600000, 299.68, 298.99, 300, 298, 2434.092485884046],\n                     [1561968000000, 294.95, 299.61, 299.71, 294.55, 4129.501441153225],\n                     [1561964400000, 294.85, 294.99, 297.6, 292.53, 3179.141134059615],\n                     [1561960800000, 296.71, 294.79, 297.81, 293.85, 2030.232937491254],\n                     [1561957200000, 299.17, 296.37, 299.84, 295.33, 4583.326442799895],\n                     [1561953600000, 299.16, 299.15, 300.34675801, 296.84, 1340.536547968204],\n                     [1561950000000, 298.04, 299.15, 302.47, 296.79794148, 4481.327509019943],\n                     [1561946400000, 295.07, 297.87, 299, 293.01, 4146.47421846737],\n                     [1561942800000, 295.76, 295.2, 299, 294.2, 3514.497280984894],\n                     [1561939200000, 290.8, 295.76, 295.76, 287.64, 6015.255764906366],\n                     [1561935600000, 294.48, 290.8, 296.16, 286.76, 5990.069935593896],\n                     [1561932000000, 300.44, 294.91, 300.56, 290, 7864.607478509145],\n                     [1561928400000, 304.54, 300.4, 304.54, 300, 1669.727407244795],\n                     [1561924800000, 302.54, 304.54, 305, 300.62411886, 3668.470019759599],\n                     [1561921200000, 300.24, 302.24, 303.51, 300, 1249.78729430409],\n                     [1561917600000, 303.11, 300.24, 303.67, 300.19, 1402.14949066398],\n                     [1561914000000, 303, 303.02, 304, 299.6, 8427.135278875787],\n                     [1561910400000, 296.58, 302.92, 303.67486655, 291, 13365.898945020235],\n                     [1561906800000, 297.59, 296.86, 298.33, 296.49, 3524.350252865675],\n                     [1561903200000, 295.89808766, 297.58, 298.29, 290, 16392.298974169862],\n                     [1561899600000, 304.5, 295.77, 304.94, 293.29, 13131.5588943672],\n                     [1561896000000, 302.68, 304.61, 305, 301.37633559, 7268.573793544172],\n                     [1561892400000, 303.6, 302.68, 305.21, 301.02, 7720.337907777976],\n                     [1561888800000, 310.13, 303.75, 311.27, 300.96, 19264.505667414916],\n                     [1561885200000, 310.38, 310.8, 312.1, 307.74, 2177.268020692446],\n                     [1561881600000, 308.9, 310.12, 311.36497, 307.5, 3345.968776795459],\n                     [1561878000000, 315.93, 308.91, 315.94, 307.28, 7649.354628821737],\n                     [1561874400000, 317.85696037, 315.92, 319, 315.29, 2969.739183026164],\n                     [1561870800000, 319.0138534, 317.78, 320.02, 314.18, 8905.35294393954],\n                     [1561867200000, 318.7, 318.90263416, 320, 318, 1233.469369819015],\n                     [1561863600000, 319.63, 318.7, 320.61, 317.35582428, 4149.1751190772075],\n                     [1561860000000, 321.79, 319.51, 321.99133319, 318.93, 2918.454756374003],\n                     [1561856400000, 323.88, 321.78, 324.44, 318.98, 4319.855207353936],\n                     [1561852800000, 317.78117349, 323.74, 324.45, 317.61, 7595.240542933092],\n                     [1561849200000, 314.76, 317.42, 325.12, 314.6, 15141.694645117828],\n                     [1561845600000, 310.96, 314.76, 315.67, 310.96, 3706.236546962641],\n                     [1561842000000, 312.64, 310.95, 314.4, 308.77, 4081.050972364217]][:: -1]\n# hammer\ntest_candles_7 = [\n                     [1563483600000, 224.41, 224.03, 225.73, 223.58, 2500.78588149],\n                     [1563480000000, 223.28, 224.21, 225.62, 223.28, 2813.50421847],\n                     [1563476400000, 222.84, 223.3, 225.08, 222.34073256, 4161.77625996],\n                     [1563472800000, 223.99, 222.84, 225.26, 222.5, 5777.43564279],\n                     [1563469200000, 223.69, 223.9, 226.06, 223, 3701.0898429100002],\n                     [1563465600000, 224.07, 223.58, 226.49, 220.95, 10365.05452214],\n                     [1563462000000, 223.91, 224.12, 224.8, 220.91013134, 15568.55307694],\n                     [1563458400000, 208.24781644, 223.97, 225, 205.61175816, 34916.6862513],\n                     [1563454800000, 208.88, 208.07958522, 211.16, 206.62, 6415.48749266],\n                     [1563451200000, 215.15, 209.09, 215.33, 207.71, 17272.66964631],\n                     [1563447600000, 216.28, 215.3, 217.18, 213.89, 4387.75932178],\n                     [1563444000000, 214.43, 216.02, 218.16, 214.07, 2643.71315714],\n                     [1563440400000, 213.32, 214.43, 216.07, 212.64, 3487.90559533],\n                     [1563436800000, 215.83, 213.24, 216.84, 213.1, 3836.32805392],\n                     [1563433200000, 219.07, 216.02, 219.17, 215.33187154, 5185.44340326],\n                     [1563429600000, 217.56, 219.03, 221.82, 216.13, 8881.05898017],\n                     [1563426000000, 218.36, 217.54, 218.8304796, 216.16, 3523.42450088],\n                     [1563422400000, 212.17, 217.92, 219.02, 211.00270983, 6332.92496199],\n                     [1563418800000, 213.13, 212.06, 213.52, 210, 4010.0325571099997],\n                     [1563415200000, 212.7, 213.13, 213.53, 210.9, 2475.13115958],\n                     [1563411600000, 208.53, 212.77, 214.31, 208.53, 5739.5236321],\n                     [1563408000000, 211.12544722, 208.75515447, 211.24, 206.61617064, 5687.91179254],\n                     [1563404400000, 211.18, 211.06, 211.97, 209.39, 3903.5852541],\n                     [1563400800000, 213.83, 211.21, 215.78, 210.65, 5217.93338459],\n                     [1563397200000, 212.53, 214.03, 217.56, 211.75, 4969.76287031],\n                     [1563393600000, 211.56, 212.355192, 213.91, 209, 7392.36780664],\n                     [1563390000000, 215.58, 211.34, 216.11, 210.49, 6398.55009345],\n                     [1563386400000, 215.77, 215.65, 217.38, 213.12, 6530.47907227],\n                     [1563382800000, 213.8, 215.45, 219.46880776, 210.39573393, 10537.076849089999],\n                     [1563379200000, 212.72, 213.72, 218.81674136, 211.92, 20028.29613262],\n                     [1563375600000, 212.48, 212.72, 215.29999439, 210.0378214, 14268.87912574],\n                     [1563372000000, 204.04, 212.47, 213.24, 204.04, 17403.12827052],\n                     [1563368400000, 202.48, 204.04, 204.04, 200.79510684, 5207.83373986],\n                     [1563364800000, 196.17, 202.52, 203.72, 193.84, 17816.7678066],\n                     [1563361200000, 199.28, 195.96, 200.72914914, 191.6, 21424.63231793],\n                     [1563357600000, 201.95, 199.37, 201.95, 197.25, 8888.63532104],\n                     [1563354000000, 203.46, 202.1, 204.22, 201.38, 2760.70455357],\n                     [1563350400000, 203.62, 203.48, 205.39, 202.17, 7129.79299749],\n                     [1563346800000, 201.74853968, 203.77, 204.12, 199.54, 5792.44449367],\n                     [1563343200000, 201.71, 201.88, 203.04198656, 200.64, 4388.5427789],\n                     [1563339600000, 198.02, 201.72, 201.99, 197.99, 2681.91174694],\n                     [1563336000000, 197.7, 198.08, 200.05, 196.36, 5522.50915903],\n                     [1563332400000, 196.56, 197.64, 199.32, 196.56, 9666.81279461],\n                     [1563328800000, 199.48, 196.56, 199.56, 194, 14392.55764177],\n                     [1563325200000, 199.65, 199.65, 200.66, 198.7, 1970.29401251],\n                     [1563321600000, 198.67, 199.66, 203.22, 198.63, 3907.50782995],\n                     [1563318000000, 200.1, 198.57, 200.62, 195.27365329, 7863.71696862],\n                     [1563314400000, 203.89557716, 199.87599598, 204.32, 198.33, 5300.03287853],\n                     [1563310800000, 202.35, 204.15, 206.57, 198.17, 10144.6887272],\n                     [1563307200000, 203.88, 202.36, 207.62, 202.13, 8640.11964383],\n                     [1563303600000, 197.7245928, 203.87722992, 204.07, 197.51, 9538.5236756],\n                     [1563300000000, 198.75, 197.69, 201.98, 196.77178276, 24200.16420442],\n                     [1563296400000, 205.71, 198.74, 205.71, 191, 127843.9837017],\n                     [1563292800000, 220, 205.55, 220, 205.2, 41450.56297812],\n                     [1563289200000, 216.5, 220, 222.25, 216.10500471, 6545.84664981],\n                     [1563285600000, 214.74, 216.5, 218.05, 214.57, 6264.41270439],\n                     [1563282000000, 218.67, 214.87, 219.18, 211.75488018, 22447.35672087],\n                     [1563278400000, 223.46, 218.32, 224.0424498, 216, 8559.598902060001],\n                     [1563274800000, 224.22, 223.56534195, 225.9, 220.6, 4469.71039747],\n                     [1563271200000, 224.81, 224.22, 225.8, 223.22, 2094.04191476],\n                     [1563267600000, 227.5, 224.71, 228.58, 224.41, 4914.98260973],\n                     [1563264000000, 225.51, 227.51, 228.1, 223.28, 5868.17264851],\n                     [1563260400000, 227, 225.55, 227.3, 222.23, 5361.33693828],\n                     [1563256800000, 227.84, 226.92, 228.47, 226.59, 1170.50350414],\n                     [1563253200000, 227.47, 228.01, 228.75, 226.28, 1223.39088588],\n                     [1563249600000, 226.76, 227.71, 228.58, 224.64722863, 3378.12977919],\n                     [1563246000000, 227.92, 226.89, 229.42, 225.32, 2371.01569184],\n                     [1563242400000, 231.2, 227.9, 231.2, 226.57, 2437.58695594],\n                     [1563238800000, 231.92, 231.14, 233.79, 229.92, 1297.25666676],\n                     [1563235200000, 227.59, 231.8020434, 231.98, 227.38, 2448.51931651],\n                     [1563231600000, 232.81, 227.71011669, 234.26, 227.13, 37754.22695209],\n                     [1563228000000, 227.1, 232.91, 234.32, 227.1, 8523.70477522],\n                     [1563224400000, 230.85, 227.37, 232, 226.85, 2012.7743422],\n                     [1563220800000, 232.35, 230.44, 233.85, 229.44, 6087.20612457],\n                     [1563217200000, 234.33, 232.35953226, 234.33, 230.25, 3122.14189255],\n                     [1563213600000, 226.52, 234.32, 234.77, 223, 22566.2296908],\n                     [1563210000000, 232.83, 226.54, 232.94, 226.54, 2442.7887045],\n                     [1563206400000, 229.7, 232.71, 233.79, 226.99, 12688.02910296],\n                     [1563202800000, 229.67, 229.82532, 230.97, 226.71, 6545.15274081],\n                     [1563199200000, 226.17, 229.66, 231.24, 225.97, 12829.9598567],\n                     [1563195600000, 220.44, 226.14, 226.65, 220.25, 3877.69399646],\n                     [1563192000000, 226.75, 220.74, 227.02, 220.37, 4559.36685281],\n                     [1563188400000, 225.67, 226.75, 228.64, 225.39, 2984.32722891],\n                     [1563184800000, 226.44, 225.69, 228.37, 224.60208759, 4642.15254938],\n                     [1563181200000, 223.6, 226.44, 227.53, 221.59, 6618.83064943],\n                     [1563177600000, 226.86, 223.69, 227, 222.76, 7608.41857896],\n                     [1563174000000, 221.3, 226.85, 227.81, 221.3, 7276.39953278],\n                     [1563170400000, 221.5, 221.12, 222.35, 218.05, 4673.76405141],\n                     [1563166800000, 220.76560613, 221.49, 222.07, 218.1, 10053.02025771],\n                     [1563163200000, 222.3, 220.41, 224.51, 220.41, 6226.92714434],\n                     [1563159600000, 217.83, 222.32, 225.24, 216.6, 10936.28885093],\n                     [1563156000000, 216.06, 217.85, 217.97, 213.13, 6981.10848735],\n                     [1563152400000, 211.32, 216.09, 218.75, 211.2, 12228.24412955],\n                     [1563148800000, 225.99, 211.32, 227, 202.81, 87729.89162168],\n                     [1563145200000, 236.06, 226.19, 236.07, 222.58, 21776.9816644],\n                     [1563141600000, 239.7, 236.22, 240.05, 235.93, 1190.23330269],\n                     [1563138000000, 237.12, 239.7, 239.72, 236, 2014.05452863],\n                     [1563134400000, 235.11, 237.13, 238.69898908, 233.03, 4881.68623203],\n                     [1563130800000, 235.04604075, 235.22806228, 235.4, 232.29, 9648.95393923],\n                     [1563127200000, 237.95, 234.86, 238.2, 231.88, 12735.02170402],\n                     [1563123600000, 237.69, 237.97, 239.5, 236.9, 5156.44663803],\n                     [1563120000000, 233.89, 237.7, 238.75266075, 232.16150157, 10058.33179271],\n                     [1563116400000, 237.38, 233.9, 238.1, 229.2, 16747.69942655],\n                     [1563112800000, 238, 237.53, 239.35164531, 235.27685427, 5234.81743577],\n                     [1563109200000, 238.40053185, 238.38, 242.09, 235.05, 9355.15365776],\n                     [1563105600000, 242.54, 238.2985998, 243.14, 235.34457933, 15046.84375748],\n                     [1563102000000, 243.35, 242.59, 245.7855259, 239.11, 17940.08331454],\n                     [1563098400000, 240.43524625, 243.41, 245.94, 239.14, 24226.76220061],\n                     [1563094800000, 263.46176624, 240.55, 264.52, 237.59079378, 40129.34386874],\n                     [1563091200000, 264.71, 263.46, 266.42, 263.46, 7938.85503038],\n                     [1563087600000, 265.92, 264.75, 265.92, 264.37, 4299.96684613],\n                     [1563084000000, 265.56, 265.89, 267.06248187, 265.56, 580.69369929],\n                     [1563080400000, 264.74, 265.54, 266.21, 264.74, 2103.93545121],\n                     [1563076800000, 266.8, 264.68, 267.15, 264.36, 1308.21431536],\n                     [1563073200000, 267.63, 267.4, 268.11, 266.81, 1273.3054462],\n                     [1563069600000, 267.92, 267.63, 268.3, 267.32, 1174.1093523],\n                     [1563066000000, 266.7, 267.71, 268.5, 266.32, 955.60947874],\n                     [1563062400000, 268.07, 267.16, 268.59, 266.6, 1061.12523646],\n                     [1563058800000, 265.82, 268.07, 268.86, 265.82, 1065.19226083],\n                     [1563055200000, 262.44, 265.72, 268, 262.37, 6014.05762993],\n                     [1563051600000, 264.05, 262.45, 264.05, 260.69, 7910.65423616],\n                     [1563048000000, 266.45, 264.05, 266.56, 262, 5877.43229383],\n                     [1563044400000, 265.45, 266.52, 267.2, 264.01, 5239.78444011],\n                     [1563040800000, 268.38, 265.42, 268.38, 264.82, 1870.89658927],\n                     [1563037200000, 268.19, 268.38, 269.7492705, 267.45, 598.34469654],\n                     [1563033600000, 269.80534675, 268.32, 271.23, 267.67, 658.94602031],\n                     [1563030000000, 268.3, 269.78, 270.32, 267.62, 724.42686616],\n                     [1563026400000, 268.96, 268.52, 270.31, 267.66, 869.52669645],\n                     [1563022800000, 266.8, 268.96, 271.28, 266.42, 2992.45024997],\n                     [1563019200000, 266.28, 266.84, 267.8, 265.3, 1905.15368827],\n                     [1563015600000, 267.65, 266.29, 268.31539546, 264.43, 4200.87555791],\n                     [1563012000000, 270.43, 267.66, 270.54, 266.62, 4846.7472035],\n                     [1563008400000, 270.23, 270.64, 271.29, 270.1, 1020.84338845],\n                     [1563004800000, 268.42, 270.19, 271.14856042, 268.42, 1466.78152435],\n                     [1563001200000, 269.86, 268.43, 271.27, 268.21, 1861.96934603],\n                     [1562997600000, 271.49, 269.87, 271.53, 268.98, 3008.2974055],\n                     [1562994000000, 271.54, 271.46, 272.1400404, 270.91, 732.86711976],\n                     [1562990400000, 271.43, 271.49, 272.49177408, 270.27, 1034.35059105],\n                     [1562986800000, 273.12, 271.56, 273.12, 270.75, 1466.42330146],\n                     [1562983200000, 273.59, 273.2, 273.79, 273.04, 981.50556581],\n                     [1562979600000, 274.15, 273.87, 274.15, 272.69, 968.36797967],\n                     [1562976000000, 274.87, 274.16, 274.97, 273.82, 773.2156025099999],\n                     [1562972400000, 273.79, 274.73, 276.07, 273.79, 692.96761051],\n                     [1562968800000, 275.03, 273.79, 275.34, 273.68, 857.72151909],\n                     [1562965200000, 276.53080785, 275.02, 276.73, 274.65, 1928.68827263],\n                     [1562961600000, 273.85, 276.25069102, 277.8, 273.85, 2351.88721604],\n                     [1562958000000, 273.63, 273.85, 274.03, 272.11, 392.36163836000003],\n                     [1562954400000, 273.93, 273.62, 275.02, 272.56, 691.66924233],\n                     [1562950800000, 272.5, 273.89, 274.43, 272.33, 1114.11657856],\n                     [1562947200000, 271.2, 272.5, 274.97, 269.8, 2120.56304791],\n                     [1562943600000, 272.17, 271.2, 272.52, 269.69, 3410.79033088],\n                     [1562940000000, 274.25, 272.37, 275.11563446, 270.58, 1844.26650686],\n                     [1562936400000, 275, 274.7, 276, 274.11, 1262.88202947],\n                     [1562932800000, 275.9, 275, 276.12, 272.34, 1465.51940463],\n                     [1562929200000, 275.82, 276.01, 276.65, 275.13, 1402.96095779],\n                     [1562925600000, 277.16, 275.77, 279.02, 275.1, 3649.63438567],\n                     [1562922000000, 274.44928271, 277.15, 277.57, 274.44928271, 1914.9877140199999],\n                     [1562918400000, 272.86, 274.44, 276, 272.17101267, 1743.45790487],\n                     [1562914800000, 271, 272.82, 274, 271, 2508.26415298],\n                     [1562911200000, 269.76, 270.99886245, 271, 269.4, 1400.85335515],\n                     [1562907600000, 270.36, 270, 271.19, 268.69, 1456.38051068],\n                     [1562904000000, 267.91, 270.45, 270.5, 266.65, 2753.8319505],\n                     [1562900400000, 271.63, 267.81, 271.73013242, 266.5, 1108.72615883],\n                     [1562896800000, 270.66, 271.49, 271.67, 270.04, 563.86397965],\n                     [1562893200000, 272.1, 270.56, 272.3, 269.72, 1037.58987099],\n                     [1562889600000, 268.54, 272.12, 274.31, 266.28, 4374.35472837],\n                     [1562886000000, 267.206918, 268.38, 268.87, 265.36, 1591.00960977],\n                     [1562882400000, 269.5, 267.2, 269.79, 267.2, 2402.70295938],\n                     [1562878800000, 266.48, 269.5, 269.98, 264.61, 8122.81488256],\n                     [1562875200000, 272.95, 266.71, 273.43, 263.15, 13866.05079188],\n                     [1562871600000, 272.98, 273, 273.98, 271.56, 1646.30402394],\n                     [1562868000000, 273.13, 273, 274.07, 272.26, 1207.4900576],\n                     [1562864400000, 272.7, 273.16, 274.06, 272.03, 856.88133369],\n                     [1562860800000, 268.35, 272.71, 275.75, 266, 5432.9617073],\n                     [1562857200000, 271.78, 268.54, 273.2, 266.33, 8376.43635478],\n                     [1562853600000, 273.29, 271.75, 273.98, 270.8, 1092.00857411],\n                     [1562850000000, 273.42518799, 273.29, 273.57, 273.29, 29.119999999999997],\n                     [1562846400000, 272.75, 273.55, 273.7, 272.74, 147.719589468779],\n                     [1562842800000, 270.32, 273, 273.43, 269.49, 4350.097363109913],\n                     [1562839200000, 272, 270.32, 272.13, 267.16722571, 4429.895435283791],\n                     [1562835600000, 270.76, 271.95, 272.58, 269.87, 3526.870340604311],\n                     [1562832000000, 273.39, 270.23, 273.65, 269.25, 4355.892994257641],\n                     [1562828400000, 273, 273.39, 273.7, 269.76, 5435.388910786666],\n                     [1562824800000, 269.69857208, 272.99, 273, 268.45, 9293.003230382157],\n                     [1562821200000, 268.9, 269.7, 271.19, 265.1231495, 6885.257989332237],\n                     [1562817600000, 282.52, 268.69, 283.16, 261.1, 42679.606731794964],\n                     [1562814000000, 286.4, 282.67, 286.91, 281.14464827, 4021.486526044806],\n                     [1562810400000, 285.28, 286.4, 286.4, 284.7, 1664.31045633],\n                     [1562806800000, 284.69, 285.27, 286.8, 283.05, 1918.449225612223],\n                     [1562803200000, 288.72, 284.32, 288.72, 281, 14227.522409429108],\n                     [1562799600000, 289.02, 288.7123753, 289.29, 287.53, 1905.131484584028],\n                     [1562796000000, 288.2, 289.25, 289.83, 285.94101743, 4688.233106279797],\n                     [1562792400000, 287.2289761, 288.15, 289.98, 283.44, 4287.238780774077],\n                     [1562788800000, 287.53732932, 287.8, 288.4, 283, 8434.842426938938],\n                     [1562785200000, 285.14, 287.53, 289.9, 284.04, 4582.884122169536],\n                     [1562781600000, 287.88, 285.19, 287.88, 285.19, 2045.005585906531],\n                     [1562778000000, 285.27, 287.88, 288, 283, 6724.105337907423],\n                     [1562774400000, 287.95, 285.29, 290.26, 282.45, 9445.387495208968],\n                     [1562770800000, 292.42, 287.89, 292.42, 278.86, 33093.03829545517],\n                     [1562767200000, 308.58, 292.56, 309.42837354, 292.42358636, 23760.322484528253],\n                     [1562763600000, 309.2, 308.64, 310.79, 308.53, 2053.708602726572],\n                     [1562760000000, 308.24, 309.1, 309.29, 307, 3328.76203315642],\n                     [1562756400000, 309.37, 308.26, 311.13055179, 307.69, 4266.791341042448],\n                     [1562752800000, 308.69, 309.19123583, 310.06, 308.47, 1434.759175320263],\n                     [1562749200000, 310, 308.69314505, 310.75, 308.09, 2379.56163487],\n                     [1562745600000, 307.38, 310.01, 310.01, 307.3, 5571.63076276],\n                     [1562742000000, 309.08, 307.36, 309.35, 307, 2651.983805569236],\n                     [1562738400000, 311.1, 309.08, 311.24, 308.71, 2438.319950194904],\n                     [1562734800000, 310.89, 311.01, 311.93, 309.92, 1679.397261035737],\n                     [1562731200000, 311, 310.89, 312.11, 309.57, 1518.773729830795],\n                     [1562727600000, 313.87744005, 311.01, 314.95, 310.92, 4285.195887648143],\n                     [1562724000000, 311.09, 313.84, 316.5, 311.09, 8238.439359985881],\n                     [1562720400000, 312.37, 311.09, 312.63, 311.02, 2025.500169317997],\n                     [1562716800000, 307.84, 312.14, 312.99, 306.83576651, 5029.884456235246],\n                     [1562713200000, 307.99, 307.86, 309.5, 307.74, 4979.490265305564],\n                     [1562709600000, 307.3, 307.98, 308.4, 306.31, 1537.726808036944],\n                     [1562706000000, 304.32, 307.31, 308.85, 303.6, 3087.743531870378],\n                     [1562702400000, 307.47, 304.49, 307.47443755, 302.69, 8826.03019463428],\n                     [1562698800000, 309.85, 307.47, 310.27, 303.87, 6024.642643890162],\n                     [1562695200000, 310.16, 309.95, 311.18, 309.43, 1555.115880626991],\n                     [1562691600000, 309.73, 310.15, 310.82, 309.3, 1060.835790230649],\n                     [1562688000000, 309.2, 309.73, 311.39, 309.15, 3512.422936729986],\n                     [1562684400000, 308.61, 309.25, 310.04, 307.2, 6242.006184755826],\n                     [1562680800000, 311.42837933, 308.61, 312.91, 308.1, 1490.053976155575],\n                     [1562677200000, 312.45, 311.42, 312.95, 309.96, 1510.358829083802],\n                     [1562673600000, 311.23, 312.15, 312.45, 311, 944.269826057191],\n                     [1562670000000, 311.03, 311.36, 312.38, 310.52, 2771.864422217986],\n                     [1562666400000, 314.21, 311.13, 314.33, 309.2, 8377.293054594798],\n                     [1562662800000, 313.12, 314.37, 315.01, 312.23, 3523.150152304516],\n                     [1562659200000, 311.77, 313.11, 313.63, 311.52, 2207.501554149047],\n                     [1562655600000, 317.04, 311.64, 317.64, 308.12, 12835.127990831676],\n                     [1562652000000, 315.44, 317.15, 318, 315.17, 3189.195538084219],\n                     [1562648400000, 315.77, 315.45, 316, 314.67, 2623.545609008255],\n                     [1562644800000, 315.11, 315.58, 316.27, 313.99, 3967.657216876321],\n                     [1562641200000, 316.2, 315.11, 317.08, 313.81, 2877.978264704368],\n                     [1562637600000, 314.07, 316.2, 318.3, 313.97, 4705.735242022388],\n                     [1562634000000, 311.24, 313.61, 314.04, 311.05, 2272.139619402471],\n                     [1562630400000, 313.44, 311.14, 313.45, 311, 5077.143931391396],\n                     [1562626800000, 313.86, 313.39, 315.22, 312.75, 7440.887001256283],\n                     [1562623200000, 312.26, 313.9, 315.27, 311.15, 15903.89506614883],\n                     [1562619600000, 310.71, 312.26, 312.4, 310.7, 3418.441962636784],\n                     [1562616000000, 310.41, 310.72, 313.14, 308.17, 6321.345249032818],\n                     [1562612400000, 306.75, 310.34, 311.49, 306.5, 9476.429378268744],\n                     [1562608800000, 307.98, 306.86424496, 308.04, 306.13, 3198.588288339354],\n                     [1562605200000, 308.4, 307.95, 309.38, 306.86, 3140.925262098901],\n                     [1562601600000, 309.1, 308.68, 310.44, 306.07, 4902.757898499353],\n                     [1562598000000, 309.05, 309.03, 310, 307.27, 2075.43897934913],\n                     [1562594400000, 308.89, 308.9, 309.72, 307.88, 1697.932856982219],\n                     [1562590800000, 306.80865745, 308.87, 309.76859433, 305.88, 3096.126254119655],\n                     [1562587200000, 308.04, 306.8, 308.65, 305.41, 4784.691250024502],\n                     [1562583600000, 309.69, 308.07, 309.69, 307.55, 3495.216317482407],\n                     [1562580000000, 310.4, 309.69, 310.93, 308.9, 4818.125473502093],\n                     [1562576400000, 310.25, 310.56, 312.53, 308.93, 11586.306329998713],\n                     [1562572800000, 308.73, 310.10790143, 310.25, 304.96, 6713.926560244871],\n                     [1562569200000, 305.53, 308.79291566, 310.25, 305.3, 2741.828531506003],\n                     [1562565600000, 305.23, 305.52, 305.73, 304.22, 1894.358993215844],\n                     [1562562000000, 305.98, 305.18, 305.98, 304.8, 1749.85131836],\n                     [1562558400000, 305.45, 305.98, 307.07, 305.33914098, 2639.120567093529],\n                     [1562554800000, 305.24, 305.51, 305.71, 303.87, 1057.494395242086],\n                     [1562551200000, 306.07, 305.08, 306.57, 304.98, 1146.38343246666],\n                     [1562547600000, 303.05, 306.13, 306.42, 302.8914127, 6306.38447504831],\n                     [1562544000000, 306.57, 303.04, 308.84170999, 302.54, 4721.12789480746],\n                     [1562540400000, 306.04, 306.54, 307.35502248, 305.5, 1067.835063383022],\n                     [1562536800000, 308.35, 306.31, 311, 304.7, 13673.18352032881],\n                     [1562533200000, 307, 308.16, 308.91, 306.49, 2941.86582170654],\n                     [1562529600000, 307.8, 307, 310.5, 305.53, 7662.342096172919],\n                     [1562526000000, 306.49538508, 307.8, 309.67, 305.11, 8616.637374768594],\n                     [1562522400000, 307.72, 306.49, 311, 305.25, 8827.038212224172],\n                     [1562518800000, 292.84, 307.7, 309.25, 292.8, 29297.561814110984],\n                     [1562515200000, 292.12, 292.76, 292.83, 290.70194636, 1819.168848554204],\n                     [1562511600000, 293.40327744, 292.15, 294.83, 290.72, 6648.869447326808],\n                     [1562508000000, 294.35, 293.40327744, 295.48, 293.40327744, 1065.935168519027],\n                     [1562504400000, 294.71245496, 294.35, 295.75, 294.13162268, 1540.194182712207],\n                     [1562500800000, 294.1, 294.71, 296.43, 293.82, 5246.088882291099],\n                     [1562497200000, 288.96, 294.17, 295.26, 288.6, 7202.535912994613],\n                     [1562493600000, 288.48, 288.97, 289.45920249, 288.13, 838.114483477825],\n                     [1562490000000, 288.17, 288.52, 289.08, 287.53, 1184.948148550061],\n                     [1562486400000, 288.72896052, 288.07, 288.72896052, 287.06, 2509.3587293022742],\n                     [1562482800000, 288.52, 288.65, 289.36, 288.05, 542.096866791271],\n                     [1562479200000, 288.9, 288.41, 289.16227984, 288.07, 480.550277505631],\n                     [1562475600000, 290, 288.91, 290.26, 288.31, 801.347458793652],\n                     [1562472000000, 288.29, 290, 290.20409012, 287.1, 1410.60203717],\n                     [1562468400000, 288.17, 288.28, 288.97, 286.77, 1175.191820008901],\n                     [1562464800000, 289.19, 288.12, 289.19, 287.15, 471.86966851],\n                     [1562461200000, 288.67, 289.27, 289.27, 287.81, 293.552434691153],\n                     [1562457600000, 288.61, 288.67364316, 289.23, 284.43, 3718.567536787268],\n                     [1562454000000, 287.9, 288.61, 288.79, 287.06, 1067.084013766703],\n                     [1562450400000, 288.53, 287.9, 289.13, 285.68, 2284.956483378572],\n                     [1562446800000, 293.1, 288.74, 293.11, 286.2, 7985.216836761654],\n                     [1562443200000, 293.15, 293.1, 294.5, 292.57, 2504.259535682406],\n                     [1562439600000, 293.20966668, 293.36, 293.8273772, 291.2, 1607.57042195],\n                     [1562436000000, 295.35, 293.37, 295.45, 293.16, 1912.579850616127],\n                     [1562432400000, 295.4, 295.01, 296, 294.37, 1856.778164505526],\n                     [1562428800000, 297.04, 295.58, 298.46, 295.05357868, 2731.352327521428],\n                     [1562425200000, 295.92, 296.97, 298.87, 295.71, 8431.926980094615],\n                     [1562421600000, 289.98, 295.91099776, 296.11, 289.44, 3353.321286088616],\n                     [1562418000000, 291.2, 289.97, 291.2, 289.48, 2170.08622002123],\n                     [1562414400000, 291.65, 291.24, 292, 289.34, 7419.539710627652],\n                     [1562410800000, 291.2, 291.43, 291.7, 290.91, 1634.089795559867],\n                     [1562407200000, 291.61, 291.2, 292.06491935, 290.69, 1250.69550421],\n                     [1562403600000, 291.45, 291.61, 292.14, 290.2, 994.351219206948],\n                     [1562400000000, 293.69, 291.47, 295.02, 290.71, 2705.795384536361],\n                     [1562396400000, 292.3, 293.65, 293.93, 291.79, 2536.443027858002],\n                     [1562392800000, 292.77, 292.28, 294, 291.81782551, 2499.352283691533],\n                     [1562389200000, 293.3663992, 292.84, 294.86, 292.42, 5379.338087118942],\n                     [1562385600000, 294.02, 293.48, 295.01, 293.22, 4061.178200193957],\n                     [1562382000000, 292.7, 294.01, 294.04, 291.97, 624.698914792956],\n                     [1562378400000, 292.5, 292.7, 293.873197, 291.71, 269.808436258754],\n                     [1562374800000, 294.38, 292.5, 294.5, 291.54, 669.137261408786],\n                     [1562371200000, 288.01, 294.35, 294.73, 287.19043177, 3797.344533337384],\n                     [1562367600000, 288.44, 287.95, 289.36935018, 286.53, 508.43556896],\n                     [1562364000000, 288.94, 288.39, 290.25, 287.2, 1482.63164497],\n                     [1562360400000, 287.12, 289.09, 289.65967864, 287.11, 303.1515221],\n                     [1562356800000, 290.5, 287.14, 290.69, 285.44, 2604.052203779635],\n                     [1562353200000, 291.73, 290.5, 293.17, 290.11, 2095.951424334533],\n                     [1562349600000, 292, 291.8, 292.66, 290.65, 1116.00646606002],\n                     [1562346000000, 289.53, 292, 292.23, 288.61, 1889.726037959811],\n                     [1562342400000, 289.84, 289.73, 291.67, 288, 1334.6396874221],\n                     [1562338800000, 292.17, 289.86, 292.66, 287.55, 4350.823336440464],\n                     [1562335200000, 292.27, 292.07, 294.37, 291.03, 2072.396702199285],\n                     [1562331600000, 292, 292.3, 294, 292, 1250.95577689293],\n                     [1562328000000, 293.90895052, 292, 294.07, 291.31, 924.076135295769],\n                     [1562324400000, 294.05, 293.9, 294.6364036, 292.93, 1474.640759023059],\n                     [1562320800000, 290.54, 294.05, 295.27981785, 290.54, 2318.463007437298],\n                     [1562317200000, 285.23, 290.55, 293.66, 285.09, 7339.3052633891575],\n                     [1562313600000, 285.84, 285.44, 286.11, 283.33, 1656.517043869724],\n                     [1562310000000, 285.09, 285.83, 285.91, 283.62, 2247.662468226648],\n                     [1562306400000, 286.96, 285.14, 288.21, 284.37, 2720.031010737149],\n                     [1562302800000, 286.54710859, 286.96, 287.5, 286.1, 912.812622206888],\n                     [1562299200000, 285.89, 286.53, 286.54466995, 284.67575976, 455.04148099891097],\n                     [1562295600000, 284.55, 285.89, 286.51, 283.97, 645.348900826725],\n                     [1562292000000, 286.39101283, 284.42141091, 287, 284.42141091, 2076.021365526775],\n                     [1562288400000, 284.44061321, 286.39, 286.97, 282.97576328, 5804.788938862283],\n                     [1562284800000, 283.19, 284.63, 285.26587168, 281.25, 6256.370816017917],\n                     [1562281200000, 293.29, 283.19, 293.29, 280.25, 16377.409411154193],\n                     [1562277600000, 292.13571784, 293.29, 293.5, 292.06, 1534.8949945699999],\n                     [1562274000000, 292.72, 292.33, 293.28, 291.93, 1815.418630077157],\n                     [1562270400000, 294.85, 292.72, 294.85618273, 290.26, 5234.447749719316],\n                     [1562266800000, 294.46119033, 294.86, 294.9916087, 293.44, 536.489455314865],\n                     [1562263200000, 295.69534597, 294.6, 295.7, 294.03168804, 1253.422531605359],\n                     [1562259600000, 295.26394653, 295.69534597, 296.82, 295.2, 1771.946629164279],\n                     [1562256000000, 294.12, 295.12, 295.99, 292.98, 2456.761117287422],\n                     [1562252400000, 295.94, 294.1, 296.38, 294.1, 1472.175134890017],\n                     [1562248800000, 296.11, 295.9, 297.06678214, 294.75449937, 1079.397855417646],\n                     [1562245200000, 294.88, 296.06, 296.7, 294.88, 2043.731597803166],\n                     [1562241600000, 294.38, 294.76, 295.84, 294.13, 3403.428918912735],\n                     [1562238000000, 293.97623048, 294.36, 295.54, 292.6, 4776.616618130325],\n                     [1562234400000, 294.36, 293.84, 295.15, 291.85, 4345.65909118065],\n                     [1562230800000, 296.5, 294.29, 296.70506963, 293.97, 6287.811689638424],\n                     [1562227200000, 295.25, 296.52621167, 296.52621167, 294.27, 2027.720703198558],\n                     [1562223600000, 296.6, 295.33260675, 298.72, 295.33260675, 1841.062865236167],\n                     [1562220000000, 295.25, 296.59945698, 296.78, 295.22, 1713.616699976313],\n                     [1562216400000, 294.15, 295.21, 295.21, 293.88, 1481.679627925961],\n                     [1562212800000, 298.23, 294.21, 298.8, 292.34, 6302.928896565222],\n                     [1562209200000, 298.98, 298.14, 299.5, 296.64, 3471.619020927389],\n                     [1562205600000, 300.08, 298.98, 300.58, 298.86, 2337.578552373277],\n                     [1562202000000, 299.65, 300.07, 301.87, 299.3, 4787.890037830652],\n                     [1562198400000, 302.21901172, 299.64, 303.5, 299.01, 2283.8200593159722],\n                     [1562194800000, 300.56, 302.22, 303.40039444, 298.84, 6903.701603482515],\n                     [1562191200000, 295.02, 300.56, 302.5, 294.45, 10358.812733250203],\n                     [1562187600000, 294.03, 294.8, 295.43, 292.99, 815.166807523792],\n                     [1562184000000, 293.18, 294.03, 294.82, 292.29, 2722.748775037397],\n                     [1562180400000, 292.19, 293.02157821, 294.01, 291.60422283, 2016.180535833639],\n                     [1562176800000, 292.01, 292.17, 292.51, 290.14, 2798.315346315081],\n                     [1562173200000, 289.82, 292.05, 292.5, 289.78, 3256.475799249486],\n                     [1562169600000, 295.22, 289.83, 295.23, 289.83, 4633.125421719817],\n                     [1562166000000, 294.85, 295.3, 296.1, 293.75, 5128.432523696609],\n                     [1562162400000, 293.76, 294.9, 295.77789864, 292.24375238, 3402.3838107427678],\n                     [1562158800000, 295.33, 293.76, 296.11, 293.06, 3592.119337521333],\n                     [1562155200000, 292.42, 295.26, 295.34, 292.4, 1539.151026631249],\n                     [1562151600000, 294.97, 292.42, 295.23, 292.01, 3035.263751159769],\n                     [1562148000000, 294.59, 294.84, 296.2, 294.15482647, 2393.08693802853],\n                     [1562144400000, 291.96, 294.53, 294.9, 291.3, 3058.429872680864],\n                     [1562140800000, 294.82, 291.97, 295.71936269, 291.41, 7777.047083653257],\n                     [1562137200000, 297.98, 294.99, 298.13, 294.77, 3879.164247657985],\n                     [1562133600000, 298.88, 298.01, 299, 296.4, 1905.419723373114],\n                     [1562130000000, 297.47, 298.83, 301.75, 296.86829756, 15517.202153051325],\n                     [1562126400000, 295.909059, 297.68, 298, 295.909059, 4672.094582265891],\n                     [1562122800000, 293.79, 295.83, 297.17, 292.8, 6727.846224577526],\n                     [1562119200000, 297.01, 293.83, 297.37, 293.83, 5562.255507966701],\n                     [1562115600000, 296.08426276, 297.03877083, 298.86, 295.14, 8689.836974404941],\n                     [1562112000000, 292.71336822, 296.08, 296.12, 292.71336822, 9791.992199128887],\n                     [1562108400000, 292.92, 292.93594278, 295.07, 290.31, 8204.260699380968],\n                     [1562104800000, 289.2, 292.91, 294.24, 288.72, 2874.387442211366],\n                     [1562101200000, 289.24, 289.2, 291.48, 286.55, 6074.786001840982],\n                     [1562097600000, 290.03, 289.24990237, 291.71, 289.24, 2996.274698720906],\n                     [1562094000000, 289.62, 290.03, 292.82, 288.53, 5139.476471784382],\n                     [1562090400000, 292.2, 289.61, 292.49270942, 286.86, 3612.602373276965],\n                     [1562086800000, 288.96, 292.15, 292.5, 288.58646844, 3683.910742053373],\n                     [1562083200000, 291.51, 288.87, 291.68, 286, 2293.264293835396],\n                     [1562079600000, 288.49, 291.78, 291.97, 286.72, 3158.949024633446],\n                     [1562076000000, 280.54, 288.43, 288.49, 280.53388884, 6643.733596030642],\n                     [1562072400000, 283.23, 280.53, 284.7, 279.5424026, 3788.119476784923],\n                     [1562068800000, 277.39, 283.22883141, 286, 276.52, 10690.176330464707],\n                     [1562065200000, 280.56, 277.39, 282.74, 273.95, 12576.920863204203],\n                     [1562061600000, 282.71, 280.22, 284.54, 278.44, 3531.041957319029],\n                     [1562058000000, 284.07, 282.7, 286.56, 281.78, 2857.612177088166],\n                     [1562054400000, 278.46, 283.95250067, 284.88, 276.76, 4168.077814438706],\n                     [1562050800000, 277.22, 278.87, 279.5, 277.17, 2115.062277665163],\n                     [1562047200000, 276.71, 277.26, 281.62, 272.65, 10673.258827023461],\n                     [1562043600000, 280.02022806, 276.72, 281, 276, 14754.55885075738],\n                     [1562040000000, 289.52, 279.98, 290.39, 276.89, 19589.646887363895],\n                     [1562036400000, 288.11915505, 289.36, 289.56, 287.12, 2594.236725234793],\n                     [1562032800000, 288.36, 288.12, 290.27, 288.03737519, 2113.392561646159],\n                     [1562029200000, 291.56, 288.54, 293.62, 287.67, 4280.869320562249],\n                     [1562025600000, 295.58, 291.57, 299.03, 291.5, 9724.069906459914],\n                     [1562022000000, 291.46, 295.5, 297.63, 291.14563128, 3326.014683487564],\n                     [1562018400000, 293.23, 291.48, 293.27, 290.31, 2825.932836906471],\n                     [1562014800000, 290.82, 293.16, 294.84, 290.82, 3624.675055477975],\n                     [1562011200000, 284.1958989, 290.71, 292.60889172, 284.19, 9283.234425758577],\n                     [1562007600000, 287.16412032, 284.19, 287.16412032, 281, 9898.438534180406],\n                     [1562004000000, 284.74, 287.13646584, 287.73730521, 283.37, 4609.520316230599],\n                     [1562000400000, 285.35, 284.63, 287.32, 282.62, 4262.964841343437],\n                     [1561996800000, 286.42, 285.34, 289.7, 284.35, 6026.798068132093],\n                     [1561993200000, 283.07, 286.53, 288.97, 281.5, 19890.7333485207],\n                     [1561989600000, 287.19, 283, 290.73, 282.11, 10775.289206436404],\n                     [1561986000000, 290.53, 287.27, 291.36, 287.27, 5988.2673219081835],\n                     [1561982400000, 295.99, 290.14, 297, 285.94, 14393.420665222136],\n                     [1561978800000, 296.71, 295.99, 296.99, 294.27, 3022.437726040742],\n                     [1561975200000, 298.88, 296.44, 299.89, 295, 2914.369670844062],\n                     [1561971600000, 299.68, 298.99, 300, 298, 2434.092485884046],\n                     [1561968000000, 294.95, 299.61, 299.71, 294.55, 4129.501441153225],\n                     [1561964400000, 294.85, 294.99, 297.6, 292.53, 3179.141134059615],\n                     [1561960800000, 296.71, 294.79, 297.81, 293.85, 2030.232937491254],\n                     [1561957200000, 299.17, 296.37, 299.84, 295.33, 4583.326442799895],\n                     [1561953600000, 299.16, 299.15, 300.34675801, 296.84, 1340.536547968204],\n                     [1561950000000, 298.04, 299.15, 302.47, 296.79794148, 4481.327509019943],\n                     [1561946400000, 295.07, 297.87, 299, 293.01, 4146.47421846737],\n                     [1561942800000, 295.76, 295.2, 299, 294.2, 3514.497280984894],\n                     [1561939200000, 290.8, 295.76, 295.76, 287.64, 6015.255764906366],\n                     [1561935600000, 294.48, 290.8, 296.16, 286.76, 5990.069935593896],\n                     [1561932000000, 300.44, 294.91, 300.56, 290, 7864.607478509145],\n                     [1561928400000, 304.54, 300.4, 304.54, 300, 1669.727407244795],\n                     [1561924800000, 302.54, 304.54, 305, 300.62411886, 3668.470019759599],\n                     [1561921200000, 300.24, 302.24, 303.51, 300, 1249.78729430409],\n                     [1561917600000, 303.11, 300.24, 303.67, 300.19, 1402.14949066398],\n                     [1561914000000, 303, 303.02, 304, 299.6, 8427.135278875787],\n                     [1561910400000, 296.58, 302.92, 303.67486655, 291, 13365.898945020235],\n                     [1561906800000, 297.59, 296.86, 298.33, 296.49, 3524.350252865675],\n                     [1561903200000, 295.89808766, 297.58, 298.29, 290, 16392.298974169862],\n                     [1561899600000, 304.5, 295.77, 304.94, 293.29, 13131.5588943672],\n                     [1561896000000, 302.68, 304.61, 305, 301.37633559, 7268.573793544172],\n                     [1561892400000, 303.6, 302.68, 305.21, 301.02, 7720.337907777976],\n                     [1561888800000, 310.13, 303.75, 311.27, 300.96, 19264.505667414916],\n                     [1561885200000, 310.38, 310.8, 312.1, 307.74, 2177.268020692446],\n                     [1561881600000, 308.9, 310.12, 311.36497, 307.5, 3345.968776795459],\n                     [1561878000000, 315.93, 308.91, 315.94, 307.28, 7649.354628821737],\n                     [1561874400000, 317.85696037, 315.92, 319, 315.29, 2969.739183026164],\n                     [1561870800000, 319.0138534, 317.78, 320.02, 314.18, 8905.35294393954],\n                     [1561867200000, 318.7, 318.90263416, 320, 318, 1233.469369819015],\n                     [1561863600000, 319.63, 318.7, 320.61, 317.35582428, 4149.1751190772075],\n                     [1561860000000, 321.79, 319.51, 321.99133319, 318.93, 2918.454756374003],\n                     [1561856400000, 323.88, 321.78, 324.44, 318.98, 4319.855207353936],\n                     [1561852800000, 317.78117349, 323.74, 324.45, 317.61, 7595.240542933092],\n                     [1561849200000, 314.76, 317.42, 325.12, 314.6, 15141.694645117828],\n                     [1561845600000, 310.96, 314.76, 315.67, 310.96, 3706.236546962641],\n                     [1561842000000, 312.64, 310.95, 314.4, 308.77, 4081.050972364217]][:: -1]\n# bearish engulfing\ntest_candles_8 = [\n\n                     [1563469200000, 223.69, 223.9, 226.06, 223, 3701.0898429100002],\n                     [1563465600000, 224.07, 223.58, 226.49, 220.95, 10365.05452214],\n                     [1563462000000, 223.91, 224.12, 224.8, 220.91013134, 15568.55307694],\n                     [1563458400000, 208.24781644, 223.97, 225, 205.61175816, 34916.6862513],\n                     [1563454800000, 208.88, 208.07958522, 211.16, 206.62, 6415.48749266],\n                     [1563451200000, 215.15, 209.09, 215.33, 207.71, 17272.66964631],\n                     [1563447600000, 216.28, 215.3, 217.18, 213.89, 4387.75932178],\n                     [1563444000000, 214.43, 216.02, 218.16, 214.07, 2643.71315714],\n                     [1563440400000, 213.32, 214.43, 216.07, 212.64, 3487.90559533],\n                     [1563436800000, 215.83, 213.24, 216.84, 213.1, 3836.32805392],\n                     [1563433200000, 219.07, 216.02, 219.17, 215.33187154, 5185.44340326],\n                     [1563429600000, 217.56, 219.03, 221.82, 216.13, 8881.05898017],\n                     [1563426000000, 218.36, 217.54, 218.8304796, 216.16, 3523.42450088],\n                     [1563422400000, 212.17, 217.92, 219.02, 211.00270983, 6332.92496199],\n                     [1563418800000, 213.13, 212.06, 213.52, 210, 4010.0325571099997],\n                     [1563415200000, 212.7, 213.13, 213.53, 210.9, 2475.13115958],\n                     [1563411600000, 208.53, 212.77, 214.31, 208.53, 5739.5236321],\n                     [1563408000000, 211.12544722, 208.75515447, 211.24, 206.61617064, 5687.91179254],\n                     [1563404400000, 211.18, 211.06, 211.97, 209.39, 3903.5852541],\n                     [1563400800000, 213.83, 211.21, 215.78, 210.65, 5217.93338459],\n                     [1563397200000, 212.53, 214.03, 217.56, 211.75, 4969.76287031],\n                     [1563393600000, 211.56, 212.355192, 213.91, 209, 7392.36780664],\n                     [1563390000000, 215.58, 211.34, 216.11, 210.49, 6398.55009345],\n                     [1563386400000, 215.77, 215.65, 217.38, 213.12, 6530.47907227],\n                     [1563382800000, 213.8, 215.45, 219.46880776, 210.39573393, 10537.076849089999],\n                     [1563379200000, 212.72, 213.72, 218.81674136, 211.92, 20028.29613262],\n                     [1563375600000, 212.48, 212.72, 215.29999439, 210.0378214, 14268.87912574],\n                     [1563372000000, 204.04, 212.47, 213.24, 204.04, 17403.12827052],\n                     [1563368400000, 202.48, 204.04, 204.04, 200.79510684, 5207.83373986],\n                     [1563364800000, 196.17, 202.52, 203.72, 193.84, 17816.7678066],\n                     [1563361200000, 199.28, 195.96, 200.72914914, 191.6, 21424.63231793],\n                     [1563357600000, 201.95, 199.37, 201.95, 197.25, 8888.63532104],\n                     [1563354000000, 203.46, 202.1, 204.22, 201.38, 2760.70455357],\n                     [1563350400000, 203.62, 203.48, 205.39, 202.17, 7129.79299749],\n                     [1563346800000, 201.74853968, 203.77, 204.12, 199.54, 5792.44449367],\n                     [1563343200000, 201.71, 201.88, 203.04198656, 200.64, 4388.5427789],\n                     [1563339600000, 198.02, 201.72, 201.99, 197.99, 2681.91174694],\n                     [1563336000000, 197.7, 198.08, 200.05, 196.36, 5522.50915903],\n                     [1563332400000, 196.56, 197.64, 199.32, 196.56, 9666.81279461],\n                     [1563328800000, 199.48, 196.56, 199.56, 194, 14392.55764177],\n                     [1563325200000, 199.65, 199.65, 200.66, 198.7, 1970.29401251],\n                     [1563321600000, 198.67, 199.66, 203.22, 198.63, 3907.50782995],\n                     [1563318000000, 200.1, 198.57, 200.62, 195.27365329, 7863.71696862],\n                     [1563314400000, 203.89557716, 199.87599598, 204.32, 198.33, 5300.03287853],\n                     [1563310800000, 202.35, 204.15, 206.57, 198.17, 10144.6887272],\n                     [1563307200000, 203.88, 202.36, 207.62, 202.13, 8640.11964383],\n                     [1563303600000, 197.7245928, 203.87722992, 204.07, 197.51, 9538.5236756],\n                     [1563300000000, 198.75, 197.69, 201.98, 196.77178276, 24200.16420442],\n                     [1563296400000, 205.71, 198.74, 205.71, 191, 127843.9837017],\n                     [1563292800000, 220, 205.55, 220, 205.2, 41450.56297812],\n                     [1563289200000, 216.5, 220, 222.25, 216.10500471, 6545.84664981],\n                     [1563285600000, 214.74, 216.5, 218.05, 214.57, 6264.41270439],\n                     [1563282000000, 218.67, 214.87, 219.18, 211.75488018, 22447.35672087],\n                     [1563278400000, 223.46, 218.32, 224.0424498, 216, 8559.598902060001],\n                     [1563274800000, 224.22, 223.56534195, 225.9, 220.6, 4469.71039747],\n                     [1563271200000, 224.81, 224.22, 225.8, 223.22, 2094.04191476],\n                     [1563267600000, 227.5, 224.71, 228.58, 224.41, 4914.98260973],\n                     [1563264000000, 225.51, 227.51, 228.1, 223.28, 5868.17264851],\n                     [1563260400000, 227, 225.55, 227.3, 222.23, 5361.33693828],\n                     [1563256800000, 227.84, 226.92, 228.47, 226.59, 1170.50350414],\n                     [1563253200000, 227.47, 228.01, 228.75, 226.28, 1223.39088588],\n                     [1563249600000, 226.76, 227.71, 228.58, 224.64722863, 3378.12977919],\n                     [1563246000000, 227.92, 226.89, 229.42, 225.32, 2371.01569184],\n                     [1563242400000, 231.2, 227.9, 231.2, 226.57, 2437.58695594],\n                     [1563238800000, 231.92, 231.14, 233.79, 229.92, 1297.25666676],\n                     [1563235200000, 227.59, 231.8020434, 231.98, 227.38, 2448.51931651],\n                     [1563231600000, 232.81, 227.71011669, 234.26, 227.13, 37754.22695209],\n                     [1563228000000, 227.1, 232.91, 234.32, 227.1, 8523.70477522],\n                     [1563224400000, 230.85, 227.37, 232, 226.85, 2012.7743422],\n                     [1563220800000, 232.35, 230.44, 233.85, 229.44, 6087.20612457],\n                     [1563217200000, 234.33, 232.35953226, 234.33, 230.25, 3122.14189255],\n                     [1563213600000, 226.52, 234.32, 234.77, 223, 22566.2296908],\n                     [1563210000000, 232.83, 226.54, 232.94, 226.54, 2442.7887045],\n                     [1563206400000, 229.7, 232.71, 233.79, 226.99, 12688.02910296],\n                     [1563202800000, 229.67, 229.82532, 230.97, 226.71, 6545.15274081],\n                     [1563199200000, 226.17, 229.66, 231.24, 225.97, 12829.9598567],\n                     [1563195600000, 220.44, 226.14, 226.65, 220.25, 3877.69399646],\n                     [1563192000000, 226.75, 220.74, 227.02, 220.37, 4559.36685281],\n                     [1563188400000, 225.67, 226.75, 228.64, 225.39, 2984.32722891],\n                     [1563184800000, 226.44, 225.69, 228.37, 224.60208759, 4642.15254938],\n                     [1563181200000, 223.6, 226.44, 227.53, 221.59, 6618.83064943],\n                     [1563177600000, 226.86, 223.69, 227, 222.76, 7608.41857896],\n                     [1563174000000, 221.3, 226.85, 227.81, 221.3, 7276.39953278],\n                     [1563170400000, 221.5, 221.12, 222.35, 218.05, 4673.76405141],\n                     [1563166800000, 220.76560613, 221.49, 222.07, 218.1, 10053.02025771],\n                     [1563163200000, 222.3, 220.41, 224.51, 220.41, 6226.92714434],\n                     [1563159600000, 217.83, 222.32, 225.24, 216.6, 10936.28885093],\n                     [1563156000000, 216.06, 217.85, 217.97, 213.13, 6981.10848735],\n                     [1563152400000, 211.32, 216.09, 218.75, 211.2, 12228.24412955],\n                     [1563148800000, 225.99, 211.32, 227, 202.81, 87729.89162168],\n                     [1563145200000, 236.06, 226.19, 236.07, 222.58, 21776.9816644],\n                     [1563141600000, 239.7, 236.22, 240.05, 235.93, 1190.23330269],\n                     [1563138000000, 237.12, 239.7, 239.72, 236, 2014.05452863],\n                     [1563134400000, 235.11, 237.13, 238.69898908, 233.03, 4881.68623203],\n                     [1563130800000, 235.04604075, 235.22806228, 235.4, 232.29, 9648.95393923],\n                     [1563127200000, 237.95, 234.86, 238.2, 231.88, 12735.02170402],\n                     [1563123600000, 237.69, 237.97, 239.5, 236.9, 5156.44663803],\n                     [1563120000000, 233.89, 237.7, 238.75266075, 232.16150157, 10058.33179271],\n                     [1563116400000, 237.38, 233.9, 238.1, 229.2, 16747.69942655],\n                     [1563112800000, 238, 237.53, 239.35164531, 235.27685427, 5234.81743577],\n                     [1563109200000, 238.40053185, 238.38, 242.09, 235.05, 9355.15365776],\n                     [1563105600000, 242.54, 238.2985998, 243.14, 235.34457933, 15046.84375748],\n                     [1563102000000, 243.35, 242.59, 245.7855259, 239.11, 17940.08331454],\n                     [1563098400000, 240.43524625, 243.41, 245.94, 239.14, 24226.76220061],\n                     [1563094800000, 263.46176624, 240.55, 264.52, 237.59079378, 40129.34386874],\n                     [1563091200000, 264.71, 263.46, 266.42, 263.46, 7938.85503038],\n                     [1563087600000, 265.92, 264.75, 265.92, 264.37, 4299.96684613],\n                     [1563084000000, 265.56, 265.89, 267.06248187, 265.56, 580.69369929],\n                     [1563080400000, 264.74, 265.54, 266.21, 264.74, 2103.93545121],\n                     [1563076800000, 266.8, 264.68, 267.15, 264.36, 1308.21431536],\n                     [1563073200000, 267.63, 267.4, 268.11, 266.81, 1273.3054462],\n                     [1563069600000, 267.92, 267.63, 268.3, 267.32, 1174.1093523],\n                     [1563066000000, 266.7, 267.71, 268.5, 266.32, 955.60947874],\n                     [1563062400000, 268.07, 267.16, 268.59, 266.6, 1061.12523646],\n                     [1563058800000, 265.82, 268.07, 268.86, 265.82, 1065.19226083],\n                     [1563055200000, 262.44, 265.72, 268, 262.37, 6014.05762993],\n                     [1563051600000, 264.05, 262.45, 264.05, 260.69, 7910.65423616],\n                     [1563048000000, 266.45, 264.05, 266.56, 262, 5877.43229383],\n                     [1563044400000, 265.45, 266.52, 267.2, 264.01, 5239.78444011],\n                     [1563040800000, 268.38, 265.42, 268.38, 264.82, 1870.89658927],\n                     [1563037200000, 268.19, 268.38, 269.7492705, 267.45, 598.34469654],\n                     [1563033600000, 269.80534675, 268.32, 271.23, 267.67, 658.94602031],\n                     [1563030000000, 268.3, 269.78, 270.32, 267.62, 724.42686616],\n                     [1563026400000, 268.96, 268.52, 270.31, 267.66, 869.52669645],\n                     [1563022800000, 266.8, 268.96, 271.28, 266.42, 2992.45024997],\n                     [1563019200000, 266.28, 266.84, 267.8, 265.3, 1905.15368827],\n                     [1563015600000, 267.65, 266.29, 268.31539546, 264.43, 4200.87555791],\n                     [1563012000000, 270.43, 267.66, 270.54, 266.62, 4846.7472035],\n                     [1563008400000, 270.23, 270.64, 271.29, 270.1, 1020.84338845],\n                     [1563004800000, 268.42, 270.19, 271.14856042, 268.42, 1466.78152435],\n                     [1563001200000, 269.86, 268.43, 271.27, 268.21, 1861.96934603],\n                     [1562997600000, 271.49, 269.87, 271.53, 268.98, 3008.2974055],\n                     [1562994000000, 271.54, 271.46, 272.1400404, 270.91, 732.86711976],\n                     [1562990400000, 271.43, 271.49, 272.49177408, 270.27, 1034.35059105],\n                     [1562986800000, 273.12, 271.56, 273.12, 270.75, 1466.42330146],\n                     [1562983200000, 273.59, 273.2, 273.79, 273.04, 981.50556581],\n                     [1562979600000, 274.15, 273.87, 274.15, 272.69, 968.36797967],\n                     [1562976000000, 274.87, 274.16, 274.97, 273.82, 773.2156025099999],\n                     [1562972400000, 273.79, 274.73, 276.07, 273.79, 692.96761051],\n                     [1562968800000, 275.03, 273.79, 275.34, 273.68, 857.72151909],\n                     [1562965200000, 276.53080785, 275.02, 276.73, 274.65, 1928.68827263],\n                     [1562961600000, 273.85, 276.25069102, 277.8, 273.85, 2351.88721604],\n                     [1562958000000, 273.63, 273.85, 274.03, 272.11, 392.36163836000003],\n                     [1562954400000, 273.93, 273.62, 275.02, 272.56, 691.66924233],\n                     [1562950800000, 272.5, 273.89, 274.43, 272.33, 1114.11657856],\n                     [1562947200000, 271.2, 272.5, 274.97, 269.8, 2120.56304791],\n                     [1562943600000, 272.17, 271.2, 272.52, 269.69, 3410.79033088],\n                     [1562940000000, 274.25, 272.37, 275.11563446, 270.58, 1844.26650686],\n                     [1562936400000, 275, 274.7, 276, 274.11, 1262.88202947],\n                     [1562932800000, 275.9, 275, 276.12, 272.34, 1465.51940463],\n                     [1562929200000, 275.82, 276.01, 276.65, 275.13, 1402.96095779],\n                     [1562925600000, 277.16, 275.77, 279.02, 275.1, 3649.63438567],\n                     [1562922000000, 274.44928271, 277.15, 277.57, 274.44928271, 1914.9877140199999],\n                     [1562918400000, 272.86, 274.44, 276, 272.17101267, 1743.45790487],\n                     [1562914800000, 271, 272.82, 274, 271, 2508.26415298],\n                     [1562911200000, 269.76, 270.99886245, 271, 269.4, 1400.85335515],\n                     [1562907600000, 270.36, 270, 271.19, 268.69, 1456.38051068],\n                     [1562904000000, 267.91, 270.45, 270.5, 266.65, 2753.8319505],\n                     [1562900400000, 271.63, 267.81, 271.73013242, 266.5, 1108.72615883],\n                     [1562896800000, 270.66, 271.49, 271.67, 270.04, 563.86397965],\n                     [1562893200000, 272.1, 270.56, 272.3, 269.72, 1037.58987099],\n                     [1562889600000, 268.54, 272.12, 274.31, 266.28, 4374.35472837],\n                     [1562886000000, 267.206918, 268.38, 268.87, 265.36, 1591.00960977],\n                     [1562882400000, 269.5, 267.2, 269.79, 267.2, 2402.70295938],\n                     [1562878800000, 266.48, 269.5, 269.98, 264.61, 8122.81488256],\n                     [1562875200000, 272.95, 266.71, 273.43, 263.15, 13866.05079188],\n                     [1562871600000, 272.98, 273, 273.98, 271.56, 1646.30402394],\n                     [1562868000000, 273.13, 273, 274.07, 272.26, 1207.4900576],\n                     [1562864400000, 272.7, 273.16, 274.06, 272.03, 856.88133369],\n                     [1562860800000, 268.35, 272.71, 275.75, 266, 5432.9617073],\n                     [1562857200000, 271.78, 268.54, 273.2, 266.33, 8376.43635478],\n                     [1562853600000, 273.29, 271.75, 273.98, 270.8, 1092.00857411],\n                     [1562850000000, 273.42518799, 273.29, 273.57, 273.29, 29.119999999999997],\n                     [1562846400000, 272.75, 273.55, 273.7, 272.74, 147.719589468779],\n                     [1562842800000, 270.32, 273, 273.43, 269.49, 4350.097363109913],\n                     [1562839200000, 272, 270.32, 272.13, 267.16722571, 4429.895435283791],\n                     [1562835600000, 270.76, 271.95, 272.58, 269.87, 3526.870340604311],\n                     [1562832000000, 273.39, 270.23, 273.65, 269.25, 4355.892994257641],\n                     [1562828400000, 273, 273.39, 273.7, 269.76, 5435.388910786666],\n                     [1562824800000, 269.69857208, 272.99, 273, 268.45, 9293.003230382157],\n                     [1562821200000, 268.9, 269.7, 271.19, 265.1231495, 6885.257989332237],\n                     [1562817600000, 282.52, 268.69, 283.16, 261.1, 42679.606731794964],\n                     [1562814000000, 286.4, 282.67, 286.91, 281.14464827, 4021.486526044806],\n                     [1562810400000, 285.28, 286.4, 286.4, 284.7, 1664.31045633],\n                     [1562806800000, 284.69, 285.27, 286.8, 283.05, 1918.449225612223],\n                     [1562803200000, 288.72, 284.32, 288.72, 281, 14227.522409429108],\n                     [1562799600000, 289.02, 288.7123753, 289.29, 287.53, 1905.131484584028],\n                     [1562796000000, 288.2, 289.25, 289.83, 285.94101743, 4688.233106279797],\n                     [1562792400000, 287.2289761, 288.15, 289.98, 283.44, 4287.238780774077],\n                     [1562788800000, 287.53732932, 287.8, 288.4, 283, 8434.842426938938],\n                     [1562785200000, 285.14, 287.53, 289.9, 284.04, 4582.884122169536],\n                     [1562781600000, 287.88, 285.19, 287.88, 285.19, 2045.005585906531],\n                     [1562778000000, 285.27, 287.88, 288, 283, 6724.105337907423],\n                     [1562774400000, 287.95, 285.29, 290.26, 282.45, 9445.387495208968],\n                     [1562770800000, 292.42, 287.89, 292.42, 278.86, 33093.03829545517],\n                     [1562767200000, 308.58, 292.56, 309.42837354, 292.42358636, 23760.322484528253],\n                     [1562763600000, 309.2, 308.64, 310.79, 308.53, 2053.708602726572],\n                     [1562760000000, 308.24, 309.1, 309.29, 307, 3328.76203315642],\n                     [1562756400000, 309.37, 308.26, 311.13055179, 307.69, 4266.791341042448],\n                     [1562752800000, 308.69, 309.19123583, 310.06, 308.47, 1434.759175320263],\n                     [1562749200000, 310, 308.69314505, 310.75, 308.09, 2379.56163487],\n                     [1562745600000, 307.38, 310.01, 310.01, 307.3, 5571.63076276],\n                     [1562742000000, 309.08, 307.36, 309.35, 307, 2651.983805569236],\n                     [1562738400000, 311.1, 309.08, 311.24, 308.71, 2438.319950194904],\n                     [1562734800000, 310.89, 311.01, 311.93, 309.92, 1679.397261035737],\n                     [1562731200000, 311, 310.89, 312.11, 309.57, 1518.773729830795],\n                     [1562727600000, 313.87744005, 311.01, 314.95, 310.92, 4285.195887648143],\n                     [1562724000000, 311.09, 313.84, 316.5, 311.09, 8238.439359985881],\n                     [1562720400000, 312.37, 311.09, 312.63, 311.02, 2025.500169317997],\n                     [1562716800000, 307.84, 312.14, 312.99, 306.83576651, 5029.884456235246],\n                     [1562713200000, 307.99, 307.86, 309.5, 307.74, 4979.490265305564],\n                     [1562709600000, 307.3, 307.98, 308.4, 306.31, 1537.726808036944],\n                     [1562706000000, 304.32, 307.31, 308.85, 303.6, 3087.743531870378],\n                     [1562702400000, 307.47, 304.49, 307.47443755, 302.69, 8826.03019463428],\n                     [1562698800000, 309.85, 307.47, 310.27, 303.87, 6024.642643890162],\n                     [1562695200000, 310.16, 309.95, 311.18, 309.43, 1555.115880626991],\n                     [1562691600000, 309.73, 310.15, 310.82, 309.3, 1060.835790230649],\n                     [1562688000000, 309.2, 309.73, 311.39, 309.15, 3512.422936729986],\n                     [1562684400000, 308.61, 309.25, 310.04, 307.2, 6242.006184755826],\n                     [1562680800000, 311.42837933, 308.61, 312.91, 308.1, 1490.053976155575],\n                     [1562677200000, 312.45, 311.42, 312.95, 309.96, 1510.358829083802],\n                     [1562673600000, 311.23, 312.15, 312.45, 311, 944.269826057191],\n                     [1562670000000, 311.03, 311.36, 312.38, 310.52, 2771.864422217986],\n                     [1562666400000, 314.21, 311.13, 314.33, 309.2, 8377.293054594798],\n                     [1562662800000, 313.12, 314.37, 315.01, 312.23, 3523.150152304516],\n                     [1562659200000, 311.77, 313.11, 313.63, 311.52, 2207.501554149047],\n                     [1562655600000, 317.04, 311.64, 317.64, 308.12, 12835.127990831676],\n                     [1562652000000, 315.44, 317.15, 318, 315.17, 3189.195538084219],\n                     [1562648400000, 315.77, 315.45, 316, 314.67, 2623.545609008255],\n                     [1562644800000, 315.11, 315.58, 316.27, 313.99, 3967.657216876321],\n                     [1562641200000, 316.2, 315.11, 317.08, 313.81, 2877.978264704368],\n                     [1562637600000, 314.07, 316.2, 318.3, 313.97, 4705.735242022388],\n                     [1562634000000, 311.24, 313.61, 314.04, 311.05, 2272.139619402471],\n                     [1562630400000, 313.44, 311.14, 313.45, 311, 5077.143931391396],\n                     [1562626800000, 313.86, 313.39, 315.22, 312.75, 7440.887001256283],\n                     [1562623200000, 312.26, 313.9, 315.27, 311.15, 15903.89506614883],\n                     [1562619600000, 310.71, 312.26, 312.4, 310.7, 3418.441962636784],\n                     [1562616000000, 310.41, 310.72, 313.14, 308.17, 6321.345249032818],\n                     [1562612400000, 306.75, 310.34, 311.49, 306.5, 9476.429378268744],\n                     [1562608800000, 307.98, 306.86424496, 308.04, 306.13, 3198.588288339354],\n                     [1562605200000, 308.4, 307.95, 309.38, 306.86, 3140.925262098901],\n                     [1562601600000, 309.1, 308.68, 310.44, 306.07, 4902.757898499353],\n                     [1562598000000, 309.05, 309.03, 310, 307.27, 2075.43897934913],\n                     [1562594400000, 308.89, 308.9, 309.72, 307.88, 1697.932856982219],\n                     [1562590800000, 306.80865745, 308.87, 309.76859433, 305.88, 3096.126254119655],\n                     [1562587200000, 308.04, 306.8, 308.65, 305.41, 4784.691250024502],\n                     [1562583600000, 309.69, 308.07, 309.69, 307.55, 3495.216317482407],\n                     [1562580000000, 310.4, 309.69, 310.93, 308.9, 4818.125473502093],\n                     [1562576400000, 310.25, 310.56, 312.53, 308.93, 11586.306329998713],\n                     [1562572800000, 308.73, 310.10790143, 310.25, 304.96, 6713.926560244871],\n                     [1562569200000, 305.53, 308.79291566, 310.25, 305.3, 2741.828531506003],\n                     [1562565600000, 305.23, 305.52, 305.73, 304.22, 1894.358993215844],\n                     [1562562000000, 305.98, 305.18, 305.98, 304.8, 1749.85131836],\n                     [1562558400000, 305.45, 305.98, 307.07, 305.33914098, 2639.120567093529],\n                     [1562554800000, 305.24, 305.51, 305.71, 303.87, 1057.494395242086],\n                     [1562551200000, 306.07, 305.08, 306.57, 304.98, 1146.38343246666],\n                     [1562547600000, 303.05, 306.13, 306.42, 302.8914127, 6306.38447504831],\n                     [1562544000000, 306.57, 303.04, 308.84170999, 302.54, 4721.12789480746],\n                     [1562540400000, 306.04, 306.54, 307.35502248, 305.5, 1067.835063383022],\n                     [1562536800000, 308.35, 306.31, 311, 304.7, 13673.18352032881],\n                     [1562533200000, 307, 308.16, 308.91, 306.49, 2941.86582170654],\n                     [1562529600000, 307.8, 307, 310.5, 305.53, 7662.342096172919],\n                     [1562526000000, 306.49538508, 307.8, 309.67, 305.11, 8616.637374768594],\n                     [1562522400000, 307.72, 306.49, 311, 305.25, 8827.038212224172],\n                     [1562518800000, 292.84, 307.7, 309.25, 292.8, 29297.561814110984],\n                     [1562515200000, 292.12, 292.76, 292.83, 290.70194636, 1819.168848554204],\n                     [1562511600000, 293.40327744, 292.15, 294.83, 290.72, 6648.869447326808],\n                     [1562508000000, 294.35, 293.40327744, 295.48, 293.40327744, 1065.935168519027],\n                     [1562504400000, 294.71245496, 294.35, 295.75, 294.13162268, 1540.194182712207],\n                     [1562500800000, 294.1, 294.71, 296.43, 293.82, 5246.088882291099],\n                     [1562497200000, 288.96, 294.17, 295.26, 288.6, 7202.535912994613],\n                     [1562493600000, 288.48, 288.97, 289.45920249, 288.13, 838.114483477825],\n                     [1562490000000, 288.17, 288.52, 289.08, 287.53, 1184.948148550061],\n                     [1562486400000, 288.72896052, 288.07, 288.72896052, 287.06, 2509.3587293022742],\n                     [1562482800000, 288.52, 288.65, 289.36, 288.05, 542.096866791271],\n                     [1562479200000, 288.9, 288.41, 289.16227984, 288.07, 480.550277505631],\n                     [1562475600000, 290, 288.91, 290.26, 288.31, 801.347458793652],\n                     [1562472000000, 288.29, 290, 290.20409012, 287.1, 1410.60203717],\n                     [1562468400000, 288.17, 288.28, 288.97, 286.77, 1175.191820008901],\n                     [1562464800000, 289.19, 288.12, 289.19, 287.15, 471.86966851],\n                     [1562461200000, 288.67, 289.27, 289.27, 287.81, 293.552434691153],\n                     [1562457600000, 288.61, 288.67364316, 289.23, 284.43, 3718.567536787268],\n                     [1562454000000, 287.9, 288.61, 288.79, 287.06, 1067.084013766703],\n                     [1562450400000, 288.53, 287.9, 289.13, 285.68, 2284.956483378572],\n                     [1562446800000, 293.1, 288.74, 293.11, 286.2, 7985.216836761654],\n                     [1562443200000, 293.15, 293.1, 294.5, 292.57, 2504.259535682406],\n                     [1562439600000, 293.20966668, 293.36, 293.8273772, 291.2, 1607.57042195],\n                     [1562436000000, 295.35, 293.37, 295.45, 293.16, 1912.579850616127],\n                     [1562432400000, 295.4, 295.01, 296, 294.37, 1856.778164505526],\n                     [1562428800000, 297.04, 295.58, 298.46, 295.05357868, 2731.352327521428],\n                     [1562425200000, 295.92, 296.97, 298.87, 295.71, 8431.926980094615],\n                     [1562421600000, 289.98, 295.91099776, 296.11, 289.44, 3353.321286088616],\n                     [1562418000000, 291.2, 289.97, 291.2, 289.48, 2170.08622002123],\n                     [1562414400000, 291.65, 291.24, 292, 289.34, 7419.539710627652],\n                     [1562410800000, 291.2, 291.43, 291.7, 290.91, 1634.089795559867],\n                     [1562407200000, 291.61, 291.2, 292.06491935, 290.69, 1250.69550421],\n                     [1562403600000, 291.45, 291.61, 292.14, 290.2, 994.351219206948],\n                     [1562400000000, 293.69, 291.47, 295.02, 290.71, 2705.795384536361],\n                     [1562396400000, 292.3, 293.65, 293.93, 291.79, 2536.443027858002],\n                     [1562392800000, 292.77, 292.28, 294, 291.81782551, 2499.352283691533],\n                     [1562389200000, 293.3663992, 292.84, 294.86, 292.42, 5379.338087118942],\n                     [1562385600000, 294.02, 293.48, 295.01, 293.22, 4061.178200193957],\n                     [1562382000000, 292.7, 294.01, 294.04, 291.97, 624.698914792956],\n                     [1562378400000, 292.5, 292.7, 293.873197, 291.71, 269.808436258754],\n                     [1562374800000, 294.38, 292.5, 294.5, 291.54, 669.137261408786],\n                     [1562371200000, 288.01, 294.35, 294.73, 287.19043177, 3797.344533337384],\n                     [1562367600000, 288.44, 287.95, 289.36935018, 286.53, 508.43556896],\n                     [1562364000000, 288.94, 288.39, 290.25, 287.2, 1482.63164497],\n                     [1562360400000, 287.12, 289.09, 289.65967864, 287.11, 303.1515221],\n                     [1562356800000, 290.5, 287.14, 290.69, 285.44, 2604.052203779635],\n                     [1562353200000, 291.73, 290.5, 293.17, 290.11, 2095.951424334533],\n                     [1562349600000, 292, 291.8, 292.66, 290.65, 1116.00646606002],\n                     [1562346000000, 289.53, 292, 292.23, 288.61, 1889.726037959811],\n                     [1562342400000, 289.84, 289.73, 291.67, 288, 1334.6396874221],\n                     [1562338800000, 292.17, 289.86, 292.66, 287.55, 4350.823336440464],\n                     [1562335200000, 292.27, 292.07, 294.37, 291.03, 2072.396702199285],\n                     [1562331600000, 292, 292.3, 294, 292, 1250.95577689293],\n                     [1562328000000, 293.90895052, 292, 294.07, 291.31, 924.076135295769],\n                     [1562324400000, 294.05, 293.9, 294.6364036, 292.93, 1474.640759023059],\n                     [1562320800000, 290.54, 294.05, 295.27981785, 290.54, 2318.463007437298],\n                     [1562317200000, 285.23, 290.55, 293.66, 285.09, 7339.3052633891575],\n                     [1562313600000, 285.84, 285.44, 286.11, 283.33, 1656.517043869724],\n                     [1562310000000, 285.09, 285.83, 285.91, 283.62, 2247.662468226648],\n                     [1562306400000, 286.96, 285.14, 288.21, 284.37, 2720.031010737149],\n                     [1562302800000, 286.54710859, 286.96, 287.5, 286.1, 912.812622206888],\n                     [1562299200000, 285.89, 286.53, 286.54466995, 284.67575976, 455.04148099891097],\n                     [1562295600000, 284.55, 285.89, 286.51, 283.97, 645.348900826725],\n                     [1562292000000, 286.39101283, 284.42141091, 287, 284.42141091, 2076.021365526775],\n                     [1562288400000, 284.44061321, 286.39, 286.97, 282.97576328, 5804.788938862283],\n                     [1562284800000, 283.19, 284.63, 285.26587168, 281.25, 6256.370816017917],\n                     [1562281200000, 293.29, 283.19, 293.29, 280.25, 16377.409411154193],\n                     [1562277600000, 292.13571784, 293.29, 293.5, 292.06, 1534.8949945699999],\n                     [1562274000000, 292.72, 292.33, 293.28, 291.93, 1815.418630077157],\n                     [1562270400000, 294.85, 292.72, 294.85618273, 290.26, 5234.447749719316],\n                     [1562266800000, 294.46119033, 294.86, 294.9916087, 293.44, 536.489455314865],\n                     [1562263200000, 295.69534597, 294.6, 295.7, 294.03168804, 1253.422531605359],\n                     [1562259600000, 295.26394653, 295.69534597, 296.82, 295.2, 1771.946629164279],\n                     [1562256000000, 294.12, 295.12, 295.99, 292.98, 2456.761117287422],\n                     [1562252400000, 295.94, 294.1, 296.38, 294.1, 1472.175134890017],\n                     [1562248800000, 296.11, 295.9, 297.06678214, 294.75449937, 1079.397855417646],\n                     [1562245200000, 294.88, 296.06, 296.7, 294.88, 2043.731597803166],\n                     [1562241600000, 294.38, 294.76, 295.84, 294.13, 3403.428918912735],\n                     [1562238000000, 293.97623048, 294.36, 295.54, 292.6, 4776.616618130325],\n                     [1562234400000, 294.36, 293.84, 295.15, 291.85, 4345.65909118065],\n                     [1562230800000, 296.5, 294.29, 296.70506963, 293.97, 6287.811689638424],\n                     [1562227200000, 295.25, 296.52621167, 296.52621167, 294.27, 2027.720703198558],\n                     [1562223600000, 296.6, 295.33260675, 298.72, 295.33260675, 1841.062865236167],\n                     [1562220000000, 295.25, 296.59945698, 296.78, 295.22, 1713.616699976313],\n                     [1562216400000, 294.15, 295.21, 295.21, 293.88, 1481.679627925961],\n                     [1562212800000, 298.23, 294.21, 298.8, 292.34, 6302.928896565222],\n                     [1562209200000, 298.98, 298.14, 299.5, 296.64, 3471.619020927389],\n                     [1562205600000, 300.08, 298.98, 300.58, 298.86, 2337.578552373277],\n                     [1562202000000, 299.65, 300.07, 301.87, 299.3, 4787.890037830652],\n                     [1562198400000, 302.21901172, 299.64, 303.5, 299.01, 2283.8200593159722],\n                     [1562194800000, 300.56, 302.22, 303.40039444, 298.84, 6903.701603482515],\n                     [1562191200000, 295.02, 300.56, 302.5, 294.45, 10358.812733250203],\n                     [1562187600000, 294.03, 294.8, 295.43, 292.99, 815.166807523792],\n                     [1562184000000, 293.18, 294.03, 294.82, 292.29, 2722.748775037397],\n                     [1562180400000, 292.19, 293.02157821, 294.01, 291.60422283, 2016.180535833639],\n                     [1562176800000, 292.01, 292.17, 292.51, 290.14, 2798.315346315081],\n                     [1562173200000, 289.82, 292.05, 292.5, 289.78, 3256.475799249486],\n                     [1562169600000, 295.22, 289.83, 295.23, 289.83, 4633.125421719817],\n                     [1562166000000, 294.85, 295.3, 296.1, 293.75, 5128.432523696609],\n                     [1562162400000, 293.76, 294.9, 295.77789864, 292.24375238, 3402.3838107427678],\n                     [1562158800000, 295.33, 293.76, 296.11, 293.06, 3592.119337521333],\n                     [1562155200000, 292.42, 295.26, 295.34, 292.4, 1539.151026631249],\n                     [1562151600000, 294.97, 292.42, 295.23, 292.01, 3035.263751159769],\n                     [1562148000000, 294.59, 294.84, 296.2, 294.15482647, 2393.08693802853],\n                     [1562144400000, 291.96, 294.53, 294.9, 291.3, 3058.429872680864],\n                     [1562140800000, 294.82, 291.97, 295.71936269, 291.41, 7777.047083653257],\n                     [1562137200000, 297.98, 294.99, 298.13, 294.77, 3879.164247657985],\n                     [1562133600000, 298.88, 298.01, 299, 296.4, 1905.419723373114],\n                     [1562130000000, 297.47, 298.83, 301.75, 296.86829756, 15517.202153051325],\n                     [1562126400000, 295.909059, 297.68, 298, 295.909059, 4672.094582265891],\n                     [1562122800000, 293.79, 295.83, 297.17, 292.8, 6727.846224577526],\n                     [1562119200000, 297.01, 293.83, 297.37, 293.83, 5562.255507966701],\n                     [1562115600000, 296.08426276, 297.03877083, 298.86, 295.14, 8689.836974404941],\n                     [1562112000000, 292.71336822, 296.08, 296.12, 292.71336822, 9791.992199128887],\n                     [1562108400000, 292.92, 292.93594278, 295.07, 290.31, 8204.260699380968],\n                     [1562104800000, 289.2, 292.91, 294.24, 288.72, 2874.387442211366],\n                     [1562101200000, 289.24, 289.2, 291.48, 286.55, 6074.786001840982],\n                     [1562097600000, 290.03, 289.24990237, 291.71, 289.24, 2996.274698720906],\n                     [1562094000000, 289.62, 290.03, 292.82, 288.53, 5139.476471784382],\n                     [1562090400000, 292.2, 289.61, 292.49270942, 286.86, 3612.602373276965],\n                     [1562086800000, 288.96, 292.15, 292.5, 288.58646844, 3683.910742053373],\n                     [1562083200000, 291.51, 288.87, 291.68, 286, 2293.264293835396],\n                     [1562079600000, 288.49, 291.78, 291.97, 286.72, 3158.949024633446],\n                     [1562076000000, 280.54, 288.43, 288.49, 280.53388884, 6643.733596030642],\n                     [1562072400000, 283.23, 280.53, 284.7, 279.5424026, 3788.119476784923],\n                     [1562068800000, 277.39, 283.22883141, 286, 276.52, 10690.176330464707],\n                     [1562065200000, 280.56, 277.39, 282.74, 273.95, 12576.920863204203],\n                     [1562061600000, 282.71, 280.22, 284.54, 278.44, 3531.041957319029],\n                     [1562058000000, 284.07, 282.7, 286.56, 281.78, 2857.612177088166],\n                     [1562054400000, 278.46, 283.95250067, 284.88, 276.76, 4168.077814438706],\n                     [1562050800000, 277.22, 278.87, 279.5, 277.17, 2115.062277665163],\n                     [1562047200000, 276.71, 277.26, 281.62, 272.65, 10673.258827023461],\n                     [1562043600000, 280.02022806, 276.72, 281, 276, 14754.55885075738],\n                     [1562040000000, 289.52, 279.98, 290.39, 276.89, 19589.646887363895],\n                     [1562036400000, 288.11915505, 289.36, 289.56, 287.12, 2594.236725234793],\n                     [1562032800000, 288.36, 288.12, 290.27, 288.03737519, 2113.392561646159],\n                     [1562029200000, 291.56, 288.54, 293.62, 287.67, 4280.869320562249],\n                     [1562025600000, 295.58, 291.57, 299.03, 291.5, 9724.069906459914],\n                     [1562022000000, 291.46, 295.5, 297.63, 291.14563128, 3326.014683487564],\n                     [1562018400000, 293.23, 291.48, 293.27, 290.31, 2825.932836906471],\n                     [1562014800000, 290.82, 293.16, 294.84, 290.82, 3624.675055477975],\n                     [1562011200000, 284.1958989, 290.71, 292.60889172, 284.19, 9283.234425758577],\n                     [1562007600000, 287.16412032, 284.19, 287.16412032, 281, 9898.438534180406],\n                     [1562004000000, 284.74, 287.13646584, 287.73730521, 283.37, 4609.520316230599],\n                     [1562000400000, 285.35, 284.63, 287.32, 282.62, 4262.964841343437],\n                     [1561996800000, 286.42, 285.34, 289.7, 284.35, 6026.798068132093],\n                     [1561993200000, 283.07, 286.53, 288.97, 281.5, 19890.7333485207],\n                     [1561989600000, 287.19, 283, 290.73, 282.11, 10775.289206436404],\n                     [1561986000000, 290.53, 287.27, 291.36, 287.27, 5988.2673219081835],\n                     [1561982400000, 295.99, 290.14, 297, 285.94, 14393.420665222136],\n                     [1561978800000, 296.71, 295.99, 296.99, 294.27, 3022.437726040742],\n                     [1561975200000, 298.88, 296.44, 299.89, 295, 2914.369670844062],\n                     [1561971600000, 299.68, 298.99, 300, 298, 2434.092485884046],\n                     [1561968000000, 294.95, 299.61, 299.71, 294.55, 4129.501441153225],\n                     [1561964400000, 294.85, 294.99, 297.6, 292.53, 3179.141134059615],\n                     [1561960800000, 296.71, 294.79, 297.81, 293.85, 2030.232937491254],\n                     [1561957200000, 299.17, 296.37, 299.84, 295.33, 4583.326442799895],\n                     [1561953600000, 299.16, 299.15, 300.34675801, 296.84, 1340.536547968204],\n                     [1561950000000, 298.04, 299.15, 302.47, 296.79794148, 4481.327509019943],\n                     [1561946400000, 295.07, 297.87, 299, 293.01, 4146.47421846737],\n                     [1561942800000, 295.76, 295.2, 299, 294.2, 3514.497280984894],\n                     [1561939200000, 290.8, 295.76, 295.76, 287.64, 6015.255764906366],\n                     [1561935600000, 294.48, 290.8, 296.16, 286.76, 5990.069935593896],\n                     [1561932000000, 300.44, 294.91, 300.56, 290, 7864.607478509145],\n                     [1561928400000, 304.54, 300.4, 304.54, 300, 1669.727407244795],\n                     [1561924800000, 302.54, 304.54, 305, 300.62411886, 3668.470019759599],\n                     [1561921200000, 300.24, 302.24, 303.51, 300, 1249.78729430409],\n                     [1561917600000, 303.11, 300.24, 303.67, 300.19, 1402.14949066398],\n                     [1561914000000, 303, 303.02, 304, 299.6, 8427.135278875787],\n                     [1561910400000, 296.58, 302.92, 303.67486655, 291, 13365.898945020235],\n                     [1561906800000, 297.59, 296.86, 298.33, 296.49, 3524.350252865675],\n                     [1561903200000, 295.89808766, 297.58, 298.29, 290, 16392.298974169862],\n                     [1561899600000, 304.5, 295.77, 304.94, 293.29, 13131.5588943672],\n                     [1561896000000, 302.68, 304.61, 305, 301.37633559, 7268.573793544172],\n                     [1561892400000, 303.6, 302.68, 305.21, 301.02, 7720.337907777976],\n                     [1561888800000, 310.13, 303.75, 311.27, 300.96, 19264.505667414916],\n                     [1561885200000, 310.38, 310.8, 312.1, 307.74, 2177.268020692446],\n                     [1561881600000, 308.9, 310.12, 311.36497, 307.5, 3345.968776795459],\n                     [1561878000000, 315.93, 308.91, 315.94, 307.28, 7649.354628821737],\n                     [1561874400000, 317.85696037, 315.92, 319, 315.29, 2969.739183026164],\n                     [1561870800000, 319.0138534, 317.78, 320.02, 314.18, 8905.35294393954],\n                     [1561867200000, 318.7, 318.90263416, 320, 318, 1233.469369819015],\n                     [1561863600000, 319.63, 318.7, 320.61, 317.35582428, 4149.1751190772075],\n                     [1561860000000, 321.79, 319.51, 321.99133319, 318.93, 2918.454756374003],\n                     [1561856400000, 323.88, 321.78, 324.44, 318.98, 4319.855207353936],\n                     [1561852800000, 317.78117349, 323.74, 324.45, 317.61, 7595.240542933092],\n                     [1561849200000, 314.76, 317.42, 325.12, 314.6, 15141.694645117828],\n                     [1561845600000, 310.96, 314.76, 315.67, 310.96, 3706.236546962641],\n                     [1561842000000, 312.64, 310.95, 314.4, 308.77, 4081.050972364217]][:: -1]\n# bullish engulfing\ntest_candles_9 = [\n                     [1563408000000, 211.12544722, 208.75515447, 211.24, 206.61617064,\n                      5687.91179254],\n                     [1563404400000, 211.18, 211.06, 211.97, 209.39, 3903.5852541],\n                     [1563400800000, 213.83, 211.21, 215.78, 210.65, 5217.93338459],\n                     [1563397200000, 212.53, 214.03, 217.56, 211.75, 4969.76287031],\n                     [1563393600000, 211.56, 212.355192, 213.91, 209, 7392.36780664],\n                     [1563390000000, 215.58, 211.34, 216.11, 210.49, 6398.55009345],\n                     [1563386400000, 215.77, 215.65, 217.38, 213.12, 6530.47907227],\n                     [1563382800000, 213.8, 215.45, 219.46880776, 210.39573393,\n                      10537.076849089999],\n                     [1563379200000, 212.72, 213.72, 218.81674136, 211.92, 20028.29613262],\n                     [1563375600000, 212.48, 212.72, 215.29999439, 210.0378214,\n                      14268.87912574],\n                     [1563372000000, 204.04, 212.47, 213.24, 204.04, 17403.12827052],\n                     [1563368400000, 202.48, 204.04, 204.04, 200.79510684, 5207.83373986],\n                     [1563364800000, 196.17, 202.52, 203.72, 193.84, 17816.7678066],\n                     [1563361200000, 199.28, 195.96, 200.72914914, 191.6, 21424.63231793],\n                     [1563357600000, 201.95, 199.37, 201.95, 197.25, 8888.63532104],\n                     [1563354000000, 203.46, 202.1, 204.22, 201.38, 2760.70455357],\n                     [1563350400000, 203.62, 203.48, 205.39, 202.17, 7129.79299749],\n                     [1563346800000, 201.74853968, 203.77, 204.12, 199.54, 5792.44449367],\n                     [1563343200000, 201.71, 201.88, 203.04198656, 200.64, 4388.5427789],\n                     [1563339600000, 198.02, 201.72, 201.99, 197.99, 2681.91174694],\n                     [1563336000000, 197.7, 198.08, 200.05, 196.36, 5522.50915903],\n                     [1563332400000, 196.56, 197.64, 199.32, 196.56, 9666.81279461],\n                     [1563328800000, 199.48, 196.56, 199.56, 194, 14392.55764177],\n                     [1563325200000, 199.65, 199.65, 200.66, 198.7, 1970.29401251],\n                     [1563321600000, 198.67, 199.66, 203.22, 198.63, 3907.50782995],\n                     [1563318000000, 200.1, 198.57, 200.62, 195.27365329, 7863.71696862],\n                     [1563314400000, 203.89557716, 199.87599598, 204.32, 198.33,\n                      5300.03287853],\n                     [1563310800000, 202.35, 204.15, 206.57, 198.17, 10144.6887272],\n                     [1563307200000, 203.88, 202.36, 207.62, 202.13, 8640.11964383],\n                     [1563303600000, 197.7245928, 203.87722992, 204.07, 197.51,\n                      9538.5236756],\n                     [1563300000000, 198.75, 197.69, 201.98, 196.77178276, 24200.16420442],\n                     [1563296400000, 205.71, 198.74, 205.71, 191, 127843.9837017],\n                     [1563292800000, 220, 205.55, 220, 205.2, 41450.56297812],\n                     [1563289200000, 216.5, 220, 222.25, 216.10500471, 6545.84664981],\n                     [1563285600000, 214.74, 216.5, 218.05, 214.57, 6264.41270439],\n                     [1563282000000, 218.67, 214.87, 219.18, 211.75488018, 22447.35672087],\n                     [1563278400000, 223.46, 218.32, 224.0424498, 216, 8559.598902060001],\n                     [1563274800000, 224.22, 223.56534195, 225.9, 220.6, 4469.71039747],\n                     [1563271200000, 224.81, 224.22, 225.8, 223.22, 2094.04191476],\n                     [1563267600000, 227.5, 224.71, 228.58, 224.41, 4914.98260973],\n                     [1563264000000, 225.51, 227.51, 228.1, 223.28, 5868.17264851],\n                     [1563260400000, 227, 225.55, 227.3, 222.23, 5361.33693828],\n                     [1563256800000, 227.84, 226.92, 228.47, 226.59, 1170.50350414],\n                     [1563253200000, 227.47, 228.01, 228.75, 226.28, 1223.39088588],\n                     [1563249600000, 226.76, 227.71, 228.58, 224.64722863, 3378.12977919],\n                     [1563246000000, 227.92, 226.89, 229.42, 225.32, 2371.01569184],\n                     [1563242400000, 231.2, 227.9, 231.2, 226.57, 2437.58695594],\n                     [1563238800000, 231.92, 231.14, 233.79, 229.92, 1297.25666676],\n                     [1563235200000, 227.59, 231.8020434, 231.98, 227.38, 2448.51931651],\n                     [1563231600000, 232.81, 227.71011669, 234.26, 227.13, 37754.22695209],\n                     [1563228000000, 227.1, 232.91, 234.32, 227.1, 8523.70477522],\n                     [1563224400000, 230.85, 227.37, 232, 226.85, 2012.7743422],\n                     [1563220800000, 232.35, 230.44, 233.85, 229.44, 6087.20612457],\n                     [1563217200000, 234.33, 232.35953226, 234.33, 230.25, 3122.14189255],\n                     [1563213600000, 226.52, 234.32, 234.77, 223, 22566.2296908],\n                     [1563210000000, 232.83, 226.54, 232.94, 226.54, 2442.7887045],\n                     [1563206400000, 229.7, 232.71, 233.79, 226.99, 12688.02910296],\n                     [1563202800000, 229.67, 229.82532, 230.97, 226.71, 6545.15274081],\n                     [1563199200000, 226.17, 229.66, 231.24, 225.97, 12829.9598567],\n                     [1563195600000, 220.44, 226.14, 226.65, 220.25, 3877.69399646],\n                     [1563192000000, 226.75, 220.74, 227.02, 220.37, 4559.36685281],\n                     [1563188400000, 225.67, 226.75, 228.64, 225.39, 2984.32722891],\n                     [1563184800000, 226.44, 225.69, 228.37, 224.60208759, 4642.15254938],\n                     [1563181200000, 223.6, 226.44, 227.53, 221.59, 6618.83064943],\n                     [1563177600000, 226.86, 223.69, 227, 222.76, 7608.41857896],\n                     [1563174000000, 221.3, 226.85, 227.81, 221.3, 7276.39953278],\n                     [1563170400000, 221.5, 221.12, 222.35, 218.05, 4673.76405141],\n                     [1563166800000, 220.76560613, 221.49, 222.07, 218.1, 10053.02025771],\n                     [1563163200000, 222.3, 220.41, 224.51, 220.41, 6226.92714434],\n                     [1563159600000, 217.83, 222.32, 225.24, 216.6, 10936.28885093],\n                     [1563156000000, 216.06, 217.85, 217.97, 213.13, 6981.10848735],\n                     [1563152400000, 211.32, 216.09, 218.75, 211.2, 12228.24412955],\n                     [1563148800000, 225.99, 211.32, 227, 202.81, 87729.89162168],\n                     [1563145200000, 236.06, 226.19, 236.07, 222.58, 21776.9816644],\n                     [1563141600000, 239.7, 236.22, 240.05, 235.93, 1190.23330269],\n                     [1563138000000, 237.12, 239.7, 239.72, 236, 2014.05452863],\n                     [1563134400000, 235.11, 237.13, 238.69898908, 233.03, 4881.68623203],\n                     [1563130800000, 235.04604075, 235.22806228, 235.4, 232.29,\n                      9648.95393923],\n                     [1563127200000, 237.95, 234.86, 238.2, 231.88, 12735.02170402],\n                     [1563123600000, 237.69, 237.97, 239.5, 236.9, 5156.44663803],\n                     [1563120000000, 233.89, 237.7, 238.75266075, 232.16150157,\n                      10058.33179271],\n                     [1563116400000, 237.38, 233.9, 238.1, 229.2, 16747.69942655],\n                     [1563112800000, 238, 237.53, 239.35164531, 235.27685427,\n                      5234.81743577],\n                     [1563109200000, 238.40053185, 238.38, 242.09, 235.05, 9355.15365776],\n                     [1563105600000, 242.54, 238.2985998, 243.14, 235.34457933,\n                      15046.84375748],\n                     [1563102000000, 243.35, 242.59, 245.7855259, 239.11, 17940.08331454],\n                     [1563098400000, 240.43524625, 243.41, 245.94, 239.14, 24226.76220061],\n                     [1563094800000, 263.46176624, 240.55, 264.52, 237.59079378,\n                      40129.34386874],\n                     [1563091200000, 264.71, 263.46, 266.42, 263.46, 7938.85503038],\n                     [1563087600000, 265.92, 264.75, 265.92, 264.37, 4299.96684613],\n                     [1563084000000, 265.56, 265.89, 267.06248187, 265.56, 580.69369929],\n                     [1563080400000, 264.74, 265.54, 266.21, 264.74, 2103.93545121],\n                     [1563076800000, 266.8, 264.68, 267.15, 264.36, 1308.21431536],\n                     [1563073200000, 267.63, 267.4, 268.11, 266.81, 1273.3054462],\n                     [1563069600000, 267.92, 267.63, 268.3, 267.32, 1174.1093523],\n                     [1563066000000, 266.7, 267.71, 268.5, 266.32, 955.60947874],\n                     [1563062400000, 268.07, 267.16, 268.59, 266.6, 1061.12523646],\n                     [1563058800000, 265.82, 268.07, 268.86, 265.82, 1065.19226083],\n                     [1563055200000, 262.44, 265.72, 268, 262.37, 6014.05762993],\n                     [1563051600000, 264.05, 262.45, 264.05, 260.69, 7910.65423616],\n                     [1563048000000, 266.45, 264.05, 266.56, 262, 5877.43229383],\n                     [1563044400000, 265.45, 266.52, 267.2, 264.01, 5239.78444011],\n                     [1563040800000, 268.38, 265.42, 268.38, 264.82, 1870.89658927],\n                     [1563037200000, 268.19, 268.38, 269.7492705, 267.45, 598.34469654],\n                     [1563033600000, 269.80534675, 268.32, 271.23, 267.67, 658.94602031],\n                     [1563030000000, 268.3, 269.78, 270.32, 267.62, 724.42686616],\n                     [1563026400000, 268.96, 268.52, 270.31, 267.66, 869.52669645],\n                     [1563022800000, 266.8, 268.96, 271.28, 266.42, 2992.45024997],\n                     [1563019200000, 266.28, 266.84, 267.8, 265.3, 1905.15368827],\n                     [1563015600000, 267.65, 266.29, 268.31539546, 264.43, 4200.87555791],\n                     [1563012000000, 270.43, 267.66, 270.54, 266.62, 4846.7472035],\n                     [1563008400000, 270.23, 270.64, 271.29, 270.1, 1020.84338845],\n                     [1563004800000, 268.42, 270.19, 271.14856042, 268.42, 1466.78152435],\n                     [1563001200000, 269.86, 268.43, 271.27, 268.21, 1861.96934603],\n                     [1562997600000, 271.49, 269.87, 271.53, 268.98, 3008.2974055],\n                     [1562994000000, 271.54, 271.46, 272.1400404, 270.91, 732.86711976],\n                     [1562990400000, 271.43, 271.49, 272.49177408, 270.27, 1034.35059105],\n                     [1562986800000, 273.12, 271.56, 273.12, 270.75, 1466.42330146],\n                     [1562983200000, 273.59, 273.2, 273.79, 273.04, 981.50556581],\n                     [1562979600000, 274.15, 273.87, 274.15, 272.69, 968.36797967],\n                     [1562976000000, 274.87, 274.16, 274.97, 273.82, 773.2156025099999],\n                     [1562972400000, 273.79, 274.73, 276.07, 273.79, 692.96761051],\n                     [1562968800000, 275.03, 273.79, 275.34, 273.68, 857.72151909],\n                     [1562965200000, 276.53080785, 275.02, 276.73, 274.65, 1928.68827263],\n                     [1562961600000, 273.85, 276.25069102, 277.8, 273.85, 2351.88721604],\n                     [1562958000000, 273.63, 273.85, 274.03, 272.11, 392.36163836000003],\n                     [1562954400000, 273.93, 273.62, 275.02, 272.56, 691.66924233],\n                     [1562950800000, 272.5, 273.89, 274.43, 272.33, 1114.11657856],\n                     [1562947200000, 271.2, 272.5, 274.97, 269.8, 2120.56304791],\n                     [1562943600000, 272.17, 271.2, 272.52, 269.69, 3410.79033088],\n                     [1562940000000, 274.25, 272.37, 275.11563446, 270.58, 1844.26650686],\n                     [1562936400000, 275, 274.7, 276, 274.11, 1262.88202947],\n                     [1562932800000, 275.9, 275, 276.12, 272.34, 1465.51940463],\n                     [1562929200000, 275.82, 276.01, 276.65, 275.13, 1402.96095779],\n                     [1562925600000, 277.16, 275.77, 279.02, 275.1, 3649.63438567],\n                     [1562922000000, 274.44928271, 277.15, 277.57, 274.44928271,\n                      1914.9877140199999],\n                     [1562918400000, 272.86, 274.44, 276, 272.17101267, 1743.45790487],\n                     [1562914800000, 271, 272.82, 274, 271, 2508.26415298],\n                     [1562911200000, 269.76, 270.99886245, 271, 269.4, 1400.85335515],\n                     [1562907600000, 270.36, 270, 271.19, 268.69, 1456.38051068],\n                     [1562904000000, 267.91, 270.45, 270.5, 266.65, 2753.8319505],\n                     [1562900400000, 271.63, 267.81, 271.73013242, 266.5, 1108.72615883],\n                     [1562896800000, 270.66, 271.49, 271.67, 270.04, 563.86397965],\n                     [1562893200000, 272.1, 270.56, 272.3, 269.72, 1037.58987099],\n                     [1562889600000, 268.54, 272.12, 274.31, 266.28, 4374.35472837],\n                     [1562886000000, 267.206918, 268.38, 268.87, 265.36, 1591.00960977],\n                     [1562882400000, 269.5, 267.2, 269.79, 267.2, 2402.70295938],\n                     [1562878800000, 266.48, 269.5, 269.98, 264.61, 8122.81488256],\n                     [1562875200000, 272.95, 266.71, 273.43, 263.15, 13866.05079188],\n                     [1562871600000, 272.98, 273, 273.98, 271.56, 1646.30402394],\n                     [1562868000000, 273.13, 273, 274.07, 272.26, 1207.4900576],\n                     [1562864400000, 272.7, 273.16, 274.06, 272.03, 856.88133369],\n                     [1562860800000, 268.35, 272.71, 275.75, 266, 5432.9617073],\n                     [1562857200000, 271.78, 268.54, 273.2, 266.33, 8376.43635478],\n                     [1562853600000, 273.29, 271.75, 273.98, 270.8, 1092.00857411],\n                     [1562850000000, 273.42518799, 273.29, 273.57, 273.29,\n                      29.119999999999997],\n                     [1562846400000, 272.75, 273.55, 273.7, 272.74, 147.719589468779],\n                     [1562842800000, 270.32, 273, 273.43, 269.49, 4350.097363109913],\n                     [1562839200000, 272, 270.32, 272.13, 267.16722571, 4429.895435283791],\n                     [1562835600000, 270.76, 271.95, 272.58, 269.87, 3526.870340604311],\n                     [1562832000000, 273.39, 270.23, 273.65, 269.25, 4355.892994257641],\n                     [1562828400000, 273, 273.39, 273.7, 269.76, 5435.388910786666],\n                     [1562824800000, 269.69857208, 272.99, 273, 268.45, 9293.003230382157],\n                     [1562821200000, 268.9, 269.7, 271.19, 265.1231495, 6885.257989332237],\n                     [1562817600000, 282.52, 268.69, 283.16, 261.1, 42679.606731794964],\n                     [1562814000000, 286.4, 282.67, 286.91, 281.14464827,\n                      4021.486526044806],\n                     [1562810400000, 285.28, 286.4, 286.4, 284.7, 1664.31045633],\n                     [1562806800000, 284.69, 285.27, 286.8, 283.05, 1918.449225612223],\n                     [1562803200000, 288.72, 284.32, 288.72, 281, 14227.522409429108],\n                     [1562799600000, 289.02, 288.7123753, 289.29, 287.53,\n                      1905.131484584028],\n                     [1562796000000, 288.2, 289.25, 289.83, 285.94101743,\n                      4688.233106279797],\n                     [1562792400000, 287.2289761, 288.15, 289.98, 283.44,\n                      4287.238780774077],\n                     [1562788800000, 287.53732932, 287.8, 288.4, 283, 8434.842426938938],\n                     [1562785200000, 285.14, 287.53, 289.9, 284.04, 4582.884122169536],\n                     [1562781600000, 287.88, 285.19, 287.88, 285.19, 2045.005585906531],\n                     [1562778000000, 285.27, 287.88, 288, 283, 6724.105337907423],\n                     [1562774400000, 287.95, 285.29, 290.26, 282.45, 9445.387495208968],\n                     [1562770800000, 292.42, 287.89, 292.42, 278.86, 33093.03829545517],\n                     [1562767200000, 308.58, 292.56, 309.42837354, 292.42358636,\n                      23760.322484528253],\n                     [1562763600000, 309.2, 308.64, 310.79, 308.53, 2053.708602726572],\n                     [1562760000000, 308.24, 309.1, 309.29, 307, 3328.76203315642],\n                     [1562756400000, 309.37, 308.26, 311.13055179, 307.69,\n                      4266.791341042448],\n                     [1562752800000, 308.69, 309.19123583, 310.06, 308.47,\n                      1434.759175320263],\n                     [1562749200000, 310, 308.69314505, 310.75, 308.09, 2379.56163487],\n                     [1562745600000, 307.38, 310.01, 310.01, 307.3, 5571.63076276],\n                     [1562742000000, 309.08, 307.36, 309.35, 307, 2651.983805569236],\n                     [1562738400000, 311.1, 309.08, 311.24, 308.71, 2438.319950194904],\n                     [1562734800000, 310.89, 311.01, 311.93, 309.92, 1679.397261035737],\n                     [1562731200000, 311, 310.89, 312.11, 309.57, 1518.773729830795],\n                     [1562727600000, 313.87744005, 311.01, 314.95, 310.92,\n                      4285.195887648143],\n                     [1562724000000, 311.09, 313.84, 316.5, 311.09, 8238.439359985881],\n                     [1562720400000, 312.37, 311.09, 312.63, 311.02, 2025.500169317997],\n                     [1562716800000, 307.84, 312.14, 312.99, 306.83576651,\n                      5029.884456235246],\n                     [1562713200000, 307.99, 307.86, 309.5, 307.74, 4979.490265305564],\n                     [1562709600000, 307.3, 307.98, 308.4, 306.31, 1537.726808036944],\n                     [1562706000000, 304.32, 307.31, 308.85, 303.6, 3087.743531870378],\n                     [1562702400000, 307.47, 304.49, 307.47443755, 302.69,\n                      8826.03019463428],\n                     [1562698800000, 309.85, 307.47, 310.27, 303.87, 6024.642643890162],\n                     [1562695200000, 310.16, 309.95, 311.18, 309.43, 1555.115880626991],\n                     [1562691600000, 309.73, 310.15, 310.82, 309.3, 1060.835790230649],\n                     [1562688000000, 309.2, 309.73, 311.39, 309.15, 3512.422936729986],\n                     [1562684400000, 308.61, 309.25, 310.04, 307.2, 6242.006184755826],\n                     [1562680800000, 311.42837933, 308.61, 312.91, 308.1,\n                      1490.053976155575],\n                     [1562677200000, 312.45, 311.42, 312.95, 309.96, 1510.358829083802],\n                     [1562673600000, 311.23, 312.15, 312.45, 311, 944.269826057191],\n                     [1562670000000, 311.03, 311.36, 312.38, 310.52, 2771.864422217986],\n                     [1562666400000, 314.21, 311.13, 314.33, 309.2, 8377.293054594798],\n                     [1562662800000, 313.12, 314.37, 315.01, 312.23, 3523.150152304516],\n                     [1562659200000, 311.77, 313.11, 313.63, 311.52, 2207.501554149047],\n                     [1562655600000, 317.04, 311.64, 317.64, 308.12, 12835.127990831676],\n                     [1562652000000, 315.44, 317.15, 318, 315.17, 3189.195538084219],\n                     [1562648400000, 315.77, 315.45, 316, 314.67, 2623.545609008255],\n                     [1562644800000, 315.11, 315.58, 316.27, 313.99, 3967.657216876321],\n                     [1562641200000, 316.2, 315.11, 317.08, 313.81, 2877.978264704368],\n                     [1562637600000, 314.07, 316.2, 318.3, 313.97, 4705.735242022388],\n                     [1562634000000, 311.24, 313.61, 314.04, 311.05, 2272.139619402471],\n                     [1562630400000, 313.44, 311.14, 313.45, 311, 5077.143931391396],\n                     [1562626800000, 313.86, 313.39, 315.22, 312.75, 7440.887001256283],\n                     [1562623200000, 312.26, 313.9, 315.27, 311.15, 15903.89506614883],\n                     [1562619600000, 310.71, 312.26, 312.4, 310.7, 3418.441962636784],\n                     [1562616000000, 310.41, 310.72, 313.14, 308.17, 6321.345249032818],\n                     [1562612400000, 306.75, 310.34, 311.49, 306.5, 9476.429378268744],\n                     [1562608800000, 307.98, 306.86424496, 308.04, 306.13,\n                      3198.588288339354],\n                     [1562605200000, 308.4, 307.95, 309.38, 306.86, 3140.925262098901],\n                     [1562601600000, 309.1, 308.68, 310.44, 306.07, 4902.757898499353],\n                     [1562598000000, 309.05, 309.03, 310, 307.27, 2075.43897934913],\n                     [1562594400000, 308.89, 308.9, 309.72, 307.88, 1697.932856982219],\n                     [1562590800000, 306.80865745, 308.87, 309.76859433, 305.88,\n                      3096.126254119655],\n                     [1562587200000, 308.04, 306.8, 308.65, 305.41, 4784.691250024502],\n                     [1562583600000, 309.69, 308.07, 309.69, 307.55, 3495.216317482407],\n                     [1562580000000, 310.4, 309.69, 310.93, 308.9, 4818.125473502093],\n                     [1562576400000, 310.25, 310.56, 312.53, 308.93, 11586.306329998713],\n                     [1562572800000, 308.73, 310.10790143, 310.25, 304.96,\n                      6713.926560244871],\n                     [1562569200000, 305.53, 308.79291566, 310.25, 305.3,\n                      2741.828531506003],\n                     [1562565600000, 305.23, 305.52, 305.73, 304.22, 1894.358993215844],\n                     [1562562000000, 305.98, 305.18, 305.98, 304.8, 1749.85131836],\n                     [1562558400000, 305.45, 305.98, 307.07, 305.33914098,\n                      2639.120567093529],\n                     [1562554800000, 305.24, 305.51, 305.71, 303.87, 1057.494395242086],\n                     [1562551200000, 306.07, 305.08, 306.57, 304.98, 1146.38343246666],\n                     [1562547600000, 303.05, 306.13, 306.42, 302.8914127, 6306.38447504831],\n                     [1562544000000, 306.57, 303.04, 308.84170999, 302.54,\n                      4721.12789480746],\n                     [1562540400000, 306.04, 306.54, 307.35502248, 305.5,\n                      1067.835063383022],\n                     [1562536800000, 308.35, 306.31, 311, 304.7, 13673.18352032881],\n                     [1562533200000, 307, 308.16, 308.91, 306.49, 2941.86582170654],\n                     [1562529600000, 307.8, 307, 310.5, 305.53, 7662.342096172919],\n                     [1562526000000, 306.49538508, 307.8, 309.67, 305.11,\n                      8616.637374768594],\n                     [1562522400000, 307.72, 306.49, 311, 305.25, 8827.038212224172],\n                     [1562518800000, 292.84, 307.7, 309.25, 292.8, 29297.561814110984],\n                     [1562515200000, 292.12, 292.76, 292.83, 290.70194636,\n                      1819.168848554204],\n                     [1562511600000, 293.40327744, 292.15, 294.83, 290.72,\n                      6648.869447326808],\n                     [1562508000000, 294.35, 293.40327744, 295.48, 293.40327744,\n                      1065.935168519027],\n                     [1562504400000, 294.71245496, 294.35, 295.75, 294.13162268,\n                      1540.194182712207],\n                     [1562500800000, 294.1, 294.71, 296.43, 293.82, 5246.088882291099],\n                     [1562497200000, 288.96, 294.17, 295.26, 288.6, 7202.535912994613],\n                     [1562493600000, 288.48, 288.97, 289.45920249, 288.13,\n                      838.114483477825],\n                     [1562490000000, 288.17, 288.52, 289.08, 287.53, 1184.948148550061],\n                     [1562486400000, 288.72896052, 288.07, 288.72896052, 287.06,\n                      2509.3587293022742],\n                     [1562482800000, 288.52, 288.65, 289.36, 288.05, 542.096866791271],\n                     [1562479200000, 288.9, 288.41, 289.16227984, 288.07, 480.550277505631],\n                     [1562475600000, 290, 288.91, 290.26, 288.31, 801.347458793652],\n                     [1562472000000, 288.29, 290, 290.20409012, 287.1, 1410.60203717],\n                     [1562468400000, 288.17, 288.28, 288.97, 286.77, 1175.191820008901],\n                     [1562464800000, 289.19, 288.12, 289.19, 287.15, 471.86966851],\n                     [1562461200000, 288.67, 289.27, 289.27, 287.81, 293.552434691153],\n                     [1562457600000, 288.61, 288.67364316, 289.23, 284.43,\n                      3718.567536787268],\n                     [1562454000000, 287.9, 288.61, 288.79, 287.06, 1067.084013766703],\n                     [1562450400000, 288.53, 287.9, 289.13, 285.68, 2284.956483378572],\n                     [1562446800000, 293.1, 288.74, 293.11, 286.2, 7985.216836761654],\n                     [1562443200000, 293.15, 293.1, 294.5, 292.57, 2504.259535682406],\n                     [1562439600000, 293.20966668, 293.36, 293.8273772, 291.2,\n                      1607.57042195],\n                     [1562436000000, 295.35, 293.37, 295.45, 293.16, 1912.579850616127],\n                     [1562432400000, 295.4, 295.01, 296, 294.37, 1856.778164505526],\n                     [1562428800000, 297.04, 295.58, 298.46, 295.05357868,\n                      2731.352327521428],\n                     [1562425200000, 295.92, 296.97, 298.87, 295.71, 8431.926980094615],\n                     [1562421600000, 289.98, 295.91099776, 296.11, 289.44,\n                      3353.321286088616],\n                     [1562418000000, 291.2, 289.97, 291.2, 289.48, 2170.08622002123],\n                     [1562414400000, 291.65, 291.24, 292, 289.34, 7419.539710627652],\n                     [1562410800000, 291.2, 291.43, 291.7, 290.91, 1634.089795559867],\n                     [1562407200000, 291.61, 291.2, 292.06491935, 290.69, 1250.69550421],\n                     [1562403600000, 291.45, 291.61, 292.14, 290.2, 994.351219206948],\n                     [1562400000000, 293.69, 291.47, 295.02, 290.71, 2705.795384536361],\n                     [1562396400000, 292.3, 293.65, 293.93, 291.79, 2536.443027858002],\n                     [1562392800000, 292.77, 292.28, 294, 291.81782551, 2499.352283691533],\n                     [1562389200000, 293.3663992, 292.84, 294.86, 292.42,\n                      5379.338087118942],\n                     [1562385600000, 294.02, 293.48, 295.01, 293.22, 4061.178200193957],\n                     [1562382000000, 292.7, 294.01, 294.04, 291.97, 624.698914792956],\n                     [1562378400000, 292.5, 292.7, 293.873197, 291.71, 269.808436258754],\n                     [1562374800000, 294.38, 292.5, 294.5, 291.54, 669.137261408786],\n                     [1562371200000, 288.01, 294.35, 294.73, 287.19043177,\n                      3797.344533337384],\n                     [1562367600000, 288.44, 287.95, 289.36935018, 286.53, 508.43556896],\n                     [1562364000000, 288.94, 288.39, 290.25, 287.2, 1482.63164497],\n                     [1562360400000, 287.12, 289.09, 289.65967864, 287.11, 303.1515221],\n                     [1562356800000, 290.5, 287.14, 290.69, 285.44, 2604.052203779635],\n                     [1562353200000, 291.73, 290.5, 293.17, 290.11, 2095.951424334533],\n                     [1562349600000, 292, 291.8, 292.66, 290.65, 1116.00646606002],\n                     [1562346000000, 289.53, 292, 292.23, 288.61, 1889.726037959811],\n                     [1562342400000, 289.84, 289.73, 291.67, 288, 1334.6396874221],\n                     [1562338800000, 292.17, 289.86, 292.66, 287.55, 4350.823336440464],\n                     [1562335200000, 292.27, 292.07, 294.37, 291.03, 2072.396702199285],\n                     [1562331600000, 292, 292.3, 294, 292, 1250.95577689293],\n                     [1562328000000, 293.90895052, 292, 294.07, 291.31, 924.076135295769],\n                     [1562324400000, 294.05, 293.9, 294.6364036, 292.93, 1474.640759023059],\n                     [1562320800000, 290.54, 294.05, 295.27981785, 290.54,\n                      2318.463007437298],\n                     [1562317200000, 285.23, 290.55, 293.66, 285.09, 7339.3052633891575],\n                     [1562313600000, 285.84, 285.44, 286.11, 283.33, 1656.517043869724],\n                     [1562310000000, 285.09, 285.83, 285.91, 283.62, 2247.662468226648],\n                     [1562306400000, 286.96, 285.14, 288.21, 284.37, 2720.031010737149],\n                     [1562302800000, 286.54710859, 286.96, 287.5, 286.1, 912.812622206888],\n                     [1562299200000, 285.89, 286.53, 286.54466995, 284.67575976,\n                      455.04148099891097],\n                     [1562295600000, 284.55, 285.89, 286.51, 283.97, 645.348900826725],\n                     [1562292000000, 286.39101283, 284.42141091, 287, 284.42141091,\n                      2076.021365526775],\n                     [1562288400000, 284.44061321, 286.39, 286.97, 282.97576328,\n                      5804.788938862283],\n                     [1562284800000, 283.19, 284.63, 285.26587168, 281.25,\n                      6256.370816017917],\n                     [1562281200000, 293.29, 283.19, 293.29, 280.25, 16377.409411154193],\n                     [1562277600000, 292.13571784, 293.29, 293.5, 292.06,\n                      1534.8949945699999],\n                     [1562274000000, 292.72, 292.33, 293.28, 291.93, 1815.418630077157],\n                     [1562270400000, 294.85, 292.72, 294.85618273, 290.26,\n                      5234.447749719316],\n                     [1562266800000, 294.46119033, 294.86, 294.9916087, 293.44,\n                      536.489455314865],\n                     [1562263200000, 295.69534597, 294.6, 295.7, 294.03168804,\n                      1253.422531605359],\n                     [1562259600000, 295.26394653, 295.69534597, 296.82, 295.2,\n                      1771.946629164279],\n                     [1562256000000, 294.12, 295.12, 295.99, 292.98, 2456.761117287422],\n                     [1562252400000, 295.94, 294.1, 296.38, 294.1, 1472.175134890017],\n                     [1562248800000, 296.11, 295.9, 297.06678214, 294.75449937,\n                      1079.397855417646],\n                     [1562245200000, 294.88, 296.06, 296.7, 294.88, 2043.731597803166],\n                     [1562241600000, 294.38, 294.76, 295.84, 294.13, 3403.428918912735],\n                     [1562238000000, 293.97623048, 294.36, 295.54, 292.6,\n                      4776.616618130325],\n                     [1562234400000, 294.36, 293.84, 295.15, 291.85, 4345.65909118065],\n                     [1562230800000, 296.5, 294.29, 296.70506963, 293.97,\n                      6287.811689638424],\n                     [1562227200000, 295.25, 296.52621167, 296.52621167, 294.27,\n                      2027.720703198558],\n                     [1562223600000, 296.6, 295.33260675, 298.72, 295.33260675,\n                      1841.062865236167],\n                     [1562220000000, 295.25, 296.59945698, 296.78, 295.22,\n                      1713.616699976313],\n                     [1562216400000, 294.15, 295.21, 295.21, 293.88, 1481.679627925961],\n                     [1562212800000, 298.23, 294.21, 298.8, 292.34, 6302.928896565222],\n                     [1562209200000, 298.98, 298.14, 299.5, 296.64, 3471.619020927389],\n                     [1562205600000, 300.08, 298.98, 300.58, 298.86, 2337.578552373277],\n                     [1562202000000, 299.65, 300.07, 301.87, 299.3, 4787.890037830652],\n                     [1562198400000, 302.21901172, 299.64, 303.5, 299.01,\n                      2283.8200593159722],\n                     [1562194800000, 300.56, 302.22, 303.40039444, 298.84,\n                      6903.701603482515],\n                     [1562191200000, 295.02, 300.56, 302.5, 294.45, 10358.812733250203],\n                     [1562187600000, 294.03, 294.8, 295.43, 292.99, 815.166807523792],\n                     [1562184000000, 293.18, 294.03, 294.82, 292.29, 2722.748775037397],\n                     [1562180400000, 292.19, 293.02157821, 294.01, 291.60422283,\n                      2016.180535833639],\n                     [1562176800000, 292.01, 292.17, 292.51, 290.14, 2798.315346315081],\n                     [1562173200000, 289.82, 292.05, 292.5, 289.78, 3256.475799249486],\n                     [1562169600000, 295.22, 289.83, 295.23, 289.83, 4633.125421719817],\n                     [1562166000000, 294.85, 295.3, 296.1, 293.75, 5128.432523696609],\n                     [1562162400000, 293.76, 294.9, 295.77789864, 292.24375238,\n                      3402.3838107427678],\n                     [1562158800000, 295.33, 293.76, 296.11, 293.06, 3592.119337521333],\n                     [1562155200000, 292.42, 295.26, 295.34, 292.4, 1539.151026631249],\n                     [1562151600000, 294.97, 292.42, 295.23, 292.01, 3035.263751159769],\n                     [1562148000000, 294.59, 294.84, 296.2, 294.15482647, 2393.08693802853],\n                     [1562144400000, 291.96, 294.53, 294.9, 291.3, 3058.429872680864],\n                     [1562140800000, 294.82, 291.97, 295.71936269, 291.41,\n                      7777.047083653257],\n                     [1562137200000, 297.98, 294.99, 298.13, 294.77, 3879.164247657985],\n                     [1562133600000, 298.88, 298.01, 299, 296.4, 1905.419723373114],\n                     [1562130000000, 297.47, 298.83, 301.75, 296.86829756,\n                      15517.202153051325],\n                     [1562126400000, 295.909059, 297.68, 298, 295.909059,\n                      4672.094582265891],\n                     [1562122800000, 293.79, 295.83, 297.17, 292.8, 6727.846224577526],\n                     [1562119200000, 297.01, 293.83, 297.37, 293.83, 5562.255507966701],\n                     [1562115600000, 296.08426276, 297.03877083, 298.86, 295.14,\n                      8689.836974404941],\n                     [1562112000000, 292.71336822, 296.08, 296.12, 292.71336822,\n                      9791.992199128887],\n                     [1562108400000, 292.92, 292.93594278, 295.07, 290.31,\n                      8204.260699380968],\n                     [1562104800000, 289.2, 292.91, 294.24, 288.72, 2874.387442211366],\n                     [1562101200000, 289.24, 289.2, 291.48, 286.55, 6074.786001840982],\n                     [1562097600000, 290.03, 289.24990237, 291.71, 289.24,\n                      2996.274698720906],\n                     [1562094000000, 289.62, 290.03, 292.82, 288.53, 5139.476471784382],\n                     [1562090400000, 292.2, 289.61, 292.49270942, 286.86,\n                      3612.602373276965],\n                     [1562086800000, 288.96, 292.15, 292.5, 288.58646844,\n                      3683.910742053373],\n                     [1562083200000, 291.51, 288.87, 291.68, 286, 2293.264293835396],\n                     [1562079600000, 288.49, 291.78, 291.97, 286.72, 3158.949024633446],\n                     [1562076000000, 280.54, 288.43, 288.49, 280.53388884,\n                      6643.733596030642],\n                     [1562072400000, 283.23, 280.53, 284.7, 279.5424026, 3788.119476784923],\n                     [1562068800000, 277.39, 283.22883141, 286, 276.52, 10690.176330464707],\n                     [1562065200000, 280.56, 277.39, 282.74, 273.95, 12576.920863204203],\n                     [1562061600000, 282.71, 280.22, 284.54, 278.44, 3531.041957319029],\n                     [1562058000000, 284.07, 282.7, 286.56, 281.78, 2857.612177088166],\n                     [1562054400000, 278.46, 283.95250067, 284.88, 276.76,\n                      4168.077814438706],\n                     [1562050800000, 277.22, 278.87, 279.5, 277.17, 2115.062277665163],\n                     [1562047200000, 276.71, 277.26, 281.62, 272.65, 10673.258827023461],\n                     [1562043600000, 280.02022806, 276.72, 281, 276, 14754.55885075738],\n                     [1562040000000, 289.52, 279.98, 290.39, 276.89, 19589.646887363895],\n                     [1562036400000, 288.11915505, 289.36, 289.56, 287.12,\n                      2594.236725234793],\n                     [1562032800000, 288.36, 288.12, 290.27, 288.03737519,\n                      2113.392561646159],\n                     [1562029200000, 291.56, 288.54, 293.62, 287.67, 4280.869320562249],\n                     [1562025600000, 295.58, 291.57, 299.03, 291.5, 9724.069906459914],\n                     [1562022000000, 291.46, 295.5, 297.63, 291.14563128,\n                      3326.014683487564],\n                     [1562018400000, 293.23, 291.48, 293.27, 290.31, 2825.932836906471],\n                     [1562014800000, 290.82, 293.16, 294.84, 290.82, 3624.675055477975],\n                     [1562011200000, 284.1958989, 290.71, 292.60889172, 284.19,\n                      9283.234425758577],\n                     [1562007600000, 287.16412032, 284.19, 287.16412032, 281,\n                      9898.438534180406],\n                     [1562004000000, 284.74, 287.13646584, 287.73730521, 283.37,\n                      4609.520316230599],\n                     [1562000400000, 285.35, 284.63, 287.32, 282.62, 4262.964841343437],\n                     [1561996800000, 286.42, 285.34, 289.7, 284.35, 6026.798068132093],\n                     [1561993200000, 283.07, 286.53, 288.97, 281.5, 19890.7333485207],\n                     [1561989600000, 287.19, 283, 290.73, 282.11, 10775.289206436404],\n                     [1561986000000, 290.53, 287.27, 291.36, 287.27, 5988.2673219081835],\n                     [1561982400000, 295.99, 290.14, 297, 285.94, 14393.420665222136],\n                     [1561978800000, 296.71, 295.99, 296.99, 294.27, 3022.437726040742],\n                     [1561975200000, 298.88, 296.44, 299.89, 295, 2914.369670844062],\n                     [1561971600000, 299.68, 298.99, 300, 298, 2434.092485884046],\n                     [1561968000000, 294.95, 299.61, 299.71, 294.55, 4129.501441153225],\n                     [1561964400000, 294.85, 294.99, 297.6, 292.53, 3179.141134059615],\n                     [1561960800000, 296.71, 294.79, 297.81, 293.85, 2030.232937491254],\n                     [1561957200000, 299.17, 296.37, 299.84, 295.33, 4583.326442799895],\n                     [1561953600000, 299.16, 299.15, 300.34675801, 296.84,\n                      1340.536547968204],\n                     [1561950000000, 298.04, 299.15, 302.47, 296.79794148,\n                      4481.327509019943],\n                     [1561946400000, 295.07, 297.87, 299, 293.01, 4146.47421846737],\n                     [1561942800000, 295.76, 295.2, 299, 294.2, 3514.497280984894],\n                     [1561939200000, 290.8, 295.76, 295.76, 287.64, 6015.255764906366],\n                     [1561935600000, 294.48, 290.8, 296.16, 286.76, 5990.069935593896],\n                     [1561932000000, 300.44, 294.91, 300.56, 290, 7864.607478509145],\n                     [1561928400000, 304.54, 300.4, 304.54, 300, 1669.727407244795],\n                     [1561924800000, 302.54, 304.54, 305, 300.62411886, 3668.470019759599],\n                     [1561921200000, 300.24, 302.24, 303.51, 300, 1249.78729430409],\n                     [1561917600000, 303.11, 300.24, 303.67, 300.19, 1402.14949066398],\n                     [1561914000000, 303, 303.02, 304, 299.6, 8427.135278875787],\n                     [1561910400000, 296.58, 302.92, 303.67486655, 291, 13365.898945020235],\n                     [1561906800000, 297.59, 296.86, 298.33, 296.49, 3524.350252865675],\n                     [1561903200000, 295.89808766, 297.58, 298.29, 290, 16392.298974169862],\n                     [1561899600000, 304.5, 295.77, 304.94, 293.29, 13131.5588943672],\n                     [1561896000000, 302.68, 304.61, 305, 301.37633559, 7268.573793544172],\n                     [1561892400000, 303.6, 302.68, 305.21, 301.02, 7720.337907777976],\n                     [1561888800000, 310.13, 303.75, 311.27, 300.96, 19264.505667414916],\n                     [1561885200000, 310.38, 310.8, 312.1, 307.74, 2177.268020692446],\n                     [1561881600000, 308.9, 310.12, 311.36497, 307.5, 3345.968776795459],\n                     [1561878000000, 315.93, 308.91, 315.94, 307.28, 7649.354628821737],\n                     [1561874400000, 317.85696037, 315.92, 319, 315.29, 2969.739183026164],\n                     [1561870800000, 319.0138534, 317.78, 320.02, 314.18, 8905.35294393954],\n                     [1561867200000, 318.7, 318.90263416, 320, 318, 1233.469369819015],\n                     [1561863600000, 319.63, 318.7, 320.61, 317.35582428,\n                      4149.1751190772075],\n                     [1561860000000, 321.79, 319.51, 321.99133319, 318.93,\n                      2918.454756374003],\n                     [1561856400000, 323.88, 321.78, 324.44, 318.98, 4319.855207353936],\n                     [1561852800000, 317.78117349, 323.74, 324.45, 317.61,\n                      7595.240542933092],\n                     [1561849200000, 314.76, 317.42, 325.12, 314.6, 15141.694645117828],\n                     [1561845600000, 310.96, 314.76, 315.67, 310.96, 3706.236546962641],\n                     [1561842000000, 312.64, 310.95, 314.4, 308.77, 4081.050972364217]][:: -1]\n# adx\ntest_candles_10 = [(1575547200000, 146.51, 147.03, 149.02, 146.51, 64788.46651),\n                   (1575561600000, 147.02, 147.6, 147.97, 146.3, 35810.46053),\n                   (1575576000000, 147.6, 148.1, 148.6, 147.37, 25217.5757),\n                   (1575590400000, 148.11, 147.26, 148.37, 146.91, 27447.3323),\n                   (1575604800000, 147.28, 147.73, 147.89, 147.01, 22167.14581),\n                   (1575619200000, 147.76, 146.49, 147.87, 145.74, 53909.23186),\n                   (1575633600000, 146.43, 147.21, 147.73, 146.14, 36314.09307),\n                   (1575648000000, 147.23, 148.11, 149.77, 146.81, 59085.27809),\n                   (1575662400000, 148.1, 148.45, 148.88, 147.75, 21751.60468),\n                   (1575676800000, 148.46, 148.39, 148.93, 148.05, 20244.20985),\n                   (1575691200000, 148.37, 148.48, 149.49, 148.37, 24431.94446),\n                   (1575705600000, 148.47, 147.92, 148.72, 147.14, 41084.33963),\n                   (1575720000000, 147.94, 148.28, 148.55, 147.46, 25786.69449),\n                   (1575734400000, 148.25, 147.86, 148.42, 147.31, 14739.56495),\n                   (1575748800000, 147.86, 147.14, 147.86, 146.85, 14184.9325),\n                   (1575763200000, 147.16, 146.69, 147.63, 146.11, 28000.18677),\n                   (1575777600000, 146.69, 147.01, 147.28, 146.36, 13086.18636),\n                   (1575792000000, 147.0, 148.14, 148.75, 146.89, 46831.93248),\n                   (1575806400000, 148.16, 150.68, 151.5, 147.8, 49532.17518),\n                   (1575820800000, 150.68, 150.42, 151.62, 149.89, 45154.25859),\n                   (1575835200000, 150.42, 150.44, 151.4, 150.12, 22696.86322),\n                   (1575849600000, 150.44, 150.31, 151.09, 149.42, 34574.3664),\n                   (1575864000000, 150.3, 149.31, 150.96, 149.1, 36952.47141),\n                   (1575878400000, 149.31, 149.12, 149.7, 148.79, 35235.53353),\n                   (1575892800000, 149.14, 148.02, 151.19, 147.0, 74728.4613),\n                   (1575907200000, 148.03, 147.33, 148.33, 147.0, 31595.38308),\n                   (1575921600000, 147.34, 147.38, 147.83, 146.56, 30689.77677),\n                   (1575936000000, 147.4, 147.23, 148.57, 146.18, 41719.21009),\n                   (1575950400000, 147.23, 147.27, 147.48, 146.8, 28132.93679),\n                   (1575964800000, 147.26, 147.23, 147.46, 146.67, 29370.52324),\n                   (1575979200000, 147.23, 145.14, 147.41, 144.99, 52728.39563),\n                   (1575993600000, 145.15, 144.97, 145.69, 144.39, 30935.46894),\n                   (1576008000000, 144.91, 145.56, 145.92, 143.81, 20329.31468),\n                   (1576022400000, 145.53, 145.49, 146.34, 144.98, 14376.76464),\n                   (1576036800000, 145.52, 145.67, 145.81, 144.84, 16870.60197),\n                   (1576051200000, 145.67, 145.61, 146.17, 145.3, 22984.67664),\n                   (1576065600000, 145.57, 142.8, 146.21, 142.12, 59688.9744),\n                   (1576080000000, 142.81, 142.79, 143.58, 142.19, 30949.7625),\n                   (1576094400000, 142.78, 143.39, 143.45, 142.45, 12972.32469),\n                   (1576108800000, 143.41, 142.08, 144.11, 139.24, 71279.57845),\n                   (1576123200000, 142.06, 141.99, 142.71, 141.64, 24942.66734),\n                   (1576137600000, 141.95, 144.15, 144.45, 141.12, 63141.897),\n                   (1576152000000, 144.13, 143.85, 144.79, 141.85, 43196.63322),\n                   (1576166400000, 143.85, 145.06, 145.66, 143.44, 33563.00003),\n                   (1576180800000, 145.05, 144.87, 145.85, 144.5, 25491.52833),\n                   (1576195200000, 144.87, 144.6, 145.28, 144.22, 22039.34145),\n                   (1576209600000, 144.6, 144.45, 145.05, 144.26, 17657.59388),\n                   (1576224000000, 144.47, 144.44, 146.0, 142.8, 47793.14329),\n                   (1576238400000, 144.41, 144.59, 144.78, 143.83, 28573.15224),\n                   (1576252800000, 144.58, 144.48, 145.25, 144.35, 30260.69457),\n                   (1576267200000, 144.48, 144.8, 144.82, 143.94, 14371.26013),\n                   (1576281600000, 144.8, 144.58, 145.07, 144.28, 11535.79899),\n                   (1576296000000, 144.58, 143.96, 144.78, 143.62, 14900.82559),\n                   (1576310400000, 143.97, 143.22, 144.0, 142.3, 30718.28981),\n                   (1576324800000, 143.23, 141.7, 143.26, 141.19, 29105.57297),\n                   (1576339200000, 141.75, 142.16, 142.65, 141.18, 29982.61731),\n                   (1576353600000, 142.14, 141.79, 142.4, 141.64, 9989.48734),\n                   (1576368000000, 141.79, 141.02, 141.97, 139.92, 31283.91884),\n                   (1576382400000, 141.01, 143.25, 144.12, 140.57, 40269.10224),\n                   (1576396800000, 143.28, 142.75, 143.97, 142.27, 27656.69354),\n                   (1576411200000, 142.75, 143.14, 143.44, 142.01, 25739.84698),\n                   (1576425600000, 143.14, 142.85, 143.28, 142.39, 13911.23403),\n                   (1576440000000, 142.85, 142.46, 143.17, 142.02, 12328.86314),\n                   (1576454400000, 142.46, 141.39, 142.72, 141.04, 18427.64349),\n                   (1576468800000, 141.4, 141.27, 141.99, 140.86, 25536.78779),\n                   (1576483200000, 141.28, 141.1, 141.58, 140.3, 33342.06145),\n                   (1576497600000, 141.12, 140.97, 142.29, 140.7, 43879.82606),\n                   (1576512000000, 140.96, 131.79, 141.29, 127.93, 249885.64851),\n                   (1576526400000, 131.76, 132.73, 132.98, 130.95, 99946.89212),\n                   (1576540800000, 132.72, 131.97, 132.98, 130.8, 37233.03463),\n                   (1576555200000, 131.98, 131.05, 132.2, 130.82, 52397.11426),\n                   (1576569600000, 131.05, 132.23, 132.32, 130.8, 43057.15502),\n                   (1576584000000, 132.27, 127.23, 132.45, 126.49, 155655.16124),\n                   (1576598400000, 127.23, 122.85, 128.54, 122.5, 166841.55954),\n                   (1576612800000, 122.83, 121.88, 123.33, 119.11, 108073.33532),\n                   (1576627200000, 121.88, 123.9, 125.78, 121.33, 76793.22382),\n                   (1576641600000, 123.89, 121.69, 124.48, 120.67, 77164.25529),\n                   (1576656000000, 121.68, 121.67, 123.98, 121.33, 86415.70582),\n                   (1576670400000, 121.68, 127.32, 128.69, 116.26, 339740.14364),\n                   (1576684800000, 127.37, 128.74, 129.4, 125.67, 123825.57511),\n                   (1576699200000, 128.7, 132.78, 134.87, 128.26, 181022.00966),\n                   (1576713600000, 132.8, 129.02, 134.0, 126.5, 123082.11205),\n                   (1576728000000, 129.02, 127.45, 129.03, 127.24, 49214.91773),\n                   (1576742400000, 127.46, 126.05, 128.47, 125.69, 77885.23575),\n                   (1576756800000, 126.07, 127.35, 127.91, 125.86, 69892.35849),\n                   (1576771200000, 127.33, 127.5, 128.69, 126.43, 49467.413),\n                   (1576785600000, 127.52, 128.1, 128.39, 126.01, 51132.78018),\n                   (1576800000000, 128.1, 126.88, 128.6, 126.25, 39549.05608),\n                   (1576814400000, 126.88, 127.18, 127.37, 125.84, 29147.74479),\n                   (1576828800000, 127.18, 127.37, 127.5, 126.5, 34610.98361),\n                   (1576843200000, 127.39, 127.41, 129.39, 126.72, 60275.69681),\n                   (1576857600000, 127.41, 128.03, 128.5, 126.98, 31664.60109),\n                   (1576872000000, 128.03, 128.19, 128.6, 127.74, 18649.38492),\n                   (1576886400000, 128.19, 127.31, 128.4, 126.97, 26395.16905),\n                   (1576900800000, 127.31, 127.02, 127.8, 126.84, 24673.7469),\n                   (1576915200000, 127.03, 127.39, 127.87, 126.5, 29467.89196),\n                   (1576929600000, 127.4, 127.34, 127.8, 126.64, 28235.03061),\n                   (1576944000000, 127.33, 127.01, 127.53, 126.77, 11844.541),\n                   (1576958400000, 127.03, 126.99, 127.59, 126.77, 14579.73689),\n                   (1576972800000, 127.0, 127.14, 127.45, 126.82, 12937.49508),\n                   (1576987200000, 127.15, 129.27, 129.4, 126.87, 29219.81714),\n                   (1577001600000, 129.3, 129.05, 130.99, 128.56, 53002.751),\n                   (1577016000000, 129.03, 129.53, 130.0, 129.02, 22740.64493),\n                   (1577030400000, 129.57, 131.94, 132.5, 129.31, 84940.66311),\n                   (1577044800000, 131.94, 132.09, 133.07, 131.19, 50299.35287),\n                   (1577059200000, 132.12, 133.87, 135.1, 132.1, 86402.71507),\n                   (1577073600000, 133.85, 131.67, 133.99, 130.87, 60396.00282),\n                   (1577088000000, 131.67, 132.97, 133.52, 131.47, 47626.43829),\n                   (1577102400000, 132.97, 133.26, 133.92, 132.44, 51211.55359),\n                   (1577116800000, 133.22, 129.08, 134.42, 128.16, 120922.67301),\n                   (1577131200000, 129.06, 127.8, 129.14, 126.0, 55041.37377),\n                   (1577145600000, 127.8, 127.67, 128.53, 127.29, 36234.04195),\n                   (1577160000000, 127.68, 127.15, 128.37, 126.61, 33770.72865),\n                   (1577174400000, 127.17, 128.62, 129.04, 126.7, 33720.76499),\n                   (1577188800000, 128.62, 127.88, 129.69, 127.08, 40009.23138),\n                   (1577203200000, 127.88, 127.8, 128.52, 126.8, 39639.60512),\n                   (1577217600000, 127.84, 127.75, 128.44, 127.3, 17262.72889),\n                   (1577232000000, 127.7, 125.74, 127.84, 125.11, 43232.3271),\n                   (1577246400000, 125.72, 125.66, 126.45, 123.07, 42223.86157),\n                   (1577260800000, 125.67, 124.38, 126.12, 124.08, 33182.93001),\n                   (1577275200000, 124.38, 124.42, 125.56, 123.35, 44404.7648),\n                   (1577289600000, 124.42, 125.43, 125.82, 123.41, 40741.51645),\n                   (1577304000000, 125.44, 125.09, 125.97, 124.91, 21219.09097),\n                   (1577318400000, 125.09, 124.52, 125.43, 124.32, 17019.466),\n                   (1577332800000, 124.52, 124.96, 125.08, 124.37, 19861.16426),\n                   (1577347200000, 124.96, 125.14, 126.08, 124.91, 24661.11897),\n                   (1577361600000, 125.15, 126.18, 126.69, 124.99, 29940.72332),\n                   (1577376000000, 126.18, 128.97, 132.26, 125.55, 119777.37179),\n                   (1577390400000, 128.92, 125.58, 129.59, 124.33, 63726.67663),\n                   (1577404800000, 125.58, 126.45, 126.63, 125.12, 24291.22232),\n                   (1577419200000, 126.47, 124.99, 126.54, 124.47, 37397.85854),\n                   (1577433600000, 124.99, 123.66, 125.37, 121.91, 56238.67029),\n                   (1577448000000, 123.66, 126.11, 126.6, 122.97, 65440.82683),\n                   (1577462400000, 126.09, 125.35, 127.1, 124.56, 40119.50122),\n                   (1577476800000, 125.35, 126.29, 126.76, 125.14, 16524.29531),\n                   (1577491200000, 126.28, 127.08, 128.31, 125.84, 33053.03344),\n                   (1577505600000, 127.08, 127.26, 128.59, 126.69, 36952.72514),\n                   (1577520000000, 127.25, 127.34, 128.0, 126.6, 24806.14657),\n                   (1577534400000, 127.31, 127.42, 128.49, 126.96, 22563.64807),\n                   (1577548800000, 127.44, 129.04, 129.68, 126.84, 57033.85921),\n                   (1577563200000, 129.04, 128.11, 129.27, 127.9, 22484.11034),\n                   (1577577600000, 128.11, 127.94, 128.16, 127.52, 16121.34435),\n                   (1577592000000, 127.97, 128.43, 128.87, 127.61, 19191.9311),\n                   (1577606400000, 128.43, 129.39, 129.42, 127.99, 24854.72658),\n                   (1577620800000, 129.38, 131.99, 132.44, 128.97, 79602.10923),\n                   (1577635200000, 131.98, 134.85, 134.95, 131.86, 68122.10168),\n                   (1577649600000, 134.85, 134.36, 138.07, 132.87, 108455.05372),\n                   (1577664000000, 134.36, 134.0, 134.66, 133.14, 44829.29349),\n                   (1577678400000, 134.0, 135.59, 136.24, 133.99, 49636.89),\n                   (1577692800000, 135.62, 133.11, 135.62, 132.45, 80861.58595),\n                   (1577707200000, 133.1, 130.63, 133.7, 130.3, 79506.02749),\n                   (1577721600000, 130.64, 131.32, 131.99, 130.35, 34803.76383),\n                   (1577736000000, 131.31, 131.59, 132.69, 131.05, 30709.6588),\n                   (1577750400000, 131.61, 131.26, 131.96, 130.76, 25129.15648),\n                   (1577764800000, 131.25, 132.2, 133.07, 131.07, 44162.78572),\n                   (1577779200000, 132.17, 131.92, 132.23, 131.22, 32555.05368),\n                   (1577793600000, 131.96, 129.73, 133.68, 128.9, 93106.70137),\n                   (1577808000000, 129.71, 128.49, 130.51, 128.42, 51027.12357),\n                   (1577822400000, 128.47, 129.16, 129.46, 128.17, 18953.16336),\n                   (1577836800000, 129.16, 130.2, 130.98, 128.68, 31685.73908),\n                   (1577851200000, 130.21, 130.24, 130.75, 130.11, 15457.58966),\n                   (1577865600000, 130.24, 130.74, 131.87, 129.87, 27822.94195),\n                   (1577880000000, 130.74, 132.08, 132.4, 130.7, 24010.28657),\n                   (1577894400000, 132.08, 131.86, 133.05, 131.57, 20158.22421),\n                   (1577908800000, 131.86, 130.77, 132.37, 129.74, 25635.7405),\n                   (1577923200000, 130.72, 129.1, 130.78, 128.77, 38485.79425),\n                   (1577937600000, 129.09, 129.26, 129.99, 128.69, 27580.21466),\n                   (1577952000000, 129.23, 129.53, 130.28, 129.21, 25341.92023),\n                   (1577966400000, 129.52, 129.59, 130.01, 128.9, 23157.01214),\n                   (1577980800000, 129.58, 127.62, 129.78, 126.38, 85534.55202),\n                   (1577995200000, 127.63, 127.19, 127.87, 126.79, 13657.56476),\n                   (1578009600000, 127.19, 126.89, 127.6, 125.88, 40142.23049),\n                   (1578024000000, 126.89, 128.86, 130.15, 126.83, 87499.1273),\n                   (1578038400000, 128.86, 132.46, 133.26, 128.8, 118287.73343),\n                   (1578052800000, 132.49, 132.53, 133.95, 130.93, 57993.70937),\n                   (1578067200000, 132.52, 133.49, 134.9, 131.94, 70186.34496),\n                   (1578081600000, 133.48, 134.35, 135.14, 132.16, 38946.0434),\n                   (1578096000000, 134.37, 133.34, 134.81, 132.79, 29800.56324),\n                   (1578110400000, 133.34, 133.91, 134.31, 133.0, 24369.40889),\n                   (1578124800000, 133.9, 133.77, 134.18, 133.07, 23918.50927),\n                   (1578139200000, 133.76, 133.26, 133.79, 132.5, 29237.72486),\n                   (1578153600000, 133.26, 133.72, 135.85, 132.8, 59872.55619),\n                   (1578168000000, 133.71, 134.2, 134.54, 133.44, 17077.40857),\n                   (1578182400000, 134.2, 136.16, 136.2, 134.19, 48831.80763),\n                   (1578196800000, 136.17, 136.02, 137.24, 135.62, 37286.06571),\n                   (1578211200000, 136.04, 135.07, 136.24, 134.7, 33422.08707),\n                   (1578225600000, 135.06, 137.26, 137.96, 135.06, 42242.22893),\n                   (1578240000000, 137.24, 137.97, 138.19, 136.64, 45304.34466),\n                   (1578254400000, 137.97, 135.37, 138.06, 134.21, 47033.91943),\n                   (1578268800000, 135.37, 139.49, 139.67, 134.86, 81445.25944),\n                   (1578283200000, 139.49, 138.87, 140.0, 138.54, 31894.33568),\n                   (1578297600000, 138.87, 141.54, 143.06, 138.81, 87065.38988),\n                   (1578312000000, 141.54, 140.2, 143.22, 139.08, 101925.464),\n                   (1578326400000, 140.19, 141.35, 141.86, 140.0, 35540.05181),\n                   (1578340800000, 141.35, 144.15, 144.41, 141.26, 70149.77294),\n                   (1578355200000, 144.14, 143.5, 145.31, 143.16, 84551.69867),\n                   (1578369600000, 143.5, 142.87, 143.62, 142.15, 42983.64715),\n                   (1578384000000, 142.87, 142.62, 143.78, 142.45, 45824.82864),\n                   (1578398400000, 142.62, 139.48, 142.66, 139.0, 85723.91095),\n                   (1578412800000, 139.48, 143.19, 144.3, 138.76, 120461.92484),\n                   (1578427200000, 143.19, 142.8, 145.0, 141.31, 68216.16256),\n                   (1578441600000, 142.8, 144.48, 147.77, 142.71, 159159.79692),\n                   (1578456000000, 144.54, 143.56, 145.25, 142.68, 63852.27131),\n                   (1578470400000, 143.53, 143.5, 144.5, 142.97, 41296.85943),\n                   (1578484800000, 143.52, 141.42, 143.69, 140.39, 108153.28432),\n                   (1578499200000, 141.42, 137.84, 141.91, 137.71, 135381.27344),\n                   (1578513600000, 137.89, 140.72, 141.5, 137.03, 62622.09222),\n                   (1578528000000, 140.76, 139.94, 141.5, 139.43, 48045.14801),\n                   (1578542400000, 139.96, 139.93, 140.39, 138.69, 46062.9573),\n                   (1578556800000, 139.91, 138.6, 140.06, 137.68, 48690.51982)]\n# bollinger bands\ntest_candles_11 = [(1575576000000, 147.6, 148.1, 148.6, 147.37, 25217.5757),\n                   (1575590400000, 148.11, 147.26, 148.37, 146.91, 27447.3323),\n                   (1575604800000, 147.28, 147.73, 147.89, 147.01, 22167.14581),\n                   (1575619200000, 147.76, 146.49, 147.87, 145.74, 53909.23186),\n                   (1575633600000, 146.43, 147.21, 147.73, 146.14, 36314.09307),\n                   (1575648000000, 147.23, 148.11, 149.77, 146.81, 59085.27809),\n                   (1575662400000, 148.1, 148.45, 148.88, 147.75, 21751.60468),\n                   (1575676800000, 148.46, 148.39, 148.93, 148.05, 20244.20985),\n                   (1575691200000, 148.37, 148.48, 149.49, 148.37, 24431.94446),\n                   (1575705600000, 148.47, 147.92, 148.72, 147.14, 41084.33963),\n                   (1575720000000, 147.94, 148.28, 148.55, 147.46, 25786.69449),\n                   (1575734400000, 148.25, 147.86, 148.42, 147.31, 14739.56495),\n                   (1575748800000, 147.86, 147.14, 147.86, 146.85, 14184.9325),\n                   (1575763200000, 147.16, 146.69, 147.63, 146.11, 28000.18677),\n                   (1575777600000, 146.69, 147.01, 147.28, 146.36, 13086.18636),\n                   (1575792000000, 147.0, 148.14, 148.75, 146.89, 46831.93248),\n                   (1575806400000, 148.16, 150.68, 151.5, 147.8, 49532.17518),\n                   (1575820800000, 150.68, 150.42, 151.62, 149.89, 45154.25859),\n                   (1575835200000, 150.42, 150.44, 151.4, 150.12, 22696.86322),\n                   (1575849600000, 150.44, 150.31, 151.09, 149.42, 34574.3664),\n                   (1575864000000, 150.3, 149.31, 150.96, 149.1, 36952.47141),\n                   (1575878400000, 149.31, 149.12, 149.7, 148.79, 35235.53353),\n                   (1575892800000, 149.14, 148.02, 151.19, 147.0, 74728.4613),\n                   (1575907200000, 148.03, 147.33, 148.33, 147.0, 31595.38308),\n                   (1575921600000, 147.34, 147.38, 147.83, 146.56, 30689.77677),\n                   (1575936000000, 147.4, 147.23, 148.57, 146.18, 41719.21009),\n                   (1575950400000, 147.23, 147.27, 147.48, 146.8, 28132.93679),\n                   (1575964800000, 147.26, 147.23, 147.46, 146.67, 29370.52324),\n                   (1575979200000, 147.23, 145.14, 147.41, 144.99, 52728.39563),\n                   (1575993600000, 145.15, 144.97, 145.69, 144.39, 30935.46894),\n                   (1576008000000, 144.91, 145.56, 145.92, 143.81, 20329.31468),\n                   (1576022400000, 145.53, 145.49, 146.34, 144.98, 14376.76464),\n                   (1576036800000, 145.52, 145.67, 145.81, 144.84, 16870.60197),\n                   (1576051200000, 145.67, 145.61, 146.17, 145.3, 22984.67664),\n                   (1576065600000, 145.57, 142.8, 146.21, 142.12, 59688.9744),\n                   (1576080000000, 142.81, 142.79, 143.58, 142.19, 30949.7625),\n                   (1576094400000, 142.78, 143.39, 143.45, 142.45, 12972.32469),\n                   (1576108800000, 143.41, 142.08, 144.11, 139.24, 71279.57845),\n                   (1576123200000, 142.06, 141.99, 142.71, 141.64, 24942.66734),\n                   (1576137600000, 141.95, 144.15, 144.45, 141.12, 63141.897),\n                   (1576152000000, 144.13, 143.85, 144.79, 141.85, 43196.63322),\n                   (1576166400000, 143.85, 145.06, 145.66, 143.44, 33563.00003),\n                   (1576180800000, 145.05, 144.87, 145.85, 144.5, 25491.52833),\n                   (1576195200000, 144.87, 144.6, 145.28, 144.22, 22039.34145),\n                   (1576209600000, 144.6, 144.45, 145.05, 144.26, 17657.59388),\n                   (1576224000000, 144.47, 144.44, 146.0, 142.8, 47793.14329),\n                   (1576238400000, 144.41, 144.59, 144.78, 143.83, 28573.15224),\n                   (1576252800000, 144.58, 144.48, 145.25, 144.35, 30260.69457),\n                   (1576267200000, 144.48, 144.8, 144.82, 143.94, 14371.26013),\n                   (1576281600000, 144.8, 144.58, 145.07, 144.28, 11535.79899),\n                   (1576296000000, 144.58, 143.96, 144.78, 143.62, 14900.82559),\n                   (1576310400000, 143.97, 143.22, 144.0, 142.3, 30718.28981),\n                   (1576324800000, 143.23, 141.7, 143.26, 141.19, 29105.57297),\n                   (1576339200000, 141.75, 142.16, 142.65, 141.18, 29982.61731),\n                   (1576353600000, 142.14, 141.79, 142.4, 141.64, 9989.48734),\n                   (1576368000000, 141.79, 141.02, 141.97, 139.92, 31283.91884),\n                   (1576382400000, 141.01, 143.25, 144.12, 140.57, 40269.10224),\n                   (1576396800000, 143.28, 142.75, 143.97, 142.27, 27656.69354),\n                   (1576411200000, 142.75, 143.14, 143.44, 142.01, 25739.84698),\n                   (1576425600000, 143.14, 142.85, 143.28, 142.39, 13911.23403),\n                   (1576440000000, 142.85, 142.46, 143.17, 142.02, 12328.86314),\n                   (1576454400000, 142.46, 141.39, 142.72, 141.04, 18427.64349),\n                   (1576468800000, 141.4, 141.27, 141.99, 140.86, 25536.78779),\n                   (1576483200000, 141.28, 141.1, 141.58, 140.3, 33342.06145),\n                   (1576497600000, 141.12, 140.97, 142.29, 140.7, 43879.82606),\n                   (1576512000000, 140.96, 131.79, 141.29, 127.93, 249885.64851),\n                   (1576526400000, 131.76, 132.73, 132.98, 130.95, 99946.89212),\n                   (1576540800000, 132.72, 131.97, 132.98, 130.8, 37233.03463),\n                   (1576555200000, 131.98, 131.05, 132.2, 130.82, 52397.11426),\n                   (1576569600000, 131.05, 132.23, 132.32, 130.8, 43057.15502),\n                   (1576584000000, 132.27, 127.23, 132.45, 126.49, 155655.16124),\n                   (1576598400000, 127.23, 122.85, 128.54, 122.5, 166841.55954),\n                   (1576612800000, 122.83, 121.88, 123.33, 119.11, 108073.33532),\n                   (1576627200000, 121.88, 123.9, 125.78, 121.33, 76793.22382),\n                   (1576641600000, 123.89, 121.69, 124.48, 120.67, 77164.25529),\n                   (1576656000000, 121.68, 121.67, 123.98, 121.33, 86415.70582),\n                   (1576670400000, 121.68, 127.32, 128.69, 116.26, 339740.14364),\n                   (1576684800000, 127.37, 128.74, 129.4, 125.67, 123825.57511),\n                   (1576699200000, 128.7, 132.78, 134.87, 128.26, 181022.00966),\n                   (1576713600000, 132.8, 129.02, 134.0, 126.5, 123082.11205),\n                   (1576728000000, 129.02, 127.45, 129.03, 127.24, 49214.91773),\n                   (1576742400000, 127.46, 126.05, 128.47, 125.69, 77885.23575),\n                   (1576756800000, 126.07, 127.35, 127.91, 125.86, 69892.35849),\n                   (1576771200000, 127.33, 127.5, 128.69, 126.43, 49467.413),\n                   (1576785600000, 127.52, 128.1, 128.39, 126.01, 51132.78018),\n                   (1576800000000, 128.1, 126.88, 128.6, 126.25, 39549.05608),\n                   (1576814400000, 126.88, 127.18, 127.37, 125.84, 29147.74479),\n                   (1576828800000, 127.18, 127.37, 127.5, 126.5, 34610.98361),\n                   (1576843200000, 127.39, 127.41, 129.39, 126.72, 60275.69681),\n                   (1576857600000, 127.41, 128.03, 128.5, 126.98, 31664.60109),\n                   (1576872000000, 128.03, 128.19, 128.6, 127.74, 18649.38492),\n                   (1576886400000, 128.19, 127.31, 128.4, 126.97, 26395.16905),\n                   (1576900800000, 127.31, 127.02, 127.8, 126.84, 24673.7469),\n                   (1576915200000, 127.03, 127.39, 127.87, 126.5, 29467.89196),\n                   (1576929600000, 127.4, 127.34, 127.8, 126.64, 28235.03061),\n                   (1576944000000, 127.33, 127.01, 127.53, 126.77, 11844.541),\n                   (1576958400000, 127.03, 126.99, 127.59, 126.77, 14579.73689),\n                   (1576972800000, 127.0, 127.14, 127.45, 126.82, 12937.49508),\n                   (1576987200000, 127.15, 129.27, 129.4, 126.87, 29219.81714),\n                   (1577001600000, 129.3, 129.05, 130.99, 128.56, 53002.751),\n                   (1577016000000, 129.03, 129.53, 130.0, 129.02, 22740.64493),\n                   (1577030400000, 129.57, 131.94, 132.5, 129.31, 84940.66311),\n                   (1577044800000, 131.94, 132.09, 133.07, 131.19, 50299.35287),\n                   (1577059200000, 132.12, 133.87, 135.1, 132.1, 86402.71507),\n                   (1577073600000, 133.85, 131.67, 133.99, 130.87, 60396.00282),\n                   (1577088000000, 131.67, 132.97, 133.52, 131.47, 47626.43829),\n                   (1577102400000, 132.97, 133.26, 133.92, 132.44, 51211.55359),\n                   (1577116800000, 133.22, 129.08, 134.42, 128.16, 120922.67301),\n                   (1577131200000, 129.06, 127.8, 129.14, 126.0, 55041.37377),\n                   (1577145600000, 127.8, 127.67, 128.53, 127.29, 36234.04195),\n                   (1577160000000, 127.68, 127.15, 128.37, 126.61, 33770.72865),\n                   (1577174400000, 127.17, 128.62, 129.04, 126.7, 33720.76499),\n                   (1577188800000, 128.62, 127.88, 129.69, 127.08, 40009.23138),\n                   (1577203200000, 127.88, 127.8, 128.52, 126.8, 39639.60512),\n                   (1577217600000, 127.84, 127.75, 128.44, 127.3, 17262.72889),\n                   (1577232000000, 127.7, 125.74, 127.84, 125.11, 43232.3271),\n                   (1577246400000, 125.72, 125.66, 126.45, 123.07, 42223.86157),\n                   (1577260800000, 125.67, 124.38, 126.12, 124.08, 33182.93001),\n                   (1577275200000, 124.38, 124.42, 125.56, 123.35, 44404.7648),\n                   (1577289600000, 124.42, 125.43, 125.82, 123.41, 40741.51645),\n                   (1577304000000, 125.44, 125.09, 125.97, 124.91, 21219.09097),\n                   (1577318400000, 125.09, 124.52, 125.43, 124.32, 17019.466),\n                   (1577332800000, 124.52, 124.96, 125.08, 124.37, 19861.16426),\n                   (1577347200000, 124.96, 125.14, 126.08, 124.91, 24661.11897),\n                   (1577361600000, 125.15, 126.18, 126.69, 124.99, 29940.72332),\n                   (1577376000000, 126.18, 128.97, 132.26, 125.55, 119777.37179),\n                   (1577390400000, 128.92, 125.58, 129.59, 124.33, 63726.67663),\n                   (1577404800000, 125.58, 126.45, 126.63, 125.12, 24291.22232),\n                   (1577419200000, 126.47, 124.99, 126.54, 124.47, 37397.85854),\n                   (1577433600000, 124.99, 123.66, 125.37, 121.91, 56238.67029),\n                   (1577448000000, 123.66, 126.11, 126.6, 122.97, 65440.82683),\n                   (1577462400000, 126.09, 125.35, 127.1, 124.56, 40119.50122),\n                   (1577476800000, 125.35, 126.29, 126.76, 125.14, 16524.29531),\n                   (1577491200000, 126.28, 127.08, 128.31, 125.84, 33053.03344),\n                   (1577505600000, 127.08, 127.26, 128.59, 126.69, 36952.72514),\n                   (1577520000000, 127.25, 127.34, 128.0, 126.6, 24806.14657),\n                   (1577534400000, 127.31, 127.42, 128.49, 126.96, 22563.64807),\n                   (1577548800000, 127.44, 129.04, 129.68, 126.84, 57033.85921),\n                   (1577563200000, 129.04, 128.11, 129.27, 127.9, 22484.11034),\n                   (1577577600000, 128.11, 127.94, 128.16, 127.52, 16121.34435),\n                   (1577592000000, 127.97, 128.43, 128.87, 127.61, 19191.9311),\n                   (1577606400000, 128.43, 129.39, 129.42, 127.99, 24854.72658),\n                   (1577620800000, 129.38, 131.99, 132.44, 128.97, 79602.10923),\n                   (1577635200000, 131.98, 134.85, 134.95, 131.86, 68122.10168),\n                   (1577649600000, 134.85, 134.36, 138.07, 132.87, 108455.05372),\n                   (1577664000000, 134.36, 134.0, 134.66, 133.14, 44829.29349),\n                   (1577678400000, 134.0, 135.59, 136.24, 133.99, 49636.89),\n                   (1577692800000, 135.62, 133.11, 135.62, 132.45, 80861.58595),\n                   (1577707200000, 133.1, 130.63, 133.7, 130.3, 79506.02749),\n                   (1577721600000, 130.64, 131.32, 131.99, 130.35, 34803.76383),\n                   (1577736000000, 131.31, 131.59, 132.69, 131.05, 30709.6588),\n                   (1577750400000, 131.61, 131.26, 131.96, 130.76, 25129.15648),\n                   (1577764800000, 131.25, 132.2, 133.07, 131.07, 44162.78572),\n                   (1577779200000, 132.17, 131.92, 132.23, 131.22, 32555.05368),\n                   (1577793600000, 131.96, 129.73, 133.68, 128.9, 93106.70137),\n                   (1577808000000, 129.71, 128.49, 130.51, 128.42, 51027.12357),\n                   (1577822400000, 128.47, 129.16, 129.46, 128.17, 18953.16336),\n                   (1577836800000, 129.16, 130.2, 130.98, 128.68, 31685.73908),\n                   (1577851200000, 130.21, 130.24, 130.75, 130.11, 15457.58966),\n                   (1577865600000, 130.24, 130.74, 131.87, 129.87, 27822.94195),\n                   (1577880000000, 130.74, 132.08, 132.4, 130.7, 24010.28657),\n                   (1577894400000, 132.08, 131.86, 133.05, 131.57, 20158.22421),\n                   (1577908800000, 131.86, 130.77, 132.37, 129.74, 25635.7405),\n                   (1577923200000, 130.72, 129.1, 130.78, 128.77, 38485.79425),\n                   (1577937600000, 129.09, 129.26, 129.99, 128.69, 27580.21466),\n                   (1577952000000, 129.23, 129.53, 130.28, 129.21, 25341.92023),\n                   (1577966400000, 129.52, 129.59, 130.01, 128.9, 23157.01214),\n                   (1577980800000, 129.58, 127.62, 129.78, 126.38, 85534.55202),\n                   (1577995200000, 127.63, 127.19, 127.87, 126.79, 13657.56476),\n                   (1578009600000, 127.19, 126.89, 127.6, 125.88, 40142.23049),\n                   (1578024000000, 126.89, 128.86, 130.15, 126.83, 87499.1273),\n                   (1578038400000, 128.86, 132.46, 133.26, 128.8, 118287.73343),\n                   (1578052800000, 132.49, 132.53, 133.95, 130.93, 57993.70937),\n                   (1578067200000, 132.52, 133.49, 134.9, 131.94, 70186.34496),\n                   (1578081600000, 133.48, 134.35, 135.14, 132.16, 38946.0434),\n                   (1578096000000, 134.37, 133.34, 134.81, 132.79, 29800.56324),\n                   (1578110400000, 133.34, 133.91, 134.31, 133.0, 24369.40889),\n                   (1578124800000, 133.9, 133.77, 134.18, 133.07, 23918.50927),\n                   (1578139200000, 133.76, 133.26, 133.79, 132.5, 29237.72486),\n                   (1578153600000, 133.26, 133.72, 135.85, 132.8, 59872.55619),\n                   (1578168000000, 133.71, 134.2, 134.54, 133.44, 17077.40857),\n                   (1578182400000, 134.2, 136.16, 136.2, 134.19, 48831.80763),\n                   (1578196800000, 136.17, 136.02, 137.24, 135.62, 37286.06571),\n                   (1578211200000, 136.04, 135.07, 136.24, 134.7, 33422.08707),\n                   (1578225600000, 135.06, 137.26, 137.96, 135.06, 42242.22893),\n                   (1578240000000, 137.24, 137.97, 138.19, 136.64, 45304.34466),\n                   (1578254400000, 137.97, 135.37, 138.06, 134.21, 47033.91943),\n                   (1578268800000, 135.37, 139.49, 139.67, 134.86, 81445.25944),\n                   (1578283200000, 139.49, 138.87, 140.0, 138.54, 31894.33568),\n                   (1578297600000, 138.87, 141.54, 143.06, 138.81, 87065.38988),\n                   (1578312000000, 141.54, 140.2, 143.22, 139.08, 101925.464),\n                   (1578326400000, 140.19, 141.35, 141.86, 140.0, 35540.05181),\n                   (1578340800000, 141.35, 144.15, 144.41, 141.26, 70149.77294),\n                   (1578355200000, 144.14, 143.5, 145.31, 143.16, 84551.69867),\n                   (1578369600000, 143.5, 142.87, 143.62, 142.15, 42983.64715),\n                   (1578384000000, 142.87, 142.62, 143.78, 142.45, 45824.82864),\n                   (1578398400000, 142.62, 139.48, 142.66, 139.0, 85723.91095),\n                   (1578412800000, 139.48, 143.19, 144.3, 138.76, 120461.92484),\n                   (1578427200000, 143.19, 142.8, 145.0, 141.31, 68216.16256),\n                   (1578441600000, 142.8, 144.48, 147.77, 142.71, 159159.79692),\n                   (1578456000000, 144.54, 143.56, 145.25, 142.68, 63852.27131),\n                   (1578470400000, 143.53, 143.5, 144.5, 142.97, 41296.85943),\n                   (1578484800000, 143.52, 141.42, 143.69, 140.39, 108153.28432),\n                   (1578499200000, 141.42, 137.84, 141.91, 137.71, 135381.27344),\n                   (1578513600000, 137.89, 140.72, 141.5, 137.03, 62622.09222),\n                   (1578528000000, 140.76, 139.94, 141.5, 139.43, 48045.14801),\n                   (1578542400000, 139.96, 139.93, 140.39, 138.69, 46062.9573),\n                   (1578556800000, 139.91, 138.24, 140.06, 137.68, 55831.97865),\n                   (1578571200000, 138.24, 138.2, 138.93, 137.75, 38213.33663),\n                   (1578585600000, 138.19, 136.62, 138.49, 136.37, 13205.50156)]\n\n# bollinger bands width\ntest_candles_12 = [(1575720000000, 147.94, 148.28, 148.55, 147.46, 25786.69449),\n                   (1575734400000, 148.25, 147.86, 148.42, 147.31, 14739.56495),\n                   (1575748800000, 147.86, 147.14, 147.86, 146.85, 14184.9325),\n                   (1575763200000, 147.16, 146.69, 147.63, 146.11, 28000.18677),\n                   (1575777600000, 146.69, 147.01, 147.28, 146.36, 13086.18636),\n                   (1575792000000, 147.0, 148.14, 148.75, 146.89, 46831.93248),\n                   (1575806400000, 148.16, 150.68, 151.5, 147.8, 49532.17518),\n                   (1575820800000, 150.68, 150.42, 151.62, 149.89, 45154.25859),\n                   (1575835200000, 150.42, 150.44, 151.4, 150.12, 22696.86322),\n                   (1575849600000, 150.44, 150.31, 151.09, 149.42, 34574.3664),\n                   (1575864000000, 150.3, 149.31, 150.96, 149.1, 36952.47141),\n                   (1575878400000, 149.31, 149.12, 149.7, 148.79, 35235.53353),\n                   (1575892800000, 149.14, 148.02, 151.19, 147.0, 74728.4613),\n                   (1575907200000, 148.03, 147.33, 148.33, 147.0, 31595.38308),\n                   (1575921600000, 147.34, 147.38, 147.83, 146.56, 30689.77677),\n                   (1575936000000, 147.4, 147.23, 148.57, 146.18, 41719.21009),\n                   (1575950400000, 147.23, 147.27, 147.48, 146.8, 28132.93679),\n                   (1575964800000, 147.26, 147.23, 147.46, 146.67, 29370.52324),\n                   (1575979200000, 147.23, 145.14, 147.41, 144.99, 52728.39563),\n                   (1575993600000, 145.15, 144.97, 145.69, 144.39, 30935.46894),\n                   (1576008000000, 144.91, 145.56, 145.92, 143.81, 20329.31468),\n                   (1576022400000, 145.53, 145.49, 146.34, 144.98, 14376.76464),\n                   (1576036800000, 145.52, 145.67, 145.81, 144.84, 16870.60197),\n                   (1576051200000, 145.67, 145.61, 146.17, 145.3, 22984.67664),\n                   (1576065600000, 145.57, 142.8, 146.21, 142.12, 59688.9744),\n                   (1576080000000, 142.81, 142.79, 143.58, 142.19, 30949.7625),\n                   (1576094400000, 142.78, 143.39, 143.45, 142.45, 12972.32469),\n                   (1576108800000, 143.41, 142.08, 144.11, 139.24, 71279.57845),\n                   (1576123200000, 142.06, 141.99, 142.71, 141.64, 24942.66734),\n                   (1576137600000, 141.95, 144.15, 144.45, 141.12, 63141.897),\n                   (1576152000000, 144.13, 143.85, 144.79, 141.85, 43196.63322),\n                   (1576166400000, 143.85, 145.06, 145.66, 143.44, 33563.00003),\n                   (1576180800000, 145.05, 144.87, 145.85, 144.5, 25491.52833),\n                   (1576195200000, 144.87, 144.6, 145.28, 144.22, 22039.34145),\n                   (1576209600000, 144.6, 144.45, 145.05, 144.26, 17657.59388),\n                   (1576224000000, 144.47, 144.44, 146.0, 142.8, 47793.14329),\n                   (1576238400000, 144.41, 144.59, 144.78, 143.83, 28573.15224),\n                   (1576252800000, 144.58, 144.48, 145.25, 144.35, 30260.69457),\n                   (1576267200000, 144.48, 144.8, 144.82, 143.94, 14371.26013),\n                   (1576281600000, 144.8, 144.58, 145.07, 144.28, 11535.79899),\n                   (1576296000000, 144.58, 143.96, 144.78, 143.62, 14900.82559),\n                   (1576310400000, 143.97, 143.22, 144.0, 142.3, 30718.28981),\n                   (1576324800000, 143.23, 141.7, 143.26, 141.19, 29105.57297),\n                   (1576339200000, 141.75, 142.16, 142.65, 141.18, 29982.61731),\n                   (1576353600000, 142.14, 141.79, 142.4, 141.64, 9989.48734),\n                   (1576368000000, 141.79, 141.02, 141.97, 139.92, 31283.91884),\n                   (1576382400000, 141.01, 143.25, 144.12, 140.57, 40269.10224),\n                   (1576396800000, 143.28, 142.75, 143.97, 142.27, 27656.69354),\n                   (1576411200000, 142.75, 143.14, 143.44, 142.01, 25739.84698),\n                   (1576425600000, 143.14, 142.85, 143.28, 142.39, 13911.23403),\n                   (1576440000000, 142.85, 142.46, 143.17, 142.02, 12328.86314),\n                   (1576454400000, 142.46, 141.39, 142.72, 141.04, 18427.64349),\n                   (1576468800000, 141.4, 141.27, 141.99, 140.86, 25536.78779),\n                   (1576483200000, 141.28, 141.1, 141.58, 140.3, 33342.06145),\n                   (1576497600000, 141.12, 140.97, 142.29, 140.7, 43879.82606),\n                   (1576512000000, 140.96, 131.79, 141.29, 127.93, 249885.64851),\n                   (1576526400000, 131.76, 132.73, 132.98, 130.95, 99946.89212),\n                   (1576540800000, 132.72, 131.97, 132.98, 130.8, 37233.03463),\n                   (1576555200000, 131.98, 131.05, 132.2, 130.82, 52397.11426),\n                   (1576569600000, 131.05, 132.23, 132.32, 130.8, 43057.15502),\n                   (1576584000000, 132.27, 127.23, 132.45, 126.49, 155655.16124),\n                   (1576598400000, 127.23, 122.85, 128.54, 122.5, 166841.55954),\n                   (1576612800000, 122.83, 121.88, 123.33, 119.11, 108073.33532),\n                   (1576627200000, 121.88, 123.9, 125.78, 121.33, 76793.22382),\n                   (1576641600000, 123.89, 121.69, 124.48, 120.67, 77164.25529),\n                   (1576656000000, 121.68, 121.67, 123.98, 121.33, 86415.70582),\n                   (1576670400000, 121.68, 127.32, 128.69, 116.26, 339740.14364),\n                   (1576684800000, 127.37, 128.74, 129.4, 125.67, 123825.57511),\n                   (1576699200000, 128.7, 132.78, 134.87, 128.26, 181022.00966),\n                   (1576713600000, 132.8, 129.02, 134.0, 126.5, 123082.11205),\n                   (1576728000000, 129.02, 127.45, 129.03, 127.24, 49214.91773),\n                   (1576742400000, 127.46, 126.05, 128.47, 125.69, 77885.23575),\n                   (1576756800000, 126.07, 127.35, 127.91, 125.86, 69892.35849),\n                   (1576771200000, 127.33, 127.5, 128.69, 126.43, 49467.413),\n                   (1576785600000, 127.52, 128.1, 128.39, 126.01, 51132.78018),\n                   (1576800000000, 128.1, 126.88, 128.6, 126.25, 39549.05608),\n                   (1576814400000, 126.88, 127.18, 127.37, 125.84, 29147.74479),\n                   (1576828800000, 127.18, 127.37, 127.5, 126.5, 34610.98361),\n                   (1576843200000, 127.39, 127.41, 129.39, 126.72, 60275.69681),\n                   (1576857600000, 127.41, 128.03, 128.5, 126.98, 31664.60109),\n                   (1576872000000, 128.03, 128.19, 128.6, 127.74, 18649.38492),\n                   (1576886400000, 128.19, 127.31, 128.4, 126.97, 26395.16905),\n                   (1576900800000, 127.31, 127.02, 127.8, 126.84, 24673.7469),\n                   (1576915200000, 127.03, 127.39, 127.87, 126.5, 29467.89196),\n                   (1576929600000, 127.4, 127.34, 127.8, 126.64, 28235.03061),\n                   (1576944000000, 127.33, 127.01, 127.53, 126.77, 11844.541),\n                   (1576958400000, 127.03, 126.99, 127.59, 126.77, 14579.73689),\n                   (1576972800000, 127.0, 127.14, 127.45, 126.82, 12937.49508),\n                   (1576987200000, 127.15, 129.27, 129.4, 126.87, 29219.81714),\n                   (1577001600000, 129.3, 129.05, 130.99, 128.56, 53002.751),\n                   (1577016000000, 129.03, 129.53, 130.0, 129.02, 22740.64493),\n                   (1577030400000, 129.57, 131.94, 132.5, 129.31, 84940.66311),\n                   (1577044800000, 131.94, 132.09, 133.07, 131.19, 50299.35287),\n                   (1577059200000, 132.12, 133.87, 135.1, 132.1, 86402.71507),\n                   (1577073600000, 133.85, 131.67, 133.99, 130.87, 60396.00282),\n                   (1577088000000, 131.67, 132.97, 133.52, 131.47, 47626.43829),\n                   (1577102400000, 132.97, 133.26, 133.92, 132.44, 51211.55359),\n                   (1577116800000, 133.22, 129.08, 134.42, 128.16, 120922.67301),\n                   (1577131200000, 129.06, 127.8, 129.14, 126.0, 55041.37377),\n                   (1577145600000, 127.8, 127.67, 128.53, 127.29, 36234.04195),\n                   (1577160000000, 127.68, 127.15, 128.37, 126.61, 33770.72865),\n                   (1577174400000, 127.17, 128.62, 129.04, 126.7, 33720.76499),\n                   (1577188800000, 128.62, 127.88, 129.69, 127.08, 40009.23138),\n                   (1577203200000, 127.88, 127.8, 128.52, 126.8, 39639.60512),\n                   (1577217600000, 127.84, 127.75, 128.44, 127.3, 17262.72889),\n                   (1577232000000, 127.7, 125.74, 127.84, 125.11, 43232.3271),\n                   (1577246400000, 125.72, 125.66, 126.45, 123.07, 42223.86157),\n                   (1577260800000, 125.67, 124.38, 126.12, 124.08, 33182.93001),\n                   (1577275200000, 124.38, 124.42, 125.56, 123.35, 44404.7648),\n                   (1577289600000, 124.42, 125.43, 125.82, 123.41, 40741.51645),\n                   (1577304000000, 125.44, 125.09, 125.97, 124.91, 21219.09097),\n                   (1577318400000, 125.09, 124.52, 125.43, 124.32, 17019.466),\n                   (1577332800000, 124.52, 124.96, 125.08, 124.37, 19861.16426),\n                   (1577347200000, 124.96, 125.14, 126.08, 124.91, 24661.11897),\n                   (1577361600000, 125.15, 126.18, 126.69, 124.99, 29940.72332),\n                   (1577376000000, 126.18, 128.97, 132.26, 125.55, 119777.37179),\n                   (1577390400000, 128.92, 125.58, 129.59, 124.33, 63726.67663),\n                   (1577404800000, 125.58, 126.45, 126.63, 125.12, 24291.22232),\n                   (1577419200000, 126.47, 124.99, 126.54, 124.47, 37397.85854),\n                   (1577433600000, 124.99, 123.66, 125.37, 121.91, 56238.67029),\n                   (1577448000000, 123.66, 126.11, 126.6, 122.97, 65440.82683),\n                   (1577462400000, 126.09, 125.35, 127.1, 124.56, 40119.50122),\n                   (1577476800000, 125.35, 126.29, 126.76, 125.14, 16524.29531),\n                   (1577491200000, 126.28, 127.08, 128.31, 125.84, 33053.03344),\n                   (1577505600000, 127.08, 127.26, 128.59, 126.69, 36952.72514),\n                   (1577520000000, 127.25, 127.34, 128.0, 126.6, 24806.14657),\n                   (1577534400000, 127.31, 127.42, 128.49, 126.96, 22563.64807),\n                   (1577548800000, 127.44, 129.04, 129.68, 126.84, 57033.85921),\n                   (1577563200000, 129.04, 128.11, 129.27, 127.9, 22484.11034),\n                   (1577577600000, 128.11, 127.94, 128.16, 127.52, 16121.34435),\n                   (1577592000000, 127.97, 128.43, 128.87, 127.61, 19191.9311),\n                   (1577606400000, 128.43, 129.39, 129.42, 127.99, 24854.72658),\n                   (1577620800000, 129.38, 131.99, 132.44, 128.97, 79602.10923),\n                   (1577635200000, 131.98, 134.85, 134.95, 131.86, 68122.10168),\n                   (1577649600000, 134.85, 134.36, 138.07, 132.87, 108455.05372),\n                   (1577664000000, 134.36, 134.0, 134.66, 133.14, 44829.29349),\n                   (1577678400000, 134.0, 135.59, 136.24, 133.99, 49636.89),\n                   (1577692800000, 135.62, 133.11, 135.62, 132.45, 80861.58595),\n                   (1577707200000, 133.1, 130.63, 133.7, 130.3, 79506.02749),\n                   (1577721600000, 130.64, 131.32, 131.99, 130.35, 34803.76383),\n                   (1577736000000, 131.31, 131.59, 132.69, 131.05, 30709.6588),\n                   (1577750400000, 131.61, 131.26, 131.96, 130.76, 25129.15648),\n                   (1577764800000, 131.25, 132.2, 133.07, 131.07, 44162.78572),\n                   (1577779200000, 132.17, 131.92, 132.23, 131.22, 32555.05368),\n                   (1577793600000, 131.96, 129.73, 133.68, 128.9, 93106.70137),\n                   (1577808000000, 129.71, 128.49, 130.51, 128.42, 51027.12357),\n                   (1577822400000, 128.47, 129.16, 129.46, 128.17, 18953.16336),\n                   (1577836800000, 129.16, 130.2, 130.98, 128.68, 31685.73908),\n                   (1577851200000, 130.21, 130.24, 130.75, 130.11, 15457.58966),\n                   (1577865600000, 130.24, 130.74, 131.87, 129.87, 27822.94195),\n                   (1577880000000, 130.74, 132.08, 132.4, 130.7, 24010.28657),\n                   (1577894400000, 132.08, 131.86, 133.05, 131.57, 20158.22421),\n                   (1577908800000, 131.86, 130.77, 132.37, 129.74, 25635.7405),\n                   (1577923200000, 130.72, 129.1, 130.78, 128.77, 38485.79425),\n                   (1577937600000, 129.09, 129.26, 129.99, 128.69, 27580.21466),\n                   (1577952000000, 129.23, 129.53, 130.28, 129.21, 25341.92023),\n                   (1577966400000, 129.52, 129.59, 130.01, 128.9, 23157.01214),\n                   (1577980800000, 129.58, 127.62, 129.78, 126.38, 85534.55202),\n                   (1577995200000, 127.63, 127.19, 127.87, 126.79, 13657.56476),\n                   (1578009600000, 127.19, 126.89, 127.6, 125.88, 40142.23049),\n                   (1578024000000, 126.89, 128.86, 130.15, 126.83, 87499.1273),\n                   (1578038400000, 128.86, 132.46, 133.26, 128.8, 118287.73343),\n                   (1578052800000, 132.49, 132.53, 133.95, 130.93, 57993.70937),\n                   (1578067200000, 132.52, 133.49, 134.9, 131.94, 70186.34496),\n                   (1578081600000, 133.48, 134.35, 135.14, 132.16, 38946.0434),\n                   (1578096000000, 134.37, 133.34, 134.81, 132.79, 29800.56324),\n                   (1578110400000, 133.34, 133.91, 134.31, 133.0, 24369.40889),\n                   (1578124800000, 133.9, 133.77, 134.18, 133.07, 23918.50927),\n                   (1578139200000, 133.76, 133.26, 133.79, 132.5, 29237.72486),\n                   (1578153600000, 133.26, 133.72, 135.85, 132.8, 59872.55619),\n                   (1578168000000, 133.71, 134.2, 134.54, 133.44, 17077.40857),\n                   (1578182400000, 134.2, 136.16, 136.2, 134.19, 48831.80763),\n                   (1578196800000, 136.17, 136.02, 137.24, 135.62, 37286.06571),\n                   (1578211200000, 136.04, 135.07, 136.24, 134.7, 33422.08707),\n                   (1578225600000, 135.06, 137.26, 137.96, 135.06, 42242.22893),\n                   (1578240000000, 137.24, 137.97, 138.19, 136.64, 45304.34466),\n                   (1578254400000, 137.97, 135.37, 138.06, 134.21, 47033.91943),\n                   (1578268800000, 135.37, 139.49, 139.67, 134.86, 81445.25944),\n                   (1578283200000, 139.49, 138.87, 140.0, 138.54, 31894.33568),\n                   (1578297600000, 138.87, 141.54, 143.06, 138.81, 87065.38988),\n                   (1578312000000, 141.54, 140.2, 143.22, 139.08, 101925.464),\n                   (1578326400000, 140.19, 141.35, 141.86, 140.0, 35540.05181),\n                   (1578340800000, 141.35, 144.15, 144.41, 141.26, 70149.77294),\n                   (1578355200000, 144.14, 143.5, 145.31, 143.16, 84551.69867),\n                   (1578369600000, 143.5, 142.87, 143.62, 142.15, 42983.64715),\n                   (1578384000000, 142.87, 142.62, 143.78, 142.45, 45824.82864),\n                   (1578398400000, 142.62, 139.48, 142.66, 139.0, 85723.91095),\n                   (1578412800000, 139.48, 143.19, 144.3, 138.76, 120461.92484),\n                   (1578427200000, 143.19, 142.8, 145.0, 141.31, 68216.16256),\n                   (1578441600000, 142.8, 144.48, 147.77, 142.71, 159159.79692),\n                   (1578456000000, 144.54, 143.56, 145.25, 142.68, 63852.27131),\n                   (1578470400000, 143.53, 143.5, 144.5, 142.97, 41296.85943),\n                   (1578484800000, 143.52, 141.42, 143.69, 140.39, 108153.28432),\n                   (1578499200000, 141.42, 137.84, 141.91, 137.71, 135381.27344),\n                   (1578513600000, 137.89, 140.72, 141.5, 137.03, 62622.09222),\n                   (1578528000000, 140.76, 139.94, 141.5, 139.43, 48045.14801),\n                   (1578542400000, 139.96, 139.93, 140.39, 138.69, 46062.9573),\n                   (1578556800000, 139.91, 138.24, 140.06, 137.68, 55831.97865),\n                   (1578571200000, 138.24, 138.2, 138.93, 137.75, 38213.33663),\n                   (1578585600000, 138.19, 137.54, 138.49, 135.3, 86229.7553),\n                   (1578600000000, 137.52, 137.74, 139.33, 136.06, 91692.8898),\n                   (1578614400000, 137.73, 136.98, 137.98, 136.32, 31293.60499),\n                   (1578628800000, 136.99, 136.63, 137.14, 135.32, 39397.41753),\n                   (1578643200000, 136.62, 138.43, 139.03, 135.34, 70483.8208),\n                   (1578657600000, 138.42, 142.51, 143.0, 138.05, 99766.17131),\n                   (1578672000000, 142.53, 143.42, 145.17, 140.62, 128205.94818),\n                   (1578686400000, 143.42, 144.84, 145.0, 141.6, 40256.63226),\n                   (1578700800000, 144.83, 143.47, 145.33, 142.8, 60605.83939),\n                   (1578715200000, 143.47, 142.93, 144.05, 142.09, 40379.42314)]\n# keltner\ntest_candles_13 = [(1575576000000, 147.6, 148.1, 148.6, 147.37, 25217.5757),\n                   (1575590400000, 148.11, 147.26, 148.37, 146.91, 27447.3323),\n                   (1575604800000, 147.28, 147.73, 147.89, 147.01, 22167.14581),\n                   (1575619200000, 147.76, 146.49, 147.87, 145.74, 53909.23186),\n                   (1575633600000, 146.43, 147.21, 147.73, 146.14, 36314.09307),\n                   (1575648000000, 147.23, 148.11, 149.77, 146.81, 59085.27809),\n                   (1575662400000, 148.1, 148.45, 148.88, 147.75, 21751.60468),\n                   (1575676800000, 148.46, 148.39, 148.93, 148.05, 20244.20985),\n                   (1575691200000, 148.37, 148.48, 149.49, 148.37, 24431.94446),\n                   (1575705600000, 148.47, 147.92, 148.72, 147.14, 41084.33963),\n                   (1575720000000, 147.94, 148.28, 148.55, 147.46, 25786.69449),\n                   (1575734400000, 148.25, 147.86, 148.42, 147.31, 14739.56495),\n                   (1575748800000, 147.86, 147.14, 147.86, 146.85, 14184.9325),\n                   (1575763200000, 147.16, 146.69, 147.63, 146.11, 28000.18677),\n                   (1575777600000, 146.69, 147.01, 147.28, 146.36, 13086.18636),\n                   (1575792000000, 147.0, 148.14, 148.75, 146.89, 46831.93248),\n                   (1575806400000, 148.16, 150.68, 151.5, 147.8, 49532.17518),\n                   (1575820800000, 150.68, 150.42, 151.62, 149.89, 45154.25859),\n                   (1575835200000, 150.42, 150.44, 151.4, 150.12, 22696.86322),\n                   (1575849600000, 150.44, 150.31, 151.09, 149.42, 34574.3664),\n                   (1575864000000, 150.3, 149.31, 150.96, 149.1, 36952.47141),\n                   (1575878400000, 149.31, 149.12, 149.7, 148.79, 35235.53353),\n                   (1575892800000, 149.14, 148.02, 151.19, 147.0, 74728.4613),\n                   (1575907200000, 148.03, 147.33, 148.33, 147.0, 31595.38308),\n                   (1575921600000, 147.34, 147.38, 147.83, 146.56, 30689.77677),\n                   (1575936000000, 147.4, 147.23, 148.57, 146.18, 41719.21009),\n                   (1575950400000, 147.23, 147.27, 147.48, 146.8, 28132.93679),\n                   (1575964800000, 147.26, 147.23, 147.46, 146.67, 29370.52324),\n                   (1575979200000, 147.23, 145.14, 147.41, 144.99, 52728.39563),\n                   (1575993600000, 145.15, 144.97, 145.69, 144.39, 30935.46894),\n                   (1576008000000, 144.91, 145.56, 145.92, 143.81, 20329.31468),\n                   (1576022400000, 145.53, 145.49, 146.34, 144.98, 14376.76464),\n                   (1576036800000, 145.52, 145.67, 145.81, 144.84, 16870.60197),\n                   (1576051200000, 145.67, 145.61, 146.17, 145.3, 22984.67664),\n                   (1576065600000, 145.57, 142.8, 146.21, 142.12, 59688.9744),\n                   (1576080000000, 142.81, 142.79, 143.58, 142.19, 30949.7625),\n                   (1576094400000, 142.78, 143.39, 143.45, 142.45, 12972.32469),\n                   (1576108800000, 143.41, 142.08, 144.11, 139.24, 71279.57845),\n                   (1576123200000, 142.06, 141.99, 142.71, 141.64, 24942.66734),\n                   (1576137600000, 141.95, 144.15, 144.45, 141.12, 63141.897),\n                   (1576152000000, 144.13, 143.85, 144.79, 141.85, 43196.63322),\n                   (1576166400000, 143.85, 145.06, 145.66, 143.44, 33563.00003),\n                   (1576180800000, 145.05, 144.87, 145.85, 144.5, 25491.52833),\n                   (1576195200000, 144.87, 144.6, 145.28, 144.22, 22039.34145),\n                   (1576209600000, 144.6, 144.45, 145.05, 144.26, 17657.59388),\n                   (1576224000000, 144.47, 144.44, 146.0, 142.8, 47793.14329),\n                   (1576238400000, 144.41, 144.59, 144.78, 143.83, 28573.15224),\n                   (1576252800000, 144.58, 144.48, 145.25, 144.35, 30260.69457),\n                   (1576267200000, 144.48, 144.8, 144.82, 143.94, 14371.26013),\n                   (1576281600000, 144.8, 144.58, 145.07, 144.28, 11535.79899),\n                   (1576296000000, 144.58, 143.96, 144.78, 143.62, 14900.82559),\n                   (1576310400000, 143.97, 143.22, 144.0, 142.3, 30718.28981),\n                   (1576324800000, 143.23, 141.7, 143.26, 141.19, 29105.57297),\n                   (1576339200000, 141.75, 142.16, 142.65, 141.18, 29982.61731),\n                   (1576353600000, 142.14, 141.79, 142.4, 141.64, 9989.48734),\n                   (1576368000000, 141.79, 141.02, 141.97, 139.92, 31283.91884),\n                   (1576382400000, 141.01, 143.25, 144.12, 140.57, 40269.10224),\n                   (1576396800000, 143.28, 142.75, 143.97, 142.27, 27656.69354),\n                   (1576411200000, 142.75, 143.14, 143.44, 142.01, 25739.84698),\n                   (1576425600000, 143.14, 142.85, 143.28, 142.39, 13911.23403),\n                   (1576440000000, 142.85, 142.46, 143.17, 142.02, 12328.86314),\n                   (1576454400000, 142.46, 141.39, 142.72, 141.04, 18427.64349),\n                   (1576468800000, 141.4, 141.27, 141.99, 140.86, 25536.78779),\n                   (1576483200000, 141.28, 141.1, 141.58, 140.3, 33342.06145),\n                   (1576497600000, 141.12, 140.97, 142.29, 140.7, 43879.82606),\n                   (1576512000000, 140.96, 131.79, 141.29, 127.93, 249885.64851),\n                   (1576526400000, 131.76, 132.73, 132.98, 130.95, 99946.89212),\n                   (1576540800000, 132.72, 131.97, 132.98, 130.8, 37233.03463),\n                   (1576555200000, 131.98, 131.05, 132.2, 130.82, 52397.11426),\n                   (1576569600000, 131.05, 132.23, 132.32, 130.8, 43057.15502),\n                   (1576584000000, 132.27, 127.23, 132.45, 126.49, 155655.16124),\n                   (1576598400000, 127.23, 122.85, 128.54, 122.5, 166841.55954),\n                   (1576612800000, 122.83, 121.88, 123.33, 119.11, 108073.33532),\n                   (1576627200000, 121.88, 123.9, 125.78, 121.33, 76793.22382),\n                   (1576641600000, 123.89, 121.69, 124.48, 120.67, 77164.25529),\n                   (1576656000000, 121.68, 121.67, 123.98, 121.33, 86415.70582),\n                   (1576670400000, 121.68, 127.32, 128.69, 116.26, 339740.14364),\n                   (1576684800000, 127.37, 128.74, 129.4, 125.67, 123825.57511),\n                   (1576699200000, 128.7, 132.78, 134.87, 128.26, 181022.00966),\n                   (1576713600000, 132.8, 129.02, 134.0, 126.5, 123082.11205),\n                   (1576728000000, 129.02, 127.45, 129.03, 127.24, 49214.91773),\n                   (1576742400000, 127.46, 126.05, 128.47, 125.69, 77885.23575),\n                   (1576756800000, 126.07, 127.35, 127.91, 125.86, 69892.35849),\n                   (1576771200000, 127.33, 127.5, 128.69, 126.43, 49467.413),\n                   (1576785600000, 127.52, 128.1, 128.39, 126.01, 51132.78018),\n                   (1576800000000, 128.1, 126.88, 128.6, 126.25, 39549.05608),\n                   (1576814400000, 126.88, 127.18, 127.37, 125.84, 29147.74479),\n                   (1576828800000, 127.18, 127.37, 127.5, 126.5, 34610.98361),\n                   (1576843200000, 127.39, 127.41, 129.39, 126.72, 60275.69681),\n                   (1576857600000, 127.41, 128.03, 128.5, 126.98, 31664.60109),\n                   (1576872000000, 128.03, 128.19, 128.6, 127.74, 18649.38492),\n                   (1576886400000, 128.19, 127.31, 128.4, 126.97, 26395.16905),\n                   (1576900800000, 127.31, 127.02, 127.8, 126.84, 24673.7469),\n                   (1576915200000, 127.03, 127.39, 127.87, 126.5, 29467.89196),\n                   (1576929600000, 127.4, 127.34, 127.8, 126.64, 28235.03061),\n                   (1576944000000, 127.33, 127.01, 127.53, 126.77, 11844.541),\n                   (1576958400000, 127.03, 126.99, 127.59, 126.77, 14579.73689),\n                   (1576972800000, 127.0, 127.14, 127.45, 126.82, 12937.49508),\n                   (1576987200000, 127.15, 129.27, 129.4, 126.87, 29219.81714),\n                   (1577001600000, 129.3, 129.05, 130.99, 128.56, 53002.751),\n                   (1577016000000, 129.03, 129.53, 130.0, 129.02, 22740.64493),\n                   (1577030400000, 129.57, 131.94, 132.5, 129.31, 84940.66311),\n                   (1577044800000, 131.94, 132.09, 133.07, 131.19, 50299.35287),\n                   (1577059200000, 132.12, 133.87, 135.1, 132.1, 86402.71507),\n                   (1577073600000, 133.85, 131.67, 133.99, 130.87, 60396.00282),\n                   (1577088000000, 131.67, 132.97, 133.52, 131.47, 47626.43829),\n                   (1577102400000, 132.97, 133.26, 133.92, 132.44, 51211.55359),\n                   (1577116800000, 133.22, 129.08, 134.42, 128.16, 120922.67301),\n                   (1577131200000, 129.06, 127.8, 129.14, 126.0, 55041.37377),\n                   (1577145600000, 127.8, 127.67, 128.53, 127.29, 36234.04195),\n                   (1577160000000, 127.68, 127.15, 128.37, 126.61, 33770.72865),\n                   (1577174400000, 127.17, 128.62, 129.04, 126.7, 33720.76499),\n                   (1577188800000, 128.62, 127.88, 129.69, 127.08, 40009.23138),\n                   (1577203200000, 127.88, 127.8, 128.52, 126.8, 39639.60512),\n                   (1577217600000, 127.84, 127.75, 128.44, 127.3, 17262.72889),\n                   (1577232000000, 127.7, 125.74, 127.84, 125.11, 43232.3271),\n                   (1577246400000, 125.72, 125.66, 126.45, 123.07, 42223.86157),\n                   (1577260800000, 125.67, 124.38, 126.12, 124.08, 33182.93001),\n                   (1577275200000, 124.38, 124.42, 125.56, 123.35, 44404.7648),\n                   (1577289600000, 124.42, 125.43, 125.82, 123.41, 40741.51645),\n                   (1577304000000, 125.44, 125.09, 125.97, 124.91, 21219.09097),\n                   (1577318400000, 125.09, 124.52, 125.43, 124.32, 17019.466),\n                   (1577332800000, 124.52, 124.96, 125.08, 124.37, 19861.16426),\n                   (1577347200000, 124.96, 125.14, 126.08, 124.91, 24661.11897),\n                   (1577361600000, 125.15, 126.18, 126.69, 124.99, 29940.72332),\n                   (1577376000000, 126.18, 128.97, 132.26, 125.55, 119777.37179),\n                   (1577390400000, 128.92, 125.58, 129.59, 124.33, 63726.67663),\n                   (1577404800000, 125.58, 126.45, 126.63, 125.12, 24291.22232),\n                   (1577419200000, 126.47, 124.99, 126.54, 124.47, 37397.85854),\n                   (1577433600000, 124.99, 123.66, 125.37, 121.91, 56238.67029),\n                   (1577448000000, 123.66, 126.11, 126.6, 122.97, 65440.82683),\n                   (1577462400000, 126.09, 125.35, 127.1, 124.56, 40119.50122),\n                   (1577476800000, 125.35, 126.29, 126.76, 125.14, 16524.29531),\n                   (1577491200000, 126.28, 127.08, 128.31, 125.84, 33053.03344),\n                   (1577505600000, 127.08, 127.26, 128.59, 126.69, 36952.72514),\n                   (1577520000000, 127.25, 127.34, 128.0, 126.6, 24806.14657),\n                   (1577534400000, 127.31, 127.42, 128.49, 126.96, 22563.64807),\n                   (1577548800000, 127.44, 129.04, 129.68, 126.84, 57033.85921),\n                   (1577563200000, 129.04, 128.11, 129.27, 127.9, 22484.11034),\n                   (1577577600000, 128.11, 127.94, 128.16, 127.52, 16121.34435),\n                   (1577592000000, 127.97, 128.43, 128.87, 127.61, 19191.9311),\n                   (1577606400000, 128.43, 129.39, 129.42, 127.99, 24854.72658),\n                   (1577620800000, 129.38, 131.99, 132.44, 128.97, 79602.10923),\n                   (1577635200000, 131.98, 134.85, 134.95, 131.86, 68122.10168),\n                   (1577649600000, 134.85, 134.36, 138.07, 132.87, 108455.05372),\n                   (1577664000000, 134.36, 134.0, 134.66, 133.14, 44829.29349),\n                   (1577678400000, 134.0, 135.59, 136.24, 133.99, 49636.89),\n                   (1577692800000, 135.62, 133.11, 135.62, 132.45, 80861.58595),\n                   (1577707200000, 133.1, 130.63, 133.7, 130.3, 79506.02749),\n                   (1577721600000, 130.64, 131.32, 131.99, 130.35, 34803.76383),\n                   (1577736000000, 131.31, 131.59, 132.69, 131.05, 30709.6588),\n                   (1577750400000, 131.61, 131.26, 131.96, 130.76, 25129.15648),\n                   (1577764800000, 131.25, 132.2, 133.07, 131.07, 44162.78572),\n                   (1577779200000, 132.17, 131.92, 132.23, 131.22, 32555.05368),\n                   (1577793600000, 131.96, 129.73, 133.68, 128.9, 93106.70137),\n                   (1577808000000, 129.71, 128.49, 130.51, 128.42, 51027.12357),\n                   (1577822400000, 128.47, 129.16, 129.46, 128.17, 18953.16336),\n                   (1577836800000, 129.16, 130.2, 130.98, 128.68, 31685.73908),\n                   (1577851200000, 130.21, 130.24, 130.75, 130.11, 15457.58966),\n                   (1577865600000, 130.24, 130.74, 131.87, 129.87, 27822.94195),\n                   (1577880000000, 130.74, 132.08, 132.4, 130.7, 24010.28657),\n                   (1577894400000, 132.08, 131.86, 133.05, 131.57, 20158.22421),\n                   (1577908800000, 131.86, 130.77, 132.37, 129.74, 25635.7405),\n                   (1577923200000, 130.72, 129.1, 130.78, 128.77, 38485.79425),\n                   (1577937600000, 129.09, 129.26, 129.99, 128.69, 27580.21466),\n                   (1577952000000, 129.23, 129.53, 130.28, 129.21, 25341.92023),\n                   (1577966400000, 129.52, 129.59, 130.01, 128.9, 23157.01214),\n                   (1577980800000, 129.58, 127.62, 129.78, 126.38, 85534.55202),\n                   (1577995200000, 127.63, 127.19, 127.87, 126.79, 13657.56476),\n                   (1578009600000, 127.19, 126.89, 127.6, 125.88, 40142.23049),\n                   (1578024000000, 126.89, 128.86, 130.15, 126.83, 87499.1273),\n                   (1578038400000, 128.86, 132.46, 133.26, 128.8, 118287.73343),\n                   (1578052800000, 132.49, 132.53, 133.95, 130.93, 57993.70937),\n                   (1578067200000, 132.52, 133.49, 134.9, 131.94, 70186.34496),\n                   (1578081600000, 133.48, 134.35, 135.14, 132.16, 38946.0434),\n                   (1578096000000, 134.37, 133.34, 134.81, 132.79, 29800.56324),\n                   (1578110400000, 133.34, 133.91, 134.31, 133.0, 24369.40889),\n                   (1578124800000, 133.9, 133.77, 134.18, 133.07, 23918.50927),\n                   (1578139200000, 133.76, 133.26, 133.79, 132.5, 29237.72486),\n                   (1578153600000, 133.26, 133.72, 135.85, 132.8, 59872.55619),\n                   (1578168000000, 133.71, 134.2, 134.54, 133.44, 17077.40857),\n                   (1578182400000, 134.2, 136.16, 136.2, 134.19, 48831.80763),\n                   (1578196800000, 136.17, 136.02, 137.24, 135.62, 37286.06571),\n                   (1578211200000, 136.04, 135.07, 136.24, 134.7, 33422.08707),\n                   (1578225600000, 135.06, 137.26, 137.96, 135.06, 42242.22893),\n                   (1578240000000, 137.24, 137.97, 138.19, 136.64, 45304.34466),\n                   (1578254400000, 137.97, 135.37, 138.06, 134.21, 47033.91943),\n                   (1578268800000, 135.37, 139.49, 139.67, 134.86, 81445.25944),\n                   (1578283200000, 139.49, 138.87, 140.0, 138.54, 31894.33568),\n                   (1578297600000, 138.87, 141.54, 143.06, 138.81, 87065.38988),\n                   (1578312000000, 141.54, 140.2, 143.22, 139.08, 101925.464),\n                   (1578326400000, 140.19, 141.35, 141.86, 140.0, 35540.05181),\n                   (1578340800000, 141.35, 144.15, 144.41, 141.26, 70149.77294),\n                   (1578355200000, 144.14, 143.5, 145.31, 143.16, 84551.69867),\n                   (1578369600000, 143.5, 142.87, 143.62, 142.15, 42983.64715),\n                   (1578384000000, 142.87, 142.62, 143.78, 142.45, 45824.82864),\n                   (1578398400000, 142.62, 139.48, 142.66, 139.0, 85723.91095),\n                   (1578412800000, 139.48, 143.19, 144.3, 138.76, 120461.92484),\n                   (1578427200000, 143.19, 142.8, 145.0, 141.31, 68216.16256),\n                   (1578441600000, 142.8, 144.48, 147.77, 142.71, 159159.79692),\n                   (1578456000000, 144.54, 143.56, 145.25, 142.68, 63852.27131),\n                   (1578470400000, 143.53, 143.5, 144.5, 142.97, 41296.85943),\n                   (1578484800000, 143.52, 141.42, 143.69, 140.39, 108153.28432),\n                   (1578499200000, 141.42, 137.84, 141.91, 137.71, 135381.27344),\n                   (1578513600000, 137.89, 140.72, 141.5, 137.03, 62622.09222),\n                   (1578528000000, 140.76, 139.94, 141.5, 139.43, 48045.14801),\n                   (1578542400000, 139.96, 139.93, 140.39, 138.69, 46062.9573),\n                   (1578556800000, 139.91, 138.24, 140.06, 137.68, 55831.97865),\n                   (1578571200000, 138.24, 138.2, 138.93, 137.75, 38213.33663),\n                   (1578585600000, 138.19, 136.62, 138.49, 136.37, 13205.50156)]\n# rsi\ntest_candles_14 = [(1575720000000, 147.94, 148.28, 148.55, 147.46, 25786.69449),\n                   (1575734400000, 148.25, 147.86, 148.42, 147.31, 14739.56495),\n                   (1575748800000, 147.86, 147.14, 147.86, 146.85, 14184.9325),\n                   (1575763200000, 147.16, 146.69, 147.63, 146.11, 28000.18677),\n                   (1575777600000, 146.69, 147.01, 147.28, 146.36, 13086.18636),\n                   (1575792000000, 147.0, 148.14, 148.75, 146.89, 46831.93248),\n                   (1575806400000, 148.16, 150.68, 151.5, 147.8, 49532.17518),\n                   (1575820800000, 150.68, 150.42, 151.62, 149.89, 45154.25859),\n                   (1575835200000, 150.42, 150.44, 151.4, 150.12, 22696.86322),\n                   (1575849600000, 150.44, 150.31, 151.09, 149.42, 34574.3664),\n                   (1575864000000, 150.3, 149.31, 150.96, 149.1, 36952.47141),\n                   (1575878400000, 149.31, 149.12, 149.7, 148.79, 35235.53353),\n                   (1575892800000, 149.14, 148.02, 151.19, 147.0, 74728.4613),\n                   (1575907200000, 148.03, 147.33, 148.33, 147.0, 31595.38308),\n                   (1575921600000, 147.34, 147.38, 147.83, 146.56, 30689.77677),\n                   (1575936000000, 147.4, 147.23, 148.57, 146.18, 41719.21009),\n                   (1575950400000, 147.23, 147.27, 147.48, 146.8, 28132.93679),\n                   (1575964800000, 147.26, 147.23, 147.46, 146.67, 29370.52324),\n                   (1575979200000, 147.23, 145.14, 147.41, 144.99, 52728.39563),\n                   (1575993600000, 145.15, 144.97, 145.69, 144.39, 30935.46894),\n                   (1576008000000, 144.91, 145.56, 145.92, 143.81, 20329.31468),\n                   (1576022400000, 145.53, 145.49, 146.34, 144.98, 14376.76464),\n                   (1576036800000, 145.52, 145.67, 145.81, 144.84, 16870.60197),\n                   (1576051200000, 145.67, 145.61, 146.17, 145.3, 22984.67664),\n                   (1576065600000, 145.57, 142.8, 146.21, 142.12, 59688.9744),\n                   (1576080000000, 142.81, 142.79, 143.58, 142.19, 30949.7625),\n                   (1576094400000, 142.78, 143.39, 143.45, 142.45, 12972.32469),\n                   (1576108800000, 143.41, 142.08, 144.11, 139.24, 71279.57845),\n                   (1576123200000, 142.06, 141.99, 142.71, 141.64, 24942.66734),\n                   (1576137600000, 141.95, 144.15, 144.45, 141.12, 63141.897),\n                   (1576152000000, 144.13, 143.85, 144.79, 141.85, 43196.63322),\n                   (1576166400000, 143.85, 145.06, 145.66, 143.44, 33563.00003),\n                   (1576180800000, 145.05, 144.87, 145.85, 144.5, 25491.52833),\n                   (1576195200000, 144.87, 144.6, 145.28, 144.22, 22039.34145),\n                   (1576209600000, 144.6, 144.45, 145.05, 144.26, 17657.59388),\n                   (1576224000000, 144.47, 144.44, 146.0, 142.8, 47793.14329),\n                   (1576238400000, 144.41, 144.59, 144.78, 143.83, 28573.15224),\n                   (1576252800000, 144.58, 144.48, 145.25, 144.35, 30260.69457),\n                   (1576267200000, 144.48, 144.8, 144.82, 143.94, 14371.26013),\n                   (1576281600000, 144.8, 144.58, 145.07, 144.28, 11535.79899),\n                   (1576296000000, 144.58, 143.96, 144.78, 143.62, 14900.82559),\n                   (1576310400000, 143.97, 143.22, 144.0, 142.3, 30718.28981),\n                   (1576324800000, 143.23, 141.7, 143.26, 141.19, 29105.57297),\n                   (1576339200000, 141.75, 142.16, 142.65, 141.18, 29982.61731),\n                   (1576353600000, 142.14, 141.79, 142.4, 141.64, 9989.48734),\n                   (1576368000000, 141.79, 141.02, 141.97, 139.92, 31283.91884),\n                   (1576382400000, 141.01, 143.25, 144.12, 140.57, 40269.10224),\n                   (1576396800000, 143.28, 142.75, 143.97, 142.27, 27656.69354),\n                   (1576411200000, 142.75, 143.14, 143.44, 142.01, 25739.84698),\n                   (1576425600000, 143.14, 142.85, 143.28, 142.39, 13911.23403),\n                   (1576440000000, 142.85, 142.46, 143.17, 142.02, 12328.86314),\n                   (1576454400000, 142.46, 141.39, 142.72, 141.04, 18427.64349),\n                   (1576468800000, 141.4, 141.27, 141.99, 140.86, 25536.78779),\n                   (1576483200000, 141.28, 141.1, 141.58, 140.3, 33342.06145),\n                   (1576497600000, 141.12, 140.97, 142.29, 140.7, 43879.82606),\n                   (1576512000000, 140.96, 131.79, 141.29, 127.93, 249885.64851),\n                   (1576526400000, 131.76, 132.73, 132.98, 130.95, 99946.89212),\n                   (1576540800000, 132.72, 131.97, 132.98, 130.8, 37233.03463),\n                   (1576555200000, 131.98, 131.05, 132.2, 130.82, 52397.11426),\n                   (1576569600000, 131.05, 132.23, 132.32, 130.8, 43057.15502),\n                   (1576584000000, 132.27, 127.23, 132.45, 126.49, 155655.16124),\n                   (1576598400000, 127.23, 122.85, 128.54, 122.5, 166841.55954),\n                   (1576612800000, 122.83, 121.88, 123.33, 119.11, 108073.33532),\n                   (1576627200000, 121.88, 123.9, 125.78, 121.33, 76793.22382),\n                   (1576641600000, 123.89, 121.69, 124.48, 120.67, 77164.25529),\n                   (1576656000000, 121.68, 121.67, 123.98, 121.33, 86415.70582),\n                   (1576670400000, 121.68, 127.32, 128.69, 116.26, 339740.14364),\n                   (1576684800000, 127.37, 128.74, 129.4, 125.67, 123825.57511),\n                   (1576699200000, 128.7, 132.78, 134.87, 128.26, 181022.00966),\n                   (1576713600000, 132.8, 129.02, 134.0, 126.5, 123082.11205),\n                   (1576728000000, 129.02, 127.45, 129.03, 127.24, 49214.91773),\n                   (1576742400000, 127.46, 126.05, 128.47, 125.69, 77885.23575),\n                   (1576756800000, 126.07, 127.35, 127.91, 125.86, 69892.35849),\n                   (1576771200000, 127.33, 127.5, 128.69, 126.43, 49467.413),\n                   (1576785600000, 127.52, 128.1, 128.39, 126.01, 51132.78018),\n                   (1576800000000, 128.1, 126.88, 128.6, 126.25, 39549.05608),\n                   (1576814400000, 126.88, 127.18, 127.37, 125.84, 29147.74479),\n                   (1576828800000, 127.18, 127.37, 127.5, 126.5, 34610.98361),\n                   (1576843200000, 127.39, 127.41, 129.39, 126.72, 60275.69681),\n                   (1576857600000, 127.41, 128.03, 128.5, 126.98, 31664.60109),\n                   (1576872000000, 128.03, 128.19, 128.6, 127.74, 18649.38492),\n                   (1576886400000, 128.19, 127.31, 128.4, 126.97, 26395.16905),\n                   (1576900800000, 127.31, 127.02, 127.8, 126.84, 24673.7469),\n                   (1576915200000, 127.03, 127.39, 127.87, 126.5, 29467.89196),\n                   (1576929600000, 127.4, 127.34, 127.8, 126.64, 28235.03061),\n                   (1576944000000, 127.33, 127.01, 127.53, 126.77, 11844.541),\n                   (1576958400000, 127.03, 126.99, 127.59, 126.77, 14579.73689),\n                   (1576972800000, 127.0, 127.14, 127.45, 126.82, 12937.49508),\n                   (1576987200000, 127.15, 129.27, 129.4, 126.87, 29219.81714),\n                   (1577001600000, 129.3, 129.05, 130.99, 128.56, 53002.751),\n                   (1577016000000, 129.03, 129.53, 130.0, 129.02, 22740.64493),\n                   (1577030400000, 129.57, 131.94, 132.5, 129.31, 84940.66311),\n                   (1577044800000, 131.94, 132.09, 133.07, 131.19, 50299.35287),\n                   (1577059200000, 132.12, 133.87, 135.1, 132.1, 86402.71507),\n                   (1577073600000, 133.85, 131.67, 133.99, 130.87, 60396.00282),\n                   (1577088000000, 131.67, 132.97, 133.52, 131.47, 47626.43829),\n                   (1577102400000, 132.97, 133.26, 133.92, 132.44, 51211.55359),\n                   (1577116800000, 133.22, 129.08, 134.42, 128.16, 120922.67301),\n                   (1577131200000, 129.06, 127.8, 129.14, 126.0, 55041.37377),\n                   (1577145600000, 127.8, 127.67, 128.53, 127.29, 36234.04195),\n                   (1577160000000, 127.68, 127.15, 128.37, 126.61, 33770.72865),\n                   (1577174400000, 127.17, 128.62, 129.04, 126.7, 33720.76499),\n                   (1577188800000, 128.62, 127.88, 129.69, 127.08, 40009.23138),\n                   (1577203200000, 127.88, 127.8, 128.52, 126.8, 39639.60512),\n                   (1577217600000, 127.84, 127.75, 128.44, 127.3, 17262.72889),\n                   (1577232000000, 127.7, 125.74, 127.84, 125.11, 43232.3271),\n                   (1577246400000, 125.72, 125.66, 126.45, 123.07, 42223.86157),\n                   (1577260800000, 125.67, 124.38, 126.12, 124.08, 33182.93001),\n                   (1577275200000, 124.38, 124.42, 125.56, 123.35, 44404.7648),\n                   (1577289600000, 124.42, 125.43, 125.82, 123.41, 40741.51645),\n                   (1577304000000, 125.44, 125.09, 125.97, 124.91, 21219.09097),\n                   (1577318400000, 125.09, 124.52, 125.43, 124.32, 17019.466),\n                   (1577332800000, 124.52, 124.96, 125.08, 124.37, 19861.16426),\n                   (1577347200000, 124.96, 125.14, 126.08, 124.91, 24661.11897),\n                   (1577361600000, 125.15, 126.18, 126.69, 124.99, 29940.72332),\n                   (1577376000000, 126.18, 128.97, 132.26, 125.55, 119777.37179),\n                   (1577390400000, 128.92, 125.58, 129.59, 124.33, 63726.67663),\n                   (1577404800000, 125.58, 126.45, 126.63, 125.12, 24291.22232),\n                   (1577419200000, 126.47, 124.99, 126.54, 124.47, 37397.85854),\n                   (1577433600000, 124.99, 123.66, 125.37, 121.91, 56238.67029),\n                   (1577448000000, 123.66, 126.11, 126.6, 122.97, 65440.82683),\n                   (1577462400000, 126.09, 125.35, 127.1, 124.56, 40119.50122),\n                   (1577476800000, 125.35, 126.29, 126.76, 125.14, 16524.29531),\n                   (1577491200000, 126.28, 127.08, 128.31, 125.84, 33053.03344),\n                   (1577505600000, 127.08, 127.26, 128.59, 126.69, 36952.72514),\n                   (1577520000000, 127.25, 127.34, 128.0, 126.6, 24806.14657),\n                   (1577534400000, 127.31, 127.42, 128.49, 126.96, 22563.64807),\n                   (1577548800000, 127.44, 129.04, 129.68, 126.84, 57033.85921),\n                   (1577563200000, 129.04, 128.11, 129.27, 127.9, 22484.11034),\n                   (1577577600000, 128.11, 127.94, 128.16, 127.52, 16121.34435),\n                   (1577592000000, 127.97, 128.43, 128.87, 127.61, 19191.9311),\n                   (1577606400000, 128.43, 129.39, 129.42, 127.99, 24854.72658),\n                   (1577620800000, 129.38, 131.99, 132.44, 128.97, 79602.10923),\n                   (1577635200000, 131.98, 134.85, 134.95, 131.86, 68122.10168),\n                   (1577649600000, 134.85, 134.36, 138.07, 132.87, 108455.05372),\n                   (1577664000000, 134.36, 134.0, 134.66, 133.14, 44829.29349),\n                   (1577678400000, 134.0, 135.59, 136.24, 133.99, 49636.89),\n                   (1577692800000, 135.62, 133.11, 135.62, 132.45, 80861.58595),\n                   (1577707200000, 133.1, 130.63, 133.7, 130.3, 79506.02749),\n                   (1577721600000, 130.64, 131.32, 131.99, 130.35, 34803.76383),\n                   (1577736000000, 131.31, 131.59, 132.69, 131.05, 30709.6588),\n                   (1577750400000, 131.61, 131.26, 131.96, 130.76, 25129.15648),\n                   (1577764800000, 131.25, 132.2, 133.07, 131.07, 44162.78572),\n                   (1577779200000, 132.17, 131.92, 132.23, 131.22, 32555.05368),\n                   (1577793600000, 131.96, 129.73, 133.68, 128.9, 93106.70137),\n                   (1577808000000, 129.71, 128.49, 130.51, 128.42, 51027.12357),\n                   (1577822400000, 128.47, 129.16, 129.46, 128.17, 18953.16336),\n                   (1577836800000, 129.16, 130.2, 130.98, 128.68, 31685.73908),\n                   (1577851200000, 130.21, 130.24, 130.75, 130.11, 15457.58966),\n                   (1577865600000, 130.24, 130.74, 131.87, 129.87, 27822.94195),\n                   (1577880000000, 130.74, 132.08, 132.4, 130.7, 24010.28657),\n                   (1577894400000, 132.08, 131.86, 133.05, 131.57, 20158.22421),\n                   (1577908800000, 131.86, 130.77, 132.37, 129.74, 25635.7405),\n                   (1577923200000, 130.72, 129.1, 130.78, 128.77, 38485.79425),\n                   (1577937600000, 129.09, 129.26, 129.99, 128.69, 27580.21466),\n                   (1577952000000, 129.23, 129.53, 130.28, 129.21, 25341.92023),\n                   (1577966400000, 129.52, 129.59, 130.01, 128.9, 23157.01214),\n                   (1577980800000, 129.58, 127.62, 129.78, 126.38, 85534.55202),\n                   (1577995200000, 127.63, 127.19, 127.87, 126.79, 13657.56476),\n                   (1578009600000, 127.19, 126.89, 127.6, 125.88, 40142.23049),\n                   (1578024000000, 126.89, 128.86, 130.15, 126.83, 87499.1273),\n                   (1578038400000, 128.86, 132.46, 133.26, 128.8, 118287.73343),\n                   (1578052800000, 132.49, 132.53, 133.95, 130.93, 57993.70937),\n                   (1578067200000, 132.52, 133.49, 134.9, 131.94, 70186.34496),\n                   (1578081600000, 133.48, 134.35, 135.14, 132.16, 38946.0434),\n                   (1578096000000, 134.37, 133.34, 134.81, 132.79, 29800.56324),\n                   (1578110400000, 133.34, 133.91, 134.31, 133.0, 24369.40889),\n                   (1578124800000, 133.9, 133.77, 134.18, 133.07, 23918.50927),\n                   (1578139200000, 133.76, 133.26, 133.79, 132.5, 29237.72486),\n                   (1578153600000, 133.26, 133.72, 135.85, 132.8, 59872.55619),\n                   (1578168000000, 133.71, 134.2, 134.54, 133.44, 17077.40857),\n                   (1578182400000, 134.2, 136.16, 136.2, 134.19, 48831.80763),\n                   (1578196800000, 136.17, 136.02, 137.24, 135.62, 37286.06571),\n                   (1578211200000, 136.04, 135.07, 136.24, 134.7, 33422.08707),\n                   (1578225600000, 135.06, 137.26, 137.96, 135.06, 42242.22893),\n                   (1578240000000, 137.24, 137.97, 138.19, 136.64, 45304.34466),\n                   (1578254400000, 137.97, 135.37, 138.06, 134.21, 47033.91943),\n                   (1578268800000, 135.37, 139.49, 139.67, 134.86, 81445.25944),\n                   (1578283200000, 139.49, 138.87, 140.0, 138.54, 31894.33568),\n                   (1578297600000, 138.87, 141.54, 143.06, 138.81, 87065.38988),\n                   (1578312000000, 141.54, 140.2, 143.22, 139.08, 101925.464),\n                   (1578326400000, 140.19, 141.35, 141.86, 140.0, 35540.05181),\n                   (1578340800000, 141.35, 144.15, 144.41, 141.26, 70149.77294),\n                   (1578355200000, 144.14, 143.5, 145.31, 143.16, 84551.69867),\n                   (1578369600000, 143.5, 142.87, 143.62, 142.15, 42983.64715),\n                   (1578384000000, 142.87, 142.62, 143.78, 142.45, 45824.82864),\n                   (1578398400000, 142.62, 139.48, 142.66, 139.0, 85723.91095),\n                   (1578412800000, 139.48, 143.19, 144.3, 138.76, 120461.92484),\n                   (1578427200000, 143.19, 142.8, 145.0, 141.31, 68216.16256),\n                   (1578441600000, 142.8, 144.48, 147.77, 142.71, 159159.79692),\n                   (1578456000000, 144.54, 143.56, 145.25, 142.68, 63852.27131),\n                   (1578470400000, 143.53, 143.5, 144.5, 142.97, 41296.85943),\n                   (1578484800000, 143.52, 141.42, 143.69, 140.39, 108153.28432),\n                   (1578499200000, 141.42, 137.84, 141.91, 137.71, 135381.27344),\n                   (1578513600000, 137.89, 140.72, 141.5, 137.03, 62622.09222),\n                   (1578528000000, 140.76, 139.94, 141.5, 139.43, 48045.14801),\n                   (1578542400000, 139.96, 139.93, 140.39, 138.69, 46062.9573),\n                   (1578556800000, 139.91, 138.24, 140.06, 137.68, 55831.97865),\n                   (1578571200000, 138.24, 138.2, 138.93, 137.75, 38213.33663),\n                   (1578585600000, 138.19, 137.54, 138.49, 135.3, 86229.7553),\n                   (1578600000000, 137.52, 137.74, 139.33, 136.06, 91692.8898),\n                   (1578614400000, 137.73, 136.98, 137.98, 136.32, 31293.60499),\n                   (1578628800000, 136.99, 136.63, 137.14, 135.32, 39397.41753),\n                   (1578643200000, 136.62, 138.43, 139.03, 135.34, 70483.8208),\n                   (1578657600000, 138.42, 142.51, 143.0, 138.05, 99766.17131),\n                   (1578672000000, 142.53, 143.42, 145.17, 140.62, 128205.94818),\n                   (1578686400000, 143.42, 144.84, 145.0, 141.6, 40256.63226),\n                   (1578700800000, 144.83, 143.47, 145.33, 142.8, 60605.83939),\n                   (1578715200000, 143.47, 142.93, 144.05, 142.09, 40379.42314)]\n# ichimoku\ntest_candles_15 = [(1576440000000, 7114.68, 7118.59, 7141.67, 7097.41, 2686.724639),\n                   (1576454400000, 7119.6, 7079.98, 7132.52, 7062.55, 3731.293058),\n                   (1576468800000, 7078.83, 7067.74, 7100.0, 7042.49, 5033.78929),\n                   (1576483200000, 7066.97, 7091.85, 7125.6, 7051.0, 4999.546508),\n                   (1576497600000, 7091.92, 7089.45, 7150.0, 7074.0, 7522.887707),\n                   (1576512000000, 7090.73, 6902.16, 7117.0, 6850.0, 15592.947643),\n                   (1576526400000, 6902.68, 6891.72, 6919.98, 6836.0, 6983.528853),\n                   (1576540800000, 6891.44, 6886.76, 6910.78, 6856.0, 3814.889254),\n                   (1576555200000, 6886.76, 6877.47, 6904.91, 6859.48, 4154.479319),\n                   (1576569600000, 6877.46, 6935.09, 6942.21, 6856.0, 6982.739309),\n                   (1576584000000, 6935.13, 6696.2, 6940.84, 6685.0, 16537.002323),\n                   (1576598400000, 6696.32, 6619.71, 6743.6, 6590.21, 12209.337598),\n                   (1576612800000, 6619.69, 6623.82, 6702.0, 6560.0, 10166.622126),\n                   (1576627200000, 6623.84, 6686.91, 6725.69, 6600.52, 6643.923799),\n                   (1576641600000, 6686.89, 6619.51, 6717.56, 6590.01, 7032.529585),\n                   (1576656000000, 6619.06, 6615.24, 6668.84, 6608.44, 6685.015862),\n                   (1576670400000, 6615.24, 6823.49, 6863.08, 6435.0, 31357.410249),\n                   (1576684800000, 6824.55, 6956.86, 6966.05, 6770.0, 15428.113085),\n                   (1576699200000, 6956.09, 7277.83, 7440.0, 6941.0, 28489.658671),\n                   (1576713600000, 7277.83, 7158.94, 7380.0, 7122.5, 14176.955662),\n                   (1576728000000, 7158.94, 7092.54, 7167.85, 7076.65, 7212.753978),\n                   (1576742400000, 7091.31, 7150.0, 7200.0, 7038.31, 11409.125439),\n                   (1576756800000, 7150.56, 7145.84, 7234.0, 7060.01, 12792.214099),\n                   (1576771200000, 7145.99, 7177.05, 7185.0, 7111.0, 5634.277409),\n                   (1576785600000, 7177.89, 7150.3, 7181.99, 7128.02, 4283.722488),\n                   (1576800000000, 7151.31, 7134.14, 7160.0, 7079.5, 5256.989617),\n                   (1576814400000, 7134.14, 7145.07, 7160.0, 7082.38, 4983.24011),\n                   (1576828800000, 7145.09, 7149.5, 7175.67, 7091.76, 4875.497684),\n                   (1576843200000, 7149.87, 7155.19, 7220.0, 7136.75, 7513.559372),\n                   (1576857600000, 7155.4, 7184.15, 7205.0, 7133.0, 5952.065196),\n                   (1576872000000, 7183.99, 7187.83, 7214.26, 7166.23, 3550.717226),\n                   (1576886400000, 7188.01, 7156.01, 7190.58, 7142.3, 3091.001125),\n                   (1576900800000, 7156.03, 7132.95, 7175.43, 7124.45, 3793.165236),\n                   (1576915200000, 7132.95, 7145.99, 7157.0, 7105.0, 3784.188979),\n                   (1576929600000, 7145.97, 7139.32, 7152.12, 7118.05, 2981.495319),\n                   (1576944000000, 7139.32, 7145.82, 7154.23, 7126.0, 2573.443322),\n                   (1576958400000, 7145.04, 7132.75, 7180.0, 7122.0, 3243.880047),\n                   (1576972800000, 7131.59, 7137.26, 7148.82, 7122.47, 1899.983537),\n                   (1576987200000, 7136.94, 7181.85, 7192.99, 7125.0, 3133.269235),\n                   (1577001600000, 7180.32, 7165.36, 7200.3, 7145.84, 4300.635368),\n                   (1577016000000, 7164.4, 7186.82, 7197.0, 7155.62, 3098.613582),\n                   (1577030400000, 7186.78, 7398.35, 7456.67, 7165.0, 18282.519985),\n                   (1577044800000, 7399.46, 7501.44, 7518.54, 7374.16, 8422.433443),\n                   (1577059200000, 7500.71, 7590.02, 7634.55, 7500.36, 14736.639008),\n                   (1577073600000, 7589.55, 7494.21, 7593.5, 7441.6, 8524.122492),\n                   (1577088000000, 7494.91, 7553.11, 7564.93, 7485.83, 6005.218281),\n                   (1577102400000, 7553.03, 7585.87, 7612.0, 7475.65, 10303.800871),\n                   (1577116800000, 7585.87, 7432.07, 7695.38, 7355.0, 19113.814782),\n                   (1577131200000, 7432.38, 7317.09, 7433.9, 7265.84, 9368.401769),\n                   (1577145600000, 7317.3, 7313.8, 7339.5, 7285.0, 3919.788464),\n                   (1577160000000, 7313.88, 7264.92, 7342.27, 7227.35, 5363.396873),\n                   (1577174400000, 7264.91, 7373.54, 7416.53, 7226.13, 10509.986873),\n                   (1577188800000, 7373.55, 7277.52, 7436.68, 7241.58, 9491.372333),\n                   (1577203200000, 7277.47, 7253.77, 7311.31, 7157.04, 10145.551311),\n                   (1577217600000, 7253.92, 7255.77, 7280.0, 7198.52, 4199.398334),\n                   (1577232000000, 7255.77, 7229.58, 7267.39, 7213.12, 2643.930881),\n                   (1577246400000, 7229.99, 7252.19, 7271.77, 7201.0, 3439.127457),\n                   (1577260800000, 7252.16, 7217.03, 7267.85, 7210.45, 4077.759303),\n                   (1577275200000, 7216.92, 7189.56, 7256.0, 7170.73, 6435.853597),\n                   (1577289600000, 7189.58, 7239.02, 7247.0, 7128.86, 6291.129102),\n                   (1577304000000, 7238.02, 7204.63, 7269.99, 7168.42, 4604.243983),\n                   (1577318400000, 7205.01, 7183.01, 7219.99, 7177.14, 2172.334553),\n                   (1577332800000, 7182.84, 7209.2, 7223.15, 7176.8, 2903.965459),\n                   (1577347200000, 7209.2, 7188.02, 7240.76, 7185.8, 4394.287316),\n                   (1577361600000, 7189.06, 7231.45, 7244.0, 7183.27, 4382.503453),\n                   (1577376000000, 7231.83, 7301.38, 7435.0, 7197.02, 14217.211678),\n                   (1577390400000, 7296.1, 7202.0, 7331.42, 7157.12, 8189.458617),\n                   (1577404800000, 7202.0, 7232.02, 7249.0, 7190.0, 3344.601365),\n                   (1577419200000, 7232.04, 7188.63, 7243.79, 7175.0, 4904.323436),\n                   (1577433600000, 7188.42, 7137.72, 7216.26, 7076.42, 7148.566164),\n                   (1577448000000, 7136.38, 7238.42, 7271.89, 7092.99, 10186.903469),\n                   (1577462400000, 7237.75, 7216.1, 7275.86, 7177.14, 5306.751408),\n                   (1577476800000, 7215.05, 7254.74, 7261.0, 7212.78, 2751.556019),\n                   (1577491200000, 7254.77, 7288.0, 7340.0, 7238.67, 5542.244838),\n                   (1577505600000, 7288.0, 7302.99, 7360.0, 7276.72, 5591.958805),\n                   (1577520000000, 7302.53, 7308.28, 7329.47, 7261.57, 3758.554285),\n                   (1577534400000, 7308.32, 7304.27, 7359.9, 7285.0, 4124.309921),\n                   (1577548800000, 7304.24, 7344.77, 7365.01, 7275.07, 5076.554318),\n                   (1577563200000, 7344.7, 7316.14, 7355.0, 7296.52, 2755.360032),\n                   (1577577600000, 7315.36, 7307.27, 7316.14, 7288.0, 2401.806632),\n                   (1577592000000, 7307.06, 7315.0, 7323.99, 7292.84, 1907.027906),\n                   (1577606400000, 7315.5, 7345.83, 7360.67, 7308.92, 4380.306346),\n                   (1577620800000, 7346.08, 7394.13, 7419.02, 7322.9, 8220.352818),\n                   (1577635200000, 7395.03, 7473.05, 7480.0, 7380.47, 5648.577939),\n                   (1577649600000, 7472.13, 7388.24, 7528.45, 7345.8, 8829.034444),\n                   (1577664000000, 7388.43, 7349.51, 7389.83, 7312.0, 3473.380714),\n                   (1577678400000, 7349.54, 7385.29, 7408.24, 7345.22, 3786.007406),\n                   (1577692800000, 7385.27, 7315.11, 7385.29, 7293.12, 6759.784113),\n                   (1577707200000, 7314.74, 7262.08, 7343.99, 7251.0, 7289.497086),\n                   (1577721600000, 7261.1, 7240.99, 7270.0, 7220.0, 5118.967882),\n                   (1577736000000, 7241.15, 7246.0, 7288.88, 7235.1, 3178.274581),\n                   (1577750400000, 7246.0, 7236.39, 7269.0, 7200.0, 4057.299249),\n                   (1577764800000, 7236.6, 7250.37, 7268.48, 7228.4, 2664.670591),\n                   (1577779200000, 7250.3, 7243.39, 7256.94, 7217.5, 4498.864156),\n                   (1577793600000, 7243.64, 7195.96, 7320.0, 7188.88, 7983.926818),\n                   (1577808000000, 7195.0, 7173.32, 7225.62, 7145.01, 4657.972543),\n                   (1577822400000, 7173.75, 7195.23, 7208.41, 7165.1, 2091.720176),\n                   (1577836800000, 7195.24, 7225.01, 7245.0, 7175.46, 2833.74918),\n                   (1577851200000, 7225.0, 7209.83, 7236.27, 7199.11, 2061.295051),\n                   (1577865600000, 7209.83, 7197.2, 7237.73, 7180.0, 3166.654361),\n                   (1577880000000, 7197.2, 7234.19, 7255.0, 7196.15, 3492.537459),\n                   (1577894400000, 7234.2, 7229.48, 7249.99, 7214.0, 2980.583291),\n                   (1577908800000, 7229.48, 7200.85, 7242.98, 7175.15, 2257.568823),\n                   (1577923200000, 7200.77, 7129.61, 7212.5, 7120.37, 3739.354832),\n                   (1577937600000, 7129.25, 7110.57, 7161.0, 7105.0, 4057.961355),\n                   (1577952000000, 7110.98, 7139.79, 7180.0, 7109.11, 4162.20301),\n                   (1577966400000, 7139.73, 7130.98, 7163.4, 7107.43, 4179.041833),\n                   (1577980800000, 7130.37, 6983.27, 7146.85, 6924.74, 12699.028233),\n                   (1577995200000, 6982.63, 6965.71, 6985.0, 6941.27, 3113.894669),\n                   (1578009600000, 6965.49, 6952.04, 6966.8, 6871.04, 7625.896788),\n                   (1578024000000, 6952.04, 7203.21, 7264.71, 6948.64, 17397.304706),\n                   (1578038400000, 7202.28, 7340.46, 7371.92, 7202.28, 15196.885021),\n                   (1578052800000, 7340.46, 7320.18, 7380.0, 7229.3, 10578.985529),\n                   (1578067200000, 7320.17, 7343.08, 7405.0, 7280.0, 11735.084477),\n                   (1578081600000, 7343.62, 7344.96, 7361.0, 7260.01, 5894.34393),\n                   (1578096000000, 7345.0, 7333.11, 7350.0, 7280.85, 3693.784835),\n                   (1578110400000, 7333.14, 7348.11, 7369.28, 7312.65, 4519.549891),\n                   (1578124800000, 7348.04, 7336.45, 7369.63, 7302.1, 5684.860065),\n                   (1578139200000, 7336.75, 7318.99, 7339.58, 7291.0, 4424.833286),\n                   (1578153600000, 7318.98, 7334.83, 7404.0, 7272.21, 8358.356108),\n                   (1578168000000, 7334.89, 7354.11, 7367.31, 7310.67, 3306.590792),\n                   (1578182400000, 7354.19, 7475.99, 7482.87, 7354.11, 11311.449846),\n                   (1578196800000, 7476.0, 7463.63, 7495.0, 7437.4, 4866.905928),\n                   (1578211200000, 7463.64, 7422.33, 7472.0, 7400.0, 5665.077258),\n                   (1578225600000, 7422.27, 7468.42, 7476.31, 7415.0, 5088.908425),\n                   (1578240000000, 7467.91, 7444.14, 7484.0, 7421.77, 4847.774609),\n                   (1578254400000, 7444.71, 7358.75, 7445.0, 7318.0, 6550.969538),\n                   (1578268800000, 7357.64, 7540.9, 7580.0, 7346.76, 13578.258656),\n                   (1578283200000, 7540.9, 7507.91, 7554.61, 7496.0, 4822.718155),\n                   (1578297600000, 7508.18, 7544.72, 7582.27, 7507.39, 7827.327593),\n                   (1578312000000, 7544.72, 7519.99, 7622.0, 7465.44, 9210.893924),\n                   (1578326400000, 7519.05, 7539.9, 7561.0, 7509.43, 4503.573879),\n                   (1578340800000, 7539.74, 7758.0, 7795.34, 7534.9, 14692.923109),\n                   (1578355200000, 7758.9, 7894.9, 8000.0, 7758.29, 20969.436578),\n                   (1578369600000, 7894.71, 7883.37, 7905.5, 7821.0, 7779.689163),\n                   (1578384000000, 7883.11, 7895.14, 7965.0, 7855.0, 8698.801496),\n                   (1578398400000, 7895.13, 7764.59, 7915.77, 7740.29, 13815.63926),\n                   (1578412800000, 7764.04, 8073.69, 8137.0, 7723.71, 23314.904383),\n                   (1578427200000, 8073.69, 8145.28, 8207.68, 7945.72, 16593.213781),\n                   (1578441600000, 8145.92, 8300.34, 8455.0, 8142.0, 29882.767578),\n                   (1578456000000, 8300.34, 8297.26, 8377.0, 8277.21, 9759.58652),\n                   (1578470400000, 8297.27, 8332.47, 8370.0, 8264.86, 9015.766024),\n                   (1578484800000, 8332.2, 8305.97, 8418.61, 8184.0, 20431.673213),\n                   (1578499200000, 8306.09, 7963.35, 8335.79, 7963.05, 26733.722173),\n                   (1578513600000, 7963.56, 8055.98, 8125.57, 7870.0, 16799.127132),\n                   (1578528000000, 8054.72, 7954.72, 8055.96, 7928.0, 9990.260359),\n                   (1578542400000, 7954.96, 7949.84, 7978.31, 7896.0, 7975.920845),\n                   (1578556800000, 7949.57, 7878.56, 7955.83, 7852.01, 9886.091731),\n                   (1578571200000, 7878.02, 7907.05, 7945.0, 7871.0, 8465.58572),\n                   (1578585600000, 7907.05, 7917.54, 7957.48, 7778.0, 13370.93087),\n                   (1578600000000, 7917.55, 7817.76, 8000.0, 7750.0, 14550.730305),\n                   (1578614400000, 7817.74, 7818.02, 7854.06, 7770.0, 4946.412757),\n                   (1578628800000, 7818.06, 7752.98, 7819.84, 7711.76, 8595.700022),\n                   (1578643200000, 7753.05, 7841.69, 7854.44, 7672.0, 16190.710852),\n                   (1578657600000, 7841.03, 8066.6, 8086.85, 7811.0, 19947.250537),\n                   (1578672000000, 8067.5, 8059.49, 8140.11, 7909.98, 22918.937725),\n                   (1578686400000, 8058.05, 8197.02, 8199.0, 7981.59, 9807.765555),\n                   (1578700800000, 8198.86, 8158.49, 8253.26, 8119.75, 10029.604397),\n                   (1578715200000, 8158.83, 8074.18, 8179.94, 8044.65, 7452.941654),\n                   (1578729600000, 8074.17, 8045.95, 8129.97, 8010.0, 7736.817925),\n                   (1578744000000, 8045.89, 8099.73, 8135.0, 8018.41, 7221.148975),\n                   (1578758400000, 8099.16, 8151.78, 8221.55, 8070.0, 10064.724948),\n                   (1578772800000, 8151.77, 8020.01, 8286.34, 8003.16, 12304.794768),\n                   (1578787200000, 8020.01, 8091.33, 8110.92, 7960.0, 7289.354497),\n                   (1578801600000, 8090.7, 8097.51, 8153.84, 8070.98, 5085.381471),\n                   (1578816000000, 8097.51, 8114.08, 8164.08, 8080.01, 5601.978901),\n                   (1578830400000, 8114.08, 8152.7, 8185.0, 8113.11, 6596.312454),\n                   (1578844800000, 8152.63, 8132.01, 8197.0, 8072.0, 9412.796727),\n                   (1578859200000, 8131.4, 8184.98, 8185.0, 8091.22, 4145.670286),\n                   (1578873600000, 8184.97, 8105.77, 8196.0, 8086.39, 5013.854925),\n                   (1578888000000, 8105.73, 8075.26, 8126.31, 8057.59, 5383.796046),\n                   (1578902400000, 8075.26, 8075.01, 8134.6, 8065.0, 6585.461433),\n                   (1578916800000, 8076.86, 8084.89, 8114.48, 8055.89, 5021.384801),\n                   (1578931200000, 8085.07, 8111.83, 8129.45, 8071.12, 4153.284936),\n                   (1578945600000, 8111.83, 8110.34, 8160.0, 8101.0, 5001.973542),\n                   (1578960000000, 8110.34, 8461.84, 8488.11, 8105.54, 24831.754997),\n                   (1578974400000, 8461.83, 8509.99, 8573.0, 8453.35, 15416.454563),\n                   (1578988800000, 8509.85, 8526.87, 8561.0, 8470.0, 10140.489854),\n                   (1579003200000, 8526.87, 8675.48, 8760.0, 8480.0, 27970.1386),\n                   (1579017600000, 8673.18, 8767.56, 8850.0, 8520.0, 31177.50731),\n                   (1579032000000, 8765.51, 8810.01, 8880.0, 8666.22, 10862.781418),\n                   (1579046400000, 8814.64, 8727.61, 8900.0, 8701.0, 17630.43469),\n                   (1579060800000, 8727.0, 8627.13, 8741.75, 8564.0, 12394.599597),\n                   (1579075200000, 8626.8, 8730.0, 8810.0, 8605.03, 11514.936626),\n                   (1579089600000, 8730.0, 8762.74, 8916.48, 8720.38, 18787.519248),\n                   (1579104000000, 8762.73, 8761.57, 8820.0, 8676.08, 11713.456385),\n                   (1579118400000, 8761.57, 8821.41, 8876.4, 8738.37, 12775.35106),\n                   (1579132800000, 8820.01, 8640.01, 8859.81, 8586.0, 12783.458675),\n                   (1579147200000, 8640.01, 8680.0, 8730.0, 8615.0, 7142.495575),\n                   (1579161600000, 8679.99, 8724.91, 8725.0, 8600.4, 9781.353479),\n                   (1579176000000, 8724.82, 8710.02, 8789.0, 8640.35, 8891.035744),\n                   (1579190400000, 8710.01, 8705.0, 8720.82, 8626.0, 7069.068758),\n                   (1579204800000, 8705.01, 8720.01, 8757.0, 8672.0, 6323.662053),\n                   (1579219200000, 8720.15, 8786.43, 8840.4, 8672.44, 8331.743248),\n                   (1579233600000, 8786.43, 8933.95, 8997.0, 8760.0, 17583.957614),\n                   (1579248000000, 8935.54, 8903.45, 9041.65, 8880.5, 15958.174142),\n                   (1579262400000, 8903.53, 8850.83, 8919.41, 8765.0, 11602.984403),\n                   (1579276800000, 8851.39, 8879.71, 8955.55, 8813.0, 10924.966),\n                   (1579291200000, 8879.63, 8913.28, 8961.6, 8861.66, 6495.91197),\n                   (1579305600000, 8913.27, 8925.99, 8988.88, 8855.55, 6811.015303),\n                   (1579320000000, 8926.07, 8843.63, 8926.95, 8806.38, 7327.352572),\n                   (1579334400000, 8843.63, 8879.79, 8919.0, 8818.0, 5142.099838),\n                   (1579348800000, 8879.29, 8903.26, 8964.0, 8869.98, 8996.261409),\n                   (1579363200000, 8903.27, 8907.93, 8935.17, 8848.8, 5689.851343),\n                   (1579377600000, 8907.79, 8915.96, 8960.0, 8889.0, 4328.16608),\n                   (1579392000000, 8915.09, 9157.61, 9198.98, 8888.02, 15190.422988),\n                   (1579406400000, 9157.74, 9084.36, 9165.0, 9041.0, 7138.45343),\n                   (1579420800000, 9083.8, 8681.44, 9127.36, 8524.2, 20326.672295),\n                   (1579435200000, 8681.16, 8631.95, 8684.76, 8559.02, 10631.577418)]\n# vwma\ntest_candles_16 = [(1577980800000, 129.58, 127.62, 129.78, 126.38, 85534.55202),\n                   (1577995200000, 127.63, 127.19, 127.87, 126.79, 13657.56476),\n                   (1578009600000, 127.19, 126.89, 127.6, 125.88, 40142.23049),\n                   (1578024000000, 126.89, 128.86, 130.15, 126.83, 87499.1273),\n                   (1578038400000, 128.86, 132.46, 133.26, 128.8, 118287.73343),\n                   (1578052800000, 132.49, 132.53, 133.95, 130.93, 57993.70937),\n                   (1578067200000, 132.52, 133.49, 134.9, 131.94, 70186.34496),\n                   (1578081600000, 133.48, 134.35, 135.14, 132.16, 38946.0434),\n                   (1578096000000, 134.37, 133.34, 134.81, 132.79, 29800.56324),\n                   (1578110400000, 133.34, 133.91, 134.31, 133.0, 24369.40889),\n                   (1578124800000, 133.9, 133.77, 134.18, 133.07, 23918.50927),\n                   (1578139200000, 133.76, 133.26, 133.79, 132.5, 29237.72486),\n                   (1578153600000, 133.26, 133.72, 135.85, 132.8, 59872.55619),\n                   (1578168000000, 133.71, 134.2, 134.54, 133.44, 17077.40857),\n                   (1578182400000, 134.2, 136.16, 136.2, 134.19, 48831.80763),\n                   (1578196800000, 136.17, 136.02, 137.24, 135.62, 37286.06571),\n                   (1578211200000, 136.04, 135.07, 136.24, 134.7, 33422.08707),\n                   (1578225600000, 135.06, 137.26, 137.96, 135.06, 42242.22893),\n                   (1578240000000, 137.24, 137.97, 138.19, 136.64, 45304.34466),\n                   (1578254400000, 137.97, 135.37, 138.06, 134.21, 47033.91943),\n                   (1578268800000, 135.37, 139.49, 139.67, 134.86, 81445.25944),\n                   (1578283200000, 139.49, 138.87, 140.0, 138.54, 31894.33568),\n                   (1578297600000, 138.87, 141.54, 143.06, 138.81, 87065.38988),\n                   (1578312000000, 141.54, 140.2, 143.22, 139.08, 101925.464),\n                   (1578326400000, 140.19, 141.35, 141.86, 140.0, 35540.05181),\n                   (1578340800000, 141.35, 144.15, 144.41, 141.26, 70149.77294),\n                   (1578355200000, 144.14, 143.5, 145.31, 143.16, 84551.69867),\n                   (1578369600000, 143.5, 142.87, 143.62, 142.15, 42983.64715),\n                   (1578384000000, 142.87, 142.62, 143.78, 142.45, 45824.82864),\n                   (1578398400000, 142.62, 139.48, 142.66, 139.0, 85723.91095),\n                   (1578412800000, 139.48, 143.19, 144.3, 138.76, 120461.92484),\n                   (1578427200000, 143.19, 142.8, 145.0, 141.31, 68216.16256),\n                   (1578441600000, 142.8, 144.48, 147.77, 142.71, 159159.79692),\n                   (1578456000000, 144.54, 143.56, 145.25, 142.68, 63852.27131),\n                   (1578470400000, 143.53, 143.5, 144.5, 142.97, 41296.85943),\n                   (1578484800000, 143.52, 141.42, 143.69, 140.39, 108153.28432),\n                   (1578499200000, 141.42, 137.84, 141.91, 137.71, 135381.27344),\n                   (1578513600000, 137.89, 140.72, 141.5, 137.03, 62622.09222),\n                   (1578528000000, 140.76, 139.94, 141.5, 139.43, 48045.14801),\n                   (1578542400000, 139.96, 139.93, 140.39, 138.69, 46062.9573),\n                   (1578556800000, 139.91, 138.24, 140.06, 137.68, 55831.97865),\n                   (1578571200000, 138.24, 138.2, 138.93, 137.75, 38213.33663),\n                   (1578585600000, 138.19, 137.54, 138.49, 135.3, 86229.7553),\n                   (1578600000000, 137.52, 137.74, 139.33, 136.06, 91692.8898),\n                   (1578614400000, 137.73, 136.98, 137.98, 136.32, 31293.60499),\n                   (1578628800000, 136.99, 136.63, 137.14, 135.32, 39397.41753),\n                   (1578643200000, 136.62, 138.43, 139.03, 135.34, 70483.8208),\n                   (1578657600000, 138.42, 142.51, 143.0, 138.05, 99766.17131),\n                   (1578672000000, 142.53, 143.42, 145.17, 140.62, 128205.94818),\n                   (1578686400000, 143.42, 144.84, 145.0, 141.6, 40256.63226),\n                   (1578700800000, 144.83, 143.47, 145.33, 142.8, 60605.83939),\n                   (1578715200000, 143.47, 142.93, 144.05, 142.09, 40379.42314),\n                   (1578729600000, 142.93, 142.63, 144.0, 142.36, 47925.81196),\n                   (1578744000000, 142.63, 143.41, 143.72, 142.1, 35999.3517),\n                   (1578758400000, 143.41, 146.29, 148.05, 142.6, 96688.13102),\n                   (1578772800000, 146.27, 142.38, 147.65, 142.23, 86752.02218),\n                   (1578787200000, 142.4, 143.93, 144.5, 141.76, 50820.85119),\n                   (1578801600000, 143.97, 144.54, 145.88, 143.36, 42226.75116),\n                   (1578816000000, 144.55, 143.48, 145.4, 143.2, 33570.53538),\n                   (1578830400000, 143.48, 144.92, 145.4, 143.33, 39475.81486),\n                   (1578844800000, 144.93, 144.46, 145.61, 143.57, 42500.10928),\n                   (1578859200000, 144.46, 146.54, 146.6, 144.31, 20947.7995),\n                   (1578873600000, 146.56, 143.38, 147.0, 142.57, 55573.01486),\n                   (1578888000000, 143.39, 142.87, 144.03, 142.27, 29322.38282),\n                   (1578902400000, 142.88, 142.77, 144.44, 142.54, 41106.34042),\n                   (1578916800000, 142.76, 142.83, 143.74, 142.6, 30017.63392),\n                   (1578931200000, 142.83, 143.5, 143.95, 142.55, 23716.78384),\n                   (1578945600000, 143.5, 143.58, 144.66, 143.42, 28260.46279),\n                   (1578960000000, 143.58, 148.94, 149.34, 143.51, 151274.82324),\n                   (1578974400000, 148.94, 149.0, 150.74, 148.0, 94573.55009),\n                   (1578988800000, 149.0, 151.56, 151.75, 148.93, 82788.79616),\n                   (1579003200000, 151.56, 156.04, 157.69, 150.75, 248079.89442),\n                   (1579017600000, 155.89, 165.42, 171.7, 153.09, 409962.06726),\n                   (1579032000000, 165.42, 165.64, 168.0, 160.31, 121797.18069),\n                   (1579046400000, 165.6, 162.64, 171.98, 162.64, 224802.32614),\n                   (1579060800000, 162.63, 161.54, 163.8, 159.2, 117864.30015),\n                   (1579075200000, 161.48, 164.43, 167.8, 161.0, 95587.6489),\n                   (1579089600000, 164.49, 162.41, 168.92, 162.0, 124284.15347),\n                   (1579104000000, 162.41, 164.61, 165.2, 160.52, 80778.00758),\n                   (1579118400000, 164.62, 166.4, 167.34, 163.91, 78371.36757),\n                   (1579132800000, 166.4, 159.85, 167.4, 157.8, 136033.58201),\n                   (1579147200000, 159.87, 161.0, 162.6, 159.28, 48395.02249),\n                   (1579161600000, 161.0, 164.07, 164.08, 159.65, 66603.0619),\n                   (1579176000000, 164.01, 162.52, 165.62, 160.2, 82647.83991),\n                   (1579190400000, 162.51, 163.57, 164.26, 160.65, 66267.63311),\n                   (1579204800000, 163.56, 164.21, 165.88, 162.31, 56223.72777),\n                   (1579219200000, 164.24, 165.14, 167.44, 162.14, 95399.287),\n                   (1579233600000, 165.14, 171.08, 171.51, 164.85, 190482.44857),\n                   (1579248000000, 171.08, 169.99, 174.81, 169.66, 157524.37148),\n                   (1579262400000, 169.98, 168.34, 170.24, 165.13, 101606.09506),\n                   (1579276800000, 168.31, 169.23, 173.72, 167.02, 161847.09908),\n                   (1579291200000, 169.23, 169.85, 173.38, 168.42, 60321.37734),\n                   (1579305600000, 169.92, 171.93, 173.69, 169.0, 80500.66068),\n                   (1579320000000, 171.91, 168.07, 171.97, 164.92, 108080.20752),\n                   (1579334400000, 168.1, 169.07, 170.11, 167.21, 44265.8363),\n                   (1579348800000, 169.12, 175.53, 179.5, 168.84, 266976.18709),\n                   (1579363200000, 175.54, 174.97, 177.6, 172.73, 132076.9813),\n                   (1579377600000, 174.95, 174.14, 177.04, 173.87, 56883.30693),\n                   (1579392000000, 174.1, 176.25, 178.05, 173.29, 102103.65747),\n                   (1579406400000, 176.26, 176.55, 176.9, 174.6, 59068.41919),\n                   (1579420800000, 176.55, 166.62, 177.3, 164.0, 175056.12278),\n                   (1579435200000, 166.61, 164.81, 166.61, 161.66, 137153.59993),\n                   (1579449600000, 164.75, 164.92, 166.18, 163.88, 67871.14047),\n                   (1579464000000, 164.95, 166.79, 167.5, 163.56, 83428.3462),\n                   (1579478400000, 166.79, 165.66, 167.6, 165.1, 47995.664),\n                   (1579492800000, 165.65, 165.63, 166.4, 164.29, 43112.18531),\n                   (1579507200000, 165.62, 163.04, 166.25, 161.88, 57953.5849),\n                   (1579521600000, 163.05, 166.83, 167.04, 161.24, 94533.85325),\n                   (1579536000000, 166.88, 167.67, 167.79, 165.96, 59096.94886),\n                   (1579550400000, 167.66, 166.87, 169.33, 166.6, 55400.64778),\n                   (1579564800000, 166.86, 168.3, 168.4, 165.61, 43195.98364),\n                   (1579579200000, 168.32, 166.53, 168.86, 166.17, 45753.14593),\n                   (1579593600000, 166.51, 167.93, 168.7, 165.86, 59330.45841),\n                   (1579608000000, 167.92, 168.1, 169.25, 167.32, 35651.63268),\n                   (1579622400000, 168.09, 165.12, 168.48, 164.8, 58105.51505),\n                   (1579636800000, 165.13, 169.49, 170.32, 165.12, 65970.89959),\n                   (1579651200000, 169.48, 168.69, 170.05, 167.79, 35923.95804),\n                   (1579665600000, 168.69, 169.2, 171.47, 168.62, 72123.02613),\n                   (1579680000000, 169.25, 168.0, 169.55, 167.31, 68841.08758),\n                   (1579694400000, 168.0, 167.42, 168.31, 166.03, 41794.51926),\n                   (1579708800000, 167.43, 168.0, 169.04, 166.62, 36763.70026),\n                   (1579723200000, 167.97, 168.07, 168.23, 167.5, 16794.61159),\n                   (1579737600000, 168.07, 165.44, 168.2, 164.18, 68790.27107),\n                   (1579752000000, 165.44, 164.88, 165.57, 162.71, 71120.72779),\n                   (1579766400000, 164.86, 162.7, 165.69, 162.5, 62768.27365),\n                   (1579780800000, 162.7, 163.15, 163.9, 161.08, 64252.37778),\n                   (1579795200000, 163.17, 160.63, 163.47, 159.21, 68009.80621),\n                   (1579809600000, 160.62, 162.81, 163.46, 159.85, 38472.89335),\n                   (1579824000000, 162.85, 158.99, 163.42, 157.5, 72563.75256),\n                   (1579838400000, 158.99, 159.25, 159.98, 158.25, 43247.07417),\n                   (1579852800000, 159.24, 160.63, 161.02, 155.55, 111919.12377),\n                   (1579867200000, 160.7, 162.62, 163.32, 160.0, 97650.82676),\n                   (1579881600000, 162.67, 163.71, 164.45, 160.6, 67213.29973),\n                   (1579896000000, 163.7, 162.54, 164.37, 162.0, 37419.12203),\n                   (1579910400000, 162.51, 159.05, 162.58, 157.61, 69837.78268),\n                   (1579924800000, 159.0, 159.53, 160.61, 158.65, 24339.51967),\n                   (1579939200000, 159.53, 159.29, 161.52, 158.8, 43622.15031),\n                   (1579953600000, 159.3, 160.41, 161.0, 158.7, 25015.67605),\n                   (1579968000000, 160.43, 161.0, 161.6, 159.95, 24774.52771),\n                   (1579982400000, 161.0, 160.35, 162.79, 160.14, 32331.99555),\n                   (1579996800000, 160.36, 161.22, 161.78, 159.41, 29271.42445),\n                   (1580011200000, 161.22, 161.23, 161.69, 160.46, 17225.08052),\n                   (1580025600000, 161.24, 163.14, 163.63, 160.87, 56736.30919),\n                   (1580040000000, 163.17, 163.37, 164.1, 162.78, 36517.27056),\n                   (1580054400000, 163.35, 166.18, 167.05, 163.19, 70824.72197),\n                   (1580068800000, 166.12, 167.86, 168.08, 166.0, 41007.75089),\n                   (1580083200000, 167.91, 167.7, 169.75, 167.38, 51706.813),\n                   (1580097600000, 167.69, 167.32, 168.67, 166.39, 43720.05329),\n                   (1580112000000, 167.32, 168.6, 168.9, 165.22, 65938.95519),\n                   (1580126400000, 168.57, 170.03, 170.9, 168.16, 76917.10186),\n                   (1580140800000, 170.01, 171.2, 172.56, 169.09, 84025.98689),\n                   (1580155200000, 171.2, 170.08, 172.04, 169.63, 43585.90894),\n                   (1580169600000, 170.04, 173.12, 174.0, 170.03, 76342.65998),\n                   (1580184000000, 173.12, 172.0, 173.72, 170.65, 74993.9427),\n                   (1580198400000, 171.98, 171.95, 173.13, 170.23, 62803.23365),\n                   (1580212800000, 171.93, 172.35, 174.55, 170.51, 129087.90764),\n                   (1580227200000, 172.34, 171.23, 172.96, 170.04, 51331.05247),\n                   (1580241600000, 171.18, 175.64, 176.2, 171.15, 78875.09965),\n                   (1580256000000, 175.58, 176.47, 177.56, 175.14, 74660.16993),\n                   (1580270400000, 176.47, 178.08, 178.45, 175.86, 56266.6031),\n                   (1580284800000, 178.03, 176.17, 178.35, 174.53, 72312.79611),\n                   (1580299200000, 176.19, 175.09, 176.54, 174.8, 40602.23941),\n                   (1580313600000, 175.1, 176.63, 177.13, 174.59, 35446.02544),\n                   (1580328000000, 176.63, 173.72, 177.24, 173.33, 38095.06762),\n                   (1580342400000, 173.68, 173.44, 174.0, 170.93, 52564.59869),\n                   (1580356800000, 173.44, 176.09, 176.55, 173.37, 51845.75545),\n                   (1580371200000, 176.07, 175.27, 176.8, 174.3, 39928.76052),\n                   (1580385600000, 175.28, 177.63, 177.66, 175.04, 68133.78325),\n                   (1580400000000, 177.62, 181.5, 182.24, 175.0, 170583.86195),\n                   (1580414400000, 181.49, 184.69, 187.0, 181.49, 94664.90104),\n                   (1580428800000, 184.71, 183.42, 185.82, 181.65, 58562.18072),\n                   (1580443200000, 183.42, 182.48, 183.67, 180.52, 57440.54327),\n                   (1580457600000, 182.47, 180.9, 183.58, 180.25, 62903.84299),\n                   (1580472000000, 180.86, 180.04, 180.88, 175.22, 117421.47775),\n                   (1580486400000, 180.01, 179.41, 180.63, 177.53, 49406.8051),\n                   (1580500800000, 179.41, 179.99, 182.44, 179.21, 39861.68382),\n                   (1580515200000, 179.94, 183.51, 184.28, 179.23, 54651.82918),\n                   (1580529600000, 183.46, 183.13, 183.94, 181.46, 38692.35102),\n                   (1580544000000, 183.13, 180.94, 183.32, 179.8, 56658.17802),\n                   (1580558400000, 180.92, 181.48, 182.65, 179.81, 43155.44123),\n                   (1580572800000, 181.48, 182.81, 183.9, 181.32, 41070.25286),\n                   (1580587200000, 182.81, 183.6, 184.19, 182.23, 25142.07671),\n                   (1580601600000, 183.63, 180.58, 183.68, 179.81, 48773.49333),\n                   (1580616000000, 180.58, 187.17, 188.02, 179.1, 128164.63674),\n                   (1580630400000, 187.17, 191.71, 192.25, 186.26, 125475.67866),\n                   (1580644800000, 191.76, 192.49, 193.43, 189.48, 120538.08302),\n                   (1580659200000, 192.47, 191.5, 193.23, 190.36, 58535.50907),\n                   (1580673600000, 191.56, 188.44, 192.5, 188.04, 71133.73537),\n                   (1580688000000, 188.48, 191.39, 195.19, 187.21, 137679.79387),\n                   (1580702400000, 191.39, 190.04, 192.11, 189.5, 45720.21456),\n                   (1580716800000, 190.04, 189.84, 190.81, 187.68, 59631.56507),\n                   (1580731200000, 189.84, 187.58, 191.5, 187.42, 73483.30728),\n                   (1580745600000, 187.59, 190.17, 190.24, 186.62, 60438.68613),\n                   (1580760000000, 190.2, 189.69, 191.8, 188.13, 40222.3909),\n                   (1580774400000, 189.74, 188.04, 191.6, 188.0, 49106.57764),\n                   (1580788800000, 188.08, 188.28, 189.13, 186.18, 64796.78527),\n                   (1580803200000, 188.28, 186.91, 188.48, 184.69, 106400.75682),\n                   (1580817600000, 186.87, 188.37, 188.85, 184.77, 77373.10437),\n                   (1580832000000, 188.37, 187.92, 189.8, 187.77, 42882.4712),\n                   (1580846400000, 187.93, 188.91, 189.52, 186.9, 25830.00156),\n                   (1580860800000, 188.91, 189.86, 190.28, 188.19, 43892.82413),\n                   (1580875200000, 189.85, 190.87, 192.17, 189.1, 77581.19475),\n                   (1580889600000, 190.83, 197.53, 197.89, 190.29, 111749.90942),\n                   (1580904000000, 197.57, 198.86, 199.22, 195.61, 113315.40994),\n                   (1580918400000, 198.86, 202.02, 204.93, 198.3, 133532.36441),\n                   (1580932800000, 202.03, 203.78, 207.61, 202.0, 70870.41152),\n                   (1580947200000, 203.78, 206.53, 206.6, 201.02, 71578.25124),\n                   (1580961600000, 206.59, 209.26, 212.06, 204.81, 93539.61062),\n                   (1580976000000, 209.28, 210.41, 210.99, 207.6, 101681.88016)]\n# trix\ntest_candles_17 = [(1577995200000, 127.63, 127.19, 127.87, 126.79, 13657.56476),\n                   (1578009600000, 127.19, 126.89, 127.6, 125.88, 40142.23049),\n                   (1578024000000, 126.89, 128.86, 130.15, 126.83, 87499.1273),\n                   (1578038400000, 128.86, 132.46, 133.26, 128.8, 118287.73343),\n                   (1578052800000, 132.49, 132.53, 133.95, 130.93, 57993.70937),\n                   (1578067200000, 132.52, 133.49, 134.9, 131.94, 70186.34496),\n                   (1578081600000, 133.48, 134.35, 135.14, 132.16, 38946.0434),\n                   (1578096000000, 134.37, 133.34, 134.81, 132.79, 29800.56324),\n                   (1578110400000, 133.34, 133.91, 134.31, 133.0, 24369.40889),\n                   (1578124800000, 133.9, 133.77, 134.18, 133.07, 23918.50927),\n                   (1578139200000, 133.76, 133.26, 133.79, 132.5, 29237.72486),\n                   (1578153600000, 133.26, 133.72, 135.85, 132.8, 59872.55619),\n                   (1578168000000, 133.71, 134.2, 134.54, 133.44, 17077.40857),\n                   (1578182400000, 134.2, 136.16, 136.2, 134.19, 48831.80763),\n                   (1578196800000, 136.17, 136.02, 137.24, 135.62, 37286.06571),\n                   (1578211200000, 136.04, 135.07, 136.24, 134.7, 33422.08707),\n                   (1578225600000, 135.06, 137.26, 137.96, 135.06, 42242.22893),\n                   (1578240000000, 137.24, 137.97, 138.19, 136.64, 45304.34466),\n                   (1578254400000, 137.97, 135.37, 138.06, 134.21, 47033.91943),\n                   (1578268800000, 135.37, 139.49, 139.67, 134.86, 81445.25944),\n                   (1578283200000, 139.49, 138.87, 140.0, 138.54, 31894.33568),\n                   (1578297600000, 138.87, 141.54, 143.06, 138.81, 87065.38988),\n                   (1578312000000, 141.54, 140.2, 143.22, 139.08, 101925.464),\n                   (1578326400000, 140.19, 141.35, 141.86, 140.0, 35540.05181),\n                   (1578340800000, 141.35, 144.15, 144.41, 141.26, 70149.77294),\n                   (1578355200000, 144.14, 143.5, 145.31, 143.16, 84551.69867),\n                   (1578369600000, 143.5, 142.87, 143.62, 142.15, 42983.64715),\n                   (1578384000000, 142.87, 142.62, 143.78, 142.45, 45824.82864),\n                   (1578398400000, 142.62, 139.48, 142.66, 139.0, 85723.91095),\n                   (1578412800000, 139.48, 143.19, 144.3, 138.76, 120461.92484),\n                   (1578427200000, 143.19, 142.8, 145.0, 141.31, 68216.16256),\n                   (1578441600000, 142.8, 144.48, 147.77, 142.71, 159159.79692),\n                   (1578456000000, 144.54, 143.56, 145.25, 142.68, 63852.27131),\n                   (1578470400000, 143.53, 143.5, 144.5, 142.97, 41296.85943),\n                   (1578484800000, 143.52, 141.42, 143.69, 140.39, 108153.28432),\n                   (1578499200000, 141.42, 137.84, 141.91, 137.71, 135381.27344),\n                   (1578513600000, 137.89, 140.72, 141.5, 137.03, 62622.09222),\n                   (1578528000000, 140.76, 139.94, 141.5, 139.43, 48045.14801),\n                   (1578542400000, 139.96, 139.93, 140.39, 138.69, 46062.9573),\n                   (1578556800000, 139.91, 138.24, 140.06, 137.68, 55831.97865),\n                   (1578571200000, 138.24, 138.2, 138.93, 137.75, 38213.33663),\n                   (1578585600000, 138.19, 137.54, 138.49, 135.3, 86229.7553),\n                   (1578600000000, 137.52, 137.74, 139.33, 136.06, 91692.8898),\n                   (1578614400000, 137.73, 136.98, 137.98, 136.32, 31293.60499),\n                   (1578628800000, 136.99, 136.63, 137.14, 135.32, 39397.41753),\n                   (1578643200000, 136.62, 138.43, 139.03, 135.34, 70483.8208),\n                   (1578657600000, 138.42, 142.51, 143.0, 138.05, 99766.17131),\n                   (1578672000000, 142.53, 143.42, 145.17, 140.62, 128205.94818),\n                   (1578686400000, 143.42, 144.84, 145.0, 141.6, 40256.63226),\n                   (1578700800000, 144.83, 143.47, 145.33, 142.8, 60605.83939),\n                   (1578715200000, 143.47, 142.93, 144.05, 142.09, 40379.42314),\n                   (1578729600000, 142.93, 142.63, 144.0, 142.36, 47925.81196),\n                   (1578744000000, 142.63, 143.41, 143.72, 142.1, 35999.3517),\n                   (1578758400000, 143.41, 146.29, 148.05, 142.6, 96688.13102),\n                   (1578772800000, 146.27, 142.38, 147.65, 142.23, 86752.02218),\n                   (1578787200000, 142.4, 143.93, 144.5, 141.76, 50820.85119),\n                   (1578801600000, 143.97, 144.54, 145.88, 143.36, 42226.75116),\n                   (1578816000000, 144.55, 143.48, 145.4, 143.2, 33570.53538),\n                   (1578830400000, 143.48, 144.92, 145.4, 143.33, 39475.81486),\n                   (1578844800000, 144.93, 144.46, 145.61, 143.57, 42500.10928),\n                   (1578859200000, 144.46, 146.54, 146.6, 144.31, 20947.7995),\n                   (1578873600000, 146.56, 143.38, 147.0, 142.57, 55573.01486),\n                   (1578888000000, 143.39, 142.87, 144.03, 142.27, 29322.38282),\n                   (1578902400000, 142.88, 142.77, 144.44, 142.54, 41106.34042),\n                   (1578916800000, 142.76, 142.83, 143.74, 142.6, 30017.63392),\n                   (1578931200000, 142.83, 143.5, 143.95, 142.55, 23716.78384),\n                   (1578945600000, 143.5, 143.58, 144.66, 143.42, 28260.46279),\n                   (1578960000000, 143.58, 148.94, 149.34, 143.51, 151274.82324),\n                   (1578974400000, 148.94, 149.0, 150.74, 148.0, 94573.55009),\n                   (1578988800000, 149.0, 151.56, 151.75, 148.93, 82788.79616),\n                   (1579003200000, 151.56, 156.04, 157.69, 150.75, 248079.89442),\n                   (1579017600000, 155.89, 165.42, 171.7, 153.09, 409962.06726),\n                   (1579032000000, 165.42, 165.64, 168.0, 160.31, 121797.18069),\n                   (1579046400000, 165.6, 162.64, 171.98, 162.64, 224802.32614),\n                   (1579060800000, 162.63, 161.54, 163.8, 159.2, 117864.30015),\n                   (1579075200000, 161.48, 164.43, 167.8, 161.0, 95587.6489),\n                   (1579089600000, 164.49, 162.41, 168.92, 162.0, 124284.15347),\n                   (1579104000000, 162.41, 164.61, 165.2, 160.52, 80778.00758),\n                   (1579118400000, 164.62, 166.4, 167.34, 163.91, 78371.36757),\n                   (1579132800000, 166.4, 159.85, 167.4, 157.8, 136033.58201),\n                   (1579147200000, 159.87, 161.0, 162.6, 159.28, 48395.02249),\n                   (1579161600000, 161.0, 164.07, 164.08, 159.65, 66603.0619),\n                   (1579176000000, 164.01, 162.52, 165.62, 160.2, 82647.83991),\n                   (1579190400000, 162.51, 163.57, 164.26, 160.65, 66267.63311),\n                   (1579204800000, 163.56, 164.21, 165.88, 162.31, 56223.72777),\n                   (1579219200000, 164.24, 165.14, 167.44, 162.14, 95399.287),\n                   (1579233600000, 165.14, 171.08, 171.51, 164.85, 190482.44857),\n                   (1579248000000, 171.08, 169.99, 174.81, 169.66, 157524.37148),\n                   (1579262400000, 169.98, 168.34, 170.24, 165.13, 101606.09506),\n                   (1579276800000, 168.31, 169.23, 173.72, 167.02, 161847.09908),\n                   (1579291200000, 169.23, 169.85, 173.38, 168.42, 60321.37734),\n                   (1579305600000, 169.92, 171.93, 173.69, 169.0, 80500.66068),\n                   (1579320000000, 171.91, 168.07, 171.97, 164.92, 108080.20752),\n                   (1579334400000, 168.1, 169.07, 170.11, 167.21, 44265.8363),\n                   (1579348800000, 169.12, 175.53, 179.5, 168.84, 266976.18709),\n                   (1579363200000, 175.54, 174.97, 177.6, 172.73, 132076.9813),\n                   (1579377600000, 174.95, 174.14, 177.04, 173.87, 56883.30693),\n                   (1579392000000, 174.1, 176.25, 178.05, 173.29, 102103.65747),\n                   (1579406400000, 176.26, 176.55, 176.9, 174.6, 59068.41919),\n                   (1579420800000, 176.55, 166.62, 177.3, 164.0, 175056.12278),\n                   (1579435200000, 166.61, 164.81, 166.61, 161.66, 137153.59993),\n                   (1579449600000, 164.75, 164.92, 166.18, 163.88, 67871.14047),\n                   (1579464000000, 164.95, 166.79, 167.5, 163.56, 83428.3462),\n                   (1579478400000, 166.79, 165.66, 167.6, 165.1, 47995.664),\n                   (1579492800000, 165.65, 165.63, 166.4, 164.29, 43112.18531),\n                   (1579507200000, 165.62, 163.04, 166.25, 161.88, 57953.5849),\n                   (1579521600000, 163.05, 166.83, 167.04, 161.24, 94533.85325),\n                   (1579536000000, 166.88, 167.67, 167.79, 165.96, 59096.94886),\n                   (1579550400000, 167.66, 166.87, 169.33, 166.6, 55400.64778),\n                   (1579564800000, 166.86, 168.3, 168.4, 165.61, 43195.98364),\n                   (1579579200000, 168.32, 166.53, 168.86, 166.17, 45753.14593),\n                   (1579593600000, 166.51, 167.93, 168.7, 165.86, 59330.45841),\n                   (1579608000000, 167.92, 168.1, 169.25, 167.32, 35651.63268),\n                   (1579622400000, 168.09, 165.12, 168.48, 164.8, 58105.51505),\n                   (1579636800000, 165.13, 169.49, 170.32, 165.12, 65970.89959),\n                   (1579651200000, 169.48, 168.69, 170.05, 167.79, 35923.95804),\n                   (1579665600000, 168.69, 169.2, 171.47, 168.62, 72123.02613),\n                   (1579680000000, 169.25, 168.0, 169.55, 167.31, 68841.08758),\n                   (1579694400000, 168.0, 167.42, 168.31, 166.03, 41794.51926),\n                   (1579708800000, 167.43, 168.0, 169.04, 166.62, 36763.70026),\n                   (1579723200000, 167.97, 168.07, 168.23, 167.5, 16794.61159),\n                   (1579737600000, 168.07, 165.44, 168.2, 164.18, 68790.27107),\n                   (1579752000000, 165.44, 164.88, 165.57, 162.71, 71120.72779),\n                   (1579766400000, 164.86, 162.7, 165.69, 162.5, 62768.27365),\n                   (1579780800000, 162.7, 163.15, 163.9, 161.08, 64252.37778),\n                   (1579795200000, 163.17, 160.63, 163.47, 159.21, 68009.80621),\n                   (1579809600000, 160.62, 162.81, 163.46, 159.85, 38472.89335),\n                   (1579824000000, 162.85, 158.99, 163.42, 157.5, 72563.75256),\n                   (1579838400000, 158.99, 159.25, 159.98, 158.25, 43247.07417),\n                   (1579852800000, 159.24, 160.63, 161.02, 155.55, 111919.12377),\n                   (1579867200000, 160.7, 162.62, 163.32, 160.0, 97650.82676),\n                   (1579881600000, 162.67, 163.71, 164.45, 160.6, 67213.29973),\n                   (1579896000000, 163.7, 162.54, 164.37, 162.0, 37419.12203),\n                   (1579910400000, 162.51, 159.05, 162.58, 157.61, 69837.78268),\n                   (1579924800000, 159.0, 159.53, 160.61, 158.65, 24339.51967),\n                   (1579939200000, 159.53, 159.29, 161.52, 158.8, 43622.15031),\n                   (1579953600000, 159.3, 160.41, 161.0, 158.7, 25015.67605),\n                   (1579968000000, 160.43, 161.0, 161.6, 159.95, 24774.52771),\n                   (1579982400000, 161.0, 160.35, 162.79, 160.14, 32331.99555),\n                   (1579996800000, 160.36, 161.22, 161.78, 159.41, 29271.42445),\n                   (1580011200000, 161.22, 161.23, 161.69, 160.46, 17225.08052),\n                   (1580025600000, 161.24, 163.14, 163.63, 160.87, 56736.30919),\n                   (1580040000000, 163.17, 163.37, 164.1, 162.78, 36517.27056),\n                   (1580054400000, 163.35, 166.18, 167.05, 163.19, 70824.72197),\n                   (1580068800000, 166.12, 167.86, 168.08, 166.0, 41007.75089),\n                   (1580083200000, 167.91, 167.7, 169.75, 167.38, 51706.813),\n                   (1580097600000, 167.69, 167.32, 168.67, 166.39, 43720.05329),\n                   (1580112000000, 167.32, 168.6, 168.9, 165.22, 65938.95519),\n                   (1580126400000, 168.57, 170.03, 170.9, 168.16, 76917.10186),\n                   (1580140800000, 170.01, 171.2, 172.56, 169.09, 84025.98689),\n                   (1580155200000, 171.2, 170.08, 172.04, 169.63, 43585.90894),\n                   (1580169600000, 170.04, 173.12, 174.0, 170.03, 76342.65998),\n                   (1580184000000, 173.12, 172.0, 173.72, 170.65, 74993.9427),\n                   (1580198400000, 171.98, 171.95, 173.13, 170.23, 62803.23365),\n                   (1580212800000, 171.93, 172.35, 174.55, 170.51, 129087.90764),\n                   (1580227200000, 172.34, 171.23, 172.96, 170.04, 51331.05247),\n                   (1580241600000, 171.18, 175.64, 176.2, 171.15, 78875.09965),\n                   (1580256000000, 175.58, 176.47, 177.56, 175.14, 74660.16993),\n                   (1580270400000, 176.47, 178.08, 178.45, 175.86, 56266.6031),\n                   (1580284800000, 178.03, 176.17, 178.35, 174.53, 72312.79611),\n                   (1580299200000, 176.19, 175.09, 176.54, 174.8, 40602.23941),\n                   (1580313600000, 175.1, 176.63, 177.13, 174.59, 35446.02544),\n                   (1580328000000, 176.63, 173.72, 177.24, 173.33, 38095.06762),\n                   (1580342400000, 173.68, 173.44, 174.0, 170.93, 52564.59869),\n                   (1580356800000, 173.44, 176.09, 176.55, 173.37, 51845.75545),\n                   (1580371200000, 176.07, 175.27, 176.8, 174.3, 39928.76052),\n                   (1580385600000, 175.28, 177.63, 177.66, 175.04, 68133.78325),\n                   (1580400000000, 177.62, 181.5, 182.24, 175.0, 170583.86195),\n                   (1580414400000, 181.49, 184.69, 187.0, 181.49, 94664.90104),\n                   (1580428800000, 184.71, 183.42, 185.82, 181.65, 58562.18072),\n                   (1580443200000, 183.42, 182.48, 183.67, 180.52, 57440.54327),\n                   (1580457600000, 182.47, 180.9, 183.58, 180.25, 62903.84299),\n                   (1580472000000, 180.86, 180.04, 180.88, 175.22, 117421.47775),\n                   (1580486400000, 180.01, 179.41, 180.63, 177.53, 49406.8051),\n                   (1580500800000, 179.41, 179.99, 182.44, 179.21, 39861.68382),\n                   (1580515200000, 179.94, 183.51, 184.28, 179.23, 54651.82918),\n                   (1580529600000, 183.46, 183.13, 183.94, 181.46, 38692.35102),\n                   (1580544000000, 183.13, 180.94, 183.32, 179.8, 56658.17802),\n                   (1580558400000, 180.92, 181.48, 182.65, 179.81, 43155.44123),\n                   (1580572800000, 181.48, 182.81, 183.9, 181.32, 41070.25286),\n                   (1580587200000, 182.81, 183.6, 184.19, 182.23, 25142.07671),\n                   (1580601600000, 183.63, 180.58, 183.68, 179.81, 48773.49333),\n                   (1580616000000, 180.58, 187.17, 188.02, 179.1, 128164.63674),\n                   (1580630400000, 187.17, 191.71, 192.25, 186.26, 125475.67866),\n                   (1580644800000, 191.76, 192.49, 193.43, 189.48, 120538.08302),\n                   (1580659200000, 192.47, 191.5, 193.23, 190.36, 58535.50907),\n                   (1580673600000, 191.56, 188.44, 192.5, 188.04, 71133.73537),\n                   (1580688000000, 188.48, 191.39, 195.19, 187.21, 137679.79387),\n                   (1580702400000, 191.39, 190.04, 192.11, 189.5, 45720.21456),\n                   (1580716800000, 190.04, 189.84, 190.81, 187.68, 59631.56507),\n                   (1580731200000, 189.84, 187.58, 191.5, 187.42, 73483.30728),\n                   (1580745600000, 187.59, 190.17, 190.24, 186.62, 60438.68613),\n                   (1580760000000, 190.2, 189.69, 191.8, 188.13, 40222.3909),\n                   (1580774400000, 189.74, 188.04, 191.6, 188.0, 49106.57764),\n                   (1580788800000, 188.08, 188.28, 189.13, 186.18, 64796.78527),\n                   (1580803200000, 188.28, 186.91, 188.48, 184.69, 106400.75682),\n                   (1580817600000, 186.87, 188.37, 188.85, 184.77, 77373.10437),\n                   (1580832000000, 188.37, 187.92, 189.8, 187.77, 42882.4712),\n                   (1580846400000, 187.93, 188.91, 189.52, 186.9, 25830.00156),\n                   (1580860800000, 188.91, 189.86, 190.28, 188.19, 43892.82413),\n                   (1580875200000, 189.85, 190.87, 192.17, 189.1, 77581.19475),\n                   (1580889600000, 190.83, 197.53, 197.89, 190.29, 111749.90942),\n                   (1580904000000, 197.57, 198.86, 199.22, 195.61, 113315.40994),\n                   (1580918400000, 198.86, 202.02, 204.93, 198.3, 133532.36441),\n                   (1580932800000, 202.03, 203.78, 207.61, 202.0, 70870.41152),\n                   (1580947200000, 203.78, 206.53, 206.6, 201.02, 71578.25124),\n                   (1580961600000, 206.59, 209.26, 212.06, 204.81, 93539.61062),\n                   (1580976000000, 209.28, 210.41, 210.99, 207.6, 101681.88016),\n                   (1580990400000, 210.38, 212.41, 216.33, 205.19, 220569.02835)]\n# dema\ntest_candles_18 = [(1581465600000, 236.69, 265.74, 275.34, 236.69, 1038073.74782),\n                   (1581552000000, 265.74, 268.32, 277.69, 256.08, 1089679.1537),\n                   (1581638400000, 268.34, 285.15, 287.15, 260.28, 734944.32266),\n                   (1581724800000, 285.11, 264.88, 288.41, 261.86, 860813.14274),\n                   (1581811200000, 264.91, 258.85, 274.0, 237.41, 1110118.46395),\n                   (1581897600000, 258.89, 267.85, 268.77, 242.0, 1110371.39094),\n                   (1581984000000, 267.9, 282.61, 285.88, 258.0, 1115523.43992),\n                   (1582070400000, 282.64, 258.45, 285.0, 251.56, 705973.72988),\n                   (1582156800000, 258.44, 256.96, 264.33, 245.34, 972969.71691),\n                   (1582243200000, 256.97, 265.27, 268.24, 253.61, 525827.8734),\n                   (1582329600000, 265.32, 261.57, 266.81, 256.0, 313062.52133),\n                   (1582416000000, 261.55, 274.48, 275.68, 261.02, 444740.82883),\n                   (1582502400000, 274.5, 265.52, 277.2, 257.09, 696591.72983),\n                   (1582588800000, 265.47, 246.67, 266.22, 244.44, 774791.01027),\n                   (1582675200000, 246.67, 223.93, 250.32, 215.66, 1395879.41507),\n                   (1582761600000, 223.98, 227.79, 238.3, 210.0, 1273793.11658),\n                   (1582848000000, 227.73, 226.76, 234.67, 214.01, 1054994.92397),\n                   (1582934400000, 226.76, 217.21, 233.0, 217.0, 546866.6851),\n                   (1583020800000, 217.29, 217.81, 227.89, 212.36, 715016.01941),\n                   (1583107200000, 217.81, 231.97, 234.4, 216.07, 810051.4833),\n                   (1583193600000, 232.1, 223.91, 232.46, 219.57, 741498.54825),\n                   (1583280000000, 223.84, 224.26, 228.85, 220.23, 443780.33772),\n                   (1583366400000, 224.26, 228.38, 234.09, 224.23, 601479.87587),\n                   (1583452800000, 228.38, 244.88, 245.16, 227.33, 628147.3257),\n                   (1583539200000, 244.93, 237.23, 251.93, 236.0, 633748.89662),\n                   (1583625600000, 237.23, 199.43, 237.23, 195.5, 1278973.53741),\n                   (1583712000000, 199.43, 202.81, 208.62, 190.0, 1661331.83553),\n                   (1583798400000, 202.79, 200.7, 206.2, 195.54, 1020260.107),\n                   (1583884800000, 200.74, 194.61, 203.18, 181.73, 1079824.90167),\n                   (1583971200000, 194.61, 107.82, 195.55, 101.2, 3814533.14046)]\n# mama\ntest_candles_19 = [(1563408000000, 210.8, 225.73, 229.65, 205.71, 609081.49094),\n                   (1563494400000, 225.75, 220.73, 226.23, 212.52, 371622.21865),\n                   (1563580800000, 220.84, 228.2, 235.09, 219.78, 325393.97225),\n                   (1563667200000, 228.25, 225.38, 229.66, 216.99, 270046.1519),\n                   (1563753600000, 225.49, 217.51, 228.34, 212.25, 271310.40446),\n                   (1563840000000, 217.59, 212.48, 219.55, 208.36, 317876.48242),\n                   (1563926400000, 212.55, 216.31, 218.28, 202.0, 331162.6484),\n                   (1564012800000, 216.31, 219.14, 225.12, 215.23, 280370.29627),\n                   (1564099200000, 219.14, 218.81, 220.0, 212.71, 197781.98653),\n                   (1564185600000, 218.81, 207.3, 223.3, 203.0, 301209.41113),\n                   (1564272000000, 207.3, 211.62, 213.52, 198.24, 218801.16693),\n                   (1564358400000, 211.58, 210.89, 215.83, 206.59, 226941.28),\n                   (1564444800000, 210.84, 209.58, 214.36, 204.4, 222683.79393),\n                   (1564531200000, 209.57, 218.42, 218.79, 209.2, 207213.55658),\n                   (1564617600000, 218.42, 216.84, 219.39, 210.54, 186806.18844),\n                   (1564704000000, 216.8, 217.61, 222.18, 214.31, 206867.03039),\n                   (1564790400000, 217.69, 222.14, 224.51, 216.62, 181591.95296),\n                   (1564876800000, 222.14, 221.79, 223.34, 216.9, 135622.0258),\n                   (1564963200000, 221.79, 233.54, 236.25, 221.79, 307956.27211),\n                   (1565049600000, 233.53, 226.28, 239.15, 223.03, 341279.08159),\n                   (1565136000000, 226.31, 226.1, 231.25, 220.95, 279104.7037),\n                   (1565222400000, 226.11, 221.39, 228.5, 215.51, 236886.35423),\n                   (1565308800000, 221.38, 210.53, 221.79, 207.3, 232062.12757),\n                   (1565395200000, 210.52, 206.48, 215.0, 202.6, 252614.02389),\n                   (1565481600000, 206.48, 216.42, 216.94, 206.14, 188474.09048),\n                   (1565568000000, 216.41, 211.41, 216.81, 209.75, 122760.94619),\n                   (1565654400000, 211.58, 209.3, 214.3, 204.0, 166922.48201),\n                   (1565740800000, 209.31, 187.1, 209.9, 183.49, 325228.98931),\n                   (1565827200000, 187.08, 188.03, 189.95, 181.23, 237953.09426),\n                   (1565913600000, 187.98, 184.88, 188.39, 178.04, 282177.01584),\n                   (1566000000000, 184.83, 185.59, 187.0, 181.83, 138799.61508),\n                   (1566086400000, 185.67, 194.33, 197.91, 183.35, 175363.5062),\n                   (1566172800000, 194.32, 202.28, 203.59, 192.7, 239541.5978),\n                   (1566259200000, 202.24, 196.6, 202.75, 194.45, 189297.75494),\n                   (1566345600000, 196.55, 187.45, 197.2, 179.53, 284973.64194),\n                   (1566432000000, 187.45, 190.35, 195.14, 182.8, 245575.98772),\n                   (1566518400000, 190.36, 194.02, 196.19, 188.16, 192548.51552),\n                   (1566604800000, 194.02, 190.6, 194.09, 185.63, 167806.34294),\n                   (1566691200000, 190.6, 186.54, 192.4, 182.8, 169862.91522),\n                   (1566777600000, 186.54, 188.67, 193.7, 186.0, 254397.79472),\n                   (1566864000000, 188.61, 187.24, 189.49, 184.75, 157898.563),\n                   (1566950400000, 187.3, 173.03, 188.25, 166.48, 334480.61761),\n                   (1567036800000, 173.03, 169.01, 173.5, 163.61, 295241.216),\n                   (1567123200000, 169.03, 168.5, 170.77, 165.55, 238616.68868),\n                   (1567209600000, 168.48, 171.57, 174.98, 165.63, 194999.19583),\n                   (1567296000000, 171.52, 170.74, 173.42, 167.61, 191140.52368),\n                   (1567382400000, 170.73, 178.05, 181.0, 170.02, 294627.31247),\n                   (1567468800000, 178.0, 178.75, 183.0, 174.09, 327857.85447),\n                   (1567555200000, 178.79, 174.72, 180.14, 173.0, 286226.25171),\n                   (1567641600000, 174.7, 173.75, 176.19, 168.1, 232753.83596),\n                   (1567728000000, 173.74, 169.08, 177.87, 165.0, 315822.37984),\n                   (1567814400000, 169.11, 177.62, 180.8, 168.3, 253831.23169),\n                   (1567900800000, 177.58, 181.19, 184.18, 176.13, 290083.47501),\n                   (1567987200000, 181.18, 180.54, 185.38, 176.01, 273729.94868),\n                   (1568073600000, 180.52, 179.81, 184.36, 177.0, 238387.50999),\n                   (1568160000000, 179.87, 178.28, 182.8, 173.0, 278555.46708),\n                   (1568246400000, 178.3, 180.72, 182.38, 176.62, 203543.13663),\n                   (1568332800000, 180.71, 180.95, 181.38, 177.54, 264422.54059),\n                   (1568419200000, 180.96, 188.13, 188.79, 179.75, 279371.83423),\n                   (1568505600000, 188.14, 189.03, 190.45, 185.76, 288928.60827),\n                   (1568592000000, 189.05, 197.22, 199.44, 188.3, 551006.81686),\n                   (1568678400000, 197.23, 207.84, 215.13, 195.74, 715863.2262),\n                   (1568764800000, 207.85, 210.21, 217.27, 207.66, 539028.51013),\n                   (1568851200000, 210.27, 220.24, 223.94, 202.3, 844358.82155),\n                   (1568937600000, 220.26, 218.03, 221.54, 212.05, 437804.12669),\n                   (1569024000000, 218.01, 215.05, 221.5, 213.2, 417891.5242),\n                   (1569110400000, 215.04, 211.2, 215.61, 206.1, 445388.94787),\n                   (1569196800000, 211.2, 201.29, 211.68, 198.65, 392437.07084),\n                   (1569283200000, 201.25, 165.81, 202.98, 150.03, 1478218.82714),\n                   (1569369600000, 165.72, 169.96, 174.85, 161.88, 879001.46213),\n                   (1569456000000, 169.96, 165.92, 171.01, 152.11, 779942.17148),\n                   (1569542400000, 165.92, 173.79, 176.72, 161.03, 634932.96707),\n                   (1569628800000, 173.83, 173.49, 175.49, 168.0, 521775.46593),\n                   (1569715200000, 173.5, 169.24, 174.5, 164.12, 410855.12176),\n                   (1569801600000, 169.26, 180.85, 181.24, 165.01, 580295.3997),\n                   (1569888000000, 180.89, 175.66, 185.53, 173.19, 609819.60828),\n                   (1569974400000, 175.65, 180.24, 181.29, 173.65, 348268.1162),\n                   (1570060800000, 180.24, 174.69, 180.72, 169.55, 354756.78478),\n                   (1570147200000, 174.71, 175.55, 178.98, 170.74, 333897.63876),\n                   (1570233600000, 175.55, 176.25, 176.71, 172.02, 278488.61771),\n                   (1570320000000, 176.23, 170.1, 177.04, 167.68, 314932.39629),\n                   (1570406400000, 170.08, 179.85, 182.32, 168.68, 496523.48038),\n                   (1570492800000, 179.88, 180.6, 184.87, 177.0, 400832.37828),\n                   (1570579200000, 180.61, 192.62, 195.53, 178.96, 562506.82189),\n                   (1570665600000, 192.61, 191.14, 194.2, 186.88, 436588.58452),\n                   (1570752000000, 191.18, 180.72, 196.65, 179.41, 621693.63125),\n                   (1570838400000, 180.65, 179.68, 184.64, 177.59, 290415.22038),\n                   (1570924800000, 179.65, 180.99, 184.95, 178.52, 247589.23231),\n                   (1571011200000, 180.98, 186.72, 187.54, 180.43, 279732.84612),\n                   (1571097600000, 186.7, 180.49, 188.37, 175.96, 405466.38109),\n                   (1571184000000, 180.52, 174.47, 181.44, 171.81, 347764.93459),\n                   (1571270400000, 174.52, 177.16, 178.96, 172.61, 298795.8198),\n                   (1571356800000, 177.17, 172.74, 177.44, 168.66, 319602.48508),\n                   (1571443200000, 172.78, 171.79, 174.98, 169.44, 296918.73026),\n                   (1571529600000, 171.84, 175.22, 176.88, 169.21, 299141.07152),\n                   (1571616000000, 175.18, 173.98, 177.9, 171.59, 270608.51385),\n                   (1571702400000, 174.0, 171.2, 175.04, 170.3, 255429.41624),\n                   (1571788800000, 171.19, 162.35, 171.49, 153.45, 746955.09806),\n                   (1571875200000, 162.35, 160.38, 163.72, 158.72, 387310.83766),\n                   (1571961600000, 160.39, 181.5, 187.78, 160.25, 904832.86059),\n                   (1572048000000, 181.53, 179.49, 197.74, 173.8, 1211737.43684),\n                   (1572134400000, 179.42, 183.75, 188.7, 176.22, 724423.40525),\n                   (1572220800000, 183.84, 181.72, 189.48, 180.35, 582179.44545),\n                   (1572307200000, 181.67, 190.46, 192.74, 181.26, 529964.5054),\n                   (1572393600000, 190.45, 183.13, 191.71, 179.28, 537770.43056),\n                   (1572480000000, 183.14, 182.18, 185.27, 177.66, 410969.86104),\n                   (1572566400000, 182.19, 182.85, 184.5, 177.02, 331519.76963),\n                   (1572652800000, 182.86, 182.91, 186.0, 181.53, 179864.39739),\n                   (1572739200000, 182.9, 181.54, 184.7, 178.95, 232621.52147),\n                   (1572825600000, 181.53, 185.71, 188.64, 180.36, 321175.29134),\n                   (1572912000000, 185.71, 188.68, 192.51, 182.22, 389668.6472),\n                   (1572998400000, 188.65, 191.16, 195.09, 187.72, 343219.9224),\n                   (1573084800000, 191.16, 186.68, 192.27, 184.59, 309882.08206),\n                   (1573171200000, 186.67, 183.74, 188.26, 181.41, 365029.75027),\n                   (1573257600000, 183.71, 184.89, 185.79, 182.63, 192073.38044),\n                   (1573344000000, 184.86, 188.96, 191.58, 183.3, 274940.53448),\n                   (1573430400000, 188.96, 184.98, 190.19, 184.06, 255579.93429),\n                   (1573516800000, 184.98, 187.09, 187.65, 182.41, 256782.63119),\n                   (1573603200000, 187.09, 188.11, 189.66, 185.3, 197273.84001),\n                   (1573689600000, 188.07, 184.92, 188.72, 183.34, 245505.29971),\n                   (1573776000000, 184.93, 180.0, 186.7, 177.67, 407466.78964),\n                   (1573862400000, 179.99, 182.37, 183.46, 179.3, 172801.52576),\n                   (1573948800000, 182.37, 183.82, 186.09, 180.0, 198892.4372),\n                   (1574035200000, 183.82, 178.2, 184.06, 175.01, 293551.23632),\n                   (1574121600000, 178.2, 175.94, 178.52, 172.65, 275886.6411),\n                   (1574208000000, 175.93, 174.72, 177.41, 173.5, 216315.93309),\n                   (1574294400000, 174.75, 161.01, 175.85, 157.26, 473895.92992),\n                   (1574380800000, 161.02, 149.56, 162.79, 138.0, 977977.23794),\n                   (1574467200000, 149.55, 151.84, 154.33, 146.11, 369721.0996),\n                   (1574553600000, 151.84, 139.96, 152.86, 138.62, 352319.21558),\n                   (1574640000000, 139.99, 145.69, 151.5, 131.45, 749675.41303),\n                   (1574726400000, 145.81, 147.47, 149.97, 143.37, 354023.04298),\n                   (1574812800000, 147.47, 152.62, 155.54, 140.84, 564796.4284),\n                   (1574899200000, 152.61, 150.72, 154.63, 149.09, 317714.56326),\n                   (1574985600000, 150.69, 154.57, 157.6, 150.23, 328712.25558),\n                   (1575072000000, 154.54, 151.37, 155.25, 149.7, 226863.41299),\n                   (1575158400000, 151.43, 150.73, 152.49, 145.79, 344178.14088),\n                   (1575244800000, 150.72, 148.65, 151.42, 146.71, 233839.0973),\n                   (1575331200000, 148.66, 147.17, 149.93, 145.77, 196329.22503),\n                   (1575417600000, 147.19, 145.38, 151.98, 143.15, 434430.62379),\n                   (1575504000000, 145.45, 148.1, 149.02, 143.64, 299073.53972),\n                   (1575590400000, 148.11, 148.45, 149.77, 145.74, 220674.68581),\n                   (1575676800000, 148.46, 147.14, 149.49, 146.85, 140471.68588),\n                   (1575763200000, 147.16, 150.44, 151.62, 146.11, 205301.6026),\n                   (1575849600000, 150.44, 147.38, 151.19, 146.56, 243775.99249),\n                   (1575936000000, 147.4, 145.56, 148.57, 143.81, 203215.84937),\n                   (1576022400000, 145.53, 143.39, 146.34, 142.12, 157843.10484),\n                   (1576108800000, 143.41, 144.87, 145.85, 139.24, 261615.30437),\n                   (1576195200000, 144.87, 144.8, 146.0, 142.8, 160695.18556),\n                   (1576281600000, 144.8, 141.79, 145.07, 141.18, 126232.59201),\n                   (1576368000000, 141.79, 142.46, 144.12, 139.92, 151189.65877),\n                   (1576454400000, 142.46, 132.73, 142.72, 127.93, 471018.85942),\n                   (1576540800000, 132.72, 121.88, 132.98, 119.11, 563257.36001),\n                   (1576627200000, 121.88, 132.78, 134.87, 116.26, 884960.91334),\n                   (1576713600000, 132.8, 128.1, 134.0, 125.69, 420674.8172),\n                   (1576800000000, 128.1, 128.19, 129.39, 125.84, 213897.4673),\n                   (1576886400000, 128.19, 126.99, 128.4, 126.5, 135196.11641),\n                   (1576972800000, 127.0, 132.09, 133.07, 126.82, 253140.72413),\n                   (1577059200000, 132.12, 127.8, 135.1, 126.0, 421600.75655),\n                   (1577145600000, 127.8, 127.75, 129.69, 126.61, 200637.10098),\n                   (1577232000000, 127.7, 125.09, 127.84, 123.07, 225004.4909),\n                   (1577318400000, 125.09, 125.58, 132.26, 124.32, 274986.52097),\n                   (1577404800000, 125.58, 126.29, 127.1, 121.91, 240012.37451),\n                   (1577491200000, 126.28, 128.11, 129.68, 125.84, 196893.52277),\n                   (1577577600000, 128.11, 134.36, 138.07, 127.52, 316347.26666),\n                   (1577664000000, 134.36, 131.59, 136.24, 130.3, 320347.21956),\n                   (1577750400000, 131.61, 129.16, 133.68, 128.17, 264933.98418),\n                   (1577836800000, 129.16, 130.77, 133.05, 128.68, 144770.52197),\n                   (1577923200000, 130.72, 127.19, 130.78, 126.38, 213757.05806),\n                   (1578009600000, 127.19, 134.35, 135.14, 125.88, 413055.18895),\n                   (1578096000000, 134.37, 134.2, 135.85, 132.5, 184276.17102),\n                   (1578182400000, 134.2, 135.37, 138.19, 134.19, 254120.45343),\n                   (1578268800000, 135.37, 144.15, 144.41, 134.86, 408020.27375),\n                   (1578355200000, 144.14, 142.8, 145.31, 138.76, 447762.17281),\n                   (1578441600000, 142.8, 140.72, 147.77, 137.03, 570465.57764),\n                   (1578528000000, 140.76, 137.74, 141.5, 135.3, 366076.06569),\n                   (1578614400000, 137.73, 144.84, 145.17, 135.32, 409403.59507),\n                   (1578700800000, 144.83, 142.38, 148.05, 142.09, 368350.57939),\n                   (1578787200000, 142.4, 146.54, 146.6, 141.76, 229541.86137),\n                   (1578873600000, 146.56, 143.58, 147.0, 142.27, 207996.61865),\n                   (1578960000000, 143.58, 165.64, 171.7, 143.51, 1108476.31186),\n                   (1579046400000, 165.6, 166.4, 171.98, 159.2, 721687.80381),\n                   (1579132800000, 166.4, 164.21, 167.4, 157.8, 456170.86719),\n                   (1579219200000, 164.24, 169.85, 174.81, 162.14, 767180.67853),\n                   (1579305600000, 169.92, 174.14, 179.5, 164.92, 688783.17982),\n                   (1579392000000, 174.1, 166.79, 178.05, 161.66, 624681.28604),\n                   (1579478400000, 166.79, 166.87, 169.33, 161.24, 358092.8841),\n                   (1579564800000, 166.86, 169.49, 170.32, 164.8, 308007.6353),\n                   (1579651200000, 169.48, 168.07, 171.47, 166.03, 272240.90286),\n                   (1579737600000, 168.07, 162.81, 168.2, 159.21, 373414.34985),\n                   (1579824000000, 162.85, 162.54, 164.45, 155.55, 430013.19902),\n                   (1579910400000, 162.51, 160.35, 162.79, 157.61, 219921.65197),\n                   (1579996800000, 160.36, 167.86, 168.08, 159.41, 251582.55758),\n                   (1580083200000, 167.91, 170.08, 172.56, 165.22, 365894.81917),\n                   (1580169600000, 170.04, 175.64, 176.2, 170.03, 473433.89609),\n                   (1580256000000, 175.58, 173.72, 178.45, 173.33, 317382.90161),\n                   (1580342400000, 173.68, 184.69, 187.0, 170.93, 477721.6609),\n                   (1580428800000, 184.71, 179.99, 185.82, 175.22, 385596.53365),\n                   (1580515200000, 179.94, 183.6, 184.28, 179.23, 259370.12902),\n                   (1580601600000, 183.63, 188.44, 193.43, 179.1, 552621.13619),\n                   (1580688000000, 188.48, 189.69, 195.19, 186.62, 417175.95781),\n                   (1580774400000, 189.74, 188.91, 191.6, 184.69, 366389.69686),\n                   (1580860800000, 188.91, 203.78, 207.61, 188.19, 550942.11417),\n                   (1580947200000, 203.78, 213.19, 216.33, 201.02, 608240.2233),\n                   (1581033600000, 213.16, 223.33, 225.0, 213.14, 629361.15466),\n                   (1581120000000, 223.36, 223.05, 227.75, 213.22, 548551.87465),\n                   (1581206400000, 223.01, 228.49, 230.65, 222.86, 350336.24399),\n                   (1581292800000, 228.53, 222.89, 229.4, 216.37, 510415.49949),\n                   (1581379200000, 222.89, 236.69, 239.15, 218.17, 595576.90276),\n                   (1581465600000, 236.69, 265.74, 275.34, 236.69, 1038073.74782),\n                   (1581552000000, 265.74, 268.32, 277.69, 256.08, 1089679.1537),\n                   (1581638400000, 268.34, 285.15, 287.15, 260.28, 734944.32266),\n                   (1581724800000, 285.11, 264.88, 288.41, 261.86, 860813.14274),\n                   (1581811200000, 264.91, 258.85, 274.0, 237.41, 1110118.46395),\n                   (1581897600000, 258.89, 267.85, 268.77, 242.0, 1110371.39094),\n                   (1581984000000, 267.9, 282.61, 285.88, 258.0, 1115523.43992),\n                   (1582070400000, 282.64, 258.45, 285.0, 251.56, 705973.72988),\n                   (1582156800000, 258.44, 256.96, 264.33, 245.34, 972969.71691),\n                   (1582243200000, 256.97, 265.27, 268.24, 253.61, 525827.8734),\n                   (1582329600000, 265.32, 261.57, 266.81, 256.0, 313062.52133),\n                   (1582416000000, 261.55, 274.48, 275.68, 261.02, 444740.82883),\n                   (1582502400000, 274.5, 265.52, 277.2, 257.09, 696591.72983),\n                   (1582588800000, 265.47, 246.67, 266.22, 244.44, 774791.01027),\n                   (1582675200000, 246.67, 223.93, 250.32, 215.66, 1395879.41507),\n                   (1582761600000, 223.98, 227.79, 238.3, 210.0, 1273793.11658),\n                   (1582848000000, 227.73, 226.76, 234.67, 214.01, 1054994.92397),\n                   (1582934400000, 226.76, 217.21, 233.0, 217.0, 546866.6851),\n                   (1583020800000, 217.29, 217.81, 227.89, 212.36, 715016.01941),\n                   (1583107200000, 217.81, 231.97, 234.4, 216.07, 810051.4833),\n                   (1583193600000, 232.1, 223.91, 232.46, 219.57, 741498.54825),\n                   (1583280000000, 223.84, 224.26, 228.85, 220.23, 443780.33772),\n                   (1583366400000, 224.26, 228.38, 234.09, 224.23, 601479.87587),\n                   (1583452800000, 228.38, 244.88, 245.16, 227.33, 628147.3257),\n                   (1583539200000, 244.93, 237.23, 251.93, 236.0, 633748.89662),\n                   (1583625600000, 237.23, 199.43, 237.23, 195.5, 1278973.53741),\n                   (1583712000000, 199.43, 202.81, 208.62, 190.0, 1661331.83553),\n                   (1583798400000, 202.79, 200.7, 206.2, 195.54, 1020260.107),\n                   (1583884800000, 200.74, 194.61, 203.18, 181.73, 1079824.90167),\n                   (1583971200000, 194.61, 107.82, 195.55, 101.2, 3814533.14046)]\n\ntest_candles_sol = [\n    (1672531200000, 9.97, 9.98, 9.98, 9.95, 6012.86),\n    (1672531260000, 9.98, 10.01, 10.02, 9.98, 10999.19),\n    (1672531320000, 10, 10.01, 10.01, 9.99, 2743.61),\n    (1672531380000, 10, 10.01, 10.02, 10, 1603.08),\n    (1672531440000, 10, 10, 10.01, 9.99, 4438.49),\n    (1672531500000, 10.01, 10, 10.02, 10, 1257.88),\n    (1672531560000, 10, 9.99, 10.01, 9.99, 1063),\n    (1672531620000, 10, 9.99, 10.01, 9.99, 872.6),\n    (1672531680000, 10, 9.97, 10, 9.97, 648.39),\n    (1672531740000, 9.97, 9.96, 9.97, 9.96, 1011.85),\n    (1672531800000, 9.97, 9.97, 9.98, 9.96, 1909.9),\n    (1672531860000, 9.97, 9.97, 9.97, 9.96, 1509.64),\n    (1672531920000, 9.96, 9.95, 9.96, 9.94, 1901.28),\n    (1672531980000, 9.95, 9.96, 9.96, 9.94, 2496.99),\n    (1672532040000, 9.95, 9.95, 9.96, 9.94, 2112.13),\n    (1672532100000, 9.95, 9.95, 9.95, 9.93, 3874.95),\n    (1672532160000, 9.95, 9.95, 9.96, 9.94, 1598.77),\n    (1672532220000, 9.95, 9.94, 9.95, 9.94, 1951.65),\n    (1672532280000, 9.94, 9.95, 9.96, 9.93, 3442.14),\n    (1672532340000, 9.95, 9.97, 9.98, 9.94, 3426.05),\n    (1672532400000, 9.97, 9.98, 9.98, 9.96, 1486.2),\n    (1672532460000, 9.97, 10, 10, 9.97, 479.29),\n    (1672532520000, 9.99, 9.98, 9.99, 9.97, 1502.1),\n    (1672532580000, 9.98, 10, 10.01, 9.98, 2066.12),\n    (1672532640000, 10, 9.98, 10, 9.98, 655.88),\n    (1672532700000, 9.99, 10, 10, 9.98, 3875.85),\n    (1672532760000, 10.01, 10.01, 10.02, 10.01, 4325.91),\n    (1672532820000, 10.01, 10.02, 10.02, 10.01, 1638.06),\n    (1672532880000, 10.02, 10.02, 10.02, 10.01, 1333.87),\n    (1672532940000, 10.02, 10.02, 10.02, 10.01, 225.79),\n    (1672533000000, 10.01, 10, 10.02, 10, 1325.69),\n    (1672533060000, 10, 10, 10, 9.99, 130.81),\n    (1672533120000, 9.99, 9.98, 10, 9.98, 673.64),\n    (1672533180000, 9.99, 9.99, 10, 9.98, 376.7),\n    (1672533240000, 9.99, 9.98, 9.99, 9.97, 723.08),\n    (1672533300000, 9.98, 9.97, 9.98, 9.97, 3931.94),\n    (1672533360000, 9.98, 9.97, 9.98, 9.96, 3292.88),\n    (1672533420000, 9.97, 9.95, 9.97, 9.94, 6728.53),\n    (1672533480000, 9.95, 9.96, 9.97, 9.95, 2206.68),\n    (1672533540000, 9.96, 9.97, 9.98, 9.96, 3032.95),\n    (1672533600000, 9.97, 9.96, 9.97, 9.96, 175),\n    (1672533660000, 9.96, 9.96, 9.96, 9.95, 1082.37),\n    (1672533720000, 9.95, 9.95, 9.95, 9.94, 3514.5),\n    (1672533780000, 9.95, 9.96, 9.96, 9.94, 446.21),\n    (1672533840000, 9.95, 9.95, 9.97, 9.95, 2158.46),\n    (1672533900000, 9.95, 9.96, 9.96, 9.95, 1512.61),\n    (1672533960000, 9.96, 9.97, 9.97, 9.96, 1111.22),\n    (1672534020000, 9.97, 9.98, 9.98, 9.97, 647.96),\n    (1672534080000, 9.98, 9.97, 9.98, 9.97, 954.32),\n    (1672534140000, 9.98, 9.98, 9.99, 9.98, 2885.52),\n    (1672534200000, 9.98, 9.99, 9.99, 9.97, 2375.62),\n    (1672534260000, 9.98, 10, 10, 9.97, 4595.64),\n    (1672534320000, 9.99, 9.99, 10, 9.99, 1598.48),\n    (1672534380000, 9.99, 9.99, 9.99, 9.99, 1169.66),\n    (1672534440000, 9.99, 10, 10, 9.99, 1391.42),\n    (1672534500000, 9.99, 9.99, 10, 9.99, 2006.7),\n    (1672534560000, 9.99, 9.99, 10, 9.99, 292.89),\n    (1672534620000, 9.99, 10, 10.01, 9.99, 1966.99),\n    (1672534680000, 10, 9.99, 10, 9.98, 563.89),\n    (1672534740000, 9.98, 9.99, 9.99, 9.98, 1143.79),\n    (1672534800000, 9.99, 9.99, 10, 9.98, 1176.35),\n    (1672534860000, 9.99, 9.99, 9.99, 9.98, 2147.82),\n    (1672534920000, 9.99, 10, 10, 9.99, 629.53),\n    (1672534980000, 9.99, 9.99, 9.99, 9.99, 134.64),\n    (1672535040000, 10, 9.99, 10, 9.98, 1108.93),\n    (1672535100000, 10, 10, 10.01, 10, 952.43),\n    (1672535160000, 10.01, 10.01, 10.01, 10.01, 26.3),\n    (1672535220000, 10.01, 10.02, 10.02, 10.01, 543.91),\n    (1672535280000, 10.02, 10.02, 10.03, 10.01, 2903.66),\n    (1672535340000, 10.03, 10.04, 10.04, 10.02, 1666.83),\n    (1672535400000, 10.04, 10.05, 10.06, 10.04, 13699.34),\n    (1672535460000, 10.05, 10.04, 10.05, 10.03, 1020.91),\n    (1672535520000, 10.03, 10.03, 10.03, 10.02, 874.67),\n    (1672535580000, 10.03, 10.03, 10.03, 10.03, 796.63),\n    (1672535640000, 10.03, 10.01, 10.03, 10.01, 1008.26),\n    (1672535700000, 10.01, 10.03, 10.04, 10.01, 2721.08),\n    (1672535760000, 10.04, 10.02, 10.05, 10.02, 2266.46),\n    (1672535820000, 10.03, 10.03, 10.04, 10.03, 861.96),\n    (1672535880000, 10.04, 10.04, 10.04, 10.03, 566.92),\n    (1672535940000, 10.04, 10.04, 10.04, 10.04, 1113.72),\n    (1672536000000, 10.03, 10.03, 10.03, 10.03, 1490.31),\n    (1672536060000, 10.03, 10.03, 10.03, 10.03, 2289.18),\n    (1672536120000, 10.03, 10.03, 10.04, 10.03, 226.51),\n    (1672536180000, 10.03, 10.02, 10.03, 10.02, 412.55),\n    (1672536240000, 10.02, 10.03, 10.03, 10.02, 704.4),\n    (1672536300000, 10.04, 10.03, 10.05, 10.03, 2551.2),\n    (1672536360000, 10.03, 10.06, 10.06, 10.03, 19448.95),\n    (1672536420000, 10.05, 10.05, 10.06, 10.04, 6164.03),\n    (1672536480000, 10.05, 10.04, 10.05, 10.04, 435.12),\n    (1672536540000, 10.05, 10.05, 10.06, 10.05, 276.07),\n    (1672536600000, 10.06, 10.05, 10.06, 10.05, 71.77),\n    (1672536660000, 10.05, 10.05, 10.07, 10.05, 4348.09),\n    (1672536720000, 10.06, 10.05, 10.06, 10.04, 6683.92),\n    (1672536780000, 10.04, 10.04, 10.05, 10.04, 97.44),\n    (1672536840000, 10.04, 10.06, 10.06, 10.04, 2802.31),\n    (1672536900000, 10.05, 10.06, 10.06, 10.05, 475.3),\n    (1672536960000, 10.06, 10.05, 10.07, 10.05, 2027.99),\n    (1672537020000, 10.05, 10.05, 10.06, 10.04, 4810.31),\n    (1672537080000, 10.05, 10.05, 10.06, 10.05, 200.56),\n    (1672537140000, 10.05, 10.05, 10.06, 10.05, 325.34),\n    (1672537200000, 10.05, 10.05, 10.07, 10.05, 2585.52),\n    (1672537260000, 10.06, 10.06, 10.06, 10.05, 471.76),\n    (1672537320000, 10.06, 10.06, 10.07, 10.06, 919.67),\n    (1672537380000, 10.07, 10.05, 10.07, 10.05, 3235.87),\n    (1672537440000, 10.05, 10.04, 10.06, 10.04, 2089.02),\n    (1672537500000, 10.04, 10.03, 10.05, 10.03, 2938.33),\n    (1672537560000, 10.03, 10.04, 10.04, 10.03, 113.98),\n    (1672537620000, 10.03, 10.05, 10.05, 10.03, 745.57),\n    (1672537680000, 10.05, 10.05, 10.05, 10.04, 242.57),\n    (1672537740000, 10.05, 10.05, 10.05, 10.04, 852.11),\n    (1672537800000, 10.05, 10.04, 10.05, 10.04, 416.65),\n    (1672537860000, 10.04, 10.03, 10.04, 10.03, 1440),\n    (1672537920000, 10.03, 10.02, 10.03, 10.02, 240.59),\n    (1672537980000, 10.02, 10.03, 10.04, 10.02, 2825.32),\n    (1672538040000, 10.03, 10.04, 10.04, 10.03, 465.44),\n    (1672538100000, 10.03, 10.03, 10.03, 10.03, 12.72),\n    (1672538160000, 10.03, 10.04, 10.04, 10.03, 417.56),\n    (1672538220000, 10.05, 10.04, 10.05, 10.03, 1137.68),\n    (1672538280000, 10.05, 10.03, 10.05, 10.03, 2683.54),\n    (1672538340000, 10.04, 10.04, 10.04, 10.04, 2402.22),\n    (1672538400000, 10.04, 10.02, 10.04, 10.02, 9862.71),\n    (1672538460000, 10.03, 10.03, 10.03, 10.02, 810.77),\n    (1672538520000, 10.02, 10.03, 10.03, 10.02, 85.66),\n    (1672538580000, 10.02, 10.02, 10.03, 10.02, 3696.33),\n    (1672538640000, 10.01, 10.01, 10.02, 10, 902.48),\n    (1672538700000, 10, 10, 10.01, 10, 423.01),\n    (1672538760000, 10.01, 10.01, 10.01, 10, 196.31),\n    (1672538820000, 10.01, 10.01, 10.01, 10.01, 572.54),\n    (1672538880000, 10.01, 10.02, 10.03, 10.01, 4863.36),\n    (1672538940000, 10.03, 10.03, 10.03, 10.03, 396.34),\n    (1672539000000, 10.03, 10.03, 10.04, 10.03, 517.02),\n    (1672539060000, 10.03, 10.04, 10.04, 10.03, 699.71),\n    (1672539120000, 10.04, 10.05, 10.05, 10.03, 819.17),\n    (1672539180000, 10.05, 10.06, 10.06, 10.04, 642.45),\n    (1672539240000, 10.06, 10.07, 10.07, 10.05, 3845.62),\n    (1672539300000, 10.06, 10.06, 10.07, 10.06, 2233.22),\n    (1672539360000, 10.06, 10.08, 10.08, 10.06, 4973.68),\n    (1672539420000, 10.09, 10.07, 10.09, 10.07, 1129.99),\n    (1672539480000, 10.07, 10.05, 10.07, 10.05, 654.84),\n    (1672539540000, 10.06, 10.06, 10.06, 10.06, 509.14),\n    (1672539600000, 10.06, 10.06, 10.06, 10.04, 1780.85),\n    (1672539660000, 10.05, 10.04, 10.05, 10.04, 706.3),\n    (1672539720000, 10.04, 10.04, 10.04, 10.04, 0),\n    (1672539780000, 10.05, 10.04, 10.05, 10.03, 947.57),\n    (1672539840000, 10.04, 10.05, 10.05, 10.04, 479.51),\n    (1672539900000, 10.04, 10.04, 10.04, 10.03, 437.96),\n    (1672539960000, 10.04, 10.05, 10.06, 10.03, 547.7),\n    (1672540020000, 10.05, 10.04, 10.05, 10.04, 508.05),\n    (1672540080000, 10.05, 10.06, 10.06, 10.05, 3622.96),\n    (1672540140000, 10.06, 10.06, 10.06, 10.05, 23.09),\n    (1672540200000, 10.06, 10.06, 10.06, 10.05, 26.6),\n    (1672540260000, 10.06, 10.05, 10.06, 10.05, 46.79),\n    (1672540320000, 10.06, 10.07, 10.07, 10.05, 943.65),\n    (1672540380000, 10.06, 10.07, 10.07, 10.06, 699.37),\n    (1672540440000, 10.07, 10.07, 10.07, 10.06, 119.67),\n    (1672540500000, 10.06, 10.07, 10.07, 10.06, 1013.36),\n    (1672540560000, 10.07, 10.06, 10.07, 10.05, 269.42),\n    (1672540620000, 10.05, 10.06, 10.06, 10.05, 12.78),\n    (1672540680000, 10.06, 10.04, 10.06, 10.04, 439.52),\n    (1672540740000, 10.05, 10.04, 10.05, 10.04, 1398.26),\n    (1672540800000, 10.05, 10.03, 10.05, 10.03, 2296.74),\n    (1672540860000, 10.03, 10.04, 10.04, 10.03, 123.63),\n    (1672540920000, 10.04, 10.03, 10.04, 10.03, 39.89),\n    (1672540980000, 10.04, 10.03, 10.04, 10.03, 915.61),\n    (1672541040000, 10.03, 10.04, 10.04, 10.03, 1673.52),\n    (1672541100000, 10.04, 10.04, 10.04, 10.03, 1519.31),\n    (1672541160000, 10.04, 10.03, 10.04, 10.03, 402.57),\n    (1672541220000, 10.03, 10.02, 10.03, 10.02, 337.17),\n    (1672541280000, 10.03, 10.02, 10.03, 10.01, 541.12),\n    (1672541340000, 10.02, 10.02, 10.02, 10.02, 471.1),\n    (1672541400000, 10.02, 10.01, 10.02, 10.01, 364.6),\n    (1672541460000, 10.02, 10.01, 10.02, 10.01, 201.81),\n    (1672541520000, 10.02, 10.02, 10.02, 10.01, 58.88),\n    (1672541580000, 10.02, 10.02, 10.02, 10.01, 494.06),\n    (1672541640000, 10.02, 10.01, 10.02, 10.01, 1000.07),\n    (1672541700000, 10.02, 10.02, 10.02, 10.02, 112.11),\n    (1672541760000, 10.01, 10.02, 10.02, 10.01, 1006.28),\n    (1672541820000, 10.02, 10.02, 10.03, 10.02, 1584.64),\n    (1672541880000, 10.02, 10.02, 10.02, 10.01, 580.09),\n    (1672541940000, 10.02, 10.02, 10.02, 10.02, 34.55),\n    (1672542000000, 10.02, 10.01, 10.02, 10, 2078.9),\n    (1672542060000, 10.01, 10.01, 10.01, 10, 2412.61),\n    (1672542120000, 10.01, 10, 10.01, 9.99, 1561.87),\n    (1672542180000, 10, 10, 10, 9.98, 448.95),\n    (1672542240000, 10, 9.99, 10, 9.99, 102.44),\n    (1672542300000, 10, 9.99, 10, 9.99, 376.41),\n    (1672542360000, 9.99, 10, 10, 9.99, 924.18),\n    (1672542420000, 10, 10.01, 10.01, 9.99, 803.55),\n    (1672542480000, 10, 10, 10, 9.99, 237.65),\n    (1672542540000, 9.99, 9.99, 10, 9.98, 1849.61),\n    (1672542600000, 9.99, 9.96, 9.99, 9.95, 5742.28),\n    (1672542660000, 9.96, 9.97, 9.97, 9.95, 3174.98),\n    (1672542720000, 9.97, 9.96, 9.97, 9.95, 509.55),\n    (1672542780000, 9.96, 9.95, 9.96, 9.95, 5933.57),\n    (1672542840000, 9.95, 9.96, 9.96, 9.94, 3608.08),\n    (1672542900000, 9.95, 9.94, 9.96, 9.93, 4956.63),\n    (1672542960000, 9.94, 9.94, 9.95, 9.94, 660.84),\n    (1672543020000, 9.93, 9.93, 9.94, 9.93, 1166.06),\n    (1672543080000, 9.93, 9.93, 9.94, 9.91, 2535.58),\n    (1672543140000, 9.92, 9.92, 9.92, 9.91, 2876.85),\n    (1672543200000, 9.93, 9.94, 9.94, 9.93, 744.74),\n    (1672543260000, 9.94, 9.95, 9.95, 9.93, 1902.79),\n    (1672543320000, 9.95, 9.96, 9.97, 9.95, 2153.84),\n    (1672543380000, 9.96, 9.95, 9.96, 9.94, 301.58),\n    (1672543440000, 9.95, 9.95, 9.96, 9.94, 3702.36),\n    (1672543500000, 9.95, 9.95, 9.95, 9.95, 31.17),\n    (1672543560000, 9.95, 9.96, 9.96, 9.95, 670.09),\n    (1672543620000, 9.96, 9.97, 9.98, 9.96, 1401.7),\n    (1672543680000, 9.97, 9.97, 9.97, 9.96, 1021.07),\n    (1672543740000, 9.97, 9.96, 9.98, 9.96, 909.45),\n    (1672543800000, 9.96, 9.95, 9.96, 9.94, 1129.79),\n    (1672543860000, 9.95, 9.96, 9.96, 9.95, 547.16),\n    (1672543920000, 9.95, 9.96, 9.96, 9.95, 22.48),\n    (1672543980000, 9.96, 9.97, 9.97, 9.96, 265.73),\n    (1672544040000, 9.96, 9.96, 9.96, 9.95, 894.59),\n    (1672544100000, 9.96, 9.96, 9.96, 9.95, 72.42),\n    (1672544160000, 9.96, 9.95, 9.96, 9.95, 137.01),\n    (1672544220000, 9.95, 9.95, 9.96, 9.95, 470.22),\n    (1672544280000, 9.95, 9.95, 9.95, 9.95, 3.1),\n    (1672544340000, 9.96, 9.96, 9.96, 9.96, 160.15),\n    (1672544400000, 9.96, 9.96, 9.96, 9.94, 1625.06),\n    (1672544460000, 9.96, 9.95, 9.96, 9.95, 548.44),\n    (1672544520000, 9.95, 9.95, 9.95, 9.94, 683.25),\n    (1672544580000, 9.96, 9.97, 9.97, 9.95, 767.86),\n    (1672544640000, 9.96, 9.96, 9.96, 9.95, 641.5),\n    (1672544700000, 9.96, 9.96, 9.97, 9.95, 1569.99),\n    (1672544760000, 9.96, 9.95, 9.96, 9.95, 317.95),\n    (1672544820000, 9.95, 9.95, 9.95, 9.94, 141.36),\n    (1672544880000, 9.95, 9.94, 9.95, 9.94, 622.98),\n    (1672544940000, 9.93, 9.95, 9.95, 9.93, 315.28),\n    (1672545000000, 9.94, 9.94, 9.95, 9.94, 317.1),\n    (1672545060000, 9.93, 9.94, 9.94, 9.93, 264.87),\n    (1672545120000, 9.94, 9.94, 9.95, 9.94, 448.51),\n    (1672545180000, 9.95, 9.95, 9.95, 9.94, 254.07),\n    (1672545240000, 9.95, 9.98, 9.98, 9.95, 7521.29),\n    (1672545300000, 9.98, 9.97, 9.98, 9.96, 1870.94),\n    (1672545360000, 9.97, 9.97, 9.97, 9.96, 158.28),\n    (1672545420000, 9.96, 9.97, 9.97, 9.96, 136.22),\n    (1672545480000, 9.96, 9.97, 9.97, 9.95, 1275.77),\n    (1672545540000, 9.97, 9.97, 9.97, 9.97, 123.34),\n    (1672545600000, 9.97, 9.98, 9.98, 9.96, 1557.73),\n    (1672545660000, 9.97, 9.98, 9.98, 9.97, 246.96),\n    (1672545720000, 9.98, 9.97, 9.98, 9.97, 149.85),\n    (1672545780000, 9.98, 9.98, 9.99, 9.97, 4365.41),\n    (1672545840000, 9.98, 9.98, 9.98, 9.97, 1216.85),\n    (1672545900000, 9.98, 9.98, 9.98, 9.98, 119.78),\n    (1672545960000, 9.98, 9.97, 9.98, 9.96, 2162.42),\n    (1672546020000, 9.97, 9.96, 9.97, 9.95, 2310.79),\n    (1672546080000, 9.95, 9.92, 9.95, 9.92, 12640.34),\n    (1672546140000, 9.92, 9.92, 9.93, 9.91, 2579.13),\n    (1672546200000, 9.92, 9.92, 9.93, 9.92, 893.82),\n    (1672546260000, 9.92, 9.91, 9.92, 9.91, 3584.1),\n    (1672546320000, 9.91, 9.92, 9.92, 9.9, 2501.91),\n    (1672546380000, 9.92, 9.91, 9.92, 9.91, 949.62),\n    (1672546440000, 9.91, 9.9, 9.91, 9.89, 2498.71),\n    (1672546500000, 9.89, 9.89, 9.9, 9.87, 3475.88),\n    (1672546560000, 9.88, 9.87, 9.89, 9.86, 7563.51),\n    (1672546620000, 9.86, 9.89, 9.89, 9.86, 4012.11),\n    (1672546680000, 9.89, 9.89, 9.89, 9.88, 193.6),\n    (1672546740000, 9.88, 9.87, 9.89, 9.87, 3498.79),\n    (1672546800000, 9.87, 9.86, 9.88, 9.86, 1449.06),\n    (1672546860000, 9.87, 9.88, 9.88, 9.85, 3537.73),\n    (1672546920000, 9.88, 9.88, 9.88, 9.87, 754.34),\n    (1672546980000, 9.88, 9.88, 9.89, 9.87, 2265.81),\n    (1672547040000, 9.88, 9.87, 9.88, 9.87, 813.69),\n    (1672547100000, 9.87, 9.89, 9.89, 9.87, 863.57),\n    (1672547160000, 9.89, 9.89, 9.89, 9.88, 1232.14),\n    (1672547220000, 9.89, 9.9, 9.9, 9.89, 383.37),\n    (1672547280000, 9.9, 9.89, 9.9, 9.89, 400.55),\n    (1672547340000, 9.9, 9.88, 9.9, 9.88, 675.81),\n    (1672547400000, 9.88, 9.86, 9.88, 9.86, 1973.87),\n    (1672547460000, 9.87, 9.88, 9.89, 9.86, 2064.97),\n    (1672547520000, 9.89, 9.89, 9.89, 9.89, 1109.06),\n    (1672547580000, 9.89, 9.87, 9.89, 9.87, 1369.62),\n    (1672547640000, 9.87, 9.88, 9.89, 9.87, 1127.33),\n    (1672547700000, 9.88, 9.88, 9.88, 9.86, 1895.61),\n    (1672547760000, 9.88, 9.88, 9.88, 9.87, 310.74),\n    (1672547820000, 9.88, 9.88, 9.89, 9.87, 604.38),\n    (1672547880000, 9.88, 9.87, 9.88, 9.86, 1110.86),\n    (1672547940000, 9.87, 9.87, 9.87, 9.86, 785.38),\n    (1672548000000, 9.87, 9.86, 9.87, 9.86, 278.59),\n    (1672548060000, 9.86, 9.88, 9.88, 9.86, 232.65),\n    (1672548120000, 9.88, 9.87, 9.88, 9.86, 5518.03),\n    (1672548180000, 9.87, 9.87, 9.87, 9.87, 57.77),\n    (1672548240000, 9.87, 9.86, 9.87, 9.86, 2442.61),\n    (1672548300000, 9.87, 9.87, 9.87, 9.86, 938.96),\n    (1672548360000, 9.86, 9.87, 9.87, 9.86, 116.69),\n    (1672548420000, 9.87, 9.86, 9.87, 9.86, 240.03),\n    (1672548480000, 9.85, 9.85, 9.86, 9.84, 6485.75),\n    (1672548540000, 9.86, 9.85, 9.87, 9.84, 1872.71),\n    (1672548600000, 9.85, 9.85, 9.86, 9.84, 725.16),\n    (1672548660000, 9.86, 9.87, 9.87, 9.86, 346.65),\n    (1672548720000, 9.87, 9.85, 9.87, 9.85, 3527.6),\n    (1672548780000, 9.84, 9.86, 9.86, 9.84, 1814.35),\n    (1672548840000, 9.86, 9.86, 9.86, 9.85, 82.84),\n    (1672548900000, 9.85, 9.86, 9.86, 9.85, 610.2),\n    (1672548960000, 9.86, 9.85, 9.86, 9.84, 1593.8),\n    (1672549020000, 9.85, 9.85, 9.85, 9.84, 24.42),\n    (1672549080000, 9.85, 9.85, 9.85, 9.84, 12.64),\n    (1672549140000, 9.84, 9.84, 9.85, 9.82, 6953.51)\n]\n\ntest_candles_btc = [\n    (1673764980000, 20738.14, 20742.16, 20746.14, 20736.77, 88.94297),\n    (1673765040000, 20742.16, 20737.68, 20743.39, 20733.44, 85.56581),\n    (1673765100000, 20737.68, 20718, 20738.09, 20717.1, 131.62988),\n    (1673765160000, 20718.62, 20708.6, 20720.6, 20698, 189.07005),\n    (1673765220000, 20709.62, 20721.36, 20725.32, 20708.29, 137.71135),\n    (1673765280000, 20721.36, 20722.96, 20724.2, 20713.61, 79.86678),\n    (1673765340000, 20721.59, 20730.71, 20732.76, 20721.54, 69.22343),\n    (1673765400000, 20730.65, 20728.03, 20735.17, 20725.01, 98.88191),\n    (1673765460000, 20726.95, 20729.87, 20741.56, 20725.28, 138.9684),\n    (1673765520000, 20730.52, 20724.8, 20733.7, 20721.84, 86.72383),\n    (1673765580000, 20723.78, 20726.35, 20729.5, 20723.74, 38.83937),\n    (1673765640000, 20726.35, 20725.71, 20729, 20722.6, 39.49872),\n    (1673765700000, 20725.71, 20733.5, 20736.96, 20723.89, 130.6414),\n    (1673765760000, 20733.5, 20737.61, 20744.99, 20731.67, 118.69207),\n    (1673765820000, 20737.71, 20728.79, 20741.99, 20728.39, 92.71016),\n    (1673765880000, 20730.13, 20726.85, 20730.27, 20721.95, 45.16038),\n    (1673765940000, 20727.57, 20717, 20729.06, 20717, 55.79095),\n    (1673766000000, 20717, 20711.15, 20722.7, 20707.85, 129.7582),\n    (1673766060000, 20711.95, 20688.63, 20712.48, 20686.75, 204.2147),\n    (1673766120000, 20688.64, 20696.69, 20706.53, 20684.89, 165.55531),\n    (1673766180000, 20696.69, 20696.4, 20698.59, 20666.88, 236.03221),\n    (1673766240000, 20696.42, 20711.99, 20712, 20692.34, 115.06443),\n    (1673766300000, 20711.99, 20698.33, 20715.34, 20696.74, 118.02931),\n    (1673766360000, 20697.28, 20688.8, 20698.41, 20687.34, 121.09678),\n    (1673766420000, 20687.34, 20694.23, 20696, 20672.52, 175.06715),\n    (1673766480000, 20693.91, 20693.73, 20700.81, 20689.11, 68.1498),\n    (1673766540000, 20692.83, 20693.06, 20703.31, 20692.09, 107.96258),\n    (1673766600000, 20694.15, 20695.4, 20707.77, 20692.39, 76.65795),\n    (1673766660000, 20694.5, 20688.84, 20699.5, 20685.23, 74.48504),\n    (1673766720000, 20688.84, 20690.66, 20690.67, 20674.06, 104.21219),\n    (1673766780000, 20689.71, 20680.08, 20692.1, 20668.77, 194.07108),\n    (1673766840000, 20681.18, 20677.19, 20690.72, 20674.91, 81.15788),\n    (1673766900000, 20676.19, 20679.96, 20687.12, 20672.25, 92.85908),\n    (1673766960000, 20679.96, 20685.36, 20688.02, 20679.16, 51.25423),\n    (1673767020000, 20686.15, 20694.13, 20695.31, 20681, 96.77657),\n    (1673767080000, 20694.13, 20700.75, 20704.73, 20690.1, 134.2657),\n    (1673767140000, 20700.12, 20699.81, 20707.42, 20696.76, 82.3131),\n    (1673767200000, 20701.12, 20696, 20702.3, 20693.75, 50.1218),\n    (1673767260000, 20694.75, 20705.84, 20711.43, 20694, 97.99274),\n    (1673767320000, 20704.61, 20704.53, 20707.34, 20700.68, 56.35129),\n    (1673767380000, 20704.53, 20706, 20711.07, 20702.18, 53.93726),\n    (1673767440000, 20705.64, 20706.78, 20709.05, 20700.9, 59.1565),\n    (1673767500000, 20706.78, 20719.56, 20721.77, 20704.68, 130.54594),\n    (1673767560000, 20719.56, 20722.94, 20727.9, 20715, 98.55096),\n    (1673767620000, 20722.39, 20715.98, 20725.74, 20710.12, 132.71709),\n    (1673767680000, 20715.98, 20705.09, 20717.5, 20704.57, 85.84861),\n    (1673767740000, 20705.8, 20700.05, 20706.84, 20697.56, 100.75388),\n    (1673767800000, 20700.91, 20705.14, 20708.73, 20698.12, 95.91968),\n    (1673767860000, 20705.14, 20700.63, 20712, 20695.06, 145.14136),\n    (1673767920000, 20700.63, 20693.13, 20701.78, 20689.89, 85.62212),\n    (1673767980000, 20692.18, 20709.88, 20710.4, 20690.21, 93.09634),\n    (1673768040000, 20709.88, 20718.12, 20718.12, 20706.65, 67.3889),\n    (1673768100000, 20718.12, 20713.69, 20723.08, 20712.26, 81.23036),\n    (1673768160000, 20714.14, 20720.72, 20726.26, 20712, 106.78072),\n    (1673768220000, 20720.72, 20726.1, 20730.6, 20720.21, 152.80298),\n    (1673768280000, 20727.08, 20729.37, 20739.17, 20725.05, 151.85854),\n    (1673768340000, 20729.37, 20723.82, 20731.23, 20719.06, 92.76792),\n    (1673768400000, 20723.82, 20719.19, 20725.91, 20716.71, 62.39966),\n    (1673768460000, 20719.19, 20722.47, 20723.23, 20716.2, 37.54011),\n    (1673768520000, 20721.23, 20727.02, 20729.47, 20720.14, 60.33714),\n    (1673768580000, 20728.45, 20720.68, 20728.45, 20717.44, 71.02621),\n    (1673768640000, 20720.68, 20716.4, 20723.65, 20714, 76.78758),\n    (1673768700000, 20716.13, 20721.55, 20722.87, 20715.41, 73.52264),\n    (1673768760000, 20722.3, 20723.59, 20727.32, 20718.37, 72.51746),\n    (1673768820000, 20723.59, 20729.68, 20732.99, 20722.5, 80.59618),\n    (1673768880000, 20729.68, 20730.87, 20732.97, 20720.15, 69.88293),\n    (1673768940000, 20730.87, 20728.49, 20735.01, 20726, 55.12501),\n    (1673769000000, 20727.36, 20722.93, 20731.56, 20721.61, 54.99639),\n    (1673769060000, 20721.67, 20725.98, 20728.78, 20720.71, 38.1669),\n    (1673769120000, 20726.95, 20724.12, 20728.1, 20721.01, 38.8662),\n    (1673769180000, 20724.12, 20725.14, 20726.86, 20720, 61.85316),\n    (1673769240000, 20726.21, 20723.94, 20727.78, 20717.62, 77.82968),\n    (1673769300000, 20725.08, 20728.06, 20728.28, 20721.75, 63.95689),\n    (1673769360000, 20727.97, 20723.21, 20728.49, 20722.86, 52.36559),\n    (1673769420000, 20723.21, 20726.8, 20728.01, 20723.21, 42.19401),\n    (1673769480000, 20727.86, 20733.61, 20733.63, 20722.53, 110.5851),\n    (1673769540000, 20733.61, 20735.69, 20739.82, 20726.98, 117.53876),\n    (1673769600000, 20735.69, 20730.2, 20739.51, 20729, 111.30423),\n    (1673769660000, 20730.2, 20745.84, 20746.99, 20728.63, 149.13206),\n    (1673769720000, 20746.98, 20748.79, 20753.09, 20742.59, 134.0071),\n    (1673769780000, 20748.79, 20742.12, 20751.51, 20739.65, 73.20689),\n    (1673769840000, 20743.17, 20736.15, 20743.33, 20731.23, 109.65568),\n    (1673769900000, 20736.63, 20745.72, 20748.03, 20734, 62.86887),\n    (1673769960000, 20744.98, 20744.76, 20755.22, 20744.6, 111.37721),\n    (1673770020000, 20745.86, 20736.96, 20746.08, 20736, 88.36667),\n    (1673770080000, 20736.96, 20739.76, 20746.3, 20736.22, 52.76189),\n    (1673770140000, 20739.76, 20738.32, 20741.47, 20735.76, 52.04098),\n    (1673770200000, 20737.54, 20732.91, 20740, 20731.84, 46.46847),\n    (1673770260000, 20733.6, 20723.37, 20735.72, 20720.67, 76.24228),\n    (1673770320000, 20723.36, 20732.58, 20732.59, 20720.09, 59.04495),\n    (1673770380000, 20732.58, 20727.48, 20736, 20727.06, 50.38302),\n    (1673770440000, 20728.48, 20734.22, 20736.32, 20723.93, 71.22599),\n    (1673770500000, 20734.22, 20741.14, 20745.79, 20731.29, 100.89888),\n    (1673770560000, 20742.31, 20734.5, 20744.67, 20731.71, 74.3881),\n    (1673770620000, 20733.6, 20722, 20734.54, 20718.26, 93.20348),\n    (1673770680000, 20720.73, 20722.43, 20727.36, 20720.04, 44.05792),\n    (1673770740000, 20723.15, 20710.24, 20724.15, 20702.52, 169.43152),\n    (1673770800000, 20710.25, 20684.38, 20715, 20679.99, 261.66248),\n    (1673770860000, 20684.38, 20665.37, 20694.98, 20650.28, 323.99423),\n    (1673770920000, 20666.86, 20668.33, 20680, 20653.5, 306.50238),\n    (1673770980000, 20668.84, 20667.89, 20676, 20648.48, 416.76172),\n    (1673771040000, 20668.91, 20665.52, 20680, 20663.61, 189.31544),\n    (1673771100000, 20665.02, 20652.7, 20665.87, 20648.62, 176.15927),\n    (1673771160000, 20651.55, 20666.71, 20673.62, 20650.58, 136.67249),\n    (1673771220000, 20666.71, 20672.12, 20680, 20665.58, 143.94559),\n    (1673771280000, 20672.09, 20661.77, 20673.18, 20654.21, 149.42413),\n    (1673771340000, 20661.9, 20662.57, 20673.94, 20660.07, 99.3308),\n    (1673771400000, 20662.57, 20655.29, 20673.22, 20646.81, 233.04724),\n    (1673771460000, 20654.16, 20634.51, 20655.31, 20610.97, 564.88336),\n    (1673771520000, 20634.51, 20649.35, 20653.55, 20624.58, 224.33028),\n    (1673771580000, 20649.4, 20651.41, 20666.6, 20647.74, 129.54596),\n    (1673771640000, 20651.41, 20669.44, 20674.52, 20647.82, 223.63393),\n    (1673771700000, 20668.53, 20670.22, 20679.98, 20665.62, 161.15355),\n    (1673771760000, 20668.74, 20663.84, 20673.39, 20661.84, 123.55231),\n    (1673771820000, 20662.94, 20691.41, 20691.83, 20660.37, 307.81024),\n    (1673771880000, 20690.95, 20682.84, 20700, 20678.01, 178.58385),\n    (1673771940000, 20683.84, 20680.65, 20688.09, 20676.69, 70.96163),\n    (1673772000000, 20680.65, 20674.91, 20682.95, 20671.39, 73.9057),\n    (1673772060000, 20674.91, 20675.61, 20688.71, 20673.51, 80.32558),\n    (1673772120000, 20675.61, 20668.2, 20679.83, 20666.31, 73.8694),\n    (1673772180000, 20668.2, 20672.86, 20677.03, 20666.5, 88.09842),\n    (1673772240000, 20673.56, 20681.43, 20683, 20671.02, 47.37391),\n    (1673772300000, 20682.73, 20687.86, 20690.86, 20676.15, 86.6822),\n    (1673772360000, 20687.86, 20704.07, 20705.62, 20685.33, 149.89218),\n    (1673772420000, 20705.11, 20692.75, 20708.94, 20685.79, 177.99895),\n    (1673772480000, 20692.82, 20672.74, 20693.18, 20671.36, 105.26845),\n    (1673772540000, 20672.74, 20667.67, 20677.59, 20661.29, 117.91743),\n    (1673772600000, 20668.61, 20656.92, 20670.14, 20650.09, 158.03711),\n    (1673772660000, 20655.89, 20643.46, 20659.16, 20641.06, 183.73756),\n    (1673772720000, 20644.2, 20631.89, 20646.46, 20620.94, 296.63974),\n    (1673772780000, 20631.9, 20632.3, 20637.92, 20616.07, 231.68465),\n    (1673772840000, 20631.33, 20638.96, 20643.5, 20622.43, 133.90063),\n    (1673772900000, 20639.69, 20626.58, 20640.85, 20622.01, 118.03444),\n    (1673772960000, 20627.59, 20625.85, 20629.66, 20620.01, 87.47416),\n    (1673773020000, 20626.2, 20608.25, 20629.34, 20591.21, 535.94824),\n    (1673773080000, 20608.25, 20618.84, 20621.51, 20593.48, 265.40906),\n    (1673773140000, 20618.84, 20617.71, 20634.07, 20611.17, 153.04764),\n    (1673773200000, 20617.93, 20629.54, 20633.09, 20614.7, 203.82076),\n    (1673773260000, 20630.28, 20617.26, 20636.52, 20610.66, 171.79652),\n    (1673773320000, 20615.78, 20618.35, 20626.33, 20606.56, 141.81323),\n    (1673773380000, 20618.36, 20623.55, 20626.56, 20611.34, 96.27194),\n    (1673773440000, 20623.67, 20634.38, 20641.27, 20622.12, 162.01222),\n    (1673773500000, 20634.38, 20624.3, 20638.67, 20621.59, 107.16976),\n    (1673773560000, 20624.29, 20619.42, 20629.05, 20617.09, 98.29998),\n    (1673773620000, 20619.42, 20607.01, 20621.96, 20607, 126.75827),\n    (1673773680000, 20608.55, 20601.9, 20618.19, 20600.15, 117.31791),\n    (1673773740000, 20600.97, 20584.73, 20605.21, 20573.13, 406.43225),\n    (1673773800000, 20584.73, 20602.05, 20608.71, 20582, 179.0633),\n    (1673773860000, 20602.05, 20597.28, 20604.31, 20578.38, 190.54198),\n    (1673773920000, 20597.28, 20621.33, 20624.53, 20587.2, 258.24622),\n    (1673773980000, 20621.33, 20612.74, 20632.35, 20600.9, 196.72812),\n    (1673774040000, 20613.83, 20589.63, 20618, 20574.96, 303.53986),\n    (1673774100000, 20589.63, 20587.32, 20605.45, 20586.93, 151.17934),\n    (1673774160000, 20587.32, 20603.03, 20604.48, 20582.66, 126.45707),\n    (1673774220000, 20602.46, 20601, 20607.39, 20594.38, 69.90366),\n    (1673774280000, 20601, 20617.72, 20620.41, 20598.6, 99.55946),\n    (1673774340000, 20617.72, 20630.75, 20634.94, 20617.72, 164.01093),\n    (1673774400000, 20630.75, 20633.91, 20638.86, 20624.81, 125.02933),\n    (1673774460000, 20634.64, 20621.98, 20636.86, 20620.01, 114.70026),\n    (1673774520000, 20620.93, 20638.46, 20647.57, 20620, 268.82758),\n    (1673774580000, 20638.46, 20636.08, 20646.18, 20632.5, 100.91487),\n    (1673774640000, 20636.08, 20641.99, 20646.95, 20635.49, 102.15399),\n    (1673774700000, 20641.99, 20637.4, 20642.93, 20630.28, 80.73097),\n    (1673774760000, 20638.88, 20640.21, 20643.98, 20635.44, 71.42769),\n    (1673774820000, 20642.23, 20627.93, 20642.24, 20625.43, 86.15835),\n    (1673774880000, 20626.13, 20630.81, 20636.46, 20622, 55.92568),\n    (1673774940000, 20631.39, 20637.26, 20642.72, 20628.67, 50.23189),\n    (1673775000000, 20637.26, 20644.67, 20645, 20635.32, 73.89664),\n    (1673775060000, 20644.67, 20657.95, 20658.55, 20642.85, 265.17862),\n    (1673775120000, 20656.38, 20661.75, 20669.99, 20653.57, 149.90729),\n    (1673775180000, 20661.75, 20653.01, 20662.07, 20644.17, 155.9208),\n    (1673775240000, 20651.51, 20658.73, 20658.74, 20639.67, 95.01878),\n    (1673775300000, 20657.33, 20642.92, 20660.97, 20641.24, 86.66168),\n    (1673775360000, 20644.64, 20637.37, 20645, 20635.34, 63.61542),\n    (1673775420000, 20638.37, 20631.25, 20640.44, 20631.16, 66.60953),\n    (1673775480000, 20632.54, 20627.62, 20632.73, 20621.01, 80.70333),\n    (1673775540000, 20627.62, 20630.22, 20634.21, 20625.56, 48.43995),\n    (1673775600000, 20630.22, 20636.42, 20637.76, 20627.67, 36.3113),\n    (1673775660000, 20635.29, 20632.58, 20636.46, 20626.4, 74.3594),\n    (1673775720000, 20632.58, 20623.56, 20642.31, 20621.08, 98.0226),\n    (1673775780000, 20623.56, 20626.62, 20627.87, 20616.96, 84.62494),\n    (1673775840000, 20626.62, 20636.81, 20636.97, 20625.38, 53.96128),\n    (1673775900000, 20635.86, 20624.26, 20640.56, 20623, 75.05526),\n    (1673775960000, 20623.5, 20628.39, 20636.52, 20622.38, 71.3734),\n    (1673776020000, 20627.38, 20631.36, 20639.15, 20625.03, 80.61984),\n    (1673776080000, 20632.51, 20631.97, 20638.98, 20626.21, 64.27875),\n    (1673776140000, 20631.97, 20640.88, 20643.79, 20628.62, 58.70733),\n    (1673776200000, 20640.95, 20634.47, 20643.44, 20632.28, 66.48713),\n    (1673776260000, 20635.23, 20642.21, 20648.58, 20633.6, 66.6706),\n    (1673776320000, 20642.2, 20649.43, 20649.6, 20639.78, 48.46067),\n    (1673776380000, 20648.43, 20657.17, 20663.41, 20648.43, 209.4694),\n    (1673776440000, 20658.25, 20662, 20666.96, 20656.74, 123.63437),\n    (1673776500000, 20661.06, 20691.82, 20694.9, 20657.89, 427.53784),\n    (1673776560000, 20690.18, 20704.82, 20713.95, 20675.95, 378.8006),\n    (1673776620000, 20704.82, 20728.15, 20730.86, 20696.63, 335.64722),\n    (1673776680000, 20728.17, 20717, 20728.17, 20706.82, 181.1887),\n    (1673776740000, 20717, 20750.59, 20754.54, 20708.14, 509.50595),\n    (1673776800000, 20748.94, 20744.49, 20756.54, 20727.67, 293.49338),\n    (1673776860000, 20743.57, 20734.54, 20747.84, 20728, 131.9229),\n    (1673776920000, 20734.54, 20733.98, 20740, 20721.29, 133.1482),\n    (1673776980000, 20732.69, 20745.87, 20754, 20730, 137.6645),\n    (1673777040000, 20744.39, 20735, 20747.89, 20730.09, 93.50618),\n    (1673777100000, 20735, 20729.73, 20736.92, 20718.57, 255.76875),\n    (1673777160000, 20729.74, 20724.47, 20733.25, 20723.01, 102.72712),\n    (1673777220000, 20723.41, 20725.8, 20728, 20714.35, 146.62367),\n    (1673777280000, 20726.22, 20714.84, 20727.39, 20708.48, 69.3603),\n    (1673777340000, 20713.13, 20725.06, 20729.1, 20710.43, 73.16698),\n    (1673777400000, 20725.06, 20727.05, 20729.98, 20722.54, 45.53764),\n    (1673777460000, 20727.05, 20720.46, 20728.76, 20716.11, 47.44664),\n    (1673777520000, 20720.46, 20716.8, 20722.17, 20715, 32.45692),\n    (1673777580000, 20716.8, 20725.68, 20726.09, 20715.08, 38.09672),\n    (1673777640000, 20724.67, 20754.98, 20758.1, 20722.74, 281.35257),\n    (1673777700000, 20754.51, 20742.23, 20759, 20738.87, 110.63717),\n    (1673777760000, 20740.94, 20737.92, 20748, 20735.28, 81.48991),\n    (1673777820000, 20737.92, 20735.38, 20741.94, 20731.81, 41.95401),\n    (1673777880000, 20735.2, 20728.48, 20744.24, 20725.58, 94.78662),\n    (1673777940000, 20728.48, 20723.31, 20734, 20715.24, 120.99546),\n    (1673778000000, 20723.31, 20746.32, 20748.39, 20723.31, 137.16394),\n    (1673778060000, 20747.39, 20733.76, 20749.99, 20724.14, 102.47066),\n    (1673778120000, 20735.29, 20730.95, 20737.94, 20724.19, 90.18278),\n    (1673778180000, 20731.41, 20727.3, 20732.52, 20725.1, 29.26243),\n    (1673778240000, 20727.3, 20727.04, 20732.51, 20725.08, 37.64998),\n    (1673778300000, 20726.28, 20731.09, 20731.48, 20718.35, 105.18261),\n    (1673778360000, 20730.24, 20737.05, 20738.99, 20727.5, 73.62075),\n    (1673778420000, 20735.11, 20733.09, 20738.73, 20730.2, 38.59073),\n    (1673778480000, 20732.71, 20730.21, 20735.99, 20727.13, 41.56792),\n    (1673778540000, 20730.21, 20727.23, 20732.15, 20724.14, 41.56898),\n    (1673778600000, 20726.26, 20731.29, 20731.66, 20723.87, 65.05749),\n    (1673778660000, 20731.29, 20738.42, 20739.62, 20728.72, 50.56314),\n    (1673778720000, 20738.42, 20732.76, 20742.05, 20730.16, 66.67895),\n    (1673778780000, 20732.76, 20730.61, 20739.28, 20729.02, 56.53955),\n    (1673778840000, 20729.29, 20731.5, 20732.22, 20722, 75.41122),\n    (1673778900000, 20731.5, 20731.2, 20736.3, 20730, 56.46787),\n    (1673778960000, 20731.2, 20728.54, 20731.75, 20721.6, 54.99529),\n    (1673779020000, 20729.37, 20727.56, 20730.48, 20726.63, 15.41124),\n    (1673779080000, 20728.4, 20731.11, 20733, 20725.01, 65.50545),\n    (1673779140000, 20731.11, 20738.29, 20739.53, 20730.21, 44.79745),\n    (1673779200000, 20738.29, 20741.38, 20742.64, 20736.65, 27.98551),\n    (1673779260000, 20742.13, 20718.24, 20743.32, 20715.87, 116.24296),\n    (1673779320000, 20718.23, 20706.7, 20722, 20703.04, 100.90744),\n    (1673779380000, 20706.7, 20701.55, 20712.42, 20693.31, 167.07915),\n    (1673779440000, 20702.56, 20712.56, 20712.56, 20700.46, 55.55094),\n    (1673779500000, 20712.56, 20716.14, 20721.57, 20709.04, 88.00729),\n    (1673779560000, 20716.14, 20706.71, 20721.18, 20692.17, 171.13882),\n    (1673779620000, 20705.59, 20717.61, 20720, 20697.1, 109.04569),\n    (1673779680000, 20716.46, 20718.84, 20722.3, 20708.94, 99.98131),\n    (1673779740000, 20718.99, 20715.39, 20720.1, 20713.18, 52.79266),\n    (1673779800000, 20714.54, 20719.35, 20720.43, 20713.4, 42.6131),\n    (1673779860000, 20719.35, 20718.17, 20726.18, 20714.92, 62.25561),\n    (1673779920000, 20718.17, 20723.73, 20724.76, 20715.04, 30.4309),\n    (1673779980000, 20724.76, 20728.81, 20735, 20721.52, 88.59494),\n    (1673780040000, 20727.18, 20734.93, 20737.49, 20727.18, 54.23593),\n    (1673780100000, 20734.1, 20729.07, 20740.67, 20726.39, 100.72423),\n    (1673780160000, 20729.77, 20728.65, 20731.54, 20720.07, 75.04109),\n    (1673780220000, 20727.97, 20729.29, 20739.58, 20727.58, 71.90632),\n    (1673780280000, 20730.48, 20731.46, 20732.61, 20725, 56.10533),\n    (1673780340000, 20730.57, 20732.83, 20738.03, 20728.85, 46.29953),\n    (1673780400000, 20732.83, 20731.85, 20733.38, 20725.37, 78.383),\n    (1673780460000, 20731.85, 20739.9, 20741.64, 20731.63, 84.38245),\n    (1673780520000, 20738.87, 20733.46, 20741.36, 20730.9, 77.07724),\n    (1673780580000, 20733.46, 20721.09, 20736.48, 20720.27, 73.6832),\n    (1673780640000, 20721.93, 20709.41, 20723.06, 20703.53, 144.43542),\n    (1673780700000, 20708.22, 20697.58, 20711.6, 20695.43, 144.1868),\n    (1673780760000, 20696.59, 20703.81, 20708.99, 20695, 86.88181),\n    (1673780820000, 20704.88, 20687.52, 20706.53, 20657.81, 511.48938),\n    (1673780880000, 20687.52, 20681.71, 20690.32, 20670.57, 158.79202),\n    (1673780940000, 20681.71, 20687.28, 20692.37, 20680.46, 111.90764),\n    (1673781000000, 20687.28, 20676.44, 20689.19, 20676.44, 107.5808),\n    (1673781060000, 20676.44, 20681.7, 20685.47, 20674.01, 76.85363),\n    (1673781120000, 20680.62, 20687.46, 20690.84, 20676.78, 69.01677),\n    (1673781180000, 20688.68, 20698.33, 20700.59, 20687.17, 126.22851),\n    (1673781240000, 20698.33, 20693.94, 20706.94, 20691.08, 84.54424),\n    (1673781300000, 20694.42, 20695.13, 20696.21, 20690, 42.34227),\n    (1673781360000, 20694.85, 20700.32, 20702.79, 20690.5, 88.99676),\n    (1673781420000, 20700.32, 20695.19, 20703, 20692.56, 57.2563),\n    (1673781480000, 20696.13, 20709.1, 20712.13, 20691.72, 110.58946),\n    (1673781540000, 20709.1, 20699.79, 20713.64, 20698.57, 95.42777),\n    (1673781600000, 20701.11, 20707.28, 20710, 20697.73, 69.76642),\n    (1673781660000, 20707.28, 20710.6, 20712.87, 20700.11, 51.15644),\n    (1673781720000, 20710.6, 20698.67, 20712.76, 20697.08, 59.28313),\n    (1673781780000, 20699.75, 20697.75, 20708, 20696.67, 72.52372),\n    (1673781840000, 20698.55, 20702.41, 20707.27, 20697.75, 59.22939),\n    (1673781900000, 20703.5, 20708.75, 20716.06, 20700.59, 85.91392),\n    (1673781960000, 20708.75, 20712.94, 20721.59, 20703.67, 113.80872),\n    (1673782020000, 20714.43, 20714.07, 20721.49, 20711, 67.30808),\n    (1673782080000, 20714.78, 20727.04, 20728, 20712.6, 125.93135),\n    (1673782140000, 20725.97, 20725.64, 20730, 20719.22, 184.75017),\n    (1673782200000, 20727.5, 20716.73, 20729.04, 20714.43, 68.01355),\n    (1673782260000, 20716.73, 20703.7, 20718.88, 20702.15, 101.13665),\n    (1673782320000, 20703.7, 20709.01, 20712.37, 20700.03, 66.98386),\n    (1673782380000, 20709.01, 20706.72, 20712.5, 20705.57, 42.7325),\n    (1673782440000, 20705.87, 20708.18, 20712.49, 20704.65, 58.57614),\n    (1673782500000, 20708.18, 20701.29, 20708.74, 20701.29, 75.73948),\n    (1673782560000, 20701.29, 20697.86, 20702.44, 20691.2, 135.42734),\n    (1673782620000, 20697.86, 20696.22, 20702.04, 20685.94, 102.0627),\n    (1673782680000, 20697.31, 20696.76, 20701.75, 20693.34, 40.71011),\n    (1673782740000, 20696.76, 20692.3, 20698.63, 20690, 60.8794),\n    (1673782800000, 20693.33, 20687.69, 20693.33, 20685.12, 59.1589),\n    (1673782860000, 20688.88, 20699.16, 20703.31, 20687.34, 72.1632),\n    (1673782920000, 20699.17, 20707.44, 20712.08, 20695.71, 94.01076),\n]\n\n# sample prices include 240 2h candles from BTCUSDT traded on\n# Binance in \"29 June 2021 10:00:00 - 19 July 2021 08:00:00\"\n# Order: epoch + OHLCV!\nwavetrend_candles = [(1624960800000, 35226.26, 35768.9, 35041.93, 35555.62, 10484.391673),\n                     (1624968000000, 35555.64, 36400.0, 35343.12, 36301.84, 17173.694363),\n                     (1624975200000, 36301.84, 36428.0, 35925.0, 36248.99, 7587.879039),\n                     (1624982400000, 36248.99, 36600.0, 36050.0, 36370.2, 8704.972578),\n                     (1624989600000, 36370.2, 36399.99, 36116.77, 36382.39, 3903.494456),\n                     (1624996800000, 36382.39, 36488.7, 36099.79, 36240.01, 5003.113063),\n                     (1625004000000, 36240.01, 36268.96, 35700.01, 35911.73, 5735.30282),\n                     (1625011200000, 35911.72, 36100.0, 35636.8, 35846.69, 3739.357712),\n                     (1625018400000, 35846.69, 35916.33, 34936.0, 35119.99, 6895.730271),\n                     (1625025600000, 35119.99, 35290.97, 34666.0, 34779.4, 8562.749485),\n                     (1625032800000, 34779.42, 35288.88, 34727.88, 35250.54, 5832.919252),\n                     (1625040000000, 35250.54, 35333.33, 34401.01, 34632.78, 7977.079282),\n                     (1625047200000, 34633.27, 34995.99, 34510.0, 34849.99, 5914.450372),\n                     (1625054400000, 34849.99, 35010.85, 34459.41, 34734.62, 5764.143618),\n                     (1625061600000, 34734.41, 34824.35, 34083.92, 34193.44, 8166.164713),\n                     (1625068800000, 34193.44, 34799.42, 34017.55, 34707.35, 6584.67749),\n                     (1625076000000, 34707.26, 34899.0, 34552.03, 34743.56, 5543.384062),\n                     (1625083200000, 34743.56, 35088.78, 34391.43, 34806.16, 6882.178868),\n                     (1625090400000, 34806.16, 35194.04, 34624.56, 35045.0, 5289.362509),\n                     (1625097600000, 35045.0, 35057.57, 34713.41, 34936.43, 3862.942357),\n                     (1625104800000, 34936.43, 34966.53, 34120.0, 34120.01, 5585.229532),\n                     (1625112000000, 34120.01, 34408.0, 34061.16, 34325.72, 3315.100338),\n                     (1625119200000, 34325.72, 34467.09, 33312.52, 33348.3, 11936.58279),\n                     (1625126400000, 33350.0, 33545.0, 33112.14, 33275.0, 6467.660864),\n                     (1625133600000, 33274.99, 33749.0, 33001.0, 33717.52, 6902.963736),\n                     (1625140800000, 33717.52, 33917.93, 33330.0, 33401.45, 6042.087424),\n                     (1625148000000, 33399.09, 33680.71, 33055.0, 33432.54, 7238.085258),\n                     (1625155200000, 33432.54, 33560.0, 33100.64, 33490.0, 6090.833521),\n                     (1625162400000, 33490.0, 33654.49, 32711.0, 33091.48, 6708.643512),\n                     (1625169600000, 33091.48, 33619.58, 33091.48, 33503.34, 4434.622552),\n                     (1625176800000, 33503.34, 33649.0, 33280.01, 33504.69, 3123.514228),\n                     (1625184000000, 33502.33, 33977.04, 33230.0, 33264.04, 5048.294259),\n                     (1625191200000, 33264.04, 33344.0, 32767.74, 32907.22, 4745.430559),\n                     (1625198400000, 32907.22, 33218.89, 32700.0, 32855.24, 3982.23062),\n                     (1625205600000, 32855.23, 33500.36, 32699.0, 33358.26, 5189.227565),\n                     (1625212800000, 33358.32, 33620.0, 32864.32, 32979.04, 5587.757086),\n                     (1625220000000, 32979.03, 33250.0, 32770.0, 33023.01, 5049.801409),\n                     (1625227200000, 33023.35, 33568.0, 32872.0, 33480.01, 6990.252941),\n                     (1625234400000, 33480.0, 33724.34, 33288.58, 33704.91, 5922.165756),\n                     (1625241600000, 33704.9, 33795.16, 33360.0, 33460.86, 3966.017176),\n                     (1625248800000, 33460.85, 33476.74, 33109.76, 33327.71, 3063.72802),\n                     (1625256000000, 33327.71, 33502.91, 33041.65, 33452.22, 2739.158556),\n                     (1625263200000, 33452.23, 33898.95, 33401.18, 33786.55, 3888.117431),\n                     (1625270400000, 33786.54, 33914.6, 33440.58, 33674.52, 3019.046044),\n                     (1625277600000, 33673.57, 33685.0, 33316.73, 33524.47, 2454.307885),\n                     (1625284800000, 33524.48, 33800.0, 33444.25, 33707.99, 2519.714963),\n                     (1625292000000, 33707.98, 34663.48, 33590.04, 34499.54, 6594.661148),\n                     (1625299200000, 34499.53, 34780.0, 34406.0, 34633.64, 6451.67339),\n                     (1625306400000, 34633.64, 34707.58, 34435.53, 34608.04, 3271.187303),\n                     (1625313600000, 34608.04, 34816.5, 34470.0, 34706.3, 3354.189693),\n                     (1625320800000, 34706.29, 34760.0, 34515.5, 34608.48, 2591.470558),\n                     (1625328000000, 34608.48, 34945.61, 34485.49, 34764.74, 3583.95321),\n                     (1625335200000, 34764.0, 34789.04, 34570.44, 34745.98, 2015.235871),\n                     (1625342400000, 34745.99, 34914.76, 34533.01, 34544.88, 3046.450061),\n                     (1625349600000, 34544.88, 34715.89, 34250.48, 34669.13, 4142.688515),\n                     (1625356800000, 34669.12, 34771.64, 34357.15, 34447.89, 2761.70978),\n                     (1625364000000, 34447.89, 34770.0, 34400.3, 34641.61, 1792.440581),\n                     (1625371200000, 34641.62, 35315.45, 34621.41, 35205.94, 4403.884685),\n                     (1625378400000, 35205.93, 35727.0, 35054.08, 35600.63, 8540.482656),\n                     (1625385600000, 35603.02, 35687.18, 35364.21, 35485.15, 4295.930555),\n                     (1625392800000, 35485.16, 35620.0, 35405.92, 35512.34, 2328.097766),\n                     (1625400000000, 35512.34, 35562.22, 35230.76, 35359.12, 3393.97312),\n                     (1625407200000, 35359.12, 35572.72, 35301.01, 35513.29, 2269.26162),\n                     (1625414400000, 35513.28, 35687.54, 35385.0, 35558.44, 3414.679051),\n                     (1625421600000, 35558.43, 35607.83, 35385.0, 35575.01, 1971.096313),\n                     (1625428800000, 35575.01, 35967.85, 35445.01, 35899.23, 3472.799577),\n                     (1625436000000, 35903.79, 35907.08, 35135.0, 35286.51, 5059.120085),\n                     (1625443200000, 35288.13, 35293.78, 34445.33, 34558.05, 7019.343476),\n                     (1625450400000, 34558.05, 34651.11, 34180.18, 34350.89, 4977.278568),\n                     (1625457600000, 34351.25, 34415.64, 34000.0, 34347.21, 5946.474612),\n                     (1625464800000, 34347.2, 34409.91, 34055.66, 34256.17, 4188.376207),\n                     (1625472000000, 34257.37, 34438.23, 34108.61, 34317.49, 2987.261676),\n                     (1625479200000, 34316.68, 34558.99, 33300.0, 33379.96, 10560.041),\n                     (1625486400000, 33379.96, 33747.73, 33301.22, 33607.88, 6450.381952),\n                     (1625493600000, 33607.89, 33777.0, 33470.03, 33585.91, 3552.513788),\n                     (1625500800000, 33585.89, 33747.42, 33125.55, 33697.06, 4853.756762),\n                     (1625508000000, 33695.78, 34274.33, 33695.78, 34117.97, 6650.834306),\n                     (1625515200000, 34117.98, 34210.0, 33724.88, 34151.79, 4093.1864),\n                     (1625522400000, 34148.98, 34199.0, 33670.01, 33690.14, 2844.425498),\n                     (1625529600000, 33690.15, 34169.1, 33634.76, 33768.95, 3480.795694),\n                     (1625536800000, 33768.95, 33970.0, 33700.37, 33920.69, 2149.158506),\n                     (1625544000000, 33920.69, 34933.0, 33908.09, 34793.39, 8343.935554),\n                     (1625551200000, 34793.39, 34959.73, 34637.93, 34874.85, 3521.240321),\n                     (1625558400000, 34874.85, 35118.88, 34030.01, 34204.56, 8481.445779),\n                     (1625565600000, 34204.56, 34282.87, 33730.0, 34067.31, 6794.887088),\n                     (1625572800000, 34067.31, 34516.38, 33800.01, 34147.31, 7646.669654),\n                     (1625580000000, 34147.31, 34250.0, 33880.65, 34042.43, 4055.731434),\n                     (1625587200000, 34042.44, 34148.11, 33532.0, 33949.99, 5052.166267),\n                     (1625594400000, 33949.99, 34190.0, 33758.82, 34019.99, 3238.67149),\n                     (1625601600000, 34019.99, 34103.94, 33628.81, 33763.1, 2688.093725),\n                     (1625608800000, 33763.1, 34323.77, 33683.18, 34220.01, 2757.800837),\n                     (1625616000000, 34220.02, 34400.0, 33941.0, 34233.2, 5689.217445),\n                     (1625623200000, 34233.21, 34530.0, 33995.31, 34446.5, 5412.064767),\n                     (1625630400000, 34445.55, 34889.93, 34373.02, 34809.73, 5454.500582),\n                     (1625637600000, 34809.72, 34919.28, 34474.71, 34710.38, 5674.530578),\n                     (1625644800000, 34710.4, 34950.0, 34639.17, 34691.91, 3709.734454),\n                     (1625652000000, 34691.91, 34989.0, 34457.11, 34827.96, 4515.703427),\n                     (1625659200000, 34827.97, 35059.09, 34635.43, 34813.22, 5308.513198),\n                     (1625666400000, 34813.22, 34874.99, 34477.13, 34528.6, 4313.394308),\n                     (1625673600000, 34528.6, 34689.29, 34412.43, 34635.01, 2817.505712),\n                     (1625680800000, 34635.01, 34784.0, 34545.35, 34628.72, 2988.606156),\n                     (1625688000000, 34628.71, 34628.71, 34112.5, 34239.86, 3173.813254),\n                     (1625695200000, 34241.15, 34292.41, 33777.77, 33862.12, 4749.937794),\n                     (1625702400000, 33862.11, 33929.64, 33103.72, 33300.48, 9946.350594),\n                     (1625709600000, 33300.48, 33435.0, 33066.0, 33305.65, 4194.481578),\n                     (1625716800000, 33305.66, 33375.15, 32850.0, 32884.56, 4873.620246),\n                     (1625724000000, 32880.97, 33512.53, 32242.07, 32487.57, 11448.715566),\n                     (1625731200000, 32487.56, 32700.0, 32231.92, 32570.13, 6848.14395),\n                     (1625738400000, 32570.12, 32748.88, 32077.0, 32696.44, 8174.52703),\n                     (1625745600000, 32696.43, 32988.87, 32350.0, 32505.91, 5496.393725),\n                     (1625752800000, 32505.92, 32930.0, 32477.96, 32900.01, 5017.560703),\n                     (1625760000000, 32900.05, 33038.88, 32646.14, 32863.83, 4120.511404),\n                     (1625767200000, 32863.83, 33177.06, 32641.36, 33003.52, 3573.308572),\n                     (1625774400000, 33002.45, 33067.09, 32682.01, 32699.96, 2941.445388),\n                     (1625781600000, 32700.0, 32899.83, 32508.0, 32875.71, 3501.421564),\n                     (1625788800000, 32875.71, 32882.37, 32261.07, 32674.66, 5516.324708),\n                     (1625796000000, 32674.67, 33100.0, 32600.66, 32941.81, 4636.408821),\n                     (1625803200000, 32941.81, 33310.0, 32892.85, 32996.18, 3780.13326),\n                     (1625810400000, 32997.83, 33049.5, 32742.0, 32910.21, 3891.371312),\n                     (1625817600000, 32902.13, 33065.0, 32598.0, 32914.42, 3641.566315),\n                     (1625824800000, 32914.42, 33012.6, 32667.72, 32774.99, 2557.414629),\n                     (1625832000000, 32774.99, 33509.2, 32635.08, 33423.3, 6972.385579),\n                     (1625839200000, 33423.3, 33682.43, 33330.8, 33558.67, 4925.909502),\n                     (1625846400000, 33558.81, 33696.4, 33421.68, 33481.07, 2915.130057),\n                     (1625853600000, 33481.06, 33496.71, 33287.0, 33445.31, 2052.782467),\n                     (1625860800000, 33445.31, 34053.69, 33374.83, 33870.56, 3463.427697),\n                     (1625868000000, 33870.57, 34100.0, 33760.0, 33815.81, 2801.085552),\n                     (1625875200000, 33815.81, 34262.0, 33735.85, 33767.02, 4013.505034),\n                     (1625882400000, 33765.42, 33869.18, 33631.0, 33800.03, 2733.324937),\n                     (1625889600000, 33800.04, 33909.67, 33458.84, 33649.03, 3402.266),\n                     (1625896800000, 33649.03, 33865.67, 33581.73, 33766.01, 1784.553368),\n                     (1625904000000, 33766.01, 33950.0, 33686.0, 33732.57, 2574.870653),\n                     (1625911200000, 33735.98, 33911.82, 33565.0, 33793.94, 2989.343704),\n                     (1625918400000, 33793.95, 33943.4, 33634.16, 33700.31, 2544.853597),\n                     (1625925600000, 33700.31, 33931.1, 33649.14, 33862.54, 1806.766391),\n                     (1625932800000, 33862.55, 34192.0, 33223.31, 33397.27, 6227.444147),\n                     (1625940000000, 33397.27, 33568.0, 33320.41, 33409.92, 2002.82117),\n                     (1625947200000, 33411.41, 33440.0, 33004.78, 33428.57, 2861.690195),\n                     (1625954400000, 33428.57, 33698.99, 33416.82, 33502.87, 1819.736272),\n                     (1625961600000, 33502.87, 33817.83, 33456.0, 33614.49, 2206.425631),\n                     (1625968800000, 33614.49, 33669.58, 33387.72, 33448.97, 1934.196776),\n                     (1625976000000, 33448.97, 33636.85, 33306.47, 33590.53, 2062.490444),\n                     (1625983200000, 33590.51, 33642.74, 33372.06, 33508.83, 1591.617608),\n                     (1625990400000, 33508.82, 33870.0, 33424.84, 33693.43, 2969.508322),\n                     (1625997600000, 33693.45, 33850.0, 33614.07, 33814.84, 2145.980479),\n                     (1626004800000, 33814.82, 33929.99, 33654.36, 33917.55, 2385.201074),\n                     (1626012000000, 33917.55, 33994.69, 33806.55, 33948.68, 2606.333826),\n                     (1626019200000, 33948.68, 34123.08, 33779.68, 33892.81, 3330.716956),\n                     (1626026400000, 33892.82, 33999.0, 33837.16, 33894.57, 1616.734765),\n                     (1626033600000, 33894.57, 34600.0, 33710.94, 34481.92, 4923.328161),\n                     (1626040800000, 34490.31, 34666.0, 34180.59, 34258.99, 3800.113406),\n                     (1626048000000, 34259.0, 34345.53, 34006.92, 34154.35, 2856.114788),\n                     (1626055200000, 34153.88, 34537.39, 34082.13, 34447.92, 3538.284401),\n                     (1626062400000, 34447.92, 34678.43, 34160.39, 34330.25, 3494.855011),\n                     (1626069600000, 34328.7, 34510.0, 34207.95, 34281.74, 3148.145233),\n                     (1626076800000, 34281.74, 34488.27, 34018.0, 34050.12, 3463.143756),\n                     (1626084000000, 34050.12, 34053.35, 33525.66, 33530.0, 6050.059465),\n                     (1626091200000, 33530.0, 33636.92, 33335.76, 33576.93, 4650.42634),\n                     (1626098400000, 33574.81, 33585.4, 33316.2, 33337.49, 3274.383287),\n                     (1626105600000, 33337.49, 33441.0, 33050.0, 33112.12, 5149.083727),\n                     (1626112800000, 33112.13, 33358.17, 32750.0, 32822.85, 5372.938721),\n                     (1626120000000, 32822.85, 32990.52, 32658.34, 32867.95, 4078.681693),\n                     (1626127200000, 32867.95, 33284.99, 32857.0, 33086.63, 3105.28734),\n                     (1626134400000, 33086.94, 33222.22, 32830.98, 33156.97, 2922.925442),\n                     (1626141600000, 33156.97, 33229.0, 33060.64, 33071.14, 2024.596186),\n                     (1626148800000, 33071.13, 33170.29, 32742.01, 32817.42, 2917.0284),\n                     (1626156000000, 32817.42, 33333.33, 32815.15, 33180.08, 3579.069482),\n                     (1626163200000, 33180.11, 33292.7, 33101.57, 33273.0, 2503.040844),\n                     (1626170400000, 33273.01, 33340.0, 32912.29, 33042.61, 3279.885881),\n                     (1626177600000, 33042.61, 33049.0, 32280.0, 32571.77, 8811.775538),\n                     (1626184800000, 32571.76, 32870.0, 32461.0, 32790.08, 3569.789561),\n                     (1626192000000, 32791.71, 32956.26, 32630.0, 32772.98, 2686.753889),\n                     (1626199200000, 32768.73, 32768.74, 32231.42, 32309.69, 4120.747653),\n                     (1626206400000, 32309.69, 32646.09, 32202.25, 32589.11, 2732.548086),\n                     (1626213600000, 32589.11, 32750.0, 32426.88, 32729.77, 1978.200046),\n                     (1626220800000, 32729.12, 32807.41, 32251.31, 32376.2, 3740.205029),\n                     (1626228000000, 32374.07, 32583.99, 31650.61, 31830.01, 5663.03955),\n                     (1626235200000, 31830.01, 32015.98, 31655.83, 31807.01, 3948.993835),\n                     (1626242400000, 31807.01, 32000.0, 31754.55, 31920.01, 3084.833365),\n                     (1626249600000, 31920.01, 32500.0, 31550.0, 32327.7, 6837.702712),\n                     (1626256800000, 32330.0, 32707.27, 32260.83, 32451.99, 4156.317161),\n                     (1626264000000, 32450.95, 32899.99, 32280.0, 32784.0, 4789.428461),\n                     (1626271200000, 32784.0, 32959.21, 32700.0, 32786.0, 4499.320829),\n                     (1626278400000, 32786.01, 32911.79, 32665.14, 32832.99, 2517.924551),\n                     (1626285600000, 32832.99, 33114.03, 32564.44, 32729.76, 3474.648837),\n                     (1626292800000, 32729.77, 32940.0, 32708.0, 32852.23, 1779.803887),\n                     (1626300000000, 32852.24, 33063.82, 32681.0, 32820.02, 2285.605267),\n                     (1626307200000, 32820.03, 33185.25, 32651.26, 32784.33, 3450.926454),\n                     (1626314400000, 32784.33, 32911.03, 32580.12, 32641.65, 2697.87682),\n                     (1626321600000, 32641.66, 32691.42, 32441.86, 32583.9, 2629.70406),\n                     (1626328800000, 32582.71, 32650.0, 32359.65, 32469.5, 3080.332785),\n                     (1626336000000, 32468.3, 32620.31, 32316.45, 32505.0, 3923.026592),\n                     (1626343200000, 32505.0, 32579.33, 31800.0, 31880.5, 6643.184383),\n                     (1626350400000, 31880.5, 32152.97, 31455.0, 31828.82, 7570.357508),\n                     (1626357600000, 31828.86, 31957.77, 31653.5, 31677.01, 4330.284846),\n                     (1626364800000, 31678.5, 31737.68, 31133.0, 31276.88, 7444.984411),\n                     (1626372000000, 31276.87, 31800.0, 31230.0, 31533.62, 3829.23983),\n                     (1626379200000, 31538.92, 31840.88, 31528.52, 31666.35, 3384.863201),\n                     (1626386400000, 31666.35, 31898.0, 31503.35, 31880.0, 2654.795463),\n                     (1626393600000, 31874.49, 31940.0, 31556.95, 31808.4, 3466.977781),\n                     (1626400800000, 31808.41, 32049.45, 31762.97, 31914.89, 4080.727849),\n                     (1626408000000, 31914.9, 32020.0, 31719.73, 31797.02, 2561.215585),\n                     (1626415200000, 31800.41, 31804.99, 31548.15, 31774.49, 3394.243765),\n                     (1626422400000, 31779.98, 31779.99, 31320.0, 31399.99, 4142.584026),\n                     (1626429600000, 31400.0, 31473.42, 31020.0, 31086.53, 5674.675619),\n                     (1626436800000, 31086.52, 31969.0, 31067.43, 31765.8, 7127.19783),\n                     (1626444000000, 31765.8, 32212.52, 31742.31, 32127.39, 5327.97415),\n                     (1626451200000, 32127.4, 32249.18, 31810.0, 32055.24, 4628.26752),\n                     (1626458400000, 32055.24, 32084.82, 31860.82, 31911.34, 2536.227717),\n                     (1626465600000, 31911.34, 31987.0, 31661.95, 31719.52, 2473.911127),\n                     (1626472800000, 31719.52, 31860.18, 31336.98, 31383.87, 3085.861185),\n                     (1626480000000, 31383.86, 31642.64, 31164.31, 31386.53, 3881.094394),\n                     (1626487200000, 31383.11, 31499.98, 31250.0, 31306.56, 2759.266767),\n                     (1626494400000, 31306.57, 31539.23, 31190.0, 31486.95, 2392.874827),\n                     (1626501600000, 31486.94, 31590.94, 31435.22, 31513.64, 1861.545883),\n                     (1626508800000, 31513.64, 31955.92, 31341.0, 31609.54, 4045.796),\n                     (1626516000000, 31605.47, 31613.5, 31250.0, 31391.33, 3866.095448),\n                     (1626523200000, 31391.34, 31765.48, 31341.16, 31618.78, 3499.397972),\n                     (1626530400000, 31618.78, 31772.02, 31450.47, 31764.75, 2890.616198),\n                     (1626537600000, 31763.98, 31870.43, 31537.0, 31731.13, 2676.840651),\n                     (1626544800000, 31731.13, 31920.0, 31670.48, 31834.33, 2095.031643),\n                     (1626552000000, 31834.33, 31898.5, 31673.15, 31720.0, 1870.072195),\n                     (1626559200000, 31721.5, 31721.51, 31480.66, 31520.07, 2173.610154),\n                     (1626566400000, 31520.07, 32435.0, 31463.0, 32213.05, 6822.758435),\n                     (1626573600000, 32213.04, 32285.98, 32059.54, 32166.0, 2702.407005),\n                     (1626580800000, 32166.0, 32190.45, 32041.06, 32059.27, 1711.582512),\n                     (1626588000000, 32059.28, 32072.22, 31680.01, 31712.1, 2524.456348),\n                     (1626595200000, 31712.1, 31868.53, 31653.0, 31733.05, 2570.151413),\n                     (1626602400000, 31733.06, 31801.8, 31565.58, 31801.01, 2605.421683),\n                     (1626609600000, 31801.79, 31849.54, 31620.0, 31700.17, 2013.428687),\n                     (1626616800000, 31700.16, 31750.0, 31108.97, 31365.6, 5525.284675),\n                     (1626624000000, 31365.6, 31763.11, 31290.0, 31595.44, 2652.37484),\n                     (1626631200000, 31596.68, 31726.66, 31563.9, 31643.8, 1567.678695),\n                     (1626638400000, 31642.91, 31866.66, 31544.8, 31814.5, 2017.977013),\n                     (1626645600000, 31814.5, 31943.0, 31420.0, 31778.56, 3210.19488),\n                     (1626652800000, 31778.57, 31861.79, 31431.87, 31601.76, 2769.85928),\n                     (1626660000000, 31601.76, 31687.1, 31451.0, 31541.57, 1524.352227),\n                     (1626667200000, 31541.58, 31899.0, 31523.28, 31788.0, 2599.085025),\n                     (1626674400000, 31787.99, 31860.0, 31583.34, 31604.33, 3117.013863),\n                     (1626681600000, 31604.32, 31669.73, 31301.1, 31379.66, 3444.385481)]\n\n\nfake_test_candles = [\n    (1673764980000, 1, 1, 1, 1, 1),\n    (1673764980000 + 60_000*1, 2, 2, 2, 2, 2),\n    (1673764980000 + 60_000*2, 3, 3, 3, 3, 3),\n    (1673764980000 + 60_000*3, 4, 4, 4, 4, 4),\n    (1673764980000 + 60_000*4, 5, 5, 5, 5, 5),\n    (1673764980000 + 60_000*5, 6, 6, 6, 6, 6),\n    (1673764980000 + 60_000*6, 7, 7, 7, 7, 7),\n    (1673764980000 + 60_000*7, 8, 8, 8, 8, 8),\n    (1673764980000 + 60_000*8, 9, 9, 9, 9, 9),\n    (1673764980000 + 60_000*9, 10, 10, 10, 10, 10),\n    (1673764980000 + 60_000*10, 11, 11, 11, 11, 11),\n    (1673764980000 + 60_000*11, 12, 12, 12, 12, 12),\n    (1673764980000 + 60_000*12, 13, 13, 13, 13, 13),\n    (1673764980000 + 60_000*13, 14, 14, 14, 14, 14),\n    (1673764980000 + 60_000*14, 15, 15, 15, 15, 15),\n    (1673764980000 + 60_000*15, 16, 16, 16, 16, 16),\n    (1673764980000 + 60_000*16, 17, 17, 17, 17, 17),\n    (1673764980000 + 60_000*17, 18, 18, 18, 18, 18),\n    (1673764980000 + 60_000*18, 19, 19, 19, 19, 19),\n    (1673764980000 + 60_000*19, 20, 20, 20, 20, 20),\n    (1673764980000 + 60_000*20, 21, 21, 21, 21, 21),\n    (1673764980000 + 60_000*21, 22, 22, 22, 22, 22),\n]\n"
  },
  {
    "path": "tests/storage/logs/backtest-mode/.txt",
    "content": ""
  },
  {
    "path": "tests/test_backtest.py",
    "content": "import jesse.helpers as jh\nfrom jesse.config import reset_config\nfrom jesse.enums import timeframes, exchanges\nfrom jesse.factories import range_candles\nfrom jesse.modes import backtest_mode\nfrom jesse.routes import router\nfrom jesse.store import store\nfrom jesse.config import config\nfrom jesse.services import candle_service\n\n\ndef test_backtesting_one_route():\n    reset_config()\n    routes = [\n        {'symbol': 'BTC-USDT', 'timeframe': timeframes.MINUTE_5, 'strategy': 'Test19'}\n    ]\n    config['env']['exchanges'][exchanges.SANDBOX]['type'] = 'futures'\n\n    candles = {}\n    key = jh.key(exchanges.SANDBOX, 'BTC-USDT')\n    candles[key] = {\n        'exchange': exchanges.SANDBOX,\n        'symbol': 'BTC-USDT',\n        'candles': range_candles(5 * 20)\n    }\n\n    # run backtest (dates are fake just to pass)\n    backtest_mode.run('000', False, {}, exchanges.SANDBOX, routes, [], '2019-04-01', '2019-04-02', candles)\n\n    one_min = candle_service.get_candles(exchanges.SANDBOX, 'BTC-USDT', '1m')\n    five_min = candle_service.get_candles(exchanges.SANDBOX, 'BTC-USDT', '5m')\n\n    # assert the count of present candles\n    assert len(five_min) == 20\n    assert len(one_min) == 20 * 5\n\n    first_1 = one_min[0]\n    last_1 = one_min[-1]\n    first_5 = five_min[0]\n    last_5 = five_min[-1]\n\n    # assert time in store\n    assert store.app.time == last_1[0] + 60000\n\n    # assert timestamps\n    assert first_1[0] == first_5[0]\n    assert last_1[0] == (last_5[0] + 60000 * 4)\n\n    # there must be only one positions present\n    assert len(store.positions.storage) == 1\n    p = store.positions.get_position(exchanges.SANDBOX, 'BTC-USDT')\n    assert p.is_close\n    assert p.current_price == last_1[2]\n    assert p.current_price == last_5[2]\n\n    # assert routes\n    assert len(router.routes) == 1\n    assert router.routes[0].exchange == exchanges.SANDBOX\n    assert router.routes[0].symbol == 'BTC-USDT'\n    assert router.routes[0].timeframe == '5m'\n    assert router.routes[0].strategy_name == 'Test19'\n    # assert that the strategy has been initiated\n    assert router.routes[0].strategy is not None\n\n\ndef test_backtesting_three_routes():\n    reset_config()\n    routes = [\n        {'symbol': 'BTC-USDT', 'timeframe': timeframes.MINUTE_5, 'strategy': 'Test19'},\n        {'symbol': 'ETH-USDT', 'timeframe': timeframes.MINUTE_5, 'strategy': 'Test19'},\n        {'symbol': 'XRP-USDT', 'timeframe': timeframes.MINUTE_15, 'strategy': 'Test19'}\n    ]\n    config['env']['exchanges'][exchanges.SANDBOX]['type'] = 'futures'\n\n    candles = {}\n    for r in routes:\n        key = jh.key(exchanges.SANDBOX, r['symbol'])\n        candles[key] = {\n            'exchange': exchanges.SANDBOX,\n            'symbol': r['symbol'],\n            'candles': range_candles(5 * 3 * 20)\n        }\n\n    # run backtest (dates are fake just to pass)\n    backtest_mode.run('000', False, {}, exchanges.SANDBOX, routes, [], '2019-04-01', '2019-04-02', candles)\n\n    # there must be three positions present with the updated current_price\n    assert len(store.positions.storage) == 3\n\n    for r in router.routes:\n        # r3's '15m' timeframe makes r1 and r2 to support\n        # '15' timeframe as well. r1 and r2 also make r3\n        # to support '5m' timeframe also.\n        r_one_min = candle_service.get_candles(r.exchange, r.symbol, '1m')\n        r_five_min = candle_service.get_candles(r.exchange, r.symbol, '5m')\n        r_fifteen_min = candle_service.get_candles(r.exchange, r.symbol, '15m')\n\n        # assert the count of present candles\n        assert len(r_one_min) == (5 * 3) * 20\n        assert len(r_five_min) == 20 * 3\n        assert len(r_fifteen_min) == 20\n\n        r_first_1 = r_one_min[0]\n        r_last_1 = r_one_min[-1]\n        r_first_5 = r_five_min[0]\n        r_last_5 = r_five_min[-1]\n        r_last_15 = r_fifteen_min[-1]\n\n        # assert timestamps\n        assert r_first_1[0] == r_first_5[0]\n        assert r_last_1[0] == (r_last_5[0] + 60000 * 4)\n        assert r_last_5[0] == (r_last_15[0] + 60000 * 10)\n\n        # assert positions\n        p = store.positions.get_position(r.exchange, r.symbol)\n        assert p.is_close is True\n        last_candle = candle_service.get_candles(r.exchange, r.symbol, '1m')[-1]\n        assert p.current_price == last_candle[2]\n\n        # assert that the strategy has been initiated\n        assert r.strategy is not None\n"
  },
  {
    "path": "tests/test_broker.py",
    "content": "import pytest\nfrom jesse.config import config, reset_config\nfrom jesse.enums import exchanges, timeframes, order_types\nfrom jesse.exceptions import OrderNotAllowed\nfrom jesse.models import Position, Exchange\nfrom jesse.routes import router\nfrom jesse.services.broker import Broker\nfrom jesse.services import order_service, exchange_service, position_service\nfrom jesse.store import store\n\n\nposition: Position = None\nexchange: Exchange = None\nbroker: Broker = None\n\n\ndef set_up_without_fee(is_futures_trading=False):\n    reset_config()\n    config['env']['exchanges'][exchanges.SANDBOX]['fee'] = 0\n    config['env']['exchanges'][exchanges.SANDBOX]['balance'] = 1000\n    if is_futures_trading:\n        # used only in futures trading\n        config['env']['exchanges'][exchanges.SANDBOX]['type'] = 'futures'\n    else:\n        config['env']['exchanges'][exchanges.SANDBOX]['type'] = 'spot'\n    config['app']['trading_mode'] = 'backtest'\n    config['app']['considering_exchanges'] = ['Sandbox']\n    router.initiate([\n        {'exchange': exchanges.SANDBOX, 'symbol': 'BTC-USDT', 'timeframe': '5m', 'strategy': 'Test19'}\n    ], [])\n    # reset store\n    store.reset() \n    # initialize exchanges state\n    exchange_service.initialize_exchanges_state()\n    # initialize orders state\n    order_service.initialize_orders_state()\n    # initialize positions state\n    position_service.initialize_positions_state()\n\n    global position\n    global exchange\n    global broker\n    position = store.positions.get_position(exchanges.SANDBOX, 'BTC-USDT')\n    position.current_price = 50\n    exchange = store.exchanges.get_exchange(exchanges.SANDBOX)\n    broker = Broker(position, exchanges.SANDBOX, 'BTC-USDT', timeframes.MINUTE_5)\n\n\ndef set_up_with_fee(is_futures_trading=False):\n    reset_config()\n    config['env']['exchanges'][exchanges.SANDBOX]['fee'] = 0.002\n    config['env']['exchanges'][exchanges.SANDBOX]['balance'] = 1000\n    if is_futures_trading:\n        # used only in futures trading\n        config['env']['exchanges'][exchanges.SANDBOX]['type'] = 'futures'\n    else:\n        config['env']['exchanges'][exchanges.SANDBOX]['type'] = 'spot'\n    config['app']['trading_mode'] = 'backtest'\n    config['app']['considering_exchanges'] = ['Sandbox']\n    router.initiate([\n        {'exchange': exchanges.SANDBOX, 'symbol': 'BTC-USDT', 'timeframe': '5m', 'strategy': 'Test19'}\n    ], [])\n    # reset store\n    store.reset() \n    # initialize exchanges state\n    exchange_service.initialize_exchanges_state()\n    # initialize orders state\n    order_service.initialize_orders_state()\n    # initialize positions state\n    position_service.initialize_positions_state()\n\n    global position\n    global exchange\n    global broker\n    position = store.positions.get_position(exchanges.SANDBOX, 'BTC-USDT')\n    position.current_price = 50\n    exchange = store.exchanges.get_exchange(exchanges.SANDBOX)\n    broker = Broker(position, exchanges.SANDBOX, 'BTC-USDT',\n                    timeframes.MINUTE_5)\n\n\ndef test_cancel_all_orders():\n    set_up_without_fee(is_futures_trading=True)\n\n    # create 3 ACTIVE orders\n    o1 = broker.buy_at(1, 40)\n    o2 = broker.buy_at(1, 41)\n    o3 = broker.buy_at(1, 42)\n    assert o1.is_active\n    assert o2.is_active\n    assert o3.is_active\n\n    # create 2 EXECUTED orders\n    o4 = broker.buy_at_market(1)\n    # fake it\n    for o in store.orders.to_execute:\n        order_service.execute_order(o)\n    store.orders.to_execute = []\n    o5 = broker.buy_at_market(2)\n    # fake it\n    for o in store.orders.to_execute:\n        order_service.execute_order(o)\n    store.orders.to_execute = []\n    assert o4.is_executed\n    assert o5.is_executed\n\n    broker.cancel_all_orders()\n\n    # ACTIVE orders should have been canceled\n    assert o1.is_active is False\n    assert o2.is_active is False\n    assert o3.is_active is False\n    assert o1.is_canceled is True\n    assert o2.is_canceled is True\n    assert o3.is_canceled is True\n    # already-executed orders should have remain the same\n    assert o4.is_executed\n    assert o5.is_executed\n    assert o4.is_canceled is False\n    assert o5.is_canceled is False\n\n\ndef test_opening_and_closing_position_with_stop():\n    set_up_without_fee(is_futures_trading=True)\n\n    assert position.current_price == 50\n    assert position.is_close is True\n    assert exchange.assets['USDT'] == 1000\n    assert exchange.available_margin == 1000\n    assert exchange.wallet_balance == 1000\n    # open position\n    open_position_order = broker.start_profit_at('buy', 1, 60)\n    order_service.execute_order(open_position_order)\n    position.current_price = 60\n    assert position.is_open is True\n    assert position.entry_price == 60\n    assert position.qty == 1\n    assert exchange.assets['USDT'] == 1000\n    assert exchange.wallet_balance == 1000\n    assert exchange.available_margin == 940\n\n    # submit stop-loss order\n    stop_loss_order = broker.reduce_position_at(1, 40, 60)\n    assert stop_loss_order.reduce_only is True\n    # balance should NOT have changed\n    assert exchange.assets['USDT'] == 1000\n    assert exchange.wallet_balance == 1000\n    # submit take-profit order also\n    take_profit_order = broker.reduce_position_at(1, 80, 60)\n    assert take_profit_order.reduce_only is True\n    assert exchange.assets['USDT'] == 1000\n\n    # execute stop order\n    order_service.execute_order(stop_loss_order)\n    position.current_price = 40\n    assert exchange.assets['USDT'] == 980\n\n    assert exchange.wallet_balance == 980\n    assert exchange.available_margin == 980\n    order_service.cancel_order(take_profit_order)\n    assert exchange.available_margin == 980\n    assert position.is_close is True\n    assert position.entry_price is None\n    assert position.exit_price == 40\n\n\ndef test_stop_loss():\n    set_up_without_fee(is_futures_trading=True)\n\n    assert position.current_price == 50\n    assert position.is_close is True\n    assert exchange.available_margin == 1000\n    assert exchange.wallet_balance == 1000\n    # open position\n    broker.buy_at_market(1)\n    # fake it\n    for o in store.orders.to_execute:\n        order_service.execute_order(o)\n    store.orders.to_execute = []\n    assert position.is_open is True\n    assert position.entry_price == 50\n    assert position.qty == 1\n    assert exchange.available_margin == 950\n    # even executed orders should not affect wallet_balance unless it's for reducing position\n    assert exchange.wallet_balance == 1000\n\n    order = broker.reduce_position_at(1, 40, 50)\n    assert order.type == order_types.STOP\n    assert order.price == 40\n    assert order.qty == -1\n    assert order.side == 'sell'\n    assert order.reduce_only is True\n    # balance should NOT have changed\n    assert exchange.available_margin == 950\n    assert exchange.wallet_balance == 1000\n\n    # execute stop order\n    order_service.execute_order(order)\n    assert position.is_close is True\n    assert position.entry_price is None\n    assert position.exit_price == 40\n    assert exchange.available_margin == 990\n    assert exchange.wallet_balance == 990\n\n\ndef test_should_not_submit_reduce_only_orders_when_position_is_closed():\n    set_up_without_fee(is_futures_trading=True)\n\n    with pytest.raises(OrderNotAllowed):\n        broker.reduce_position_at(1, 20, 20)\n\n    with pytest.raises(OrderNotAllowed):\n        broker.reduce_position_at(1, 20, 20)\n"
  },
  {
    "path": "tests/test_candle_service.py",
    "content": "from jesse.factories import range_candles\nfrom jesse.services import candle_service\nimport numpy as np\n\n\ndef test_candle_includes_price():\n    c = np.array([1543387200000, 10, 20, 25, 5, 195])\n\n    assert candle_service.candle_includes_price(c, 5)\n    assert candle_service.candle_includes_price(c, 15)\n    assert candle_service.candle_includes_price(c, 25)\n\n    assert not candle_service.candle_includes_price(c, 4)\n    assert not candle_service.candle_includes_price(c, 26)\n\n\ndef test_generate_candle_from_one_minutes():\n    candles = range_candles(5)\n\n    five_minutes_candle = candle_service.generate_candle_from_one_minutes('5m', candles)\n\n    assert five_minutes_candle[0] == candles[0][0]\n    assert five_minutes_candle[1] == candles[0][1]\n    assert five_minutes_candle[2] == candles[-1][2]\n    assert five_minutes_candle[3] == candles[:, 3].max()\n    assert five_minutes_candle[4] == candles[:, 4].min()\n    assert five_minutes_candle[5] == candles[:, 5].sum()\n\n\ndef test_is_bearish():\n    c = np.array([1543387200000, 200, 190, 220, 180, 195])\n    assert candle_service.is_bearish(c)\n\n\ndef test_is_bullish():\n    c = np.array([1543387200000, 190, 200, 220, 180, 195])\n    assert candle_service.is_bullish(c)\n\n\ndef test_split_candle():\n    \"\"\"\n    these values has been tested from my thoughts on paper. You need to reproduce my drawings for them to make sense\n    \"\"\"\n    bull = np.array([1111, 10, 20, 25, 5, 2222])\n    bear = np.array([1111, 20, 10, 25, 5, 2222])\n\n    # bullish candle, low < price < open\n    np.testing.assert_equal(\n        candle_service.split_candle(bull, 7),\n        (\n            np.array([1111, 10, 7, 10, 7, 2222]),\n            np.array([1111, 7, 20, 25, 5, 2222]),\n        )\n    )\n    # bearish candle, open < price < high\n    np.testing.assert_equal(\n        candle_service.split_candle(bear, 23),\n        (\n            np.array([1111, 20, 23, 23, 20, 2222]),\n            np.array([1111, 23, 10, 25, 5, 2222]),\n        )\n    )\n\n    # bullish candle, price == open\n    np.testing.assert_equal(\n        candle_service.split_candle(bull, bull[1]),\n        (bull, bull)\n    )\n    # bearish candle, price == open\n    np.testing.assert_equal(\n        candle_service.split_candle(bear, bear[1]),\n        (bear, bear)\n    )\n\n    # bearish candle,  low < price < close\n    np.testing.assert_equal(\n        candle_service.split_candle(bear, 7),\n        (\n            np.array([1111, 20, 7, 25, 7, 2222]),\n            np.array([1111, 7, 10, 10, 5, 2222]),\n        )\n    )\n    # bullish candle,  close < price < high\n    np.testing.assert_equal(\n        candle_service.split_candle(bull, 23),\n        (\n            np.array([1111, 10, 23, 23, 5, 2222]),\n            np.array([1111, 23, 20, 25, 20, 2222]),\n        )\n    )\n\n    # bearish candle,  price == close\n    np.testing.assert_equal(\n        candle_service.split_candle(bear, 10),\n        (\n            np.array([1111, 20, 10, 25, 10, 2222]),\n            np.array([1111, 10, 10, 10, 5, 2222]),\n        )\n    )\n    # bullish candle,  close < price < high\n    np.testing.assert_equal(\n        candle_service.split_candle(bull, 20),\n        (\n            np.array([1111, 10, 20, 20, 5, 2222]),\n            np.array([1111, 20, 20, 25, 20, 2222]),\n        )\n    )\n\n    # bearish candle,  price == high\n    np.testing.assert_equal(\n        candle_service.split_candle(bear, 25),\n        (\n            np.array([1111, 20, 25, 25, 20, 2222]),\n            np.array([1111, 25, 10, 25, 5, 2222]),\n        )\n    )\n    # bullish candle,  price == low\n    np.testing.assert_equal(\n        candle_service.split_candle(bull, 5),\n        (\n            np.array([1111, 10, 5, 10, 5, 2222]),\n            np.array([1111, 5, 20, 25, 5, 2222]),\n        )\n    )\n\n    # bearish candle,  price == low\n    np.testing.assert_equal(\n        candle_service.split_candle(bear, 5),\n        (\n            np.array([1111, 20, 5, 25, 5, 2222]),\n            np.array([1111, 5, 10, 10, 5, 2222]),\n        )\n    )\n    # bullish candle,  price == high\n    np.testing.assert_equal(\n        candle_service.split_candle(bull, 25),\n        (\n            np.array([1111, 10, 25, 25, 5, 2222]),\n            np.array([1111, 25, 20, 25, 20, 2222]),\n        )\n    )\n\n    # bearish candle, close < price < open\n    np.testing.assert_equal(\n        candle_service.split_candle(bear, 15),\n        (\n            np.array([1111, 20, 15, 25, 15, 2222]),\n            np.array([1111, 15, 10, 15, 5, 2222]),\n        )\n    )\n    # bullish candle, open < price < close\n    np.testing.assert_equal(\n        candle_service.split_candle(bull, 15),\n        (\n            np.array([1111, 10, 15, 15, 5, 2222]),\n            np.array([1111, 15, 20, 25, 15, 2222]),\n        )\n    )\n\n\ndef test_candle_dict_to_np_array():\n    candle_dict = {\n        'close': 3,\n        'exchange': 'Bybit USDT Perpetual Testnet',\n        'high': 4,\n        'id': 'd2d139a7-13f6-446a-b2ea-f16152aeac5c',\n        'low': 1,\n        'open': 2,\n        'symbol': 'ETH-USDT',\n        'timestamp': 1660369080000,\n        'volume': 10\n    }\n    np.testing.assert_equal(\n        candle_service.candle_dict_to_np_array(candle_dict),\n        np.array([1660369080000, 2, 3, 4, 1, 10])\n    )\n"
  },
  {
    "path": "tests/test_completed_trade.py",
    "content": "from jesse.models import ClosedTrade\nfrom jesse.store import store\nfrom jesse.testing_utils import single_route_backtest\nimport numpy as np\n\n\ndef test_completed_trade_in_a_simple_strategy():\n    assert store.closed_trades.trades == []\n\n    single_route_backtest('CanAddClosedTradeToStore')\n\n    assert len(store.closed_trades.trades) == 1\n    assert store.closed_trades.count == 1\n\n    t: ClosedTrade = store.closed_trades.trades[0]\n\n    assert t.entry_price == 10\n    assert t.exit_price == 15\n    assert t.exchange == 'Sandbox'\n    assert t.symbol == 'BTC-USDT'\n    assert t.type == 'long'\n    assert t.strategy_name == 'CanAddClosedTradeToStore'\n    assert t.qty == 1\n    assert t.size == 1*10\n    assert t.fee == 0\n    assert t.pnl == 5\n    assert t.pnl_percentage == 50\n    assert t.holding_period == 60*5\n\n\ndef test_completed_trade_in_a_strategy_with_two_trades():\n    pass\n\n\ndef test_completed_trade_after_exiting_the_trade():\n    single_route_backtest('TestClosedTradeAfterExitingTrade', leverage=2)\n\n\ndef test_trade_qty_entry_price_exit_price_size_properties():\n    # long trade\n    t1 = ClosedTrade({\n        'type': 'long',\n    })\n    # add buy orders\n    t1.buy_orders.append(np.array([10, 100]))\n    t1.buy_orders.append(np.array([10, 200]))\n    # add sell orders\n    t1.sell_orders.append(np.array([10, 300]))\n    t1.sell_orders.append(np.array([10, 400]))\n    # assert qty, entry price and exit price\n    assert t1.qty == 20\n    assert t1.entry_price == 150\n    assert t1.exit_price == 350\n    assert t1.size == 20*150\n\n    # short trade\n    t2 = ClosedTrade({\n        'type': 'short',\n    })\n    # add sell orders\n    t2.sell_orders.append(np.array([10, 300]))\n    t2.sell_orders.append(np.array([10, 400]))\n    # add buy orders\n    t2.buy_orders.append(np.array([10, 100]))\n    t2.buy_orders.append(np.array([10, 200]))\n    # assert qty, entry price and exit price\n    assert t2.qty == 20\n    assert t2.exit_price == 150\n    assert t2.entry_price == 350\n    assert t2.size == 20 * 350\n\n"
  },
  {
    "path": "tests/test_conflicting_orders.py",
    "content": "import jesse.helpers as jh\nfrom jesse.config import reset_config\nfrom jesse.enums import exchanges\nfrom jesse.factories import candles_from_close_prices\nfrom jesse.models import ClosedTrade\nfrom jesse.routes import router\nfrom jesse.store import store\nfrom jesse.config import config\nfrom jesse.testing_utils import single_route_backtest\n\n\ndef get_btc_candles():\n    return {\n        jh.key(exchanges.SANDBOX, 'BTC-USDT'): {\n            'exchange': exchanges.SANDBOX,\n            'symbol': 'BTC-USDT',\n            'candles': candles_from_close_prices(range(1, 100)),\n        }\n    }\n\n\ndef set_up(routes, is_futures_trading=True):\n    reset_config()\n    if is_futures_trading:\n        # used only in futures trading\n        config['env']['exchanges'][exchanges.SANDBOX]['type'] = 'futures'\n    else:\n        config['env']['exchanges'][exchanges.SANDBOX]['type'] = 'spot'\n    router.set_routes(routes)\n    store.reset()\n\n\ndef test_can_handle_multiple_entry_orders_too_close_to_each_other():\n    single_route_backtest('Test34')\n\n    assert len(store.closed_trades.trades) == 1\n\n    t: ClosedTrade = store.closed_trades.trades[0]\n\n    assert t.type == 'long'\n    assert t.entry_price == (1.1 + 1.2 + 1.3 + 1.4) / 4\n    assert t.exit_price == 3\n    # 4 entry + 1 exit\n    assert len(t.orders) == 5\n\n\ndef test_conflicting_orders():\n    single_route_backtest('Test04')\n\n    assert len(store.closed_trades.trades) == 1\n\n    t: ClosedTrade = store.closed_trades.trades[0]\n\n    assert t.type == 'long'\n    assert t.entry_price == (1.1 + 1.11) / 2\n    assert t.exit_price == (1.2 + 1.3) / 2\n\n\ndef test_conflicting_orders_2():\n    single_route_backtest('Test20')\n\n    assert len(store.closed_trades.trades) == 1\n\n    t: ClosedTrade = store.closed_trades.trades[0]\n\n    assert t.entry_price == 2.5\n    assert t.exit_price == 2.6\n\n\n# def test_can_handle_not_correctly_sorted_multiple_orders():\n#     set_up([\n#         (exchanges.SANDBOX, 'BTC-USDT', timeframes.MINUTE_1, 'Test35'),\n#     ])\n#\n#     backtest_mode.run('2019-04-01', '2019-04-02', get_btc_candles())\n#\n#     assert len(store.closed_trades.trades) == 1\n#\n#     t: ClosedTrade = store.closed_trades.trades[0]\n#\n#     assert t.type == 'long'\n#     assert t.entry_price == (1.1 + 1.2 + 1.3 + 1.4) / 4\n#     assert t.exit_price == 3\n"
  },
  {
    "path": "tests/test_dynamic_numpy_array.py",
    "content": "import numpy as np\nimport pytest\n\nfrom jesse.libs import DynamicNumpyArray\n\n\ndef test_append():\n    a = DynamicNumpyArray((10, 6))\n    a.append(np.array([1, 2, 3, 4, 5, 6]))\n    assert a.index == 0\n    assert a.array[0][0] == 1\n    assert a.array[0][1] == 2\n    assert a.array[0][2] == 3\n    assert a.array[0][3] == 4\n    assert a.array[0][4] == 5\n    assert a.array[0][5] == 6\n\n    a.append(np.array([7, 8, 9, 10, 11, 12]))\n    assert a.index == 1\n    assert a.array[1][0] == 7\n    assert a.array[1][1] == 8\n    assert a.array[1][2] == 9\n    assert a.array[1][3] == 10\n    assert a.array[1][4] == 11\n    assert a.array[1][5] == 12\n\n\ndef test_flush():\n    a = DynamicNumpyArray((10, 6))\n    a.append(np.array([1, 2, 3, 4, 5, 6]))\n    a.append(np.array([7, 8, 9, 10, 11, 12]))\n    assert a.index == 1\n    assert a.array[0][0] == 1\n    assert a.array[1][0] == 7\n\n    a.flush()\n\n    assert a.index == -1\n    assert a.array[0][0] == 0\n    assert a.array[1][0] == 0\n\n\ndef test_get_last_item():\n    a = DynamicNumpyArray((10, 6))\n\n    with pytest.raises(IndexError):\n        a.get_last_item()\n\n    a.append(np.array([1, 2, 3, 4, 5, 6]))\n    a.append(np.array([7, 8, 9, 10, 11, 12]))\n    assert a.index == 1\n    assert a.array[0][0] == 1\n    assert a.array[1][0] == 7\n\n    np.testing.assert_array_equal(a.get_last_item(), np.array([7, 8, 9, 10, 11, 12]))\n\n\ndef test_get_past_item():\n    a = DynamicNumpyArray((10, 6))\n\n    with pytest.raises(IndexError):\n        a.get_past_item(1)\n\n    a.append(np.array([1, 2, 3, 4, 5, 6]))\n    a.append(np.array([7, 8, 9, 10, 11, 12]))\n    assert a.index == 1\n    assert a.array[0][0] == 1\n    assert a.array[1][0] == 7\n\n    np.testing.assert_array_equal(a.get_past_item(1), np.array([1, 2, 3, 4, 5, 6]))\n\n    with pytest.raises(IndexError):\n        a.get_past_item(2)\n\n\ndef test_get_item():\n    a = DynamicNumpyArray((10, 6))\n\n    # test getting while array is empty\n    with pytest.raises(IndexError):\n        var = a[0]\n\n    a.append(np.array([1, 2, 3, 4, 5, 6]))\n    a.append(np.array([7, 8, 9, 10, 11, 12]))\n    assert a.index == 1\n    assert a.array[0][0] == 1\n    assert a.array[1][0] == 7\n\n    np.testing.assert_array_equal(a[0], np.array([1, 2, 3, 4, 5, 6]))\n    np.testing.assert_array_equal(a[1], np.array([7, 8, 9, 10, 11, 12]))\n\n    # test with an index that is out of range\n    with pytest.raises(IndexError):\n        var = a[2]\n\n\ndef test_array_size_increases():\n    a = DynamicNumpyArray((3, 6))\n\n    assert a.array.shape == (3, 6)\n\n    a.append(np.array([1, 2, 3, 4, 5, 6]))\n    a.append(np.array([7, 8, 9, 10, 11, 12]))\n    a.append(np.array([13, 14, 15, 16, 17, 18]))\n    assert a.array.shape == (6, 6)\n    assert a.index == 2\n\n    a.append(np.array([19, 20, 21, 22, 23, 24]))\n    a.append(np.array([25, 26, 27, 28, 29, 30]))\n    a.append(np.array([31, 32, 33, 34, 35, 36]))\n    assert a.array.shape == (9, 6)\n    assert a.index == 5\n\n\ndef test_drop_at():\n    a = DynamicNumpyArray((100, 6), drop_at=6)\n\n    # add 5 items\n    a.append(np.array([1, 2, 3, 4, 5, 6]))\n    a.append(np.array([7, 8, 9, 10, 11, 12]))\n    a.append(np.array([13, 14, 15, 16, 17, 18]))\n    a.append(np.array([19, 20, 21, 22, 23, 24]))\n    a.append(np.array([25, 26, 27, 28, 29, 30]))\n    assert a.get_last_item()[0] == 25\n    assert a[0][0] == 1\n\n    # add 6th item. when it reaches the drop_at limit, it should drop drop_at/2 items\n    a.append(np.array([31, 32, 33, 34, 35, 36]))\n    assert a[0][0] == 19\n\n"
  },
  {
    "path": "tests/test_exchange.py",
    "content": "import pytest\n\nfrom jesse.exceptions import InsufficientMargin\nfrom jesse.testing_utils import single_route_backtest\n\n\ndef test_negative_balance_validation_for_futures_market():\n    \"\"\"\n    The initial account balance for USDT is 10_000. So trying to spend 10_001\n    should throw InsufficientMargin exception\n    \"\"\"\n    # (MARKET order)\n    with pytest.raises(InsufficientMargin):\n        single_route_backtest('TestInsufficientMargin1', is_futures_trading=True, leverage=1)\n    # but with more leverage, it should work\n    single_route_backtest('TestInsufficientMargin1', is_futures_trading=True, leverage=2)\n\n    # (LIMIT order)\n    with pytest.raises(InsufficientMargin):\n        single_route_backtest('TestInsufficientMargin2', is_futures_trading=True, leverage=1)\n    # but with more leverage, it should work\n    single_route_backtest('TestInsufficientMargin2', is_futures_trading=True, leverage=2)\n\n    # short-version (STOP order)\n    with pytest.raises(InsufficientMargin):\n        single_route_backtest('TestInsufficientMargin3', is_futures_trading=True, leverage=1)\n    # but with more leverage, it should work\n    single_route_backtest('TestInsufficientMargin3', is_futures_trading=True, leverage=2)\n\n\ndef test_wallet_balance_and_available_margin_for_futures_market():\n    \"\"\"\n    Works the same way as Binance Futures'es wallet balance does.\n    It is only changed at commission charges and after realized PNL is added.\n    \"\"\"\n    single_route_backtest('TestWalletBalance', is_futures_trading=True, leverage=2)\n\n\ndef test_available_margin_for_futures_market():\n    \"\"\"\n    Make sure that the reduce only orders are not affecting the available_margin causing it to go negative\n    \"\"\"\n    single_route_backtest('TestFuturesExchangeAvailableMargin', is_futures_trading=True, leverage=2)\n\n\n# TODO: test_wallet_balance_and_available_margin_for_spot_market\n"
  },
  {
    "path": "tests/test_helpers.py",
    "content": "import os\nimport arrow\nimport numpy as np\nimport pytest\nimport jesse.helpers as jh\nfrom jesse.routes import router\nfrom jesse.enums import exchanges, timeframes\n\n\ndef test_app_currency():\n    router.initiate(\n        [{'exchange': exchanges.BINANCE_SPOT, 'symbol': 'ETH-USD', 'timeframe': timeframes.HOUR_3, 'strategy': 'Test19'}])\n    assert jh.app_currency() == 'USD'\n\n\ndef test_app_mode():\n    assert jh.app_mode() == 'backtest'\n\n\ndef test_arrow_to_timestamp():\n    arrow_time = arrow.get('2015-08-01')\n    assert jh.arrow_to_timestamp(arrow_time) == 1438387200000\n\n\ndef test_base_asset():\n    assert jh.base_asset('BTC-USDT') == 'BTC'\n    assert jh.base_asset('BTC-USD') == 'BTC'\n    assert jh.base_asset('DEFI-USDT') == 'DEFI'\n    assert jh.base_asset('DEFI-USD') == 'DEFI'\n\n\ndef test_binary_search():\n    arr = [0, 11, 22, 33, 44, 54, 55]\n\n    assert jh.binary_search(arr, 22) == 2\n    assert jh.binary_search(arr, 222) == -1\n\n\ndef test_clean_orderbook_list():\n    assert np.array_equal(\n        jh.clean_orderbook_list([\n            ['10', '11'],\n            ['11', '14'],\n            ['12', '13'],\n            ['13', '133'],\n            ['14', '12'],\n        ]),\n        [\n            [10, 11],\n            [11, 14],\n            [12, 13],\n            [13, 133],\n            [14, 12],\n        ]\n    )\n\n\ndef test_color():\n    msg_text = 'msg'\n    msg_color = 'black'\n    assert jh.color(msg_text, msg_color) == '\\x1b[30mmsg\\x1b[0m'\n\n\ndef test_convert_number():\n    old_max = 119\n    old_min = 40\n    new_max = 4.0\n    new_min = 0.5\n    old_value = 41\n\n    assert jh.convert_number(old_max, old_min, new_max, new_min, old_value) == 0.5443037974683544\n\n\ndef test_dashless_symbol():\n    assert jh.dashless_symbol('BTC-USD') == 'BTCUSD'\n    assert jh.dashless_symbol('BTC-USDT') == 'BTCUSDT'\n    assert jh.dashless_symbol('1INCH-USDT') == '1INCHUSDT'\n    assert jh.dashless_symbol('SC-USDT') == 'SCUSDT'\n\n    # make sure that it works even if it's already dashless\n    assert jh.dashless_symbol('BTCUSDT') == 'BTCUSDT'\n\n    assert jh.dashless_symbol('SETH-SUSDT') == 'SETHSUSDT'\n    assert jh.dashless_symbol('USD-USDT') == 'USDUSDT'\n\n\ndef test_dashy_symbol():\n    assert jh.dashy_symbol('BTCUSD') == 'BTC-USD'\n    assert jh.dashy_symbol('BTCUSDT') == 'BTC-USDT'\n    assert jh.dashy_symbol('BTC-USDT') == 'BTC-USDT'\n    assert jh.dashy_symbol('BTCEUR') == 'BTC-EUR'\n    assert jh.dashy_symbol('1INCHUSDT') == '1INCH-USDT'\n    assert jh.dashy_symbol('SCUSDT') == 'SC-USDT'\n\n\ndef test_date_diff_in_days():\n    date_1 = arrow.get('2015-12-23 18:40:48', 'YYYY-MM-DD HH:mm:ss')\n    date_2 = arrow.get('2017-11-15 13:18:20', 'YYYY-MM-DD HH:mm:ss')\n    diff = jh.date_diff_in_days(date_1, date_2)\n    assert diff == 692\n\n\ndef test_date_to_timestamp():\n    assert jh.date_to_timestamp('2015-08-01') == 1438387200000\n\n\ndef test_dna_to_hp():\n    strategy_hp = [\n        {'name': 'hp1', 'type': float, 'min': 0.01, 'max': 1.0, 'default': 0.09},\n        {'name': 'hp2', 'type': int, 'min': 1, 'max': 10, 'default': 2},\n    ]\n    dna = \".6\"\n    assert jh.dna_to_hp(strategy_hp, dna) == {'hp1': 0.08518987341772151, 'hp2': 3}\n\n\ndef test_dump_exception():\n    # uses database, which is not existing during testing\n    pass\n\n\ndef test_estimate_average_price():\n    assert jh.estimate_average_price(100, 7200, 0, 0) == 7200\n\n    with pytest.raises(TypeError):\n        jh.estimate_average_price(100, 7200, 0, None)\n        jh.estimate_average_price(100, 7200, None, 0)\n        jh.estimate_average_price(100, None, 0, 0)\n        jh.estimate_average_price(None, 7200, 0, 0)\n\n\ndef test_estimate_PNL():\n    # profit\n    assert jh.estimate_PNL(2, 50, 60, 'long') == 20\n    assert jh.estimate_PNL(2, 60, 50, 'short') == 20\n\n    # loss\n    assert jh.estimate_PNL(2, 50, 60, 'short') == -20\n    assert jh.estimate_PNL(2, 60, 50, 'long') == -20\n\n    # profit with fee\n    assert jh.estimate_PNL(1, 10, 20, 'long', 0.002) == 9.94\n    # loss with fee\n    assert jh.estimate_PNL(1, 10, 20, 'short', 0.002) == -10.06\n\n    with pytest.raises(TypeError):\n        jh.estimate_PNL(1, 200, 220, 1)\n        jh.estimate_PNL(1, 200, 'invalid_input', 'short')\n        jh.estimate_PNL(1, 'invalid_input', 220, 'short')\n        jh.estimate_PNL('invalid_input', 200, 220, 'short')\n\n\ndef test_estimate_PNL_percentage():\n    # profit\n    assert jh.estimate_PNL_percentage(1, 200, 220, 'long') == 10\n    assert jh.estimate_PNL_percentage(1, 200, 180, 'short') == 10\n\n    # loss\n    assert jh.estimate_PNL_percentage(1, 200, 180, 'long') == -10\n    assert jh.estimate_PNL_percentage(1, 200, 220, 'short') == -10\n\n    with pytest.raises(TypeError):\n        jh.estimate_PNL_percentage(1, 200, 220, 1)\n        jh.estimate_PNL_percentage(1, 200, 'invalid_input', 'short')\n        jh.estimate_PNL_percentage(1, 'invalid_input', 220, 'short')\n        jh.estimate_PNL_percentage('invalid_input', 200, 220, 'short')\n\n\ndef test_file_exists():\n    assert jh.file_exists('tests/test_helpers.py') is True\n\n\ndef test_floor_with_precision():\n    assert jh.floor_with_precision(1.123) == 1\n    assert jh.floor_with_precision(1.123, 1) == 1.1\n    assert jh.floor_with_precision(1.123, 2) == 1.12\n    assert jh.floor_with_precision(1.123, 3) == 1.123\n    assert jh.floor_with_precision(1.123, 4) == 1.123\n\n\ndef test_format_currency():\n    assert jh.format_currency(100_000_000) == '100,000,000'\n    assert jh.format_currency(100_000_000.23) == '100,000,000.23'\n\n\ndef test_format_price():\n    assert jh.format_price(1.12312312312123) == \"1.12\"\n    # very small numbers use 5 significant digits\n    assert jh.format_price(0.0000123121312) == \"0.000012312\"\n    assert jh.format_price(12312313.123123123) == \"12312313.12\"\n    assert jh.format_price(999.9999) == \"999.99\"\n    # test with negative numbers\n    assert jh.format_price(-1.12312312312123) == \"-1.12\"\n    # very small negative numbers use 5 significant digits\n    assert jh.format_price(-0.0000123121312) == \"-0.000012312\"\n    assert jh.format_price(-0.0123121312) == \"-0.012312\"\n    # test with zero\n    assert jh.format_price(0) == \"0.00\"\n    # test with None\n    assert jh.format_price(None) == \"\"\n    # test with a large number without decimals\n    assert jh.format_price(12345) == \"12345.00\"\n    # test scientific notation\n    assert jh.format_price(1.23e-7) == \"0.00000012300\"\n\n\ndef test_generate_unique_id():\n    assert jh.is_valid_uuid(jh.generate_unique_id()) is True\n    assert jh.is_valid_uuid('asdfasdfasdfasfsadfsd') is False\n\n\ndef test_get_candle_source():\n    candle = np.array(([1575547200000, 146.51, 147.03, 149.02, 146.51, 64788.46651],\n                       [1553817660000, 4092.56783507, 4092.5, 4092.56783507, 4092.5, 9.0847059]))\n    close = jh.get_candle_source(candle, source_type=\"close\")\n    assert close[-1] == 4092.5\n    high = jh.get_candle_source(candle, source_type=\"high\")\n    assert high[-1] == 4092.56783507\n    low = jh.get_candle_source(candle, source_type=\"low\")\n    assert low[-1] == 4092.5\n    open = jh.get_candle_source(candle, source_type=\"open\")\n    assert open[-1] == 4092.56783507\n    volume = jh.get_candle_source(candle, source_type=\"volume\")\n    assert volume[-1] == 9.0847059\n    hl2 = jh.get_candle_source(candle, source_type=\"hl2\")\n    assert hl2[-1] == 4092.533917535\n    hlc3 = jh.get_candle_source(candle, source_type=\"hlc3\")\n    assert hlc3[-1] == 4092.52261169\n    ohlc4 = jh.get_candle_source(candle, source_type=\"ohlc4\")\n    assert ohlc4[-1] == 4092.533917535\n\n\ndef test_get_config(monkeypatch):\n    # assert when config does NOT exist (must return passed default)\n    assert jh.get_config('aaaaaaa', 2020) == 2020\n    # assert when config does exist\n    assert jh.get_config('env.logging.order_submission', 2020) is True\n    # assert env is took\n    monkeypatch.setenv(\"ENV_DATABASES_POSTGRES_HOST\", \"db\")\n    assert jh.get_config('env.databases.postgres_host', 'default') == 'db'\n    monkeypatch.delenv(\"ENV_DATABASES_POSTGRES_HOST\")\n    # assert env is took with space\n    monkeypatch.setenv(\"ENV_EXCHANGES_BINANCE_FUTURES_SETTLEMENT_CURRENCY\", 'BUSD')\n    assert jh.get_config('env.exchanges.Binance Futures.settlement_currency', 'USDT') == 'BUSD'\n    monkeypatch.delenv(\"ENV_EXCHANGES_BINANCE_FUTURES_SETTLEMENT_CURRENCY\")\n\n\ndef test_get_strategy_class():\n    from jesse.strategies import Strategy\n    assert issubclass(jh.get_strategy_class(\"Test01\"), Strategy)\n\n\ndef test_insecure_hash():\n    assert jh.insecure_hash(\"test\") == \"098f6bcd4621d373cade4e832627b4f6\"\n\n\ndef test_insert_list():\n    my_list = [0, 1, 2, 3]\n\n    assert jh.insert_list(2, 22, my_list) == [0, 1, 22, 2, 3]\n    assert jh.insert_list(0, 22, my_list) == [22, 0, 1, 2, 3]\n    assert jh.insert_list(-1, 22, my_list) == [0, 1, 2, 3, 22]\n\n    # assert list is untouched\n    assert my_list == [0, 1, 2, 3]\n\n\ndef test_is_backtesting():\n    assert jh.is_backtesting() is True\n\n\ndef test_is_debuggable():\n    debug_item = 'order_submission'\n    assert jh.is_debuggable(debug_item) is False\n\n\ndef test_is_debugging():\n    assert jh.is_debugging() is False\n\n\ndef test_is_importing_candles():\n    assert jh.is_importing_candles() is False\n\n\ndef test_is_live():\n    assert jh.is_live() is False\n\n\ndef test_is_livetrading():\n    assert jh.is_livetrading() is False\n\n\ndef test_is_optimizing():\n    assert jh.is_optimizing() is False\n\n\ndef test_is_paper_trading():\n    assert jh.is_paper_trading() is False\n\n\ndef test_is_unit_testing():\n    assert jh.is_unit_testing() is True\n\n\ndef test_key():\n    exchange = \"Exchange\"\n    symbol = \"BTC-USD\"\n    timeframe = \"6h\"\n    assert jh.key(exchange, symbol) == \"Exchange-BTC-USD\"\n    assert jh.key(exchange, symbol, timeframe) == \"Exchange-BTC-USD-6h\"\n\n\ndef test_max_timeframe():\n    assert jh.max_timeframe(['1m', '3m']) == '3m'\n    assert jh.max_timeframe(['3m', '5m']) == '5m'\n    assert jh.max_timeframe(['15m', '5m']) == '15m'\n    assert jh.max_timeframe(['30m', '15m']) == '30m'\n    assert jh.max_timeframe(['30m', '1h']) == '1h'\n    assert jh.max_timeframe(['1h', '2h']) == '2h'\n    assert jh.max_timeframe(['2h', '3h']) == '3h'\n    assert jh.max_timeframe(['4h', '3h']) == '4h'\n    assert jh.max_timeframe(['6h', '4h']) == '6h'\n    assert jh.max_timeframe(['8h', '4h']) == '8h'\n    assert jh.max_timeframe(['6h', '1D']) == '1D'\n\n\ndef test_normalize():\n    assert jh.normalize(10, 0, 20) == 0.5\n    assert jh.normalize(20, 0, 20) == 1\n    assert jh.normalize(0, 0, 20) == 0\n\n\ndef test_now_to_timestamp():\n    from jesse.store import store\n    assert jh.now_to_timestamp() == store.app.time\n\n\ndef test_np_ffill():\n    arr = np.array([0, 1, np.nan, np.nan])\n    res = jh.np_ffill(arr)\n    expected = np.array([0, 1, 1, 1])\n\n    np.equal(res, expected)\n\n\ndef test_np_shift():\n    arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])\n    res = jh.np_shift(arr, -3)\n    expected = np.array([4, 5, 6, 7, 8, 9, 0, 0, 0])\n\n    np.equal(res, expected)\n\n\ndef test_opposite_side():\n    assert jh.opposite_side('buy') == 'sell'\n    assert jh.opposite_side('sell') == 'buy'\n\n\ndef test_opposite_type():\n    assert jh.opposite_type('long') == 'short'\n    assert jh.opposite_type('short') == 'long'\n\n\ndef test_orderbook_insertion_index_search():\n    ascending_arr = [\n        [10, 232],\n        [11, 33232],\n        [12, 233],\n        [33, 21323],\n        [44, 23123],\n        [55, 2321],\n        [66, 23213]\n    ]\n\n    assert jh.orderbook_insertion_index_search(ascending_arr, [7, 2]) == (False, 0)\n    assert jh.orderbook_insertion_index_search(ascending_arr, [2, 2]) == (False, 0)\n    assert jh.orderbook_insertion_index_search(ascending_arr, [32, 2]) == (False, 3)\n    assert jh.orderbook_insertion_index_search(ascending_arr, [34, 2]) == (False, 4)\n    assert jh.orderbook_insertion_index_search(ascending_arr, [1, 2]) == (False, 0)\n    assert jh.orderbook_insertion_index_search(ascending_arr, [66, 2]) == (True, 6)\n    assert jh.orderbook_insertion_index_search(ascending_arr, [77, 2]) == (False, 7)\n\n    descending_arr = [\n        [66, 232],\n        [55, 33232],\n        [44, 233],\n        [33, 21323],\n        [2, 23123],\n    ]\n\n    assert jh.orderbook_insertion_index_search(descending_arr, [77, 2], ascending=False) == (False, 0)\n    assert jh.orderbook_insertion_index_search(descending_arr, [2, 2], ascending=False) == (True, 4)\n    assert jh.orderbook_insertion_index_search(descending_arr, [65, 2], ascending=False) == (False, 1)\n    assert jh.orderbook_insertion_index_search(descending_arr, [1, 2], ascending=False) == (False, 5)\n\n\ndef test_orderbook_trim_price():\n    # bids\n    assert jh.orderbook_trim_price(101.12, False, .1) == 101.1\n    assert jh.orderbook_trim_price(101.1, False, .1) == 101.1\n\n    assert jh.orderbook_trim_price(10.12, False, .01) == 10.12\n    assert jh.orderbook_trim_price(10.1, False, .01) == 10.1\n    assert jh.orderbook_trim_price(10.122, False, .01) == 10.12\n    assert jh.orderbook_trim_price(1.1223, False, .001) == 1.122\n\n    # asks\n    assert jh.orderbook_trim_price(101.12, True, .1) == 101.2\n    assert jh.orderbook_trim_price(101.1, True, .1) == 101.1\n    assert jh.orderbook_trim_price(10.12, True, .01) == 10.12\n    assert jh.orderbook_trim_price(10.122, True, .01) == 10.13\n    assert jh.orderbook_trim_price(1.1223, True, .001) == 1.123\n\n\ndef test_prepare_qty():\n    assert jh.prepare_qty(10, 'sell') == -10\n    assert jh.prepare_qty(10, 'short') == -10\n    assert jh.prepare_qty(0, 'short') == 0\n    assert jh.prepare_qty(-10, 'buy') == 10\n    assert jh.prepare_qty(-10, 'long') == 10\n    assert jh.prepare_qty(0, 'long') == 0\n    assert jh.prepare_qty(0, 'close') == 0.0\n\n    with pytest.raises(ValueError):\n        jh.prepare_qty(-10, 'invalid_input')\n\n\ndef test_python_version():\n    import sys\n    assert jh.python_version() == sys.version_info[:2]\n\n\ndef test_quote_asset():\n    assert jh.quote_asset('BTC-USDT') == 'USDT'\n    assert jh.quote_asset('DEFI-USDT') == 'USDT'\n    assert jh.quote_asset('DEFI-EUR') == 'EUR'\n\n\ndef test_random_str():\n    assert len(jh.random_str(10)) == 10\n\n\ndef test_readable_duration():\n    assert jh.readable_duration(604312) == \"6 days, 23 hours\"\n\n\ndef test_relative_to_absolute():\n    from pathlib import Path\n    assert jh.relative_to_absolute(\"tests/test_helpers.py\") == str(Path(__file__).absolute())\n\n\ndef test_round_price_for_live_mode():\n    np.testing.assert_equal(\n        jh.round_price_for_live_mode(np.array([0.0003209123456, 0.0004209123456]), 7),\n        np.array([0.0003209, 0.0004209])\n    )\n\n\ndef test_round_qty_for_live_mode():\n    np.testing.assert_equal(\n        jh.round_qty_for_live_mode(np.array([100.3209123456, 100.4299123456]), 2),\n        np.array([100.32, 100.42])\n    )\n\n    np.testing.assert_equal(\n        jh.round_qty_for_live_mode(np.array([0]), 1),\n        np.array([0.1])\n    )\n\n    np.testing.assert_equal(\n        jh.round_qty_for_live_mode(np.array([0]), 2),\n        np.array([0.01])\n    )\n\n    np.testing.assert_equal(\n        jh.round_qty_for_live_mode(np.array([0]), 3),\n        np.array([0.001])\n    )\n\n    with pytest.raises(ValueError):\n        jh.round_qty_for_live_mode(np.array([9]), -1)\n\n    # round one number only\n    to_round = 10.123456789\n    expected_result = 10.1234\n    res = jh.round_qty_for_live_mode(to_round, 4)\n    assert res == expected_result\n    assert type(res) == float\n\n    np.testing.assert_equal(\n        jh.round_qty_for_live_mode(np.array([102]), -2),\n        np.array([100])\n    )\n    np.testing.assert_equal(\n        jh.round_qty_for_live_mode(np.array([123]), -2),\n        np.array([100])\n    )\n    np.testing.assert_equal(\n        jh.round_qty_for_live_mode(np.array([163]), -2),\n        np.array([100])\n    )\n    np.testing.assert_equal(\n        jh.round_qty_for_live_mode(np.array([1263]), -2),\n        np.array([1200])\n    )\n\n\ndef test_round_decimals_down():\n    assert jh.round_decimals_down(100.329, 2) == 100.32\n    assert jh.round_decimals_down(115.329, -1) == 110\n    assert jh.round_decimals_down(115.329, -2) == 100\n    assert jh.round_decimals_down(115.329, 0) == 115\n\n\ndef test_secure_hash():\n    assert jh.secure_hash('test') == \"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08\"\n\n\ndef test_should_execute_silently():\n    assert jh.should_execute_silently() is True\n\n\ndef test_side_to_type():\n    assert jh.side_to_type(\"buy\") == \"long\"\n    assert jh.side_to_type(\"sell\") == \"short\"\n\n    # make sure title case works as well\n    assert jh.side_to_type(\"Buy\") == \"long\"\n    assert jh.side_to_type(\"Sell\") == \"short\"\n\n\ndef test_string_after_character():\n    assert jh.string_after_character('btcusdt@bookTicker', '@') == 'bookTicker'\n    assert jh.string_after_character('9000|24628', '|') == '24628'\n\n\ndef test_style():\n    assert jh.style('test', 'bold') == \"\\x1b[1mtest\\x1b[0m\"\n    assert jh.style('test', 'u') == \"\\x1b[4mtest\\x1b[0m\"\n\n\ndef test_terminate_app():\n    # uses database, which is not existing during testing\n    pass\n\n\ndef test_timestamp_to_arrow():\n    arrow_time = arrow.get('2015-08-01')\n    assert jh.timestamp_to_arrow(1438387200000) == arrow_time\n\n\ndef test_timestamp_to_date():\n    assert jh.timestamp_to_date(1438387200000) == \"2015-08-01\"\n\n\ndef test_timestamp_to_time():\n    assert jh.timestamp_to_time(1558770180000) == '2019-05-25T07:43:00+00:00'\n\n\ndef test_timestamp_to_iso8601():\n    assert jh.timestamp_to_iso8601(1609804800000) == '2021-01-05T00:00:00+00:00'\n\n\ndef test_iso8601_to_timestamp():\n    assert jh.iso8601_to_timestamp('2021-01-05T00:00:00.000Z') == 1609804800000\n\n\ndef test_today_to_timestamp():\n    assert jh.today_to_timestamp() == arrow.utcnow().floor('day').int_timestamp * 1000\n\n\ndef test_type_to_side():\n    assert jh.type_to_side('long') == 'buy'\n    assert jh.type_to_side('short') == 'sell'\n\n    # validate that if sent any other string, it will raise ValueError\n    with pytest.raises(ValueError):\n        jh.type_to_side('invalid')\n\n\ndef test_unique_list():\n    a = [\n        ('Binance', 'BTC', '1m'),\n        ('Binance', 'BTC', '5m'),\n        ('Binance', 'BTC', '15m'),\n        ('Binance', 'BTC', '5m'),\n        ('Binance', 'BTC', '1m'),\n        ('Binance', 'BTC', '15m'),\n    ]\n\n    expected = [\n        ('Binance', 'BTC', '1m'),\n        ('Binance', 'BTC', '5m'),\n        ('Binance', 'BTC', '15m'),\n    ]\n\n    assert jh.unique_list(a) == expected\n\n\ndef test_closing_side():\n    assert jh.closing_side('Long') == 'sell'\n    assert jh.closing_side('Short') == 'buy'\n\n\ndef test_merge_dicts():\n    client = {\n        'extra': {\n            'name': 'Saleh',\n            'new_key': 12\n        },\n        'age': 28\n    }\n\n    server = {\n        'extra': {\n            'name': 'Ocean',\n            'water': 100\n        },\n    }\n\n    expected_result = {'age': 28, 'extra': {'name': 'Ocean', 'water': 100, 'new_key': 12}}\n\n    assert expected_result == jh.merge_dicts(client, server)\n\n\ndef test_get_pid():\n    assert os.getpid() == jh.get_pid()\n\n\ndef test_convert_to_env_name():\n    assert jh.convert_to_env_name('Testnet Binance Futures') == 'TESTNET_BINANCE_FUTURES'\n    assert jh.convert_to_env_name('Testnet Binance') == 'TESTNET_BINANCE'\n\n\ndef test_str_or_none():\n    assert jh.str_or_none('test') == 'test'\n    assert jh.str_or_none(None) is None\n    assert jh.str_or_none('') is ''\n    assert jh.str_or_none(3009004354) == '3009004354'\n    assert jh.str_or_none(b'3009004354') == '3009004354'\n    assert jh.str_or_none(1239.5) == '1239.5'\n    a = np.array([1239.5])\n    assert jh.str_or_none(a[0]) == '1239.5'\n\n\ndef test_float_or_none():\n    assert jh.float_or_none(1.23) == 1.23\n    assert jh.float_or_none(1) == 1.0\n    assert jh.float_or_none(None) is None\n    assert jh.float_or_none('') is None\n    assert jh.float_or_none(b'1.23') == 1.23\n    assert jh.float_or_none('1.23') == 1.23\n\n\ndef test_get_class_name():\n    class TestClass:\n        pass\n\n    assert jh.get_class_name(TestClass) == 'TestClass'\n\n    # if string is passed, it will return the string\n    assert jh.get_class_name('TestClass') == 'TestClass'\n\n\ndef test_round_or_none():\n    assert jh.round_or_none(1.23) == 1\n    assert jh.round_or_none(1.23456789, 2) == 1.23\n    assert jh.round_or_none(None) is None\n\n\ndef test_is_price_near():\n    assert jh.is_price_near(0.007386, 0.007385) == True\n    assert jh.is_price_near(0.007386, 0.007396) == False\n    assert jh.is_price_near(0.0250, 0.0249) == False\n    assert jh.is_price_near(60000, 60000) == True\n    assert jh.is_price_near(60000, 60000.1) == True\n    assert jh.is_price_near(60000, 60100) == False\n    assert jh.is_price_near(30000, 30005) == False\n    assert jh.is_price_near(30000, 30002) == True\n    assert jh.is_price_near(30000, 29800) == False\n    assert jh.is_price_near(200, 200.01) == True\n    assert jh.is_price_near(20, 20.001) == True\n    assert jh.is_price_near(0.0014458, 0.0014458*1.05) == False\n    assert jh.is_price_near(0.0014458, 0.0014458*1.10) == False\n\n\ndef test_is_almost_equal():\n    # Test exact equality\n    assert jh.is_almost_equal(100, 100) == True\n    assert jh.is_almost_equal(0, 0) == True\n    assert jh.is_almost_equal(-10, -10) == True\n    \n    # Test almost equal values with default tolerance\n    assert jh.is_almost_equal(0.1 + 0.2, 0.3) == True  # Classic floating point issue\n    assert jh.is_almost_equal(1.0000000001, 1.0) == True\n    assert jh.is_almost_equal(100.000000001, 100.0) == True\n    \n    # Test values that should be considered different\n    assert jh.is_almost_equal(1.0, 1.1) == False\n    assert jh.is_almost_equal(100, 101) == False\n    assert jh.is_almost_equal(0.001, 0.002) == False\n    \n    # Test with custom tolerance\n    assert jh.is_almost_equal(1.0, 1.05, tolerance=0.1) == True\n    assert jh.is_almost_equal(1.0, 1.05, tolerance=0.01) == False\n    \n    # Test with None values\n    assert jh.is_almost_equal(None, None) == True\n    assert jh.is_almost_equal(None, 0) == False\n    assert jh.is_almost_equal(0, None) == False\n    \n    # Test with very different values\n    assert jh.is_almost_equal(1000, 0.001) == False\n    assert jh.is_almost_equal(-1000, 1000) == False\n    \n    # Test with real-world quantity values that should be considered equal\n    assert jh.is_almost_equal(0.00123456, 0.00123457) == False\n    assert jh.is_almost_equal(100.00000001, 100.0) == True\n    \n    # Test with values that shouldn't be considered equal even with updated tolerance\n    assert jh.is_almost_equal(0.001, 0.00101) == False\n\n\ndef test_clean_infinite_values():\n    import math\n    \n    # Test with primitive values\n    assert jh.clean_infinite_values(5) == 5\n    assert jh.clean_infinite_values(5.5) == 5.5\n    assert jh.clean_infinite_values(\"string\") == \"string\"\n    assert jh.clean_infinite_values(None) is None\n    assert jh.clean_infinite_values(math.inf) is None\n    assert jh.clean_infinite_values(-math.inf) is None\n    \n    # Test with lists\n    assert jh.clean_infinite_values([1, 2, 3]) == [1, 2, 3]\n    assert jh.clean_infinite_values([1, math.inf, 3]) == [1, None, 3]\n    assert jh.clean_infinite_values([1, -math.inf, 3]) == [1, None, 3]\n    assert jh.clean_infinite_values([math.inf, -math.inf]) == [None, None]\n    \n    # Test with nested lists\n    assert jh.clean_infinite_values([1, [2, math.inf], 3]) == [1, [2, None], 3]\n    assert jh.clean_infinite_values([[math.inf], [1, 2]]) == [[None], [1, 2]]\n    \n    # Test with dictionaries\n    assert jh.clean_infinite_values({\"a\": 1, \"b\": 2}) == {\"a\": 1, \"b\": 2}\n    assert jh.clean_infinite_values({\"a\": 1, \"b\": math.inf}) == {\"a\": 1, \"b\": None}\n    assert jh.clean_infinite_values({\"a\": -math.inf, \"b\": 2}) == {\"a\": None, \"b\": 2}\n    assert jh.clean_infinite_values({\"a\": math.inf, \"b\": -math.inf}) == {\"a\": None, \"b\": None}\n    \n    # Test with nested dictionaries\n    assert jh.clean_infinite_values({\"a\": {\"b\": math.inf}, \"c\": 1}) == {\"a\": {\"b\": None}, \"c\": 1}\n    assert jh.clean_infinite_values({\"a\": {\"b\": {\"c\": -math.inf}}}) == {\"a\": {\"b\": {\"c\": None}}}\n    \n    # Test with mixed structures\n    complex_obj = {\n        \"numbers\": [1, 2, math.inf, -math.inf],\n        \"nested\": {\n            \"list\": [math.inf, 3, 4],\n            \"dict\": {\"inf\": math.inf, \"normal\": 5}\n        },\n        \"normal\": 10\n    }\n    expected = {\n        \"numbers\": [1, 2, None, None],\n        \"nested\": {\n            \"list\": [None, 3, 4],\n            \"dict\": {\"inf\": None, \"normal\": 5}\n        },\n        \"normal\": 10\n    }\n    assert jh.clean_infinite_values(complex_obj) == expected\n\n\ndef test_clean_nan_values_keeps_bool():\n    obj = {\n        'a': True,\n        'b': False,\n        'nested': {\n            'c': True,\n            'd': [False, True]\n        }\n    }\n    cleaned = jh.clean_nan_values(obj)\n    assert cleaned['a'] is True\n    assert cleaned['b'] is False\n    assert cleaned['nested']['c'] is True\n    assert cleaned['nested']['d'][0] is False\n    assert cleaned['nested']['d'][1] is True\n\n\ndef test_normalize_bool():\n    assert jh.normalize_bool(True) is True\n    assert jh.normalize_bool(False) is False\n    assert jh.normalize_bool(1) is True\n    assert jh.normalize_bool(0) is False\n    assert jh.normalize_bool('1') is True\n    assert jh.normalize_bool('0') is False\n    assert jh.normalize_bool('true') is True\n    assert jh.normalize_bool('false') is False\n    assert jh.normalize_bool(' TRUE ') is True\n    assert jh.normalize_bool(' FALSE ') is False\n    assert jh.normalize_bool(2) is False  # v == 1 is False for 2\n    assert jh.normalize_bool(None) is False  # fallback to bool(None)\n"
  },
  {
    "path": "tests/test_import_candles.py",
    "content": "import jesse.helpers as jh\nimport jesse.modes.import_candles_mode as importer\nfrom tests.data import test_candles_0\n\ntest_object_candles = []\nfor c in test_candles_0:\n    test_object_candles.append({\n        'id': jh.generate_unique_id(),\n        'symbol': 'BTC-USD',\n        'exchange': 'Sandbox',\n        'timestamp': c[0],\n        'open': c[1],\n        'high': c[2],\n        'low': c[3],\n        'close': c[4],\n        'volume': c[5]\n    })\n\nsmaller_data_set = test_object_candles[0:7].copy()\n\n\ndef test_fill_absent_candles():\n    assert len(test_object_candles) == 1382\n\n    start = 1553817600000\n    end = 1553817600000 + (1440 - 1) * 60000\n\n    fixed_candles = importer._fill_absent_candles(test_object_candles, start, end)\n\n    assert len(fixed_candles) == 1440\n    assert fixed_candles[0]['timestamp'] == start\n    assert fixed_candles[-1]['timestamp'] == end\n\n\ndef test_fill_absent_candles_beginning_middle_end():\n    # Should fill if candles in the beginning are absent\n    candles = smaller_data_set[2:7]\n    assert len(smaller_data_set) == 7\n    assert len(candles) == 5\n    start = smaller_data_set[0]['timestamp']\n    end = smaller_data_set[-1]['timestamp']\n    candles = importer._fill_absent_candles(candles, start, end)\n    assert len(candles) == 7\n    assert candles[0]['timestamp'] == smaller_data_set[0]['timestamp']\n    assert candles[-1]['timestamp'] == smaller_data_set[-1]['timestamp']\n\n    # Should fill if candles in the middle are absent\n    candles = smaller_data_set[0:3] + smaller_data_set[5:7]\n    assert len(candles) == 5\n    candles = importer._fill_absent_candles(candles, start, end)\n    assert len(candles) == 7\n    assert candles[0]['timestamp'] == smaller_data_set[0]['timestamp']\n    assert candles[-1]['timestamp'] == smaller_data_set[-1]['timestamp']\n\n    # Should fill if candles in the ending are absent\n    candles = smaller_data_set[0:5]\n    assert len(candles) == 5\n    candles = importer._fill_absent_candles(candles, start, end)\n    assert len(candles) == 7\n    assert candles[0]['timestamp'] == smaller_data_set[0]['timestamp']\n    assert candles[-1]['timestamp'] == smaller_data_set[-1]['timestamp']\n\n\ndef test_more_than_one_set_of_candles_in_the_middle_are_absent():\n    candles = [\n                  smaller_data_set[0],\n              ] + smaller_data_set[2:3] + smaller_data_set[5:7]\n    assert len(smaller_data_set) == 7\n    assert len(candles) == 4\n\n    start = smaller_data_set[0]['timestamp']\n    end = smaller_data_set[-1]['timestamp']\n\n    candles = importer._fill_absent_candles(candles, start, end)\n\n    assert len(candles) == 7\n    assert candles[0]['timestamp'] == start\n    assert candles[-1]['timestamp'] == end\n"
  },
  {
    "path": "tests/test_indicators.py",
    "content": "import numpy as np\n\nimport jesse.indicators as ta\nfrom jesse.factories import candles_from_close_prices\nimport pytest\nfrom .data.test_candles_indicators import *\n\nmatypes = 39\n\n\ndef test_acosc():\n    candles = np.array(test_candles_19)\n    single = ta.acosc(candles)\n    seq = ta.acosc(candles, sequential=True)\n\n    assert type(single).__name__ == 'AC'\n    assert round(single.osc, 2) == -21.97\n    assert round(single.change, 2) == -9.22\n\n    assert seq.osc[-1] == single.osc\n    assert len(seq.osc) == len(candles)\n\n\ndef test_ad():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.ad(candles)\n    seq = ta.ad(candles, sequential=True)\n    assert round(single, 0) == 6346031\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_adosc():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.adosc(candles, fast_period=3, slow_period=10)\n    seq = ta.adosc(candles, fast_period=3, slow_period=10, sequential=True)\n\n    assert round(single / 1000000, 3) == -1.122\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_adx():\n    candles = np.array(test_candles_10)\n\n    single = ta.adx(candles)\n    seq = ta.adx(candles, sequential=True)\n\n    assert round(single) == 26\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_adxr():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.adxr(candles, period=14)\n    seq = ta.adxr(candles, period=14, sequential=True)\n\n    assert round(single, 0) == 29\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_alligator():\n    candles = np.array(test_candles_19)\n    single = ta.alligator(candles)\n    seq = ta.alligator(candles, sequential=True)\n\n    assert type(single).__name__ == 'AG'\n    assert round(single.teeth, 0) == 236\n    assert round(single.jaw, 0) == 233\n    assert round(single.lips, 0) == 224\n\n    assert seq.teeth[-1] == single.teeth\n    assert len(seq.teeth) == len(candles)\n\n\ndef test_alma():\n    candles = np.array(test_candles_19)\n    single = ta.alma(candles)\n    seq = ta.alma(candles, sequential=True)\n\n    assert round(single, 2) == 179.17\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_ao():\n    candles = np.array(test_candles_19)\n    single = ta.ao(candles)\n    seq = ta.ao(candles, sequential=True)\n\n    assert round(single.osc, 0) == -46\n    assert len(seq[-1]) == len(candles)\n    assert seq.osc[-1] == single.osc\n\n\ndef test_apo():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.apo(candles, fast_period=12, slow_period=26, matype=1)\n    seq = ta.apo(candles, fast_period=12, slow_period=26, matype=1, sequential=True)\n\n    assert round(single, 2) == -15.32\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_aroon():\n    candles = np.array(test_candles_19)\n\n    aroon = ta.aroon(candles, period=14)\n    assert type(aroon).__name__ == 'AROON'\n    assert round(aroon.down, 2) == 100\n    assert round(aroon.up, 2) == 64.29\n\n    seq_aroon = ta.aroon(candles, period=14, sequential=True)\n    assert seq_aroon.down[-1] == aroon.down\n    assert len(seq_aroon.down) == len(candles)\n    assert len(seq_aroon.up) == len(candles)\n\n\ndef test_aroon_osc():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.aroonosc(candles, period=14)\n    seq = ta.aroonosc(candles, period=14, sequential=True)\n\n    assert round(single, 2) == -35.71\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_atr():\n    candles = np.array(test_candles_2)\n\n    single = ta.atr(candles)\n    seq = ta.atr(candles, sequential=True)\n\n    assert round(single, 1) == 2.8\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_avgprice():\n    candles = np.array(test_candles_19)\n\n    single = ta.avgprice(candles)\n    seq = ta.avgprice(candles, sequential=True)\n\n    assert round(single, 1) == 149.8\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_bandpass():\n    candles = np.array(test_candles_19)\n\n    bp = ta.bandpass(candles)\n    assert type(bp).__name__ == 'BandPass'\n    assert round(bp.bp, 2) == -7.56\n    assert round(bp.bp_normalized, 2) == -0.29\n    assert bp.signal == 1\n    assert round(bp.trigger, 2) == -0.27\n\n    seq_bp = ta.bandpass(candles, sequential=True)\n    assert seq_bp.bp[-1] == bp.bp\n    assert len(seq_bp.bp) == len(candles)\n    assert len(seq_bp.bp_normalized) == len(candles)\n    assert len(seq_bp.signal) == len(candles)\n    assert len(seq_bp.trigger) == len(candles)\n\n\ndef test_beta():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_sol)\n    benchmark_candles = np.array(test_candles_sol)\n\n    single = ta.beta(candles, benchmark_candles)\n    seq = ta.beta(candles, benchmark_candles, sequential=True)\n\n    assert round(single, 2) == 1.\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_bollinger_bands():\n    candles = np.array(test_candles_11)\n\n    bb = ta.bollinger_bands(candles)\n    u, m, l = bb\n    assert type(bb).__name__ == 'BollingerBands'\n    assert round(u, 1) == 145.8\n    assert round(m, 1) == 141.2\n    assert round(l, 1) == 136.7\n\n    seq_bb = ta.bollinger_bands(candles, sequential=True)\n    assert seq_bb.upperband[-1] == u\n    assert len(seq_bb.upperband) == len(candles)\n    assert len(seq_bb.middleband) == len(candles)\n    assert len(seq_bb.lowerband) == len(candles)\n\n\ndef test_bollinger_bands_width():\n    candles = np.array(test_candles_12)\n\n    single = ta.bollinger_bands_width(candles)\n    seq = ta.bollinger_bands_width(candles, sequential=True)\n\n    assert round(single, 4) == 0.0771\n    assert len(seq) == len(candles)\n    assert round(seq[-1], 4) == round(single, 4)\n\n\ndef test_bop():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.bop(candles)\n    seq = ta.bop(candles, sequential=True)\n\n    assert round(single, 2) == -0.92\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_cc():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.cc(candles)\n    seq = ta.cc(candles, sequential=True)\n\n    assert round(single, 0) == -41\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_cci():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.cci(candles, period=14)\n    seq = ta.cci(candles, period=14, sequential=True)\n\n    assert round(single, 2) == -285.29\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_cfo():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.cfo(candles)\n    seq = ta.cfo(candles, sequential=True)\n\n    assert round(single, 2) == -66.53\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_cg():\n    candles = np.array(test_candles_19)\n    single = ta.cg(candles)\n    seq = ta.cg(candles, sequential=True)\n    assert round(single, 2) == -5.37\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_chande():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single_long = ta.chande(candles)\n    seq_long = ta.chande(candles, sequential=True)\n\n    single_short = ta.chande(candles, direction=\"short\")\n    seq_short = ta.chande(candles, direction=\"short\", sequential=True)\n\n    assert round(single_long, 0) == 213\n    assert round(single_short, 0) == 165\n\n    assert len(seq_short) == len(candles)\n    assert len(seq_long) == len(candles)\n    assert seq_long[-1] == single_long\n    assert seq_short[-1] == single_short\n\n\ndef test_chop():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.chop(candles)\n    seq = ta.chop(candles, sequential=True)\n\n    assert round(single, 2) == 28.82\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_cksp():\n    candles = np.array(test_candles_19)\n\n    single = ta.cksp(candles)\n    assert type(single).__name__ == 'CKSP'\n    assert round(single.long, 2) == 247.62\n    assert round(single.short, 2) == 127.89\n\n    seq = ta.cksp(candles, sequential=True)\n    assert seq.long[-1] == single.long\n    assert seq.short[-1] == single.short\n    assert len(seq.long) == len(candles)\n    assert len(seq.short) == len(candles)\n\n\ndef test_cmo():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.cmo(candles, period=9)\n    seq = ta.cmo(candles, period=9, sequential=True)\n\n    assert round(single, 0) == -70\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_correl():\n    candles = np.array(test_candles_19)\n\n    single = ta.correl(candles)\n    seq = ta.correl(candles, sequential=True)\n\n    assert round(single, 2) == 0.58\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_correlation_cycle():\n    candles = np.array(test_candles_19)\n\n    single = ta.correlation_cycle(candles)\n    assert type(single).__name__ == 'CC'\n    assert round(single.real, 2) == 0.23\n    assert round(single.imag, 2) == 0.38\n    assert round(single.angle, 2) == -55.87\n    assert round(single.state, 2) == -1\n\n    seq = ta.correlation_cycle(candles, sequential=True)\n    assert seq.real[-1] == single.real\n    assert seq.imag[-1] == single.imag\n    assert seq.angle[-1] == single.angle\n    assert seq.state[-1] == single.state\n    assert len(seq.real) == len(candles)\n    assert len(seq.imag) == len(candles)\n    assert len(seq.angle) == len(candles)\n    assert len(seq.state) == len(candles)\n\n\ndef test_cvi():\n    candles = np.array(test_candles_19)\n\n    single = ta.cvi(candles)\n    seq = ta.cvi(candles, sequential=True)\n\n    assert round(single, 2) == 196.8\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_cwma():\n    candles = np.array(test_candles_19)\n\n    single = ta.cwma(candles)\n    seq = ta.cwma(candles, sequential=True)\n\n    assert round(single, 2) == 182.8\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_damiani_volatmeter():\n    candles = np.array(test_candles_19)\n\n    single = ta.damiani_volatmeter(candles)\n    assert type(single).__name__ == 'DamianiVolatmeter'\n    assert round(single.vol, 2) == 1.39\n    assert round(single.anti, 2) == 0.93\n\n    seq = ta.damiani_volatmeter(candles, sequential=True)\n    assert seq.vol[-1] == single.vol\n    assert seq.anti[-1] == single.anti\n    assert len(seq.vol) == len(candles)\n    assert len(seq.anti) == len(candles)\n\n\ndef test_dec_osc():\n    candles = np.array(test_candles_19)\n    single = ta.dec_osc(candles)\n    seq = ta.dec_osc(candles, sequential=True)\n    assert round(single, 0) == -20\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_decycler():\n    candles = np.array(test_candles_19)\n    single = ta.decycler(candles)\n    seq = ta.decycler(candles, sequential=True)\n    assert round(single, 0) == 233\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_dema():\n    candles = np.array(test_candles_18)\n\n    single = ta.dema(candles, 9)\n    seq = ta.dema(candles, 9, sequential=True)\n\n    assert round(single, 0) == 165\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_devstop():\n    candles = np.array(test_candles_19)\n\n    single = ta.devstop(candles)\n    seq = ta.devstop(candles, sequential=True)\n\n    assert round(single, 0) == 248.0\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_di():\n    candles = np.array(test_candles_19)\n\n    single = ta.di(candles, period=14)\n    assert type(single).__name__ == 'DI'\n    assert round(single.plus, 2) == 10.80\n    assert round(single.minus, 1) == 45.3\n\n    seq = ta.di(candles, period=14, sequential=True)\n    assert seq.plus[-1] == single.plus\n    assert seq.minus[-1] == single.minus\n    assert len(seq.plus) == len(candles)\n    assert len(seq.minus) == len(candles)\n\n\ndef test_dm():\n    candles = np.array(test_candles_19)\n\n    single = ta.dm(candles, period=14)\n    assert type(single).__name__ == 'DM'\n    assert round(single.plus, 2) == 36.78\n    assert round(single.minus, 1) == 154.1\n\n    seq = ta.dm(candles, period=14, sequential=True)\n    assert seq.plus[-1] == single.plus\n    assert seq.minus[-1] == single.minus\n    assert len(seq.plus) == len(candles)\n    assert len(seq.minus) == len(candles)\n\n\ndef test_donchian():\n    candles = np.array(test_candles_19)\n\n    single = ta.donchian(candles, period=20)\n    seq = ta.donchian(candles, period=20, sequential=True)\n\n    assert type(single).__name__ == 'DonchianChannel'\n    assert round(single.upperband, 2) == 277.20\n    assert round(single.middleband, 2) == 189.20\n    assert round(single.lowerband, 2) == 101.20\n\n    assert seq.middleband[-1] == single.middleband\n    assert len(seq.upperband) == len(candles)\n    assert len(seq.middleband) == len(candles)\n    assert len(seq.lowerband) == len(candles)\n\n\ndef test_dpo():\n    candles = np.array(test_candles_18)\n\n    single = ta.dpo(candles)\n    seq = ta.dpo(candles, sequential=True)\n\n    assert round(single, 0) == 22\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_dti():\n    candles = np.array(test_candles_19)\n\n    single = ta.dti(candles)\n    seq = ta.dti(candles, sequential=True)\n\n    assert round(single, 2) == -32.6\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_dx():\n    candles = np.array(test_candles_18)\n\n    single = ta.dx(candles)\n    seq = ta.dx(candles, sequential=True)\n\n    assert round(single.adx, 2) == 83.12\n    assert round(single.plusDI, 2) == 5.59\n    assert round(single.minusDI, 2) == 58.93\n    assert len(seq.adx) == len(candles)\n    assert len(seq.plusDI) == len(candles)\n    assert len(seq.minusDI) == len(candles)\n    assert seq.adx[-1] == single.adx\n    assert seq.plusDI[-1] == single.plusDI\n    assert seq.minusDI[-1] == single.minusDI\n\n\ndef test_edcf():\n    candles = np.array(test_candles_19)\n    single = ta.edcf(candles)\n    seq = ta.edcf(candles, sequential=True)\n\n    assert round(single, 2) == 197.49\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_efi():\n    candles = np.array(test_candles_19)\n    single = ta.efi(candles)\n    seq = ta.efi(candles, sequential=True)\n    assert round(single, 0) == -51628073\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_ema():\n    close_prices = [\n        204.23, 205.01, 196.9, 197.33, 198.7, 199.86, 202.23, 200.3, 212.3, 210.82603059, 220.84, 218.99,\n        212.71, 211.01, 213.19, 212.99724894,\n        212.67760477, 209.85, 187.2, 184.15, 176.99, 175.9, 178.99, 150.96, 133.85, 138.18, 126.32, 125.23,\n        114.79,\n        118.73, 110.74409879, 111.72, 124.04, 118.52, 113.64, 119.65, 117.11129288, 109.23, 110.77, 102.65,\n        91.99\n    ]\n    candles = candles_from_close_prices(close_prices)\n\n    single = ta.ema(candles, 8)\n    seq = ta.ema(candles, 8, sequential=True)\n\n    assert round(single, 3) == 108.546\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n    assert np.isnan(ta.ema(candles, 400))\n\n\ndef test_emd():\n    candles = np.array(test_candles_19)\n\n    single = ta.emd(candles)\n    seq = ta.emd(candles, sequential=True)\n\n    assert type(single).__name__ == 'EMD'\n    assert round(single.middleband, 2) == 3.12\n    assert round(single.upperband, 2) == 1.21\n    assert round(single.lowerband, 2) == -0.28\n\n    assert seq.middleband[-1] == single.middleband\n    assert seq.upperband[-1] == single.upperband\n    assert seq.lowerband[-1] == single.lowerband\n    assert len(seq.middleband) == len(candles)\n    assert len(seq.upperband) == len(candles)\n    assert len(seq.lowerband) == len(candles)\n\n\ndef test_emv():\n    candles = np.array(test_candles_19)\n    single = ta.emv(candles)\n    seq = ta.emv(candles, sequential=True)\n    assert round(single, 0) == -1\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_epma():\n    candles = np.array(test_candles_19)\n\n    single = ta.epma(candles)\n    seq = ta.epma(candles, sequential=True)\n\n    assert round(single, 2) == 175.31\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_er():\n    candles = np.array(test_candles_19)\n    single = ta.er(candles)\n    seq = ta.er(candles, sequential=True)\n    assert round(single, 2) == 0.02\n    assert len(seq) == len(candles)\n    assert round(seq[-1], 2) == round(single, 2)\n\n\ndef test_eri():\n    candles = np.array(test_candles_19)\n    single = ta.eri(candles)\n    seq = ta.eri(candles, sequential=True)\n\n    assert type(single).__name__ == 'ERI'\n    assert round(single.bull, 2) == -7.14\n    assert round(single.bear, 2) == -101.49\n\n    assert seq.bull[-1] == single.bull\n    assert len(seq.bull) == len(candles)\n    assert len(seq.bear) == len(candles)\n\n\ndef test_fisher():\n    candles = np.array(test_candles_19)\n    single = ta.fisher(candles, period=9)\n    seq = ta.fisher(candles, period=9, sequential=True)\n\n    assert type(single).__name__ == 'FisherTransform'\n    assert round(single.fisher, 2) == -1.77\n    assert round(single.signal, 2) == -1.31\n\n    assert seq.fisher[-1] == single.fisher\n    assert len(seq.fisher) == len(candles)\n    assert len(seq.signal) == len(candles)\n\n\ndef test_fosc():\n    candles = np.array(test_candles_19)\n    single = ta.fosc(candles)\n    seq = ta.fosc(candles, sequential=True)\n    assert round(single, 0) == -32\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_frama():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.frama(candles, window=10, SC=200, FC=10, )\n    seq = ta.frama(candles, window=10, SC=200, FC=10, sequential=True)\n\n    assert round(single, 0) == 219\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_fwma():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.fwma(candles)\n    seq = ta.fwma(candles, sequential=True)\n\n    assert round(single, 0) == 161\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_gator():\n    candles = np.array(test_candles_19)\n    single = ta.gatorosc(candles)\n    seq = ta.gatorosc(candles, sequential=True)\n\n    assert type(single).__name__ == 'GATOR'\n    assert round(single.upper, 2) == 2.39\n    assert round(single.upper_change, 2) == 0.98\n    assert round(single.lower, 2) == -13.44\n    assert round(single.lower_change, 2) == 5.06\n\n    assert seq.upper[-1] == single.upper\n    assert len(seq.upper) == len(candles)\n\n\ndef test_gauss():\n    candles = np.array(test_candles_19)\n    single = ta.gauss(candles)\n    seq = ta.gauss(candles, sequential=True)\n    assert round(single, 0) == 190\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_heikin_ashi_candles():\n    candles = np.array(test_candles_19)\n    open_single, close_single, high_single, low_single = ta.heikin_ashi_candles(candles)\n    open_seq, close_seq, high_seq, low_seq = ta.heikin_ashi_candles(candles, sequential=True)\n    # SINGLES\n    assert round(open_single, 2) == 197.68\n    assert round(close_single, 2) == 149.8\n    assert round(high_single, 2) == 197.68\n    assert round(low_single, 2) == 101.2\n    # SEQ\n    assert len(open_seq) == len(candles)\n    assert open_seq[-1] == open_single\n    assert close_seq[-1] == close_single\n    assert high_seq[-1] == high_single\n    assert low_seq[-1] == low_single\n\n\ndef test_high_pass():\n    candles = np.array(test_candles_19)\n    single = ta.high_pass(candles)\n    seq = ta.high_pass(candles, sequential=True)\n    assert round(single, 0) == -106\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_high_pass_2_pole():\n    candles = np.array(test_candles_19)\n    single = ta.high_pass_2_pole(candles)\n    seq = ta.high_pass_2_pole(candles, sequential=True)\n    assert round(single, 0) == -101\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_hma():\n    candles = np.array(test_candles_19)\n    single = ta.hma(candles)\n    seq = ta.hma(candles, sequential=True)\n\n    assert round(single, 0) == 134\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\ndef test_hurst():\n    candles = np.array(test_candles_19)\n\n    try:\n        import numba\n        no_numba = False\n    except ImportError:\n        no_numba = True\n\n    if not no_numba:\n        rs = ta.hurst_exponent(candles, method=0)\n        assert round(rs, 2) == 0.51\n\n    dma = ta.hurst_exponent(candles, method=1)\n    dsod = ta.hurst_exponent(candles, method=2)\n\n    assert round(dma, 2) == 0.26\n    assert round(dsod, 2) == 0.5\n\n\ndef test_hwma():\n    candles = np.array(test_candles_19)\n    single = ta.hwma(candles)\n    seq = ta.hwma(candles, sequential=True)\n\n    assert round(single, 2) == 159.8\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_ichimoku_cloud():\n    candles = np.array(test_candles_15)\n\n    ic = ta.ichimoku_cloud(candles)\n\n    current_conversion_line, current_base_line, span_a, span_b = ic\n\n    assert type(ic).__name__ == 'IchimokuCloud'\n\n    assert (current_conversion_line, current_base_line, span_a,\n            span_b) == (8861.59, 8861.59, 8466.385, 8217.45)\n\n\ndef test_ichimoku_cloud_seq():\n    candles = np.array(test_candles_15)\n\n    conversion_line, base_line, span_a, span_b, lagging_line, future_span_a, future_span_b = ta.ichimoku_cloud_seq(\n        candles)\n    seq = ta.ichimoku_cloud_seq(candles, sequential=True)\n\n    assert type(seq).__name__ == 'IchimokuCloud'\n    assert (conversion_line, base_line, span_a, span_b, lagging_line, future_span_a, future_span_b) == (\n        seq.conversion_line[-1], seq.base_line[-1], seq.span_a[-1], seq.span_b[-1], seq.lagging_line[-1],\n        seq.future_span_a[-1], seq.future_span_b[-1])\n    assert (conversion_line, base_line, span_a, span_b, lagging_line, future_span_a, future_span_b) == (\n        8861.59, 8861.59, 8465.25, 8204.715, 8730.0, 8861.59, 8579.49)\n    assert len(seq.conversion_line) == len(candles)\n\n\ndef test_ift_rsi():\n    # use the same candles as dema_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.ift_rsi(candles)\n    seq = ta.ift_rsi(candles, sequential=True)\n\n    assert round(single, 2) == 0.89\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_itrend():\n    candles = np.array(test_candles_19)\n    single = ta.itrend(candles)\n    seq = ta.itrend(candles, sequential=True)\n\n    assert type(single).__name__ == 'ITREND'\n    assert round(single.it, 0) == 223\n    assert round(single.trigger, 0) == 182\n    assert single.signal == -1\n\n    assert seq.it[-1] == single.it\n    assert seq.signal[-1] == single.signal\n    assert seq.trigger[-1] == single.trigger\n    assert len(seq.it) == len(candles)\n\n\ndef test_jma():\n    # use the same candles as dema_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.jma(candles)\n    seq = ta.jma(candles, sequential=True)\n\n    assert round(single, 2) == 156.72\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_jsa():\n    # use the same candles as dema_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.jsa(candles)\n    seq = ta.jsa(candles, sequential=True)\n\n    assert round(single, 2) == 172.26\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_kama():\n    # use the same candles as dema_candles\n    candles = np.array(test_candles_18)\n\n    single = ta.kama(candles, 10)\n    seq = ta.kama(candles, 10, sequential=True)\n\n    assert round(single, 0) == 202\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_kaufmanstop():\n    # use the same candles as dema_candles\n    candles = np.array(test_candles_18)\n\n    single = ta.kaufmanstop(candles)\n    seq = ta.kaufmanstop(candles, sequential=True)\n\n    assert round(single, 0) == 57\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n    with pytest.raises(ValueError) as e:\n        ta.kaufmanstop(candles, matype=24)\n    assert str(e.value) == \"VWMA (matype 24) and VWAP (matype 29) cannot be used in kaufmanstop indicator.\"\n\n    with pytest.raises(ValueError) as e:\n        ta.kaufmanstop(candles, matype=29)\n    assert str(e.value) == \"VWMA (matype 24) and VWAP (matype 29) cannot be used in kaufmanstop indicator.\"\n\n    with pytest.raises(ValueError) as e:\n        ta.kaufmanstop(candles, matype=24, sequential=True)\n    assert str(e.value) == \"VWMA (matype 24) and VWAP (matype 29) cannot be used in kaufmanstop indicator.\"\n\n    with pytest.raises(ValueError) as e:\n        ta.kaufmanstop(candles, matype=29, sequential=True)\n    assert str(e.value) == \"VWMA (matype 24) and VWAP (matype 29) cannot be used in kaufmanstop indicator.\"\n\n\ndef test_kdj():\n    candles = np.array(test_candles_19)\n\n    kd = ta.kdj(candles)\n    k, d, j = kd\n    assert type(kd).__name__ == 'KDJ'\n    assert round(k, 1) == 13.3\n    assert round(d, 1) == 15.7\n    assert round(j, 1) == 8.6\n\n    seq_kd = ta.kdj(candles, sequential=True)\n    assert seq_kd.k[-1] == k\n    assert len(seq_kd.k) == len(candles)\n    assert len(seq_kd.d) == len(candles)\n    assert len(seq_kd.j) == len(candles)\n    with pytest.raises(ValueError) as e:\n        ta.kdj(candles, slowk_matype=24)\n    assert str(e.value) == \"VWMA (matype 24) and VWAP (matype 29) cannot be used in kdj indicator.\"\n\n    with pytest.raises(ValueError) as e:\n        ta.kdj(candles, slowk_matype=29)\n    assert str(e.value) == \"VWMA (matype 24) and VWAP (matype 29) cannot be used in kdj indicator.\"\n\n    with pytest.raises(ValueError) as e:\n        ta.kdj(candles, slowd_matype=24)\n    assert str(e.value) == \"VWMA (matype 24) and VWAP (matype 29) cannot be used in kdj indicator.\"\n\n    with pytest.raises(ValueError) as e:\n        ta.kdj(candles, slowd_matype=29)\n    assert str(e.value) == \"VWMA (matype 24) and VWAP (matype 29) cannot be used in kdj indicator.\"\n\n    with pytest.raises(ValueError) as e:\n        ta.kdj(candles, slowk_matype=24, sequential=True)\n    assert str(e.value) == \"VWMA (matype 24) and VWAP (matype 29) cannot be used in kdj indicator.\"\n\n    with pytest.raises(ValueError) as e:\n        ta.kdj(candles, slowk_matype=29, sequential=True)\n    assert str(e.value) == \"VWMA (matype 24) and VWAP (matype 29) cannot be used in kdj indicator.\"\n\n    with pytest.raises(ValueError) as e:\n        ta.kdj(candles, slowd_matype=24, sequential=True)\n    assert str(e.value) == \"VWMA (matype 24) and VWAP (matype 29) cannot be used in kdj indicator.\"\n\n    with pytest.raises(ValueError) as e:\n        ta.kdj(candles, slowd_matype=29, sequential=True)\n    assert str(e.value) == \"VWMA (matype 24) and VWAP (matype 29) cannot be used in kdj indicator.\"\n\n\ndef test_kelner_channels():\n    candles = np.array(test_candles_13)\n\n    kc = ta.keltner(candles)\n    u, m, l = kc\n    assert type(kc).__name__ == 'KeltnerChannel'\n    assert round(u, 1) == 145.0\n    assert round(m, 1) == 139.7\n    assert round(l, 1) == 134.4\n\n    seq_kc = ta.keltner(candles, sequential=True)\n    assert seq_kc.upperband[-1] == u\n    assert len(seq_kc.upperband) == len(candles)\n    assert len(seq_kc.middleband) == len(candles)\n    assert len(seq_kc.lowerband) == len(candles)\n\n\ndef test_kst():\n    candles = np.array(test_candles_19)\n\n    single = ta.kst(candles)\n    seq = ta.kst(candles, sequential=True)\n\n    assert type(single).__name__ == 'KST'\n    assert round(single.line, 2) == -93.38\n    assert round(single.signal, 2) == 31.1\n\n    assert seq.line[-1] == single.line\n    assert seq.signal[-1] == single.signal\n    assert len(seq.line) == len(candles)\n    assert len(seq.signal) == len(candles)\n\n\ndef test_kurtosis():\n    candles = np.array(test_candles_19)\n\n    single = ta.kurtosis(candles)\n    seq = ta.kurtosis(candles, sequential=True)\n\n    assert round(single, 2) == -0.22\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_kvo():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.kvo(candles)\n    seq = ta.kvo(candles, sequential=True)\n\n    assert round(single / 10000000, 2) == -0.88\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_linearreg():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.linearreg(candles)\n    seq = ta.linearreg(candles, sequential=True)\n\n    assert round(single, 2) == 179.56\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_linearreg_angle():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.linearreg_angle(candles)\n    seq = ta.linearreg_angle(candles, sequential=True)\n\n    assert round(single, 2) == -78.42\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_linearreg_intercept():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.linearreg_intercept(candles)\n    seq = ta.linearreg_intercept(candles, sequential=True)\n\n    assert round(single, 2) == 242.98\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_linearreg_slope():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.linearreg_slope(candles)\n    seq = ta.linearreg_slope(candles, sequential=True)\n\n    assert round(single, 2) == -4.88\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_lrsi():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.lrsi(candles)\n    seq = ta.lrsi(candles, sequential=True)\n\n    assert round(single, 2) == 0.1\n    assert round(seq[-2], 2) == 0.04\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_ma():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n    single = ta.ma(candles, matype=9)\n    seq = ta.ma(candles, matype=9, sequential=True)\n\n    seq_average = ta.ma(seq, matype=9, sequential=True)\n\n    assert round(single, 2) == 166.99\n    assert round(seq[-2], 2) == 203.56\n    assert round(seq_average[-2], 2) == 212.12\n    assert len(seq) == len(candles)\n    assert len(seq_average) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_maaq():\n    candles = np.array(test_candles_19)\n\n    single = ta.maaq(candles)\n    seq = ta.maaq(candles, sequential=True)\n\n    assert round(single, 2) == 205.95\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_mab():\n    candles = np.array(test_candles_11)\n\n    bb = ta.mab(candles)\n    u, m, l = bb\n    assert type(bb).__name__ == 'MAB'\n    assert round(u, 1) == 142.8\n    assert round(m, 1) == 140.0\n    assert round(l, 1) == 130.1\n\n    seq = ta.mab(candles, sequential=True)\n    assert seq.upperband[-1] == u\n    assert len(seq.upperband) == len(candles)\n    assert len(seq.middleband) == len(candles)\n    assert len(seq.lowerband) == len(candles)\n\n\ndef test_macd():\n    candles = np.array(test_candles_19)\n\n    single = ta.macd(candles, fast_period=12, slow_period=26, signal_period=9)\n    seq = ta.macd(candles, fast_period=12, slow_period=26, signal_period=9, sequential=True)\n\n    assert type(single).__name__ == 'MACD'\n    assert round(single.macd, 2) == -15.32\n    assert round(single.signal, 2) == -4.10\n    assert round(single.hist, 2) == -11.22\n\n    assert seq.macd[-1] == single.macd\n    assert len(seq.macd) == len(candles)\n    assert len(seq.signal) == len(candles)\n    assert len(seq.hist) == len(candles)\n\ndef test_mama():\n    candles = np.array(test_candles_19)\n\n    mama = ta.mama(candles, 0.5, 0.05)\n    assert type(mama).__name__ == 'MAMA'\n    assert round(mama.mama, 2) == 206.78\n    assert round(mama.fama, 2) == 230.26\n\n    seq_mama = ta.mama(candles, 0.5, 0.05, sequential=True)\n    assert seq_mama.mama[-1] == mama.mama\n    assert len(seq_mama.mama) == len(candles)\n    assert len(seq_mama.fama) == len(candles)\n\n\ndef test_marketfi():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.marketfi(candles)\n    seq = ta.marketfi(candles, sequential=True)\n\n    assert round(single * 100000, 2) == 2.47\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_mass():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.mass(candles)\n    seq = ta.mass(candles, sequential=True)\n\n    assert round(single, 2) == 5.76\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_mcginley_dynamic():\n    candles = np.array(test_candles_19)\n\n    single = ta.mcginley_dynamic(candles)\n    seq = ta.mcginley_dynamic(candles, sequential=True)\n    assert round(single, 2) == 107.82\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_mean_ad():\n    candles = np.array(test_candles_19)\n\n    single = ta.mean_ad(candles)\n    seq = ta.mean_ad(candles, sequential=True)\n\n    assert round(single, 2) == 23.82\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_median_ad():\n    candles = np.array(test_candles_19)\n\n    single = ta.median_ad(candles)\n    seq = ta.median_ad(candles, sequential=True)\n\n    assert round(single, 2) == 6.86\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_medprice():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.medprice(candles)\n    seq = ta.medprice(candles, sequential=True)\n\n    assert round(single, 1) == 148.4\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_mfi():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.mfi(candles, period=9)\n    seq = ta.mfi(candles, period=9, sequential=True)\n\n    assert round(single, 1) == 31.2\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_midpoint():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.midpoint(candles)\n    seq = ta.midpoint(candles, sequential=True)\n\n    assert round(single, 1) == 176.4\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_midprice():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.midprice(candles)\n    seq = ta.midprice(candles, sequential=True)\n\n    assert round(single, 1) == 176.6\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_minmax():\n    candles = np.array(test_candles_19)\n    single = ta.minmax(candles)\n    seq = ta.minmax(candles, sequential=True)\n\n    assert type(single).__name__ == 'EXTREMA'\n    assert round(seq.is_max[-6], 2) == 251.93\n    assert round(seq.is_min[-15], 2) == 210\n    assert round(single.last_max, 2) == 251.93\n    assert round(single.last_min, 2) == 210\n\n    assert seq.last_max[-1] == single.last_max\n    assert seq.last_min[-1] == single.last_min\n    assert len(seq.is_min) == len(candles)\n\n\ndef test_mom():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.mom(candles, period=9)\n    seq = ta.mom(candles, period=9, sequential=True)\n\n    assert round(single, 2) == -116.09\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_mwdx():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.mwdx(candles)\n    seq = ta.mwdx(candles, sequential=True)\n\n    assert round(single, 2) == 192.11\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_natr():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.natr(candles, period=14)\n    seq = ta.natr(candles, period=14, sequential=True)\n\n    assert round(single, 2) == 22.55\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_nma():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.nma(candles)\n    seq = ta.nma(candles, sequential=True)\n\n    assert round(single, 2) == 185.39\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_nvi():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.nvi(candles)\n    seq = ta.nvi(candles, sequential=True)\n\n    assert round(single, 2) == 722.58\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_obv():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.obv(candles)\n    seq = ta.obv(candles, sequential=True)\n\n    assert round(single / 1000000, 0) == -6\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_pfe():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.pfe(candles)\n    seq = ta.pfe(candles, sequential=True)\n\n    assert round(single, 2) == -211.85\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_pivot():\n    candles = np.array(test_candles_19)\n    single = ta.pivot(candles, mode=0)\n    seq = ta.pivot(candles, mode=0, sequential=True)\n\n    assert type(single).__name__ == 'PIVOT'\n\n    assert seq.r1[-1] == single.r1\n    assert len(seq.r1) == len(candles)\n    assert len(seq.r2) == len(candles)\n    assert len(seq.r3) == len(candles)\n    assert len(seq.r4) == len(candles)\n    assert len(seq.pp) == len(candles)\n    assert len(seq.s1) == len(candles)\n    assert len(seq.s2) == len(candles)\n    assert len(seq.s3) == len(candles)\n    assert len(seq.s4) == len(candles)\n\n\ndef test_pivot1():\n    candles = np.array(test_candles_19)\n    single = ta.pivot(candles, mode=1)\n    seq = ta.pivot(candles, mode=1, sequential=True)\n\n    assert type(single).__name__ == 'PIVOT'\n\n    assert seq.r1[-1] == single.r1\n    assert len(seq.r1) == len(candles)\n    assert len(seq.r2) == len(candles)\n    assert len(seq.r3) == len(candles)\n    assert len(seq.r4) == len(candles)\n    assert len(seq.pp) == len(candles)\n    assert len(seq.s1) == len(candles)\n    assert len(seq.s2) == len(candles)\n    assert len(seq.s3) == len(candles)\n    assert len(seq.s4) == len(candles)\n\n\ndef test_pivot2():\n    candles = np.array(test_candles_19)\n    single = ta.pivot(candles, mode=2)\n    seq = ta.pivot(candles, mode=2, sequential=True)\n\n    assert type(single).__name__ == 'PIVOT'\n\n    assert seq.r1[-1] == single.r1\n    assert len(seq.r1) == len(candles)\n    assert len(seq.r2) == len(candles)\n    assert len(seq.r3) == len(candles)\n    assert len(seq.r4) == len(candles)\n    assert len(seq.pp) == len(candles)\n    assert len(seq.s1) == len(candles)\n    assert len(seq.s2) == len(candles)\n    assert len(seq.s3) == len(candles)\n    assert len(seq.s4) == len(candles)\n\n\ndef test_pivot3():\n    candles = np.array(test_candles_19)\n    single = ta.pivot(candles, mode=3)\n    seq = ta.pivot(candles, mode=3, sequential=True)\n\n    assert type(single).__name__ == 'PIVOT'\n\n    assert seq.r1[-1] == single.r1\n    assert len(seq.r1) == len(candles)\n    assert len(seq.r2) == len(candles)\n    assert len(seq.r3) == len(candles)\n    assert len(seq.r4) == len(candles)\n    assert len(seq.pp) == len(candles)\n    assert len(seq.s1) == len(candles)\n    assert len(seq.s2) == len(candles)\n    assert len(seq.s3) == len(candles)\n    assert len(seq.s4) == len(candles)\n\n\ndef test_pivot4():\n    candles = np.array(test_candles_19)\n    single = ta.pivot(candles, mode=4)\n    seq = ta.pivot(candles, mode=4, sequential=True)\n\n    assert type(single).__name__ == 'PIVOT'\n\n    assert seq.r1[-1] == single.r1\n    assert len(seq.r1) == len(candles)\n    assert len(seq.r2) == len(candles)\n    assert len(seq.r3) == len(candles)\n    assert len(seq.r4) == len(candles)\n    assert len(seq.pp) == len(candles)\n    assert len(seq.s1) == len(candles)\n    assert len(seq.s2) == len(candles)\n    assert len(seq.s3) == len(candles)\n    assert len(seq.s4) == len(candles)\n\n\ndef test_pma():\n    candles = np.array(test_candles_19)\n\n    single = ta.pma(candles)\n    assert type(single).__name__ == 'PMA'\n    assert round(single.predict, 2) == 171.05\n    assert round(single.trigger, 2) == 190.91\n\n    seq = ta.pma(candles, sequential=True)\n    assert seq.predict[-1] == single.predict\n    assert seq.trigger[-1] == single.trigger\n    assert len(seq.predict) == len(candles)\n    assert len(seq.trigger) == len(candles)\n\n\ndef test_ppo():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.ppo(candles, fast_period=12, slow_period=26, matype=1)\n    seq = ta.ppo(candles, fast_period=12, slow_period=26, matype=1, sequential=True)\n\n    assert round(single, 0) == -7\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_pvi():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.pvi(candles)\n    seq = ta.pvi(candles, sequential=True)\n\n    assert round(single, 0) == 661\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_pwma():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.pwma(candles)\n    seq = ta.pwma(candles, sequential=True)\n\n    assert round(single, 2) == 193.82\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_qstick():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.qstick(candles)\n    seq = ta.qstick(candles, sequential=True)\n\n    assert round(single, 0) == -26.0\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_reflex():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.reflex(candles)\n    seq = ta.reflex(candles, sequential=True)\n\n    assert round(single, 2) == -0.55\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_rma():\n    # use the same candles as wavetrend, Uses 'high' series instead of close\n    candles = np.array(wavetrend_candles)\n\n    single = ta.rma(candles)\n    seq = ta.rma(candles, sequential=True)\n\n    assert round(single, 2) == 31887.21\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_roc():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.roc(candles, period=14)\n    seq = ta.roc(candles, period=14, sequential=True)\n\n    assert round(single, 2) == -52.67\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_rocp():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.rocp(candles, period=14)\n    seq = ta.rocp(candles, period=14, sequential=True)\n\n    assert round(single, 2) == -0.53\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_rocr():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.rocr(candles, period=14)\n    seq = ta.rocr(candles, period=14, sequential=True)\n\n    assert round(single, 2) == 0.47\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_rocr100():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.rocr100(candles, period=14)\n    seq = ta.rocr100(candles, period=14, sequential=True)\n\n    assert round(single, 2) == 47.33\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_roofing():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.roofing(candles)\n    seq = ta.roofing(candles, sequential=True)\n\n    assert round(single, 0) == -36\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_rsi():\n    candles = np.array(test_candles_14)\n\n    single = ta.rsi(candles)\n    seq = ta.rsi(candles, sequential=True)\n\n    assert round(single, 2) == 57.84\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_rsmk():\n    candles = np.array(test_candles_4)\n    candles2 = np.array(test_candles_19)\n\n    rsmk = ta.rsmk(candles, candles2)\n    assert type(rsmk).__name__ == 'RSMK'\n    assert round(rsmk.indicator, 2) == 2.1\n    assert round(rsmk.signal, 2) == -31.56\n\n    rsmk_seq = ta.rsmk(candles, candles2, sequential=True)\n    assert rsmk_seq.indicator[-1] == rsmk.indicator\n    assert rsmk_seq.signal[-1] == rsmk.signal\n    assert len(rsmk_seq.indicator) == len(candles)\n    assert len(rsmk_seq.signal) == len(candles)\n\n\ndef test_rsx():\n    candles = np.array(test_candles_19)\n\n    single = ta.rsx(candles)\n    seq = ta.rsx(candles, sequential=True)\n\n    assert round(single, 2) == 27.81\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_rvi():\n    candles = np.array(test_candles_19)\n\n    single = ta.rvi(candles)\n    seq = ta.rvi(candles, sequential=True)\n\n    assert round(single, 2) == 27.99\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n    with pytest.raises(ValueError) as e:\n        ta.rvi(candles, matype=24)\n    assert str(e.value) == \"VWMA (matype 24) and VWAP (matype 29) cannot be used in rvi indicator.\"\n\n    with pytest.raises(ValueError) as e:\n        ta.rvi(candles, matype=29)\n    assert str(e.value) == \"VWMA (matype 24) and VWAP (matype 29) cannot be used in rvi indicator.\"\n\n    with pytest.raises(ValueError) as e:\n        ta.rvi(candles, matype=24, sequential=True)\n    assert str(e.value) == \"VWMA (matype 24) and VWAP (matype 29) cannot be used in rvi indicator.\"\n\n    with pytest.raises(ValueError) as e:\n        ta.rvi(candles, matype=29, sequential=True)\n    assert str(e.value) == \"VWMA (matype 24) and VWAP (matype 29) cannot be used in rvi indicator.\"\n\n\ndef test_safezonestop():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.safezonestop(candles)\n    seq = ta.safezonestop(candles, sequential=True)\n\n    assert round(single, 2) == -39.15\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_sar():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.sar(candles, acceleration=0.02, maximum=0.2)\n    seq = ta.sar(candles, acceleration=0.02, maximum=0.2, sequential=True)\n\n    assert round(single, 2) == 243.15\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\n\ndef test_sinwma():\n    candles = np.array(test_candles_19)\n\n    single = ta.sinwma(candles)\n    seq = ta.sinwma(candles, sequential=True)\n\n    assert round(single, 2) == 218.86\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_skew():\n    candles = np.array(test_candles_19)\n\n    single = ta.skew(candles)\n    seq = ta.skew(candles, sequential=True)\n\n    assert round(single, 2) == -1.05\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_sma():\n    close_prices = [22.27, 22.19, 22.08, 22.17, 22.18, 22.13, 22.23, 22.43, 22.24, 22.29]\n    candles = candles_from_close_prices(close_prices)\n\n    single = ta.sma(candles, 10)\n    seq = ta.sma(candles, 10, sequential=True)\n\n    assert round(single, 2) == 22.22\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n    assert np.isnan(ta.sma(candles, 30))\n\n\ndef test_smma():\n    candles = np.array(test_candles_19)\n    single = ta.smma(candles)\n    seq = ta.smma(candles, sequential=True)\n\n    assert round(single, 0) == 192\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_sqwma():\n    candles = np.array(test_candles_19)\n    single = ta.sqwma(candles)\n    seq = ta.sqwma(candles, sequential=True)\n\n    assert round(single, 2) == 191.02\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_srsi():\n    candles = np.array(test_candles_4)\n    period = 14\n\n    srsi = ta.srsi(candles)\n    k, d = srsi\n    assert type(srsi).__name__ == 'StochasticRSI'\n    assert round(k, 2) == 21.36\n    assert round(d, 2) == 12.4\n\n    srsi = ta.srsi(candles, period=period, sequential=True)\n    assert srsi.d[-1] == d\n    assert srsi.k[-1] == k\n    assert len(srsi.d) == len(candles)\n    assert len(srsi.k) == len(candles)\n\n\ndef test_srwma():\n    candles = np.array(test_candles_19)\n    single = ta.srwma(candles)\n    seq = ta.srwma(candles, sequential=True)\n\n    assert round(single, 2) == 205.38\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_stc():\n    candles = np.array(test_candles_19)\n    single = ta.stc(candles)\n    seq = ta.stc(candles, sequential=True)\n\n    assert round(single, 2) == 0.0\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_stddev():\n    candles = np.array(test_candles_19)\n    single = ta.stddev(candles)\n    seq = ta.stddev(candles, sequential=True)\n\n    assert round(single, 0) == 37\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n    closes = candles[:, 2]\n    single = ta.stddev(closes)\n    seq = ta.stddev(closes, sequential=True)\n\n    assert round(single, 0) == 37\n    assert seq[-1] == single\n\n\ndef test_stoch():\n    candles = np.array(test_candles_3)\n\n    stoch = ta.stoch(candles, fastk_period=14, slowk_period=3, slowk_matype=0, slowd_period=3, slowd_matype=0)\n    k, d = stoch\n    assert type(stoch).__name__ == 'Stochastic'\n    assert round(k, 2) == 53.68\n    assert round(d, 2) == 49.08\n\n    stoch = ta.stoch(candles, fastk_period=14, slowk_period=3, slowk_matype=0, slowd_period=3, slowd_matype=0,\n                     sequential=True)\n    assert stoch.d[-1] == d\n    assert stoch.k[-1] == k\n    assert len(stoch.d) == len(candles)\n    assert len(stoch.k) == len(candles)\n    with pytest.raises(ValueError) as e:\n        ta.stoch(candles, fastk_period=14, slowk_period=3, slowk_matype=24, slowd_period=3, slowd_matype=0)\n    assert str(e.value) == \"VWMA (matype 24) and VWAP (matype 29) cannot be used in stochastic indicator.\"\n\n    with pytest.raises(ValueError) as e:\n        ta.stoch(candles, fastk_period=14, slowk_period=3, slowk_matype=29, slowd_period=3, slowd_matype=0)\n    assert str(e.value) == \"VWMA (matype 24) and VWAP (matype 29) cannot be used in stochastic indicator.\"\n\n    with pytest.raises(ValueError) as e:\n        ta.stoch(candles, fastk_period=14, slowk_period=3, slowk_matype=0, slowd_period=3, slowd_matype=24)\n    assert str(e.value) == \"VWMA (matype 24) and VWAP (matype 29) cannot be used in stochastic indicator.\"\n\n    with pytest.raises(ValueError) as e:\n        ta.stoch(candles, fastk_period=14, slowk_period=3, slowk_matype=0, slowd_period=3, slowd_matype=29)\n    assert str(e.value) == \"VWMA (matype 24) and VWAP (matype 29) cannot be used in stochastic indicator.\"\n\n    with pytest.raises(ValueError) as e:\n        ta.stoch(candles, fastk_period=14, slowk_period=3, slowk_matype=24, slowd_period=3, slowd_matype=0, sequential=True)\n    assert str(e.value) == \"VWMA (matype 24) and VWAP (matype 29) cannot be used in stochastic indicator.\"\n\n    with pytest.raises(ValueError) as e:\n        ta.stoch(candles, fastk_period=14, slowk_period=3, slowk_matype=29, slowd_period=3, slowd_matype=0, sequential=True)\n    assert str(e.value) == \"VWMA (matype 24) and VWAP (matype 29) cannot be used in stochastic indicator.\"\n\n    with pytest.raises(ValueError) as e:\n        ta.stoch(candles, fastk_period=14, slowk_period=3, slowk_matype=0, slowd_period=3, slowd_matype=24, sequential=True)\n    assert str(e.value) == \"VWMA (matype 24) and VWAP (matype 29) cannot be used in stochastic indicator.\"\n\n    with pytest.raises(ValueError) as e:\n        ta.stoch(candles, fastk_period=14, slowk_period=3, slowk_matype=0, slowd_period=3, slowd_matype=29, sequential=True)\n    assert str(e.value) == \"VWMA (matype 24) and VWAP (matype 29) cannot be used in stochastic indicator.\"\n\n\ndef test_stochf():\n    candles = np.array(test_candles_19)\n\n    single = ta.stochf(candles, fastk_period=5, fastd_period=3, fastd_matype=0)\n    seq = ta.stochf(candles, fastk_period=5, fastd_period=3, fastd_matype=0, sequential=True)\n\n    assert type(single).__name__ == 'StochasticFast'\n    assert round(single.k, 2) == 4.87\n    assert round(single.d, 2) == 13.5\n\n    assert seq.k[-1] == single.k\n    assert len(seq.k) == len(candles)\n    assert len(seq.d) == len(candles)\n    \n    with pytest.raises(ValueError) as e:\n        ta.stochf(candles, fastk_period=5, fastd_period=3, fastd_matype=24)\n    assert str(e.value) == \"VWMA (matype 24) and VWAP (matype 29) cannot be used in stochf indicator.\"\n\n    with pytest.raises(ValueError) as e:\n        ta.stochf(candles, fastk_period=5, fastd_period=3, fastd_matype=29)\n    assert str(e.value) == \"VWMA (matype 24) and VWAP (matype 29) cannot be used in stochf indicator.\"\n\n    with pytest.raises(ValueError) as e:\n        ta.stochf(candles, fastk_period=5, fastd_period=3, fastd_matype=24, sequential=True)\n    assert str(e.value) == \"VWMA (matype 24) and VWAP (matype 29) cannot be used in stochf indicator.\"\n\n    with pytest.raises(ValueError) as e:\n        ta.stochf(candles, fastk_period=5, fastd_period=3, fastd_matype=29, sequential=True)\n    assert str(e.value) == \"VWMA (matype 24) and VWAP (matype 29) cannot be used in stochf indicator.\"\n    \n\n\ndef test_supersmoother():\n    candles = np.array(test_candles_19)\n    single = ta.supersmoother(candles)\n    seq = ta.supersmoother(candles, sequential=True)\n    assert round(single, 0) == 201\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_supersmoother_3_pole():\n    candles = np.array(test_candles_19)\n    single = ta.supersmoother_3_pole(candles)\n    seq = ta.supersmoother_3_pole(candles, sequential=True)\n    assert round(single, 0) == 207\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_supertrend():\n    candles = np.array(test_candles_19)\n\n    single = ta.supertrend(candles, period=10, factor=3)\n    seq = ta.supertrend(candles, period=10, factor=3, sequential=True)\n\n    assert type(single).__name__ == 'SuperTrend'\n    assert round(single.trend, 2) == 228.45\n    assert seq.changed[-16] == True\n    assert seq.changed[-1] == False\n\n    assert seq.trend[-1] == single.trend\n    assert len(seq.trend) == len(candles)\n    assert len(seq.changed) == len(candles)\n\n\ndef test_swma():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.swma(candles)\n    seq = ta.swma(candles, sequential=True)\n\n    assert round(single, 2) == 189.35\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_t3():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.t3(candles, period=5, vfactor=0.7)\n    seq = ta.t3(candles, period=5, vfactor=0.7, sequential=True)\n\n    assert round(single, 0) == 194\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_tema():\n    # use the same candles as trix_candles\n    candles = np.array(test_candles_17)\n\n    single = ta.tema(candles)\n    seq = ta.tema(candles, sequential=True)\n\n    assert round(single, 2) == 213.2\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_trange():\n    candles = np.array(test_candles_19)\n\n    single = ta.trange(candles)\n    seq = ta.trange(candles, sequential=True)\n\n    assert round(single, 2) == 94.35\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_trendflex():\n    candles = np.array(test_candles_19)\n\n    single = ta.trendflex(candles)\n    seq = ta.trendflex(candles, sequential=True)\n\n    assert round(single, 2) == -1.48\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_trima():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.trima(candles, period=9)\n    seq = ta.trima(candles, period=9, sequential=True)\n\n    assert round(single, 0) == 211\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_trix():\n    candles = np.array(test_candles_17)\n\n    single = ta.trix(candles)\n    seq = ta.trix(candles, sequential=True)\n\n    assert round(single, 2) == 30.28\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_tsf():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.tsf(candles)\n    seq = ta.tsf(candles, sequential=True)\n\n    assert round(single, 1) == 174.7\n    assert len(seq) == len(candles)\n    assert round(seq[-1], 2) == round(single, 2)\n\n\ndef test_tsi():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.tsi(candles)\n    seq = ta.tsi(candles, sequential=True)\n\n    assert round(single, 1) == -20.5\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_ttm_trend():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.ttm_trend(candles)\n    seq = ta.ttm_trend(candles, sequential=True)\n\n    assert single == False\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_typprice():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.typprice(candles)\n    seq = ta.typprice(candles, sequential=True)\n\n    assert round(single, 1) == 134.9\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_ui():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.ui(candles)\n    seq = ta.ui(candles, sequential=True)\n\n    assert round(single, 1) == 23.7\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_ultosc():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.ultosc(candles, timeperiod1=7, timeperiod2=14, timeperiod3=28)\n    seq = ta.ultosc(candles, timeperiod1=7, timeperiod2=14, timeperiod3=28, sequential=True)\n\n    assert round(single, 2) == 31.37\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_var():\n    candles = np.array(test_candles_16)\n    single = ta.var(candles)\n    seq = ta.var(candles, sequential=True)\n\n    assert round(single, 2) == 69.96\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_vi():\n    candles = np.array(test_candles_19)\n\n    single = ta.vi(candles)\n    seq = ta.vi(candles, sequential=True)\n\n    assert type(single).__name__ == 'VI'\n    assert round(single.plus, 2) == 0.66\n    assert round(single.minus, 2) == 1.13\n\n    assert seq.plus[-1] == single.plus\n    assert len(seq.plus) == len(candles)\n    assert len(seq.minus) == len(candles)\n\n\ndef test_vidya():\n    candles = np.array(test_candles_16)\n    single = ta.vidya(candles)\n    seq = ta.vidya(candles, sequential=True)\n\n    assert round(single, 2) == 200.84\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_vlma():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.vlma(candles)\n    seq = ta.vlma(candles, sequential=True)\n\n    assert round(single, 2) == 208.1\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_vosc():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.vosc(candles)\n    seq = ta.vosc(candles, sequential=True)\n\n    assert round(single, 2) == 38.18\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_voss():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.voss(candles)\n    seq = ta.voss(candles, sequential=True)\n\n    assert type(single).__name__ == 'VossFilter'\n    assert round(single.voss, 2) == -30.71\n    assert round(single.filt, 2) == -5.98\n\n    assert seq.voss[-1] == single.voss\n    assert seq.filt[-1] == single.filt\n    assert len(seq.voss) == len(candles)\n    assert len(seq.filt) == len(candles)\n\n\ndef test_vpci():\n    candles = np.array(test_candles_19)\n    single = ta.vpci(candles)\n    seq = ta.vpci(candles, sequential=True)\n\n    assert round(single.vpci, 2) == -29.46\n    assert round(single.vpcis, 2) == -14.4\n    assert len(seq.vpci) == len(candles)\n    assert seq.vpci[-1] == single.vpci\n\n\ndef test_vpt():\n    candles = np.array(test_candles_19)\n    single = ta.vpt(candles)\n    seq = ta.vpt(candles, sequential=True)\n\n    assert round(single, 2) == -1733928.99\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_vpwma():\n    candles = np.array(test_candles_19)\n    single = ta.vpwma(candles)\n    seq = ta.vpwma(candles, sequential=True)\n\n    assert round(single, 2) == 206.52\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_vwap():\n    candles = np.array(test_candles_19)\n    single = ta.vwap(candles)\n    seq = ta.vwap(candles, sequential=True)\n\n    assert round(single, 2) == 134.86\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_vwma():\n    candles = np.array(test_candles_16)\n    single = ta.vwma(candles)\n    seq = ta.vwma(candles, sequential=True)\n\n    assert round(single, 2) == 195.86\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_vwmacd():\n    candles = np.array(test_candles_19)\n\n    single = ta.vwmacd(candles, fast_period=12, slow_period=26, signal_period=9)\n    seq = ta.vwmacd(candles, fast_period=12, slow_period=26, signal_period=9, sequential=True)\n\n    assert type(single).__name__ == 'VWMACD'\n    assert round(single.macd, 2) == -31.37\n    assert round(single.signal, 2) == -20.72\n    assert round(single.hist, 2) == -10.65\n\n    assert seq.macd[-1] == single.macd\n    assert len(seq.macd) == len(candles)\n    assert len(seq.signal) == len(candles)\n    assert len(seq.hist) == len(candles)\n\n\ndef test_wad():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.wad(candles)\n    seq = ta.wad(candles, sequential=True)\n\n    assert round(single, 2) == -122.14\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_wclprice():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.wclprice(candles)\n    seq = ta.wclprice(candles, sequential=True)\n\n    assert round(single, 2) == 128.1\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_wilders():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.wilders(candles)\n    seq = ta.wilders(candles, sequential=True)\n\n    assert round(single, 2) == 192.11\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_willr():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.willr(candles, period=9)\n    seq = ta.willr(candles, period=9, sequential=True)\n\n    assert round(single, 2) == -95.61\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_wma():\n    # use the same candles as mama_candles\n    candles = np.array(test_candles_19)\n\n    single = ta.wma(candles, period=9)\n    seq = ta.wma(candles, period=9, sequential=True)\n\n    assert round(single, 2) == 189.13\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_wt():\n    candles = np.array(wavetrend_candles)\n    single = ta.wt(candles)\n    seq = ta.wt(candles, sequential=True)\n\n    assert type(single).__name__ == 'Wavetrend'\n    assert round(single.wt1, 2) == -27.25\n    assert round(single.wt2, 2) == -15.51\n    assert not single.wtCrossUp\n    assert single.wtCrossDown\n    assert single.wtCrossUp != single.wtCrossDown\n    assert not single.wtOversold\n    assert not single.wtOverbought\n    assert round(single.wtVwap, 2) == -11.74\n\n    assert seq.wt1[-1] == single.wt1\n    assert seq.wt2[-1] == single.wt2\n    assert seq.wtCrossUp[-1] is single.wtCrossUp\n    assert seq.wtCrossDown[-1] is single.wtCrossDown\n    assert seq.wtOversold[-1] is single.wtOversold\n    assert seq.wtOverbought[-1] is single.wtOverbought\n    assert seq.wtVwap[-1] == single.wtVwap\n    assert len(seq.wt1) == len(candles)\n\n\ndef test_zlema():\n    candles = np.array(test_candles_19)\n    single = ta.zlema(candles)\n    seq = ta.zlema(candles, sequential=True)\n\n    assert round(single, 0) == 189\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_zscore():\n    candles = np.array(test_candles_19)\n    single = ta.zscore(candles)\n    seq = ta.zscore(candles, sequential=True)\n\n    assert round(single, 1) == -3.2\n    assert len(seq) == len(candles)\n    assert seq[-1] == single\n\n\ndef test_waddah_attr_explosion():\n    candles = np.array(test_candles_19)\n    single = ta.waddah_attar_explosion(candles)\n\n    assert round(single[0]) == 135\n    assert round(single[1]) == -827\n    assert round(single[2]) == -1\n\n\ndef test_stiffness():\n    candles = np.array(test_candles_19)\n\n    assert round(ta.stiffness(candles)) == 96\n\n\ndef test_ttm_squeeze():\n    candles = np.array(test_candles_19)\n    result = ta.ttm_squeeze(candles)\n\n    assert result == True\n\n\ndef test_support_resistance_with_breaks():\n    candles = np.array(test_candles_19)\n    result = ta.support_resistance_with_breaks(candles)\n\n    assert result.support == 116.26\n    assert result.resistance == 288.41\n    assert result.red_break == False\n    assert result.green_break == False\n    assert result.bear_wick == False\n    assert result.bull_wick == False\n\n\ndef test_squeeze_momentum():\n    candles = np.array(test_candles_19)\n    result = ta.squeeze_momentum(candles, sequential=False)\n\n    assert result.squeeze == 1\n    assert round(result.momentum, 2) == -52.23\n    assert result.momentum_signal == -1\n\n    seq_result = ta.squeeze_momentum(candles)\n\n    assert seq_result.squeeze[0] == 0\n    assert seq_result.squeeze[-2] == 1\n    assert seq_result.momentum_signal[0] == -2\n    assert seq_result.momentum_signal[-2] == -1\n    assert round(seq_result.momentum[-10], 2) == -37.97\n    assert round(seq_result.momentum[-2], 2) == -40.98\n\n\ndef test_hull_suit():\n    candles = np.array(test_candles_19)\n    result = ta.hull_suit(candles, sequential=False)\n\n    assert round(result.s_hull, 1) == 243.7\n    assert round(result.m_hull, 1) == 230.6\n    assert result.signal == 'sell'\n\n\ndef test_volume():\n    candles = np.array(fake_test_candles, dtype=np.float64)\n    single = ta.volume(candles, period=5)\n    seq = ta.volume(candles, period=5, sequential=True)\n\n    assert type(single).__name__ == 'Volume'\n    assert round(single.volume, 0) == 22\n    assert round(single.ma, 0) == 20\n\n    assert seq.volume[-1] == single.volume\n    assert seq.ma[-1] == single.ma\n    assert len(seq.volume) == len(candles)\n    assert len(seq.ma) == len(candles)\n"
  },
  {
    "path": "tests/test_isolated_backtest.py",
    "content": "import pytest\nimport jesse.helpers as jh\nfrom jesse.factories import candles_from_close_prices\nfrom jesse.strategies import Strategy\nfrom jesse import research\n\n\ndef test_can_pass_strategy_as_string_in_futures_exchange():\n    fake_candles = candles_from_close_prices([101, 102, 103, 104, 105, 106, 107, 108, 109, 110])\n    exchange_name = 'Fake Exchange'\n    symbol = 'FAKE-USDT'\n    timeframe = '1m'\n    config = {\n        'starting_balance': 10_000,\n        'fee': 0,\n        'type': 'futures',\n        'futures_leverage': 2,\n        'futures_leverage_mode': 'cross',\n        'exchange': exchange_name,\n        'warm_up_candles': 0\n    }\n    routes = [\n        {'exchange': exchange_name, 'strategy': 'TestEmptyStrategy', 'symbol': symbol, 'timeframe': timeframe},\n    ]\n    data_routes = []\n    candles = {\n        jh.key(exchange_name, symbol): {\n            'exchange': exchange_name,\n            'symbol': symbol,\n            'candles': fake_candles,\n        },\n    }\n\n    result = research.backtest(config, routes, data_routes, candles)\n\n    # result must have None values because the strategy makes no decisions\n    assert result['metrics'] == {'net_profit_percentage': 0, 'total': 0, 'win_rate': 0}\n\n\ndef test_can_pass_strategy_as_class_in_a_futures_exchange():\n    class TestStrategy(Strategy):\n        def before(self) -> None:\n            if self.index == 0:\n                assert self.exchange_type == 'futures'\n\n        def should_long(self):\n            return False\n\n        def should_cancel_entry(self):\n            return False\n\n        def go_long(self):\n            pass\n\n    fake_candles = candles_from_close_prices([101, 102, 103, 104, 105, 106, 107, 108, 109, 110])\n    exchange_name = 'Fake Exchange'\n    symbol = 'FAKE-USDT'\n    timeframe = '1m'\n    config = {\n        'starting_balance': 10_000,\n        'fee': 0,\n        'type': 'futures',\n        'futures_leverage': 2,\n        'futures_leverage_mode': 'cross',\n        'exchange': exchange_name,\n        'warm_up_candles': 0\n    }\n    routes = [\n        {'exchange': exchange_name, 'strategy': TestStrategy, 'symbol': symbol, 'timeframe': timeframe},\n    ]\n    data_routes = []\n    candles = {\n        jh.key(exchange_name, symbol): {\n            'exchange': exchange_name,\n            'symbol': symbol,\n            'candles': fake_candles,\n        },\n    }\n\n    result = research.backtest(config, routes, data_routes, candles)\n\n    # result must have None values because the strategy makes no decisions\n    assert result['metrics'] == {'net_profit_percentage': 0, 'total': 0, 'win_rate': 0}\n\n\ndef test_can_pass_strategy_as_class_in_a_spot_exchange():\n    class TestStrategy(Strategy):\n        def before(self) -> None:\n            if self.index == 0:\n                assert self.exchange_type == 'spot'\n\n        def should_long(self):\n            return False\n\n        def should_cancel_entry(self):\n            return False\n\n        def go_long(self):\n            pass\n\n    fake_candles = candles_from_close_prices([101, 102, 103, 104, 105, 106, 107, 108, 109, 110])\n    exchange_name = 'Fake Exchange'\n    symbol = 'FAKE-USDT'\n    timeframe = '1m'\n    config = {\n        'starting_balance': 10_000,\n        'fee': 0,\n        'type': 'spot',\n        'exchange': exchange_name,\n        'warm_up_candles': 0\n    }\n    routes = [\n        {'exchange': exchange_name, 'strategy': TestStrategy, 'symbol': symbol, 'timeframe': timeframe},\n    ]\n    data_routes = []\n    candles = {\n        jh.key(exchange_name, symbol): {\n            'exchange': exchange_name,\n            'symbol': symbol,\n            'candles': fake_candles,\n        },\n    }\n\n    result = research.backtest(config, routes, data_routes, candles)\n\n    # result must have None values because the strategy makes no decisions\n    assert result['metrics'] == {'net_profit_percentage': 0, 'total': 0, 'win_rate': 0}\n\n\ndef test_store_state_app_is_reset_properly_in_isolated_backtest():\n    class TestStateApp(Strategy):\n        def before(self) -> None:\n            if self.index == 0:\n                from jesse.store import store\n                assert store.app.daily_balance == [10000]\n\n        def should_long(self) -> bool:\n            return False\n\n        def should_cancel_entry(self) -> bool:\n            return True\n\n        def go_long(self):\n            pass\n\n    fake_candles = candles_from_close_prices([101, 102, 103, 104, 105, 106, 107, 108, 109, 110])\n    exchange_name = 'Fake Exchange'\n    symbol = 'FAKE-USDT'\n    timeframe = '1m'\n    config = {\n        'starting_balance': 10_000,\n        'fee': 0,\n        'type': 'futures',\n        'futures_leverage': 2,\n        'futures_leverage_mode': 'cross',\n        'exchange': exchange_name,\n        'warm_up_candles': 0\n    }\n    routes = [\n        {'exchange': exchange_name, 'strategy': TestStateApp, 'symbol': symbol, 'timeframe': timeframe},\n    ]\n    data_routes = []\n    candles = {\n        jh.key(exchange_name, symbol): {\n            'exchange': exchange_name,\n            'symbol': symbol,\n            'candles': fake_candles,\n        },\n    }\n\n    # run the backtest for the first time\n    research.backtest(config, routes, data_routes, candles)\n    # run the backtest for the second time and assert that the app.daily_balance is reset\n    research.backtest(config, routes, data_routes, candles)\n\n\ndef test_dna_method_works_in_isolated_backtest():\n    # first define the strategy without the dna method, hence the hyperparameter defaults\n    class TestStrategy1(Strategy):\n        def before(self) -> None:\n            if self.index == 0:\n                assert self.hp['hp1'] == 70\n                assert self.hp['hp2'] == 100\n\n        def should_long(self) -> bool:\n            return False\n\n        def should_cancel_entry(self) -> bool:\n            return True\n\n        def go_long(self):\n            pass\n\n        def hyperparameters(self):\n            return [\n                {'name': 'hp1', 'type': int, 'min': 10, 'max': 95, 'default': 70},\n                {'name': 'hp2', 'type': int, 'min': 50, 'max': 1000, 'default': 100},\n            ]\n\n    fake_candles = candles_from_close_prices([101, 102, 103, 104, 105, 106, 107, 108, 109, 110])\n    exchange_name = 'Fake Exchange'\n    symbol = 'FAKE-USDT'\n    timeframe = '1m'\n    config = {\n        'starting_balance': 10_000,\n        'fee': 0,\n        'type': 'futures',\n        'futures_leverage': 2,\n        'futures_leverage_mode': 'cross',\n        'exchange': exchange_name,\n        'warm_up_candles': 0\n    }\n    routes = [\n        {'exchange': exchange_name, 'strategy': TestStrategy1, 'symbol': symbol, 'timeframe': timeframe},\n    ]\n    data_routes = []\n    candles = {\n        jh.key(exchange_name, symbol): {\n            'exchange': exchange_name,\n            'symbol': symbol,\n            'candles': fake_candles,\n        },\n    }\n\n    research.backtest(config, routes, data_routes, candles)\n\n    # now define the strategy with the dna method\n    class TestStrategy2(Strategy):\n        def before(self) -> None:\n            if self.index == 0:\n                assert self.hp['hp1'] == 10\n                assert self.hp['hp2'] == 880\n\n        def should_long(self) -> bool:\n            return False\n\n        def should_cancel_entry(self) -> bool:\n            return True\n\n        def go_long(self):\n            pass\n\n        def hyperparameters(self):\n            return [\n                {'name': 'hp1', 'type': int, 'min': 10, 'max': 95, 'default': 70},\n                {'name': 'hp2', 'type': int, 'min': 50, 'max': 1000, 'default': 100},\n            ]\n\n        def dna(self):\n            return \"(m\"\n\n    # redefine routes to use the new strategy\n    routes = [\n        {'exchange': exchange_name, 'strategy': TestStrategy2, 'symbol': symbol, 'timeframe': timeframe},\n    ]\n\n    research.backtest(config, routes, data_routes, candles)\n\n\ndef test_backtest_function_only_accepts_candles_with_1m_time_difference():\n    class TestStrategy(Strategy):\n        def should_long(self):\n            return False\n\n        def should_cancel_entry(self):\n            return False\n\n        def go_long(self):\n            pass\n\n    candles = candles_from_close_prices([101, 102, 103, 104, 105, 106, 107, 108, 109, 110])\n    timestamp = candles[0][0]\n    # update timestamps so the candles are 5m apart\n    for x in candles[1:]:\n        timestamp += 60_000*5\n        x[0] = timestamp\n\n    exchange_name = 'Fake Exchange'\n    symbol = 'FAKE-USDT'\n    timeframe = '5m'\n    config = {\n        'starting_balance': 10_000,\n        'fee': 0,\n        'type': 'futures',\n        'futures_leverage': 2,\n        'futures_leverage_mode': 'cross',\n        'exchange': exchange_name,\n        'warm_up_candles': 0\n    }\n    routes = [\n        {'exchange': exchange_name, 'strategy': TestStrategy, 'symbol': symbol, 'timeframe': timeframe},\n    ]\n    data_routes = []\n    candles = {\n        jh.key(exchange_name, symbol): {\n            'exchange': exchange_name,\n            'symbol': symbol,\n            'candles': candles,\n        },\n    }\n\n    # assert that it doesn't accept 1h candles\n    with pytest.raises(ValueError):\n        research.backtest(config, routes, data_routes, candles)\n\n\ndef test_passed_candles_are_not_affected_by_running_isolated_backtests():\n    class TestStrategy(Strategy):\n        def should_long(self):\n            return False\n\n        def should_cancel_entry(self):\n            return False\n\n        def go_long(self):\n            pass\n\n    fake_candles = candles_from_close_prices([101, 102, 103, 104, 105, 106, 107, 108, 109, 110])\n    exchange_name = 'Fake Exchange'\n    symbol = 'FAKE-USDT'\n    timeframe = '1m'\n    config = {\n        'starting_balance': 10_000,\n        'fee': 0,\n        'type': 'futures',\n        'futures_leverage': 2,\n        'futures_leverage_mode': 'cross',\n        'exchange': exchange_name,\n        'warm_up_candles': 4\n    }\n    routes = [\n        {'exchange': exchange_name, 'strategy': TestStrategy, 'symbol': symbol, 'timeframe': timeframe},\n    ]\n    data_routes = []\n    candles = {\n        jh.key(exchange_name, symbol): {\n            'exchange': exchange_name,\n            'symbol': symbol,\n            'candles': fake_candles,\n        },\n    }\n\n    assert len(candles['Fake Exchange-FAKE-USDT']['candles']) == 10\n\n    research.backtest(config, routes, data_routes, candles)\n\n    assert len(candles['Fake Exchange-FAKE-USDT']['candles']) == 10\n"
  },
  {
    "path": "tests/test_lsp.py",
    "content": "import pytest\nfrom unittest.mock import patch, MagicMock\nfrom jesse.services.lsp import is_lsp_update_available, _compare_versions\n\n\nclass TestVersionComparison:\n    \"\"\"Tests for the version comparison helper function.\"\"\"\n    \n    def test_equal_versions(self):\n        assert _compare_versions('1.2.3', '1.2.3') == 0\n        assert _compare_versions('0.0.1', '0.0.1') == 0\n        assert _compare_versions('10.20.30', '10.20.30') == 0\n    \n    def test_first_version_greater(self):\n        assert _compare_versions('1.2.4', '1.2.3') == 1\n        assert _compare_versions('2.0.0', '1.9.9') == 1\n        assert _compare_versions('1.3.0', '1.2.9') == 1\n        assert _compare_versions('10.0.0', '9.9.9') == 1\n    \n    def test_first_version_lesser(self):\n        assert _compare_versions('1.2.3', '1.2.4') == -1\n        assert _compare_versions('1.9.9', '2.0.0') == -1\n        assert _compare_versions('1.2.9', '1.3.0') == -1\n        assert _compare_versions('9.9.9', '10.0.0') == -1\n    \n    def test_different_length_versions(self):\n        assert _compare_versions('1.2', '1.2.0') == 0\n        assert _compare_versions('1.2.0', '1.2') == 0\n        assert _compare_versions('1.2', '1.2.1') == -1\n        assert _compare_versions('1.2.1', '1.2') == 1\n        assert _compare_versions('1', '1.0.0') == 0\n        assert _compare_versions('2.0', '1.9.9.9') == 1\n    \n    def test_invalid_version_parts(self):\n        # Non-numeric parts should be treated as 0\n        assert _compare_versions('1.2.x', '1.2.0') == 0\n        assert _compare_versions('1.2.beta', '1.2.1') == -1\n\n\nclass TestLspUpdateAvailable:\n    \"\"\"Tests for the is_lsp_update_available function.\"\"\"\n    \n    @patch('jesse.services.lsp._get_lsp_version')\n    def test_no_current_version_installed(self, mock_get_version):\n        \"\"\"Should return False when no version is installed.\"\"\"\n        mock_get_version.return_value = ''\n        \n        result = is_lsp_update_available()\n        \n        assert result is False\n    \n    @patch('jesse.services.lsp.requests.get')\n    @patch('jesse.services.lsp._get_lsp_version')\n    def test_update_available(self, mock_get_version, mock_requests_get):\n        \"\"\"Should return True when a newer version is available.\"\"\"\n        mock_get_version.return_value = '1.2.3'\n        \n        mock_response = MagicMock()\n        mock_response.json.return_value = {'tag_name': 'v1.3.0'}\n        mock_response.raise_for_status = MagicMock()\n        mock_requests_get.return_value = mock_response\n        \n        result = is_lsp_update_available()\n        \n        assert result is True\n    \n    @patch('jesse.services.lsp.requests.get')\n    @patch('jesse.services.lsp._get_lsp_version')\n    def test_no_update_same_version(self, mock_get_version, mock_requests_get):\n        \"\"\"Should return False when versions are the same.\"\"\"\n        mock_get_version.return_value = '1.2.3'\n        \n        mock_response = MagicMock()\n        mock_response.json.return_value = {'tag_name': 'v1.2.3'}\n        mock_response.raise_for_status = MagicMock()\n        mock_requests_get.return_value = mock_response\n        \n        result = is_lsp_update_available()\n        \n        assert result is False\n    \n    @patch('jesse.services.lsp.requests.get')\n    @patch('jesse.services.lsp._get_lsp_version')\n    def test_no_update_older_version(self, mock_get_version, mock_requests_get):\n        \"\"\"Should return False when installed version is newer.\"\"\"\n        mock_get_version.return_value = '2.0.0'\n        \n        mock_response = MagicMock()\n        mock_response.json.return_value = {'tag_name': 'v1.9.9'}\n        mock_response.raise_for_status = MagicMock()\n        mock_requests_get.return_value = mock_response\n        \n        result = is_lsp_update_available()\n        \n        assert result is False\n    \n    @patch('jesse.services.lsp.requests.get')\n    @patch('jesse.services.lsp._get_lsp_version')\n    def test_tag_name_without_v_prefix(self, mock_get_version, mock_requests_get):\n        \"\"\"Should handle tag names without 'v' prefix.\"\"\"\n        mock_get_version.return_value = '1.2.3'\n        \n        mock_response = MagicMock()\n        mock_response.json.return_value = {'tag_name': '1.3.0'}\n        mock_response.raise_for_status = MagicMock()\n        mock_requests_get.return_value = mock_response\n        \n        result = is_lsp_update_available()\n        \n        assert result is True\n    \n    @patch('jesse.services.lsp.requests.get')\n    @patch('jesse.services.lsp._get_lsp_version')\n    def test_network_error_raises_exception(self, mock_get_version, mock_requests_get):\n        \"\"\"Should raise exception on network errors.\"\"\"\n        mock_get_version.return_value = '1.2.3'\n        mock_requests_get.side_effect = Exception(\"Network error\")\n        \n        with pytest.raises(Exception) as exc_info:\n            is_lsp_update_available()\n        \n        assert \"Error checking for LSP update\" in str(exc_info.value)\n    \n    @patch('jesse.services.lsp.requests.get')\n    @patch('jesse.services.lsp._get_lsp_version')\n    def test_missing_tag_name_in_response(self, mock_get_version, mock_requests_get):\n        \"\"\"Should handle missing tag_name in API response.\"\"\"\n        mock_get_version.return_value = '1.2.3'\n        \n        mock_response = MagicMock()\n        mock_response.json.return_value = {}\n        mock_response.raise_for_status = MagicMock()\n        mock_requests_get.return_value = mock_response\n        \n        result = is_lsp_update_available()\n        \n        # Should compare with empty string and likely return False\n        assert result is False\n\n"
  },
  {
    "path": "tests/test_metrics.py",
    "content": "from jesse.store import store\nfrom jesse.testing_utils import single_route_backtest\nfrom jesse.services import metrics\nimport numpy as np\n\n\ndef test_open_pl_and_total_open_trades():\n    single_route_backtest('Test40')\n\n    assert len(store.closed_trades.trades) == 1\n    assert store.app.total_open_trades == 1\n    assert store.app.total_open_pl == 97  # 99 - 2\n\n\ndef test_metrics_for_trades_without_fee():\n    single_route_backtest('TestMetrics1')\n\n    trades = store.closed_trades.trades\n    assert len(trades) == 1\n    stats = metrics.trades(store.closed_trades.trades, store.app.daily_balance)\n\n    assert stats['total'] == 1\n    assert stats['starting_balance'] == 10000\n    assert stats['finishing_balance'] == 10050\n    assert stats['win_rate'] == 1\n    assert stats['ratio_avg_win_loss'] is np.nan\n    assert stats['longs_count'] == 1\n    assert stats['shorts_count'] == 0\n    assert stats['longs_percentage'] == 100\n    assert stats['shorts_percentage'] == 0\n    assert stats['fee'] == 0\n    assert stats['net_profit'] == 50\n    assert stats['net_profit_percentage'] == 0.5\n    assert stats['average_win'] == 50\n    assert stats['average_loss'] is np.nan\n    assert stats['expectancy'] == 50\n    assert stats['expectancy_percentage'] == 0.5\n    assert stats['expected_net_profit_every_100_trades'] == 50\n    assert stats['average_holding_period'] == 300\n    assert stats['average_losing_holding_period'] is np.nan\n    assert stats['average_winning_holding_period'] == 300\n    assert stats['gross_loss'] == 0\n    assert stats['gross_profit'] == 50\n    assert stats['open_pl'] == 0\n    assert stats['largest_losing_trade'] == 0\n    assert stats['largest_winning_trade'] == 50\n\n    # ignore metrics that are dependant on daily_returns because the testing candle set is not for multiple dais\n\n# def test_stats_for_a_strategy_without_losing_trades():\n#     set_up([\n#         (exchanges.SANDBOX, 'ETH-USDT', timeframes.MINUTE_5, 'Test08'),\n#     ])\n#\n#     candles = {}\n#     key = jh.key(exchanges.SANDBOX, 'ETH-USDT')\n#     candles[key] = {\n#         'exchange': exchanges.SANDBOX,\n#         'symbol': 'ETH-USDT',\n#         'candles': test_candles_1\n#     }\n#\n#     # run backtest (dates are fake just to pass)\n#     backtest_mode.run('2019-04-01', '2019-04-02', candles)\n#     assert len(store.closed_trades.trades) == 1\n#     stats_trades = stats.trades(store.closed_trades.trades)\n#\n#     assert stats_trades == {\n#         'total': 1,\n#         'starting_balance': 10000,\n#         'finishing_balance': 10014.7,\n#         'win_rate': 1,\n#         'max_R': 1,\n#         'min_R': 1,\n#         'mean_R': 1,\n#         'longs_count': 0,\n#         'longs_percentage': 0,\n#         'shorts_percentage': 100,\n#         'shorts_count': 1,\n#         'fee': 0,\n#         'pnl': 14.7,\n#         'pnl_percentage': 0.15,\n#         'average_win': 14.7,\n#         'average_loss': np.nan,\n#         'expectancy': 14.7,\n#         'expectancy_percentage': 0.15,\n#         'expected_pnl_every_100_trades': 15.0,\n#         'average_holding_period': 180.0,\n#         'average_losing_holding_period': np.nan,\n#         'average_winning_holding_period': 180.0\n#     }\n\n\ndef test_daily_balance_stores_portfolio_value():\n    # futures\n    single_route_backtest(\n        'TestDailyBalanceStoresPortfolioValue',\n        is_futures_trading=True,\n        candles_count=10*1024\n    )\n\n    # spot\n    single_route_backtest(\n        'TestDailyBalanceStoresPortfolioValue',\n        is_futures_trading=False,\n        candles_count=10 * 1024\n    )\n"
  },
  {
    "path": "tests/test_order.py",
    "content": "from jesse.testing_utils import single_route_backtest\n\n\ndef test_order_is_stop_loss_property():\n    single_route_backtest('TestOrderIsStopLossProperty')\n\n\ndef test_order_is_take_profit_property():\n    single_route_backtest('TestOrderIsTakeProfitProperty')\n\n\ndef test_order_value_property():\n    single_route_backtest('TestOrderValueProperty')\n\n\ndef test_orders_are_sorted():\n    single_route_backtest('TestOrdersAreSortedBeforeExecution')\n"
  },
  {
    "path": "tests/test_parent_strategy.py",
    "content": "import math\nfrom jesse.services import candle_service\nimport numpy as np\nimport pytest\n\nimport jesse.helpers as jh\nfrom jesse import exceptions\nfrom jesse.config import reset_config\nfrom jesse.enums import exchanges, timeframes, order_types\nfrom jesse.factories import range_candles, candles_from_close_prices\nfrom jesse.models import ClosedTrade\nfrom jesse.models.Order import Order\nfrom jesse.modes import backtest_mode\nfrom jesse.routes import router\nfrom jesse.store import store\nfrom jesse.strategies import Strategy\nfrom tests.data import test_candles_0\nfrom tests.data import test_candles_1\nfrom jesse.testing_utils import set_up, single_route_backtest, two_routes_backtest, two_data_routes_backtest\n\n\ndef test_average_stop_loss_exception():\n    with pytest.raises(exceptions.InvalidStrategy):\n        single_route_backtest('Test39')\n\n\ndef test_average_take_profit_and_average_stop_loss():\n    single_route_backtest('Test36')\n\n    assert len(store.closed_trades.trades) == 2\n\n    t1: ClosedTrade = store.closed_trades.trades[0]\n    assert t1.type == 'long'\n    assert t1.entry_price == 1\n    assert t1.exit_price == 3.5\n    assert t1.qty == 2\n\n    t2: ClosedTrade = store.closed_trades.trades[1]\n    assert t2.type == 'short'\n    assert t2.entry_price == 11\n    assert t2.exit_price == 13.5\n    assert t2.qty == 2\n\n\ndef test_average_take_profit_exception():\n    with pytest.raises(exceptions.InvalidStrategy):\n        single_route_backtest('Test38')\n\n\ndef test_average_entry_price_property():\n    single_route_backtest('TestAverageEntryPriceProperty')\n\n\ndef test_has_long_entry_orders_property():\n    single_route_backtest('TestHasLongEntryOrdersProperty')\n\n\ndef test_has_short_entry_orders_property():\n    single_route_backtest('TestHasShortEntryOrdersProperty')\n\n\ndef test_has_long_entry_orders_property_in_filters():\n    single_route_backtest('TestHasLongAndShortEntryOrdersPropertiesInFilters')\n\n\ndef test_can_close_a_long_position_and_go_short_at_the_same_candle():\n    single_route_backtest('Test45', is_futures_trading=True, leverage_mode='isolated')\n\n    trades = store.closed_trades.trades\n\n    assert len(trades) == 2\n    # the position should no longer stay open because it gets liquidated eventually\n    assert store.app.total_open_trades == 0\n    assert store.app.total_liquidations == 1\n\n\ndef test_fee_rate_property():\n    single_route_backtest('Test48')\n\n\ndef test_filter_readable_exception():\n    with pytest.raises(Exception) as err:\n        single_route_backtest('Test47')\n\n    assert str(err.value).startswith(\"Invalid filter format\")\n\n\ndef test_filters():\n    single_route_backtest('Test37')\n\n    assert len(store.closed_trades.trades) == 0\n\n\ndef test_forming_candles():\n    reset_config()\n    routes = [\n        {'symbol': 'BTC-USDT', 'timeframe': timeframes.MINUTE_5, 'strategy': 'Test19'}\n    ] \n    data_routes = [\n        {'symbol': 'BTC-USDT', 'timeframe': timeframes.MINUTE_15}\n    ]\n\n    candles = {}\n    key = jh.key(exchanges.SANDBOX, 'BTC-USDT')\n    candles[key] = {\n        'exchange': exchanges.SANDBOX,\n        'symbol': 'BTC-USDT',\n        'candles': test_candles_0\n    }\n\n    backtest_mode.run('000', False, {}, exchanges.SANDBOX, routes, data_routes, '2019-04-01', '2019-04-02', candles)\n\n    # use math.ceil because it must include forming candle too\n    assert len(candle_service.get_candles(exchanges.SANDBOX, 'BTC-USDT', timeframes.MINUTE_5)) == math.ceil(1382 / 5)\n    assert len(candle_service.get_candles(exchanges.SANDBOX, 'BTC-USDT', timeframes.MINUTE_15)) == math.ceil(\n        1382 / 15)\n\n\ndef test_increasing_long_position_size_after_opening():\n    single_route_backtest('Test16')\n\n    assert len(store.closed_trades.trades) == 1\n    t1: ClosedTrade = store.closed_trades.trades[0]\n    assert t1.type == 'long'\n    assert t1.entry_price == (7 + 10) / 2\n    assert t1.exit_price == 15\n    assert t1.qty == 2\n    assert t1.fee == 0\n\n\ndef test_increasing_short_position_size_after_opening():\n    single_route_backtest('TestIncreasingShortPosition', trend='down')\n\n\ndef test_is_smart_enough_to_open_positions_via_market_orders():\n    set_up()\n\n    routes = [\n        {'symbol': 'ETH-USDT', 'timeframe': timeframes.MINUTE_1, 'strategy': 'Test05'}\n    ]\n\n    candles = {}\n    key = jh.key(exchanges.SANDBOX, 'ETH-USDT')\n    candles[key] = {\n        'exchange': exchanges.SANDBOX,\n        'symbol': 'ETH-USDT',\n        'candles': test_candles_1\n    }\n\n    # run backtest (dates are fake just to pass)\n    backtest_mode.run('000', False, {}, exchanges.SANDBOX, routes, [], '2019-04-01', '2019-04-02', candles)\n\n    assert len(store.closed_trades.trades) == 2\n\n    t1: ClosedTrade = store.closed_trades.trades[0]\n    assert t1.type == 'long'\n    assert t1.entry_price == 129.23\n    assert t1.exit_price == 128.35\n    assert t1.qty == 10.204\n    assert t1.fee == 0\n    assert t1.opened_at == 1547201100000 + 60000\n    assert t1.closed_at == 1547202840000 + 60000\n    assert t1.orders[0].type == order_types.MARKET\n\n    t2: ClosedTrade = store.closed_trades.trades[1]\n    assert t2.type == 'short'\n    assert t2.entry_price == 128.01\n    assert t2.exit_price == 126.58\n    assert t2.qty == 10\n    assert t2.fee == 0\n    assert t2.opened_at == 1547203560000 + 60000\n    assert t2.closed_at == 1547203740000 + 60000\n    assert t2.orders[0].type == order_types.MARKET\n\n\ndef test_is_smart_enough_to_open_positions_via_stop_orders():\n    set_up()\n\n    routes = [\n        {'symbol': 'ETH-USDT', 'timeframe': timeframes.MINUTE_5, 'strategy': 'Test06'}\n    ]\n\n    candles = {}\n    key = jh.key(exchanges.SANDBOX, 'ETH-USDT')\n    candles[key] = {\n        'exchange': exchanges.SANDBOX,\n        'symbol': 'ETH-USDT',\n        'candles': test_candles_1\n    }\n\n    # run backtest (dates are fake just to pass)\n    backtest_mode.run('000', False, {}, exchanges.SANDBOX, routes, [], '2019-04-01', '2019-04-02', candles)\n    assert len(store.closed_trades.trades) == 2\n\n    t1: ClosedTrade = store.closed_trades.trades[0]\n    assert t1.type == 'long'\n    assert t1.entry_price == 129.33\n    assert t1.exit_price == 128.35\n    assert t1.qty == 10.204\n    assert t1.fee == 0\n    assert t1.opened_at == 1547201100000 + 60000\n    assert t1.closed_at == 1547202840000 + 60000\n    assert t1.orders[0].type == order_types.STOP\n\n    t2: ClosedTrade = store.closed_trades.trades[1]\n    assert t2.type == 'short'\n    assert t2.entry_price == 128.05\n    assert t2.exit_price == 126.58\n    assert t2.qty == 10\n    assert t2.fee == 0\n    assert t2.opened_at == 1547203560000 + 60000\n    assert t2.closed_at == 1547203740000 + 60000\n    assert t2.orders[0].type == order_types.STOP\n\n\ndef test_liquidate():\n    single_route_backtest('Test31')\n\n    assert len(store.closed_trades.trades) == 2\n    t1: ClosedTrade = store.closed_trades.trades[0]\n    t2: ClosedTrade = store.closed_trades.trades[1]\n\n    assert t1.type == 'long'\n    assert t1.entry_price == 1\n    assert t1.exit_price == 11\n\n    assert t2.type == 'short'\n    assert t2.entry_price == 21\n    assert t2.exit_price == 41\n\n\ndef test_modifying_stop_loss_after_part_of_position_is_already_reduced_with_stop_loss():\n    set_up()\n\n    routes = [\n        {'symbol': 'BTC-USDT', 'timeframe': timeframes.MINUTE_1, 'strategy': 'Test14'}\n    ]\n\n    generated_candles = candles_from_close_prices(\n        list(range(1, 10)) + list(range(10, 1, -1))\n    )\n\n    candles = {}\n    key = jh.key(exchanges.SANDBOX, 'BTC-USDT')\n    candles[key] = {\n        'exchange': exchanges.SANDBOX,\n        'symbol': 'BTC-USDT',\n        'candles': generated_candles\n    }\n\n    backtest_mode.run('000', False, {}, exchanges.SANDBOX, routes, [], '2019-04-01', '2019-04-02', candles)\n\n    assert len(store.closed_trades.trades) == 1\n    t1: ClosedTrade = store.closed_trades.trades[0]\n    assert t1.type == 'long'\n    assert t1.entry_price == 7\n    assert t1.exit_price == (4 * 2 + 6) / 3\n    assert t1.qty == 1.5\n    assert t1.fee == 0\n\n\ndef test_modifying_take_profit_after_opening_position():\n    single_route_backtest('Test12')\n\n    assert len(store.closed_trades.trades) == 1\n    t1: ClosedTrade = store.closed_trades.trades[0]\n    assert t1.type == 'long'\n    assert t1.entry_price == 7\n    assert t1.exit_price == 16\n    assert t1.qty == 1.5\n    assert t1.fee == 0\n\n\ndef test_modifying_take_profit_after_part_of_position_is_already_reduced_with_profit():\n    single_route_backtest('Test13')\n\n    assert len(store.closed_trades.trades) == 1\n    t1: ClosedTrade = store.closed_trades.trades[0]\n    assert t1.type == 'long'\n    assert t1.entry_price == 7\n    assert t1.exit_price == (16 * 2 + 11) / 3\n    assert t1.qty == 1.5\n    assert t1.fee == 0\n\n\ndef test_must_not_be_able_to_set_two_similar_routes():\n    reset_config()\n    r = [\n        {'exchange': exchanges.SANDBOX, 'symbol': 'ETH-USDT', 'timeframe': timeframes.MINUTE_5, 'strategy': 'Test01'},\n        {'exchange': exchanges.SANDBOX, 'symbol': 'ETH-USDT', 'timeframe': timeframes.MINUTE_30, 'strategy': 'Test02'},\n    ]\n    store.reset()\n    \n    with pytest.raises(Exception) as err:\n        router.initiate(r)\n    assert str(\n        err.value).startswith('each exchange-symbol pair can be traded only once')\n\n\ndef test_on_reduced_position():\n    single_route_backtest('Test18')\n\n    assert len(store.closed_trades.trades) == 1\n    t1: ClosedTrade = store.closed_trades.trades[0]\n    assert t1.type == 'long'\n    assert t1.entry_price == 7\n    assert t1.exit_price == 13\n    assert t1.qty == 2\n    assert t1.fee == 0\n\n\ndef test_on_route_canceled():\n    two_routes_backtest('Test27', 'Test28')\n\n    t1 = store.closed_trades.trades[0]\n\n    assert t1.symbol == 'BTC-USDT'\n    assert t1.type == 'long'\n    assert t1.entry_price == 101\n    assert t1.exit_price == 120\n    assert t1.qty == 1\n\n\ndef test_on_route_increased_position_and_on_route_reduced_position_and_strategy_vars():\n    two_routes_backtest('Test29', 'Test30')\n\n    # long BTC-USD\n    t1 = store.closed_trades.trades[0]\n    # short BTC-USD\n    t2 = store.closed_trades.trades[1]\n    # long ETH-USD\n    t3 = store.closed_trades.trades[2]\n\n    assert t1.symbol == 'BTC-USDT'\n    assert t1.type == 'long'\n    assert t1.entry_price == 121\n    assert t1.exit_price == 131\n    assert t1.qty == 1\n\n    assert t2.symbol == 'BTC-USDT'\n    assert t2.type == 'short'\n    assert t2.entry_price == 151\n    assert t2.exit_price == 161\n    assert t2.qty == 1\n\n    assert t3.symbol == 'ETH-USDT'\n    assert t3.type == 'long'\n    # because we open at 10, and increase at 20, entry is the mean which is 15\n    assert t3.entry_price == 15\n    # (50 + 70) / 2\n    assert t3.exit_price == 60\n    assert t3.qty == 2\n\n\ndef test_on_route_open_position():\n    two_routes_backtest('Test21', 'Test22')\n\n    t1 = store.closed_trades.trades[0]\n    t2 = store.closed_trades.trades[1]\n\n    assert t1.symbol == 'BTC-USDT'\n    assert t1.type == 'long'\n    assert t1.entry_price == 101\n    assert t1.exit_price == 110\n    assert t1.qty == 1\n\n    assert t2.symbol == 'ETH-USDT'\n    assert t2.type == 'long'\n    assert t2.entry_price == 10\n    assert t2.exit_price == 20\n    assert t2.qty == 1\n\n\ndef test_on_route_open_position_like_the_example_on_the_docs():\n    two_routes_backtest('TestOnRouteOpenPosition', 'TestOnRouteOpenPosition2')\n\n\ndef test_on_route_stop_loss():\n    two_routes_backtest('Test25', 'Test26')\n\n    t1 = store.closed_trades.trades[0]\n    t2 = store.closed_trades.trades[1]\n\n    assert t2.symbol == 'BTC-USDT'\n    assert t2.type == 'long'\n    assert t2.entry_price == 101\n    assert t2.exit_price == 120\n    assert t2.qty == 1\n\n    assert t1.symbol == 'ETH-USDT'\n    assert t1.type == 'short'\n    assert t1.entry_price == 10\n    assert t1.exit_price == 20\n    assert t1.qty == 1\n\n\ndef test_on_route_take_profit():\n    two_routes_backtest('Test23', 'Test24')\n\n    t1 = store.closed_trades.trades[0]\n    t2 = store.closed_trades.trades[1]\n\n    assert t2.symbol == 'BTC-USDT'\n    assert t2.type == 'long'\n    assert t2.entry_price == 101\n    assert t2.exit_price == 120\n    assert t2.qty == 1\n\n    assert t1.symbol == 'ETH-USDT'\n    assert t1.type == 'long'\n    assert t1.entry_price == 10\n    assert t1.exit_price == 20\n    assert t1.qty == 1\n\n\ndef test_opening_position_in_multiple_points():\n    single_route_backtest('Test15')\n\n    assert len(store.closed_trades.trades) == 1\n    t1: ClosedTrade = store.closed_trades.trades[0]\n    assert t1.type == 'long'\n    assert t1.entry_price == (7 + 9 + 11) / 3\n    assert t1.exit_price == 15\n    assert t1.qty == 1.5\n    assert t1.fee == 0\n\n\ndef test_reducing_position_size_after_opening():\n    single_route_backtest('Test17')\n\n    assert len(store.closed_trades.trades) == 1\n    t1: ClosedTrade = store.closed_trades.trades[0]\n    assert t1.type == 'long'\n    assert t1.entry_price == 7\n    assert t1.exit_price == (15 + 10) / 2\n    assert t1.qty == 2\n    assert t1.fee == 0\n\n\ndef test_shared_vars():\n    two_routes_backtest('Test32', 'Test33')\n\n    t1 = store.closed_trades.trades[0]\n\n    assert t1.symbol == 'ETH-USDT'\n    assert t1.type == 'long'\n    assert t1.entry_price == 11\n    assert t1.exit_price == 21\n    assert t1.qty == 1\n\n\ndef test_should_buy_and_execute_buy():\n    set_up()\n\n    routes = [\n        {'symbol': 'ETH-USDT', 'timeframe': timeframes.MINUTE_5, 'strategy': 'Test01'},\n    ]\n\n    candles = {}\n    for r in routes:\n        key = jh.key(exchanges.SANDBOX, r['symbol'])\n        candles[key] = {\n            'exchange': exchanges.SANDBOX,\n            'symbol': r['symbol'],\n            'candles': range_candles((5 * 3) * 20)\n        }\n\n    # run backtest (dates are fake just to pass)\n    backtest_mode.run('000', False, {}, exchanges.SANDBOX, routes, [], '2019-04-01', '2019-04-02', candles)\n\n    for r in router.routes:\n        s: Strategy = r.strategy\n        p = s.position\n\n        assert p.is_close is True\n        assert len(s.trades[0].orders) == 2\n        o: Order = s.trades[0].orders[0]\n        short_candles = candle_service.get_candles(r.exchange, r.symbol, '1m')\n        assert o.price == short_candles[4][2]\n        assert o.price == s.candles[0][2]\n        assert o.created_at == short_candles[4][0] + 60_000\n        assert o.is_executed is True\n        assert s.trade is None\n        trade: ClosedTrade = store.closed_trades.trades[0]\n        assert trade.type == 'long'\n        # must include executed orders, in this case it's entry and take_profit\n        assert len(trade.orders) == 2\n        assert trade.orders[0].side == 'buy'\n        assert trade.orders[0].type == 'MARKET'\n        assert trade.orders[1].side == 'sell'\n        assert trade.orders[1].type == 'LIMIT'\n        assert len(store.closed_trades.trades) == 1\n\n\ndef test_should_sell_and_execute_sell():\n    set_up()\n\n    routes = [\n        {'symbol': 'ETH-USDT', 'timeframe': timeframes.MINUTE_5, 'strategy': 'Test02'},\n    ]\n\n    candles = {}\n    for r in routes:\n        key = jh.key(exchanges.SANDBOX, r['symbol'])\n        candles[key] = {\n            'exchange': exchanges.SANDBOX,\n            'symbol': r['symbol'],\n            'candles': range_candles((5 * 3) * 20)\n        }\n\n    # run backtest (dates are fake just to pass)\n    backtest_mode.run('000', False, {}, exchanges.SANDBOX, routes, [], '2019-04-01', '2019-04-02', candles)\n\n    for r in router.routes:\n        s: Strategy = r.strategy\n        p = s.position\n\n        assert p.is_close is True\n        orders = s.trades[-1].orders\n        assert len(orders) == 2\n        o: Order = orders[0]\n        short_candles = candle_service.get_candles(r.exchange, r.symbol, '1m')\n        assert o.price == short_candles[4][2]\n        assert o.price == s.candles[0][2]\n        assert o.created_at == short_candles[4][0] + 60_000\n        assert o.is_executed is True\n        assert s.trade is None\n        assert len(store.closed_trades.trades) == 1\n        assert store.closed_trades.trades[0].type == 'short'\n\n\ndef test_stop_loss_at_multiple_points():\n    single_route_backtest('Test11')\n\n    assert len(store.closed_trades.trades) == 1\n    t1: ClosedTrade = store.closed_trades.trades[0]\n    assert t1.type == 'short'\n    assert t1.entry_price == 3\n    assert t1.exit_price == (6 + 5 + 4) / 3\n    assert t1.qty == 1.5\n    assert t1.fee == 0\n\n\ndef test_strategy_properties():\n    two_routes_backtest('Test19', 'Test19')\n\n    for r in router.routes:\n        s: Strategy = r.strategy\n\n        assert s.name == r.strategy_name\n        assert s.symbol == r.symbol\n        assert s.exchange == r.exchange\n        assert s.timeframe == r.timeframe\n        assert s.trade is None\n        assert s._is_executing is False\n        assert s._is_initiated is True\n        np.testing.assert_equal(s.current_candle, candle_service.get_current_candle(r.exchange, r.symbol, r.timeframe))\n        np.testing.assert_equal(s.candles, candle_service.get_candles(r.exchange, r.symbol, r.timeframe))\n        assert s.position == store.positions.get_position(r.exchange, r.symbol)\n        assert s.orders == store.orders.get_orders(r.exchange, r.symbol)\n\n\ndef test_taking_profit_at_multiple_points():\n    single_route_backtest('Test10')\n\n    assert len(store.closed_trades.trades) == 1\n    t1: ClosedTrade = store.closed_trades.trades[0]\n    assert t1.type == 'long'\n    assert t1.entry_price == 7\n    assert t1.exit_price == (15 + 13 + 11) / 3\n    assert t1.qty == 1.5\n    assert t1.fee == 0\n    assert t1.holding_period == 8 * 60\n\n\ndef test_terminate_closes_trades_at_the_end_of_backtest():\n    single_route_backtest('Test40')\n\n    # assert that Strategy's _terminate() method closes the open position (without defining `terminate()`)\n    assert store.app.total_open_trades == 1\n    assert store.app.total_open_pl == 97\n\n\ndef test_updating_stop_loss_and_take_profit_after_opening_the_position():\n    set_up()\n\n    routes = [\n        {'symbol': 'ETH-USDT', 'timeframe': timeframes.MINUTE_1, 'strategy': 'Test07'}\n    ]\n\n    candles = {}\n    key = jh.key(exchanges.SANDBOX, 'ETH-USDT')\n    candles[key] = {\n        'exchange': exchanges.SANDBOX,\n        'symbol': 'ETH-USDT',\n        'candles': test_candles_1\n    }\n\n    # run backtest (dates are fake just to pass)\n    backtest_mode.run('000', False, {}, exchanges.SANDBOX, routes, [], '2019-04-01', '2019-04-02', candles)\n\n    t1: ClosedTrade = store.closed_trades.trades[0]\n    assert t1.type == 'long'\n    assert t1.entry_price == 129.23\n    assert t1.exit_price == 128.98\n    assert t1.qty == 10.204\n    assert t1.fee == 0\n    assert t1.opened_at == 1547201100000 + 60000\n    assert t1.closed_at == 1547201700000 + 60000\n    assert t1.orders[0].type == order_types.MARKET\n\n    t2: ClosedTrade = store.closed_trades.trades[1]\n    assert t2.type == 'short'\n    assert t2.entry_price == 128.01\n    assert t2.exit_price == 127.66\n    assert t2.qty == 10\n    assert t2.fee == 0\n    assert t2.opened_at == 1547203560000 + 60000\n    assert t2.closed_at == 1547203680000 + 60000\n    assert t2.orders[0].type == order_types.MARKET\n\n\ndef test_validation_for_equal_stop_loss_and_take_profit():\n    with pytest.raises(Exception) as err:\n        single_route_backtest('Test46')\n\n    assert str(err.value).startswith('stop-loss and take-profit should not be exactly the same')\n\n\ndef test_increased_and_reduced_count():\n    single_route_backtest('TestIncreasedAndReducedCount')\n\n\ndef test_before():\n    single_route_backtest('TestBeforeMethod')\n\n\ndef test_after():\n    single_route_backtest('TestAfterMethod')\n\n\ndef test_leverage_property():\n    single_route_backtest('TestLeverageProperty1', is_futures_trading=False)\n\n    single_route_backtest('TestLeverageProperty1', is_futures_trading=True, leverage=1)\n\n    single_route_backtest('TestLeverageProperty2', is_futures_trading=True, leverage=2)\n\n\ndef test_reduce_only_market_orders():\n    single_route_backtest('TestReduceOnlyMarketOrders', is_futures_trading=True, leverage=1)\n\n\ndef test_liquidation_in_isolated_mode_for_short_trades():\n    single_route_backtest(\n        'TestLiquidationInIsolatedModeForShortTrade', is_futures_trading=True, leverage=2,\n        leverage_mode='isolated'\n    )\n\n\ndef test_liquidation_in_isolated_mode_for_long_trades():\n    single_route_backtest(\n        'TestLiquidationInIsolatedModeForLongTrade', is_futures_trading=True, leverage=2,\n        leverage_mode='isolated', trend='down'\n    )\n\n\ndef test_mark_price():\n    single_route_backtest(\n        'TestMarkPrice', is_futures_trading=True,\n    )\n\n\ndef test_log_method():\n    single_route_backtest('TestLogMethodInStrategyClass')\n\n    assert store.logs.info[1]['message'] == 'test info log'\n    assert store.logs.errors[0]['message'] == 'test error log'\n\n\ndef test_using_market_order_for_low_price_difference():\n    single_route_backtest('TestMarketOrderForLowPriceDifference')\n\n\ndef test_dna_method():\n    single_route_backtest('TestDnaMethod')\n\n\ndef test_default_hyperparameters():\n    single_route_backtest('TestDefaultHyperparameters')\n\n\ndef test_positions():\n    set_up()\n\n    routes = [\n        {'symbol': 'ETH-USDT', 'timeframe': '5m', 'strategy': 'TestPositions'},\n        {'symbol': 'BTC-USDT', 'timeframe': '5m', 'strategy': 'TestPositions'},\n    ]\n\n    candles = {}\n    for r in routes:\n        key = jh.key(exchanges.SANDBOX, r['symbol'])\n        candles[key] = {\n            'exchange': exchanges.SANDBOX,\n            'symbol': r['symbol'],\n            'candles': range_candles((5 * 3) * 20)\n        }\n    # run backtest (dates are fake just to pass)\n    backtest_mode.run('000', False, {}, exchanges.SANDBOX, routes, [], '2019-04-01', '2019-04-02', candles)\n\n    # assertions done in the TestPositions\n\n\ndef test_portfolio_value():\n    set_up(leverage=2)\n\n    routes = [\n        {'symbol': 'ETH-USDT', 'timeframe': '5m', 'strategy': 'TestPortfolioValue'},\n        {'symbol': 'BTC-USDT', 'timeframe': '5m', 'strategy': 'TestPortfolioValue'},\n    ]\n\n    candles = {}\n    for r in routes:\n        key = jh.key(exchanges.SANDBOX, r['symbol'])\n        candles[key] = {\n            'exchange': exchanges.SANDBOX,\n            'symbol': r['symbol'],\n            'candles': range_candles((5 * 3) * 20)\n        }\n    # run backtest (dates are fake just to pass)\n    backtest_mode.run('000', False, {}, exchanges.SANDBOX, routes, [], '2019-04-01', '2019-04-02', candles)\n\n    # assertions done in the TestPortfolioValue\n\n\ndef test_portfolio_value_includes_position_value_and_open_orders_value():\n    # in futures mode\n    single_route_backtest(\n        'TestPortfolioValueIncludesPositionValueAndOpenOrdersValue',\n        is_futures_trading=True,\n    )\n    # in the spot mode\n    single_route_backtest(\n        'TestPortfolioValueIncludesPositionValueAndOpenOrdersValue',\n        is_futures_trading=False,\n    )\n\n\ndef test_multiple_entry_orders_update_entry_long():\n    single_route_backtest('TestMultipleEntryOrdersUpdateEntryLongPositions')\n\n\ndef test_multiple_entry_orders_update_entry_short():\n    single_route_backtest('TestMultipleEntryOrdersUpdateEntryShortPositions')\n\n\ndef test_can_cancel_entry_orders_after_open_position():\n    # long position - setting to []\n    single_route_backtest('TestCanCancelEntryOrdersAfterOpenPositionLong1')\n    # long position - setting to None\n    single_route_backtest('TestCanCancelEntryOrdersAfterOpenPositionLong2')\n\n    # short position - setting to []\n    single_route_backtest('TestCanCancelEntryOrdersAfterOpenPositionShort1')\n    # short position - setting to None\n    single_route_backtest('TestCanCancelEntryOrdersAfterOpenPositionShort2')\n\n\ndef test_stop_loss_price_is_replaced_with_market_order():\n    # long position\n    single_route_backtest('TestStopLossPriceIsReplacedWithMarketOrderForBetterPriceLongPosition')\n    # short position\n    single_route_backtest('TestStopLossPriceIsReplacedWithMarketOrderForBetterPriceShortPosition')\n\n\ndef test_take_profit_price_is_replaced_with_market_order():\n    # long position\n    single_route_backtest('TestTakeProfitPriceIsReplacedWithMarketOrderWhenMoreConvenientLongPosition')\n    # short position\n    single_route_backtest('TestTakeProfitPriceIsReplacedWithMarketOrderWhenMoreConvenientShortPosition')\n\n\ndef test_can_run_without_shorting():\n    single_route_backtest('TestCanRunWithoutShorting')\n\n\ndef test_entry_orders_and_exit_orders_properties():\n    single_route_backtest('TestEntryOrdersAndExitOrdersProperties')\n\n\ndef test_exchange_type_property():\n    # spot\n    single_route_backtest('TestExchangeTypeProperty1', is_futures_trading=False)\n    # futures\n    single_route_backtest('TestExchangeTypeProperty2', is_futures_trading=True)\n\n\ndef test_on_cancel_method():\n    single_route_backtest('TestOnCancelMethod')\n\n\ndef test_order_price_cannot_be_greater_than_zero():\n    with pytest.raises(exceptions.InvalidStrategy):\n        single_route_backtest('TestOrderPriceCannotBeGreaterThanZero')\n\n\ndef test_daily_balances_property():\n    single_route_backtest('TestDailyBalancesProperty', candles_count=10*1440)\n\n\ndef test_capital_property_raises_not_implemented_error():\n    with pytest.raises(NotImplementedError):\n        single_route_backtest('TestCapitalPropertyRaisesNotImplementedError')\n\n\ndef test_strategy_variables_are_reset_before_opening_new_position():\n    single_route_backtest(\n        'TestStrategyVariablesAreResetBeforeOpeningNewPosition',\n        is_futures_trading=False\n    )\n\n\ndef test_can_open_a_new_position_immediately_after_closing_via_update_position():\n    single_route_backtest('TestCanOpenANewPositionImmediatelyAfterClosingViaUpdatePosition')\n\n\ndef test_before_terminate1():\n    single_route_backtest('TestBeforeTerminate')\n\n\ndef test_before_terminate2():\n    \"\"\"\n    test that user can use terminate() method. in this unit test use it\n    to close the open position.\n    `\"\"\"\n    single_route_backtest('Test41')\n\n    # TODO\n    # assert terminate() is actually executed by logging a\n    # string init, and then checking for that log message\n    # assert {'id': 2, 'message': 'executed terminate successfully', 'time': 1552315246171.0} in store.logs.info\n\n    # assert inside strategies terminate() that we have indeed an open position\n\n    # assert that Strategy's terminate() method closes the open position\n    assert store.app.total_open_trades == 0\n    assert store.app.total_open_pl == 0\n\n\ndef test_terminate():\n    single_route_backtest('TestTerminate')\n\n    from jesse.store import store\n    assert store.app.starting_time == 1\n\n\ndef test_chart_values():\n    with pytest.raises(ValueError):\n        single_route_backtest('TestAddHorizontalLineToCandleChart')\n\n    with pytest.raises(ValueError):\n        single_route_backtest('TestAddLineToCandleChart')\n\n    with pytest.raises(ValueError):\n        single_route_backtest('TestAddHorizontalLineToExtraChart')\n\n    with pytest.raises(ValueError):\n        single_route_backtest('TestAddLineToExtraChart')\n\n\ndef test_without_cancel_method():\n    single_route_backtest('TestWithoutCancelMethod')\n\n\ndef test_proper_balance_handling_in_spot_after_order_cancellation():\n    single_route_backtest('TestProperBalanceHanldingInSpotAfterOrderCancellation', is_futures_trading=False, trend='down')\n\n\ndef test_current_route_index():\n    two_routes_backtest('TestCurrentRouteIndex1', 'TestCurrentRouteIndex2')\n\n\ndef test_data_routes():\n    two_data_routes_backtest('TestDataRoutes1', 'TestDataRoutes2')\n\n\ndef test_on_close_position():\n    single_route_backtest('TestOnClosePosition')\n"
  },
  {
    "path": "tests/test_position.py",
    "content": "from jesse.enums import exchanges\nfrom jesse.models import Position\nfrom jesse.testing_utils import set_up, single_route_backtest\nfrom jesse.services import position_service\n\n\ndef test_increase_a_long_position():\n    set_up()\n\n    p = position_service.create_position(exchanges.SANDBOX, 'BTC-USDT', {\n        'entry_price': 50,\n        'current_price': 50,\n        'qty': 2,\n    })\n\n    position_service._mutating_increase(p, 2, 100)\n\n    assert p.qty == 4\n    assert p.entry_price == 75\n\n\ndef test_increase_a_short_position():\n    set_up()\n\n    p = position_service.create_position(exchanges.SANDBOX, 'BTC-USDT', {\n        'entry_price': 50,\n        'current_price': 50,\n        'qty': -2,\n    })\n\n    position_service._mutating_increase(p, 2, 40)\n\n    assert p.qty == -4\n    assert p.entry_price == 45\n\n\ndef test_initiating_position():\n    position = position_service.create_position(exchanges.SANDBOX, 'BTC-USDT', {\n        'current_price': 100,\n        'qty': 0\n    })\n\n    assert position.exchange_name == 'Sandbox'\n    assert position.symbol == 'BTC-USDT'\n    assert position.current_price == 100\n    assert position.qty == 0\n    assert position.closed_at is None\n    assert position.opened_at is None\n    assert position.entry_price is None\n    assert position.exit_price is None\n\n\ndef test_is_able_to_close_via_reduce_position_too():\n    set_up()\n\n    p = position_service.create_position(exchanges.SANDBOX, 'BTC-USDT', {\n        'entry_price': 50,\n        'current_price': 50,\n        'qty': 2,\n    })\n\n    position_service._mutating_reduce(p, 2, 50)\n\n    assert p.qty == 0\n\n\ndef test_open_position():\n    set_up()\n\n    p = position_service.create_position(exchanges.SANDBOX, 'BTC-USDT')\n\n    assert p.qty == 0\n    assert p.entry_price is None\n    assert p.exit_price is None\n    assert p.current_price is None\n\n    position_service._mutating_open(p, 1, 50)\n\n    assert p.qty == 1\n    assert p.entry_price == 50\n    assert p.exit_price is None\n\n\ndef test_position_is_close():\n    p = position_service.create_position(exchanges.SANDBOX, 'BTC-USDT', {\n        'entry_price': 50,\n        'current_price': 60,\n        'qty': 0,\n    })\n    assert p.is_close is True\n\n    p.qty = 2\n    assert p.is_close is False\n\n\ndef test_position_is_open():\n    p = position_service.create_position(exchanges.SANDBOX, 'BTC-USDT', {\n        'entry_price': 50,\n        'current_price': 60,\n        'qty': 2,\n    })\n    assert p.is_open is True\n\n    p.qty = 0\n    assert p.is_open is False\n\n\ndef test_position_pnl():\n    # long winning position\n    p1: Position = position_service.create_position(exchanges.SANDBOX, 'BTC-USDT', {\n        'entry_price': 100,\n        'current_price': 110,\n        'qty': 2,\n    })\n    assert p1.pnl == 20\n\n    # long losing position\n    p2: Position = position_service.create_position(exchanges.SANDBOX, 'BTC-USDT', {\n        'entry_price': 100,\n        'current_price': 90,\n        'qty': 2,\n    })\n    assert p2.pnl == -20\n\n    # short winning position\n    p3: Position = position_service.create_position(exchanges.SANDBOX, 'BTC-USDT', {\n        'entry_price': 100,\n        'current_price': 90,\n        'qty': -2,\n    })\n    assert p3.pnl == 20\n\n    # short losing position\n    p3: Position = position_service.create_position(exchanges.SANDBOX, 'BTC-USDT', {\n        'entry_price': 100,\n        'current_price': 110,\n        'qty': -2,\n    })\n    assert p3.pnl == -20\n\n\ndef test_position_pnl_percentage():\n    p = position_service.create_position(exchanges.SANDBOX, 'BTC-USDT', {\n        'entry_price': 50,\n        'current_price': 60,\n        'qty': 2,\n    })\n\n    # long position\n    assert p.pnl_percentage == 20\n\n    p.current_price -= 20\n    assert p.pnl_percentage == -20\n\n    # short position\n    p.entry_price = 50\n    p.qty = -2\n    p.current_price = 40\n    assert p.pnl_percentage == 20\n\n\ndef test_position_roi():\n    set_up()\n    p = position_service.create_position(exchanges.SANDBOX, 'BTC-USDT')\n    position_service._mutating_open(p, 3, 100)\n    p.current_price = 110\n\n    assert p.value == 330\n    assert p.total_cost == 300\n\n    assert p.roi == 10\n\n\ndef test_position_type():\n    p = position_service.create_position(exchanges.SANDBOX, 'BTC-USDT', {'current_price': 100, 'qty': 0})\n    assert p.type == 'close'\n\n    p = position_service.create_position(exchanges.SANDBOX, 'BTC-USDT', {'current_price': 100, 'qty': 1})\n    assert p.type == 'long'\n\n    p = position_service.create_position(exchanges.SANDBOX, 'BTC-USDT', {\n        'current_price': 100,\n        'qty': -1\n    })\n    assert p.type == 'short'\n\n\ndef test_position_value():\n    long_position = position_service.create_position(exchanges.SANDBOX, 'BTC-USDT', {'current_price': 100, 'qty': 1})\n    short_position = position_service.create_position(exchanges.SANDBOX, 'BTC-USDT', {'current_price': 100, 'qty': -1})\n\n    assert long_position.value == 100\n    assert short_position.value == 100\n\n    closed_position_value = position_service.create_position(exchanges.SANDBOX, 'BTC-USDT', {'qty': 0})\n    assert closed_position_value.value == 0\n\n\ndef test_position_with_leverage():\n    # with 1x leverage\n    single_route_backtest('TestPositionWithLeverage1', leverage=1)\n\n    # with 2x leverage\n    single_route_backtest('TestPositionWithLeverage2', leverage=2)\n\n\ndef test_reduce_a_long_position():\n    set_up()\n\n    p = position_service.create_position(exchanges.SANDBOX, 'BTC-USDT', {\n        'entry_price': 50,\n        'current_price': 50,\n        'qty': 2,\n    })\n\n    position_service._mutating_reduce(p, 1, 50)\n\n    assert p.qty == 1\n\n\ndef test_reduce_a_short_position():\n    set_up()\n\n    p = position_service.create_position(exchanges.SANDBOX, 'BTC-USDT', {\n        'entry_price': 50,\n        'current_price': 50,\n        'qty': -2,\n    })\n\n    position_service._mutating_reduce(p, 1, 50)\n\n    assert p.qty == -1\n\n\ndef test_position_exchange_type_property():\n    single_route_backtest(\n        'TestPositionExchangeTypeProperty1',\n        is_futures_trading=True\n    )\n\n    single_route_backtest(\n        'TestPositionExchangeTypeProperty2',\n        is_futures_trading=False\n    )\n\n\ndef test_position_total_cost_property():\n    # futures\n    single_route_backtest(\n        'TestPositionTotalCostProperty',\n        is_futures_trading=True,\n        leverage=2\n    )\n\n    # spot\n    single_route_backtest(\n        'TestPositionTotalCostProperty',\n        is_futures_trading=False\n    )\n\n"
  },
  {
    "path": "tests/test_research.py",
    "content": "import pytest\nfrom jesse import research\n\n\ndef test_store_candles():\n    \"\"\"\n    for now, don't actually store it in the db. But test validations, etc\n    \"\"\"\n    # validate that candles type must be np.ndarray\n    with pytest.raises(TypeError):\n        research.store_candles({}, 'Test Exchange', 'BTC-USDT')\n    with pytest.raises(TypeError):\n        research.store_candles([], 'Test Exchange', 'BTC-USDT')\n\n    # add validation for timeframe to make sure it's `1m`\n    with pytest.raises(ValueError):\n        close_prices = [10, 11]\n        np_candles = research.candles_from_close_prices(close_prices)\n        # change the timeframe to 5 minutes\n        np_candles[1][0] += 300_000\n        research.store_candles(np_candles, 'Test Exchange', 'BTC-USDT')\n\n    # just make sure it doesn't raise an error\n    close_prices = [10, 11, 12, 12, 11, 13, 14, 12, 11, 15]\n    np_candles = research.candles_from_close_prices(close_prices)\n    research.store_candles(np_candles, 'Test Exchange', 'BTC-USDT')\n"
  },
  {
    "path": "tests/test_router.py",
    "content": "from jesse.config import config\nfrom jesse.enums import exchanges, timeframes\nfrom jesse.routes import router\nfrom jesse.store import store\nfrom jesse.services import exchange_service, order_service, position_service\n\n\ndef test_routes():\n    # re-define routes\n    trading_routes = [\n        {'exchange': exchanges.SANDBOX, 'symbol': 'ETH-USD', 'timeframe': timeframes.HOUR_3, 'strategy': 'Test19'},\n        {'exchange': exchanges.SANDBOX, 'symbol': 'BTC-USD', 'timeframe': timeframes.MINUTE_15, 'strategy': 'Test19'},\n    ]\n    data_routes = [\n        {'exchange': exchanges.SANDBOX, 'symbol': 'EOS-USD', 'timeframe': timeframes.HOUR_3},\n        {'exchange': exchanges.SANDBOX, 'symbol': 'EOS-USD', 'timeframe': timeframes.HOUR_1},\n    ]\n    \n    router.initiate(trading_routes, data_routes)\n\n    # reset store\n    store.reset() \n    # initialize exchanges state\n    exchange_service.initialize_exchanges_state()\n    # initialize orders state\n    order_service.initialize_orders_state()\n    # initialize positions state\n    position_service.initialize_positions_state()\n\n    # now assert it's working as expected\n    assert set(config['app']['trading_exchanges']) == set([exchanges.SANDBOX])\n    assert set(config['app']['trading_symbols']) == set(['BTC-USD', 'ETH-USD'])\n    assert set(config['app']['trading_timeframes']) == set([timeframes.HOUR_3, timeframes.MINUTE_15])\n    assert set(config['app']['considering_exchanges']) == set([exchanges.SANDBOX, exchanges.SANDBOX])\n    assert set(config['app']['considering_symbols']) == set(['BTC-USD', 'ETH-USD', 'EOS-USD'])\n    assert set(config['app']['considering_timeframes']) == set(\n        [timeframes.MINUTE_1, timeframes.HOUR_3, timeframes.MINUTE_15, timeframes.HOUR_1])\n"
  },
  {
    "path": "tests/test_spot_mode.py",
    "content": "from jesse.testing_utils import single_route_backtest\nimport pytest\nfrom jesse import exceptions\n\n\ndef test_should_be_able_to_short_in_spot_mode():\n    with pytest.raises(exceptions.InvalidStrategy):\n        single_route_backtest('TestShortInSpot', is_futures_trading=False)\n\n\ndef test_should_raise_exception_if_trying_to_spend_more_than_available_balance_in_spot_mode():\n    with pytest.raises(exceptions.InsufficientBalance):\n        single_route_backtest('TestCannotSpendMoreThanAvailableBalance', is_futures_trading=False)\n\n\ndef test_should_raise_exception_if_trying_to_submit_take_profit_order_with_size_more_than_current_position_qty():\n    \"\"\"\n    cannot submit take-profit order with the size more than the current position's qty\n    \"\"\"\n    with pytest.raises(exceptions.InsufficientBalance):\n        single_route_backtest(\n            'TestCannotSubmitTakeProfitOrderWithSizeMoreThanCurrentPositionQty',\n            is_futures_trading=False\n        )\n\n\ndef test_should_raise_exception_if_trying_to_submit_stop_loss_order_with_size_more_than_current_position_qty():\n    \"\"\"\n    cannot submit stop-loss order with the size more than the current position's qty\n    \"\"\"\n    with pytest.raises(exceptions.InsufficientBalance):\n        single_route_backtest(\n            'TestCannotSubmitStopLossOrderWithSizeMoreThanCurrentPositionQty',\n            is_futures_trading=False\n        )\n\n\ndef test_should_be_able_to_submit_take_profit_order_with_size_less_or_equal_to_current_position_qty():\n    \"\"\"\n    test that can indeed submit a take profit order with size less or equal to the current position's qty\n    \"\"\"\n    single_route_backtest(\n        'TestCanSubmitTakeProfitOrderWithSizeEqualToCurrentPositionQty',\n        is_futures_trading=False\n    )\n\n    single_route_backtest(\n        'TestCanSubmitTakeProfitOrderWithSizeLessThanCurrentPositionQty',\n        is_futures_trading=False\n    )\n\n\ndef test_should_be_able_to_submit_stop_loss_order_with_size_less_or_equal_to_current_position_qty():\n    \"\"\"\n    test that can indeed submit a stop-loss order with size less or equal to the current position's qty\n    \"\"\"\n    single_route_backtest(\n        'TestCanSubmitStopLossOrderWithSizeEqualToCurrentPositionQty',\n        is_futures_trading=False,\n        trend='down'\n    )\n\n    single_route_backtest(\n        'TestCanSubmitStopLossOrderWithSizeLessThanCurrentPositionQty',\n        is_futures_trading=False,\n        trend='down'\n    )\n\n\ndef test_should_be_able_submit_take_profit_and_stop_loss_at_same_time_in_spot():\n    single_route_backtest(\n        'TestCanSubmitTakeProfitAndStopLossAtSameTimeInSpot',\n        is_futures_trading=False\n    )\n\n\ndef test_stop_order_should_consider_executed_take_profit_orders_in_spot():\n    \"\"\"\n    test that stop-loss order considers executed take-profit orders (when\n    the take-profit order is submitted via multiple orders.\n    \"\"\"\n    single_route_backtest(\n        'TestStopOrderShouldConsiderExecutedTakeProfitOrdersInSpot',\n        is_futures_trading=False\n    )\n\n\ndef test_balances_are_handled_correctly_for_cancelling_orders_in_spot():\n    single_route_backtest(\n        'TestBalancesAreHandledCorrectlyForCancellingOrdersInSpot',\n        is_futures_trading=False\n    )\n\n\ndef test_position_open_increase_reduce_close_events_in_spot():\n    single_route_backtest(\n        'TestPositionOpenIncreaseReduceCloseEventsInSpot',\n        is_futures_trading=False,\n        fee=0.001\n    ) \n\n\ndef test_balance_and_fee_reduction_works_correctly_in_spot_mode_in_both_buy_and_sell_orders():\n    single_route_backtest(\n        'TestBalanceAndFeeReductionWorksCorrectlyInSpotModeInBothBuyAndSellOrders',\n        is_futures_trading=False,\n        fee=0.001\n    )\n\n\ndef test_cannot_set_stop_loss_order_in_go_long():\n    with pytest.raises(exceptions.InvalidStrategy):\n        single_route_backtest(\n            'TestCannotSetStopLossOrderInGoLong',\n            is_futures_trading=False\n        )\n\n\ndef test_cannot_set_take_profit_order_in_go_long():\n    with pytest.raises(exceptions.InvalidStrategy):\n        single_route_backtest(\n            'TestCannotSetTakeProfitOrderInGoLong',\n            is_futures_trading=False\n        )\n"
  },
  {
    "path": "tests/test_state_candle.py",
    "content": "import numpy as np\nfrom jesse.config import config, reset_config\nfrom jesse.factories import fake_candle, range_candles\nfrom jesse.services import candle_service\nfrom jesse.store import store\n\n\ndef set_up():\n    reset_config()\n    from jesse.routes import router\n    router.set_routes([\n        {'exchange': 'Sandbox', 'symbol': 'BTC-USD', 'timeframe': '1m', 'strategy': 'Test01'}\n    ])\n    router.set_data_routes([{'exchange': 'Sandbox', 'symbol': 'BTC-USD', 'timeframe': '5m'}])\n    config['app']['considering_timeframes'] = ['1m', '5m']\n    config['app']['considering_symbols'] = ['BTC-USD']\n    config['app']['considering_exchanges'] = ['Sandbox']\n    store.reset()\n    store.candles.init_storage()\n\n\ndef test_batch_add_candles():\n    set_up()\n\n    assert len(candle_service.get_candles('Sandbox', 'BTC-USD', '1m')) == 0\n\n    # create 100 candles\n    candles_to_add = range_candles(100)\n    assert len(candles_to_add) == 100\n\n    candle_service.batch_add_candle(candles_to_add, 'Sandbox', 'BTC-USD', '1m')\n    np.testing.assert_equal(candle_service.get_candles('Sandbox', 'BTC-USD', '1m'), candles_to_add)\n\n\ndef test_can_add_new_candle():\n    set_up()\n\n    np.testing.assert_equal(candle_service.get_candles('Sandbox', 'BTC-USD', '1m'), np.zeros((0, 6)))\n\n    c1 = fake_candle()\n    candle_service.add_candle(c1, 'Sandbox', 'BTC-USD', '1m')\n    np.testing.assert_equal(candle_service.get_candles('Sandbox', 'BTC-USD', '1m')[0], c1)\n    # try to add duplicate\n    candle_service.add_candle(c1, 'Sandbox', 'BTC-USD', '1m')\n    # assert to make sure it's the same\n    np.testing.assert_equal(candle_service.get_candles('Sandbox', 'BTC-USD', '1m')[0], c1)\n\n    c2 = fake_candle()\n    candle_service.add_candle(c2, 'Sandbox', 'BTC-USD', '1m')\n    np.testing.assert_equal(candle_service.get_candles('Sandbox', 'BTC-USD', '1m'), np.array([c1, c2]))\n\n\ndef test_get_candles_including_forming():\n    set_up()\n\n    candles_to_add = range_candles(14)\n    candle_service.batch_add_candle(candles_to_add, 'Sandbox', 'BTC-USD', '1m')\n    candle_service.add_candle(\n        candle_service.generate_candle_from_one_minutes(\n            '5m', candles_to_add[0:5], False\n        ),\n        'Sandbox', 'BTC-USD', '5m'\n    )\n    candle_service.add_candle(\n        candle_service.generate_candle_from_one_minutes(\n            '5m', candles_to_add[5:10], False\n        ),\n        'Sandbox', 'BTC-USD', '5m'\n    )\n\n    assert len(candle_service.get_candles('Sandbox', 'BTC-USD', '5m')) == 3\n    assert len(candle_service.get_candles('Sandbox', 'BTC-USD', '1m')) == 14\n\n    candles = candle_service.get_candles('Sandbox', 'BTC-USD', '5m')\n    assert candles[0][0] == candles_to_add[0][0]\n    assert candles[-1][2] == candles_to_add[13][2]\n    assert candles[-1][0] == candles_to_add[10][0]\n\n    # add third one while still a forming candle. Now since\n    # we already have forming, get_candles() must not\n    # append another forming candle to the end.\n    candle_service.add_candle(\n        candle_service.generate_candle_from_one_minutes(\n            '5m', candles_to_add[10:14], True\n        ),\n        'Sandbox', 'BTC-USD', '5m'\n    )\n\n    assert len(candle_service.get_candles('Sandbox', 'BTC-USD', '5m')) == 3\n    assert candles[-1][2] == candles_to_add[13][2]\n    assert candles[-1][0] == candles_to_add[10][0]\n\n\ndef test_get_forming_candle():\n    set_up()\n\n    candles_to_add = range_candles(13)\n    candle_service.batch_add_candle(candles_to_add[0:4], 'Sandbox', 'BTC-USD', '1m')\n    forming_candle = candle_service.get_current_candle('Sandbox', 'BTC-USD', '5m')\n    assert forming_candle[0] == candles_to_add[0][0]\n    assert forming_candle[1] == candles_to_add[0][1]\n    assert forming_candle[2] == candles_to_add[3][2]\n\n    # add the rest of 1m candles\n    candle_service.batch_add_candle(candles_to_add[4:], 'Sandbox', 'BTC-USD', '1m')\n    # add 5m candles\n    candle_service.batch_add_candle(candles_to_add[0:5], 'Sandbox', 'BTC-USD', '5m')\n    candle_service.batch_add_candle(candles_to_add[5:10], 'Sandbox', 'BTC-USD', '5m')\n\n    forming_candle = candle_service.get_current_candle('Sandbox', 'BTC-USD', '5m')\n    assert forming_candle[0] == candles_to_add[10][0]\n    assert forming_candle[1] == candles_to_add[10][1]\n    assert forming_candle[2] == candles_to_add[12][2]\n\n\ndef test_can_update_candle():\n    set_up()\n\n    np.testing.assert_equal(candle_service.get_candles('Sandbox', 'BTC-USD', '1m'), np.zeros((0, 6)))\n\n    # add it\n    c1 = fake_candle()\n    candle_service.add_candle(c1, 'Sandbox', 'BTC-USD', '1m')\n    np.testing.assert_equal(candle_service.get_current_candle('Sandbox', 'BTC-USD', '1m'), c1)\n\n    # now update it with another candle which has the same timestamp\n    c2 = c1.copy()\n    c2[1] = 1000\n    candle_service.add_candle(c2, 'Sandbox', 'BTC-USD', '1m')\n    np.testing.assert_equal(candle_service.get_current_candle('Sandbox', 'BTC-USD', '1m'), c2)\n    assert len(candle_service.get_candles('Sandbox', 'BTC-USD', '1m')) == 1\n\n\ndef test_can_update_previous_candle():\n    set_up()\n\n    # add 1th candle\n    c1 = fake_candle()\n    candle_service.add_candle(c1, 'Sandbox', 'BTC-USD', '1m')\n\n    # add 2nd candle\n    c2 = fake_candle()\n    candle_service.add_candle(c2, 'Sandbox', 'BTC-USD', '1m')\n\n    # add 3rd candle\n    c3 = fake_candle()\n    candle_service.add_candle(c3, 'Sandbox', 'BTC-USD', '1m')\n\n    # create a new candle from c2 and update its closing price\n    new_c2 = c2.copy()\n    new_c2[2] = 50\n\n    # assert that the 2nd candle is not updated yet\n    assert candle_service.get_candles('Sandbox', 'BTC-USD', '1m')[-2][2] != c3[2]\n\n    # update the 2nd candle\n    candle_service.add_candle(new_c2, 'Sandbox', 'BTC-USD', '1m')\n\n    # assert that the 2nd candle is updated now\n    assert candle_service.get_candles('Sandbox', 'BTC-USD', '1m')[-2][2] == new_c2[2]\n"
  },
  {
    "path": "tests/test_state_exchanges.py",
    "content": "from jesse.config import config, reset_config\nfrom jesse.enums import exchanges\nfrom jesse.store import store\nfrom jesse.routes import router\nfrom jesse.services import exchange_service, order_service, position_service\n\n\ndef set_up():\n    reset_config()\n    config['app']['considering_exchanges'] = [exchanges.SANDBOX]\n    config['app']['trading_exchanges'] = [exchanges.SANDBOX]\n    config['env']['exchanges'][exchanges.SANDBOX]['balance'] = 2000\n    routes = [\n        {'exchange': exchanges.SANDBOX, 'symbol': 'BTC-USDT', 'timeframe': '1m', 'strategy': 'TestVanillaStrategy'}\n    ]\n    router.initiate(routes)\n        # reset store\n    store.reset() \n    # initialize exchanges state\n    exchange_service.initialize_exchanges_state()\n    # initialize orders state\n    order_service.initialize_orders_state()\n    # initialize positions state\n    position_service.initialize_positions_state()\n\n\ndef test_have_correct_exchanges_in_store_after_creating_store():\n    set_up()\n\n    e = store.exchanges.get_exchange(exchanges.SANDBOX)\n    assert len(store.exchanges.storage) == 1\n    assert e.assets['USDT'] == 2000\n"
  },
  {
    "path": "tests/test_state_logs.py",
    "content": "import jesse.helpers as jh\nimport jesse.services.logger as logger\nfrom jesse.store import store\n\n\ndef set_up():\n    store.reset()\n\n# TODO\n# def test_can_log_error_by_firing_event():\n#     set_up()\n#\n#     # fire first error event\n#     logger.error('first error!!!!!')\n#     first_logged_error = {'id': 0, 'time': jh.now_to_timestamp(), 'message': 'first error!!!!!'}\n#\n#     assert store.logs.errors == [first_logged_error]\n#\n#     # fire second error event\n#     logger.error('second error!!!!!')\n#     second_logged_error = {'id': 1, 'time': jh.now_to_timestamp(), 'message': 'second error!!!!!'}\n#\n#     assert store.logs.errors == [first_logged_error, second_logged_error]\n#\n# TODO\n# def test_can_log_info_by_firing_event():\n#     set_up()\n#\n#     # fire first info event\n#     logger.info('first info!!!!!')\n#     first_logged_info = {'id': 0, 'time': jh.now_to_timestamp(), 'message': 'first info!!!!!'}\n#\n#     assert store.logs.info == [first_logged_info]\n#\n#     # fire second info event\n#     logger.info('second info!!!!!')\n#     second_logged_info = {\n#         'id': 1,\n#         'time': jh.now_to_timestamp(),\n#         'message': 'second info!!!!!'\n#     }\n#\n#     assert store.logs.info == [first_logged_info, second_logged_info]\n"
  },
  {
    "path": "tests/test_state_orderbook.py",
    "content": "import numpy as np\nimport pytest\n\nfrom jesse.config import config, reset_config\nfrom jesse.store import store\n\n\ndef set_up():\n    \"\"\"\n\n    \"\"\"\n    reset_config()\n    config['app']['considering_candles'] = [('Sandbox', 'BTC-USD')]\n    store.reset()\n    store.orderbooks.init_storage()\n\n#\n# def test_add_orderbook_and_orderbook_getters():\n#     set_up()\n#\n#     asks = [[9188.76, 52.66], [9189.68, 27.58], [9190.6, 29.36], [9191.52, 47.02], [9192.44, 31.44], [9193.36, 37.89],\n#             [9194.28, 44.37], [9195.2, 33.84], [9196.12, 26.23], [9197.04, 27.38], [9197.96, 51.1], [9198.88, 56.8],\n#             [9199.8, 52.01], [9200.72, 46.82], [9201.64, 58.11], [9220.0, 7.579], [9221.45, 1.0], [9232.71, 0.573],\n#             [9234.15, 0.595], [9236.9, 0.55], [9237.22, 0.573], [9237.92, 0.555], [9238.13, 0.562], [9238.52, 0.546],\n#             [9238.7, 0.557], [9239.0, 50.0], [9239.42, 0.546], [9240.59, 0.571], [9241.0, 1.0], [9243.0, 24.165],\n#             [9255.0, 4.0], [9256.66, 0.005], [9274.0, 95.479], [9279.52, 0.129], [9280.0, 0.05], [9300.0, 222.311],\n#             [9312.0, 4.336], [9330.0, 45.0], [9340.0, 190.0], [9345.0, 50.0], [9349.83, 0.03], [9406.19, 20.0],\n#             [9431.0, 5.347], [9450.0, 1.0], [9458.0, 2.0], [9460.0, 0.02], [9489.0, 215.11], [9550.0, 134.357],\n#             [9562.0, 25.0], [9582.0, 17.304], [9600.0, 21.784], [9640.0, 50.0], [9650.0, 1.0], [9692.0, 1000.0],\n#             [9715.0, 1.0], [9738.0, 0.5], [9792.0, 1.0], [9800.0, 1.0], [9813.0, 0.5], [9827.0, 50.0], [9990.0, 80.0],\n#             [9999.0, 1000.0], [10000.0, 2000.0], [10001.0, 50.0], [10119.0, 1.5], [10132.56, 1.957], [10186.56, 0.001],\n#             [10270.0, 2.0], [10447.0, 25.0], [10500.0, 200.0], [10600.0, 41.954], [71080.0, 1.0]]\n#     bids = [[9188.75, 53.43], [9187.83, 21.68], [9186.91, 40.64], [9185.99, 24.93], [9185.07, 51.37], [9184.15, 20.09],\n#             [9183.23, 49.1], [9182.31, 24.39], [9181.39, 20.79], [9181.12, 1.089], [9180.47, 35.67], [9179.55, 21.63],\n#             [9178.63, 35.59], [9177.71, 52.51], [9177.0, 11.866], [9176.79, 56.2], [9175.87, 37.16], [9168.0, 0.01],\n#             [9153.25, 0.01], [9150.0, 10.5], [9148.0, 0.01], [9130.0, 1.0], [9128.0, 0.01], [9108.0, 0.01],\n#             [9106.78, 0.01], [9100.0, 0.5], [9088.0, 0.01], [9080.0, 180.0], [9078.0, 35.0], [9068.0, 0.01],\n#             [9060.32, 0.011], [9050.0, 0.5], [9048.0, 0.01], [9028.0, 80.0], [9009.0, 7.0], [9002.0, 100.0],\n#             [9000.0, 40.325], [8999.0, 13.231], [8989.0, 0.1], [8965.0, 5.0], [8961.0, 300.0], [8960.06, 1.0],\n#             [8955.0, 300.0], [8911.0, 16.254], [8902.0, 340.0], [8900.0, 5.0], [8871.0, 25.0], [8866.42, 0.001],\n#             [8800.0, 1.0], [8777.0, 38.114], [8705.0, 10.0], [8700.0, 34.173], [8647.17, 10.0], [8600.0, 13.0],\n#             [8595.0, 20.0], [8550.0, 10.0], [8525.86, 5.823], [8500.0, 3.25], [8488.8, 0.007], [8465.11, 62.411],\n#             [8450.0, 80.0], [8443.8, 2.047], [8429.4, 0.001], [8400.0, 2.25], [8390.0, 160.0], [8388.0, 2.0],\n#             [8300.0, 7.25], [8200.0, 2.25], [8100.0, 54.0], [8085.0, 4.52], [8008.0, 3.747], [8000.0, 15.5],\n#             [7900.0, 124.505], [7855.0, 2.5], [7851.0, 100.0], [7821.0, 0.49], [7803.0, 0.001], [7800.0, 1.0],\n#             [7760.0, 5.92], [7702.0, 50.0], [7700.0, 1.0], [7675.0, 0.23], [7600.0, 1.0], [7568.3, 0.001],\n#             [7501.0, 50.0], [7500.0, 1.001], [7421.0, 50.0], [7405.0, 100.0], [7401.0, 100.0], [7011.0, 21.339],\n#             [7000.0, 206.0], [6986.0, 50.0], [6985.0, 0.076], [6950.0, 0.076], [6942.0, 0.02], [6915.0, 0.076],\n#             [6879.0, 0.03], [6798.0, 0.02], [6721.0, 100.0], [6450.0, 1.5], [6415.0, 172.154], [6404.95, 0.01],\n#             [6400.0, 1.0], [6372.92, 0.01], [6358.0, 0.182], [6341.05, 0.01], [6309.34, 0.01], [6301.0, 501.5],\n#             [6280.56, 0.085], [6277.79, 0.01], [6246.4, 0.01], [6220.0, 200.0], [6215.16, 0.01], [6184.08, 0.01],\n#             [6153.15, 0.01], [6122.38, 0.01], [6091.76, 0.01], [6061.3, 0.01], [6030.99, 0.01], [6021.0, 30.0],\n#             [6000.83, 0.01], [6000.0, 16.701]]\n#     store.orderbooks.add_orderbook('Sandbox', 'BTC-USD', asks, bids)\n#\n#     # test get_best_ask\n#     np.testing.assert_equal(\n#         store.orderbooks.get_best_ask('Sandbox', 'BTC-USD'),\n#         np.array(\n#             [9189.0, 52.66]\n#         )\n#     )\n#     # test get_current_asks\n#     np.testing.assert_equal(\n#         store.orderbooks.get_current_asks('Sandbox', 'BTC-USD')[0],\n#         np.array(\n#             [9189.0, 52.66]\n#         )\n#     )\n#     np.testing.assert_equal(\n#         store.orderbooks.get_current_asks('Sandbox', 'BTC-USD')[1],\n#         np.array(\n#             [9190.0, 27.58]\n#         )\n#     )\n#\n#     # test get_best_bid\n#     np.testing.assert_equal(\n#         store.orderbooks.get_best_bid('Sandbox', 'BTC-USD'),\n#         np.array(\n#             [9188.0, 53.43]\n#         )\n#     )\n#     # test get_current_bids\n#     np.testing.assert_equal(\n#         store.orderbooks.get_current_bids('Sandbox', 'BTC-USD')[0],\n#         np.array(\n#             [9188.0, 53.43]\n#         )\n#     )\n#     np.testing.assert_equal(\n#         store.orderbooks.get_current_bids('Sandbox', 'BTC-USD')[1],\n#         np.array(\n#             [9187.0, 21.68]\n#         )\n#     )\n#\n#     # test get_current_orderbook\n#     np.testing.assert_equal(\n#         store.orderbooks.get_current_orderbook('Sandbox', 'BTC-USD')[0][0],\n#         np.array(\n#             [9189.0, 52.66]\n#         )\n#     )\n#\n#     # test get_orderbooks\n#     np.testing.assert_equal(\n#         store.orderbooks.get_orderbooks('Sandbox', 'BTC-USD')[-1][0][0],\n#         np.array(\n#             [9189.0, 52.66]\n#         )\n#     )\n\n\ndef test_fix_array_len():\n    from jesse.store.state_orderbook import _fix_array_len\n\n    a = np.array([\n        1, 2, 3, 4, 5\n    ], dtype=float)\n\n    a = _fix_array_len(a, 7)\n    b = np.array([\n        1, 2, 3, 4, 5\n    ], dtype=float)\n\n    assert np.array_equiv(a[:5], b)\n    assert np.isnan(a[5])\n    assert np.isnan(a[6])\n\n    c = np.array([\n        1, 2, 3, 4, 5\n    ], dtype=float)\n\n    # assert that len has to be >= len(a)\n    with pytest.raises(ValueError):\n        _fix_array_len(c, 3)\ndef test_trim_orderbook_list():\n    from jesse.store.state_orderbook import _trim_orderbook_list\n\n    trimmed_asks = _trim_orderbook_list(\n        [[9414.61, 44.84], [9415.55, 50.31], [9416.49, 49.13], [9417.43, 49.57], [9418.37, 58.71], [9419.31, 40.67],\n         [9420.25, 32.2], [9421.19, 32.06], [9422.13, 40.38], [9423.07, 56.83], [9424.01, 53.35], [9424.45, 1.0],\n         [9424.95, 35.19], [9425.89, 24.71], [9427.77, 23.11], [9450.0, 10.0], [9454.2, 0.005], [9468.25, 279.229],\n         [9470.0, 6.104], [9478.0, 194.239], [9490.0, 0.11], [9500.0, 5.1], [9500.87, 157.017], [9511.0, 20.0],\n         [9592.0, 232.788], [9599.0, 0.13], [9600.0, 11.796], [9639.0, 10.0], [9650.0, 1.0], [9692.0, 1000.0],\n         [9715.0, 1.0], [9792.0, 1.0], [9800.0, 23.0], [9999.0, 1000.0], [10000.0, 2000.0], [10001.0, 50.0],\n         [10119.0, 1.5], [10186.56, 0.001], [10270.0, 2.0], [10500.0, 200.0], [10600.0, 41.954], [71080.0, 1.0]],\n        ascending=True\n    )\n    np.testing.assert_equal(trimmed_asks,\n                            [[9415, 44.84], [9416, 50.31], [9417, 49.13], [9418, 49.57], [9419, 58.71], [9420, 40.67],\n                             [9421, 32.2],\n                             [9422, 32.06], [9423, 40.38], [9424, 56.83], [9425, 89.53999999999999], [9426, 24.71],\n                             [9428, 23.11],\n                             [9450, 10.0], [9455, 0.005], [9469, 279.229], [9470, 6.104], [9478, 194.239], [9490, 0.11],\n                             [9500, 5.1],\n                             [9501, 157.017], [9511, 20.0], [9592, 232.788], [9599, 0.13], [9600, 11.796], [9639, 10.0],\n                             [9650, 1.0],\n                             [9692, 1000.0], [9715, 1.0], [9792, 1.0], [9800, 23.0], [9999, 1000.0], [10000, 2000.0],\n                             [10001, 50.0],\n                             [10119, 1.5], [10187, 0.001], [10270, 2.0], [10500, 200.0], [10600, 41.954]]\n                            )\n    trimmed_bids = _trim_orderbook_list(\n        [[9414.6, 97.2], [9410.84, 54.62], [9408.96, 41.98], [9408.02, 34.65], [9401.82, 56.84], [9400.88, 23.81],\n         [9386.87, 0.005], [9348.25, 7.156], [9346.0, 1.0], [9330.0, 30.0], [9327.13, 100.0], [9303.0, 0.02],\n         [9300.99, 1.0], [9300.0, 3.0], [9296.0, 31.0], [9221.0, 7.0], [9200.0, 21.991], [9120.0, 10.0],\n         [9080.0, 180.0], [9060.0, 180.0], [9056.0, 30.0], [9028.0, 80.0], [9002.0, 100.0], [9000.0, 41.825],\n         [8999.0, 13.231], [8989.0, 0.1], [8970.0, 107.0], [8965.0, 5.0], [8961.0, 300.0], [8960.06, 1.0],\n         [8955.0, 300.0], [8940.71, 0.001], [8920.0, 20.0], [8911.0, 16.254], [8909.32, 532.426], [8902.0, 340.0],\n         [8900.0, 5.5], [8888.0, 20.0], [8871.92, 0.001], [8800.0, 4.0], [8777.0, 38.114], [8705.0, 10.0],\n         [8700.0, 33.173], [8647.17, 10.0], [8600.0, 20.0], [8595.0, 20.0], [8550.0, 35.0], [8525.86, 5.823],\n         [8500.0, 1.0], [8488.8, 0.007], [8465.11, 62.411], [8450.0, 80.0], [8429.4, 0.001], [8400.0, 4.5],\n         [8390.0, 160.0], [8388.0, 2.0], [8300.0, 6.0], [8200.0, 1.0], [8100.0, 51.5], [8085.0, 4.52], [8008.0, 3.747],\n         [8000.0, 14.0], [7900.0, 124.505], [7855.0, 2.5], [7851.0, 100.0], [7821.0, 0.49], [7803.0, 0.001],\n         [7800.0, 1.0], [7760.0, 5.92], [7702.0, 50.0], [7700.0, 1.0], [7675.0, 0.23], [7600.0, 1.0], [7568.3, 0.001],\n         [7501.0, 50.0], [7500.0, 1.001], [7421.0, 50.0], [7405.0, 100.0], [7401.0, 100.0], [7011.0, 21.339],\n         [7000.0, 206.0], [6986.0, 50.0], [6985.0, 0.076], [6950.0, 0.076], [6942.0, 0.02], [6915.0, 0.076],\n         [6879.0, 0.03], [6798.0, 0.02], [6721.0, 100.0], [6450.0, 1.5], [6415.0, 172.154], [6404.95, 0.01],\n         [6400.0, 1.0], [6372.92, 0.01], [6358.0, 0.182], [6341.05, 0.01], [6309.34, 0.01], [6301.0, 501.5],\n         [6280.56, 0.085], [6277.79, 0.01], [6246.4, 0.01], [6220.0, 200.0], [6215.16, 0.01], [6184.08, 0.01],\n         [6153.15, 0.01], [6122.38, 0.01], [6091.76, 0.01], [6061.3, 0.01], [6030.99, 0.01], [6021.0, 30.0],\n         [6000.83, 0.01], [6000.0, 16.701]],\n        ascending=False\n    )\n    print(trimmed_bids)\n    np.testing.assert_equal(\n        trimmed_bids,\n        [[9414.0, 97.2], [9410.0, 54.62], [9408.0, 76.63], [9401.0, 56.84], [9400.0, 23.81], [9386.0, 0.005],\n         [9348.0, 7.156], [9346.0, 1.0], [9330.0, 30.0], [9327.0, 100.0], [9303.0, 0.02], [9300.0, 4.0], [9296.0, 31.0],\n         [9221.0, 7.0], [9200.0, 21.991], [9120.0, 10.0], [9080.0, 180.0], [9060.0, 180.0], [9056.0, 30.0],\n         [9028.0, 80.0], [9002.0, 100.0], [9000.0, 41.825], [8999.0, 13.231], [8989.0, 0.1], [8970.0, 107.0],\n         [8965.0, 5.0], [8961.0, 300.0], [8960.0, 1.0], [8955.0, 300.0], [8940.0, 0.001], [8920.0, 20.0],\n         [8911.0, 16.254], [8909.0, 532.426], [8902.0, 340.0], [8900.0, 5.5], [8888.0, 20.0], [8871.0, 0.001],\n         [8800.0, 4.0], [8777.0, 38.114], [8705.0, 10.0], [8700.0, 33.173], [8647.0, 10.0], [8600.0, 20.0],\n         [8595.0, 20.0], [8550.0, 35.0], [8525.0, 5.823], [8500.0, 1.0], [8488.0, 0.007], [8465.0, 62.411],\n         [8450.0, 80.0]]\n    )\n    assert len(trimmed_bids) == 50\n\n\n"
  },
  {
    "path": "tests/test_state_orders.py",
    "content": "from jesse.config import config, reset_config\nfrom jesse.enums import exchanges\nfrom jesse.factories import fake_order\nfrom jesse.store import store\nfrom jesse.routes import router\nfrom jesse.services import exchange_service, order_service, position_service\nimport jesse.helpers as jh\n\n\ndef set_up():\n    reset_config()\n    config['app']['trading_exchanges'] = [exchanges.SANDBOX]\n    config['app']['trading_symbols'] = ['BTC-USD']\n    routes = [\n        {'exchange': exchanges.SANDBOX, 'symbol': 'BTC-USD', 'timeframe': '1m', 'strategy': 'TestVanillaStrategy'}\n    ]\n    router.initiate(routes)\n    # reset store\n    store.reset() \n    # initialize exchanges state\n    exchange_service.initialize_exchanges_state()\n    # initialize orders state\n    order_service.initialize_orders_state()\n    # initialize positions state\n    position_service.initialize_positions_state()\n\n\ndef test_add_new_order():\n    set_up()\n\n    o1 = fake_order({'exchange': exchanges.SANDBOX, 'symbol': 'BTC-USD'})\n    o2 = fake_order({'exchange': exchanges.SANDBOX, 'symbol': 'BTC-USD'})\n    store.orders.add_order(o1)\n    store.orders.add_order(o2)\n    assert store.orders.storage['Sandbox-BTC-USD'] == [o1, o2]\n\n\ndef test_state_order_count():\n    set_up()\n\n    assert store.orders.count(exchanges.SANDBOX, 'BTC-USD') == 0\n    store.orders.add_order(fake_order())\n    assert store.orders.count(exchanges.SANDBOX, 'BTC-USD') == 1\n    store.orders.add_order(fake_order())\n    assert store.orders.count(exchanges.SANDBOX, 'BTC-USD') == 2\n\n\ndef test_state_order_get_order_by_id():\n    set_up()\n\n    o0 = fake_order({'exchange': exchanges.SANDBOX, 'symbol': 'BTC-USD'})\n    o1 = fake_order({'exchange': exchanges.SANDBOX, 'symbol': 'BTC-USD'})\n    o2 = fake_order({'exchange': exchanges.SANDBOX, 'symbol': 'BTC-USD'})\n\n    store.orders.get_order_by_id(exchanges.SANDBOX, 'BTC-USD', o2.id)\n\n    # return None if it does not exist\n    assert store.orders.get_order_by_id(exchanges.SANDBOX, 'BTC-USD', o0.id) is None\n\n    store.orders.add_order(o1)\n    store.orders.add_order(o2)\n    assert store.orders.get_order_by_id(exchanges.SANDBOX, 'BTC-USD', o2.id) == o2\n\n\ndef test_state_order_get_orders():\n    set_up()\n\n    o1 = fake_order({'exchange': exchanges.SANDBOX, 'symbol': 'BTC-USD'})\n    o2 = fake_order({'exchange': exchanges.SANDBOX, 'symbol': 'BTC-USD'})\n    store.orders.add_order(o1)\n    store.orders.add_order(o2)\n    assert store.orders.get_orders(exchanges.SANDBOX, 'BTC-USD') == [o1, o2]\n"
  },
  {
    "path": "tests/test_state_ticker.py",
    "content": "import numpy as np\n\nimport jesse.helpers as jh\nfrom jesse.config import config, reset_config\nfrom jesse.store import store\n\n\ndef set_up():\n    reset_config()\n    config['app']['considering_candles'] = [('Sandbox', 'BTC-USD')]\n    store.reset()\n    store.tickers.init_storage()\n\n\ndef test_can_add_new_ticker():\n    set_up()\n\n    np.testing.assert_equal(store.tickers.get_tickers('Sandbox', 'BTC-USD'), np.zeros((0, 5)))\n\n    # add first ticker\n    t1 = np.array([jh.now_to_timestamp(), 1, 2, 3, 4], dtype=np.float64)\n    store.tickers.add_ticker(t1, 'Sandbox', 'BTC-USD')\n    np.testing.assert_equal(store.tickers.get_tickers('Sandbox', 'BTC-USD')[0], t1)\n\n    # fake 1 second\n    store.app.time += 1000\n\n    # add second ticker\n    t2 = np.array([jh.now_to_timestamp() + 1, 11, 22, 33, 44], dtype=np.float64)\n    store.tickers.add_ticker(t2, 'Sandbox', 'BTC-USD')\n    np.testing.assert_equal(store.tickers.get_tickers('Sandbox', 'BTC-USD'), np.array([t1, t2]))\n\n\ndef test_get_current_and_past_ticker():\n    set_up()\n\n    # add 4 tickers\n    t1 = np.array([jh.now_to_timestamp(), 1, 2, 3, 4], dtype=np.float64)\n    t2 = np.array([jh.now_to_timestamp() + 1000, 2, 2, 3, 4], dtype=np.float64)\n    t3 = np.array([jh.now_to_timestamp() + 2000, 3, 2, 3, 4], dtype=np.float64)\n    t4 = np.array([jh.now_to_timestamp() + 3000, 4, 2, 3, 4], dtype=np.float64)\n    store.tickers.add_ticker(t1, 'Sandbox', 'BTC-USD')\n    store.app.time += 1000\n    store.tickers.add_ticker(t2, 'Sandbox', 'BTC-USD')\n    store.app.time += 1000\n    store.tickers.add_ticker(t3, 'Sandbox', 'BTC-USD')\n    store.app.time += 1000\n    store.tickers.add_ticker(t4, 'Sandbox', 'BTC-USD')\n    np.testing.assert_equal(store.tickers.get_tickers('Sandbox', 'BTC-USD'), np.array([t1, t2, t3, t4]))\n\n    # get the previous one\n    np.testing.assert_equal(store.tickers.get_past_ticker('Sandbox', 'BTC-USD', 1), t3)\n\n    # get current\n    np.testing.assert_equal(store.tickers.get_current_ticker('Sandbox', 'BTC-USD'), t4)\n"
  },
  {
    "path": "tests/test_state_trades.py",
    "content": "import numpy as np\n\nimport jesse.helpers as jh\nfrom jesse.config import config, reset_config\nfrom jesse.store import store\n\n\ndef set_up():\n    \"\"\"\n\n    \"\"\"\n    reset_config()\n    config['app']['considering_candles'] = [('Sandbox', 'BTC-USD')]\n    store.reset()\n    store.trades.init_storage()\n\n\ndef test_can_add_add_trade():\n    set_up()\n\n    np.testing.assert_equal(store.trades.get_trades('Sandbox', 'BTC-USD'), np.zeros((0, 6)))\n\n    # add first trade\n    t1 = np.array([jh.now_to_timestamp(), 100, 2, 1], dtype=np.float64)\n    t2 = np.array([jh.now_to_timestamp(), 98, 2, 1], dtype=np.float64)\n    t3 = np.array([jh.now_to_timestamp(), 98, 2, 0], dtype=np.float64)\n    t4 = np.array([jh.now_to_timestamp(), 98, 2, 0], dtype=np.float64)\n    t5 = np.array([jh.now_to_timestamp(), 98, 2, 0], dtype=np.float64)\n    store.trades.add_trade(t1, 'Sandbox', 'BTC-USD')\n    store.trades.add_trade(t2, 'Sandbox', 'BTC-USD')\n    store.trades.add_trade(t3, 'Sandbox', 'BTC-USD')\n    store.trades.add_trade(t4, 'Sandbox', 'BTC-USD')\n    store.trades.add_trade(t5, 'Sandbox', 'BTC-USD')\n\n    assert len(store.trades.get_trades('Sandbox', 'BTC-USD')) == 0\n\n    t6 = np.array([jh.now_to_timestamp() + 1000, 98, 2, 1], dtype=np.float64)\n    store.trades.add_trade(t6, 'Sandbox', 'BTC-USD')\n\n    assert len(store.trades.get_trades('Sandbox', 'BTC-USD')) == 1\n\n    np.testing.assert_equal(store.trades.get_current_trade('Sandbox', 'BTC-USD'), np.array([\n        jh.now_to_timestamp(),\n        # price\n        (100 * 2 + 98 * 2 + 98 * 2 + 98 * 2 + 98 * 2) / 10,\n        # buy_qty\n        4,\n        # sell_qty\n        6,\n        # buy_count\n        2,\n        # sell_count\n        3\n    ]))\n\n    # add another after two seconds\n    t7 = np.array([jh.now_to_timestamp() + 3000, 98, 2, 1], dtype=np.float64)\n    store.trades.add_trade(t7, 'Sandbox', 'BTC-USD')\n\n    np.testing.assert_equal(store.trades.get_current_trade('Sandbox', 'BTC-USD'), np.array([\n        jh.now_to_timestamp() + 1000,\n        # price\n        98,\n        # buy_qty\n        2,\n        # sell_qty\n        0,\n        # buy_count\n        1,\n        # sell_count\n        0\n    ]))\n\n    # test get_past_trade\n    np.testing.assert_equal(store.trades.get_past_trade('Sandbox', 'BTC-USD', 1), np.array([\n        jh.now_to_timestamp(),\n        # price\n        (100 * 2 + 98 * 2 + 98 * 2 + 98 * 2 + 98 * 2) / 10,\n        # buy_qty\n        4,\n        # sell_qty\n        6,\n        # buy_count\n        2,\n        # sell_count\n        3\n    ]))\n\n    # test get_trades\n    np.testing.assert_equal(store.trades.get_trades('Sandbox', 'BTC-USD'), np.array([\n        [\n            jh.now_to_timestamp(),\n            # price\n            (100 * 2 + 98 * 2 + 98 * 2 + 98 * 2 + 98 * 2) / 10,\n            # buy_qty\n            4,\n            # sell_qty\n            6,\n            # buy_count\n            2,\n            # sell_count\n            3\n        ],\n        [\n            jh.now_to_timestamp() + 1000,\n            # price\n            98,\n            # buy_qty\n            2,\n            # sell_qty\n            0,\n            # buy_count\n            1,\n            # sell_count\n            0\n        ]\n    ]))\n"
  },
  {
    "path": "tests/test_utils.py",
    "content": "import numpy as np\nimport pandas as pd\nimport pytest\n\nfrom jesse import utils\nfrom tests.data.test_candles_indicators import test_candles_19\n\n\ndef test_anchor_timeframe():\n    assert utils.anchor_timeframe('1m') == '5m'\n    assert utils.anchor_timeframe('3m') == '15m'\n    assert utils.anchor_timeframe('5m') == '30m'\n    assert utils.anchor_timeframe('15m') == '2h'\n    assert utils.anchor_timeframe('30m') == '3h'\n    assert utils.anchor_timeframe('1h') == '4h'\n    assert utils.anchor_timeframe('2h') == '6h'\n    assert utils.anchor_timeframe('3h') == '1D'\n    assert utils.anchor_timeframe('4h') == '1D'\n    assert utils.anchor_timeframe('6h') == '1D'\n\n\ndef test_crossed():\n    candles = np.array(test_candles_19)\n    cross_100 = utils.crossed(candles[:, 2], 100)\n    assert cross_100 == False\n    cross_120 = utils.crossed(candles[:, 2], 120)\n    assert cross_120 == True\n    cross_120 = utils.crossed(candles[:, 2], 120, direction=\"below\")\n    assert cross_120 == True\n    cross_120 = utils.crossed(candles[:, 2], 120, direction=\"above\")\n    assert cross_120 == False\n    seq_cross_200 = utils.crossed(candles[:, 2], 200, direction=\"below\", sequential=True)\n    assert seq_cross_200[-5] == True\n    seq_cross_200 = utils.crossed(candles[:, 2], 200, direction=\"above\", sequential=True)\n    assert seq_cross_200[-5] == False\n    seq_cross_120 = utils.crossed(candles[:, 2], 120, sequential=True)\n    assert seq_cross_120[-1] == True\n    array_array_cross_above = utils.crossed(np.array([1., 2, 3, 4, 5, 6]), np.array([3., 3, 3, 3, 3, 3]),\n                                            direction=\"above\",\n                                            sequential=True)\n    assert array_array_cross_above[-3] == True\n    array_array_cross_below = utils.crossed(np.array([1., 2, 3, 2, 1, 6]), np.array([3., 3, 3, 3, 3, 3]),\n                                            direction=\"below\",\n                                            sequential=True)\n    assert array_array_cross_below[-3] == True\n    array_array_cross = utils.crossed(np.array([1., 2, 3, 4, 1, 2]), np.array([3., 3, 3, 3, 3, 3]),\n                                      sequential=True)\n    assert array_array_cross[-3] == True\n    assert array_array_cross[-2] == True\n\n\ndef test_estimate_risk():\n    assert utils.estimate_risk(100, 80) == 20\n\n\ndef test_limit_stop_loss():\n    assert utils.limit_stop_loss(100, 105, 'short', 10) == 105\n    assert utils.limit_stop_loss(100, 115, 'short', 10) == 110\n    assert utils.limit_stop_loss(100, 95, 'long', 10) == 95\n    assert utils.limit_stop_loss(100, 85, 'long', 10) == 90\n\n    with pytest.raises(TypeError):\n        utils.limit_stop_loss(100, 85, 'long', 'invalid_input')\n        utils.limit_stop_loss('invalid_input', 105, 'short', 10)\n        utils.limit_stop_loss(100, 'invalid_input', 'short', 10)\n        utils.limit_stop_loss(100, 105, 123, 10)\n\n\ndef test_numpy_to_pandas():\n    candles = np.array(test_candles_19)\n    columns = [\"Date\", \"Open\", \"Close\", \"High\", \"Low\", \"Volume\"]\n    df = pd.DataFrame(data=candles, index=pd.to_datetime(candles[:, 0], unit=\"ms\"), columns=columns)\n    df[\"Date\"] = pd.to_datetime(df[\"Date\"], unit=\"ms\")\n\n    ohlcv = utils.numpy_candles_to_dataframe(candles, name_date=\"Date\", name_open=\"Open\", name_high=\"High\",\n                                             name_low=\"Low\", name_close=\"Close\", name_volume=\"Volume\")\n\n    pd.testing.assert_frame_equal(df, ohlcv)\n\n\ndef test_qty_to_size():\n    assert utils.qty_to_size(2, 50) == 100\n    assert utils.qty_to_size(2, 49) == 98\n\n    with pytest.raises(TypeError):\n        utils.qty_to_size(-10, 'invalid_input')\n        utils.qty_to_size('invalid_input', -10)\n    with pytest.raises(TypeError):\n        utils.qty_to_size(-10, None)\n        utils.qty_to_size(None, -10)\n\n\ndef test_risk_to_qty():\n    # long\n    assert utils.risk_to_qty(10000, 1, 100, 80) == 5\n    # short\n    assert utils.risk_to_qty(10000, 1, 80, 100) == 5\n\n    # should not return more than maximum balance. Expect 100 instead of 125\n    assert utils.risk_to_qty(10000, 5, 100, 96) == 100\n\n    # when fee is included\n    assert utils.risk_to_qty(10000, 1, 100, 80, precision=3, fee_rate=0.001) == 4.97\n\n\ndef test_risk_to_size():\n    assert round(utils.risk_to_size(10000, 1, 0.7, 8.6)) == 1229\n\n    with pytest.raises(TypeError):\n        utils.risk_to_size(10000, 1, 0.7, None)\n        utils.risk_to_size(10000, 1, None, 8.6)\n        utils.risk_to_size(10000, None, 0.7, 8.6)\n        utils.risk_to_size(None, 1, 0.7, 8.6)\n\n    # should not return more than maximum capital\n    assert utils.risk_to_size(10000, 5, 4, 100) == 10000\n\n\ndef test_size_to_qty():\n    assert utils.size_to_qty(100, 50) == 2\n    assert utils.size_to_qty(100, 49, precision=3) == 2.04\n\n    with pytest.raises(TypeError):\n        utils.size_to_qty(100, 'invalid_input')\n        utils.size_to_qty('invalid_input', 100)\n    with pytest.raises(TypeError):\n        utils.size_to_qty(100, None)\n        utils.size_to_qty(None, 100)\n\n    # when fee is included\n    assert utils.size_to_qty(100, 50, fee_rate=0.001) == 1.994\n\n\ndef test_sum_floats():\n    assert utils.sum_floats(9.71, 9.813) == 19.523\n    assert utils.sum_floats(-1.123, -1.2) == -2.323\n    assert utils.sum_floats(1.19, -1.2) == -0.01\n    assert utils.sum_floats(-1.19, 1.2) == 0.01\n\n\ndef test_subtract_floats():\n    assert utils.subtract_floats(9.813, 9.71) == 0.103\n    assert utils.subtract_floats(-1.123, 1.2) == -2.323\n    assert utils.subtract_floats(1.123, -1.2) == 2.323\n    assert utils.subtract_floats(-1.123, -1.2) == 0.077\n\n\ndef test_prices_to_returns():\n    series = np.array([50, 10, 100, 25])\n    pct = utils.prices_to_returns(series)\n    np.testing.assert_array_equal(pct, np.array([np.nan, -80., 900., -75.]))\n\n\ndef test_combinations_without_repeat():\n    a = np.array([4, 2, 9, 1, 3])\n    b = utils.combinations_without_repeat(a)\n    np.testing.assert_array_equal(b, np.array([[4, 2],\n                                               [4, 9],\n                                               [4, 1],\n                                               [4, 3],\n                                               [2, 4],\n                                               [2, 9],\n                                               [2, 1],\n                                               [2, 3],\n                                               [9, 4],\n                                               [9, 2],\n                                               [9, 1],\n                                               [9, 3],\n                                               [1, 4],\n                                               [1, 2],\n                                               [1, 9],\n                                               [1, 3],\n                                               [3, 4],\n                                               [3, 2],\n                                               [3, 9],\n                                               [3, 1]]))\n\n\ndef test_timeframe_to_one_minutes():\n    assert utils.timeframe_to_one_minutes(\"1m\") == 1\n    assert utils.timeframe_to_one_minutes(\"3m\") == 3\n    assert utils.timeframe_to_one_minutes(\"5m\") == 5\n    assert utils.timeframe_to_one_minutes(\"15m\") == 15\n    assert utils.timeframe_to_one_minutes(\"30m\") == 30\n    assert utils.timeframe_to_one_minutes(\"1h\") == 60\n    assert utils.timeframe_to_one_minutes(\"2h\") == 60 * 2\n    assert utils.timeframe_to_one_minutes(\"3h\") == 60 * 3\n    assert utils.timeframe_to_one_minutes(\"4h\") == 60 * 4\n    assert utils.timeframe_to_one_minutes(\"6h\") == 60 * 6\n    assert utils.timeframe_to_one_minutes(\"8h\") == 60 * 8\n    assert utils.timeframe_to_one_minutes(\"1D\") == 60 * 24\n"
  },
  {
    "path": "utils/candle_info.sh",
    "content": "#!/bin/bash\nif [[ -z $1 ]]\n   then\n       echo \"please supply a database name\"\n       exit 1\nfi       \nSCRIPT_DIR=\"$( cd -- \"$( dirname -- \"${BASH_SOURCE[0]}\" )\" &> /dev/null && pwd )\"\ncat $SCRIPT_DIR/candle_info.sql | sudo -i -u postgres psql -d $1\n"
  },
  {
    "path": "utils/candle_info.sql",
    "content": "select (to_timestamp(min(timestamp)/1000) at time zone 'UTC')::date\n        as min_date,\n       (to_timestamp(max(timestamp)/1000) at time zone 'UTC')::date\n        as max_date,\n       count(timestamp), symbol, exchange\nfrom candle group by exchange, symbol order by exchange, symbol;\n"
  }
]